ZGlmZiAtLWdpdCBhL2Zsb3cvcG5yL0NPUFlSSUdIVCBiL2Zsb3cvcG5yL0NPUFlSSUdIVApkZWxldGVkIGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggN2M1ZTE3Mi4uMDAwMDAwMAotLS0gYS9mbG93L3Buci9DT1BZUklHSFQKKysrIC9kZXYvbnVsbApAQCAtMSwzMyArMCwwIEBACi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0jICAgICAgICAgICAgICAgICAgICAgICBDQURFTkNFIENPUFlSSUdIVCBOT1RJQ0UKLSMgICAgICAgICCpIDIwMDgtMjAxMyBDYWRlbmNlIERlc2lnbiBTeXN0ZW1zLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0jCi0jIFRoaXMgRm91bmRhdGlvbiBGbG93IGlzIHByb3ZpZGVkIGFzIGFuIGV4YW1wbGUgb2YgaG93IHRvIHBlcmZvcm0gc3BlY2lhbGl6ZWQKLSMgdGFza3MuCi0jCi0jIFRoaXMgd29yayBtYXkgbm90IGJlIGNvcGllZCwgcmUtcHVibGlzaGVkLCB1cGxvYWRlZCwgb3IgZGlzdHJpYnV0ZWQgaW4gYW55IHdheSwKLSMgaW4gYW55IG1lZGl1bSwgd2hldGhlciBpbiB3aG9sZSBvciBpbiBwYXJ0LCB3aXRob3V0IHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbgotIyBmcm9tIENhZGVuY2UuIE5vdHdpdGhzdGFuZGluZyBhbnkgcmVzdHJpY3Rpb25zIGhlcmVpbiwgc3ViamVjdCB0byBjb21wbGlhbmNlCi0jIHdpdGggdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mIHRoZSBDYWRlbmNlIHNvZnR3YXJlIGxpY2Vuc2UgYWdyZWVtZW50IHVuZGVyCi0jIHdoaWNoIHRoaXMgbWF0ZXJpYWwgd2FzIHByb3ZpZGVkLCB0aGlzIG1hdGVyaWFsIG1heSBiZSBjb3BpZWQgYW5kIGludGVybmFsbHkKLSMgZGlzdHJpYnV0ZWQgc29sZWx5IGZvciBpbnRlcm5hbCBwdXJwb3NlcyBmb3IgdXNlIHdpdGggQ2FkZW5jZSB0b29scy4KLSMKLSMgVGhpcyB3b3JrIGlzIENhZGVuY2UgaW50ZWxsZWN0dWFsIHByb3BlcnR5IGFuZCBtYXkgdW5kZXIgbm8gY2lyY3Vtc3RhbmNlcyBiZQotIyBnaXZlbiB0byB0aGlyZCBwYXJ0aWVzLCBuZWl0aGVyIGluIG9yaWdpbmFsIG5vciBpbiBtb2RpZmllZCB2ZXJzaW9ucywgd2l0aG91dAotIyBleHBsaWNpdCB3cml0dGVuIHBlcm1pc3Npb24gZnJvbSBDYWRlbmNlLiBUaGUgaW5mb3JtYXRpb24gY29udGFpbmVkIGhlcmVpbiBpcwotIyB0aGUgcHJvcHJpZXRhcnkgYW5kIGNvbmZpZGVudGlhbCBpbmZvcm1hdGlvbiBvZiBDYWRlbmNlIG9yIGl0cyBsaWNlbnNvcnMsIGFuZAotIyBpcyBzdXBwbGllZCBzdWJqZWN0IHRvLCBhbmQgbWF5IGJlIHVzZWQgb25seSBieSBDYWRlbmNlJ3MgY3VycmVudCBjdXN0b21lcnMKLSMgaW4gYWNjb3JkYW5jZSB3aXRoLCBhIHByZXZpb3VzbHkgZXhlY3V0ZWQgbGljZW5zZSBhZ3JlZW1lbnQgYmV0d2VlbiBDYWRlbmNlCi0jIGFuZCBpdHMgY3VzdG9tZXIuCi0jCi0jLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0jIFRISVMgTUFURVJJQUwgSVMgUFJPVklERUQgQlkgQ0FERU5DRSAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVECi0jIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GCi0jIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuCi0jIElOIE5PIEVWRU5UIFNIQUxMIENBREVOQ0UgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTAotIyBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLAotIyBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUICAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IKLSMgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyAgTUFURVJJQUwsIEVWRU4gSUYKLSMgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCmRpZmYgLS1naXQgYS9mbG93L3Buci9FWEFNUExFUy9JTk5PVlVTL0RFU0lHTi9EQVRBL2hpZXIuZnAgYi9mbG93L3Buci9FWEFNUExFUy9JTk5PVlVTL0RFU0lHTi9EQVRBL2hpZXIuZnAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IGVjZDBiMTMuLjAwMDAwMDAKLS0tIGEvZmxvdy9wbnIvRVhBTVBMRVMvSU5OT1ZVUy9ERVNJR04vREFUQS9oaWVyLmZwCisrKyAvZGV2L251bGwKQEAgLTEsMTk3MiArMCwwIEBACi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSMgIEdlbmVyYXRlZCBieTogICAgICBDYWRlbmNlIEVuY291bnRlciAxMS4xMS1lMDQ3XzEKLSMgIE9TOiAgICAgICAgICAgICAgICBMaW51eCB4ODZfNjQoSG9zdCBJRCBzamZubDY4OCkKLSMgIEdlbmVyYXRlZCBvbjogICAgICBUdWUgTWFyIDIwIDA4OjI0OjI2IDIwMTIKLSMgIERlc2lnbjogICAgICAgICAgICB0ZHNwX2NvcmUKLSMgIENvbW1hbmQ6ICAgICAgICAgICBzYXZlRlBsYW4gaGllci5mcAotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0KLVZlcnNpb246IDgKLQotSGVhZCBCb3g6IDAuMDAwMCAwLjAwMDAgMTQxLjgwMDAgMTUzLjkwMDAKLUlPIEJveDogMC4wMDAwIDAuMDAwMCAxNDEuODAwMCAxNTMuOTAwMAotQ29yZSBCb3g6IDAuMDAwMCAwLjAwMDAgMTQxLjgwMDAgMTUzLjkwMDAKLVVzZVN0ZFV0aWw6IGZhbHNlCi0KLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotIyAgRGVzaWduUm91dGluZ0hhbG86IDxzcGFjZT4gPGJvdHRvbUxheWVyTmFtZT4gPHRvcExheWVyTmFtZT4KLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSMgIENvcmUgUm93cyBQYXJhbWV0ZXJzOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIwotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi1Sb3cgU3BhY2luZyA9IDAuMDAwMDAwCi1Sb3cgU3BhY2luZ1R5cGUgPSAwCi1Sb3cgRmxpcCA9IDEKLUNvcmUgUm93IFNpdGU6IENvcmVTaXRlIAotCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSMgIERlZlJvdzogPG5hbWU+IDxzaXRlPiA8eD4gPHk+IDxvcmllbnQ+IDxudW1feD4gPG51bV95PiA8c3RlcF94PiA8c3RlcF95PiAgIwotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi1EZWZSb3c6IFJPV184OSBDb3JlU2l0ZSAwLjAwMDAgMTUyLjE5MDAgRlMgNzA5IDEgMC4yMDAwIDAuMDAwMAotRGVmUm93OiBST1dfODggQ29yZVNpdGUgMC4wMDAwIDE1MC40ODAwIE4gNzA5IDEgMC4yMDAwIDAuMDAwMAotRGVmUm93OiBST1dfODcgQ29yZVNpdGUgMC4wMDAwIDE0OC43NzAwIEZTIDcwOSAxIDAuMjAwMCAwLjAwMDAKLURlZlJvdzogUk9XXzg2IENvcmVTaXRlIDAuMDAwMCAxNDcuMDYwMCBOIDcwOSAxIDAuMjAwMCAwLjAwMDAKLURlZlJvdzogUk9XXzg1IENvcmVTaXRlIDAuMDAwMCAxNDUuMzUwMCBGUyA3MDkgMSAwLjIwMDAgMC4wMDAwCi1EZWZSb3c6IFJPV184NCBDb3JlU2l0ZSAwLjAwMDAgMTQzLjY0MDAgTiA3MDkgMSAwLjIwMDAgMC4wMDAwCi1EZWZSb3c6IFJPV184MyBDb3JlU2l0ZSAwLjAwMDAgMTQxLjkzMDAgRlMgNzA5IDEgMC4yMDAwIDAuMDAwMAotRGVmUm93OiBST1dfODIgQ29yZVNpdGUgMC4wMDAwIDE0MC4yMjAwIE4gNzA5IDEgMC4yMDAwIDAuMDAwMAotRGVmUm93OiBST1dfODEgQ29yZVNpdGUgMC4wMDAwIDEzOC41MTAwIEZTIDcwOSAxIDAuMjAwMCAwLjAwMDAKLURlZlJvdzogUk9XXzgwIENvcmVTaXRlIDAuMDAwMCAxMzYuODAwMCBOIDcwOSAxIDAuMjAwMCAwLjAwMDAKLURlZlJvdzogUk9XXzc5IENvcmVTaXRlIDAuMDAwMCAxMzUuMDkwMCBGUyA3MDkgMSAwLjIwMDAgMC4wMDAwCi1EZWZSb3c6IFJPV183OCBDb3JlU2l0ZSAwLjAwMDAgMTMzLjM4MDAgTiA3MDkgMSAwLjIwMDAgMC4wMDAwCi1EZWZSb3c6IFJPV183NyBDb3JlU2l0ZSAwLjAwMDAgMTMxLjY3MDAgRlMgNzA5IDEgMC4yMDAwIDAuMDAwMAotRGVmUm93OiBST1dfNzYgQ29yZVNpdGUgMC4wMDAwIDEyOS45NjAwIE4gNzA5IDEgMC4yMDAwIDAuMDAwMAotRGVmUm93OiBST1dfNzUgQ29yZVNpdGUgMC4wMDAwIDEyOC4yNTAwIEZTIDcwOSAxIDAuMjAwMCAwLjAwMDAKLURlZlJvdzogUk9XXzc0IENvcmVTaXRlIDAuMDAwMCAxMjYuNTQwMCBOIDcwOSAxIDAuMjAwMCAwLjAwMDAKLURlZlJvdzogUk9XXzczIENvcmVTaXRlIDAuMDAwMCAxMjQuODMwMCBGUyA3MDkgMSAwLjIwMDAgMC4wMDAwCi1EZWZSb3c6IFJPV183MiBDb3JlU2l0ZSAwLjAwMDAgMTIzLjEyMDAgTiA3MDkgMSAwLjIwMDAgMC4wMDAwCi1EZWZSb3c6IFJPV183MSBDb3JlU2l0ZSAwLjAwMDAgMTIxLjQxMDAgRlMgNzA5IDEgMC4yMDAwIDAuMDAwMAotRGVmUm93OiBST1dfNzAgQ29yZVNpdGUgMC4wMDAwIDExOS43MDAwIE4gNzA5IDEgMC4yMDAwIDAuMDAwMAotRGVmUm93OiBST1dfNjkgQ29yZVNpdGUgMC4wMDAwIDExNy45OTAwIEZTIDcwOSAxIDAuMjAwMCAwLjAwMDAKLURlZlJvdzogUk9XXzY4IENvcmVTaXRlIDAuMDAwMCAxMTYuMjgwMCBOIDcwOSAxIDAuMjAwMCAwLjAwMDAKLURlZlJvdzogUk9XXzY3IENvcmVTaXRlIDAuMDAwMCAxMTQuNTcwMCBGUyA3MDkgMSAwLjIwMDAgMC4wMDAwCi1EZWZSb3c6IFJPV182NiBDb3JlU2l0ZSAwLjAwMDAgMTEyLjg2MDAgTiA3MDkgMSAwLjIwMDAgMC4wMDAwCi1EZWZSb3c6IFJPV182NSBDb3JlU2l0ZSAwLjAwMDAgMTExLjE1MDAgRlMgNzA5IDEgMC4yMDAwIDAuMDAwMAotRGVmUm93OiBST1dfNjQgQ29yZVNpdGUgMC4wMDAwIDEwOS40NDAwIE4gNzA5IDEgMC4yMDAwIDAuMDAwMAotRGVmUm93OiBST1dfNjMgQ29yZVNpdGUgMC4wMDAwIDEwNy43MzAwIEZTIDcwOSAxIDAuMjAwMCAwLjAwMDAKLURlZlJvdzogUk9XXzYyIENvcmVTaXRlIDAuMDAwMCAxMDYuMDIwMCBOIDcwOSAxIDAuMjAwMCAwLjAwMDAKLURlZlJvdzogUk9XXzYxIENvcmVTaXRlIDAuMDAwMCAxMDQuMzEwMCBGUyA3MDkgMSAwLjIwMDAgMC4wMDAwCi1EZWZSb3c6IFJPV182MCBDb3JlU2l0ZSAwLjAwMDAgMTAyLjYwMDAgTiA3MDkgMSAwLjIwMDAgMC4wMDAwCi1EZWZSb3c6IFJPV181OSBDb3JlU2l0ZSAwLjAwMDAgMTAwLjg5MDAgRlMgNzA5IDEgMC4yMDAwIDAuMDAwMAotRGVmUm93OiBST1dfNTggQ29yZVNpdGUgMC4wMDAwIDk5LjE4MDAgTiA3MDkgMSAwLjIwMDAgMC4wMDAwCi1EZWZSb3c6IFJPV181NyBDb3JlU2l0ZSAwLjAwMDAgOTcuNDcwMCBGUyA3MDkgMSAwLjIwMDAgMC4wMDAwCi1EZWZSb3c6IFJPV181NiBDb3JlU2l0ZSAwLjAwMDAgOTUuNzYwMCBOIDcwOSAxIDAuMjAwMCAwLjAwMDAKLURlZlJvdzogUk9XXzU1IENvcmVTaXRlIDAuMDAwMCA5NC4wNTAwIEZTIDcwOSAxIDAuMjAwMCAwLjAwMDAKLURlZlJvdzogUk9XXzU0IENvcmVTaXRlIDAuMDAwMCA5Mi4zNDAwIE4gNzA5IDEgMC4yMDAwIDAuMDAwMAotRGVmUm93OiBST1dfNTMgQ29yZVNpdGUgMC4wMDAwIDkwLjYzMDAgRlMgNzA5IDEgMC4yMDAwIDAuMDAwMAotRGVmUm93OiBST1dfNTIgQ29yZVNpdGUgMC4wMDAwIDg4LjkyMDAgTiA3MDkgMSAwLjIwMDAgMC4wMDAwCi1EZWZSb3c6IFJPV181MSBDb3JlU2l0ZSAwLjAwMDAgODcuMjEwMCBGUyA3MDkgMSAwLjIwMDAgMC4wMDAwCi1EZWZSb3c6IFJPV181MCBDb3JlU2l0ZSAwLjAwMDAgODUuNTAwMCBOIDcwOSAxIDAuMjAwMCAwLjAwMDAKLURlZlJvdzogUk9XXzQ5IENvcmVTaXRlIDAuMDAwMCA4My43OTAwIEZTIDcwOSAxIDAuMjAwMCAwLjAwMDAKLURlZlJvdzogUk9XXzQ4IENvcmVTaXRlIDAuMDAwMCA4Mi4wODAwIE4gNzA5IDEgMC4yMDAwIDAuMDAwMAotRGVmUm93OiBST1dfNDcgQ29yZVNpdGUgMC4wMDAwIDgwLjM3MDAgRlMgNzA5IDEgMC4yMDAwIDAuMDAwMAotRGVmUm93OiBST1dfNDYgQ29yZVNpdGUgMC4wMDAwIDc4LjY2MDAgTiA3MDkgMSAwLjIwMDAgMC4wMDAwCi1EZWZSb3c6IFJPV180NSBDb3JlU2l0ZSAwLjAwMDAgNzYuOTUwMCBGUyA3MDkgMSAwLjIwMDAgMC4wMDAwCi1EZWZSb3c6IFJPV180NCBDb3JlU2l0ZSAwLjAwMDAgNzUuMjQwMCBOIDcwOSAxIDAuMjAwMCAwLjAwMDAKLURlZlJvdzogUk9XXzQzIENvcmVTaXRlIDAuMDAwMCA3My41MzAwIEZTIDcwOSAxIDAuMjAwMCAwLjAwMDAKLURlZlJvdzogUk9XXzQyIENvcmVTaXRlIDAuMDAwMCA3MS44MjAwIE4gNzA5IDEgMC4yMDAwIDAuMDAwMAotRGVmUm93OiBST1dfNDEgQ29yZVNpdGUgMC4wMDAwIDcwLjExMDAgRlMgNzA5IDEgMC4yMDAwIDAuMDAwMAotRGVmUm93OiBST1dfNDAgQ29yZVNpdGUgMC4wMDAwIDY4LjQwMDAgTiA3MDkgMSAwLjIwMDAgMC4wMDAwCi1EZWZSb3c6IFJPV18zOSBDb3JlU2l0ZSAwLjAwMDAgNjYuNjkwMCBGUyA3MDkgMSAwLjIwMDAgMC4wMDAwCi1EZWZSb3c6IFJPV18zOCBDb3JlU2l0ZSAwLjAwMDAgNjQuOTgwMCBOIDcwOSAxIDAuMjAwMCAwLjAwMDAKLURlZlJvdzogUk9XXzM3IENvcmVTaXRlIDAuMDAwMCA2My4yNzAwIEZTIDcwOSAxIDAuMjAwMCAwLjAwMDAKLURlZlJvdzogUk9XXzM2IENvcmVTaXRlIDAuMDAwMCA2MS41NjAwIE4gNzA5IDEgMC4yMDAwIDAuMDAwMAotRGVmUm93OiBST1dfMzUgQ29yZVNpdGUgMC4wMDAwIDU5Ljg1MDAgRlMgNzA5IDEgMC4yMDAwIDAuMDAwMAotRGVmUm93OiBST1dfMzQgQ29yZVNpdGUgMC4wMDAwIDU4LjE0MDAgTiA3MDkgMSAwLjIwMDAgMC4wMDAwCi1EZWZSb3c6IFJPV18zMyBDb3JlU2l0ZSAwLjAwMDAgNTYuNDMwMCBGUyA3MDkgMSAwLjIwMDAgMC4wMDAwCi1EZWZSb3c6IFJPV18zMiBDb3JlU2l0ZSAwLjAwMDAgNTQuNzIwMCBOIDcwOSAxIDAuMjAwMCAwLjAwMDAKLURlZlJvdzogUk9XXzMxIENvcmVTaXRlIDAuMDAwMCA1My4wMTAwIEZTIDcwOSAxIDAuMjAwMCAwLjAwMDAKLURlZlJvdzogUk9XXzMwIENvcmVTaXRlIDAuMDAwMCA1MS4zMDAwIE4gNzA5IDEgMC4yMDAwIDAuMDAwMAotRGVmUm93OiBST1dfMjkgQ29yZVNpdGUgMC4wMDAwIDQ5LjU5MDAgRlMgNzA5IDEgMC4yMDAwIDAuMDAwMAotRGVmUm93OiBST1dfMjggQ29yZVNpdGUgMC4wMDAwIDQ3Ljg4MDAgTiA3MDkgMSAwLjIwMDAgMC4wMDAwCi1EZWZSb3c6IFJPV18yNyBDb3JlU2l0ZSAwLjAwMDAgNDYuMTcwMCBGUyA3MDkgMSAwLjIwMDAgMC4wMDAwCi1EZWZSb3c6IFJPV18yNiBDb3JlU2l0ZSAwLjAwMDAgNDQuNDYwMCBOIDcwOSAxIDAuMjAwMCAwLjAwMDAKLURlZlJvdzogUk9XXzI1IENvcmVTaXRlIDAuMDAwMCA0Mi43NTAwIEZTIDcwOSAxIDAuMjAwMCAwLjAwMDAKLURlZlJvdzogUk9XXzI0IENvcmVTaXRlIDAuMDAwMCA0MS4wNDAwIE4gNzA5IDEgMC4yMDAwIDAuMDAwMAotRGVmUm93OiBST1dfMjMgQ29yZVNpdGUgMC4wMDAwIDM5LjMzMDAgRlMgNzA5IDEgMC4yMDAwIDAuMDAwMAotRGVmUm93OiBST1dfMjIgQ29yZVNpdGUgMC4wMDAwIDM3LjYyMDAgTiA3MDkgMSAwLjIwMDAgMC4wMDAwCi1EZWZSb3c6IFJPV18yMSBDb3JlU2l0ZSAwLjAwMDAgMzUuOTEwMCBGUyA3MDkgMSAwLjIwMDAgMC4wMDAwCi1EZWZSb3c6IFJPV18yMCBDb3JlU2l0ZSAwLjAwMDAgMzQuMjAwMCBOIDcwOSAxIDAuMjAwMCAwLjAwMDAKLURlZlJvdzogUk9XXzE5IENvcmVTaXRlIDAuMDAwMCAzMi40OTAwIEZTIDcwOSAxIDAuMjAwMCAwLjAwMDAKLURlZlJvdzogUk9XXzE4IENvcmVTaXRlIDAuMDAwMCAzMC43ODAwIE4gNzA5IDEgMC4yMDAwIDAuMDAwMAotRGVmUm93OiBST1dfMTcgQ29yZVNpdGUgMC4wMDAwIDI5LjA3MDAgRlMgNzA5IDEgMC4yMDAwIDAuMDAwMAotRGVmUm93OiBST1dfMTYgQ29yZVNpdGUgMC4wMDAwIDI3LjM2MDAgTiA3MDkgMSAwLjIwMDAgMC4wMDAwCi1EZWZSb3c6IFJPV18xNSBDb3JlU2l0ZSAwLjAwMDAgMjUuNjUwMCBGUyA3MDkgMSAwLjIwMDAgMC4wMDAwCi1EZWZSb3c6IFJPV18xNCBDb3JlU2l0ZSAwLjAwMDAgMjMuOTQwMCBOIDcwOSAxIDAuMjAwMCAwLjAwMDAKLURlZlJvdzogUk9XXzEzIENvcmVTaXRlIDAuMDAwMCAyMi4yMzAwIEZTIDcwOSAxIDAuMjAwMCAwLjAwMDAKLURlZlJvdzogUk9XXzEyIENvcmVTaXRlIDAuMDAwMCAyMC41MjAwIE4gNzA5IDEgMC4yMDAwIDAuMDAwMAotRGVmUm93OiBST1dfMTEgQ29yZVNpdGUgMC4wMDAwIDE4LjgxMDAgRlMgNzA5IDEgMC4yMDAwIDAuMDAwMAotRGVmUm93OiBST1dfMTAgQ29yZVNpdGUgMC4wMDAwIDE3LjEwMDAgTiA3MDkgMSAwLjIwMDAgMC4wMDAwCi1EZWZSb3c6IFJPV185IENvcmVTaXRlIDAuMDAwMCAxNS4zOTAwIEZTIDcwOSAxIDAuMjAwMCAwLjAwMDAKLURlZlJvdzogUk9XXzggQ29yZVNpdGUgMC4wMDAwIDEzLjY4MDAgTiA3MDkgMSAwLjIwMDAgMC4wMDAwCi1EZWZSb3c6IFJPV183IENvcmVTaXRlIDAuMDAwMCAxMS45NzAwIEZTIDcwOSAxIDAuMjAwMCAwLjAwMDAKLURlZlJvdzogUk9XXzYgQ29yZVNpdGUgMC4wMDAwIDEwLjI2MDAgTiA3MDkgMSAwLjIwMDAgMC4wMDAwCi1EZWZSb3c6IFJPV181IENvcmVTaXRlIDAuMDAwMCA4LjU1MDAgRlMgNzA5IDEgMC4yMDAwIDAuMDAwMAotRGVmUm93OiBST1dfNCBDb3JlU2l0ZSAwLjAwMDAgNi44NDAwIE4gNzA5IDEgMC4yMDAwIDAuMDAwMAotRGVmUm93OiBST1dfMyBDb3JlU2l0ZSAwLjAwMDAgNS4xMzAwIEZTIDcwOSAxIDAuMjAwMCAwLjAwMDAKLURlZlJvdzogUk9XXzIgQ29yZVNpdGUgMC4wMDAwIDMuNDIwMCBOIDcwOSAxIDAuMjAwMCAwLjAwMDAKLURlZlJvdzogUk9XXzEgQ29yZVNpdGUgMC4wMDAwIDEuNzEwMCBGUyA3MDkgMSAwLjIwMDAgMC4wMDAwCi1EZWZSb3c6IFJPV18wIENvcmVTaXRlIDAuMDAwMCAwLjAwMDAgTiA3MDkgMSAwLjIwMDAgMC4wMDAwCi0KLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotIyAgVHJhY2s6IGRpciBzdGFydCBudW1iZXIgc3BhY2UgbGF5ZXJfbnVtIGxheWVyMSAuLi4jCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLVRyYWNrOiBYIDAuMTAwMCA3MDkgMC4yMDAwIDEgOQotVHJhY2s6IFkgMC40NzUwIDQwNCAwLjM4MDAgMSA5Ci1UcmFjazogWSAwLjM4MDAgNTM5IDAuMjg1MCAxIDgKLVRyYWNrOiBYIDAuMTAwMCA3MDkgMC4yMDAwIDEgOAotVHJhY2s6IFggMC4xMDAwIDcwOSAwLjIwMDAgMSA3Ci1UcmFjazogWSAwLjM4MDAgNTM5IDAuMjg1MCAxIDcKLVRyYWNrOiBZIDAuMDk1MCA4MTAgMC4xOTAwIDEgNgotVHJhY2s6IFggMC4xMDAwIDcwOSAwLjIwMDAgMSA2Ci1UcmFjazogWCAwLjEwMDAgNzA5IDAuMjAwMCAxIDUKLVRyYWNrOiBZIDAuMDk1MCA4MTAgMC4xOTAwIDEgNQotVHJhY2s6IFkgMC4wOTUwIDgxMCAwLjE5MDAgMSA0Ci1UcmFjazogWCAwLjEwMDAgNzA5IDAuMjAwMCAxIDQKLVRyYWNrOiBYIDAuMTAwMCA3MDkgMC4yMDAwIDEgMwotVHJhY2s6IFkgMC4wOTUwIDgxMCAwLjE5MDAgMSAzCi1UcmFjazogWSAwLjA5NTAgODEwIDAuMTkwMCAxIDIKLVRyYWNrOiBYIDAuMTAwMCA3MDkgMC4yMDAwIDEgMgotVHJhY2s6IFggMC4xMDAwIDcwOSAwLjIwMDAgMSAxCi1UcmFjazogWSAwLjA5NTAgODEwIDAuMTkwMCAxIDEKLQotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0jICBHQ2VsbEdyaWQ6IGRpciBzdGFydCBudW1iZXIgc3BhY2UgICAgICAgICAgICAgICAgICMKLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotR0NlbGxHcmlkOiBZIDAuMDAwMCAyIDEuODk1MAotR0NlbGxHcmlkOiBZIDEuODk1MCA3MyAyLjEwMDAKLUdDZWxsR3JpZDogWSAxNTMuMDk1MCAyIDAuODA1MAotR0NlbGxHcmlkOiBYIDAuMDAwMCAyIDEuOTMwMAotR0NlbGxHcmlkOiBYIDEuOTMwMCA2NyAyLjEwMDAKLUdDZWxsR3JpZDogWCAxNDAuNTMwMCAyIDEuMjcwMAotCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSMgIFNwYXJlQ2VsbDogY2VsbE5hbWUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIwotIyAgU3BhcmVJbnN0OiBpbnN0TmFtZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLQotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIzFwIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0jICA8U2VsZWN0aXZlQmxvY2thZ2U+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjCi0jICAgICA8Y2VsbCBuYW1lPSJjZWxsX25hbWUiIC8+ICAgICAgICAgICAgICAgICAgICAgIwotIyAgPC9TZWxlY3RpdmVCbG9ja2FnZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIwotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSMgIFNjYW5Hcm91cDogZ3JvdXBOYW1lIHN0YXJ0UGluIHN0b3BQaW4gICAgICAgICAgICAgIwotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0KLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotIyAgSnRhZ0NlbGw6ICBsZWFmQ2VsbE5hbWUgICAgICAgICAgICAgICAgICAgICAgICAgICAjCi0jICBKdGFnSW5zdDogIDxpbnN0TmFtZSB8IEhJbnN0TmFtZT4gICAgICAgICAgICAgICAgICMKLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotIyAgQmxhY2tCb3g6IC1jZWxsIDxjZWxsX25hbWU+IHsgLXNpemUgPHg+IDx5PiB8ICAtYXJlYSA8dW1eMj4gfCBcICAgICAgICAgICAgICAgICAgIwotIyAgICAgICAgICAgIC1nYXRlY291bnQgPGNvdW50PiA8YXJlYXBlcmdhdGU+IDx1dGlsaXphdGlvbj4gfCBcICAgICAgICAgICAgICAgICAgICAgIwotIyAgICAgICAgICAgIHstZ2F0ZUFyZWEgPGdhdGVBcmVhVmFsdWU+IFstbWFjcm9BcmVhIDxtYWNyb0FyZWFWYWx1ZT5dfSB9IFwgICAgICAgICAgIwotIyAgICAgICAgICAgIFstbWlud2lkdGggPHc+IHwgLW1pbmhlaWdodCA8aD4gfCAtZml4ZWR3aWRoIDx3PiB8IC1maXhlZGhlaWdodCA8aD5dIFwgIwotIyAgICAgICAgICAgIFstYXNwZWN0cmF0aW8gPHJhdGlvPl0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMKLSMgICAgICAgICAgICBbLWJveExpc3QgPG5yQ29uc3RyYWludEJveD4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjCi0jICAgICAgICAgICAgICBDb25zdHJhaW50Qm94OiA8bGx4PiA8bGx5PiA8dXJ4PiA8dXJ5PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIwotIyAgICAgICAgICAgICAgLi4uIF0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMKLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0KLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotIyAgPEJsYWNrYm94ZXM+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjCi0jICAgICA8QmxhY2tib3ggIGNlbGw9bmFtZSAgd2lkdGg9TiBoZWlnaHQ9TiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMKLSMgICAgICAgICAgICAgICAgeyBhcmVhPUEgfCBnYXRlY291bnQ9TiBhcmVhUGVyR2F0ZT1BIGNlbGxVdGlsPUYgfCAgICAgICAgICAgICAgICAgICAgIwotIyAgICAgICAgICAgICAgICAgIGdhdGVBcmVhPUYge21hY3JvQXJlYT1GIHwgbWFjb3JMaXN0PSdzdHInfSBpbmNsdWRlTWFjcm9BcmVhPXswfDF9fSAjCi0jICAgICAgICAgICAgICAgIFttaW5XaWR0aD1OIHwgbWluSGVpZ2h0PU4gfCBmaXhlZFdpZGg9TiB8IGZpeGVkSGVpZ2h0PU5dICAgICAgICAgICAgICMKLSMgICAgICAgICAgICAgICAgW2FzcGVjdFJhdGlvPVJdID4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIwotIyAgICAgICAgIDxCb3ggbGx4PWZsb2F0IGxseT1mbG9hdCB1cng9ZmxvYXQgdXJ5PWZsb2F0IC8+IC4uLiAgICAgICAgICAgICAgICAgICAgICAgICAjCi0jICAgICA8L0JsYWNrYm94PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMKLSMgIDwvQmxhY2tib3hlcz4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIwotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0KLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotIyAgUGh5c2ljYWxOZXQ6IDxuYW1lPiBbLXB3cnwtZ25kfC10aWVoaXwtdGllbG9dICAgICAgICAjCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLVBoeXNpY2FsTmV0OiBWREQgLXB3cgotUGh5c2ljYWxOZXQ6IEFWZGQgLXB3cgotUGh5c2ljYWxOZXQ6IFZTUyAtZ25kCi1QaHlzaWNhbE5ldDogQVZzcyAtZ25kCi1QaHlzaWNhbE5ldDogQXZkZCAtcHdyCi1QaHlzaWNhbE5ldDogQXZzcyAtZ25kCi0KLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotIyAgUGh5c2ljYWxJbnN0YW5jZTogPG5hbWU+IDxjZWxsPiA8b3JpZW50PiA8bGx4PiA8bGx5PiAjCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLQotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0jICBHcm91cDogPGdyb3VwX25hbWU+IDxuckhpbnN0PiBbLWlzUGh5SGllcl0gICAgICAgICAgICAgICAgICAgICAgICMKLSMgICAgPGluc3RfbmFtZT4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIwotIyAgICAuLi4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLQotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0jICBGZW5jZTogIDxuYW1lPiA8bGx4PiA8bGx5PiA8dXJ4PiA8dXJ5PiA8bnJDb25zdHJhaW50Qm94PiAgICAgICAgICMKLSMgICAgQ29uc3RyYWludEJveDogPGxseD4gPGxseT4gPHVyeD4gPHVyeT4gICAgICAgICAgICAgICAgICAgICAgICAgIwotIyAgICAuLi4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjCi0jICBSZWdpb246IDxuYW1lPiA8bGx4PiA8bGx5PiA8dXJ4PiA8dXJ5PiA8bnJDb25zdHJhaW50Qm94PiAgICAgICAgICMKLSMgICAgQ29uc3RyYWludEJveDogPGxseD4gPGxseT4gPHVyeD4gPHVyeT4gICAgICAgICAgICAgICAgICAgICAgICAgIwotIyAgICAuLi4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjCi0jICBHdWlkZTogIDxuYW1lPiA8bGx4PiA8bGx5PiA8dXJ4PiA8dXJ5PiA8bnJDb25zdHJhaW50Qm94PiAgICAgICAgICMKLSMgICAgQ29uc3RyYWludEJveDogPGxseD4gPGxseT4gPHVyeD4gPHVyeT4gICAgICAgICAgICAgICAgICAgICAgICAgIwotIyAgICAuLi4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjCi0jICBTb2Z0R3VpZGU6IDxuYW1lPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMKLSMgICAgLi4uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIwotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi1GZW5jZTogTVBZXzMyX0lOU1QgMC44MDAwIDAuMDAwMCA4Mi40MDAwIDg4LjkyMDAgMAotCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSMgIDxDb25zdHJhaW50cz4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIwotIyAgICAgPENvbnN0cmFpbnQgIHR5cGU9ImZlbmNlfGd1aWRlfHJlZ2lvbnxzb2Z0Z3VpZGUiICAgICAgICAgICAgICAgICAgICAjCi0jICAgICAgICAgICAgICAgICAgcmVhZG9ubHk9MSAgbmFtZT0iYmxrX25hbWUiPiAgICAgICAgICAgICAgICAgICAgICAgICAgICMKLSMgICAgICAgPEJveCBsbHg9MSBsbHk9MiB1cng9MyB1cnk9NCAvPiAuLi4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIwotIyAgICAgPC9Db25zdHJhaW50PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjCi0jICA8L0NvbnN0cmFpbnRzPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMKLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotPENvbnN0cmFpbnRzPgotICAgIDxDb25zdHJhaW50IHR5cGU9IkZlbmNlIiBuYW1lPSJNUFlfMzJfSU5TVCIgbGx4PTAuODAwMCBsbHk9MC4wMDAwIHVyeD04Mi40MDAwIHVyeT04OC45MjAwIG5yQm94PTAgPgotICAgIDwvQ29uc3RyYWludD4KLTwvQ29uc3RyYWludHM+Ci0KLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotIyAgPEhpZXJhcmNoaWNhbFBhcnRpdGlvbnM+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjCi0jICAgICA8TmV0R3JvdXAgbmFtZT0iZ3JvdXBfbmFtZSIgbmV0cz12YWwgc3BhY2luZz12YWwgaXNPcHRPcmRlcj12YWwgICAgICMKLSMgICAgICAgICBpc0FsdExheWVyPXZhbCBpc1BmZkdyb3VwPXZhbCBpc1NwcmVhZFBpbj12YWwgICAgICAgICAgICAgICAgICAgIwotIyAgICAgICAgIGlzRXhjbHVkZUFsbExheWVyPXZhbCBpc0V4Y2x1ZGVTYW1lTGF5ZXI9dmFsID4gICAgICAgICAgICAgICAgICAjCi0jICAgICAgICAgPE5ldCBuYW1lPSJuZXRfbmFtZSIgLz4gLi4uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMKLSMgICAgIDwvTmV0R3JvdXA+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIwotIyAgICAgPFBhcnRpdGlvbiBuYW1lPSJwdG5fbmFtZSIgIGhpbnN0PSJuYW1lIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAjCi0jICAgICAgICAgY29yZVRvTGVmdD1mdmFsIGNvcmVUb1JpZ2h0PWZ2YWwgY29yZVRvVG9wPWZ2YWwgICAgICAgICAgICAgICAgICMKLSMgICAgICAgICBjb3JlVG9Cb3R0b209dmFsIHBpblNwYWNpbmdOb3J0aD12YWwgcGluU3BhY2luZ1dlc3Q9dmFsICAgICAgICAgIwotIyAgICAgICAgIHBpblNwYWNpbmdTb3V0aD12YWwgcGluU3BhY2luZ0Vhc3Q9dmFsICBibG9ja2VkTGF5ZXJzPXh2YWwgPiAgICAjCi0jICAgICAgICAgPFRyYWNrSGFsZlBpdGNoIEhvcml6b250YWw9dmFsIFZlcnRpY2FsPXZhbCAvPiAgICAgICAgICAgICAgICAgICMKLSMgICAgICAgICA8U3BhY2luZ0hhbG8gbGVmdD0xMC4wIHJpZ2h0PTExLjAgdG9wPTExLjAgYm90dG9tPTExLjAgLz4gICAgICAgIwotIyAgICAgICAgIDxDbG9uZSBoaW5zdD0iaGluc3RfbmFtZSIgb3JpZW50PVIwfFI5MHwuLi4gLz4gICAgICAgICAgICAgICAgICAjCi0jICAgICAgICAgPFBpbkxheWVyIHNpZGU9Ik58V3xTfEUiIE1ldGFsMT15ZXMgTWV0YWwyPXllcyAuLi4gLz4gICAgICAgICAgICMKLSMgICAgICAgICA8Um93U2l6ZSBjZWxsSGVpZ2h0PTEuMCByYWlsV2lkdGg9MS4wIC8+ICAgICAgICAgICAgICAgICAgICAgICAgIwotIyAgICAgICAgIDxSb3V0aW5nSGFsbyBzaWRlU2l6ZT0xMS4wIGJvdHRvbUxheWVyPU0xIHRvcExheWVyPU0yICAvPiAgICAgICAjCi0jICAgICAgICAgPFNwYWNpbmdIYWxvIGxlZnQ9MTEuMCByaWdodD0xMS4wIHRvcD0xMS4wIGJvdHRvbT0xMS4wIC8+ICAgICAgICMKLSMgICAgIDwvUGFydGl0aW9uPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIwotIyAgICAgPENlbGxQaW5Hcm91cCBuYW1lPSJncm91cF9uYW1lIiBjZWxsPSJjZWxsX25hbWUiIHBpbnM9bnIgICAgICAgICAgICAjCi0jICAgICAgICAgc3BhY2luZz12YWwgaXNPcHRPcmRlcj12YWwgaXNBbHRMYXllcj12YWwgaXNTcHJlYWRQaW49dmFsICAgICAgICMKLSMgICAgICAgICBpc0V4Y2x1ZGVBbGxMYXllcj12YWwgaXNFeGNsdWRlU2FtZUxheWVyPXZhbCA+ICAgICAgICAgICAgICAgICAgIwotIyAgICAgICAgIDxHcm91cEZUZXJtIG5hbWU9InRlcm1fbmFtZSIgLz4gLi4uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjCi0jICAgICA8L0NlbGxQaW5Hcm91cD4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMKLSMgICAgIDxQYXJ0aXRpb25QaW5CbG9ja2FnZSBsYXllck1hcD14IGxseD0xIGxseT0yIHVyeD0zIHVyeT00IG5hbWU9Im4iIC8+IwotIyAgICAgPFBpbkd1aWRlIG5hbWU9Im5hbWUiIGJveGVzPW51bSBsYXllclByaW9yaXR5PXZhbCBjZWxsPSJuYW1lIiA+ICAgICAjCi0jICAgICAgICA8Qm94IGxseD0xMS4wIGxseT0yMi4wIHVyeD0zMy4wIHVyeT00NC4wIGxheWVyPWlkIC8+IC4uLiAgICAgICAgICMKLSMgICAgIDwvUGluR3VpZGU+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIwotIyAgICAgPENlbGxQdG5DdXQgbmFtZT0ibmFtZSIgY3V0cz1OdW0gPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjCi0jICAgICAgICA8Qm94IGxseD0xMS4wIGxseT0yMi4wIHVyeD0zMy4wIHVyeT00NC4wIC8+IC4uLiAgICAgICAgICAgICAgICAgICMKLSMgICAgIDwvQ2VsbFB0bkN1dD4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIwotIyAgPC9IaWVyYXJjaGljYWxQYXJ0aXRpb25zPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLTxIaWVyYXJjaGljYWxQYXJ0aXRpb25zPgotICAgIDxUcmFja0hhbGZQaXRjaCBIb3Jpem9udGFsPTAgVmVydGljYWw9MSAvPgotICAgIDxQYXJ0aXRpb24gbmFtZT0ibXVsdF8zMiIgaGluc3Q9Ik1QWV8zMl9JTlNUIiBjb3JlVG9MZWZ0PTAuMDAwMCBjb3JlVG9SaWdodD0wLjAwMDAgY29yZVRvVG9wPTAuMDAwMCBjb3JlVG9Cb3R0b209MC4wMDAwIHBpblNwYWNpbmdOb3J0aD0yIHBpblNwYWNpbmdXZXN0PTIgcGluU3BhY2luZ1NvdXRoPTIgcGluU3BhY2luZ0Vhc3Q9MiBibG9ja2VkTGF5ZXJzPTB4MWZmID4KLQk8UGluTGF5ZXIgc2lkZT0iTiIgTWV0YWwyPXllcyBNZXRhbDQ9eWVzIE1ldGFsNj15ZXMgLz4KLQk8UGluTGF5ZXIgc2lkZT0iVyIgTWV0YWwzPXllcyBNZXRhbDU9eWVzIC8+Ci0JPFBpbkxheWVyIHNpZGU9IlMiIE1ldGFsMj15ZXMgTWV0YWw0PXllcyBNZXRhbDY9eWVzIC8+Ci0JPFBpbkxheWVyIHNpZGU9IkUiIE1ldGFsMz15ZXMgTWV0YWw1PXllcyAvPgotCTxSb3dTaXplIGNlbGxIZWlnaHQ9MS43MTAwIHJhaWxXaWR0aD0wLjAwMDAgLz4KLSAgICA8L1BhcnRpdGlvbj4KLSAgICA8UGFydGl0aW9uIG5hbWU9InRkc3BfY29yZSIgaGluc3Q9IiIgY29yZVRvTGVmdD0wLjAwMDAgY29yZVRvUmlnaHQ9MC4wMDAwIGNvcmVUb1RvcD0wLjAwMDAgY29yZVRvQm90dG9tPTAuMDAwMCBwaW5TcGFjaW5nTm9ydGg9MiBwaW5TcGFjaW5nV2VzdD0yIHBpblNwYWNpbmdTb3V0aD0yIHBpblNwYWNpbmdFYXN0PTIgYmxvY2tlZExheWVycz0weDFmZiA+Ci0JPFBpbkxheWVyIHNpZGU9Ik4iIE1ldGFsMj15ZXMgTWV0YWw0PXllcyBNZXRhbDY9eWVzIC8+Ci0JPFBpbkxheWVyIHNpZGU9IlciIE1ldGFsMz15ZXMgTWV0YWw1PXllcyAvPgotCTxQaW5MYXllciBzaWRlPSJTIiBNZXRhbDI9eWVzIE1ldGFsND15ZXMgTWV0YWw2PXllcyAvPgotCTxQaW5MYXllciBzaWRlPSJFIiBNZXRhbDM9eWVzIE1ldGFsNT15ZXMgLz4KLQk8Um93U2l6ZSBjZWxsSGVpZ2h0PTEuNzEwMCByYWlsV2lkdGg9MC4wMDAwIC8+Ci0gICAgPC9QYXJ0aXRpb24+Ci08L0hpZXJhcmNoaWNhbFBhcnRpdGlvbnM+Ci0KLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotIyAgSW5zdGFuY2U6IDxuYW1lPiA8b3JpZW50PiA8bGx4PiA8bGx5PiAgICAgICAgICAgICAjCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLQotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSMgIEJsb2NrOiA8bmFtZT4gPG9yaWVudD4gWzxsbHg+IDxsbHk+XSAgICAgICAgICAgICAgICAgICAgICAgICAjCi0jICAgICAgICAgWzxoYWxvTGVmdE1hcmdpbj4gIDxoYWxvQm90dG9tTWFyZ2luPiAgICAgICAgICAgICAgICAgIwotIyAgICAgICAgICA8aGFsb1JpZ2h0TWFyZ2luPiA8aGFsb1RvcE1hcmdpbj4gPGhhbG9Gcm9tSW5zdEJveD5dICMKLSMgICAgICAgICBbPElzSW5zdERlZkNvdmVyZWQ+IDxJc0luc3RQcmVwbGFjZWQ+XSAgICAgICAgICAgICAgICAjCi0jICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIwotIyAgQmxvY2sgd2l0aCBJTlRfTUFYIGxvYyBpcyBmb3IgcmVjb3JkaW5nIHRoZSBoYWxvIGJsb2NrIHdpdGggICMKLSMgIG5vbi1wcmVQbGFjZWQgc3RhdHVzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSMgIEJsb2NrTGF5ZXJPYnN0cnVjdDogPG5hbWU+IDxsYXllclg+IC4uLiAgICAgICAgICAgIwotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0KLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotIyAgRmVlZHRocm91Z2hCdWZmZXI6IDxpbnN0TmFtZT4gICAgICAgICAgICAgICAgICAgICAjCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLQotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSMgIDxQbGFjZW1lbnRCbG9ja2FnZXM+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjCi0jICAgICA8QmxvY2thZ2UgbmFtZT0iYmxrX25hbWUiIHR5cGU9ImhhcmR8c29mdHxwYXJ0aWFsIj4gICAgICAgIwotIyAgICAgICA8QXR0ciBkZW5zaXR5PTEuMiBpbnN0PSJpbnN0X25hbWUiIHB1c2hkb3duPXllcyAvPiAgICAgICMKLSMgICAgICAgPEJveCBsbHg9MSBsbHk9MiB1cng9MyB1cnk9NCAvPiAuLi4gICAgICAgICAgICAgICAgICAgICAjCi0jICAgICA8L0Jsb2NrYWdlPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIwotIyAgPC9QbGFjZW1lbnRCbG9ja2FnZXM+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMKLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0KLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0jICA8U2l6ZUJsb2NrYWdlcz4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjCi0jICAgICA8QmxvY2thZ2UgbmFtZT0iYmxrX25hbWUiPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMKLSMgICAgICAgPEJveCBsbHg9MSBsbHk9MiB1cng9MyB1cnk9NCAvPiAuLi4gICAgICAgICAgICAgICAgICAgICAjCi0jICAgICA8L0Jsb2NrYWdlPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIwotIyAgPC9TaXplQmxvY2thZ2VzPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIwotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLQotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0jICA8Um91dGVCbG9ja2FnZXM+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMKLSMgICAgIDxCbG9ja2FnZSBuYW1lPSJibGtfbmFtZSIgdHlwZT0iVXNlcnxSb3V0ZUd1aWRlfFB0bkN1dHxXaWRlV2lyZSI+ICAgIwotIyAgICAgICA8QXR0ciBzcGFjaW5nPTEuMiBkcnc9MS4yIGluc3Q9Im5hbWUiIHB1c2hkb3duPXllcyBmaWxscz15ZXMgLz4gICAjCi0jICAgICAgIDxMYXllciB0eXBlPSJyb3V0ZXxjdXR8bWFzdGVyc2xpY2UiIGlkPWxheWVyTm8gLz4gICAgICAgICAgICAgICAgICMKLSMgICAgICAgPEJveCBsbHg9MSBsbHk9MiB1cng9MyB1cnk9NCAvPiAuLi4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIwotIyAgICAgICA8UG9seSBwb2ludHM9bnIgeDA9MSB5MD0xIHgxPTIgeTI9MiAuLi4gIC8+ICAgICAgICAgICAgICAgICAgICAgICAjCi0jICAgICA8L0Jsb2NrYWdlPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMKLSMgIDwvUm91dGVCbG9ja2FnZXM+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIwotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0KLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotIyAgUHJlcm91dGVBc09ic3RydWN0OiA8bGF5ZXJfdHJlYXRlZF9hc19vYnN0cnVjdD4gICAjCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLVByZXJvdXRlQXNPYnN0cnVjdDogMHgzCi0KLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotIyAgTmV0V2VpZ2h0OiA8bmV0X25hbWU+IDx3ZWlnaHQgKGluIGludGVnZXIpPiAgICAgICAjCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLQotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSMgIFNwckZpbGU6IDxmaWxlX25hbWU+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotU3ByRmlsZTogaGllci5mcC5zcHIKLQotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0jICA8SU9QaW5zPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMKLSMgICAgPFBpbiBuYW1lPSJwaW5fbmFtZSIgdHlwZT0iY2xvY2t8cG93ZXJ8Z3JvdW5kfGFuYWxvZyIgICAgICAgICAgICAgICAgICAgIwotIyAgICAgICAgIHN0YXR1cz0iY292ZXJlZHxmaXhlZHxwbGFjZWQiIGlzX3NwZWNpYWw9MSA+ICAgICAgICAgICAgICAgICAgICAgICAjCi0jICAgICAgPFBvcnQ+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMKLSMgICAgICAgIDxQcmVmIHg9MSB5PTIgc2lkZT0iTnxTfFd8RXxVfEQiIHdpZHRoPXcgZGVwdGg9ZCBvcmllbnRhdGlvbj12YWwgLz4gIwotIyAgICAgICAgPFZpYSBuYW1lPSJ2aWFfbmFtZSIgeD0xIHk9MiAvPi4uLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjCi0jICAgICAgICA8TGF5ZXIgaWQ9aWQgc3BhY2luZz0xLjIgZHJ3PTEuMj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMKLSMgICAgICAgICAgPEJveCBsbHg9MSBsbHk9MiB1cng9MyB1cnk9NCAvPiAuLi4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIwotIyAgICAgICAgICA8UG9seSBwb2ludHM9bnIgeDA9MSB5MD0xIHgxPTIgeTI9MiAuLi4gICAgICAgICAgIC8+ICAgICAgICAgICAgICAjCi0jICAgICAgICA8L0xheWVyPiAuLi4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMKLSMgICAgICA8L1BvcnQ+ICAuLi4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIwotIyAgICAgIDxBbnRlbm5hIG1vZGVsPW51bSB0eXBlPSJuYW1lIiB2YWx1ZT1mbG9hdF9udW0gbGF5ZXI9bnVtIC8+IC4uLiAgICAgICAjCi0jICAgIDwvUGluPiAuLi4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMKLSMgIDwvSU9QaW5zPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIwotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0KLTxJT1BpbnM+Ci0gIDxQaW4gbmFtZT0iY2xrIiBzdGF0dXM9ImZpeGVkIiA+Ci0gICAgPFBvcnQ+Ci0gICAgICA8UHJlZiB4PTAuMDAwMCB5PTEwOC43NzUwIHNpZGU9VyB3aWR0aD0wLjA3MDAgZGVwdGg9MC4yOTAwIC8+Ci0gICAgICA8TGF5ZXIgaWQ9MyA+Ci0gICAgICAgIDxCb3ggbGx4PTAuMDAwMCBsbHk9MTA4Ljc0MDAgdXJ4PTAuMjkwMCB1cnk9MTA4LjgxMDAgLz4KLSAgICAgIDwvTGF5ZXI+Ci0gICAgPC9Qb3J0PgotICA8L1Bpbj4KLSAgPFBpbiBuYW1lPSJyZXNldCIgc3RhdHVzPSJmaXhlZCIgPgotICAgIDxQb3J0PgotICAgICAgPFByZWYgeD0xNC43MDAwIHk9MC4wMDAwIHNpZGU9UyB3aWR0aD0wLjA3MDAgZGVwdGg9MC4yOTAwIC8+Ci0gICAgICA8TGF5ZXIgaWQ9MiA+Ci0gICAgICAgIDxCb3ggbGx4PTE0LjY2NTAgbGx5PTAuMDAwMCB1cng9MTQuNzM1MCB1cnk9MC4yOTAwIC8+Ci0gICAgICA8L0xheWVyPgotICAgIDwvUG9ydD4KLSAgPC9QaW4+Ci0gIDxQaW4gbmFtZT0iYXMiIHN0YXR1cz0iZml4ZWQiID4KLSAgICA8UG9ydD4KLSAgICAgIDxQcmVmIHg9MC4wMDAwIHk9MTMyLjUyNTAgc2lkZT1XIHdpZHRoPTAuMDcwMCBkZXB0aD0wLjI5MDAgLz4KLSAgICAgIDxMYXllciBpZD0zID4KLSAgICAgICAgPEJveCBsbHg9MC4wMDAwIGxseT0xMzIuNDkwMCB1cng9MC4yOTAwIHVyeT0xMzIuNTYwMCAvPgotICAgICAgPC9MYXllcj4KLSAgICA8L1BvcnQ+Ci0gIDwvUGluPgotICA8UGluIG5hbWU9InJlYWQiIHN0YXR1cz0iZml4ZWQiID4KLSAgICA8UG9ydD4KLSAgICAgIDxQcmVmIHg9MC4wMDAwIHk9MTMwLjgxNTAgc2lkZT1XIHdpZHRoPTAuMDcwMCBkZXB0aD0wLjI5MDAgLz4KLSAgICAgIDxMYXllciBpZD0zID4KLSAgICAgICAgPEJveCBsbHg9MC4wMDAwIGxseT0xMzAuNzgwMCB1cng9MC4yOTAwIHVyeT0xMzAuODUwMCAvPgotICAgICAgPC9MYXllcj4KLSAgICA8L1BvcnQ+Ci0gIDwvUGluPgotICA8UGluIG5hbWU9IndyaXRlIiBzdGF0dXM9ImZpeGVkIiA+Ci0gICAgPFBvcnQ+Ci0gICAgICA8UHJlZiB4PTAuMDAwMCB5PTEyNy4zOTUwIHNpZGU9VyB3aWR0aD0wLjA3MDAgZGVwdGg9MC4yOTAwIC8+Ci0gICAgICA8TGF5ZXIgaWQ9MyA+Ci0gICAgICAgIDxCb3ggbGx4PTAuMDAwMCBsbHk9MTI3LjM2MDAgdXJ4PTAuMjkwMCB1cnk9MTI3LjQzMDAgLz4KLSAgICAgIDwvTGF5ZXI+Ci0gICAgPC9Qb3J0PgotICA8L1Bpbj4KLSAgPFBpbiBuYW1lPSJ3cml0ZV9oIiBzdGF0dXM9ImZpeGVkIiA+Ci0gICAgPFBvcnQ+Ci0gICAgICA8UHJlZiB4PTAuMDAwMCB5PTc3LjA0NTAgc2lkZT1XIHdpZHRoPTAuMDcwMCBkZXB0aD0wLjI5MDAgLz4KLSAgICAgIDxMYXllciBpZD0zID4KLSAgICAgICAgPEJveCBsbHg9MC4wMDAwIGxseT03Ny4wMTAwIHVyeD0wLjI5MDAgdXJ5PTc3LjA4MDAgLz4KLSAgICAgIDwvTGF5ZXI+Ci0gICAgPC9Qb3J0PgotICA8L1Bpbj4KLSAgPFBpbiBuYW1lPSJhZGRyZXNzWzddIiBzdGF0dXM9ImZpeGVkIiA+Ci0gICAgPFBvcnQ+Ci0gICAgICA8UHJlZiB4PTAuMDAwMCB5PTExMS44MTUwIHNpZGU9VyB3aWR0aD0wLjA3MDAgZGVwdGg9MC4yOTAwIC8+Ci0gICAgICA8TGF5ZXIgaWQ9MyA+Ci0gICAgICAgIDxCb3ggbGx4PTAuMDAwMCBsbHk9MTExLjc4MDAgdXJ4PTAuMjkwMCB1cnk9MTExLjg1MDAgLz4KLSAgICAgIDwvTGF5ZXI+Ci0gICAgPC9Qb3J0PgotICA8L1Bpbj4KLSAgPFBpbiBuYW1lPSJhZGRyZXNzWzZdIiBzdGF0dXM9ImZpeGVkIiA+Ci0gICAgPFBvcnQ+Ci0gICAgICA8UHJlZiB4PTAuMDAwMCB5PTEwNy4wNjUwIHNpZGU9VyB3aWR0aD0wLjA3MDAgZGVwdGg9MC4yOTAwIC8+Ci0gICAgICA8TGF5ZXIgaWQ9MyA+Ci0gICAgICAgIDxCb3ggbGx4PTAuMDAwMCBsbHk9MTA3LjAzMDAgdXJ4PTAuMjkwMCB1cnk9MTA3LjEwMDAgLz4KLSAgICAgIDwvTGF5ZXI+Ci0gICAgPC9Qb3J0PgotICA8L1Bpbj4KLSAgPFBpbiBuYW1lPSJhZGRyZXNzWzVdIiBzdGF0dXM9ImZpeGVkIiA+Ci0gICAgPFBvcnQ+Ci0gICAgICA8UHJlZiB4PTAuMDAwMCB5PTEwNC4yMTUwIHNpZGU9VyB3aWR0aD0wLjA3MDAgZGVwdGg9MC4yOTAwIC8+Ci0gICAgICA8TGF5ZXIgaWQ9MyA+Ci0gICAgICAgIDxCb3ggbGx4PTAuMDAwMCBsbHk9MTA0LjE4MDAgdXJ4PTAuMjkwMCB1cnk9MTA0LjI1MDAgLz4KLSAgICAgIDwvTGF5ZXI+Ci0gICAgPC9Qb3J0PgotICA8L1Bpbj4KLSAgPFBpbiBuYW1lPSJhZGRyZXNzWzRdIiBzdGF0dXM9ImZpeGVkIiA+Ci0gICAgPFBvcnQ+Ci0gICAgICA8UHJlZiB4PTAuMDAwMCB5PTExMS44MTUwIHNpZGU9VyB3aWR0aD0wLjA3MDAgZGVwdGg9MC4yOTAwIC8+Ci0gICAgICA8TGF5ZXIgaWQ9NSA+Ci0gICAgICAgIDxCb3ggbGx4PTAuMDAwMCBsbHk9MTExLjc4MDAgdXJ4PTAuMjkwMCB1cnk9MTExLjg1MDAgLz4KLSAgICAgIDwvTGF5ZXI+Ci0gICAgPC9Qb3J0PgotICA8L1Bpbj4KLSAgPFBpbiBuYW1lPSJhZGRyZXNzWzNdIiBzdGF0dXM9ImZpeGVkIiA+Ci0gICAgPFBvcnQ+Ci0gICAgICA8UHJlZiB4PTAuMDAwMCB5PTExMy45MDUwIHNpZGU9VyB3aWR0aD0wLjA3MDAgZGVwdGg9MC4yOTAwIC8+Ci0gICAgICA8TGF5ZXIgaWQ9MyA+Ci0gICAgICAgIDxCb3ggbGx4PTAuMDAwMCBsbHk9MTEzLjg3MDAgdXJ4PTAuMjkwMCB1cnk9MTEzLjk0MDAgLz4KLSAgICAgIDwvTGF5ZXI+Ci0gICAgPC9Qb3J0PgotICA8L1Bpbj4KLSAgPFBpbiBuYW1lPSJhZGRyZXNzWzJdIiBzdGF0dXM9ImZpeGVkIiA+Ci0gICAgPFBvcnQ+Ci0gICAgICA8UHJlZiB4PTAuMDAwMCB5PTExOC42NTUwIHNpZGU9VyB3aWR0aD0wLjA3MDAgZGVwdGg9MC4yOTAwIC8+Ci0gICAgICA8TGF5ZXIgaWQ9NSA+Ci0gICAgICAgIDxCb3ggbGx4PTAuMDAwMCBsbHk9MTE4LjYyMDAgdXJ4PTAuMjkwMCB1cnk9MTE4LjY5MDAgLz4KLSAgICAgIDwvTGF5ZXI+Ci0gICAgPC9Qb3J0PgotICA8L1Bpbj4KLSAgPFBpbiBuYW1lPSJhZGRyZXNzWzFdIiBzdGF0dXM9ImZpeGVkIiA+Ci0gICAgPFBvcnQ+Ci0gICAgICA8UHJlZiB4PTAuMDAwMCB5PTExNS4yMzUwIHNpZGU9VyB3aWR0aD0wLjA3MDAgZGVwdGg9MC4yOTAwIC8+Ci0gICAgICA8TGF5ZXIgaWQ9NSA+Ci0gICAgICAgIDxCb3ggbGx4PTAuMDAwMCBsbHk9MTE1LjIwMDAgdXJ4PTAuMjkwMCB1cnk9MTE1LjI3MDAgLz4KLSAgICAgIDwvTGF5ZXI+Ci0gICAgPC9Qb3J0PgotICA8L1Bpbj4KLSAgPFBpbiBuYW1lPSJhZGRyZXNzWzBdIiBzdGF0dXM9ImZpeGVkIiA+Ci0gICAgPFBvcnQ+Ci0gICAgICA8UHJlZiB4PTAuMDAwMCB5PTEyMC43NDUwIHNpZGU9VyB3aWR0aD0wLjA3MDAgZGVwdGg9MC4yOTAwIC8+Ci0gICAgICA8TGF5ZXIgaWQ9MyA+Ci0gICAgICAgIDxCb3ggbGx4PTAuMDAwMCBsbHk9MTIwLjcxMDAgdXJ4PTAuMjkwMCB1cnk9MTIwLjc4MDAgLz4KLSAgICAgIDwvTGF5ZXI+Ci0gICAgPC9Qb3J0PgotICA8L1Bpbj4KLSAgPFBpbiBuYW1lPSJ0X2RhdGFfaW5bMTVdIiBzdGF0dXM9ImZpeGVkIiA+Ci0gICAgPFBvcnQ+Ci0gICAgICA8UHJlZiB4PTAuMDAwMCB5PTgxLjc5NTAgc2lkZT1XIHdpZHRoPTAuMDcwMCBkZXB0aD0wLjI5MDAgLz4KLSAgICAgIDxMYXllciBpZD0zID4KLSAgICAgICAgPEJveCBsbHg9MC4wMDAwIGxseT04MS43NjAwIHVyeD0wLjI5MDAgdXJ5PTgxLjgzMDAgLz4KLSAgICAgIDwvTGF5ZXI+Ci0gICAgPC9Qb3J0PgotICA8L1Bpbj4KLSAgPFBpbiBuYW1lPSJ0X2RhdGFfaW5bMTRdIiBzdGF0dXM9ImZpeGVkIiA+Ci0gICAgPFBvcnQ+Ci0gICAgICA8UHJlZiB4PTAuMDAwMCB5PTcyLjQ4NTAgc2lkZT1XIHdpZHRoPTAuMDcwMCBkZXB0aD0wLjI5MDAgLz4KLSAgICAgIDxMYXllciBpZD0zID4KLSAgICAgICAgPEJveCBsbHg9MC4wMDAwIGxseT03Mi40NTAwIHVyeD0wLjI5MDAgdXJ5PTcyLjUyMDAgLz4KLSAgICAgIDwvTGF5ZXI+Ci0gICAgPC9Qb3J0PgotICA8L1Bpbj4KLSAgPFBpbiBuYW1lPSJ0X2RhdGFfaW5bMTNdIiBzdGF0dXM9ImZpeGVkIiA+Ci0gICAgPFBvcnQ+Ci0gICAgICA8UHJlZiB4PTAuMDAwMCB5PTgxLjc5NTAgc2lkZT1XIHdpZHRoPTAuMDcwMCBkZXB0aD0wLjI5MDAgLz4KLSAgICAgIDxMYXllciBpZD01ID4KLSAgICAgICAgPEJveCBsbHg9MC4wMDAwIGxseT04MS43NjAwIHVyeD0wLjI5MDAgdXJ5PTgxLjgzMDAgLz4KLSAgICAgIDwvTGF5ZXI+Ci0gICAgPC9Qb3J0PgotICA8L1Bpbj4KLSAgPFBpbiBuYW1lPSJ0X2RhdGFfaW5bMTJdIiBzdGF0dXM9ImZpeGVkIiA+Ci0gICAgPFBvcnQ+Ci0gICAgICA8UHJlZiB4PTAuMDAwMCB5PTcyLjY3NTAgc2lkZT1XIHdpZHRoPTAuMDcwMCBkZXB0aD0wLjI5MDAgLz4KLSAgICAgIDxMYXllciBpZD01ID4KLSAgICAgICAgPEJveCBsbHg9MC4wMDAwIGxseT03Mi42NDAwIHVyeD0wLjI5MDAgdXJ5PTcyLjcxMDAgLz4KLSAgICAgIDwvTGF5ZXI+Ci0gICAgPC9Qb3J0PgotICA8L1Bpbj4KLSAgPFBpbiBuYW1lPSJ0X2RhdGFfaW5bMTFdIiBzdGF0dXM9ImZpeGVkIiA+Ci0gICAgPFBvcnQ+Ci0gICAgICA8UHJlZiB4PTAuMDAwMCB5PTY2Ljk3NTAgc2lkZT1XIHdpZHRoPTAuMDcwMCBkZXB0aD0wLjI5MDAgLz4KLSAgICAgIDxMYXllciBpZD01ID4KLSAgICAgICAgPEJveCBsbHg9MC4wMDAwIGxseT02Ni45NDAwIHVyeD0wLjI5MDAgdXJ5PTY3LjAxMDAgLz4KLSAgICAgIDwvTGF5ZXI+Ci0gICAgPC9Qb3J0PgotICA8L1Bpbj4KLSAgPFBpbiBuYW1lPSJ0X2RhdGFfaW5bMTBdIiBzdGF0dXM9ImZpeGVkIiA+Ci0gICAgPFBvcnQ+Ci0gICAgICA8UHJlZiB4PTAuMDAwMCB5PTY2LjQwNTAgc2lkZT1XIHdpZHRoPTAuMDcwMCBkZXB0aD0wLjI5MDAgLz4KLSAgICAgIDxMYXllciBpZD01ID4KLSAgICAgICAgPEJveCBsbHg9MC4wMDAwIGxseT02Ni4zNzAwIHVyeD0wLjI5MDAgdXJ5PTY2LjQ0MDAgLz4KLSAgICAgIDwvTGF5ZXI+Ci0gICAgPC9Qb3J0PgotICA8L1Bpbj4KLSAgPFBpbiBuYW1lPSJ0X2RhdGFfaW5bOV0iIHN0YXR1cz0iZml4ZWQiID4KLSAgICA8UG9ydD4KLSAgICAgIDxQcmVmIHg9MC4wMDAwIHk9NzMuMDU1MCBzaWRlPVcgd2lkdGg9MC4wNzAwIGRlcHRoPTAuMjkwMCAvPgotICAgICAgPExheWVyIGlkPTUgPgotICAgICAgICA8Qm94IGxseD0wLjAwMDAgbGx5PTczLjAyMDAgdXJ4PTAuMjkwMCB1cnk9NzMuMDkwMCAvPgotICAgICAgPC9MYXllcj4KLSAgICA8L1BvcnQ+Ci0gIDwvUGluPgotICA8UGluIG5hbWU9InRfZGF0YV9pbls4XSIgc3RhdHVzPSJmaXhlZCIgPgotICAgIDxQb3J0PgotICAgICAgPFByZWYgeD0wLjAwMDAgeT03My40MzUwIHNpZGU9VyB3aWR0aD0wLjA3MDAgZGVwdGg9MC4yOTAwIC8+Ci0gICAgICA8TGF5ZXIgaWQ9NSA+Ci0gICAgICAgIDxCb3ggbGx4PTAuMDAwMCBsbHk9NzMuNDAwMCB1cng9MC4yOTAwIHVyeT03My40NzAwIC8+Ci0gICAgICA8L0xheWVyPgotICAgIDwvUG9ydD4KLSAgPC9QaW4+Ci0gIDxQaW4gbmFtZT0idF9kYXRhX2luWzddIiBzdGF0dXM9ImZpeGVkIiA+Ci0gICAgPFBvcnQ+Ci0gICAgICA8UHJlZiB4PTAuMDAwMCB5PTgyLjc0NTAgc2lkZT1XIHdpZHRoPTAuMDcwMCBkZXB0aD0wLjI5MDAgLz4KLSAgICAgIDxMYXllciBpZD01ID4KLSAgICAgICAgPEJveCBsbHg9MC4wMDAwIGxseT04Mi43MTAwIHVyeD0wLjI5MDAgdXJ5PTgyLjc4MDAgLz4KLSAgICAgIDwvTGF5ZXI+Ci0gICAgPC9Qb3J0PgotICA8L1Bpbj4KLSAgPFBpbiBuYW1lPSJ0X2RhdGFfaW5bNl0iIHN0YXR1cz0iZml4ZWQiID4KLSAgICA8UG9ydD4KLSAgICAgIDxQcmVmIHg9MC4wMDAwIHk9NzkuMzI1MCBzaWRlPVcgd2lkdGg9MC4wNzAwIGRlcHRoPTAuMjkwMCAvPgotICAgICAgPExheWVyIGlkPTMgPgotICAgICAgICA8Qm94IGxseD0wLjAwMDAgbGx5PTc5LjI5MDAgdXJ4PTAuMjkwMCB1cnk9NzkuMzYwMCAvPgotICAgICAgPC9MYXllcj4KLSAgICA8L1BvcnQ+Ci0gIDwvUGluPgotICA8UGluIG5hbWU9InRfZGF0YV9pbls1XSIgc3RhdHVzPSJmaXhlZCIgPgotICAgIDxQb3J0PgotICAgICAgPFByZWYgeD0wLjAwMDAgeT04MS40MTUwIHNpZGU9VyB3aWR0aD0wLjA3MDAgZGVwdGg9MC4yOTAwIC8+Ci0gICAgICA8TGF5ZXIgaWQ9NSA+Ci0gICAgICAgIDxCb3ggbGx4PTAuMDAwMCBsbHk9ODEuMzgwMCB1cng9MC4yOTAwIHVyeT04MS40NTAwIC8+Ci0gICAgICA8L0xheWVyPgotICAgIDwvUG9ydD4KLSAgPC9QaW4+Ci0gIDxQaW4gbmFtZT0idF9kYXRhX2luWzRdIiBzdGF0dXM9ImZpeGVkIiA+Ci0gICAgPFBvcnQ+Ci0gICAgICA8UHJlZiB4PTAuMDAwMCB5PTgyLjc0NTAgc2lkZT1XIHdpZHRoPTAuMDcwMCBkZXB0aD0wLjI5MDAgLz4KLSAgICAgIDxMYXllciBpZD0zID4KLSAgICAgICAgPEJveCBsbHg9MC4wMDAwIGxseT04Mi43MTAwIHVyeD0wLjI5MDAgdXJ5PTgyLjc4MDAgLz4KLSAgICAgIDwvTGF5ZXI+Ci0gICAgPC9Qb3J0PgotICA8L1Bpbj4KLSAgPFBpbiBuYW1lPSJ0X2RhdGFfaW5bM10iIHN0YXR1cz0iZml4ZWQiID4KLSAgICA8UG9ydD4KLSAgICAgIDxQcmVmIHg9MC4wMDAwIHk9NzMuNDM1MCBzaWRlPVcgd2lkdGg9MC4wNzAwIGRlcHRoPTAuMjkwMCAvPgotICAgICAgPExheWVyIGlkPTMgPgotICAgICAgICA8Qm94IGxseD0wLjAwMDAgbGx5PTczLjQwMDAgdXJ4PTAuMjkwMCB1cnk9NzMuNDcwMCAvPgotICAgICAgPC9MYXllcj4KLSAgICA8L1BvcnQ+Ci0gIDwvUGluPgotICA8UGluIG5hbWU9InRfZGF0YV9pblsyXSIgc3RhdHVzPSJmaXhlZCIgPgotICAgIDxQb3J0PgotICAgICAgPFByZWYgeD0wLjAwMDAgeT04NC44MzUwIHNpZGU9VyB3aWR0aD0wLjA3MDAgZGVwdGg9MC4yOTAwIC8+Ci0gICAgICA8TGF5ZXIgaWQ9MyA+Ci0gICAgICAgIDxCb3ggbGx4PTAuMDAwMCBsbHk9ODQuODAwMCB1cng9MC4yOTAwIHVyeT04NC44NzAwIC8+Ci0gICAgICA8L0xheWVyPgotICAgIDwvUG9ydD4KLSAgPC9QaW4+Ci0gIDxQaW4gbmFtZT0idF9kYXRhX2luWzFdIiBzdGF0dXM9ImZpeGVkIiA+Ci0gICAgPFBvcnQ+Ci0gICAgICA8UHJlZiB4PTAuMDAwMCB5PTc3Ljk5NTAgc2lkZT1XIHdpZHRoPTAuMDcwMCBkZXB0aD0wLjI5MDAgLz4KLSAgICAgIDxMYXllciBpZD01ID4KLSAgICAgICAgPEJveCBsbHg9MC4wMDAwIGxseT03Ny45NjAwIHVyeD0wLjI5MDAgdXJ5PTc4LjAzMDAgLz4KLSAgICAgIDwvTGF5ZXI+Ci0gICAgPC9Qb3J0PgotICA8L1Bpbj4KLSAgPFBpbiBuYW1lPSJ0X2RhdGFfaW5bMF0iIHN0YXR1cz0iZml4ZWQiID4KLSAgICA8UG9ydD4KLSAgICAgIDxQcmVmIHg9MC4wMDAwIHk9ODEuNDE1MCBzaWRlPVcgd2lkdGg9MC4wNzAwIGRlcHRoPTAuMjkwMCAvPgotICAgICAgPExheWVyIGlkPTMgPgotICAgICAgICA8Qm94IGxseD0wLjAwMDAgbGx5PTgxLjM4MDAgdXJ4PTAuMjkwMCB1cnk9ODEuNDUwMCAvPgotICAgICAgPC9MYXllcj4KLSAgICA8L1BvcnQ+Ci0gIDwvUGluPgotICA8UGluIG5hbWU9InRfZGF0YV9vdXRbMTVdIiBzdGF0dXM9ImZpeGVkIiA+Ci0gICAgPFBvcnQ+Ci0gICAgICA8UHJlZiB4PTAuMDAwMCB5PTEwNC4yMTUwIHNpZGU9VyB3aWR0aD0wLjA3MDAgZGVwdGg9MC4yOTAwIC8+Ci0gICAgICA8TGF5ZXIgaWQ9NSA+Ci0gICAgICAgIDxCb3ggbGx4PTAuMDAwMCBsbHk9MTA0LjE4MDAgdXJ4PTAuMjkwMCB1cnk9MTA0LjI1MDAgLz4KLSAgICAgIDwvTGF5ZXI+Ci0gICAgPC9Qb3J0PgotICA8L1Bpbj4KLSAgPFBpbiBuYW1lPSJ0X2RhdGFfb3V0WzE0XSIgc3RhdHVzPSJmaXhlZCIgPgotICAgIDxQb3J0PgotICAgICAgPFByZWYgeD0wLjAwMDAgeT05MS4yOTUwIHNpZGU9VyB3aWR0aD0wLjA3MDAgZGVwdGg9MC4yOTAwIC8+Ci0gICAgICA8TGF5ZXIgaWQ9MyA+Ci0gICAgICAgIDxCb3ggbGx4PTAuMDAwMCBsbHk9OTEuMjYwMCB1cng9MC4yOTAwIHVyeT05MS4zMzAwIC8+Ci0gICAgICA8L0xheWVyPgotICAgIDwvUG9ydD4KLSAgPC9QaW4+Ci0gIDxQaW4gbmFtZT0idF9kYXRhX291dFsxM10iIHN0YXR1cz0iZml4ZWQiID4KLSAgICA8UG9ydD4KLSAgICAgIDxQcmVmIHg9MC4wMDAwIHk9ODEuMDM1MCBzaWRlPVcgd2lkdGg9MC4wNzAwIGRlcHRoPTAuMjkwMCAvPgotICAgICAgPExheWVyIGlkPTUgPgotICAgICAgICA8Qm94IGxseD0wLjAwMDAgbGx5PTgxLjAwMDAgdXJ4PTAuMjkwMCB1cnk9ODEuMDcwMCAvPgotICAgICAgPC9MYXllcj4KLSAgICA8L1BvcnQ+Ci0gIDwvUGluPgotICA8UGluIG5hbWU9InRfZGF0YV9vdXRbMTJdIiBzdGF0dXM9ImZpeGVkIiA+Ci0gICAgPFBvcnQ+Ci0gICAgICA8UHJlZiB4PTAuMDAwMCB5PTc5LjcwNTAgc2lkZT1XIHdpZHRoPTAuMDcwMCBkZXB0aD0wLjI5MDAgLz4KLSAgICAgIDxMYXllciBpZD01ID4KLSAgICAgICAgPEJveCBsbHg9MC4wMDAwIGxseT03OS42NzAwIHVyeD0wLjI5MDAgdXJ5PTc5Ljc0MDAgLz4KLSAgICAgIDwvTGF5ZXI+Ci0gICAgPC9Qb3J0PgotICA8L1Bpbj4KLSAgPFBpbiBuYW1lPSJ0X2RhdGFfb3V0WzExXSIgc3RhdHVzPSJmaXhlZCIgPgotICAgIDxQb3J0PgotICAgICAgPFByZWYgeD0wLjAwMDAgeT04Ny44NzUwIHNpZGU9VyB3aWR0aD0wLjA3MDAgZGVwdGg9MC4yOTAwIC8+Ci0gICAgICA8TGF5ZXIgaWQ9MyA+Ci0gICAgICAgIDxCb3ggbGx4PTAuMDAwMCBsbHk9ODcuODQwMCB1cng9MC4yOTAwIHVyeT04Ny45MTAwIC8+Ci0gICAgICA8L0xheWVyPgotICAgIDwvUG9ydD4KLSAgPC9QaW4+Ci0gIDxQaW4gbmFtZT0idF9kYXRhX291dFsxMF0iIHN0YXR1cz0iZml4ZWQiID4KLSAgICA8UG9ydD4KLSAgICAgIDxQcmVmIHg9MC4wMDAwIHk9ODYuNTQ1MCBzaWRlPVcgd2lkdGg9MC4wNzAwIGRlcHRoPTAuMjkwMCAvPgotICAgICAgPExheWVyIGlkPTMgPgotICAgICAgICA8Qm94IGxseD0wLjAwMDAgbGx5PTg2LjUxMDAgdXJ4PTAuMjkwMCB1cnk9ODYuNTgwMCAvPgotICAgICAgPC9MYXllcj4KLSAgICA8L1BvcnQ+Ci0gIDwvUGluPgotICA8UGluIG5hbWU9InRfZGF0YV9vdXRbOV0iIHN0YXR1cz0iZml4ZWQiID4KLSAgICA8UG9ydD4KLSAgICAgIDxQcmVmIHg9MC4wMDAwIHk9ODMuMTI1MCBzaWRlPVcgd2lkdGg9MC4wNzAwIGRlcHRoPTAuMjkwMCAvPgotICAgICAgPExheWVyIGlkPTUgPgotICAgICAgICA8Qm94IGxseD0wLjAwMDAgbGx5PTgzLjA5MDAgdXJ4PTAuMjkwMCB1cnk9ODMuMTYwMCAvPgotICAgICAgPC9MYXllcj4KLSAgICA8L1BvcnQ+Ci0gIDwvUGluPgotICA8UGluIG5hbWU9InRfZGF0YV9vdXRbOF0iIHN0YXR1cz0iZml4ZWQiID4KLSAgICA8UG9ydD4KLSAgICAgIDxQcmVmIHg9MC4wMDAwIHk9ODMuMTI1MCBzaWRlPVcgd2lkdGg9MC4wNzAwIGRlcHRoPTAuMjkwMCAvPgotICAgICAgPExheWVyIGlkPTMgPgotICAgICAgICA8Qm94IGxseD0wLjAwMDAgbGx5PTgzLjA5MDAgdXJ4PTAuMjkwMCB1cnk9ODMuMTYwMCAvPgotICAgICAgPC9MYXllcj4KLSAgICA8L1BvcnQ+Ci0gIDwvUGluPgotICA8UGluIG5hbWU9InRfZGF0YV9vdXRbN10iIHN0YXR1cz0iZml4ZWQiID4KLSAgICA8UG9ydD4KLSAgICAgIDxQcmVmIHg9MC4wMDAwIHk9MTAzLjY0NTAgc2lkZT1XIHdpZHRoPTAuMDcwMCBkZXB0aD0wLjI5MDAgLz4KLSAgICAgIDxMYXllciBpZD0zID4KLSAgICAgICAgPEJveCBsbHg9MC4wMDAwIGxseT0xMDMuNjEwMCB1cng9MC4yOTAwIHVyeT0xMDMuNjgwMCAvPgotICAgICAgPC9MYXllcj4KLSAgICA8L1BvcnQ+Ci0gIDwvUGluPgotICA8UGluIG5hbWU9InRfZGF0YV9vdXRbNl0iIHN0YXR1cz0iZml4ZWQiID4KLSAgICA8UG9ydD4KLSAgICAgIDxQcmVmIHg9MC4wMDAwIHk9MTEwLjQ4NTAgc2lkZT1XIHdpZHRoPTAuMDcwMCBkZXB0aD0wLjI5MDAgLz4KLSAgICAgIDxMYXllciBpZD0zID4KLSAgICAgICAgPEJveCBsbHg9MC4wMDAwIGxseT0xMTAuNDUwMCB1cng9MC4yOTAwIHVyeT0xMTAuNTIwMCAvPgotICAgICAgPC9MYXllcj4KLSAgICA8L1BvcnQ+Ci0gIDwvUGluPgotICA8UGluIG5hbWU9InRfZGF0YV9vdXRbNV0iIHN0YXR1cz0iZml4ZWQiID4KLSAgICA8UG9ydD4KLSAgICAgIDxQcmVmIHg9MC4wMDAwIHk9MTA3LjA2NTAgc2lkZT1XIHdpZHRoPTAuMDcwMCBkZXB0aD0wLjI5MDAgLz4KLSAgICAgIDxMYXllciBpZD01ID4KLSAgICAgICAgPEJveCBsbHg9MC4wMDAwIGxseT0xMDcuMDMwMCB1cng9MC4yOTAwIHVyeT0xMDcuMTAwMCAvPgotICAgICAgPC9MYXllcj4KLSAgICA8L1BvcnQ+Ci0gIDwvUGluPgotICA8UGluIG5hbWU9InRfZGF0YV9vdXRbNF0iIHN0YXR1cz0iZml4ZWQiID4KLSAgICA8UG9ydD4KLSAgICAgIDxQcmVmIHg9NTIuMzAwMCB5PTE1My45MDAwIHNpZGU9TiB3aWR0aD0wLjA3MDAgZGVwdGg9MC4yOTAwIC8+Ci0gICAgICA8TGF5ZXIgaWQ9MiA+Ci0gICAgICAgIDxCb3ggbGx4PTUyLjI2NTAgbGx5PTE1My42MTAwIHVyeD01Mi4zMzUwIHVyeT0xNTMuOTAwMCAvPgotICAgICAgPC9MYXllcj4KLSAgICA8L1BvcnQ+Ci0gIDwvUGluPgotICA8UGluIG5hbWU9InRfZGF0YV9vdXRbM10iIHN0YXR1cz0iZml4ZWQiID4KLSAgICA8UG9ydD4KLSAgICAgIDxQcmVmIHg9NDQuMTAwMCB5PTE1My45MDAwIHNpZGU9TiB3aWR0aD0wLjA3MDAgZGVwdGg9MC4yOTAwIC8+Ci0gICAgICA8TGF5ZXIgaWQ9MiA+Ci0gICAgICAgIDxCb3ggbGx4PTQ0LjA2NTAgbGx5PTE1My42MTAwIHVyeD00NC4xMzUwIHVyeT0xNTMuOTAwMCAvPgotICAgICAgPC9MYXllcj4KLSAgICA8L1BvcnQ+Ci0gIDwvUGluPgotICA8UGluIG5hbWU9InRfZGF0YV9vdXRbMl0iIHN0YXR1cz0iZml4ZWQiID4KLSAgICA8UG9ydD4KLSAgICAgIDxQcmVmIHg9MC4wMDAwIHk9MTEzLjkwNTAgc2lkZT1XIHdpZHRoPTAuMDcwMCBkZXB0aD0wLjI5MDAgLz4KLSAgICAgIDxMYXllciBpZD01ID4KLSAgICAgICAgPEJveCBsbHg9MC4wMDAwIGxseT0xMTMuODcwMCB1cng9MC4yOTAwIHVyeT0xMTMuOTQwMCAvPgotICAgICAgPC9MYXllcj4KLSAgICA8L1BvcnQ+Ci0gIDwvUGluPgotICA8UGluIG5hbWU9InRfZGF0YV9vdXRbMV0iIHN0YXR1cz0iZml4ZWQiID4KLSAgICA8UG9ydD4KLSAgICAgIDxQcmVmIHg9MC4wMDAwIHk9MTIyLjA3NTAgc2lkZT1XIHdpZHRoPTAuMDcwMCBkZXB0aD0wLjI5MDAgLz4KLSAgICAgIDxMYXllciBpZD0zID4KLSAgICAgICAgPEJveCBsbHg9MC4wMDAwIGxseT0xMjIuMDQwMCB1cng9MC4yOTAwIHVyeT0xMjIuMTEwMCAvPgotICAgICAgPC9MYXllcj4KLSAgICA8L1BvcnQ+Ci0gIDwvUGluPgotICA8UGluIG5hbWU9InRfZGF0YV9vdXRbMF0iIHN0YXR1cz0iZml4ZWQiID4KLSAgICA8UG9ydD4KLSAgICAgIDxQcmVmIHg9MC4wMDAwIHk9MTE3LjMyNTAgc2lkZT1XIHdpZHRoPTAuMDcwMCBkZXB0aD0wLjI5MDAgLz4KLSAgICAgIDxMYXllciBpZD0zID4KLSAgICAgICAgPEJveCBsbHg9MC4wMDAwIGxseT0xMTcuMjkwMCB1cng9MC4yOTAwIHVyeT0xMTcuMzYwMCAvPgotICAgICAgPC9MYXllcj4KLSAgICA8L1BvcnQ+Ci0gIDwvUGluPgotICA8UGluIG5hbWU9InBfYXMiIHN0YXR1cz0iZml4ZWQiID4KLSAgICA8UG9ydD4KLSAgICAgIDxQcmVmIHg9MC4wMDAwIHk9NzcuMDQ1MCBzaWRlPVcgd2lkdGg9MC4wNzAwIGRlcHRoPTAuMjkwMCAvPgotICAgICAgPExheWVyIGlkPTUgPgotICAgICAgICA8Qm94IGxseD0wLjAwMDAgbGx5PTc3LjAxMDAgdXJ4PTAuMjkwMCB1cnk9NzcuMDgwMCAvPgotICAgICAgPC9MYXllcj4KLSAgICA8L1BvcnQ+Ci0gIDwvUGluPgotICA8UGluIG5hbWU9InBfcmVhZCIgc3RhdHVzPSJmaXhlZCIgPgotICAgIDxQb3J0PgotICAgICAgPFByZWYgeD0wLjAwMDAgeT03Ni42NjUwIHNpZGU9VyB3aWR0aD0wLjA3MDAgZGVwdGg9MC4yOTAwIC8+Ci0gICAgICA8TGF5ZXIgaWQ9MyA+Ci0gICAgICAgIDxCb3ggbGx4PTAuMDAwMCBsbHk9NzYuNjMwMCB1cng9MC4yOTAwIHVyeT03Ni43MDAwIC8+Ci0gICAgICA8L0xheWVyPgotICAgIDwvUG9ydD4KLSAgPC9QaW4+Ci0gIDxQaW4gbmFtZT0icF93cml0ZSIgc3RhdHVzPSJmaXhlZCIgPgotICAgIDxQb3J0PgotICAgICAgPFByZWYgeD0wLjAwMDAgeT03Ni42NjUwIHNpZGU9VyB3aWR0aD0wLjA3MDAgZGVwdGg9MC4yOTAwIC8+Ci0gICAgICA8TGF5ZXIgaWQ9NSA+Ci0gICAgICAgIDxCb3ggbGx4PTAuMDAwMCBsbHk9NzYuNjMwMCB1cng9MC4yOTAwIHVyeT03Ni43MDAwIC8+Ci0gICAgICA8L0xheWVyPgotICAgIDwvUG9ydD4KLSAgPC9QaW4+Ci0gIDxQaW4gbmFtZT0icF93cml0ZV9oIiBzdGF0dXM9ImZpeGVkIiA+Ci0gICAgPFBvcnQ+Ci0gICAgICA8UHJlZiB4PTAuMDAwMCB5PTc2LjI4NTAgc2lkZT1XIHdpZHRoPTAuMDcwMCBkZXB0aD0wLjI5MDAgLz4KLSAgICAgIDxMYXllciBpZD01ID4KLSAgICAgICAgPEJveCBsbHg9MC4wMDAwIGxseT03Ni4yNTAwIHVyeD0wLjI5MDAgdXJ5PTc2LjMyMDAgLz4KLSAgICAgIDwvTGF5ZXI+Ci0gICAgPC9Qb3J0PgotICA8L1Bpbj4KLSAgPFBpbiBuYW1lPSJwX2FkZHJlc3NbOF0iIHN0YXR1cz0iZml4ZWQiID4KLSAgICA8UG9ydD4KLSAgICAgIDxQcmVmIHg9NTkuNzAwMCB5PTE1My45MDAwIHNpZGU9TiB3aWR0aD0wLjA3MDAgZGVwdGg9MC4yOTAwIC8+Ci0gICAgICA8TGF5ZXIgaWQ9MiA+Ci0gICAgICAgIDxCb3ggbGx4PTU5LjY2NTAgbGx5PTE1My42MTAwIHVyeD01OS43MzUwIHVyeT0xNTMuOTAwMCAvPgotICAgICAgPC9MYXllcj4KLSAgICA8L1BvcnQ+Ci0gIDwvUGluPgotICA8UGluIG5hbWU9InBfYWRkcmVzc1s3XSIgc3RhdHVzPSJmaXhlZCIgPgotICAgIDxQb3J0PgotICAgICAgPFByZWYgeD02Mi4xMDAwIHk9MTUzLjkwMDAgc2lkZT1OIHdpZHRoPTAuMDcwMCBkZXB0aD0wLjI5MDAgLz4KLSAgICAgIDxMYXllciBpZD0yID4KLSAgICAgICAgPEJveCBsbHg9NjIuMDY1MCBsbHk9MTUzLjYxMDAgdXJ4PTYyLjEzNTAgdXJ5PTE1My45MDAwIC8+Ci0gICAgICA8L0xheWVyPgotICAgIDwvUG9ydD4KLSAgPC9QaW4+Ci0gIDxQaW4gbmFtZT0icF9hZGRyZXNzWzZdIiBzdGF0dXM9ImZpeGVkIiA+Ci0gICAgPFBvcnQ+Ci0gICAgICA8UHJlZiB4PTYwLjEwMDAgeT0xNTMuOTAwMCBzaWRlPU4gd2lkdGg9MC4wNzAwIGRlcHRoPTAuMjkwMCAvPgotICAgICAgPExheWVyIGlkPTIgPgotICAgICAgICA8Qm94IGxseD02MC4wNjUwIGxseT0xNTMuNjEwMCB1cng9NjAuMTM1MCB1cnk9MTUzLjkwMDAgLz4KLSAgICAgIDwvTGF5ZXI+Ci0gICAgPC9Qb3J0PgotICA8L1Bpbj4KLSAgPFBpbiBuYW1lPSJwX2FkZHJlc3NbNV0iIHN0YXR1cz0iZml4ZWQiID4KLSAgICA8UG9ydD4KLSAgICAgIDxQcmVmIHg9NjYuNzAwMCB5PTE1My45MDAwIHNpZGU9TiB3aWR0aD0wLjA3MDAgZGVwdGg9MC4yOTAwIC8+Ci0gICAgICA8TGF5ZXIgaWQ9MiA+Ci0gICAgICAgIDxCb3ggbGx4PTY2LjY2NTAgbGx5PTE1My42MTAwIHVyeD02Ni43MzUwIHVyeT0xNTMuOTAwMCAvPgotICAgICAgPC9MYXllcj4KLSAgICA8L1BvcnQ+Ci0gIDwvUGluPgotICA8UGluIG5hbWU9InBfYWRkcmVzc1s0XSIgc3RhdHVzPSJmaXhlZCIgPgotICAgIDxQb3J0PgotICAgICAgPFByZWYgeD02NC4zMDAwIHk9MTUzLjkwMDAgc2lkZT1OIHdpZHRoPTAuMDcwMCBkZXB0aD0wLjI5MDAgLz4KLSAgICAgIDxMYXllciBpZD0yID4KLSAgICAgICAgPEJveCBsbHg9NjQuMjY1MCBsbHk9MTUzLjYxMDAgdXJ4PTY0LjMzNTAgdXJ5PTE1My45MDAwIC8+Ci0gICAgICA8L0xheWVyPgotICAgIDwvUG9ydD4KLSAgPC9QaW4+Ci0gIDxQaW4gbmFtZT0icF9hZGRyZXNzWzNdIiBzdGF0dXM9ImZpeGVkIiA+Ci0gICAgPFBvcnQ+Ci0gICAgICA8UHJlZiB4PTY5LjUwMDAgeT0xNTMuOTAwMCBzaWRlPU4gd2lkdGg9MC4wNzAwIGRlcHRoPTAuMjkwMCAvPgotICAgICAgPExheWVyIGlkPTIgPgotICAgICAgICA8Qm94IGxseD02OS40NjUwIGxseT0xNTMuNjEwMCB1cng9NjkuNTM1MCB1cnk9MTUzLjkwMDAgLz4KLSAgICAgIDwvTGF5ZXI+Ci0gICAgPC9Qb3J0PgotICA8L1Bpbj4KLSAgPFBpbiBuYW1lPSJwX2FkZHJlc3NbMl0iIHN0YXR1cz0iZml4ZWQiID4KLSAgICA8UG9ydD4KLSAgICAgIDxQcmVmIHg9NjIuMTAwMCB5PTE1My45MDAwIHNpZGU9TiB3aWR0aD0wLjA3MDAgZGVwdGg9MC4yOTAwIC8+Ci0gICAgICA8TGF5ZXIgaWQ9NCA+Ci0gICAgICAgIDxCb3ggbGx4PTYyLjA2NTAgbGx5PTE1My42MTAwIHVyeD02Mi4xMzUwIHVyeT0xNTMuOTAwMCAvPgotICAgICAgPC9MYXllcj4KLSAgICA8L1BvcnQ+Ci0gIDwvUGluPgotICA8UGluIG5hbWU9InBfYWRkcmVzc1sxXSIgc3RhdHVzPSJmaXhlZCIgPgotICAgIDxQb3J0PgotICAgICAgPFByZWYgeD01Ny43MDAwIHk9MTUzLjkwMDAgc2lkZT1OIHdpZHRoPTAuMDcwMCBkZXB0aD0wLjI5MDAgLz4KLSAgICAgIDxMYXllciBpZD0yID4KLSAgICAgICAgPEJveCBsbHg9NTcuNjY1MCBsbHk9MTUzLjYxMDAgdXJ4PTU3LjczNTAgdXJ5PTE1My45MDAwIC8+Ci0gICAgICA8L0xheWVyPgotICAgIDwvUG9ydD4KLSAgPC9QaW4+Ci0gIDxQaW4gbmFtZT0icF9hZGRyZXNzWzBdIiBzdGF0dXM9ImZpeGVkIiA+Ci0gICAgPFBvcnQ+Ci0gICAgICA8UHJlZiB4PTU1LjUwMDAgeT0xNTMuOTAwMCBzaWRlPU4gd2lkdGg9MC4wNzAwIGRlcHRoPTAuMjkwMCAvPgotICAgICAgPExheWVyIGlkPTIgPgotICAgICAgICA8Qm94IGxseD01NS40NjUwIGxseT0xNTMuNjEwMCB1cng9NTUuNTM1MCB1cnk9MTUzLjkwMDAgLz4KLSAgICAgIDwvTGF5ZXI+Ci0gICAgPC9Qb3J0PgotICA8L1Bpbj4KLSAgPFBpbiBuYW1lPSJyb21fZGF0YV9pblsxNV0iIHN0YXR1cz0iZml4ZWQiID4KLSAgICA8UG9ydD4KLSAgICAgIDxQcmVmIHg9MzYuOTAwMCB5PTE1My45MDAwIHNpZGU9TiB3aWR0aD0wLjA3MDAgZGVwdGg9MC4yOTAwIC8+Ci0gICAgICA8TGF5ZXIgaWQ9MiA+Ci0gICAgICAgIDxCb3ggbGx4PTM2Ljg2NTAgbGx5PTE1My42MTAwIHVyeD0zNi45MzUwIHVyeT0xNTMuOTAwMCAvPgotICAgICAgPC9MYXllcj4KLSAgICA8L1BvcnQ+Ci0gIDwvUGluPgotICA8UGluIG5hbWU9InJvbV9kYXRhX2luWzE0XSIgc3RhdHVzPSJmaXhlZCIgPgotICAgIDxQb3J0PgotICAgICAgPFByZWYgeD00NS4xMDAwIHk9MTUzLjkwMDAgc2lkZT1OIHdpZHRoPTAuMDcwMCBkZXB0aD0wLjI5MDAgLz4KLSAgICAgIDxMYXllciBpZD0yID4KLSAgICAgICAgPEJveCBsbHg9NDUuMDY1MCBsbHk9MTUzLjYxMDAgdXJ4PTQ1LjEzNTAgdXJ5PTE1My45MDAwIC8+Ci0gICAgICA8L0xheWVyPgotICAgIDwvUG9ydD4KLSAgPC9QaW4+Ci0gIDxQaW4gbmFtZT0icm9tX2RhdGFfaW5bMTNdIiBzdGF0dXM9ImZpeGVkIiA+Ci0gICAgPFBvcnQ+Ci0gICAgICA8UHJlZiB4PTQwLjkwMDAgeT0xNTMuOTAwMCBzaWRlPU4gd2lkdGg9MC4wNzAwIGRlcHRoPTAuMjkwMCAvPgotICAgICAgPExheWVyIGlkPTIgPgotICAgICAgICA8Qm94IGxseD00MC44NjUwIGxseT0xNTMuNjEwMCB1cng9NDAuOTM1MCB1cnk9MTUzLjkwMDAgLz4KLSAgICAgIDwvTGF5ZXI+Ci0gICAgPC9Qb3J0PgotICA8L1Bpbj4KLSAgPFBpbiBuYW1lPSJyb21fZGF0YV9pblsxMl0iIHN0YXR1cz0iZml4ZWQiID4KLSAgICA8UG9ydD4KLSAgICAgIDxQcmVmIHg9NDMuMTAwMCB5PTE1My45MDAwIHNpZGU9TiB3aWR0aD0wLjA3MDAgZGVwdGg9MC4yOTAwIC8+Ci0gICAgICA8TGF5ZXIgaWQ9MiA+Ci0gICAgICAgIDxCb3ggbGx4PTQzLjA2NTAgbGx5PTE1My42MTAwIHVyeD00My4xMzUwIHVyeT0xNTMuOTAwMCAvPgotICAgICAgPC9MYXllcj4KLSAgICA8L1BvcnQ+Ci0gIDwvUGluPgotICA8UGluIG5hbWU9InJvbV9kYXRhX2luWzExXSIgc3RhdHVzPSJmaXhlZCIgPgotICAgIDxQb3J0PgotICAgICAgPFByZWYgeD01NC4zMDAwIHk9MTUzLjkwMDAgc2lkZT1OIHdpZHRoPTAuMDcwMCBkZXB0aD0wLjI5MDAgLz4KLSAgICAgIDxMYXllciBpZD0yID4KLSAgICAgICAgPEJveCBsbHg9NTQuMjY1MCBsbHk9MTUzLjYxMDAgdXJ4PTU0LjMzNTAgdXJ5PTE1My45MDAwIC8+Ci0gICAgICA8L0xheWVyPgotICAgIDwvUG9ydD4KLSAgPC9QaW4+Ci0gIDxQaW4gbmFtZT0icm9tX2RhdGFfaW5bMTBdIiBzdGF0dXM9ImZpeGVkIiA+Ci0gICAgPFBvcnQ+Ci0gICAgICA8UHJlZiB4PTQ4LjcwMDAgeT0xNTMuOTAwMCBzaWRlPU4gd2lkdGg9MC4wNzAwIGRlcHRoPTAuMjkwMCAvPgotICAgICAgPExheWVyIGlkPTIgPgotICAgICAgICA8Qm94IGxseD00OC42NjUwIGxseT0xNTMuNjEwMCB1cng9NDguNzM1MCB1cnk9MTUzLjkwMDAgLz4KLSAgICAgIDwvTGF5ZXI+Ci0gICAgPC9Qb3J0PgotICA8L1Bpbj4KLSAgPFBpbiBuYW1lPSJyb21fZGF0YV9pbls5XSIgc3RhdHVzPSJmaXhlZCIgPgotICAgIDxQb3J0PgotICAgICAgPFByZWYgeD01My43MDAwIHk9MTUzLjkwMDAgc2lkZT1OIHdpZHRoPTAuMDcwMCBkZXB0aD0wLjI5MDAgLz4KLSAgICAgIDxMYXllciBpZD00ID4KLSAgICAgICAgPEJveCBsbHg9NTMuNjY1MCBsbHk9MTUzLjYxMDAgdXJ4PTUzLjczNTAgdXJ5PTE1My45MDAwIC8+Ci0gICAgICA8L0xheWVyPgotICAgIDwvUG9ydD4KLSAgPC9QaW4+Ci0gIDxQaW4gbmFtZT0icm9tX2RhdGFfaW5bOF0iIHN0YXR1cz0iZml4ZWQiID4KLSAgICA8UG9ydD4KLSAgICAgIDxQcmVmIHg9NTYuOTAwMCB5PTE1My45MDAwIHNpZGU9TiB3aWR0aD0wLjA3MDAgZGVwdGg9MC4yOTAwIC8+Ci0gICAgICA8TGF5ZXIgaWQ9MiA+Ci0gICAgICAgIDxCb3ggbGx4PTU2Ljg2NTAgbGx5PTE1My42MTAwIHVyeD01Ni45MzUwIHVyeT0xNTMuOTAwMCAvPgotICAgICAgPC9MYXllcj4KLSAgICA8L1BvcnQ+Ci0gIDwvUGluPgotICA8UGluIG5hbWU9InJvbV9kYXRhX2luWzddIiBzdGF0dXM9ImZpeGVkIiA+Ci0gICAgPFBvcnQ+Ci0gICAgICA8UHJlZiB4PTYxLjUwMDAgeT0xNTMuOTAwMCBzaWRlPU4gd2lkdGg9MC4wNzAwIGRlcHRoPTAuMjkwMCAvPgotICAgICAgPExheWVyIGlkPTYgPgotICAgICAgICA8Qm94IGxseD02MS40NjUwIGxseT0xNTMuNjEwMCB1cng9NjEuNTM1MCB1cnk9MTUzLjkwMDAgLz4KLSAgICAgIDwvTGF5ZXI+Ci0gICAgPC9Qb3J0PgotICA8L1Bpbj4KLSAgPFBpbiBuYW1lPSJyb21fZGF0YV9pbls2XSIgc3RhdHVzPSJmaXhlZCIgPgotICAgIDxQb3J0PgotICAgICAgPFByZWYgeD01OC45MDAwIHk9MTUzLjkwMDAgc2lkZT1OIHdpZHRoPTAuMDcwMCBkZXB0aD0wLjI5MDAgLz4KLSAgICAgIDxMYXllciBpZD02ID4KLSAgICAgICAgPEJveCBsbHg9NTguODY1MCBsbHk9MTUzLjYxMDAgdXJ4PTU4LjkzNTAgdXJ5PTE1My45MDAwIC8+Ci0gICAgICA8L0xheWVyPgotICAgIDwvUG9ydD4KLSAgPC9QaW4+Ci0gIDxQaW4gbmFtZT0icm9tX2RhdGFfaW5bNV0iIHN0YXR1cz0iZml4ZWQiID4KLSAgICA8UG9ydD4KLSAgICAgIDxQcmVmIHg9NjYuNzAwMCB5PTE1My45MDAwIHNpZGU9TiB3aWR0aD0wLjA3MDAgZGVwdGg9MC4yOTAwIC8+Ci0gICAgICA8TGF5ZXIgaWQ9NiA+Ci0gICAgICAgIDxCb3ggbGx4PTY2LjY2NTAgbGx5PTE1My42MTAwIHVyeD02Ni43MzUwIHVyeT0xNTMuOTAwMCAvPgotICAgICAgPC9MYXllcj4KLSAgICA8L1BvcnQ+Ci0gIDwvUGluPgotICA8UGluIG5hbWU9InJvbV9kYXRhX2luWzRdIiBzdGF0dXM9ImZpeGVkIiA+Ci0gICAgPFBvcnQ+Ci0gICAgICA8UHJlZiB4PTYxLjcwMDAgeT0xNTMuOTAwMCBzaWRlPU4gd2lkdGg9MC4wNzAwIGRlcHRoPTAuMjkwMCAvPgotICAgICAgPExheWVyIGlkPTIgPgotICAgICAgICA8Qm94IGxseD02MS42NjUwIGxseT0xNTMuNjEwMCB1cng9NjEuNzM1MCB1cnk9MTUzLjkwMDAgLz4KLSAgICAgIDwvTGF5ZXI+Ci0gICAgPC9Qb3J0PgotICA8L1Bpbj4KLSAgPFBpbiBuYW1lPSJyb21fZGF0YV9pblszXSIgc3RhdHVzPSJmaXhlZCIgPgotICAgIDxQb3J0PgotICAgICAgPFByZWYgeD02MS45MDAwIHk9MTUzLjkwMDAgc2lkZT1OIHdpZHRoPTAuMDcwMCBkZXB0aD0wLjI5MDAgLz4KLSAgICAgIDxMYXllciBpZD02ID4KLSAgICAgICAgPEJveCBsbHg9NjEuODY1MCBsbHk9MTUzLjYxMDAgdXJ4PTYxLjkzNTAgdXJ5PTE1My45MDAwIC8+Ci0gICAgICA8L0xheWVyPgotICAgIDwvUG9ydD4KLSAgPC9QaW4+Ci0gIDxQaW4gbmFtZT0icm9tX2RhdGFfaW5bMl0iIHN0YXR1cz0iZml4ZWQiID4KLSAgICA8UG9ydD4KLSAgICAgIDxQcmVmIHg9NTMuOTAwMCB5PTE1My45MDAwIHNpZGU9TiB3aWR0aD0wLjA3MDAgZGVwdGg9MC4yOTAwIC8+Ci0gICAgICA8TGF5ZXIgaWQ9MiA+Ci0gICAgICAgIDxCb3ggbGx4PTUzLjg2NTAgbGx5PTE1My42MTAwIHVyeD01My45MzUwIHVyeT0xNTMuOTAwMCAvPgotICAgICAgPC9MYXllcj4KLSAgICA8L1BvcnQ+Ci0gIDwvUGluPgotICA8UGluIG5hbWU9InJvbV9kYXRhX2luWzFdIiBzdGF0dXM9ImZpeGVkIiA+Ci0gICAgPFBvcnQ+Ci0gICAgICA8UHJlZiB4PTQ2LjEwMDAgeT0xNTMuOTAwMCBzaWRlPU4gd2lkdGg9MC4wNzAwIGRlcHRoPTAuMjkwMCAvPgotICAgICAgPExheWVyIGlkPTIgPgotICAgICAgICA8Qm94IGxseD00Ni4wNjUwIGxseT0xNTMuNjEwMCB1cng9NDYuMTM1MCB1cnk9MTUzLjkwMDAgLz4KLSAgICAgIDwvTGF5ZXI+Ci0gICAgPC9Qb3J0PgotICA8L1Bpbj4KLSAgPFBpbiBuYW1lPSJyb21fZGF0YV9pblswXSIgc3RhdHVzPSJmaXhlZCIgPgotICAgIDxQb3J0PgotICAgICAgPFByZWYgeD01OC41MDAwIHk9MTUzLjkwMDAgc2lkZT1OIHdpZHRoPTAuMDcwMCBkZXB0aD0wLjI5MDAgLz4KLSAgICAgIDxMYXllciBpZD02ID4KLSAgICAgICAgPEJveCBsbHg9NTguNDY1MCBsbHk9MTUzLjYxMDAgdXJ4PTU4LjUzNTAgdXJ5PTE1My45MDAwIC8+Ci0gICAgICA8L0xheWVyPgotICAgIDwvUG9ydD4KLSAgPC9QaW4+Ci0gIDxQaW4gbmFtZT0icm9tX2RhdGFfb3V0WzE1XSIgc3RhdHVzPSJmaXhlZCIgPgotICAgIDxQb3J0PgotICAgICAgPFByZWYgeD0wLjAwMDAgeT03OC4zNzUwIHNpZGU9VyB3aWR0aD0wLjA3MDAgZGVwdGg9MC4yOTAwIC8+Ci0gICAgICA8TGF5ZXIgaWQ9MyA+Ci0gICAgICAgIDxCb3ggbGx4PTAuMDAwMCBsbHk9NzguMzQwMCB1cng9MC4yOTAwIHVyeT03OC40MTAwIC8+Ci0gICAgICA8L0xheWVyPgotICAgIDwvUG9ydD4KLSAgPC9QaW4+Ci0gIDxQaW4gbmFtZT0icm9tX2RhdGFfb3V0WzE0XSIgc3RhdHVzPSJmaXhlZCIgPgotICAgIDxQb3J0PgotICAgICAgPFByZWYgeD0wLjAwMDAgeT03NS45MDUwIHNpZGU9VyB3aWR0aD0wLjA3MDAgZGVwdGg9MC4yOTAwIC8+Ci0gICAgICA8TGF5ZXIgaWQ9NSA+Ci0gICAgICAgIDxCb3ggbGx4PTAuMDAwMCBsbHk9NzUuODcwMCB1cng9MC4yOTAwIHVyeT03NS45NDAwIC8+Ci0gICAgICA8L0xheWVyPgotICAgIDwvUG9ydD4KLSAgPC9QaW4+Ci0gIDxQaW4gbmFtZT0icm9tX2RhdGFfb3V0WzEzXSIgc3RhdHVzPSJmaXhlZCIgPgotICAgIDxQb3J0PgotICAgICAgPFByZWYgeD0wLjAwMDAgeT03OC4zNzUwIHNpZGU9VyB3aWR0aD0wLjA3MDAgZGVwdGg9MC4yOTAwIC8+Ci0gICAgICA8TGF5ZXIgaWQ9NSA+Ci0gICAgICAgIDxCb3ggbGx4PTAuMDAwMCBsbHk9NzguMzQwMCB1cng9MC4yOTAwIHVyeT03OC40MTAwIC8+Ci0gICAgICA8L0xheWVyPgotICAgIDwvUG9ydD4KLSAgPC9QaW4+Ci0gIDxQaW4gbmFtZT0icm9tX2RhdGFfb3V0WzEyXSIgc3RhdHVzPSJmaXhlZCIgPgotICAgIDxQb3J0PgotICAgICAgPFByZWYgeD0wLjAwMDAgeT03NS43MTUwIHNpZGU9VyB3aWR0aD0wLjA3MDAgZGVwdGg9MC4yOTAwIC8+Ci0gICAgICA8TGF5ZXIgaWQ9MyA+Ci0gICAgICAgIDxCb3ggbGx4PTAuMDAwMCBsbHk9NzUuNjgwMCB1cng9MC4yOTAwIHVyeT03NS43NTAwIC8+Ci0gICAgICA8L0xheWVyPgotICAgIDwvUG9ydD4KLSAgPC9QaW4+Ci0gIDxQaW4gbmFtZT0icm9tX2RhdGFfb3V0WzExXSIgc3RhdHVzPSJmaXhlZCIgPgotICAgIDxQb3J0PgotICAgICAgPFByZWYgeD0wLjAwMDAgeT03OC43NTUwIHNpZGU9VyB3aWR0aD0wLjA3MDAgZGVwdGg9MC4yOTAwIC8+Ci0gICAgICA8TGF5ZXIgaWQ9MyA+Ci0gICAgICAgIDxCb3ggbGx4PTAuMDAwMCBsbHk9NzguNzIwMCB1cng9MC4yOTAwIHVyeT03OC43OTAwIC8+Ci0gICAgICA8L0xheWVyPgotICAgIDwvUG9ydD4KLSAgPC9QaW4+Ci0gIDxQaW4gbmFtZT0icm9tX2RhdGFfb3V0WzEwXSIgc3RhdHVzPSJmaXhlZCIgPgotICAgIDxQb3J0PgotICAgICAgPFByZWYgeD0wLjAwMDAgeT03NS41MjUwIHNpZGU9VyB3aWR0aD0wLjA3MDAgZGVwdGg9MC4yOTAwIC8+Ci0gICAgICA8TGF5ZXIgaWQ9NSA+Ci0gICAgICAgIDxCb3ggbGx4PTAuMDAwMCBsbHk9NzUuNDkwMCB1cng9MC4yOTAwIHVyeT03NS41NjAwIC8+Ci0gICAgICA8L0xheWVyPgotICAgIDwvUG9ydD4KLSAgPC9QaW4+Ci0gIDxQaW4gbmFtZT0icm9tX2RhdGFfb3V0WzldIiBzdGF0dXM9ImZpeGVkIiA+Ci0gICAgPFBvcnQ+Ci0gICAgICA8UHJlZiB4PTAuMDAwMCB5PTc4Ljc1NTAgc2lkZT1XIHdpZHRoPTAuMDcwMCBkZXB0aD0wLjI5MDAgLz4KLSAgICAgIDxMYXllciBpZD01ID4KLSAgICAgICAgPEJveCBsbHg9MC4wMDAwIGxseT03OC43MjAwIHVyeD0wLjI5MDAgdXJ5PTc4Ljc5MDAgLz4KLSAgICAgIDwvTGF5ZXI+Ci0gICAgPC9Qb3J0PgotICA8L1Bpbj4KLSAgPFBpbiBuYW1lPSJyb21fZGF0YV9vdXRbOF0iIHN0YXR1cz0iZml4ZWQiID4KLSAgICA8UG9ydD4KLSAgICAgIDxQcmVmIHg9MC4wMDAwIHk9NzUuMzM1MCBzaWRlPVcgd2lkdGg9MC4wNzAwIGRlcHRoPTAuMjkwMCAvPgotICAgICAgPExheWVyIGlkPTMgPgotICAgICAgICA8Qm94IGxseD0wLjAwMDAgbGx5PTc1LjMwMDAgdXJ4PTAuMjkwMCB1cnk9NzUuMzcwMCAvPgotICAgICAgPC9MYXllcj4KLSAgICA8L1BvcnQ+Ci0gIDwvUGluPgotICA8UGluIG5hbWU9InJvbV9kYXRhX291dFs3XSIgc3RhdHVzPSJmaXhlZCIgPgotICAgIDxQb3J0PgotICAgICAgPFByZWYgeD0wLjAwMDAgeT03NS4xNDUwIHNpZGU9VyB3aWR0aD0wLjA3MDAgZGVwdGg9MC4yOTAwIC8+Ci0gICAgICA8TGF5ZXIgaWQ9NSA+Ci0gICAgICAgIDxCb3ggbGx4PTAuMDAwMCBsbHk9NzUuMTEwMCB1cng9MC4yOTAwIHVyeT03NS4xODAwIC8+Ci0gICAgICA8L0xheWVyPgotICAgIDwvUG9ydD4KLSAgPC9QaW4+Ci0gIDxQaW4gbmFtZT0icm9tX2RhdGFfb3V0WzZdIiBzdGF0dXM9ImZpeGVkIiA+Ci0gICAgPFBvcnQ+Ci0gICAgICA8UHJlZiB4PTAuMDAwMCB5PTc5LjEzNTAgc2lkZT1XIHdpZHRoPTAuMDcwMCBkZXB0aD0wLjI5MDAgLz4KLSAgICAgIDxMYXllciBpZD01ID4KLSAgICAgICAgPEJveCBsbHg9MC4wMDAwIGxseT03OS4xMDAwIHVyeD0wLjI5MDAgdXJ5PTc5LjE3MDAgLz4KLSAgICAgIDwvTGF5ZXI+Ci0gICAgPC9Qb3J0PgotICA8L1Bpbj4KLSAgPFBpbiBuYW1lPSJyb21fZGF0YV9vdXRbNV0iIHN0YXR1cz0iZml4ZWQiID4KLSAgICA8UG9ydD4KLSAgICAgIDxQcmVmIHg9MC4wMDAwIHk9NzQuOTU1MCBzaWRlPVcgd2lkdGg9MC4wNzAwIGRlcHRoPTAuMjkwMCAvPgotICAgICAgPExheWVyIGlkPTMgPgotICAgICAgICA8Qm94IGxseD0wLjAwMDAgbGx5PTc0LjkyMDAgdXJ4PTAuMjkwMCB1cnk9NzQuOTkwMCAvPgotICAgICAgPC9MYXllcj4KLSAgICA8L1BvcnQ+Ci0gIDwvUGluPgotICA8UGluIG5hbWU9InJvbV9kYXRhX291dFs0XSIgc3RhdHVzPSJmaXhlZCIgPgotICAgIDxQb3J0PgotICAgICAgPFByZWYgeD0wLjAwMDAgeT03NC43NjUwIHNpZGU9VyB3aWR0aD0wLjA3MDAgZGVwdGg9MC4yOTAwIC8+Ci0gICAgICA8TGF5ZXIgaWQ9NSA+Ci0gICAgICAgIDxCb3ggbGx4PTAuMDAwMCBsbHk9NzQuNzMwMCB1cng9MC4yOTAwIHVyeT03NC44MDAwIC8+Ci0gICAgICA8L0xheWVyPgotICAgIDwvUG9ydD4KLSAgPC9QaW4+Ci0gIDxQaW4gbmFtZT0icm9tX2RhdGFfb3V0WzNdIiBzdGF0dXM9ImZpeGVkIiA+Ci0gICAgPFBvcnQ+Ci0gICAgICA8UHJlZiB4PTAuMDAwMCB5PTc0LjU3NTAgc2lkZT1XIHdpZHRoPTAuMDcwMCBkZXB0aD0wLjI5MDAgLz4KLSAgICAgIDxMYXllciBpZD0zID4KLSAgICAgICAgPEJveCBsbHg9MC4wMDAwIGxseT03NC41NDAwIHVyeD0wLjI5MDAgdXJ5PTc0LjYxMDAgLz4KLSAgICAgIDwvTGF5ZXI+Ci0gICAgPC9Qb3J0PgotICA8L1Bpbj4KLSAgPFBpbiBuYW1lPSJyb21fZGF0YV9vdXRbMl0iIHN0YXR1cz0iZml4ZWQiID4KLSAgICA8UG9ydD4KLSAgICAgIDxQcmVmIHg9MC4wMDAwIHk9ODAuMDg1MCBzaWRlPVcgd2lkdGg9MC4wNzAwIGRlcHRoPTAuMjkwMCAvPgotICAgICAgPExheWVyIGlkPTMgPgotICAgICAgICA8Qm94IGxseD0wLjAwMDAgbGx5PTgwLjA1MDAgdXJ4PTAuMjkwMCB1cnk9ODAuMTIwMCAvPgotICAgICAgPC9MYXllcj4KLSAgICA8L1BvcnQ+Ci0gIDwvUGluPgotICA8UGluIG5hbWU9InJvbV9kYXRhX291dFsxXSIgc3RhdHVzPSJmaXhlZCIgPgotICAgIDxQb3J0PgotICAgICAgPFByZWYgeD0wLjAwMDAgeT04MC4wODUwIHNpZGU9VyB3aWR0aD0wLjA3MDAgZGVwdGg9MC4yOTAwIC8+Ci0gICAgICA8TGF5ZXIgaWQ9NSA+Ci0gICAgICAgIDxCb3ggbGx4PTAuMDAwMCBsbHk9ODAuMDUwMCB1cng9MC4yOTAwIHVyeT04MC4xMjAwIC8+Ci0gICAgICA8L0xheWVyPgotICAgIDwvUG9ydD4KLSAgPC9QaW4+Ci0gIDxQaW4gbmFtZT0icm9tX2RhdGFfb3V0WzBdIiBzdGF0dXM9ImZpeGVkIiA+Ci0gICAgPFBvcnQ+Ci0gICAgICA8UHJlZiB4PTAuMDAwMCB5PTczLjgxNTAgc2lkZT1XIHdpZHRoPTAuMDcwMCBkZXB0aD0wLjI5MDAgLz4KLSAgICAgIDxMYXllciBpZD0zID4KLSAgICAgICAgPEJveCBsbHg9MC4wMDAwIGxseT03My43ODAwIHVyeD0wLjI5MDAgdXJ5PTczLjg1MDAgLz4KLSAgICAgIDwvTGF5ZXI+Ci0gICAgPC9Qb3J0PgotICA8L1Bpbj4KLSAgPFBpbiBuYW1lPSJidXNfZ3JhbnQiIHN0YXR1cz0iZml4ZWQiID4KLSAgICA8UG9ydD4KLSAgICAgIDxQcmVmIHg9MC4wMDAwIHk9MTI3LjIwNTAgc2lkZT1XIHdpZHRoPTAuMDcwMCBkZXB0aD0wLjI5MDAgLz4KLSAgICAgIDxMYXllciBpZD01ID4KLSAgICAgICAgPEJveCBsbHg9MC4wMDAwIGxseT0xMjcuMTcwMCB1cng9MC4yOTAwIHVyeT0xMjcuMjQwMCAvPgotICAgICAgPC9MYXllcj4KLSAgICA8L1BvcnQ+Ci0gIDwvUGluPgotICA8UGluIG5hbWU9ImJ1c19yZXF1ZXN0IiBzdGF0dXM9ImZpeGVkIiA+Ci0gICAgPFBvcnQ+Ci0gICAgICA8UHJlZiB4PTAuMDAwMCB5PTEyOS4xMDUwIHNpZGU9VyB3aWR0aD0wLjA3MDAgZGVwdGg9MC4yOTAwIC8+Ci0gICAgICA8TGF5ZXIgaWQ9MyA+Ci0gICAgICAgIDxCb3ggbGx4PTAuMDAwMCBsbHk9MTI5LjA3MDAgdXJ4PTAuMjkwMCB1cnk9MTI5LjE0MDAgLz4KLSAgICAgIDwvTGF5ZXI+Ci0gICAgPC9Qb3J0PgotICA8L1Bpbj4KLSAgPFBpbiBuYW1lPSJwb3J0X2FkZHJlc3NbMl0iIHN0YXR1cz0iZml4ZWQiID4KLSAgICA8UG9ydD4KLSAgICAgIDxQcmVmIHg9MC4wMDAwIHk9MTE1LjQyNTAgc2lkZT1XIHdpZHRoPTAuMDcwMCBkZXB0aD0wLjI5MDAgLz4KLSAgICAgIDxMYXllciBpZD0zID4KLSAgICAgICAgPEJveCBsbHg9MC4wMDAwIGxseT0xMTUuMzkwMCB1cng9MC4yOTAwIHVyeT0xMTUuNDYwMCAvPgotICAgICAgPC9MYXllcj4KLSAgICA8L1BvcnQ+Ci0gIDwvUGluPgotICA8UGluIG5hbWU9InBvcnRfYWRkcmVzc1sxXSIgc3RhdHVzPSJmaXhlZCIgPgotICAgIDxQb3J0PgotICAgICAgPFByZWYgeD0wLjAwMDAgeT0xMTguODQ1MCBzaWRlPVcgd2lkdGg9MC4wNzAwIGRlcHRoPTAuMjkwMCAvPgotICAgICAgPExheWVyIGlkPTMgPgotICAgICAgICA8Qm94IGxseD0wLjAwMDAgbGx5PTExOC44MTAwIHVyeD0wLjI5MDAgdXJ5PTExOC44ODAwIC8+Ci0gICAgICA8L0xheWVyPgotICAgIDwvUG9ydD4KLSAgPC9QaW4+Ci0gIDxQaW4gbmFtZT0icG9ydF9hZGRyZXNzWzBdIiBzdGF0dXM9ImZpeGVkIiA+Ci0gICAgPFBvcnQ+Ci0gICAgICA8UHJlZiB4PTMyLjcwMDAgeT0xNTMuOTAwMCBzaWRlPU4gd2lkdGg9MC4wNzAwIGRlcHRoPTAuMjkwMCAvPgotICAgICAgPExheWVyIGlkPTIgPgotICAgICAgICA8Qm94IGxseD0zMi42NjUwIGxseT0xNTMuNjEwMCB1cng9MzIuNzM1MCB1cnk9MTUzLjkwMDAgLz4KLSAgICAgIDwvTGF5ZXI+Ci0gICAgPC9Qb3J0PgotICA8L1Bpbj4KLSAgPFBpbiBuYW1lPSJwb3J0X3BhZF9kYXRhX2luWzE1XSIgc3RhdHVzPSJmaXhlZCIgPgotICAgIDxQb3J0PgotICAgICAgPFByZWYgeD0xNDEuODAwMCB5PTExOC40NjUwIHNpZGU9RSB3aWR0aD0wLjA3MDAgZGVwdGg9MC4yOTAwIC8+Ci0gICAgICA8TGF5ZXIgaWQ9MyA+Ci0gICAgICAgIDxCb3ggbGx4PTE0MS41MTAwIGxseT0xMTguNDMwMCB1cng9MTQxLjgwMDAgdXJ5PTExOC41MDAwIC8+Ci0gICAgICA8L0xheWVyPgotICAgIDwvUG9ydD4KLSAgPC9QaW4+Ci0gIDxQaW4gbmFtZT0icG9ydF9wYWRfZGF0YV9pblsxNF0iIHN0YXR1cz0iZml4ZWQiID4KLSAgICA8UG9ydD4KLSAgICAgIDxQcmVmIHg9MTQxLjgwMDAgeT05Mi4yNDUwIHNpZGU9RSB3aWR0aD0wLjA3MDAgZGVwdGg9MC4yOTAwIC8+Ci0gICAgICA8TGF5ZXIgaWQ9MyA+Ci0gICAgICAgIDxCb3ggbGx4PTE0MS41MTAwIGxseT05Mi4yMTAwIHVyeD0xNDEuODAwMCB1cnk9OTIuMjgwMCAvPgotICAgICAgPC9MYXllcj4KLSAgICA8L1BvcnQ+Ci0gIDwvUGluPgotICA8UGluIG5hbWU9InBvcnRfcGFkX2RhdGFfaW5bMTNdIiBzdGF0dXM9ImZpeGVkIiA+Ci0gICAgPFBvcnQ+Ci0gICAgICA8UHJlZiB4PTE0MS44MDAwIHk9OTIuMjQ1MCBzaWRlPUUgd2lkdGg9MC4wNzAwIGRlcHRoPTAuMjkwMCAvPgotICAgICAgPExheWVyIGlkPTUgPgotICAgICAgICA8Qm94IGxseD0xNDEuNTEwMCBsbHk9OTIuMjEwMCB1cng9MTQxLjgwMDAgdXJ5PTkyLjI4MDAgLz4KLSAgICAgIDwvTGF5ZXI+Ci0gICAgPC9Qb3J0PgotICA8L1Bpbj4KLSAgPFBpbiBuYW1lPSJwb3J0X3BhZF9kYXRhX2luWzEyXSIgc3RhdHVzPSJmaXhlZCIgPgotICAgIDxQb3J0PgotICAgICAgPFByZWYgeD0xNDEuODAwMCB5PTkwLjkxNTAgc2lkZT1FIHdpZHRoPTAuMDcwMCBkZXB0aD0wLjI5MDAgLz4KLSAgICAgIDxMYXllciBpZD0zID4KLSAgICAgICAgPEJveCBsbHg9MTQxLjUxMDAgbGx5PTkwLjg4MDAgdXJ4PTE0MS44MDAwIHVyeT05MC45NTAwIC8+Ci0gICAgICA8L0xheWVyPgotICAgIDwvUG9ydD4KLSAgPC9QaW4+Ci0gIDxQaW4gbmFtZT0icG9ydF9wYWRfZGF0YV9pblsxMV0iIHN0YXR1cz0iZml4ZWQiID4KLSAgICA8UG9ydD4KLSAgICAgIDxQcmVmIHg9MTQxLjgwMDAgeT05Mi42MjUwIHNpZGU9RSB3aWR0aD0wLjA3MDAgZGVwdGg9MC4yOTAwIC8+Ci0gICAgICA8TGF5ZXIgaWQ9MyA+Ci0gICAgICAgIDxCb3ggbGx4PTE0MS41MTAwIGxseT05Mi41OTAwIHVyeD0xNDEuODAwMCB1cnk9OTIuNjYwMCAvPgotICAgICAgPC9MYXllcj4KLSAgICA8L1BvcnQ+Ci0gIDwvUGluPgotICA8UGluIG5hbWU9InBvcnRfcGFkX2RhdGFfaW5bMTBdIiBzdGF0dXM9ImZpeGVkIiA+Ci0gICAgPFBvcnQ+Ci0gICAgICA8UHJlZiB4PTE0MS44MDAwIHk9OTIuNjI1MCBzaWRlPUUgd2lkdGg9MC4wNzAwIGRlcHRoPTAuMjkwMCAvPgotICAgICAgPExheWVyIGlkPTUgPgotICAgICAgICA8Qm94IGxseD0xNDEuNTEwMCBsbHk9OTIuNTkwMCB1cng9MTQxLjgwMDAgdXJ5PTkyLjY2MDAgLz4KLSAgICAgIDwvTGF5ZXI+Ci0gICAgPC9Qb3J0PgotICA8L1Bpbj4KLSAgPFBpbiBuYW1lPSJwb3J0X3BhZF9kYXRhX2luWzldIiBzdGF0dXM9ImZpeGVkIiA+Ci0gICAgPFBvcnQ+Ci0gICAgICA8UHJlZiB4PTE0MS44MDAwIHk9ODQuNjQ1MCBzaWRlPUUgd2lkdGg9MC4wNzAwIGRlcHRoPTAuMjkwMCAvPgotICAgICAgPExheWVyIGlkPTMgPgotICAgICAgICA8Qm94IGxseD0xNDEuNTEwMCBsbHk9ODQuNjEwMCB1cng9MTQxLjgwMDAgdXJ5PTg0LjY4MDAgLz4KLSAgICAgIDwvTGF5ZXI+Ci0gICAgPC9Qb3J0PgotICA8L1Bpbj4KLSAgPFBpbiBuYW1lPSJwb3J0X3BhZF9kYXRhX2luWzhdIiBzdGF0dXM9ImZpeGVkIiA+Ci0gICAgPFBvcnQ+Ci0gICAgICA8UHJlZiB4PTE0MS44MDAwIHk9OTEuODY1MCBzaWRlPUUgd2lkdGg9MC4wNzAwIGRlcHRoPTAuMjkwMCAvPgotICAgICAgPExheWVyIGlkPTMgPgotICAgICAgICA8Qm94IGxseD0xNDEuNTEwMCBsbHk9OTEuODMwMCB1cng9MTQxLjgwMDAgdXJ5PTkxLjkwMDAgLz4KLSAgICAgIDwvTGF5ZXI+Ci0gICAgPC9Qb3J0PgotICA8L1Bpbj4KLSAgPFBpbiBuYW1lPSJwb3J0X3BhZF9kYXRhX2luWzddIiBzdGF0dXM9ImZpeGVkIiA+Ci0gICAgPFBvcnQ+Ci0gICAgICA8UHJlZiB4PTE0MS44MDAwIHk9OTEuODY1MCBzaWRlPUUgd2lkdGg9MC4wNzAwIGRlcHRoPTAuMjkwMCAvPgotICAgICAgPExheWVyIGlkPTUgPgotICAgICAgICA8Qm94IGxseD0xNDEuNTEwMCBsbHk9OTEuODMwMCB1cng9MTQxLjgwMDAgdXJ5PTkxLjkwMDAgLz4KLSAgICAgIDwvTGF5ZXI+Ci0gICAgPC9Qb3J0PgotICA8L1Bpbj4KLSAgPFBpbiBuYW1lPSJwb3J0X3BhZF9kYXRhX2luWzZdIiBzdGF0dXM9ImZpeGVkIiA+Ci0gICAgPFBvcnQ+Ci0gICAgICA8UHJlZiB4PTE0MS44MDAwIHk9OTMuMDA1MCBzaWRlPUUgd2lkdGg9MC4wNzAwIGRlcHRoPTAuMjkwMCAvPgotICAgICAgPExheWVyIGlkPTMgPgotICAgICAgICA8Qm94IGxseD0xNDEuNTEwMCBsbHk9OTIuOTcwMCB1cng9MTQxLjgwMDAgdXJ5PTkzLjA0MDAgLz4KLSAgICAgIDwvTGF5ZXI+Ci0gICAgPC9Qb3J0PgotICA8L1Bpbj4KLSAgPFBpbiBuYW1lPSJwb3J0X3BhZF9kYXRhX2luWzVdIiBzdGF0dXM9ImZpeGVkIiA+Ci0gICAgPFBvcnQ+Ci0gICAgICA8UHJlZiB4PTE0MS44MDAwIHk9MTAzLjQ1NTAgc2lkZT1FIHdpZHRoPTAuMDcwMCBkZXB0aD0wLjI5MDAgLz4KLSAgICAgIDxMYXllciBpZD0zID4KLSAgICAgICAgPEJveCBsbHg9MTQxLjUxMDAgbGx5PTEwMy40MjAwIHVyeD0xNDEuODAwMCB1cnk9MTAzLjQ5MDAgLz4KLSAgICAgIDwvTGF5ZXI+Ci0gICAgPC9Qb3J0PgotICA8L1Bpbj4KLSAgPFBpbiBuYW1lPSJwb3J0X3BhZF9kYXRhX2luWzRdIiBzdGF0dXM9ImZpeGVkIiA+Ci0gICAgPFBvcnQ+Ci0gICAgICA8UHJlZiB4PTE0MS44MDAwIHk9MTA0Ljc4NTAgc2lkZT1FIHdpZHRoPTAuMDcwMCBkZXB0aD0wLjI5MDAgLz4KLSAgICAgIDxMYXllciBpZD0zID4KLSAgICAgICAgPEJveCBsbHg9MTQxLjUxMDAgbGx5PTEwNC43NTAwIHVyeD0xNDEuODAwMCB1cnk9MTA0LjgyMDAgLz4KLSAgICAgIDwvTGF5ZXI+Ci0gICAgPC9Qb3J0PgotICA8L1Bpbj4KLSAgPFBpbiBuYW1lPSJwb3J0X3BhZF9kYXRhX2luWzNdIiBzdGF0dXM9ImZpeGVkIiA+Ci0gICAgPFBvcnQ+Ci0gICAgICA8UHJlZiB4PTE0MS44MDAwIHk9MTA5LjkxNTAgc2lkZT1FIHdpZHRoPTAuMDcwMCBkZXB0aD0wLjI5MDAgLz4KLSAgICAgIDxMYXllciBpZD0zID4KLSAgICAgICAgPEJveCBsbHg9MTQxLjUxMDAgbGx5PTEwOS44ODAwIHVyeD0xNDEuODAwMCB1cnk9MTA5Ljk1MDAgLz4KLSAgICAgIDwvTGF5ZXI+Ci0gICAgPC9Qb3J0PgotICA8L1Bpbj4KLSAgPFBpbiBuYW1lPSJwb3J0X3BhZF9kYXRhX2luWzJdIiBzdGF0dXM9ImZpeGVkIiA+Ci0gICAgPFBvcnQ+Ci0gICAgICA8UHJlZiB4PTE0MS44MDAwIHk9MTExLjA1NTAgc2lkZT1FIHdpZHRoPTAuMDcwMCBkZXB0aD0wLjI5MDAgLz4KLSAgICAgIDxMYXllciBpZD0zID4KLSAgICAgICAgPEJveCBsbHg9MTQxLjUxMDAgbGx5PTExMS4wMjAwIHVyeD0xNDEuODAwMCB1cnk9MTExLjA5MDAgLz4KLSAgICAgIDwvTGF5ZXI+Ci0gICAgPC9Qb3J0PgotICA8L1Bpbj4KLSAgPFBpbiBuYW1lPSJwb3J0X3BhZF9kYXRhX2luWzFdIiBzdGF0dXM9ImZpeGVkIiA+Ci0gICAgPFBvcnQ+Ci0gICAgICA8UHJlZiB4PTE0MS44MDAwIHk9MTA0Ljc4NTAgc2lkZT1FIHdpZHRoPTAuMDcwMCBkZXB0aD0wLjI5MDAgLz4KLSAgICAgIDxMYXllciBpZD01ID4KLSAgICAgICAgPEJveCBsbHg9MTQxLjUxMDAgbGx5PTEwNC43NTAwIHVyeD0xNDEuODAwMCB1cnk9MTA0LjgyMDAgLz4KLSAgICAgIDwvTGF5ZXI+Ci0gICAgPC9Qb3J0PgotICA8L1Bpbj4KLSAgPFBpbiBuYW1lPSJwb3J0X3BhZF9kYXRhX2luWzBdIiBzdGF0dXM9ImZpeGVkIiA+Ci0gICAgPFBvcnQ+Ci0gICAgICA8UHJlZiB4PTE0MS44MDAwIHk9MTEyLjM4NTAgc2lkZT1FIHdpZHRoPTAuMDcwMCBkZXB0aD0wLjI5MDAgLz4KLSAgICAgIDxMYXllciBpZD0zID4KLSAgICAgICAgPEJveCBsbHg9MTQxLjUxMDAgbGx5PTExMi4zNTAwIHVyeD0xNDEuODAwMCB1cnk9MTEyLjQyMDAgLz4KLSAgICAgIDwvTGF5ZXI+Ci0gICAgPC9Qb3J0PgotICA8L1Bpbj4KLSAgPFBpbiBuYW1lPSJwb3J0X3BhZF9kYXRhX291dFsxNV0iIHN0YXR1cz0iZml4ZWQiID4KLSAgICA8UG9ydD4KLSAgICAgIDxQcmVmIHg9MC4wMDAwIHk9NzcuNjE1MCBzaWRlPVcgd2lkdGg9MC4wNzAwIGRlcHRoPTAuMjkwMCAvPgotICAgICAgPExheWVyIGlkPTMgPgotICAgICAgICA8Qm94IGxseD0wLjAwMDAgbGx5PTc3LjU4MDAgdXJ4PTAuMjkwMCB1cnk9NzcuNjUwMCAvPgotICAgICAgPC9MYXllcj4KLSAgICA8L1BvcnQ+Ci0gIDwvUGluPgotICA8UGluIG5hbWU9InBvcnRfcGFkX2RhdGFfb3V0WzE0XSIgc3RhdHVzPSJmaXhlZCIgPgotICAgIDxQb3J0PgotICAgICAgPFByZWYgeD0wLjAwMDAgeT03Ny42MTUwIHNpZGU9VyB3aWR0aD0wLjA3MDAgZGVwdGg9MC4yOTAwIC8+Ci0gICAgICA8TGF5ZXIgaWQ9NSA+Ci0gICAgICAgIDxCb3ggbGx4PTAuMDAwMCBsbHk9NzcuNTgwMCB1cng9MC4yOTAwIHVyeT03Ny42NTAwIC8+Ci0gICAgICA8L0xheWVyPgotICAgIDwvUG9ydD4KLSAgPC9QaW4+Ci0gIDxQaW4gbmFtZT0icG9ydF9wYWRfZGF0YV9vdXRbMTNdIiBzdGF0dXM9ImZpeGVkIiA+Ci0gICAgPFBvcnQ+Ci0gICAgICA8UHJlZiB4PTAuMDAwMCB5PTc0LjE5NTAgc2lkZT1XIHdpZHRoPTAuMDcwMCBkZXB0aD0wLjI5MDAgLz4KLSAgICAgIDxMYXllciBpZD0zID4KLSAgICAgICAgPEJveCBsbHg9MC4wMDAwIGxseT03NC4xNjAwIHVyeD0wLjI5MDAgdXJ5PTc0LjIzMDAgLz4KLSAgICAgIDwvTGF5ZXI+Ci0gICAgPC9Qb3J0PgotICA8L1Bpbj4KLSAgPFBpbiBuYW1lPSJwb3J0X3BhZF9kYXRhX291dFsxMl0iIHN0YXR1cz0iZml4ZWQiID4KLSAgICA8UG9ydD4KLSAgICAgIDxQcmVmIHg9MC4wMDAwIHk9NzAuNzc1MCBzaWRlPVcgd2lkdGg9MC4wNzAwIGRlcHRoPTAuMjkwMCAvPgotICAgICAgPExheWVyIGlkPTMgPgotICAgICAgICA8Qm94IGxseD0wLjAwMDAgbGx5PTcwLjc0MDAgdXJ4PTAuMjkwMCB1cnk9NzAuODEwMCAvPgotICAgICAgPC9MYXllcj4KLSAgICA8L1BvcnQ+Ci0gIDwvUGluPgotICA8UGluIG5hbWU9InBvcnRfcGFkX2RhdGFfb3V0WzExXSIgc3RhdHVzPSJmaXhlZCIgPgotICAgIDxQb3J0PgotICAgICAgPFByZWYgeD0wLjAwMDAgeT03Ny45OTUwIHNpZGU9VyB3aWR0aD0wLjA3MDAgZGVwdGg9MC4yOTAwIC8+Ci0gICAgICA8TGF5ZXIgaWQ9MyA+Ci0gICAgICAgIDxCb3ggbGx4PTAuMDAwMCBsbHk9NzcuOTYwMCB1cng9MC4yOTAwIHVyeT03OC4wMzAwIC8+Ci0gICAgICA8L0xheWVyPgotICAgIDwvUG9ydD4KLSAgPC9QaW4+Ci0gIDxQaW4gbmFtZT0icG9ydF9wYWRfZGF0YV9vdXRbMTBdIiBzdGF0dXM9ImZpeGVkIiA+Ci0gICAgPFBvcnQ+Ci0gICAgICA8UHJlZiB4PTAuMDAwMCB5PTc0LjE5NTAgc2lkZT1XIHdpZHRoPTAuMDcwMCBkZXB0aD0wLjI5MDAgLz4KLSAgICAgIDxMYXllciBpZD01ID4KLSAgICAgICAgPEJveCBsbHg9MC4wMDAwIGxseT03NC4xNjAwIHVyeD0wLjI5MDAgdXJ5PTc0LjIzMDAgLz4KLSAgICAgIDwvTGF5ZXI+Ci0gICAgPC9Qb3J0PgotICA8L1Bpbj4KLSAgPFBpbiBuYW1lPSJwb3J0X3BhZF9kYXRhX291dFs5XSIgc3RhdHVzPSJmaXhlZCIgPgotICAgIDxQb3J0PgotICAgICAgPFByZWYgeD0wLjAwMDAgeT03OS43MDUwIHNpZGU9VyB3aWR0aD0wLjA3MDAgZGVwdGg9MC4yOTAwIC8+Ci0gICAgICA8TGF5ZXIgaWQ9MyA+Ci0gICAgICAgIDxCb3ggbGx4PTAuMDAwMCBsbHk9NzkuNjcwMCB1cng9MC4yOTAwIHVyeT03OS43NDAwIC8+Ci0gICAgICA8L0xheWVyPgotICAgIDwvUG9ydD4KLSAgPC9QaW4+Ci0gIDxQaW4gbmFtZT0icG9ydF9wYWRfZGF0YV9vdXRbOF0iIHN0YXR1cz0iZml4ZWQiID4KLSAgICA8UG9ydD4KLSAgICAgIDxQcmVmIHg9MC4wMDAwIHk9NzIuODY1MCBzaWRlPVcgd2lkdGg9MC4wNzAwIGRlcHRoPTAuMjkwMCAvPgotICAgICAgPExheWVyIGlkPTMgPgotICAgICAgICA8Qm94IGxseD0wLjAwMDAgbGx5PTcyLjgzMDAgdXJ4PTAuMjkwMCB1cnk9NzIuOTAwMCAvPgotICAgICAgPC9MYXllcj4KLSAgICA8L1BvcnQ+Ci0gIDwvUGluPgotICA8UGluIG5hbWU9InBvcnRfcGFkX2RhdGFfb3V0WzddIiBzdGF0dXM9ImZpeGVkIiA+Ci0gICAgPFBvcnQ+Ci0gICAgICA8UHJlZiB4PTY5LjkwMDAgeT0xNTMuOTAwMCBzaWRlPU4gd2lkdGg9MC4wNzAwIGRlcHRoPTAuMjkwMCAvPgotICAgICAgPExheWVyIGlkPTIgPgotICAgICAgICA8Qm94IGxseD02OS44NjUwIGxseT0xNTMuNjEwMCB1cng9NjkuOTM1MCB1cnk9MTUzLjkwMDAgLz4KLSAgICAgIDwvTGF5ZXI+Ci0gICAgPC9Qb3J0PgotICA8L1Bpbj4KLSAgPFBpbiBuYW1lPSJwb3J0X3BhZF9kYXRhX291dFs2XSIgc3RhdHVzPSJmaXhlZCIgPgotICAgIDxQb3J0PgotICAgICAgPFByZWYgeD01OC4xMDAwIHk9MTUzLjkwMDAgc2lkZT1OIHdpZHRoPTAuMDcwMCBkZXB0aD0wLjI5MDAgLz4KLSAgICAgIDxMYXllciBpZD0yID4KLSAgICAgICAgPEJveCBsbHg9NTguMDY1MCBsbHk9MTUzLjYxMDAgdXJ4PTU4LjEzNTAgdXJ5PTE1My45MDAwIC8+Ci0gICAgICA8L0xheWVyPgotICAgIDwvUG9ydD4KLSAgPC9QaW4+Ci0gIDxQaW4gbmFtZT0icG9ydF9wYWRfZGF0YV9vdXRbNV0iIHN0YXR1cz0iZml4ZWQiID4KLSAgICA8UG9ydD4KLSAgICAgIDxQcmVmIHg9NjcuMTAwMCB5PTE1My45MDAwIHNpZGU9TiB3aWR0aD0wLjA3MDAgZGVwdGg9MC4yOTAwIC8+Ci0gICAgICA8TGF5ZXIgaWQ9MiA+Ci0gICAgICAgIDxCb3ggbGx4PTY3LjA2NTAgbGx5PTE1My42MTAwIHVyeD02Ny4xMzUwIHVyeT0xNTMuOTAwMCAvPgotICAgICAgPC9MYXllcj4KLSAgICA8L1BvcnQ+Ci0gIDwvUGluPgotICA8UGluIG5hbWU9InBvcnRfcGFkX2RhdGFfb3V0WzRdIiBzdGF0dXM9ImZpeGVkIiA+Ci0gICAgPFBvcnQ+Ci0gICAgICA8UHJlZiB4PTY0LjcwMDAgeT0xNTMuOTAwMCBzaWRlPU4gd2lkdGg9MC4wNzAwIGRlcHRoPTAuMjkwMCAvPgotICAgICAgPExheWVyIGlkPTIgPgotICAgICAgICA8Qm94IGxseD02NC42NjUwIGxseT0xNTMuNjEwMCB1cng9NjQuNzM1MCB1cnk9MTUzLjkwMDAgLz4KLSAgICAgIDwvTGF5ZXI+Ci0gICAgPC9Qb3J0PgotICA8L1Bpbj4KLSAgPFBpbiBuYW1lPSJwb3J0X3BhZF9kYXRhX291dFszXSIgc3RhdHVzPSJmaXhlZCIgPgotICAgIDxQb3J0PgotICAgICAgPFByZWYgeD03Mi4xMDAwIHk9MTUzLjkwMDAgc2lkZT1OIHdpZHRoPTAuMDcwMCBkZXB0aD0wLjI5MDAgLz4KLSAgICAgIDxMYXllciBpZD0yID4KLSAgICAgICAgPEJveCBsbHg9NzIuMDY1MCBsbHk9MTUzLjYxMDAgdXJ4PTcyLjEzNTAgdXJ5PTE1My45MDAwIC8+Ci0gICAgICA8L0xheWVyPgotICAgIDwvUG9ydD4KLSAgPC9QaW4+Ci0gIDxQaW4gbmFtZT0icG9ydF9wYWRfZGF0YV9vdXRbMl0iIHN0YXR1cz0iZml4ZWQiID4KLSAgICA8UG9ydD4KLSAgICAgIDxQcmVmIHg9NzcuNTAwMCB5PTE1My45MDAwIHNpZGU9TiB3aWR0aD0wLjA3MDAgZGVwdGg9MC4yOTAwIC8+Ci0gICAgICA8TGF5ZXIgaWQ9MiA+Ci0gICAgICAgIDxCb3ggbGx4PTc3LjQ2NTAgbGx5PTE1My42MTAwIHVyeD03Ny41MzUwIHVyeT0xNTMuOTAwMCAvPgotICAgICAgPC9MYXllcj4KLSAgICA8L1BvcnQ+Ci0gIDwvUGluPgotICA8UGluIG5hbWU9InBvcnRfcGFkX2RhdGFfb3V0WzFdIiBzdGF0dXM9ImZpeGVkIiA+Ci0gICAgPFBvcnQ+Ci0gICAgICA8UHJlZiB4PTU1LjkwMDAgeT0xNTMuOTAwMCBzaWRlPU4gd2lkdGg9MC4wNzAwIGRlcHRoPTAuMjkwMCAvPgotICAgICAgPExheWVyIGlkPTIgPgotICAgICAgICA8Qm94IGxseD01NS44NjUwIGxseT0xNTMuNjEwMCB1cng9NTUuOTM1MCB1cnk9MTUzLjkwMDAgLz4KLSAgICAgIDwvTGF5ZXI+Ci0gICAgPC9Qb3J0PgotICA8L1Bpbj4KLSAgPFBpbiBuYW1lPSJwb3J0X3BhZF9kYXRhX291dFswXSIgc3RhdHVzPSJmaXhlZCIgPgotICAgIDxQb3J0PgotICAgICAgPFByZWYgeD0wLjAwMDAgeT04MS4wMzUwIHNpZGU9VyB3aWR0aD0wLjA3MDAgZGVwdGg9MC4yOTAwIC8+Ci0gICAgICA8TGF5ZXIgaWQ9MyA+Ci0gICAgICAgIDxCb3ggbGx4PTAuMDAwMCBsbHk9ODEuMDAwMCB1cng9MC4yOTAwIHVyeT04MS4wNzAwIC8+Ci0gICAgICA8L0xheWVyPgotICAgIDwvUG9ydD4KLSAgPC9QaW4+Ci0gIDxQaW4gbmFtZT0icG9ydF9hcyIgc3RhdHVzPSJmaXhlZCIgPgotICAgIDxQb3J0PgotICAgICAgPFByZWYgeD00OS4zMDAwIHk9MTUzLjkwMDAgc2lkZT1OIHdpZHRoPTAuMDcwMCBkZXB0aD0wLjI5MDAgLz4KLSAgICAgIDxMYXllciBpZD0yID4KLSAgICAgICAgPEJveCBsbHg9NDkuMjY1MCBsbHk9MTUzLjYxMDAgdXJ4PTQ5LjMzNTAgdXJ5PTE1My45MDAwIC8+Ci0gICAgICA8L0xheWVyPgotICAgIDwvUG9ydD4KLSAgPC9QaW4+Ci0gIDxQaW4gbmFtZT0icG9ydF9yZWFkIiBzdGF0dXM9ImZpeGVkIiA+Ci0gICAgPFBvcnQ+Ci0gICAgICA8UHJlZiB4PTAuMDAwMCB5PTgwLjQ2NTAgc2lkZT1XIHdpZHRoPTAuMDcwMCBkZXB0aD0wLjI5MDAgLz4KLSAgICAgIDxMYXllciBpZD0zID4KLSAgICAgICAgPEJveCBsbHg9MC4wMDAwIGxseT04MC40MzAwIHVyeD0wLjI5MDAgdXJ5PTgwLjUwMDAgLz4KLSAgICAgIDwvTGF5ZXI+Ci0gICAgPC9Qb3J0PgotICA8L1Bpbj4KLSAgPFBpbiBuYW1lPSJwb3J0X3dyaXRlIiBzdGF0dXM9ImZpeGVkIiA+Ci0gICAgPFBvcnQ+Ci0gICAgICA8UHJlZiB4PTAuMDAwMCB5PTczLjgxNTAgc2lkZT1XIHdpZHRoPTAuMDcwMCBkZXB0aD0wLjI5MDAgLz4KLSAgICAgIDxMYXllciBpZD01ID4KLSAgICAgICAgPEJveCBsbHg9MC4wMDAwIGxseT03My43ODAwIHVyeD0wLjI5MDAgdXJ5PTczLjg1MDAgLz4KLSAgICAgIDwvTGF5ZXI+Ci0gICAgPC9Qb3J0PgotICA8L1Bpbj4KLSAgPFBpbiBuYW1lPSJwb3J0X3dyaXRlX2giIHN0YXR1cz0iZml4ZWQiID4KLSAgICA8UG9ydD4KLSAgICAgIDxQcmVmIHg9MC4wMDAwIHk9ODAuNDY1MCBzaWRlPVcgd2lkdGg9MC4wNzAwIGRlcHRoPTAuMjkwMCAvPgotICAgICAgPExheWVyIGlkPTUgPgotICAgICAgICA8Qm94IGxseD0wLjAwMDAgbGx5PTgwLjQzMDAgdXJ4PTAuMjkwMCB1cnk9ODAuNTAwMCAvPgotICAgICAgPC9MYXllcj4KLSAgICA8L1BvcnQ+Ci0gIDwvUGluPgotICA8UGluIG5hbWU9InRfc2RpWzJdIiBzdGF0dXM9ImZpeGVkIiA+Ci0gICAgPFBvcnQ+Ci0gICAgICA8UHJlZiB4PTAuMDAwMCB5PTEyMC4zNjUwIHNpZGU9VyB3aWR0aD0wLjA3MDAgZGVwdGg9MC4yOTAwIC8+Ci0gICAgICA8TGF5ZXIgaWQ9MyA+Ci0gICAgICAgIDxCb3ggbGx4PTAuMDAwMCBsbHk9MTIwLjMzMDAgdXJ4PTAuMjkwMCB1cnk9MTIwLjQwMDAgLz4KLSAgICAgIDwvTGF5ZXI+Ci0gICAgPC9Qb3J0PgotICA8L1Bpbj4KLSAgPFBpbiBuYW1lPSJ0X3NkaVsxXSIgc3RhdHVzPSJmaXhlZCIgPgotICAgIDxQb3J0PgotICAgICAgPFByZWYgeD0wLjAwMDAgeT05Ny4zNzUwIHNpZGU9VyB3aWR0aD0wLjA3MDAgZGVwdGg9MC4yOTAwIC8+Ci0gICAgICA8TGF5ZXIgaWQ9MyA+Ci0gICAgICAgIDxCb3ggbGx4PTAuMDAwMCBsbHk9OTcuMzQwMCB1cng9MC4yOTAwIHVyeT05Ny40MTAwIC8+Ci0gICAgICA8L0xheWVyPgotICAgIDwvUG9ydD4KLSAgPC9QaW4+Ci0gIDxQaW4gbmFtZT0idF9zZGlbMF0iIHN0YXR1cz0iZml4ZWQiID4KLSAgICA8UG9ydD4KLSAgICAgIDxQcmVmIHg9MC4wMDAwIHk9MTUxLjE0NTAgc2lkZT1XIHdpZHRoPTAuMDcwMCBkZXB0aD0wLjI5MDAgLz4KLSAgICAgIDxMYXllciBpZD0zID4KLSAgICAgICAgPEJveCBsbHg9MC4wMDAwIGxseT0xNTEuMTEwMCB1cng9MC4yOTAwIHVyeT0xNTEuMTgwMCAvPgotICAgICAgPC9MYXllcj4KLSAgICA8L1BvcnQ+Ci0gIDwvUGluPgotICA8UGluIG5hbWU9InRfc2RvWzJdIiBzdGF0dXM9ImZpeGVkIiA+Ci0gICAgPFBvcnQ+Ci0gICAgICA8UHJlZiB4PTAuMDAwMCB5PTkzLjk1NTAgc2lkZT1XIHdpZHRoPTAuMDcwMCBkZXB0aD0wLjI5MDAgLz4KLSAgICAgIDxMYXllciBpZD0zID4KLSAgICAgICAgPEJveCBsbHg9MC4wMDAwIGxseT05My45MjAwIHVyeD0wLjI5MDAgdXJ5PTkzLjk5MDAgLz4KLSAgICAgIDwvTGF5ZXI+Ci0gICAgPC9Qb3J0PgotICA8L1Bpbj4KLSAgPFBpbiBuYW1lPSJ0X3Nkb1sxXSIgc3RhdHVzPSJmaXhlZCIgPgotICAgIDxQb3J0PgotICAgICAgPFByZWYgeD0wLjAwMDAgeT03MS4xNTUwIHNpZGU9VyB3aWR0aD0wLjA3MDAgZGVwdGg9MC4yOTAwIC8+Ci0gICAgICA8TGF5ZXIgaWQ9MyA+Ci0gICAgICAgIDxCb3ggbGx4PTAuMDAwMCBsbHk9NzEuMTIwMCB1cng9MC4yOTAwIHVyeT03MS4xOTAwIC8+Ci0gICAgICA8L0xheWVyPgotICAgIDwvUG9ydD4KLSAgPC9QaW4+Ci0gIDxQaW4gbmFtZT0idF9zZG9bMF0iIHN0YXR1cz0iZml4ZWQiID4KLSAgICA8UG9ydD4KLSAgICAgIDxQcmVmIHg9MC4wMDAwIHk9NzYuMDk1MCBzaWRlPVcgd2lkdGg9MC4wNzAwIGRlcHRoPTAuMjkwMCAvPgotICAgICAgPExheWVyIGlkPTMgPgotICAgICAgICA8Qm94IGxseD0wLjAwMDAgbGx5PTc2LjA2MDAgdXJ4PTAuMjkwMCB1cnk9NzYuMTMwMCAvPgotICAgICAgPC9MYXllcj4KLSAgICA8L1BvcnQ+Ci0gIDwvUGluPgotICA8UGluIG5hbWU9ImJpbyIgc3RhdHVzPSJmaXhlZCIgPgotICAgIDxQb3J0PgotICAgICAgPFByZWYgeD0wLjAwMDAgeT0xNDMuMzU1MCBzaWRlPVcgd2lkdGg9MC4wNzAwIGRlcHRoPTAuMjkwMCAvPgotICAgICAgPExheWVyIGlkPTMgPgotICAgICAgICA8Qm94IGxseD0wLjAwMDAgbGx5PTE0My4zMjAwIHVyeD0wLjI5MDAgdXJ5PTE0My4zOTAwIC8+Ci0gICAgICA8L0xheWVyPgotICAgIDwvUG9ydD4KLSAgPC9QaW4+Ci0gIDxQaW4gbmFtZT0iaW50IiBzdGF0dXM9ImZpeGVkIiA+Ci0gICAgPFBvcnQ+Ci0gICAgICA8UHJlZiB4PTE0MS44MDAwIHk9MS4wNDUwIHNpZGU9RSB3aWR0aD0wLjA3MDAgZGVwdGg9MC4yOTAwIC8+Ci0gICAgICA8TGF5ZXIgaWQ9NSA+Ci0gICAgICAgIDxCb3ggbGx4PTE0MS41MTAwIGxseT0xLjAxMDAgdXJ4PTE0MS44MDAwIHVyeT0xLjA4MDAgLz4KLSAgICAgIDwvTGF5ZXI+Ci0gICAgPC9Qb3J0PgotICA8L1Bpbj4KLSAgPFBpbiBuYW1lPSJSQ19DR19URVNUX1BPUlQiIHN0YXR1cz0iZml4ZWQiID4KLSAgICA8UG9ydD4KLSAgICAgIDxQcmVmIHg9MC4wMDAwIHk9NzEuMzQ1MCBzaWRlPVcgd2lkdGg9MC4wNzAwIGRlcHRoPTAuMjkwMCAvPgotICAgICAgPExheWVyIGlkPTUgPgotICAgICAgICA8Qm94IGxseD0wLjAwMDAgbGx5PTcxLjMxMDAgdXJ4PTAuMjkwMCB1cnk9NzEuMzgwMCAvPgotICAgICAgPC9MYXllcj4KLSAgICA8L1BvcnQ+Ci0gIDwvUGluPgotICA8UGluIG5hbWU9IlNSUEdfUEdfaW4iIHN0YXR1cz0iZml4ZWQiID4KLSAgICA8UG9ydD4KLSAgICAgIDxQcmVmIHg9MTQxLjgwMDAgeT0xLjQyNTAgc2lkZT1FIHdpZHRoPTAuMDcwMCBkZXB0aD0wLjI5MDAgLz4KLSAgICAgIDxMYXllciBpZD01ID4KLSAgICAgICAgPEJveCBsbHg9MTQxLjUxMDAgbGx5PTEuMzkwMCB1cng9MTQxLjgwMDAgdXJ5PTEuNDYwMCAvPgotICAgICAgPC9MYXllcj4KLSAgICA8L1BvcnQ+Ci0gIDwvUGluPgotICA8UGluIG5hbWU9IlNSUEdfUEdfaW5fMSIgc3RhdHVzPSJmaXhlZCIgPgotICAgIDxQb3J0PgotICAgICAgPFByZWYgeD0xNDEuODAwMCB5PTEuODA1MCBzaWRlPUUgd2lkdGg9MC4wNzAwIGRlcHRoPTAuMjkwMCAvPgotICAgICAgPExheWVyIGlkPTUgPgotICAgICAgICA8Qm94IGxseD0xNDEuNTEwMCBsbHk9MS43NzAwIHVyeD0xNDEuODAwMCB1cnk9MS44NDAwIC8+Ci0gICAgICA8L0xheWVyPgotICAgIDwvUG9ydD4KLSAgPC9QaW4+Ci0gIDxQaW4gbmFtZT0iREZUX3NlbiIgc3RhdHVzPSJmaXhlZCIgPgotICAgIDxQb3J0PgotICAgICAgPFByZWYgeD04LjEwMDAgeT0wLjAwMDAgc2lkZT1TIHdpZHRoPTAuMDcwMCBkZXB0aD0wLjI5MDAgLz4KLSAgICAgIDxMYXllciBpZD0yID4KLSAgICAgICAgPEJveCBsbHg9OC4wNjUwIGxseT0wLjAwMDAgdXJ4PTguMTM1MCB1cnk9MC4yOTAwIC8+Ci0gICAgICA8L0xheWVyPgotICAgIDwvUG9ydD4KLSAgPC9QaW4+Ci08L0lPUGlucz4KLQotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotIyAgUEdQaW46IDxwaW4+IDxuZXQ+IHtpbnxvdXR8aW5vdXR9IHtwd3J8Z25kfC19IHtwbGFjZWR8Zml4ZWR8LX0gPHg+IDx5PiA8c2lkZT4gPGxheWVySWQ+IDxuckJveD4gIwotIyAgICBQaW5Cb3g6IDxsbHg+IDxsbHk+IDx1cng+IDx1cnk+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIwotIyAgICBQaW5Qb2x5OiA8bnJQdHM+IDx4MT4gPHkxPiA8eDI+IDx5Mj4uLi48eG4+IDx5bj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIwotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotUEdQaW46IFZTUyBWU1MgaW5vdXQgZ25kIGZpeGVkIDE0MS44MDAwIDE1MC40ODAwIEUgMSAxCi0gIFBpbkJveDogMTQxLjc0MDAgMTUwLjQyMDAgMTQxLjgwMDAgMTUwLjU0MDAgLWx5ciAxCi1QR1BpbjogVlNTIFZTUyBpbm91dCBnbmQgZml4ZWQgMC4wMDAwIDE1MC40ODAwIFcgMSAxCi0gIFBpbkJveDogMC4wMDAwIDE1MC40MjAwIDAuMDYwMCAxNTAuNTQwMCAtbHlyIDEKLVBHUGluOiBWU1MgVlNTIGlub3V0IGduZCBmaXhlZCAxNDEuODAwMCAxNTMuOTAwMCBFIDEgMQotICBQaW5Cb3g6IDE0MS43NDAwIDE1My44NDAwIDE0MS44MDAwIDE1My45NjAwIC1seXIgMQotUEdQaW46IFZTUyBWU1MgaW5vdXQgZ25kIGZpeGVkIDAuMDAwMCAxNTMuOTAwMCBXIDEgMQotICBQaW5Cb3g6IDAuMDAwMCAxNTMuODQwMCAwLjA2MDAgMTUzLjk2MDAgLWx5ciAxCi1QR1BpbjogVlNTIFZTUyBpbm91dCBnbmQgZml4ZWQgMzAuOTAwMCAwLjAwMDAgUyA2IDEKLSAgUGluQm94OiAyOS40MDAwIDAuMDAwMCAzMi40MDAwIDAuMDcwMCAtbHlyIDYKLVBHUGluOiBWU1MgVlNTIGlub3V0IGduZCBmaXhlZCAzMC45MDAwIDE1My45MDAwIE4gNiAxCi0gIFBpbkJveDogMjkuNDAwMCAxNTMuODMwMCAzMi40MDAwIDE1My45MDAwIC1seXIgNgotUEdQaW46IFZTUyBWU1MgaW5vdXQgZ25kIGZpeGVkIDczLjkwMDAgMC4wMDAwIFMgNiAxCi0gIFBpbkJveDogNzIuNDAwMCAwLjAwMDAgNzUuNDAwMCAwLjA3MDAgLWx5ciA2Ci1QR1BpbjogVlNTIFZTUyBpbm91dCBnbmQgZml4ZWQgNzMuOTAwMCAxNTMuOTAwMCBOIDYgMQotICBQaW5Cb3g6IDcyLjQwMDAgMTUzLjgzMDAgNzUuNDAwMCAxNTMuOTAwMCAtbHlyIDYKLVBHUGluOiBWU1MgVlNTIGlub3V0IGduZCBmaXhlZCAxMTYuOTAwMCAwLjAwMDAgUyA2IDEKLSAgUGluQm94OiAxMTUuNDAwMCAwLjAwMDAgMTE4LjQwMDAgMC4wNzAwIC1seXIgNgotUEdQaW46IFZTUyBWU1MgaW5vdXQgZ25kIGZpeGVkIDExNi45MDAwIDE1My45MDAwIE4gNiAxCi0gIFBpbkJveDogMTE1LjQwMDAgMTUzLjgzMDAgMTE4LjQwMDAgMTUzLjkwMDAgLWx5ciA2Ci1QR1BpbjogVlNTIFZTUyBpbm91dCBnbmQgZml4ZWQgMTQxLjgwMDAgMTE2LjI4MDAgRSAxIDEKLSAgUGluQm94OiAxNDEuNzQwMCAxMTYuMjIwMCAxNDEuODAwMCAxMTYuMzQwMCAtbHlyIDEKLVBHUGluOiBWU1MgVlNTIGlub3V0IGduZCBmaXhlZCAwLjAwMDAgMTE2LjI4MDAgVyAxIDEKLSAgUGluQm94OiAwLjAwMDAgMTE2LjIyMDAgMC4wNjAwIDExNi4zNDAwIC1seXIgMQotUEdQaW46IFZTUyBWU1MgaW5vdXQgZ25kIGZpeGVkIDE0MS44MDAwIDExMi44NjAwIEUgMSAxCi0gIFBpbkJveDogMTQxLjc0MDAgMTEyLjgwMDAgMTQxLjgwMDAgMTEyLjkyMDAgLWx5ciAxCi1QR1BpbjogVlNTIFZTUyBpbm91dCBnbmQgZml4ZWQgMC4wMDAwIDExMi44NjAwIFcgMSAxCi0gIFBpbkJveDogMC4wMDAwIDExMi44MDAwIDAuMDYwMCAxMTIuOTIwMCAtbHlyIDEKLVBHUGluOiBWU1MgVlNTIGlub3V0IGduZCBmaXhlZCAxNDEuODAwMCAxMDYuMDIwMCBFIDEgMQotICBQaW5Cb3g6IDE0MS43NDAwIDEwNS45NjAwIDE0MS44MDAwIDEwNi4wODAwIC1seXIgMQotUEdQaW46IFZTUyBWU1MgaW5vdXQgZ25kIGZpeGVkIDAuMDAwMCAxMDYuMDIwMCBXIDEgMQotICBQaW5Cb3g6IDAuMDAwMCAxMDUuOTYwMCAwLjA2MDAgMTA2LjA4MDAgLWx5ciAxCi1QR1BpbjogVlNTIFZTUyBpbm91dCBnbmQgZml4ZWQgMTQxLjgwMDAgMTA5LjQ0MDAgRSAxIDEKLSAgUGluQm94OiAxNDEuNzQwMCAxMDkuMzgwMCAxNDEuODAwMCAxMDkuNTAwMCAtbHlyIDEKLVBHUGluOiBWU1MgVlNTIGlub3V0IGduZCBmaXhlZCAwLjAwMDAgMTA5LjQ0MDAgVyAxIDEKLSAgUGluQm94OiAwLjAwMDAgMTA5LjM4MDAgMC4wNjAwIDEwOS41MDAwIC1seXIgMQotUEdQaW46IFZTUyBWU1MgaW5vdXQgZ25kIGZpeGVkIDE0MS44MDAwIDExOS43MDAwIEUgMSAxCi0gIFBpbkJveDogMTQxLjc0MDAgMTE5LjY0MDAgMTQxLjgwMDAgMTE5Ljc2MDAgLWx5ciAxCi1QR1BpbjogVlNTIFZTUyBpbm91dCBnbmQgZml4ZWQgMC4wMDAwIDExOS43MDAwIFcgMSAxCi0gIFBpbkJveDogMC4wMDAwIDExOS42NDAwIDAuMDYwMCAxMTkuNzYwMCAtbHlyIDEKLVBHUGluOiBWU1MgVlNTIGlub3V0IGduZCBmaXhlZCAxNDEuODAwMCAxMjMuMTIwMCBFIDEgMQotICBQaW5Cb3g6IDE0MS43NDAwIDEyMy4wNjAwIDE0MS44MDAwIDEyMy4xODAwIC1seXIgMQotUEdQaW46IFZTUyBWU1MgaW5vdXQgZ25kIGZpeGVkIDAuMDAwMCAxMjMuMTIwMCBXIDEgMQotICBQaW5Cb3g6IDAuMDAwMCAxMjMuMDYwMCAwLjA2MDAgMTIzLjE4MDAgLWx5ciAxCi1QR1BpbjogVlNTIFZTUyBpbm91dCBnbmQgZml4ZWQgMTQxLjgwMDAgMTQ3LjA2MDAgRSAxIDEKLSAgUGluQm94OiAxNDEuNzQwMCAxNDcuMDAwMCAxNDEuODAwMCAxNDcuMTIwMCAtbHlyIDEKLVBHUGluOiBWU1MgVlNTIGlub3V0IGduZCBmaXhlZCAwLjAwMDAgMTQ3LjA2MDAgVyAxIDEKLSAgUGluQm94OiAwLjAwMDAgMTQ3LjAwMDAgMC4wNjAwIDE0Ny4xMjAwIC1seXIgMQotUEdQaW46IFZTUyBWU1MgaW5vdXQgZ25kIGZpeGVkIDE0MS44MDAwIDE0My42NDAwIEUgMSAxCi0gIFBpbkJveDogMTQxLjc0MDAgMTQzLjU4MDAgMTQxLjgwMDAgMTQzLjcwMDAgLWx5ciAxCi1QR1BpbjogVlNTIFZTUyBpbm91dCBnbmQgZml4ZWQgMC4wMDAwIDE0My42NDAwIFcgMSAxCi0gIFBpbkJveDogMC4wMDAwIDE0My41ODAwIDAuMDYwMCAxNDMuNzAwMCAtbHlyIDEKLVBHUGluOiBWU1MgVlNTIGlub3V0IGduZCBmaXhlZCAxNDEuODAwMCAxNDAuMjIwMCBFIDEgMQotICBQaW5Cb3g6IDE0MS43NDAwIDE0MC4xNjAwIDE0MS44MDAwIDE0MC4yODAwIC1seXIgMQotUEdQaW46IFZTUyBWU1MgaW5vdXQgZ25kIGZpeGVkIDAuMDAwMCAxNDAuMjIwMCBXIDEgMQotICBQaW5Cb3g6IDAuMDAwMCAxNDAuMTYwMCAwLjA2MDAgMTQwLjI4MDAgLWx5ciAxCi1QR1BpbjogVlNTIFZTUyBpbm91dCBnbmQgZml4ZWQgMTQxLjgwMDAgMTM2LjgwMDAgRSAxIDEKLSAgUGluQm94OiAxNDEuNzQwMCAxMzYuNzQwMCAxNDEuODAwMCAxMzYuODYwMCAtbHlyIDEKLVBHUGluOiBWU1MgVlNTIGlub3V0IGduZCBmaXhlZCAwLjAwMDAgMTM2LjgwMDAgVyAxIDEKLSAgUGluQm94OiAwLjAwMDAgMTM2Ljc0MDAgMC4wNjAwIDEzNi44NjAwIC1seXIgMQotUEdQaW46IFZTUyBWU1MgaW5vdXQgZ25kIGZpeGVkIDE0MS44MDAwIDEzMy4zODAwIEUgMSAxCi0gIFBpbkJveDogMTQxLjc0MDAgMTMzLjMyMDAgMTQxLjgwMDAgMTMzLjQ0MDAgLWx5ciAxCi1QR1BpbjogVlNTIFZTUyBpbm91dCBnbmQgZml4ZWQgMC4wMDAwIDEzMy4zODAwIFcgMSAxCi0gIFBpbkJveDogMC4wMDAwIDEzMy4zMjAwIDAuMDYwMCAxMzMuNDQwMCAtbHlyIDEKLVBHUGluOiBWU1MgVlNTIGlub3V0IGduZCBmaXhlZCAxNDEuODAwMCAxMjkuOTYwMCBFIDEgMQotICBQaW5Cb3g6IDE0MS43NDAwIDEyOS45MDAwIDE0MS44MDAwIDEzMC4wMjAwIC1seXIgMQotUEdQaW46IFZTUyBWU1MgaW5vdXQgZ25kIGZpeGVkIDAuMDAwMCAxMjkuOTYwMCBXIDEgMQotICBQaW5Cb3g6IDAuMDAwMCAxMjkuOTAwMCAwLjA2MDAgMTMwLjAyMDAgLWx5ciAxCi1QR1BpbjogVlNTIFZTUyBpbm91dCBnbmQgZml4ZWQgMTQxLjgwMDAgMTI2LjU0MDAgRSAxIDEKLSAgUGluQm94OiAxNDEuNzQwMCAxMjYuNDgwMCAxNDEuODAwMCAxMjYuNjAwMCAtbHlyIDEKLVBHUGluOiBWU1MgVlNTIGlub3V0IGduZCBmaXhlZCAwLjAwMDAgMTI2LjU0MDAgVyAxIDEKLSAgUGluQm94OiAwLjAwMDAgMTI2LjQ4MDAgMC4wNjAwIDEyNi42MDAwIC1seXIgMQotUEdQaW46IFZTUyBWU1MgaW5vdXQgZ25kIGZpeGVkIDE0MS44MDAwIDYxLjU2MDAgRSAxIDEKLSAgUGluQm94OiAxNDEuNzQwMCA2MS41MDAwIDE0MS44MDAwIDYxLjYyMDAgLWx5ciAxCi1QR1BpbjogVlNTIFZTUyBpbm91dCBnbmQgZml4ZWQgMC4wMDAwIDYxLjU2MDAgVyAxIDEKLSAgUGluQm94OiAwLjAwMDAgNjEuNTAwMCAwLjA2MDAgNjEuNjIwMCAtbHlyIDEKLVBHUGluOiBWU1MgVlNTIGlub3V0IGduZCBmaXhlZCAxNDEuODAwMCA3MS44MjAwIEUgMSAxCi0gIFBpbkJveDogMTQxLjc0MDAgNzEuNzYwMCAxNDEuODAwMCA3MS44ODAwIC1seXIgMQotUEdQaW46IFZTUyBWU1MgaW5vdXQgZ25kIGZpeGVkIDAuMDAwMCA3MS44MjAwIFcgMSAxCi0gIFBpbkJveDogMC4wMDAwIDcxLjc2MDAgMC4wNjAwIDcxLjg4MDAgLWx5ciAxCi1QR1BpbjogVlNTIFZTUyBpbm91dCBnbmQgZml4ZWQgMTQxLjgwMDAgNjguNDAwMCBFIDEgMQotICBQaW5Cb3g6IDE0MS43NDAwIDY4LjM0MDAgMTQxLjgwMDAgNjguNDYwMCAtbHlyIDEKLVBHUGluOiBWU1MgVlNTIGlub3V0IGduZCBmaXhlZCAwLjAwMDAgNjguNDAwMCBXIDEgMQotICBQaW5Cb3g6IDAuMDAwMCA2OC4zNDAwIDAuMDYwMCA2OC40NjAwIC1seXIgMQotUEdQaW46IFZTUyBWU1MgaW5vdXQgZ25kIGZpeGVkIDE0MS44MDAwIDY0Ljk4MDAgRSAxIDEKLSAgUGluQm94OiAxNDEuNzQwMCA2NC45MjAwIDE0MS44MDAwIDY1LjA0MDAgLWx5ciAxCi1QR1BpbjogVlNTIFZTUyBpbm91dCBnbmQgZml4ZWQgMC4wMDAwIDY0Ljk4MDAgVyAxIDEKLSAgUGluQm94OiAwLjAwMDAgNjQuOTIwMCAwLjA2MDAgNjUuMDQwMCAtbHlyIDEKLVBHUGluOiBWU1MgVlNTIGlub3V0IGduZCBmaXhlZCAxNDEuODAwMCA3NS4yNDAwIEUgMSAxCi0gIFBpbkJveDogMTQxLjc0MDAgNzUuMTgwMCAxNDEuODAwMCA3NS4zMDAwIC1seXIgMQotUEdQaW46IFZTUyBWU1MgaW5vdXQgZ25kIGZpeGVkIDAuMDAwMCA3NS4yNDAwIFcgMSAxCi0gIFBpbkJveDogMC4wMDAwIDc1LjE4MDAgMC4wNjAwIDc1LjMwMDAgLWx5ciAxCi1QR1BpbjogVlNTIFZTUyBpbm91dCBnbmQgZml4ZWQgMTQxLjgwMDAgNzguNjYwMCBFIDEgMQotICBQaW5Cb3g6IDE0MS43NDAwIDc4LjYwMDAgMTQxLjgwMDAgNzguNzIwMCAtbHlyIDEKLVBHUGluOiBWU1MgVlNTIGlub3V0IGduZCBmaXhlZCAwLjAwMDAgNzguNjYwMCBXIDEgMQotICBQaW5Cb3g6IDAuMDAwMCA3OC42MDAwIDAuMDYwMCA3OC43MjAwIC1seXIgMQotUEdQaW46IFZTUyBWU1MgaW5vdXQgZ25kIGZpeGVkIDE0MS44MDAwIDkyLjM0MDAgRSAxIDEKLSAgUGluQm94OiAxNDEuNzQwMCA5Mi4yODAwIDE0MS44MDAwIDkyLjQwMDAgLWx5ciAxCi1QR1BpbjogVlNTIFZTUyBpbm91dCBnbmQgZml4ZWQgMC4wMDAwIDkyLjM0MDAgVyAxIDEKLSAgUGluQm94OiAwLjAwMDAgOTIuMjgwMCAwLjA2MDAgOTIuNDAwMCAtbHlyIDEKLVBHUGluOiBWU1MgVlNTIGlub3V0IGduZCBmaXhlZCAxNDEuODAwMCA4OC45MjAwIEUgMSAxCi0gIFBpbkJveDogMTQxLjc0MDAgODguODYwMCAxNDEuODAwMCA4OC45ODAwIC1seXIgMQotUEdQaW46IFZTUyBWU1MgaW5vdXQgZ25kIGZpeGVkIDAuMDAwMCA4OC45MjAwIFcgMSAxCi0gIFBpbkJveDogMC4wMDAwIDg4Ljg2MDAgMC4wNjAwIDg4Ljk4MDAgLWx5ciAxCi1QR1BpbjogVlNTIFZTUyBpbm91dCBnbmQgZml4ZWQgMTQxLjgwMDAgODUuNTAwMCBFIDEgMQotICBQaW5Cb3g6IDE0MS43NDAwIDg1LjQ0MDAgMTQxLjgwMDAgODUuNTYwMCAtbHlyIDEKLVBHUGluOiBWU1MgVlNTIGlub3V0IGduZCBmaXhlZCAwLjAwMDAgODUuNTAwMCBXIDEgMQotICBQaW5Cb3g6IDAuMDAwMCA4NS40NDAwIDAuMDYwMCA4NS41NjAwIC1seXIgMQotUEdQaW46IFZTUyBWU1MgaW5vdXQgZ25kIGZpeGVkIDE0MS44MDAwIDgyLjA4MDAgRSAxIDEKLSAgUGluQm94OiAxNDEuNzQwMCA4Mi4wMjAwIDE0MS44MDAwIDgyLjE0MDAgLWx5ciAxCi1QR1BpbjogVlNTIFZTUyBpbm91dCBnbmQgZml4ZWQgMC4wMDAwIDgyLjA4MDAgVyAxIDEKLSAgUGluQm94OiAwLjAwMDAgODIuMDIwMCAwLjA2MDAgODIuMTQwMCAtbHlyIDEKLVBHUGluOiBWU1MgVlNTIGlub3V0IGduZCBmaXhlZCAxNDEuODAwMCAxMDIuNjAwMCBFIDEgMQotICBQaW5Cb3g6IDE0MS43NDAwIDEwMi41NDAwIDE0MS44MDAwIDEwMi42NjAwIC1seXIgMQotUEdQaW46IFZTUyBWU1MgaW5vdXQgZ25kIGZpeGVkIDAuMDAwMCAxMDIuNjAwMCBXIDEgMQotICBQaW5Cb3g6IDAuMDAwMCAxMDIuNTQwMCAwLjA2MDAgMTAyLjY2MDAgLWx5ciAxCi1QR1BpbjogVlNTIFZTUyBpbm91dCBnbmQgZml4ZWQgMTQxLjgwMDAgOTkuMTgwMCBFIDEgMQotICBQaW5Cb3g6IDE0MS43NDAwIDk5LjEyMDAgMTQxLjgwMDAgOTkuMjQwMCAtbHlyIDEKLVBHUGluOiBWU1MgVlNTIGlub3V0IGduZCBmaXhlZCAwLjAwMDAgOTkuMTgwMCBXIDEgMQotICBQaW5Cb3g6IDAuMDAwMCA5OS4xMjAwIDAuMDYwMCA5OS4yNDAwIC1seXIgMQotUEdQaW46IFZTUyBWU1MgaW5vdXQgZ25kIGZpeGVkIDE0MS44MDAwIDk1Ljc2MDAgRSAxIDEKLSAgUGluQm94OiAxNDEuNzQwMCA5NS43MDAwIDE0MS44MDAwIDk1LjgyMDAgLWx5ciAxCi1QR1BpbjogVlNTIFZTUyBpbm91dCBnbmQgZml4ZWQgMC4wMDAwIDk1Ljc2MDAgVyAxIDEKLSAgUGluQm94OiAwLjAwMDAgOTUuNzAwMCAwLjA2MDAgOTUuODIwMCAtbHlyIDEKLVBHUGluOiBWU1MgVlNTIGlub3V0IGduZCBmaXhlZCAxNDEuODAwMCAyMy45NDAwIEUgMSAxCi0gIFBpbkJveDogMTQxLjc0MDAgMjMuODgwMCAxNDEuODAwMCAyNC4wMDAwIC1seXIgMQotUEdQaW46IFZTUyBWU1MgaW5vdXQgZ25kIGZpeGVkIDAuMDAwMCAyMy45NDAwIFcgMSAxCi0gIFBpbkJveDogMC4wMDAwIDIzLjg4MDAgMC4wNjAwIDI0LjAwMDAgLWx5ciAxCi1QR1BpbjogVlNTIFZTUyBpbm91dCBnbmQgZml4ZWQgMTQxLjgwMDAgMTcuMTAwMCBFIDEgMQotICBQaW5Cb3g6IDE0MS43NDAwIDE3LjA0MDAgMTQxLjgwMDAgMTcuMTYwMCAtbHlyIDEKLVBHUGluOiBWU1MgVlNTIGlub3V0IGduZCBmaXhlZCAwLjAwMDAgMTcuMTAwMCBXIDEgMQotICBQaW5Cb3g6IDAuMDAwMCAxNy4wNDAwIDAuMDYwMCAxNy4xNjAwIC1seXIgMQotUEdQaW46IFZTUyBWU1MgaW5vdXQgZ25kIGZpeGVkIDE0MS44MDAwIDIwLjUyMDAgRSAxIDEKLSAgUGluQm94OiAxNDEuNzQwMCAyMC40NjAwIDE0MS44MDAwIDIwLjU4MDAgLWx5ciAxCi1QR1BpbjogVlNTIFZTUyBpbm91dCBnbmQgZml4ZWQgMC4wMDAwIDIwLjUyMDAgVyAxIDEKLSAgUGluQm94OiAwLjAwMDAgMjAuNDYwMCAwLjA2MDAgMjAuNTgwMCAtbHlyIDEKLVBHUGluOiBWU1MgVlNTIGlub3V0IGduZCBmaXhlZCAxNDEuODAwMCAxMy42ODAwIEUgMSAxCi0gIFBpbkJveDogMTQxLjc0MDAgMTMuNjIwMCAxNDEuODAwMCAxMy43NDAwIC1seXIgMQotUEdQaW46IFZTUyBWU1MgaW5vdXQgZ25kIGZpeGVkIDAuMDAwMCAxMy42ODAwIFcgMSAxCi0gIFBpbkJveDogMC4wMDAwIDEzLjYyMDAgMC4wNjAwIDEzLjc0MDAgLWx5ciAxCi1QR1BpbjogVlNTIFZTUyBpbm91dCBnbmQgZml4ZWQgMTQxLjgwMDAgMjcuMzYwMCBFIDEgMQotICBQaW5Cb3g6IDE0MS43NDAwIDI3LjMwMDAgMTQxLjgwMDAgMjcuNDIwMCAtbHlyIDEKLVBHUGluOiBWU1MgVlNTIGlub3V0IGduZCBmaXhlZCAwLjAwMDAgMjcuMzYwMCBXIDEgMQotICBQaW5Cb3g6IDAuMDAwMCAyNy4zMDAwIDAuMDYwMCAyNy40MjAwIC1seXIgMQotUEdQaW46IFZTUyBWU1MgaW5vdXQgZ25kIGZpeGVkIDE0MS44MDAwIDM0LjIwMDAgRSAxIDEKLSAgUGluQm94OiAxNDEuNzQwMCAzNC4xNDAwIDE0MS44MDAwIDM0LjI2MDAgLWx5ciAxCi1QR1BpbjogVlNTIFZTUyBpbm91dCBnbmQgZml4ZWQgMC4wMDAwIDM0LjIwMDAgVyAxIDEKLSAgUGluQm94OiAwLjAwMDAgMzQuMTQwMCAwLjA2MDAgMzQuMjYwMCAtbHlyIDEKLVBHUGluOiBWU1MgVlNTIGlub3V0IGduZCBmaXhlZCAxNDEuODAwMCAzMC43ODAwIEUgMSAxCi0gIFBpbkJveDogMTQxLjc0MDAgMzAuNzIwMCAxNDEuODAwMCAzMC44NDAwIC1seXIgMQotUEdQaW46IFZTUyBWU1MgaW5vdXQgZ25kIGZpeGVkIDAuMDAwMCAzMC43ODAwIFcgMSAxCi0gIFBpbkJveDogMC4wMDAwIDMwLjcyMDAgMC4wNjAwIDMwLjg0MDAgLWx5ciAxCi1QR1BpbjogVlNTIFZTUyBpbm91dCBnbmQgZml4ZWQgMTQxLjgwMDAgNTEuMzAwMCBFIDEgMQotICBQaW5Cb3g6IDE0MS43NDAwIDUxLjI0MDAgMTQxLjgwMDAgNTEuMzYwMCAtbHlyIDEKLVBHUGluOiBWU1MgVlNTIGlub3V0IGduZCBmaXhlZCAwLjAwMDAgNTEuMzAwMCBXIDEgMQotICBQaW5Cb3g6IDAuMDAwMCA1MS4yNDAwIDAuMDYwMCA1MS4zNjAwIC1seXIgMQotUEdQaW46IFZTUyBWU1MgaW5vdXQgZ25kIGZpeGVkIDE0MS44MDAwIDU0LjcyMDAgRSAxIDEKLSAgUGluQm94OiAxNDEuNzQwMCA1NC42NjAwIDE0MS44MDAwIDU0Ljc4MDAgLWx5ciAxCi1QR1BpbjogVlNTIFZTUyBpbm91dCBnbmQgZml4ZWQgMC4wMDAwIDU0LjcyMDAgVyAxIDEKLSAgUGluQm94OiAwLjAwMDAgNTQuNjYwMCAwLjA2MDAgNTQuNzgwMCAtbHlyIDEKLVBHUGluOiBWU1MgVlNTIGlub3V0IGduZCBmaXhlZCAxNDEuODAwMCA0Ny44ODAwIEUgMSAxCi0gIFBpbkJveDogMTQxLjc0MDAgNDcuODIwMCAxNDEuODAwMCA0Ny45NDAwIC1seXIgMQotUEdQaW46IFZTUyBWU1MgaW5vdXQgZ25kIGZpeGVkIDAuMDAwMCA0Ny44ODAwIFcgMSAxCi0gIFBpbkJveDogMC4wMDAwIDQ3LjgyMDAgMC4wNjAwIDQ3Ljk0MDAgLWx5ciAxCi1QR1BpbjogVlNTIFZTUyBpbm91dCBnbmQgZml4ZWQgMTQxLjgwMDAgNDQuNDYwMCBFIDEgMQotICBQaW5Cb3g6IDE0MS43NDAwIDQ0LjQwMDAgMTQxLjgwMDAgNDQuNTIwMCAtbHlyIDEKLVBHUGluOiBWU1MgVlNTIGlub3V0IGduZCBmaXhlZCAwLjAwMDAgNDQuNDYwMCBXIDEgMQotICBQaW5Cb3g6IDAuMDAwMCA0NC40MDAwIDAuMDYwMCA0NC41MjAwIC1seXIgMQotUEdQaW46IFZTUyBWU1MgaW5vdXQgZ25kIGZpeGVkIDE0MS44MDAwIDM3LjYyMDAgRSAxIDEKLSAgUGluQm94OiAxNDEuNzQwMCAzNy41NjAwIDE0MS44MDAwIDM3LjY4MDAgLWx5ciAxCi1QR1BpbjogVlNTIFZTUyBpbm91dCBnbmQgZml4ZWQgMC4wMDAwIDM3LjYyMDAgVyAxIDEKLSAgUGluQm94OiAwLjAwMDAgMzcuNTYwMCAwLjA2MDAgMzcuNjgwMCAtbHlyIDEKLVBHUGluOiBWU1MgVlNTIGlub3V0IGduZCBmaXhlZCAxNDEuODAwMCA0MS4wNDAwIEUgMSAxCi0gIFBpbkJveDogMTQxLjc0MDAgNDAuOTgwMCAxNDEuODAwMCA0MS4xMDAwIC1seXIgMQotUEdQaW46IFZTUyBWU1MgaW5vdXQgZ25kIGZpeGVkIDAuMDAwMCA0MS4wNDAwIFcgMSAxCi0gIFBpbkJveDogMC4wMDAwIDQwLjk4MDAgMC4wNjAwIDQxLjEwMDAgLWx5ciAxCi1QR1BpbjogVlNTIFZTUyBpbm91dCBnbmQgZml4ZWQgMTQxLjgwMDAgNTguMTQwMCBFIDEgMQotICBQaW5Cb3g6IDE0MS43NDAwIDU4LjA4MDAgMTQxLjgwMDAgNTguMjAwMCAtbHlyIDEKLVBHUGluOiBWU1MgVlNTIGlub3V0IGduZCBmaXhlZCAwLjAwMDAgNTguMTQwMCBXIDEgMQotICBQaW5Cb3g6IDAuMDAwMCA1OC4wODAwIDAuMDYwMCA1OC4yMDAwIC1seXIgMQotUEdQaW46IFZTUyBWU1MgaW5vdXQgZ25kIGZpeGVkIDE0MS44MDAwIDYuODQwMCBFIDEgMQotICBQaW5Cb3g6IDE0MS43NDAwIDYuNzgwMCAxNDEuODAwMCA2LjkwMDAgLWx5ciAxCi1QR1BpbjogVlNTIFZTUyBpbm91dCBnbmQgZml4ZWQgMC4wMDAwIDYuODQwMCBXIDEgMQotICBQaW5Cb3g6IDAuMDAwMCA2Ljc4MDAgMC4wNjAwIDYuOTAwMCAtbHlyIDEKLVBHUGluOiBWU1MgVlNTIGlub3V0IGduZCBmaXhlZCAxNDEuODAwMCAxMC4yNjAwIEUgMSAxCi0gIFBpbkJveDogMTQxLjc0MDAgMTAuMjAwMCAxNDEuODAwMCAxMC4zMjAwIC1seXIgMQotUEdQaW46IFZTUyBWU1MgaW5vdXQgZ25kIGZpeGVkIDAuMDAwMCAxMC4yNjAwIFcgMSAxCi0gIFBpbkJveDogMC4wMDAwIDEwLjIwMDAgMC4wNjAwIDEwLjMyMDAgLWx5ciAxCi1QR1BpbjogVlNTIFZTUyBpbm91dCBnbmQgZml4ZWQgMTQxLjgwMDAgMy40MjAwIEUgMSAxCi0gIFBpbkJveDogMTQxLjc0MDAgMy4zNjAwIDE0MS44MDAwIDMuNDgwMCAtbHlyIDEKLVBHUGluOiBWU1MgVlNTIGlub3V0IGduZCBmaXhlZCAwLjAwMDAgMy40MjAwIFcgMSAxCi0gIFBpbkJveDogMC4wMDAwIDMuMzYwMCAwLjA2MDAgMy40ODAwIC1seXIgMQotUEdQaW46IFZTUyBWU1MgaW5vdXQgZ25kIGZpeGVkIDE0MS44MDAwIDAuMDAwMCBFIDEgMQotICBQaW5Cb3g6IDE0MS43NDAwIC0wLjA2MDAgMTQxLjgwMDAgMC4wNjAwIC1seXIgMQotUEdQaW46IFZTUyBWU1MgaW5vdXQgZ25kIGZpeGVkIDAuMDAwMCAwLjAwMDAgVyAxIDEKLSAgUGluQm94OiAwLjAwMDAgLTAuMDYwMCAwLjA2MDAgMC4wNjAwIC1seXIgMQotUEdQaW46IFZERCBWREQgaW5vdXQgcHdyIGZpeGVkIDE0MS44MDAwIDE1Mi4xOTAwIEUgMSAxCi0gIFBpbkJveDogMTQxLjc0MDAgMTUyLjEzMDAgMTQxLjgwMDAgMTUyLjI1MDAgLWx5ciAxCi1QR1BpbjogVkREIFZERCBpbm91dCBwd3IgZml4ZWQgMC4wMDAwIDE1Mi4xOTAwIFcgMSAxCi0gIFBpbkJveDogMC4wMDAwIDE1Mi4xMzAwIDAuMDYwMCAxNTIuMjUwMCAtbHlyIDEKLVBHUGluOiBWREQgVkREIGlub3V0IHB3ciBmaXhlZCAyNi45MDAwIDAuMDAwMCBTIDYgMQotICBQaW5Cb3g6IDI1LjQwMDAgMC4wMDAwIDI4LjQwMDAgMC4wNzAwIC1seXIgNgotUEdQaW46IFZERCBWREQgaW5vdXQgcHdyIGZpeGVkIDI2LjkwMDAgMTUzLjkwMDAgTiA2IDEKLSAgUGluQm94OiAyNS40MDAwIDE1My44MzAwIDI4LjQwMDAgMTUzLjkwMDAgLWx5ciA2Ci1QR1BpbjogVkREIFZERCBpbm91dCBwd3IgZml4ZWQgNjkuOTAwMCAwLjAwMDAgUyA2IDEKLSAgUGluQm94OiA2OC40MDAwIDAuMDAwMCA3MS40MDAwIDAuMDcwMCAtbHlyIDYKLVBHUGluOiBWREQgVkREIGlub3V0IHB3ciBmaXhlZCA2OS45MDAwIDE1My45MDAwIE4gNiAxCi0gIFBpbkJveDogNjguNDAwMCAxNTMuODMwMCA3MS40MDAwIDE1My45MDAwIC1seXIgNgotUEdQaW46IFZERCBWREQgaW5vdXQgcHdyIGZpeGVkIDExMi45MDAwIDAuMDAwMCBTIDYgMQotICBQaW5Cb3g6IDExMS40MDAwIDAuMDAwMCAxMTQuNDAwMCAwLjA3MDAgLWx5ciA2Ci1QR1BpbjogVkREIFZERCBpbm91dCBwd3IgZml4ZWQgMTEyLjkwMDAgMTUzLjkwMDAgTiA2IDEKLSAgUGluQm94OiAxMTEuNDAwMCAxNTMuODMwMCAxMTQuNDAwMCAxNTMuOTAwMCAtbHlyIDYKLVBHUGluOiBWREQgVkREIGlub3V0IHB3ciBmaXhlZCAxNDEuODAwMCAxNDguNzcwMCBFIDEgMQotICBQaW5Cb3g6IDE0MS43NDAwIDE0OC43MTAwIDE0MS44MDAwIDE0OC44MzAwIC1seXIgMQotUEdQaW46IFZERCBWREQgaW5vdXQgcHdyIGZpeGVkIDAuMDAwMCAxNDguNzcwMCBXIDEgMQotICBQaW5Cb3g6IDAuMDAwMCAxNDguNzEwMCAwLjA2MDAgMTQ4LjgzMDAgLWx5ciAxCi1QR1BpbjogVkREIFZERCBpbm91dCBwd3IgZml4ZWQgMTQxLjgwMDAgMTE3Ljk5MDAgRSAxIDEKLSAgUGluQm94OiAxNDEuNzQwMCAxMTcuOTMwMCAxNDEuODAwMCAxMTguMDUwMCAtbHlyIDEKLVBHUGluOiBWREQgVkREIGlub3V0IHB3ciBmaXhlZCAwLjAwMDAgMTE3Ljk5MDAgVyAxIDEKLSAgUGluQm94OiAwLjAwMDAgMTE3LjkzMDAgMC4wNjAwIDExOC4wNTAwIC1seXIgMQotUEdQaW46IFZERCBWREQgaW5vdXQgcHdyIGZpeGVkIDE0MS44MDAwIDExNC41NzAwIEUgMSAxCi0gIFBpbkJveDogMTQxLjc0MDAgMTE0LjUxMDAgMTQxLjgwMDAgMTE0LjYzMDAgLWx5ciAxCi1QR1BpbjogVkREIFZERCBpbm91dCBwd3IgZml4ZWQgMC4wMDAwIDExNC41NzAwIFcgMSAxCi0gIFBpbkJveDogMC4wMDAwIDExNC41MTAwIDAuMDYwMCAxMTQuNjMwMCAtbHlyIDEKLVBHUGluOiBWREQgVkREIGlub3V0IHB3ciBmaXhlZCAxNDEuODAwMCAxMTEuMTUwMCBFIDEgMQotICBQaW5Cb3g6IDE0MS43NDAwIDExMS4wOTAwIDE0MS44MDAwIDExMS4yMTAwIC1seXIgMQotUEdQaW46IFZERCBWREQgaW5vdXQgcHdyIGZpeGVkIDAuMDAwMCAxMTEuMTUwMCBXIDEgMQotICBQaW5Cb3g6IDAuMDAwMCAxMTEuMDkwMCAwLjA2MDAgMTExLjIxMDAgLWx5ciAxCi1QR1BpbjogVkREIFZERCBpbm91dCBwd3IgZml4ZWQgMTQxLjgwMDAgMTA3LjczMDAgRSAxIDEKLSAgUGluQm94OiAxNDEuNzQwMCAxMDcuNjcwMCAxNDEuODAwMCAxMDcuNzkwMCAtbHlyIDEKLVBHUGluOiBWREQgVkREIGlub3V0IHB3ciBmaXhlZCAwLjAwMDAgMTA3LjczMDAgVyAxIDEKLSAgUGluQm94OiAwLjAwMDAgMTA3LjY3MDAgMC4wNjAwIDEwNy43OTAwIC1seXIgMQotUEdQaW46IFZERCBWREQgaW5vdXQgcHdyIGZpeGVkIDE0MS44MDAwIDEwNC4zMTAwIEUgMSAxCi0gIFBpbkJveDogMTQxLjc0MDAgMTA0LjI1MDAgMTQxLjgwMDAgMTA0LjM3MDAgLWx5ciAxCi1QR1BpbjogVkREIFZERCBpbm91dCBwd3IgZml4ZWQgMC4wMDAwIDEwNC4zMTAwIFcgMSAxCi0gIFBpbkJveDogMC4wMDAwIDEwNC4yNTAwIDAuMDYwMCAxMDQuMzcwMCAtbHlyIDEKLVBHUGluOiBWREQgVkREIGlub3V0IHB3ciBmaXhlZCAxNDEuODAwMCAxMjQuODMwMCBFIDEgMQotICBQaW5Cb3g6IDE0MS43NDAwIDEyNC43NzAwIDE0MS44MDAwIDEyNC44OTAwIC1seXIgMQotUEdQaW46IFZERCBWREQgaW5vdXQgcHdyIGZpeGVkIDAuMDAwMCAxMjQuODMwMCBXIDEgMQotICBQaW5Cb3g6IDAuMDAwMCAxMjQuNzcwMCAwLjA2MDAgMTI0Ljg5MDAgLWx5ciAxCi1QR1BpbjogVkREIFZERCBpbm91dCBwd3IgZml4ZWQgMTQxLjgwMDAgMTIxLjQxMDAgRSAxIDEKLSAgUGluQm94OiAxNDEuNzQwMCAxMjEuMzUwMCAxNDEuODAwMCAxMjEuNDcwMCAtbHlyIDEKLVBHUGluOiBWREQgVkREIGlub3V0IHB3ciBmaXhlZCAwLjAwMDAgMTIxLjQxMDAgVyAxIDEKLSAgUGluQm94OiAwLjAwMDAgMTIxLjM1MDAgMC4wNjAwIDEyMS40NzAwIC1seXIgMQotUEdQaW46IFZERCBWREQgaW5vdXQgcHdyIGZpeGVkIDE0MS44MDAwIDE0NS4zNTAwIEUgMSAxCi0gIFBpbkJveDogMTQxLjc0MDAgMTQ1LjI5MDAgMTQxLjgwMDAgMTQ1LjQxMDAgLWx5ciAxCi1QR1BpbjogVkREIFZERCBpbm91dCBwd3IgZml4ZWQgMC4wMDAwIDE0NS4zNTAwIFcgMSAxCi0gIFBpbkJveDogMC4wMDAwIDE0NS4yOTAwIDAuMDYwMCAxNDUuNDEwMCAtbHlyIDEKLVBHUGluOiBWREQgVkREIGlub3V0IHB3ciBmaXhlZCAxNDEuODAwMCAxMzEuNjcwMCBFIDEgMQotICBQaW5Cb3g6IDE0MS43NDAwIDEzMS42MTAwIDE0MS44MDAwIDEzMS43MzAwIC1seXIgMQotUEdQaW46IFZERCBWREQgaW5vdXQgcHdyIGZpeGVkIDAuMDAwMCAxMzEuNjcwMCBXIDEgMQotICBQaW5Cb3g6IDAuMDAwMCAxMzEuNjEwMCAwLjA2MDAgMTMxLjczMDAgLWx5ciAxCi1QR1BpbjogVkREIFZERCBpbm91dCBwd3IgZml4ZWQgMTQxLjgwMDAgMTQxLjkzMDAgRSAxIDEKLSAgUGluQm94OiAxNDEuNzQwMCAxNDEuODcwMCAxNDEuODAwMCAxNDEuOTkwMCAtbHlyIDEKLVBHUGluOiBWREQgVkREIGlub3V0IHB3ciBmaXhlZCAwLjAwMDAgMTQxLjkzMDAgVyAxIDEKLSAgUGluQm94OiAwLjAwMDAgMTQxLjg3MDAgMC4wNjAwIDE0MS45OTAwIC1seXIgMQotUEdQaW46IFZERCBWREQgaW5vdXQgcHdyIGZpeGVkIDE0MS44MDAwIDEzOC41MTAwIEUgMSAxCi0gIFBpbkJveDogMTQxLjc0MDAgMTM4LjQ1MDAgMTQxLjgwMDAgMTM4LjU3MDAgLWx5ciAxCi1QR1BpbjogVkREIFZERCBpbm91dCBwd3IgZml4ZWQgMC4wMDAwIDEzOC41MTAwIFcgMSAxCi0gIFBpbkJveDogMC4wMDAwIDEzOC40NTAwIDAuMDYwMCAxMzguNTcwMCAtbHlyIDEKLVBHUGluOiBWREQgVkREIGlub3V0IHB3ciBmaXhlZCAxNDEuODAwMCAxMzUuMDkwMCBFIDEgMQotICBQaW5Cb3g6IDE0MS43NDAwIDEzNS4wMzAwIDE0MS44MDAwIDEzNS4xNTAwIC1seXIgMQotUEdQaW46IFZERCBWREQgaW5vdXQgcHdyIGZpeGVkIDAuMDAwMCAxMzUuMDkwMCBXIDEgMQotICBQaW5Cb3g6IDAuMDAwMCAxMzUuMDMwMCAwLjA2MDAgMTM1LjE1MDAgLWx5ciAxCi1QR1BpbjogVkREIFZERCBpbm91dCBwd3IgZml4ZWQgMTQxLjgwMDAgMTI4LjI1MDAgRSAxIDEKLSAgUGluQm94OiAxNDEuNzQwMCAxMjguMTkwMCAxNDEuODAwMCAxMjguMzEwMCAtbHlyIDEKLVBHUGluOiBWREQgVkREIGlub3V0IHB3ciBmaXhlZCAwLjAwMDAgMTI4LjI1MDAgVyAxIDEKLSAgUGluQm94OiAwLjAwMDAgMTI4LjE5MDAgMC4wNjAwIDEyOC4zMTAwIC1seXIgMQotUEdQaW46IFZERCBWREQgaW5vdXQgcHdyIGZpeGVkIDE0MS44MDAwIDU5Ljg1MDAgRSAxIDEKLSAgUGluQm94OiAxNDEuNzQwMCA1OS43OTAwIDE0MS44MDAwIDU5LjkxMDAgLWx5ciAxCi1QR1BpbjogVkREIFZERCBpbm91dCBwd3IgZml4ZWQgMC4wMDAwIDU5Ljg1MDAgVyAxIDEKLSAgUGluQm94OiAwLjAwMDAgNTkuNzkwMCAwLjA2MDAgNTkuOTEwMCAtbHlyIDEKLVBHUGluOiBWREQgVkREIGlub3V0IHB3ciBmaXhlZCAxNDEuODAwMCA2My4yNzAwIEUgMSAxCi0gIFBpbkJveDogMTQxLjc0MDAgNjMuMjEwMCAxNDEuODAwMCA2My4zMzAwIC1seXIgMQotUEdQaW46IFZERCBWREQgaW5vdXQgcHdyIGZpeGVkIDAuMDAwMCA2My4yNzAwIFcgMSAxCi0gIFBpbkJveDogMC4wMDAwIDYzLjIxMDAgMC4wNjAwIDYzLjMzMDAgLWx5ciAxCi1QR1BpbjogVkREIFZERCBpbm91dCBwd3IgZml4ZWQgMTQxLjgwMDAgNzMuNTMwMCBFIDEgMQotICBQaW5Cb3g6IDE0MS43NDAwIDczLjQ3MDAgMTQxLjgwMDAgNzMuNTkwMCAtbHlyIDEKLVBHUGluOiBWREQgVkREIGlub3V0IHB3ciBmaXhlZCAwLjAwMDAgNzMuNTMwMCBXIDEgMQotICBQaW5Cb3g6IDAuMDAwMCA3My40NzAwIDAuMDYwMCA3My41OTAwIC1seXIgMQotUEdQaW46IFZERCBWREQgaW5vdXQgcHdyIGZpeGVkIDE0MS44MDAwIDcwLjExMDAgRSAxIDEKLSAgUGluQm94OiAxNDEuNzQwMCA3MC4wNTAwIDE0MS44MDAwIDcwLjE3MDAgLWx5ciAxCi1QR1BpbjogVkREIFZERCBpbm91dCBwd3IgZml4ZWQgMC4wMDAwIDcwLjExMDAgVyAxIDEKLSAgUGluQm94OiAwLjAwMDAgNzAuMDUwMCAwLjA2MDAgNzAuMTcwMCAtbHlyIDEKLVBHUGluOiBWREQgVkREIGlub3V0IHB3ciBmaXhlZCAxNDEuODAwMCA2Ni42OTAwIEUgMSAxCi0gIFBpbkJveDogMTQxLjc0MDAgNjYuNjMwMCAxNDEuODAwMCA2Ni43NTAwIC1seXIgMQotUEdQaW46IFZERCBWREQgaW5vdXQgcHdyIGZpeGVkIDAuMDAwMCA2Ni42OTAwIFcgMSAxCi0gIFBpbkJveDogMC4wMDAwIDY2LjYzMDAgMC4wNjAwIDY2Ljc1MDAgLWx5ciAxCi1QR1BpbjogVkREIFZERCBpbm91dCBwd3IgZml4ZWQgMTQxLjgwMDAgNzYuOTUwMCBFIDEgMQotICBQaW5Cb3g6IDE0MS43NDAwIDc2Ljg5MDAgMTQxLjgwMDAgNzcuMDEwMCAtbHlyIDEKLVBHUGluOiBWREQgVkREIGlub3V0IHB3ciBmaXhlZCAwLjAwMDAgNzYuOTUwMCBXIDEgMQotICBQaW5Cb3g6IDAuMDAwMCA3Ni44OTAwIDAuMDYwMCA3Ny4wMTAwIC1seXIgMQotUEdQaW46IFZERCBWREQgaW5vdXQgcHdyIGZpeGVkIDE0MS44MDAwIDgwLjM3MDAgRSAxIDEKLSAgUGluQm94OiAxNDEuNzQwMCA4MC4zMTAwIDE0MS44MDAwIDgwLjQzMDAgLWx5ciAxCi1QR1BpbjogVkREIFZERCBpbm91dCBwd3IgZml4ZWQgMC4wMDAwIDgwLjM3MDAgVyAxIDEKLSAgUGluQm94OiAwLjAwMDAgODAuMzEwMCAwLjA2MDAgODAuNDMwMCAtbHlyIDEKLVBHUGluOiBWREQgVkREIGlub3V0IHB3ciBmaXhlZCAxNDEuODAwMCA5MC42MzAwIEUgMSAxCi0gIFBpbkJveDogMTQxLjc0MDAgOTAuNTcwMCAxNDEuODAwMCA5MC42OTAwIC1seXIgMQotUEdQaW46IFZERCBWREQgaW5vdXQgcHdyIGZpeGVkIDAuMDAwMCA5MC42MzAwIFcgMSAxCi0gIFBpbkJveDogMC4wMDAwIDkwLjU3MDAgMC4wNjAwIDkwLjY5MDAgLWx5ciAxCi1QR1BpbjogVkREIFZERCBpbm91dCBwd3IgZml4ZWQgMTQxLjgwMDAgODcuMjEwMCBFIDEgMQotICBQaW5Cb3g6IDE0MS43NDAwIDg3LjE1MDAgMTQxLjgwMDAgODcuMjcwMCAtbHlyIDEKLVBHUGluOiBWREQgVkREIGlub3V0IHB3ciBmaXhlZCAwLjAwMDAgODcuMjEwMCBXIDEgMQotICBQaW5Cb3g6IDAuMDAwMCA4Ny4xNTAwIDAuMDYwMCA4Ny4yNzAwIC1seXIgMQotUEdQaW46IFZERCBWREQgaW5vdXQgcHdyIGZpeGVkIDE0MS44MDAwIDgzLjc5MDAgRSAxIDEKLSAgUGluQm94OiAxNDEuNzQwMCA4My43MzAwIDE0MS44MDAwIDgzLjg1MDAgLWx5ciAxCi1QR1BpbjogVkREIFZERCBpbm91dCBwd3IgZml4ZWQgMC4wMDAwIDgzLjc5MDAgVyAxIDEKLSAgUGluQm94OiAwLjAwMDAgODMuNzMwMCAwLjA2MDAgODMuODUwMCAtbHlyIDEKLVBHUGluOiBWREQgVkREIGlub3V0IHB3ciBmaXhlZCAxNDEuODAwMCA5Ny40NzAwIEUgMSAxCi0gIFBpbkJveDogMTQxLjc0MDAgOTcuNDEwMCAxNDEuODAwMCA5Ny41MzAwIC1seXIgMQotUEdQaW46IFZERCBWREQgaW5vdXQgcHdyIGZpeGVkIDAuMDAwMCA5Ny40NzAwIFcgMSAxCi0gIFBpbkJveDogMC4wMDAwIDk3LjQxMDAgMC4wNjAwIDk3LjUzMDAgLWx5ciAxCi1QR1BpbjogVkREIFZERCBpbm91dCBwd3IgZml4ZWQgMTQxLjgwMDAgMTAwLjg5MDAgRSAxIDEKLSAgUGluQm94OiAxNDEuNzQwMCAxMDAuODMwMCAxNDEuODAwMCAxMDAuOTUwMCAtbHlyIDEKLVBHUGluOiBWREQgVkREIGlub3V0IHB3ciBmaXhlZCAwLjAwMDAgMTAwLjg5MDAgVyAxIDEKLSAgUGluQm94OiAwLjAwMDAgMTAwLjgzMDAgMC4wNjAwIDEwMC45NTAwIC1seXIgMQotUEdQaW46IFZERCBWREQgaW5vdXQgcHdyIGZpeGVkIDE0MS44MDAwIDk0LjA1MDAgRSAxIDEKLSAgUGluQm94OiAxNDEuNzQwMCA5My45OTAwIDE0MS44MDAwIDk0LjExMDAgLWx5ciAxCi1QR1BpbjogVkREIFZERCBpbm91dCBwd3IgZml4ZWQgMC4wMDAwIDk0LjA1MDAgVyAxIDEKLSAgUGluQm94OiAwLjAwMDAgOTMuOTkwMCAwLjA2MDAgOTQuMTEwMCAtbHlyIDEKLVBHUGluOiBWREQgVkREIGlub3V0IHB3ciBmaXhlZCAxNDEuODAwMCAyNS42NTAwIEUgMSAxCi0gIFBpbkJveDogMTQxLjc0MDAgMjUuNTkwMCAxNDEuODAwMCAyNS43MTAwIC1seXIgMQotUEdQaW46IFZERCBWREQgaW5vdXQgcHdyIGZpeGVkIDAuMDAwMCAyNS42NTAwIFcgMSAxCi0gIFBpbkJveDogMC4wMDAwIDI1LjU5MDAgMC4wNjAwIDI1LjcxMDAgLWx5ciAxCi1QR1BpbjogVkREIFZERCBpbm91dCBwd3IgZml4ZWQgMTQxLjgwMDAgMTUuMzkwMCBFIDEgMQotICBQaW5Cb3g6IDE0MS43NDAwIDE1LjMzMDAgMTQxLjgwMDAgMTUuNDUwMCAtbHlyIDEKLVBHUGluOiBWREQgVkREIGlub3V0IHB3ciBmaXhlZCAwLjAwMDAgMTUuMzkwMCBXIDEgMQotICBQaW5Cb3g6IDAuMDAwMCAxNS4zMzAwIDAuMDYwMCAxNS40NTAwIC1seXIgMQotUEdQaW46IFZERCBWREQgaW5vdXQgcHdyIGZpeGVkIDE0MS44MDAwIDE4LjgxMDAgRSAxIDEKLSAgUGluQm94OiAxNDEuNzQwMCAxOC43NTAwIDE0MS44MDAwIDE4Ljg3MDAgLWx5ciAxCi1QR1BpbjogVkREIFZERCBpbm91dCBwd3IgZml4ZWQgMC4wMDAwIDE4LjgxMDAgVyAxIDEKLSAgUGluQm94OiAwLjAwMDAgMTguNzUwMCAwLjA2MDAgMTguODcwMCAtbHlyIDEKLVBHUGluOiBWREQgVkREIGlub3V0IHB3ciBmaXhlZCAxNDEuODAwMCAyMi4yMzAwIEUgMSAxCi0gIFBpbkJveDogMTQxLjc0MDAgMjIuMTcwMCAxNDEuODAwMCAyMi4yOTAwIC1seXIgMQotUEdQaW46IFZERCBWREQgaW5vdXQgcHdyIGZpeGVkIDAuMDAwMCAyMi4yMzAwIFcgMSAxCi0gIFBpbkJveDogMC4wMDAwIDIyLjE3MDAgMC4wNjAwIDIyLjI5MDAgLWx5ciAxCi1QR1BpbjogVkREIFZERCBpbm91dCBwd3IgZml4ZWQgMTQxLjgwMDAgMjkuMDcwMCBFIDEgMQotICBQaW5Cb3g6IDE0MS43NDAwIDI5LjAxMDAgMTQxLjgwMDAgMjkuMTMwMCAtbHlyIDEKLVBHUGluOiBWREQgVkREIGlub3V0IHB3ciBmaXhlZCAwLjAwMDAgMjkuMDcwMCBXIDEgMQotICBQaW5Cb3g6IDAuMDAwMCAyOS4wMTAwIDAuMDYwMCAyOS4xMzAwIC1seXIgMQotUEdQaW46IFZERCBWREQgaW5vdXQgcHdyIGZpeGVkIDE0MS44MDAwIDMyLjQ5MDAgRSAxIDEKLSAgUGluQm94OiAxNDEuNzQwMCAzMi40MzAwIDE0MS44MDAwIDMyLjU1MDAgLWx5ciAxCi1QR1BpbjogVkREIFZERCBpbm91dCBwd3IgZml4ZWQgMC4wMDAwIDMyLjQ5MDAgVyAxIDEKLSAgUGluQm94OiAwLjAwMDAgMzIuNDMwMCAwLjA2MDAgMzIuNTUwMCAtbHlyIDEKLVBHUGluOiBWREQgVkREIGlub3V0IHB3ciBmaXhlZCAxNDEuODAwMCAzNS45MTAwIEUgMSAxCi0gIFBpbkJveDogMTQxLjc0MDAgMzUuODUwMCAxNDEuODAwMCAzNS45NzAwIC1seXIgMQotUEdQaW46IFZERCBWREQgaW5vdXQgcHdyIGZpeGVkIDAuMDAwMCAzNS45MTAwIFcgMSAxCi0gIFBpbkJveDogMC4wMDAwIDM1Ljg1MDAgMC4wNjAwIDM1Ljk3MDAgLWx5ciAxCi1QR1BpbjogVkREIFZERCBpbm91dCBwd3IgZml4ZWQgMTQxLjgwMDAgNDkuNTkwMCBFIDEgMQotICBQaW5Cb3g6IDE0MS43NDAwIDQ5LjUzMDAgMTQxLjgwMDAgNDkuNjUwMCAtbHlyIDEKLVBHUGluOiBWREQgVkREIGlub3V0IHB3ciBmaXhlZCAwLjAwMDAgNDkuNTkwMCBXIDEgMQotICBQaW5Cb3g6IDAuMDAwMCA0OS41MzAwIDAuMDYwMCA0OS42NTAwIC1seXIgMQotUEdQaW46IFZERCBWREQgaW5vdXQgcHdyIGZpeGVkIDE0MS44MDAwIDUzLjAxMDAgRSAxIDEKLSAgUGluQm94OiAxNDEuNzQwMCA1Mi45NTAwIDE0MS44MDAwIDUzLjA3MDAgLWx5ciAxCi1QR1BpbjogVkREIFZERCBpbm91dCBwd3IgZml4ZWQgMC4wMDAwIDUzLjAxMDAgVyAxIDEKLSAgUGluQm94OiAwLjAwMDAgNTIuOTUwMCAwLjA2MDAgNTMuMDcwMCAtbHlyIDEKLVBHUGluOiBWREQgVkREIGlub3V0IHB3ciBmaXhlZCAxNDEuODAwMCA0Ni4xNzAwIEUgMSAxCi0gIFBpbkJveDogMTQxLjc0MDAgNDYuMTEwMCAxNDEuODAwMCA0Ni4yMzAwIC1seXIgMQotUEdQaW46IFZERCBWREQgaW5vdXQgcHdyIGZpeGVkIDAuMDAwMCA0Ni4xNzAwIFcgMSAxCi0gIFBpbkJveDogMC4wMDAwIDQ2LjExMDAgMC4wNjAwIDQ2LjIzMDAgLWx5ciAxCi1QR1BpbjogVkREIFZERCBpbm91dCBwd3IgZml4ZWQgMTQxLjgwMDAgMzkuMzMwMCBFIDEgMQotICBQaW5Cb3g6IDE0MS43NDAwIDM5LjI3MDAgMTQxLjgwMDAgMzkuMzkwMCAtbHlyIDEKLVBHUGluOiBWREQgVkREIGlub3V0IHB3ciBmaXhlZCAwLjAwMDAgMzkuMzMwMCBXIDEgMQotICBQaW5Cb3g6IDAuMDAwMCAzOS4yNzAwIDAuMDYwMCAzOS4zOTAwIC1seXIgMQotUEdQaW46IFZERCBWREQgaW5vdXQgcHdyIGZpeGVkIDE0MS44MDAwIDQyLjc1MDAgRSAxIDEKLSAgUGluQm94OiAxNDEuNzQwMCA0Mi42OTAwIDE0MS44MDAwIDQyLjgxMDAgLWx5ciAxCi1QR1BpbjogVkREIFZERCBpbm91dCBwd3IgZml4ZWQgMC4wMDAwIDQyLjc1MDAgVyAxIDEKLSAgUGluQm94OiAwLjAwMDAgNDIuNjkwMCAwLjA2MDAgNDIuODEwMCAtbHlyIDEKLVBHUGluOiBWREQgVkREIGlub3V0IHB3ciBmaXhlZCAxNDEuODAwMCA1Ni40MzAwIEUgMSAxCi0gIFBpbkJveDogMTQxLjc0MDAgNTYuMzcwMCAxNDEuODAwMCA1Ni40OTAwIC1seXIgMQotUEdQaW46IFZERCBWREQgaW5vdXQgcHdyIGZpeGVkIDAuMDAwMCA1Ni40MzAwIFcgMSAxCi0gIFBpbkJveDogMC4wMDAwIDU2LjM3MDAgMC4wNjAwIDU2LjQ5MDAgLWx5ciAxCi1QR1BpbjogVkREIFZERCBpbm91dCBwd3IgZml4ZWQgMTQxLjgwMDAgOC41NTAwIEUgMSAxCi0gIFBpbkJveDogMTQxLjc0MDAgOC40OTAwIDE0MS44MDAwIDguNjEwMCAtbHlyIDEKLVBHUGluOiBWREQgVkREIGlub3V0IHB3ciBmaXhlZCAwLjAwMDAgOC41NTAwIFcgMSAxCi0gIFBpbkJveDogMC4wMDAwIDguNDkwMCAwLjA2MDAgOC42MTAwIC1seXIgMQotUEdQaW46IFZERCBWREQgaW5vdXQgcHdyIGZpeGVkIDE0MS44MDAwIDExLjk3MDAgRSAxIDEKLSAgUGluQm94OiAxNDEuNzQwMCAxMS45MTAwIDE0MS44MDAwIDEyLjAzMDAgLWx5ciAxCi1QR1BpbjogVkREIFZERCBpbm91dCBwd3IgZml4ZWQgMC4wMDAwIDExLjk3MDAgVyAxIDEKLSAgUGluQm94OiAwLjAwMDAgMTEuOTEwMCAwLjA2MDAgMTIuMDMwMCAtbHlyIDEKLVBHUGluOiBWREQgVkREIGlub3V0IHB3ciBmaXhlZCAxNDEuODAwMCA1LjEzMDAgRSAxIDEKLSAgUGluQm94OiAxNDEuNzQwMCA1LjA3MDAgMTQxLjgwMDAgNS4xOTAwIC1seXIgMQotUEdQaW46IFZERCBWREQgaW5vdXQgcHdyIGZpeGVkIDAuMDAwMCA1LjEzMDAgVyAxIDEKLSAgUGluQm94OiAwLjAwMDAgNS4wNzAwIDAuMDYwMCA1LjE5MDAgLWx5ciAxCi1QR1BpbjogVkREIFZERCBpbm91dCBwd3IgZml4ZWQgMTQxLjgwMDAgMS43MTAwIEUgMSAxCi0gIFBpbkJveDogMTQxLjc0MDAgMS42NTAwIDE0MS44MDAwIDEuNzcwMCAtbHlyIDEKLVBHUGluOiBWREQgVkREIGlub3V0IHB3ciBmaXhlZCAwLjAwMDAgMS43MTAwIFcgMSAxCi0gIFBpbkJveDogMC4wMDAwIDEuNjUwMCAwLjA2MDAgMS43NzAwIC1seXIgMQotCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotIyAgUGFydGl0aW9uUGluRmlsZTogPGZpbGVfbmFtZT4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMKLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi1QYXJ0aXRpb25QaW5GaWxlOiBoaWVyLmZwLnB0bgotCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSMgIDxQcm9wZXJ0eT4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIwotIyAgICAgPG9ial90eXBlIG5hbWU9Imluc3RfbmFtZSIgPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjCi0jICAgICAgIDxwcm9wIG5hbWU9Im5hbWUiIHR5cGU9dHlwZV9uYW1lIHZhbHVlPXZhbCAvPiAgICAgICAgICAgICAgICMKLSMgICAgICAgPEF0dHIgbmFtZT0ibmFtZSIgdHlwZT10eXBlX25hbWUgdmFsdWU9dmFsIC8+ICAgICAgICAgICAgICAgIwotIyAgICAgPC9vYmpfdHlwZT4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjCi0jICA8L1Byb3BlcnR5PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMKLSMgIHdoZXJlOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIwotIyAgICAgICB0eXBlIGlzIGRhdGEgdHlwZTogQm94LCBTdHJpbmcsIEludCwgUFRSLCBMb2MsIGRvdWJsZSwgQml0cyAjCi0jICAgICAgIG9ial90eXBlIGFyZTogaW5zdCwgRGVzaWduLCBpbnN0VGVybSwgQnVtcCwgY2VsbCwgbmV0ICAgICAgICMKLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotPFByb3BlcnRpZXM+Ci0gIDxEZXNpZ24gbmFtZT0idGRzcF9jb3JlIj4KLSAgPC9EZXNpZ24+Ci08L1Byb3BlcnRpZXM+Ci0KLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjJCMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0jICBHbG9iYWxOZXRDb25uZWN0aW9uOiA8bmV0X25hbWU+IHstcGlufC1pbnN0fC1uZXR9IDxiYXNlX25hbWVfcGF0dGVybj4gLXR5cGUge3BncGlufG5ldHx0aWVoaXx0aWVsb30gey1hbGx8LW1vZHVsZSA8bmFtZT58LXJlZ2lvbiA8Ym94Pn0gWy1vdmVycmlkZV0gIwotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLUdsb2JhbE5ldENvbm5lY3Rpb246IDEnYjAgLW5ldCBTUlBHX1BHX2luXzEgLXR5cGUgbmV0IC1hbGwKLUdsb2JhbE5ldENvbm5lY3Rpb246IDEnYjAgLW5ldCBTUlBHX1BHX2luIC10eXBlIG5ldCAtYWxsCi1HbG9iYWxOZXRDb25uZWN0aW9uOiAxJ2IwIC1uZXQgaW50IC10eXBlIG5ldCAtYWxsCi1HbG9iYWxOZXRDb25uZWN0aW9uOiBWREQgLXBpbiBWREQgLWluc3QgKiAtdHlwZSBwZ3BpbiAtYWxsCi1HbG9iYWxOZXRDb25uZWN0aW9uOiBWU1MgLXBpbiBWU1MgLWluc3QgKiAtdHlwZSBwZ3BpbiAtYWxsCi0KLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0jICBOZXRQcm9wZXJ0aWVzOiA8bmV0X25hbWU+IFstc3BlY2lhbF0gWy1kZWZfcHJvcCB7aW50fGRibHxzdHJ9IDx2YWx1ZT5dLi4uICAgIwotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLQotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotIyAgICBGZWVkdGhydSBpbmZvOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIwotIyA8RmVlZHRocnVzPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIwotIyAgIDxGZWVkdGhydT4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIwotIyAgICAgICA8dHN2IGxseD1uIGxseT1uIHVyeD1uIHVyeT1uIC8+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIwotIyAgICAgICA8c3RhY2t2aWEgbGF5ZXI9eiBsbHg9biBsbHk9biB1cng9biB1cnk9biAvPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIwotIyAgICAgICA8YnVtcCBmcm9udD1uYW1lIGJhY2s9bmFtZSAgLz4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIwotIyAgIDwvRmVlZHRocnU+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIwotIyAgIDxGZWVkdGhydT4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIwotIyAgIDwuLi4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIwotIyAgIDwvRmVlZHRocnU+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIwotIyA8L0ZlZWR0aHJ1cz4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIwotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKZGlmZiAtLWdpdCBhL2Zsb3cvcG5yL0VYQU1QTEVTL0lOTk9WVVMvREVTSUdOL0RBVEEvaGllci5mcC5wdG4gYi9mbG93L3Buci9FWEFNUExFUy9JTk5PVlVTL0RFU0lHTi9EQVRBL2hpZXIuZnAucHRuCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwYjA1NWUzLi4wMDAwMDAwCi0tLSBhL2Zsb3cvcG5yL0VYQU1QTEVTL0lOTk9WVVMvREVTSUdOL0RBVEEvaGllci5mcC5wdG4KKysrIC9kZXYvbnVsbApAQCAtMSwxNiArMCwwIEBACi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSMgIEdlbmVyYXRlZCBieTogICAgICBDYWRlbmNlIEVuY291bnRlciAxMS4xMS1lMDQ3XzEKLSMgIE9TOiAgICAgICAgICAgICAgICBMaW51eCB4ODZfNjQoSG9zdCBJRCBzamZubDY4OCkKLSMgIEdlbmVyYXRlZCBvbjogICAgICBUdWUgTWFyIDIwIDA4OjI0OjI2IDIwMTIKLSMgIERlc2lnbjogICAgICAgICAgICB0ZHNwX2NvcmUKLSMgIENvbW1hbmQ6ICAgICAgICAgICBzYXZlRlBsYW4gaGllci5mcAotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0KLVBhcnRpdGlvblBpbnM6IG11bHRfMzIgCi0KLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotIyAgSU9QaW46IDxwaW5OYW1lPiA8eD4gPHk+IDxzaWRlPiA8bGF5ZXJJZD4gPHdpZHRoPiA8ZGVwdGg+IHtwbGFjZWR8Zml4ZWR8Y292ZXJ9IDxuckJveD4gIwotIyAgICBQaW5Cb3g6IDxsbHg+IDxsbHk+IDx1cng+IDx1cnk+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjCi0jICAgIFBpblBvbHk6IDxuclB0PiA8eDE+IDx5MT4gPHgyPiA8eTI+IC4uLjx4bj4gPHluPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMKLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCmRpZmYgLS1naXQgYS9mbG93L3Buci9FWEFNUExFUy9JTk5PVlVTL0RFU0lHTi9EQVRBL2hpZXIuZnAuc3ByIGIvZmxvdy9wbnIvRVhBTVBMRVMvSU5OT1ZVUy9ERVNJR04vREFUQS9oaWVyLmZwLnNwcgpkZWxldGVkIGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggYzE3Y2NhNy4uMDAwMDAwMAotLS0gYS9mbG93L3Buci9FWEFNUExFUy9JTk5PVlVTL0RFU0lHTi9EQVRBL2hpZXIuZnAuc3ByCisrKyAvZGV2L251bGwKQEAgLTEsMTE1ICswLDAgQEAKLVZlcnNpb24gNC4xCi1NaWNyb24gMjAwMAotTEFZRVJTIDI5Ci1Qb2x5Ci1NZXRhbDEKLU1ldGFsMgotTWV0YWwzCi1NZXRhbDQKLU1ldGFsNQotTWV0YWw2Ci1NZXRhbDcKLU1ldGFsOAotTWV0YWw5Ci1Db250Ci1WaWExCi1WaWEyCi1WaWEzCi1WaWE0Ci1WaWE1Ci1WaWE2Ci1WaWE3Ci1WaWE4Ci1PeGlkZQotTmh2dAotTmltcAotUGh2dAotUGltcAotTnp2dAotTmx2dAotUGx2dAotU2lQcm90Ci1PVkVSTEFQCi1WSUFTIDUKLU01X000XzEgTTVfTTQgTWV0YWw1L1ZpYTQvTWV0YWw0IDAgMSAwIDE0MCAxNDAgMjgwIDI4MCAyMSAxIC0yODcwIC03MCAyODcwIDcwIAotMQotMCAtMzAwMCAtMTIwIDMwMDAgMTIwIAotMQotMCAtMzAwMCAtMTIwIDMwMDAgMTIwIAotTTRfTTNfMSBNNF9NMyBNZXRhbDQvVmlhMy9NZXRhbDMgMCAxIDAgMTQwIDE0MCAyODAgMjgwIDIxIDEgLTI4NzAgLTcwIDI4NzAgNzAgCi0xCi0wIC0zMDAwIC0xMjAgMzAwMCAxMjAgCi0xCi0wIC0zMDAwIC0xMjAgMzAwMCAxMjAgCi1NM19NMl8xIE0zX00yIE1ldGFsMy9WaWEyL01ldGFsMiAwIDEgMCAxNDAgMTQwIDI4MCAyODAgMjEgMSAtMjg3MCAtNzAgMjg3MCA3MCAKLTEKLTAgLTMwMDAgLTEyMCAzMDAwIDEyMCAKLTEKLTAgLTMwMDAgLTEyMCAzMDAwIDEyMCAKLU0yX00xXzEgTTJfTTEgTWV0YWwyL1ZpYTEvTWV0YWwxIDAgMSAwIDE0MCAxNDAgMjgwIDI4MCAyMSAxIC0yODcwIC03MCAyODcwIDcwIAotMQotMCAtMzAwMCAtMTIwIDMwMDAgMTIwIAotMQotMCAtMzAwMCAtMTIwIDMwMDAgMTIwIAotTTZfTTVfMiBNNl9NNSBNZXRhbDYvVmlhNS9NZXRhbDUgMCAxIDAgMTQwIDE0MCAyODAgMjgwIDIxIDEgLTI4NzAgLTcwIDI4NzAgNzAgCi0xCi0wIC0zMDAwIC0xMjAgMzAwMCAxMjAgCi0xCi0wIC0zMDAwIC0xMjAgMzAwMCAxMjAgCi1TUEVDSUFMTkVUUwotMCAwIDEgQXZzcwotMCAwIDEgQXZkZAotMCAwIDEgQVZzcwotNDkgNjkwIDEgVlNTCi0gIDQ5IDAgMAotVzMgNjAwMCAzMDc4MDAgNiAwMTAgMiAwCi1YMyA4NjAwMCA1ODgwMCAwCi1XNDYgMjgzNjAwIDI0MCAxIDEwMCAzIDAKLVk0NiA2ODQwIDAgLTEyMAotVjEzOCAwIDAgMyAwCi1ZNDYgNjg0MCA1ODgwMCAtMTIwCi1ZNDYgKgkxNDQ4MDAgKgotWTQ2IDY4NDAgMjMwODAwIC0xMjAKLVYxMzggMSAwIDMgMAotWTQ2IDY4NDAgNTg4MDAgLTEyMAotWTQ2ICoJMTQ0ODAwICoKLVk0NiA2ODQwIDIzMDgwMCAtMTIwCi1WMTM4IDIgMCAzIDAKLVk0NiA2ODQwIDU4ODAwIC0xMjAKLVk0NiAqCTE0NDgwMCAqCi1ZNDYgNjg0MCAyMzA4MDAgLTEyMAotVjEzOCAzIDAgMyAwCi1ZNDYgNjg0MCA1ODgwMCAtMTIwCi1ZNDYgKgkxNDQ4MDAgKgotWTQ2IDY4NDAgMjMwODAwIC0xMjAKLVYxMzggNCAwIDMgMAotWTQ2IDY4NDAgNTg4MDAgLTEyMAotWTQ2ICoJMTQ0ODAwICoKLVk0NiA2ODQwIDIzMDgwMCAtMTIwCi0wIDAgMSBBVmRkCi00OCA2NzUgMSBWREQKLSAgNDggMCAwCi1XMyA2MDAwIDMwNzgwMCA2IDAxMCAyIDAKLVgzIDg2MDAwIDUwODAwIDAKLVc0NSAyODM2MDAgMjQwIDEgMTAwIDMgMAotWTQ1IDY4NDAgMCAzMzAwCi1WMTM1IDAgMCAzIDAKLVk0NSA2ODQwIDUwODAwIDMzMDAKLVk0NSAqCTEzNjgwMCAqCi1ZNDUgNjg0MCAyMjI4MDAgMzMwMAotVjEzNSAxIDAgMyAwCi1ZNDUgNjg0MCA1MDgwMCAzMzAwCi1ZNDUgKgkxMzY4MDAgKgotWTQ1IDY4NDAgMjIyODAwIDMzMDAKLVYxMzUgMiAwIDMgMAotWTQ1IDY4NDAgNTA4MDAgMzMwMAotWTQ1ICoJMTM2ODAwICoKLVk0NSA2ODQwIDIyMjgwMCAzMzAwCi1WMTM1IDMgMCAzIDAKLVk0NSA2ODQwIDUwODAwIDMzMDAKLVk0NSAqCTEzNjgwMCAqCi1ZNDUgNjg0MCAyMjI4MDAgMzMwMAotVjEzNSA0IDAgMyAwCi1ZNDUgNjg0MCA1MDgwMCAzMzAwCi1ZNDUgKgkxMzY4MDAgKgotWTQ1IDY4NDAgMjIyODAwIDMzMDAKZGlmZiAtLWdpdCBhL2Zsb3cvcG5yL0VYQU1QTEVTL0lOTk9WVVMvREVTSUdOL0RBVEEvcG9zdGN0cy5zZGMgYi9mbG93L3Buci9FWEFNUExFUy9JTk5PVlVTL0RFU0lHTi9EQVRBL3Bvc3RjdHMuc2RjCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDc1NQppbmRleCBkMDI0NzYzLi4wMDAwMDAwCi0tLSBhL2Zsb3cvcG5yL0VYQU1QTEVTL0lOTk9WVVMvREVTSUdOL0RBVEEvcG9zdGN0cy5zZGMKKysrIC9kZXYvbnVsbApAQCAtMSwzICswLDAgQEAKLXNldF9wcm9wYWdhdGVkX2Nsb2NrIFthbGxfY2xvY2tzXQotcmVzZXRfY2xvY2tfdHJlZV9sYXRlbmN5IFthbGxfY2xvY2tzXQotc2V0X2Nsb2NrX3VuY2VydGFpbnR5IC1zZXR1cCAwLjA1IFthbGxfY2xvY2tzXQpkaWZmIC0tZ2l0IGEvZmxvdy9wbnIvRVhBTVBMRVMvSU5OT1ZVUy9ERVNJR04vREFUQS9wcmVjdHMuc2RjIGIvZmxvdy9wbnIvRVhBTVBMRVMvSU5OT1ZVUy9ERVNJR04vREFUQS9wcmVjdHMuc2RjCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDc1NQppbmRleCBkNDY4YjM0Li4wMDAwMDAwCi0tLSBhL2Zsb3cvcG5yL0VYQU1QTEVTL0lOTk9WVVMvREVTSUdOL0RBVEEvcHJlY3RzLnNkYworKysgL2Rldi9udWxsCkBAIC0xLDE5MCArMCwwIEBACi0jLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi0jICogVGltaW5nIGNvbnN0cmFpbnQgZmlsZSBmb3IgcGFydGl0aW9uIHRkc3BfY29yZSAgICAgICAgIAotIyAqIFdpdGggY2xvY2sgbGF0ZW5jeSBhZGp1c3RtZW50cyAgICAgICAgICAgICAgICAKLSMgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi1jcmVhdGVfY2xvY2sgLW5hbWUge21fdGRzcF9jbGt9IC1wZXJpb2QgMy4zMDAgLXdhdmVmb3JtIHsgMC4wMDAgMS42MDAgfSBbbGlzdCBbZ2V0X3BvcnRzIHtjbGt9XV0KLXNldF9tYXhfY2FwYWNpdGFuY2UgMC4wMTIgW2dldF9wb3J0cyB7Y2xrfV0KLXNldF9tYXhfY2FwYWNpdGFuY2UgMC4yNTkgW2dldF9wb3J0cyB7cmVzZXR9XQotc2V0X21heF9jYXBhY2l0YW5jZSAwLjA1MSBbZ2V0X3BvcnRzIHt0X2RhdGFfaW5bMTVdfV0KLXNldF9tYXhfY2FwYWNpdGFuY2UgMC4wNTEgW2dldF9wb3J0cyB7dF9kYXRhX2luWzE0XX1dCi1zZXRfbWF4X2NhcGFjaXRhbmNlIDAuMDUxIFtnZXRfcG9ydHMge3RfZGF0YV9pblsxM119XQotc2V0X21heF9jYXBhY2l0YW5jZSAwLjA1MSBbZ2V0X3BvcnRzIHt0X2RhdGFfaW5bMTJdfV0KLXNldF9tYXhfY2FwYWNpdGFuY2UgMC4wNTEgW2dldF9wb3J0cyB7dF9kYXRhX2luWzExXX1dCi1zZXRfbWF4X2NhcGFjaXRhbmNlIDAuMDUxIFtnZXRfcG9ydHMge3RfZGF0YV9pblsxMF19XQotc2V0X21heF9jYXBhY2l0YW5jZSAwLjA1MSBbZ2V0X3BvcnRzIHt0X2RhdGFfaW5bOV19XQotc2V0X21heF9jYXBhY2l0YW5jZSAwLjA1MSBbZ2V0X3BvcnRzIHt0X2RhdGFfaW5bOF19XQotc2V0X21heF9jYXBhY2l0YW5jZSAwLjA1MSBbZ2V0X3BvcnRzIHt0X2RhdGFfaW5bN119XQotc2V0X21heF9jYXBhY2l0YW5jZSAwLjA1MSBbZ2V0X3BvcnRzIHt0X2RhdGFfaW5bNl19XQotc2V0X21heF9jYXBhY2l0YW5jZSAwLjA1MSBbZ2V0X3BvcnRzIHt0X2RhdGFfaW5bNV19XQotc2V0X21heF9jYXBhY2l0YW5jZSAwLjA1MSBbZ2V0X3BvcnRzIHt0X2RhdGFfaW5bNF19XQotc2V0X21heF9jYXBhY2l0YW5jZSAwLjA1MSBbZ2V0X3BvcnRzIHt0X2RhdGFfaW5bM119XQotc2V0X21heF9jYXBhY2l0YW5jZSAwLjA1MSBbZ2V0X3BvcnRzIHt0X2RhdGFfaW5bMl19XQotc2V0X21heF9jYXBhY2l0YW5jZSAwLjA1MSBbZ2V0X3BvcnRzIHt0X2RhdGFfaW5bMV19XQotc2V0X21heF9jYXBhY2l0YW5jZSAwLjA1MSBbZ2V0X3BvcnRzIHt0X2RhdGFfaW5bMF19XQotc2V0X21heF9jYXBhY2l0YW5jZSAwLjA2MyBbZ2V0X3BvcnRzIHtyb21fZGF0YV9pblsxNV19XQotc2V0X21heF9jYXBhY2l0YW5jZSAwLjA2MyBbZ2V0X3BvcnRzIHtyb21fZGF0YV9pblsxNF19XQotc2V0X21heF9jYXBhY2l0YW5jZSAwLjA2MyBbZ2V0X3BvcnRzIHtyb21fZGF0YV9pblsxM119XQotc2V0X21heF9jYXBhY2l0YW5jZSAwLjA2MyBbZ2V0X3BvcnRzIHtyb21fZGF0YV9pblsxMl19XQotc2V0X21heF9jYXBhY2l0YW5jZSAwLjA2MyBbZ2V0X3BvcnRzIHtyb21fZGF0YV9pblsxMV19XQotc2V0X21heF9jYXBhY2l0YW5jZSAwLjA2MyBbZ2V0X3BvcnRzIHtyb21fZGF0YV9pblsxMF19XQotc2V0X21heF9jYXBhY2l0YW5jZSAwLjA2MyBbZ2V0X3BvcnRzIHtyb21fZGF0YV9pbls5XX1dCi1zZXRfbWF4X2NhcGFjaXRhbmNlIDAuMDYzIFtnZXRfcG9ydHMge3JvbV9kYXRhX2luWzhdfV0KLXNldF9tYXhfY2FwYWNpdGFuY2UgMC4wNjMgW2dldF9wb3J0cyB7cm9tX2RhdGFfaW5bN119XQotc2V0X21heF9jYXBhY2l0YW5jZSAwLjA2MyBbZ2V0X3BvcnRzIHtyb21fZGF0YV9pbls2XX1dCi1zZXRfbWF4X2NhcGFjaXRhbmNlIDAuMDYzIFtnZXRfcG9ydHMge3JvbV9kYXRhX2luWzVdfV0KLXNldF9tYXhfY2FwYWNpdGFuY2UgMC4wNjMgW2dldF9wb3J0cyB7cm9tX2RhdGFfaW5bNF19XQotc2V0X21heF9jYXBhY2l0YW5jZSAwLjA2MyBbZ2V0X3BvcnRzIHtyb21fZGF0YV9pblszXX1dCi1zZXRfbWF4X2NhcGFjaXRhbmNlIDAuMDYzIFtnZXRfcG9ydHMge3JvbV9kYXRhX2luWzJdfV0KLXNldF9tYXhfY2FwYWNpdGFuY2UgMC4wNjMgW2dldF9wb3J0cyB7cm9tX2RhdGFfaW5bMV19XQotc2V0X21heF9jYXBhY2l0YW5jZSAwLjA2MyBbZ2V0X3BvcnRzIHtyb21fZGF0YV9pblswXX1dCi1zZXRfbWF4X2NhcGFjaXRhbmNlIDAuMDI1IFtnZXRfcG9ydHMge2J1c19ncmFudH1dCi1zZXRfbWF4X2NhcGFjaXRhbmNlIDAuMjU5IFtnZXRfcG9ydHMge3BvcnRfcGFkX2RhdGFfaW5bMTVdfV0KLXNldF9tYXhfY2FwYWNpdGFuY2UgMC4yNTkgW2dldF9wb3J0cyB7cG9ydF9wYWRfZGF0YV9pblsxNF19XQotc2V0X21heF9jYXBhY2l0YW5jZSAwLjI1OSBbZ2V0X3BvcnRzIHtwb3J0X3BhZF9kYXRhX2luWzEzXX1dCi1zZXRfbWF4X2NhcGFjaXRhbmNlIDAuMjU5IFtnZXRfcG9ydHMge3BvcnRfcGFkX2RhdGFfaW5bMTJdfV0KLXNldF9tYXhfY2FwYWNpdGFuY2UgMC4yNTkgW2dldF9wb3J0cyB7cG9ydF9wYWRfZGF0YV9pblsxMV19XQotc2V0X21heF9jYXBhY2l0YW5jZSAwLjI1OSBbZ2V0X3BvcnRzIHtwb3J0X3BhZF9kYXRhX2luWzEwXX1dCi1zZXRfbWF4X2NhcGFjaXRhbmNlIDAuMjU5IFtnZXRfcG9ydHMge3BvcnRfcGFkX2RhdGFfaW5bOV19XQotc2V0X21heF9jYXBhY2l0YW5jZSAwLjI1OSBbZ2V0X3BvcnRzIHtwb3J0X3BhZF9kYXRhX2luWzhdfV0KLXNldF9tYXhfY2FwYWNpdGFuY2UgMC4yNTkgW2dldF9wb3J0cyB7cG9ydF9wYWRfZGF0YV9pbls3XX1dCi1zZXRfbWF4X2NhcGFjaXRhbmNlIDAuMjU5IFtnZXRfcG9ydHMge3BvcnRfcGFkX2RhdGFfaW5bNl19XQotc2V0X21heF9jYXBhY2l0YW5jZSAwLjI1OSBbZ2V0X3BvcnRzIHtwb3J0X3BhZF9kYXRhX2luWzVdfV0KLXNldF9tYXhfY2FwYWNpdGFuY2UgMC4yNTkgW2dldF9wb3J0cyB7cG9ydF9wYWRfZGF0YV9pbls0XX1dCi1zZXRfbWF4X2NhcGFjaXRhbmNlIDAuMjU5IFtnZXRfcG9ydHMge3BvcnRfcGFkX2RhdGFfaW5bM119XQotc2V0X21heF9jYXBhY2l0YW5jZSAwLjI1OSBbZ2V0X3BvcnRzIHtwb3J0X3BhZF9kYXRhX2luWzJdfV0KLXNldF9tYXhfY2FwYWNpdGFuY2UgMC4yNTkgW2dldF9wb3J0cyB7cG9ydF9wYWRfZGF0YV9pblsxXX1dCi1zZXRfbWF4X2NhcGFjaXRhbmNlIDAuMjU5IFtnZXRfcG9ydHMge3BvcnRfcGFkX2RhdGFfaW5bMF19XQotc2V0X21heF9jYXBhY2l0YW5jZSAwLjA1MyBbZ2V0X3BvcnRzIHt0X3NkaVsyXX1dCi1zZXRfbWF4X2NhcGFjaXRhbmNlIDAuMDUzIFtnZXRfcG9ydHMge3Rfc2RpWzFdfV0KLXNldF9tYXhfY2FwYWNpdGFuY2UgMC4wNTMgW2dldF9wb3J0cyB7dF9zZGlbMF19XQotc2V0X21heF9jYXBhY2l0YW5jZSAwLjA1MyBbZ2V0X3BvcnRzIHtiaW99XQotc2V0X21heF9jYXBhY2l0YW5jZSAwLjI1OSBbZ2V0X3BvcnRzIHtSQ19DR19URVNUX1BPUlR9XQotc2V0X21heF9jYXBhY2l0YW5jZSAwLjI1OSBbZ2V0X3BvcnRzIHtERlRfc2VufV0KLXNldF9tYXhfdHJhbnNpdGlvbiAxLjAwMCBbY3VycmVudF9kZXNpZ25dCi1zZXRfbWF4X3RyYW5zaXRpb24gMC43NjYgW2dldF9wb3J0cyB7YXN9XQotc2V0X21heF90cmFuc2l0aW9uIDAuNzY3IFtnZXRfcG9ydHMge3JlYWR9XQotc2V0X21heF90cmFuc2l0aW9uIDAuNzk0IFtnZXRfcG9ydHMge3dyaXRlfV0KLXNldF9tYXhfdHJhbnNpdGlvbiAwLjUwMiBbZ2V0X3BvcnRzIHthZGRyZXNzWzddfV0KLXNldF9tYXhfdHJhbnNpdGlvbiAwLjUwMyBbZ2V0X3BvcnRzIHthZGRyZXNzWzZdfV0KLXNldF9tYXhfdHJhbnNpdGlvbiAwLjUwMyBbZ2V0X3BvcnRzIHthZGRyZXNzWzVdfV0KLXNldF9tYXhfdHJhbnNpdGlvbiAwLjUwMyBbZ2V0X3BvcnRzIHthZGRyZXNzWzRdfV0KLXNldF9tYXhfdHJhbnNpdGlvbiAwLjUwMSBbZ2V0X3BvcnRzIHthZGRyZXNzWzNdfV0KLXNldF9tYXhfdHJhbnNpdGlvbiAwLjUwMyBbZ2V0X3BvcnRzIHthZGRyZXNzWzJdfV0KLXNldF9tYXhfdHJhbnNpdGlvbiAwLjUwMiBbZ2V0X3BvcnRzIHthZGRyZXNzWzFdfV0KLXNldF9tYXhfdHJhbnNpdGlvbiAwLjUxNCBbZ2V0X3BvcnRzIHthZGRyZXNzWzBdfV0KLXNldF9tYXhfdHJhbnNpdGlvbiAwLjUxNCBbZ2V0X3BvcnRzIHt0X2RhdGFfb3V0WzE1XX1dCi1zZXRfbWF4X3RyYW5zaXRpb24gMC41MTUgW2dldF9wb3J0cyB7dF9kYXRhX291dFsxNF19XQotc2V0X21heF90cmFuc2l0aW9uIDAuNTA3IFtnZXRfcG9ydHMge3RfZGF0YV9vdXRbMTNdfV0KLXNldF9tYXhfdHJhbnNpdGlvbiAwLjUxMiBbZ2V0X3BvcnRzIHt0X2RhdGFfb3V0WzEyXX1dCi1zZXRfbWF4X3RyYW5zaXRpb24gMC41MjAgW2dldF9wb3J0cyB7dF9kYXRhX291dFsxMV19XQotc2V0X21heF90cmFuc2l0aW9uIDAuNTIwIFtnZXRfcG9ydHMge3RfZGF0YV9vdXRbMTBdfV0KLXNldF9tYXhfdHJhbnNpdGlvbiAwLjUxNyBbZ2V0X3BvcnRzIHt0X2RhdGFfb3V0WzldfV0KLXNldF9tYXhfdHJhbnNpdGlvbiAwLjUxMiBbZ2V0X3BvcnRzIHt0X2RhdGFfb3V0WzhdfV0KLXNldF9tYXhfdHJhbnNpdGlvbiAwLjUxMyBbZ2V0X3BvcnRzIHt0X2RhdGFfb3V0WzddfV0KLXNldF9tYXhfdHJhbnNpdGlvbiAwLjUxMiBbZ2V0X3BvcnRzIHt0X2RhdGFfb3V0WzZdfV0KLXNldF9tYXhfdHJhbnNpdGlvbiAwLjUxNiBbZ2V0X3BvcnRzIHt0X2RhdGFfb3V0WzVdfV0KLXNldF9tYXhfdHJhbnNpdGlvbiAwLjUyMCBbZ2V0X3BvcnRzIHt0X2RhdGFfb3V0WzRdfV0KLXNldF9tYXhfdHJhbnNpdGlvbiAwLjUxMSBbZ2V0X3BvcnRzIHt0X2RhdGFfb3V0WzNdfV0KLXNldF9tYXhfdHJhbnNpdGlvbiAwLjUxOCBbZ2V0X3BvcnRzIHt0X2RhdGFfb3V0WzJdfV0KLXNldF9tYXhfdHJhbnNpdGlvbiAwLjUxOCBbZ2V0X3BvcnRzIHt0X2RhdGFfb3V0WzFdfV0KLXNldF9tYXhfdHJhbnNpdGlvbiAwLjUxNyBbZ2V0X3BvcnRzIHt0X2RhdGFfb3V0WzBdfV0KLXNldF9tYXhfdHJhbnNpdGlvbiAwLjUwNSBbZ2V0X3BvcnRzIHtwX2FkZHJlc3NbOF19XQotc2V0X21heF90cmFuc2l0aW9uIDAuNTA3IFtnZXRfcG9ydHMge3BfYWRkcmVzc1s3XX1dCi1zZXRfbWF4X3RyYW5zaXRpb24gMC41MDcgW2dldF9wb3J0cyB7cF9hZGRyZXNzWzZdfV0KLXNldF9tYXhfdHJhbnNpdGlvbiAwLjUwOCBbZ2V0X3BvcnRzIHtwX2FkZHJlc3NbNV19XQotc2V0X21heF90cmFuc2l0aW9uIDAuNTA2IFtnZXRfcG9ydHMge3BfYWRkcmVzc1s0XX1dCi1zZXRfbWF4X3RyYW5zaXRpb24gMC41MDYgW2dldF9wb3J0cyB7cF9hZGRyZXNzWzNdfV0KLXNldF9tYXhfdHJhbnNpdGlvbiAwLjUwNiBbZ2V0X3BvcnRzIHtwX2FkZHJlc3NbMl19XQotc2V0X21heF90cmFuc2l0aW9uIDAuNTA4IFtnZXRfcG9ydHMge3BfYWRkcmVzc1sxXX1dCi1zZXRfbWF4X3RyYW5zaXRpb24gMC41MDcgW2dldF9wb3J0cyB7cF9hZGRyZXNzWzBdfV0KLXNldF9tYXhfdHJhbnNpdGlvbiAwLjc4NyBbZ2V0X3BvcnRzIHtidXNfcmVxdWVzdH1dCi1zZXRfbWF4X3RyYW5zaXRpb24gMC44NDAgW2dldF9wb3J0cyB7cG9ydF9hZGRyZXNzWzJdfV0KLXNldF9tYXhfdHJhbnNpdGlvbiAwLjgzMiBbZ2V0X3BvcnRzIHtwb3J0X2FkZHJlc3NbMV19XQotc2V0X21heF90cmFuc2l0aW9uIDAuODQ0IFtnZXRfcG9ydHMge3BvcnRfYWRkcmVzc1swXX1dCi1zZXRfbWF4X3RyYW5zaXRpb24gMC44NDggW2dldF9wb3J0cyB7cG9ydF9wYWRfZGF0YV9vdXRbMTVdfV0KLXNldF9tYXhfdHJhbnNpdGlvbiAwLjgyOCBbZ2V0X3BvcnRzIHtwb3J0X3BhZF9kYXRhX291dFsxNF19XQotc2V0X21heF90cmFuc2l0aW9uIDAuODIwIFtnZXRfcG9ydHMge3BvcnRfcGFkX2RhdGFfb3V0WzEzXX1dCi1zZXRfbWF4X3RyYW5zaXRpb24gMC44MjQgW2dldF9wb3J0cyB7cG9ydF9wYWRfZGF0YV9vdXRbMTJdfV0KLXNldF9tYXhfdHJhbnNpdGlvbiAwLjgzNyBbZ2V0X3BvcnRzIHtwb3J0X3BhZF9kYXRhX291dFsxMV19XQotc2V0X21heF90cmFuc2l0aW9uIDAuODMyIFtnZXRfcG9ydHMge3BvcnRfcGFkX2RhdGFfb3V0WzEwXX1dCi1zZXRfbWF4X3RyYW5zaXRpb24gMC44MjkgW2dldF9wb3J0cyB7cG9ydF9wYWRfZGF0YV9vdXRbOV19XQotc2V0X21heF90cmFuc2l0aW9uIDAuODMwIFtnZXRfcG9ydHMge3BvcnRfcGFkX2RhdGFfb3V0WzhdfV0KLXNldF9tYXhfdHJhbnNpdGlvbiAwLjgzNSBbZ2V0X3BvcnRzIHtwb3J0X3BhZF9kYXRhX291dFs3XX1dCi1zZXRfbWF4X3RyYW5zaXRpb24gMC44MjkgW2dldF9wb3J0cyB7cG9ydF9wYWRfZGF0YV9vdXRbNl19XQotc2V0X21heF90cmFuc2l0aW9uIDAuODIxIFtnZXRfcG9ydHMge3BvcnRfcGFkX2RhdGFfb3V0WzVdfV0KLXNldF9tYXhfdHJhbnNpdGlvbiAwLjgxMyBbZ2V0X3BvcnRzIHtwb3J0X3BhZF9kYXRhX291dFs0XX1dCi1zZXRfbWF4X3RyYW5zaXRpb24gMC44MjkgW2dldF9wb3J0cyB7cG9ydF9wYWRfZGF0YV9vdXRbM119XQotc2V0X21heF90cmFuc2l0aW9uIDAuODE3IFtnZXRfcG9ydHMge3BvcnRfcGFkX2RhdGFfb3V0WzJdfV0KLXNldF9tYXhfdHJhbnNpdGlvbiAwLjgxNSBbZ2V0X3BvcnRzIHtwb3J0X3BhZF9kYXRhX291dFsxXX1dCi1zZXRfbWF4X3RyYW5zaXRpb24gMC44MTYgW2dldF9wb3J0cyB7cG9ydF9wYWRfZGF0YV9vdXRbMF19XQotc2V0X21heF90cmFuc2l0aW9uIDAuODE1IFtnZXRfcG9ydHMge3BvcnRfYXN9XQotc2V0X21heF90cmFuc2l0aW9uIDEuMjAwIFtnZXRfcG9ydHMge3Rfc2RvWzJdfV0KLXNldF9tYXhfdHJhbnNpdGlvbiAxLjIwMCBbZ2V0X3BvcnRzIHt0X3Nkb1sxXX1dCi1zZXRfbWF4X3RyYW5zaXRpb24gMS4yMDAgW2dldF9wb3J0cyB7dF9zZG9bMF19XQotc2V0X2ZhbHNlX3BhdGggLXNldHVwIC10byBbZ2V0X3BvcnRzIHt0X3Nkb1syXX1dCi1zZXRfZmFsc2VfcGF0aCAtc2V0dXAgLXRvIFtnZXRfcG9ydHMge3Rfc2RvWzFdfV0KLXNldF9mYWxzZV9wYXRoIC1zZXR1cCAtdG8gW2dldF9wb3J0cyB7dF9zZG9bMF19XQotc2V0X2ZhbHNlX3BhdGggLWhvbGQgLWZyb20gW2dldF9wb3J0cyB7cmVzZXR9XQotc2V0X2ZhbHNlX3BhdGggLWhvbGQgLWZyb20gW2dldF9wb3J0cyB7cG9ydF9wYWRfZGF0YV9pblsxNV19XQotc2V0X2ZhbHNlX3BhdGggLWhvbGQgLWZyb20gW2dldF9wb3J0cyB7cG9ydF9wYWRfZGF0YV9pblsxNF19XQotc2V0X2ZhbHNlX3BhdGggLWhvbGQgLWZyb20gW2dldF9wb3J0cyB7cG9ydF9wYWRfZGF0YV9pblsxM119XQotc2V0X2ZhbHNlX3BhdGggLWhvbGQgLWZyb20gW2dldF9wb3J0cyB7cG9ydF9wYWRfZGF0YV9pblsxMl19XQotc2V0X2ZhbHNlX3BhdGggLWhvbGQgLWZyb20gW2dldF9wb3J0cyB7cG9ydF9wYWRfZGF0YV9pblsxMV19XQotc2V0X2ZhbHNlX3BhdGggLWhvbGQgLWZyb20gW2dldF9wb3J0cyB7cG9ydF9wYWRfZGF0YV9pblsxMF19XQotc2V0X2ZhbHNlX3BhdGggLWhvbGQgLWZyb20gW2dldF9wb3J0cyB7cG9ydF9wYWRfZGF0YV9pbls5XX1dCi1zZXRfZmFsc2VfcGF0aCAtaG9sZCAtZnJvbSBbZ2V0X3BvcnRzIHtwb3J0X3BhZF9kYXRhX2luWzhdfV0KLXNldF9mYWxzZV9wYXRoIC1ob2xkIC1mcm9tIFtnZXRfcG9ydHMge3BvcnRfcGFkX2RhdGFfaW5bN119XQotc2V0X2ZhbHNlX3BhdGggLWhvbGQgLWZyb20gW2dldF9wb3J0cyB7cG9ydF9wYWRfZGF0YV9pbls2XX1dCi1zZXRfZmFsc2VfcGF0aCAtaG9sZCAtZnJvbSBbZ2V0X3BvcnRzIHtwb3J0X3BhZF9kYXRhX2luWzVdfV0KLXNldF9mYWxzZV9wYXRoIC1ob2xkIC1mcm9tIFtnZXRfcG9ydHMge3BvcnRfcGFkX2RhdGFfaW5bNF19XQotc2V0X2ZhbHNlX3BhdGggLWhvbGQgLWZyb20gW2dldF9wb3J0cyB7cG9ydF9wYWRfZGF0YV9pblszXX1dCi1zZXRfZmFsc2VfcGF0aCAtaG9sZCAtZnJvbSBbZ2V0X3BvcnRzIHtwb3J0X3BhZF9kYXRhX2luWzJdfV0KLXNldF9mYWxzZV9wYXRoIC1ob2xkIC1mcm9tIFtnZXRfcG9ydHMge3BvcnRfcGFkX2RhdGFfaW5bMV19XQotc2V0X2ZhbHNlX3BhdGggLWhvbGQgLWZyb20gW2dldF9wb3J0cyB7cG9ydF9wYWRfZGF0YV9pblswXX1dCi1zZXRfZmFsc2VfcGF0aCAtaG9sZCAtZnJvbSBbZ2V0X3BvcnRzIHtSQ19DR19URVNUX1BPUlR9XQotc2V0X2ZhbHNlX3BhdGggLWhvbGQgLWZyb20gW2dldF9wb3J0cyB7REZUX3Nlbn1dCi1zZXRfZmFsc2VfcGF0aCAtaG9sZCAtdG8gW2dldF9wb3J0cyB7cG9ydF9wYWRfZGF0YV9vdXRbMTVdfV0KLXNldF9mYWxzZV9wYXRoIC1ob2xkIC10byBbZ2V0X3BvcnRzIHtwb3J0X3BhZF9kYXRhX291dFsxNF19XQotc2V0X2ZhbHNlX3BhdGggLWhvbGQgLXRvIFtnZXRfcG9ydHMge3BvcnRfcGFkX2RhdGFfb3V0WzEzXX1dCi1zZXRfZmFsc2VfcGF0aCAtaG9sZCAtdG8gW2dldF9wb3J0cyB7cG9ydF9wYWRfZGF0YV9vdXRbMTJdfV0KLXNldF9mYWxzZV9wYXRoIC1ob2xkIC10byBbZ2V0X3BvcnRzIHtwb3J0X3BhZF9kYXRhX291dFsxMV19XQotc2V0X2ZhbHNlX3BhdGggLWhvbGQgLXRvIFtnZXRfcG9ydHMge3BvcnRfcGFkX2RhdGFfb3V0WzEwXX1dCi1zZXRfZmFsc2VfcGF0aCAtaG9sZCAtdG8gW2dldF9wb3J0cyB7cG9ydF9wYWRfZGF0YV9vdXRbOV19XQotc2V0X2ZhbHNlX3BhdGggLWhvbGQgLXRvIFtnZXRfcG9ydHMge3BvcnRfcGFkX2RhdGFfb3V0WzhdfV0KLXNldF9mYWxzZV9wYXRoIC1ob2xkIC10byBbZ2V0X3BvcnRzIHtwb3J0X3BhZF9kYXRhX291dFs3XX1dCi1zZXRfZmFsc2VfcGF0aCAtaG9sZCAtdG8gW2dldF9wb3J0cyB7cG9ydF9wYWRfZGF0YV9vdXRbNl19XQotc2V0X2ZhbHNlX3BhdGggLWhvbGQgLXRvIFtnZXRfcG9ydHMge3BvcnRfcGFkX2RhdGFfb3V0WzVdfV0KLXNldF9mYWxzZV9wYXRoIC1ob2xkIC10byBbZ2V0X3BvcnRzIHtwb3J0X3BhZF9kYXRhX291dFs0XX1dCi1zZXRfZmFsc2VfcGF0aCAtaG9sZCAtdG8gW2dldF9wb3J0cyB7cG9ydF9wYWRfZGF0YV9vdXRbM119XQotc2V0X2ZhbHNlX3BhdGggLWhvbGQgLXRvIFtnZXRfcG9ydHMge3BvcnRfcGFkX2RhdGFfb3V0WzJdfV0KLXNldF9mYWxzZV9wYXRoIC1ob2xkIC10byBbZ2V0X3BvcnRzIHtwb3J0X3BhZF9kYXRhX291dFsxXX1dCi1zZXRfZmFsc2VfcGF0aCAtaG9sZCAtdG8gW2dldF9wb3J0cyB7cG9ydF9wYWRfZGF0YV9vdXRbMF19XQotc2V0X2ZhbHNlX3BhdGggLWhvbGQgLXRvIFtnZXRfcG9ydHMge3Rfc2RvWzJdfV0KLXNldF9mYWxzZV9wYXRoIC1ob2xkIC10byBbZ2V0X3BvcnRzIHt0X3Nkb1sxXX1dCi1zZXRfZmFsc2VfcGF0aCAtaG9sZCAtdG8gW2dldF9wb3J0cyB7dF9zZG9bMF19XQotCi1zZXRfY2xvY2tfbGF0ZW5jeSAxLjAwMCBcCi0gICBbZ2V0X2Nsb2NrcyB7bV90ZHNwX2Nsa31dIAotCi1zZXRfY2xvY2tfdW5jZXJ0YWludHkgMC4yMDAgLXNldHVwIFtsaXN0IFtnZXRfY2xvY2tzIHttX3Rkc3BfY2xrfV0gXSAKLXNldF9tdWx0aWN5Y2xlX3BhdGggMyAtc2V0dXAgXAotICAtdG8gW2dldF9waW5zIHtFWEVDVVRFX0lOU1QvcF9yZWcqL3N0YXRlX3JlbWFwL0RGRi9EfV0gCi1zZXRfbXVsdGljeWNsZV9wYXRoIDMgLXNldHVwIFwKLSAgLXRvIFtnZXRfcGlucyB7RVhFQ1VURV9JTlNUL2FjYyovc3RhdGVfcmVtYXAvREZGL0R9XSAKLXNldF9tdWx0aWN5Y2xlX3BhdGggMyAtc2V0dXAgXAotICAtdG8gW2dldF9waW5zIHtFWEVDVVRFX0lOU1Qvb3ZfZmxhZyovc3RhdGVfcmVtYXAvREZGL0R9XSAKLXNldF9tdWx0aWN5Y2xlX3BhdGggMyAtaG9sZCBcCi0gIC10byBbZ2V0X3BpbnMge0VYRUNVVEVfSU5TVC9wX3JlZyovc3RhdGVfcmVtYXAvREZGL0R9XSAKLXNldF9tdWx0aWN5Y2xlX3BhdGggMyAtaG9sZCBcCi0gIC10byBbZ2V0X3BpbnMge0VYRUNVVEVfSU5TVC9hY2MqL3N0YXRlX3JlbWFwL0RGRi9EfV0gCi1zZXRfbXVsdGljeWNsZV9wYXRoIDMgLWhvbGQgXAotICAtdG8gW2dldF9waW5zIHtFWEVDVVRFX0lOU1Qvb3ZfZmxhZyovc3RhdGVfcmVtYXAvREZGL0R9XSAKLSNzZXRfbXVsdGljeWNsZV9wYXRoIDMgLXNldHVwIFwKLSMgIC10byBbbGlzdCBbZ2V0X3BpbnMge0VYRUNVVEVfSU5TVC9wX3JlZyovRH1dIFwKLSMgICAgICAgICAgICBbZ2V0X3BpbnMge0VYRUNVVEVfSU5TVC9hY2NfcmVnKi9EfV0gXAotIyAgICAgICAgICAgIFtnZXRfcGlucyB7RVhFQ1VURV9JTlNUL292X2ZsYWdfcmVnL0R9XSBcCi0jICAgICAgXSAKLQotc2V0X2lucHV0X2RlbGF5IDIuNSAtY2xvY2sgbV90ZHNwX2NsayBbYWxsX2lucHV0c10KLXNldF9vdXRwdXRfZGVsYXkgMC41IC1jbG9jayBtX3Rkc3BfY2xrIFthbGxfb3V0cHV0c10KLQpkaWZmIC0tZ2l0IGEvZmxvdy9wbnIvRVhBTVBMRVMvSU5OT1ZVUy9ERVNJR04vREFUQS90ZHNwX2NvcmUuY3RzdGNoIGIvZmxvdy9wbnIvRVhBTVBMRVMvSU5OT1ZVUy9ERVNJR04vREFUQS90ZHNwX2NvcmUuY3RzdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDc1NQppbmRleCBkYjZjNGZiLi4wMDAwMDAwCi0tLSBhL2Zsb3cvcG5yL0VYQU1QTEVTL0lOTk9WVVMvREVTSUdOL0RBVEEvdGRzcF9jb3JlLmN0c3RjaAorKysgL2Rldi9udWxsCkBAIC0xLDMxICswLDAgQEAKLSMKLSNNYWNyb01vZGVsIFNlY3Rpb24KLSMKLQotCi0jCi0jQ2xvY2sgU2VjdGlvbgotIwotCi0jLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSMgR2VuZXJhdGVkIGZyb20gVEVTVF9DT05UUk9MX0lOU1QvZzEzNi9aTgotIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1BdXRvQ1RTUm9vdFBpbiAgIGNsawotTWF4RGVsYXkgICAgICAgICA5NTBwcwotTWluRGVsYXkgICAgICAgICA5NTBwcwotTWF4U2tldyAgICAgICAgICAzMDBwcwotU2lua01heFRyYW4gICAgICAyMDBwcwotQnVmTWF4VHJhbiAgICAgICAyMDBwcwotT2JzdHJ1Y3Rpb24gICAgICBOTwotRGV0YWlsUmVwb3J0ICAgICBZRVMKLVBhZEJ1ZkFmdGVyR2F0ZSAgICAgTk8KLUxldmVsQmFsYW5jZWQgICAgIE5PCi1Sb3V0ZUNsa05ldCAgICAgIFlFUwotI1Bvc3RPcHQgICAgICAgICAgTk8KLSNPcHRBZGRCdWZmZXIgICAgIE5PCi0jT3B0QWRkQnVmZmVyTGltaXQgIDUwCi1Ob0dhdGluZyAgICAgICAgIE5PCi1CdWZmZXIgQlVGRkQyQldQIEJVRkZEM0JXUCBCVUZGRDRCV1AgQlVGRkQ2QldQIEJVRkZEOEJXUCBCVUZGRDEyQldQIElOVkQxQldQIElOVkQyQldQIElOVkQzQldQIElOVkQ0QldQIElOVkQ2QldQIElOVkQ4QldQIElOVkQxMkJXUCAKLUVORAotCi0KZGlmZiAtLWdpdCBhL2Zsb3cvcG5yL0VYQU1QTEVTL0lOTk9WVVMvREVTSUdOL0RBVEEvdGRzcF9jb3JlLmZwIGIvZmxvdy9wbnIvRVhBTVBMRVMvSU5OT1ZVUy9ERVNJR04vREFUQS90ZHNwX2NvcmUuZnAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDQwMjZjZDIuLjAwMDAwMDAKLS0tIGEvZmxvdy9wbnIvRVhBTVBMRVMvSU5OT1ZVUy9ERVNJR04vREFUQS90ZHNwX2NvcmUuZnAKKysrIC9kZXYvbnVsbApAQCAtMSwxOTA5ICswLDAgQEAKLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotIyAgR2VuZXJhdGVkIGJ5OiAgICAgIENhZGVuY2UgRW5jb3VudGVyIDA5LjEwLXAwMDRfMQotIyAgT1M6ICAgICAgICAgICAgICAgIExpbnV4IHg4Nl82NChIb3N0IElEIHh2NDBvcHQwMSkKLSMgIEdlbmVyYXRlZCBvbjogICAgICBTdW4gSmFuIDMxIDEzOjMwOjMwIDIwMTAKLSMgIENvbW1hbmQ6ICAgICAgICAgICBzYXZlUGFydGl0aW9uIC1kaXIgUEFSVElUSU9OIC1kZWYgLXNjYW5EZWYKLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCi1WZXJzaW9uOiA4Ci0KLUhlYWQgQm94OiAwLjAwMDAgMC4wMDAwIDE0MS44MDAwIDE1My45MDAwCi1JTyBCb3g6IDAuMDAwMCAwLjAwMDAgMTQxLjgwMDAgMTUzLjkwMDAKLUNvcmUgQm94OiAwLjAwMDAgMC4wMDAwIDE0MS44MDAwIDE1My45MDAwCi1Vc2VTdGRVdGlsOiBmYWxzZQotCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSMgIERlc2lnblJvdXRpbmdIYWxvOiA8c3BhY2U+IDxib3R0b21MYXllck5hbWU+IDx0b3BMYXllck5hbWU+Ci0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLQotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0jICBDb3JlIFJvd3MgUGFyYW1ldGVyczogICAgICAgICAgICAgICAgICAgICAgICAgICAgICMKLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotUm93IFNwYWNpbmcgPSAwLjAwMDAwMAotUm93IFNwYWNpbmdUeXBlID0gMAotUm93IEZsaXAgPSAxCi1Db3JlIFJvdyBTaXRlOiBDb3JlU2l0ZSAKLQotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0jICBEZWZSb3c6IDxuYW1lPiA8c2l0ZT4gPHg+IDx5PiA8b3JpZW50PiA8bnVtX3g+IDxudW1feT4gPHN0ZXBfeD4gPHN0ZXBfeT4gICMKLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotRGVmUm93OiBST1dfMCBDb3JlU2l0ZSAwLjAwMDAgMC4wMDAwIE4gNzA5IDEgMC4yMDAwIDAuMDAwMAotRGVmUm93OiBST1dfMSBDb3JlU2l0ZSAwLjAwMDAgMS43MTAwIEZTIDcwOSAxIDAuMjAwMCAwLjAwMDAKLURlZlJvdzogUk9XXzIgQ29yZVNpdGUgMC4wMDAwIDMuNDIwMCBOIDcwOSAxIDAuMjAwMCAwLjAwMDAKLURlZlJvdzogUk9XXzMgQ29yZVNpdGUgMC4wMDAwIDUuMTMwMCBGUyA3MDkgMSAwLjIwMDAgMC4wMDAwCi1EZWZSb3c6IFJPV180IENvcmVTaXRlIDAuMDAwMCA2Ljg0MDAgTiA3MDkgMSAwLjIwMDAgMC4wMDAwCi1EZWZSb3c6IFJPV181IENvcmVTaXRlIDAuMDAwMCA4LjU1MDAgRlMgNzA5IDEgMC4yMDAwIDAuMDAwMAotRGVmUm93OiBST1dfNiBDb3JlU2l0ZSAwLjAwMDAgMTAuMjYwMCBOIDcwOSAxIDAuMjAwMCAwLjAwMDAKLURlZlJvdzogUk9XXzcgQ29yZVNpdGUgMC4wMDAwIDExLjk3MDAgRlMgNzA5IDEgMC4yMDAwIDAuMDAwMAotRGVmUm93OiBST1dfOCBDb3JlU2l0ZSAwLjAwMDAgMTMuNjgwMCBOIDcwOSAxIDAuMjAwMCAwLjAwMDAKLURlZlJvdzogUk9XXzkgQ29yZVNpdGUgMC4wMDAwIDE1LjM5MDAgRlMgNzA5IDEgMC4yMDAwIDAuMDAwMAotRGVmUm93OiBST1dfMTAgQ29yZVNpdGUgMC4wMDAwIDE3LjEwMDAgTiA3MDkgMSAwLjIwMDAgMC4wMDAwCi1EZWZSb3c6IFJPV18xMSBDb3JlU2l0ZSAwLjAwMDAgMTguODEwMCBGUyA3MDkgMSAwLjIwMDAgMC4wMDAwCi1EZWZSb3c6IFJPV18xMiBDb3JlU2l0ZSAwLjAwMDAgMjAuNTIwMCBOIDcwOSAxIDAuMjAwMCAwLjAwMDAKLURlZlJvdzogUk9XXzEzIENvcmVTaXRlIDAuMDAwMCAyMi4yMzAwIEZTIDcwOSAxIDAuMjAwMCAwLjAwMDAKLURlZlJvdzogUk9XXzE0IENvcmVTaXRlIDAuMDAwMCAyMy45NDAwIE4gNzA5IDEgMC4yMDAwIDAuMDAwMAotRGVmUm93OiBST1dfMTUgQ29yZVNpdGUgMC4wMDAwIDI1LjY1MDAgRlMgNzA5IDEgMC4yMDAwIDAuMDAwMAotRGVmUm93OiBST1dfMTYgQ29yZVNpdGUgMC4wMDAwIDI3LjM2MDAgTiA3MDkgMSAwLjIwMDAgMC4wMDAwCi1EZWZSb3c6IFJPV18xNyBDb3JlU2l0ZSAwLjAwMDAgMjkuMDcwMCBGUyA3MDkgMSAwLjIwMDAgMC4wMDAwCi1EZWZSb3c6IFJPV18xOCBDb3JlU2l0ZSAwLjAwMDAgMzAuNzgwMCBOIDcwOSAxIDAuMjAwMCAwLjAwMDAKLURlZlJvdzogUk9XXzE5IENvcmVTaXRlIDAuMDAwMCAzMi40OTAwIEZTIDcwOSAxIDAuMjAwMCAwLjAwMDAKLURlZlJvdzogUk9XXzIwIENvcmVTaXRlIDAuMDAwMCAzNC4yMDAwIE4gNzA5IDEgMC4yMDAwIDAuMDAwMAotRGVmUm93OiBST1dfMjEgQ29yZVNpdGUgMC4wMDAwIDM1LjkxMDAgRlMgNzA5IDEgMC4yMDAwIDAuMDAwMAotRGVmUm93OiBST1dfMjIgQ29yZVNpdGUgMC4wMDAwIDM3LjYyMDAgTiA3MDkgMSAwLjIwMDAgMC4wMDAwCi1EZWZSb3c6IFJPV18yMyBDb3JlU2l0ZSAwLjAwMDAgMzkuMzMwMCBGUyA3MDkgMSAwLjIwMDAgMC4wMDAwCi1EZWZSb3c6IFJPV18yNCBDb3JlU2l0ZSAwLjAwMDAgNDEuMDQwMCBOIDcwOSAxIDAuMjAwMCAwLjAwMDAKLURlZlJvdzogUk9XXzI1IENvcmVTaXRlIDAuMDAwMCA0Mi43NTAwIEZTIDcwOSAxIDAuMjAwMCAwLjAwMDAKLURlZlJvdzogUk9XXzI2IENvcmVTaXRlIDAuMDAwMCA0NC40NjAwIE4gNzA5IDEgMC4yMDAwIDAuMDAwMAotRGVmUm93OiBST1dfMjcgQ29yZVNpdGUgMC4wMDAwIDQ2LjE3MDAgRlMgNzA5IDEgMC4yMDAwIDAuMDAwMAotRGVmUm93OiBST1dfMjggQ29yZVNpdGUgMC4wMDAwIDQ3Ljg4MDAgTiA3MDkgMSAwLjIwMDAgMC4wMDAwCi1EZWZSb3c6IFJPV18yOSBDb3JlU2l0ZSAwLjAwMDAgNDkuNTkwMCBGUyA3MDkgMSAwLjIwMDAgMC4wMDAwCi1EZWZSb3c6IFJPV18zMCBDb3JlU2l0ZSAwLjAwMDAgNTEuMzAwMCBOIDcwOSAxIDAuMjAwMCAwLjAwMDAKLURlZlJvdzogUk9XXzMxIENvcmVTaXRlIDAuMDAwMCA1My4wMTAwIEZTIDcwOSAxIDAuMjAwMCAwLjAwMDAKLURlZlJvdzogUk9XXzMyIENvcmVTaXRlIDAuMDAwMCA1NC43MjAwIE4gNzA5IDEgMC4yMDAwIDAuMDAwMAotRGVmUm93OiBST1dfMzMgQ29yZVNpdGUgMC4wMDAwIDU2LjQzMDAgRlMgNzA5IDEgMC4yMDAwIDAuMDAwMAotRGVmUm93OiBST1dfMzQgQ29yZVNpdGUgMC4wMDAwIDU4LjE0MDAgTiA3MDkgMSAwLjIwMDAgMC4wMDAwCi1EZWZSb3c6IFJPV18zNSBDb3JlU2l0ZSAwLjAwMDAgNTkuODUwMCBGUyA3MDkgMSAwLjIwMDAgMC4wMDAwCi1EZWZSb3c6IFJPV18zNiBDb3JlU2l0ZSAwLjAwMDAgNjEuNTYwMCBOIDcwOSAxIDAuMjAwMCAwLjAwMDAKLURlZlJvdzogUk9XXzM3IENvcmVTaXRlIDAuMDAwMCA2My4yNzAwIEZTIDcwOSAxIDAuMjAwMCAwLjAwMDAKLURlZlJvdzogUk9XXzM4IENvcmVTaXRlIDAuMDAwMCA2NC45ODAwIE4gNzA5IDEgMC4yMDAwIDAuMDAwMAotRGVmUm93OiBST1dfMzkgQ29yZVNpdGUgMC4wMDAwIDY2LjY5MDAgRlMgNzA5IDEgMC4yMDAwIDAuMDAwMAotRGVmUm93OiBST1dfNDAgQ29yZVNpdGUgMC4wMDAwIDY4LjQwMDAgTiA3MDkgMSAwLjIwMDAgMC4wMDAwCi1EZWZSb3c6IFJPV180MSBDb3JlU2l0ZSAwLjAwMDAgNzAuMTEwMCBGUyA3MDkgMSAwLjIwMDAgMC4wMDAwCi1EZWZSb3c6IFJPV180MiBDb3JlU2l0ZSAwLjAwMDAgNzEuODIwMCBOIDcwOSAxIDAuMjAwMCAwLjAwMDAKLURlZlJvdzogUk9XXzQzIENvcmVTaXRlIDAuMDAwMCA3My41MzAwIEZTIDcwOSAxIDAuMjAwMCAwLjAwMDAKLURlZlJvdzogUk9XXzQ0IENvcmVTaXRlIDAuMDAwMCA3NS4yNDAwIE4gNzA5IDEgMC4yMDAwIDAuMDAwMAotRGVmUm93OiBST1dfNDUgQ29yZVNpdGUgMC4wMDAwIDc2Ljk1MDAgRlMgNzA5IDEgMC4yMDAwIDAuMDAwMAotRGVmUm93OiBST1dfNDYgQ29yZVNpdGUgMC4wMDAwIDc4LjY2MDAgTiA3MDkgMSAwLjIwMDAgMC4wMDAwCi1EZWZSb3c6IFJPV180NyBDb3JlU2l0ZSAwLjAwMDAgODAuMzcwMCBGUyA3MDkgMSAwLjIwMDAgMC4wMDAwCi1EZWZSb3c6IFJPV180OCBDb3JlU2l0ZSAwLjAwMDAgODIuMDgwMCBOIDcwOSAxIDAuMjAwMCAwLjAwMDAKLURlZlJvdzogUk9XXzQ5IENvcmVTaXRlIDAuMDAwMCA4My43OTAwIEZTIDcwOSAxIDAuMjAwMCAwLjAwMDAKLURlZlJvdzogUk9XXzUwIENvcmVTaXRlIDAuMDAwMCA4NS41MDAwIE4gNzA5IDEgMC4yMDAwIDAuMDAwMAotRGVmUm93OiBST1dfNTEgQ29yZVNpdGUgMC4wMDAwIDg3LjIxMDAgRlMgNzA5IDEgMC4yMDAwIDAuMDAwMAotRGVmUm93OiBST1dfNTIgQ29yZVNpdGUgMC4wMDAwIDg4LjkyMDAgTiA3MDkgMSAwLjIwMDAgMC4wMDAwCi1EZWZSb3c6IFJPV181MyBDb3JlU2l0ZSAwLjAwMDAgOTAuNjMwMCBGUyA3MDkgMSAwLjIwMDAgMC4wMDAwCi1EZWZSb3c6IFJPV181NCBDb3JlU2l0ZSAwLjAwMDAgOTIuMzQwMCBOIDcwOSAxIDAuMjAwMCAwLjAwMDAKLURlZlJvdzogUk9XXzU1IENvcmVTaXRlIDAuMDAwMCA5NC4wNTAwIEZTIDcwOSAxIDAuMjAwMCAwLjAwMDAKLURlZlJvdzogUk9XXzU2IENvcmVTaXRlIDAuMDAwMCA5NS43NjAwIE4gNzA5IDEgMC4yMDAwIDAuMDAwMAotRGVmUm93OiBST1dfNTcgQ29yZVNpdGUgMC4wMDAwIDk3LjQ3MDAgRlMgNzA5IDEgMC4yMDAwIDAuMDAwMAotRGVmUm93OiBST1dfNTggQ29yZVNpdGUgMC4wMDAwIDk5LjE4MDAgTiA3MDkgMSAwLjIwMDAgMC4wMDAwCi1EZWZSb3c6IFJPV181OSBDb3JlU2l0ZSAwLjAwMDAgMTAwLjg5MDAgRlMgNzA5IDEgMC4yMDAwIDAuMDAwMAotRGVmUm93OiBST1dfNjAgQ29yZVNpdGUgMC4wMDAwIDEwMi42MDAwIE4gNzA5IDEgMC4yMDAwIDAuMDAwMAotRGVmUm93OiBST1dfNjEgQ29yZVNpdGUgMC4wMDAwIDEwNC4zMTAwIEZTIDcwOSAxIDAuMjAwMCAwLjAwMDAKLURlZlJvdzogUk9XXzYyIENvcmVTaXRlIDAuMDAwMCAxMDYuMDIwMCBOIDcwOSAxIDAuMjAwMCAwLjAwMDAKLURlZlJvdzogUk9XXzYzIENvcmVTaXRlIDAuMDAwMCAxMDcuNzMwMCBGUyA3MDkgMSAwLjIwMDAgMC4wMDAwCi1EZWZSb3c6IFJPV182NCBDb3JlU2l0ZSAwLjAwMDAgMTA5LjQ0MDAgTiA3MDkgMSAwLjIwMDAgMC4wMDAwCi1EZWZSb3c6IFJPV182NSBDb3JlU2l0ZSAwLjAwMDAgMTExLjE1MDAgRlMgNzA5IDEgMC4yMDAwIDAuMDAwMAotRGVmUm93OiBST1dfNjYgQ29yZVNpdGUgMC4wMDAwIDExMi44NjAwIE4gNzA5IDEgMC4yMDAwIDAuMDAwMAotRGVmUm93OiBST1dfNjcgQ29yZVNpdGUgMC4wMDAwIDExNC41NzAwIEZTIDcwOSAxIDAuMjAwMCAwLjAwMDAKLURlZlJvdzogUk9XXzY4IENvcmVTaXRlIDAuMDAwMCAxMTYuMjgwMCBOIDcwOSAxIDAuMjAwMCAwLjAwMDAKLURlZlJvdzogUk9XXzY5IENvcmVTaXRlIDAuMDAwMCAxMTcuOTkwMCBGUyA3MDkgMSAwLjIwMDAgMC4wMDAwCi1EZWZSb3c6IFJPV183MCBDb3JlU2l0ZSAwLjAwMDAgMTE5LjcwMDAgTiA3MDkgMSAwLjIwMDAgMC4wMDAwCi1EZWZSb3c6IFJPV183MSBDb3JlU2l0ZSAwLjAwMDAgMTIxLjQxMDAgRlMgNzA5IDEgMC4yMDAwIDAuMDAwMAotRGVmUm93OiBST1dfNzIgQ29yZVNpdGUgMC4wMDAwIDEyMy4xMjAwIE4gNzA5IDEgMC4yMDAwIDAuMDAwMAotRGVmUm93OiBST1dfNzMgQ29yZVNpdGUgMC4wMDAwIDEyNC44MzAwIEZTIDcwOSAxIDAuMjAwMCAwLjAwMDAKLURlZlJvdzogUk9XXzc0IENvcmVTaXRlIDAuMDAwMCAxMjYuNTQwMCBOIDcwOSAxIDAuMjAwMCAwLjAwMDAKLURlZlJvdzogUk9XXzc1IENvcmVTaXRlIDAuMDAwMCAxMjguMjUwMCBGUyA3MDkgMSAwLjIwMDAgMC4wMDAwCi1EZWZSb3c6IFJPV183NiBDb3JlU2l0ZSAwLjAwMDAgMTI5Ljk2MDAgTiA3MDkgMSAwLjIwMDAgMC4wMDAwCi1EZWZSb3c6IFJPV183NyBDb3JlU2l0ZSAwLjAwMDAgMTMxLjY3MDAgRlMgNzA5IDEgMC4yMDAwIDAuMDAwMAotRGVmUm93OiBST1dfNzggQ29yZVNpdGUgMC4wMDAwIDEzMy4zODAwIE4gNzA5IDEgMC4yMDAwIDAuMDAwMAotRGVmUm93OiBST1dfNzkgQ29yZVNpdGUgMC4wMDAwIDEzNS4wOTAwIEZTIDcwOSAxIDAuMjAwMCAwLjAwMDAKLURlZlJvdzogUk9XXzgwIENvcmVTaXRlIDAuMDAwMCAxMzYuODAwMCBOIDcwOSAxIDAuMjAwMCAwLjAwMDAKLURlZlJvdzogUk9XXzgxIENvcmVTaXRlIDAuMDAwMCAxMzguNTEwMCBGUyA3MDkgMSAwLjIwMDAgMC4wMDAwCi1EZWZSb3c6IFJPV184MiBDb3JlU2l0ZSAwLjAwMDAgMTQwLjIyMDAgTiA3MDkgMSAwLjIwMDAgMC4wMDAwCi1EZWZSb3c6IFJPV184MyBDb3JlU2l0ZSAwLjAwMDAgMTQxLjkzMDAgRlMgNzA5IDEgMC4yMDAwIDAuMDAwMAotRGVmUm93OiBST1dfODQgQ29yZVNpdGUgMC4wMDAwIDE0My42NDAwIE4gNzA5IDEgMC4yMDAwIDAuMDAwMAotRGVmUm93OiBST1dfODUgQ29yZVNpdGUgMC4wMDAwIDE0NS4zNTAwIEZTIDcwOSAxIDAuMjAwMCAwLjAwMDAKLURlZlJvdzogUk9XXzg2IENvcmVTaXRlIDAuMDAwMCAxNDcuMDYwMCBOIDcwOSAxIDAuMjAwMCAwLjAwMDAKLURlZlJvdzogUk9XXzg3IENvcmVTaXRlIDAuMDAwMCAxNDguNzcwMCBGUyA3MDkgMSAwLjIwMDAgMC4wMDAwCi1EZWZSb3c6IFJPV184OCBDb3JlU2l0ZSAwLjAwMDAgMTUwLjQ4MDAgTiA3MDkgMSAwLjIwMDAgMC4wMDAwCi1EZWZSb3c6IFJPV184OSBDb3JlU2l0ZSAwLjAwMDAgMTUyLjE5MDAgRlMgNzA5IDEgMC4yMDAwIDAuMDAwMAotCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSMgIFRyYWNrOiBkaXIgc3RhcnQgbnVtYmVyIHNwYWNlIGxheWVyX251bSBsYXllcjEgLi4uIwotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi1UcmFjazogWCAwLjEwMDAgNzA5IDAuMjAwMCAxIDkKLVRyYWNrOiBZIDAuMjg1MCA0MDUgMC4zODAwIDEgOQotVHJhY2s6IFkgMC4yODUwIDU0MCAwLjI4NTAgMSA4Ci1UcmFjazogWCAwLjEwMDAgNzA5IDAuMjAwMCAxIDgKLVRyYWNrOiBYIDAuMTAwMCA3MDkgMC4yMDAwIDEgNwotVHJhY2s6IFkgMC4yODUwIDU0MCAwLjI4NTAgMSA3Ci1UcmFjazogWSAwLjA5NTAgODEwIDAuMTkwMCAxIDYKLVRyYWNrOiBYIDAuMTAwMCA3MDkgMC4yMDAwIDEgNgotVHJhY2s6IFggMC4xMDAwIDcwOSAwLjIwMDAgMSA1Ci1UcmFjazogWSAwLjA5NTAgODEwIDAuMTkwMCAxIDUKLVRyYWNrOiBZIDAuMDk1MCA4MTAgMC4xOTAwIDEgNAotVHJhY2s6IFggMC4xMDAwIDcwOSAwLjIwMDAgMSA0Ci1UcmFjazogWCAwLjEwMDAgNzA5IDAuMjAwMCAxIDMKLVRyYWNrOiBZIDAuMDk1MCA4MTAgMC4xOTAwIDEgMwotVHJhY2s6IFkgMC4wOTUwIDgxMCAwLjE5MDAgMSAyCi1UcmFjazogWCAwLjEwMDAgNzA5IDAuMjAwMCAxIDIKLVRyYWNrOiBYIDAuMTAwMCA3MDkgMC4yMDAwIDEgMQotVHJhY2s6IFkgMC4wOTUwIDgxMCAwLjE5MDAgMSAxCi0KLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotIyAgR0NlbGxHcmlkOiBkaXIgc3RhcnQgbnVtYmVyIHNwYWNlICAgICAgICAgICAgICAgICAjCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLUdDZWxsR3JpZDogWSAwLjAwMDAgMiAxLjg5NTAKLUdDZWxsR3JpZDogWSAxLjg5NTAgNzMgMi4xMDAwCi1HQ2VsbEdyaWQ6IFkgMTUzLjA5NTAgMiAwLjgwNTAKLUdDZWxsR3JpZDogWCAwLjAwMDAgMiAxLjkzMDAKLUdDZWxsR3JpZDogWCAxLjkzMDAgNjcgMi4xMDAwCi1HQ2VsbEdyaWQ6IFggMTQwLjUzMDAgMiAxLjI3MDAKLQotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0jICBTcGFyZUNlbGw6IGNlbGxOYW1lICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMKLSMgIFNwYXJlSW5zdDogaW5zdE5hbWUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIwotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0KLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotIyAgU2Nhbkdyb3VwOiBncm91cE5hbWUgc3RhcnRQaW4gc3RvcFBpbiAgICAgICAgICAgICAjCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLQotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0jICBKdGFnQ2VsbDogIGxlYWZDZWxsTmFtZSAgICAgICAgICAgICAgICAgICAgICAgICAgICMKLSMgIEp0YWdJbnN0OiAgPGluc3ROYW1lIHwgSEluc3ROYW1lPiAgICAgICAgICAgICAgICAgIwotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0KLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0jICBCbGFja0JveDogLWNlbGwgPGNlbGxfbmFtZT4geyAtc2l6ZSA8eD4gPHk+IHwgIC1hcmVhIDx1bV4yPiB8IFwgICAgICAgICAgICAgICAgICAjCi0jICAgICAgICAgICAgLWdhdGVjb3VudCA8Y291bnQ+IDxhcmVhcGVyZ2F0ZT4gPHV0aWxpemF0aW9uPiB8IFwgICAgICAgICAgICAgICAgICAgICAjCi0jICAgICAgICAgICAgey1nYXRlQXJlYSA8Z2F0ZUFyZWFWYWx1ZT4gWy1tYWNyb0FyZWEgPG1hY3JvQXJlYVZhbHVlPl19IH0gXCAgICAgICAgICAjCi0jICAgICAgICAgICAgWy1taW53aWR0aCA8dz4gfCAtbWluaGVpZ2h0IDxoPiB8IC1maXhlZHdpZGggPHc+IHwgLWZpeGVkaGVpZ2h0IDxoPl0gXCAjCi0jICAgICAgICAgICAgWy1hc3BlY3RyYXRpbyA8cmF0aW8+XSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIwotIyAgICAgICAgICAgIFstYm94TGlzdCA8bnJDb25zdHJhaW50Qm94PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMKLSMgICAgICAgICAgICAgIENvbnN0cmFpbnRCb3g6IDxsbHg+IDxsbHk+IDx1cng+IDx1cnk+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjCi0jICAgICAgICAgICAgICAuLi4gXSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIwotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLQotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0jICBQaHlzaWNhbE5ldDogPG5hbWU+IFstcHdyfC1nbmR8LXRpZWhpfC10aWVsb10gICAgICAgICMKLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotUGh5c2ljYWxOZXQ6IEF2ZGQgLXB3cgotUGh5c2ljYWxOZXQ6IEF2c3MgLWduZAotUGh5c2ljYWxOZXQ6IEFWc3MgLWduZAotUGh5c2ljYWxOZXQ6IFZTUyAtZ25kCi1QaHlzaWNhbE5ldDogQVZkZCAtcHdyCi1QaHlzaWNhbE5ldDogVkREIC1wd3IKLQotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0jICBQaHlzaWNhbEluc3RhbmNlOiA8bmFtZT4gPGNlbGw+IDxvcmllbnQ+IDxsbHg+IDxsbHk+ICMKLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSMgIEdyb3VwOiA8Z3JvdXBfbmFtZT4gPG5ySGluc3Q+IFstaXNQaHlIaWVyXSAgICAgICAgICAgICAgICAgICAgICAgIwotIyAgICA8aW5zdF9uYW1lPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjCi0jICAgIC4uLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMKLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSMgIEZlbmNlOiAgPG5hbWU+IDxsbHg+IDxsbHk+IDx1cng+IDx1cnk+IDxuckNvbnN0cmFpbnRCb3g+ICAgICAgICAgIwotIyAgICBDb25zdHJhaW50Qm94OiA8bGx4PiA8bGx5PiA8dXJ4PiA8dXJ5PiAgICAgICAgICAgICAgICAgICAgICAgICAjCi0jICAgIC4uLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMKLSMgIFJlZ2lvbjogPG5hbWU+IDxsbHg+IDxsbHk+IDx1cng+IDx1cnk+IDxuckNvbnN0cmFpbnRCb3g+ICAgICAgICAgIwotIyAgICBDb25zdHJhaW50Qm94OiA8bGx4PiA8bGx5PiA8dXJ4PiA8dXJ5PiAgICAgICAgICAgICAgICAgICAgICAgICAjCi0jICAgIC4uLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMKLSMgIEd1aWRlOiAgPG5hbWU+IDxsbHg+IDxsbHk+IDx1cng+IDx1cnk+IDxuckNvbnN0cmFpbnRCb3g+ICAgICAgICAgIwotIyAgICBDb25zdHJhaW50Qm94OiA8bGx4PiA8bGx5PiA8dXJ4PiA8dXJ5PiAgICAgICAgICAgICAgICAgICAgICAgICAjCi0jICAgIC4uLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMKLSMgIFNvZnRHdWlkZTogPG5hbWU+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIwotIyAgICAuLi4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLQotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0jICA8Q29uc3RyYWludHM+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMKLSMgICAgIDxDb25zdHJhaW50ICB0eXBlPSJmZW5jZXxndWlkZXxyZWdpb258c29mdGd1aWRlIiAgICAgICAgICAgICAgICAgICAgIwotIyAgICAgICAgICAgICAgICAgIHJlYWRvbmx5PTEgIG5hbWU9ImJsa19uYW1lIj4gICAgICAgICAgICAgICAgICAgICAgICAgICAjCi0jICAgICAgIDxCb3ggbGx4PTEgbGx5PTIgdXJ4PTMgdXJ5PTQgLz4gLi4uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMKLSMgICAgIDwvQ29uc3RyYWludD4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIwotIyAgPC9Db25zdHJhaW50cz4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotIyAgPEhpZXJhcmNoaWNhbFBhcnRpdGlvbnM+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjCi0jICAgICA8TmV0R3JvdXAgbmFtZT0iZ3JvdXBfbmFtZSIgbmV0cz12YWwgc3BhY2luZz12YWwgaXNPcHRPcmRlcj12YWwgaXNBbHRMYXllcj12YWwgaXNQZmZHcm91cD12YWwgPiAjCi0jICAgICAgICAgPE5ldCBuYW1lPSJuZXRfbmFtZSIgLz4gLi4uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMKLSMgICAgIDwvTmV0R3JvdXA+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIwotIyAgICAgPFBhcnRpdGlvbiBuYW1lPSJwdG5fbmFtZSIgIGhpbnN0PSJuYW1lIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAjCi0jICAgICAgICAgY29yZVRvTGVmdD1mdmFsIGNvcmVUb1JpZ2h0PWZ2YWwgY29yZVRvVG9wPWZ2YWwgY29yZVRvQm90dG9tPWZ2YWwgICAjCi0jICAgICAgICAgcGluU3BhY2luZ05vcnRoPXZhbCBwaW5TcGFjaW5nV2VzdD12YWwgcGluU3BhY2luZ1NvdXRoPXZhbCAgICAgICMKLSMgICAgICAgICBwaW5TcGFjaW5nRWFzdD12YWwgIGJsb2NrZWRMYXllcnM9eHZhbCA+ICAgICAgICMKLSMgICAgICAgICA8VHJhY2tIYWxmUGl0Y2ggSG9yaXpvbnRhbD12YWwgVmVydGljYWw9dmFsIC8+ICAgICAgICAgICAgICAgICAgIwotIyAgICAgICAgIDxTcGFjaW5nSGFsbyBsZWZ0PTEwLjAgcmlnaHQ9MTEuMCB0b3A9MTEuMCBib3R0b209MTEuMCAvPiAgICAgICAjCi0jICAgICAgICAgPENsb25lIGhpbnN0PSJoaW5zdF9uYW1lIiBvcmllbnQ9UjB8UjkwfC4uLiAvPiAgICAgICAgICAgICAgICAgICMKLSMgICAgICAgICA8UGluTGF5ZXIgc2lkZT0iTnxXfFN8RSIgTWV0YWwxPXllcyBNZXRhbDI9eWVzIC4uLiAvPiAgICAgICAgICAgIwotIyAgICAgICAgIDxSb3dTaXplIGNlbGxIZWlnaHQ9MS4wIHJhaWxXaWR0aD0xLjAgLz4gICAgICAgICAgICAgICAgICAgICAgICAjCi0jICAgICAgICAgPFJvdXRpbmdIYWxvIHNpZGVTaXplPTExLjAgYm90dG9tTGF5ZXI9TTEgdG9wTGF5ZXI9TTIgIC8+ICAgICAgICMKLSMgICAgICAgICA8U3BhY2luZ0hhbG8gbGVmdD0xMS4wIHJpZ2h0PTExLjAgdG9wPTExLjAgYm90dG9tPTExLjAgLz4gICAgICAgIwotIyAgICAgPC9QYXJ0aXRpb24+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjCi0jICAgICA8Q2VsbFBpbkdyb3VwIG5hbWU9Imdyb3VwX25hbWUiIGNlbGw9ImNlbGxfbmFtZSIgICAgICAgICAgICAgICAgICAgICMKLSMgICAgICAgICAgICAgICAgICAgICAgIHBpbnM9bnIgc3BhY2luZz12YWwgaXNPcHRPcmRlcj0xIGlzQWx0TGF5ZXI9MSA+ICAgIwotIyAgICAgICAgIDxHcm91cEZUZXJtIG5hbWU9InRlcm1fbmFtZSIgLz4gLi4uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjCi0jICAgICA8L0NlbGxQaW5Hcm91cD4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMKLSMgICAgIDxQYXJ0aXRpb25QaW5CbG9ja2FnZSBsYXllck1hcD14IGxseD0xIGxseT0yIHVyeD0zIHVyeT00IG5hbWU9Im4iIC8+IwotIyAgICAgPFBpbkd1aWRlIG5hbWU9Im5hbWUiIGJveGVzPW51bSBjZWxsPSJuYW1lIiA+ICAgICAgICAgICAgICAgICAgICAgICAjCi0jICAgICAgICA8Qm94IGxseD0xMS4wIGxseT0yMi4wIHVyeD0zMy4wIHVyeT00NC4wIGxheWVyPWlkIC8+IC4uLiAgICAgICAgICMKLSMgICAgIDwvUGluR3VpZGU+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIwotIyAgICAgPENlbGxQdG5DdXQgbmFtZT0ibmFtZSIgY3V0cz1OdW0gPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjCi0jICAgICAgICA8Qm94IGxseD0xMS4wIGxseT0yMi4wIHVyeD0zMy4wIHVyeT00NC4wIC8+IC4uLiAgICAgICAgICAgICAgICAgICMKLSMgICAgIDwvQ2VsbFB0bkN1dD4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIwotIyAgPC9IaWVyYXJjaGljYWxQYXJ0aXRpb25zPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLTxIaWVyYXJjaGljYWxQYXJ0aXRpb25zPgotICAgIDxQYXJ0aXRpb24gbmFtZT0idGRzcF9jb3JlIiBoaW5zdD0iIiBjb3JlVG9MZWZ0PTAuMDAwMCBjb3JlVG9SaWdodD0wLjAwMDAgY29yZVRvVG9wPTAuMDAwMCBjb3JlVG9Cb3R0b209MC4wMDAwIHBpblNwYWNpbmdOb3J0aD0yIHBpblNwYWNpbmdXZXN0PTIgcGluU3BhY2luZ1NvdXRoPTIgcGluU3BhY2luZ0Vhc3Q9MiBibG9ja2VkTGF5ZXJzPTB4MWZmID4KLQk8UGluTGF5ZXIgc2lkZT0iTiIgTWV0YWwyPXllcyBNZXRhbDQ9eWVzIE1ldGFsNj15ZXMgLz4KLQk8UGluTGF5ZXIgc2lkZT0iVyIgTWV0YWwzPXllcyBNZXRhbDU9eWVzIC8+Ci0JPFBpbkxheWVyIHNpZGU9IlMiIE1ldGFsMj15ZXMgTWV0YWw0PXllcyBNZXRhbDY9eWVzIC8+Ci0JPFBpbkxheWVyIHNpZGU9IkUiIE1ldGFsMz15ZXMgTWV0YWw1PXllcyAvPgotCTxSb3dTaXplIGNlbGxIZWlnaHQ9MS43MTAwIHJhaWxXaWR0aD0wLjAwMDAgLz4KLSAgICA8L1BhcnRpdGlvbj4KLTwvSGllcmFyY2hpY2FsUGFydGl0aW9ucz4KLQotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0jICBJbnN0YW5jZTogPG5hbWU+IDxvcmllbnQ+IDxsbHg+IDxsbHk+ICAgICAgICAgICAgICMKLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotIyAgQmxvY2s6IDxuYW1lPiA8b3JpZW50PiBbPGxseD4gPGxseT5dICAgICAgICAgICAgICAgICAgICAgICAgICMKLSMgICAgICAgICBbPGhhbG9MZWZ0TWFyZ2luPiAgPGhhbG9Cb3R0b21NYXJnaW4+ICAgICAgICAgICAgICAgICAjCi0jICAgICAgICAgIDxoYWxvUmlnaHRNYXJnaW4+IDxoYWxvVG9wTWFyZ2luPiA8aGFsb0Zyb21JbnN0Qm94Pl0gIwotIyAgICAgICAgIFs8SXNJbnN0RGVmQ292ZXJlZD4gPElzSW5zdFByZXBsYWNlZD5dICAgICAgICAgICAgICAgICMKLSMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjCi0jICBCbG9jayB3aXRoIElOVF9NQVggbG9jIGlzIGZvciByZWNvcmRpbmcgdGhlIGhhbG8gYmxvY2sgd2l0aCAgIwotIyAgbm9uLXByZVBsYWNlZCBzdGF0dXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMKLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0KLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotIyAgQmxvY2tMYXllck9ic3RydWN0OiA8bmFtZT4gPGxheWVyWD4gLi4uICAgICAgICAgICAjCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLQotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0jICBGZWVkdGhyb3VnaEJ1ZmZlcjogPGluc3ROYW1lPiAgICAgICAgICAgICAgICAgICAgICMKLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotIyAgPFBsYWNlbWVudEJsb2NrYWdlcz4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMKLSMgICAgIDxCbG9ja2FnZSBuYW1lPSJibGtfbmFtZSIgdHlwZT0iaGFyZHxzb2Z0fHBhcnRpYWwiPiAgICAgICAjCi0jICAgICAgIDxBdHRyIGRlbnNpdHk9MS4yIGluc3Q9Imluc3RfbmFtZSIgcHVzaGRvd249eWVzIC8+ICAgICAgIwotIyAgICAgICA8Qm94IGxseD0xIGxseT0yIHVyeD0zIHVyeT00IC8+IC4uLiAgICAgICAgICAgICAgICAgICAgICMKLSMgICAgIDwvQmxvY2thZ2U+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjCi0jICA8L1BsYWNlbWVudEJsb2NrYWdlcz4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIwotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLQotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0jICA8Um91dGVCbG9ja2FnZXM+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMKLSMgICAgIDxCbG9ja2FnZSBuYW1lPSJibGtfbmFtZSIgdHlwZT0iVXNlcnxSb3V0ZUd1aWRlfFB0bkN1dHxXaWRlV2lyZSI+ICAgIwotIyAgICAgICA8QXR0ciBzcGFjaW5nPTEuMiBkcnc9MS4yIGluc3Q9Im5hbWUiIHB1c2hkb3duPXllcyBmaWxscz15ZXMgLz4gICAjCi0jICAgICAgIDxMYXllciB0eXBlPSJyb3V0ZXxjdXR8bWFzdGVyc2xpY2UiIGlkPWxheWVyTm8gLz4gICAgICAgICAgICAgICAgICMKLSMgICAgICAgPEJveCBsbHg9MSBsbHk9MiB1cng9MyB1cnk9NCAvPiAuLi4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIwotIyAgICAgICA8UG9seSBwb2ludHM9bnIgeDA9MSB5MD0xIHgxPTIgeTI9MiAuLi4gIC8+ICAgICAgICAgICAgICAgICAgICAgICAjCi0jICAgICA8L0Jsb2NrYWdlPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMKLSMgIDwvUm91dGVCbG9ja2FnZXM+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIwotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0KLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotIyAgUHJlcm91dGVBc09ic3RydWN0OiA8bGF5ZXJfdHJlYXRlZF9hc19vYnN0cnVjdD4gICAjCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLVByZXJvdXRlQXNPYnN0cnVjdDogMHgzCi0KLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotIyAgTmV0V2VpZ2h0OiA8bmV0X25hbWU+IDx3ZWlnaHQgKGluIGludGVnZXIpPiAgICAgICAjCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLQotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSMgIFNwckZpbGU6IDxmaWxlX25hbWU+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotU3ByRmlsZTogdGRzcF9jb3JlLmZwLnNwcgotCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotIyAgPElPUGlucz4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMKLSMgICAgPFBpbiBuYW1lPSJwaW5fbmFtZSIgdHlwZT0iY2xvY2t8cG93ZXJ8Z3JvdW5kfGFuYWxvZyIgICAgICAgICAgICAgICAjCi0jICAgICAgICAgc3RhdHVzPSJjb3ZlcmVkfGZpeGVkfHBsYWNlZCIgaXNfc3BlY2lhbD0xID4gICAgICAgICAgICAgICAgICAgIwotIyAgICAgIDxQb3J0PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMKLSMgICAgICAgIDxQcmVmIHg9MSB5PTIgc2lkZT0iTnxTfFd8RXxVfEQiIHdpZHRoPXcgZGVwdGg9ZCAvPiAgICAgICAgICAgICAjCi0jICAgICAgICA8VmlhIG5hbWU9InZpYV9uYW1lIiB4PTEgeT0yIC8+IC4uLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIwotIyAgICAgICAgPExheWVyIGlkPWlkIHNwYWNpbmc9MS4yIGRydz0xLjI+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMKLSMgICAgICAgICAgPEJveCBsbHg9MSBsbHk9MiB1cng9MyB1cnk9NCAvPiAuLi4gICAgICAgICAgICAgICAgICAgICAgICAgICAjCi0jICAgICAgICAgIDxQb2x5IHBvaW50cz1uciB4MD0xIHkwPTEgeDE9MiB5Mj0yIC4uLiAgICAgICAgICAgLz4gICAgICAgICAgIwotIyAgICAgICAgPC9MYXllcj4gLi4uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMKLSMgICAgICA8L1BvcnQ+ICAuLi4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjCi0jICAgICAgPEFudGVubmEgbW9kZWw9bnVtIHR5cGU9Im5hbWUiIHZhbHVlPWZsb2F0X251bSBsYXllcj1udW0gLz4gLi4uICAgIwotIyAgICA8L1Bpbj4gLi4uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMKLSMgIDwvSU9QaW5zPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCi08SU9QaW5zPgotICA8UGluIG5hbWU9ImNsayIgc3RhdHVzPSJmaXhlZCIgPgotICAgIDxQb3J0PgotICAgICAgPFByZWYgeD0wLjAwMDAgeT0xMDguNzc1MCBzaWRlPVcgd2lkdGg9MC4wNzAwIGRlcHRoPTAuMjkwMCAvPgotICAgICAgPExheWVyIGlkPTMgPgotICAgICAgICA8Qm94IGxseD0wLjAwMDAgbGx5PTEwOC43NDAwIHVyeD0wLjI5MDAgdXJ5PTEwOC44MTAwIC8+Ci0gICAgICA8L0xheWVyPgotICAgIDwvUG9ydD4KLSAgPC9QaW4+Ci0gIDxQaW4gbmFtZT0icmVzZXQiIHN0YXR1cz0iZml4ZWQiID4KLSAgICA8UG9ydD4KLSAgICAgIDxQcmVmIHg9MTQuNzAwMCB5PTAuMDAwMCBzaWRlPVMgd2lkdGg9MC4wNzAwIGRlcHRoPTAuMjkwMCAvPgotICAgICAgPExheWVyIGlkPTIgPgotICAgICAgICA8Qm94IGxseD0xNC42NjUwIGxseT0wLjAwMDAgdXJ4PTE0LjczNTAgdXJ5PTAuMjkwMCAvPgotICAgICAgPC9MYXllcj4KLSAgICA8L1BvcnQ+Ci0gIDwvUGluPgotICA8UGluIG5hbWU9ImFzIiBzdGF0dXM9ImZpeGVkIiA+Ci0gICAgPFBvcnQ+Ci0gICAgICA8UHJlZiB4PTAuMDAwMCB5PTEzMi41MjUwIHNpZGU9VyB3aWR0aD0wLjA3MDAgZGVwdGg9MC4yOTAwIC8+Ci0gICAgICA8TGF5ZXIgaWQ9MyA+Ci0gICAgICAgIDxCb3ggbGx4PTAuMDAwMCBsbHk9MTMyLjQ5MDAgdXJ4PTAuMjkwMCB1cnk9MTMyLjU2MDAgLz4KLSAgICAgIDwvTGF5ZXI+Ci0gICAgPC9Qb3J0PgotICA8L1Bpbj4KLSAgPFBpbiBuYW1lPSJyZWFkIiBzdGF0dXM9ImZpeGVkIiA+Ci0gICAgPFBvcnQ+Ci0gICAgICA8UHJlZiB4PTAuMDAwMCB5PTEzMC44MTUwIHNpZGU9VyB3aWR0aD0wLjA3MDAgZGVwdGg9MC4yOTAwIC8+Ci0gICAgICA8TGF5ZXIgaWQ9MyA+Ci0gICAgICAgIDxCb3ggbGx4PTAuMDAwMCBsbHk9MTMwLjc4MDAgdXJ4PTAuMjkwMCB1cnk9MTMwLjg1MDAgLz4KLSAgICAgIDwvTGF5ZXI+Ci0gICAgPC9Qb3J0PgotICA8L1Bpbj4KLSAgPFBpbiBuYW1lPSJ3cml0ZSIgc3RhdHVzPSJmaXhlZCIgPgotICAgIDxQb3J0PgotICAgICAgPFByZWYgeD0wLjAwMDAgeT0xMjcuMzk1MCBzaWRlPVcgd2lkdGg9MC4wNzAwIGRlcHRoPTAuMjkwMCAvPgotICAgICAgPExheWVyIGlkPTMgPgotICAgICAgICA8Qm94IGxseD0wLjAwMDAgbGx5PTEyNy4zNjAwIHVyeD0wLjI5MDAgdXJ5PTEyNy40MzAwIC8+Ci0gICAgICA8L0xheWVyPgotICAgIDwvUG9ydD4KLSAgPC9QaW4+Ci0gIDxQaW4gbmFtZT0id3JpdGVfaCIgc3RhdHVzPSJmaXhlZCIgPgotICAgIDxQb3J0PgotICAgICAgPFByZWYgeD0wLjAwMDAgeT03Ny4wNDUwIHNpZGU9VyB3aWR0aD0wLjA3MDAgZGVwdGg9MC4yOTAwIC8+Ci0gICAgICA8TGF5ZXIgaWQ9MyA+Ci0gICAgICAgIDxCb3ggbGx4PTAuMDAwMCBsbHk9NzcuMDEwMCB1cng9MC4yOTAwIHVyeT03Ny4wODAwIC8+Ci0gICAgICA8L0xheWVyPgotICAgIDwvUG9ydD4KLSAgPC9QaW4+Ci0gIDxQaW4gbmFtZT0iYWRkcmVzc1s3XSIgc3RhdHVzPSJmaXhlZCIgPgotICAgIDxQb3J0PgotICAgICAgPFByZWYgeD0wLjAwMDAgeT0xMTEuODE1MCBzaWRlPVcgd2lkdGg9MC4wNzAwIGRlcHRoPTAuMjkwMCAvPgotICAgICAgPExheWVyIGlkPTMgPgotICAgICAgICA8Qm94IGxseD0wLjAwMDAgbGx5PTExMS43ODAwIHVyeD0wLjI5MDAgdXJ5PTExMS44NTAwIC8+Ci0gICAgICA8L0xheWVyPgotICAgIDwvUG9ydD4KLSAgPC9QaW4+Ci0gIDxQaW4gbmFtZT0iYWRkcmVzc1s2XSIgc3RhdHVzPSJmaXhlZCIgPgotICAgIDxQb3J0PgotICAgICAgPFByZWYgeD0wLjAwMDAgeT0xMDcuMDY1MCBzaWRlPVcgd2lkdGg9MC4wNzAwIGRlcHRoPTAuMjkwMCAvPgotICAgICAgPExheWVyIGlkPTMgPgotICAgICAgICA8Qm94IGxseD0wLjAwMDAgbGx5PTEwNy4wMzAwIHVyeD0wLjI5MDAgdXJ5PTEwNy4xMDAwIC8+Ci0gICAgICA8L0xheWVyPgotICAgIDwvUG9ydD4KLSAgPC9QaW4+Ci0gIDxQaW4gbmFtZT0iYWRkcmVzc1s1XSIgc3RhdHVzPSJmaXhlZCIgPgotICAgIDxQb3J0PgotICAgICAgPFByZWYgeD0wLjAwMDAgeT0xMDQuMjE1MCBzaWRlPVcgd2lkdGg9MC4wNzAwIGRlcHRoPTAuMjkwMCAvPgotICAgICAgPExheWVyIGlkPTMgPgotICAgICAgICA8Qm94IGxseD0wLjAwMDAgbGx5PTEwNC4xODAwIHVyeD0wLjI5MDAgdXJ5PTEwNC4yNTAwIC8+Ci0gICAgICA8L0xheWVyPgotICAgIDwvUG9ydD4KLSAgPC9QaW4+Ci0gIDxQaW4gbmFtZT0iYWRkcmVzc1s0XSIgc3RhdHVzPSJmaXhlZCIgPgotICAgIDxQb3J0PgotICAgICAgPFByZWYgeD0wLjAwMDAgeT0xMTEuODE1MCBzaWRlPVcgd2lkdGg9MC4wNzAwIGRlcHRoPTAuMjkwMCAvPgotICAgICAgPExheWVyIGlkPTUgPgotICAgICAgICA8Qm94IGxseD0wLjAwMDAgbGx5PTExMS43ODAwIHVyeD0wLjI5MDAgdXJ5PTExMS44NTAwIC8+Ci0gICAgICA8L0xheWVyPgotICAgIDwvUG9ydD4KLSAgPC9QaW4+Ci0gIDxQaW4gbmFtZT0iYWRkcmVzc1szXSIgc3RhdHVzPSJmaXhlZCIgPgotICAgIDxQb3J0PgotICAgICAgPFByZWYgeD0wLjAwMDAgeT0xMTMuOTA1MCBzaWRlPVcgd2lkdGg9MC4wNzAwIGRlcHRoPTAuMjkwMCAvPgotICAgICAgPExheWVyIGlkPTMgPgotICAgICAgICA8Qm94IGxseD0wLjAwMDAgbGx5PTExMy44NzAwIHVyeD0wLjI5MDAgdXJ5PTExMy45NDAwIC8+Ci0gICAgICA8L0xheWVyPgotICAgIDwvUG9ydD4KLSAgPC9QaW4+Ci0gIDxQaW4gbmFtZT0iYWRkcmVzc1syXSIgc3RhdHVzPSJmaXhlZCIgPgotICAgIDxQb3J0PgotICAgICAgPFByZWYgeD0wLjAwMDAgeT0xMTguNjU1MCBzaWRlPVcgd2lkdGg9MC4wNzAwIGRlcHRoPTAuMjkwMCAvPgotICAgICAgPExheWVyIGlkPTUgPgotICAgICAgICA8Qm94IGxseD0wLjAwMDAgbGx5PTExOC42MjAwIHVyeD0wLjI5MDAgdXJ5PTExOC42OTAwIC8+Ci0gICAgICA8L0xheWVyPgotICAgIDwvUG9ydD4KLSAgPC9QaW4+Ci0gIDxQaW4gbmFtZT0iYWRkcmVzc1sxXSIgc3RhdHVzPSJmaXhlZCIgPgotICAgIDxQb3J0PgotICAgICAgPFByZWYgeD0wLjAwMDAgeT0xMTUuMjM1MCBzaWRlPVcgd2lkdGg9MC4wNzAwIGRlcHRoPTAuMjkwMCAvPgotICAgICAgPExheWVyIGlkPTUgPgotICAgICAgICA8Qm94IGxseD0wLjAwMDAgbGx5PTExNS4yMDAwIHVyeD0wLjI5MDAgdXJ5PTExNS4yNzAwIC8+Ci0gICAgICA8L0xheWVyPgotICAgIDwvUG9ydD4KLSAgPC9QaW4+Ci0gIDxQaW4gbmFtZT0iYWRkcmVzc1swXSIgc3RhdHVzPSJmaXhlZCIgPgotICAgIDxQb3J0PgotICAgICAgPFByZWYgeD0wLjAwMDAgeT0xMjAuNzQ1MCBzaWRlPVcgd2lkdGg9MC4wNzAwIGRlcHRoPTAuMjkwMCAvPgotICAgICAgPExheWVyIGlkPTMgPgotICAgICAgICA8Qm94IGxseD0wLjAwMDAgbGx5PTEyMC43MTAwIHVyeD0wLjI5MDAgdXJ5PTEyMC43ODAwIC8+Ci0gICAgICA8L0xheWVyPgotICAgIDwvUG9ydD4KLSAgPC9QaW4+Ci0gIDxQaW4gbmFtZT0idF9kYXRhX2luWzE1XSIgc3RhdHVzPSJmaXhlZCIgPgotICAgIDxQb3J0PgotICAgICAgPFByZWYgeD0wLjAwMDAgeT04MS43OTUwIHNpZGU9VyB3aWR0aD0wLjA3MDAgZGVwdGg9MC4yOTAwIC8+Ci0gICAgICA8TGF5ZXIgaWQ9MyA+Ci0gICAgICAgIDxCb3ggbGx4PTAuMDAwMCBsbHk9ODEuNzYwMCB1cng9MC4yOTAwIHVyeT04MS44MzAwIC8+Ci0gICAgICA8L0xheWVyPgotICAgIDwvUG9ydD4KLSAgPC9QaW4+Ci0gIDxQaW4gbmFtZT0idF9kYXRhX2luWzE0XSIgc3RhdHVzPSJmaXhlZCIgPgotICAgIDxQb3J0PgotICAgICAgPFByZWYgeD0wLjAwMDAgeT03Mi40ODUwIHNpZGU9VyB3aWR0aD0wLjA3MDAgZGVwdGg9MC4yOTAwIC8+Ci0gICAgICA8TGF5ZXIgaWQ9MyA+Ci0gICAgICAgIDxCb3ggbGx4PTAuMDAwMCBsbHk9NzIuNDUwMCB1cng9MC4yOTAwIHVyeT03Mi41MjAwIC8+Ci0gICAgICA8L0xheWVyPgotICAgIDwvUG9ydD4KLSAgPC9QaW4+Ci0gIDxQaW4gbmFtZT0idF9kYXRhX2luWzEzXSIgc3RhdHVzPSJmaXhlZCIgPgotICAgIDxQb3J0PgotICAgICAgPFByZWYgeD0wLjAwMDAgeT04MS43OTUwIHNpZGU9VyB3aWR0aD0wLjA3MDAgZGVwdGg9MC4yOTAwIC8+Ci0gICAgICA8TGF5ZXIgaWQ9NSA+Ci0gICAgICAgIDxCb3ggbGx4PTAuMDAwMCBsbHk9ODEuNzYwMCB1cng9MC4yOTAwIHVyeT04MS44MzAwIC8+Ci0gICAgICA8L0xheWVyPgotICAgIDwvUG9ydD4KLSAgPC9QaW4+Ci0gIDxQaW4gbmFtZT0idF9kYXRhX2luWzEyXSIgc3RhdHVzPSJmaXhlZCIgPgotICAgIDxQb3J0PgotICAgICAgPFByZWYgeD0wLjAwMDAgeT03Mi42NzUwIHNpZGU9VyB3aWR0aD0wLjA3MDAgZGVwdGg9MC4yOTAwIC8+Ci0gICAgICA8TGF5ZXIgaWQ9NSA+Ci0gICAgICAgIDxCb3ggbGx4PTAuMDAwMCBsbHk9NzIuNjQwMCB1cng9MC4yOTAwIHVyeT03Mi43MTAwIC8+Ci0gICAgICA8L0xheWVyPgotICAgIDwvUG9ydD4KLSAgPC9QaW4+Ci0gIDxQaW4gbmFtZT0idF9kYXRhX2luWzExXSIgc3RhdHVzPSJmaXhlZCIgPgotICAgIDxQb3J0PgotICAgICAgPFByZWYgeD0wLjAwMDAgeT02Ni45NzUwIHNpZGU9VyB3aWR0aD0wLjA3MDAgZGVwdGg9MC4yOTAwIC8+Ci0gICAgICA8TGF5ZXIgaWQ9NSA+Ci0gICAgICAgIDxCb3ggbGx4PTAuMDAwMCBsbHk9NjYuOTQwMCB1cng9MC4yOTAwIHVyeT02Ny4wMTAwIC8+Ci0gICAgICA8L0xheWVyPgotICAgIDwvUG9ydD4KLSAgPC9QaW4+Ci0gIDxQaW4gbmFtZT0idF9kYXRhX2luWzEwXSIgc3RhdHVzPSJmaXhlZCIgPgotICAgIDxQb3J0PgotICAgICAgPFByZWYgeD0wLjAwMDAgeT02Ni40MDUwIHNpZGU9VyB3aWR0aD0wLjA3MDAgZGVwdGg9MC4yOTAwIC8+Ci0gICAgICA8TGF5ZXIgaWQ9NSA+Ci0gICAgICAgIDxCb3ggbGx4PTAuMDAwMCBsbHk9NjYuMzcwMCB1cng9MC4yOTAwIHVyeT02Ni40NDAwIC8+Ci0gICAgICA8L0xheWVyPgotICAgIDwvUG9ydD4KLSAgPC9QaW4+Ci0gIDxQaW4gbmFtZT0idF9kYXRhX2luWzldIiBzdGF0dXM9ImZpeGVkIiA+Ci0gICAgPFBvcnQ+Ci0gICAgICA8UHJlZiB4PTAuMDAwMCB5PTczLjA1NTAgc2lkZT1XIHdpZHRoPTAuMDcwMCBkZXB0aD0wLjI5MDAgLz4KLSAgICAgIDxMYXllciBpZD01ID4KLSAgICAgICAgPEJveCBsbHg9MC4wMDAwIGxseT03My4wMjAwIHVyeD0wLjI5MDAgdXJ5PTczLjA5MDAgLz4KLSAgICAgIDwvTGF5ZXI+Ci0gICAgPC9Qb3J0PgotICA8L1Bpbj4KLSAgPFBpbiBuYW1lPSJ0X2RhdGFfaW5bOF0iIHN0YXR1cz0iZml4ZWQiID4KLSAgICA8UG9ydD4KLSAgICAgIDxQcmVmIHg9MC4wMDAwIHk9NzMuNDM1MCBzaWRlPVcgd2lkdGg9MC4wNzAwIGRlcHRoPTAuMjkwMCAvPgotICAgICAgPExheWVyIGlkPTUgPgotICAgICAgICA8Qm94IGxseD0wLjAwMDAgbGx5PTczLjQwMDAgdXJ4PTAuMjkwMCB1cnk9NzMuNDcwMCAvPgotICAgICAgPC9MYXllcj4KLSAgICA8L1BvcnQ+Ci0gIDwvUGluPgotICA8UGluIG5hbWU9InRfZGF0YV9pbls3XSIgc3RhdHVzPSJmaXhlZCIgPgotICAgIDxQb3J0PgotICAgICAgPFByZWYgeD0wLjAwMDAgeT04Mi43NDUwIHNpZGU9VyB3aWR0aD0wLjA3MDAgZGVwdGg9MC4yOTAwIC8+Ci0gICAgICA8TGF5ZXIgaWQ9NSA+Ci0gICAgICAgIDxCb3ggbGx4PTAuMDAwMCBsbHk9ODIuNzEwMCB1cng9MC4yOTAwIHVyeT04Mi43ODAwIC8+Ci0gICAgICA8L0xheWVyPgotICAgIDwvUG9ydD4KLSAgPC9QaW4+Ci0gIDxQaW4gbmFtZT0idF9kYXRhX2luWzZdIiBzdGF0dXM9ImZpeGVkIiA+Ci0gICAgPFBvcnQ+Ci0gICAgICA8UHJlZiB4PTAuMDAwMCB5PTc5LjMyNTAgc2lkZT1XIHdpZHRoPTAuMDcwMCBkZXB0aD0wLjI5MDAgLz4KLSAgICAgIDxMYXllciBpZD0zID4KLSAgICAgICAgPEJveCBsbHg9MC4wMDAwIGxseT03OS4yOTAwIHVyeD0wLjI5MDAgdXJ5PTc5LjM2MDAgLz4KLSAgICAgIDwvTGF5ZXI+Ci0gICAgPC9Qb3J0PgotICA8L1Bpbj4KLSAgPFBpbiBuYW1lPSJ0X2RhdGFfaW5bNV0iIHN0YXR1cz0iZml4ZWQiID4KLSAgICA8UG9ydD4KLSAgICAgIDxQcmVmIHg9MC4wMDAwIHk9ODEuNDE1MCBzaWRlPVcgd2lkdGg9MC4wNzAwIGRlcHRoPTAuMjkwMCAvPgotICAgICAgPExheWVyIGlkPTUgPgotICAgICAgICA8Qm94IGxseD0wLjAwMDAgbGx5PTgxLjM4MDAgdXJ4PTAuMjkwMCB1cnk9ODEuNDUwMCAvPgotICAgICAgPC9MYXllcj4KLSAgICA8L1BvcnQ+Ci0gIDwvUGluPgotICA8UGluIG5hbWU9InRfZGF0YV9pbls0XSIgc3RhdHVzPSJmaXhlZCIgPgotICAgIDxQb3J0PgotICAgICAgPFByZWYgeD0wLjAwMDAgeT04Mi43NDUwIHNpZGU9VyB3aWR0aD0wLjA3MDAgZGVwdGg9MC4yOTAwIC8+Ci0gICAgICA8TGF5ZXIgaWQ9MyA+Ci0gICAgICAgIDxCb3ggbGx4PTAuMDAwMCBsbHk9ODIuNzEwMCB1cng9MC4yOTAwIHVyeT04Mi43ODAwIC8+Ci0gICAgICA8L0xheWVyPgotICAgIDwvUG9ydD4KLSAgPC9QaW4+Ci0gIDxQaW4gbmFtZT0idF9kYXRhX2luWzNdIiBzdGF0dXM9ImZpeGVkIiA+Ci0gICAgPFBvcnQ+Ci0gICAgICA8UHJlZiB4PTAuMDAwMCB5PTczLjQzNTAgc2lkZT1XIHdpZHRoPTAuMDcwMCBkZXB0aD0wLjI5MDAgLz4KLSAgICAgIDxMYXllciBpZD0zID4KLSAgICAgICAgPEJveCBsbHg9MC4wMDAwIGxseT03My40MDAwIHVyeD0wLjI5MDAgdXJ5PTczLjQ3MDAgLz4KLSAgICAgIDwvTGF5ZXI+Ci0gICAgPC9Qb3J0PgotICA8L1Bpbj4KLSAgPFBpbiBuYW1lPSJ0X2RhdGFfaW5bMl0iIHN0YXR1cz0iZml4ZWQiID4KLSAgICA8UG9ydD4KLSAgICAgIDxQcmVmIHg9MC4wMDAwIHk9ODQuODM1MCBzaWRlPVcgd2lkdGg9MC4wNzAwIGRlcHRoPTAuMjkwMCAvPgotICAgICAgPExheWVyIGlkPTMgPgotICAgICAgICA8Qm94IGxseD0wLjAwMDAgbGx5PTg0LjgwMDAgdXJ4PTAuMjkwMCB1cnk9ODQuODcwMCAvPgotICAgICAgPC9MYXllcj4KLSAgICA8L1BvcnQ+Ci0gIDwvUGluPgotICA8UGluIG5hbWU9InRfZGF0YV9pblsxXSIgc3RhdHVzPSJmaXhlZCIgPgotICAgIDxQb3J0PgotICAgICAgPFByZWYgeD0wLjAwMDAgeT03Ny45OTUwIHNpZGU9VyB3aWR0aD0wLjA3MDAgZGVwdGg9MC4yOTAwIC8+Ci0gICAgICA8TGF5ZXIgaWQ9NSA+Ci0gICAgICAgIDxCb3ggbGx4PTAuMDAwMCBsbHk9NzcuOTYwMCB1cng9MC4yOTAwIHVyeT03OC4wMzAwIC8+Ci0gICAgICA8L0xheWVyPgotICAgIDwvUG9ydD4KLSAgPC9QaW4+Ci0gIDxQaW4gbmFtZT0idF9kYXRhX2luWzBdIiBzdGF0dXM9ImZpeGVkIiA+Ci0gICAgPFBvcnQ+Ci0gICAgICA8UHJlZiB4PTAuMDAwMCB5PTgxLjQxNTAgc2lkZT1XIHdpZHRoPTAuMDcwMCBkZXB0aD0wLjI5MDAgLz4KLSAgICAgIDxMYXllciBpZD0zID4KLSAgICAgICAgPEJveCBsbHg9MC4wMDAwIGxseT04MS4zODAwIHVyeD0wLjI5MDAgdXJ5PTgxLjQ1MDAgLz4KLSAgICAgIDwvTGF5ZXI+Ci0gICAgPC9Qb3J0PgotICA8L1Bpbj4KLSAgPFBpbiBuYW1lPSJ0X2RhdGFfb3V0WzE1XSIgc3RhdHVzPSJmaXhlZCIgPgotICAgIDxQb3J0PgotICAgICAgPFByZWYgeD0wLjAwMDAgeT0xMDQuMjE1MCBzaWRlPVcgd2lkdGg9MC4wNzAwIGRlcHRoPTAuMjkwMCAvPgotICAgICAgPExheWVyIGlkPTUgPgotICAgICAgICA8Qm94IGxseD0wLjAwMDAgbGx5PTEwNC4xODAwIHVyeD0wLjI5MDAgdXJ5PTEwNC4yNTAwIC8+Ci0gICAgICA8L0xheWVyPgotICAgIDwvUG9ydD4KLSAgPC9QaW4+Ci0gIDxQaW4gbmFtZT0idF9kYXRhX291dFsxNF0iIHN0YXR1cz0iZml4ZWQiID4KLSAgICA8UG9ydD4KLSAgICAgIDxQcmVmIHg9MC4wMDAwIHk9OTEuMjk1MCBzaWRlPVcgd2lkdGg9MC4wNzAwIGRlcHRoPTAuMjkwMCAvPgotICAgICAgPExheWVyIGlkPTMgPgotICAgICAgICA8Qm94IGxseD0wLjAwMDAgbGx5PTkxLjI2MDAgdXJ4PTAuMjkwMCB1cnk9OTEuMzMwMCAvPgotICAgICAgPC9MYXllcj4KLSAgICA8L1BvcnQ+Ci0gIDwvUGluPgotICA8UGluIG5hbWU9InRfZGF0YV9vdXRbMTNdIiBzdGF0dXM9ImZpeGVkIiA+Ci0gICAgPFBvcnQ+Ci0gICAgICA8UHJlZiB4PTAuMDAwMCB5PTgxLjAzNTAgc2lkZT1XIHdpZHRoPTAuMDcwMCBkZXB0aD0wLjI5MDAgLz4KLSAgICAgIDxMYXllciBpZD01ID4KLSAgICAgICAgPEJveCBsbHg9MC4wMDAwIGxseT04MS4wMDAwIHVyeD0wLjI5MDAgdXJ5PTgxLjA3MDAgLz4KLSAgICAgIDwvTGF5ZXI+Ci0gICAgPC9Qb3J0PgotICA8L1Bpbj4KLSAgPFBpbiBuYW1lPSJ0X2RhdGFfb3V0WzEyXSIgc3RhdHVzPSJmaXhlZCIgPgotICAgIDxQb3J0PgotICAgICAgPFByZWYgeD0wLjAwMDAgeT03OS43MDUwIHNpZGU9VyB3aWR0aD0wLjA3MDAgZGVwdGg9MC4yOTAwIC8+Ci0gICAgICA8TGF5ZXIgaWQ9NSA+Ci0gICAgICAgIDxCb3ggbGx4PTAuMDAwMCBsbHk9NzkuNjcwMCB1cng9MC4yOTAwIHVyeT03OS43NDAwIC8+Ci0gICAgICA8L0xheWVyPgotICAgIDwvUG9ydD4KLSAgPC9QaW4+Ci0gIDxQaW4gbmFtZT0idF9kYXRhX291dFsxMV0iIHN0YXR1cz0iZml4ZWQiID4KLSAgICA8UG9ydD4KLSAgICAgIDxQcmVmIHg9MC4wMDAwIHk9ODcuODc1MCBzaWRlPVcgd2lkdGg9MC4wNzAwIGRlcHRoPTAuMjkwMCAvPgotICAgICAgPExheWVyIGlkPTMgPgotICAgICAgICA8Qm94IGxseD0wLjAwMDAgbGx5PTg3Ljg0MDAgdXJ4PTAuMjkwMCB1cnk9ODcuOTEwMCAvPgotICAgICAgPC9MYXllcj4KLSAgICA8L1BvcnQ+Ci0gIDwvUGluPgotICA8UGluIG5hbWU9InRfZGF0YV9vdXRbMTBdIiBzdGF0dXM9ImZpeGVkIiA+Ci0gICAgPFBvcnQ+Ci0gICAgICA8UHJlZiB4PTAuMDAwMCB5PTg2LjU0NTAgc2lkZT1XIHdpZHRoPTAuMDcwMCBkZXB0aD0wLjI5MDAgLz4KLSAgICAgIDxMYXllciBpZD0zID4KLSAgICAgICAgPEJveCBsbHg9MC4wMDAwIGxseT04Ni41MTAwIHVyeD0wLjI5MDAgdXJ5PTg2LjU4MDAgLz4KLSAgICAgIDwvTGF5ZXI+Ci0gICAgPC9Qb3J0PgotICA8L1Bpbj4KLSAgPFBpbiBuYW1lPSJ0X2RhdGFfb3V0WzldIiBzdGF0dXM9ImZpeGVkIiA+Ci0gICAgPFBvcnQ+Ci0gICAgICA8UHJlZiB4PTAuMDAwMCB5PTgzLjEyNTAgc2lkZT1XIHdpZHRoPTAuMDcwMCBkZXB0aD0wLjI5MDAgLz4KLSAgICAgIDxMYXllciBpZD01ID4KLSAgICAgICAgPEJveCBsbHg9MC4wMDAwIGxseT04My4wOTAwIHVyeD0wLjI5MDAgdXJ5PTgzLjE2MDAgLz4KLSAgICAgIDwvTGF5ZXI+Ci0gICAgPC9Qb3J0PgotICA8L1Bpbj4KLSAgPFBpbiBuYW1lPSJ0X2RhdGFfb3V0WzhdIiBzdGF0dXM9ImZpeGVkIiA+Ci0gICAgPFBvcnQ+Ci0gICAgICA8UHJlZiB4PTAuMDAwMCB5PTgzLjEyNTAgc2lkZT1XIHdpZHRoPTAuMDcwMCBkZXB0aD0wLjI5MDAgLz4KLSAgICAgIDxMYXllciBpZD0zID4KLSAgICAgICAgPEJveCBsbHg9MC4wMDAwIGxseT04My4wOTAwIHVyeD0wLjI5MDAgdXJ5PTgzLjE2MDAgLz4KLSAgICAgIDwvTGF5ZXI+Ci0gICAgPC9Qb3J0PgotICA8L1Bpbj4KLSAgPFBpbiBuYW1lPSJ0X2RhdGFfb3V0WzddIiBzdGF0dXM9ImZpeGVkIiA+Ci0gICAgPFBvcnQ+Ci0gICAgICA8UHJlZiB4PTAuMDAwMCB5PTEwMy42NDUwIHNpZGU9VyB3aWR0aD0wLjA3MDAgZGVwdGg9MC4yOTAwIC8+Ci0gICAgICA8TGF5ZXIgaWQ9MyA+Ci0gICAgICAgIDxCb3ggbGx4PTAuMDAwMCBsbHk9MTAzLjYxMDAgdXJ4PTAuMjkwMCB1cnk9MTAzLjY4MDAgLz4KLSAgICAgIDwvTGF5ZXI+Ci0gICAgPC9Qb3J0PgotICA8L1Bpbj4KLSAgPFBpbiBuYW1lPSJ0X2RhdGFfb3V0WzZdIiBzdGF0dXM9ImZpeGVkIiA+Ci0gICAgPFBvcnQ+Ci0gICAgICA8UHJlZiB4PTAuMDAwMCB5PTExMC40ODUwIHNpZGU9VyB3aWR0aD0wLjA3MDAgZGVwdGg9MC4yOTAwIC8+Ci0gICAgICA8TGF5ZXIgaWQ9MyA+Ci0gICAgICAgIDxCb3ggbGx4PTAuMDAwMCBsbHk9MTEwLjQ1MDAgdXJ4PTAuMjkwMCB1cnk9MTEwLjUyMDAgLz4KLSAgICAgIDwvTGF5ZXI+Ci0gICAgPC9Qb3J0PgotICA8L1Bpbj4KLSAgPFBpbiBuYW1lPSJ0X2RhdGFfb3V0WzVdIiBzdGF0dXM9ImZpeGVkIiA+Ci0gICAgPFBvcnQ+Ci0gICAgICA8UHJlZiB4PTAuMDAwMCB5PTEwNy4wNjUwIHNpZGU9VyB3aWR0aD0wLjA3MDAgZGVwdGg9MC4yOTAwIC8+Ci0gICAgICA8TGF5ZXIgaWQ9NSA+Ci0gICAgICAgIDxCb3ggbGx4PTAuMDAwMCBsbHk9MTA3LjAzMDAgdXJ4PTAuMjkwMCB1cnk9MTA3LjEwMDAgLz4KLSAgICAgIDwvTGF5ZXI+Ci0gICAgPC9Qb3J0PgotICA8L1Bpbj4KLSAgPFBpbiBuYW1lPSJ0X2RhdGFfb3V0WzRdIiBzdGF0dXM9ImZpeGVkIiA+Ci0gICAgPFBvcnQ+Ci0gICAgICA8UHJlZiB4PTUyLjMwMDAgeT0xNTMuOTAwMCBzaWRlPU4gd2lkdGg9MC4wNzAwIGRlcHRoPTAuMjkwMCAvPgotICAgICAgPExheWVyIGlkPTIgPgotICAgICAgICA8Qm94IGxseD01Mi4yNjUwIGxseT0xNTMuNjEwMCB1cng9NTIuMzM1MCB1cnk9MTUzLjkwMDAgLz4KLSAgICAgIDwvTGF5ZXI+Ci0gICAgPC9Qb3J0PgotICA8L1Bpbj4KLSAgPFBpbiBuYW1lPSJ0X2RhdGFfb3V0WzNdIiBzdGF0dXM9ImZpeGVkIiA+Ci0gICAgPFBvcnQ+Ci0gICAgICA8UHJlZiB4PTQ0LjEwMDAgeT0xNTMuOTAwMCBzaWRlPU4gd2lkdGg9MC4wNzAwIGRlcHRoPTAuMjkwMCAvPgotICAgICAgPExheWVyIGlkPTIgPgotICAgICAgICA8Qm94IGxseD00NC4wNjUwIGxseT0xNTMuNjEwMCB1cng9NDQuMTM1MCB1cnk9MTUzLjkwMDAgLz4KLSAgICAgIDwvTGF5ZXI+Ci0gICAgPC9Qb3J0PgotICA8L1Bpbj4KLSAgPFBpbiBuYW1lPSJ0X2RhdGFfb3V0WzJdIiBzdGF0dXM9ImZpeGVkIiA+Ci0gICAgPFBvcnQ+Ci0gICAgICA8UHJlZiB4PTAuMDAwMCB5PTExMy45MDUwIHNpZGU9VyB3aWR0aD0wLjA3MDAgZGVwdGg9MC4yOTAwIC8+Ci0gICAgICA8TGF5ZXIgaWQ9NSA+Ci0gICAgICAgIDxCb3ggbGx4PTAuMDAwMCBsbHk9MTEzLjg3MDAgdXJ4PTAuMjkwMCB1cnk9MTEzLjk0MDAgLz4KLSAgICAgIDwvTGF5ZXI+Ci0gICAgPC9Qb3J0PgotICA8L1Bpbj4KLSAgPFBpbiBuYW1lPSJ0X2RhdGFfb3V0WzFdIiBzdGF0dXM9ImZpeGVkIiA+Ci0gICAgPFBvcnQ+Ci0gICAgICA8UHJlZiB4PTAuMDAwMCB5PTEyMi4wNzUwIHNpZGU9VyB3aWR0aD0wLjA3MDAgZGVwdGg9MC4yOTAwIC8+Ci0gICAgICA8TGF5ZXIgaWQ9MyA+Ci0gICAgICAgIDxCb3ggbGx4PTAuMDAwMCBsbHk9MTIyLjA0MDAgdXJ4PTAuMjkwMCB1cnk9MTIyLjExMDAgLz4KLSAgICAgIDwvTGF5ZXI+Ci0gICAgPC9Qb3J0PgotICA8L1Bpbj4KLSAgPFBpbiBuYW1lPSJ0X2RhdGFfb3V0WzBdIiBzdGF0dXM9ImZpeGVkIiA+Ci0gICAgPFBvcnQ+Ci0gICAgICA8UHJlZiB4PTAuMDAwMCB5PTExNy4zMjUwIHNpZGU9VyB3aWR0aD0wLjA3MDAgZGVwdGg9MC4yOTAwIC8+Ci0gICAgICA8TGF5ZXIgaWQ9MyA+Ci0gICAgICAgIDxCb3ggbGx4PTAuMDAwMCBsbHk9MTE3LjI5MDAgdXJ4PTAuMjkwMCB1cnk9MTE3LjM2MDAgLz4KLSAgICAgIDwvTGF5ZXI+Ci0gICAgPC9Qb3J0PgotICA8L1Bpbj4KLSAgPFBpbiBuYW1lPSJwX2FzIiBzdGF0dXM9ImZpeGVkIiA+Ci0gICAgPFBvcnQ+Ci0gICAgICA8UHJlZiB4PTAuMDAwMCB5PTc3LjA0NTAgc2lkZT1XIHdpZHRoPTAuMDcwMCBkZXB0aD0wLjI5MDAgLz4KLSAgICAgIDxMYXllciBpZD01ID4KLSAgICAgICAgPEJveCBsbHg9MC4wMDAwIGxseT03Ny4wMTAwIHVyeD0wLjI5MDAgdXJ5PTc3LjA4MDAgLz4KLSAgICAgIDwvTGF5ZXI+Ci0gICAgPC9Qb3J0PgotICA8L1Bpbj4KLSAgPFBpbiBuYW1lPSJwX3JlYWQiIHN0YXR1cz0iZml4ZWQiID4KLSAgICA8UG9ydD4KLSAgICAgIDxQcmVmIHg9MC4wMDAwIHk9NzYuNjY1MCBzaWRlPVcgd2lkdGg9MC4wNzAwIGRlcHRoPTAuMjkwMCAvPgotICAgICAgPExheWVyIGlkPTMgPgotICAgICAgICA8Qm94IGxseD0wLjAwMDAgbGx5PTc2LjYzMDAgdXJ4PTAuMjkwMCB1cnk9NzYuNzAwMCAvPgotICAgICAgPC9MYXllcj4KLSAgICA8L1BvcnQ+Ci0gIDwvUGluPgotICA8UGluIG5hbWU9InBfd3JpdGUiIHN0YXR1cz0iZml4ZWQiID4KLSAgICA8UG9ydD4KLSAgICAgIDxQcmVmIHg9MC4wMDAwIHk9NzYuNjY1MCBzaWRlPVcgd2lkdGg9MC4wNzAwIGRlcHRoPTAuMjkwMCAvPgotICAgICAgPExheWVyIGlkPTUgPgotICAgICAgICA8Qm94IGxseD0wLjAwMDAgbGx5PTc2LjYzMDAgdXJ4PTAuMjkwMCB1cnk9NzYuNzAwMCAvPgotICAgICAgPC9MYXllcj4KLSAgICA8L1BvcnQ+Ci0gIDwvUGluPgotICA8UGluIG5hbWU9InBfd3JpdGVfaCIgc3RhdHVzPSJmaXhlZCIgPgotICAgIDxQb3J0PgotICAgICAgPFByZWYgeD0wLjAwMDAgeT03Ni4yODUwIHNpZGU9VyB3aWR0aD0wLjA3MDAgZGVwdGg9MC4yOTAwIC8+Ci0gICAgICA8TGF5ZXIgaWQ9NSA+Ci0gICAgICAgIDxCb3ggbGx4PTAuMDAwMCBsbHk9NzYuMjUwMCB1cng9MC4yOTAwIHVyeT03Ni4zMjAwIC8+Ci0gICAgICA8L0xheWVyPgotICAgIDwvUG9ydD4KLSAgPC9QaW4+Ci0gIDxQaW4gbmFtZT0icF9hZGRyZXNzWzhdIiBzdGF0dXM9ImZpeGVkIiA+Ci0gICAgPFBvcnQ+Ci0gICAgICA8UHJlZiB4PTU5LjcwMDAgeT0xNTMuOTAwMCBzaWRlPU4gd2lkdGg9MC4wNzAwIGRlcHRoPTAuMjkwMCAvPgotICAgICAgPExheWVyIGlkPTIgPgotICAgICAgICA8Qm94IGxseD01OS42NjUwIGxseT0xNTMuNjEwMCB1cng9NTkuNzM1MCB1cnk9MTUzLjkwMDAgLz4KLSAgICAgIDwvTGF5ZXI+Ci0gICAgPC9Qb3J0PgotICA8L1Bpbj4KLSAgPFBpbiBuYW1lPSJwX2FkZHJlc3NbN10iIHN0YXR1cz0iZml4ZWQiID4KLSAgICA8UG9ydD4KLSAgICAgIDxQcmVmIHg9NjIuMTAwMCB5PTE1My45MDAwIHNpZGU9TiB3aWR0aD0wLjA3MDAgZGVwdGg9MC4yOTAwIC8+Ci0gICAgICA8TGF5ZXIgaWQ9MiA+Ci0gICAgICAgIDxCb3ggbGx4PTYyLjA2NTAgbGx5PTE1My42MTAwIHVyeD02Mi4xMzUwIHVyeT0xNTMuOTAwMCAvPgotICAgICAgPC9MYXllcj4KLSAgICA8L1BvcnQ+Ci0gIDwvUGluPgotICA8UGluIG5hbWU9InBfYWRkcmVzc1s2XSIgc3RhdHVzPSJmaXhlZCIgPgotICAgIDxQb3J0PgotICAgICAgPFByZWYgeD02MC4xMDAwIHk9MTUzLjkwMDAgc2lkZT1OIHdpZHRoPTAuMDcwMCBkZXB0aD0wLjI5MDAgLz4KLSAgICAgIDxMYXllciBpZD0yID4KLSAgICAgICAgPEJveCBsbHg9NjAuMDY1MCBsbHk9MTUzLjYxMDAgdXJ4PTYwLjEzNTAgdXJ5PTE1My45MDAwIC8+Ci0gICAgICA8L0xheWVyPgotICAgIDwvUG9ydD4KLSAgPC9QaW4+Ci0gIDxQaW4gbmFtZT0icF9hZGRyZXNzWzVdIiBzdGF0dXM9ImZpeGVkIiA+Ci0gICAgPFBvcnQ+Ci0gICAgICA8UHJlZiB4PTY2LjcwMDAgeT0xNTMuOTAwMCBzaWRlPU4gd2lkdGg9MC4wNzAwIGRlcHRoPTAuMjkwMCAvPgotICAgICAgPExheWVyIGlkPTIgPgotICAgICAgICA8Qm94IGxseD02Ni42NjUwIGxseT0xNTMuNjEwMCB1cng9NjYuNzM1MCB1cnk9MTUzLjkwMDAgLz4KLSAgICAgIDwvTGF5ZXI+Ci0gICAgPC9Qb3J0PgotICA8L1Bpbj4KLSAgPFBpbiBuYW1lPSJwX2FkZHJlc3NbNF0iIHN0YXR1cz0iZml4ZWQiID4KLSAgICA8UG9ydD4KLSAgICAgIDxQcmVmIHg9NjQuMzAwMCB5PTE1My45MDAwIHNpZGU9TiB3aWR0aD0wLjA3MDAgZGVwdGg9MC4yOTAwIC8+Ci0gICAgICA8TGF5ZXIgaWQ9MiA+Ci0gICAgICAgIDxCb3ggbGx4PTY0LjI2NTAgbGx5PTE1My42MTAwIHVyeD02NC4zMzUwIHVyeT0xNTMuOTAwMCAvPgotICAgICAgPC9MYXllcj4KLSAgICA8L1BvcnQ+Ci0gIDwvUGluPgotICA8UGluIG5hbWU9InBfYWRkcmVzc1szXSIgc3RhdHVzPSJmaXhlZCIgPgotICAgIDxQb3J0PgotICAgICAgPFByZWYgeD02OS41MDAwIHk9MTUzLjkwMDAgc2lkZT1OIHdpZHRoPTAuMDcwMCBkZXB0aD0wLjI5MDAgLz4KLSAgICAgIDxMYXllciBpZD0yID4KLSAgICAgICAgPEJveCBsbHg9NjkuNDY1MCBsbHk9MTUzLjYxMDAgdXJ4PTY5LjUzNTAgdXJ5PTE1My45MDAwIC8+Ci0gICAgICA8L0xheWVyPgotICAgIDwvUG9ydD4KLSAgPC9QaW4+Ci0gIDxQaW4gbmFtZT0icF9hZGRyZXNzWzJdIiBzdGF0dXM9ImZpeGVkIiA+Ci0gICAgPFBvcnQ+Ci0gICAgICA8UHJlZiB4PTYyLjEwMDAgeT0xNTMuOTAwMCBzaWRlPU4gd2lkdGg9MC4wNzAwIGRlcHRoPTAuMjkwMCAvPgotICAgICAgPExheWVyIGlkPTQgPgotICAgICAgICA8Qm94IGxseD02Mi4wNjUwIGxseT0xNTMuNjEwMCB1cng9NjIuMTM1MCB1cnk9MTUzLjkwMDAgLz4KLSAgICAgIDwvTGF5ZXI+Ci0gICAgPC9Qb3J0PgotICA8L1Bpbj4KLSAgPFBpbiBuYW1lPSJwX2FkZHJlc3NbMV0iIHN0YXR1cz0iZml4ZWQiID4KLSAgICA8UG9ydD4KLSAgICAgIDxQcmVmIHg9NTcuNzAwMCB5PTE1My45MDAwIHNpZGU9TiB3aWR0aD0wLjA3MDAgZGVwdGg9MC4yOTAwIC8+Ci0gICAgICA8TGF5ZXIgaWQ9MiA+Ci0gICAgICAgIDxCb3ggbGx4PTU3LjY2NTAgbGx5PTE1My42MTAwIHVyeD01Ny43MzUwIHVyeT0xNTMuOTAwMCAvPgotICAgICAgPC9MYXllcj4KLSAgICA8L1BvcnQ+Ci0gIDwvUGluPgotICA8UGluIG5hbWU9InBfYWRkcmVzc1swXSIgc3RhdHVzPSJmaXhlZCIgPgotICAgIDxQb3J0PgotICAgICAgPFByZWYgeD01NS41MDAwIHk9MTUzLjkwMDAgc2lkZT1OIHdpZHRoPTAuMDcwMCBkZXB0aD0wLjI5MDAgLz4KLSAgICAgIDxMYXllciBpZD0yID4KLSAgICAgICAgPEJveCBsbHg9NTUuNDY1MCBsbHk9MTUzLjYxMDAgdXJ4PTU1LjUzNTAgdXJ5PTE1My45MDAwIC8+Ci0gICAgICA8L0xheWVyPgotICAgIDwvUG9ydD4KLSAgPC9QaW4+Ci0gIDxQaW4gbmFtZT0icm9tX2RhdGFfaW5bMTVdIiBzdGF0dXM9ImZpeGVkIiA+Ci0gICAgPFBvcnQ+Ci0gICAgICA8UHJlZiB4PTM2LjkwMDAgeT0xNTMuOTAwMCBzaWRlPU4gd2lkdGg9MC4wNzAwIGRlcHRoPTAuMjkwMCAvPgotICAgICAgPExheWVyIGlkPTIgPgotICAgICAgICA8Qm94IGxseD0zNi44NjUwIGxseT0xNTMuNjEwMCB1cng9MzYuOTM1MCB1cnk9MTUzLjkwMDAgLz4KLSAgICAgIDwvTGF5ZXI+Ci0gICAgPC9Qb3J0PgotICA8L1Bpbj4KLSAgPFBpbiBuYW1lPSJyb21fZGF0YV9pblsxNF0iIHN0YXR1cz0iZml4ZWQiID4KLSAgICA8UG9ydD4KLSAgICAgIDxQcmVmIHg9NDUuMTAwMCB5PTE1My45MDAwIHNpZGU9TiB3aWR0aD0wLjA3MDAgZGVwdGg9MC4yOTAwIC8+Ci0gICAgICA8TGF5ZXIgaWQ9MiA+Ci0gICAgICAgIDxCb3ggbGx4PTQ1LjA2NTAgbGx5PTE1My42MTAwIHVyeD00NS4xMzUwIHVyeT0xNTMuOTAwMCAvPgotICAgICAgPC9MYXllcj4KLSAgICA8L1BvcnQ+Ci0gIDwvUGluPgotICA8UGluIG5hbWU9InJvbV9kYXRhX2luWzEzXSIgc3RhdHVzPSJmaXhlZCIgPgotICAgIDxQb3J0PgotICAgICAgPFByZWYgeD00MC45MDAwIHk9MTUzLjkwMDAgc2lkZT1OIHdpZHRoPTAuMDcwMCBkZXB0aD0wLjI5MDAgLz4KLSAgICAgIDxMYXllciBpZD0yID4KLSAgICAgICAgPEJveCBsbHg9NDAuODY1MCBsbHk9MTUzLjYxMDAgdXJ4PTQwLjkzNTAgdXJ5PTE1My45MDAwIC8+Ci0gICAgICA8L0xheWVyPgotICAgIDwvUG9ydD4KLSAgPC9QaW4+Ci0gIDxQaW4gbmFtZT0icm9tX2RhdGFfaW5bMTJdIiBzdGF0dXM9ImZpeGVkIiA+Ci0gICAgPFBvcnQ+Ci0gICAgICA8UHJlZiB4PTQzLjEwMDAgeT0xNTMuOTAwMCBzaWRlPU4gd2lkdGg9MC4wNzAwIGRlcHRoPTAuMjkwMCAvPgotICAgICAgPExheWVyIGlkPTIgPgotICAgICAgICA8Qm94IGxseD00My4wNjUwIGxseT0xNTMuNjEwMCB1cng9NDMuMTM1MCB1cnk9MTUzLjkwMDAgLz4KLSAgICAgIDwvTGF5ZXI+Ci0gICAgPC9Qb3J0PgotICA8L1Bpbj4KLSAgPFBpbiBuYW1lPSJyb21fZGF0YV9pblsxMV0iIHN0YXR1cz0iZml4ZWQiID4KLSAgICA8UG9ydD4KLSAgICAgIDxQcmVmIHg9NTQuMzAwMCB5PTE1My45MDAwIHNpZGU9TiB3aWR0aD0wLjA3MDAgZGVwdGg9MC4yOTAwIC8+Ci0gICAgICA8TGF5ZXIgaWQ9MiA+Ci0gICAgICAgIDxCb3ggbGx4PTU0LjI2NTAgbGx5PTE1My42MTAwIHVyeD01NC4zMzUwIHVyeT0xNTMuOTAwMCAvPgotICAgICAgPC9MYXllcj4KLSAgICA8L1BvcnQ+Ci0gIDwvUGluPgotICA8UGluIG5hbWU9InJvbV9kYXRhX2luWzEwXSIgc3RhdHVzPSJmaXhlZCIgPgotICAgIDxQb3J0PgotICAgICAgPFByZWYgeD00OC43MDAwIHk9MTUzLjkwMDAgc2lkZT1OIHdpZHRoPTAuMDcwMCBkZXB0aD0wLjI5MDAgLz4KLSAgICAgIDxMYXllciBpZD0yID4KLSAgICAgICAgPEJveCBsbHg9NDguNjY1MCBsbHk9MTUzLjYxMDAgdXJ4PTQ4LjczNTAgdXJ5PTE1My45MDAwIC8+Ci0gICAgICA8L0xheWVyPgotICAgIDwvUG9ydD4KLSAgPC9QaW4+Ci0gIDxQaW4gbmFtZT0icm9tX2RhdGFfaW5bOV0iIHN0YXR1cz0iZml4ZWQiID4KLSAgICA8UG9ydD4KLSAgICAgIDxQcmVmIHg9NTMuNzAwMCB5PTE1My45MDAwIHNpZGU9TiB3aWR0aD0wLjA3MDAgZGVwdGg9MC4yOTAwIC8+Ci0gICAgICA8TGF5ZXIgaWQ9NCA+Ci0gICAgICAgIDxCb3ggbGx4PTUzLjY2NTAgbGx5PTE1My42MTAwIHVyeD01My43MzUwIHVyeT0xNTMuOTAwMCAvPgotICAgICAgPC9MYXllcj4KLSAgICA8L1BvcnQ+Ci0gIDwvUGluPgotICA8UGluIG5hbWU9InJvbV9kYXRhX2luWzhdIiBzdGF0dXM9ImZpeGVkIiA+Ci0gICAgPFBvcnQ+Ci0gICAgICA8UHJlZiB4PTU2LjkwMDAgeT0xNTMuOTAwMCBzaWRlPU4gd2lkdGg9MC4wNzAwIGRlcHRoPTAuMjkwMCAvPgotICAgICAgPExheWVyIGlkPTIgPgotICAgICAgICA8Qm94IGxseD01Ni44NjUwIGxseT0xNTMuNjEwMCB1cng9NTYuOTM1MCB1cnk9MTUzLjkwMDAgLz4KLSAgICAgIDwvTGF5ZXI+Ci0gICAgPC9Qb3J0PgotICA8L1Bpbj4KLSAgPFBpbiBuYW1lPSJyb21fZGF0YV9pbls3XSIgc3RhdHVzPSJmaXhlZCIgPgotICAgIDxQb3J0PgotICAgICAgPFByZWYgeD02MS41MDAwIHk9MTUzLjkwMDAgc2lkZT1OIHdpZHRoPTAuMDcwMCBkZXB0aD0wLjI5MDAgLz4KLSAgICAgIDxMYXllciBpZD02ID4KLSAgICAgICAgPEJveCBsbHg9NjEuNDY1MCBsbHk9MTUzLjYxMDAgdXJ4PTYxLjUzNTAgdXJ5PTE1My45MDAwIC8+Ci0gICAgICA8L0xheWVyPgotICAgIDwvUG9ydD4KLSAgPC9QaW4+Ci0gIDxQaW4gbmFtZT0icm9tX2RhdGFfaW5bNl0iIHN0YXR1cz0iZml4ZWQiID4KLSAgICA8UG9ydD4KLSAgICAgIDxQcmVmIHg9NTguOTAwMCB5PTE1My45MDAwIHNpZGU9TiB3aWR0aD0wLjA3MDAgZGVwdGg9MC4yOTAwIC8+Ci0gICAgICA8TGF5ZXIgaWQ9NiA+Ci0gICAgICAgIDxCb3ggbGx4PTU4Ljg2NTAgbGx5PTE1My42MTAwIHVyeD01OC45MzUwIHVyeT0xNTMuOTAwMCAvPgotICAgICAgPC9MYXllcj4KLSAgICA8L1BvcnQ+Ci0gIDwvUGluPgotICA8UGluIG5hbWU9InJvbV9kYXRhX2luWzVdIiBzdGF0dXM9ImZpeGVkIiA+Ci0gICAgPFBvcnQ+Ci0gICAgICA8UHJlZiB4PTY2LjcwMDAgeT0xNTMuOTAwMCBzaWRlPU4gd2lkdGg9MC4wNzAwIGRlcHRoPTAuMjkwMCAvPgotICAgICAgPExheWVyIGlkPTYgPgotICAgICAgICA8Qm94IGxseD02Ni42NjUwIGxseT0xNTMuNjEwMCB1cng9NjYuNzM1MCB1cnk9MTUzLjkwMDAgLz4KLSAgICAgIDwvTGF5ZXI+Ci0gICAgPC9Qb3J0PgotICA8L1Bpbj4KLSAgPFBpbiBuYW1lPSJyb21fZGF0YV9pbls0XSIgc3RhdHVzPSJmaXhlZCIgPgotICAgIDxQb3J0PgotICAgICAgPFByZWYgeD02MS43MDAwIHk9MTUzLjkwMDAgc2lkZT1OIHdpZHRoPTAuMDcwMCBkZXB0aD0wLjI5MDAgLz4KLSAgICAgIDxMYXllciBpZD0yID4KLSAgICAgICAgPEJveCBsbHg9NjEuNjY1MCBsbHk9MTUzLjYxMDAgdXJ4PTYxLjczNTAgdXJ5PTE1My45MDAwIC8+Ci0gICAgICA8L0xheWVyPgotICAgIDwvUG9ydD4KLSAgPC9QaW4+Ci0gIDxQaW4gbmFtZT0icm9tX2RhdGFfaW5bM10iIHN0YXR1cz0iZml4ZWQiID4KLSAgICA8UG9ydD4KLSAgICAgIDxQcmVmIHg9NjEuOTAwMCB5PTE1My45MDAwIHNpZGU9TiB3aWR0aD0wLjA3MDAgZGVwdGg9MC4yOTAwIC8+Ci0gICAgICA8TGF5ZXIgaWQ9NiA+Ci0gICAgICAgIDxCb3ggbGx4PTYxLjg2NTAgbGx5PTE1My42MTAwIHVyeD02MS45MzUwIHVyeT0xNTMuOTAwMCAvPgotICAgICAgPC9MYXllcj4KLSAgICA8L1BvcnQ+Ci0gIDwvUGluPgotICA8UGluIG5hbWU9InJvbV9kYXRhX2luWzJdIiBzdGF0dXM9ImZpeGVkIiA+Ci0gICAgPFBvcnQ+Ci0gICAgICA8UHJlZiB4PTUzLjkwMDAgeT0xNTMuOTAwMCBzaWRlPU4gd2lkdGg9MC4wNzAwIGRlcHRoPTAuMjkwMCAvPgotICAgICAgPExheWVyIGlkPTIgPgotICAgICAgICA8Qm94IGxseD01My44NjUwIGxseT0xNTMuNjEwMCB1cng9NTMuOTM1MCB1cnk9MTUzLjkwMDAgLz4KLSAgICAgIDwvTGF5ZXI+Ci0gICAgPC9Qb3J0PgotICA8L1Bpbj4KLSAgPFBpbiBuYW1lPSJyb21fZGF0YV9pblsxXSIgc3RhdHVzPSJmaXhlZCIgPgotICAgIDxQb3J0PgotICAgICAgPFByZWYgeD00Ni4xMDAwIHk9MTUzLjkwMDAgc2lkZT1OIHdpZHRoPTAuMDcwMCBkZXB0aD0wLjI5MDAgLz4KLSAgICAgIDxMYXllciBpZD0yID4KLSAgICAgICAgPEJveCBsbHg9NDYuMDY1MCBsbHk9MTUzLjYxMDAgdXJ4PTQ2LjEzNTAgdXJ5PTE1My45MDAwIC8+Ci0gICAgICA8L0xheWVyPgotICAgIDwvUG9ydD4KLSAgPC9QaW4+Ci0gIDxQaW4gbmFtZT0icm9tX2RhdGFfaW5bMF0iIHN0YXR1cz0iZml4ZWQiID4KLSAgICA8UG9ydD4KLSAgICAgIDxQcmVmIHg9NTguNTAwMCB5PTE1My45MDAwIHNpZGU9TiB3aWR0aD0wLjA3MDAgZGVwdGg9MC4yOTAwIC8+Ci0gICAgICA8TGF5ZXIgaWQ9NiA+Ci0gICAgICAgIDxCb3ggbGx4PTU4LjQ2NTAgbGx5PTE1My42MTAwIHVyeD01OC41MzUwIHVyeT0xNTMuOTAwMCAvPgotICAgICAgPC9MYXllcj4KLSAgICA8L1BvcnQ+Ci0gIDwvUGluPgotICA8UGluIG5hbWU9InJvbV9kYXRhX291dFsxNV0iIHN0YXR1cz0iZml4ZWQiID4KLSAgICA8UG9ydD4KLSAgICAgIDxQcmVmIHg9MC4wMDAwIHk9NzguMzc1MCBzaWRlPVcgd2lkdGg9MC4wNzAwIGRlcHRoPTAuMjkwMCAvPgotICAgICAgPExheWVyIGlkPTMgPgotICAgICAgICA8Qm94IGxseD0wLjAwMDAgbGx5PTc4LjM0MDAgdXJ4PTAuMjkwMCB1cnk9NzguNDEwMCAvPgotICAgICAgPC9MYXllcj4KLSAgICA8L1BvcnQ+Ci0gIDwvUGluPgotICA8UGluIG5hbWU9InJvbV9kYXRhX291dFsxNF0iIHN0YXR1cz0iZml4ZWQiID4KLSAgICA8UG9ydD4KLSAgICAgIDxQcmVmIHg9MC4wMDAwIHk9NzUuOTA1MCBzaWRlPVcgd2lkdGg9MC4wNzAwIGRlcHRoPTAuMjkwMCAvPgotICAgICAgPExheWVyIGlkPTUgPgotICAgICAgICA8Qm94IGxseD0wLjAwMDAgbGx5PTc1Ljg3MDAgdXJ4PTAuMjkwMCB1cnk9NzUuOTQwMCAvPgotICAgICAgPC9MYXllcj4KLSAgICA8L1BvcnQ+Ci0gIDwvUGluPgotICA8UGluIG5hbWU9InJvbV9kYXRhX291dFsxM10iIHN0YXR1cz0iZml4ZWQiID4KLSAgICA8UG9ydD4KLSAgICAgIDxQcmVmIHg9MC4wMDAwIHk9NzguMzc1MCBzaWRlPVcgd2lkdGg9MC4wNzAwIGRlcHRoPTAuMjkwMCAvPgotICAgICAgPExheWVyIGlkPTUgPgotICAgICAgICA8Qm94IGxseD0wLjAwMDAgbGx5PTc4LjM0MDAgdXJ4PTAuMjkwMCB1cnk9NzguNDEwMCAvPgotICAgICAgPC9MYXllcj4KLSAgICA8L1BvcnQ+Ci0gIDwvUGluPgotICA8UGluIG5hbWU9InJvbV9kYXRhX291dFsxMl0iIHN0YXR1cz0iZml4ZWQiID4KLSAgICA8UG9ydD4KLSAgICAgIDxQcmVmIHg9MC4wMDAwIHk9NzUuNzE1MCBzaWRlPVcgd2lkdGg9MC4wNzAwIGRlcHRoPTAuMjkwMCAvPgotICAgICAgPExheWVyIGlkPTMgPgotICAgICAgICA8Qm94IGxseD0wLjAwMDAgbGx5PTc1LjY4MDAgdXJ4PTAuMjkwMCB1cnk9NzUuNzUwMCAvPgotICAgICAgPC9MYXllcj4KLSAgICA8L1BvcnQ+Ci0gIDwvUGluPgotICA8UGluIG5hbWU9InJvbV9kYXRhX291dFsxMV0iIHN0YXR1cz0iZml4ZWQiID4KLSAgICA8UG9ydD4KLSAgICAgIDxQcmVmIHg9MC4wMDAwIHk9NzguNzU1MCBzaWRlPVcgd2lkdGg9MC4wNzAwIGRlcHRoPTAuMjkwMCAvPgotICAgICAgPExheWVyIGlkPTMgPgotICAgICAgICA8Qm94IGxseD0wLjAwMDAgbGx5PTc4LjcyMDAgdXJ4PTAuMjkwMCB1cnk9NzguNzkwMCAvPgotICAgICAgPC9MYXllcj4KLSAgICA8L1BvcnQ+Ci0gIDwvUGluPgotICA8UGluIG5hbWU9InJvbV9kYXRhX291dFsxMF0iIHN0YXR1cz0iZml4ZWQiID4KLSAgICA8UG9ydD4KLSAgICAgIDxQcmVmIHg9MC4wMDAwIHk9NzUuNTI1MCBzaWRlPVcgd2lkdGg9MC4wNzAwIGRlcHRoPTAuMjkwMCAvPgotICAgICAgPExheWVyIGlkPTUgPgotICAgICAgICA8Qm94IGxseD0wLjAwMDAgbGx5PTc1LjQ5MDAgdXJ4PTAuMjkwMCB1cnk9NzUuNTYwMCAvPgotICAgICAgPC9MYXllcj4KLSAgICA8L1BvcnQ+Ci0gIDwvUGluPgotICA8UGluIG5hbWU9InJvbV9kYXRhX291dFs5XSIgc3RhdHVzPSJmaXhlZCIgPgotICAgIDxQb3J0PgotICAgICAgPFByZWYgeD0wLjAwMDAgeT03OC43NTUwIHNpZGU9VyB3aWR0aD0wLjA3MDAgZGVwdGg9MC4yOTAwIC8+Ci0gICAgICA8TGF5ZXIgaWQ9NSA+Ci0gICAgICAgIDxCb3ggbGx4PTAuMDAwMCBsbHk9NzguNzIwMCB1cng9MC4yOTAwIHVyeT03OC43OTAwIC8+Ci0gICAgICA8L0xheWVyPgotICAgIDwvUG9ydD4KLSAgPC9QaW4+Ci0gIDxQaW4gbmFtZT0icm9tX2RhdGFfb3V0WzhdIiBzdGF0dXM9ImZpeGVkIiA+Ci0gICAgPFBvcnQ+Ci0gICAgICA8UHJlZiB4PTAuMDAwMCB5PTc1LjMzNTAgc2lkZT1XIHdpZHRoPTAuMDcwMCBkZXB0aD0wLjI5MDAgLz4KLSAgICAgIDxMYXllciBpZD0zID4KLSAgICAgICAgPEJveCBsbHg9MC4wMDAwIGxseT03NS4zMDAwIHVyeD0wLjI5MDAgdXJ5PTc1LjM3MDAgLz4KLSAgICAgIDwvTGF5ZXI+Ci0gICAgPC9Qb3J0PgotICA8L1Bpbj4KLSAgPFBpbiBuYW1lPSJyb21fZGF0YV9vdXRbN10iIHN0YXR1cz0iZml4ZWQiID4KLSAgICA8UG9ydD4KLSAgICAgIDxQcmVmIHg9MC4wMDAwIHk9NzUuMTQ1MCBzaWRlPVcgd2lkdGg9MC4wNzAwIGRlcHRoPTAuMjkwMCAvPgotICAgICAgPExheWVyIGlkPTUgPgotICAgICAgICA8Qm94IGxseD0wLjAwMDAgbGx5PTc1LjExMDAgdXJ4PTAuMjkwMCB1cnk9NzUuMTgwMCAvPgotICAgICAgPC9MYXllcj4KLSAgICA8L1BvcnQ+Ci0gIDwvUGluPgotICA8UGluIG5hbWU9InJvbV9kYXRhX291dFs2XSIgc3RhdHVzPSJmaXhlZCIgPgotICAgIDxQb3J0PgotICAgICAgPFByZWYgeD0wLjAwMDAgeT03OS4xMzUwIHNpZGU9VyB3aWR0aD0wLjA3MDAgZGVwdGg9MC4yOTAwIC8+Ci0gICAgICA8TGF5ZXIgaWQ9NSA+Ci0gICAgICAgIDxCb3ggbGx4PTAuMDAwMCBsbHk9NzkuMTAwMCB1cng9MC4yOTAwIHVyeT03OS4xNzAwIC8+Ci0gICAgICA8L0xheWVyPgotICAgIDwvUG9ydD4KLSAgPC9QaW4+Ci0gIDxQaW4gbmFtZT0icm9tX2RhdGFfb3V0WzVdIiBzdGF0dXM9ImZpeGVkIiA+Ci0gICAgPFBvcnQ+Ci0gICAgICA8UHJlZiB4PTAuMDAwMCB5PTc0Ljk1NTAgc2lkZT1XIHdpZHRoPTAuMDcwMCBkZXB0aD0wLjI5MDAgLz4KLSAgICAgIDxMYXllciBpZD0zID4KLSAgICAgICAgPEJveCBsbHg9MC4wMDAwIGxseT03NC45MjAwIHVyeD0wLjI5MDAgdXJ5PTc0Ljk5MDAgLz4KLSAgICAgIDwvTGF5ZXI+Ci0gICAgPC9Qb3J0PgotICA8L1Bpbj4KLSAgPFBpbiBuYW1lPSJyb21fZGF0YV9vdXRbNF0iIHN0YXR1cz0iZml4ZWQiID4KLSAgICA8UG9ydD4KLSAgICAgIDxQcmVmIHg9MC4wMDAwIHk9NzQuNzY1MCBzaWRlPVcgd2lkdGg9MC4wNzAwIGRlcHRoPTAuMjkwMCAvPgotICAgICAgPExheWVyIGlkPTUgPgotICAgICAgICA8Qm94IGxseD0wLjAwMDAgbGx5PTc0LjczMDAgdXJ4PTAuMjkwMCB1cnk9NzQuODAwMCAvPgotICAgICAgPC9MYXllcj4KLSAgICA8L1BvcnQ+Ci0gIDwvUGluPgotICA8UGluIG5hbWU9InJvbV9kYXRhX291dFszXSIgc3RhdHVzPSJmaXhlZCIgPgotICAgIDxQb3J0PgotICAgICAgPFByZWYgeD0wLjAwMDAgeT03NC41NzUwIHNpZGU9VyB3aWR0aD0wLjA3MDAgZGVwdGg9MC4yOTAwIC8+Ci0gICAgICA8TGF5ZXIgaWQ9MyA+Ci0gICAgICAgIDxCb3ggbGx4PTAuMDAwMCBsbHk9NzQuNTQwMCB1cng9MC4yOTAwIHVyeT03NC42MTAwIC8+Ci0gICAgICA8L0xheWVyPgotICAgIDwvUG9ydD4KLSAgPC9QaW4+Ci0gIDxQaW4gbmFtZT0icm9tX2RhdGFfb3V0WzJdIiBzdGF0dXM9ImZpeGVkIiA+Ci0gICAgPFBvcnQ+Ci0gICAgICA8UHJlZiB4PTAuMDAwMCB5PTgwLjA4NTAgc2lkZT1XIHdpZHRoPTAuMDcwMCBkZXB0aD0wLjI5MDAgLz4KLSAgICAgIDxMYXllciBpZD0zID4KLSAgICAgICAgPEJveCBsbHg9MC4wMDAwIGxseT04MC4wNTAwIHVyeD0wLjI5MDAgdXJ5PTgwLjEyMDAgLz4KLSAgICAgIDwvTGF5ZXI+Ci0gICAgPC9Qb3J0PgotICA8L1Bpbj4KLSAgPFBpbiBuYW1lPSJyb21fZGF0YV9vdXRbMV0iIHN0YXR1cz0iZml4ZWQiID4KLSAgICA8UG9ydD4KLSAgICAgIDxQcmVmIHg9MC4wMDAwIHk9ODAuMDg1MCBzaWRlPVcgd2lkdGg9MC4wNzAwIGRlcHRoPTAuMjkwMCAvPgotICAgICAgPExheWVyIGlkPTUgPgotICAgICAgICA8Qm94IGxseD0wLjAwMDAgbGx5PTgwLjA1MDAgdXJ4PTAuMjkwMCB1cnk9ODAuMTIwMCAvPgotICAgICAgPC9MYXllcj4KLSAgICA8L1BvcnQ+Ci0gIDwvUGluPgotICA8UGluIG5hbWU9InJvbV9kYXRhX291dFswXSIgc3RhdHVzPSJmaXhlZCIgPgotICAgIDxQb3J0PgotICAgICAgPFByZWYgeD0wLjAwMDAgeT03My44MTUwIHNpZGU9VyB3aWR0aD0wLjA3MDAgZGVwdGg9MC4yOTAwIC8+Ci0gICAgICA8TGF5ZXIgaWQ9MyA+Ci0gICAgICAgIDxCb3ggbGx4PTAuMDAwMCBsbHk9NzMuNzgwMCB1cng9MC4yOTAwIHVyeT03My44NTAwIC8+Ci0gICAgICA8L0xheWVyPgotICAgIDwvUG9ydD4KLSAgPC9QaW4+Ci0gIDxQaW4gbmFtZT0iYnVzX2dyYW50IiBzdGF0dXM9ImZpeGVkIiA+Ci0gICAgPFBvcnQ+Ci0gICAgICA8UHJlZiB4PTAuMDAwMCB5PTEyNy4yMDUwIHNpZGU9VyB3aWR0aD0wLjA3MDAgZGVwdGg9MC4yOTAwIC8+Ci0gICAgICA8TGF5ZXIgaWQ9NSA+Ci0gICAgICAgIDxCb3ggbGx4PTAuMDAwMCBsbHk9MTI3LjE3MDAgdXJ4PTAuMjkwMCB1cnk9MTI3LjI0MDAgLz4KLSAgICAgIDwvTGF5ZXI+Ci0gICAgPC9Qb3J0PgotICA8L1Bpbj4KLSAgPFBpbiBuYW1lPSJidXNfcmVxdWVzdCIgc3RhdHVzPSJmaXhlZCIgPgotICAgIDxQb3J0PgotICAgICAgPFByZWYgeD0wLjAwMDAgeT0xMjkuMTA1MCBzaWRlPVcgd2lkdGg9MC4wNzAwIGRlcHRoPTAuMjkwMCAvPgotICAgICAgPExheWVyIGlkPTMgPgotICAgICAgICA8Qm94IGxseD0wLjAwMDAgbGx5PTEyOS4wNzAwIHVyeD0wLjI5MDAgdXJ5PTEyOS4xNDAwIC8+Ci0gICAgICA8L0xheWVyPgotICAgIDwvUG9ydD4KLSAgPC9QaW4+Ci0gIDxQaW4gbmFtZT0icG9ydF9hZGRyZXNzWzJdIiBzdGF0dXM9ImZpeGVkIiA+Ci0gICAgPFBvcnQ+Ci0gICAgICA8UHJlZiB4PTAuMDAwMCB5PTExNS40MjUwIHNpZGU9VyB3aWR0aD0wLjA3MDAgZGVwdGg9MC4yOTAwIC8+Ci0gICAgICA8TGF5ZXIgaWQ9MyA+Ci0gICAgICAgIDxCb3ggbGx4PTAuMDAwMCBsbHk9MTE1LjM5MDAgdXJ4PTAuMjkwMCB1cnk9MTE1LjQ2MDAgLz4KLSAgICAgIDwvTGF5ZXI+Ci0gICAgPC9Qb3J0PgotICA8L1Bpbj4KLSAgPFBpbiBuYW1lPSJwb3J0X2FkZHJlc3NbMV0iIHN0YXR1cz0iZml4ZWQiID4KLSAgICA8UG9ydD4KLSAgICAgIDxQcmVmIHg9MC4wMDAwIHk9MTE4Ljg0NTAgc2lkZT1XIHdpZHRoPTAuMDcwMCBkZXB0aD0wLjI5MDAgLz4KLSAgICAgIDxMYXllciBpZD0zID4KLSAgICAgICAgPEJveCBsbHg9MC4wMDAwIGxseT0xMTguODEwMCB1cng9MC4yOTAwIHVyeT0xMTguODgwMCAvPgotICAgICAgPC9MYXllcj4KLSAgICA8L1BvcnQ+Ci0gIDwvUGluPgotICA8UGluIG5hbWU9InBvcnRfYWRkcmVzc1swXSIgc3RhdHVzPSJmaXhlZCIgPgotICAgIDxQb3J0PgotICAgICAgPFByZWYgeD0zMi43MDAwIHk9MTUzLjkwMDAgc2lkZT1OIHdpZHRoPTAuMDcwMCBkZXB0aD0wLjI5MDAgLz4KLSAgICAgIDxMYXllciBpZD0yID4KLSAgICAgICAgPEJveCBsbHg9MzIuNjY1MCBsbHk9MTUzLjYxMDAgdXJ4PTMyLjczNTAgdXJ5PTE1My45MDAwIC8+Ci0gICAgICA8L0xheWVyPgotICAgIDwvUG9ydD4KLSAgPC9QaW4+Ci0gIDxQaW4gbmFtZT0icG9ydF9wYWRfZGF0YV9pblsxNV0iIHN0YXR1cz0iZml4ZWQiID4KLSAgICA8UG9ydD4KLSAgICAgIDxQcmVmIHg9MTQxLjgwMDAgeT0xMTguNDY1MCBzaWRlPUUgd2lkdGg9MC4wNzAwIGRlcHRoPTAuMjkwMCAvPgotICAgICAgPExheWVyIGlkPTMgPgotICAgICAgICA8Qm94IGxseD0xNDEuNTEwMCBsbHk9MTE4LjQzMDAgdXJ4PTE0MS44MDAwIHVyeT0xMTguNTAwMCAvPgotICAgICAgPC9MYXllcj4KLSAgICA8L1BvcnQ+Ci0gIDwvUGluPgotICA8UGluIG5hbWU9InBvcnRfcGFkX2RhdGFfaW5bMTRdIiBzdGF0dXM9ImZpeGVkIiA+Ci0gICAgPFBvcnQ+Ci0gICAgICA8UHJlZiB4PTE0MS44MDAwIHk9OTIuMjQ1MCBzaWRlPUUgd2lkdGg9MC4wNzAwIGRlcHRoPTAuMjkwMCAvPgotICAgICAgPExheWVyIGlkPTMgPgotICAgICAgICA8Qm94IGxseD0xNDEuNTEwMCBsbHk9OTIuMjEwMCB1cng9MTQxLjgwMDAgdXJ5PTkyLjI4MDAgLz4KLSAgICAgIDwvTGF5ZXI+Ci0gICAgPC9Qb3J0PgotICA8L1Bpbj4KLSAgPFBpbiBuYW1lPSJwb3J0X3BhZF9kYXRhX2luWzEzXSIgc3RhdHVzPSJmaXhlZCIgPgotICAgIDxQb3J0PgotICAgICAgPFByZWYgeD0xNDEuODAwMCB5PTkyLjI0NTAgc2lkZT1FIHdpZHRoPTAuMDcwMCBkZXB0aD0wLjI5MDAgLz4KLSAgICAgIDxMYXllciBpZD01ID4KLSAgICAgICAgPEJveCBsbHg9MTQxLjUxMDAgbGx5PTkyLjIxMDAgdXJ4PTE0MS44MDAwIHVyeT05Mi4yODAwIC8+Ci0gICAgICA8L0xheWVyPgotICAgIDwvUG9ydD4KLSAgPC9QaW4+Ci0gIDxQaW4gbmFtZT0icG9ydF9wYWRfZGF0YV9pblsxMl0iIHN0YXR1cz0iZml4ZWQiID4KLSAgICA8UG9ydD4KLSAgICAgIDxQcmVmIHg9MTQxLjgwMDAgeT05MC45MTUwIHNpZGU9RSB3aWR0aD0wLjA3MDAgZGVwdGg9MC4yOTAwIC8+Ci0gICAgICA8TGF5ZXIgaWQ9MyA+Ci0gICAgICAgIDxCb3ggbGx4PTE0MS41MTAwIGxseT05MC44ODAwIHVyeD0xNDEuODAwMCB1cnk9OTAuOTUwMCAvPgotICAgICAgPC9MYXllcj4KLSAgICA8L1BvcnQ+Ci0gIDwvUGluPgotICA8UGluIG5hbWU9InBvcnRfcGFkX2RhdGFfaW5bMTFdIiBzdGF0dXM9ImZpeGVkIiA+Ci0gICAgPFBvcnQ+Ci0gICAgICA8UHJlZiB4PTE0MS44MDAwIHk9OTIuNjI1MCBzaWRlPUUgd2lkdGg9MC4wNzAwIGRlcHRoPTAuMjkwMCAvPgotICAgICAgPExheWVyIGlkPTMgPgotICAgICAgICA8Qm94IGxseD0xNDEuNTEwMCBsbHk9OTIuNTkwMCB1cng9MTQxLjgwMDAgdXJ5PTkyLjY2MDAgLz4KLSAgICAgIDwvTGF5ZXI+Ci0gICAgPC9Qb3J0PgotICA8L1Bpbj4KLSAgPFBpbiBuYW1lPSJwb3J0X3BhZF9kYXRhX2luWzEwXSIgc3RhdHVzPSJmaXhlZCIgPgotICAgIDxQb3J0PgotICAgICAgPFByZWYgeD0xNDEuODAwMCB5PTkyLjYyNTAgc2lkZT1FIHdpZHRoPTAuMDcwMCBkZXB0aD0wLjI5MDAgLz4KLSAgICAgIDxMYXllciBpZD01ID4KLSAgICAgICAgPEJveCBsbHg9MTQxLjUxMDAgbGx5PTkyLjU5MDAgdXJ4PTE0MS44MDAwIHVyeT05Mi42NjAwIC8+Ci0gICAgICA8L0xheWVyPgotICAgIDwvUG9ydD4KLSAgPC9QaW4+Ci0gIDxQaW4gbmFtZT0icG9ydF9wYWRfZGF0YV9pbls5XSIgc3RhdHVzPSJmaXhlZCIgPgotICAgIDxQb3J0PgotICAgICAgPFByZWYgeD0xNDEuODAwMCB5PTg0LjY0NTAgc2lkZT1FIHdpZHRoPTAuMDcwMCBkZXB0aD0wLjI5MDAgLz4KLSAgICAgIDxMYXllciBpZD0zID4KLSAgICAgICAgPEJveCBsbHg9MTQxLjUxMDAgbGx5PTg0LjYxMDAgdXJ4PTE0MS44MDAwIHVyeT04NC42ODAwIC8+Ci0gICAgICA8L0xheWVyPgotICAgIDwvUG9ydD4KLSAgPC9QaW4+Ci0gIDxQaW4gbmFtZT0icG9ydF9wYWRfZGF0YV9pbls4XSIgc3RhdHVzPSJmaXhlZCIgPgotICAgIDxQb3J0PgotICAgICAgPFByZWYgeD0xNDEuODAwMCB5PTkxLjg2NTAgc2lkZT1FIHdpZHRoPTAuMDcwMCBkZXB0aD0wLjI5MDAgLz4KLSAgICAgIDxMYXllciBpZD0zID4KLSAgICAgICAgPEJveCBsbHg9MTQxLjUxMDAgbGx5PTkxLjgzMDAgdXJ4PTE0MS44MDAwIHVyeT05MS45MDAwIC8+Ci0gICAgICA8L0xheWVyPgotICAgIDwvUG9ydD4KLSAgPC9QaW4+Ci0gIDxQaW4gbmFtZT0icG9ydF9wYWRfZGF0YV9pbls3XSIgc3RhdHVzPSJmaXhlZCIgPgotICAgIDxQb3J0PgotICAgICAgPFByZWYgeD0xNDEuODAwMCB5PTkxLjg2NTAgc2lkZT1FIHdpZHRoPTAuMDcwMCBkZXB0aD0wLjI5MDAgLz4KLSAgICAgIDxMYXllciBpZD01ID4KLSAgICAgICAgPEJveCBsbHg9MTQxLjUxMDAgbGx5PTkxLjgzMDAgdXJ4PTE0MS44MDAwIHVyeT05MS45MDAwIC8+Ci0gICAgICA8L0xheWVyPgotICAgIDwvUG9ydD4KLSAgPC9QaW4+Ci0gIDxQaW4gbmFtZT0icG9ydF9wYWRfZGF0YV9pbls2XSIgc3RhdHVzPSJmaXhlZCIgPgotICAgIDxQb3J0PgotICAgICAgPFByZWYgeD0xNDEuODAwMCB5PTkzLjAwNTAgc2lkZT1FIHdpZHRoPTAuMDcwMCBkZXB0aD0wLjI5MDAgLz4KLSAgICAgIDxMYXllciBpZD0zID4KLSAgICAgICAgPEJveCBsbHg9MTQxLjUxMDAgbGx5PTkyLjk3MDAgdXJ4PTE0MS44MDAwIHVyeT05My4wNDAwIC8+Ci0gICAgICA8L0xheWVyPgotICAgIDwvUG9ydD4KLSAgPC9QaW4+Ci0gIDxQaW4gbmFtZT0icG9ydF9wYWRfZGF0YV9pbls1XSIgc3RhdHVzPSJmaXhlZCIgPgotICAgIDxQb3J0PgotICAgICAgPFByZWYgeD0xNDEuODAwMCB5PTEwMy40NTUwIHNpZGU9RSB3aWR0aD0wLjA3MDAgZGVwdGg9MC4yOTAwIC8+Ci0gICAgICA8TGF5ZXIgaWQ9MyA+Ci0gICAgICAgIDxCb3ggbGx4PTE0MS41MTAwIGxseT0xMDMuNDIwMCB1cng9MTQxLjgwMDAgdXJ5PTEwMy40OTAwIC8+Ci0gICAgICA8L0xheWVyPgotICAgIDwvUG9ydD4KLSAgPC9QaW4+Ci0gIDxQaW4gbmFtZT0icG9ydF9wYWRfZGF0YV9pbls0XSIgc3RhdHVzPSJmaXhlZCIgPgotICAgIDxQb3J0PgotICAgICAgPFByZWYgeD0xNDEuODAwMCB5PTEwNC43ODUwIHNpZGU9RSB3aWR0aD0wLjA3MDAgZGVwdGg9MC4yOTAwIC8+Ci0gICAgICA8TGF5ZXIgaWQ9MyA+Ci0gICAgICAgIDxCb3ggbGx4PTE0MS41MTAwIGxseT0xMDQuNzUwMCB1cng9MTQxLjgwMDAgdXJ5PTEwNC44MjAwIC8+Ci0gICAgICA8L0xheWVyPgotICAgIDwvUG9ydD4KLSAgPC9QaW4+Ci0gIDxQaW4gbmFtZT0icG9ydF9wYWRfZGF0YV9pblszXSIgc3RhdHVzPSJmaXhlZCIgPgotICAgIDxQb3J0PgotICAgICAgPFByZWYgeD0xNDEuODAwMCB5PTEwOS45MTUwIHNpZGU9RSB3aWR0aD0wLjA3MDAgZGVwdGg9MC4yOTAwIC8+Ci0gICAgICA8TGF5ZXIgaWQ9MyA+Ci0gICAgICAgIDxCb3ggbGx4PTE0MS41MTAwIGxseT0xMDkuODgwMCB1cng9MTQxLjgwMDAgdXJ5PTEwOS45NTAwIC8+Ci0gICAgICA8L0xheWVyPgotICAgIDwvUG9ydD4KLSAgPC9QaW4+Ci0gIDxQaW4gbmFtZT0icG9ydF9wYWRfZGF0YV9pblsyXSIgc3RhdHVzPSJmaXhlZCIgPgotICAgIDxQb3J0PgotICAgICAgPFByZWYgeD0xNDEuODAwMCB5PTExMS4wNTUwIHNpZGU9RSB3aWR0aD0wLjA3MDAgZGVwdGg9MC4yOTAwIC8+Ci0gICAgICA8TGF5ZXIgaWQ9MyA+Ci0gICAgICAgIDxCb3ggbGx4PTE0MS41MTAwIGxseT0xMTEuMDIwMCB1cng9MTQxLjgwMDAgdXJ5PTExMS4wOTAwIC8+Ci0gICAgICA8L0xheWVyPgotICAgIDwvUG9ydD4KLSAgPC9QaW4+Ci0gIDxQaW4gbmFtZT0icG9ydF9wYWRfZGF0YV9pblsxXSIgc3RhdHVzPSJmaXhlZCIgPgotICAgIDxQb3J0PgotICAgICAgPFByZWYgeD0xNDEuODAwMCB5PTEwNC43ODUwIHNpZGU9RSB3aWR0aD0wLjA3MDAgZGVwdGg9MC4yOTAwIC8+Ci0gICAgICA8TGF5ZXIgaWQ9NSA+Ci0gICAgICAgIDxCb3ggbGx4PTE0MS41MTAwIGxseT0xMDQuNzUwMCB1cng9MTQxLjgwMDAgdXJ5PTEwNC44MjAwIC8+Ci0gICAgICA8L0xheWVyPgotICAgIDwvUG9ydD4KLSAgPC9QaW4+Ci0gIDxQaW4gbmFtZT0icG9ydF9wYWRfZGF0YV9pblswXSIgc3RhdHVzPSJmaXhlZCIgPgotICAgIDxQb3J0PgotICAgICAgPFByZWYgeD0xNDEuODAwMCB5PTExMi4zODUwIHNpZGU9RSB3aWR0aD0wLjA3MDAgZGVwdGg9MC4yOTAwIC8+Ci0gICAgICA8TGF5ZXIgaWQ9MyA+Ci0gICAgICAgIDxCb3ggbGx4PTE0MS41MTAwIGxseT0xMTIuMzUwMCB1cng9MTQxLjgwMDAgdXJ5PTExMi40MjAwIC8+Ci0gICAgICA8L0xheWVyPgotICAgIDwvUG9ydD4KLSAgPC9QaW4+Ci0gIDxQaW4gbmFtZT0icG9ydF9wYWRfZGF0YV9vdXRbMTVdIiBzdGF0dXM9ImZpeGVkIiA+Ci0gICAgPFBvcnQ+Ci0gICAgICA8UHJlZiB4PTAuMDAwMCB5PTc3LjYxNTAgc2lkZT1XIHdpZHRoPTAuMDcwMCBkZXB0aD0wLjI5MDAgLz4KLSAgICAgIDxMYXllciBpZD0zID4KLSAgICAgICAgPEJveCBsbHg9MC4wMDAwIGxseT03Ny41ODAwIHVyeD0wLjI5MDAgdXJ5PTc3LjY1MDAgLz4KLSAgICAgIDwvTGF5ZXI+Ci0gICAgPC9Qb3J0PgotICA8L1Bpbj4KLSAgPFBpbiBuYW1lPSJwb3J0X3BhZF9kYXRhX291dFsxNF0iIHN0YXR1cz0iZml4ZWQiID4KLSAgICA8UG9ydD4KLSAgICAgIDxQcmVmIHg9MC4wMDAwIHk9NzcuNjE1MCBzaWRlPVcgd2lkdGg9MC4wNzAwIGRlcHRoPTAuMjkwMCAvPgotICAgICAgPExheWVyIGlkPTUgPgotICAgICAgICA8Qm94IGxseD0wLjAwMDAgbGx5PTc3LjU4MDAgdXJ4PTAuMjkwMCB1cnk9NzcuNjUwMCAvPgotICAgICAgPC9MYXllcj4KLSAgICA8L1BvcnQ+Ci0gIDwvUGluPgotICA8UGluIG5hbWU9InBvcnRfcGFkX2RhdGFfb3V0WzEzXSIgc3RhdHVzPSJmaXhlZCIgPgotICAgIDxQb3J0PgotICAgICAgPFByZWYgeD0wLjAwMDAgeT03NC4xOTUwIHNpZGU9VyB3aWR0aD0wLjA3MDAgZGVwdGg9MC4yOTAwIC8+Ci0gICAgICA8TGF5ZXIgaWQ9MyA+Ci0gICAgICAgIDxCb3ggbGx4PTAuMDAwMCBsbHk9NzQuMTYwMCB1cng9MC4yOTAwIHVyeT03NC4yMzAwIC8+Ci0gICAgICA8L0xheWVyPgotICAgIDwvUG9ydD4KLSAgPC9QaW4+Ci0gIDxQaW4gbmFtZT0icG9ydF9wYWRfZGF0YV9vdXRbMTJdIiBzdGF0dXM9ImZpeGVkIiA+Ci0gICAgPFBvcnQ+Ci0gICAgICA8UHJlZiB4PTAuMDAwMCB5PTcwLjc3NTAgc2lkZT1XIHdpZHRoPTAuMDcwMCBkZXB0aD0wLjI5MDAgLz4KLSAgICAgIDxMYXllciBpZD0zID4KLSAgICAgICAgPEJveCBsbHg9MC4wMDAwIGxseT03MC43NDAwIHVyeD0wLjI5MDAgdXJ5PTcwLjgxMDAgLz4KLSAgICAgIDwvTGF5ZXI+Ci0gICAgPC9Qb3J0PgotICA8L1Bpbj4KLSAgPFBpbiBuYW1lPSJwb3J0X3BhZF9kYXRhX291dFsxMV0iIHN0YXR1cz0iZml4ZWQiID4KLSAgICA8UG9ydD4KLSAgICAgIDxQcmVmIHg9MC4wMDAwIHk9NzcuOTk1MCBzaWRlPVcgd2lkdGg9MC4wNzAwIGRlcHRoPTAuMjkwMCAvPgotICAgICAgPExheWVyIGlkPTMgPgotICAgICAgICA8Qm94IGxseD0wLjAwMDAgbGx5PTc3Ljk2MDAgdXJ4PTAuMjkwMCB1cnk9NzguMDMwMCAvPgotICAgICAgPC9MYXllcj4KLSAgICA8L1BvcnQ+Ci0gIDwvUGluPgotICA8UGluIG5hbWU9InBvcnRfcGFkX2RhdGFfb3V0WzEwXSIgc3RhdHVzPSJmaXhlZCIgPgotICAgIDxQb3J0PgotICAgICAgPFByZWYgeD0wLjAwMDAgeT03NC4xOTUwIHNpZGU9VyB3aWR0aD0wLjA3MDAgZGVwdGg9MC4yOTAwIC8+Ci0gICAgICA8TGF5ZXIgaWQ9NSA+Ci0gICAgICAgIDxCb3ggbGx4PTAuMDAwMCBsbHk9NzQuMTYwMCB1cng9MC4yOTAwIHVyeT03NC4yMzAwIC8+Ci0gICAgICA8L0xheWVyPgotICAgIDwvUG9ydD4KLSAgPC9QaW4+Ci0gIDxQaW4gbmFtZT0icG9ydF9wYWRfZGF0YV9vdXRbOV0iIHN0YXR1cz0iZml4ZWQiID4KLSAgICA8UG9ydD4KLSAgICAgIDxQcmVmIHg9MC4wMDAwIHk9NzkuNzA1MCBzaWRlPVcgd2lkdGg9MC4wNzAwIGRlcHRoPTAuMjkwMCAvPgotICAgICAgPExheWVyIGlkPTMgPgotICAgICAgICA8Qm94IGxseD0wLjAwMDAgbGx5PTc5LjY3MDAgdXJ4PTAuMjkwMCB1cnk9NzkuNzQwMCAvPgotICAgICAgPC9MYXllcj4KLSAgICA8L1BvcnQ+Ci0gIDwvUGluPgotICA8UGluIG5hbWU9InBvcnRfcGFkX2RhdGFfb3V0WzhdIiBzdGF0dXM9ImZpeGVkIiA+Ci0gICAgPFBvcnQ+Ci0gICAgICA8UHJlZiB4PTAuMDAwMCB5PTcyLjg2NTAgc2lkZT1XIHdpZHRoPTAuMDcwMCBkZXB0aD0wLjI5MDAgLz4KLSAgICAgIDxMYXllciBpZD0zID4KLSAgICAgICAgPEJveCBsbHg9MC4wMDAwIGxseT03Mi44MzAwIHVyeD0wLjI5MDAgdXJ5PTcyLjkwMDAgLz4KLSAgICAgIDwvTGF5ZXI+Ci0gICAgPC9Qb3J0PgotICA8L1Bpbj4KLSAgPFBpbiBuYW1lPSJwb3J0X3BhZF9kYXRhX291dFs3XSIgc3RhdHVzPSJmaXhlZCIgPgotICAgIDxQb3J0PgotICAgICAgPFByZWYgeD02OS45MDAwIHk9MTUzLjkwMDAgc2lkZT1OIHdpZHRoPTAuMDcwMCBkZXB0aD0wLjI5MDAgLz4KLSAgICAgIDxMYXllciBpZD0yID4KLSAgICAgICAgPEJveCBsbHg9NjkuODY1MCBsbHk9MTUzLjYxMDAgdXJ4PTY5LjkzNTAgdXJ5PTE1My45MDAwIC8+Ci0gICAgICA8L0xheWVyPgotICAgIDwvUG9ydD4KLSAgPC9QaW4+Ci0gIDxQaW4gbmFtZT0icG9ydF9wYWRfZGF0YV9vdXRbNl0iIHN0YXR1cz0iZml4ZWQiID4KLSAgICA8UG9ydD4KLSAgICAgIDxQcmVmIHg9NTguMTAwMCB5PTE1My45MDAwIHNpZGU9TiB3aWR0aD0wLjA3MDAgZGVwdGg9MC4yOTAwIC8+Ci0gICAgICA8TGF5ZXIgaWQ9MiA+Ci0gICAgICAgIDxCb3ggbGx4PTU4LjA2NTAgbGx5PTE1My42MTAwIHVyeD01OC4xMzUwIHVyeT0xNTMuOTAwMCAvPgotICAgICAgPC9MYXllcj4KLSAgICA8L1BvcnQ+Ci0gIDwvUGluPgotICA8UGluIG5hbWU9InBvcnRfcGFkX2RhdGFfb3V0WzVdIiBzdGF0dXM9ImZpeGVkIiA+Ci0gICAgPFBvcnQ+Ci0gICAgICA8UHJlZiB4PTY3LjEwMDAgeT0xNTMuOTAwMCBzaWRlPU4gd2lkdGg9MC4wNzAwIGRlcHRoPTAuMjkwMCAvPgotICAgICAgPExheWVyIGlkPTIgPgotICAgICAgICA8Qm94IGxseD02Ny4wNjUwIGxseT0xNTMuNjEwMCB1cng9NjcuMTM1MCB1cnk9MTUzLjkwMDAgLz4KLSAgICAgIDwvTGF5ZXI+Ci0gICAgPC9Qb3J0PgotICA8L1Bpbj4KLSAgPFBpbiBuYW1lPSJwb3J0X3BhZF9kYXRhX291dFs0XSIgc3RhdHVzPSJmaXhlZCIgPgotICAgIDxQb3J0PgotICAgICAgPFByZWYgeD02NC43MDAwIHk9MTUzLjkwMDAgc2lkZT1OIHdpZHRoPTAuMDcwMCBkZXB0aD0wLjI5MDAgLz4KLSAgICAgIDxMYXllciBpZD0yID4KLSAgICAgICAgPEJveCBsbHg9NjQuNjY1MCBsbHk9MTUzLjYxMDAgdXJ4PTY0LjczNTAgdXJ5PTE1My45MDAwIC8+Ci0gICAgICA8L0xheWVyPgotICAgIDwvUG9ydD4KLSAgPC9QaW4+Ci0gIDxQaW4gbmFtZT0icG9ydF9wYWRfZGF0YV9vdXRbM10iIHN0YXR1cz0iZml4ZWQiID4KLSAgICA8UG9ydD4KLSAgICAgIDxQcmVmIHg9NzIuMTAwMCB5PTE1My45MDAwIHNpZGU9TiB3aWR0aD0wLjA3MDAgZGVwdGg9MC4yOTAwIC8+Ci0gICAgICA8TGF5ZXIgaWQ9MiA+Ci0gICAgICAgIDxCb3ggbGx4PTcyLjA2NTAgbGx5PTE1My42MTAwIHVyeD03Mi4xMzUwIHVyeT0xNTMuOTAwMCAvPgotICAgICAgPC9MYXllcj4KLSAgICA8L1BvcnQ+Ci0gIDwvUGluPgotICA8UGluIG5hbWU9InBvcnRfcGFkX2RhdGFfb3V0WzJdIiBzdGF0dXM9ImZpeGVkIiA+Ci0gICAgPFBvcnQ+Ci0gICAgICA8UHJlZiB4PTc3LjUwMDAgeT0xNTMuOTAwMCBzaWRlPU4gd2lkdGg9MC4wNzAwIGRlcHRoPTAuMjkwMCAvPgotICAgICAgPExheWVyIGlkPTIgPgotICAgICAgICA8Qm94IGxseD03Ny40NjUwIGxseT0xNTMuNjEwMCB1cng9NzcuNTM1MCB1cnk9MTUzLjkwMDAgLz4KLSAgICAgIDwvTGF5ZXI+Ci0gICAgPC9Qb3J0PgotICA8L1Bpbj4KLSAgPFBpbiBuYW1lPSJwb3J0X3BhZF9kYXRhX291dFsxXSIgc3RhdHVzPSJmaXhlZCIgPgotICAgIDxQb3J0PgotICAgICAgPFByZWYgeD01NS45MDAwIHk9MTUzLjkwMDAgc2lkZT1OIHdpZHRoPTAuMDcwMCBkZXB0aD0wLjI5MDAgLz4KLSAgICAgIDxMYXllciBpZD0yID4KLSAgICAgICAgPEJveCBsbHg9NTUuODY1MCBsbHk9MTUzLjYxMDAgdXJ4PTU1LjkzNTAgdXJ5PTE1My45MDAwIC8+Ci0gICAgICA8L0xheWVyPgotICAgIDwvUG9ydD4KLSAgPC9QaW4+Ci0gIDxQaW4gbmFtZT0icG9ydF9wYWRfZGF0YV9vdXRbMF0iIHN0YXR1cz0iZml4ZWQiID4KLSAgICA8UG9ydD4KLSAgICAgIDxQcmVmIHg9MC4wMDAwIHk9ODEuMDM1MCBzaWRlPVcgd2lkdGg9MC4wNzAwIGRlcHRoPTAuMjkwMCAvPgotICAgICAgPExheWVyIGlkPTMgPgotICAgICAgICA8Qm94IGxseD0wLjAwMDAgbGx5PTgxLjAwMDAgdXJ4PTAuMjkwMCB1cnk9ODEuMDcwMCAvPgotICAgICAgPC9MYXllcj4KLSAgICA8L1BvcnQ+Ci0gIDwvUGluPgotICA8UGluIG5hbWU9InBvcnRfYXMiIHN0YXR1cz0iZml4ZWQiID4KLSAgICA8UG9ydD4KLSAgICAgIDxQcmVmIHg9NDkuMzAwMCB5PTE1My45MDAwIHNpZGU9TiB3aWR0aD0wLjA3MDAgZGVwdGg9MC4yOTAwIC8+Ci0gICAgICA8TGF5ZXIgaWQ9MiA+Ci0gICAgICAgIDxCb3ggbGx4PTQ5LjI2NTAgbGx5PTE1My42MTAwIHVyeD00OS4zMzUwIHVyeT0xNTMuOTAwMCAvPgotICAgICAgPC9MYXllcj4KLSAgICA8L1BvcnQ+Ci0gIDwvUGluPgotICA8UGluIG5hbWU9InBvcnRfcmVhZCIgc3RhdHVzPSJmaXhlZCIgPgotICAgIDxQb3J0PgotICAgICAgPFByZWYgeD0wLjAwMDAgeT04MC40NjUwIHNpZGU9VyB3aWR0aD0wLjA3MDAgZGVwdGg9MC4yOTAwIC8+Ci0gICAgICA8TGF5ZXIgaWQ9MyA+Ci0gICAgICAgIDxCb3ggbGx4PTAuMDAwMCBsbHk9ODAuNDMwMCB1cng9MC4yOTAwIHVyeT04MC41MDAwIC8+Ci0gICAgICA8L0xheWVyPgotICAgIDwvUG9ydD4KLSAgPC9QaW4+Ci0gIDxQaW4gbmFtZT0icG9ydF93cml0ZSIgc3RhdHVzPSJmaXhlZCIgPgotICAgIDxQb3J0PgotICAgICAgPFByZWYgeD0wLjAwMDAgeT03My44MTUwIHNpZGU9VyB3aWR0aD0wLjA3MDAgZGVwdGg9MC4yOTAwIC8+Ci0gICAgICA8TGF5ZXIgaWQ9NSA+Ci0gICAgICAgIDxCb3ggbGx4PTAuMDAwMCBsbHk9NzMuNzgwMCB1cng9MC4yOTAwIHVyeT03My44NTAwIC8+Ci0gICAgICA8L0xheWVyPgotICAgIDwvUG9ydD4KLSAgPC9QaW4+Ci0gIDxQaW4gbmFtZT0icG9ydF93cml0ZV9oIiBzdGF0dXM9ImZpeGVkIiA+Ci0gICAgPFBvcnQ+Ci0gICAgICA8UHJlZiB4PTAuMDAwMCB5PTgwLjQ2NTAgc2lkZT1XIHdpZHRoPTAuMDcwMCBkZXB0aD0wLjI5MDAgLz4KLSAgICAgIDxMYXllciBpZD01ID4KLSAgICAgICAgPEJveCBsbHg9MC4wMDAwIGxseT04MC40MzAwIHVyeD0wLjI5MDAgdXJ5PTgwLjUwMDAgLz4KLSAgICAgIDwvTGF5ZXI+Ci0gICAgPC9Qb3J0PgotICA8L1Bpbj4KLSAgPFBpbiBuYW1lPSJ0X3NkaVsyXSIgc3RhdHVzPSJmaXhlZCIgPgotICAgIDxQb3J0PgotICAgICAgPFByZWYgeD0wLjAwMDAgeT0xMjAuMzY1MCBzaWRlPVcgd2lkdGg9MC4wNzAwIGRlcHRoPTAuMjkwMCAvPgotICAgICAgPExheWVyIGlkPTMgPgotICAgICAgICA8Qm94IGxseD0wLjAwMDAgbGx5PTEyMC4zMzAwIHVyeD0wLjI5MDAgdXJ5PTEyMC40MDAwIC8+Ci0gICAgICA8L0xheWVyPgotICAgIDwvUG9ydD4KLSAgPC9QaW4+Ci0gIDxQaW4gbmFtZT0idF9zZGlbMV0iIHN0YXR1cz0iZml4ZWQiID4KLSAgICA8UG9ydD4KLSAgICAgIDxQcmVmIHg9MC4wMDAwIHk9OTcuMzc1MCBzaWRlPVcgd2lkdGg9MC4wNzAwIGRlcHRoPTAuMjkwMCAvPgotICAgICAgPExheWVyIGlkPTMgPgotICAgICAgICA8Qm94IGxseD0wLjAwMDAgbGx5PTk3LjM0MDAgdXJ4PTAuMjkwMCB1cnk9OTcuNDEwMCAvPgotICAgICAgPC9MYXllcj4KLSAgICA8L1BvcnQ+Ci0gIDwvUGluPgotICA8UGluIG5hbWU9InRfc2RpWzBdIiBzdGF0dXM9ImZpeGVkIiA+Ci0gICAgPFBvcnQ+Ci0gICAgICA8UHJlZiB4PTAuMDAwMCB5PTE1MS4xNDUwIHNpZGU9VyB3aWR0aD0wLjA3MDAgZGVwdGg9MC4yOTAwIC8+Ci0gICAgICA8TGF5ZXIgaWQ9MyA+Ci0gICAgICAgIDxCb3ggbGx4PTAuMDAwMCBsbHk9MTUxLjExMDAgdXJ4PTAuMjkwMCB1cnk9MTUxLjE4MDAgLz4KLSAgICAgIDwvTGF5ZXI+Ci0gICAgPC9Qb3J0PgotICA8L1Bpbj4KLSAgPFBpbiBuYW1lPSJ0X3Nkb1syXSIgc3RhdHVzPSJmaXhlZCIgPgotICAgIDxQb3J0PgotICAgICAgPFByZWYgeD0wLjAwMDAgeT05My45NTUwIHNpZGU9VyB3aWR0aD0wLjA3MDAgZGVwdGg9MC4yOTAwIC8+Ci0gICAgICA8TGF5ZXIgaWQ9MyA+Ci0gICAgICAgIDxCb3ggbGx4PTAuMDAwMCBsbHk9OTMuOTIwMCB1cng9MC4yOTAwIHVyeT05My45OTAwIC8+Ci0gICAgICA8L0xheWVyPgotICAgIDwvUG9ydD4KLSAgPC9QaW4+Ci0gIDxQaW4gbmFtZT0idF9zZG9bMV0iIHN0YXR1cz0iZml4ZWQiID4KLSAgICA8UG9ydD4KLSAgICAgIDxQcmVmIHg9MC4wMDAwIHk9NzEuMTU1MCBzaWRlPVcgd2lkdGg9MC4wNzAwIGRlcHRoPTAuMjkwMCAvPgotICAgICAgPExheWVyIGlkPTMgPgotICAgICAgICA8Qm94IGxseD0wLjAwMDAgbGx5PTcxLjEyMDAgdXJ4PTAuMjkwMCB1cnk9NzEuMTkwMCAvPgotICAgICAgPC9MYXllcj4KLSAgICA8L1BvcnQ+Ci0gIDwvUGluPgotICA8UGluIG5hbWU9InRfc2RvWzBdIiBzdGF0dXM9ImZpeGVkIiA+Ci0gICAgPFBvcnQ+Ci0gICAgICA8UHJlZiB4PTAuMDAwMCB5PTc2LjA5NTAgc2lkZT1XIHdpZHRoPTAuMDcwMCBkZXB0aD0wLjI5MDAgLz4KLSAgICAgIDxMYXllciBpZD0zID4KLSAgICAgICAgPEJveCBsbHg9MC4wMDAwIGxseT03Ni4wNjAwIHVyeD0wLjI5MDAgdXJ5PTc2LjEzMDAgLz4KLSAgICAgIDwvTGF5ZXI+Ci0gICAgPC9Qb3J0PgotICA8L1Bpbj4KLSAgPFBpbiBuYW1lPSJiaW8iIHN0YXR1cz0iZml4ZWQiID4KLSAgICA8UG9ydD4KLSAgICAgIDxQcmVmIHg9MC4wMDAwIHk9MTQzLjM1NTAgc2lkZT1XIHdpZHRoPTAuMDcwMCBkZXB0aD0wLjI5MDAgLz4KLSAgICAgIDxMYXllciBpZD0zID4KLSAgICAgICAgPEJveCBsbHg9MC4wMDAwIGxseT0xNDMuMzIwMCB1cng9MC4yOTAwIHVyeT0xNDMuMzkwMCAvPgotICAgICAgPC9MYXllcj4KLSAgICA8L1BvcnQ+Ci0gIDwvUGluPgotICA8UGluIG5hbWU9ImludCIgc3RhdHVzPSJmaXhlZCIgPgotICAgIDxQb3J0PgotICAgICAgPFByZWYgeD0xNDEuODAwMCB5PTEuMDQ1MCBzaWRlPUUgd2lkdGg9MC4wNzAwIGRlcHRoPTAuMjkwMCAvPgotICAgICAgPExheWVyIGlkPTUgPgotICAgICAgICA8Qm94IGxseD0xNDEuNTEwMCBsbHk9MS4wMTAwIHVyeD0xNDEuODAwMCB1cnk9MS4wODAwIC8+Ci0gICAgICA8L0xheWVyPgotICAgIDwvUG9ydD4KLSAgPC9QaW4+Ci0gIDxQaW4gbmFtZT0iUkNfQ0dfVEVTVF9QT1JUIiBzdGF0dXM9ImZpeGVkIiA+Ci0gICAgPFBvcnQ+Ci0gICAgICA8UHJlZiB4PTAuMDAwMCB5PTcxLjM0NTAgc2lkZT1XIHdpZHRoPTAuMDcwMCBkZXB0aD0wLjI5MDAgLz4KLSAgICAgIDxMYXllciBpZD01ID4KLSAgICAgICAgPEJveCBsbHg9MC4wMDAwIGxseT03MS4zMTAwIHVyeD0wLjI5MDAgdXJ5PTcxLjM4MDAgLz4KLSAgICAgIDwvTGF5ZXI+Ci0gICAgPC9Qb3J0PgotICA8L1Bpbj4KLSAgPFBpbiBuYW1lPSJTUlBHX1BHX2luIiBzdGF0dXM9ImZpeGVkIiA+Ci0gICAgPFBvcnQ+Ci0gICAgICA8UHJlZiB4PTE0MS44MDAwIHk9MS40MjUwIHNpZGU9RSB3aWR0aD0wLjA3MDAgZGVwdGg9MC4yOTAwIC8+Ci0gICAgICA8TGF5ZXIgaWQ9NSA+Ci0gICAgICAgIDxCb3ggbGx4PTE0MS41MTAwIGxseT0xLjM5MDAgdXJ4PTE0MS44MDAwIHVyeT0xLjQ2MDAgLz4KLSAgICAgIDwvTGF5ZXI+Ci0gICAgPC9Qb3J0PgotICA8L1Bpbj4KLSAgPFBpbiBuYW1lPSJTUlBHX1BHX2luXzEiIHN0YXR1cz0iZml4ZWQiID4KLSAgICA8UG9ydD4KLSAgICAgIDxQcmVmIHg9MTQxLjgwMDAgeT0xLjgwNTAgc2lkZT1FIHdpZHRoPTAuMDcwMCBkZXB0aD0wLjI5MDAgLz4KLSAgICAgIDxMYXllciBpZD01ID4KLSAgICAgICAgPEJveCBsbHg9MTQxLjUxMDAgbGx5PTEuNzcwMCB1cng9MTQxLjgwMDAgdXJ5PTEuODQwMCAvPgotICAgICAgPC9MYXllcj4KLSAgICA8L1BvcnQ+Ci0gIDwvUGluPgotICA8UGluIG5hbWU9IkRGVF9zZW4iIHN0YXR1cz0iZml4ZWQiID4KLSAgICA8UG9ydD4KLSAgICAgIDxQcmVmIHg9OC4xMDAwIHk9MC4wMDAwIHNpZGU9UyB3aWR0aD0wLjA3MDAgZGVwdGg9MC4yOTAwIC8+Ci0gICAgICA8TGF5ZXIgaWQ9MiA+Ci0gICAgICAgIDxCb3ggbGx4PTguMDY1MCBsbHk9MC4wMDAwIHVyeD04LjEzNTAgdXJ5PTAuMjkwMCAvPgotICAgICAgPC9MYXllcj4KLSAgICA8L1BvcnQ+Ci0gIDwvUGluPgotPC9JT1BpbnM+Ci0KLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSMgIFBHUGluOiA8cGluPiA8bmV0PiB7aW58b3V0fGlub3V0fSB7cHdyfGduZHwtfSB7cGxhY2VkfGZpeGVkfC19IDx4PiA8eT4gPHNpZGU+IDxsYXllcklkPiA8bnJCb3g+ICMKLSMgICAgUGluQm94OiA8bGx4PiA8bGx5PiA8dXJ4PiA8dXJ5PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMKLSMgICAgUGluUG9seTogPG5yUHRzPiA8eDE+IDx5MT4gPHgyPiA8eTI+Li4uPHhuPiA8eW4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMKLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLVBHUGluOiBWU1MgVlNTIGlub3V0IGduZCBmaXhlZCAxNDEuODAwMCAxNTAuNDgwMCBFIDEgMQotICBQaW5Cb3g6IDE0MS43NDAwIDE1MC40MjAwIDE0MS44MDAwIDE1MC41NDAwIC1seXIgMQotUEdQaW46IFZTUyBWU1MgaW5vdXQgZ25kIGZpeGVkIDAuMDAwMCAxNTAuNDgwMCBXIDEgMQotICBQaW5Cb3g6IDAuMDAwMCAxNTAuNDIwMCAwLjA2MDAgMTUwLjU0MDAgLWx5ciAxCi1QR1BpbjogVlNTIFZTUyBpbm91dCBnbmQgZml4ZWQgMTQxLjgwMDAgMTUzLjkwMDAgRSAxIDEKLSAgUGluQm94OiAxNDEuNzQwMCAxNTMuODQwMCAxNDEuODAwMCAxNTMuOTYwMCAtbHlyIDEKLVBHUGluOiBWU1MgVlNTIGlub3V0IGduZCBmaXhlZCAwLjAwMDAgMTUzLjkwMDAgVyAxIDEKLSAgUGluQm94OiAwLjAwMDAgMTUzLjg0MDAgMC4wNjAwIDE1My45NjAwIC1seXIgMQotUEdQaW46IFZTUyBWU1MgaW5vdXQgZ25kIGZpeGVkIDMwLjkwMDAgMC4wMDAwIFMgNiAxCi0gIFBpbkJveDogMjkuNDAwMCAwLjAwMDAgMzIuNDAwMCAwLjA3MDAgLWx5ciA2Ci1QR1BpbjogVlNTIFZTUyBpbm91dCBnbmQgZml4ZWQgMzAuOTAwMCAxNTMuOTAwMCBOIDYgMQotICBQaW5Cb3g6IDI5LjQwMDAgMTUzLjgzMDAgMzIuNDAwMCAxNTMuOTAwMCAtbHlyIDYKLVBHUGluOiBWU1MgVlNTIGlub3V0IGduZCBmaXhlZCA3My45MDAwIDAuMDAwMCBTIDYgMQotICBQaW5Cb3g6IDcyLjQwMDAgMC4wMDAwIDc1LjQwMDAgMC4wNzAwIC1seXIgNgotUEdQaW46IFZTUyBWU1MgaW5vdXQgZ25kIGZpeGVkIDczLjkwMDAgMTUzLjkwMDAgTiA2IDEKLSAgUGluQm94OiA3Mi40MDAwIDE1My44MzAwIDc1LjQwMDAgMTUzLjkwMDAgLWx5ciA2Ci1QR1BpbjogVlNTIFZTUyBpbm91dCBnbmQgZml4ZWQgMTE2LjkwMDAgMC4wMDAwIFMgNiAxCi0gIFBpbkJveDogMTE1LjQwMDAgMC4wMDAwIDExOC40MDAwIDAuMDcwMCAtbHlyIDYKLVBHUGluOiBWU1MgVlNTIGlub3V0IGduZCBmaXhlZCAxMTYuOTAwMCAxNTMuOTAwMCBOIDYgMQotICBQaW5Cb3g6IDExNS40MDAwIDE1My44MzAwIDExOC40MDAwIDE1My45MDAwIC1seXIgNgotUEdQaW46IFZTUyBWU1MgaW5vdXQgZ25kIGZpeGVkIDE0MS44MDAwIDExNi4yODAwIEUgMSAxCi0gIFBpbkJveDogMTQxLjc0MDAgMTE2LjIyMDAgMTQxLjgwMDAgMTE2LjM0MDAgLWx5ciAxCi1QR1BpbjogVlNTIFZTUyBpbm91dCBnbmQgZml4ZWQgMC4wMDAwIDExNi4yODAwIFcgMSAxCi0gIFBpbkJveDogMC4wMDAwIDExNi4yMjAwIDAuMDYwMCAxMTYuMzQwMCAtbHlyIDEKLVBHUGluOiBWU1MgVlNTIGlub3V0IGduZCBmaXhlZCAxNDEuODAwMCAxMTIuODYwMCBFIDEgMQotICBQaW5Cb3g6IDE0MS43NDAwIDExMi44MDAwIDE0MS44MDAwIDExMi45MjAwIC1seXIgMQotUEdQaW46IFZTUyBWU1MgaW5vdXQgZ25kIGZpeGVkIDAuMDAwMCAxMTIuODYwMCBXIDEgMQotICBQaW5Cb3g6IDAuMDAwMCAxMTIuODAwMCAwLjA2MDAgMTEyLjkyMDAgLWx5ciAxCi1QR1BpbjogVlNTIFZTUyBpbm91dCBnbmQgZml4ZWQgMTQxLjgwMDAgMTA2LjAyMDAgRSAxIDEKLSAgUGluQm94OiAxNDEuNzQwMCAxMDUuOTYwMCAxNDEuODAwMCAxMDYuMDgwMCAtbHlyIDEKLVBHUGluOiBWU1MgVlNTIGlub3V0IGduZCBmaXhlZCAwLjAwMDAgMTA2LjAyMDAgVyAxIDEKLSAgUGluQm94OiAwLjAwMDAgMTA1Ljk2MDAgMC4wNjAwIDEwNi4wODAwIC1seXIgMQotUEdQaW46IFZTUyBWU1MgaW5vdXQgZ25kIGZpeGVkIDE0MS44MDAwIDEwOS40NDAwIEUgMSAxCi0gIFBpbkJveDogMTQxLjc0MDAgMTA5LjM4MDAgMTQxLjgwMDAgMTA5LjUwMDAgLWx5ciAxCi1QR1BpbjogVlNTIFZTUyBpbm91dCBnbmQgZml4ZWQgMC4wMDAwIDEwOS40NDAwIFcgMSAxCi0gIFBpbkJveDogMC4wMDAwIDEwOS4zODAwIDAuMDYwMCAxMDkuNTAwMCAtbHlyIDEKLVBHUGluOiBWU1MgVlNTIGlub3V0IGduZCBmaXhlZCAxNDEuODAwMCAxMTkuNzAwMCBFIDEgMQotICBQaW5Cb3g6IDE0MS43NDAwIDExOS42NDAwIDE0MS44MDAwIDExOS43NjAwIC1seXIgMQotUEdQaW46IFZTUyBWU1MgaW5vdXQgZ25kIGZpeGVkIDAuMDAwMCAxMTkuNzAwMCBXIDEgMQotICBQaW5Cb3g6IDAuMDAwMCAxMTkuNjQwMCAwLjA2MDAgMTE5Ljc2MDAgLWx5ciAxCi1QR1BpbjogVlNTIFZTUyBpbm91dCBnbmQgZml4ZWQgMTQxLjgwMDAgMTIzLjEyMDAgRSAxIDEKLSAgUGluQm94OiAxNDEuNzQwMCAxMjMuMDYwMCAxNDEuODAwMCAxMjMuMTgwMCAtbHlyIDEKLVBHUGluOiBWU1MgVlNTIGlub3V0IGduZCBmaXhlZCAwLjAwMDAgMTIzLjEyMDAgVyAxIDEKLSAgUGluQm94OiAwLjAwMDAgMTIzLjA2MDAgMC4wNjAwIDEyMy4xODAwIC1seXIgMQotUEdQaW46IFZTUyBWU1MgaW5vdXQgZ25kIGZpeGVkIDE0MS44MDAwIDE0Ny4wNjAwIEUgMSAxCi0gIFBpbkJveDogMTQxLjc0MDAgMTQ3LjAwMDAgMTQxLjgwMDAgMTQ3LjEyMDAgLWx5ciAxCi1QR1BpbjogVlNTIFZTUyBpbm91dCBnbmQgZml4ZWQgMC4wMDAwIDE0Ny4wNjAwIFcgMSAxCi0gIFBpbkJveDogMC4wMDAwIDE0Ny4wMDAwIDAuMDYwMCAxNDcuMTIwMCAtbHlyIDEKLVBHUGluOiBWU1MgVlNTIGlub3V0IGduZCBmaXhlZCAxNDEuODAwMCAxNDMuNjQwMCBFIDEgMQotICBQaW5Cb3g6IDE0MS43NDAwIDE0My41ODAwIDE0MS44MDAwIDE0My43MDAwIC1seXIgMQotUEdQaW46IFZTUyBWU1MgaW5vdXQgZ25kIGZpeGVkIDAuMDAwMCAxNDMuNjQwMCBXIDEgMQotICBQaW5Cb3g6IDAuMDAwMCAxNDMuNTgwMCAwLjA2MDAgMTQzLjcwMDAgLWx5ciAxCi1QR1BpbjogVlNTIFZTUyBpbm91dCBnbmQgZml4ZWQgMTQxLjgwMDAgMTQwLjIyMDAgRSAxIDEKLSAgUGluQm94OiAxNDEuNzQwMCAxNDAuMTYwMCAxNDEuODAwMCAxNDAuMjgwMCAtbHlyIDEKLVBHUGluOiBWU1MgVlNTIGlub3V0IGduZCBmaXhlZCAwLjAwMDAgMTQwLjIyMDAgVyAxIDEKLSAgUGluQm94OiAwLjAwMDAgMTQwLjE2MDAgMC4wNjAwIDE0MC4yODAwIC1seXIgMQotUEdQaW46IFZTUyBWU1MgaW5vdXQgZ25kIGZpeGVkIDE0MS44MDAwIDEzNi44MDAwIEUgMSAxCi0gIFBpbkJveDogMTQxLjc0MDAgMTM2Ljc0MDAgMTQxLjgwMDAgMTM2Ljg2MDAgLWx5ciAxCi1QR1BpbjogVlNTIFZTUyBpbm91dCBnbmQgZml4ZWQgMC4wMDAwIDEzNi44MDAwIFcgMSAxCi0gIFBpbkJveDogMC4wMDAwIDEzNi43NDAwIDAuMDYwMCAxMzYuODYwMCAtbHlyIDEKLVBHUGluOiBWU1MgVlNTIGlub3V0IGduZCBmaXhlZCAxNDEuODAwMCAxMzMuMzgwMCBFIDEgMQotICBQaW5Cb3g6IDE0MS43NDAwIDEzMy4zMjAwIDE0MS44MDAwIDEzMy40NDAwIC1seXIgMQotUEdQaW46IFZTUyBWU1MgaW5vdXQgZ25kIGZpeGVkIDAuMDAwMCAxMzMuMzgwMCBXIDEgMQotICBQaW5Cb3g6IDAuMDAwMCAxMzMuMzIwMCAwLjA2MDAgMTMzLjQ0MDAgLWx5ciAxCi1QR1BpbjogVlNTIFZTUyBpbm91dCBnbmQgZml4ZWQgMTQxLjgwMDAgMTI5Ljk2MDAgRSAxIDEKLSAgUGluQm94OiAxNDEuNzQwMCAxMjkuOTAwMCAxNDEuODAwMCAxMzAuMDIwMCAtbHlyIDEKLVBHUGluOiBWU1MgVlNTIGlub3V0IGduZCBmaXhlZCAwLjAwMDAgMTI5Ljk2MDAgVyAxIDEKLSAgUGluQm94OiAwLjAwMDAgMTI5LjkwMDAgMC4wNjAwIDEzMC4wMjAwIC1seXIgMQotUEdQaW46IFZTUyBWU1MgaW5vdXQgZ25kIGZpeGVkIDE0MS44MDAwIDEyNi41NDAwIEUgMSAxCi0gIFBpbkJveDogMTQxLjc0MDAgMTI2LjQ4MDAgMTQxLjgwMDAgMTI2LjYwMDAgLWx5ciAxCi1QR1BpbjogVlNTIFZTUyBpbm91dCBnbmQgZml4ZWQgMC4wMDAwIDEyNi41NDAwIFcgMSAxCi0gIFBpbkJveDogMC4wMDAwIDEyNi40ODAwIDAuMDYwMCAxMjYuNjAwMCAtbHlyIDEKLVBHUGluOiBWU1MgVlNTIGlub3V0IGduZCBmaXhlZCAxNDEuODAwMCA2MS41NjAwIEUgMSAxCi0gIFBpbkJveDogMTQxLjc0MDAgNjEuNTAwMCAxNDEuODAwMCA2MS42MjAwIC1seXIgMQotUEdQaW46IFZTUyBWU1MgaW5vdXQgZ25kIGZpeGVkIDAuMDAwMCA2MS41NjAwIFcgMSAxCi0gIFBpbkJveDogMC4wMDAwIDYxLjUwMDAgMC4wNjAwIDYxLjYyMDAgLWx5ciAxCi1QR1BpbjogVlNTIFZTUyBpbm91dCBnbmQgZml4ZWQgMTQxLjgwMDAgNzEuODIwMCBFIDEgMQotICBQaW5Cb3g6IDE0MS43NDAwIDcxLjc2MDAgMTQxLjgwMDAgNzEuODgwMCAtbHlyIDEKLVBHUGluOiBWU1MgVlNTIGlub3V0IGduZCBmaXhlZCAwLjAwMDAgNzEuODIwMCBXIDEgMQotICBQaW5Cb3g6IDAuMDAwMCA3MS43NjAwIDAuMDYwMCA3MS44ODAwIC1seXIgMQotUEdQaW46IFZTUyBWU1MgaW5vdXQgZ25kIGZpeGVkIDE0MS44MDAwIDY4LjQwMDAgRSAxIDEKLSAgUGluQm94OiAxNDEuNzQwMCA2OC4zNDAwIDE0MS44MDAwIDY4LjQ2MDAgLWx5ciAxCi1QR1BpbjogVlNTIFZTUyBpbm91dCBnbmQgZml4ZWQgMC4wMDAwIDY4LjQwMDAgVyAxIDEKLSAgUGluQm94OiAwLjAwMDAgNjguMzQwMCAwLjA2MDAgNjguNDYwMCAtbHlyIDEKLVBHUGluOiBWU1MgVlNTIGlub3V0IGduZCBmaXhlZCAxNDEuODAwMCA2NC45ODAwIEUgMSAxCi0gIFBpbkJveDogMTQxLjc0MDAgNjQuOTIwMCAxNDEuODAwMCA2NS4wNDAwIC1seXIgMQotUEdQaW46IFZTUyBWU1MgaW5vdXQgZ25kIGZpeGVkIDAuMDAwMCA2NC45ODAwIFcgMSAxCi0gIFBpbkJveDogMC4wMDAwIDY0LjkyMDAgMC4wNjAwIDY1LjA0MDAgLWx5ciAxCi1QR1BpbjogVlNTIFZTUyBpbm91dCBnbmQgZml4ZWQgMTQxLjgwMDAgNzUuMjQwMCBFIDEgMQotICBQaW5Cb3g6IDE0MS43NDAwIDc1LjE4MDAgMTQxLjgwMDAgNzUuMzAwMCAtbHlyIDEKLVBHUGluOiBWU1MgVlNTIGlub3V0IGduZCBmaXhlZCAwLjAwMDAgNzUuMjQwMCBXIDEgMQotICBQaW5Cb3g6IDAuMDAwMCA3NS4xODAwIDAuMDYwMCA3NS4zMDAwIC1seXIgMQotUEdQaW46IFZTUyBWU1MgaW5vdXQgZ25kIGZpeGVkIDE0MS44MDAwIDc4LjY2MDAgRSAxIDEKLSAgUGluQm94OiAxNDEuNzQwMCA3OC42MDAwIDE0MS44MDAwIDc4LjcyMDAgLWx5ciAxCi1QR1BpbjogVlNTIFZTUyBpbm91dCBnbmQgZml4ZWQgMC4wMDAwIDc4LjY2MDAgVyAxIDEKLSAgUGluQm94OiAwLjAwMDAgNzguNjAwMCAwLjA2MDAgNzguNzIwMCAtbHlyIDEKLVBHUGluOiBWU1MgVlNTIGlub3V0IGduZCBmaXhlZCAxNDEuODAwMCA5Mi4zNDAwIEUgMSAxCi0gIFBpbkJveDogMTQxLjc0MDAgOTIuMjgwMCAxNDEuODAwMCA5Mi40MDAwIC1seXIgMQotUEdQaW46IFZTUyBWU1MgaW5vdXQgZ25kIGZpeGVkIDAuMDAwMCA5Mi4zNDAwIFcgMSAxCi0gIFBpbkJveDogMC4wMDAwIDkyLjI4MDAgMC4wNjAwIDkyLjQwMDAgLWx5ciAxCi1QR1BpbjogVlNTIFZTUyBpbm91dCBnbmQgZml4ZWQgMTQxLjgwMDAgODguOTIwMCBFIDEgMQotICBQaW5Cb3g6IDE0MS43NDAwIDg4Ljg2MDAgMTQxLjgwMDAgODguOTgwMCAtbHlyIDEKLVBHUGluOiBWU1MgVlNTIGlub3V0IGduZCBmaXhlZCAwLjAwMDAgODguOTIwMCBXIDEgMQotICBQaW5Cb3g6IDAuMDAwMCA4OC44NjAwIDAuMDYwMCA4OC45ODAwIC1seXIgMQotUEdQaW46IFZTUyBWU1MgaW5vdXQgZ25kIGZpeGVkIDE0MS44MDAwIDg1LjUwMDAgRSAxIDEKLSAgUGluQm94OiAxNDEuNzQwMCA4NS40NDAwIDE0MS44MDAwIDg1LjU2MDAgLWx5ciAxCi1QR1BpbjogVlNTIFZTUyBpbm91dCBnbmQgZml4ZWQgMC4wMDAwIDg1LjUwMDAgVyAxIDEKLSAgUGluQm94OiAwLjAwMDAgODUuNDQwMCAwLjA2MDAgODUuNTYwMCAtbHlyIDEKLVBHUGluOiBWU1MgVlNTIGlub3V0IGduZCBmaXhlZCAxNDEuODAwMCA4Mi4wODAwIEUgMSAxCi0gIFBpbkJveDogMTQxLjc0MDAgODIuMDIwMCAxNDEuODAwMCA4Mi4xNDAwIC1seXIgMQotUEdQaW46IFZTUyBWU1MgaW5vdXQgZ25kIGZpeGVkIDAuMDAwMCA4Mi4wODAwIFcgMSAxCi0gIFBpbkJveDogMC4wMDAwIDgyLjAyMDAgMC4wNjAwIDgyLjE0MDAgLWx5ciAxCi1QR1BpbjogVlNTIFZTUyBpbm91dCBnbmQgZml4ZWQgMTQxLjgwMDAgMTAyLjYwMDAgRSAxIDEKLSAgUGluQm94OiAxNDEuNzQwMCAxMDIuNTQwMCAxNDEuODAwMCAxMDIuNjYwMCAtbHlyIDEKLVBHUGluOiBWU1MgVlNTIGlub3V0IGduZCBmaXhlZCAwLjAwMDAgMTAyLjYwMDAgVyAxIDEKLSAgUGluQm94OiAwLjAwMDAgMTAyLjU0MDAgMC4wNjAwIDEwMi42NjAwIC1seXIgMQotUEdQaW46IFZTUyBWU1MgaW5vdXQgZ25kIGZpeGVkIDE0MS44MDAwIDk5LjE4MDAgRSAxIDEKLSAgUGluQm94OiAxNDEuNzQwMCA5OS4xMjAwIDE0MS44MDAwIDk5LjI0MDAgLWx5ciAxCi1QR1BpbjogVlNTIFZTUyBpbm91dCBnbmQgZml4ZWQgMC4wMDAwIDk5LjE4MDAgVyAxIDEKLSAgUGluQm94OiAwLjAwMDAgOTkuMTIwMCAwLjA2MDAgOTkuMjQwMCAtbHlyIDEKLVBHUGluOiBWU1MgVlNTIGlub3V0IGduZCBmaXhlZCAxNDEuODAwMCA5NS43NjAwIEUgMSAxCi0gIFBpbkJveDogMTQxLjc0MDAgOTUuNzAwMCAxNDEuODAwMCA5NS44MjAwIC1seXIgMQotUEdQaW46IFZTUyBWU1MgaW5vdXQgZ25kIGZpeGVkIDAuMDAwMCA5NS43NjAwIFcgMSAxCi0gIFBpbkJveDogMC4wMDAwIDk1LjcwMDAgMC4wNjAwIDk1LjgyMDAgLWx5ciAxCi1QR1BpbjogVlNTIFZTUyBpbm91dCBnbmQgZml4ZWQgMTQxLjgwMDAgMjMuOTQwMCBFIDEgMQotICBQaW5Cb3g6IDE0MS43NDAwIDIzLjg4MDAgMTQxLjgwMDAgMjQuMDAwMCAtbHlyIDEKLVBHUGluOiBWU1MgVlNTIGlub3V0IGduZCBmaXhlZCAwLjAwMDAgMjMuOTQwMCBXIDEgMQotICBQaW5Cb3g6IDAuMDAwMCAyMy44ODAwIDAuMDYwMCAyNC4wMDAwIC1seXIgMQotUEdQaW46IFZTUyBWU1MgaW5vdXQgZ25kIGZpeGVkIDE0MS44MDAwIDE3LjEwMDAgRSAxIDEKLSAgUGluQm94OiAxNDEuNzQwMCAxNy4wNDAwIDE0MS44MDAwIDE3LjE2MDAgLWx5ciAxCi1QR1BpbjogVlNTIFZTUyBpbm91dCBnbmQgZml4ZWQgMC4wMDAwIDE3LjEwMDAgVyAxIDEKLSAgUGluQm94OiAwLjAwMDAgMTcuMDQwMCAwLjA2MDAgMTcuMTYwMCAtbHlyIDEKLVBHUGluOiBWU1MgVlNTIGlub3V0IGduZCBmaXhlZCAxNDEuODAwMCAyMC41MjAwIEUgMSAxCi0gIFBpbkJveDogMTQxLjc0MDAgMjAuNDYwMCAxNDEuODAwMCAyMC41ODAwIC1seXIgMQotUEdQaW46IFZTUyBWU1MgaW5vdXQgZ25kIGZpeGVkIDAuMDAwMCAyMC41MjAwIFcgMSAxCi0gIFBpbkJveDogMC4wMDAwIDIwLjQ2MDAgMC4wNjAwIDIwLjU4MDAgLWx5ciAxCi1QR1BpbjogVlNTIFZTUyBpbm91dCBnbmQgZml4ZWQgMTQxLjgwMDAgMTMuNjgwMCBFIDEgMQotICBQaW5Cb3g6IDE0MS43NDAwIDEzLjYyMDAgMTQxLjgwMDAgMTMuNzQwMCAtbHlyIDEKLVBHUGluOiBWU1MgVlNTIGlub3V0IGduZCBmaXhlZCAwLjAwMDAgMTMuNjgwMCBXIDEgMQotICBQaW5Cb3g6IDAuMDAwMCAxMy42MjAwIDAuMDYwMCAxMy43NDAwIC1seXIgMQotUEdQaW46IFZTUyBWU1MgaW5vdXQgZ25kIGZpeGVkIDE0MS44MDAwIDI3LjM2MDAgRSAxIDEKLSAgUGluQm94OiAxNDEuNzQwMCAyNy4zMDAwIDE0MS44MDAwIDI3LjQyMDAgLWx5ciAxCi1QR1BpbjogVlNTIFZTUyBpbm91dCBnbmQgZml4ZWQgMC4wMDAwIDI3LjM2MDAgVyAxIDEKLSAgUGluQm94OiAwLjAwMDAgMjcuMzAwMCAwLjA2MDAgMjcuNDIwMCAtbHlyIDEKLVBHUGluOiBWU1MgVlNTIGlub3V0IGduZCBmaXhlZCAxNDEuODAwMCAzNC4yMDAwIEUgMSAxCi0gIFBpbkJveDogMTQxLjc0MDAgMzQuMTQwMCAxNDEuODAwMCAzNC4yNjAwIC1seXIgMQotUEdQaW46IFZTUyBWU1MgaW5vdXQgZ25kIGZpeGVkIDAuMDAwMCAzNC4yMDAwIFcgMSAxCi0gIFBpbkJveDogMC4wMDAwIDM0LjE0MDAgMC4wNjAwIDM0LjI2MDAgLWx5ciAxCi1QR1BpbjogVlNTIFZTUyBpbm91dCBnbmQgZml4ZWQgMTQxLjgwMDAgMzAuNzgwMCBFIDEgMQotICBQaW5Cb3g6IDE0MS43NDAwIDMwLjcyMDAgMTQxLjgwMDAgMzAuODQwMCAtbHlyIDEKLVBHUGluOiBWU1MgVlNTIGlub3V0IGduZCBmaXhlZCAwLjAwMDAgMzAuNzgwMCBXIDEgMQotICBQaW5Cb3g6IDAuMDAwMCAzMC43MjAwIDAuMDYwMCAzMC44NDAwIC1seXIgMQotUEdQaW46IFZTUyBWU1MgaW5vdXQgZ25kIGZpeGVkIDE0MS44MDAwIDUxLjMwMDAgRSAxIDEKLSAgUGluQm94OiAxNDEuNzQwMCA1MS4yNDAwIDE0MS44MDAwIDUxLjM2MDAgLWx5ciAxCi1QR1BpbjogVlNTIFZTUyBpbm91dCBnbmQgZml4ZWQgMC4wMDAwIDUxLjMwMDAgVyAxIDEKLSAgUGluQm94OiAwLjAwMDAgNTEuMjQwMCAwLjA2MDAgNTEuMzYwMCAtbHlyIDEKLVBHUGluOiBWU1MgVlNTIGlub3V0IGduZCBmaXhlZCAxNDEuODAwMCA1NC43MjAwIEUgMSAxCi0gIFBpbkJveDogMTQxLjc0MDAgNTQuNjYwMCAxNDEuODAwMCA1NC43ODAwIC1seXIgMQotUEdQaW46IFZTUyBWU1MgaW5vdXQgZ25kIGZpeGVkIDAuMDAwMCA1NC43MjAwIFcgMSAxCi0gIFBpbkJveDogMC4wMDAwIDU0LjY2MDAgMC4wNjAwIDU0Ljc4MDAgLWx5ciAxCi1QR1BpbjogVlNTIFZTUyBpbm91dCBnbmQgZml4ZWQgMTQxLjgwMDAgNDcuODgwMCBFIDEgMQotICBQaW5Cb3g6IDE0MS43NDAwIDQ3LjgyMDAgMTQxLjgwMDAgNDcuOTQwMCAtbHlyIDEKLVBHUGluOiBWU1MgVlNTIGlub3V0IGduZCBmaXhlZCAwLjAwMDAgNDcuODgwMCBXIDEgMQotICBQaW5Cb3g6IDAuMDAwMCA0Ny44MjAwIDAuMDYwMCA0Ny45NDAwIC1seXIgMQotUEdQaW46IFZTUyBWU1MgaW5vdXQgZ25kIGZpeGVkIDE0MS44MDAwIDQ0LjQ2MDAgRSAxIDEKLSAgUGluQm94OiAxNDEuNzQwMCA0NC40MDAwIDE0MS44MDAwIDQ0LjUyMDAgLWx5ciAxCi1QR1BpbjogVlNTIFZTUyBpbm91dCBnbmQgZml4ZWQgMC4wMDAwIDQ0LjQ2MDAgVyAxIDEKLSAgUGluQm94OiAwLjAwMDAgNDQuNDAwMCAwLjA2MDAgNDQuNTIwMCAtbHlyIDEKLVBHUGluOiBWU1MgVlNTIGlub3V0IGduZCBmaXhlZCAxNDEuODAwMCAzNy42MjAwIEUgMSAxCi0gIFBpbkJveDogMTQxLjc0MDAgMzcuNTYwMCAxNDEuODAwMCAzNy42ODAwIC1seXIgMQotUEdQaW46IFZTUyBWU1MgaW5vdXQgZ25kIGZpeGVkIDAuMDAwMCAzNy42MjAwIFcgMSAxCi0gIFBpbkJveDogMC4wMDAwIDM3LjU2MDAgMC4wNjAwIDM3LjY4MDAgLWx5ciAxCi1QR1BpbjogVlNTIFZTUyBpbm91dCBnbmQgZml4ZWQgMTQxLjgwMDAgNDEuMDQwMCBFIDEgMQotICBQaW5Cb3g6IDE0MS43NDAwIDQwLjk4MDAgMTQxLjgwMDAgNDEuMTAwMCAtbHlyIDEKLVBHUGluOiBWU1MgVlNTIGlub3V0IGduZCBmaXhlZCAwLjAwMDAgNDEuMDQwMCBXIDEgMQotICBQaW5Cb3g6IDAuMDAwMCA0MC45ODAwIDAuMDYwMCA0MS4xMDAwIC1seXIgMQotUEdQaW46IFZTUyBWU1MgaW5vdXQgZ25kIGZpeGVkIDE0MS44MDAwIDU4LjE0MDAgRSAxIDEKLSAgUGluQm94OiAxNDEuNzQwMCA1OC4wODAwIDE0MS44MDAwIDU4LjIwMDAgLWx5ciAxCi1QR1BpbjogVlNTIFZTUyBpbm91dCBnbmQgZml4ZWQgMC4wMDAwIDU4LjE0MDAgVyAxIDEKLSAgUGluQm94OiAwLjAwMDAgNTguMDgwMCAwLjA2MDAgNTguMjAwMCAtbHlyIDEKLVBHUGluOiBWU1MgVlNTIGlub3V0IGduZCBmaXhlZCAxNDEuODAwMCA2Ljg0MDAgRSAxIDEKLSAgUGluQm94OiAxNDEuNzQwMCA2Ljc4MDAgMTQxLjgwMDAgNi45MDAwIC1seXIgMQotUEdQaW46IFZTUyBWU1MgaW5vdXQgZ25kIGZpeGVkIDAuMDAwMCA2Ljg0MDAgVyAxIDEKLSAgUGluQm94OiAwLjAwMDAgNi43ODAwIDAuMDYwMCA2LjkwMDAgLWx5ciAxCi1QR1BpbjogVlNTIFZTUyBpbm91dCBnbmQgZml4ZWQgMTQxLjgwMDAgMTAuMjYwMCBFIDEgMQotICBQaW5Cb3g6IDE0MS43NDAwIDEwLjIwMDAgMTQxLjgwMDAgMTAuMzIwMCAtbHlyIDEKLVBHUGluOiBWU1MgVlNTIGlub3V0IGduZCBmaXhlZCAwLjAwMDAgMTAuMjYwMCBXIDEgMQotICBQaW5Cb3g6IDAuMDAwMCAxMC4yMDAwIDAuMDYwMCAxMC4zMjAwIC1seXIgMQotUEdQaW46IFZTUyBWU1MgaW5vdXQgZ25kIGZpeGVkIDE0MS44MDAwIDMuNDIwMCBFIDEgMQotICBQaW5Cb3g6IDE0MS43NDAwIDMuMzYwMCAxNDEuODAwMCAzLjQ4MDAgLWx5ciAxCi1QR1BpbjogVlNTIFZTUyBpbm91dCBnbmQgZml4ZWQgMC4wMDAwIDMuNDIwMCBXIDEgMQotICBQaW5Cb3g6IDAuMDAwMCAzLjM2MDAgMC4wNjAwIDMuNDgwMCAtbHlyIDEKLVBHUGluOiBWU1MgVlNTIGlub3V0IGduZCBmaXhlZCAxNDEuODAwMCAwLjAwMDAgRSAxIDEKLSAgUGluQm94OiAxNDEuNzQwMCAtMC4wNjAwIDE0MS44MDAwIDAuMDYwMCAtbHlyIDEKLVBHUGluOiBWU1MgVlNTIGlub3V0IGduZCBmaXhlZCAwLjAwMDAgMC4wMDAwIFcgMSAxCi0gIFBpbkJveDogMC4wMDAwIC0wLjA2MDAgMC4wNjAwIDAuMDYwMCAtbHlyIDEKLVBHUGluOiBWREQgVkREIGlub3V0IHB3ciBmaXhlZCAxNDEuODAwMCAxNTIuMTkwMCBFIDEgMQotICBQaW5Cb3g6IDE0MS43NDAwIDE1Mi4xMzAwIDE0MS44MDAwIDE1Mi4yNTAwIC1seXIgMQotUEdQaW46IFZERCBWREQgaW5vdXQgcHdyIGZpeGVkIDAuMDAwMCAxNTIuMTkwMCBXIDEgMQotICBQaW5Cb3g6IDAuMDAwMCAxNTIuMTMwMCAwLjA2MDAgMTUyLjI1MDAgLWx5ciAxCi1QR1BpbjogVkREIFZERCBpbm91dCBwd3IgZml4ZWQgMjYuOTAwMCAwLjAwMDAgUyA2IDEKLSAgUGluQm94OiAyNS40MDAwIDAuMDAwMCAyOC40MDAwIDAuMDcwMCAtbHlyIDYKLVBHUGluOiBWREQgVkREIGlub3V0IHB3ciBmaXhlZCAyNi45MDAwIDE1My45MDAwIE4gNiAxCi0gIFBpbkJveDogMjUuNDAwMCAxNTMuODMwMCAyOC40MDAwIDE1My45MDAwIC1seXIgNgotUEdQaW46IFZERCBWREQgaW5vdXQgcHdyIGZpeGVkIDY5LjkwMDAgMC4wMDAwIFMgNiAxCi0gIFBpbkJveDogNjguNDAwMCAwLjAwMDAgNzEuNDAwMCAwLjA3MDAgLWx5ciA2Ci1QR1BpbjogVkREIFZERCBpbm91dCBwd3IgZml4ZWQgNjkuOTAwMCAxNTMuOTAwMCBOIDYgMQotICBQaW5Cb3g6IDY4LjQwMDAgMTUzLjgzMDAgNzEuNDAwMCAxNTMuOTAwMCAtbHlyIDYKLVBHUGluOiBWREQgVkREIGlub3V0IHB3ciBmaXhlZCAxMTIuOTAwMCAwLjAwMDAgUyA2IDEKLSAgUGluQm94OiAxMTEuNDAwMCAwLjAwMDAgMTE0LjQwMDAgMC4wNzAwIC1seXIgNgotUEdQaW46IFZERCBWREQgaW5vdXQgcHdyIGZpeGVkIDExMi45MDAwIDE1My45MDAwIE4gNiAxCi0gIFBpbkJveDogMTExLjQwMDAgMTUzLjgzMDAgMTE0LjQwMDAgMTUzLjkwMDAgLWx5ciA2Ci1QR1BpbjogVkREIFZERCBpbm91dCBwd3IgZml4ZWQgMTQxLjgwMDAgMTQ4Ljc3MDAgRSAxIDEKLSAgUGluQm94OiAxNDEuNzQwMCAxNDguNzEwMCAxNDEuODAwMCAxNDguODMwMCAtbHlyIDEKLVBHUGluOiBWREQgVkREIGlub3V0IHB3ciBmaXhlZCAwLjAwMDAgMTQ4Ljc3MDAgVyAxIDEKLSAgUGluQm94OiAwLjAwMDAgMTQ4LjcxMDAgMC4wNjAwIDE0OC44MzAwIC1seXIgMQotUEdQaW46IFZERCBWREQgaW5vdXQgcHdyIGZpeGVkIDE0MS44MDAwIDExNy45OTAwIEUgMSAxCi0gIFBpbkJveDogMTQxLjc0MDAgMTE3LjkzMDAgMTQxLjgwMDAgMTE4LjA1MDAgLWx5ciAxCi1QR1BpbjogVkREIFZERCBpbm91dCBwd3IgZml4ZWQgMC4wMDAwIDExNy45OTAwIFcgMSAxCi0gIFBpbkJveDogMC4wMDAwIDExNy45MzAwIDAuMDYwMCAxMTguMDUwMCAtbHlyIDEKLVBHUGluOiBWREQgVkREIGlub3V0IHB3ciBmaXhlZCAxNDEuODAwMCAxMTQuNTcwMCBFIDEgMQotICBQaW5Cb3g6IDE0MS43NDAwIDExNC41MTAwIDE0MS44MDAwIDExNC42MzAwIC1seXIgMQotUEdQaW46IFZERCBWREQgaW5vdXQgcHdyIGZpeGVkIDAuMDAwMCAxMTQuNTcwMCBXIDEgMQotICBQaW5Cb3g6IDAuMDAwMCAxMTQuNTEwMCAwLjA2MDAgMTE0LjYzMDAgLWx5ciAxCi1QR1BpbjogVkREIFZERCBpbm91dCBwd3IgZml4ZWQgMTQxLjgwMDAgMTExLjE1MDAgRSAxIDEKLSAgUGluQm94OiAxNDEuNzQwMCAxMTEuMDkwMCAxNDEuODAwMCAxMTEuMjEwMCAtbHlyIDEKLVBHUGluOiBWREQgVkREIGlub3V0IHB3ciBmaXhlZCAwLjAwMDAgMTExLjE1MDAgVyAxIDEKLSAgUGluQm94OiAwLjAwMDAgMTExLjA5MDAgMC4wNjAwIDExMS4yMTAwIC1seXIgMQotUEdQaW46IFZERCBWREQgaW5vdXQgcHdyIGZpeGVkIDE0MS44MDAwIDEwNy43MzAwIEUgMSAxCi0gIFBpbkJveDogMTQxLjc0MDAgMTA3LjY3MDAgMTQxLjgwMDAgMTA3Ljc5MDAgLWx5ciAxCi1QR1BpbjogVkREIFZERCBpbm91dCBwd3IgZml4ZWQgMC4wMDAwIDEwNy43MzAwIFcgMSAxCi0gIFBpbkJveDogMC4wMDAwIDEwNy42NzAwIDAuMDYwMCAxMDcuNzkwMCAtbHlyIDEKLVBHUGluOiBWREQgVkREIGlub3V0IHB3ciBmaXhlZCAxNDEuODAwMCAxMDQuMzEwMCBFIDEgMQotICBQaW5Cb3g6IDE0MS43NDAwIDEwNC4yNTAwIDE0MS44MDAwIDEwNC4zNzAwIC1seXIgMQotUEdQaW46IFZERCBWREQgaW5vdXQgcHdyIGZpeGVkIDAuMDAwMCAxMDQuMzEwMCBXIDEgMQotICBQaW5Cb3g6IDAuMDAwMCAxMDQuMjUwMCAwLjA2MDAgMTA0LjM3MDAgLWx5ciAxCi1QR1BpbjogVkREIFZERCBpbm91dCBwd3IgZml4ZWQgMTQxLjgwMDAgMTI0LjgzMDAgRSAxIDEKLSAgUGluQm94OiAxNDEuNzQwMCAxMjQuNzcwMCAxNDEuODAwMCAxMjQuODkwMCAtbHlyIDEKLVBHUGluOiBWREQgVkREIGlub3V0IHB3ciBmaXhlZCAwLjAwMDAgMTI0LjgzMDAgVyAxIDEKLSAgUGluQm94OiAwLjAwMDAgMTI0Ljc3MDAgMC4wNjAwIDEyNC44OTAwIC1seXIgMQotUEdQaW46IFZERCBWREQgaW5vdXQgcHdyIGZpeGVkIDE0MS44MDAwIDEyMS40MTAwIEUgMSAxCi0gIFBpbkJveDogMTQxLjc0MDAgMTIxLjM1MDAgMTQxLjgwMDAgMTIxLjQ3MDAgLWx5ciAxCi1QR1BpbjogVkREIFZERCBpbm91dCBwd3IgZml4ZWQgMC4wMDAwIDEyMS40MTAwIFcgMSAxCi0gIFBpbkJveDogMC4wMDAwIDEyMS4zNTAwIDAuMDYwMCAxMjEuNDcwMCAtbHlyIDEKLVBHUGluOiBWREQgVkREIGlub3V0IHB3ciBmaXhlZCAxNDEuODAwMCAxNDUuMzUwMCBFIDEgMQotICBQaW5Cb3g6IDE0MS43NDAwIDE0NS4yOTAwIDE0MS44MDAwIDE0NS40MTAwIC1seXIgMQotUEdQaW46IFZERCBWREQgaW5vdXQgcHdyIGZpeGVkIDAuMDAwMCAxNDUuMzUwMCBXIDEgMQotICBQaW5Cb3g6IDAuMDAwMCAxNDUuMjkwMCAwLjA2MDAgMTQ1LjQxMDAgLWx5ciAxCi1QR1BpbjogVkREIFZERCBpbm91dCBwd3IgZml4ZWQgMTQxLjgwMDAgMTMxLjY3MDAgRSAxIDEKLSAgUGluQm94OiAxNDEuNzQwMCAxMzEuNjEwMCAxNDEuODAwMCAxMzEuNzMwMCAtbHlyIDEKLVBHUGluOiBWREQgVkREIGlub3V0IHB3ciBmaXhlZCAwLjAwMDAgMTMxLjY3MDAgVyAxIDEKLSAgUGluQm94OiAwLjAwMDAgMTMxLjYxMDAgMC4wNjAwIDEzMS43MzAwIC1seXIgMQotUEdQaW46IFZERCBWREQgaW5vdXQgcHdyIGZpeGVkIDE0MS44MDAwIDE0MS45MzAwIEUgMSAxCi0gIFBpbkJveDogMTQxLjc0MDAgMTQxLjg3MDAgMTQxLjgwMDAgMTQxLjk5MDAgLWx5ciAxCi1QR1BpbjogVkREIFZERCBpbm91dCBwd3IgZml4ZWQgMC4wMDAwIDE0MS45MzAwIFcgMSAxCi0gIFBpbkJveDogMC4wMDAwIDE0MS44NzAwIDAuMDYwMCAxNDEuOTkwMCAtbHlyIDEKLVBHUGluOiBWREQgVkREIGlub3V0IHB3ciBmaXhlZCAxNDEuODAwMCAxMzguNTEwMCBFIDEgMQotICBQaW5Cb3g6IDE0MS43NDAwIDEzOC40NTAwIDE0MS44MDAwIDEzOC41NzAwIC1seXIgMQotUEdQaW46IFZERCBWREQgaW5vdXQgcHdyIGZpeGVkIDAuMDAwMCAxMzguNTEwMCBXIDEgMQotICBQaW5Cb3g6IDAuMDAwMCAxMzguNDUwMCAwLjA2MDAgMTM4LjU3MDAgLWx5ciAxCi1QR1BpbjogVkREIFZERCBpbm91dCBwd3IgZml4ZWQgMTQxLjgwMDAgMTM1LjA5MDAgRSAxIDEKLSAgUGluQm94OiAxNDEuNzQwMCAxMzUuMDMwMCAxNDEuODAwMCAxMzUuMTUwMCAtbHlyIDEKLVBHUGluOiBWREQgVkREIGlub3V0IHB3ciBmaXhlZCAwLjAwMDAgMTM1LjA5MDAgVyAxIDEKLSAgUGluQm94OiAwLjAwMDAgMTM1LjAzMDAgMC4wNjAwIDEzNS4xNTAwIC1seXIgMQotUEdQaW46IFZERCBWREQgaW5vdXQgcHdyIGZpeGVkIDE0MS44MDAwIDEyOC4yNTAwIEUgMSAxCi0gIFBpbkJveDogMTQxLjc0MDAgMTI4LjE5MDAgMTQxLjgwMDAgMTI4LjMxMDAgLWx5ciAxCi1QR1BpbjogVkREIFZERCBpbm91dCBwd3IgZml4ZWQgMC4wMDAwIDEyOC4yNTAwIFcgMSAxCi0gIFBpbkJveDogMC4wMDAwIDEyOC4xOTAwIDAuMDYwMCAxMjguMzEwMCAtbHlyIDEKLVBHUGluOiBWREQgVkREIGlub3V0IHB3ciBmaXhlZCAxNDEuODAwMCA1OS44NTAwIEUgMSAxCi0gIFBpbkJveDogMTQxLjc0MDAgNTkuNzkwMCAxNDEuODAwMCA1OS45MTAwIC1seXIgMQotUEdQaW46IFZERCBWREQgaW5vdXQgcHdyIGZpeGVkIDAuMDAwMCA1OS44NTAwIFcgMSAxCi0gIFBpbkJveDogMC4wMDAwIDU5Ljc5MDAgMC4wNjAwIDU5LjkxMDAgLWx5ciAxCi1QR1BpbjogVkREIFZERCBpbm91dCBwd3IgZml4ZWQgMTQxLjgwMDAgNjMuMjcwMCBFIDEgMQotICBQaW5Cb3g6IDE0MS43NDAwIDYzLjIxMDAgMTQxLjgwMDAgNjMuMzMwMCAtbHlyIDEKLVBHUGluOiBWREQgVkREIGlub3V0IHB3ciBmaXhlZCAwLjAwMDAgNjMuMjcwMCBXIDEgMQotICBQaW5Cb3g6IDAuMDAwMCA2My4yMTAwIDAuMDYwMCA2My4zMzAwIC1seXIgMQotUEdQaW46IFZERCBWREQgaW5vdXQgcHdyIGZpeGVkIDE0MS44MDAwIDczLjUzMDAgRSAxIDEKLSAgUGluQm94OiAxNDEuNzQwMCA3My40NzAwIDE0MS44MDAwIDczLjU5MDAgLWx5ciAxCi1QR1BpbjogVkREIFZERCBpbm91dCBwd3IgZml4ZWQgMC4wMDAwIDczLjUzMDAgVyAxIDEKLSAgUGluQm94OiAwLjAwMDAgNzMuNDcwMCAwLjA2MDAgNzMuNTkwMCAtbHlyIDEKLVBHUGluOiBWREQgVkREIGlub3V0IHB3ciBmaXhlZCAxNDEuODAwMCA3MC4xMTAwIEUgMSAxCi0gIFBpbkJveDogMTQxLjc0MDAgNzAuMDUwMCAxNDEuODAwMCA3MC4xNzAwIC1seXIgMQotUEdQaW46IFZERCBWREQgaW5vdXQgcHdyIGZpeGVkIDAuMDAwMCA3MC4xMTAwIFcgMSAxCi0gIFBpbkJveDogMC4wMDAwIDcwLjA1MDAgMC4wNjAwIDcwLjE3MDAgLWx5ciAxCi1QR1BpbjogVkREIFZERCBpbm91dCBwd3IgZml4ZWQgMTQxLjgwMDAgNjYuNjkwMCBFIDEgMQotICBQaW5Cb3g6IDE0MS43NDAwIDY2LjYzMDAgMTQxLjgwMDAgNjYuNzUwMCAtbHlyIDEKLVBHUGluOiBWREQgVkREIGlub3V0IHB3ciBmaXhlZCAwLjAwMDAgNjYuNjkwMCBXIDEgMQotICBQaW5Cb3g6IDAuMDAwMCA2Ni42MzAwIDAuMDYwMCA2Ni43NTAwIC1seXIgMQotUEdQaW46IFZERCBWREQgaW5vdXQgcHdyIGZpeGVkIDE0MS44MDAwIDc2Ljk1MDAgRSAxIDEKLSAgUGluQm94OiAxNDEuNzQwMCA3Ni44OTAwIDE0MS44MDAwIDc3LjAxMDAgLWx5ciAxCi1QR1BpbjogVkREIFZERCBpbm91dCBwd3IgZml4ZWQgMC4wMDAwIDc2Ljk1MDAgVyAxIDEKLSAgUGluQm94OiAwLjAwMDAgNzYuODkwMCAwLjA2MDAgNzcuMDEwMCAtbHlyIDEKLVBHUGluOiBWREQgVkREIGlub3V0IHB3ciBmaXhlZCAxNDEuODAwMCA4MC4zNzAwIEUgMSAxCi0gIFBpbkJveDogMTQxLjc0MDAgODAuMzEwMCAxNDEuODAwMCA4MC40MzAwIC1seXIgMQotUEdQaW46IFZERCBWREQgaW5vdXQgcHdyIGZpeGVkIDAuMDAwMCA4MC4zNzAwIFcgMSAxCi0gIFBpbkJveDogMC4wMDAwIDgwLjMxMDAgMC4wNjAwIDgwLjQzMDAgLWx5ciAxCi1QR1BpbjogVkREIFZERCBpbm91dCBwd3IgZml4ZWQgMTQxLjgwMDAgOTAuNjMwMCBFIDEgMQotICBQaW5Cb3g6IDE0MS43NDAwIDkwLjU3MDAgMTQxLjgwMDAgOTAuNjkwMCAtbHlyIDEKLVBHUGluOiBWREQgVkREIGlub3V0IHB3ciBmaXhlZCAwLjAwMDAgOTAuNjMwMCBXIDEgMQotICBQaW5Cb3g6IDAuMDAwMCA5MC41NzAwIDAuMDYwMCA5MC42OTAwIC1seXIgMQotUEdQaW46IFZERCBWREQgaW5vdXQgcHdyIGZpeGVkIDE0MS44MDAwIDg3LjIxMDAgRSAxIDEKLSAgUGluQm94OiAxNDEuNzQwMCA4Ny4xNTAwIDE0MS44MDAwIDg3LjI3MDAgLWx5ciAxCi1QR1BpbjogVkREIFZERCBpbm91dCBwd3IgZml4ZWQgMC4wMDAwIDg3LjIxMDAgVyAxIDEKLSAgUGluQm94OiAwLjAwMDAgODcuMTUwMCAwLjA2MDAgODcuMjcwMCAtbHlyIDEKLVBHUGluOiBWREQgVkREIGlub3V0IHB3ciBmaXhlZCAxNDEuODAwMCA4My43OTAwIEUgMSAxCi0gIFBpbkJveDogMTQxLjc0MDAgODMuNzMwMCAxNDEuODAwMCA4My44NTAwIC1seXIgMQotUEdQaW46IFZERCBWREQgaW5vdXQgcHdyIGZpeGVkIDAuMDAwMCA4My43OTAwIFcgMSAxCi0gIFBpbkJveDogMC4wMDAwIDgzLjczMDAgMC4wNjAwIDgzLjg1MDAgLWx5ciAxCi1QR1BpbjogVkREIFZERCBpbm91dCBwd3IgZml4ZWQgMTQxLjgwMDAgOTcuNDcwMCBFIDEgMQotICBQaW5Cb3g6IDE0MS43NDAwIDk3LjQxMDAgMTQxLjgwMDAgOTcuNTMwMCAtbHlyIDEKLVBHUGluOiBWREQgVkREIGlub3V0IHB3ciBmaXhlZCAwLjAwMDAgOTcuNDcwMCBXIDEgMQotICBQaW5Cb3g6IDAuMDAwMCA5Ny40MTAwIDAuMDYwMCA5Ny41MzAwIC1seXIgMQotUEdQaW46IFZERCBWREQgaW5vdXQgcHdyIGZpeGVkIDE0MS44MDAwIDEwMC44OTAwIEUgMSAxCi0gIFBpbkJveDogMTQxLjc0MDAgMTAwLjgzMDAgMTQxLjgwMDAgMTAwLjk1MDAgLWx5ciAxCi1QR1BpbjogVkREIFZERCBpbm91dCBwd3IgZml4ZWQgMC4wMDAwIDEwMC44OTAwIFcgMSAxCi0gIFBpbkJveDogMC4wMDAwIDEwMC44MzAwIDAuMDYwMCAxMDAuOTUwMCAtbHlyIDEKLVBHUGluOiBWREQgVkREIGlub3V0IHB3ciBmaXhlZCAxNDEuODAwMCA5NC4wNTAwIEUgMSAxCi0gIFBpbkJveDogMTQxLjc0MDAgOTMuOTkwMCAxNDEuODAwMCA5NC4xMTAwIC1seXIgMQotUEdQaW46IFZERCBWREQgaW5vdXQgcHdyIGZpeGVkIDAuMDAwMCA5NC4wNTAwIFcgMSAxCi0gIFBpbkJveDogMC4wMDAwIDkzLjk5MDAgMC4wNjAwIDk0LjExMDAgLWx5ciAxCi1QR1BpbjogVkREIFZERCBpbm91dCBwd3IgZml4ZWQgMTQxLjgwMDAgMjUuNjUwMCBFIDEgMQotICBQaW5Cb3g6IDE0MS43NDAwIDI1LjU5MDAgMTQxLjgwMDAgMjUuNzEwMCAtbHlyIDEKLVBHUGluOiBWREQgVkREIGlub3V0IHB3ciBmaXhlZCAwLjAwMDAgMjUuNjUwMCBXIDEgMQotICBQaW5Cb3g6IDAuMDAwMCAyNS41OTAwIDAuMDYwMCAyNS43MTAwIC1seXIgMQotUEdQaW46IFZERCBWREQgaW5vdXQgcHdyIGZpeGVkIDE0MS44MDAwIDE1LjM5MDAgRSAxIDEKLSAgUGluQm94OiAxNDEuNzQwMCAxNS4zMzAwIDE0MS44MDAwIDE1LjQ1MDAgLWx5ciAxCi1QR1BpbjogVkREIFZERCBpbm91dCBwd3IgZml4ZWQgMC4wMDAwIDE1LjM5MDAgVyAxIDEKLSAgUGluQm94OiAwLjAwMDAgMTUuMzMwMCAwLjA2MDAgMTUuNDUwMCAtbHlyIDEKLVBHUGluOiBWREQgVkREIGlub3V0IHB3ciBmaXhlZCAxNDEuODAwMCAxOC44MTAwIEUgMSAxCi0gIFBpbkJveDogMTQxLjc0MDAgMTguNzUwMCAxNDEuODAwMCAxOC44NzAwIC1seXIgMQotUEdQaW46IFZERCBWREQgaW5vdXQgcHdyIGZpeGVkIDAuMDAwMCAxOC44MTAwIFcgMSAxCi0gIFBpbkJveDogMC4wMDAwIDE4Ljc1MDAgMC4wNjAwIDE4Ljg3MDAgLWx5ciAxCi1QR1BpbjogVkREIFZERCBpbm91dCBwd3IgZml4ZWQgMTQxLjgwMDAgMjIuMjMwMCBFIDEgMQotICBQaW5Cb3g6IDE0MS43NDAwIDIyLjE3MDAgMTQxLjgwMDAgMjIuMjkwMCAtbHlyIDEKLVBHUGluOiBWREQgVkREIGlub3V0IHB3ciBmaXhlZCAwLjAwMDAgMjIuMjMwMCBXIDEgMQotICBQaW5Cb3g6IDAuMDAwMCAyMi4xNzAwIDAuMDYwMCAyMi4yOTAwIC1seXIgMQotUEdQaW46IFZERCBWREQgaW5vdXQgcHdyIGZpeGVkIDE0MS44MDAwIDI5LjA3MDAgRSAxIDEKLSAgUGluQm94OiAxNDEuNzQwMCAyOS4wMTAwIDE0MS44MDAwIDI5LjEzMDAgLWx5ciAxCi1QR1BpbjogVkREIFZERCBpbm91dCBwd3IgZml4ZWQgMC4wMDAwIDI5LjA3MDAgVyAxIDEKLSAgUGluQm94OiAwLjAwMDAgMjkuMDEwMCAwLjA2MDAgMjkuMTMwMCAtbHlyIDEKLVBHUGluOiBWREQgVkREIGlub3V0IHB3ciBmaXhlZCAxNDEuODAwMCAzMi40OTAwIEUgMSAxCi0gIFBpbkJveDogMTQxLjc0MDAgMzIuNDMwMCAxNDEuODAwMCAzMi41NTAwIC1seXIgMQotUEdQaW46IFZERCBWREQgaW5vdXQgcHdyIGZpeGVkIDAuMDAwMCAzMi40OTAwIFcgMSAxCi0gIFBpbkJveDogMC4wMDAwIDMyLjQzMDAgMC4wNjAwIDMyLjU1MDAgLWx5ciAxCi1QR1BpbjogVkREIFZERCBpbm91dCBwd3IgZml4ZWQgMTQxLjgwMDAgMzUuOTEwMCBFIDEgMQotICBQaW5Cb3g6IDE0MS43NDAwIDM1Ljg1MDAgMTQxLjgwMDAgMzUuOTcwMCAtbHlyIDEKLVBHUGluOiBWREQgVkREIGlub3V0IHB3ciBmaXhlZCAwLjAwMDAgMzUuOTEwMCBXIDEgMQotICBQaW5Cb3g6IDAuMDAwMCAzNS44NTAwIDAuMDYwMCAzNS45NzAwIC1seXIgMQotUEdQaW46IFZERCBWREQgaW5vdXQgcHdyIGZpeGVkIDE0MS44MDAwIDQ5LjU5MDAgRSAxIDEKLSAgUGluQm94OiAxNDEuNzQwMCA0OS41MzAwIDE0MS44MDAwIDQ5LjY1MDAgLWx5ciAxCi1QR1BpbjogVkREIFZERCBpbm91dCBwd3IgZml4ZWQgMC4wMDAwIDQ5LjU5MDAgVyAxIDEKLSAgUGluQm94OiAwLjAwMDAgNDkuNTMwMCAwLjA2MDAgNDkuNjUwMCAtbHlyIDEKLVBHUGluOiBWREQgVkREIGlub3V0IHB3ciBmaXhlZCAxNDEuODAwMCA1My4wMTAwIEUgMSAxCi0gIFBpbkJveDogMTQxLjc0MDAgNTIuOTUwMCAxNDEuODAwMCA1My4wNzAwIC1seXIgMQotUEdQaW46IFZERCBWREQgaW5vdXQgcHdyIGZpeGVkIDAuMDAwMCA1My4wMTAwIFcgMSAxCi0gIFBpbkJveDogMC4wMDAwIDUyLjk1MDAgMC4wNjAwIDUzLjA3MDAgLWx5ciAxCi1QR1BpbjogVkREIFZERCBpbm91dCBwd3IgZml4ZWQgMTQxLjgwMDAgNDYuMTcwMCBFIDEgMQotICBQaW5Cb3g6IDE0MS43NDAwIDQ2LjExMDAgMTQxLjgwMDAgNDYuMjMwMCAtbHlyIDEKLVBHUGluOiBWREQgVkREIGlub3V0IHB3ciBmaXhlZCAwLjAwMDAgNDYuMTcwMCBXIDEgMQotICBQaW5Cb3g6IDAuMDAwMCA0Ni4xMTAwIDAuMDYwMCA0Ni4yMzAwIC1seXIgMQotUEdQaW46IFZERCBWREQgaW5vdXQgcHdyIGZpeGVkIDE0MS44MDAwIDM5LjMzMDAgRSAxIDEKLSAgUGluQm94OiAxNDEuNzQwMCAzOS4yNzAwIDE0MS44MDAwIDM5LjM5MDAgLWx5ciAxCi1QR1BpbjogVkREIFZERCBpbm91dCBwd3IgZml4ZWQgMC4wMDAwIDM5LjMzMDAgVyAxIDEKLSAgUGluQm94OiAwLjAwMDAgMzkuMjcwMCAwLjA2MDAgMzkuMzkwMCAtbHlyIDEKLVBHUGluOiBWREQgVkREIGlub3V0IHB3ciBmaXhlZCAxNDEuODAwMCA0Mi43NTAwIEUgMSAxCi0gIFBpbkJveDogMTQxLjc0MDAgNDIuNjkwMCAxNDEuODAwMCA0Mi44MTAwIC1seXIgMQotUEdQaW46IFZERCBWREQgaW5vdXQgcHdyIGZpeGVkIDAuMDAwMCA0Mi43NTAwIFcgMSAxCi0gIFBpbkJveDogMC4wMDAwIDQyLjY5MDAgMC4wNjAwIDQyLjgxMDAgLWx5ciAxCi1QR1BpbjogVkREIFZERCBpbm91dCBwd3IgZml4ZWQgMTQxLjgwMDAgNTYuNDMwMCBFIDEgMQotICBQaW5Cb3g6IDE0MS43NDAwIDU2LjM3MDAgMTQxLjgwMDAgNTYuNDkwMCAtbHlyIDEKLVBHUGluOiBWREQgVkREIGlub3V0IHB3ciBmaXhlZCAwLjAwMDAgNTYuNDMwMCBXIDEgMQotICBQaW5Cb3g6IDAuMDAwMCA1Ni4zNzAwIDAuMDYwMCA1Ni40OTAwIC1seXIgMQotUEdQaW46IFZERCBWREQgaW5vdXQgcHdyIGZpeGVkIDE0MS44MDAwIDguNTUwMCBFIDEgMQotICBQaW5Cb3g6IDE0MS43NDAwIDguNDkwMCAxNDEuODAwMCA4LjYxMDAgLWx5ciAxCi1QR1BpbjogVkREIFZERCBpbm91dCBwd3IgZml4ZWQgMC4wMDAwIDguNTUwMCBXIDEgMQotICBQaW5Cb3g6IDAuMDAwMCA4LjQ5MDAgMC4wNjAwIDguNjEwMCAtbHlyIDEKLVBHUGluOiBWREQgVkREIGlub3V0IHB3ciBmaXhlZCAxNDEuODAwMCAxMS45NzAwIEUgMSAxCi0gIFBpbkJveDogMTQxLjc0MDAgMTEuOTEwMCAxNDEuODAwMCAxMi4wMzAwIC1seXIgMQotUEdQaW46IFZERCBWREQgaW5vdXQgcHdyIGZpeGVkIDAuMDAwMCAxMS45NzAwIFcgMSAxCi0gIFBpbkJveDogMC4wMDAwIDExLjkxMDAgMC4wNjAwIDEyLjAzMDAgLWx5ciAxCi1QR1BpbjogVkREIFZERCBpbm91dCBwd3IgZml4ZWQgMTQxLjgwMDAgNS4xMzAwIEUgMSAxCi0gIFBpbkJveDogMTQxLjc0MDAgNS4wNzAwIDE0MS44MDAwIDUuMTkwMCAtbHlyIDEKLVBHUGluOiBWREQgVkREIGlub3V0IHB3ciBmaXhlZCAwLjAwMDAgNS4xMzAwIFcgMSAxCi0gIFBpbkJveDogMC4wMDAwIDUuMDcwMCAwLjA2MDAgNS4xOTAwIC1seXIgMQotUEdQaW46IFZERCBWREQgaW5vdXQgcHdyIGZpeGVkIDE0MS44MDAwIDEuNzEwMCBFIDEgMQotICBQaW5Cb3g6IDE0MS43NDAwIDEuNjUwMCAxNDEuODAwMCAxLjc3MDAgLWx5ciAxCi1QR1BpbjogVkREIFZERCBpbm91dCBwd3IgZml4ZWQgMC4wMDAwIDEuNzEwMCBXIDEgMQotICBQaW5Cb3g6IDAuMDAwMCAxLjY1MDAgMC4wNjAwIDEuNzcwMCAtbHlyIDEKLQotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0jICA8UHJvcGVydHk+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMKLSMgICAgIDxvYmpfdHlwZSBuYW1lPSJpbnN0X25hbWUiID4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIwotIyAgICAgICA8cHJvcCBuYW1lPSJuYW1lIiB0eXBlPXR5cGVfbmFtZSB2YWx1ZT12YWwgLz4gICAgICAgICAgICAgICAjCi0jICAgICAgIDxBdHRyIG5hbWU9Im5hbWUiIHR5cGU9dHlwZV9uYW1lIHZhbHVlPXZhbCAvPiAgICAgICAgICAgICAgICMKLSMgICAgIDwvb2JqX3R5cGU+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIwotIyAgPC9Qcm9wZXJ0eT4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjCi0jICB3aGVyZTogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMKLSMgICAgICAgdHlwZSBpcyBkYXRhIHR5cGU6IEJveCwgU3RyaW5nLCBJbnQsIFBUUiwgTG9jLCBkb3VibGUsIEJpdHMgIwotIyAgICAgICBvYmpfdHlwZSBhcmU6IGluc3QsIERlc2lnbiwgaW5zdFRlcm0sIEJ1bXAsIGNlbGwsIG5ldCAgICAgICAjCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLTxQcm9wZXJ0aWVzPgotICA8RGVzaWduIG5hbWU9InRkc3BfY29yZSI+Ci0gIDwvRGVzaWduPgotPC9Qcm9wZXJ0aWVzPgotCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyQjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotIyAgR2xvYmFsTmV0Q29ubmVjdGlvbjogPG5ldF9uYW1lPiB7LXBpbnwtaW5zdHwtbmV0fSA8YmFzZV9uYW1lX3BhdHRlcm4+IC10eXBlIHtwZ3BpbnxuZXR8dGllaGl8dGllbG99IHstYWxsfC1tb2R1bGUgPG5hbWU+fC1yZWdpb24gPGJveD59IFstb3ZlcnJpZGVdICMKLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi1HbG9iYWxOZXRDb25uZWN0aW9uOiAxJ2IwIC1uZXQgU1JQR19QR19pbl8xIC10eXBlIG5ldCAtYWxsCi1HbG9iYWxOZXRDb25uZWN0aW9uOiAxJ2IwIC1uZXQgU1JQR19QR19pbiAtdHlwZSBuZXQgLWFsbAotR2xvYmFsTmV0Q29ubmVjdGlvbjogMSdiMCAtbmV0IGludCAtdHlwZSBuZXQgLWFsbAotR2xvYmFsTmV0Q29ubmVjdGlvbjogVkREIC1waW4gVkREIC1pbnN0ICogLXR5cGUgcGdwaW4gLWFsbAotR2xvYmFsTmV0Q29ubmVjdGlvbjogVlNTIC1waW4gVlNTIC1pbnN0ICogLXR5cGUgcGdwaW4gLWFsbAotCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotIyAgTmV0UHJvcGVydGllczogPG5ldF9uYW1lPiBbLXNwZWNpYWxdIFstZGVmX3Byb3Age2ludHxkYmx8c3RyfSA8dmFsdWU+XS4uLiAgICMKLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCmRpZmYgLS1naXQgYS9mbG93L3Buci9FWEFNUExFUy9JTk5PVlVTL0RFU0lHTi9EQVRBL3Rkc3BfY29yZS5mcC5zcHIgYi9mbG93L3Buci9FWEFNUExFUy9JTk5PVlVTL0RFU0lHTi9EQVRBL3Rkc3BfY29yZS5mcC5zcHIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDZhN2YwZWEuLjAwMDAwMDAKLS0tIGEvZmxvdy9wbnIvRVhBTVBMRVMvSU5OT1ZVUy9ERVNJR04vREFUQS90ZHNwX2NvcmUuZnAuc3ByCisrKyAvZGV2L251bGwKQEAgLTEsMTYzMSArMCwwIEBACi1WZXJzaW9uIDIuMgotTWljcm9uIDIwMDAKLTMyCi1WSUFHRU41Nl8xIG51bGwgTWV0YWw2IDAgMSA0NSA3MjAgNzIwIDE4MDAgMTgwMCAzIDMgLTIxNjAgLTIxNjAgMjE2MCAyMTYwIAotMQotLTMwMDAgLTMwMDAgMzAwMCAzMDAwCi0xCi0tMzAwMCAtMzAwMCAzMDAwIDMwMDAKLVZJQUdFTjU2XzggbnVsbCBNZXRhbDYgMCAxIDQ1IDcyMCA3MjAgMTgwMCAxODAwIDQgMyAtMzA2MCAtMjE2MCAzMDYwIDIxNjAgCi0xCi0tMzcwMCAtMzAwMCAzNzAwIDMwMDAKLTEKLS0zNzAwIC0zMDAwIDM3MDAgMzAwMAotVklBR0VONDVfOSBudWxsIE1ldGFsNSAwIDEgMzMgMTQwIDE0MCAzMjAgMzIwIDE4IDIgLTI3OTAgLTIzMCAyNzkwIDIzMCAKLTEKLS0zMDAwIC0yMzAgMzAwMCAyMzAKLTEKLS0zMDAwIC0yMzAgMzAwMCAyMzAKLVZJQUdFTjU2XzEzIG51bGwgTWV0YWw2IDAgMSA0NSA3MjAgNzIwIDE4MDAgMCAzIDEgLTIxNjAgLTM2MCAyMTYwIDM2MCAKLTEKLS0zMDAwIC01MjAgMzAwMCA1MjAKLTEKLS0zMDAwIC01MjAgMzAwMCA1MjAKLVZJQUdFTjU2XzE4IG51bGwgTWV0YWw2IDAgMSA0NSA3MjAgNzIwIDE4MDAgMTgwMCAzIDQgLTIxNjAgLTMwNjAgMjE2MCAzMDYwIAotMQotLTMwMDAgLTMzMDAgMzAwMCAzMzAwCi0xCi0tMzAwMCAtMzMwMCAzMDAwIDMzMDAKLVZJQUdFTjQ1XzE0IE01X000IE1ldGFsNSAwIDEgMCAxNDAgMTQwIDMyMCAxNDAgMTggMSAtMjc5MCAtNzAgMjc5MCA3MCAKLTEKLS0zMDAwIC0xNDAgMzAwMCAxNDAKLTEKLS0zMDAwIC0xNDAgMzAwMCAxNDAKLVZJQUdFTjU2XzE5IG51bGwgTWV0YWw2IDAgMSA0NSA3MjAgNzIwIDE4MDAgMTgwMCAzIDQgLTIxNjAgLTMwNjAgMjE2MCAzMDYwIAotMQotLTMwMDAgLTM3NjAgMzAwMCAzNzYwCi0xCi0tMzAwMCAtMzc2MCAzMDAwIDM3NjAKLVZJQUdFTjQ1XzE1IE01X000IE1ldGFsNSAwIDEgMCAxNDAgMTQwIDMyMCAzMjAgOCAxOSAtMTE5MCAtMjk1MCAxMTkwIDI5NTAgCi0xCi0tMTI4MCAtMzAwMCAxMjgwIDMwMDAKLTEKLS0xMjgwIC0zMDAwIDEyODAgMzAwMAotVklBR0VONDVfMTYgTTVfTTQgTWV0YWw1IDAgMSAwIDE0MCAxNDAgMzIwIDMyMCAxMSAxOSAtMTY3MCAtMjk1MCAxNjcwIDI5NTAgCi0xCi0tMTc3MCAtMzAwMCAxNzcwIDMwMDAKLTEKLS0xNzcwIC0zMDAwIDE3NzAgMzAwMAotVklBR0VONDVfMTcgTTVfTTQgTWV0YWw1IDAgMSAwIDE0MCAxNDAgMzIwIDMyMCAxOSAxOCAtMjk1MCAtMjc5MCAyOTUwIDI3OTAgCi0xCi0tMzAwMCAtMzAwMCAzMDAwIDMwMDAKLTEKLS0zMDAwIC0zMDAwIDMwMDAgMzAwMAotVklBR0VONTZfMjEgbnVsbCBNZXRhbDYgMCAxIDQ1IDcyMCA3MjAgMTgwMCAxODAwIDMgNSAtMjE2MCAtMzk2MCAyMTYwIDM5NjAgCi0xCi0tMzAwMCAtNDAwMCAzMDAwIDQwMDAKLTEKLS0zMDAwIC00MDAwIDMwMDAgNDAwMAotVklBR0VONDVfMTkgTTVfTTQgTWV0YWw1IDAgMSAwIDE0MCAxNDAgMzIwIDMyMCAzIDIzIC0zOTAgLTM1OTAgMzkwIDM1OTAgCi0xCi0tNDIwIC0zODAwIDQyMCAzODAwCi0xCi0tNDIwIC0zODAwIDQyMCAzODAwCi1WSUFHRU40NV8yMCBNNV9NNCBNZXRhbDUgMCAxIDAgMTQwIDE0MCAzMjAgMzIwIDE0IDE5IC0yMTUwIC0yOTUwIDIxNTAgMjk1MCAKLTEKLS0yMzAwIC0zMDAwIDIzMDAgMzAwMAotMQotLTIzMDAgLTMwMDAgMjMwMCAzMDAwCi1WSUFHRU40NV8yMSBNNV9NNCBNZXRhbDUgMCAxIDAgMTQwIDE0MCAzMjAgMzIwIDUgMTggLTcxMCAtMjc5MCA3MTAgMjc5MCAKLTEKLS03MjAgLTMwMDAgNzIwIDMwMDAKLTEKLS03MjAgLTMwMDAgNzIwIDMwMDAKLVZJQUdFTjQ1XzIyIE01X000IE1ldGFsNSAwIDEgMCAxNDAgMTQwIDMyMCAzMjAgNyAxOCAtMTAzMCAtMjc5MCAxMDMwIDI3OTAgCi0xCi0tMTA0MCAtMzAwMCAxMDQwIDMwMDAKLTEKLS0xMDQwIC0zMDAwIDEwNDAgMzAwMAotVklBR0VONDVfMjQgTTVfTTQgTWV0YWw1IDAgMSAwIDE0MCAxNDAgMzIwIDMyMCA4IDI1IC0xMTkwIC0zOTEwIDExOTAgMzkxMCAKLTEKLS0xMzEwIC00MDAwIDEzMTAgNDAwMAotMQotLTEzMTAgLTQwMDAgMTMxMCA0MDAwCi1WSUFHRU40NV8yNSBNNV9NNCBNZXRhbDUgMCAxIDAgMTQwIDE0MCAzMjAgMzIwIDE5IDI1IC0yOTUwIC0zOTEwIDI5NTAgMzkxMCAKLTEKLS0zMDAwIC00MDAwIDMwMDAgNDAwMAotMQotLTMwMDAgLTQwMDAgMzAwMCA0MDAwCi1WSUFHRU40NV8yNiBNNV9NNCBNZXRhbDUgMCAxIDAgMTQwIDE0MCAzMjAgMzIwIDcgMjUgLTEwMzAgLTM5MTAgMTAzMCAzOTEwIAotMQotLTExNjAgLTQwMDAgMTE2MCA0MDAwCi0xCi0tMTE2MCAtNDAwMCAxMTYwIDQwMDAKLVZJQUdFTjQ1XzI3IE01X000IE1ldGFsNSAwIDEgMCAxNDAgMTQwIDE0MCAzMjAgMSAxNyAtNzAgLTI2MzAgNzAgMjYzMCAKLTEKLS0xMDAgLTI4MDAgMTAwIDI4MDAKLTEKLS0xMDAgLTI4MDAgMTAwIDI4MDAKLVZJQUdFTjQ1XzI4IE01X000IE1ldGFsNSAwIDEgMCAxNDAgMTQwIDE0MCAzMjAgMSAxOSAtNzAgLTI5NTAgNzAgMjk1MCAKLTEKLS0xNzAgLTMwMDAgMTcwIDMwMDAKLTEKLS0xNzAgLTMwMDAgMTcwIDMwMDAKLVZJQUdFTjQ1XzI5IE01X000IE1ldGFsNSAwIDEgMCAxNDAgMTQwIDMyMCAzMjAgMyAxOCAtMzkwIC0yNzkwIDM5MCAyNzkwIAotMQotLTQzMCAtMzAwMCA0MzAgMzAwMAotMQotLTQzMCAtMzAwMCA0MzAgMzAwMAotVklBR0VONDVfMzAgTTVfTTQgTWV0YWw1IDAgMSAwIDE0MCAxNDAgMzIwIDMyMCAzIDIzIC0zOTAgLTM1OTAgMzkwIDM1OTAgCi0xCi0tNDUwIC0zODAwIDQ1MCAzODAwCi0xCi0tNDUwIC0zODAwIDQ1MCAzODAwCi1NNV9NNF8xIE01X000IE1ldGFsNSAwIDEgMCAxNDAgMTQwIDI4MCAyODAgMjEgMSAtMjg3MCAtNzAgMjg3MCA3MCAKLTEKLS0zMDAwIC0xMjAgMzAwMCAxMjAKLTEKLS0zMDAwIC0xMjAgMzAwMCAxMjAKLU00X00zXzEgTTRfTTMgTWV0YWw0IDAgMSAwIDE0MCAxNDAgMjgwIDI4MCAyMSAxIC0yODcwIC03MCAyODcwIDcwIAotMQotLTMwMDAgLTEyMCAzMDAwIDEyMAotMQotLTMwMDAgLTEyMCAzMDAwIDEyMAotTTNfTTJfMSBNM19NMiBNZXRhbDMgMCAxIDAgMTQwIDE0MCAyODAgMjgwIDIxIDEgLTI4NzAgLTcwIDI4NzAgNzAgCi0xCi0tMzAwMCAtMTIwIDMwMDAgMTIwCi0xCi0tMzAwMCAtMTIwIDMwMDAgMTIwCi1NMl9NMV8xIE0yX00xIE1ldGFsMiAwIDEgMCAxNDAgMTQwIDI4MCAyODAgMjEgMSAtMjg3MCAtNzAgMjg3MCA3MCAKLTEKLS0zMDAwIC0xMjAgMzAwMCAxMjAKLTEKLS0zMDAwIC0xMjAgMzAwMCAxMjAKLU02X001XzIgTTZfTTUgTWV0YWw2IDAgMSAwIDE0MCAxNDAgMjgwIDI4MCAyMSAxIC0yODcwIC03MCAyODcwIDcwIAotMQotLTMwMDAgLTEyMCAzMDAwIDEyMAotMQotLTMwMDAgLTEyMCAzMDAwIDEyMAotTTZfTTVfNyBNNl9NNSBNZXRhbDYgMCAxIDAgMTQwIDE0MCAyODAgMjgwIDIxIDEgLTI4NzAgLTcwIDI4NzAgNzAgCi0xCi0tMzAwMCAtMTAwIDMwMDAgMTAwCi0xCi0tMzAwMCAtMTAwIDMwMDAgMTAwCi1NNV9NNF82IE01X000IE1ldGFsNSAwIDEgMCAxNDAgMTQwIDI4MCAyODAgMjEgMSAtMjg3MCAtNzAgMjg3MCA3MCAKLTEKLS0zMDAwIC0xMDAgMzAwMCAxMDAKLTEKLS0zMDAwIC0xMDAgMzAwMCAxMDAKLU00X00zXzMgTTRfTTMgTWV0YWw0IDAgMSAwIDE0MCAxNDAgMjgwIDI4MCAyMSAxIC0yODcwIC03MCAyODcwIDcwIAotMQotLTMwMDAgLTEwMCAzMDAwIDEwMAotMQotLTMwMDAgLTEwMCAzMDAwIDEwMAotTTNfTTJfNyBNM19NMiBNZXRhbDMgMCAxIDAgMTQwIDE0MCAyODAgMjgwIDIxIDEgLTI4NzAgLTcwIDI4NzAgNzAgCi0xCi0tMzAwMCAtMTAwIDMwMDAgMTAwCi0xCi0tMzAwMCAtMTAwIDMwMDAgMTAwCi1NMl9NMV80NCBNMl9NMSBNZXRhbDIgMCAxIDAgMTQwIDE0MCAyODAgMjgwIDIxIDEgLTI4NzAgLTcwIDI4NzAgNzAgCi0xCi0tMzAwMCAtMTAwIDMwMDAgMTAwCi0xCi0tMzAwMCAtMTAwIDMwMDAgMTAwCi00OCA2NzUgMSBWREQKLTAgMzA0MjYwIDI4MzYwMCAyNDAgTWV0YWwxIDEwMCAzIDAKLTUwODAwIDAgNjAwMCAzMDc4MDAgTWV0YWw2IDAxMCAyIDAKLTEzNjgwMCAwIDYwMDAgMzA3ODAwIE1ldGFsNiAwMTAgMiAwCi0yMjI4MDAgMCA2MDAwIDMwNzgwMCBNZXRhbDYgMDEwIDIgMAotMCAyOTc0MjAgMjgzNjAwIDI0MCBNZXRhbDEgMTAwIDMgMAotMCAyMzU4NjAgMjgzNjAwIDI0MCBNZXRhbDEgMTAwIDMgMAotMCAyMjkwMjAgMjgzNjAwIDI0MCBNZXRhbDEgMTAwIDMgMAotMCAyMjIxODAgMjgzNjAwIDI0MCBNZXRhbDEgMTAwIDMgMAotMCAyMTUzNDAgMjgzNjAwIDI0MCBNZXRhbDEgMTAwIDMgMAotMCAyMDg1MDAgMjgzNjAwIDI0MCBNZXRhbDEgMTAwIDMgMAotMCAyNDk1NDAgMjgzNjAwIDI0MCBNZXRhbDEgMTAwIDMgMAotMCAyNDI3MDAgMjgzNjAwIDI0MCBNZXRhbDEgMTAwIDMgMAotMCAyOTA1ODAgMjgzNjAwIDI0MCBNZXRhbDEgMTAwIDMgMAotMCAyNjMyMjAgMjgzNjAwIDI0MCBNZXRhbDEgMTAwIDMgMAotMCAyODM3NDAgMjgzNjAwIDI0MCBNZXRhbDEgMTAwIDMgMAotMCAyNzY5MDAgMjgzNjAwIDI0MCBNZXRhbDEgMTAwIDMgMAotMCAyNzAwNjAgMjgzNjAwIDI0MCBNZXRhbDEgMTAwIDMgMAotMCAyNTYzODAgMjgzNjAwIDI0MCBNZXRhbDEgMTAwIDMgMAotMCAxMTk1ODAgMjgzNjAwIDI0MCBNZXRhbDEgMTAwIDMgMAotMCAxMjY0MjAgMjgzNjAwIDI0MCBNZXRhbDEgMTAwIDMgMAotMCAxNDY5NDAgMjgzNjAwIDI0MCBNZXRhbDEgMTAwIDMgMAotMCAxNDAxMDAgMjgzNjAwIDI0MCBNZXRhbDEgMTAwIDMgMAotMCAxMzMyNjAgMjgzNjAwIDI0MCBNZXRhbDEgMTAwIDMgMAotMCAxNTM3ODAgMjgzNjAwIDI0MCBNZXRhbDEgMTAwIDMgMAotMCAxNjA2MjAgMjgzNjAwIDI0MCBNZXRhbDEgMTAwIDMgMAotMCAxODExNDAgMjgzNjAwIDI0MCBNZXRhbDEgMTAwIDMgMAotMCAxNzQzMDAgMjgzNjAwIDI0MCBNZXRhbDEgMTAwIDMgMAotMCAxNjc0NjAgMjgzNjAwIDI0MCBNZXRhbDEgMTAwIDMgMAotMCAxOTQ4MjAgMjgzNjAwIDI0MCBNZXRhbDEgMTAwIDMgMAotMCAyMDE2NjAgMjgzNjAwIDI0MCBNZXRhbDEgMTAwIDMgMAotMCAxODc5ODAgMjgzNjAwIDI0MCBNZXRhbDEgMTAwIDMgMAotMCA1MTE4MCAyODM2MDAgMjQwIE1ldGFsMSAxMDAgMyAwCi0wIDMwNjYwIDI4MzYwMCAyNDAgTWV0YWwxIDEwMCAzIDAKLTAgMzc1MDAgMjgzNjAwIDI0MCBNZXRhbDEgMTAwIDMgMAotMCA0NDM0MCAyODM2MDAgMjQwIE1ldGFsMSAxMDAgMyAwCi0wIDU4MDIwIDI4MzYwMCAyNDAgTWV0YWwxIDEwMCAzIDAKLTAgNjQ4NjAgMjgzNjAwIDI0MCBNZXRhbDEgMTAwIDMgMAotMCA3MTcwMCAyODM2MDAgMjQwIE1ldGFsMSAxMDAgMyAwCi0wIDk5MDYwIDI4MzYwMCAyNDAgTWV0YWwxIDEwMCAzIDAKLTAgMTA1OTAwIDI4MzYwMCAyNDAgTWV0YWwxIDEwMCAzIDAKLTAgOTIyMjAgMjgzNjAwIDI0MCBNZXRhbDEgMTAwIDMgMAotMCA3ODU0MCAyODM2MDAgMjQwIE1ldGFsMSAxMDAgMyAwCi0wIDg1MzgwIDI4MzYwMCAyNDAgTWV0YWwxIDEwMCAzIDAKLTAgMTEyNzQwIDI4MzYwMCAyNDAgTWV0YWwxIDEwMCAzIDAKLTAgMTY5ODAgMjgzNjAwIDI0MCBNZXRhbDEgMTAwIDMgMAotMCAyMzgyMCAyODM2MDAgMjQwIE1ldGFsMSAxMDAgMyAwCi0wIDEwMTQwIDI4MzYwMCAyNDAgTWV0YWwxIDEwMCAzIDAKLTAgMzMwMCAyODM2MDAgMjQwIE1ldGFsMSAxMDAgMyAwCi0yMjI4MDAgMzA0MjYwIDI1IDAgMyAwCi0yMjI4MDAgMzA0MjYwIDI0IDAgMyAwCi0yMjI4MDAgMzA0MjYwIDIzIDAgMyAwCi0yMjI4MDAgMzA0MjYwIDIyIDAgMyAwCi0yMjI4MDAgMzA0MjYwIDI2IDAgMyAwCi0xMzY4MDAgMzA0MjYwIDI1IDAgMyAwCi0xMzY4MDAgMzA0MjYwIDI0IDAgMyAwCi0xMzY4MDAgMzA0MjYwIDIzIDAgMyAwCi0xMzY4MDAgMzA0MjYwIDIyIDAgMyAwCi0xMzY4MDAgMzA0MjYwIDI2IDAgMyAwCi01MDgwMCAzMDQyNjAgMjUgMCAzIDAKLTUwODAwIDMwNDI2MCAyNCAwIDMgMAotNTA4MDAgMzA0MjYwIDIzIDAgMyAwCi01MDgwMCAzMDQyNjAgMjIgMCAzIDAKLTUwODAwIDMwNDI2MCAyNiAwIDMgMAotNTA4MDAgMjk3NDIwIDI1IDAgMyAwCi01MDgwMCAyOTc0MjAgMjQgMCAzIDAKLTUwODAwIDI5NzQyMCAyMyAwIDMgMAotNTA4MDAgMjk3NDIwIDIyIDAgMyAwCi01MDgwMCAyOTc0MjAgMjYgMCAzIDAKLTEzNjgwMCAyOTc0MjAgMjUgMCAzIDAKLTEzNjgwMCAyOTc0MjAgMjQgMCAzIDAKLTEzNjgwMCAyOTc0MjAgMjMgMCAzIDAKLTEzNjgwMCAyOTc0MjAgMjIgMCAzIDAKLTEzNjgwMCAyOTc0MjAgMjYgMCAzIDAKLTIyMjgwMCAyOTc0MjAgMjUgMCAzIDAKLTIyMjgwMCAyOTc0MjAgMjQgMCAzIDAKLTIyMjgwMCAyOTc0MjAgMjMgMCAzIDAKLTIyMjgwMCAyOTc0MjAgMjIgMCAzIDAKLTIyMjgwMCAyOTc0MjAgMjYgMCAzIDAKLTIyMjgwMCAyOTA1ODAgMjUgMCAzIDAKLTIyMjgwMCAyOTA1ODAgMjQgMCAzIDAKLTIyMjgwMCAyOTA1ODAgMjMgMCAzIDAKLTIyMjgwMCAyOTA1ODAgMjIgMCAzIDAKLTIyMjgwMCAyOTA1ODAgMjYgMCAzIDAKLTIyMjgwMCAyODM3NDAgMjUgMCAzIDAKLTIyMjgwMCAyODM3NDAgMjQgMCAzIDAKLTIyMjgwMCAyODM3NDAgMjMgMCAzIDAKLTIyMjgwMCAyODM3NDAgMjIgMCAzIDAKLTIyMjgwMCAyODM3NDAgMjYgMCAzIDAKLTIyMjgwMCAyNzY5MDAgMjUgMCAzIDAKLTIyMjgwMCAyNzY5MDAgMjQgMCAzIDAKLTIyMjgwMCAyNzY5MDAgMjMgMCAzIDAKLTIyMjgwMCAyNzY5MDAgMjIgMCAzIDAKLTIyMjgwMCAyNzY5MDAgMjYgMCAzIDAKLTIyMjgwMCAyNzAwNjAgMjUgMCAzIDAKLTIyMjgwMCAyNzAwNjAgMjQgMCAzIDAKLTIyMjgwMCAyNzAwNjAgMjMgMCAzIDAKLTIyMjgwMCAyNzAwNjAgMjIgMCAzIDAKLTIyMjgwMCAyNzAwNjAgMjYgMCAzIDAKLTIyMjgwMCAyNjMyMjAgMjUgMCAzIDAKLTIyMjgwMCAyNjMyMjAgMjQgMCAzIDAKLTIyMjgwMCAyNjMyMjAgMjMgMCAzIDAKLTIyMjgwMCAyNjMyMjAgMjIgMCAzIDAKLTIyMjgwMCAyNjMyMjAgMjYgMCAzIDAKLTIyMjgwMCAyNTYzODAgMjUgMCAzIDAKLTIyMjgwMCAyNTYzODAgMjQgMCAzIDAKLTIyMjgwMCAyNTYzODAgMjMgMCAzIDAKLTIyMjgwMCAyNTYzODAgMjIgMCAzIDAKLTIyMjgwMCAyNTYzODAgMjYgMCAzIDAKLTIyMjgwMCAyNDk1NDAgMjUgMCAzIDAKLTIyMjgwMCAyNDk1NDAgMjQgMCAzIDAKLTIyMjgwMCAyNDk1NDAgMjMgMCAzIDAKLTIyMjgwMCAyNDk1NDAgMjIgMCAzIDAKLTIyMjgwMCAyNDk1NDAgMjYgMCAzIDAKLTIyMjgwMCAyNDI3MDAgMjUgMCAzIDAKLTIyMjgwMCAyNDI3MDAgMjQgMCAzIDAKLTIyMjgwMCAyNDI3MDAgMjMgMCAzIDAKLTIyMjgwMCAyNDI3MDAgMjIgMCAzIDAKLTIyMjgwMCAyNDI3MDAgMjYgMCAzIDAKLTIyMjgwMCAyMzU4NjAgMjUgMCAzIDAKLTIyMjgwMCAyMzU4NjAgMjQgMCAzIDAKLTIyMjgwMCAyMzU4NjAgMjMgMCAzIDAKLTIyMjgwMCAyMzU4NjAgMjIgMCAzIDAKLTIyMjgwMCAyMzU4NjAgMjYgMCAzIDAKLTIyMjgwMCAyMTUzNDAgMjUgMCAzIDAKLTIyMjgwMCAyMTUzNDAgMjQgMCAzIDAKLTIyMjgwMCAyMTUzNDAgMjMgMCAzIDAKLTIyMjgwMCAyMTUzNDAgMjIgMCAzIDAKLTIyMjgwMCAyMTUzNDAgMjYgMCAzIDAKLTIyMjgwMCAyMDg1MDAgMjUgMCAzIDAKLTIyMjgwMCAyMDg1MDAgMjQgMCAzIDAKLTIyMjgwMCAyMDg1MDAgMjMgMCAzIDAKLTIyMjgwMCAyMDg1MDAgMjIgMCAzIDAKLTIyMjgwMCAyMDg1MDAgMjYgMCAzIDAKLTIyMjgwMCAyMjIxODAgMjUgMCAzIDAKLTIyMjgwMCAyMjIxODAgMjQgMCAzIDAKLTIyMjgwMCAyMjIxODAgMjMgMCAzIDAKLTIyMjgwMCAyMjIxODAgMjIgMCAzIDAKLTIyMjgwMCAyMjIxODAgMjYgMCAzIDAKLTIyMjgwMCAyMjkwMjAgMjUgMCAzIDAKLTIyMjgwMCAyMjkwMjAgMjQgMCAzIDAKLTIyMjgwMCAyMjkwMjAgMjMgMCAzIDAKLTIyMjgwMCAyMjkwMjAgMjIgMCAzIDAKLTIyMjgwMCAyMjkwMjAgMjYgMCAzIDAKLTIyMjgwMCAxOTQ4MjAgMjUgMCAzIDAKLTIyMjgwMCAxOTQ4MjAgMjQgMCAzIDAKLTIyMjgwMCAxOTQ4MjAgMjMgMCAzIDAKLTIyMjgwMCAxOTQ4MjAgMjIgMCAzIDAKLTIyMjgwMCAxOTQ4MjAgMjYgMCAzIDAKLTIyMjgwMCAxODc5ODAgMjUgMCAzIDAKLTIyMjgwMCAxODc5ODAgMjQgMCAzIDAKLTIyMjgwMCAxODc5ODAgMjMgMCAzIDAKLTIyMjgwMCAxODc5ODAgMjIgMCAzIDAKLTIyMjgwMCAxODc5ODAgMjYgMCAzIDAKLTIyMjgwMCAyMDE2NjAgMjUgMCAzIDAKLTIyMjgwMCAyMDE2NjAgMjQgMCAzIDAKLTIyMjgwMCAyMDE2NjAgMjMgMCAzIDAKLTIyMjgwMCAyMDE2NjAgMjIgMCAzIDAKLTIyMjgwMCAyMDE2NjAgMjYgMCAzIDAKLTIyMjgwMCAxNjc0NjAgMjUgMCAzIDAKLTIyMjgwMCAxNjc0NjAgMjQgMCAzIDAKLTIyMjgwMCAxNjc0NjAgMjMgMCAzIDAKLTIyMjgwMCAxNjc0NjAgMjIgMCAzIDAKLTIyMjgwMCAxNjc0NjAgMjYgMCAzIDAKLTIyMjgwMCAxODExNDAgMjUgMCAzIDAKLTIyMjgwMCAxODExNDAgMjQgMCAzIDAKLTIyMjgwMCAxODExNDAgMjMgMCAzIDAKLTIyMjgwMCAxODExNDAgMjIgMCAzIDAKLTIyMjgwMCAxODExNDAgMjYgMCAzIDAKLTIyMjgwMCAxNzQzMDAgMjUgMCAzIDAKLTIyMjgwMCAxNzQzMDAgMjQgMCAzIDAKLTIyMjgwMCAxNzQzMDAgMjMgMCAzIDAKLTIyMjgwMCAxNzQzMDAgMjIgMCAzIDAKLTIyMjgwMCAxNzQzMDAgMjYgMCAzIDAKLTIyMjgwMCAxNDY5NDAgMjUgMCAzIDAKLTIyMjgwMCAxNDY5NDAgMjQgMCAzIDAKLTIyMjgwMCAxNDY5NDAgMjMgMCAzIDAKLTIyMjgwMCAxNDY5NDAgMjIgMCAzIDAKLTIyMjgwMCAxNDY5NDAgMjYgMCAzIDAKLTIyMjgwMCAxNDAxMDAgMjUgMCAzIDAKLTIyMjgwMCAxNDAxMDAgMjQgMCAzIDAKLTIyMjgwMCAxNDAxMDAgMjMgMCAzIDAKLTIyMjgwMCAxNDAxMDAgMjIgMCAzIDAKLTIyMjgwMCAxNDAxMDAgMjYgMCAzIDAKLTIyMjgwMCAxNjA2MjAgMjUgMCAzIDAKLTIyMjgwMCAxNjA2MjAgMjQgMCAzIDAKLTIyMjgwMCAxNjA2MjAgMjMgMCAzIDAKLTIyMjgwMCAxNjA2MjAgMjIgMCAzIDAKLTIyMjgwMCAxNjA2MjAgMjYgMCAzIDAKLTIyMjgwMCAxNTM3ODAgMjUgMCAzIDAKLTIyMjgwMCAxNTM3ODAgMjQgMCAzIDAKLTIyMjgwMCAxNTM3ODAgMjMgMCAzIDAKLTIyMjgwMCAxNTM3ODAgMjIgMCAzIDAKLTIyMjgwMCAxNTM3ODAgMjYgMCAzIDAKLTIyMjgwMCAxMzMyNjAgMjUgMCAzIDAKLTIyMjgwMCAxMzMyNjAgMjQgMCAzIDAKLTIyMjgwMCAxMzMyNjAgMjMgMCAzIDAKLTIyMjgwMCAxMzMyNjAgMjIgMCAzIDAKLTIyMjgwMCAxMzMyNjAgMjYgMCAzIDAKLTIyMjgwMCAxMjY0MjAgMjUgMCAzIDAKLTIyMjgwMCAxMjY0MjAgMjQgMCAzIDAKLTIyMjgwMCAxMjY0MjAgMjMgMCAzIDAKLTIyMjgwMCAxMjY0MjAgMjIgMCAzIDAKLTIyMjgwMCAxMjY0MjAgMjYgMCAzIDAKLTIyMjgwMCAxMTk1ODAgMjUgMCAzIDAKLTIyMjgwMCAxMTk1ODAgMjQgMCAzIDAKLTIyMjgwMCAxMTk1ODAgMjMgMCAzIDAKLTIyMjgwMCAxMTk1ODAgMjIgMCAzIDAKLTIyMjgwMCAxMTk1ODAgMjYgMCAzIDAKLTEzNjgwMCAyODM3NDAgMjUgMCAzIDAKLTEzNjgwMCAyODM3NDAgMjQgMCAzIDAKLTEzNjgwMCAyODM3NDAgMjMgMCAzIDAKLTEzNjgwMCAyODM3NDAgMjIgMCAzIDAKLTEzNjgwMCAyODM3NDAgMjYgMCAzIDAKLTEzNjgwMCAyNzY5MDAgMjUgMCAzIDAKLTEzNjgwMCAyNzY5MDAgMjQgMCAzIDAKLTEzNjgwMCAyNzY5MDAgMjMgMCAzIDAKLTEzNjgwMCAyNzY5MDAgMjIgMCAzIDAKLTEzNjgwMCAyNzY5MDAgMjYgMCAzIDAKLTEzNjgwMCAyOTA1ODAgMjUgMCAzIDAKLTEzNjgwMCAyOTA1ODAgMjQgMCAzIDAKLTEzNjgwMCAyOTA1ODAgMjMgMCAzIDAKLTEzNjgwMCAyOTA1ODAgMjIgMCAzIDAKLTEzNjgwMCAyOTA1ODAgMjYgMCAzIDAKLTEzNjgwMCAyNjMyMjAgMjUgMCAzIDAKLTEzNjgwMCAyNjMyMjAgMjQgMCAzIDAKLTEzNjgwMCAyNjMyMjAgMjMgMCAzIDAKLTEzNjgwMCAyNjMyMjAgMjIgMCAzIDAKLTEzNjgwMCAyNjMyMjAgMjYgMCAzIDAKLTEzNjgwMCAyNTYzODAgMjUgMCAzIDAKLTEzNjgwMCAyNTYzODAgMjQgMCAzIDAKLTEzNjgwMCAyNTYzODAgMjMgMCAzIDAKLTEzNjgwMCAyNTYzODAgMjIgMCAzIDAKLTEzNjgwMCAyNTYzODAgMjYgMCAzIDAKLTEzNjgwMCAyNzAwNjAgMjUgMCAzIDAKLTEzNjgwMCAyNzAwNjAgMjQgMCAzIDAKLTEzNjgwMCAyNzAwNjAgMjMgMCAzIDAKLTEzNjgwMCAyNzAwNjAgMjIgMCAzIDAKLTEzNjgwMCAyNzAwNjAgMjYgMCAzIDAKLTEzNjgwMCAyMzU4NjAgMjUgMCAzIDAKLTEzNjgwMCAyMzU4NjAgMjQgMCAzIDAKLTEzNjgwMCAyMzU4NjAgMjMgMCAzIDAKLTEzNjgwMCAyMzU4NjAgMjIgMCAzIDAKLTEzNjgwMCAyMzU4NjAgMjYgMCAzIDAKLTEzNjgwMCAyNDk1NDAgMjUgMCAzIDAKLTEzNjgwMCAyNDk1NDAgMjQgMCAzIDAKLTEzNjgwMCAyNDk1NDAgMjMgMCAzIDAKLTEzNjgwMCAyNDk1NDAgMjIgMCAzIDAKLTEzNjgwMCAyNDk1NDAgMjYgMCAzIDAKLTEzNjgwMCAyNDI3MDAgMjUgMCAzIDAKLTEzNjgwMCAyNDI3MDAgMjQgMCAzIDAKLTEzNjgwMCAyNDI3MDAgMjMgMCAzIDAKLTEzNjgwMCAyNDI3MDAgMjIgMCAzIDAKLTEzNjgwMCAyNDI3MDAgMjYgMCAzIDAKLTEzNjgwMCAyMTUzNDAgMjUgMCAzIDAKLTEzNjgwMCAyMTUzNDAgMjQgMCAzIDAKLTEzNjgwMCAyMTUzNDAgMjMgMCAzIDAKLTEzNjgwMCAyMTUzNDAgMjIgMCAzIDAKLTEzNjgwMCAyMTUzNDAgMjYgMCAzIDAKLTEzNjgwMCAyMDg1MDAgMjUgMCAzIDAKLTEzNjgwMCAyMDg1MDAgMjQgMCAzIDAKLTEzNjgwMCAyMDg1MDAgMjMgMCAzIDAKLTEzNjgwMCAyMDg1MDAgMjIgMCAzIDAKLTEzNjgwMCAyMDg1MDAgMjYgMCAzIDAKLTEzNjgwMCAyMjkwMjAgMjUgMCAzIDAKLTEzNjgwMCAyMjkwMjAgMjQgMCAzIDAKLTEzNjgwMCAyMjkwMjAgMjMgMCAzIDAKLTEzNjgwMCAyMjkwMjAgMjIgMCAzIDAKLTEzNjgwMCAyMjkwMjAgMjYgMCAzIDAKLTEzNjgwMCAyMjIxODAgMjUgMCAzIDAKLTEzNjgwMCAyMjIxODAgMjQgMCAzIDAKLTEzNjgwMCAyMjIxODAgMjMgMCAzIDAKLTEzNjgwMCAyMjIxODAgMjIgMCAzIDAKLTEzNjgwMCAyMjIxODAgMjYgMCAzIDAKLTUwODAwIDI5MDU4MCAyNSAwIDMgMAotNTA4MDAgMjkwNTgwIDI0IDAgMyAwCi01MDgwMCAyOTA1ODAgMjMgMCAzIDAKLTUwODAwIDI5MDU4MCAyMiAwIDMgMAotNTA4MDAgMjkwNTgwIDI2IDAgMyAwCi01MDgwMCAyODM3NDAgMjUgMCAzIDAKLTUwODAwIDI4Mzc0MCAyNCAwIDMgMAotNTA4MDAgMjgzNzQwIDIzIDAgMyAwCi01MDgwMCAyODM3NDAgMjIgMCAzIDAKLTUwODAwIDI4Mzc0MCAyNiAwIDMgMAotNTA4MDAgMjc2OTAwIDI1IDAgMyAwCi01MDgwMCAyNzY5MDAgMjQgMCAzIDAKLTUwODAwIDI3NjkwMCAyMyAwIDMgMAotNTA4MDAgMjc2OTAwIDIyIDAgMyAwCi01MDgwMCAyNzY5MDAgMjYgMCAzIDAKLTUwODAwIDI2MzIyMCAyNSAwIDMgMAotNTA4MDAgMjYzMjIwIDI0IDAgMyAwCi01MDgwMCAyNjMyMjAgMjMgMCAzIDAKLTUwODAwIDI2MzIyMCAyMiAwIDMgMAotNTA4MDAgMjYzMjIwIDI2IDAgMyAwCi01MDgwMCAyNTYzODAgMjUgMCAzIDAKLTUwODAwIDI1NjM4MCAyNCAwIDMgMAotNTA4MDAgMjU2MzgwIDIzIDAgMyAwCi01MDgwMCAyNTYzODAgMjIgMCAzIDAKLTUwODAwIDI1NjM4MCAyNiAwIDMgMAotNTA4MDAgMjcwMDYwIDI1IDAgMyAwCi01MDgwMCAyNzAwNjAgMjQgMCAzIDAKLTUwODAwIDI3MDA2MCAyMyAwIDMgMAotNTA4MDAgMjcwMDYwIDIyIDAgMyAwCi01MDgwMCAyNzAwNjAgMjYgMCAzIDAKLTUwODAwIDIzNTg2MCAyNSAwIDMgMAotNTA4MDAgMjM1ODYwIDI0IDAgMyAwCi01MDgwMCAyMzU4NjAgMjMgMCAzIDAKLTUwODAwIDIzNTg2MCAyMiAwIDMgMAotNTA4MDAgMjM1ODYwIDI2IDAgMyAwCi01MDgwMCAyNDI3MDAgMjUgMCAzIDAKLTUwODAwIDI0MjcwMCAyNCAwIDMgMAotNTA4MDAgMjQyNzAwIDIzIDAgMyAwCi01MDgwMCAyNDI3MDAgMjIgMCAzIDAKLTUwODAwIDI0MjcwMCAyNiAwIDMgMAotNTA4MDAgMjQ5NTQwIDI1IDAgMyAwCi01MDgwMCAyNDk1NDAgMjQgMCAzIDAKLTUwODAwIDI0OTU0MCAyMyAwIDMgMAotNTA4MDAgMjQ5NTQwIDIyIDAgMyAwCi01MDgwMCAyNDk1NDAgMjYgMCAzIDAKLTUwODAwIDIxNTM0MCAyNSAwIDMgMAotNTA4MDAgMjE1MzQwIDI0IDAgMyAwCi01MDgwMCAyMTUzNDAgMjMgMCAzIDAKLTUwODAwIDIxNTM0MCAyMiAwIDMgMAotNTA4MDAgMjE1MzQwIDI2IDAgMyAwCi01MDgwMCAyMDg1MDAgMjUgMCAzIDAKLTUwODAwIDIwODUwMCAyNCAwIDMgMAotNTA4MDAgMjA4NTAwIDIzIDAgMyAwCi01MDgwMCAyMDg1MDAgMjIgMCAzIDAKLTUwODAwIDIwODUwMCAyNiAwIDMgMAotNTA4MDAgMjIyMTgwIDI1IDAgMyAwCi01MDgwMCAyMjIxODAgMjQgMCAzIDAKLTUwODAwIDIyMjE4MCAyMyAwIDMgMAotNTA4MDAgMjIyMTgwIDIyIDAgMyAwCi01MDgwMCAyMjIxODAgMjYgMCAzIDAKLTUwODAwIDIyOTAyMCAyNSAwIDMgMAotNTA4MDAgMjI5MDIwIDI0IDAgMyAwCi01MDgwMCAyMjkwMjAgMjMgMCAzIDAKLTUwODAwIDIyOTAyMCAyMiAwIDMgMAotNTA4MDAgMjI5MDIwIDI2IDAgMyAwCi0xMzY4MDAgMTg3OTgwIDI1IDAgMyAwCi0xMzY4MDAgMTg3OTgwIDI0IDAgMyAwCi0xMzY4MDAgMTg3OTgwIDIzIDAgMyAwCi0xMzY4MDAgMTg3OTgwIDIyIDAgMyAwCi0xMzY4MDAgMTg3OTgwIDI2IDAgMyAwCi0xMzY4MDAgMTk0ODIwIDI1IDAgMyAwCi0xMzY4MDAgMTk0ODIwIDI0IDAgMyAwCi0xMzY4MDAgMTk0ODIwIDIzIDAgMyAwCi0xMzY4MDAgMTk0ODIwIDIyIDAgMyAwCi0xMzY4MDAgMTk0ODIwIDI2IDAgMyAwCi0xMzY4MDAgMjAxNjYwIDI1IDAgMyAwCi0xMzY4MDAgMjAxNjYwIDI0IDAgMyAwCi0xMzY4MDAgMjAxNjYwIDIzIDAgMyAwCi0xMzY4MDAgMjAxNjYwIDIyIDAgMyAwCi0xMzY4MDAgMjAxNjYwIDI2IDAgMyAwCi0xMzY4MDAgMTY3NDYwIDI1IDAgMyAwCi0xMzY4MDAgMTY3NDYwIDI0IDAgMyAwCi0xMzY4MDAgMTY3NDYwIDIzIDAgMyAwCi0xMzY4MDAgMTY3NDYwIDIyIDAgMyAwCi0xMzY4MDAgMTY3NDYwIDI2IDAgMyAwCi0xMzY4MDAgMTgxMTQwIDI1IDAgMyAwCi0xMzY4MDAgMTgxMTQwIDI0IDAgMyAwCi0xMzY4MDAgMTgxMTQwIDIzIDAgMyAwCi0xMzY4MDAgMTgxMTQwIDIyIDAgMyAwCi0xMzY4MDAgMTgxMTQwIDI2IDAgMyAwCi0xMzY4MDAgMTc0MzAwIDI1IDAgMyAwCi0xMzY4MDAgMTc0MzAwIDI0IDAgMyAwCi0xMzY4MDAgMTc0MzAwIDIzIDAgMyAwCi0xMzY4MDAgMTc0MzAwIDIyIDAgMyAwCi0xMzY4MDAgMTc0MzAwIDI2IDAgMyAwCi0xMzY4MDAgMTQwMTAwIDI1IDAgMyAwCi0xMzY4MDAgMTQwMTAwIDI0IDAgMyAwCi0xMzY4MDAgMTQwMTAwIDIzIDAgMyAwCi0xMzY4MDAgMTQwMTAwIDIyIDAgMyAwCi0xMzY4MDAgMTQwMTAwIDI2IDAgMyAwCi0xMzY4MDAgMTQ2OTQwIDI1IDAgMyAwCi0xMzY4MDAgMTQ2OTQwIDI0IDAgMyAwCi0xMzY4MDAgMTQ2OTQwIDIzIDAgMyAwCi0xMzY4MDAgMTQ2OTQwIDIyIDAgMyAwCi0xMzY4MDAgMTQ2OTQwIDI2IDAgMyAwCi0xMzY4MDAgMTYwNjIwIDI1IDAgMyAwCi0xMzY4MDAgMTYwNjIwIDI0IDAgMyAwCi0xMzY4MDAgMTYwNjIwIDIzIDAgMyAwCi0xMzY4MDAgMTYwNjIwIDIyIDAgMyAwCi0xMzY4MDAgMTYwNjIwIDI2IDAgMyAwCi0xMzY4MDAgMTUzNzgwIDI1IDAgMyAwCi0xMzY4MDAgMTUzNzgwIDI0IDAgMyAwCi0xMzY4MDAgMTUzNzgwIDIzIDAgMyAwCi0xMzY4MDAgMTUzNzgwIDIyIDAgMyAwCi0xMzY4MDAgMTUzNzgwIDI2IDAgMyAwCi0xMzY4MDAgMTI2NDIwIDI1IDAgMyAwCi0xMzY4MDAgMTI2NDIwIDI0IDAgMyAwCi0xMzY4MDAgMTI2NDIwIDIzIDAgMyAwCi0xMzY4MDAgMTI2NDIwIDIyIDAgMyAwCi0xMzY4MDAgMTI2NDIwIDI2IDAgMyAwCi0xMzY4MDAgMTE5NTgwIDI1IDAgMyAwCi0xMzY4MDAgMTE5NTgwIDI0IDAgMyAwCi0xMzY4MDAgMTE5NTgwIDIzIDAgMyAwCi0xMzY4MDAgMTE5NTgwIDIyIDAgMyAwCi0xMzY4MDAgMTE5NTgwIDI2IDAgMyAwCi0xMzY4MDAgMTMzMjYwIDI1IDAgMyAwCi0xMzY4MDAgMTMzMjYwIDI0IDAgMyAwCi0xMzY4MDAgMTMzMjYwIDIzIDAgMyAwCi0xMzY4MDAgMTMzMjYwIDIyIDAgMyAwCi0xMzY4MDAgMTMzMjYwIDI2IDAgMyAwCi01MDgwMCAxODc5ODAgMjUgMCAzIDAKLTUwODAwIDE4Nzk4MCAyNCAwIDMgMAotNTA4MDAgMTg3OTgwIDIzIDAgMyAwCi01MDgwMCAxODc5ODAgMjIgMCAzIDAKLTUwODAwIDE4Nzk4MCAyNiAwIDMgMAotNTA4MDAgMTk0ODIwIDI1IDAgMyAwCi01MDgwMCAxOTQ4MjAgMjQgMCAzIDAKLTUwODAwIDE5NDgyMCAyMyAwIDMgMAotNTA4MDAgMTk0ODIwIDIyIDAgMyAwCi01MDgwMCAxOTQ4MjAgMjYgMCAzIDAKLTUwODAwIDIwMTY2MCAyNSAwIDMgMAotNTA4MDAgMjAxNjYwIDI0IDAgMyAwCi01MDgwMCAyMDE2NjAgMjMgMCAzIDAKLTUwODAwIDIwMTY2MCAyMiAwIDMgMAotNTA4MDAgMjAxNjYwIDI2IDAgMyAwCi01MDgwMCAxNjc0NjAgMjUgMCAzIDAKLTUwODAwIDE2NzQ2MCAyNCAwIDMgMAotNTA4MDAgMTY3NDYwIDIzIDAgMyAwCi01MDgwMCAxNjc0NjAgMjIgMCAzIDAKLTUwODAwIDE2NzQ2MCAyNiAwIDMgMAotNTA4MDAgMTgxMTQwIDI1IDAgMyAwCi01MDgwMCAxODExNDAgMjQgMCAzIDAKLTUwODAwIDE4MTE0MCAyMyAwIDMgMAotNTA4MDAgMTgxMTQwIDIyIDAgMyAwCi01MDgwMCAxODExNDAgMjYgMCAzIDAKLTUwODAwIDE3NDMwMCAyNSAwIDMgMAotNTA4MDAgMTc0MzAwIDI0IDAgMyAwCi01MDgwMCAxNzQzMDAgMjMgMCAzIDAKLTUwODAwIDE3NDMwMCAyMiAwIDMgMAotNTA4MDAgMTc0MzAwIDI2IDAgMyAwCi01MDgwMCAxNDY5NDAgMjUgMCAzIDAKLTUwODAwIDE0Njk0MCAyNCAwIDMgMAotNTA4MDAgMTQ2OTQwIDIzIDAgMyAwCi01MDgwMCAxNDY5NDAgMjIgMCAzIDAKLTUwODAwIDE0Njk0MCAyNiAwIDMgMAotNTA4MDAgMTQwMTAwIDI1IDAgMyAwCi01MDgwMCAxNDAxMDAgMjQgMCAzIDAKLTUwODAwIDE0MDEwMCAyMyAwIDMgMAotNTA4MDAgMTQwMTAwIDIyIDAgMyAwCi01MDgwMCAxNDAxMDAgMjYgMCAzIDAKLTUwODAwIDE2MDYyMCAyNSAwIDMgMAotNTA4MDAgMTYwNjIwIDI0IDAgMyAwCi01MDgwMCAxNjA2MjAgMjMgMCAzIDAKLTUwODAwIDE2MDYyMCAyMiAwIDMgMAotNTA4MDAgMTYwNjIwIDI2IDAgMyAwCi01MDgwMCAxNTM3ODAgMjUgMCAzIDAKLTUwODAwIDE1Mzc4MCAyNCAwIDMgMAotNTA4MDAgMTUzNzgwIDIzIDAgMyAwCi01MDgwMCAxNTM3ODAgMjIgMCAzIDAKLTUwODAwIDE1Mzc4MCAyNiAwIDMgMAotNTA4MDAgMTMzMjYwIDI1IDAgMyAwCi01MDgwMCAxMzMyNjAgMjQgMCAzIDAKLTUwODAwIDEzMzI2MCAyMyAwIDMgMAotNTA4MDAgMTMzMjYwIDIyIDAgMyAwCi01MDgwMCAxMzMyNjAgMjYgMCAzIDAKLTUwODAwIDEyNjQyMCAyNSAwIDMgMAotNTA4MDAgMTI2NDIwIDI0IDAgMyAwCi01MDgwMCAxMjY0MjAgMjMgMCAzIDAKLTUwODAwIDEyNjQyMCAyMiAwIDMgMAotNTA4MDAgMTI2NDIwIDI2IDAgMyAwCi01MDgwMCAxMTk1ODAgMjUgMCAzIDAKLTUwODAwIDExOTU4MCAyNCAwIDMgMAotNTA4MDAgMTE5NTgwIDIzIDAgMyAwCi01MDgwMCAxMTk1ODAgMjIgMCAzIDAKLTUwODAwIDExOTU4MCAyNiAwIDMgMAotMjIyODAwIDEwNTkwMCAyNSAwIDMgMAotMjIyODAwIDEwNTkwMCAyNCAwIDMgMAotMjIyODAwIDEwNTkwMCAyMyAwIDMgMAotMjIyODAwIDEwNTkwMCAyMiAwIDMgMAotMjIyODAwIDEwNTkwMCAyNiAwIDMgMAotMjIyODAwIDk5MDYwIDI1IDAgMyAwCi0yMjI4MDAgOTkwNjAgMjQgMCAzIDAKLTIyMjgwMCA5OTA2MCAyMyAwIDMgMAotMjIyODAwIDk5MDYwIDIyIDAgMyAwCi0yMjI4MDAgOTkwNjAgMjYgMCAzIDAKLTIyMjgwMCAxMTI3NDAgMjUgMCAzIDAKLTIyMjgwMCAxMTI3NDAgMjQgMCAzIDAKLTIyMjgwMCAxMTI3NDAgMjMgMCAzIDAKLTIyMjgwMCAxMTI3NDAgMjIgMCAzIDAKLTIyMjgwMCAxMTI3NDAgMjYgMCAzIDAKLTIyMjgwMCA3ODU0MCAyNSAwIDMgMAotMjIyODAwIDc4NTQwIDI0IDAgMyAwCi0yMjI4MDAgNzg1NDAgMjMgMCAzIDAKLTIyMjgwMCA3ODU0MCAyMiAwIDMgMAotMjIyODAwIDc4NTQwIDI2IDAgMyAwCi0yMjI4MDAgOTIyMjAgMjUgMCAzIDAKLTIyMjgwMCA5MjIyMCAyNCAwIDMgMAotMjIyODAwIDkyMjIwIDIzIDAgMyAwCi0yMjI4MDAgOTIyMjAgMjIgMCAzIDAKLTIyMjgwMCA5MjIyMCAyNiAwIDMgMAotMjIyODAwIDg1MzgwIDI1IDAgMyAwCi0yMjI4MDAgODUzODAgMjQgMCAzIDAKLTIyMjgwMCA4NTM4MCAyMyAwIDMgMAotMjIyODAwIDg1MzgwIDIyIDAgMyAwCi0yMjI4MDAgODUzODAgMjYgMCAzIDAKLTIyMjgwMCA3MTcwMCAyNSAwIDMgMAotMjIyODAwIDcxNzAwIDI0IDAgMyAwCi0yMjI4MDAgNzE3MDAgMjMgMCAzIDAKLTIyMjgwMCA3MTcwMCAyMiAwIDMgMAotMjIyODAwIDcxNzAwIDI2IDAgMyAwCi0yMjI4MDAgNTExODAgMjUgMCAzIDAKLTIyMjgwMCA1MTE4MCAyNCAwIDMgMAotMjIyODAwIDUxMTgwIDIzIDAgMyAwCi0yMjI4MDAgNTExODAgMjIgMCAzIDAKLTIyMjgwMCA1MTE4MCAyNiAwIDMgMAotMjIyODAwIDU4MDIwIDI1IDAgMyAwCi0yMjI4MDAgNTgwMjAgMjQgMCAzIDAKLTIyMjgwMCA1ODAyMCAyMyAwIDMgMAotMjIyODAwIDU4MDIwIDIyIDAgMyAwCi0yMjI4MDAgNTgwMjAgMjYgMCAzIDAKLTIyMjgwMCA2NDg2MCAyNSAwIDMgMAotMjIyODAwIDY0ODYwIDI0IDAgMyAwCi0yMjI4MDAgNjQ4NjAgMjMgMCAzIDAKLTIyMjgwMCA2NDg2MCAyMiAwIDMgMAotMjIyODAwIDY0ODYwIDI2IDAgMyAwCi0yMjI4MDAgMzA2NjAgMjUgMCAzIDAKLTIyMjgwMCAzMDY2MCAyNCAwIDMgMAotMjIyODAwIDMwNjYwIDIzIDAgMyAwCi0yMjI4MDAgMzA2NjAgMjIgMCAzIDAKLTIyMjgwMCAzMDY2MCAyNiAwIDMgMAotMjIyODAwIDM3NTAwIDI1IDAgMyAwCi0yMjI4MDAgMzc1MDAgMjQgMCAzIDAKLTIyMjgwMCAzNzUwMCAyMyAwIDMgMAotMjIyODAwIDM3NTAwIDIyIDAgMyAwCi0yMjI4MDAgMzc1MDAgMjYgMCAzIDAKLTIyMjgwMCA0NDM0MCAyNSAwIDMgMAotMjIyODAwIDQ0MzQwIDI0IDAgMyAwCi0yMjI4MDAgNDQzNDAgMjMgMCAzIDAKLTIyMjgwMCA0NDM0MCAyMiAwIDMgMAotMjIyODAwIDQ0MzQwIDI2IDAgMyAwCi0yMjI4MDAgMTAxNDAgMjUgMCAzIDAKLTIyMjgwMCAxMDE0MCAyNCAwIDMgMAotMjIyODAwIDEwMTQwIDIzIDAgMyAwCi0yMjI4MDAgMTAxNDAgMjIgMCAzIDAKLTIyMjgwMCAxMDE0MCAyNiAwIDMgMAotMjIyODAwIDIzODIwIDI1IDAgMyAwCi0yMjI4MDAgMjM4MjAgMjQgMCAzIDAKLTIyMjgwMCAyMzgyMCAyMyAwIDMgMAotMjIyODAwIDIzODIwIDIyIDAgMyAwCi0yMjI4MDAgMjM4MjAgMjYgMCAzIDAKLTIyMjgwMCAxNjk4MCAyNSAwIDMgMAotMjIyODAwIDE2OTgwIDI0IDAgMyAwCi0yMjI4MDAgMTY5ODAgMjMgMCAzIDAKLTIyMjgwMCAxNjk4MCAyMiAwIDMgMAotMjIyODAwIDE2OTgwIDI2IDAgMyAwCi0yMjI4MDAgMzMwMCAyNSAwIDMgMAotMjIyODAwIDMzMDAgMjQgMCAzIDAKLTIyMjgwMCAzMzAwIDIzIDAgMyAwCi0yMjI4MDAgMzMwMCAyMiAwIDMgMAotMjIyODAwIDMzMDAgMjYgMCAzIDAKLTEzNjgwMCA5OTA2MCAyNSAwIDMgMAotMTM2ODAwIDk5MDYwIDI0IDAgMyAwCi0xMzY4MDAgOTkwNjAgMjMgMCAzIDAKLTEzNjgwMCA5OTA2MCAyMiAwIDMgMAotMTM2ODAwIDk5MDYwIDI2IDAgMyAwCi0xMzY4MDAgMTA1OTAwIDI1IDAgMyAwCi0xMzY4MDAgMTA1OTAwIDI0IDAgMyAwCi0xMzY4MDAgMTA1OTAwIDIzIDAgMyAwCi0xMzY4MDAgMTA1OTAwIDIyIDAgMyAwCi0xMzY4MDAgMTA1OTAwIDI2IDAgMyAwCi0xMzY4MDAgMTEyNzQwIDI1IDAgMyAwCi0xMzY4MDAgMTEyNzQwIDI0IDAgMyAwCi0xMzY4MDAgMTEyNzQwIDIzIDAgMyAwCi0xMzY4MDAgMTEyNzQwIDIyIDAgMyAwCi0xMzY4MDAgMTEyNzQwIDI2IDAgMyAwCi0xMzY4MDAgNzg1NDAgMjUgMCAzIDAKLTEzNjgwMCA3ODU0MCAyNCAwIDMgMAotMTM2ODAwIDc4NTQwIDIzIDAgMyAwCi0xMzY4MDAgNzg1NDAgMjIgMCAzIDAKLTEzNjgwMCA3ODU0MCAyNiAwIDMgMAotMTM2ODAwIDkyMjIwIDI1IDAgMyAwCi0xMzY4MDAgOTIyMjAgMjQgMCAzIDAKLTEzNjgwMCA5MjIyMCAyMyAwIDMgMAotMTM2ODAwIDkyMjIwIDIyIDAgMyAwCi0xMzY4MDAgOTIyMjAgMjYgMCAzIDAKLTEzNjgwMCA4NTM4MCAyNSAwIDMgMAotMTM2ODAwIDg1MzgwIDI0IDAgMyAwCi0xMzY4MDAgODUzODAgMjMgMCAzIDAKLTEzNjgwMCA4NTM4MCAyMiAwIDMgMAotMTM2ODAwIDg1MzgwIDI2IDAgMyAwCi0xMzY4MDAgNzE3MDAgMjUgMCAzIDAKLTEzNjgwMCA3MTcwMCAyNCAwIDMgMAotMTM2ODAwIDcxNzAwIDIzIDAgMyAwCi0xMzY4MDAgNzE3MDAgMjIgMCAzIDAKLTEzNjgwMCA3MTcwMCAyNiAwIDMgMAotMTM2ODAwIDU4MDIwIDI1IDAgMyAwCi0xMzY4MDAgNTgwMjAgMjQgMCAzIDAKLTEzNjgwMCA1ODAyMCAyMyAwIDMgMAotMTM2ODAwIDU4MDIwIDIyIDAgMyAwCi0xMzY4MDAgNTgwMjAgMjYgMCAzIDAKLTEzNjgwMCA1MTE4MCAyNSAwIDMgMAotMTM2ODAwIDUxMTgwIDI0IDAgMyAwCi0xMzY4MDAgNTExODAgMjMgMCAzIDAKLTEzNjgwMCA1MTE4MCAyMiAwIDMgMAotMTM2ODAwIDUxMTgwIDI2IDAgMyAwCi0xMzY4MDAgNjQ4NjAgMjUgMCAzIDAKLTEzNjgwMCA2NDg2MCAyNCAwIDMgMAotMTM2ODAwIDY0ODYwIDIzIDAgMyAwCi0xMzY4MDAgNjQ4NjAgMjIgMCAzIDAKLTEzNjgwMCA2NDg2MCAyNiAwIDMgMAotMTM2ODAwIDM3NTAwIDI1IDAgMyAwCi0xMzY4MDAgMzc1MDAgMjQgMCAzIDAKLTEzNjgwMCAzNzUwMCAyMyAwIDMgMAotMTM2ODAwIDM3NTAwIDIyIDAgMyAwCi0xMzY4MDAgMzc1MDAgMjYgMCAzIDAKLTEzNjgwMCAzMDY2MCAyNSAwIDMgMAotMTM2ODAwIDMwNjYwIDI0IDAgMyAwCi0xMzY4MDAgMzA2NjAgMjMgMCAzIDAKLTEzNjgwMCAzMDY2MCAyMiAwIDMgMAotMTM2ODAwIDMwNjYwIDI2IDAgMyAwCi0xMzY4MDAgNDQzNDAgMjUgMCAzIDAKLTEzNjgwMCA0NDM0MCAyNCAwIDMgMAotMTM2ODAwIDQ0MzQwIDIzIDAgMyAwCi0xMzY4MDAgNDQzNDAgMjIgMCAzIDAKLTEzNjgwMCA0NDM0MCAyNiAwIDMgMAotNTA4MDAgMTEyNzQwIDI1IDAgMyAwCi01MDgwMCAxMTI3NDAgMjQgMCAzIDAKLTUwODAwIDExMjc0MCAyMyAwIDMgMAotNTA4MDAgMTEyNzQwIDIyIDAgMyAwCi01MDgwMCAxMTI3NDAgMjYgMCAzIDAKLTUwODAwIDEwNTkwMCAyNSAwIDMgMAotNTA4MDAgMTA1OTAwIDI0IDAgMyAwCi01MDgwMCAxMDU5MDAgMjMgMCAzIDAKLTUwODAwIDEwNTkwMCAyMiAwIDMgMAotNTA4MDAgMTA1OTAwIDI2IDAgMyAwCi01MDgwMCA5OTA2MCAyNSAwIDMgMAotNTA4MDAgOTkwNjAgMjQgMCAzIDAKLTUwODAwIDk5MDYwIDIzIDAgMyAwCi01MDgwMCA5OTA2MCAyMiAwIDMgMAotNTA4MDAgOTkwNjAgMjYgMCAzIDAKLTUwODAwIDc4NTQwIDI1IDAgMyAwCi01MDgwMCA3ODU0MCAyNCAwIDMgMAotNTA4MDAgNzg1NDAgMjMgMCAzIDAKLTUwODAwIDc4NTQwIDIyIDAgMyAwCi01MDgwMCA3ODU0MCAyNiAwIDMgMAotNTA4MDAgODUzODAgMjUgMCAzIDAKLTUwODAwIDg1MzgwIDI0IDAgMyAwCi01MDgwMCA4NTM4MCAyMyAwIDMgMAotNTA4MDAgODUzODAgMjIgMCAzIDAKLTUwODAwIDg1MzgwIDI2IDAgMyAwCi01MDgwMCA5MjIyMCAyNSAwIDMgMAotNTA4MDAgOTIyMjAgMjQgMCAzIDAKLTUwODAwIDkyMjIwIDIzIDAgMyAwCi01MDgwMCA5MjIyMCAyMiAwIDMgMAotNTA4MDAgOTIyMjAgMjYgMCAzIDAKLTUwODAwIDcxNzAwIDI1IDAgMyAwCi01MDgwMCA3MTcwMCAyNCAwIDMgMAotNTA4MDAgNzE3MDAgMjMgMCAzIDAKLTUwODAwIDcxNzAwIDIyIDAgMyAwCi01MDgwMCA3MTcwMCAyNiAwIDMgMAotNTA4MDAgNjQ4NjAgMjUgMCAzIDAKLTUwODAwIDY0ODYwIDI0IDAgMyAwCi01MDgwMCA2NDg2MCAyMyAwIDMgMAotNTA4MDAgNjQ4NjAgMjIgMCAzIDAKLTUwODAwIDY0ODYwIDI2IDAgMyAwCi01MDgwMCA1MTE4MCAyNSAwIDMgMAotNTA4MDAgNTExODAgMjQgMCAzIDAKLTUwODAwIDUxMTgwIDIzIDAgMyAwCi01MDgwMCA1MTE4MCAyMiAwIDMgMAotNTA4MDAgNTExODAgMjYgMCAzIDAKLTUwODAwIDU4MDIwIDI1IDAgMyAwCi01MDgwMCA1ODAyMCAyNCAwIDMgMAotNTA4MDAgNTgwMjAgMjMgMCAzIDAKLTUwODAwIDU4MDIwIDIyIDAgMyAwCi01MDgwMCA1ODAyMCAyNiAwIDMgMAotNTA4MDAgMzA2NjAgMjUgMCAzIDAKLTUwODAwIDMwNjYwIDI0IDAgMyAwCi01MDgwMCAzMDY2MCAyMyAwIDMgMAotNTA4MDAgMzA2NjAgMjIgMCAzIDAKLTUwODAwIDMwNjYwIDI2IDAgMyAwCi01MDgwMCAzNzUwMCAyNSAwIDMgMAotNTA4MDAgMzc1MDAgMjQgMCAzIDAKLTUwODAwIDM3NTAwIDIzIDAgMyAwCi01MDgwMCAzNzUwMCAyMiAwIDMgMAotNTA4MDAgMzc1MDAgMjYgMCAzIDAKLTUwODAwIDQ0MzQwIDI1IDAgMyAwCi01MDgwMCA0NDM0MCAyNCAwIDMgMAotNTA4MDAgNDQzNDAgMjMgMCAzIDAKLTUwODAwIDQ0MzQwIDIyIDAgMyAwCi01MDgwMCA0NDM0MCAyNiAwIDMgMAotMTM2ODAwIDEwMTQwIDI1IDAgMyAwCi0xMzY4MDAgMTAxNDAgMjQgMCAzIDAKLTEzNjgwMCAxMDE0MCAyMyAwIDMgMAotMTM2ODAwIDEwMTQwIDIyIDAgMyAwCi0xMzY4MDAgMTAxNDAgMjYgMCAzIDAKLTEzNjgwMCAxNjk4MCAyNSAwIDMgMAotMTM2ODAwIDE2OTgwIDI0IDAgMyAwCi0xMzY4MDAgMTY5ODAgMjMgMCAzIDAKLTEzNjgwMCAxNjk4MCAyMiAwIDMgMAotMTM2ODAwIDE2OTgwIDI2IDAgMyAwCi0xMzY4MDAgMjM4MjAgMjUgMCAzIDAKLTEzNjgwMCAyMzgyMCAyNCAwIDMgMAotMTM2ODAwIDIzODIwIDIzIDAgMyAwCi0xMzY4MDAgMjM4MjAgMjIgMCAzIDAKLTEzNjgwMCAyMzgyMCAyNiAwIDMgMAotMTM2ODAwIDMzMDAgMjUgMCAzIDAKLTEzNjgwMCAzMzAwIDI0IDAgMyAwCi0xMzY4MDAgMzMwMCAyMyAwIDMgMAotMTM2ODAwIDMzMDAgMjIgMCAzIDAKLTEzNjgwMCAzMzAwIDI2IDAgMyAwCi01MDgwMCAxMDE0MCAyNSAwIDMgMAotNTA4MDAgMTAxNDAgMjQgMCAzIDAKLTUwODAwIDEwMTQwIDIzIDAgMyAwCi01MDgwMCAxMDE0MCAyMiAwIDMgMAotNTA4MDAgMTAxNDAgMjYgMCAzIDAKLTUwODAwIDIzODIwIDI1IDAgMyAwCi01MDgwMCAyMzgyMCAyNCAwIDMgMAotNTA4MDAgMjM4MjAgMjMgMCAzIDAKLTUwODAwIDIzODIwIDIyIDAgMyAwCi01MDgwMCAyMzgyMCAyNiAwIDMgMAotNTA4MDAgMTY5ODAgMjUgMCAzIDAKLTUwODAwIDE2OTgwIDI0IDAgMyAwCi01MDgwMCAxNjk4MCAyMyAwIDMgMAotNTA4MDAgMTY5ODAgMjIgMCAzIDAKLTUwODAwIDE2OTgwIDI2IDAgMyAwCi01MDgwMCAzMzAwIDI1IDAgMyAwCi01MDgwMCAzMzAwIDI0IDAgMyAwCi01MDgwMCAzMzAwIDIzIDAgMyAwCi01MDgwMCAzMzAwIDIyIDAgMyAwCi01MDgwMCAzMzAwIDI2IDAgMyAwCi0wIDAgMSBBVmRkCi00OSA2OTAgMSBWU1MKLTAgMzAwODQwIDI4MzYwMCAyNDAgTWV0YWwxIDEwMCAzIDAKLTAgMzA3NjgwIDI4MzYwMCAyNDAgTWV0YWwxIDEwMCAzIDAKLTU4ODAwIDAgNjAwMCAzMDc4MDAgTWV0YWw2IDAxMCAyIDAKLTE0NDgwMCAwIDYwMDAgMzA3ODAwIE1ldGFsNiAwMTAgMiAwCi0yMzA4MDAgMCA2MDAwIDMwNzgwMCBNZXRhbDYgMDEwIDIgMAotMCAyMzI0NDAgMjgzNjAwIDI0MCBNZXRhbDEgMTAwIDMgMAotMCAyMjU2MDAgMjgzNjAwIDI0MCBNZXRhbDEgMTAwIDMgMAotMCAyMTE5MjAgMjgzNjAwIDI0MCBNZXRhbDEgMTAwIDMgMAotMCAyMTg3NjAgMjgzNjAwIDI0MCBNZXRhbDEgMTAwIDMgMAotMCAyMzkyODAgMjgzNjAwIDI0MCBNZXRhbDEgMTAwIDMgMAotMCAyNDYxMjAgMjgzNjAwIDI0MCBNZXRhbDEgMTAwIDMgMAotMCAyOTQwMDAgMjgzNjAwIDI0MCBNZXRhbDEgMTAwIDMgMAotMCAyODcxNjAgMjgzNjAwIDI0MCBNZXRhbDEgMTAwIDMgMAotMCAyODAzMjAgMjgzNjAwIDI0MCBNZXRhbDEgMTAwIDMgMAotMCAyNzM0ODAgMjgzNjAwIDI0MCBNZXRhbDEgMTAwIDMgMAotMCAyNjY2NDAgMjgzNjAwIDI0MCBNZXRhbDEgMTAwIDMgMAotMCAyNTk4MDAgMjgzNjAwIDI0MCBNZXRhbDEgMTAwIDMgMAotMCAyNTI5NjAgMjgzNjAwIDI0MCBNZXRhbDEgMTAwIDMgMAotMCAxMjMwMDAgMjgzNjAwIDI0MCBNZXRhbDEgMTAwIDMgMAotMCAxNDM1MjAgMjgzNjAwIDI0MCBNZXRhbDEgMTAwIDMgMAotMCAxMzY2ODAgMjgzNjAwIDI0MCBNZXRhbDEgMTAwIDMgMAotMCAxMjk4NDAgMjgzNjAwIDI0MCBNZXRhbDEgMTAwIDMgMAotMCAxNTAzNjAgMjgzNjAwIDI0MCBNZXRhbDEgMTAwIDMgMAotMCAxNTcyMDAgMjgzNjAwIDI0MCBNZXRhbDEgMTAwIDMgMAotMCAxODQ1NjAgMjgzNjAwIDI0MCBNZXRhbDEgMTAwIDMgMAotMCAxNzc3MjAgMjgzNjAwIDI0MCBNZXRhbDEgMTAwIDMgMAotMCAxNzA4ODAgMjgzNjAwIDI0MCBNZXRhbDEgMTAwIDMgMAotMCAxNjQwNDAgMjgzNjAwIDI0MCBNZXRhbDEgMTAwIDMgMAotMCAyMDUwODAgMjgzNjAwIDI0MCBNZXRhbDEgMTAwIDMgMAotMCAxOTgyNDAgMjgzNjAwIDI0MCBNZXRhbDEgMTAwIDMgMAotMCAxOTE0MDAgMjgzNjAwIDI0MCBNZXRhbDEgMTAwIDMgMAotMCA0Nzc2MCAyODM2MDAgMjQwIE1ldGFsMSAxMDAgMyAwCi0wIDM0MDgwIDI4MzYwMCAyNDAgTWV0YWwxIDEwMCAzIDAKLTAgNDA5MjAgMjgzNjAwIDI0MCBNZXRhbDEgMTAwIDMgMAotMCAyNzI0MCAyODM2MDAgMjQwIE1ldGFsMSAxMDAgMyAwCi0wIDU0NjAwIDI4MzYwMCAyNDAgTWV0YWwxIDEwMCAzIDAKLTAgNjgyODAgMjgzNjAwIDI0MCBNZXRhbDEgMTAwIDMgMAotMCA2MTQ0MCAyODM2MDAgMjQwIE1ldGFsMSAxMDAgMyAwCi0wIDEwMjQ4MCAyODM2MDAgMjQwIE1ldGFsMSAxMDAgMyAwCi0wIDEwOTMyMCAyODM2MDAgMjQwIE1ldGFsMSAxMDAgMyAwCi0wIDk1NjQwIDI4MzYwMCAyNDAgTWV0YWwxIDEwMCAzIDAKLTAgODg4MDAgMjgzNjAwIDI0MCBNZXRhbDEgMTAwIDMgMAotMCA3NTEyMCAyODM2MDAgMjQwIE1ldGFsMSAxMDAgMyAwCi0wIDgxOTYwIDI4MzYwMCAyNDAgTWV0YWwxIDEwMCAzIDAKLTAgMTE2MTYwIDI4MzYwMCAyNDAgTWV0YWwxIDEwMCAzIDAKLTAgMTM1NjAgMjgzNjAwIDI0MCBNZXRhbDEgMTAwIDMgMAotMCAyMDQwMCAyODM2MDAgMjQwIE1ldGFsMSAxMDAgMyAwCi0wIDY3MjAgMjgzNjAwIDI0MCBNZXRhbDEgMTAwIDMgMAotMCAtMTIwIDI4MzYwMCAyNDAgTWV0YWwxIDEwMCAzIDAKLTIzMDgwMCAzMDA4NDAgMjUgMCAzIDAKLTIzMDgwMCAzMDA4NDAgMjQgMCAzIDAKLTIzMDgwMCAzMDA4NDAgMjMgMCAzIDAKLTIzMDgwMCAzMDA4NDAgMjIgMCAzIDAKLTIzMDgwMCAzMDA4NDAgMjYgMCAzIDAKLTIzMDgwMCAzMDc2ODAgMjUgMCAzIDAKLTIzMDgwMCAzMDc2ODAgMjQgMCAzIDAKLTIzMDgwMCAzMDc2ODAgMjMgMCAzIDAKLTIzMDgwMCAzMDc2ODAgMjIgMCAzIDAKLTIzMDgwMCAzMDc2ODAgMjYgMCAzIDAKLTE0NDgwMCAzMDA4NDAgMjUgMCAzIDAKLTE0NDgwMCAzMDA4NDAgMjQgMCAzIDAKLTE0NDgwMCAzMDA4NDAgMjMgMCAzIDAKLTE0NDgwMCAzMDA4NDAgMjIgMCAzIDAKLTE0NDgwMCAzMDA4NDAgMjYgMCAzIDAKLTE0NDgwMCAzMDc2ODAgMjUgMCAzIDAKLTE0NDgwMCAzMDc2ODAgMjQgMCAzIDAKLTE0NDgwMCAzMDc2ODAgMjMgMCAzIDAKLTE0NDgwMCAzMDc2ODAgMjIgMCAzIDAKLTE0NDgwMCAzMDc2ODAgMjYgMCAzIDAKLTU4ODAwIDMwMDg0MCAyNSAwIDMgMAotNTg4MDAgMzAwODQwIDI0IDAgMyAwCi01ODgwMCAzMDA4NDAgMjMgMCAzIDAKLTU4ODAwIDMwMDg0MCAyMiAwIDMgMAotNTg4MDAgMzAwODQwIDI2IDAgMyAwCi01ODgwMCAzMDc2ODAgMjUgMCAzIDAKLTU4ODAwIDMwNzY4MCAyNCAwIDMgMAotNTg4MDAgMzA3NjgwIDIzIDAgMyAwCi01ODgwMCAzMDc2ODAgMjIgMCAzIDAKLTU4ODAwIDMwNzY4MCAyNiAwIDMgMAotMjMwODAwIDI5NDAwMCAyNSAwIDMgMAotMjMwODAwIDI5NDAwMCAyNCAwIDMgMAotMjMwODAwIDI5NDAwMCAyMyAwIDMgMAotMjMwODAwIDI5NDAwMCAyMiAwIDMgMAotMjMwODAwIDI5NDAwMCAyNiAwIDMgMAotMjMwODAwIDI4NzE2MCAyNSAwIDMgMAotMjMwODAwIDI4NzE2MCAyNCAwIDMgMAotMjMwODAwIDI4NzE2MCAyMyAwIDMgMAotMjMwODAwIDI4NzE2MCAyMiAwIDMgMAotMjMwODAwIDI4NzE2MCAyNiAwIDMgMAotMjMwODAwIDI4MDMyMCAyNSAwIDMgMAotMjMwODAwIDI4MDMyMCAyNCAwIDMgMAotMjMwODAwIDI4MDMyMCAyMyAwIDMgMAotMjMwODAwIDI4MDMyMCAyMiAwIDMgMAotMjMwODAwIDI4MDMyMCAyNiAwIDMgMAotMjMwODAwIDI2NjY0MCAyNSAwIDMgMAotMjMwODAwIDI2NjY0MCAyNCAwIDMgMAotMjMwODAwIDI2NjY0MCAyMyAwIDMgMAotMjMwODAwIDI2NjY0MCAyMiAwIDMgMAotMjMwODAwIDI2NjY0MCAyNiAwIDMgMAotMjMwODAwIDI1OTgwMCAyNSAwIDMgMAotMjMwODAwIDI1OTgwMCAyNCAwIDMgMAotMjMwODAwIDI1OTgwMCAyMyAwIDMgMAotMjMwODAwIDI1OTgwMCAyMiAwIDMgMAotMjMwODAwIDI1OTgwMCAyNiAwIDMgMAotMjMwODAwIDI1Mjk2MCAyNSAwIDMgMAotMjMwODAwIDI1Mjk2MCAyNCAwIDMgMAotMjMwODAwIDI1Mjk2MCAyMyAwIDMgMAotMjMwODAwIDI1Mjk2MCAyMiAwIDMgMAotMjMwODAwIDI1Mjk2MCAyNiAwIDMgMAotMjMwODAwIDI3MzQ4MCAyNSAwIDMgMAotMjMwODAwIDI3MzQ4MCAyNCAwIDMgMAotMjMwODAwIDI3MzQ4MCAyMyAwIDMgMAotMjMwODAwIDI3MzQ4MCAyMiAwIDMgMAotMjMwODAwIDI3MzQ4MCAyNiAwIDMgMAotMjMwODAwIDI0NjEyMCAyNSAwIDMgMAotMjMwODAwIDI0NjEyMCAyNCAwIDMgMAotMjMwODAwIDI0NjEyMCAyMyAwIDMgMAotMjMwODAwIDI0NjEyMCAyMiAwIDMgMAotMjMwODAwIDI0NjEyMCAyNiAwIDMgMAotMjMwODAwIDIzOTI4MCAyNSAwIDMgMAotMjMwODAwIDIzOTI4MCAyNCAwIDMgMAotMjMwODAwIDIzOTI4MCAyMyAwIDMgMAotMjMwODAwIDIzOTI4MCAyMiAwIDMgMAotMjMwODAwIDIzOTI4MCAyNiAwIDMgMAotMjMwODAwIDIzMjQ0MCAyNSAwIDMgMAotMjMwODAwIDIzMjQ0MCAyNCAwIDMgMAotMjMwODAwIDIzMjQ0MCAyMyAwIDMgMAotMjMwODAwIDIzMjQ0MCAyMiAwIDMgMAotMjMwODAwIDIzMjQ0MCAyNiAwIDMgMAotMjMwODAwIDIxMTkyMCAyNSAwIDMgMAotMjMwODAwIDIxMTkyMCAyNCAwIDMgMAotMjMwODAwIDIxMTkyMCAyMyAwIDMgMAotMjMwODAwIDIxMTkyMCAyMiAwIDMgMAotMjMwODAwIDIxMTkyMCAyNiAwIDMgMAotMjMwODAwIDIxODc2MCAyNSAwIDMgMAotMjMwODAwIDIxODc2MCAyNCAwIDMgMAotMjMwODAwIDIxODc2MCAyMyAwIDMgMAotMjMwODAwIDIxODc2MCAyMiAwIDMgMAotMjMwODAwIDIxODc2MCAyNiAwIDMgMAotMjMwODAwIDIyNTYwMCAyNSAwIDMgMAotMjMwODAwIDIyNTYwMCAyNCAwIDMgMAotMjMwODAwIDIyNTYwMCAyMyAwIDMgMAotMjMwODAwIDIyNTYwMCAyMiAwIDMgMAotMjMwODAwIDIyNTYwMCAyNiAwIDMgMAotMjMwODAwIDE5MTQwMCAyNSAwIDMgMAotMjMwODAwIDE5MTQwMCAyNCAwIDMgMAotMjMwODAwIDE5MTQwMCAyMyAwIDMgMAotMjMwODAwIDE5MTQwMCAyMiAwIDMgMAotMjMwODAwIDE5MTQwMCAyNiAwIDMgMAotMjMwODAwIDE5ODI0MCAyNSAwIDMgMAotMjMwODAwIDE5ODI0MCAyNCAwIDMgMAotMjMwODAwIDE5ODI0MCAyMyAwIDMgMAotMjMwODAwIDE5ODI0MCAyMiAwIDMgMAotMjMwODAwIDE5ODI0MCAyNiAwIDMgMAotMjMwODAwIDIwNTA4MCAyNSAwIDMgMAotMjMwODAwIDIwNTA4MCAyNCAwIDMgMAotMjMwODAwIDIwNTA4MCAyMyAwIDMgMAotMjMwODAwIDIwNTA4MCAyMiAwIDMgMAotMjMwODAwIDIwNTA4MCAyNiAwIDMgMAotMjMwODAwIDE4NDU2MCAyNSAwIDMgMAotMjMwODAwIDE4NDU2MCAyNCAwIDMgMAotMjMwODAwIDE4NDU2MCAyMyAwIDMgMAotMjMwODAwIDE4NDU2MCAyMiAwIDMgMAotMjMwODAwIDE4NDU2MCAyNiAwIDMgMAotMjMwODAwIDE2NDA0MCAyNSAwIDMgMAotMjMwODAwIDE2NDA0MCAyNCAwIDMgMAotMjMwODAwIDE2NDA0MCAyMyAwIDMgMAotMjMwODAwIDE2NDA0MCAyMiAwIDMgMAotMjMwODAwIDE2NDA0MCAyNiAwIDMgMAotMjMwODAwIDE3NzcyMCAyNSAwIDMgMAotMjMwODAwIDE3NzcyMCAyNCAwIDMgMAotMjMwODAwIDE3NzcyMCAyMyAwIDMgMAotMjMwODAwIDE3NzcyMCAyMiAwIDMgMAotMjMwODAwIDE3NzcyMCAyNiAwIDMgMAotMjMwODAwIDE3MDg4MCAyNSAwIDMgMAotMjMwODAwIDE3MDg4MCAyNCAwIDMgMAotMjMwODAwIDE3MDg4MCAyMyAwIDMgMAotMjMwODAwIDE3MDg4MCAyMiAwIDMgMAotMjMwODAwIDE3MDg4MCAyNiAwIDMgMAotMjMwODAwIDE0MzUyMCAyNSAwIDMgMAotMjMwODAwIDE0MzUyMCAyNCAwIDMgMAotMjMwODAwIDE0MzUyMCAyMyAwIDMgMAotMjMwODAwIDE0MzUyMCAyMiAwIDMgMAotMjMwODAwIDE0MzUyMCAyNiAwIDMgMAotMjMwODAwIDE1MDM2MCAyNSAwIDMgMAotMjMwODAwIDE1MDM2MCAyNCAwIDMgMAotMjMwODAwIDE1MDM2MCAyMyAwIDMgMAotMjMwODAwIDE1MDM2MCAyMiAwIDMgMAotMjMwODAwIDE1MDM2MCAyNiAwIDMgMAotMjMwODAwIDE1NzIwMCAyNSAwIDMgMAotMjMwODAwIDE1NzIwMCAyNCAwIDMgMAotMjMwODAwIDE1NzIwMCAyMyAwIDMgMAotMjMwODAwIDE1NzIwMCAyMiAwIDMgMAotMjMwODAwIDE1NzIwMCAyNiAwIDMgMAotMjMwODAwIDEyMzAwMCAyNSAwIDMgMAotMjMwODAwIDEyMzAwMCAyNCAwIDMgMAotMjMwODAwIDEyMzAwMCAyMyAwIDMgMAotMjMwODAwIDEyMzAwMCAyMiAwIDMgMAotMjMwODAwIDEyMzAwMCAyNiAwIDMgMAotMjMwODAwIDEyOTg0MCAyNSAwIDMgMAotMjMwODAwIDEyOTg0MCAyNCAwIDMgMAotMjMwODAwIDEyOTg0MCAyMyAwIDMgMAotMjMwODAwIDEyOTg0MCAyMiAwIDMgMAotMjMwODAwIDEyOTg0MCAyNiAwIDMgMAotMjMwODAwIDEzNjY4MCAyNSAwIDMgMAotMjMwODAwIDEzNjY4MCAyNCAwIDMgMAotMjMwODAwIDEzNjY4MCAyMyAwIDMgMAotMjMwODAwIDEzNjY4MCAyMiAwIDMgMAotMjMwODAwIDEzNjY4MCAyNiAwIDMgMAotMTQ0ODAwIDI4MDMyMCAyNSAwIDMgMAotMTQ0ODAwIDI4MDMyMCAyNCAwIDMgMAotMTQ0ODAwIDI4MDMyMCAyMyAwIDMgMAotMTQ0ODAwIDI4MDMyMCAyMiAwIDMgMAotMTQ0ODAwIDI4MDMyMCAyNiAwIDMgMAotMTQ0ODAwIDI5NDAwMCAyNSAwIDMgMAotMTQ0ODAwIDI5NDAwMCAyNCAwIDMgMAotMTQ0ODAwIDI5NDAwMCAyMyAwIDMgMAotMTQ0ODAwIDI5NDAwMCAyMiAwIDMgMAotMTQ0ODAwIDI5NDAwMCAyNiAwIDMgMAotMTQ0ODAwIDI4NzE2MCAyNSAwIDMgMAotMTQ0ODAwIDI4NzE2MCAyNCAwIDMgMAotMTQ0ODAwIDI4NzE2MCAyMyAwIDMgMAotMTQ0ODAwIDI4NzE2MCAyMiAwIDMgMAotMTQ0ODAwIDI4NzE2MCAyNiAwIDMgMAotMTQ0ODAwIDI1OTgwMCAyNSAwIDMgMAotMTQ0ODAwIDI1OTgwMCAyNCAwIDMgMAotMTQ0ODAwIDI1OTgwMCAyMyAwIDMgMAotMTQ0ODAwIDI1OTgwMCAyMiAwIDMgMAotMTQ0ODAwIDI1OTgwMCAyNiAwIDMgMAotMTQ0ODAwIDI1Mjk2MCAyNSAwIDMgMAotMTQ0ODAwIDI1Mjk2MCAyNCAwIDMgMAotMTQ0ODAwIDI1Mjk2MCAyMyAwIDMgMAotMTQ0ODAwIDI1Mjk2MCAyMiAwIDMgMAotMTQ0ODAwIDI1Mjk2MCAyNiAwIDMgMAotMTQ0ODAwIDI3MzQ4MCAyNSAwIDMgMAotMTQ0ODAwIDI3MzQ4MCAyNCAwIDMgMAotMTQ0ODAwIDI3MzQ4MCAyMyAwIDMgMAotMTQ0ODAwIDI3MzQ4MCAyMiAwIDMgMAotMTQ0ODAwIDI3MzQ4MCAyNiAwIDMgMAotMTQ0ODAwIDI2NjY0MCAyNSAwIDMgMAotMTQ0ODAwIDI2NjY0MCAyNCAwIDMgMAotMTQ0ODAwIDI2NjY0MCAyMyAwIDMgMAotMTQ0ODAwIDI2NjY0MCAyMiAwIDMgMAotMTQ0ODAwIDI2NjY0MCAyNiAwIDMgMAotMTQ0ODAwIDIzOTI4MCAyNSAwIDMgMAotMTQ0ODAwIDIzOTI4MCAyNCAwIDMgMAotMTQ0ODAwIDIzOTI4MCAyMyAwIDMgMAotMTQ0ODAwIDIzOTI4MCAyMiAwIDMgMAotMTQ0ODAwIDIzOTI4MCAyNiAwIDMgMAotMTQ0ODAwIDIzMjQ0MCAyNSAwIDMgMAotMTQ0ODAwIDIzMjQ0MCAyNCAwIDMgMAotMTQ0ODAwIDIzMjQ0MCAyMyAwIDMgMAotMTQ0ODAwIDIzMjQ0MCAyMiAwIDMgMAotMTQ0ODAwIDIzMjQ0MCAyNiAwIDMgMAotMTQ0ODAwIDI0NjEyMCAyNSAwIDMgMAotMTQ0ODAwIDI0NjEyMCAyNCAwIDMgMAotMTQ0ODAwIDI0NjEyMCAyMyAwIDMgMAotMTQ0ODAwIDI0NjEyMCAyMiAwIDMgMAotMTQ0ODAwIDI0NjEyMCAyNiAwIDMgMAotMTQ0ODAwIDIxMTkyMCAyNSAwIDMgMAotMTQ0ODAwIDIxMTkyMCAyNCAwIDMgMAotMTQ0ODAwIDIxMTkyMCAyMyAwIDMgMAotMTQ0ODAwIDIxMTkyMCAyMiAwIDMgMAotMTQ0ODAwIDIxMTkyMCAyNiAwIDMgMAotMTQ0ODAwIDIxODc2MCAyNSAwIDMgMAotMTQ0ODAwIDIxODc2MCAyNCAwIDMgMAotMTQ0ODAwIDIxODc2MCAyMyAwIDMgMAotMTQ0ODAwIDIxODc2MCAyMiAwIDMgMAotMTQ0ODAwIDIxODc2MCAyNiAwIDMgMAotMTQ0ODAwIDIyNTYwMCAyNSAwIDMgMAotMTQ0ODAwIDIyNTYwMCAyNCAwIDMgMAotMTQ0ODAwIDIyNTYwMCAyMyAwIDMgMAotMTQ0ODAwIDIyNTYwMCAyMiAwIDMgMAotMTQ0ODAwIDIyNTYwMCAyNiAwIDMgMAotNTg4MDAgMjk0MDAwIDI1IDAgMyAwCi01ODgwMCAyOTQwMDAgMjQgMCAzIDAKLTU4ODAwIDI5NDAwMCAyMyAwIDMgMAotNTg4MDAgMjk0MDAwIDIyIDAgMyAwCi01ODgwMCAyOTQwMDAgMjYgMCAzIDAKLTU4ODAwIDI4NzE2MCAyNSAwIDMgMAotNTg4MDAgMjg3MTYwIDI0IDAgMyAwCi01ODgwMCAyODcxNjAgMjMgMCAzIDAKLTU4ODAwIDI4NzE2MCAyMiAwIDMgMAotNTg4MDAgMjg3MTYwIDI2IDAgMyAwCi01ODgwMCAyODAzMjAgMjUgMCAzIDAKLTU4ODAwIDI4MDMyMCAyNCAwIDMgMAotNTg4MDAgMjgwMzIwIDIzIDAgMyAwCi01ODgwMCAyODAzMjAgMjIgMCAzIDAKLTU4ODAwIDI4MDMyMCAyNiAwIDMgMAotNTg4MDAgMjU5ODAwIDI1IDAgMyAwCi01ODgwMCAyNTk4MDAgMjQgMCAzIDAKLTU4ODAwIDI1OTgwMCAyMyAwIDMgMAotNTg4MDAgMjU5ODAwIDIyIDAgMyAwCi01ODgwMCAyNTk4MDAgMjYgMCAzIDAKLTU4ODAwIDI1Mjk2MCAyNSAwIDMgMAotNTg4MDAgMjUyOTYwIDI0IDAgMyAwCi01ODgwMCAyNTI5NjAgMjMgMCAzIDAKLTU4ODAwIDI1Mjk2MCAyMiAwIDMgMAotNTg4MDAgMjUyOTYwIDI2IDAgMyAwCi01ODgwMCAyNzM0ODAgMjUgMCAzIDAKLTU4ODAwIDI3MzQ4MCAyNCAwIDMgMAotNTg4MDAgMjczNDgwIDIzIDAgMyAwCi01ODgwMCAyNzM0ODAgMjIgMCAzIDAKLTU4ODAwIDI3MzQ4MCAyNiAwIDMgMAotNTg4MDAgMjY2NjQwIDI1IDAgMyAwCi01ODgwMCAyNjY2NDAgMjQgMCAzIDAKLTU4ODAwIDI2NjY0MCAyMyAwIDMgMAotNTg4MDAgMjY2NjQwIDIyIDAgMyAwCi01ODgwMCAyNjY2NDAgMjYgMCAzIDAKLTU4ODAwIDIzOTI4MCAyNSAwIDMgMAotNTg4MDAgMjM5MjgwIDI0IDAgMyAwCi01ODgwMCAyMzkyODAgMjMgMCAzIDAKLTU4ODAwIDIzOTI4MCAyMiAwIDMgMAotNTg4MDAgMjM5MjgwIDI2IDAgMyAwCi01ODgwMCAyMzI0NDAgMjUgMCAzIDAKLTU4ODAwIDIzMjQ0MCAyNCAwIDMgMAotNTg4MDAgMjMyNDQwIDIzIDAgMyAwCi01ODgwMCAyMzI0NDAgMjIgMCAzIDAKLTU4ODAwIDIzMjQ0MCAyNiAwIDMgMAotNTg4MDAgMjQ2MTIwIDI1IDAgMyAwCi01ODgwMCAyNDYxMjAgMjQgMCAzIDAKLTU4ODAwIDI0NjEyMCAyMyAwIDMgMAotNTg4MDAgMjQ2MTIwIDIyIDAgMyAwCi01ODgwMCAyNDYxMjAgMjYgMCAzIDAKLTU4ODAwIDIxMTkyMCAyNSAwIDMgMAotNTg4MDAgMjExOTIwIDI0IDAgMyAwCi01ODgwMCAyMTE5MjAgMjMgMCAzIDAKLTU4ODAwIDIxMTkyMCAyMiAwIDMgMAotNTg4MDAgMjExOTIwIDI2IDAgMyAwCi01ODgwMCAyMTg3NjAgMjUgMCAzIDAKLTU4ODAwIDIxODc2MCAyNCAwIDMgMAotNTg4MDAgMjE4NzYwIDIzIDAgMyAwCi01ODgwMCAyMTg3NjAgMjIgMCAzIDAKLTU4ODAwIDIxODc2MCAyNiAwIDMgMAotNTg4MDAgMjI1NjAwIDI1IDAgMyAwCi01ODgwMCAyMjU2MDAgMjQgMCAzIDAKLTU4ODAwIDIyNTYwMCAyMyAwIDMgMAotNTg4MDAgMjI1NjAwIDIyIDAgMyAwCi01ODgwMCAyMjU2MDAgMjYgMCAzIDAKLTE0NDgwMCAxOTE0MDAgMjUgMCAzIDAKLTE0NDgwMCAxOTE0MDAgMjQgMCAzIDAKLTE0NDgwMCAxOTE0MDAgMjMgMCAzIDAKLTE0NDgwMCAxOTE0MDAgMjIgMCAzIDAKLTE0NDgwMCAxOTE0MDAgMjYgMCAzIDAKLTE0NDgwMCAyMDUwODAgMjUgMCAzIDAKLTE0NDgwMCAyMDUwODAgMjQgMCAzIDAKLTE0NDgwMCAyMDUwODAgMjMgMCAzIDAKLTE0NDgwMCAyMDUwODAgMjIgMCAzIDAKLTE0NDgwMCAyMDUwODAgMjYgMCAzIDAKLTE0NDgwMCAxOTgyNDAgMjUgMCAzIDAKLTE0NDgwMCAxOTgyNDAgMjQgMCAzIDAKLTE0NDgwMCAxOTgyNDAgMjMgMCAzIDAKLTE0NDgwMCAxOTgyNDAgMjIgMCAzIDAKLTE0NDgwMCAxOTgyNDAgMjYgMCAzIDAKLTE0NDgwMCAxODQ1NjAgMjUgMCAzIDAKLTE0NDgwMCAxODQ1NjAgMjQgMCAzIDAKLTE0NDgwMCAxODQ1NjAgMjMgMCAzIDAKLTE0NDgwMCAxODQ1NjAgMjIgMCAzIDAKLTE0NDgwMCAxODQ1NjAgMjYgMCAzIDAKLTE0NDgwMCAxNjQwNDAgMjUgMCAzIDAKLTE0NDgwMCAxNjQwNDAgMjQgMCAzIDAKLTE0NDgwMCAxNjQwNDAgMjMgMCAzIDAKLTE0NDgwMCAxNjQwNDAgMjIgMCAzIDAKLTE0NDgwMCAxNjQwNDAgMjYgMCAzIDAKLTE0NDgwMCAxNzA4ODAgMjUgMCAzIDAKLTE0NDgwMCAxNzA4ODAgMjQgMCAzIDAKLTE0NDgwMCAxNzA4ODAgMjMgMCAzIDAKLTE0NDgwMCAxNzA4ODAgMjIgMCAzIDAKLTE0NDgwMCAxNzA4ODAgMjYgMCAzIDAKLTE0NDgwMCAxNzc3MjAgMjUgMCAzIDAKLTE0NDgwMCAxNzc3MjAgMjQgMCAzIDAKLTE0NDgwMCAxNzc3MjAgMjMgMCAzIDAKLTE0NDgwMCAxNzc3MjAgMjIgMCAzIDAKLTE0NDgwMCAxNzc3MjAgMjYgMCAzIDAKLTE0NDgwMCAxNTAzNjAgMjUgMCAzIDAKLTE0NDgwMCAxNTAzNjAgMjQgMCAzIDAKLTE0NDgwMCAxNTAzNjAgMjMgMCAzIDAKLTE0NDgwMCAxNTAzNjAgMjIgMCAzIDAKLTE0NDgwMCAxNTAzNjAgMjYgMCAzIDAKLTE0NDgwMCAxNDM1MjAgMjUgMCAzIDAKLTE0NDgwMCAxNDM1MjAgMjQgMCAzIDAKLTE0NDgwMCAxNDM1MjAgMjMgMCAzIDAKLTE0NDgwMCAxNDM1MjAgMjIgMCAzIDAKLTE0NDgwMCAxNDM1MjAgMjYgMCAzIDAKLTE0NDgwMCAxNTcyMDAgMjUgMCAzIDAKLTE0NDgwMCAxNTcyMDAgMjQgMCAzIDAKLTE0NDgwMCAxNTcyMDAgMjMgMCAzIDAKLTE0NDgwMCAxNTcyMDAgMjIgMCAzIDAKLTE0NDgwMCAxNTcyMDAgMjYgMCAzIDAKLTE0NDgwMCAxMjMwMDAgMjUgMCAzIDAKLTE0NDgwMCAxMjMwMDAgMjQgMCAzIDAKLTE0NDgwMCAxMjMwMDAgMjMgMCAzIDAKLTE0NDgwMCAxMjMwMDAgMjIgMCAzIDAKLTE0NDgwMCAxMjMwMDAgMjYgMCAzIDAKLTE0NDgwMCAxMjk4NDAgMjUgMCAzIDAKLTE0NDgwMCAxMjk4NDAgMjQgMCAzIDAKLTE0NDgwMCAxMjk4NDAgMjMgMCAzIDAKLTE0NDgwMCAxMjk4NDAgMjIgMCAzIDAKLTE0NDgwMCAxMjk4NDAgMjYgMCAzIDAKLTE0NDgwMCAxMzY2ODAgMjUgMCAzIDAKLTE0NDgwMCAxMzY2ODAgMjQgMCAzIDAKLTE0NDgwMCAxMzY2ODAgMjMgMCAzIDAKLTE0NDgwMCAxMzY2ODAgMjIgMCAzIDAKLTE0NDgwMCAxMzY2ODAgMjYgMCAzIDAKLTU4ODAwIDE5MTQwMCAyNSAwIDMgMAotNTg4MDAgMTkxNDAwIDI0IDAgMyAwCi01ODgwMCAxOTE0MDAgMjMgMCAzIDAKLTU4ODAwIDE5MTQwMCAyMiAwIDMgMAotNTg4MDAgMTkxNDAwIDI2IDAgMyAwCi01ODgwMCAxOTgyNDAgMjUgMCAzIDAKLTU4ODAwIDE5ODI0MCAyNCAwIDMgMAotNTg4MDAgMTk4MjQwIDIzIDAgMyAwCi01ODgwMCAxOTgyNDAgMjIgMCAzIDAKLTU4ODAwIDE5ODI0MCAyNiAwIDMgMAotNTg4MDAgMjA1MDgwIDI1IDAgMyAwCi01ODgwMCAyMDUwODAgMjQgMCAzIDAKLTU4ODAwIDIwNTA4MCAyMyAwIDMgMAotNTg4MDAgMjA1MDgwIDIyIDAgMyAwCi01ODgwMCAyMDUwODAgMjYgMCAzIDAKLTU4ODAwIDE4NDU2MCAyNSAwIDMgMAotNTg4MDAgMTg0NTYwIDI0IDAgMyAwCi01ODgwMCAxODQ1NjAgMjMgMCAzIDAKLTU4ODAwIDE4NDU2MCAyMiAwIDMgMAotNTg4MDAgMTg0NTYwIDI2IDAgMyAwCi01ODgwMCAxNjQwNDAgMjUgMCAzIDAKLTU4ODAwIDE2NDA0MCAyNCAwIDMgMAotNTg4MDAgMTY0MDQwIDIzIDAgMyAwCi01ODgwMCAxNjQwNDAgMjIgMCAzIDAKLTU4ODAwIDE2NDA0MCAyNiAwIDMgMAotNTg4MDAgMTc3NzIwIDI1IDAgMyAwCi01ODgwMCAxNzc3MjAgMjQgMCAzIDAKLTU4ODAwIDE3NzcyMCAyMyAwIDMgMAotNTg4MDAgMTc3NzIwIDIyIDAgMyAwCi01ODgwMCAxNzc3MjAgMjYgMCAzIDAKLTU4ODAwIDE3MDg4MCAyNSAwIDMgMAotNTg4MDAgMTcwODgwIDI0IDAgMyAwCi01ODgwMCAxNzA4ODAgMjMgMCAzIDAKLTU4ODAwIDE3MDg4MCAyMiAwIDMgMAotNTg4MDAgMTcwODgwIDI2IDAgMyAwCi01ODgwMCAxNTAzNjAgMjUgMCAzIDAKLTU4ODAwIDE1MDM2MCAyNCAwIDMgMAotNTg4MDAgMTUwMzYwIDIzIDAgMyAwCi01ODgwMCAxNTAzNjAgMjIgMCAzIDAKLTU4ODAwIDE1MDM2MCAyNiAwIDMgMAotNTg4MDAgMTQzNTIwIDI1IDAgMyAwCi01ODgwMCAxNDM1MjAgMjQgMCAzIDAKLTU4ODAwIDE0MzUyMCAyMyAwIDMgMAotNTg4MDAgMTQzNTIwIDIyIDAgMyAwCi01ODgwMCAxNDM1MjAgMjYgMCAzIDAKLTU4ODAwIDE1NzIwMCAyNSAwIDMgMAotNTg4MDAgMTU3MjAwIDI0IDAgMyAwCi01ODgwMCAxNTcyMDAgMjMgMCAzIDAKLTU4ODAwIDE1NzIwMCAyMiAwIDMgMAotNTg4MDAgMTU3MjAwIDI2IDAgMyAwCi01ODgwMCAxMjk4NDAgMjUgMCAzIDAKLTU4ODAwIDEyOTg0MCAyNCAwIDMgMAotNTg4MDAgMTI5ODQwIDIzIDAgMyAwCi01ODgwMCAxMjk4NDAgMjIgMCAzIDAKLTU4ODAwIDEyOTg0MCAyNiAwIDMgMAotNTg4MDAgMTM2NjgwIDI1IDAgMyAwCi01ODgwMCAxMzY2ODAgMjQgMCAzIDAKLTU4ODAwIDEzNjY4MCAyMyAwIDMgMAotNTg4MDAgMTM2NjgwIDIyIDAgMyAwCi01ODgwMCAxMzY2ODAgMjYgMCAzIDAKLTU4ODAwIDEyMzAwMCAyNSAwIDMgMAotNTg4MDAgMTIzMDAwIDI0IDAgMyAwCi01ODgwMCAxMjMwMDAgMjMgMCAzIDAKLTU4ODAwIDEyMzAwMCAyMiAwIDMgMAotNTg4MDAgMTIzMDAwIDI2IDAgMyAwCi0yMzA4MDAgMTAyNDgwIDI1IDAgMyAwCi0yMzA4MDAgMTAyNDgwIDI0IDAgMyAwCi0yMzA4MDAgMTAyNDgwIDIzIDAgMyAwCi0yMzA4MDAgMTAyNDgwIDIyIDAgMyAwCi0yMzA4MDAgMTAyNDgwIDI2IDAgMyAwCi0yMzA4MDAgOTU2NDAgMjUgMCAzIDAKLTIzMDgwMCA5NTY0MCAyNCAwIDMgMAotMjMwODAwIDk1NjQwIDIzIDAgMyAwCi0yMzA4MDAgOTU2NDAgMjIgMCAzIDAKLTIzMDgwMCA5NTY0MCAyNiAwIDMgMAotMjMwODAwIDExNjE2MCAyNSAwIDMgMAotMjMwODAwIDExNjE2MCAyNCAwIDMgMAotMjMwODAwIDExNjE2MCAyMyAwIDMgMAotMjMwODAwIDExNjE2MCAyMiAwIDMgMAotMjMwODAwIDExNjE2MCAyNiAwIDMgMAotMjMwODAwIDEwOTMyMCAyNSAwIDMgMAotMjMwODAwIDEwOTMyMCAyNCAwIDMgMAotMjMwODAwIDEwOTMyMCAyMyAwIDMgMAotMjMwODAwIDEwOTMyMCAyMiAwIDMgMAotMjMwODAwIDEwOTMyMCAyNiAwIDMgMAotMjMwODAwIDgxOTYwIDI1IDAgMyAwCi0yMzA4MDAgODE5NjAgMjQgMCAzIDAKLTIzMDgwMCA4MTk2MCAyMyAwIDMgMAotMjMwODAwIDgxOTYwIDIyIDAgMyAwCi0yMzA4MDAgODE5NjAgMjYgMCAzIDAKLTIzMDgwMCA3NTEyMCAyNSAwIDMgMAotMjMwODAwIDc1MTIwIDI0IDAgMyAwCi0yMzA4MDAgNzUxMjAgMjMgMCAzIDAKLTIzMDgwMCA3NTEyMCAyMiAwIDMgMAotMjMwODAwIDc1MTIwIDI2IDAgMyAwCi0yMzA4MDAgODg4MDAgMjUgMCAzIDAKLTIzMDgwMCA4ODgwMCAyNCAwIDMgMAotMjMwODAwIDg4ODAwIDIzIDAgMyAwCi0yMzA4MDAgODg4MDAgMjIgMCAzIDAKLTIzMDgwMCA4ODgwMCAyNiAwIDMgMAotMjMwODAwIDY4MjgwIDI1IDAgMyAwCi0yMzA4MDAgNjgyODAgMjQgMCAzIDAKLTIzMDgwMCA2ODI4MCAyMyAwIDMgMAotMjMwODAwIDY4MjgwIDIyIDAgMyAwCi0yMzA4MDAgNjgyODAgMjYgMCAzIDAKLTIzMDgwMCA2MTQ0MCAyNSAwIDMgMAotMjMwODAwIDYxNDQwIDI0IDAgMyAwCi0yMzA4MDAgNjE0NDAgMjMgMCAzIDAKLTIzMDgwMCA2MTQ0MCAyMiAwIDMgMAotMjMwODAwIDYxNDQwIDI2IDAgMyAwCi0yMzA4MDAgNTQ2MDAgMjUgMCAzIDAKLTIzMDgwMCA1NDYwMCAyNCAwIDMgMAotMjMwODAwIDU0NjAwIDIzIDAgMyAwCi0yMzA4MDAgNTQ2MDAgMjIgMCAzIDAKLTIzMDgwMCA1NDYwMCAyNiAwIDMgMAotMjMwODAwIDM0MDgwIDI1IDAgMyAwCi0yMzA4MDAgMzQwODAgMjQgMCAzIDAKLTIzMDgwMCAzNDA4MCAyMyAwIDMgMAotMjMwODAwIDM0MDgwIDIyIDAgMyAwCi0yMzA4MDAgMzQwODAgMjYgMCAzIDAKLTIzMDgwMCAyNzI0MCAyNSAwIDMgMAotMjMwODAwIDI3MjQwIDI0IDAgMyAwCi0yMzA4MDAgMjcyNDAgMjMgMCAzIDAKLTIzMDgwMCAyNzI0MCAyMiAwIDMgMAotMjMwODAwIDI3MjQwIDI2IDAgMyAwCi0yMzA4MDAgNDc3NjAgMjUgMCAzIDAKLTIzMDgwMCA0Nzc2MCAyNCAwIDMgMAotMjMwODAwIDQ3NzYwIDIzIDAgMyAwCi0yMzA4MDAgNDc3NjAgMjIgMCAzIDAKLTIzMDgwMCA0Nzc2MCAyNiAwIDMgMAotMjMwODAwIDQwOTIwIDI1IDAgMyAwCi0yMzA4MDAgNDA5MjAgMjQgMCAzIDAKLTIzMDgwMCA0MDkyMCAyMyAwIDMgMAotMjMwODAwIDQwOTIwIDIyIDAgMyAwCi0yMzA4MDAgNDA5MjAgMjYgMCAzIDAKLTIzMDgwMCAxMzU2MCAyNSAwIDMgMAotMjMwODAwIDEzNTYwIDI0IDAgMyAwCi0yMzA4MDAgMTM1NjAgMjMgMCAzIDAKLTIzMDgwMCAxMzU2MCAyMiAwIDMgMAotMjMwODAwIDEzNTYwIDI2IDAgMyAwCi0yMzA4MDAgNjcyMCAyNSAwIDMgMAotMjMwODAwIDY3MjAgMjQgMCAzIDAKLTIzMDgwMCA2NzIwIDIzIDAgMyAwCi0yMzA4MDAgNjcyMCAyMiAwIDMgMAotMjMwODAwIDY3MjAgMjYgMCAzIDAKLTIzMDgwMCAyMDQwMCAyNSAwIDMgMAotMjMwODAwIDIwNDAwIDI0IDAgMyAwCi0yMzA4MDAgMjA0MDAgMjMgMCAzIDAKLTIzMDgwMCAyMDQwMCAyMiAwIDMgMAotMjMwODAwIDIwNDAwIDI2IDAgMyAwCi0yMzA4MDAgLTEyMCAyNSAwIDMgMAotMjMwODAwIC0xMjAgMjQgMCAzIDAKLTIzMDgwMCAtMTIwIDIzIDAgMyAwCi0yMzA4MDAgLTEyMCAyMiAwIDMgMAotMjMwODAwIC0xMjAgMjYgMCAzIDAKLTE0NDgwMCAxMDI0ODAgMjUgMCAzIDAKLTE0NDgwMCAxMDI0ODAgMjQgMCAzIDAKLTE0NDgwMCAxMDI0ODAgMjMgMCAzIDAKLTE0NDgwMCAxMDI0ODAgMjIgMCAzIDAKLTE0NDgwMCAxMDI0ODAgMjYgMCAzIDAKLTE0NDgwMCA5NTY0MCAyNSAwIDMgMAotMTQ0ODAwIDk1NjQwIDI0IDAgMyAwCi0xNDQ4MDAgOTU2NDAgMjMgMCAzIDAKLTE0NDgwMCA5NTY0MCAyMiAwIDMgMAotMTQ0ODAwIDk1NjQwIDI2IDAgMyAwCi0xNDQ4MDAgMTE2MTYwIDI1IDAgMyAwCi0xNDQ4MDAgMTE2MTYwIDI0IDAgMyAwCi0xNDQ4MDAgMTE2MTYwIDIzIDAgMyAwCi0xNDQ4MDAgMTE2MTYwIDIyIDAgMyAwCi0xNDQ4MDAgMTE2MTYwIDI2IDAgMyAwCi0xNDQ4MDAgMTA5MzIwIDI1IDAgMyAwCi0xNDQ4MDAgMTA5MzIwIDI0IDAgMyAwCi0xNDQ4MDAgMTA5MzIwIDIzIDAgMyAwCi0xNDQ4MDAgMTA5MzIwIDIyIDAgMyAwCi0xNDQ4MDAgMTA5MzIwIDI2IDAgMyAwCi0xNDQ4MDAgNzUxMjAgMjUgMCAzIDAKLTE0NDgwMCA3NTEyMCAyNCAwIDMgMAotMTQ0ODAwIDc1MTIwIDIzIDAgMyAwCi0xNDQ4MDAgNzUxMjAgMjIgMCAzIDAKLTE0NDgwMCA3NTEyMCAyNiAwIDMgMAotMTQ0ODAwIDgxOTYwIDI1IDAgMyAwCi0xNDQ4MDAgODE5NjAgMjQgMCAzIDAKLTE0NDgwMCA4MTk2MCAyMyAwIDMgMAotMTQ0ODAwIDgxOTYwIDIyIDAgMyAwCi0xNDQ4MDAgODE5NjAgMjYgMCAzIDAKLTE0NDgwMCA4ODgwMCAyNSAwIDMgMAotMTQ0ODAwIDg4ODAwIDI0IDAgMyAwCi0xNDQ4MDAgODg4MDAgMjMgMCAzIDAKLTE0NDgwMCA4ODgwMCAyMiAwIDMgMAotMTQ0ODAwIDg4ODAwIDI2IDAgMyAwCi0xNDQ4MDAgNTQ2MDAgMjUgMCAzIDAKLTE0NDgwMCA1NDYwMCAyNCAwIDMgMAotMTQ0ODAwIDU0NjAwIDIzIDAgMyAwCi0xNDQ4MDAgNTQ2MDAgMjIgMCAzIDAKLTE0NDgwMCA1NDYwMCAyNiAwIDMgMAotMTQ0ODAwIDY4MjgwIDI1IDAgMyAwCi0xNDQ4MDAgNjgyODAgMjQgMCAzIDAKLTE0NDgwMCA2ODI4MCAyMyAwIDMgMAotMTQ0ODAwIDY4MjgwIDIyIDAgMyAwCi0xNDQ4MDAgNjgyODAgMjYgMCAzIDAKLTE0NDgwMCA2MTQ0MCAyNSAwIDMgMAotMTQ0ODAwIDYxNDQwIDI0IDAgMyAwCi0xNDQ4MDAgNjE0NDAgMjMgMCAzIDAKLTE0NDgwMCA2MTQ0MCAyMiAwIDMgMAotMTQ0ODAwIDYxNDQwIDI2IDAgMyAwCi0xNDQ4MDAgMzQwODAgMjUgMCAzIDAKLTE0NDgwMCAzNDA4MCAyNCAwIDMgMAotMTQ0ODAwIDM0MDgwIDIzIDAgMyAwCi0xNDQ4MDAgMzQwODAgMjIgMCAzIDAKLTE0NDgwMCAzNDA4MCAyNiAwIDMgMAotMTQ0ODAwIDI3MjQwIDI1IDAgMyAwCi0xNDQ4MDAgMjcyNDAgMjQgMCAzIDAKLTE0NDgwMCAyNzI0MCAyMyAwIDMgMAotMTQ0ODAwIDI3MjQwIDIyIDAgMyAwCi0xNDQ4MDAgMjcyNDAgMjYgMCAzIDAKLTE0NDgwMCA0Nzc2MCAyNSAwIDMgMAotMTQ0ODAwIDQ3NzYwIDI0IDAgMyAwCi0xNDQ4MDAgNDc3NjAgMjMgMCAzIDAKLTE0NDgwMCA0Nzc2MCAyMiAwIDMgMAotMTQ0ODAwIDQ3NzYwIDI2IDAgMyAwCi0xNDQ4MDAgNDA5MjAgMjUgMCAzIDAKLTE0NDgwMCA0MDkyMCAyNCAwIDMgMAotMTQ0ODAwIDQwOTIwIDIzIDAgMyAwCi0xNDQ4MDAgNDA5MjAgMjIgMCAzIDAKLTE0NDgwMCA0MDkyMCAyNiAwIDMgMAotNTg4MDAgMTAyNDgwIDI1IDAgMyAwCi01ODgwMCAxMDI0ODAgMjQgMCAzIDAKLTU4ODAwIDEwMjQ4MCAyMyAwIDMgMAotNTg4MDAgMTAyNDgwIDIyIDAgMyAwCi01ODgwMCAxMDI0ODAgMjYgMCAzIDAKLTU4ODAwIDk1NjQwIDI1IDAgMyAwCi01ODgwMCA5NTY0MCAyNCAwIDMgMAotNTg4MDAgOTU2NDAgMjMgMCAzIDAKLTU4ODAwIDk1NjQwIDIyIDAgMyAwCi01ODgwMCA5NTY0MCAyNiAwIDMgMAotNTg4MDAgMTE2MTYwIDI1IDAgMyAwCi01ODgwMCAxMTYxNjAgMjQgMCAzIDAKLTU4ODAwIDExNjE2MCAyMyAwIDMgMAotNTg4MDAgMTE2MTYwIDIyIDAgMyAwCi01ODgwMCAxMTYxNjAgMjYgMCAzIDAKLTU4ODAwIDEwOTMyMCAyNSAwIDMgMAotNTg4MDAgMTA5MzIwIDI0IDAgMyAwCi01ODgwMCAxMDkzMjAgMjMgMCAzIDAKLTU4ODAwIDEwOTMyMCAyMiAwIDMgMAotNTg4MDAgMTA5MzIwIDI2IDAgMyAwCi01ODgwMCA3NTEyMCAyNSAwIDMgMAotNTg4MDAgNzUxMjAgMjQgMCAzIDAKLTU4ODAwIDc1MTIwIDIzIDAgMyAwCi01ODgwMCA3NTEyMCAyMiAwIDMgMAotNTg4MDAgNzUxMjAgMjYgMCAzIDAKLTU4ODAwIDgxOTYwIDI1IDAgMyAwCi01ODgwMCA4MTk2MCAyNCAwIDMgMAotNTg4MDAgODE5NjAgMjMgMCAzIDAKLTU4ODAwIDgxOTYwIDIyIDAgMyAwCi01ODgwMCA4MTk2MCAyNiAwIDMgMAotNTg4MDAgODg4MDAgMjUgMCAzIDAKLTU4ODAwIDg4ODAwIDI0IDAgMyAwCi01ODgwMCA4ODgwMCAyMyAwIDMgMAotNTg4MDAgODg4MDAgMjIgMCAzIDAKLTU4ODAwIDg4ODAwIDI2IDAgMyAwCi01ODgwMCA2ODI4MCAyNSAwIDMgMAotNTg4MDAgNjgyODAgMjQgMCAzIDAKLTU4ODAwIDY4MjgwIDIzIDAgMyAwCi01ODgwMCA2ODI4MCAyMiAwIDMgMAotNTg4MDAgNjgyODAgMjYgMCAzIDAKLTU4ODAwIDYxNDQwIDI1IDAgMyAwCi01ODgwMCA2MTQ0MCAyNCAwIDMgMAotNTg4MDAgNjE0NDAgMjMgMCAzIDAKLTU4ODAwIDYxNDQwIDIyIDAgMyAwCi01ODgwMCA2MTQ0MCAyNiAwIDMgMAotNTg4MDAgNTQ2MDAgMjUgMCAzIDAKLTU4ODAwIDU0NjAwIDI0IDAgMyAwCi01ODgwMCA1NDYwMCAyMyAwIDMgMAotNTg4MDAgNTQ2MDAgMjIgMCAzIDAKLTU4ODAwIDU0NjAwIDI2IDAgMyAwCi01ODgwMCAzNDA4MCAyNSAwIDMgMAotNTg4MDAgMzQwODAgMjQgMCAzIDAKLTU4ODAwIDM0MDgwIDIzIDAgMyAwCi01ODgwMCAzNDA4MCAyMiAwIDMgMAotNTg4MDAgMzQwODAgMjYgMCAzIDAKLTU4ODAwIDI3MjQwIDI1IDAgMyAwCi01ODgwMCAyNzI0MCAyNCAwIDMgMAotNTg4MDAgMjcyNDAgMjMgMCAzIDAKLTU4ODAwIDI3MjQwIDIyIDAgMyAwCi01ODgwMCAyNzI0MCAyNiAwIDMgMAotNTg4MDAgNDc3NjAgMjUgMCAzIDAKLTU4ODAwIDQ3NzYwIDI0IDAgMyAwCi01ODgwMCA0Nzc2MCAyMyAwIDMgMAotNTg4MDAgNDc3NjAgMjIgMCAzIDAKLTU4ODAwIDQ3NzYwIDI2IDAgMyAwCi01ODgwMCA0MDkyMCAyNSAwIDMgMAotNTg4MDAgNDA5MjAgMjQgMCAzIDAKLTU4ODAwIDQwOTIwIDIzIDAgMyAwCi01ODgwMCA0MDkyMCAyMiAwIDMgMAotNTg4MDAgNDA5MjAgMjYgMCAzIDAKLTE0NDgwMCA2NzIwIDI1IDAgMyAwCi0xNDQ4MDAgNjcyMCAyNCAwIDMgMAotMTQ0ODAwIDY3MjAgMjMgMCAzIDAKLTE0NDgwMCA2NzIwIDIyIDAgMyAwCi0xNDQ4MDAgNjcyMCAyNiAwIDMgMAotMTQ0ODAwIDEzNTYwIDI1IDAgMyAwCi0xNDQ4MDAgMTM1NjAgMjQgMCAzIDAKLTE0NDgwMCAxMzU2MCAyMyAwIDMgMAotMTQ0ODAwIDEzNTYwIDIyIDAgMyAwCi0xNDQ4MDAgMTM1NjAgMjYgMCAzIDAKLTE0NDgwMCAyMDQwMCAyNSAwIDMgMAotMTQ0ODAwIDIwNDAwIDI0IDAgMyAwCi0xNDQ4MDAgMjA0MDAgMjMgMCAzIDAKLTE0NDgwMCAyMDQwMCAyMiAwIDMgMAotMTQ0ODAwIDIwNDAwIDI2IDAgMyAwCi0xNDQ4MDAgLTEyMCAyNSAwIDMgMAotMTQ0ODAwIC0xMjAgMjQgMCAzIDAKLTE0NDgwMCAtMTIwIDIzIDAgMyAwCi0xNDQ4MDAgLTEyMCAyMiAwIDMgMAotMTQ0ODAwIC0xMjAgMjYgMCAzIDAKLTU4ODAwIDY3MjAgMjUgMCAzIDAKLTU4ODAwIDY3MjAgMjQgMCAzIDAKLTU4ODAwIDY3MjAgMjMgMCAzIDAKLTU4ODAwIDY3MjAgMjIgMCAzIDAKLTU4ODAwIDY3MjAgMjYgMCAzIDAKLTU4ODAwIDEzNTYwIDI1IDAgMyAwCi01ODgwMCAxMzU2MCAyNCAwIDMgMAotNTg4MDAgMTM1NjAgMjMgMCAzIDAKLTU4ODAwIDEzNTYwIDIyIDAgMyAwCi01ODgwMCAxMzU2MCAyNiAwIDMgMAotNTg4MDAgMjA0MDAgMjUgMCAzIDAKLTU4ODAwIDIwNDAwIDI0IDAgMyAwCi01ODgwMCAyMDQwMCAyMyAwIDMgMAotNTg4MDAgMjA0MDAgMjIgMCAzIDAKLTU4ODAwIDIwNDAwIDI2IDAgMyAwCi01ODgwMCAtMTIwIDI1IDAgMyAwCi01ODgwMCAtMTIwIDI0IDAgMyAwCi01ODgwMCAtMTIwIDIzIDAgMyAwCi01ODgwMCAtMTIwIDIyIDAgMyAwCi01ODgwMCAtMTIwIDI2IDAgMyAwCi0wIDAgMSBBVnNzCi0wIDAgMSBBdnNzCi0wIDAgMSBBdmRkCmRpZmYgLS1naXQgYS9mbG93L3Buci9FWEFNUExFUy9JTk5PVlVTL0RFU0lHTi9EQVRBL3Rkc3BfY29yZS52IGIvZmxvdy9wbnIvRVhBTVBMRVMvSU5OT1ZVUy9ERVNJR04vREFUQS90ZHNwX2NvcmUudgpkZWxldGVkIGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMzZhNjdkMy4uMDAwMDAwMAotLS0gYS9mbG93L3Buci9FWEFNUExFUy9JTk5PVlVTL0RFU0lHTi9EQVRBL3Rkc3BfY29yZS52CisrKyAvZGV2L251bGwKQEAgLTEsMzMzMjAgKzAsMCBAQAotLy8gQ3JlYXRlZCBvbiBTdW4gSmFuIDMxIDEzOjMwOjMwIDIwMTAKLQotbW9kdWxlIGFjY3VtX3N0YXQgKAotCWFjY3VtLCAKLQlhciwgCi0JYmlvLCAKLQlnZXosIAotCWd6LCAKLQlueiwgCi0JeiwgCi0JbHosIAotCWxleiwgCi0Jb3YsIAotCWFybnosIAotCWJpb3opOwotICAgaW5wdXQgWzMyOjBdIGFjY3VtOwotICAgaW5wdXQgWzE1OjBdIGFyOwotICAgaW5wdXQgYmlvOwotICAgb3V0cHV0IGdlejsKLSAgIG91dHB1dCBnejsKLSAgIG91dHB1dCBuejsKLSAgIG91dHB1dCB6OwotICAgb3V0cHV0IGx6OwotICAgb3V0cHV0IGxlejsKLSAgIGlucHV0IG92OwotICAgb3V0cHV0IGFybno7Ci0gICBvdXRwdXQgYmlvejsKLQotICAgLy8gSW50ZXJuYWwgd2lyZXMKLSAgIHdpcmUgbl82OwotICAgd2lyZSBuXzc7Ci0gICB3aXJlIG5fODsKLSAgIHdpcmUgbl8xMTsKLSAgIHdpcmUgbl8xMjsKLSAgIHdpcmUgbl8xMzsKLSAgIHdpcmUgbl8yMTsKLSAgIHdpcmUgbl8yMzsKLSAgIHdpcmUgbl8yNDsKLSAgIHdpcmUgbl8xMDE7Ci0gICB3aXJlIG5fMTAyOwotICAgd2lyZSBuXzEwMzsKLSAgIHdpcmUgbl8xMDU7Ci0gICB3aXJlIG5fMTA2OwotICAgd2lyZSBuXzEwNzsKLSAgIHdpcmUgbl8xMDg7Ci0gICB3aXJlIG5fMTA5OwotICAgd2lyZSBuXzExMDsKLSAgIHdpcmUgbl8xMTE7Ci0gICB3aXJlIG5fMTEyOwotCi0gICBPUjJYMiBnNTg4ICguWShsZXopLCAKLQkuQih6KSwgCi0JLkEoYWNjdW1bMzFdKSk7Ci0gICBPUjJYMSBnNjE0ICguWShuXzI0KSwgCi0JLkIoYXJbMTBdKSwgCi0JLkEoYXJbOV0pKTsKLSAgIE9SMlgxIGc2MTYgKC5ZKG5fMjMpLCAKLQkuQihhcls4XSksIAotCS5BKGFyWzEzXSkpOwotICAgT1IyWDEgZzYyMSAoLlkobl8yMSksIAotCS5CKGFyWzZdKSwgCi0JLkEoYXJbNV0pKTsKLSAgIE5PUjJYMSBnNjY5ICguWShuXzEzKSwgCi0JLkIoYWNjdW1bNF0pLCAKLQkuQShhY2N1bVszXSkpOwotICAgTk9SMlgxIGc2NzAgKC5ZKG5fMTIpLCAKLQkuQihhY2N1bVsyNl0pLCAKLQkuQShhY2N1bVsyMV0pKTsKLSAgIE5PUjJYMSBnNjcxICguWShuXzExKSwgCi0JLkIoYWNjdW1bNl0pLCAKLQkuQShhY2N1bVsxM10pKTsKLSAgIE5PUjJCWDEgZzY3MyAoLlkoeiksIAotCS5CKGFjY3VtWzMxXSksIAotCS5BTihuXzEwMSkpOwotICAgTk9SMlgxIGc2NzQgKC5ZKG5fOCksIAotCS5CKGFjY3VtWzIyXSksIAotCS5BKGFjY3VtWzIwXSkpOwotICAgTk9SMlgxIGc2NzUgKC5ZKG5fNyksIAotCS5CKGFjY3VtWzddKSwgCi0JLkEoYWNjdW1bOF0pKTsKLSAgIE5PUjJYMSBnNjc2ICguWShuXzYpLCAKLQkuQihhY2N1bVsyM10pLCAKLQkuQShhY2N1bVsyNF0pKTsKLSAgIEFORDRYNiBnNjgzICguWShuXzEwMSksIAotCS5EKG5fMTAyKSwgCi0JLkMobl8xMTEpLCAKLQkuQihuXzgpLCAKLQkuQShuXzEyKSk7Ci0gICBOT1I0QkJYNCBnNjg0ICguWShuXzEwMiksIAotCS5EKGFjY3VtWzEwXSksIAotCS5DKGFjY3VtWzExXSksIAotCS5CTihuXzEwMyksIAotCS5BTihuXzcpKTsKLSAgIE5PUjRCWDQgZzIgKC5ZKG5fMTAzKSwgCi0JLkQoYWNjdW1bNV0pLCAKLQkuQyhhY2N1bVsxMl0pLCAKLQkuQihhY2N1bVsxNF0pLCAKLQkuQU4obl8xMDUpKTsKLSAgIE9SNFg4IGc2ODUgKC5ZKGFybnopLCAKLQkuRChuXzEwNiksIAotCS5DKG5fMTA4KSwgCi0JLkIobl8yMyksIAotCS5BKG5fMjQpKTsKLSAgIEFORDRYNiBnNjg2ICguWShuXzEwNSksIAotCS5EKG5fMTA3KSwgCi0JLkMobl8xMDkpLCAKLQkuQihuXzEzKSwgCi0JLkEobl8xMSkpOwotICAgT1I0WDggZzY4NyAoLlkobl8xMDYpLCAKLQkuRChuXzExMCksIAotCS5DKG5fMjEpLCAKLQkuQihhclswXSksIAotCS5BKGFyWzJdKSk7Ci0gICBOT1I0QkJYNCBnNjg4ICguWShuXzEwNyksIAotCS5EKGFjY3VtWzI4XSksIAotCS5DKGFjY3VtWzI5XSksIAotCS5CTihuXzExMiksIAotCS5BTihuXzYpKTsKLSAgIE9SNFg4IGc2ODkgKC5ZKG5fMTA4KSwgCi0JLkQoYXJbN10pLCAKLQkuQyhhclsxXSksIAotCS5CKGFyWzE1XSksIAotCS5BKGFyWzRdKSk7Ci0gICBOT1I0WDggZzY5MCAoLlkobl8xMDkpLCAKLQkuRChhY2N1bVsxXSksIAotCS5DKGFjY3VtWzldKSwgCi0JLkIoYWNjdW1bMl0pLCAKLQkuQShhY2N1bVswXSkpOwotICAgT1I0WDggZzY5MSAoLlkobl8xMTApLCAKLQkuRChhclsxNF0pLCAKLQkuQyhhclsxMV0pLCAKLQkuQihhclszXSksIAotCS5BKGFyWzEyXSkpOwotICAgTk9SNFg4IGc2OTIgKC5ZKG5fMTExKSwgCi0JLkQoYWNjdW1bMTddKSwgCi0JLkMoYWNjdW1bMTldKSwgCi0JLkIoYWNjdW1bMzBdKSwgCi0JLkEoYWNjdW1bMjVdKSk7Ci0gICBOT1I0WDggZzY5MyAoLlkobl8xMTIpLCAKLQkuRChhY2N1bVsxNl0pLCAKLQkuQyhhY2N1bVsxNV0pLCAKLQkuQihhY2N1bVsxOF0pLCAKLQkuQShhY2N1bVsyN10pKTsKLWVuZG1vZHVsZQotCi1tb2R1bGUgYWRkX3Vuc2lnbmVkXzI4MjMgKAotCUEsIAotCUIsIAotCVopOwotICAgaW5wdXQgWzMxOjBdIEE7Ci0gICBpbnB1dCBbMzE6MF0gQjsKLSAgIG91dHB1dCBbMzE6MF0gWjsKLQotICAgLy8gSW50ZXJuYWwgd2lyZXMKLSAgIHdpcmUgbl82OwotICAgd2lyZSBuXzg7Ci0gICB3aXJlIG5fMTQ7Ci0gICB3aXJlIG5fMTY7Ci0gICB3aXJlIG5fMTc7Ci0gICB3aXJlIG5fMTg7Ci0gICB3aXJlIG5fMjA7Ci0gICB3aXJlIG5fMjE7Ci0gICB3aXJlIG5fMjI7Ci0gICB3aXJlIG5fMjQ7Ci0gICB3aXJlIG5fMjU7Ci0gICB3aXJlIG5fMjY7Ci0gICB3aXJlIG5fMjc7Ci0gICB3aXJlIG5fMjg7Ci0gICB3aXJlIG5fMjk7Ci0gICB3aXJlIG5fMzA7Ci0gICB3aXJlIG5fMzE7Ci0gICB3aXJlIG5fMzI7Ci0gICB3aXJlIG5fMzM7Ci0gICB3aXJlIG5fMzQ7Ci0gICB3aXJlIG5fMzU7Ci0gICB3aXJlIG5fMzY7Ci0gICB3aXJlIG5fMzc7Ci0gICB3aXJlIG5fMzg7Ci0gICB3aXJlIG5fMzk7Ci0gICB3aXJlIG5fOTU7Ci0gICB3aXJlIG5fOTY7Ci0gICB3aXJlIG5fOTc7Ci0gICB3aXJlIG5fOTg7Ci0gICB3aXJlIG5fOTk7Ci0gICB3aXJlIG5fMTAwOwotICAgd2lyZSBuXzEwMTsKLSAgIHdpcmUgbl8xMDI7Ci0gICB3aXJlIG5fMTAzOwotICAgd2lyZSBuXzEwNDsKLSAgIHdpcmUgbl8xMDU7Ci0gICB3aXJlIG5fMTA2OwotICAgd2lyZSBuXzEwNzsKLSAgIHdpcmUgbl8xMDg7Ci0gICB3aXJlIG5fMTExOwotICAgd2lyZSBuXzExMzsKLSAgIHdpcmUgbl8xMTQ7Ci0gICB3aXJlIG5fMTE2OwotICAgd2lyZSBuXzExNzsKLSAgIHdpcmUgbl8xMjE7Ci0gICB3aXJlIG5fMTI0OwotICAgd2lyZSBuXzEyOTsKLSAgIHdpcmUgbl8xMzE7Ci0gICB3aXJlIG5fMTMyOwotICAgd2lyZSBuXzEzMzsKLSAgIHdpcmUgbl8xMzU7Ci0gICB3aXJlIG5fMTM3OwotICAgd2lyZSBuXzE0MDsKLSAgIHdpcmUgbl8xNDQ7Ci0gICB3aXJlIG5fMTQ1OwotICAgd2lyZSBuXzE0ODsKLSAgIHdpcmUgbl8xNTM7Ci0gICB3aXJlIG5fMTU3OwotICAgd2lyZSBuXzE1ODsKLSAgIHdpcmUgbl8xNTk7Ci0gICB3aXJlIG5fMTYxOwotICAgd2lyZSBuXzE2MjsKLSAgIHdpcmUgbl8xNjM7Ci0gICB3aXJlIG5fMTY0OwotICAgd2lyZSBuXzE2NTsKLSAgIHdpcmUgbl8xNjY7Ci0gICB3aXJlIG5fMTY3OwotICAgd2lyZSBuXzE2ODsKLSAgIHdpcmUgbl8xNjk7Ci0gICB3aXJlIG5fMTcwOwotICAgd2lyZSBuXzE3MTsKLSAgIHdpcmUgbl8xODk7Ci0gICB3aXJlIG5fMTk2OwotICAgd2lyZSBuXzIwMzsKLSAgIHdpcmUgbl8yMDU7Ci0gICB3aXJlIG5fMjA3OwotICAgd2lyZSBuXzIxNDsKLSAgIHdpcmUgbl8yMTY7Ci0gICB3aXJlIG5fMjE3OwotICAgd2lyZSBuXzIzMTsKLSAgIHdpcmUgbl8yMzI7Ci0gICB3aXJlIG5fMjM0OwotICAgd2lyZSBuXzIzNTsKLSAgIHdpcmUgbl8yNDI7Ci0gICB3aXJlIG5fMjY5OwotICAgd2lyZSBuXzI3MDsKLSAgIHdpcmUgbl8yNzc7Ci0gICB3aXJlIG5fMjc5OwotICAgd2lyZSBuXzI4MDsKLSAgIHdpcmUgbl8yODM7Ci0gICB3aXJlIG5fMzczOwotICAgd2lyZSBuXzM3NjsKLSAgIHdpcmUgbl8zNzk7Ci0gICB3aXJlIG5fMzgyOwotICAgd2lyZSBuXzM4NTsKLSAgIHdpcmUgbl8zODY7Ci0gICB3aXJlIG5fMzg4OwotICAgd2lyZSBuXzM4OTsKLSAgIHdpcmUgbl8zOTE7Ci0gICB3aXJlIG5fMzkyOwotICAgd2lyZSBuXzM5NDsKLSAgIHdpcmUgbl8zOTU7Ci0gICB3aXJlIG5fMzk3OwotICAgd2lyZSBuXzM5OTsKLSAgIHdpcmUgbl80MDA7Ci0gICB3aXJlIG5fNDA1OwotICAgd2lyZSBuXzQwNjsKLSAgIHdpcmUgbl80MTQ7Ci0gICB3aXJlIG5fNDE3OwotICAgd2lyZSBuXzQxODsKLSAgIHdpcmUgbl80MjA7Ci0gICB3aXJlIG5fNDIxOwotICAgd2lyZSBuXzQyMzsKLSAgIHdpcmUgbl80MjQ7Ci0gICB3aXJlIG5fNDMxOwotICAgd2lyZSBuXzQzMjsKLSAgIHdpcmUgbl80MzM7Ci0gICB3aXJlIG5fNDM0OwotICAgd2lyZSBuXzQzNTsKLSAgIHdpcmUgbl80MzY7Ci0KLSAgIEFORDJYMiBnMjc2MyAoLlkobl8yODMpLCAKLQkuQihuXzMwKSwgCi0JLkEobl8xNTkpKTsKLSAgIENMS0lOVlgxIGcyNzY5ICguWShuXzI4MCksIAotCS5BKG5fMjc5KSk7Ci0gICBBTkQyWDEgZzI3NzAgKC5ZKG5fMjc5KSwgCi0JLkIobl8zNiksIAotCS5BKG5fMjEpKTsKLSAgIENMS0lOVlgyIGcyNzc1ICguWShuXzI3NyksIAotCS5BKG5fMzg2KSk7Ci0gICBDTEtJTlZYMSBnMjc4NiAoLlkobl8yNzApLCAKLQkuQShuXzI2OSkpOwotICAgQU5EMlgxIGcyNzg3ICguWShuXzI2OSksIAotCS5CKG5fMjkpLCAKLQkuQShuXzIyKSk7Ci0gICBDTEtJTlZYMiBnMjgzMiAoLlkobl8yNDIpLCAKLQkuQShuXzQwMCkpOwotICAgQ0xLSU5WWDEgZzI4NDMgKC5ZKG5fMjM1KSwgCi0JLkEobl8yMzQpKTsKLSAgIEFORDJYMSBnMjg0NCAoLlkobl8yMzQpLCAKLQkuQihuXzM0KSwgCi0JLkEobl8yMCkpOwotICAgQ0xLSU5WWDIgZzI4NDkgKC5ZKG5fMjMyKSwgCi0JLkEobl8yMzEpKTsKLSAgIEFORDJYMiBnMjg1MCAoLlkobl8yMzEpLCAKLQkuQihuXzMzKSwgCi0JLkEobl8xMzIpKTsKLSAgIENMS0lOVlgxIGcyODc4ICguWShuXzIxNyksIAotCS5BKG5fMjE2KSk7Ci0gICBBTkQyWDEgZzI4NzkgKC5ZKG5fMjE2KSwgCi0JLkIobl8yNSksIAotCS5BKG5fMTQpKTsKLSAgIENMS0lOVlgyIGcyODg0ICguWShuXzIxNCksIAotCS5BKG5fNDM0KSk7Ci0gICBBTkQyWDIgZzI4OTcgKC5ZKG5fMjA3KSwgCi0JLkIobl8yNiksIAotCS5BKG5fMTExKSk7Ci0gICBBTkQyWDIgZzI5MDMgKC5ZKG5fMjA1KSwgCi0JLkIobl8zOCksIAotCS5BKG5fMTUzKSk7Ci0gICBBTkQyWDIgZzI5MDkgKC5ZKG5fMjAzKSwgCi0JLkIobl8zMSksIAotCS5BKG5fMTIxKSk7Ci0gICBBTkQyWDIgZzI5MjUgKC5ZKG5fMTk2KSwgCi0JLkIobl8zMiksIAotCS5BKG5fMTQ4KSk7Ci0gICBDTEtJTlZYMiBnMjk0MCAoLlkobl8xODkpLCAKLQkuQShuXzQyMSkpOwotICAgQ0xLSU5WWDIgZzI5NjcgKC5ZKG5fMTcxKSwgCi0JLkEobl8xMzEpKTsKLSAgIEFORDJYMSBnMjk3NyAoLlkobl8xNzApLCAKLQkuQihuXzE1MyksIAotCS5BKG5fMTYpKTsKLSAgIEFORDJYMSBnMjk3OSAoLlkobl8xNjkpLCAKLQkuQihuXzEyMSksIAotCS5BKG5fOCkpOwotICAgQU5EMlgxIGcyOTgxICguWShuXzE2OCksIAotCS5CKG5fMTExKSwgCi0JLkEobl8xNykpOwotICAgQU5EMlgxIGcyOTgzICguWShuXzE2NyksIAotCS5CKG5fMTEzKSwgCi0JLkEobl8xNCkpOwotICAgQU5EMlgxIGcyOTg1ICguWShuXzE2NiksIAotCS5CKG5fMTQ4KSwgCi0JLkEobl82KSk7Ci0gICBBTkQyWDEgZzI5ODcgKC5ZKG5fMTY1KSwgCi0JLkIobl8xNTkpLCAKLQkuQShuXzI0KSk7Ci0gICBBTkQyWDEgZzI5ODkgKC5ZKG5fMTY0KSwgCi0JLkIobl8xNDApLCAKLQkuQShuXzIxKSk7Ci0gICBBTkQyWDEgZzI5OTEgKC5ZKG5fMTYzKSwgCi0JLkIobl8xMTcpLCAKLQkuQShuXzIyKSk7Ci0gICBBTkQyWDEgZzI5OTUgKC5ZKG5fMTYyKSwgCi0JLkIobl8xMzIpLCAKLQkuQShuXzE4KSk7Ci0gICBBTkQyWDEgZzI5OTcgKC5ZKG5fMTYxKSwgCi0JLkIobl8xMzMpLCAKLQkuQShuXzIwKSk7Ci0gICBPUjJYMSBnMjk5OSAoLlkobl8xNTkpLCAKLQkuQihCWzI2XSksIAotCS5BKEFbMjZdKSk7Ci0gICBBTkQyWDEgZzMwMDIgKC5ZKG5fMTU4KSwgCi0JLkIoQlsxMV0pLCAKLQkuQShBWzExXSkpOwotICAgT1IyWDEgZzMwMDMgKC5ZKG5fMTU3KSwgCi0JLkIoQlsxMV0pLCAKLQkuQShBWzExXSkpOwotICAgT1IyWDEgZzMwMDcgKC5ZKG5fMTUzKSwgCi0JLkIoQls4XSksIAotCS5BKEFbOF0pKTsKLSAgIE9SMlgxIGczMDE0ICguWShuXzE0OCksIAotCS5CKEJbNV0pLCAKLQkuQShBWzVdKSk7Ci0gICBPUjJYMSBnMzAxNyAoLlkobl8xNDUpLCAKLQkuQihCWzEwXSksIAotCS5BKEFbMTBdKSk7Ci0gICBPUjJYMiBnMzAxOSAoLlkobl8xNDQpLCAKLQkuQihuXzk4KSwgCi0JLkEobl8xMDApKTsKLSAgIE9SMlgyIGczMDI2ICguWShuXzE0MCksIAotCS5CKEJbMjVdKSwgCi0JLkEoQVsyNV0pKTsKLSAgIEFORDJYMSBnMzAzMCAoLlkobl8xMzcpLCAKLQkuQihCWzE1XSksIAotCS5BKEFbMTVdKSk7Ci0gICBPUjJYMSBnMzAzMiAoLlkobl8xMzUpLCAKLQkuQihCWzE1XSksIAotCS5BKEFbMTVdKSk7Ci0gICBPUjJYMiBnMzAzNSAoLlkobl8xMzMpLCAKLQkuQihCWzE3XSksIAotCS5BKEFbMTddKSk7Ci0gICBPUjJYMSBnMzAzOCAoLlkobl8xMzIpLCAKLQkuQihCWzE2XSksIAotCS5BKEFbMTZdKSk7Ci0gICBBTkQyWDIgZzMwMzkgKC5ZKG5fMTMxKSwgCi0JLkIoQlswXSksIAotCS5BKEFbMF0pKTsKLSAgIEFORDJYMSBnMzA0MSAoLlkobl8xMjkpLCAKLQkuQihuXzk4KSwgCi0JLkEobl8xMDApKTsKLSAgIE9SMlgxIGczMDUyICguWShuXzEyNCksIAotCS5CKEJbMTRdKSwgCi0JLkEoQVsxNF0pKTsKLSAgIE9SMlgxIGczMDU1ICguWShuXzEyMSksIAotCS5CKEJbN10pLCAKLQkuQShBWzddKSk7Ci0gICBPUjJYMiBnMzA2MiAoLlkobl8xMTcpLCAKLQkuQihCWzIzXSksIAotCS5BKEFbMjNdKSk7Ci0gICBBTkQyWDEgZzMwNjQgKC5ZKG5fMTE2KSwgCi0JLkIoQlsxMF0pLCAKLQkuQShBWzEwXSkpOwotICAgQU5EMlgxIGczMDY4ICguWShuXzExNCksIAotCS5CKEJbMTRdKSwgCi0JLkEoQVsxNF0pKTsKLSAgIE9SMlgyIGczMDcyICguWShuXzExMyksIAotCS5CKEJbMTJdKSwgCi0JLkEoQVsxMl0pKTsKLSAgIE9SMlgxIGczMDc0ICguWShuXzExMSksIAotCS5CKEJbOV0pLCAKLQkuQShBWzldKSk7Ci0gICBDTEtJTlZYMSBnMzA4MCAoLlkobl8xMDgpLCAKLQkuQShCWzIyXSkpOwotICAgQ0xLSU5WWDEgZzMwODEgKC5ZKG5fMTA3KSwgCi0JLkEoQVsyXSkpOwotICAgQ0xLSU5WWDEgZzMwODIgKC5ZKG5fMTA2KSwgCi0JLkEoQVsyMV0pKTsKLSAgIENMS0lOVlgxIGczMDgzICguWShuXzEwNSksIAotCS5BKEJbM10pKTsKLSAgIENMS0lOVlgxIGczMDg0ICguWShuXzEwNCksIAotCS5BKEFbM10pKTsKLSAgIENMS0lOVlgxIGczMDkwICguWShuXzEwMyksIAotCS5BKEFbMjBdKSk7Ci0gICBDTEtJTlZYMSBnMzA5NSAoLlkobl8xMDIpLCAKLQkuQShCWzIwXSkpOwotICAgQ0xLSU5WWDEgZzMwOTcgKC5ZKG5fMTAxKSwgCi0JLkEoQlsxOV0pKTsKLSAgIENMS0lOVlgyIGczMDk5ICguWShuXzEwMCksIAotCS5BKEFbMV0pKTsKLSAgIENMS0lOVlgxIGczMTAxICguWShuXzk5KSwgCi0JLkEoQlsyXSkpOwotICAgQ0xLSU5WWDIgZzMxMDkgKC5ZKG5fOTgpLCAKLQkuQShCWzFdKSk7Ci0gICBDTEtJTlZYMSBnMzEyMiAoLlkobl85NyksIAotCS5BKEFbMTldKSk7Ci0gICBDTEtJTlZYMSBnMzEyOCAoLlkobl85NiksIAotCS5BKEFbMjJdKSk7Ci0gICBDTEtJTlZYMyBnMzEzMSAoLlkobl85NSksIAotCS5BKEJbMjFdKSk7Ci0gICBOT1IyQlg0IGczMTg3ICguWShuXzM5KSwgCi0JLkIobl8xNTgpLCAKLQkuQU4obl8xNTcpKTsKLSAgIE5BTkQyQlg0IGczMTg4ICguWShuXzM4KSwgCi0JLkIobl8xNiksIAotCS5BTihuXzIwMykpOwotICAgTkFORDJCWDQgZzMxODkgKC5ZKG5fMzcpLCAKLQkuQihuXzE0NCksIAotCS5BTihuXzEyOSkpOwotICAgTkFORDJCWDQgZzMxOTAgKC5ZKG5fMzYpLCAKLQkuQihuXzE0MCksIAotCS5BTihuXzI3NykpOwotICAgTk9SMkJYNCBnMzE5MSAoLlkobl8zNSksIAotCS5CKG5fMTM3KSwgCi0JLkFOKG5fMTM1KSk7Ci0gICBOQU5EMkJYNCBnMzE5MiAoLlkobl8zNCksIAotCS5CKG5fMTMzKSwgCi0JLkFOKG5fMjMyKSk7Ci0gICBOQU5EMkJYNCBnMzE5MyAoLlkobl8zMyksIAotCS5CKG5fMTgpLCAKLQkuQU4obl80MzIpKTsKLSAgIE5BTkQyQlg0IGczMTk0ICguWShuXzMyKSwgCi0JLkIobl82KSwgCi0JLkFOKG5fNDE4KSk7Ci0gICBOQU5EMkJYNCBnMzE5NSAoLlkobl8zMSksIAotCS5CKG5fOCksIAotCS5BTihuXzQxNCkpOwotICAgTkFORDJCWDQgZzMxOTYgKC5ZKG5fMzApLCAKLQkuQihuXzI0KSwgCi0JLkFOKG5fMjgwKSk7Ci0gICBOQU5EMkJYNCBnMzE5NyAoLlkobl8yOSksIAotCS5CKG5fMTE3KSwgCi0JLkFOKG5fMzg5KSk7Ci0gICBOT1IyQlg0IGczMTk4ICguWShuXzI4KSwgCi0JLkIobl8xMTYpLCAKLQkuQU4obl8xNDUpKTsKLSAgIE5PUjJCWDQgZzMxOTkgKC5ZKG5fMjcpLCAKLQkuQihuXzExNCksIAotCS5BTihuXzEyNCkpOwotICAgTkFORDJCWDQgZzMyMDAgKC5ZKG5fMjYpLCAKLQkuQihuXzE3KSwgCi0JLkFOKG5fMjA1KSk7Ci0gICBOQU5EMkJYNCBnMzIwMSAoLlkobl8yNSksIAotCS5CKG5fMTEzKSwgCi0JLkFOKG5fMjE0KSk7Ci0gICBOQU5EMlgxIGczMjAyICguWShuXzI0KSwgCi0JLkIoQlsyNl0pLCAKLQkuQShBWzI2XSkpOwotICAgTkFORDJYMSBnMzIwNCAoLlkobl8yMiksIAotCS5CKEJbMjNdKSwgCi0JLkEoQVsyM10pKTsKLSAgIE5BTkQyWDEgZzMyMDUgKC5ZKG5fMjEpLCAKLQkuQihCWzI1XSksIAotCS5BKEFbMjVdKSk7Ci0gICBOQU5EMlgxIGczMjA2ICguWShuXzIwKSwgCi0JLkIoQlsxN10pLCAKLQkuQShBWzE3XSkpOwotICAgTkFORDJYMSBnMzIwOCAoLlkobl8xOCksIAotCS5CKEJbMTZdKSwgCi0JLkEoQVsxNl0pKTsKLSAgIE5BTkQyWDEgZzMyMDkgKC5ZKG5fMTcpLCAKLQkuQihCWzldKSwgCi0JLkEoQVs5XSkpOwotICAgTkFORDJYMSBnMzIxMCAoLlkobl8xNiksIAotCS5CKEJbOF0pLCAKLQkuQShBWzhdKSk7Ci0gICBOQU5EMlgxIGczMjEyICguWShuXzE0KSwgCi0JLkIoQlsxMl0pLCAKLQkuQShBWzEyXSkpOwotICAgTkFORDJYMSBnMzIxOCAoLlkobl84KSwgCi0JLkIoQls3XSksIAotCS5BKEFbN10pKTsKLSAgIE5BTkQyWDEgZzMyMjAgKC5ZKG5fNiksIAotCS5CKEJbNV0pLCAKLQkuQShBWzVdKSk7Ci0gICBBRERGSFg0IGczMjMxICguUygpLCAKLQkuQ08obl8zNzMpLCAKLQkuQ0kobl8zNzYpLCAKLQkuQihCWzMwXSksIAotCS5BKEFbMzBdKSk7Ci0gICBBRERGSFg0IGczMjM0ICguUygpLCAKLQkuQ08obl8zNzYpLCAKLQkuQ0kobl8zNzkpLCAKLQkuQihCWzI5XSksIAotCS5BKEFbMjldKSk7Ci0gICBBRERGSFg0IGczMjM3ICguUygpLCAKLQkuQ08obl8zNzkpLCAKLQkuQ0kobl8zODIpLCAKLQkuQihCWzI4XSksIAotCS5BKEFbMjhdKSk7Ci0gICBBRERGSFg0IGczMjQwICguUygpLCAKLQkuQ08obl8zODIpLCAKLQkuQ0kobl8yODMpLCAKLQkuQihCWzI3XSksIAotCS5BKEFbMjddKSk7Ci0gICBDTEtNWDJYMTIgZzMyNDEgKC5ZKFpbMjZdKSwgCi0JLlMwKG5fMTY1KSwgCi0JLkIobl8yNzkpLCAKLQkuQShuXzI4MCkpOwotICAgWE5PUjJYNCBnMzI0MiAoLlkoWlsyNF0pLCAKLQkuQihuXzM4NSksIAotCS5BKEFbMjRdKSk7Ci0gICBDTEtNWDJYMTIgZzMyNDMgKC5ZKG5fMzg1KSwgCi0JLlMwKEJbMjRdKSwgCi0JLkIobl8yNzApLCAKLQkuQShuXzI2OSkpOwotICAgQURERkhYNCBnMzI0NCAoLlMoKSwgCi0JLkNPKG5fMzg2KSwgCi0JLkNJKG5fMjcwKSwgCi0JLkIoQlsyNF0pLCAKLQkuQShBWzI0XSkpOwotICAgQ0xLTVgyWDEyIGczMjQ1ICguWShaWzIyXSksIAotCS5TMChuXzM4OCksIAotCS5CKEJbMjJdKSwgCi0JLkEobl8xMDgpKTsKLSAgIENMS01YMlgxMiBnMzI0NiAoLlkobl8zODgpLCAKLQkuUzAobl8zOTIpLCAKLQkuQihuXzk2KSwgCi0JLkEoQVsyMl0pKTsKLSAgIEFEREZIWDQgZzMyNDcgKC5TKCksIAotCS5DTyhuXzM4OSksIAotCS5DSShuXzM5MiksIAotCS5CKG5fMTA4KSwgCi0JLkEobl85NikpOwotICAgQ0xLTVgyWDEyIGczMjQ4ICguWShaWzIxXSksIAotCS5TMChuXzM5MSksIAotCS5CKEFbMjFdKSwgCi0JLkEobl8xMDYpKTsKLSAgIENMS01YMlgxMiBnMzI0OSAoLlkobl8zOTEpLCAKLQkuUzAobl8zOTUpLCAKLQkuQihuXzk1KSwgCi0JLkEoQlsyMV0pKTsKLSAgIEFEREZIWDQgZzMyNTAgKC5TKCksIAotCS5DTyhuXzM5MiksIAotCS5DSShuXzM5NSksIAotCS5CKG5fOTUpLCAKLQkuQShuXzEwNikpOwotICAgQ0xLTVgyWDEyIGczMjUxICguWShaWzIwXSksIAotCS5TMChuXzM5NCksIAotCS5CKEFbMjBdKSwgCi0JLkEobl8xMDMpKTsKLSAgIENMS01YMlgxMiBnMzI1MiAoLlkobl8zOTQpLCAKLQkuUzAobl8zOTcpLCAKLQkuQihuXzEwMiksIAotCS5BKEJbMjBdKSk7Ci0gICBBRERGSFg0IGczMjUzICguUygpLCAKLQkuQ08obl8zOTUpLCAKLQkuQ0kobl8zOTcpLCAKLQkuQihuXzEwMiksIAotCS5BKG5fMTAzKSk7Ci0gICBDTEtNWDJYMTIgZzMyNTQgKC5ZKFpbMTldKSwgCi0JLlMwKG5fNDMxKSwgCi0JLkIoQVsxOV0pLCAKLQkuQShuXzk3KSk7Ci0gICBBRERGSFg0IGczMjU1ICguUygpLCAKLQkuQ08obl8zOTcpLCAKLQkuQ0kobl8yNDIpLCAKLQkuQihuXzEwMSksIAotCS5BKG5fOTcpKTsKLSAgIFhOT1IyWDQgZzMyNTYgKC5ZKFpbMThdKSwgCi0JLkIobl8zOTkpLCAKLQkuQShCWzE4XSkpOwotICAgQ0xLTVgyWDEyIGczMjU3ICguWShuXzM5OSksIAotCS5TMChBWzE4XSksIAotCS5CKG5fMjM1KSwgCi0JLkEobl8yMzQpKTsKLSAgIEFEREZIWDQgZzMyNTggKC5TKCksIAotCS5DTyhuXzQwMCksIAotCS5DSShuXzIzNSksIAotCS5CKEJbMThdKSwgCi0JLkEoQVsxOF0pKTsKLSAgIFhPUjJYNCBnMzI1OSAoLlkoWlsxNl0pLCAKLQkuQihuXzQzMiksIAotCS5BKG5fMTYyKSk7Ci0gICBYT1IyWDQgZzMyNjAgKC5ZKFpbMTVdKSwgCi0JLkIobl80MzMpLCAKLQkuQShuXzM1KSk7Ci0gICBYT1IyWDQgZzMyNjEgKC5ZKFpbMTRdKSwgCi0JLkIobl80MDYpLCAKLQkuQShuXzI3KSk7Ci0gICBYTk9SMlg0IGczMjYyICguWShaWzEzXSksIAotCS5CKG5fNDA1KSwgCi0JLkEoQVsxM10pKTsKLSAgIENMS01YMlgxMiBnMzI2MyAoLlkobl80MDUpLCAKLQkuUzAoQlsxM10pLCAKLQkuQihuXzIxNyksIAotCS5BKG5fMjE2KSk7Ci0gICBBRERGSFg0IGczMjY0ICguUygpLCAKLQkuQ08obl80MDYpLCAKLQkuQ0kobl8yMTcpLCAKLQkuQihCWzEzXSksIAotCS5BKEFbMTNdKSk7Ci0gICBYT1IyWDQgZzMyNjUgKC5ZKFpbMTFdKSwgCi0JLkIobl80MzUpLCAKLQkuQShuXzM5KSk7Ci0gICBYT1IyWDQgZzMyNjYgKC5ZKFpbMTBdKSwgCi0JLkIobl8yMDcpLCAKLQkuQShuXzI4KSk7Ci0gICBYT1IyWDQgZzMyNjcgKC5ZKFpbOV0pLCAKLQkuQihuXzIwNSksIAotCS5BKG5fMTY4KSk7Ci0gICBYT1IyWDQgZzMyNjggKC5ZKFpbOF0pLCAKLQkuQihuXzIwMyksIAotCS5BKG5fMTcwKSk7Ci0gICBYT1IyWDQgZzMyNjkgKC5ZKFpbN10pLCAKLQkuQihuXzE2OSksIAotCS5BKG5fNDE0KSk7Ci0gICBBRERGSFg0IGczMjcyICguUygpLCAKLQkuQ08obl80MTQpLCAKLQkuQ0kobl8xOTYpLCAKLQkuQihCWzZdKSwgCi0JLkEoQVs2XSkpOwotICAgWE9SMlg0IGczMjczICguWShaWzVdKSwgCi0JLkIobl8xNjYpLCAKLQkuQShuXzQxOCkpOwotICAgWE9SMlg0IGczMjc0ICguWShaWzRdKSwgCi0JLkIoQVs0XSksIAotCS5BKG5fNDE3KSk7Ci0gICBDTEtNWDJYMTIgZzMyNzUgKC5ZKG5fNDE3KSwgCi0JLlMwKEJbNF0pLCAKLQkuQihuXzQyMSksIAotCS5BKG5fMTg5KSk7Ci0gICBBRERGSFg0IGczMjc2ICguUygpLCAKLQkuQ08obl80MTgpLCAKLQkuQ0kobl8xODkpLCAKLQkuQihCWzRdKSwgCi0JLkEoQVs0XSkpOwotICAgQ0xLTVgyWDEyIGczMjc3ICguWShaWzNdKSwgCi0JLlMwKG5fNDIwKSwgCi0JLkIobl8xMDUpLCAKLQkuQShCWzNdKSk7Ci0gICBDTEtNWDJYMTIgZzMyNzggKC5ZKG5fNDIwKSwgCi0JLlMwKG5fNDI0KSwgCi0JLkIoQVszXSksIAotCS5BKG5fMTA0KSk7Ci0gICBBRERGSFg0IGczMjc5ICguUygpLCAKLQkuQ08obl80MjEpLCAKLQkuQ0kobl80MjQpLCAKLQkuQihuXzEwNSksIAotCS5BKG5fMTA0KSk7Ci0gICBDTEtNWDJYMTIgZzMyODAgKC5ZKFpbMl0pLCAKLQkuUzAobl80MjMpLCAKLQkuQihuXzEwNyksIAotCS5BKEFbMl0pKTsKLSAgIENMS01YMlgxMiBnMzI4MSAoLlkobl80MjMpLCAKLQkuUzAobl80MzYpLCAKLQkuQihCWzJdKSwgCi0JLkEobl85OSkpOwotICAgQURERkhYNCBnMzI4MiAoLlMoKSwgCi0JLkNPKG5fNDI0KSwgCi0JLkNJKG5fNDM2KSwgCi0JLkIobl85OSksIAotCS5BKG5fMTA3KSk7Ci0gICBNWEkyWDEgZzMyODMgKC5ZKFpbMV0pLCAKLQkuUzAobl8zNyksIAotCS5CKG5fMTcxKSwgCi0JLkEobl8xMzEpKTsKLSAgIFhPUjJYNCBnMzI4NCAoLlkoWlswXSksIAotCS5CKEJbMF0pLCAKLQkuQShBWzBdKSk7Ci0gICBNWEkyWDEgZzMyODUgKC5ZKFpbMjVdKSwgCi0JLlMwKG5fMTY0KSwgCi0JLkIobl8zODYpLCAKLQkuQShuXzI3NykpOwotICAgWE5PUjJYNCBnMiAoLlkoWlsyM10pLCAKLQkuQihuXzM4OSksIAotCS5BKG5fMTYzKSk7Ci0gICBNWEkyWDEgZzMyODYgKC5ZKFpbMTddKSwgCi0JLlMwKG5fMTYxKSwgCi0JLkIobl8yMzEpLCAKLQkuQShuXzIzMikpOwotICAgTVhJMlgxIGczMjg3ICguWShaWzEyXSksIAotCS5TMChuXzE2NyksIAotCS5CKG5fNDM0KSwgCi0JLkEobl8yMTQpKTsKLSAgIE9BMjJYNCBnMzI4OCAoLlkobl80MzEpLCAKLQkuQjEobl80MDApLCAKLQkuQjAobl8xMDEpLCAKLQkuQTEobl8yNDIpLCAKLQkuQTAoQlsxOV0pKTsKLSAgIE9BMjFYNCBnMzI4OSAoLlkobl80MzIpLCAKLQkuQjAobl8xMzUpLCAKLQkuQTEobl80MzMpLCAKLQkuQTAobl8xMzcpKTsKLSAgIE9BMjFYNCBnMzI5MCAoLlkobl80MzMpLCAKLQkuQjAobl8xMjQpLCAKLQkuQTEobl80MDYpLCAKLQkuQTAobl8xMTQpKTsKLSAgIE9BMjFYNCBnMzI5MSAoLlkobl80MzQpLCAKLQkuQjAobl8xNTcpLCAKLQkuQTEobl80MzUpLCAKLQkuQTAobl8xNTgpKTsKLSAgIE9BMjFYNCBnMzI5MiAoLlkobl80MzUpLCAKLQkuQjAobl8xNDUpLCAKLQkuQTEobl8yMDcpLCAKLQkuQTAobl8xMTYpKTsKLSAgIE9BMjFYNCBnMzI5MyAoLlkobl80MzYpLCAKLQkuQjAobl8xNDQpLCAKLQkuQTEobl8xMjkpLCAKLQkuQTAobl8xNzEpKTsKLSAgIFhPUjNYMSBnMzI5NCAoLlkoWlszMV0pLCAKLQkuQyhuXzM3MyksIAotCS5CKEFbMzFdKSwgCi0JLkEoQlszMV0pKTsKLSAgIFhPUjNYMSBnMzI5NSAoLlkoWlszMF0pLCAKLQkuQyhuXzM3NiksIAotCS5CKEFbMzBdKSwgCi0JLkEoQlszMF0pKTsKLSAgIFhPUjNYMSBnMzI5NiAoLlkoWlsyOV0pLCAKLQkuQyhBWzI5XSksIAotCS5CKG5fMzc5KSwgCi0JLkEoQlsyOV0pKTsKLSAgIFhPUjNYMSBnMzI5NyAoLlkoWlsyOF0pLCAKLQkuQyhuXzM4MiksIAotCS5CKEJbMjhdKSwgCi0JLkEoQVsyOF0pKTsKLSAgIFhPUjNYMSBnMzI5OCAoLlkoWlsyN10pLCAKLQkuQyhBWzI3XSksIAotCS5CKG5fMjgzKSwgCi0JLkEoQlsyN10pKTsKLSAgIFhPUjNYMSBnMzI5OSAoLlkoWls2XSksIAotCS5DKEFbNl0pLCAKLQkuQihuXzE5NiksIAotCS5BKEJbNl0pKTsKLWVuZG1vZHVsZQotCi1tb2R1bGUgaW5jcmVtZW50X3Vuc2lnbmVkICgKLQlBLCAKLQlDSSwgCi0JWik7Ci0gICBpbnB1dCBbMzE6MF0gQTsKLSAgIGlucHV0IENJOwotICAgb3V0cHV0IFszMjowXSBaOwotCi0gICAvLyBJbnRlcm5hbCB3aXJlcwotICAgd2lyZSBuXzYyOwotICAgd2lyZSBuXzY0OwotICAgd2lyZSBuXzY2OwotICAgd2lyZSBuXzY4OwotICAgd2lyZSBuXzcwOwotICAgd2lyZSBuXzcyOwotICAgd2lyZSBuXzc0OwotICAgd2lyZSBuXzc2OwotICAgd2lyZSBuXzc4OwotICAgd2lyZSBuXzgwOwotICAgd2lyZSBuXzgyOwotICAgd2lyZSBuXzg0OwotICAgd2lyZSBuXzg2OwotICAgd2lyZSBuXzg4OwotICAgd2lyZSBuXzkwOwotICAgd2lyZSBuXzkyOwotICAgd2lyZSBuXzk0OwotICAgd2lyZSBuXzk4OwotICAgd2lyZSBuXzEwMDsKLSAgIHdpcmUgbl8xMDI7Ci0gICB3aXJlIG5fMTA0OwotICAgd2lyZSBuXzEwNjsKLSAgIHdpcmUgbl8xMDg7Ci0gICB3aXJlIG5fMTEwOwotICAgd2lyZSBuXzExMjsKLSAgIHdpcmUgbl8xMTQ7Ci0gICB3aXJlIG5fMTE2OwotICAgd2lyZSBuXzExODsKLSAgIHdpcmUgbl8xMjA7Ci0gICB3aXJlIG5fMTIyOwotCi0gICBBTkQyWDEgZzY4NyAoLlkobl8xMjIpLCAKLQkuQihuXzEyMCksIAotCS5BKEFbMzBdKSk7Ci0gICBBTkQyWDIgZzY5NCAoLlkobl8xMjApLCAKLQkuQihuXzExOCksIAotCS5BKEFbMjldKSk7Ci0gICBBTkQyWDIgZzY5NyAoLlkobl8xMTgpLCAKLQkuQihuXzExNiksIAotCS5BKEFbMjhdKSk7Ci0gICBBTkQyWDIgZzcwNCAoLlkobl8xMTYpLCAKLQkuQihuXzExNCksIAotCS5BKEFbMjddKSk7Ci0gICBBTkQyWDIgZzcwOSAoLlkobl8xMTQpLCAKLQkuQihuXzExMiksIAotCS5BKEFbMjZdKSk7Ci0gICBBTkQyWDIgZzcxNCAoLlkobl8xMTIpLCAKLQkuQihuXzExMCksIAotCS5BKEFbMjVdKSk7Ci0gICBBTkQyWDIgZzcxNyAoLlkobl8xMTApLCAKLQkuQihuXzEwOCksIAotCS5BKEFbMjRdKSk7Ci0gICBBTkQyWDIgZzcyMiAoLlkobl8xMDgpLCAKLQkuQihuXzEwNiksIAotCS5BKEFbMjNdKSk7Ci0gICBBTkQyWDIgZzcyNyAoLlkobl8xMDYpLCAKLQkuQihuXzEwNCksIAotCS5BKEFbMjJdKSk7Ci0gICBBTkQyWDIgZzczMiAoLlkobl8xMDQpLCAKLQkuQihuXzEwMiksIAotCS5BKEFbMjFdKSk7Ci0gICBBTkQyWDIgZzczNyAoLlkobl8xMDIpLCAKLQkuQihuXzEwMCksIAotCS5BKEFbMjBdKSk7Ci0gICBBTkQyWDIgZzc0NCAoLlkobl8xMDApLCAKLQkuQihuXzk4KSwgCi0JLkEoQVsxOV0pKTsKLSAgIEFORDJYMiBnNzQ5ICguWShuXzk4KSwgCi0JLkIobl85NCksIAotCS5BKEFbMThdKSk7Ci0gICBBTkQyWDIgZzc1NCAoLlkobl85NCksIAotCS5CKG5fOTIpLCAKLQkuQShBWzE3XSkpOwotICAgQU5EMlgyIGc3NTcgKC5ZKG5fOTIpLCAKLQkuQihuXzkwKSwgCi0JLkEoQVsxNl0pKTsKLSAgIEFORDJYMiBnNzYyICguWShuXzkwKSwgCi0JLkIobl84OCksIAotCS5BKEFbMTVdKSk7Ci0gICBBTkQyWDIgZzc2NyAoLlkobl84OCksIAotCS5CKG5fODYpLCAKLQkuQShBWzE0XSkpOwotICAgQU5EMlgyIGc3NzIgKC5ZKG5fODYpLCAKLQkuQihuXzg0KSwgCi0JLkEoQVsxM10pKTsKLSAgIEFORDJYMiBnNzc3ICguWShuXzg0KSwgCi0JLkIobl84MiksIAotCS5BKEFbMTJdKSk7Ci0gICBBTkQyWDIgZzc4MiAoLlkobl84MiksIAotCS5CKG5fODApLCAKLQkuQShBWzExXSkpOwotICAgQU5EMlgyIGc3ODkgKC5ZKG5fODApLCAKLQkuQihuXzc4KSwgCi0JLkEoQVsxMF0pKTsKLSAgIEFORDJYMiBnNzk0ICguWShuXzc4KSwgCi0JLkIobl83NiksIAotCS5BKEFbOV0pKTsKLSAgIEFORDJYMiBnNzk5ICguWShuXzc2KSwgCi0JLkIobl83NCksIAotCS5BKEFbOF0pKTsKLSAgIEFORDJYMiBnODA0ICguWShuXzc0KSwgCi0JLkIobl83MiksIAotCS5BKEFbN10pKTsKLSAgIEFORDJYMiBnODA5ICguWShuXzcyKSwgCi0JLkIobl83MCksIAotCS5BKEFbNl0pKTsKLSAgIEFORDJYMiBnODE0ICguWShuXzcwKSwgCi0JLkIobl82OCksIAotCS5BKEFbNV0pKTsKLSAgIEFORDJYMiBnODE5ICguWShuXzY4KSwgCi0JLkIobl82NiksIAotCS5BKEFbNF0pKTsKLSAgIEFORDJYMiBnODI0ICguWShuXzY2KSwgCi0JLkIobl82NCksIAotCS5BKEFbM10pKTsKLSAgIEFORDJYMiBnODI5ICguWShuXzY0KSwgCi0JLkIobl82MiksIAotCS5BKEFbMl0pKTsKLSAgIEFORDJYMiBnODM0ICguWShuXzYyKSwgCi0JLkIoQVsxXSksIAotCS5BKEFbMF0pKTsKLSAgIFhPUjJYNCBnOTI4ICguWShaWzMxXSksIAotCS5CKG5fMTIyKSwgCi0JLkEoQVszMV0pKTsKLSAgIFhPUjJYNCBnMiAoLlkoWlszMF0pLCAKLQkuQihuXzEyMCksIAotCS5BKEFbMzBdKSk7Ci0gICBYT1IyWDQgZzkyOSAoLlkoWlsyOV0pLCAKLQkuQihuXzExOCksIAotCS5BKEFbMjldKSk7Ci0gICBYT1IyWDQgZzkzMCAoLlkoWlsyOF0pLCAKLQkuQihuXzExNiksIAotCS5BKEFbMjhdKSk7Ci0gICBYT1IyWDQgZzkzMSAoLlkoWlsyN10pLCAKLQkuQihuXzExNCksIAotCS5BKEFbMjddKSk7Ci0gICBYT1IyWDQgZzkzMiAoLlkoWlsyNl0pLCAKLQkuQihuXzExMiksIAotCS5BKEFbMjZdKSk7Ci0gICBYT1IyWDQgZzkzMyAoLlkoWlsyNV0pLCAKLQkuQihuXzExMCksIAotCS5BKEFbMjVdKSk7Ci0gICBYT1IyWDQgZzkzNCAoLlkoWlsyNF0pLCAKLQkuQihuXzEwOCksIAotCS5BKEFbMjRdKSk7Ci0gICBYT1IyWDQgZzkzNSAoLlkoWlsyM10pLCAKLQkuQihuXzEwNiksIAotCS5BKEFbMjNdKSk7Ci0gICBYT1IyWDQgZzkzNiAoLlkoWlsyMl0pLCAKLQkuQihuXzEwNCksIAotCS5BKEFbMjJdKSk7Ci0gICBYT1IyWDQgZzkzNyAoLlkoWlsyMV0pLCAKLQkuQihuXzEwMiksIAotCS5BKEFbMjFdKSk7Ci0gICBYT1IyWDQgZzkzOCAoLlkoWlsyMF0pLCAKLQkuQihuXzEwMCksIAotCS5BKEFbMjBdKSk7Ci0gICBYT1IyWDQgZzkzOSAoLlkoWlsxOV0pLCAKLQkuQihuXzk4KSwgCi0JLkEoQVsxOV0pKTsKLSAgIFhPUjJYNCBnOTQwICguWShaWzE4XSksIAotCS5CKG5fOTQpLCAKLQkuQShBWzE4XSkpOwotICAgWE9SMlg0IGc5NDEgKC5ZKFpbMTddKSwgCi0JLkIobl85MiksIAotCS5BKEFbMTddKSk7Ci0gICBYT1IyWDQgZzk0MiAoLlkoWlsxNl0pLCAKLQkuQihuXzkwKSwgCi0JLkEoQVsxNl0pKTsKLSAgIFhPUjJYNCBnOTQzICguWShaWzE1XSksIAotCS5CKG5fODgpLCAKLQkuQShBWzE1XSkpOwotICAgWE9SMlg0IGc5NDQgKC5ZKFpbMTRdKSwgCi0JLkIobl84NiksIAotCS5BKEFbMTRdKSk7Ci0gICBYT1IyWDQgZzk0NSAoLlkoWlsxM10pLCAKLQkuQihuXzg0KSwgCi0JLkEoQVsxM10pKTsKLSAgIFhPUjJYNCBnOTQ2ICguWShaWzEyXSksIAotCS5CKG5fODIpLCAKLQkuQShBWzEyXSkpOwotICAgWE9SMlg0IGc5NDcgKC5ZKFpbMTFdKSwgCi0JLkIobl84MCksIAotCS5BKEFbMTFdKSk7Ci0gICBYT1IyWDQgZzk0OCAoLlkoWlsxMF0pLCAKLQkuQihuXzc4KSwgCi0JLkEoQVsxMF0pKTsKLSAgIFhPUjJYNCBnOTQ5ICguWShaWzldKSwgCi0JLkIobl83NiksIAotCS5BKEFbOV0pKTsKLSAgIFhPUjJYNCBnOTUwICguWShaWzhdKSwgCi0JLkIobl83NCksIAotCS5BKEFbOF0pKTsKLSAgIFhPUjJYNCBnOTUxICguWShaWzddKSwgCi0JLkIobl83MiksIAotCS5BKEFbN10pKTsKLSAgIFhPUjJYNCBnOTUyICguWShaWzZdKSwgCi0JLkIobl83MCksIAotCS5BKEFbNl0pKTsKLSAgIFhPUjJYNCBnOTUzICguWShaWzVdKSwgCi0JLkIobl82OCksIAotCS5BKEFbNV0pKTsKLSAgIFhPUjJYNCBnOTU0ICguWShaWzRdKSwgCi0JLkIoQVs0XSksIAotCS5BKG5fNjYpKTsKLSAgIFhPUjJYNCBnOTU1ICguWShaWzNdKSwgCi0JLkIobl82NCksIAotCS5BKEFbM10pKTsKLSAgIFhPUjJYNCBnOTU2ICguWShaWzJdKSwgCi0JLkIoQVsyXSksIAotCS5BKG5fNjIpKTsKLSAgIFhPUjJYNCBnOTU3ICguWShaWzFdKSwgCi0JLkIoQVsxXSksIAotCS5BKEFbMF0pKTsKLWVuZG1vZHVsZQotCi1tb2R1bGUgc3ViX3Vuc2lnbmVkXzI4MjUgKAotCUEsIAotCUIsIAotCVopOwotICAgaW5wdXQgWzMxOjBdIEE7Ci0gICBpbnB1dCBbMzE6MF0gQjsKLSAgIG91dHB1dCBbMzE6MF0gWjsKLQotICAgLy8gSW50ZXJuYWwgd2lyZXMKLSAgIHdpcmUgbl8yOwotICAgd2lyZSBuXzU7Ci0gICB3aXJlIG5fMTQ7Ci0gICB3aXJlIG5fMjE7Ci0gICB3aXJlIG5fMjI7Ci0gICB3aXJlIG5fMjM7Ci0gICB3aXJlIG5fMjY7Ci0gICB3aXJlIG5fMjk7Ci0gICB3aXJlIG5fMzE7Ci0gICB3aXJlIG5fNDM7Ci0gICB3aXJlIG5fNTY7Ci0gICB3aXJlIG5fNTg7Ci0gICB3aXJlIG5fNjA7Ci0gICB3aXJlIG5fNjQ7Ci0gICB3aXJlIG5fNjg7Ci0gICB3aXJlIG5fNzA7Ci0gICB3aXJlIG5fNzM7Ci0gICB3aXJlIG5fNzc7Ci0gICB3aXJlIG5fODA7Ci0gICB3aXJlIG5fOTA7Ci0gICB3aXJlIG5fOTE7Ci0gICB3aXJlIG5fOTI7Ci0gICB3aXJlIG5fOTM7Ci0gICB3aXJlIG5fOTQ7Ci0gICB3aXJlIG5fOTY7Ci0gICB3aXJlIG5fOTc7Ci0gICB3aXJlIG5fOTg7Ci0gICB3aXJlIG5fOTk7Ci0gICB3aXJlIG5fMTAwOwotICAgd2lyZSBuXzEwMTsKLSAgIHdpcmUgbl8xMDI7Ci0gICB3aXJlIG5fMTAzOwotICAgd2lyZSBuXzEwNDsKLSAgIHdpcmUgbl8xMDU7Ci0gICB3aXJlIG5fMTA2OwotICAgd2lyZSBuXzEwNzsKLSAgIHdpcmUgbl8xMDg7Ci0gICB3aXJlIG5fMTEwOwotICAgd2lyZSBuXzExMTsKLSAgIHdpcmUgbl8xMTM7Ci0gICB3aXJlIG5fMTE0OwotICAgd2lyZSBuXzExNTsKLSAgIHdpcmUgbl8xMTY7Ci0gICB3aXJlIG5fMTE3OwotICAgd2lyZSBuXzE4MjsKLSAgIHdpcmUgbl8xODQ7Ci0gICB3aXJlIG5fMjA0OwotICAgd2lyZSBuXzIwODsKLSAgIHdpcmUgbl8yMjQ7Ci0gICB3aXJlIG5fMjQwOwotICAgd2lyZSBuXzI1NDsKLSAgIHdpcmUgbl8yNTY7Ci0gICB3aXJlIG5fMjYwOwotICAgd2lyZSBuXzI2MTsKLSAgIHdpcmUgbl8yNjM7Ci0gICB3aXJlIG5fMjY5OwotICAgd2lyZSBuXzI3MDsKLSAgIHdpcmUgbl8yODA7Ci0gICB3aXJlIG5fMjg3OwotICAgd2lyZSBuXzI4ODsKLSAgIHdpcmUgbl8yOTM7Ci0gICB3aXJlIG5fMjk0OwotICAgd2lyZSBuXzI5NjsKLSAgIHdpcmUgbl8zMDM7Ci0gICB3aXJlIG5fMzA4OwotICAgd2lyZSBuXzMwOTsKLSAgIHdpcmUgbl8zMTY7Ci0gICB3aXJlIG5fMzE3OwotICAgd2lyZSBuXzM5MjsKLSAgIHdpcmUgbl8zOTQ7Ci0gICB3aXJlIG5fMzk2OwotICAgd2lyZSBuXzQwMTsKLSAgIHdpcmUgbl80MDI7Ci0gICB3aXJlIG5fNDA1OwotICAgd2lyZSBuXzQwODsKLSAgIHdpcmUgbl80MTA7Ci0gICB3aXJlIG5fNDEyOwotICAgd2lyZSBuXzQxNDsKLSAgIHdpcmUgbl80MTU7Ci0gICB3aXJlIG5fNDE3OwotICAgd2lyZSBuXzQxODsKLSAgIHdpcmUgbl80MjA7Ci0gICB3aXJlIG5fNDIyOwotICAgd2lyZSBuXzQyNDsKLSAgIHdpcmUgbl80MjU7Ci0gICB3aXJlIG5fNDI3OwotICAgd2lyZSBuXzQyODsKLSAgIHdpcmUgbl80MzE7Ci0gICB3aXJlIG5fNDMzOwotICAgd2lyZSBuXzQzNTsKLSAgIHdpcmUgbl80MzY7Ci0gICB3aXJlIG5fNDM4OwotICAgd2lyZSBuXzQzOTsKLSAgIHdpcmUgbl80NDA7Ci0gICB3aXJlIG5fNDQxOwotICAgd2lyZSBuXzQ0MjsKLSAgIHdpcmUgbl80NDM7Ci0gICB3aXJlIG5fNDQ0OwotICAgd2lyZSBuXzQ0NTsKLSAgIHdpcmUgbl80NDY7Ci0gICB3aXJlIG5fNDQ3OwotICAgd2lyZSBuXzQ0ODsKLSAgIHdpcmUgbl80NDk7Ci0gICB3aXJlIG5fNDUwOwotICAgd2lyZSBuXzQ1MTsKLSAgIHdpcmUgbl80NjE7Ci0gICB3aXJlIG5fNDYyOwotICAgd2lyZSBuXzQ2MzsKLSAgIHdpcmUgbl80NjQ7Ci0gICB3aXJlIG5fNDY1OwotICAgd2lyZSBuXzQ2NjsKLSAgIHdpcmUgbl80Njc7Ci0gICB3aXJlIG5fNDY4OwotICAgd2lyZSBuXzQ2OTsKLSAgIHdpcmUgbl80NzA7Ci0gICB3aXJlIG5fNDcxOwotICAgd2lyZSBuXzQ3MjsKLQotICAgT1IyWDIgZzI3MDUgKC5ZKG5fMzE3KSwgCi0JLkIobl8zOTIpLCAKLQkuQShuXzEwNikpOwotICAgQU5EMlgxIGcyNzA2ICguWShuXzMxNiksIAotCS5CKG5fMzkyKSwgCi0JLkEobl8xMDYpKTsKLSAgIE9SMlgyIGcyNzIyICguWShuXzMwOSksIAotCS5CKG5fMzk0KSwgCi0JLkEobl8xMDgpKTsKLSAgIEFORDJYMSBnMjcyMyAoLlkobl8zMDgpLCAKLQkuQihuXzM5NCksIAotCS5BKG5fMTA4KSk7Ci0gICBDTEtJTlZYMSBnMjcyOSAoLlkobl8zMDMpLCAKLQkuQShuXzM5NikpOwotICAgT1IyWDIgZzI3NDIgKC5ZKG5fMjk2KSwgCi0JLkIobl81KSwgCi0JLkEobl83MykpOwotICAgT1IyWDIgZzI3NTQgKC5ZKG5fMjk0KSwgCi0JLkIobl8yOTMpLCAKLQkuQShuXzcwKSk7Ci0gICBBTkQyWDEgZzI3NTYgKC5ZKG5fMjkzKSwgCi0JLkIobl80NjYpLCAKLQkuQShBWzI0XSkpOwotICAgT1IyWDIgZzI3NjcgKC5ZKG5fMjg4KSwgCi0JLkIobl80MDEpLCAKLQkuQShBWzIzXSkpOwotICAgQU5EMlgxIGcyNzY4ICguWShuXzI4NyksIAotCS5CKG5fNDAxKSwgCi0JLkEoQVsyM10pKTsKLSAgIENMS0lOVlgxIGcyNzc4ICguWShuXzI4MCksIAotCS5BKG5fNDAyKSk7Ci0gICBBTkQyWDEgZzI3OTQgKC5ZKG5fMjcwKSwgCi0JLkIobl80MDUpLCAKLQkuQShuXzEwMikpOwotICAgT1IyWDEgZzI3OTUgKC5ZKG5fMjY5KSwgCi0JLkIobl80MDUpLCAKLQkuQShuXzEwMikpOwotICAgT1IyWDIgZzI4MDkgKC5ZKG5fMjYzKSwgCi0JLkIobl8yMyksIAotCS5BKG5fNjApKTsKLSAgIEFORDJYMSBnMjgxOCAoLlkobl8yNjEpLCAKLQkuQihuXzQ2MSksIAotCS5BKG5fMjYpKTsKLSAgIEFORDJYMSBnMjgyMCAoLlkobl8yNjApLCAKLQkuQihuXzU4KSwgCi0JLkEobl8yNikpOwotICAgQU5EMlgxIGcyODMwICguWShuXzI1NiksIAotCS5CKG5fNDYyKSwgCi0JLkEobl8yOSkpOwotICAgQU5EMlgxIGcyODMzICguWShuXzI1NCksIAotCS5CKG5fMjkpLCAKLQkuQShuXzU2KSk7Ci0gICBDTEtJTlZYMSBnMjg1NSAoLlkobl8yNDApLCAKLQkuQShuXzQxNSkpOwotICAgQ0xLSU5WWDIgZzI4ODEgKC5ZKG5fMjI0KSwgCi0JLkEobl80MjIpKTsKLSAgIENMS0lOVlgyIGcyOTA3ICguWShuXzIwOCksIAotCS5BKG5fNDcyKSk7Ci0gICBPUjJYMiBnMjkxNCAoLlkobl8yMDQpLCAKLQkuQihuXzIyKSwgCi0JLkEobl80MykpOwotICAgQU5EMlgyIGcyOTU1ICguWShuXzE4NCksIAotCS5CKG5fNDYzKSwgCi0JLkEobl8yKSk7Ci0gICBBTkQyWDEgZzI5NTggKC5ZKG5fMTgyKSwgCi0JLkIobl8zMSksIAotCS5BKG5fMikpOwotICAgT1IyWDEgZzI5NzUgKC5ZKFpbMF0pLCAKLQkuQihuXzIxKSwgCi0JLkEobl8xNCkpOwotICAgQ0xLSU5WWDEgZzMwNTIgKC5ZKG5fMTE3KSwgCi0JLkEoQVs3XSkpOwotICAgQ0xLSU5WWDEgZzMwNTcgKC5ZKG5fMTE2KSwgCi0JLkEoQVs4XSkpOwotICAgQ0xLSU5WWDEgZzMwNjAgKC5ZKG5fMTE1KSwgCi0JLkEoQlsxMF0pKTsKLSAgIENMS0lOVlgxIGczMDY2ICguWShuXzExNCksIAotCS5BKEFbMjddKSk7Ci0gICBDTEtJTlZYMSBnMzA2OSAoLlkobl8xMTMpLCAKLQkuQShBWzldKSk7Ci0gICBDTEtJTlZYMSBnMzA3MiAoLlkobl8xMTEpLCAKLQkuQShCWzIzXSkpOwotICAgQ0xLSU5WWDEgZzMwNzQgKC5ZKG5fMTEwKSwgCi0JLkEoQVsxOV0pKTsKLSAgIENMS0lOVlgxIGczMDc2ICguWShuXzEwOCksIAotCS5BKEFbMjhdKSk7Ci0gICBDTEtJTlZYMSBnMzA3NyAoLlkobl8xMDcpLCAKLQkuQShCWzExXSkpOwotICAgQ0xLSU5WWDEgZzMwNzggKC5ZKG5fMTA2KSwgCi0JLkEoQVszMF0pKTsKLSAgIENMS0lOVlgxIGczMDgwICguWShuXzEwNSksIAotCS5BKEJbMjJdKSk7Ci0gICBDTEtJTlZYMSBnMzA4NCAoLlkobl8xMDQpLCAKLQkuQShBWzVdKSk7Ci0gICBDTEtJTlZYMSBnMzA4NiAoLlkobl8xMDMpLCAKLQkuQShBWzEzXSkpOwotICAgQ0xLSU5WWDEgZzMwODcgKC5ZKG5fMTAyKSwgCi0JLkEoQVsyMF0pKTsKLSAgIENMS0lOVlgxIGczMDkxICguWShuXzEwMSksIAotCS5BKEFbMTVdKSk7Ci0gICBDTEtJTlZYMSBnMzA5MiAoLlkobl8xMDApLCAKLQkuQShCWzZdKSk7Ci0gICBDTEtJTlZYMSBnMzA5MyAoLlkobl85OSksIAotCS5BKEJbMjVdKSk7Ci0gICBDTEtJTlZYMSBnMzA5NyAoLlkobl85OCksIAotCS5BKEFbNF0pKTsKLSAgIENMS0lOVlgxIGczMDk5ICguWShuXzk3KSwgCi0JLkEoQlsxMl0pKTsKLSAgIENMS0lOVlgxIGczMTAyICguWShuXzk2KSwgCi0JLkEoQVsyXSkpOwotICAgQ0xLSU5WWDEgZzMxMDUgKC5ZKG5fOTQpLCAKLQkuQShCWzI2XSkpOwotICAgQ0xLSU5WWDEgZzMxMDggKC5ZKG5fOTMpLCAKLQkuQShBWzNdKSk7Ci0gICBDTEtJTlZYMSBnMzExMCAoLlkobl85MiksIAotCS5BKEFbMjFdKSk7Ci0gICBDTEtJTlZYMSBnMzExMiAoLlkobl85MSksIAotCS5BKEFbMjldKSk7Ci0gICBDTEtJTlZYMSBnMzExMyAoLlkobl85MCksIAotCS5BKEFbMTRdKSk7Ci0gICBOQU5EMkJYNCBnMzEyMyAoLlkobl84MCksIAotCS5CKG5fMzE3KSwgCi0JLkFOKG5fMzE2KSk7Ci0gICBOQU5EMkJYNCBnMzEyNiAoLlkobl83NyksIAotCS5CKG5fMzA5KSwgCi0JLkFOKG5fMzA4KSk7Ci0gICBOT1IyQlg0IGczMTMwICguWShuXzczKSwgCi0JLkIobl80NzApLCAKLQkuQU4oQVsyNV0pKTsKLSAgIE5PUjJYMSBnMzEzMyAoLlkobl83MCksIAotCS5CKG5fNDY2KSwgCi0JLkEoQVsyNF0pKTsKLSAgIE5BTkQyQlg0IGczMTM1ICguWShuXzY4KSwgCi0JLkIobl8yODgpLCAKLQkuQU4obl8yODcpKTsKLSAgIE5PUjJCWDQgZzMxMzkgKC5ZKG5fNjQpLCAKLQkuQihuXzI3MCksIAotCS5BTihuXzI2OSkpOwotICAgTk9SMkJYNCBnMzE0MyAoLlkobl82MCksIAotCS5CKG5fMjYxKSwgCi0JLkFOKEFbMThdKSk7Ci0gICBOQU5EMkJYNCBnMzE0NSAoLlkobl81OCksIAotCS5CKG5fMjU2KSwgCi0JLkFOKEFbMTddKSk7Ci0gICBOQU5EMkJYNCBnMzE0NyAoLlkobl81NiksIAotCS5CKG5fNDA4KSwgCi0JLkFOKEFbMTZdKSk7Ci0gICBOT1IyQlg0IGczMTYwICguWShuXzQzKSwgCi0JLkIobl80MzEpLCAKLQkuQU4oQVs2XSkpOwotICAgTkFORDJCWDQgZzMxNzIgKC5ZKG5fMzEpLCAKLQkuQihuXzIxKSwgCi0JLkFOKEFbMV0pKTsKLSAgIE5BTkQyQlgxIGczMTc0ICguWShuXzI5KSwgCi0JLkIoQVsxNl0pLCAKLQkuQU4obl80MDgpKTsKLSAgIE5BTkQyQlgxIGczMTc3ICguWShuXzI2KSwgCi0JLkIoQVsxN10pLCAKLQkuQU4obl8yNTYpKTsKLSAgIE5PUjJCWDEgZzMxODAgKC5ZKG5fMjMpLCAKLQkuQihBWzE4XSksIAotCS5BTihuXzI2MSkpOwotICAgTk9SMkJYMSBnMzE4MSAoLlkobl8yMiksIAotCS5CKEFbNl0pLCAKLQkuQU4obl80MzEpKTsKLSAgIE5PUjJCWDEgZzMxODIgKC5ZKG5fMjEpLCAKLQkuQihBWzBdKSwgCi0JLkFOKEJbMF0pKTsKLSAgIE5PUjJCWDEgZzMxODkgKC5ZKG5fMTQpLCAKLQkuQihCWzBdKSwgCi0JLkFOKEFbMF0pKTsKLSAgIE5PUjJCWDEgZzMxOTggKC5ZKG5fNSksIAotCS5CKEFbMjVdKSwgCi0JLkFOKG5fNDcwKSk7Ci0gICBOQU5EMkJYMSBnMzIwMSAoLlkobl8yKSwgCi0JLkIoQVsxXSksIAotCS5BTihuXzIxKSk7Ci0gICBYT1IyWDQgZzMyMDYgKC5ZKFpbMzBdKSwgCi0JLkIoQlszMF0pLCAKLQkuQShuXzgwKSk7Ci0gICBBRERGSFg0IGczMjA3ICguUygpLCAKLQkuQ08obl8zOTIpLCAKLQkuQ0kobl80NjUpLCAKLQkuQihCWzI5XSksIAotCS5BKG5fOTEpKTsKLSAgIFhOT1IyWDQgZzMyMDggKC5ZKFpbMjldKSwgCi0JLkIobl80NjUpLCAKLQkuQShuXzQ0NykpOwotICAgQURERkhYNCBnMzIwOSAoLlMoKSwgCi0JLkNPKG5fMzk0KSwgCi0JLkNJKG5fMzAzKSwgCi0JLkIoQlsyN10pLCAKLQkuQShuXzExNCkpOwotICAgQ0xLTVgyWDEyIGczMjEwICguWShaWzI3XSksIAotCS5TMChuXzQ0OCksIAotCS5CKG5fMzAzKSwgCi0JLkEobl8zOTYpKTsKLSAgIEFEREZIWDQgZzMyMTEgKC5TKCksIAotCS5DTyhuXzM5NiksIAotCS5DSShuXzQ2OSksIAotCS5CKG5fOTQpLCAKLQkuQShBWzI2XSkpOwotICAgWE9SMlg0IGczMjEyICguWShaWzI2XSksIAotCS5CKG5fNDY5KSwgCi0JLkEobl80NDkpKTsKLSAgIENMS01YMlgxMiBnMzIxMyAoLlkoWlsyNV0pLCAKLQkuUzAobl8yOTYpLCAKLQkuQihuXzk5KSwgCi0JLkEoQlsyNV0pKTsKLSAgIENMS01YMlgxMiBnMzIxNCAoLlkoWlsyM10pLCAKLQkuUzAobl82OCksIAotCS5CKG5fMTExKSwgCi0JLkEoQlsyM10pKTsKLSAgIFhPUjJYNCBnMzIxNSAoLlkoWlsyMl0pLCAKLQkuQihBWzIyXSksIAotCS5BKG5fNDY3KSk7Ci0gICBBRERGSFg0IGczMjE2ICguUygpLCAKLQkuQ08obl80MDEpLCAKLQkuQ0kobl8yODApLCAKLQkuQihuXzEwNSksIAotCS5BKEFbMjJdKSk7Ci0gICBBRERGSFg0IGczMjE3ICguUygpLCAKLQkuQ08obl80MDIpLCAKLQkuQ0kobl80NjgpLCAKLQkuQihCWzIxXSksIAotCS5BKG5fOTIpKTsKLSAgIFhOT1IyWDQgZzMyMTggKC5ZKFpbMjFdKSwgCi0JLkIobl80NjgpLCAKLQkuQShuXzQ1MCkpOwotICAgWE5PUjJYNCBnMzIxOSAoLlkoWlsyMF0pLCAKLQkuQihuXzY0KSwgCi0JLkEoQlsyMF0pKTsKLSAgIEFEREZIWDQgZzMyMjAgKC5TKCksIAotCS5DTyhuXzQwNSksIAotCS5DSShuXzQ3MSksIAotCS5CKEJbMTldKSwgCi0JLkEobl8xMTApKTsKLSAgIFhOT1IyWDQgZzMyMjEgKC5ZKFpbMTldKSwgCi0JLkIobl80NzEpLCAKLQkuQShuXzQ1MSkpOwotICAgWE5PUjJYNCBnMzIyMiAoLlkoWlsxNV0pLCAKLQkuQihuXzQxMCksIAotCS5BKG5fNDQwKSk7Ci0gICBBRERGSFg0IGczMjIzICguUygpLCAKLQkuQ08obl80MDgpLCAKLQkuQ0kobl80MTApLCAKLQkuQihCWzE1XSksIAotCS5BKG5fMTAxKSk7Ci0gICBYTk9SMlg0IGczMjI0ICguWShaWzE0XSksIAotCS5CKG5fNDEyKSwgCi0JLkEobl80NDEpKTsKLSAgIEFEREZIWDQgZzMyMjUgKC5TKCksIAotCS5DTyhuXzQxMCksIAotCS5DSShuXzQxMiksIAotCS5CKEJbMTRdKSwgCi0JLkEobl85MCkpOwotICAgQ0xLTVgyWDEyIGczMjI2ICguWShaWzEzXSksIAotCS5TMChuXzQ0MiksIAotCS5CKG5fMjQwKSwgCi0JLkEobl80MTUpKTsKLSAgIEFEREZIWDQgZzMyMjcgKC5TKCksIAotCS5DTyhuXzQxMiksIAotCS5DSShuXzI0MCksIAotCS5CKEJbMTNdKSwgCi0JLkEobl8xMDMpKTsKLSAgIFhPUjJYNCBnMzIyOCAoLlkoWlsxMl0pLCAKLQkuQihBWzEyXSksIAotCS5BKG5fNDE0KSk7Ci0gICBDTEtNWDJYMTIgZzMyMjkgKC5ZKG5fNDE0KSwgCi0JLlMwKG5fNDE4KSwgCi0JLkIoQlsxMl0pLCAKLQkuQShuXzk3KSk7Ci0gICBBRERGSFg0IGczMjMwICguUygpLCAKLQkuQ08obl80MTUpLCAKLQkuQ0kobl80MTgpLCAKLQkuQihuXzk3KSwgCi0JLkEoQVsxMl0pKTsKLSAgIFhOT1IyWDQgZzMyMzEgKC5ZKFpbMTFdKSwgCi0JLkIobl80MTcpLCAKLQkuQShBWzExXSkpOwotICAgQ0xLTVgyWDEyIGczMjMyICguWShuXzQxNyksIAotCS5TMChuXzQyMCksIAotCS5CKG5fMTA3KSwgCi0JLkEoQlsxMV0pKTsKLSAgIEFEREZIWDQgZzMyMzMgKC5TKCksIAotCS5DTyhuXzQxOCksIAotCS5DSShuXzQyMCksIAotCS5CKG5fMTA3KSwgCi0JLkEoQVsxMV0pKTsKLSAgIENMS01YMlgxMiBnMzIzNCAoLlkoWlsxMF0pLCAKLQkuUzAobl80NDMpLCAKLQkuQihuXzQyMiksIAotCS5BKG5fMjI0KSk7Ci0gICBBRERGSFg0IGczMjM1ICguUygpLCAKLQkuQ08obl80MjApLCAKLQkuQ0kobl8yMjQpLCAKLQkuQihuXzExNSksIAotCS5BKEFbMTBdKSk7Ci0gICBYTk9SMlg0IGczMjM2ICguWShaWzldKSwgCi0JLkIobl80MjUpLCAKLQkuQShuXzQ0NCkpOwotICAgQURERkhYNCBnMzIzNyAoLlMoKSwgCi0JLkNPKG5fNDIyKSwgCi0JLkNJKG5fNDI1KSwgCi0JLkIoQls5XSksIAotCS5BKG5fMTEzKSk7Ci0gICBDTEtNWDJYMTIgZzMyMzggKC5ZKFpbOF0pLCAKLQkuUzAobl80MjQpLCAKLQkuQihBWzhdKSwgCi0JLkEobl8xMTYpKTsKLSAgIFhOT1IyWDQgZzMyMzkgKC5ZKG5fNDI0KSwgCi0JLkIoQls4XSksIAotCS5BKG5fNDI4KSk7Ci0gICBBRERGSFg0IGczMjQwICguUygpLCAKLQkuQ08obl80MjUpLCAKLQkuQ0kobl80MjgpLCAKLQkuQihCWzhdKSwgCi0JLkEobl8xMTYpKTsKLSAgIENMS01YMlgxMiBnMzI0MSAoLlkoWls3XSksIAotCS5TMChuXzQyNyksIAotCS5CKEFbN10pLCAKLQkuQShuXzExNykpOwotICAgQ0xLTVgyWDEyIGczMjQyICguWShuXzQyNyksIAotCS5TMChCWzddKSwgCi0JLkIobl8yMDgpLCAKLQkuQShuXzQ3MikpOwotICAgQURERkhYNCBnMzI0MyAoLlMoKSwgCi0JLkNPKG5fNDI4KSwgCi0JLkNJKG5fMjA4KSwgCi0JLkIoQls3XSksIAotCS5BKG5fMTE3KSk7Ci0gICBDTEtNWDJYMTIgZzMyNDQgKC5ZKFpbNl0pLCAKLQkuUzAobl8yMDQpLCAKLQkuQihuXzEwMCksIAotCS5BKEJbNl0pKTsKLSAgIFhOT1IyWDQgZzMyNDUgKC5ZKFpbNV0pLCAKLQkuQihuXzQzMyksIAotCS5BKG5fNDQ1KSk7Ci0gICBBRERGSFg0IGczMjQ2ICguUygpLCAKLQkuQ08obl80MzEpLCAKLQkuQ0kobl80MzMpLCAKLQkuQihCWzVdKSwgCi0JLkEobl8xMDQpKTsKLSAgIFhOT1IyWDQgZzMyNDcgKC5ZKFpbNF0pLCAKLQkuQihuXzQzNiksIAotCS5BKG5fNDQ2KSk7Ci0gICBBRERGSFg0IGczMjQ4ICguUygpLCAKLQkuQ08obl80MzMpLCAKLQkuQ0kobl80MzYpLCAKLQkuQihCWzRdKSwgCi0JLkEobl85OCkpOwotICAgQ0xLTVgyWDEyIGczMjQ5ICguWShaWzNdKSwgCi0JLlMwKG5fNDM1KSwgCi0JLkIobl85MyksIAotCS5BKEFbM10pKTsKLSAgIFhPUjJYNCBnMzI1MCAoLlkobl80MzUpLCAKLQkuQihuXzQzOSksIAotCS5BKEJbM10pKTsKLSAgIEFEREZIWDQgZzMyNTEgKC5TKCksIAotCS5DTyhuXzQzNiksIAotCS5DSShuXzQzOSksIAotCS5CKEJbM10pLCAKLQkuQShuXzkzKSk7Ci0gICBDTEtNWDJYMTIgZzMyNTIgKC5ZKFpbMl0pLCAKLQkuUzAobl80MzgpLCAKLQkuQihuXzk2KSwgCi0JLkEoQVsyXSkpOwotICAgWE9SMlg0IGczMjUzICguWShuXzQzOCksIAotCS5CKG5fMTg0KSwgCi0JLkEoQlsyXSkpOwotICAgQURERkhYNCBnMzI1NCAoLlMoKSwgCi0JLkNPKG5fNDM5KSwgCi0JLkNJKG5fMTg0KSwgCi0JLkIoQlsyXSksIAotCS5BKG5fOTYpKTsKLSAgIENMS01YMlgxMiBnMzI1NSAoLlkobl80NDApLCAKLQkuUzAoQlsxNV0pLCAKLQkuQihBWzE1XSksIAotCS5BKG5fMTAxKSk7Ci0gICBDTEtNWDJYMTIgZzMyNTYgKC5ZKG5fNDQxKSwgCi0JLlMwKEJbMTRdKSwgCi0JLkIoQVsxNF0pLCAKLQkuQShuXzkwKSk7Ci0gICBDTEtNWDJYMTIgZzMyNTcgKC5ZKG5fNDQyKSwgCi0JLlMwKEJbMTNdKSwgCi0JLkIoQVsxM10pLCAKLQkuQShuXzEwMykpOwotICAgQ0xLTVgyWDEyIGczMjU4ICguWShuXzQ0MyksIAotCS5TMChBWzEwXSksIAotCS5CKEJbMTBdKSwgCi0JLkEobl8xMTUpKTsKLSAgIENMS01YMlgxMiBnMzI1OSAoLlkobl80NDQpLCAKLQkuUzAoQls5XSksIAotCS5CKEFbOV0pLCAKLQkuQShuXzExMykpOwotICAgQ0xLTVgyWDEyIGczMjYwICguWShuXzQ0NSksIAotCS5TMChCWzVdKSwgCi0JLkIoQVs1XSksIAotCS5BKG5fMTA0KSk7Ci0gICBDTEtNWDJYMTIgZzMyNjEgKC5ZKG5fNDQ2KSwgCi0JLlMwKEJbNF0pLCAKLQkuQihBWzRdKSwgCi0JLkEobl85OCkpOwotICAgQ0xLTVgyWDEyIGczMjYyICguWShuXzQ0NyksIAotCS5TMChCWzI5XSksIAotCS5CKEFbMjldKSwgCi0JLkEobl85MSkpOwotICAgQ0xLTVgyWDEyIGczMjYzICguWShuXzQ0OCksIAotCS5TMChCWzI3XSksIAotCS5CKEFbMjddKSwgCi0JLkEobl8xMTQpKTsKLSAgIENMS01YMlgxMiBnMzI2NCAoLlkobl80NDkpLCAKLQkuUzAoQVsyNl0pLCAKLQkuQihCWzI2XSksIAotCS5BKG5fOTQpKTsKLSAgIENMS01YMlgxMiBnMzI2NSAoLlkobl80NTApLCAKLQkuUzAoQlsyMV0pLCAKLQkuQihBWzIxXSksIAotCS5BKG5fOTIpKTsKLSAgIENMS01YMlgxMiBnMzI2NiAoLlkobl80NTEpLCAKLQkuUzAoQlsxOV0pLCAKLQkuQihBWzE5XSksIAotCS5BKG5fMTEwKSk7Ci0gICBYTk9SMlg0IGczMjY5ICguWShaWzE3XSksIAotCS5CKG5fMjYwKSwgCi0JLkEoQlsxN10pKTsKLSAgIFhOT1IyWDQgZzMyNzAgKC5ZKFpbMTZdKSwgCi0JLkIobl8yNTQpLCAKLQkuQShCWzE2XSkpOwotICAgWE5PUjJYNCBnMzI3MSAoLlkoWlsxXSksIAotCS5CKG5fMTgyKSwgCi0JLkEoQlsxXSkpOwotICAgWE9SMlg0IGczMjcyICguWShaWzI4XSksIAotCS5CKG5fNzcpLCAKLQkuQShCWzI4XSkpOwotICAgWE9SMlg0IGczMjczICguWShaWzI0XSksIAotCS5CKG5fMjk0KSwgCi0JLkEoQlsyNF0pKTsKLSAgIFhPUjJYNCBnMiAoLlkoWlsxOF0pLCAKLQkuQihuXzI2MyksIAotCS5BKEJbMThdKSk7Ci0gICBOQU5EMkJYNCBnMzI3NCAoLlkobl80NjEpLCAKLQkuQihuXzU4KSwgCi0JLkFOKEJbMTddKSk7Ci0gICBOQU5EMkJYNCBnMzI3NSAoLlkobl80NjIpLCAKLQkuQihuXzU2KSwgCi0JLkFOKEJbMTZdKSk7Ci0gICBOQU5EMkJYNCBnMzI3NiAoLlkobl80NjMpLCAKLQkuQihuXzMxKSwgCi0JLkFOKEJbMV0pKTsKLSAgIE9BMjFYNCBnMzI3NyAoLlkobl80NjQpLCAKLQkuQjAobl8zMTcpLCAKLQkuQTEobl8zMTYpLCAKLQkuQTAoQlszMF0pKTsKLSAgIE9BMjFYNCBnMzI3OCAoLlkobl80NjUpLCAKLQkuQjAobl8zMDkpLCAKLQkuQTEobl8zMDgpLCAKLQkuQTAoQlsyOF0pKTsKLSAgIE9BMjFYNCBnMzI3OSAoLlkobl80NjYpLCAKLQkuQjAobl8yODgpLCAKLQkuQTEobl8yODcpLCAKLQkuQTAobl8xMTEpKTsKLSAgIEFPMjJYNCBnMzI4MCAoLlkobl80NjcpLCAKLQkuQjEobl80MDIpLCAKLQkuQjAobl8xMDUpLCAKLQkuQTEobl8yODApLCAKLQkuQTAoQlsyMl0pKTsKLSAgIE9BMjFYNCBnMzI4MSAoLlkobl80NjgpLCAKLQkuQjAobl8yNjkpLCAKLQkuQTEobl8yNzApLCAKLQkuQTAoQlsyMF0pKTsKLSAgIEFPSTJCQjFYNCBnMzI4MiAoLlkobl80NjkpLCAKLQkuQjAobl81KSwgCi0JLkExTihuXzczKSwgCi0JLkEwTihuXzk5KSk7Ci0gICBBT0kyQkIxWDQgZzMyODMgKC5ZKG5fNDcwKSwgCi0JLkIwKG5fMjkzKSwgCi0JLkExTihuXzcwKSwgCi0JLkEwTihCWzI0XSkpOwotICAgQU9JMkJCMVg0IGczMjg0ICguWShuXzQ3MSksIAotCS5CMChuXzYwKSwgCi0JLkExTihuXzIzKSwgCi0JLkEwTihCWzE4XSkpOwotICAgQU9JMkJCMVg0IGczMjg1ICguWShuXzQ3MiksIAotCS5CMChuXzIyKSwgCi0JLkExTihuXzQzKSwgCi0JLkEwTihuXzEwMCkpOwotICAgWE9SM1gxIGczMjg2ICguWShaWzMxXSksIAotCS5DKEFbMzFdKSwgCi0JLkIobl80NjQpLCAKLQkuQShCWzMxXSkpOwotZW5kbW9kdWxlCi0KLW1vZHVsZSBhbHVfMzIgKAotCW92bSwgCi0Jb3BfYSwgCi0Jb3BfYiwgCi0JcmVzdWx0LCAKLQljbWQpOwotICAgaW5wdXQgb3ZtOwotICAgaW5wdXQgWzMxOjBdIG9wX2E7Ci0gICBpbnB1dCBbMzE6MF0gb3BfYjsKLSAgIG91dHB1dCBbMzI6MF0gcmVzdWx0OwotICAgaW5wdXQgWzM6MF0gY21kOwotCi0gICAvLyBJbnRlcm5hbCB3aXJlcwotICAgd2lyZSBVTkNPTk5FQ1RFRDsKLSAgIHdpcmUgVU5DT05ORUNURUQwOwotICAgd2lyZSBuXzE7Ci0gICB3aXJlIG5fMTA7Ci0gICB3aXJlIG5fMzU7Ci0gICB3aXJlIG5fMzc7Ci0gICB3aXJlIG5fNDQ7Ci0gICB3aXJlIG5fNTM7Ci0gICB3aXJlIG5fNjA7Ci0gICB3aXJlIG5fNjE7Ci0gICB3aXJlIG5fNjM7Ci0gICB3aXJlIG5fNzI7Ci0gICB3aXJlIG5fOTI7Ci0gICB3aXJlIG5fMTA5OwotICAgd2lyZSBuXzExMDsKLSAgIHdpcmUgbl8xMjk7Ci0gICB3aXJlIG5fMTQxOwotICAgd2lyZSBuXzE0MjsKLSAgIHdpcmUgbl8xNDY7Ci0gICB3aXJlIG5fMTQ3OwotICAgd2lyZSBuXzE0ODsKLSAgIHdpcmUgbl8xNDk7Ci0gICB3aXJlIG5fMTU0OwotICAgd2lyZSBuXzE1NTsKLSAgIHdpcmUgbl8xNTg7Ci0gICB3aXJlIG5fMjI5OwotICAgd2lyZSBuXzMyNjsKLSAgIHdpcmUgbl8zMjc7Ci0gICB3aXJlIG5fMzI4OwotICAgd2lyZSBuXzMyOTsKLSAgIHdpcmUgbl8zMzA7Ci0gICB3aXJlIG5fMzMxOwotICAgd2lyZSBuXzMzMjsKLSAgIHdpcmUgbl8zMzM7Ci0gICB3aXJlIG5fMzM0OwotICAgd2lyZSBuXzMzNTsKLSAgIHdpcmUgbl8zMzY7Ci0gICB3aXJlIG5fMzM3OwotICAgd2lyZSBuXzMzODsKLSAgIHdpcmUgbl8zMzk7Ci0gICB3aXJlIG5fMzQwOwotICAgd2lyZSBuXzM0MjsKLSAgIHdpcmUgbl8zNDM7Ci0gICB3aXJlIG5fMzQ0OwotICAgd2lyZSBuXzM0NTsKLSAgIHdpcmUgbl8zNDY7Ci0gICB3aXJlIG5fMzQ3OwotICAgd2lyZSBuXzM0ODsKLSAgIHdpcmUgbl8zNDk7Ci0gICB3aXJlIG5fMzUwOwotICAgd2lyZSBuXzM1MTsKLSAgIHdpcmUgbl8zNTI7Ci0gICB3aXJlIG5fMzUzOwotICAgd2lyZSBuXzM1NDsKLSAgIHdpcmUgbl8zNTU7Ci0gICB3aXJlIG5fMzU2OwotICAgd2lyZSBuXzM1NzsKLSAgIHdpcmUgbl8zNjA7Ci0gICB3aXJlIG5fMzYzOwotICAgd2lyZSBuXzM2NjsKLSAgIHdpcmUgbl8zNzA7Ci0gICB3aXJlIG5fMzczOwotICAgd2lyZSBuXzM3NDsKLSAgIHdpcmUgbl8zNzU7Ci0gICB3aXJlIG5fMzc2OwotICAgd2lyZSBuXzM3NzsKLSAgIHdpcmUgbl8zNzg7Ci0gICB3aXJlIG5fMzc5OwotICAgd2lyZSBuXzM4MDsKLSAgIHdpcmUgbl8zODE7Ci0gICB3aXJlIG5fMzgyOwotICAgd2lyZSBuXzM4MzsKLSAgIHdpcmUgbl8zODQ7Ci0gICB3aXJlIG5fMzg1OwotICAgd2lyZSBuXzM4NjsKLSAgIHdpcmUgbl8zODc7Ci0gICB3aXJlIG5fMzg4OwotICAgd2lyZSBuXzM4OTsKLSAgIHdpcmUgbl8zOTA7Ci0gICB3aXJlIG5fMzkxOwotICAgd2lyZSBuXzM5MjsKLSAgIHdpcmUgbl8zOTM7Ci0gICB3aXJlIG5fMzk0OwotICAgd2lyZSBuXzM5NTsKLSAgIHdpcmUgbl8zOTY7Ci0gICB3aXJlIG5fMzk3OwotICAgd2lyZSBuXzM5ODsKLSAgIHdpcmUgbl8zOTk7Ci0gICB3aXJlIG5fNDAwOwotICAgd2lyZSBuXzQwMTsKLSAgIHdpcmUgbl80MDI7Ci0gICB3aXJlIG5fNDAzOwotICAgd2lyZSBuXzU5MTsKLSAgIHdpcmUgbl81OTI7Ci0gICB3aXJlIG5fNTkzOwotICAgd2lyZSBuXzU5NDsKLSAgIHdpcmUgbl81OTU7Ci0gICB3aXJlIG5fNTk2OwotICAgd2lyZSBuXzU5NzsKLSAgIHdpcmUgbl81OTg7Ci0gICB3aXJlIG5fNTk5OwotICAgd2lyZSBuXzYwMDsKLSAgIHdpcmUgbl82MDE7Ci0gICB3aXJlIG5fNjAyOwotICAgd2lyZSBuXzYwMzsKLSAgIHdpcmUgbl82MDQ7Ci0gICB3aXJlIG5fNjA1OwotICAgd2lyZSBuXzYwNjsKLSAgIHdpcmUgbl82MDc7Ci0gICB3aXJlIG5fNjA5OwotICAgd2lyZSBuXzYxMDsKLSAgIHdpcmUgbl82MTE7Ci0gICB3aXJlIG5fNjEyOwotICAgd2lyZSBuXzYxMzsKLSAgIHdpcmUgbl82MTQ7Ci0gICB3aXJlIG5fNjE1OwotICAgd2lyZSBuXzYxNjsKLSAgIHdpcmUgbl82MTc7Ci0gICB3aXJlIG5fNjUyOwotICAgd2lyZSBuXzY1MzsKLSAgIHdpcmUgbl82NTQ7Ci0gICB3aXJlIG5fNjU1OwotICAgd2lyZSBuXzY5MjsKLSAgIHdpcmUgbl82OTM7Ci0gICB3aXJlIG5fNjk0OwotICAgd2lyZSBuXzY5NTsKLSAgIHdpcmUgbl82OTY7Ci0gICB3aXJlIG5fNjk3OwotICAgd2lyZSBuXzY5ODsKLSAgIHdpcmUgbl82OTk7Ci0gICB3aXJlIG5fNzAwOwotICAgd2lyZSBuXzcwMTsKLSAgIHdpcmUgbl83MDI7Ci0gICB3aXJlIG5fNzAzOwotICAgd2lyZSBuXzcwNDsKLSAgIHdpcmUgbl83MDU7Ci0gICB3aXJlIG5fNzA2OwotICAgd2lyZSBuXzcwNzsKLSAgIHdpcmUgbl83MDg7Ci0gICB3aXJlIG5fNzA5OwotICAgd2lyZSBuXzcxMDsKLSAgIHdpcmUgbl83MTE7Ci0gICB3aXJlIG5fNzEyOwotICAgd2lyZSBuXzcxMzsKLSAgIHdpcmUgbl83MTQ7Ci0gICB3aXJlIG5fNzE1OwotICAgd2lyZSBuXzcxNjsKLSAgIHdpcmUgbl83MTc7Ci0gICB3aXJlIG5fNzE4OwotICAgd2lyZSBuXzcxOTsKLSAgIHdpcmUgbl83MjA7Ci0gICB3aXJlIG5fNzIxOwotICAgd2lyZSBuXzcyMjsKLSAgIHdpcmUgbl83MjM7Ci0gICB3aXJlIG5fNzI0OwotICAgd2lyZSBuXzcyNTsKLSAgIHdpcmUgbl83MjY7Ci0gICB3aXJlIG5fNzI3OwotICAgd2lyZSBuXzcyODsKLSAgIHdpcmUgbl83Mjk7Ci0gICB3aXJlIG5fNzMwOwotICAgd2lyZSBuXzczMTsKLSAgIHdpcmUgbl83MzI7Ci0gICB3aXJlIG5fNzMzOwotICAgd2lyZSBuXzczNDsKLSAgIHdpcmUgbl83MzU7Ci0gICB3aXJlIG5fNzM2OwotICAgd2lyZSBuXzczNzsKLSAgIHdpcmUgbl83Mzg7Ci0gICB3aXJlIG5fNzM5OwotICAgd2lyZSBuXzc0MDsKLSAgIHdpcmUgbl83NDE7Ci0gICB3aXJlIG5fNzQyOwotICAgd2lyZSBuXzc0MzsKLSAgIHdpcmUgbl83NDQ7Ci0gICB3aXJlIG5fNzQ1OwotICAgd2lyZSBuXzc0NjsKLSAgIHdpcmUgbl83NDc7Ci0gICB3aXJlIG5fNzQ4OwotICAgd2lyZSBuXzc0OTsKLSAgIHdpcmUgbl83NTA7Ci0gICB3aXJlIG5fNzUxOwotICAgd2lyZSBuXzc1MjsKLSAgIHdpcmUgbl83NTM7Ci0gICB3aXJlIG5fNzU0OwotICAgd2lyZSBuXzc1NTsKLSAgIHdpcmUgbl83NTY7Ci0gICB3aXJlIG5fNzU3OwotICAgd2lyZSBuXzc1ODsKLSAgIHdpcmUgbl83NTk7Ci0gICB3aXJlIG5fNzYwOwotICAgd2lyZSBuXzc2MTsKLSAgIHdpcmUgbl83NjI7Ci0gICB3aXJlIG5fNzYzOwotICAgd2lyZSBuXzc2NDsKLSAgIHdpcmUgbl83NjU7Ci0gICB3aXJlIG5fNzY2OwotICAgd2lyZSBuXzc2NzsKLSAgIHdpcmUgbl83Njg7Ci0gICB3aXJlIG5fNzY5OwotICAgd2lyZSBuXzc3MDsKLSAgIHdpcmUgbl83NzE7Ci0gICB3aXJlIG5fNzcyOwotICAgd2lyZSBuXzc3MzsKLSAgIHdpcmUgbl83NzQ7Ci0gICB3aXJlIG5fNzc1OwotICAgd2lyZSBuXzc3NjsKLSAgIHdpcmUgbl83Nzc7Ci0gICB3aXJlIG5fNzc4OwotICAgd2lyZSBuXzc3OTsKLSAgIHdpcmUgbl83ODA7Ci0gICB3aXJlIG5fNzgxOwotICAgd2lyZSBuXzc4MjsKLSAgIHdpcmUgbl83ODM7Ci0gICB3aXJlIG5fNzg0OwotICAgd2lyZSBuXzc4NTsKLSAgIHdpcmUgbl83ODY7Ci0gICB3aXJlIG5fNzg4OwotICAgd2lyZSBuXzc5MDsKLSAgIHdpcmUgbl83OTI7Ci0gICB3aXJlIG5fNzk0OwotICAgd2lyZSBuXzc5NjsKLSAgIHdpcmUgbl83OTg7Ci0gICB3aXJlIG5fODAwOwotICAgd2lyZSBuXzgwMjsKLSAgIHdpcmUgbl84MDQ7Ci0gICB3aXJlIG5fODA2OwotICAgd2lyZSBuXzgwODsKLSAgIHdpcmUgbl84MTA7Ci0gICB3aXJlIG5fODEyOwotICAgd2lyZSBuXzgxNDsKLSAgIHdpcmUgbl84MTY7Ci0gICB3aXJlIG5fODE3OwotICAgd2lyZSBuXzgxODsKLSAgIHdpcmUgbl84MjA7Ci0gICB3aXJlIG5fODIyOwotICAgd2lyZSBuXzgyNDsKLSAgIHdpcmUgbl84MjY7Ci0gICB3aXJlIG5fODI4OwotICAgd2lyZSBuXzgzMDsKLSAgIHdpcmUgbl84MzI7Ci0gICB3aXJlIG5fODM0OwotICAgd2lyZSBuXzgzNjsKLSAgIHdpcmUgbl84Mzg7Ci0gICB3aXJlIG5fODQwOwotICAgd2lyZSBuXzg0MjsKLSAgIHdpcmUgbl84NDQ7Ci0gICB3aXJlIG5fODQ2OwotICAgd2lyZSBuXzg0ODsKLSAgIHdpcmUgbl85MTE7Ci0gICB3aXJlIG5fOTEyOwotICAgd2lyZSBuXzkxNDsKLSAgIHdpcmUgbl85MTY7Ci0gICB3aXJlIG5fOTE4OwotICAgd2lyZSBuXzkyMDsKLSAgIHdpcmUgbl85MjI7Ci0gICB3aXJlIG5fOTI0OwotICAgd2lyZSBuXzkyNjsKLSAgIHdpcmUgbl85Mjg7Ci0gICB3aXJlIG5fOTMwOwotICAgd2lyZSBuXzkzMjsKLSAgIHdpcmUgbl85MzQ7Ci0gICB3aXJlIG5fOTM2OwotICAgd2lyZSBuXzkzODsKLSAgIHdpcmUgbl85NDA7Ci0gICB3aXJlIG5fOTQyOwotICAgd2lyZSBuXzk0NDsKLSAgIHdpcmUgbl85NDY7Ci0gICB3aXJlIG5fOTQ4OwotICAgd2lyZSBuXzk0OTsKLSAgIHdpcmUgbl85NTA7Ci0gICB3aXJlIG5fOTUyOwotICAgd2lyZSBuXzk1NDsKLSAgIHdpcmUgbl85NTY7Ci0gICB3aXJlIG5fOTU4OwotICAgd2lyZSBuXzk2MDsKLSAgIHdpcmUgbl85NjI7Ci0gICB3aXJlIG5fOTY0OwotICAgd2lyZSBuXzk2NjsKLSAgIHdpcmUgbl85Njg7Ci0gICB3aXJlIG5fOTcwOwotICAgd2lyZSBuXzk3MjsKLSAgIHdpcmUgbl85NzQ7Ci0gICB3aXJlIG5fOTc3OwotICAgd2lyZSBuXzk3OTsKLSAgIHdpcmUgbl85ODI7Ci0gICB3aXJlIG5fOTgzOwotICAgd2lyZSBuXzk4NDsKLSAgIHdpcmUgbl85ODU7Ci0gICB3aXJlIG5fOTg2OwotICAgd2lyZSBuXzk4NzsKLSAgIHdpcmUgbl85ODg7Ci0gICB3aXJlIG5fOTg5OwotICAgd2lyZSBuXzk5MDsKLSAgIHdpcmUgbl85OTE7Ci0gICB3aXJlIG5fOTkyOwotICAgd2lyZSBuXzk5NDsKLSAgIHdpcmUgbl85OTU7Ci0gICB3aXJlIG5fOTk2OwotICAgd2lyZSBuXzk5NzsKLSAgIHdpcmUgbl85OTg7Ci0gICB3aXJlIG5fOTk5OwotICAgd2lyZSBuXzEwMDE7Ci0gICB3aXJlIG5fMTAwMjsKLSAgIHdpcmUgbl8xMDAzOwotICAgd2lyZSBuXzEwMDQ7Ci0gICB3aXJlIG5fMTAwNTsKLSAgIHdpcmUgbl8xMDA2OwotICAgd2lyZSBuXzEwMDc7Ci0gICB3aXJlIG5fMTAwODsKLSAgIHdpcmUgbl8xMDA5OwotICAgd2lyZSBuXzEwMTA7Ci0gICB3aXJlIG5fMTAxMTsKLSAgIHdpcmUgbl8xMDEyOwotICAgd2lyZSBuXzEwMTM7Ci0gICB3aXJlIG5fMTAxNDsKLSAgIHdpcmUgbl8xMDE1OwotICAgd2lyZSBuXzEwMTY7Ci0gICB3aXJlIG5fMTAxNzsKLSAgIHdpcmUgbl8xMDE4OwotICAgd2lyZSBuXzEwMTk7Ci0gICB3aXJlIG5fMTAyMDsKLSAgIHdpcmUgbl8xMDIxOwotICAgd2lyZSBuXzEwMjI7Ci0gICB3aXJlIG5fMTAyMzsKLSAgIHdpcmUgbl8xMDI0OwotICAgd2lyZSBuXzEwMjU7Ci0gICB3aXJlIG5fMTAyNjsKLSAgIHdpcmUgbl8xMDI3OwotICAgd2lyZSBuXzEwMjg7Ci0gICB3aXJlIG5fMTAyOTsKLSAgIHdpcmUgbl8xMDMwOwotICAgd2lyZSBuXzEwMzE7Ci0gICB3aXJlIG5fMTAzMjsKLSAgIHdpcmUgbl8xMDMzOwotICAgd2lyZSBuXzEwMzQ7Ci0gICB3aXJlIG5fMTAzNTsKLSAgIHdpcmUgbl8xMDM2OwotICAgd2lyZSBuXzEwMzc7Ci0gICB3aXJlIG5fMTAzODsKLSAgIHdpcmUgbl8xMDM5OwotICAgd2lyZSBuXzEwNDA7Ci0gICB3aXJlIG5fMTA0MTsKLSAgIHdpcmUgbl8xMDQyOwotICAgd2lyZSBuXzEwNDM7Ci0gICB3aXJlIG5fMTA0NDsKLSAgIHdpcmUgbl8xMDQ1OwotICAgd2lyZSBuXzEwNDY7Ci0gICB3aXJlIG5fMTA0NzsKLSAgIHdpcmUgbl8xMDQ4OwotICAgd2lyZSBuXzEwNDk7Ci0gICB3aXJlIG5fMTA1MDsKLSAgIHdpcmUgbl8xMDUxOwotICAgd2lyZSBuXzEwNTI7Ci0gICB3aXJlIG5fMTA1MzsKLSAgIHdpcmUgbl8xMDU0OwotICAgd2lyZSBuXzEwNTU7Ci0gICB3aXJlIG5fMTA1NjsKLSAgIHdpcmUgbl8xMDU3OwotICAgd2lyZSBuXzEwNTg7Ci0gICB3aXJlIG5fMTA1OTsKLSAgIHdpcmUgbl8xMDYwOwotICAgd2lyZSBuXzEwNjE7Ci0gICB3aXJlIG5fMTA2MjsKLSAgIHdpcmUgbl8xMDYzOwotICAgd2lyZSBuXzEwNjU7Ci0gICB3aXJlIG5fMTA2NjsKLQotICAgYWRkX3Vuc2lnbmVkXzI4MjMgYWRkXzgxXzIyICguQShvcF9hKSwgCi0JLkIob3BfYiksIAotCS5aKHsgbl83ODQsCi0JCW5fNzUwLAotCQluXzc0NSwKLQkJbl83MjksCi0JCW5fNzM1LAotCQluXzczNywKLQkJbl83NDcsCi0JCW5fNzQxLAotCQluXzczMSwKLQkJbl83NDMsCi0JCW5fNzI3LAotCQluXzcyMywKLQkJbl83MzksCi0JCW5fNzI1LAotCQluXzczMywKLQkJbl83ODEsCi0JCW5fNzc5LAotCQluXzc3NywKLQkJbl83NzUsCi0JCW5fNzczLAotCQluXzc3MSwKLQkJbl83NjksCi0JCW5fNzY3LAotCQluXzc2NSwKLQkJbl83NjMsCi0JCW5fNzYxLAotCQluXzc1OSwKLQkJbl83NTcsCi0JCW5fNzU1LAotCQluXzc1MywKLQkJbl83NTEsCi0JCW5fNzQ5IH0pKTsKLSAgIGluY3JlbWVudF91bnNpZ25lZCBpbmNfYWRkXzU0XzI3ICguQSh7IG5fNDQsCi0JCW5fNjE3LAotCQluXzYwMywKLQkJbl82MTYsCi0JCW5fNjAsCi0JCW5fNjAyLAotCQluXzU5NywKLQkJbl82MTUsCi0JCW5fNjExLAotCQluXzYwNywKLQkJbl82NTIsCi0JCW5fNjUzLAotCQluXzYwMCwKLQkJbl81OTYsCi0JCW5fNTkzLAotCQluXzYxNCwKLQkJbl82MTIsCi0JCW5fNjEwLAotCQluXzYwOSwKLQkJbl82MDYsCi0JCW5fNjA1LAotCQluXzY1NCwKLQkJbl82MDQsCi0JCW5fNjU1LAotCQluXzYwMSwKLQkJbl81OTksCi0JCW5fNTk4LAotCQluXzU5NSwKLQkJbl81OTQsCi0JCW5fNTkyLAotCQluXzU5MSwKLQkJbl82MTMgfSksIAotCS5DSSgxJ2IxKSwgCi0JLlooeyBVTkNPTk5FQ1RFRCwKLQkJbl83ODMsCi0JCW5fNzg1LAotCQluXzc0NiwKLQkJbl83MzAsCi0JCW5fNzM2LAotCQluXzczOCwKLQkJbl83NDgsCi0JCW5fNzQyLAotCQluXzczMiwKLQkJbl83NDQsCi0JCW5fNzI4LAotCQluXzcyNCwKLQkJbl83NDAsCi0JCW5fNzI2LAotCQluXzczNCwKLQkJbl83ODIsCi0JCW5fNzgwLAotCQluXzc3OCwKLQkJbl83NzYsCi0JCW5fNzc0LAotCQluXzc3MiwKLQkJbl83NzAsCi0JCW5fNzY4LAotCQluXzc2NiwKLQkJbl83NjQsCi0JCW5fNzYyLAotCQluXzc2MCwKLQkJbl83NTgsCi0JCW5fNzU2LAotCQluXzc1NCwKLQkJbl83NTIsCi0JCVVOQ09OTkVDVEVEMCB9KSk7Ci0gICBzdWJfdW5zaWduZWRfMjgyNSBzdWJfODRfMjIgKC5BKG9wX2EpLCAKLQkuQihvcF9iKSwgCi0JLlooeyBuXzc4NiwKLQkJbl83MDYsCi0JCW5fNzA0LAotCQluXzcwMywKLQkJbl83MDIsCi0JCW5fNzAxLAotCQluXzcwMCwKLQkJbl82OTksCi0JCW5fNjk4LAotCQluXzY5NywKLQkJbl82OTYsCi0JCW5fNjk1LAotCQluXzY5NCwKLQkJbl82OTMsCi0JCW5fNjkyLAotCQluXzcyMiwKLQkJbl83MjEsCi0JCW5fNzIwLAotCQluXzcxOSwKLQkJbl83MTgsCi0JCW5fNzE3LAotCQluXzcxNiwKLQkJbl83MTUsCi0JCW5fNzE0LAotCQluXzcxMywKLQkJbl83MTIsCi0JCW5fNzExLAotCQluXzcxMCwKLQkJbl83MDksCi0JCW5fNzA4LAotCQluXzcwNywKLQkJbl83MDUgfSkpOwotICAgQ0xLSU5WWDIgZzE0MTAgKC5ZKG5fNjEzKSwgCi0JLkEob3BfYVswXSkpOwotICAgQ0xLSU5WWDIgZzE0MTEgKC5ZKG5fNTkxKSwgCi0JLkEob3BfYVsxXSkpOwotICAgQ0xLSU5WWDIgZzE0MTIgKC5ZKG5fNTkyKSwgCi0JLkEob3BfYVsyXSkpOwotICAgQ0xLSU5WWDIgZzE0MTMgKC5ZKG5fNTk0KSwgCi0JLkEob3BfYVszXSkpOwotICAgQ0xLSU5WWDIgZzE0MTQgKC5ZKG5fNTk1KSwgCi0JLkEob3BfYVs0XSkpOwotICAgQ0xLSU5WWDIgZzE0MTUgKC5ZKG5fNTk4KSwgCi0JLkEob3BfYVs1XSkpOwotICAgQ0xLSU5WWDIgZzE0MTYgKC5ZKG5fNTk5KSwgCi0JLkEob3BfYVs2XSkpOwotICAgQ0xLSU5WWDIgZzE0MTcgKC5ZKG5fNjAxKSwgCi0JLkEob3BfYVs3XSkpOwotICAgQ0xLSU5WWDIgZzE0MTggKC5ZKG5fNjU1KSwgCi0JLkEob3BfYVs4XSkpOwotICAgQ0xLSU5WWDIgZzE0MTkgKC5ZKG5fNjA0KSwgCi0JLkEob3BfYVs5XSkpOwotICAgQ0xLSU5WWDIgZzE0MjAgKC5ZKG5fNjU0KSwgCi0JLkEob3BfYVsxMF0pKTsKLSAgIENMS0lOVlgyIGcxNDIxICguWShuXzYwNSksIAotCS5BKG9wX2FbMTFdKSk7Ci0gICBDTEtJTlZYMiBnMTQyMiAoLlkobl82MDYpLCAKLQkuQShvcF9hWzEyXSkpOwotICAgQ0xLSU5WWDIgZzE0MjMgKC5ZKG5fNjA5KSwgCi0JLkEob3BfYVsxM10pKTsKLSAgIENMS0lOVlgyIGcxNDI0ICguWShuXzYxMCksIAotCS5BKG9wX2FbMTRdKSk7Ci0gICBDTEtJTlZYMiBnMTQyNSAoLlkobl82MTIpLCAKLQkuQShvcF9hWzE1XSkpOwotICAgQ0xLSU5WWDIgZzE0MjYgKC5ZKG5fNjE0KSwgCi0JLkEob3BfYVsxNl0pKTsKLSAgIENMS0lOVlgyIGcxNDI3ICguWShuXzU5MyksIAotCS5BKG9wX2FbMTddKSk7Ci0gICBDTEtJTlZYMiBnMTQyOCAoLlkobl81OTYpLCAKLQkuQShvcF9hWzE4XSkpOwotICAgQ0xLSU5WWDIgZzE0MjkgKC5ZKG5fNjAwKSwgCi0JLkEob3BfYVsxOV0pKTsKLSAgIENMS0lOVlgyIGcxNDMwICguWShuXzY1MyksIAotCS5BKG9wX2FbMjBdKSk7Ci0gICBDTEtJTlZYMiBnMTQzMSAoLlkobl82NTIpLCAKLQkuQShvcF9hWzIxXSkpOwotICAgQ0xLSU5WWDIgZzE0MzIgKC5ZKG5fNjA3KSwgCi0JLkEob3BfYVsyMl0pKTsKLSAgIENMS0lOVlgyIGcxNDMzICguWShuXzYxMSksIAotCS5BKG9wX2FbMjNdKSk7Ci0gICBDTEtJTlZYMiBnMTQzNCAoLlkobl82MTUpLCAKLQkuQShvcF9hWzI0XSkpOwotICAgQ0xLSU5WWDIgZzE0MzUgKC5ZKG5fNTk3KSwgCi0JLkEob3BfYVsyNV0pKTsKLSAgIENMS0lOVlgyIGcxNDM2ICguWShuXzYwMiksIAotCS5BKG9wX2FbMjZdKSk7Ci0gICBDTEtJTlZYMiBnMTQzNyAoLlkobl82MCksIAotCS5BKG9wX2FbMjddKSk7Ci0gICBDTEtJTlZYMiBnMTQzOCAoLlkobl82MTYpLCAKLQkuQShvcF9hWzI4XSkpOwotICAgQ0xLSU5WWDIgZzE0MzkgKC5ZKG5fNjAzKSwgCi0JLkEob3BfYVsyOV0pKTsKLSAgIENMS0lOVlgyIGcxNDQwICguWShuXzYxNyksIAotCS5BKG9wX2FbMzBdKSk7Ci0gICBBTkQyWDEgZzU5ODUgKC5ZKG5fNDAzKSwgCi0JLkIobl8zNzApLCAKLQkuQShuXzc0MSkpOwotICAgQU5EMlgxIGc1OTg2ICguWShuXzQwMiksIAotCS5CKG5fMzcwKSwgCi0JLkEobl83NjkpKTsKLSAgIEFORDJYMSBnNTk4NyAoLlkobl80MDEpLCAKLQkuQihuXzM3MCksIAotCS5BKG5fNzY3KSk7Ci0gICBBTkQyWDEgZzU5ODggKC5ZKG5fNDAwKSwgCi0JLkIobl8zNzApLCAKLQkuQShuXzczMSkpOwotICAgQU5EMlgxIGc1OTg5ICguWShuXzM5OSksIAotCS5CKG5fMzcwKSwgCi0JLkEobl83NTApKTsKLSAgIEFORDJYMSBnNTk5MCAoLlkobl8zOTgpLCAKLQkuQihuXzM3MCksIAotCS5BKG5fNzY1KSk7Ci0gICBBTkQyWDEgZzU5OTEgKC5ZKG5fMzk3KSwgCi0JLkIobl8zNzApLCAKLQkuQShuXzc2MykpOwotICAgQU5EMlgxIGc1OTkyICguWShuXzM5NiksIAotCS5CKG5fMzcwKSwgCi0JLkEobl83NDMpKTsKLSAgIEFORDJYMSBnNTk5MyAoLlkobl8zOTUpLCAKLQkuQihuXzM3MCksIAotCS5BKG5fNzYxKSk7Ci0gICBBTkQyWDEgZzU5OTQgKC5ZKG5fMzk0KSwgCi0JLkIobl8zNzApLCAKLQkuQShuXzc1OSkpOwotICAgQU5EMlgxIGc1OTk1ICguWShuXzM5MyksIAotCS5CKG5fMzcwKSwgCi0JLkEobl83MjcpKTsKLSAgIEFORDJYMSBnNTk5NiAoLlkobl8zOTIpLCAKLQkuQihuXzM3MCksIAotCS5BKG5fNzU3KSk7Ci0gICBBTkQyWDEgZzU5OTcgKC5ZKG5fMzkxKSwgCi0JLkIobl8zNzApLCAKLQkuQShuXzcyMykpOwotICAgQU5EMlgxIGc1OTk4ICguWShuXzM5MCksIAotCS5CKG5fMzcwKSwgCi0JLkEobl83NTUpKTsKLSAgIEFORDJYMSBnNTk5OSAoLlkobl8zODkpLCAKLQkuQihuXzM3MCksIAotCS5BKG5fNzQ1KSk7Ci0gICBBTkQyWDEgZzYwMDAgKC5ZKG5fMzg4KSwgCi0JLkIobl8zNzApLCAKLQkuQShuXzc1MykpOwotICAgQU5EMlgxIGc2MDAxICguWShuXzM4NyksIAotCS5CKG5fMzcwKSwgCi0JLkEobl83NTEpKTsKLSAgIEFORDJYMSBnNjAwMiAoLlkobl8zODYpLCAKLQkuQihuXzM3MCksIAotCS5BKG5fNzM5KSk7Ci0gICBBTkQyWDEgZzYwMDMgKC5ZKG5fMzg1KSwgCi0JLkIobl8zNzApLCAKLQkuQShuXzc0OSkpOwotICAgQU5EMlgxIGc2MDA0ICguWShuXzM4NCksIAotCS5CKG5fMzcwKSwgCi0JLkEobl83MjkpKTsKLSAgIEFORDJYMSBnNjAwNSAoLlkobl8zODMpLCAKLQkuQihuXzM3MCksIAotCS5BKG5fNzI1KSk7Ci0gICBBTkQyWDEgZzYwMDYgKC5ZKG5fMzgyKSwgCi0JLkIobl8zNzApLCAKLQkuQShuXzczNSkpOwotICAgQU5EMlgxIGc2MDA3ICguWShuXzM4MSksIAotCS5CKG5fMzcwKSwgCi0JLkEobl83MzMpKTsKLSAgIEFORDJYMSBnNjAwOCAoLlkobl8zODApLCAKLQkuQihuXzM3MCksIAotCS5BKG5fNzgxKSk7Ci0gICBBTkQyWDEgZzYwMDkgKC5ZKG5fMzc5KSwgCi0JLkIobl8zNzApLCAKLQkuQShuXzc3OSkpOwotICAgQU5EMlgxIGc2MDEwICguWShuXzM3OCksIAotCS5CKG5fMzcwKSwgCi0JLkEobl83MzcpKTsKLSAgIEFORDJYMSBnNjAxMSAoLlkobl8zNzcpLCAKLQkuQihuXzM3MCksIAotCS5BKG5fNzc3KSk7Ci0gICBBTkQyWDEgZzYwMTIgKC5ZKG5fMzc2KSwgCi0JLkIobl8zNzApLCAKLQkuQShuXzc3NSkpOwotICAgQU5EMlgxIGc2MDEzICguWShuXzM3NSksIAotCS5CKG5fMzcwKSwgCi0JLkEobl83NDcpKTsKLSAgIEFORDJYMSBnNjAxNCAoLlkobl8zNzQpLCAKLQkuQihuXzM3MCksIAotCS5BKG5fNzczKSk7Ci0gICBBTkQyWDEgZzYwMTUgKC5ZKG5fMzczKSwgCi0JLkIobl8zNzApLCAKLQkuQShuXzc3MSkpOwotICAgQU5EMlgyIGc2MDE5ICguWShuXzM3MCksIAotCS5CKG5fMzcpLCAKLQkuQShuXzE0OSkpOwotICAgQ0xLSU5WWDIgZzYwMjMgKC5ZKG5fMzY2KSwgCi0JLkEobl8zNykpOwotICAgQU5EMlgxIGc2MDI5ICguWShuXzM2MyksIAotCS5CKG5fMzUpLCAKLQkuQShuXzQ0KSk7Ci0gICBDTEtJTlZYNCBnNjAzMiAoLlkobl8zNjApLCAKLQkuQShuXzEwNjUpKTsKLSAgIEFORDJYMSBnNjAzNiAoLlkobl8zNTcpLCAKLQkuQihuXzMyNiksIAotCS5BKG5fNzcwKSk7Ci0gICBBTkQyWDEgZzYwMzcgKC5ZKG5fMzU2KSwgCi0JLkIobl8zMjYpLCAKLQkuQShuXzc2OCkpOwotICAgQU5EMlgxIGc2MDM4ICguWShuXzM1NSksIAotCS5CKG5fMzI2KSwgCi0JLkEobl83MzIpKTsKLSAgIEFORDJYMSBnNjAzOSAoLlkobl8zNTQpLCAKLQkuQihuXzMyNiksIAotCS5BKG5fNzg1KSk7Ci0gICBBTkQyWDEgZzYwNDAgKC5ZKG5fMzUzKSwgCi0JLkIobl8zMjYpLCAKLQkuQShuXzc2NikpOwotICAgQU5EMlgxIGc2MDQxICguWShuXzM1MiksIAotCS5CKG5fMzI2KSwgCi0JLkEobl83NjQpKTsKLSAgIEFORDJYMSBnNjA0MiAoLlkobl8zNTEpLCAKLQkuQihuXzMyNiksIAotCS5BKG5fNzQ0KSk7Ci0gICBBTkQyWDEgZzYwNDMgKC5ZKG5fMzUwKSwgCi0JLkIobl8zMjYpLCAKLQkuQShuXzc2MikpOwotICAgQU5EMlgxIGc2MDQ0ICguWShuXzM0OSksIAotCS5CKG5fMzI2KSwgCi0JLkEobl83NjApKTsKLSAgIEFORDJYMSBnNjA0NSAoLlkobl8zNDgpLCAKLQkuQihuXzMyNiksIAotCS5BKG5fNzI4KSk7Ci0gICBBTkQyWDEgZzYwNDYgKC5ZKG5fMzQ3KSwgCi0JLkIobl8zMjYpLCAKLQkuQShuXzc0NikpOwotICAgQU5EMlgxIGc2MDQ3ICguWShuXzM0NiksIAotCS5CKG5fMzI2KSwgCi0JLkEobl83NTYpKTsKLSAgIEFORDJYMSBnNjA0OSAoLlkobl8zNDUpLCAKLQkuQihuXzMyNiksIAotCS5BKG5fNzI0KSk7Ci0gICBBTkQyWDEgZzYwNTAgKC5ZKG5fMzQ0KSwgCi0JLkIobl8zMjYpLCAKLQkuQShuXzc1OCkpOwotICAgQU5EMlgxIGc2MDUxICguWShuXzM0MyksIAotCS5CKG5fMzI2KSwgCi0JLkEobl83NTQpKTsKLSAgIEFORDJYMSBnNjA1MiAoLlkobl8zNDIpLCAKLQkuQihuXzMyNiksIAotCS5BKG5fNzQwKSk7Ci0gICBBTkQyWDEgZzYwNTQgKC5ZKG5fMzQwKSwgCi0JLkIobl8zMjYpLCAKLQkuQShuXzczMCkpOwotICAgQU5EMlgxIGc2MDU1ICguWShuXzMzOSksIAotCS5CKG5fMzI2KSwgCi0JLkEobl83MjYpKTsKLSAgIEFORDJYMSBnNjA1NiAoLlkobl8zMzgpLCAKLQkuQihuXzMyNiksIAotCS5BKG5fNzM0KSk7Ci0gICBBTkQyWDEgZzYwNTcgKC5ZKG5fMzM3KSwgCi0JLkIobl8zMjYpLCAKLQkuQShuXzczNikpOwotICAgQU5EMlgxIGc2MDU4ICguWShuXzMzNiksIAotCS5CKG5fMzI2KSwgCi0JLkEobl83ODIpKTsKLSAgIEFORDJYMSBnNjA1OSAoLlkobl8zMzUpLCAKLQkuQihuXzMyNiksIAotCS5BKG5fNzgwKSk7Ci0gICBBTkQyWDEgZzYwNjAgKC5ZKG5fMzM0KSwgCi0JLkIobl8zMjYpLCAKLQkuQShuXzc1MikpOwotICAgQU5EMlgxIGc2MDYxICguWShuXzMzMyksIAotCS5CKG5fMzI2KSwgCi0JLkEobl83MzgpKTsKLSAgIEFORDJYMSBnNjA2MiAoLlkobl8zMzIpLCAKLQkuQihuXzMyNiksIAotCS5BKG5fNzc4KSk7Ci0gICBBTkQyWDEgZzYwNjMgKC5ZKG5fMzMxKSwgCi0JLkIobl8zMjYpLCAKLQkuQShuXzc3NikpOwotICAgQU5EMlgxIGc2MDY0ICguWShuXzMzMCksIAotCS5CKG5fMzI2KSwgCi0JLkEobl83NDgpKTsKLSAgIEFORDJYMSBnNjA2NSAoLlkobl8zMjkpLCAKLQkuQihuXzMyNiksIAotCS5BKG5fNzc0KSk7Ci0gICBBTkQyWDEgZzYwNjYgKC5ZKG5fMzI4KSwgCi0JLkIobl8zMjYpLCAKLQkuQShuXzc3MikpOwotICAgQU5EMlgxIGc2MDY3ICguWShuXzMyNyksIAotCS5CKG5fMzI2KSwgCi0JLkEobl83NDIpKTsKLSAgIENMS0lOVlg4IGc2MTY3ICguWShuXzIyOSksIAotCS5BKG5fOTk2KSk7Ci0gICBPUjJYMiBnNjI2MCAoLlkobl8xNTgpLCAKLQkuQihuXzE0NiksIAotCS5BKG5fMTA5KSk7Ci0gICBPUjJYMSBnNjI3NSAoLlkobl8xNTUpLCAKLQkuQihvcF9iWzMxXSksIAotCS5BKG5fMTQ3KSk7Ci0gICBPUjJYMSBnNjI3NiAoLlkobl8xNTQpLCAKLQkuQihuXzEwKSwgCi0JLkEobl83MikpOwotICAgQ0xLSU5WWDIgZzYyODIgKC5ZKG5fMTQ4KSwgCi0JLkEobl8xNDkpKTsKLSAgIEFORDJYMiBnNjI4MyAoLlkobl8xNDkpLCAKLQkuQihuXzE0MiksIAotCS5BKG5fNzIpKTsKLSAgIENMS0lOVlg4IGc2Mjg0ICguWShuXzE0NiksIAotCS5BKG5fMTQ3KSk7Ci0gICBPUjJYMiBnNjI4NSAoLlkobl8xNDcpLCAKLQkuQihuXzEyOSksIAotCS5BKGNtZFswXSkpOwotICAgQ0xLSU5WWDEgZzYyODkgKC5ZKG5fMTQyKSwgCi0JLkEobl8xNDEpKTsKLSAgIE9SMlgyIGc2MjkwICguWShuXzE0MSksIAotCS5CKGNtZFsyXSksIAotCS5BKGNtZFsxXSkpOwotICAgT1IyWDIgZzYzMDMgKC5ZKG5fMTI5KSwgCi0JLkIobl82MSksIAotCS5BKGNtZFsxXSkpOwotICAgQ0xLSU5WWDEgZzYzMjIgKC5ZKG5fMTEwKSwgCi0JLkEobl8xMDkpKTsKLSAgIEFORDJYMSBnNjMyMyAoLlkobl8xMDkpLCAKLQkuQihjbWRbMV0pLCAKLQkuQShjbWRbMF0pKTsKLSAgIEFORDJYMSBnNjM0MCAoLlkobl85MiksIAotCS5CKG5fNjE3KSwgCi0JLkEob3ZtKSk7Ci0gICBDTEtJTlZYMSBnNjM2MSAoLlkobl83MiksIAotCS5BKGNtZFswXSkpOwotICAgQ0xLSU5WWDEgZzYzNzcgKC5ZKG5fNjMpLCAKLQkuQShjbWRbMV0pKTsKLSAgIENMS0lOVlgxIGc2MzgyICguWShuXzYxKSwgCi0JLkEoY21kWzJdKSk7Ci0gICBDTEtJTlZYMSBnNjQwMCAoLlkobl81MyksIAotCS5BKG9wX2JbMzFdKSk7Ci0gICBDTEtJTlZYMyBnNjQxNSAoLlkobl80NCksIAotCS5BKG9wX2FbMzFdKSk7Ci0gICBOQU5EMlgxIGcyICguWShuXzM3KSwgCi0JLkIocmVzdWx0WzMyXSksIAotCS5BKG92bSkpOwotICAgTk9SMkJYNCBnNjQzMSAoLlkobl8zNSksIAotCS5CKG5fMTAwMiksIAotCS5BTihuXzM2MCkpOwotICAgTkFORDJCWDEgZzY0NTYgKC5ZKG5fMTApLCAKLQkuQihuXzc4NiksIAotCS5BTihuXzE0MSkpOwotICAgTkFORDJCWDEgZzY0NjUgKC5ZKG5fMSksIAotCS5CKG5fNzg0KSwgCi0JLkFOKG5fMTQ4KSk7Ci0gICBNWEkyWDEgZzMgKC5ZKG5fNzg4KSwgCi0JLlMwKG9wX2JbMjNdKSwgCi0JLkIoY21kWzFdKSwgCi0JLkEobl8xNDYpKTsKLSAgIE1YSTJYMSBnNjQ2OSAoLlkobl83OTApLCAKLQkuUzAob3BfYls5XSksIAotCS5CKGNtZFsxXSksIAotCS5BKG5fMTQ2KSk7Ci0gICBNWEkyWDEgZzY0NzEgKC5ZKG5fNzkyKSwgCi0JLlMwKG9wX2JbOF0pLCAKLQkuQihjbWRbMV0pLCAKLQkuQShuXzE0NikpOwotICAgTVhJMlgxIGc2NDczICguWShuXzc5NCksIAotCS5TMChvcF9iWzIyXSksIAotCS5CKGNtZFsxXSksIAotCS5BKG5fMTQ2KSk7Ci0gICBNWEkyWDEgZzY0NzUgKC5ZKG5fNzk2KSwgCi0JLlMwKG9wX2JbN10pLCAKLQkuQihjbWRbMV0pLCAKLQkuQShuXzE0NikpOwotICAgTVhJMlgxIGc2NDc3ICguWShuXzc5OCksIAotCS5TMChvcF9iWzZdKSwgCi0JLkIoY21kWzFdKSwgCi0JLkEobl8xNDYpKTsKLSAgIE1YSTJYMSBnNjQ3OSAoLlkobl84MDApLCAKLQkuUzAob3BfYlsxOV0pLCAKLQkuQihjbWRbMV0pLCAKLQkuQShuXzE0NikpOwotICAgTVhJMlgxIGc2NDgxICguWShuXzgwMiksIAotCS5TMChvcF9iWzI5XSksIAotCS5CKGNtZFsxXSksIAotCS5BKG5fMTQ2KSk7Ci0gICBNWEkyWDEgZzY0ODMgKC5ZKG5fODA0KSwgCi0JLlMwKG9wX2JbMjFdKSwgCi0JLkIoY21kWzFdKSwgCi0JLkEobl8xNDYpKTsKLSAgIE1YSTJYMSBnNjQ4NSAoLlkobl84MDYpLCAKLQkuUzAob3BfYls1XSksIAotCS5CKGNtZFsxXSksIAotCS5BKG5fMTQ2KSk7Ci0gICBNWEkyWDEgZzY0ODcgKC5ZKG5fODA4KSwgCi0JLlMwKG9wX2JbMjBdKSwgCi0JLkIoY21kWzFdKSwgCi0JLkEobl8xNDYpKTsKLSAgIE1YSTJYMSBnNjQ4OSAoLlkobl84MTApLCAKLQkuUzAob3BfYlszXSksIAotCS5CKGNtZFsxXSksIAotCS5BKG5fMTQ2KSk7Ci0gICBNWEkyWDEgZzY0OTEgKC5ZKG5fODEyKSwgCi0JLlMwKG9wX2JbMjhdKSwgCi0JLkIoY21kWzFdKSwgCi0JLkEobl8xNDYpKTsKLSAgIE1YSTJYMSBnNjQ5MyAoLlkobl84MTQpLCAKLQkuUzAob3BfYlsxXSksIAotCS5CKGNtZFsxXSksIAotCS5BKG5fMTQ2KSk7Ci0gICBOQU5EMkJYNCBnNjQ5NCAoLlkobl84MTcpLCAKLQkuQihuXzgxNiksIAotCS5BTihuXzIyOSkpOwotICAgTVhJMlgxIGc2NDk1ICguWShuXzgxNiksIAotCS5TMChvcF9iWzBdKSwgCi0JLkIoY21kWzFdKSwgCi0JLkEobl8xNDYpKTsKLSAgIE1YSTJYMSBnNjQ5NyAoLlkobl84MTgpLCAKLQkuUzAob3BfYlsxOF0pLCAKLQkuQihjbWRbMV0pLCAKLQkuQShuXzE0NikpOwotICAgTVhJMlgxIGc2NDk5ICguWShuXzgyMCksIAotCS5TMChvcF9iWzI3XSksIAotCS5CKGNtZFsxXSksIAotCS5BKG5fMTQ2KSk7Ci0gICBNWEkyWDEgZzY1MDEgKC5ZKG5fODIyKSwgCi0JLlMwKG9wX2JbMTddKSwgCi0JLkIoY21kWzFdKSwgCi0JLkEobl8xNDYpKTsKLSAgIE1YSTJYMSBnNjUwMyAoLlkobl84MjQpLCAKLQkuUzAob3BfYlsxNl0pLCAKLQkuQihjbWRbMV0pLCAKLQkuQShuXzE0NikpOwotICAgTVhJMlgxIGc2NTA1ICguWShuXzgyNiksIAotCS5TMChvcF9iWzI2XSksIAotCS5CKGNtZFsxXSksIAotCS5BKG5fMTQ2KSk7Ci0gICBNWEkyWDEgZzY1MDcgKC5ZKG5fODI4KSwgCi0JLlMwKG9wX2JbMTVdKSwgCi0JLkIoY21kWzFdKSwgCi0JLkEobl8xNDYpKTsKLSAgIE1YSTJYMSBnNjUwOSAoLlkobl84MzApLCAKLQkuUzAob3BfYlsxNF0pLCAKLQkuQihjbWRbMV0pLCAKLQkuQShuXzE0NikpOwotICAgTVhJMlgxIGc2NTExICguWShuXzgzMiksIAotCS5TMChvcF9iWzJdKSwgCi0JLkIoY21kWzFdKSwgCi0JLkEobl8xNDYpKTsKLSAgIE1YSTJYMSBnNjUxMyAoLlkobl84MzQpLCAKLQkuUzAob3BfYlsyNV0pLCAKLQkuQihjbWRbMV0pLCAKLQkuQShuXzE0NikpOwotICAgTVhJMlgxIGc2NTE1ICguWShuXzgzNiksIAotCS5TMChvcF9iWzEzXSksIAotCS5CKGNtZFsxXSksIAotCS5BKG5fMTQ2KSk7Ci0gICBNWEkyWDEgZzY1MTcgKC5ZKG5fODM4KSwgCi0JLlMwKG9wX2JbMTJdKSwgCi0JLkIoY21kWzFdKSwgCi0JLkEobl8xNDYpKTsKLSAgIE1YSTJYMSBnNjUxOSAoLlkobl84NDApLCAKLQkuUzAob3BfYls0XSksIAotCS5CKGNtZFsxXSksIAotCS5BKG5fMTQ2KSk7Ci0gICBNWEkyWDEgZzY1MjEgKC5ZKG5fODQyKSwgCi0JLlMwKG9wX2JbMjRdKSwgCi0JLkIoY21kWzFdKSwgCi0JLkEobl8xNDYpKTsKLSAgIE1YSTJYMSBnNjUyMyAoLlkobl84NDQpLCAKLQkuUzAob3BfYlsxMV0pLCAKLQkuQihjbWRbMV0pLCAKLQkuQShuXzE0NikpOwotICAgTVhJMlgxIGc2NTI1ICguWShuXzg0NiksIAotCS5TMChvcF9iWzMwXSksIAotCS5CKGNtZFsxXSksIAotCS5BKG5fMTQ2KSk7Ci0gICBNWEkyWDEgZzY1MjcgKC5ZKG5fODQ4KSwgCi0JLlMwKG9wX2JbMTBdKSwgCi0JLkIoY21kWzFdKSwgCi0JLkEobl8xNDYpKTsKLSAgIE9SNFg4IGc2NTI4ICguWShyZXN1bHRbMzBdKSwgCi0JLkQobl8xMDUzKSwgCi0JLkMobl8zOTkpLCAKLQkuQihuXzM1NCksIAotCS5BKG5fOTExKSk7Ci0gICBPUjRYOCBnNjUyOSAoLlkocmVzdWx0WzI5XSksIAotCS5EKG5fMTAxOSksIAotCS5DKG5fMzg5KSwgCi0JLkIobl8zNDcpLCAKLQkuQShuXzkxMSkpOwotICAgT1I0WDggZzY1MzAgKC5ZKHJlc3VsdFsyM10pLCAKLQkuRChuXzEwMDUpLCAKLQkuQyhuXzQwMCksIAotCS5CKG5fMzU1KSwgCi0JLkEobl85MTEpKTsKLSAgIE9SNFg4IGc2NTMxICguWShyZXN1bHRbMjJdKSwgCi0JLkQobl8xMDExKSwgCi0JLkMobl8zOTYpLCAKLQkuQihuXzM1MSksIAotCS5BKG5fOTExKSk7Ci0gICBPUjRYOCBnNjUzMiAoLlkocmVzdWx0WzldKSwgCi0JLkQobl8xMDA3KSwgCi0JLkMobl80MDEpLCAKLQkuQihuXzM1NiksIAotCS5BKG5fOTExKSk7Ci0gICBPUjRYOCBnNjUzMyAoLlkocmVzdWx0WzhdKSwgCi0JLkQobl8xMDA5KSwgCi0JLkMobl8zOTgpLCAKLQkuQihuXzM1MyksIAotCS5BKG5fOTExKSk7Ci0gICBPUjRYOCBnNjUzNCAoLlkocmVzdWx0WzddKSwgCi0JLkQobl8xMDEzKSwgCi0JLkMobl8zOTcpLCAKLQkuQihuXzM1MiksIAotCS5BKG5fOTExKSk7Ci0gICBPUjRYOCBnNjUzNSAoLlkocmVzdWx0WzIxXSksIAotCS5EKG5fMTAxNyksIAotCS5DKG5fMzkzKSwgCi0JLkIobl8zNDgpLCAKLQkuQShuXzkxMSkpOwotICAgT1I0WDggZzY1MzYgKC5ZKHJlc3VsdFs2XSksIAotCS5EKG5fMTAxNSksIAotCS5DKG5fMzk1KSwgCi0JLkIobl8zNTApLCAKLQkuQShuXzkxMSkpOwotICAgT1I0WDggZzY1MzcgKC5ZKHJlc3VsdFs1XSksIAotCS5EKG5fMTAyMSksIAotCS5DKG5fMzk0KSwgCi0JLkIobl8zNDkpLCAKLQkuQShuXzkxMSkpOwotICAgT1I0WDggZzY1MzggKC5ZKHJlc3VsdFsyMF0pLCAKLQkuRChuXzEwMjUpLCAKLQkuQyhuXzM5MSksIAotCS5CKG5fMzQ1KSwgCi0JLkEobl85MTEpKTsKLSAgIE9SNFg4IGc2NTM5ICguWShyZXN1bHRbNF0pLCAKLQkuRChuXzEwMjMpLCAKLQkuQyhuXzM5MiksIAotCS5CKG5fMzQ0KSwgCi0JLkEobl85MTEpKTsKLSAgIE9SNFg4IGc2NTQwICguWShyZXN1bHRbM10pLCAKLQkuRChuXzEwMjcpLCAKLQkuQyhuXzM5MCksIAotCS5CKG5fMzQ2KSwgCi0JLkEobl85MTEpKTsKLSAgIE9SNFg4IGc2NTQxICguWShyZXN1bHRbMjhdKSwgCi0JLkQobl8xMDMxKSwgCi0JLkMobl8zODQpLCAKLQkuQihuXzM0MCksIAotCS5BKG5fOTExKSk7Ci0gICBPUjRYOCBnNjU0MiAoLlkocmVzdWx0WzE5XSksIAotCS5EKG5fMTAzMyksIAotCS5DKG5fMzg2KSwgCi0JLkIobl8zNDIpLCAKLQkuQShuXzkxMSkpOwotICAgT1I0WDggZzY1NDMgKC5ZKHJlc3VsdFsyXSksIAotCS5EKG5fMTAyOSksIAotCS5DKG5fMzg4KSwgCi0JLkIobl8zNDMpLCAKLQkuQShuXzkxMSkpOwotICAgT1I0WDggZzY1NDQgKC5ZKHJlc3VsdFsxXSksIAotCS5EKG5fMTAzNSksIAotCS5DKG5fMzg3KSwgCi0JLkIobl8zMzQpLCAKLQkuQShuXzkxMSkpOwotICAgT1I0WDggZzY1NDUgKC5ZKHJlc3VsdFsyN10pLCAKLQkuRChuXzEwMzkpLCAKLQkuQyhuXzM4MiksIAotCS5CKG5fMzM3KSwgCi0JLkEobl85MTEpKTsKLSAgIE9SNFg4IGc2NTQ2ICguWShyZXN1bHRbMThdKSwgCi0JLkQobl8xMDM3KSwgCi0JLkMobl8zODMpLCAKLQkuQihuXzMzOSksIAotCS5BKG5fOTExKSk7Ci0gICBPUjRYOCBnNjU0NyAoLlkocmVzdWx0WzE3XSksIAotCS5EKG5fMTA0MSksIAotCS5DKG5fMzgxKSwgCi0JLkIobl8zMzgpLCAKLQkuQShuXzkxMSkpOwotICAgT1I0WDggZzY1NDggKC5ZKHJlc3VsdFsyNl0pLCAKLQkuRChuXzEwNDUpLCAKLQkuQyhuXzM3OCksIAotCS5CKG5fMzMzKSwgCi0JLkEobl85MTEpKTsKLSAgIE9SNFg4IGc2NTQ5ICguWShyZXN1bHRbMjVdKSwgCi0JLkQobl8xMDUxKSwgCi0JLkMobl8zNzUpLCAKLQkuQihuXzMzMCksIAotCS5BKG5fOTExKSk7Ci0gICBPUjRYOCBnNjU1MCAoLlkocmVzdWx0WzE2XSksIAotCS5EKG5fMTA0MyksIAotCS5DKG5fMzgwKSwgCi0JLkIobl8zMzYpLCAKLQkuQShuXzkxMSkpOwotICAgT1I0WDggZzY1NTEgKC5ZKHJlc3VsdFsxNV0pLCAKLQkuRChuXzEwNDcpLCAKLQkuQyhuXzM3OSksIAotCS5CKG5fMzM1KSwgCi0JLkEobl85MTEpKTsKLSAgIE9SNFg4IGc2NTUyICguWShyZXN1bHRbMTRdKSwgCi0JLkQobl8xMDQ5KSwgCi0JLkMobl8zNzcpLCAKLQkuQihuXzMzMiksIAotCS5BKG5fOTExKSk7Ci0gICBPUjRYOCBnNjU1MyAoLlkocmVzdWx0WzI0XSksIAotCS5EKG5fMTA1OSksIAotCS5DKG5fNDAzKSwgCi0JLkIobl8zMjcpLCAKLQkuQShuXzkxMSkpOwotICAgT1I0WDggZzY1NTQgKC5ZKHJlc3VsdFsxM10pLCAKLQkuRChuXzEwNTUpLCAKLQkuQyhuXzM3NiksIAotCS5CKG5fMzMxKSwgCi0JLkEobl85MTEpKTsKLSAgIE9SNFg4IGc2NTU1ICguWShyZXN1bHRbMTJdKSwgCi0JLkQobl8xMDU3KSwgCi0JLkMobl8zNzQpLCAKLQkuQihuXzMyOSksIAotCS5BKG5fOTExKSk7Ci0gICBPUjRYOCBnNjU1NiAoLlkocmVzdWx0WzExXSksIAotCS5EKG5fMTA2MSksIAotCS5DKG5fMzczKSwgCi0JLkIobl8zMjgpLCAKLQkuQShuXzkxMSkpOwotICAgT1I0WDggZzY1NTcgKC5ZKHJlc3VsdFsxMF0pLCAKLQkuRChuXzEwNjMpLCAKLQkuQyhuXzQwMiksIAotCS5CKG5fMzU3KSwgCi0JLkEobl85MTEpKTsKLSAgIE9SNFg4IGc2NTU4ICguWShyZXN1bHRbMF0pLCAKLQkuRChuXzk0OSksIAotCS5DKG5fMzg1KSwgCi0JLkIobl85NzkpLCAKLQkuQShuXzkxMSkpOwotICAgQU8yMVg0IGc2NTg5ICguWShuXzkxMSksIAotCS5CMChuXzk4MyksIAotCS5BMShuXzM2NiksIAotCS5BMChuXzM2MCkpOwotICAgQU9JMzJYNCBnNjU5MSAoLlkobl85MTIpLCAKLQkuQjEobl85NzQpLCAKLQkuQjAobl83MTYpLCAKLQkuQTIob3BfYlsxMF0pLCAKLQkuQTEobl82NTQpLCAKLQkuQTAobl8xNTgpKTsKLSAgIEFPSTMyWDQgZzY1OTMgKC5ZKG5fOTE0KSwgCi0JLkIxKG5fOTc0KSwgCi0JLkIwKG5fNzE1KSwgCi0JLkEyKG9wX2JbOV0pLCAKLQkuQTEobl82MDQpLCAKLQkuQTAobl8xNTgpKTsKLSAgIEFPSTMyWDQgZzY1OTUgKC5ZKG5fOTE2KSwgCi0JLkIxKG5fOTc0KSwgCi0JLkIwKG5fNjk4KSwgCi0JLkEyKG9wX2JbMjNdKSwgCi0JLkExKG5fNjExKSwgCi0JLkEwKG5fMTU4KSk7Ci0gICBBT0kzMlg0IGc2NTk3ICguWShuXzkxOCksIAotCS5CMShuXzk3NCksIAotCS5CMChuXzcxNCksIAotCS5BMihvcF9iWzhdKSwgCi0JLkExKG5fNjU1KSwgCi0JLkEwKG5fMTU4KSk7Ci0gICBBT0kzMlg0IGc2NTk5ICguWShuXzkyMCksIAotCS5CMShuXzk3NCksIAotCS5CMChuXzY5NyksIAotCS5BMihvcF9iWzIyXSksIAotCS5BMShuXzYwNyksIAotCS5BMChuXzE1OCkpOwotICAgQU9JMzJYNCBnNjYwMSAoLlkobl85MjIpLCAKLQkuQjEobl85NzQpLCAKLQkuQjAobl83MTMpLCAKLQkuQTIob3BfYls3XSksIAotCS5BMShuXzYwMSksIAotCS5BMChuXzE1OCkpOwotICAgQU9JMzJYNCBnNjYwMyAoLlkobl85MjQpLCAKLQkuQjEobl85NzQpLCAKLQkuQjAobl83MTIpLCAKLQkuQTIob3BfYls2XSksIAotCS5BMShuXzU5OSksIAotCS5BMChuXzE1OCkpOwotICAgQU9JMzJYNCBnNjYwNSAoLlkobl85MjYpLCAKLQkuQjEobl85NzQpLCAKLQkuQjAobl83MDYpLCAKLQkuQTIobl82MTcpLCAKLQkuQTEob3BfYlszMF0pLCAKLQkuQTAobl8xNTgpKTsKLSAgIEFPSTMyWDQgZzY2MDcgKC5ZKG5fOTI4KSwgCi0JLkIxKG5fOTc0KSwgCi0JLkIwKG5fNzExKSwgCi0JLkEyKG9wX2JbNV0pLCAKLQkuQTEobl81OTgpLCAKLQkuQTAobl8xNTgpKTsKLSAgIEFPSTMyWDQgZzY2MDkgKC5ZKG5fOTMwKSwgCi0JLkIxKG5fOTc0KSwgCi0JLkIwKG5fNjk2KSwgCi0JLkEyKG9wX2JbMjFdKSwgCi0JLkExKG5fNjUyKSwgCi0JLkEwKG5fMTU4KSk7Ci0gICBBT0kzMlg0IGc2NjExICguWShuXzkzMiksIAotCS5CMShuXzk3NCksIAotCS5CMChuXzcxMCksIAotCS5BMihvcF9iWzRdKSwgCi0JLkExKG5fNTk1KSwgCi0JLkEwKG5fMTU4KSk7Ci0gICBBT0kzMlg0IGc2NjEzICguWShuXzkzNCksIAotCS5CMShuXzk3NCksIAotCS5CMChuXzcwNCksIAotCS5BMihvcF9iWzI5XSksIAotCS5BMShuXzYwMyksIAotCS5BMChuXzE1OCkpOwotICAgQU9JMzJYNCBnNjYxNSAoLlkobl85MzYpLCAKLQkuQjEobl85NzQpLCAKLQkuQjAobl82OTUpLCAKLQkuQTIob3BfYlsyMF0pLCAKLQkuQTEobl82NTMpLCAKLQkuQTAobl8xNTgpKTsKLSAgIEFPSTMyWDQgZzY2MTcgKC5ZKG5fOTM4KSwgCi0JLkIxKG5fOTc0KSwgCi0JLkIwKG5fNzA5KSwgCi0JLkEyKG9wX2JbM10pLCAKLQkuQTEobl81OTQpLCAKLQkuQTAobl8xNTgpKTsKLSAgIEFPSTMyWDQgZzY2MTkgKC5ZKG5fOTQwKSwgCi0JLkIxKG5fOTc0KSwgCi0JLkIwKG5fNzA4KSwgCi0JLkEyKG9wX2JbMl0pLCAKLQkuQTEobl81OTIpLCAKLQkuQTAobl8xNTgpKTsKLSAgIEFPSTMyWDQgZzY2MjEgKC5ZKG5fOTQyKSwgCi0JLkIxKG5fOTc0KSwgCi0JLkIwKG5fNzAzKSwgCi0JLkEyKG9wX2JbMjhdKSwgCi0JLkExKG5fNjE2KSwgCi0JLkEwKG5fMTU4KSk7Ci0gICBBT0kzMlg0IGc2NjIzICguWShuXzk0NCksIAotCS5CMShuXzk3NCksIAotCS5CMChuXzY5NCksIAotCS5BMihvcF9iWzE5XSksIAotCS5BMShuXzYwMCksIAotCS5BMChuXzE1OCkpOwotICAgQU9JMzJYNCBnNjYyNSAoLlkobl85NDYpLCAKLQkuQjEobl85NzQpLCAKLQkuQjAobl83MDcpLCAKLQkuQTIob3BfYlsxXSksIAotCS5BMShuXzU5MSksIAotCS5BMChuXzE1OCkpOwotICAgSU5WWEwgZzY2MjYgKC5ZKG5fOTQ5KSwgCi0JLkEobl85NDgpKTsKLSAgIEFPSTMyWDQgZzY2MjcgKC5ZKG5fOTQ4KSwgCi0JLkIxKG5fOTc0KSwgCi0JLkIwKG5fNzA1KSwgCi0JLkEyKG9wX2JbMF0pLCAKLQkuQTEobl82MTMpLCAKLQkuQTAobl8xNTgpKTsKLSAgIEFPSTMyWDQgZzY2MjkgKC5ZKG5fOTUwKSwgCi0JLkIxKG5fOTc0KSwgCi0JLkIwKG5fNjkzKSwgCi0JLkEyKG9wX2JbMThdKSwgCi0JLkExKG5fNTk2KSwgCi0JLkEwKG5fMTU4KSk7Ci0gICBBT0kzMlg0IGc2NjMxICguWShuXzk1MiksIAotCS5CMShuXzk3NCksIAotCS5CMChuXzcwMiksIAotCS5BMihvcF9iWzI3XSksIAotCS5BMShuXzYwKSwgCi0JLkEwKG5fMTU4KSk7Ci0gICBBT0kzMlg0IGc2NjMzICguWShuXzk1NCksIAotCS5CMShuXzk3NCksIAotCS5CMChuXzY5MiksIAotCS5BMihvcF9iWzE3XSksIAotCS5BMShuXzU5MyksIAotCS5BMChuXzE1OCkpOwotICAgQU9JMzJYNCBnNjYzNSAoLlkobl85NTYpLCAKLQkuQjEobl85NzQpLCAKLQkuQjAobl83MjIpLCAKLQkuQTIob3BfYlsxNl0pLCAKLQkuQTEobl82MTQpLCAKLQkuQTAobl8xNTgpKTsKLSAgIEFPSTMyWDQgZzY2MzcgKC5ZKG5fOTU4KSwgCi0JLkIxKG5fOTc0KSwgCi0JLkIwKG5fNzIxKSwgCi0JLkEyKG9wX2JbMTVdKSwgCi0JLkExKG5fNjEyKSwgCi0JLkEwKG5fMTU4KSk7Ci0gICBBT0kzMlg0IGc2NjM5ICguWShuXzk2MCksIAotCS5CMShuXzk3NCksIAotCS5CMChuXzcyMCksIAotCS5BMihvcF9iWzE0XSksIAotCS5BMShuXzYxMCksIAotCS5BMChuXzE1OCkpOwotICAgQU9JMzJYNCBnNjY0MSAoLlkobl85NjIpLCAKLQkuQjEobl85NzQpLCAKLQkuQjAobl83MDEpLCAKLQkuQTIob3BfYlsyNl0pLCAKLQkuQTEobl82MDIpLCAKLQkuQTAobl8xNTgpKTsKLSAgIEFPSTMyWDQgZzY2NDMgKC5ZKG5fOTY0KSwgCi0JLkIxKG5fOTc0KSwgCi0JLkIwKG5fNzE5KSwgCi0JLkEyKG9wX2JbMTNdKSwgCi0JLkExKG5fNjA5KSwgCi0JLkEwKG5fMTU4KSk7Ci0gICBBT0kzMlg0IGc2NjQ1ICguWShuXzk2NiksIAotCS5CMShuXzk3NCksIAotCS5CMChuXzcwMCksIAotCS5BMihvcF9iWzI1XSksIAotCS5BMShuXzU5NyksIAotCS5BMChuXzE1OCkpOwotICAgQU9JMzJYNCBnNjY0NyAoLlkobl85NjgpLCAKLQkuQjEobl85NzQpLCAKLQkuQjAobl83MTgpLCAKLQkuQTIob3BfYlsxMl0pLCAKLQkuQTEobl82MDYpLCAKLQkuQTAobl8xNTgpKTsKLSAgIEFPSTMyWDQgZzY2NDkgKC5ZKG5fOTcwKSwgCi0JLkIxKG5fOTc0KSwgCi0JLkIwKG5fNzE3KSwgCi0JLkEyKG9wX2JbMTFdKSwgCi0JLkExKG5fNjA1KSwgCi0JLkEwKG5fMTU4KSk7Ci0gICBBT0kzMlg0IGc2NjUxICguWShuXzk3MiksIAotCS5CMShuXzk3NCksIAotCS5CMChuXzY5OSksIAotCS5BMihvcF9iWzI0XSksIAotCS5BMShuXzYxNSksIAotCS5BMChuXzE1OCkpOwotICAgQU5EM1g2IGc2NjUyICguWShuXzk3NCksIAotCS5DKG5fMzcpLCAKLQkuQihuXzE0MiksIAotCS5BKGNtZFswXSkpOwotICAgQU8yMlg0IGc2NjUzICguWShyZXN1bHRbMzFdKSwgCi0JLkIxKG5fMzY2KSwgCi0JLkIwKG5fMTA2NSksIAotCS5BMShuXzM3KSwgCi0JLkEwKG5fMzYwKSk7Ci0gICBPQTIxWDQgZzY2NTQgKC5ZKHJlc3VsdFszMl0pLCAKLQkuQjAobl8xNDIpLCAKLQkuQTEobl85NzcpLCAKLQkuQTAobl8zNjMpKTsKLSAgIEFORDNYNiBnNjY1NSAoLlkobl85NzcpLCAKLQkuQyhuXzEwNjUpLCAKLQkuQihuXzEwMDIpLCAKLQkuQShvcF9hWzMxXSkpOwotICAgT0EyMVg0IGc2NjU3ICguWShuXzk3OSksIAotCS5CMChvcF9hWzBdKSwgCi0JLkExKG5fMzI2KSwgCi0JLkEwKG5fODE3KSk7Ci0gICBOT1I0Qlg0IGc2NjU5ICguWShuXzMyNiksIAotCS5EKG5fOTgzKSwgCi0JLkMobl82MSksIAotCS5CKG5fMTU4KSwgCi0JLkFOKG5fMTAwMSkpOwotICAgSU5WWEwgZzY2NjAgKC5ZKG5fOTgzKSwgCi0JLkEobl85ODIpKTsKLSAgIE5BTkQ0Qlg0IGc2NjYxICguWShuXzk4MiksIAotCS5EKG5fOTg0KSwgCi0JLkMob3BfYVszMV0pLCAKLQkuQihjbWRbMF0pLCAKLQkuQU4obl8xMjkpKTsKLSAgIEFORDRYNiBnNjY2MiAoLlkobl85ODQpLCAKLQkuRChuXzk4NSksIAotCS5DKG5fNTkyKSwgCi0JLkIobl81OTEpLCAKLQkuQShuXzYxMykpOwotICAgQU5ENFg2IGc2NjYzICguWShuXzk4NSksIAotCS5EKG5fOTg2KSwgCi0JLkMobl81OTgpLCAKLQkuQihuXzU5NSksIAotCS5BKG5fNTk0KSk7Ci0gICBBTkQ0WDYgZzY2NjQgKC5ZKG5fOTg2KSwgCi0JLkQobl85ODcpLCAKLQkuQyhuXzY1NSksIAotCS5CKG5fNjAxKSwgCi0JLkEobl81OTkpKTsKLSAgIEFORDRYNiBnNjY2NSAoLlkobl85ODcpLCAKLQkuRChuXzk4OCksIAotCS5DKG5fNjA1KSwgCi0JLkIobl82NTQpLCAKLQkuQShuXzYwNCkpOwotICAgQU5ENFg2IGc2NjY2ICguWShuXzk4OCksIAotCS5EKG5fOTg5KSwgCi0JLkMobl82MTApLCAKLQkuQihuXzYwOSksIAotCS5BKG5fNjA2KSk7Ci0gICBBTkQ0WDYgZzY2NjcgKC5ZKG5fOTg5KSwgCi0JLkQobl85OTApLCAKLQkuQyhuXzU5MyksIAotCS5CKG5fNjE0KSwgCi0JLkEobl82MTIpKTsKLSAgIEFORDRYNiBnNjY2OCAoLlkobl85OTApLCAKLQkuRChuXzk5MSksIAotCS5DKG5fNjUzKSwgCi0JLkIobl82MDApLCAKLQkuQShuXzU5NikpOwotICAgQU5ENFg2IGc2NjY5ICguWShuXzk5MSksIAotCS5EKG5fOTk0KSwgCi0JLkMobl82MTEpLCAKLQkuQihuXzYwNyksIAotCS5BKG5fNjUyKSk7Ci0gICBPQUkyMTFYNCBnNjY3MSAoLlkobl85OTIpLCAKLQkuQzAobl8xNTQpLCAKLQkuQjAobl85OTUpLCAKLQkuQTEobl85OTgpLCAKLQkuQTAobl81MykpOwotICAgQU5ENFg2IGc2NjcyICguWShuXzk5NCksIAotCS5EKG5fOTk5KSwgCi0JLkMobl82MDIpLCAKLQkuQihuXzU5NyksIAotCS5BKG5fNjE1KSk7Ci0gICBBTzIxWDQgZzY2NzMgKC5ZKG5fOTk1KSwgCi0JLkIwKG5fNDQpLCAKLQkuQTEobl85OTYpLCAKLQkuQTAobl8xNTUpKTsKLSAgIE9BMjFYNCBnNjY3NCAoLlkobl85OTYpLCAKLQkuQjAobl8xMDAxKSwgCi0JLkExKG5fMTEwKSwgCi0JLkEwKGNtZFsyXSkpOwotICAgSU5WWEwgZzY2NzUgKC5ZKG5fOTk4KSwgCi0JLkEobl85OTcpKTsKLSAgIE9BSTIyMVg0IGc2Njc2ICguWShuXzk5NyksIAotCS5DMChuXzExMCksIAotCS5CMShvcF9hWzMxXSksIAotCS5CMChuXzE0NyksIAotCS5BMShuXzQ0KSwgCi0JLkEwKG5fNjMpKTsKLSAgIEFORDRYNiBnNjY3NyAoLlkobl85OTkpLCAKLQkuRChuXzkyKSwgCi0JLkMobl82MDMpLCAKLQkuQihuXzYxNiksIAotCS5BKG5fNjApKTsKLSAgIElOVlhMIGc2Njc4ICguWShuXzEwMDEpLCAKLQkuQShuXzEwMDMpKTsKLSAgIEFPMjJYNCBnNjY4MCAoLlkobl8xMDAyKSwgCi0JLkIxKG9wX2JbMzFdKSwgCi0JLkIwKG5fMTQ5KSwgCi0JLkExKG5fNTMpLCAKLQkuQTAobl8xNDgpKTsKLSAgIE9BSTMzWDQgZzY2ODEgKC5ZKG5fMTAwMyksIAotCS5CMihvcF9hWzMxXSksIAotCS5CMShuXzEyOSksIAotCS5CMChuXzcyKSwgCi0JLkEyKG5fNjEpLCAKLQkuQTEoY21kWzBdKSwgCi0JLkEwKG5fNjMpKTsKLSAgIE9BSTJCQjFYNCBnNjY4MiAoLlkobl8xMDA1KSwgCi0JLkIwKG5fOTE2KSwgCi0JLkExTihvcF9hWzIzXSksIAotCS5BME4obl8xMDA0KSk7Ci0gICBOQU5EMkJYNCBnNjY4MyAoLlkobl8xMDA0KSwgCi0JLkIobl83ODgpLCAKLQkuQU4obl8yMjkpKTsKLSAgIE9BSTJCQjFYNCBnNjY4NCAoLlkobl8xMDA3KSwgCi0JLkIwKG5fOTE0KSwgCi0JLkExTihvcF9hWzldKSwgCi0JLkEwTihuXzEwMDYpKTsKLSAgIE5BTkQyQlg0IGc2Njg1ICguWShuXzEwMDYpLCAKLQkuQihuXzc5MCksIAotCS5BTihuXzIyOSkpOwotICAgT0FJMkJCMVg0IGc2Njg2ICguWShuXzEwMDkpLCAKLQkuQjAobl85MTgpLCAKLQkuQTFOKG9wX2FbOF0pLCAKLQkuQTBOKG5fMTAwOCkpOwotICAgTkFORDJCWDQgZzY2ODcgKC5ZKG5fMTAwOCksIAotCS5CKG5fNzkyKSwgCi0JLkFOKG5fMjI5KSk7Ci0gICBPQUkyQkIxWDQgZzY2ODggKC5ZKG5fMTAxMSksIAotCS5CMChuXzkyMCksIAotCS5BMU4ob3BfYVsyMl0pLCAKLQkuQTBOKG5fMTAxMCkpOwotICAgTkFORDJCWDQgZzY2ODkgKC5ZKG5fMTAxMCksIAotCS5CKG5fNzk0KSwgCi0JLkFOKG5fMjI5KSk7Ci0gICBPQUkyQkIxWDQgZzY2OTAgKC5ZKG5fMTAxMyksIAotCS5CMChuXzkyMiksIAotCS5BMU4ob3BfYVs3XSksIAotCS5BME4obl8xMDEyKSk7Ci0gICBOQU5EMkJYNCBnNjY5MSAoLlkobl8xMDEyKSwgCi0JLkIobl83OTYpLCAKLQkuQU4obl8yMjkpKTsKLSAgIE9BSTJCQjFYNCBnNjY5MiAoLlkobl8xMDE1KSwgCi0JLkIwKG5fOTI0KSwgCi0JLkExTihvcF9hWzZdKSwgCi0JLkEwTihuXzEwMTQpKTsKLSAgIE5BTkQyQlg0IGc2NjkzICguWShuXzEwMTQpLCAKLQkuQihuXzc5OCksIAotCS5BTihuXzIyOSkpOwotICAgT0FJMkJCMVg0IGc2Njk0ICguWShuXzEwMTcpLCAKLQkuQjAobl85MzApLCAKLQkuQTFOKG9wX2FbMjFdKSwgCi0JLkEwTihuXzEwMTYpKTsKLSAgIE5BTkQyQlg0IGc2Njk1ICguWShuXzEwMTYpLCAKLQkuQihuXzgwNCksIAotCS5BTihuXzIyOSkpOwotICAgT0FJMkJCMVg0IGc2Njk2ICguWShuXzEwMTkpLCAKLQkuQjAobl85MzQpLCAKLQkuQTFOKG9wX2FbMjldKSwgCi0JLkEwTihuXzEwMTgpKTsKLSAgIE5BTkQyQlg0IGc2Njk3ICguWShuXzEwMTgpLCAKLQkuQihuXzgwMiksIAotCS5BTihuXzIyOSkpOwotICAgT0FJMkJCMVg0IGc2Njk4ICguWShuXzEwMjEpLCAKLQkuQjAobl85MjgpLCAKLQkuQTFOKG9wX2FbNV0pLCAKLQkuQTBOKG5fMTAyMCkpOwotICAgTkFORDJCWDQgZzY2OTkgKC5ZKG5fMTAyMCksIAotCS5CKG5fODA2KSwgCi0JLkFOKG5fMjI5KSk7Ci0gICBPQUkyQkIxWDQgZzY3MDAgKC5ZKG5fMTAyMyksIAotCS5CMChuXzkzMiksIAotCS5BMU4ob3BfYVs0XSksIAotCS5BME4obl8xMDIyKSk7Ci0gICBOQU5EMkJYNCBnNjcwMSAoLlkobl8xMDIyKSwgCi0JLkIobl84NDApLCAKLQkuQU4obl8yMjkpKTsKLSAgIE9BSTJCQjFYNCBnNjcwMiAoLlkobl8xMDI1KSwgCi0JLkIwKG5fOTM2KSwgCi0JLkExTihvcF9hWzIwXSksIAotCS5BME4obl8xMDI0KSk7Ci0gICBOQU5EMkJYNCBnNjcwMyAoLlkobl8xMDI0KSwgCi0JLkIobl84MDgpLCAKLQkuQU4obl8yMjkpKTsKLSAgIE9BSTJCQjFYNCBnNjcwNCAoLlkobl8xMDI3KSwgCi0JLkIwKG5fOTM4KSwgCi0JLkExTihvcF9hWzNdKSwgCi0JLkEwTihuXzEwMjYpKTsKLSAgIE5BTkQyQlg0IGc2NzA1ICguWShuXzEwMjYpLCAKLQkuQihuXzgxMCksIAotCS5BTihuXzIyOSkpOwotICAgT0FJMkJCMVg0IGc2NzA2ICguWShuXzEwMjkpLCAKLQkuQjAobl85NDApLCAKLQkuQTFOKG9wX2FbMl0pLCAKLQkuQTBOKG5fMTAyOCkpOwotICAgTkFORDJCWDQgZzY3MDcgKC5ZKG5fMTAyOCksIAotCS5CKG5fODMyKSwgCi0JLkFOKG5fMjI5KSk7Ci0gICBPQUkyQkIxWDQgZzY3MDggKC5ZKG5fMTAzMSksIAotCS5CMChuXzk0MiksIAotCS5BMU4ob3BfYVsyOF0pLCAKLQkuQTBOKG5fMTAzMCkpOwotICAgTkFORDJCWDQgZzY3MDkgKC5ZKG5fMTAzMCksIAotCS5CKG5fODEyKSwgCi0JLkFOKG5fMjI5KSk7Ci0gICBPQUkyQkIxWDQgZzY3MTAgKC5ZKG5fMTAzMyksIAotCS5CMChuXzk0NCksIAotCS5BMU4ob3BfYVsxOV0pLCAKLQkuQTBOKG5fMTAzMikpOwotICAgTkFORDJCWDQgZzY3MTEgKC5ZKG5fMTAzMiksIAotCS5CKG5fODAwKSwgCi0JLkFOKG5fMjI5KSk7Ci0gICBPQUkyQkIxWDQgZzY3MTIgKC5ZKG5fMTAzNSksIAotCS5CMChuXzk0NiksIAotCS5BMU4ob3BfYVsxXSksIAotCS5BME4obl8xMDM0KSk7Ci0gICBOQU5EMkJYNCBnNjcxMyAoLlkobl8xMDM0KSwgCi0JLkIobl84MTQpLCAKLQkuQU4obl8yMjkpKTsKLSAgIE9BSTJCQjFYNCBnNjcxNCAoLlkobl8xMDM3KSwgCi0JLkIwKG5fOTUwKSwgCi0JLkExTihvcF9hWzE4XSksIAotCS5BME4obl8xMDM2KSk7Ci0gICBOQU5EMkJYNCBnNjcxNSAoLlkobl8xMDM2KSwgCi0JLkIobl84MTgpLCAKLQkuQU4obl8yMjkpKTsKLSAgIE9BSTJCQjFYNCBnNjcxNiAoLlkobl8xMDM5KSwgCi0JLkIwKG5fOTUyKSwgCi0JLkExTihvcF9hWzI3XSksIAotCS5BME4obl8xMDM4KSk7Ci0gICBOQU5EMkJYNCBnNjcxNyAoLlkobl8xMDM4KSwgCi0JLkIobl84MjApLCAKLQkuQU4obl8yMjkpKTsKLSAgIE9BSTJCQjFYNCBnNjcxOCAoLlkobl8xMDQxKSwgCi0JLkIwKG5fOTU0KSwgCi0JLkExTihvcF9hWzE3XSksIAotCS5BME4obl8xMDQwKSk7Ci0gICBOQU5EMkJYNCBnNjcxOSAoLlkobl8xMDQwKSwgCi0JLkIobl84MjIpLCAKLQkuQU4obl8yMjkpKTsKLSAgIE9BSTJCQjFYNCBnNjcyMCAoLlkobl8xMDQzKSwgCi0JLkIwKG5fOTU2KSwgCi0JLkExTihvcF9hWzE2XSksIAotCS5BME4obl8xMDQyKSk7Ci0gICBOQU5EMkJYNCBnNjcyMSAoLlkobl8xMDQyKSwgCi0JLkIobl84MjQpLCAKLQkuQU4obl8yMjkpKTsKLSAgIE9BSTJCQjFYNCBnNjcyMiAoLlkobl8xMDQ1KSwgCi0JLkIwKG5fOTYyKSwgCi0JLkExTihvcF9hWzI2XSksIAotCS5BME4obl8xMDQ0KSk7Ci0gICBOQU5EMkJYNCBnNjcyMyAoLlkobl8xMDQ0KSwgCi0JLkIobl84MjYpLCAKLQkuQU4obl8yMjkpKTsKLSAgIE9BSTJCQjFYNCBnNjcyNCAoLlkobl8xMDQ3KSwgCi0JLkIwKG5fOTU4KSwgCi0JLkExTihvcF9hWzE1XSksIAotCS5BME4obl8xMDQ2KSk7Ci0gICBOQU5EMkJYNCBnNjcyNSAoLlkobl8xMDQ2KSwgCi0JLkIobl84MjgpLCAKLQkuQU4obl8yMjkpKTsKLSAgIE9BSTJCQjFYNCBnNjcyNiAoLlkobl8xMDQ5KSwgCi0JLkIwKG5fOTYwKSwgCi0JLkExTihvcF9hWzE0XSksIAotCS5BME4obl8xMDQ4KSk7Ci0gICBOQU5EMkJYNCBnNjcyNyAoLlkobl8xMDQ4KSwgCi0JLkIobl84MzApLCAKLQkuQU4obl8yMjkpKTsKLSAgIE9BSTJCQjFYNCBnNjcyOCAoLlkobl8xMDUxKSwgCi0JLkIwKG5fOTY2KSwgCi0JLkExTihvcF9hWzI1XSksIAotCS5BME4obl8xMDUwKSk7Ci0gICBOQU5EMkJYNCBnNjcyOSAoLlkobl8xMDUwKSwgCi0JLkIobl84MzQpLCAKLQkuQU4obl8yMjkpKTsKLSAgIE9BSTJCQjFYNCBnNjczMCAoLlkobl8xMDUzKSwgCi0JLkIwKG5fOTI2KSwgCi0JLkExTihvcF9hWzMwXSksIAotCS5BME4obl8xMDUyKSk7Ci0gICBOQU5EMkJYNCBnNjczMSAoLlkobl8xMDUyKSwgCi0JLkIobl84NDYpLCAKLQkuQU4obl8yMjkpKTsKLSAgIE9BSTJCQjFYNCBnNjczMiAoLlkobl8xMDU1KSwgCi0JLkIwKG5fOTY0KSwgCi0JLkExTihvcF9hWzEzXSksIAotCS5BME4obl8xMDU0KSk7Ci0gICBOQU5EMkJYNCBnNjczMyAoLlkobl8xMDU0KSwgCi0JLkIobl84MzYpLCAKLQkuQU4obl8yMjkpKTsKLSAgIE9BSTJCQjFYNCBnNjczNCAoLlkobl8xMDU3KSwgCi0JLkIwKG5fOTY4KSwgCi0JLkExTihvcF9hWzEyXSksIAotCS5BME4obl8xMDU2KSk7Ci0gICBOQU5EMkJYNCBnNjczNSAoLlkobl8xMDU2KSwgCi0JLkIobl84MzgpLCAKLQkuQU4obl8yMjkpKTsKLSAgIE9BSTJCQjFYNCBnNjczNiAoLlkobl8xMDU5KSwgCi0JLkIwKG5fOTcyKSwgCi0JLkExTihvcF9hWzI0XSksIAotCS5BME4obl8xMDU4KSk7Ci0gICBOQU5EMkJYNCBnNjczNyAoLlkobl8xMDU4KSwgCi0JLkIobl84NDIpLCAKLQkuQU4obl8yMjkpKTsKLSAgIE9BSTJCQjFYNCBnNjczOCAoLlkobl8xMDYxKSwgCi0JLkIwKG5fOTcwKSwgCi0JLkExTihvcF9hWzExXSksIAotCS5BME4obl8xMDYwKSk7Ci0gICBOQU5EMkJYNCBnNjczOSAoLlkobl8xMDYwKSwgCi0JLkIobl84NDQpLCAKLQkuQU4obl8yMjkpKTsKLSAgIE9BSTJCQjFYNCBnNjc0MCAoLlkobl8xMDYzKSwgCi0JLkIwKG5fOTEyKSwgCi0JLkExTihvcF9hWzEwXSksIAotCS5BME4obl8xMDYyKSk7Ci0gICBOQU5EMkJYNCBnNjc0MSAoLlkobl8xMDYyKSwgCi0JLkIobl84NDgpLCAKLQkuQU4obl8yMjkpKTsKLSAgIE5PUjNCWDQgZzY3NDIgKC5ZKG5fMTA2NSksIAotCS5DKG5fOTkyKSwgCi0JLkIobl8xMDY2KSwgCi0JLkFOKG5fMSkpOwotICAgQ0xLQU5EMlgxMiBnNjc0NCAoLlkobl8xMDY2KSwgCi0JLkIobl8zMjYpLCAKLQkuQShuXzc4MykpOwotZW5kbW9kdWxlCi0KLW1vZHVsZSBDS0xOUUQxQldQX1NQQ0FfOCAoCi0JRSwgCi0JQ1AsIAotCVRFLCAKLQlRKTsKLSAgIGlucHV0IEU7Ci0gICBpbnB1dCBDUDsKLSAgIGlucHV0IFRFOwotICAgb3V0cHV0IFE7Ci0KLSAgIFRMQVROVFNDQVgxNiBMQVRDSCAoLlNFKFRFKSwgCi0JLkVDSyhRKSwgCi0JLkUoRSksIAotCS5DSyhDUCkpOwotZW5kbW9kdWxlCi0KLW1vZHVsZSBSQ19DR19NT0RfMzI5MSAoCi0JZW5hYmxlLCAKLQlja19pbiwgCi0JY2tfb3V0LCAKLQl0ZXN0KTsKLSAgIGlucHV0IGVuYWJsZTsKLSAgIGlucHV0IGNrX2luOwotICAgb3V0cHV0IGNrX291dDsKLSAgIGlucHV0IHRlc3Q7Ci0KLSAgIENLTE5RRDFCV1BfU1BDQV84IFJDX0NHSUNfSU5TVCAoLkUoZW5hYmxlKSwgCi0JLkNQKGNrX2luKSwgCi0JLlRFKHRlc3QpLCAKLQkuUShja19vdXQpKTsKLWVuZG1vZHVsZQotCi1tb2R1bGUgU0RGQ05RRDFCV1BfU1BDQV84MiAoCi0JU0ksIAotCVNFLCAKLQlRLCAKLQlELCAKLQlDUCwgCi0JQ0ROKTsKLSAgIGlucHV0IFNJOwotICAgaW5wdXQgU0U7Ci0gICBvdXRwdXQgUTsKLSAgIGlucHV0IEQ7Ci0gICBpbnB1dCBDUDsKLSAgIGlucHV0IENETjsKLQotICAgU0RGRlJYNCBERkYgKC5TSShTSSksIAotCS5TRShTRSksIAotCS5STihDRE4pLCAKLQkuUShRKSwgCi0JLkQoRCksIAotCS5DSyhDUCkpOwotZW5kbW9kdWxlCi0KLW1vZHVsZSBSU0RGQ1NSSEQyQldQX1JFTUFQICgKLQlDRE4sIAotCVNETiwgCi0JQ1AsIAotCUQsIAotCVNJLCAKLQlTRSwgCi0JU0FWRSwgCi0JTlJFU1RPUkUsIAotCVEpOwotICAgaW5wdXQgQ0ROOwotICAgaW5wdXQgU0ROOwotICAgaW5wdXQgQ1A7Ci0gICBpbnB1dCBEOwotICAgaW5wdXQgU0k7Ci0gICBpbnB1dCBTRTsKLSAgIGlucHV0IFNBVkU7Ci0gICBpbnB1dCBOUkVTVE9SRTsKLSAgIG91dHB1dCBROwotCi0gICBTREZDTlFEMUJXUF9TUENBXzgyIHN0YXRlX3JlbWFwICguU0koU0kpLCAKLQkuU0UoU0UpLCAKLQkuUShRKSwgCi0JLkQoRCksIAotCS5DUChDUCksIAotCS5DRE4oQ0ROKSk7Ci1lbmRtb2R1bGUKLQotbW9kdWxlIFNERkNOUUQxQldQX1NQQ0FfODMgKAotCVNJLCAKLQlTRSwgCi0JUSwgCi0JRCwgCi0JQ1AsIAotCUNETik7Ci0gICBpbnB1dCBTSTsKLSAgIGlucHV0IFNFOwotICAgb3V0cHV0IFE7Ci0gICBpbnB1dCBEOwotICAgaW5wdXQgQ1A7Ci0gICBpbnB1dCBDRE47Ci0KLSAgIFNERkZSWDQgREZGICguU0koU0kpLCAKLQkuU0UoU0UpLCAKLQkuUk4oQ0ROKSwgCi0JLlEoUSksIAotCS5EKEQpLCAKLQkuQ0soQ1ApKTsKLWVuZG1vZHVsZQotCi1tb2R1bGUgUlNERkNTUkhEMkJXUF9SRU1BUF9TUENfMSAoCi0JQ0ROLCAKLQlTRE4sIAotCUNQLCAKLQlELCAKLQlTSSwgCi0JU0UsIAotCVNBVkUsIAotCU5SRVNUT1JFLCAKLQlRKTsKLSAgIGlucHV0IENETjsKLSAgIGlucHV0IFNETjsKLSAgIGlucHV0IENQOwotICAgaW5wdXQgRDsKLSAgIGlucHV0IFNJOwotICAgaW5wdXQgU0U7Ci0gICBpbnB1dCBTQVZFOwotICAgaW5wdXQgTlJFU1RPUkU7Ci0gICBvdXRwdXQgUTsKLQotICAgU0RGQ05RRDFCV1BfU1BDQV84MyBzdGF0ZV9yZW1hcCAoLlNJKFNJKSwgCi0JLlNFKFNFKSwgCi0JLlEoUSksIAotCS5EKEQpLCAKLQkuQ1AoQ1ApLCAKLQkuQ0ROKENETikpOwotZW5kbW9kdWxlCi0KLW1vZHVsZSBTREZDTlFEMUJXUF9TUENBXzg0ICgKLQlTSSwgCi0JU0UsIAotCVEsIAotCUQsIAotCUNQLCAKLQlDRE4pOwotICAgaW5wdXQgU0k7Ci0gICBpbnB1dCBTRTsKLSAgIG91dHB1dCBROwotICAgaW5wdXQgRDsKLSAgIGlucHV0IENQOwotICAgaW5wdXQgQ0ROOwotCi0gICBTREZGUlg0IERGRiAoLlNJKFNJKSwgCi0JLlNFKFNFKSwgCi0JLlJOKENETiksIAotCS5RKFEpLCAKLQkuRChEKSwgCi0JLkNLKENQKSk7Ci1lbmRtb2R1bGUKLQotbW9kdWxlIFJTREZDU1JIRDJCV1BfUkVNQVBfU1BDXzIgKAotCUNETiwgCi0JU0ROLCAKLQlDUCwgCi0JRCwgCi0JU0ksIAotCVNFLCAKLQlTQVZFLCAKLQlOUkVTVE9SRSwgCi0JUSk7Ci0gICBpbnB1dCBDRE47Ci0gICBpbnB1dCBTRE47Ci0gICBpbnB1dCBDUDsKLSAgIGlucHV0IEQ7Ci0gICBpbnB1dCBTSTsKLSAgIGlucHV0IFNFOwotICAgaW5wdXQgU0FWRTsKLSAgIGlucHV0IE5SRVNUT1JFOwotICAgb3V0cHV0IFE7Ci0KLSAgIFNERkNOUUQxQldQX1NQQ0FfODQgc3RhdGVfcmVtYXAgKC5TSShTSSksIAotCS5TRShTRSksIAotCS5RKFEpLCAKLQkuRChEKSwgCi0JLkNQKENQKSwgCi0JLkNETihDRE4pKTsKLWVuZG1vZHVsZQotCi1tb2R1bGUgU0RGQ05RRDFCV1BfU1BDQV84NSAoCi0JU0ksIAotCVNFLCAKLQlRLCAKLQlELCAKLQlDUCwgCi0JQ0ROKTsKLSAgIGlucHV0IFNJOwotICAgaW5wdXQgU0U7Ci0gICBvdXRwdXQgUTsKLSAgIGlucHV0IEQ7Ci0gICBpbnB1dCBDUDsKLSAgIGlucHV0IENETjsKLQotICAgU0RGRlJYNCBERkYgKC5TSShTSSksIAotCS5TRShTRSksIAotCS5STihDRE4pLCAKLQkuUShRKSwgCi0JLkQoRCksIAotCS5DSyhDUCkpOwotZW5kbW9kdWxlCi0KLW1vZHVsZSBSU0RGQ1NSSEQyQldQX1JFTUFQX1NQQ18zICgKLQlDRE4sIAotCVNETiwgCi0JQ1AsIAotCUQsIAotCVNJLCAKLQlTRSwgCi0JU0FWRSwgCi0JTlJFU1RPUkUsIAotCVEpOwotICAgaW5wdXQgQ0ROOwotICAgaW5wdXQgU0ROOwotICAgaW5wdXQgQ1A7Ci0gICBpbnB1dCBEOwotICAgaW5wdXQgU0k7Ci0gICBpbnB1dCBTRTsKLSAgIGlucHV0IFNBVkU7Ci0gICBpbnB1dCBOUkVTVE9SRTsKLSAgIG91dHB1dCBROwotCi0gICBTREZDTlFEMUJXUF9TUENBXzg1IHN0YXRlX3JlbWFwICguU0koU0kpLCAKLQkuU0UoU0UpLCAKLQkuUShRKSwgCi0JLkQoRCksIAotCS5DUChDUCksIAotCS5DRE4oQ0ROKSk7Ci1lbmRtb2R1bGUKLQotbW9kdWxlIFNERkNOUUQxQldQX1NQQ0FfODYgKAotCVNJLCAKLQlTRSwgCi0JUSwgCi0JRCwgCi0JQ1AsIAotCUNETik7Ci0gICBpbnB1dCBTSTsKLSAgIGlucHV0IFNFOwotICAgb3V0cHV0IFE7Ci0gICBpbnB1dCBEOwotICAgaW5wdXQgQ1A7Ci0gICBpbnB1dCBDRE47Ci0KLSAgIFNERkZSWDQgREZGICguU0koU0kpLCAKLQkuU0UoU0UpLCAKLQkuUk4oQ0ROKSwgCi0JLlEoUSksIAotCS5EKEQpLCAKLQkuQ0soQ1ApKTsKLWVuZG1vZHVsZQotCi1tb2R1bGUgUlNERkNTUkhEMkJXUF9SRU1BUF9TUENfNCAoCi0JQ0ROLCAKLQlTRE4sIAotCUNQLCAKLQlELCAKLQlTSSwgCi0JU0UsIAotCVNBVkUsIAotCU5SRVNUT1JFLCAKLQlRKTsKLSAgIGlucHV0IENETjsKLSAgIGlucHV0IFNETjsKLSAgIGlucHV0IENQOwotICAgaW5wdXQgRDsKLSAgIGlucHV0IFNJOwotICAgaW5wdXQgU0U7Ci0gICBpbnB1dCBTQVZFOwotICAgaW5wdXQgTlJFU1RPUkU7Ci0gICBvdXRwdXQgUTsKLQotICAgU0RGQ05RRDFCV1BfU1BDQV84NiBzdGF0ZV9yZW1hcCAoLlNJKFNJKSwgCi0JLlNFKFNFKSwgCi0JLlEoUSksIAotCS5EKEQpLCAKLQkuQ1AoQ1ApLCAKLQkuQ0ROKENETikpOwotZW5kbW9kdWxlCi0KLW1vZHVsZSBTREZDTlFEMUJXUF9TUENBXzg3ICgKLQlTSSwgCi0JU0UsIAotCVEsIAotCUQsIAotCUNQLCAKLQlDRE4pOwotICAgaW5wdXQgU0k7Ci0gICBpbnB1dCBTRTsKLSAgIG91dHB1dCBROwotICAgaW5wdXQgRDsKLSAgIGlucHV0IENQOwotICAgaW5wdXQgQ0ROOwotCi0gICBTREZGUlg0IERGRiAoLlNJKFNJKSwgCi0JLlNFKFNFKSwgCi0JLlJOKENETiksIAotCS5RKFEpLCAKLQkuRChEKSwgCi0JLkNLKENQKSk7Ci1lbmRtb2R1bGUKLQotbW9kdWxlIFJTREZDU1JIRDJCV1BfUkVNQVBfU1BDXzUgKAotCUNETiwgCi0JU0ROLCAKLQlDUCwgCi0JRCwgCi0JU0ksIAotCVNFLCAKLQlTQVZFLCAKLQlOUkVTVE9SRSwgCi0JUSk7Ci0gICBpbnB1dCBDRE47Ci0gICBpbnB1dCBTRE47Ci0gICBpbnB1dCBDUDsKLSAgIGlucHV0IEQ7Ci0gICBpbnB1dCBTSTsKLSAgIGlucHV0IFNFOwotICAgaW5wdXQgU0FWRTsKLSAgIGlucHV0IE5SRVNUT1JFOwotICAgb3V0cHV0IFE7Ci0KLSAgIFNERkNOUUQxQldQX1NQQ0FfODcgc3RhdGVfcmVtYXAgKC5TSShTSSksIAotCS5TRShTRSksIAotCS5RKFEpLCAKLQkuRChEKSwgCi0JLkNQKENQKSwgCi0JLkNETihDRE4pKTsKLWVuZG1vZHVsZQotCi1tb2R1bGUgU0RGQ05RRDFCV1BfU1BDQV84OCAoCi0JU0ksIAotCVNFLCAKLQlRLCAKLQlELCAKLQlDUCwgCi0JQ0ROKTsKLSAgIGlucHV0IFNJOwotICAgaW5wdXQgU0U7Ci0gICBvdXRwdXQgUTsKLSAgIGlucHV0IEQ7Ci0gICBpbnB1dCBDUDsKLSAgIGlucHV0IENETjsKLQotICAgU0RGRlJYNCBERkYgKC5TSShTSSksIAotCS5TRShTRSksIAotCS5STihDRE4pLCAKLQkuUShRKSwgCi0JLkQoRCksIAotCS5DSyhDUCkpOwotZW5kbW9kdWxlCi0KLW1vZHVsZSBSU0RGQ1NSSEQyQldQX1JFTUFQX1NQQ182ICgKLQlDRE4sIAotCVNETiwgCi0JQ1AsIAotCUQsIAotCVNJLCAKLQlTRSwgCi0JU0FWRSwgCi0JTlJFU1RPUkUsIAotCVEpOwotICAgaW5wdXQgQ0ROOwotICAgaW5wdXQgU0ROOwotICAgaW5wdXQgQ1A7Ci0gICBpbnB1dCBEOwotICAgaW5wdXQgU0k7Ci0gICBpbnB1dCBTRTsKLSAgIGlucHV0IFNBVkU7Ci0gICBpbnB1dCBOUkVTVE9SRTsKLSAgIG91dHB1dCBROwotCi0gICBTREZDTlFEMUJXUF9TUENBXzg4IHN0YXRlX3JlbWFwICguU0koU0kpLCAKLQkuU0UoU0UpLCAKLQkuUShRKSwgCi0JLkQoRCksIAotCS5DUChDUCksIAotCS5DRE4oQ0ROKSk7Ci1lbmRtb2R1bGUKLQotbW9kdWxlIFNERkNOUUQxQldQX1NQQ0FfODkgKAotCVNJLCAKLQlTRSwgCi0JUSwgCi0JRCwgCi0JQ1AsIAotCUNETik7Ci0gICBpbnB1dCBTSTsKLSAgIGlucHV0IFNFOwotICAgb3V0cHV0IFE7Ci0gICBpbnB1dCBEOwotICAgaW5wdXQgQ1A7Ci0gICBpbnB1dCBDRE47Ci0KLSAgIFNERkZSWDQgREZGICguU0koU0kpLCAKLQkuU0UoU0UpLCAKLQkuUk4oQ0ROKSwgCi0JLlEoUSksIAotCS5EKEQpLCAKLQkuQ0soQ1ApKTsKLWVuZG1vZHVsZQotCi1tb2R1bGUgUlNERkNTUkhEMkJXUF9SRU1BUF9TUENfNyAoCi0JQ0ROLCAKLQlTRE4sIAotCUNQLCAKLQlELCAKLQlTSSwgCi0JU0UsIAotCVNBVkUsIAotCU5SRVNUT1JFLCAKLQlRKTsKLSAgIGlucHV0IENETjsKLSAgIGlucHV0IFNETjsKLSAgIGlucHV0IENQOwotICAgaW5wdXQgRDsKLSAgIGlucHV0IFNJOwotICAgaW5wdXQgU0U7Ci0gICBpbnB1dCBTQVZFOwotICAgaW5wdXQgTlJFU1RPUkU7Ci0gICBvdXRwdXQgUTsKLQotICAgU0RGQ05RRDFCV1BfU1BDQV84OSBzdGF0ZV9yZW1hcCAoLlNJKFNJKSwgCi0JLlNFKFNFKSwgCi0JLlEoUSksIAotCS5EKEQpLCAKLQkuQ1AoQ1ApLCAKLQkuQ0ROKENETikpOwotZW5kbW9kdWxlCi0KLW1vZHVsZSBTREZDTlFEMUJXUF9TUENBXzkwICgKLQlTSSwgCi0JU0UsIAotCVEsIAotCUQsIAotCUNQLCAKLQlDRE4pOwotICAgaW5wdXQgU0k7Ci0gICBpbnB1dCBTRTsKLSAgIG91dHB1dCBROwotICAgaW5wdXQgRDsKLSAgIGlucHV0IENQOwotICAgaW5wdXQgQ0ROOwotCi0gICBTREZGUlg0IERGRiAoLlNJKFNJKSwgCi0JLlNFKFNFKSwgCi0JLlJOKENETiksIAotCS5RKFEpLCAKLQkuRChEKSwgCi0JLkNLKENQKSk7Ci1lbmRtb2R1bGUKLQotbW9kdWxlIFJTREZDU1JIRDJCV1BfUkVNQVBfU1BDXzggKAotCUNETiwgCi0JU0ROLCAKLQlDUCwgCi0JRCwgCi0JU0ksIAotCVNFLCAKLQlTQVZFLCAKLQlOUkVTVE9SRSwgCi0JUSk7Ci0gICBpbnB1dCBDRE47Ci0gICBpbnB1dCBTRE47Ci0gICBpbnB1dCBDUDsKLSAgIGlucHV0IEQ7Ci0gICBpbnB1dCBTSTsKLSAgIGlucHV0IFNFOwotICAgaW5wdXQgU0FWRTsKLSAgIGlucHV0IE5SRVNUT1JFOwotICAgb3V0cHV0IFE7Ci0KLSAgIFNERkNOUUQxQldQX1NQQ0FfOTAgc3RhdGVfcmVtYXAgKC5TSShTSSksIAotCS5TRShTRSksIAotCS5RKFEpLCAKLQkuRChEKSwgCi0JLkNQKENQKSwgCi0JLkNETihDRE4pKTsKLWVuZG1vZHVsZQotCi1tb2R1bGUgU0RGQ05RRDFCV1BfU1BDQV85MSAoCi0JU0ksIAotCVNFLCAKLQlRLCAKLQlELCAKLQlDUCwgCi0JQ0ROKTsKLSAgIGlucHV0IFNJOwotICAgaW5wdXQgU0U7Ci0gICBvdXRwdXQgUTsKLSAgIGlucHV0IEQ7Ci0gICBpbnB1dCBDUDsKLSAgIGlucHV0IENETjsKLQotICAgU0RGRlJYNCBERkYgKC5TSShTSSksIAotCS5TRShTRSksIAotCS5STihDRE4pLCAKLQkuUShRKSwgCi0JLkQoRCksIAotCS5DSyhDUCkpOwotZW5kbW9kdWxlCi0KLW1vZHVsZSBSU0RGQ1NSSEQyQldQX1JFTUFQX1NQQ185ICgKLQlDRE4sIAotCVNETiwgCi0JQ1AsIAotCUQsIAotCVNJLCAKLQlTRSwgCi0JU0FWRSwgCi0JTlJFU1RPUkUsIAotCVEpOwotICAgaW5wdXQgQ0ROOwotICAgaW5wdXQgU0ROOwotICAgaW5wdXQgQ1A7Ci0gICBpbnB1dCBEOwotICAgaW5wdXQgU0k7Ci0gICBpbnB1dCBTRTsKLSAgIGlucHV0IFNBVkU7Ci0gICBpbnB1dCBOUkVTVE9SRTsKLSAgIG91dHB1dCBROwotCi0gICBTREZDTlFEMUJXUF9TUENBXzkxIHN0YXRlX3JlbWFwICguU0koU0kpLCAKLQkuU0UoU0UpLCAKLQkuUShRKSwgCi0JLkQoRCksIAotCS5DUChDUCksIAotCS5DRE4oQ0ROKSk7Ci1lbmRtb2R1bGUKLQotbW9kdWxlIFNERkNOUUQxQldQX1NQQ0FfOTIgKAotCVNJLCAKLQlTRSwgCi0JUSwgCi0JRCwgCi0JQ1AsIAotCUNETik7Ci0gICBpbnB1dCBTSTsKLSAgIGlucHV0IFNFOwotICAgb3V0cHV0IFE7Ci0gICBpbnB1dCBEOwotICAgaW5wdXQgQ1A7Ci0gICBpbnB1dCBDRE47Ci0KLSAgIFNERkZSWDQgREZGICguU0koU0kpLCAKLQkuU0UoU0UpLCAKLQkuUk4oQ0ROKSwgCi0JLlEoUSksIAotCS5EKEQpLCAKLQkuQ0soQ1ApKTsKLWVuZG1vZHVsZQotCi1tb2R1bGUgUlNERkNTUkhEMkJXUF9SRU1BUF9TUENfMTAgKAotCUNETiwgCi0JU0ROLCAKLQlDUCwgCi0JRCwgCi0JU0ksIAotCVNFLCAKLQlTQVZFLCAKLQlOUkVTVE9SRSwgCi0JUSk7Ci0gICBpbnB1dCBDRE47Ci0gICBpbnB1dCBTRE47Ci0gICBpbnB1dCBDUDsKLSAgIGlucHV0IEQ7Ci0gICBpbnB1dCBTSTsKLSAgIGlucHV0IFNFOwotICAgaW5wdXQgU0FWRTsKLSAgIGlucHV0IE5SRVNUT1JFOwotICAgb3V0cHV0IFE7Ci0KLSAgIFNERkNOUUQxQldQX1NQQ0FfOTIgc3RhdGVfcmVtYXAgKC5TSShTSSksIAotCS5TRShTRSksIAotCS5RKFEpLCAKLQkuRChEKSwgCi0JLkNQKENQKSwgCi0JLkNETihDRE4pKTsKLWVuZG1vZHVsZQotCi1tb2R1bGUgU0RGQ05RRDFCV1BfU1BDQV85MyAoCi0JU0ksIAotCVNFLCAKLQlRLCAKLQlELCAKLQlDUCwgCi0JQ0ROKTsKLSAgIGlucHV0IFNJOwotICAgaW5wdXQgU0U7Ci0gICBvdXRwdXQgUTsKLSAgIGlucHV0IEQ7Ci0gICBpbnB1dCBDUDsKLSAgIGlucHV0IENETjsKLQotICAgU0RGRlJYNCBERkYgKC5TSShTSSksIAotCS5TRShTRSksIAotCS5STihDRE4pLCAKLQkuUShRKSwgCi0JLkQoRCksIAotCS5DSyhDUCkpOwotZW5kbW9kdWxlCi0KLW1vZHVsZSBSU0RGQ1NSSEQyQldQX1JFTUFQX1NQQ18xMSAoCi0JQ0ROLCAKLQlTRE4sIAotCUNQLCAKLQlELCAKLQlTSSwgCi0JU0UsIAotCVNBVkUsIAotCU5SRVNUT1JFLCAKLQlRKTsKLSAgIGlucHV0IENETjsKLSAgIGlucHV0IFNETjsKLSAgIGlucHV0IENQOwotICAgaW5wdXQgRDsKLSAgIGlucHV0IFNJOwotICAgaW5wdXQgU0U7Ci0gICBpbnB1dCBTQVZFOwotICAgaW5wdXQgTlJFU1RPUkU7Ci0gICBvdXRwdXQgUTsKLQotICAgU0RGQ05RRDFCV1BfU1BDQV85MyBzdGF0ZV9yZW1hcCAoLlNJKFNJKSwgCi0JLlNFKFNFKSwgCi0JLlEoUSksIAotCS5EKEQpLCAKLQkuQ1AoQ1ApLCAKLQkuQ0ROKENETikpOwotZW5kbW9kdWxlCi0KLW1vZHVsZSBTREZDTlFEMUJXUF9TUENBXzk0ICgKLQlTSSwgCi0JU0UsIAotCVEsIAotCUQsIAotCUNQLCAKLQlDRE4pOwotICAgaW5wdXQgU0k7Ci0gICBpbnB1dCBTRTsKLSAgIG91dHB1dCBROwotICAgaW5wdXQgRDsKLSAgIGlucHV0IENQOwotICAgaW5wdXQgQ0ROOwotCi0gICBTREZGUlg0IERGRiAoLlNJKFNJKSwgCi0JLlNFKFNFKSwgCi0JLlJOKENETiksIAotCS5RKFEpLCAKLQkuRChEKSwgCi0JLkNLKENQKSk7Ci1lbmRtb2R1bGUKLQotbW9kdWxlIFJTREZDU1JIRDJCV1BfUkVNQVBfU1BDXzEyICgKLQlDRE4sIAotCVNETiwgCi0JQ1AsIAotCUQsIAotCVNJLCAKLQlTRSwgCi0JU0FWRSwgCi0JTlJFU1RPUkUsIAotCVEpOwotICAgaW5wdXQgQ0ROOwotICAgaW5wdXQgU0ROOwotICAgaW5wdXQgQ1A7Ci0gICBpbnB1dCBEOwotICAgaW5wdXQgU0k7Ci0gICBpbnB1dCBTRTsKLSAgIGlucHV0IFNBVkU7Ci0gICBpbnB1dCBOUkVTVE9SRTsKLSAgIG91dHB1dCBROwotCi0gICBTREZDTlFEMUJXUF9TUENBXzk0IHN0YXRlX3JlbWFwICguU0koU0kpLCAKLQkuU0UoU0UpLCAKLQkuUShRKSwgCi0JLkQoRCksIAotCS5DUChDUCksIAotCS5DRE4oQ0ROKSk7Ci1lbmRtb2R1bGUKLQotbW9kdWxlIFNERkNOUUQxQldQX1NQQ0FfOTUgKAotCVNJLCAKLQlTRSwgCi0JUSwgCi0JRCwgCi0JQ1AsIAotCUNETik7Ci0gICBpbnB1dCBTSTsKLSAgIGlucHV0IFNFOwotICAgb3V0cHV0IFE7Ci0gICBpbnB1dCBEOwotICAgaW5wdXQgQ1A7Ci0gICBpbnB1dCBDRE47Ci0KLSAgIFNERkZSWDQgREZGICguU0koU0kpLCAKLQkuU0UoU0UpLCAKLQkuUk4oQ0ROKSwgCi0JLlEoUSksIAotCS5EKEQpLCAKLQkuQ0soQ1ApKTsKLWVuZG1vZHVsZQotCi1tb2R1bGUgUlNERkNTUkhEMkJXUF9SRU1BUF9TUENfMTMgKAotCUNETiwgCi0JU0ROLCAKLQlDUCwgCi0JRCwgCi0JU0ksIAotCVNFLCAKLQlTQVZFLCAKLQlOUkVTVE9SRSwgCi0JUSk7Ci0gICBpbnB1dCBDRE47Ci0gICBpbnB1dCBTRE47Ci0gICBpbnB1dCBDUDsKLSAgIGlucHV0IEQ7Ci0gICBpbnB1dCBTSTsKLSAgIGlucHV0IFNFOwotICAgaW5wdXQgU0FWRTsKLSAgIGlucHV0IE5SRVNUT1JFOwotICAgb3V0cHV0IFE7Ci0KLSAgIFNERkNOUUQxQldQX1NQQ0FfOTUgc3RhdGVfcmVtYXAgKC5TSShTSSksIAotCS5TRShTRSksIAotCS5RKFEpLCAKLQkuRChEKSwgCi0JLkNQKENQKSwgCi0JLkNETihDRE4pKTsKLWVuZG1vZHVsZQotCi1tb2R1bGUgU0RGQ05RRDFCV1BfU1BDQV85NiAoCi0JU0ksIAotCVNFLCAKLQlRLCAKLQlELCAKLQlDUCwgCi0JQ0ROKTsKLSAgIGlucHV0IFNJOwotICAgaW5wdXQgU0U7Ci0gICBvdXRwdXQgUTsKLSAgIGlucHV0IEQ7Ci0gICBpbnB1dCBDUDsKLSAgIGlucHV0IENETjsKLQotICAgU0RGRlJYNCBERkYgKC5TSShTSSksIAotCS5TRShTRSksIAotCS5STihDRE4pLCAKLQkuUShRKSwgCi0JLkQoRCksIAotCS5DSyhDUCkpOwotZW5kbW9kdWxlCi0KLW1vZHVsZSBSU0RGQ1NSSEQyQldQX1JFTUFQX1NQQ18xNCAoCi0JQ0ROLCAKLQlTRE4sIAotCUNQLCAKLQlELCAKLQlTSSwgCi0JU0UsIAotCVNBVkUsIAotCU5SRVNUT1JFLCAKLQlRKTsKLSAgIGlucHV0IENETjsKLSAgIGlucHV0IFNETjsKLSAgIGlucHV0IENQOwotICAgaW5wdXQgRDsKLSAgIGlucHV0IFNJOwotICAgaW5wdXQgU0U7Ci0gICBpbnB1dCBTQVZFOwotICAgaW5wdXQgTlJFU1RPUkU7Ci0gICBvdXRwdXQgUTsKLQotICAgU0RGQ05RRDFCV1BfU1BDQV85NiBzdGF0ZV9yZW1hcCAoLlNJKFNJKSwgCi0JLlNFKFNFKSwgCi0JLlEoUSksIAotCS5EKEQpLCAKLQkuQ1AoQ1ApLCAKLQkuQ0ROKENETikpOwotZW5kbW9kdWxlCi0KLW1vZHVsZSBTREZDTlFEMUJXUF9TUENBXzk3ICgKLQlTSSwgCi0JU0UsIAotCVEsIAotCUQsIAotCUNQLCAKLQlDRE4pOwotICAgaW5wdXQgU0k7Ci0gICBpbnB1dCBTRTsKLSAgIG91dHB1dCBROwotICAgaW5wdXQgRDsKLSAgIGlucHV0IENQOwotICAgaW5wdXQgQ0ROOwotCi0gICBTREZGUlg0IERGRiAoLlNJKFNJKSwgCi0JLlNFKFNFKSwgCi0JLlJOKENETiksIAotCS5RKFEpLCAKLQkuRChEKSwgCi0JLkNLKENQKSk7Ci1lbmRtb2R1bGUKLQotbW9kdWxlIFJTREZDU1JIRDJCV1BfUkVNQVBfU1BDXzE1ICgKLQlDRE4sIAotCVNETiwgCi0JQ1AsIAotCUQsIAotCVNJLCAKLQlTRSwgCi0JU0FWRSwgCi0JTlJFU1RPUkUsIAotCVEpOwotICAgaW5wdXQgQ0ROOwotICAgaW5wdXQgU0ROOwotICAgaW5wdXQgQ1A7Ci0gICBpbnB1dCBEOwotICAgaW5wdXQgU0k7Ci0gICBpbnB1dCBTRTsKLSAgIGlucHV0IFNBVkU7Ci0gICBpbnB1dCBOUkVTVE9SRTsKLSAgIG91dHB1dCBROwotCi0gICBTREZDTlFEMUJXUF9TUENBXzk3IHN0YXRlX3JlbWFwICguU0koU0kpLCAKLQkuU0UoU0UpLCAKLQkuUShRKSwgCi0JLkQoRCksIAotCS5DUChDUCksIAotCS5DRE4oQ0ROKSk7Ci1lbmRtb2R1bGUKLQotbW9kdWxlIFNERkNOUUQxQldQX1NQQ0FfOTggKAotCVNJLCAKLQlTRSwgCi0JUSwgCi0JRCwgCi0JQ1AsIAotCUNETik7Ci0gICBpbnB1dCBTSTsKLSAgIGlucHV0IFNFOwotICAgb3V0cHV0IFE7Ci0gICBpbnB1dCBEOwotICAgaW5wdXQgQ1A7Ci0gICBpbnB1dCBDRE47Ci0KLSAgIFNERkZSWDQgREZGICguU0koU0kpLCAKLQkuU0UoU0UpLCAKLQkuUk4oQ0ROKSwgCi0JLlEoUSksIAotCS5EKEQpLCAKLQkuQ0soQ1ApKTsKLWVuZG1vZHVsZQotCi1tb2R1bGUgUlNERkNTUkhEMkJXUF9SRU1BUF9TUENfMTYgKAotCUNETiwgCi0JU0ROLCAKLQlDUCwgCi0JRCwgCi0JU0ksIAotCVNFLCAKLQlTQVZFLCAKLQlOUkVTVE9SRSwgCi0JUSk7Ci0gICBpbnB1dCBDRE47Ci0gICBpbnB1dCBTRE47Ci0gICBpbnB1dCBDUDsKLSAgIGlucHV0IEQ7Ci0gICBpbnB1dCBTSTsKLSAgIGlucHV0IFNFOwotICAgaW5wdXQgU0FWRTsKLSAgIGlucHV0IE5SRVNUT1JFOwotICAgb3V0cHV0IFE7Ci0KLSAgIFNERkNOUUQxQldQX1NQQ0FfOTggc3RhdGVfcmVtYXAgKC5TSShTSSksIAotCS5TRShTRSksIAotCS5RKFEpLCAKLQkuRChEKSwgCi0JLkNQKENQKSwgCi0JLkNETihDRE4pKTsKLWVuZG1vZHVsZQotCi1tb2R1bGUgU0RGQ05RRDFCV1BfU1BDQV85OSAoCi0JU0ksIAotCVNFLCAKLQlRLCAKLQlELCAKLQlDUCwgCi0JQ0ROKTsKLSAgIGlucHV0IFNJOwotICAgaW5wdXQgU0U7Ci0gICBvdXRwdXQgUTsKLSAgIGlucHV0IEQ7Ci0gICBpbnB1dCBDUDsKLSAgIGlucHV0IENETjsKLQotICAgU0RGRlJYNCBERkYgKC5TSShTSSksIAotCS5TRShTRSksIAotCS5STihDRE4pLCAKLQkuUShRKSwgCi0JLkQoRCksIAotCS5DSyhDUCkpOwotZW5kbW9kdWxlCi0KLW1vZHVsZSBSU0RGQ1NSSEQyQldQX1JFTUFQX1NQQ18xNyAoCi0JQ0ROLCAKLQlTRE4sIAotCUNQLCAKLQlELCAKLQlTSSwgCi0JU0UsIAotCVNBVkUsIAotCU5SRVNUT1JFLCAKLQlRKTsKLSAgIGlucHV0IENETjsKLSAgIGlucHV0IFNETjsKLSAgIGlucHV0IENQOwotICAgaW5wdXQgRDsKLSAgIGlucHV0IFNJOwotICAgaW5wdXQgU0U7Ci0gICBpbnB1dCBTQVZFOwotICAgaW5wdXQgTlJFU1RPUkU7Ci0gICBvdXRwdXQgUTsKLQotICAgU0RGQ05RRDFCV1BfU1BDQV85OSBzdGF0ZV9yZW1hcCAoLlNJKFNJKSwgCi0JLlNFKFNFKSwgCi0JLlEoUSksIAotCS5EKEQpLCAKLQkuQ1AoQ1ApLCAKLQkuQ0ROKENETikpOwotZW5kbW9kdWxlCi0KLW1vZHVsZSBTREZDTlFEMUJXUF9TUENBXzEwMCAoCi0JU0ksIAotCVNFLCAKLQlRLCAKLQlELCAKLQlDUCwgCi0JQ0ROKTsKLSAgIGlucHV0IFNJOwotICAgaW5wdXQgU0U7Ci0gICBvdXRwdXQgUTsKLSAgIGlucHV0IEQ7Ci0gICBpbnB1dCBDUDsKLSAgIGlucHV0IENETjsKLQotICAgU0RGRlJYNCBERkYgKC5TSShTSSksIAotCS5TRShTRSksIAotCS5STihDRE4pLCAKLQkuUShRKSwgCi0JLkQoRCksIAotCS5DSyhDUCkpOwotZW5kbW9kdWxlCi0KLW1vZHVsZSBSU0RGQ1NSSEQyQldQX1JFTUFQX1NQQ18xOCAoCi0JQ0ROLCAKLQlTRE4sIAotCUNQLCAKLQlELCAKLQlTSSwgCi0JU0UsIAotCVNBVkUsIAotCU5SRVNUT1JFLCAKLQlRKTsKLSAgIGlucHV0IENETjsKLSAgIGlucHV0IFNETjsKLSAgIGlucHV0IENQOwotICAgaW5wdXQgRDsKLSAgIGlucHV0IFNJOwotICAgaW5wdXQgU0U7Ci0gICBpbnB1dCBTQVZFOwotICAgaW5wdXQgTlJFU1RPUkU7Ci0gICBvdXRwdXQgUTsKLQotICAgU0RGQ05RRDFCV1BfU1BDQV8xMDAgc3RhdGVfcmVtYXAgKC5TSShTSSksIAotCS5TRShTRSksIAotCS5RKFEpLCAKLQkuRChEKSwgCi0JLkNQKENQKSwgCi0JLkNETihDRE4pKTsKLWVuZG1vZHVsZQotCi1tb2R1bGUgU0RGQ05RRDFCV1BfU1BDQV8xMDEgKAotCVNJLCAKLQlTRSwgCi0JUSwgCi0JRCwgCi0JQ1AsIAotCUNETik7Ci0gICBpbnB1dCBTSTsKLSAgIGlucHV0IFNFOwotICAgb3V0cHV0IFE7Ci0gICBpbnB1dCBEOwotICAgaW5wdXQgQ1A7Ci0gICBpbnB1dCBDRE47Ci0KLSAgIFNERkZSWDQgREZGICguU0koU0kpLCAKLQkuU0UoU0UpLCAKLQkuUk4oQ0ROKSwgCi0JLlEoUSksIAotCS5EKEQpLCAKLQkuQ0soQ1ApKTsKLWVuZG1vZHVsZQotCi1tb2R1bGUgUlNERkNTUkhEMkJXUF9SRU1BUF9TUENfMTkgKAotCUNETiwgCi0JU0ROLCAKLQlDUCwgCi0JRCwgCi0JU0ksIAotCVNFLCAKLQlTQVZFLCAKLQlOUkVTVE9SRSwgCi0JUSk7Ci0gICBpbnB1dCBDRE47Ci0gICBpbnB1dCBTRE47Ci0gICBpbnB1dCBDUDsKLSAgIGlucHV0IEQ7Ci0gICBpbnB1dCBTSTsKLSAgIGlucHV0IFNFOwotICAgaW5wdXQgU0FWRTsKLSAgIGlucHV0IE5SRVNUT1JFOwotICAgb3V0cHV0IFE7Ci0KLSAgIFNERkNOUUQxQldQX1NQQ0FfMTAxIHN0YXRlX3JlbWFwICguU0koU0kpLCAKLQkuU0UoU0UpLCAKLQkuUShRKSwgCi0JLkQoRCksIAotCS5DUChDUCksIAotCS5DRE4oQ0ROKSk7Ci1lbmRtb2R1bGUKLQotbW9kdWxlIFNERkNOUUQxQldQX1NQQ0FfMTAyICgKLQlTSSwgCi0JU0UsIAotCVEsIAotCUQsIAotCUNQLCAKLQlDRE4pOwotICAgaW5wdXQgU0k7Ci0gICBpbnB1dCBTRTsKLSAgIG91dHB1dCBROwotICAgaW5wdXQgRDsKLSAgIGlucHV0IENQOwotICAgaW5wdXQgQ0ROOwotCi0gICBTREZGUlg0IERGRiAoLlNJKFNJKSwgCi0JLlNFKFNFKSwgCi0JLlJOKENETiksIAotCS5RKFEpLCAKLQkuRChEKSwgCi0JLkNLKENQKSk7Ci1lbmRtb2R1bGUKLQotbW9kdWxlIFJTREZDU1JIRDJCV1BfUkVNQVBfU1BDXzIwICgKLQlDRE4sIAotCVNETiwgCi0JQ1AsIAotCUQsIAotCVNJLCAKLQlTRSwgCi0JU0FWRSwgCi0JTlJFU1RPUkUsIAotCVEpOwotICAgaW5wdXQgQ0ROOwotICAgaW5wdXQgU0ROOwotICAgaW5wdXQgQ1A7Ci0gICBpbnB1dCBEOwotICAgaW5wdXQgU0k7Ci0gICBpbnB1dCBTRTsKLSAgIGlucHV0IFNBVkU7Ci0gICBpbnB1dCBOUkVTVE9SRTsKLSAgIG91dHB1dCBROwotCi0gICBTREZDTlFEMUJXUF9TUENBXzEwMiBzdGF0ZV9yZW1hcCAoLlNJKFNJKSwgCi0JLlNFKFNFKSwgCi0JLlEoUSksIAotCS5EKEQpLCAKLQkuQ1AoQ1ApLCAKLQkuQ0ROKENETikpOwotZW5kbW9kdWxlCi0KLW1vZHVsZSBTREZDTlFEMUJXUF9TUENBXzEwMyAoCi0JU0ksIAotCVNFLCAKLQlRLCAKLQlELCAKLQlDUCwgCi0JQ0ROKTsKLSAgIGlucHV0IFNJOwotICAgaW5wdXQgU0U7Ci0gICBvdXRwdXQgUTsKLSAgIGlucHV0IEQ7Ci0gICBpbnB1dCBDUDsKLSAgIGlucHV0IENETjsKLQotICAgU0RGRlJYNCBERkYgKC5TSShTSSksIAotCS5TRShTRSksIAotCS5STihDRE4pLCAKLQkuUShRKSwgCi0JLkQoRCksIAotCS5DSyhDUCkpOwotZW5kbW9kdWxlCi0KLW1vZHVsZSBSU0RGQ1NSSEQyQldQX1JFTUFQX1NQQ18yMSAoCi0JQ0ROLCAKLQlTRE4sIAotCUNQLCAKLQlELCAKLQlTSSwgCi0JU0UsIAotCVNBVkUsIAotCU5SRVNUT1JFLCAKLQlRKTsKLSAgIGlucHV0IENETjsKLSAgIGlucHV0IFNETjsKLSAgIGlucHV0IENQOwotICAgaW5wdXQgRDsKLSAgIGlucHV0IFNJOwotICAgaW5wdXQgU0U7Ci0gICBpbnB1dCBTQVZFOwotICAgaW5wdXQgTlJFU1RPUkU7Ci0gICBvdXRwdXQgUTsKLQotICAgU0RGQ05RRDFCV1BfU1BDQV8xMDMgc3RhdGVfcmVtYXAgKC5TSShTSSksIAotCS5TRShTRSksIAotCS5RKFEpLCAKLQkuRChEKSwgCi0JLkNQKENQKSwgCi0JLkNETihDRE4pKTsKLWVuZG1vZHVsZQotCi1tb2R1bGUgU0RGQ05RRDFCV1BfU1BDQV8xMDQgKAotCVNJLCAKLQlTRSwgCi0JUSwgCi0JRCwgCi0JQ1AsIAotCUNETik7Ci0gICBpbnB1dCBTSTsKLSAgIGlucHV0IFNFOwotICAgb3V0cHV0IFE7Ci0gICBpbnB1dCBEOwotICAgaW5wdXQgQ1A7Ci0gICBpbnB1dCBDRE47Ci0KLSAgIFNERkZSWDQgREZGICguU0koU0kpLCAKLQkuU0UoU0UpLCAKLQkuUk4oQ0ROKSwgCi0JLlEoUSksIAotCS5EKEQpLCAKLQkuQ0soQ1ApKTsKLWVuZG1vZHVsZQotCi1tb2R1bGUgUlNERkNTUkhEMkJXUF9SRU1BUF9TUENfMjIgKAotCUNETiwgCi0JU0ROLCAKLQlDUCwgCi0JRCwgCi0JU0ksIAotCVNFLCAKLQlTQVZFLCAKLQlOUkVTVE9SRSwgCi0JUSk7Ci0gICBpbnB1dCBDRE47Ci0gICBpbnB1dCBTRE47Ci0gICBpbnB1dCBDUDsKLSAgIGlucHV0IEQ7Ci0gICBpbnB1dCBTSTsKLSAgIGlucHV0IFNFOwotICAgaW5wdXQgU0FWRTsKLSAgIGlucHV0IE5SRVNUT1JFOwotICAgb3V0cHV0IFE7Ci0KLSAgIFNERkNOUUQxQldQX1NQQ0FfMTA0IHN0YXRlX3JlbWFwICguU0koU0kpLCAKLQkuU0UoU0UpLCAKLQkuUShRKSwgCi0JLkQoRCksIAotCS5DUChDUCksIAotCS5DRE4oQ0ROKSk7Ci1lbmRtb2R1bGUKLQotbW9kdWxlIGRhdGFfYnVzX21hY2ggKAotCWNsaywgCi0JcmVzZXQsIAotCXJlYWQsIAotCXdyaXRlLCAKLQl3cml0ZV9oLCAKLQlhZGRyZXNzLCAKLQlkYXRhX2luLCAKLQlkYXRhX291dCwgCi0JcGFkX2RhdGFfaW4sIAotCXBhZF9kYXRhX291dCwgCi0JYWRkcnNfaW4sIAotCXJlYWRfY3ljbGUsIAotCXN5bmMsIAotCWdvLCAKLQlhcywgCi0JZG9uZSwgCi0JYnVzX3JlcXVlc3QsIAotCWJ1c19ncmFudCwgCi0JUkNfQ0dfVEVTVF9QT1JULCAKLQlTUlBHX1BHX2luLCAKLQlTUlBHX1BHX2luXzEsIAotCURGVF9zZGksIAotCURGVF9zZW4pOwotICAgaW5wdXQgY2xrOwotICAgaW5wdXQgcmVzZXQ7Ci0gICBvdXRwdXQgcmVhZDsKLSAgIG91dHB1dCB3cml0ZTsKLSAgIG91dHB1dCB3cml0ZV9oOwotICAgb3V0cHV0IFs3OjBdIGFkZHJlc3M7Ci0gICBpbnB1dCBbMTU6MF0gZGF0YV9pbjsKLSAgIG91dHB1dCBbMTU6MF0gZGF0YV9vdXQ7Ci0gICBpbnB1dCBbMTU6MF0gcGFkX2RhdGFfaW47Ci0gICBvdXRwdXQgWzE1OjBdIHBhZF9kYXRhX291dDsKLSAgIGlucHV0IFs3OjBdIGFkZHJzX2luOwotICAgaW5wdXQgcmVhZF9jeWNsZTsKLSAgIGlucHV0IHN5bmM7Ci0gICBpbnB1dCBnbzsKLSAgIG91dHB1dCBhczsKLSAgIG91dHB1dCBkb25lOwotICAgb3V0cHV0IGJ1c19yZXF1ZXN0OwotICAgaW5wdXQgYnVzX2dyYW50OwotICAgaW5wdXQgUkNfQ0dfVEVTVF9QT1JUOwotICAgaW5wdXQgU1JQR19QR19pbjsKLSAgIGlucHV0IFNSUEdfUEdfaW5fMTsKLSAgIGlucHV0IERGVF9zZGk7Ci0gICBpbnB1dCBERlRfc2VuOwotCi0gICAvLyBJbnRlcm5hbCB3aXJlcwotICAgd2lyZSBuXzA7Ci0gICB3aXJlIG5fMTsKLSAgIHdpcmUgbl8yOwotICAgd2lyZSBuXzM7Ci0gICB3aXJlIG5fNjsKLSAgIHdpcmUgbl8xMDsKLSAgIHdpcmUgbl8xMTsKLSAgIHdpcmUgbl8xMjsKLSAgIHdpcmUgbl8xNDsKLSAgIHdpcmUgbl8xOTsKLSAgIHdpcmUgbl82NjsKLSAgIHdpcmUgbl85OTsKLSAgIHdpcmUgbl8xMDA7Ci0gICB3aXJlIG5fMTAxOwotICAgd2lyZSBuXzEwMjsKLSAgIHdpcmUgbl8xMDM7Ci0gICB3aXJlIG5fMTA0OwotICAgd2lyZSBuXzEwNTsKLSAgIHdpcmUgXHByZXNlbnRfc3RhdGVbMF0gOwotICAgd2lyZSBccHJlc2VudF9zdGF0ZVsxXSA7Ci0gICB3aXJlIFxwcmVzZW50X3N0YXRlWzJdIDsKLSAgIHdpcmUgcmNfZ2NsazsKLQotICAgUkNfQ0dfTU9EXzMyOTEgUkNfQ0dfSElFUl9JTlNUMTggKC5lbmFibGUobl8xMDQpLCAKLQkuY2tfaW4oY2xrKSwgCi0JLmNrX291dChyY19nY2xrKSwgCi0JLnRlc3QoUkNfQ0dfVEVTVF9QT1JUKSk7Ci0gICBSU0RGQ1NSSEQyQldQX1JFTUFQIGFzX3JlZyAoLkNETihuXzE5KSwgCi0JLlNETigxJ2IxKSwgCi0JLkNQKGNsayksIAotCS5EKG5fOTkpLCAKLQkuU0koREZUX3NkaSksIAotCS5TRShERlRfc2VuKSwgCi0JLlNBVkUoMSdiMCksIAotCS5OUkVTVE9SRSgxJ2IwKSwgCi0JLlEoYXMpKTsKLSAgIFJTREZDU1JIRDJCV1BfUkVNQVBfU1BDXzEgYnVzX3JlcXVlc3RfcmVnICguQ0ROKG5fMTkpLCAKLQkuU0ROKDEnYjEpLCAKLQkuQ1AoY2xrKSwgCi0JLkQobl85OSksIAotCS5TSShhcyksIAotCS5TRShERlRfc2VuKSwgCi0JLlNBVkUoMSdiMCksIAotCS5OUkVTVE9SRSgxJ2IwKSwgCi0JLlEoYnVzX3JlcXVlc3QpKTsKLSAgIFJTREZDU1JIRDJCV1BfUkVNQVBfU1BDXzIgXGRhdGFfb3V0X3JlZ1swXSAgKC5DRE4obl8xOSksIAotCS5TRE4oMSdiMSksIAotCS5DUChyY19nY2xrKSwgCi0JLkQocGFkX2RhdGFfaW5bMF0pLCAKLQkuU0koYnVzX3JlcXVlc3QpLCAKLQkuU0UoREZUX3NlbiksIAotCS5TQVZFKDEnYjApLCAKLQkuTlJFU1RPUkUoMSdiMCksIAotCS5RKGRhdGFfb3V0WzBdKSk7Ci0gICBSU0RGQ1NSSEQyQldQX1JFTUFQX1NQQ18zIFxkYXRhX291dF9yZWdbMTBdICAoLkNETihuXzE5KSwgCi0JLlNETigxJ2IxKSwgCi0JLkNQKHJjX2djbGspLCAKLQkuRChwYWRfZGF0YV9pblsxMF0pLCAKLQkuU0koZGF0YV9vdXRbOV0pLCAKLQkuU0UoREZUX3NlbiksIAotCS5TQVZFKDEnYjApLCAKLQkuTlJFU1RPUkUoMSdiMCksIAotCS5RKGRhdGFfb3V0WzEwXSkpOwotICAgUlNERkNTUkhEMkJXUF9SRU1BUF9TUENfNCBcZGF0YV9vdXRfcmVnWzExXSAgKC5DRE4obl8xOSksIAotCS5TRE4oMSdiMSksIAotCS5DUChyY19nY2xrKSwgCi0JLkQocGFkX2RhdGFfaW5bMTFdKSwgCi0JLlNJKGRhdGFfb3V0WzEwXSksIAotCS5TRShERlRfc2VuKSwgCi0JLlNBVkUoMSdiMCksIAotCS5OUkVTVE9SRSgxJ2IwKSwgCi0JLlEoZGF0YV9vdXRbMTFdKSk7Ci0gICBSU0RGQ1NSSEQyQldQX1JFTUFQX1NQQ181IFxkYXRhX291dF9yZWdbMTJdICAoLkNETihuXzE5KSwgCi0JLlNETigxJ2IxKSwgCi0JLkNQKHJjX2djbGspLCAKLQkuRChwYWRfZGF0YV9pblsxMl0pLCAKLQkuU0koZGF0YV9vdXRbMTFdKSwgCi0JLlNFKERGVF9zZW4pLCAKLQkuU0FWRSgxJ2IwKSwgCi0JLk5SRVNUT1JFKDEnYjApLCAKLQkuUShkYXRhX291dFsxMl0pKTsKLSAgIFJTREZDU1JIRDJCV1BfUkVNQVBfU1BDXzYgXGRhdGFfb3V0X3JlZ1sxM10gICguQ0ROKG5fMTkpLCAKLQkuU0ROKDEnYjEpLCAKLQkuQ1AocmNfZ2NsayksIAotCS5EKHBhZF9kYXRhX2luWzEzXSksIAotCS5TSShkYXRhX291dFsxMl0pLCAKLQkuU0UoREZUX3NlbiksIAotCS5TQVZFKDEnYjApLCAKLQkuTlJFU1RPUkUoMSdiMCksIAotCS5RKGRhdGFfb3V0WzEzXSkpOwotICAgUlNERkNTUkhEMkJXUF9SRU1BUF9TUENfNyBcZGF0YV9vdXRfcmVnWzE0XSAgKC5DRE4obl8xOSksIAotCS5TRE4oMSdiMSksIAotCS5DUChyY19nY2xrKSwgCi0JLkQocGFkX2RhdGFfaW5bMTRdKSwgCi0JLlNJKGRhdGFfb3V0WzEzXSksIAotCS5TRShERlRfc2VuKSwgCi0JLlNBVkUoMSdiMCksIAotCS5OUkVTVE9SRSgxJ2IwKSwgCi0JLlEoZGF0YV9vdXRbMTRdKSk7Ci0gICBSU0RGQ1NSSEQyQldQX1JFTUFQX1NQQ184IFxkYXRhX291dF9yZWdbMTVdICAoLkNETihuXzE5KSwgCi0JLlNETigxJ2IxKSwgCi0JLkNQKHJjX2djbGspLCAKLQkuRChwYWRfZGF0YV9pblsxNV0pLCAKLQkuU0koZGF0YV9vdXRbMTRdKSwgCi0JLlNFKERGVF9zZW4pLCAKLQkuU0FWRSgxJ2IwKSwgCi0JLk5SRVNUT1JFKDEnYjApLCAKLQkuUShkYXRhX291dFsxNV0pKTsKLSAgIFJTREZDU1JIRDJCV1BfUkVNQVBfU1BDXzkgXGRhdGFfb3V0X3JlZ1sxXSAgKC5DRE4obl8xOSksIAotCS5TRE4oMSdiMSksIAotCS5DUChyY19nY2xrKSwgCi0JLkQocGFkX2RhdGFfaW5bMV0pLCAKLQkuU0koZGF0YV9vdXRbMF0pLCAKLQkuU0UoREZUX3NlbiksIAotCS5TQVZFKDEnYjApLCAKLQkuTlJFU1RPUkUoMSdiMCksIAotCS5RKGRhdGFfb3V0WzFdKSk7Ci0gICBSU0RGQ1NSSEQyQldQX1JFTUFQX1NQQ18xMCBcZGF0YV9vdXRfcmVnWzJdICAoLkNETihuXzE5KSwgCi0JLlNETigxJ2IxKSwgCi0JLkNQKHJjX2djbGspLCAKLQkuRChwYWRfZGF0YV9pblsyXSksIAotCS5TSShkYXRhX291dFsxXSksIAotCS5TRShERlRfc2VuKSwgCi0JLlNBVkUoMSdiMCksIAotCS5OUkVTVE9SRSgxJ2IwKSwgCi0JLlEoZGF0YV9vdXRbMl0pKTsKLSAgIFJTREZDU1JIRDJCV1BfUkVNQVBfU1BDXzExIFxkYXRhX291dF9yZWdbM10gICguQ0ROKG5fMTkpLCAKLQkuU0ROKDEnYjEpLCAKLQkuQ1AocmNfZ2NsayksIAotCS5EKHBhZF9kYXRhX2luWzNdKSwgCi0JLlNJKGRhdGFfb3V0WzJdKSwgCi0JLlNFKERGVF9zZW4pLCAKLQkuU0FWRSgxJ2IwKSwgCi0JLk5SRVNUT1JFKDEnYjApLCAKLQkuUShkYXRhX291dFszXSkpOwotICAgUlNERkNTUkhEMkJXUF9SRU1BUF9TUENfMTIgXGRhdGFfb3V0X3JlZ1s0XSAgKC5DRE4obl8xOSksIAotCS5TRE4oMSdiMSksIAotCS5DUChyY19nY2xrKSwgCi0JLkQocGFkX2RhdGFfaW5bNF0pLCAKLQkuU0koZGF0YV9vdXRbM10pLCAKLQkuU0UoREZUX3NlbiksIAotCS5TQVZFKDEnYjApLCAKLQkuTlJFU1RPUkUoMSdiMCksIAotCS5RKGRhdGFfb3V0WzRdKSk7Ci0gICBSU0RGQ1NSSEQyQldQX1JFTUFQX1NQQ18xMyBcZGF0YV9vdXRfcmVnWzVdICAoLkNETihuXzE5KSwgCi0JLlNETigxJ2IxKSwgCi0JLkNQKHJjX2djbGspLCAKLQkuRChwYWRfZGF0YV9pbls1XSksIAotCS5TSShkYXRhX291dFs0XSksIAotCS5TRShERlRfc2VuKSwgCi0JLlNBVkUoMSdiMCksIAotCS5OUkVTVE9SRSgxJ2IwKSwgCi0JLlEoZGF0YV9vdXRbNV0pKTsKLSAgIFJTREZDU1JIRDJCV1BfUkVNQVBfU1BDXzE0IFxkYXRhX291dF9yZWdbNl0gICguQ0ROKG5fMTkpLCAKLQkuU0ROKDEnYjEpLCAKLQkuQ1AocmNfZ2NsayksIAotCS5EKHBhZF9kYXRhX2luWzZdKSwgCi0JLlNJKGRhdGFfb3V0WzVdKSwgCi0JLlNFKERGVF9zZW4pLCAKLQkuU0FWRSgxJ2IwKSwgCi0JLk5SRVNUT1JFKDEnYjApLCAKLQkuUShkYXRhX291dFs2XSkpOwotICAgUlNERkNTUkhEMkJXUF9SRU1BUF9TUENfMTUgXGRhdGFfb3V0X3JlZ1s3XSAgKC5DRE4obl8xOSksIAotCS5TRE4oMSdiMSksIAotCS5DUChyY19nY2xrKSwgCi0JLkQocGFkX2RhdGFfaW5bN10pLCAKLQkuU0koZGF0YV9vdXRbNl0pLCAKLQkuU0UoREZUX3NlbiksIAotCS5TQVZFKDEnYjApLCAKLQkuTlJFU1RPUkUoMSdiMCksIAotCS5RKGRhdGFfb3V0WzddKSk7Ci0gICBSU0RGQ1NSSEQyQldQX1JFTUFQX1NQQ18xNiBcZGF0YV9vdXRfcmVnWzhdICAoLkNETihuXzE5KSwgCi0JLlNETigxJ2IxKSwgCi0JLkNQKHJjX2djbGspLCAKLQkuRChwYWRfZGF0YV9pbls4XSksIAotCS5TSShkYXRhX291dFs3XSksIAotCS5TRShERlRfc2VuKSwgCi0JLlNBVkUoMSdiMCksIAotCS5OUkVTVE9SRSgxJ2IwKSwgCi0JLlEoZGF0YV9vdXRbOF0pKTsKLSAgIFJTREZDU1JIRDJCV1BfUkVNQVBfU1BDXzE3IFxkYXRhX291dF9yZWdbOV0gICguQ0ROKG5fMTkpLCAKLQkuU0ROKDEnYjEpLCAKLQkuQ1AocmNfZ2NsayksIAotCS5EKHBhZF9kYXRhX2luWzldKSwgCi0JLlNJKGRhdGFfb3V0WzhdKSwgCi0JLlNFKERGVF9zZW4pLCAKLQkuU0FWRSgxJ2IwKSwgCi0JLk5SRVNUT1JFKDEnYjApLCAKLQkuUShkYXRhX291dFs5XSkpOwotICAgUlNERkNTUkhEMkJXUF9SRU1BUF9TUENfMTggXHByZXNlbnRfc3RhdGVfcmVnWzBdICAoLkNETihuXzE5KSwgCi0JLlNETigxJ2IxKSwgCi0JLkNQKGNsayksIAotCS5EKG5fMTAxKSwgCi0JLlNJKGRhdGFfb3V0WzE1XSksIAotCS5TRShERlRfc2VuKSwgCi0JLlNBVkUoMSdiMCksIAotCS5OUkVTVE9SRSgxJ2IwKSwgCi0JLlEoXHByZXNlbnRfc3RhdGVbMF0gKSk7Ci0gICBSU0RGQ1NSSEQyQldQX1JFTUFQX1NQQ18xOSBccHJlc2VudF9zdGF0ZV9yZWdbMV0gICguQ0ROKG5fMTkpLCAKLQkuU0ROKDEnYjEpLCAKLQkuQ1AoY2xrKSwgCi0JLkQobl8xMDUpLCAKLQkuU0koXHByZXNlbnRfc3RhdGVbMF0gKSwgCi0JLlNFKERGVF9zZW4pLCAKLQkuU0FWRSgxJ2IwKSwgCi0JLk5SRVNUT1JFKDEnYjApLCAKLQkuUShccHJlc2VudF9zdGF0ZVsxXSApKTsKLSAgIFJTREZDU1JIRDJCV1BfUkVNQVBfU1BDXzIwIFxwcmVzZW50X3N0YXRlX3JlZ1syXSAgKC5DRE4obl8xOSksIAotCS5TRE4oMSdiMSksIAotCS5DUChjbGspLCAKLQkuRChuXzEwMiksIAotCS5TSShccHJlc2VudF9zdGF0ZVsxXSApLCAKLQkuU0UoREZUX3NlbiksIAotCS5TQVZFKDEnYjApLCAKLQkuTlJFU1RPUkUoMSdiMCksIAotCS5RKFxwcmVzZW50X3N0YXRlWzJdICkpOwotICAgUlNERkNTUkhEMkJXUF9SRU1BUF9TUENfMjEgcmVhZF9yZWcgKC5DRE4obl8xOSksIAotCS5TRE4oMSdiMSksIAotCS5DUChjbGspLCAKLQkuRChuXzY2KSwgCi0JLlNJKFxwcmVzZW50X3N0YXRlWzJdICksIAotCS5TRShERlRfc2VuKSwgCi0JLlNBVkUoMSdiMCksIAotCS5OUkVTVE9SRSgxJ2IwKSwgCi0JLlEocmVhZCkpOwotICAgUlNERkNTUkhEMkJXUF9SRU1BUF9TUENfMjIgd3JpdGVfcmVnICguQ0ROKG5fMTkpLCAKLQkuU0ROKDEnYjEpLCAKLQkuQ1AoY2xrKSwgCi0JLkQobl8xMDMpLCAKLQkuU0kocmVhZCksIAotCS5TRShERlRfc2VuKSwgCi0JLlNBVkUoMSdiMCksIAotCS5OUkVTVE9SRSgxJ2IwKSwgCi0JLlEod3JpdGUpKTsKLSAgIElOVlhMIGcxMDYgKC5ZKG5fMTkpLCAKLQkuQShyZXNldCkpOwotICAgQU5EMlgyIGcyNjkgKC5ZKG5fMTQpLCAKLQkuQihuXzExKSwgCi0JLkEoZ28pKTsKLSAgIENMS0lOVlgxIGcyNzEgKC5ZKG5fMTIpLCAKLQkuQShuXzExKSk7Ci0gICBBTkQyWDEgZzI3MiAoLlkobl8xMSksIAotCS5CKG5fNiksIAotCS5BKG5fMykpOwotICAgQU5EMlgxIGcyNzMgKC5ZKG5fNjYpLCAKLQkuQihuXzYpLCAKLQkuQShccHJlc2VudF9zdGF0ZVswXSApKTsKLSAgIE9SMlgxIGcyNzggKC5ZKG5fMTApLCAKLQkuQihuXzEpLCAKLQkuQShuXzMpKTsKLSAgIEFORDJYMSBnMjgyICguWShuXzYpLCAKLQkuQihuXzEpLCAKLQkuQShuXzIpKTsKLSAgIENMS0lOVlgyIGcyODUgKC5ZKG5fMyksIAotCS5BKFxwcmVzZW50X3N0YXRlWzBdICkpOwotICAgQ0xLSU5WWDEgZzI4NyAoLlkobl8yKSwgCi0JLkEoXHByZXNlbnRfc3RhdGVbMl0gKSk7Ci0gICBDTEtJTlZYMSBnMjg4ICguWShuXzEpLCAKLQkuQShccHJlc2VudF9zdGF0ZVsxXSApKTsKLSAgIE5PUjJCWDEgZzIgKC5ZKG5fMCksIAotCS5CKHJlYWRfY3ljbGUpLCAKLQkuQU4oYnVzX2dyYW50KSk7Ci0gICBBTzIxWDQgZzI4OSAoLlkobl85OSksIAotCS5CMChuXzE0KSwgCi0JLkExKG5fMTIpLCAKLQkuQTAobl8xMCkpOwotICAgSU5WWEwgZzMgKC5ZKG5fMTAxKSwgCi0JLkEobl8xMDApKTsKLSAgIEFPSTMyWDQgZzI5MCAoLlkobl8xMDApLCAKLQkuQjEobl8xMiksIAotCS5CMChuXzMpLCAKLQkuQTIoYnVzX2dyYW50KSwgCi0JLkExKHJlYWRfY3ljbGUpLCAKLQkuQTAobl8xNCkpOwotICAgQU8yMlg0IGcyOTEgKC5ZKG5fMTAyKSwgCi0JLkIxKG5fMCksIAotCS5CMChuXzE0KSwgCi0JLkExKG5fMTApLCAKLQkuQTAoXHByZXNlbnRfc3RhdGVbMl0gKSk7Ci0gICBBTkQzWDYgZzI5MiAoLlkobl8xMDMpLCAKLQkuQyhuXzEpLCAKLQkuQihccHJlc2VudF9zdGF0ZVsyXSApLCAKLQkuQShuXzMpKTsKLSAgIEFORDNYNiBnMjkzICguWShuXzEwNCksIAotCS5DKG5fMiksIAotCS5CKFxwcmVzZW50X3N0YXRlWzFdICksIAotCS5BKG5fMykpOwotICAgQU8yMlg0IGcyOTQgKC5ZKG5fMTA1KSwgCi0JLkIxKG5fMyksIAotCS5CMChccHJlc2VudF9zdGF0ZVsxXSApLCAKLQkuQTEobl8xKSwgCi0JLkEwKFxwcmVzZW50X3N0YXRlWzBdICkpOwotZW5kbW9kdWxlCi0KLW1vZHVsZSBDS0xOUUQxQldQX1NQQ0FfOSAoCi0JRSwgCi0JQ1AsIAotCVRFLCAKLQlRKTsKLSAgIGlucHV0IEU7Ci0gICBpbnB1dCBDUDsKLSAgIGlucHV0IFRFOwotICAgb3V0cHV0IFE7Ci0KLSAgIFRMQVROVFNDQVgxNiBMQVRDSCAoLlNFKFRFKSwgCi0JLkVDSyhRKSwgCi0JLkUoRSksIAotCS5DSyhDUCkpOwotZW5kbW9kdWxlCi0KLW1vZHVsZSBSQ19DR19NT0RfMzI5MV8zMjkyICgKLQllbmFibGUsIAotCWNrX2luLCAKLQlja19vdXQsIAotCXRlc3QpOwotICAgaW5wdXQgZW5hYmxlOwotICAgaW5wdXQgY2tfaW47Ci0gICBvdXRwdXQgY2tfb3V0OwotICAgaW5wdXQgdGVzdDsKLQotICAgQ0tMTlFEMUJXUF9TUENBXzkgUkNfQ0dJQ19JTlNUICguRShlbmFibGUpLCAKLQkuQ1AoY2tfaW4pLCAKLQkuVEUodGVzdCksIAotCS5RKGNrX291dCkpOwotZW5kbW9kdWxlCi0KLW1vZHVsZSBTREZDTlFEMUJXUF9TUENBXzEwNSAoCi0JU0ksIAotCVNFLCAKLQlRLCAKLQlELCAKLQlDUCwgCi0JQ0ROKTsKLSAgIGlucHV0IFNJOwotICAgaW5wdXQgU0U7Ci0gICBvdXRwdXQgUTsKLSAgIGlucHV0IEQ7Ci0gICBpbnB1dCBDUDsKLSAgIGlucHV0IENETjsKLQotICAgU0RGRlJYNCBERkYgKC5TSShTSSksIAotCS5TRShTRSksIAotCS5STihDRE4pLCAKLQkuUShRKSwgCi0JLkQoRCksIAotCS5DSyhDUCkpOwotZW5kbW9kdWxlCi0KLW1vZHVsZSBSU0RGQ1NSSEQyQldQX1JFTUFQX1NQQ18yMyAoCi0JQ0ROLCAKLQlTRE4sIAotCUNQLCAKLQlELCAKLQlTSSwgCi0JU0UsIAotCVNBVkUsIAotCU5SRVNUT1JFLCAKLQlRKTsKLSAgIGlucHV0IENETjsKLSAgIGlucHV0IFNETjsKLSAgIGlucHV0IENQOwotICAgaW5wdXQgRDsKLSAgIGlucHV0IFNJOwotICAgaW5wdXQgU0U7Ci0gICBpbnB1dCBTQVZFOwotICAgaW5wdXQgTlJFU1RPUkU7Ci0gICBvdXRwdXQgUTsKLQotICAgU0RGQ05RRDFCV1BfU1BDQV8xMDUgc3RhdGVfcmVtYXAgKC5TSShTSSksIAotCS5TRShTRSksIAotCS5RKFEpLCAKLQkuRChEKSwgCi0JLkNQKENQKSwgCi0JLkNETihDRE4pKTsKLWVuZG1vZHVsZQotCi1tb2R1bGUgU0RGQ05RRDFCV1BfU1BDQV8xMDYgKAotCVNJLCAKLQlTRSwgCi0JUSwgCi0JRCwgCi0JQ1AsIAotCUNETik7Ci0gICBpbnB1dCBTSTsKLSAgIGlucHV0IFNFOwotICAgb3V0cHV0IFE7Ci0gICBpbnB1dCBEOwotICAgaW5wdXQgQ1A7Ci0gICBpbnB1dCBDRE47Ci0KLSAgIC8vIEludGVybmFsIHdpcmVzCi0gICB3aXJlIExUSUVISV9ORVQ7Ci0KLSAgIFRJRUhJIExUSUVISSAoLlkoTFRJRUhJX05FVCkpOwotICAgU0RGRlJYNCBERkYgKC5TSShTSSksIAotCS5TRShTRSksIAotCS5STihMVElFSElfTkVUKSwgCi0JLlEoUSksIAotCS5EKEQpLCAKLQkuQ0soQ1ApKTsKLWVuZG1vZHVsZQotCi1tb2R1bGUgUlNERkNTUkhEMkJXUF9SRU1BUF9TUENfMjQgKAotCUNETiwgCi0JU0ROLCAKLQlDUCwgCi0JRCwgCi0JU0ksIAotCVNFLCAKLQlTQVZFLCAKLQlOUkVTVE9SRSwgCi0JUSk7Ci0gICBpbnB1dCBDRE47Ci0gICBpbnB1dCBTRE47Ci0gICBpbnB1dCBDUDsKLSAgIGlucHV0IEQ7Ci0gICBpbnB1dCBTSTsKLSAgIGlucHV0IFNFOwotICAgaW5wdXQgU0FWRTsKLSAgIGlucHV0IE5SRVNUT1JFOwotICAgb3V0cHV0IFE7Ci0KLSAgIFNERkNOUUQxQldQX1NQQ0FfMTA2IHN0YXRlX3JlbWFwICguU0koU0kpLCAKLQkuU0UoU0UpLCAKLQkuUShRKSwgCi0JLkQoRCksIAotCS5DUChDUCksIAotCS5DRE4oMSdiMSkpOwotZW5kbW9kdWxlCi0KLW1vZHVsZSBTREZDTlFEMUJXUF9TUENBXzEwNyAoCi0JU0ksIAotCVNFLCAKLQlRLCAKLQlELCAKLQlDUCwgCi0JQ0ROKTsKLSAgIGlucHV0IFNJOwotICAgaW5wdXQgU0U7Ci0gICBvdXRwdXQgUTsKLSAgIGlucHV0IEQ7Ci0gICBpbnB1dCBDUDsKLSAgIGlucHV0IENETjsKLQotICAgLy8gSW50ZXJuYWwgd2lyZXMKLSAgIHdpcmUgTFRJRUhJX05FVDsKLQotICAgVElFSEkgTFRJRUhJICguWShMVElFSElfTkVUKSk7Ci0gICBTREZGUlg0IERGRiAoLlNJKFNJKSwgCi0JLlNFKFNFKSwgCi0JLlJOKExUSUVISV9ORVQpLCAKLQkuUShRKSwgCi0JLkQoRCksIAotCS5DSyhDUCkpOwotZW5kbW9kdWxlCi0KLW1vZHVsZSBSU0RGQ1NSSEQyQldQX1JFTUFQX1NQQ18yNSAoCi0JQ0ROLCAKLQlTRE4sIAotCUNQLCAKLQlELCAKLQlTSSwgCi0JU0UsIAotCVNBVkUsIAotCU5SRVNUT1JFLCAKLQlRKTsKLSAgIGlucHV0IENETjsKLSAgIGlucHV0IFNETjsKLSAgIGlucHV0IENQOwotICAgaW5wdXQgRDsKLSAgIGlucHV0IFNJOwotICAgaW5wdXQgU0U7Ci0gICBpbnB1dCBTQVZFOwotICAgaW5wdXQgTlJFU1RPUkU7Ci0gICBvdXRwdXQgUTsKLQotICAgU0RGQ05RRDFCV1BfU1BDQV8xMDcgc3RhdGVfcmVtYXAgKC5TSShTSSksIAotCS5TRShTRSksIAotCS5RKFEpLCAKLQkuRChEKSwgCi0JLkNQKENQKSwgCi0JLkNETigxJ2IxKSk7Ci1lbmRtb2R1bGUKLQotbW9kdWxlIFNERkNOUUQxQldQX1NQQ0FfMTA4ICgKLQlTSSwgCi0JU0UsIAotCVEsIAotCUQsIAotCUNQLCAKLQlDRE4pOwotICAgaW5wdXQgU0k7Ci0gICBpbnB1dCBTRTsKLSAgIG91dHB1dCBROwotICAgaW5wdXQgRDsKLSAgIGlucHV0IENQOwotICAgaW5wdXQgQ0ROOwotCi0gICAvLyBJbnRlcm5hbCB3aXJlcwotICAgd2lyZSBMVElFSElfTkVUOwotCi0gICBUSUVISSBMVElFSEkgKC5ZKExUSUVISV9ORVQpKTsKLSAgIFNERkZSWDQgREZGICguU0koU0kpLCAKLQkuU0UoU0UpLCAKLQkuUk4oTFRJRUhJX05FVCksIAotCS5RKFEpLCAKLQkuRChEKSwgCi0JLkNLKENQKSk7Ci1lbmRtb2R1bGUKLQotbW9kdWxlIFJTREZDU1JIRDJCV1BfUkVNQVBfU1BDXzI2ICgKLQlDRE4sIAotCVNETiwgCi0JQ1AsIAotCUQsIAotCVNJLCAKLQlTRSwgCi0JU0FWRSwgCi0JTlJFU1RPUkUsIAotCVEpOwotICAgaW5wdXQgQ0ROOwotICAgaW5wdXQgU0ROOwotICAgaW5wdXQgQ1A7Ci0gICBpbnB1dCBEOwotICAgaW5wdXQgU0k7Ci0gICBpbnB1dCBTRTsKLSAgIGlucHV0IFNBVkU7Ci0gICBpbnB1dCBOUkVTVE9SRTsKLSAgIG91dHB1dCBROwotCi0gICBTREZDTlFEMUJXUF9TUENBXzEwOCBzdGF0ZV9yZW1hcCAoLlNJKFNJKSwgCi0JLlNFKFNFKSwgCi0JLlEoUSksIAotCS5EKEQpLCAKLQkuQ1AoQ1ApLCAKLQkuQ0ROKDEnYjEpKTsKLWVuZG1vZHVsZQotCi1tb2R1bGUgU0RGQ05RRDFCV1BfU1BDQV8xMDkgKAotCVNJLCAKLQlTRSwgCi0JUSwgCi0JRCwgCi0JQ1AsIAotCUNETik7Ci0gICBpbnB1dCBTSTsKLSAgIGlucHV0IFNFOwotICAgb3V0cHV0IFE7Ci0gICBpbnB1dCBEOwotICAgaW5wdXQgQ1A7Ci0gICBpbnB1dCBDRE47Ci0KLSAgIC8vIEludGVybmFsIHdpcmVzCi0gICB3aXJlIExUSUVISV9ORVQ7Ci0KLSAgIFRJRUhJIExUSUVISSAoLlkoTFRJRUhJX05FVCkpOwotICAgU0RGRlJYNCBERkYgKC5TSShTSSksIAotCS5TRShTRSksIAotCS5STihMVElFSElfTkVUKSwgCi0JLlEoUSksIAotCS5EKEQpLCAKLQkuQ0soQ1ApKTsKLWVuZG1vZHVsZQotCi1tb2R1bGUgUlNERkNTUkhEMkJXUF9SRU1BUF9TUENfMjcgKAotCUNETiwgCi0JU0ROLCAKLQlDUCwgCi0JRCwgCi0JU0ksIAotCVNFLCAKLQlTQVZFLCAKLQlOUkVTVE9SRSwgCi0JUSk7Ci0gICBpbnB1dCBDRE47Ci0gICBpbnB1dCBTRE47Ci0gICBpbnB1dCBDUDsKLSAgIGlucHV0IEQ7Ci0gICBpbnB1dCBTSTsKLSAgIGlucHV0IFNFOwotICAgaW5wdXQgU0FWRTsKLSAgIGlucHV0IE5SRVNUT1JFOwotICAgb3V0cHV0IFE7Ci0KLSAgIFNERkNOUUQxQldQX1NQQ0FfMTA5IHN0YXRlX3JlbWFwICguU0koU0kpLCAKLQkuU0UoU0UpLCAKLQkuUShRKSwgCi0JLkQoRCksIAotCS5DUChDUCksIAotCS5DRE4oMSdiMSkpOwotZW5kbW9kdWxlCi0KLW1vZHVsZSBTREZDTlFEMUJXUF9TUENBXzExMCAoCi0JU0ksIAotCVNFLCAKLQlRLCAKLQlELCAKLQlDUCwgCi0JQ0ROKTsKLSAgIGlucHV0IFNJOwotICAgaW5wdXQgU0U7Ci0gICBvdXRwdXQgUTsKLSAgIGlucHV0IEQ7Ci0gICBpbnB1dCBDUDsKLSAgIGlucHV0IENETjsKLQotICAgLy8gSW50ZXJuYWwgd2lyZXMKLSAgIHdpcmUgTFRJRUhJX05FVDsKLQotICAgVElFSEkgTFRJRUhJICguWShMVElFSElfTkVUKSk7Ci0gICBTREZGUlg0IERGRiAoLlNJKFNJKSwgCi0JLlNFKFNFKSwgCi0JLlJOKExUSUVISV9ORVQpLCAKLQkuUShRKSwgCi0JLkQoRCksIAotCS5DSyhDUCkpOwotZW5kbW9kdWxlCi0KLW1vZHVsZSBSU0RGQ1NSSEQyQldQX1JFTUFQX1NQQ18yOCAoCi0JQ0ROLCAKLQlTRE4sIAotCUNQLCAKLQlELCAKLQlTSSwgCi0JU0UsIAotCVNBVkUsIAotCU5SRVNUT1JFLCAKLQlRKTsKLSAgIGlucHV0IENETjsKLSAgIGlucHV0IFNETjsKLSAgIGlucHV0IENQOwotICAgaW5wdXQgRDsKLSAgIGlucHV0IFNJOwotICAgaW5wdXQgU0U7Ci0gICBpbnB1dCBTQVZFOwotICAgaW5wdXQgTlJFU1RPUkU7Ci0gICBvdXRwdXQgUTsKLQotICAgU0RGQ05RRDFCV1BfU1BDQV8xMTAgc3RhdGVfcmVtYXAgKC5TSShTSSksIAotCS5TRShTRSksIAotCS5RKFEpLCAKLQkuRChEKSwgCi0JLkNQKENQKSwgCi0JLkNETigxJ2IxKSk7Ci1lbmRtb2R1bGUKLQotbW9kdWxlIFNERkNOUUQxQldQX1NQQ0FfMTExICgKLQlTSSwgCi0JU0UsIAotCVEsIAotCUQsIAotCUNQLCAKLQlDRE4pOwotICAgaW5wdXQgU0k7Ci0gICBpbnB1dCBTRTsKLSAgIG91dHB1dCBROwotICAgaW5wdXQgRDsKLSAgIGlucHV0IENQOwotICAgaW5wdXQgQ0ROOwotCi0gICBTREZGUlg0IERGRiAoLlNJKFNJKSwgCi0JLlNFKFNFKSwgCi0JLlJOKENETiksIAotCS5RKFEpLCAKLQkuRChEKSwgCi0JLkNLKENQKSk7Ci1lbmRtb2R1bGUKLQotbW9kdWxlIFJTREZDU1JIRDJCV1BfUkVNQVBfU1BDXzI5ICgKLQlDRE4sIAotCVNETiwgCi0JQ1AsIAotCUQsIAotCVNJLCAKLQlTRSwgCi0JU0FWRSwgCi0JTlJFU1RPUkUsIAotCVEpOwotICAgaW5wdXQgQ0ROOwotICAgaW5wdXQgU0ROOwotICAgaW5wdXQgQ1A7Ci0gICBpbnB1dCBEOwotICAgaW5wdXQgU0k7Ci0gICBpbnB1dCBTRTsKLSAgIGlucHV0IFNBVkU7Ci0gICBpbnB1dCBOUkVTVE9SRTsKLSAgIG91dHB1dCBROwotCi0gICBTREZDTlFEMUJXUF9TUENBXzExMSBzdGF0ZV9yZW1hcCAoLlNJKFNJKSwgCi0JLlNFKFNFKSwgCi0JLlEoUSksIAotCS5EKEQpLCAKLQkuQ1AoQ1ApLCAKLQkuQ0ROKENETikpOwotZW5kbW9kdWxlCi0KLW1vZHVsZSBTREZDTlFEMUJXUF9TUENBXzExMiAoCi0JU0ksIAotCVNFLCAKLQlRLCAKLQlELCAKLQlDUCwgCi0JQ0ROKTsKLSAgIGlucHV0IFNJOwotICAgaW5wdXQgU0U7Ci0gICBvdXRwdXQgUTsKLSAgIGlucHV0IEQ7Ci0gICBpbnB1dCBDUDsKLSAgIGlucHV0IENETjsKLQotICAgU0RGRlJYNCBERkYgKC5TSShTSSksIAotCS5TRShTRSksIAotCS5STihDRE4pLCAKLQkuUShRKSwgCi0JLkQoRCksIAotCS5DSyhDUCkpOwotZW5kbW9kdWxlCi0KLW1vZHVsZSBSU0RGQ1NSSEQyQldQX1JFTUFQX1NQQ18zMCAoCi0JQ0ROLCAKLQlTRE4sIAotCUNQLCAKLQlELCAKLQlTSSwgCi0JU0UsIAotCVNBVkUsIAotCU5SRVNUT1JFLCAKLQlRKTsKLSAgIGlucHV0IENETjsKLSAgIGlucHV0IFNETjsKLSAgIGlucHV0IENQOwotICAgaW5wdXQgRDsKLSAgIGlucHV0IFNJOwotICAgaW5wdXQgU0U7Ci0gICBpbnB1dCBTQVZFOwotICAgaW5wdXQgTlJFU1RPUkU7Ci0gICBvdXRwdXQgUTsKLQotICAgU0RGQ05RRDFCV1BfU1BDQV8xMTIgc3RhdGVfcmVtYXAgKC5TSShTSSksIAotCS5TRShTRSksIAotCS5RKFEpLCAKLQkuRChEKSwgCi0JLkNQKENQKSwgCi0JLkNETihDRE4pKTsKLWVuZG1vZHVsZQotCi1tb2R1bGUgU0RGQ05RRDFCV1BfU1BDQV8xMTMgKAotCVNJLCAKLQlTRSwgCi0JUSwgCi0JRCwgCi0JQ1AsIAotCUNETik7Ci0gICBpbnB1dCBTSTsKLSAgIGlucHV0IFNFOwotICAgb3V0cHV0IFE7Ci0gICBpbnB1dCBEOwotICAgaW5wdXQgQ1A7Ci0gICBpbnB1dCBDRE47Ci0KLSAgIFNERkZSWDQgREZGICguU0koU0kpLCAKLQkuU0UoU0UpLCAKLQkuUk4oQ0ROKSwgCi0JLlEoUSksIAotCS5EKEQpLCAKLQkuQ0soQ1ApKTsKLWVuZG1vZHVsZQotCi1tb2R1bGUgUlNERkNTUkhEMkJXUF9SRU1BUF9TUENfMzEgKAotCUNETiwgCi0JU0ROLCAKLQlDUCwgCi0JRCwgCi0JU0ksIAotCVNFLCAKLQlTQVZFLCAKLQlOUkVTVE9SRSwgCi0JUSk7Ci0gICBpbnB1dCBDRE47Ci0gICBpbnB1dCBTRE47Ci0gICBpbnB1dCBDUDsKLSAgIGlucHV0IEQ7Ci0gICBpbnB1dCBTSTsKLSAgIGlucHV0IFNFOwotICAgaW5wdXQgU0FWRTsKLSAgIGlucHV0IE5SRVNUT1JFOwotICAgb3V0cHV0IFE7Ci0KLSAgIFNERkNOUUQxQldQX1NQQ0FfMTEzIHN0YXRlX3JlbWFwICguU0koU0kpLCAKLQkuU0UoU0UpLCAKLQkuUShRKSwgCi0JLkQoRCksIAotCS5DUChDUCksIAotCS5DRE4oQ0ROKSk7Ci1lbmRtb2R1bGUKLQotbW9kdWxlIFNERkNOUUQxQldQX1NQQ0FfMTE0ICgKLQlTSSwgCi0JU0UsIAotCVEsIAotCUQsIAotCUNQLCAKLQlDRE4pOwotICAgaW5wdXQgU0k7Ci0gICBpbnB1dCBTRTsKLSAgIG91dHB1dCBROwotICAgaW5wdXQgRDsKLSAgIGlucHV0IENQOwotICAgaW5wdXQgQ0ROOwotCi0gICBTREZGUlg0IERGRiAoLlNJKFNJKSwgCi0JLlNFKFNFKSwgCi0JLlJOKENETiksIAotCS5RKFEpLCAKLQkuRChEKSwgCi0JLkNLKENQKSk7Ci1lbmRtb2R1bGUKLQotbW9kdWxlIFJTREZDU1JIRDJCV1BfUkVNQVBfU1BDXzMyICgKLQlDRE4sIAotCVNETiwgCi0JQ1AsIAotCUQsIAotCVNJLCAKLQlTRSwgCi0JU0FWRSwgCi0JTlJFU1RPUkUsIAotCVEpOwotICAgaW5wdXQgQ0ROOwotICAgaW5wdXQgU0ROOwotICAgaW5wdXQgQ1A7Ci0gICBpbnB1dCBEOwotICAgaW5wdXQgU0k7Ci0gICBpbnB1dCBTRTsKLSAgIGlucHV0IFNBVkU7Ci0gICBpbnB1dCBOUkVTVE9SRTsKLSAgIG91dHB1dCBROwotCi0gICBTREZDTlFEMUJXUF9TUENBXzExNCBzdGF0ZV9yZW1hcCAoLlNJKFNJKSwgCi0JLlNFKFNFKSwgCi0JLlEoUSksIAotCS5EKEQpLCAKLQkuQ1AoQ1ApLCAKLQkuQ0ROKENETikpOwotZW5kbW9kdWxlCi0KLW1vZHVsZSBTREZDTlFEMUJXUF9TUENBXzExNSAoCi0JU0ksIAotCVNFLCAKLQlRLCAKLQlELCAKLQlDUCwgCi0JQ0ROKTsKLSAgIGlucHV0IFNJOwotICAgaW5wdXQgU0U7Ci0gICBvdXRwdXQgUTsKLSAgIGlucHV0IEQ7Ci0gICBpbnB1dCBDUDsKLSAgIGlucHV0IENETjsKLQotICAgU0RGRlJYNCBERkYgKC5TSShTSSksIAotCS5TRShTRSksIAotCS5STihDRE4pLCAKLQkuUShRKSwgCi0JLkQoRCksIAotCS5DSyhDUCkpOwotZW5kbW9kdWxlCi0KLW1vZHVsZSBSU0RGQ1NSSEQyQldQX1JFTUFQX1NQQ18zMyAoCi0JQ0ROLCAKLQlTRE4sIAotCUNQLCAKLQlELCAKLQlTSSwgCi0JU0UsIAotCVNBVkUsIAotCU5SRVNUT1JFLCAKLQlRKTsKLSAgIGlucHV0IENETjsKLSAgIGlucHV0IFNETjsKLSAgIGlucHV0IENQOwotICAgaW5wdXQgRDsKLSAgIGlucHV0IFNJOwotICAgaW5wdXQgU0U7Ci0gICBpbnB1dCBTQVZFOwotICAgaW5wdXQgTlJFU1RPUkU7Ci0gICBvdXRwdXQgUTsKLQotICAgU0RGQ05RRDFCV1BfU1BDQV8xMTUgc3RhdGVfcmVtYXAgKC5TSShTSSksIAotCS5TRShTRSksIAotCS5RKFEpLCAKLQkuRChEKSwgCi0JLkNQKENQKSwgCi0JLkNETihDRE4pKTsKLWVuZG1vZHVsZQotCi1tb2R1bGUgU0RGQ05RRDFCV1BfU1BDQV8xMTYgKAotCVNJLCAKLQlTRSwgCi0JUSwgCi0JRCwgCi0JQ1AsIAotCUNETik7Ci0gICBpbnB1dCBTSTsKLSAgIGlucHV0IFNFOwotICAgb3V0cHV0IFE7Ci0gICBpbnB1dCBEOwotICAgaW5wdXQgQ1A7Ci0gICBpbnB1dCBDRE47Ci0KLSAgIFNERkZSWDQgREZGICguU0koU0kpLCAKLQkuU0UoU0UpLCAKLQkuUk4oQ0ROKSwgCi0JLlEoUSksIAotCS5EKEQpLCAKLQkuQ0soQ1ApKTsKLWVuZG1vZHVsZQotCi1tb2R1bGUgUlNERkNTUkhEMkJXUF9SRU1BUF9TUENfMzQgKAotCUNETiwgCi0JU0ROLCAKLQlDUCwgCi0JRCwgCi0JU0ksIAotCVNFLCAKLQlTQVZFLCAKLQlOUkVTVE9SRSwgCi0JUSk7Ci0gICBpbnB1dCBDRE47Ci0gICBpbnB1dCBTRE47Ci0gICBpbnB1dCBDUDsKLSAgIGlucHV0IEQ7Ci0gICBpbnB1dCBTSTsKLSAgIGlucHV0IFNFOwotICAgaW5wdXQgU0FWRTsKLSAgIGlucHV0IE5SRVNUT1JFOwotICAgb3V0cHV0IFE7Ci0KLSAgIFNERkNOUUQxQldQX1NQQ0FfMTE2IHN0YXRlX3JlbWFwICguU0koU0kpLCAKLQkuU0UoU0UpLCAKLQkuUShRKSwgCi0JLkQoRCksIAotCS5DUChDUCksIAotCS5DRE4oQ0ROKSk7Ci1lbmRtb2R1bGUKLQotbW9kdWxlIFNERkNOUUQxQldQX1NQQ0FfMTE3ICgKLQlTSSwgCi0JU0UsIAotCVEsIAotCUQsIAotCUNQLCAKLQlDRE4pOwotICAgaW5wdXQgU0k7Ci0gICBpbnB1dCBTRTsKLSAgIG91dHB1dCBROwotICAgaW5wdXQgRDsKLSAgIGlucHV0IENQOwotICAgaW5wdXQgQ0ROOwotCi0gICBTREZGUlg0IERGRiAoLlNJKFNJKSwgCi0JLlNFKFNFKSwgCi0JLlJOKENETiksIAotCS5RKFEpLCAKLQkuRChEKSwgCi0JLkNLKENQKSk7Ci1lbmRtb2R1bGUKLQotbW9kdWxlIFJTREZDU1JIRDJCV1BfUkVNQVBfU1BDXzM1ICgKLQlDRE4sIAotCVNETiwgCi0JQ1AsIAotCUQsIAotCVNJLCAKLQlTRSwgCi0JU0FWRSwgCi0JTlJFU1RPUkUsIAotCVEpOwotICAgaW5wdXQgQ0ROOwotICAgaW5wdXQgU0ROOwotICAgaW5wdXQgQ1A7Ci0gICBpbnB1dCBEOwotICAgaW5wdXQgU0k7Ci0gICBpbnB1dCBTRTsKLSAgIGlucHV0IFNBVkU7Ci0gICBpbnB1dCBOUkVTVE9SRTsKLSAgIG91dHB1dCBROwotCi0gICBTREZDTlFEMUJXUF9TUENBXzExNyBzdGF0ZV9yZW1hcCAoLlNJKFNJKSwgCi0JLlNFKFNFKSwgCi0JLlEoUSksIAotCS5EKEQpLCAKLQkuQ1AoQ1ApLCAKLQkuQ0ROKENETikpOwotZW5kbW9kdWxlCi0KLW1vZHVsZSBTREZDTlFEMUJXUF9TUENBXzExOCAoCi0JU0ksIAotCVNFLCAKLQlRLCAKLQlELCAKLQlDUCwgCi0JQ0ROKTsKLSAgIGlucHV0IFNJOwotICAgaW5wdXQgU0U7Ci0gICBvdXRwdXQgUTsKLSAgIGlucHV0IEQ7Ci0gICBpbnB1dCBDUDsKLSAgIGlucHV0IENETjsKLQotICAgLy8gSW50ZXJuYWwgd2lyZXMKLSAgIHdpcmUgTFRJRUhJX05FVDsKLQotICAgVElFSEkgTFRJRUhJICguWShMVElFSElfTkVUKSk7Ci0gICBTREZGUlg0IERGRiAoLlNJKFNJKSwgCi0JLlNFKFNFKSwgCi0JLlJOKExUSUVISV9ORVQpLCAKLQkuUShRKSwgCi0JLkQoRCksIAotCS5DSyhDUCkpOwotZW5kbW9kdWxlCi0KLW1vZHVsZSBSU0RGQ1NSSEQyQldQX1JFTUFQX1NQQ18zNiAoCi0JQ0ROLCAKLQlTRE4sIAotCUNQLCAKLQlELCAKLQlTSSwgCi0JU0UsIAotCVNBVkUsIAotCU5SRVNUT1JFLCAKLQlRKTsKLSAgIGlucHV0IENETjsKLSAgIGlucHV0IFNETjsKLSAgIGlucHV0IENQOwotICAgaW5wdXQgRDsKLSAgIGlucHV0IFNJOwotICAgaW5wdXQgU0U7Ci0gICBpbnB1dCBTQVZFOwotICAgaW5wdXQgTlJFU1RPUkU7Ci0gICBvdXRwdXQgUTsKLQotICAgU0RGQ05RRDFCV1BfU1BDQV8xMTggc3RhdGVfcmVtYXAgKC5TSShTSSksIAotCS5TRShTRSksIAotCS5RKFEpLCAKLQkuRChEKSwgCi0JLkNQKENQKSwgCi0JLkNETigxJ2IxKSk7Ci1lbmRtb2R1bGUKLQotbW9kdWxlIFNERkNOUUQxQldQX1NQQ0FfMTE5ICgKLQlTSSwgCi0JU0UsIAotCVEsIAotCUQsIAotCUNQLCAKLQlDRE4pOwotICAgaW5wdXQgU0k7Ci0gICBpbnB1dCBTRTsKLSAgIG91dHB1dCBROwotICAgaW5wdXQgRDsKLSAgIGlucHV0IENQOwotICAgaW5wdXQgQ0ROOwotCi0gICAvLyBJbnRlcm5hbCB3aXJlcwotICAgd2lyZSBMVElFSElfTkVUOwotCi0gICBUSUVISSBMVElFSEkgKC5ZKExUSUVISV9ORVQpKTsKLSAgIFNERkZSWDQgREZGICguU0koU0kpLCAKLQkuU0UoU0UpLCAKLQkuUk4oTFRJRUhJX05FVCksIAotCS5RKFEpLCAKLQkuRChEKSwgCi0JLkNLKENQKSk7Ci1lbmRtb2R1bGUKLQotbW9kdWxlIFJTREZDU1JIRDJCV1BfUkVNQVBfU1BDXzM3ICgKLQlDRE4sIAotCVNETiwgCi0JQ1AsIAotCUQsIAotCVNJLCAKLQlTRSwgCi0JU0FWRSwgCi0JTlJFU1RPUkUsIAotCVEpOwotICAgaW5wdXQgQ0ROOwotICAgaW5wdXQgU0ROOwotICAgaW5wdXQgQ1A7Ci0gICBpbnB1dCBEOwotICAgaW5wdXQgU0k7Ci0gICBpbnB1dCBTRTsKLSAgIGlucHV0IFNBVkU7Ci0gICBpbnB1dCBOUkVTVE9SRTsKLSAgIG91dHB1dCBROwotCi0gICBTREZDTlFEMUJXUF9TUENBXzExOSBzdGF0ZV9yZW1hcCAoLlNJKFNJKSwgCi0JLlNFKFNFKSwgCi0JLlEoUSksIAotCS5EKEQpLCAKLQkuQ1AoQ1ApLCAKLQkuQ0ROKDEnYjEpKTsKLWVuZG1vZHVsZQotCi1tb2R1bGUgU0RGQ05RRDFCV1BfU1BDQV8xMjAgKAotCVNJLCAKLQlTRSwgCi0JUSwgCi0JRCwgCi0JQ1AsIAotCUNETik7Ci0gICBpbnB1dCBTSTsKLSAgIGlucHV0IFNFOwotICAgb3V0cHV0IFE7Ci0gICBpbnB1dCBEOwotICAgaW5wdXQgQ1A7Ci0gICBpbnB1dCBDRE47Ci0KLSAgIC8vIEludGVybmFsIHdpcmVzCi0gICB3aXJlIExUSUVISV9ORVQ7Ci0KLSAgIFRJRUhJIExUSUVISSAoLlkoTFRJRUhJX05FVCkpOwotICAgU0RGRlJYNCBERkYgKC5TSShTSSksIAotCS5TRShTRSksIAotCS5STihMVElFSElfTkVUKSwgCi0JLlEoUSksIAotCS5EKEQpLCAKLQkuQ0soQ1ApKTsKLWVuZG1vZHVsZQotCi1tb2R1bGUgUlNERkNTUkhEMkJXUF9SRU1BUF9TUENfMzggKAotCUNETiwgCi0JU0ROLCAKLQlDUCwgCi0JRCwgCi0JU0ksIAotCVNFLCAKLQlTQVZFLCAKLQlOUkVTVE9SRSwgCi0JUSk7Ci0gICBpbnB1dCBDRE47Ci0gICBpbnB1dCBTRE47Ci0gICBpbnB1dCBDUDsKLSAgIGlucHV0IEQ7Ci0gICBpbnB1dCBTSTsKLSAgIGlucHV0IFNFOwotICAgaW5wdXQgU0FWRTsKLSAgIGlucHV0IE5SRVNUT1JFOwotICAgb3V0cHV0IFE7Ci0KLSAgIFNERkNOUUQxQldQX1NQQ0FfMTIwIHN0YXRlX3JlbWFwICguU0koU0kpLCAKLQkuU0UoU0UpLCAKLQkuUShRKSwgCi0JLkQoRCksIAotCS5DUChDUCksIAotCS5DRE4oMSdiMSkpOwotZW5kbW9kdWxlCi0KLW1vZHVsZSBTREZDTlFEMUJXUF9TUENBXzEyMSAoCi0JU0ksIAotCVNFLCAKLQlRLCAKLQlELCAKLQlDUCwgCi0JQ0ROKTsKLSAgIGlucHV0IFNJOwotICAgaW5wdXQgU0U7Ci0gICBvdXRwdXQgUTsKLSAgIGlucHV0IEQ7Ci0gICBpbnB1dCBDUDsKLSAgIGlucHV0IENETjsKLQotICAgU0RGRlJYNCBERkYgKC5TSShTSSksIAotCS5TRShTRSksIAotCS5STihDRE4pLCAKLQkuUShRKSwgCi0JLkQoRCksIAotCS5DSyhDUCkpOwotZW5kbW9kdWxlCi0KLW1vZHVsZSBSU0RGQ1NSSEQyQldQX1JFTUFQX1NQQ18zOSAoCi0JQ0ROLCAKLQlTRE4sIAotCUNQLCAKLQlELCAKLQlTSSwgCi0JU0UsIAotCVNBVkUsIAotCU5SRVNUT1JFLCAKLQlRKTsKLSAgIGlucHV0IENETjsKLSAgIGlucHV0IFNETjsKLSAgIGlucHV0IENQOwotICAgaW5wdXQgRDsKLSAgIGlucHV0IFNJOwotICAgaW5wdXQgU0U7Ci0gICBpbnB1dCBTQVZFOwotICAgaW5wdXQgTlJFU1RPUkU7Ci0gICBvdXRwdXQgUTsKLQotICAgU0RGQ05RRDFCV1BfU1BDQV8xMjEgc3RhdGVfcmVtYXAgKC5TSShTSSksIAotCS5TRShTRSksIAotCS5RKFEpLCAKLQkuRChEKSwgCi0JLkNQKENQKSwgCi0JLkNETihDRE4pKTsKLWVuZG1vZHVsZQotCi1tb2R1bGUgU0RGQ05RRDFCV1BfU1BDQV8xMjIgKAotCVNJLCAKLQlTRSwgCi0JUSwgCi0JRCwgCi0JQ1AsIAotCUNETik7Ci0gICBpbnB1dCBTSTsKLSAgIGlucHV0IFNFOwotICAgb3V0cHV0IFE7Ci0gICBpbnB1dCBEOwotICAgaW5wdXQgQ1A7Ci0gICBpbnB1dCBDRE47Ci0KLSAgIFNERkZSWDQgREZGICguU0koU0kpLCAKLQkuU0UoU0UpLCAKLQkuUk4oQ0ROKSwgCi0JLlEoUSksIAotCS5EKEQpLCAKLQkuQ0soQ1ApKTsKLWVuZG1vZHVsZQotCi1tb2R1bGUgUlNERkNTUkhEMkJXUF9SRU1BUF9TUENfNDAgKAotCUNETiwgCi0JU0ROLCAKLQlDUCwgCi0JRCwgCi0JU0ksIAotCVNFLCAKLQlTQVZFLCAKLQlOUkVTVE9SRSwgCi0JUSk7Ci0gICBpbnB1dCBDRE47Ci0gICBpbnB1dCBTRE47Ci0gICBpbnB1dCBDUDsKLSAgIGlucHV0IEQ7Ci0gICBpbnB1dCBTSTsKLSAgIGlucHV0IFNFOwotICAgaW5wdXQgU0FWRTsKLSAgIGlucHV0IE5SRVNUT1JFOwotICAgb3V0cHV0IFE7Ci0KLSAgIFNERkNOUUQxQldQX1NQQ0FfMTIyIHN0YXRlX3JlbWFwICguU0koU0kpLCAKLQkuU0UoU0UpLCAKLQkuUShRKSwgCi0JLkQoRCksIAotCS5DUChDUCksIAotCS5DRE4oQ0ROKSk7Ci1lbmRtb2R1bGUKLQotbW9kdWxlIFNERkNOUUQxQldQX1NQQ0FfMTIzICgKLQlTSSwgCi0JU0UsIAotCVEsIAotCUQsIAotCUNQLCAKLQlDRE4pOwotICAgaW5wdXQgU0k7Ci0gICBpbnB1dCBTRTsKLSAgIG91dHB1dCBROwotICAgaW5wdXQgRDsKLSAgIGlucHV0IENQOwotICAgaW5wdXQgQ0ROOwotCi0gICBTREZGUlg0IERGRiAoLlNJKFNJKSwgCi0JLlNFKFNFKSwgCi0JLlJOKENETiksIAotCS5RKFEpLCAKLQkuRChEKSwgCi0JLkNLKENQKSk7Ci1lbmRtb2R1bGUKLQotbW9kdWxlIFJTREZDU1JIRDJCV1BfUkVNQVBfU1BDXzQxICgKLQlDRE4sIAotCVNETiwgCi0JQ1AsIAotCUQsIAotCVNJLCAKLQlTRSwgCi0JU0FWRSwgCi0JTlJFU1RPUkUsIAotCVEpOwotICAgaW5wdXQgQ0ROOwotICAgaW5wdXQgU0ROOwotICAgaW5wdXQgQ1A7Ci0gICBpbnB1dCBEOwotICAgaW5wdXQgU0k7Ci0gICBpbnB1dCBTRTsKLSAgIGlucHV0IFNBVkU7Ci0gICBpbnB1dCBOUkVTVE9SRTsKLSAgIG91dHB1dCBROwotCi0gICBTREZDTlFEMUJXUF9TUENBXzEyMyBzdGF0ZV9yZW1hcCAoLlNJKFNJKSwgCi0JLlNFKFNFKSwgCi0JLlEoUSksIAotCS5EKEQpLCAKLQkuQ1AoQ1ApLCAKLQkuQ0ROKENETikpOwotZW5kbW9kdWxlCi0KLW1vZHVsZSBTREZDTlFEMUJXUF9TUENBXzEyNCAoCi0JU0ksIAotCVNFLCAKLQlRLCAKLQlELCAKLQlDUCwgCi0JQ0ROKTsKLSAgIGlucHV0IFNJOwotICAgaW5wdXQgU0U7Ci0gICBvdXRwdXQgUTsKLSAgIGlucHV0IEQ7Ci0gICBpbnB1dCBDUDsKLSAgIGlucHV0IENETjsKLQotICAgU0RGRlJYNCBERkYgKC5TSShTSSksIAotCS5TRShTRSksIAotCS5STihDRE4pLCAKLQkuUShRKSwgCi0JLkQoRCksIAotCS5DSyhDUCkpOwotZW5kbW9kdWxlCi0KLW1vZHVsZSBSU0RGQ1NSSEQyQldQX1JFTUFQX1NQQ180MiAoCi0JQ0ROLCAKLQlTRE4sIAotCUNQLCAKLQlELCAKLQlTSSwgCi0JU0UsIAotCVNBVkUsIAotCU5SRVNUT1JFLCAKLQlRKTsKLSAgIGlucHV0IENETjsKLSAgIGlucHV0IFNETjsKLSAgIGlucHV0IENQOwotICAgaW5wdXQgRDsKLSAgIGlucHV0IFNJOwotICAgaW5wdXQgU0U7Ci0gICBpbnB1dCBTQVZFOwotICAgaW5wdXQgTlJFU1RPUkU7Ci0gICBvdXRwdXQgUTsKLQotICAgU0RGQ05RRDFCV1BfU1BDQV8xMjQgc3RhdGVfcmVtYXAgKC5TSShTSSksIAotCS5TRShTRSksIAotCS5RKFEpLCAKLQkuRChEKSwgCi0JLkNQKENQKSwgCi0JLkNETihDRE4pKTsKLWVuZG1vZHVsZQotCi1tb2R1bGUgU0RGQ05RRDFCV1BfU1BDQV8xMjUgKAotCVNJLCAKLQlTRSwgCi0JUSwgCi0JRCwgCi0JQ1AsIAotCUNETik7Ci0gICBpbnB1dCBTSTsKLSAgIGlucHV0IFNFOwotICAgb3V0cHV0IFE7Ci0gICBpbnB1dCBEOwotICAgaW5wdXQgQ1A7Ci0gICBpbnB1dCBDRE47Ci0KLSAgIFNERkZSWDQgREZGICguU0koU0kpLCAKLQkuU0UoU0UpLCAKLQkuUk4oQ0ROKSwgCi0JLlEoUSksIAotCS5EKEQpLCAKLQkuQ0soQ1ApKTsKLWVuZG1vZHVsZQotCi1tb2R1bGUgUlNERkNTUkhEMkJXUF9SRU1BUF9TUENfNDMgKAotCUNETiwgCi0JU0ROLCAKLQlDUCwgCi0JRCwgCi0JU0ksIAotCVNFLCAKLQlTQVZFLCAKLQlOUkVTVE9SRSwgCi0JUSk7Ci0gICBpbnB1dCBDRE47Ci0gICBpbnB1dCBTRE47Ci0gICBpbnB1dCBDUDsKLSAgIGlucHV0IEQ7Ci0gICBpbnB1dCBTSTsKLSAgIGlucHV0IFNFOwotICAgaW5wdXQgU0FWRTsKLSAgIGlucHV0IE5SRVNUT1JFOwotICAgb3V0cHV0IFE7Ci0KLSAgIFNERkNOUUQxQldQX1NQQ0FfMTI1IHN0YXRlX3JlbWFwICguU0koU0kpLCAKLQkuU0UoU0UpLCAKLQkuUShRKSwgCi0JLkQoRCksIAotCS5DUChDUCksIAotCS5DRE4oQ0ROKSk7Ci1lbmRtb2R1bGUKLQotbW9kdWxlIFNERkNOUUQxQldQX1NQQ0FfMTI2ICgKLQlTSSwgCi0JU0UsIAotCVEsIAotCUQsIAotCUNQLCAKLQlDRE4pOwotICAgaW5wdXQgU0k7Ci0gICBpbnB1dCBTRTsKLSAgIG91dHB1dCBROwotICAgaW5wdXQgRDsKLSAgIGlucHV0IENQOwotICAgaW5wdXQgQ0ROOwotCi0gICAvLyBJbnRlcm5hbCB3aXJlcwotICAgd2lyZSBMVElFSElfTkVUOwotCi0gICBUSUVISSBMVElFSEkgKC5ZKExUSUVISV9ORVQpKTsKLSAgIFNERkZSWDQgREZGICguU0koU0kpLCAKLQkuU0UoU0UpLCAKLQkuUk4oTFRJRUhJX05FVCksIAotCS5RKFEpLCAKLQkuRChEKSwgCi0JLkNLKENQKSk7Ci1lbmRtb2R1bGUKLQotbW9kdWxlIFJTREZDU1JIRDJCV1BfUkVNQVBfU1BDXzQ0ICgKLQlDRE4sIAotCVNETiwgCi0JQ1AsIAotCUQsIAotCVNJLCAKLQlTRSwgCi0JU0FWRSwgCi0JTlJFU1RPUkUsIAotCVEpOwotICAgaW5wdXQgQ0ROOwotICAgaW5wdXQgU0ROOwotICAgaW5wdXQgQ1A7Ci0gICBpbnB1dCBEOwotICAgaW5wdXQgU0k7Ci0gICBpbnB1dCBTRTsKLSAgIGlucHV0IFNBVkU7Ci0gICBpbnB1dCBOUkVTVE9SRTsKLSAgIG91dHB1dCBROwotCi0gICBTREZDTlFEMUJXUF9TUENBXzEyNiBzdGF0ZV9yZW1hcCAoLlNJKFNJKSwgCi0JLlNFKFNFKSwgCi0JLlEoUSksIAotCS5EKEQpLCAKLQkuQ1AoQ1ApLCAKLQkuQ0ROKDEnYjEpKTsKLWVuZG1vZHVsZQotCi1tb2R1bGUgU0RGQ05RRDFCV1BfU1BDQV8xMjcgKAotCVNJLCAKLQlTRSwgCi0JUSwgCi0JRCwgCi0JQ1AsIAotCUNETik7Ci0gICBpbnB1dCBTSTsKLSAgIGlucHV0IFNFOwotICAgb3V0cHV0IFE7Ci0gICBpbnB1dCBEOwotICAgaW5wdXQgQ1A7Ci0gICBpbnB1dCBDRE47Ci0KLSAgIC8vIEludGVybmFsIHdpcmVzCi0gICB3aXJlIExUSUVISV9ORVQ7Ci0KLSAgIFRJRUhJIExUSUVISSAoLlkoTFRJRUhJX05FVCkpOwotICAgU0RGRlJYNCBERkYgKC5TSShTSSksIAotCS5TRShTRSksIAotCS5STihMVElFSElfTkVUKSwgCi0JLlEoUSksIAotCS5EKEQpLCAKLQkuQ0soQ1ApKTsKLWVuZG1vZHVsZQotCi1tb2R1bGUgUlNERkNTUkhEMkJXUF9SRU1BUF9TUENfNDUgKAotCUNETiwgCi0JU0ROLCAKLQlDUCwgCi0JRCwgCi0JU0ksIAotCVNFLCAKLQlTQVZFLCAKLQlOUkVTVE9SRSwgCi0JUSk7Ci0gICBpbnB1dCBDRE47Ci0gICBpbnB1dCBTRE47Ci0gICBpbnB1dCBDUDsKLSAgIGlucHV0IEQ7Ci0gICBpbnB1dCBTSTsKLSAgIGlucHV0IFNFOwotICAgaW5wdXQgU0FWRTsKLSAgIGlucHV0IE5SRVNUT1JFOwotICAgb3V0cHV0IFE7Ci0KLSAgIFNERkNOUUQxQldQX1NQQ0FfMTI3IHN0YXRlX3JlbWFwICguU0koU0kpLCAKLQkuU0UoU0UpLCAKLQkuUShRKSwgCi0JLkQoRCksIAotCS5DUChDUCksIAotCS5DRE4oMSdiMSkpOwotZW5kbW9kdWxlCi0KLW1vZHVsZSBTREZDTlFEMUJXUF9TUENBXzEyOCAoCi0JU0ksIAotCVNFLCAKLQlRLCAKLQlELCAKLQlDUCwgCi0JQ0ROKTsKLSAgIGlucHV0IFNJOwotICAgaW5wdXQgU0U7Ci0gICBvdXRwdXQgUTsKLSAgIGlucHV0IEQ7Ci0gICBpbnB1dCBDUDsKLSAgIGlucHV0IENETjsKLQotICAgLy8gSW50ZXJuYWwgd2lyZXMKLSAgIHdpcmUgTFRJRUhJX05FVDsKLQotICAgVElFSEkgTFRJRUhJICguWShMVElFSElfTkVUKSk7Ci0gICBTREZGUlg0IERGRiAoLlNJKFNJKSwgCi0JLlNFKFNFKSwgCi0JLlJOKExUSUVISV9ORVQpLCAKLQkuUShRKSwgCi0JLkQoRCksIAotCS5DSyhDUCkpOwotZW5kbW9kdWxlCi0KLW1vZHVsZSBSU0RGQ1NSSEQyQldQX1JFTUFQX1NQQ180NiAoCi0JQ0ROLCAKLQlTRE4sIAotCUNQLCAKLQlELCAKLQlTSSwgCi0JU0UsIAotCVNBVkUsIAotCU5SRVNUT1JFLCAKLQlRKTsKLSAgIGlucHV0IENETjsKLSAgIGlucHV0IFNETjsKLSAgIGlucHV0IENQOwotICAgaW5wdXQgRDsKLSAgIGlucHV0IFNJOwotICAgaW5wdXQgU0U7Ci0gICBpbnB1dCBTQVZFOwotICAgaW5wdXQgTlJFU1RPUkU7Ci0gICBvdXRwdXQgUTsKLQotICAgU0RGQ05RRDFCV1BfU1BDQV8xMjggc3RhdGVfcmVtYXAgKC5TSShTSSksIAotCS5TRShTRSksIAotCS5RKFEpLCAKLQkuRChEKSwgCi0JLkNQKENQKSwgCi0JLkNETigxJ2IxKSk7Ci1lbmRtb2R1bGUKLQotbW9kdWxlIFNERkNOUUQxQldQX1NQQ0FfMTI5ICgKLQlTSSwgCi0JU0UsIAotCVEsIAotCUQsIAotCUNQLCAKLQlDRE4pOwotICAgaW5wdXQgU0k7Ci0gICBpbnB1dCBTRTsKLSAgIG91dHB1dCBROwotICAgaW5wdXQgRDsKLSAgIGlucHV0IENQOwotICAgaW5wdXQgQ0ROOwotCi0gICAvLyBJbnRlcm5hbCB3aXJlcwotICAgd2lyZSBMVElFSElfTkVUOwotCi0gICBUSUVISSBMVElFSEkgKC5ZKExUSUVISV9ORVQpKTsKLSAgIFNERkZSWDQgREZGICguU0koU0kpLCAKLQkuU0UoU0UpLCAKLQkuUk4oTFRJRUhJX05FVCksIAotCS5RKFEpLCAKLQkuRChEKSwgCi0JLkNLKENQKSk7Ci1lbmRtb2R1bGUKLQotbW9kdWxlIFJTREZDU1JIRDJCV1BfUkVNQVBfU1BDXzQ3ICgKLQlDRE4sIAotCVNETiwgCi0JQ1AsIAotCUQsIAotCVNJLCAKLQlTRSwgCi0JU0FWRSwgCi0JTlJFU1RPUkUsIAotCVEpOwotICAgaW5wdXQgQ0ROOwotICAgaW5wdXQgU0ROOwotICAgaW5wdXQgQ1A7Ci0gICBpbnB1dCBEOwotICAgaW5wdXQgU0k7Ci0gICBpbnB1dCBTRTsKLSAgIGlucHV0IFNBVkU7Ci0gICBpbnB1dCBOUkVTVE9SRTsKLSAgIG91dHB1dCBROwotCi0gICBTREZDTlFEMUJXUF9TUENBXzEyOSBzdGF0ZV9yZW1hcCAoLlNJKFNJKSwgCi0JLlNFKFNFKSwgCi0JLlEoUSksIAotCS5EKEQpLCAKLQkuQ1AoQ1ApLCAKLQkuQ0ROKDEnYjEpKTsKLWVuZG1vZHVsZQotCi1tb2R1bGUgU0RGQ05RRDFCV1BfU1BDQV8xMzAgKAotCVNJLCAKLQlTRSwgCi0JUSwgCi0JRCwgCi0JQ1AsIAotCUNETik7Ci0gICBpbnB1dCBTSTsKLSAgIGlucHV0IFNFOwotICAgb3V0cHV0IFE7Ci0gICBpbnB1dCBEOwotICAgaW5wdXQgQ1A7Ci0gICBpbnB1dCBDRE47Ci0KLSAgIC8vIEludGVybmFsIHdpcmVzCi0gICB3aXJlIExUSUVISV9ORVQ7Ci0KLSAgIFRJRUhJIExUSUVISSAoLlkoTFRJRUhJX05FVCkpOwotICAgU0RGRlJYNCBERkYgKC5TSShTSSksIAotCS5TRShTRSksIAotCS5STihMVElFSElfTkVUKSwgCi0JLlEoUSksIAotCS5EKEQpLCAKLQkuQ0soQ1ApKTsKLWVuZG1vZHVsZQotCi1tb2R1bGUgUlNERkNTUkhEMkJXUF9SRU1BUF9TUENfNDggKAotCUNETiwgCi0JU0ROLCAKLQlDUCwgCi0JRCwgCi0JU0ksIAotCVNFLCAKLQlTQVZFLCAKLQlOUkVTVE9SRSwgCi0JUSk7Ci0gICBpbnB1dCBDRE47Ci0gICBpbnB1dCBTRE47Ci0gICBpbnB1dCBDUDsKLSAgIGlucHV0IEQ7Ci0gICBpbnB1dCBTSTsKLSAgIGlucHV0IFNFOwotICAgaW5wdXQgU0FWRTsKLSAgIGlucHV0IE5SRVNUT1JFOwotICAgb3V0cHV0IFE7Ci0KLSAgIFNERkNOUUQxQldQX1NQQ0FfMTMwIHN0YXRlX3JlbWFwICguU0koU0kpLCAKLQkuU0UoU0UpLCAKLQkuUShRKSwgCi0JLkQoRCksIAotCS5DUChDUCksIAotCS5DRE4oMSdiMSkpOwotZW5kbW9kdWxlCi0KLW1vZHVsZSBTREZDTlFEMUJXUF9TUENBXzEzMSAoCi0JU0ksIAotCVNFLCAKLQlRLCAKLQlELCAKLQlDUCwgCi0JQ0ROKTsKLSAgIGlucHV0IFNJOwotICAgaW5wdXQgU0U7Ci0gICBvdXRwdXQgUTsKLSAgIGlucHV0IEQ7Ci0gICBpbnB1dCBDUDsKLSAgIGlucHV0IENETjsKLQotICAgU0RGRlJYNCBERkYgKC5TSShTSSksIAotCS5TRShTRSksIAotCS5STihDRE4pLCAKLQkuUShRKSwgCi0JLkQoRCksIAotCS5DSyhDUCkpOwotZW5kbW9kdWxlCi0KLW1vZHVsZSBSU0RGQ1NSSEQyQldQX1JFTUFQX1NQQ180OSAoCi0JQ0ROLCAKLQlTRE4sIAotCUNQLCAKLQlELCAKLQlTSSwgCi0JU0UsIAotCVNBVkUsIAotCU5SRVNUT1JFLCAKLQlRKTsKLSAgIGlucHV0IENETjsKLSAgIGlucHV0IFNETjsKLSAgIGlucHV0IENQOwotICAgaW5wdXQgRDsKLSAgIGlucHV0IFNJOwotICAgaW5wdXQgU0U7Ci0gICBpbnB1dCBTQVZFOwotICAgaW5wdXQgTlJFU1RPUkU7Ci0gICBvdXRwdXQgUTsKLQotICAgU0RGQ05RRDFCV1BfU1BDQV8xMzEgc3RhdGVfcmVtYXAgKC5TSShTSSksIAotCS5TRShTRSksIAotCS5RKFEpLCAKLQkuRChEKSwgCi0JLkNQKENQKSwgCi0JLkNETihDRE4pKTsKLWVuZG1vZHVsZQotCi1tb2R1bGUgU0RGQ05RRDFCV1BfU1BDQV8xMzIgKAotCVNJLCAKLQlTRSwgCi0JUSwgCi0JRCwgCi0JQ1AsIAotCUNETik7Ci0gICBpbnB1dCBTSTsKLSAgIGlucHV0IFNFOwotICAgb3V0cHV0IFE7Ci0gICBpbnB1dCBEOwotICAgaW5wdXQgQ1A7Ci0gICBpbnB1dCBDRE47Ci0KLSAgIFNERkZSWDQgREZGICguU0koU0kpLCAKLQkuU0UoU0UpLCAKLQkuUk4oQ0ROKSwgCi0JLlEoUSksIAotCS5EKEQpLCAKLQkuQ0soQ1ApKTsKLWVuZG1vZHVsZQotCi1tb2R1bGUgUlNERkNTUkhEMkJXUF9SRU1BUF9TUENfNTAgKAotCUNETiwgCi0JU0ROLCAKLQlDUCwgCi0JRCwgCi0JU0ksIAotCVNFLCAKLQlTQVZFLCAKLQlOUkVTVE9SRSwgCi0JUSk7Ci0gICBpbnB1dCBDRE47Ci0gICBpbnB1dCBTRE47Ci0gICBpbnB1dCBDUDsKLSAgIGlucHV0IEQ7Ci0gICBpbnB1dCBTSTsKLSAgIGlucHV0IFNFOwotICAgaW5wdXQgU0FWRTsKLSAgIGlucHV0IE5SRVNUT1JFOwotICAgb3V0cHV0IFE7Ci0KLSAgIFNERkNOUUQxQldQX1NQQ0FfMTMyIHN0YXRlX3JlbWFwICguU0koU0kpLCAKLQkuU0UoU0UpLCAKLQkuUShRKSwgCi0JLkQoRCksIAotCS5DUChDUCksIAotCS5DRE4oQ0ROKSk7Ci1lbmRtb2R1bGUKLQotbW9kdWxlIFNERkNOUUQxQldQX1NQQ0FfMTMzICgKLQlTSSwgCi0JU0UsIAotCVEsIAotCUQsIAotCUNQLCAKLQlDRE4pOwotICAgaW5wdXQgU0k7Ci0gICBpbnB1dCBTRTsKLSAgIG91dHB1dCBROwotICAgaW5wdXQgRDsKLSAgIGlucHV0IENQOwotICAgaW5wdXQgQ0ROOwotCi0gICBTREZGUlg0IERGRiAoLlNJKFNJKSwgCi0JLlNFKFNFKSwgCi0JLlJOKENETiksIAotCS5RKFEpLCAKLQkuRChEKSwgCi0JLkNLKENQKSk7Ci1lbmRtb2R1bGUKLQotbW9kdWxlIFJTREZDU1JIRDJCV1BfUkVNQVBfU1BDXzUxICgKLQlDRE4sIAotCVNETiwgCi0JQ1AsIAotCUQsIAotCVNJLCAKLQlTRSwgCi0JU0FWRSwgCi0JTlJFU1RPUkUsIAotCVEpOwotICAgaW5wdXQgQ0ROOwotICAgaW5wdXQgU0ROOwotICAgaW5wdXQgQ1A7Ci0gICBpbnB1dCBEOwotICAgaW5wdXQgU0k7Ci0gICBpbnB1dCBTRTsKLSAgIGlucHV0IFNBVkU7Ci0gICBpbnB1dCBOUkVTVE9SRTsKLSAgIG91dHB1dCBROwotCi0gICBTREZDTlFEMUJXUF9TUENBXzEzMyBzdGF0ZV9yZW1hcCAoLlNJKFNJKSwgCi0JLlNFKFNFKSwgCi0JLlEoUSksIAotCS5EKEQpLCAKLQkuQ1AoQ1ApLCAKLQkuQ0ROKENETikpOwotZW5kbW9kdWxlCi0KLW1vZHVsZSBTREZDTlFEMUJXUF9TUENBXzEzNCAoCi0JU0ksIAotCVNFLCAKLQlRLCAKLQlELCAKLQlDUCwgCi0JQ0ROKTsKLSAgIGlucHV0IFNJOwotICAgaW5wdXQgU0U7Ci0gICBvdXRwdXQgUTsKLSAgIGlucHV0IEQ7Ci0gICBpbnB1dCBDUDsKLSAgIGlucHV0IENETjsKLQotICAgU0RGRlJYNCBERkYgKC5TSShTSSksIAotCS5TRShTRSksIAotCS5STihDRE4pLCAKLQkuUShRKSwgCi0JLkQoRCksIAotCS5DSyhDUCkpOwotZW5kbW9kdWxlCi0KLW1vZHVsZSBSU0RGQ1NSSEQyQldQX1JFTUFQX1NQQ181MiAoCi0JQ0ROLCAKLQlTRE4sIAotCUNQLCAKLQlELCAKLQlTSSwgCi0JU0UsIAotCVNBVkUsIAotCU5SRVNUT1JFLCAKLQlRKTsKLSAgIGlucHV0IENETjsKLSAgIGlucHV0IFNETjsKLSAgIGlucHV0IENQOwotICAgaW5wdXQgRDsKLSAgIGlucHV0IFNJOwotICAgaW5wdXQgU0U7Ci0gICBpbnB1dCBTQVZFOwotICAgaW5wdXQgTlJFU1RPUkU7Ci0gICBvdXRwdXQgUTsKLQotICAgU0RGQ05RRDFCV1BfU1BDQV8xMzQgc3RhdGVfcmVtYXAgKC5TSShTSSksIAotCS5TRShTRSksIAotCS5RKFEpLCAKLQkuRChEKSwgCi0JLkNQKENQKSwgCi0JLkNETihDRE4pKTsKLWVuZG1vZHVsZQotCi1tb2R1bGUgU0RGQ05RRDFCV1BfU1BDQV8xMzUgKAotCVNJLCAKLQlTRSwgCi0JUSwgCi0JRCwgCi0JQ1AsIAotCUNETik7Ci0gICBpbnB1dCBTSTsKLSAgIGlucHV0IFNFOwotICAgb3V0cHV0IFE7Ci0gICBpbnB1dCBEOwotICAgaW5wdXQgQ1A7Ci0gICBpbnB1dCBDRE47Ci0KLSAgIFNERkZSWDQgREZGICguU0koU0kpLCAKLQkuU0UoU0UpLCAKLQkuUk4oQ0ROKSwgCi0JLlEoUSksIAotCS5EKEQpLCAKLQkuQ0soQ1ApKTsKLWVuZG1vZHVsZQotCi1tb2R1bGUgUlNERkNTUkhEMkJXUF9SRU1BUF9TUENfNTMgKAotCUNETiwgCi0JU0ROLCAKLQlDUCwgCi0JRCwgCi0JU0ksIAotCVNFLCAKLQlTQVZFLCAKLQlOUkVTVE9SRSwgCi0JUSk7Ci0gICBpbnB1dCBDRE47Ci0gICBpbnB1dCBTRE47Ci0gICBpbnB1dCBDUDsKLSAgIGlucHV0IEQ7Ci0gICBpbnB1dCBTSTsKLSAgIGlucHV0IFNFOwotICAgaW5wdXQgU0FWRTsKLSAgIGlucHV0IE5SRVNUT1JFOwotICAgb3V0cHV0IFE7Ci0KLSAgIFNERkNOUUQxQldQX1NQQ0FfMTM1IHN0YXRlX3JlbWFwICguU0koU0kpLCAKLQkuU0UoU0UpLCAKLQkuUShRKSwgCi0JLkQoRCksIAotCS5DUChDUCksIAotCS5DRE4oQ0ROKSk7Ci1lbmRtb2R1bGUKLQotbW9kdWxlIFNERkNOUUQxQldQX1NQQ0FfMTM2ICgKLQlTSSwgCi0JU0UsIAotCVEsIAotCUQsIAotCUNQLCAKLQlDRE4pOwotICAgaW5wdXQgU0k7Ci0gICBpbnB1dCBTRTsKLSAgIG91dHB1dCBROwotICAgaW5wdXQgRDsKLSAgIGlucHV0IENQOwotICAgaW5wdXQgQ0ROOwotCi0gICBTREZGUlg0IERGRiAoLlNJKFNJKSwgCi0JLlNFKFNFKSwgCi0JLlJOKENETiksIAotCS5RKFEpLCAKLQkuRChEKSwgCi0JLkNLKENQKSk7Ci1lbmRtb2R1bGUKLQotbW9kdWxlIFJTREZDU1JIRDJCV1BfUkVNQVBfU1BDXzU0ICgKLQlDRE4sIAotCVNETiwgCi0JQ1AsIAotCUQsIAotCVNJLCAKLQlTRSwgCi0JU0FWRSwgCi0JTlJFU1RPUkUsIAotCVEpOwotICAgaW5wdXQgQ0ROOwotICAgaW5wdXQgU0ROOwotICAgaW5wdXQgQ1A7Ci0gICBpbnB1dCBEOwotICAgaW5wdXQgU0k7Ci0gICBpbnB1dCBTRTsKLSAgIGlucHV0IFNBVkU7Ci0gICBpbnB1dCBOUkVTVE9SRTsKLSAgIG91dHB1dCBROwotCi0gICBTREZDTlFEMUJXUF9TUENBXzEzNiBzdGF0ZV9yZW1hcCAoLlNJKFNJKSwgCi0JLlNFKFNFKSwgCi0JLlEoUSksIAotCS5EKEQpLCAKLQkuQ1AoQ1ApLCAKLQkuQ0ROKENETikpOwotZW5kbW9kdWxlCi0KLW1vZHVsZSBTREZDTlFEMUJXUF9TUENBXzEzNyAoCi0JU0ksIAotCVNFLCAKLQlRLCAKLQlELCAKLQlDUCwgCi0JQ0ROKTsKLSAgIGlucHV0IFNJOwotICAgaW5wdXQgU0U7Ci0gICBvdXRwdXQgUTsKLSAgIGlucHV0IEQ7Ci0gICBpbnB1dCBDUDsKLSAgIGlucHV0IENETjsKLQotICAgU0RGRlJYNCBERkYgKC5TSShTSSksIAotCS5TRShTRSksIAotCS5STihDRE4pLCAKLQkuUShRKSwgCi0JLkQoRCksIAotCS5DSyhDUCkpOwotZW5kbW9kdWxlCi0KLW1vZHVsZSBSU0RGQ1NSSEQyQldQX1JFTUFQX1NQQ181NSAoCi0JQ0ROLCAKLQlTRE4sIAotCUNQLCAKLQlELCAKLQlTSSwgCi0JU0UsIAotCVNBVkUsIAotCU5SRVNUT1JFLCAKLQlRKTsKLSAgIGlucHV0IENETjsKLSAgIGlucHV0IFNETjsKLSAgIGlucHV0IENQOwotICAgaW5wdXQgRDsKLSAgIGlucHV0IFNJOwotICAgaW5wdXQgU0U7Ci0gICBpbnB1dCBTQVZFOwotICAgaW5wdXQgTlJFU1RPUkU7Ci0gICBvdXRwdXQgUTsKLQotICAgU0RGQ05RRDFCV1BfU1BDQV8xMzcgc3RhdGVfcmVtYXAgKC5TSShTSSksIAotCS5TRShTRSksIAotCS5RKFEpLCAKLQkuRChEKSwgCi0JLkNQKENQKSwgCi0JLkNETihDRE4pKTsKLWVuZG1vZHVsZQotCi1tb2R1bGUgU0RGQ05RRDFCV1BfU1BDQV8xMzggKAotCVNJLCAKLQlTRSwgCi0JUSwgCi0JRCwgCi0JQ1AsIAotCUNETik7Ci0gICBpbnB1dCBTSTsKLSAgIGlucHV0IFNFOwotICAgb3V0cHV0IFE7Ci0gICBpbnB1dCBEOwotICAgaW5wdXQgQ1A7Ci0gICBpbnB1dCBDRE47Ci0KLSAgIC8vIEludGVybmFsIHdpcmVzCi0gICB3aXJlIExUSUVISV9ORVQ7Ci0KLSAgIFRJRUhJIExUSUVISSAoLlkoTFRJRUhJX05FVCkpOwotICAgU0RGRlJYNCBERkYgKC5TSShTSSksIAotCS5TRShTRSksIAotCS5STihMVElFSElfTkVUKSwgCi0JLlEoUSksIAotCS5EKEQpLCAKLQkuQ0soQ1ApKTsKLWVuZG1vZHVsZQotCi1tb2R1bGUgUlNERkNTUkhEMkJXUF9SRU1BUF9TUENfNTYgKAotCUNETiwgCi0JU0ROLCAKLQlDUCwgCi0JRCwgCi0JU0ksIAotCVNFLCAKLQlTQVZFLCAKLQlOUkVTVE9SRSwgCi0JUSk7Ci0gICBpbnB1dCBDRE47Ci0gICBpbnB1dCBTRE47Ci0gICBpbnB1dCBDUDsKLSAgIGlucHV0IEQ7Ci0gICBpbnB1dCBTSTsKLSAgIGlucHV0IFNFOwotICAgaW5wdXQgU0FWRTsKLSAgIGlucHV0IE5SRVNUT1JFOwotICAgb3V0cHV0IFE7Ci0KLSAgIFNERkNOUUQxQldQX1NQQ0FfMTM4IHN0YXRlX3JlbWFwICguU0koU0kpLCAKLQkuU0UoU0UpLCAKLQkuUShRKSwgCi0JLkQoRCksIAotCS5DUChDUCksIAotCS5DRE4oMSdiMSkpOwotZW5kbW9kdWxlCi0KLW1vZHVsZSBTREZDTlFEMUJXUF9TUENBXzEzOSAoCi0JU0ksIAotCVNFLCAKLQlRLCAKLQlELCAKLQlDUCwgCi0JQ0ROKTsKLSAgIGlucHV0IFNJOwotICAgaW5wdXQgU0U7Ci0gICBvdXRwdXQgUTsKLSAgIGlucHV0IEQ7Ci0gICBpbnB1dCBDUDsKLSAgIGlucHV0IENETjsKLQotICAgLy8gSW50ZXJuYWwgd2lyZXMKLSAgIHdpcmUgTFRJRUhJX05FVDsKLQotICAgVElFSEkgTFRJRUhJICguWShMVElFSElfTkVUKSk7Ci0gICBTREZGUlg0IERGRiAoLlNJKFNJKSwgCi0JLlNFKFNFKSwgCi0JLlJOKExUSUVISV9ORVQpLCAKLQkuUShRKSwgCi0JLkQoRCksIAotCS5DSyhDUCkpOwotZW5kbW9kdWxlCi0KLW1vZHVsZSBSU0RGQ1NSSEQyQldQX1JFTUFQX1NQQ181NyAoCi0JQ0ROLCAKLQlTRE4sIAotCUNQLCAKLQlELCAKLQlTSSwgCi0JU0UsIAotCVNBVkUsIAotCU5SRVNUT1JFLCAKLQlRKTsKLSAgIGlucHV0IENETjsKLSAgIGlucHV0IFNETjsKLSAgIGlucHV0IENQOwotICAgaW5wdXQgRDsKLSAgIGlucHV0IFNJOwotICAgaW5wdXQgU0U7Ci0gICBpbnB1dCBTQVZFOwotICAgaW5wdXQgTlJFU1RPUkU7Ci0gICBvdXRwdXQgUTsKLQotICAgU0RGQ05RRDFCV1BfU1BDQV8xMzkgc3RhdGVfcmVtYXAgKC5TSShTSSksIAotCS5TRShTRSksIAotCS5RKFEpLCAKLQkuRChEKSwgCi0JLkNQKENQKSwgCi0JLkNETigxJ2IxKSk7Ci1lbmRtb2R1bGUKLQotbW9kdWxlIFNERkNOUUQxQldQX1NQQ0FfMTQwICgKLQlTSSwgCi0JU0UsIAotCVEsIAotCUQsIAotCUNQLCAKLQlDRE4pOwotICAgaW5wdXQgU0k7Ci0gICBpbnB1dCBTRTsKLSAgIG91dHB1dCBROwotICAgaW5wdXQgRDsKLSAgIGlucHV0IENQOwotICAgaW5wdXQgQ0ROOwotCi0gICAvLyBJbnRlcm5hbCB3aXJlcwotICAgd2lyZSBMVElFSElfTkVUOwotCi0gICBUSUVISSBMVElFSEkgKC5ZKExUSUVISV9ORVQpKTsKLSAgIFNERkZSWDQgREZGICguU0koU0kpLCAKLQkuU0UoU0UpLCAKLQkuUk4oTFRJRUhJX05FVCksIAotCS5RKFEpLCAKLQkuRChEKSwgCi0JLkNLKENQKSk7Ci1lbmRtb2R1bGUKLQotbW9kdWxlIFJTREZDU1JIRDJCV1BfUkVNQVBfU1BDXzU4ICgKLQlDRE4sIAotCVNETiwgCi0JQ1AsIAotCUQsIAotCVNJLCAKLQlTRSwgCi0JU0FWRSwgCi0JTlJFU1RPUkUsIAotCVEpOwotICAgaW5wdXQgQ0ROOwotICAgaW5wdXQgU0ROOwotICAgaW5wdXQgQ1A7Ci0gICBpbnB1dCBEOwotICAgaW5wdXQgU0k7Ci0gICBpbnB1dCBTRTsKLSAgIGlucHV0IFNBVkU7Ci0gICBpbnB1dCBOUkVTVE9SRTsKLSAgIG91dHB1dCBROwotCi0gICBTREZDTlFEMUJXUF9TUENBXzE0MCBzdGF0ZV9yZW1hcCAoLlNJKFNJKSwgCi0JLlNFKFNFKSwgCi0JLlEoUSksIAotCS5EKEQpLCAKLQkuQ1AoQ1ApLCAKLQkuQ0ROKDEnYjEpKTsKLWVuZG1vZHVsZQotCi1tb2R1bGUgU0RGQ05RRDFCV1BfU1BDQV8xNDEgKAotCVNJLCAKLQlTRSwgCi0JUSwgCi0JRCwgCi0JQ1AsIAotCUNETik7Ci0gICBpbnB1dCBTSTsKLSAgIGlucHV0IFNFOwotICAgb3V0cHV0IFE7Ci0gICBpbnB1dCBEOwotICAgaW5wdXQgQ1A7Ci0gICBpbnB1dCBDRE47Ci0KLSAgIFNERkZSWDQgREZGICguU0koU0kpLCAKLQkuU0UoU0UpLCAKLQkuUk4oQ0ROKSwgCi0JLlEoUSksIAotCS5EKEQpLCAKLQkuQ0soQ1ApKTsKLWVuZG1vZHVsZQotCi1tb2R1bGUgUlNERkNTUkhEMkJXUF9SRU1BUF9TUENfNTkgKAotCUNETiwgCi0JU0ROLCAKLQlDUCwgCi0JRCwgCi0JU0ksIAotCVNFLCAKLQlTQVZFLCAKLQlOUkVTVE9SRSwgCi0JUSk7Ci0gICBpbnB1dCBDRE47Ci0gICBpbnB1dCBTRE47Ci0gICBpbnB1dCBDUDsKLSAgIGlucHV0IEQ7Ci0gICBpbnB1dCBTSTsKLSAgIGlucHV0IFNFOwotICAgaW5wdXQgU0FWRTsKLSAgIGlucHV0IE5SRVNUT1JFOwotICAgb3V0cHV0IFE7Ci0KLSAgIFNERkNOUUQxQldQX1NQQ0FfMTQxIHN0YXRlX3JlbWFwICguU0koU0kpLCAKLQkuU0UoU0UpLCAKLQkuUShRKSwgCi0JLkQoRCksIAotCS5DUChDUCksIAotCS5DRE4oQ0ROKSk7Ci1lbmRtb2R1bGUKLQotbW9kdWxlIFNERkNOUUQxQldQX1NQQ0FfMTQyICgKLQlTSSwgCi0JU0UsIAotCVEsIAotCUQsIAotCUNQLCAKLQlDRE4pOwotICAgaW5wdXQgU0k7Ci0gICBpbnB1dCBTRTsKLSAgIG91dHB1dCBROwotICAgaW5wdXQgRDsKLSAgIGlucHV0IENQOwotICAgaW5wdXQgQ0ROOwotCi0gICBTREZGUlg0IERGRiAoLlNJKFNJKSwgCi0JLlNFKFNFKSwgCi0JLlJOKENETiksIAotCS5RKFEpLCAKLQkuRChEKSwgCi0JLkNLKENQKSk7Ci1lbmRtb2R1bGUKLQotbW9kdWxlIFJTREZDU1JIRDJCV1BfUkVNQVBfU1BDXzYwICgKLQlDRE4sIAotCVNETiwgCi0JQ1AsIAotCUQsIAotCVNJLCAKLQlTRSwgCi0JU0FWRSwgCi0JTlJFU1RPUkUsIAotCVEpOwotICAgaW5wdXQgQ0ROOwotICAgaW5wdXQgU0ROOwotICAgaW5wdXQgQ1A7Ci0gICBpbnB1dCBEOwotICAgaW5wdXQgU0k7Ci0gICBpbnB1dCBTRTsKLSAgIGlucHV0IFNBVkU7Ci0gICBpbnB1dCBOUkVTVE9SRTsKLSAgIG91dHB1dCBROwotCi0gICBTREZDTlFEMUJXUF9TUENBXzE0MiBzdGF0ZV9yZW1hcCAoLlNJKFNJKSwgCi0JLlNFKFNFKSwgCi0JLlEoUSksIAotCS5EKEQpLCAKLQkuQ1AoQ1ApLCAKLQkuQ0ROKENETikpOwotZW5kbW9kdWxlCi0KLW1vZHVsZSBTREZDTlFEMUJXUF9TUENBXzE0MyAoCi0JU0ksIAotCVNFLCAKLQlRLCAKLQlELCAKLQlDUCwgCi0JQ0ROKTsKLSAgIGlucHV0IFNJOwotICAgaW5wdXQgU0U7Ci0gICBvdXRwdXQgUTsKLSAgIGlucHV0IEQ7Ci0gICBpbnB1dCBDUDsKLSAgIGlucHV0IENETjsKLQotICAgU0RGRlJYNCBERkYgKC5TSShTSSksIAotCS5TRShTRSksIAotCS5STihDRE4pLCAKLQkuUShRKSwgCi0JLkQoRCksIAotCS5DSyhDUCkpOwotZW5kbW9kdWxlCi0KLW1vZHVsZSBSU0RGQ1NSSEQyQldQX1JFTUFQX1NQQ182MSAoCi0JQ0ROLCAKLQlTRE4sIAotCUNQLCAKLQlELCAKLQlTSSwgCi0JU0UsIAotCVNBVkUsIAotCU5SRVNUT1JFLCAKLQlRKTsKLSAgIGlucHV0IENETjsKLSAgIGlucHV0IFNETjsKLSAgIGlucHV0IENQOwotICAgaW5wdXQgRDsKLSAgIGlucHV0IFNJOwotICAgaW5wdXQgU0U7Ci0gICBpbnB1dCBTQVZFOwotICAgaW5wdXQgTlJFU1RPUkU7Ci0gICBvdXRwdXQgUTsKLQotICAgU0RGQ05RRDFCV1BfU1BDQV8xNDMgc3RhdGVfcmVtYXAgKC5TSShTSSksIAotCS5TRShTRSksIAotCS5RKFEpLCAKLQkuRChEKSwgCi0JLkNQKENQKSwgCi0JLkNETihDRE4pKTsKLWVuZG1vZHVsZQotCi1tb2R1bGUgU0RGQ05RRDFCV1BfU1BDQV8xNDQgKAotCVNJLCAKLQlTRSwgCi0JUSwgCi0JRCwgCi0JQ1AsIAotCUNETik7Ci0gICBpbnB1dCBTSTsKLSAgIGlucHV0IFNFOwotICAgb3V0cHV0IFE7Ci0gICBpbnB1dCBEOwotICAgaW5wdXQgQ1A7Ci0gICBpbnB1dCBDRE47Ci0KLSAgIFNERkZSWDQgREZGICguU0koU0kpLCAKLQkuU0UoU0UpLCAKLQkuUk4oQ0ROKSwgCi0JLlEoUSksIAotCS5EKEQpLCAKLQkuQ0soQ1ApKTsKLWVuZG1vZHVsZQotCi1tb2R1bGUgUlNERkNTUkhEMkJXUF9SRU1BUF9TUENfNjIgKAotCUNETiwgCi0JU0ROLCAKLQlDUCwgCi0JRCwgCi0JU0ksIAotCVNFLCAKLQlTQVZFLCAKLQlOUkVTVE9SRSwgCi0JUSk7Ci0gICBpbnB1dCBDRE47Ci0gICBpbnB1dCBTRE47Ci0gICBpbnB1dCBDUDsKLSAgIGlucHV0IEQ7Ci0gICBpbnB1dCBTSTsKLSAgIGlucHV0IFNFOwotICAgaW5wdXQgU0FWRTsKLSAgIGlucHV0IE5SRVNUT1JFOwotICAgb3V0cHV0IFE7Ci0KLSAgIFNERkNOUUQxQldQX1NQQ0FfMTQ0IHN0YXRlX3JlbWFwICguU0koU0kpLCAKLQkuU0UoU0UpLCAKLQkuUShRKSwgCi0JLkQoRCksIAotCS5DUChDUCksIAotCS5DRE4oQ0ROKSk7Ci1lbmRtb2R1bGUKLQotbW9kdWxlIGRlY29kZV9pICgKLQljbGssIAotCXJlc2V0LCAKLQlwaGlfMSwgCi0JcGhpXzIsIAotCXBoaV8zLCAKLQlwaGlfNCwgCi0JcGhpXzUsIAotCXBoaV82LCAKLQlkZWNvZGUsIAotCXBfZGF0YV9vdXQsIAotCWlyLCAKLQlza2lwX29uZSwgCi0JcmVhZF9wcm9nLCAKLQlnb19wcm9nLCAKLQlyZWFkX2RhdGEsIAotCWdvX2RhdGEsIAotCXJlYWRfcG9ydCwgCi0JZ29fcG9ydCwgCi0JZGVjb2RlX3NraXBfb25lLCAKLQlSQ19DR19URVNUX1BPUlQsIAotCVNSUEdfUEdfaW4sIAotCVNSUEdfUEdfaW5fMSwgCi0JREZUX3NkaSwgCi0JREZUX3NlbiwgCi0JREZUX3Nkbyk7Ci0gICBpbnB1dCBjbGs7Ci0gICBpbnB1dCByZXNldDsKLSAgIGlucHV0IHBoaV8xOwotICAgaW5wdXQgcGhpXzI7Ci0gICBpbnB1dCBwaGlfMzsKLSAgIGlucHV0IHBoaV80OwotICAgaW5wdXQgcGhpXzU7Ci0gICBpbnB1dCBwaGlfNjsKLSAgIG91dHB1dCBbMTU6MF0gZGVjb2RlOwotICAgaW5wdXQgWzE1OjBdIHBfZGF0YV9vdXQ7Ci0gICBvdXRwdXQgWzE1OjBdIGlyOwotICAgaW5wdXQgc2tpcF9vbmU7Ci0gICBvdXRwdXQgcmVhZF9wcm9nOwotICAgb3V0cHV0IGdvX3Byb2c7Ci0gICBvdXRwdXQgcmVhZF9kYXRhOwotICAgb3V0cHV0IGdvX2RhdGE7Ci0gICBvdXRwdXQgcmVhZF9wb3J0OwotICAgb3V0cHV0IGdvX3BvcnQ7Ci0gICBvdXRwdXQgZGVjb2RlX3NraXBfb25lOwotICAgaW5wdXQgUkNfQ0dfVEVTVF9QT1JUOwotICAgaW5wdXQgU1JQR19QR19pbjsKLSAgIGlucHV0IFNSUEdfUEdfaW5fMTsKLSAgIGlucHV0IERGVF9zZGk7Ci0gICBpbnB1dCBERlRfc2VuOwotICAgb3V0cHV0IERGVF9zZG87Ci0KLSAgIC8vIEludGVybmFsIHdpcmVzCi0gICB3aXJlIFxkZWNvZGVbMTBdXzU3NCA7Ci0gICB3aXJlIFxkZWNvZGVbMTJdXzU4MCA7Ci0gICB3aXJlIFxkZWNvZGVbMTNdXzU4MSA7Ci0gICB3aXJlIFxkZWNvZGVbMTVdXzU4MyA7Ci0gICB3aXJlIGRlY29kZV9za2lwX29uZV81NjM7Ci0gICB3aXJlIG5fMDsKLSAgIHdpcmUgbl8xOwotICAgd2lyZSBuXzI7Ci0gICB3aXJlIG5fMzsKLSAgIHdpcmUgbl80OwotICAgd2lyZSBuXzU7Ci0gICB3aXJlIG5fNjsKLSAgIHdpcmUgbl83OwotICAgd2lyZSBuXzg7Ci0gICB3aXJlIG5fOTsKLSAgIHdpcmUgbl8xMDsKLSAgIHdpcmUgbl8xMTsKLSAgIHdpcmUgbl8xMjsKLSAgIHdpcmUgbl8xMzsKLSAgIHdpcmUgbl8xNDsKLSAgIHdpcmUgbl8xNTsKLSAgIHdpcmUgbl8xNjsKLSAgIHdpcmUgbl8yMTsKLSAgIHdpcmUgbl8yMjsKLSAgIHdpcmUgbl8yMzsKLSAgIHdpcmUgbl8yNTsKLSAgIHdpcmUgbl8yNjsKLSAgIHdpcmUgbl8zMTsKLSAgIHdpcmUgbl8zMzsKLSAgIHdpcmUgbl8zNDsKLSAgIHdpcmUgbl8zOTsKLSAgIHdpcmUgbl80MTsKLSAgIHdpcmUgbl80MjsKLSAgIHdpcmUgbl80MzsKLSAgIHdpcmUgbl80NDsKLSAgIHdpcmUgbl80NTsKLSAgIHdpcmUgbl80NjsKLSAgIHdpcmUgbl80NzsKLSAgIHdpcmUgbl81MjsKLSAgIHdpcmUgbl81NzsKLSAgIHdpcmUgbl83MDsKLSAgIHdpcmUgbl83MTsKLSAgIHdpcmUgbl84MzsKLSAgIHdpcmUgbl84NDsKLSAgIHdpcmUgbl84OTsKLSAgIHdpcmUgbl85ODsKLSAgIHdpcmUgbl85OTsKLSAgIHdpcmUgbl8xMTg7Ci0gICB3aXJlIG5fMTY1OwotICAgd2lyZSBuXzE5MjsKLSAgIHdpcmUgbl8xOTM7Ci0gICB3aXJlIG5fMTk0OwotICAgd2lyZSBuXzE5NTsKLSAgIHdpcmUgbl8xOTY7Ci0gICB3aXJlIG5fMTk3OwotICAgd2lyZSBuXzE5ODsKLSAgIHdpcmUgbl8yMDE7Ci0gICB3aXJlIG5fMjAyOwotICAgd2lyZSBuXzIwMzsKLSAgIHdpcmUgbl8yMDQ7Ci0gICB3aXJlIG5fMjA1OwotICAgd2lyZSBuXzIwNjsKLSAgIHdpcmUgbl8yMDg7Ci0gICB3aXJlIG5fMjA5OwotICAgd2lyZSBuXzIxMDsKLSAgIHdpcmUgbl8yMTE7Ci0gICB3aXJlIG5fMjEzOwotICAgd2lyZSBuXzIxNDsKLSAgIHdpcmUgbl8yMTU7Ci0gICB3aXJlIG5fMjE3OwotICAgd2lyZSBuXzIxODsKLSAgIHdpcmUgbl8yMTk7Ci0gICB3aXJlIG5fMjIwOwotICAgd2lyZSBuXzIyMTsKLSAgIHdpcmUgbl8yMjI7Ci0gICB3aXJlIG5fMjIzOwotICAgd2lyZSBuXzIyNDsKLSAgIHdpcmUgbl8yMjU7Ci0gICB3aXJlIG5fMjI2OwotICAgd2lyZSBuXzIyNzsKLSAgIHdpcmUgbl8yMjg7Ci0gICB3aXJlIG5fMjI5OwotICAgd2lyZSBuXzIzMDsKLSAgIHdpcmUgbl8yMzE7Ci0gICB3aXJlIG5fMjMyOwotICAgd2lyZSBuXzIzMzsKLSAgIHdpcmUgbl8yMzQ7Ci0gICB3aXJlIG5fMjM1OwotICAgd2lyZSBuXzIzNjsKLSAgIHdpcmUgbl8yMzc7Ci0gICB3aXJlIHJjX2djbGs7Ci0KLSAgIFJDX0NHX01PRF8zMjkxXzMyOTIgUkNfQ0dfSElFUl9JTlNUMTkgKC5lbmFibGUobl8xNjUpLCAKLQkuY2tfaW4oY2xrKSwgCi0JLmNrX291dChyY19nY2xrKSwgCi0JLnRlc3QoUkNfQ0dfVEVTVF9QT1JUKSk7Ci0gICBSU0RGQ1NSSEQyQldQX1JFTUFQX1NQQ18yMyBcZGVjb2RlX3JlZ1swXSAgKC5DRE4obl8xMTgpLCAKLQkuU0ROKDEnYjEpLCAKLQkuQ1AocmNfZ2NsayksIAotCS5EKHBfZGF0YV9vdXRbMF0pLCAKLQkuU0koREZUX3NkaSksIAotCS5TRShERlRfc2VuKSwgCi0JLlNBVkUoMSdiMCksIAotCS5OUkVTVE9SRSgxJ2IwKSwgCi0JLlEoZGVjb2RlWzBdKSk7Ci0gICBSU0RGQ1NSSEQyQldQX1JFTUFQX1NQQ18yNCBcZGVjb2RlX3JlZ1sxMF0gICguQ0ROKDEnYjEpLCAKLQkuU0ROKDEnYjApLCAKLQkuQ1AocmNfZ2NsayksIAotCS5EKHBfZGF0YV9vdXRbMTBdKSwgCi0JLlNJKG5fMTkyKSwgCi0JLlNFKERGVF9zZW4pLCAKLQkuU0FWRSgxJ2IwKSwgCi0JLk5SRVNUT1JFKDEnYjApLCAKLQkuUShcZGVjb2RlWzEwXV81NzQgKSk7Ci0gICBSU0RGQ1NSSEQyQldQX1JFTUFQX1NQQ18yNSBcZGVjb2RlX3JlZ1sxMV0gICguQ0ROKDEnYjEpLCAKLQkuU0ROKDEnYjApLCAKLQkuQ1AocmNfZ2NsayksIAotCS5EKHBfZGF0YV9vdXRbMTFdKSwgCi0JLlNJKFxkZWNvZGVbMTBdXzU3NCApLCAKLQkuU0UoREZUX3NlbiksIAotCS5TQVZFKDEnYjApLCAKLQkuTlJFU1RPUkUoMSdiMCksIAotCS5RKG5fMTkzKSk7Ci0gICBSU0RGQ1NSSEQyQldQX1JFTUFQX1NQQ18yNiBcZGVjb2RlX3JlZ1sxMl0gICguQ0ROKDEnYjEpLCAKLQkuU0ROKDEnYjApLCAKLQkuQ1AocmNfZ2NsayksIAotCS5EKHBfZGF0YV9vdXRbMTJdKSwgCi0JLlNJKG5fMTkzKSwgCi0JLlNFKERGVF9zZW4pLCAKLQkuU0FWRSgxJ2IwKSwgCi0JLk5SRVNUT1JFKDEnYjApLCAKLQkuUShcZGVjb2RlWzEyXV81ODAgKSk7Ci0gICBSU0RGQ1NSSEQyQldQX1JFTUFQX1NQQ18yNyBcZGVjb2RlX3JlZ1sxM10gICguQ0ROKDEnYjEpLCAKLQkuU0ROKDEnYjApLCAKLQkuQ1AocmNfZ2NsayksIAotCS5EKHBfZGF0YV9vdXRbMTNdKSwgCi0JLlNJKFxkZWNvZGVbMTJdXzU4MCApLCAKLQkuU0UoREZUX3NlbiksIAotCS5TQVZFKDEnYjApLCAKLQkuTlJFU1RPUkUoMSdiMCksIAotCS5RKFxkZWNvZGVbMTNdXzU4MSApKTsKLSAgIFJTREZDU1JIRDJCV1BfUkVNQVBfU1BDXzI4IFxkZWNvZGVfcmVnWzE0XSAgKC5DRE4oMSdiMSksIAotCS5TRE4oMSdiMCksIAotCS5DUChyY19nY2xrKSwgCi0JLkQocF9kYXRhX291dFsxNF0pLCAKLQkuU0koXGRlY29kZVsxM11fNTgxICksIAotCS5TRShERlRfc2VuKSwgCi0JLlNBVkUoMSdiMCksIAotCS5OUkVTVE9SRSgxJ2IwKSwgCi0JLlEobl8xOTQpKTsKLSAgIFJTREZDU1JIRDJCV1BfUkVNQVBfU1BDXzI5IFxkZWNvZGVfcmVnWzE1XSAgKC5DRE4obl8xMTgpLCAKLQkuU0ROKDEnYjEpLCAKLQkuQ1AocmNfZ2NsayksIAotCS5EKHBfZGF0YV9vdXRbMTVdKSwgCi0JLlNJKG5fMTk0KSwgCi0JLlNFKERGVF9zZW4pLCAKLQkuU0FWRSgxJ2IwKSwgCi0JLk5SRVNUT1JFKDEnYjApLCAKLQkuUShcZGVjb2RlWzE1XV81ODMgKSk7Ci0gICBSU0RGQ1NSSEQyQldQX1JFTUFQX1NQQ18zMCBcZGVjb2RlX3JlZ1sxXSAgKC5DRE4obl8xMTgpLCAKLQkuU0ROKDEnYjEpLCAKLQkuQ1AocmNfZ2NsayksIAotCS5EKHBfZGF0YV9vdXRbMV0pLCAKLQkuU0koZGVjb2RlWzBdKSwgCi0JLlNFKERGVF9zZW4pLCAKLQkuU0FWRSgxJ2IwKSwgCi0JLk5SRVNUT1JFKDEnYjApLCAKLQkuUShkZWNvZGVbMV0pKTsKLSAgIFJTREZDU1JIRDJCV1BfUkVNQVBfU1BDXzMxIFxkZWNvZGVfcmVnWzJdICAoLkNETihuXzExOCksIAotCS5TRE4oMSdiMSksIAotCS5DUChyY19nY2xrKSwgCi0JLkQocF9kYXRhX291dFsyXSksIAotCS5TSShkZWNvZGVbMV0pLCAKLQkuU0UoREZUX3NlbiksIAotCS5TQVZFKDEnYjApLCAKLQkuTlJFU1RPUkUoMSdiMCksIAotCS5RKGRlY29kZVsyXSkpOwotICAgUlNERkNTUkhEMkJXUF9SRU1BUF9TUENfMzIgXGRlY29kZV9yZWdbM10gICguQ0ROKG5fMTE4KSwgCi0JLlNETigxJ2IxKSwgCi0JLkNQKHJjX2djbGspLCAKLQkuRChwX2RhdGFfb3V0WzNdKSwgCi0JLlNJKGRlY29kZVsyXSksIAotCS5TRShERlRfc2VuKSwgCi0JLlNBVkUoMSdiMCksIAotCS5OUkVTVE9SRSgxJ2IwKSwgCi0JLlEoZGVjb2RlWzNdKSk7Ci0gICBSU0RGQ1NSSEQyQldQX1JFTUFQX1NQQ18zMyBcZGVjb2RlX3JlZ1s0XSAgKC5DRE4obl8xMTgpLCAKLQkuU0ROKDEnYjEpLCAKLQkuQ1AocmNfZ2NsayksIAotCS5EKHBfZGF0YV9vdXRbNF0pLCAKLQkuU0koZGVjb2RlWzNdKSwgCi0JLlNFKERGVF9zZW4pLCAKLQkuU0FWRSgxJ2IwKSwgCi0JLk5SRVNUT1JFKDEnYjApLCAKLQkuUShkZWNvZGVbNF0pKTsKLSAgIFJTREZDU1JIRDJCV1BfUkVNQVBfU1BDXzM0IFxkZWNvZGVfcmVnWzVdICAoLkNETihuXzExOCksIAotCS5TRE4oMSdiMSksIAotCS5DUChyY19nY2xrKSwgCi0JLkQocF9kYXRhX291dFs1XSksIAotCS5TSShkZWNvZGVbNF0pLCAKLQkuU0UoREZUX3NlbiksIAotCS5TQVZFKDEnYjApLCAKLQkuTlJFU1RPUkUoMSdiMCksIAotCS5RKGRlY29kZVs1XSkpOwotICAgUlNERkNTUkhEMkJXUF9SRU1BUF9TUENfMzUgXGRlY29kZV9yZWdbNl0gICguQ0ROKG5fMTE4KSwgCi0JLlNETigxJ2IxKSwgCi0JLkNQKHJjX2djbGspLCAKLQkuRChwX2RhdGFfb3V0WzZdKSwgCi0JLlNJKGRlY29kZVs1XSksIAotCS5TRShERlRfc2VuKSwgCi0JLlNBVkUoMSdiMCksIAotCS5OUkVTVE9SRSgxJ2IwKSwgCi0JLlEoZGVjb2RlWzZdKSk7Ci0gICBSU0RGQ1NSSEQyQldQX1JFTUFQX1NQQ18zNiBcZGVjb2RlX3JlZ1s3XSAgKC5DRE4oMSdiMSksIAotCS5TRE4oMSdiMCksIAotCS5DUChyY19nY2xrKSwgCi0JLkQocF9kYXRhX291dFs3XSksIAotCS5TSShkZWNvZGVbNl0pLCAKLQkuU0UoREZUX3NlbiksIAotCS5TQVZFKDEnYjApLCAKLQkuTlJFU1RPUkUoMSdiMCksIAotCS5RKGRlY29kZVs3XSkpOwotICAgUlNERkNTUkhEMkJXUF9SRU1BUF9TUENfMzcgXGRlY29kZV9yZWdbOF0gICguQ0ROKDEnYjEpLCAKLQkuU0ROKDEnYjApLCAKLQkuQ1AocmNfZ2NsayksIAotCS5EKHBfZGF0YV9vdXRbOF0pLCAKLQkuU0koZGVjb2RlWzddKSwgCi0JLlNFKERGVF9zZW4pLCAKLQkuU0FWRSgxJ2IwKSwgCi0JLk5SRVNUT1JFKDEnYjApLCAKLQkuUShkZWNvZGVbOF0pKTsKLSAgIFJTREZDU1JIRDJCV1BfUkVNQVBfU1BDXzM4IFxkZWNvZGVfcmVnWzldICAoLkNETigxJ2IxKSwgCi0JLlNETigxJ2IwKSwgCi0JLkNQKHJjX2djbGspLCAKLQkuRChwX2RhdGFfb3V0WzldKSwgCi0JLlNJKGRlY29kZVs4XSksIAotCS5TRShERlRfc2VuKSwgCi0JLlNBVkUoMSdiMCksIAotCS5OUkVTVE9SRSgxJ2IwKSwgCi0JLlEobl8xOTIpKTsKLSAgIFJTREZDU1JIRDJCV1BfUkVNQVBfU1BDXzM5IGRlY29kZV9za2lwX29uZV9yZWcgKC5DRE4obl8xMTgpLCAKLQkuU0ROKDEnYjEpLCAKLQkuQ1AoY2xrKSwgCi0JLkQobl8yMTQpLCAKLQkuU0koXGRlY29kZVsxNV1fNTgzICksIAotCS5TRShERlRfc2VuKSwgCi0JLlNBVkUoMSdiMCksIAotCS5OUkVTVE9SRSgxJ2IwKSwgCi0JLlEoZGVjb2RlX3NraXBfb25lXzU2MykpOwotICAgUlNERkNTUkhEMkJXUF9SRU1BUF9TUENfNDAgZ29fZGF0YV9yZWcgKC5DRE4obl8xMTgpLCAKLQkuU0ROKDEnYjEpLCAKLQkuQ1AoY2xrKSwgCi0JLkQobl8xOTcpLCAKLQkuU0koZGVjb2RlX3NraXBfb25lXzU2MyksIAotCS5TRShERlRfc2VuKSwgCi0JLlNBVkUoMSdiMCksIAotCS5OUkVTVE9SRSgxJ2IwKSwgCi0JLlEoZ29fZGF0YSkpOwotICAgUlNERkNTUkhEMkJXUF9SRU1BUF9TUENfNDEgZ29fcG9ydF9yZWcgKC5DRE4obl8xMTgpLCAKLQkuU0ROKDEnYjEpLCAKLQkuQ1AoY2xrKSwgCi0JLkQobl8yMjIpLCAKLQkuU0koZ29fZGF0YSksIAotCS5TRShERlRfc2VuKSwgCi0JLlNBVkUoMSdiMCksIAotCS5OUkVTVE9SRSgxJ2IwKSwgCi0JLlEoZ29fcG9ydCkpOwotICAgUlNERkNTUkhEMkJXUF9SRU1BUF9TUENfNDIgZ29fcHJvZ19yZWcgKC5DRE4obl8xMTgpLCAKLQkuU0ROKDEnYjEpLCAKLQkuQ1AoY2xrKSwgCi0JLkQobl8yMzUpLCAKLQkuU0koZ29fcG9ydCksIAotCS5TRShERlRfc2VuKSwgCi0JLlNBVkUoMSdiMCksIAotCS5OUkVTVE9SRSgxJ2IwKSwgCi0JLlEoZ29fcHJvZykpOwotICAgUlNERkNTUkhEMkJXUF9SRU1BUF9TUENfNDMgXGlyX3JlZ1swXSAgKC5DRE4obl8xMTgpLCAKLQkuU0ROKDEnYjEpLCAKLQkuQ1AocmNfZ2NsayksIAotCS5EKGRlY29kZVswXSksIAotCS5TSShnb19wcm9nKSwgCi0JLlNFKERGVF9zZW4pLCAKLQkuU0FWRSgxJ2IwKSwgCi0JLk5SRVNUT1JFKDEnYjApLCAKLQkuUShpclswXSkpOwotICAgUlNERkNTUkhEMkJXUF9SRU1BUF9TUENfNDQgXGlyX3JlZ1sxMF0gICguQ0ROKDEnYjEpLCAKLQkuU0ROKDEnYjApLCAKLQkuQ1AocmNfZ2NsayksIAotCS5EKFxkZWNvZGVbMTBdXzU3NCApLCAKLQkuU0koaXJbOV0pLCAKLQkuU0UoREZUX3NlbiksIAotCS5TQVZFKDEnYjApLCAKLQkuTlJFU1RPUkUoMSdiMCksIAotCS5RKGlyWzEwXSkpOwotICAgUlNERkNTUkhEMkJXUF9SRU1BUF9TUENfNDUgXGlyX3JlZ1sxMV0gICguQ0ROKDEnYjEpLCAKLQkuU0ROKDEnYjApLCAKLQkuQ1AocmNfZ2NsayksIAotCS5EKG5fMTkzKSwgCi0JLlNJKGlyWzEwXSksIAotCS5TRShERlRfc2VuKSwgCi0JLlNBVkUoMSdiMCksIAotCS5OUkVTVE9SRSgxJ2IwKSwgCi0JLlEoaXJbMTFdKSk7Ci0gICBSU0RGQ1NSSEQyQldQX1JFTUFQX1NQQ180NiBcaXJfcmVnWzEyXSAgKC5DRE4oMSdiMSksIAotCS5TRE4oMSdiMCksIAotCS5DUChyY19nY2xrKSwgCi0JLkQoXGRlY29kZVsxMl1fNTgwICksIAotCS5TSShpclsxMV0pLCAKLQkuU0UoREZUX3NlbiksIAotCS5TQVZFKDEnYjApLCAKLQkuTlJFU1RPUkUoMSdiMCksIAotCS5RKGlyWzEyXSkpOwotICAgUlNERkNTUkhEMkJXUF9SRU1BUF9TUENfNDcgXGlyX3JlZ1sxM10gICguQ0ROKDEnYjEpLCAKLQkuU0ROKDEnYjApLCAKLQkuQ1AocmNfZ2NsayksIAotCS5EKFxkZWNvZGVbMTNdXzU4MSApLCAKLQkuU0koaXJbMTJdKSwgCi0JLlNFKERGVF9zZW4pLCAKLQkuU0FWRSgxJ2IwKSwgCi0JLk5SRVNUT1JFKDEnYjApLCAKLQkuUShpclsxM10pKTsKLSAgIFJTREZDU1JIRDJCV1BfUkVNQVBfU1BDXzQ4IFxpcl9yZWdbMTRdICAoLkNETigxJ2IxKSwgCi0JLlNETigxJ2IwKSwgCi0JLkNQKHJjX2djbGspLCAKLQkuRChuXzE5NCksIAotCS5TSShpclsxM10pLCAKLQkuU0UoREZUX3NlbiksIAotCS5TQVZFKDEnYjApLCAKLQkuTlJFU1RPUkUoMSdiMCksIAotCS5RKGlyWzE0XSkpOwotICAgUlNERkNTUkhEMkJXUF9SRU1BUF9TUENfNDkgXGlyX3JlZ1sxNV0gICguQ0ROKG5fMTE4KSwgCi0JLlNETigxJ2IxKSwgCi0JLkNQKHJjX2djbGspLCAKLQkuRChcZGVjb2RlWzE1XV81ODMgKSwgCi0JLlNJKGlyWzE0XSksIAotCS5TRShERlRfc2VuKSwgCi0JLlNBVkUoMSdiMCksIAotCS5OUkVTVE9SRSgxJ2IwKSwgCi0JLlEoaXJbMTVdKSk7Ci0gICBSU0RGQ1NSSEQyQldQX1JFTUFQX1NQQ181MCBcaXJfcmVnWzFdICAoLkNETihuXzExOCksIAotCS5TRE4oMSdiMSksIAotCS5DUChyY19nY2xrKSwgCi0JLkQoZGVjb2RlWzFdKSwgCi0JLlNJKGlyWzBdKSwgCi0JLlNFKERGVF9zZW4pLCAKLQkuU0FWRSgxJ2IwKSwgCi0JLk5SRVNUT1JFKDEnYjApLCAKLQkuUShpclsxXSkpOwotICAgUlNERkNTUkhEMkJXUF9SRU1BUF9TUENfNTEgXGlyX3JlZ1syXSAgKC5DRE4obl8xMTgpLCAKLQkuU0ROKDEnYjEpLCAKLQkuQ1AocmNfZ2NsayksIAotCS5EKGRlY29kZVsyXSksIAotCS5TSShpclsxXSksIAotCS5TRShERlRfc2VuKSwgCi0JLlNBVkUoMSdiMCksIAotCS5OUkVTVE9SRSgxJ2IwKSwgCi0JLlEoaXJbMl0pKTsKLSAgIFJTREZDU1JIRDJCV1BfUkVNQVBfU1BDXzUyIFxpcl9yZWdbM10gICguQ0ROKG5fMTE4KSwgCi0JLlNETigxJ2IxKSwgCi0JLkNQKHJjX2djbGspLCAKLQkuRChkZWNvZGVbM10pLCAKLQkuU0koaXJbMl0pLCAKLQkuU0UoREZUX3NlbiksIAotCS5TQVZFKDEnYjApLCAKLQkuTlJFU1RPUkUoMSdiMCksIAotCS5RKGlyWzNdKSk7Ci0gICBSU0RGQ1NSSEQyQldQX1JFTUFQX1NQQ181MyBcaXJfcmVnWzRdICAoLkNETihuXzExOCksIAotCS5TRE4oMSdiMSksIAotCS5DUChyY19nY2xrKSwgCi0JLkQoZGVjb2RlWzRdKSwgCi0JLlNJKGlyWzNdKSwgCi0JLlNFKERGVF9zZW4pLCAKLQkuU0FWRSgxJ2IwKSwgCi0JLk5SRVNUT1JFKDEnYjApLCAKLQkuUShpcls0XSkpOwotICAgUlNERkNTUkhEMkJXUF9SRU1BUF9TUENfNTQgXGlyX3JlZ1s1XSAgKC5DRE4obl8xMTgpLCAKLQkuU0ROKDEnYjEpLCAKLQkuQ1AocmNfZ2NsayksIAotCS5EKGRlY29kZVs1XSksIAotCS5TSShpcls0XSksIAotCS5TRShERlRfc2VuKSwgCi0JLlNBVkUoMSdiMCksIAotCS5OUkVTVE9SRSgxJ2IwKSwgCi0JLlEoaXJbNV0pKTsKLSAgIFJTREZDU1JIRDJCV1BfUkVNQVBfU1BDXzU1IFxpcl9yZWdbNl0gICguQ0ROKG5fMTE4KSwgCi0JLlNETigxJ2IxKSwgCi0JLkNQKHJjX2djbGspLCAKLQkuRChkZWNvZGVbNl0pLCAKLQkuU0koaXJbNV0pLCAKLQkuU0UoREZUX3NlbiksIAotCS5TQVZFKDEnYjApLCAKLQkuTlJFU1RPUkUoMSdiMCksIAotCS5RKGlyWzZdKSk7Ci0gICBSU0RGQ1NSSEQyQldQX1JFTUFQX1NQQ181NiBcaXJfcmVnWzddICAoLkNETigxJ2IxKSwgCi0JLlNETigxJ2IwKSwgCi0JLkNQKHJjX2djbGspLCAKLQkuRChkZWNvZGVbN10pLCAKLQkuU0koaXJbNl0pLCAKLQkuU0UoREZUX3NlbiksIAotCS5TQVZFKDEnYjApLCAKLQkuTlJFU1RPUkUoMSdiMCksIAotCS5RKGlyWzddKSk7Ci0gICBSU0RGQ1NSSEQyQldQX1JFTUFQX1NQQ181NyBcaXJfcmVnWzhdICAoLkNETigxJ2IxKSwgCi0JLlNETigxJ2IwKSwgCi0JLkNQKHJjX2djbGspLCAKLQkuRChkZWNvZGVbOF0pLCAKLQkuU0koaXJbN10pLCAKLQkuU0UoREZUX3NlbiksIAotCS5TQVZFKDEnYjApLCAKLQkuTlJFU1RPUkUoMSdiMCksIAotCS5RKGlyWzhdKSk7Ci0gICBSU0RGQ1NSSEQyQldQX1JFTUFQX1NQQ181OCBcaXJfcmVnWzldICAoLkNETigxJ2IxKSwgCi0JLlNETigxJ2IwKSwgCi0JLkNQKHJjX2djbGspLCAKLQkuRChuXzE5MiksIAotCS5TSShpcls4XSksIAotCS5TRShERlRfc2VuKSwgCi0JLlNBVkUoMSdiMCksIAotCS5OUkVTVE9SRSgxJ2IwKSwgCi0JLlEoaXJbOV0pKTsKLSAgIFJTREZDU1JIRDJCV1BfUkVNQVBfU1BDXzU5IHJlYWRfZGF0YV9yZWcgKC5DRE4obl8xMTgpLCAKLQkuU0ROKDEnYjEpLCAKLQkuQ1AoY2xrKSwgCi0JLkQobl8xOTYpLCAKLQkuU0koaXJbMTVdKSwgCi0JLlNFKERGVF9zZW4pLCAKLQkuU0FWRSgxJ2IwKSwgCi0JLk5SRVNUT1JFKDEnYjApLCAKLQkuUShyZWFkX2RhdGEpKTsKLSAgIFJTREZDU1JIRDJCV1BfUkVNQVBfU1BDXzYwIHJlYWRfcG9ydF9yZWcgKC5DRE4obl8xMTgpLCAKLQkuU0ROKDEnYjEpLCAKLQkuQ1AoY2xrKSwgCi0JLkQobl8yMjEpLCAKLQkuU0kocmVhZF9kYXRhKSwgCi0JLlNFKERGVF9zZW4pLCAKLQkuU0FWRSgxJ2IwKSwgCi0JLk5SRVNUT1JFKDEnYjApLCAKLQkuUShyZWFkX3BvcnQpKTsKLSAgIFJTREZDU1JIRDJCV1BfUkVNQVBfU1BDXzYxIHJlYWRfcHJvZ19yZWcgKC5DRE4obl8xMTgpLCAKLQkuU0ROKDEnYjEpLCAKLQkuQ1AoY2xrKSwgCi0JLkQobl8yMzApLCAKLQkuU0kocmVhZF9wb3J0KSwgCi0JLlNFKERGVF9zZW4pLCAKLQkuU0FWRSgxJ2IwKSwgCi0JLk5SRVNUT1JFKDEnYjApLCAKLQkuUShyZWFkX3Byb2cpKTsKLSAgIFJTREZDU1JIRDJCV1BfUkVNQVBfU1BDXzYyIHR3b19jeWNsZV9yZWcgKC5DRE4obl8xMTgpLCAKLQkuU0ROKDEnYjEpLCAKLQkuQ1AoY2xrKSwgCi0JLkQobl8yMDMpLCAKLQkuU0kocmVhZF9wcm9nKSwgCi0JLlNFKERGVF9zZW4pLCAKLQkuU0FWRSgxJ2IwKSwgCi0JLk5SRVNUT1JFKDEnYjApLCAKLQkuUShERlRfc2RvKSk7Ci0gICBJTlZYTCBnNTE5ICguWShuXzExOCksIAotCS5BKHJlc2V0KSk7Ci0gICBBTkQyWDEgZzE3NTkgKC5ZKG5fOTkpLCAKLQkuQihuXzIxMCksIAotCS5BKG5fNTIpKTsKLSAgIE9SMlgxIGcxNzYwICguWShuXzk4KSwgCi0JLkIobl8yMTApLCAKLQkuQShuXzQ0KSk7Ci0gICBBTkQyWDEgZzE3NzEgKC5ZKG5fODkpLCAKLQkuQihuXzIyMCksIAotCS5BKG5fMTkzKSk7Ci0gICBBTkQyWDEgZzE3NzcgKC5ZKG5fODQpLCAKLQkuQihuXzUpLCAKLQkuQShuXzE2KSk7Ci0gICBDTEtJTlZYMSBnMTc3OCAoLlkobl84MyksIAotCS5BKG5fMjE5KSk7Ci0gICBBTkQyWDEgZzE3OTMgKC5ZKG5fNzEpLCAKLQkuQihuXzQpLCAKLQkuQShuXzQ0KSk7Ci0gICBBTkQyWDEgZzE3OTQgKC5ZKG5fNzApLCAKLQkuQihuXzUyKSwgCi0JLkEobl8yNikpOwotICAgQU5EMlgxIGcxODEwICguWShuXzU3KSwgCi0JLkIobl80NSksIAotCS5BKG5fMjMpKTsKLSAgIENMS0lOVlgyIGcxODE3ICguWShuXzUyKSwgCi0JLkEobl8yMzEpKTsKLSAgIENMS0lOVlgyIGcxODIzICguWShuXzQ3KSwgCi0JLkEobl8xKSk7Ci0gICBDTEtJTlZYMSBnMTgyNSAoLlkobl80NiksIAotCS5BKG5fMCkpOwotICAgQ0xLSU5WWDIgZzE4MjcgKC5ZKG5fNDQpLCAKLQkuQShuXzQ1KSk7Ci0gICBBTkQyWDIgZzE4MjggKC5ZKG5fNDUpLCAKLQkuQihuXzI2KSwgCi0JLkEobl84KSk7Ci0gICBBTkQyWDEgZzE4MjkgKC5ZKG5fNDMpLCAKLQkuQihuXzM0KSwgCi0JLkEobl8xNCkpOwotICAgQU5EMlgxIGcxODMwICguWShuXzQyKSwgCi0JLkIobl8yMSksIAotCS5BKG5fMTk0KSk7Ci0gICBBTkQyWDEgZzE4MzEgKC5ZKG5fNDEpLCAKLQkuQihuXzMzKSwgCi0JLkEoXGRlY29kZVsxMF1fNTc0ICkpOwotICAgQU5EMlgxIGcxODMzICguWShuXzM5KSwgCi0JLkIobl8zMSksIAotCS5BKG5fMTkzKSk7Ci0gICBBTkQyWDEgZzE4NDAgKC5ZKG5fMzQpLCAKLQkuQihuXzExKSwgCi0JLkEoXGRlY29kZVsxM11fNTgxICkpOwotICAgT1IyWDEgZzE4NDEgKC5ZKG5fMzMpLCAKLQkuQihuXzEzKSwgCi0JLkEobl8xMCkpOwotICAgT1IyWDIgZzE4NDQgKC5ZKG5fMzEpLCAKLQkuQihkZWNvZGVbOF0pLCAKLQkuQShuXzE5MikpOwotICAgQ0xLSU5WWDEgZzE4NDYgKC5ZKG5fMTY1KSwgCi0JLkEobl8xOTUpKTsKLSAgIEFORDJYMSBnMTg1MCAoLlkobl8yNiksIAotCS5CKG5fOSksIAotCS5BKG5fMTEpKTsKLSAgIE9SMlgxIGcxODUxICguWShuXzI1KSwgCi0JLkIobl8xNCksIAotCS5BKG5fMTkyKSk7Ci0gICBDTEtJTlZYMyBnMTg1MyAoLlkobl8yMiksIAotCS5BKG5fMjMpKTsKLSAgIEFORDJYMiBnMTg1NCAoLlkobl8yMyksIAotCS5CKGRlY29kZVs4XSksIAotCS5BKFxkZWNvZGVbMTBdXzU3NCApKTsKLSAgIEFORDJYMSBnMTg1NiAoLlkobl8yMSksIAotCS5CKFxkZWNvZGVbMTNdXzU4MSApLCAKLQkuQShcZGVjb2RlWzE1XV81ODMgKSk7Ci0gICBDTEtJTlZYMiBnMTg2MSAoLlkobl8xNiksIAotCS5BKG5fMTkzKSk7Ci0gICBDTEtJTlZYMiBnMTg2MiAoLlkobl8xNSksIAotCS5BKHBoaV8zKSk7Ci0gICBDTEtJTlZYMSBnMTg2MyAoLlkobl8xNCksIAotCS5BKFxkZWNvZGVbMTBdXzU3NCApKTsKLSAgIENMS0lOVlgxIGcxODY0ICguWShuXzEzKSwgCi0JLkEoZGVjb2RlWzhdKSk7Ci0gICBDTEtJTlZYMSBnMTg2NSAoLlkobl8xMiksIAotCS5BKG5fMTk0KSk7Ci0gICBDTEtJTlZYMSBnMTg2NiAoLlkobl8xMSksIAotCS5BKFxkZWNvZGVbMTVdXzU4MyApKTsKLSAgIENMS0lOVlgxIGcxODY4ICguWShuXzEwKSwgCi0JLkEobl8xOTIpKTsKLSAgIENMS0lOVlgxIGcxODY5ICguWShuXzkpLCAKLQkuQShcZGVjb2RlWzEzXV81ODEgKSk7Ci0gICBDTEtJTlZYMSBnMTg3MCAoLlkobl84KSwgCi0JLkEoXGRlY29kZVsxMl1fNTgwICkpOwotICAgTk9SMkJYNCBnMiAoLlkobl83KSwgCi0JLkIobl8yMDIpLCAKLQkuQU4obl8xNSkpOwotICAgTk9SMkJYNCBnMTg3MSAoLlkobl82KSwgCi0JLkIobl8yMTcpLCAKLQkuQU4obl80NSkpOwotICAgTk9SMkJYNCBnMTg3MiAoLlkobl81KSwgCi0JLkIobl8yMjYpLCAKLQkuQU4obl8xOTIpKTsKLSAgIE5PUjJCWDQgZzE4NzMgKC5ZKG5fNCksIAotCS5CKG5fNDIpLCAKLQkuQU4obl8xKSk7Ci0gICBOT1IyWDggZzE4NzQgKC5ZKG5fMyksIAotCS5CKG5fMjMyKSwgCi0JLkEobl8zMSkpOwotICAgTk9SMkJYNCBnMTg3NSAoLlkobl8yKSwgCi0JLkIobl8yMzMpLCAKLQkuQU4obl8yMykpOwotICAgTkFORDJCWDQgZzE4NzYgKC5ZKG5fMSksIAotCS5CKG5fMjEpLCAKLQkuQU4obl8xOTQpKTsKLSAgIE5BTkQyQlgyIGcxODc3ICguWShuXzApLCAKLQkuQihkZWNvZGVfc2tpcF9vbmVfNTYzKSwgCi0JLkFOKG5fMTk1KSk7Ci0gICBOQU5EMkJYNCBnMTg3OCAoLlkobl8xOTUpLCAKLQkuQihwaGlfNiksIAotCS5BTihza2lwX29uZSkpOwotICAgT1I0WDggZzE4NzkgKC5ZKG5fMTk2KSwgCi0JLkQobl8xOTgpLCAKLQkuQyhuXzk5KSwgCi0JLkIobl84OSksIAotCS5BKG5fMjA0KSk7Ci0gICBBTzIxWDQgZzE4ODAgKC5ZKG5fMTk3KSwgCi0JLkIwKG5fMjAyKSwgCi0JLkExKG5fNyksIAotCS5BMChnb19kYXRhKSk7Ci0gICBBTzIyWDQgZzE4ODEgKC5ZKG5fMTk4KSwgCi0JLkIxKG5fNyksIAotCS5CMChyZWFkX2RhdGEpLCAKLQkuQTEobl83MCksIAotCS5BMChuXzEyKSk7Ci0gICBJTlZYTCBnMTg4MyAoLlkobl8yMDIpLCAKLQkuQShuXzIwMSkpOwotICAgQU9JMjIxWDQgZzE4ODQgKC5ZKG5fMjAxKSwgCi0JLkMwKG5fMjA0KSwgCi0JLkIxKG5fOTgpLCAKLQkuQjAobl83MCksIAotCS5BMShuXzIyMCksIAotCS5BMChuXzEyKSk7Ci0gICBBTzIyWDQgZzE4ODUgKC5ZKG5fMjAzKSwgCi0JLkIxKG5fMjA2KSwgCi0JLkIwKG5fNTIpLCAKLQkuQTEobl8xNSksIAotCS5BMChERlRfc2RvKSk7Ci0gICBPQTIxWDQgZzE4ODYgKC5ZKG5fMjA0KSwgCi0JLkIwKG5fNTIpLCAKLQkuQTEobl8yMzcpLCAKLQkuQTAobl8yMTgpKTsKLSAgIE9BMjFYNCBnMTg4NyAoLlkobl8yMDUpLCAKLQkuQjAobl81MiksIAotCS5BMShuXzIwOCksIAotCS5BMChuXzcxKSk7Ci0gICBPUjRYOCBnMTg4OCAoLlkobl8yMDYpLCAKLQkuRChuXzg0KSwgCi0JLkMobl84MyksIAotCS5CKG5fMjE3KSwgCi0JLkEobl80NykpOwotICAgQU8yMVg0IGcxODkwICguWShuXzIwOCksIAotCS5CMChuXzYpLCAKLQkuQTEobl8yMTkpLCAKLQkuQTAobl80MikpOwotICAgSU5WWEwgZzE4OTEgKC5ZKG5fMjEwKSwgCi0JLkEobl8yMDkpKTsKLSAgIEFPSTMxWDQgZzE4OTIgKC5ZKG5fMjA5KSwgCi0JLkIwKG5fMjE3KSwgCi0JLkEyKG5fNDUpLCAKLQkuQTEobl8yMzMpLCAKLQkuQTAobl8yMikpOwotICAgQU9JMjExWDQgZzE4OTQgKC5ZKG5fMjExKSwgCi0JLkMwKG5fNDcpLCAKLQkuQjAobl84KSwgCi0JLkExKG5fMjI4KSwgCi0JLkEwKG5fMTkzKSk7Ci0gICBJTlZYTCBnMTg5NSAoLlkobl8yMTQpLCAKLQkuQShuXzIxMykpOwotICAgQU9JMzJYNCBnMTg5NiAoLlkobl8yMTMpLCAKLQkuQjEobl8wKSwgCi0JLkIwKGRlY29kZV9za2lwX29uZV81NjMpLCAKLQkuQTIobl8yMjMpLCAKLQkuQTEoXGRlY29kZVsxMl1fNTgwICksIAotCS5BMChuXzUyKSk7Ci0gICBBT0kyMjFYNCBnMTg5OCAoLlkobl8yMTUpLCAKLQkuQzAoXGRlY29kZVsxMl1fNTgwICksIAotCS5CMShuXzIyNSksIAotCS5CMChuXzM0KSwgCi0JLkExKG5fMTEpLCAKLQkuQTAobl8xMikpOwotICAgQU5ENFg2IGcxODk5ICguWShuXzIxNyksIAotCS5EKG5fNTcpLCAKLQkuQyhuXzE5NCksIAotCS5CKG5fMTApLCAKLQkuQShuXzE2KSk7Ci0gICBBTkQ0WDYgZzE5MDAgKC5ZKG5fMjE4KSwgCi0JLkQobl8zKSwgCi0JLkMobl85KSwgCi0JLkIobl8xNCksIAotCS5BKG5fMTYpKTsKLSAgIE9SM1g2IGcxOTAxICguWShuXzIxOSksIAotCS5DKG5fMjI2KSwgCi0JLkIobl8xOTIpLCAKLQkuQShuXzE2KSk7Ci0gICBBTkQ0WDYgZzE5MDIgKC5ZKG5fMjIwKSwgCi0JLkQobl81MiksIAotCS5DKG5fMTApLCAKLQkuQihcZGVjb2RlWzEyXV81ODAgKSwgCi0JLkEobl80MykpOwotICAgQU8yMVg0IGcxOTAzICguWShuXzIyMSksIAotCS5CMChuXzIyNyksIAotCS5BMShuXzE1KSwgCi0JLkEwKHJlYWRfcG9ydCkpOwotICAgQU8yMVg0IGcxOTA0ICguWShuXzIyMiksIAotCS5CMChuXzIyNyksIAotCS5BMShuXzE1KSwgCi0JLkEwKGdvX3BvcnQpKTsKLSAgIE9BMjFYNCBnMTkwNSAoLlkobl8yMjMpLCAKLQkuQjAobl80MiksIAotCS5BMShuXzQxKSwgCi0JLkEwKG5fMzkpKTsKLSAgIElOVlhMIGcxOTA2ICguWShuXzIyNSksIAotCS5BKG5fMjI0KSk7Ci0gICBBT0kzMVg0IGcxOTA3ICguWShuXzIyNCksIAotCS5CMChuXzIpLCAKLQkuQTIobl8yNSksIAotCS5BMShuXzIyKSwgCi0JLkEwKG5fMTYpKTsKLSAgIE9SM1g2IGcxOTA4ICguWShuXzIyNiksIAotCS5DKG5fMjMyKSwgCi0JLkIobl8yMiksIAotCS5BKG5fOSkpOwotICAgQU5EM1g2IGcxOTA5ICguWShuXzIyNyksIAotCS5DKG5fNTIpLCAKLQkuQihuXzQ3KSwgCi0JLkEobl84KSk7Ci0gICBBTkQzWDYgZzE5MTAgKC5ZKG5fMjI4KSwgCi0JLkMobl80MyksIAotCS5CKG5fMzMpLCAKLQkuQShuXzE5NCkpOwotICAgSU5WWEwgZzE5MTEgKC5ZKG5fMjMwKSwgCi0JLkEobl8yMjkpKTsKLSAgIEFPSTIxMVg0IGcxOTEyICguWShuXzIyOSksIAotCS5DMChuXzUyKSwgCi0JLkIwKG5fNDYpLCAKLQkuQTEobl8xNSksIAotCS5BMChyZWFkX3Byb2cpKTsKLSAgIE9SM1g2IGcxOTEzICguWShuXzIzMSksIAotCS5DKG5fMTk1KSwgCi0JLkIoZGVjb2RlX3NraXBfb25lXzU2MyksIAotCS5BKERGVF9zZG8pKTsKLSAgIE9SM1g2IGcxOTE0ICguWShuXzIzMiksIAotCS5DKG5fMTEpLCAKLQkuQihuXzEyKSwgCi0JLkEoXGRlY29kZVsxMl1fNTgwICkpOwotICAgT0EyMVg0IGcxOTE1ICguWShuXzIzMyksIAotCS5CMChuXzE2KSwgCi0JLkExKG5fMTMpLCAKLQkuQTAobl8xOTIpKTsKLSAgIE9SM1g2IGcxOTE2ICguWShuXzIzNSksIAotCS5DKG5fMjA1KSwgCi0JLkIobl80NiksIAotCS5BKG5fMjM0KSk7Ci0gICBBTkQzWDYgZzE5MTcgKC5ZKG5fMjM0KSwgCi0JLkMobl8yMzEpLCAKLQkuQihuXzE1KSwgCi0JLkEoZ29fcHJvZykpOwotICAgSU5WWEwgZzMgKC5ZKG5fMjM3KSwgCi0JLkEobl8yMzYpKTsKLSAgIEFPSTJCQjFYNCBnMTkxOCAoLlkobl8yMzYpLCAKLQkuQjAobl84MyksIAotCS5BMU4obl8yMTEpLCAKLQkuQTBOKG5fMjE1KSk7Ci1lbmRtb2R1bGUKLQotbW9kdWxlIENLTE5RRDFCV1BfU1BDQV8xMCAoCi0JRSwgCi0JQ1AsIAotCVRFLCAKLQlRKTsKLSAgIGlucHV0IEU7Ci0gICBpbnB1dCBDUDsKLSAgIGlucHV0IFRFOwotICAgb3V0cHV0IFE7Ci0KLSAgIFRMQVROVFNDQVgxNiBMQVRDSCAoLlNFKFRFKSwgCi0JLkVDSyhRKSwgCi0JLkUoRSksIAotCS5DSyhDUCkpOwotZW5kbW9kdWxlCi0KLW1vZHVsZSBSQ19DR19NT0RfMzI5MV8zMjkzICgKLQllbmFibGUsIAotCWNrX2luLCAKLQlja19vdXQsIAotCXRlc3QpOwotICAgaW5wdXQgZW5hYmxlOwotICAgaW5wdXQgY2tfaW47Ci0gICBvdXRwdXQgY2tfb3V0OwotICAgaW5wdXQgdGVzdDsKLQotICAgQ0tMTlFEMUJXUF9TUENBXzEwIFJDX0NHSUNfSU5TVCAoLkUoZW5hYmxlKSwgCi0JLkNQKGNrX2luKSwgCi0JLlRFKHRlc3QpLCAKLQkuUShja19vdXQpKTsKLWVuZG1vZHVsZQotCi1tb2R1bGUgQ0tMTlFEMUJXUF9TUENBXzExICgKLQlFLCAKLQlDUCwgCi0JVEUsIAotCVEpOwotICAgaW5wdXQgRTsKLSAgIGlucHV0IENQOwotICAgaW5wdXQgVEU7Ci0gICBvdXRwdXQgUTsKLQotICAgVExBVE5UU0NBWDE2IExBVENIICguU0UoVEUpLCAKLQkuRUNLKFEpLCAKLQkuRShFKSwgCi0JLkNLKENQKSk7Ci1lbmRtb2R1bGUKLQotbW9kdWxlIFJDX0NHX01PRF8zMjkxXzMyOTQgKAotCWVuYWJsZSwgCi0JY2tfaW4sIAotCWNrX291dCwgCi0JdGVzdCk7Ci0gICBpbnB1dCBlbmFibGU7Ci0gICBpbnB1dCBja19pbjsKLSAgIG91dHB1dCBja19vdXQ7Ci0gICBpbnB1dCB0ZXN0OwotCi0gICBDS0xOUUQxQldQX1NQQ0FfMTEgUkNfQ0dJQ19JTlNUICguRShlbmFibGUpLCAKLQkuQ1AoY2tfaW4pLCAKLQkuVEUodGVzdCksIAotCS5RKGNrX291dCkpOwotZW5kbW9kdWxlCi0KLW1vZHVsZSBDS0xOUUQxQldQX1NQQ0FfMTIgKAotCUUsIAotCUNQLCAKLQlURSwgCi0JUSk7Ci0gICBpbnB1dCBFOwotICAgaW5wdXQgQ1A7Ci0gICBpbnB1dCBURTsKLSAgIG91dHB1dCBROwotCi0gICBUTEFUTlRTQ0FYMTYgTEFUQ0ggKC5TRShURSksIAotCS5FQ0soUSksIAotCS5FKEUpLCAKLQkuQ0soQ1ApKTsKLWVuZG1vZHVsZQotCi1tb2R1bGUgUkNfQ0dfTU9EXzMyOTFfMzI5NSAoCi0JZW5hYmxlLCAKLQlja19pbiwgCi0JY2tfb3V0LCAKLQl0ZXN0KTsKLSAgIGlucHV0IGVuYWJsZTsKLSAgIGlucHV0IGNrX2luOwotICAgb3V0cHV0IGNrX291dDsKLSAgIGlucHV0IHRlc3Q7Ci0KLSAgIENLTE5RRDFCV1BfU1BDQV8xMiBSQ19DR0lDX0lOU1QgKC5FKGVuYWJsZSksIAotCS5DUChja19pbiksIAotCS5URSh0ZXN0KSwgCi0JLlEoY2tfb3V0KSk7Ci1lbmRtb2R1bGUKLQotbW9kdWxlIENLTE5RRDFCV1BfU1BDQV8xMyAoCi0JRSwgCi0JQ1AsIAotCVRFLCAKLQlRKTsKLSAgIGlucHV0IEU7Ci0gICBpbnB1dCBDUDsKLSAgIGlucHV0IFRFOwotICAgb3V0cHV0IFE7Ci0KLSAgIFRMQVROVFNDQVgxNiBMQVRDSCAoLlNFKFRFKSwgCi0JLkVDSyhRKSwgCi0JLkUoRSksIAotCS5DSyhDUCkpOwotZW5kbW9kdWxlCi0KLW1vZHVsZSBSQ19DR19NT0RfMzI5MV8zMjk2ICgKLQllbmFibGUsIAotCWNrX2luLCAKLQlja19vdXQsIAotCXRlc3QpOwotICAgaW5wdXQgZW5hYmxlOwotICAgaW5wdXQgY2tfaW47Ci0gICBvdXRwdXQgY2tfb3V0OwotICAgaW5wdXQgdGVzdDsKLQotICAgQ0tMTlFEMUJXUF9TUENBXzEzIFJDX0NHSUNfSU5TVCAoLkUoZW5hYmxlKSwgCi0JLkNQKGNrX2luKSwgCi0JLlRFKHRlc3QpLCAKLQkuUShja19vdXQpKTsKLWVuZG1vZHVsZQotCi1tb2R1bGUgQ0tMTlFEMUJXUF9TUENBXzE0ICgKLQlFLCAKLQlDUCwgCi0JVEUsIAotCVEpOwotICAgaW5wdXQgRTsKLSAgIGlucHV0IENQOwotICAgaW5wdXQgVEU7Ci0gICBvdXRwdXQgUTsKLQotICAgVExBVE5UU0NBWDE2IExBVENIICguU0UoVEUpLCAKLQkuRUNLKFEpLCAKLQkuRShFKSwgCi0JLkNLKENQKSk7Ci1lbmRtb2R1bGUKLQotbW9kdWxlIFJDX0NHX01PRF8zMjkxXzMyOTcgKAotCWVuYWJsZSwgCi0JY2tfaW4sIAotCWNrX291dCwgCi0JdGVzdCk7Ci0gICBpbnB1dCBlbmFibGU7Ci0gICBpbnB1dCBja19pbjsKLSAgIG91dHB1dCBja19vdXQ7Ci0gICBpbnB1dCB0ZXN0OwotCi0gICBDS0xOUUQxQldQX1NQQ0FfMTQgUkNfQ0dJQ19JTlNUICguRShlbmFibGUpLCAKLQkuQ1AoY2tfaW4pLCAKLQkuVEUodGVzdCksIAotCS5RKGNrX291dCkpOwotZW5kbW9kdWxlCi0KLW1vZHVsZSBDS0xOUUQxQldQX1NQQ0FfMTUgKAotCUUsIAotCUNQLCAKLQlURSwgCi0JUSk7Ci0gICBpbnB1dCBFOwotICAgaW5wdXQgQ1A7Ci0gICBpbnB1dCBURTsKLSAgIG91dHB1dCBROwotCi0gICBUTEFUTlRTQ0FYMTYgTEFUQ0ggKC5TRShURSksIAotCS5FQ0soUSksIAotCS5FKEUpLCAKLQkuQ0soQ1ApKTsKLWVuZG1vZHVsZQotCi1tb2R1bGUgUkNfQ0dfTU9EXzMyOTFfMzI5OCAoCi0JZW5hYmxlLCAKLQlja19pbiwgCi0JY2tfb3V0LCAKLQl0ZXN0LCAKLQlzX3JzdCk7Ci0gICBpbnB1dCBlbmFibGU7Ci0gICBpbnB1dCBja19pbjsKLSAgIG91dHB1dCBja19vdXQ7Ci0gICBpbnB1dCB0ZXN0OwotICAgaW5wdXQgc19yc3Q7Ci0KLSAgIC8vIEludGVybmFsIHdpcmVzCi0gICB3aXJlIG5fMDsKLQotICAgQ0tMTlFEMUJXUF9TUENBXzE1IFJDX0NHSUNfSU5TVCAoLkUobl8wKSwgCi0JLkNQKGNrX2luKSwgCi0JLlRFKHRlc3QpLCAKLQkuUShja19vdXQpKTsKLSAgIE9SMlgxIGcyICguWShuXzApLCAKLQkuQihlbmFibGUpLCAKLQkuQShzX3JzdCkpOwotZW5kbW9kdWxlCi0KLW1vZHVsZSBDS0xOUUQxQldQX1NQQ0FfMTYgKAotCUUsIAotCUNQLCAKLQlURSwgCi0JUSk7Ci0gICBpbnB1dCBFOwotICAgaW5wdXQgQ1A7Ci0gICBpbnB1dCBURTsKLSAgIG91dHB1dCBROwotCi0gICBUTEFUTlRTQ0FYMTYgTEFUQ0ggKC5TRShURSksIAotCS5FQ0soUSksIAotCS5FKEUpLCAKLQkuQ0soQ1ApKTsKLWVuZG1vZHVsZQotCi1tb2R1bGUgUkNfQ0dfTU9EXzMyOTFfMzI5OSAoCi0JZW5hYmxlLCAKLQlja19pbiwgCi0JY2tfb3V0LCAKLQl0ZXN0KTsKLSAgIGlucHV0IGVuYWJsZTsKLSAgIGlucHV0IGNrX2luOwotICAgb3V0cHV0IGNrX291dDsKLSAgIGlucHV0IHRlc3Q7Ci0KLSAgIENLTE5RRDFCV1BfU1BDQV8xNiBSQ19DR0lDX0lOU1QgKC5FKGVuYWJsZSksIAotCS5DUChja19pbiksIAotCS5URSh0ZXN0KSwgCi0JLlEoY2tfb3V0KSk7Ci1lbmRtb2R1bGUKLQotbW9kdWxlIFNERkNOUUQxQldQX1NQQ0FfMTQ1ICgKLQlTSSwgCi0JU0UsIAotCVEsIAotCUQsIAotCUNQLCAKLQlDRE4pOwotICAgaW5wdXQgU0k7Ci0gICBpbnB1dCBTRTsKLSAgIG91dHB1dCBROwotICAgaW5wdXQgRDsKLSAgIGlucHV0IENQOwotICAgaW5wdXQgQ0ROOwotCi0gICBTREZGUlg0IERGRiAoLlNJKFNJKSwgCi0JLlNFKFNFKSwgCi0JLlJOKENETiksIAotCS5RKFEpLCAKLQkuRChEKSwgCi0JLkNLKENQKSk7Ci1lbmRtb2R1bGUKLQotbW9kdWxlIFJTREZDU1JIRDJCV1BfUkVNQVBfU1BDXzYzICgKLQlDRE4sIAotCVNETiwgCi0JQ1AsIAotCUQsIAotCVNJLCAKLQlTRSwgCi0JU0FWRSwgCi0JTlJFU1RPUkUsIAotCVEpOwotICAgaW5wdXQgQ0ROOwotICAgaW5wdXQgU0ROOwotICAgaW5wdXQgQ1A7Ci0gICBpbnB1dCBEOwotICAgaW5wdXQgU0k7Ci0gICBpbnB1dCBTRTsKLSAgIGlucHV0IFNBVkU7Ci0gICBpbnB1dCBOUkVTVE9SRTsKLSAgIG91dHB1dCBROwotCi0gICBTREZDTlFEMUJXUF9TUENBXzE0NSBzdGF0ZV9yZW1hcCAoLlNJKFNJKSwgCi0JLlNFKFNFKSwgCi0JLlEoUSksIAotCS5EKEQpLCAKLQkuQ1AoQ1ApLCAKLQkuQ0ROKENETikpOwotZW5kbW9kdWxlCi0KLW1vZHVsZSBTREZDTlFEMUJXUF9TUENBXzE0NiAoCi0JU0ksIAotCVNFLCAKLQlRLCAKLQlELCAKLQlDUCwgCi0JQ0ROKTsKLSAgIGlucHV0IFNJOwotICAgaW5wdXQgU0U7Ci0gICBvdXRwdXQgUTsKLSAgIGlucHV0IEQ7Ci0gICBpbnB1dCBDUDsKLSAgIGlucHV0IENETjsKLQotICAgU0RGRlJYNCBERkYgKC5TSShTSSksIAotCS5TRShTRSksIAotCS5STihDRE4pLCAKLQkuUShRKSwgCi0JLkQoRCksIAotCS5DSyhDUCkpOwotZW5kbW9kdWxlCi0KLW1vZHVsZSBSU0RGQ1NSSEQyQldQX1JFTUFQX1NQQ182NCAoCi0JQ0ROLCAKLQlTRE4sIAotCUNQLCAKLQlELCAKLQlTSSwgCi0JU0UsIAotCVNBVkUsIAotCU5SRVNUT1JFLCAKLQlRKTsKLSAgIGlucHV0IENETjsKLSAgIGlucHV0IFNETjsKLSAgIGlucHV0IENQOwotICAgaW5wdXQgRDsKLSAgIGlucHV0IFNJOwotICAgaW5wdXQgU0U7Ci0gICBpbnB1dCBTQVZFOwotICAgaW5wdXQgTlJFU1RPUkU7Ci0gICBvdXRwdXQgUTsKLQotICAgU0RGQ05RRDFCV1BfU1BDQV8xNDYgc3RhdGVfcmVtYXAgKC5TSShTSSksIAotCS5TRShTRSksIAotCS5RKFEpLCAKLQkuRChEKSwgCi0JLkNQKENQKSwgCi0JLkNETihDRE4pKTsKLWVuZG1vZHVsZQotCi1tb2R1bGUgU0RGQ05RRDFCV1BfU1BDQV8xNDcgKAotCVNJLCAKLQlTRSwgCi0JUSwgCi0JRCwgCi0JQ1AsIAotCUNETik7Ci0gICBpbnB1dCBTSTsKLSAgIGlucHV0IFNFOwotICAgb3V0cHV0IFE7Ci0gICBpbnB1dCBEOwotICAgaW5wdXQgQ1A7Ci0gICBpbnB1dCBDRE47Ci0KLSAgIFNERkZSWDQgREZGICguU0koU0kpLCAKLQkuU0UoU0UpLCAKLQkuUk4oQ0ROKSwgCi0JLlEoUSksIAotCS5EKEQpLCAKLQkuQ0soQ1ApKTsKLWVuZG1vZHVsZQotCi1tb2R1bGUgUlNERkNTUkhEMkJXUF9SRU1BUF9TUENfNjUgKAotCUNETiwgCi0JU0ROLCAKLQlDUCwgCi0JRCwgCi0JU0ksIAotCVNFLCAKLQlTQVZFLCAKLQlOUkVTVE9SRSwgCi0JUSk7Ci0gICBpbnB1dCBDRE47Ci0gICBpbnB1dCBTRE47Ci0gICBpbnB1dCBDUDsKLSAgIGlucHV0IEQ7Ci0gICBpbnB1dCBTSTsKLSAgIGlucHV0IFNFOwotICAgaW5wdXQgU0FWRTsKLSAgIGlucHV0IE5SRVNUT1JFOwotICAgb3V0cHV0IFE7Ci0KLSAgIFNERkNOUUQxQldQX1NQQ0FfMTQ3IHN0YXRlX3JlbWFwICguU0koU0kpLCAKLQkuU0UoU0UpLCAKLQkuUShRKSwgCi0JLkQoRCksIAotCS5DUChDUCksIAotCS5DRE4oQ0ROKSk7Ci1lbmRtb2R1bGUKLQotbW9kdWxlIFNERkNOUUQxQldQX1NQQ0FfMTQ4ICgKLQlTSSwgCi0JU0UsIAotCVEsIAotCUQsIAotCUNQLCAKLQlDRE4pOwotICAgaW5wdXQgU0k7Ci0gICBpbnB1dCBTRTsKLSAgIG91dHB1dCBROwotICAgaW5wdXQgRDsKLSAgIGlucHV0IENQOwotICAgaW5wdXQgQ0ROOwotCi0gICBTREZGUlg0IERGRiAoLlNJKFNJKSwgCi0JLlNFKFNFKSwgCi0JLlJOKENETiksIAotCS5RKFEpLCAKLQkuRChEKSwgCi0JLkNLKENQKSk7Ci1lbmRtb2R1bGUKLQotbW9kdWxlIFJTREZDU1JIRDJCV1BfUkVNQVBfU1BDXzY2ICgKLQlDRE4sIAotCVNETiwgCi0JQ1AsIAotCUQsIAotCVNJLCAKLQlTRSwgCi0JU0FWRSwgCi0JTlJFU1RPUkUsIAotCVEpOwotICAgaW5wdXQgQ0ROOwotICAgaW5wdXQgU0ROOwotICAgaW5wdXQgQ1A7Ci0gICBpbnB1dCBEOwotICAgaW5wdXQgU0k7Ci0gICBpbnB1dCBTRTsKLSAgIGlucHV0IFNBVkU7Ci0gICBpbnB1dCBOUkVTVE9SRTsKLSAgIG91dHB1dCBROwotCi0gICBTREZDTlFEMUJXUF9TUENBXzE0OCBzdGF0ZV9yZW1hcCAoLlNJKFNJKSwgCi0JLlNFKFNFKSwgCi0JLlEoUSksIAotCS5EKEQpLCAKLQkuQ1AoQ1ApLCAKLQkuQ0ROKENETikpOwotZW5kbW9kdWxlCi0KLW1vZHVsZSBTREZDTlFEMUJXUF9TUENBXzE0OSAoCi0JU0ksIAotCVNFLCAKLQlRLCAKLQlELCAKLQlDUCwgCi0JQ0ROKTsKLSAgIGlucHV0IFNJOwotICAgaW5wdXQgU0U7Ci0gICBvdXRwdXQgUTsKLSAgIGlucHV0IEQ7Ci0gICBpbnB1dCBDUDsKLSAgIGlucHV0IENETjsKLQotICAgU0RGRlJYNCBERkYgKC5TSShTSSksIAotCS5TRShTRSksIAotCS5STihDRE4pLCAKLQkuUShRKSwgCi0JLkQoRCksIAotCS5DSyhDUCkpOwotZW5kbW9kdWxlCi0KLW1vZHVsZSBSU0RGQ1NSSEQyQldQX1JFTUFQX1NQQ182NyAoCi0JQ0ROLCAKLQlTRE4sIAotCUNQLCAKLQlELCAKLQlTSSwgCi0JU0UsIAotCVNBVkUsIAotCU5SRVNUT1JFLCAKLQlRKTsKLSAgIGlucHV0IENETjsKLSAgIGlucHV0IFNETjsKLSAgIGlucHV0IENQOwotICAgaW5wdXQgRDsKLSAgIGlucHV0IFNJOwotICAgaW5wdXQgU0U7Ci0gICBpbnB1dCBTQVZFOwotICAgaW5wdXQgTlJFU1RPUkU7Ci0gICBvdXRwdXQgUTsKLQotICAgU0RGQ05RRDFCV1BfU1BDQV8xNDkgc3RhdGVfcmVtYXAgKC5TSShTSSksIAotCS5TRShTRSksIAotCS5RKFEpLCAKLQkuRChEKSwgCi0JLkNQKENQKSwgCi0JLkNETihDRE4pKTsKLWVuZG1vZHVsZQotCi1tb2R1bGUgU0RGQ05RRDFCV1BfU1BDQV8xNTAgKAotCVNJLCAKLQlTRSwgCi0JUSwgCi0JRCwgCi0JQ1AsIAotCUNETik7Ci0gICBpbnB1dCBTSTsKLSAgIGlucHV0IFNFOwotICAgb3V0cHV0IFE7Ci0gICBpbnB1dCBEOwotICAgaW5wdXQgQ1A7Ci0gICBpbnB1dCBDRE47Ci0KLSAgIFNERkZSWDQgREZGICguU0koU0kpLCAKLQkuU0UoU0UpLCAKLQkuUk4oQ0ROKSwgCi0JLlEoUSksIAotCS5EKEQpLCAKLQkuQ0soQ1ApKTsKLWVuZG1vZHVsZQotCi1tb2R1bGUgUlNERkNTUkhEMkJXUF9SRU1BUF9TUENfNjggKAotCUNETiwgCi0JU0ROLCAKLQlDUCwgCi0JRCwgCi0JU0ksIAotCVNFLCAKLQlTQVZFLCAKLQlOUkVTVE9SRSwgCi0JUSk7Ci0gICBpbnB1dCBDRE47Ci0gICBpbnB1dCBTRE47Ci0gICBpbnB1dCBDUDsKLSAgIGlucHV0IEQ7Ci0gICBpbnB1dCBTSTsKLSAgIGlucHV0IFNFOwotICAgaW5wdXQgU0FWRTsKLSAgIGlucHV0IE5SRVNUT1JFOwotICAgb3V0cHV0IFE7Ci0KLSAgIFNERkNOUUQxQldQX1NQQ0FfMTUwIHN0YXRlX3JlbWFwICguU0koU0kpLCAKLQkuU0UoU0UpLCAKLQkuUShRKSwgCi0JLkQoRCksIAotCS5DUChDUCksIAotCS5DRE4oQ0ROKSk7Ci1lbmRtb2R1bGUKLQotbW9kdWxlIFNERkNOUUQxQldQX1NQQ0FfMTUxICgKLQlTSSwgCi0JU0UsIAotCVEsIAotCUQsIAotCUNQLCAKLQlDRE4pOwotICAgaW5wdXQgU0k7Ci0gICBpbnB1dCBTRTsKLSAgIG91dHB1dCBROwotICAgaW5wdXQgRDsKLSAgIGlucHV0IENQOwotICAgaW5wdXQgQ0ROOwotCi0gICBTREZGUlg0IERGRiAoLlNJKFNJKSwgCi0JLlNFKFNFKSwgCi0JLlJOKENETiksIAotCS5RKFEpLCAKLQkuRChEKSwgCi0JLkNLKENQKSk7Ci1lbmRtb2R1bGUKLQotbW9kdWxlIFJTREZDU1JIRDJCV1BfUkVNQVBfU1BDXzY5ICgKLQlDRE4sIAotCVNETiwgCi0JQ1AsIAotCUQsIAotCVNJLCAKLQlTRSwgCi0JU0FWRSwgCi0JTlJFU1RPUkUsIAotCVEpOwotICAgaW5wdXQgQ0ROOwotICAgaW5wdXQgU0ROOwotICAgaW5wdXQgQ1A7Ci0gICBpbnB1dCBEOwotICAgaW5wdXQgU0k7Ci0gICBpbnB1dCBTRTsKLSAgIGlucHV0IFNBVkU7Ci0gICBpbnB1dCBOUkVTVE9SRTsKLSAgIG91dHB1dCBROwotCi0gICBTREZDTlFEMUJXUF9TUENBXzE1MSBzdGF0ZV9yZW1hcCAoLlNJKFNJKSwgCi0JLlNFKFNFKSwgCi0JLlEoUSksIAotCS5EKEQpLCAKLQkuQ1AoQ1ApLCAKLQkuQ0ROKENETikpOwotZW5kbW9kdWxlCi0KLW1vZHVsZSBTREZDTlFEMUJXUF9TUENBXzE1MiAoCi0JU0ksIAotCVNFLCAKLQlRLCAKLQlELCAKLQlDUCwgCi0JQ0ROKTsKLSAgIGlucHV0IFNJOwotICAgaW5wdXQgU0U7Ci0gICBvdXRwdXQgUTsKLSAgIGlucHV0IEQ7Ci0gICBpbnB1dCBDUDsKLSAgIGlucHV0IENETjsKLQotICAgU0RGRlJYNCBERkYgKC5TSShTSSksIAotCS5TRShTRSksIAotCS5STihDRE4pLCAKLQkuUShRKSwgCi0JLkQoRCksIAotCS5DSyhDUCkpOwotZW5kbW9kdWxlCi0KLW1vZHVsZSBSU0RGQ1NSSEQyQldQX1JFTUFQX1NQQ183MCAoCi0JQ0ROLCAKLQlTRE4sIAotCUNQLCAKLQlELCAKLQlTSSwgCi0JU0UsIAotCVNBVkUsIAotCU5SRVNUT1JFLCAKLQlRKTsKLSAgIGlucHV0IENETjsKLSAgIGlucHV0IFNETjsKLSAgIGlucHV0IENQOwotICAgaW5wdXQgRDsKLSAgIGlucHV0IFNJOwotICAgaW5wdXQgU0U7Ci0gICBpbnB1dCBTQVZFOwotICAgaW5wdXQgTlJFU1RPUkU7Ci0gICBvdXRwdXQgUTsKLQotICAgU0RGQ05RRDFCV1BfU1BDQV8xNTIgc3RhdGVfcmVtYXAgKC5TSShTSSksIAotCS5TRShTRSksIAotCS5RKFEpLCAKLQkuRChEKSwgCi0JLkNQKENQKSwgCi0JLkNETihDRE4pKTsKLWVuZG1vZHVsZQotCi1tb2R1bGUgU0RGQ05RRDFCV1BfU1BDQV8xNTMgKAotCVNJLCAKLQlTRSwgCi0JUSwgCi0JRCwgCi0JQ1AsIAotCUNETik7Ci0gICBpbnB1dCBTSTsKLSAgIGlucHV0IFNFOwotICAgb3V0cHV0IFE7Ci0gICBpbnB1dCBEOwotICAgaW5wdXQgQ1A7Ci0gICBpbnB1dCBDRE47Ci0KLSAgIFNERkZSWDQgREZGICguU0koU0kpLCAKLQkuU0UoU0UpLCAKLQkuUk4oQ0ROKSwgCi0JLlEoUSksIAotCS5EKEQpLCAKLQkuQ0soQ1ApKTsKLWVuZG1vZHVsZQotCi1tb2R1bGUgUlNERkNTUkhEMkJXUF9SRU1BUF9TUENfNzEgKAotCUNETiwgCi0JU0ROLCAKLQlDUCwgCi0JRCwgCi0JU0ksIAotCVNFLCAKLQlTQVZFLCAKLQlOUkVTVE9SRSwgCi0JUSk7Ci0gICBpbnB1dCBDRE47Ci0gICBpbnB1dCBTRE47Ci0gICBpbnB1dCBDUDsKLSAgIGlucHV0IEQ7Ci0gICBpbnB1dCBTSTsKLSAgIGlucHV0IFNFOwotICAgaW5wdXQgU0FWRTsKLSAgIGlucHV0IE5SRVNUT1JFOwotICAgb3V0cHV0IFE7Ci0KLSAgIFNERkNOUUQxQldQX1NQQ0FfMTUzIHN0YXRlX3JlbWFwICguU0koU0kpLCAKLQkuU0UoU0UpLCAKLQkuUShRKSwgCi0JLkQoRCksIAotCS5DUChDUCksIAotCS5DRE4oQ0ROKSk7Ci1lbmRtb2R1bGUKLQotbW9kdWxlIFNERkNOUUQxQldQX1NQQ0FfMTU0ICgKLQlTSSwgCi0JU0UsIAotCVEsIAotCUQsIAotCUNQLCAKLQlDRE4pOwotICAgaW5wdXQgU0k7Ci0gICBpbnB1dCBTRTsKLSAgIG91dHB1dCBROwotICAgaW5wdXQgRDsKLSAgIGlucHV0IENQOwotICAgaW5wdXQgQ0ROOwotCi0gICBTREZGUlg0IERGRiAoLlNJKFNJKSwgCi0JLlNFKFNFKSwgCi0JLlJOKENETiksIAotCS5RKFEpLCAKLQkuRChEKSwgCi0JLkNLKENQKSk7Ci1lbmRtb2R1bGUKLQotbW9kdWxlIFJTREZDU1JIRDJCV1BfUkVNQVBfU1BDXzcyICgKLQlDRE4sIAotCVNETiwgCi0JQ1AsIAotCUQsIAotCVNJLCAKLQlTRSwgCi0JU0FWRSwgCi0JTlJFU1RPUkUsIAotCVEpOwotICAgaW5wdXQgQ0ROOwotICAgaW5wdXQgU0ROOwotICAgaW5wdXQgQ1A7Ci0gICBpbnB1dCBEOwotICAgaW5wdXQgU0k7Ci0gICBpbnB1dCBTRTsKLSAgIGlucHV0IFNBVkU7Ci0gICBpbnB1dCBOUkVTVE9SRTsKLSAgIG91dHB1dCBROwotCi0gICBTREZDTlFEMUJXUF9TUENBXzE1NCBzdGF0ZV9yZW1hcCAoLlNJKFNJKSwgCi0JLlNFKFNFKSwgCi0JLlEoUSksIAotCS5EKEQpLCAKLQkuQ1AoQ1ApLCAKLQkuQ0ROKENETikpOwotZW5kbW9kdWxlCi0KLW1vZHVsZSBTREZDTlFEMUJXUF9TUENBXzE1NSAoCi0JU0ksIAotCVNFLCAKLQlRLCAKLQlELCAKLQlDUCwgCi0JQ0ROKTsKLSAgIGlucHV0IFNJOwotICAgaW5wdXQgU0U7Ci0gICBvdXRwdXQgUTsKLSAgIGlucHV0IEQ7Ci0gICBpbnB1dCBDUDsKLSAgIGlucHV0IENETjsKLQotICAgU0RGRlJYNCBERkYgKC5TSShTSSksIAotCS5TRShTRSksIAotCS5STihDRE4pLCAKLQkuUShRKSwgCi0JLkQoRCksIAotCS5DSyhDUCkpOwotZW5kbW9kdWxlCi0KLW1vZHVsZSBSU0RGQ1NSSEQyQldQX1JFTUFQX1NQQ183MyAoCi0JQ0ROLCAKLQlTRE4sIAotCUNQLCAKLQlELCAKLQlTSSwgCi0JU0UsIAotCVNBVkUsIAotCU5SRVNUT1JFLCAKLQlRKTsKLSAgIGlucHV0IENETjsKLSAgIGlucHV0IFNETjsKLSAgIGlucHV0IENQOwotICAgaW5wdXQgRDsKLSAgIGlucHV0IFNJOwotICAgaW5wdXQgU0U7Ci0gICBpbnB1dCBTQVZFOwotICAgaW5wdXQgTlJFU1RPUkU7Ci0gICBvdXRwdXQgUTsKLQotICAgU0RGQ05RRDFCV1BfU1BDQV8xNTUgc3RhdGVfcmVtYXAgKC5TSShTSSksIAotCS5TRShTRSksIAotCS5RKFEpLCAKLQkuRChEKSwgCi0JLkNQKENQKSwgCi0JLkNETihDRE4pKTsKLWVuZG1vZHVsZQotCi1tb2R1bGUgU0RGQ05RRDFCV1BfU1BDQV8xNTYgKAotCVNJLCAKLQlTRSwgCi0JUSwgCi0JRCwgCi0JQ1AsIAotCUNETik7Ci0gICBpbnB1dCBTSTsKLSAgIGlucHV0IFNFOwotICAgb3V0cHV0IFE7Ci0gICBpbnB1dCBEOwotICAgaW5wdXQgQ1A7Ci0gICBpbnB1dCBDRE47Ci0KLSAgIFNERkZSWDQgREZGICguU0koU0kpLCAKLQkuU0UoU0UpLCAKLQkuUk4oQ0ROKSwgCi0JLlEoUSksIAotCS5EKEQpLCAKLQkuQ0soQ1ApKTsKLWVuZG1vZHVsZQotCi1tb2R1bGUgUlNERkNTUkhEMkJXUF9SRU1BUF9TUENfNzQgKAotCUNETiwgCi0JU0ROLCAKLQlDUCwgCi0JRCwgCi0JU0ksIAotCVNFLCAKLQlTQVZFLCAKLQlOUkVTVE9SRSwgCi0JUSk7Ci0gICBpbnB1dCBDRE47Ci0gICBpbnB1dCBTRE47Ci0gICBpbnB1dCBDUDsKLSAgIGlucHV0IEQ7Ci0gICBpbnB1dCBTSTsKLSAgIGlucHV0IFNFOwotICAgaW5wdXQgU0FWRTsKLSAgIGlucHV0IE5SRVNUT1JFOwotICAgb3V0cHV0IFE7Ci0KLSAgIFNERkNOUUQxQldQX1NQQ0FfMTU2IHN0YXRlX3JlbWFwICguU0koU0kpLCAKLQkuU0UoU0UpLCAKLQkuUShRKSwgCi0JLkQoRCksIAotCS5DUChDUCksIAotCS5DRE4oQ0ROKSk7Ci1lbmRtb2R1bGUKLQotbW9kdWxlIFNERkNOUUQxQldQX1NQQ0FfMTU3ICgKLQlTSSwgCi0JU0UsIAotCVEsIAotCUQsIAotCUNQLCAKLQlDRE4pOwotICAgaW5wdXQgU0k7Ci0gICBpbnB1dCBTRTsKLSAgIG91dHB1dCBROwotICAgaW5wdXQgRDsKLSAgIGlucHV0IENQOwotICAgaW5wdXQgQ0ROOwotCi0gICBTREZGUlg0IERGRiAoLlNJKFNJKSwgCi0JLlNFKFNFKSwgCi0JLlJOKENETiksIAotCS5RKFEpLCAKLQkuRChEKSwgCi0JLkNLKENQKSk7Ci1lbmRtb2R1bGUKLQotbW9kdWxlIFJTREZDU1JIRDJCV1BfUkVNQVBfU1BDXzc1ICgKLQlDRE4sIAotCVNETiwgCi0JQ1AsIAotCUQsIAotCVNJLCAKLQlTRSwgCi0JU0FWRSwgCi0JTlJFU1RPUkUsIAotCVEpOwotICAgaW5wdXQgQ0ROOwotICAgaW5wdXQgU0ROOwotICAgaW5wdXQgQ1A7Ci0gICBpbnB1dCBEOwotICAgaW5wdXQgU0k7Ci0gICBpbnB1dCBTRTsKLSAgIGlucHV0IFNBVkU7Ci0gICBpbnB1dCBOUkVTVE9SRTsKLSAgIG91dHB1dCBROwotCi0gICBTREZDTlFEMUJXUF9TUENBXzE1NyBzdGF0ZV9yZW1hcCAoLlNJKFNJKSwgCi0JLlNFKFNFKSwgCi0JLlEoUSksIAotCS5EKEQpLCAKLQkuQ1AoQ1ApLCAKLQkuQ0ROKENETikpOwotZW5kbW9kdWxlCi0KLW1vZHVsZSBTREZDTlFEMUJXUF9TUENBXzE1OCAoCi0JU0ksIAotCVNFLCAKLQlRLCAKLQlELCAKLQlDUCwgCi0JQ0ROKTsKLSAgIGlucHV0IFNJOwotICAgaW5wdXQgU0U7Ci0gICBvdXRwdXQgUTsKLSAgIGlucHV0IEQ7Ci0gICBpbnB1dCBDUDsKLSAgIGlucHV0IENETjsKLQotICAgU0RGRlJYNCBERkYgKC5TSShTSSksIAotCS5TRShTRSksIAotCS5STihDRE4pLCAKLQkuUShRKSwgCi0JLkQoRCksIAotCS5DSyhDUCkpOwotZW5kbW9kdWxlCi0KLW1vZHVsZSBSU0RGQ1NSSEQyQldQX1JFTUFQX1NQQ183NiAoCi0JQ0ROLCAKLQlTRE4sIAotCUNQLCAKLQlELCAKLQlTSSwgCi0JU0UsIAotCVNBVkUsIAotCU5SRVNUT1JFLCAKLQlRKTsKLSAgIGlucHV0IENETjsKLSAgIGlucHV0IFNETjsKLSAgIGlucHV0IENQOwotICAgaW5wdXQgRDsKLSAgIGlucHV0IFNJOwotICAgaW5wdXQgU0U7Ci0gICBpbnB1dCBTQVZFOwotICAgaW5wdXQgTlJFU1RPUkU7Ci0gICBvdXRwdXQgUTsKLQotICAgU0RGQ05RRDFCV1BfU1BDQV8xNTggc3RhdGVfcmVtYXAgKC5TSShTSSksIAotCS5TRShTRSksIAotCS5RKFEpLCAKLQkuRChEKSwgCi0JLkNQKENQKSwgCi0JLkNETihDRE4pKTsKLWVuZG1vZHVsZQotCi1tb2R1bGUgU0RGQ05RRDFCV1BfU1BDQV8xNTkgKAotCVNJLCAKLQlTRSwgCi0JUSwgCi0JRCwgCi0JQ1AsIAotCUNETik7Ci0gICBpbnB1dCBTSTsKLSAgIGlucHV0IFNFOwotICAgb3V0cHV0IFE7Ci0gICBpbnB1dCBEOwotICAgaW5wdXQgQ1A7Ci0gICBpbnB1dCBDRE47Ci0KLSAgIFNERkZSWDQgREZGICguU0koU0kpLCAKLQkuU0UoU0UpLCAKLQkuUk4oQ0ROKSwgCi0JLlEoUSksIAotCS5EKEQpLCAKLQkuQ0soQ1ApKTsKLWVuZG1vZHVsZQotCi1tb2R1bGUgUlNERkNTUkhEMkJXUF9SRU1BUF9TUENfNzcgKAotCUNETiwgCi0JU0ROLCAKLQlDUCwgCi0JRCwgCi0JU0ksIAotCVNFLCAKLQlTQVZFLCAKLQlOUkVTVE9SRSwgCi0JUSk7Ci0gICBpbnB1dCBDRE47Ci0gICBpbnB1dCBTRE47Ci0gICBpbnB1dCBDUDsKLSAgIGlucHV0IEQ7Ci0gICBpbnB1dCBTSTsKLSAgIGlucHV0IFNFOwotICAgaW5wdXQgU0FWRTsKLSAgIGlucHV0IE5SRVNUT1JFOwotICAgb3V0cHV0IFE7Ci0KLSAgIFNERkNOUUQxQldQX1NQQ0FfMTU5IHN0YXRlX3JlbWFwICguU0koU0kpLCAKLQkuU0UoU0UpLCAKLQkuUShRKSwgCi0JLkQoRCksIAotCS5DUChDUCksIAotCS5DRE4oQ0ROKSk7Ci1lbmRtb2R1bGUKLQotbW9kdWxlIFNERkNOUUQxQldQX1NQQ0FfMTYwICgKLQlTSSwgCi0JU0UsIAotCVEsIAotCUQsIAotCUNQLCAKLQlDRE4pOwotICAgaW5wdXQgU0k7Ci0gICBpbnB1dCBTRTsKLSAgIG91dHB1dCBROwotICAgaW5wdXQgRDsKLSAgIGlucHV0IENQOwotICAgaW5wdXQgQ0ROOwotCi0gICBTREZGUlg0IERGRiAoLlNJKFNJKSwgCi0JLlNFKFNFKSwgCi0JLlJOKENETiksIAotCS5RKFEpLCAKLQkuRChEKSwgCi0JLkNLKENQKSk7Ci1lbmRtb2R1bGUKLQotbW9kdWxlIFJTREZDU1JIRDJCV1BfUkVNQVBfU1BDXzc4ICgKLQlDRE4sIAotCVNETiwgCi0JQ1AsIAotCUQsIAotCVNJLCAKLQlTRSwgCi0JU0FWRSwgCi0JTlJFU1RPUkUsIAotCVEpOwotICAgaW5wdXQgQ0ROOwotICAgaW5wdXQgU0ROOwotICAgaW5wdXQgQ1A7Ci0gICBpbnB1dCBEOwotICAgaW5wdXQgU0k7Ci0gICBpbnB1dCBTRTsKLSAgIGlucHV0IFNBVkU7Ci0gICBpbnB1dCBOUkVTVE9SRTsKLSAgIG91dHB1dCBROwotCi0gICBTREZDTlFEMUJXUF9TUENBXzE2MCBzdGF0ZV9yZW1hcCAoLlNJKFNJKSwgCi0JLlNFKFNFKSwgCi0JLlEoUSksIAotCS5EKEQpLCAKLQkuQ1AoQ1ApLCAKLQkuQ0ROKENETikpOwotZW5kbW9kdWxlCi0KLW1vZHVsZSBTREZDTlFEMUJXUF9TUENBXzE2MSAoCi0JU0ksIAotCVNFLCAKLQlRLCAKLQlELCAKLQlDUCwgCi0JQ0ROKTsKLSAgIGlucHV0IFNJOwotICAgaW5wdXQgU0U7Ci0gICBvdXRwdXQgUTsKLSAgIGlucHV0IEQ7Ci0gICBpbnB1dCBDUDsKLSAgIGlucHV0IENETjsKLQotICAgU0RGRlJYNCBERkYgKC5TSShTSSksIAotCS5TRShTRSksIAotCS5STihDRE4pLCAKLQkuUShRKSwgCi0JLkQoRCksIAotCS5DSyhDUCkpOwotZW5kbW9kdWxlCi0KLW1vZHVsZSBSU0RGQ1NSSEQyQldQX1JFTUFQX1NQQ183OSAoCi0JQ0ROLCAKLQlTRE4sIAotCUNQLCAKLQlELCAKLQlTSSwgCi0JU0UsIAotCVNBVkUsIAotCU5SRVNUT1JFLCAKLQlRKTsKLSAgIGlucHV0IENETjsKLSAgIGlucHV0IFNETjsKLSAgIGlucHV0IENQOwotICAgaW5wdXQgRDsKLSAgIGlucHV0IFNJOwotICAgaW5wdXQgU0U7Ci0gICBpbnB1dCBTQVZFOwotICAgaW5wdXQgTlJFU1RPUkU7Ci0gICBvdXRwdXQgUTsKLQotICAgU0RGQ05RRDFCV1BfU1BDQV8xNjEgc3RhdGVfcmVtYXAgKC5TSShTSSksIAotCS5TRShTRSksIAotCS5RKFEpLCAKLQkuRChEKSwgCi0JLkNQKENQKSwgCi0JLkNETihDRE4pKTsKLWVuZG1vZHVsZQotCi1tb2R1bGUgU0RGQ05RRDFCV1BfU1BDQV8xNjIgKAotCVNJLCAKLQlTRSwgCi0JUSwgCi0JRCwgCi0JQ1AsIAotCUNETik7Ci0gICBpbnB1dCBTSTsKLSAgIGlucHV0IFNFOwotICAgb3V0cHV0IFE7Ci0gICBpbnB1dCBEOwotICAgaW5wdXQgQ1A7Ci0gICBpbnB1dCBDRE47Ci0KLSAgIFNERkZSWDQgREZGICguU0koU0kpLCAKLQkuU0UoU0UpLCAKLQkuUk4oQ0ROKSwgCi0JLlEoUSksIAotCS5EKEQpLCAKLQkuQ0soQ1ApKTsKLWVuZG1vZHVsZQotCi1tb2R1bGUgUlNERkNTUkhEMkJXUF9SRU1BUF9TUENfODAgKAotCUNETiwgCi0JU0ROLCAKLQlDUCwgCi0JRCwgCi0JU0ksIAotCVNFLCAKLQlTQVZFLCAKLQlOUkVTVE9SRSwgCi0JUSk7Ci0gICBpbnB1dCBDRE47Ci0gICBpbnB1dCBTRE47Ci0gICBpbnB1dCBDUDsKLSAgIGlucHV0IEQ7Ci0gICBpbnB1dCBTSTsKLSAgIGlucHV0IFNFOwotICAgaW5wdXQgU0FWRTsKLSAgIGlucHV0IE5SRVNUT1JFOwotICAgb3V0cHV0IFE7Ci0KLSAgIFNERkNOUUQxQldQX1NQQ0FfMTYyIHN0YXRlX3JlbWFwICguU0koU0kpLCAKLQkuU0UoU0UpLCAKLQkuUShRKSwgCi0JLkQoRCksIAotCS5DUChDUCksIAotCS5DRE4oQ0ROKSk7Ci1lbmRtb2R1bGUKLQotbW9kdWxlIFNERkNOUUQxQldQX1NQQ0FfMTYzICgKLQlTSSwgCi0JU0UsIAotCVEsIAotCUQsIAotCUNQLCAKLQlDRE4pOwotICAgaW5wdXQgU0k7Ci0gICBpbnB1dCBTRTsKLSAgIG91dHB1dCBROwotICAgaW5wdXQgRDsKLSAgIGlucHV0IENQOwotICAgaW5wdXQgQ0ROOwotCi0gICBTREZGUlg0IERGRiAoLlNJKFNJKSwgCi0JLlNFKFNFKSwgCi0JLlJOKENETiksIAotCS5RKFEpLCAKLQkuRChEKSwgCi0JLkNLKENQKSk7Ci1lbmRtb2R1bGUKLQotbW9kdWxlIFJTREZDU1JIRDJCV1BfUkVNQVBfU1BDXzgxICgKLQlDRE4sIAotCVNETiwgCi0JQ1AsIAotCUQsIAotCVNJLCAKLQlTRSwgCi0JU0FWRSwgCi0JTlJFU1RPUkUsIAotCVEpOwotICAgaW5wdXQgQ0ROOwotICAgaW5wdXQgU0ROOwotICAgaW5wdXQgQ1A7Ci0gICBpbnB1dCBEOwotICAgaW5wdXQgU0k7Ci0gICBpbnB1dCBTRTsKLSAgIGlucHV0IFNBVkU7Ci0gICBpbnB1dCBOUkVTVE9SRTsKLSAgIG91dHB1dCBROwotCi0gICBTREZDTlFEMUJXUF9TUENBXzE2MyBzdGF0ZV9yZW1hcCAoLlNJKFNJKSwgCi0JLlNFKFNFKSwgCi0JLlEoUSksIAotCS5EKEQpLCAKLQkuQ1AoQ1ApLCAKLQkuQ0ROKENETikpOwotZW5kbW9kdWxlCi0KLW1vZHVsZSBTREZDTlFEMUJXUF9TUENBXzE2NCAoCi0JU0ksIAotCVNFLCAKLQlRLCAKLQlELCAKLQlDUCwgCi0JQ0ROKTsKLSAgIGlucHV0IFNJOwotICAgaW5wdXQgU0U7Ci0gICBvdXRwdXQgUTsKLSAgIGlucHV0IEQ7Ci0gICBpbnB1dCBDUDsKLSAgIGlucHV0IENETjsKLQotICAgU0RGRlJYNCBERkYgKC5TSShTSSksIAotCS5TRShTRSksIAotCS5STihDRE4pLCAKLQkuUShRKSwgCi0JLkQoRCksIAotCS5DSyhDUCkpOwotZW5kbW9kdWxlCi0KLW1vZHVsZSBSU0RGQ1NSSEQyQldQX1JFTUFQX1NQQ184MiAoCi0JQ0ROLCAKLQlTRE4sIAotCUNQLCAKLQlELCAKLQlTSSwgCi0JU0UsIAotCVNBVkUsIAotCU5SRVNUT1JFLCAKLQlRKTsKLSAgIGlucHV0IENETjsKLSAgIGlucHV0IFNETjsKLSAgIGlucHV0IENQOwotICAgaW5wdXQgRDsKLSAgIGlucHV0IFNJOwotICAgaW5wdXQgU0U7Ci0gICBpbnB1dCBTQVZFOwotICAgaW5wdXQgTlJFU1RPUkU7Ci0gICBvdXRwdXQgUTsKLQotICAgU0RGQ05RRDFCV1BfU1BDQV8xNjQgc3RhdGVfcmVtYXAgKC5TSShTSSksIAotCS5TRShTRSksIAotCS5RKFEpLCAKLQkuRChEKSwgCi0JLkNQKENQKSwgCi0JLkNETihDRE4pKTsKLWVuZG1vZHVsZQotCi1tb2R1bGUgU0RGQ05RRDFCV1BfU1BDQV8xNjUgKAotCVNJLCAKLQlTRSwgCi0JUSwgCi0JRCwgCi0JQ1AsIAotCUNETik7Ci0gICBpbnB1dCBTSTsKLSAgIGlucHV0IFNFOwotICAgb3V0cHV0IFE7Ci0gICBpbnB1dCBEOwotICAgaW5wdXQgQ1A7Ci0gICBpbnB1dCBDRE47Ci0KLSAgIFNERkZSWDQgREZGICguU0koU0kpLCAKLQkuU0UoU0UpLCAKLQkuUk4oQ0ROKSwgCi0JLlEoUSksIAotCS5EKEQpLCAKLQkuQ0soQ1ApKTsKLWVuZG1vZHVsZQotCi1tb2R1bGUgUlNERkNTUkhEMkJXUF9SRU1BUF9TUENfODMgKAotCUNETiwgCi0JU0ROLCAKLQlDUCwgCi0JRCwgCi0JU0ksIAotCVNFLCAKLQlTQVZFLCAKLQlOUkVTVE9SRSwgCi0JUSk7Ci0gICBpbnB1dCBDRE47Ci0gICBpbnB1dCBTRE47Ci0gICBpbnB1dCBDUDsKLSAgIGlucHV0IEQ7Ci0gICBpbnB1dCBTSTsKLSAgIGlucHV0IFNFOwotICAgaW5wdXQgU0FWRTsKLSAgIGlucHV0IE5SRVNUT1JFOwotICAgb3V0cHV0IFE7Ci0KLSAgIFNERkNOUUQxQldQX1NQQ0FfMTY1IHN0YXRlX3JlbWFwICguU0koU0kpLCAKLQkuU0UoU0UpLCAKLQkuUShRKSwgCi0JLkQoRCksIAotCS5DUChDUCksIAotCS5DRE4oQ0ROKSk7Ci1lbmRtb2R1bGUKLQotbW9kdWxlIFNERkNOUUQxQldQX1NQQ0FfMTY2ICgKLQlTSSwgCi0JU0UsIAotCVEsIAotCUQsIAotCUNQLCAKLQlDRE4pOwotICAgaW5wdXQgU0k7Ci0gICBpbnB1dCBTRTsKLSAgIG91dHB1dCBROwotICAgaW5wdXQgRDsKLSAgIGlucHV0IENQOwotICAgaW5wdXQgQ0ROOwotCi0gICBTREZGUlg0IERGRiAoLlNJKFNJKSwgCi0JLlNFKFNFKSwgCi0JLlJOKENETiksIAotCS5RKFEpLCAKLQkuRChEKSwgCi0JLkNLKENQKSk7Ci1lbmRtb2R1bGUKLQotbW9kdWxlIFJTREZDU1JIRDJCV1BfUkVNQVBfU1BDXzg0ICgKLQlDRE4sIAotCVNETiwgCi0JQ1AsIAotCUQsIAotCVNJLCAKLQlTRSwgCi0JU0FWRSwgCi0JTlJFU1RPUkUsIAotCVEpOwotICAgaW5wdXQgQ0ROOwotICAgaW5wdXQgU0ROOwotICAgaW5wdXQgQ1A7Ci0gICBpbnB1dCBEOwotICAgaW5wdXQgU0k7Ci0gICBpbnB1dCBTRTsKLSAgIGlucHV0IFNBVkU7Ci0gICBpbnB1dCBOUkVTVE9SRTsKLSAgIG91dHB1dCBROwotCi0gICBTREZDTlFEMUJXUF9TUENBXzE2NiBzdGF0ZV9yZW1hcCAoLlNJKFNJKSwgCi0JLlNFKFNFKSwgCi0JLlEoUSksIAotCS5EKEQpLCAKLQkuQ1AoQ1ApLCAKLQkuQ0ROKENETikpOwotZW5kbW9kdWxlCi0KLW1vZHVsZSBTREZDTlFEMUJXUF9TUENBXzE2NyAoCi0JU0ksIAotCVNFLCAKLQlRLCAKLQlELCAKLQlDUCwgCi0JQ0ROKTsKLSAgIGlucHV0IFNJOwotICAgaW5wdXQgU0U7Ci0gICBvdXRwdXQgUTsKLSAgIGlucHV0IEQ7Ci0gICBpbnB1dCBDUDsKLSAgIGlucHV0IENETjsKLQotICAgU0RGRlJYNCBERkYgKC5TSShTSSksIAotCS5TRShTRSksIAotCS5STihDRE4pLCAKLQkuUShRKSwgCi0JLkQoRCksIAotCS5DSyhDUCkpOwotZW5kbW9kdWxlCi0KLW1vZHVsZSBSU0RGQ1NSSEQyQldQX1JFTUFQX1NQQ184NSAoCi0JQ0ROLCAKLQlTRE4sIAotCUNQLCAKLQlELCAKLQlTSSwgCi0JU0UsIAotCVNBVkUsIAotCU5SRVNUT1JFLCAKLQlRKTsKLSAgIGlucHV0IENETjsKLSAgIGlucHV0IFNETjsKLSAgIGlucHV0IENQOwotICAgaW5wdXQgRDsKLSAgIGlucHV0IFNJOwotICAgaW5wdXQgU0U7Ci0gICBpbnB1dCBTQVZFOwotICAgaW5wdXQgTlJFU1RPUkU7Ci0gICBvdXRwdXQgUTsKLQotICAgU0RGQ05RRDFCV1BfU1BDQV8xNjcgc3RhdGVfcmVtYXAgKC5TSShTSSksIAotCS5TRShTRSksIAotCS5RKFEpLCAKLQkuRChEKSwgCi0JLkNQKENQKSwgCi0JLkNETihDRE4pKTsKLWVuZG1vZHVsZQotCi1tb2R1bGUgU0RGQ05RRDFCV1BfU1BDQV8xNjggKAotCVNJLCAKLQlTRSwgCi0JUSwgCi0JRCwgCi0JQ1AsIAotCUNETik7Ci0gICBpbnB1dCBTSTsKLSAgIGlucHV0IFNFOwotICAgb3V0cHV0IFE7Ci0gICBpbnB1dCBEOwotICAgaW5wdXQgQ1A7Ci0gICBpbnB1dCBDRE47Ci0KLSAgIFNERkZSWDQgREZGICguU0koU0kpLCAKLQkuU0UoU0UpLCAKLQkuUk4oQ0ROKSwgCi0JLlEoUSksIAotCS5EKEQpLCAKLQkuQ0soQ1ApKTsKLWVuZG1vZHVsZQotCi1tb2R1bGUgUlNERkNTUkhEMkJXUF9SRU1BUF9TUENfODYgKAotCUNETiwgCi0JU0ROLCAKLQlDUCwgCi0JRCwgCi0JU0ksIAotCVNFLCAKLQlTQVZFLCAKLQlOUkVTVE9SRSwgCi0JUSk7Ci0gICBpbnB1dCBDRE47Ci0gICBpbnB1dCBTRE47Ci0gICBpbnB1dCBDUDsKLSAgIGlucHV0IEQ7Ci0gICBpbnB1dCBTSTsKLSAgIGlucHV0IFNFOwotICAgaW5wdXQgU0FWRTsKLSAgIGlucHV0IE5SRVNUT1JFOwotICAgb3V0cHV0IFE7Ci0KLSAgIFNERkNOUUQxQldQX1NQQ0FfMTY4IHN0YXRlX3JlbWFwICguU0koU0kpLCAKLQkuU0UoU0UpLCAKLQkuUShRKSwgCi0JLkQoRCksIAotCS5DUChDUCksIAotCS5DRE4oQ0ROKSk7Ci1lbmRtb2R1bGUKLQotbW9kdWxlIFNERkNOUUQxQldQX1NQQ0FfMTY5ICgKLQlTSSwgCi0JU0UsIAotCVEsIAotCUQsIAotCUNQLCAKLQlDRE4pOwotICAgaW5wdXQgU0k7Ci0gICBpbnB1dCBTRTsKLSAgIG91dHB1dCBROwotICAgaW5wdXQgRDsKLSAgIGlucHV0IENQOwotICAgaW5wdXQgQ0ROOwotCi0gICBTREZGUlg0IERGRiAoLlNJKFNJKSwgCi0JLlNFKFNFKSwgCi0JLlJOKENETiksIAotCS5RKFEpLCAKLQkuRChEKSwgCi0JLkNLKENQKSk7Ci1lbmRtb2R1bGUKLQotbW9kdWxlIFJTREZDU1JIRDJCV1BfUkVNQVBfU1BDXzg3ICgKLQlDRE4sIAotCVNETiwgCi0JQ1AsIAotCUQsIAotCVNJLCAKLQlTRSwgCi0JU0FWRSwgCi0JTlJFU1RPUkUsIAotCVEpOwotICAgaW5wdXQgQ0ROOwotICAgaW5wdXQgU0ROOwotICAgaW5wdXQgQ1A7Ci0gICBpbnB1dCBEOwotICAgaW5wdXQgU0k7Ci0gICBpbnB1dCBTRTsKLSAgIGlucHV0IFNBVkU7Ci0gICBpbnB1dCBOUkVTVE9SRTsKLSAgIG91dHB1dCBROwotCi0gICBTREZDTlFEMUJXUF9TUENBXzE2OSBzdGF0ZV9yZW1hcCAoLlNJKFNJKSwgCi0JLlNFKFNFKSwgCi0JLlEoUSksIAotCS5EKEQpLCAKLQkuQ1AoQ1ApLCAKLQkuQ0ROKENETikpOwotZW5kbW9kdWxlCi0KLW1vZHVsZSBTREZDTlFEMUJXUF9TUENBXzE3MCAoCi0JU0ksIAotCVNFLCAKLQlRLCAKLQlELCAKLQlDUCwgCi0JQ0ROKTsKLSAgIGlucHV0IFNJOwotICAgaW5wdXQgU0U7Ci0gICBvdXRwdXQgUTsKLSAgIGlucHV0IEQ7Ci0gICBpbnB1dCBDUDsKLSAgIGlucHV0IENETjsKLQotICAgU0RGRlJYNCBERkYgKC5TSShTSSksIAotCS5TRShTRSksIAotCS5STihDRE4pLCAKLQkuUShRKSwgCi0JLkQoRCksIAotCS5DSyhDUCkpOwotZW5kbW9kdWxlCi0KLW1vZHVsZSBSU0RGQ1NSSEQyQldQX1JFTUFQX1NQQ184OCAoCi0JQ0ROLCAKLQlTRE4sIAotCUNQLCAKLQlELCAKLQlTSSwgCi0JU0UsIAotCVNBVkUsIAotCU5SRVNUT1JFLCAKLQlRKTsKLSAgIGlucHV0IENETjsKLSAgIGlucHV0IFNETjsKLSAgIGlucHV0IENQOwotICAgaW5wdXQgRDsKLSAgIGlucHV0IFNJOwotICAgaW5wdXQgU0U7Ci0gICBpbnB1dCBTQVZFOwotICAgaW5wdXQgTlJFU1RPUkU7Ci0gICBvdXRwdXQgUTsKLQotICAgU0RGQ05RRDFCV1BfU1BDQV8xNzAgc3RhdGVfcmVtYXAgKC5TSShTSSksIAotCS5TRShTRSksIAotCS5RKFEpLCAKLQkuRChEKSwgCi0JLkNQKENQKSwgCi0JLkNETihDRE4pKTsKLWVuZG1vZHVsZQotCi1tb2R1bGUgU0RGQ05RRDFCV1BfU1BDQV8xNzEgKAotCVNJLCAKLQlTRSwgCi0JUSwgCi0JRCwgCi0JQ1AsIAotCUNETik7Ci0gICBpbnB1dCBTSTsKLSAgIGlucHV0IFNFOwotICAgb3V0cHV0IFE7Ci0gICBpbnB1dCBEOwotICAgaW5wdXQgQ1A7Ci0gICBpbnB1dCBDRE47Ci0KLSAgIFNERkZSWDQgREZGICguU0koU0kpLCAKLQkuU0UoU0UpLCAKLQkuUk4oQ0ROKSwgCi0JLlEoUSksIAotCS5EKEQpLCAKLQkuQ0soQ1ApKTsKLWVuZG1vZHVsZQotCi1tb2R1bGUgUlNERkNTUkhEMkJXUF9SRU1BUF9TUENfODkgKAotCUNETiwgCi0JU0ROLCAKLQlDUCwgCi0JRCwgCi0JU0ksIAotCVNFLCAKLQlTQVZFLCAKLQlOUkVTVE9SRSwgCi0JUSk7Ci0gICBpbnB1dCBDRE47Ci0gICBpbnB1dCBTRE47Ci0gICBpbnB1dCBDUDsKLSAgIGlucHV0IEQ7Ci0gICBpbnB1dCBTSTsKLSAgIGlucHV0IFNFOwotICAgaW5wdXQgU0FWRTsKLSAgIGlucHV0IE5SRVNUT1JFOwotICAgb3V0cHV0IFE7Ci0KLSAgIFNERkNOUUQxQldQX1NQQ0FfMTcxIHN0YXRlX3JlbWFwICguU0koU0kpLCAKLQkuU0UoU0UpLCAKLQkuUShRKSwgCi0JLkQoRCksIAotCS5DUChDUCksIAotCS5DRE4oQ0ROKSk7Ci1lbmRtb2R1bGUKLQotbW9kdWxlIFNERkNOUUQxQldQX1NQQ0FfMTcyICgKLQlTSSwgCi0JU0UsIAotCVEsIAotCUQsIAotCUNQLCAKLQlDRE4pOwotICAgaW5wdXQgU0k7Ci0gICBpbnB1dCBTRTsKLSAgIG91dHB1dCBROwotICAgaW5wdXQgRDsKLSAgIGlucHV0IENQOwotICAgaW5wdXQgQ0ROOwotCi0gICBTREZGUlg0IERGRiAoLlNJKFNJKSwgCi0JLlNFKFNFKSwgCi0JLlJOKENETiksIAotCS5RKFEpLCAKLQkuRChEKSwgCi0JLkNLKENQKSk7Ci1lbmRtb2R1bGUKLQotbW9kdWxlIFJTREZDU1JIRDJCV1BfUkVNQVBfU1BDXzkwICgKLQlDRE4sIAotCVNETiwgCi0JQ1AsIAotCUQsIAotCVNJLCAKLQlTRSwgCi0JU0FWRSwgCi0JTlJFU1RPUkUsIAotCVEpOwotICAgaW5wdXQgQ0ROOwotICAgaW5wdXQgU0ROOwotICAgaW5wdXQgQ1A7Ci0gICBpbnB1dCBEOwotICAgaW5wdXQgU0k7Ci0gICBpbnB1dCBTRTsKLSAgIGlucHV0IFNBVkU7Ci0gICBpbnB1dCBOUkVTVE9SRTsKLSAgIG91dHB1dCBROwotCi0gICBTREZDTlFEMUJXUF9TUENBXzE3MiBzdGF0ZV9yZW1hcCAoLlNJKFNJKSwgCi0JLlNFKFNFKSwgCi0JLlEoUSksIAotCS5EKEQpLCAKLQkuQ1AoQ1ApLCAKLQkuQ0ROKENETikpOwotZW5kbW9kdWxlCi0KLW1vZHVsZSBTREZDTlFEMUJXUF9TUENBXzE3MyAoCi0JU0ksIAotCVNFLCAKLQlRLCAKLQlELCAKLQlDUCwgCi0JQ0ROKTsKLSAgIGlucHV0IFNJOwotICAgaW5wdXQgU0U7Ci0gICBvdXRwdXQgUTsKLSAgIGlucHV0IEQ7Ci0gICBpbnB1dCBDUDsKLSAgIGlucHV0IENETjsKLQotICAgU0RGRlJYNCBERkYgKC5TSShTSSksIAotCS5TRShTRSksIAotCS5STihDRE4pLCAKLQkuUShRKSwgCi0JLkQoRCksIAotCS5DSyhDUCkpOwotZW5kbW9kdWxlCi0KLW1vZHVsZSBSU0RGQ1NSSEQyQldQX1JFTUFQX1NQQ185MSAoCi0JQ0ROLCAKLQlTRE4sIAotCUNQLCAKLQlELCAKLQlTSSwgCi0JU0UsIAotCVNBVkUsIAotCU5SRVNUT1JFLCAKLQlRKTsKLSAgIGlucHV0IENETjsKLSAgIGlucHV0IFNETjsKLSAgIGlucHV0IENQOwotICAgaW5wdXQgRDsKLSAgIGlucHV0IFNJOwotICAgaW5wdXQgU0U7Ci0gICBpbnB1dCBTQVZFOwotICAgaW5wdXQgTlJFU1RPUkU7Ci0gICBvdXRwdXQgUTsKLQotICAgU0RGQ05RRDFCV1BfU1BDQV8xNzMgc3RhdGVfcmVtYXAgKC5TSShTSSksIAotCS5TRShTRSksIAotCS5RKFEpLCAKLQkuRChEKSwgCi0JLkNQKENQKSwgCi0JLkNETihDRE4pKTsKLWVuZG1vZHVsZQotCi1tb2R1bGUgU0RGQ05RRDFCV1BfU1BDQV8xNzQgKAotCVNJLCAKLQlTRSwgCi0JUSwgCi0JRCwgCi0JQ1AsIAotCUNETik7Ci0gICBpbnB1dCBTSTsKLSAgIGlucHV0IFNFOwotICAgb3V0cHV0IFE7Ci0gICBpbnB1dCBEOwotICAgaW5wdXQgQ1A7Ci0gICBpbnB1dCBDRE47Ci0KLSAgIFNERkZSWDQgREZGICguU0koU0kpLCAKLQkuU0UoU0UpLCAKLQkuUk4oQ0ROKSwgCi0JLlEoUSksIAotCS5EKEQpLCAKLQkuQ0soQ1ApKTsKLWVuZG1vZHVsZQotCi1tb2R1bGUgUlNERkNTUkhEMkJXUF9SRU1BUF9TUENfOTIgKAotCUNETiwgCi0JU0ROLCAKLQlDUCwgCi0JRCwgCi0JU0ksIAotCVNFLCAKLQlTQVZFLCAKLQlOUkVTVE9SRSwgCi0JUSk7Ci0gICBpbnB1dCBDRE47Ci0gICBpbnB1dCBTRE47Ci0gICBpbnB1dCBDUDsKLSAgIGlucHV0IEQ7Ci0gICBpbnB1dCBTSTsKLSAgIGlucHV0IFNFOwotICAgaW5wdXQgU0FWRTsKLSAgIGlucHV0IE5SRVNUT1JFOwotICAgb3V0cHV0IFE7Ci0KLSAgIFNERkNOUUQxQldQX1NQQ0FfMTc0IHN0YXRlX3JlbWFwICguU0koU0kpLCAKLQkuU0UoU0UpLCAKLQkuUShRKSwgCi0JLkQoRCksIAotCS5DUChDUCksIAotCS5DRE4oQ0ROKSk7Ci1lbmRtb2R1bGUKLQotbW9kdWxlIFNERkNOUUQxQldQX1NQQ0FfMTc1ICgKLQlTSSwgCi0JU0UsIAotCVEsIAotCUQsIAotCUNQLCAKLQlDRE4pOwotICAgaW5wdXQgU0k7Ci0gICBpbnB1dCBTRTsKLSAgIG91dHB1dCBROwotICAgaW5wdXQgRDsKLSAgIGlucHV0IENQOwotICAgaW5wdXQgQ0ROOwotCi0gICBTREZGUlg0IERGRiAoLlNJKFNJKSwgCi0JLlNFKFNFKSwgCi0JLlJOKENETiksIAotCS5RKFEpLCAKLQkuRChEKSwgCi0JLkNLKENQKSk7Ci1lbmRtb2R1bGUKLQotbW9kdWxlIFJTREZDU1JIRDJCV1BfUkVNQVBfU1BDXzkzICgKLQlDRE4sIAotCVNETiwgCi0JQ1AsIAotCUQsIAotCVNJLCAKLQlTRSwgCi0JU0FWRSwgCi0JTlJFU1RPUkUsIAotCVEpOwotICAgaW5wdXQgQ0ROOwotICAgaW5wdXQgU0ROOwotICAgaW5wdXQgQ1A7Ci0gICBpbnB1dCBEOwotICAgaW5wdXQgU0k7Ci0gICBpbnB1dCBTRTsKLSAgIGlucHV0IFNBVkU7Ci0gICBpbnB1dCBOUkVTVE9SRTsKLSAgIG91dHB1dCBROwotCi0gICBTREZDTlFEMUJXUF9TUENBXzE3NSBzdGF0ZV9yZW1hcCAoLlNJKFNJKSwgCi0JLlNFKFNFKSwgCi0JLlEoUSksIAotCS5EKEQpLCAKLQkuQ1AoQ1ApLCAKLQkuQ0ROKENETikpOwotZW5kbW9kdWxlCi0KLW1vZHVsZSBTREZDTlFEMUJXUF9TUENBXzE3NiAoCi0JU0ksIAotCVNFLCAKLQlRLCAKLQlELCAKLQlDUCwgCi0JQ0ROKTsKLSAgIGlucHV0IFNJOwotICAgaW5wdXQgU0U7Ci0gICBvdXRwdXQgUTsKLSAgIGlucHV0IEQ7Ci0gICBpbnB1dCBDUDsKLSAgIGlucHV0IENETjsKLQotICAgU0RGRlJYNCBERkYgKC5TSShTSSksIAotCS5TRShTRSksIAotCS5STihDRE4pLCAKLQkuUShRKSwgCi0JLkQoRCksIAotCS5DSyhDUCkpOwotZW5kbW9kdWxlCi0KLW1vZHVsZSBSU0RGQ1NSSEQyQldQX1JFTUFQX1NQQ185NCAoCi0JQ0ROLCAKLQlTRE4sIAotCUNQLCAKLQlELCAKLQlTSSwgCi0JU0UsIAotCVNBVkUsIAotCU5SRVNUT1JFLCAKLQlRKTsKLSAgIGlucHV0IENETjsKLSAgIGlucHV0IFNETjsKLSAgIGlucHV0IENQOwotICAgaW5wdXQgRDsKLSAgIGlucHV0IFNJOwotICAgaW5wdXQgU0U7Ci0gICBpbnB1dCBTQVZFOwotICAgaW5wdXQgTlJFU1RPUkU7Ci0gICBvdXRwdXQgUTsKLQotICAgU0RGQ05RRDFCV1BfU1BDQV8xNzYgc3RhdGVfcmVtYXAgKC5TSShTSSksIAotCS5TRShTRSksIAotCS5RKFEpLCAKLQkuRChEKSwgCi0JLkNQKENQKSwgCi0JLkNETihDRE4pKTsKLWVuZG1vZHVsZQotCi1tb2R1bGUgU0RGQ05RRDFCV1BfU1BDQV8xNzcgKAotCVNJLCAKLQlTRSwgCi0JUSwgCi0JRCwgCi0JQ1AsIAotCUNETik7Ci0gICBpbnB1dCBTSTsKLSAgIGlucHV0IFNFOwotICAgb3V0cHV0IFE7Ci0gICBpbnB1dCBEOwotICAgaW5wdXQgQ1A7Ci0gICBpbnB1dCBDRE47Ci0KLSAgIFNERkZSWDQgREZGICguU0koU0kpLCAKLQkuU0UoU0UpLCAKLQkuUk4oQ0ROKSwgCi0JLlEoUSksIAotCS5EKEQpLCAKLQkuQ0soQ1ApKTsKLWVuZG1vZHVsZQotCi1tb2R1bGUgUlNERkNTUkhEMkJXUF9SRU1BUF9TUENfOTUgKAotCUNETiwgCi0JU0ROLCAKLQlDUCwgCi0JRCwgCi0JU0ksIAotCVNFLCAKLQlTQVZFLCAKLQlOUkVTVE9SRSwgCi0JUSk7Ci0gICBpbnB1dCBDRE47Ci0gICBpbnB1dCBTRE47Ci0gICBpbnB1dCBDUDsKLSAgIGlucHV0IEQ7Ci0gICBpbnB1dCBTSTsKLSAgIGlucHV0IFNFOwotICAgaW5wdXQgU0FWRTsKLSAgIGlucHV0IE5SRVNUT1JFOwotICAgb3V0cHV0IFE7Ci0KLSAgIFNERkNOUUQxQldQX1NQQ0FfMTc3IHN0YXRlX3JlbWFwICguU0koU0kpLCAKLQkuU0UoU0UpLCAKLQkuUShRKSwgCi0JLkQoRCksIAotCS5DUChDUCksIAotCS5DRE4oQ0ROKSk7Ci1lbmRtb2R1bGUKLQotbW9kdWxlIFNERkNOUUQxQldQX1NQQ0FfMTc4ICgKLQlTSSwgCi0JU0UsIAotCVEsIAotCUQsIAotCUNQLCAKLQlDRE4pOwotICAgaW5wdXQgU0k7Ci0gICBpbnB1dCBTRTsKLSAgIG91dHB1dCBROwotICAgaW5wdXQgRDsKLSAgIGlucHV0IENQOwotICAgaW5wdXQgQ0ROOwotCi0gICBTREZGUlg0IERGRiAoLlNJKFNJKSwgCi0JLlNFKFNFKSwgCi0JLlJOKENETiksIAotCS5RKFEpLCAKLQkuRChEKSwgCi0JLkNLKENQKSk7Ci1lbmRtb2R1bGUKLQotbW9kdWxlIFJTREZDU1JIRDJCV1BfUkVNQVBfU1BDXzk2ICgKLQlDRE4sIAotCVNETiwgCi0JQ1AsIAotCUQsIAotCVNJLCAKLQlTRSwgCi0JU0FWRSwgCi0JTlJFU1RPUkUsIAotCVEpOwotICAgaW5wdXQgQ0ROOwotICAgaW5wdXQgU0ROOwotICAgaW5wdXQgQ1A7Ci0gICBpbnB1dCBEOwotICAgaW5wdXQgU0k7Ci0gICBpbnB1dCBTRTsKLSAgIGlucHV0IFNBVkU7Ci0gICBpbnB1dCBOUkVTVE9SRTsKLSAgIG91dHB1dCBROwotCi0gICBTREZDTlFEMUJXUF9TUENBXzE3OCBzdGF0ZV9yZW1hcCAoLlNJKFNJKSwgCi0JLlNFKFNFKSwgCi0JLlEoUSksIAotCS5EKEQpLCAKLQkuQ1AoQ1ApLCAKLQkuQ0ROKENETikpOwotZW5kbW9kdWxlCi0KLW1vZHVsZSBTREZDTlFEMUJXUF9TUENBXzE3OSAoCi0JU0ksIAotCVNFLCAKLQlRLCAKLQlELCAKLQlDUCwgCi0JQ0ROKTsKLSAgIGlucHV0IFNJOwotICAgaW5wdXQgU0U7Ci0gICBvdXRwdXQgUTsKLSAgIGlucHV0IEQ7Ci0gICBpbnB1dCBDUDsKLSAgIGlucHV0IENETjsKLQotICAgU0RGRlJYNCBERkYgKC5TSShTSSksIAotCS5TRShTRSksIAotCS5STihDRE4pLCAKLQkuUShRKSwgCi0JLkQoRCksIAotCS5DSyhDUCkpOwotZW5kbW9kdWxlCi0KLW1vZHVsZSBSU0RGQ1NSSEQyQldQX1JFTUFQX1NQQ185NyAoCi0JQ0ROLCAKLQlTRE4sIAotCUNQLCAKLQlELCAKLQlTSSwgCi0JU0UsIAotCVNBVkUsIAotCU5SRVNUT1JFLCAKLQlRKTsKLSAgIGlucHV0IENETjsKLSAgIGlucHV0IFNETjsKLSAgIGlucHV0IENQOwotICAgaW5wdXQgRDsKLSAgIGlucHV0IFNJOwotICAgaW5wdXQgU0U7Ci0gICBpbnB1dCBTQVZFOwotICAgaW5wdXQgTlJFU1RPUkU7Ci0gICBvdXRwdXQgUTsKLQotICAgU0RGQ05RRDFCV1BfU1BDQV8xNzkgc3RhdGVfcmVtYXAgKC5TSShTSSksIAotCS5TRShTRSksIAotCS5RKFEpLCAKLQkuRChEKSwgCi0JLkNQKENQKSwgCi0JLkNETihDRE4pKTsKLWVuZG1vZHVsZQotCi1tb2R1bGUgU0RGQ05RRDFCV1BfU1BDQV8xODAgKAotCVNJLCAKLQlTRSwgCi0JUSwgCi0JRCwgCi0JQ1AsIAotCUNETik7Ci0gICBpbnB1dCBTSTsKLSAgIGlucHV0IFNFOwotICAgb3V0cHV0IFE7Ci0gICBpbnB1dCBEOwotICAgaW5wdXQgQ1A7Ci0gICBpbnB1dCBDRE47Ci0KLSAgIFNERkZSWDQgREZGICguU0koU0kpLCAKLQkuU0UoU0UpLCAKLQkuUk4oQ0ROKSwgCi0JLlEoUSksIAotCS5EKEQpLCAKLQkuQ0soQ1ApKTsKLWVuZG1vZHVsZQotCi1tb2R1bGUgUlNERkNTUkhEMkJXUF9SRU1BUF9TUENfOTggKAotCUNETiwgCi0JU0ROLCAKLQlDUCwgCi0JRCwgCi0JU0ksIAotCVNFLCAKLQlTQVZFLCAKLQlOUkVTVE9SRSwgCi0JUSk7Ci0gICBpbnB1dCBDRE47Ci0gICBpbnB1dCBTRE47Ci0gICBpbnB1dCBDUDsKLSAgIGlucHV0IEQ7Ci0gICBpbnB1dCBTSTsKLSAgIGlucHV0IFNFOwotICAgaW5wdXQgU0FWRTsKLSAgIGlucHV0IE5SRVNUT1JFOwotICAgb3V0cHV0IFE7Ci0KLSAgIFNERkNOUUQxQldQX1NQQ0FfMTgwIHN0YXRlX3JlbWFwICguU0koU0kpLCAKLQkuU0UoU0UpLCAKLQkuUShRKSwgCi0JLkQoRCksIAotCS5DUChDUCksIAotCS5DRE4oQ0ROKSk7Ci1lbmRtb2R1bGUKLQotbW9kdWxlIFNERkNOUUQxQldQX1NQQ0FfMTgxICgKLQlTSSwgCi0JU0UsIAotCVEsIAotCUQsIAotCUNQLCAKLQlDRE4pOwotICAgaW5wdXQgU0k7Ci0gICBpbnB1dCBTRTsKLSAgIG91dHB1dCBROwotICAgaW5wdXQgRDsKLSAgIGlucHV0IENQOwotICAgaW5wdXQgQ0ROOwotCi0gICBTREZGUlg0IERGRiAoLlNJKFNJKSwgCi0JLlNFKFNFKSwgCi0JLlJOKENETiksIAotCS5RKFEpLCAKLQkuRChEKSwgCi0JLkNLKENQKSk7Ci1lbmRtb2R1bGUKLQotbW9kdWxlIFJTREZDU1JIRDJCV1BfUkVNQVBfU1BDXzk5ICgKLQlDRE4sIAotCVNETiwgCi0JQ1AsIAotCUQsIAotCVNJLCAKLQlTRSwgCi0JU0FWRSwgCi0JTlJFU1RPUkUsIAotCVEpOwotICAgaW5wdXQgQ0ROOwotICAgaW5wdXQgU0ROOwotICAgaW5wdXQgQ1A7Ci0gICBpbnB1dCBEOwotICAgaW5wdXQgU0k7Ci0gICBpbnB1dCBTRTsKLSAgIGlucHV0IFNBVkU7Ci0gICBpbnB1dCBOUkVTVE9SRTsKLSAgIG91dHB1dCBROwotCi0gICBTREZDTlFEMUJXUF9TUENBXzE4MSBzdGF0ZV9yZW1hcCAoLlNJKFNJKSwgCi0JLlNFKFNFKSwgCi0JLlEoUSksIAotCS5EKEQpLCAKLQkuQ1AoQ1ApLCAKLQkuQ0ROKENETikpOwotZW5kbW9kdWxlCi0KLW1vZHVsZSBTREZDTlFEMUJXUF9TUENBXzE4MiAoCi0JU0ksIAotCVNFLCAKLQlRLCAKLQlELCAKLQlDUCwgCi0JQ0ROKTsKLSAgIGlucHV0IFNJOwotICAgaW5wdXQgU0U7Ci0gICBvdXRwdXQgUTsKLSAgIGlucHV0IEQ7Ci0gICBpbnB1dCBDUDsKLSAgIGlucHV0IENETjsKLQotICAgU0RGRlJYNCBERkYgKC5TSShTSSksIAotCS5TRShTRSksIAotCS5STihDRE4pLCAKLQkuUShRKSwgCi0JLkQoRCksIAotCS5DSyhDUCkpOwotZW5kbW9kdWxlCi0KLW1vZHVsZSBSU0RGQ1NSSEQyQldQX1JFTUFQX1NQQ18xMDAgKAotCUNETiwgCi0JU0ROLCAKLQlDUCwgCi0JRCwgCi0JU0ksIAotCVNFLCAKLQlTQVZFLCAKLQlOUkVTVE9SRSwgCi0JUSk7Ci0gICBpbnB1dCBDRE47Ci0gICBpbnB1dCBTRE47Ci0gICBpbnB1dCBDUDsKLSAgIGlucHV0IEQ7Ci0gICBpbnB1dCBTSTsKLSAgIGlucHV0IFNFOwotICAgaW5wdXQgU0FWRTsKLSAgIGlucHV0IE5SRVNUT1JFOwotICAgb3V0cHV0IFE7Ci0KLSAgIFNERkNOUUQxQldQX1NQQ0FfMTgyIHN0YXRlX3JlbWFwICguU0koU0kpLCAKLQkuU0UoU0UpLCAKLQkuUShRKSwgCi0JLkQoRCksIAotCS5DUChDUCksIAotCS5DRE4oQ0ROKSk7Ci1lbmRtb2R1bGUKLQotbW9kdWxlIFNERkNOUUQxQldQX1NQQ0FfMTgzICgKLQlTSSwgCi0JU0UsIAotCVEsIAotCUQsIAotCUNQLCAKLQlDRE4pOwotICAgaW5wdXQgU0k7Ci0gICBpbnB1dCBTRTsKLSAgIG91dHB1dCBROwotICAgaW5wdXQgRDsKLSAgIGlucHV0IENQOwotICAgaW5wdXQgQ0ROOwotCi0gICBTREZGUlg0IERGRiAoLlNJKFNJKSwgCi0JLlNFKFNFKSwgCi0JLlJOKENETiksIAotCS5RKFEpLCAKLQkuRChEKSwgCi0JLkNLKENQKSk7Ci1lbmRtb2R1bGUKLQotbW9kdWxlIFJTREZDU1JIRDJCV1BfUkVNQVBfU1BDXzEwMSAoCi0JQ0ROLCAKLQlTRE4sIAotCUNQLCAKLQlELCAKLQlTSSwgCi0JU0UsIAotCVNBVkUsIAotCU5SRVNUT1JFLCAKLQlRKTsKLSAgIGlucHV0IENETjsKLSAgIGlucHV0IFNETjsKLSAgIGlucHV0IENQOwotICAgaW5wdXQgRDsKLSAgIGlucHV0IFNJOwotICAgaW5wdXQgU0U7Ci0gICBpbnB1dCBTQVZFOwotICAgaW5wdXQgTlJFU1RPUkU7Ci0gICBvdXRwdXQgUTsKLQotICAgU0RGQ05RRDFCV1BfU1BDQV8xODMgc3RhdGVfcmVtYXAgKC5TSShTSSksIAotCS5TRShTRSksIAotCS5RKFEpLCAKLQkuRChEKSwgCi0JLkNQKENQKSwgCi0JLkNETihDRE4pKTsKLWVuZG1vZHVsZQotCi1tb2R1bGUgU0RGQ05RRDFCV1BfU1BDQV8xODQgKAotCVNJLCAKLQlTRSwgCi0JUSwgCi0JRCwgCi0JQ1AsIAotCUNETik7Ci0gICBpbnB1dCBTSTsKLSAgIGlucHV0IFNFOwotICAgb3V0cHV0IFE7Ci0gICBpbnB1dCBEOwotICAgaW5wdXQgQ1A7Ci0gICBpbnB1dCBDRE47Ci0KLSAgIFNERkZSWDQgREZGICguU0koU0kpLCAKLQkuU0UoU0UpLCAKLQkuUk4oQ0ROKSwgCi0JLlEoUSksIAotCS5EKEQpLCAKLQkuQ0soQ1ApKTsKLWVuZG1vZHVsZQotCi1tb2R1bGUgUlNERkNTUkhEMkJXUF9SRU1BUF9TUENfMTAyICgKLQlDRE4sIAotCVNETiwgCi0JQ1AsIAotCUQsIAotCVNJLCAKLQlTRSwgCi0JU0FWRSwgCi0JTlJFU1RPUkUsIAotCVEpOwotICAgaW5wdXQgQ0ROOwotICAgaW5wdXQgU0ROOwotICAgaW5wdXQgQ1A7Ci0gICBpbnB1dCBEOwotICAgaW5wdXQgU0k7Ci0gICBpbnB1dCBTRTsKLSAgIGlucHV0IFNBVkU7Ci0gICBpbnB1dCBOUkVTVE9SRTsKLSAgIG91dHB1dCBROwotCi0gICBTREZDTlFEMUJXUF9TUENBXzE4NCBzdGF0ZV9yZW1hcCAoLlNJKFNJKSwgCi0JLlNFKFNFKSwgCi0JLlEoUSksIAotCS5EKEQpLCAKLQkuQ1AoQ1ApLCAKLQkuQ0ROKENETikpOwotZW5kbW9kdWxlCi0KLW1vZHVsZSBTREZDTlFEMUJXUF9TUENBXzE4NSAoCi0JU0ksIAotCVNFLCAKLQlRLCAKLQlELCAKLQlDUCwgCi0JQ0ROKTsKLSAgIGlucHV0IFNJOwotICAgaW5wdXQgU0U7Ci0gICBvdXRwdXQgUTsKLSAgIGlucHV0IEQ7Ci0gICBpbnB1dCBDUDsKLSAgIGlucHV0IENETjsKLQotICAgU0RGRlJYNCBERkYgKC5TSShTSSksIAotCS5TRShTRSksIAotCS5STihDRE4pLCAKLQkuUShRKSwgCi0JLkQoRCksIAotCS5DSyhDUCkpOwotZW5kbW9kdWxlCi0KLW1vZHVsZSBSU0RGQ1NSSEQyQldQX1JFTUFQX1NQQ18xMDMgKAotCUNETiwgCi0JU0ROLCAKLQlDUCwgCi0JRCwgCi0JU0ksIAotCVNFLCAKLQlTQVZFLCAKLQlOUkVTVE9SRSwgCi0JUSk7Ci0gICBpbnB1dCBDRE47Ci0gICBpbnB1dCBTRE47Ci0gICBpbnB1dCBDUDsKLSAgIGlucHV0IEQ7Ci0gICBpbnB1dCBTSTsKLSAgIGlucHV0IFNFOwotICAgaW5wdXQgU0FWRTsKLSAgIGlucHV0IE5SRVNUT1JFOwotICAgb3V0cHV0IFE7Ci0KLSAgIFNERkNOUUQxQldQX1NQQ0FfMTg1IHN0YXRlX3JlbWFwICguU0koU0kpLCAKLQkuU0UoU0UpLCAKLQkuUShRKSwgCi0JLkQoRCksIAotCS5DUChDUCksIAotCS5DRE4oQ0ROKSk7Ci1lbmRtb2R1bGUKLQotbW9kdWxlIFNERkNOUUQxQldQX1NQQ0FfMTg2ICgKLQlTSSwgCi0JU0UsIAotCVEsIAotCUQsIAotCUNQLCAKLQlDRE4pOwotICAgaW5wdXQgU0k7Ci0gICBpbnB1dCBTRTsKLSAgIG91dHB1dCBROwotICAgaW5wdXQgRDsKLSAgIGlucHV0IENQOwotICAgaW5wdXQgQ0ROOwotCi0gICBTREZGUlg0IERGRiAoLlNJKFNJKSwgCi0JLlNFKFNFKSwgCi0JLlJOKENETiksIAotCS5RKFEpLCAKLQkuRChEKSwgCi0JLkNLKENQKSk7Ci1lbmRtb2R1bGUKLQotbW9kdWxlIFJTREZDU1JIRDJCV1BfUkVNQVBfU1BDXzEwNCAoCi0JQ0ROLCAKLQlTRE4sIAotCUNQLCAKLQlELCAKLQlTSSwgCi0JU0UsIAotCVNBVkUsIAotCU5SRVNUT1JFLCAKLQlRKTsKLSAgIGlucHV0IENETjsKLSAgIGlucHV0IFNETjsKLSAgIGlucHV0IENQOwotICAgaW5wdXQgRDsKLSAgIGlucHV0IFNJOwotICAgaW5wdXQgU0U7Ci0gICBpbnB1dCBTQVZFOwotICAgaW5wdXQgTlJFU1RPUkU7Ci0gICBvdXRwdXQgUTsKLQotICAgU0RGQ05RRDFCV1BfU1BDQV8xODYgc3RhdGVfcmVtYXAgKC5TSShTSSksIAotCS5TRShTRSksIAotCS5RKFEpLCAKLQkuRChEKSwgCi0JLkNQKENQKSwgCi0JLkNETihDRE4pKTsKLWVuZG1vZHVsZQotCi1tb2R1bGUgU0RGQ05RRDFCV1BfU1BDQV8xODcgKAotCVNJLCAKLQlTRSwgCi0JUSwgCi0JRCwgCi0JQ1AsIAotCUNETik7Ci0gICBpbnB1dCBTSTsKLSAgIGlucHV0IFNFOwotICAgb3V0cHV0IFE7Ci0gICBpbnB1dCBEOwotICAgaW5wdXQgQ1A7Ci0gICBpbnB1dCBDRE47Ci0KLSAgIFNERkZSWDQgREZGICguU0koU0kpLCAKLQkuU0UoU0UpLCAKLQkuUk4oQ0ROKSwgCi0JLlEoUSksIAotCS5EKEQpLCAKLQkuQ0soQ1ApKTsKLWVuZG1vZHVsZQotCi1tb2R1bGUgUlNERkNTUkhEMkJXUF9SRU1BUF9TUENfMTA1ICgKLQlDRE4sIAotCVNETiwgCi0JQ1AsIAotCUQsIAotCVNJLCAKLQlTRSwgCi0JU0FWRSwgCi0JTlJFU1RPUkUsIAotCVEpOwotICAgaW5wdXQgQ0ROOwotICAgaW5wdXQgU0ROOwotICAgaW5wdXQgQ1A7Ci0gICBpbnB1dCBEOwotICAgaW5wdXQgU0k7Ci0gICBpbnB1dCBTRTsKLSAgIGlucHV0IFNBVkU7Ci0gICBpbnB1dCBOUkVTVE9SRTsKLSAgIG91dHB1dCBROwotCi0gICBTREZDTlFEMUJXUF9TUENBXzE4NyBzdGF0ZV9yZW1hcCAoLlNJKFNJKSwgCi0JLlNFKFNFKSwgCi0JLlEoUSksIAotCS5EKEQpLCAKLQkuQ1AoQ1ApLCAKLQkuQ0ROKENETikpOwotZW5kbW9kdWxlCi0KLW1vZHVsZSBTREZDTlFEMUJXUF9TUENBXzE4OCAoCi0JU0ksIAotCVNFLCAKLQlRLCAKLQlELCAKLQlDUCwgCi0JQ0ROKTsKLSAgIGlucHV0IFNJOwotICAgaW5wdXQgU0U7Ci0gICBvdXRwdXQgUTsKLSAgIGlucHV0IEQ7Ci0gICBpbnB1dCBDUDsKLSAgIGlucHV0IENETjsKLQotICAgU0RGRlJYNCBERkYgKC5TSShTSSksIAotCS5TRShTRSksIAotCS5STihDRE4pLCAKLQkuUShRKSwgCi0JLkQoRCksIAotCS5DSyhDUCkpOwotZW5kbW9kdWxlCi0KLW1vZHVsZSBSU0RGQ1NSSEQyQldQX1JFTUFQX1NQQ18xMDYgKAotCUNETiwgCi0JU0ROLCAKLQlDUCwgCi0JRCwgCi0JU0ksIAotCVNFLCAKLQlTQVZFLCAKLQlOUkVTVE9SRSwgCi0JUSk7Ci0gICBpbnB1dCBDRE47Ci0gICBpbnB1dCBTRE47Ci0gICBpbnB1dCBDUDsKLSAgIGlucHV0IEQ7Ci0gICBpbnB1dCBTSTsKLSAgIGlucHV0IFNFOwotICAgaW5wdXQgU0FWRTsKLSAgIGlucHV0IE5SRVNUT1JFOwotICAgb3V0cHV0IFE7Ci0KLSAgIFNERkNOUUQxQldQX1NQQ0FfMTg4IHN0YXRlX3JlbWFwICguU0koU0kpLCAKLQkuU0UoU0UpLCAKLQkuUShRKSwgCi0JLkQoRCksIAotCS5DUChDUCksIAotCS5DRE4oQ0ROKSk7Ci1lbmRtb2R1bGUKLQotbW9kdWxlIFNERkNOUUQxQldQX1NQQ0FfMTg5ICgKLQlTSSwgCi0JU0UsIAotCVEsIAotCUQsIAotCUNQLCAKLQlDRE4pOwotICAgaW5wdXQgU0k7Ci0gICBpbnB1dCBTRTsKLSAgIG91dHB1dCBROwotICAgaW5wdXQgRDsKLSAgIGlucHV0IENQOwotICAgaW5wdXQgQ0ROOwotCi0gICBTREZGUlg0IERGRiAoLlNJKFNJKSwgCi0JLlNFKFNFKSwgCi0JLlJOKENETiksIAotCS5RKFEpLCAKLQkuRChEKSwgCi0JLkNLKENQKSk7Ci1lbmRtb2R1bGUKLQotbW9kdWxlIFJTREZDU1JIRDJCV1BfUkVNQVBfU1BDXzEwNyAoCi0JQ0ROLCAKLQlTRE4sIAotCUNQLCAKLQlELCAKLQlTSSwgCi0JU0UsIAotCVNBVkUsIAotCU5SRVNUT1JFLCAKLQlRKTsKLSAgIGlucHV0IENETjsKLSAgIGlucHV0IFNETjsKLSAgIGlucHV0IENQOwotICAgaW5wdXQgRDsKLSAgIGlucHV0IFNJOwotICAgaW5wdXQgU0U7Ci0gICBpbnB1dCBTQVZFOwotICAgaW5wdXQgTlJFU1RPUkU7Ci0gICBvdXRwdXQgUTsKLQotICAgU0RGQ05RRDFCV1BfU1BDQV8xODkgc3RhdGVfcmVtYXAgKC5TSShTSSksIAotCS5TRShTRSksIAotCS5RKFEpLCAKLQkuRChEKSwgCi0JLkNQKENQKSwgCi0JLkNETihDRE4pKTsKLWVuZG1vZHVsZQotCi1tb2R1bGUgU0RGQ05RRDFCV1BfU1BDQV8xOTAgKAotCVNJLCAKLQlTRSwgCi0JUSwgCi0JRCwgCi0JQ1AsIAotCUNETik7Ci0gICBpbnB1dCBTSTsKLSAgIGlucHV0IFNFOwotICAgb3V0cHV0IFE7Ci0gICBpbnB1dCBEOwotICAgaW5wdXQgQ1A7Ci0gICBpbnB1dCBDRE47Ci0KLSAgIFNERkZSWDQgREZGICguU0koU0kpLCAKLQkuU0UoU0UpLCAKLQkuUk4oQ0ROKSwgCi0JLlEoUSksIAotCS5EKEQpLCAKLQkuQ0soQ1ApKTsKLWVuZG1vZHVsZQotCi1tb2R1bGUgUlNERkNTUkhEMkJXUF9SRU1BUF9TUENfMTA4ICgKLQlDRE4sIAotCVNETiwgCi0JQ1AsIAotCUQsIAotCVNJLCAKLQlTRSwgCi0JU0FWRSwgCi0JTlJFU1RPUkUsIAotCVEpOwotICAgaW5wdXQgQ0ROOwotICAgaW5wdXQgU0ROOwotICAgaW5wdXQgQ1A7Ci0gICBpbnB1dCBEOwotICAgaW5wdXQgU0k7Ci0gICBpbnB1dCBTRTsKLSAgIGlucHV0IFNBVkU7Ci0gICBpbnB1dCBOUkVTVE9SRTsKLSAgIG91dHB1dCBROwotCi0gICBTREZDTlFEMUJXUF9TUENBXzE5MCBzdGF0ZV9yZW1hcCAoLlNJKFNJKSwgCi0JLlNFKFNFKSwgCi0JLlEoUSksIAotCS5EKEQpLCAKLQkuQ1AoQ1ApLCAKLQkuQ0ROKENETikpOwotZW5kbW9kdWxlCi0KLW1vZHVsZSBTREZDTlFEMUJXUF9TUENBXzE5MSAoCi0JU0ksIAotCVNFLCAKLQlRLCAKLQlELCAKLQlDUCwgCi0JQ0ROKTsKLSAgIGlucHV0IFNJOwotICAgaW5wdXQgU0U7Ci0gICBvdXRwdXQgUTsKLSAgIGlucHV0IEQ7Ci0gICBpbnB1dCBDUDsKLSAgIGlucHV0IENETjsKLQotICAgU0RGRlJYNCBERkYgKC5TSShTSSksIAotCS5TRShTRSksIAotCS5STihDRE4pLCAKLQkuUShRKSwgCi0JLkQoRCksIAotCS5DSyhDUCkpOwotZW5kbW9kdWxlCi0KLW1vZHVsZSBSU0RGQ1NSSEQyQldQX1JFTUFQX1NQQ18xMDkgKAotCUNETiwgCi0JU0ROLCAKLQlDUCwgCi0JRCwgCi0JU0ksIAotCVNFLCAKLQlTQVZFLCAKLQlOUkVTVE9SRSwgCi0JUSk7Ci0gICBpbnB1dCBDRE47Ci0gICBpbnB1dCBTRE47Ci0gICBpbnB1dCBDUDsKLSAgIGlucHV0IEQ7Ci0gICBpbnB1dCBTSTsKLSAgIGlucHV0IFNFOwotICAgaW5wdXQgU0FWRTsKLSAgIGlucHV0IE5SRVNUT1JFOwotICAgb3V0cHV0IFE7Ci0KLSAgIFNERkNOUUQxQldQX1NQQ0FfMTkxIHN0YXRlX3JlbWFwICguU0koU0kpLCAKLQkuU0UoU0UpLCAKLQkuUShRKSwgCi0JLkQoRCksIAotCS5DUChDUCksIAotCS5DRE4oQ0ROKSk7Ci1lbmRtb2R1bGUKLQotbW9kdWxlIFNERkNOUUQxQldQX1NQQ0FfMTkyICgKLQlTSSwgCi0JU0UsIAotCVEsIAotCUQsIAotCUNQLCAKLQlDRE4pOwotICAgaW5wdXQgU0k7Ci0gICBpbnB1dCBTRTsKLSAgIG91dHB1dCBROwotICAgaW5wdXQgRDsKLSAgIGlucHV0IENQOwotICAgaW5wdXQgQ0ROOwotCi0gICBTREZGUlg0IERGRiAoLlNJKFNJKSwgCi0JLlNFKFNFKSwgCi0JLlJOKENETiksIAotCS5RKFEpLCAKLQkuRChEKSwgCi0JLkNLKENQKSk7Ci1lbmRtb2R1bGUKLQotbW9kdWxlIFJTREZDU1JIRDJCV1BfUkVNQVBfU1BDXzExMCAoCi0JQ0ROLCAKLQlTRE4sIAotCUNQLCAKLQlELCAKLQlTSSwgCi0JU0UsIAotCVNBVkUsIAotCU5SRVNUT1JFLCAKLQlRKTsKLSAgIGlucHV0IENETjsKLSAgIGlucHV0IFNETjsKLSAgIGlucHV0IENQOwotICAgaW5wdXQgRDsKLSAgIGlucHV0IFNJOwotICAgaW5wdXQgU0U7Ci0gICBpbnB1dCBTQVZFOwotICAgaW5wdXQgTlJFU1RPUkU7Ci0gICBvdXRwdXQgUTsKLQotICAgU0RGQ05RRDFCV1BfU1BDQV8xOTIgc3RhdGVfcmVtYXAgKC5TSShTSSksIAotCS5TRShTRSksIAotCS5RKFEpLCAKLQkuRChEKSwgCi0JLkNQKENQKSwgCi0JLkNETihDRE4pKTsKLWVuZG1vZHVsZQotCi1tb2R1bGUgU0RGQ05RRDFCV1BfU1BDQV8xOTMgKAotCVNJLCAKLQlTRSwgCi0JUSwgCi0JRCwgCi0JQ1AsIAotCUNETik7Ci0gICBpbnB1dCBTSTsKLSAgIGlucHV0IFNFOwotICAgb3V0cHV0IFE7Ci0gICBpbnB1dCBEOwotICAgaW5wdXQgQ1A7Ci0gICBpbnB1dCBDRE47Ci0KLSAgIFNERkZSWDQgREZGICguU0koU0kpLCAKLQkuU0UoU0UpLCAKLQkuUk4oQ0ROKSwgCi0JLlEoUSksIAotCS5EKEQpLCAKLQkuQ0soQ1ApKTsKLWVuZG1vZHVsZQotCi1tb2R1bGUgUlNERkNTUkhEMkJXUF9SRU1BUF9TUENfMTExICgKLQlDRE4sIAotCVNETiwgCi0JQ1AsIAotCUQsIAotCVNJLCAKLQlTRSwgCi0JU0FWRSwgCi0JTlJFU1RPUkUsIAotCVEpOwotICAgaW5wdXQgQ0ROOwotICAgaW5wdXQgU0ROOwotICAgaW5wdXQgQ1A7Ci0gICBpbnB1dCBEOwotICAgaW5wdXQgU0k7Ci0gICBpbnB1dCBTRTsKLSAgIGlucHV0IFNBVkU7Ci0gICBpbnB1dCBOUkVTVE9SRTsKLSAgIG91dHB1dCBROwotCi0gICBTREZDTlFEMUJXUF9TUENBXzE5MyBzdGF0ZV9yZW1hcCAoLlNJKFNJKSwgCi0JLlNFKFNFKSwgCi0JLlEoUSksIAotCS5EKEQpLCAKLQkuQ1AoQ1ApLCAKLQkuQ0ROKENETikpOwotZW5kbW9kdWxlCi0KLW1vZHVsZSBTREZDTlFEMUJXUF9TUENBXzE5NCAoCi0JU0ksIAotCVNFLCAKLQlRLCAKLQlELCAKLQlDUCwgCi0JQ0ROKTsKLSAgIGlucHV0IFNJOwotICAgaW5wdXQgU0U7Ci0gICBvdXRwdXQgUTsKLSAgIGlucHV0IEQ7Ci0gICBpbnB1dCBDUDsKLSAgIGlucHV0IENETjsKLQotICAgU0RGRlJYNCBERkYgKC5TSShTSSksIAotCS5TRShTRSksIAotCS5STihDRE4pLCAKLQkuUShRKSwgCi0JLkQoRCksIAotCS5DSyhDUCkpOwotZW5kbW9kdWxlCi0KLW1vZHVsZSBSU0RGQ1NSSEQyQldQX1JFTUFQX1NQQ18xMTIgKAotCUNETiwgCi0JU0ROLCAKLQlDUCwgCi0JRCwgCi0JU0ksIAotCVNFLCAKLQlTQVZFLCAKLQlOUkVTVE9SRSwgCi0JUSk7Ci0gICBpbnB1dCBDRE47Ci0gICBpbnB1dCBTRE47Ci0gICBpbnB1dCBDUDsKLSAgIGlucHV0IEQ7Ci0gICBpbnB1dCBTSTsKLSAgIGlucHV0IFNFOwotICAgaW5wdXQgU0FWRTsKLSAgIGlucHV0IE5SRVNUT1JFOwotICAgb3V0cHV0IFE7Ci0KLSAgIFNERkNOUUQxQldQX1NQQ0FfMTk0IHN0YXRlX3JlbWFwICguU0koU0kpLCAKLQkuU0UoU0UpLCAKLQkuUShRKSwgCi0JLkQoRCksIAotCS5DUChDUCksIAotCS5DRE4oQ0ROKSk7Ci1lbmRtb2R1bGUKLQotbW9kdWxlIFNERkNOUUQxQldQX1NQQ0FfMTk1ICgKLQlTSSwgCi0JU0UsIAotCVEsIAotCUQsIAotCUNQLCAKLQlDRE4pOwotICAgaW5wdXQgU0k7Ci0gICBpbnB1dCBTRTsKLSAgIG91dHB1dCBROwotICAgaW5wdXQgRDsKLSAgIGlucHV0IENQOwotICAgaW5wdXQgQ0ROOwotCi0gICBTREZGUlg0IERGRiAoLlNJKFNJKSwgCi0JLlNFKFNFKSwgCi0JLlJOKENETiksIAotCS5RKFEpLCAKLQkuRChEKSwgCi0JLkNLKENQKSk7Ci1lbmRtb2R1bGUKLQotbW9kdWxlIFJTREZDU1JIRDJCV1BfUkVNQVBfU1BDXzExMyAoCi0JQ0ROLCAKLQlTRE4sIAotCUNQLCAKLQlELCAKLQlTSSwgCi0JU0UsIAotCVNBVkUsIAotCU5SRVNUT1JFLCAKLQlRKTsKLSAgIGlucHV0IENETjsKLSAgIGlucHV0IFNETjsKLSAgIGlucHV0IENQOwotICAgaW5wdXQgRDsKLSAgIGlucHV0IFNJOwotICAgaW5wdXQgU0U7Ci0gICBpbnB1dCBTQVZFOwotICAgaW5wdXQgTlJFU1RPUkU7Ci0gICBvdXRwdXQgUTsKLQotICAgU0RGQ05RRDFCV1BfU1BDQV8xOTUgc3RhdGVfcmVtYXAgKC5TSShTSSksIAotCS5TRShTRSksIAotCS5RKFEpLCAKLQkuRChEKSwgCi0JLkNQKENQKSwgCi0JLkNETihDRE4pKTsKLWVuZG1vZHVsZQotCi1tb2R1bGUgU0RGQ05RRDFCV1BfU1BDQV8xOTYgKAotCVNJLCAKLQlTRSwgCi0JUSwgCi0JRCwgCi0JQ1AsIAotCUNETik7Ci0gICBpbnB1dCBTSTsKLSAgIGlucHV0IFNFOwotICAgb3V0cHV0IFE7Ci0gICBpbnB1dCBEOwotICAgaW5wdXQgQ1A7Ci0gICBpbnB1dCBDRE47Ci0KLSAgIFNERkZSWDQgREZGICguU0koU0kpLCAKLQkuU0UoU0UpLCAKLQkuUk4oQ0ROKSwgCi0JLlEoUSksIAotCS5EKEQpLCAKLQkuQ0soQ1ApKTsKLWVuZG1vZHVsZQotCi1tb2R1bGUgUlNERkNTUkhEMkJXUF9SRU1BUF9TUENfMTE0ICgKLQlDRE4sIAotCVNETiwgCi0JQ1AsIAotCUQsIAotCVNJLCAKLQlTRSwgCi0JU0FWRSwgCi0JTlJFU1RPUkUsIAotCVEpOwotICAgaW5wdXQgQ0ROOwotICAgaW5wdXQgU0ROOwotICAgaW5wdXQgQ1A7Ci0gICBpbnB1dCBEOwotICAgaW5wdXQgU0k7Ci0gICBpbnB1dCBTRTsKLSAgIGlucHV0IFNBVkU7Ci0gICBpbnB1dCBOUkVTVE9SRTsKLSAgIG91dHB1dCBROwotCi0gICBTREZDTlFEMUJXUF9TUENBXzE5NiBzdGF0ZV9yZW1hcCAoLlNJKFNJKSwgCi0JLlNFKFNFKSwgCi0JLlEoUSksIAotCS5EKEQpLCAKLQkuQ1AoQ1ApLCAKLQkuQ0ROKENETikpOwotZW5kbW9kdWxlCi0KLW1vZHVsZSBTREZDTlFEMUJXUF9TUENBXzE5NyAoCi0JU0ksIAotCVNFLCAKLQlRLCAKLQlELCAKLQlDUCwgCi0JQ0ROKTsKLSAgIGlucHV0IFNJOwotICAgaW5wdXQgU0U7Ci0gICBvdXRwdXQgUTsKLSAgIGlucHV0IEQ7Ci0gICBpbnB1dCBDUDsKLSAgIGlucHV0IENETjsKLQotICAgU0RGRlJYNCBERkYgKC5TSShTSSksIAotCS5TRShTRSksIAotCS5STihDRE4pLCAKLQkuUShRKSwgCi0JLkQoRCksIAotCS5DSyhDUCkpOwotZW5kbW9kdWxlCi0KLW1vZHVsZSBSU0RGQ1NSSEQyQldQX1JFTUFQX1NQQ18xMTUgKAotCUNETiwgCi0JU0ROLCAKLQlDUCwgCi0JRCwgCi0JU0ksIAotCVNFLCAKLQlTQVZFLCAKLQlOUkVTVE9SRSwgCi0JUSk7Ci0gICBpbnB1dCBDRE47Ci0gICBpbnB1dCBTRE47Ci0gICBpbnB1dCBDUDsKLSAgIGlucHV0IEQ7Ci0gICBpbnB1dCBTSTsKLSAgIGlucHV0IFNFOwotICAgaW5wdXQgU0FWRTsKLSAgIGlucHV0IE5SRVNUT1JFOwotICAgb3V0cHV0IFE7Ci0KLSAgIFNERkNOUUQxQldQX1NQQ0FfMTk3IHN0YXRlX3JlbWFwICguU0koU0kpLCAKLQkuU0UoU0UpLCAKLQkuUShRKSwgCi0JLkQoRCksIAotCS5DUChDUCksIAotCS5DRE4oQ0ROKSk7Ci1lbmRtb2R1bGUKLQotbW9kdWxlIFNERkNOUUQxQldQX1NQQ0FfMTk4ICgKLQlTSSwgCi0JU0UsIAotCVEsIAotCUQsIAotCUNQLCAKLQlDRE4pOwotICAgaW5wdXQgU0k7Ci0gICBpbnB1dCBTRTsKLSAgIG91dHB1dCBROwotICAgaW5wdXQgRDsKLSAgIGlucHV0IENQOwotICAgaW5wdXQgQ0ROOwotCi0gICBTREZGUlg0IERGRiAoLlNJKFNJKSwgCi0JLlNFKFNFKSwgCi0JLlJOKENETiksIAotCS5RKFEpLCAKLQkuRChEKSwgCi0JLkNLKENQKSk7Ci1lbmRtb2R1bGUKLQotbW9kdWxlIFJTREZDU1JIRDJCV1BfUkVNQVBfU1BDXzExNiAoCi0JQ0ROLCAKLQlTRE4sIAotCUNQLCAKLQlELCAKLQlTSSwgCi0JU0UsIAotCVNBVkUsIAotCU5SRVNUT1JFLCAKLQlRKTsKLSAgIGlucHV0IENETjsKLSAgIGlucHV0IFNETjsKLSAgIGlucHV0IENQOwotICAgaW5wdXQgRDsKLSAgIGlucHV0IFNJOwotICAgaW5wdXQgU0U7Ci0gICBpbnB1dCBTQVZFOwotICAgaW5wdXQgTlJFU1RPUkU7Ci0gICBvdXRwdXQgUTsKLQotICAgU0RGQ05RRDFCV1BfU1BDQV8xOTggc3RhdGVfcmVtYXAgKC5TSShTSSksIAotCS5TRShTRSksIAotCS5RKFEpLCAKLQkuRChEKSwgCi0JLkNQKENQKSwgCi0JLkNETihDRE4pKTsKLWVuZG1vZHVsZQotCi1tb2R1bGUgU0RGQ05RRDFCV1BfU1BDQV8xOTkgKAotCVNJLCAKLQlTRSwgCi0JUSwgCi0JRCwgCi0JQ1AsIAotCUNETik7Ci0gICBpbnB1dCBTSTsKLSAgIGlucHV0IFNFOwotICAgb3V0cHV0IFE7Ci0gICBpbnB1dCBEOwotICAgaW5wdXQgQ1A7Ci0gICBpbnB1dCBDRE47Ci0KLSAgIFNERkZSWDQgREZGICguU0koU0kpLCAKLQkuU0UoU0UpLCAKLQkuUk4oQ0ROKSwgCi0JLlEoUSksIAotCS5EKEQpLCAKLQkuQ0soQ1ApKTsKLWVuZG1vZHVsZQotCi1tb2R1bGUgUlNERkNTUkhEMkJXUF9SRU1BUF9TUENfMTE3ICgKLQlDRE4sIAotCVNETiwgCi0JQ1AsIAotCUQsIAotCVNJLCAKLQlTRSwgCi0JU0FWRSwgCi0JTlJFU1RPUkUsIAotCVEpOwotICAgaW5wdXQgQ0ROOwotICAgaW5wdXQgU0ROOwotICAgaW5wdXQgQ1A7Ci0gICBpbnB1dCBEOwotICAgaW5wdXQgU0k7Ci0gICBpbnB1dCBTRTsKLSAgIGlucHV0IFNBVkU7Ci0gICBpbnB1dCBOUkVTVE9SRTsKLSAgIG91dHB1dCBROwotCi0gICBTREZDTlFEMUJXUF9TUENBXzE5OSBzdGF0ZV9yZW1hcCAoLlNJKFNJKSwgCi0JLlNFKFNFKSwgCi0JLlEoUSksIAotCS5EKEQpLCAKLQkuQ1AoQ1ApLCAKLQkuQ0ROKENETikpOwotZW5kbW9kdWxlCi0KLW1vZHVsZSBTREZDTlFEMUJXUF9TUENBXzIwMCAoCi0JU0ksIAotCVNFLCAKLQlRLCAKLQlELCAKLQlDUCwgCi0JQ0ROKTsKLSAgIGlucHV0IFNJOwotICAgaW5wdXQgU0U7Ci0gICBvdXRwdXQgUTsKLSAgIGlucHV0IEQ7Ci0gICBpbnB1dCBDUDsKLSAgIGlucHV0IENETjsKLQotICAgU0RGRlJYNCBERkYgKC5TSShTSSksIAotCS5TRShTRSksIAotCS5STihDRE4pLCAKLQkuUShRKSwgCi0JLkQoRCksIAotCS5DSyhDUCkpOwotZW5kbW9kdWxlCi0KLW1vZHVsZSBSU0RGQ1NSSEQyQldQX1JFTUFQX1NQQ18xMTggKAotCUNETiwgCi0JU0ROLCAKLQlDUCwgCi0JRCwgCi0JU0ksIAotCVNFLCAKLQlTQVZFLCAKLQlOUkVTVE9SRSwgCi0JUSk7Ci0gICBpbnB1dCBDRE47Ci0gICBpbnB1dCBTRE47Ci0gICBpbnB1dCBDUDsKLSAgIGlucHV0IEQ7Ci0gICBpbnB1dCBTSTsKLSAgIGlucHV0IFNFOwotICAgaW5wdXQgU0FWRTsKLSAgIGlucHV0IE5SRVNUT1JFOwotICAgb3V0cHV0IFE7Ci0KLSAgIFNERkNOUUQxQldQX1NQQ0FfMjAwIHN0YXRlX3JlbWFwICguU0koU0kpLCAKLQkuU0UoU0UpLCAKLQkuUShRKSwgCi0JLkQoRCksIAotCS5DUChDUCksIAotCS5DRE4oQ0ROKSk7Ci1lbmRtb2R1bGUKLQotbW9kdWxlIFNERkNOUUQxQldQX1NQQ0FfMjAxICgKLQlTSSwgCi0JU0UsIAotCVEsIAotCUQsIAotCUNQLCAKLQlDRE4pOwotICAgaW5wdXQgU0k7Ci0gICBpbnB1dCBTRTsKLSAgIG91dHB1dCBROwotICAgaW5wdXQgRDsKLSAgIGlucHV0IENQOwotICAgaW5wdXQgQ0ROOwotCi0gICBTREZGUlg0IERGRiAoLlNJKFNJKSwgCi0JLlNFKFNFKSwgCi0JLlJOKENETiksIAotCS5RKFEpLCAKLQkuRChEKSwgCi0JLkNLKENQKSk7Ci1lbmRtb2R1bGUKLQotbW9kdWxlIFJTREZDU1JIRDJCV1BfUkVNQVBfU1BDXzExOSAoCi0JQ0ROLCAKLQlTRE4sIAotCUNQLCAKLQlELCAKLQlTSSwgCi0JU0UsIAotCVNBVkUsIAotCU5SRVNUT1JFLCAKLQlRKTsKLSAgIGlucHV0IENETjsKLSAgIGlucHV0IFNETjsKLSAgIGlucHV0IENQOwotICAgaW5wdXQgRDsKLSAgIGlucHV0IFNJOwotICAgaW5wdXQgU0U7Ci0gICBpbnB1dCBTQVZFOwotICAgaW5wdXQgTlJFU1RPUkU7Ci0gICBvdXRwdXQgUTsKLQotICAgU0RGQ05RRDFCV1BfU1BDQV8yMDEgc3RhdGVfcmVtYXAgKC5TSShTSSksIAotCS5TRShTRSksIAotCS5RKFEpLCAKLQkuRChEKSwgCi0JLkNQKENQKSwgCi0JLkNETihDRE4pKTsKLWVuZG1vZHVsZQotCi1tb2R1bGUgU0RGQ05RRDFCV1BfU1BDQV8yMDIgKAotCVNJLCAKLQlTRSwgCi0JUSwgCi0JRCwgCi0JQ1AsIAotCUNETik7Ci0gICBpbnB1dCBTSTsKLSAgIGlucHV0IFNFOwotICAgb3V0cHV0IFE7Ci0gICBpbnB1dCBEOwotICAgaW5wdXQgQ1A7Ci0gICBpbnB1dCBDRE47Ci0KLSAgIFNERkZSWDQgREZGICguU0koU0kpLCAKLQkuU0UoU0UpLCAKLQkuUk4oQ0ROKSwgCi0JLlEoUSksIAotCS5EKEQpLCAKLQkuQ0soQ1ApKTsKLWVuZG1vZHVsZQotCi1tb2R1bGUgUlNERkNTUkhEMkJXUF9SRU1BUF9TUENfMTIwICgKLQlDRE4sIAotCVNETiwgCi0JQ1AsIAotCUQsIAotCVNJLCAKLQlTRSwgCi0JU0FWRSwgCi0JTlJFU1RPUkUsIAotCVEpOwotICAgaW5wdXQgQ0ROOwotICAgaW5wdXQgU0ROOwotICAgaW5wdXQgQ1A7Ci0gICBpbnB1dCBEOwotICAgaW5wdXQgU0k7Ci0gICBpbnB1dCBTRTsKLSAgIGlucHV0IFNBVkU7Ci0gICBpbnB1dCBOUkVTVE9SRTsKLSAgIG91dHB1dCBROwotCi0gICBTREZDTlFEMUJXUF9TUENBXzIwMiBzdGF0ZV9yZW1hcCAoLlNJKFNJKSwgCi0JLlNFKFNFKSwgCi0JLlEoUSksIAotCS5EKEQpLCAKLQkuQ1AoQ1ApLCAKLQkuQ0ROKENETikpOwotZW5kbW9kdWxlCi0KLW1vZHVsZSBTREZDTlFEMUJXUF9TUENBXzIwMyAoCi0JU0ksIAotCVNFLCAKLQlRLCAKLQlELCAKLQlDUCwgCi0JQ0ROKTsKLSAgIGlucHV0IFNJOwotICAgaW5wdXQgU0U7Ci0gICBvdXRwdXQgUTsKLSAgIGlucHV0IEQ7Ci0gICBpbnB1dCBDUDsKLSAgIGlucHV0IENETjsKLQotICAgU0RGRlJYNCBERkYgKC5TSShTSSksIAotCS5TRShTRSksIAotCS5STihDRE4pLCAKLQkuUShRKSwgCi0JLkQoRCksIAotCS5DSyhDUCkpOwotZW5kbW9kdWxlCi0KLW1vZHVsZSBSU0RGQ1NSSEQyQldQX1JFTUFQX1NQQ18xMjEgKAotCUNETiwgCi0JU0ROLCAKLQlDUCwgCi0JRCwgCi0JU0ksIAotCVNFLCAKLQlTQVZFLCAKLQlOUkVTVE9SRSwgCi0JUSk7Ci0gICBpbnB1dCBDRE47Ci0gICBpbnB1dCBTRE47Ci0gICBpbnB1dCBDUDsKLSAgIGlucHV0IEQ7Ci0gICBpbnB1dCBTSTsKLSAgIGlucHV0IFNFOwotICAgaW5wdXQgU0FWRTsKLSAgIGlucHV0IE5SRVNUT1JFOwotICAgb3V0cHV0IFE7Ci0KLSAgIFNERkNOUUQxQldQX1NQQ0FfMjAzIHN0YXRlX3JlbWFwICguU0koU0kpLCAKLQkuU0UoU0UpLCAKLQkuUShRKSwgCi0JLkQoRCksIAotCS5DUChDUCksIAotCS5DRE4oQ0ROKSk7Ci1lbmRtb2R1bGUKLQotbW9kdWxlIFNERkNOUUQxQldQX1NQQ0FfMjA0ICgKLQlTSSwgCi0JU0UsIAotCVEsIAotCUQsIAotCUNQLCAKLQlDRE4pOwotICAgaW5wdXQgU0k7Ci0gICBpbnB1dCBTRTsKLSAgIG91dHB1dCBROwotICAgaW5wdXQgRDsKLSAgIGlucHV0IENQOwotICAgaW5wdXQgQ0ROOwotCi0gICBTREZGUlg0IERGRiAoLlNJKFNJKSwgCi0JLlNFKFNFKSwgCi0JLlJOKENETiksIAotCS5RKFEpLCAKLQkuRChEKSwgCi0JLkNLKENQKSk7Ci1lbmRtb2R1bGUKLQotbW9kdWxlIFJTREZDU1JIRDJCV1BfUkVNQVBfU1BDXzEyMiAoCi0JQ0ROLCAKLQlTRE4sIAotCUNQLCAKLQlELCAKLQlTSSwgCi0JU0UsIAotCVNBVkUsIAotCU5SRVNUT1JFLCAKLQlRKTsKLSAgIGlucHV0IENETjsKLSAgIGlucHV0IFNETjsKLSAgIGlucHV0IENQOwotICAgaW5wdXQgRDsKLSAgIGlucHV0IFNJOwotICAgaW5wdXQgU0U7Ci0gICBpbnB1dCBTQVZFOwotICAgaW5wdXQgTlJFU1RPUkU7Ci0gICBvdXRwdXQgUTsKLQotICAgU0RGQ05RRDFCV1BfU1BDQV8yMDQgc3RhdGVfcmVtYXAgKC5TSShTSSksIAotCS5TRShTRSksIAotCS5RKFEpLCAKLQkuRChEKSwgCi0JLkNQKENQKSwgCi0JLkNETihDRE4pKTsKLWVuZG1vZHVsZQotCi1tb2R1bGUgU0RGQ05RRDFCV1BfU1BDQV8yMDUgKAotCVNJLCAKLQlTRSwgCi0JUSwgCi0JRCwgCi0JQ1AsIAotCUNETik7Ci0gICBpbnB1dCBTSTsKLSAgIGlucHV0IFNFOwotICAgb3V0cHV0IFE7Ci0gICBpbnB1dCBEOwotICAgaW5wdXQgQ1A7Ci0gICBpbnB1dCBDRE47Ci0KLSAgIFNERkZSWDQgREZGICguU0koU0kpLCAKLQkuU0UoU0UpLCAKLQkuUk4oQ0ROKSwgCi0JLlEoUSksIAotCS5EKEQpLCAKLQkuQ0soQ1ApKTsKLWVuZG1vZHVsZQotCi1tb2R1bGUgUlNERkNTUkhEMkJXUF9SRU1BUF9TUENfMTIzICgKLQlDRE4sIAotCVNETiwgCi0JQ1AsIAotCUQsIAotCVNJLCAKLQlTRSwgCi0JU0FWRSwgCi0JTlJFU1RPUkUsIAotCVEpOwotICAgaW5wdXQgQ0ROOwotICAgaW5wdXQgU0ROOwotICAgaW5wdXQgQ1A7Ci0gICBpbnB1dCBEOwotICAgaW5wdXQgU0k7Ci0gICBpbnB1dCBTRTsKLSAgIGlucHV0IFNBVkU7Ci0gICBpbnB1dCBOUkVTVE9SRTsKLSAgIG91dHB1dCBROwotCi0gICBTREZDTlFEMUJXUF9TUENBXzIwNSBzdGF0ZV9yZW1hcCAoLlNJKFNJKSwgCi0JLlNFKFNFKSwgCi0JLlEoUSksIAotCS5EKEQpLCAKLQkuQ1AoQ1ApLCAKLQkuQ0ROKENETikpOwotZW5kbW9kdWxlCi0KLW1vZHVsZSBTREZDTlFEMUJXUF9TUENBXzIwNiAoCi0JU0ksIAotCVNFLCAKLQlRLCAKLQlELCAKLQlDUCwgCi0JQ0ROKTsKLSAgIGlucHV0IFNJOwotICAgaW5wdXQgU0U7Ci0gICBvdXRwdXQgUTsKLSAgIGlucHV0IEQ7Ci0gICBpbnB1dCBDUDsKLSAgIGlucHV0IENETjsKLQotICAgU0RGRlJYNCBERkYgKC5TSShTSSksIAotCS5TRShTRSksIAotCS5STihDRE4pLCAKLQkuUShRKSwgCi0JLkQoRCksIAotCS5DSyhDUCkpOwotZW5kbW9kdWxlCi0KLW1vZHVsZSBSU0RGQ1NSSEQyQldQX1JFTUFQX1NQQ18xMjQgKAotCUNETiwgCi0JU0ROLCAKLQlDUCwgCi0JRCwgCi0JU0ksIAotCVNFLCAKLQlTQVZFLCAKLQlOUkVTVE9SRSwgCi0JUSk7Ci0gICBpbnB1dCBDRE47Ci0gICBpbnB1dCBTRE47Ci0gICBpbnB1dCBDUDsKLSAgIGlucHV0IEQ7Ci0gICBpbnB1dCBTSTsKLSAgIGlucHV0IFNFOwotICAgaW5wdXQgU0FWRTsKLSAgIGlucHV0IE5SRVNUT1JFOwotICAgb3V0cHV0IFE7Ci0KLSAgIFNERkNOUUQxQldQX1NQQ0FfMjA2IHN0YXRlX3JlbWFwICguU0koU0kpLCAKLQkuU0UoU0UpLCAKLQkuUShRKSwgCi0JLkQoRCksIAotCS5DUChDUCksIAotCS5DRE4oQ0ROKSk7Ci1lbmRtb2R1bGUKLQotbW9kdWxlIFNERkNOUUQxQldQX1NQQ0FfMjA3ICgKLQlTSSwgCi0JU0UsIAotCVEsIAotCUQsIAotCUNQLCAKLQlDRE4pOwotICAgaW5wdXQgU0k7Ci0gICBpbnB1dCBTRTsKLSAgIG91dHB1dCBROwotICAgaW5wdXQgRDsKLSAgIGlucHV0IENQOwotICAgaW5wdXQgQ0ROOwotCi0gICBTREZGUlg0IERGRiAoLlNJKFNJKSwgCi0JLlNFKFNFKSwgCi0JLlJOKENETiksIAotCS5RKFEpLCAKLQkuRChEKSwgCi0JLkNLKENQKSk7Ci1lbmRtb2R1bGUKLQotbW9kdWxlIFJTREZDU1JIRDJCV1BfUkVNQVBfU1BDXzEyNSAoCi0JQ0ROLCAKLQlTRE4sIAotCUNQLCAKLQlELCAKLQlTSSwgCi0JU0UsIAotCVNBVkUsIAotCU5SRVNUT1JFLCAKLQlRKTsKLSAgIGlucHV0IENETjsKLSAgIGlucHV0IFNETjsKLSAgIGlucHV0IENQOwotICAgaW5wdXQgRDsKLSAgIGlucHV0IFNJOwotICAgaW5wdXQgU0U7Ci0gICBpbnB1dCBTQVZFOwotICAgaW5wdXQgTlJFU1RPUkU7Ci0gICBvdXRwdXQgUTsKLQotICAgU0RGQ05RRDFCV1BfU1BDQV8yMDcgc3RhdGVfcmVtYXAgKC5TSShTSSksIAotCS5TRShTRSksIAotCS5RKFEpLCAKLQkuRChEKSwgCi0JLkNQKENQKSwgCi0JLkNETihDRE4pKTsKLWVuZG1vZHVsZQotCi1tb2R1bGUgU0RGQ05RRDFCV1BfU1BDQV8yMDggKAotCVNJLCAKLQlTRSwgCi0JUSwgCi0JRCwgCi0JQ1AsIAotCUNETik7Ci0gICBpbnB1dCBTSTsKLSAgIGlucHV0IFNFOwotICAgb3V0cHV0IFE7Ci0gICBpbnB1dCBEOwotICAgaW5wdXQgQ1A7Ci0gICBpbnB1dCBDRE47Ci0KLSAgIFNERkZSWDQgREZGICguU0koU0kpLCAKLQkuU0UoU0UpLCAKLQkuUk4oQ0ROKSwgCi0JLlEoUSksIAotCS5EKEQpLCAKLQkuQ0soQ1ApKTsKLWVuZG1vZHVsZQotCi1tb2R1bGUgUlNERkNTUkhEMkJXUF9SRU1BUF9TUENfMTI2ICgKLQlDRE4sIAotCVNETiwgCi0JQ1AsIAotCUQsIAotCVNJLCAKLQlTRSwgCi0JU0FWRSwgCi0JTlJFU1RPUkUsIAotCVEpOwotICAgaW5wdXQgQ0ROOwotICAgaW5wdXQgU0ROOwotICAgaW5wdXQgQ1A7Ci0gICBpbnB1dCBEOwotICAgaW5wdXQgU0k7Ci0gICBpbnB1dCBTRTsKLSAgIGlucHV0IFNBVkU7Ci0gICBpbnB1dCBOUkVTVE9SRTsKLSAgIG91dHB1dCBROwotCi0gICBTREZDTlFEMUJXUF9TUENBXzIwOCBzdGF0ZV9yZW1hcCAoLlNJKFNJKSwgCi0JLlNFKFNFKSwgCi0JLlEoUSksIAotCS5EKEQpLCAKLQkuQ1AoQ1ApLCAKLQkuQ0ROKENETikpOwotZW5kbW9kdWxlCi0KLW1vZHVsZSBTREZDTlFEMUJXUF9TUENBXzIwOSAoCi0JU0ksIAotCVNFLCAKLQlRLCAKLQlELCAKLQlDUCwgCi0JQ0ROKTsKLSAgIGlucHV0IFNJOwotICAgaW5wdXQgU0U7Ci0gICBvdXRwdXQgUTsKLSAgIGlucHV0IEQ7Ci0gICBpbnB1dCBDUDsKLSAgIGlucHV0IENETjsKLQotICAgU0RGRlJYNCBERkYgKC5TSShTSSksIAotCS5TRShTRSksIAotCS5STihDRE4pLCAKLQkuUShRKSwgCi0JLkQoRCksIAotCS5DSyhDUCkpOwotZW5kbW9kdWxlCi0KLW1vZHVsZSBSU0RGQ1NSSEQyQldQX1JFTUFQX1NQQ18xMjcgKAotCUNETiwgCi0JU0ROLCAKLQlDUCwgCi0JRCwgCi0JU0ksIAotCVNFLCAKLQlTQVZFLCAKLQlOUkVTVE9SRSwgCi0JUSk7Ci0gICBpbnB1dCBDRE47Ci0gICBpbnB1dCBTRE47Ci0gICBpbnB1dCBDUDsKLSAgIGlucHV0IEQ7Ci0gICBpbnB1dCBTSTsKLSAgIGlucHV0IFNFOwotICAgaW5wdXQgU0FWRTsKLSAgIGlucHV0IE5SRVNUT1JFOwotICAgb3V0cHV0IFE7Ci0KLSAgIFNERkNOUUQxQldQX1NQQ0FfMjA5IHN0YXRlX3JlbWFwICguU0koU0kpLCAKLQkuU0UoU0UpLCAKLQkuUShRKSwgCi0JLkQoRCksIAotCS5DUChDUCksIAotCS5DRE4oQ0ROKSk7Ci1lbmRtb2R1bGUKLQotbW9kdWxlIFNERkNOUUQxQldQX1NQQ0FfMjEwICgKLQlTSSwgCi0JU0UsIAotCVEsIAotCUQsIAotCUNQLCAKLQlDRE4pOwotICAgaW5wdXQgU0k7Ci0gICBpbnB1dCBTRTsKLSAgIG91dHB1dCBROwotICAgaW5wdXQgRDsKLSAgIGlucHV0IENQOwotICAgaW5wdXQgQ0ROOwotCi0gICBTREZGUlg0IERGRiAoLlNJKFNJKSwgCi0JLlNFKFNFKSwgCi0JLlJOKENETiksIAotCS5RKFEpLCAKLQkuRChEKSwgCi0JLkNLKENQKSk7Ci1lbmRtb2R1bGUKLQotbW9kdWxlIFJTREZDU1JIRDJCV1BfUkVNQVBfU1BDXzEyOCAoCi0JQ0ROLCAKLQlTRE4sIAotCUNQLCAKLQlELCAKLQlTSSwgCi0JU0UsIAotCVNBVkUsIAotCU5SRVNUT1JFLCAKLQlRKTsKLSAgIGlucHV0IENETjsKLSAgIGlucHV0IFNETjsKLSAgIGlucHV0IENQOwotICAgaW5wdXQgRDsKLSAgIGlucHV0IFNJOwotICAgaW5wdXQgU0U7Ci0gICBpbnB1dCBTQVZFOwotICAgaW5wdXQgTlJFU1RPUkU7Ci0gICBvdXRwdXQgUTsKLQotICAgU0RGQ05RRDFCV1BfU1BDQV8yMTAgc3RhdGVfcmVtYXAgKC5TSShTSSksIAotCS5TRShTRSksIAotCS5RKFEpLCAKLQkuRChEKSwgCi0JLkNQKENQKSwgCi0JLkNETihDRE4pKTsKLWVuZG1vZHVsZQotCi1tb2R1bGUgU0RGQ05RRDFCV1BfU1BDQV8yMTEgKAotCVNJLCAKLQlTRSwgCi0JUSwgCi0JRCwgCi0JQ1AsIAotCUNETik7Ci0gICBpbnB1dCBTSTsKLSAgIGlucHV0IFNFOwotICAgb3V0cHV0IFE7Ci0gICBpbnB1dCBEOwotICAgaW5wdXQgQ1A7Ci0gICBpbnB1dCBDRE47Ci0KLSAgIFNERkZSWDQgREZGICguU0koU0kpLCAKLQkuU0UoU0UpLCAKLQkuUk4oQ0ROKSwgCi0JLlEoUSksIAotCS5EKEQpLCAKLQkuQ0soQ1ApKTsKLWVuZG1vZHVsZQotCi1tb2R1bGUgUlNERkNTUkhEMkJXUF9SRU1BUF9TUENfMTI5ICgKLQlDRE4sIAotCVNETiwgCi0JQ1AsIAotCUQsIAotCVNJLCAKLQlTRSwgCi0JU0FWRSwgCi0JTlJFU1RPUkUsIAotCVEpOwotICAgaW5wdXQgQ0ROOwotICAgaW5wdXQgU0ROOwotICAgaW5wdXQgQ1A7Ci0gICBpbnB1dCBEOwotICAgaW5wdXQgU0k7Ci0gICBpbnB1dCBTRTsKLSAgIGlucHV0IFNBVkU7Ci0gICBpbnB1dCBOUkVTVE9SRTsKLSAgIG91dHB1dCBROwotCi0gICBTREZDTlFEMUJXUF9TUENBXzIxMSBzdGF0ZV9yZW1hcCAoLlNJKFNJKSwgCi0JLlNFKFNFKSwgCi0JLlEoUSksIAotCS5EKEQpLCAKLQkuQ1AoQ1ApLCAKLQkuQ0ROKENETikpOwotZW5kbW9kdWxlCi0KLW1vZHVsZSBTREZDTlFEMUJXUF9TUENBXzIxMiAoCi0JU0ksIAotCVNFLCAKLQlRLCAKLQlELCAKLQlDUCwgCi0JQ0ROKTsKLSAgIGlucHV0IFNJOwotICAgaW5wdXQgU0U7Ci0gICBvdXRwdXQgUTsKLSAgIGlucHV0IEQ7Ci0gICBpbnB1dCBDUDsKLSAgIGlucHV0IENETjsKLQotICAgU0RGRlJYNCBERkYgKC5TSShTSSksIAotCS5TRShTRSksIAotCS5STihDRE4pLCAKLQkuUShRKSwgCi0JLkQoRCksIAotCS5DSyhDUCkpOwotZW5kbW9kdWxlCi0KLW1vZHVsZSBSU0RGQ1NSSEQyQldQX1JFTUFQX1NQQ18xMzAgKAotCUNETiwgCi0JU0ROLCAKLQlDUCwgCi0JRCwgCi0JU0ksIAotCVNFLCAKLQlTQVZFLCAKLQlOUkVTVE9SRSwgCi0JUSk7Ci0gICBpbnB1dCBDRE47Ci0gICBpbnB1dCBTRE47Ci0gICBpbnB1dCBDUDsKLSAgIGlucHV0IEQ7Ci0gICBpbnB1dCBTSTsKLSAgIGlucHV0IFNFOwotICAgaW5wdXQgU0FWRTsKLSAgIGlucHV0IE5SRVNUT1JFOwotICAgb3V0cHV0IFE7Ci0KLSAgIFNERkNOUUQxQldQX1NQQ0FfMjEyIHN0YXRlX3JlbWFwICguU0koU0kpLCAKLQkuU0UoU0UpLCAKLQkuUShRKSwgCi0JLkQoRCksIAotCS5DUChDUCksIAotCS5DRE4oQ0ROKSk7Ci1lbmRtb2R1bGUKLQotbW9kdWxlIFNERkNOUUQxQldQX1NQQ0FfMjEzICgKLQlTSSwgCi0JU0UsIAotCVEsIAotCUQsIAotCUNQLCAKLQlDRE4pOwotICAgaW5wdXQgU0k7Ci0gICBpbnB1dCBTRTsKLSAgIG91dHB1dCBROwotICAgaW5wdXQgRDsKLSAgIGlucHV0IENQOwotICAgaW5wdXQgQ0ROOwotCi0gICBTREZGUlg0IERGRiAoLlNJKFNJKSwgCi0JLlNFKFNFKSwgCi0JLlJOKENETiksIAotCS5RKFEpLCAKLQkuRChEKSwgCi0JLkNLKENQKSk7Ci1lbmRtb2R1bGUKLQotbW9kdWxlIFJTREZDU1JIRDJCV1BfUkVNQVBfU1BDXzEzMSAoCi0JQ0ROLCAKLQlTRE4sIAotCUNQLCAKLQlELCAKLQlTSSwgCi0JU0UsIAotCVNBVkUsIAotCU5SRVNUT1JFLCAKLQlRKTsKLSAgIGlucHV0IENETjsKLSAgIGlucHV0IFNETjsKLSAgIGlucHV0IENQOwotICAgaW5wdXQgRDsKLSAgIGlucHV0IFNJOwotICAgaW5wdXQgU0U7Ci0gICBpbnB1dCBTQVZFOwotICAgaW5wdXQgTlJFU1RPUkU7Ci0gICBvdXRwdXQgUTsKLQotICAgU0RGQ05RRDFCV1BfU1BDQV8yMTMgc3RhdGVfcmVtYXAgKC5TSShTSSksIAotCS5TRShTRSksIAotCS5RKFEpLCAKLQkuRChEKSwgCi0JLkNQKENQKSwgCi0JLkNETihDRE4pKTsKLWVuZG1vZHVsZQotCi1tb2R1bGUgU0RGQ05RRDFCV1BfU1BDQV8yMTQgKAotCVNJLCAKLQlTRSwgCi0JUSwgCi0JRCwgCi0JQ1AsIAotCUNETik7Ci0gICBpbnB1dCBTSTsKLSAgIGlucHV0IFNFOwotICAgb3V0cHV0IFE7Ci0gICBpbnB1dCBEOwotICAgaW5wdXQgQ1A7Ci0gICBpbnB1dCBDRE47Ci0KLSAgIFNERkZSWDQgREZGICguU0koU0kpLCAKLQkuU0UoU0UpLCAKLQkuUk4oQ0ROKSwgCi0JLlEoUSksIAotCS5EKEQpLCAKLQkuQ0soQ1ApKTsKLWVuZG1vZHVsZQotCi1tb2R1bGUgUlNERkNTUkhEMkJXUF9SRU1BUF9TUENfMTMyICgKLQlDRE4sIAotCVNETiwgCi0JQ1AsIAotCUQsIAotCVNJLCAKLQlTRSwgCi0JU0FWRSwgCi0JTlJFU1RPUkUsIAotCVEpOwotICAgaW5wdXQgQ0ROOwotICAgaW5wdXQgU0ROOwotICAgaW5wdXQgQ1A7Ci0gICBpbnB1dCBEOwotICAgaW5wdXQgU0k7Ci0gICBpbnB1dCBTRTsKLSAgIGlucHV0IFNBVkU7Ci0gICBpbnB1dCBOUkVTVE9SRTsKLSAgIG91dHB1dCBROwotCi0gICBTREZDTlFEMUJXUF9TUENBXzIxNCBzdGF0ZV9yZW1hcCAoLlNJKFNJKSwgCi0JLlNFKFNFKSwgCi0JLlEoUSksIAotCS5EKEQpLCAKLQkuQ1AoQ1ApLCAKLQkuQ0ROKENETikpOwotZW5kbW9kdWxlCi0KLW1vZHVsZSBTREZDTlFEMUJXUF9TUENBXzIxNSAoCi0JU0ksIAotCVNFLCAKLQlRLCAKLQlELCAKLQlDUCwgCi0JQ0ROKTsKLSAgIGlucHV0IFNJOwotICAgaW5wdXQgU0U7Ci0gICBvdXRwdXQgUTsKLSAgIGlucHV0IEQ7Ci0gICBpbnB1dCBDUDsKLSAgIGlucHV0IENETjsKLQotICAgU0RGRlJYNCBERkYgKC5TSShTSSksIAotCS5TRShTRSksIAotCS5STihDRE4pLCAKLQkuUShRKSwgCi0JLkQoRCksIAotCS5DSyhDUCkpOwotZW5kbW9kdWxlCi0KLW1vZHVsZSBSU0RGQ1NSSEQyQldQX1JFTUFQX1NQQ18xMzMgKAotCUNETiwgCi0JU0ROLCAKLQlDUCwgCi0JRCwgCi0JU0ksIAotCVNFLCAKLQlTQVZFLCAKLQlOUkVTVE9SRSwgCi0JUSk7Ci0gICBpbnB1dCBDRE47Ci0gICBpbnB1dCBTRE47Ci0gICBpbnB1dCBDUDsKLSAgIGlucHV0IEQ7Ci0gICBpbnB1dCBTSTsKLSAgIGlucHV0IFNFOwotICAgaW5wdXQgU0FWRTsKLSAgIGlucHV0IE5SRVNUT1JFOwotICAgb3V0cHV0IFE7Ci0KLSAgIFNERkNOUUQxQldQX1NQQ0FfMjE1IHN0YXRlX3JlbWFwICguU0koU0kpLCAKLQkuU0UoU0UpLCAKLQkuUShRKSwgCi0JLkQoRCksIAotCS5DUChDUCksIAotCS5DRE4oQ0ROKSk7Ci1lbmRtb2R1bGUKLQotbW9kdWxlIFNERkNOUUQxQldQX1NQQ0FfMjE2ICgKLQlTSSwgCi0JU0UsIAotCVEsIAotCUQsIAotCUNQLCAKLQlDRE4pOwotICAgaW5wdXQgU0k7Ci0gICBpbnB1dCBTRTsKLSAgIG91dHB1dCBROwotICAgaW5wdXQgRDsKLSAgIGlucHV0IENQOwotICAgaW5wdXQgQ0ROOwotCi0gICBTREZGUlg0IERGRiAoLlNJKFNJKSwgCi0JLlNFKFNFKSwgCi0JLlJOKENETiksIAotCS5RKFEpLCAKLQkuRChEKSwgCi0JLkNLKENQKSk7Ci1lbmRtb2R1bGUKLQotbW9kdWxlIFJTREZDU1JIRDJCV1BfUkVNQVBfU1BDXzEzNCAoCi0JQ0ROLCAKLQlTRE4sIAotCUNQLCAKLQlELCAKLQlTSSwgCi0JU0UsIAotCVNBVkUsIAotCU5SRVNUT1JFLCAKLQlRKTsKLSAgIGlucHV0IENETjsKLSAgIGlucHV0IFNETjsKLSAgIGlucHV0IENQOwotICAgaW5wdXQgRDsKLSAgIGlucHV0IFNJOwotICAgaW5wdXQgU0U7Ci0gICBpbnB1dCBTQVZFOwotICAgaW5wdXQgTlJFU1RPUkU7Ci0gICBvdXRwdXQgUTsKLQotICAgU0RGQ05RRDFCV1BfU1BDQV8yMTYgc3RhdGVfcmVtYXAgKC5TSShTSSksIAotCS5TRShTRSksIAotCS5RKFEpLCAKLQkuRChEKSwgCi0JLkNQKENQKSwgCi0JLkNETihDRE4pKTsKLWVuZG1vZHVsZQotCi1tb2R1bGUgU0RGQ05RRDFCV1BfU1BDQV8yMTcgKAotCVNJLCAKLQlTRSwgCi0JUSwgCi0JRCwgCi0JQ1AsIAotCUNETik7Ci0gICBpbnB1dCBTSTsKLSAgIGlucHV0IFNFOwotICAgb3V0cHV0IFE7Ci0gICBpbnB1dCBEOwotICAgaW5wdXQgQ1A7Ci0gICBpbnB1dCBDRE47Ci0KLSAgIFNERkZSWDQgREZGICguU0koU0kpLCAKLQkuU0UoU0UpLCAKLQkuUk4oQ0ROKSwgCi0JLlEoUSksIAotCS5EKEQpLCAKLQkuQ0soQ1ApKTsKLWVuZG1vZHVsZQotCi1tb2R1bGUgUlNERkNTUkhEMkJXUF9SRU1BUF9TUENfMTM1ICgKLQlDRE4sIAotCVNETiwgCi0JQ1AsIAotCUQsIAotCVNJLCAKLQlTRSwgCi0JU0FWRSwgCi0JTlJFU1RPUkUsIAotCVEpOwotICAgaW5wdXQgQ0ROOwotICAgaW5wdXQgU0ROOwotICAgaW5wdXQgQ1A7Ci0gICBpbnB1dCBEOwotICAgaW5wdXQgU0k7Ci0gICBpbnB1dCBTRTsKLSAgIGlucHV0IFNBVkU7Ci0gICBpbnB1dCBOUkVTVE9SRTsKLSAgIG91dHB1dCBROwotCi0gICBTREZDTlFEMUJXUF9TUENBXzIxNyBzdGF0ZV9yZW1hcCAoLlNJKFNJKSwgCi0JLlNFKFNFKSwgCi0JLlEoUSksIAotCS5EKEQpLCAKLQkuQ1AoQ1ApLCAKLQkuQ0ROKENETikpOwotZW5kbW9kdWxlCi0KLW1vZHVsZSBTREZDTlFEMUJXUF9TUENBXzIxOCAoCi0JU0ksIAotCVNFLCAKLQlRLCAKLQlELCAKLQlDUCwgCi0JQ0ROKTsKLSAgIGlucHV0IFNJOwotICAgaW5wdXQgU0U7Ci0gICBvdXRwdXQgUTsKLSAgIGlucHV0IEQ7Ci0gICBpbnB1dCBDUDsKLSAgIGlucHV0IENETjsKLQotICAgU0RGRlJYNCBERkYgKC5TSShTSSksIAotCS5TRShTRSksIAotCS5STihDRE4pLCAKLQkuUShRKSwgCi0JLkQoRCksIAotCS5DSyhDUCkpOwotZW5kbW9kdWxlCi0KLW1vZHVsZSBSU0RGQ1NSSEQyQldQX1JFTUFQX1NQQ18xMzYgKAotCUNETiwgCi0JU0ROLCAKLQlDUCwgCi0JRCwgCi0JU0ksIAotCVNFLCAKLQlTQVZFLCAKLQlOUkVTVE9SRSwgCi0JUSk7Ci0gICBpbnB1dCBDRE47Ci0gICBpbnB1dCBTRE47Ci0gICBpbnB1dCBDUDsKLSAgIGlucHV0IEQ7Ci0gICBpbnB1dCBTSTsKLSAgIGlucHV0IFNFOwotICAgaW5wdXQgU0FWRTsKLSAgIGlucHV0IE5SRVNUT1JFOwotICAgb3V0cHV0IFE7Ci0KLSAgIFNERkNOUUQxQldQX1NQQ0FfMjE4IHN0YXRlX3JlbWFwICguU0koU0kpLCAKLQkuU0UoU0UpLCAKLQkuUShRKSwgCi0JLkQoRCksIAotCS5DUChDUCksIAotCS5DRE4oQ0ROKSk7Ci1lbmRtb2R1bGUKLQotbW9kdWxlIFNERkNOUUQxQldQX1NQQ0FfMjE5ICgKLQlTSSwgCi0JU0UsIAotCVEsIAotCUQsIAotCUNQLCAKLQlDRE4pOwotICAgaW5wdXQgU0k7Ci0gICBpbnB1dCBTRTsKLSAgIG91dHB1dCBROwotICAgaW5wdXQgRDsKLSAgIGlucHV0IENQOwotICAgaW5wdXQgQ0ROOwotCi0gICBTREZGUlg0IERGRiAoLlNJKFNJKSwgCi0JLlNFKFNFKSwgCi0JLlJOKENETiksIAotCS5RKFEpLCAKLQkuRChEKSwgCi0JLkNLKENQKSk7Ci1lbmRtb2R1bGUKLQotbW9kdWxlIFJTREZDU1JIRDJCV1BfUkVNQVBfU1BDXzEzNyAoCi0JQ0ROLCAKLQlTRE4sIAotCUNQLCAKLQlELCAKLQlTSSwgCi0JU0UsIAotCVNBVkUsIAotCU5SRVNUT1JFLCAKLQlRKTsKLSAgIGlucHV0IENETjsKLSAgIGlucHV0IFNETjsKLSAgIGlucHV0IENQOwotICAgaW5wdXQgRDsKLSAgIGlucHV0IFNJOwotICAgaW5wdXQgU0U7Ci0gICBpbnB1dCBTQVZFOwotICAgaW5wdXQgTlJFU1RPUkU7Ci0gICBvdXRwdXQgUTsKLQotICAgU0RGQ05RRDFCV1BfU1BDQV8yMTkgc3RhdGVfcmVtYXAgKC5TSShTSSksIAotCS5TRShTRSksIAotCS5RKFEpLCAKLQkuRChEKSwgCi0JLkNQKENQKSwgCi0JLkNETihDRE4pKTsKLWVuZG1vZHVsZQotCi1tb2R1bGUgU0RGQ05RRDFCV1BfU1BDQV8yMjAgKAotCVNJLCAKLQlTRSwgCi0JUSwgCi0JRCwgCi0JQ1AsIAotCUNETik7Ci0gICBpbnB1dCBTSTsKLSAgIGlucHV0IFNFOwotICAgb3V0cHV0IFE7Ci0gICBpbnB1dCBEOwotICAgaW5wdXQgQ1A7Ci0gICBpbnB1dCBDRE47Ci0KLSAgIFNERkZSWDQgREZGICguU0koU0kpLCAKLQkuU0UoU0UpLCAKLQkuUk4oQ0ROKSwgCi0JLlEoUSksIAotCS5EKEQpLCAKLQkuQ0soQ1ApKTsKLWVuZG1vZHVsZQotCi1tb2R1bGUgUlNERkNTUkhEMkJXUF9SRU1BUF9TUENfMTM4ICgKLQlDRE4sIAotCVNETiwgCi0JQ1AsIAotCUQsIAotCVNJLCAKLQlTRSwgCi0JU0FWRSwgCi0JTlJFU1RPUkUsIAotCVEpOwotICAgaW5wdXQgQ0ROOwotICAgaW5wdXQgU0ROOwotICAgaW5wdXQgQ1A7Ci0gICBpbnB1dCBEOwotICAgaW5wdXQgU0k7Ci0gICBpbnB1dCBTRTsKLSAgIGlucHV0IFNBVkU7Ci0gICBpbnB1dCBOUkVTVE9SRTsKLSAgIG91dHB1dCBROwotCi0gICBTREZDTlFEMUJXUF9TUENBXzIyMCBzdGF0ZV9yZW1hcCAoLlNJKFNJKSwgCi0JLlNFKFNFKSwgCi0JLlEoUSksIAotCS5EKEQpLCAKLQkuQ1AoQ1ApLCAKLQkuQ0ROKENETikpOwotZW5kbW9kdWxlCi0KLW1vZHVsZSBTREZDTlFEMUJXUF9TUENBXzIyMSAoCi0JU0ksIAotCVNFLCAKLQlRLCAKLQlELCAKLQlDUCwgCi0JQ0ROKTsKLSAgIGlucHV0IFNJOwotICAgaW5wdXQgU0U7Ci0gICBvdXRwdXQgUTsKLSAgIGlucHV0IEQ7Ci0gICBpbnB1dCBDUDsKLSAgIGlucHV0IENETjsKLQotICAgU0RGRlJYNCBERkYgKC5TSShTSSksIAotCS5TRShTRSksIAotCS5STihDRE4pLCAKLQkuUShRKSwgCi0JLkQoRCksIAotCS5DSyhDUCkpOwotZW5kbW9kdWxlCi0KLW1vZHVsZSBSU0RGQ1NSSEQyQldQX1JFTUFQX1NQQ18xMzkgKAotCUNETiwgCi0JU0ROLCAKLQlDUCwgCi0JRCwgCi0JU0ksIAotCVNFLCAKLQlTQVZFLCAKLQlOUkVTVE9SRSwgCi0JUSk7Ci0gICBpbnB1dCBDRE47Ci0gICBpbnB1dCBTRE47Ci0gICBpbnB1dCBDUDsKLSAgIGlucHV0IEQ7Ci0gICBpbnB1dCBTSTsKLSAgIGlucHV0IFNFOwotICAgaW5wdXQgU0FWRTsKLSAgIGlucHV0IE5SRVNUT1JFOwotICAgb3V0cHV0IFE7Ci0KLSAgIFNERkNOUUQxQldQX1NQQ0FfMjIxIHN0YXRlX3JlbWFwICguU0koU0kpLCAKLQkuU0UoU0UpLCAKLQkuUShRKSwgCi0JLkQoRCksIAotCS5DUChDUCksIAotCS5DRE4oQ0ROKSk7Ci1lbmRtb2R1bGUKLQotbW9kdWxlIFNERkNOUUQxQldQX1NQQ0FfMjIyICgKLQlTSSwgCi0JU0UsIAotCVEsIAotCUQsIAotCUNQLCAKLQlDRE4pOwotICAgaW5wdXQgU0k7Ci0gICBpbnB1dCBTRTsKLSAgIG91dHB1dCBROwotICAgaW5wdXQgRDsKLSAgIGlucHV0IENQOwotICAgaW5wdXQgQ0ROOwotCi0gICBTREZGUlg0IERGRiAoLlNJKFNJKSwgCi0JLlNFKFNFKSwgCi0JLlJOKENETiksIAotCS5RKFEpLCAKLQkuRChEKSwgCi0JLkNLKENQKSk7Ci1lbmRtb2R1bGUKLQotbW9kdWxlIFJTREZDU1JIRDJCV1BfUkVNQVBfU1BDXzE0MCAoCi0JQ0ROLCAKLQlTRE4sIAotCUNQLCAKLQlELCAKLQlTSSwgCi0JU0UsIAotCVNBVkUsIAotCU5SRVNUT1JFLCAKLQlRKTsKLSAgIGlucHV0IENETjsKLSAgIGlucHV0IFNETjsKLSAgIGlucHV0IENQOwotICAgaW5wdXQgRDsKLSAgIGlucHV0IFNJOwotICAgaW5wdXQgU0U7Ci0gICBpbnB1dCBTQVZFOwotICAgaW5wdXQgTlJFU1RPUkU7Ci0gICBvdXRwdXQgUTsKLQotICAgU0RGQ05RRDFCV1BfU1BDQV8yMjIgc3RhdGVfcmVtYXAgKC5TSShTSSksIAotCS5TRShTRSksIAotCS5RKFEpLCAKLQkuRChEKSwgCi0JLkNQKENQKSwgCi0JLkNETihDRE4pKTsKLWVuZG1vZHVsZQotCi1tb2R1bGUgU0RGQ05RRDFCV1BfU1BDQV8yMjMgKAotCVNJLCAKLQlTRSwgCi0JUSwgCi0JRCwgCi0JQ1AsIAotCUNETik7Ci0gICBpbnB1dCBTSTsKLSAgIGlucHV0IFNFOwotICAgb3V0cHV0IFE7Ci0gICBpbnB1dCBEOwotICAgaW5wdXQgQ1A7Ci0gICBpbnB1dCBDRE47Ci0KLSAgIFNERkZSWDQgREZGICguU0koU0kpLCAKLQkuU0UoU0UpLCAKLQkuUk4oQ0ROKSwgCi0JLlEoUSksIAotCS5EKEQpLCAKLQkuQ0soQ1ApKTsKLWVuZG1vZHVsZQotCi1tb2R1bGUgUlNERkNTUkhEMkJXUF9SRU1BUF9TUENfMTQxICgKLQlDRE4sIAotCVNETiwgCi0JQ1AsIAotCUQsIAotCVNJLCAKLQlTRSwgCi0JU0FWRSwgCi0JTlJFU1RPUkUsIAotCVEpOwotICAgaW5wdXQgQ0ROOwotICAgaW5wdXQgU0ROOwotICAgaW5wdXQgQ1A7Ci0gICBpbnB1dCBEOwotICAgaW5wdXQgU0k7Ci0gICBpbnB1dCBTRTsKLSAgIGlucHV0IFNBVkU7Ci0gICBpbnB1dCBOUkVTVE9SRTsKLSAgIG91dHB1dCBROwotCi0gICBTREZDTlFEMUJXUF9TUENBXzIyMyBzdGF0ZV9yZW1hcCAoLlNJKFNJKSwgCi0JLlNFKFNFKSwgCi0JLlEoUSksIAotCS5EKEQpLCAKLQkuQ1AoQ1ApLCAKLQkuQ0ROKENETikpOwotZW5kbW9kdWxlCi0KLW1vZHVsZSBTREZDTlFEMUJXUF9TUENBXzIyNCAoCi0JU0ksIAotCVNFLCAKLQlRLCAKLQlELCAKLQlDUCwgCi0JQ0ROKTsKLSAgIGlucHV0IFNJOwotICAgaW5wdXQgU0U7Ci0gICBvdXRwdXQgUTsKLSAgIGlucHV0IEQ7Ci0gICBpbnB1dCBDUDsKLSAgIGlucHV0IENETjsKLQotICAgU0RGRlJYNCBERkYgKC5TSShTSSksIAotCS5TRShTRSksIAotCS5STihDRE4pLCAKLQkuUShRKSwgCi0JLkQoRCksIAotCS5DSyhDUCkpOwotZW5kbW9kdWxlCi0KLW1vZHVsZSBSU0RGQ1NSSEQyQldQX1JFTUFQX1NQQ18xNDIgKAotCUNETiwgCi0JU0ROLCAKLQlDUCwgCi0JRCwgCi0JU0ksIAotCVNFLCAKLQlTQVZFLCAKLQlOUkVTVE9SRSwgCi0JUSk7Ci0gICBpbnB1dCBDRE47Ci0gICBpbnB1dCBTRE47Ci0gICBpbnB1dCBDUDsKLSAgIGlucHV0IEQ7Ci0gICBpbnB1dCBTSTsKLSAgIGlucHV0IFNFOwotICAgaW5wdXQgU0FWRTsKLSAgIGlucHV0IE5SRVNUT1JFOwotICAgb3V0cHV0IFE7Ci0KLSAgIFNERkNOUUQxQldQX1NQQ0FfMjI0IHN0YXRlX3JlbWFwICguU0koU0kpLCAKLQkuU0UoU0UpLCAKLQkuUShRKSwgCi0JLkQoRCksIAotCS5DUChDUCksIAotCS5DRE4oQ0ROKSk7Ci1lbmRtb2R1bGUKLQotbW9kdWxlIFNERkNOUUQxQldQX1NQQ0FfMjI1ICgKLQlTSSwgCi0JU0UsIAotCVEsIAotCUQsIAotCUNQLCAKLQlDRE4pOwotICAgaW5wdXQgU0k7Ci0gICBpbnB1dCBTRTsKLSAgIG91dHB1dCBROwotICAgaW5wdXQgRDsKLSAgIGlucHV0IENQOwotICAgaW5wdXQgQ0ROOwotCi0gICBTREZGUlg0IERGRiAoLlNJKFNJKSwgCi0JLlNFKFNFKSwgCi0JLlJOKENETiksIAotCS5RKFEpLCAKLQkuRChEKSwgCi0JLkNLKENQKSk7Ci1lbmRtb2R1bGUKLQotbW9kdWxlIFJTREZDU1JIRDJCV1BfUkVNQVBfU1BDXzE0MyAoCi0JQ0ROLCAKLQlTRE4sIAotCUNQLCAKLQlELCAKLQlTSSwgCi0JU0UsIAotCVNBVkUsIAotCU5SRVNUT1JFLCAKLQlRKTsKLSAgIGlucHV0IENETjsKLSAgIGlucHV0IFNETjsKLSAgIGlucHV0IENQOwotICAgaW5wdXQgRDsKLSAgIGlucHV0IFNJOwotICAgaW5wdXQgU0U7Ci0gICBpbnB1dCBTQVZFOwotICAgaW5wdXQgTlJFU1RPUkU7Ci0gICBvdXRwdXQgUTsKLQotICAgU0RGQ05RRDFCV1BfU1BDQV8yMjUgc3RhdGVfcmVtYXAgKC5TSShTSSksIAotCS5TRShTRSksIAotCS5RKFEpLCAKLQkuRChEKSwgCi0JLkNQKENQKSwgCi0JLkNETihDRE4pKTsKLWVuZG1vZHVsZQotCi1tb2R1bGUgU0RGQ05RRDFCV1BfU1BDQV8yMjYgKAotCVNJLCAKLQlTRSwgCi0JUSwgCi0JRCwgCi0JQ1AsIAotCUNETik7Ci0gICBpbnB1dCBTSTsKLSAgIGlucHV0IFNFOwotICAgb3V0cHV0IFE7Ci0gICBpbnB1dCBEOwotICAgaW5wdXQgQ1A7Ci0gICBpbnB1dCBDRE47Ci0KLSAgIFNERkZSWDQgREZGICguU0koU0kpLCAKLQkuU0UoU0UpLCAKLQkuUk4oQ0ROKSwgCi0JLlEoUSksIAotCS5EKEQpLCAKLQkuQ0soQ1ApKTsKLWVuZG1vZHVsZQotCi1tb2R1bGUgUlNERkNTUkhEMkJXUF9SRU1BUF9TUENfMTQ0ICgKLQlDRE4sIAotCVNETiwgCi0JQ1AsIAotCUQsIAotCVNJLCAKLQlTRSwgCi0JU0FWRSwgCi0JTlJFU1RPUkUsIAotCVEpOwotICAgaW5wdXQgQ0ROOwotICAgaW5wdXQgU0ROOwotICAgaW5wdXQgQ1A7Ci0gICBpbnB1dCBEOwotICAgaW5wdXQgU0k7Ci0gICBpbnB1dCBTRTsKLSAgIGlucHV0IFNBVkU7Ci0gICBpbnB1dCBOUkVTVE9SRTsKLSAgIG91dHB1dCBROwotCi0gICBTREZDTlFEMUJXUF9TUENBXzIyNiBzdGF0ZV9yZW1hcCAoLlNJKFNJKSwgCi0JLlNFKFNFKSwgCi0JLlEoUSksIAotCS5EKEQpLCAKLQkuQ1AoQ1ApLCAKLQkuQ0ROKENETikpOwotZW5kbW9kdWxlCi0KLW1vZHVsZSBTREZDTlFEMUJXUF9TUENBXzIyNyAoCi0JU0ksIAotCVNFLCAKLQlRLCAKLQlELCAKLQlDUCwgCi0JQ0ROKTsKLSAgIGlucHV0IFNJOwotICAgaW5wdXQgU0U7Ci0gICBvdXRwdXQgUTsKLSAgIGlucHV0IEQ7Ci0gICBpbnB1dCBDUDsKLSAgIGlucHV0IENETjsKLQotICAgU0RGRlJYNCBERkYgKC5TSShTSSksIAotCS5TRShTRSksIAotCS5STihDRE4pLCAKLQkuUShRKSwgCi0JLkQoRCksIAotCS5DSyhDUCkpOwotZW5kbW9kdWxlCi0KLW1vZHVsZSBSU0RGQ1NSSEQyQldQX1JFTUFQX1NQQ18xNDUgKAotCUNETiwgCi0JU0ROLCAKLQlDUCwgCi0JRCwgCi0JU0ksIAotCVNFLCAKLQlTQVZFLCAKLQlOUkVTVE9SRSwgCi0JUSk7Ci0gICBpbnB1dCBDRE47Ci0gICBpbnB1dCBTRE47Ci0gICBpbnB1dCBDUDsKLSAgIGlucHV0IEQ7Ci0gICBpbnB1dCBTSTsKLSAgIGlucHV0IFNFOwotICAgaW5wdXQgU0FWRTsKLSAgIGlucHV0IE5SRVNUT1JFOwotICAgb3V0cHV0IFE7Ci0KLSAgIFNERkNOUUQxQldQX1NQQ0FfMjI3IHN0YXRlX3JlbWFwICguU0koU0kpLCAKLQkuU0UoU0UpLCAKLQkuUShRKSwgCi0JLkQoRCksIAotCS5DUChDUCksIAotCS5DRE4oQ0ROKSk7Ci1lbmRtb2R1bGUKLQotbW9kdWxlIFNERkNOUUQxQldQX1NQQ0FfMjI4ICgKLQlTSSwgCi0JU0UsIAotCVEsIAotCUQsIAotCUNQLCAKLQlDRE4pOwotICAgaW5wdXQgU0k7Ci0gICBpbnB1dCBTRTsKLSAgIG91dHB1dCBROwotICAgaW5wdXQgRDsKLSAgIGlucHV0IENQOwotICAgaW5wdXQgQ0ROOwotCi0gICBTREZGUlg0IERGRiAoLlNJKFNJKSwgCi0JLlNFKFNFKSwgCi0JLlJOKENETiksIAotCS5RKFEpLCAKLQkuRChEKSwgCi0JLkNLKENQKSk7Ci1lbmRtb2R1bGUKLQotbW9kdWxlIFJTREZDU1JIRDJCV1BfUkVNQVBfU1BDXzE0NiAoCi0JQ0ROLCAKLQlTRE4sIAotCUNQLCAKLQlELCAKLQlTSSwgCi0JU0UsIAotCVNBVkUsIAotCU5SRVNUT1JFLCAKLQlRKTsKLSAgIGlucHV0IENETjsKLSAgIGlucHV0IFNETjsKLSAgIGlucHV0IENQOwotICAgaW5wdXQgRDsKLSAgIGlucHV0IFNJOwotICAgaW5wdXQgU0U7Ci0gICBpbnB1dCBTQVZFOwotICAgaW5wdXQgTlJFU1RPUkU7Ci0gICBvdXRwdXQgUTsKLQotICAgU0RGQ05RRDFCV1BfU1BDQV8yMjggc3RhdGVfcmVtYXAgKC5TSShTSSksIAotCS5TRShTRSksIAotCS5RKFEpLCAKLQkuRChEKSwgCi0JLkNQKENQKSwgCi0JLkNETihDRE4pKTsKLWVuZG1vZHVsZQotCi1tb2R1bGUgU0RGQ05RRDFCV1BfU1BDQV8yMjkgKAotCVNJLCAKLQlTRSwgCi0JUSwgCi0JRCwgCi0JQ1AsIAotCUNETik7Ci0gICBpbnB1dCBTSTsKLSAgIGlucHV0IFNFOwotICAgb3V0cHV0IFE7Ci0gICBpbnB1dCBEOwotICAgaW5wdXQgQ1A7Ci0gICBpbnB1dCBDRE47Ci0KLSAgIFNERkZSWDQgREZGICguU0koU0kpLCAKLQkuU0UoU0UpLCAKLQkuUk4oQ0ROKSwgCi0JLlEoUSksIAotCS5EKEQpLCAKLQkuQ0soQ1ApKTsKLWVuZG1vZHVsZQotCi1tb2R1bGUgUlNERkNTUkhEMkJXUF9SRU1BUF9TUENfMTQ3ICgKLQlDRE4sIAotCVNETiwgCi0JQ1AsIAotCUQsIAotCVNJLCAKLQlTRSwgCi0JU0FWRSwgCi0JTlJFU1RPUkUsIAotCVEpOwotICAgaW5wdXQgQ0ROOwotICAgaW5wdXQgU0ROOwotICAgaW5wdXQgQ1A7Ci0gICBpbnB1dCBEOwotICAgaW5wdXQgU0k7Ci0gICBpbnB1dCBTRTsKLSAgIGlucHV0IFNBVkU7Ci0gICBpbnB1dCBOUkVTVE9SRTsKLSAgIG91dHB1dCBROwotCi0gICBTREZDTlFEMUJXUF9TUENBXzIyOSBzdGF0ZV9yZW1hcCAoLlNJKFNJKSwgCi0JLlNFKFNFKSwgCi0JLlEoUSksIAotCS5EKEQpLCAKLQkuQ1AoQ1ApLCAKLQkuQ0ROKENETikpOwotZW5kbW9kdWxlCi0KLW1vZHVsZSBTREZDTlFEMUJXUF9TUENBXzIzMCAoCi0JU0ksIAotCVNFLCAKLQlRLCAKLQlELCAKLQlDUCwgCi0JQ0ROKTsKLSAgIGlucHV0IFNJOwotICAgaW5wdXQgU0U7Ci0gICBvdXRwdXQgUTsKLSAgIGlucHV0IEQ7Ci0gICBpbnB1dCBDUDsKLSAgIGlucHV0IENETjsKLQotICAgU0RGRlJYNCBERkYgKC5TSShTSSksIAotCS5TRShTRSksIAotCS5STihDRE4pLCAKLQkuUShRKSwgCi0JLkQoRCksIAotCS5DSyhDUCkpOwotZW5kbW9kdWxlCi0KLW1vZHVsZSBSU0RGQ1NSSEQyQldQX1JFTUFQX1NQQ18xNDggKAotCUNETiwgCi0JU0ROLCAKLQlDUCwgCi0JRCwgCi0JU0ksIAotCVNFLCAKLQlTQVZFLCAKLQlOUkVTVE9SRSwgCi0JUSk7Ci0gICBpbnB1dCBDRE47Ci0gICBpbnB1dCBTRE47Ci0gICBpbnB1dCBDUDsKLSAgIGlucHV0IEQ7Ci0gICBpbnB1dCBTSTsKLSAgIGlucHV0IFNFOwotICAgaW5wdXQgU0FWRTsKLSAgIGlucHV0IE5SRVNUT1JFOwotICAgb3V0cHV0IFE7Ci0KLSAgIFNERkNOUUQxQldQX1NQQ0FfMjMwIHN0YXRlX3JlbWFwICguU0koU0kpLCAKLQkuU0UoU0UpLCAKLQkuUShRKSwgCi0JLkQoRCksIAotCS5DUChDUCksIAotCS5DRE4oQ0ROKSk7Ci1lbmRtb2R1bGUKLQotbW9kdWxlIFNERkNOUUQxQldQX1NQQ0FfMjMxICgKLQlTSSwgCi0JU0UsIAotCVEsIAotCUQsIAotCUNQLCAKLQlDRE4pOwotICAgaW5wdXQgU0k7Ci0gICBpbnB1dCBTRTsKLSAgIG91dHB1dCBROwotICAgaW5wdXQgRDsKLSAgIGlucHV0IENQOwotICAgaW5wdXQgQ0ROOwotCi0gICBTREZGUlg0IERGRiAoLlNJKFNJKSwgCi0JLlNFKFNFKSwgCi0JLlJOKENETiksIAotCS5RKFEpLCAKLQkuRChEKSwgCi0JLkNLKENQKSk7Ci1lbmRtb2R1bGUKLQotbW9kdWxlIFJTREZDU1JIRDJCV1BfUkVNQVBfU1BDXzE0OSAoCi0JQ0ROLCAKLQlTRE4sIAotCUNQLCAKLQlELCAKLQlTSSwgCi0JU0UsIAotCVNBVkUsIAotCU5SRVNUT1JFLCAKLQlRKTsKLSAgIGlucHV0IENETjsKLSAgIGlucHV0IFNETjsKLSAgIGlucHV0IENQOwotICAgaW5wdXQgRDsKLSAgIGlucHV0IFNJOwotICAgaW5wdXQgU0U7Ci0gICBpbnB1dCBTQVZFOwotICAgaW5wdXQgTlJFU1RPUkU7Ci0gICBvdXRwdXQgUTsKLQotICAgU0RGQ05RRDFCV1BfU1BDQV8yMzEgc3RhdGVfcmVtYXAgKC5TSShTSSksIAotCS5TRShTRSksIAotCS5RKFEpLCAKLQkuRChEKSwgCi0JLkNQKENQKSwgCi0JLkNETihDRE4pKTsKLWVuZG1vZHVsZQotCi1tb2R1bGUgU0RGQ05RRDFCV1BfU1BDQV8yMzIgKAotCVNJLCAKLQlTRSwgCi0JUSwgCi0JRCwgCi0JQ1AsIAotCUNETik7Ci0gICBpbnB1dCBTSTsKLSAgIGlucHV0IFNFOwotICAgb3V0cHV0IFE7Ci0gICBpbnB1dCBEOwotICAgaW5wdXQgQ1A7Ci0gICBpbnB1dCBDRE47Ci0KLSAgIFNERkZSWDQgREZGICguU0koU0kpLCAKLQkuU0UoU0UpLCAKLQkuUk4oQ0ROKSwgCi0JLlEoUSksIAotCS5EKEQpLCAKLQkuQ0soQ1ApKTsKLWVuZG1vZHVsZQotCi1tb2R1bGUgUlNERkNTUkhEMkJXUF9SRU1BUF9TUENfMTUwICgKLQlDRE4sIAotCVNETiwgCi0JQ1AsIAotCUQsIAotCVNJLCAKLQlTRSwgCi0JU0FWRSwgCi0JTlJFU1RPUkUsIAotCVEpOwotICAgaW5wdXQgQ0ROOwotICAgaW5wdXQgU0ROOwotICAgaW5wdXQgQ1A7Ci0gICBpbnB1dCBEOwotICAgaW5wdXQgU0k7Ci0gICBpbnB1dCBTRTsKLSAgIGlucHV0IFNBVkU7Ci0gICBpbnB1dCBOUkVTVE9SRTsKLSAgIG91dHB1dCBROwotCi0gICBTREZDTlFEMUJXUF9TUENBXzIzMiBzdGF0ZV9yZW1hcCAoLlNJKFNJKSwgCi0JLlNFKFNFKSwgCi0JLlEoUSksIAotCS5EKEQpLCAKLQkuQ1AoQ1ApLCAKLQkuQ0ROKENETikpOwotZW5kbW9kdWxlCi0KLW1vZHVsZSBTREZDTlFEMUJXUF9TUENBXzIzMyAoCi0JU0ksIAotCVNFLCAKLQlRLCAKLQlELCAKLQlDUCwgCi0JQ0ROKTsKLSAgIGlucHV0IFNJOwotICAgaW5wdXQgU0U7Ci0gICBvdXRwdXQgUTsKLSAgIGlucHV0IEQ7Ci0gICBpbnB1dCBDUDsKLSAgIGlucHV0IENETjsKLQotICAgU0RGRlJYNCBERkYgKC5TSShTSSksIAotCS5TRShTRSksIAotCS5STihDRE4pLCAKLQkuUShRKSwgCi0JLkQoRCksIAotCS5DSyhDUCkpOwotZW5kbW9kdWxlCi0KLW1vZHVsZSBSU0RGQ1NSSEQyQldQX1JFTUFQX1NQQ18xNTEgKAotCUNETiwgCi0JU0ROLCAKLQlDUCwgCi0JRCwgCi0JU0ksIAotCVNFLCAKLQlTQVZFLCAKLQlOUkVTVE9SRSwgCi0JUSk7Ci0gICBpbnB1dCBDRE47Ci0gICBpbnB1dCBTRE47Ci0gICBpbnB1dCBDUDsKLSAgIGlucHV0IEQ7Ci0gICBpbnB1dCBTSTsKLSAgIGlucHV0IFNFOwotICAgaW5wdXQgU0FWRTsKLSAgIGlucHV0IE5SRVNUT1JFOwotICAgb3V0cHV0IFE7Ci0KLSAgIFNERkNOUUQxQldQX1NQQ0FfMjMzIHN0YXRlX3JlbWFwICguU0koU0kpLCAKLQkuU0UoU0UpLCAKLQkuUShRKSwgCi0JLkQoRCksIAotCS5DUChDUCksIAotCS5DRE4oQ0ROKSk7Ci1lbmRtb2R1bGUKLQotbW9kdWxlIFNERkNOUUQxQldQX1NQQ0FfMjM0ICgKLQlTSSwgCi0JU0UsIAotCVEsIAotCUQsIAotCUNQLCAKLQlDRE4pOwotICAgaW5wdXQgU0k7Ci0gICBpbnB1dCBTRTsKLSAgIG91dHB1dCBROwotICAgaW5wdXQgRDsKLSAgIGlucHV0IENQOwotICAgaW5wdXQgQ0ROOwotCi0gICBTREZGUlg0IERGRiAoLlNJKFNJKSwgCi0JLlNFKFNFKSwgCi0JLlJOKENETiksIAotCS5RKFEpLCAKLQkuRChEKSwgCi0JLkNLKENQKSk7Ci1lbmRtb2R1bGUKLQotbW9kdWxlIFJTREZDU1JIRDJCV1BfUkVNQVBfU1BDXzE1MiAoCi0JQ0ROLCAKLQlTRE4sIAotCUNQLCAKLQlELCAKLQlTSSwgCi0JU0UsIAotCVNBVkUsIAotCU5SRVNUT1JFLCAKLQlRKTsKLSAgIGlucHV0IENETjsKLSAgIGlucHV0IFNETjsKLSAgIGlucHV0IENQOwotICAgaW5wdXQgRDsKLSAgIGlucHV0IFNJOwotICAgaW5wdXQgU0U7Ci0gICBpbnB1dCBTQVZFOwotICAgaW5wdXQgTlJFU1RPUkU7Ci0gICBvdXRwdXQgUTsKLQotICAgU0RGQ05RRDFCV1BfU1BDQV8yMzQgc3RhdGVfcmVtYXAgKC5TSShTSSksIAotCS5TRShTRSksIAotCS5RKFEpLCAKLQkuRChEKSwgCi0JLkNQKENQKSwgCi0JLkNETihDRE4pKTsKLWVuZG1vZHVsZQotCi1tb2R1bGUgU0RGQ05RRDFCV1BfU1BDQV8yMzUgKAotCVNJLCAKLQlTRSwgCi0JUSwgCi0JRCwgCi0JQ1AsIAotCUNETik7Ci0gICBpbnB1dCBTSTsKLSAgIGlucHV0IFNFOwotICAgb3V0cHV0IFE7Ci0gICBpbnB1dCBEOwotICAgaW5wdXQgQ1A7Ci0gICBpbnB1dCBDRE47Ci0KLSAgIFNERkZSWDQgREZGICguU0koU0kpLCAKLQkuU0UoU0UpLCAKLQkuUk4oQ0ROKSwgCi0JLlEoUSksIAotCS5EKEQpLCAKLQkuQ0soQ1ApKTsKLWVuZG1vZHVsZQotCi1tb2R1bGUgUlNERkNTUkhEMkJXUF9SRU1BUF9TUENfMTUzICgKLQlDRE4sIAotCVNETiwgCi0JQ1AsIAotCUQsIAotCVNJLCAKLQlTRSwgCi0JU0FWRSwgCi0JTlJFU1RPUkUsIAotCVEpOwotICAgaW5wdXQgQ0ROOwotICAgaW5wdXQgU0ROOwotICAgaW5wdXQgQ1A7Ci0gICBpbnB1dCBEOwotICAgaW5wdXQgU0k7Ci0gICBpbnB1dCBTRTsKLSAgIGlucHV0IFNBVkU7Ci0gICBpbnB1dCBOUkVTVE9SRTsKLSAgIG91dHB1dCBROwotCi0gICBTREZDTlFEMUJXUF9TUENBXzIzNSBzdGF0ZV9yZW1hcCAoLlNJKFNJKSwgCi0JLlNFKFNFKSwgCi0JLlEoUSksIAotCS5EKEQpLCAKLQkuQ1AoQ1ApLCAKLQkuQ0ROKENETikpOwotZW5kbW9kdWxlCi0KLW1vZHVsZSBTREZDTlFEMUJXUF9TUENBXzIzNiAoCi0JU0ksIAotCVNFLCAKLQlRLCAKLQlELCAKLQlDUCwgCi0JQ0ROKTsKLSAgIGlucHV0IFNJOwotICAgaW5wdXQgU0U7Ci0gICBvdXRwdXQgUTsKLSAgIGlucHV0IEQ7Ci0gICBpbnB1dCBDUDsKLSAgIGlucHV0IENETjsKLQotICAgU0RGRlJYNCBERkYgKC5TSShTSSksIAotCS5TRShTRSksIAotCS5STihDRE4pLCAKLQkuUShRKSwgCi0JLkQoRCksIAotCS5DSyhDUCkpOwotZW5kbW9kdWxlCi0KLW1vZHVsZSBSU0RGQ1NSSEQyQldQX1JFTUFQX1NQQ18xNTQgKAotCUNETiwgCi0JU0ROLCAKLQlDUCwgCi0JRCwgCi0JU0ksIAotCVNFLCAKLQlTQVZFLCAKLQlOUkVTVE9SRSwgCi0JUSk7Ci0gICBpbnB1dCBDRE47Ci0gICBpbnB1dCBTRE47Ci0gICBpbnB1dCBDUDsKLSAgIGlucHV0IEQ7Ci0gICBpbnB1dCBTSTsKLSAgIGlucHV0IFNFOwotICAgaW5wdXQgU0FWRTsKLSAgIGlucHV0IE5SRVNUT1JFOwotICAgb3V0cHV0IFE7Ci0KLSAgIFNERkNOUUQxQldQX1NQQ0FfMjM2IHN0YXRlX3JlbWFwICguU0koU0kpLCAKLQkuU0UoU0UpLCAKLQkuUShRKSwgCi0JLkQoRCksIAotCS5DUChDUCksIAotCS5DRE4oQ0ROKSk7Ci1lbmRtb2R1bGUKLQotbW9kdWxlIFNERkNOUUQxQldQX1NQQ0FfMjM3ICgKLQlTSSwgCi0JU0UsIAotCVEsIAotCUQsIAotCUNQLCAKLQlDRE4pOwotICAgaW5wdXQgU0k7Ci0gICBpbnB1dCBTRTsKLSAgIG91dHB1dCBROwotICAgaW5wdXQgRDsKLSAgIGlucHV0IENQOwotICAgaW5wdXQgQ0ROOwotCi0gICBTREZGUlg0IERGRiAoLlNJKFNJKSwgCi0JLlNFKFNFKSwgCi0JLlJOKENETiksIAotCS5RKFEpLCAKLQkuRChEKSwgCi0JLkNLKENQKSk7Ci1lbmRtb2R1bGUKLQotbW9kdWxlIFJTREZDU1JIRDJCV1BfUkVNQVBfU1BDXzE1NSAoCi0JQ0ROLCAKLQlTRE4sIAotCUNQLCAKLQlELCAKLQlTSSwgCi0JU0UsIAotCVNBVkUsIAotCU5SRVNUT1JFLCAKLQlRKTsKLSAgIGlucHV0IENETjsKLSAgIGlucHV0IFNETjsKLSAgIGlucHV0IENQOwotICAgaW5wdXQgRDsKLSAgIGlucHV0IFNJOwotICAgaW5wdXQgU0U7Ci0gICBpbnB1dCBTQVZFOwotICAgaW5wdXQgTlJFU1RPUkU7Ci0gICBvdXRwdXQgUTsKLQotICAgU0RGQ05RRDFCV1BfU1BDQV8yMzcgc3RhdGVfcmVtYXAgKC5TSShTSSksIAotCS5TRShTRSksIAotCS5RKFEpLCAKLQkuRChEKSwgCi0JLkNQKENQKSwgCi0JLkNETihDRE4pKTsKLWVuZG1vZHVsZQotCi1tb2R1bGUgU0RGQ05RRDFCV1BfU1BDQV8yMzggKAotCVNJLCAKLQlTRSwgCi0JUSwgCi0JRCwgCi0JQ1AsIAotCUNETik7Ci0gICBpbnB1dCBTSTsKLSAgIGlucHV0IFNFOwotICAgb3V0cHV0IFE7Ci0gICBpbnB1dCBEOwotICAgaW5wdXQgQ1A7Ci0gICBpbnB1dCBDRE47Ci0KLSAgIFNERkZSWDQgREZGICguU0koU0kpLCAKLQkuU0UoU0UpLCAKLQkuUk4oQ0ROKSwgCi0JLlEoUSksIAotCS5EKEQpLCAKLQkuQ0soQ1ApKTsKLWVuZG1vZHVsZQotCi1tb2R1bGUgUlNERkNTUkhEMkJXUF9SRU1BUF9TUENfMTU2ICgKLQlDRE4sIAotCVNETiwgCi0JQ1AsIAotCUQsIAotCVNJLCAKLQlTRSwgCi0JU0FWRSwgCi0JTlJFU1RPUkUsIAotCVEpOwotICAgaW5wdXQgQ0ROOwotICAgaW5wdXQgU0ROOwotICAgaW5wdXQgQ1A7Ci0gICBpbnB1dCBEOwotICAgaW5wdXQgU0k7Ci0gICBpbnB1dCBTRTsKLSAgIGlucHV0IFNBVkU7Ci0gICBpbnB1dCBOUkVTVE9SRTsKLSAgIG91dHB1dCBROwotCi0gICBTREZDTlFEMUJXUF9TUENBXzIzOCBzdGF0ZV9yZW1hcCAoLlNJKFNJKSwgCi0JLlNFKFNFKSwgCi0JLlEoUSksIAotCS5EKEQpLCAKLQkuQ1AoQ1ApLCAKLQkuQ0ROKENETikpOwotZW5kbW9kdWxlCi0KLW1vZHVsZSBTREZDTlFEMUJXUF9TUENBXzIzOSAoCi0JU0ksIAotCVNFLCAKLQlRLCAKLQlELCAKLQlDUCwgCi0JQ0ROKTsKLSAgIGlucHV0IFNJOwotICAgaW5wdXQgU0U7Ci0gICBvdXRwdXQgUTsKLSAgIGlucHV0IEQ7Ci0gICBpbnB1dCBDUDsKLSAgIGlucHV0IENETjsKLQotICAgU0RGRlJYNCBERkYgKC5TSShTSSksIAotCS5TRShTRSksIAotCS5STihDRE4pLCAKLQkuUShRKSwgCi0JLkQoRCksIAotCS5DSyhDUCkpOwotZW5kbW9kdWxlCi0KLW1vZHVsZSBSU0RGQ1NSSEQyQldQX1JFTUFQX1NQQ18xNTcgKAotCUNETiwgCi0JU0ROLCAKLQlDUCwgCi0JRCwgCi0JU0ksIAotCVNFLCAKLQlTQVZFLCAKLQlOUkVTVE9SRSwgCi0JUSk7Ci0gICBpbnB1dCBDRE47Ci0gICBpbnB1dCBTRE47Ci0gICBpbnB1dCBDUDsKLSAgIGlucHV0IEQ7Ci0gICBpbnB1dCBTSTsKLSAgIGlucHV0IFNFOwotICAgaW5wdXQgU0FWRTsKLSAgIGlucHV0IE5SRVNUT1JFOwotICAgb3V0cHV0IFE7Ci0KLSAgIFNERkNOUUQxQldQX1NQQ0FfMjM5IHN0YXRlX3JlbWFwICguU0koU0kpLCAKLQkuU0UoU0UpLCAKLQkuUShRKSwgCi0JLkQoRCksIAotCS5DUChDUCksIAotCS5DRE4oQ0ROKSk7Ci1lbmRtb2R1bGUKLQotbW9kdWxlIFNERkNOUUQxQldQX1NQQ0FfMjQwICgKLQlTSSwgCi0JU0UsIAotCVEsIAotCUQsIAotCUNQLCAKLQlDRE4pOwotICAgaW5wdXQgU0k7Ci0gICBpbnB1dCBTRTsKLSAgIG91dHB1dCBROwotICAgaW5wdXQgRDsKLSAgIGlucHV0IENQOwotICAgaW5wdXQgQ0ROOwotCi0gICBTREZGUlg0IERGRiAoLlNJKFNJKSwgCi0JLlNFKFNFKSwgCi0JLlJOKENETiksIAotCS5RKFEpLCAKLQkuRChEKSwgCi0JLkNLKENQKSk7Ci1lbmRtb2R1bGUKLQotbW9kdWxlIFJTREZDU1JIRDJCV1BfUkVNQVBfU1BDXzE1OCAoCi0JQ0ROLCAKLQlTRE4sIAotCUNQLCAKLQlELCAKLQlTSSwgCi0JU0UsIAotCVNBVkUsIAotCU5SRVNUT1JFLCAKLQlRKTsKLSAgIGlucHV0IENETjsKLSAgIGlucHV0IFNETjsKLSAgIGlucHV0IENQOwotICAgaW5wdXQgRDsKLSAgIGlucHV0IFNJOwotICAgaW5wdXQgU0U7Ci0gICBpbnB1dCBTQVZFOwotICAgaW5wdXQgTlJFU1RPUkU7Ci0gICBvdXRwdXQgUTsKLQotICAgU0RGQ05RRDFCV1BfU1BDQV8yNDAgc3RhdGVfcmVtYXAgKC5TSShTSSksIAotCS5TRShTRSksIAotCS5RKFEpLCAKLQkuRChEKSwgCi0JLkNQKENQKSwgCi0JLkNETihDRE4pKTsKLWVuZG1vZHVsZQotCi1tb2R1bGUgU0RGQ05RRDFCV1BfU1BDQV8yNDEgKAotCVNJLCAKLQlTRSwgCi0JUSwgCi0JRCwgCi0JQ1AsIAotCUNETik7Ci0gICBpbnB1dCBTSTsKLSAgIGlucHV0IFNFOwotICAgb3V0cHV0IFE7Ci0gICBpbnB1dCBEOwotICAgaW5wdXQgQ1A7Ci0gICBpbnB1dCBDRE47Ci0KLSAgIFNERkZSWDQgREZGICguU0koU0kpLCAKLQkuU0UoU0UpLCAKLQkuUk4oQ0ROKSwgCi0JLlEoUSksIAotCS5EKEQpLCAKLQkuQ0soQ1ApKTsKLWVuZG1vZHVsZQotCi1tb2R1bGUgUlNERkNTUkhEMkJXUF9SRU1BUF9TUENfMTU5ICgKLQlDRE4sIAotCVNETiwgCi0JQ1AsIAotCUQsIAotCVNJLCAKLQlTRSwgCi0JU0FWRSwgCi0JTlJFU1RPUkUsIAotCVEpOwotICAgaW5wdXQgQ0ROOwotICAgaW5wdXQgU0ROOwotICAgaW5wdXQgQ1A7Ci0gICBpbnB1dCBEOwotICAgaW5wdXQgU0k7Ci0gICBpbnB1dCBTRTsKLSAgIGlucHV0IFNBVkU7Ci0gICBpbnB1dCBOUkVTVE9SRTsKLSAgIG91dHB1dCBROwotCi0gICBTREZDTlFEMUJXUF9TUENBXzI0MSBzdGF0ZV9yZW1hcCAoLlNJKFNJKSwgCi0JLlNFKFNFKSwgCi0JLlEoUSksIAotCS5EKEQpLCAKLQkuQ1AoQ1ApLCAKLQkuQ0ROKENETikpOwotZW5kbW9kdWxlCi0KLW1vZHVsZSBTREZDTlFEMUJXUF9TUENBXzI0MiAoCi0JU0ksIAotCVNFLCAKLQlRLCAKLQlELCAKLQlDUCwgCi0JQ0ROKTsKLSAgIGlucHV0IFNJOwotICAgaW5wdXQgU0U7Ci0gICBvdXRwdXQgUTsKLSAgIGlucHV0IEQ7Ci0gICBpbnB1dCBDUDsKLSAgIGlucHV0IENETjsKLQotICAgU0RGRlJYNCBERkYgKC5TSShTSSksIAotCS5TRShTRSksIAotCS5STihDRE4pLCAKLQkuUShRKSwgCi0JLkQoRCksIAotCS5DSyhDUCkpOwotZW5kbW9kdWxlCi0KLW1vZHVsZSBSU0RGQ1NSSEQyQldQX1JFTUFQX1NQQ18xNjAgKAotCUNETiwgCi0JU0ROLCAKLQlDUCwgCi0JRCwgCi0JU0ksIAotCVNFLCAKLQlTQVZFLCAKLQlOUkVTVE9SRSwgCi0JUSk7Ci0gICBpbnB1dCBDRE47Ci0gICBpbnB1dCBTRE47Ci0gICBpbnB1dCBDUDsKLSAgIGlucHV0IEQ7Ci0gICBpbnB1dCBTSTsKLSAgIGlucHV0IFNFOwotICAgaW5wdXQgU0FWRTsKLSAgIGlucHV0IE5SRVNUT1JFOwotICAgb3V0cHV0IFE7Ci0KLSAgIFNERkNOUUQxQldQX1NQQ0FfMjQyIHN0YXRlX3JlbWFwICguU0koU0kpLCAKLQkuU0UoU0UpLCAKLQkuUShRKSwgCi0JLkQoRCksIAotCS5DUChDUCksIAotCS5DRE4oQ0ROKSk7Ci1lbmRtb2R1bGUKLQotbW9kdWxlIFNERkNOUUQxQldQX1NQQ0FfMjQzICgKLQlTSSwgCi0JU0UsIAotCVEsIAotCUQsIAotCUNQLCAKLQlDRE4pOwotICAgaW5wdXQgU0k7Ci0gICBpbnB1dCBTRTsKLSAgIG91dHB1dCBROwotICAgaW5wdXQgRDsKLSAgIGlucHV0IENQOwotICAgaW5wdXQgQ0ROOwotCi0gICBTREZGUlg0IERGRiAoLlNJKFNJKSwgCi0JLlNFKFNFKSwgCi0JLlJOKENETiksIAotCS5RKFEpLCAKLQkuRChEKSwgCi0JLkNLKENQKSk7Ci1lbmRtb2R1bGUKLQotbW9kdWxlIFJTREZDU1JIRDJCV1BfUkVNQVBfU1BDXzE2MSAoCi0JQ0ROLCAKLQlTRE4sIAotCUNQLCAKLQlELCAKLQlTSSwgCi0JU0UsIAotCVNBVkUsIAotCU5SRVNUT1JFLCAKLQlRKTsKLSAgIGlucHV0IENETjsKLSAgIGlucHV0IFNETjsKLSAgIGlucHV0IENQOwotICAgaW5wdXQgRDsKLSAgIGlucHV0IFNJOwotICAgaW5wdXQgU0U7Ci0gICBpbnB1dCBTQVZFOwotICAgaW5wdXQgTlJFU1RPUkU7Ci0gICBvdXRwdXQgUTsKLQotICAgU0RGQ05RRDFCV1BfU1BDQV8yNDMgc3RhdGVfcmVtYXAgKC5TSShTSSksIAotCS5TRShTRSksIAotCS5RKFEpLCAKLQkuRChEKSwgCi0JLkNQKENQKSwgCi0JLkNETihDRE4pKTsKLWVuZG1vZHVsZQotCi1tb2R1bGUgU0RGQ05RRDFCV1BfU1BDQV8yNDQgKAotCVNJLCAKLQlTRSwgCi0JUSwgCi0JRCwgCi0JQ1AsIAotCUNETik7Ci0gICBpbnB1dCBTSTsKLSAgIGlucHV0IFNFOwotICAgb3V0cHV0IFE7Ci0gICBpbnB1dCBEOwotICAgaW5wdXQgQ1A7Ci0gICBpbnB1dCBDRE47Ci0KLSAgIFNERkZSWDQgREZGICguU0koU0kpLCAKLQkuU0UoU0UpLCAKLQkuUk4oQ0ROKSwgCi0JLlEoUSksIAotCS5EKEQpLCAKLQkuQ0soQ1ApKTsKLWVuZG1vZHVsZQotCi1tb2R1bGUgUlNERkNTUkhEMkJXUF9SRU1BUF9TUENfMTYyICgKLQlDRE4sIAotCVNETiwgCi0JQ1AsIAotCUQsIAotCVNJLCAKLQlTRSwgCi0JU0FWRSwgCi0JTlJFU1RPUkUsIAotCVEpOwotICAgaW5wdXQgQ0ROOwotICAgaW5wdXQgU0ROOwotICAgaW5wdXQgQ1A7Ci0gICBpbnB1dCBEOwotICAgaW5wdXQgU0k7Ci0gICBpbnB1dCBTRTsKLSAgIGlucHV0IFNBVkU7Ci0gICBpbnB1dCBOUkVTVE9SRTsKLSAgIG91dHB1dCBROwotCi0gICBTREZDTlFEMUJXUF9TUENBXzI0NCBzdGF0ZV9yZW1hcCAoLlNJKFNJKSwgCi0JLlNFKFNFKSwgCi0JLlEoUSksIAotCS5EKEQpLCAKLQkuQ1AoQ1ApLCAKLQkuQ0ROKENETikpOwotZW5kbW9kdWxlCi0KLW1vZHVsZSBTREZDTlFEMUJXUF9TUENBXzI0NSAoCi0JU0ksIAotCVNFLCAKLQlRLCAKLQlELCAKLQlDUCwgCi0JQ0ROKTsKLSAgIGlucHV0IFNJOwotICAgaW5wdXQgU0U7Ci0gICBvdXRwdXQgUTsKLSAgIGlucHV0IEQ7Ci0gICBpbnB1dCBDUDsKLSAgIGlucHV0IENETjsKLQotICAgU0RGRlJYNCBERkYgKC5TSShTSSksIAotCS5TRShTRSksIAotCS5STihDRE4pLCAKLQkuUShRKSwgCi0JLkQoRCksIAotCS5DSyhDUCkpOwotZW5kbW9kdWxlCi0KLW1vZHVsZSBSU0RGQ1NSSEQyQldQX1JFTUFQX1NQQ18xNjMgKAotCUNETiwgCi0JU0ROLCAKLQlDUCwgCi0JRCwgCi0JU0ksIAotCVNFLCAKLQlTQVZFLCAKLQlOUkVTVE9SRSwgCi0JUSk7Ci0gICBpbnB1dCBDRE47Ci0gICBpbnB1dCBTRE47Ci0gICBpbnB1dCBDUDsKLSAgIGlucHV0IEQ7Ci0gICBpbnB1dCBTSTsKLSAgIGlucHV0IFNFOwotICAgaW5wdXQgU0FWRTsKLSAgIGlucHV0IE5SRVNUT1JFOwotICAgb3V0cHV0IFE7Ci0KLSAgIFNERkNOUUQxQldQX1NQQ0FfMjQ1IHN0YXRlX3JlbWFwICguU0koU0kpLCAKLQkuU0UoU0UpLCAKLQkuUShRKSwgCi0JLkQoRCksIAotCS5DUChDUCksIAotCS5DRE4oQ0ROKSk7Ci1lbmRtb2R1bGUKLQotbW9kdWxlIFNERkNOUUQxQldQX1NQQ0FfMjQ2ICgKLQlTSSwgCi0JU0UsIAotCVEsIAotCUQsIAotCUNQLCAKLQlDRE4pOwotICAgaW5wdXQgU0k7Ci0gICBpbnB1dCBTRTsKLSAgIG91dHB1dCBROwotICAgaW5wdXQgRDsKLSAgIGlucHV0IENQOwotICAgaW5wdXQgQ0ROOwotCi0gICBTREZGUlg0IERGRiAoLlNJKFNJKSwgCi0JLlNFKFNFKSwgCi0JLlJOKENETiksIAotCS5RKFEpLCAKLQkuRChEKSwgCi0JLkNLKENQKSk7Ci1lbmRtb2R1bGUKLQotbW9kdWxlIFJTREZDU1JIRDJCV1BfUkVNQVBfU1BDXzE2NCAoCi0JQ0ROLCAKLQlTRE4sIAotCUNQLCAKLQlELCAKLQlTSSwgCi0JU0UsIAotCVNBVkUsIAotCU5SRVNUT1JFLCAKLQlRKTsKLSAgIGlucHV0IENETjsKLSAgIGlucHV0IFNETjsKLSAgIGlucHV0IENQOwotICAgaW5wdXQgRDsKLSAgIGlucHV0IFNJOwotICAgaW5wdXQgU0U7Ci0gICBpbnB1dCBTQVZFOwotICAgaW5wdXQgTlJFU1RPUkU7Ci0gICBvdXRwdXQgUTsKLQotICAgU0RGQ05RRDFCV1BfU1BDQV8yNDYgc3RhdGVfcmVtYXAgKC5TSShTSSksIAotCS5TRShTRSksIAotCS5RKFEpLCAKLQkuRChEKSwgCi0JLkNQKENQKSwgCi0JLkNETihDRE4pKTsKLWVuZG1vZHVsZQotCi1tb2R1bGUgU0RGQ05RRDFCV1BfU1BDQV8yNDcgKAotCVNJLCAKLQlTRSwgCi0JUSwgCi0JRCwgCi0JQ1AsIAotCUNETik7Ci0gICBpbnB1dCBTSTsKLSAgIGlucHV0IFNFOwotICAgb3V0cHV0IFE7Ci0gICBpbnB1dCBEOwotICAgaW5wdXQgQ1A7Ci0gICBpbnB1dCBDRE47Ci0KLSAgIFNERkZSWDQgREZGICguU0koU0kpLCAKLQkuU0UoU0UpLCAKLQkuUk4oQ0ROKSwgCi0JLlEoUSksIAotCS5EKEQpLCAKLQkuQ0soQ1ApKTsKLWVuZG1vZHVsZQotCi1tb2R1bGUgUlNERkNTUkhEMkJXUF9SRU1BUF9TUENfMTY1ICgKLQlDRE4sIAotCVNETiwgCi0JQ1AsIAotCUQsIAotCVNJLCAKLQlTRSwgCi0JU0FWRSwgCi0JTlJFU1RPUkUsIAotCVEpOwotICAgaW5wdXQgQ0ROOwotICAgaW5wdXQgU0ROOwotICAgaW5wdXQgQ1A7Ci0gICBpbnB1dCBEOwotICAgaW5wdXQgU0k7Ci0gICBpbnB1dCBTRTsKLSAgIGlucHV0IFNBVkU7Ci0gICBpbnB1dCBOUkVTVE9SRTsKLSAgIG91dHB1dCBROwotCi0gICBTREZDTlFEMUJXUF9TUENBXzI0NyBzdGF0ZV9yZW1hcCAoLlNJKFNJKSwgCi0JLlNFKFNFKSwgCi0JLlEoUSksIAotCS5EKEQpLCAKLQkuQ1AoQ1ApLCAKLQkuQ0ROKENETikpOwotZW5kbW9kdWxlCi0KLW1vZHVsZSBTREZDTlFEMUJXUF9TUENBXzI0OCAoCi0JU0ksIAotCVNFLCAKLQlRLCAKLQlELCAKLQlDUCwgCi0JQ0ROKTsKLSAgIGlucHV0IFNJOwotICAgaW5wdXQgU0U7Ci0gICBvdXRwdXQgUTsKLSAgIGlucHV0IEQ7Ci0gICBpbnB1dCBDUDsKLSAgIGlucHV0IENETjsKLQotICAgU0RGRlJYNCBERkYgKC5TSShTSSksIAotCS5TRShTRSksIAotCS5STihDRE4pLCAKLQkuUShRKSwgCi0JLkQoRCksIAotCS5DSyhDUCkpOwotZW5kbW9kdWxlCi0KLW1vZHVsZSBSU0RGQ1NSSEQyQldQX1JFTUFQX1NQQ18xNjYgKAotCUNETiwgCi0JU0ROLCAKLQlDUCwgCi0JRCwgCi0JU0ksIAotCVNFLCAKLQlTQVZFLCAKLQlOUkVTVE9SRSwgCi0JUSk7Ci0gICBpbnB1dCBDRE47Ci0gICBpbnB1dCBTRE47Ci0gICBpbnB1dCBDUDsKLSAgIGlucHV0IEQ7Ci0gICBpbnB1dCBTSTsKLSAgIGlucHV0IFNFOwotICAgaW5wdXQgU0FWRTsKLSAgIGlucHV0IE5SRVNUT1JFOwotICAgb3V0cHV0IFE7Ci0KLSAgIFNERkNOUUQxQldQX1NQQ0FfMjQ4IHN0YXRlX3JlbWFwICguU0koU0kpLCAKLQkuU0UoU0UpLCAKLQkuUShRKSwgCi0JLkQoRCksIAotCS5DUChDUCksIAotCS5DRE4oQ0ROKSk7Ci1lbmRtb2R1bGUKLQotbW9kdWxlIFNERkNOUUQxQldQX1NQQ0FfMjQ5ICgKLQlTSSwgCi0JU0UsIAotCVEsIAotCUQsIAotCUNQLCAKLQlDRE4pOwotICAgaW5wdXQgU0k7Ci0gICBpbnB1dCBTRTsKLSAgIG91dHB1dCBROwotICAgaW5wdXQgRDsKLSAgIGlucHV0IENQOwotICAgaW5wdXQgQ0ROOwotCi0gICBTREZGUlg0IERGRiAoLlNJKFNJKSwgCi0JLlNFKFNFKSwgCi0JLlJOKENETiksIAotCS5RKFEpLCAKLQkuRChEKSwgCi0JLkNLKENQKSk7Ci1lbmRtb2R1bGUKLQotbW9kdWxlIFJTREZDU1JIRDJCV1BfUkVNQVBfU1BDXzE2NyAoCi0JQ0ROLCAKLQlTRE4sIAotCUNQLCAKLQlELCAKLQlTSSwgCi0JU0UsIAotCVNBVkUsIAotCU5SRVNUT1JFLCAKLQlRKTsKLSAgIGlucHV0IENETjsKLSAgIGlucHV0IFNETjsKLSAgIGlucHV0IENQOwotICAgaW5wdXQgRDsKLSAgIGlucHV0IFNJOwotICAgaW5wdXQgU0U7Ci0gICBpbnB1dCBTQVZFOwotICAgaW5wdXQgTlJFU1RPUkU7Ci0gICBvdXRwdXQgUTsKLQotICAgU0RGQ05RRDFCV1BfU1BDQV8yNDkgc3RhdGVfcmVtYXAgKC5TSShTSSksIAotCS5TRShTRSksIAotCS5RKFEpLCAKLQkuRChEKSwgCi0JLkNQKENQKSwgCi0JLkNETihDRE4pKTsKLWVuZG1vZHVsZQotCi1tb2R1bGUgU0RGQ05RRDFCV1BfU1BDQV8yNTAgKAotCVNJLCAKLQlTRSwgCi0JUSwgCi0JRCwgCi0JQ1AsIAotCUNETik7Ci0gICBpbnB1dCBTSTsKLSAgIGlucHV0IFNFOwotICAgb3V0cHV0IFE7Ci0gICBpbnB1dCBEOwotICAgaW5wdXQgQ1A7Ci0gICBpbnB1dCBDRE47Ci0KLSAgIFNERkZSWDQgREZGICguU0koU0kpLCAKLQkuU0UoU0UpLCAKLQkuUk4oQ0ROKSwgCi0JLlEoUSksIAotCS5EKEQpLCAKLQkuQ0soQ1ApKTsKLWVuZG1vZHVsZQotCi1tb2R1bGUgUlNERkNTUkhEMkJXUF9SRU1BUF9TUENfMTY4ICgKLQlDRE4sIAotCVNETiwgCi0JQ1AsIAotCUQsIAotCVNJLCAKLQlTRSwgCi0JU0FWRSwgCi0JTlJFU1RPUkUsIAotCVEpOwotICAgaW5wdXQgQ0ROOwotICAgaW5wdXQgU0ROOwotICAgaW5wdXQgQ1A7Ci0gICBpbnB1dCBEOwotICAgaW5wdXQgU0k7Ci0gICBpbnB1dCBTRTsKLSAgIGlucHV0IFNBVkU7Ci0gICBpbnB1dCBOUkVTVE9SRTsKLSAgIG91dHB1dCBROwotCi0gICBTREZDTlFEMUJXUF9TUENBXzI1MCBzdGF0ZV9yZW1hcCAoLlNJKFNJKSwgCi0JLlNFKFNFKSwgCi0JLlEoUSksIAotCS5EKEQpLCAKLQkuQ1AoQ1ApLCAKLQkuQ0ROKENETikpOwotZW5kbW9kdWxlCi0KLW1vZHVsZSBTREZDTlFEMUJXUF9TUENBXzI1MSAoCi0JU0ksIAotCVNFLCAKLQlRLCAKLQlELCAKLQlDUCwgCi0JQ0ROKTsKLSAgIGlucHV0IFNJOwotICAgaW5wdXQgU0U7Ci0gICBvdXRwdXQgUTsKLSAgIGlucHV0IEQ7Ci0gICBpbnB1dCBDUDsKLSAgIGlucHV0IENETjsKLQotICAgU0RGRlJYNCBERkYgKC5TSShTSSksIAotCS5TRShTRSksIAotCS5STihDRE4pLCAKLQkuUShRKSwgCi0JLkQoRCksIAotCS5DSyhDUCkpOwotZW5kbW9kdWxlCi0KLW1vZHVsZSBSU0RGQ1NSSEQyQldQX1JFTUFQX1NQQ18xNjkgKAotCUNETiwgCi0JU0ROLCAKLQlDUCwgCi0JRCwgCi0JU0ksIAotCVNFLCAKLQlTQVZFLCAKLQlOUkVTVE9SRSwgCi0JUSk7Ci0gICBpbnB1dCBDRE47Ci0gICBpbnB1dCBTRE47Ci0gICBpbnB1dCBDUDsKLSAgIGlucHV0IEQ7Ci0gICBpbnB1dCBTSTsKLSAgIGlucHV0IFNFOwotICAgaW5wdXQgU0FWRTsKLSAgIGlucHV0IE5SRVNUT1JFOwotICAgb3V0cHV0IFE7Ci0KLSAgIFNERkNOUUQxQldQX1NQQ0FfMjUxIHN0YXRlX3JlbWFwICguU0koU0kpLCAKLQkuU0UoU0UpLCAKLQkuUShRKSwgCi0JLkQoRCksIAotCS5DUChDUCksIAotCS5DRE4oQ0ROKSk7Ci1lbmRtb2R1bGUKLQotbW9kdWxlIFNERkNOUUQxQldQX1NQQ0FfMjUyICgKLQlTSSwgCi0JU0UsIAotCVEsIAotCUQsIAotCUNQLCAKLQlDRE4pOwotICAgaW5wdXQgU0k7Ci0gICBpbnB1dCBTRTsKLSAgIG91dHB1dCBROwotICAgaW5wdXQgRDsKLSAgIGlucHV0IENQOwotICAgaW5wdXQgQ0ROOwotCi0gICBTREZGUlg0IERGRiAoLlNJKFNJKSwgCi0JLlNFKFNFKSwgCi0JLlJOKENETiksIAotCS5RKFEpLCAKLQkuRChEKSwgCi0JLkNLKENQKSk7Ci1lbmRtb2R1bGUKLQotbW9kdWxlIFJTREZDU1JIRDJCV1BfUkVNQVBfU1BDXzE3MCAoCi0JQ0ROLCAKLQlTRE4sIAotCUNQLCAKLQlELCAKLQlTSSwgCi0JU0UsIAotCVNBVkUsIAotCU5SRVNUT1JFLCAKLQlRKTsKLSAgIGlucHV0IENETjsKLSAgIGlucHV0IFNETjsKLSAgIGlucHV0IENQOwotICAgaW5wdXQgRDsKLSAgIGlucHV0IFNJOwotICAgaW5wdXQgU0U7Ci0gICBpbnB1dCBTQVZFOwotICAgaW5wdXQgTlJFU1RPUkU7Ci0gICBvdXRwdXQgUTsKLQotICAgU0RGQ05RRDFCV1BfU1BDQV8yNTIgc3RhdGVfcmVtYXAgKC5TSShTSSksIAotCS5TRShTRSksIAotCS5RKFEpLCAKLQkuRChEKSwgCi0JLkNQKENQKSwgCi0JLkNETihDRE4pKTsKLWVuZG1vZHVsZQotCi1tb2R1bGUgU0RGQ05RRDFCV1BfU1BDQV8yNTMgKAotCVNJLCAKLQlTRSwgCi0JUSwgCi0JRCwgCi0JQ1AsIAotCUNETik7Ci0gICBpbnB1dCBTSTsKLSAgIGlucHV0IFNFOwotICAgb3V0cHV0IFE7Ci0gICBpbnB1dCBEOwotICAgaW5wdXQgQ1A7Ci0gICBpbnB1dCBDRE47Ci0KLSAgIFNERkZSWDQgREZGICguU0koU0kpLCAKLQkuU0UoU0UpLCAKLQkuUk4oQ0ROKSwgCi0JLlEoUSksIAotCS5EKEQpLCAKLQkuQ0soQ1ApKTsKLWVuZG1vZHVsZQotCi1tb2R1bGUgUlNERkNTUkhEMkJXUF9SRU1BUF9TUENfMTcxICgKLQlDRE4sIAotCVNETiwgCi0JQ1AsIAotCUQsIAotCVNJLCAKLQlTRSwgCi0JU0FWRSwgCi0JTlJFU1RPUkUsIAotCVEpOwotICAgaW5wdXQgQ0ROOwotICAgaW5wdXQgU0ROOwotICAgaW5wdXQgQ1A7Ci0gICBpbnB1dCBEOwotICAgaW5wdXQgU0k7Ci0gICBpbnB1dCBTRTsKLSAgIGlucHV0IFNBVkU7Ci0gICBpbnB1dCBOUkVTVE9SRTsKLSAgIG91dHB1dCBROwotCi0gICBTREZDTlFEMUJXUF9TUENBXzI1MyBzdGF0ZV9yZW1hcCAoLlNJKFNJKSwgCi0JLlNFKFNFKSwgCi0JLlEoUSksIAotCS5EKEQpLCAKLQkuQ1AoQ1ApLCAKLQkuQ0ROKENETikpOwotZW5kbW9kdWxlCi0KLW1vZHVsZSBTREZDTlFEMUJXUF9TUENBXzI1NCAoCi0JU0ksIAotCVNFLCAKLQlRLCAKLQlELCAKLQlDUCwgCi0JQ0ROKTsKLSAgIGlucHV0IFNJOwotICAgaW5wdXQgU0U7Ci0gICBvdXRwdXQgUTsKLSAgIGlucHV0IEQ7Ci0gICBpbnB1dCBDUDsKLSAgIGlucHV0IENETjsKLQotICAgU0RGRlJYNCBERkYgKC5TSShTSSksIAotCS5TRShTRSksIAotCS5STihDRE4pLCAKLQkuUShRKSwgCi0JLkQoRCksIAotCS5DSyhDUCkpOwotZW5kbW9kdWxlCi0KLW1vZHVsZSBSU0RGQ1NSSEQyQldQX1JFTUFQX1NQQ18xNzIgKAotCUNETiwgCi0JU0ROLCAKLQlDUCwgCi0JRCwgCi0JU0ksIAotCVNFLCAKLQlTQVZFLCAKLQlOUkVTVE9SRSwgCi0JUSk7Ci0gICBpbnB1dCBDRE47Ci0gICBpbnB1dCBTRE47Ci0gICBpbnB1dCBDUDsKLSAgIGlucHV0IEQ7Ci0gICBpbnB1dCBTSTsKLSAgIGlucHV0IFNFOwotICAgaW5wdXQgU0FWRTsKLSAgIGlucHV0IE5SRVNUT1JFOwotICAgb3V0cHV0IFE7Ci0KLSAgIFNERkNOUUQxQldQX1NQQ0FfMjU0IHN0YXRlX3JlbWFwICguU0koU0kpLCAKLQkuU0UoU0UpLCAKLQkuUShRKSwgCi0JLkQoRCksIAotCS5DUChDUCksIAotCS5DRE4oQ0ROKSk7Ci1lbmRtb2R1bGUKLQotbW9kdWxlIFNERkNOUUQxQldQX1NQQ0FfMjU1ICgKLQlTSSwgCi0JU0UsIAotCVEsIAotCUQsIAotCUNQLCAKLQlDRE4pOwotICAgaW5wdXQgU0k7Ci0gICBpbnB1dCBTRTsKLSAgIG91dHB1dCBROwotICAgaW5wdXQgRDsKLSAgIGlucHV0IENQOwotICAgaW5wdXQgQ0ROOwotCi0gICAvLyBJbnRlcm5hbCB3aXJlcwotICAgd2lyZSBMVElFSElfTkVUOwotCi0gICBUSUVISSBMVElFSEkgKC5ZKExUSUVISV9ORVQpKTsKLSAgIFNERkZSWDQgREZGICguU0koU0kpLCAKLQkuU0UoU0UpLCAKLQkuUk4oTFRJRUhJX05FVCksIAotCS5RKFEpLCAKLQkuRChEKSwgCi0JLkNLKENQKSk7Ci1lbmRtb2R1bGUKLQotbW9kdWxlIFJTREZDU1JIRDJCV1BfUkVNQVBfU1BDXzE3MyAoCi0JQ0ROLCAKLQlTRE4sIAotCUNQLCAKLQlELCAKLQlTSSwgCi0JU0UsIAotCVNBVkUsIAotCU5SRVNUT1JFLCAKLQlRKTsKLSAgIGlucHV0IENETjsKLSAgIGlucHV0IFNETjsKLSAgIGlucHV0IENQOwotICAgaW5wdXQgRDsKLSAgIGlucHV0IFNJOwotICAgaW5wdXQgU0U7Ci0gICBpbnB1dCBTQVZFOwotICAgaW5wdXQgTlJFU1RPUkU7Ci0gICBvdXRwdXQgUTsKLQotICAgU0RGQ05RRDFCV1BfU1BDQV8yNTUgc3RhdGVfcmVtYXAgKC5TSShTSSksIAotCS5TRShTRSksIAotCS5RKFEpLCAKLQkuRChEKSwgCi0JLkNQKENQKSwgCi0JLkNETigxJ2IxKSk7Ci1lbmRtb2R1bGUKLQotbW9kdWxlIFNERkNOUUQxQldQX1NQQ0FfMjU2ICgKLQlTSSwgCi0JU0UsIAotCVEsIAotCUQsIAotCUNQLCAKLQlDRE4pOwotICAgaW5wdXQgU0k7Ci0gICBpbnB1dCBTRTsKLSAgIG91dHB1dCBROwotICAgaW5wdXQgRDsKLSAgIGlucHV0IENQOwotICAgaW5wdXQgQ0ROOwotCi0gICAvLyBJbnRlcm5hbCB3aXJlcwotICAgd2lyZSBMVElFSElfTkVUOwotCi0gICBUSUVISSBMVElFSEkgKC5ZKExUSUVISV9ORVQpKTsKLSAgIFNERkZSWDQgREZGICguU0koU0kpLCAKLQkuU0UoU0UpLCAKLQkuUk4oTFRJRUhJX05FVCksIAotCS5RKFEpLCAKLQkuRChEKSwgCi0JLkNLKENQKSk7Ci1lbmRtb2R1bGUKLQotbW9kdWxlIFJTREZDU1JIRDJCV1BfUkVNQVBfU1BDXzE3NCAoCi0JQ0ROLCAKLQlTRE4sIAotCUNQLCAKLQlELCAKLQlTSSwgCi0JU0UsIAotCVNBVkUsIAotCU5SRVNUT1JFLCAKLQlRKTsKLSAgIGlucHV0IENETjsKLSAgIGlucHV0IFNETjsKLSAgIGlucHV0IENQOwotICAgaW5wdXQgRDsKLSAgIGlucHV0IFNJOwotICAgaW5wdXQgU0U7Ci0gICBpbnB1dCBTQVZFOwotICAgaW5wdXQgTlJFU1RPUkU7Ci0gICBvdXRwdXQgUTsKLQotICAgU0RGQ05RRDFCV1BfU1BDQV8yNTYgc3RhdGVfcmVtYXAgKC5TSShTSSksIAotCS5TRShTRSksIAotCS5RKFEpLCAKLQkuRChEKSwgCi0JLkNQKENQKSwgCi0JLkNETigxJ2IxKSk7Ci1lbmRtb2R1bGUKLQotbW9kdWxlIFNERkNOUUQxQldQX1NQQ0FfMjU3ICgKLQlTSSwgCi0JU0UsIAotCVEsIAotCUQsIAotCUNQLCAKLQlDRE4pOwotICAgaW5wdXQgU0k7Ci0gICBpbnB1dCBTRTsKLSAgIG91dHB1dCBROwotICAgaW5wdXQgRDsKLSAgIGlucHV0IENQOwotICAgaW5wdXQgQ0ROOwotCi0gICAvLyBJbnRlcm5hbCB3aXJlcwotICAgd2lyZSBMVElFSElfTkVUOwotCi0gICBUSUVISSBMVElFSEkgKC5ZKExUSUVISV9ORVQpKTsKLSAgIFNERkZSWDQgREZGICguU0koU0kpLCAKLQkuU0UoU0UpLCAKLQkuUk4oTFRJRUhJX05FVCksIAotCS5RKFEpLCAKLQkuRChEKSwgCi0JLkNLKENQKSk7Ci1lbmRtb2R1bGUKLQotbW9kdWxlIFJTREZDU1JIRDJCV1BfUkVNQVBfU1BDXzE3NSAoCi0JQ0ROLCAKLQlTRE4sIAotCUNQLCAKLQlELCAKLQlTSSwgCi0JU0UsIAotCVNBVkUsIAotCU5SRVNUT1JFLCAKLQlRKTsKLSAgIGlucHV0IENETjsKLSAgIGlucHV0IFNETjsKLSAgIGlucHV0IENQOwotICAgaW5wdXQgRDsKLSAgIGlucHV0IFNJOwotICAgaW5wdXQgU0U7Ci0gICBpbnB1dCBTQVZFOwotICAgaW5wdXQgTlJFU1RPUkU7Ci0gICBvdXRwdXQgUTsKLQotICAgU0RGQ05RRDFCV1BfU1BDQV8yNTcgc3RhdGVfcmVtYXAgKC5TSShTSSksIAotCS5TRShTRSksIAotCS5RKFEpLCAKLQkuRChEKSwgCi0JLkNQKENQKSwgCi0JLkNETigxJ2IxKSk7Ci1lbmRtb2R1bGUKLQotbW9kdWxlIFNERkNOUUQxQldQX1NQQ0FfMjU4ICgKLQlTSSwgCi0JU0UsIAotCVEsIAotCUQsIAotCUNQLCAKLQlDRE4pOwotICAgaW5wdXQgU0k7Ci0gICBpbnB1dCBTRTsKLSAgIG91dHB1dCBROwotICAgaW5wdXQgRDsKLSAgIGlucHV0IENQOwotICAgaW5wdXQgQ0ROOwotCi0gICAvLyBJbnRlcm5hbCB3aXJlcwotICAgd2lyZSBMVElFSElfTkVUOwotCi0gICBUSUVISSBMVElFSEkgKC5ZKExUSUVISV9ORVQpKTsKLSAgIFNERkZSWDQgREZGICguU0koU0kpLCAKLQkuU0UoU0UpLCAKLQkuUk4oTFRJRUhJX05FVCksIAotCS5RKFEpLCAKLQkuRChEKSwgCi0JLkNLKENQKSk7Ci1lbmRtb2R1bGUKLQotbW9kdWxlIFJTREZDU1JIRDJCV1BfUkVNQVBfU1BDXzE3NiAoCi0JQ0ROLCAKLQlTRE4sIAotCUNQLCAKLQlELCAKLQlTSSwgCi0JU0UsIAotCVNBVkUsIAotCU5SRVNUT1JFLCAKLQlRKTsKLSAgIGlucHV0IENETjsKLSAgIGlucHV0IFNETjsKLSAgIGlucHV0IENQOwotICAgaW5wdXQgRDsKLSAgIGlucHV0IFNJOwotICAgaW5wdXQgU0U7Ci0gICBpbnB1dCBTQVZFOwotICAgaW5wdXQgTlJFU1RPUkU7Ci0gICBvdXRwdXQgUTsKLQotICAgU0RGQ05RRDFCV1BfU1BDQV8yNTggc3RhdGVfcmVtYXAgKC5TSShTSSksIAotCS5TRShTRSksIAotCS5RKFEpLCAKLQkuRChEKSwgCi0JLkNQKENQKSwgCi0JLkNETigxJ2IxKSk7Ci1lbmRtb2R1bGUKLQotbW9kdWxlIFNERkNOUUQxQldQX1NQQ0FfMjU5ICgKLQlTSSwgCi0JU0UsIAotCVEsIAotCUQsIAotCUNQLCAKLQlDRE4pOwotICAgaW5wdXQgU0k7Ci0gICBpbnB1dCBTRTsKLSAgIG91dHB1dCBROwotICAgaW5wdXQgRDsKLSAgIGlucHV0IENQOwotICAgaW5wdXQgQ0ROOwotCi0gICAvLyBJbnRlcm5hbCB3aXJlcwotICAgd2lyZSBMVElFSElfTkVUOwotCi0gICBUSUVISSBMVElFSEkgKC5ZKExUSUVISV9ORVQpKTsKLSAgIFNERkZSWDQgREZGICguU0koU0kpLCAKLQkuU0UoU0UpLCAKLQkuUk4oTFRJRUhJX05FVCksIAotCS5RKFEpLCAKLQkuRChEKSwgCi0JLkNLKENQKSk7Ci1lbmRtb2R1bGUKLQotbW9kdWxlIFJTREZDU1JIRDJCV1BfUkVNQVBfU1BDXzE3NyAoCi0JQ0ROLCAKLQlTRE4sIAotCUNQLCAKLQlELCAKLQlTSSwgCi0JU0UsIAotCVNBVkUsIAotCU5SRVNUT1JFLCAKLQlRKTsKLSAgIGlucHV0IENETjsKLSAgIGlucHV0IFNETjsKLSAgIGlucHV0IENQOwotICAgaW5wdXQgRDsKLSAgIGlucHV0IFNJOwotICAgaW5wdXQgU0U7Ci0gICBpbnB1dCBTQVZFOwotICAgaW5wdXQgTlJFU1RPUkU7Ci0gICBvdXRwdXQgUTsKLQotICAgU0RGQ05RRDFCV1BfU1BDQV8yNTkgc3RhdGVfcmVtYXAgKC5TSShTSSksIAotCS5TRShTRSksIAotCS5RKFEpLCAKLQkuRChEKSwgCi0JLkNQKENQKSwgCi0JLkNETigxJ2IxKSk7Ci1lbmRtb2R1bGUKLQotbW9kdWxlIFNERkNOUUQxQldQX1NQQ0FfMjYwICgKLQlTSSwgCi0JU0UsIAotCVEsIAotCUQsIAotCUNQLCAKLQlDRE4pOwotICAgaW5wdXQgU0k7Ci0gICBpbnB1dCBTRTsKLSAgIG91dHB1dCBROwotICAgaW5wdXQgRDsKLSAgIGlucHV0IENQOwotICAgaW5wdXQgQ0ROOwotCi0gICAvLyBJbnRlcm5hbCB3aXJlcwotICAgd2lyZSBMVElFSElfTkVUOwotCi0gICBUSUVISSBMVElFSEkgKC5ZKExUSUVISV9ORVQpKTsKLSAgIFNERkZSWDQgREZGICguU0koU0kpLCAKLQkuU0UoU0UpLCAKLQkuUk4oTFRJRUhJX05FVCksIAotCS5RKFEpLCAKLQkuRChEKSwgCi0JLkNLKENQKSk7Ci1lbmRtb2R1bGUKLQotbW9kdWxlIFJTREZDU1JIRDJCV1BfUkVNQVBfU1BDXzE3OCAoCi0JQ0ROLCAKLQlTRE4sIAotCUNQLCAKLQlELCAKLQlTSSwgCi0JU0UsIAotCVNBVkUsIAotCU5SRVNUT1JFLCAKLQlRKTsKLSAgIGlucHV0IENETjsKLSAgIGlucHV0IFNETjsKLSAgIGlucHV0IENQOwotICAgaW5wdXQgRDsKLSAgIGlucHV0IFNJOwotICAgaW5wdXQgU0U7Ci0gICBpbnB1dCBTQVZFOwotICAgaW5wdXQgTlJFU1RPUkU7Ci0gICBvdXRwdXQgUTsKLQotICAgU0RGQ05RRDFCV1BfU1BDQV8yNjAgc3RhdGVfcmVtYXAgKC5TSShTSSksIAotCS5TRShTRSksIAotCS5RKFEpLCAKLQkuRChEKSwgCi0JLkNQKENQKSwgCi0JLkNETigxJ2IxKSk7Ci1lbmRtb2R1bGUKLQotbW9kdWxlIFNERkNOUUQxQldQX1NQQ0FfMjYxICgKLQlTSSwgCi0JU0UsIAotCVEsIAotCUQsIAotCUNQLCAKLQlDRE4pOwotICAgaW5wdXQgU0k7Ci0gICBpbnB1dCBTRTsKLSAgIG91dHB1dCBROwotICAgaW5wdXQgRDsKLSAgIGlucHV0IENQOwotICAgaW5wdXQgQ0ROOwotCi0gICAvLyBJbnRlcm5hbCB3aXJlcwotICAgd2lyZSBMVElFSElfTkVUOwotCi0gICBUSUVISSBMVElFSEkgKC5ZKExUSUVISV9ORVQpKTsKLSAgIFNERkZSWDQgREZGICguU0koU0kpLCAKLQkuU0UoU0UpLCAKLQkuUk4oTFRJRUhJX05FVCksIAotCS5RKFEpLCAKLQkuRChEKSwgCi0JLkNLKENQKSk7Ci1lbmRtb2R1bGUKLQotbW9kdWxlIFJTREZDU1JIRDJCV1BfUkVNQVBfU1BDXzE3OSAoCi0JQ0ROLCAKLQlTRE4sIAotCUNQLCAKLQlELCAKLQlTSSwgCi0JU0UsIAotCVNBVkUsIAotCU5SRVNUT1JFLCAKLQlRKTsKLSAgIGlucHV0IENETjsKLSAgIGlucHV0IFNETjsKLSAgIGlucHV0IENQOwotICAgaW5wdXQgRDsKLSAgIGlucHV0IFNJOwotICAgaW5wdXQgU0U7Ci0gICBpbnB1dCBTQVZFOwotICAgaW5wdXQgTlJFU1RPUkU7Ci0gICBvdXRwdXQgUTsKLQotICAgU0RGQ05RRDFCV1BfU1BDQV8yNjEgc3RhdGVfcmVtYXAgKC5TSShTSSksIAotCS5TRShTRSksIAotCS5RKFEpLCAKLQkuRChEKSwgCi0JLkNQKENQKSwgCi0JLkNETigxJ2IxKSk7Ci1lbmRtb2R1bGUKLQotbW9kdWxlIFNERkNOUUQxQldQX1NQQ0FfMjYyICgKLQlTSSwgCi0JU0UsIAotCVEsIAotCUQsIAotCUNQLCAKLQlDRE4pOwotICAgaW5wdXQgU0k7Ci0gICBpbnB1dCBTRTsKLSAgIG91dHB1dCBROwotICAgaW5wdXQgRDsKLSAgIGlucHV0IENQOwotICAgaW5wdXQgQ0ROOwotCi0gICAvLyBJbnRlcm5hbCB3aXJlcwotICAgd2lyZSBMVElFSElfTkVUOwotCi0gICBUSUVISSBMVElFSEkgKC5ZKExUSUVISV9ORVQpKTsKLSAgIFNERkZSWDQgREZGICguU0koU0kpLCAKLQkuU0UoU0UpLCAKLQkuUk4oTFRJRUhJX05FVCksIAotCS5RKFEpLCAKLQkuRChEKSwgCi0JLkNLKENQKSk7Ci1lbmRtb2R1bGUKLQotbW9kdWxlIFJTREZDU1JIRDJCV1BfUkVNQVBfU1BDXzE4MCAoCi0JQ0ROLCAKLQlTRE4sIAotCUNQLCAKLQlELCAKLQlTSSwgCi0JU0UsIAotCVNBVkUsIAotCU5SRVNUT1JFLCAKLQlRKTsKLSAgIGlucHV0IENETjsKLSAgIGlucHV0IFNETjsKLSAgIGlucHV0IENQOwotICAgaW5wdXQgRDsKLSAgIGlucHV0IFNJOwotICAgaW5wdXQgU0U7Ci0gICBpbnB1dCBTQVZFOwotICAgaW5wdXQgTlJFU1RPUkU7Ci0gICBvdXRwdXQgUTsKLQotICAgU0RGQ05RRDFCV1BfU1BDQV8yNjIgc3RhdGVfcmVtYXAgKC5TSShTSSksIAotCS5TRShTRSksIAotCS5RKFEpLCAKLQkuRChEKSwgCi0JLkNQKENQKSwgCi0JLkNETigxJ2IxKSk7Ci1lbmRtb2R1bGUKLQotbW9kdWxlIFNERkNOUUQxQldQX1NQQ0FfMjYzICgKLQlTSSwgCi0JU0UsIAotCVEsIAotCUQsIAotCUNQLCAKLQlDRE4pOwotICAgaW5wdXQgU0k7Ci0gICBpbnB1dCBTRTsKLSAgIG91dHB1dCBROwotICAgaW5wdXQgRDsKLSAgIGlucHV0IENQOwotICAgaW5wdXQgQ0ROOwotCi0gICAvLyBJbnRlcm5hbCB3aXJlcwotICAgd2lyZSBMVElFSElfTkVUOwotCi0gICBUSUVISSBMVElFSEkgKC5ZKExUSUVISV9ORVQpKTsKLSAgIFNERkZSWDQgREZGICguU0koU0kpLCAKLQkuU0UoU0UpLCAKLQkuUk4oTFRJRUhJX05FVCksIAotCS5RKFEpLCAKLQkuRChEKSwgCi0JLkNLKENQKSk7Ci1lbmRtb2R1bGUKLQotbW9kdWxlIFJTREZDU1JIRDJCV1BfUkVNQVBfU1BDXzE4MSAoCi0JQ0ROLCAKLQlTRE4sIAotCUNQLCAKLQlELCAKLQlTSSwgCi0JU0UsIAotCVNBVkUsIAotCU5SRVNUT1JFLCAKLQlRKTsKLSAgIGlucHV0IENETjsKLSAgIGlucHV0IFNETjsKLSAgIGlucHV0IENQOwotICAgaW5wdXQgRDsKLSAgIGlucHV0IFNJOwotICAgaW5wdXQgU0U7Ci0gICBpbnB1dCBTQVZFOwotICAgaW5wdXQgTlJFU1RPUkU7Ci0gICBvdXRwdXQgUTsKLQotICAgU0RGQ05RRDFCV1BfU1BDQV8yNjMgc3RhdGVfcmVtYXAgKC5TSShTSSksIAotCS5TRShTRSksIAotCS5RKFEpLCAKLQkuRChEKSwgCi0JLkNQKENQKSwgCi0JLkNETigxJ2IxKSk7Ci1lbmRtb2R1bGUKLQotbW9kdWxlIFNERkNOUUQxQldQX1NQQ0FfMjY0ICgKLQlTSSwgCi0JU0UsIAotCVEsIAotCUQsIAotCUNQLCAKLQlDRE4pOwotICAgaW5wdXQgU0k7Ci0gICBpbnB1dCBTRTsKLSAgIG91dHB1dCBROwotICAgaW5wdXQgRDsKLSAgIGlucHV0IENQOwotICAgaW5wdXQgQ0ROOwotCi0gICBTREZGUlg0IERGRiAoLlNJKFNJKSwgCi0JLlNFKFNFKSwgCi0JLlJOKENETiksIAotCS5RKFEpLCAKLQkuRChEKSwgCi0JLkNLKENQKSk7Ci1lbmRtb2R1bGUKLQotbW9kdWxlIFJTREZDU1JIRDJCV1BfUkVNQVBfU1BDXzE4MiAoCi0JQ0ROLCAKLQlTRE4sIAotCUNQLCAKLQlELCAKLQlTSSwgCi0JU0UsIAotCVNBVkUsIAotCU5SRVNUT1JFLCAKLQlRKTsKLSAgIGlucHV0IENETjsKLSAgIGlucHV0IFNETjsKLSAgIGlucHV0IENQOwotICAgaW5wdXQgRDsKLSAgIGlucHV0IFNJOwotICAgaW5wdXQgU0U7Ci0gICBpbnB1dCBTQVZFOwotICAgaW5wdXQgTlJFU1RPUkU7Ci0gICBvdXRwdXQgUTsKLQotICAgU0RGQ05RRDFCV1BfU1BDQV8yNjQgc3RhdGVfcmVtYXAgKC5TSShTSSksIAotCS5TRShTRSksIAotCS5RKFEpLCAKLQkuRChEKSwgCi0JLkNQKENQKSwgCi0JLkNETihDRE4pKTsKLWVuZG1vZHVsZQotCi1tb2R1bGUgU0RGQ05RRDFCV1BfU1BDQV8yNjUgKAotCVNJLCAKLQlTRSwgCi0JUSwgCi0JRCwgCi0JQ1AsIAotCUNETik7Ci0gICBpbnB1dCBTSTsKLSAgIGlucHV0IFNFOwotICAgb3V0cHV0IFE7Ci0gICBpbnB1dCBEOwotICAgaW5wdXQgQ1A7Ci0gICBpbnB1dCBDRE47Ci0KLSAgIFNERkZSWDQgREZGICguU0koU0kpLCAKLQkuU0UoU0UpLCAKLQkuUk4oQ0ROKSwgCi0JLlEoUSksIAotCS5EKEQpLCAKLQkuQ0soQ1ApKTsKLWVuZG1vZHVsZQotCi1tb2R1bGUgUlNERkNTUkhEMkJXUF9SRU1BUF9TUENfMTgzICgKLQlDRE4sIAotCVNETiwgCi0JQ1AsIAotCUQsIAotCVNJLCAKLQlTRSwgCi0JU0FWRSwgCi0JTlJFU1RPUkUsIAotCVEpOwotICAgaW5wdXQgQ0ROOwotICAgaW5wdXQgU0ROOwotICAgaW5wdXQgQ1A7Ci0gICBpbnB1dCBEOwotICAgaW5wdXQgU0k7Ci0gICBpbnB1dCBTRTsKLSAgIGlucHV0IFNBVkU7Ci0gICBpbnB1dCBOUkVTVE9SRTsKLSAgIG91dHB1dCBROwotCi0gICBTREZDTlFEMUJXUF9TUENBXzI2NSBzdGF0ZV9yZW1hcCAoLlNJKFNJKSwgCi0JLlNFKFNFKSwgCi0JLlEoUSksIAotCS5EKEQpLCAKLQkuQ1AoQ1ApLCAKLQkuQ0ROKENETikpOwotZW5kbW9kdWxlCi0KLW1vZHVsZSBTREZDTlFEMUJXUF9TUENBXzI2NiAoCi0JU0ksIAotCVNFLCAKLQlRLCAKLQlELCAKLQlDUCwgCi0JQ0ROKTsKLSAgIGlucHV0IFNJOwotICAgaW5wdXQgU0U7Ci0gICBvdXRwdXQgUTsKLSAgIGlucHV0IEQ7Ci0gICBpbnB1dCBDUDsKLSAgIGlucHV0IENETjsKLQotICAgU0RGRlJYNCBERkYgKC5TSShTSSksIAotCS5TRShTRSksIAotCS5STihDRE4pLCAKLQkuUShRKSwgCi0JLkQoRCksIAotCS5DSyhDUCkpOwotZW5kbW9kdWxlCi0KLW1vZHVsZSBSU0RGQ1NSSEQyQldQX1JFTUFQX1NQQ18xODQgKAotCUNETiwgCi0JU0ROLCAKLQlDUCwgCi0JRCwgCi0JU0ksIAotCVNFLCAKLQlTQVZFLCAKLQlOUkVTVE9SRSwgCi0JUSk7Ci0gICBpbnB1dCBDRE47Ci0gICBpbnB1dCBTRE47Ci0gICBpbnB1dCBDUDsKLSAgIGlucHV0IEQ7Ci0gICBpbnB1dCBTSTsKLSAgIGlucHV0IFNFOwotICAgaW5wdXQgU0FWRTsKLSAgIGlucHV0IE5SRVNUT1JFOwotICAgb3V0cHV0IFE7Ci0KLSAgIFNERkNOUUQxQldQX1NQQ0FfMjY2IHN0YXRlX3JlbWFwICguU0koU0kpLCAKLQkuU0UoU0UpLCAKLQkuUShRKSwgCi0JLkQoRCksIAotCS5DUChDUCksIAotCS5DRE4oQ0ROKSk7Ci1lbmRtb2R1bGUKLQotbW9kdWxlIFNERkNOUUQxQldQX1NQQ0FfMjY3ICgKLQlTSSwgCi0JU0UsIAotCVEsIAotCUQsIAotCUNQLCAKLQlDRE4pOwotICAgaW5wdXQgU0k7Ci0gICBpbnB1dCBTRTsKLSAgIG91dHB1dCBROwotICAgaW5wdXQgRDsKLSAgIGlucHV0IENQOwotICAgaW5wdXQgQ0ROOwotCi0gICBTREZGUlg0IERGRiAoLlNJKFNJKSwgCi0JLlNFKFNFKSwgCi0JLlJOKENETiksIAotCS5RKFEpLCAKLQkuRChEKSwgCi0JLkNLKENQKSk7Ci1lbmRtb2R1bGUKLQotbW9kdWxlIFJTREZDU1JIRDJCV1BfUkVNQVBfU1BDXzE4NSAoCi0JQ0ROLCAKLQlTRE4sIAotCUNQLCAKLQlELCAKLQlTSSwgCi0JU0UsIAotCVNBVkUsIAotCU5SRVNUT1JFLCAKLQlRKTsKLSAgIGlucHV0IENETjsKLSAgIGlucHV0IFNETjsKLSAgIGlucHV0IENQOwotICAgaW5wdXQgRDsKLSAgIGlucHV0IFNJOwotICAgaW5wdXQgU0U7Ci0gICBpbnB1dCBTQVZFOwotICAgaW5wdXQgTlJFU1RPUkU7Ci0gICBvdXRwdXQgUTsKLQotICAgU0RGQ05RRDFCV1BfU1BDQV8yNjcgc3RhdGVfcmVtYXAgKC5TSShTSSksIAotCS5TRShTRSksIAotCS5RKFEpLCAKLQkuRChEKSwgCi0JLkNQKENQKSwgCi0JLkNETihDRE4pKTsKLWVuZG1vZHVsZQotCi1tb2R1bGUgU0RGQ05RRDFCV1BfU1BDQV8yNjggKAotCVNJLCAKLQlTRSwgCi0JUSwgCi0JRCwgCi0JQ1AsIAotCUNETik7Ci0gICBpbnB1dCBTSTsKLSAgIGlucHV0IFNFOwotICAgb3V0cHV0IFE7Ci0gICBpbnB1dCBEOwotICAgaW5wdXQgQ1A7Ci0gICBpbnB1dCBDRE47Ci0KLSAgIFNERkZSWDQgREZGICguU0koU0kpLCAKLQkuU0UoU0UpLCAKLQkuUk4oQ0ROKSwgCi0JLlEoUSksIAotCS5EKEQpLCAKLQkuQ0soQ1ApKTsKLWVuZG1vZHVsZQotCi1tb2R1bGUgUlNERkNTUkhEMkJXUF9SRU1BUF9TUENfMTg2ICgKLQlDRE4sIAotCVNETiwgCi0JQ1AsIAotCUQsIAotCVNJLCAKLQlTRSwgCi0JU0FWRSwgCi0JTlJFU1RPUkUsIAotCVEpOwotICAgaW5wdXQgQ0ROOwotICAgaW5wdXQgU0ROOwotICAgaW5wdXQgQ1A7Ci0gICBpbnB1dCBEOwotICAgaW5wdXQgU0k7Ci0gICBpbnB1dCBTRTsKLSAgIGlucHV0IFNBVkU7Ci0gICBpbnB1dCBOUkVTVE9SRTsKLSAgIG91dHB1dCBROwotCi0gICBTREZDTlFEMUJXUF9TUENBXzI2OCBzdGF0ZV9yZW1hcCAoLlNJKFNJKSwgCi0JLlNFKFNFKSwgCi0JLlEoUSksIAotCS5EKEQpLCAKLQkuQ1AoQ1ApLCAKLQkuQ0ROKENETikpOwotZW5kbW9kdWxlCi0KLW1vZHVsZSBTREZDTlFEMUJXUF9TUENBXzI2OSAoCi0JU0ksIAotCVNFLCAKLQlRLCAKLQlELCAKLQlDUCwgCi0JQ0ROKTsKLSAgIGlucHV0IFNJOwotICAgaW5wdXQgU0U7Ci0gICBvdXRwdXQgUTsKLSAgIGlucHV0IEQ7Ci0gICBpbnB1dCBDUDsKLSAgIGlucHV0IENETjsKLQotICAgU0RGRlJYNCBERkYgKC5TSShTSSksIAotCS5TRShTRSksIAotCS5STihDRE4pLCAKLQkuUShRKSwgCi0JLkQoRCksIAotCS5DSyhDUCkpOwotZW5kbW9kdWxlCi0KLW1vZHVsZSBSU0RGQ1NSSEQyQldQX1JFTUFQX1NQQ18xODcgKAotCUNETiwgCi0JU0ROLCAKLQlDUCwgCi0JRCwgCi0JU0ksIAotCVNFLCAKLQlTQVZFLCAKLQlOUkVTVE9SRSwgCi0JUSk7Ci0gICBpbnB1dCBDRE47Ci0gICBpbnB1dCBTRE47Ci0gICBpbnB1dCBDUDsKLSAgIGlucHV0IEQ7Ci0gICBpbnB1dCBTSTsKLSAgIGlucHV0IFNFOwotICAgaW5wdXQgU0FWRTsKLSAgIGlucHV0IE5SRVNUT1JFOwotICAgb3V0cHV0IFE7Ci0KLSAgIFNERkNOUUQxQldQX1NQQ0FfMjY5IHN0YXRlX3JlbWFwICguU0koU0kpLCAKLQkuU0UoU0UpLCAKLQkuUShRKSwgCi0JLkQoRCksIAotCS5DUChDUCksIAotCS5DRE4oQ0ROKSk7Ci1lbmRtb2R1bGUKLQotbW9kdWxlIFNERkNOUUQxQldQX1NQQ0FfMjcwICgKLQlTSSwgCi0JU0UsIAotCVEsIAotCUQsIAotCUNQLCAKLQlDRE4pOwotICAgaW5wdXQgU0k7Ci0gICBpbnB1dCBTRTsKLSAgIG91dHB1dCBROwotICAgaW5wdXQgRDsKLSAgIGlucHV0IENQOwotICAgaW5wdXQgQ0ROOwotCi0gICBTREZGUlg0IERGRiAoLlNJKFNJKSwgCi0JLlNFKFNFKSwgCi0JLlJOKENETiksIAotCS5RKFEpLCAKLQkuRChEKSwgCi0JLkNLKENQKSk7Ci1lbmRtb2R1bGUKLQotbW9kdWxlIFJTREZDU1JIRDJCV1BfUkVNQVBfU1BDXzE4OCAoCi0JQ0ROLCAKLQlTRE4sIAotCUNQLCAKLQlELCAKLQlTSSwgCi0JU0UsIAotCVNBVkUsIAotCU5SRVNUT1JFLCAKLQlRKTsKLSAgIGlucHV0IENETjsKLSAgIGlucHV0IFNETjsKLSAgIGlucHV0IENQOwotICAgaW5wdXQgRDsKLSAgIGlucHV0IFNJOwotICAgaW5wdXQgU0U7Ci0gICBpbnB1dCBTQVZFOwotICAgaW5wdXQgTlJFU1RPUkU7Ci0gICBvdXRwdXQgUTsKLQotICAgU0RGQ05RRDFCV1BfU1BDQV8yNzAgc3RhdGVfcmVtYXAgKC5TSShTSSksIAotCS5TRShTRSksIAotCS5RKFEpLCAKLQkuRChEKSwgCi0JLkNQKENQKSwgCi0JLkNETihDRE4pKTsKLWVuZG1vZHVsZQotCi1tb2R1bGUgU0RGQ05RRDFCV1BfU1BDQV8yNzEgKAotCVNJLCAKLQlTRSwgCi0JUSwgCi0JRCwgCi0JQ1AsIAotCUNETik7Ci0gICBpbnB1dCBTSTsKLSAgIGlucHV0IFNFOwotICAgb3V0cHV0IFE7Ci0gICBpbnB1dCBEOwotICAgaW5wdXQgQ1A7Ci0gICBpbnB1dCBDRE47Ci0KLSAgIFNERkZSWDQgREZGICguU0koU0kpLCAKLQkuU0UoU0UpLCAKLQkuUk4oQ0ROKSwgCi0JLlEoUSksIAotCS5EKEQpLCAKLQkuQ0soQ1ApKTsKLWVuZG1vZHVsZQotCi1tb2R1bGUgUlNERkNTUkhEMkJXUF9SRU1BUF9TUENfMTg5ICgKLQlDRE4sIAotCVNETiwgCi0JQ1AsIAotCUQsIAotCVNJLCAKLQlTRSwgCi0JU0FWRSwgCi0JTlJFU1RPUkUsIAotCVEpOwotICAgaW5wdXQgQ0ROOwotICAgaW5wdXQgU0ROOwotICAgaW5wdXQgQ1A7Ci0gICBpbnB1dCBEOwotICAgaW5wdXQgU0k7Ci0gICBpbnB1dCBTRTsKLSAgIGlucHV0IFNBVkU7Ci0gICBpbnB1dCBOUkVTVE9SRTsKLSAgIG91dHB1dCBROwotCi0gICBTREZDTlFEMUJXUF9TUENBXzI3MSBzdGF0ZV9yZW1hcCAoLlNJKFNJKSwgCi0JLlNFKFNFKSwgCi0JLlEoUSksIAotCS5EKEQpLCAKLQkuQ1AoQ1ApLCAKLQkuQ0ROKENETikpOwotZW5kbW9kdWxlCi0KLW1vZHVsZSBTREZDTlFEMUJXUF9TUENBXzI3MiAoCi0JU0ksIAotCVNFLCAKLQlRLCAKLQlELCAKLQlDUCwgCi0JQ0ROKTsKLSAgIGlucHV0IFNJOwotICAgaW5wdXQgU0U7Ci0gICBvdXRwdXQgUTsKLSAgIGlucHV0IEQ7Ci0gICBpbnB1dCBDUDsKLSAgIGlucHV0IENETjsKLQotICAgU0RGRlJYNCBERkYgKC5TSShTSSksIAotCS5TRShTRSksIAotCS5STihDRE4pLCAKLQkuUShRKSwgCi0JLkQoRCksIAotCS5DSyhDUCkpOwotZW5kbW9kdWxlCi0KLW1vZHVsZSBSU0RGQ1NSSEQyQldQX1JFTUFQX1NQQ18xOTAgKAotCUNETiwgCi0JU0ROLCAKLQlDUCwgCi0JRCwgCi0JU0ksIAotCVNFLCAKLQlTQVZFLCAKLQlOUkVTVE9SRSwgCi0JUSk7Ci0gICBpbnB1dCBDRE47Ci0gICBpbnB1dCBTRE47Ci0gICBpbnB1dCBDUDsKLSAgIGlucHV0IEQ7Ci0gICBpbnB1dCBTSTsKLSAgIGlucHV0IFNFOwotICAgaW5wdXQgU0FWRTsKLSAgIGlucHV0IE5SRVNUT1JFOwotICAgb3V0cHV0IFE7Ci0KLSAgIFNERkNOUUQxQldQX1NQQ0FfMjcyIHN0YXRlX3JlbWFwICguU0koU0kpLCAKLQkuU0UoU0UpLCAKLQkuUShRKSwgCi0JLkQoRCksIAotCS5DUChDUCksIAotCS5DRE4oQ0ROKSk7Ci1lbmRtb2R1bGUKLQotbW9kdWxlIFNERkNOUUQxQldQX1NQQ0FfMjczICgKLQlTSSwgCi0JU0UsIAotCVEsIAotCUQsIAotCUNQLCAKLQlDRE4pOwotICAgaW5wdXQgU0k7Ci0gICBpbnB1dCBTRTsKLSAgIG91dHB1dCBROwotICAgaW5wdXQgRDsKLSAgIGlucHV0IENQOwotICAgaW5wdXQgQ0ROOwotCi0gICBTREZGUlg0IERGRiAoLlNJKFNJKSwgCi0JLlNFKFNFKSwgCi0JLlJOKENETiksIAotCS5RKFEpLCAKLQkuRChEKSwgCi0JLkNLKENQKSk7Ci1lbmRtb2R1bGUKLQotbW9kdWxlIFJTREZDU1JIRDJCV1BfUkVNQVBfU1BDXzE5MSAoCi0JQ0ROLCAKLQlTRE4sIAotCUNQLCAKLQlELCAKLQlTSSwgCi0JU0UsIAotCVNBVkUsIAotCU5SRVNUT1JFLCAKLQlRKTsKLSAgIGlucHV0IENETjsKLSAgIGlucHV0IFNETjsKLSAgIGlucHV0IENQOwotICAgaW5wdXQgRDsKLSAgIGlucHV0IFNJOwotICAgaW5wdXQgU0U7Ci0gICBpbnB1dCBTQVZFOwotICAgaW5wdXQgTlJFU1RPUkU7Ci0gICBvdXRwdXQgUTsKLQotICAgU0RGQ05RRDFCV1BfU1BDQV8yNzMgc3RhdGVfcmVtYXAgKC5TSShTSSksIAotCS5TRShTRSksIAotCS5RKFEpLCAKLQkuRChEKSwgCi0JLkNQKENQKSwgCi0JLkNETihDRE4pKTsKLWVuZG1vZHVsZQotCi1tb2R1bGUgU0RGQ05RRDFCV1BfU1BDQV8yNzQgKAotCVNJLCAKLQlTRSwgCi0JUSwgCi0JRCwgCi0JQ1AsIAotCUNETik7Ci0gICBpbnB1dCBTSTsKLSAgIGlucHV0IFNFOwotICAgb3V0cHV0IFE7Ci0gICBpbnB1dCBEOwotICAgaW5wdXQgQ1A7Ci0gICBpbnB1dCBDRE47Ci0KLSAgIFNERkZSWDQgREZGICguU0koU0kpLCAKLQkuU0UoU0UpLCAKLQkuUk4oQ0ROKSwgCi0JLlEoUSksIAotCS5EKEQpLCAKLQkuQ0soQ1ApKTsKLWVuZG1vZHVsZQotCi1tb2R1bGUgUlNERkNTUkhEMkJXUF9SRU1BUF9TUENfMTkyICgKLQlDRE4sIAotCVNETiwgCi0JQ1AsIAotCUQsIAotCVNJLCAKLQlTRSwgCi0JU0FWRSwgCi0JTlJFU1RPUkUsIAotCVEpOwotICAgaW5wdXQgQ0ROOwotICAgaW5wdXQgU0ROOwotICAgaW5wdXQgQ1A7Ci0gICBpbnB1dCBEOwotICAgaW5wdXQgU0k7Ci0gICBpbnB1dCBTRTsKLSAgIGlucHV0IFNBVkU7Ci0gICBpbnB1dCBOUkVTVE9SRTsKLSAgIG91dHB1dCBROwotCi0gICBTREZDTlFEMUJXUF9TUENBXzI3NCBzdGF0ZV9yZW1hcCAoLlNJKFNJKSwgCi0JLlNFKFNFKSwgCi0JLlEoUSksIAotCS5EKEQpLCAKLQkuQ1AoQ1ApLCAKLQkuQ0ROKENETikpOwotZW5kbW9kdWxlCi0KLW1vZHVsZSBTREZDTlFEMUJXUF9TUENBXzI3NSAoCi0JU0ksIAotCVNFLCAKLQlRLCAKLQlELCAKLQlDUCwgCi0JQ0ROKTsKLSAgIGlucHV0IFNJOwotICAgaW5wdXQgU0U7Ci0gICBvdXRwdXQgUTsKLSAgIGlucHV0IEQ7Ci0gICBpbnB1dCBDUDsKLSAgIGlucHV0IENETjsKLQotICAgU0RGRlJYNCBERkYgKC5TSShTSSksIAotCS5TRShTRSksIAotCS5STihDRE4pLCAKLQkuUShRKSwgCi0JLkQoRCksIAotCS5DSyhDUCkpOwotZW5kbW9kdWxlCi0KLW1vZHVsZSBSU0RGQ1NSSEQyQldQX1JFTUFQX1NQQ18xOTMgKAotCUNETiwgCi0JU0ROLCAKLQlDUCwgCi0JRCwgCi0JU0ksIAotCVNFLCAKLQlTQVZFLCAKLQlOUkVTVE9SRSwgCi0JUSk7Ci0gICBpbnB1dCBDRE47Ci0gICBpbnB1dCBTRE47Ci0gICBpbnB1dCBDUDsKLSAgIGlucHV0IEQ7Ci0gICBpbnB1dCBTSTsKLSAgIGlucHV0IFNFOwotICAgaW5wdXQgU0FWRTsKLSAgIGlucHV0IE5SRVNUT1JFOwotICAgb3V0cHV0IFE7Ci0KLSAgIFNERkNOUUQxQldQX1NQQ0FfMjc1IHN0YXRlX3JlbWFwICguU0koU0kpLCAKLQkuU0UoU0UpLCAKLQkuUShRKSwgCi0JLkQoRCksIAotCS5DUChDUCksIAotCS5DRE4oQ0ROKSk7Ci1lbmRtb2R1bGUKLQotbW9kdWxlIFNERkNOUUQxQldQX1NQQ0FfMjc2ICgKLQlTSSwgCi0JU0UsIAotCVEsIAotCUQsIAotCUNQLCAKLQlDRE4pOwotICAgaW5wdXQgU0k7Ci0gICBpbnB1dCBTRTsKLSAgIG91dHB1dCBROwotICAgaW5wdXQgRDsKLSAgIGlucHV0IENQOwotICAgaW5wdXQgQ0ROOwotCi0gICBTREZGUlg0IERGRiAoLlNJKFNJKSwgCi0JLlNFKFNFKSwgCi0JLlJOKENETiksIAotCS5RKFEpLCAKLQkuRChEKSwgCi0JLkNLKENQKSk7Ci1lbmRtb2R1bGUKLQotbW9kdWxlIFJTREZDU1JIRDJCV1BfUkVNQVBfU1BDXzE5NCAoCi0JQ0ROLCAKLQlTRE4sIAotCUNQLCAKLQlELCAKLQlTSSwgCi0JU0UsIAotCVNBVkUsIAotCU5SRVNUT1JFLCAKLQlRKTsKLSAgIGlucHV0IENETjsKLSAgIGlucHV0IFNETjsKLSAgIGlucHV0IENQOwotICAgaW5wdXQgRDsKLSAgIGlucHV0IFNJOwotICAgaW5wdXQgU0U7Ci0gICBpbnB1dCBTQVZFOwotICAgaW5wdXQgTlJFU1RPUkU7Ci0gICBvdXRwdXQgUTsKLQotICAgU0RGQ05RRDFCV1BfU1BDQV8yNzYgc3RhdGVfcmVtYXAgKC5TSShTSSksIAotCS5TRShTRSksIAotCS5RKFEpLCAKLQkuRChEKSwgCi0JLkNQKENQKSwgCi0JLkNETihDRE4pKTsKLWVuZG1vZHVsZQotCi1tb2R1bGUgU0RGQ05RRDFCV1BfU1BDQV8yNzcgKAotCVNJLCAKLQlTRSwgCi0JUSwgCi0JRCwgCi0JQ1AsIAotCUNETik7Ci0gICBpbnB1dCBTSTsKLSAgIGlucHV0IFNFOwotICAgb3V0cHV0IFE7Ci0gICBpbnB1dCBEOwotICAgaW5wdXQgQ1A7Ci0gICBpbnB1dCBDRE47Ci0KLSAgIFNERkZSWDQgREZGICguU0koU0kpLCAKLQkuU0UoU0UpLCAKLQkuUk4oQ0ROKSwgCi0JLlEoUSksIAotCS5EKEQpLCAKLQkuQ0soQ1ApKTsKLWVuZG1vZHVsZQotCi1tb2R1bGUgUlNERkNTUkhEMkJXUF9SRU1BUF9TUENfMTk1ICgKLQlDRE4sIAotCVNETiwgCi0JQ1AsIAotCUQsIAotCVNJLCAKLQlTRSwgCi0JU0FWRSwgCi0JTlJFU1RPUkUsIAotCVEpOwotICAgaW5wdXQgQ0ROOwotICAgaW5wdXQgU0ROOwotICAgaW5wdXQgQ1A7Ci0gICBpbnB1dCBEOwotICAgaW5wdXQgU0k7Ci0gICBpbnB1dCBTRTsKLSAgIGlucHV0IFNBVkU7Ci0gICBpbnB1dCBOUkVTVE9SRTsKLSAgIG91dHB1dCBROwotCi0gICBTREZDTlFEMUJXUF9TUENBXzI3NyBzdGF0ZV9yZW1hcCAoLlNJKFNJKSwgCi0JLlNFKFNFKSwgCi0JLlEoUSksIAotCS5EKEQpLCAKLQkuQ1AoQ1ApLCAKLQkuQ0ROKENETikpOwotZW5kbW9kdWxlCi0KLW1vZHVsZSBTREZDTlFEMUJXUF9TUENBXzI3OCAoCi0JU0ksIAotCVNFLCAKLQlRLCAKLQlELCAKLQlDUCwgCi0JQ0ROKTsKLSAgIGlucHV0IFNJOwotICAgaW5wdXQgU0U7Ci0gICBvdXRwdXQgUTsKLSAgIGlucHV0IEQ7Ci0gICBpbnB1dCBDUDsKLSAgIGlucHV0IENETjsKLQotICAgU0RGRlJYNCBERkYgKC5TSShTSSksIAotCS5TRShTRSksIAotCS5STihDRE4pLCAKLQkuUShRKSwgCi0JLkQoRCksIAotCS5DSyhDUCkpOwotZW5kbW9kdWxlCi0KLW1vZHVsZSBSU0RGQ1NSSEQyQldQX1JFTUFQX1NQQ18xOTYgKAotCUNETiwgCi0JU0ROLCAKLQlDUCwgCi0JRCwgCi0JU0ksIAotCVNFLCAKLQlTQVZFLCAKLQlOUkVTVE9SRSwgCi0JUSk7Ci0gICBpbnB1dCBDRE47Ci0gICBpbnB1dCBTRE47Ci0gICBpbnB1dCBDUDsKLSAgIGlucHV0IEQ7Ci0gICBpbnB1dCBTSTsKLSAgIGlucHV0IFNFOwotICAgaW5wdXQgU0FWRTsKLSAgIGlucHV0IE5SRVNUT1JFOwotICAgb3V0cHV0IFE7Ci0KLSAgIFNERkNOUUQxQldQX1NQQ0FfMjc4IHN0YXRlX3JlbWFwICguU0koU0kpLCAKLQkuU0UoU0UpLCAKLQkuUShRKSwgCi0JLkQoRCksIAotCS5DUChDUCksIAotCS5DRE4oQ0ROKSk7Ci1lbmRtb2R1bGUKLQotbW9kdWxlIFNERkNOUUQxQldQX1NQQ0FfMjc5ICgKLQlTSSwgCi0JU0UsIAotCVEsIAotCUQsIAotCUNQLCAKLQlDRE4pOwotICAgaW5wdXQgU0k7Ci0gICBpbnB1dCBTRTsKLSAgIG91dHB1dCBROwotICAgaW5wdXQgRDsKLSAgIGlucHV0IENQOwotICAgaW5wdXQgQ0ROOwotCi0gICBTREZGUlg0IERGRiAoLlNJKFNJKSwgCi0JLlNFKFNFKSwgCi0JLlJOKENETiksIAotCS5RKFEpLCAKLQkuRChEKSwgCi0JLkNLKENQKSk7Ci1lbmRtb2R1bGUKLQotbW9kdWxlIFJTREZDU1JIRDJCV1BfUkVNQVBfU1BDXzE5NyAoCi0JQ0ROLCAKLQlTRE4sIAotCUNQLCAKLQlELCAKLQlTSSwgCi0JU0UsIAotCVNBVkUsIAotCU5SRVNUT1JFLCAKLQlRKTsKLSAgIGlucHV0IENETjsKLSAgIGlucHV0IFNETjsKLSAgIGlucHV0IENQOwotICAgaW5wdXQgRDsKLSAgIGlucHV0IFNJOwotICAgaW5wdXQgU0U7Ci0gICBpbnB1dCBTQVZFOwotICAgaW5wdXQgTlJFU1RPUkU7Ci0gICBvdXRwdXQgUTsKLQotICAgU0RGQ05RRDFCV1BfU1BDQV8yNzkgc3RhdGVfcmVtYXAgKC5TSShTSSksIAotCS5TRShTRSksIAotCS5RKFEpLCAKLQkuRChEKSwgCi0JLkNQKENQKSwgCi0JLkNETihDRE4pKTsKLWVuZG1vZHVsZQotCi1tb2R1bGUgU0RGQ05RRDFCV1BfU1BDQV8yODAgKAotCVNJLCAKLQlTRSwgCi0JUSwgCi0JRCwgCi0JQ1AsIAotCUNETik7Ci0gICBpbnB1dCBTSTsKLSAgIGlucHV0IFNFOwotICAgb3V0cHV0IFE7Ci0gICBpbnB1dCBEOwotICAgaW5wdXQgQ1A7Ci0gICBpbnB1dCBDRE47Ci0KLSAgIFNERkZSWDQgREZGICguU0koU0kpLCAKLQkuU0UoU0UpLCAKLQkuUk4oQ0ROKSwgCi0JLlEoUSksIAotCS5EKEQpLCAKLQkuQ0soQ1ApKTsKLWVuZG1vZHVsZQotCi1tb2R1bGUgUlNERkNTUkhEMkJXUF9SRU1BUF9TUENfMTk4ICgKLQlDRE4sIAotCVNETiwgCi0JQ1AsIAotCUQsIAotCVNJLCAKLQlTRSwgCi0JU0FWRSwgCi0JTlJFU1RPUkUsIAotCVEpOwotICAgaW5wdXQgQ0ROOwotICAgaW5wdXQgU0ROOwotICAgaW5wdXQgQ1A7Ci0gICBpbnB1dCBEOwotICAgaW5wdXQgU0k7Ci0gICBpbnB1dCBTRTsKLSAgIGlucHV0IFNBVkU7Ci0gICBpbnB1dCBOUkVTVE9SRTsKLSAgIG91dHB1dCBROwotCi0gICBTREZDTlFEMUJXUF9TUENBXzI4MCBzdGF0ZV9yZW1hcCAoLlNJKFNJKSwgCi0JLlNFKFNFKSwgCi0JLlEoUSksIAotCS5EKEQpLCAKLQkuQ1AoQ1ApLCAKLQkuQ0ROKENETikpOwotZW5kbW9kdWxlCi0KLW1vZHVsZSBTREZDTlFEMUJXUF9TUENBXzI4MSAoCi0JU0ksIAotCVNFLCAKLQlRLCAKLQlELCAKLQlDUCwgCi0JQ0ROKTsKLSAgIGlucHV0IFNJOwotICAgaW5wdXQgU0U7Ci0gICBvdXRwdXQgUTsKLSAgIGlucHV0IEQ7Ci0gICBpbnB1dCBDUDsKLSAgIGlucHV0IENETjsKLQotICAgU0RGRlJYNCBERkYgKC5TSShTSSksIAotCS5TRShTRSksIAotCS5STihDRE4pLCAKLQkuUShRKSwgCi0JLkQoRCksIAotCS5DSyhDUCkpOwotZW5kbW9kdWxlCi0KLW1vZHVsZSBSU0RGQ1NSSEQyQldQX1JFTUFQX1NQQ18xOTkgKAotCUNETiwgCi0JU0ROLCAKLQlDUCwgCi0JRCwgCi0JU0ksIAotCVNFLCAKLQlTQVZFLCAKLQlOUkVTVE9SRSwgCi0JUSk7Ci0gICBpbnB1dCBDRE47Ci0gICBpbnB1dCBTRE47Ci0gICBpbnB1dCBDUDsKLSAgIGlucHV0IEQ7Ci0gICBpbnB1dCBTSTsKLSAgIGlucHV0IFNFOwotICAgaW5wdXQgU0FWRTsKLSAgIGlucHV0IE5SRVNUT1JFOwotICAgb3V0cHV0IFE7Ci0KLSAgIFNERkNOUUQxQldQX1NQQ0FfMjgxIHN0YXRlX3JlbWFwICguU0koU0kpLCAKLQkuU0UoU0UpLCAKLQkuUShRKSwgCi0JLkQoRCksIAotCS5DUChDUCksIAotCS5DRE4oQ0ROKSk7Ci1lbmRtb2R1bGUKLQotbW9kdWxlIFNERkNOUUQxQldQX1NQQ0FfMjgyICgKLQlTSSwgCi0JU0UsIAotCVEsIAotCUQsIAotCUNQLCAKLQlDRE4pOwotICAgaW5wdXQgU0k7Ci0gICBpbnB1dCBTRTsKLSAgIG91dHB1dCBROwotICAgaW5wdXQgRDsKLSAgIGlucHV0IENQOwotICAgaW5wdXQgQ0ROOwotCi0gICBTREZGUlg0IERGRiAoLlNJKFNJKSwgCi0JLlNFKFNFKSwgCi0JLlJOKENETiksIAotCS5RKFEpLCAKLQkuRChEKSwgCi0JLkNLKENQKSk7Ci1lbmRtb2R1bGUKLQotbW9kdWxlIFJTREZDU1JIRDJCV1BfUkVNQVBfU1BDXzIwMCAoCi0JQ0ROLCAKLQlTRE4sIAotCUNQLCAKLQlELCAKLQlTSSwgCi0JU0UsIAotCVNBVkUsIAotCU5SRVNUT1JFLCAKLQlRKTsKLSAgIGlucHV0IENETjsKLSAgIGlucHV0IFNETjsKLSAgIGlucHV0IENQOwotICAgaW5wdXQgRDsKLSAgIGlucHV0IFNJOwotICAgaW5wdXQgU0U7Ci0gICBpbnB1dCBTQVZFOwotICAgaW5wdXQgTlJFU1RPUkU7Ci0gICBvdXRwdXQgUTsKLQotICAgU0RGQ05RRDFCV1BfU1BDQV8yODIgc3RhdGVfcmVtYXAgKC5TSShTSSksIAotCS5TRShTRSksIAotCS5RKFEpLCAKLQkuRChEKSwgCi0JLkNQKENQKSwgCi0JLkNETihDRE4pKTsKLWVuZG1vZHVsZQotCi1tb2R1bGUgU0RGQ05RRDFCV1BfU1BDQV8yODMgKAotCVNJLCAKLQlTRSwgCi0JUSwgCi0JRCwgCi0JQ1AsIAotCUNETik7Ci0gICBpbnB1dCBTSTsKLSAgIGlucHV0IFNFOwotICAgb3V0cHV0IFE7Ci0gICBpbnB1dCBEOwotICAgaW5wdXQgQ1A7Ci0gICBpbnB1dCBDRE47Ci0KLSAgIFNERkZSWDQgREZGICguU0koU0kpLCAKLQkuU0UoU0UpLCAKLQkuUk4oQ0ROKSwgCi0JLlEoUSksIAotCS5EKEQpLCAKLQkuQ0soQ1ApKTsKLWVuZG1vZHVsZQotCi1tb2R1bGUgUlNERkNTUkhEMkJXUF9SRU1BUF9TUENfMjAxICgKLQlDRE4sIAotCVNETiwgCi0JQ1AsIAotCUQsIAotCVNJLCAKLQlTRSwgCi0JU0FWRSwgCi0JTlJFU1RPUkUsIAotCVEpOwotICAgaW5wdXQgQ0ROOwotICAgaW5wdXQgU0ROOwotICAgaW5wdXQgQ1A7Ci0gICBpbnB1dCBEOwotICAgaW5wdXQgU0k7Ci0gICBpbnB1dCBTRTsKLSAgIGlucHV0IFNBVkU7Ci0gICBpbnB1dCBOUkVTVE9SRTsKLSAgIG91dHB1dCBROwotCi0gICBTREZDTlFEMUJXUF9TUENBXzI4MyBzdGF0ZV9yZW1hcCAoLlNJKFNJKSwgCi0JLlNFKFNFKSwgCi0JLlEoUSksIAotCS5EKEQpLCAKLQkuQ1AoQ1ApLCAKLQkuQ0ROKENETikpOwotZW5kbW9kdWxlCi0KLW1vZHVsZSBTREZDTlFEMUJXUF9TUENBXzI4NCAoCi0JU0ksIAotCVNFLCAKLQlRLCAKLQlELCAKLQlDUCwgCi0JQ0ROKTsKLSAgIGlucHV0IFNJOwotICAgaW5wdXQgU0U7Ci0gICBvdXRwdXQgUTsKLSAgIGlucHV0IEQ7Ci0gICBpbnB1dCBDUDsKLSAgIGlucHV0IENETjsKLQotICAgU0RGRlJYNCBERkYgKC5TSShTSSksIAotCS5TRShTRSksIAotCS5STihDRE4pLCAKLQkuUShRKSwgCi0JLkQoRCksIAotCS5DSyhDUCkpOwotZW5kbW9kdWxlCi0KLW1vZHVsZSBSU0RGQ1NSSEQyQldQX1JFTUFQX1NQQ18yMDIgKAotCUNETiwgCi0JU0ROLCAKLQlDUCwgCi0JRCwgCi0JU0ksIAotCVNFLCAKLQlTQVZFLCAKLQlOUkVTVE9SRSwgCi0JUSk7Ci0gICBpbnB1dCBDRE47Ci0gICBpbnB1dCBTRE47Ci0gICBpbnB1dCBDUDsKLSAgIGlucHV0IEQ7Ci0gICBpbnB1dCBTSTsKLSAgIGlucHV0IFNFOwotICAgaW5wdXQgU0FWRTsKLSAgIGlucHV0IE5SRVNUT1JFOwotICAgb3V0cHV0IFE7Ci0KLSAgIFNERkNOUUQxQldQX1NQQ0FfMjg0IHN0YXRlX3JlbWFwICguU0koU0kpLCAKLQkuU0UoU0UpLCAKLQkuUShRKSwgCi0JLkQoRCksIAotCS5DUChDUCksIAotCS5DRE4oQ0ROKSk7Ci1lbmRtb2R1bGUKLQotbW9kdWxlIFNERkNOUUQxQldQX1NQQ0FfMjg1ICgKLQlTSSwgCi0JU0UsIAotCVEsIAotCUQsIAotCUNQLCAKLQlDRE4pOwotICAgaW5wdXQgU0k7Ci0gICBpbnB1dCBTRTsKLSAgIG91dHB1dCBROwotICAgaW5wdXQgRDsKLSAgIGlucHV0IENQOwotICAgaW5wdXQgQ0ROOwotCi0gICBTREZGUlg0IERGRiAoLlNJKFNJKSwgCi0JLlNFKFNFKSwgCi0JLlJOKENETiksIAotCS5RKFEpLCAKLQkuRChEKSwgCi0JLkNLKENQKSk7Ci1lbmRtb2R1bGUKLQotbW9kdWxlIFJTREZDU1JIRDJCV1BfUkVNQVBfU1BDXzIwMyAoCi0JQ0ROLCAKLQlTRE4sIAotCUNQLCAKLQlELCAKLQlTSSwgCi0JU0UsIAotCVNBVkUsIAotCU5SRVNUT1JFLCAKLQlRKTsKLSAgIGlucHV0IENETjsKLSAgIGlucHV0IFNETjsKLSAgIGlucHV0IENQOwotICAgaW5wdXQgRDsKLSAgIGlucHV0IFNJOwotICAgaW5wdXQgU0U7Ci0gICBpbnB1dCBTQVZFOwotICAgaW5wdXQgTlJFU1RPUkU7Ci0gICBvdXRwdXQgUTsKLQotICAgU0RGQ05RRDFCV1BfU1BDQV8yODUgc3RhdGVfcmVtYXAgKC5TSShTSSksIAotCS5TRShTRSksIAotCS5RKFEpLCAKLQkuRChEKSwgCi0JLkNQKENQKSwgCi0JLkNETihDRE4pKTsKLWVuZG1vZHVsZQotCi1tb2R1bGUgU0RGQ05RRDFCV1BfU1BDQV8yODYgKAotCVNJLCAKLQlTRSwgCi0JUSwgCi0JRCwgCi0JQ1AsIAotCUNETik7Ci0gICBpbnB1dCBTSTsKLSAgIGlucHV0IFNFOwotICAgb3V0cHV0IFE7Ci0gICBpbnB1dCBEOwotICAgaW5wdXQgQ1A7Ci0gICBpbnB1dCBDRE47Ci0KLSAgIFNERkZSWDQgREZGICguU0koU0kpLCAKLQkuU0UoU0UpLCAKLQkuUk4oQ0ROKSwgCi0JLlEoUSksIAotCS5EKEQpLCAKLQkuQ0soQ1ApKTsKLWVuZG1vZHVsZQotCi1tb2R1bGUgUlNERkNTUkhEMkJXUF9SRU1BUF9TUENfMjA0ICgKLQlDRE4sIAotCVNETiwgCi0JQ1AsIAotCUQsIAotCVNJLCAKLQlTRSwgCi0JU0FWRSwgCi0JTlJFU1RPUkUsIAotCVEpOwotICAgaW5wdXQgQ0ROOwotICAgaW5wdXQgU0ROOwotICAgaW5wdXQgQ1A7Ci0gICBpbnB1dCBEOwotICAgaW5wdXQgU0k7Ci0gICBpbnB1dCBTRTsKLSAgIGlucHV0IFNBVkU7Ci0gICBpbnB1dCBOUkVTVE9SRTsKLSAgIG91dHB1dCBROwotCi0gICBTREZDTlFEMUJXUF9TUENBXzI4NiBzdGF0ZV9yZW1hcCAoLlNJKFNJKSwgCi0JLlNFKFNFKSwgCi0JLlEoUSksIAotCS5EKEQpLCAKLQkuQ1AoQ1ApLCAKLQkuQ0ROKENETikpOwotZW5kbW9kdWxlCi0KLW1vZHVsZSBTREZDTlFEMUJXUF9TUENBXzI4NyAoCi0JU0ksIAotCVNFLCAKLQlRLCAKLQlELCAKLQlDUCwgCi0JQ0ROKTsKLSAgIGlucHV0IFNJOwotICAgaW5wdXQgU0U7Ci0gICBvdXRwdXQgUTsKLSAgIGlucHV0IEQ7Ci0gICBpbnB1dCBDUDsKLSAgIGlucHV0IENETjsKLQotICAgU0RGRlJYNCBERkYgKC5TSShTSSksIAotCS5TRShTRSksIAotCS5STihDRE4pLCAKLQkuUShRKSwgCi0JLkQoRCksIAotCS5DSyhDUCkpOwotZW5kbW9kdWxlCi0KLW1vZHVsZSBSU0RGQ1NSSEQyQldQX1JFTUFQX1NQQ18yMDUgKAotCUNETiwgCi0JU0ROLCAKLQlDUCwgCi0JRCwgCi0JU0ksIAotCVNFLCAKLQlTQVZFLCAKLQlOUkVTVE9SRSwgCi0JUSk7Ci0gICBpbnB1dCBDRE47Ci0gICBpbnB1dCBTRE47Ci0gICBpbnB1dCBDUDsKLSAgIGlucHV0IEQ7Ci0gICBpbnB1dCBTSTsKLSAgIGlucHV0IFNFOwotICAgaW5wdXQgU0FWRTsKLSAgIGlucHV0IE5SRVNUT1JFOwotICAgb3V0cHV0IFE7Ci0KLSAgIFNERkNOUUQxQldQX1NQQ0FfMjg3IHN0YXRlX3JlbWFwICguU0koU0kpLCAKLQkuU0UoU0UpLCAKLQkuUShRKSwgCi0JLkQoRCksIAotCS5DUChDUCksIAotCS5DRE4oQ0ROKSk7Ci1lbmRtb2R1bGUKLQotbW9kdWxlIFNERkNOUUQxQldQX1NQQ0FfMjg4ICgKLQlTSSwgCi0JU0UsIAotCVEsIAotCUQsIAotCUNQLCAKLQlDRE4pOwotICAgaW5wdXQgU0k7Ci0gICBpbnB1dCBTRTsKLSAgIG91dHB1dCBROwotICAgaW5wdXQgRDsKLSAgIGlucHV0IENQOwotICAgaW5wdXQgQ0ROOwotCi0gICBTREZGUlg0IERGRiAoLlNJKFNJKSwgCi0JLlNFKFNFKSwgCi0JLlJOKENETiksIAotCS5RKFEpLCAKLQkuRChEKSwgCi0JLkNLKENQKSk7Ci1lbmRtb2R1bGUKLQotbW9kdWxlIFJTREZDU1JIRDJCV1BfUkVNQVBfU1BDXzIwNiAoCi0JQ0ROLCAKLQlTRE4sIAotCUNQLCAKLQlELCAKLQlTSSwgCi0JU0UsIAotCVNBVkUsIAotCU5SRVNUT1JFLCAKLQlRKTsKLSAgIGlucHV0IENETjsKLSAgIGlucHV0IFNETjsKLSAgIGlucHV0IENQOwotICAgaW5wdXQgRDsKLSAgIGlucHV0IFNJOwotICAgaW5wdXQgU0U7Ci0gICBpbnB1dCBTQVZFOwotICAgaW5wdXQgTlJFU1RPUkU7Ci0gICBvdXRwdXQgUTsKLQotICAgU0RGQ05RRDFCV1BfU1BDQV8yODggc3RhdGVfcmVtYXAgKC5TSShTSSksIAotCS5TRShTRSksIAotCS5RKFEpLCAKLQkuRChEKSwgCi0JLkNQKENQKSwgCi0JLkNETihDRE4pKTsKLWVuZG1vZHVsZQotCi1tb2R1bGUgU0RGQ05RRDFCV1BfU1BDQV8yODkgKAotCVNJLCAKLQlTRSwgCi0JUSwgCi0JRCwgCi0JQ1AsIAotCUNETik7Ci0gICBpbnB1dCBTSTsKLSAgIGlucHV0IFNFOwotICAgb3V0cHV0IFE7Ci0gICBpbnB1dCBEOwotICAgaW5wdXQgQ1A7Ci0gICBpbnB1dCBDRE47Ci0KLSAgIFNERkZSWDQgREZGICguU0koU0kpLCAKLQkuU0UoU0UpLCAKLQkuUk4oQ0ROKSwgCi0JLlEoUSksIAotCS5EKEQpLCAKLQkuQ0soQ1ApKTsKLWVuZG1vZHVsZQotCi1tb2R1bGUgUlNERkNTUkhEMkJXUF9SRU1BUF9TUENfMjA3ICgKLQlDRE4sIAotCVNETiwgCi0JQ1AsIAotCUQsIAotCVNJLCAKLQlTRSwgCi0JU0FWRSwgCi0JTlJFU1RPUkUsIAotCVEpOwotICAgaW5wdXQgQ0ROOwotICAgaW5wdXQgU0ROOwotICAgaW5wdXQgQ1A7Ci0gICBpbnB1dCBEOwotICAgaW5wdXQgU0k7Ci0gICBpbnB1dCBTRTsKLSAgIGlucHV0IFNBVkU7Ci0gICBpbnB1dCBOUkVTVE9SRTsKLSAgIG91dHB1dCBROwotCi0gICBTREZDTlFEMUJXUF9TUENBXzI4OSBzdGF0ZV9yZW1hcCAoLlNJKFNJKSwgCi0JLlNFKFNFKSwgCi0JLlEoUSksIAotCS5EKEQpLCAKLQkuQ1AoQ1ApLCAKLQkuQ0ROKENETikpOwotZW5kbW9kdWxlCi0KLW1vZHVsZSBTREZDTlFEMUJXUF9TUENBXzI5MCAoCi0JU0ksIAotCVNFLCAKLQlRLCAKLQlELCAKLQlDUCwgCi0JQ0ROKTsKLSAgIGlucHV0IFNJOwotICAgaW5wdXQgU0U7Ci0gICBvdXRwdXQgUTsKLSAgIGlucHV0IEQ7Ci0gICBpbnB1dCBDUDsKLSAgIGlucHV0IENETjsKLQotICAgU0RGRlJYNCBERkYgKC5TSShTSSksIAotCS5TRShTRSksIAotCS5STihDRE4pLCAKLQkuUShRKSwgCi0JLkQoRCksIAotCS5DSyhDUCkpOwotZW5kbW9kdWxlCi0KLW1vZHVsZSBSU0RGQ1NSSEQyQldQX1JFTUFQX1NQQ18yMDggKAotCUNETiwgCi0JU0ROLCAKLQlDUCwgCi0JRCwgCi0JU0ksIAotCVNFLCAKLQlTQVZFLCAKLQlOUkVTVE9SRSwgCi0JUSk7Ci0gICBpbnB1dCBDRE47Ci0gICBpbnB1dCBTRE47Ci0gICBpbnB1dCBDUDsKLSAgIGlucHV0IEQ7Ci0gICBpbnB1dCBTSTsKLSAgIGlucHV0IFNFOwotICAgaW5wdXQgU0FWRTsKLSAgIGlucHV0IE5SRVNUT1JFOwotICAgb3V0cHV0IFE7Ci0KLSAgIFNERkNOUUQxQldQX1NQQ0FfMjkwIHN0YXRlX3JlbWFwICguU0koU0kpLCAKLQkuU0UoU0UpLCAKLQkuUShRKSwgCi0JLkQoRCksIAotCS5DUChDUCksIAotCS5DRE4oQ0ROKSk7Ci1lbmRtb2R1bGUKLQotbW9kdWxlIFNERkNOUUQxQldQX1NQQ0FfMjkxICgKLQlTSSwgCi0JU0UsIAotCVEsIAotCUQsIAotCUNQLCAKLQlDRE4pOwotICAgaW5wdXQgU0k7Ci0gICBpbnB1dCBTRTsKLSAgIG91dHB1dCBROwotICAgaW5wdXQgRDsKLSAgIGlucHV0IENQOwotICAgaW5wdXQgQ0ROOwotCi0gICBTREZGUlg0IERGRiAoLlNJKFNJKSwgCi0JLlNFKFNFKSwgCi0JLlJOKENETiksIAotCS5RKFEpLCAKLQkuRChEKSwgCi0JLkNLKENQKSk7Ci1lbmRtb2R1bGUKLQotbW9kdWxlIFJTREZDU1JIRDJCV1BfUkVNQVBfU1BDXzIwOSAoCi0JQ0ROLCAKLQlTRE4sIAotCUNQLCAKLQlELCAKLQlTSSwgCi0JU0UsIAotCVNBVkUsIAotCU5SRVNUT1JFLCAKLQlRKTsKLSAgIGlucHV0IENETjsKLSAgIGlucHV0IFNETjsKLSAgIGlucHV0IENQOwotICAgaW5wdXQgRDsKLSAgIGlucHV0IFNJOwotICAgaW5wdXQgU0U7Ci0gICBpbnB1dCBTQVZFOwotICAgaW5wdXQgTlJFU1RPUkU7Ci0gICBvdXRwdXQgUTsKLQotICAgU0RGQ05RRDFCV1BfU1BDQV8yOTEgc3RhdGVfcmVtYXAgKC5TSShTSSksIAotCS5TRShTRSksIAotCS5RKFEpLCAKLQkuRChEKSwgCi0JLkNQKENQKSwgCi0JLkNETihDRE4pKTsKLWVuZG1vZHVsZQotCi1tb2R1bGUgZXhlY3V0ZV9pICgKLQljbGssIAotCXJlc2V0LCAKLQlwaGlfMSwgCi0JcGhpXzIsIAotCXBoaV8zLCAKLQlwaGlfNCwgCi0JcGhpXzUsIAotCXBoaV82LCAKLQlkZWNvZGVfc2tpcF9vbmUsIAotCWdleiwgCi0JZ3osIAotCW56LCAKLQl6LCAKLQlseiwgCi0JbGV6LCAKLQlvdiwgCi0JYXJueiwgCi0JYmlveiwgCi0JYWx1X3Jlc3VsdCwgCi0JbXB5X3Jlc3VsdCwgCi0JbWRyLCAKLQlwZHIsIAotCWlyLCAKLQlkZWNvZGUsIAotCWFyLCAKLQlza2lwX29uZSwgCi0JZmV0Y2hfYnJhbmNoLCAKLQlicmFuY2hfc3RhbGwsIAotCXBjX2FjYywgCi0JZG1vdl9pbmMsIAotCWRwLCAKLQlhcnAsIAotCWFyMCwgCi0JYXIxLCAKLQlwYywgCi0JYWNjLCAKLQlwLCAKLQl0b3AsIAotCWFsdV9jbWQsIAotCXNlbF9vcF9hLCAKLQlzZWxfb3BfYiwgCi0JcmVhZF9wcm9nLCAKLQlnb19wcm9nLCAKLQlyZWFkX2RhdGEsIAotCWdvX2RhdGEsIAotCXJlYWRfcG9ydCwgCi0JZ29fcG9ydCwgCi0Jb3ZtLCAKLQlSQ19DR19URVNUX1BPUlQsIAotCVNSUEdfUEdfaW4sIAotCVNSUEdfUEdfaW5fMSwgCi0JREZUX3NkaSwgCi0JREZUX3NlbiwgCi0JREZUX3NkaV8yLCAKLQlERlRfc2RpXzMsIAotCURGVF9zZG8pOwotICAgaW5wdXQgY2xrOwotICAgaW5wdXQgcmVzZXQ7Ci0gICBpbnB1dCBwaGlfMTsKLSAgIGlucHV0IHBoaV8yOwotICAgaW5wdXQgcGhpXzM7Ci0gICBpbnB1dCBwaGlfNDsKLSAgIGlucHV0IHBoaV81OwotICAgaW5wdXQgcGhpXzY7Ci0gICBpbnB1dCBkZWNvZGVfc2tpcF9vbmU7Ci0gICBpbnB1dCBnZXo7Ci0gICBpbnB1dCBnejsKLSAgIGlucHV0IG56OwotICAgaW5wdXQgejsKLSAgIGlucHV0IGx6OwotICAgaW5wdXQgbGV6OwotICAgb3V0cHV0IG92OwotICAgaW5wdXQgYXJuejsKLSAgIGlucHV0IGJpb3o7Ci0gICBpbnB1dCBbMzI6MF0gYWx1X3Jlc3VsdDsKLSAgIGlucHV0IFszMTowXSBtcHlfcmVzdWx0OwotICAgaW5wdXQgWzE1OjBdIG1kcjsKLSAgIGlucHV0IFsxNTowXSBwZHI7Ci0gICBpbnB1dCBbMTU6MF0gaXI7Ci0gICBpbnB1dCBbMTU6MF0gZGVjb2RlOwotICAgaW5wdXQgWzE1OjBdIGFyOwotICAgb3V0cHV0IHNraXBfb25lOwotICAgb3V0cHV0IGZldGNoX2JyYW5jaDsKLSAgIG91dHB1dCBicmFuY2hfc3RhbGw7Ci0gICBvdXRwdXQgcGNfYWNjOwotICAgb3V0cHV0IGRtb3ZfaW5jOwotICAgb3V0cHV0IGRwOwotICAgb3V0cHV0IGFycDsKLSAgIG91dHB1dCBbMTU6MF0gYXIwOwotICAgb3V0cHV0IFsxNTowXSBhcjE7Ci0gICBvdXRwdXQgWzE1OjBdIHBjOwotICAgb3V0cHV0IFszMjowXSBhY2M7Ci0gICBvdXRwdXQgWzMxOjBdIHA7Ci0gICBvdXRwdXQgWzE1OjBdIHRvcDsKLSAgIG91dHB1dCBbMzowXSBhbHVfY21kOwotICAgb3V0cHV0IFsyOjBdIHNlbF9vcF9hOwotICAgb3V0cHV0IFsyOjBdIHNlbF9vcF9iOwotICAgb3V0cHV0IHJlYWRfcHJvZzsKLSAgIG91dHB1dCBnb19wcm9nOwotICAgb3V0cHV0IHJlYWRfZGF0YTsKLSAgIG91dHB1dCBnb19kYXRhOwotICAgb3V0cHV0IHJlYWRfcG9ydDsKLSAgIG91dHB1dCBnb19wb3J0OwotICAgb3V0cHV0IG92bTsKLSAgIGlucHV0IFJDX0NHX1RFU1RfUE9SVDsKLSAgIGlucHV0IFNSUEdfUEdfaW47Ci0gICBpbnB1dCBTUlBHX1BHX2luXzE7Ci0gICBpbnB1dCBERlRfc2RpOwotICAgaW5wdXQgREZUX3NlbjsKLSAgIGlucHV0IERGVF9zZGlfMjsKLSAgIGlucHV0IERGVF9zZGlfMzsKLSAgIG91dHB1dCBERlRfc2RvOwotCi0gICAvLyBJbnRlcm5hbCB3aXJlcwotICAgd2lyZSBicmFuY2hfc3RhbGxfMjI5NTsKLSAgIHdpcmUgYnJhbmNoX3N0YWxsX2RlbGF5OwotICAgd2lyZSBuXzE7Ci0gICB3aXJlIG5fMzsKLSAgIHdpcmUgbl80OwotICAgd2lyZSBuXzg7Ci0gICB3aXJlIG5fOTsKLSAgIHdpcmUgbl8xNDsKLSAgIHdpcmUgbl8xNzsKLSAgIHdpcmUgbl8xODsKLSAgIHdpcmUgbl8xOTsKLSAgIHdpcmUgbl8yMDsKLSAgIHdpcmUgbl8yMTsKLSAgIHdpcmUgbl8yMjsKLSAgIHdpcmUgbl8yMzsKLSAgIHdpcmUgbl8yNDsKLSAgIHdpcmUgbl8yNjsKLSAgIHdpcmUgbl8yOTsKLSAgIHdpcmUgbl8zMDsKLSAgIHdpcmUgbl8zNDsKLSAgIHdpcmUgbl8zNjsKLSAgIHdpcmUgbl8zODsKLSAgIHdpcmUgbl80MTsKLSAgIHdpcmUgbl80MjsKLSAgIHdpcmUgbl80NDsKLSAgIHdpcmUgbl80NzsKLSAgIHdpcmUgbl81MDsKLSAgIHdpcmUgbl81MTsKLSAgIHdpcmUgbl81NTsKLSAgIHdpcmUgbl81ODsKLSAgIHdpcmUgbl82MjsKLSAgIHdpcmUgbl82MzsKLSAgIHdpcmUgbl82NzsKLSAgIHdpcmUgbl82ODsKLSAgIHdpcmUgbl83MDsKLSAgIHdpcmUgbl83MzsKLSAgIHdpcmUgbl83NTsKLSAgIHdpcmUgbl83NzsKLSAgIHdpcmUgbl84MDsKLSAgIHdpcmUgbl84MTsKLSAgIHdpcmUgbl84MjsKLSAgIHdpcmUgbl84MzsKLSAgIHdpcmUgbl84NDsKLSAgIHdpcmUgbl84NTsKLSAgIHdpcmUgbl84NjsKLSAgIHdpcmUgbl84NzsKLSAgIHdpcmUgbl84ODsKLSAgIHdpcmUgbl84OTsKLSAgIHdpcmUgbl85MDsKLSAgIHdpcmUgbl85MTsKLSAgIHdpcmUgbl85MjsKLSAgIHdpcmUgbl85MzsKLSAgIHdpcmUgbl85NDsKLSAgIHdpcmUgbl85NTsKLSAgIHdpcmUgbl85NjsKLSAgIHdpcmUgbl85NzsKLSAgIHdpcmUgbl85ODsKLSAgIHdpcmUgbl85OTsKLSAgIHdpcmUgbl8xMDA7Ci0gICB3aXJlIG5fMTAxOwotICAgd2lyZSBuXzEwMjsKLSAgIHdpcmUgbl8xMDM7Ci0gICB3aXJlIG5fMTA0OwotICAgd2lyZSBuXzEwNTsKLSAgIHdpcmUgbl8xMDY7Ci0gICB3aXJlIG5fMTA3OwotICAgd2lyZSBuXzEwODsKLSAgIHdpcmUgbl8xMDk7Ci0gICB3aXJlIG5fMTEwOwotICAgd2lyZSBuXzExMTsKLSAgIHdpcmUgbl8xMTI7Ci0gICB3aXJlIG5fMTEzOwotICAgd2lyZSBuXzExNDsKLSAgIHdpcmUgbl8xMTc7Ci0gICB3aXJlIG5fMTE4OwotICAgd2lyZSBuXzEyMTsKLSAgIHdpcmUgbl8xMjI7Ci0gICB3aXJlIG5fMTI0OwotICAgd2lyZSBuXzEyNTsKLSAgIHdpcmUgbl8xMjY7Ci0gICB3aXJlIG5fMTI4OwotICAgd2lyZSBuXzEyOTsKLSAgIHdpcmUgbl8xMzA7Ci0gICB3aXJlIG5fMTMyOwotICAgd2lyZSBuXzEzMzsKLSAgIHdpcmUgbl8xMzQ7Ci0gICB3aXJlIG5fMTM1OwotICAgd2lyZSBuXzEzNjsKLSAgIHdpcmUgbl8xMzc7Ci0gICB3aXJlIG5fMTM4OwotICAgd2lyZSBuXzEzOTsKLSAgIHdpcmUgbl8xNDA7Ci0gICB3aXJlIG5fMTQxOwotICAgd2lyZSBuXzE0MjsKLSAgIHdpcmUgbl8xNDM7Ci0gICB3aXJlIG5fMTQ0OwotICAgd2lyZSBuXzE0NTsKLSAgIHdpcmUgbl8xNDc7Ci0gICB3aXJlIG5fMTQ4OwotICAgd2lyZSBuXzE0OTsKLSAgIHdpcmUgbl8xNTA7Ci0gICB3aXJlIG5fMTUyOwotICAgd2lyZSBuXzE1MzsKLSAgIHdpcmUgbl8xNTQ7Ci0gICB3aXJlIG5fMTU1OwotICAgd2lyZSBuXzE1NzsKLSAgIHdpcmUgbl8xNTk7Ci0gICB3aXJlIG5fMTYwOwotICAgd2lyZSBuXzE2MjsKLSAgIHdpcmUgbl8xNjY7Ci0gICB3aXJlIG5fMTY5OwotICAgd2lyZSBuXzE3MTsKLSAgIHdpcmUgbl8xNzI7Ci0gICB3aXJlIG5fMTc0OwotICAgd2lyZSBuXzE3NjsKLSAgIHdpcmUgbl8xNzc7Ci0gICB3aXJlIG5fMTgwOwotICAgd2lyZSBuXzE4MTsKLSAgIHdpcmUgbl8xODI7Ci0gICB3aXJlIG5fMTgzOwotICAgd2lyZSBuXzE4NTsKLSAgIHdpcmUgbl8xODY7Ci0gICB3aXJlIG5fMTkwOwotICAgd2lyZSBuXzE5MTsKLSAgIHdpcmUgbl8xOTI7Ci0gICB3aXJlIG5fMTkzOwotICAgd2lyZSBuXzE5NTsKLSAgIHdpcmUgbl8xOTY7Ci0gICB3aXJlIG5fMTk4OwotICAgd2lyZSBuXzE5OTsKLSAgIHdpcmUgbl8yMDE7Ci0gICB3aXJlIG5fMjAzOwotICAgd2lyZSBuXzIwNDsKLSAgIHdpcmUgbl8yMDU7Ci0gICB3aXJlIG5fMjA3OwotICAgd2lyZSBuXzIwODsKLSAgIHdpcmUgbl8yMDk7Ci0gICB3aXJlIG5fMjEwOwotICAgd2lyZSBuXzIxMjsKLSAgIHdpcmUgbl8yMjU7Ci0gICB3aXJlIG5fMjI2OwotICAgd2lyZSBuXzIzMTsKLSAgIHdpcmUgbl8yMzI7Ci0gICB3aXJlIG5fMjM5OwotICAgd2lyZSBuXzI0MDsKLSAgIHdpcmUgbl8yNDE7Ci0gICB3aXJlIG5fMjQzOwotICAgd2lyZSBuXzI0NTsKLSAgIHdpcmUgbl8yNDk7Ci0gICB3aXJlIG5fMjUwOwotICAgd2lyZSBuXzI1MTsKLSAgIHdpcmUgbl8yNTI7Ci0gICB3aXJlIG5fMjU1OwotICAgd2lyZSBuXzI1NzsKLSAgIHdpcmUgbl8yNTg7Ci0gICB3aXJlIG5fMjY5OwotICAgd2lyZSBuXzI3MzsKLSAgIHdpcmUgbl8yNzU7Ci0gICB3aXJlIG5fMjgwOwotICAgd2lyZSBuXzI4MTsKLSAgIHdpcmUgbl8yOTE7Ci0gICB3aXJlIG5fMjk0OwotICAgd2lyZSBuXzI5NTsKLSAgIHdpcmUgbl8yOTY7Ci0gICB3aXJlIG5fMzAwOwotICAgd2lyZSBuXzMwMTsKLSAgIHdpcmUgbl8zMDI7Ci0gICB3aXJlIG5fMzA0OwotICAgd2lyZSBuXzMwNTsKLSAgIHdpcmUgbl8zMDY7Ci0gICB3aXJlIG5fMzEwOwotICAgd2lyZSBuXzMxMjsKLSAgIHdpcmUgbl8zMTM7Ci0gICB3aXJlIG5fMzE0OwotICAgd2lyZSBuXzMxNTsKLSAgIHdpcmUgbl8zMTY7Ci0gICB3aXJlIG5fMzIwOwotICAgd2lyZSBuXzMyMjsKLSAgIHdpcmUgbl8zMjM7Ci0gICB3aXJlIG5fMzQyOwotICAgd2lyZSBuXzM0MzsKLSAgIHdpcmUgbl8zNDk7Ci0gICB3aXJlIG5fMzU3OwotICAgd2lyZSBuXzM1OTsKLSAgIHdpcmUgbl8zNjA7Ci0gICB3aXJlIG5fMzYxOwotICAgd2lyZSBuXzM2MzsKLSAgIHdpcmUgbl8zNjQ7Ci0gICB3aXJlIG5fMzY1OwotICAgd2lyZSBuXzM2NjsKLSAgIHdpcmUgbl8zNjc7Ci0gICB3aXJlIG5fMzcxOwotICAgd2lyZSBuXzM3MjsKLSAgIHdpcmUgbl8zNzM7Ci0gICB3aXJlIG5fMzc0OwotICAgd2lyZSBuXzM3NjsKLSAgIHdpcmUgbl8zNzc7Ci0gICB3aXJlIG5fMzc5OwotICAgd2lyZSBuXzM4NjsKLSAgIHdpcmUgbl8zODk7Ci0gICB3aXJlIG5fMzkxOwotICAgd2lyZSBuXzM5MjsKLSAgIHdpcmUgbl8zOTc7Ci0gICB3aXJlIG5fNDAwOwotICAgd2lyZSBuXzQwMTsKLSAgIHdpcmUgbl80MDI7Ci0gICB3aXJlIG5fNDAzOwotICAgd2lyZSBuXzQwNzsKLSAgIHdpcmUgbl80MTI7Ci0gICB3aXJlIG5fNDE1OwotICAgd2lyZSBuXzQxNjsKLSAgIHdpcmUgbl80MzI7Ci0gICB3aXJlIG5fNDQxOwotICAgd2lyZSBuXzQ0MzsKLSAgIHdpcmUgbl80NDQ7Ci0gICB3aXJlIG5fNDQ1OwotICAgd2lyZSBuXzQ0NjsKLSAgIHdpcmUgbl80NDc7Ci0gICB3aXJlIG5fNDUxOwotICAgd2lyZSBuXzQ1MjsKLSAgIHdpcmUgbl80NTQ7Ci0gICB3aXJlIG5fNDU2OwotICAgd2lyZSBuXzQ1ODsKLSAgIHdpcmUgbl80NTk7Ci0gICB3aXJlIG5fNDY4OwotICAgd2lyZSBuXzQ3OTsKLSAgIHdpcmUgbl80ODU7Ci0gICB3aXJlIG5fNDg3OwotICAgd2lyZSBuXzQ5NTsKLSAgIHdpcmUgbl81MzI7Ci0gICB3aXJlIG5fNTM0OwotICAgd2lyZSBuXzUzNzsKLSAgIHdpcmUgbl81NDA7Ci0gICB3aXJlIG5fNTUwOwotICAgd2lyZSBuXzU2MDsKLSAgIHdpcmUgbl81NjE7Ci0gICB3aXJlIG5fNTcwOwotICAgd2lyZSBuXzU3ODsKLSAgIHdpcmUgbl81ODE7Ci0gICB3aXJlIG5fNTg1OwotICAgd2lyZSBuXzU5MTsKLSAgIHdpcmUgbl82MDI7Ci0gICB3aXJlIG5fNjA4OwotICAgd2lyZSBuXzYxMjsKLSAgIHdpcmUgbl82MTU7Ci0gICB3aXJlIG5fNjIyOwotICAgd2lyZSBuXzYyNjsKLSAgIHdpcmUgbl82Mjg7Ci0gICB3aXJlIG5fNjMwOwotICAgd2lyZSBuXzYzNzsKLSAgIHdpcmUgbl82NTQ7Ci0gICB3aXJlIG5fNjU3OwotICAgd2lyZSBuXzY1ODsKLSAgIHdpcmUgbl82Njk7Ci0gICB3aXJlIG5fNjc0OwotICAgd2lyZSBuXzY3NzsKLSAgIHdpcmUgbl82ODY7Ci0gICB3aXJlIG5fNjg4OwotICAgd2lyZSBuXzY5MDsKLSAgIHdpcmUgbl82OTQ7Ci0gICB3aXJlIG5fNjk5OwotICAgd2lyZSBuXzcwMTsKLSAgIHdpcmUgbl83MTI7Ci0gICB3aXJlIG5fNzE2OwotICAgd2lyZSBuXzcyMjsKLSAgIHdpcmUgbl83MjY7Ci0gICB3aXJlIG5fNzI3OwotICAgd2lyZSBuXzczMzsKLSAgIHdpcmUgbl83MzY7Ci0gICB3aXJlIG5fNzM4OwotICAgd2lyZSBuXzczOTsKLSAgIHdpcmUgbl83NDg7Ci0gICB3aXJlIG5fNzQ5OwotICAgd2lyZSBuXzc1NTsKLSAgIHdpcmUgbl83NTg7Ci0gICB3aXJlIG5fNzY0OwotICAgd2lyZSBuXzc2NTsKLSAgIHdpcmUgbl83Njk7Ci0gICB3aXJlIG5fNzg3OwotICAgd2lyZSBuXzg4OTsKLSAgIHdpcmUgbl84OTU7Ci0gICB3aXJlIG5fOTk4OwotICAgd2lyZSBuXzExNTY7Ci0gICB3aXJlIG5fMTE1NzsKLSAgIHdpcmUgbl8xMTU4OwotICAgd2lyZSBuXzExNTk7Ci0gICB3aXJlIG5fMTE2MDsKLSAgIHdpcmUgbl8xMTYxOwotICAgd2lyZSBuXzExNjI7Ci0gICB3aXJlIG5fMTE2MzsKLSAgIHdpcmUgbl8xMTY0OwotICAgd2lyZSBuXzExNjU7Ci0gICB3aXJlIG5fMTE2NjsKLSAgIHdpcmUgbl8xMTY3OwotICAgd2lyZSBuXzExNjg7Ci0gICB3aXJlIG5fMTE2OTsKLSAgIHdpcmUgbl8xMTcwOwotICAgd2lyZSBuXzExNzE7Ci0gICB3aXJlIG5fMTE3MjsKLSAgIHdpcmUgbl8xMTczOwotICAgd2lyZSBuXzExNzQ7Ci0gICB3aXJlIG5fMTE3NTsKLSAgIHdpcmUgbl8xMTc3OwotICAgd2lyZSBuXzExNzg7Ci0gICB3aXJlIG5fMTE3OTsKLSAgIHdpcmUgbl8xMTgwOwotICAgd2lyZSBuXzExODE7Ci0gICB3aXJlIG5fMTE4MjsKLSAgIHdpcmUgbl8xMTgzOwotICAgd2lyZSBuXzExODQ7Ci0gICB3aXJlIG5fMTE4NTsKLSAgIHdpcmUgbl8xMTg2OwotICAgd2lyZSBuXzExODc7Ci0gICB3aXJlIG5fMTE4ODsKLSAgIHdpcmUgbl8xMTkwOwotICAgd2lyZSBuXzExOTE7Ci0gICB3aXJlIG5fMTE5MzsKLSAgIHdpcmUgbl8xMTk0OwotICAgd2lyZSBuXzExOTU7Ci0gICB3aXJlIG5fMTE5NjsKLSAgIHdpcmUgbl8xMTk3OwotICAgd2lyZSBuXzExOTg7Ci0gICB3aXJlIG5fMTE5OTsKLSAgIHdpcmUgbl8xMjAwOwotICAgd2lyZSBuXzEyMDE7Ci0gICB3aXJlIG5fMTIwMjsKLSAgIHdpcmUgbl8xMjAzOwotICAgd2lyZSBuXzEyMDQ7Ci0gICB3aXJlIG5fMTIwNTsKLSAgIHdpcmUgbl8xMjA2OwotICAgd2lyZSBuXzEyMDc7Ci0gICB3aXJlIG5fMTIwODsKLSAgIHdpcmUgbl8xMjA5OwotICAgd2lyZSBuXzEyMTA7Ci0gICB3aXJlIG5fMTIxMTsKLSAgIHdpcmUgbl8xMjEyOwotICAgd2lyZSBuXzEyMTM7Ci0gICB3aXJlIG5fMTIxNDsKLSAgIHdpcmUgbl8xMjE1OwotICAgd2lyZSBuXzEyMTY7Ci0gICB3aXJlIG5fMTIxNzsKLSAgIHdpcmUgbl8xMjE4OwotICAgd2lyZSBuXzEyMTk7Ci0gICB3aXJlIG5fMTIyMDsKLSAgIHdpcmUgbl8xMjIxOwotICAgd2lyZSBuXzEyMjI7Ci0gICB3aXJlIG5fMTIyMzsKLSAgIHdpcmUgbl8xMjI0OwotICAgd2lyZSBuXzEyMjU7Ci0gICB3aXJlIG5fMTIyNjsKLSAgIHdpcmUgbl8xMjI3OwotICAgd2lyZSBuXzEyMjg7Ci0gICB3aXJlIG5fMTIyOTsKLSAgIHdpcmUgbl8xMjMwOwotICAgd2lyZSBuXzEyMzE7Ci0gICB3aXJlIG5fMTIzMjsKLSAgIHdpcmUgbl8xMjMzOwotICAgd2lyZSBuXzEyMzQ7Ci0gICB3aXJlIG5fMTIzNTsKLSAgIHdpcmUgbl8xMjM2OwotICAgd2lyZSBuXzEyMzc7Ci0gICB3aXJlIG5fMTIzODsKLSAgIHdpcmUgbl8xMjM5OwotICAgd2lyZSBuXzEyNDA7Ci0gICB3aXJlIG5fMTI0MTsKLSAgIHdpcmUgbl8xMjQyOwotICAgd2lyZSBuXzEyNDM7Ci0gICB3aXJlIG5fMTI0NDsKLSAgIHdpcmUgbl8xMjQ1OwotICAgd2lyZSBuXzEyNDY7Ci0gICB3aXJlIG5fMTI0NzsKLSAgIHdpcmUgbl8xMjQ4OwotICAgd2lyZSBuXzEyNDk7Ci0gICB3aXJlIG5fMTI1MDsKLSAgIHdpcmUgbl8xMjUxOwotICAgd2lyZSBuXzEyNTI7Ci0gICB3aXJlIG5fMTI1MzsKLSAgIHdpcmUgbl8xMjU0OwotICAgd2lyZSBuXzEyNTU7Ci0gICB3aXJlIG5fMTI1NjsKLSAgIHdpcmUgbl8xMjU3OwotICAgd2lyZSBuXzEyNTg7Ci0gICB3aXJlIG5fMTI1OTsKLSAgIHdpcmUgbl8xMjYwOwotICAgd2lyZSBuXzEyNjE7Ci0gICB3aXJlIG5fMTI2MjsKLSAgIHdpcmUgbl8xMjYzOwotICAgd2lyZSBuXzEyNjQ7Ci0gICB3aXJlIG5fMTI2NTsKLSAgIHdpcmUgbl8xMjY2OwotICAgd2lyZSBuXzEyNjc7Ci0gICB3aXJlIG5fMTI2ODsKLSAgIHdpcmUgbl8xMjY5OwotICAgd2lyZSBuXzEyNzA7Ci0gICB3aXJlIG5fMTI3MTsKLSAgIHdpcmUgbl8xMjczOwotICAgd2lyZSBuXzEyNzU7Ci0gICB3aXJlIG5fMTI3NjsKLSAgIHdpcmUgbl8xMjc3OwotICAgd2lyZSBuXzEyNzg7Ci0gICB3aXJlIG5fMTI3OTsKLSAgIHdpcmUgbl8xMjgxOwotICAgd2lyZSBuXzEyODI7Ci0gICB3aXJlIG5fMTI4MzsKLSAgIHdpcmUgbl8xMjg0OwotICAgd2lyZSBuXzEyODU7Ci0gICB3aXJlIG5fMTI4NjsKLSAgIHdpcmUgbl8xMjg3OwotICAgd2lyZSBuXzEyODg7Ci0gICB3aXJlIG5fMTI5MDsKLSAgIHdpcmUgbl8xMjkxOwotICAgd2lyZSBuXzEyOTI7Ci0gICB3aXJlIG5fMTI5MzsKLSAgIHdpcmUgbl8xMjk0OwotICAgd2lyZSBuXzEyOTU7Ci0gICB3aXJlIG5fMTI5NzsKLSAgIHdpcmUgbl8xMjk4OwotICAgd2lyZSBuXzEyOTk7Ci0gICB3aXJlIG5fMTMwMTsKLSAgIHdpcmUgbl8xMzAyOwotICAgd2lyZSBuXzEzMDM7Ci0gICB3aXJlIG5fMTMwNDsKLSAgIHdpcmUgbl8xMzA1OwotICAgd2lyZSBuXzEzMDY7Ci0gICB3aXJlIG5fMTMwNzsKLSAgIHdpcmUgbl8xMzA4OwotICAgd2lyZSBuXzEzMDk7Ci0gICB3aXJlIG5fMTMxMDsKLSAgIHdpcmUgbl8xMzExOwotICAgd2lyZSBuXzEzMTI7Ci0gICB3aXJlIG5fMTMxMzsKLSAgIHdpcmUgbl8xMzE0OwotICAgd2lyZSBuXzEzMTU7Ci0gICB3aXJlIG5fMTMxNjsKLSAgIHdpcmUgbl8xMzE3OwotICAgd2lyZSBuXzEzMjA7Ci0gICB3aXJlIG5fMTMyMTsKLSAgIHdpcmUgbl8xMzI0OwotICAgd2lyZSBuXzEzMjU7Ci0gICB3aXJlIG5fMTMyNzsKLSAgIHdpcmUgbl8xMzI4OwotICAgd2lyZSBuXzEzMjk7Ci0gICB3aXJlIG5fMTMzMDsKLSAgIHdpcmUgbl8xMzMyOwotICAgd2lyZSBuXzEzMzM7Ci0gICB3aXJlIG5fMTMzNDsKLSAgIHdpcmUgbl8xMzM2OwotICAgd2lyZSBuXzEzMzc7Ci0gICB3aXJlIG5fMTMzODsKLSAgIHdpcmUgbl8xMzM5OwotICAgd2lyZSBuXzEzNDA7Ci0gICB3aXJlIG5fMTM0MTsKLSAgIHdpcmUgbl8xMzQyOwotICAgd2lyZSBuXzEzNDM7Ci0gICB3aXJlIG5fMTM0NDsKLSAgIHdpcmUgbl8xMzQ1OwotICAgd2lyZSBuXzEzNDY7Ci0gICB3aXJlIG5fMTM0NzsKLSAgIHdpcmUgbl8xMzQ4OwotICAgd2lyZSBuXzEzNTE7Ci0gICB3aXJlIG5fMTM1MjsKLSAgIHdpcmUgbl8xMzUzOwotICAgd2lyZSBuXzEzNTU7Ci0gICB3aXJlIG5fMTM1NjsKLSAgIHdpcmUgbl8xMzU3OwotICAgd2lyZSBuXzEzNTg7Ci0gICB3aXJlIG5fMTM1OTsKLSAgIHdpcmUgbl8xMzYwOwotICAgd2lyZSBuXzEzNjE7Ci0gICB3aXJlIG5fMTM2MjsKLSAgIHdpcmUgbl8xMzY0OwotICAgd2lyZSBuXzEzNjU7Ci0gICB3aXJlIG5fMTM2NjsKLSAgIHdpcmUgbl8xMzY3OwotICAgd2lyZSBuXzEzNjg7Ci0gICB3aXJlIG5fMTM2OTsKLSAgIHdpcmUgbl8xMzcwOwotICAgd2lyZSBuXzEzNzE7Ci0gICB3aXJlIG5fMTM3MjsKLSAgIHdpcmUgbl8xMzczOwotICAgd2lyZSBuXzEzNzQ7Ci0gICB3aXJlIG5fMTM3NTsKLSAgIHdpcmUgbl8xMzc2OwotICAgd2lyZSBuXzEzNzc7Ci0gICB3aXJlIG5fMTM3ODsKLSAgIHdpcmUgbl8xMzc5OwotICAgd2lyZSBuXzEzODA7Ci0gICB3aXJlIG5fMTM4MTsKLSAgIHdpcmUgbl8xMzgyOwotICAgd2lyZSBuXzEzODM7Ci0gICB3aXJlIG5fMTM4NDsKLSAgIHdpcmUgbl8xMzg1OwotICAgd2lyZSBuXzEzODY7Ci0gICB3aXJlIG5fMTM4NzsKLSAgIHdpcmUgbl8xMzg4OwotICAgd2lyZSBuXzEzODk7Ci0gICB3aXJlIG5fMTM5MDsKLSAgIHdpcmUgbl8xMzkxOwotICAgd2lyZSBuXzEzOTI7Ci0gICB3aXJlIG5fMTM5MzsKLSAgIHdpcmUgbl8xMzk0OwotICAgd2lyZSBuXzEzOTU7Ci0gICB3aXJlIG5fMTM5NjsKLSAgIHdpcmUgbl8xMzk3OwotICAgd2lyZSBuXzEzOTg7Ci0gICB3aXJlIG5fMTM5OTsKLSAgIHdpcmUgbl8xNDAwOwotICAgd2lyZSBuXzE0MDE7Ci0gICB3aXJlIG5fMTQwMjsKLSAgIHdpcmUgbl8xNDAzOwotICAgd2lyZSBuXzE0MDQ7Ci0gICB3aXJlIG5fMTQwNTsKLSAgIHdpcmUgbl8xNDA4OwotICAgd2lyZSBuXzE0MDk7Ci0gICB3aXJlIG5fMTQxMDsKLSAgIHdpcmUgbl8xNDExOwotICAgd2lyZSBuXzE0MTI7Ci0gICB3aXJlIG5fMTQxMzsKLSAgIHdpcmUgbl8xNDE0OwotICAgd2lyZSBuXzE0MTU7Ci0gICB3aXJlIG5fMTQxNjsKLSAgIHdpcmUgbl8xNDE3OwotICAgd2lyZSBuXzE0MTg7Ci0gICB3aXJlIG5fMTQxOTsKLSAgIHdpcmUgbl8xNDIwOwotICAgd2lyZSBuXzE0MjE7Ci0gICB3aXJlIG5fMTQyMjsKLSAgIHdpcmUgbl8xNDIzOwotICAgd2lyZSBuXzE0MjQ7Ci0gICB3aXJlIG5fMTQyNTsKLSAgIHdpcmUgbl8xNDI2OwotICAgd2lyZSBuXzE0Mjc7Ci0gICB3aXJlIG5fMTQyODsKLSAgIHdpcmUgbl8xNDI5OwotICAgd2lyZSBuXzE0MzA7Ci0gICB3aXJlIG5fMTQzMTsKLSAgIHdpcmUgbl8xNDMyOwotICAgd2lyZSBuXzE0MzM7Ci0gICB3aXJlIG5fMTQzNDsKLSAgIHdpcmUgbl8xNDM1OwotICAgd2lyZSBuXzE0MzY7Ci0gICB3aXJlIG5fMTQzNzsKLSAgIHdpcmUgbl8xNDM4OwotICAgd2lyZSBuXzE0Mzk7Ci0gICB3aXJlIG5fMTQ0MDsKLSAgIHdpcmUgbl8xNDQxOwotICAgd2lyZSBuXzE0NDI7Ci0gICB3aXJlIG92XzIyOTI7Ci0gICB3aXJlIHJjX2djbGs7Ci0gICB3aXJlIHJjX2djbGtfMTE5MTM7Ci0gICB3aXJlIHJjX2djbGtfMTE5MTY7Ci0gICB3aXJlIHJjX2djbGtfMTE5MTk7Ci0gICB3aXJlIHJjX2djbGtfMTE5MjI7Ci0gICB3aXJlIHJjX2djbGtfMTE5MjU7Ci0gICB3aXJlIHJjX2djbGtfMTE5Mjg7Ci0gICB3aXJlIHRocmVlX2N5Y2xlOwotICAgd2lyZSB0d29fY3ljbGU7Ci0gICB3aXJlIHVwZGF0ZV9pdDsKLQotICAgUkNfQ0dfTU9EXzMyOTFfMzI5MyBSQ19DR19ISUVSX0lOU1QyMCAoLmVuYWJsZShuXzEyMzUpLCAKLQkuY2tfaW4oY2xrKSwgCi0JLmNrX291dChyY19nY2xrKSwgCi0JLnRlc3QoUkNfQ0dfVEVTVF9QT1JUKSk7Ci0gICBSQ19DR19NT0RfMzI5MV8zMjk0IFJDX0NHX0hJRVJfSU5TVDIxICguZW5hYmxlKG5fMTM0NSksIAotCS5ja19pbihjbGspLCAKLQkuY2tfb3V0KHJjX2djbGtfMTE5MTMpLCAKLQkudGVzdChSQ19DR19URVNUX1BPUlQpKTsKLSAgIFJDX0NHX01PRF8zMjkxXzMyOTUgUkNfQ0dfSElFUl9JTlNUMjIgKC5lbmFibGUobl8xMzQ3KSwgCi0JLmNrX2luKGNsayksIAotCS5ja19vdXQocmNfZ2Nsa18xMTkxNiksIAotCS50ZXN0KFJDX0NHX1RFU1RfUE9SVCkpOwotICAgUkNfQ0dfTU9EXzMyOTFfMzI5NiBSQ19DR19ISUVSX0lOU1QyMyAoLmVuYWJsZShuXzEzNzUpLCAKLQkuY2tfaW4oY2xrKSwgCi0JLmNrX291dChyY19nY2xrXzExOTE5KSwgCi0JLnRlc3QoUkNfQ0dfVEVTVF9QT1JUKSk7Ci0gICBSQ19DR19NT0RfMzI5MV8zMjk3IFJDX0NHX0hJRVJfSU5TVDI0ICguZW5hYmxlKG5fMTI4NiksIAotCS5ja19pbihjbGspLCAKLQkuY2tfb3V0KHJjX2djbGtfMTE5MjIpLCAKLQkudGVzdChSQ19DR19URVNUX1BPUlQpKTsKLSAgIFJDX0NHX01PRF8zMjkxXzMyOTggUkNfQ0dfSElFUl9JTlNUMjUgKC5lbmFibGUobl8xMjMzKSwgCi0JLmNrX2luKGNsayksIAotCS5ja19vdXQocmNfZ2Nsa18xMTkyNSksIAotCS50ZXN0KFJDX0NHX1RFU1RfUE9SVCksIAotCS5zX3JzdChuXzg5NSkpOwotICAgUkNfQ0dfTU9EXzMyOTFfMzI5OSBSQ19DR19ISUVSX0lOU1QyNiAoLmVuYWJsZShuXzEzMjQpLCAKLQkuY2tfaW4oY2xrKSwgCi0JLmNrX291dChyY19nY2xrXzExOTI4KSwgCi0JLnRlc3QoUkNfQ0dfVEVTVF9QT1JUKSk7Ci0gICBSU0RGQ1NSSEQyQldQX1JFTUFQX1NQQ182MyBcYWNjX3JlZ1swXSAgKC5DRE4obl83ODcpLCAKLQkuU0ROKDEnYjEpLCAKLQkuQ1AocmNfZ2NsayksIAotCS5EKGFsdV9yZXN1bHRbMF0pLCAKLQkuU0koREZUX3NkaSksIAotCS5TRShERlRfc2VuKSwgCi0JLlNBVkUoMSdiMCksIAotCS5OUkVTVE9SRSgxJ2IwKSwgCi0JLlEoYWNjWzBdKSk7Ci0gICBSU0RGQ1NSSEQyQldQX1JFTUFQX1NQQ182NCBcYWNjX3JlZ1sxMF0gICguQ0ROKG5fNzg3KSwgCi0JLlNETigxJ2IxKSwgCi0JLkNQKHJjX2djbGspLCAKLQkuRChhbHVfcmVzdWx0WzEwXSksIAotCS5TSShhY2NbOV0pLCAKLQkuU0UoREZUX3NlbiksIAotCS5TQVZFKDEnYjApLCAKLQkuTlJFU1RPUkUoMSdiMCksIAotCS5RKGFjY1sxMF0pKTsKLSAgIFJTREZDU1JIRDJCV1BfUkVNQVBfU1BDXzY1IFxhY2NfcmVnWzExXSAgKC5DRE4obl83ODcpLCAKLQkuU0ROKDEnYjEpLCAKLQkuQ1AocmNfZ2NsayksIAotCS5EKGFsdV9yZXN1bHRbMTFdKSwgCi0JLlNJKGFjY1sxMF0pLCAKLQkuU0UoREZUX3NlbiksIAotCS5TQVZFKDEnYjApLCAKLQkuTlJFU1RPUkUoMSdiMCksIAotCS5RKGFjY1sxMV0pKTsKLSAgIFJTREZDU1JIRDJCV1BfUkVNQVBfU1BDXzY2IFxhY2NfcmVnWzEyXSAgKC5DRE4obl83ODcpLCAKLQkuU0ROKDEnYjEpLCAKLQkuQ1AocmNfZ2NsayksIAotCS5EKGFsdV9yZXN1bHRbMTJdKSwgCi0JLlNJKGFjY1sxMV0pLCAKLQkuU0UoREZUX3NlbiksIAotCS5TQVZFKDEnYjApLCAKLQkuTlJFU1RPUkUoMSdiMCksIAotCS5RKGFjY1sxMl0pKTsKLSAgIFJTREZDU1JIRDJCV1BfUkVNQVBfU1BDXzY3IFxhY2NfcmVnWzEzXSAgKC5DRE4obl83ODcpLCAKLQkuU0ROKDEnYjEpLCAKLQkuQ1AocmNfZ2NsayksIAotCS5EKGFsdV9yZXN1bHRbMTNdKSwgCi0JLlNJKGFjY1sxMl0pLCAKLQkuU0UoREZUX3NlbiksIAotCS5TQVZFKDEnYjApLCAKLQkuTlJFU1RPUkUoMSdiMCksIAotCS5RKGFjY1sxM10pKTsKLSAgIFJTREZDU1JIRDJCV1BfUkVNQVBfU1BDXzY4IFxhY2NfcmVnWzE0XSAgKC5DRE4obl83ODcpLCAKLQkuU0ROKDEnYjEpLCAKLQkuQ1AocmNfZ2NsayksIAotCS5EKGFsdV9yZXN1bHRbMTRdKSwgCi0JLlNJKGFjY1sxM10pLCAKLQkuU0UoREZUX3NlbiksIAotCS5TQVZFKDEnYjApLCAKLQkuTlJFU1RPUkUoMSdiMCksIAotCS5RKGFjY1sxNF0pKTsKLSAgIFJTREZDU1JIRDJCV1BfUkVNQVBfU1BDXzY5IFxhY2NfcmVnWzE1XSAgKC5DRE4obl83ODcpLCAKLQkuU0ROKDEnYjEpLCAKLQkuQ1AocmNfZ2NsayksIAotCS5EKGFsdV9yZXN1bHRbMTVdKSwgCi0JLlNJKGFjY1sxNF0pLCAKLQkuU0UoREZUX3NlbiksIAotCS5TQVZFKDEnYjApLCAKLQkuTlJFU1RPUkUoMSdiMCksIAotCS5RKGFjY1sxNV0pKTsKLSAgIFJTREZDU1JIRDJCV1BfUkVNQVBfU1BDXzcwIFxhY2NfcmVnWzE2XSAgKC5DRE4obl83ODcpLCAKLQkuU0ROKDEnYjEpLCAKLQkuQ1AocmNfZ2NsayksIAotCS5EKGFsdV9yZXN1bHRbMTZdKSwgCi0JLlNJKGFjY1sxNV0pLCAKLQkuU0UoREZUX3NlbiksIAotCS5TQVZFKDEnYjApLCAKLQkuTlJFU1RPUkUoMSdiMCksIAotCS5RKGFjY1sxNl0pKTsKLSAgIFJTREZDU1JIRDJCV1BfUkVNQVBfU1BDXzcxIFxhY2NfcmVnWzE3XSAgKC5DRE4obl83ODcpLCAKLQkuU0ROKDEnYjEpLCAKLQkuQ1AocmNfZ2NsayksIAotCS5EKGFsdV9yZXN1bHRbMTddKSwgCi0JLlNJKGFjY1sxNl0pLCAKLQkuU0UoREZUX3NlbiksIAotCS5TQVZFKDEnYjApLCAKLQkuTlJFU1RPUkUoMSdiMCksIAotCS5RKGFjY1sxN10pKTsKLSAgIFJTREZDU1JIRDJCV1BfUkVNQVBfU1BDXzcyIFxhY2NfcmVnWzE4XSAgKC5DRE4obl83ODcpLCAKLQkuU0ROKDEnYjEpLCAKLQkuQ1AocmNfZ2NsayksIAotCS5EKGFsdV9yZXN1bHRbMThdKSwgCi0JLlNJKGFjY1sxN10pLCAKLQkuU0UoREZUX3NlbiksIAotCS5TQVZFKDEnYjApLCAKLQkuTlJFU1RPUkUoMSdiMCksIAotCS5RKGFjY1sxOF0pKTsKLSAgIFJTREZDU1JIRDJCV1BfUkVNQVBfU1BDXzczIFxhY2NfcmVnWzE5XSAgKC5DRE4obl83ODcpLCAKLQkuU0ROKDEnYjEpLCAKLQkuQ1AocmNfZ2NsayksIAotCS5EKGFsdV9yZXN1bHRbMTldKSwgCi0JLlNJKGFjY1sxOF0pLCAKLQkuU0UoREZUX3NlbiksIAotCS5TQVZFKDEnYjApLCAKLQkuTlJFU1RPUkUoMSdiMCksIAotCS5RKGFjY1sxOV0pKTsKLSAgIFJTREZDU1JIRDJCV1BfUkVNQVBfU1BDXzc0IFxhY2NfcmVnWzFdICAoLkNETihuXzc4NyksIAotCS5TRE4oMSdiMSksIAotCS5DUChyY19nY2xrKSwgCi0JLkQoYWx1X3Jlc3VsdFsxXSksIAotCS5TSShhY2NbMF0pLCAKLQkuU0UoREZUX3NlbiksIAotCS5TQVZFKDEnYjApLCAKLQkuTlJFU1RPUkUoMSdiMCksIAotCS5RKGFjY1sxXSkpOwotICAgUlNERkNTUkhEMkJXUF9SRU1BUF9TUENfNzUgXGFjY19yZWdbMjBdICAoLkNETihuXzc4NyksIAotCS5TRE4oMSdiMSksIAotCS5DUChyY19nY2xrKSwgCi0JLkQoYWx1X3Jlc3VsdFsyMF0pLCAKLQkuU0koYWNjWzE5XSksIAotCS5TRShERlRfc2VuKSwgCi0JLlNBVkUoMSdiMCksIAotCS5OUkVTVE9SRSgxJ2IwKSwgCi0JLlEoYWNjWzIwXSkpOwotICAgUlNERkNTUkhEMkJXUF9SRU1BUF9TUENfNzYgXGFjY19yZWdbMjFdICAoLkNETihuXzc4NyksIAotCS5TRE4oMSdiMSksIAotCS5DUChyY19nY2xrKSwgCi0JLkQoYWx1X3Jlc3VsdFsyMV0pLCAKLQkuU0koYWNjWzIwXSksIAotCS5TRShERlRfc2VuKSwgCi0JLlNBVkUoMSdiMCksIAotCS5OUkVTVE9SRSgxJ2IwKSwgCi0JLlEoYWNjWzIxXSkpOwotICAgUlNERkNTUkhEMkJXUF9SRU1BUF9TUENfNzcgXGFjY19yZWdbMjJdICAoLkNETihuXzc4NyksIAotCS5TRE4oMSdiMSksIAotCS5DUChyY19nY2xrKSwgCi0JLkQoYWx1X3Jlc3VsdFsyMl0pLCAKLQkuU0koYWNjWzIxXSksIAotCS5TRShERlRfc2VuKSwgCi0JLlNBVkUoMSdiMCksIAotCS5OUkVTVE9SRSgxJ2IwKSwgCi0JLlEoYWNjWzIyXSkpOwotICAgUlNERkNTUkhEMkJXUF9SRU1BUF9TUENfNzggXGFjY19yZWdbMjNdICAoLkNETihuXzc4NyksIAotCS5TRE4oMSdiMSksIAotCS5DUChyY19nY2xrKSwgCi0JLkQoYWx1X3Jlc3VsdFsyM10pLCAKLQkuU0koREZUX3NkaV8yKSwgCi0JLlNFKERGVF9zZW4pLCAKLQkuU0FWRSgxJ2IwKSwgCi0JLk5SRVNUT1JFKDEnYjApLCAKLQkuUShhY2NbMjNdKSk7Ci0gICBSU0RGQ1NSSEQyQldQX1JFTUFQX1NQQ183OSBcYWNjX3JlZ1syNF0gICguQ0ROKG5fNzg3KSwgCi0JLlNETigxJ2IxKSwgCi0JLkNQKHJjX2djbGspLCAKLQkuRChhbHVfcmVzdWx0WzI0XSksIAotCS5TSShhY2NbMjNdKSwgCi0JLlNFKERGVF9zZW4pLCAKLQkuU0FWRSgxJ2IwKSwgCi0JLk5SRVNUT1JFKDEnYjApLCAKLQkuUShhY2NbMjRdKSk7Ci0gICBSU0RGQ1NSSEQyQldQX1JFTUFQX1NQQ184MCBcYWNjX3JlZ1syNV0gICguQ0ROKG5fNzg3KSwgCi0JLlNETigxJ2IxKSwgCi0JLkNQKHJjX2djbGspLCAKLQkuRChhbHVfcmVzdWx0WzI1XSksIAotCS5TSShhY2NbMjRdKSwgCi0JLlNFKERGVF9zZW4pLCAKLQkuU0FWRSgxJ2IwKSwgCi0JLk5SRVNUT1JFKDEnYjApLCAKLQkuUShhY2NbMjVdKSk7Ci0gICBSU0RGQ1NSSEQyQldQX1JFTUFQX1NQQ184MSBcYWNjX3JlZ1syNl0gICguQ0ROKG5fNzg3KSwgCi0JLlNETigxJ2IxKSwgCi0JLkNQKHJjX2djbGspLCAKLQkuRChhbHVfcmVzdWx0WzI2XSksIAotCS5TSShhY2NbMjVdKSwgCi0JLlNFKERGVF9zZW4pLCAKLQkuU0FWRSgxJ2IwKSwgCi0JLk5SRVNUT1JFKDEnYjApLCAKLQkuUShhY2NbMjZdKSk7Ci0gICBSU0RGQ1NSSEQyQldQX1JFTUFQX1NQQ184MiBcYWNjX3JlZ1syN10gICguQ0ROKG5fNzg3KSwgCi0JLlNETigxJ2IxKSwgCi0JLkNQKHJjX2djbGspLCAKLQkuRChhbHVfcmVzdWx0WzI3XSksIAotCS5TSShhY2NbMjZdKSwgCi0JLlNFKERGVF9zZW4pLCAKLQkuU0FWRSgxJ2IwKSwgCi0JLk5SRVNUT1JFKDEnYjApLCAKLQkuUShhY2NbMjddKSk7Ci0gICBSU0RGQ1NSSEQyQldQX1JFTUFQX1NQQ184MyBcYWNjX3JlZ1syOF0gICguQ0ROKG5fNzg3KSwgCi0JLlNETigxJ2IxKSwgCi0JLkNQKHJjX2djbGspLCAKLQkuRChhbHVfcmVzdWx0WzI4XSksIAotCS5TSShhY2NbMjddKSwgCi0JLlNFKERGVF9zZW4pLCAKLQkuU0FWRSgxJ2IwKSwgCi0JLk5SRVNUT1JFKDEnYjApLCAKLQkuUShhY2NbMjhdKSk7Ci0gICBSU0RGQ1NSSEQyQldQX1JFTUFQX1NQQ184NCBcYWNjX3JlZ1syOV0gICguQ0ROKG5fNzg3KSwgCi0JLlNETigxJ2IxKSwgCi0JLkNQKHJjX2djbGspLCAKLQkuRChhbHVfcmVzdWx0WzI5XSksIAotCS5TSShhY2NbMjhdKSwgCi0JLlNFKERGVF9zZW4pLCAKLQkuU0FWRSgxJ2IwKSwgCi0JLk5SRVNUT1JFKDEnYjApLCAKLQkuUShhY2NbMjldKSk7Ci0gICBSU0RGQ1NSSEQyQldQX1JFTUFQX1NQQ184NSBcYWNjX3JlZ1syXSAgKC5DRE4obl83ODcpLCAKLQkuU0ROKDEnYjEpLCAKLQkuQ1AocmNfZ2NsayksIAotCS5EKGFsdV9yZXN1bHRbMl0pLCAKLQkuU0koYWNjWzFdKSwgCi0JLlNFKERGVF9zZW4pLCAKLQkuU0FWRSgxJ2IwKSwgCi0JLk5SRVNUT1JFKDEnYjApLCAKLQkuUShhY2NbMl0pKTsKLSAgIFJTREZDU1JIRDJCV1BfUkVNQVBfU1BDXzg2IFxhY2NfcmVnWzMwXSAgKC5DRE4obl83ODcpLCAKLQkuU0ROKDEnYjEpLCAKLQkuQ1AocmNfZ2NsayksIAotCS5EKGFsdV9yZXN1bHRbMzBdKSwgCi0JLlNJKGFjY1syOV0pLCAKLQkuU0UoREZUX3NlbiksIAotCS5TQVZFKDEnYjApLCAKLQkuTlJFU1RPUkUoMSdiMCksIAotCS5RKGFjY1szMF0pKTsKLSAgIFJTREZDU1JIRDJCV1BfUkVNQVBfU1BDXzg3IFxhY2NfcmVnWzMxXSAgKC5DRE4obl83ODcpLCAKLQkuU0ROKDEnYjEpLCAKLQkuQ1AocmNfZ2NsayksIAotCS5EKGFsdV9yZXN1bHRbMzFdKSwgCi0JLlNJKGFjY1szMF0pLCAKLQkuU0UoREZUX3NlbiksIAotCS5TQVZFKDEnYjApLCAKLQkuTlJFU1RPUkUoMSdiMCksIAotCS5RKGFjY1szMV0pKTsKLSAgIFJTREZDU1JIRDJCV1BfUkVNQVBfU1BDXzg4IFxhY2NfcmVnWzNdICAoLkNETihuXzc4NyksIAotCS5TRE4oMSdiMSksIAotCS5DUChyY19nY2xrKSwgCi0JLkQoYWx1X3Jlc3VsdFszXSksIAotCS5TSShhY2NbMl0pLCAKLQkuU0UoREZUX3NlbiksIAotCS5TQVZFKDEnYjApLCAKLQkuTlJFU1RPUkUoMSdiMCksIAotCS5RKGFjY1szXSkpOwotICAgUlNERkNTUkhEMkJXUF9SRU1BUF9TUENfODkgXGFjY19yZWdbNF0gICguQ0ROKG5fNzg3KSwgCi0JLlNETigxJ2IxKSwgCi0JLkNQKHJjX2djbGspLCAKLQkuRChhbHVfcmVzdWx0WzRdKSwgCi0JLlNJKGFjY1szXSksIAotCS5TRShERlRfc2VuKSwgCi0JLlNBVkUoMSdiMCksIAotCS5OUkVTVE9SRSgxJ2IwKSwgCi0JLlEoYWNjWzRdKSk7Ci0gICBSU0RGQ1NSSEQyQldQX1JFTUFQX1NQQ185MCBcYWNjX3JlZ1s1XSAgKC5DRE4obl83ODcpLCAKLQkuU0ROKDEnYjEpLCAKLQkuQ1AocmNfZ2NsayksIAotCS5EKGFsdV9yZXN1bHRbNV0pLCAKLQkuU0koYWNjWzRdKSwgCi0JLlNFKERGVF9zZW4pLCAKLQkuU0FWRSgxJ2IwKSwgCi0JLk5SRVNUT1JFKDEnYjApLCAKLQkuUShhY2NbNV0pKTsKLSAgIFJTREZDU1JIRDJCV1BfUkVNQVBfU1BDXzkxIFxhY2NfcmVnWzZdICAoLkNETihuXzc4NyksIAotCS5TRE4oMSdiMSksIAotCS5DUChyY19nY2xrKSwgCi0JLkQoYWx1X3Jlc3VsdFs2XSksIAotCS5TSShhY2NbNV0pLCAKLQkuU0UoREZUX3NlbiksIAotCS5TQVZFKDEnYjApLCAKLQkuTlJFU1RPUkUoMSdiMCksIAotCS5RKGFjY1s2XSkpOwotICAgUlNERkNTUkhEMkJXUF9SRU1BUF9TUENfOTIgXGFjY19yZWdbN10gICguQ0ROKG5fNzg3KSwgCi0JLlNETigxJ2IxKSwgCi0JLkNQKHJjX2djbGspLCAKLQkuRChhbHVfcmVzdWx0WzddKSwgCi0JLlNJKGFjY1s2XSksIAotCS5TRShERlRfc2VuKSwgCi0JLlNBVkUoMSdiMCksIAotCS5OUkVTVE9SRSgxJ2IwKSwgCi0JLlEoYWNjWzddKSk7Ci0gICBSU0RGQ1NSSEQyQldQX1JFTUFQX1NQQ185MyBcYWNjX3JlZ1s4XSAgKC5DRE4obl83ODcpLCAKLQkuU0ROKDEnYjEpLCAKLQkuQ1AocmNfZ2NsayksIAotCS5EKGFsdV9yZXN1bHRbOF0pLCAKLQkuU0koYWNjWzddKSwgCi0JLlNFKERGVF9zZW4pLCAKLQkuU0FWRSgxJ2IwKSwgCi0JLk5SRVNUT1JFKDEnYjApLCAKLQkuUShhY2NbOF0pKTsKLSAgIFJTREZDU1JIRDJCV1BfUkVNQVBfU1BDXzk0IFxhY2NfcmVnWzldICAoLkNETihuXzc4NyksIAotCS5TRE4oMSdiMSksIAotCS5DUChyY19nY2xrKSwgCi0JLkQoYWx1X3Jlc3VsdFs5XSksIAotCS5TSShhY2NbOF0pLCAKLQkuU0UoREZUX3NlbiksIAotCS5TQVZFKDEnYjApLCAKLQkuTlJFU1RPUkUoMSdiMCksIAotCS5RKGFjY1s5XSkpOwotICAgUlNERkNTUkhEMkJXUF9SRU1BUF9TUENfOTUgXGFsdV9jbWRfcmVnWzBdICAoLkNETihuXzc4NyksIAotCS5TRE4oMSdiMSksIAotCS5DUChjbGspLCAKLQkuRChuXzEyMjcpLCAKLQkuU0koYWNjWzMxXSksIAotCS5TRShERlRfc2VuKSwgCi0JLlNBVkUoMSdiMCksIAotCS5OUkVTVE9SRSgxJ2IwKSwgCi0JLlEoYWx1X2NtZFswXSkpOwotICAgUlNERkNTUkhEMkJXUF9SRU1BUF9TUENfOTYgXGFsdV9jbWRfcmVnWzFdICAoLkNETihuXzc4NyksIAotCS5TRE4oMSdiMSksIAotCS5DUChjbGspLCAKLQkuRChuXzEyMjIpLCAKLQkuU0koYWx1X2NtZFswXSksIAotCS5TRShERlRfc2VuKSwgCi0JLlNBVkUoMSdiMCksIAotCS5OUkVTVE9SRSgxJ2IwKSwgCi0JLlEoYWx1X2NtZFsxXSkpOwotICAgUlNERkNTUkhEMkJXUF9SRU1BUF9TUENfOTcgXGFsdV9jbWRfcmVnWzJdICAoLkNETihuXzc4NyksIAotCS5TRE4oMSdiMSksIAotCS5DUChjbGspLCAKLQkuRChuXzEyMjUpLCAKLQkuU0koYWx1X2NtZFsxXSksIAotCS5TRShERlRfc2VuKSwgCi0JLlNBVkUoMSdiMCksIAotCS5OUkVTVE9SRSgxJ2IwKSwgCi0JLlEoYWx1X2NtZFsyXSkpOwotICAgUlNERkNTUkhEMkJXUF9SRU1BUF9TUENfOTggXGFyMF9yZWdbMF0gICguQ0ROKG5fNzg3KSwgCi0JLlNETigxJ2IxKSwgCi0JLkNQKHJjX2djbGtfMTE5MTMpLCAKLQkuRChuXzEzNzcpLCAKLQkuU0koYWx1X2NtZFsyXSksIAotCS5TRShERlRfc2VuKSwgCi0JLlNBVkUoMSdiMCksIAotCS5OUkVTVE9SRSgxJ2IwKSwgCi0JLlEoYXIwWzBdKSk7Ci0gICBSU0RGQ1NSSEQyQldQX1JFTUFQX1NQQ185OSBcYXIwX3JlZ1sxMF0gICguQ0ROKG5fNzg3KSwgCi0JLlNETigxJ2IxKSwgCi0JLkNQKHJjX2djbGtfMTE5MTMpLCAKLQkuRChuXzEyMTQpLCAKLQkuU0koYXIwWzldKSwgCi0JLlNFKERGVF9zZW4pLCAKLQkuU0FWRSgxJ2IwKSwgCi0JLk5SRVNUT1JFKDEnYjApLCAKLQkuUShhcjBbMTBdKSk7Ci0gICBSU0RGQ1NSSEQyQldQX1JFTUFQX1NQQ18xMDAgXGFyMF9yZWdbMTFdICAoLkNETihuXzc4NyksIAotCS5TRE4oMSdiMSksIAotCS5DUChyY19nY2xrXzExOTEzKSwgCi0JLkQobl8xMjEyKSwgCi0JLlNJKGFyMFsxMF0pLCAKLQkuU0UoREZUX3NlbiksIAotCS5TQVZFKDEnYjApLCAKLQkuTlJFU1RPUkUoMSdiMCksIAotCS5RKGFyMFsxMV0pKTsKLSAgIFJTREZDU1JIRDJCV1BfUkVNQVBfU1BDXzEwMSBcYXIwX3JlZ1sxMl0gICguQ0ROKG5fNzg3KSwgCi0JLlNETigxJ2IxKSwgCi0JLkNQKHJjX2djbGtfMTE5MTMpLCAKLQkuRChuXzEyMDgpLCAKLQkuU0koYXIwWzExXSksIAotCS5TRShERlRfc2VuKSwgCi0JLlNBVkUoMSdiMCksIAotCS5OUkVTVE9SRSgxJ2IwKSwgCi0JLlEoYXIwWzEyXSkpOwotICAgUlNERkNTUkhEMkJXUF9SRU1BUF9TUENfMTAyIFxhcjBfcmVnWzEzXSAgKC5DRE4obl83ODcpLCAKLQkuU0ROKDEnYjEpLCAKLQkuQ1AocmNfZ2Nsa18xMTkxMyksIAotCS5EKG5fMTIwNCksIAotCS5TSShhcjBbMTJdKSwgCi0JLlNFKERGVF9zZW4pLCAKLQkuU0FWRSgxJ2IwKSwgCi0JLk5SRVNUT1JFKDEnYjApLCAKLQkuUShhcjBbMTNdKSk7Ci0gICBSU0RGQ1NSSEQyQldQX1JFTUFQX1NQQ18xMDMgXGFyMF9yZWdbMTRdICAoLkNETihuXzc4NyksIAotCS5TRE4oMSdiMSksIAotCS5DUChyY19nY2xrXzExOTEzKSwgCi0JLkQobl8xMjAwKSwgCi0JLlNJKGFyMFsxM10pLCAKLQkuU0UoREZUX3NlbiksIAotCS5TQVZFKDEnYjApLCAKLQkuTlJFU1RPUkUoMSdiMCksIAotCS5RKGFyMFsxNF0pKTsKLSAgIFJTREZDU1JIRDJCV1BfUkVNQVBfU1BDXzEwNCBcYXIwX3JlZ1sxNV0gICguQ0ROKG5fNzg3KSwgCi0JLlNETigxJ2IxKSwgCi0JLkNQKHJjX2djbGtfMTE5MTMpLCAKLQkuRChuXzExOTQpLCAKLQkuU0koYXIwWzE0XSksIAotCS5TRShERlRfc2VuKSwgCi0JLlNBVkUoMSdiMCksIAotCS5OUkVTVE9SRSgxJ2IwKSwgCi0JLlEoYXIwWzE1XSkpOwotICAgUlNERkNTUkhEMkJXUF9SRU1BUF9TUENfMTA1IFxhcjBfcmVnWzFdICAoLkNETihuXzc4NyksIAotCS5TRE4oMSdiMSksIAotCS5DUChyY19nY2xrXzExOTEzKSwgCi0JLkQobl8xMzg0KSwgCi0JLlNJKGFyMFswXSksIAotCS5TRShERlRfc2VuKSwgCi0JLlNBVkUoMSdiMCksIAotCS5OUkVTVE9SRSgxJ2IwKSwgCi0JLlEoYXIwWzFdKSk7Ci0gICBSU0RGQ1NSSEQyQldQX1JFTUFQX1NQQ18xMDYgXGFyMF9yZWdbMl0gICguQ0ROKG5fNzg3KSwgCi0JLlNETigxJ2IxKSwgCi0JLkNQKHJjX2djbGtfMTE5MTMpLCAKLQkuRChuXzEzNDEpLCAKLQkuU0koYXIwWzFdKSwgCi0JLlNFKERGVF9zZW4pLCAKLQkuU0FWRSgxJ2IwKSwgCi0JLk5SRVNUT1JFKDEnYjApLCAKLQkuUShhcjBbMl0pKTsKLSAgIFJTREZDU1JIRDJCV1BfUkVNQVBfU1BDXzEwNyBcYXIwX3JlZ1szXSAgKC5DRE4obl83ODcpLCAKLQkuU0ROKDEnYjEpLCAKLQkuQ1AocmNfZ2Nsa18xMTkxMyksIAotCS5EKG5fMTMxMCksIAotCS5TSShhcjBbMl0pLCAKLQkuU0UoREZUX3NlbiksIAotCS5TQVZFKDEnYjApLCAKLQkuTlJFU1RPUkUoMSdiMCksIAotCS5RKGFyMFszXSkpOwotICAgUlNERkNTUkhEMkJXUF9SRU1BUF9TUENfMTA4IFxhcjBfcmVnWzRdICAoLkNETihuXzc4NyksIAotCS5TRE4oMSdiMSksIAotCS5DUChyY19nY2xrXzExOTEzKSwgCi0JLkQobl8xMjc2KSwgCi0JLlNJKGFyMFszXSksIAotCS5TRShERlRfc2VuKSwgCi0JLlNBVkUoMSdiMCksIAotCS5OUkVTVE9SRSgxJ2IwKSwgCi0JLlEoYXIwWzRdKSk7Ci0gICBSU0RGQ1NSSEQyQldQX1JFTUFQX1NQQ18xMDkgXGFyMF9yZWdbNV0gICguQ0ROKG5fNzg3KSwgCi0JLlNETigxJ2IxKSwgCi0JLkNQKHJjX2djbGtfMTE5MTMpLCAKLQkuRChuXzEyNjMpLCAKLQkuU0koYXIwWzRdKSwgCi0JLlNFKERGVF9zZW4pLCAKLQkuU0FWRSgxJ2IwKSwgCi0JLk5SRVNUT1JFKDEnYjApLCAKLQkuUShhcjBbNV0pKTsKLSAgIFJTREZDU1JIRDJCV1BfUkVNQVBfU1BDXzExMCBcYXIwX3JlZ1s2XSAgKC5DRE4obl83ODcpLCAKLQkuU0ROKDEnYjEpLCAKLQkuQ1AocmNfZ2Nsa18xMTkxMyksIAotCS5EKG5fMTI1MCksIAotCS5TSShhcjBbNV0pLCAKLQkuU0UoREZUX3NlbiksIAotCS5TQVZFKDEnYjApLCAKLQkuTlJFU1RPUkUoMSdiMCksIAotCS5RKGFyMFs2XSkpOwotICAgUlNERkNTUkhEMkJXUF9SRU1BUF9TUENfMTExIFxhcjBfcmVnWzddICAoLkNETihuXzc4NyksIAotCS5TRE4oMSdiMSksIAotCS5DUChyY19nY2xrXzExOTEzKSwgCi0JLkQobl8xMjQyKSwgCi0JLlNJKGFyMFs2XSksIAotCS5TRShERlRfc2VuKSwgCi0JLlNBVkUoMSdiMCksIAotCS5OUkVTVE9SRSgxJ2IwKSwgCi0JLlEoYXIwWzddKSk7Ci0gICBSU0RGQ1NSSEQyQldQX1JFTUFQX1NQQ18xMTIgXGFyMF9yZWdbOF0gICguQ0ROKG5fNzg3KSwgCi0JLlNETigxJ2IxKSwgCi0JLkNQKHJjX2djbGtfMTE5MTMpLCAKLQkuRChuXzEyMjkpLCAKLQkuU0koYXIwWzddKSwgCi0JLlNFKERGVF9zZW4pLCAKLQkuU0FWRSgxJ2IwKSwgCi0JLk5SRVNUT1JFKDEnYjApLCAKLQkuUShhcjBbOF0pKTsKLSAgIFJTREZDU1JIRDJCV1BfUkVNQVBfU1BDXzExMyBcYXIwX3JlZ1s5XSAgKC5DRE4obl83ODcpLCAKLQkuU0ROKDEnYjEpLCAKLQkuQ1AocmNfZ2Nsa18xMTkxMyksIAotCS5EKG5fMTIyMCksIAotCS5TSShhcjBbOF0pLCAKLQkuU0UoREZUX3NlbiksIAotCS5TQVZFKDEnYjApLCAKLQkuTlJFU1RPUkUoMSdiMCksIAotCS5RKGFyMFs5XSkpOwotICAgUlNERkNTUkhEMkJXUF9SRU1BUF9TUENfMTE0IFxhcjFfcmVnWzBdICAoLkNETihuXzc4NyksIAotCS5TRE4oMSdiMSksIAotCS5DUChyY19nY2xrXzExOTE2KSwgCi0JLkQobl8xMzc4KSwgCi0JLlNJKGFyMFsxNV0pLCAKLQkuU0UoREZUX3NlbiksIAotCS5TQVZFKDEnYjApLCAKLQkuTlJFU1RPUkUoMSdiMCksIAotCS5RKGFyMVswXSkpOwotICAgUlNERkNTUkhEMkJXUF9SRU1BUF9TUENfMTE1IFxhcjFfcmVnWzEwXSAgKC5DRE4obl83ODcpLCAKLQkuU0ROKDEnYjEpLCAKLQkuQ1AocmNfZ2Nsa18xMTkxNiksIAotCS5EKG5fMTIxNiksIAotCS5TSShhcjFbOV0pLCAKLQkuU0UoREZUX3NlbiksIAotCS5TQVZFKDEnYjApLCAKLQkuTlJFU1RPUkUoMSdiMCksIAotCS5RKGFyMVsxMF0pKTsKLSAgIFJTREZDU1JIRDJCV1BfUkVNQVBfU1BDXzExNiBcYXIxX3JlZ1sxMV0gICguQ0ROKG5fNzg3KSwgCi0JLlNETigxJ2IxKSwgCi0JLkNQKHJjX2djbGtfMTE5MTYpLCAKLQkuRChuXzEyMTApLCAKLQkuU0koYXIxWzEwXSksIAotCS5TRShERlRfc2VuKSwgCi0JLlNBVkUoMSdiMCksIAotCS5OUkVTVE9SRSgxJ2IwKSwgCi0JLlEoYXIxWzExXSkpOwotICAgUlNERkNTUkhEMkJXUF9SRU1BUF9TUENfMTE3IFxhcjFfcmVnWzEyXSAgKC5DRE4obl83ODcpLCAKLQkuU0ROKDEnYjEpLCAKLQkuQ1AocmNfZ2Nsa18xMTkxNiksIAotCS5EKG5fMTIwNiksIAotCS5TSShhcjFbMTFdKSwgCi0JLlNFKERGVF9zZW4pLCAKLQkuU0FWRSgxJ2IwKSwgCi0JLk5SRVNUT1JFKDEnYjApLCAKLQkuUShhcjFbMTJdKSk7Ci0gICBSU0RGQ1NSSEQyQldQX1JFTUFQX1NQQ18xMTggXGFyMV9yZWdbMTNdICAoLkNETihuXzc4NyksIAotCS5TRE4oMSdiMSksIAotCS5DUChyY19nY2xrXzExOTE2KSwgCi0JLkQobl8xMjAyKSwgCi0JLlNJKGFyMVsxMl0pLCAKLQkuU0UoREZUX3NlbiksIAotCS5TQVZFKDEnYjApLCAKLQkuTlJFU1RPUkUoMSdiMCksIAotCS5RKGFyMVsxM10pKTsKLSAgIFJTREZDU1JIRDJCV1BfUkVNQVBfU1BDXzExOSBcYXIxX3JlZ1sxNF0gICguQ0ROKG5fNzg3KSwgCi0JLlNETigxJ2IxKSwgCi0JLkNQKHJjX2djbGtfMTE5MTYpLCAKLQkuRChuXzExOTgpLCAKLQkuU0koYXIxWzEzXSksIAotCS5TRShERlRfc2VuKSwgCi0JLlNBVkUoMSdiMCksIAotCS5OUkVTVE9SRSgxJ2IwKSwgCi0JLlEoYXIxWzE0XSkpOwotICAgUlNERkNTUkhEMkJXUF9SRU1BUF9TUENfMTIwIFxhcjFfcmVnWzE1XSAgKC5DRE4obl83ODcpLCAKLQkuU0ROKDEnYjEpLCAKLQkuQ1AocmNfZ2Nsa18xMTkxNiksIAotCS5EKG5fMTE5NiksIAotCS5TSShhcjFbMTRdKSwgCi0JLlNFKERGVF9zZW4pLCAKLQkuU0FWRSgxJ2IwKSwgCi0JLk5SRVNUT1JFKDEnYjApLCAKLQkuUShhcjFbMTVdKSk7Ci0gICBSU0RGQ1NSSEQyQldQX1JFTUFQX1NQQ18xMjEgXGFyMV9yZWdbMV0gICguQ0ROKG5fNzg3KSwgCi0JLlNETigxJ2IxKSwgCi0JLkNQKHJjX2djbGtfMTE5MTYpLCAKLQkuRChuXzEzODYpLCAKLQkuU0koYXIxWzBdKSwgCi0JLlNFKERGVF9zZW4pLCAKLQkuU0FWRSgxJ2IwKSwgCi0JLk5SRVNUT1JFKDEnYjApLCAKLQkuUShhcjFbMV0pKTsKLSAgIFJTREZDU1JIRDJCV1BfUkVNQVBfU1BDXzEyMiBcYXIxX3JlZ1syXSAgKC5DRE4obl83ODcpLCAKLQkuU0ROKDEnYjEpLCAKLQkuQ1AocmNfZ2Nsa18xMTkxNiksIAotCS5EKG5fMTM0MyksIAotCS5TSShhcjFbMV0pLCAKLQkuU0UoREZUX3NlbiksIAotCS5TQVZFKDEnYjApLCAKLQkuTlJFU1RPUkUoMSdiMCksIAotCS5RKGFyMVsyXSkpOwotICAgUlNERkNTUkhEMkJXUF9SRU1BUF9TUENfMTIzIFxhcjFfcmVnWzNdICAoLkNETihuXzc4NyksIAotCS5TRE4oMSdiMSksIAotCS5DUChyY19nY2xrXzExOTE2KSwgCi0JLkQobl8xMzA4KSwgCi0JLlNJKGFyMVsyXSksIAotCS5TRShERlRfc2VuKSwgCi0JLlNBVkUoMSdiMCksIAotCS5OUkVTVE9SRSgxJ2IwKSwgCi0JLlEoYXIxWzNdKSk7Ci0gICBSU0RGQ1NSSEQyQldQX1JFTUFQX1NQQ18xMjQgXGFyMV9yZWdbNF0gICguQ0ROKG5fNzg3KSwgCi0JLlNETigxJ2IxKSwgCi0JLkNQKHJjX2djbGtfMTE5MTYpLCAKLQkuRChuXzEyODIpLCAKLQkuU0koYXIxWzNdKSwgCi0JLlNFKERGVF9zZW4pLCAKLQkuU0FWRSgxJ2IwKSwgCi0JLk5SRVNUT1JFKDEnYjApLCAKLQkuUShhcjFbNF0pKTsKLSAgIFJTREZDU1JIRDJCV1BfUkVNQVBfU1BDXzEyNSBcYXIxX3JlZ1s1XSAgKC5DRE4obl83ODcpLCAKLQkuU0ROKDEnYjEpLCAKLQkuQ1AocmNfZ2Nsa18xMTkxNiksIAotCS5EKG5fMTI2NSksIAotCS5TSShhcjFbNF0pLCAKLQkuU0UoREZUX3NlbiksIAotCS5TQVZFKDEnYjApLCAKLQkuTlJFU1RPUkUoMSdiMCksIAotCS5RKGFyMVs1XSkpOwotICAgUlNERkNTUkhEMkJXUF9SRU1BUF9TUENfMTI2IFxhcjFfcmVnWzZdICAoLkNETihuXzc4NyksIAotCS5TRE4oMSdiMSksIAotCS5DUChyY19nY2xrXzExOTE2KSwgCi0JLkQobl8xMjQ4KSwgCi0JLlNJKGFyMVs1XSksIAotCS5TRShERlRfc2VuKSwgCi0JLlNBVkUoMSdiMCksIAotCS5OUkVTVE9SRSgxJ2IwKSwgCi0JLlEoYXIxWzZdKSk7Ci0gICBSU0RGQ1NSSEQyQldQX1JFTUFQX1NQQ18xMjcgXGFyMV9yZWdbN10gICguQ0ROKG5fNzg3KSwgCi0JLlNETigxJ2IxKSwgCi0JLkNQKHJjX2djbGtfMTE5MTYpLCAKLQkuRChuXzEyMzkpLCAKLQkuU0koYXIxWzZdKSwgCi0JLlNFKERGVF9zZW4pLCAKLQkuU0FWRSgxJ2IwKSwgCi0JLk5SRVNUT1JFKDEnYjApLCAKLQkuUShhcjFbN10pKTsKLSAgIFJTREZDU1JIRDJCV1BfUkVNQVBfU1BDXzEyOCBcYXIxX3JlZ1s4XSAgKC5DRE4obl83ODcpLCAKLQkuU0ROKDEnYjEpLCAKLQkuQ1AocmNfZ2Nsa18xMTkxNiksIAotCS5EKG5fMTIzMSksIAotCS5TSShhcjFbN10pLCAKLQkuU0UoREZUX3NlbiksIAotCS5TQVZFKDEnYjApLCAKLQkuTlJFU1RPUkUoMSdiMCksIAotCS5RKGFyMVs4XSkpOwotICAgUlNERkNTUkhEMkJXUF9SRU1BUF9TUENfMTI5IFxhcjFfcmVnWzldICAoLkNETihuXzc4NyksIAotCS5TRE4oMSdiMSksIAotCS5DUChyY19nY2xrXzExOTE2KSwgCi0JLkQobl8xMjE4KSwgCi0JLlNJKGFyMVs4XSksIAotCS5TRShERlRfc2VuKSwgCi0JLlNBVkUoMSdiMCksIAotCS5OUkVTVE9SRSgxJ2IwKSwgCi0JLlEoYXIxWzldKSk7Ci0gICBSU0RGQ1NSSEQyQldQX1JFTUFQX1NQQ18xMzAgYXJwX3JlZyAoLkNETihuXzc4NyksIAotCS5TRE4oMSdiMSksIAotCS5DUChjbGspLCAKLQkuRChuXzExODMpLCAKLQkuU0koYXIxWzE1XSksIAotCS5TRShERlRfc2VuKSwgCi0JLlNBVkUoMSdiMCksIAotCS5OUkVTVE9SRSgxJ2IwKSwgCi0JLlEoYXJwKSk7Ci0gICBSU0RGQ1NSSEQyQldQX1JFTUFQX1NQQ18xMzEgYnJhbmNoX3N0YWxsX2RlbGF5X3JlZyAoLkNETihuXzc4NyksIAotCS5TRE4oMSdiMSksIAotCS5DUChjbGspLCAKLQkuRChuXzE0MjIpLCAKLQkuU0koYXJwKSwgCi0JLlNFKERGVF9zZW4pLCAKLQkuU0FWRSgxJ2IwKSwgCi0JLk5SRVNUT1JFKDEnYjApLCAKLQkuUShicmFuY2hfc3RhbGxfZGVsYXkpKTsKLSAgIFJTREZDU1JIRDJCV1BfUkVNQVBfU1BDXzEzMiBicmFuY2hfc3RhbGxfcmVnICguQ0ROKG5fNzg3KSwgCi0JLlNETigxJ2IxKSwgCi0JLkNQKGNsayksIAotCS5EKG5fMTMxNyksIAotCS5TSShicmFuY2hfc3RhbGxfZGVsYXkpLCAKLQkuU0UoREZUX3NlbiksIAotCS5TQVZFKDEnYjApLCAKLQkuTlJFU1RPUkUoMSdiMCksIAotCS5RKGJyYW5jaF9zdGFsbF8yMjk1KSk7Ci0gICBSU0RGQ1NSSEQyQldQX1JFTUFQX1NQQ18xMzMgZG1vdl9pbmNfcmVnICguQ0ROKG5fNzg3KSwgCi0JLlNETigxJ2IxKSwgCi0JLkNQKGNsayksIAotCS5EKG5fMTMwNCksIAotCS5TSShicmFuY2hfc3RhbGxfMjI5NSksIAotCS5TRShERlRfc2VuKSwgCi0JLlNBVkUoMSdiMCksIAotCS5OUkVTVE9SRSgxJ2IwKSwgCi0JLlEoZG1vdl9pbmMpKTsKLSAgIFJTREZDU1JIRDJCV1BfUkVNQVBfU1BDXzEzNCBkcF9yZWcgKC5DRE4obl83ODcpLCAKLQkuU0ROKDEnYjEpLCAKLQkuQ1AoY2xrKSwgCi0JLkQobl8xMTg3KSwgCi0JLlNJKGRtb3ZfaW5jKSwgCi0JLlNFKERGVF9zZW4pLCAKLQkuU0FWRSgxJ2IwKSwgCi0JLk5SRVNUT1JFKDEnYjApLCAKLQkuUShkcCkpOwotICAgUlNERkNTUkhEMkJXUF9SRU1BUF9TUENfMTM1IGdvX2RhdGFfcmVnICguQ0ROKG5fNzg3KSwgCi0JLlNETigxJ2IxKSwgCi0JLkNQKGNsayksIAotCS5EKG5fMTI3MSksIAotCS5TSShkcCksIAotCS5TRShERlRfc2VuKSwgCi0JLlNBVkUoMSdiMCksIAotCS5OUkVTVE9SRSgxJ2IwKSwgCi0JLlEoZ29fZGF0YSkpOwotICAgUlNERkNTUkhEMkJXUF9SRU1BUF9TUENfMTM2IGdvX3BvcnRfcmVnICguQ0ROKG5fNzg3KSwgCi0JLlNETigxJ2IxKSwgCi0JLkNQKGNsayksIAotCS5EKG5fMTM4OCksIAotCS5TSShnb19kYXRhKSwgCi0JLlNFKERGVF9zZW4pLCAKLQkuU0FWRSgxJ2IwKSwgCi0JLk5SRVNUT1JFKDEnYjApLCAKLQkuUShnb19wb3J0KSk7Ci0gICBSU0RGQ1NSSEQyQldQX1JFTUFQX1NQQ18xMzcgZ29fcHJvZ19yZWcgKC5DRE4obl83ODcpLCAKLQkuU0ROKDEnYjEpLCAKLQkuQ1AoY2xrKSwgCi0JLkQobl8xMjY2KSwgCi0JLlNJKGdvX3BvcnQpLCAKLQkuU0UoREZUX3NlbiksIAotCS5TQVZFKDEnYjApLCAKLQkuTlJFU1RPUkUoMSdiMCksIAotCS5RKGdvX3Byb2cpKTsKLSAgIFJTREZDU1JIRDJCV1BfUkVNQVBfU1BDXzEzOCBvdl9mbGFnX3JlZyAoLkNETihuXzc4NyksIAotCS5TRE4oMSdiMSksIAotCS5DUChjbGspLCAKLQkuRChuXzEyNDUpLCAKLQkuU0koZ29fcHJvZyksIAotCS5TRShERlRfc2VuKSwgCi0JLlNBVkUoMSdiMCksIAotCS5OUkVTVE9SRSgxJ2IwKSwgCi0JLlEob3ZfMjI5MikpOwotICAgUlNERkNTUkhEMkJXUF9SRU1BUF9TUENfMTM5IG92bV9yZWcgKC5DRE4obl83ODcpLCAKLQkuU0ROKDEnYjEpLCAKLQkuQ1AoY2xrKSwgCi0JLkQobl8xNDM4KSwgCi0JLlNJKG92XzIyOTIpLCAKLQkuU0UoREZUX3NlbiksIAotCS5TQVZFKDEnYjApLCAKLQkuTlJFU1RPUkUoMSdiMCksIAotCS5RKG92bSkpOwotICAgUlNERkNTUkhEMkJXUF9SRU1BUF9TUENfMTQwIFxwX3JlZ1swXSAgKC5DRE4obl83ODcpLCAKLQkuU0ROKDEnYjEpLCAKLQkuQ1AocmNfZ2Nsa18xMTkxOSksIAotCS5EKG1weV9yZXN1bHRbMF0pLCAKLQkuU0kob3ZtKSwgCi0JLlNFKERGVF9zZW4pLCAKLQkuU0FWRSgxJ2IwKSwgCi0JLk5SRVNUT1JFKDEnYjApLCAKLQkuUShwWzBdKSk7Ci0gICBSU0RGQ1NSSEQyQldQX1JFTUFQX1NQQ18xNDEgXHBfcmVnWzEwXSAgKC5DRE4obl83ODcpLCAKLQkuU0ROKDEnYjEpLCAKLQkuQ1AocmNfZ2Nsa18xMTkxOSksIAotCS5EKG1weV9yZXN1bHRbMTBdKSwgCi0JLlNJKHBbOV0pLCAKLQkuU0UoREZUX3NlbiksIAotCS5TQVZFKDEnYjApLCAKLQkuTlJFU1RPUkUoMSdiMCksIAotCS5RKHBbMTBdKSk7Ci0gICBSU0RGQ1NSSEQyQldQX1JFTUFQX1NQQ18xNDIgXHBfcmVnWzExXSAgKC5DRE4obl83ODcpLCAKLQkuU0ROKDEnYjEpLCAKLQkuQ1AocmNfZ2Nsa18xMTkxOSksIAotCS5EKG1weV9yZXN1bHRbMTFdKSwgCi0JLlNJKHBbMTBdKSwgCi0JLlNFKERGVF9zZW4pLCAKLQkuU0FWRSgxJ2IwKSwgCi0JLk5SRVNUT1JFKDEnYjApLCAKLQkuUShwWzExXSkpOwotICAgUlNERkNTUkhEMkJXUF9SRU1BUF9TUENfMTQzIFxwX3JlZ1sxMl0gICguQ0ROKG5fNzg3KSwgCi0JLlNETigxJ2IxKSwgCi0JLkNQKHJjX2djbGtfMTE5MTkpLCAKLQkuRChtcHlfcmVzdWx0WzEyXSksIAotCS5TSShwWzExXSksIAotCS5TRShERlRfc2VuKSwgCi0JLlNBVkUoMSdiMCksIAotCS5OUkVTVE9SRSgxJ2IwKSwgCi0JLlEocFsxMl0pKTsKLSAgIFJTREZDU1JIRDJCV1BfUkVNQVBfU1BDXzE0NCBccF9yZWdbMTNdICAoLkNETihuXzc4NyksIAotCS5TRE4oMSdiMSksIAotCS5DUChyY19nY2xrXzExOTE5KSwgCi0JLkQobXB5X3Jlc3VsdFsxM10pLCAKLQkuU0kocFsxMl0pLCAKLQkuU0UoREZUX3NlbiksIAotCS5TQVZFKDEnYjApLCAKLQkuTlJFU1RPUkUoMSdiMCksIAotCS5RKHBbMTNdKSk7Ci0gICBSU0RGQ1NSSEQyQldQX1JFTUFQX1NQQ18xNDUgXHBfcmVnWzE0XSAgKC5DRE4obl83ODcpLCAKLQkuU0ROKDEnYjEpLCAKLQkuQ1AocmNfZ2Nsa18xMTkxOSksIAotCS5EKG1weV9yZXN1bHRbMTRdKSwgCi0JLlNJKHBbMTNdKSwgCi0JLlNFKERGVF9zZW4pLCAKLQkuU0FWRSgxJ2IwKSwgCi0JLk5SRVNUT1JFKDEnYjApLCAKLQkuUShwWzE0XSkpOwotICAgUlNERkNTUkhEMkJXUF9SRU1BUF9TUENfMTQ2IFxwX3JlZ1sxNV0gICguQ0ROKG5fNzg3KSwgCi0JLlNETigxJ2IxKSwgCi0JLkNQKHJjX2djbGtfMTE5MTkpLCAKLQkuRChtcHlfcmVzdWx0WzE1XSksIAotCS5TSShwWzE0XSksIAotCS5TRShERlRfc2VuKSwgCi0JLlNBVkUoMSdiMCksIAotCS5OUkVTVE9SRSgxJ2IwKSwgCi0JLlEocFsxNV0pKTsKLSAgIFJTREZDU1JIRDJCV1BfUkVNQVBfU1BDXzE0NyBccF9yZWdbMTZdICAoLkNETihuXzc4NyksIAotCS5TRE4oMSdiMSksIAotCS5DUChyY19nY2xrXzExOTE5KSwgCi0JLkQobXB5X3Jlc3VsdFsxNl0pLCAKLQkuU0kocFsxNV0pLCAKLQkuU0UoREZUX3NlbiksIAotCS5TQVZFKDEnYjApLCAKLQkuTlJFU1RPUkUoMSdiMCksIAotCS5RKHBbMTZdKSk7Ci0gICBSU0RGQ1NSSEQyQldQX1JFTUFQX1NQQ18xNDggXHBfcmVnWzE3XSAgKC5DRE4obl83ODcpLCAKLQkuU0ROKDEnYjEpLCAKLQkuQ1AocmNfZ2Nsa18xMTkxOSksIAotCS5EKG1weV9yZXN1bHRbMTddKSwgCi0JLlNJKHBbMTZdKSwgCi0JLlNFKERGVF9zZW4pLCAKLQkuU0FWRSgxJ2IwKSwgCi0JLk5SRVNUT1JFKDEnYjApLCAKLQkuUShwWzE3XSkpOwotICAgUlNERkNTUkhEMkJXUF9SRU1BUF9TUENfMTQ5IFxwX3JlZ1sxOF0gICguQ0ROKG5fNzg3KSwgCi0JLlNETigxJ2IxKSwgCi0JLkNQKHJjX2djbGtfMTE5MTkpLCAKLQkuRChtcHlfcmVzdWx0WzE4XSksIAotCS5TSShwWzE3XSksIAotCS5TRShERlRfc2VuKSwgCi0JLlNBVkUoMSdiMCksIAotCS5OUkVTVE9SRSgxJ2IwKSwgCi0JLlEocFsxOF0pKTsKLSAgIFJTREZDU1JIRDJCV1BfUkVNQVBfU1BDXzE1MCBccF9yZWdbMTldICAoLkNETihuXzc4NyksIAotCS5TRE4oMSdiMSksIAotCS5DUChyY19nY2xrXzExOTE5KSwgCi0JLkQobXB5X3Jlc3VsdFsxOV0pLCAKLQkuU0kocFsxOF0pLCAKLQkuU0UoREZUX3NlbiksIAotCS5TQVZFKDEnYjApLCAKLQkuTlJFU1RPUkUoMSdiMCksIAotCS5RKHBbMTldKSk7Ci0gICBSU0RGQ1NSSEQyQldQX1JFTUFQX1NQQ18xNTEgXHBfcmVnWzFdICAoLkNETihuXzc4NyksIAotCS5TRE4oMSdiMSksIAotCS5DUChyY19nY2xrXzExOTE5KSwgCi0JLkQobXB5X3Jlc3VsdFsxXSksIAotCS5TSShwWzBdKSwgCi0JLlNFKERGVF9zZW4pLCAKLQkuU0FWRSgxJ2IwKSwgCi0JLk5SRVNUT1JFKDEnYjApLCAKLQkuUShwWzFdKSk7Ci0gICBSU0RGQ1NSSEQyQldQX1JFTUFQX1NQQ18xNTIgXHBfcmVnWzIwXSAgKC5DRE4obl83ODcpLCAKLQkuU0ROKDEnYjEpLCAKLQkuQ1AocmNfZ2Nsa18xMTkxOSksIAotCS5EKG1weV9yZXN1bHRbMjBdKSwgCi0JLlNJKHBbMTldKSwgCi0JLlNFKERGVF9zZW4pLCAKLQkuU0FWRSgxJ2IwKSwgCi0JLk5SRVNUT1JFKDEnYjApLCAKLQkuUShwWzIwXSkpOwotICAgUlNERkNTUkhEMkJXUF9SRU1BUF9TUENfMTUzIFxwX3JlZ1syMV0gICguQ0ROKG5fNzg3KSwgCi0JLlNETigxJ2IxKSwgCi0JLkNQKHJjX2djbGtfMTE5MTkpLCAKLQkuRChtcHlfcmVzdWx0WzIxXSksIAotCS5TSShwWzIwXSksIAotCS5TRShERlRfc2VuKSwgCi0JLlNBVkUoMSdiMCksIAotCS5OUkVTVE9SRSgxJ2IwKSwgCi0JLlEocFsyMV0pKTsKLSAgIFJTREZDU1JIRDJCV1BfUkVNQVBfU1BDXzE1NCBccF9yZWdbMjJdICAoLkNETihuXzc4NyksIAotCS5TRE4oMSdiMSksIAotCS5DUChyY19nY2xrXzExOTE5KSwgCi0JLkQobXB5X3Jlc3VsdFsyMl0pLCAKLQkuU0kocFsyMV0pLCAKLQkuU0UoREZUX3NlbiksIAotCS5TQVZFKDEnYjApLCAKLQkuTlJFU1RPUkUoMSdiMCksIAotCS5RKHBbMjJdKSk7Ci0gICBSU0RGQ1NSSEQyQldQX1JFTUFQX1NQQ18xNTUgXHBfcmVnWzIzXSAgKC5DRE4obl83ODcpLCAKLQkuU0ROKDEnYjEpLCAKLQkuQ1AocmNfZ2Nsa18xMTkxOSksIAotCS5EKG1weV9yZXN1bHRbMjNdKSwgCi0JLlNJKHBbMjJdKSwgCi0JLlNFKERGVF9zZW4pLCAKLQkuU0FWRSgxJ2IwKSwgCi0JLk5SRVNUT1JFKDEnYjApLCAKLQkuUShwWzIzXSkpOwotICAgUlNERkNTUkhEMkJXUF9SRU1BUF9TUENfMTU2IFxwX3JlZ1syNF0gICguQ0ROKG5fNzg3KSwgCi0JLlNETigxJ2IxKSwgCi0JLkNQKHJjX2djbGtfMTE5MTkpLCAKLQkuRChtcHlfcmVzdWx0WzI0XSksIAotCS5TSShwWzIzXSksIAotCS5TRShERlRfc2VuKSwgCi0JLlNBVkUoMSdiMCksIAotCS5OUkVTVE9SRSgxJ2IwKSwgCi0JLlEocFsyNF0pKTsKLSAgIFJTREZDU1JIRDJCV1BfUkVNQVBfU1BDXzE1NyBccF9yZWdbMjVdICAoLkNETihuXzc4NyksIAotCS5TRE4oMSdiMSksIAotCS5DUChyY19nY2xrXzExOTE5KSwgCi0JLkQobXB5X3Jlc3VsdFsyNV0pLCAKLQkuU0kocFsyNF0pLCAKLQkuU0UoREZUX3NlbiksIAotCS5TQVZFKDEnYjApLCAKLQkuTlJFU1RPUkUoMSdiMCksIAotCS5RKHBbMjVdKSk7Ci0gICBSU0RGQ1NSSEQyQldQX1JFTUFQX1NQQ18xNTggXHBfcmVnWzI2XSAgKC5DRE4obl83ODcpLCAKLQkuU0ROKDEnYjEpLCAKLQkuQ1AocmNfZ2Nsa18xMTkxOSksIAotCS5EKG1weV9yZXN1bHRbMjZdKSwgCi0JLlNJKHBbMjVdKSwgCi0JLlNFKERGVF9zZW4pLCAKLQkuU0FWRSgxJ2IwKSwgCi0JLk5SRVNUT1JFKDEnYjApLCAKLQkuUShwWzI2XSkpOwotICAgUlNERkNTUkhEMkJXUF9SRU1BUF9TUENfMTU5IFxwX3JlZ1syN10gICguQ0ROKG5fNzg3KSwgCi0JLlNETigxJ2IxKSwgCi0JLkNQKHJjX2djbGtfMTE5MTkpLCAKLQkuRChtcHlfcmVzdWx0WzI3XSksIAotCS5TSShwWzI2XSksIAotCS5TRShERlRfc2VuKSwgCi0JLlNBVkUoMSdiMCksIAotCS5OUkVTVE9SRSgxJ2IwKSwgCi0JLlEocFsyN10pKTsKLSAgIFJTREZDU1JIRDJCV1BfUkVNQVBfU1BDXzE2MCBccF9yZWdbMjhdICAoLkNETihuXzc4NyksIAotCS5TRE4oMSdiMSksIAotCS5DUChyY19nY2xrXzExOTE5KSwgCi0JLkQobXB5X3Jlc3VsdFsyOF0pLCAKLQkuU0kocFsyN10pLCAKLQkuU0UoREZUX3NlbiksIAotCS5TQVZFKDEnYjApLCAKLQkuTlJFU1RPUkUoMSdiMCksIAotCS5RKHBbMjhdKSk7Ci0gICBSU0RGQ1NSSEQyQldQX1JFTUFQX1NQQ18xNjEgXHBfcmVnWzI5XSAgKC5DRE4obl83ODcpLCAKLQkuU0ROKDEnYjEpLCAKLQkuQ1AocmNfZ2Nsa18xMTkxOSksIAotCS5EKG1weV9yZXN1bHRbMjldKSwgCi0JLlNJKHBbMjhdKSwgCi0JLlNFKERGVF9zZW4pLCAKLQkuU0FWRSgxJ2IwKSwgCi0JLk5SRVNUT1JFKDEnYjApLCAKLQkuUShwWzI5XSkpOwotICAgUlNERkNTUkhEMkJXUF9SRU1BUF9TUENfMTYyIFxwX3JlZ1syXSAgKC5DRE4obl83ODcpLCAKLQkuU0ROKDEnYjEpLCAKLQkuQ1AocmNfZ2Nsa18xMTkxOSksIAotCS5EKG1weV9yZXN1bHRbMl0pLCAKLQkuU0kocFsxXSksIAotCS5TRShERlRfc2VuKSwgCi0JLlNBVkUoMSdiMCksIAotCS5OUkVTVE9SRSgxJ2IwKSwgCi0JLlEocFsyXSkpOwotICAgUlNERkNTUkhEMkJXUF9SRU1BUF9TUENfMTYzIFxwX3JlZ1szMF0gICguQ0ROKG5fNzg3KSwgCi0JLlNETigxJ2IxKSwgCi0JLkNQKHJjX2djbGtfMTE5MTkpLCAKLQkuRChtcHlfcmVzdWx0WzMwXSksIAotCS5TSShwWzI5XSksIAotCS5TRShERlRfc2VuKSwgCi0JLlNBVkUoMSdiMCksIAotCS5OUkVTVE9SRSgxJ2IwKSwgCi0JLlEocFszMF0pKTsKLSAgIFJTREZDU1JIRDJCV1BfUkVNQVBfU1BDXzE2NCBccF9yZWdbMzFdICAoLkNETihuXzc4NyksIAotCS5TRE4oMSdiMSksIAotCS5DUChyY19nY2xrXzExOTE5KSwgCi0JLkQobXB5X3Jlc3VsdFszMV0pLCAKLQkuU0kocFszMF0pLCAKLQkuU0UoREZUX3NlbiksIAotCS5TQVZFKDEnYjApLCAKLQkuTlJFU1RPUkUoMSdiMCksIAotCS5RKHBbMzFdKSk7Ci0gICBSU0RGQ1NSSEQyQldQX1JFTUFQX1NQQ18xNjUgXHBfcmVnWzNdICAoLkNETihuXzc4NyksIAotCS5TRE4oMSdiMSksIAotCS5DUChyY19nY2xrXzExOTE5KSwgCi0JLkQobXB5X3Jlc3VsdFszXSksIAotCS5TSShwWzJdKSwgCi0JLlNFKERGVF9zZW4pLCAKLQkuU0FWRSgxJ2IwKSwgCi0JLk5SRVNUT1JFKDEnYjApLCAKLQkuUShwWzNdKSk7Ci0gICBSU0RGQ1NSSEQyQldQX1JFTUFQX1NQQ18xNjYgXHBfcmVnWzRdICAoLkNETihuXzc4NyksIAotCS5TRE4oMSdiMSksIAotCS5DUChyY19nY2xrXzExOTE5KSwgCi0JLkQobXB5X3Jlc3VsdFs0XSksIAotCS5TSShwWzNdKSwgCi0JLlNFKERGVF9zZW4pLCAKLQkuU0FWRSgxJ2IwKSwgCi0JLk5SRVNUT1JFKDEnYjApLCAKLQkuUShwWzRdKSk7Ci0gICBSU0RGQ1NSSEQyQldQX1JFTUFQX1NQQ18xNjcgXHBfcmVnWzVdICAoLkNETihuXzc4NyksIAotCS5TRE4oMSdiMSksIAotCS5DUChyY19nY2xrXzExOTE5KSwgCi0JLkQobXB5X3Jlc3VsdFs1XSksIAotCS5TSShwWzRdKSwgCi0JLlNFKERGVF9zZW4pLCAKLQkuU0FWRSgxJ2IwKSwgCi0JLk5SRVNUT1JFKDEnYjApLCAKLQkuUShwWzVdKSk7Ci0gICBSU0RGQ1NSSEQyQldQX1JFTUFQX1NQQ18xNjggXHBfcmVnWzZdICAoLkNETihuXzc4NyksIAotCS5TRE4oMSdiMSksIAotCS5DUChyY19nY2xrXzExOTE5KSwgCi0JLkQobXB5X3Jlc3VsdFs2XSksIAotCS5TSShwWzVdKSwgCi0JLlNFKERGVF9zZW4pLCAKLQkuU0FWRSgxJ2IwKSwgCi0JLk5SRVNUT1JFKDEnYjApLCAKLQkuUShwWzZdKSk7Ci0gICBSU0RGQ1NSSEQyQldQX1JFTUFQX1NQQ18xNjkgXHBfcmVnWzddICAoLkNETihuXzc4NyksIAotCS5TRE4oMSdiMSksIAotCS5DUChyY19nY2xrXzExOTE5KSwgCi0JLkQobXB5X3Jlc3VsdFs3XSksIAotCS5TSShwWzZdKSwgCi0JLlNFKERGVF9zZW4pLCAKLQkuU0FWRSgxJ2IwKSwgCi0JLk5SRVNUT1JFKDEnYjApLCAKLQkuUShwWzddKSk7Ci0gICBSU0RGQ1NSSEQyQldQX1JFTUFQX1NQQ18xNzAgXHBfcmVnWzhdICAoLkNETihuXzc4NyksIAotCS5TRE4oMSdiMSksIAotCS5DUChyY19nY2xrXzExOTE5KSwgCi0JLkQobXB5X3Jlc3VsdFs4XSksIAotCS5TSShwWzddKSwgCi0JLlNFKERGVF9zZW4pLCAKLQkuU0FWRSgxJ2IwKSwgCi0JLk5SRVNUT1JFKDEnYjApLCAKLQkuUShwWzhdKSk7Ci0gICBSU0RGQ1NSSEQyQldQX1JFTUFQX1NQQ18xNzEgXHBfcmVnWzldICAoLkNETihuXzc4NyksIAotCS5TRE4oMSdiMSksIAotCS5DUChyY19nY2xrXzExOTE5KSwgCi0JLkQobXB5X3Jlc3VsdFs5XSksIAotCS5TSShwWzhdKSwgCi0JLlNFKERGVF9zZW4pLCAKLQkuU0FWRSgxJ2IwKSwgCi0JLk5SRVNUT1JFKDEnYjApLCAKLQkuUShwWzldKSk7Ci0gICBSU0RGQ1NSSEQyQldQX1JFTUFQX1NQQ18xNzIgcGNfYWNjX3JlZyAoLkNETihuXzc4NyksIAotCS5TRE4oMSdiMSksIAotCS5DUChjbGspLCAKLQkuRChuXzEzNDQpLCAKLQkuU0koREZUX3NkaV8zKSwgCi0JLlNFKERGVF9zZW4pLCAKLQkuU0FWRSgxJ2IwKSwgCi0JLk5SRVNUT1JFKDEnYjApLCAKLQkuUShwY19hY2MpKTsKLSAgIFJTREZDU1JIRDJCV1BfUkVNQVBfU1BDXzE3MyBccGNfcmVnWzBdICAoLkNETigxJ2IxKSwgCi0JLlNETigxJ2IwKSwgCi0JLkNQKHJjX2djbGtfMTE5MjIpLCAKLQkuRChuXzE0MTMpLCAKLQkuU0kocGNfYWNjKSwgCi0JLlNFKERGVF9zZW4pLCAKLQkuU0FWRSgxJ2IwKSwgCi0JLk5SRVNUT1JFKDEnYjApLCAKLQkuUShwY1swXSkpOwotICAgUlNERkNTUkhEMkJXUF9SRU1BUF9TUENfMTc0IFxwY19yZWdbMV0gICguQ0ROKDEnYjEpLCAKLQkuU0ROKDEnYjApLCAKLQkuQ1AocmNfZ2Nsa18xMTkyMiksIAotCS5EKG5fMTM5OSksIAotCS5TSShwY1swXSksIAotCS5TRShERlRfc2VuKSwgCi0JLlNBVkUoMSdiMCksIAotCS5OUkVTVE9SRSgxJ2IwKSwgCi0JLlEocGNbMV0pKTsKLSAgIFJTREZDU1JIRDJCV1BfUkVNQVBfU1BDXzE3NSBccGNfcmVnWzJdICAoLkNETigxJ2IxKSwgCi0JLlNETigxJ2IwKSwgCi0JLkNQKHJjX2djbGtfMTE5MjIpLCAKLQkuRChuXzEzNjYpLCAKLQkuU0kocGNbMV0pLCAKLQkuU0UoREZUX3NlbiksIAotCS5TQVZFKDEnYjApLCAKLQkuTlJFU1RPUkUoMSdiMCksIAotCS5RKHBjWzJdKSk7Ci0gICBSU0RGQ1NSSEQyQldQX1JFTUFQX1NQQ18xNzYgXHBjX3JlZ1szXSAgKC5DRE4oMSdiMSksIAotCS5TRE4oMSdiMCksIAotCS5DUChyY19nY2xrXzExOTIyKSwgCi0JLkQobl8xMzIxKSwgCi0JLlNJKHBjWzJdKSwgCi0JLlNFKERGVF9zZW4pLCAKLQkuU0FWRSgxJ2IwKSwgCi0JLk5SRVNUT1JFKDEnYjApLCAKLQkuUShwY1szXSkpOwotICAgUlNERkNTUkhEMkJXUF9SRU1BUF9TUENfMTc3IFxwY19yZWdbNF0gICguQ0ROKDEnYjEpLCAKLQkuU0ROKDEnYjApLCAKLQkuQ1AocmNfZ2Nsa18xMTkyMiksIAotCS5EKG5fMTI5MCksIAotCS5TSShwY1szXSksIAotCS5TRShERlRfc2VuKSwgCi0JLlNBVkUoMSdiMCksIAotCS5OUkVTVE9SRSgxJ2IwKSwgCi0JLlEocGNbNF0pKTsKLSAgIFJTREZDU1JIRDJCV1BfUkVNQVBfU1BDXzE3OCBccGNfcmVnWzVdICAoLkNETigxJ2IxKSwgCi0JLlNETigxJ2IwKSwgCi0JLkNQKHJjX2djbGtfMTE5MjIpLCAKLQkuRChuXzEyNzApLCAKLQkuU0kocGNbNF0pLCAKLQkuU0UoREZUX3NlbiksIAotCS5TQVZFKDEnYjApLCAKLQkuTlJFU1RPUkUoMSdiMCksIAotCS5RKHBjWzVdKSk7Ci0gICBSU0RGQ1NSSEQyQldQX1JFTUFQX1NQQ18xNzkgXHBjX3JlZ1s2XSAgKC5DRE4oMSdiMSksIAotCS5TRE4oMSdiMCksIAotCS5DUChyY19nY2xrXzExOTIyKSwgCi0JLkQobl8xMjU1KSwgCi0JLlNJKHBjWzVdKSwgCi0JLlNFKERGVF9zZW4pLCAKLQkuU0FWRSgxJ2IwKSwgCi0JLk5SRVNUT1JFKDEnYjApLCAKLQkuUShwY1s2XSkpOwotICAgUlNERkNTUkhEMkJXUF9SRU1BUF9TUENfMTgwIFxwY19yZWdbN10gICguQ0ROKDEnYjEpLCAKLQkuU0ROKDEnYjApLCAKLQkuQ1AocmNfZ2Nsa18xMTkyMiksIAotCS5EKG5fMTI0MyksIAotCS5TSShwY1s2XSksIAotCS5TRShERlRfc2VuKSwgCi0JLlNBVkUoMSdiMCksIAotCS5OUkVTVE9SRSgxJ2IwKSwgCi0JLlEocGNbN10pKTsKLSAgIFJTREZDU1JIRDJCV1BfUkVNQVBfU1BDXzE4MSBccGNfcmVnWzhdICAoLkNETigxJ2IxKSwgCi0JLlNETigxJ2IwKSwgCi0JLkNQKHJjX2djbGtfMTE5MjIpLCAKLQkuRChuXzEyMzcpLCAKLQkuU0kocGNbN10pLCAKLQkuU0UoREZUX3NlbiksIAotCS5TQVZFKDEnYjApLCAKLQkuTlJFU1RPUkUoMSdiMCksIAotCS5RKHBjWzhdKSk7Ci0gICBSU0RGQ1NSSEQyQldQX1JFTUFQX1NQQ18xODIgcmVhZF9wcm9nX3JlZyAoLkNETihuXzc4NyksIAotCS5TRE4oMSdiMSksIAotCS5DUChjbGspLCAKLQkuRChuXzEyNjgpLCAKLQkuU0kocGNbOF0pLCAKLQkuU0UoREZUX3NlbiksIAotCS5TQVZFKDEnYjApLCAKLQkuTlJFU1RPUkUoMSdiMCksIAotCS5RKHJlYWRfcHJvZykpOwotICAgUlNERkNTUkhEMkJXUF9SRU1BUF9TUENfMTgzIFxzZWxfb3BfYV9yZWdbMF0gICguQ0ROKG5fNzg3KSwgCi0JLlNETigxJ2IxKSwgCi0JLkNQKHJjX2djbGtfMTE5MjUpLCAKLQkuRChuXzk5OCksIAotCS5TSShyZWFkX3Byb2cpLCAKLQkuU0UoREZUX3NlbiksIAotCS5TQVZFKDEnYjApLCAKLQkuTlJFU1RPUkUoMSdiMCksIAotCS5RKHNlbF9vcF9hWzBdKSk7Ci0gICBSU0RGQ1NSSEQyQldQX1JFTUFQX1NQQ18xODQgXHNlbF9vcF9hX3JlZ1sxXSAgKC5DRE4obl83ODcpLCAKLQkuU0ROKDEnYjEpLCAKLQkuQ1AocmNfZ2Nsa18xMTkyNSksIAotCS5EKG5fMTI2MSksIAotCS5TSShzZWxfb3BfYVswXSksIAotCS5TRShERlRfc2VuKSwgCi0JLlNBVkUoMSdiMCksIAotCS5OUkVTVE9SRSgxJ2IwKSwgCi0JLlEoc2VsX29wX2FbMV0pKTsKLSAgIFJTREZDU1JIRDJCV1BfUkVNQVBfU1BDXzE4NSBcc2VsX29wX2FfcmVnWzJdICAoLkNETihuXzc4NyksIAotCS5TRE4oMSdiMSksIAotCS5DUChyY19nY2xrXzExOTI1KSwgCi0JLkQobl84ODkpLCAKLQkuU0koc2VsX29wX2FbMV0pLCAKLQkuU0UoREZUX3NlbiksIAotCS5TQVZFKDEnYjApLCAKLQkuTlJFU1RPUkUoMSdiMCksIAotCS5RKHNlbF9vcF9hWzJdKSk7Ci0gICBSU0RGQ1NSSEQyQldQX1JFTUFQX1NQQ18xODYgXHNlbF9vcF9iX3JlZ1swXSAgKC5DRE4obl83ODcpLCAKLQkuU0ROKDEnYjEpLCAKLQkuQ1AocmNfZ2Nsa18xMTkyNSksIAotCS5EKG5fMTM3MyksIAotCS5TSShzZWxfb3BfYVsyXSksIAotCS5TRShERlRfc2VuKSwgCi0JLlNBVkUoMSdiMCksIAotCS5OUkVTVE9SRSgxJ2IwKSwgCi0JLlEoc2VsX29wX2JbMF0pKTsKLSAgIFJTREZDU1JIRDJCV1BfUkVNQVBfU1BDXzE4NyBcc2VsX29wX2JfcmVnWzFdICAoLkNETihuXzc4NyksIAotCS5TRE4oMSdiMSksIAotCS5DUChyY19nY2xrXzExOTI1KSwgCi0JLkQobl8xMzIwKSwgCi0JLlNJKHNlbF9vcF9iWzBdKSwgCi0JLlNFKERGVF9zZW4pLCAKLQkuU0FWRSgxJ2IwKSwgCi0JLk5SRVNUT1JFKDEnYjApLCAKLQkuUShzZWxfb3BfYlsxXSkpOwotICAgUlNERkNTUkhEMkJXUF9SRU1BUF9TUENfMTg4IFxzZWxfb3BfYl9yZWdbMl0gICguQ0ROKG5fNzg3KSwgCi0JLlNETigxJ2IxKSwgCi0JLkNQKHJjX2djbGtfMTE5MjUpLCAKLQkuRChuXzEzNTYpLCAKLQkuU0koc2VsX29wX2JbMV0pLCAKLQkuU0UoREZUX3NlbiksIAotCS5TQVZFKDEnYjApLCAKLQkuTlJFU1RPUkUoMSdiMCksIAotCS5RKHNlbF9vcF9iWzJdKSk7Ci0gICBSU0RGQ1NSSEQyQldQX1JFTUFQX1NQQ18xODkgc2tpcF9vbmVfcmVnICguQ0ROKG5fNzg3KSwgCi0JLlNETigxJ2IxKSwgCi0JLkNQKGNsayksIAotCS5EKG5fMTMwMiksIAotCS5TSShzZWxfb3BfYlsyXSksIAotCS5TRShERlRfc2VuKSwgCi0JLlNBVkUoMSdiMCksIAotCS5OUkVTVE9SRSgxJ2IwKSwgCi0JLlEoc2tpcF9vbmUpKTsKLSAgIFJTREZDU1JIRDJCV1BfUkVNQVBfU1BDXzE5MCB0aHJlZV9jeWNsZV9yZWcgKC5DRE4obl83ODcpLCAKLQkuU0ROKDEnYjEpLCAKLQkuQ1AoY2xrKSwgCi0JLkQobl8xMjYwKSwgCi0JLlNJKHNraXBfb25lKSwgCi0JLlNFKERGVF9zZW4pLCAKLQkuU0FWRSgxJ2IwKSwgCi0JLk5SRVNUT1JFKDEnYjApLCAKLQkuUSh0aHJlZV9jeWNsZSkpOwotICAgUlNERkNTUkhEMkJXUF9SRU1BUF9TUENfMTkxIFx0b3BfcmVnWzBdICAoLkNETihuXzc4NyksIAotCS5TRE4oMSdiMSksIAotCS5DUChyY19nY2xrXzExOTI4KSwgCi0JLkQobWRyWzBdKSwgCi0JLlNJKHRocmVlX2N5Y2xlKSwgCi0JLlNFKERGVF9zZW4pLCAKLQkuU0FWRSgxJ2IwKSwgCi0JLk5SRVNUT1JFKDEnYjApLCAKLQkuUSh0b3BbMF0pKTsKLSAgIFJTREZDU1JIRDJCV1BfUkVNQVBfU1BDXzE5MiBcdG9wX3JlZ1sxMF0gICguQ0ROKG5fNzg3KSwgCi0JLlNETigxJ2IxKSwgCi0JLkNQKHJjX2djbGtfMTE5MjgpLCAKLQkuRChtZHJbMTBdKSwgCi0JLlNJKHRvcFs5XSksIAotCS5TRShERlRfc2VuKSwgCi0JLlNBVkUoMSdiMCksIAotCS5OUkVTVE9SRSgxJ2IwKSwgCi0JLlEodG9wWzEwXSkpOwotICAgUlNERkNTUkhEMkJXUF9SRU1BUF9TUENfMTkzIFx0b3BfcmVnWzExXSAgKC5DRE4obl83ODcpLCAKLQkuU0ROKDEnYjEpLCAKLQkuQ1AocmNfZ2Nsa18xMTkyOCksIAotCS5EKG1kclsxMV0pLCAKLQkuU0kodG9wWzEwXSksIAotCS5TRShERlRfc2VuKSwgCi0JLlNBVkUoMSdiMCksIAotCS5OUkVTVE9SRSgxJ2IwKSwgCi0JLlEodG9wWzExXSkpOwotICAgUlNERkNTUkhEMkJXUF9SRU1BUF9TUENfMTk0IFx0b3BfcmVnWzEyXSAgKC5DRE4obl83ODcpLCAKLQkuU0ROKDEnYjEpLCAKLQkuQ1AocmNfZ2Nsa18xMTkyOCksIAotCS5EKG1kclsxMl0pLCAKLQkuU0kodG9wWzExXSksIAotCS5TRShERlRfc2VuKSwgCi0JLlNBVkUoMSdiMCksIAotCS5OUkVTVE9SRSgxJ2IwKSwgCi0JLlEodG9wWzEyXSkpOwotICAgUlNERkNTUkhEMkJXUF9SRU1BUF9TUENfMTk1IFx0b3BfcmVnWzEzXSAgKC5DRE4obl83ODcpLCAKLQkuU0ROKDEnYjEpLCAKLQkuQ1AocmNfZ2Nsa18xMTkyOCksIAotCS5EKG1kclsxM10pLCAKLQkuU0kodG9wWzEyXSksIAotCS5TRShERlRfc2VuKSwgCi0JLlNBVkUoMSdiMCksIAotCS5OUkVTVE9SRSgxJ2IwKSwgCi0JLlEodG9wWzEzXSkpOwotICAgUlNERkNTUkhEMkJXUF9SRU1BUF9TUENfMTk2IFx0b3BfcmVnWzE0XSAgKC5DRE4obl83ODcpLCAKLQkuU0ROKDEnYjEpLCAKLQkuQ1AocmNfZ2Nsa18xMTkyOCksIAotCS5EKG1kclsxNF0pLCAKLQkuU0kodG9wWzEzXSksIAotCS5TRShERlRfc2VuKSwgCi0JLlNBVkUoMSdiMCksIAotCS5OUkVTVE9SRSgxJ2IwKSwgCi0JLlEodG9wWzE0XSkpOwotICAgUlNERkNTUkhEMkJXUF9SRU1BUF9TUENfMTk3IFx0b3BfcmVnWzE1XSAgKC5DRE4obl83ODcpLCAKLQkuU0ROKDEnYjEpLCAKLQkuQ1AocmNfZ2Nsa18xMTkyOCksIAotCS5EKG1kclsxNV0pLCAKLQkuU0kodG9wWzE0XSksIAotCS5TRShERlRfc2VuKSwgCi0JLlNBVkUoMSdiMCksIAotCS5OUkVTVE9SRSgxJ2IwKSwgCi0JLlEodG9wWzE1XSkpOwotICAgUlNERkNTUkhEMkJXUF9SRU1BUF9TUENfMTk4IFx0b3BfcmVnWzFdICAoLkNETihuXzc4NyksIAotCS5TRE4oMSdiMSksIAotCS5DUChyY19nY2xrXzExOTI4KSwgCi0JLkQobWRyWzFdKSwgCi0JLlNJKHRvcFswXSksIAotCS5TRShERlRfc2VuKSwgCi0JLlNBVkUoMSdiMCksIAotCS5OUkVTVE9SRSgxJ2IwKSwgCi0JLlEodG9wWzFdKSk7Ci0gICBSU0RGQ1NSSEQyQldQX1JFTUFQX1NQQ18xOTkgXHRvcF9yZWdbMl0gICguQ0ROKG5fNzg3KSwgCi0JLlNETigxJ2IxKSwgCi0JLkNQKHJjX2djbGtfMTE5MjgpLCAKLQkuRChtZHJbMl0pLCAKLQkuU0kodG9wWzFdKSwgCi0JLlNFKERGVF9zZW4pLCAKLQkuU0FWRSgxJ2IwKSwgCi0JLk5SRVNUT1JFKDEnYjApLCAKLQkuUSh0b3BbMl0pKTsKLSAgIFJTREZDU1JIRDJCV1BfUkVNQVBfU1BDXzIwMCBcdG9wX3JlZ1szXSAgKC5DRE4obl83ODcpLCAKLQkuU0ROKDEnYjEpLCAKLQkuQ1AocmNfZ2Nsa18xMTkyOCksIAotCS5EKG1kclszXSksIAotCS5TSSh0b3BbMl0pLCAKLQkuU0UoREZUX3NlbiksIAotCS5TQVZFKDEnYjApLCAKLQkuTlJFU1RPUkUoMSdiMCksIAotCS5RKHRvcFszXSkpOwotICAgUlNERkNTUkhEMkJXUF9SRU1BUF9TUENfMjAxIFx0b3BfcmVnWzRdICAoLkNETihuXzc4NyksIAotCS5TRE4oMSdiMSksIAotCS5DUChyY19nY2xrXzExOTI4KSwgCi0JLkQobWRyWzRdKSwgCi0JLlNJKHRvcFszXSksIAotCS5TRShERlRfc2VuKSwgCi0JLlNBVkUoMSdiMCksIAotCS5OUkVTVE9SRSgxJ2IwKSwgCi0JLlEodG9wWzRdKSk7Ci0gICBSU0RGQ1NSSEQyQldQX1JFTUFQX1NQQ18yMDIgXHRvcF9yZWdbNV0gICguQ0ROKG5fNzg3KSwgCi0JLlNETigxJ2IxKSwgCi0JLkNQKHJjX2djbGtfMTE5MjgpLCAKLQkuRChtZHJbNV0pLCAKLQkuU0kodG9wWzRdKSwgCi0JLlNFKERGVF9zZW4pLCAKLQkuU0FWRSgxJ2IwKSwgCi0JLk5SRVNUT1JFKDEnYjApLCAKLQkuUSh0b3BbNV0pKTsKLSAgIFJTREZDU1JIRDJCV1BfUkVNQVBfU1BDXzIwMyBcdG9wX3JlZ1s2XSAgKC5DRE4obl83ODcpLCAKLQkuU0ROKDEnYjEpLCAKLQkuQ1AocmNfZ2Nsa18xMTkyOCksIAotCS5EKG1kcls2XSksIAotCS5TSSh0b3BbNV0pLCAKLQkuU0UoREZUX3NlbiksIAotCS5TQVZFKDEnYjApLCAKLQkuTlJFU1RPUkUoMSdiMCksIAotCS5RKHRvcFs2XSkpOwotICAgUlNERkNTUkhEMkJXUF9SRU1BUF9TUENfMjA0IFx0b3BfcmVnWzddICAoLkNETihuXzc4NyksIAotCS5TRE4oMSdiMSksIAotCS5DUChyY19nY2xrXzExOTI4KSwgCi0JLkQobWRyWzddKSwgCi0JLlNJKHRvcFs2XSksIAotCS5TRShERlRfc2VuKSwgCi0JLlNBVkUoMSdiMCksIAotCS5OUkVTVE9SRSgxJ2IwKSwgCi0JLlEodG9wWzddKSk7Ci0gICBSU0RGQ1NSSEQyQldQX1JFTUFQX1NQQ18yMDUgXHRvcF9yZWdbOF0gICguQ0ROKG5fNzg3KSwgCi0JLlNETigxJ2IxKSwgCi0JLkNQKHJjX2djbGtfMTE5MjgpLCAKLQkuRChtZHJbOF0pLCAKLQkuU0kodG9wWzddKSwgCi0JLlNFKERGVF9zZW4pLCAKLQkuU0FWRSgxJ2IwKSwgCi0JLk5SRVNUT1JFKDEnYjApLCAKLQkuUSh0b3BbOF0pKTsKLSAgIFJTREZDU1JIRDJCV1BfUkVNQVBfU1BDXzIwNiBcdG9wX3JlZ1s5XSAgKC5DRE4obl83ODcpLCAKLQkuU0ROKDEnYjEpLCAKLQkuQ1AocmNfZ2Nsa18xMTkyOCksIAotCS5EKG1kcls5XSksIAotCS5TSSh0b3BbOF0pLCAKLQkuU0UoREZUX3NlbiksIAotCS5TQVZFKDEnYjApLCAKLQkuTlJFU1RPUkUoMSdiMCksIAotCS5RKHRvcFs5XSkpOwotICAgUlNERkNTUkhEMkJXUF9SRU1BUF9TUENfMjA3IHR3b19jeWNsZV9yZWcgKC5DRE4obl83ODcpLCAKLQkuU0ROKDEnYjEpLCAKLQkuQ1AoY2xrKSwgCi0JLkQobl8xMjczKSwgCi0JLlNJKHRvcFsxNV0pLCAKLQkuU0UoREZUX3NlbiksIAotCS5TQVZFKDEnYjApLCAKLQkuTlJFU1RPUkUoMSdiMCksIAotCS5RKHR3b19jeWNsZSkpOwotICAgUlNERkNTUkhEMkJXUF9SRU1BUF9TUENfMjA4IHVwZGF0ZV9pdF9yZWcgKC5DRE4obl83ODcpLCAKLQkuU0ROKDEnYjEpLCAKLQkuQ1AoY2xrKSwgCi0JLkQobl8xMjg0KSwgCi0JLlNJKHR3b19jeWNsZSksIAotCS5TRShERlRfc2VuKSwgCi0JLlNBVkUoMSdiMCksIAotCS5OUkVTVE9SRSgxJ2IwKSwgCi0JLlEodXBkYXRlX2l0KSk7Ci0gICBSU0RGQ1NSSEQyQldQX1JFTUFQX1NQQ18yMDkgdXBkYXRlX3N0YWxsX3JlZyAoLkNETihuXzc4NyksIAotCS5TRE4oMSdiMSksIAotCS5DUChjbGspLCAKLQkuRChuXzE0MjMpLCAKLQkuU0kodXBkYXRlX2l0KSwgCi0JLlNFKERGVF9zZW4pLCAKLQkuU0FWRSgxJ2IwKSwgCi0JLk5SRVNUT1JFKDEnYjApLCAKLQkuUShERlRfc2RvKSk7Ci0gICBJTlZYTCBnMzM1MCAoLlkobl83ODcpLCAKLQkuQShyZXNldCkpOwotICAgT1IyWDEgZzE1MzMxICguWShuXzc2OSksIAotCS5CKG5fNzY0KSwgCi0JLkEobl83NykpOwotICAgQU5EMlgxIGcxNTMzNSAoLlkobl83NjUpLCAKLQkuQihuXzc0OSksIAotCS5BKGFyWzE0XSkpOwotICAgQU5EMlgyIGcxNTMzNiAoLlkobl83NjQpLCAKLQkuQihuXzc1NSksIAotCS5BKG5fMTAwKSk7Ci0gICBPUjJYMSBnMTUzNDggKC5ZKG5fNzU4KSwgCi0JLkIobl83NTUpLCAKLQkuQShuXzc1KSk7Ci0gICBBTkQyWDIgZzE1MzUxICguWShuXzc1NSksIAotCS5CKG5fNzM4KSwgCi0JLkEobl84NikpOwotICAgQU5EMlgyIGcxNTM1NyAoLlkobl83NDkpLCAKLQkuQihuXzczOSksIAotCS5BKGFyWzEzXSkpOwotICAgT1IyWDEgZzE1MzY0ICguWShuXzc0OCksIAotCS5CKG5fNzM4KSwgCi0JLkEobl83MykpOwotICAgQU5EMlgyIGcxNTM3NSAoLlkobl83MzkpLCAKLQkuQihuXzczMyksIAotCS5BKGFyWzEyXSkpOwotICAgQU5EMlgyIGcxNTM3NiAoLlkobl83MzgpLCAKLQkuQihuXzcyNyksIAotCS5BKG5fODgpKTsKLSAgIE9SMlgxIGcxNTM4MiAoLlkobl83MzYpLCAKLQkuQihuXzcyNyksIAotCS5BKG5fNzApKTsKLSAgIEFORDJYMiBnMTUzODUgKC5ZKG5fNzMzKSwgCi0JLkIobl83MjIpLCAKLQkuQShhclsxMV0pKTsKLSAgIEFORDJYMiBnMTUzOTMgKC5ZKG5fNzI3KSwgCi0JLkIobl83MTYpLCAKLQkuQShuXzEwNikpOwotICAgT1IyWDEgZzE1Mzk4ICguWShuXzcyNiksIAotCS5CKG5fNzE2KSwgCi0JLkEobl82OCkpOwotICAgQU5EMlgyIGcxNTQwMyAoLlkobl83MjIpLCAKLQkuQihuXzY5OSksIAotCS5BKGFyWzEwXSkpOwotICAgQU5EMlgyIGcxNTQxMSAoLlkobl83MTYpLCAKLQkuQihuXzY5NCksIAotCS5BKG5fODcpKTsKLSAgIE9SMlgxIGcxNTQyMyAoLlkobl83MTIpLCAKLQkuQihuXzY5NCksIAotCS5BKG5fNjcpKTsKLSAgIENMS0lOVlg0IGcxNTQzNCAoLlkobl83MDEpLCAKLQkuQShuXzI5KSk7Ci0gICBBTkQyWDIgZzE1NDM5ICguWShuXzY5OSksIAotCS5CKG5fNjc3KSwgCi0JLkEoYXJbOV0pKTsKLSAgIEFORDJYMiBnMTU0NDQgKC5ZKG5fNjk0KSwgCi0JLkIobl82NzQpLCAKLQkuQShuXzg1KSk7Ci0gICBDTEtJTlZYMiBnMTU0NTAgKC5ZKG5fNjkwKSwgCi0JLkEobl8xMjQwKSk7Ci0gICBPUjJYMSBnMTU0NTUgKC5ZKG5fNjg4KSwgCi0JLkIobl8xMjQ2KSwgCi0JLkEobl8yMDgpKTsKLSAgIE9SMlgxIGcxNTQ1NyAoLlkobl82ODYpLCAKLQkuQihuXzY3NCksIAotCS5BKG5fNjMpKTsKLSAgIEFORDJYMiBnMTU0NzAgKC5ZKG5fNjc3KSwgCi0JLkIobl82NTgpLCAKLQkuQShhcls4XSkpOwotICAgQU5EMlgyIGcxNTQ3NCAoLlkobl82NzQpLCAKLQkuQihuXzY1NCksIAotCS5BKG5fODQpKTsKLSAgIE9SMlgxIGcxNTQ4NSAoLlkobl82NjkpLCAKLQkuQihuXzY1NCksIAotCS5BKG5fNjIpKTsKLSAgIEFORDJYMiBnMTU1MDEgKC5ZKG5fNjU4KSwgCi0JLkIobl82MjYpLCAKLQkuQShhcls3XSkpOwotICAgQU5EMlgxIGcxNTUwMiAoLlkobl82NTcpLCAKLQkuQihuXzYzMCksIAotCS5BKHBjWzddKSk7Ci0gICBBTkQyWDIgZzE1NTA1ICguWShuXzY1NCksIAotCS5CKG5fNjIyKSwgCi0JLkEobl85MCkpOwotICAgT1IyWDEgZzE1NTI1ICguWShuXzg4OSksIAotCS5CKG5fNjI4KSwgCi0JLkEobl8xODEpKTsKLSAgIE9SMlgxIGcxNTUzNSAoLlkobl82MzcpLCAKLQkuQihuXzYyMiksIAotCS5BKG5fNTgpKTsKLSAgIEFORDJYMiBnMTU1NDUgKC5ZKG5fNjMwKSwgCi0JLkIobl81OTEpLCAKLQkuQShwY1s2XSkpOwotICAgT1IyWDIgZzE1NTQ3ICguWShuXzYyOCksIAotCS5CKG5fMTI3OCksIAotCS5BKG5fMzQyKSk7Ci0gICBBTkQyWDIgZzE1NTQ5ICguWShuXzYyNiksIAotCS5CKG5fNTg1KSwgCi0JLkEoYXJbNl0pKTsKLSAgIEFORDJYMiBnMTU1NTUgKC5ZKG5fNjIyKSwgCi0JLkIobl81ODEpLCAKLQkuQShuXzkzKSk7Ci0gICBPUjJYMSBnMTU1NjQgKC5ZKG5fNjE1KSwgCi0JLkIobl81NSksIAotCS5BKG5fOTIpKTsKLSAgIE9SMlgxIGcxNTU2OSAoLlkobl82MTIpLCAKLQkuQihuXzE3KSwgCi0JLkEobl8xMDMpKTsKLSAgIEFORDJYMSBnMTU1NzggKC5ZKG5fNjA4KSwgCi0JLkIobl84KSwgCi0JLkEobl8zNzIpKTsKLSAgIE9SMlgxIGcxNTU4NyAoLlkobl82MDIpLCAKLQkuQihuXzU4MSksIAotCS5BKG5fNTEpKTsKLSAgIEFORDJYMiBnMTU2MDEgKC5ZKG5fNTkxKSwgCi0JLkIobl81MzcpLCAKLQkuQShwY1s1XSkpOwotICAgQU5EMlgyIGcxNTYwOCAoLlkobl81ODUpLCAKLQkuQihuXzUzMiksIAotCS5BKGFyWzVdKSk7Ci0gICBBTkQyWDIgZzE1NjE1ICguWShuXzU4MSksIAotCS5CKG5fNTQwKSwgCi0JLkEobl8xMDcpKTsKLSAgIENMS0lOVlgxIGcxNTYxOSAoLlkobl81NzgpLCAKLQkuQShuXzgpKTsKLSAgIEFORDJYMSBnMTU2MzEgKC5ZKG5fNTcwKSwgCi0JLkIobl8xNDM5KSwgCi0JLkEoaXJbMl0pKTsKLSAgIE9SMlgyIGcxNTY0OSAoLlkobl81NjEpLCAKLQkuQihuXzEzMjcpLCAKLQkuQShpclszXSkpOwotICAgT1IyWDEgZzE1NjUwICguWShuXzU2MCksIAotCS5CKG5fMTMyNSksIAotCS5BKGdvX3Byb2cpKTsKLSAgIE9SMlgxIGcxNTY2MiAoLlkobl81NTApLCAKLQkuQihuXzU0MCksIAotCS5BKG5fNDcpKTsKLSAgIEFORDJYMiBnMTU2NzUgKC5ZKG5fNTQwKSwgCi0JLkIobl80NTgpLCAKLQkuQShuXzExMikpOwotICAgQU5EMlgyIGcxNTY4MSAoLlkobl81MzcpLCAKLQkuQihuXzQ0MSksIAotCS5BKHBjWzRdKSk7Ci0gICBPUjJYMSBnMTU2ODYgKC5ZKG5fNTM0KSwgCi0JLkIobl8xMzQ2KSwgCi0JLkEobl8xMTgpKTsKLSAgIEFORDJYMiBnMTU2ODggKC5ZKG5fNTMyKSwgCi0JLkIobl80NTkpLCAKLQkuQShhcls0XSkpOwotICAgQU5EMlgxIGcxNTc0MCAoLlkobl80OTUpLCAKLQkuQihuXzQ0NSksIAotCS5BKHRocmVlX2N5Y2xlKSk7Ci0gICBBTkQyWDEgZzE1NzQ4ICguWShuXzQ4NyksIAotCS5CKG5fNDQ0KSwgCi0JLkEobl8zNDkpKTsKLSAgIE9SMlgxIGcxNTc1MCAoLlkobl80ODUpLCAKLQkuQihuXzQ1OCksIAotCS5BKG5fMzgpKTsKLSAgIENMS0lOVlgxIGcxNTc1NyAoLlkobl80NzkpLCAKLQkuQShuXzEzNTgpKTsKLSAgIE9SMlgxIGcxNTc2OCAoLlkobl80NjgpLCAKLQkuQihuXzQxKSwgCi0JLkEobl8xMTgpKTsKLSAgIEFORDJYMiBnMTU3NzggKC5ZKG5fNDU5KSwgCi0JLkIobl8yOTEpLCAKLQkuQShhclszXSkpOwotICAgQU5EMlgyIGcxNTc4MCAoLlkobl80NTgpLCAKLQkuQihuXzMyMyksIAotCS5BKG5fMTEwKSk7Ci0gICBBTkQyWDEgZzE1NzgzICguWShuXzQ1NiksIAotCS5CKG5fNDE2KSwgCi0JLkEoYWNjWzMxXSkpOwotICAgT1IyWDIgZzE1Nzg2ICguWShuXzQ1NCksIAotCS5CKG5fMzg2KSwgCi0JLkEoaXJbM10pKTsKLSAgIENMS0lOVlgyIGcxNTc4OCAoLlkobl80NTIpLCAKLQkuQShuXzQ1MSkpOwotICAgT1IyWDIgZzE1Nzg5ICguWShuXzQ1MSksIAotCS5CKG5fMjIpLCAKLQkuQShuXzExOCkpOwotICAgQ0xLSU5WWDEgZzE1Nzk1ICguWShuXzQ0NyksIAotCS5BKG5fNDQ2KSk7Ci0gICBBTkQyWDEgZzE1Nzk2ICguWShuXzQ0NiksIAotCS5CKG5fNDA3KSwgCi0JLkEobl8xODYpKTsKLSAgIENMS0lOVlgyIGcxNTc5NyAoLlkobl80NDQpLCAKLQkuQShuXzQ0NSkpOwotICAgT1IyWDIgZzE1Nzk4ICguWShuXzQ0NSksIAotCS5CKG5fNDAzKSwgCi0JLkEobl8xOTMpKTsKLSAgIEFORDJYMSBnMTU4MDAgKC5ZKG5fNDQzKSwgCi0JLkIobl8zOTIpLCAKLQkuQShuXzE3NCkpOwotICAgQU5EMlgyIGcxNTgwMiAoLlkobl80NDEpLCAKLQkuQihuXzMwNiksIAotCS5BKHBjWzNdKSk7Ci0gICBPUjJYMSBnMTU4MTIgKC5ZKG5fNDMyKSwgCi0JLkIobl8zNCksIAotCS5BKG5fMjU4KSk7Ci0gICBBTkQyWDIgZzE1ODMyICguWShuXzQxNiksIAotCS5CKG5fMzc5KSwgCi0JLkEoaXJbOV0pKTsKLSAgIENMS0lOVlgxIGcxNTgzMyAoLlkobl80MTUpLCAKLQkuQShuXzM2KSk7Ci0gICBPUjJYMiBnMTU4MzcgKC5ZKG5fNDEyKSwgCi0JLkIobl8zNTcpLCAKLQkuQShuXzM3MykpOwotICAgQU5EMlgxIGcxNTg0MyAoLlkobl80MDcpLCAKLQkuQihuXzM2NyksIAotCS5BKG5fMTE3KSk7Ci0gICBDTEtJTlZYMSBnMTU4NDggKC5ZKG5fNDAzKSwgCi0JLkEobl8zNCkpOwotICAgQU5EMlgxIGcxNTg1MSAoLlkobl80MDIpLCAKLQkuQihuXzM2MCksIAotCS5BKG5fMTg2KSk7Ci0gICBDTEtJTlZYMSBnMTU4NTIgKC5ZKG5fNDAxKSwgCi0JLkEobl80MDApKTsKLSAgIE9SMlgyIGcxNTg1MyAoLlkobl80MDApLCAKLQkuQihuXzM0OSksIAotCS5BKG5fMTAzKSk7Ci0gICBPUjJYMSBnMTU4NTYgKC5ZKG5fMzk3KSwgCi0JLkIobl8xMzkwKSwgCi0JLkEobl8xOTEpKTsKLSAgIENMS0lOVlgyIGcxNTg2MSAoLlkobl8zOTIpLCAKLQkuQShuXzM5MSkpOwotICAgQU5EMlgyIGcxNTg2MiAoLlkobl8zOTEpLCAKLQkuQihuXzM2NiksIAotCS5BKG5fMzYxKSk7Ci0gICBBTkQyWDIgZzE1ODY2ICguWShuXzM4OSksIAotCS5CKG5fMzY3KSwgCi0JLkEobl8yMjUpKTsKLSAgIE9SMlgyIGcxNTg3MyAoLlkobl8zODYpLCAKLQkuQihuXzQpLCAKLQkuQShuXzk5KSk7Ci0gICBBTkQyWDEgZzE1ODg4ICguWShuXzM3OSksIAotCS5CKG5fMzEzKSwgCi0JLkEobl8xMDIpKTsKLSAgIENMS0lOVlgxIGcxNTg5MCAoLlkobl8zNzYpLCAKLQkuQShuXzM3NykpOwotICAgQU5EMlgyIGcxNTg5MSAoLlkobl8zNzcpLCAKLQkuQihuXzMwMSksIAotCS5BKG5fMTQzKSk7Ci0gICBBTkQyWDEgZzE1ODkzICguWShuXzM3NCksIAotCS5CKG5fMjk1KSwgCi0JLkEobl8xNDMpKTsKLSAgIENMS0lOVlgxIGcxNTg5NCAoLlkobl8zNzMpLCAKLQkuQShuXzM3MikpOwotICAgT1IyWDIgZzE1ODk1ICguWShuXzM3MiksIAotCS5CKG5fMjk0KSwgCi0JLkEobl8xMzApKTsKLSAgIE9SMlgyIGcxNTg5NyAoLlkobl8zNzEpLCAKLQkuQihuXzIzKSwgCi0JLkEobl8xODEpKTsKLSAgIENMS0lOVlgxIGcxNTkwMSAoLlkobl8zNjcpLCAKLQkuQShuXzM2NikpOwotICAgT1IyWDIgZzE1OTAyICguWShuXzM2NiksIAotCS5CKG5fMjgxKSwgCi0JLkEobl8xNDQpKTsKLSAgIEFORDJYMSBnMTU5MDMgKC5ZKG5fMzY1KSwgCi0JLkIoYXJueiksIAotCS5BKG5fMzIwKSk7Ci0gICBPUjJYMSBnMTU5MDQgKC5ZKG5fMzY0KSwgCi0JLkIobGV6KSwgCi0JLkEobl8xNCkpOwotICAgT1IyWDIgZzE1OTA2ICguWShuXzM2MyksIAotCS5CKG5fMjgxKSwgCi0JLkEobl8xMzApKTsKLSAgIENMS0lOVlgyIGcxNTkwOCAoLlkobl8zNjApLCAKLQkuQShuXzM2MSkpOwotICAgT1IyWDIgZzE1OTA5ICguWShuXzM2MSksIAotCS5CKG5fMjgxKSwgCi0JLkEobl8xMjEpKTsKLSAgIEFORDJYMSBnMTU5MTAgKC5ZKG5fMzU5KSwgCi0JLkIobl8zMTMpLCAKLQkuQShpclsxMF0pKTsKLSAgIEFORDJYMSBnMTU5MTIgKC5ZKG5fMzU3KSwgCi0JLkIobl8yOTUpLCAKLQkuQShuXzEyMikpOwotICAgQ0xLSU5WWDIgZzE1OTIxICguWShuXzM0OSksIAotCS5BKG5fMTM5MykpOwotICAgT1IyWDEgZzE1OTMwICguWShuXzM0MyksIAotCS5CKG5fMzIzKSwgCi0JLkEobl8yNikpOwotICAgQ0xLSU5WWDEgZzE1OTMxICguWShuXzM0MiksIAotCS5BKG5fMTM5NikpOwotICAgQU5EMlgyIGcxNTk1MiAoLlkobl8zMjMpLCAKLQkuQihuXzE0NSksIAotCS5BKG5fOTYpKTsKLSAgIEFORDJYMSBnMTU5NTMgKC5ZKG5fMzIyKSwgCi0JLkIobl8yNDEpLCAKLQkuQShtZHJbMTFdKSk7Ci0gICBBTkQyWDIgZzE1OTU1ICguWShuXzMyMCksIAotCS5CKG5fMjU1KSwgCi0JLkEobl8yMCkpOwotICAgQU5EMlgxIGcxNTk1OSAoLlkobl8zMTYpLCAKLQkuQihuXzI0MyksIAotCS5BKG5fMTM5KSk7Ci0gICBBTkQyWDEgZzE1OTYwICguWShuXzMxNSksIAotCS5CKG5fMjQxKSwgCi0JLkEobWRyWzhdKSk7Ci0gICBBTkQyWDEgZzE1OTYxICguWShuXzMxNCksIAotCS5CKG5fMjQxKSwgCi0JLkEobWRyWzE0XSkpOwotICAgQU5EMlgxIGcxNTk2MiAoLlkobl8zMTMpLCAKLQkuQihuXzE0MTUpLCAKLQkuQShuXzE0MikpOwotICAgQU5EMlgxIGcxNTk2NCAoLlkobl8zMTIpLCAKLQkuQihuXzI0MSksIAotCS5BKG1kcls5XSkpOwotICAgQU5EMlgxIGcxNTk2NiAoLlkobl8zMTApLCAKLQkuQihuXzI0MSksIAotCS5BKG1kclsxMF0pKTsKLSAgIEFORDJYMiBnMTU5NzAgKC5ZKG5fMzA2KSwgCi0JLkIobl8xMzIpLCAKLQkuQShwY1syXSkpOwotICAgQU5EMlgxIGcxNTk3MiAoLlkobl8zMDUpLCAKLQkuQihuXzI0MSksIAotCS5BKG1kclsxM10pKTsKLSAgIEFORDJYMSBnMTU5NzMgKC5ZKG5fMzA0KSwgCi0JLkIobl8yNDEpLCAKLQkuQShtZHJbMTVdKSk7Ci0gICBPUjJYMiBnMTU5NzYgKC5ZKG5fMzAyKSwgCi0JLkIobl8yNTIpLCAKLQkuQShuXzE5MCkpOwotICAgQ0xLSU5WWDEgZzE1OTc3ICguWShuXzMwMSksIAotCS5BKG5fMzAwKSk7Ci0gICBPUjJYMiBnMTU5NzggKC5ZKG5fMzAwKSwgCi0JLkIobl8yMzEpLCAKLQkuQShuXzE0MCkpOwotICAgQU5EMlgxIGcxNTk4MiAoLlkobl8yOTYpLCAKLQkuQihuXzI0MSksIAotCS5BKG1kclsxMl0pKTsKLSAgIENMS0lOVlgxIGcxNTk4MyAoLlkobl8yOTUpLCAKLQkuQShuXzI5NCkpOwotICAgT1IyWDIgZzE1OTg0ICguWShuXzI5NCksIAotCS5CKG5fMjQ5KSwgCi0JLkEobl8xMzgpKTsKLSAgIEFORDJYMiBnMTU5ODcgKC5ZKG5fMjkxKSwgCi0JLkIobl8xMjYpLCAKLQkuQShhclsyXSkpOwotICAgT1IyWDIgZzE1OTk5ICguWShuXzI4MSksIAotCS5CKG5fMjQwKSwgCi0JLkEobl8xNjApKTsKLSAgIENMS0lOVlgyIGcxNjAwMCAoLlkobl8yODApLCAKLQkuQShuXzg5NSkpOwotICAgQU5EMlgyIGcxNjAwMSAoLlkobl84OTUpLCAKLQkuQihuXzI1MSksIAotCS5BKG5fMTExKSk7Ci0gICBBTkQyWDEgZzE2MDA3ICguWShuXzI3NSksIAotCS5CKG5fMjUxKSwgCi0JLkEoaXJbMTJdKSk7Ci0gICBPUjJYMSBnMTYwMDkgKC5ZKG5fMjczKSwgCi0JLkIobl8xNDIwKSwgCi0JLkEobl8xNDE3KSk7Ci0gICBPUjJYMSBnMTYwMTQgKC5ZKG5fMjY5KSwgCi0JLkIobl8xNDIxKSwgCi0JLkEobl8xNDE2KSk7Ci0gICBDTEtJTlZYMSBnMTYwMjggKC5ZKG5fMjU4KSwgCi0JLkEobl8yNTcpKTsKLSAgIEFORDJYMSBnMTYwMjkgKC5ZKG5fMjU3KSwgCi0JLkIobl8xOTYpLCAKLQkuQShuXzExNykpOwotICAgQU5EMlgxIGcxNjAzMSAoLlkobl8yNTUpLCAKLQkuQihuXzE2OSksIAotCS5BKHBoaV8xKSk7Ci0gICBDTEtJTlZYMSBnMTYwMzQgKC5ZKG5fMjUyKSwgCi0JLkEobl8yNCkpOwotICAgQ0xLSU5WWDEgZzE2MDM2ICguWShuXzI1MSksIAotCS5BKG5fMjEpKTsKLSAgIEFORDJYMSBnMTYwMzkgKC5ZKG5fMjUwKSwgCi0JLkIobl85OTgpLCAKLQkuQShuXzIwNykpOwotICAgT1IyWDIgZzE2MDQwICguWShuXzI0OSksIAotCS5CKG5fMTgyKSwgCi0JLkEobl8xMTEpKTsKLSAgIE9SMlgxIGcxNjA0NCAoLlkobl8yNDUpLCAKLQkuQihuXzE3NyksIAotCS5BKG5fMTk2KSk7Ci0gICBBTkQyWDIgZzE2MDQ2ICguWShuXzI0MyksIAotCS5CKG5fMTgzKSwgCi0JLkEobl8xMzYpKTsKLSAgIEFORDJYMiBnMTYwNDggKC5ZKG5fMjQxKSwgCi0JLkIobl8yMTApLCAKLQkuQShuXzEzNikpOwotICAgQ0xLSU5WWDIgZzE2MDQ5ICguWShuXzIzOSksIAotCS5BKG5fMjQwKSk7Ci0gICBPUjJYMiBnMTYwNTAgKC5ZKG5fMjQwKSwgCi0JLkIobl8xNzYpLCAKLQkuQShpclsxMl0pKTsKLSAgIENMS0lOVlgyIGcxNjA1OCAoLlkobl8yMzEpLCAKLQkuQShuXzIzMikpOwotICAgQU5EMlgyIGcxNjA1OSAoLlkobl8yMzIpLCAKLQkuQihuXzE4MyksIAotCS5BKG5fMTExKSk7Ci0gICBDTEtJTlZYMiBnMTYwNjQgKC5ZKG5fMjI1KSwgCi0JLkEobl8yMjYpKTsKLSAgIE9SMlgyIGcxNjA2NSAoLlkobl8yMjYpLCAKLQkuQihuXzIwNCksIAotCS5BKG5fMTI0KSk7Ci0gICBDTEtJTlZYMiBnMTYwNzkgKC5ZKG5fMjEyKSwgCi0JLkEobl8xNDI1KSk7Ci0gICBDTEtJTlZYMSBnMTYwODMgKC5ZKG5fOTk4KSwgCi0JLkEobl8yMTApKTsKLSAgIEFORDJYMiBnMTYwODQgKC5ZKG5fMjEwKSwgCi0JLkIobl8xMjgpLCAKLQkuQShuXzg5KSk7Ci0gICBDTEtJTlZYMiBnMTYwODUgKC5ZKG5fMjA5KSwgCi0JLkEobl8xOSkpOwotICAgQ0xLSU5WWDEgZzE2MDg3ICguWShuXzIwNyksIAotCS5BKG5fMjA4KSk7Ci0gICBBTkQyWDIgZzE2MDg4ICguWShuXzIwOCksIAotCS5CKG5fOSksIAotCS5BKG5fODkpKTsKLSAgIEFORDJYMSBnMTYwOTAgKC5ZKG5fMjA1KSwgCi0JLkIobl8xMjEpLCAKLQkuQShuXzE0OCkpOwotICAgQ0xLSU5WWDIgZzE2MDkyICguWShuXzIwMyksIAotCS5BKG5fMjA0KSk7Ci0gICBPUjJYMiBnMTYwOTMgKC5ZKG5fMjA0KSwgCi0JLkIobl8xMTgpLCAKLQkuQShuXzkyKSk7Ci0gICBBTkQyWDIgZzE2MDk1ICguWShuXzIwMSksIAotCS5CKG5fMTUzKSwgCi0JLkEobl8xMzkpKTsKLSAgIEFORDJYMiBnMTYwOTcgKC5ZKG5fMTk5KSwgCi0JLkIobl8xMTcpLCAKLQkuQShuXzEyNSkpOwotICAgQU5EMlgxIGcxNjA5OCAoLlkobl8xOTgpLCAKLQkuQihuXzEzNCksIAotCS5BKHR3b19jeWNsZSkpOwotICAgQ0xLSU5WWDIgZzE2MTAwICguWShuXzE5NSksIAotCS5BKG5fMTk2KSk7Ci0gICBBTkQyWDIgZzE2MTAxICguWShuXzE5NiksIAotCS5CKG5fMTU0KSwgCi0JLkEocGhpXzYpKTsKLSAgIENMS0lOVlgxIGcxNjEwMyAoLlkobl8xOTMpLCAKLQkuQShuXzE5MikpOwotICAgT1IyWDIgZzE2MTA0ICguWShuXzE5MiksIAotCS5CKG5fMTQxKSwgCi0JLkEoaXJbMTRdKSk7Ci0gICBPUjJYMiBnMTYxMDYgKC5ZKG5fMTkxKSwgCi0JLkIobl8xNDEpLCAKLQkuQShuXzg5KSk7Ci0gICBPUjJYMiBnMTYxMDggKC5ZKG5fMTkwKSwgCi0JLkIobl8xNDQpLCAKLQkuQShuXzE2MikpOwotICAgQ0xLSU5WWDEgZzE2MTEyICguWShuXzE4NiksIAotCS5BKG5fMTg1KSk7Ci0gICBPUjJYMiBnMTYxMTMgKC5ZKG5fMTg1KSwgCi0JLkIobl8xNTUpLCAKLQkuQShuXzk1KSk7Ci0gICBDTEtJTlZYMiBnMTYxMTUgKC5ZKG5fMTgyKSwgCi0JLkEobl8xODMpKTsKLSAgIEFORDJYMiBnMTYxMTYgKC5ZKG5fMTgzKSwgCi0JLkIobl8xMjgpLCAKLQkuQShpclsxNF0pKTsKLSAgIENMS0lOVlgxIGcxNjExNyAoLlkobl8xODEpLCAKLQkuQShuXzE4MCkpOwotICAgT1IyWDIgZzE2MTE4ICguWShuXzE4MCksIAotCS5CKG5fMTQ3KSwgCi0JLkEoaXJbMTRdKSk7Ci0gICBDTEtJTlZYMiBnMTYxMjEgKC5ZKG5fMTc2KSwgCi0JLkEobl8xNzcpKTsKLSAgIEFORDJYMiBnMTYxMjIgKC5ZKG5fMTc3KSwgCi0JLkIobl85KSwgCi0JLkEoaXJbMTRdKSk7Ci0gICBBTkQyWDEgZzE2MTI1ICguWShuXzE3NCksIAotCS5CKG5fMTI1KSwgCi0JLkEocGhpXzYpKTsKLSAgIE9SMlgxIGcxNjEyNyAoLlkobl8xNzIpLCAKLQkuQihuXzEzOCksIAotCS5BKG5fOTEpKTsKLSAgIEFORDJYMiBnMTYxMjkgKC5ZKG5fMTcxKSwgCi0JLkIobl8xMTcpLCAKLQkuQShwaGlfMykpOwotICAgQU5EMlgxIGcxNjEzMSAoLlkobl8xNjkpLCAKLQkuQihuXzEzMyksIAotCS5BKG5fODIpKTsKLSAgIElOVlg2IGcxNjEzNSAoLlkobl8xNjYpLCAKLQkuQShuXzE0MjQpKTsKLSAgIE9SMlgyIGcxNjE0MCAoLlkobl8xNjIpLCAKLQkuQihuXzEwMiksIAotCS5BKG5fODIpKTsKLSAgIENMS0lOVlgxIGcxNjE0MiAoLlkobl8xNTkpLCAKLQkuQShuXzE2MCkpOwotICAgT1IyWDIgZzE2MTQzICguWShuXzE2MCksIAotCS5CKG5fMTAyKSwgCi0JLkEoaXJbMTFdKSk7Ci0gICBBTkQyWDEgZzE2MTQ2ICguWShuXzE1NyksIAotCS5CKHBoaV8xKSwgCi0JLkEoYnJhbmNoX3N0YWxsXzIyOTUpKTsKLSAgIENMS0lOVlgxIGcxNjE0OCAoLlkobl8xNTQpLCAKLQkuQShuXzE1NSkpOwotICAgT1IyWDIgZzE2MTQ5ICguWShuXzE1NSksIAotCS5CKG5fMTA1KSwgCi0JLkEodGhyZWVfY3ljbGUpKTsKLSAgIENMS0lOVlgyIGcxNjE1MCAoLlkobl8xNTIpLCAKLQkuQShuXzE1MykpOwotICAgQU5EMlgyIGcxNjE1MSAoLlkobl8xNTMpLCAKLQkuQihpcls4XSksIAotCS5BKGlyWzldKSk7Ci0gICBDTEtJTlZYMSBnMTYxNTMgKC5ZKG5fMTUwKSwgCi0JLkEobl8xNDkpKTsKLSAgIE9SMlgyIGcxNjE1NCAoLlkobl8xNDkpLCAKLQkuQihuXzEwOSksIAotCS5BKGlyWzRdKSk7Ci0gICBPUjJYMiBnMTYxNTYgKC5ZKG5fMTQ4KSwgCi0JLkIobl8xMDIpLCAKLQkuQShpcls4XSkpOwotICAgT1IyWDIgZzE2MTU4ICguWShuXzE0NyksIAotCS5CKG5fODApLCAKLQkuQShpclsxM10pKTsKLSAgIEFORDJYMSBnMTYxNjAgKC5ZKG5fMTQ1KSwgCi0JLkIobl84MSksIAotCS5BKG5fODMpKTsKLSAgIENMS0lOVlgyIGcxNjE2MSAoLlkobl8xNDMpLCAKLQkuQShuXzE0NCkpOwotICAgT1IyWDIgZzE2MTYyICguWShuXzE0NCksIAotCS5CKG5fOTEpLCAKLQkuQShpcls5XSkpOwotICAgQ0xLSU5WWDIgZzE2MTYzICguWShuXzE0MSksIAotCS5BKG5fMTQyKSk7Ci0gICBBTkQyWDIgZzE2MTY0ICguWShuXzE0MiksIAotCS5CKGlyWzE1XSksIAotCS5BKGlyWzEzXSkpOwotICAgQ0xLSU5WWDIgZzE2MTY1ICguWShuXzEzOSksIAotCS5BKG5fMTQwKSk7Ci0gICBPUjJYMiBnMTYxNjYgKC5ZKG5fMTQwKSwgCi0JLkIoaXJbMTBdKSwgCi0JLkEoaXJbMTFdKSk7Ci0gICBPUjJYMiBnMTYxNjggKC5ZKG5fMTM4KSwgCi0JLkIobl84MiksIAotCS5BKGlyWzEwXSkpOwotICAgQU5EMlgyIGcxNjE2OSAoLlkobl8xMzcpLCAKLQkuQihuXzEwOSksIAotCS5BKGlyWzRdKSk7Ci0gICBDTEtJTlZYMiBnMTYxNzAgKC5ZKG5fMTM2KSwgCi0JLkEobl8xMzUpKTsKLSAgIE9SMlgyIGcxNjE3MSAoLlkobl8xMzUpLCAKLQkuQihuXzk1KSwgCi0JLkEoREZUX3NkbykpOwotICAgQU5EMlgxIGcxNjE3MiAoLlkobl8xMzQpLCAKLQkuQihuXzExNCksIAotCS5BKHRocmVlX2N5Y2xlKSk7Ci0gICBBTkQyWDIgZzE2MTc0ICguWShuXzEzMyksIAotCS5CKGlyWzE0XSksIAotCS5BKGlyWzEyXSkpOwotICAgQU5EMlgyIGcxNjE3NSAoLlkobl8xMzIpLCAKLQkuQihwY1swXSksIAotCS5BKHBjWzFdKSk7Ci0gICBDTEtJTlZYMiBnMTYxNzcgKC5ZKG5fMTI5KSwgCi0JLkEobl8xMzApKTsKLSAgIE9SMlgyIGcxNjE3OCAoLlkobl8xMzApLCAKLQkuQihpcls4XSksIAotCS5BKGlyWzldKSk7Ci0gICBBTkQyWDEgZzE2MTc5ICguWShuXzEyOCksIAotCS5CKG5fODApLCAKLQkuQShpclsxM10pKTsKLSAgIEFORDJYMiBnMTYxODEgKC5ZKG5fMTI2KSwgCi0JLkIoYXJbMV0pLCAKLQkuQShhclswXSkpOwotICAgQ0xLSU5WWDEgZzE2MTgyICguWShuXzEyNSksIAotCS5BKG5fMTI0KSk7Ci0gICBPUjJYMiBnMTYxODMgKC5ZKG5fMTI0KSwgCi0JLkIodHdvX2N5Y2xlKSwgCi0JLkEodGhyZWVfY3ljbGUpKTsKLSAgIENMS0lOVlgxIGcxNjE4NSAoLlkobl8xMjIpLCAKLQkuQShuXzEyMSkpOwotICAgT1IyWDIgZzE2MTg2ICguWShuXzEyMSksIAotCS5CKG5fOTgpLCAKLQkuQShpcls4XSkpOwotICAgSU5WWDYgZzE2MTkwICguWShuXzExNyksIAotCS5BKG5fMTE4KSk7Ci0gICBPUjJYMiBnMTYxOTEgKC5ZKG5fMTE4KSwgCi0JLkIoYnJhbmNoX3N0YWxsXzIyOTUpLCAKLQkuQShicmFuY2hfc3RhbGxfZGVsYXkpKTsKLSAgIENMS0lOVlgxIGcxNjE5NCAoLlkobl8xMTQpLCAKLQkuQShwaGlfNCkpOwotICAgQ0xLSU5WWDIgZzE2MTk1ICguWShuXzExMyksIAotCS5BKHBoaV8xKSk7Ci0gICBDTEtJTlZYMiBnMTYxOTYgKC5ZKG5fMTEyKSwgCi0JLkEoYXJbNF0pKTsKLSAgIENMS0lOVlgyIGcxNjE5NyAoLlkobl8xMTEpLCAKLQkuQShpclsxMl0pKTsKLSAgIENMS0lOVlgyIGcxNjIwMCAoLlkobl8xMTApLCAKLQkuQShhclszXSkpOwotICAgQ0xLSU5WWDEgZzE2MjAxICguWShuXzEwOSksIAotCS5BKGlyWzVdKSk7Ci0gICBDTEtJTlZYMSBnMTYyMDIgKC5ZKG5fMTA4KSwgCi0JLkEocGNbMF0pKTsKLSAgIENMS0lOVlgyIGcxNjIwMyAoLlkobl8xMDcpLCAKLQkuQShhcls1XSkpOwotICAgQ0xLSU5WWDIgZzE2MjA0ICguWShuXzEwNiksIAotCS5BKGFyWzExXSkpOwotICAgQ0xLSU5WWDEgZzE2MjA1ICguWShuXzEwNSksIAotCS5BKHR3b19jeWNsZSkpOwotICAgQ0xLSU5WWDIgZzE2MjA3ICguWShuXzEwNCksIAotCS5BKGFsdV9yZXN1bHRbMzJdKSk7Ci0gICBDTEtJTlZYMiBnMTYyMTEgKC5ZKG5fMTAzKSwgCi0JLkEocGhpXzMpKTsKLSAgIENMS0lOVlgxIGcxNjIxMiAoLlkobl8xMDIpLCAKLQkuQShpclsxMF0pKTsKLSAgIENMS0lOVlgxIGcxNjIxNCAoLlkobl8xMDEpLCAKLQkuQShhclsxNV0pKTsKLSAgIENMS0lOVlgyIGcxNjIxNSAoLlkobl8xMDApLCAKLQkuQShhclsxNF0pKTsKLSAgIENMS0lOVlgxIGcxNjIxNiAoLlkobl85OSksIAotCS5BKGlyWzddKSk7Ci0gICBDTEtJTlZYMiBnMTYyMTcgKC5ZKG5fOTgpLCAKLQkuQShpcls5XSkpOwotICAgQ0xLSU5WWDIgZzE2MjE5ICguWShuXzk3KSwgCi0JLkEodGhyZWVfY3ljbGUpKTsKLSAgIENMS0lOVlgyIGcxNjIyMCAoLlkobl85NiksIAotCS5BKGFyWzJdKSk7Ci0gICBDTEtJTlZYMSBnMTYyMjEgKC5ZKG5fOTUpLCAKLQkuQShwaGlfNSkpOwotICAgQ0xLSU5WWDEgZzE2MjIyICguWShuXzk0KSwgCi0JLkEoYXJwKSk7Ci0gICBDTEtJTlZYMiBnMTYyMjMgKC5ZKG5fOTMpLCAKLQkuQShhcls2XSkpOwotICAgQ0xLSU5WWDIgZzE2MjI0ICguWShuXzkyKSwgCi0JLkEocGhpXzYpKTsKLSAgIENMS0lOVlgxIGcxNjIyNSAoLlkobl85MSksIAotCS5BKGlyWzhdKSk7Ci0gICBDTEtJTlZYMiBnMTYyMjcgKC5ZKG5fOTApLCAKLQkuQShhcls3XSkpOwotICAgQ0xLSU5WWDEgZzE2MjI5ICguWShuXzg5KSwgCi0JLkEoaXJbMTRdKSk7Ci0gICBDTEtJTlZYMiBnMTYyMzEgKC5ZKG5fODgpLCAKLQkuQShhclsxMl0pKTsKLSAgIENMS0lOVlgyIGcxNjIzMyAoLlkobl84NyksIAotCS5BKGFyWzEwXSkpOwotICAgQ0xLSU5WWDIgZzE2MjM0ICguWShuXzg2KSwgCi0JLkEoYXJbMTNdKSk7Ci0gICBDTEtJTlZYMiBnMTYyMzUgKC5ZKG5fODUpLCAKLQkuQShhcls5XSkpOwotICAgQ0xLSU5WWDIgZzE2MjM5ICguWShuXzg0KSwgCi0JLkEoYXJbOF0pKTsKLSAgIENMS0lOVlgyIGcxNjI0MCAoLlkobl84MyksIAotCS5BKGFyWzBdKSk7Ci0gICBDTEtJTlZYMSBnMTYyNDIgKC5ZKG5fODIpLCAKLQkuQShpclsxMV0pKTsKLSAgIENMS0lOVlgxIGcxNjI0MyAoLlkobl84MSksIAotCS5BKGFyWzFdKSk7Ci0gICBDTEtJTlZYMSBnMTYyNDUgKC5ZKG5fODApLCAKLQkuQShpclsxNV0pKTsKLSAgIE5PUjJCWDQgZzE2MjQ3ICguWShuXzc3KSwgCi0JLkIobl83NTUpLCAKLQkuQU4oYXJbMTRdKSk7Ci0gICBOT1IyQlg0IGcxNjI0OSAoLlkobl83NSksIAotCS5CKG5fNzM4KSwgCi0JLkFOKGFyWzEzXSkpOwotICAgTk9SMkJYNCBnMTYyNTEgKC5ZKG5fNzMpLCAKLQkuQihuXzcyNyksIAotCS5BTihhclsxMl0pKTsKLSAgIE5PUjJCWDQgZzE2MjU0ICguWShuXzcwKSwgCi0JLkIobl83MTYpLCAKLQkuQU4oYXJbMTFdKSk7Ci0gICBOT1IyQlg0IGcxNjI1NiAoLlkobl82OCksIAotCS5CKG5fNjk0KSwgCi0JLkFOKGFyWzEwXSkpOwotICAgTk9SMkJYNCBnMTYyNTcgKC5ZKG5fNjcpLCAKLQkuQihuXzY3NCksIAotCS5BTihhcls5XSkpOwotICAgTk9SMkJYNCBnMTYyNjEgKC5ZKG5fNjMpLCAKLQkuQihuXzY1NCksIAotCS5BTihhcls4XSkpOwotICAgTk9SMkJYNCBnMTYyNjIgKC5ZKG5fNjIpLCAKLQkuQihuXzYyMiksIAotCS5BTihhcls3XSkpOwotICAgTk9SMkJYNCBnMTYyNjYgKC5ZKG5fNTgpLCAKLQkuQihuXzU4MSksIAotCS5BTihhcls2XSkpOwotICAgTk9SMkJYNCBnMTYyNjkgKC5ZKG5fNTUpLCAKLQkuQihuXzEyOTQpLCAKLQkuQU4obl80MikpOwotICAgTk9SMkJYNCBnMTYyNzMgKC5ZKG5fNTEpLCAKLQkuQihuXzU0MCksIAotCS5BTihhcls1XSkpOwotICAgTk9SMkJYNCBnMTYyNzQgKC5ZKG5fNTApLCAKLQkuQihuXzU2MSksIAotCS5BTihuXzEzNykpOwotICAgTk9SMkJYNCBnMTYyNzcgKC5ZKG5fNDcpLCAKLQkuQihuXzQ1OCksIAotCS5BTihhcls0XSkpOwotICAgTkFORDJCWDQgZzE2MjgwICguWShuXzQ0KSwgCi0JLkIobl8xMzQ2KSwgCi0JLkFOKG5fNDAyKSk7Ci0gICBOQU5EMkJYNCBnMTYyODIgKC5ZKG5fNDIpLCAKLQkuQihuXzQwNyksIAotCS5BTih0d29fY3ljbGUpKTsKLSAgIE5PUjJCWDQgZzE2MjgzICguWShuXzQxKSwgCi0JLkIobl80MDIpLCAKLQkuQU4obl8yMikpOwotICAgTk9SMkJYNCBnMTYyODYgKC5ZKG5fMzgpLCAKLQkuQihuXzMyMyksIAotCS5BTihhclszXSkpOwotICAgTkFORDJCWDQgZzE2Mjg4ICguWShuXzM2KSwgCi0JLkIobl8zNzkpLCAKLQkuQU4obl8xNDQpKTsKLSAgIE5PUjJCWDQgZzE2MjkwICguWShuXzM0KSwgCi0JLkIobl8xMzkwKSwgCi0JLkFOKG5fMzAyKSk7Ci0gICBOQU5EMkJYNCBnMTYyOTQgKC5ZKG5fMzApLCAKLQkuQihuXzMwMiksIAotCS5BTihuXzI1MikpOwotICAgTk9SMkJYNCBnMTYyOTUgKC5ZKG5fMjkpLCAKLQkuQihuXzI3NSksIAotCS5BTihuXzY5MCkpOwotICAgTk9SMkJYNCBnMTYyOTggKC5ZKG5fMjYpLCAKLQkuQihuXzE0NSksIAotCS5BTihhclsyXSkpOwotICAgTk9SMkJYNCBnMTYzMDAgKC5ZKG5fMjQpLCAKLQkuQihuXzE5MSksIAotCS5BTihuXzExMSkpOwotICAgTk9SMkJYNCBnMTYzMDEgKC5ZKG5fMjMpLCAKLQkuQihuXzE5MCksIAotCS5BTihuXzIzMikpOwotICAgTkFORDJCWDQgZzE2MzAyICguWShuXzIyKSwgCi0JLkIobl8xNzQpLCAKLQkuQU4obl8zNjEpKTsKLSAgIE5BTkQyQlg0IGcxNjMwMyAoLlkobl8yMSksIAotCS5CKG5fMTcxKSwgCi0JLkFOKG5fMjA3KSk7Ci0gICBOT1IyQlg0IGcxNjMwNCAoLlkobl8yMCksIAotCS5CKG5fMTQ4KSwgCi0JLkFOKG5fMTQyKSk7Ci0gICBOT1IyQlg0IGcxNjMwNSAoLlkobl8xOSksIAotCS5CKG5fMTQ3KSwgCi0JLkFOKGlyWzE0XSkpOwotICAgTk9SMkJYNCBnMTYzMDYgKC5ZKG5fMTgpLCAKLQkuQihuXzEzOCksIAotCS5BTihuXzI0MSkpOwotICAgTk9SMkJYNCBnMTYzMDcgKC5ZKG5fMTcpLCAKLQkuQihuXzEzMyksIAotCS5BTihuXzEyOTEpKTsKLSAgIE5PUjJCWDEgZzE2MzEwICguWShuXzE0KSwgCi0JLkIoYWNjWzMxXSksIAotCS5BTihuXzE0MTQpKTsKLSAgIE5PUjJCWDEgZzE2MzE1ICguWShuXzkpLCAKLQkuQihpclsxM10pLCAKLQkuQU4obl84MCkpOwotICAgTkFORDJCWDIgZzE2MzE2ICguWShuXzgpLCAKLQkuQihpclszXSksIAotCS5BTihuXzEzMDMpKTsKLSAgIE5BTkQyQlgxIGcxNjMyMCAoLlkobl80KSwgCi0JLkIodXBkYXRlX2l0KSwgCi0JLkFOKG5fMTQwOSkpOwotICAgTk9SMkJYMSBnMTYzMjEgKC5ZKG5fMyksIAotCS5CKGlyWzBdKSwgCi0JLkFOKG5fNTcwKSk7Ci0gICBOT1IyQlgxIGcxNjMyMyAoLlkobl8xKSwgCi0JLkIobGV6KSwgCi0JLkFOKG5fMjApKTsKLSAgIENMS01YMlgxMiBnMTYzMjUgKC5ZKG5fMTE1NiksIAotCS5TMChuXzc2NSksIAotCS5CKG5fMTAxKSwgCi0JLkEoYXJbMTVdKSk7Ci0gICBDTEtNWDJYMTIgZzIgKC5ZKG5fMTE1NyksIAotCS5TMChuXzc2NCksIAotCS5CKG5fMTAxKSwgCi0JLkEoYXJbMTVdKSk7Ci0gICBDTEtNWDJYMTIgZzE2MzI2ICguWShuXzExNTgpLCAKLQkuUzAobl83NDkpLCAKLQkuQihuXzEwMCksIAotCS5BKGFyWzE0XSkpOwotICAgQ0xLTVgyWDEyIGcxNjMyNyAoLlkobl8xMTU5KSwgCi0JLlMwKG5fNzM5KSwgCi0JLkIobl84NiksIAotCS5BKGFyWzEzXSkpOwotICAgQ0xLTVgyWDEyIGcxNjMyOCAoLlkobl8xMTYwKSwgCi0JLlMwKG5fNzMzKSwgCi0JLkIobl84OCksIAotCS5BKGFyWzEyXSkpOwotICAgQ0xLTVgyWDEyIGcxNjMyOSAoLlkobl8xMTYxKSwgCi0JLlMwKG5fNzIyKSwgCi0JLkIobl8xMDYpLCAKLQkuQShhclsxMV0pKTsKLSAgIENMS01YMlgxMiBnMTYzMzAgKC5ZKG5fMTE2MiksIAotCS5TMChuXzY5OSksIAotCS5CKG5fODcpLCAKLQkuQShhclsxMF0pKTsKLSAgIENMS01YMlgxMiBnMTYzMzEgKC5ZKG5fMTE2MyksIAotCS5TMChuXzY3NyksIAotCS5CKG5fODUpLCAKLQkuQShhcls5XSkpOwotICAgTk9SMkJYNCBnMTYzMzIgKC5ZKG5fMTE2NSksIAotCS5CKG5fMTE2NCksIAotCS5BTihuXzE2NikpOwotICAgWE5PUjJYNCBnMyAoLlkobl8xMTY0KSwgCi0JLkIobl82NTcpLCAKLQkuQShwY1s4XSkpOwotICAgQ0xLTVgyWDEyIGcxNjMzMyAoLlkobl8xMTY2KSwgCi0JLlMwKG5fNjU4KSwgCi0JLkIobl84NCksIAotCS5BKGFyWzhdKSk7Ci0gICBOT1IyQlg0IGcxNjMzNCAoLlkobl8xMTY4KSwgCi0JLkIobl8xMTY3KSwgCi0JLkFOKG5fMTY2KSk7Ci0gICBYTk9SMlg0IGcxNjMzNSAoLlkobl8xMTY3KSwgCi0JLkIobl82MzApLCAKLQkuQShwY1s3XSkpOwotICAgQ0xLTVgyWDEyIGcxNjMzNiAoLlkobl8xMTY5KSwgCi0JLlMwKG5fNjI2KSwgCi0JLkIobl85MCksIAotCS5BKGFyWzddKSk7Ci0gICBOT1IyQlg0IGcxNjMzNyAoLlkobl8xMTcxKSwgCi0JLkIobl8xMTcwKSwgCi0JLkFOKG5fMTY2KSk7Ci0gICBYTk9SMlg0IGcxNjMzOCAoLlkobl8xMTcwKSwgCi0JLkIobl81OTEpLCAKLQkuQShwY1s2XSkpOwotICAgQ0xLTVgyWDEyIGcxNjMzOSAoLlkobl8xMTcyKSwgCi0JLlMwKG5fNTg1KSwgCi0JLkIobl85MyksIAotCS5BKGFyWzZdKSk7Ci0gICBOT1IyQlg0IGcxNjM0MCAoLlkobl8xMTc0KSwgCi0JLkIobl8xMTczKSwgCi0JLkFOKG5fMTY2KSk7Ci0gICBYTk9SMlg0IGcxNjM0MSAoLlkobl8xMTczKSwgCi0JLkIobl81MzcpLCAKLQkuQShwY1s1XSkpOwotICAgQ0xLTVgyWDEyIGcxNjM0MyAoLlkobl8xMTc1KSwgCi0JLlMwKG5fMTMwNiksIAotCS5CKHR3b19jeWNsZSksIAotCS5BKG5fMTMzMCkpOwotICAgQ0xLTVgyWDEyIGcxNjM0NCAoLlkobl8xMTc3KSwgCi0JLlMwKG5fNTMyKSwgCi0JLkIobl8xMDcpLCAKLQkuQShhcls1XSkpOwotICAgTk9SMkJYNCBnMTYzNDUgKC5ZKG5fMTE3OSksIAotCS5CKG5fMTE3OCksIAotCS5BTihuXzE2NikpOwotICAgWE5PUjJYNCBnMTYzNDYgKC5ZKG5fMTE3OCksIAotCS5CKG5fNDQxKSwgCi0JLkEocGNbNF0pKTsKLSAgIENMS01YMlgxMiBnMTYzNDcgKC5ZKG5fMTE4MCksIAotCS5TMChuXzQ1OSksIAotCS5CKG5fMTEyKSwgCi0JLkEoYXJbNF0pKTsKLSAgIE5PUjJCWDQgZzE2MzQ4ICguWShuXzExODIpLCAKLQkuQihuXzExODEpLCAKLQkuQU4obl8xNjYpKTsKLSAgIFhOT1IyWDQgZzE2MzQ5ICguWShuXzExODEpLCAKLQkuQihuXzMwNiksIAotCS5BKHBjWzNdKSk7Ci0gICBDTEtNWDJYMTIgZzE2MzUwICguWShuXzExODMpLCAKLQkuUzAobl80NTQpLCAKLQkuQihhcnApLCAKLQkuQShpclswXSkpOwotICAgQ0xLTVgyWDEyIGcxNjM1MSAoLlkobl8xMTg0KSwgCi0JLlMwKG5fMjkxKSwgCi0JLkIobl8xMTApLCAKLQkuQShhclszXSkpOwotICAgTk9SMkJYNCBnMTYzNTIgKC5ZKG5fMTE4NiksIAotCS5CKG5fMTE4NSksIAotCS5BTihuXzE2NikpOwotICAgWE5PUjJYNCBnMTYzNTMgKC5ZKG5fMTE4NSksIAotCS5CKHBjWzJdKSwgCi0JLkEobl8xMzIpKTsKLSAgIENMS01YMlgxMiBnMTYzNTQgKC5ZKG5fMTE4NyksIAotCS5TMChuXzEzOTQpLCAKLQkuQihkcCksIAotCS5BKG5fMTQyNikpOwotICAgQ0xLTVgyWDEyIGcxNjM1NiAoLlkobl8xMTg4KSwgCi0JLlMwKHopLCAKLQkuQihuXzE0MTQpLCAKLQkuQShuXzIwKSk7Ci0gICBDTEtNWDJYMTIgZzE2MzU3ICguWShuXzExOTApLCAKLQkuUzAobl8xMjYpLCAKLQkuQihuXzk2KSwgCi0JLkEoYXJbMl0pKTsKLSAgIENMS01YMlgxMiBnMTYzNTkgKC5ZKG5fMTE5MSksIAotCS5TMChwY1sxXSksIAotCS5CKG5fMTA4KSwgCi0JLkEocGNbMF0pKTsKLSAgIElOVlhMIGcxNjM2MCAoLlkobl8xMTk0KSwgCi0JLkEobl8xMTkzKSk7Ci0gICBBT0kyMjFYNCBnMTYzNjEgKC5ZKG5fMTE5MyksIAotCS5DMChuXzMwNCksIAotCS5CMShuXzExNTYpLCAKLQkuQjAobl8xNDIwKSwgCi0JLkExKG5fMTE1NyksIAotCS5BMChuXzE0MTcpKTsKLSAgIElOVlhMIGcxNjM2MiAoLlkobl8xMTk2KSwgCi0JLkEobl8xMTk1KSk7Ci0gICBBT0kyMjFYNCBnMTYzNjMgKC5ZKG5fMTE5NSksIAotCS5DMChuXzMwNCksIAotCS5CMShuXzExNTcpLCAKLQkuQjAobl8xNDE2KSwgCi0JLkExKG5fMTE1NiksIAotCS5BMChuXzE0MjEpKTsKLSAgIElOVlhMIGcxNjM2NCAoLlkobl8xMTk4KSwgCi0JLkEobl8xMTk3KSk7Ci0gICBBT0kyMjFYNCBnMTYzNjUgKC5ZKG5fMTE5NyksIAotCS5DMChuXzMxNCksIAotCS5CMShuXzc2OSksIAotCS5CMChuXzE0MTYpLCAKLQkuQTEobl8xMTU4KSwgCi0JLkEwKG5fMTQyMSkpOwotICAgSU5WWEwgZzE2MzY2ICguWShuXzEyMDApLCAKLQkuQShuXzExOTkpKTsKLSAgIEFPSTIyMVg0IGcxNjM2NyAoLlkobl8xMTk5KSwgCi0JLkMwKG5fMzE0KSwgCi0JLkIxKG5fMTE1OCksIAotCS5CMChuXzE0MjApLCAKLQkuQTEobl83NjkpLCAKLQkuQTAobl8xNDE3KSk7Ci0gICBJTlZYTCBnMTYzNjggKC5ZKG5fMTIwMiksIAotCS5BKG5fMTIwMSkpOwotICAgQU9JMjIxWDQgZzE2MzY5ICguWShuXzEyMDEpLCAKLQkuQzAobl8zMDUpLCAKLQkuQjEobl8xMTU5KSwgCi0JLkIwKG5fMTQyMSksIAotCS5BMShuXzc1OCksIAotCS5BMChuXzE0MTYpKTsKLSAgIElOVlhMIGcxNjM3MCAoLlkobl8xMjA0KSwgCi0JLkEobl8xMjAzKSk7Ci0gICBBT0kyMjFYNCBnMTYzNzEgKC5ZKG5fMTIwMyksIAotCS5DMChuXzMwNSksIAotCS5CMShuXzExNTkpLCAKLQkuQjAobl8xNDIwKSwgCi0JLkExKG5fNzU4KSwgCi0JLkEwKG5fMTQxNykpOwotICAgSU5WWEwgZzE2MzcyICguWShuXzEyMDYpLCAKLQkuQShuXzEyMDUpKTsKLSAgIEFPSTIyMVg0IGcxNjM3MyAoLlkobl8xMjA1KSwgCi0JLkMwKG5fMjk2KSwgCi0JLkIxKG5fNzQ4KSwgCi0JLkIwKG5fMTQxNiksIAotCS5BMShuXzExNjApLCAKLQkuQTAobl8xNDIxKSk7Ci0gICBJTlZYTCBnMTYzNzQgKC5ZKG5fMTIwOCksIAotCS5BKG5fMTIwNykpOwotICAgQU9JMjIxWDQgZzE2Mzc1ICguWShuXzEyMDcpLCAKLQkuQzAobl8yOTYpLCAKLQkuQjEobl83NDgpLCAKLQkuQjAobl8xNDE3KSwgCi0JLkExKG5fMTE2MCksIAotCS5BMChuXzE0MjApKTsKLSAgIElOVlhMIGcxNjM3NiAoLlkobl8xMjEwKSwgCi0JLkEobl8xMjA5KSk7Ci0gICBBT0kyMjFYNCBnMTYzNzcgKC5ZKG5fMTIwOSksIAotCS5DMChuXzMyMiksIAotCS5CMShuXzExNjEpLCAKLQkuQjAobl8xNDIxKSwgCi0JLkExKG5fNzM2KSwgCi0JLkEwKG5fMTQxNikpOwotICAgSU5WWEwgZzE2Mzc4ICguWShuXzEyMTIpLCAKLQkuQShuXzEyMTEpKTsKLSAgIEFPSTIyMVg0IGcxNjM3OSAoLlkobl8xMjExKSwgCi0JLkMwKG5fMzIyKSwgCi0JLkIxKG5fNzM2KSwgCi0JLkIwKG5fMTQxNyksIAotCS5BMShuXzExNjEpLCAKLQkuQTAobl8xNDIwKSk7Ci0gICBJTlZYTCBnMTYzODAgKC5ZKG5fMTIxNCksIAotCS5BKG5fMTIxMykpOwotICAgQU9JMjIxWDQgZzE2MzgxICguWShuXzEyMTMpLCAKLQkuQzAobl8zMTApLCAKLQkuQjEobl83MjYpLCAKLQkuQjAobl8xNDE3KSwgCi0JLkExKG5fMTE2MiksIAotCS5BMChuXzE0MjApKTsKLSAgIElOVlhMIGcxNjM4MiAoLlkobl8xMjE2KSwgCi0JLkEobl8xMjE1KSk7Ci0gICBBT0kyMjFYNCBnMTYzODMgKC5ZKG5fMTIxNSksIAotCS5DMChuXzMxMCksIAotCS5CMShuXzExNjIpLCAKLQkuQjAobl8xNDIxKSwgCi0JLkExKG5fNzI2KSwgCi0JLkEwKG5fMTQxNikpOwotICAgSU5WWEwgZzE2Mzg0ICguWShuXzEyMTgpLCAKLQkuQShuXzEyMTcpKTsKLSAgIEFPSTIyMVg0IGcxNjM4NSAoLlkobl8xMjE3KSwgCi0JLkMwKG5fMzEyKSwgCi0JLkIxKG5fMTE2MyksIAotCS5CMChuXzE0MjEpLCAKLQkuQTEobl83MTIpLCAKLQkuQTAobl8xNDE2KSk7Ci0gICBJTlZYTCBnMTYzODYgKC5ZKG5fMTIyMCksIAotCS5BKG5fMTIxOSkpOwotICAgQU9JMjIxWDQgZzE2Mzg3ICguWShuXzEyMTkpLCAKLQkuQzAobl8zMTIpLCAKLQkuQjEobl83MTIpLCAKLQkuQjAobl8xNDE3KSwgCi0JLkExKG5fMTE2MyksIAotCS5BMChuXzE0MjApKTsKLSAgIElOVlhMIGcxNjM4OCAoLlkobl8xMjIyKSwgCi0JLkEobl8xMjIxKSk7Ci0gICBBT0kzMlg0IGcxNjM4OSAoLlkobl8xMjIxKSwgCi0JLkIxKG5fMTIyMyksIAotCS5CMChuXzM2MSksIAotCS5BMihuXzI5KSwgCi0JLkExKG5fMjgwKSwgCi0JLkEwKGFsdV9jbWRbMV0pKTsKLSAgIEFORDRYNiBnMTYzOTAgKC5ZKG5fMTIyMyksIAotCS5EKG5fNzAxKSwgCi0JLkMobl8xMjU4KSwgCi0JLkIobl8xMzgxKSwgCi0JLkEobl8yMDcpKTsKLSAgIElOVlhMIGcxNjM5MSAoLlkobl8xMjI1KSwgCi0JLkEobl8xMjI0KSk7Ci0gICBBT0kzMlg0IGcxNjM5MiAoLlkobl8xMjI0KSwgCi0JLkIxKG5fNzAxKSwgCi0JLkIwKG5fMTI1NiksIAotCS5BMihuXzI5KSwgCi0JLkExKG5fMjgwKSwgCi0JLkEwKGFsdV9jbWRbMl0pKTsKLSAgIElOVlhMIGcxNjM5MyAoLlkobl8xMjI3KSwgCi0JLkEobl8xMjI2KSk7Ci0gICBBT0kzMVg0IGcxNjM5NCAoLlkobl8xMjI2KSwgCi0JLkIwKG5fMTIzNiksIAotCS5BMihuXzY5MCksIAotCS5BMShhbHVfY21kWzBdKSwgCi0JLkEwKG5fMjEpKTsKLSAgIElOVlhMIGcxNjM5NSAoLlkobl8xMjI5KSwgCi0JLkEobl8xMjI4KSk7Ci0gICBBT0kyMjFYNCBnMTYzOTYgKC5ZKG5fMTIyOCksIAotCS5DMChuXzMxNSksIAotCS5CMShuXzY4NiksIAotCS5CMChuXzE0MTcpLCAKLQkuQTEobl8xMTY2KSwgCi0JLkEwKG5fMTQyMCkpOwotICAgSU5WWEwgZzE2Mzk3ICguWShuXzEyMzEpLCAKLQkuQShuXzEyMzApKTsKLSAgIEFPSTIyMVg0IGcxNjM5OCAoLlkobl8xMjMwKSwgCi0JLkMwKG5fMzE1KSwgCi0JLkIxKG5fMTE2NiksIAotCS5CMChuXzE0MjEpLCAKLQkuQTEobl82ODYpLCAKLQkuQTAobl8xNDE2KSk7Ci0gICBJTlZYTCBnMTYzOTkgKC5ZKG5fMTIzMyksIAotCS5BKG5fMTIzMikpOwotICAgQU9JMjIxWDQgZzE2NDAwICguWShuXzEyMzIpLCAKLQkuQzAobl83MDEpLCAKLQkuQjEobl80MDEpLCAKLQkuQjAobl8xOTkpLCAKLQkuQTEobl8zNzEpLCAKLQkuQTAobl8xNzEpKTsKLSAgIElOVlhMIGcxNjQwMSAoLlkobl8xMjM1KSwgCi0JLkEobl8xMjM0KSk7Ci0gICBBT0kyMjFYNCBnMTY0MDIgKC5ZKG5fMTIzNCksIAotCS5DMChuXzQ1MiksIAotCS5CMShuXzY4OCksIAotCS5CMChuXzIwMyksIAotCS5BMShuXzQ3OSksIAotCS5BMChuXzExNykpOwotICAgQU8yMVg0IGcxNjQwMyAoLlkobl8xMjM2KSwgCi0JLkIwKG5fMjc1KSwgCi0JLkExKG5fMTI0MCksIAotCS5BMChuXzEyNTQpKTsKLSAgIEFPMjFYNCBnMTY0MDQgKC5ZKG5fMTIzNyksIAotCS5CMChuXzExNjUpLCAKLQkuQTEobl8xNDI0KSwgCi0JLkEwKGRlY29kZVs4XSkpOwotICAgSU5WWEwgZzE2NDA1ICguWShuXzEyMzkpLCAKLQkuQShuXzEyMzgpKTsKLSAgIEFPSTIyMVg0IGcxNjQwNiAoLlkobl8xMjM4KSwgCi0JLkMwKG5fMTM5OCksIAotCS5CMShuXzExNjkpLCAKLQkuQjAobl8xNDIxKSwgCi0JLkExKG5fNjY5KSwgCi0JLkEwKG5fMTQxNikpOwotICAgT0EyMVg0IGcxNjQwNyAoLlkobl8xMjQwKSwgCi0JLkIwKG5fMTcxKSwgCi0JLkExKG5fMTI0NiksIAotCS5BMChuXzEzNjApKTsKLSAgIElOVlhMIGcxNjQwOCAoLlkobl8xMjQyKSwgCi0JLkEobl8xMjQxKSk7Ci0gICBBT0kyMjFYNCBnMTY0MDkgKC5ZKG5fMTI0MSksIAotCS5DMChuXzEzOTgpLCAKLQkuQjEobl8xMTY5KSwgCi0JLkIwKG5fMTQyMCksIAotCS5BMShuXzY2OSksIAotCS5BMChuXzE0MTcpKTsKLSAgIEFPMjFYNCBnMTY0MTAgKC5ZKG5fMTI0MyksIAotCS5CMChuXzExNjgpLCAKLQkuQTEobl8xNDI0KSwgCi0JLkEwKGRlY29kZVs3XSkpOwotICAgSU5WWEwgZzE2NDExICguWShuXzEyNDUpLCAKLQkuQShuXzEyNDQpKTsKLSAgIEFPSTMxWDQgZzE2NDEyICguWShuXzEyNDQpLCAKLQkuQjAobl8xMjUyKSwgCi0JLkEyKG5fMTI5MiksIAotCS5BMShuXzEyNjcpLCAKLQkuQTAob3ZfMjI5MikpOwotICAgT1I0WDggZzE2NDEzICguWShuXzEyNDYpLCAKLQkuRChuXzEyNTcpLCAKLQkuQyhuXzM3NCksIAotCS5CKG5fMzc3KSwgCi0JLkEobl8xMzgwKSk7Ci0gICBJTlZYTCBnMTY0MTQgKC5ZKG5fMTI0OCksIAotCS5BKG5fMTI0NykpOwotICAgQU9JMjIxWDQgZzE2NDE1ICguWShuXzEyNDcpLCAKLQkuQzAobl8xNDAwKSwgCi0JLkIxKG5fNjM3KSwgCi0JLkIwKG5fMTQxNiksIAotCS5BMShuXzExNzIpLCAKLQkuQTAobl8xNDIxKSk7Ci0gICBJTlZYTCBnMTY0MTYgKC5ZKG5fMTI1MCksIAotCS5BKG5fMTI0OSkpOwotICAgQU9JMjIxWDQgZzE2NDE3ICguWShuXzEyNDkpLCAKLQkuQzAobl8xNDAwKSwgCi0JLkIxKG5fNjM3KSwgCi0JLkIwKG5fMTQxNyksIAotCS5BMShuXzExNzIpLCAKLQkuQTAobl8xNDIwKSk7Ci0gICBJTlZYTCBnMTY0MTggKC5ZKG5fMTI1MiksIAotCS5BKG5fMTI1MSkpOwotICAgQU9JMzJYNCBnMTY0MTkgKC5ZKG5fMTI1MSksIAotCS5CMShuXzE0MzYpLCAKLQkuQjAobl8xOTEpLCAKLQkuQTIoYWx1X3Jlc3VsdFszMl0pLCAKLQkuQTEobl8yMDgpLCAKLQkuQTAobl8yMDMpKTsKLSAgIElOVlhMIGcxNjQyMCAoLlkobl8xMjU0KSwgCi0JLkEobl8xMjUzKSk7Ci0gICBOT1I0Qlg0IGcxNjQyMSAoLlkobl8xMjUzKSwgCi0JLkQobl8xMjY5KSwgCi0JLkMobl8zNTcpLCAKLQkuQihuXzEyOTcpLCAKLQkuQU4obl8zNjMpKTsKLSAgIEFPMjFYNCBnMTY0MjIgKC5ZKG5fMTI1NSksIAotCS5CMChuXzExNzEpLCAKLQkuQTEobl8xNDI0KSwgCi0JLkEwKGRlY29kZVs2XSkpOwotICAgT1IzWDYgZzE2NDIzICguWShuXzEyNTYpLCAKLQkuQyhuXzEyNjkpLCAKLQkuQihuXzM3MyksIAotCS5BKG5fMzQyKSk7Ci0gICBPUjRYOCBnMTY0MjQgKC5ZKG5fMTI1NyksIAotCS5EKG5fNjI4KSwgCi0JLkMobl8xNDQwKSwgCi0JLkIobl80MTIpLCAKLQkuQShuXzU3OCkpOwotICAgQU5ENFg2IGcxNjQyNSAoLlkobl8xMjU4KSwgCi0JLkQobl8xMjc5KSwgCi0JLkMobl82MDgpLCAKLQkuQihuXzM3NiksIAotCS5BKG5fMjA5KSk7Ci0gICBJTlZYTCBnMTY0MjYgKC5ZKG5fMTI2MCksIAotCS5BKG5fMTI1OSkpOwotICAgQU9JMjIxWDQgZzE2NDI3ICguWShuXzEyNTkpLCAKLQkuQzAobl80NDYpLCAKLQkuQjEobl82MTUpLCAKLQkuQjAodGhyZWVfY3ljbGUpLCAKLQkuQTEobl8xMjk0KSwgCi0JLkEwKG5fOTcpKTsKLSAgIE9SM1g2IGcxNjQyOCAoLlkobl8xMjYxKSwgCi0JLkMobl82MjgpLCAKLQkuQihuXzM3MSksIAotCS5BKG5fMTQxOSkpOwotICAgSU5WWEwgZzE2NDI5ICguWShuXzEyNjMpLCAKLQkuQShuXzEyNjIpKTsKLSAgIEFPSTIyMVg0IGcxNjQzMCAoLlkobl8xMjYyKSwgCi0JLkMwKG5fMTQwMiksIAotCS5CMShuXzExNzcpLCAKLQkuQjAobl8xNDIwKSwgCi0JLkExKG5fNjAyKSwgCi0JLkEwKG5fMTQxNykpOwotICAgSU5WWEwgZzE2NDMxICguWShuXzEyNjUpLCAKLQkuQShuXzEyNjQpKTsKLSAgIEFPSTIyMVg0IGcxNjQzMiAoLlkobl8xMjY0KSwgCi0JLkMwKG5fMTQwMiksIAotCS5CMShuXzExNzcpLCAKLQkuQjAobl8xNDIxKSwgCi0JLkExKG5fNjAyKSwgCi0JLkEwKG5fMTQxNikpOwotICAgQU8yMVg0IGcxNjQzMyAoLlkobl8xMjY2KSwgCi0JLkIwKG5fMzg5KSwgCi0JLkExKG5fNjEyKSwgCi0JLkEwKG5fNTYwKSk7Ci0gICBPUjNYNiBnMTY0MzQgKC5ZKG5fMTI2NyksIAotCS5DKG5fMTA0KSwgCi0JLkIobl8xMjc5KSwgCi0JLkEobl8yMDQpKTsKLSAgIEFPMjFYNCBnMTY0MzUgKC5ZKG5fMTI2OCksIAotCS5CMChuXzM4OSksIAotCS5BMShuXzYxMiksIAotCS5BMChuXzE0NDEpKTsKLSAgIE9SM1g2IGcxNjQzNiAoLlkobl8xMjY5KSwgCi0JLkMobl8xMjc4KSwgCi0JLkIobl81NzgpLCAKLQkuQShuXzIxMCkpOwotICAgQU8yMVg0IGcxNjQzNyAoLlkobl8xMjcwKSwgCi0JLkIwKG5fMTE3NCksIAotCS5BMShuXzE0MjQpLCAKLQkuQTAoZGVjb2RlWzVdKSk7Ci0gICBBTzIxWDQgZzE2NDM4ICguWShuXzEyNzEpLCAKLQkuQjAobl8zODkpLCAKLQkuQTEobl8xMjg3KSwgCi0JLkEwKG5fMTMzNykpOwotICAgQU8yMVg0IGcxNjQ0MCAoLlkobl8xMjczKSwgCi0JLkIwKG5fMzg5KSwgCi0JLkExKG5fNDQ3KSwgCi0JLkEwKG5fMTE3NSkpOwotICAgSU5WWEwgZzE2NDQyICguWShuXzEyNzYpLCAKLQkuQShuXzEyNzUpKTsKLSAgIEFPSTIyMVg0IGcxNjQ0MyAoLlkobl8xMjc1KSwgCi0JLkMwKG5fMTQwMSksIAotCS5CMShuXzU1MCksIAotCS5CMChuXzE0MTcpLCAKLQkuQTEobl8xMTgwKSwgCi0JLkEwKG5fMTQyMCkpOwotICAgSU5WWEwgZzE2NDQ0ICguWShuXzEyNzgpLCAKLQkuQShuXzEyNzcpKTsKLSAgIEFPSTIxMVg0IGcxNjQ0NSAoLlkobl8xMjc3KSwgCi0JLkMwKG5fMyksIAotCS5CMChuXzEzOTIpLCAKLQkuQTEobl8yMzkpLCAKLQkuQTAobl8yMDEpKTsKLSAgIEFPSTIyMVg0IGcxNjQ0NyAoLlkobl8xMjc5KSwgCi0JLkMwKG5fMTI5NyksIAotCS5CMShuXzU3MCksIAotCS5CMChpclswXSksIAotCS5BMShuXzMwMSksIAotCS5BMChuXzEyOSkpOwotICAgSU5WWEwgZzE2NDQ4ICguWShuXzEyODIpLCAKLQkuQShuXzEyODEpKTsKLSAgIEFPSTIyMVg0IGcxNjQ0OSAoLlkobl8xMjgxKSwgCi0JLkMwKG5fMTQwMSksIAotCS5CMShuXzU1MCksIAotCS5CMChuXzE0MTYpLCAKLQkuQTEobl8xMTgwKSwgCi0JLkEwKG5fMTQyMSkpOwotICAgSU5WWEwgZzE2NDUwICguWShuXzEyODQpLCAKLQkuQShuXzEyODMpKTsKLSAgIEFPSTMyWDQgZzE2NDUxICguWShuXzEyODMpLCAKLQkuQjEobl8xNDA5KSwgCi0JLkIwKHVwZGF0ZV9pdCksIAotCS5BMihuXzEyOTUpLCAKLQkuQTEobl8xMzYpLCAKLQkuQTAobl8xMTMpKTsKLSAgIElOVlhMIGcxNjQ1MiAoLlkobl8xMjg2KSwgCi0JLkEobl8xMjg1KSk7Ci0gICBBT0kyMTFYNCBnMTY0NTMgKC5ZKG5fMTI4NSksIAotCS5DMChuXzEzNzkpLCAKLQkuQjAobl8xNjYpLCAKLQkuQTEobl8xMzEyKSwgCi0JLkEwKG5fMTE3KSk7Ci0gICBBTzIxWDQgZzE2NDU0ICguWShuXzEyODcpLCAKLQkuQjAobl8xMDMpLCAKLQkuQTEobl8xMjk4KSwgCi0JLkEwKG5fMTMzOSkpOwotICAgTkFORDRCWDQgZzE2NDU2ICguWShuXzEyODgpLCAKLQkuRChuXzE0MzkpLCAKLQkuQyhpclswXSksIAotCS5CKG5fMTE3KSwgCi0JLkFOKGlyWzJdKSk7Ci0gICBBTzIxWDQgZzE2NDU3ICguWShuXzEyOTApLCAKLQkuQjAobl8xMTc5KSwgCi0JLkExKG5fMTQyNCksIAotCS5BMChkZWNvZGVbNF0pKTsKLSAgIE9BMjFYNCBnMTY0NTggKC5ZKG5fMTI5MSksIAotCS5CMChuXzEyOTgpLCAKLQkuQTEobl8xMzY3KSwgCi0JLkEwKG5fMTM3MCkpOwotICAgQU8yMVg0IGcxNjQ1OSAoLlkobl8xMjkyKSwgCi0JLkIwKG5fMTE4KSwgCi0JLkExKG5fMTMxNCksIAotCS5BMChuXzM2KSk7Ci0gICBJTlZYTCBnMTY0NjAgKC5ZKG5fMTI5NCksIAotCS5BKG5fMTI5MykpOwotICAgQU9JMzFYNCBnMTY0NjEgKC5ZKG5fMTI5MyksIAotCS5CMChuXzEyOTkpLCAKLQkuQTIobl8xMzU3KSwgCi0JLkExKG5fMjAzKSwgCi0JLkEwKHRocmVlX2N5Y2xlKSk7Ci0gICBPUjRYOCBnMTY0NjIgKC5ZKG5fMTI5NSksIAotCS5EKG5fMTQzMCksIAotCS5DKG5fNDk1KSwgCi0JLkIobl8xNDEyKSwgCi0JLkEobl80MTIpKTsKLSAgIEFPMjFYNCBnMTY0NjQgKC5ZKG5fMTI5NyksIAotCS5CMChuXzUwKSwgCi0JLkExKG5fMzAxKSwgCi0JLkEwKGlyWzldKSk7Ci0gICBBTkQ0WDYgZzE2NDY1ICguWShuXzEyOTgpLCAKLQkuRChuXzEzMzIpLCAKLQkuQyhuXzE4MiksIAotCS5CKG5fMTgwKSwgCi0JLkEobl8yMDkpKTsKLSAgIE9BMjFYNCBnMTY0NjYgKC5ZKG5fMTI5OSksIAotCS5CMChuXzExNyksIAotCS5BMShuXzQ0KSwgCi0JLkEwKG5fNDc5KSk7Ci0gICBJTlZYTCBnMTY0NjggKC5ZKG5fMTMwMiksIAotCS5BKG5fMTMwMSkpOwotICAgQU9JMzFYNCBnMTY0NjkgKC5ZKG5fMTMwMSksIAotCS5CMChuXzEzMTUpLCAKLQkuQTIobl8xMzMzKSwgCi0JLkExKHNraXBfb25lKSwgCi0JLkEwKG5fMTEzKSk7Ci0gICBPUjNYNiBnMTY0NzAgKC5ZKG5fMTMwMyksIAotCS5DKG5fMTMyNyksIAotCS5CKGlyWzVdKSwgCi0JLkEoaXJbNF0pKTsKLSAgIEFPMjFYNCBnMTY0NzEgKC5ZKG5fMTMwNCksIAotCS5CMChuXzM4OSksIAotCS5BMShuXzEzMjgpLCAKLQkuQTAobl80NDcpKTsKLSAgIElOVlhMIGcxNjQ3MiAoLlkobl8xMzA2KSwgCi0JLkEobl8xMzA1KSk7Ci0gICBPQUkyMTFYNCBnMTY0NzMgKC5ZKG5fMTMwNSksIAotCS5DMChuXzUzNCksIAotCS5CMChuXzQ2OCksIAotCS5BMShuXzQ4NyksIAotCS5BMChuXzIyNikpOwotICAgSU5WWEwgZzE2NDc0ICguWShuXzEzMDgpLCAKLQkuQShuXzEzMDcpKTsKLSAgIEFPSTIyMVg0IGcxNjQ3NSAoLlkobl8xMzA3KSwgCi0JLkMwKG5fMTQwNSksIAotCS5CMShuXzExODQpLCAKLQkuQjAobl8xNDIxKSwgCi0JLkExKG5fNDg1KSwgCi0JLkEwKG5fMTQxNikpOwotICAgSU5WWEwgZzE2NDc2ICguWShuXzEzMTApLCAKLQkuQShuXzEzMDkpKTsKLSAgIEFPSTIyMVg0IGcxNjQ3NyAoLlkobl8xMzA5KSwgCi0JLkMwKG5fMTQwNSksIAotCS5CMShuXzExODQpLCAKLQkuQjAobl8xNDIwKSwgCi0JLkExKG5fNDg1KSwgCi0JLkEwKG5fMTQxNykpOwotICAgSU5WWEwgZzE2NDc4ICguWShuXzEzMTIpLCAKLQkuQShuXzEzMTEpKTsKLSAgIEFPSTIyMVg0IGcxNjQ3OSAoLlkobl8xMzExKSwgCi0JLkMwKG5fMTQ0MiksIAotCS5CMShuXzQ1NiksIAotCS5CMChuXzkxKSwgCi0JLkExKG5fNDE1KSwgCi0JLkEwKG92XzIyOTIpKTsKLSAgIElOVlhMIGcxNjQ4MCAoLlkobl8xMzE0KSwgCi0JLkEobl8xMzEzKSk7Ci0gICBBT0kzMVg0IGcxNjQ4MSAoLlkobl8xMzEzKSwgCi0JLkIwKG5fMTA0KSwgCi0JLkEyKG5fMTM2NSksIAotCS5BMShuXzIyKSwgCi0JLkEwKG5fMTM1OCkpOwotICAgQU8yMVg0IGcxNjQ4MiAoLlkobl8xMzE1KSwgCi0JLkIwKG5fMTQyNyksIAotCS5BMShuXzEzNjEpLCAKLQkuQTAobl8xOTkpKTsKLSAgIElOVlhMIGcxNjQ4MyAoLlkobl8xMzE3KSwgCi0JLkEobl8xMzE2KSk7Ci0gICBBT0kyMjFYNCBnMTY0ODQgKC5ZKG5fMTMxNiksIAotCS5DMChuXzEzNzkpLCAKLQkuQjEobl8xMzUxKSwgCi0JLkIwKG5fMTE3KSwgCi0JLkExKG5fMTEzKSwgCi0JLkEwKGJyYW5jaF9zdGFsbF8yMjk1KSk7Ci0gICBPUjRYOCBnMTY0ODcgKC5ZKG5fMTMyMCksIAotCS5EKG5fMTM1MiksIAotCS5DKG5fMzc3KSwgCi0JLkIobl8xNDE5KSwgCi0JLkEobl8zNDIpKTsKLSAgIEFPMjFYNCBnMTY0ODggKC5ZKG5fMTMyMSksIAotCS5CMChuXzExODIpLCAKLQkuQTEobl8xNDI0KSwgCi0JLkEwKGRlY29kZVszXSkpOwotICAgT0EyMVg0IGcxNjQ5MSAoLlkobl8xMzI0KSwgCi0JLkIwKG5fMjM5KSwgCi0JLkExKG5fMTQzMiksIAotCS5BMChuXzQ1MikpOwotICAgT0FJMjIxWDQgZzE2NDkzICguWShuXzEzMjUpLCAKLQkuQzAobl80NTEpLCAKLQkuQjEobl80NDQpLCAKLQkuQjAobl8yNTgpLCAKLQkuQTEobl8zMDIpLCAKLQkuQTAobl8yMjYpKTsKLSAgIE9SNFg4IGcxNjQ5NCAoLlkobl8xMzI3KSwgCi0JLkQobl8xMzcxKSwgCi0JLkMobl8xNTIpLCAKLQkuQihpclsyXSksIAotCS5BKGlyWzBdKSk7Ci0gICBBTzIxWDQgZzE2NDk1ICguWShuXzEzMjgpLCAKLQkuQjAobl80NTIpLCAKLQkuQTEobl80NjgpLCAKLQkuQTAoZG1vdl9pbmMpKTsKLSAgIElOVlhMIGcxNjQ5NiAoLlkobl8xMzMwKSwgCi0JLkEobl8xMzI5KSk7Ci0gICBBT0kyMjFYNCBnMTY0OTcgKC5ZKG5fMTMyOSksIAotCS5DMChuXzE0MTkpLCAKLQkuQjEobl80NDUpLCAKLQkuQjAobl8xOTUpLCAKLQkuQTEobl8xNzcpLCAKLQkuQTAobl8xODUpKTsKLSAgIE9BMjFYNCBnMTY0OTkgKC5ZKG5fMTMzMiksIAotCS5CMChuXzE0MTEpLCAKLQkuQTEobl80NDMpLCAKLQkuQTAobl8yNDApKTsKLSAgIE9SNFg4IGcxNjUwMCAoLlkobl8xMzMzKSwgCi0JLkQobl80NDQpLCAKLQkuQyhuXzE0MzQpLCAKLQkuQihuXzE5OCksIAotCS5BKG5fMTE4KSk7Ci0gICBBT0kzMVg0IGcxNjUwMiAoLlkobl8xMzM0KSwgCi0JLkIwKG5fMTM0OCksIAotCS5BMihuXzM2NCksIAotCS5BMShuXzQxNiksIAotCS5BMChpcls4XSkpOwotICAgSU5WWEwgZzE2NTAzICguWShuXzEzMzcpLCAKLQkuQShuXzEzMzYpKTsKLSAgIEFPSTIxMVg0IGcxNjUwNCAoLlkobl8xMzM2KSwgCi0JLkMwKGdvX2RhdGEpLCAKLQkuQjAobl80NTIpLCAKLQkuQTEobl8xMzgyKSwgCi0JLkEwKG5fMjI1KSk7Ci0gICBJTlZYTCBnMTY1MDUgKC5ZKG5fMTMzOSksIAotCS5BKG5fMTMzOCkpOwotICAgQU9JMzJYNCBnMTY1MDYgKC5ZKG5fMTMzOCksIAotCS5CMShuXzExNyksIAotCS5CMChuXzE0MSksIAotCS5BMihuXzM5NyksIAotCS5BMShuXzIyNSksIAotCS5BMChuXzExMSkpOwotICAgSU5WWEwgZzE2NTA3ICguWShuXzEzNDEpLCAKLQkuQShuXzEzNDApKTsKLSAgIEFPSTIyMVg0IGcxNjUwOCAoLlkobl8xMzQwKSwgCi0JLkMwKG5fMTQwMyksIAotCS5CMShuXzM0MyksIAotCS5CMChuXzE0MTcpLCAKLQkuQTEobl8xMTkwKSwgCi0JLkEwKG5fMTQyMCkpOwotICAgSU5WWEwgZzE2NTA5ICguWShuXzEzNDMpLCAKLQkuQShuXzEzNDIpKTsKLSAgIEFPSTIyMVg0IGcxNjUxMCAoLlkobl8xMzQyKSwgCi0JLkMwKG5fMTQwMyksIAotCS5CMShuXzM0MyksIAotCS5CMChuXzE0MTYpLCAKLQkuQTEobl8xMTkwKSwgCi0JLkEwKG5fMTQyMSkpOwotICAgQU8yMVg0IGcxNjUxMSAoLlkobl8xMzQ0KSwgCi0JLkIwKG5fMTM2NCksIAotCS5BMShuXzQzMiksIAotCS5BMChwY19hY2MpKTsKLSAgIEFPMjJYNCBnMTY1MTIgKC5ZKG5fMTM0NSksIAotCS5CMShuXzEzNjkpLCAKLQkuQjAobl8xMjkpLCAKLQkuQTEobl8xNDI4KSwgCi0JLkEwKG5fOTQpKTsKLSAgIE9BMjJYNCBnMTY1MTMgKC5ZKG5fMTM0NiksIAotCS5CMShuXzQwMCksIAotCS5CMChuXzE1NSksIAotCS5BMShuXzQ0NCksIAotCS5BMChuXzE5NSkpOwotICAgQU8yMlg0IGcxNjUxNCAoLlkobl8xMzQ3KSwgCi0JLkIxKG5fMTM2OSksIAotCS5CMChuXzE0MyksIAotCS5BMShuXzE0MjgpLCAKLQkuQTAoYXJwKSk7Ci0gICBPQTIxWDQgZzE2NTE1ICguWShuXzEzNDgpLCAKLQkuQjAobl85OCksIAotCS5BMShuXzEzNzYpLCAKLQkuQTAobl8zNjUpKTsKLSAgIE9SNFg4IGcxNjUxOCAoLlkobl8xMzUxKSwgCi0JLkQobl80MTYpLCAKLQkuQyhuXzM1OSksIAotCS5CKG5fMzIwKSwgCi0JLkEobl80MTUpKTsKLSAgIE9SNFg4IGcxNjUxOSAoLlkobl8xMzUyKSwgCi0JLkQobl80MTIpLCAKLQkuQyhuXzEzODkpLCAKLQkuQihuXzIzKSwgCi0JLkEobl8zNzQpKTsKLSAgIE5BTkQ0Qlg0IGcxNjUyMSAoLlkobl8xMzUzKSwgCi0JLkQoaXJbMV0pLCAKLQkuQyhpcls3XSksIAotCS5CKG5fMTUzKSwgCi0JLkFOKG5fMTM5NSkpOwotICAgSU5WWEwgZzE2NTIyICguWShuXzEzNTYpLCAKLQkuQShuXzEzNTUpKTsKLSAgIE5BTkQ0Qlg0IGcxNjUyMyAoLlkobl8xMzU1KSwgCi0JLkQobl8yNTApLCAKLQkuQyhuXzMwMCksIAotCS5CKG5fMTM5NiksIAotCS5BTihuXzEzOTIpKTsKLSAgIEFPMjFYNCBnMTY1MjQgKC5ZKG5fMTM1NyksIAotCS5CMChuXzQ0NSksIAotCS5BMShuXzM2MCksIAotCS5BMChuXzEwNSkpOwotICAgT1I0WDggZzE2NTI1ICguWShuXzEzNTgpLCAKLQkuRChuXzM0OSksIAotCS5DKG5fOTIpLCAKLQkuQih0d29fY3ljbGUpLCAKLQkuQShuXzk3KSk7Ci0gICBJTlZYTCBnMTY1MjYgKC5ZKG5fMTM2MCksIAotCS5BKG5fMTM1OSkpOwotICAgT0FJMjIxWDQgZzE2NTI3ICguWShuXzEzNTkpLCAKLQkuQzAobl85NyksIAotCS5CMShuXzM2MCksIAotCS5CMCh0d29fY3ljbGUpLCAKLQkuQTEobl8xMzkzKSwgCi0JLkEwKG5fMTA1KSk7Ci0gICBBTzIxWDQgZzE2NTI4ICguWShuXzEzNjEpLCAKLQkuQjAobl80MDEpLCAKLQkuQTEobl8zOTIpLCAKLQkuQTAocGhpXzEpKTsKLSAgIEFPSTMxWDQgZzE2NTMwICguWShuXzEzNjIpLCAKLQkuQjAobl8xMzcyKSwgCi0JLkEyKG5fMTQwOCksIAotCS5BMShuXzE3MiksIAotCS5BMChuXzIzMikpOwotICAgQU5EM1g2IGcxNjUzMSAoLlkobl8xMzY0KSwgCi0JLkMobl80MDMpLCAKLQkuQihuXzE5OSksIAotCS5BKHBoaV8xKSk7Ci0gICBPQTIyWDQgZzE2NTMyICguWShuXzEzNjUpLCAKLQkuQjEobl8xMzgxKSwgCi0JLkIwKG5fOTIpLCAKLQkuQTEobl8zNzYpLCAKLQkuQTAobl8xMDMpKTsKLSAgIEFPMjFYNCBnMTY1MzMgKC5ZKG5fMTM2NiksIAotCS5CMChuXzExODYpLCAKLQkuQTEobl8xNDI0KSwgCi0JLkEwKGRlY29kZVsyXSkpOwotICAgQU5EM1g2IGcxNjUzNCAoLlkobl8xMzY3KSwgCi0JLkMobl8zMCksIAotCS5CKG5fMTkyKSwgCi0JLkEobl8yMjUpKTsKLSAgIElOVlhMIGcxNjUzNSAoLlkobl8xMzY5KSwgCi0JLkEobl8xMzY4KSk7Ci0gICBPQUkyMTFYNCBnMTY1MzYgKC5ZKG5fMTM2OCksIAotCS5DMChuXzExMyksIAotCS5CMChpclsxMl0pLCAKLQkuQTEobl8zMTYpLCAKLQkuQTAobl8xOCkpOwotICAgT0EyMVg0IGcxNjUzNyAoLlkobl8xMzcwKSwgCi0JLkIwKG5fMjU3KSwgCi0JLkExKG5fMTM5MCksIAotCS5BMChuXzMwKSk7Ci0gICBPUjNYNiBnMTY1MzggKC5ZKG5fMTM3MSksIAotCS5DKG5fMTM5NSksIAotCS5CKGlyWzFdKSwgCi0JLkEobl85OSkpOwotICAgT0EyMVg0IGcxNjUzOSAoLlkobl8xMzcyKSwgCi0JLkIwKHR3b19jeWNsZSksIAotCS5BMShuXzEzOTMpLCAKLQkuQTAobl8xNzcpKTsKLSAgIE9SNFg4IGcxNjU0MCAoLlkobl8xMzczKSwgCi0JLkQobl8zNDIpLCAKLQkuQyhuXzE0MTkpLCAKLQkuQihuXzE4MSksIAotCS5BKG5fMjMyKSk7Ci0gICBBTzIyWDQgZzE2NTQxICguWShuXzEzNzQpLCAKLQkuQjEobl8xNDE1KSwgCi0JLkIwKG5fMTE4OCksIAotCS5BMShuXzMyMCksIAotCS5BMChiaW96KSk7Ci0gICBBTzIyWDQgZzE2NTQyICguWShuXzEzNzUpLCAKLQkuQjEobl8xMzkzKSwgCi0JLkIwKG5fMjI1KSwgCi0JLkExKG5fMzcxKSwgCi0JLkEwKG5fMjAzKSk7Ci0gICBPQTIxWDQgZzE2NTQzICguWShuXzEzNzYpLCAKLQkuQjAobl8xNDE1KSwgCi0JLkExKG5fMSksIAotCS5BMChuXzE0KSk7Ci0gICBBTzIxWDQgZzE2NTQ0ICguWShuXzEzNzcpLCAKLQkuQjAobl8xNDA0KSwgCi0JLkExKG5fMjczKSwgCi0JLkEwKG5fODMpKTsKLSAgIEFPMjFYNCBnMTY1NDUgKC5ZKG5fMTM3OCksIAotCS5CMChuXzE0MDQpLCAKLQkuQTEobl8yNjkpLCAKLQkuQTAobl84MykpOwotICAgQU5ENFg2IGcxNjU0NiAoLlkobl8xMzc5KSwgCi0JLkQobl8yNTUpLCAKLQkuQyhuXzE0MTQpLCAKLQkuQihuXzk4KSwgCi0JLkEobl8xMTcpKTsKLSAgIElOVlhMIGcxNjU0NyAoLlkobl8xMzgxKSwgCi0JLkEobl8xMzgwKSk7Ci0gICBPQUkzMVg0IGcxNjU0OCAoLlkobl8xMzgwKSwgCi0JLkIwKG5fMzYzKSwgCi0JLkEyKG5fMjQwKSwgCi0JLkExKG5fMTQwKSwgCi0JLkEwKG5fMTIxKSk7Ci0gICBBTzIxWDQgZzE2NTQ5ICguWShuXzEzODIpLCAKLQkuQjAobl8xMzkwKSwgCi0JLkExKG5fMTkzKSwgCi0JLkEwKG5fMTExKSk7Ci0gICBJTlZYTCBnMTY1NTAgKC5ZKG5fMTM4NCksIAotCS5BKG5fMTM4MykpOwotICAgQU9JMjIxWDQgZzE2NTUxICguWShuXzEzODMpLCAKLQkuQzAobl8xMzk3KSwgCi0JLkIxKG5fMjEyKSwgCi0JLkIwKG5fMTQxNyksIAotCS5BMShuXzE0MjUpLCAKLQkuQTAobl8xNDIwKSk7Ci0gICBJTlZYTCBnMTY1NTIgKC5ZKG5fMTM4NiksIAotCS5BKG5fMTM4NSkpOwotICAgQU9JMjIxWDQgZzE2NTUzICguWShuXzEzODUpLCAKLQkuQzAobl8xMzk3KSwgCi0JLkIxKG5fMjEyKSwgCi0JLkIwKG5fMTQxNiksIAotCS5BMShuXzE0MjUpLCAKLQkuQTAobl8xNDIxKSk7Ci0gICBJTlZYTCBnMTY1NTQgKC5ZKG5fMTM4OCksIAotCS5BKG5fMTM4NykpOwotICAgQU9JMzJYNCBnMTY1NTUgKC5ZKG5fMTM4NyksIAotCS5CMShuXzEwMyksIAotCS5CMChnb19wb3J0KSwgCi0JLkEyKG5fMjI1KSwgCi0JLkExKG5fMTkzKSwgCi0JLkEwKGlyWzEyXSkpOwotICAgQU8yMVg0IGcxNjU1NiAoLlkobl8xMzg5KSwgCi0JLkIwKG5fMTQxMCksIAotCS5BMShuXzIzMiksIAotCS5BMChuXzIwMSkpOwotICAgQU5EM1g2IGcxNjU1NyAoLlkobl8xMzkwKSwgCi0JLkMobl8yNCksIAotCS5CKG5fMTU5KSwgCi0JLkEobl8xNTMpKTsKLSAgIElOVlhMIGcxNjU1OCAoLlkobl8xMzkyKSwgCi0JLkEobl8xMzkxKSk7Ci0gICBBT0kzMVg0IGcxNjU1OSAoLlkobl8xMzkxKSwgCi0JLkIwKG5fMTQxMCksIAotCS5BMihuXzIzMiksIAotCS5BMShuXzE0MyksIAotCS5BMChuXzE1OSkpOwotICAgQU5ENFg2IGcxNjU2MCAoLlkobl8xMzkzKSwgCi0JLkQobl8xOSksIAotCS5DKG5fMTM5KSwgCi0JLkIobl8xMjkpLCAKLQkuQShuXzExMSkpOwotICAgT1I0WDggZzE2NTYxICguWShuXzEzOTQpLCAKLQkuRChuXzIwNCksIAotCS5DKG5fMTYyKSwgCi0JLkIobl8yMzEpLCAKLQkuQShuXzk4KSk7Ci0gICBPUjNYNiBnMTY1NjIgKC5ZKG5fMTM5NSksIAotCS5DKG5fMjQ5KSwgCi0JLkIoaXJbNl0pLCAKLQkuQShuXzE2MikpOwotICAgT1IzWDYgZzE2NTYzICguWShuXzEzOTYpLCAKLQkuQyhuXzI0OSksIAotCS5CKG5fMTYyKSwgCi0JLkEobl8xMjEpKTsKLSAgIEFPMjJYNCBnMTY1NjQgKC5ZKG5fMTM5NyksIAotCS5CMShuXzI0MyksIAotCS5CMChpclsxXSksIAotCS5BMShuXzI0MSksIAotCS5BMChtZHJbMV0pKTsKLSAgIEFPMjJYNCBnMTY1NjUgKC5ZKG5fMTM5OCksIAotCS5CMShuXzI0MyksIAotCS5CMChpcls3XSksIAotCS5BMShuXzI0MSksIAotCS5BMChtZHJbN10pKTsKLSAgIEFPMjJYNCBnMTY1NjYgKC5ZKG5fMTM5OSksIAotCS5CMShuXzE2NiksIAotCS5CMChuXzExOTEpLCAKLQkuQTEobl8xNDI0KSwgCi0JLkEwKGRlY29kZVsxXSkpOwotICAgQU8yMlg0IGcxNjU2NyAoLlkobl8xNDAwKSwgCi0JLkIxKG5fMjQzKSwgCi0JLkIwKGlyWzZdKSwgCi0JLkExKG5fMjQxKSwgCi0JLkEwKG1kcls2XSkpOwotICAgQU8yMlg0IGcxNjU2OCAoLlkobl8xNDAxKSwgCi0JLkIxKG5fMjQzKSwgCi0JLkIwKGlyWzRdKSwgCi0JLkExKG5fMjQxKSwgCi0JLkEwKG1kcls0XSkpOwotICAgQU8yMlg0IGcxNjU2OSAoLlkobl8xNDAyKSwgCi0JLkIxKG5fMjQzKSwgCi0JLkIwKGlyWzVdKSwgCi0JLkExKG5fMjQxKSwgCi0JLkEwKG1kcls1XSkpOwotICAgQU8yMlg0IGcxNjU3MCAoLlkobl8xNDAzKSwgCi0JLkIxKG5fMjQzKSwgCi0JLkIwKGlyWzJdKSwgCi0JLkExKG5fMjQxKSwgCi0JLkEwKG1kclsyXSkpOwotICAgQU8yMlg0IGcxNjU3MSAoLlkobl8xNDA0KSwgCi0JLkIxKG5fMjQzKSwgCi0JLkIwKGlyWzBdKSwgCi0JLkExKG5fMjQxKSwgCi0JLkEwKG1kclswXSkpOwotICAgQU8yMlg0IGcxNjU3MiAoLlkobl8xNDA1KSwgCi0JLkIxKG5fMjQzKSwgCi0JLkIwKGlyWzNdKSwgCi0JLkExKG5fMjQxKSwgCi0JLkEwKG1kclszXSkpOwotICAgT0EyMVg0IGcxNjU3NSAoLlkobl8xNDA4KSwgCi0JLkIwKG5fMTQxOCksIAotCS5BMShuXzIwNSksIAotCS5BMChuXzgyKSk7Ci0gICBPUjRYOCBnMTY1NzYgKC5ZKG5fMTQwOSksIAotCS5EKG5fMTM2KSwgCi0JLkMoREZUX3NkbyksIAotCS5CKG5fOTIpLCAKLQkuQShwaGlfMSkpOwotICAgQU5EM1g2IGcxNjU3NyAoLlkobl8xNDEwKSwgCi0JLkMobl8yMzIpLCAKLQkuQihuXzEyMiksIAotCS5BKG5fMTU5KSk7Ci0gICBPQTIxWDQgZzE2NTc4ICguWShuXzE0MTEpLCAKLQkuQjAobl8yNTApLCAKLQkuQTEobl8xNzYpLCAKLQkuQTAobl8xMTEpKTsKLSAgIEFORDNYNiBnMTY1NzkgKC5ZKG5fMTQxMiksIAotCS5DKG5fMjApLCAKLQkuQihuXzE2OSksIAotCS5BKG5fOTgpKTsKLSAgIEFPMjJYNCBnMTY1ODAgKC5ZKG5fMTQxMyksIAotCS5CMShuXzE2NiksIAotCS5CMChuXzEwOCksIAotCS5BMShuXzE0MjQpLCAKLQkuQTAoZGVjb2RlWzBdKSk7Ci0gICBBTkQzWDYgZzE2NTgxICguWShuXzE0MTQpLCAKLQkuQyhuXzE0MiksIAotCS5CKGlyWzEwXSksIAotCS5BKGlyWzhdKSk7Ci0gICBBTkQzWDYgZzE2NTgyICguWShuXzE0MTUpLCAKLQkuQyhuXzEzMyksIAotCS5CKGlyWzExXSksIAotCS5BKHBoaV8xKSk7Ci0gICBBTkQzWDYgZzE2NTgzICguWShuXzE0MTYpLCAKLQkuQyhuXzEzNyksIAotCS5CKGFycCksIAotCS5BKG5fMTM1KSk7Ci0gICBBTkQzWDYgZzE2NTg0ICguWShuXzE0MTcpLCAKLQkuQyhuXzEzNyksIAotCS5CKG5fOTQpLCAKLQkuQShuXzEzNSkpOwotICAgQU8yMVg0IGcxNjU4NSAoLlkobl8xNDE4KSwgCi0JLkIwKG5fMTYwKSwgCi0JLkExKG5fMTMwKSwgCi0JLkEwKG5fMTUyKSk7Ci0gICBPQTIxWDQgZzE2NTg2ICguWShuXzE0MTkpLCAKLQkuQjAobl8xOSksIAotCS5BMShuXzE1NSksIAotCS5BMChuXzEwMykpOwotICAgQU5EM1g2IGcxNjU4NyAoLlkobl8xNDIwKSwgCi0JLkMobl8xNTApLCAKLQkuQihuXzk0KSwgCi0JLkEobl8xMzUpKTsKLSAgIEFORDNYNiBnMTY1ODggKC5ZKG5fMTQyMSksIAotCS5DKG5fMTUwKSwgCi0JLkIoYXJwKSwgCi0JLkEobl8xMzUpKTsKLSAgIEFPMjFYNCBnMTY1ODkgKC5ZKG5fMTQyMiksIAotCS5CMChuXzE1NyksIAotCS5BMShuXzkyKSwgCi0JLkEwKGJyYW5jaF9zdGFsbF9kZWxheSkpOwotICAgQU8yMVg0IGcxNjU5MCAoLlkobl8xNDIzKSwgCi0JLkIwKG5fMTU3KSwgCi0JLkExKG5fMTEzKSwgCi0JLkEwKERGVF9zZG8pKTsKLSAgIE9SM1g2IGcxNjU5MSAoLlkobl8xNDI0KSwgCi0JLkMobl85MiksIAotCS5CKHNraXBfb25lKSwgCi0JLkEodHdvX2N5Y2xlKSk7Ci0gICBBTzIyWDQgZzE2NTkyICguWShuXzE0MjUpLCAKLQkuQjEobl84MyksIAotCS5CMChhclsxXSksIAotCS5BMShuXzgxKSwgCi0JLkEwKGFyWzBdKSk7Ci0gICBBTzIyWDQgZzE2NTkzICguWShuXzE0MjYpLCAKLQkuQjEobl85MSksIAotCS5CMChpclswXSksIAotCS5BMShpcls4XSksIAotCS5BMChtZHJbMF0pKTsKLSAgIEFPSTJCQjFYNCBnMTY1OTQgKC5ZKG5fMTQyNyksIAotCS5CMChuXzEzMzMpLCAKLQkuQTFOKG5fMTE0KSwgCi0JLkEwTihuXzk3KSk7Ci0gICBBT0kyQkIxWDQgZzE2NTk1ICguWShuXzE0MjgpLCAKLQkuQjAobl8zODYpLCAKLQkuQTFOKG5fMTM3KSwgCi0JLkEwTihuXzE1MCkpOwotICAgTkFORDNYOCBnMTY1OTYgKC5ZKG5fMTQzMCksIAotCS5DKG5fMTQxMSksIAotCS5CKG5fMTM2MiksIAotCS5BKG5fMTQyOSkpOwotICAgQU9JMjFYNCBnMTY1OTcgKC5ZKG5fMTQyOSksIAotCS5CMChuXzM3NCksIAotCS5BMShuXzM5MSksIAotCS5BMChuXzIzOSkpOwotICAgT0EyMVg0IGcxNjU5OCAoLlkobl8xNDMyKSwgCi0JLkIwKG5fMjAzKSwgCi0JLkExKG5fMTQzMSksIAotCS5BMChuXzIwMSkpOwotICAgQU8yMVg0IGcxNjU5OSAoLlkobl8xNDMxKSwgCi0JLkIwKG5fMTM4MCksIAotCS5BMShuXzEyOSksIAotCS5BMChuXzEzOSkpOwotICAgT0EyMVg0IGcxNjYwMCAoLlkobl8xNDM0KSwgCi0JLkIwKG5fMTEzKSwgCi0JLkExKG5fMTQzMyksIAotCS5BMChuXzE1NCkpOwotICAgQU8yMVg0IGcxNjYwMSAoLlkobl8xNDMzKSwgCi0JLkIwKG5fMTM0KSwgCi0JLkExKG5fOTcpLCAKLQkuQTAobl85MikpOwotICAgTkFORDNCWDQgZzE2NjAyICguWShuXzE0MzYpLCAKLQkuQyhuXzEyNjcpLCAKLQkuQihuXzE0MzUpLCAKLQkuQU4ob3ZfMjI5MikpOwotICAgTkFORDJCWDQgZzE2NjAzICguWShuXzE0MzUpLCAKLQkuQihuXzExNyksIAotCS5BTihuXzEzMTQpKTsKLSAgIE9BSTJCQjFYNCBnMTY2MDQgKC5ZKG5fMTQzOCksIAotCS5CMChuXzEyODgpLCAKLQkuQTFOKG5fMTQzNyksIAotCS5BME4ob3ZtKSk7Ci0gICBPUjNYNiBnMTY2MDUgKC5ZKG5fMTQzNyksIAotCS5DKG5fNTYxKSwgCi0JLkIobl8xNDkpLCAKLQkuQShuXzExOCkpOwotICAgTk9SNEJCWDQgZzE2NjA2ICguWShuXzE0MzkpLCAKLQkuRChuXzEzNTMpLCAKLQkuQyhpcls0XSksIAotCS5CTihuXzEwOSksIAotCS5BTihpclszXSkpOwotICAgT0FJMkJCMVg0IGcxNjYwNyAoLlkobl8xNDQwKSwgCi0JLkIwKG5fMTI3OSksIAotCS5BMU4obl8yMTApLCAKLQkuQTBOKG5fMTExKSk7Ci0gICBDTEtNWDJYMTIgZzE2NjA4ICguWShuXzE0NDEpLCAKLQkuUzAobl8xMzI1KSwgCi0JLkIobl8yNDUpLCAKLQkuQShyZWFkX3Byb2cpKTsKLSAgIE9BSTJCQjFYNCBnMTY2MDkgKC5ZKG5fMTQ0MiksIAotCS5CMChuXzEzMzQpLCAKLQkuQTFOKG5fMTM3NCksIAotCS5BME4oaXJbOV0pKTsKLWVuZG1vZHVsZQotCi1tb2R1bGUgbXVsdF91bnNpZ25lZCAoCi0JQSwgCi0JQiwgCi0JWik7Ci0gICBpbnB1dCBbMTU6MF0gQTsKLSAgIGlucHV0IFsxNTowXSBCOwotICAgb3V0cHV0IFszMTowXSBaOwotCi0gICAvLyBJbnRlcm5hbCB3aXJlcwotICAgd2lyZSBuXzA7Ci0gICB3aXJlIG5fMzsKLSAgIHdpcmUgbl81OwotICAgd2lyZSBuXzc7Ci0gICB3aXJlIG5fOTsKLSAgIHdpcmUgbl8xMDsKLSAgIHdpcmUgbl8xMTsKLSAgIHdpcmUgbl8xMjsKLSAgIHdpcmUgbl82MjsKLSAgIHdpcmUgbl84ODsKLSAgIHdpcmUgbl8xNDY7Ci0gICB3aXJlIG5fMTQ5OwotICAgd2lyZSBuXzE1MDsKLSAgIHdpcmUgbl8xNTE7Ci0gICB3aXJlIG5fMTUyOwotICAgd2lyZSBuXzE1MzsKLSAgIHdpcmUgbl8xNTc7Ci0gICB3aXJlIG5fMTU4OwotICAgd2lyZSBuXzE2MjsKLSAgIHdpcmUgbl8xNjM7Ci0gICB3aXJlIG5fMTY1OwotICAgd2lyZSBuXzE2NzsKLSAgIHdpcmUgbl8xNjk7Ci0gICB3aXJlIG5fMTcwOwotICAgd2lyZSBuXzE3MTsKLSAgIHdpcmUgbl8xNzI7Ci0gICB3aXJlIG5fMTczOwotICAgd2lyZSBuXzE3NjsKLSAgIHdpcmUgbl8xNzc7Ci0gICB3aXJlIG5fMTc4OwotICAgd2lyZSBuXzE4MjsKLSAgIHdpcmUgbl8xODQ7Ci0gICB3aXJlIG5fMTg1OwotICAgd2lyZSBuXzE4NjsKLSAgIHdpcmUgbl8xODc7Ci0gICB3aXJlIG5fMTg4OwotICAgd2lyZSBuXzE4OTsKLSAgIHdpcmUgbl8xOTA7Ci0gICB3aXJlIG5fMTkxOwotICAgd2lyZSBuXzE5MjsKLSAgIHdpcmUgbl8xOTM7Ci0gICB3aXJlIG5fMTk0OwotICAgd2lyZSBuXzE5NTsKLSAgIHdpcmUgbl8xOTY7Ci0gICB3aXJlIG5fMTk4OwotICAgd2lyZSBuXzE5OTsKLSAgIHdpcmUgbl8yMDA7Ci0gICB3aXJlIG5fMjAxOwotICAgd2lyZSBuXzIwMjsKLSAgIHdpcmUgbl8yMDM7Ci0gICB3aXJlIG5fMjA0OwotICAgd2lyZSBuXzIwNjsKLSAgIHdpcmUgbl8yMDc7Ci0gICB3aXJlIG5fMjA4OwotICAgd2lyZSBuXzIwOTsKLSAgIHdpcmUgbl8yMTA7Ci0gICB3aXJlIG5fMjExOwotICAgd2lyZSBuXzIxMjsKLSAgIHdpcmUgbl8yMTM7Ci0gICB3aXJlIG5fMjI3OwotICAgd2lyZSBuXzI2MDsKLSAgIHdpcmUgbl8yNjM7Ci0gICB3aXJlIG5fMjY3OwotICAgd2lyZSBuXzI2ODsKLSAgIHdpcmUgbl8yNzA7Ci0gICB3aXJlIG5fMjc5OwotICAgd2lyZSBuXzI4OTsKLSAgIHdpcmUgbl8yOTA7Ci0gICB3aXJlIG5fMjkxOwotICAgd2lyZSBuXzI5MzsKLSAgIHdpcmUgbl8yOTQ7Ci0gICB3aXJlIG5fMjk1OwotICAgd2lyZSBuXzI5NzsKLSAgIHdpcmUgbl8yOTg7Ci0gICB3aXJlIG5fMjk5OwotICAgd2lyZSBuXzMwMDsKLSAgIHdpcmUgbl8zMTA7Ci0gICB3aXJlIG5fMzExOwotICAgd2lyZSBuXzMxMjsKLSAgIHdpcmUgbl8zMjE7Ci0gICB3aXJlIG5fMzQxOwotICAgd2lyZSBuXzM1MTsKLSAgIHdpcmUgbl8zNTM7Ci0gICB3aXJlIG5fMzU3OwotICAgd2lyZSBuXzM1ODsKLSAgIHdpcmUgbl8zNTk7Ci0gICB3aXJlIG5fMzYwOwotICAgd2lyZSBuXzM2NDsKLSAgIHdpcmUgbl8zNjU7Ci0gICB3aXJlIG5fMzY5OwotICAgd2lyZSBuXzM3MTsKLSAgIHdpcmUgbl8zNzI7Ci0gICB3aXJlIG5fMzg2OwotICAgd2lyZSBuXzM5MzsKLSAgIHdpcmUgbl8zOTk7Ci0gICB3aXJlIG5fNDAwOwotICAgd2lyZSBuXzQwMTsKLSAgIHdpcmUgbl80MDM7Ci0gICB3aXJlIG5fNDA3OwotICAgd2lyZSBuXzQxMDsKLSAgIHdpcmUgbl80MTg7Ci0gICB3aXJlIG5fNDIwOwotICAgd2lyZSBuXzQyNTsKLSAgIHdpcmUgbl80MzA7Ci0gICB3aXJlIG5fNDMxOwotICAgd2lyZSBuXzQ0ODsKLSAgIHdpcmUgbl80NTU7Ci0gICB3aXJlIG5fNDU4OwotICAgd2lyZSBuXzQ2MDsKLSAgIHdpcmUgbl80Njg7Ci0gICB3aXJlIG5fNDc1OwotICAgd2lyZSBuXzQ5MjsKLSAgIHdpcmUgbl80OTY7Ci0gICB3aXJlIG5fNDk3OwotICAgd2lyZSBuXzQ5ODsKLSAgIHdpcmUgbl80OTk7Ci0gICB3aXJlIG5fNTAwOwotICAgd2lyZSBuXzUwMTsKLSAgIHdpcmUgbl81MDI7Ci0gICB3aXJlIG5fNTAzOwotICAgd2lyZSBuXzUwNDsKLSAgIHdpcmUgbl81MDU7Ci0gICB3aXJlIG5fNTA2OwotICAgd2lyZSBuXzUwNzsKLSAgIHdpcmUgbl81MDg7Ci0gICB3aXJlIG5fNTA5OwotICAgd2lyZSBuXzUxMDsKLSAgIHdpcmUgbl81MTE7Ci0gICB3aXJlIG5fNTEyOwotICAgd2lyZSBuXzUxMzsKLSAgIHdpcmUgbl81MTQ7Ci0gICB3aXJlIG5fNTE1OwotICAgd2lyZSBuXzUxNjsKLSAgIHdpcmUgbl81MTc7Ci0gICB3aXJlIG5fNTE4OwotICAgd2lyZSBuXzUxOTsKLSAgIHdpcmUgbl81MjA7Ci0gICB3aXJlIG5fNTIxOwotICAgd2lyZSBuXzUyMjsKLSAgIHdpcmUgbl81MjM7Ci0gICB3aXJlIG5fNTI0OwotICAgd2lyZSBuXzUyNTsKLSAgIHdpcmUgbl81MjY7Ci0gICB3aXJlIG5fNTI3OwotICAgd2lyZSBuXzUyODsKLSAgIHdpcmUgbl81MzM7Ci0gICB3aXJlIG5fNTM2OwotICAgd2lyZSBuXzUzOTsKLSAgIHdpcmUgbl81NDI7Ci0gICB3aXJlIG5fNTQzOwotICAgd2lyZSBuXzU0NzsKLSAgIHdpcmUgbl81NDg7Ci0gICB3aXJlIG5fNTUwOwotICAgd2lyZSBuXzU1MzsKLSAgIHdpcmUgbl81NTQ7Ci0gICB3aXJlIG5fNTU1OwotICAgd2lyZSBuXzU1NjsKLSAgIHdpcmUgbl81NjE7Ci0gICB3aXJlIG5fNTYyOwotICAgd2lyZSBuXzU2MzsKLSAgIHdpcmUgbl81NjY7Ci0gICB3aXJlIG5fNTY5OwotICAgd2lyZSBuXzU4MzsKLSAgIHdpcmUgbl81ODc7Ci0gICB3aXJlIG5fNTkwOwotICAgd2lyZSBuXzU5MTsKLSAgIHdpcmUgbl82MDU7Ci0gICB3aXJlIG5fNjA3OwotICAgd2lyZSBuXzY0NjsKLSAgIHdpcmUgbl82NDg7Ci0gICB3aXJlIG5fNjUxOwotICAgd2lyZSBuXzY1MzsKLSAgIHdpcmUgbl82NzI7Ci0gICB3aXJlIG5fNjczOwotICAgd2lyZSBuXzY4NzsKLSAgIHdpcmUgbl82ODg7Ci0gICB3aXJlIG5fNzE5OwotICAgd2lyZSBuXzczMjsKLSAgIHdpcmUgbl83MzM7Ci0gICB3aXJlIG5fNzQ5OwotICAgd2lyZSBuXzc1MzsKLSAgIHdpcmUgbl83Njc7Ci0gICB3aXJlIG5fNzcwOwotICAgd2lyZSBuXzc5MDsKLSAgIHdpcmUgbl83OTE7Ci0gICB3aXJlIG5fODA2OwotICAgd2lyZSBuXzgzMjsKLSAgIHdpcmUgbl84MzM7Ci0gICB3aXJlIG5fODU2OwotICAgd2lyZSBuXzg2NDsKLSAgIHdpcmUgbl84NjU7Ci0gICB3aXJlIG5fODcxOwotICAgd2lyZSBuXzg3NDsKLSAgIHdpcmUgbl84ODI7Ci0gICB3aXJlIG5fODk5OwotICAgd2lyZSBuXzkwMDsKLSAgIHdpcmUgbl85NjA7Ci0gICB3aXJlIG5fOTg1OwotICAgd2lyZSBuXzEwMzk7Ci0gICB3aXJlIG5fMTA0MDsKLSAgIHdpcmUgbl8xMDQyOwotICAgd2lyZSBuXzEwNDQ7Ci0gICB3aXJlIG5fMTA1NTsKLSAgIHdpcmUgbl8xMDYyOwotICAgd2lyZSBuXzEwNjg7Ci0gICB3aXJlIG5fMTEzODsKLSAgIHdpcmUgbl8xMTY0OwotICAgd2lyZSBuXzExNjY7Ci0gICB3aXJlIG5fMTE2OTsKLSAgIHdpcmUgbl8xMTczOwotICAgd2lyZSBuXzExNzU7Ci0gICB3aXJlIG5fMTE3NzsKLSAgIHdpcmUgbl8xMTc5OwotICAgd2lyZSBuXzExODM7Ci0gICB3aXJlIG5fMTE4NjsKLSAgIHdpcmUgbl8xMTkwOwotICAgd2lyZSBuXzExOTY7Ci0gICB3aXJlIG5fMTE5OTsKLSAgIHdpcmUgbl8xMjAyOwotICAgd2lyZSBuXzEyMDc7Ci0gICB3aXJlIG5fMTIxMTsKLSAgIHdpcmUgbl8xMjE2OwotICAgd2lyZSBuXzEyMjA7Ci0gICB3aXJlIG5fMTIyNDsKLSAgIHdpcmUgbl8xMjI3OwotICAgd2lyZSBuXzEyMzQ7Ci0gICB3aXJlIG5fMTIzODsKLSAgIHdpcmUgbl8xMjQwOwotICAgd2lyZSBuXzEyNDk7Ci0gICB3aXJlIG5fMTI1NDsKLSAgIHdpcmUgbl8xMjU3OwotICAgd2lyZSBuXzEyNTk7Ci0gICB3aXJlIG5fMTI2MjsKLSAgIHdpcmUgbl8xMjY1OwotICAgd2lyZSBuXzEyNzQ7Ci0gICB3aXJlIG5fMTI3NjsKLSAgIHdpcmUgbl8xMjc4OwotICAgd2lyZSBuXzEyODA7Ci0gICB3aXJlIG5fMTI4MzsKLSAgIHdpcmUgbl8xMjg2OwotICAgd2lyZSBuXzEyOTA7Ci0gICB3aXJlIG5fMTI5MjsKLSAgIHdpcmUgbl8xMjk2OwotICAgd2lyZSBuXzEyOTk7Ci0gICB3aXJlIG5fMTMwMTsKLSAgIHdpcmUgbl8xMzA0OwotICAgd2lyZSBuXzEzMTE7Ci0gICB3aXJlIG5fMTMxOTsKLSAgIHdpcmUgbl8xMzIxOwotICAgd2lyZSBuXzEzMjM7Ci0gICB3aXJlIG5fMTMyNDsKLSAgIHdpcmUgbl8xMzI1OwotICAgd2lyZSBuXzEzMjg7Ci0gICB3aXJlIG5fMTMzMTsKLSAgIHdpcmUgbl8xMzM4OwotICAgd2lyZSBuXzEzMzk7Ci0gICB3aXJlIG5fMTM0MjsKLSAgIHdpcmUgbl8xMzQzOwotICAgd2lyZSBuXzEzNDQ7Ci0gICB3aXJlIG5fMTM0NTsKLSAgIHdpcmUgbl8xMzQ2OwotICAgd2lyZSBuXzEzNTg7Ci0gICB3aXJlIG5fMTM2MzsKLSAgIHdpcmUgbl8xMzY0OwotICAgd2lyZSBuXzEzNjU7Ci0gICB3aXJlIG5fMTM2NjsKLSAgIHdpcmUgbl8xMzY3OwotICAgd2lyZSBuXzEzNzM7Ci0gICB3aXJlIG5fMTM3NDsKLSAgIHdpcmUgbl8xMzc1OwotICAgd2lyZSBuXzEzNzY7Ci0gICB3aXJlIG5fMTM3NzsKLSAgIHdpcmUgbl8xMzc4OwotICAgd2lyZSBuXzEzODU7Ci0gICB3aXJlIG5fMTM4NzsKLSAgIHdpcmUgbl8xMzg4OwotICAgd2lyZSBuXzEzODk7Ci0gICB3aXJlIG5fMTM5MTsKLSAgIHdpcmUgbl8xMzkyOwotICAgd2lyZSBuXzEzOTQ7Ci0gICB3aXJlIG5fMTM5NTsKLSAgIHdpcmUgbl8xMzk3OwotICAgd2lyZSBuXzEzOTk7Ci0gICB3aXJlIG5fMTQwOTsKLSAgIHdpcmUgbl8xNDEzOwotICAgd2lyZSBuXzE0MTQ7Ci0gICB3aXJlIG5fMTQxNTsKLSAgIHdpcmUgbl8xNDIzOwotICAgd2lyZSBuXzE0MjU7Ci0gICB3aXJlIG5fMTQ2MDsKLSAgIHdpcmUgbl8xNDYzOwotICAgd2lyZSBuXzE0NjQ7Ci0gICB3aXJlIG5fMTQ3MTsKLSAgIHdpcmUgbl8xNDcyOwotICAgd2lyZSBuXzE0NzU7Ci0gICB3aXJlIG5fMTQ3NjsKLSAgIHdpcmUgbl8xNDc3OwotICAgd2lyZSBuXzE0ODA7Ci0gICB3aXJlIG5fMTQ4MjsKLSAgIHdpcmUgbl8xNDg2OwotICAgd2lyZSBuXzE0ODk7Ci0gICB3aXJlIG5fMTQ5MTsKLSAgIHdpcmUgbl8xNDkzOwotICAgd2lyZSBuXzE0OTY7Ci0gICB3aXJlIG5fMTQ5OTsKLSAgIHdpcmUgbl8xNTAzOwotICAgd2lyZSBuXzE1MTA7Ci0gICB3aXJlIG5fMTUxMTsKLSAgIHdpcmUgbl8xNTE0OwotICAgd2lyZSBuXzE1MTY7Ci0gICB3aXJlIG5fMTUxODsKLSAgIHdpcmUgbl8xNTI0OwotICAgd2lyZSBuXzE1MjU7Ci0gICB3aXJlIG5fMTUyNjsKLSAgIHdpcmUgbl8xNTI3OwotICAgd2lyZSBuXzE1Mjg7Ci0gICB3aXJlIG5fMTUyOTsKLSAgIHdpcmUgbl8xNTMwOwotICAgd2lyZSBuXzE1NTE7Ci0gICB3aXJlIG5fMTU5MjsKLSAgIHdpcmUgbl8xNTkzOwotICAgd2lyZSBuXzE2MTQ7Ci0gICB3aXJlIG5fMTYxODsKLSAgIHdpcmUgbl8xNjMzOwotICAgd2lyZSBuXzE2MzQ7Ci0gICB3aXJlIG5fMTYzNTsKLSAgIHdpcmUgbl8xNjM2OwotICAgd2lyZSBuXzE2Mzc7Ci0gICB3aXJlIG5fMTYzODsKLSAgIHdpcmUgbl8xNjM5OwotICAgd2lyZSBuXzE2NDA7Ci0gICB3aXJlIG5fMTY0MTsKLSAgIHdpcmUgbl8xNjQyOwotICAgd2lyZSBuXzE2NDM7Ci0gICB3aXJlIG5fMTY0NDsKLSAgIHdpcmUgbl8xNjQ1OwotICAgd2lyZSBuXzE2NDY7Ci0gICB3aXJlIG5fMTY0NzsKLSAgIHdpcmUgbl8xNjQ4OwotICAgd2lyZSBuXzE2NDk7Ci0gICB3aXJlIG5fMTY1MDsKLSAgIHdpcmUgbl8xNjUxOwotICAgd2lyZSBuXzE2NTI7Ci0gICB3aXJlIG5fMTY1MzsKLSAgIHdpcmUgbl8xNjU0OwotICAgd2lyZSBuXzE2NTU7Ci0gICB3aXJlIG5fMTY1NjsKLSAgIHdpcmUgbl8xNjU3OwotICAgd2lyZSBuXzE2NTg7Ci0gICB3aXJlIG5fMTY1OTsKLSAgIHdpcmUgbl8xNjYwOwotICAgd2lyZSBuXzE2NjE7Ci0gICB3aXJlIG5fMTY2MzsKLSAgIHdpcmUgbl8xNjY1OwotICAgd2lyZSBuXzE2NjY7Ci0gICB3aXJlIG5fMTY2NzsKLSAgIHdpcmUgbl8xNjY4OwotICAgd2lyZSBuXzE2Njk7Ci0gICB3aXJlIG5fMTY3MDsKLSAgIHdpcmUgbl8xNjcxOwotICAgd2lyZSBuXzE2NzI7Ci0gICB3aXJlIG5fMTY3MzsKLSAgIHdpcmUgbl8xNjc4OwotICAgd2lyZSBuXzE2ODI7Ci0gICB3aXJlIG5fMTY4ODsKLSAgIHdpcmUgbl8xNjkwOwotICAgd2lyZSBuXzE3MDA7Ci0gICB3aXJlIG5fMTcwMTsKLSAgIHdpcmUgbl8xNzAzOwotICAgd2lyZSBuXzE3MDU7Ci0gICB3aXJlIG5fMTcwNjsKLSAgIHdpcmUgbl8xNzEwOwotICAgd2lyZSBuXzE3MTQ7Ci0gICB3aXJlIG5fMTcxNzsKLSAgIHdpcmUgbl8xNzIxOwotICAgd2lyZSBuXzE3MjI7Ci0gICB3aXJlIG5fMTcyMzsKLSAgIHdpcmUgbl8xNzM2OwotICAgd2lyZSBuXzE3NDE7Ci0gICB3aXJlIG5fMTc2NjsKLSAgIHdpcmUgbl8xNzY3OwotICAgd2lyZSBuXzE3NzA7Ci0gICB3aXJlIG5fMTc3NDsKLSAgIHdpcmUgbl8xNzc1OwotICAgd2lyZSBuXzE3Nzg7Ci0gICB3aXJlIG5fMTc4MDsKLSAgIHdpcmUgbl8xNzgyOwotICAgd2lyZSBuXzE3ODQ7Ci0gICB3aXJlIG5fMTc5MzsKLSAgIHdpcmUgbl8xNzk1OwotICAgd2lyZSBuXzE3OTk7Ci0gICB3aXJlIG5fMTgxNzsKLSAgIHdpcmUgbl8xODE4OwotICAgd2lyZSBuXzE4MTk7Ci0gICB3aXJlIG5fMTgyMzsKLSAgIHdpcmUgbl8xODI3OwotICAgd2lyZSBuXzE4MzI7Ci0gICB3aXJlIG5fMTg3MTsKLSAgIHdpcmUgbl8xODc0OwotICAgd2lyZSBuXzE5MDI7Ci0gICB3aXJlIG5fMTkwMzsKLSAgIHdpcmUgbl8xOTA0OwotICAgd2lyZSBuXzE5MDU7Ci0gICB3aXJlIG5fMTkwNjsKLSAgIHdpcmUgbl8xOTA3OwotICAgd2lyZSBuXzE5MDg7Ci0gICB3aXJlIG5fMTkwOTsKLSAgIHdpcmUgbl8xOTEwOwotICAgd2lyZSBuXzE5MTE7Ci0gICB3aXJlIG5fMTkxMjsKLSAgIHdpcmUgbl8xOTEzOwotICAgd2lyZSBuXzE5MTQ7Ci0gICB3aXJlIG5fMTkxNTsKLSAgIHdpcmUgbl8xOTE2OwotICAgd2lyZSBuXzE5MTk7Ci0gICB3aXJlIG5fMTkyMDsKLSAgIHdpcmUgbl8xOTIxOwotICAgd2lyZSBuXzE5MjI7Ci0gICB3aXJlIG5fMTkyMzsKLSAgIHdpcmUgbl8xOTI0OwotICAgd2lyZSBuXzE5MjU7Ci0gICB3aXJlIG5fMTkyNjsKLSAgIHdpcmUgbl8xOTI3OwotICAgd2lyZSBuXzE5Mjg7Ci0gICB3aXJlIG5fMTkyOTsKLSAgIHdpcmUgbl8xOTM0OwotICAgd2lyZSBuXzE5MzU7Ci0gICB3aXJlIG5fMTkzNjsKLSAgIHdpcmUgbl8xOTM3OwotICAgd2lyZSBuXzE5NDE7Ci0gICB3aXJlIG5fMTk0MjsKLSAgIHdpcmUgbl8xOTQ0OwotICAgd2lyZSBuXzE5NDc7Ci0gICB3aXJlIG5fMTk2MjsKLSAgIHdpcmUgbl8xOTYzOwotICAgd2lyZSBuXzE5NjU7Ci0gICB3aXJlIG5fMTk2OTsKLSAgIHdpcmUgbl8xOTcxOwotICAgd2lyZSBuXzE5NzI7Ci0gICB3aXJlIG5fMTk3NjsKLSAgIHdpcmUgbl8xOTc3OwotICAgd2lyZSBuXzE5Nzk7Ci0gICB3aXJlIG5fMTk4MDsKLSAgIHdpcmUgbl8xOTg4OwotICAgd2lyZSBuXzE5OTk7Ci0gICB3aXJlIG5fMjAwMDsKLSAgIHdpcmUgbl8yMDAxOwotICAgd2lyZSBuXzIwMDI7Ci0gICB3aXJlIG5fMjAwNjsKLSAgIHdpcmUgbl8yMDIzOwotICAgd2lyZSBuXzIwMjQ7Ci0gICB3aXJlIG5fMjAzMDsKLSAgIHdpcmUgbl8yMDM2OwotICAgd2lyZSBuXzIwNDM7Ci0gICB3aXJlIG5fMjA0NDsKLSAgIHdpcmUgbl8yMDQ1OwotICAgd2lyZSBuXzIwNDY7Ci0gICB3aXJlIG5fMjA0NzsKLSAgIHdpcmUgbl8yMDQ4OwotICAgd2lyZSBuXzIwNDk7Ci0gICB3aXJlIG5fMjA1MDsKLSAgIHdpcmUgbl8yMDczOwotICAgd2lyZSBuXzIwNzQ7Ci0gICB3aXJlIG5fMjA3NTsKLSAgIHdpcmUgbl8yMDc2OwotICAgd2lyZSBuXzIwOTg7Ci0gICB3aXJlIG5fMjA5OTsKLSAgIHdpcmUgbl8yMTAxOwotICAgd2lyZSBuXzIxMDI7Ci0gICB3aXJlIG5fMjEwNDsKLSAgIHdpcmUgbl8yMTA1OwotICAgd2lyZSBuXzIxMTQ7Ci0gICB3aXJlIG5fMjExNTsKLSAgIHdpcmUgbl8yMTE5OwotICAgd2lyZSBuXzIxMjA7Ci0gICB3aXJlIG5fMjEyNjsKLSAgIHdpcmUgbl8yMTI4OwotICAgd2lyZSBuXzIxMzE7Ci0gICB3aXJlIG5fMjE0MDsKLSAgIHdpcmUgbl8yMTUyOwotICAgd2lyZSBuXzIxNjA7Ci0gICB3aXJlIG5fMjE2MTsKLSAgIHdpcmUgbl8yMTY1OwotICAgd2lyZSBuXzIxNzg7Ci0gICB3aXJlIG5fMjE3OTsKLSAgIHdpcmUgbl8yMTgwOwotICAgd2lyZSBuXzIxOTE7Ci0gICB3aXJlIG5fMjE5MjsKLSAgIHdpcmUgbl8yMTkzOwotICAgd2lyZSBuXzIyMDA7Ci0gICB3aXJlIG5fMjIxMzsKLSAgIHdpcmUgbl8yMjE2OwotICAgd2lyZSBuXzIyMTg7Ci0gICB3aXJlIG5fMjIyMTsKLSAgIHdpcmUgbl8yMjIyOwotICAgd2lyZSBuXzIyMzA7Ci0gICB3aXJlIG5fMjIzNzsKLSAgIHdpcmUgbl8yMjQ1OwotICAgd2lyZSBuXzIyNDc7Ci0gICB3aXJlIG5fMjI0ODsKLSAgIHdpcmUgbl8yMjcwOwotICAgd2lyZSBuXzIyODI7Ci0gICB3aXJlIG5fMjI5MDsKLSAgIHdpcmUgbl8yMjkzOwotICAgd2lyZSBuXzIyOTQ7Ci0gICB3aXJlIG5fMjMwODsKLSAgIHdpcmUgbl8yMzA5OwotICAgd2lyZSBuXzIzMTY7Ci0gICB3aXJlIG5fMjMxNzsKLSAgIHdpcmUgbl8yMzIxOwotICAgd2lyZSBuXzIzMjI7Ci0gICB3aXJlIG5fMjMzMDsKLSAgIHdpcmUgbl8yMzc1OwotICAgd2lyZSBuXzIzODA7Ci0gICB3aXJlIG5fMjM4MTsKLSAgIHdpcmUgbl8yMzg0OwotICAgd2lyZSBuXzIzODY7Ci0gICB3aXJlIG5fMjM4OTsKLSAgIHdpcmUgbl8yMzkxOwotICAgd2lyZSBuXzIzOTI7Ci0gICB3aXJlIG5fMjM5NDsKLSAgIHdpcmUgbl8yMzk1OwotICAgd2lyZSBuXzIzOTY7Ci0gICB3aXJlIG5fMjM5OTsKLSAgIHdpcmUgbl8yNDAwOwotICAgd2lyZSBuXzI0MDI7Ci0gICB3aXJlIG5fMjQwNDsKLSAgIHdpcmUgbl8yNDA2OwotICAgd2lyZSBuXzI0MDc7Ci0gICB3aXJlIG5fMjQwOTsKLSAgIHdpcmUgbl8yNDEwOwotICAgd2lyZSBuXzI0MTI7Ci0gICB3aXJlIG5fMjQxMzsKLSAgIHdpcmUgbl8yNDE0OwotICAgd2lyZSBuXzI0MTU7Ci0gICB3aXJlIG5fMjQxNjsKLSAgIHdpcmUgbl8yNDE3OwotICAgd2lyZSBuXzI0MTk7Ci0gICB3aXJlIG5fMjQyMDsKLSAgIHdpcmUgbl8yNDIxOwotICAgd2lyZSBuXzI0MjI7Ci0gICB3aXJlIG5fMjQyMzsKLSAgIHdpcmUgbl8yNDI0OwotICAgd2lyZSBuXzI0MjU7Ci0gICB3aXJlIG5fMjQyNjsKLSAgIHdpcmUgbl8yNDI3OwotICAgd2lyZSBuXzI0Mjg7Ci0gICB3aXJlIG5fMjQyOTsKLSAgIHdpcmUgbl8yNDMwOwotICAgd2lyZSBuXzI0MzE7Ci0gICB3aXJlIG5fMjQzMjsKLSAgIHdpcmUgbl8yNDM0OwotICAgd2lyZSBuXzI0MzY7Ci0gICB3aXJlIG5fMjQzNzsKLSAgIHdpcmUgbl8yNDM4OwotICAgd2lyZSBuXzI0Mzk7Ci0gICB3aXJlIG5fMjQ0MDsKLSAgIHdpcmUgbl8yNDQxOwotICAgd2lyZSBuXzI0NDM7Ci0gICB3aXJlIG5fMjQ0NDsKLSAgIHdpcmUgbl8yNDQ1OwotICAgd2lyZSBuXzI0NDY7Ci0gICB3aXJlIG5fMjQ0NzsKLSAgIHdpcmUgbl8yNDQ4OwotICAgd2lyZSBuXzI0NDk7Ci0gICB3aXJlIG5fMjQ1MTsKLSAgIHdpcmUgbl8yNDUyOwotICAgd2lyZSBuXzI0NTM7Ci0gICB3aXJlIG5fMjQ1NTsKLSAgIHdpcmUgbl8yNDU2OwotICAgd2lyZSBuXzI0NTc7Ci0gICB3aXJlIG5fMjQ1ODsKLSAgIHdpcmUgbl8yNDU5OwotICAgd2lyZSBuXzI0NjA7Ci0gICB3aXJlIG5fMjQ2MTsKLSAgIHdpcmUgbl8yNDYyOwotICAgd2lyZSBuXzI0NjQ7Ci0gICB3aXJlIG5fMjQ2NTsKLSAgIHdpcmUgbl8yNDY2OwotICAgd2lyZSBuXzI0Njc7Ci0gICB3aXJlIG5fMjQ2ODsKLSAgIHdpcmUgbl8yNDcwOwotICAgd2lyZSBuXzI0NzE7Ci0gICB3aXJlIG5fMjQ3MjsKLSAgIHdpcmUgbl8yNDczOwotICAgd2lyZSBuXzI0NzQ7Ci0gICB3aXJlIG5fMjQ3NTsKLSAgIHdpcmUgbl8yNDc2OwotICAgd2lyZSBuXzI0Nzc7Ci0gICB3aXJlIG5fMjQ3ODsKLSAgIHdpcmUgbl8yNDgxOwotICAgd2lyZSBuXzI0ODI7Ci0gICB3aXJlIG5fMjQ4MzsKLSAgIHdpcmUgbl8yNDg1OwotICAgd2lyZSBuXzI0ODY7Ci0gICB3aXJlIG5fMjQ4NzsKLSAgIHdpcmUgbl8yNDg4OwotICAgd2lyZSBuXzI0ODk7Ci0gICB3aXJlIG5fMjQ5MDsKLSAgIHdpcmUgbl8yNDkxOwotICAgd2lyZSBuXzI0OTI7Ci0gICB3aXJlIG5fMjQ5MzsKLSAgIHdpcmUgbl8yNDk0OwotICAgd2lyZSBuXzI0OTU7Ci0gICB3aXJlIG5fMjQ5NzsKLSAgIHdpcmUgbl8yNDk4OwotICAgd2lyZSBuXzI0OTk7Ci0gICB3aXJlIG5fMjUwMDsKLSAgIHdpcmUgbl8yNTAxOwotICAgd2lyZSBuXzI1MDI7Ci0gICB3aXJlIG5fMjUwMzsKLSAgIHdpcmUgbl8yNTA0OwotICAgd2lyZSBuXzI1MDU7Ci0gICB3aXJlIG5fMjUwNjsKLSAgIHdpcmUgbl8yNTA3OwotICAgd2lyZSBuXzI1MDg7Ci0gICB3aXJlIG5fMjUwOTsKLSAgIHdpcmUgbl8yNTEwOwotICAgd2lyZSBuXzI1MTE7Ci0gICB3aXJlIG5fMjUxMjsKLSAgIHdpcmUgbl8yNTEzOwotICAgd2lyZSBuXzI1MTQ7Ci0gICB3aXJlIG5fMjUxNjsKLSAgIHdpcmUgbl8yNTE3OwotICAgd2lyZSBuXzI1MTg7Ci0gICB3aXJlIG5fMjUyMDsKLSAgIHdpcmUgbl8yNTIxOwotICAgd2lyZSBuXzI1MjI7Ci0gICB3aXJlIG5fMjUyMzsKLSAgIHdpcmUgbl8yNTI0OwotICAgd2lyZSBuXzI1MjU7Ci0gICB3aXJlIG5fMjUyNjsKLSAgIHdpcmUgbl8yNTI3OwotICAgd2lyZSBuXzI1Mjg7Ci0gICB3aXJlIG5fMjUyOTsKLSAgIHdpcmUgbl8yNTMwOwotICAgd2lyZSBuXzI1MzE7Ci0gICB3aXJlIG5fMjUzMjsKLSAgIHdpcmUgbl8yNTMzOwotICAgd2lyZSBuXzI1MzQ7Ci0gICB3aXJlIG5fMjUzNTsKLSAgIHdpcmUgbl8yNTM2OwotICAgd2lyZSBuXzI1Mzc7Ci0gICB3aXJlIG5fMjUzODsKLSAgIHdpcmUgbl8yNTM5OwotICAgd2lyZSBuXzI1NDA7Ci0gICB3aXJlIG5fMjU0MTsKLSAgIHdpcmUgbl8yNTQyOwotICAgd2lyZSBuXzI1NDM7Ci0gICB3aXJlIG5fMjU0NDsKLSAgIHdpcmUgbl8yNTQ2OwotICAgd2lyZSBuXzI1NDc7Ci0gICB3aXJlIG5fMjU0ODsKLSAgIHdpcmUgbl8yNTQ5OwotICAgd2lyZSBuXzI1NTA7Ci0gICB3aXJlIG5fMjU1MTsKLSAgIHdpcmUgbl8yNTUyOwotICAgd2lyZSBuXzI1NTM7Ci0gICB3aXJlIG5fMjU1NDsKLSAgIHdpcmUgbl8yNTU1OwotICAgd2lyZSBuXzI1NTY7Ci0gICB3aXJlIG5fMjU1NzsKLSAgIHdpcmUgbl8yNTU4OwotICAgd2lyZSBuXzI1NTk7Ci0gICB3aXJlIG5fMjU2MDsKLSAgIHdpcmUgbl8yNTYxOwotICAgd2lyZSBuXzI1NjI7Ci0gICB3aXJlIG5fMjU2MzsKLSAgIHdpcmUgbl8yNTY0OwotICAgd2lyZSBuXzI1NjU7Ci0gICB3aXJlIG5fMjU2NjsKLSAgIHdpcmUgbl8yNTY3OwotICAgd2lyZSBuXzI1Njg7Ci0gICB3aXJlIG5fMjU2OTsKLSAgIHdpcmUgbl8yNTcwOwotICAgd2lyZSBuXzI1NzE7Ci0gICB3aXJlIG5fMjU3MjsKLSAgIHdpcmUgbl8yNTczOwotICAgd2lyZSBuXzI1NzQ7Ci0gICB3aXJlIG5fMjU3NTsKLSAgIHdpcmUgbl8yNTc2OwotICAgd2lyZSBuXzI1Nzc7Ci0gICB3aXJlIG5fMjU3ODsKLSAgIHdpcmUgbl8yNTc5OwotICAgd2lyZSBuXzI1ODA7Ci0gICB3aXJlIG5fMjU4MTsKLSAgIHdpcmUgbl8yNTgyOwotICAgd2lyZSBuXzI1ODM7Ci0gICB3aXJlIG5fMjU4NDsKLSAgIHdpcmUgbl8yNTg1OwotICAgd2lyZSBuXzI1ODY7Ci0gICB3aXJlIG5fMjU4NzsKLSAgIHdpcmUgbl8yNTg4OwotICAgd2lyZSBuXzI1ODk7Ci0gICB3aXJlIG5fMjU5MDsKLSAgIHdpcmUgbl8yNTkxOwotICAgd2lyZSBuXzI1OTI7Ci0gICB3aXJlIG5fMjU5MzsKLSAgIHdpcmUgbl8yNTk0OwotICAgd2lyZSBuXzI1OTU7Ci0gICB3aXJlIG5fMjU5NjsKLSAgIHdpcmUgbl8yNTk3OwotICAgd2lyZSBuXzI1OTg7Ci0gICB3aXJlIG5fMjU5OTsKLSAgIHdpcmUgbl8yNjAwOwotICAgd2lyZSBuXzI2MDE7Ci0gICB3aXJlIG5fMjYwMjsKLSAgIHdpcmUgbl8yNjAzOwotICAgd2lyZSBuXzI2MDQ7Ci0gICB3aXJlIG5fMjYwNTsKLSAgIHdpcmUgbl8yNjA2OwotICAgd2lyZSBuXzI2MDc7Ci0gICB3aXJlIG5fMjYwODsKLSAgIHdpcmUgbl8yNjA5OwotICAgd2lyZSBuXzI2MTA7Ci0gICB3aXJlIG5fMjYxMTsKLSAgIHdpcmUgbl8yNjEyOwotICAgd2lyZSBuXzI2MTQ7Ci0gICB3aXJlIG5fMjYxNTsKLSAgIHdpcmUgbl8yNjE2OwotICAgd2lyZSBuXzI2MTc7Ci0gICB3aXJlIG5fMjYxODsKLSAgIHdpcmUgbl8yNjE5OwotICAgd2lyZSBuXzI2MjA7Ci0gICB3aXJlIG5fMjYyMTsKLSAgIHdpcmUgbl8yNjIyOwotICAgd2lyZSBuXzI2MjM7Ci0gICB3aXJlIG5fMjYyNDsKLSAgIHdpcmUgbl8yNjI1OwotICAgd2lyZSBuXzI2MjY7Ci0gICB3aXJlIG5fMjYyNzsKLSAgIHdpcmUgbl8yNjI4OwotICAgd2lyZSBuXzI2Mjk7Ci0gICB3aXJlIG5fMjYzMDsKLSAgIHdpcmUgbl8yNjMxOwotICAgd2lyZSBuXzI2MzI7Ci0gICB3aXJlIG5fMjYzMzsKLSAgIHdpcmUgbl8yNjM0OwotICAgd2lyZSBuXzI2MzU7Ci0gICB3aXJlIG5fMjYzNjsKLSAgIHdpcmUgbl8yNjM3OwotICAgd2lyZSBuXzI2Mzg7Ci0gICB3aXJlIG5fMjYzOTsKLSAgIHdpcmUgbl8yNjQwOwotICAgd2lyZSBuXzI2NDE7Ci0gICB3aXJlIG5fMjY0MjsKLSAgIHdpcmUgbl8yNjQzOwotICAgd2lyZSBuXzI2NDQ7Ci0gICB3aXJlIG5fMjY0NTsKLSAgIHdpcmUgbl8yNjQ2OwotICAgd2lyZSBuXzI2NDc7Ci0gICB3aXJlIG5fMjY0ODsKLSAgIHdpcmUgbl8yNjQ5OwotICAgd2lyZSBuXzI2NTA7Ci0gICB3aXJlIG5fMjY1MTsKLSAgIHdpcmUgbl8yNjUyOwotICAgd2lyZSBuXzI2NTM7Ci0gICB3aXJlIG5fMjY1NDsKLSAgIHdpcmUgbl8yNjU1OwotICAgd2lyZSBuXzI2NTY7Ci0gICB3aXJlIG5fMjY1NzsKLSAgIHdpcmUgbl8yNjU4OwotICAgd2lyZSBuXzI2NTk7Ci0gICB3aXJlIG5fMjY2MDsKLSAgIHdpcmUgbl8yNjYxOwotICAgd2lyZSBuXzI2NjI7Ci0gICB3aXJlIG5fMjY2MzsKLSAgIHdpcmUgbl8yNjY0OwotICAgd2lyZSBuXzI2NjU7Ci0gICB3aXJlIG5fMjY2NjsKLSAgIHdpcmUgbl8yNjY3OwotICAgd2lyZSBuXzI2Njg7Ci0gICB3aXJlIG5fMjY2OTsKLSAgIHdpcmUgbl8yNjcwOwotICAgd2lyZSBuXzI2NzE7Ci0gICB3aXJlIG5fMjY3MjsKLSAgIHdpcmUgbl8yNjczOwotICAgd2lyZSBuXzI2NzQ7Ci0gICB3aXJlIG5fMjY3NTsKLSAgIHdpcmUgbl8yNjc2OwotICAgd2lyZSBuXzI2Nzc7Ci0gICB3aXJlIG5fMjY3ODsKLSAgIHdpcmUgbl8yNjc5OwotICAgd2lyZSBuXzI2ODA7Ci0gICB3aXJlIG5fMjY4MTsKLSAgIHdpcmUgbl8yNjgyOwotICAgd2lyZSBuXzI2ODM7Ci0gICB3aXJlIG5fMjY4NDsKLSAgIHdpcmUgbl8yNjg1OwotICAgd2lyZSBuXzI2ODY7Ci0gICB3aXJlIG5fMjY4NzsKLSAgIHdpcmUgbl8yNjg4OwotICAgd2lyZSBuXzI2ODk7Ci0gICB3aXJlIG5fMjY5MDsKLSAgIHdpcmUgbl8yNjkxOwotICAgd2lyZSBuXzI2OTI7Ci0gICB3aXJlIG5fMjY5MzsKLSAgIHdpcmUgbl8yNjk0OwotICAgd2lyZSBuXzI2OTU7Ci0gICB3aXJlIG5fMjY5NjsKLSAgIHdpcmUgbl8yNjk3OwotICAgd2lyZSBuXzI2OTg7Ci0gICB3aXJlIG5fMjY5OTsKLSAgIHdpcmUgbl8yNzAwOwotICAgd2lyZSBuXzI3MDE7Ci0gICB3aXJlIG5fMjcwMjsKLSAgIHdpcmUgbl8yNzAzOwotICAgd2lyZSBuXzI3MDQ7Ci0gICB3aXJlIG5fMjcwNTsKLSAgIHdpcmUgbl8yNzA2OwotICAgd2lyZSBuXzI3MDc7Ci0gICB3aXJlIG5fMjcwODsKLSAgIHdpcmUgbl8yNzA5OwotICAgd2lyZSBuXzI3MTA7Ci0gICB3aXJlIG5fMjcxMTsKLSAgIHdpcmUgbl8yNzEyOwotICAgd2lyZSBuXzI3MTM7Ci0gICB3aXJlIG5fMjcxNDsKLSAgIHdpcmUgbl8yNzE1OwotICAgd2lyZSBuXzI3MTY7Ci0gICB3aXJlIG5fMjcxNzsKLSAgIHdpcmUgbl8yNzE4OwotICAgd2lyZSBuXzI3MTk7Ci0gICB3aXJlIG5fMjcyMDsKLSAgIHdpcmUgbl8yNzIxOwotICAgd2lyZSBuXzI3MjI7Ci0gICB3aXJlIG5fMjcyMzsKLSAgIHdpcmUgbl8yNzMwOwotICAgd2lyZSBuXzI3MzI7Ci0gICB3aXJlIG5fMjczMzsKLSAgIHdpcmUgbl8yNzM0OwotICAgd2lyZSBuXzI3MzU7Ci0gICB3aXJlIG5fMjczNjsKLSAgIHdpcmUgbl8yNzM3OwotICAgd2lyZSBuXzI3Mzg7Ci0gICB3aXJlIG5fMjc0MDsKLSAgIHdpcmUgbl8yNzQxOwotICAgd2lyZSBuXzI3NDI7Ci0gICB3aXJlIG5fMjc0MzsKLSAgIHdpcmUgbl8yNzQ0OwotICAgd2lyZSBuXzI3NDU7Ci0gICB3aXJlIG5fMjc0NjsKLSAgIHdpcmUgbl8yNzQ3OwotICAgd2lyZSBuXzI3NDg7Ci0gICB3aXJlIG5fMjc0OTsKLSAgIHdpcmUgbl8yNzUwOwotICAgd2lyZSBuXzI3NTE7Ci0gICB3aXJlIG5fMjc1MjsKLSAgIHdpcmUgbl8yNzUzOwotICAgd2lyZSBuXzI3NTQ7Ci0gICB3aXJlIG5fMjc1NTsKLSAgIHdpcmUgbl8yNzU2OwotICAgd2lyZSBuXzI3NTc7Ci0gICB3aXJlIG5fMjc1ODsKLSAgIHdpcmUgbl8yNzU5OwotICAgd2lyZSBuXzI3NjA7Ci0gICB3aXJlIG5fMjc2MTsKLSAgIHdpcmUgbl8yNzYyOwotICAgd2lyZSBuXzI3NjM7Ci0gICB3aXJlIG5fMjc2NDsKLSAgIHdpcmUgbl8yNzY1OwotICAgd2lyZSBuXzI3NjY7Ci0gICB3aXJlIG5fMjc2NzsKLSAgIHdpcmUgbl8yNzY4OwotICAgd2lyZSBuXzI3Njk7Ci0gICB3aXJlIG5fMjc3MDsKLSAgIHdpcmUgbl8yNzcxOwotICAgd2lyZSBuXzI3NzI7Ci0gICB3aXJlIG5fMjc3MzsKLSAgIHdpcmUgbl8yNzc0OwotICAgd2lyZSBuXzI3NzU7Ci0gICB3aXJlIG5fMjc3NjsKLSAgIHdpcmUgbl8yNzc3OwotICAgd2lyZSBuXzI3Nzg7Ci0gICB3aXJlIG5fMjc3OTsKLSAgIHdpcmUgbl8yNzgwOwotICAgd2lyZSBuXzI3ODE7Ci0gICB3aXJlIG5fMjc4MjsKLSAgIHdpcmUgbl8yNzgzOwotICAgd2lyZSBuXzI3ODQ7Ci0gICB3aXJlIG5fMjc4NTsKLSAgIHdpcmUgbl8yNzg2OwotICAgd2lyZSBuXzI3ODc7Ci0gICB3aXJlIG5fMjc4ODsKLSAgIHdpcmUgbl8yNzg5OwotICAgd2lyZSBuXzI3OTA7Ci0gICB3aXJlIG5fMjc5MTsKLSAgIHdpcmUgbl8yNzkyOwotICAgd2lyZSBuXzI3OTM7Ci0gICB3aXJlIG5fMjc5NDsKLSAgIHdpcmUgbl8yNzk1OwotICAgd2lyZSBuXzI3OTY7Ci0gICB3aXJlIG5fMjc5NzsKLSAgIHdpcmUgbl8yNzk4OwotICAgd2lyZSBuXzI3OTk7Ci0gICB3aXJlIG5fMjgwMDsKLSAgIHdpcmUgbl8yODAxOwotICAgd2lyZSBuXzI4MDI7Ci0gICB3aXJlIG5fMjgwMzsKLSAgIHdpcmUgbl8yODA0OwotICAgd2lyZSBuXzI4MDU7Ci0gICB3aXJlIG5fMjgwNjsKLSAgIHdpcmUgbl8yODA3OwotICAgd2lyZSBuXzI4MDg7Ci0gICB3aXJlIG5fMjgwOTsKLSAgIHdpcmUgbl8yODEwOwotICAgd2lyZSBuXzI4MTE7Ci0gICB3aXJlIG5fMjgxMjsKLSAgIHdpcmUgbl8yODEzOwotICAgd2lyZSBuXzI4MTQ7Ci0gICB3aXJlIG5fMjgxNTsKLSAgIHdpcmUgbl8yODE2OwotICAgd2lyZSBuXzI4MTc7Ci0gICB3aXJlIG5fMjgxODsKLSAgIHdpcmUgbl8yODE5OwotICAgd2lyZSBuXzI4MjA7Ci0gICB3aXJlIG5fMjgyMTsKLSAgIHdpcmUgbl8yODIyOwotICAgd2lyZSBuXzI4MjM7Ci0gICB3aXJlIG5fMjgyNDsKLSAgIHdpcmUgbl8yODI1OwotICAgd2lyZSBuXzI4MjY7Ci0gICB3aXJlIG5fMjgyNzsKLSAgIHdpcmUgbl8yODI4OwotICAgd2lyZSBuXzI4Mjk7Ci0gICB3aXJlIG5fMjgzMDsKLSAgIHdpcmUgbl8yODMxOwotICAgd2lyZSBuXzI4MzI7Ci0gICB3aXJlIG5fMjgzMzsKLSAgIHdpcmUgbl8yODM0OwotICAgd2lyZSBuXzI4MzU7Ci0gICB3aXJlIG5fMjgzNjsKLSAgIHdpcmUgbl8yODM3OwotICAgd2lyZSBuXzI4Mzg7Ci0gICB3aXJlIG5fMjgzOTsKLSAgIHdpcmUgbl8yODQwOwotICAgd2lyZSBuXzI4NDE7Ci0gICB3aXJlIG5fMjg0MjsKLSAgIHdpcmUgbl8yODQzOwotICAgd2lyZSBuXzI4NDQ7Ci0gICB3aXJlIG5fMjg0NTsKLSAgIHdpcmUgbl8yODQ2OwotICAgd2lyZSBuXzI4NDc7Ci0gICB3aXJlIG5fMjg0ODsKLSAgIHdpcmUgbl8yODQ5OwotICAgd2lyZSBuXzI4NTA7Ci0gICB3aXJlIG5fMjg1MTsKLSAgIHdpcmUgbl8yODUyOwotICAgd2lyZSBuXzI4NTM7Ci0gICB3aXJlIG5fMjg1NDsKLSAgIHdpcmUgbl8yODU1OwotICAgd2lyZSBuXzI4NTY7Ci0gICB3aXJlIG5fMjg1NzsKLSAgIHdpcmUgbl8yODU4OwotICAgd2lyZSBuXzI4NTk7Ci0gICB3aXJlIG5fMjg2MDsKLSAgIHdpcmUgbl8yODYxOwotICAgd2lyZSBuXzI4NjI7Ci0gICB3aXJlIG5fMjg2MzsKLSAgIHdpcmUgbl8yODY0OwotICAgd2lyZSBuXzI4NjU7Ci0gICB3aXJlIG5fMjg2NjsKLSAgIHdpcmUgbl8yODY3OwotICAgd2lyZSBuXzI4Njg7Ci0gICB3aXJlIG5fMjg2OTsKLSAgIHdpcmUgbl8yODcwOwotICAgd2lyZSBuXzI4NzE7Ci0gICB3aXJlIG5fMjg3MjsKLSAgIHdpcmUgbl8yODczOwotICAgd2lyZSBuXzI4NzQ7Ci0gICB3aXJlIG5fMjg3NTsKLSAgIHdpcmUgbl8yODc2OwotICAgd2lyZSBuXzI4Nzc7Ci0gICB3aXJlIG5fMjg3ODsKLSAgIHdpcmUgbl8yODc5OwotICAgd2lyZSBuXzI4ODA7Ci0gICB3aXJlIG5fMjg4MTsKLSAgIHdpcmUgbl8yODgyOwotICAgd2lyZSBuXzI4ODM7Ci0gICB3aXJlIG5fMjg4NDsKLSAgIHdpcmUgbl8yODg1OwotICAgd2lyZSBuXzI4ODY7Ci0gICB3aXJlIG5fMjg4NzsKLSAgIHdpcmUgbl8yODg4OwotICAgd2lyZSBuXzI4ODk7Ci0gICB3aXJlIG5fMjg5MDsKLSAgIHdpcmUgbl8yODkxOwotICAgd2lyZSBuXzI4OTI7Ci0gICB3aXJlIG5fMjg5MzsKLSAgIHdpcmUgbl8yODk0OwotICAgd2lyZSBuXzI4OTU7Ci0gICB3aXJlIG5fMjg5NjsKLSAgIHdpcmUgbl8yODk3OwotICAgd2lyZSBuXzI4OTg7Ci0gICB3aXJlIG5fMjg5OTsKLSAgIHdpcmUgbl8yOTAwOwotICAgd2lyZSBuXzI5MDE7Ci0gICB3aXJlIG5fMjkwMjsKLSAgIHdpcmUgbl8yOTAzOwotICAgd2lyZSBuXzI5MDQ7Ci0gICB3aXJlIG5fMjkwNTsKLSAgIHdpcmUgbl8yOTA2OwotICAgd2lyZSBuXzI5MDc7Ci0gICB3aXJlIG5fMjkwODsKLSAgIHdpcmUgbl8yOTA5OwotICAgd2lyZSBuXzI5MTA7Ci0gICB3aXJlIG5fMjkxMTsKLSAgIHdpcmUgbl8yOTEyOwotICAgd2lyZSBuXzI5MTM7Ci0gICB3aXJlIG5fMjkxNDsKLSAgIHdpcmUgbl8yOTE1OwotICAgd2lyZSBuXzI5MTY7Ci0gICB3aXJlIG5fMjkxNzsKLSAgIHdpcmUgbl8yOTE4OwotICAgd2lyZSBuXzI5MTk7Ci0gICB3aXJlIG5fMjkyMDsKLSAgIHdpcmUgbl8yOTIxOwotICAgd2lyZSBuXzI5MjI7Ci0gICB3aXJlIG5fMjkyMzsKLSAgIHdpcmUgbl8yOTI0OwotICAgd2lyZSBuXzI5MjU7Ci0gICB3aXJlIG5fMjkzMDsKLSAgIHdpcmUgbl8yOTMxOwotICAgd2lyZSBuXzI5MzY7Ci0gICB3aXJlIG5fMjkzNzsKLSAgIHdpcmUgbl8yOTM4OwotICAgd2lyZSBuXzI5Mzk7Ci0gICB3aXJlIG5fMjk0MDsKLSAgIHdpcmUgbl8yOTQxOwotICAgd2lyZSBuXzI5NDI7Ci0gICB3aXJlIG5fMjk0MzsKLSAgIHdpcmUgbl8yOTQ0OwotICAgd2lyZSBuXzI5NDU7Ci0gICB3aXJlIG5fMjk0NjsKLSAgIHdpcmUgbl8yOTQ3OwotICAgd2lyZSBuXzI5NDg7Ci0gICB3aXJlIG5fMjk0OTsKLSAgIHdpcmUgbl8yOTUwOwotICAgd2lyZSBuXzI5NTE7Ci0gICB3aXJlIG5fMjk1MjsKLSAgIHdpcmUgbl8yOTUzOwotICAgd2lyZSBuXzI5NTQ7Ci0gICB3aXJlIG5fMjk1NTsKLSAgIHdpcmUgbl8yOTU2OwotICAgd2lyZSBuXzI5NTc7Ci0gICB3aXJlIG5fMjk1ODsKLSAgIHdpcmUgbl8yOTU5OwotICAgd2lyZSBuXzI5NjA7Ci0gICB3aXJlIG5fMjk2MTsKLSAgIHdpcmUgbl8yOTYyOwotICAgd2lyZSBuXzI5NjM7Ci0gICB3aXJlIG5fMjk2NDsKLSAgIHdpcmUgbl8yOTY1OwotICAgd2lyZSBuXzI5NjY7Ci0gICB3aXJlIG5fMjk2NzsKLSAgIHdpcmUgbl8yOTY4OwotICAgd2lyZSBuXzI5Njk7Ci0gICB3aXJlIG5fMjk3MDsKLSAgIHdpcmUgbl8yOTcxOwotICAgd2lyZSBuXzI5NzI7Ci0gICB3aXJlIG5fMjk3MzsKLSAgIHdpcmUgbl8yOTc0OwotICAgd2lyZSBuXzI5NzU7Ci0gICB3aXJlIG5fMjk3NjsKLSAgIHdpcmUgbl8yOTgwOwotICAgd2lyZSBuXzI5ODI7Ci0gICB3aXJlIG5fMjk4MzsKLSAgIHdpcmUgbl8yOTg0OwotICAgd2lyZSBuXzI5ODU7Ci0gICB3aXJlIG5fMjk4NjsKLSAgIHdpcmUgbl8yOTg4OwotICAgd2lyZSBuXzI5ODk7Ci0gICB3aXJlIG5fMjk5MDsKLSAgIHdpcmUgbl8yOTkxOwotCi0gICBDTEtJTlZYMiBnMjQ3MzUgKC5ZKG5fMjMzMCksIAotCS5BKG5fMjM3NSkpOwotICAgT1IyWDEgZzI0NzU0ICguWShuXzIzMjIpLCAKLQkuQihuXzI5NjApLCAKLQkuQShuXzI5NjEpKTsKLSAgIEFORDJYMSBnMjQ3NTYgKC5ZKG5fMjMyMSksIAotCS5CKG5fMjk2MCksIAotCS5BKG5fMjk2MSkpOwotICAgT1IyWDIgZzI0NzY2ICguWShuXzIzMTcpLCAKLQkuQihuXzI5NzEpLCAKLQkuQShuXzI0NTkpKTsKLSAgIEFORDJYMSBnMjQ3NjcgKC5ZKG5fMjMxNiksIAotCS5CKG5fMjk3MSksIAotCS5BKG5fMjQ1OSkpOwotICAgT1IyWDEgZzI0NzgxICguWShuXzIzMDkpLCAKLQkuQihuXzQ5MiksIAotCS5BKG5fMjQ0MCkpOwotICAgQU5EMlgxIGcyNDc4MyAoLlkobl8yMzA4KSwgCi0JLkIobl80OTIpLCAKLQkuQShuXzI0NDApKTsKLSAgIEFORDJYMSBnMjQ4MjAgKC5ZKG5fMjI5NCksIAotCS5CKG5fMjk3MCksIAotCS5BKG5fMjQyMCkpOwotICAgT1IyWDIgZzI0ODIyICguWShuXzIyOTMpLCAKLQkuQihuXzI5NzApLCAKLQkuQShuXzI0MjApKTsKLSAgIENMS0lOVlgyIGcyNDgyOSAoLlkobl8yMjkwKSwgCi0JLkEobl8yMzg2KSk7Ci0gICBDTEtJTlZYMiBnMjQ4MzkgKC5ZKG5fMjI4MiksIAotCS5BKG5fMjM4OSkpOwotICAgQ0xLSU5WWDIgZzI0ODU5ICguWShuXzIyNzApLCAKLQkuQShuXzIzOTUpKTsKLSAgIENMS0lOVlgyIGcyNDg5NiAoLlkobl8yMjQ4KSwgCi0JLkEobl8yMjQ3KSk7Ci0gICBBTkQyWDIgZzI0ODk3ICguWShuXzIyNDcpLCAKLQkuQihuXzM5OSksIAotCS5BKG5fMjA5OSkpOwotICAgQ0xLSU5WWDIgZzI0OTAyICguWShuXzIyNDUpLCAKLQkuQShuXzI0MDQpKTsKLSAgIENMS0lOVlgyIGcyNDkxMiAoLlkobl8yMjM3KSwgCi0JLkEobl8yNDA3KSk7Ci0gICBDTEtJTlZYMSBnMjQ5MjIgKC5ZKG5fMjIzMCksIAotCS5BKG5fMjQwOSkpOwotICAgT1IyWDIgZzI0OTMzICguWShuXzIyMjIpLCAKLQkuQihuXzQzMCksIAotCS5BKG5fNDMxKSk7Ci0gICBDTEtJTlZYMiBnMjQ5MzUgKC5ZKG5fMjIyMSksIAotCS5BKG5fMjIxOCkpOwotICAgQU5EMlgyIGcyNDk0MSAoLlkobl8yMjE4KSwgCi0JLkIobl8zNjQpLCAKLQkuQShuXzE5NjMpKTsKLSAgIENMS0lOVlg0IGcyNDk0NyAoLlkobl8yMjE2KSwgCi0JLkEobl8yNDEwKSk7Ci0gICBDTEtJTlZYMiBnMjQ5NTEgKC5ZKG5fMjIxMyksIAotCS5BKG5fMjQxOSkpOwotICAgQ0xLSU5WWDMgZzI0OTY3ICguWShuXzIyMDApLCAKLQkuQShuXzI0MTMpKTsKLSAgIEFORDJYMSBnMjQ5NzcgKC5ZKG5fMjE5MyksIAotCS5CKG5fNDE4KSwgCi0JLkEobl80MjApKTsKLSAgIENMS0lOVlgzIGcyNDk3OSAoLlkobl8yMTkyKSwgCi0JLkEobl8yNDE3KSk7Ci0gICBDTEtJTlZYMyBnMjQ5ODIgKC5ZKG5fMjE5MSksIAotCS5BKG5fMjQyMSkpOwotICAgQ0xLSU5WWDEgZzI1MDAzICguWShuXzIxODApLCAKLQkuQShuXzI0MjQpKTsKLSAgIENMS0lOVlg0IGcyNTAwNSAoLlkobl8yMTc5KSwgCi0JLkEobl8yNDI1KSk7Ci0gICBDTEtJTlZYMyBnMjUwMDYgKC5ZKG5fMjE3OCksIAotCS5BKG5fMjc1NCkpOwotICAgT1IyWDIgZzI1MDI0ICguWShuXzIxNjUpLCAKLQkuQihuXzIxNTIpLCAKLQkuQShuXzQwMykpOwotICAgQ0xLSU5WWDEgZzI1MDMwICguWShuXzIxNjEpLCAKLQkuQShuXzI0MzIpKTsKLSAgIENMS0lOVlgyIGcyNTAzMiAoLlkobl8yMTYwKSwgCi0JLkEobl8yNDI3KSk7Ci0gICBBTkQyWDEgZzI1MDQyICguWShuXzIxNTIpLCAKLQkuQihuXzI3NTgpLCAKLQkuQShuXzI0NTIpKTsKLSAgIENMS0lOVlgyIGcyNTA2NSAoLlkobl8yMTQwKSwgCi0JLkEobl8yNDQ3KSk7Ci0gICBBTkQyWDEgZzI1MDc1ICguWShuXzIxMzEpLCAKLQkuQihuXzIwOTkpLCAKLQkuQShuXzM5MykpOwotICAgT1IyWDEgZzI1MDc5ICguWShuXzIxMjgpLCAKLQkuQihuXzI0NDMpLCAKLQkuQShuXzI3MzIpKTsKLSAgIEFORDJYMSBnMjUwODMgKC5ZKG5fMjEyNiksIAotCS5CKG5fMjQ0MyksIAotCS5BKG5fMjczMikpOwotICAgQU5EMlgxIGcyNTA5NCAoLlkobl8yMTIwKSwgCi0JLkIobl8yNDQ4KSwgCi0JLkEobl8yNTAyKSk7Ci0gICBPUjJYMSBnMjUwOTUgKC5ZKG5fMjExOSksIAotCS5CKG5fMjQ0OCksIAotCS5BKG5fMjUwMikpOwotICAgQ0xLSU5WWDQgZzI1MTAyICguWShuXzIxMTUpLCAKLQkuQShuXzI0NDEpKTsKLSAgIENMS0lOVlgzIGcyNTEwMyAoLlkobl8yMTE0KSwgCi0JLkEobl8yNzU2KSk7Ci0gICBBTkQyWDEgZzI1MTE5ICguWShuXzIxMDUpLCAKLQkuQihuXzI3MzUpLCAKLQkuQShuXzI0NjYpKTsKLSAgIE9SMlgxIGcyNTEyMCAoLlkobl8yMTA0KSwgCi0JLkIobl8yNzM1KSwgCi0JLkEobl8yNDY2KSk7Ci0gICBBTkQyWDEgZzI1MTIzICguWShuXzIxMDIpLCAKLQkuQihuXzI3MzApLCAKLQkuQShuXzI3MzMpKTsKLSAgIE9SMlgxIGcyNTEyNiAoLlkobl8yMTAxKSwgCi0JLkIobl8yNzMwKSwgCi0JLkEobl8yNzMzKSk7Ci0gICBPUjJYMSBnMjUxMjkgKC5ZKG5fMjA5OSksIAotCS5CKG5fMjQ2MCksIAotCS5BKG5fMjk3MikpOwotICAgQ0xLSU5WWDEgZzI1MTM0ICguWShuXzIwOTgpLCAKLQkuQShuXzI0NDUpKTsKLSAgIENMS0lOVlgxIGcyNTE2NSAoLlkobl8yMDc2KSwgCi0JLkEobl8yOTgyKSk7Ci0gICBDTEtJTlZYMyBnMjUxNjggKC5ZKG5fMjA3NSksIAotCS5BKG5fMjQ1MSkpOwotICAgQ0xLSU5WWDEgZzI1MTY5ICguWShuXzIwNzQpLCAKLQkuQShuXzI3NjApKTsKLSAgIENMS0lOVlg0IGcyNTE3MCAoLlkobl8yMDczKSwgCi0JLkEobl8yNDUzKSk7Ci0gICBDTEtJTlZYMSBnMjUyMDQgKC5ZKG5fMjA1MCksIAotCS5BKG5fMjk4MykpOwotICAgQ0xLSU5WWDIgZzI1MjA2ICguWShuXzIwNDkpLCAKLQkuQShuXzI0NTUpKTsKLSAgIENMS0lOVlgyIGcyNTIwOCAoLlkobl8yMDQ4KSwgCi0JLkEobl8yNDU2KSk7Ci0gICBDTEtJTlZYMiBnMjUyMTEgKC5ZKG5fMjA0NyksIAotCS5BKG5fMjc2NCkpOwotICAgQ0xLSU5WWDIgZzI1MjEyICguWShuXzIwNDYpLCAKLQkuQShuXzI0NTgpKTsKLSAgIENMS0lOVlgyIGcyNTIxMyAoLlkobl8yMDQ1KSwgCi0JLkEobl8yNzY2KSk7Ci0gICBDTEtJTlZYMiBnMjUyMTQgKC5ZKG5fMjA0NCksIAotCS5BKG5fMjQ1NykpOwotICAgQ0xLSU5WWDQgZzI1MjE1ICguWShuXzIwNDMpLCAKLQkuQShuXzI3NjMpKTsKLSAgIEFORDJYMSBnMjUyMjYgKC5ZKG5fMjAzNiksIAotCS5CKG5fMjk2MiksIAotCS5BKG5fMjUyMSkpOwotICAgT1IyWDEgZzI1MjM3ICguWShuXzIwMzApLCAKLQkuQihuXzI5NjIpLCAKLQkuQShuXzI1MjEpKTsKLSAgIENMS0lOVlg0IGcyNTI0NyAoLlkobl8yMDI0KSwgCi0JLkEobl8yNDY4KSk7Ci0gICBDTEtJTlZYMSBnMjUyNTIgKC5ZKG5fMjAyMyksIAotCS5BKG5fMjc2NSkpOwotICAgT1IyWDIgZzI1Mjg3ICguWShuXzIwMDYpLCAKLQkuQihuXzE5NjkpLCAKLQkuQShuXzM1MykpOwotICAgQU5EMlgxIGcyNTI5MyAoLlkobl8yMDAyKSwgCi0JLkIobl8xOTYzKSwgCi0JLkEobl8zNTEpKTsKLSAgIENMS0lOVlg0IGcyNTI5NCAoLlkobl8yMDAxKSwgCi0JLkEobl8yNDczKSk7Ci0gICBDTEtJTlZYMyBnMjUyOTYgKC5ZKG5fMjAwMCksIAotCS5BKG5fMjQ3NCkpOwotICAgQ0xLSU5WWDQgZzI1Mjk3ICguWShuXzE5OTkpLCAKLQkuQShuXzI3NjkpKTsKLSAgIEFORDJYMiBnMjUzMTEgKC5ZKG5fMTk4OCksIAotCS5CKG5fMzEwKSwgCi0JLkEobl8xNzY3KSk7Ci0gICBBTkQyWDEgZzI1MzI1ICguWShuXzE5ODApLCAKLQkuQihuXzI3MzQpLCAKLQkuQShuXzI5NjUpKTsKLSAgIEFORDJYMSBnMjUzMjcgKC5ZKG5fMTk3OSksIAotCS5CKG5fMjQ3OCksIAotCS5BKG5fMjk2OCkpOwotICAgT1IyWDIgZzI1MzMwICguWShuXzE5NzcpLCAKLQkuQihuXzI3MzQpLCAKLQkuQShuXzI5NjUpKTsKLSAgIE9SMlgyIGcyNTMzMiAoLlkobl8xOTc2KSwgCi0JLkIobl8yNDc4KSwgCi0JLkEobl8yOTY4KSk7Ci0gICBPUjJYMSBnMjUzMzggKC5ZKG5fMTk3MiksIAotCS5CKG5fMjk2MyksIAotCS5BKG5fMjk4NCkpOwotICAgQU5EMlgxIGcyNTM0MCAoLlkobl8xOTcxKSwgCi0JLkIobl8yOTYzKSwgCi0JLkEobl8yOTg0KSk7Ci0gICBBTkQyWDEgZzI1MzQzICguWShuXzE5NjkpLCAKLQkuQihuXzI5NzQpLCAKLQkuQShuXzI1MjMpKTsKLSAgIE9SMlgyIGcyNTM1MyAoLlkobl8xOTY1KSwgCi0JLkIobl8yOTY0KSwgCi0JLkEobl8yNTc1KSk7Ci0gICBPUjJYMSBnMjUzNTggKC5ZKG5fMTk2MyksIAotCS5CKG5fMjQ5MCksIAotCS5BKG5fMTc0MSkpOwotICAgQU5EMlgxIGcyNTM2NCAoLlkobl8xOTYyKSwgCi0JLkIobl8yOTY0KSwgCi0JLkEobl8yNTc1KSk7Ci0gICBBTkQyWDEgZzI1Mzg2ICguWShuXzE5NDcpLCAKLQkuQihuXzI1MDcpLCAKLQkuQShuXzI3MzcpKTsKLSAgIE9SMlgxIGcyNTM5MSAoLlkobl8xOTQ0KSwgCi0JLkIobl8yNDk5KSwgCi0JLkEobl8yNTY0KSk7Ci0gICBBTkQyWDEgZzI1Mzk0ICguWShuXzE5NDIpLCAKLQkuQihuXzI0OTEpLCAKLQkuQShuXzI5NjcpKTsKLSAgIE9SMlgxIGcyNTM5NSAoLlkobl8xOTQxKSwgCi0JLkIobl8yNDkxKSwgCi0JLkEobl8yOTY3KSk7Ci0gICBPUjJYMSBnMjUzOTkgKC5ZKG5fMTkzNyksIAotCS5CKG5fMjczNiksIAotCS5BKG5fNDc1KSk7Ci0gICBBTkQyWDEgZzI1NDAyICguWShuXzE5MzYpLCAKLQkuQihuXzI3MzYpLCAKLQkuQShuXzQ3NSkpOwotICAgQU5EMlgxIGcyNTQwNCAoLlkobl8xOTM1KSwgCi0JLkIobl8yNDk5KSwgCi0JLkEobl8yNTY0KSk7Ci0gICBPUjJYMiBnMjU0MDYgKC5ZKG5fMTkzNCksIAotCS5CKG5fMjUwNyksIAotCS5BKG5fMjczNykpOwotICAgQ0xLSU5WWDIgZzI1NDEyICguWShuXzE5MjkpLCAKLQkuQShuXzI3NzApKTsKLSAgIENMS0lOVlgyIGcyNTQxMyAoLlkobl8xOTI4KSwgCi0JLkEobl8yNDc2KSk7Ci0gICBDTEtJTlZYMiBnMjU0MTQgKC5ZKG5fMTkyNyksIAotCS5BKG5fMjQ4OCkpOwotICAgQ0xLSU5WWDQgZzI1NDE3ICguWShuXzE5MjYpLCAKLQkuQShuXzI1MTApKTsKLSAgIENMS0lOVlgyIGcyNTQxOCAoLlkobl8xOTI1KSwgCi0JLkEobl8yNDg2KSk7Ci0gICBDTEtJTlZYMiBnMjU0MjIgKC5ZKG5fMTkyNCksIAotCS5BKG5fMjQ4OSkpOwotICAgQ0xLSU5WWDIgZzI1NDI0ICguWShuXzE5MjMpLCAKLQkuQShuXzI0ODIpKTsKLSAgIENMS0lOVlgzIGcyNTQyNyAoLlkobl8xOTIyKSwgCi0JLkEobl8yNzcxKSk7Ci0gICBDTEtJTlZYMiBnMjU0MzAgKC5ZKG5fMTkyMSksIAotCS5BKG5fMjUxMikpOwotICAgQ0xLSU5WWDEgZzI1NDMxICguWShuXzE5MjApLCAKLQkuQShuXzI0NzcpKTsKLSAgIENMS0lOVlgyIGcyNTQzMyAoLlkobl8xOTE5KSwgCi0JLkEobl8yNDgzKSk7Ci0gICBDTEtJTlZYMiBnMjU0MzggKC5ZKG5fMTkxNiksIAotCS5BKG5fMjUwMCkpOwotICAgQ0xLSU5WWDMgZzI1NDM5ICguWShuXzE5MTUpLCAKLQkuQShuXzI1MjApKTsKLSAgIENMS0lOVlgyIGcyNTQ0MSAoLlkobl8xOTE0KSwgCi0JLkEobl8yNzc2KSk7Ci0gICBDTEtJTlZYMiBnMjU0NDUgKC5ZKG5fMTkxMyksIAotCS5BKG5fMjc3NykpOwotICAgQ0xLSU5WWDMgZzI1NDQ2ICguWShuXzE5MTIpLCAKLQkuQShuXzI1MDEpKTsKLSAgIENMS0lOVlgyIGcyNTQ0OSAoLlkobl8xOTExKSwgCi0JLkEobl8yNTA2KSk7Ci0gICBDTEtJTlZYMiBnMjU0NTEgKC5ZKG5fMTkxMCksIAotCS5BKG5fMjUwMykpOwotICAgQ0xLSU5WWDEgZzI1NDUyICguWShuXzE5MDkpLCAKLQkuQShuXzI5NzUpKTsKLSAgIENMS0lOVlgyIGcyNTQ1NCAoLlkobl8xOTA4KSwgCi0JLkEobl8yNTA1KSk7Ci0gICBDTEtJTlZYMiBnMjU0NTUgKC5ZKG5fMTkwNyksIAotCS5BKG5fMjc3OCkpOwotICAgQ0xLSU5WWDEgZzI1NDU3ICguWShuXzE5MDYpLCAKLQkuQShuXzI1MTEpKTsKLSAgIENMS0lOVlgzIGcyNTQ1OCAoLlkobl8xOTA1KSwgCi0JLkEobl8yNDk3KSk7Ci0gICBDTEtJTlZYMiBnMjU0NTkgKC5ZKG5fMTkwNCksIAotCS5BKG5fMjQ5MykpOwotICAgQ0xLSU5WWDEgZzI1NDYwICguWShuXzE5MDMpLCAKLQkuQShuXzI1MjIpKTsKLSAgIENMS0lOVlgxIGcyNTQ2MiAoLlkobl8xOTAyKSwgCi0JLkEobl8yNTA4KSk7Ci0gICBPUjJYMiBnMjU1MDcgKC5ZKG5fMTg3NCksIAotCS5CKG5fMjUzOCksIAotCS5BKG5fMjk2NikpOwotICAgQU5EMlgxIGcyNTUxMiAoLlkobl8xODcxKSwgCi0JLkIobl8yNTM4KSwgCi0JLkEobl8yOTY2KSk7Ci0gICBPUjJYMiBnMjU1NzUgKC5ZKG5fMTgzMiksIAotCS5CKG5fMjkxKSwgCi0JLkEobl8xNzc4KSk7Ci0gICBPUjJYMiBnMjU1ODMgKC5ZKG5fMTgyNyksIAotCS5CKG5fMTc4MiksIAotCS5BKG5fMjkwKSk7Ci0gICBBTkQyWDEgZzI1NTkyICguWShuXzE4MjMpLCAKLQkuQihuXzI4OSksIAotCS5BKG5fMTc2NykpOwotICAgQ0xLSU5WWDMgZzI1NjAyICguWShuXzE4MTkpLCAKLQkuQShuXzI3ODYpKTsKLSAgIENMS0lOVlgyIGcyNTYwNCAoLlkobl8xODE4KSwgCi0JLkEobl8yNTMzKSk7Ci0gICBDTEtJTlZYNCBnMjU2MDggKC5ZKG5fMTgxNyksIAotCS5BKG5fMjUyNSkpOwotICAgT1IyWDEgZzI1NjQwICguWShuXzE3OTkpLCAKLQkuQihuXzI1NTkpLCAKLQkuQShuXzI1MjgpKTsKLSAgIEFORDJYMSBnMjU2NDUgKC5ZKG5fMTc5NSksIAotCS5CKG5fMjU1OSksIAotCS5BKG5fMjUyOCkpOwotICAgT1IyWDIgZzI1NjQ4ICguWShuXzE3OTMpLCAKLQkuQihuXzE3MDUpLCAKLQkuQShuXzI3MCkpOwotICAgT1IyWDEgZzI1NjYzICguWShuXzE3ODQpLCAKLQkuQihuXzE2NTEpLCAKLQkuQShuXzI3OSkpOwotICAgQU5EMlgxIGcyNTY3MCAoLlkobl8xNzgyKSwgCi0JLkIobl8yNTM3KSwgCi0JLkEobl8xMzU4KSk7Ci0gICBPUjJYMiBnMjU2NzQgKC5ZKG5fMTc4MCksIAotCS5CKG5fMTcwMCksIAotCS5BKG5fMjc5KSk7Ci0gICBBTkQyWDEgZzI1Njc2ICguWShuXzE3NzgpLCAKLQkuQihuXzI1MzQpLCAKLQkuQShuXzI1ODIpKTsKLSAgIE9SMlgyIGcyNTY4MCAoLlkobl8xNzc1KSwgCi0JLkIobl8yNTgwKSwgCi0JLkEobl8yNzM4KSk7Ci0gICBBTkQyWDEgZzI1NjgxICguWShuXzE3NzQpLCAKLQkuQihuXzI1ODApLCAKLQkuQShuXzI3MzgpKTsKLSAgIE9SMlgyIGcyNTY4NiAoLlkobl8xNzcwKSwgCi0JLkIobl8yNTQxKSwgCi0JLkEobl8yNzA2KSk7Ci0gICBPUjJYMSBnMjU2ODkgKC5ZKG5fMTc2NyksIAotCS5CKG5fMjU0MiksIAotCS5BKG5fMjc5NykpOwotICAgQU5EMlgxIGcyNTY5MiAoLlkobl8xNzY2KSwgCi0JLkIobl8yNTQxKSwgCi0JLkEobl8yNzA2KSk7Ci0gICBBTkQyWDEgZzI1NzI3ICguWShuXzE3NDEpLCAKLQkuQihuXzI2OCksIAotCS5BKG5fMjYzKSk7Ci0gICBPUjJYMSBnMjU3MzMgKC5ZKG5fMTczNiksIAotCS5CKG5fMjc0MCksIAotCS5BKG5fMjgwMykpOwotICAgT1IyWDEgZzI1NzQ3ICguWShuXzE3MjMpLCAKLQkuQihuXzI1NDgpLCAKLQkuQShuXzI1NDkpKTsKLSAgIEFORDJYMSBnMjU3NTEgKC5ZKG5fMTcyMiksIAotCS5CKG5fMjU1NyksIAotCS5BKG5fMjU4NSkpOwotICAgQU5EMlgxIGcyNTc1MyAoLlkobl8xNzIxKSwgCi0JLkIobl8yNTQ4KSwgCi0JLkEobl8yNTQ5KSk7Ci0gICBPUjJYMSBnMjU3NTkgKC5ZKG5fMTcxNyksIAotCS5CKG5fMjk2OSksIAotCS5BKG5fMTA0MCkpOwotICAgQU5EMlgxIGcyNTc2NCAoLlkobl8xNzE0KSwgCi0JLkIobl8yOTY5KSwgCi0JLkEobl8xMDQwKSk7Ci0gICBPUjJYMiBnMjU3NjkgKC5ZKG5fMTcxMCksIAotCS5CKG5fNDY4KSwgCi0JLkEobl8yNjM1KSk7Ci0gICBBTkQyWDEgZzI1Nzc0ICguWShuXzE3MDYpLCAKLQkuQihuXzQ2OCksIAotCS5BKG5fMjYzNSkpOwotICAgQU5EMlgxIGcyNTc3NyAoLlkobl8xNzA1KSwgCi0JLkIobl8xNTEwKSwgCi0JLkEobl8yNzA0KSk7Ci0gICBPUjJYMSBnMjU3ODIgKC5ZKG5fMTcwMyksIAotCS5CKG5fMjU2OCksIAotCS5BKG5fMjU2NykpOwotICAgQU5EMlgxIGcyNTc4NSAoLlkobl8xNzAxKSwgCi0JLkIobl8yNTY4KSwgCi0JLkEobl8yNTY3KSk7Ci0gICBBTkQyWDEgZzI1Nzg3ICguWShuXzE3MDApLCAKLQkuQihuXzI3OTUpLCAKLQkuQShuXzI3OTQpKTsKLSAgIE9SMlgxIGcyNTgwMSAoLlkobl8xNjkwKSwgCi0JLkIobl8yNTc2KSwgCi0JLkEobl8xMzM4KSk7Ci0gICBBTkQyWDEgZzI1ODA1ICguWShuXzE2ODgpLCAKLQkuQihuXzI1NzYpLCAKLQkuQShuXzEzMzgpKTsKLSAgIEFORDJYMSBnMjU4MTQgKC5ZKG5fMTY4MiksIAotCS5CKG5fMjc0MCksIAotCS5BKG5fMjgwMykpOwotICAgT1IyWDEgZzI1ODE5ICguWShuXzE2NzgpLCAKLQkuQihuXzI1NTcpLCAKLQkuQShuXzI1ODUpKTsKLSAgIENMS0lOVlgzIGcyNTgyNSAoLlkobl8xNjczKSwgCi0JLkEobl8xNjE4KSk7Ci0gICBDTEtJTlZYNCBnMjU4MjYgKC5ZKG5fMTY3MiksIAotCS5BKG5fMjUzMikpOwotICAgQ0xLSU5WWDQgZzI1ODI4ICguWShuXzE2NzEpLCAKLQkuQShuXzI1MzUpKTsKLSAgIENMS0lOVlgzIGcyNTgzMiAoLlkobl8xNjcwKSwgCi0JLkEobl8yNTQzKSk7Ci0gICBDTEtJTlZYMiBnMjU4MzQgKC5ZKG5fMTY2OSksIAotCS5BKG5fMjUzNikpOwotICAgQ0xLSU5WWDQgZzI1ODM1ICguWShuXzE2NjgpLCAKLQkuQShuXzI1NDApKTsKLSAgIENMS0lOVlgyIGcyNTg0MCAoLlkobl8xNjY3KSwgCi0JLkEobl8xNjE0KSk7Ci0gICBDTEtJTlZYNCBnMjU4NDEgKC5ZKG5fMTY2NiksIAotCS5BKG5fMjUzOSkpOwotICAgQ0xLSU5WWDEgZzI1ODQyICguWShuXzE2NjUpLCAKLQkuQShuXzI1MjcpKTsKLSAgIEFORDJYMSBnMjU4NDcgKC5ZKG5fMTY2MyksIAotCS5CKG5fMjYzKSwgCi0JLkEobl8yNjApKTsKLSAgIENMS0lOVlg0IGcyNTg0OSAoLlkobl8xNjYxKSwgCi0JLkEobl8yNTY2KSk7Ci0gICBDTEtJTlZYMiBnMjU4NTAgKC5ZKG5fMTY2MCksIAotCS5BKG5fMTQ5OSkpOwotICAgQ0xLSU5WWDIgZzI1ODUyICguWShuXzE2NTkpLCAKLQkuQShuXzI1NjApKTsKLSAgIENMS0lOVlgyIGcyNTg1NSAoLlkobl8xNjU4KSwgCi0JLkEobl8yNTgzKSk7Ci0gICBDTEtJTlZYMiBnMjU4NTkgKC5ZKG5fMTY1NyksIAotCS5BKG5fMTUxOCkpOwotICAgQ0xLSU5WWDQgZzI1ODYxICguWShuXzE2NTYpLCAKLQkuQShuXzI1NDcpKTsKLSAgIENMS0lOVlgyIGcyNTg2MiAoLlkobl8xNjU1KSwgCi0JLkEobl8yNTk0KSk7Ci0gICBDTEtJTlZYMiBnMjU4NjQgKC5ZKG5fMTY1NCksIAotCS5BKG5fMjc5MCkpOwotICAgQ0xLSU5WWDIgZzI1ODY4ICguWShuXzE2NTMpLCAKLQkuQShuXzI1NTApKTsKLSAgIENMS0lOVlgyIGcyNTg2OSAoLlkobl8xNjUyKSwgCi0JLkEobl8yNTgxKSk7Ci0gICBDTEtJTlZYMiBnMjU4NzAgKC5ZKG5fMTY1MSksIAotCS5BKG5fMjU3MCkpOwotICAgQ0xLSU5WWDEgZzI1ODcyICguWShuXzE2NTApLCAKLQkuQShuXzI1NjEpKTsKLSAgIENMS0lOVlgxIGcyNTg3MyAoLlkobl8xNjQ5KSwgCi0JLkEobl8yNzg5KSk7Ci0gICBDTEtJTlZYMiBnMjU4NzQgKC5ZKG5fMTY0OCksIAotCS5BKG5fMjU1OCkpOwotICAgQ0xLSU5WWDIgZzI1ODc2ICguWShuXzE2NDcpLCAKLQkuQShuXzI1NzEpKTsKLSAgIENMS0lOVlgyIGcyNTg3OCAoLlkobl8xNjQ2KSwgCi0JLkEobl8yNzkzKSk7Ci0gICBDTEtJTlZYNCBnMjU4NzkgKC5ZKG5fMTY0NSksIAotCS5BKG5fMTUxMSkpOwotICAgQ0xLSU5WWDIgZzI1ODgxICguWShuXzE2NDQpLCAKLQkuQShuXzI1NTIpKTsKLSAgIENMS0lOVlg0IGcyNTg4MiAoLlkobl8xNjQzKSwgCi0JLkEobl8yNTkzKSk7Ci0gICBDTEtJTlZYMiBnMjU4ODMgKC5ZKG5fMTY0MiksIAotCS5BKG5fMjU2OSkpOwotICAgQ0xLSU5WWDIgZzI1ODg1ICguWShuXzE2NDEpLCAKLQkuQShuXzI1NTYpKTsKLSAgIENMS0lOVlg0IGcyNTg4NiAoLlkobl8xNjQwKSwgCi0JLkEobl8yNzk4KSk7Ci0gICBDTEtJTlZYMiBnMjU4ODcgKC5ZKG5fMTYzOSksIAotCS5BKG5fMjU1MSkpOwotICAgQ0xLSU5WWDIgZzI1ODkwICguWShuXzE2MzgpLCAKLQkuQShuXzE1MDMpKTsKLSAgIENMS0lOVlgzIGcyNTg5MiAoLlkobl8xNjM3KSwgCi0JLkEobl8yNzg4KSk7Ci0gICBDTEtJTlZYMyBnMjU4OTYgKC5ZKG5fMTYzNiksIAotCS5BKG5fMTUxNikpOwotICAgQ0xLSU5WWDQgZzI1ODk3ICguWShuXzE2MzUpLCAKLQkuQShuXzI1NzcpKTsKLSAgIENMS0lOVlg0IGcyNTg5OSAoLlkobl8xNjM0KSwgCi0JLkEobl8yNTg2KSk7Ci0gICBDTEtJTlZYMiBnMjU5MDEgKC5ZKG5fMTYzMyksIAotCS5BKG5fMjc5MSkpOwotICAgQU5EMlgyIGcyNTkyMCAoLlkobl8xNjE4KSwgCi0JLkIobl8xOTMpLCAKLQkuQShuXzE1NykpOwotICAgQU5EMlgyIGcyNTkyNCAoLlkobl8xNjE0KSwgCi0JLkIobl8yMjcpLCAKLQkuQShuXzE4NSkpOwotICAgT1IyWDIgZzI1OTYyICguWShuXzE1OTMpLCAKLQkuQihuXzYyKSwgCi0JLkEobl8yNjYzKSk7Ci0gICBBTkQyWDEgZzI1OTYzICguWShuXzE1OTIpLCAKLQkuQihuXzYyKSwgCi0JLkEobl8yNjYzKSk7Ci0gICBBTkQyWDEgZzI2MDEwICguWShuXzE1NTEpLCAKLQkuQihuXzE1MCksIAotCS5BKG5fMTg1KSk7Ci0gICBDTEtJTlZYMiBnMjYwNzcgKC5ZKG5fMTUzMCksIAotCS5BKG5fMTQ2MCkpOwotICAgQ0xLSU5WWDIgZzI2MDg0ICguWShuXzE1MjkpLCAKLQkuQShuXzE0NjQpKTsKLSAgIENMS0lOVlgyIGcyNjA4OSAoLlkobl8xNTI4KSwgCi0JLkEobl8xNDYzKSk7Ci0gICBDTEtJTlZYMiBnMjYwOTMgKC5ZKG5fMTUyNyksIAotCS5BKG5fMTM5MSkpOwotICAgQ0xLSU5WWDMgZzI2MDk0ICguWShuXzE1MjYpLCAKLQkuQShuXzI4MDApKTsKLSAgIENMS0lOVlgzIGcyNjA5OCAoLlkobl8xNTI1KSwgCi0JLkEobl8xNDIzKSk7Ci0gICBDTEtJTlZYMiBnMjYxMDAgKC5ZKG5fMTUyNCksIAotCS5BKG5fMjU3OCkpOwotICAgQU5EMlgyIGcyNjEwNiAoLlkobl8xNTE4KSwgCi0JLkIobl8yMTApLCAKLQkuQShuXzE0MDkpKTsKLSAgIEFORDJYMiBnMjYxMDkgKC5ZKG5fMTUxNiksIAotCS5CKG5fMjExKSwgCi0JLkEobl83KSk7Ci0gICBBTkQyWDIgZzI2MTEyICguWShuXzE1MTQpLCAKLQkuQihuXzIwNCksIAotCS5BKG5fODgpKTsKLSAgIEFORDJYMiBnMjYxMTcgKC5ZKG5fMTUxMSksIAotCS5CKG5fMjAwKSwgCi0JLkEobl8xMzc0KSk7Ci0gICBBTkQyWDEgZzI2MTE4ICguWShuXzE1MTApLCAKLQkuQihuXzE5OCksIAotCS5BKG5fMTY3KSk7Ci0gICBBTkQyWDIgZzI2MTI1ICguWShuXzE1MDMpLCAKLQkuQihuXzE5MiksIAotCS5BKG5fNSkpOwotICAgQU5EMlgyIGcyNjEyOSAoLlkobl8xNDk5KSwgCi0JLkIobl8xODgpLCAKLQkuQShuXzE0OSkpOwotICAgQU5EMlgyIGcyNjEzMiAoLlkobl8xNDk2KSwgCi0JLkIobl8xODYpLCAKLQkuQShuXzApKTsKLSAgIEFORDJYMSBnMjYxNDEgKC5ZKG5fMTQ5MyksIAotCS5CKG5fNSksIAotCS5BKG5fMTUzKSk7Ci0gICBBTkQyWDEgZzI2MTQ4ICguWShuXzE0OTEpLCAKLQkuQihuXzcpLCAKLQkuQShuXzE3NykpOwotICAgQU5EMlgxIGcyNjE1MiAoLlkobl8xNDg5KSwgCi0JLkIobl8wKSwgCi0JLkEobl8xODIpKTsKLSAgIEFORDJYMSBnMjYxNjUgKC5ZKG5fMTQ4NiksIAotCS5CKG5fMTY3KSwgCi0JLkEobl8xNjkpKTsKLSAgIEFORDJYMSBnMjYxNzUgKC5ZKG5fMTQ4MiksIAotCS5CKG5fMTcyKSwgCi0JLkEobl8xNjUpKTsKLSAgIEFORDJYMSBnMjYxODAgKC5ZKG5fMTQ4MCksIAotCS5CKG5fODgpLCAKLQkuQShuXzE3MykpOwotICAgT1IyWDIgZzI2MTkxICguWShuXzE0NzcpLCAKLQkuQihuXzEzODUpLCAKLQkuQShuXzE3OCkpOwotICAgQU5EMlgxIGcyNjE5NSAoLlkobl8xNDc2KSwgCi0JLkIobl8xNTgpLCAKLQkuQShuXzE1NykpOwotICAgQU5EMlgxIGcyNjIwMiAoLlkobl8xNDc1KSwgCi0JLkIobl8xMzc0KSwgCi0JLkEobl8xNzApKTsKLSAgIEFORDJYMSBnMjYyMTAgKC5ZKG5fMTQ3MiksIAotCS5CKG5fMTQwOSksIAotCS5BKG5fMTc2KSk7Ci0gICBBTkQyWDEgZzI2MjEyICguWShuXzE0NzEpLCAKLQkuQihuXzE1MSksIAotCS5BKG5fMTQ5KSk7Ci0gICBBTkQyWDIgZzI2MjIxICguWShuXzE0NjQpLCAKLQkuQihuXzEzNzYpLCAKLQkuQShuXzE3MSkpOwotICAgQU5EMlgyIGcyNjIyMiAoLlkobl8xNDYzKSwgCi0JLkIobl8xNjMpLCAKLQkuQShuXzEzNTgpKTsKLSAgIEFORDJYMiBnMjYyMjUgKC5ZKG5fMTQ2MCksIAotCS5CKG5fMTUyKSwgCi0JLkEobl82MikpOwotICAgQU5EMlgxIGcyNjI3MSAoLlkobl8xNDI1KSwgCi0JLkIobl8yNjgwKSwgCi0JLkEobl81NTYpKTsKLSAgIEFORDJYMiBnMjYyNzQgKC5ZKG5fMTQyMyksIAotCS5CKG5fOTg1KSwgCi0JLkEobl8xMjE2KSk7Ci0gICBPUjJYMSBnMjYyODQgKC5ZKG5fMTQxNSksIAotCS5CKG5fMjcwOCksIAotCS5BKG5fMjYwNikpOwotICAgQU5EMlgxIGcyNjI4NyAoLlkobl8xNDE0KSwgCi0JLkIobl8yNzA4KSwgCi0JLkEobl8yNjA2KSk7Ci0gICBPUjJYMSBnMjYyODggKC5ZKG5fMTQxMyksIAotCS5CKG5fMjgxOCksIAotCS5BKG5fNTQzKSk7Ci0gICBPUjJYMSBnMjYyOTcgKC5ZKG5fMTQwOSksIAotCS5CKG5fMjYxMCksIAotCS5BKG5fMjYxMSkpOwotICAgQU5EMlgxIGcyNjMxMSAoLlkobl8xMzk5KSwgCi0JLkIobl8yNjIxKSwgCi0JLkEobl8yNjk5KSk7Ci0gICBPUjJYMSBnMjYzMTMgKC5ZKG5fMTM5NyksIAotCS5CKG5fODA2KSwgCi0JLkEobl8yNjIyKSk7Ci0gICBBTkQyWDEgZzI2MzE2ICguWShuXzEzOTUpLCAKLQkuQihuXzgwNiksIAotCS5BKG5fMjYyMikpOwotICAgT1IyWDEgZzI2MzE3ICguWShuXzEzOTQpLCAKLQkuQihuXzI2MjEpLCAKLQkuQShuXzI2OTkpKTsKLSAgIE9SMlgxIGcyNjMxOSAoLlkobl8xMzkyKSwgCi0JLkIobl8yNjI0KSwgCi0JLkEobl81MTkpKTsKLSAgIEFORDJYMiBnMjYzMjEgKC5ZKG5fMTM5MSksIAotCS5CKG5fMjcyMiksIAotCS5BKG5fMjYyNSkpOwotICAgQU5EMlgxIGcyNjMyNCAoLlkobl8xMzg5KSwgCi0JLkIobl8yNjI4KSwgCi0JLkEobl8yNjI2KSk7Ci0gICBPUjJYMSBnMjYzMjUgKC5ZKG5fMTM4OCksIAotCS5CKG5fMjYyOCksIAotCS5BKG5fMjYyNikpOwotICAgQU5EMlgxIGcyNjMyNyAoLlkobl8xMzg3KSwgCi0JLkIobl8yNjI0KSwgCi0JLkEobl81MTkpKTsKLSAgIEFORDJYMSBnMjYzMzEgKC5ZKG5fMTM4NSksIAotCS5CKG5fNzMzKSwgCi0JLkEobl8yNjAxKSk7Ci0gICBPUjJYMSBnMjYzNDIgKC5ZKG5fMTM3OCksIAotCS5CKG5fMjYzOSksIAotCS5BKG5fMjYzNikpOwotICAgQ0xLSU5WWDEgZzI2MzQ1ICguWShuXzEzNzcpLCAKLQkuQShuXzEzNzYpKTsKLSAgIE9SMlgyIGcyNjM0NiAoLlkobl8xMzc2KSwgCi0JLkIobl8yNzA5KSwgCi0JLkEobl8yNjQwKSk7Ci0gICBBTkQyWDEgZzI2MzQ4ICguWShuXzEzNzUpLCAKLQkuQihuXzI2MzkpLCAKLQkuQShuXzI2MzYpKTsKLSAgIE9SMlgxIGcyNjM0OSAoLlkobl8xMzc0KSwgCi0JLkIobl8yNjQxKSwgCi0JLkEobl8yNjQyKSk7Ci0gICBBTkQyWDEgZzI2MzUxICguWShuXzEzNzMpLCAKLQkuQihuXzI2NTIpLCAKLQkuQShuXzI3MTcpKTsKLSAgIE9SMlgxIGcyNjM2MSAoLlkobl8xMzY3KSwgCi0JLkIobl8yNjYyKSwgCi0JLkEobl81NTMpKTsKLSAgIE9SMlgxIGcyNjM2MyAoLlkobl8xMzY2KSwgCi0JLkIobl8yNjg2KSwgCi0JLkEobl8yNzExKSk7Ci0gICBPUjJYMSBnMjYzNjQgKC5ZKG5fMTM2NSksIAotCS5CKG5fMjY0OSksIAotCS5BKG5fNzE5KSk7Ci0gICBBTkQyWDEgZzI2MzY2ICguWShuXzEzNjQpLCAKLQkuQihuXzI2NDkpLCAKLQkuQShuXzcxOSkpOwotICAgT1IyWDEgZzI2MzY3ICguWShuXzEzNjMpLCAKLQkuQihuXzI2NTIpLCAKLQkuQShuXzI3MTcpKTsKLSAgIE9SMlgyIGcyNjM3NyAoLlkobl8xMzU4KSwgCi0JLkIobl8yNjU3KSwgCi0JLkEobl8yNzEwKSk7Ci0gICBBTkQyWDEgZzI2MzkyICguWShuXzEzNDYpLCAKLQkuQihuXzI2NjIpLCAKLQkuQShuXzU1MykpOwotICAgT1IyWDEgZzI2MzkzICguWShuXzEzNDUpLCAKLQkuQihuXzI2NjkpLCAKLQkuQShuXzI2NjYpKTsKLSAgIEFORDJYMSBnMjYzOTUgKC5ZKG5fMTM0NCksIAotCS5CKG5fMjY2OSksIAotCS5BKG5fMjY2NikpOwotICAgQU5EMlgxIGcyNjM5NyAoLlkobl8xMzQzKSwgCi0JLkIobl8yNjc0KSwgCi0JLkEobl8yNzAyKSk7Ci0gICBBTkQyWDIgZzI2Mzk5ICguWShuXzEzNDIpLCAKLQkuQihuXzI2NzYpLCAKLQkuQShuXzI3MTkpKTsKLSAgIE9SMlgxIGcyNjQwNCAoLlkobl8xMzM5KSwgCi0JLkIobl8yNjc0KSwgCi0JLkEobl8yNzAyKSk7Ci0gICBBTkQyWDEgZzI2NDA1ICguWShuXzEzMzgpLCAKLQkuQihuXzEyOTkpLCAKLQkuQShuXzExOTYpKTsKLSAgIE9SMlgxIGcyNjQxNCAoLlkobl8xMzMxKSwgCi0JLkIobl8yNjgwKSwgCi0JLkEobl81NTYpKTsKLSAgIE9SMlgxIGcyNjQyMSAoLlkobl8xMzI4KSwgCi0JLkIobl8yNjU1KSwgCi0JLkEobl81ODcpKTsKLSAgIEFORDJYMSBnMjY0MjUgKC5ZKG5fMTMyNSksIAotCS5CKG5fMjY4NiksIAotCS5BKG5fMjcxMSkpOwotICAgT1IyWDEgZzI2NDI2ICguWShuXzEzMjQpLCAKLQkuQihuXzI2OTYpLCAKLQkuQShuXzUyOCkpOwotICAgQU5EMlgxIGcyNjQyOCAoLlkobl8xMzIzKSwgCi0JLkIobl8yNjk2KSwgCi0JLkEobl81MjgpKTsKLSAgIEFORDJYMSBnMjY0MzIgKC5ZKG5fMTMyMSksIAotCS5CKG5fMjY1NSksIAotCS5BKG5fNTg3KSk7Ci0gICBBTkQyWDEgZzI2NDM3ICguWShuXzEzMTkpLCAKLQkuQihuXzI4MTgpLCAKLQkuQShuXzU0MykpOwotICAgQ0xLSU5WWDIgZzI2NDQ4ICguWShuXzEzMTEpLCAKLQkuQShuXzEwNjIpKTsKLSAgIENMS0lOVlg0IGcyNjQ2MiAoLlkobl8xMzA0KSwgCi0JLkEobl8yNjAwKSk7Ci0gICBDTEtJTlZYNCBnMjY0NjYgKC5ZKG5fMTMwMSksIAotCS5BKG5fMjYwMikpOwotICAgQ0xLSU5WWDIgZzI2NDY4ICguWShuXzEyOTkpLCAKLQkuQShuXzI2MDMpKTsKLSAgIENMS0lOVlgzIGcyNjQ3MiAoLlkobl8xMjk2KSwgCi0JLkEobl8yNjA1KSk7Ci0gICBDTEtJTlZYMiBnMjY0NzcgKC5ZKG5fMTI5MiksIAotCS5BKG5fMjYwOCkpOwotICAgQ0xLSU5WWDIgZzI2NDc5ICguWShuXzEyOTApLCAKLQkuQShuXzI2MDkpKTsKLSAgIENMS0lOVlgyIGcyNjQ4NSAoLlkobl8xMjg2KSwgCi0JLkEobl8yNjEyKSk7Ci0gICBDTEtJTlZYNCBnMjY0ODggKC5ZKG5fMTI4MyksIAotCS5BKG5fMjYxNCkpOwotICAgQ0xLSU5WWDQgZzI2NDkyICguWShuXzEyODApLCAKLQkuQShuXzI2MTYpKTsKLSAgIENMS0lOVlg0IGcyNjQ5NCAoLlkobl8xMjc4KSwgCi0JLkEobl8yNjE3KSk7Ci0gICBDTEtJTlZYMyBnMjY0OTYgKC5ZKG5fMTI3NiksIAotCS5BKG5fMjYxOCkpOwotICAgQ0xLSU5WWDMgZzI2NDk4ICguWShuXzEyNzQpLCAKLQkuQShuXzI2MTkpKTsKLSAgIENMS0lOVlgyIGcyNjUwOSAoLlkobl8xMjY1KSwgCi0JLkEobl8yNjI3KSk7Ci0gICBDTEtJTlZYMiBnMjY1MTIgKC5ZKG5fMTI2MiksIAotCS5BKG5fMjYyOSkpOwotICAgQ0xLSU5WWDIgZzI2NTE2ICguWShuXzEyNTkpLCAKLQkuQShuXzI2MzEpKTsKLSAgIENMS0lOVlgyIGcyNjUxOCAoLlkobl8xMjU3KSwgCi0JLkEobl8yNjMyKSk7Ci0gICBDTEtJTlZYMyBnMjY1MjIgKC5ZKG5fMTI1NCksIAotCS5BKG5fMjYzNCkpOwotICAgQ0xLSU5WWDIgZzI2NTI4ICguWShuXzEyNDkpLCAKLQkuQShuXzI2MzgpKTsKLSAgIENMS0lOVlg0IGcyNjU0MyAoLlkobl8xMjQwKSwgCi0JLkEobl8yNjQ2KSk7Ci0gICBDTEtJTlZYNCBnMjY1NDUgKC5ZKG5fMTIzOCksIAotCS5BKG5fMjY0NykpOwotICAgQ0xLSU5WWDIgZzI2NTUwICguWShuXzEyMzQpLCAKLQkuQShuXzI2NTApKTsKLSAgIENMS0lOVlg0IGcyNjU2MCAoLlkobl8xMjI3KSwgCi0JLkEobl8yNjU2KSk7Ci0gICBDTEtJTlZYNCBnMjY1NjQgKC5ZKG5fMTIyNCksIAotCS5BKG5fMjY1OCkpOwotICAgQ0xLSU5WWDIgZzI2NTcwICguWShuXzEyMjApLCAKLQkuQShuXzI2NjEpKTsKLSAgIENMS0lOVlgyIGcyNjU3NCAoLlkobl8xMjE2KSwgCi0JLkEobl8yNjY0KSk7Ci0gICBDTEtJTlZYMiBnMjY1ODEgKC5ZKG5fMTIxMSksIAotCS5BKG5fMjY2OCkpOwotICAgQ0xLSU5WWDQgZzI2NTg2ICguWShuXzEyMDcpLCAKLQkuQShuXzI2NzEpKTsKLSAgIENMS0lOVlgyIGcyNjU5MyAoLlkobl8xMjAyKSwgCi0JLkEobl8yNjc1KSk7Ci0gICBDTEtJTlZYMyBnMjY1OTcgKC5ZKG5fMTE5OSksIAotCS5BKG5fMjY3NykpOwotICAgQ0xLSU5WWDIgZzI2NjAxICguWShuXzExOTYpLCAKLQkuQShuXzI2NzkpKTsKLSAgIENMS0lOVlg0IGcyNjYxMSAoLlkobl8xMTkwKSwgCi0JLkEobl8yNjg0KSk7Ci0gICBDTEtJTlZYNCBnMjY2MTYgKC5ZKG5fMTE4NiksIAotCS5BKG5fMjY4NykpOwotICAgQ0xLSU5WWDIgZzI2NjIwICguWShuXzExODMpLCAKLQkuQShuXzI2ODkpKTsKLSAgIENMS0lOVlgyIGcyNjYyNiAoLlkobl8xMTc5KSwgCi0JLkEobl8yNjkyKSk7Ci0gICBDTEtJTlZYMiBnMjY2MjggKC5ZKG5fMTE3NyksIAotCS5BKG5fMjY5MykpOwotICAgQ0xLSU5WWDMgZzI2NjMwICguWShuXzExNzUpLCAKLQkuQShuXzI2OTQpKTsKLSAgIENMS0lOVlg0IGcyNjYzMiAoLlkobl8xMTczKSwgCi0JLkEobl8yNjk1KSk7Ci0gICBDTEtJTlZYNCBnMjY2MzcgKC5ZKG5fMTE2OSksIAotCS5BKG5fMjY5OCkpOwotICAgQ0xLSU5WWDQgZzI2NjQxICguWShuXzExNjYpLCAKLQkuQShuXzI3MDApKTsKLSAgIENMS0lOVlgzIGcyNjY0MyAoLlkobl8xMTY0KSwgCi0JLkEobl8yNzAxKSk7Ci0gICBPUjJYMSBnMjY2OTUgKC5ZKG5fMTEzOCksIAotCS5CKG5fNzQ5KSwgCi0JLkEobl8yNzIwKSk7Ci0gICBBTkQyWDEgZzI2ODMyICguWShuXzEwNjgpLCAKLQkuQihuXzc0OSksIAotCS5BKG5fMjcyMCkpOwotICAgQU5EMlgyIGcyNjg0NyAoLlkobl8xMDYyKSwgCi0JLkIobl8yNzIxKSwgCi0JLkEobl84NzEpKTsKLSAgIEFORDJYMSBnMjY4NTUgKC5ZKG5fMTA1NSksIAotCS5CKG5fMjcxMiksIAotCS5BKG5fMykpOwotICAgQ0xLSU5WWDIgZzI2ODcyICguWShuXzEwNDQpLCAKLQkuQShuXzI3MDQpKTsKLSAgIENMS0lOVlg0IGcyNjg3NCAoLlkobl8xMDQyKSwgCi0JLkEobl8yNzA1KSk7Ci0gICBDTEtJTlZYMiBnMjY4NzYgKC5ZKG5fMTA0MCksIAotCS5BKG5fMjcwNikpOwotICAgQ0xLSU5WWDIgZzI2ODc4ICguWShuXzEwMzkpLCAKLQkuQShuXzI3MDcpKTsKLSAgIENMS0lOVlgyIGcyNjk4MSAoLlkobl85ODUpLCAKLQkuQShuXzI3MTMpKTsKLSAgIENMS0lOVlgyIGcyNzAyOSAoLlkobl85NjApLCAKLQkuQShuXzI3MTYpKTsKLSAgIENMS0lOVlgzIGcyNzEzNiAoLlkobl85MDApLCAKLQkuQShuXzg5OSkpOwotICAgQU5EMlgyIGcyNzEzNyAoLlkobl84OTkpLCAKLQkuQihuXzcxOSksIAotCS5BKEJbMTFdKSk7Ci0gICBPUjJYMiBnMjcxNTYgKC5ZKG5fODgyKSwgCi0JLkIobl85KSwgCi0JLkEobl80OTkpKTsKLSAgIE9SMlgyIGcyNzE2NiAoLlkobl84NzQpLCAKLQkuQihuXzI5MzEpLCAKLQkuQShuXzQ5OSkpOwotICAgQU5EMlgxIGcyNzE2OSAoLlkobl84NzEpLCAKLQkuQihuXzc1MyksIAotCS5BKEJbM10pKTsKLSAgIENMS0lOVlgyIGcyNzE3NSAoLlkobl84NjUpLCAKLQkuQShuXzg2NCkpOwotICAgQU5EMlgyIGcyNzE3NiAoLlkobl84NjQpLCAKLQkuQihuXzc0OSksIAotCS5BKEJbN10pKTsKLSAgIE9SMlgyIGcyNzE4NiAoLlkobl84NTYpLCAKLQkuQihuXzEwKSwgCi0JLkEobl80OTkpKTsKLSAgIENMS0lOVlgzIGcyNzIxMyAoLlkobl84MzMpLCAKLQkuQShuXzgzMikpOwotICAgQU5EMlgyIGcyNzIxNCAoLlkobl84MzIpLCAKLQkuQihuXzc2NyksIAotCS5BKEJbNV0pKTsKLSAgIE9SMlgxIGcyNzI0MyAoLlkobl84MDYpLCAKLQkuQihuXzczMyksIAotCS5BKG5fNDk2KSk7Ci0gICBDTEtJTlZYMyBnMjcyNjAgKC5ZKG5fNzkxKSwgCi0JLkEobl83OTApKTsKLSAgIEFORDJYMiBnMjcyNjEgKC5ZKG5fNzkwKSwgCi0JLkIobl82ODcpLCAKLQkuQShCWzldKSk7Ci0gICBBTkQyWDIgZzI3Mjg3ICguWShuXzc3MCksIAotCS5CKG5fNjczKSwgCi0JLkEoQlsxNV0pKTsKLSAgIENMS0lOVlgyIGcyNzI5MCAoLlkobl83NjcpLCAKLQkuQShuXzEyKSk7Ci0gICBDTEtJTlZYMiBnMjczMDUgKC5ZKG5fNzUzKSwgCi0JLkEobl8xMSkpOwotICAgT1IyWDIgZzI3MzEwICguWShuXzc0OSksIAotCS5CKG5fMjk1MiksIAotCS5BKG5fNTIwKSk7Ci0gICBDTEtJTlZYMiBnMjczMjYgKC5ZKG5fNzMzKSwgCi0JLkEobl83MzIpKTsKLSAgIE9SMlgyIGcyNzMyNyAoLlkobl83MzIpLCAKLQkuQihuXzI5NTgpLCAKLQkuQShuXzUyMCkpOwotICAgT1IyWDIgZzI3MzQwICguWShuXzcxOSksIAotCS5CKG5fMjk1OSksIAotCS5BKG5fNTIwKSk7Ci0gICBDTEtJTlZYMiBnMjczNzEgKC5ZKG5fNjg3KSwgCi0JLkEobl82ODgpKTsKLSAgIEFORDJYMiBnMjczNzIgKC5ZKG5fNjg4KSwgCi0JLkIobl82MDcpLCAKLQkuQShBWzBdKSk7Ci0gICBDTEtJTlZYMyBnMjczODYgKC5ZKG5fNjczKSwgCi0JLkEobl82NzIpKTsKLSAgIEFORDJYMiBnMjczODcgKC5ZKG5fNjcyKSwgCi0JLkIobl8yOTUzKSwgCi0JLkEoQVswXSkpOwotICAgQ0xLSU5WWDIgZzI3NDczICguWShuXzYwNyksIAotCS5BKG5fMjk1MSkpOwotICAgQ0xLSU5WWDggZzI3NDc2ICguWShuXzYwNSksIAotCS5BKG5fMjk1MykpOwotICAgQ0xLSU5WWDIgZzI3NDk0ICguWShuXzU5MSksIAotCS5BKG5fNTkwKSk7Ci0gICBBTkQyWDIgZzI3NDk1ICguWShuXzU5MCksIAotCS5CKEJbMTVdKSwgCi0JLkEoQVs1XSkpOwotICAgQU5EMlgxIGcyNzQ5OCAoLlkobl81ODcpLCAKLQkuQihCWzE1XSksIAotCS5BKEFbN10pKTsKLSAgIEFORDJYMiBnMjc1MDMgKC5ZKG5fNTgzKSwgCi0JLkIoQlsxNV0pLCAKLQkuQShBWzJdKSk7Ci0gICBBTkQyWDEgZzI3NTE4ICguWShuXzU2OSksIAotCS5CKEJbMTVdKSwgCi0JLkEoQVs4XSkpOwotICAgQU5EMlgyIGcyNzUyMiAoLlkobl81NjYpLCAKLQkuQihCWzE1XSksIAotCS5BKEFbMTJdKSk7Ci0gICBDTEtJTlZYMyBnMjc1MjUgKC5ZKG5fNTYzKSwgCi0JLkEobl81NjIpKTsKLSAgIEFORDJYMiBnMjc1MjYgKC5ZKG5fNTYyKSwgCi0JLkIoQlsxNV0pLCAKLQkuQShBWzEzXSkpOwotICAgQU5EMlgxIGcyNzUyOCAoLlkobl81NjEpLCAKLQkuQihCWzE1XSksIAotCS5BKEFbMV0pKTsKLSAgIEFORDJYMSBnMjc1MzMgKC5ZKG5fNTU2KSwgCi0JLkIoQlsxNV0pLCAKLQkuQShBWzZdKSk7Ci0gICBDTEtJTlZYMiBnMjc1MzQgKC5ZKG5fNTU1KSwgCi0JLkEobl81NTQpKTsKLSAgIEFORDJYMiBnMjc1MzUgKC5ZKG5fNTU0KSwgCi0JLkIoQlsxNV0pLCAKLQkuQShBWzldKSk7Ci0gICBBTkQyWDEgZzI3NTM2ICguWShuXzU1MyksIAotCS5CKEJbMTVdKSwgCi0JLkEoQVsxMV0pKTsKLSAgIEFORDJYMiBnMjc1NDAgKC5ZKG5fNTUwKSwgCi0JLkIoQlsxNV0pLCAKLQkuQShBWzEwXSkpOwotICAgQU5EMlgyIGcyNzU0MiAoLlkoWlswXSksIAotCS5CKEJbMF0pLCAKLQkuQShBWzBdKSk7Ci0gICBDTEtJTlZYNCBnMjc1NDMgKC5ZKG5fNTQ3KSwgCi0JLkEobl81NDgpKTsKLSAgIEFORDJYMiBnMjc1NDQgKC5ZKG5fNTQ4KSwgCi0JLkIoQlsxXSksIAotCS5BKG5fNTE1KSk7Ci0gICBDTEtJTlZYMiBnMjc1NDggKC5ZKG5fNTQzKSwgCi0JLkEobl81NDIpKTsKLSAgIEFORDJYMiBnMjc1NDkgKC5ZKG5fNTQyKSwgCi0JLkIoQlsxNV0pLCAKLQkuQShBWzE0XSkpOwotICAgQU5EMlgyIGcyNzU1MyAoLlkobl81MzkpLCAKLQkuQihCWzE1XSksIAotCS5BKEFbM10pKTsKLSAgIEFORDJYMiBnMjc1NTcgKC5ZKG5fNTM2KSwgCi0JLkIoQlsxNV0pLCAKLQkuQShuXzQ5OSkpOwotICAgQU5EMlgxIGcyNzU2MSAoLlkobl81MzMpLCAKLQkuQihCWzE1XSksIAotCS5BKEFbNF0pKTsKLSAgIE9SMlgxIGcyNzU2NiAoLlkobl81MjgpLCAKLQkuQihuXzUyMiksIAotCS5BKG5fNTIwKSk7Ci0gICBDTEtJTlZYOCBnMjc1NjcgKC5ZKG5fNTI3KSwgCi0JLkEoQVsxNF0pKTsKLSAgIENMS0lOVlgyIGcyNzU2OCAoLlkobl81MjYpLCAKLQkuQShCWzRdKSk7Ci0gICBDTEtJTlZYOCBnMjc1NjkgKC5ZKG5fNTI1KSwgCi0JLkEoQVsxMF0pKTsKLSAgIENMS0lOVlgyIGcyNzU3MCAoLlkobl81MjQpLCAKLQkuQShCWzhdKSk7Ci0gICBDTEtJTlZYOCBnMjc1NzEgKC5ZKG5fNTIzKSwgCi0JLkEoQls1XSkpOwotICAgQ0xLSU5WWDggZzI3NTcyICguWShuXzUyMiksIAotCS5BKEJbMTVdKSk7Ci0gICBDTEtJTlZYOCBnMjc1NzMgKC5ZKG5fNTIxKSwgCi0JLkEoQVsxM10pKTsKLSAgIENMS0lOVlg0IGcyNzU3NCAoLlkobl81MjApLCAKLQkuQShBWzBdKSk7Ci0gICBDTEtJTlZYOCBnMjc1NzUgKC5ZKG5fNTE5KSwgCi0JLkEoQlszXSkpOwotICAgSU5WWDYgZzI3NTc2ICguWShuXzUxOCksIAotCS5BKEFbNl0pKTsKLSAgIENMS0lOVlgyIGcyNzU3NyAoLlkobl81MTcpLCAKLQkuQShCWzZdKSk7Ci0gICBDTEtJTlZYOCBnMjc1NzggKC5ZKG5fNTE2KSwgCi0JLkEoQlsxMV0pKTsKLSAgIENMS0lOVlg0IGcyNzU3OSAoLlkobl81MTUpLCAKLQkuQShCWzBdKSk7Ci0gICBJTlZYNiBnMjc1ODAgKC5ZKG5fNTE0KSwgCi0JLkEoQVs0XSkpOwotICAgQ0xLSU5WWDggZzI3NTgxICguWShuXzUxMyksIAotCS5BKEFbMTFdKSk7Ci0gICBDTEtJTlZYOCBnMjc1ODIgKC5ZKG5fNTEyKSwgCi0JLkEoQls5XSkpOwotICAgQ0xLSU5WWDIgZzI3NTgzICguWShuXzUxMSksIAotCS5BKEJbMTJdKSk7Ci0gICBJTlZYNiBnMjc1ODQgKC5ZKG5fNTEwKSwgCi0JLkEoQVs1XSkpOwotICAgSU5WWDYgZzI3NTg1ICguWShuXzUwOSksIAotCS5BKEFbOF0pKTsKLSAgIENMS0lOVlg4IGcyNzU4NiAoLlkobl81MDgpLCAKLQkuQShCWzFdKSk7Ci0gICBDTEtJTlZYMiBnMjc1ODcgKC5ZKG5fNTA3KSwgCi0JLkEoQlsxMF0pKTsKLSAgIElOVlg2IGcyNzU4OCAoLlkobl81MDYpLCAKLQkuQShBWzJdKSk7Ci0gICBJTlZYNiBnMjc1ODkgKC5ZKG5fNTA1KSwgCi0JLkEoQVsxXSkpOwotICAgQ0xLSU5WWDIgZzI3NTkwICguWShuXzUwNCksIAotCS5BKEJbMTRdKSk7Ci0gICBJTlZYNiBnMjc1OTEgKC5ZKG5fNTAzKSwgCi0JLkEoQVs3XSkpOwotICAgQ0xLSU5WWDIgZzI3NTkyICguWShuXzUwMiksIAotCS5BKEJbMl0pKTsKLSAgIElOVlg2IGcyNzU5MyAoLlkobl81MDEpLCAKLQkuQShBWzNdKSk7Ci0gICBDTEtJTlZYMyBnMjc1OTQgKC5ZKG5fNTAwKSwgCi0JLkEoQVs5XSkpOwotICAgSU5WWDYgZzI3NTk1ICguWShuXzQ5OSksIAotCS5BKEFbMTVdKSk7Ci0gICBDTEtJTlZYOCBnMjc1OTYgKC5ZKG5fNDk4KSwgCi0JLkEoQVsxMl0pKTsKLSAgIENMS0lOVlg4IGcyNzU5NyAoLlkobl80OTcpLCAKLQkuQShCWzddKSk7Ci0gICBDTEtJTlZYOCBnMjc1OTggKC5ZKG5fNDk2KSwgCi0JLkEoQlsxM10pKTsKLSAgIE5BTkQyWDggZzI3NjAxICguWShuXzQ5MiksIAotCS5CKG5fNDI1KSwgCi0JLkEobl80MTgpKTsKLSAgIE5BTkQyQlg0IGcyNzYxOCAoLlkobl80NzUpLCAKLQkuQihuXzE3ODQpLCAKLQkuQU4obl8xNzAwKSk7Ci0gICBOQU5EMlg4IGcyNzYyNSAoLlkobl80NjgpLCAKLQkuQihuXzIwMyksIAotCS5BKG5fMTcyKSk7Ci0gICBOT1IyQlg0IGcyNzYzMyAoLlkobl80NjApLCAKLQkuQihuXzIzMjEpLCAKLQkuQU4obl8yMzIyKSk7Ci0gICBOQU5EMkJYNCBnMjc2MzUgKC5ZKG5fNDU4KSwgCi0JLkIobl8yMzE3KSwgCi0JLkFOKG5fMjMxNikpOwotICAgTk9SMkJYNCBnMjc2MzggKC5ZKG5fNDU1KSwgCi0JLkIobl8yMzA4KSwgCi0JLkFOKG5fMjMwOSkpOwotICAgTkFORDJCWDQgZzI3NjQ1ICguWShuXzQ0OCksIAotCS5CKG5fMjI5MyksIAotCS5BTihuXzIyOTQpKTsKLSAgIE5PUjJCWDQgZzI3NjYyICguWShuXzQzMSksIAotCS5CKG5fMjQxNSksIAotCS5BTihuXzI0MTYpKTsKLSAgIE5PUjJCWDQgZzI3NjYzICguWShuXzQzMCksIAotCS5CKG5fMjQxNiksIAotCS5BTihuXzI0MTUpKTsKLSAgIE5BTkQyQlg0IGcyNzY2OCAoLlkobl80MjUpLCAKLQkuQihuXzQyMCksIAotCS5BTihuXzIzODEpKTsKLSAgIE5BTkQyQlg0IGcyNzY3MyAoLlkobl80MjApLCAKLQkuQihuXzI0MzEpLCAKLQkuQU4obl8yNDI5KSk7Ci0gICBOQU5EMkJYNCBnMjc2NzUgKC5ZKG5fNDE4KSwgCi0JLkIobl8yNDI5KSwgCi0JLkFOKG5fMjQzMSkpOwotICAgTk9SMkJYNCBnMjc2ODMgKC5ZKG5fNDEwKSwgCi0JLkIobl8yMTI2KSwgCi0JLkFOKG5fMjEyOCkpOwotICAgTk9SMkJYNCBnMjc2ODYgKC5ZKG5fNDA3KSwgCi0JLkIobl8yMTIwKSwgCi0JLkFOKG5fMjExOSkpOwotICAgTk9SMlg4IGcyNzY5MCAoLlkobl80MDMpLCAKLQkuQihuXzI3NTgpLCAKLQkuQShuXzI0NTIpKTsKLSAgIE5PUjJCWDQgZzI3NjkyICguWShuXzQwMSksIAotCS5CKG5fMjEwNSksIAotCS5BTihuXzIxMDQpKTsKLSAgIE5PUjJCWDQgZzI3NjkzICguWShuXzQwMCksIAotCS5CKG5fMjEwMiksIAotCS5BTihuXzIxMDEpKTsKLSAgIE5BTkQyQlg0IGcyNzY5NCAoLlkobl8zOTkpLCAKLQkuQihuXzM5MyksIAotCS5BTihuXzIyNDUpKTsKLSAgIE5BTkQyWDggZzI3NzAwICguWShuXzM5MyksIAotCS5CKG5fMjQ2MCksIAotCS5BKG5fMjk3MikpOwotICAgTk9SMkJYNCBnMjc3MDcgKC5ZKG5fMzg2KSwgCi0JLkIobl8yMDM2KSwgCi0JLkFOKG5fMjAzMCkpOwotICAgTkFORDJCWDQgZzI3NzIxICguWShuXzM3MiksIAotCS5CKG5fMTk3NyksIAotCS5BTihuXzE5ODApKTsKLSAgIE5BTkQyQlg0IGcyNzcyMiAoLlkobl8zNzEpLCAKLQkuQihuXzE5NzYpLCAKLQkuQU4obl8xOTc5KSk7Ci0gICBOT1IyQlg0IGcyNzcyNCAoLlkobl8zNjkpLCAKLQkuQihuXzE5NzEpLCAKLQkuQU4obl8xOTcyKSk7Ci0gICBOQU5EMkJYNCBnMjc3MjggKC5ZKG5fMzY1KSwgCi0JLkIobl8xOTY1KSwgCi0JLkFOKG5fMTk2MikpOwotICAgTkFORDJCWDQgZzI3NzI5ICguWShuXzM2NCksIAotCS5CKG5fMzUxKSwgCi0JLkFOKG5fMjIxMykpOwotICAgTk9SMkJYNCBnMjc3MzMgKC5ZKG5fMzYwKSwgCi0JLkIobl8xOTQyKSwgCi0JLkFOKG5fMTk0MSkpOwotICAgTk9SMkJYNCBnMjc3MzQgKC5ZKG5fMzU5KSwgCi0JLkIobl8xOTM2KSwgCi0JLkFOKG5fMTkzNykpOwotICAgTk9SMkJYNCBnMjc3MzUgKC5ZKG5fMzU4KSwgCi0JLkIobl8xOTM1KSwgCi0JLkFOKG5fMTk0NCkpOwotICAgTkFORDJCWDQgZzI3NzM2ICguWShuXzM1NyksIAotCS5CKG5fMTkzNCksIAotCS5BTihuXzE5NDcpKTsKLSAgIE5PUjJYOCBnMjc3NDAgKC5ZKG5fMzUzKSwgCi0JLkIobl8yOTc0KSwgCi0JLkEobl8yNTIzKSk7Ci0gICBOQU5EMlg4IGcyNzc0MiAoLlkobl8zNTEpLCAKLQkuQihuXzI0OTApLCAKLQkuQShuXzE3NDEpKTsKLSAgIE5BTkQyQlg0IGcyNzc1MiAoLlkobl8zNDEpLCAKLQkuQihuXzE4NzQpLCAKLQkuQU4obl8xODcxKSk7Ci0gICBOT1IyQlg0IGcyNzc3MiAoLlkobl8zMjEpLCAKLQkuQihuXzE3OTUpLCAKLQkuQU4obl8xNzk5KSk7Ci0gICBOQU5EMkJYNCBnMjc3ODEgKC5ZKG5fMzEyKSwgCi0JLkIobl8xNzc1KSwgCi0JLkFOKG5fMTc3NCkpOwotICAgTkFORDJCWDQgZzI3NzgyICguWShuXzMxMSksIAotCS5CKG5fMTc3MCksIAotCS5BTihuXzE3NjYpKTsKLSAgIE5BTkQyQlg0IGcyNzc4MyAoLlkobl8zMTApLCAKLQkuQihuXzI4OSksIAotCS5BTihuXzE5MjEpKTsKLSAgIE5PUjJCWDQgZzI3NzkzICguWShuXzMwMCksIAotCS5CKG5fMTcyMiksIAotCS5BTihuXzE2NzgpKTsKLSAgIE5PUjJCWDQgZzI3Nzk0ICguWShuXzI5OSksIAotCS5CKG5fMTcyMSksIAotCS5BTihuXzE3MjMpKTsKLSAgIE5PUjJCWDQgZzI3Nzk1ICguWShuXzI5OCksIAotCS5CKG5fMTcxNCksIAotCS5BTihuXzE3MTcpKTsKLSAgIE5BTkQyQlg0IGcyNzc5NiAoLlkobl8yOTcpLCAKLQkuQihuXzE3MTApLCAKLQkuQU4obl8xNzA2KSk7Ci0gICBOT1IyQlg0IGcyNzc5OCAoLlkobl8yOTUpLCAKLQkuQihuXzE3MDEpLCAKLQkuQU4obl8xNzAzKSk7Ci0gICBOT1IyQlg0IGcyNzc5OSAoLlkobl8yOTQpLCAKLQkuQihuXzE2ODgpLCAKLQkuQU4obl8xNjkwKSk7Ci0gICBOT1IyQlg0IGcyNzgwMCAoLlkobl8yOTMpLCAKLQkuQihuXzE2ODIpLCAKLQkuQU4obl8xNzM2KSk7Ci0gICBOT1IyWDggZzI3ODAyICguWShuXzI5MSksIAotCS5CKG5fMjUzNCksIAotCS5BKG5fMjU4MikpOwotICAgTk9SMlg4IGcyNzgwMyAoLlkobl8yOTApLCAKLQkuQihuXzI1MzcpLCAKLQkuQShuXzEzNTgpKTsKLSAgIE5BTkQyWDggZzI3ODA0ICguWShuXzI4OSksIAotCS5CKG5fMjU0MiksIAotCS5BKG5fMjc5NykpOwotICAgTk9SMlg4IGcyNzgxNCAoLlkobl8yNzkpLCAKLQkuQihuXzI3OTUpLCAKLQkuQShuXzI3OTQpKTsKLSAgIE5PUjJCWDQgZzI3ODIzICguWShuXzI3MCksIAotCS5CKG5fMTUxMCksIAotCS5BTihuXzEwNDQpKTsKLSAgIE5BTkQyQlg0IGcyNzgyNSAoLlkobl8yNjgpLCAKLQkuQihuXzI2MCksIAotCS5BTihuXzI1NTMpKTsKLSAgIE5BTkQyQlg0IGcyNzgyNiAoLlkobl8yNjcpLCAKLQkuQihuXzE1OTMpLCAKLQkuQU4obl8xNTkyKSk7Ci0gICBOQU5EMkJYNCBnMjc4MzAgKC5ZKG5fMjYzKSwgCi0JLkIobl8yNTkxKSwgCi0JLkFOKG5fMjgxNikpOwotICAgTkFORDJCWDQgZzI3ODMzICguWShuXzI2MCksIAotCS5CKG5fMjgxNiksIAotCS5BTihuXzI1OTEpKTsKLSAgIE5BTkQyQlg0IGcyNzg2NiAoLlkobl8yMjcpLCAKLQkuQihuXzE1MCksIAotCS5BTihuXzE1MjQpKTsKLSAgIE5PUjJCWDQgZzI3ODgwICguWShuXzIxMyksIAotCS5CKG5fMTQyNSksIAotCS5BTihuXzEzMzEpKTsKLSAgIE5PUjJCWDQgZzI3ODgxICguWShuXzIxMiksIAotCS5CKG5fMTQxNCksIAotCS5BTihuXzE0MTUpKTsKLSAgIE5BTkQyQlg0IGcyNzg4MiAoLlkobl8yMTEpLCAKLQkuQihuXzE3NyksIAotCS5BTihuXzI3MDMpKTsKLSAgIE5BTkQyQlg0IGcyNzg4MyAoLlkobl8yMTApLCAKLQkuQihuXzE3NiksIAotCS5BTihuXzEyODYpKTsKLSAgIE5PUjJCWDQgZzI3ODg0ICguWShuXzIwOSksIAotCS5CKG5fMTM5OSksIAotCS5BTihuXzEzOTQpKTsKLSAgIE5PUjJCWDQgZzI3ODg1ICguWShuXzIwOCksIAotCS5CKG5fMTM5NSksIAotCS5BTihuXzEzOTcpKTsKLSAgIE5PUjJCWDQgZzI3ODg2ICguWShuXzIwNyksIAotCS5CKG5fMTM4OSksIAotCS5BTihuXzEzODgpKTsKLSAgIE5PUjJCWDQgZzI3ODg3ICguWShuXzIwNiksIAotCS5CKG5fMTM4NyksIAotCS5BTihuXzEzOTIpKTsKLSAgIE5BTkQyQlg0IGcyNzg4OSAoLlkobl8yMDQpLCAKLQkuQihuXzE3MyksIAotCS5BTihuXzI2OTcpKTsKLSAgIE5BTkQyQlg0IGcyNzg5MCAoLlkobl8yMDMpLCAKLQkuQihuXzE2NSksIAotCS5BTihuXzEyNDkpKTsKLSAgIE5PUjJCWDQgZzI3ODkxICguWShuXzIwMiksIAotCS5CKG5fMTM3NSksIAotCS5BTihuXzEzNzgpKTsKLSAgIE5PUjJCWDQgZzI3ODkyICguWShuXzIwMSksIAotCS5CKG5fMTM3MyksIAotCS5BTihuXzEzNjMpKTsKLSAgIE5BTkQyQlg0IGcyNzg5MyAoLlkobl8yMDApLCAKLQkuQihuXzE3MCksIAotCS5BTihuXzI2NDQpKTsKLSAgIE5PUjJCWDQgZzI3ODk0ICguWShuXzE5OSksIAotCS5CKG5fMTM2NCksIAotCS5BTihuXzEzNjUpKTsKLSAgIE5BTkQyQlg0IGcyNzg5NSAoLlkobl8xOTgpLCAKLQkuQihuXzE2OSksIAotCS5BTihuXzUxMikpOwotICAgTk9SMkJYNCBnMjc4OTcgKC5ZKG5fMTk2KSwgCi0JLkIobl8xMzQ2KSwgCi0JLkFOKG5fMTM2NykpOwotICAgTk9SMkJYNCBnMjc4OTggKC5ZKG5fMTk1KSwgCi0JLkIobl8xMzQ0KSwgCi0JLkFOKG5fMTM0NSkpOwotICAgTk9SMkJYNCBnMjc4OTkgKC5ZKG5fMTk0KSwgCi0JLkIobl8xMzQzKSwgCi0JLkFOKG5fMTMzOSkpOwotICAgTkFORDJCWDQgZzI3OTAwICguWShuXzE5MyksIAotCS5CKG5fMTU4KSwgCi0JLkFOKG5fMTM0MikpOwotICAgTkFORDJCWDQgZzI3OTAxICguWShuXzE5MiksIAotCS5CKG5fMTUzKSwgCi0JLkFOKG5fMTIzNCkpOwotICAgTk9SMkJYNCBnMjc5MDIgKC5ZKG5fMTkxKSwgCi0JLkIobl8xMzI1KSwgCi0JLkFOKG5fMTM2NikpOwotICAgTk9SMkJYNCBnMjc5MDMgKC5ZKG5fMTkwKSwgCi0JLkIobl8xMzIzKSwgCi0JLkFOKG5fMTMyNCkpOwotICAgTk9SMkJYNCBnMjc5MDQgKC5ZKG5fMTg5KSwgCi0JLkIobl8xMzIxKSwgCi0JLkFOKG5fMTMyOCkpOwotICAgTkFORDJCWDQgZzI3OTA1ICguWShuXzE4OCksIAotCS5CKG5fMTUxKSwgCi0JLkFOKG5fMTE3NykpOwotICAgTk9SMkJYNCBnMjc5MDYgKC5ZKG5fMTg3KSwgCi0JLkIobl8xMzE5KSwgCi0JLkFOKG5fMTQxMykpOwotICAgTkFORDJCWDQgZzI3OTA3ICguWShuXzE4NiksIAotCS5CKG5fMTgyKSwgCi0JLkFOKG5fMjY1NCkpOwotICAgTkFORDJCWDQgZzI3OTA4ICguWShuXzE4NSksIAotCS5CKG5fMjgxOSksIAotCS5BTihuXzI2ODgpKTsKLSAgIE5PUjJCWDQgZzI3OTA5ICguWShuXzE4NCksIAotCS5CKG5fMTA1NSksIAotCS5BTihuXzc1MykpOwotICAgTkFORDJCWDQgZzI3OTExICguWShuXzE4MiksIAotCS5CKG5fMjU5NiksIAotCS5BTihuXzUzMykpOwotICAgTk9SMkJYNCBnMjc5MTUgKC5ZKG5fMTc4KSwgCi0JLkIobl8yNjAxKSwgCi0JLkFOKG5fNzMyKSk7Ci0gICBOQU5EMkJYNCBnMjc5MTYgKC5ZKG5fMTc3KSwgCi0JLkIobl8yNjA3KSwgCi0JLkFOKG5fNTY5KSk7Ci0gICBOQU5EMlg4IGcyNzkxNyAoLlkobl8xNzYpLCAKLQkuQihuXzI2MTApLCAKLQkuQShuXzI2MTEpKTsKLSAgIE5BTkQyQlg0IGcyNzkyMCAoLlkobl8xNzMpLCAKLQkuQihuXzI2MzMpLCAKLQkuQU4obl8yNzE1KSk7Ci0gICBOQU5EMkJYNCBnMjc5MjEgKC5ZKG5fMTcyKSwgCi0JLkIobl8yNjM3KSwgCi0JLkFOKG5fMjY1MykpOwotICAgTkFORDJYOCBnMjc5MjIgKC5ZKG5fMTcxKSwgCi0JLkIobl8yNzA5KSwgCi0JLkEobl8yNjQwKSk7Ci0gICBOQU5EMlg4IGcyNzkyMyAoLlkobl8xNzApLCAKLQkuQihuXzI2NDEpLCAKLQkuQShuXzI2NDIpKTsKLSAgIE5BTkQyQlg0IGcyNzkyNCAoLlkobl8xNjkpLCAKLQkuQihuXzI2NDMpLCAKLQkuQU4obl8yNjQ1KSk7Ci0gICBOQU5EMkJYNCBnMjc5MjYgKC5ZKG5fMTY3KSwgCi0JLkIobl8yNjQ1KSwgCi0JLkFOKG5fMjY0MykpOwotICAgTkFORDJCWDQgZzI3OTI4ICguWShuXzE2NSksIAotCS5CKG5fMjY1MyksIAotCS5BTihuXzI2MzcpKTsKLSAgIE5BTkQyWDggZzI3OTMwICguWShuXzE2MyksIAotCS5CKG5fMjY1NyksIAotCS5BKG5fMjcxMCkpOwotICAgTkFORDJCWDQgZzI3OTMxICguWShuXzE2MiksIAotCS5CKG5fMjY1OSksIAotCS5BTihuXzUwOCkpOwotICAgTkFORDJCWDQgZzI3OTM1ICguWShuXzE1OCksIAotCS5CKG5fMjY3MiksIAotCS5BTihuXzI2NzMpKTsKLSAgIE5BTkQyQlg0IGcyNzkzNiAoLlkobl8xNTcpLCAKLQkuQihuXzI2NzMpLCAKLQkuQU4obl8yNjcyKSk7Ci0gICBOQU5EMkJYNCBnMjc5NDAgKC5ZKG5fMTUzKSwgCi0JLkIobl8yNjgxKSwgCi0JLkFOKG5fNTYxKSk7Ci0gICBOQU5EMkJYNCBnMjc5NDEgKC5ZKG5fMTUyKSwgCi0JLkIobl8yNjgzKSwgCi0JLkFOKG5fMjcxOCkpOwotICAgTkFORDJCWDQgZzI3OTQyICguWShuXzE1MSksIAotCS5CKG5fMjY4NSksIAotCS5BTihuXzI2OTApKTsKLSAgIE5BTkQyQlg0IGcyNzk0MyAoLlkobl8xNTApLCAKLQkuQihuXzI2ODgpLCAKLQkuQU4obl8yODE5KSk7Ci0gICBOQU5EMkJYNCBnMjc5NDQgKC5ZKG5fMTQ5KSwgCi0JLkIobl8yNjkwKSwgCi0JLkFOKG5fMjY4NSkpOwotICAgTk9SMkJYNCBnMjc5NDcgKC5ZKG5fMTQ2KSwgCi0JLkIobl8xMDY4KSwgCi0JLkFOKG5fMTEzOCkpOwotICAgTkFORDJCWDQgZzI4MDA1ICguWShuXzg4KSwgCi0JLkIobl8yNzE1KSwgCi0JLkFOKG5fMjYzMykpOwotICAgTkFORDJCWDQgZzI4MDMxICguWShuXzYyKSwgCi0JLkIobl8yNzE4KSwgCi0JLkFOKG5fMjY4MykpOwotICAgTk9SMkJYNCBnMjgwODEgKC5ZKG5fMTIpLCAKLQkuQihuXzI5NTQpLCAKLQkuQU4oQVswXSkpOwotICAgTk9SMkJYNCBnMjgwODIgKC5ZKG5fMTEpLCAKLQkuQihuXzI5NTYpLCAKLQkuQU4oQVswXSkpOwotICAgTkFORDJCWDQgZzI4MDgzICguWShuXzEwKSwgCi0JLkIobl8yOTU4KSwgCi0JLkFOKG5fMjk1NykpOwotICAgTkFORDJCWDQgZzI4MDg0ICguWShuXzkpLCAKLQkuQihuXzI5NTkpLCAKLQkuQU4obl8yOTU1KSk7Ci0gICBOQU5EMkJYNCBnMjgwODYgKC5ZKG5fNyksIAotCS5CKG5fNTY5KSwgCi0JLkFOKG5fMjYwNykpOwotICAgTkFORDJCWDQgZzI4MDg4ICguWShuXzUpLCAKLQkuQihuXzU2MSksIAotCS5BTihuXzI2ODEpKTsKLSAgIE5PUjJCWDQgZzI4MDkwICguWShuXzMpLCAKLQkuQihaWzBdKSwgCi0JLkFOKEJbMV0pKTsKLSAgIE5BTkQyQlg0IGcyODA5MyAoLlkobl8wKSwgCi0JLkIobl81MzMpLCAKLQkuQU4obl8yNTk2KSk7Ci0gICBYT1IyWDQgZzI4MDk1ICguWShaWzMwXSksIAotCS5CKG5fMjUyNCksIAotCS5BKG5fMjc0MSkpOwotICAgQURERkhYNCBnMjgwOTkgKC5TKCksIAotCS5DTyhuXzIzNzUpLCAKLQkuQ0kobl8yNzQyKSwgCi0JLkIobl8yNDg1KSwgCi0JLkEobl8yNDcyKSk7Ci0gICBYTk9SMlg0IGcyODEwMCAoLlkoWlsyN10pLCAKLQkuQihuXzQ1OCksIAotCS5BKG5fMjc2MikpOwotICAgWE5PUjJYNCBnMjgxMDEgKC5ZKFpbMjZdKSwgCi0JLkIobl8yNzQzKSwgCi0JLkEobl8yMTY1KSk7Ci0gICBYT1IyWDQgZzI4MTAyICguWShaWzI1XSksIAotCS5CKG5fNDU1KSwgCi0JLkEobl8yNDM4KSk7Ci0gICBYT1IyWDQgZzI4MTAzICguWShaWzIzXSksIAotCS5CKG5fMjM4MCksIAotCS5BKG5fMjc1MykpOwotICAgQ0xLTVgyWDEyIGcyODEwNCAoLlkobl8yMzgwKSwgCi0JLlMwKG5fMjM4NCksIAotCS5CKG5fMjE2MSksIAotCS5BKG5fMjQzMikpOwotICAgQURERkhYNCBnMjgxMDUgKC5TKCksIAotCS5DTyhuXzIzODEpLCAKLQkuQ0kobl8yMzg0KSwgCi0JLkIobl8yMTYxKSwgCi0JLkEobl8yNzUzKSk7Ci0gICBBRERGSFg0IGcyODEwOCAoLlMoKSwgCi0JLkNPKG5fMjM4NCksIAotCS5DSShuXzI3NDQpLCAKLQkuQihuXzI0MjYpLCAKLQkuQShuXzI0MjgpKTsKLSAgIENMS01YMlgxMiBnMjgxMDkgKC5ZKFpbMTldKSwgCi0JLlMwKG5fMjc0NSksIAotCS5CKG5fMjQxMyksIAotCS5BKG5fMjIwMCkpOwotICAgQURERkhYNCBnMjgxMTAgKC5TKCksIAotCS5DTyhuXzIzODYpLCAKLQkuQ0kobl8yMjgyKSwgCi0JLkIobl8yMjE2KSwgCi0JLkEobl8yMjAwKSk7Ci0gICBBRERGSFg0IGcyODExMyAoLlMoKSwgCi0JLkNPKG5fMjM4OSksIAotCS5DSShuXzIzOTIpLCAKLQkuQihuXzI0MTQpLCAKLQkuQShuXzI3NTEpKTsKLSAgIFhOT1IyWDQgZzI4MTE0ICguWShaWzE3XSksIAotCS5CKG5fMjM5MSksIAotCS5BKG5fMjQyMikpOwotICAgQ0xLTVgyWDEyIGcyODExNSAoLlkobl8yMzkxKSwgCi0JLlMwKG5fMjc1MiksIAotCS5CKG5fMjM5NSksIAotCS5BKG5fMjI3MCkpOwotICAgQURERkhYNCBnMjgxMTYgKC5TKCksIAotCS5DTyhuXzIzOTIpLCAKLQkuQ0kobl8yMjcwKSwgCi0JLkIobl8yNDIyKSwgCi0JLkEobl8yNzUyKSk7Ci0gICBDTEtNWDJYMTIgZzI4MTE3ICguWShaWzE2XSksIAotCS5TMChuXzIzOTQpLCAKLQkuQihuXzIxNzgpLCAKLQkuQShuXzI3NTQpKTsKLSAgIENMS01YMlgxMiBnMjgxMTggKC5ZKG5fMjM5NCksIAotCS5TMChuXzIzOTYpLCAKLQkuQihuXzIxOTEpLCAKLQkuQShuXzI0MjEpKTsKLSAgIEFEREZIWDQgZzI4MTE5ICguUygpLCAKLQkuQ08obl8yMzk1KSwgCi0JLkNJKG5fMjM5NiksIAotCS5CKG5fMjE5MSksIAotCS5BKG5fMjE3OCkpOwotICAgQURERkhYNCBnMjgxMjAgKC5TKCksIAotCS5DTyhuXzIzOTYpLCAKLQkuQ0kobl8yNDAwKSwgCi0JLkIobl8yMTc5KSwgCi0JLkEobl8yMTkyKSk7Ci0gICBYT1IyWDQgZzI4MTIxICguWShaWzE1XSksIAotCS5CKG5fMjc0OSksIAotCS5BKG5fMjQwMCkpOwotICAgQ0xLTVgyWDEyIGcyODEyMiAoLlkoWlsxNF0pLCAKLQkuUzAobl8yMzk5KSwgCi0JLkIobl8yMTE0KSwgCi0JLkEobl8yNzU2KSk7Ci0gICBYTk9SMlg0IGcyODEyMyAoLlkobl8yMzk5KSwgCi0JLkIobl8yOTgwKSwgCi0JLkEobl8yNDAyKSk7Ci0gICBBRERGSFg0IGcyODEyNCAoLlMoKSwgCi0JLkNPKG5fMjQwMCksIAotCS5DSShuXzI0MDIpLCAKLQkuQihuXzI5ODApLCAKLQkuQShuXzIxMTQpKTsKLSAgIENMS01YMlgxMiBnMjgxMjUgKC5ZKFpbMTNdKSwgCi0JLlMwKG5fMjc0NiksIAotCS5CKG5fMjExNSksIAotCS5BKG5fMjQ0MSkpOwotICAgQURERkhYNCBnMjgxMjYgKC5TKCksIAotCS5DTyhuXzI0MDIpLCAKLQkuQ0kobl8yMjQ4KSwgCi0JLkIobl8yMTE1KSwgCi0JLkEobl8yMDQ3KSk7Ci0gICBDTEtNWDJYMTIgZzI4MTI3ICguWShaWzExXSksIAotCS5TMChuXzI3NDcpLCAKLQkuQihuXzIwNzMpLCAKLQkuQShuXzI0NTMpKTsKLSAgIEFEREZIWDQgZzI4MTI4ICguUygpLCAKLQkuQ08obl8yNDA0KSwgCi0JLkNJKG5fMjIzNyksIAotCS5CKG5fMjA3MyksIAotCS5BKG5fMjA5OCkpOwotICAgWE5PUjJYNCBnMjgxMjkgKC5ZKFpbMTBdKSwgCi0JLkIobl8yNDA2KSwgCi0JLkEobl8yNDQ2KSk7Ci0gICBDTEtNWDJYMTIgZzI4MTMwICguWShuXzI0MDYpLCAKLQkuUzAobl8yNDY3KSwgCi0JLkIobl8yNDA5KSwgCi0JLkEobl8yMjMwKSk7Ci0gICBBRERGSFg0IGcyODEzMSAoLlMoKSwgCi0JLkNPKG5fMjQwNyksIAotCS5DSShuXzIyMzApLCAKLQkuQihuXzI0NDYpLCAKLQkuQShuXzI0NjcpKTsKLSAgIENMS01YMlgxMiBnMjgxMzIgKC5ZKFpbOV0pLCAKLQkuUzAobl8yNzQ4KSwgCi0JLkIobl8yNzcxKSwgCi0JLkEobl8xOTIyKSk7Ci0gICBBRERGSFg0IGcyODEzMyAoLlMoKSwgCi0JLkNPKG5fMjQwOSksIAotCS5DSShuXzIyMjEpLCAKLQkuQihuXzIwMjQpLCAKLQkuQShuXzE5MjIpKTsKLSAgIFhOT1IyWDQgZzI4MTM0ICguWShuXzI0MTApLCAKLQkuQihuXzI0MzkpLCAKLQkuQShuXzI0MTIpKTsKLSAgIENMS01YMlgxMiBnMjgxMzUgKC5ZKFpbN10pLCAKLQkuUzAobl8yNzUwKSwgCi0JLkIobl8yNzg2KSwgCi0JLkEobl8xODE5KSk7Ci0gICBDTEtNWDJYMTIgZzI4MTM2ICguWShuXzI0MTIpLCAKLQkuUzAobl8yNDMwKSwgCi0JLkIobl8xOTI1KSwgCi0JLkEobl8yNDg2KSk7Ci0gICBBRERGSFg0IGcyODEzNyAoLlMoKSwgCi0JLkNPKG5fMjQxMyksIAotCS5DSShuXzIxNjApLCAKLQkuQihuXzIwNDMpLCAKLQkuQShuXzIwMDApKTsKLSAgIENMS01YMlgxMiBnMjgxMzggKC5ZKG5fMjQxNCksIAotCS5TMChuXzI3NTUpLCAKLQkuQihuXzI0MjcpLCAKLQkuQShuXzIxNjApKTsKLSAgIEFEREZIWDQgZzI4MTM5ICguUygpLCAKLQkuQ08obl8yNDE1KSwgCi0JLkNJKG5fMjQzMCksIAotCS5CKG5fMjQzOSksIAotCS5BKG5fMTkyNSkpOwotICAgWE5PUjJYNCBnMjgxNDAgKC5ZKG5fMjQxNiksIAotCS5CKG5fMjQyMyksIAotCS5BKG5fMjQ5MikpOwotICAgQURERkhYNCBnMjgxNDEgKC5TKCksIAotCS5DTyhuXzI0MTcpLCAKLQkuQ0kobl8yNDcxKSwgCi0JLkIobl8yNDQ5KSwgCi0JLkEobl8yNDk4KSk7Ci0gICBBRERGSFg0IGcyODE0MyAoLlMoKSwgCi0JLkNPKG5fMjQxOSksIAotCS5DSShuXzIxNDApLCAKLQkuQihuXzE4MTcpLCAKLQkuQShuXzE4MTkpKTsKLSAgIEFEREZIWDQgZzI4MTQ0ICguUygpLCAKLQkuQ08obl8yNDIwKSwgCi0JLkNJKG5fMjA3NiksIAotCS5CKG5fMjQ0NCksIAotCS5BKG5fMjQ5MikpOwotICAgQ0xLTVgyWDEyIGcyODE0NSAoLlkobl8yNDIxKSwgCi0JLlMwKG5fNDA3KSwgCi0JLkIobl8yNzY2KSwgCi0JLkEobl8yMDQ1KSk7Ci0gICBDTEtNWDJYMTIgZzI4MTQ2ICguWShuXzI0MjIpLCAKLQkuUzAobl80MTApLCAKLQkuQihuXzI0NTcpLCAKLQkuQShuXzIwNDQpKTsKLSAgIENMS01YMlgxMiBnMjgxNDcgKC5ZKG5fMjQyMyksIAotCS5TMChuXzI0NDQpLCAKLQkuQihuXzI5ODIpLCAKLQkuQShuXzIwNzYpKTsKLSAgIENMS01YMlgxMiBnMjgxNDggKC5ZKG5fMjQyNCksIAotCS5TMChuXzI0MzQpLCAKLQkuQihuXzIwNzUpLCAKLQkuQShuXzI0NTEpKTsKLSAgIENMS01YMlgxMiBnMjgxNDkgKC5ZKG5fMjQyNSksIAotCS5TMChuXzQwMSksIAotCS5CKG5fMjQ1OCksIAotCS5BKG5fMjA0NikpOwotICAgQ0xLTVgyWDEyIGcyODE1MCAoLlkobl8yNDI2KSwgCi0JLlMwKG5fNDAwKSwgCi0JLkIobl8yNzYwKSwgCi0JLkEobl8yMDc0KSk7Ci0gICBDTEtNWDJYMTIgZzI4MTUxICguWShuXzI0MjcpLCAKLQkuUzAobl8yNzU3KSwgCi0JLkIobl8xOTA4KSwgCi0JLkEobl8yNTA1KSk7Ci0gICBBRERGSFg0IGcyODE1MiAoLlMoKSwgCi0JLkNPKG5fMjQyOCksIAotCS5DSShuXzI0NjUpLCAKLQkuQihuXzIwNzUpLCAKLQkuQShuXzE5MDUpKTsKLSAgIEFEREZIWDQgZzI4MTUzICguUygpLCAKLQkuQ08obl8yNDI5KSwgCi0JLkNJKG5fMjA1MCksIAotCS5CKG5fMjc2MSksIAotCS5BKG5fMjk3MykpOwotICAgQURERkhYNCBnMjgxNTQgKC5TKCksIAotCS5DTyhuXzI0MzApLCAKLQkuQ0kobl8xOTA4KSwgCi0JLkIobl8yMDIzKSwgCi0JLkEobl8xOTA2KSk7Ci0gICBDTEtNWDJYMTIgZzI4MTU1ICguWShuXzI0MzEpLCAKLQkuUzAobl8yNDM3KSwgCi0JLkIobl8xOTAyKSwgCi0JLkEobl8yNTA4KSk7Ci0gICBYT1IyWDQgZzI4MTU2ICguWShuXzI0MzIpLCAKLQkuQihuXzI3NjEpLCAKLQkuQShuXzI0MzYpKTsKLSAgIENMS01YMlgxMiBnMjgxNTggKC5ZKG5fMjQzNCksIAotCS5TMChuXzI0NjUpLCAKLQkuQihuXzI0OTcpLCAKLQkuQShuXzE5MDUpKTsKLSAgIENMS01YMlgxMiBnMjgxNjAgKC5ZKG5fMjQzNiksIAotCS5TMChuXzI5NzMpLCAKLQkuQihuXzI5ODMpLCAKLQkuQShuXzIwNTApKTsKLSAgIENMS01YMlgxMiBnMjgxNjEgKC5ZKG5fMjQzNyksIAotCS5TMChuXzI0NzApLCAKLQkuQihuXzI0NzMpLCAKLQkuQShuXzIwMDEpKTsKLSAgIEFEREZIWDQgZzI4MTYyICguUygpLCAKLQkuQ08obl8yNDM4KSwgCi0JLkNJKG5fMjQ3MCksIAotCS5CKG5fMjAwMSksIAotCS5BKG5fMTkwMikpOwotICAgQ0xLTVgyWDEyIGcyODE2MyAoLlkobl8yNDM5KSwgCi0JLlMwKG5fMjc1OSksIAotCS5CKG5fMTkxMiksIAotCS5BKG5fMjUwMSkpOwotICAgQ0xLTVgyWDEyIGcyODE2NCAoLlkobl8yNDQwKSwgCi0JLlMwKG5fMzg2KSwgCi0JLkIobl8yNDc2KSwgCi0JLkEobl8xOTI4KSk7Ci0gICBDTEtNWDJYMTIgZzI4MTY1ICguWShuXzI0NDEpLCAKLQkuUzAobl8zNjkpLCAKLQkuQihuXzI0NTUpLCAKLQkuQShuXzIwNDkpKTsKLSAgIEFEREZIWDQgZzI4MTY3ICguUygpLCAKLQkuQ08obl8yNDQzKSwgCi0JLkNJKG5fMTkxNCksIAotCS5CKG5fMjQ3NSksIAotCS5BKG5fMTkxNSkpOwotICAgQURERkhYNCBnMjgxNjggKC5TKCksIAotCS5DTyhuXzI0NDQpLCAKLQkuQ0kobl8xOTA3KSwgCi0JLkIobl8xOTk5KSwgCi0JLkEobl8xOTEyKSk7Ci0gICBBRERGSFg0IGcyODE2OSAoLlMoKSwgCi0JLkNPKG5fMjQ0NSksIAotCS5DSShuXzE5MjQpLCAKLQkuQihuXzI1NzMpLCAKLQkuQShuXzI0ODEpKTsKLSAgIENMS01YMlgxMiBnMjgxNzAgKC5ZKG5fMjQ0NiksIAotCS5TMChuXzI0NjIpLCAKLQkuQihuXzI0ODkpLCAKLQkuQShuXzE5MjQpKTsKLSAgIEFEREZIWDQgZzI4MTcxICguUygpLCAKLQkuQ08obl8yNDQ3KSwgCi0JLkNJKG5fMTk4OCksIAotCS5CKG5fMjUyNiksIAotCS5BKG5fMjUyOSkpOwotICAgQ0xLTVgyWDEyIGcyODE3MiAoLlkobl8yNDQ4KSwgCi0JLlMwKG5fMjQ2NCksIAotCS5CKG5fMjc3NiksIAotCS5BKG5fMTkxNCkpOwotICAgWE5PUjJYNCBnMjgxNzMgKC5ZKG5fMjQ0OSksIAotCS5CKG5fMjQ2MSksIAotCS5BKG5fMjU2MikpOwotICAgQ0xLTVgyWDEyIGcyODE3NSAoLlkobl8yNDUxKSwgCi0JLlMwKG5fMzcyKSwgCi0JLkIobl8xOTI5KSwgCi0JLkEobl8yNzcwKSk7Ci0gICBDTEtNWDJYMTIgZzI4MTc2ICguWShuXzI0NTIpLCAKLQkuUzAobl8zNzEpLCAKLQkuQihuXzE5MTApLCAKLQkuQShuXzI1MDMpKTsKLSAgIENMS01YMlgxMiBnMjgxNzcgKC5ZKG5fMjQ1MyksIAotCS5TMChuXzIwMDYpLCAKLQkuQihuXzE5MTEpLCAKLQkuQShuXzI1MDYpKTsKLSAgIFhPUjJYNCBnMjgxNzkgKC5ZKG5fMjQ1NSksIAotCS5CKG5fMjc2NyksIAotCS5BKG5fMjU2NSkpOwotICAgQ0xLTVgyWDEyIGcyODE4MCAoLlkobl8yNDU2KSwgCi0JLlMwKG5fMjc2OCksIAotCS5CKG5fMTY0NiksIAotCS5BKG5fMjc5MykpOwotICAgWE5PUjJYNCBnMjgxODEgKC5ZKG5fMjQ1NyksIAotCS5CKG5fMzU3KSwgCi0JLkEobl8yNDk1KSk7Ci0gICBDTEtNWDJYMTIgZzI4MTgyICguWShuXzI0NTgpLCAKLQkuUzAobl8zNjApLCAKLQkuQihuXzI1MDApLCAKLQkuQShuXzE5MTYpKTsKLSAgIENMS01YMlgxMiBnMjgxODMgKC5ZKG5fMjQ1OSksIAotCS5TMChuXzM1OCksIAotCS5CKG5fMjk3NSksIAotCS5BKG5fMTkwOSkpOwotICAgQ0xLTVgyWDEyIGcyODE4NCAoLlkobl8yNDYwKSwgCi0JLlMwKG5fMzU5KSwgCi0JLkIobl8yNDg4KSwgCi0JLkEobl8xOTI3KSk7Ci0gICBDTEtNWDJYMTIgZzI4MTg1ICguWShuXzI0NjEpLCAKLQkuUzAobl8yNTQ0KSwgCi0JLkIobl8xOTIwKSwgCi0JLkEobl8yNDc3KSk7Ci0gICBYT1IyWDQgZzI4MTg2ICguWShuXzI0NjIpLCAKLQkuQihuXzI0ODEpLCAKLQkuQShuXzI1NzMpKTsKLSAgIENMS01YMlgxMiBnMjgxODggKC5ZKG5fMjQ2NCksIAotCS5TMChuXzI0NzUpLCAKLQkuQihuXzI1MjApLCAKLQkuQShuXzE5MTUpKTsKLSAgIEFEREZIWDQgZzI4MTg5ICguUygpLCAKLQkuQ08obl8yNDY1KSwgCi0JLkNJKG5fMjQ4NyksIAotCS5CKG5fMjUwOSksIAotCS5BKG5fMjUwNCkpOwotICAgQURERkhYNCBnMjgxOTAgKC5TKCksIAotCS5DTyhuXzI0NjYpLCAKLQkuQ0kobl8xOTIwKSwgCi0JLkIobl8yNTQ0KSwgCi0JLkEobl8yNTYyKSk7Ci0gICBBRERGSFg0IGcyODE5MSAoLlMoKSwgCi0JLkNPKG5fMjQ2NyksIAotCS5DSShuXzE5MjMpLCAKLQkuQihuXzE2NjgpLCAKLQkuQShuXzE2NzMpKTsKLSAgIENMS01YMlgxMiBnMjgxOTIgKC5ZKG5fMjQ2OCksIAotCS5TMChuXzI3NzQpLCAKLQkuQihuXzI0ODIpLCAKLQkuQShuXzE5MjMpKTsKLSAgIEFEREZIWDQgZzI4MTk0ICguUygpLCAKLQkuQ08obl8yNDcwKSwgCi0JLkNJKG5fMjQ5NCksIAotCS5CKG5fMjU0NiksIAotCS5BKG5fMjc5MikpOwotICAgQURERkhYNCBnMjgxOTUgKC5TKCksIAotCS5DTyhuXzI0NzEpLCAKLQkuQ0kobl8xOTEzKSwgCi0JLkIobl8xNjcyKSwgCi0JLkEobl8yNTY1KSk7Ci0gICBBRERGSFg0IGcyODE5NiAoLlMoKSwgCi0JLkNPKG5fMjQ3MiksIAotCS5DSShuXzE5MDMpLCAKLQkuQihuXzE2NjYpLCAKLQkuQShuXzE2NDYpKTsKLSAgIFhPUjJYNCBnMjgxOTcgKC5ZKG5fMjQ3MyksIAotCS5CKG5fMjk4NSksIAotCS5BKG5fMzAwKSk7Ci0gICBYTk9SMlg0IGcyODE5OCAoLlkobl8yNDc0KSwgCi0JLkIobl8yNTc0KSwgCi0JLkEobl8zNDEpKTsKLSAgIFhPUjJYNCBnMjgxOTkgKC5ZKG5fMjQ3NSksIAotCS5CKG5fMjU3OSksIAotCS5BKG5fMjc4MCkpOwotICAgQ0xLTVgyWDEyIGcyODIwMCAoLlkobl8yNDc2KSwgCi0JLlMwKG5fMjUxNiksIAotCS5CKG5fMTY1OSksIAotCS5BKG5fMjU2MCkpOwotICAgQURERkhYNCBnMjgyMDEgKC5TKCksIAotCS5DTyhuXzI0NzcpLCAKLQkuQ0kobl8xNTE0KSwgCi0JLkIobl8yOTc2KSwgCi0JLkEobl8yNzk5KSk7Ci0gICBBRERGSFg0IGcyODIwMiAoLlMoKSwgCi0JLkNPKG5fMjQ3OCksIAotCS5DSShuXzE2NTkpLCAKLQkuQihuXzI1NjMpLCAKLQkuQShuXzE2MzYpKTsKLSAgIEFEREZIWDQgZzI4MjA1ICguUygpLCAKLQkuQ08obl8yNDgxKSwgCi0JLkNJKG5fMTUyOCksIAotCS5CKG5fMTY0MyksIAotCS5BKG5fNzkxKSk7Ci0gICBDTEtNWDJYMTIgZzI4MjA2ICguWShuXzI0ODIpLCAKLQkuUzAobl8yNzgyKSwgCi0JLkIobl8xNTI4KSwgCi0JLkEobl8xNDYzKSk7Ci0gICBBRERGSFg0IGcyODIwNyAoLlMoKSwgCi0JLkNPKG5fMjQ4MyksIAotCS5DSShuXzI1NzkpLCAKLQkuQihuXzE2MzQpLCAKLQkuQShuXzE1MjUpKTsKLSAgIENMS01YMlgxMiBnMjgyMDggKC5ZKFpbNF0pLCAKLQkuUzAobl8yNzcyKSwgCi0JLkIobl8yNTc3KSwgCi0JLkEobl8xNjM1KSk7Ci0gICBDTEtNWDJYMTIgZzI4MjA5ICguWShuXzI0ODUpLCAKLQkuUzAobl8yNzczKSwgCi0JLkIobl8yNzA3KSwgCi0JLkEobl8xMDM5KSk7Ci0gICBDTEtNWDJYMTIgZzI4MjEwICguWShuXzI0ODYpLCAKLQkuUzAobl8yNzc1KSwgCi0JLkIobl8yNTUwKSwgCi0JLkEobl8xNjUzKSk7Ci0gICBYT1IyWDQgZzI4MjExICguWShuXzI0ODcpLCAKLQkuQihuXzMyMSksIAotCS5BKG5fMjUzMCkpOwotICAgQ0xLTVgyWDEyIGcyODIxMiAoLlkobl8yNDg4KSwgCi0JLlMwKG5fMjk1KSwgCi0JLkIobl8yNTMzKSwgCi0JLkEobl8xODE4KSk7Ci0gICBDTEtNWDJYMTIgZzI4MjEzICguWShuXzI0ODkpLCAKLQkuUzAobl8xODI3KSwgCi0JLkIobl8xNjQ3KSwgCi0JLkEobl8yNTcxKSk7Ci0gICBDTEtNWDJYMTIgZzI4MjE0ICguWShuXzI0OTApLCAKLQkuUzAobl8zMTIpLCAKLQkuQihuXzE2NDQpLCAKLQkuQShuXzI1NTIpKTsKLSAgIEFEREZIWDQgZzI4MjE1ICguUygpLCAKLQkuQ08obl8yNDkxKSwgCi0JLkNJKG5fMTY1MCksIAotCS5CKG5fMjUzMSksIAotCS5BKG5fMTY1NCkpOwotICAgQURERkhYNCBnMjgyMTYgKC5TKCksIAotCS5DTyhuXzI0OTIpLCAKLQkuQ0kobl8xNjY5KSwgCi0JLkIobl8xNjcxKSwgCi0JLkEobl8xNjUzKSk7Ci0gICBBRERGSFg0IGcyODIxNyAoLlMoKSwgCi0JLkNPKG5fMjQ5MyksIAotCS5DSShuXzE0OTYpLCAKLQkuQihuXzE2NzApLCAKLQkuQShuXzI1NTUpKTsKLSAgIENMS01YMlgxMiBnMjgyMTggKC5ZKG5fMjQ5NCksIAotCS5TMChuXzI1MTMpLCAKLQkuQihuXzI3ODgpLCAKLQkuQShuXzE2MzcpKTsKLSAgIENMS01YMlgxMiBnMjgyMTkgKC5ZKG5fMjQ5NSksIAotCS5TMChuXzI3NzkpLCAKLQkuQihuXzI3OTgpLCAKLQkuQShuXzE2NDApKTsKLSAgIENMS01YMlgxMiBnMjgyMjEgKC5ZKG5fMjQ5NyksIAotCS5TMChuXzI1MTQpLCAKLQkuQihuXzE2NzApLCAKLQkuQShuXzI1NDMpKTsKLSAgIFhPUjJYNCBnMjgyMjIgKC5ZKG5fMjQ5OCksIAotCS5CKG5fMjUzMSksIAotCS5BKG5fMjc4MSkpOwotICAgQ0xLTVgyWDEyIGcyODIyMyAoLlkobl8yNDk5KSwgCi0JLlMwKG5fMjUxNyksIAotCS5CKG5fMjcwNCksIAotCS5BKG5fMTA0NCkpOwotICAgQ0xLTVgyWDEyIGcyODIyNCAoLlkobl8yNTAwKSwgCi0JLlMwKG5fMjUxOCksIAotCS5CKG5fMTI5NiksIAotCS5BKG5fMjYwNSkpOwotICAgQ0xLTVgyWDEyIGcyODIyNSAoLlkobl8yNTAxKSwgCi0JLlMwKG5fMjc4MyksIAotCS5CKG5fMTUxMSksIAotCS5BKG5fMTY0NSkpOwotICAgWE9SMlg0IGcyODIyNiAoLlkobl8yNTAyKSwgCi0JLkIobl8yNzg0KSwgCi0JLkEobl8yNTU0KSk7Ci0gICBDTEtNWDJYMTIgZzI4MjI3ICguWShuXzI1MDMpLCAKLQkuUzAobl8xNzkzKSwgCi0JLkIobl8xNjM5KSwgCi0JLkEobl8yNTUxKSk7Ci0gICBDTEtNWDJYMTIgZzI4MjI4ICguWShuXzI1MDQpLCAKLQkuUzAobl8yOTgpLCAKLQkuQihuXzI1ODEpLCAKLQkuQShuXzE2NTIpKTsKLSAgIENMS01YMlgxMiBnMjgyMjkgKC5ZKG5fMjUwNSksIAotCS5TMChuXzI5NCksIAotCS5CKG5fMTUwMyksIAotCS5BKG5fMTYzOCkpOwotICAgQ0xLTVgyWDEyIGcyODIzMCAoLlkobl8yNTA2KSwgCi0JLlMwKG5fMTc4MCksIAotCS5CKG5fMTY1MSksIAotCS5BKG5fMjU3MCkpOwotICAgQURERkhYNCBnMjgyMzEgKC5TKCksIAotCS5DTyhuXzI1MDcpLCAKLQkuQ0kobl8xNjQxKSwgCi0JLkIobl8xNjYxKSwgCi0JLkEobl8yNTU0KSk7Ci0gICBBRERGSFg0IGcyODIzMiAoLlMoKSwgCi0JLkNPKG5fMjUwOCksIAotCS5DSShuXzE2NDgpLCAKLQkuQihuXzE2MzcpLCAKLQkuQShuXzI2ODApKTsKLSAgIEFEREZIWDQgZzI4MjMzICguUygpLCAKLQkuQ08obl8yNTA5KSwgCi0JLkNJKG5fMTY0MiksIAotCS5CKG5fMTY0NSksIAotCS5BKG5fMTYzMykpOwotICAgQURERkhYNCBnMjgyMzQgKC5TKCksIAotCS5DTyhuXzI1MTApLCAKLQkuQ0kobl8xNjY1KSwgCi0JLkIobl8xNjU2KSwgCi0JLkEobl8yNzA3KSk7Ci0gICBBRERGSFg0IGcyODIzNSAoLlMoKSwgCi0JLkNPKG5fMjUxMSksIAotCS5DSShuXzE2NjApLCAKLQkuQihuXzE2NDApLCAKLQkuQShuXzE1MjYpKTsKLSAgIEFEREZIWDQgZzI4MjM2ICguUygpLCAKLQkuQ08obl8yNTEyKSwgCi0JLkNJKG5fMTY2NyksIAotCS5CKG5fMTYzNSksIAotCS5BKG5fMTA2MikpOwotICAgQ0xLTVgyWDEyIGcyODIzNyAoLlkobl8yNTEzKSwgCi0JLlMwKG5fMjY4MCksIAotCS5CKG5fMTY0OCksIAotCS5BKG5fMjU1OCkpOwotICAgWE9SMlg0IGcyODIzOCAoLlkobl8yNTE0KSwgCi0JLkIobl8xNDk2KSwgCi0JLkEobl8yNTU1KSk7Ci0gICBDTEtNWDJYMTIgZzI4MjQwICguWShuXzI1MTYpLCAKLQkuUzAobl8yNTYzKSwgCi0JLkIobl8xNTE2KSwgCi0JLkEobl8xNjM2KSk7Ci0gICBDTEtNWDJYMTIgZzI4MjQxICguWShuXzI1MTcpLCAKLQkuUzAobl8yNTg0KSwgCi0JLkIobl8yNjAwKSwgCi0JLkEobl8xMzA0KSk7Ci0gICBDTEtNWDJYMTIgZzI4MjQyICguWShuXzI1MTgpLCAKLQkuUzAobl8yODAxKSwgCi0JLkIobl8yNzg5KSwgCi0JLkEobl8xNjQ5KSk7Ci0gICBBRERGSFg0IGcyODI0NCAoLlMoKSwgCi0JLkNPKG5fMjUyMCksIAotCS5DSShuXzE2NDkpLCAKLQkuQihuXzEyOTYpLCAKLQkuQShuXzI4MDEpKTsKLSAgIEFEREZIWDQgZzI4MjQ1ICguUygpLCAKLQkuQ08obl8yNTIxKSwgCi0JLkNJKG5fMjc5NiksIAotCS5CKG5fMjYwNCksIAotCS5BKG5fMjY5OSkpOwotICAgQURERkhYNCBnMjgyNDYgKC5TKCksIAotCS5DTyhuXzI1MjIpLCAKLQkuQ0kobl8yNTg0KSwgCi0JLkIobl8xMzA0KSwgCi0JLkEobl8xMDQ0KSk7Ci0gICBDTEtNWDJYMTIgZzI4MjQ3ICguWShuXzI1MjMpLCAKLQkuUzAobl8yNzg3KSwgCi0JLkIobl8xMjM4KSwgCi0JLkEobl8yNjQ3KSk7Ci0gICBDTEtNWDJYMTIgZzI4MjQ4ICguWShuXzI1MjQpLCAKLQkuUzAobl8xODcpLCAKLQkuQihuXzI1OTQpLCAKLQkuQShuXzE2NTUpKTsKLSAgIFhPUjJYNCBnMjgyNDkgKC5ZKG5fMjUyNSksIAotCS5CKG5fMjU1MyksIAotCS5BKG5fMTY2MykpOwotICAgWE5PUjJYNCBnMjgyNTAgKC5ZKG5fMjUyNiksIAotCS5CKG5fMjY3KSwgCi0JLkEobl8yNTk1KSk7Ci0gICBBRERGSFg0IGcyODI1MSAoLlMoKSwgCi0JLkNPKG5fMjUyNyksIAotCS5DSShuXzI3MDcpLCAKLQkuQihuXzEyNzgpLCAKLQkuQShuXzU2NikpOwotICAgWE9SMlg0IGcyODI1MiAoLlkobl8yNTI4KSwgCi0JLkIobl8yODAyKSwgCi0JLkEobl8yNjkxKSk7Ci0gICBBRERGSFg0IGcyODI1MyAoLlMoKSwgCi0JLkNPKG5fMjUyOSksIAotCS5DSShuXzE1MzApLCAKLQkuQihuXzExOTApLCAKLQkuQShuXzgzMykpOwotICAgQURERkhYNCBnMjgyNTQgKC5TKCksIAotCS5DTyhuXzI1MzApLCAKLQkuQ0kobl8xMDQyKSwgCi0JLkIobl8xMjgzKSwgCi0JLkEobl8xMjc2KSk7Ci0gICBBRERGSFg0IGcyODI1NSAoLlMoKSwgCi0JLkNPKG5fMjUzMSksIAotCS5DSShuXzI2MjApLCAKLQkuQihuXzEyODApLCAKLQkuQShuXzEyNzQpKTsKLSAgIFhPUjJYNCBnMjgyNTYgKC5ZKG5fMjUzMiksIAotCS5CKG5fMjgwNSksIAotCS5BKG5fMjYyMCkpOwotICAgQURERkhYNCBnMjgyNTcgKC5TKCksIAotCS5DTyhuXzI1MzMpLCAKLQkuQ0kobl8xNTI5KSwgCi0JLkIobl8xMjM4KSwgCi0JLkEobl85MDApKTsKLSAgIEFEREZIWDQgZzI4MjU4ICguUygpLCAKLQkuQ08obl8yNTM0KSwgCi0JLkNJKG5fMjY2MCksIAotCS5CKG5fMTE3MyksIAotCS5BKG5fMTI1NCkpOwotICAgQ0xLTVgyWDEyIGcyODI1OSAoLlkobl8yNTM1KSwgCi0JLlMwKG5fMjgwOCksIAotCS5CKG5fMTA0MiksIAotCS5BKG5fMjcwNSkpOwotICAgQURERkhYNCBnMjgyNjAgKC5TKCksIAotCS5DTyhuXzI1MzYpLCAKLQkuQ0kobl8xNjIpLCAKLQkuQihuXzEyMjcpLCAKLQkuQShuXzEwNDIpKTsKLSAgIEFEREZIWDQgZzI4MjYxICguUygpLCAKLQkuQ08obl8yNTM3KSwgCi0JLkNJKG5fMTIyMCksIAotCS5CKG5fMTIyNCksIAotCS5BKG5fMTE5OSkpOwotICAgWE9SMlg0IGcyODI2MiAoLlkobl8yNTM4KSwgCi0JLkIobl8xNjIpLCAKLQkuQShuXzI4MTApKTsKLSAgIENMS01YMlgxMiBnMjgyNjMgKC5ZKG5fMjUzOSksIAotCS5TMChuXzI1OTApLCAKLQkuQihuXzEwMzkpLCAKLQkuQShuXzI3MDcpKTsKLSAgIENMS01YMlgxMiBnMjgyNjQgKC5ZKG5fMjU0MCksIAotCS5TMChuXzI4MTEpLCAKLQkuQihuXzEyMjApLCAKLQkuQShuXzI2NjEpKTsKLSAgIEFEREZIWDQgZzI4MjY1ICguUygpLCAKLQkuQ08obl8yNTQxKSwgCi0JLkNJKG5fMjY5MSksIAotCS5CKG5fMTE4NiksIAotCS5BKG5fMTE3NSkpOwotICAgQ0xLTVgyWDEyIGcyODI2NiAoLlkobl8yNTQyKSwgCi0JLlMwKG5fMjgxMiksIAotCS5CKG5fMTQ2MCksIAotCS5BKG5fMTUzMCkpOwotICAgWE9SMlg0IGcyODI2NyAoLlkobl8yNTQzKSwgCi0JLkIobl8yODE0KSwgCi0JLkEobl8yNjYwKSk7Ci0gICBDTEtNWDJYMTIgZzI4MjY4ICguWShuXzI1NDQpLCAKLQkuUzAobl8yMDcpLCAKLQkuQihuXzEzOTEpLCAKLQkuQShuXzE1MjcpKTsKLSAgIFhOT1IyWDQgZzI4MjY5ICguWShaWzJdKSwgCi0JLkIobl8xODQpLCAKLQkuQShuXzI3MTQpKTsKLSAgIENMS01YMlgxMiBnMjgyNzAgKC5ZKG5fMjU0NiksIAotCS5TMChuXzI1ODcpLCAKLQkuQihuXzQ5NyksIAotCS5BKEJbN10pKTsKLSAgIENMS01YMlgxMiBnMjgyNzEgKC5ZKG5fMjU0NyksIAotCS5TMChuXzI4MTUpLCAKLQkuQihuXzQ5NiksIAotCS5BKEJbMTNdKSk7Ci0gICBDTEtNWDJYMTIgZzI4MjcyICguWShuXzI1NDgpLCAKLQkuUzAobl8yNTg4KSwgCi0JLkIobl8xMTY5KSwgCi0JLkEobl8yNjk4KSk7Ci0gICBDTEtNWDJYMTIgZzI4MjczICguWShuXzI1NDkpLCAKLQkuUzAobl8yNTg5KSwgCi0JLkIobl8yNzAxKSwgCi0JLkEobl8xMTY0KSk7Ci0gICBYTk9SMlg0IGcyODI3NCAoLlkobl8yNTUwKSwgCi0JLkIobl8yODA3KSwgCi0JLkEobl81MzkpKTsKLSAgIFhOT1IyWDQgZzI4Mjc1ICguWShuXzI1NTEpLCAKLQkuQihuXzI4MDkpLCAKLQkuQShuXzU1MCkpOwotICAgQ0xLTVgyWDEyIGcyODI3NiAoLlkobl8yNTUyKSwgCi0JLlMwKG5fMjgwNiksIAotCS5CKG5fNjg4KSwgCi0JLkEobl82ODcpKTsKLSAgIFhOT1IyWDQgZzI4Mjc3ICguWShuXzI1NTMpLCAKLQkuQihuXzI2MTUpLCAKLQkuQShuXzI4MDQpKTsKLSAgIFhOT1IyWDQgZzI4Mjc4ICguWShuXzI1NTQpLCAKLQkuQihuXzI4MTMpLCAKLQkuQShuXzI2NzApKTsKLSAgIENMS01YMlgxMiBnMjgyNzkgKC5ZKG5fMjU1NSksIAotCS5TMChuXzI1OTIpLCAKLQkuQihuXzI2NDYpLCAKLQkuQShuXzEyNDApKTsKLSAgIFhPUjJYNCBnMjgyODAgKC5ZKG5fMjU1NiksIAotCS5CKG5fMTkwKSwgCi0JLkEobl8yOTI1KSk7Ci0gICBYT1IyWDQgZzI4MjgxICguWShuXzI1NTcpLCAKLQkuQihuXzE0OTEpLCAKLQkuQShuXzI3MDMpKTsKLSAgIENMS01YMlgxMiBnMjgyODIgKC5ZKG5fMjU1OCksIAotCS5TMChuXzE4OSksIAotCS5CKG5fMjY4OSksIAotCS5BKG5fMTE4MykpOwotICAgWE9SMlg0IGcyODI4MyAoLlkobl8yNTU5KSwgCi0JLkIobl8xNDg5KSwgCi0JLkEobl8yNjU0KSk7Ci0gICBDTEtNWDJYMTIgZzI4Mjg0ICguWShuXzI1NjApLCAKLQkuUzAobl8yMDkpLCAKLQkuQihuXzU1NCksIAotCS5BKG5fNTU1KSk7Ci0gICBDTEtNWDJYMTIgZzI4Mjg1ICguWShuXzI1NjEpLCAKLQkuUzAobl8yMTIpLCAKLQkuQihuXzY3MiksIAotCS5BKG5fNjczKSk7Ci0gICBDTEtNWDJYMTIgZzI4Mjg2ICguWShuXzI1NjIpLCAKLQkuUzAobl8xNDcyKSwgCi0JLkIobl8yNjEyKSwgCi0JLkEobl8xMjg2KSk7Ci0gICBDTEtNWDJYMTIgZzI4Mjg3ICguWShuXzI1NjMpLCAKLQkuUzAobl8xNDg2KSwgCi0JLkIoQls5XSksIAotCS5BKG5fNTEyKSk7Ci0gICBDTEtNWDJYMTIgZzI4Mjg4ICguWShuXzI1NjQpLCAKLQkuUzAobl8xOTYpLCAKLQkuQihCWzExXSksIAotCS5BKG5fNTE2KSk7Ci0gICBYT1IyWDQgZzI4Mjg5ICguWShuXzI1NjUpLCAKLQkuQihuXzIwOCksIAotCS5BKG5fMjYyMykpOwotICAgQ0xLTVgyWDEyIGcyODI5MCAoLlkobl8yNTY2KSwgCi0JLlMwKG5fMTQ3MSksIAotCS5CKG5fMjY5MyksIAotCS5BKG5fMTE3NykpOwotICAgWE5PUjJYNCBnMjgyOTEgKC5ZKG5fMjU2NyksIAotCS5CKG5fMTQ3NyksIAotCS5BKG5fMjYzMCkpOwotICAgWE9SMlg0IGcyODI5MiAoLlkobl8yNTY4KSwgCi0JLkIobl8xNDgwKSwgCi0JLkEobl8yNjk3KSk7Ci0gICBDTEtNWDJYMTIgZzI4MjkzICguWShuXzI1NjkpLCAKLQkuUzAobl8yMDYpLCAKLQkuQihuXzI2MjcpLCAKLQkuQShuXzEyNjUpKTsKLSAgIENMS01YMlgxMiBnMjgyOTQgKC5ZKG5fMjU3MCksIAotCS5TMChuXzE0ODIpLCAKLQkuQihuXzI2MzgpLCAKLQkuQShuXzEyNDkpKTsKLSAgIFhPUjJYNCBnMjgyOTUgKC5ZKG5fMjU3MSksIAotCS5CKG5fMTk5KSwgCi0JLkEobl8yNjUxKSk7Ci0gICBYT1IyWDQgZzI4Mjk2ICguWShuXzI1NzIpLCAKLQkuQihuXzE5NCksIAotCS5BKG5fMjY2NykpOwotICAgWE9SMlg0IGcyODI5NyAoLlkobl8yNTczKSwgCi0JLkIobl8yMDEpLCAKLQkuQShuXzI2NjUpKTsKLSAgIFhPUjJYNCBnMjgyOTggKC5ZKG5fMjU3NCksIAotCS5CKG5fMjAyKSwgCi0JLkEobl81ODMpKTsKLSAgIFhPUjJYNCBnMjgyOTkgKC5ZKG5fMjU3NSksIAotCS5CKG5fMjEzKSwgCi0JLkEobl8yNjc4KSk7Ci0gICBYT1IyWDQgZzI4MzAwICguWShuXzI1NzYpLCAKLQkuQihuXzE0NzUpLCAKLQkuQShuXzI2NDQpKTsKLSAgIENMS01YMlgxMiBnMjgzMDEgKC5ZKG5fMjU3NyksIAotCS5TMChuXzE5MSksIAotCS5CKG5fMTIpLCAKLQkuQShuXzc2NykpOwotICAgQURERkhYNCBnMjgzMDIgKC5TKCksIAotCS5DTyhuXzI1NzgpLCAKLQkuQ0kobl8xMDU1KSwgCi0JLkIobl8yNzE0KSwgCi0JLkEobl8xMSkpOwotICAgQURERkhYNCBnMjgzMDMgKC5TKCksIAotCS5DTyhuXzI1NzkpLCAKLQkuQ0kobl8yNTk4KSwgCi0JLkIobl8xMTY0KSwgCi0JLkEobl8yNTk3KSk7Ci0gICBBRERGSFg0IGcyODMwNCAoLlMoKSwgCi0JLkNPKG5fMjU4MCksIAotCS5DSShuXzExNzkpLCAKLQkuQihuXzI2MTUpLCAKLQkuQShuXzg2NSkpOwotICAgQURERkhYNCBnMjgzMDUgKC5TKCksIAotCS5DTyhuXzI1ODEpLCAKLQkuQ0kobl8xMjU3KSwgCi0JLkIobl81MzkpLCAKLQkuQShuXzEyNjIpKTsKLSAgIEFEREZIWDQgZzI4MzA2ICguUygpLCAKLQkuQ08obl8yNTgyKSwgCi0JLkNJKG5fMjY0OCksIAotCS5CKG5fMTI0MCksIAotCS5BKG5fNTIzKSk7Ci0gICBBRERGSFg0IGcyODMwNyAoLlMoKSwgCi0JLkNPKG5fMjU4MyksIAotCS5DSShuXzEyMDIpLCAKLQkuQihuXzEyMDcpLCAKLQkuQShuXzI2NzApKTsKLSAgIEFEREZIWDQgZzI4MzA4ICguUygpLCAKLQkuQ08obl8yNTg0KSwgCi0JLkNJKG5fMTI5MCksIAotCS5CKG5fMTMwMSksIAotCS5BKG5fNTUwKSk7Ci0gICBBRERGSFg0IGcyODMwOSAoLlMoKSwgCi0JLkNPKG5fMjU4NSksIAotCS5DSShuXzI1OTkpLCAKLQkuQihuXzExNjYpLCAKLQkuQShCWzddKSk7Ci0gICBBRERGSFg0IGcyODMxMCAoLlMoKSwgCi0JLkNPKG5fMjU4NiksIAotCS5DSShuXzEyNTkpLCAKLQkuQihuXzExNjkpLCAKLQkuQShuXzc3MCkpOwotICAgQ0xLTVgyWDEyIGcyODMxMSAoLlkobl8yNTg3KSwgCi0JLlMwKG5fMjU5OSksIAotCS5CKG5fMTE2NiksIAotCS5BKG5fMjcwMCkpOwotICAgQ0xLTVgyWDEyIGcyODMxMiAoLlkobl8yNTg4KSwgCi0JLlMwKG5fNzcwKSwgCi0JLkIobl8xMjU5KSwgCi0JLkEobl8yNjMxKSk7Ci0gICBYTk9SMlg0IGcyODMxMyAoLlkobl8yNTg5KSwgCi0JLkIobl8yNTk4KSwgCi0JLkEobl8yNTk3KSk7Ci0gICBDTEtNWDJYMTIgZzI4MzE0ICguWShuXzI1OTApLCAKLQkuUzAobl81NjYpLCAKLQkuQihuXzI2MTcpLCAKLQkuQShuXzEyNzgpKTsKLSAgIFhPUjJYNCBnMjgzMTUgKC5ZKG5fMjU5MSksIAotCS5CKG5fMjcxOSksIAotCS5BKG5fMjY3NikpOwotICAgQ0xLTVgyWDEyIGcyODMxNiAoLlkobl8yNTkyKSwgCi0JLlMwKG5fMjY0OCksIAotCS5CKG5fNTIzKSwgCi0JLkEoQls1XSkpOwotICAgQURERkhYNCBnMjgzMTcgKC5TKCksIAotCS5DTyhuXzI1OTMpLCAKLQkuQ0kobl8xMjExKSwgCi0JLkIobl82ODgpLCAKLQkuQShuXzk2MCkpOwotICAgQURERkhYNCBnMjgzMTggKC5TKCksIAotCS5DTyhuXzI1OTQpLCAKLQkuQ0kobl8xMjkyKSwgCi0JLkIobl81NjMpLCAKLQkuQShCWzEzXSkpOwotICAgWE9SMlg0IGcyODMxOSAoLlkobl8yNTk1KSwgCi0JLkIobl8yNjgyKSwgCi0JLkEobl8xNDYpKTsKLSAgIENMS01YMlgxMiBnMjgzMjAgKC5ZKG5fMjU5NiksIAotCS5TMChuXzI4MjYpLCAKLQkuQihuXzUyMiksIAotCS5BKEJbMTVdKSk7Ci0gICBDTEtNWDJYMTIgZzI4MzIxICguWShuXzI1OTcpLCAKLQkuUzAobl8yODIxKSwgCi0JLkIobl81MjMpLCAKLQkuQShCWzVdKSk7Ci0gICBDTEtNWDJYMTIgZzI4MzIyICguWShuXzI1OTgpLCAKLQkuUzAobl8yODU0KSwgCi0JLkIobl81MTYpLCAKLQkuQShCWzExXSkpOwotICAgQ0xLTVgyWDEyIGcyODMyMyAoLlkobl8yNTk5KSwgCi0JLlMwKG5fMjgyMyksIAotCS5CKG5fNTEyKSwgCi0JLkEoQls5XSkpOwotICAgQ0xLTVgyWDEyIGcyODMyNCAoLlkobl8yNjAwKSwgCi0JLlMwKG5fMjgzMiksIAotCS5CKG5fNTIyKSwgCi0JLkEoQlsxNV0pKTsKLSAgIENMS01YMlgxMiBnMjgzMjUgKC5ZKG5fMjYwMSksIAotCS5TMChuXzI4ODUpLCAKLQkuQihCWzNdKSwgCi0JLkEobl81MTkpKTsKLSAgIENMS01YMlgxMiBnMjgzMjYgKC5ZKG5fMjYwMiksIAotCS5TMChuXzI4NTYpLCAKLQkuQihuXzUyMiksIAotCS5BKEJbMTVdKSk7Ci0gICBDTEtNWDJYMTIgZzI4MzI3ICguWShuXzI2MDMpLCAKLQkuUzAobl8yODUzKSwgCi0JLkIobl81MTIpLCAKLQkuQShCWzldKSk7Ci0gICBDTEtNWDJYMTIgZzI4MzI4ICguWShuXzI2MDQpLCAKLQkuUzAobl8yOTA0KSwgCi0JLkIoQlsxM10pLCAKLQkuQShuXzQ5NikpOwotICAgQ0xLTVgyWDEyIGcyODMyOSAoLlkobl8yNjA1KSwgCi0JLlMwKG5fMjgzNSksIAotCS5CKG5fNDk2KSwgCi0JLkEoQlsxM10pKTsKLSAgIENMS01YMlgxMiBnMjgzMzAgKC5ZKG5fMjYwNiksIAotCS5TMChuXzI5MTQpLCAKLQkuQihuXzQ5NyksIAotCS5BKEJbN10pKTsKLSAgIENMS01YMlgxMiBnMjgzMzEgKC5ZKG5fMjYwNyksIAotCS5TMChuXzI4MjgpLCAKLQkuQihuXzUyMiksIAotCS5BKEJbMTVdKSk7Ci0gICBDTEtNWDJYMTIgZzI4MzMyICguWShuXzI2MDgpLCAKLQkuUzAobl8yODk3KSwgCi0JLkIoQlsxNV0pLCAKLQkuQShuXzUyMikpOwotICAgQ0xLTVgyWDEyIGcyODMzMyAoLlkobl8yNjA5KSwgCi0JLlMwKG5fMjgzOCksIAotCS5CKG5fNDk2KSwgCi0JLkEoQlsxM10pKTsKLSAgIENMS01YMlgxMiBnMjgzMzQgKC5ZKG5fMjYxMCksIAotCS5TMChuXzI5MTUpLCAKLQkuQihuXzUxOSksIAotCS5BKEJbM10pKTsKLSAgIENMS01YMlgxMiBnMjgzMzUgKC5ZKG5fMjYxMSksIAotCS5TMChuXzI4MzkpLCAKLQkuQihuXzUyMyksIAotCS5BKEJbNV0pKTsKLSAgIENMS01YMlgxMiBnMjgzMzYgKC5ZKG5fMjYxMiksIAotCS5TMChuXzI4NDEpLCAKLQkuQihCWzldKSwgCi0JLkEobl81MTIpKTsKLSAgIFhPUjJYNCBnMjgzMzcgKC5ZKFpbMV0pLCAKLQkuQihuXzMpLCAKLQkuQShuXzI3MTIpKTsKLSAgIENMS01YMlgxMiBnMjgzMzggKC5ZKG5fMjYxNCksIAotCS5TMChuXzI4NTUpLCAKLQkuQihCWzE1XSksIAotCS5BKG5fNTIyKSk7Ci0gICBDTEtNWDJYMTIgZzI4MzM5ICguWShuXzI2MTUpLCAKLQkuUzAobl8yOTA5KSwgCi0JLkIobl81MjMpLCAKLQkuQShCWzVdKSk7Ci0gICBDTEtNWDJYMTIgZzI4MzQwICguWShuXzI2MTYpLCAKLQkuUzAobl8yODI3KSwgCi0JLkIobl80OTYpLCAKLQkuQShCWzEzXSkpOwotICAgQ0xLTVgyWDEyIGcyODM0MSAoLlkobl8yNjE3KSwgCi0JLlMwKG5fMjkwNSksIAotCS5CKG5fNTIyKSwgCi0JLkEoQlsxNV0pKTsKLSAgIENMS01YMlgxMiBnMjgzNDIgKC5ZKG5fMjYxOCksIAotCS5TMChuXzI4NDcpLCAKLQkuQihCWzEzXSksIAotCS5BKG5fNDk2KSk7Ci0gICBDTEtNWDJYMTIgZzI4MzQzICguWShuXzI2MTkpLCAKLQkuUzAobl8yODQ4KSwgCi0JLkIobl81MTYpLCAKLQkuQShCWzExXSkpOwotICAgQ0xLTVgyWDEyIGcyODM0NCAoLlkobl8yNjIwKSwgCi0JLlMwKG5fMjkwOCksIAotCS5CKEJbNV0pLCAKLQkuQShuXzUyMykpOwotICAgQ0xLTVgyWDEyIGcyODM0NSAoLlkobl8yNjIxKSwgCi0JLlMwKG5fMjg4MCksIAotCS5CKG5fNDk2KSwgCi0JLkEoQlsxM10pKTsKLSAgIENMS01YMlgxMiBnMjgzNDYgKC5ZKG5fMjYyMiksIAotCS5TMChuXzI4NTEpLCAKLQkuQihuXzQ5NyksIAotCS5BKEJbN10pKTsKLSAgIENMS01YMlgxMiBnMjgzNDcgKC5ZKG5fMjYyMyksIAotCS5TMChuXzI4NTIpLCAKLQkuQihuXzUxMiksIAotCS5BKEJbOV0pKTsKLSAgIENMS01YMlgxMiBnMjgzNDggKC5ZKG5fMjYyNCksIAotCS5TMChuXzI4NTgpLCAKLQkuQihCWzVdKSwgCi0JLkEobl81MjMpKTsKLSAgIENMS01YMlgxMiBnMjgzNDkgKC5ZKG5fMjYyNSksIAotCS5TMChuXzI5MDcpLCAKLQkuQihCWzNdKSwgCi0JLkEobl81MTkpKTsKLSAgIENMS01YMlgxMiBnMjgzNTAgKC5ZKG5fMjYyNiksIAotCS5TMChuXzI4ODgpLCAKLQkuQihuXzUxNiksIAotCS5BKEJbMTFdKSk7Ci0gICBDTEtNWDJYMTIgZzI4MzUxICguWShuXzI2MjcpLCAKLQkuUzAobl8yODYyKSwgCi0JLkIobl81MTIpLCAKLQkuQShCWzldKSk7Ci0gICBDTEtNWDJYMTIgZzI4MzUyICguWShuXzI2MjgpLCAKLQkuUzAobl8yODYxKSwgCi0JLkIobl80OTYpLCAKLQkuQShCWzEzXSkpOwotICAgQ0xLTVgyWDEyIGcyODM1MyAoLlkobl8yNjI5KSwgCi0JLlMwKG5fMjg2MyksIAotCS5CKG5fNDk3KSwgCi0JLkEoQls3XSkpOwotICAgQ0xLTVgyWDEyIGcyODM1NCAoLlkobl8yNjMwKSwgCi0JLlMwKG5fMjg5OSksIAotCS5CKEJbN10pLCAKLQkuQShuXzQ5NykpOwotICAgQ0xLTVgyWDEyIGcyODM1NSAoLlkobl8yNjMxKSwgCi0JLlMwKG5fMjg4MSksIAotCS5CKG5fNDk3KSwgCi0JLkEoQls3XSkpOwotICAgQ0xLTVgyWDEyIGcyODM1NiAoLlkobl8yNjMyKSwgCi0JLlMwKG5fMjg5MSksIAotCS5CKG5fNTE2KSwgCi0JLkEoQlsxMV0pKTsKLSAgIENMS01YMlgxMiBnMjgzNTcgKC5ZKG5fMjYzMyksIAotCS5TMChuXzI4NjUpLCAKLQkuQihCWzExXSksIAotCS5BKG5fNTE2KSk7Ci0gICBDTEtNWDJYMTIgZzI4MzU4ICguWShuXzI2MzQpLCAKLQkuUzAobl8yODUwKSwgCi0JLkIobl81MTIpLCAKLQkuQShCWzldKSk7Ci0gICBDTEtNWDJYMTIgZzI4MzU5ICguWShuXzI2MzUpLCAKLQkuUzAobl8yODk2KSwgCi0JLkIoQls1XSksIAotCS5BKG5fNTIzKSk7Ci0gICBDTEtNWDJYMTIgZzI4MzYwICguWShuXzI2MzYpLCAKLQkuUzAobl8yODY4KSwgCi0JLkIoQls5XSksIAotCS5BKG5fNTEyKSk7Ci0gICBDTEtNWDJYMTIgZzI4MzYxICguWShuXzI2MzcpLCAKLQkuUzAobl8yODc0KSwgCi0JLkIoQls3XSksIAotCS5BKG5fNDk3KSk7Ci0gICBDTEtNWDJYMTIgZzI4MzYyICguWShuXzI2MzgpLCAKLQkuUzAobl8yODcyKSwgCi0JLkIoQls1XSksIAotCS5BKG5fNTIzKSk7Ci0gICBDTEtNWDJYMTIgZzI4MzYzICguWShuXzI2MzkpLCAKLQkuUzAobl8yODQ1KSwgCi0JLkIoQls1XSksIAotCS5BKG5fNTIzKSk7Ci0gICBDTEtNWDJYMTIgZzI4MzY0ICguWShuXzI2NDApLCAKLQkuUzAobl8yODY3KSwgCi0JLkIobl81MTkpLCAKLQkuQShCWzNdKSk7Ci0gICBDTEtNWDJYMTIgZzI4MzY1ICguWShuXzI2NDEpLCAKLQkuUzAobl8yODg3KSwgCi0JLkIoQlsxM10pLCAKLQkuQShuXzQ5NikpOwotICAgQ0xLTVgyWDEyIGcyODM2NiAoLlkobl8yNjQyKSwgCi0JLlMwKG5fMjg0OSksIAotCS5CKEJbN10pLCAKLQkuQShuXzQ5NykpOwotICAgQ0xLTVgyWDEyIGcyODM2NyAoLlkobl8yNjQzKSwgCi0JLlMwKG5fMjg2NiksIAotCS5CKEJbMTVdKSwgCi0JLkEobl81MjIpKTsKLSAgIENMS01YMlgxMiBnMjgzNjggKC5ZKG5fMjY0NCksIAotCS5TMChuXzI4NzEpLCAKLQkuQihCWzExXSksIAotCS5BKG5fNTE2KSk7Ci0gICBDTEtNWDJYMTIgZzI4MzY5ICguWShuXzI2NDUpLCAKLQkuUzAobl8yODM2KSwgCi0JLkIobl81MTYpLCAKLQkuQShCWzExXSkpOwotICAgQ0xLTVgyWDEyIGcyODM3MCAoLlkobl8yNjQ2KSwgCi0JLlMwKG5fMjg4MyksIAotCS5CKG5fNTE2KSwgCi0JLkEoQlsxMV0pKTsKLSAgIENMS01YMlgxMiBnMjgzNzEgKC5ZKG5fMjY0NyksIAotCS5TMChuXzI5MjQpLCAKLQkuQihCWzExXSksIAotCS5BKG5fNTE2KSk7Ci0gICBDTEtNWDJYMTIgZzI4MzcyICguWShuXzI2NDgpLCAKLQkuUzAobl8yODk1KSwgCi0JLkIoQls3XSksIAotCS5BKG5fNDk3KSk7Ci0gICBDTEtNWDJYMTIgZzI4MzczICguWShuXzI2NDkpLCAKLQkuUzAobl8yODkwKSwgCi0JLkIobl80OTcpLCAKLQkuQShCWzddKSk7Ci0gICBDTEtNWDJYMTIgZzI4Mzc0ICguWShuXzI2NTApLCAKLQkuUzAobl8yOTExKSwgCi0JLkIoQlsxNV0pLCAKLQkuQShuXzUyMikpOwotICAgQ0xLTVgyWDEyIGcyODM3NSAoLlkobl8yNjUxKSwgCi0JLlMwKG5fMjgzNCksIAotCS5CKG5fNTE5KSwgCi0JLkEoQlszXSkpOwotICAgQ0xLTVgyWDEyIGcyODM3NiAoLlkobl8yNjUyKSwgCi0JLlMwKG5fMjg4NiksIAotCS5CKG5fNTEyKSwgCi0JLkEoQls5XSkpOwotICAgQ0xLTVgyWDEyIGcyODM3NyAoLlkobl8yNjUzKSwgCi0JLlMwKG5fMjg3NSksIAotCS5CKG5fNTEyKSwgCi0JLkEoQls5XSkpOwotICAgQ0xLTVgyWDEyIGcyODM3OCAoLlkobl8yNjU0KSwgCi0JLlMwKG5fMjg4OSksIAotCS5CKG5fNTEyKSwgCi0JLkEoQls5XSkpOwotICAgQ0xLTVgyWDEyIGcyODM3OSAoLlkobl8yNjU1KSwgCi0JLlMwKG5fMjkxOSksIAotCS5CKEJbMTVdKSwgCi0JLkEobl81MjIpKTsKLSAgIENMS01YMlgxMiBnMjgzODAgKC5ZKG5fMjY1NiksIAotCS5TMChuXzI4OTMpLCAKLQkuQihuXzUyMiksIAotCS5BKEJbMTVdKSk7Ci0gICBDTEtNWDJYMTIgZzI4MzgxICguWShuXzI2NTcpLCAKLQkuUzAobl8yODMwKSwgCi0JLkIobl81MTkpLCAKLQkuQShCWzNdKSk7Ci0gICBDTEtNWDJYMTIgZzI4MzgyICguWShuXzI2NTgpLCAKLQkuUzAobl8yOTA2KSwgCi0JLkIoQls5XSksIAotCS5BKG5fNTEyKSk7Ci0gICBDTEtNWDJYMTIgZzI4MzgzICguWShuXzI2NTkpLCAKLQkuUzAobl8yOTEzKSwgCi0JLkIobl80OTcpLCAKLQkuQShCWzddKSk7Ci0gICBDTEtNWDJYMTIgZzI4Mzg0ICguWShuXzI2NjApLCAKLQkuUzAobl8yODgyKSwgCi0JLkIoQlsxM10pLCAKLQkuQShuXzQ5NikpOwotICAgQ0xLTVgyWDEyIGcyODM4NSAoLlkobl8yNjYxKSwgCi0JLlMwKG5fMjg5NCksIAotCS5CKEJbNV0pLCAKLQkuQShuXzUyMykpOwotICAgQ0xLTVgyWDEyIGcyODM4NiAoLlkobl8yNjYyKSwgCi0JLlMwKG5fMjgyOSksIAotCS5CKEJbMTNdKSwgCi0JLkEobl80OTYpKTsKLSAgIENMS01YMlgxMiBnMjgzODcgKC5ZKG5fMjY2MyksIAotCS5TMChuXzI4NzMpLCAKLQkuQihuXzUyMyksIAotCS5BKEJbNV0pKTsKLSAgIENMS01YMlgxMiBnMjgzODggKC5ZKG5fMjY2NCksIAotCS5TMChuXzI4NDIpLCAKLQkuQihuXzUxOSksIAotCS5BKEJbM10pKTsKLSAgIENMS01YMlgxMiBnMjgzODkgKC5ZKG5fMjY2NSksIAotCS5TMChuXzI4MzcpLCAKLQkuQihuXzUyMyksIAotCS5BKEJbNV0pKTsKLSAgIENMS01YMlgxMiBnMjgzOTAgKC5ZKG5fMjY2NiksIAotCS5TMChuXzI5MjEpLCAKLQkuQihuXzUxNiksIAotCS5BKEJbMTFdKSk7Ci0gICBDTEtNWDJYMTIgZzI4MzkxICguWShuXzI2NjcpLCAKLQkuUzAobl8yODMxKSwgCi0JLkIoQlsxM10pLCAKLQkuQShuXzQ5NikpOwotICAgQ0xLTVgyWDEyIGcyODM5MiAoLlkobl8yNjY4KSwgCi0JLlMwKG5fMjg3MCksIAotCS5CKG5fNDk3KSwgCi0JLkEoQls3XSkpOwotICAgQ0xLTVgyWDEyIGcyODM5MyAoLlkobl8yNjY5KSwgCi0JLlMwKG5fMjkwMiksIAotCS5CKG5fNDk2KSwgCi0JLkEoQlsxM10pKTsKLSAgIENMS01YMlgxMiBnMjgzOTQgKC5ZKG5fMjY3MCksIAotCS5TMChuXzI4NzgpLCAKLQkuQihCWzExXSksIAotCS5BKG5fNTE2KSk7Ci0gICBDTEtNWDJYMTIgZzI4Mzk1ICguWShuXzI2NzEpLCAKLQkuUzAobl8yODU3KSwgCi0JLkIobl80OTYpLCAKLQkuQShCWzEzXSkpOwotICAgQ0xLTVgyWDEyIGcyODM5NiAoLlkobl8yNjcyKSwgCi0JLlMwKG5fMjg0MyksIAotCS5CKEJbM10pLCAKLQkuQShuXzUxOSkpOwotICAgQ0xLTVgyWDEyIGcyODM5NyAoLlkobl8yNjczKSwgCi0JLlMwKG5fMjkxOCksIAotCS5CKG5fNTIzKSwgCi0JLkEoQls1XSkpOwotICAgQ0xLTVgyWDEyIGcyODM5OCAoLlkobl8yNjc0KSwgCi0JLlMwKG5fMjgyMCksIAotCS5CKEJbMTVdKSwgCi0JLkEobl81MjIpKTsKLSAgIENMS01YMlgxMiBnMjgzOTkgKC5ZKG5fMjY3NSksIAotCS5TMChuXzI5MDApLCAKLQkuQihuXzUyMyksIAotCS5BKEJbNV0pKTsKLSAgIENMS01YMlgxMiBnMjg0MDAgKC5ZKG5fMjY3NiksIAotCS5TMChuXzI4NDApLCAKLQkuQihCWzNdKSwgCi0JLkEobl81MTkpKTsKLSAgIENMS01YMlgxMiBnMjg0MDEgKC5ZKG5fMjY3NyksIAotCS5TMChuXzI5MDEpLCAKLQkuQihCWzddKSwgCi0JLkEobl80OTcpKTsKLSAgIENMS01YMlgxMiBnMjg0MDIgKC5ZKG5fMjY3OCksIAotCS5TMChuXzI4OTgpLCAKLQkuQihCWzExXSksIAotCS5BKG5fNTE2KSk7Ci0gICBDTEtNWDJYMTIgZzI4NDAzICguWShuXzI2NzkpLCAKLQkuUzAobl8yODI1KSwgCi0JLkIobl81MjMpLCAKLQkuQShCWzVdKSk7Ci0gICBDTEtNWDJYMTIgZzI4NDA0ICguWShuXzI2ODApLCAKLQkuUzAobl8yOTEyKSwgCi0JLkIobl81MTIpLCAKLQkuQShCWzldKSk7Ci0gICBDTEtNWDJYMTIgZzI4NDA1ICguWShuXzI2ODEpLCAKLQkuUzAobl8yODQ0KSwgCi0JLkIobl81MTkpLCAKLQkuQShCWzNdKSk7Ci0gICBDTEtNWDJYMTIgZzI4NDA2ICguWShuXzI2ODIpLCAKLQkuUzAobl8yODY0KSwgCi0JLkIobl81MTkpLCAKLQkuQShCWzNdKSk7Ci0gICBDTEtNWDJYMTIgZzI4NDA3ICguWShuXzI2ODMpLCAKLQkuUzAobl8yOTEwKSwgCi0JLkIobl81MTkpLCAKLQkuQShCWzNdKSk7Ci0gICBDTEtNWDJYMTIgZzI4NDA4ICguWShuXzI2ODQpLCAKLQkuUzAobl8yOTIwKSwgCi0JLkIoQls1XSksIAotCS5BKG5fNTIzKSk7Ci0gICBDTEtNWDJYMTIgZzI4NDA5ICguWShuXzI2ODUpLCAKLQkuUzAobl8yODg0KSwgCi0JLkIobl81MTkpLCAKLQkuQShCWzNdKSk7Ci0gICBDTEtNWDJYMTIgZzI4NDEwICguWShuXzI2ODYpLCAKLQkuUzAobl8yODc2KSwgCi0JLkIobl81MTkpLCAKLQkuQShCWzNdKSk7Ci0gICBDTEtNWDJYMTIgZzI4NDExICguWShuXzI2ODcpLCAKLQkuUzAobl8yODMzKSwgCi0JLkIoQlsxM10pLCAKLQkuQShuXzQ5NikpOwotICAgQ0xLTVgyWDEyIGcyODQxMiAoLlkobl8yNjg4KSwgCi0JLlMwKG5fMjg1OSksIAotCS5CKG5fNTE5KSwgCi0JLkEoQlszXSkpOwotICAgQ0xLTVgyWDEyIGcyODQxMyAoLlkobl8yNjg5KSwgCi0JLlMwKG5fMjg2MCksIAotCS5CKG5fNTE2KSwgCi0JLkEoQlsxMV0pKTsKLSAgIENMS01YMlgxMiBnMjg0MTQgKC5ZKG5fMjY5MCksIAotCS5TMChuXzI4NzkpLCAKLQkuQihCWzE1XSksIAotCS5BKG5fNTIyKSk7Ci0gICBDTEtNWDJYMTIgZzI4NDE1ICguWShuXzI2OTEpLCAKLQkuUzAobl8yOTIyKSwgCi0JLkIobl81MTYpLCAKLQkuQShCWzExXSkpOwotICAgQ0xLTVgyWDEyIGcyODQxNiAoLlkobl8yNjkyKSwgCi0JLlMwKG5fMjkyMyksIAotCS5CKEJbN10pLCAKLQkuQShuXzQ5NykpOwotICAgQ0xLTVgyWDEyIGcyODQxNyAoLlkobl8yNjkzKSwgCi0JLlMwKG5fMjg2OSksIAotCS5CKEJbN10pLCAKLQkuQShuXzQ5NykpOwotICAgQ0xLTVgyWDEyIGcyODQxOCAoLlkobl8yNjk0KSwgCi0JLlMwKG5fMjkxNiksIAotCS5CKEJbN10pLCAKLQkuQShuXzQ5NykpOwotICAgQ0xLTVgyWDEyIGcyODQxOSAoLlkobl8yNjk1KSwgCi0JLlMwKG5fMjg5MiksIAotCS5CKG5fNTIyKSwgCi0JLkEoQlsxNV0pKTsKLSAgIENMS01YMlgxMiBnMjg0MjAgKC5ZKG5fMjY5NiksIAotCS5TMChuXzI4NzcpLCAKLQkuQihuXzUxMiksIAotCS5BKEJbOV0pKTsKLSAgIENMS01YMlgxMiBnMjg0MjEgKC5ZKG5fMjY5NyksIAotCS5TMChuXzI5MTcpLCAKLQkuQihCWzldKSwgCi0JLkEobl81MTIpKTsKLSAgIENMS01YMlgxMiBnMjg0MjIgKC5ZKG5fMjY5OCksIAotCS5TMChuXzI4NDYpLCAKLQkuQihuXzUyMiksIAotCS5BKEJbMTVdKSk7Ci0gICBDTEtNWDJYMTIgZzI4NDIzICguWShuXzI2OTkpLCAKLQkuUzAobl8yOTAzKSwgCi0JLkIobl81MTYpLCAKLQkuQShCWzExXSkpOwotICAgQ0xLTVgyWDEyIGcyODQyNCAoLlkobl8yNzAwKSwgCi0JLlMwKG5fMjgyNCksIAotCS5CKEJbMTNdKSwgCi0JLkEobl80OTYpKTsKLSAgIENMS01YMlgxMiBnMjg0MjUgKC5ZKG5fMjcwMSksIAotCS5TMChuXzI4MjIpLCAKLQkuQihCWzldKSwgCi0JLkEobl81MTIpKTsKLSAgIENMS01YMlgxMiBnMjg0MjYgKC5ZKG5fMjcwMiksIAotCS5TMChuXzI5ODkpLCAKLQkuQihuXzQ5NyksIAotCS5BKEJbN10pKTsKLSAgIENMS01YMlgxMiBnMjg0MjcgKC5ZKG5fMjcwMyksIAotCS5TMChuXzg3NCksIAotCS5CKG5fNTEyKSwgCi0JLkEoQls5XSkpOwotICAgQ0xLTVgyWDEyIGcyODQyOCAoLlkobl8yNzA0KSwgCi0JLlMwKG5fODgyKSwgCi0JLkIobl81MTYpLCAKLQkuQShCWzExXSkpOwotICAgQ0xLTVgyWDEyIGcyODQyOSAoLlkobl8yNzA1KSwgCi0JLlMwKG5fMjk5MCksIAotCS5CKG5fNTE5KSwgCi0JLkEoQlszXSkpOwotICAgQ0xLTVgyWDEyIGcyODQzMCAoLlkobl8yNzA2KSwgCi0JLlMwKG5fMjk4OCksIAotCS5CKEJbNV0pLCAKLQkuQShuXzUyMykpOwotICAgQ0xLTVgyWDEyIGcyODQzMSAoLlkobl8yNzA3KSwgCi0JLlMwKG5fODU2KSwgCi0JLkIobl80OTYpLCAKLQkuQShCWzEzXSkpOwotICAgQ0xLTVgyWDEyIGcyODQzMiAoLlkobl8yNzA4KSwgCi0JLlMwKG5fMjk0MyksIAotCS5CKG5fNTA4KSwgCi0JLkEoQlsxXSkpOwotICAgQ0xLTVgyWDEyIGcyODQzMyAoLlkobl8yNzA5KSwgCi0JLlMwKG5fMjk0OCksIAotCS5CKG5fNTA4KSwgCi0JLkEoQlsxXSkpOwotICAgQ0xLTVgyWDEyIGcyODQzNCAoLlkobl8yNzEwKSwgCi0JLlMwKG5fMjk0MCksIAotCS5CKG5fNTA4KSwgCi0JLkEoQlsxXSkpOwotICAgQ0xLTVgyWDEyIGcyODQzNSAoLlkobl8yNzExKSwgCi0JLlMwKG5fMjkzOSksIAotCS5CKEJbMV0pLCAKLQkuQShuXzUwOCkpOwotICAgQ0xLTVgyWDEyIGcyODQzNiAoLlkobl8yNzEyKSwgCi0JLlMwKG5fMjk1MCksIAotCS5CKG5fNTA4KSwgCi0JLkEoQlsxXSkpOwotICAgQ0xLTVgyWDEyIGcyODQzNyAoLlkobl8yNzEzKSwgCi0JLlMwKG5fMjkzOCksIAotCS5CKG5fNTA4KSwgCi0JLkEoQlsxXSkpOwotICAgQ0xLTVgyWDEyIGcyODQzOCAoLlkobl8yNzE0KSwgCi0JLlMwKG5fMjk0NyksIAotCS5CKG5fNTA4KSwgCi0JLkEoQlsxXSkpOwotICAgQ0xLTVgyWDEyIGcyODQzOSAoLlkobl8yNzE1KSwgCi0JLlMwKG5fMjk0NSksIAotCS5CKG5fNTA4KSwgCi0JLkEoQlsxXSkpOwotICAgQ0xLTVgyWDEyIGcyODQ0MCAoLlkobl8yNzE2KSwgCi0JLlMwKG5fMjkzNiksIAotCS5CKEJbMV0pLCAKLQkuQShuXzUwOCkpOwotICAgQ0xLTVgyWDEyIGcyODQ0MSAoLlkobl8yNzE3KSwgCi0JLlMwKG5fMjk0MiksIAotCS5CKG5fNTA4KSwgCi0JLkEoQlsxXSkpOwotICAgQ0xLTVgyWDEyIGcyODQ0MiAoLlkobl8yNzE4KSwgCi0JLlMwKG5fMjk0NCksIAotCS5CKG5fNTA4KSwgCi0JLkEoQlsxXSkpOwotICAgQ0xLTVgyWDEyIGcyODQ0MyAoLlkobl8yNzE5KSwgCi0JLlMwKG5fMjkzNyksIAotCS5CKG5fNTA4KSwgCi0JLkEoQlsxXSkpOwotICAgQ0xLTVgyWDEyIGcyODQ0NCAoLlkobl8yNzIwKSwgCi0JLlMwKG5fMjk0OSksIAotCS5CKEJbMV0pLCAKLQkuQShuXzUwOCkpOwotICAgQ0xLTVgyWDEyIGcyODQ0NSAoLlkobl8yNzIxKSwgCi0JLlMwKG5fMjk0MSksIAotCS5CKG5fNTA4KSwgCi0JLkEoQlsxXSkpOwotICAgQ0xLTVgyWDEyIGcyODQ0NiAoLlkobl8yNzIyKSwgCi0JLlMwKG5fMjk0NiksIAotCS5CKEJbMV0pLCAKLQkuQShuXzUwOCkpOwotICAgQ0xLTVgyWDEyIGcyODQ0NyAoLlkobl8yNzIzKSwgCi0JLlMwKG5fNTM2KSwgCi0JLkIobl81NDMpLCAKLQkuQShuXzU0MikpOwotICAgTVhJMlgxIGcyODQ0OCAoLlkoWlsyOF0pLCAKLQkuUzAobl80NjApLCAKLQkuQihuXzI0NTYpLCAKLQkuQShuXzIwNDgpKTsKLSAgIFhOT1IyWDQgZzIgKC5ZKFpbMjRdKSwgCi0JLkIobl8yMzgxKSwgCi0JLkEobl8yMTkzKSk7Ci0gICBNWEkyWDEgZzI4NDQ5ICguWShaWzIxXSksIAotCS5TMChuXzQ0OCksIAotCS5CKG5fMjE4MCksIAotCS5BKG5fMjQyNCkpOwotICAgTVhJMlgxIGcyODQ1MCAoLlkoWlsyMF0pLCAKLQkuUzAobl8yMjIyKSwgCi0JLkIobl8yMjkwKSwgCi0JLkEobl8yMzg2KSk7Ci0gICBNWEkyWDEgZzI4NDUxICguWShaWzEyXSksIAotCS5TMChuXzIxMzEpLCAKLQkuQihuXzI0MDQpLCAKLQkuQShuXzIyNDUpKTsKLSAgIE1YSTJYMSBnMjg0NTIgKC5ZKFpbOF0pLCAKLQkuUzAobl8yMDAyKSwgCi0JLkIobl8yNDE5KSwgCi0JLkEobl8yMjEzKSk7Ci0gICBNWEkyWDEgZzI4NDUzICguWShuXzI3MzApLCAKLQkuUzAobl8zNjUpLCAKLQkuQihuXzE5MDQpLCAKLQkuQShuXzI0OTMpKTsKLSAgIE1YSTJYMSBnMjg0NTQgKC5ZKFpbNV0pLCAKLQkuUzAobl8xODIzKSwgCi0JLkIobl8yNTEyKSwgCi0JLkEobl8xOTIxKSk7Ci0gICBNWEkyWDEgZzI4NDU1ICguWShuXzI3MzIpLCAKLQkuUzAobl8yOTMpLCAKLQkuQihuXzI0ODMpLCAKLQkuQShuXzE5MTkpKTsKLSAgIFhPUjJYNCBnMjg0NTYgKC5ZKG5fMjczMyksIAotCS5CKG5fMTgzMiksIAotCS5BKG5fMjU3MikpOwotICAgTVhJMlgxIGcyODQ1NyAoLlkobl8yNzM0KSwgCi0JLlMwKG5fMzExKSwgCi0JLkIobl81OTEpLCAKLQkuQShuXzU5MCkpOwotICAgTVhJMlgxIGcyODQ1OCAoLlkobl8yNzM1KSwgCi0JLlMwKG5fMjk5KSwgCi0JLkIobl8xNTE4KSwgCi0JLkEobl8xNjU3KSk7Ci0gICBNWEkyWDEgZzI4NDU5ICguWShuXzI3MzYpLCAKLQkuUzAobl8yOTcpLCAKLQkuQihuXzEzNzcpLCAKLQkuQShuXzEzNzYpKTsKLSAgIE1YSTJYMSBnMjg0NjAgKC5ZKG5fMjczNyksIAotCS5TMChuXzE5NSksIAotCS5CKG5fMjU4MyksIAotCS5BKG5fMTY1OCkpOwotICAgWE5PUjJYNCBnMjg0NjEgKC5ZKG5fMjczOCksIAotCS5CKG5fMTQ3NiksIAotCS5BKG5fMTM0MikpOwotICAgTVhJMlgxIGcyODQ2MiAoLlkoWlszXSksIAotCS5TMChuXzE1NTEpLCAKLQkuQihuXzI1NzgpLCAKLQkuQShuXzE1MjQpKTsKLSAgIE1YSTJYMSBnMjg0NjMgKC5ZKG5fMjc0MCksIAotCS5TMChuXzE0OTMpLCAKLQkuQihuXzI2NTApLCAKLQkuQShuXzEyMzQpKTsKLSAgIEFPMjJYNCBnMjg0NjQgKC5ZKG5fMjc0MSksIAotCS5CMShuXzIzNzUpLCAKLQkuQjAobl8xOTI2KSwgCi0JLkExKG5fMjMzMCksIAotCS5BMChuXzI1MTApKTsKLSAgIE9BMjFYNCBnMjg0NjUgKC5ZKG5fMjc0MiksIAotCS5CMChuXzIzMjIpLCAKLQkuQTEobl8yMzIxKSwgCi0JLkEwKG5fMjA0OCkpOwotICAgT0EyMVg0IGcyODQ2NiAoLlkobl8yNzQzKSwgCi0JLkIwKG5fMjMwOSksIAotCS5BMShuXzIzMDgpLCAKLQkuQTAobl8yNDM4KSk7Ci0gICBPQTIxWDQgZzI4NDY3ICguWShuXzI3NDQpLCAKLQkuQjAobl8yMjkzKSwgCi0JLkExKG5fMjI5NCksIAotCS5BMChuXzIxODApKTsKLSAgIEFPMjJYNCBnMjg0NjggKC5ZKG5fMjc0NSksIAotCS5CMShuXzIzODkpLCAKLQkuQjAobl8yMjE2KSwgCi0JLkExKG5fMjI4MiksIAotCS5BMChuXzI0MTApKTsKLSAgIE9BMjJYNCBnMjg0NjkgKC5ZKG5fMjc0NiksIAotCS5CMShuXzIyNDcpLCAKLQkuQjAobl8yMDQ3KSwgCi0JLkExKG5fMjI0OCksIAotCS5BMChuXzI3NjQpKTsKLSAgIE9BMjJYNCBnMjg0NzAgKC5ZKG5fMjc0NyksIAotCS5CMShuXzI0MDcpLCAKLQkuQjAobl8yMDk4KSwgCi0JLkExKG5fMjIzNyksIAotCS5BMChuXzI0NDUpKTsKLSAgIEFPMjJYNCBnMjg0NzEgKC5ZKG5fMjc0OCksIAotCS5CMShuXzIyMTgpLCAKLQkuQjAobl8yMDI0KSwgCi0JLkExKG5fMjIyMSksIAotCS5BMChuXzI0NjgpKTsKLSAgIEFPMjJYNCBnMjg0NzIgKC5ZKG5fMjc0OSksIAotCS5CMShuXzI0MjUpLCAKLQkuQjAobl8yMTkyKSwgCi0JLkExKG5fMjE3OSksIAotCS5BMChuXzI0MTcpKTsKLSAgIEFPMjJYNCBnMjg0NzMgKC5ZKG5fMjc1MCksIAotCS5CMShuXzI0NDcpLCAKLQkuQjAobl8xODE3KSwgCi0JLkExKG5fMjE0MCksIAotCS5BMChuXzI1MjUpKTsKLSAgIE9BMjFYNCBnMjg0NzQgKC5ZKG5fMjc1MSksIAotCS5CMChuXzIxMjgpLCAKLQkuQTEobl8yMDQ0KSwgCi0JLkEwKG5fMjEyNikpOwotICAgT0EyMVg0IGcyODQ3NSAoLlkobl8yNzUyKSwgCi0JLkIwKG5fMjExOSksIAotCS5BMShuXzIxMjApLCAKLQkuQTAobl8yMDQ1KSk7Ci0gICBPQTIxWDQgZzI4NDc2ICguWShuXzI3NTMpLCAKLQkuQjAobl8yMTAxKSwgCi0JLkExKG5fMjEwMiksIAotCS5BMChuXzIwNzQpKTsKLSAgIE9BMjFYNCBnMjg0NzcgKC5ZKG5fMjc1NCksIAotCS5CMChuXzIxMDQpLCAKLQkuQTEobl8yMDQ2KSwgCi0JLkEwKG5fMjEwNSkpOwotICAgQU8yMlg0IGcyODQ3OCAoLlkobl8yNzU1KSwgCi0JLkIxKG5fMjc2MyksIAotCS5CMChuXzIwMDApLCAKLQkuQTEobl8yMDQzKSwgCi0JLkEwKG5fMjQ3NCkpOwotICAgT0EyMVg0IGcyODQ3OSAoLlkobl8yNzU2KSwgCi0JLkIwKG5fMTk3MiksIAotCS5BMShuXzIwNDkpLCAKLQkuQTAobl8xOTcxKSk7Ci0gICBBTzIyWDQgZzI4NDgwICguWShuXzI3NTcpLCAKLQkuQjEobl8yMDIzKSwgCi0JLkIwKG5fMjUxMSksIAotCS5BMShuXzI3NjUpLCAKLQkuQTAobl8xOTA2KSk7Ci0gICBPQTIxWDQgZzI4NDgxICguWShuXzI3NTgpLCAKLQkuQjAobl8yMDMwKSwgCi0JLkExKG5fMjAzNiksIAotCS5BMChuXzE5MjgpKTsKLSAgIE9BMjJYNCBnMjg0ODIgKC5ZKG5fMjc1OSksIAotCS5CMShuXzI3NjkpLCAKLQkuQjAobl8xOTA3KSwgCi0JLkExKG5fMTk5OSksIAotCS5BMChuXzI3NzgpKTsKLSAgIE9BMjFYNCBnMjg0ODMgKC5ZKG5fMjc2MCksIAotCS5CMChuXzE5NzcpLCAKLQkuQTEobl8xOTI5KSwgCi0JLkEwKG5fMTk4MCkpOwotICAgT0EyMVg0IGcyODQ4NCAoLlkobl8yNzYxKSwgCi0JLkIwKG5fMTk2NSksIAotCS5BMShuXzE5MDQpLCAKLQkuQTAobl8xOTYyKSk7Ci0gICBPQTIxWDQgZzI4NDg1ICguWShuXzI3NjIpLCAKLQkuQjAobl8xOTc2KSwgCi0JLkExKG5fMTk3OSksIAotCS5BMChuXzE5MTApKTsKLSAgIE9BMjFYNCBnMjg0ODYgKC5ZKG5fMjc2MyksIAotCS5CMChuXzE5MzQpLCAKLQkuQTEobl8xOTQ3KSwgCi0JLkEwKG5fMjQ5NSkpOwotICAgT0EyMVg0IGcyODQ4NyAoLlkobl8yNzY0KSwgCi0JLkIwKG5fMTkzNyksIAotCS5BMShuXzE5MjcpLCAKLQkuQTAobl8xOTM2KSk7Ci0gICBPQTIxWDQgZzI4NDg4ICguWShuXzI3NjUpLCAKLQkuQjAobl8xNzM2KSwgCi0JLkExKG5fMTkxOSksIAotCS5BMChuXzE2ODIpKTsKLSAgIE9BMjFYNCBnMjg0ODkgKC5ZKG5fMjc2NiksIAotCS5CMChuXzE5NDEpLCAKLQkuQTEobl8xOTQyKSwgCi0JLkEwKG5fMTkxNikpOwotICAgT0EyMlg0IGcyODQ5MCAoLlkobl8yNzY3KSwgCi0JLkIxKG5fMTY3MiksIAotCS5CMChuXzI3NzcpLCAKLQkuQTEobl8yNTMyKSwgCi0JLkEwKG5fMTkxMykpOwotICAgQU8yMlg0IGcyODQ5MSAoLlkobl8yNzY4KSwgCi0JLkIxKG5fMTkwMyksIAotCS5CMChuXzI1MzkpLCAKLQkuQTEobl8yNTIyKSwgCi0JLkEwKG5fMTY2NikpOwotICAgT0EyMVg0IGcyODQ5MiAoLlkobl8yNzY5KSwgCi0JLkIwKG5fMTg3NCksIAotCS5BMShuXzE4NzEpLCAKLQkuQTAobl8yNTc0KSk7Ci0gICBPQTIxWDQgZzI4NDkzICguWShuXzI3NzApLCAKLQkuQjAobl8xNzk5KSwgCi0JLkExKG5fMTc5NSksIAotCS5BMChuXzI1MzApKTsKLSAgIE9BMjFYNCBnMjg0OTQgKC5ZKG5fMjc3MSksIAotCS5CMChuXzE3NzUpLCAKLQkuQTEobl8xNjQ0KSwgCi0JLkEwKG5fMTc3NCkpOwotICAgQU8yMlg0IGcyODQ5NSAoLlkobl8yNzcyKSwgCi0JLkIxKG5fMTYxNCksIAotCS5CMChuXzEwNjIpLCAKLQkuQTEobl8xNjY3KSwgCi0JLkEwKG5fMTMxMSkpOwotICAgT0EyMlg0IGcyODQ5NiAoLlkobl8yNzczKSwgCi0JLkIxKG5fMjU0NyksIAotCS5CMChuXzE2NjUpLCAKLQkuQTEobl8xNjU2KSwgCi0JLkEwKG5fMjUyNykpOwotICAgQU8yMlg0IGcyODQ5NyAoLlkobl8yNzc0KSwgCi0JLkIxKG5fMjU0MCksIAotCS5CMChuXzE2NzMpLCAKLQkuQTEobl8xNjY4KSwgCi0JLkEwKG5fMTYxOCkpOwotICAgT0EyMlg0IGcyODQ5OCAoLlkobl8yNzc1KSwgCi0JLkIxKG5fMjUzNSksIAotCS5CMChuXzE2NjkpLCAKLQkuQTEobl8xNjcxKSwgCi0JLkEwKG5fMjUzNikpOwotICAgT0EyMVg0IGcyODQ5OSAoLlkobl8yNzc2KSwgCi0JLkIwKG5fMTcyMyksIAotCS5BMShuXzE3MjEpLCAKLQkuQTAobl8xNjU3KSk7Ci0gICBPQTIxWDQgZzI4NTAwICguWShuXzI3NzcpLCAKLQkuQjAobl8xNzEwKSwgCi0JLkExKG5fMTcwNiksIAotCS5BMChuXzEzNzcpKTsKLSAgIE9BMjFYNCBnMjg1MDEgKC5ZKG5fMjc3OCksIAotCS5CMChuXzE2OTApLCAKLQkuQTEobl8xNjg4KSwgCi0JLkEwKG5fMTYzOCkpOwotICAgQU8yMlg0IGcyODUwMiAoLlkobl8yNzc5KSwgCi0JLkIxKG5fMTQ5OSksIAotCS5CMChuXzE1MjYpLCAKLQkuQTEobl8xNjYwKSwgCi0JLkEwKG5fMjgwMCkpOwotICAgQU8yMlg0IGcyODUwMyAoLlkobl8yNzgwKSwgCi0JLkIxKG5fMjU4NiksIAotCS5CMChuXzE1MjUpLCAKLQkuQTEobl8xNjM0KSwgCi0JLkEwKG5fMTQyMykpOwotICAgT0EyMlg0IGcyODUwNCAoLlkobl8yNzgxKSwgCi0JLkIxKG5fMjU2MSksIAotCS5CMChuXzE2NTQpLCAKLQkuQTEobl8xNjUwKSwgCi0JLkEwKG5fMjc5MCkpOwotICAgQU8yMlg0IGcyODUwNSAoLlkobl8yNzgyKSwgCi0JLkIxKG5fMTY0MyksIAotCS5CMChuXzc5MCksIAotCS5BMShuXzI1OTMpLCAKLQkuQTAobl83OTEpKTsKLSAgIE9BMjJYNCBnMjg1MDYgKC5ZKG5fMjc4MyksIAotCS5CMShuXzI1NjkpLCAKLQkuQjAobl8xNjMzKSwgCi0JLkExKG5fMTY0MiksIAotCS5BMChuXzI3OTEpKTsKLSAgIE9BMjJYNCBnMjg1MDcgKC5ZKG5fMjc4NCksIAotCS5CMShuXzI1NjYpLCAKLQkuQjAobl8xNjQxKSwgCi0JLkExKG5fMTY2MSksIAotCS5BMChuXzI1NTYpKTsKLSAgIE9BMjFYNCBnMjg1MDggKC5ZKG5fMjc4NSksIAotCS5CMChuXzE0MTMpLCAKLQkuQTEobl8xNjU1KSwgCi0JLkEwKG5fMTMxOSkpOwotICAgT0EyMVg0IGcyODUwOSAoLlkobl8yNzg2KSwgCi0JLkIwKG5fMTU5MyksIAotCS5BMShuXzI1OTUpLCAKLQkuQTAobl8xNTkyKSk7Ci0gICBBTzIyWDQgZzI4NTEwICguWShuXzI3ODcpLCAKLQkuQjEobl8xNDY0KSwgCi0JLkIwKG5fOTAwKSwgCi0JLkExKG5fMTUyOSksIAotCS5BMChuXzg5OSkpOwotICAgT0EyMVg0IGcyODUxMSAoLlkobl8yNzg4KSwgCi0JLkIwKG5fMTMzOSksIAotCS5BMShuXzEzNDMpLCAKLQkuQTAobl8yNjY3KSk7Ci0gICBPQTIxWDQgZzI4NTEyICguWShuXzI3ODkpLCAKLQkuQjAobl8xNDE1KSwgCi0JLkExKG5fNjczKSwgCi0JLkEwKG5fMTQxNCkpOwotICAgT0EyMVg0IGcyODUxMyAoLlkobl8yNzkwKSwgCi0JLkIwKG5fMTM5NyksIAotCS5BMShuXzEzOTUpLCAKLQkuQTAobl8yNjIzKSk7Ci0gICBPQTIxWDQgZzI4NTE0ICguWShuXzI3OTEpLCAKLQkuQjAobl8xMzc4KSwgCi0JLkExKG5fMTM3NSksIAotCS5BMChuXzU4MykpOwotICAgT0EyMVg0IGcyODUxNSAoLlkobl8yNzkyKSwgCi0JLkIwKG5fMTMzMSksIAotCS5BMShuXzI2NzgpLCAKLQkuQTAobl8xNDI1KSk7Ci0gICBPQTIxWDQgZzI4NTE2ICguWShuXzI3OTMpLCAKLQkuQjAobl8xMzY3KSwgCi0JLkExKG5fMTM0NiksIAotCS5BMChuXzUxNikpOwotICAgT0EyMVg0IGcyODUxNyAoLlkobl8yNzk0KSwgCi0JLkIwKG5fMTM2NSksIAotCS5BMShuXzEzNjQpLCAKLQkuQTAobl8yNjUxKSk7Ci0gICBPQTIxWDQgZzI4NTE4ICguWShuXzI3OTUpLCAKLQkuQjAobl8xMzYzKSwgCi0JLkExKG5fMTM3MyksIAotCS5BMChuXzI2NjUpKTsKLSAgIE9BMjFYNCBnMjg1MTkgKC5ZKG5fMjc5NiksIAotCS5CMChuXzEzMjgpLCAKLQkuQTEobl8xMzIxKSwgCi0JLkEwKG5fMTE4MykpOwotICAgT0EyMVg0IGcyODUyMCAoLlkobl8yNzk3KSwgCi0JLkIwKG5fMTM2NiksIAotCS5BMShuXzEzMjUpLCAKLQkuQTAobl83NjcpKTsKLSAgIE9BMjFYNCBnMjg1MjEgKC5ZKG5fMjc5OCksIAotCS5CMChuXzEzMjQpLCAKLQkuQTEobl8xMzIzKSwgCi0JLkEwKG5fMjkyNSkpOwotICAgT0EyMVg0IGcyODUyMiAoLlkobl8yNzk5KSwgCi0JLkIwKG5fMTUyNyksIAotCS5BMShuXzI3MjIpLCAKLQkuQTAobl8yNjI1KSk7Ci0gICBPQTIxWDQgZzI4NTIzICguWShuXzI4MDApLCAKLQkuQjAobl8xNjIpLCAKLQkuQTEobl8yNjU5KSwgCi0JLkEwKEJbMV0pKTsKLSAgIEFPMjJYNCBnMjg1MjQgKC5ZKG5fMjgwMSksIAotCS5CMShuXzI3MTMpLCAKLQkuQjAobl8xMjE2KSwgCi0JLkExKG5fOTg1KSwgCi0JLkEwKG5fMjY2NCkpOwotICAgQU8yMlg0IGcyODUyNSAoLlkobl8yODAyKSwgCi0JLkIxKG5fMjY4NyksIAotCS5CMChuXzExNzUpLCAKLQkuQTEobl8xMTg2KSwgCi0JLkEwKG5fMjY5NCkpOwotICAgQU8yMlg0IGcyODUyNiAoLlkobl8yODAzKSwgCi0JLkIxKG5fMjYwMyksIAotCS5CMChuXzExOTYpLCAKLQkuQTEobl8xMjk5KSwgCi0JLkEwKG5fMjY3OSkpOwotICAgT0EyMlg0IGcyODUyNyAoLlkobl8yODA0KSwgCi0JLkIxKG5fMjY5MiksIAotCS5CMChuXzg2NSksIAotCS5BMShuXzExNzkpLCAKLQkuQTAobl84NjQpKTsKLSAgIEFPMjJYNCBnMjg1MjggKC5ZKG5fMjgwNSksIAotCS5CMShuXzI2MTYpLCAKLQkuQjAobl8xMjc0KSwgCi0JLkExKG5fMTI4MCksIAotCS5BMChuXzI2MTkpKTsKLSAgIE9BMjJYNCBnMjg1MjkgKC5ZKG5fMjgwNiksIAotCS5CMShuXzI2NjgpLCAKLQkuQjAobl85NjApLCAKLQkuQTEobl8xMjExKSwgCi0JLkEwKG5fMjcxNikpOwotICAgT0EyMlg0IGcyODUzMCAoLlkobl8yODA3KSwgCi0JLkIxKG5fMjYzMiksIAotCS5CMChuXzEyNjIpLCAKLQkuQTEobl8xMjU3KSwgCi0JLkEwKG5fMjYyOSkpOwotICAgQU8yMlg0IGcyODUzMSAoLlkobl8yODA4KSwgCi0JLkIxKG5fMjYxNCksIAotCS5CMChuXzEyNzYpLCAKLQkuQTEobl8xMjgzKSwgCi0JLkEwKG5fMjYxOCkpOwotICAgT0EyMlg0IGcyODUzMiAoLlkobl8yODA5KSwgCi0JLkIxKG5fMjYwMiksIAotCS5CMChuXzEyOTApLCAKLQkuQTEobl8xMzAxKSwgCi0JLkEwKG5fMjYwOSkpOwotICAgQU8yMlg0IGcyODUzMyAoLlkobl8yODEwKSwgCi0JLkIxKG5fMjY1NiksIAotCS5CMChuXzEwNDIpLCAKLQkuQTEobl8xMjI3KSwgCi0JLkEwKG5fMjcwNSkpOwotICAgQU8yMlg0IGcyODUzNCAoLlkobl8yODExKSwgCi0JLkIxKG5fMjY1OCksIAotCS5CMChuXzExOTkpLCAKLQkuQTEobl8xMjI0KSwgCi0JLkEwKG5fMjY3NykpOwotICAgQU8yMlg0IGcyODUzNSAoLlkobl8yODEyKSwgCi0JLkIxKG5fMjY4NCksIAotCS5CMChuXzgzMyksIAotCS5BMShuXzExOTApLCAKLQkuQTAobl84MzIpKTsKLSAgIE9BMjJYNCBnMjg1MzYgKC5ZKG5fMjgxMyksIAotCS5CMShuXzI2NzEpLCAKLQkuQjAobl8xMjAyKSwgCi0JLkExKG5fMTIwNyksIAotCS5BMChuXzI2NzUpKTsKLSAgIEFPMjJYNCBnMjg1MzcgKC5ZKG5fMjgxNCksIAotCS5CMShuXzI2OTUpLCAKLQkuQjAobl8xMjU0KSwgCi0JLkExKG5fMTE3MyksIAotCS5BMChuXzI2MzQpKTsKLSAgIE9BMjJYNCBnMjg1MzggKC5ZKG5fMjgxNSksIAotCS5CMShuXzI2MDgpLCAKLQkuQjAobl81NjMpLCAKLQkuQTEobl8xMjkyKSwgCi0JLkEwKG5fNTYyKSk7Ci0gICBPQTIxWDQgZzI4NTM5ICguWShuXzI4MTYpLCAKLQkuQjAobl8xMTM4KSwgCi0JLkExKG5fMjY4MiksIAotCS5BMChuXzEwNjgpKTsKLSAgIElOVlhMIGczICguWShuXzI4MTgpLCAKLQkuQShuXzI4MTcpKTsKLSAgIEFPSTIyMVg0IGcyODU0MCAoLlkobl8yODE3KSwgCi0JLkMwKG5fNTM2KSwgCi0JLkIxKG5fMjk5MSksIAotCS5CMChuXzUyMiksIAotCS5BMShuXzY0NiksIAotCS5BMChCWzE1XSkpOwotICAgT0EyMVg0IGcyODU0MSAoLlkobl8yODE5KSwgCi0JLkIwKG5fMTMxMSksIAotCS5BMShuXzI3MjEpLCAKLQkuQTAobl84NzEpKTsKLSAgIE9BMjJYNCBnMjg1NDIgKC5ZKG5fMjgyMCksIAotCS5CMShuXzY0NiksIAotCS5CMChuXzUwMyksIAotCS5BMShuXzYwNSksIAotCS5BMChuXzUwOSkpOwotICAgT0EyMlg0IGcyODU0MyAoLlkobl8yODIxKSwgCi0JLkIxKG5fNTEzKSwgCi0JLkIwKG5fMjk1NCksIAotCS5BMShuXzUyNSksIAotCS5BMChuXzY1MykpOwotICAgT0EyMlg0IGcyODU0NCAoLlkobl8yODIyKSwgCi0JLkIxKG5fMjkzMSksIAotCS5CMChuXzUxOCksIAotCS5BMShuXzI5NTEpLCAKLQkuQTAobl81MDMpKTsKLSAgIE9BMjJYNCBnMjg1NDUgKC5ZKG5fMjgyMyksIAotCS5CMShuXzUyNyksIAotCS5CMChuXzI5MzEpLCAKLQkuQTEobl80OTkpLCAKLQkuQTAobl8yOTUxKSk7Ci0gICBPQTIyWDQgZzI4NTQ2ICguWShuXzI4MjQpLCAKLQkuQjEobl8xMCksIAotCS5CMChuXzUyNSksIAotCS5BMShuXzI5NTgpLCAKLQkuQTAobl81MTMpKTsKLSAgIE9BMjJYNCBnMjg1NDcgKC5ZKG5fMjgyNSksIAotCS5CMShuXzUyMSksIAotCS5CMChuXzI5NTQpLCAKLQkuQTEobl80OTgpLCAKLQkuQTAobl82NTMpKTsKLSAgIE9BMjJYNCBnMjg1NDggKC5ZKG5fMjgyNiksIAotCS5CMShuXzY0NiksIAotCS5CMChuXzUxMCksIAotCS5BMShuXzYwNSksIAotCS5BMChuXzUxOCkpOwotICAgT0EyMlg0IGcyODU0OSAoLlkobl8yODI3KSwgCi0JLkIxKG5fMTApLCAKLQkuQjAobl81MjApLCAKLQkuQTEobl8yOTU4KSwgCi0JLkEwKG5fNTA1KSk7Ci0gICBPQTIyWDQgZzI4NTUwICguWShuXzI4MjgpLCAKLQkuQjEobl82NDYpLCAKLQkuQjAobl81MDApLCAKLQkuQTEobl82MDUpLCAKLQkuQTAobl81MjUpKTsKLSAgIE9BMjJYNCBnMjg1NTEgKC5ZKG5fMjgyOSksIAotCS5CMShuXzEwKSwgCi0JLkIwKG5fNTI3KSwgCi0JLkExKG5fMjk1OCksIAotCS5BMChuXzQ5OSkpOwotICAgT0EyMlg0IGcyODU1MiAoLlkobl8yODMwKSwgCi0JLkIxKG5fNjQ4KSwgCi0JLkIwKG5fNTE4KSwgCi0JLkExKG5fMjk1NiksIAotCS5BMChuXzUwMykpOwotICAgT0EyMlg0IGcyODU1MyAoLlkobl8yODMxKSwgCi0JLkIxKG5fMTApLCAKLQkuQjAobl81MDApLCAKLQkuQTEobl8yOTU4KSwgCi0JLkEwKG5fNTI1KSk7Ci0gICBPQTIyWDQgZzI4NTU0ICguWShuXzI4MzIpLCAKLQkuQjEobl82NDYpLCAKLQkuQjAobl80OTgpLCAKLQkuQTEobl82MDUpLCAKLQkuQTAobl81MjEpKTsKLSAgIE9BMjJYNCBnMjg1NTUgKC5ZKG5fMjgzMyksIAotCS5CMShuXzEwKSwgCi0JLkIwKG5fNTAzKSwgCi0JLkExKG5fMjk1OCksIAotCS5BMChuXzUwOSkpOwotICAgT0EyMlg0IGcyODU1NiAoLlkobl8yODM0KSwgCi0JLkIxKG5fNjQ4KSwgCi0JLkIwKG5fNTAzKSwgCi0JLkExKG5fMjk1NiksIAotCS5BMChuXzUwOSkpOwotICAgT0EyMlg0IGcyODU1NyAoLlkobl8yODM1KSwgCi0JLkIxKG5fMTApLCAKLQkuQjAobl81MDYpLCAKLQkuQTEobl8yOTU4KSwgCi0JLkEwKG5fNTAxKSk7Ci0gICBPQTIyWDQgZzI4NTU4ICguWShuXzI4MzYpLCAKLQkuQjEobl85KSwgCi0JLkIwKG5fNTI3KSwgCi0JLkExKG5fMjk1OSksIAotCS5BMChuXzQ5OSkpOwotICAgT0EyMlg0IGcyODU1OSAoLlkobl8yODM3KSwgCi0JLkIxKG5fNjUzKSwgCi0JLkIwKG5fNTEwKSwgCi0JLkExKG5fMjk1NCksIAotCS5BMChuXzUxOCkpOwotICAgT0EyMlg0IGcyODU2MCAoLlkobl8yODM4KSwgCi0JLkIxKG5fMTApLCAKLQkuQjAobl81MjEpLCAKLQkuQTEobl8yOTU4KSwgCi0JLkEwKG5fNTI3KSk7Ci0gICBPQTIyWDQgZzI4NTYxICguWShuXzI4MzkpLCAKLQkuQjEobl82NTMpLCAKLQkuQjAobl81MDApLCAKLQkuQTEobl81MjUpLCAKLQkuQTAobl8yOTU0KSk7Ci0gICBPQTIyWDQgZzI4NTYyICguWShuXzI4NDApLCAKLQkuQjEobl82NDgpLCAKLQkuQjAobl81MTQpLCAKLQkuQTEobl8yOTU2KSwgCi0JLkEwKG5fNTEwKSk7Ci0gICBPQTIyWDQgZzI4NTYzICguWShuXzI4NDEpLCAKLQkuQjEobl8yOTMxKSwgCi0JLkIwKG5fNTEwKSwgCi0JLkExKG5fMjk1MSksIAotCS5BMChuXzUxOCkpOwotICAgT0EyMlg0IGcyODU2NCAoLlkobl8yODQyKSwgCi0JLkIxKG5fNTIxKSwgCi0JLkIwKG5fMjk1NiksIAotCS5BMShuXzQ5OCksIAotCS5BMChuXzY0OCkpOwotICAgT0EyMlg0IGcyODU2NSAoLlkobl8yODQzKSwgCi0JLkIxKG5fNjQ4KSwgCi0JLkIwKG5fNTEwKSwgCi0JLkExKG5fMjk1NiksIAotCS5BMChuXzUxOCkpOwotICAgT0EyMlg0IGcyODU2NiAoLlkobl8yODQ0KSwgCi0JLkIxKG5fNTI3KSwgCi0JLkIwKG5fNjQ4KSwgCi0JLkExKG5fNDk5KSwgCi0JLkEwKG5fMjk1NikpOwotICAgT0EyMlg0IGcyODU2NyAoLlkobl8yODQ1KSwgCi0JLkIxKG5fNTI3KSwgCi0JLkIwKG5fMjk1NCksIAotCS5BMShuXzUyMSksIAotCS5BMChuXzY1MykpOwotICAgT0EyMlg0IGcyODU2OCAoLlkobl8yODQ2KSwgCi0JLkIxKG5fNjQ2KSwgCi0JLkIwKG5fNTIwKSwgCi0JLkExKG5fNjA1KSwgCi0JLkEwKG5fNTA1KSk7Ci0gICBPQTIyWDQgZzI4NTY5ICguWShuXzI4NDcpLCAKLQkuQjEobl8xMCksIAotCS5CMChuXzUxOCksIAotCS5BMShuXzI5NTgpLCAKLQkuQTAobl81MDMpKTsKLSAgIE9BMjJYNCBnMjg1NzAgKC5ZKG5fMjg0OCksIAotCS5CMShuXzkpLCAKLQkuQjAobl81MDYpLCAKLQkuQTEobl8yOTU5KSwgCi0JLkEwKG5fNTAxKSk7Ci0gICBPQTIyWDQgZzI4NTcxICguWShuXzI4NDkpLCAKLQkuQjEobl82NTEpLCAKLQkuQjAobl81MTMpLCAKLQkuQTEobl80OTgpLCAKLQkuQTAobl8yOTUyKSk7Ci0gICBPQTIyWDQgZzI4NTcyICguWShuXzI4NTApLCAKLQkuQjEobl8yOTMxKSwgCi0JLkIwKG5fNDk4KSwgCi0JLkExKG5fNTIxKSwgCi0JLkEwKG5fMjk1MSkpOwotICAgT0EyMlg0IGcyODU3MyAoLlkobl8yODUxKSwgCi0JLkIxKG5fNjUxKSwgCi0JLkIwKG5fNTE4KSwgCi0JLkExKG5fMjk1MiksIAotCS5BMChuXzUwMykpOwotICAgT0EyMlg0IGcyODU3NCAoLlkobl8yODUyKSwgCi0JLkIxKG5fMjkzMSksIAotCS5CMChuXzUxNCksIAotCS5BMShuXzI5NTEpLCAKLQkuQTAobl81MTApKTsKLSAgIE9BMjJYNCBnMjg1NzUgKC5ZKG5fMjg1MyksIAotCS5CMShuXzI5MzEpLCAKLQkuQjAobl81MDkpLCAKLQkuQTEobl8yOTUxKSwgCi0JLkEwKG5fNTAwKSk7Ci0gICBPQTIyWDQgZzI4NTc2ICguWShuXzI4NTQpLCAKLQkuQjEobl85KSwgCi0JLkIwKG5fNTE0KSwgCi0JLkExKG5fMjk1OSksIAotCS5BMChuXzUxMCkpOwotICAgT0EyMlg0IGcyODU3NyAoLlkobl8yODU1KSwgCi0JLkIxKG5fNjQ2KSwgCi0JLkIwKG5fNTE0KSwgCi0JLkExKG5fNjA1KSwgCi0JLkEwKG5fNTEwKSk7Ci0gICBPQTIyWDQgZzI4NTc4ICguWShuXzI4NTYpLCAKLQkuQjEobl82NDYpLCAKLQkuQjAobl81MTMpLCAKLQkuQTEobl82MDUpLCAKLQkuQTAobl80OTgpKTsKLSAgIE9BMjJYNCBnMjg1NzkgKC5ZKG5fMjg1NyksIAotCS5CMShuXzEwKSwgCi0JLkIwKG5fNTAxKSwgCi0JLkExKG5fMjk1OCksIAotCS5BMChuXzUxNCkpOwotICAgT0EyMlg0IGcyODU4MCAoLlkobl8yODU4KSwgCi0JLkIxKG5fNTI3KSwgCi0JLkIwKG5fNjUzKSwgCi0JLkExKG5fNDk5KSwgCi0JLkEwKG5fMjk1NCkpOwotICAgT0EyMlg0IGcyODU4MSAoLlkobl8yODU5KSwgCi0JLkIxKG5fNjQ4KSwgCi0JLkIwKG5fNTIwKSwgCi0JLkExKG5fMjk1NiksIAotCS5BMChuXzUwNSkpOwotICAgT0EyMlg0IGcyODU4MiAoLlkobl8yODYwKSwgCi0JLkIxKG5fOSksIAotCS5CMChuXzQ5OCksIAotCS5BMShuXzI5NTkpLCAKLQkuQTAobl81MjEpKTsKLSAgIE9BMjJYNCBnMjg1ODMgKC5ZKG5fMjg2MSksIAotCS5CMShuXzEwKSwgCi0JLkIwKG5fNTA1KSwgCi0JLkExKG5fMjk1OCksIAotCS5BMChuXzUwNikpOwotICAgT0EyMlg0IGcyODU4NCAoLlkobl8yODYyKSwgCi0JLkIxKG5fMjkzMSksIAotCS5CMChuXzUyNSksIAotCS5BMShuXzI5NTEpLCAKLQkuQTAobl81MTMpKTsKLSAgIE9BMjJYNCBnMjg1ODUgKC5ZKG5fMjg2MyksIAotCS5CMShuXzUyMSksIAotCS5CMChuXzI5NTIpLCAKLQkuQTEobl80OTgpLCAKLQkuQTAobl82NTEpKTsKLSAgIE9BMjJYNCBnMjg1ODYgKC5ZKG5fMjg2NCksIAotCS5CMShuXzY0OCksIAotCS5CMChuXzUwMSksIAotCS5BMShuXzI5NTYpLCAKLQkuQTAobl81MTQpKTsKLSAgIE9BMjJYNCBnMjg1ODcgKC5ZKG5fMjg2NSksIAotCS5CMShuXzkpLCAKLQkuQjAobl81MDUpLCAKLQkuQTEobl8yOTU5KSwgCi0JLkEwKG5fNTA2KSk7Ci0gICBPQTIyWDQgZzI4NTg4ICguWShuXzI4NjYpLCAKLQkuQjEobl82NDYpLCAKLQkuQjAobl81MjUpLCAKLQkuQTEobl82MDUpLCAKLQkuQTAobl81MTMpKTsKLSAgIE9BMjJYNCBnMjg1ODkgKC5ZKG5fMjg2NyksIAotCS5CMShuXzY0OCksIAotCS5CMChuXzUwOSksIAotCS5BMShuXzUwMCksIAotCS5BMChuXzI5NTYpKTsKLSAgIE9BMjJYNCBnMjg1OTAgKC5ZKG5fMjg2OCksIAotCS5CMShuXzI5MzEpLCAKLQkuQjAobl81MDApLCAKLQkuQTEobl8yOTUxKSwgCi0JLkEwKG5fNTI1KSk7Ci0gICBPQTIyWDQgZzI4NTkxICguWShuXzI4NjkpLCAKLQkuQjEobl82NTEpLCAKLQkuQjAobl81MDApLCAKLQkuQTEobl81MjUpLCAKLQkuQTAobl8yOTUyKSk7Ci0gICBPQTIyWDQgZzI4NTkyICguWShuXzI4NzApLCAKLQkuQjEobl82NTEpLCAKLQkuQjAobl81MDUpLCAKLQkuQTEobl8yOTUyKSwgCi0JLkEwKG5fNTA2KSk7Ci0gICBPQTIyWDQgZzI4NTkzICguWShuXzI4NzEpLCAKLQkuQjEobl85KSwgCi0JLkIwKG5fNTAzKSwgCi0JLkExKG5fMjk1OSksIAotCS5BMChuXzUwOSkpOwotICAgT0EyMlg0IGcyODU5NCAoLlkobl8yODcyKSwgCi0JLkIxKG5fNjUzKSwgCi0JLkIwKG5fNTE4KSwgCi0JLkExKG5fMjk1NCksIAotCS5BMChuXzUwMykpOwotICAgT0EyMlg0IGcyODU5NSAoLlkobl8yODczKSwgCi0JLkIxKG5fNjUzKSwgCi0JLkIwKG5fNTA1KSwgCi0JLkExKG5fMjk1NCksIAotCS5BMChuXzUwNikpOwotICAgT0EyMlg0IGcyODU5NiAoLlkobl8yODc0KSwgCi0JLkIxKG5fNjUxKSwgCi0JLkIwKG5fNTE0KSwgCi0JLkExKG5fMjk1MiksIAotCS5BMChuXzUxMCkpOwotICAgT0EyMlg0IGcyODU5NyAoLlkobl8yODc1KSwgCi0JLkIxKG5fMjkzMSksIAotCS5CMChuXzUwNiksIAotCS5BMShuXzI5NTEpLCAKLQkuQTAobl81MDEpKTsKLSAgIE9BMjJYNCBnMjg1OTggKC5ZKG5fMjg3NiksIAotCS5CMShuXzY0OCksIAotCS5CMChuXzUwNSksIAotCS5BMShuXzI5NTYpLCAKLQkuQTAobl81MDYpKTsKLSAgIE9BMjJYNCBnMjg1OTkgKC5ZKG5fMjg3NyksIAotCS5CMShuXzI5MzEpLCAKLQkuQjAobl81MDMpLCAKLQkuQTEobl8yOTUxKSwgCi0JLkEwKG5fNTA5KSk7Ci0gICBPQTIyWDQgZzI4NjAwICguWShuXzI4NzgpLCAKLQkuQjEobl85KSwgCi0JLkIwKG5fNTEwKSwgCi0JLkExKG5fMjk1OSksIAotCS5BMChuXzUxOCkpOwotICAgT0EyMlg0IGcyODYwMSAoLlkobl8yODc5KSwgCi0JLkIxKG5fNjQ2KSwgCi0JLkIwKG5fNTA1KSwgCi0JLkExKG5fNjA1KSwgCi0JLkEwKG5fNTA2KSk7Ci0gICBPQTIyWDQgZzI4NjAyICguWShuXzI4ODApLCAKLQkuQjEobl8xMCksIAotCS5CMChuXzQ5OCksIAotCS5BMShuXzI5NTgpLCAKLQkuQTAobl81MjEpKTsKLSAgIE9BMjJYNCBnMjg2MDMgKC5ZKG5fMjg4MSksIAotCS5CMShuXzY1MSksIAotCS5CMChuXzUwOSksIAotCS5BMShuXzI5NTIpLCAKLQkuQTAobl81MDApKTsKLSAgIE9BMjJYNCBnMjg2MDQgKC5ZKG5fMjg4MiksIAotCS5CMShuXzEwKSwgCi0JLkIwKG5fNTA5KSwgCi0JLkExKG5fMjk1OCksIAotCS5BMChuXzUwMCkpOwotICAgT0EyMlg0IGcyODYwNSAoLlkobl8yODgzKSwgCi0JLkIxKG5fOSksIAotCS5CMChuXzUyNSksIAotCS5BMShuXzI5NTkpLCAKLQkuQTAobl81MTMpKTsKLSAgIE9BMjJYNCBnMjg2MDYgKC5ZKG5fMjg4NCksIAotCS5CMShuXzUyNyksIAotCS5CMChuXzI5NTYpLCAKLQkuQTEobl81MjEpLCAKLQkuQTAobl82NDgpKTsKLSAgIE9BMjJYNCBnMjg2MDcgKC5ZKG5fMjg4NSksIAotCS5CMShuXzUyNSksIAotCS5CMChuXzI5NTYpLCAKLQkuQTEobl82NDgpLCAKLQkuQTAobl81MDApKTsKLSAgIE9BMjJYNCBnMjg2MDggKC5ZKG5fMjg4NiksIAotCS5CMShuXzI5MzEpLCAKLQkuQjAobl81MDUpLCAKLQkuQTEobl8yOTUxKSwgCi0JLkEwKG5fNTA2KSk7Ci0gICBPQTIyWDQgZzI4NjA5ICguWShuXzI4ODcpLCAKLQkuQjEobl8xMCksIAotCS5CMChuXzUxMCksIAotCS5BMShuXzI5NTgpLCAKLQkuQTAobl81MTgpKTsKLSAgIE9BMjJYNCBnMjg2MTAgKC5ZKG5fMjg4OCksIAotCS5CMShuXzkpLCAKLQkuQjAobl81MDEpLCAKLQkuQTEobl8yOTU5KSwgCi0JLkEwKG5fNTE0KSk7Ci0gICBPQTIyWDQgZzI4NjExICguWShuXzI4ODkpLCAKLQkuQjEobl8yOTMxKSwgCi0JLkIwKG5fNTEzKSwgCi0JLkExKG5fNDk4KSwgCi0JLkEwKG5fMjk1MSkpOwotICAgT0EyMlg0IGcyODYxMiAoLlkobl8yODkwKSwgCi0JLkIxKG5fNjUxKSwgCi0JLkIwKG5fNTAxKSwgCi0JLkExKG5fMjk1MiksIAotCS5BMChuXzUxNCkpOwotICAgT0EyMlg0IGcyODYxMyAoLlkobl8yODkxKSwgCi0JLkIxKG5fOSksIAotCS5CMChuXzUwOSksIAotCS5BMShuXzI5NTkpLCAKLQkuQTAobl81MDApKTsKLSAgIE9BMjJYNCBnMjg2MTQgKC5ZKG5fMjg5MiksIAotCS5CMShuXzY0NiksIAotCS5CMChuXzUxOCksIAotCS5BMShuXzYwNSksIAotCS5BMChuXzUwMykpOwotICAgT0EyMlg0IGcyODYxNSAoLlkobl8yODkzKSwgCi0JLkIxKG5fNjQ2KSwgCi0JLkIwKG5fNTAxKSwgCi0JLkExKG5fNjA1KSwgCi0JLkEwKG5fNTE0KSk7Ci0gICBPQTIyWDQgZzI4NjE2ICguWShuXzI4OTQpLCAKLQkuQjEobl82NTMpLCAKLQkuQjAobl81MTQpLCAKLQkuQTEobl8yOTU0KSwgCi0JLkEwKG5fNTEwKSk7Ci0gICBPQTIyWDQgZzI4NjE3ICguWShuXzI4OTUpLCAKLQkuQjEobl81MjcpLCAKLQkuQjAobl82NTEpLCAKLQkuQTEobl80OTkpLCAKLQkuQTAobl8yOTUyKSk7Ci0gICBPQTIyWDQgZzI4NjE4ICguWShuXzI4OTYpLCAKLQkuQjEobl82NTMpLCAKLQkuQjAobl81MDMpLCAKLQkuQTEobl8yOTU0KSwgCi0JLkEwKG5fNTA5KSk7Ci0gICBPQTIyWDQgZzI4NjE5ICguWShuXzI4OTcpLCAKLQkuQjEobl82NDYpLCAKLQkuQjAobl81MjcpLCAKLQkuQTEobl82MDUpLCAKLQkuQTAobl80OTkpKTsKLSAgIE9BMjJYNCBnMjg2MjAgKC5ZKG5fMjg5OCksIAotCS5CMShuXzkpLCAKLQkuQjAobl81MTMpLCAKLQkuQTEobl8yOTU5KSwgCi0JLkEwKG5fNDk4KSk7Ci0gICBPQTIyWDQgZzI4NjIxICguWShuXzI4OTkpLCAKLQkuQjEobl82NTEpLCAKLQkuQjAobl81MTApLCAKLQkuQTEobl8yOTUyKSwgCi0JLkEwKG5fNTE4KSk7Ci0gICBPQTIyWDQgZzI4NjIyICguWShuXzI5MDApLCAKLQkuQjEobl80OTgpLCAKLQkuQjAobl8yOTU0KSwgCi0JLkExKG5fNTEzKSwgCi0JLkEwKG5fNjUzKSk7Ci0gICBPQTIyWDQgZzI4NjIzICguWShuXzI5MDEpLCAKLQkuQjEobl82NTEpLCAKLQkuQjAobl81MDYpLCAKLQkuQTEobl8yOTUyKSwgCi0JLkEwKG5fNTAxKSk7Ci0gICBPQTIyWDQgZzI4NjI0ICguWShuXzI5MDIpLCAKLQkuQjEobl8xMCksIAotCS5CMChuXzUxNCksIAotCS5BMShuXzI5NTgpLCAKLQkuQTAobl81MTApKTsKLSAgIE9BMjJYNCBnMjg2MjUgKC5ZKG5fMjkwMyksIAotCS5CMShuXzkpLCAKLQkuQjAobl81MjEpLCAKLQkuQTEobl81MjcpLCAKLQkuQTAobl8yOTU5KSk7Ci0gICBPQTIyWDQgZzI4NjI2ICguWShuXzI5MDQpLCAKLQkuQjEobl8xMCksIAotCS5CMChuXzUxMyksIAotCS5BMShuXzI5NTgpLCAKLQkuQTAobl80OTgpKTsKLSAgIE9BMjJYNCBnMjg2MjcgKC5ZKG5fMjkwNSksIAotCS5CMShuXzY0NiksIAotCS5CMChuXzUyMSksIAotCS5BMShuXzYwNSksIAotCS5BMChuXzUyNykpOwotICAgT0EyMlg0IGcyODYyOCAoLlkobl8yOTA2KSwgCi0JLkIxKG5fMjkzMSksIAotCS5CMChuXzUyMCksIAotCS5BMShuXzI5NTEpLCAKLQkuQTAobl81MDUpKTsKLSAgIE9BMjJYNCBnMjg2MjkgKC5ZKG5fMjkwNyksIAotCS5CMShuXzUxMyksIAotCS5CMChuXzI5NTYpLCAKLQkuQTEobl81MjUpLCAKLQkuQTAobl82NDgpKTsKLSAgIE9BMjJYNCBnMjg2MzAgKC5ZKG5fMjkwOCksIAotCS5CMShuXzY1MyksIAotCS5CMChuXzUwOSksIAotCS5BMShuXzUwMCksIAotCS5BMChuXzI5NTQpKTsKLSAgIE9BMjJYNCBnMjg2MzEgKC5ZKG5fMjkwOSksIAotCS5CMShuXzY1MyksIAotCS5CMChuXzUwNiksIAotCS5BMShuXzI5NTQpLCAKLQkuQTAobl81MDEpKTsKLSAgIE9BMjJYNCBnMjg2MzIgKC5ZKG5fMjkxMCksIAotCS5CMShuXzY0OCksIAotCS5CMChuXzUwNiksIAotCS5BMShuXzI5NTYpLCAKLQkuQTAobl81MDEpKTsKLSAgIE9BMjJYNCBnMjg2MzMgKC5ZKG5fMjkxMSksIAotCS5CMShuXzY0NiksIAotCS5CMChuXzUwNiksIAotCS5BMShuXzYwNSksIAotCS5BMChuXzUwMSkpOwotICAgT0EyMlg0IGcyODYzNCAoLlkobl8yOTEyKSwgCi0JLkIxKG5fMjkzMSksIAotCS5CMChuXzUyMSksIAotCS5BMShuXzUyNyksIAotCS5BMChuXzI5NTEpKTsKLSAgIE9BMjJYNCBnMjg2MzUgKC5ZKG5fMjkxMyksIAotCS5CMShuXzY1MSksIAotCS5CMChuXzUyNSksIAotCS5BMShuXzUxMyksIAotCS5BMChuXzI5NTIpKTsKLSAgIE9BMjJYNCBnMjg2MzYgKC5ZKG5fMjkxNCksIAotCS5CMShuXzY1MSksIAotCS5CMChuXzUwMyksIAotCS5BMShuXzI5NTIpLCAKLQkuQTAobl81MDkpKTsKLSAgIE9BMjJYNCBnMjg2MzcgKC5ZKG5fMjkxNSksIAotCS5CMShuXzQ5OCksIAotCS5CMChuXzI5NTYpLCAKLQkuQTEobl81MTMpLCAKLQkuQTAobl82NDgpKTsKLSAgIE9BMjJYNCBnMjg2MzggKC5ZKG5fMjkxNiksIAotCS5CMShuXzUyNyksIAotCS5CMChuXzI5NTIpLCAKLQkuQTEobl81MjEpLCAKLQkuQTAobl82NTEpKTsKLSAgIE9BMjJYNCBnMjg2MzkgKC5ZKG5fMjkxNyksIAotCS5CMShuXzI5MzEpLCAKLQkuQjAobl81MDEpLCAKLQkuQTEobl8yOTUxKSwgCi0JLkEwKG5fNTE0KSk7Ci0gICBPQTIyWDQgZzI4NjQwICguWShuXzI5MTgpLCAKLQkuQjEobl82NTMpLCAKLQkuQjAobl81MDEpLCAKLQkuQTEobl8yOTU0KSwgCi0JLkEwKG5fNTE0KSk7Ci0gICBPQTIyWDQgZzI4NjQxICguWShuXzI5MTkpLCAKLQkuQjEobl82NDYpLCAKLQkuQjAobl81MDkpLCAKLQkuQTEobl82MDUpLCAKLQkuQTAobl81MDApKTsKLSAgIE9BMjJYNCBnMjg2NDIgKC5ZKG5fMjkyMCksIAotCS5CMShuXzY1MyksIAotCS5CMChuXzUyMCksIAotCS5BMShuXzI5NTQpLCAKLQkuQTAobl81MDUpKTsKLSAgIE9BMjJYNCBnMjg2NDMgKC5ZKG5fMjkyMSksIAotCS5CMShuXzkpLCAKLQkuQjAobl81MTgpLCAKLQkuQTEobl8yOTU5KSwgCi0JLkEwKG5fNTAzKSk7Ci0gICBPQTIyWDQgZzI4NjQ0ICguWShuXzI5MjIpLCAKLQkuQjEobl85KSwgCi0JLkIwKG5fNTAwKSwgCi0JLkExKG5fMjk1OSksIAotCS5BMChuXzUyNSkpOwotICAgT0EyMlg0IGcyODY0NSAoLlkobl8yOTIzKSwgCi0JLkIxKG5fNjUxKSwgCi0JLkIwKG5fNTIwKSwgCi0JLkExKG5fMjk1MiksIAotCS5BMChuXzUwNSkpOwotICAgT0EyMlg0IGcyODY0NiAoLlkobl8yOTI0KSwgCi0JLkIxKG5fOSksIAotCS5CMChuXzUyMCksIAotCS5BMShuXzI5NTkpLCAKLQkuQTAobl81MDUpKTsKLSAgIEFPMjFYNCBnMjg2NDcgKC5ZKG5fMjkyNSksIAotCS5CMChuXzUwOCksIAotCS5BMShBWzE1XSksIAotCS5BMChuXzU0OCkpOwotICAgT0FJMjIxWDQgZzI4NjQ5ICguWShuXzY1MyksIAotCS5DMChuXzI5NTQpLCAKLQkuQjEoQls1XSksIAotCS5CMChCWzRdKSwgCi0JLkExKG5fNTIzKSwgCi0JLkEwKG5fNTI2KSk7Ci0gICBPQUkyMjFYNCBnMjg2NTEgKC5ZKG5fNjUxKSwgCi0JLkMwKG5fMjk1MiksIAotCS5CMShCWzddKSwgCi0JLkIwKEJbNl0pLCAKLQkuQTEobl80OTcpLCAKLQkuQTAobl81MTcpKTsKLSAgIElOVlhMIGcyODY1MiAoLlkobl8yOTMxKSwgCi0JLkEobl8yOTMwKSk7Ci0gICBBT0kyMjFYNCBnMjg2NTMgKC5ZKG5fMjkzMCksIAotCS5DMChuXzYwNyksIAotCS5CMShCWzldKSwgCi0JLkIwKEJbOF0pLCAKLQkuQTEobl81MTIpLCAKLQkuQTAobl81MjQpKTsKLSAgIE9BSTIyMVg0IGcyODY1NSAoLlkobl82NDgpLCAKLQkuQzAobl8yOTU2KSwgCi0JLkIxKEJbMl0pLCAKLQkuQjAoQlszXSksIAotCS5BMShuXzUxOSksIAotCS5BMChuXzUwMikpOwotICAgT0FJMjIxWDQgZzI4NjU3ICguWShuXzY0NiksIAotCS5DMChuXzYwNSksIAotCS5CMShCWzE0XSksIAotCS5CMChCWzE1XSksIAotCS5BMShuXzUwNCksIAotCS5BMChuXzUyMikpOwotICAgQU8yMlg0IGcyODY1OCAoLlkobl8yOTM2KSwgCi0JLkIxKEFbOF0pLCAKLQkuQjAoQlswXSksIAotCS5BMShuXzU0OCksIAotCS5BMChBWzddKSk7Ci0gICBBTzIyWDQgZzI4NjU5ICguWShuXzI5MzcpLCAKLQkuQjEobl81NDgpLCAKLQkuQjAoQVs2XSksIAotCS5BMShBWzddKSwgCi0JLkEwKEJbMF0pKTsKLSAgIE9BMjJYNCBnMjg2NjAgKC5ZKG5fMjkzOCksIAotCS5CMShuXzUyNyksIAotCS5CMChuXzU0NyksIAotCS5BMShuXzQ5OSksIAotCS5BMChuXzUxNSkpOwotICAgQU8yMlg0IGcyODY2MSAoLlkobl8yOTM5KSwgCi0JLkIxKG5fNTQ4KSwgCi0JLkIwKEFbM10pLCAKLQkuQTEoQVs0XSksIAotCS5BMChCWzBdKSk7Ci0gICBPQTIyWDQgZzI4NjYyICguWShuXzI5NDApLCAKLQkuQjEobl81MDApLCAKLQkuQjAobl81MTUpLCAKLQkuQTEobl81MDkpLCAKLQkuQTAobl81NDcpKTsKLSAgIEFPMjJYNCBnMjg2NjMgKC5ZKG5fMjk0MSksIAotCS5CMShuXzU0OCksIAotCS5CMChBWzJdKSwgCi0JLkExKEFbM10pLCAKLQkuQTAoQlswXSkpOwotICAgT0EyMlg0IGcyODY2NCAoLlkobl8yOTQyKSwgCi0JLkIxKG5fNTI1KSwgCi0JLkIwKG5fNTE1KSwgCi0JLkExKG5fNTAwKSwgCi0JLkEwKG5fNTQ3KSk7Ci0gICBPQTIyWDQgZzI4NjY1ICguWShuXzI5NDMpLCAKLQkuQjEobl81MjcpLCAKLQkuQjAobl81MTUpLCAKLQkuQTEobl81MjEpLCAKLQkuQTAobl81NDcpKTsKLSAgIEFPMjJYNCBnMjg2NjYgKC5ZKG5fMjk0NCksIAotCS5CMShuXzU0OCksIAotCS5CMChBWzRdKSwgCi0JLkExKEFbNV0pLCAKLQkuQTAoQlswXSkpOwotICAgT0EyMlg0IGcyODY2NyAoLlkobl8yOTQ1KSwgCi0JLkIxKG5fNDk4KSwgCi0JLkIwKG5fNTE1KSwgCi0JLkExKG5fNTEzKSwgCi0JLkEwKG5fNTQ3KSk7Ci0gICBPQTIyWDQgZzI4NjY4ICguWShuXzI5NDYpLCAKLQkuQjEobl81MjEpLCAKLQkuQjAobl81MTUpLCAKLQkuQTEobl80OTgpLCAKLQkuQTAobl81NDcpKTsKLSAgIEFPMjJYNCBnMjg2NjkgKC5ZKG5fMjk0NyksIAotCS5CMShuXzU0OCksIAotCS5CMChBWzFdKSwgCi0JLkExKEFbMl0pLCAKLQkuQTAoQlswXSkpOwotICAgT0EyMlg0IGcyODY3MCAoLlkobl8yOTQ4KSwgCi0JLkIxKG5fNTEzKSwgCi0JLkIwKG5fNTE1KSwgCi0JLkExKG5fNTI1KSwgCi0JLkEwKG5fNTQ3KSk7Ci0gICBBTzIyWDQgZzI4NjcxICguWShuXzI5NDkpLCAKLQkuQjEobl81NDgpLCAKLQkuQjAoQVs1XSksIAotCS5BMShBWzZdKSwgCi0JLkEwKEJbMF0pKTsKLSAgIEFPMjJYNCBnMjg2NzIgKC5ZKG5fMjk1MCksIAotCS5CMShuXzU0OCksIAotCS5CMChBWzBdKSwgCi0JLkExKEFbMV0pLCAKLQkuQTAoQlswXSkpOwotICAgT0EyMlg0IGcyODY3MyAoLlkobl8yOTUxKSwgCi0JLkIxKEJbOF0pLCAKLQkuQjAobl80OTcpLCAKLQkuQTEobl81MjQpLCAKLQkuQTAoQls3XSkpOwotICAgT0EyMlg0IGcyODY3NCAoLlkobl8yOTUyKSwgCi0JLkIxKEJbNl0pLCAKLQkuQjAobl81MjMpLCAKLQkuQTEobl81MTcpLCAKLQkuQTAoQls1XSkpOwotICAgQU8yMlg0IGcyODY3NSAoLlkobl8yOTUzKSwgCi0JLkIxKEJbMTRdKSwgCi0JLkIwKG5fNDk2KSwgCi0JLkExKG5fNTA0KSwgCi0JLkEwKEJbMTNdKSk7Ci0gICBPQTIyWDQgZzI4Njc2ICguWShuXzI5NTQpLCAKLQkuQjEobl81MjYpLCAKLQkuQjAoQlszXSksIAotCS5BMShuXzUxOSksIAotCS5BMChCWzRdKSk7Ci0gICBBTzIyWDQgZzI4Njc3ICguWShuXzI5NTUpLCAKLQkuQjEoQlsxMV0pLCAKLQkuQjAoQlsxMF0pLCAKLQkuQTEobl81MTYpLCAKLQkuQTAobl81MDcpKTsKLSAgIE9BMjJYNCBnMjg2NzggKC5ZKG5fMjk1NiksIAotCS5CMShuXzUwMiksIAotCS5CMChCWzFdKSwgCi0JLkExKG5fNTA4KSwgCi0JLkEwKEJbMl0pKTsKLSAgIEFPMjJYNCBnMjg2NzkgKC5ZKG5fMjk1NyksIAotCS5CMShCWzEzXSksIAotCS5CMChCWzEyXSksIAotCS5BMShuXzQ5NiksIAotCS5BMChuXzUxMSkpOwotICAgT0EyMlg0IGcyODY4MCAoLlkobl8yOTU4KSwgCi0JLkIxKEJbMTJdKSwgCi0JLkIwKG5fNTE2KSwgCi0JLkExKG5fNTExKSwgCi0JLkEwKEJbMTFdKSk7Ci0gICBPQTIyWDQgZzI4NjgxICguWShuXzI5NTkpLCAKLQkuQjEoQlsxMF0pLCAKLQkuQjAobl81MTIpLCAKLQkuQTEobl81MDcpLCAKLQkuQTAoQls5XSkpOwotICAgT0FJMjFYNCBnMjg2ODIgKC5ZKG5fMjk2MCksIAotCS5CMChuXzIzMTcpLCAKLQkuQTEobl8yMzE2KSwgCi0JLkEwKG5fMjc2MikpOwotICAgT0FJMjFYNCBnMjg2ODMgKC5ZKG5fMjk2MSksIAotCS5CMChuXzE5NDQpLCAKLQkuQTEobl8xOTM1KSwgCi0JLkEwKG5fMTkwOSkpOwotICAgT0FJMjFYNCBnMjg2ODQgKC5ZKG5fMjk2MiksIAotCS5CMChuXzE2NzgpLCAKLQkuQTEobl8yOTg1KSwgCi0JLkEwKG5fMTcyMikpOwotICAgT0FJMjFYNCBnMjg2ODUgKC5ZKG5fMjk2MyksIAotCS5CMChuXzE3MDMpLCAKLQkuQTEobl8xNzAxKSwgCi0JLkEwKG5fMTgxOCkpOwotICAgT0FJMjFYNCBnMjg2ODYgKC5ZKG5fMjk2NCksIAotCS5CMChuXzE3NzApLCAKLQkuQTEobl8xNzY2KSwgCi0JLkEwKG5fNTkxKSk7Ci0gICBPQUkyMVg0IGcyODY4NyAoLlkobl8yOTY1KSwgCi0JLkIwKG5fMTcxNyksIAotCS5BMShuXzE2NTIpLCAKLQkuQTAobl8xNzE0KSk7Ci0gICBPQUkyMVg0IGcyODY4OCAoLlkobl8yOTY2KSwgCi0JLkIwKG5fMTM0NSksIAotCS5BMShuXzE2NTgpLCAKLQkuQTAobl8xMzQ0KSk7Ci0gICBPQUkyMVg0IGcyODY4OSAoLlkobl8yOTY3KSwgCi0JLkIwKG5fMTM4OCksIAotCS5BMShuXzEzODkpLCAKLQkuQTAobl8xNTI3KSk7Ci0gICBPQUkyMVg0IGcyODY5MCAoLlkobl8yOTY4KSwgCi0JLkIwKG5fMTM5NCksIAotCS5BMShuXzEzOTkpLCAKLQkuQTAobl81NTUpKTsKLSAgIE9BSTIxWDQgZzI4NjkxICguWShuXzI5NjkpLCAKLQkuQjAobl8xMzkyKSwgCi0JLkExKG5fMTM4NyksIAotCS5BMChuXzEyNjUpKTsKLSAgIEFPSTJCQjFYNCBnMjg2OTIgKC5ZKG5fMjk3MCksIAotCS5CMChuXzQzMSksIAotCS5BMU4obl8yMjkwKSwgCi0JLkEwTihuXzQzMCkpOwotICAgQU9JMkJCMVg0IGcyODY5MyAoLlkobl8yOTcxKSwgCi0JLkIwKG5fNDAzKSwgCi0JLkExTihuXzI3NDMpLCAKLQkuQTBOKG5fMjE1MikpOwotICAgQU9JMkJCMVg0IGcyODY5NCAoLlkobl8yOTcyKSwgCi0JLkIwKG5fMTk2OSksIAotCS5BMU4obl8xOTExKSwgCi0JLkEwTihuXzM1MykpOwotICAgQU9JMkJCMVg0IGcyODY5NSAoLlkobl8yOTczKSwgCi0JLkIwKG5fMjkxKSwgCi0JLkExTihuXzI1NzIpLCAKLQkuQTBOKG5fMTc3OCkpOwotICAgQU9JMkJCMVg0IGcyODY5NiAoLlkobl8yOTc0KSwgCi0JLkIwKG5fMTc4MiksIAotCS5BMU4obl8yOTApLCAKLQkuQTBOKG5fMTY0NykpOwotICAgQU9JMkJCMVg0IGcyODY5NyAoLlkobl8yOTc1KSwgCi0JLkIwKG5fMTcwNSksIAotCS5BMU4obl8xNjM5KSwgCi0JLkEwTihuXzI3MCkpOwotICAgQU9JMkJCMVg0IGcyODY5OCAoLlkobl8yOTc2KSwgCi0JLkIwKG5fMTc4KSwgCi0JLkExTihuXzEzODUpLCAKLQkuQTBOKG5fMjYzMCkpOwotICAgWE5PUjNYMSBnMjg2OTkgKC5ZKFpbMjldKSwgCi0JLkMobl8yNDcyKSwgCi0JLkIobl8yNzQyKSwgCi0JLkEobl8yNDg1KSk7Ci0gICBYTk9SM1gxIGcyODcwMCAoLlkoWlsyMl0pLCAKLQkuQyhuXzI0MjYpLCAKLQkuQihuXzI3NDQpLCAKLQkuQShuXzI0MjgpKTsKLSAgIFhOT1IzWDEgZzI4NzAxICguWShaWzE4XSksIAotCS5DKG5fMjM5MiksIAotCS5CKG5fMjc1MSksIAotCS5BKG5fMjQxNCkpOwotICAgWE5PUjNYMSBnMjg3MDIgKC5ZKG5fMjk4MCksIAotCS5DKG5fMjQ0OSksIAotCS5CKG5fMjQ5OCksIAotCS5BKG5fMjQ3MSkpOwotICAgWE5PUjNYMSBnMjg3MDMgKC5ZKFpbNl0pLCAKLQkuQyhuXzI1MjkpLCAKLQkuQihuXzE5ODgpLCAKLQkuQShuXzI1MjYpKTsKLSAgIFhOT1IzWDEgZzI4NzA0ICguWShuXzI5ODIpLCAKLQkuQyhuXzI0ODcpLCAKLQkuQihuXzI1MDkpLCAKLQkuQShuXzI1MDQpKTsKLSAgIFhOT1IzWDEgZzI4NzA1ICguWShuXzI5ODMpLCAKLQkuQyhuXzI0OTQpLCAKLQkuQihuXzI1NDYpLCAKLQkuQShuXzI3OTIpKTsKLSAgIFhOT1IzWDEgZzI4NzA2ICguWShuXzI5ODQpLCAKLQkuQyhuXzE1MTQpLCAKLQkuQihuXzI5NzYpLCAKLQkuQShuXzI3OTkpKTsKLSAgIFhOT1IzWDEgZzI4NzA3ICguWShuXzI5ODUpLCAKLQkuQyhuXzI3OTYpLCAKLQkuQihuXzI2OTkpLCAKLQkuQShuXzI2MDQpKTsKLSAgIFhPUjNYMSBnMjg3MDggKC5ZKFpbMzFdKSwgCi0JLkMobl8yNzg1KSwgCi0JLkIobl8yNzIzKSwgCi0JLkEobl8yOTg2KSk7Ci0gICBBQ0hDT05YMiBnMjg3MDkgKC5DT04obl8yOTg2KSwgCi0JLkNJKG5fMjMzMCksIAotCS5CKG5fMTkyNiksIAotCS5BKG5fMjUyNCkpOwotICAgTk9SMkJYNCBnMjg3MTAgKC5ZKG5fMjk4OCksIAotCS5CKG5fNjUzKSwgCi0JLkFOKEFbMTVdKSk7Ci0gICBOT1IyQlg0IGcyODcxMSAoLlkobl8yOTg5KSwgCi0JLkIobl82NTEpLCAKLQkuQU4oQVsxNV0pKTsKLSAgIE5PUjJCWDQgZzI4NzEyICguWShuXzI5OTApLCAKLQkuQihuXzY0OCksIAotCS5BTihBWzE1XSkpOwotICAgTk9SMkJYNCBnMjg3MTMgKC5ZKG5fMjk5MSksIAotCS5CKG5fNjQ2KSwgCi0JLkFOKEFbMTVdKSk7Ci1lbmRtb2R1bGUKLQotbW9kdWxlIG0xNngxNiAoCi0JYSwgCi0JYiwgCi0JeSk7Ci0gICBpbnB1dCBbMTU6MF0gYTsKLSAgIGlucHV0IFsxNTowXSBiOwotICAgb3V0cHV0IFszMTowXSB5OwotCi0gICBtdWx0X3Vuc2lnbmVkIG11bF84XzE0ICguQShhKSwgCi0JLkIoYiksIAotCS5aKHkpKTsKLWVuZG1vZHVsZQotCi1tb2R1bGUgaW5jcmVtZW50X3Vuc2lnbmVkXzEzNzMgKAotCUEsIAotCUNJLCAKLQlaKTsKLSAgIGlucHV0IFszMTowXSBBOwotICAgaW5wdXQgQ0k7Ci0gICBvdXRwdXQgWzMyOjBdIFo7Ci0KLSAgIC8vIEludGVybmFsIHdpcmVzCi0gICB3aXJlIG5fNjI7Ci0gICB3aXJlIG5fNjQ7Ci0gICB3aXJlIG5fNjY7Ci0gICB3aXJlIG5fNjg7Ci0gICB3aXJlIG5fNzA7Ci0gICB3aXJlIG5fNzI7Ci0gICB3aXJlIG5fNzQ7Ci0gICB3aXJlIG5fNzY7Ci0gICB3aXJlIG5fNzg7Ci0gICB3aXJlIG5fODA7Ci0gICB3aXJlIG5fODI7Ci0gICB3aXJlIG5fODQ7Ci0gICB3aXJlIG5fODY7Ci0gICB3aXJlIG5fODg7Ci0gICB3aXJlIG5fOTA7Ci0gICB3aXJlIG5fOTI7Ci0gICB3aXJlIG5fOTQ7Ci0gICB3aXJlIG5fOTg7Ci0gICB3aXJlIG5fMTAwOwotICAgd2lyZSBuXzEwMjsKLSAgIHdpcmUgbl8xMDQ7Ci0gICB3aXJlIG5fMTA2OwotICAgd2lyZSBuXzEwODsKLSAgIHdpcmUgbl8xMTA7Ci0gICB3aXJlIG5fMTEyOwotICAgd2lyZSBuXzExNDsKLSAgIHdpcmUgbl8xMTY7Ci0gICB3aXJlIG5fMTE4OwotICAgd2lyZSBuXzEyMDsKLSAgIHdpcmUgbl8xMjI7Ci0KLSAgIEFORDJYMSBnNjg1ICguWShuXzEyMiksIAotCS5CKEFbMzBdKSwgCi0JLkEobl8xMjApKTsKLSAgIEFORDJYMiBnNjkyICguWShuXzEyMCksIAotCS5CKEFbMjldKSwgCi0JLkEobl8xMTgpKTsKLSAgIEFORDJYMiBnNjk1ICguWShuXzExOCksIAotCS5CKEFbMjhdKSwgCi0JLkEobl8xMTYpKTsKLSAgIEFORDJYMiBnNzAyICguWShuXzExNiksIAotCS5CKEFbMjddKSwgCi0JLkEobl8xMTQpKTsKLSAgIEFORDJYMiBnNzA3ICguWShuXzExNCksIAotCS5CKG5fMTEyKSwgCi0JLkEoQVsyNl0pKTsKLSAgIEFORDJYMiBnNzEyICguWShuXzExMiksIAotCS5CKEFbMjVdKSwgCi0JLkEobl8xMTApKTsKLSAgIEFORDJYMiBnNzE1ICguWShuXzExMCksIAotCS5CKG5fMTA4KSwgCi0JLkEoQVsyNF0pKTsKLSAgIEFORDJYMiBnNzIwICguWShuXzEwOCksIAotCS5CKEFbMjNdKSwgCi0JLkEobl8xMDYpKTsKLSAgIEFORDJYMiBnNzI1ICguWShuXzEwNiksIAotCS5CKEFbMjJdKSwgCi0JLkEobl8xMDQpKTsKLSAgIEFORDJYMiBnNzMwICguWShuXzEwNCksIAotCS5CKEFbMjFdKSwgCi0JLkEobl8xMDIpKTsKLSAgIEFORDJYMiBnNzM1ICguWShuXzEwMiksIAotCS5CKG5fMTAwKSwgCi0JLkEoQVsyMF0pKTsKLSAgIEFORDJYMiBnNzQyICguWShuXzEwMCksIAotCS5CKEFbMTldKSwgCi0JLkEobl85OCkpOwotICAgQU5EMlgyIGc3NDcgKC5ZKG5fOTgpLCAKLQkuQihBWzE4XSksIAotCS5BKG5fOTQpKTsKLSAgIEFORDJYMiBnNzUyICguWShuXzk0KSwgCi0JLkIoQVsxN10pLCAKLQkuQShuXzkyKSk7Ci0gICBBTkQyWDIgZzc1NSAoLlkobl85MiksIAotCS5CKEFbMTZdKSwgCi0JLkEobl85MCkpOwotICAgQU5EMlgyIGc3NjAgKC5ZKG5fOTApLCAKLQkuQihuXzg4KSwgCi0JLkEoQVsxNV0pKTsKLSAgIEFORDJYMiBnNzY1ICguWShuXzg4KSwgCi0JLkIoQVsxNF0pLCAKLQkuQShuXzg2KSk7Ci0gICBBTkQyWDIgZzc3MCAoLlkobl84NiksIAotCS5CKEFbMTNdKSwgCi0JLkEobl84NCkpOwotICAgQU5EMlgyIGc3NzUgKC5ZKG5fODQpLCAKLQkuQihuXzgyKSwgCi0JLkEoQVsxMl0pKTsKLSAgIEFORDJYMiBnNzgwICguWShuXzgyKSwgCi0JLkIoQVsxMV0pLCAKLQkuQShuXzgwKSk7Ci0gICBBTkQyWDIgZzc4NyAoLlkobl84MCksIAotCS5CKEFbMTBdKSwgCi0JLkEobl83OCkpOwotICAgQU5EMlgyIGc3OTIgKC5ZKG5fNzgpLCAKLQkuQihBWzldKSwgCi0JLkEobl83NikpOwotICAgQU5EMlgyIGc3OTcgKC5ZKG5fNzYpLCAKLQkuQihuXzc0KSwgCi0JLkEoQVs4XSkpOwotICAgQU5EMlgyIGc4MDIgKC5ZKG5fNzQpLCAKLQkuQihBWzddKSwgCi0JLkEobl83MikpOwotICAgQU5EMlgyIGc4MDcgKC5ZKG5fNzIpLCAKLQkuQihBWzZdKSwgCi0JLkEobl83MCkpOwotICAgQU5EMlgyIGc4MTIgKC5ZKG5fNzApLCAKLQkuQihBWzVdKSwgCi0JLkEobl82OCkpOwotICAgQU5EMlgyIGc4MTcgKC5ZKG5fNjgpLCAKLQkuQihBWzRdKSwgCi0JLkEobl82NikpOwotICAgQU5EMlgyIGc4MjIgKC5ZKG5fNjYpLCAKLQkuQihBWzNdKSwgCi0JLkEobl82NCkpOwotICAgQU5EMlgyIGc4MjcgKC5ZKG5fNjQpLCAKLQkuQihBWzJdKSwgCi0JLkEobl82MikpOwotICAgQU5EMlgyIGc4MzIgKC5ZKG5fNjIpLCAKLQkuQihBWzFdKSwgCi0JLkEoQVswXSkpOwotICAgWE9SMlg0IGc5MjYgKC5ZKFpbMzFdKSwgCi0JLkIobl8xMjIpLCAKLQkuQShBWzMxXSkpOwotICAgWE9SMlg0IGcyICguWShaWzMwXSksIAotCS5CKEFbMzBdKSwgCi0JLkEobl8xMjApKTsKLSAgIFhPUjJYNCBnOTI3ICguWShaWzI5XSksIAotCS5CKEFbMjldKSwgCi0JLkEobl8xMTgpKTsKLSAgIFhPUjJYNCBnOTI4ICguWShaWzI4XSksIAotCS5CKEFbMjhdKSwgCi0JLkEobl8xMTYpKTsKLSAgIFhPUjJYNCBnOTI5ICguWShaWzI3XSksIAotCS5CKEFbMjddKSwgCi0JLkEobl8xMTQpKTsKLSAgIFhPUjJYNCBnOTMwICguWShaWzI2XSksIAotCS5CKEFbMjZdKSwgCi0JLkEobl8xMTIpKTsKLSAgIFhPUjJYNCBnOTMxICguWShaWzI1XSksIAotCS5CKEFbMjVdKSwgCi0JLkEobl8xMTApKTsKLSAgIFhPUjJYNCBnOTMyICguWShaWzI0XSksIAotCS5CKG5fMTA4KSwgCi0JLkEoQVsyNF0pKTsKLSAgIFhPUjJYNCBnOTMzICguWShaWzIzXSksIAotCS5CKEFbMjNdKSwgCi0JLkEobl8xMDYpKTsKLSAgIFhPUjJYNCBnOTM0ICguWShaWzIyXSksIAotCS5CKEFbMjJdKSwgCi0JLkEobl8xMDQpKTsKLSAgIFhPUjJYNCBnOTM1ICguWShaWzIxXSksIAotCS5CKEFbMjFdKSwgCi0JLkEobl8xMDIpKTsKLSAgIFhPUjJYNCBnOTM2ICguWShaWzIwXSksIAotCS5CKG5fMTAwKSwgCi0JLkEoQVsyMF0pKTsKLSAgIFhPUjJYNCBnOTM3ICguWShaWzE5XSksIAotCS5CKEFbMTldKSwgCi0JLkEobl85OCkpOwotICAgWE9SMlg0IGc5MzggKC5ZKFpbMThdKSwgCi0JLkIoQVsxOF0pLCAKLQkuQShuXzk0KSk7Ci0gICBYT1IyWDQgZzkzOSAoLlkoWlsxN10pLCAKLQkuQihBWzE3XSksIAotCS5BKG5fOTIpKTsKLSAgIFhPUjJYNCBnOTQwICguWShaWzE2XSksIAotCS5CKEFbMTZdKSwgCi0JLkEobl85MCkpOwotICAgWE9SMlg0IGc5NDEgKC5ZKFpbMTVdKSwgCi0JLkIobl84OCksIAotCS5BKEFbMTVdKSk7Ci0gICBYT1IyWDQgZzk0MiAoLlkoWlsxNF0pLCAKLQkuQihBWzE0XSksIAotCS5BKG5fODYpKTsKLSAgIFhPUjJYNCBnOTQzICguWShaWzEzXSksIAotCS5CKEFbMTNdKSwgCi0JLkEobl84NCkpOwotICAgWE9SMlg0IGc5NDQgKC5ZKFpbMTJdKSwgCi0JLkIobl84MiksIAotCS5BKEFbMTJdKSk7Ci0gICBYT1IyWDQgZzk0NSAoLlkoWlsxMV0pLCAKLQkuQihBWzExXSksIAotCS5BKG5fODApKTsKLSAgIFhPUjJYNCBnOTQ2ICguWShaWzEwXSksIAotCS5CKEFbMTBdKSwgCi0JLkEobl83OCkpOwotICAgWE9SMlg0IGc5NDcgKC5ZKFpbOV0pLCAKLQkuQihBWzldKSwgCi0JLkEobl83NikpOwotICAgWE9SMlg0IGc5NDggKC5ZKFpbOF0pLCAKLQkuQihuXzc0KSwgCi0JLkEoQVs4XSkpOwotICAgWE9SMlg0IGc5NDkgKC5ZKFpbN10pLCAKLQkuQihBWzddKSwgCi0JLkEobl83MikpOwotICAgWE9SMlg0IGc5NTAgKC5ZKFpbNl0pLCAKLQkuQihBWzZdKSwgCi0JLkEobl83MCkpOwotICAgWE9SMlg0IGc5NTEgKC5ZKFpbNV0pLCAKLQkuQihBWzVdKSwgCi0JLkEobl82OCkpOwotICAgWE9SMlg0IGc5NTIgKC5ZKFpbNF0pLCAKLQkuQihBWzRdKSwgCi0JLkEobl82NikpOwotICAgWE9SMlg0IGc5NTMgKC5ZKFpbM10pLCAKLQkuQihBWzNdKSwgCi0JLkEobl82NCkpOwotICAgWE9SMlg0IGc5NTQgKC5ZKFpbMl0pLCAKLQkuQihBWzJdKSwgCi0JLkEobl82MikpOwotICAgWE9SMlg0IGc5NTUgKC5ZKFpbMV0pLCAKLQkuQihBWzFdKSwgCi0JLkEoQVswXSkpOwotZW5kbW9kdWxlCi0KLW1vZHVsZSBtdWx0XzMyICgKLQlvdm0sIAotCW9wX2EsIAotCW9wX2IsIAotCXJlc3VsdCk7Ci0gICBpbnB1dCBvdm07Ci0gICBpbnB1dCBbMTU6MF0gb3BfYTsKLSAgIGlucHV0IFsxNTowXSBvcF9iOwotICAgb3V0cHV0IFszMTowXSByZXN1bHQ7Ci0KLSAgIC8vIEludGVybmFsIHdpcmVzCi0gICB3aXJlIFVOQ09OTkVDVEVEMTsKLSAgIHdpcmUgVU5DT05ORUNURUQyOwotICAgd2lyZSBcYWJfcmVzdWx0WzFdIDsKLSAgIHdpcmUgXGFiX3Jlc3VsdFsyXSA7Ci0gICB3aXJlIFxhYl9yZXN1bHRbM10gOwotICAgd2lyZSBcYWJfcmVzdWx0WzRdIDsKLSAgIHdpcmUgXGFiX3Jlc3VsdFs1XSA7Ci0gICB3aXJlIFxhYl9yZXN1bHRbNl0gOwotICAgd2lyZSBcYWJfcmVzdWx0WzddIDsKLSAgIHdpcmUgXGFiX3Jlc3VsdFs4XSA7Ci0gICB3aXJlIFxhYl9yZXN1bHRbOV0gOwotICAgd2lyZSBcYWJfcmVzdWx0WzEwXSA7Ci0gICB3aXJlIFxhYl9yZXN1bHRbMTFdIDsKLSAgIHdpcmUgXGFiX3Jlc3VsdFsxMl0gOwotICAgd2lyZSBcYWJfcmVzdWx0WzEzXSA7Ci0gICB3aXJlIFxhYl9yZXN1bHRbMTRdIDsKLSAgIHdpcmUgXGFiX3Jlc3VsdFsxNV0gOwotICAgd2lyZSBcYWJfcmVzdWx0WzE2XSA7Ci0gICB3aXJlIFxhYl9yZXN1bHRbMTddIDsKLSAgIHdpcmUgXGFiX3Jlc3VsdFsxOF0gOwotICAgd2lyZSBcYWJfcmVzdWx0WzE5XSA7Ci0gICB3aXJlIFxhYl9yZXN1bHRbMjBdIDsKLSAgIHdpcmUgXGFiX3Jlc3VsdFsyMV0gOwotICAgd2lyZSBcYWJfcmVzdWx0WzIyXSA7Ci0gICB3aXJlIFxhYl9yZXN1bHRbMjNdIDsKLSAgIHdpcmUgXGFiX3Jlc3VsdFsyNF0gOwotICAgd2lyZSBcYWJfcmVzdWx0WzI1XSA7Ci0gICB3aXJlIFxhYl9yZXN1bHRbMjZdIDsKLSAgIHdpcmUgXGFiX3Jlc3VsdFsyN10gOwotICAgd2lyZSBcYWJfcmVzdWx0WzI4XSA7Ci0gICB3aXJlIFxhYl9yZXN1bHRbMjldIDsKLSAgIHdpcmUgXGFiX3Jlc3VsdFszMF0gOwotICAgd2lyZSBcYWJfcmVzdWx0WzMxXSA7Ci0gICB3aXJlIG5fMjsKLSAgIHdpcmUgbl84MDsKLSAgIHdpcmUgbl8xMTE7Ci0gICB3aXJlIG5fMTE3OwotICAgd2lyZSBuXzExOTsKLSAgIHdpcmUgbl8xMjI7Ci0gICB3aXJlIG5fMTIzOwotICAgd2lyZSBuXzEyNDsKLSAgIHdpcmUgbl8xMjY7Ci0gICB3aXJlIG5fMTI3OwotICAgd2lyZSBuXzEyODsKLSAgIHdpcmUgbl8xMjk7Ci0gICB3aXJlIG5fMTMxOwotICAgd2lyZSBuXzEzMjsKLSAgIHdpcmUgbl8xMzM7Ci0gICB3aXJlIG5fMTM0OwotICAgd2lyZSBuXzEzNTsKLSAgIHdpcmUgbl8xMzY7Ci0gICB3aXJlIG5fMTM3OwotICAgd2lyZSBuXzEzODsKLSAgIHdpcmUgbl8xMzk7Ci0gICB3aXJlIG5fMTQwOwotICAgd2lyZSBuXzE0MTsKLSAgIHdpcmUgbl8xNDI7Ci0gICB3aXJlIG5fMTQzOwotICAgd2lyZSBuXzE0NDsKLSAgIHdpcmUgbl8xNDU7Ci0gICB3aXJlIG5fMTQ2OwotICAgd2lyZSBuXzE0NzsKLSAgIHdpcmUgbl8xNDg7Ci0gICB3aXJlIG5fMTQ5OwotICAgd2lyZSBuXzE1MDsKLSAgIHdpcmUgbl8xNTE7Ci0gICB3aXJlIG5fMTUyOwotICAgd2lyZSBuXzE1MzsKLSAgIHdpcmUgbl8xNTQ7Ci0gICB3aXJlIG5fMTU1OwotICAgd2lyZSBuXzE1NjsKLSAgIHdpcmUgbl8xNTc7Ci0gICB3aXJlIG5fMTU4OwotICAgd2lyZSBuXzE1OTsKLSAgIHdpcmUgbl8xNjA7Ci0gICB3aXJlIG5fMTYxOwotICAgd2lyZSBuXzE2MjsKLSAgIHdpcmUgbl8xNjM7Ci0gICB3aXJlIG5fMTY0OwotICAgd2lyZSBuXzE2NTsKLSAgIHdpcmUgbl8xNjY7Ci0gICB3aXJlIG5fMTY3OwotICAgd2lyZSBuXzE3MTsKLSAgIHdpcmUgbl8xNzM7Ci0gICB3aXJlIG5fMTc0OwotICAgd2lyZSBuXzE3NTsKLSAgIHdpcmUgbl8xNzY7Ci0gICB3aXJlIG5fMTc3OwotICAgd2lyZSBuXzE3ODsKLSAgIHdpcmUgbl8xNzk7Ci0gICB3aXJlIG5fMTg4OwotICAgd2lyZSBuXzE4OTsKLSAgIHdpcmUgbl8xOTA7Ci0gICB3aXJlIG5fMTkxOwotICAgd2lyZSBuXzIyNDsKLSAgIHdpcmUgbl8yMjU7Ci0gICB3aXJlIG5fMjI2OwotICAgd2lyZSBuXzIyNzsKLSAgIHdpcmUgbl8yMjg7Ci0gICB3aXJlIG5fMjI5OwotICAgd2lyZSBuXzIzMDsKLSAgIHdpcmUgbl8yMzE7Ci0gICB3aXJlIG5fMjMyOwotICAgd2lyZSBuXzIzMzsKLSAgIHdpcmUgbl8yMzQ7Ci0gICB3aXJlIG5fMjM1OwotICAgd2lyZSBuXzIzNjsKLSAgIHdpcmUgbl8yMzc7Ci0gICB3aXJlIG5fMjM4OwotICAgd2lyZSBuXzIzOTsKLSAgIHdpcmUgbl8yNDA7Ci0gICB3aXJlIG5fMjQxOwotICAgd2lyZSBuXzI0MjsKLSAgIHdpcmUgbl8yNDM7Ci0gICB3aXJlIG5fMjQ0OwotICAgd2lyZSBuXzI0NTsKLSAgIHdpcmUgbl8yNDY7Ci0gICB3aXJlIG5fMjQ3OwotICAgd2lyZSBuXzI0ODsKLSAgIHdpcmUgbl8yNDk7Ci0gICB3aXJlIG5fMjUwOwotICAgd2lyZSBuXzI1MTsKLSAgIHdpcmUgbl8yNTI7Ci0gICB3aXJlIG5fMjUzOwotICAgd2lyZSBuXzI1NDsKLSAgIHdpcmUgbl8yNTU7Ci0gICB3aXJlIG5fMjc2OwotICAgd2lyZSBuXzI4NzsKLSAgIHdpcmUgbl8yODg7Ci0gICB3aXJlIG5fMjg5OwotICAgd2lyZSBuXzI5MDsKLSAgIHdpcmUgbl8yOTE7Ci0gICB3aXJlIG5fMjkyOwotICAgd2lyZSBuXzI5MzsKLSAgIHdpcmUgbl8yOTQ7Ci0gICB3aXJlIG5fMjk1OwotICAgd2lyZSBuXzI5NjsKLSAgIHdpcmUgbl8yOTc7Ci0gICB3aXJlIG5fMjk4OwotICAgd2lyZSBuXzI5OTsKLSAgIHdpcmUgbl8zMDA7Ci0gICB3aXJlIG5fMzAxOwotICAgd2lyZSBuXzMwMjsKLSAgIHdpcmUgbl8zMDM7Ci0gICB3aXJlIG5fMzA0OwotICAgd2lyZSBuXzMwNTsKLSAgIHdpcmUgbl8zMDY7Ci0gICB3aXJlIG5fMzA3OwotICAgd2lyZSBuXzMwODsKLSAgIHdpcmUgbl8zMDk7Ci0gICB3aXJlIG5fMzEwOwotICAgd2lyZSBuXzMxMTsKLSAgIHdpcmUgbl8zMTI7Ci0gICB3aXJlIG5fMzEzOwotICAgd2lyZSBuXzMxNDsKLSAgIHdpcmUgbl8zNDA7Ci0gICB3aXJlIG5fMzQxOwotICAgd2lyZSBuXzM0MjsKLSAgIHdpcmUgbl8zNDM7Ci0gICB3aXJlIG5fMzQ0OwotICAgd2lyZSBuXzM0NTsKLSAgIHdpcmUgbl8zNDY7Ci0gICB3aXJlIG5fMzQ3OwotICAgd2lyZSBuXzM0ODsKLSAgIHdpcmUgbl8zNDk7Ci0gICB3aXJlIG5fMzUwOwotICAgd2lyZSBuXzM1MTsKLSAgIHdpcmUgbl8zNTI7Ci0gICB3aXJlIG5fMzUzOwotICAgd2lyZSBuXzM1NDsKLSAgIHdpcmUgbl8zNTU7Ci0gICB3aXJlIG5fMzU2OwotICAgd2lyZSBuXzM1NzsKLSAgIHdpcmUgbl8zNTg7Ci0gICB3aXJlIG5fMzU5OwotICAgd2lyZSBuXzM2MDsKLSAgIHdpcmUgbl8zNjE7Ci0gICB3aXJlIG5fMzYyOwotICAgd2lyZSBuXzM2MzsKLSAgIHdpcmUgbl8zNjQ7Ci0gICB3aXJlIG5fMzY1OwotICAgd2lyZSBuXzM2NjsKLSAgIHdpcmUgbl8zNjc7Ci0gICB3aXJlIG5fMzY4OwotICAgd2lyZSBuXzM2OTsKLSAgIHdpcmUgbl8zNzA7Ci0KLSAgIG0xNngxNiBNMTZYMTZfSU5TVCAoLmEoeyBuXzE5MSwKLQkJbl8zNDEsCi0JCW5fMzQzLAotCQluXzM0NCwKLQkJbl8zNDYsCi0JCW5fMzQ4LAotCQluXzM1MCwKLQkJbl8zNTIsCi0JCW5fMzU0LAotCQluXzM1NywKLQkJbl8zNTksCi0JCW5fMzYxLAotCQluXzM2MiwKLQkJbl8zNjQsCi0JCW5fMzY2LAotCQlvcF9hWzBdIH0pLCAKLQkuYih7IG5fMjc2LAotCQluXzM0MCwKLQkJbl8zNDIsCi0JCW5fMzQ1LAotCQluXzM0NywKLQkJbl8zNDksCi0JCW5fMzUxLAotCQluXzM1MywKLQkJbl8zNTUsCi0JCW5fMzU2LAotCQluXzM1OCwKLQkJbl8zNjAsCi0JCW5fMzYzLAotCQluXzM2NSwKLQkJbl8zNjcsCi0JCW9wX2JbMF0gfSksIAotCS55KHsgXGFiX3Jlc3VsdFszMV0gLAotCQlcYWJfcmVzdWx0WzMwXSAsCi0JCVxhYl9yZXN1bHRbMjldICwKLQkJXGFiX3Jlc3VsdFsyOF0gLAotCQlcYWJfcmVzdWx0WzI3XSAsCi0JCVxhYl9yZXN1bHRbMjZdICwKLQkJXGFiX3Jlc3VsdFsyNV0gLAotCQlcYWJfcmVzdWx0WzI0XSAsCi0JCVxhYl9yZXN1bHRbMjNdICwKLQkJXGFiX3Jlc3VsdFsyMl0gLAotCQlcYWJfcmVzdWx0WzIxXSAsCi0JCVxhYl9yZXN1bHRbMjBdICwKLQkJXGFiX3Jlc3VsdFsxOV0gLAotCQlcYWJfcmVzdWx0WzE4XSAsCi0JCVxhYl9yZXN1bHRbMTddICwKLQkJXGFiX3Jlc3VsdFsxNl0gLAotCQlcYWJfcmVzdWx0WzE1XSAsCi0JCVxhYl9yZXN1bHRbMTRdICwKLQkJXGFiX3Jlc3VsdFsxM10gLAotCQlcYWJfcmVzdWx0WzEyXSAsCi0JCVxhYl9yZXN1bHRbMTFdICwKLQkJXGFiX3Jlc3VsdFsxMF0gLAotCQlcYWJfcmVzdWx0WzldICwKLQkJXGFiX3Jlc3VsdFs4XSAsCi0JCVxhYl9yZXN1bHRbN10gLAotCQlcYWJfcmVzdWx0WzZdICwKLQkJXGFiX3Jlc3VsdFs1XSAsCi0JCVxhYl9yZXN1bHRbNF0gLAotCQlcYWJfcmVzdWx0WzNdICwKLQkJXGFiX3Jlc3VsdFsyXSAsCi0JCVxhYl9yZXN1bHRbMV0gLAotCQlyZXN1bHRbMF0gfSkpOwotICAgaW5jcmVtZW50X3Vuc2lnbmVkXzEzNzMgaW5jX2FkZF82M181NCAoLkEoeyBuXzI1NSwKLQkJbl8yNTQsCi0JCW5fMjM4LAotCQluXzI1MywKLQkJbl8yNDUsCi0JCW5fMjM3LAotCQluXzIzMCwKLQkJbl8yNTIsCi0JCW5fMjQ4LAotCQluXzI0NCwKLQkJbl8yNDEsCi0JCW5fMjM2LAotCQluXzIzMywKLQkJbl8yMjksCi0JCW5fMjI2LAotCQluXzI1MSwKLQkJbl8yNDksCi0JCW5fMjQ3LAotCQluXzI0NiwKLQkJbl8yNDMsCi0JCW5fMjQyLAotCQluXzI0MCwKLQkJbl8yMzksCi0JCW5fMjM1LAotCQluXzIzNCwKLQkJbl8yMzIsCi0JCW5fMjMxLAotCQluXzIyOCwKLQkJbl8yMjcsCi0JCW5fMjI1LAotCQluXzIyNCwKLQkJbl8yNTAgfSksIAotCS5DSSgxJ2IxKSwgCi0JLlooeyBVTkNPTk5FQ1RFRDEsCi0JCW5fMTg4LAotCQluXzE4OSwKLQkJbl8xOTAsCi0JCW5fMjg3LAotCQluXzI4OCwKLQkJbl8yODksCi0JCW5fMjkwLAotCQluXzI5MSwKLQkJbl8yOTIsCi0JCW5fMjkzLAotCQluXzI5NCwKLQkJbl8yOTUsCi0JCW5fMjk2LAotCQluXzI5NywKLQkJbl8yOTgsCi0JCW5fMjk5LAotCQluXzMwMCwKLQkJbl8zMDEsCi0JCW5fMzAyLAotCQluXzMwMywKLQkJbl8zMDQsCi0JCW5fMzA1LAotCQluXzMwNiwKLQkJbl8zMDcsCi0JCW5fMzA4LAotCQluXzMwOSwKLQkJbl8zMTAsCi0JCW5fMzExLAotCQluXzMxMiwKLQkJbl8zMTMsCi0JCW5fMzE0LAotCQlVTkNPTk5FQ1RFRDIgfSkpOwotICAgQU5EMlgyIGcxNTExICguWShuXzI3NiksIAotCS5CKG5fMTE5KSwgCi0JLkEob3BfYlsxNV0pKTsKLSAgIEFORDJYMiBnMTUxMiAoLlkobl8xOTEpLCAKLQkuQihuXzExNyksIAotCS5BKG9wX2FbMTVdKSk7Ci0gICBBTkQyWDEgZzE1MTYgKC5ZKG5fMTc5KSwgCi0JLkIobl8xNzcpLCAKLQkuQShvcF9iWzE1XSkpOwotICAgQU5EMlgxIGcxNTIyICguWShuXzE3OCksIAotCS5CKG5fMTc1KSwgCi0JLkEob3BfYVsxNV0pKTsKLSAgIE9SMlgyIGcxNTMwICguWShuXzE3NyksIAotCS5CKG5fMzcwKSwgCi0JLkEob3BfYlsxM10pKTsKLSAgIEFORDJYMSBnMTUzMiAoLlkobl8xNzYpLCAKLQkuQihuXzM3MCksIAotCS5BKG9wX2JbMTVdKSk7Ci0gICBPUjJYMiBnMTUzNiAoLlkobl8xNzUpLCAKLQkuQihuXzE3MSksIAotCS5BKG9wX2FbMTNdKSk7Ci0gICBBTkQyWDEgZzE1MzggKC5ZKG5fMTc0KSwgCi0JLkIobl8xNzEpLCAKLQkuQShvcF9hWzE1XSkpOwotICAgQU5EMlgxIGcxNTQyICguWShuXzE3MyksIAotCS5CKG5fMTY1KSwgCi0JLkEob3BfYVsxNV0pKTsKLSAgIE9SMlgxIGcxNTQ2ICguWShuXzE3MSksIAotCS5CKG5fMTY1KSwgCi0JLkEob3BfYVsxMl0pKTsKLSAgIEFORDJYMSBnMTU1NSAoLlkobl8xNjcpLCAKLQkuQihuXzE2MiksIAotCS5BKG9wX2FbMTVdKSk7Ci0gICBDTEtJTlZYMSBnMTU1OCAoLlkobl8xNjYpLCAKLQkuQShuXzExMSkpOwotICAgT1IyWDEgZzE1NjAgKC5ZKG5fMTY1KSwgCi0JLkIobl8xNjIpLCAKLQkuQShvcF9hWzExXSkpOwotICAgQU5EMlgxIGcxNTY2ICguWShuXzE2NCksIAotCS5CKG5fMTU4KSwgCi0JLkEob3BfYVsxNV0pKTsKLSAgIE9SMlgyIGcxNTcwICguWShuXzE2MyksIAotCS5CKG5fMTU5KSwgCi0JLkEob3BfYlsxMF0pKTsKLSAgIE9SMlgxIGcxNTcxICguWShuXzE2MiksIAotCS5CKG5fMTU4KSwgCi0JLkEob3BfYVsxMF0pKTsKLSAgIEFORDJYMSBnMTU3MyAoLlkobl8xNjEpLCAKLQkuQihuXzE1OSksIAotCS5BKG9wX2JbMTVdKSk7Ci0gICBBTkQyWDEgZzE1ODEgKC5ZKG5fMTYwKSwgCi0JLkIobl8xNTUpLCAKLQkuQShvcF9hWzE1XSkpOwotICAgT1IyWDEgZzE1ODIgKC5ZKG5fMTU5KSwgCi0JLkIobl8xNTMpLCAKLQkuQShvcF9iWzldKSk7Ci0gICBPUjJYMSBnMTU4MyAoLlkobl8xNTgpLCAKLQkuQihuXzE1NSksIAotCS5BKG9wX2FbOV0pKTsKLSAgIEFORDJYMSBnMTU4NSAoLlkobl8xNTcpLCAKLQkuQihuXzE1MyksIAotCS5BKG9wX2JbMTVdKSk7Ci0gICBBTkQyWDEgZzE1OTIgKC5ZKG5fMTU2KSwgCi0JLkIobl8xNTApLCAKLQkuQShvcF9hWzE1XSkpOwotICAgT1IyWDEgZzE1OTUgKC5ZKG5fMTU1KSwgCi0JLkIobl8xNTApLCAKLQkuQShvcF9hWzhdKSk7Ci0gICBBTkQyWDEgZzE1OTcgKC5ZKG5fMTU0KSwgCi0JLkIobl8xNTIpLCAKLQkuQShvcF9iWzE1XSkpOwotICAgT1IyWDEgZzE1OTggKC5ZKG5fMTUzKSwgCi0JLkIobl8xNTIpLCAKLQkuQShvcF9iWzhdKSk7Ci0gICBPUjJYMSBnMTYwMyAoLlkobl8xNTIpLCAKLQkuQihuXzE0NiksIAotCS5BKG9wX2JbN10pKTsKLSAgIEFORDJYMSBnMTYwNSAoLlkobl8xNTEpLCAKLQkuQihuXzE0NSksIAotCS5BKG9wX2FbMTVdKSk7Ci0gICBPUjJYMSBnMTYwOSAoLlkobl8xNTApLCAKLQkuQihuXzE0NSksIAotCS5BKG9wX2FbN10pKTsKLSAgIEFORDJYMSBnMTYxMSAoLlkobl8xNDkpLCAKLQkuQihuXzE0NiksIAotCS5BKG9wX2JbMTVdKSk7Ci0gICBBTkQyWDEgZzE2MTUgKC5ZKG5fMTQ4KSwgCi0JLkIobl8xNDIpLCAKLQkuQShvcF9hWzE1XSkpOwotICAgQU5EMlgxIGcxNjIwICguWShuXzE0NyksIAotCS5CKG5fMTQ0KSwgCi0JLkEob3BfYlsxNV0pKTsKLSAgIE9SMlgxIGcxNjIxICguWShuXzE0NiksIAotCS5CKG5fMTQ0KSwgCi0JLkEob3BfYls2XSkpOwotICAgT1IyWDEgZzE2MjMgKC5ZKG5fMTQ1KSwgCi0JLkIobl8xNDIpLCAKLQkuQShvcF9hWzZdKSk7Ci0gICBPUjJYMSBnMTYzMCAoLlkobl8xNDQpLCAKLQkuQihuXzEzOSksIAotCS5BKG9wX2JbNV0pKTsKLSAgIEFORDJYMSBnMTYzMiAoLlkobl8xNDMpLCAKLQkuQihuXzEzNyksIAotCS5BKG9wX2FbMTVdKSk7Ci0gICBPUjJYMSBnMTYzMyAoLlkobl8xNDIpLCAKLQkuQihuXzEzNyksIAotCS5BKG9wX2FbNV0pKTsKLSAgIEFORDJYMSBnMTYzNSAoLlkobl8xNDEpLCAKLQkuQihuXzEzOSksIAotCS5BKG9wX2JbMTVdKSk7Ci0gICBBTkQyWDEgZzE2MzkgKC5ZKG5fMTQwKSwgCi0JLkIobl8xMzMpLCAKLQkuQShvcF9hWzE1XSkpOwotICAgT1IyWDEgZzE2NDIgKC5ZKG5fMTM5KSwgCi0JLkIobl8xMzQpLCAKLQkuQShvcF9iWzRdKSk7Ci0gICBBTkQyWDEgZzE2NDUgKC5ZKG5fMTM4KSwgCi0JLkIob3BfYlsxNV0pLCAKLQkuQShuXzEzNCkpOwotICAgT1IyWDEgZzE2NDYgKC5ZKG5fMTM3KSwgCi0JLkIobl8xMzMpLCAKLQkuQShvcF9hWzRdKSk7Ci0gICBBTkQyWDEgZzE2NTMgKC5ZKG5fMTM2KSwgCi0JLkIob3BfYlsxNV0pLCAKLQkuQShuXzEzMSkpOwotICAgQU5EMlgxIGcxNjU2ICguWShuXzEzNSksIAotCS5CKG5fMTI5KSwgCi0JLkEob3BfYVsxNV0pKTsKLSAgIE9SMlgxIGcxNjU3ICguWShuXzEzNCksIAotCS5CKG5fMTMxKSwgCi0JLkEob3BfYlszXSkpOwotICAgT1IyWDEgZzE2NTkgKC5ZKG5fMTMzKSwgCi0JLkIobl8xMjkpLCAKLQkuQShvcF9hWzNdKSk7Ci0gICBBTkQyWDEgZzE2NjMgKC5ZKG5fMTMyKSwgCi0JLkIob3BfYlsxNV0pLCAKLQkuQShuXzEyNykpOwotICAgT1IyWDEgZzE2NjcgKC5ZKG5fMTMxKSwgCi0JLkIob3BfYlsyXSksIAotCS5BKG5fMTI3KSk7Ci0gICBPUjJYMSBnMTY2OSAoLlkobl8xMjkpLCAKLQkuQihuXzEyNCksIAotCS5BKG9wX2FbMl0pKTsKLSAgIEFORDJYMSBnMTY3MSAoLlkobl8xMjgpLCAKLQkuQihuXzEyNCksIAotCS5BKG9wX2FbMTVdKSk7Ci0gICBPUjJYMSBnMTY3MiAoLlkobl8xMjcpLCAKLQkuQihvcF9iWzFdKSwgCi0JLkEob3BfYlswXSkpOwotICAgQU5EMlgxIGcxNjc2ICguWShuXzEyNiksIAotCS5CKG9wX2JbMTVdKSwgCi0JLkEob3BfYlswXSkpOwotICAgT1IyWDEgZzE2NzggKC5ZKG5fMTI0KSwgCi0JLkIob3BfYVswXSksIAotCS5BKG9wX2FbMV0pKTsKLSAgIENMS0lOVlgxIGcxNjk0ICguWShuXzEyMyksIAotCS5BKG9wX2JbMTRdKSk7Ci0gICBDTEtJTlZYMSBnMTcwNCAoLlkobl8xMjIpLCAKLQkuQShvcF9hWzE0XSkpOwotICAgTk9SMkJYNCBnMTcxMSAoLlkobl8xMTkpLCAKLQkuQihuXzE3NyksIAotCS5BTihuXzEyMykpOwotICAgTk9SMkJYNCBnMTcxMyAoLlkobl8xMTcpLCAKLQkuQihuXzE3NSksIAotCS5BTihuXzEyMikpOwotICAgTkFORDJYOCBnMTcxOSAoLlkobl8xMTEpLCAKLQkuQihuXzE2MyksIAotCS5BKG9wX2JbMTVdKSk7Ci0gICBOQU5EMlgyIGcxNzUwICguWShuXzgwKSwgCi0JLkIob3BfYVswXSksIAotCS5BKG9wX2FbMTVdKSk7Ci0gICBDTEtJTlZYMiBnNzg0ICguWShuXzI1NSksIAotCS5BKFxhYl9yZXN1bHRbMzFdICkpOwotICAgQ0xLSU5WWDIgZzc4NSAoLlkobl8yNTApLCAKLQkuQShyZXN1bHRbMF0pKTsKLSAgIENMS0lOVlgyIGc3ODYgKC5ZKG5fMjI0KSwgCi0JLkEoXGFiX3Jlc3VsdFsxXSApKTsKLSAgIENMS0lOVlgyIGc3ODcgKC5ZKG5fMjI1KSwgCi0JLkEoXGFiX3Jlc3VsdFsyXSApKTsKLSAgIENMS0lOVlgyIGc3ODggKC5ZKG5fMjI3KSwgCi0JLkEoXGFiX3Jlc3VsdFszXSApKTsKLSAgIENMS0lOVlgyIGc3ODkgKC5ZKG5fMjI4KSwgCi0JLkEoXGFiX3Jlc3VsdFs0XSApKTsKLSAgIENMS0lOVlgyIGc3OTAgKC5ZKG5fMjMxKSwgCi0JLkEoXGFiX3Jlc3VsdFs1XSApKTsKLSAgIENMS0lOVlgyIGc3OTEgKC5ZKG5fMjMyKSwgCi0JLkEoXGFiX3Jlc3VsdFs2XSApKTsKLSAgIENMS0lOVlgyIGc3OTIgKC5ZKG5fMjM0KSwgCi0JLkEoXGFiX3Jlc3VsdFs3XSApKTsKLSAgIENMS0lOVlgyIGc3OTMgKC5ZKG5fMjM1KSwgCi0JLkEoXGFiX3Jlc3VsdFs4XSApKTsKLSAgIENMS0lOVlgyIGc3OTQgKC5ZKG5fMjM5KSwgCi0JLkEoXGFiX3Jlc3VsdFs5XSApKTsKLSAgIENMS0lOVlgyIGc3OTUgKC5ZKG5fMjQwKSwgCi0JLkEoXGFiX3Jlc3VsdFsxMF0gKSk7Ci0gICBDTEtJTlZYMiBnNzk2ICguWShuXzI0MiksIAotCS5BKFxhYl9yZXN1bHRbMTFdICkpOwotICAgQ0xLSU5WWDIgZzc5NyAoLlkobl8yNDMpLCAKLQkuQShcYWJfcmVzdWx0WzEyXSApKTsKLSAgIENMS0lOVlgyIGc3OTggKC5ZKG5fMjQ2KSwgCi0JLkEoXGFiX3Jlc3VsdFsxM10gKSk7Ci0gICBDTEtJTlZYMiBnNzk5ICguWShuXzI0NyksIAotCS5BKFxhYl9yZXN1bHRbMTRdICkpOwotICAgQ0xLSU5WWDIgZzgwMCAoLlkobl8yNDkpLCAKLQkuQShcYWJfcmVzdWx0WzE1XSApKTsKLSAgIENMS0lOVlgyIGc4MDEgKC5ZKG5fMjUxKSwgCi0JLkEoXGFiX3Jlc3VsdFsxNl0gKSk7Ci0gICBDTEtJTlZYMiBnODAyICguWShuXzIyNiksIAotCS5BKFxhYl9yZXN1bHRbMTddICkpOwotICAgQ0xLSU5WWDIgZzgwMyAoLlkobl8yMjkpLCAKLQkuQShcYWJfcmVzdWx0WzE4XSApKTsKLSAgIENMS0lOVlgyIGc4MDQgKC5ZKG5fMjMzKSwgCi0JLkEoXGFiX3Jlc3VsdFsxOV0gKSk7Ci0gICBDTEtJTlZYMiBnODA1ICguWShuXzIzNiksIAotCS5BKFxhYl9yZXN1bHRbMjBdICkpOwotICAgQ0xLSU5WWDIgZzgwNiAoLlkobl8yNDEpLCAKLQkuQShcYWJfcmVzdWx0WzIxXSApKTsKLSAgIENMS0lOVlgyIGc4MDcgKC5ZKG5fMjQ0KSwgCi0JLkEoXGFiX3Jlc3VsdFsyMl0gKSk7Ci0gICBDTEtJTlZYMiBnODA4ICguWShuXzI0OCksIAotCS5BKFxhYl9yZXN1bHRbMjNdICkpOwotICAgQ0xLSU5WWDIgZzgwOSAoLlkobl8yNTIpLCAKLQkuQShcYWJfcmVzdWx0WzI0XSApKTsKLSAgIENMS0lOVlgyIGc4MTAgKC5ZKG5fMjMwKSwgCi0JLkEoXGFiX3Jlc3VsdFsyNV0gKSk7Ci0gICBDTEtJTlZYMiBnODExICguWShuXzIzNyksIAotCS5BKFxhYl9yZXN1bHRbMjZdICkpOwotICAgQ0xLSU5WWDIgZzgxMiAoLlkobl8yNDUpLCAKLQkuQShcYWJfcmVzdWx0WzI3XSApKTsKLSAgIENMS0lOVlgyIGc4MTMgKC5ZKG5fMjUzKSwgCi0JLkEoXGFiX3Jlc3VsdFsyOF0gKSk7Ci0gICBDTEtJTlZYMiBnODE0ICguWShuXzIzOCksIAotCS5BKFxhYl9yZXN1bHRbMjldICkpOwotICAgQ0xLSU5WWDIgZzgxNSAoLlkobl8yNTQpLCAKLQkuQShcYWJfcmVzdWx0WzMwXSApKTsKLSAgIENMS0lOVlg4IGcxMzY5ICguWShuXzIpLCAKLQkuQShuXzM2OCkpOwotICAgQ0xLTVgyWDEyIGcxNzY2ICguWShuXzM0MCksIAotCS5TMChuXzE3OSksIAotCS5CKG5fMTIzKSwgCi0JLkEob3BfYlsxNF0pKTsKLSAgIENMS01YMlgxMiBnMiAoLlkobl8zNDEpLCAKLQkuUzAobl8xNzgpLCAKLQkuQihuXzEyMiksIAotCS5BKG9wX2FbMTRdKSk7Ci0gICBYT1IyWDQgZzE3NjcgKC5ZKG5fMzQyKSwgCi0JLkIob3BfYlsxM10pLCAKLQkuQShuXzE3NikpOwotICAgWE9SMlg0IGcxNzY4ICguWShuXzM0MyksIAotCS5CKG9wX2FbMTNdKSwgCi0JLkEobl8xNzQpKTsKLSAgIFhPUjJYNCBnMTc2OSAoLlkobl8zNDQpLCAKLQkuQihvcF9hWzEyXSksIAotCS5BKG5fMTczKSk7Ci0gICBYT1IyWDQgZzE3NzAgKC5ZKG5fMzQ1KSwgCi0JLkIob3BfYlsxMl0pLCAKLQkuQShuXzM2OSkpOwotICAgWE9SMlg0IGcxNzcxICguWShuXzM0NiksIAotCS5CKG9wX2FbMTFdKSwgCi0JLkEobl8xNjcpKTsKLSAgIENMS01YMlgxMiBnMTc3MiAoLlkobl8zNDcpLCAKLQkuUzAob3BfYlsxMV0pLCAKLQkuQihuXzExMSksIAotCS5BKG5fMTY2KSk7Ci0gICBYT1IyWDQgZzE3NzMgKC5ZKG5fMzQ4KSwgCi0JLkIob3BfYVsxMF0pLCAKLQkuQShuXzE2NCkpOwotICAgWE9SMlg0IGcxNzc0ICguWShuXzM0OSksIAotCS5CKG9wX2JbMTBdKSwgCi0JLkEobl8xNjEpKTsKLSAgIFhPUjJYNCBnMTc3NSAoLlkobl8zNTApLCAKLQkuQihvcF9hWzldKSwgCi0JLkEobl8xNjApKTsKLSAgIFhPUjJYNCBnMTc3NiAoLlkobl8zNTEpLCAKLQkuQihvcF9iWzldKSwgCi0JLkEobl8xNTcpKTsKLSAgIFhPUjJYNCBnMTc3NyAoLlkobl8zNTIpLCAKLQkuQihvcF9hWzhdKSwgCi0JLkEobl8xNTYpKTsKLSAgIFhPUjJYNCBnMTc3OCAoLlkobl8zNTMpLCAKLQkuQihvcF9iWzhdKSwgCi0JLkEobl8xNTQpKTsKLSAgIFhPUjJYNCBnMTc3OSAoLlkobl8zNTQpLCAKLQkuQihvcF9hWzddKSwgCi0JLkEobl8xNTEpKTsKLSAgIFhPUjJYNCBnMTc4MCAoLlkobl8zNTUpLCAKLQkuQihvcF9iWzddKSwgCi0JLkEobl8xNDkpKTsKLSAgIFhPUjJYNCBnMTc4MSAoLlkobl8zNTYpLCAKLQkuQihvcF9iWzZdKSwgCi0JLkEobl8xNDcpKTsKLSAgIFhPUjJYNCBnMTc4MiAoLlkobl8zNTcpLCAKLQkuQihuXzE0OCksIAotCS5BKG9wX2FbNl0pKTsKLSAgIFhPUjJYNCBnMTc4MyAoLlkobl8zNTgpLCAKLQkuQihuXzE0MSksIAotCS5BKG9wX2JbNV0pKTsKLSAgIFhPUjJYNCBnMTc4NCAoLlkobl8zNTkpLCAKLQkuQihvcF9hWzVdKSwgCi0JLkEobl8xNDMpKTsKLSAgIFhPUjJYNCBnMTc4NSAoLlkobl8zNjApLCAKLQkuQihvcF9iWzRdKSwgCi0JLkEobl8xMzgpKTsKLSAgIFhPUjJYNCBnMTc4NiAoLlkobl8zNjEpLCAKLQkuQihuXzE0MCksIAotCS5BKG9wX2FbNF0pKTsKLSAgIFhPUjJYNCBnMTc4NyAoLlkobl8zNjIpLCAKLQkuQihvcF9hWzNdKSwgCi0JLkEobl8xMzUpKTsKLSAgIFhPUjJYNCBnMTc4OCAoLlkobl8zNjMpLCAKLQkuQihvcF9iWzNdKSwgCi0JLkEobl8xMzYpKTsKLSAgIFhPUjJYNCBnMTc4OSAoLlkobl8zNjQpLCAKLQkuQihuXzEyOCksIAotCS5BKG9wX2FbMl0pKTsKLSAgIFhPUjJYNCBnMTc5MCAoLlkobl8zNjUpLCAKLQkuQihvcF9iWzJdKSwgCi0JLkEobl8xMzIpKTsKLSAgIFhOT1IyWDQgZzE3OTEgKC5ZKG5fMzY2KSwgCi0JLkIobl84MCksIAotCS5BKG9wX2FbMV0pKTsKLSAgIFhPUjJYNCBnMTc5MiAoLlkobl8zNjcpLCAKLQkuQihvcF9iWzFdKSwgCi0JLkEobl8xMjYpKTsKLSAgIFhOT1IyWDQgZzE3OTMgKC5ZKG5fMzY4KSwgCi0JLkIob3BfYlsxNV0pLCAKLQkuQShvcF9hWzE1XSkpOwotICAgQU8yMVg0IGcxNzk0ICguWShuXzM2OSksIAotCS5CMChuXzE2NiksIAotCS5BMShvcF9iWzE1XSksIAotCS5BMChvcF9iWzExXSkpOwotICAgT1IzWDYgZzE3OTUgKC5ZKG5fMzcwKSwgCi0JLkMobl8xNjMpLCAKLQkuQihvcF9iWzEyXSksIAotCS5BKG9wX2JbMTFdKSk7Ci0gICBBTzIyWDQgZzE3OTYgKC5ZKHJlc3VsdFszMV0pLCAKLQkuQjEobl8xODgpLCAKLQkuQjAobl8yKSwgCi0JLkExKFxhYl9yZXN1bHRbMzFdICksIAotCS5BMChuXzM2OCkpOwotICAgQU8yMlg0IGcxNzk3ICguWShyZXN1bHRbMzBdKSwgCi0JLkIxKG5fMTg5KSwgCi0JLkIwKG5fMiksIAotCS5BMShcYWJfcmVzdWx0WzMwXSApLCAKLQkuQTAobl8zNjgpKTsKLSAgIEFPMjJYNCBnMTc5OCAoLlkocmVzdWx0WzI5XSksIAotCS5CMShuXzE5MCksIAotCS5CMChuXzIpLCAKLQkuQTEoXGFiX3Jlc3VsdFsyOV0gKSwgCi0JLkEwKG5fMzY4KSk7Ci0gICBBTzIyWDQgZzE3OTkgKC5ZKHJlc3VsdFsxOV0pLCAKLQkuQjEobl8yOTYpLCAKLQkuQjAobl8yKSwgCi0JLkExKFxhYl9yZXN1bHRbMTldICksIAotCS5BMChuXzM2OCkpOwotICAgQU8yMlg0IGcxODAwICguWShyZXN1bHRbNl0pLCAKLQkuQjEobl8zMDkpLCAKLQkuQjAobl8yKSwgCi0JLkExKFxhYl9yZXN1bHRbNl0gKSwgCi0JLkEwKG5fMzY4KSk7Ci0gICBBTzIyWDQgZzE4MDEgKC5ZKHJlc3VsdFsxOF0pLCAKLQkuQjEobl8yOTcpLCAKLQkuQjAobl8yKSwgCi0JLkExKFxhYl9yZXN1bHRbMThdICksIAotCS5BMChuXzM2OCkpOwotICAgQU8yMlg0IGcxODAyICguWShyZXN1bHRbNV0pLCAKLQkuQjEobl8zMTApLCAKLQkuQjAobl8yKSwgCi0JLkExKFxhYl9yZXN1bHRbNV0gKSwgCi0JLkEwKG5fMzY4KSk7Ci0gICBBTzIyWDQgZzE4MDMgKC5ZKHJlc3VsdFs0XSksIAotCS5CMShuXzMxMSksIAotCS5CMChuXzIpLCAKLQkuQTEoXGFiX3Jlc3VsdFs0XSApLCAKLQkuQTAobl8zNjgpKTsKLSAgIEFPMjJYNCBnMTgwNCAoLlkocmVzdWx0WzI1XSksIAotCS5CMShuXzI5MCksIAotCS5CMChuXzIpLCAKLQkuQTEoXGFiX3Jlc3VsdFsyNV0gKSwgCi0JLkEwKG5fMzY4KSk7Ci0gICBBTzIyWDQgZzE4MDUgKC5ZKHJlc3VsdFszXSksIAotCS5CMShuXzMxMiksIAotCS5CMChuXzIpLCAKLQkuQTEoXGFiX3Jlc3VsdFszXSApLCAKLQkuQTAobl8zNjgpKTsKLSAgIEFPMjJYNCBnMTgwNiAoLlkocmVzdWx0WzJdKSwgCi0JLkIxKG5fMzEzKSwgCi0JLkIwKG5fMiksIAotCS5BMShcYWJfcmVzdWx0WzJdICksIAotCS5BMChuXzM2OCkpOwotICAgQU8yMlg0IGcxODA3ICguWShyZXN1bHRbMTddKSwgCi0JLkIxKG5fMjk4KSwgCi0JLkIwKG5fMiksIAotCS5BMShcYWJfcmVzdWx0WzE3XSApLCAKLQkuQTAobl8zNjgpKTsKLSAgIEFPMjJYNCBnMTgwOCAoLlkocmVzdWx0WzFdKSwgCi0JLkIxKG5fMzE0KSwgCi0JLkIwKG5fMiksIAotCS5BMShcYWJfcmVzdWx0WzFdICksIAotCS5BMChuXzM2OCkpOwotICAgQU8yMlg0IGcxODA5ICguWShyZXN1bHRbMjhdKSwgCi0JLkIxKG5fMjg3KSwgCi0JLkIwKG5fMiksIAotCS5BMShcYWJfcmVzdWx0WzI4XSApLCAKLQkuQTAobl8zNjgpKTsKLSAgIEFPMjJYNCBnMTgxMCAoLlkocmVzdWx0WzI0XSksIAotCS5CMShuXzI5MSksIAotCS5CMChuXzIpLCAKLQkuQTEoXGFiX3Jlc3VsdFsyNF0gKSwgCi0JLkEwKG5fMzY4KSk7Ci0gICBBTzIyWDQgZzE4MTEgKC5ZKHJlc3VsdFsxNl0pLCAKLQkuQjEobl8yOTkpLCAKLQkuQjAobl8yKSwgCi0JLkExKFxhYl9yZXN1bHRbMTZdICksIAotCS5BMChuXzM2OCkpOwotICAgQU8yMlg0IGcxODEyICguWShyZXN1bHRbMTVdKSwgCi0JLkIxKG5fMzAwKSwgCi0JLkIwKG5fMiksIAotCS5BMShcYWJfcmVzdWx0WzE1XSApLCAKLQkuQTAobl8zNjgpKTsKLSAgIEFPMjJYNCBnMTgxMyAoLlkocmVzdWx0WzIzXSksIAotCS5CMShuXzI5MiksIAotCS5CMChuXzIpLCAKLQkuQTEoXGFiX3Jlc3VsdFsyM10gKSwgCi0JLkEwKG5fMzY4KSk7Ci0gICBBTzIyWDQgZzE4MTQgKC5ZKHJlc3VsdFsxNF0pLCAKLQkuQjEobl8zMDEpLCAKLQkuQjAobl8yKSwgCi0JLkExKFxhYl9yZXN1bHRbMTRdICksIAotCS5BMChuXzM2OCkpOwotICAgQU8yMlg0IGcxODE1ICguWShyZXN1bHRbMjddKSwgCi0JLkIxKG5fMjg4KSwgCi0JLkIwKG5fMiksIAotCS5BMShcYWJfcmVzdWx0WzI3XSApLCAKLQkuQTAobl8zNjgpKTsKLSAgIEFPMjJYNCBnMTgxNiAoLlkocmVzdWx0WzIyXSksIAotCS5CMShuXzI5MyksIAotCS5CMChuXzIpLCAKLQkuQTEoXGFiX3Jlc3VsdFsyMl0gKSwgCi0JLkEwKG5fMzY4KSk7Ci0gICBBTzIyWDQgZzE4MTcgKC5ZKHJlc3VsdFsxM10pLCAKLQkuQjEobl8zMDIpLCAKLQkuQjAobl8yKSwgCi0JLkExKFxhYl9yZXN1bHRbMTNdICksIAotCS5BMChuXzM2OCkpOwotICAgQU8yMlg0IGcxODE4ICguWShyZXN1bHRbMTJdKSwgCi0JLkIxKG5fMzAzKSwgCi0JLkIwKG5fMiksIAotCS5BMShcYWJfcmVzdWx0WzEyXSApLCAKLQkuQTAobl8zNjgpKTsKLSAgIEFPMjJYNCBnMTgxOSAoLlkocmVzdWx0WzExXSksIAotCS5CMShuXzMwNCksIAotCS5CMChuXzIpLCAKLQkuQTEoXGFiX3Jlc3VsdFsxMV0gKSwgCi0JLkEwKG5fMzY4KSk7Ci0gICBBTzIyWDQgZzE4MjAgKC5ZKHJlc3VsdFsxMF0pLCAKLQkuQjEobl8zMDUpLCAKLQkuQjAobl8yKSwgCi0JLkExKFxhYl9yZXN1bHRbMTBdICksIAotCS5BMChuXzM2OCkpOwotICAgQU8yMlg0IGcxODIxICguWShyZXN1bHRbMjZdKSwgCi0JLkIxKG5fMjg5KSwgCi0JLkIwKG5fMiksIAotCS5BMShcYWJfcmVzdWx0WzI2XSApLCAKLQkuQTAobl8zNjgpKTsKLSAgIEFPMjJYNCBnMTgyMiAoLlkocmVzdWx0WzIxXSksIAotCS5CMShuXzI5NCksIAotCS5CMChuXzIpLCAKLQkuQTEoXGFiX3Jlc3VsdFsyMV0gKSwgCi0JLkEwKG5fMzY4KSk7Ci0gICBBTzIyWDQgZzE4MjMgKC5ZKHJlc3VsdFs5XSksIAotCS5CMShuXzMwNiksIAotCS5CMChuXzIpLCAKLQkuQTEoXGFiX3Jlc3VsdFs5XSApLCAKLQkuQTAobl8zNjgpKTsKLSAgIEFPMjJYNCBnMTgyNCAoLlkocmVzdWx0WzIwXSksIAotCS5CMShuXzI5NSksIAotCS5CMChuXzIpLCAKLQkuQTEoXGFiX3Jlc3VsdFsyMF0gKSwgCi0JLkEwKG5fMzY4KSk7Ci0gICBBTzIyWDQgZzE4MjUgKC5ZKHJlc3VsdFs4XSksIAotCS5CMShuXzMwNyksIAotCS5CMChuXzIpLCAKLQkuQTEoXGFiX3Jlc3VsdFs4XSApLCAKLQkuQTAobl8zNjgpKTsKLSAgIEFPMjJYNCBnMTgyNiAoLlkocmVzdWx0WzddKSwgCi0JLkIxKG5fMzA4KSwgCi0JLkIwKG5fMiksIAotCS5BMShcYWJfcmVzdWx0WzddICksIAotCS5BMChuXzM2OCkpOwotZW5kbW9kdWxlCi0KLW1vZHVsZSBDS0xOUUQxQldQX1NQQ0FfMTcgKAotCUUsIAotCUNQLCAKLQlURSwgCi0JUSk7Ci0gICBpbnB1dCBFOwotICAgaW5wdXQgQ1A7Ci0gICBpbnB1dCBURTsKLSAgIG91dHB1dCBROwotCi0gICBUTEFUTlRTQ0FYMTYgTEFUQ0ggKC5TRShURSksIAotCS5FQ0soUSksIAotCS5FKEUpLCAKLQkuQ0soQ1ApKTsKLWVuZG1vZHVsZQotCi1tb2R1bGUgUkNfQ0dfTU9EXzMyOTFfMzMwMCAoCi0JZW5hYmxlLCAKLQlja19pbiwgCi0JY2tfb3V0LCAKLQl0ZXN0KTsKLSAgIGlucHV0IGVuYWJsZTsKLSAgIGlucHV0IGNrX2luOwotICAgb3V0cHV0IGNrX291dDsKLSAgIGlucHV0IHRlc3Q7Ci0KLSAgIENLTE5RRDFCV1BfU1BDQV8xNyBSQ19DR0lDX0lOU1QgKC5FKGVuYWJsZSksIAotCS5DUChja19pbiksIAotCS5URSh0ZXN0KSwgCi0JLlEoY2tfb3V0KSk7Ci1lbmRtb2R1bGUKLQotbW9kdWxlIFNERkNOUUQxQldQX1NQQ0FfMjkyICgKLQlTSSwgCi0JU0UsIAotCVEsIAotCUQsIAotCUNQLCAKLQlDRE4pOwotICAgaW5wdXQgU0k7Ci0gICBpbnB1dCBTRTsKLSAgIG91dHB1dCBROwotICAgaW5wdXQgRDsKLSAgIGlucHV0IENQOwotICAgaW5wdXQgQ0ROOwotCi0gICBTREZGUlg0IERGRiAoLlNJKFNJKSwgCi0JLlNFKFNFKSwgCi0JLlJOKENETiksIAotCS5RKFEpLCAKLQkuRChEKSwgCi0JLkNLKENQKSk7Ci1lbmRtb2R1bGUKLQotbW9kdWxlIFJTREZDU1JIRDJCV1BfUkVNQVBfU1BDXzIxMCAoCi0JQ0ROLCAKLQlTRE4sIAotCUNQLCAKLQlELCAKLQlTSSwgCi0JU0UsIAotCVNBVkUsIAotCU5SRVNUT1JFLCAKLQlRKTsKLSAgIGlucHV0IENETjsKLSAgIGlucHV0IFNETjsKLSAgIGlucHV0IENQOwotICAgaW5wdXQgRDsKLSAgIGlucHV0IFNJOwotICAgaW5wdXQgU0U7Ci0gICBpbnB1dCBTQVZFOwotICAgaW5wdXQgTlJFU1RPUkU7Ci0gICBvdXRwdXQgUTsKLQotICAgU0RGQ05RRDFCV1BfU1BDQV8yOTIgc3RhdGVfcmVtYXAgKC5TSShTSSksIAotCS5TRShTRSksIAotCS5RKFEpLCAKLQkuRChEKSwgCi0JLkNQKENQKSwgCi0JLkNETihDRE4pKTsKLWVuZG1vZHVsZQotCi1tb2R1bGUgU0RGQ05RRDFCV1BfU1BDQV8yOTMgKAotCVNJLCAKLQlTRSwgCi0JUSwgCi0JRCwgCi0JQ1AsIAotCUNETik7Ci0gICBpbnB1dCBTSTsKLSAgIGlucHV0IFNFOwotICAgb3V0cHV0IFE7Ci0gICBpbnB1dCBEOwotICAgaW5wdXQgQ1A7Ci0gICBpbnB1dCBDRE47Ci0KLSAgIFNERkZSWDQgREZGICguU0koU0kpLCAKLQkuU0UoU0UpLCAKLQkuUk4oQ0ROKSwgCi0JLlEoUSksIAotCS5EKEQpLCAKLQkuQ0soQ1ApKTsKLWVuZG1vZHVsZQotCi1tb2R1bGUgUlNERkNTUkhEMkJXUF9SRU1BUF9TUENfMjExICgKLQlDRE4sIAotCVNETiwgCi0JQ1AsIAotCUQsIAotCVNJLCAKLQlTRSwgCi0JU0FWRSwgCi0JTlJFU1RPUkUsIAotCVEpOwotICAgaW5wdXQgQ0ROOwotICAgaW5wdXQgU0ROOwotICAgaW5wdXQgQ1A7Ci0gICBpbnB1dCBEOwotICAgaW5wdXQgU0k7Ci0gICBpbnB1dCBTRTsKLSAgIGlucHV0IFNBVkU7Ci0gICBpbnB1dCBOUkVTVE9SRTsKLSAgIG91dHB1dCBROwotCi0gICBTREZDTlFEMUJXUF9TUENBXzI5MyBzdGF0ZV9yZW1hcCAoLlNJKFNJKSwgCi0JLlNFKFNFKSwgCi0JLlEoUSksIAotCS5EKEQpLCAKLQkuQ1AoQ1ApLCAKLQkuQ0ROKENETikpOwotZW5kbW9kdWxlCi0KLW1vZHVsZSBTREZDTlFEMUJXUF9TUENBXzI5NCAoCi0JU0ksIAotCVNFLCAKLQlRLCAKLQlELCAKLQlDUCwgCi0JQ0ROKTsKLSAgIGlucHV0IFNJOwotICAgaW5wdXQgU0U7Ci0gICBvdXRwdXQgUTsKLSAgIGlucHV0IEQ7Ci0gICBpbnB1dCBDUDsKLSAgIGlucHV0IENETjsKLQotICAgU0RGRlJYNCBERkYgKC5TSShTSSksIAotCS5TRShTRSksIAotCS5STihDRE4pLCAKLQkuUShRKSwgCi0JLkQoRCksIAotCS5DSyhDUCkpOwotZW5kbW9kdWxlCi0KLW1vZHVsZSBSU0RGQ1NSSEQyQldQX1JFTUFQX1NQQ18yMTIgKAotCUNETiwgCi0JU0ROLCAKLQlDUCwgCi0JRCwgCi0JU0ksIAotCVNFLCAKLQlTQVZFLCAKLQlOUkVTVE9SRSwgCi0JUSk7Ci0gICBpbnB1dCBDRE47Ci0gICBpbnB1dCBTRE47Ci0gICBpbnB1dCBDUDsKLSAgIGlucHV0IEQ7Ci0gICBpbnB1dCBTSTsKLSAgIGlucHV0IFNFOwotICAgaW5wdXQgU0FWRTsKLSAgIGlucHV0IE5SRVNUT1JFOwotICAgb3V0cHV0IFE7Ci0KLSAgIFNERkNOUUQxQldQX1NQQ0FfMjk0IHN0YXRlX3JlbWFwICguU0koU0kpLCAKLQkuU0UoU0UpLCAKLQkuUShRKSwgCi0JLkQoRCksIAotCS5DUChDUCksIAotCS5DRE4oQ0ROKSk7Ci1lbmRtb2R1bGUKLQotbW9kdWxlIFNERkNOUUQxQldQX1NQQ0FfMjk1ICgKLQlTSSwgCi0JU0UsIAotCVEsIAotCUQsIAotCUNQLCAKLQlDRE4pOwotICAgaW5wdXQgU0k7Ci0gICBpbnB1dCBTRTsKLSAgIG91dHB1dCBROwotICAgaW5wdXQgRDsKLSAgIGlucHV0IENQOwotICAgaW5wdXQgQ0ROOwotCi0gICBTREZGUlg0IERGRiAoLlNJKFNJKSwgCi0JLlNFKFNFKSwgCi0JLlJOKENETiksIAotCS5RKFEpLCAKLQkuRChEKSwgCi0JLkNLKENQKSk7Ci1lbmRtb2R1bGUKLQotbW9kdWxlIFJTREZDU1JIRDJCV1BfUkVNQVBfU1BDXzIxMyAoCi0JQ0ROLCAKLQlTRE4sIAotCUNQLCAKLQlELCAKLQlTSSwgCi0JU0UsIAotCVNBVkUsIAotCU5SRVNUT1JFLCAKLQlRKTsKLSAgIGlucHV0IENETjsKLSAgIGlucHV0IFNETjsKLSAgIGlucHV0IENQOwotICAgaW5wdXQgRDsKLSAgIGlucHV0IFNJOwotICAgaW5wdXQgU0U7Ci0gICBpbnB1dCBTQVZFOwotICAgaW5wdXQgTlJFU1RPUkU7Ci0gICBvdXRwdXQgUTsKLQotICAgU0RGQ05RRDFCV1BfU1BDQV8yOTUgc3RhdGVfcmVtYXAgKC5TSShTSSksIAotCS5TRShTRSksIAotCS5RKFEpLCAKLQkuRChEKSwgCi0JLkNQKENQKSwgCi0JLkNETihDRE4pKTsKLWVuZG1vZHVsZQotCi1tb2R1bGUgU0RGQ05RRDFCV1BfU1BDQV8yOTYgKAotCVNJLCAKLQlTRSwgCi0JUSwgCi0JRCwgCi0JQ1AsIAotCUNETik7Ci0gICBpbnB1dCBTSTsKLSAgIGlucHV0IFNFOwotICAgb3V0cHV0IFE7Ci0gICBpbnB1dCBEOwotICAgaW5wdXQgQ1A7Ci0gICBpbnB1dCBDRE47Ci0KLSAgIFNERkZSWDQgREZGICguU0koU0kpLCAKLQkuU0UoU0UpLCAKLQkuUk4oQ0ROKSwgCi0JLlEoUSksIAotCS5EKEQpLCAKLQkuQ0soQ1ApKTsKLWVuZG1vZHVsZQotCi1tb2R1bGUgUlNERkNTUkhEMkJXUF9SRU1BUF9TUENfMjE0ICgKLQlDRE4sIAotCVNETiwgCi0JQ1AsIAotCUQsIAotCVNJLCAKLQlTRSwgCi0JU0FWRSwgCi0JTlJFU1RPUkUsIAotCVEpOwotICAgaW5wdXQgQ0ROOwotICAgaW5wdXQgU0ROOwotICAgaW5wdXQgQ1A7Ci0gICBpbnB1dCBEOwotICAgaW5wdXQgU0k7Ci0gICBpbnB1dCBTRTsKLSAgIGlucHV0IFNBVkU7Ci0gICBpbnB1dCBOUkVTVE9SRTsKLSAgIG91dHB1dCBROwotCi0gICBTREZDTlFEMUJXUF9TUENBXzI5NiBzdGF0ZV9yZW1hcCAoLlNJKFNJKSwgCi0JLlNFKFNFKSwgCi0JLlEoUSksIAotCS5EKEQpLCAKLQkuQ1AoQ1ApLCAKLQkuQ0ROKENETikpOwotZW5kbW9kdWxlCi0KLW1vZHVsZSBTREZDTlFEMUJXUF9TUENBXzI5NyAoCi0JU0ksIAotCVNFLCAKLQlRLCAKLQlELCAKLQlDUCwgCi0JQ0ROKTsKLSAgIGlucHV0IFNJOwotICAgaW5wdXQgU0U7Ci0gICBvdXRwdXQgUTsKLSAgIGlucHV0IEQ7Ci0gICBpbnB1dCBDUDsKLSAgIGlucHV0IENETjsKLQotICAgU0RGRlJYNCBERkYgKC5TSShTSSksIAotCS5TRShTRSksIAotCS5STihDRE4pLCAKLQkuUShRKSwgCi0JLkQoRCksIAotCS5DSyhDUCkpOwotZW5kbW9kdWxlCi0KLW1vZHVsZSBSU0RGQ1NSSEQyQldQX1JFTUFQX1NQQ18yMTUgKAotCUNETiwgCi0JU0ROLCAKLQlDUCwgCi0JRCwgCi0JU0ksIAotCVNFLCAKLQlTQVZFLCAKLQlOUkVTVE9SRSwgCi0JUSk7Ci0gICBpbnB1dCBDRE47Ci0gICBpbnB1dCBTRE47Ci0gICBpbnB1dCBDUDsKLSAgIGlucHV0IEQ7Ci0gICBpbnB1dCBTSTsKLSAgIGlucHV0IFNFOwotICAgaW5wdXQgU0FWRTsKLSAgIGlucHV0IE5SRVNUT1JFOwotICAgb3V0cHV0IFE7Ci0KLSAgIFNERkNOUUQxQldQX1NQQ0FfMjk3IHN0YXRlX3JlbWFwICguU0koU0kpLCAKLQkuU0UoU0UpLCAKLQkuUShRKSwgCi0JLkQoRCksIAotCS5DUChDUCksIAotCS5DRE4oQ0ROKSk7Ci1lbmRtb2R1bGUKLQotbW9kdWxlIFNERkNOUUQxQldQX1NQQ0FfMjk4ICgKLQlTSSwgCi0JU0UsIAotCVEsIAotCUQsIAotCUNQLCAKLQlDRE4pOwotICAgaW5wdXQgU0k7Ci0gICBpbnB1dCBTRTsKLSAgIG91dHB1dCBROwotICAgaW5wdXQgRDsKLSAgIGlucHV0IENQOwotICAgaW5wdXQgQ0ROOwotCi0gICBTREZGUlg0IERGRiAoLlNJKFNJKSwgCi0JLlNFKFNFKSwgCi0JLlJOKENETiksIAotCS5RKFEpLCAKLQkuRChEKSwgCi0JLkNLKENQKSk7Ci1lbmRtb2R1bGUKLQotbW9kdWxlIFJTREZDU1JIRDJCV1BfUkVNQVBfU1BDXzIxNiAoCi0JQ0ROLCAKLQlTRE4sIAotCUNQLCAKLQlELCAKLQlTSSwgCi0JU0UsIAotCVNBVkUsIAotCU5SRVNUT1JFLCAKLQlRKTsKLSAgIGlucHV0IENETjsKLSAgIGlucHV0IFNETjsKLSAgIGlucHV0IENQOwotICAgaW5wdXQgRDsKLSAgIGlucHV0IFNJOwotICAgaW5wdXQgU0U7Ci0gICBpbnB1dCBTQVZFOwotICAgaW5wdXQgTlJFU1RPUkU7Ci0gICBvdXRwdXQgUTsKLQotICAgU0RGQ05RRDFCV1BfU1BDQV8yOTggc3RhdGVfcmVtYXAgKC5TSShTSSksIAotCS5TRShTRSksIAotCS5RKFEpLCAKLQkuRChEKSwgCi0JLkNQKENQKSwgCi0JLkNETihDRE4pKTsKLWVuZG1vZHVsZQotCi1tb2R1bGUgU0RGQ05RRDFCV1BfU1BDQV8yOTkgKAotCVNJLCAKLQlTRSwgCi0JUSwgCi0JRCwgCi0JQ1AsIAotCUNETik7Ci0gICBpbnB1dCBTSTsKLSAgIGlucHV0IFNFOwotICAgb3V0cHV0IFE7Ci0gICBpbnB1dCBEOwotICAgaW5wdXQgQ1A7Ci0gICBpbnB1dCBDRE47Ci0KLSAgIFNERkZSWDQgREZGICguU0koU0kpLCAKLQkuU0UoU0UpLCAKLQkuUk4oQ0ROKSwgCi0JLlEoUSksIAotCS5EKEQpLCAKLQkuQ0soQ1ApKTsKLWVuZG1vZHVsZQotCi1tb2R1bGUgUlNERkNTUkhEMkJXUF9SRU1BUF9TUENfMjE3ICgKLQlDRE4sIAotCVNETiwgCi0JQ1AsIAotCUQsIAotCVNJLCAKLQlTRSwgCi0JU0FWRSwgCi0JTlJFU1RPUkUsIAotCVEpOwotICAgaW5wdXQgQ0ROOwotICAgaW5wdXQgU0ROOwotICAgaW5wdXQgQ1A7Ci0gICBpbnB1dCBEOwotICAgaW5wdXQgU0k7Ci0gICBpbnB1dCBTRTsKLSAgIGlucHV0IFNBVkU7Ci0gICBpbnB1dCBOUkVTVE9SRTsKLSAgIG91dHB1dCBROwotCi0gICBTREZDTlFEMUJXUF9TUENBXzI5OSBzdGF0ZV9yZW1hcCAoLlNJKFNJKSwgCi0JLlNFKFNFKSwgCi0JLlEoUSksIAotCS5EKEQpLCAKLQkuQ1AoQ1ApLCAKLQkuQ0ROKENETikpOwotZW5kbW9kdWxlCi0KLW1vZHVsZSBTREZDTlFEMUJXUF9TUENBXzMwMCAoCi0JU0ksIAotCVNFLCAKLQlRLCAKLQlELCAKLQlDUCwgCi0JQ0ROKTsKLSAgIGlucHV0IFNJOwotICAgaW5wdXQgU0U7Ci0gICBvdXRwdXQgUTsKLSAgIGlucHV0IEQ7Ci0gICBpbnB1dCBDUDsKLSAgIGlucHV0IENETjsKLQotICAgU0RGRlJYNCBERkYgKC5TSShTSSksIAotCS5TRShTRSksIAotCS5STihDRE4pLCAKLQkuUShRKSwgCi0JLkQoRCksIAotCS5DSyhDUCkpOwotZW5kbW9kdWxlCi0KLW1vZHVsZSBSU0RGQ1NSSEQyQldQX1JFTUFQX1NQQ18yMTggKAotCUNETiwgCi0JU0ROLCAKLQlDUCwgCi0JRCwgCi0JU0ksIAotCVNFLCAKLQlTQVZFLCAKLQlOUkVTVE9SRSwgCi0JUSk7Ci0gICBpbnB1dCBDRE47Ci0gICBpbnB1dCBTRE47Ci0gICBpbnB1dCBDUDsKLSAgIGlucHV0IEQ7Ci0gICBpbnB1dCBTSTsKLSAgIGlucHV0IFNFOwotICAgaW5wdXQgU0FWRTsKLSAgIGlucHV0IE5SRVNUT1JFOwotICAgb3V0cHV0IFE7Ci0KLSAgIFNERkNOUUQxQldQX1NQQ0FfMzAwIHN0YXRlX3JlbWFwICguU0koU0kpLCAKLQkuU0UoU0UpLCAKLQkuUShRKSwgCi0JLkQoRCksIAotCS5DUChDUCksIAotCS5DRE4oQ0ROKSk7Ci1lbmRtb2R1bGUKLQotbW9kdWxlIFNERkNOUUQxQldQX1NQQ0FfMzAxICgKLQlTSSwgCi0JU0UsIAotCVEsIAotCUQsIAotCUNQLCAKLQlDRE4pOwotICAgaW5wdXQgU0k7Ci0gICBpbnB1dCBTRTsKLSAgIG91dHB1dCBROwotICAgaW5wdXQgRDsKLSAgIGlucHV0IENQOwotICAgaW5wdXQgQ0ROOwotCi0gICBTREZGUlg0IERGRiAoLlNJKFNJKSwgCi0JLlNFKFNFKSwgCi0JLlJOKENETiksIAotCS5RKFEpLCAKLQkuRChEKSwgCi0JLkNLKENQKSk7Ci1lbmRtb2R1bGUKLQotbW9kdWxlIFJTREZDU1JIRDJCV1BfUkVNQVBfU1BDXzIxOSAoCi0JQ0ROLCAKLQlTRE4sIAotCUNQLCAKLQlELCAKLQlTSSwgCi0JU0UsIAotCVNBVkUsIAotCU5SRVNUT1JFLCAKLQlRKTsKLSAgIGlucHV0IENETjsKLSAgIGlucHV0IFNETjsKLSAgIGlucHV0IENQOwotICAgaW5wdXQgRDsKLSAgIGlucHV0IFNJOwotICAgaW5wdXQgU0U7Ci0gICBpbnB1dCBTQVZFOwotICAgaW5wdXQgTlJFU1RPUkU7Ci0gICBvdXRwdXQgUTsKLQotICAgU0RGQ05RRDFCV1BfU1BDQV8zMDEgc3RhdGVfcmVtYXAgKC5TSShTSSksIAotCS5TRShTRSksIAotCS5RKFEpLCAKLQkuRChEKSwgCi0JLkNQKENQKSwgCi0JLkNETihDRE4pKTsKLWVuZG1vZHVsZQotCi1tb2R1bGUgU0RGQ05RRDFCV1BfU1BDQV8zMDIgKAotCVNJLCAKLQlTRSwgCi0JUSwgCi0JRCwgCi0JQ1AsIAotCUNETik7Ci0gICBpbnB1dCBTSTsKLSAgIGlucHV0IFNFOwotICAgb3V0cHV0IFE7Ci0gICBpbnB1dCBEOwotICAgaW5wdXQgQ1A7Ci0gICBpbnB1dCBDRE47Ci0KLSAgIFNERkZSWDQgREZGICguU0koU0kpLCAKLQkuU0UoU0UpLCAKLQkuUk4oQ0ROKSwgCi0JLlEoUSksIAotCS5EKEQpLCAKLQkuQ0soQ1ApKTsKLWVuZG1vZHVsZQotCi1tb2R1bGUgUlNERkNTUkhEMkJXUF9SRU1BUF9TUENfMjIwICgKLQlDRE4sIAotCVNETiwgCi0JQ1AsIAotCUQsIAotCVNJLCAKLQlTRSwgCi0JU0FWRSwgCi0JTlJFU1RPUkUsIAotCVEpOwotICAgaW5wdXQgQ0ROOwotICAgaW5wdXQgU0ROOwotICAgaW5wdXQgQ1A7Ci0gICBpbnB1dCBEOwotICAgaW5wdXQgU0k7Ci0gICBpbnB1dCBTRTsKLSAgIGlucHV0IFNBVkU7Ci0gICBpbnB1dCBOUkVTVE9SRTsKLSAgIG91dHB1dCBROwotCi0gICBTREZDTlFEMUJXUF9TUENBXzMwMiBzdGF0ZV9yZW1hcCAoLlNJKFNJKSwgCi0JLlNFKFNFKSwgCi0JLlEoUSksIAotCS5EKEQpLCAKLQkuQ1AoQ1ApLCAKLQkuQ0ROKENETikpOwotZW5kbW9kdWxlCi0KLW1vZHVsZSBTREZDTlFEMUJXUF9TUENBXzMwMyAoCi0JU0ksIAotCVNFLCAKLQlRLCAKLQlELCAKLQlDUCwgCi0JQ0ROKTsKLSAgIGlucHV0IFNJOwotICAgaW5wdXQgU0U7Ci0gICBvdXRwdXQgUTsKLSAgIGlucHV0IEQ7Ci0gICBpbnB1dCBDUDsKLSAgIGlucHV0IENETjsKLQotICAgU0RGRlJYNCBERkYgKC5TSShTSSksIAotCS5TRShTRSksIAotCS5STihDRE4pLCAKLQkuUShRKSwgCi0JLkQoRCksIAotCS5DSyhDUCkpOwotZW5kbW9kdWxlCi0KLW1vZHVsZSBSU0RGQ1NSSEQyQldQX1JFTUFQX1NQQ18yMjEgKAotCUNETiwgCi0JU0ROLCAKLQlDUCwgCi0JRCwgCi0JU0ksIAotCVNFLCAKLQlTQVZFLCAKLQlOUkVTVE9SRSwgCi0JUSk7Ci0gICBpbnB1dCBDRE47Ci0gICBpbnB1dCBTRE47Ci0gICBpbnB1dCBDUDsKLSAgIGlucHV0IEQ7Ci0gICBpbnB1dCBTSTsKLSAgIGlucHV0IFNFOwotICAgaW5wdXQgU0FWRTsKLSAgIGlucHV0IE5SRVNUT1JFOwotICAgb3V0cHV0IFE7Ci0KLSAgIFNERkNOUUQxQldQX1NQQ0FfMzAzIHN0YXRlX3JlbWFwICguU0koU0kpLCAKLQkuU0UoU0UpLCAKLQkuUShRKSwgCi0JLkQoRCksIAotCS5DUChDUCksIAotCS5DRE4oQ0ROKSk7Ci1lbmRtb2R1bGUKLQotbW9kdWxlIFNERkNOUUQxQldQX1NQQ0FfMzA0ICgKLQlTSSwgCi0JU0UsIAotCVEsIAotCUQsIAotCUNQLCAKLQlDRE4pOwotICAgaW5wdXQgU0k7Ci0gICBpbnB1dCBTRTsKLSAgIG91dHB1dCBROwotICAgaW5wdXQgRDsKLSAgIGlucHV0IENQOwotICAgaW5wdXQgQ0ROOwotCi0gICBTREZGUlg0IERGRiAoLlNJKFNJKSwgCi0JLlNFKFNFKSwgCi0JLlJOKENETiksIAotCS5RKFEpLCAKLQkuRChEKSwgCi0JLkNLKENQKSk7Ci1lbmRtb2R1bGUKLQotbW9kdWxlIFJTREZDU1JIRDJCV1BfUkVNQVBfU1BDXzIyMiAoCi0JQ0ROLCAKLQlTRE4sIAotCUNQLCAKLQlELCAKLQlTSSwgCi0JU0UsIAotCVNBVkUsIAotCU5SRVNUT1JFLCAKLQlRKTsKLSAgIGlucHV0IENETjsKLSAgIGlucHV0IFNETjsKLSAgIGlucHV0IENQOwotICAgaW5wdXQgRDsKLSAgIGlucHV0IFNJOwotICAgaW5wdXQgU0U7Ci0gICBpbnB1dCBTQVZFOwotICAgaW5wdXQgTlJFU1RPUkU7Ci0gICBvdXRwdXQgUTsKLQotICAgU0RGQ05RRDFCV1BfU1BDQV8zMDQgc3RhdGVfcmVtYXAgKC5TSShTSSksIAotCS5TRShTRSksIAotCS5RKFEpLCAKLQkuRChEKSwgCi0JLkNQKENQKSwgCi0JLkNETihDRE4pKTsKLWVuZG1vZHVsZQotCi1tb2R1bGUgU0RGQ05RRDFCV1BfU1BDQV8zMDUgKAotCVNJLCAKLQlTRSwgCi0JUSwgCi0JRCwgCi0JQ1AsIAotCUNETik7Ci0gICBpbnB1dCBTSTsKLSAgIGlucHV0IFNFOwotICAgb3V0cHV0IFE7Ci0gICBpbnB1dCBEOwotICAgaW5wdXQgQ1A7Ci0gICBpbnB1dCBDRE47Ci0KLSAgIFNERkZSWDQgREZGICguU0koU0kpLCAKLQkuU0UoU0UpLCAKLQkuUk4oQ0ROKSwgCi0JLlEoUSksIAotCS5EKEQpLCAKLQkuQ0soQ1ApKTsKLWVuZG1vZHVsZQotCi1tb2R1bGUgUlNERkNTUkhEMkJXUF9SRU1BUF9TUENfMjIzICgKLQlDRE4sIAotCVNETiwgCi0JQ1AsIAotCUQsIAotCVNJLCAKLQlTRSwgCi0JU0FWRSwgCi0JTlJFU1RPUkUsIAotCVEpOwotICAgaW5wdXQgQ0ROOwotICAgaW5wdXQgU0ROOwotICAgaW5wdXQgQ1A7Ci0gICBpbnB1dCBEOwotICAgaW5wdXQgU0k7Ci0gICBpbnB1dCBTRTsKLSAgIGlucHV0IFNBVkU7Ci0gICBpbnB1dCBOUkVTVE9SRTsKLSAgIG91dHB1dCBROwotCi0gICBTREZDTlFEMUJXUF9TUENBXzMwNSBzdGF0ZV9yZW1hcCAoLlNJKFNJKSwgCi0JLlNFKFNFKSwgCi0JLlEoUSksIAotCS5EKEQpLCAKLQkuQ1AoQ1ApLCAKLQkuQ0ROKENETikpOwotZW5kbW9kdWxlCi0KLW1vZHVsZSBTREZDTlFEMUJXUF9TUENBXzMwNiAoCi0JU0ksIAotCVNFLCAKLQlRLCAKLQlELCAKLQlDUCwgCi0JQ0ROKTsKLSAgIGlucHV0IFNJOwotICAgaW5wdXQgU0U7Ci0gICBvdXRwdXQgUTsKLSAgIGlucHV0IEQ7Ci0gICBpbnB1dCBDUDsKLSAgIGlucHV0IENETjsKLQotICAgU0RGRlJYNCBERkYgKC5TSShTSSksIAotCS5TRShTRSksIAotCS5STihDRE4pLCAKLQkuUShRKSwgCi0JLkQoRCksIAotCS5DSyhDUCkpOwotZW5kbW9kdWxlCi0KLW1vZHVsZSBSU0RGQ1NSSEQyQldQX1JFTUFQX1NQQ18yMjQgKAotCUNETiwgCi0JU0ROLCAKLQlDUCwgCi0JRCwgCi0JU0ksIAotCVNFLCAKLQlTQVZFLCAKLQlOUkVTVE9SRSwgCi0JUSk7Ci0gICBpbnB1dCBDRE47Ci0gICBpbnB1dCBTRE47Ci0gICBpbnB1dCBDUDsKLSAgIGlucHV0IEQ7Ci0gICBpbnB1dCBTSTsKLSAgIGlucHV0IFNFOwotICAgaW5wdXQgU0FWRTsKLSAgIGlucHV0IE5SRVNUT1JFOwotICAgb3V0cHV0IFE7Ci0KLSAgIFNERkNOUUQxQldQX1NQQ0FfMzA2IHN0YXRlX3JlbWFwICguU0koU0kpLCAKLQkuU0UoU0UpLCAKLQkuUShRKSwgCi0JLkQoRCksIAotCS5DUChDUCksIAotCS5DRE4oQ0ROKSk7Ci1lbmRtb2R1bGUKLQotbW9kdWxlIFNERkNOUUQxQldQX1NQQ0FfMzA3ICgKLQlTSSwgCi0JU0UsIAotCVEsIAotCUQsIAotCUNQLCAKLQlDRE4pOwotICAgaW5wdXQgU0k7Ci0gICBpbnB1dCBTRTsKLSAgIG91dHB1dCBROwotICAgaW5wdXQgRDsKLSAgIGlucHV0IENQOwotICAgaW5wdXQgQ0ROOwotCi0gICBTREZGUlg0IERGRiAoLlNJKFNJKSwgCi0JLlNFKFNFKSwgCi0JLlJOKENETiksIAotCS5RKFEpLCAKLQkuRChEKSwgCi0JLkNLKENQKSk7Ci1lbmRtb2R1bGUKLQotbW9kdWxlIFJTREZDU1JIRDJCV1BfUkVNQVBfU1BDXzIyNSAoCi0JQ0ROLCAKLQlTRE4sIAotCUNQLCAKLQlELCAKLQlTSSwgCi0JU0UsIAotCVNBVkUsIAotCU5SRVNUT1JFLCAKLQlRKTsKLSAgIGlucHV0IENETjsKLSAgIGlucHV0IFNETjsKLSAgIGlucHV0IENQOwotICAgaW5wdXQgRDsKLSAgIGlucHV0IFNJOwotICAgaW5wdXQgU0U7Ci0gICBpbnB1dCBTQVZFOwotICAgaW5wdXQgTlJFU1RPUkU7Ci0gICBvdXRwdXQgUTsKLQotICAgU0RGQ05RRDFCV1BfU1BDQV8zMDcgc3RhdGVfcmVtYXAgKC5TSShTSSksIAotCS5TRShTRSksIAotCS5RKFEpLCAKLQkuRChEKSwgCi0JLkNQKENQKSwgCi0JLkNETihDRE4pKTsKLWVuZG1vZHVsZQotCi1tb2R1bGUgU0RGQ05RRDFCV1BfU1BDQV8zMDggKAotCVNJLCAKLQlTRSwgCi0JUSwgCi0JRCwgCi0JQ1AsIAotCUNETik7Ci0gICBpbnB1dCBTSTsKLSAgIGlucHV0IFNFOwotICAgb3V0cHV0IFE7Ci0gICBpbnB1dCBEOwotICAgaW5wdXQgQ1A7Ci0gICBpbnB1dCBDRE47Ci0KLSAgIFNERkZSWDQgREZGICguU0koU0kpLCAKLQkuU0UoU0UpLCAKLQkuUk4oQ0ROKSwgCi0JLlEoUSksIAotCS5EKEQpLCAKLQkuQ0soQ1ApKTsKLWVuZG1vZHVsZQotCi1tb2R1bGUgUlNERkNTUkhEMkJXUF9SRU1BUF9TUENfMjI2ICgKLQlDRE4sIAotCVNETiwgCi0JQ1AsIAotCUQsIAotCVNJLCAKLQlTRSwgCi0JU0FWRSwgCi0JTlJFU1RPUkUsIAotCVEpOwotICAgaW5wdXQgQ0ROOwotICAgaW5wdXQgU0ROOwotICAgaW5wdXQgQ1A7Ci0gICBpbnB1dCBEOwotICAgaW5wdXQgU0k7Ci0gICBpbnB1dCBTRTsKLSAgIGlucHV0IFNBVkU7Ci0gICBpbnB1dCBOUkVTVE9SRTsKLSAgIG91dHB1dCBROwotCi0gICBTREZDTlFEMUJXUF9TUENBXzMwOCBzdGF0ZV9yZW1hcCAoLlNJKFNJKSwgCi0JLlNFKFNFKSwgCi0JLlEoUSksIAotCS5EKEQpLCAKLQkuQ1AoQ1ApLCAKLQkuQ0ROKENETikpOwotZW5kbW9kdWxlCi0KLW1vZHVsZSBTREZDTlFEMUJXUF9TUENBXzMwOSAoCi0JU0ksIAotCVNFLCAKLQlRLCAKLQlELCAKLQlDUCwgCi0JQ0ROKTsKLSAgIGlucHV0IFNJOwotICAgaW5wdXQgU0U7Ci0gICBvdXRwdXQgUTsKLSAgIGlucHV0IEQ7Ci0gICBpbnB1dCBDUDsKLSAgIGlucHV0IENETjsKLQotICAgU0RGRlJYNCBERkYgKC5TSShTSSksIAotCS5TRShTRSksIAotCS5STihDRE4pLCAKLQkuUShRKSwgCi0JLkQoRCksIAotCS5DSyhDUCkpOwotZW5kbW9kdWxlCi0KLW1vZHVsZSBSU0RGQ1NSSEQyQldQX1JFTUFQX1NQQ18yMjcgKAotCUNETiwgCi0JU0ROLCAKLQlDUCwgCi0JRCwgCi0JU0ksIAotCVNFLCAKLQlTQVZFLCAKLQlOUkVTVE9SRSwgCi0JUSk7Ci0gICBpbnB1dCBDRE47Ci0gICBpbnB1dCBTRE47Ci0gICBpbnB1dCBDUDsKLSAgIGlucHV0IEQ7Ci0gICBpbnB1dCBTSTsKLSAgIGlucHV0IFNFOwotICAgaW5wdXQgU0FWRTsKLSAgIGlucHV0IE5SRVNUT1JFOwotICAgb3V0cHV0IFE7Ci0KLSAgIFNERkNOUUQxQldQX1NQQ0FfMzA5IHN0YXRlX3JlbWFwICguU0koU0kpLCAKLQkuU0UoU0UpLCAKLQkuUShRKSwgCi0JLkQoRCksIAotCS5DUChDUCksIAotCS5DRE4oQ0ROKSk7Ci1lbmRtb2R1bGUKLQotbW9kdWxlIFNERkNOUUQxQldQX1NQQ0FfMzEwICgKLQlTSSwgCi0JU0UsIAotCVEsIAotCUQsIAotCUNQLCAKLQlDRE4pOwotICAgaW5wdXQgU0k7Ci0gICBpbnB1dCBTRTsKLSAgIG91dHB1dCBROwotICAgaW5wdXQgRDsKLSAgIGlucHV0IENQOwotICAgaW5wdXQgQ0ROOwotCi0gICBTREZGUlg0IERGRiAoLlNJKFNJKSwgCi0JLlNFKFNFKSwgCi0JLlJOKENETiksIAotCS5RKFEpLCAKLQkuRChEKSwgCi0JLkNLKENQKSk7Ci1lbmRtb2R1bGUKLQotbW9kdWxlIFJTREZDU1JIRDJCV1BfUkVNQVBfU1BDXzIyOCAoCi0JQ0ROLCAKLQlTRE4sIAotCUNQLCAKLQlELCAKLQlTSSwgCi0JU0UsIAotCVNBVkUsIAotCU5SRVNUT1JFLCAKLQlRKTsKLSAgIGlucHV0IENETjsKLSAgIGlucHV0IFNETjsKLSAgIGlucHV0IENQOwotICAgaW5wdXQgRDsKLSAgIGlucHV0IFNJOwotICAgaW5wdXQgU0U7Ci0gICBpbnB1dCBTQVZFOwotICAgaW5wdXQgTlJFU1RPUkU7Ci0gICBvdXRwdXQgUTsKLQotICAgU0RGQ05RRDFCV1BfU1BDQV8zMTAgc3RhdGVfcmVtYXAgKC5TSShTSSksIAotCS5TRShTRSksIAotCS5RKFEpLCAKLQkuRChEKSwgCi0JLkNQKENQKSwgCi0JLkNETihDRE4pKTsKLWVuZG1vZHVsZQotCi1tb2R1bGUgU0RGQ05RRDFCV1BfU1BDQV8zMTEgKAotCVNJLCAKLQlTRSwgCi0JUSwgCi0JRCwgCi0JQ1AsIAotCUNETik7Ci0gICBpbnB1dCBTSTsKLSAgIGlucHV0IFNFOwotICAgb3V0cHV0IFE7Ci0gICBpbnB1dCBEOwotICAgaW5wdXQgQ1A7Ci0gICBpbnB1dCBDRE47Ci0KLSAgIFNERkZSWDQgREZGICguU0koU0kpLCAKLQkuU0UoU0UpLCAKLQkuUk4oQ0ROKSwgCi0JLlEoUSksIAotCS5EKEQpLCAKLQkuQ0soQ1ApKTsKLWVuZG1vZHVsZQotCi1tb2R1bGUgUlNERkNTUkhEMkJXUF9SRU1BUF9TUENfMjI5ICgKLQlDRE4sIAotCVNETiwgCi0JQ1AsIAotCUQsIAotCVNJLCAKLQlTRSwgCi0JU0FWRSwgCi0JTlJFU1RPUkUsIAotCVEpOwotICAgaW5wdXQgQ0ROOwotICAgaW5wdXQgU0ROOwotICAgaW5wdXQgQ1A7Ci0gICBpbnB1dCBEOwotICAgaW5wdXQgU0k7Ci0gICBpbnB1dCBTRTsKLSAgIGlucHV0IFNBVkU7Ci0gICBpbnB1dCBOUkVTVE9SRTsKLSAgIG91dHB1dCBROwotCi0gICBTREZDTlFEMUJXUF9TUENBXzMxMSBzdGF0ZV9yZW1hcCAoLlNJKFNJKSwgCi0JLlNFKFNFKSwgCi0JLlEoUSksIAotCS5EKEQpLCAKLQkuQ1AoQ1ApLCAKLQkuQ0ROKENETikpOwotZW5kbW9kdWxlCi0KLW1vZHVsZSBwb3J0X2J1c19tYWNoICgKLQljbGssIAotCXJlc2V0LCAKLQlyZWFkLCAKLQl3cml0ZSwgCi0Jd3JpdGVfaCwgCi0JYWRkcmVzcywgCi0JZGF0YV9pbiwgCi0JZGF0YV9vdXQsIAotCXBhZF9kYXRhX2luLCAKLQlwYWRfZGF0YV9vdXQsIAotCWFkZHJzX2luLCAKLQlyZWFkX2N5Y2xlLCAKLQlzeW5jLCAKLQlnbywgCi0JYXMsIAotCWRvbmUsIAotCVJDX0NHX1RFU1RfUE9SVCwgCi0JU1JQR19QR19pbiwgCi0JU1JQR19QR19pbl8xLCAKLQlERlRfc2RpLCAKLQlERlRfc2VuLCAKLQlERlRfc2RvKTsKLSAgIGlucHV0IGNsazsKLSAgIGlucHV0IHJlc2V0OwotICAgb3V0cHV0IHJlYWQ7Ci0gICBvdXRwdXQgd3JpdGU7Ci0gICBvdXRwdXQgd3JpdGVfaDsKLSAgIG91dHB1dCBbMjowXSBhZGRyZXNzOwotICAgaW5wdXQgWzE1OjBdIGRhdGFfaW47Ci0gICBvdXRwdXQgWzE1OjBdIGRhdGFfb3V0OwotICAgaW5wdXQgWzE1OjBdIHBhZF9kYXRhX2luOwotICAgb3V0cHV0IFsxNTowXSBwYWRfZGF0YV9vdXQ7Ci0gICBpbnB1dCBbMjowXSBhZGRyc19pbjsKLSAgIGlucHV0IHJlYWRfY3ljbGU7Ci0gICBpbnB1dCBzeW5jOwotICAgaW5wdXQgZ287Ci0gICBvdXRwdXQgYXM7Ci0gICBvdXRwdXQgZG9uZTsKLSAgIGlucHV0IFJDX0NHX1RFU1RfUE9SVDsKLSAgIGlucHV0IFNSUEdfUEdfaW47Ci0gICBpbnB1dCBTUlBHX1BHX2luXzE7Ci0gICBpbnB1dCBERlRfc2RpOwotICAgaW5wdXQgREZUX3NlbjsKLSAgIG91dHB1dCBERlRfc2RvOwotCi0gICAvLyBJbnRlcm5hbCB3aXJlcwotICAgd2lyZSBuXzA7Ci0gICB3aXJlIG5fMTsKLSAgIHdpcmUgbl8yOwotICAgd2lyZSBuXzM7Ci0gICB3aXJlIG5fODsKLSAgIHdpcmUgbl8xMDsKLSAgIHdpcmUgbl8xMjsKLSAgIHdpcmUgbl8xNjsKLSAgIHdpcmUgbl84ODsKLSAgIHdpcmUgbl84OTsKLSAgIHdpcmUgbl85MDsKLSAgIHdpcmUgbl85MTsKLSAgIHdpcmUgbl85MjsKLSAgIHdpcmUgbl85MzsKLSAgIHdpcmUgXHByZXNlbnRfc3RhdGVbMF0gOwotICAgd2lyZSBccHJlc2VudF9zdGF0ZVsxXSA7Ci0gICB3aXJlIHJjX2djbGs7Ci0KLSAgIFJDX0NHX01PRF8zMjkxXzMzMDAgUkNfQ0dfSElFUl9JTlNUMjcgKC5lbmFibGUobl85MSksIAotCS5ja19pbihjbGspLCAKLQkuY2tfb3V0KHJjX2djbGspLCAKLQkudGVzdChSQ19DR19URVNUX1BPUlQpKTsKLSAgIFJTREZDU1JIRDJCV1BfUkVNQVBfU1BDXzIxMCBhc19yZWcgKC5DRE4obl8xNiksIAotCS5TRE4oMSdiMSksIAotCS5DUChjbGspLCAKLQkuRChuXzg4KSwgCi0JLlNJKERGVF9zZGkpLCAKLQkuU0UoREZUX3NlbiksIAotCS5TQVZFKDEnYjApLCAKLQkuTlJFU1RPUkUoMSdiMCksIAotCS5RKGFzKSk7Ci0gICBSU0RGQ1NSSEQyQldQX1JFTUFQX1NQQ18yMTEgXGRhdGFfb3V0X3JlZ1swXSAgKC5DRE4obl8xNiksIAotCS5TRE4oMSdiMSksIAotCS5DUChyY19nY2xrKSwgCi0JLkQocGFkX2RhdGFfaW5bMF0pLCAKLQkuU0koYXMpLCAKLQkuU0UoREZUX3NlbiksIAotCS5TQVZFKDEnYjApLCAKLQkuTlJFU1RPUkUoMSdiMCksIAotCS5RKGRhdGFfb3V0WzBdKSk7Ci0gICBSU0RGQ1NSSEQyQldQX1JFTUFQX1NQQ18yMTIgXGRhdGFfb3V0X3JlZ1sxMF0gICguQ0ROKG5fMTYpLCAKLQkuU0ROKDEnYjEpLCAKLQkuQ1AocmNfZ2NsayksIAotCS5EKHBhZF9kYXRhX2luWzEwXSksIAotCS5TSShkYXRhX291dFs5XSksIAotCS5TRShERlRfc2VuKSwgCi0JLlNBVkUoMSdiMCksIAotCS5OUkVTVE9SRSgxJ2IwKSwgCi0JLlEoZGF0YV9vdXRbMTBdKSk7Ci0gICBSU0RGQ1NSSEQyQldQX1JFTUFQX1NQQ18yMTMgXGRhdGFfb3V0X3JlZ1sxMV0gICguQ0ROKG5fMTYpLCAKLQkuU0ROKDEnYjEpLCAKLQkuQ1AocmNfZ2NsayksIAotCS5EKHBhZF9kYXRhX2luWzExXSksIAotCS5TSShkYXRhX291dFsxMF0pLCAKLQkuU0UoREZUX3NlbiksIAotCS5TQVZFKDEnYjApLCAKLQkuTlJFU1RPUkUoMSdiMCksIAotCS5RKGRhdGFfb3V0WzExXSkpOwotICAgUlNERkNTUkhEMkJXUF9SRU1BUF9TUENfMjE0IFxkYXRhX291dF9yZWdbMTJdICAoLkNETihuXzE2KSwgCi0JLlNETigxJ2IxKSwgCi0JLkNQKHJjX2djbGspLCAKLQkuRChwYWRfZGF0YV9pblsxMl0pLCAKLQkuU0koZGF0YV9vdXRbMTFdKSwgCi0JLlNFKERGVF9zZW4pLCAKLQkuU0FWRSgxJ2IwKSwgCi0JLk5SRVNUT1JFKDEnYjApLCAKLQkuUShkYXRhX291dFsxMl0pKTsKLSAgIFJTREZDU1JIRDJCV1BfUkVNQVBfU1BDXzIxNSBcZGF0YV9vdXRfcmVnWzEzXSAgKC5DRE4obl8xNiksIAotCS5TRE4oMSdiMSksIAotCS5DUChyY19nY2xrKSwgCi0JLkQocGFkX2RhdGFfaW5bMTNdKSwgCi0JLlNJKGRhdGFfb3V0WzEyXSksIAotCS5TRShERlRfc2VuKSwgCi0JLlNBVkUoMSdiMCksIAotCS5OUkVTVE9SRSgxJ2IwKSwgCi0JLlEoZGF0YV9vdXRbMTNdKSk7Ci0gICBSU0RGQ1NSSEQyQldQX1JFTUFQX1NQQ18yMTYgXGRhdGFfb3V0X3JlZ1sxNF0gICguQ0ROKG5fMTYpLCAKLQkuU0ROKDEnYjEpLCAKLQkuQ1AocmNfZ2NsayksIAotCS5EKHBhZF9kYXRhX2luWzE0XSksIAotCS5TSShkYXRhX291dFsxM10pLCAKLQkuU0UoREZUX3NlbiksIAotCS5TQVZFKDEnYjApLCAKLQkuTlJFU1RPUkUoMSdiMCksIAotCS5RKGRhdGFfb3V0WzE0XSkpOwotICAgUlNERkNTUkhEMkJXUF9SRU1BUF9TUENfMjE3IFxkYXRhX291dF9yZWdbMTVdICAoLkNETihuXzE2KSwgCi0JLlNETigxJ2IxKSwgCi0JLkNQKHJjX2djbGspLCAKLQkuRChwYWRfZGF0YV9pblsxNV0pLCAKLQkuU0koZGF0YV9vdXRbMTRdKSwgCi0JLlNFKERGVF9zZW4pLCAKLQkuU0FWRSgxJ2IwKSwgCi0JLk5SRVNUT1JFKDEnYjApLCAKLQkuUShkYXRhX291dFsxNV0pKTsKLSAgIFJTREZDU1JIRDJCV1BfUkVNQVBfU1BDXzIxOCBcZGF0YV9vdXRfcmVnWzFdICAoLkNETihuXzE2KSwgCi0JLlNETigxJ2IxKSwgCi0JLkNQKHJjX2djbGspLCAKLQkuRChwYWRfZGF0YV9pblsxXSksIAotCS5TSShkYXRhX291dFswXSksIAotCS5TRShERlRfc2VuKSwgCi0JLlNBVkUoMSdiMCksIAotCS5OUkVTVE9SRSgxJ2IwKSwgCi0JLlEoZGF0YV9vdXRbMV0pKTsKLSAgIFJTREZDU1JIRDJCV1BfUkVNQVBfU1BDXzIxOSBcZGF0YV9vdXRfcmVnWzJdICAoLkNETihuXzE2KSwgCi0JLlNETigxJ2IxKSwgCi0JLkNQKHJjX2djbGspLCAKLQkuRChwYWRfZGF0YV9pblsyXSksIAotCS5TSShkYXRhX291dFsxXSksIAotCS5TRShERlRfc2VuKSwgCi0JLlNBVkUoMSdiMCksIAotCS5OUkVTVE9SRSgxJ2IwKSwgCi0JLlEoZGF0YV9vdXRbMl0pKTsKLSAgIFJTREZDU1JIRDJCV1BfUkVNQVBfU1BDXzIyMCBcZGF0YV9vdXRfcmVnWzNdICAoLkNETihuXzE2KSwgCi0JLlNETigxJ2IxKSwgCi0JLkNQKHJjX2djbGspLCAKLQkuRChwYWRfZGF0YV9pblszXSksIAotCS5TSShkYXRhX291dFsyXSksIAotCS5TRShERlRfc2VuKSwgCi0JLlNBVkUoMSdiMCksIAotCS5OUkVTVE9SRSgxJ2IwKSwgCi0JLlEoZGF0YV9vdXRbM10pKTsKLSAgIFJTREZDU1JIRDJCV1BfUkVNQVBfU1BDXzIyMSBcZGF0YV9vdXRfcmVnWzRdICAoLkNETihuXzE2KSwgCi0JLlNETigxJ2IxKSwgCi0JLkNQKHJjX2djbGspLCAKLQkuRChwYWRfZGF0YV9pbls0XSksIAotCS5TSShkYXRhX291dFszXSksIAotCS5TRShERlRfc2VuKSwgCi0JLlNBVkUoMSdiMCksIAotCS5OUkVTVE9SRSgxJ2IwKSwgCi0JLlEoZGF0YV9vdXRbNF0pKTsKLSAgIFJTREZDU1JIRDJCV1BfUkVNQVBfU1BDXzIyMiBcZGF0YV9vdXRfcmVnWzVdICAoLkNETihuXzE2KSwgCi0JLlNETigxJ2IxKSwgCi0JLkNQKHJjX2djbGspLCAKLQkuRChwYWRfZGF0YV9pbls1XSksIAotCS5TSShkYXRhX291dFs0XSksIAotCS5TRShERlRfc2VuKSwgCi0JLlNBVkUoMSdiMCksIAotCS5OUkVTVE9SRSgxJ2IwKSwgCi0JLlEoZGF0YV9vdXRbNV0pKTsKLSAgIFJTREZDU1JIRDJCV1BfUkVNQVBfU1BDXzIyMyBcZGF0YV9vdXRfcmVnWzZdICAoLkNETihuXzE2KSwgCi0JLlNETigxJ2IxKSwgCi0JLkNQKHJjX2djbGspLCAKLQkuRChwYWRfZGF0YV9pbls2XSksIAotCS5TSShkYXRhX291dFs1XSksIAotCS5TRShERlRfc2VuKSwgCi0JLlNBVkUoMSdiMCksIAotCS5OUkVTVE9SRSgxJ2IwKSwgCi0JLlEoZGF0YV9vdXRbNl0pKTsKLSAgIFJTREZDU1JIRDJCV1BfUkVNQVBfU1BDXzIyNCBcZGF0YV9vdXRfcmVnWzddICAoLkNETihuXzE2KSwgCi0JLlNETigxJ2IxKSwgCi0JLkNQKHJjX2djbGspLCAKLQkuRChwYWRfZGF0YV9pbls3XSksIAotCS5TSShkYXRhX291dFs2XSksIAotCS5TRShERlRfc2VuKSwgCi0JLlNBVkUoMSdiMCksIAotCS5OUkVTVE9SRSgxJ2IwKSwgCi0JLlEoZGF0YV9vdXRbN10pKTsKLSAgIFJTREZDU1JIRDJCV1BfUkVNQVBfU1BDXzIyNSBcZGF0YV9vdXRfcmVnWzhdICAoLkNETihuXzE2KSwgCi0JLlNETigxJ2IxKSwgCi0JLkNQKHJjX2djbGspLCAKLQkuRChwYWRfZGF0YV9pbls4XSksIAotCS5TSShkYXRhX291dFs3XSksIAotCS5TRShERlRfc2VuKSwgCi0JLlNBVkUoMSdiMCksIAotCS5OUkVTVE9SRSgxJ2IwKSwgCi0JLlEoZGF0YV9vdXRbOF0pKTsKLSAgIFJTREZDU1JIRDJCV1BfUkVNQVBfU1BDXzIyNiBcZGF0YV9vdXRfcmVnWzldICAoLkNETihuXzE2KSwgCi0JLlNETigxJ2IxKSwgCi0JLkNQKHJjX2djbGspLCAKLQkuRChwYWRfZGF0YV9pbls5XSksIAotCS5TSShkYXRhX291dFs4XSksIAotCS5TRShERlRfc2VuKSwgCi0JLlNBVkUoMSdiMCksIAotCS5OUkVTVE9SRSgxJ2IwKSwgCi0JLlEoZGF0YV9vdXRbOV0pKTsKLSAgIFJTREZDU1JIRDJCV1BfUkVNQVBfU1BDXzIyNyBccHJlc2VudF9zdGF0ZV9yZWdbMF0gICguQ0ROKG5fMTYpLCAKLQkuU0ROKDEnYjEpLCAKLQkuQ1AoY2xrKSwgCi0JLkQobl84OSksIAotCS5TSShkYXRhX291dFsxNV0pLCAKLQkuU0UoREZUX3NlbiksIAotCS5TQVZFKDEnYjApLCAKLQkuTlJFU1RPUkUoMSdiMCksIAotCS5RKFxwcmVzZW50X3N0YXRlWzBdICkpOwotICAgUlNERkNTUkhEMkJXUF9SRU1BUF9TUENfMjI4IFxwcmVzZW50X3N0YXRlX3JlZ1sxXSAgKC5DRE4obl8xNiksIAotCS5TRE4oMSdiMSksIAotCS5DUChjbGspLCAKLQkuRChuXzkzKSwgCi0JLlNJKFxwcmVzZW50X3N0YXRlWzBdICksIAotCS5TRShERlRfc2VuKSwgCi0JLlNBVkUoMSdiMCksIAotCS5OUkVTVE9SRSgxJ2IwKSwgCi0JLlEoXHByZXNlbnRfc3RhdGVbMV0gKSk7Ci0gICBSU0RGQ1NSSEQyQldQX1JFTUFQX1NQQ18yMjkgXHByZXNlbnRfc3RhdGVfcmVnWzJdICAoLkNETihuXzE2KSwgCi0JLlNETigxJ2IxKSwgCi0JLkNQKGNsayksIAotCS5EKG5fOTApLCAKLQkuU0koXHByZXNlbnRfc3RhdGVbMV0gKSwgCi0JLlNFKERGVF9zZW4pLCAKLQkuU0FWRSgxJ2IwKSwgCi0JLk5SRVNUT1JFKDEnYjApLCAKLQkuUShERlRfc2RvKSk7Ci0gICBJTlZYTCBnNzMgKC5ZKG5fMTYpLCAKLQkuQShyZXNldCkpOwotICAgQU5EMlgyIGcxOTEgKC5ZKG5fMTIpLCAKLQkuQihuXzkyKSwgCi0JLkEoZ28pKTsKLSAgIENMS0lOVlgxIGcxOTQgKC5ZKG5fMTApLCAKLQkuQShuXzkyKSk7Ci0gICBPUjJYMSBnMTk3ICguWShuXzgpLCAKLQkuQihuXzEpLCAKLQkuQShuXzIpKTsKLSAgIENMS0lOVlgxIGcyMDIgKC5ZKG5fMyksIAotCS5BKERGVF9zZG8pKTsKLSAgIENMS0lOVlgyIGcyMDMgKC5ZKG5fMiksIAotCS5BKFxwcmVzZW50X3N0YXRlWzBdICkpOwotICAgQ0xLSU5WWDEgZzIwNSAoLlkobl8xKSwgCi0JLkEoXHByZXNlbnRfc3RhdGVbMV0gKSk7Ci0gICBOT1IyQlgxIGcyICguWShuXzApLCAKLQkuQihyZWFkX2N5Y2xlKSwgCi0JLkFOKG5fMTIpKTsKLSAgIEFPMjFYNCBnMjA2ICguWShuXzg4KSwgCi0JLkIwKG5fMTIpLCAKLQkuQTEobl8xMCksIAotCS5BMChuXzgpKTsKLSAgIEFPMjJYNCBnMjA3ICguWShuXzg5KSwgCi0JLkIxKG5fMTIpLCAKLQkuQjAocmVhZF9jeWNsZSksIAotCS5BMShuXzEwKSwgCi0JLkEwKG5fMikpOwotICAgQU8yMVg0IGcyMDggKC5ZKG5fOTApLCAKLQkuQjAobl8wKSwgCi0JLkExKG5fOCksIAotCS5BMChERlRfc2RvKSk7Ci0gICBBTkQzWDYgZzIwOSAoLlkobl85MSksIAotCS5DKG5fMyksIAotCS5CKFxwcmVzZW50X3N0YXRlWzFdICksIAotCS5BKG5fMikpOwotICAgQU5EM1g2IGcyMTAgKC5ZKG5fOTIpLCAKLQkuQyhuXzEpLCAKLQkuQihuXzMpLCAKLQkuQShuXzIpKTsKLSAgIEFPMjJYNCBnMjExICguWShuXzkzKSwgCi0JLkIxKG5fMiksIAotCS5CMChccHJlc2VudF9zdGF0ZVsxXSApLCAKLQkuQTEobl8xKSwgCi0JLkEwKFxwcmVzZW50X3N0YXRlWzBdICkpOwotZW5kbW9kdWxlCi0KLW1vZHVsZSBDS0xOUUQxQldQX1NQQ0FfMTggKAotCUUsIAotCUNQLCAKLQlURSwgCi0JUSk7Ci0gICBpbnB1dCBFOwotICAgaW5wdXQgQ1A7Ci0gICBpbnB1dCBURTsKLSAgIG91dHB1dCBROwotCi0gICBUTEFUTlRTQ0FYMTYgTEFUQ0ggKC5TRShURSksIAotCS5FQ0soUSksIAotCS5FKEUpLCAKLQkuQ0soQ1ApKTsKLWVuZG1vZHVsZQotCi1tb2R1bGUgUkNfQ0dfTU9EXzMyOTFfMzMwMSAoCi0JZW5hYmxlLCAKLQlja19pbiwgCi0JY2tfb3V0LCAKLQl0ZXN0KTsKLSAgIGlucHV0IGVuYWJsZTsKLSAgIGlucHV0IGNrX2luOwotICAgb3V0cHV0IGNrX291dDsKLSAgIGlucHV0IHRlc3Q7Ci0KLSAgIENLTE5RRDFCV1BfU1BDQV8xOCBSQ19DR0lDX0lOU1QgKC5FKGVuYWJsZSksIAotCS5DUChja19pbiksIAotCS5URSh0ZXN0KSwgCi0JLlEoY2tfb3V0KSk7Ci1lbmRtb2R1bGUKLQotbW9kdWxlIFNERkNOUUQxQldQX1NQQ0FfMzEyICgKLQlTSSwgCi0JU0UsIAotCVEsIAotCUQsIAotCUNQLCAKLQlDRE4pOwotICAgaW5wdXQgU0k7Ci0gICBpbnB1dCBTRTsKLSAgIG91dHB1dCBROwotICAgaW5wdXQgRDsKLSAgIGlucHV0IENQOwotICAgaW5wdXQgQ0ROOwotCi0gICBTREZGUlg0IERGRiAoLlNJKFNJKSwgCi0JLlNFKFNFKSwgCi0JLlJOKENETiksIAotCS5RKFEpLCAKLQkuRChEKSwgCi0JLkNLKENQKSk7Ci1lbmRtb2R1bGUKLQotbW9kdWxlIFJTREZDU1JIRDJCV1BfUkVNQVBfU1BDXzIzMCAoCi0JQ0ROLCAKLQlTRE4sIAotCUNQLCAKLQlELCAKLQlTSSwgCi0JU0UsIAotCVNBVkUsIAotCU5SRVNUT1JFLCAKLQlRKTsKLSAgIGlucHV0IENETjsKLSAgIGlucHV0IFNETjsKLSAgIGlucHV0IENQOwotICAgaW5wdXQgRDsKLSAgIGlucHV0IFNJOwotICAgaW5wdXQgU0U7Ci0gICBpbnB1dCBTQVZFOwotICAgaW5wdXQgTlJFU1RPUkU7Ci0gICBvdXRwdXQgUTsKLQotICAgU0RGQ05RRDFCV1BfU1BDQV8zMTIgc3RhdGVfcmVtYXAgKC5TSShTSSksIAotCS5TRShTRSksIAotCS5RKFEpLCAKLQkuRChEKSwgCi0JLkNQKENQKSwgCi0JLkNETihDRE4pKTsKLWVuZG1vZHVsZQotCi1tb2R1bGUgU0RGQ05RRDFCV1BfU1BDQV8zMTMgKAotCVNJLCAKLQlTRSwgCi0JUSwgCi0JRCwgCi0JQ1AsIAotCUNETik7Ci0gICBpbnB1dCBTSTsKLSAgIGlucHV0IFNFOwotICAgb3V0cHV0IFE7Ci0gICBpbnB1dCBEOwotICAgaW5wdXQgQ1A7Ci0gICBpbnB1dCBDRE47Ci0KLSAgIFNERkZSWDQgREZGICguU0koU0kpLCAKLQkuU0UoU0UpLCAKLQkuUk4oQ0ROKSwgCi0JLlEoUSksIAotCS5EKEQpLCAKLQkuQ0soQ1ApKTsKLWVuZG1vZHVsZQotCi1tb2R1bGUgUlNERkNTUkhEMkJXUF9SRU1BUF9TUENfMjMxICgKLQlDRE4sIAotCVNETiwgCi0JQ1AsIAotCUQsIAotCVNJLCAKLQlTRSwgCi0JU0FWRSwgCi0JTlJFU1RPUkUsIAotCVEpOwotICAgaW5wdXQgQ0ROOwotICAgaW5wdXQgU0ROOwotICAgaW5wdXQgQ1A7Ci0gICBpbnB1dCBEOwotICAgaW5wdXQgU0k7Ci0gICBpbnB1dCBTRTsKLSAgIGlucHV0IFNBVkU7Ci0gICBpbnB1dCBOUkVTVE9SRTsKLSAgIG91dHB1dCBROwotCi0gICBTREZDTlFEMUJXUF9TUENBXzMxMyBzdGF0ZV9yZW1hcCAoLlNJKFNJKSwgCi0JLlNFKFNFKSwgCi0JLlEoUSksIAotCS5EKEQpLCAKLQkuQ1AoQ1ApLCAKLQkuQ0ROKENETikpOwotZW5kbW9kdWxlCi0KLW1vZHVsZSBTREZDTlFEMUJXUF9TUENBXzMxNCAoCi0JU0ksIAotCVNFLCAKLQlRLCAKLQlELCAKLQlDUCwgCi0JQ0ROKTsKLSAgIGlucHV0IFNJOwotICAgaW5wdXQgU0U7Ci0gICBvdXRwdXQgUTsKLSAgIGlucHV0IEQ7Ci0gICBpbnB1dCBDUDsKLSAgIGlucHV0IENETjsKLQotICAgU0RGRlJYNCBERkYgKC5TSShTSSksIAotCS5TRShTRSksIAotCS5STihDRE4pLCAKLQkuUShRKSwgCi0JLkQoRCksIAotCS5DSyhDUCkpOwotZW5kbW9kdWxlCi0KLW1vZHVsZSBSU0RGQ1NSSEQyQldQX1JFTUFQX1NQQ18yMzIgKAotCUNETiwgCi0JU0ROLCAKLQlDUCwgCi0JRCwgCi0JU0ksIAotCVNFLCAKLQlTQVZFLCAKLQlOUkVTVE9SRSwgCi0JUSk7Ci0gICBpbnB1dCBDRE47Ci0gICBpbnB1dCBTRE47Ci0gICBpbnB1dCBDUDsKLSAgIGlucHV0IEQ7Ci0gICBpbnB1dCBTSTsKLSAgIGlucHV0IFNFOwotICAgaW5wdXQgU0FWRTsKLSAgIGlucHV0IE5SRVNUT1JFOwotICAgb3V0cHV0IFE7Ci0KLSAgIFNERkNOUUQxQldQX1NQQ0FfMzE0IHN0YXRlX3JlbWFwICguU0koU0kpLCAKLQkuU0UoU0UpLCAKLQkuUShRKSwgCi0JLkQoRCksIAotCS5DUChDUCksIAotCS5DRE4oQ0ROKSk7Ci1lbmRtb2R1bGUKLQotbW9kdWxlIFNERkNOUUQxQldQX1NQQ0FfMzE1ICgKLQlTSSwgCi0JU0UsIAotCVEsIAotCUQsIAotCUNQLCAKLQlDRE4pOwotICAgaW5wdXQgU0k7Ci0gICBpbnB1dCBTRTsKLSAgIG91dHB1dCBROwotICAgaW5wdXQgRDsKLSAgIGlucHV0IENQOwotICAgaW5wdXQgQ0ROOwotCi0gICBTREZGUlg0IERGRiAoLlNJKFNJKSwgCi0JLlNFKFNFKSwgCi0JLlJOKENETiksIAotCS5RKFEpLCAKLQkuRChEKSwgCi0JLkNLKENQKSk7Ci1lbmRtb2R1bGUKLQotbW9kdWxlIFJTREZDU1JIRDJCV1BfUkVNQVBfU1BDXzIzMyAoCi0JQ0ROLCAKLQlTRE4sIAotCUNQLCAKLQlELCAKLQlTSSwgCi0JU0UsIAotCVNBVkUsIAotCU5SRVNUT1JFLCAKLQlRKTsKLSAgIGlucHV0IENETjsKLSAgIGlucHV0IFNETjsKLSAgIGlucHV0IENQOwotICAgaW5wdXQgRDsKLSAgIGlucHV0IFNJOwotICAgaW5wdXQgU0U7Ci0gICBpbnB1dCBTQVZFOwotICAgaW5wdXQgTlJFU1RPUkU7Ci0gICBvdXRwdXQgUTsKLQotICAgU0RGQ05RRDFCV1BfU1BDQV8zMTUgc3RhdGVfcmVtYXAgKC5TSShTSSksIAotCS5TRShTRSksIAotCS5RKFEpLCAKLQkuRChEKSwgCi0JLkNQKENQKSwgCi0JLkNETihDRE4pKTsKLWVuZG1vZHVsZQotCi1tb2R1bGUgU0RGQ05RRDFCV1BfU1BDQV8zMTYgKAotCVNJLCAKLQlTRSwgCi0JUSwgCi0JRCwgCi0JQ1AsIAotCUNETik7Ci0gICBpbnB1dCBTSTsKLSAgIGlucHV0IFNFOwotICAgb3V0cHV0IFE7Ci0gICBpbnB1dCBEOwotICAgaW5wdXQgQ1A7Ci0gICBpbnB1dCBDRE47Ci0KLSAgIFNERkZSWDQgREZGICguU0koU0kpLCAKLQkuU0UoU0UpLCAKLQkuUk4oQ0ROKSwgCi0JLlEoUSksIAotCS5EKEQpLCAKLQkuQ0soQ1ApKTsKLWVuZG1vZHVsZQotCi1tb2R1bGUgUlNERkNTUkhEMkJXUF9SRU1BUF9TUENfMjM0ICgKLQlDRE4sIAotCVNETiwgCi0JQ1AsIAotCUQsIAotCVNJLCAKLQlTRSwgCi0JU0FWRSwgCi0JTlJFU1RPUkUsIAotCVEpOwotICAgaW5wdXQgQ0ROOwotICAgaW5wdXQgU0ROOwotICAgaW5wdXQgQ1A7Ci0gICBpbnB1dCBEOwotICAgaW5wdXQgU0k7Ci0gICBpbnB1dCBTRTsKLSAgIGlucHV0IFNBVkU7Ci0gICBpbnB1dCBOUkVTVE9SRTsKLSAgIG91dHB1dCBROwotCi0gICBTREZDTlFEMUJXUF9TUENBXzMxNiBzdGF0ZV9yZW1hcCAoLlNJKFNJKSwgCi0JLlNFKFNFKSwgCi0JLlEoUSksIAotCS5EKEQpLCAKLQkuQ1AoQ1ApLCAKLQkuQ0ROKENETikpOwotZW5kbW9kdWxlCi0KLW1vZHVsZSBTREZDTlFEMUJXUF9TUENBXzMxNyAoCi0JU0ksIAotCVNFLCAKLQlRLCAKLQlELCAKLQlDUCwgCi0JQ0ROKTsKLSAgIGlucHV0IFNJOwotICAgaW5wdXQgU0U7Ci0gICBvdXRwdXQgUTsKLSAgIGlucHV0IEQ7Ci0gICBpbnB1dCBDUDsKLSAgIGlucHV0IENETjsKLQotICAgU0RGRlJYNCBERkYgKC5TSShTSSksIAotCS5TRShTRSksIAotCS5STihDRE4pLCAKLQkuUShRKSwgCi0JLkQoRCksIAotCS5DSyhDUCkpOwotZW5kbW9kdWxlCi0KLW1vZHVsZSBSU0RGQ1NSSEQyQldQX1JFTUFQX1NQQ18yMzUgKAotCUNETiwgCi0JU0ROLCAKLQlDUCwgCi0JRCwgCi0JU0ksIAotCVNFLCAKLQlTQVZFLCAKLQlOUkVTVE9SRSwgCi0JUSk7Ci0gICBpbnB1dCBDRE47Ci0gICBpbnB1dCBTRE47Ci0gICBpbnB1dCBDUDsKLSAgIGlucHV0IEQ7Ci0gICBpbnB1dCBTSTsKLSAgIGlucHV0IFNFOwotICAgaW5wdXQgU0FWRTsKLSAgIGlucHV0IE5SRVNUT1JFOwotICAgb3V0cHV0IFE7Ci0KLSAgIFNERkNOUUQxQldQX1NQQ0FfMzE3IHN0YXRlX3JlbWFwICguU0koU0kpLCAKLQkuU0UoU0UpLCAKLQkuUShRKSwgCi0JLkQoRCksIAotCS5DUChDUCksIAotCS5DRE4oQ0ROKSk7Ci1lbmRtb2R1bGUKLQotbW9kdWxlIFNERkNOUUQxQldQX1NQQ0FfMzE4ICgKLQlTSSwgCi0JU0UsIAotCVEsIAotCUQsIAotCUNQLCAKLQlDRE4pOwotICAgaW5wdXQgU0k7Ci0gICBpbnB1dCBTRTsKLSAgIG91dHB1dCBROwotICAgaW5wdXQgRDsKLSAgIGlucHV0IENQOwotICAgaW5wdXQgQ0ROOwotCi0gICBTREZGUlg0IERGRiAoLlNJKFNJKSwgCi0JLlNFKFNFKSwgCi0JLlJOKENETiksIAotCS5RKFEpLCAKLQkuRChEKSwgCi0JLkNLKENQKSk7Ci1lbmRtb2R1bGUKLQotbW9kdWxlIFJTREZDU1JIRDJCV1BfUkVNQVBfU1BDXzIzNiAoCi0JQ0ROLCAKLQlTRE4sIAotCUNQLCAKLQlELCAKLQlTSSwgCi0JU0UsIAotCVNBVkUsIAotCU5SRVNUT1JFLCAKLQlRKTsKLSAgIGlucHV0IENETjsKLSAgIGlucHV0IFNETjsKLSAgIGlucHV0IENQOwotICAgaW5wdXQgRDsKLSAgIGlucHV0IFNJOwotICAgaW5wdXQgU0U7Ci0gICBpbnB1dCBTQVZFOwotICAgaW5wdXQgTlJFU1RPUkU7Ci0gICBvdXRwdXQgUTsKLQotICAgU0RGQ05RRDFCV1BfU1BDQV8zMTggc3RhdGVfcmVtYXAgKC5TSShTSSksIAotCS5TRShTRSksIAotCS5RKFEpLCAKLQkuRChEKSwgCi0JLkNQKENQKSwgCi0JLkNETihDRE4pKTsKLWVuZG1vZHVsZQotCi1tb2R1bGUgU0RGQ05RRDFCV1BfU1BDQV8zMTkgKAotCVNJLCAKLQlTRSwgCi0JUSwgCi0JRCwgCi0JQ1AsIAotCUNETik7Ci0gICBpbnB1dCBTSTsKLSAgIGlucHV0IFNFOwotICAgb3V0cHV0IFE7Ci0gICBpbnB1dCBEOwotICAgaW5wdXQgQ1A7Ci0gICBpbnB1dCBDRE47Ci0KLSAgIFNERkZSWDQgREZGICguU0koU0kpLCAKLQkuU0UoU0UpLCAKLQkuUk4oQ0ROKSwgCi0JLlEoUSksIAotCS5EKEQpLCAKLQkuQ0soQ1ApKTsKLWVuZG1vZHVsZQotCi1tb2R1bGUgUlNERkNTUkhEMkJXUF9SRU1BUF9TUENfMjM3ICgKLQlDRE4sIAotCVNETiwgCi0JQ1AsIAotCUQsIAotCVNJLCAKLQlTRSwgCi0JU0FWRSwgCi0JTlJFU1RPUkUsIAotCVEpOwotICAgaW5wdXQgQ0ROOwotICAgaW5wdXQgU0ROOwotICAgaW5wdXQgQ1A7Ci0gICBpbnB1dCBEOwotICAgaW5wdXQgU0k7Ci0gICBpbnB1dCBTRTsKLSAgIGlucHV0IFNBVkU7Ci0gICBpbnB1dCBOUkVTVE9SRTsKLSAgIG91dHB1dCBROwotCi0gICBTREZDTlFEMUJXUF9TUENBXzMxOSBzdGF0ZV9yZW1hcCAoLlNJKFNJKSwgCi0JLlNFKFNFKSwgCi0JLlEoUSksIAotCS5EKEQpLCAKLQkuQ1AoQ1ApLCAKLQkuQ0ROKENETikpOwotZW5kbW9kdWxlCi0KLW1vZHVsZSBTREZDTlFEMUJXUF9TUENBXzMyMCAoCi0JU0ksIAotCVNFLCAKLQlRLCAKLQlELCAKLQlDUCwgCi0JQ0ROKTsKLSAgIGlucHV0IFNJOwotICAgaW5wdXQgU0U7Ci0gICBvdXRwdXQgUTsKLSAgIGlucHV0IEQ7Ci0gICBpbnB1dCBDUDsKLSAgIGlucHV0IENETjsKLQotICAgU0RGRlJYNCBERkYgKC5TSShTSSksIAotCS5TRShTRSksIAotCS5STihDRE4pLCAKLQkuUShRKSwgCi0JLkQoRCksIAotCS5DSyhDUCkpOwotZW5kbW9kdWxlCi0KLW1vZHVsZSBSU0RGQ1NSSEQyQldQX1JFTUFQX1NQQ18yMzggKAotCUNETiwgCi0JU0ROLCAKLQlDUCwgCi0JRCwgCi0JU0ksIAotCVNFLCAKLQlTQVZFLCAKLQlOUkVTVE9SRSwgCi0JUSk7Ci0gICBpbnB1dCBDRE47Ci0gICBpbnB1dCBTRE47Ci0gICBpbnB1dCBDUDsKLSAgIGlucHV0IEQ7Ci0gICBpbnB1dCBTSTsKLSAgIGlucHV0IFNFOwotICAgaW5wdXQgU0FWRTsKLSAgIGlucHV0IE5SRVNUT1JFOwotICAgb3V0cHV0IFE7Ci0KLSAgIFNERkNOUUQxQldQX1NQQ0FfMzIwIHN0YXRlX3JlbWFwICguU0koU0kpLCAKLQkuU0UoU0UpLCAKLQkuUShRKSwgCi0JLkQoRCksIAotCS5DUChDUCksIAotCS5DRE4oQ0ROKSk7Ci1lbmRtb2R1bGUKLQotbW9kdWxlIFNERkNOUUQxQldQX1NQQ0FfMzIxICgKLQlTSSwgCi0JU0UsIAotCVEsIAotCUQsIAotCUNQLCAKLQlDRE4pOwotICAgaW5wdXQgU0k7Ci0gICBpbnB1dCBTRTsKLSAgIG91dHB1dCBROwotICAgaW5wdXQgRDsKLSAgIGlucHV0IENQOwotICAgaW5wdXQgQ0ROOwotCi0gICBTREZGUlg0IERGRiAoLlNJKFNJKSwgCi0JLlNFKFNFKSwgCi0JLlJOKENETiksIAotCS5RKFEpLCAKLQkuRChEKSwgCi0JLkNLKENQKSk7Ci1lbmRtb2R1bGUKLQotbW9kdWxlIFJTREZDU1JIRDJCV1BfUkVNQVBfU1BDXzIzOSAoCi0JQ0ROLCAKLQlTRE4sIAotCUNQLCAKLQlELCAKLQlTSSwgCi0JU0UsIAotCVNBVkUsIAotCU5SRVNUT1JFLCAKLQlRKTsKLSAgIGlucHV0IENETjsKLSAgIGlucHV0IFNETjsKLSAgIGlucHV0IENQOwotICAgaW5wdXQgRDsKLSAgIGlucHV0IFNJOwotICAgaW5wdXQgU0U7Ci0gICBpbnB1dCBTQVZFOwotICAgaW5wdXQgTlJFU1RPUkU7Ci0gICBvdXRwdXQgUTsKLQotICAgU0RGQ05RRDFCV1BfU1BDQV8zMjEgc3RhdGVfcmVtYXAgKC5TSShTSSksIAotCS5TRShTRSksIAotCS5RKFEpLCAKLQkuRChEKSwgCi0JLkNQKENQKSwgCi0JLkNETihDRE4pKTsKLWVuZG1vZHVsZQotCi1tb2R1bGUgU0RGQ05RRDFCV1BfU1BDQV8zMjIgKAotCVNJLCAKLQlTRSwgCi0JUSwgCi0JRCwgCi0JQ1AsIAotCUNETik7Ci0gICBpbnB1dCBTSTsKLSAgIGlucHV0IFNFOwotICAgb3V0cHV0IFE7Ci0gICBpbnB1dCBEOwotICAgaW5wdXQgQ1A7Ci0gICBpbnB1dCBDRE47Ci0KLSAgIFNERkZSWDQgREZGICguU0koU0kpLCAKLQkuU0UoU0UpLCAKLQkuUk4oQ0ROKSwgCi0JLlEoUSksIAotCS5EKEQpLCAKLQkuQ0soQ1ApKTsKLWVuZG1vZHVsZQotCi1tb2R1bGUgUlNERkNTUkhEMkJXUF9SRU1BUF9TUENfMjQwICgKLQlDRE4sIAotCVNETiwgCi0JQ1AsIAotCUQsIAotCVNJLCAKLQlTRSwgCi0JU0FWRSwgCi0JTlJFU1RPUkUsIAotCVEpOwotICAgaW5wdXQgQ0ROOwotICAgaW5wdXQgU0ROOwotICAgaW5wdXQgQ1A7Ci0gICBpbnB1dCBEOwotICAgaW5wdXQgU0k7Ci0gICBpbnB1dCBTRTsKLSAgIGlucHV0IFNBVkU7Ci0gICBpbnB1dCBOUkVTVE9SRTsKLSAgIG91dHB1dCBROwotCi0gICBTREZDTlFEMUJXUF9TUENBXzMyMiBzdGF0ZV9yZW1hcCAoLlNJKFNJKSwgCi0JLlNFKFNFKSwgCi0JLlEoUSksIAotCS5EKEQpLCAKLQkuQ1AoQ1ApLCAKLQkuQ0ROKENETikpOwotZW5kbW9kdWxlCi0KLW1vZHVsZSBTREZDTlFEMUJXUF9TUENBXzMyMyAoCi0JU0ksIAotCVNFLCAKLQlRLCAKLQlELCAKLQlDUCwgCi0JQ0ROKTsKLSAgIGlucHV0IFNJOwotICAgaW5wdXQgU0U7Ci0gICBvdXRwdXQgUTsKLSAgIGlucHV0IEQ7Ci0gICBpbnB1dCBDUDsKLSAgIGlucHV0IENETjsKLQotICAgU0RGRlJYNCBERkYgKC5TSShTSSksIAotCS5TRShTRSksIAotCS5STihDRE4pLCAKLQkuUShRKSwgCi0JLkQoRCksIAotCS5DSyhDUCkpOwotZW5kbW9kdWxlCi0KLW1vZHVsZSBSU0RGQ1NSSEQyQldQX1JFTUFQX1NQQ18yNDEgKAotCUNETiwgCi0JU0ROLCAKLQlDUCwgCi0JRCwgCi0JU0ksIAotCVNFLCAKLQlTQVZFLCAKLQlOUkVTVE9SRSwgCi0JUSk7Ci0gICBpbnB1dCBDRE47Ci0gICBpbnB1dCBTRE47Ci0gICBpbnB1dCBDUDsKLSAgIGlucHV0IEQ7Ci0gICBpbnB1dCBTSTsKLSAgIGlucHV0IFNFOwotICAgaW5wdXQgU0FWRTsKLSAgIGlucHV0IE5SRVNUT1JFOwotICAgb3V0cHV0IFE7Ci0KLSAgIFNERkNOUUQxQldQX1NQQ0FfMzIzIHN0YXRlX3JlbWFwICguU0koU0kpLCAKLQkuU0UoU0UpLCAKLQkuUShRKSwgCi0JLkQoRCksIAotCS5DUChDUCksIAotCS5DRE4oQ0ROKSk7Ci1lbmRtb2R1bGUKLQotbW9kdWxlIFNERkNOUUQxQldQX1NQQ0FfMzI0ICgKLQlTSSwgCi0JU0UsIAotCVEsIAotCUQsIAotCUNQLCAKLQlDRE4pOwotICAgaW5wdXQgU0k7Ci0gICBpbnB1dCBTRTsKLSAgIG91dHB1dCBROwotICAgaW5wdXQgRDsKLSAgIGlucHV0IENQOwotICAgaW5wdXQgQ0ROOwotCi0gICBTREZGUlg0IERGRiAoLlNJKFNJKSwgCi0JLlNFKFNFKSwgCi0JLlJOKENETiksIAotCS5RKFEpLCAKLQkuRChEKSwgCi0JLkNLKENQKSk7Ci1lbmRtb2R1bGUKLQotbW9kdWxlIFJTREZDU1JIRDJCV1BfUkVNQVBfU1BDXzI0MiAoCi0JQ0ROLCAKLQlTRE4sIAotCUNQLCAKLQlELCAKLQlTSSwgCi0JU0UsIAotCVNBVkUsIAotCU5SRVNUT1JFLCAKLQlRKTsKLSAgIGlucHV0IENETjsKLSAgIGlucHV0IFNETjsKLSAgIGlucHV0IENQOwotICAgaW5wdXQgRDsKLSAgIGlucHV0IFNJOwotICAgaW5wdXQgU0U7Ci0gICBpbnB1dCBTQVZFOwotICAgaW5wdXQgTlJFU1RPUkU7Ci0gICBvdXRwdXQgUTsKLQotICAgU0RGQ05RRDFCV1BfU1BDQV8zMjQgc3RhdGVfcmVtYXAgKC5TSShTSSksIAotCS5TRShTRSksIAotCS5RKFEpLCAKLQkuRChEKSwgCi0JLkNQKENQKSwgCi0JLkNETihDRE4pKTsKLWVuZG1vZHVsZQotCi1tb2R1bGUgU0RGQ05RRDFCV1BfU1BDQV8zMjUgKAotCVNJLCAKLQlTRSwgCi0JUSwgCi0JRCwgCi0JQ1AsIAotCUNETik7Ci0gICBpbnB1dCBTSTsKLSAgIGlucHV0IFNFOwotICAgb3V0cHV0IFE7Ci0gICBpbnB1dCBEOwotICAgaW5wdXQgQ1A7Ci0gICBpbnB1dCBDRE47Ci0KLSAgIFNERkZSWDQgREZGICguU0koU0kpLCAKLQkuU0UoU0UpLCAKLQkuUk4oQ0ROKSwgCi0JLlEoUSksIAotCS5EKEQpLCAKLQkuQ0soQ1ApKTsKLWVuZG1vZHVsZQotCi1tb2R1bGUgUlNERkNTUkhEMkJXUF9SRU1BUF9TUENfMjQzICgKLQlDRE4sIAotCVNETiwgCi0JQ1AsIAotCUQsIAotCVNJLCAKLQlTRSwgCi0JU0FWRSwgCi0JTlJFU1RPUkUsIAotCVEpOwotICAgaW5wdXQgQ0ROOwotICAgaW5wdXQgU0ROOwotICAgaW5wdXQgQ1A7Ci0gICBpbnB1dCBEOwotICAgaW5wdXQgU0k7Ci0gICBpbnB1dCBTRTsKLSAgIGlucHV0IFNBVkU7Ci0gICBpbnB1dCBOUkVTVE9SRTsKLSAgIG91dHB1dCBROwotCi0gICBTREZDTlFEMUJXUF9TUENBXzMyNSBzdGF0ZV9yZW1hcCAoLlNJKFNJKSwgCi0JLlNFKFNFKSwgCi0JLlEoUSksIAotCS5EKEQpLCAKLQkuQ1AoQ1ApLCAKLQkuQ0ROKENETikpOwotZW5kbW9kdWxlCi0KLW1vZHVsZSBTREZDTlFEMUJXUF9TUENBXzMyNiAoCi0JU0ksIAotCVNFLCAKLQlRLCAKLQlELCAKLQlDUCwgCi0JQ0ROKTsKLSAgIGlucHV0IFNJOwotICAgaW5wdXQgU0U7Ci0gICBvdXRwdXQgUTsKLSAgIGlucHV0IEQ7Ci0gICBpbnB1dCBDUDsKLSAgIGlucHV0IENETjsKLQotICAgU0RGRlJYNCBERkYgKC5TSShTSSksIAotCS5TRShTRSksIAotCS5STihDRE4pLCAKLQkuUShRKSwgCi0JLkQoRCksIAotCS5DSyhDUCkpOwotZW5kbW9kdWxlCi0KLW1vZHVsZSBSU0RGQ1NSSEQyQldQX1JFTUFQX1NQQ18yNDQgKAotCUNETiwgCi0JU0ROLCAKLQlDUCwgCi0JRCwgCi0JU0ksIAotCVNFLCAKLQlTQVZFLCAKLQlOUkVTVE9SRSwgCi0JUSk7Ci0gICBpbnB1dCBDRE47Ci0gICBpbnB1dCBTRE47Ci0gICBpbnB1dCBDUDsKLSAgIGlucHV0IEQ7Ci0gICBpbnB1dCBTSTsKLSAgIGlucHV0IFNFOwotICAgaW5wdXQgU0FWRTsKLSAgIGlucHV0IE5SRVNUT1JFOwotICAgb3V0cHV0IFE7Ci0KLSAgIFNERkNOUUQxQldQX1NQQ0FfMzI2IHN0YXRlX3JlbWFwICguU0koU0kpLCAKLQkuU0UoU0UpLCAKLQkuUShRKSwgCi0JLkQoRCksIAotCS5DUChDUCksIAotCS5DRE4oQ0ROKSk7Ci1lbmRtb2R1bGUKLQotbW9kdWxlIFNERkNOUUQxQldQX1NQQ0FfMzI3ICgKLQlTSSwgCi0JU0UsIAotCVEsIAotCUQsIAotCUNQLCAKLQlDRE4pOwotICAgaW5wdXQgU0k7Ci0gICBpbnB1dCBTRTsKLSAgIG91dHB1dCBROwotICAgaW5wdXQgRDsKLSAgIGlucHV0IENQOwotICAgaW5wdXQgQ0ROOwotCi0gICBTREZGUlg0IERGRiAoLlNJKFNJKSwgCi0JLlNFKFNFKSwgCi0JLlJOKENETiksIAotCS5RKFEpLCAKLQkuRChEKSwgCi0JLkNLKENQKSk7Ci1lbmRtb2R1bGUKLQotbW9kdWxlIFJTREZDU1JIRDJCV1BfUkVNQVBfU1BDXzI0NSAoCi0JQ0ROLCAKLQlTRE4sIAotCUNQLCAKLQlELCAKLQlTSSwgCi0JU0UsIAotCVNBVkUsIAotCU5SRVNUT1JFLCAKLQlRKTsKLSAgIGlucHV0IENETjsKLSAgIGlucHV0IFNETjsKLSAgIGlucHV0IENQOwotICAgaW5wdXQgRDsKLSAgIGlucHV0IFNJOwotICAgaW5wdXQgU0U7Ci0gICBpbnB1dCBTQVZFOwotICAgaW5wdXQgTlJFU1RPUkU7Ci0gICBvdXRwdXQgUTsKLQotICAgU0RGQ05RRDFCV1BfU1BDQV8zMjcgc3RhdGVfcmVtYXAgKC5TSShTSSksIAotCS5TRShTRSksIAotCS5RKFEpLCAKLQkuRChEKSwgCi0JLkNQKENQKSwgCi0JLkNETihDRE4pKTsKLWVuZG1vZHVsZQotCi1tb2R1bGUgU0RGQ05RRDFCV1BfU1BDQV8zMjggKAotCVNJLCAKLQlTRSwgCi0JUSwgCi0JRCwgCi0JQ1AsIAotCUNETik7Ci0gICBpbnB1dCBTSTsKLSAgIGlucHV0IFNFOwotICAgb3V0cHV0IFE7Ci0gICBpbnB1dCBEOwotICAgaW5wdXQgQ1A7Ci0gICBpbnB1dCBDRE47Ci0KLSAgIFNERkZSWDQgREZGICguU0koU0kpLCAKLQkuU0UoU0UpLCAKLQkuUk4oQ0ROKSwgCi0JLlEoUSksIAotCS5EKEQpLCAKLQkuQ0soQ1ApKTsKLWVuZG1vZHVsZQotCi1tb2R1bGUgUlNERkNTUkhEMkJXUF9SRU1BUF9TUENfMjQ2ICgKLQlDRE4sIAotCVNETiwgCi0JQ1AsIAotCUQsIAotCVNJLCAKLQlTRSwgCi0JU0FWRSwgCi0JTlJFU1RPUkUsIAotCVEpOwotICAgaW5wdXQgQ0ROOwotICAgaW5wdXQgU0ROOwotICAgaW5wdXQgQ1A7Ci0gICBpbnB1dCBEOwotICAgaW5wdXQgU0k7Ci0gICBpbnB1dCBTRTsKLSAgIGlucHV0IFNBVkU7Ci0gICBpbnB1dCBOUkVTVE9SRTsKLSAgIG91dHB1dCBROwotCi0gICBTREZDTlFEMUJXUF9TUENBXzMyOCBzdGF0ZV9yZW1hcCAoLlNJKFNJKSwgCi0JLlNFKFNFKSwgCi0JLlEoUSksIAotCS5EKEQpLCAKLQkuQ1AoQ1ApLCAKLQkuQ0ROKENETikpOwotZW5kbW9kdWxlCi0KLW1vZHVsZSBTREZDTlFEMUJXUF9TUENBXzMyOSAoCi0JU0ksIAotCVNFLCAKLQlRLCAKLQlELCAKLQlDUCwgCi0JQ0ROKTsKLSAgIGlucHV0IFNJOwotICAgaW5wdXQgU0U7Ci0gICBvdXRwdXQgUTsKLSAgIGlucHV0IEQ7Ci0gICBpbnB1dCBDUDsKLSAgIGlucHV0IENETjsKLQotICAgU0RGRlJYNCBERkYgKC5TSShTSSksIAotCS5TRShTRSksIAotCS5STihDRE4pLCAKLQkuUShRKSwgCi0JLkQoRCksIAotCS5DSyhDUCkpOwotZW5kbW9kdWxlCi0KLW1vZHVsZSBSU0RGQ1NSSEQyQldQX1JFTUFQX1NQQ18yNDcgKAotCUNETiwgCi0JU0ROLCAKLQlDUCwgCi0JRCwgCi0JU0ksIAotCVNFLCAKLQlTQVZFLCAKLQlOUkVTVE9SRSwgCi0JUSk7Ci0gICBpbnB1dCBDRE47Ci0gICBpbnB1dCBTRE47Ci0gICBpbnB1dCBDUDsKLSAgIGlucHV0IEQ7Ci0gICBpbnB1dCBTSTsKLSAgIGlucHV0IFNFOwotICAgaW5wdXQgU0FWRTsKLSAgIGlucHV0IE5SRVNUT1JFOwotICAgb3V0cHV0IFE7Ci0KLSAgIFNERkNOUUQxQldQX1NQQ0FfMzI5IHN0YXRlX3JlbWFwICguU0koU0kpLCAKLQkuU0UoU0UpLCAKLQkuUShRKSwgCi0JLkQoRCksIAotCS5DUChDUCksIAotCS5DRE4oQ0ROKSk7Ci1lbmRtb2R1bGUKLQotbW9kdWxlIFNERkNOUUQxQldQX1NQQ0FfMzMwICgKLQlTSSwgCi0JU0UsIAotCVEsIAotCUQsIAotCUNQLCAKLQlDRE4pOwotICAgaW5wdXQgU0k7Ci0gICBpbnB1dCBTRTsKLSAgIG91dHB1dCBROwotICAgaW5wdXQgRDsKLSAgIGlucHV0IENQOwotICAgaW5wdXQgQ0ROOwotCi0gICBTREZGUlg0IERGRiAoLlNJKFNJKSwgCi0JLlNFKFNFKSwgCi0JLlJOKENETiksIAotCS5RKFEpLCAKLQkuRChEKSwgCi0JLkNLKENQKSk7Ci1lbmRtb2R1bGUKLQotbW9kdWxlIFJTREZDU1JIRDJCV1BfUkVNQVBfU1BDXzI0OCAoCi0JQ0ROLCAKLQlTRE4sIAotCUNQLCAKLQlELCAKLQlTSSwgCi0JU0UsIAotCVNBVkUsIAotCU5SRVNUT1JFLCAKLQlRKTsKLSAgIGlucHV0IENETjsKLSAgIGlucHV0IFNETjsKLSAgIGlucHV0IENQOwotICAgaW5wdXQgRDsKLSAgIGlucHV0IFNJOwotICAgaW5wdXQgU0U7Ci0gICBpbnB1dCBTQVZFOwotICAgaW5wdXQgTlJFU1RPUkU7Ci0gICBvdXRwdXQgUTsKLQotICAgU0RGQ05RRDFCV1BfU1BDQV8zMzAgc3RhdGVfcmVtYXAgKC5TSShTSSksIAotCS5TRShTRSksIAotCS5RKFEpLCAKLQkuRChEKSwgCi0JLkNQKENQKSwgCi0JLkNETihDRE4pKTsKLWVuZG1vZHVsZQotCi1tb2R1bGUgcHJvZ19idXNfbWFjaCAoCi0JY2xrLCAKLQlyZXNldCwgCi0JcmVhZCwgCi0Jd3JpdGUsIAotCXdyaXRlX2gsIAotCWFkZHJlc3MsIAotCWRhdGFfaW4sIAotCWRhdGFfb3V0LCAKLQlwYWRfZGF0YV9pbiwgCi0JcGFkX2RhdGFfb3V0LCAKLQlhZGRyc19pbiwgCi0JcmVhZF9jeWNsZSwgCi0Jc3luYywgCi0JZ28sIAotCWFzLCAKLQlkb25lLCAKLQlSQ19DR19URVNUX1BPUlQsIAotCVNSUEdfUEdfaW4sIAotCVNSUEdfUEdfaW5fMSwgCi0JREZUX3NkaSwgCi0JREZUX3NlbiwgCi0JREZUX3Nkbyk7Ci0gICBpbnB1dCBjbGs7Ci0gICBpbnB1dCByZXNldDsKLSAgIG91dHB1dCByZWFkOwotICAgb3V0cHV0IHdyaXRlOwotICAgb3V0cHV0IHdyaXRlX2g7Ci0gICBvdXRwdXQgWzg6MF0gYWRkcmVzczsKLSAgIGlucHV0IFsxNTowXSBkYXRhX2luOwotICAgb3V0cHV0IFsxNTowXSBkYXRhX291dDsKLSAgIGlucHV0IFsxNTowXSBwYWRfZGF0YV9pbjsKLSAgIG91dHB1dCBbMTU6MF0gcGFkX2RhdGFfb3V0OwotICAgaW5wdXQgWzg6MF0gYWRkcnNfaW47Ci0gICBpbnB1dCByZWFkX2N5Y2xlOwotICAgaW5wdXQgc3luYzsKLSAgIGlucHV0IGdvOwotICAgb3V0cHV0IGFzOwotICAgb3V0cHV0IGRvbmU7Ci0gICBpbnB1dCBSQ19DR19URVNUX1BPUlQ7Ci0gICBpbnB1dCBTUlBHX1BHX2luOwotICAgaW5wdXQgU1JQR19QR19pbl8xOwotICAgaW5wdXQgREZUX3NkaTsKLSAgIGlucHV0IERGVF9zZW47Ci0gICBvdXRwdXQgREZUX3NkbzsKLQotICAgLy8gSW50ZXJuYWwgd2lyZXMKLSAgIHdpcmUgbl8wOwotICAgd2lyZSBuXzI7Ci0gICB3aXJlIG5fMzsKLSAgIHdpcmUgbl80OwotICAgd2lyZSBuXzU7Ci0gICB3aXJlIG5fMTE7Ci0gICB3aXJlIG5fMTU7Ci0gICB3aXJlIG5fOTI7Ci0gICB3aXJlIG5fOTM7Ci0gICB3aXJlIG5fOTQ7Ci0gICB3aXJlIG5fOTU7Ci0gICB3aXJlIG5fOTY7Ci0gICB3aXJlIG5fOTc7Ci0gICB3aXJlIFxwcmVzZW50X3N0YXRlWzBdIDsKLSAgIHdpcmUgXHByZXNlbnRfc3RhdGVbMV0gOwotICAgd2lyZSByY19nY2xrOwotCi0gICBSQ19DR19NT0RfMzI5MV8zMzAxIFJDX0NHX0hJRVJfSU5TVDI4ICguZW5hYmxlKG5fOTYpLCAKLQkuY2tfaW4oY2xrKSwgCi0JLmNrX291dChyY19nY2xrKSwgCi0JLnRlc3QoUkNfQ0dfVEVTVF9QT1JUKSk7Ci0gICBSU0RGQ1NSSEQyQldQX1JFTUFQX1NQQ18yMzAgXGRhdGFfb3V0X3JlZ1swXSAgKC5DRE4obl8xNSksIAotCS5TRE4oMSdiMSksIAotCS5DUChyY19nY2xrKSwgCi0JLkQocGFkX2RhdGFfaW5bMF0pLCAKLQkuU0koREZUX3NkaSksIAotCS5TRShERlRfc2VuKSwgCi0JLlNBVkUoMSdiMCksIAotCS5OUkVTVE9SRSgxJ2IwKSwgCi0JLlEoZGF0YV9vdXRbMF0pKTsKLSAgIFJTREZDU1JIRDJCV1BfUkVNQVBfU1BDXzIzMSBcZGF0YV9vdXRfcmVnWzEwXSAgKC5DRE4obl8xNSksIAotCS5TRE4oMSdiMSksIAotCS5DUChyY19nY2xrKSwgCi0JLkQocGFkX2RhdGFfaW5bMTBdKSwgCi0JLlNJKGRhdGFfb3V0WzldKSwgCi0JLlNFKERGVF9zZW4pLCAKLQkuU0FWRSgxJ2IwKSwgCi0JLk5SRVNUT1JFKDEnYjApLCAKLQkuUShkYXRhX291dFsxMF0pKTsKLSAgIFJTREZDU1JIRDJCV1BfUkVNQVBfU1BDXzIzMiBcZGF0YV9vdXRfcmVnWzExXSAgKC5DRE4obl8xNSksIAotCS5TRE4oMSdiMSksIAotCS5DUChyY19nY2xrKSwgCi0JLkQocGFkX2RhdGFfaW5bMTFdKSwgCi0JLlNJKGRhdGFfb3V0WzEwXSksIAotCS5TRShERlRfc2VuKSwgCi0JLlNBVkUoMSdiMCksIAotCS5OUkVTVE9SRSgxJ2IwKSwgCi0JLlEoZGF0YV9vdXRbMTFdKSk7Ci0gICBSU0RGQ1NSSEQyQldQX1JFTUFQX1NQQ18yMzMgXGRhdGFfb3V0X3JlZ1sxMl0gICguQ0ROKG5fMTUpLCAKLQkuU0ROKDEnYjEpLCAKLQkuQ1AocmNfZ2NsayksIAotCS5EKHBhZF9kYXRhX2luWzEyXSksIAotCS5TSShkYXRhX291dFsxMV0pLCAKLQkuU0UoREZUX3NlbiksIAotCS5TQVZFKDEnYjApLCAKLQkuTlJFU1RPUkUoMSdiMCksIAotCS5RKGRhdGFfb3V0WzEyXSkpOwotICAgUlNERkNTUkhEMkJXUF9SRU1BUF9TUENfMjM0IFxkYXRhX291dF9yZWdbMTNdICAoLkNETihuXzE1KSwgCi0JLlNETigxJ2IxKSwgCi0JLkNQKHJjX2djbGspLCAKLQkuRChwYWRfZGF0YV9pblsxM10pLCAKLQkuU0koZGF0YV9vdXRbMTJdKSwgCi0JLlNFKERGVF9zZW4pLCAKLQkuU0FWRSgxJ2IwKSwgCi0JLk5SRVNUT1JFKDEnYjApLCAKLQkuUShkYXRhX291dFsxM10pKTsKLSAgIFJTREZDU1JIRDJCV1BfUkVNQVBfU1BDXzIzNSBcZGF0YV9vdXRfcmVnWzE0XSAgKC5DRE4obl8xNSksIAotCS5TRE4oMSdiMSksIAotCS5DUChyY19nY2xrKSwgCi0JLkQocGFkX2RhdGFfaW5bMTRdKSwgCi0JLlNJKGRhdGFfb3V0WzEzXSksIAotCS5TRShERlRfc2VuKSwgCi0JLlNBVkUoMSdiMCksIAotCS5OUkVTVE9SRSgxJ2IwKSwgCi0JLlEoZGF0YV9vdXRbMTRdKSk7Ci0gICBSU0RGQ1NSSEQyQldQX1JFTUFQX1NQQ18yMzYgXGRhdGFfb3V0X3JlZ1sxNV0gICguQ0ROKG5fMTUpLCAKLQkuU0ROKDEnYjEpLCAKLQkuQ1AocmNfZ2NsayksIAotCS5EKHBhZF9kYXRhX2luWzE1XSksIAotCS5TSShkYXRhX291dFsxNF0pLCAKLQkuU0UoREZUX3NlbiksIAotCS5TQVZFKDEnYjApLCAKLQkuTlJFU1RPUkUoMSdiMCksIAotCS5RKGRhdGFfb3V0WzE1XSkpOwotICAgUlNERkNTUkhEMkJXUF9SRU1BUF9TUENfMjM3IFxkYXRhX291dF9yZWdbMV0gICguQ0ROKG5fMTUpLCAKLQkuU0ROKDEnYjEpLCAKLQkuQ1AocmNfZ2NsayksIAotCS5EKHBhZF9kYXRhX2luWzFdKSwgCi0JLlNJKGRhdGFfb3V0WzBdKSwgCi0JLlNFKERGVF9zZW4pLCAKLQkuU0FWRSgxJ2IwKSwgCi0JLk5SRVNUT1JFKDEnYjApLCAKLQkuUShkYXRhX291dFsxXSkpOwotICAgUlNERkNTUkhEMkJXUF9SRU1BUF9TUENfMjM4IFxkYXRhX291dF9yZWdbMl0gICguQ0ROKG5fMTUpLCAKLQkuU0ROKDEnYjEpLCAKLQkuQ1AocmNfZ2NsayksIAotCS5EKHBhZF9kYXRhX2luWzJdKSwgCi0JLlNJKGRhdGFfb3V0WzFdKSwgCi0JLlNFKERGVF9zZW4pLCAKLQkuU0FWRSgxJ2IwKSwgCi0JLk5SRVNUT1JFKDEnYjApLCAKLQkuUShkYXRhX291dFsyXSkpOwotICAgUlNERkNTUkhEMkJXUF9SRU1BUF9TUENfMjM5IFxkYXRhX291dF9yZWdbM10gICguQ0ROKG5fMTUpLCAKLQkuU0ROKDEnYjEpLCAKLQkuQ1AocmNfZ2NsayksIAotCS5EKHBhZF9kYXRhX2luWzNdKSwgCi0JLlNJKGRhdGFfb3V0WzJdKSwgCi0JLlNFKERGVF9zZW4pLCAKLQkuU0FWRSgxJ2IwKSwgCi0JLk5SRVNUT1JFKDEnYjApLCAKLQkuUShkYXRhX291dFszXSkpOwotICAgUlNERkNTUkhEMkJXUF9SRU1BUF9TUENfMjQwIFxkYXRhX291dF9yZWdbNF0gICguQ0ROKG5fMTUpLCAKLQkuU0ROKDEnYjEpLCAKLQkuQ1AocmNfZ2NsayksIAotCS5EKHBhZF9kYXRhX2luWzRdKSwgCi0JLlNJKGRhdGFfb3V0WzNdKSwgCi0JLlNFKERGVF9zZW4pLCAKLQkuU0FWRSgxJ2IwKSwgCi0JLk5SRVNUT1JFKDEnYjApLCAKLQkuUShkYXRhX291dFs0XSkpOwotICAgUlNERkNTUkhEMkJXUF9SRU1BUF9TUENfMjQxIFxkYXRhX291dF9yZWdbNV0gICguQ0ROKG5fMTUpLCAKLQkuU0ROKDEnYjEpLCAKLQkuQ1AocmNfZ2NsayksIAotCS5EKHBhZF9kYXRhX2luWzVdKSwgCi0JLlNJKGRhdGFfb3V0WzRdKSwgCi0JLlNFKERGVF9zZW4pLCAKLQkuU0FWRSgxJ2IwKSwgCi0JLk5SRVNUT1JFKDEnYjApLCAKLQkuUShkYXRhX291dFs1XSkpOwotICAgUlNERkNTUkhEMkJXUF9SRU1BUF9TUENfMjQyIFxkYXRhX291dF9yZWdbNl0gICguQ0ROKG5fMTUpLCAKLQkuU0ROKDEnYjEpLCAKLQkuQ1AocmNfZ2NsayksIAotCS5EKHBhZF9kYXRhX2luWzZdKSwgCi0JLlNJKGRhdGFfb3V0WzVdKSwgCi0JLlNFKERGVF9zZW4pLCAKLQkuU0FWRSgxJ2IwKSwgCi0JLk5SRVNUT1JFKDEnYjApLCAKLQkuUShkYXRhX291dFs2XSkpOwotICAgUlNERkNTUkhEMkJXUF9SRU1BUF9TUENfMjQzIFxkYXRhX291dF9yZWdbN10gICguQ0ROKG5fMTUpLCAKLQkuU0ROKDEnYjEpLCAKLQkuQ1AocmNfZ2NsayksIAotCS5EKHBhZF9kYXRhX2luWzddKSwgCi0JLlNJKGRhdGFfb3V0WzZdKSwgCi0JLlNFKERGVF9zZW4pLCAKLQkuU0FWRSgxJ2IwKSwgCi0JLk5SRVNUT1JFKDEnYjApLCAKLQkuUShkYXRhX291dFs3XSkpOwotICAgUlNERkNTUkhEMkJXUF9SRU1BUF9TUENfMjQ0IFxkYXRhX291dF9yZWdbOF0gICguQ0ROKG5fMTUpLCAKLQkuU0ROKDEnYjEpLCAKLQkuQ1AocmNfZ2NsayksIAotCS5EKHBhZF9kYXRhX2luWzhdKSwgCi0JLlNJKGRhdGFfb3V0WzddKSwgCi0JLlNFKERGVF9zZW4pLCAKLQkuU0FWRSgxJ2IwKSwgCi0JLk5SRVNUT1JFKDEnYjApLCAKLQkuUShkYXRhX291dFs4XSkpOwotICAgUlNERkNTUkhEMkJXUF9SRU1BUF9TUENfMjQ1IFxkYXRhX291dF9yZWdbOV0gICguQ0ROKG5fMTUpLCAKLQkuU0ROKDEnYjEpLCAKLQkuQ1AocmNfZ2NsayksIAotCS5EKHBhZF9kYXRhX2luWzldKSwgCi0JLlNJKGRhdGFfb3V0WzhdKSwgCi0JLlNFKERGVF9zZW4pLCAKLQkuU0FWRSgxJ2IwKSwgCi0JLk5SRVNUT1JFKDEnYjApLCAKLQkuUShkYXRhX291dFs5XSkpOwotICAgUlNERkNTUkhEMkJXUF9SRU1BUF9TUENfMjQ2IFxwcmVzZW50X3N0YXRlX3JlZ1swXSAgKC5DRE4obl8xNSksIAotCS5TRE4oMSdiMSksIAotCS5DUChjbGspLCAKLQkuRChuXzkzKSwgCi0JLlNJKGRhdGFfb3V0WzE1XSksIAotCS5TRShERlRfc2VuKSwgCi0JLlNBVkUoMSdiMCksIAotCS5OUkVTVE9SRSgxJ2IwKSwgCi0JLlEoXHByZXNlbnRfc3RhdGVbMF0gKSk7Ci0gICBSU0RGQ1NSSEQyQldQX1JFTUFQX1NQQ18yNDcgXHByZXNlbnRfc3RhdGVfcmVnWzFdICAoLkNETihuXzE1KSwgCi0JLlNETigxJ2IxKSwgCi0JLkNQKGNsayksIAotCS5EKG5fOTcpLCAKLQkuU0koXHByZXNlbnRfc3RhdGVbMF0gKSwgCi0JLlNFKERGVF9zZW4pLCAKLQkuU0FWRSgxJ2IwKSwgCi0JLk5SRVNUT1JFKDEnYjApLCAKLQkuUShccHJlc2VudF9zdGF0ZVsxXSApKTsKLSAgIFJTREZDU1JIRDJCV1BfUkVNQVBfU1BDXzI0OCBccHJlc2VudF9zdGF0ZV9yZWdbMl0gICguQ0ROKG5fMTUpLCAKLQkuU0ROKDEnYjEpLCAKLQkuQ1AoY2xrKSwgCi0JLkQobl85NCksIAotCS5TSShccHJlc2VudF9zdGF0ZVsxXSApLCAKLQkuU0UoREZUX3NlbiksIAotCS5TQVZFKDEnYjApLCAKLQkuTlJFU1RPUkUoMSdiMCksIAotCS5RKERGVF9zZG8pKTsKLSAgIElOVlhMIGc5MiAoLlkobl8xNSksIAotCS5BKHJlc2V0KSk7Ci0gICBBTkQyWDEgZzE4NCAoLlkobl8xMSksIAotCS5CKG5fMCksIAotCS5BKG5fOTUpKTsKLSAgIE9SMlgxIGcxOTMgKC5ZKG5fNSksIAotCS5CKG5fNCksIAotCS5BKG5fMykpOwotICAgQ0xLSU5WWDIgZzE5NSAoLlkobl80KSwgCi0JLkEoXHByZXNlbnRfc3RhdGVbMF0gKSk7Ci0gICBDTEtJTlZYMSBnMTk2ICguWShuXzMpLCAKLQkuQShccHJlc2VudF9zdGF0ZVsxXSApKTsKLSAgIENMS0lOVlgxIGcxOTcgKC5ZKG5fMiksIAotCS5BKERGVF9zZG8pKTsKLSAgIE5PUjJCWDEgZzE5OSAoLlkobl8wKSwgCi0JLkIocmVhZF9jeWNsZSksIAotCS5BTihnbykpOwotICAgQ0xLTVgyWDEyIGcyMDAgKC5ZKG5fOTMpLCAKLQkuUzAobl85NSksIAotCS5CKG5fOTIpLCAKLQkuQShuXzQpKTsKLSAgIENMS0FORDJYMTIgZzMgKC5ZKG5fOTIpLCAKLQkuQihyZWFkX2N5Y2xlKSwgCi0JLkEoZ28pKTsKLSAgIEFPMjFYNCBnMiAoLlkobl85NCksIAotCS5CMChuXzExKSwgCi0JLkExKG5fNSksIAotCS5BMChERlRfc2RvKSk7Ci0gICBBTkQzWDYgZzIwMSAoLlkobl85NSksIAotCS5DKG5fMyksIAotCS5CKG5fMiksIAotCS5BKG5fNCkpOwotICAgQU5EM1g2IGcyMDIgKC5ZKG5fOTYpLCAKLQkuQyhuXzIpLCAKLQkuQihccHJlc2VudF9zdGF0ZVsxXSApLCAKLQkuQShuXzQpKTsKLSAgIEFPMjJYNCBnMjAzICguWShuXzk3KSwgCi0JLkIxKG5fMyksIAotCS5CMChccHJlc2VudF9zdGF0ZVswXSApLCAKLQkuQTEobl80KSwgCi0JLkEwKFxwcmVzZW50X3N0YXRlWzFdICkpOwotZW5kbW9kdWxlCi0KLW1vZHVsZSBzaGlmdF9sZWZ0X3Vuc2lnbmVkXzg4NCAoCi0JQSwgCi0JU0gsIAotCVopOwotICAgaW5wdXQgWzMxOjBdIEE7Ci0gICBpbnB1dCBbMzowXSBTSDsKLSAgIG91dHB1dCBbMzE6MF0gWjsKLQotICAgLy8gSW50ZXJuYWwgd2lyZXMKLSAgIHdpcmUgbl8wOwotICAgd2lyZSBuXzE7Ci0gICB3aXJlIG5fMjsKLSAgIHdpcmUgbl8zOwotICAgd2lyZSBuXzEzOwotICAgd2lyZSBuXzE0OwotICAgd2lyZSBuXzE2OwotICAgd2lyZSBuXzIxOwotICAgd2lyZSBuXzI3OwotICAgd2lyZSBuXzI4OwotICAgd2lyZSBuXzMyOwotICAgd2lyZSBuXzM0OwotICAgd2lyZSBuXzU4OwotICAgd2lyZSBuXzYwOwotICAgd2lyZSBuXzYzOwotICAgd2lyZSBuXzEzMTsKLSAgIHdpcmUgbl8yNzI7Ci0gICB3aXJlIG5fMjczOwotICAgd2lyZSBuXzI3NDsKLSAgIHdpcmUgbl8yNzU7Ci0gICB3aXJlIG5fMjc2OwotICAgd2lyZSBuXzI3NzsKLSAgIHdpcmUgbl8yNzg7Ci0gICB3aXJlIG5fMjc5OwotICAgd2lyZSBuXzI4MDsKLSAgIHdpcmUgbl8yODE7Ci0gICB3aXJlIG5fMjgyOwotICAgd2lyZSBuXzI4MzsKLSAgIHdpcmUgbl8yODQ7Ci0gICB3aXJlIG5fMjg1OwotICAgd2lyZSBuXzI4NjsKLSAgIHdpcmUgbl8yODc7Ci0gICB3aXJlIG5fMjg4OwotICAgd2lyZSBuXzI5MTsKLSAgIHdpcmUgbl8yOTI7Ci0gICB3aXJlIG5fMjkzOwotICAgd2lyZSBuXzI5NDsKLSAgIHdpcmUgbl8yOTU7Ci0gICB3aXJlIG5fMjk2OwotICAgd2lyZSBuXzI5NzsKLSAgIHdpcmUgbl8yOTg7Ci0gICB3aXJlIG5fMjk5OwotICAgd2lyZSBuXzMwMDsKLSAgIHdpcmUgbl8zMDE7Ci0gICB3aXJlIG5fMzAyOwotICAgd2lyZSBuXzMwMzsKLSAgIHdpcmUgbl8zMDQ7Ci0gICB3aXJlIG5fMzA1OwotICAgd2lyZSBuXzMwNjsKLSAgIHdpcmUgbl8zMDc7Ci0gICB3aXJlIG5fMzA4OwotICAgd2lyZSBuXzMwOTsKLSAgIHdpcmUgbl8zMTA7Ci0gICB3aXJlIG5fMzExOwotICAgd2lyZSBuXzMxMjsKLSAgIHdpcmUgbl8zMTM7Ci0gICB3aXJlIG5fMzE0OwotICAgd2lyZSBuXzMxNTsKLSAgIHdpcmUgbl8zMTY7Ci0gICB3aXJlIG5fMzE3OwotICAgd2lyZSBuXzMxODsKLSAgIHdpcmUgbl8zMTk7Ci0gICB3aXJlIG5fMzIwOwotICAgd2lyZSBuXzMyMTsKLSAgIHdpcmUgbl8zMjI7Ci0gICB3aXJlIG5fMzIzOwotICAgd2lyZSBuXzMyNDsKLSAgIHdpcmUgbl8zMjU7Ci0gICB3aXJlIG5fMzI2OwotCi0gICBBTkQyWDEgZzI3MjAgKC5ZKFpbNF0pLCAKLQkuQihuXzI4MiksIAotCS5BKG5fMCkpOwotICAgQU5EMlgxIGcyNzM3ICguWShaWzZdKSwgCi0JLkIobl8yODEpLCAKLQkuQShuXzApKTsKLSAgIEFORDJYMSBnMjczOCAoLlkoWls1XSksIAotCS5CKG5fMjgzKSwgCi0JLkEobl8wKSk7Ci0gICBBTkQyWDEgZzI3NDggKC5ZKFpbN10pLCAKLQkuQihuXzI5NCksIAotCS5BKG5fMCkpOwotICAgQU5EMlgxIGcyNzQ5ICguWShaWzJdKSwgCi0JLkIobl8xMzEpLCAKLQkuQShuXzApKTsKLSAgIEFORDJYMSBnMjc3MiAoLlkoWlszXSksIAotCS5CKG5fMzEwKSwgCi0JLkEobl8wKSk7Ci0gICBBTkQyWDEgZzI3ODcgKC5ZKG5fMTMxKSwgCi0JLkIobl8zMDgpLCAKLQkuQShuXzIpKTsKLSAgIEFORDJYMSBnMjc5NSAoLlkoWlsxXSksIAotCS5CKG5fNjMpLCAKLQkuQShuXzApKTsKLSAgIEFORDJYMSBnMjgyMCAoLlkoWlswXSksIAotCS5CKG5fNTgpLCAKLQkuQShuXzApKTsKLSAgIEFORDJYMSBnMjg1NSAoLlkobl82MyksIAotCS5CKG5fMzI0KSwgCi0JLkEobl8yOCkpOwotICAgT1IyWDIgZzI4NTggKC5ZKG5fNjApLCAKLQkuQihuXzI3KSwgCi0JLkEoU0hbMl0pKTsKLSAgIEFORDJYMSBnMjg2MCAoLlkobl81OCksIAotCS5CKG5fMzIpLCAKLQkuQShuXzI4KSk7Ci0gICBBTkQyWDIgZzI4ODQgKC5ZKG5fMzQpLCAKLQkuQihuXzApLCAKLQkuQShBWzE1XSkpOwotICAgQU5EMlgyIGcyODg2ICguWShuXzMyKSwgCi0JLkIobl8zKSwgCi0JLkEoQVswXSkpOwotICAgQU5EMlgyIGcyODkwICguWShuXzI4KSwgCi0JLkIobl8yKSwgCi0JLkEobl8xKSk7Ci0gICBBTkQyWDIgZzI4OTEgKC5ZKG5fMjcpLCAKLQkuQihuXzIpLCAKLQkuQShBWzE1XSkpOwotICAgQU5EMlgyIGcyODk3ICguWShuXzIxKSwgCi0JLkIobl8xKSwgCi0JLkEoU0hbMl0pKTsKLSAgIEFORDJYMiBnMjkwMiAoLlkobl8xNiksIAotCS5CKFNIWzFdKSwgCi0JLkEoU0hbMl0pKTsKLSAgIE9SMlgxIGcyOTA0ICguWShuXzE0KSwgCi0JLkIoU0hbMV0pLCAKLQkuQShBWzE1XSkpOwotICAgQU5EMlgyIGcyOTA1ICguWShuXzEzKSwgCi0JLkIobl8yKSwgCi0JLkEoU0hbMV0pKTsKLSAgIENMS0lOVlgzIGcyOTE1ICguWShuXzMpLCAKLQkuQShTSFswXSkpOwotICAgQ0xLSU5WWDIgZzI5MTYgKC5ZKG5fMiksIAotCS5BKFNIWzJdKSk7Ci0gICBDTEtJTlZYMiBnMjkxNyAoLlkobl8xKSwgCi0JLkEoU0hbMV0pKTsKLSAgIENMS0lOVlg0IGcyOTE4ICguWShuXzApLCAKLQkuQShTSFszXSkpOwotICAgQU8yMVg0IGcyICguWShaWzI5XSksIAotCS5CMChuXzM0KSwgCi0JLkExKG5fMjczKSwgCi0JLkEwKFNIWzNdKSk7Ci0gICBBTzIxWDQgZzI5MTkgKC5ZKFpbMjhdKSwgCi0JLkIwKG5fMzQpLCAKLQkuQTEobl8yNzUpLCAKLQkuQTAoU0hbM10pKTsKLSAgIEFPMjFYNCBnMjkyMCAoLlkoWlsyN10pLCAKLQkuQjAobl8zNCksIAotCS5BMShuXzI3MiksIAotCS5BMChTSFszXSkpOwotICAgQU8yMVg0IGcyOTIxICguWShaWzI0XSksIAotCS5CMChuXzM0KSwgCi0JLkExKG5fMjc2KSwgCi0JLkEwKFNIWzNdKSk7Ci0gICBBTzIxWDQgZzI5MjIgKC5ZKFpbMjZdKSwgCi0JLkIwKG5fMzQpLCAKLQkuQTEobl8yNzQpLCAKLQkuQTAoU0hbM10pKTsKLSAgIEFPMjFYNCBnMjkyMyAoLlkoWlsyMl0pLCAKLQkuQjAobl8zNCksIAotCS5BMShuXzI4MCksIAotCS5BMChTSFszXSkpOwotICAgQU8yMVg0IGcyOTI0ICguWShaWzI1XSksIAotCS5CMChuXzM0KSwgCi0JLkExKG5fMjg1KSwgCi0JLkEwKFNIWzNdKSk7Ci0gICBBTzIyWDQgZzI5MjUgKC5ZKFpbMTldKSwgCi0JLkIxKG5fMjcyKSwgCi0JLkIwKG5fMCksIAotCS5BMShuXzI4OCksIAotCS5BMChTSFszXSkpOwotICAgQU8yMlg0IGcyOTI2ICguWShaWzE4XSksIAotCS5CMShuXzI3NCksIAotCS5CMChuXzApLCAKLQkuQTEobl8yNzcpLCAKLQkuQTAoU0hbM10pKTsKLSAgIEFPMjJYNCBnMjkyNyAoLlkoWlsxN10pLCAKLQkuQjEobl8yODUpLCAKLQkuQjAobl8wKSwgCi0JLkExKG5fMjc4KSwgCi0JLkEwKFNIWzNdKSk7Ci0gICBBTzIyWDQgZzI5MjggKC5ZKFpbMTZdKSwgCi0JLkIxKG5fMjc2KSwgCi0JLkIwKG5fMCksIAotCS5BMShuXzI3OSksIAotCS5BMChTSFszXSkpOwotICAgQU8yMlg0IGcyOTI5ICguWShaWzIxXSksIAotCS5CMShuXzI3MyksIAotCS5CMChuXzApLCAKLQkuQTEobl8yODQpLCAKLQkuQTAoU0hbM10pKTsKLSAgIEFPMjJYNCBnMjkzMCAoLlkoWlsxNF0pLCAKLQkuQjEobl8yODApLCAKLQkuQjAobl8wKSwgCi0JLkExKG5fMjgxKSwgCi0JLkEwKFNIWzNdKSk7Ci0gICBBTzIyWDQgZzI5MzEgKC5ZKFpbMTNdKSwgCi0JLkIxKG5fMjg0KSwgCi0JLkIwKG5fMCksIAotCS5BMShuXzI4MyksIAotCS5BMChTSFszXSkpOwotICAgQU8yMlg0IGcyOTMyICguWShaWzEyXSksIAotCS5CMShuXzI4NiksIAotCS5CMChuXzApLCAKLQkuQTEobl8yODIpLCAKLQkuQTAoU0hbM10pKTsKLSAgIEFPMjJYNCBnMjkzMyAoLlkoWlsyMF0pLCAKLQkuQjEobl8yODYpLCAKLQkuQjAoU0hbM10pLCAKLQkuQTEobl8yNzUpLCAKLQkuQTAobl8wKSk7Ci0gICBBTzIyWDQgZzI5MzQgKC5ZKFpbMTBdKSwgCi0JLkIxKG5fMjc3KSwgCi0JLkIwKG5fMCksIAotCS5BMShuXzEzMSksIAotCS5BMChTSFszXSkpOwotICAgQU8yMlg0IGcyOTM1ICguWShaWzldKSwgCi0JLkIxKG5fMjc4KSwgCi0JLkIwKG5fMCksIAotCS5BMShuXzYzKSwgCi0JLkEwKFNIWzNdKSk7Ci0gICBBTzIyWDQgZzI5MzYgKC5ZKFpbOF0pLCAKLQkuQjEobl8yNzkpLCAKLQkuQjAobl8wKSwgCi0JLkExKG5fNTgpLCAKLQkuQTAoU0hbM10pKTsKLSAgIEFPMjFYNCBnMjkzNyAoLlkoWlsyM10pLCAKLQkuQjAobl8zNCksIAotCS5BMShuXzI5MiksIAotCS5BMChTSFszXSkpOwotICAgQU8yMlg0IGcyOTM4ICguWShaWzE1XSksIAotCS5CMShuXzI5MiksIAotCS5CMChuXzApLCAKLQkuQTEobl8yOTQpLCAKLQkuQTAoU0hbM10pKTsKLSAgIEFPMjJYNCBnMjkzOSAoLlkoWlsxMV0pLCAKLQkuQjEobl8yODgpLCAKLQkuQjAobl8wKSwgCi0JLkExKG5fMzEwKSwgCi0JLkEwKFNIWzNdKSk7Ci0gICBPQTIxWDQgZzI5NDAgKC5ZKG5fMjcyKSwgCi0JLkIwKG5fNjApLCAKLQkuQTEobl8zMDEpLCAKLQkuQTAobl8yNykpOwotICAgT0EyMVg0IGcyOTQxICguWShuXzI3MyksIAotCS5CMChuXzYwKSwgCi0JLkExKG5fMjk1KSwgCi0JLkEwKG5fMjcpKTsKLSAgIE9BMjFYNCBnMjk0MiAoLlkobl8yNzQpLCAKLQkuQjAobl82MCksIAotCS5BMShuXzMwNiksIAotCS5BMChuXzI3KSk7Ci0gICBPQTIxWDQgZzI5NDMgKC5ZKG5fMjc1KSwgCi0JLkIwKG5fNjApLCAKLQkuQTEobl8yOTYpLCAKLQkuQTAobl8yNykpOwotICAgT0EyMlg0IGcyOTQ0ICguWShuXzI3NiksIAotCS5CMShuXzI5OSksIAotCS5CMChuXzIpLCAKLQkuQTEobl8yOTYpLCAKLQkuQTAoU0hbMl0pKTsKLSAgIEFPMjJYNCBnMjk0NSAoLlkobl8yNzcpLCAKLQkuQjEobl8zMDcpLCAKLQkuQjAobl8yKSwgCi0JLkExKG5fMzAwKSwgCi0JLkEwKFNIWzJdKSk7Ci0gICBPQTIyWDQgZzI5NDYgKC5ZKG5fMjc4KSwgCi0JLkIxKG5fMzAzKSwgCi0JLkIwKG5fMiksIAotCS5BMShuXzMwOSksIAotCS5BMChTSFsyXSkpOwotICAgT0EyMlg0IGcyOTQ3ICguWShuXzI3OSksIAotCS5CMShuXzMwNSksIAotCS5CMChuXzIpLCAKLQkuQTEobl8zMTEpLCAKLQkuQTAoU0hbMl0pKTsKLSAgIE9BMjJYNCBnMjk0OCAoLlkobl8yODApLCAKLQkuQjEobl8zMDYpLCAKLQkuQjAoU0hbMl0pLCAKLQkuQTEobl8zMDcpLCAKLQkuQTAobl8yKSk7Ci0gICBPQTIyWDQgZzI5NDkgKC5ZKG5fMjgxKSwgCi0JLkIxKG5fMzAwKSwgCi0JLkIwKFNIWzJdKSwgCi0JLkExKG5fMzA4KSwgCi0JLkEwKG5fMikpOwotICAgQU8yMlg0IGcyOTUwICguWShuXzI4MiksIAotCS5CMShuXzMwNSksIAotCS5CMChuXzIpLCAKLQkuQTEobl8yMSksIAotCS5BMChuXzMyKSk7Ci0gICBBTzIyWDQgZzI5NTEgKC5ZKG5fMjgzKSwgCi0JLkIxKG5fMzAzKSwgCi0JLkIwKG5fMiksIAotCS5BMShuXzMyNCksIAotCS5BMChuXzIxKSk7Ci0gICBPQTIyWDQgZzI5NTIgKC5ZKG5fMjg0KSwgCi0JLkIxKG5fMzA5KSwgCi0JLkIwKG5fMiksIAotCS5BMShuXzI5NyksIAotCS5BMChTSFsyXSkpOwotICAgT0EyMlg0IGcyOTUzICguWShuXzI4NSksIAotCS5CMShuXzI5NyksIAotCS5CMChuXzIpLCAKLQkuQTEobl8yOTUpLCAKLQkuQTAoU0hbMl0pKTsKLSAgIE9BMjJYNCBnMjk1NCAoLlkobl8yODYpLCAKLQkuQjEobl8yOTkpLCAKLQkuQjAoU0hbMl0pLCAKLQkuQTEobl8zMTEpLCAKLQkuQTAobl8yKSk7Ci0gICBJTlZYTCBnMyAoLlkobl8yODgpLCAKLQkuQShuXzI4NykpOwotICAgQU9JMjIxWDQgZzI5NTUgKC5ZKG5fMjg3KSwgCi0JLkMwKG5fMjk4KSwgCi0JLkIxKG5fMzIwKSwgCi0JLkIwKG5fMTMpLCAKLQkuQTEobl8zMTMpLCAKLQkuQTAobl8yOCkpOwotICAgSU5WWEwgZzI5NTYgKC5ZKG5fMjkyKSwgCi0JLkEobl8yOTEpKTsKLSAgIEFPSTIyMVg0IGcyOTU3ICguWShuXzI5MSksIAotCS5DMChuXzMwMiksIAotCS5CMShuXzMxMyksIAotCS5CMChuXzIxKSwgCi0JLkExKG5fMzE0KSwgCi0JLkEwKG5fMjgpKTsKLSAgIElOVlhMIGcyOTU4ICguWShuXzI5NCksIAotCS5BKG5fMjkzKSk7Ci0gICBBT0kyMjFYNCBnMjk1OSAoLlkobl8yOTMpLCAKLQkuQzAobl8zMDQpLCAKLQkuQjEobl8zMjIpLCAKLQkuQjAobl8yMSksIAotCS5BMShuXzMxNiksIAotCS5BMChuXzI4KSk7Ci0gICBPQTIxWDQgZzI5NjAgKC5ZKG5fMjk1KSwgCi0JLkIwKG5fMTQpLCAKLQkuQTEobl8zMTQpLCAKLQkuQTAobl8xKSk7Ci0gICBPQTIxWDQgZzI5NjEgKC5ZKG5fMjk2KSwgCi0JLkIwKG5fMTQpLCAKLQkuQTEobl8zMjYpLCAKLQkuQTAobl8xKSk7Ci0gICBBTzIyWDQgZzI5NjIgKC5ZKG5fMjk3KSwgCi0JLkIxKG5fMzEzKSwgCi0JLkIwKFNIWzFdKSwgCi0JLkExKG5fMzE3KSwgCi0JLkEwKG5fMSkpOwotICAgQU8yMlg0IGcyOTYzICguWShuXzI5OCksIAotCS5CMShuXzMxNSksIAotCS5CMChuXzE2KSwgCi0JLkExKG5fMzE2KSwgCi0JLkEwKG5fMjEpKTsKLSAgIE9BMjJYNCBnMjk2NCAoLlkobl8yOTkpLCAKLQkuQjEobl8zMTkpLCAKLQkuQjAobl8xKSwgCi0JLkExKG5fMzI1KSwgCi0JLkEwKFNIWzFdKSk7Ci0gICBBTzIyWDQgZzI5NjUgKC5ZKG5fMzAwKSwgCi0JLkIxKG5fMzEyKSwgCi0JLkIwKG5fMSksIAotCS5BMShuXzMxOCksIAotCS5BMChTSFsxXSkpOwotICAgT0EyMlg0IGcyOTY2ICguWShuXzMwMSksIAotCS5CMShuXzMxNyksIAotCS5CMChuXzEpLCAKLQkuQTEobl8zMTQpLCAKLQkuQTAoU0hbMV0pKTsKLSAgIEFPMjJYNCBnMjk2NyAoLlkobl8zMDIpLCAKLQkuQjEobl8zMjApLCAKLQkuQjAobl8xNiksIAotCS5BMShuXzMxNyksIAotCS5BMChuXzEzKSk7Ci0gICBBTzIyWDQgZzI5NjggKC5ZKG5fMzAzKSwgCi0JLkIxKG5fMzIyKSwgCi0JLkIwKFNIWzFdKSwgCi0JLkExKG5fMzE1KSwgCi0JLkEwKG5fMSkpOwotICAgQU8yMlg0IGcyOTY5ICguWShuXzMwNCksIAotCS5CMShuXzMyNCksIAotCS5CMChuXzE2KSwgCi0JLkExKG5fMzE1KSwgCi0JLkEwKG5fMTMpKTsKLSAgIEFPMjJYNCBnMjk3MCAoLlkobl8zMDUpLCAKLQkuQjEobl8zMjEpLCAKLQkuQjAoU0hbMV0pLCAKLQkuQTEobl8zMTgpLCAKLQkuQTAobl8xKSk7Ci0gICBPQTIyWDQgZzI5NzEgKC5ZKG5fMzA2KSwgCi0JLkIxKG5fMzI1KSwgCi0JLkIwKG5fMSksIAotCS5BMShuXzMyNiksIAotCS5BMChTSFsxXSkpOwotICAgQU8yMlg0IGcyOTcyICguWShuXzMwNyksIAotCS5CMShuXzMyMyksIAotCS5CMChTSFsxXSksIAotCS5BMShuXzMxOSksIAotCS5BMChuXzEpKTsKLSAgIEFPMjJYNCBnMjk3MyAoLlkobl8zMDgpLCAKLQkuQjEobl8zMjEpLCAKLQkuQjAobl8xKSwgCi0JLkExKG5fMzIpLCAKLQkuQTAoU0hbMV0pKTsKLSAgIEFPMjJYNCBnMjk3NCAoLlkobl8zMDkpLCAKLQkuQjEobl8zMTYpLCAKLQkuQjAoU0hbMV0pLCAKLQkuQTEobl8zMjApLCAKLQkuQTAobl8xKSk7Ci0gICBBTzIyWDQgZzI5NzUgKC5ZKG5fMzEwKSwgCi0JLkIxKG5fMzI0KSwgCi0JLkIwKG5fMTMpLCAKLQkuQTEobl8zMjIpLCAKLQkuQTAobl8yOCkpOwotICAgQU8yMlg0IGcyOTc2ICguWShuXzMxMSksIAotCS5CMShuXzMxMiksIAotCS5CMChTSFsxXSksIAotCS5BMShuXzMyMyksIAotCS5BMChuXzEpKTsKLSAgIE9BMjJYMSBnMjk3NyAoLlkobl8zMTIpLCAKLQkuQjEoU0hbMF0pLCAKLQkuQjAoQVs2XSksIAotCS5BMShuXzMpLCAKLQkuQTAoQVs1XSkpOwotICAgQU8yMlgyIGcyOTc4ICguWShuXzMxMyksIAotCS5CMShuXzMpLCAKLQkuQjAoQVsxMV0pLCAKLQkuQTEoU0hbMF0pLCAKLQkuQTAoQVsxMF0pKTsKLSAgIEFPMjJYMiBnMjk3OSAoLlkobl8zMTQpLCAKLQkuQjEobl8zKSwgCi0JLkIwKEFbMTVdKSwgCi0JLkExKFNIWzBdKSwgCi0JLkEwKEFbMTRdKSk7Ci0gICBBTzIyWDIgZzI5ODAgKC5ZKG5fMzE1KSwgCi0JLkIxKG5fMyksIAotCS5CMChBWzVdKSwgCi0JLkExKFNIWzBdKSwgCi0JLkEwKEFbNF0pKTsKLSAgIEFPMjJYMiBnMjk4MSAoLlkobl8zMTYpLCAKLQkuQjEobl8zKSwgCi0JLkIwKEFbN10pLCAKLQkuQTEoU0hbMF0pLCAKLQkuQTAoQVs2XSkpOwotICAgQU8yMlgyIGcyOTgyICguWShuXzMxNyksIAotCS5CMShuXzMpLCAKLQkuQjAoQVsxM10pLCAKLQkuQTEoU0hbMF0pLCAKLQkuQTAoQVsxMl0pKTsKLSAgIEFPMjJYMSBnMjk4MyAoLlkobl8zMTgpLCAKLQkuQjEobl8zKSwgCi0JLkIwKEFbNF0pLCAKLQkuQTEoU0hbMF0pLCAKLQkuQTAoQVszXSkpOwotICAgT0EyMlgxIGcyOTg0ICguWShuXzMxOSksIAotCS5CMShTSFswXSksIAotCS5CMChBWzEwXSksIAotCS5BMShuXzMpLCAKLQkuQTAoQVs5XSkpOwotICAgQU8yMlgyIGcyOTg1ICguWShuXzMyMCksIAotCS5CMShuXzMpLCAKLQkuQjAoQVs5XSksIAotCS5BMShTSFswXSksIAotCS5BMChBWzhdKSk7Ci0gICBBTzIyWDEgZzI5ODYgKC5ZKG5fMzIxKSwgCi0JLkIxKG5fMyksIAotCS5CMChBWzJdKSwgCi0JLkExKFNIWzBdKSwgCi0JLkEwKEFbMV0pKTsKLSAgIEFPMjJYMiBnMjk4NyAoLlkobl8zMjIpLCAKLQkuQjEobl8zKSwgCi0JLkIwKEFbM10pLCAKLQkuQTEoU0hbMF0pLCAKLQkuQTAoQVsyXSkpOwotICAgT0EyMlgxIGcyOTg4ICguWShuXzMyMyksIAotCS5CMShTSFswXSksIAotCS5CMChBWzhdKSwgCi0JLkExKG5fMyksIAotCS5BMChBWzddKSk7Ci0gICBBTzIyWDIgZzI5ODkgKC5ZKG5fMzI0KSwgCi0JLkIxKG5fMyksIAotCS5CMChBWzFdKSwgCi0JLkExKFNIWzBdKSwgCi0JLkEwKEFbMF0pKTsKLSAgIE9BMjJYMSBnMjk5MCAoLlkobl8zMjUpLCAKLQkuQjEoU0hbMF0pLCAKLQkuQjAoQVsxMl0pLCAKLQkuQTEobl8zKSwgCi0JLkEwKEFbMTFdKSk7Ci0gICBPQTIyWDEgZzI5OTEgKC5ZKG5fMzI2KSwgCi0JLkIxKFNIWzBdKSwgCi0JLkIwKEFbMTRdKSwgCi0JLkExKG5fMyksIAotCS5BMChBWzEzXSkpOwotZW5kbW9kdWxlCi0KLW1vZHVsZSBzaGlmdF9sZWZ0X3Vuc2lnbmVkICgKLQlBLCAKLQlTSCwgCi0JWik7Ci0gICBpbnB1dCBbMzE6MF0gQTsKLSAgIGlucHV0IFsyOjBdIFNIOwotICAgb3V0cHV0IFszMTowXSBaOwotCi0gICAvLyBJbnRlcm5hbCB3aXJlcwotICAgd2lyZSBuXzA7Ci0gICB3aXJlIG5fMTsKLSAgIHdpcmUgbl8yOwotICAgd2lyZSBuXzQ7Ci0gICB3aXJlIG5fMTg7Ci0gICB3aXJlIG5fMjE7Ci0gICB3aXJlIG5fNDQ7Ci0gICB3aXJlIG5fNzk7Ci0gICB3aXJlIG5fODM7Ci0gICB3aXJlIG5fODQ7Ci0gICB3aXJlIG5fODg7Ci0gICB3aXJlIG5fMTU2OwotICAgd2lyZSBuXzE1NzsKLSAgIHdpcmUgbl8xNzE7Ci0gICB3aXJlIG5fMTcyOwotICAgd2lyZSBuXzIxNjsKLSAgIHdpcmUgbl8yMTg7Ci0gICB3aXJlIG5fMjMxOwotICAgd2lyZSBuXzIzMzsKLSAgIHdpcmUgbl8yNDA7Ci0gICB3aXJlIG5fMjQxOwotICAgd2lyZSBuXzI0MjsKLSAgIHdpcmUgbl8yNDM7Ci0gICB3aXJlIG5fMjQ0OwotICAgd2lyZSBuXzI0NTsKLSAgIHdpcmUgbl8yNDY7Ci0gICB3aXJlIG5fMjQ3OwotICAgd2lyZSBuXzI0ODsKLSAgIHdpcmUgbl8yNDk7Ci0gICB3aXJlIG5fMjUwOwotICAgd2lyZSBuXzI1MTsKLSAgIHdpcmUgbl8yNTI7Ci0gICB3aXJlIG5fMjUzOwotICAgd2lyZSBuXzI1NDsKLSAgIHdpcmUgbl8yNTU7Ci0gICB3aXJlIG5fMjU2OwotICAgd2lyZSBuXzI1NzsKLSAgIHdpcmUgbl8yNTg7Ci0gICB3aXJlIG5fMjU5OwotICAgd2lyZSBuXzI2MDsKLSAgIHdpcmUgbl8yNjE7Ci0gICB3aXJlIG5fMjYyOwotICAgd2lyZSBuXzI2MzsKLSAgIHdpcmUgbl8yNjQ7Ci0gICB3aXJlIG5fMjY1OwotICAgd2lyZSBuXzI2NjsKLSAgIHdpcmUgbl8yNjc7Ci0gICB3aXJlIG5fMjY4OwotICAgd2lyZSBuXzI2OTsKLSAgIHdpcmUgbl8yNzA7Ci0gICB3aXJlIG5fMjcxOwotICAgd2lyZSBuXzI3MjsKLSAgIHdpcmUgbl8yNzM7Ci0gICB3aXJlIG5fMjc0OwotICAgd2lyZSBuXzI3NTsKLSAgIHdpcmUgbl8yNzY7Ci0gICB3aXJlIG5fMjc3OwotCi0gICBBTkQyWDEgZzE3MTcgKC5ZKG5fMTcyKSwgCi0JLkIobl8yNDIpLCAKLQkuQShTSFsyXSkpOwotICAgQU5EMlgxIGcxNzE4ICguWShuXzE3MSksIAotCS5CKG5fMjQ0KSwgCi0JLkEoU0hbMl0pKTsKLSAgIEFORDJYMSBnMTczMiAoLlkobl8xNTcpLCAKLQkuQihuXzI0MyksIAotCS5BKG5fMCkpOwotICAgQU5EMlgxIGcxNzMzICguWShuXzE1NiksIAotCS5CKG5fMjQ1KSwgCi0JLkEobl8wKSk7Ci0gICBBTkQyWDEgZzE3ODUgKC5ZKG5fODgpLCAKLQkuQihuXzI2MCksIAotCS5BKG5fNDQpKTsKLSAgIEFORDJYMSBnMTc4OSAoLlkobl84NCksIAotCS5CKG5fMjY2KSwgCi0JLkEobl80KSk7Ci0gICBBTkQyWDEgZzE3OTAgKC5ZKG5fODMpLCAKLQkuQihuXzI1NCksIAotCS5BKG5fNDQpKTsKLSAgIEFORDJYMSBnMTc5NCAoLlkobl83OSksIAotCS5CKG5fMjcxKSwgCi0JLkEobl80KSk7Ci0gICBBTkQyWDIgZzE4MjkgKC5ZKG5fNDQpLCAKLQkuQihuXzIpLCAKLQkuQShTSFsyXSkpOwotICAgQU5EMlgyIGcxODUyICguWShuXzIxKSwgCi0JLkIobl8yKSwgCi0JLkEobl8wKSk7Ci0gICBBTkQyWDIgZzE4NTUgKC5ZKG5fMTgpLCAKLQkuQihTSFsyXSksIAotCS5BKFNIWzFdKSk7Ci0gICBBTkQyWDIgZzE4NjkgKC5ZKG5fNCksIAotCS5CKG5fMCksIAotCS5BKFNIWzFdKSk7Ci0gICBDTEtJTlZYMiBnMTg3MSAoLlkobl8yKSwgCi0JLkEoU0hbMV0pKTsKLSAgIENMS0lOVlgzIGcxODcyICguWShuXzEpLCAKLQkuQShTSFswXSkpOwotICAgQ0xLSU5WWDIgZzE4NzMgKC5ZKG5fMCksIAotCS5BKFNIWzJdKSk7Ci0gICBJTlZYTCBnMyAoLlkoWlszMV0pLCAKLQkuQShuXzIxNikpOwotICAgQU9JMjExWDQgZzIgKC5ZKG5fMjE2KSwgCi0JLkMwKG5fMTcyKSwgCi0JLkIwKG5fNzkpLCAKLQkuQTEobl8yNTkpLCAKLQkuQTAobl8yMSkpOwotICAgSU5WWEwgZzE4NzQgKC5ZKFpbMzBdKSwgCi0JLkEobl8yMTgpKTsKLSAgIEFPSTIxMVg0IGcxODc1ICguWShuXzIxOCksIAotCS5DMChuXzE3MSksIAotCS5CMChuXzg0KSwgCi0JLkExKG5fMjY4KSwgCi0JLkEwKG5fMjEpKTsKLSAgIElOVlhMIGcxODc2ICguWShaWzI4XSksIAotCS5BKG5fMjc0KSk7Ci0gICBBTzIyWDQgZzE4NzggKC5ZKFpbMjJdKSwgCi0JLkIxKG5fMjQwKSwgCi0JLkIwKFNIWzJdKSwgCi0JLkExKG5fMjQ3KSwgCi0JLkEwKG5fMCkpOwotICAgQU8yMlg0IGcxODc5ICguWShaWzIxXSksIAotCS5CMShuXzI0MyksIAotCS5CMChTSFsyXSksIAotCS5BMShuXzI0OCksIAotCS5BMChuXzApKTsKLSAgIEFPMjJYNCBnMTg4MCAoLlkoWlsyN10pLCAKLQkuQjEobl8yNDYpLCAKLQkuQjAoU0hbMl0pLCAKLQkuQTEobl8yNDIpLCAKLQkuQTAobl8wKSk7Ci0gICBBTzIyWDQgZzE4ODEgKC5ZKFpbMjBdKSwgCi0JLkIxKG5fMjQ1KSwgCi0JLkIwKFNIWzJdKSwgCi0JLkExKG5fMjQ5KSwgCi0JLkEwKG5fMCkpOwotICAgSU5WWEwgZzE4ODIgKC5ZKFpbMTldKSwgCi0JLkEobl8yNzUpKTsKLSAgIEFPMjJYNCBnMTg4NCAoLlkoWlsyNl0pLCAKLQkuQjEobl8yNDcpLCAKLQkuQjAoU0hbMl0pLCAKLQkuQTEobl8yNDQpLCAKLQkuQTAobl8wKSk7Ci0gICBJTlZYTCBnMTg4NSAoLlkoWlsxOF0pLCAKLQkuQShuXzI3NikpOwotICAgSU5WWEwgZzE4ODcgKC5ZKFpbMTddKSwgCi0JLkEobl8yMzEpKTsKLSAgIEFPSTIxMVg0IGcxODg4ICguWShuXzIzMSksIAotCS5DMChuXzE1NyksIAotCS5CMChuXzg4KSwgCi0JLkExKG5fMjY0KSwgCi0JLkEwKG5fMTgpKTsKLSAgIElOVlhMIGcxODg5ICguWShaWzE2XSksIAotCS5BKG5fMjMzKSk7Ci0gICBBT0kyMTFYNCBnMTg5MCAoLlkobl8yMzMpLCAKLQkuQzAobl8xNTYpLCAKLQkuQjAobl84MyksIAotCS5BMShuXzI2NSksIAotCS5BMChuXzE4KSk7Ci0gICBJTlZYTCBnMTg5MSAoLlkoWlsyOV0pLCAKLQkuQShuXzI3NykpOwotICAgQU8yMlg0IGcxODkzICguWShaWzI1XSksIAotCS5CMShuXzI0OCksIAotCS5CMChTSFsyXSksIAotCS5BMShuXzI1MCksIAotCS5BMChuXzApKTsKLSAgIEFPMjJYNCBnMTg5NCAoLlkoWlsyNF0pLCAKLQkuQjEobl8yNDkpLCAKLQkuQjAoU0hbMl0pLCAKLQkuQTEobl8yNDEpLCAKLQkuQTAobl8wKSk7Ci0gICBBTzIyWDQgZzE4OTUgKC5ZKFpbMjNdKSwgCi0JLkIxKG5fMjUxKSwgCi0JLkIwKFNIWzJdKSwgCi0JLkExKG5fMjQ2KSwgCi0JLkEwKG5fMCkpOwotICAgQU8yMlg0IGcxODk2ICguWShuXzI0MCksIAotCS5CMShuXzI1MyksIAotCS5CMChTSFsxXSksIAotCS5BMShuXzI3MCksIAotCS5BMChuXzIpKTsKLSAgIEFPMjJYNCBnMTg5NyAoLlkobl8yNDEpLCAKLQkuQjEobl8yNTUpLCAKLQkuQjAoU0hbMV0pLCAKLQkuQTEobl8yNTgpLCAKLQkuQTAobl8yKSk7Ci0gICBBTzIyWDQgZzE4OTggKC5ZKG5fMjQyKSwgCi0JLkIxKG5fMjY3KSwgCi0JLkIwKFNIWzFdKSwgCi0JLkExKG5fMjY5KSwgCi0JLkEwKG5fMikpOwotICAgQU8yMlg0IGcxODk5ICguWShuXzI0MyksIAotCS5CMShuXzI1MiksIAotCS5CMChTSFsxXSksIAotCS5BMShuXzI3MyksIAotCS5BMChuXzIpKTsKLSAgIEFPMjJYNCBnMTkwMCAoLlkobl8yNDQpLCAKLQkuQjEobl8yNTgpLCAKLQkuQjAoU0hbMV0pLCAKLQkuQTEobl8yNjIpLCAKLQkuQTAobl8yKSk7Ci0gICBBTzIyWDQgZzE5MDEgKC5ZKG5fMjQ1KSwgCi0JLkIxKG5fMjU3KSwgCi0JLkIwKFNIWzFdKSwgCi0JLkExKG5fMjUzKSwgCi0JLkEwKG5fMikpOwotICAgQU8yMlg0IGcxOTAyICguWShuXzI0NiksIAotCS5CMShuXzI2MSksIAotCS5CMChTSFsxXSksIAotCS5BMShuXzI3MiksIAotCS5BMChuXzIpKTsKLSAgIEFPMjJYNCBnMTkwMyAoLlkobl8yNDcpLCAKLQkuQjEobl8yNjMpLCAKLQkuQjAoU0hbMV0pLCAKLQkuQTEobl8yNTUpLCAKLQkuQTAobl8yKSk7Ci0gICBBTzIyWDQgZzE5MDQgKC5ZKG5fMjQ4KSwgCi0JLkIxKG5fMjU2KSwgCi0JLkIwKFNIWzFdKSwgCi0JLkExKG5fMjYxKSwgCi0JLkEwKG5fMikpOwotICAgQU8yMlg0IGcxOTA1ICguWShuXzI0OSksIAotCS5CMShuXzI3MCksIAotCS5CMChTSFsxXSksIAotCS5BMShuXzI2MyksIAotCS5BMChuXzIpKTsKLSAgIEFPMjJYNCBnMTkwNiAoLlkobl8yNTApLCAKLQkuQjEobl8yNzIpLCAKLQkuQjAoU0hbMV0pLCAKLQkuQTEobl8yNjcpLCAKLQkuQTAobl8yKSk7Ci0gICBBTzIyWDQgZzE5MDcgKC5ZKG5fMjUxKSwgCi0JLkIxKG5fMjczKSwgCi0JLkIwKFNIWzFdKSwgCi0JLkExKG5fMjU2KSwgCi0JLkEwKG5fMikpOwotICAgT0EyMlg0IGcxOTA4ICguWShuXzI1MiksIAotCS5CMShTSFswXSksIAotCS5CMChBWzE1XSksIAotCS5BMShuXzEpLCAKLQkuQTAoQVsxNF0pKTsKLSAgIE9BMjJYNCBnMTkwOSAoLlkobl8yNTMpLCAKLQkuQjEoU0hbMF0pLCAKLQkuQjAoQVsxNl0pLCAKLQkuQTEobl8xKSwgCi0JLkEwKEFbMTVdKSk7Ci0gICBPQTIyWDQgZzE5MTAgKC5ZKG5fMjU0KSwgCi0JLkIxKFNIWzBdKSwgCi0JLkIwKEFbMTJdKSwgCi0JLkExKG5fMSksIAotCS5BMChBWzExXSkpOwotICAgT0EyMlg0IGcxOTExICguWShuXzI1NSksIAotCS5CMShTSFswXSksIAotCS5CMChBWzIyXSksIAotCS5BMShuXzEpLCAKLQkuQTAoQVsyMV0pKTsKLSAgIE9BMjJYNCBnMTkxMiAoLlkobl8yNTYpLCAKLQkuQjEoU0hbMF0pLCAKLQkuQjAoQVsxOV0pLCAKLQkuQTEobl8xKSwgCi0JLkEwKEFbMThdKSk7Ci0gICBPQTIyWDQgZzE5MTMgKC5ZKG5fMjU3KSwgCi0JLkIxKFNIWzBdKSwgCi0JLkIwKEFbMTRdKSwgCi0JLkExKG5fMSksIAotCS5BMChBWzEzXSkpOwotICAgT0EyMlg0IGcxOTE0ICguWShuXzI1OCksIAotCS5CMShTSFswXSksIAotCS5CMChBWzI0XSksIAotCS5BMShuXzEpLCAKLQkuQTAoQVsyM10pKTsKLSAgIEFPMjJYNCBnMTkxNSAoLlkobl8yNTkpLCAKLQkuQjEobl8xKSwgCi0JLkIwKEFbMzFdKSwgCi0JLkExKFNIWzBdKSwgCi0JLkEwKEFbMzBdKSk7Ci0gICBPQTIyWDQgZzE5MTYgKC5ZKG5fMjYwKSwgCi0JLkIxKFNIWzBdKSwgCi0JLkIwKEFbMTNdKSwgCi0JLkExKG5fMSksIAotCS5BMChBWzEyXSkpOwotICAgT0EyMlg0IGcxOTE3ICguWShuXzI2MSksIAotCS5CMShTSFswXSksIAotCS5CMChBWzIxXSksIAotCS5BMShuXzEpLCAKLQkuQTAoQVsyMF0pKTsKLSAgIE9BMjJYNCBnMTkxOCAoLlkobl8yNjIpLCAKLQkuQjEoU0hbMF0pLCAKLQkuQjAoQVsyNl0pLCAKLQkuQTEobl8xKSwgCi0JLkEwKEFbMjVdKSk7Ci0gICBPQTIyWDQgZzE5MTkgKC5ZKG5fMjYzKSwgCi0JLkIxKFNIWzBdKSwgCi0JLkIwKEFbMjBdKSwgCi0JLkExKG5fMSksIAotCS5BMChBWzE5XSkpOwotICAgQU8yMlg0IGcxOTIwICguWShuXzI2NCksIAotCS5CMShuXzEpLCAKLQkuQjAoQVsxMV0pLCAKLQkuQTEoU0hbMF0pLCAKLQkuQTAoQVsxMF0pKTsKLSAgIEFPMjJYNCBnMTkyMSAoLlkobl8yNjUpLCAKLQkuQjEobl8xKSwgCi0JLkIwKEFbMTBdKSwgCi0JLkExKFNIWzBdKSwgCi0JLkEwKEFbOV0pKTsKLSAgIE9BMjJYNCBnMTkyMiAoLlkobl8yNjYpLCAKLQkuQjEoU0hbMF0pLCAKLQkuQjAoQVsyOF0pLCAKLQkuQTEobl8xKSwgCi0JLkEwKEFbMjddKSk7Ci0gICBPQTIyWDQgZzE5MjMgKC5ZKG5fMjY3KSwgCi0JLkIxKFNIWzBdKSwgCi0JLkIwKEFbMjVdKSwgCi0JLkExKG5fMSksIAotCS5BMChBWzI0XSkpOwotICAgQU8yMlg0IGcxOTI0ICguWShuXzI2OCksIAotCS5CMShuXzEpLCAKLQkuQjAoQVszMF0pLCAKLQkuQTEoU0hbMF0pLCAKLQkuQTAoQVsyOV0pKTsKLSAgIE9BMjJYNCBnMTkyNSAoLlkobl8yNjkpLCAKLQkuQjEoU0hbMF0pLCAKLQkuQjAoQVsyN10pLCAKLQkuQTEobl8xKSwgCi0JLkEwKEFbMjZdKSk7Ci0gICBPQTIyWDQgZzE5MjYgKC5ZKG5fMjcwKSwgCi0JLkIxKFNIWzBdKSwgCi0JLkIwKEFbMThdKSwgCi0JLkExKG5fMSksIAotCS5BMChBWzE3XSkpOwotICAgT0EyMlgyIGcxOTI3ICguWShuXzI3MSksIAotCS5CMShTSFswXSksIAotCS5CMChBWzI5XSksIAotCS5BMShuXzEpLCAKLQkuQTAoQVsyOF0pKTsKLSAgIE9BMjJYMSBnMTkyOCAoLlkobl8yNzIpLCAKLQkuQjEoU0hbMF0pLCAKLQkuQjAoQVsyM10pLCAKLQkuQTEobl8xKSwgCi0JLkEwKEFbMjJdKSk7Ci0gICBPQTIyWDEgZzE5MjkgKC5ZKG5fMjczKSwgCi0JLkIxKFNIWzBdKSwgCi0JLkIwKEFbMTddKSwgCi0JLkExKG5fMSksIAotCS5BMChBWzE2XSkpOwotICAgQU9JMjIyWDQgZzE5MzAgKC5ZKG5fMjc0KSwgCi0JLkMxKG5fMjQxKSwgCi0JLkMwKFNIWzJdKSwgCi0JLkIxKG5fMjYyKSwgCi0JLkIwKG5fNCksIAotCS5BMShuXzI2NiksIAotCS5BMChuXzIxKSk7Ci0gICBBT0kyMjJYNCBnMTkzMSAoLlkobl8yNzUpLCAKLQkuQzEobl8yNTEpLCAKLQkuQzAobl8wKSwgCi0JLkIxKG5fMjYwKSwgCi0JLkIwKG5fMTgpLCAKLQkuQTEobl8yNTIpLCAKLQkuQTAobl80NCkpOwotICAgQU9JMjIyWDQgZzE5MzIgKC5ZKG5fMjc2KSwgCi0JLkMxKG5fMjQwKSwgCi0JLkMwKG5fMCksIAotCS5CMShuXzI1NCksIAotCS5CMChuXzE4KSwgCi0JLkExKG5fMjU3KSwgCi0JLkEwKG5fNDQpKTsKLSAgIEFPSTIyMlg0IGcxOTMzICguWShuXzI3NyksIAotCS5DMShuXzI1MCksIAotCS5DMChTSFsyXSksIAotCS5CMShuXzI2OSksIAotCS5CMChuXzQpLCAKLQkuQTEobl8yNzEpLCAKLQkuQTAobl8yMSkpOwotZW5kbW9kdWxlCi0KLW1vZHVsZSB0ZHNwX2NvcmVfZ2x1ZSAoCi0JYWRkcnNfaW4sIAotCWRhdGFfaW4sIAotCXBfYWRkcnNfaW4sIAotCXBfZGF0YV9pbiwgCi0JcG9ydF9hZGRyc19pbiwgCi0JcG9ydF9kYXRhX2luLCAKLQlhciwgCi0JcmVzX2FkciwgCi0JcmVzX3BvcnRfYWRyLCAKLQlzZV9zaGlmdF9tZHIsIAotCXplX21kciwgCi0JYWx1X291dCwgCi0JZ29fcHJvZywgCi0JcmVhZF9wcm9nLCAKLQlnb19kYXRhLCAKLQlyZWFkX2RhdGEsIAotCWdvX3BvcnQsIAotCXJlYWRfcG9ydCwgCi0JcGNfYWNjLCAKLQlhcnAsIAotCWFyMSwgCi0JYXIwLCAKLQlkcCwgCi0JaXIsIAotCXBkciwgCi0Jb3BhLCAKLQlvcGIsIAotCW1kciwgCi0JYWNjLCAKLQlwYywgCi0JZGF0YV9vdXQsIAotCXBfZGF0YV9vdXQsIAotCXBvcnRfZGF0YV9vdXQsIAotCXRvcCwgCi0JcCwgCi0JYWx1X2NtZCwgCi0Jc2VsX29wX2EsIAotCXNlbF9vcF9iLCAKLQlkZWNfZ29fcHJvZywgCi0JZW5jX2dvX3Byb2csIAotCWRlY19yZWFkX3Byb2csIAotCWVuY19yZWFkX3Byb2csIAotCWRlY19nb19kYXRhLCAKLQllbmNfZ29fZGF0YSwgCi0JZGVjX3JlYWRfZGF0YSwgCi0JZW5jX3JlYWRfZGF0YSwgCi0JZGVjX2dvX3BvcnQsIAotCWVuY19nb19wb3J0LCAKLQlkZWNfcmVhZF9wb3J0LCAKLQllbmNfcmVhZF9wb3J0LCAKLQlkbW92X2luYyk7Ci0gICBvdXRwdXQgWzc6MF0gYWRkcnNfaW47Ci0gICBvdXRwdXQgWzE1OjBdIGRhdGFfaW47Ci0gICBvdXRwdXQgWzg6MF0gcF9hZGRyc19pbjsKLSAgIG91dHB1dCBbMTU6MF0gcF9kYXRhX2luOwotICAgb3V0cHV0IFsyOjBdIHBvcnRfYWRkcnNfaW47Ci0gICBvdXRwdXQgWzE1OjBdIHBvcnRfZGF0YV9pbjsKLSAgIG91dHB1dCBbMTU6MF0gYXI7Ci0gICBvdXRwdXQgWzc6MF0gcmVzX2FkcjsKLSAgIG91dHB1dCBbNzowXSByZXNfcG9ydF9hZHI7Ci0gICBvdXRwdXQgWzMxOjBdIHNlX3NoaWZ0X21kcjsKLSAgIG91dHB1dCBbMzE6MF0gemVfbWRyOwotICAgb3V0cHV0IFsxNTowXSBhbHVfb3V0OwotICAgb3V0cHV0IGdvX3Byb2c7Ci0gICBvdXRwdXQgcmVhZF9wcm9nOwotICAgb3V0cHV0IGdvX2RhdGE7Ci0gICBvdXRwdXQgcmVhZF9kYXRhOwotICAgb3V0cHV0IGdvX3BvcnQ7Ci0gICBvdXRwdXQgcmVhZF9wb3J0OwotICAgaW5wdXQgcGNfYWNjOwotICAgaW5wdXQgYXJwOwotICAgaW5wdXQgWzE1OjBdIGFyMTsKLSAgIGlucHV0IFsxNTowXSBhcjA7Ci0gICBpbnB1dCBkcDsKLSAgIGlucHV0IFsxNTowXSBpcjsKLSAgIG91dHB1dCBbMTU6MF0gcGRyOwotICAgb3V0cHV0IFszMTowXSBvcGE7Ci0gICBvdXRwdXQgWzMxOjBdIG9wYjsKLSAgIG91dHB1dCBbMTU6MF0gbWRyOwotICAgaW5wdXQgWzMyOjBdIGFjYzsKLSAgIGlucHV0IFsxNTowXSBwYzsKLSAgIGlucHV0IFsxNTowXSBkYXRhX291dDsKLSAgIGlucHV0IFsxNTowXSBwX2RhdGFfb3V0OwotICAgaW5wdXQgWzE1OjBdIHBvcnRfZGF0YV9vdXQ7Ci0gICBpbnB1dCBbMTU6MF0gdG9wOwotICAgaW5wdXQgWzMxOjBdIHA7Ci0gICBpbnB1dCBbMzowXSBhbHVfY21kOwotICAgaW5wdXQgWzI6MF0gc2VsX29wX2E7Ci0gICBpbnB1dCBbMjowXSBzZWxfb3BfYjsKLSAgIGlucHV0IGRlY19nb19wcm9nOwotICAgaW5wdXQgZW5jX2dvX3Byb2c7Ci0gICBpbnB1dCBkZWNfcmVhZF9wcm9nOwotICAgaW5wdXQgZW5jX3JlYWRfcHJvZzsKLSAgIGlucHV0IGRlY19nb19kYXRhOwotICAgaW5wdXQgZW5jX2dvX2RhdGE7Ci0gICBpbnB1dCBkZWNfcmVhZF9kYXRhOwotICAgaW5wdXQgZW5jX3JlYWRfZGF0YTsKLSAgIGlucHV0IGRlY19nb19wb3J0OwotICAgaW5wdXQgZW5jX2dvX3BvcnQ7Ci0gICBpbnB1dCBkZWNfcmVhZF9wb3J0OwotICAgaW5wdXQgZW5jX3JlYWRfcG9ydDsKLSAgIGlucHV0IGRtb3ZfaW5jOwotCi0gICAvLyBJbnRlcm5hbCB3aXJlcwotICAgd2lyZSBVTkNPTk5FQ1RFRDM7Ci0gICB3aXJlIFVOQ09OTkVDVEVENDsKLSAgIHdpcmUgVU5DT05ORUNURUQ1OwotICAgd2lyZSBVTkNPTk5FQ1RFRDY7Ci0gICB3aXJlIFVOQ09OTkVDVEVENzsKLSAgIHdpcmUgVU5DT05ORUNURUQ4OwotICAgd2lyZSBVTkNPTk5FQ1RFRDk7Ci0gICB3aXJlIFVOQ09OTkVDVEVEMTA7Ci0gICB3aXJlIFVOQ09OTkVDVEVEMTE7Ci0gICB3aXJlIFVOQ09OTkVDVEVEMTI7Ci0gICB3aXJlIFVOQ09OTkVDVEVEMTM7Ci0gICB3aXJlIFVOQ09OTkVDVEVEMTQ7Ci0gICB3aXJlIFVOQ09OTkVDVEVEMTU7Ci0gICB3aXJlIFVOQ09OTkVDVEVEMTY7Ci0gICB3aXJlIFVOQ09OTkVDVEVEMTc7Ci0gICB3aXJlIFVOQ09OTkVDVEVEMTg7Ci0gICB3aXJlIFVOQ09OTkVDVEVEMTk7Ci0gICB3aXJlIFVOQ09OTkVDVEVEMjA7Ci0gICB3aXJlIG5fMDsKLSAgIHdpcmUgbl8yOwotICAgd2lyZSBuXzY7Ci0gICB3aXJlIG5fNzsKLSAgIHdpcmUgbl84OwotICAgd2lyZSBuXzk7Ci0gICB3aXJlIG5fMTE7Ci0gICB3aXJlIG5fMTI7Ci0gICB3aXJlIG5fMTQ7Ci0gICB3aXJlIG5fMTU7Ci0gICB3aXJlIG5fMTY7Ci0gICB3aXJlIG5fMTc7Ci0gICB3aXJlIG5fMTg7Ci0gICB3aXJlIG5fMjA7Ci0gICB3aXJlIG5fMjE7Ci0gICB3aXJlIG5fMjI7Ci0gICB3aXJlIG5fMjM7Ci0gICB3aXJlIG5fMjg7Ci0gICB3aXJlIG5fMjk7Ci0gICB3aXJlIG5fMzA7Ci0gICB3aXJlIG5fMzI7Ci0gICB3aXJlIG5fNDA7Ci0gICB3aXJlIG5fNDE7Ci0gICB3aXJlIG5fNDI7Ci0gICB3aXJlIG5fNDM7Ci0gICB3aXJlIG5fNDQ7Ci0gICB3aXJlIG5fNDU7Ci0gICB3aXJlIG5fNDY7Ci0gICB3aXJlIG5fNDc7Ci0gICB3aXJlIG5fNDg7Ci0gICB3aXJlIG5fNDk7Ci0gICB3aXJlIG5fNTA7Ci0gICB3aXJlIG5fNTE7Ci0gICB3aXJlIG5fNTc7Ci0gICB3aXJlIG5fNjA7Ci0gICB3aXJlIG5fNzE7Ci0gICB3aXJlIG5fNzg7Ci0gICB3aXJlIG5fODc7Ci0gICB3aXJlIG5fOTU7Ci0gICB3aXJlIG5fOTY7Ci0gICB3aXJlIG5fMTExOwotICAgd2lyZSBuXzExODsKLSAgIHdpcmUgbl8xMTk7Ci0gICB3aXJlIG5fMTIwOwotICAgd2lyZSBuXzEyMTsKLSAgIHdpcmUgbl8xMjI7Ci0gICB3aXJlIG5fMTI0OwotICAgd2lyZSBuXzE0MDsKLSAgIHdpcmUgbl8xNTE7Ci0gICB3aXJlIG5fMTk3OwotICAgd2lyZSBuXzIwMzsKLSAgIHdpcmUgbl8yMzY7Ci0gICB3aXJlIG5fMzE3OwotICAgd2lyZSBuXzM1NDsKLSAgIHdpcmUgbl8zNjc7Ci0gICB3aXJlIG5fMzg4OwotICAgd2lyZSBuXzM5NjsKLSAgIHdpcmUgbl8zOTg7Ci0gICB3aXJlIG5fNDAxOwotICAgd2lyZSBuXzQyMjsKLSAgIHdpcmUgbl80Mjg7Ci0gICB3aXJlIG5fNDI5OwotICAgd2lyZSBuXzQzMTsKLSAgIHdpcmUgbl80Nzc7Ci0gICB3aXJlIG5fNTM4OwotICAgd2lyZSBuXzU4NTsKLSAgIHdpcmUgbl82MDM7Ci0gICB3aXJlIG5fNjA0OwotICAgd2lyZSBuXzYwNjsKLSAgIHdpcmUgbl83NTE7Ci0gICB3aXJlIG5fNzUyOwotICAgd2lyZSBuXzc1MzsKLSAgIHdpcmUgbl83NTQ7Ci0gICB3aXJlIG5fNzU1OwotICAgd2lyZSBuXzc1NjsKLSAgIHdpcmUgbl83NTc7Ci0gICB3aXJlIG5fNzU4OwotICAgd2lyZSBuXzc1OTsKLSAgIHdpcmUgbl83NjA7Ci0gICB3aXJlIG5fNzYxOwotICAgd2lyZSBuXzc2MjsKLSAgIHdpcmUgbl83NjM7Ci0gICB3aXJlIG5fNzY0OwotICAgd2lyZSBuXzc2NTsKLSAgIHdpcmUgbl83NjY7Ci0gICB3aXJlIG5fOTQ4OwotICAgd2lyZSBuXzk0OTsKLSAgIHdpcmUgbl85NTA7Ci0gICB3aXJlIG5fMTExOTsKLSAgIHdpcmUgbl8xMTIxOwotICAgd2lyZSBuXzExMjM7Ci0gICB3aXJlIG5fMTEyNTsKLSAgIHdpcmUgbl8xMTI3OwotICAgd2lyZSBuXzExMjk7Ci0gICB3aXJlIG5fMTEzMTsKLSAgIHdpcmUgbl8xMTMzOwotICAgd2lyZSBuXzExMzU7Ci0gICB3aXJlIG5fMTEzNzsKLSAgIHdpcmUgbl8xMTM5OwotICAgd2lyZSBuXzExNDY7Ci0gICB3aXJlIG5fMTE0NzsKLSAgIHdpcmUgbl8xMTQ4OwotICAgd2lyZSBuXzExNDk7Ci0gICB3aXJlIG5fMTE1MDsKLSAgIHdpcmUgbl8xMTUxOwotICAgd2lyZSBuXzExNTI7Ci0gICB3aXJlIG5fMTE1MzsKLSAgIHdpcmUgbl8xMTU0OwotICAgd2lyZSBuXzExNTU7Ci0gICB3aXJlIG5fMTE1NjsKLSAgIHdpcmUgbl8xMTU3OwotICAgd2lyZSBuXzExNTg7Ci0gICB3aXJlIG5fMTE1OTsKLSAgIHdpcmUgbl8xMTYwOwotICAgd2lyZSBuXzExNjE7Ci0gICB3aXJlIG5fMTE2MjsKLSAgIHdpcmUgbl8xMTYzOwotICAgd2lyZSBuXzExNjQ7Ci0gICB3aXJlIG5fMTE2NTsKLSAgIHdpcmUgbl8xMTY2OwotICAgd2lyZSBuXzExNjc7Ci0gICB3aXJlIG5fMTE2ODsKLSAgIHdpcmUgbl8xMTY5OwotICAgd2lyZSBuXzExNzA7Ci0gICB3aXJlIG5fMTE3MTsKLSAgIHdpcmUgbl8xMTcyOwotICAgd2lyZSBuXzExNzM7Ci0gICB3aXJlIG5fMTE3NDsKLSAgIHdpcmUgbl8xMTc1OwotICAgd2lyZSBuXzExNzY7Ci0gICB3aXJlIG5fMTE3NzsKLSAgIHdpcmUgbl8xMTc4OwotICAgd2lyZSBuXzExNzk7Ci0gICB3aXJlIG5fMTE4MDsKLSAgIHdpcmUgbl8xMTgxOwotICAgd2lyZSBuXzExODI7Ci0gICB3aXJlIG5fMTE4MzsKLSAgIHdpcmUgbl8xMTg0OwotICAgd2lyZSBuXzExODU7Ci0gICB3aXJlIG5fMTE4NjsKLSAgIHdpcmUgbl8xMTg3OwotICAgd2lyZSBuXzExODg7Ci0gICB3aXJlIG5fMTE4OTsKLSAgIHdpcmUgbl8xMTkwOwotICAgd2lyZSBuXzExOTE7Ci0gICB3aXJlIG5fMTE5MjsKLSAgIHdpcmUgbl8xMTkzOwotICAgd2lyZSBuXzExOTQ7Ci0gICB3aXJlIG5fMTE5NTsKLSAgIHdpcmUgbl8xMTk2OwotICAgd2lyZSBuXzExOTc7Ci0gICB3aXJlIG5fMTE5ODsKLSAgIHdpcmUgbl8xMTk5OwotICAgd2lyZSBuXzEyMDA7Ci0gICB3aXJlIG5fMTIwMTsKLSAgIHdpcmUgbl8xMjAyOwotICAgd2lyZSBuXzEyMDM7Ci0gICB3aXJlIG5fMTIwNDsKLSAgIHdpcmUgbl8xMjA1OwotICAgd2lyZSBuXzEyMDY7Ci0gICB3aXJlIG5fMTIwNzsKLSAgIHdpcmUgbl8xMjA4OwotICAgd2lyZSBuXzEyMDk7Ci0gICB3aXJlIG5fMTIxMDsKLSAgIHdpcmUgbl8xMjExOwotICAgd2lyZSBuXzEyMTI7Ci0gICB3aXJlIG5fMTIxNDsKLSAgIHdpcmUgbl8xMjE2OwotICAgd2lyZSBuXzEyMTg7Ci0gICB3aXJlIG5fMTIyMDsKLSAgIHdpcmUgbl8xMjIyOwotICAgd2lyZSBuXzEyMjQ7Ci0gICB3aXJlIG5fMTIyNjsKLSAgIHdpcmUgbl8xMjI3OwotICAgd2lyZSBuXzEyMjk7Ci0gICB3aXJlIG5fMTIzMTsKLSAgIHdpcmUgbl8xMjMzOwotICAgd2lyZSBuXzEyMzU7Ci0gICB3aXJlIG5fMTIzNzsKLSAgIHdpcmUgbl8xMjM5OwotICAgd2lyZSBuXzEyNDE7Ci0gICB3aXJlIG5fMTI0NDsKLSAgIHdpcmUgbl8xMjQ2OwotICAgd2lyZSBuXzEyNDg7Ci0gICB3aXJlIG5fMTI1MDsKLSAgIHdpcmUgbl8xMjUyOwotICAgd2lyZSBuXzEyNTQ7Ci0gICB3aXJlIG5fMTI1NjsKLSAgIHdpcmUgbl8xMjU4OwotICAgd2lyZSBuXzEyNjA7Ci0gICB3aXJlIG5fMTI2MjsKLSAgIHdpcmUgbl8xMjY0OwotICAgd2lyZSBuXzEzMjY7Ci0gICB3aXJlIG5fMTMyNzsKLSAgIHdpcmUgbl8xMzI4OwotICAgd2lyZSBuXzEzMjk7Ci0gICB3aXJlIG5fMTMzMDsKLSAgIHdpcmUgbl8xMzMxOwotICAgd2lyZSBuXzEzMzI7Ci0gICB3aXJlIG5fMTMzMzsKLSAgIHdpcmUgbl8xMzM0OwotICAgd2lyZSBuXzEzMzU7Ci0gICB3aXJlIG5fMTMzNjsKLSAgIHdpcmUgbl8xMzM3OwotICAgd2lyZSBuXzEzMzg7Ci0gICB3aXJlIG5fMTMzOTsKLSAgIHdpcmUgbl8xMzQwOwotICAgd2lyZSBuXzEzNDE7Ci0gICB3aXJlIG5fMTM0MjsKLSAgIHdpcmUgbl8xMzQzOwotICAgd2lyZSBuXzEzNDQ7Ci0gICB3aXJlIG5fMTM0NTsKLSAgIHdpcmUgbl8xMzQ2OwotICAgd2lyZSBuXzEzNDc7Ci0gICB3aXJlIG5fMTM0ODsKLSAgIHdpcmUgbl8xMzQ5OwotICAgd2lyZSBuXzEzNTA7Ci0gICB3aXJlIG5fMTM1MTsKLSAgIHdpcmUgbl8xMzUyOwotICAgd2lyZSBuXzEzNTM7Ci0gICB3aXJlIG5fMTM1NDsKLSAgIHdpcmUgbl8xMzU1OwotICAgd2lyZSBuXzEzNTY7Ci0gICB3aXJlIG5fMTM1NzsKLSAgIHdpcmUgbl8xMzc3OwotICAgd2lyZSBuXzEzNzg7Ci0gICB3aXJlIG5fMTM3OTsKLSAgIHdpcmUgbl8xMzgwOwotICAgd2lyZSBuXzEzODE7Ci0gICB3aXJlIG5fMTM4MjsKLSAgIHdpcmUgbl8xMzgzOwotICAgd2lyZSBuXzEzODQ7Ci0gICB3aXJlIG5fMTM4NTsKLSAgIHdpcmUgbl8xMzg2OwotICAgd2lyZSBuXzEzODc7Ci0gICB3aXJlIG5fMTM4ODsKLSAgIHdpcmUgbl8xMzg5OwotICAgd2lyZSBuXzEzOTA7Ci0gICB3aXJlIG5fMTM5MTsKLSAgIHdpcmUgbl8xMzkyOwotICAgd2lyZSBuXzEzOTM7Ci0gICB3aXJlIG5fMTM5NDsKLSAgIHdpcmUgbl8xMzk1OwotICAgd2lyZSBuXzEzOTY7Ci0gICB3aXJlIG5fMTM5NzsKLSAgIHdpcmUgbl8xMzk4OwotICAgd2lyZSBuXzEzOTk7Ci0gICB3aXJlIG5fMTQwMDsKLSAgIHdpcmUgbl8xNDAxOwotICAgd2lyZSBuXzE0MDI7Ci0gICB3aXJlIG5fMTQwMzsKLSAgIHdpcmUgbl8xNDA0OwotICAgd2lyZSBuXzE0MDU7Ci0gICB3aXJlIG5fMTQwNjsKLSAgIHdpcmUgbl8xNDA3OwotICAgd2lyZSBuXzE0MDg7Ci0gICB3aXJlIG5fMTQwOTsKLSAgIHdpcmUgbl8xNDEwOwotICAgd2lyZSBcc2Vfc2hpZnRfbWRyWzBdXzQxNSA7Ci0gICB3aXJlIFxzZV9zaGlmdF9tZHJbMV1fNDE2IDsKLSAgIHdpcmUgXHNlX3NoaWZ0X21kclszXV80MTggOwotICAgd2lyZSBcc2Vfc2hpZnRfbWRyWzRdXzQxOSA7Ci0gICB3aXJlIFxzZV9zaGlmdF9tZHJbNV1fNDIwIDsKLSAgIHdpcmUgXHNlX3NoaWZ0X21kcls2XV80MjEgOwotICAgd2lyZSBcc2Vfc2hpZnRfbWRyWzddXzQyMiA7Ci0gICB3aXJlIFxzZV9zaGlmdF9tZHJbOF1fNDIzIDsKLSAgIHdpcmUgXHNlX3NoaWZ0X21kcls5XV80MjQgOwotICAgd2lyZSBcc2Vfc2hpZnRfbWRyWzEwXV80MjUgOwotICAgd2lyZSBcc2Vfc2hpZnRfbWRyWzExXV80MjYgOwotICAgd2lyZSBcc2Vfc2hpZnRfbWRyWzEyXV80MjcgOwotICAgd2lyZSBcc2Vfc2hpZnRfbWRyWzEzXV80MjggOwotICAgd2lyZSBcc2Vfc2hpZnRfbWRyWzE0XV80MjkgOwotICAgd2lyZSBcc2Vfc2hpZnRfbWRyWzE1XV80MzAgOwotICAgd2lyZSBcc2Vfc2hpZnRfbWRyWzE4XV80MzMgOwotICAgd2lyZSBcc2Vfc2hpZnRfbWRyWzE5XV80MzQgOwotICAgd2lyZSBcc2Vfc2hpZnRfbWRyWzIwXV80MzUgOwotICAgd2lyZSBcc2Vfc2hpZnRfbWRyWzIxXV80MzYgOwotICAgd2lyZSBcc2Vfc2hpZnRfbWRyWzIyXV80MzcgOwotICAgd2lyZSBcc2Vfc2hpZnRfbWRyWzIzXV80MzggOwotICAgd2lyZSBcc2Vfc2hpZnRfbWRyWzI0XV80MzkgOwotICAgd2lyZSBcc2Vfc2hpZnRfbWRyWzI1XV80NDAgOwotICAgd2lyZSBcc2Vfc2hpZnRfbWRyWzI2XV80NDEgOwotICAgd2lyZSBcc2Vfc2hpZnRfbWRyWzI3XV80NDIgOwotICAgd2lyZSBcc2Vfc2hpZnRfbWRyWzI4XV80NDMgOwotICAgd2lyZSBcc2Vfc2hpZnRfbWRyWzI5XV80NDQgOwotCi0gICBzaGlmdF9sZWZ0X3Vuc2lnbmVkXzg4NCBsc2hfMTIwXzgyICguQSh7IDEnYjAsCi0JCTEnYjAsCi0JCTEnYjAsCi0JCTEnYjAsCi0JCTEnYjAsCi0JCTEnYjAsCi0JCTEnYjAsCi0JCTEnYjAsCi0JCTEnYjAsCi0JCTEnYjAsCi0JCTEnYjAsCi0JCTEnYjAsCi0JCTEnYjAsCi0JCTEnYjAsCi0JCTEnYjAsCi0JCTEnYjAsCi0JCWRhdGFfb3V0IH0pLCAKLQkuU0goeyBpclsxMV0sCi0JCWlyWzEwXSwKLQkJaXJbOV0sCi0JCWlyWzhdIH0pLCAKLQkuWih7IFVOQ09OTkVDVEVEMywKLQkJVU5DT05ORUNURUQ0LAotCQlcc2Vfc2hpZnRfbWRyWzI5XV80NDQgLAotCQlcc2Vfc2hpZnRfbWRyWzI4XV80NDMgLAotCQlcc2Vfc2hpZnRfbWRyWzI3XV80NDIgLAotCQlcc2Vfc2hpZnRfbWRyWzI2XV80NDEgLAotCQlcc2Vfc2hpZnRfbWRyWzI1XV80NDAgLAotCQlcc2Vfc2hpZnRfbWRyWzI0XV80MzkgLAotCQlcc2Vfc2hpZnRfbWRyWzIzXV80MzggLAotCQlcc2Vfc2hpZnRfbWRyWzIyXV80MzcgLAotCQlcc2Vfc2hpZnRfbWRyWzIxXV80MzYgLAotCQlcc2Vfc2hpZnRfbWRyWzIwXV80MzUgLAotCQlcc2Vfc2hpZnRfbWRyWzE5XV80MzQgLAotCQlcc2Vfc2hpZnRfbWRyWzE4XV80MzMgLAotCQluXzk1MCwKLQkJbl85NDksCi0JCVxzZV9zaGlmdF9tZHJbMTVdXzQzMCAsCi0JCVxzZV9zaGlmdF9tZHJbMTRdXzQyOSAsCi0JCVxzZV9zaGlmdF9tZHJbMTNdXzQyOCAsCi0JCVxzZV9zaGlmdF9tZHJbMTJdXzQyNyAsCi0JCVxzZV9zaGlmdF9tZHJbMTFdXzQyNiAsCi0JCVxzZV9zaGlmdF9tZHJbMTBdXzQyNSAsCi0JCVxzZV9zaGlmdF9tZHJbOV1fNDI0ICwKLQkJXHNlX3NoaWZ0X21kcls4XV80MjMgLAotCQlcc2Vfc2hpZnRfbWRyWzddXzQyMiAsCi0JCVxzZV9zaGlmdF9tZHJbNl1fNDIxICwKLQkJXHNlX3NoaWZ0X21kcls1XV80MjAgLAotCQlcc2Vfc2hpZnRfbWRyWzRdXzQxOSAsCi0JCVxzZV9zaGlmdF9tZHJbM11fNDE4ICwKLQkJbl85NDgsCi0JCVxzZV9zaGlmdF9tZHJbMV1fNDE2ICwKLQkJXHNlX3NoaWZ0X21kclswXV80MTUgIH0pKTsKLSAgIHNoaWZ0X2xlZnRfdW5zaWduZWQgbHNoXzEyMV83MyAoLkEoeyBhY2NbMzFdLAotCQlhY2NbMzBdLAotCQlhY2NbMjldLAotCQlhY2NbMjhdLAotCQlhY2NbMjddLAotCQlhY2NbMjZdLAotCQlhY2NbMjVdLAotCQlhY2NbMjRdLAotCQlhY2NbMjNdLAotCQlhY2NbMjJdLAotCQlhY2NbMjFdLAotCQlhY2NbMjBdLAotCQlhY2NbMTldLAotCQlhY2NbMThdLAotCQlhY2NbMTddLAotCQlhY2NbMTZdLAotCQlhY2NbMTVdLAotCQlhY2NbMTRdLAotCQlhY2NbMTNdLAotCQlhY2NbMTJdLAotCQlhY2NbMTFdLAotCQlhY2NbMTBdLAotCQlhY2NbOV0sCi0JCTEnYjAsCi0JCTEnYjAsCi0JCTEnYjAsCi0JCTEnYjAsCi0JCTEnYjAsCi0JCTEnYjAsCi0JCTEnYjAsCi0JCTEnYjAsCi0JCTEnYjAgfSksIAotCS5TSCh7IGlyWzEwXSwKLQkJaXJbOV0sCi0JCWlyWzhdIH0pLCAKLQkuWih7IG5fNzY2LAotCQluXzc2NSwKLQkJbl83NjQsCi0JCW5fNzYzLAotCQluXzc2MiwKLQkJbl83NjEsCi0JCW5fNzYwLAotCQluXzc1OSwKLQkJbl83NTgsCi0JCW5fNzU3LAotCQluXzc1NiwKLQkJbl83NTUsCi0JCW5fNzU0LAotCQluXzc1MywKLQkJbl83NTIsCi0JCW5fNzUxLAotCQlVTkNPTk5FQ1RFRDUsCi0JCVVOQ09OTkVDVEVENiwKLQkJVU5DT05ORUNURUQ3LAotCQlVTkNPTk5FQ1RFRDgsCi0JCVVOQ09OTkVDVEVEOSwKLQkJVU5DT05ORUNURUQxMCwKLQkJVU5DT05ORUNURUQxMSwKLQkJVU5DT05ORUNURUQxMiwKLQkJVU5DT05ORUNURUQxMywKLQkJVU5DT05ORUNURUQxNCwKLQkJVU5DT05ORUNURUQxNSwKLQkJVU5DT05ORUNURUQxNiwKLQkJVU5DT05ORUNURUQxNywKLQkJVU5DT05ORUNURUQxOCwKLQkJVU5DT05ORUNURUQxOSwKLQkJVU5DT05ORUNURUQyMCB9KSk7Ci0gICBBTkQyWDEgZzc0MzQgKC5ZKG5fNjA2KSwgCi0JLkIobl82MDQpLCAKLQkuQShuXzEzNTIpKTsKLSAgIEFORDJYMiBnNzQzOSAoLlkobl82MDQpLCAKLQkuQihuXzYwMyksIAotCS5BKG5fMzU0KSk7Ci0gICBBTkQyWDIgZzc0NDIgKC5ZKG5fNjAzKSwgCi0JLkIobl81ODUpLCAKLQkuQShuXzM5OCkpOwotICAgQU5EMlgyIGc3NDc5ICguWShuXzU4NSksIAotCS5CKG5fNTM4KSwgCi0JLkEobl8zNjcpKTsKLSAgIEFORDJYMiBnNzUzMSAoLlkobl81MzgpLCAKLQkuQihuXzQ3NyksIAotCS5BKG5fMTM0MikpOwotICAgQU5EMlgyIGc3NTk2ICguWShuXzQ3NyksIAotCS5CKG5fNDIyKSwgCi0JLkEobl8zOTYpKTsKLSAgIEFORDJYMiBnNzY0MyAoLlkobl80MzEpLCAKLQkuQihuXzEyMjApLCAKLQkuQShuXzQwMSkpOwotICAgT1IyWDIgZzc2NTAgKC5ZKG5fNDI5KSwgCi0JLkIobl8xMzc3KSwgCi0JLkEoaXJbOF0pKTsKLSAgIE9SMlgyIGc3NjU2ICguWShuXzQyOCksIAotCS5CKG5fMTM3NyksIAotCS5BKG5fNDkpKTsKLSAgIEFORDJYMiBnNzY2NSAoLlkobl80MjIpLCAKLQkuQihuXzM4OCksIAotCS5BKGRtb3ZfaW5jKSk7Ci0gICBBTkQyWDEgZzc3MzEgKC5ZKG5fNDAxKSwgCi0JLkIobl8yMiksIAotCS5BKG5fNDYpKTsKLSAgIENMS0lOVlgyIGc3NzUzICguWShuXzM5OCksIAotCS5BKG5fMTQwMikpOwotICAgQ0xLSU5WWDIgZzc3NTUgKC5ZKG5fMzk2KSwgCi0JLkEobl8xNDA0KSk7Ci0gICBDTEtJTlZYMiBnNzc2MyAoLlkobl8zODgpLCAKLQkuQShuXzE0MDYpKTsKLSAgIENMS0lOVlgyIGc3Nzg0ICguWShuXzM2NyksIAotCS5BKG5fMTQwOCkpOwotICAgQ0xLSU5WWDIgZzc3OTcgKC5ZKG5fMzU0KSwgCi0JLkEobl8xNDEwKSk7Ci0gICBBTkQyWDIgZzc4MzcgKC5ZKG5fMzE3KSwgCi0JLkIobl8xMzc4KSwgCi0JLkEoZGF0YV9vdXRbMTVdKSk7Ci0gICBPUjJYMSBnNzkyMCAoLlkobl8yMzYpLCAKLQkuQihuXzEyNCksIAotCS5BKG5fOTYpKTsKLSAgIEFORDJYMSBnNzk1MyAoLlkobl8yMDMpLCAKLQkuQihuXzE0MCksIAotCS5BKGlyWzhdKSk7Ci0gICBBTkQyWDIgZzc5NTkgKC5ZKG5fMTk3KSwgCi0JLkIobl8xNDApLCAKLQkuQShpclsxMl0pKTsKLSAgIEFORDJYMiBnODAwOCAoLlkobl8xNTEpLCAKLQkuQihuXzk1KSwgCi0JLkEoc2VsX29wX2JbMV0pKTsKLSAgIEFORDJYMiBnODAxOSAoLlkobl8xNDApLCAKLQkuQihuXzg3KSwgCi0JLkEoc2VsX29wX2JbMF0pKTsKLSAgIEFORDJYMiBnODAzNyAoLlkobl8xMjQpLCAKLQkuQihuXzE3KSwgCi0JLkEoc2VsX29wX2JbMF0pKTsKLSAgIENMS0lOVlgyIGc4MDQwICguWShhclsxXSksIAotCS5BKG5fMTIyKSk7Ci0gICBBTkQyWDIgZzgwNDEgKC5ZKG5fMTIyKSwgCi0JLkIobl8xNSksIAotCS5BKG5fMTQpKTsKLSAgIENMS0lOVlgyIGc4MDQ1ICguWShhcls0XSksIAotCS5BKG5fMTIxKSk7Ci0gICBBTkQyWDIgZzgwNDYgKC5ZKG5fMTIxKSwgCi0JLkIobl8xNiksIAotCS5BKG5fMikpOwotICAgQ0xLSU5WWDIgZzgwNDkgKC5ZKGFyWzNdKSwgCi0JLkEobl8xMjApKTsKLSAgIEFORDJYMiBnODA1MCAoLlkobl8xMjApLCAKLQkuQihuXzYpLCAKLQkuQShuXzcpKTsKLSAgIENMS0lOVlgyIGc4MDUxICguWShhclswXSksIAotCS5BKG5fMTE5KSk7Ci0gICBBTkQyWDIgZzgwNTIgKC5ZKG5fMTE5KSwgCi0JLkIobl8xMiksIAotCS5BKG5fOCkpOwotICAgQ0xLSU5WWDIgZzgwNTQgKC5ZKGFyWzVdKSwgCi0JLkEobl8xMTgpKTsKLSAgIEFORDJYMiBnODA1NSAoLlkobl8xMTgpLCAKLQkuQihuXzApLCAKLQkuQShuXzkpKTsKLSAgIE9SMlgyIGc4MDY5ICguWShyZWFkX3Byb2cpLCAKLQkuQihlbmNfcmVhZF9wcm9nKSwgCi0JLkEoZGVjX3JlYWRfcHJvZykpOwotICAgT1IyWDEgZzgwNzEgKC5ZKGdvX2RhdGEpLCAKLQkuQihlbmNfZ29fZGF0YSksIAotCS5BKGRlY19nb19kYXRhKSk7Ci0gICBPUjJYMSBnODA3MiAoLlkoZ29fcG9ydCksIAotCS5CKGVuY19nb19wb3J0KSwgCi0JLkEoZGVjX2dvX3BvcnQpKTsKLSAgIEFORDJYMSBnODA4MCAoLlkobl8xMTEpLCAKLQkuQihkYXRhX291dFsxMV0pLCAKLQkuQShkbW92X2luYykpOwotICAgT1IyWDEgZzgwOTkgKC5ZKGdvX3Byb2cpLCAKLQkuQihlbmNfZ29fcHJvZyksIAotCS5BKGRlY19nb19wcm9nKSk7Ci0gICBDTEtJTlZYOCBnODEwNiAoLlkobl85NiksIAotCS5BKG5fOTUpKTsKLSAgIE9SMlgyIGc4MTA3ICguWShuXzk1KSwgCi0JLkIoc2VsX29wX2JbMF0pLCAKLQkuQShzZWxfb3BfYlsyXSkpOwotICAgQU5EMlgxIGc4MTE2ICguWShuXzg3KSwgCi0JLkIobl80MyksIAotCS5BKHNlbF9vcF9iWzJdKSk7Ci0gICBBTkQyWDEgZzgxMjYgKC5ZKG5fNzgpLCAKLQkuQihkYXRhX291dFswXSksIAotCS5BKGRtb3ZfaW5jKSk7Ci0gICBBTkQyWDEgZzgxMzUgKC5ZKG5fNzEpLCAKLQkuQihkYXRhX291dFsxNV0pLCAKLQkuQShkbW92X2luYykpOwotICAgQU5EMlgxIGc4MTM4ICguWShwX2FkZHJzX2luWzhdKSwgCi0JLkIobl80MCksIAotCS5BKHBjWzhdKSk7Ci0gICBBTkQyWDEgZzgxNDggKC5ZKG5fNjApLCAKLQkuQihkYXRhX291dFsxMF0pLCAKLQkuQShkbW92X2luYykpOwotICAgQU5EMlgxIGc4MTUxICguWShuXzU3KSwgCi0JLkIoZGF0YV9vdXRbMV0pLCAKLQkuQShkbW92X2luYykpOwotICAgT1IyWDIgZzgxNTggKC5ZKG5fNTEpLCAKLQkuQihpcls5XSksIAotCS5BKGlyWzExXSkpOwotICAgQ0xLSU5WWDIgZzgxNjEgKC5ZKG5fNTApLCAKLQkuQShpcls3XSkpOwotICAgQ0xLSU5WWDEgZzgxNjIgKC5ZKG5fNDkpLCAKLQkuQShpcls4XSkpOwotICAgQ0xLSU5WWDEgZzgxNjggKC5ZKG5fNDgpLCAKLQkuQShpclsxMF0pKTsKLSAgIENMS0lOVlgxIGc4MTY5ICguWShuXzQ3KSwgCi0JLkEoc2VsX29wX2FbMl0pKTsKLSAgIENMS0lOVlgyIGc4MTc2ICguWShuXzQ2KSwgCi0JLkEoZG1vdl9pbmMpKTsKLSAgIENMS0lOVlgxIGc4MTgwICguWShuXzQ1KSwgCi0JLkEoaXJbMTVdKSk7Ci0gICBDTEtJTlZYMSBnODE4MSAoLlkobl80NCksIAotCS5BKHNlbF9vcF9hWzFdKSk7Ci0gICBDTEtJTlZYMSBnODE4MiAoLlkobl80MyksIAotCS5BKHNlbF9vcF9iWzFdKSk7Ci0gICBDTEtJTlZYMSBnODE4MyAoLlkobl80MiksIAotCS5BKGlyWzEzXSkpOwotICAgQ0xLSU5WWDMgZzgxODcgKC5ZKG5fNDEpLCAKLQkuQShhcnApKTsKLSAgIENMS0lOVlgyIGc4MTkwICguWShuXzQwKSwgCi0JLkEocGNfYWNjKSk7Ci0gICBOT1IyQlg0IGc4MTk4ICguWShuXzMyKSwgCi0JLkIobl8xMTk1KSwgCi0JLkFOKG5fNDYpKTsKLSAgIE5PUjJCWDQgZzgyMDAgKC5ZKG5fMzApLCAKLQkuQihuXzQyOSksIAotCS5BTihuXzQ2KSk7Ci0gICBOT1IyQlg0IGc4MjAxICguWShuXzI5KSwgCi0JLkIobl80MjgpLCAKLQkuQU4obl80NikpOwotICAgTk9SMkJYNCBnODIwMiAoLlkobl8yOCksIAotCS5CKG5fMTIyMCksIAotCS5BTihuXzQyOSkpOwotICAgTk9SMkJYNCBnODIwNyAoLlkobl8yMyksIAotCS5CKG5fMjIpLCAKLQkuQU4obl80NikpOwotICAgTkFORDJCWDQgZzgyMDggKC5ZKG5fMjIpLCAKLQkuQihuXzEzNTQpLCAKLQkuQU4oaXJbMTJdKSk7Ci0gICBOT1IyQlg0IGc4MjA5ICguWShuXzIxKSwgCi0JLkIobl81MSksIAotCS5BTihuXzQ4KSk7Ci0gICBOQU5EMlgyIGc4MjEwICguWShuXzIwKSwgCi0JLkIoaXJbOV0pLCAKLQkuQShpclsxMV0pKTsKLSAgIE5PUjJCWDIgZzgyMTIgKC5ZKG5fMTgpLCAKLQkuQihzZWxfb3BfYlswXSksIAotCS5BTihuXzg3KSk7Ci0gICBOT1IyQlgxIGc4MjEzICguWShuXzE3KSwgCi0JLkIoc2VsX29wX2JbMl0pLCAKLQkuQU4obl80MykpOwotICAgTkFORDJCWDEgZzgyMTQgKC5ZKG5fMTYpLCAKLQkuQihhcjBbNF0pLCAKLQkuQU4oYXJwKSk7Ci0gICBOQU5EMkJYMSBnODIxNSAoLlkobl8xNSksIAotCS5CKGFyMFsxXSksIAotCS5BTihhcnApKTsKLSAgIE5BTkQyQlgxIGc4MjE2ICguWShuXzE0KSwgCi0JLkIoYXIxWzFdKSwgCi0JLkFOKG5fNDEpKTsKLSAgIE5BTkQyQlgxIGc4MjE4ICguWShuXzEyKSwgCi0JLkIoYXIwWzBdKSwgCi0JLkFOKGFycCkpOwotICAgTkFORDJCWDIgZzgyMTkgKC5ZKG5fMTEpLCAKLQkuQihpclsxNF0pLCAKLQkuQU4obl8xMjI2KSk7Ci0gICBOQU5EMkJYMSBnODIyMSAoLlkobl85KSwgCi0JLkIoYXIxWzVdKSwgCi0JLkFOKG5fNDEpKTsKLSAgIE5BTkQyQlgxIGc4MjIyICguWShuXzgpLCAKLQkuQihhcjFbMF0pLCAKLQkuQU4obl80MSkpOwotICAgTkFORDJCWDEgZzgyMjMgKC5ZKG5fNyksIAotCS5CKGFyMVszXSksIAotCS5BTihuXzQxKSk7Ci0gICBOQU5EMkJYMSBnODIyNCAoLlkobl82KSwgCi0JLkIoYXIwWzNdKSwgCi0JLkFOKGFycCkpOwotICAgTkFORDJCWDEgZzgyMjggKC5ZKG5fMiksIAotCS5CKGFyMVs0XSksIAotCS5BTihuXzQxKSk7Ci0gICBOQU5EMkJYMSBnODIzMCAoLlkobl8wKSwgCi0JLkIoYXIwWzVdKSwgCi0JLkFOKGFycCkpOwotICAgWE9SMlg0IGc4MjMxICguWShhZGRyc19pbls3XSksIAotCS5CKG5fNjA2KSwgCi0JLkEobl8xMzQ4KSk7Ci0gICBYT1IyWDQgZzgyMzIgKC5ZKGFkZHJzX2luWzZdKSwgCi0JLkIobl82MDQpLCAKLQkuQShuXzEzNTIpKTsKLSAgIENMS01YMlgxMiBnODIzMyAoLlkoYWRkcnNfaW5bNV0pLCAKLQkuUzAobl82MDMpLCAKLQkuQihuXzE0MTApLCAKLQkuQShuXzM1NCkpOwotICAgQ0xLTVgyWDEyIGc4MjM0ICguWShhZGRyc19pbls0XSksIAotCS5TMChuXzU4NSksIAotCS5CKG5fMTQwMiksIAotCS5BKG5fMzk4KSk7Ci0gICBDTEtNWDJYMTIgZzgyMzUgKC5ZKGFkZHJzX2luWzNdKSwgCi0JLlMwKG5fNTM4KSwgCi0JLkIobl8xNDA4KSwgCi0JLkEobl8zNjcpKTsKLSAgIFhPUjJYNCBnODIzNiAoLlkoYWRkcnNfaW5bMl0pLCAKLQkuQihuXzQ3NyksIAotCS5BKG5fMTM0MikpOwotICAgQ0xLTVgyWDEyIGc4MjM3ICguWShhZGRyc19pblsxXSksIAotCS5TMChuXzQyMiksIAotCS5CKG5fMTQwNCksIAotCS5BKG5fMzk2KSk7Ci0gICBJTlZYTCBnMyAoLlkoZGF0YV9pbls5XSksIAotCS5BKG5fMTExOSkpOwotICAgQU9JMjExWDQgZzgyMzggKC5ZKG5fMTExOSksIAotCS5DMChuXzExNDkpLCAKLQkuQjAobl8xMTk2KSwgCi0JLkExKGRhdGFfb3V0WzldKSwgCi0JLkEwKGRtb3ZfaW5jKSk7Ci0gICBJTlZYTCBnODIzOSAoLlkoZGF0YV9pbls4XSksIAotCS5BKG5fMTEyMSkpOwotICAgQU9JMjExWDQgZzgyNDAgKC5ZKG5fMTEyMSksIAotCS5DMChuXzExNTEpLCAKLQkuQjAobl8xMTk3KSwgCi0JLkExKGRhdGFfb3V0WzhdKSwgCi0JLkEwKGRtb3ZfaW5jKSk7Ci0gICBJTlZYTCBnODI0MSAoLlkoZGF0YV9pbls3XSksIAotCS5BKG5fMTEyMykpOwotICAgQU9JMjExWDQgZzgyNDIgKC5ZKG5fMTEyMyksIAotCS5DMChuXzExNTMpLCAKLQkuQjAobl8xMTk4KSwgCi0JLkExKGRhdGFfb3V0WzddKSwgCi0JLkEwKGRtb3ZfaW5jKSk7Ci0gICBJTlZYTCBnODI0MyAoLlkoZGF0YV9pblsxNF0pLCAKLQkuQShuXzExMjUpKTsKLSAgIEFPSTIxMVg0IGc4MjQ0ICguWShuXzExMjUpLCAKLQkuQzAobl8xMTU3KSwgCi0JLkIwKG5fMTIwMCksIAotCS5BMShkYXRhX291dFsxNF0pLCAKLQkuQTAoZG1vdl9pbmMpKTsKLSAgIElOVlhMIGc4MjQ1ICguWShkYXRhX2luWzZdKSwgCi0JLkEobl8xMTI3KSk7Ci0gICBBT0kyMTFYNCBnODI0NiAoLlkobl8xMTI3KSwgCi0JLkMwKG5fMTE1NSksIAotCS5CMChuXzExOTkpLCAKLQkuQTEoZGF0YV9vdXRbNl0pLCAKLQkuQTAoZG1vdl9pbmMpKTsKLSAgIElOVlhMIGc4MjQ3ICguWShkYXRhX2luWzVdKSwgCi0JLkEobl8xMTI5KSk7Ci0gICBBT0kyMTFYNCBnODI0OCAoLlkobl8xMTI5KSwgCi0JLkMwKG5fMTE1OSksIAotCS5CMChuXzEyMDEpLCAKLQkuQTEoZGF0YV9vdXRbNV0pLCAKLQkuQTAoZG1vdl9pbmMpKTsKLSAgIElOVlhMIGc4MjQ5ICguWShkYXRhX2luWzRdKSwgCi0JLkEobl8xMTMxKSk7Ci0gICBBT0kyMTFYNCBnODI1MCAoLlkobl8xMTMxKSwgCi0JLkMwKG5fMTE2MSksIAotCS5CMChuXzEyMDIpLCAKLQkuQTEoZGF0YV9vdXRbNF0pLCAKLQkuQTAoZG1vdl9pbmMpKTsKLSAgIElOVlhMIGc4MjUxICguWShkYXRhX2luWzEzXSksIAotCS5BKG5fMTEzMykpOwotICAgQU9JMjExWDQgZzgyNTIgKC5ZKG5fMTEzMyksIAotCS5DMChuXzExNjcpLCAKLQkuQjAobl8xMjAzKSwgCi0JLkExKGRhdGFfb3V0WzEzXSksIAotCS5BMChkbW92X2luYykpOwotICAgSU5WWEwgZzgyNTMgKC5ZKGRhdGFfaW5bM10pLCAKLQkuQShuXzExMzUpKTsKLSAgIEFPSTIxMVg0IGc4MjU0ICguWShuXzExMzUpLCAKLQkuQzAobl8xMTYzKSwgCi0JLkIwKG5fMTIwNCksIAotCS5BMShkYXRhX291dFszXSksIAotCS5BMChkbW92X2luYykpOwotICAgSU5WWEwgZzgyNTUgKC5ZKGRhdGFfaW5bMTJdKSwgCi0JLkEobl8xMTM3KSk7Ci0gICBBT0kyMTFYNCBnODI1NiAoLlkobl8xMTM3KSwgCi0JLkMwKG5fMTE2OSksIAotCS5CMChuXzEyMDcpLCAKLQkuQTEoZGF0YV9vdXRbMTJdKSwgCi0JLkEwKGRtb3ZfaW5jKSk7Ci0gICBJTlZYTCBnODI1NyAoLlkoZGF0YV9pblsyXSksIAotCS5BKG5fMTEzOSkpOwotICAgQU9JMjExWDQgZzgyNTggKC5ZKG5fMTEzOSksIAotCS5DMChuXzExNjUpLCAKLQkuQjAobl8xMjA1KSwgCi0JLkExKGRhdGFfb3V0WzJdKSwgCi0JLkEwKGRtb3ZfaW5jKSk7Ci0gICBPUjNYNiBnODI1OSAoLlkoZGF0YV9pblsxXSksIAotCS5DKG5fMTE3MSksIAotCS5CKG5fMTIwNiksIAotCS5BKG5fNTcpKTsKLSAgIE9SM1g2IGc4MjYwICguWShkYXRhX2luWzE1XSksIAotCS5DKG5fMTE0NyksIAotCS5CKG5fMTIwOSksIAotCS5BKG5fNzEpKTsKLSAgIE9SM1g2IGc4MjYxICguWShkYXRhX2luWzBdKSwgCi0JLkMobl8xMTczKSwgCi0JLkIobl8xMjA4KSwgCi0JLkEobl83OCkpOwotICAgT1IzWDYgZzgyNjIgKC5ZKGRhdGFfaW5bMTFdKSwgCi0JLkMobl8xMTc1KSwgCi0JLkIobl8xMjEwKSwgCi0JLkEobl8xMTEpKTsKLSAgIE9SM1g2IGc4MjYzICguWShkYXRhX2luWzEwXSksIAotCS5DKG5fMTE3NyksIAotCS5CKG5fMTIxMSksIAotCS5BKG5fNjApKTsKLSAgIElOVlhMIGc4MjY0ICguWShuXzExNDcpLCAKLQkuQShuXzExNDYpKTsKLSAgIEFPSTIyMVg0IGc4MjY1ICguWShuXzExNDYpLCAKLQkuQzAobl8xMTgwKSwgCi0JLkIxKG5fMzApLCAKLQkuQjAoYXIwWzE1XSksIAotCS5BMShuXzIzKSwgCi0JLkEwKHBvcnRfZGF0YV9vdXRbMTVdKSk7Ci0gICBJTlZYTCBnODI2NiAoLlkobl8xMTQ5KSwgCi0JLkEobl8xMTQ4KSk7Ci0gICBBT0kyMjFYNCBnODI2NyAoLlkobl8xMTQ4KSwgCi0JLkMwKG5fMTE3OSksIAotCS5CMShuXzMwKSwgCi0JLkIwKGFyMFs5XSksIAotCS5BMShuXzIzKSwgCi0JLkEwKHBvcnRfZGF0YV9vdXRbOV0pKTsKLSAgIElOVlhMIGc4MjY4ICguWShuXzExNTEpLCAKLQkuQShuXzExNTApKTsKLSAgIEFPSTIyMVg0IGc4MjY5ICguWShuXzExNTApLCAKLQkuQzAobl8xMTgxKSwgCi0JLkIxKG5fMzApLCAKLQkuQjAoYXIwWzhdKSwgCi0JLkExKG5fMjMpLCAKLQkuQTAocG9ydF9kYXRhX291dFs4XSkpOwotICAgSU5WWEwgZzgyNzAgKC5ZKG5fMTE1MyksIAotCS5BKG5fMTE1MikpOwotICAgQU9JMjIxWDQgZzgyNzEgKC5ZKG5fMTE1MiksIAotCS5DMChuXzExODIpLCAKLQkuQjEobl8zMCksIAotCS5CMChhcjBbN10pLCAKLQkuQTEobl8yMyksIAotCS5BMChwb3J0X2RhdGFfb3V0WzddKSk7Ci0gICBJTlZYTCBnODI3MiAoLlkobl8xMTU1KSwgCi0JLkEobl8xMTU0KSk7Ci0gICBBT0kyMjFYNCBnODI3MyAoLlkobl8xMTU0KSwgCi0JLkMwKG5fMTE4MyksIAotCS5CMShuXzMwKSwgCi0JLkIwKGFyMFs2XSksIAotCS5BMShuXzIzKSwgCi0JLkEwKHBvcnRfZGF0YV9vdXRbNl0pKTsKLSAgIElOVlhMIGc4Mjc0ICguWShuXzExNTcpLCAKLQkuQShuXzExNTYpKTsKLSAgIEFPSTIyMVg0IGc4Mjc1ICguWShuXzExNTYpLCAKLQkuQzAobl8xMTg1KSwgCi0JLkIxKG5fMzApLCAKLQkuQjAoYXIwWzE0XSksIAotCS5BMShuXzIzKSwgCi0JLkEwKHBvcnRfZGF0YV9vdXRbMTRdKSk7Ci0gICBJTlZYTCBnODI3NiAoLlkobl8xMTU5KSwgCi0JLkEobl8xMTU4KSk7Ci0gICBBT0kyMjFYNCBnODI3NyAoLlkobl8xMTU4KSwgCi0JLkMwKG5fMTE4NCksIAotCS5CMShuXzMwKSwgCi0JLkIwKGFyMFs1XSksIAotCS5BMShuXzIzKSwgCi0JLkEwKHBvcnRfZGF0YV9vdXRbNV0pKTsKLSAgIElOVlhMIGc4Mjc4ICguWShuXzExNjEpLCAKLQkuQShuXzExNjApKTsKLSAgIEFPSTIyMVg0IGc4Mjc5ICguWShuXzExNjApLCAKLQkuQzAobl8xMTg2KSwgCi0JLkIxKG5fMzApLCAKLQkuQjAoYXIwWzRdKSwgCi0JLkExKG5fMjMpLCAKLQkuQTAocG9ydF9kYXRhX291dFs0XSkpOwotICAgSU5WWEwgZzgyODAgKC5ZKG5fMTE2MyksIAotCS5BKG5fMTE2MikpOwotICAgQU9JMjIxWDQgZzgyODEgKC5ZKG5fMTE2MiksIAotCS5DMChuXzExODcpLCAKLQkuQjEobl8zMCksIAotCS5CMChhcjBbM10pLCAKLQkuQTEobl8yMyksIAotCS5BMChwb3J0X2RhdGFfb3V0WzNdKSk7Ci0gICBJTlZYTCBnODI4MiAoLlkobl8xMTY1KSwgCi0JLkEobl8xMTY0KSk7Ci0gICBBT0kyMjFYNCBnODI4MyAoLlkobl8xMTY0KSwgCi0JLkMwKG5fMTE4OCksIAotCS5CMShuXzMwKSwgCi0JLkIwKGFyMFsyXSksIAotCS5BMShuXzIzKSwgCi0JLkEwKHBvcnRfZGF0YV9vdXRbMl0pKTsKLSAgIElOVlhMIGc4Mjg0ICguWShuXzExNjcpLCAKLQkuQShuXzExNjYpKTsKLSAgIEFPSTIyMVg0IGc4Mjg1ICguWShuXzExNjYpLCAKLQkuQzAobl8xMTg5KSwgCi0JLkIxKG5fMzApLCAKLQkuQjAoYXIwWzEzXSksIAotCS5BMShuXzIzKSwgCi0JLkEwKHBvcnRfZGF0YV9vdXRbMTNdKSk7Ci0gICBJTlZYTCBnODI4NiAoLlkobl8xMTY5KSwgCi0JLkEobl8xMTY4KSk7Ci0gICBBT0kyMjFYNCBnODI4NyAoLlkobl8xMTY4KSwgCi0JLkMwKG5fMTE5MSksIAotCS5CMShuXzMwKSwgCi0JLkIwKGFyMFsxMl0pLCAKLQkuQTEobl8yMyksIAotCS5BMChwb3J0X2RhdGFfb3V0WzEyXSkpOwotICAgSU5WWEwgZzgyODggKC5ZKG5fMTE3MSksIAotCS5BKG5fMTE3MCkpOwotICAgQU9JMjIxWDQgZzgyODkgKC5ZKG5fMTE3MCksIAotCS5DMChuXzExOTApLCAKLQkuQjEobl8zMCksIAotCS5CMChhcjBbMV0pLCAKLQkuQTEobl8yMyksIAotCS5BMChwb3J0X2RhdGFfb3V0WzFdKSk7Ci0gICBJTlZYTCBnODI5MCAoLlkobl8xMTczKSwgCi0JLkEobl8xMTcyKSk7Ci0gICBBT0kyMjFYNCBnODI5MSAoLlkobl8xMTcyKSwgCi0JLkMwKG5fMTE5MiksIAotCS5CMShuXzMwKSwgCi0JLkIwKGFyMFswXSksIAotCS5BMShuXzIzKSwgCi0JLkEwKHBvcnRfZGF0YV9vdXRbMF0pKTsKLSAgIElOVlhMIGc4MjkyICguWShuXzExNzUpLCAKLQkuQShuXzExNzQpKTsKLSAgIEFPSTIyMVg0IGc4MjkzICguWShuXzExNzQpLCAKLQkuQzAobl8xMTkzKSwgCi0JLkIxKG5fMzApLCAKLQkuQjAoYXIwWzExXSksIAotCS5BMShuXzIzKSwgCi0JLkEwKHBvcnRfZGF0YV9vdXRbMTFdKSk7Ci0gICBJTlZYTCBnODI5NCAoLlkobl8xMTc3KSwgCi0JLkEobl8xMTc2KSk7Ci0gICBBT0kyMjFYNCBnODI5NSAoLlkobl8xMTc2KSwgCi0JLkMwKG5fMTE3OCksIAotCS5CMShuXzMwKSwgCi0JLkIwKGFyMFsxMF0pLCAKLQkuQTEobl8yMyksIAotCS5BMChwb3J0X2RhdGFfb3V0WzEwXSkpOwotICAgQU8yMlg0IGc4Mjk2ICguWShuXzExNzgpLCAKLQkuQjEobl8xMTk0KSwgCi0JLkIwKG5fNzYxKSwgCi0JLkExKG5fMzIpLCAKLQkuQTAocF9kYXRhX291dFsxMF0pKTsKLSAgIEFPMjJYNCBnODI5NyAoLlkobl8xMTc5KSwgCi0JLkIxKG5fMTE5NCksIAotCS5CMChuXzc2MCksIAotCS5BMShuXzMyKSwgCi0JLkEwKHBfZGF0YV9vdXRbOV0pKTsKLSAgIEFPMjJYNCBnODI5OCAoLlkobl8xMTgwKSwgCi0JLkIxKG5fMTE5NCksIAotCS5CMChuXzc2NiksIAotCS5BMShuXzMyKSwgCi0JLkEwKHBfZGF0YV9vdXRbMTVdKSk7Ci0gICBBTzIyWDQgZzgyOTkgKC5ZKG5fMTE4MSksIAotCS5CMShuXzExOTQpLCAKLQkuQjAobl83NTkpLCAKLQkuQTEobl8zMiksIAotCS5BMChwX2RhdGFfb3V0WzhdKSk7Ci0gICBBTzIyWDQgZzgzMDAgKC5ZKG5fMTE4MiksIAotCS5CMShuXzExOTQpLCAKLQkuQjAobl83NTgpLCAKLQkuQTEobl8zMiksIAotCS5BMChwX2RhdGFfb3V0WzddKSk7Ci0gICBBTzIyWDQgZzgzMDEgKC5ZKG5fMTE4MyksIAotCS5CMShuXzExOTQpLCAKLQkuQjAobl83NTcpLCAKLQkuQTEobl8zMiksIAotCS5BMChwX2RhdGFfb3V0WzZdKSk7Ci0gICBBTzIyWDQgZzgzMDIgKC5ZKG5fMTE4NCksIAotCS5CMShuXzExOTQpLCAKLQkuQjAobl83NTYpLCAKLQkuQTEobl8zMiksIAotCS5BMChwX2RhdGFfb3V0WzVdKSk7Ci0gICBBTzIyWDQgZzgzMDMgKC5ZKG5fMTE4NSksIAotCS5CMShuXzExOTQpLCAKLQkuQjAobl83NjUpLCAKLQkuQTEobl8zMiksIAotCS5BMChwX2RhdGFfb3V0WzE0XSkpOwotICAgQU8yMlg0IGc4MzA0ICguWShuXzExODYpLCAKLQkuQjEobl8xMTk0KSwgCi0JLkIwKG5fNzU1KSwgCi0JLkExKG5fMzIpLCAKLQkuQTAocF9kYXRhX291dFs0XSkpOwotICAgQU8yMlg0IGc4MzA1ICguWShuXzExODcpLCAKLQkuQjEobl8xMTk0KSwgCi0JLkIwKG5fNzU0KSwgCi0JLkExKG5fMzIpLCAKLQkuQTAocF9kYXRhX291dFszXSkpOwotICAgQU8yMlg0IGc4MzA2ICguWShuXzExODgpLCAKLQkuQjEobl8xMTk0KSwgCi0JLkIwKG5fNzUzKSwgCi0JLkExKG5fMzIpLCAKLQkuQTAocF9kYXRhX291dFsyXSkpOwotICAgQU8yMlg0IGc4MzA3ICguWShuXzExODkpLCAKLQkuQjEobl8xMTk0KSwgCi0JLkIwKG5fNzY0KSwgCi0JLkExKG5fMzIpLCAKLQkuQTAocF9kYXRhX291dFsxM10pKTsKLSAgIEFPMjJYNCBnODMwOCAoLlkobl8xMTkwKSwgCi0JLkIxKG5fMTE5NCksIAotCS5CMChuXzc1MiksIAotCS5BMShuXzMyKSwgCi0JLkEwKHBfZGF0YV9vdXRbMV0pKTsKLSAgIEFPMjJYNCBnODMwOSAoLlkobl8xMTkxKSwgCi0JLkIxKG5fMTE5NCksIAotCS5CMChuXzc2MyksIAotCS5BMShuXzMyKSwgCi0JLkEwKHBfZGF0YV9vdXRbMTJdKSk7Ci0gICBBTzIyWDQgZzgzMTAgKC5ZKG5fMTE5MiksIAotCS5CMShuXzExOTQpLCAKLQkuQjAobl83NTEpLCAKLQkuQTEobl8zMiksIAotCS5BMChwX2RhdGFfb3V0WzBdKSk7Ci0gICBBTzIyWDQgZzgzMTEgKC5ZKG5fMTE5MyksIAotCS5CMShuXzExOTQpLCAKLQkuQjAobl83NjIpLCAKLQkuQTEobl8zMiksIAotCS5BMChwX2RhdGFfb3V0WzExXSkpOwotICAgQU5ENFg2IGc4MzEyICguWShuXzExOTQpLCAKLQkuRChuXzExOTUpLCAKLQkuQyhuXzI4KSwgCi0JLkIobl80MjgpLCAKLQkuQShuXzQwMSkpOwotICAgT1I0WDggZzgzMTMgKC5ZKG5fMTE5NSksIAotCS5EKG5fMTEpLCAKLQkuQyhuXzQ1KSwgCi0JLkIobl80OSksIAotCS5BKGlyWzEyXSkpOwotICAgQU8yMlg0IGc4MzE0ICguWShuXzExOTYpLCAKLQkuQjEobl8yOSksIAotCS5CMChhcjFbOV0pLCAKLQkuQTEobl80MzEpLCAKLQkuQTAoYWNjWzldKSk7Ci0gICBBTzIyWDQgZzgzMTUgKC5ZKG5fMTE5NyksIAotCS5CMShuXzI5KSwgCi0JLkIwKGFyMVs4XSksIAotCS5BMShuXzQzMSksIAotCS5BMChhY2NbOF0pKTsKLSAgIEFPMjJYNCBnODMxNiAoLlkobl8xMTk4KSwgCi0JLkIxKG5fMjkpLCAKLQkuQjAoYXIxWzddKSwgCi0JLkExKG5fNDMxKSwgCi0JLkEwKGFjY1s3XSkpOwotICAgQU8yMlg0IGc4MzE3ICguWShuXzExOTkpLCAKLQkuQjEobl8yOSksIAotCS5CMChhcjFbNl0pLCAKLQkuQTEobl80MzEpLCAKLQkuQTAoYWNjWzZdKSk7Ci0gICBBTzIyWDQgZzgzMTggKC5ZKG5fMTIwMCksIAotCS5CMShuXzI5KSwgCi0JLkIwKGFyMVsxNF0pLCAKLQkuQTEobl80MzEpLCAKLQkuQTAoYWNjWzE0XSkpOwotICAgQU8yMlg0IGc4MzE5ICguWShuXzEyMDEpLCAKLQkuQjEobl8yOSksIAotCS5CMChhcjFbNV0pLCAKLQkuQTEobl80MzEpLCAKLQkuQTAoYWNjWzVdKSk7Ci0gICBBTzIyWDQgZzgzMjAgKC5ZKG5fMTIwMiksIAotCS5CMShuXzI5KSwgCi0JLkIwKGFyMVs0XSksIAotCS5BMShuXzQzMSksIAotCS5BMChhY2NbNF0pKTsKLSAgIEFPMjJYNCBnODMyMSAoLlkobl8xMjAzKSwgCi0JLkIxKG5fMjkpLCAKLQkuQjAoYXIxWzEzXSksIAotCS5BMShuXzQzMSksIAotCS5BMChhY2NbMTNdKSk7Ci0gICBBTzIyWDQgZzgzMjIgKC5ZKG5fMTIwNCksIAotCS5CMShuXzI5KSwgCi0JLkIwKGFyMVszXSksIAotCS5BMShuXzQzMSksIAotCS5BMChhY2NbM10pKTsKLSAgIEFPMjJYNCBnODMyMyAoLlkobl8xMjA1KSwgCi0JLkIxKG5fMjkpLCAKLQkuQjAoYXIxWzJdKSwgCi0JLkExKG5fNDMxKSwgCi0JLkEwKGFjY1syXSkpOwotICAgQU8yMlg0IGc4MzI0ICguWShuXzEyMDYpLCAKLQkuQjEobl8yOSksIAotCS5CMChhcjFbMV0pLCAKLQkuQTEobl80MzEpLCAKLQkuQTAoYWNjWzFdKSk7Ci0gICBBTzIyWDQgZzgzMjUgKC5ZKG5fMTIwNyksIAotCS5CMShuXzI5KSwgCi0JLkIwKGFyMVsxMl0pLCAKLQkuQTEobl80MzEpLCAKLQkuQTAoYWNjWzEyXSkpOwotICAgQU8yMlg0IGc4MzI2ICguWShuXzEyMDgpLCAKLQkuQjEobl8yOSksIAotCS5CMChhcjFbMF0pLCAKLQkuQTEobl80MzEpLCAKLQkuQTAoYWNjWzBdKSk7Ci0gICBBTzIyWDQgZzgzMjcgKC5ZKG5fMTIwOSksIAotCS5CMShuXzI5KSwgCi0JLkIwKGFyMVsxNV0pLCAKLQkuQTEobl80MzEpLCAKLQkuQTAoYWNjWzE1XSkpOwotICAgQU8yMlg0IGc4MzI4ICguWShuXzEyMTApLCAKLQkuQjEobl8yOSksIAotCS5CMChhcjFbMTFdKSwgCi0JLkExKG5fNDMxKSwgCi0JLkEwKGFjY1sxMV0pKTsKLSAgIEFPMjJYNCBnODMyOSAoLlkobl8xMjExKSwgCi0JLkIxKG5fMjkpLCAKLQkuQjAoYXIxWzEwXSksIAotCS5BMShuXzQzMSksIAotCS5BMChhY2NbMTBdKSk7Ci0gICBJTlZYTCBnODMzMCAoLlkob3BiWzE1XSksIAotCS5BKG5fMTIxMikpOwotICAgQU9JMjExWDQgZzgzMzEgKC5ZKG5fMTIxMiksIAotCS5DMChuXzEzMzcpLCAKLQkuQjAobl8xOTcpLCAKLQkuQTEobl8xNTEpLCAKLQkuQTAoZGF0YV9vdXRbMTVdKSk7Ci0gICBJTlZYTCBnODMzMiAoLlkob3BiWzE0XSksIAotCS5BKG5fMTIxNCkpOwotICAgQU9JMjExWDQgZzgzMzMgKC5ZKG5fMTIxNCksIAotCS5DMChuXzEzMzgpLCAKLQkuQjAobl8xOTcpLCAKLQkuQTEobl8xOCksIAotCS5BMChwWzE0XSkpOwotICAgSU5WWEwgZzgzMzQgKC5ZKG9wYlsxM10pLCAKLQkuQShuXzEyMTYpKTsKLSAgIEFPSTIxMVg0IGc4MzM1ICguWShuXzEyMTYpLCAKLQkuQzAobl8xMzM5KSwgCi0JLkIwKG5fMTk3KSwgCi0JLkExKG5fMTgpLCAKLQkuQTAocFsxM10pKTsKLSAgIElOVlhMIGc4MzM2ICguWShvcGJbMTJdKSwgCi0JLkEobl8xMjE4KSk7Ci0gICBBT0kyMTFYNCBnODMzNyAoLlkobl8xMjE4KSwgCi0JLkMwKG5fMTM0MCksIAotCS5CMChuXzE5NyksIAotCS5BMShuXzE4KSwgCi0JLkEwKHBbMTJdKSk7Ci0gICBBTkQzWDYgZzgzMzggKC5ZKG5fMTIyMCksIAotCS5DKG5fMjEpLCAKLQkuQihuXzEzNTQpLCAKLQkuQShuXzQ5KSk7Ci0gICBBTzIyWDQgZzgzMzkgKC5ZKGFkZHJzX2luWzBdKSwgCi0JLkIxKG5fMTQwNiksIAotCS5CMChkbW92X2luYyksIAotCS5BMShuXzM4OCksIAotCS5BMChuXzQ2KSk7Ci0gICBJTlZYTCBnODM0MCAoLlkob3BhWzE1XSksIAotCS5BKG5fMTIyMikpOwotICAgQU9JMjIxWDQgZzgzNDEgKC5ZKG5fMTIyMiksIAotCS5DMChuXzMxNyksIAotCS5CMShuXzEzNTUpLCAKLQkuQjAodG9wWzE1XSksIAotCS5BMShuXzEzNTMpLCAKLQkuQTAoYWNjWzE1XSkpOwotICAgSU5WWEwgZzgzNDIgKC5ZKG9wYVs3XSksIAotCS5BKG5fMTIyNCkpOwotICAgQU9JMjIxWDQgZzgzNDMgKC5ZKG5fMTIyNCksIAotCS5DMChuXzEzMjcpLCAKLQkuQjEobl8xMzU2KSwgCi0JLkIwKGlyWzddKSwgCi0JLkExKG5fMTM3OCksIAotCS5BMChkYXRhX291dFs3XSkpOwotICAgTkFORDRCQlg0IGc4MzQ0ICguWShuXzEyMjYpLCAKLQkuRChuXzUxKSwgCi0JLkMobl8yMCksIAotCS5CTihuXzQ4KSwgCi0JLkFOKG5fNDIpKTsKLSAgIElOVlhMIGc4MzQ1ICguWShvcGFbNl0pLCAKLQkuQShuXzEyMjcpKTsKLSAgIEFPSTIyMVg0IGcyICguWShuXzEyMjcpLCAKLQkuQzAobl8xMzI4KSwgCi0JLkIxKG5fMTM1NiksIAotCS5CMChpcls2XSksIAotCS5BMShuXzEzNzgpLCAKLQkuQTAoZGF0YV9vdXRbNl0pKTsKLSAgIElOVlhMIGc4MzQ2ICguWShvcGFbNV0pLCAKLQkuQShuXzEyMjkpKTsKLSAgIEFPSTIyMVg0IGc4MzQ3ICguWShuXzEyMjkpLCAKLQkuQzAobl8xMzI5KSwgCi0JLkIxKG5fMTM1NiksIAotCS5CMChpcls1XSksIAotCS5BMShuXzEzNzgpLCAKLQkuQTAoZGF0YV9vdXRbNV0pKTsKLSAgIElOVlhMIGc4MzQ4ICguWShvcGFbNF0pLCAKLQkuQShuXzEyMzEpKTsKLSAgIEFPSTIyMVg0IGc4MzQ5ICguWShuXzEyMzEpLCAKLQkuQzAobl8xMzMwKSwgCi0JLkIxKG5fMTM1NiksIAotCS5CMChpcls0XSksIAotCS5BMShuXzEzNzgpLCAKLQkuQTAoZGF0YV9vdXRbNF0pKTsKLSAgIElOVlhMIGc4MzUwICguWShvcGFbM10pLCAKLQkuQShuXzEyMzMpKTsKLSAgIEFPSTIyMVg0IGc4MzUxICguWShuXzEyMzMpLCAKLQkuQzAobl8xMzMxKSwgCi0JLkIxKG5fMTM1NiksIAotCS5CMChpclszXSksIAotCS5BMShuXzEzNzgpLCAKLQkuQTAoZGF0YV9vdXRbM10pKTsKLSAgIElOVlhMIGc4MzUyICguWShvcGFbMl0pLCAKLQkuQShuXzEyMzUpKTsKLSAgIEFPSTIyMVg0IGc4MzUzICguWShuXzEyMzUpLCAKLQkuQzAobl8xMzMyKSwgCi0JLkIxKG5fMTM1NiksIAotCS5CMChpclsyXSksIAotCS5BMShuXzEzNzgpLCAKLQkuQTAoZGF0YV9vdXRbMl0pKTsKLSAgIElOVlhMIGc4MzU0ICguWShvcGJbMTFdKSwgCi0JLkEobl8xMjM3KSk7Ci0gICBBT0kyMjFYNCBnODM1NSAoLlkobl8xMjM3KSwgCi0JLkMwKG5fMTMyNiksIAotCS5CMShuXzE0MCksIAotCS5CMChpclsxMV0pLCAKLQkuQTEobl8xOCksIAotCS5BMChwWzExXSkpOwotICAgSU5WWEwgZzgzNTYgKC5ZKG9wYVsxXSksIAotCS5BKG5fMTIzOSkpOwotICAgQU9JMjIxWDQgZzgzNTcgKC5ZKG5fMTIzOSksIAotCS5DMChuXzEzMzMpLCAKLQkuQjEobl8xMzU2KSwgCi0JLkIwKGlyWzFdKSwgCi0JLkExKG5fMTM3OCksIAotCS5BMChkYXRhX291dFsxXSkpOwotICAgSU5WWEwgZzgzNTggKC5ZKG9wYVswXSksIAotCS5BKG5fMTI0MSkpOwotICAgQU9JMjIxWDQgZzgzNTkgKC5ZKG5fMTI0MSksIAotCS5DMChuXzEzMzQpLCAKLQkuQjEobl8xMzU2KSwgCi0JLkIwKGlyWzBdKSwgCi0JLkExKG5fMTM3OCksIAotCS5BMChkYXRhX291dFswXSkpOwotICAgQU8yMlg0IGc4MzYwICguWShvcGJbMzFdKSwgCi0JLkIxKG5fMjM2KSwgCi0JLkIwKGRhdGFfb3V0WzE1XSksIAotCS5BMShuXzE4KSwgCi0JLkEwKHBbMzFdKSk7Ci0gICBJTlZYTCBnODM2MSAoLlkob3BiWzEwXSksIAotCS5BKG5fMTI0NCkpOwotICAgQU9JMjIxWDQgZzgzNjIgKC5ZKG5fMTI0NCksIAotCS5DMChuXzEzNDEpLCAKLQkuQjEobl8xNDApLCAKLQkuQjAoaXJbMTBdKSwgCi0JLkExKG5fMTgpLCAKLQkuQTAocFsxMF0pKTsKLSAgIElOVlhMIGc4MzYzICguWShvcGJbOV0pLCAKLQkuQShuXzEyNDYpKTsKLSAgIEFPSTIyMVg0IGc4MzY0ICguWShuXzEyNDYpLCAKLQkuQzAobl8xMzM1KSwgCi0JLkIxKG5fMTQwKSwgCi0JLkIwKGlyWzldKSwgCi0JLkExKG5fMTgpLCAKLQkuQTAocFs5XSkpOwotICAgSU5WWEwgZzgzNjUgKC5ZKG9wYls4XSksIAotCS5BKG5fMTI0OCkpOwotICAgQU9JMjExWDQgZzgzNjYgKC5ZKG5fMTI0OCksIAotCS5DMChuXzEzNDMpLCAKLQkuQjAobl8yMDMpLCAKLQkuQTEobl8xOCksIAotCS5BMChwWzhdKSk7Ci0gICBJTlZYTCBnODM2NyAoLlkob3BiWzddKSwgCi0JLkEobl8xMjUwKSk7Ci0gICBBT0kyMjFYNCBnODM2OCAoLlkobl8xMjUwKSwgCi0JLkMwKG5fMTMzNiksIAotCS5CMShuXzE4KSwgCi0JLkIwKHBbN10pLCAKLQkuQTEobl8xNTEpLCAKLQkuQTAoZGF0YV9vdXRbN10pKTsKLSAgIElOVlhMIGc4MzY5ICguWShvcGJbNl0pLCAKLQkuQShuXzEyNTIpKTsKLSAgIEFPSTIyMVg0IGc4MzcwICguWShuXzEyNTIpLCAKLQkuQzAobl8xMzQ0KSwgCi0JLkIxKG5fMTQwKSwgCi0JLkIwKGlyWzZdKSwgCi0JLkExKG5fMTgpLCAKLQkuQTAocFs2XSkpOwotICAgSU5WWEwgZzgzNzEgKC5ZKG9wYls1XSksIAotCS5BKG5fMTI1NCkpOwotICAgQU9JMjIxWDQgZzgzNzIgKC5ZKG5fMTI1NCksIAotCS5DMChuXzEzNDUpLCAKLQkuQjEobl8xNDApLCAKLQkuQjAoaXJbNV0pLCAKLQkuQTEobl8xOCksIAotCS5BMChwWzVdKSk7Ci0gICBJTlZYTCBnODM3MyAoLlkob3BiWzRdKSwgCi0JLkEobl8xMjU2KSk7Ci0gICBBT0kyMjFYNCBnODM3NCAoLlkobl8xMjU2KSwgCi0JLkMwKG5fMTM0NiksIAotCS5CMShuXzE0MCksIAotCS5CMChpcls0XSksIAotCS5BMShuXzE4KSwgCi0JLkEwKHBbNF0pKTsKLSAgIElOVlhMIGc4Mzc1ICguWShvcGJbM10pLCAKLQkuQShuXzEyNTgpKTsKLSAgIEFPSTIyMVg0IGc4Mzc2ICguWShuXzEyNTgpLCAKLQkuQzAobl8xMzQ3KSwgCi0JLkIxKG5fMTQwKSwgCi0JLkIwKGlyWzNdKSwgCi0JLkExKG5fMTgpLCAKLQkuQTAocFszXSkpOwotICAgSU5WWEwgZzgzNzcgKC5ZKG9wYlsyXSksIAotCS5BKG5fMTI2MCkpOwotICAgQU9JMjIxWDQgZzgzNzggKC5ZKG5fMTI2MCksIAotCS5DMChuXzEzNDkpLCAKLQkuQjEobl8xOCksIAotCS5CMChwWzJdKSwgCi0JLkExKG5fMTUxKSwgCi0JLkEwKGRhdGFfb3V0WzJdKSk7Ci0gICBJTlZYTCBnODM3OSAoLlkob3BiWzFdKSwgCi0JLkEobl8xMjYyKSk7Ci0gICBBT0kyMjFYNCBnODM4MCAoLlkobl8xMjYyKSwgCi0JLkMwKG5fMTM1MCksIAotCS5CMShuXzE0MCksIAotCS5CMChpclsxXSksIAotCS5BMShuXzE4KSwgCi0JLkEwKHBbMV0pKTsKLSAgIElOVlhMIGc4MzgxICguWShvcGJbMF0pLCAKLQkuQShuXzEyNjQpKTsKLSAgIEFPSTIyMVg0IGc4MzgyICguWShuXzEyNjQpLCAKLQkuQzAobl8xMzUxKSwgCi0JLkIxKG5fMTQwKSwgCi0JLkIwKGlyWzBdKSwgCi0JLkExKG5fMTgpLCAKLQkuQTAocFswXSkpOwotICAgSU5WWEwgZzgzODMgKC5ZKG9wYVsxNF0pLCAKLQkuQShuXzEzNzkpKTsKLSAgIElOVlhMIGc4Mzg1ICguWShvcGFbMTNdKSwgCi0JLkEobl8xMzgwKSk7Ci0gICBJTlZYTCBnODM4NyAoLlkob3BhWzEyXSksIAotCS5BKG5fMTM4MSkpOwotICAgSU5WWEwgZzgzODkgKC5ZKG9wYVsxMV0pLCAKLQkuQShuXzEzODIpKTsKLSAgIElOVlhMIGc4MzkxICguWShvcGFbMTBdKSwgCi0JLkEobl8xMzgzKSk7Ci0gICBJTlZYTCBnODM5MyAoLlkob3BhWzldKSwgCi0JLkEobl8xMzg0KSk7Ci0gICBJTlZYTCBnODM5NSAoLlkob3BhWzhdKSwgCi0JLkEobl8xMzg1KSk7Ci0gICBJTlZYTCBnODM5NyAoLlkob3BiWzMwXSksIAotCS5BKG5fMTM4NikpOwotICAgSU5WWEwgZzgzOTkgKC5ZKG9wYlsyOV0pLCAKLQkuQShuXzEzODcpKTsKLSAgIElOVlhMIGc4NDAxICguWShvcGJbMjhdKSwgCi0JLkEobl8xMzg4KSk7Ci0gICBJTlZYTCBnODQwMyAoLlkob3BiWzI3XSksIAotCS5BKG5fMTM4OSkpOwotICAgSU5WWEwgZzg0MDUgKC5ZKG9wYlsyNl0pLCAKLQkuQShuXzEzOTApKTsKLSAgIElOVlhMIGc4NDA3ICguWShvcGJbMjVdKSwgCi0JLkEobl8xMzkxKSk7Ci0gICBJTlZYTCBnODQwOSAoLlkob3BiWzI0XSksIAotCS5BKG5fMTM5MikpOwotICAgSU5WWEwgZzg0MTEgKC5ZKG9wYlsyM10pLCAKLQkuQShuXzEzOTMpKTsKLSAgIElOVlhMIGc4NDEzICguWShvcGJbMjJdKSwgCi0JLkEobl8xMzk0KSk7Ci0gICBJTlZYTCBnODQxNSAoLlkob3BiWzIxXSksIAotCS5BKG5fMTM5NSkpOwotICAgSU5WWEwgZzg0MTcgKC5ZKG9wYlsyMF0pLCAKLQkuQShuXzEzOTYpKTsKLSAgIElOVlhMIGc4NDE5ICguWShvcGJbMTldKSwgCi0JLkEobl8xMzk3KSk7Ci0gICBJTlZYTCBnODQyMSAoLlkob3BiWzE4XSksIAotCS5BKG5fMTM5OCkpOwotICAgSU5WWEwgZzg0MjMgKC5ZKG9wYlsxN10pLCAKLQkuQShuXzEzOTkpKTsKLSAgIElOVlhMIGc4NDI1ICguWShvcGJbMTZdKSwgCi0JLkEobl8xNDAwKSk7Ci0gICBBTzIxWDQgZzg0MjcgKC5ZKG9wYVszMV0pLCAKLQkuQjAobl8zMTcpLCAKLQkuQTEobl8xMzUzKSwgCi0JLkEwKGFjY1szMV0pKTsKLSAgIEFPMjFYNCBnODQyOCAoLlkob3BhWzMwXSksIAotCS5CMChuXzMxNyksIAotCS5BMShuXzEzNTMpLCAKLQkuQTAoYWNjWzMwXSkpOwotICAgQU8yMVg0IGc4NDI5ICguWShvcGFbMjldKSwgCi0JLkIwKG5fMzE3KSwgCi0JLkExKG5fMTM1MyksIAotCS5BMChhY2NbMjldKSk7Ci0gICBBTzIxWDQgZzg0MzAgKC5ZKG9wYVsyOF0pLCAKLQkuQjAobl8zMTcpLCAKLQkuQTEobl8xMzUzKSwgCi0JLkEwKGFjY1syOF0pKTsKLSAgIEFPMjFYNCBnODQzMSAoLlkob3BhWzI3XSksIAotCS5CMChuXzMxNyksIAotCS5BMShuXzEzNTMpLCAKLQkuQTAoYWNjWzI3XSkpOwotICAgQU8yMVg0IGc4NDMyICguWShvcGFbMjZdKSwgCi0JLkIwKG5fMzE3KSwgCi0JLkExKG5fMTM1MyksIAotCS5BMChhY2NbMjZdKSk7Ci0gICBBTzIxWDQgZzg0MzMgKC5ZKG9wYVsyNV0pLCAKLQkuQjAobl8zMTcpLCAKLQkuQTEobl8xMzUzKSwgCi0JLkEwKGFjY1syNV0pKTsKLSAgIEFPMjFYNCBnODQzNCAoLlkob3BhWzI0XSksIAotCS5CMChuXzMxNyksIAotCS5BMShuXzEzNTMpLCAKLQkuQTAoYWNjWzI0XSkpOwotICAgQU8yMVg0IGc4NDM1ICguWShvcGFbMjNdKSwgCi0JLkIwKG5fMzE3KSwgCi0JLkExKG5fMTM1MyksIAotCS5BMChhY2NbMjNdKSk7Ci0gICBBTzIxWDQgZzg0MzYgKC5ZKG9wYVsyMl0pLCAKLQkuQjAobl8zMTcpLCAKLQkuQTEobl8xMzUzKSwgCi0JLkEwKGFjY1syMl0pKTsKLSAgIEFPMjFYNCBnODQzNyAoLlkob3BhWzIxXSksIAotCS5CMChuXzMxNyksIAotCS5BMShuXzEzNTMpLCAKLQkuQTAoYWNjWzIxXSkpOwotICAgQU8yMVg0IGc4NDM4ICguWShvcGFbMjBdKSwgCi0JLkIwKG5fMzE3KSwgCi0JLkExKG5fMTM1MyksIAotCS5BMChhY2NbMjBdKSk7Ci0gICBBTzIxWDQgZzg0MzkgKC5ZKG9wYVsxOV0pLCAKLQkuQjAobl8zMTcpLCAKLQkuQTEobl8xMzUzKSwgCi0JLkEwKGFjY1sxOV0pKTsKLSAgIEFPMjFYNCBnODQ0MCAoLlkob3BhWzE4XSksIAotCS5CMChuXzMxNyksIAotCS5BMShuXzEzNTMpLCAKLQkuQTAoYWNjWzE4XSkpOwotICAgQU8yMVg0IGc4NDQxICguWShvcGFbMTddKSwgCi0JLkIwKG5fMzE3KSwgCi0JLkExKG5fMTM1MyksIAotCS5BMChhY2NbMTddKSk7Ci0gICBBTzIxWDQgZzg0NDIgKC5ZKG9wYVsxNl0pLCAKLQkuQjAobl8zMTcpLCAKLQkuQTEobl8xMzUzKSwgCi0JLkEwKGFjY1sxNl0pKTsKLSAgIEFPMjJYNCBnODQ0MyAoLlkobl8xMzI2KSwgCi0JLkIxKFxzZV9zaGlmdF9tZHJbMTFdXzQyNiApLCAKLQkuQjAobl85NiksIAotCS5BMShuXzE1MSksIAotCS5BMChkYXRhX291dFsxMV0pKTsKLSAgIEFPMjJYNCBnODQ0NCAoLlkobl8xMzI3KSwgCi0JLkIxKG5fMTM1NSksIAotCS5CMCh0b3BbN10pLCAKLQkuQTEobl8xMzUzKSwgCi0JLkEwKGFjY1s3XSkpOwotICAgQU8yMlg0IGc4NDQ1ICguWShuXzEzMjgpLCAKLQkuQjEobl8xMzU1KSwgCi0JLkIwKHRvcFs2XSksIAotCS5BMShuXzEzNTMpLCAKLQkuQTAoYWNjWzZdKSk7Ci0gICBBTzIyWDQgZzg0NDYgKC5ZKG5fMTMyOSksIAotCS5CMShuXzEzNTUpLCAKLQkuQjAodG9wWzVdKSwgCi0JLkExKG5fMTM1MyksIAotCS5BMChhY2NbNV0pKTsKLSAgIEFPMjJYNCBnODQ0NyAoLlkobl8xMzMwKSwgCi0JLkIxKG5fMTM1NSksIAotCS5CMCh0b3BbNF0pLCAKLQkuQTEobl8xMzUzKSwgCi0JLkEwKGFjY1s0XSkpOwotICAgQU8yMlg0IGc4NDQ4ICguWShuXzEzMzEpLCAKLQkuQjEobl8xMzU1KSwgCi0JLkIwKHRvcFszXSksIAotCS5BMShuXzEzNTMpLCAKLQkuQTAoYWNjWzNdKSk7Ci0gICBBTzIyWDQgZzg0NDkgKC5ZKG5fMTMzMiksIAotCS5CMShuXzEzNTUpLCAKLQkuQjAodG9wWzJdKSwgCi0JLkExKG5fMTM1MyksIAotCS5BMChhY2NbMl0pKTsKLSAgIEFPMjJYNCBnODQ1MCAoLlkobl8xMzMzKSwgCi0JLkIxKG5fMTM1NSksIAotCS5CMCh0b3BbMV0pLCAKLQkuQTEobl8xMzUzKSwgCi0JLkEwKGFjY1sxXSkpOwotICAgQU8yMlg0IGc4NDUxICguWShuXzEzMzQpLCAKLQkuQjEobl8xMzU1KSwgCi0JLkIwKHRvcFswXSksIAotCS5BMShuXzEzNTMpLCAKLQkuQTAoYWNjWzBdKSk7Ci0gICBBTzIyWDQgZzg0NTIgKC5ZKG5fMTMzNSksIAotCS5CMShcc2Vfc2hpZnRfbWRyWzldXzQyNCApLCAKLQkuQjAobl85NiksIAotCS5BMShuXzE1MSksIAotCS5BMChkYXRhX291dFs5XSkpOwotICAgQU8yMlg0IGc4NDUzICguWShuXzEzMzYpLCAKLQkuQjEoXHNlX3NoaWZ0X21kcls3XV80MjIgKSwgCi0JLkIwKG5fOTYpLCAKLQkuQTEobl8xNDApLCAKLQkuQTAoaXJbN10pKTsKLSAgIEFPMjJYNCBnODQ1NCAoLlkobl8xMzM3KSwgCi0JLkIxKFxzZV9zaGlmdF9tZHJbMTVdXzQzMCApLCAKLQkuQjAobl85NiksIAotCS5BMShuXzE4KSwgCi0JLkEwKHBbMTVdKSk7Ci0gICBBTzIyWDQgZzg0NTUgKC5ZKG5fMTMzOCksIAotCS5CMShcc2Vfc2hpZnRfbWRyWzE0XV80MjkgKSwgCi0JLkIwKG5fOTYpLCAKLQkuQTEobl8xNTEpLCAKLQkuQTAoZGF0YV9vdXRbMTRdKSk7Ci0gICBBTzIyWDQgZzg0NTYgKC5ZKG5fMTMzOSksIAotCS5CMShcc2Vfc2hpZnRfbWRyWzEzXV80MjggKSwgCi0JLkIwKG5fOTYpLCAKLQkuQTEobl8xNTEpLCAKLQkuQTAoZGF0YV9vdXRbMTNdKSk7Ci0gICBBTzIyWDQgZzg0NTcgKC5ZKG5fMTM0MCksIAotCS5CMShcc2Vfc2hpZnRfbWRyWzEyXV80MjcgKSwgCi0JLkIwKG5fOTYpLCAKLQkuQTEobl8xNTEpLCAKLQkuQTAoZGF0YV9vdXRbMTJdKSk7Ci0gICBBTzIyWDQgZzg0NTggKC5ZKG5fMTM0MSksIAotCS5CMShcc2Vfc2hpZnRfbWRyWzEwXV80MjUgKSwgCi0JLkIwKG5fOTYpLCAKLQkuQTEobl8xNTEpLCAKLQkuQTAoZGF0YV9vdXRbMTBdKSk7Ci0gICBPQTIyWDQgZzg0NTkgKC5ZKG5fMTM0MiksIAotCS5CMShhclsyXSksIAotCS5CMChuXzUwKSwgCi0JLkExKGlyWzJdKSwgCi0JLkEwKGlyWzddKSk7Ci0gICBBTzIyWDQgZzg0NjAgKC5ZKG5fMTM0MyksIAotCS5CMShcc2Vfc2hpZnRfbWRyWzhdXzQyMyApLCAKLQkuQjAobl85NiksIAotCS5BMShuXzE1MSksIAotCS5BMChkYXRhX291dFs4XSkpOwotICAgQU8yMlg0IGc4NDYxICguWShuXzEzNDQpLCAKLQkuQjEoXHNlX3NoaWZ0X21kcls2XV80MjEgKSwgCi0JLkIwKG5fOTYpLCAKLQkuQTEobl8xNTEpLCAKLQkuQTAoZGF0YV9vdXRbNl0pKTsKLSAgIEFPMjJYNCBnODQ2MiAoLlkobl8xMzQ1KSwgCi0JLkIxKFxzZV9zaGlmdF9tZHJbNV1fNDIwICksIAotCS5CMChuXzk2KSwgCi0JLkExKG5fMTUxKSwgCi0JLkEwKGRhdGFfb3V0WzVdKSk7Ci0gICBBTzIyWDQgZzg0NjMgKC5ZKG5fMTM0NiksIAotCS5CMShcc2Vfc2hpZnRfbWRyWzRdXzQxOSApLCAKLQkuQjAobl85NiksIAotCS5BMShuXzE1MSksIAotCS5BMChkYXRhX291dFs0XSkpOwotICAgQU8yMlg0IGc4NDY0ICguWShuXzEzNDcpLCAKLQkuQjEoXHNlX3NoaWZ0X21kclszXV80MTggKSwgCi0JLkIwKG5fOTYpLCAKLQkuQTEobl8xNTEpLCAKLQkuQTAoZGF0YV9vdXRbM10pKTsKLSAgIE9BMjJYNCBnODQ2NSAoLlkobl8xMzQ4KSwgCi0JLkIxKGFyWzddKSwgCi0JLkIwKG5fNTApLCAKLQkuQTEoaXJbN10pLCAKLQkuQTAoZHApKTsKLSAgIEFPMjJYNCBnODQ2NiAoLlkobl8xMzQ5KSwgCi0JLkIxKG5fOTQ4KSwgCi0JLkIwKG5fOTYpLCAKLQkuQTEobl8xNDApLCAKLQkuQTAoaXJbMl0pKTsKLSAgIEFPMjJYNCBnODQ2NyAoLlkobl8xMzUwKSwgCi0JLkIxKFxzZV9zaGlmdF9tZHJbMV1fNDE2ICksIAotCS5CMChuXzk2KSwgCi0JLkExKG5fMTUxKSwgCi0JLkEwKGRhdGFfb3V0WzFdKSk7Ci0gICBBTzIyWDQgZzg0NjggKC5ZKG5fMTM1MSksIAotCS5CMShcc2Vfc2hpZnRfbWRyWzBdXzQxNSApLCAKLQkuQjAobl85NiksIAotCS5BMShuXzE1MSksIAotCS5BMChkYXRhX291dFswXSkpOwotICAgT0EyMlg0IGc4NDY5ICguWShuXzEzNTIpLCAKLQkuQjEoYXJbNl0pLCAKLQkuQjAobl81MCksIAotCS5BMShpcls2XSksIAotCS5BMChpcls3XSkpOwotICAgQU5EM1g2IGc4NDcwICguWShuXzEzNTMpLCAKLQkuQyhuXzQ0KSwgCi0JLkIobl80NyksIAotCS5BKHNlbF9vcF9hWzBdKSk7Ci0gICBBTkQzWDYgZzg0NzEgKC5ZKG5fMTM1NCksIAotCS5DKG5fNDUpLCAKLQkuQihpclsxNF0pLCAKLQkuQShuXzQyKSk7Ci0gICBBTkQzWDYgZzg0NzIgKC5ZKG5fMTM1NSksIAotCS5DKG5fNDcpLCAKLQkuQihzZWxfb3BfYVsxXSksIAotCS5BKHNlbF9vcF9hWzBdKSk7Ci0gICBBTkQzWDYgZzg0NzMgKC5ZKG5fMTM1NiksIAotCS5DKHNlbF9vcF9hWzFdKSwgCi0JLkIoc2VsX29wX2FbMl0pLCAKLQkuQShzZWxfb3BfYVswXSkpOwotICAgT1IzWDYgZzg0NzQgKC5ZKG5fMTM1NyksIAotCS5DKGlyWzE0XSksIAotCS5CKGlyWzE1XSksIAotCS5BKG5fNDIpKTsKLSAgIEFPMjJYNCBnODQ3NSAoLlkocF9hZGRyc19pbls3XSksIAotCS5CMShwY19hY2MpLCAKLQkuQjAoYWNjWzddKSwgCi0JLkExKG5fNDApLCAKLQkuQTAocGNbN10pKTsKLSAgIEFPMjJYNCBnODQ3NiAoLlkocF9hZGRyc19pblsyXSksIAotCS5CMShwY19hY2MpLCAKLQkuQjAoYWNjWzJdKSwgCi0JLkExKG5fNDApLCAKLQkuQTAocGNbMl0pKTsKLSAgIEFPMjJYNCBnODQ3NyAoLlkoYXJbNl0pLCAKLQkuQjEoYXJwKSwgCi0JLkIwKGFyMVs2XSksIAotCS5BMShuXzQxKSwgCi0JLkEwKGFyMFs2XSkpOwotICAgQU8yMlg0IGc4NDc4ICguWShhcls3XSksIAotCS5CMShhcnApLCAKLQkuQjAoYXIxWzddKSwgCi0JLkExKG5fNDEpLCAKLQkuQTAoYXIwWzddKSk7Ci0gICBBTzIyWDQgZzg0NzkgKC5ZKHBfYWRkcnNfaW5bNV0pLCAKLQkuQjEocGNfYWNjKSwgCi0JLkIwKGFjY1s1XSksIAotCS5BMShuXzQwKSwgCi0JLkEwKHBjWzVdKSk7Ci0gICBPQTIyWDQgZzg0ODAgKC5ZKGFyWzJdKSwgCi0JLkIxKGFyMFsyXSksIAotCS5CMChhcnApLCAKLQkuQTEobl80MSksIAotCS5BMChhcjFbMl0pKTsKLSAgIEFPMjJYNCBnODQ4MSAoLlkocF9hZGRyc19pbls2XSksIAotCS5CMShwY19hY2MpLCAKLQkuQjAoYWNjWzZdKSwgCi0JLkExKG5fNDApLCAKLQkuQTAocGNbNl0pKTsKLSAgIEFPMjJYNCBnODQ4MiAoLlkocF9hZGRyc19pbls0XSksIAotCS5CMShwY19hY2MpLCAKLQkuQjAoYWNjWzRdKSwgCi0JLkExKG5fNDApLCAKLQkuQTAocGNbNF0pKTsKLSAgIEFPMjJYNCBnODQ4MyAoLlkocF9hZGRyc19pblszXSksIAotCS5CMShwY19hY2MpLCAKLQkuQjAoYWNjWzNdKSwgCi0JLkExKG5fNDApLCAKLQkuQTAocGNbM10pKTsKLSAgIEFPMjJYNCBnODQ4NCAoLlkocF9hZGRyc19pblsxXSksIAotCS5CMShwY19hY2MpLCAKLQkuQjAoYWNjWzFdKSwgCi0JLkExKG5fNDApLCAKLQkuQTAocGNbMV0pKTsKLSAgIEFPMjJYNCBnODQ4NSAoLlkocF9hZGRyc19pblswXSksIAotCS5CMShwY19hY2MpLCAKLQkuQjAoYWNjWzBdKSwgCi0JLkExKG5fNDApLCAKLQkuQTAocGNbMF0pKTsKLSAgIEFPMjJYNCBnODQ4NiAoLlkoYXJbMTVdKSwgCi0JLkIxKGFycCksIAotCS5CMChhcjFbMTVdKSwgCi0JLkExKG5fNDEpLCAKLQkuQTAoYXIwWzE1XSkpOwotICAgQU8yMlg0IGc4NDg3ICguWShhclsxNF0pLCAKLQkuQjEoYXJwKSwgCi0JLkIwKGFyMVsxNF0pLCAKLQkuQTEobl80MSksIAotCS5BMChhcjBbMTRdKSk7Ci0gICBBTzIyWDQgZzg0ODggKC5ZKGFyWzEzXSksIAotCS5CMShhcnApLCAKLQkuQjAoYXIxWzEzXSksIAotCS5BMShuXzQxKSwgCi0JLkEwKGFyMFsxM10pKTsKLSAgIEFPMjJYNCBnODQ4OSAoLlkoYXJbMTJdKSwgCi0JLkIxKGFycCksIAotCS5CMChhcjFbMTJdKSwgCi0JLkExKG5fNDEpLCAKLQkuQTAoYXIwWzEyXSkpOwotICAgQU8yMlg0IGc4NDkwICguWShhclsxMV0pLCAKLQkuQjEoYXJwKSwgCi0JLkIwKGFyMVsxMV0pLCAKLQkuQTEobl80MSksIAotCS5BMChhcjBbMTFdKSk7Ci0gICBBTzIyWDQgZzg0OTEgKC5ZKGFyWzEwXSksIAotCS5CMShhcnApLCAKLQkuQjAoYXIxWzEwXSksIAotCS5BMShuXzQxKSwgCi0JLkEwKGFyMFsxMF0pKTsKLSAgIEFPMjJYNCBnODQ5MiAoLlkoYXJbOV0pLCAKLQkuQjEoYXJwKSwgCi0JLkIwKGFyMVs5XSksIAotCS5BMShuXzQxKSwgCi0JLkEwKGFyMFs5XSkpOwotICAgQU8yMlg0IGc4NDkzICguWShhcls4XSksIAotCS5CMShhcnApLCAKLQkuQjAoYXIxWzhdKSwgCi0JLkExKG5fNDEpLCAKLQkuQTAoYXIwWzhdKSk7Ci0gICBOQU5EM0JYNCBnODQ5NCAoLlkobl8xMzc3KSwgCi0JLkMobl8yMSksIAotCS5CKGlyWzEyXSksIAotCS5BTihuXzEzNTcpKTsKLSAgIE9BSTJCQjFYNCBnODQ5NSAoLlkobl8xMzc4KSwgCi0JLkIwKHNlbF9vcF9hWzBdKSwgCi0JLkExTihuXzQ0KSwgCi0JLkEwTihzZWxfb3BfYVsyXSkpOwotICAgQU9JMjIyWDQgZzg0OTYgKC5ZKG5fMTM3OSksIAotCS5DMShuXzEzNTMpLCAKLQkuQzAoYWNjWzE0XSksIAotCS5CMShuXzEzNzgpLCAKLQkuQjAoZGF0YV9vdXRbMTRdKSwgCi0JLkExKG5fMTM1NSksIAotCS5BMCh0b3BbMTRdKSk7Ci0gICBBT0kyMjJYNCBnODQ5NyAoLlkobl8xMzgwKSwgCi0JLkMxKG5fMTM1MyksIAotCS5DMChhY2NbMTNdKSwgCi0JLkIxKG5fMTM3OCksIAotCS5CMChkYXRhX291dFsxM10pLCAKLQkuQTEobl8xMzU1KSwgCi0JLkEwKHRvcFsxM10pKTsKLSAgIEFPSTIyMlg0IGc4NDk4ICguWShuXzEzODEpLCAKLQkuQzEobl8xMzU1KSwgCi0JLkMwKHRvcFsxMl0pLCAKLQkuQjEobl8xMzc4KSwgCi0JLkIwKGRhdGFfb3V0WzEyXSksIAotCS5BMShuXzEzNTMpLCAKLQkuQTAoYWNjWzEyXSkpOwotICAgQU9JMjIyWDQgZzg0OTkgKC5ZKG5fMTM4MiksIAotCS5DMShuXzEzNTUpLCAKLQkuQzAodG9wWzExXSksIAotCS5CMShuXzEzNzgpLCAKLQkuQjAoZGF0YV9vdXRbMTFdKSwgCi0JLkExKG5fMTM1MyksIAotCS5BMChhY2NbMTFdKSk7Ci0gICBBT0kyMjJYNCBnODUwMCAoLlkobl8xMzgzKSwgCi0JLkMxKG5fMTM1NSksIAotCS5DMCh0b3BbMTBdKSwgCi0JLkIxKG5fMTM1MyksIAotCS5CMChhY2NbMTBdKSwgCi0JLkExKG5fMTM3OCksIAotCS5BMChkYXRhX291dFsxMF0pKTsKLSAgIEFPSTIyMlg0IGc4NTAxICguWShuXzEzODQpLCAKLQkuQzEobl8xMzU1KSwgCi0JLkMwKHRvcFs5XSksIAotCS5CMShuXzEzNTMpLCAKLQkuQjAoYWNjWzldKSwgCi0JLkExKG5fMTM3OCksIAotCS5BMChkYXRhX291dFs5XSkpOwotICAgQU9JMjIyWDQgZzg1MDIgKC5ZKG5fMTM4NSksIAotCS5DMShuXzEzNTUpLCAKLQkuQzAodG9wWzhdKSwgCi0JLkIxKG5fMTM3OCksIAotCS5CMChkYXRhX291dFs4XSksIAotCS5BMShuXzEzNTMpLCAKLQkuQTAoYWNjWzhdKSk7Ci0gICBBT0kyMjJYNCBnODUwMyAoLlkobl8xMzg2KSwgCi0JLkMxKG5fMTI0KSwgCi0JLkMwKGRhdGFfb3V0WzE0XSksIAotCS5CMShuXzk2KSwgCi0JLkIwKGRhdGFfb3V0WzE1XSksIAotCS5BMShuXzE4KSwgCi0JLkEwKHBbMzBdKSk7Ci0gICBBT0kyMjJYNCBnODUwNCAoLlkobl8xMzg3KSwgCi0JLkMxKFxzZV9zaGlmdF9tZHJbMjldXzQ0NCApLCAKLQkuQzAobl85NiksIAotCS5CMShuXzE4KSwgCi0JLkIwKHBbMjldKSwgCi0JLkExKG5fMTI0KSwgCi0JLkEwKGRhdGFfb3V0WzEzXSkpOwotICAgQU9JMjIyWDQgZzg1MDUgKC5ZKG5fMTM4OCksIAotCS5DMShcc2Vfc2hpZnRfbWRyWzI4XV80NDMgKSwgCi0JLkMwKG5fOTYpLCAKLQkuQjEobl8xOCksIAotCS5CMChwWzI4XSksIAotCS5BMShuXzEyNCksIAotCS5BMChkYXRhX291dFsxMl0pKTsKLSAgIEFPSTIyMlg0IGc4NTA2ICguWShuXzEzODkpLCAKLQkuQzEoXHNlX3NoaWZ0X21kclsyN11fNDQyICksIAotCS5DMChuXzk2KSwgCi0JLkIxKG5fMTgpLCAKLQkuQjAocFsyN10pLCAKLQkuQTEobl8xMjQpLCAKLQkuQTAoZGF0YV9vdXRbMTFdKSk7Ci0gICBBT0kyMjJYNCBnODUwNyAoLlkobl8xMzkwKSwgCi0JLkMxKFxzZV9zaGlmdF9tZHJbMjZdXzQ0MSApLCAKLQkuQzAobl85NiksIAotCS5CMShuXzE4KSwgCi0JLkIwKHBbMjZdKSwgCi0JLkExKG5fMTI0KSwgCi0JLkEwKGRhdGFfb3V0WzEwXSkpOwotICAgQU9JMjIyWDQgZzg1MDggKC5ZKG5fMTM5MSksIAotCS5DMShcc2Vfc2hpZnRfbWRyWzI1XV80NDAgKSwgCi0JLkMwKG5fOTYpLCAKLQkuQjEobl8xOCksIAotCS5CMChwWzI1XSksIAotCS5BMShuXzEyNCksIAotCS5BMChkYXRhX291dFs5XSkpOwotICAgQU9JMjIyWDQgZzg1MDkgKC5ZKG5fMTM5MiksIAotCS5DMShcc2Vfc2hpZnRfbWRyWzI0XV80MzkgKSwgCi0JLkMwKG5fOTYpLCAKLQkuQjEobl8xOCksIAotCS5CMChwWzI0XSksIAotCS5BMShuXzEyNCksIAotCS5BMChkYXRhX291dFs4XSkpOwotICAgQU9JMjIyWDQgZzg1MTAgKC5ZKG5fMTM5MyksIAotCS5DMShcc2Vfc2hpZnRfbWRyWzIzXV80MzggKSwgCi0JLkMwKG5fOTYpLCAKLQkuQjEobl8xOCksIAotCS5CMChwWzIzXSksIAotCS5BMShuXzEyNCksIAotCS5BMChkYXRhX291dFs3XSkpOwotICAgQU9JMjIyWDQgZzg1MTEgKC5ZKG5fMTM5NCksIAotCS5DMShcc2Vfc2hpZnRfbWRyWzIyXV80MzcgKSwgCi0JLkMwKG5fOTYpLCAKLQkuQjEobl8xOCksIAotCS5CMChwWzIyXSksIAotCS5BMShuXzEyNCksIAotCS5BMChkYXRhX291dFs2XSkpOwotICAgQU9JMjIyWDQgZzg1MTIgKC5ZKG5fMTM5NSksIAotCS5DMShcc2Vfc2hpZnRfbWRyWzIxXV80MzYgKSwgCi0JLkMwKG5fOTYpLCAKLQkuQjEobl8xOCksIAotCS5CMChwWzIxXSksIAotCS5BMShuXzEyNCksIAotCS5BMChkYXRhX291dFs1XSkpOwotICAgQU9JMjIyWDQgZzg1MTMgKC5ZKG5fMTM5NiksIAotCS5DMShcc2Vfc2hpZnRfbWRyWzIwXV80MzUgKSwgCi0JLkMwKG5fOTYpLCAKLQkuQjEobl8xOCksIAotCS5CMChwWzIwXSksIAotCS5BMShuXzEyNCksIAotCS5BMChkYXRhX291dFs0XSkpOwotICAgQU9JMjIyWDQgZzg1MTQgKC5ZKG5fMTM5NyksIAotCS5DMShcc2Vfc2hpZnRfbWRyWzE5XV80MzQgKSwgCi0JLkMwKG5fOTYpLCAKLQkuQjEobl8xOCksIAotCS5CMChwWzE5XSksIAotCS5BMShuXzEyNCksIAotCS5BMChkYXRhX291dFszXSkpOwotICAgQU9JMjIyWDQgZzg1MTUgKC5ZKG5fMTM5OCksIAotCS5DMShcc2Vfc2hpZnRfbWRyWzE4XV80MzMgKSwgCi0JLkMwKG5fOTYpLCAKLQkuQjEobl8xOCksIAotCS5CMChwWzE4XSksIAotCS5BMShuXzEyNCksIAotCS5BMChkYXRhX291dFsyXSkpOwotICAgQU9JMjIyWDQgZzg1MTYgKC5ZKG5fMTM5OSksIAotCS5DMShuXzk1MCksIAotCS5DMChuXzk2KSwgCi0JLkIxKG5fMTgpLCAKLQkuQjAocFsxN10pLCAKLQkuQTEobl8xMjQpLCAKLQkuQTAoZGF0YV9vdXRbMV0pKTsKLSAgIEFPSTIyMlg0IGc4NTE3ICguWShuXzE0MDApLCAKLQkuQzEobl85NDkpLCAKLQkuQzAobl85NiksIAotCS5CMShuXzE4KSwgCi0JLkIwKHBbMTZdKSwgCi0JLkExKG5fMTI0KSwgCi0JLkEwKGRhdGFfb3V0WzBdKSk7Ci0gICBBT0kyQkIxWDQgZzg1MTggKC5ZKG5fMTQwMiksIAotCS5CMChuXzE0MDEpLCAKLQkuQTFOKG5fMTIxKSwgCi0JLkEwTihuXzUwKSk7Ci0gICBOT1IyQlg0IGc4NTE5ICguWShuXzE0MDEpLCAKLQkuQihpcls3XSksIAotCS5BTihpcls0XSkpOwotICAgQU9JMkJCMVg0IGc4NTIwICguWShuXzE0MDQpLCAKLQkuQjAobl8xNDAzKSwgCi0JLkExTihuXzEyMiksIAotCS5BME4obl81MCkpOwotICAgTk9SMkJYNCBnODUyMSAoLlkobl8xNDAzKSwgCi0JLkIoaXJbN10pLCAKLQkuQU4oaXJbMV0pKTsKLSAgIEFPSTJCQjFYNCBnODUyMiAoLlkobl8xNDA2KSwgCi0JLkIwKG5fMTQwNSksIAotCS5BMU4obl8xMTkpLCAKLQkuQTBOKG5fNTApKTsKLSAgIE5PUjJCWDQgZzg1MjMgKC5ZKG5fMTQwNSksIAotCS5CKGlyWzddKSwgCi0JLkFOKGlyWzBdKSk7Ci0gICBBT0kyQkIxWDQgZzg1MjQgKC5ZKG5fMTQwOCksIAotCS5CMChuXzE0MDcpLCAKLQkuQTFOKG5fMTIwKSwgCi0JLkEwTihuXzUwKSk7Ci0gICBOT1IyQlg0IGc4NTI1ICguWShuXzE0MDcpLCAKLQkuQihpcls3XSksIAotCS5BTihpclszXSkpOwotICAgQU9JMkJCMVg0IGc4NTI2ICguWShuXzE0MTApLCAKLQkuQjAobl8xNDA5KSwgCi0JLkExTihuXzExOCksIAotCS5BME4obl81MCkpOwotICAgTk9SMkJYNCBnODUyNyAoLlkobl8xNDA5KSwgCi0JLkIoaXJbN10pLCAKLQkuQU4oaXJbNV0pKTsKLWVuZG1vZHVsZQotCi1tb2R1bGUgQ0tMTlFEMUJXUF9TUENBXzE5ICgKLQlFLCAKLQlDUCwgCi0JVEUsIAotCVEpOwotICAgaW5wdXQgRTsKLSAgIGlucHV0IENQOwotICAgaW5wdXQgVEU7Ci0gICBvdXRwdXQgUTsKLQotICAgVExBVE5UU0NBWDE2IExBVENIICguU0UoVEUpLCAKLQkuRUNLKFEpLCAKLQkuRShFKSwgCi0JLkNLKENQKSk7Ci1lbmRtb2R1bGUKLQotbW9kdWxlIFJDX0NHX01PRF8zMjkxXzMzMDIgKAotCWVuYWJsZSwgCi0JY2tfaW4sIAotCWNrX291dCwgCi0JdGVzdCk7Ci0gICBpbnB1dCBlbmFibGU7Ci0gICBpbnB1dCBja19pbjsKLSAgIG91dHB1dCBja19vdXQ7Ci0gICBpbnB1dCB0ZXN0OwotCi0gICBDS0xOUUQxQldQX1NQQ0FfMTkgUkNfQ0dJQ19JTlNUICguRShlbmFibGUpLCAKLQkuQ1AoY2tfaW4pLCAKLQkuVEUodGVzdCksIAotCS5RKGNrX291dCkpOwotZW5kbW9kdWxlCi0KLW1vZHVsZSBTREZDTlFEMUJXUF9TUENBXzMzMSAoCi0JU0ksIAotCVNFLCAKLQlRLCAKLQlELCAKLQlDUCwgCi0JQ0ROKTsKLSAgIGlucHV0IFNJOwotICAgaW5wdXQgU0U7Ci0gICBvdXRwdXQgUTsKLSAgIGlucHV0IEQ7Ci0gICBpbnB1dCBDUDsKLSAgIGlucHV0IENETjsKLQotICAgU0RGRlJYNCBERkYgKC5TSShTSSksIAotCS5TRShTRSksIAotCS5STihDRE4pLCAKLQkuUShRKSwgCi0JLkQoRCksIAotCS5DSyhDUCkpOwotZW5kbW9kdWxlCi0KLW1vZHVsZSBSU0RGQ1NSSEQyQldQX1JFTUFQX1NQQ18yNDkgKAotCUNETiwgCi0JU0ROLCAKLQlDUCwgCi0JRCwgCi0JU0ksIAotCVNFLCAKLQlTQVZFLCAKLQlOUkVTVE9SRSwgCi0JUSk7Ci0gICBpbnB1dCBDRE47Ci0gICBpbnB1dCBTRE47Ci0gICBpbnB1dCBDUDsKLSAgIGlucHV0IEQ7Ci0gICBpbnB1dCBTSTsKLSAgIGlucHV0IFNFOwotICAgaW5wdXQgU0FWRTsKLSAgIGlucHV0IE5SRVNUT1JFOwotICAgb3V0cHV0IFE7Ci0KLSAgIFNERkNOUUQxQldQX1NQQ0FfMzMxIHN0YXRlX3JlbWFwICguU0koU0kpLCAKLQkuU0UoU0UpLCAKLQkuUShRKSwgCi0JLkQoRCksIAotCS5DUChDUCksIAotCS5DRE4oQ0ROKSk7Ci1lbmRtb2R1bGUKLQotbW9kdWxlIFNERkNOUUQxQldQX1NQQ0FfMzMyICgKLQlTSSwgCi0JU0UsIAotCVEsIAotCUQsIAotCUNQLCAKLQlDRE4pOwotICAgaW5wdXQgU0k7Ci0gICBpbnB1dCBTRTsKLSAgIG91dHB1dCBROwotICAgaW5wdXQgRDsKLSAgIGlucHV0IENQOwotICAgaW5wdXQgQ0ROOwotCi0gICBTREZGUlg0IERGRiAoLlNJKFNJKSwgCi0JLlNFKFNFKSwgCi0JLlJOKENETiksIAotCS5RKFEpLCAKLQkuRChEKSwgCi0JLkNLKENQKSk7Ci1lbmRtb2R1bGUKLQotbW9kdWxlIFJTREZDU1JIRDJCV1BfUkVNQVBfU1BDXzI1MCAoCi0JQ0ROLCAKLQlTRE4sIAotCUNQLCAKLQlELCAKLQlTSSwgCi0JU0UsIAotCVNBVkUsIAotCU5SRVNUT1JFLCAKLQlRKTsKLSAgIGlucHV0IENETjsKLSAgIGlucHV0IFNETjsKLSAgIGlucHV0IENQOwotICAgaW5wdXQgRDsKLSAgIGlucHV0IFNJOwotICAgaW5wdXQgU0U7Ci0gICBpbnB1dCBTQVZFOwotICAgaW5wdXQgTlJFU1RPUkU7Ci0gICBvdXRwdXQgUTsKLQotICAgU0RGQ05RRDFCV1BfU1BDQV8zMzIgc3RhdGVfcmVtYXAgKC5TSShTSSksIAotCS5TRShTRSksIAotCS5RKFEpLCAKLQkuRChEKSwgCi0JLkNQKENQKSwgCi0JLkNETihDRE4pKTsKLWVuZG1vZHVsZQotCi1tb2R1bGUgU0RGQ05RRDFCV1BfU1BDQV8zMzMgKAotCVNJLCAKLQlTRSwgCi0JUSwgCi0JRCwgCi0JQ1AsIAotCUNETik7Ci0gICBpbnB1dCBTSTsKLSAgIGlucHV0IFNFOwotICAgb3V0cHV0IFE7Ci0gICBpbnB1dCBEOwotICAgaW5wdXQgQ1A7Ci0gICBpbnB1dCBDRE47Ci0KLSAgIFNERkZSWDQgREZGICguU0koU0kpLCAKLQkuU0UoU0UpLCAKLQkuUk4oQ0ROKSwgCi0JLlEoUSksIAotCS5EKEQpLCAKLQkuQ0soQ1ApKTsKLWVuZG1vZHVsZQotCi1tb2R1bGUgUlNERkNTUkhEMkJXUF9SRU1BUF9TUENfMjUxICgKLQlDRE4sIAotCVNETiwgCi0JQ1AsIAotCUQsIAotCVNJLCAKLQlTRSwgCi0JU0FWRSwgCi0JTlJFU1RPUkUsIAotCVEpOwotICAgaW5wdXQgQ0ROOwotICAgaW5wdXQgU0ROOwotICAgaW5wdXQgQ1A7Ci0gICBpbnB1dCBEOwotICAgaW5wdXQgU0k7Ci0gICBpbnB1dCBTRTsKLSAgIGlucHV0IFNBVkU7Ci0gICBpbnB1dCBOUkVTVE9SRTsKLSAgIG91dHB1dCBROwotCi0gICBTREZDTlFEMUJXUF9TUENBXzMzMyBzdGF0ZV9yZW1hcCAoLlNJKFNJKSwgCi0JLlNFKFNFKSwgCi0JLlEoUSksIAotCS5EKEQpLCAKLQkuQ1AoQ1ApLCAKLQkuQ0ROKENETikpOwotZW5kbW9kdWxlCi0KLW1vZHVsZSBTREZDTlFEMUJXUF9TUENBXzMzNCAoCi0JU0ksIAotCVNFLCAKLQlRLCAKLQlELCAKLQlDUCwgCi0JQ0ROKTsKLSAgIGlucHV0IFNJOwotICAgaW5wdXQgU0U7Ci0gICBvdXRwdXQgUTsKLSAgIGlucHV0IEQ7Ci0gICBpbnB1dCBDUDsKLSAgIGlucHV0IENETjsKLQotICAgU0RGRlJYNCBERkYgKC5TSShTSSksIAotCS5TRShTRSksIAotCS5STihDRE4pLCAKLQkuUShRKSwgCi0JLkQoRCksIAotCS5DSyhDUCkpOwotZW5kbW9kdWxlCi0KLW1vZHVsZSBSU0RGQ1NSSEQyQldQX1JFTUFQX1NQQ18yNTIgKAotCUNETiwgCi0JU0ROLCAKLQlDUCwgCi0JRCwgCi0JU0ksIAotCVNFLCAKLQlTQVZFLCAKLQlOUkVTVE9SRSwgCi0JUSk7Ci0gICBpbnB1dCBDRE47Ci0gICBpbnB1dCBTRE47Ci0gICBpbnB1dCBDUDsKLSAgIGlucHV0IEQ7Ci0gICBpbnB1dCBTSTsKLSAgIGlucHV0IFNFOwotICAgaW5wdXQgU0FWRTsKLSAgIGlucHV0IE5SRVNUT1JFOwotICAgb3V0cHV0IFE7Ci0KLSAgIFNERkNOUUQxQldQX1NQQ0FfMzM0IHN0YXRlX3JlbWFwICguU0koU0kpLCAKLQkuU0UoU0UpLCAKLQkuUShRKSwgCi0JLkQoRCksIAotCS5DUChDUCksIAotCS5DRE4oQ0ROKSk7Ci1lbmRtb2R1bGUKLQotbW9kdWxlIFNERkNOUUQxQldQX1NQQ0FfMzM1ICgKLQlTSSwgCi0JU0UsIAotCVEsIAotCUQsIAotCUNQLCAKLQlDRE4pOwotICAgaW5wdXQgU0k7Ci0gICBpbnB1dCBTRTsKLSAgIG91dHB1dCBROwotICAgaW5wdXQgRDsKLSAgIGlucHV0IENQOwotICAgaW5wdXQgQ0ROOwotCi0gICBTREZGUlg0IERGRiAoLlNJKFNJKSwgCi0JLlNFKFNFKSwgCi0JLlJOKENETiksIAotCS5RKFEpLCAKLQkuRChEKSwgCi0JLkNLKENQKSk7Ci1lbmRtb2R1bGUKLQotbW9kdWxlIFJTREZDU1JIRDJCV1BfUkVNQVBfU1BDXzI1MyAoCi0JQ0ROLCAKLQlTRE4sIAotCUNQLCAKLQlELCAKLQlTSSwgCi0JU0UsIAotCVNBVkUsIAotCU5SRVNUT1JFLCAKLQlRKTsKLSAgIGlucHV0IENETjsKLSAgIGlucHV0IFNETjsKLSAgIGlucHV0IENQOwotICAgaW5wdXQgRDsKLSAgIGlucHV0IFNJOwotICAgaW5wdXQgU0U7Ci0gICBpbnB1dCBTQVZFOwotICAgaW5wdXQgTlJFU1RPUkU7Ci0gICBvdXRwdXQgUTsKLQotICAgU0RGQ05RRDFCV1BfU1BDQV8zMzUgc3RhdGVfcmVtYXAgKC5TSShTSSksIAotCS5TRShTRSksIAotCS5RKFEpLCAKLQkuRChEKSwgCi0JLkNQKENQKSwgCi0JLkNETihDRE4pKTsKLWVuZG1vZHVsZQotCi1tb2R1bGUgU0RGQ05RRDFCV1BfU1BDQV8zMzYgKAotCVNJLCAKLQlTRSwgCi0JUSwgCi0JRCwgCi0JQ1AsIAotCUNETik7Ci0gICBpbnB1dCBTSTsKLSAgIGlucHV0IFNFOwotICAgb3V0cHV0IFE7Ci0gICBpbnB1dCBEOwotICAgaW5wdXQgQ1A7Ci0gICBpbnB1dCBDRE47Ci0KLSAgIC8vIEludGVybmFsIHdpcmVzCi0gICB3aXJlIExUSUVISV9ORVQ7Ci0KLSAgIFRJRUhJIExUSUVISSAoLlkoTFRJRUhJX05FVCkpOwotICAgU0RGRlJYNCBERkYgKC5TSShTSSksIAotCS5TRShTRSksIAotCS5STihMVElFSElfTkVUKSwgCi0JLlEoUSksIAotCS5EKEQpLCAKLQkuQ0soQ1ApKTsKLWVuZG1vZHVsZQotCi1tb2R1bGUgUlNERkNTUkhEMkJXUF9SRU1BUF9TUENfMjU0ICgKLQlDRE4sIAotCVNETiwgCi0JQ1AsIAotCUQsIAotCVNJLCAKLQlTRSwgCi0JU0FWRSwgCi0JTlJFU1RPUkUsIAotCVEpOwotICAgaW5wdXQgQ0ROOwotICAgaW5wdXQgU0ROOwotICAgaW5wdXQgQ1A7Ci0gICBpbnB1dCBEOwotICAgaW5wdXQgU0k7Ci0gICBpbnB1dCBTRTsKLSAgIGlucHV0IFNBVkU7Ci0gICBpbnB1dCBOUkVTVE9SRTsKLSAgIG91dHB1dCBROwotCi0gICBTREZDTlFEMUJXUF9TUENBXzMzNiBzdGF0ZV9yZW1hcCAoLlNJKFNJKSwgCi0JLlNFKFNFKSwgCi0JLlEoUSksIAotCS5EKEQpLCAKLQkuQ1AoQ1ApLCAKLQkuQ0ROKDEnYjEpKTsKLWVuZG1vZHVsZQotCi1tb2R1bGUgU0RGQ05RRDFCV1BfU1BDQV8zMzcgKAotCVNJLCAKLQlTRSwgCi0JUSwgCi0JRCwgCi0JQ1AsIAotCUNETik7Ci0gICBpbnB1dCBTSTsKLSAgIGlucHV0IFNFOwotICAgb3V0cHV0IFE7Ci0gICBpbnB1dCBEOwotICAgaW5wdXQgQ1A7Ci0gICBpbnB1dCBDRE47Ci0KLSAgIFNERkZSWDQgREZGICguU0koU0kpLCAKLQkuU0UoU0UpLCAKLQkuUk4oQ0ROKSwgCi0JLlEoUSksIAotCS5EKEQpLCAKLQkuQ0soQ1ApKTsKLWVuZG1vZHVsZQotCi1tb2R1bGUgUlNERkNTUkhEMkJXUF9SRU1BUF9TUENfMjU1ICgKLQlDRE4sIAotCVNETiwgCi0JQ1AsIAotCUQsIAotCVNJLCAKLQlTRSwgCi0JU0FWRSwgCi0JTlJFU1RPUkUsIAotCVEpOwotICAgaW5wdXQgQ0ROOwotICAgaW5wdXQgU0ROOwotICAgaW5wdXQgQ1A7Ci0gICBpbnB1dCBEOwotICAgaW5wdXQgU0k7Ci0gICBpbnB1dCBTRTsKLSAgIGlucHV0IFNBVkU7Ci0gICBpbnB1dCBOUkVTVE9SRTsKLSAgIG91dHB1dCBROwotCi0gICBTREZDTlFEMUJXUF9TUENBXzMzNyBzdGF0ZV9yZW1hcCAoLlNJKFNJKSwgCi0JLlNFKFNFKSwgCi0JLlEoUSksIAotCS5EKEQpLCAKLQkuQ1AoQ1ApLCAKLQkuQ0ROKENETikpOwotZW5kbW9kdWxlCi0KLW1vZHVsZSBTREZDTlFEMUJXUF9TUENBXzMzOCAoCi0JU0ksIAotCVNFLCAKLQlRLCAKLQlELCAKLQlDUCwgCi0JQ0ROKTsKLSAgIGlucHV0IFNJOwotICAgaW5wdXQgU0U7Ci0gICBvdXRwdXQgUTsKLSAgIGlucHV0IEQ7Ci0gICBpbnB1dCBDUDsKLSAgIGlucHV0IENETjsKLQotICAgU0RGRlJYNCBERkYgKC5TSShTSSksIAotCS5TRShTRSksIAotCS5STihDRE4pLCAKLQkuUShRKSwgCi0JLkQoRCksIAotCS5DSyhDUCkpOwotZW5kbW9kdWxlCi0KLW1vZHVsZSBSU0RGQ1NSSEQyQldQX1JFTUFQX1NQQ18yNTYgKAotCUNETiwgCi0JU0ROLCAKLQlDUCwgCi0JRCwgCi0JU0ksIAotCVNFLCAKLQlTQVZFLCAKLQlOUkVTVE9SRSwgCi0JUSk7Ci0gICBpbnB1dCBDRE47Ci0gICBpbnB1dCBTRE47Ci0gICBpbnB1dCBDUDsKLSAgIGlucHV0IEQ7Ci0gICBpbnB1dCBTSTsKLSAgIGlucHV0IFNFOwotICAgaW5wdXQgU0FWRTsKLSAgIGlucHV0IE5SRVNUT1JFOwotICAgb3V0cHV0IFE7Ci0KLSAgIFNERkNOUUQxQldQX1NQQ0FfMzM4IHN0YXRlX3JlbWFwICguU0koU0kpLCAKLQkuU0UoU0UpLCAKLQkuUShRKSwgCi0JLkQoRCksIAotCS5DUChDUCksIAotCS5DRE4oQ0ROKSk7Ci1lbmRtb2R1bGUKLQotbW9kdWxlIFNERkNOUUQxQldQX1NQQ0FfMzM5ICgKLQlTSSwgCi0JU0UsIAotCVEsIAotCUQsIAotCUNQLCAKLQlDRE4pOwotICAgaW5wdXQgU0k7Ci0gICBpbnB1dCBTRTsKLSAgIG91dHB1dCBROwotICAgaW5wdXQgRDsKLSAgIGlucHV0IENQOwotICAgaW5wdXQgQ0ROOwotCi0gICBTREZGUlg0IERGRiAoLlNJKFNJKSwgCi0JLlNFKFNFKSwgCi0JLlJOKENETiksIAotCS5RKFEpLCAKLQkuRChEKSwgCi0JLkNLKENQKSk7Ci1lbmRtb2R1bGUKLQotbW9kdWxlIFJTREZDU1JIRDJCV1BfUkVNQVBfU1BDXzI1NyAoCi0JQ0ROLCAKLQlTRE4sIAotCUNQLCAKLQlELCAKLQlTSSwgCi0JU0UsIAotCVNBVkUsIAotCU5SRVNUT1JFLCAKLQlRKTsKLSAgIGlucHV0IENETjsKLSAgIGlucHV0IFNETjsKLSAgIGlucHV0IENQOwotICAgaW5wdXQgRDsKLSAgIGlucHV0IFNJOwotICAgaW5wdXQgU0U7Ci0gICBpbnB1dCBTQVZFOwotICAgaW5wdXQgTlJFU1RPUkU7Ci0gICBvdXRwdXQgUTsKLQotICAgU0RGQ05RRDFCV1BfU1BDQV8zMzkgc3RhdGVfcmVtYXAgKC5TSShTSSksIAotCS5TRShTRSksIAotCS5RKFEpLCAKLQkuRChEKSwgCi0JLkNQKENQKSwgCi0JLkNETihDRE4pKTsKLWVuZG1vZHVsZQotCi1tb2R1bGUgdGRzcF9jb3JlX21hY2ggKAotCXNhbXBfYmlvLCAKLQlzYW1wX2ludCwgCi0JcGhpXzEsIAotCXBoaV8yLCAKLQlwaGlfMywgCi0JcGhpXzQsIAotCXBoaV81LCAKLQlwaGlfNiwgCi0JcmVzZXQsIAotCWNsaywgCi0JYnVzX3JlcXVlc3QsIAotCWJ1c19ncmFudCwgCi0JYmlvLCAKLQlpbnQsIAotCVJDX0NHX1RFU1RfUE9SVCwgCi0JU1JQR19QR19pbiwgCi0JU1JQR19QR19pbl8xLCAKLQlERlRfc2RpLCAKLQlERlRfc2VuLCAKLQlERlRfc2RvKTsKLSAgIG91dHB1dCBzYW1wX2JpbzsKLSAgIG91dHB1dCBzYW1wX2ludDsKLSAgIG91dHB1dCBwaGlfMTsKLSAgIG91dHB1dCBwaGlfMjsKLSAgIG91dHB1dCBwaGlfMzsKLSAgIG91dHB1dCBwaGlfNDsKLSAgIG91dHB1dCBwaGlfNTsKLSAgIG91dHB1dCBwaGlfNjsKLSAgIGlucHV0IHJlc2V0OwotICAgaW5wdXQgY2xrOwotICAgaW5wdXQgYnVzX3JlcXVlc3Q7Ci0gICBpbnB1dCBidXNfZ3JhbnQ7Ci0gICBpbnB1dCBiaW87Ci0gICBpbnB1dCBpbnQ7Ci0gICBpbnB1dCBSQ19DR19URVNUX1BPUlQ7Ci0gICBpbnB1dCBTUlBHX1BHX2luOwotICAgaW5wdXQgU1JQR19QR19pbl8xOwotICAgaW5wdXQgREZUX3NkaTsKLSAgIGlucHV0IERGVF9zZW47Ci0gICBvdXRwdXQgREZUX3NkbzsKLQotICAgLy8gSW50ZXJuYWwgd2lyZXMKLSAgIHdpcmUgbl8wOwotICAgd2lyZSBuXzE7Ci0gICB3aXJlIG5fMjsKLSAgIHdpcmUgbl8zOwotICAgd2lyZSBuXzc7Ci0gICB3aXJlIG5fODsKLSAgIHdpcmUgbl85OwotICAgd2lyZSBuXzEwOwotICAgd2lyZSBuXzExOwotICAgd2lyZSBuXzEzOwotICAgd2lyZSBuXzE0OwotICAgd2lyZSBuXzE1OwotICAgd2lyZSBuXzE2OwotICAgd2lyZSBuXzE5OwotICAgd2lyZSBuXzI0OwotICAgd2lyZSBuXzI1OwotICAgd2lyZSBuXzM1OwotICAgd2lyZSBuXzQxOwotICAgd2lyZSBuXzQyOwotICAgd2lyZSBuXzQ0OwotICAgd2lyZSBuXzUyOwotICAgd2lyZSBuXzU2OwotICAgd2lyZSBuXzU3OwotICAgd2lyZSBuXzU4OwotICAgd2lyZSBuXzU5OwotICAgd2lyZSBuXzYwOwotICAgd2lyZSBuXzYxOwotICAgd2lyZSBuXzYyOwotICAgd2lyZSByY19nY2xrOwotICAgd2lyZSBcdGRzcF9zdGF0ZVswXSA7Ci0KLSAgIFJDX0NHX01PRF8zMjkxXzMzMDIgUkNfQ0dfSElFUl9JTlNUMjkgKC5lbmFibGUobl80NCksIAotCS5ja19pbihjbGspLCAKLQkuY2tfb3V0KHJjX2djbGspLCAKLQkudGVzdChSQ19DR19URVNUX1BPUlQpKTsKLSAgIFJTREZDU1JIRDJCV1BfUkVNQVBfU1BDXzI0OSBwaGlfMV9yZWcgKC5DRE4obl8yNCksIAotCS5TRE4oMSdiMSksIAotCS5DUChyY19nY2xrKSwgCi0JLkQobl8yNSksIAotCS5TSShERlRfc2RpKSwgCi0JLlNFKERGVF9zZW4pLCAKLQkuU0FWRSgxJ2IwKSwgCi0JLk5SRVNUT1JFKDEnYjApLCAKLQkuUShwaGlfMSkpOwotICAgUlNERkNTUkhEMkJXUF9SRU1BUF9TUENfMjUwIHBoaV8zX3JlZyAoLkNETihuXzI0KSwgCi0JLlNETigxJ2IxKSwgCi0JLkNQKHJjX2djbGspLCAKLQkuRChuXzU5KSwgCi0JLlNJKHBoaV8xKSwgCi0JLlNFKERGVF9zZW4pLCAKLQkuU0FWRSgxJ2IwKSwgCi0JLk5SRVNUT1JFKDEnYjApLCAKLQkuUShwaGlfMykpOwotICAgUlNERkNTUkhEMkJXUF9SRU1BUF9TUENfMjUxIHBoaV80X3JlZyAoLkNETihuXzI0KSwgCi0JLlNETigxJ2IxKSwgCi0JLkNQKHJjX2djbGspLCAKLQkuRChuXzQxKSwgCi0JLlNJKHBoaV8zKSwgCi0JLlNFKERGVF9zZW4pLCAKLQkuU0FWRSgxJ2IwKSwgCi0JLk5SRVNUT1JFKDEnYjApLCAKLQkuUShwaGlfNCkpOwotICAgUlNERkNTUkhEMkJXUF9SRU1BUF9TUENfMjUyIHBoaV81X3JlZyAoLkNETihuXzI0KSwgCi0JLlNETigxJ2IxKSwgCi0JLkNQKHJjX2djbGspLCAKLQkuRChuXzUyKSwgCi0JLlNJKHBoaV80KSwgCi0JLlNFKERGVF9zZW4pLCAKLQkuU0FWRSgxJ2IwKSwgCi0JLk5SRVNUT1JFKDEnYjApLCAKLQkuUShwaGlfNSkpOwotICAgUlNERkNTUkhEMkJXUF9SRU1BUF9TUENfMjUzIHBoaV82X3JlZyAoLkNETihuXzI0KSwgCi0JLlNETigxJ2IxKSwgCi0JLkNQKHJjX2djbGspLCAKLQkuRChuXzQyKSwgCi0JLlNJKHBoaV81KSwgCi0JLlNFKERGVF9zZW4pLCAKLQkuU0FWRSgxJ2IwKSwgCi0JLk5SRVNUT1JFKDEnYjApLCAKLQkuUShwaGlfNikpOwotICAgUlNERkNTUkhEMkJXUF9SRU1BUF9TUENfMjU0IHNhbXBfYmlvX3JlZyAoLkNETigxJ2IxKSwgCi0JLlNETigxJ2IxKSwgCi0JLkNQKGNsayksIAotCS5EKGJpbyksIAotCS5TSShwaGlfNiksIAotCS5TRShERlRfc2VuKSwgCi0JLlNBVkUoMSdiMCksIAotCS5OUkVTVE9SRSgxJ2IwKSwgCi0JLlEoc2FtcF9iaW8pKTsKLSAgIFJTREZDU1JIRDJCV1BfUkVNQVBfU1BDXzI1NSBcdGRzcF9zdGF0ZV9yZWdbMF0gICguQ0ROKG5fMjQpLCAKLQkuU0ROKDEnYjEpLCAKLQkuQ1AoY2xrKSwgCi0JLkQobl82MiksIAotCS5TSShzYW1wX2JpbyksIAotCS5TRShERlRfc2VuKSwgCi0JLlNBVkUoMSdiMCksIAotCS5OUkVTVE9SRSgxJ2IwKSwgCi0JLlEoXHRkc3Bfc3RhdGVbMF0gKSk7Ci0gICBSU0RGQ1NSSEQyQldQX1JFTUFQX1NQQ18yNTYgXHRkc3Bfc3RhdGVfcmVnWzFdICAoLkNETihuXzI0KSwgCi0JLlNETigxJ2IxKSwgCi0JLkNQKGNsayksIAotCS5EKG5fNTgpLCAKLQkuU0koXHRkc3Bfc3RhdGVbMF0gKSwgCi0JLlNFKERGVF9zZW4pLCAKLQkuU0FWRSgxJ2IwKSwgCi0JLk5SRVNUT1JFKDEnYjApLCAKLQkuUShuXzM1KSk7Ci0gICBSU0RGQ1NSSEQyQldQX1JFTUFQX1NQQ18yNTcgXHRkc3Bfc3RhdGVfcmVnWzJdICAoLkNETihuXzI0KSwgCi0JLlNETigxJ2IxKSwgCi0JLkNQKGNsayksIAotCS5EKG5fNTcpLCAKLQkuU0kobl8zNSksIAotCS5TRShERlRfc2VuKSwgCi0JLlNBVkUoMSdiMCksIAotCS5OUkVTVE9SRSgxJ2IwKSwgCi0JLlEoREZUX3NkbykpOwotICAgSU5WWEwgZzExMiAoLlkobl8yNCksIAotCS5BKHJlc2V0KSk7Ci0gICBPUjJYMiBnMzU5ICguWShuXzE5KSwgCi0JLkIobl8xKSwgCi0JLkEobl8xNSkpOwotICAgQ0xLSU5WWDIgZzM2MiAoLlkobl80NCksIAotCS5BKG5fMikpOwotICAgQ0xLSU5WWDIgZzM2NCAoLlkobl80MSksIAotCS5BKG5fMykpOwotICAgQ0xLSU5WWDEgZzM2NiAoLlkobl8xNiksIAotCS5BKG5fMTUpKTsKLSAgIE9SMlgyIGczNjcgKC5ZKG5fMTUpLCAKLQkuQihuXzkpLCAKLQkuQShERlRfc2RvKSk7Ci0gICBBTkQyWDEgZzM2OCAoLlkobl81MiksIAotCS5CKG5fMCksIAotCS5BKERGVF9zZG8pKTsKLSAgIEFORDJYMSBnMzY5ICguWShuXzE0KSwgCi0JLkIobl8xMSksIAotCS5BKERGVF9zZG8pKTsKLSAgIEFORDJYMSBnMzcxICguWShuXzEzKSwgCi0JLkIobl8xMCksIAotCS5BKG5fOCkpOwotICAgQU5EMlgxIGczNzIgKC5ZKG5fMjUpLCAKLQkuQihuXzApLCAKLQkuQShuXzgpKTsKLSAgIEFORDJYMSBnMzc0ICguWShuXzQyKSwgCi0JLkIobl8xMCksIAotCS5BKERGVF9zZG8pKTsKLSAgIEFORDJYMSBnMzc5ICguWShuXzExKSwgCi0JLkIoXHRkc3Bfc3RhdGVbMF0gKSwgCi0JLkEobl8zNSkpOwotICAgQU5EMlgxIGczODAgKC5ZKG5fMTApLCAKLQkuQihuXzcpLCAKLQkuQShcdGRzcF9zdGF0ZVswXSApKTsKLSAgIE9SMlgyIGczODIgKC5ZKG5fOSksIAotCS5CKG5fNyksIAotCS5BKFx0ZHNwX3N0YXRlWzBdICkpOwotICAgQ0xLSU5WWDEgZzM4MyAoLlkobl84KSwgCi0JLkEoREZUX3NkbykpOwotICAgQ0xLSU5WWDEgZzM4NSAoLlkobl83KSwgCi0JLkEobl8zNSkpOwotICAgTkFORDJCWDQgZzM4OSAoLlkobl8zKSwgCi0JLkIobl8xMSksIAotCS5BTihERlRfc2RvKSk7Ci0gICBOT1IyQlg0IGczOTAgKC5ZKG5fMiksIAotCS5CKG5fOSksIAotCS5BTihERlRfc2RvKSk7Ci0gICBOQU5EMkJYMSBnMzkxICguWShuXzEpLCAKLQkuQihidXNfcmVxdWVzdCksIAotCS5BTihidXNfZ3JhbnQpKTsKLSAgIE5PUjJCWDEgZzM5MiAoLlkobl8wKSwgCi0JLkIoXHRkc3Bfc3RhdGVbMF0gKSwgCi0JLkFOKG5fNykpOwotICAgSU5WWEwgZzM5NCAoLlkobl81NyksIAotCS5BKG5fNTYpKTsKLSAgIE5PUjRCWDQgZzM5NSAoLlkobl81NiksIAotCS5EKG5fNTIpLCAKLQkuQyhuXzQxKSwgCi0JLkIobl8yKSwgCi0JLkFOKG5fMTkpKTsKLSAgIE9SNFg4IGcyICguWShuXzU4KSwgCi0JLkQobl8xMyksIAotCS5DKG5fMTQpLCAKLQkuQihuXzE2KSwgCi0JLkEobl8yKSk7Ci0gICBBTzIxWDQgZzM5NiAoLlkobl81OSksIAotCS5CMChuXzE0KSwgCi0JLkExKG5fMSksIAotCS5BMChuXzE2KSk7Ci0gICBBTzIxWDQgZzM5NyAoLlkobl82MCksIAotCS5CMChuXzQ0KSwgCi0JLkExKGJ1c19ncmFudCksIAotCS5BMChidXNfcmVxdWVzdCkpOwotICAgTk9SM1g4IGczOTggKC5ZKG5fNjIpLCAKLQkuQyhuXzEzKSwgCi0JLkIobl80MiksIAotCS5BKG5fNjEpKTsKLSAgIE5BTkQzWDggZzM5OSAoLlkobl82MSksIAotCS5DKG5fNjApLCAKLQkuQihuXzE5KSwgCi0JLkEobl8zKSk7Ci1lbmRtb2R1bGUKLQotbW9kdWxlIHRkc3BfY29yZSAoCi0JY2xrLCAKLQlyZXNldCwgCi0JYXMsIAotCXJlYWQsIAotCXdyaXRlLCAKLQl3cml0ZV9oLCAKLQlhZGRyZXNzLCAKLQl0X2RhdGFfaW4sIAotCXRfZGF0YV9vdXQsIAotCXBfYXMsIAotCXBfcmVhZCwgCi0JcF93cml0ZSwgCi0JcF93cml0ZV9oLCAKLQlwX2FkZHJlc3MsIAotCXJvbV9kYXRhX2luLCAKLQlyb21fZGF0YV9vdXQsIAotCWJ1c19ncmFudCwgCi0JYnVzX3JlcXVlc3QsIAotCXBvcnRfYWRkcmVzcywgCi0JcG9ydF9wYWRfZGF0YV9pbiwgCi0JcG9ydF9wYWRfZGF0YV9vdXQsIAotCXBvcnRfYXMsIAotCXBvcnRfcmVhZCwgCi0JcG9ydF93cml0ZSwgCi0JcG9ydF93cml0ZV9oLCAKLQl0X3NkaSwgCi0JdF9zZG8sIAotCWJpbywgCi0JaW50LCAKLQlSQ19DR19URVNUX1BPUlQsIAotCVNSUEdfUEdfaW4sIAotCVNSUEdfUEdfaW5fMSwgCi0JREZUX3Nlbik7Ci0gICBpbnB1dCBjbGs7Ci0gICBpbnB1dCByZXNldDsKLSAgIG91dHB1dCBhczsKLSAgIG91dHB1dCByZWFkOwotICAgb3V0cHV0IHdyaXRlOwotICAgb3V0cHV0IHdyaXRlX2g7Ci0gICBvdXRwdXQgWzc6MF0gYWRkcmVzczsKLSAgIGlucHV0IFsxNTowXSB0X2RhdGFfaW47Ci0gICBvdXRwdXQgWzE1OjBdIHRfZGF0YV9vdXQ7Ci0gICBvdXRwdXQgcF9hczsKLSAgIG91dHB1dCBwX3JlYWQ7Ci0gICBvdXRwdXQgcF93cml0ZTsKLSAgIG91dHB1dCBwX3dyaXRlX2g7Ci0gICBvdXRwdXQgWzg6MF0gcF9hZGRyZXNzOwotICAgaW5wdXQgWzE1OjBdIHJvbV9kYXRhX2luOwotICAgb3V0cHV0IFsxNTowXSByb21fZGF0YV9vdXQ7Ci0gICBpbnB1dCBidXNfZ3JhbnQ7Ci0gICBvdXRwdXQgYnVzX3JlcXVlc3Q7Ci0gICBvdXRwdXQgWzI6MF0gcG9ydF9hZGRyZXNzOwotICAgaW5wdXQgWzE1OjBdIHBvcnRfcGFkX2RhdGFfaW47Ci0gICBvdXRwdXQgWzE1OjBdIHBvcnRfcGFkX2RhdGFfb3V0OwotICAgb3V0cHV0IHBvcnRfYXM7Ci0gICBvdXRwdXQgcG9ydF9yZWFkOwotICAgb3V0cHV0IHBvcnRfd3JpdGU7Ci0gICBvdXRwdXQgcG9ydF93cml0ZV9oOwotICAgaW5wdXQgWzI6MF0gdF9zZGk7Ci0gICBvdXRwdXQgWzI6MF0gdF9zZG87Ci0gICBpbnB1dCBiaW87Ci0gICBpbnB1dCBpbnQ7Ci0gICBpbnB1dCBSQ19DR19URVNUX1BPUlQ7Ci0gICBpbnB1dCBTUlBHX1BHX2luOwotICAgaW5wdXQgU1JQR19QR19pbl8xOwotICAgaW5wdXQgREZUX3NlbjsKLQotICAgLy8gSW50ZXJuYWwgd2lyZXMKLSAgIHdpcmUgVU5DT05ORUNURUQyMTsKLSAgIHdpcmUgVU5DT05ORUNURUQyMjsKLSAgIHdpcmUgVU5DT05ORUNURUQyMzsKLSAgIHdpcmUgVU5DT05ORUNURUQyNDsKLSAgIHdpcmUgVU5DT05ORUNURUQyNTsKLSAgIHdpcmUgVU5DT05ORUNURUQyNjsKLSAgIHdpcmUgVU5DT05ORUNURUQyNzsKLSAgIHdpcmUgVU5DT05ORUNURUQyODsKLSAgIHdpcmUgVU5DT05ORUNURUQyOTsKLSAgIHdpcmUgVU5DT05ORUNURUQzMDsKLSAgIHdpcmUgVU5DT05ORUNURUQzMTsKLSAgIHdpcmUgVU5DT05ORUNURUQzMjsKLSAgIHdpcmUgVU5DT05ORUNURUQzMzsKLSAgIHdpcmUgVU5DT05ORUNURUQzNDsKLSAgIHdpcmUgVU5DT05ORUNURUQzNTsKLSAgIHdpcmUgVU5DT05ORUNURUQzNjsKLSAgIHdpcmUgVU5DT05ORUNURUQzNzsKLSAgIHdpcmUgVU5DT05ORUNURUQzODsKLSAgIHdpcmUgVU5DT05ORUNURUQzOTsKLSAgIHdpcmUgVU5DT05ORUNURUQ0MDsKLSAgIHdpcmUgVU5DT05ORUNURUQ0MTsKLSAgIHdpcmUgVU5DT05ORUNURUQ0MjsKLSAgIHdpcmUgVU5DT05ORUNURUQ0MzsKLSAgIHdpcmUgVU5DT05ORUNURUQ0NDsKLSAgIHdpcmUgVU5DT05ORUNURUQ0NTsKLSAgIHdpcmUgVU5DT05ORUNURUQ0NjsKLSAgIHdpcmUgVU5DT05ORUNURUQ0NzsKLSAgIHdpcmUgVU5DT05ORUNURUQ0ODsKLSAgIHdpcmUgVU5DT05ORUNURUQ0OTsKLSAgIHdpcmUgVU5DT05ORUNURUQ1MDsKLSAgIHdpcmUgVU5DT05ORUNURUQ1MTsKLSAgIHdpcmUgVU5DT05ORUNURUQ1MjsKLSAgIHdpcmUgVU5DT05ORUNURUQ1MzsKLSAgIHdpcmUgVU5DT05ORUNURUQ1NDsKLSAgIHdpcmUgVU5DT05ORUNURUQ1NTsKLSAgIHdpcmUgVU5DT05ORUNURUQ1NjsKLSAgIHdpcmUgVU5DT05ORUNURUQ1NzsKLSAgIHdpcmUgVU5DT05ORUNURUQ1ODsKLSAgIHdpcmUgVU5DT05ORUNURUQ1OTsKLSAgIHdpcmUgVU5DT05ORUNURUQ2MDsKLSAgIHdpcmUgVU5DT05ORUNURUQ2MTsKLSAgIHdpcmUgVU5DT05ORUNURUQ2MjsKLSAgIHdpcmUgVU5DT05ORUNURUQ2MzsKLSAgIHdpcmUgVU5DT05ORUNURUQ2NDsKLSAgIHdpcmUgVU5DT05ORUNURUQ2NTsKLSAgIHdpcmUgVU5DT05ORUNURUQ2NjsKLSAgIHdpcmUgVU5DT05ORUNURUQ2NzsKLSAgIHdpcmUgVU5DT05ORUNURUQ2ODsKLSAgIHdpcmUgVU5DT05ORUNURUQ2OTsKLSAgIHdpcmUgVU5DT05ORUNURUQ3MDsKLSAgIHdpcmUgVU5DT05ORUNURUQ3MTsKLSAgIHdpcmUgVU5DT05ORUNURUQ3MjsKLSAgIHdpcmUgVU5DT05ORUNURUQ3MzsKLSAgIHdpcmUgVU5DT05ORUNURUQ3NDsKLSAgIHdpcmUgVU5DT05ORUNURUQ3NTsKLSAgIHdpcmUgVU5DT05ORUNURUQ3NjsKLSAgIHdpcmUgVU5DT05ORUNURUQ3NzsKLSAgIHdpcmUgVU5DT05ORUNURUQ3ODsKLSAgIHdpcmUgVU5DT05ORUNURUQ3OTsKLSAgIHdpcmUgVU5DT05ORUNURUQ4MDsKLSAgIHdpcmUgVU5DT05ORUNURUQ4MTsKLSAgIHdpcmUgVU5DT05ORUNURUQ4MjsKLSAgIHdpcmUgVU5DT05ORUNURUQ4MzsKLSAgIHdpcmUgVU5DT05ORUNURUQ4NDsKLSAgIHdpcmUgVU5DT05ORUNURUQ4NTsKLSAgIHdpcmUgVU5DT05ORUNURUQ4NjsKLSAgIHdpcmUgVU5DT05ORUNURUQ4NzsKLSAgIHdpcmUgVU5DT05ORUNURUQ4ODsKLSAgIHdpcmUgVU5DT05ORUNURUQ4OTsKLSAgIHdpcmUgVU5DT05ORUNURUQ5MDsKLSAgIHdpcmUgVU5DT05ORUNURUQ5MTsKLSAgIHdpcmUgVU5DT05ORUNURUQ5MjsKLSAgIHdpcmUgVU5DT05ORUNURUQ5MzsKLSAgIHdpcmUgVU5DT05ORUNURUQ5NDsKLSAgIHdpcmUgVU5DT05ORUNURUQ5NTsKLSAgIHdpcmUgVU5DT05ORUNURUQ5NjsKLSAgIHdpcmUgVU5DT05ORUNURUQ5NzsKLSAgIHdpcmUgVU5DT05ORUNURUQ5ODsKLSAgIHdpcmUgVU5DT05ORUNURUQ5OTsKLSAgIHdpcmUgVU5DT05ORUNURUQxMDA7Ci0gICB3aXJlIFVOQ09OTkVDVEVEMTAxOwotICAgd2lyZSBVTkNPTk5FQ1RFRDEwMjsKLSAgIHdpcmUgVU5DT05ORUNURUQxMDM7Ci0gICB3aXJlIFVOQ09OTkVDVEVEMTA0OwotICAgd2lyZSBVTkNPTk5FQ1RFRDEwNTsKLSAgIHdpcmUgVU5DT05ORUNURUQxMDY7Ci0gICB3aXJlIFVOQ09OTkVDVEVEMTA3OwotICAgd2lyZSBVTkNPTk5FQ1RFRDEwODsKLSAgIHdpcmUgVU5DT05ORUNURUQxMDk7Ci0gICB3aXJlIFVOQ09OTkVDVEVEMTEwOwotICAgd2lyZSBVTkNPTk5FQ1RFRDExMTsKLSAgIHdpcmUgVU5DT05ORUNURUQxMTI7Ci0gICB3aXJlIFVOQ09OTkVDVEVEMTEzOwotICAgd2lyZSBVTkNPTk5FQ1RFRDExNDsKLSAgIHdpcmUgVU5DT05ORUNURUQxMTU7Ci0gICB3aXJlIFVOQ09OTkVDVEVEMTE2OwotICAgd2lyZSBVTkNPTk5FQ1RFRDExNzsKLSAgIHdpcmUgVU5DT05ORUNURUQxMTg7Ci0gICB3aXJlIFVOQ09OTkVDVEVEMTE5OwotICAgd2lyZSBVTkNPTk5FQ1RFRDEyMDsKLSAgIHdpcmUgVU5DT05ORUNURUQxMjE7Ci0gICB3aXJlIFVOQ09OTkVDVEVEMTIyOwotICAgd2lyZSBVTkNPTk5FQ1RFRDEyMzsKLSAgIHdpcmUgVU5DT05ORUNURUQxMjQ7Ci0gICB3aXJlIFVOQ09OTkVDVEVEMTI1OwotICAgd2lyZSBVTkNPTk5FQ1RFRDEyNjsKLSAgIHdpcmUgVU5DT05ORUNURUQxMjc7Ci0gICB3aXJlIFVOQ09OTkVDVEVEMTI4OwotICAgd2lyZSBVTkNPTk5FQ1RFRDEyOTsKLSAgIHdpcmUgVU5DT05ORUNURUQxMzA7Ci0gICB3aXJlIFVOQ09OTkVDVEVEMTMxOwotICAgd2lyZSBVTkNPTk5FQ1RFRDEzMjsKLSAgIHdpcmUgVU5DT05ORUNURUQxMzM7Ci0gICB3aXJlIFVOQ09OTkVDVEVEMTM0OwotICAgd2lyZSBVTkNPTk5FQ1RFRDEzNTsKLSAgIHdpcmUgVU5DT05ORUNURUQxMzY7Ci0gICB3aXJlIFVOQ09OTkVDVEVEMTM3OwotICAgd2lyZSBVTkNPTk5FQ1RFRDEzODsKLSAgIHdpcmUgVU5DT05ORUNURUQxMzk7Ci0gICB3aXJlIFVOQ09OTkVDVEVEMTQwOwotICAgd2lyZSBVTkNPTk5FQ1RFRDE0MTsKLSAgIHdpcmUgVU5DT05ORUNURUQxNDI7Ci0gICB3aXJlIFVOQ09OTkVDVEVEMTQzOwotICAgd2lyZSBVTkNPTk5FQ1RFRDE0NDsKLSAgIHdpcmUgVU5DT05ORUNURUQxNDU7Ci0gICB3aXJlIFVOQ09OTkVDVEVEMTQ2OwotICAgd2lyZSBVTkNPTk5FQ1RFRDE0NzsKLSAgIHdpcmUgVU5DT05ORUNURUQxNDg7Ci0gICB3aXJlIFVOQ09OTkVDVEVEMTQ5OwotICAgd2lyZSBVTkNPTk5FQ1RFRDE1MDsKLSAgIHdpcmUgVU5DT05ORUNURUQxNTE7Ci0gICB3aXJlIFVOQ09OTkVDVEVEMTUyOwotICAgd2lyZSBVTkNPTk5FQ1RFRDE1MzsKLSAgIHdpcmUgVU5DT05ORUNURUQxNTQ7Ci0gICB3aXJlIFVOQ09OTkVDVEVEMTU1OwotICAgd2lyZSBVTkNPTk5FQ1RFRDE1NjsKLSAgIHdpcmUgVU5DT05ORUNURUQxNTc7Ci0gICB3aXJlIFVOQ09OTkVDVEVEMTU4OwotICAgd2lyZSBVTkNPTk5FQ1RFRDE1OTsKLSAgIHdpcmUgVU5DT05ORUNURUQxNjA7Ci0gICB3aXJlIFVOQ09OTkVDVEVEMTYxOwotICAgd2lyZSBVTkNPTk5FQ1RFRDE2MjsKLSAgIHdpcmUgVU5DT05ORUNURUQxNjM7Ci0gICB3aXJlIFVOQ09OTkVDVEVEMTY0OwotICAgd2lyZSBVTkNPTk5FQ1RFRDE2NTsKLSAgIHdpcmUgVU5DT05ORUNURUQxNjY7Ci0gICB3aXJlIFVOQ09OTkVDVEVEMTY3OwotICAgd2lyZSBVTkNPTk5FQ1RFRDE2ODsKLSAgIHdpcmUgVU5DT05ORUNURUQxNjk7Ci0gICB3aXJlIFVOQ09OTkVDVEVEMTcwOwotICAgd2lyZSBVTkNPTk5FQ1RFRDE3MTsKLSAgIHdpcmUgVU5DT05ORUNURUQxNzI7Ci0gICB3aXJlIFVOQ09OTkVDVEVEMTczOwotICAgd2lyZSBVTkNPTk5FQ1RFRDE3NDsKLSAgIHdpcmUgVU5DT05ORUNURUQxNzU7Ci0gICB3aXJlIFVOQ09OTkVDVEVEMTc2OwotICAgd2lyZSBVTkNPTk5FQ1RFRDE3NzsKLSAgIHdpcmUgVU5DT05ORUNURUQxNzg7Ci0gICB3aXJlIFVOQ09OTkVDVEVEMTc5OwotICAgd2lyZSBVTkNPTk5FQ1RFRDE4MDsKLSAgIHdpcmUgVU5DT05ORUNURUQxODE7Ci0gICB3aXJlIFVOQ09OTkVDVEVEMTgyOwotICAgd2lyZSBVTkNPTk5FQ1RFRDE4MzsKLSAgIHdpcmUgVU5DT05ORUNURUQxODQ7Ci0gICB3aXJlIFVOQ09OTkVDVEVEMTg1OwotICAgd2lyZSBVTkNPTk5FQ1RFRDE4NjsKLSAgIHdpcmUgVU5DT05ORUNURUQxODc7Ci0gICB3aXJlIFVOQ09OTkVDVEVEMTg4OwotICAgd2lyZSBVTkNPTk5FQ1RFRDE4OTsKLSAgIHdpcmUgVU5DT05ORUNURUQxOTA7Ci0gICB3aXJlIFVOQ09OTkVDVEVEMTkxOwotICAgd2lyZSBVTkNPTk5FQ1RFRDE5MjsKLSAgIHdpcmUgVU5DT05ORUNURUQxOTM7Ci0gICB3aXJlIFVOQ09OTkVDVEVEMTk0OwotICAgd2lyZSBVTkNPTk5FQ1RFRDE5NTsKLSAgIHdpcmUgVU5DT05ORUNURUQxOTY7Ci0gICB3aXJlIFVOQ09OTkVDVEVEMTk3OwotICAgd2lyZSBVTkNPTk5FQ1RFRDE5ODsKLSAgIHdpcmUgVU5DT05ORUNURUQxOTk7Ci0gICB3aXJlIFVOQ09OTkVDVEVEMjAwOwotICAgd2lyZSBVTkNPTk5FQ1RFRDIwMTsKLSAgIHdpcmUgVU5DT05ORUNURUQyMDI7Ci0gICB3aXJlIFVOQ09OTkVDVEVEMjAzOwotICAgd2lyZSBVTkNPTk5FQ1RFRDIwNDsKLSAgIHdpcmUgVU5DT05ORUNURUQyMDU7Ci0gICB3aXJlIFVOQ09OTkVDVEVEMjA2OwotICAgd2lyZSBVTkNPTk5FQ1RFRDIwNzsKLSAgIHdpcmUgVU5DT05ORUNURUQyMDg7Ci0gICB3aXJlIFVOQ09OTkVDVEVEMjA5OwotICAgd2lyZSBVTkNPTk5FQ1RFRDIxMDsKLSAgIHdpcmUgVU5DT05ORUNURUQyMTE7Ci0gICB3aXJlIFVOQ09OTkVDVEVEMjEyOwotICAgd2lyZSBVTkNPTk5FQ1RFRDIxMzsKLSAgIHdpcmUgVU5DT05ORUNURUQyMTQ7Ci0gICB3aXJlIFVOQ09OTkVDVEVEMjE1OwotICAgd2lyZSBVTkNPTk5FQ1RFRDIxNjsKLSAgIHdpcmUgVU5DT05ORUNURUQyMTc7Ci0gICB3aXJlIFVOQ09OTkVDVEVEMjE4OwotICAgd2lyZSBVTkNPTk5FQ1RFRDIxOTsKLSAgIHdpcmUgVU5DT05ORUNURUQyMjA7Ci0gICB3aXJlIFVOQ09OTkVDVEVEMjIxOwotICAgd2lyZSBVTkNPTk5FQ1RFRDIyMjsKLSAgIHdpcmUgVU5DT05ORUNURUQyMjM7Ci0gICB3aXJlIFVOQ09OTkVDVEVEMjI0OwotICAgd2lyZSBVTkNPTk5FQ1RFRDIyNTsKLSAgIHdpcmUgVU5DT05ORUNURUQyMjY7Ci0gICB3aXJlIFVOQ09OTkVDVEVEMjI3OwotICAgd2lyZSBVTkNPTk5FQ1RFRDIyODsKLSAgIHdpcmUgVU5DT05ORUNURUQyMjk7Ci0gICB3aXJlIFVOQ09OTkVDVEVEMjMwOwotICAgd2lyZSBVTkNPTk5FQ1RFRDIzMTsKLSAgIHdpcmUgVU5DT05ORUNURUQyMzI7Ci0gICB3aXJlIFVOQ09OTkVDVEVEMjMzOwotICAgd2lyZSBVTkNPTk5FQ1RFRDIzNDsKLSAgIHdpcmUgVU5DT05ORUNURUQyMzU7Ci0gICB3aXJlIFVOQ09OTkVDVEVEMjM2OwotICAgd2lyZSBVTkNPTk5FQ1RFRDIzNzsKLSAgIHdpcmUgVU5DT05ORUNURUQyMzg7Ci0gICB3aXJlIFVOQ09OTkVDVEVEMjM5OwotICAgd2lyZSBVTkNPTk5FQ1RFRDI0MDsKLSAgIHdpcmUgVU5DT05ORUNURUQyNDE7Ci0gICB3aXJlIFVOQ09OTkVDVEVEMjQyOwotICAgd2lyZSBVTkNPTk5FQ1RFRDI0MzsKLSAgIHdpcmUgVU5DT05ORUNURUQyNDQ7Ci0gICB3aXJlIFVOQ09OTkVDVEVEMjQ1OwotICAgd2lyZSBVTkNPTk5FQ1RFRDI0NjsKLSAgIHdpcmUgVU5DT05ORUNURUQyNDc7Ci0gICB3aXJlIFVOQ09OTkVDVEVEMjQ4OwotICAgd2lyZSBVTkNPTk5FQ1RFRDI0OTsKLSAgIHdpcmUgVU5DT05ORUNURUQyNTA7Ci0gICB3aXJlIFVOQ09OTkVDVEVEMjUxOwotICAgd2lyZSBVTkNPTk5FQ1RFRDI1MjsKLSAgIHdpcmUgVU5DT05ORUNURUQyNTM7Ci0gICB3aXJlIFVOQ09OTkVDVEVEMjU0OwotICAgd2lyZSBVTkNPTk5FQ1RFRDI1NTsKLSAgIHdpcmUgVU5DT05ORUNURUQyNTY7Ci0gICB3aXJlIFVOQ09OTkVDVEVEMjU3OwotICAgd2lyZSBVTkNPTk5FQ1RFRDI1ODsKLSAgIHdpcmUgVU5DT05ORUNURUQyNTk7Ci0gICB3aXJlIFVOQ09OTkVDVEVEMjYwOwotICAgd2lyZSBVTkNPTk5FQ1RFRDI2MTsKLSAgIHdpcmUgVU5DT05ORUNURUQyNjI7Ci0gICB3aXJlIFVOQ09OTkVDVEVEMjYzOwotICAgd2lyZSBVTkNPTk5FQ1RFRDI2NDsKLSAgIHdpcmUgVU5DT05ORUNURUQyNjU7Ci0gICB3aXJlIFVOQ09OTkVDVEVEMjY2OwotICAgd2lyZSBVTkNPTk5FQ1RFRDI2NzsKLSAgIHdpcmUgVU5DT05ORUNURUQyNjg7Ci0gICB3aXJlIFVOQ09OTkVDVEVEMjY5OwotICAgd2lyZSBVTkNPTk5FQ1RFRDI3MDsKLSAgIHdpcmUgVU5DT05ORUNURUQyNzE7Ci0gICB3aXJlIFVOQ09OTkVDVEVEMjcyOwotICAgd2lyZSBVTkNPTk5FQ1RFRDI3MzsKLSAgIHdpcmUgVU5DT05ORUNURUQyNzQ7Ci0gICB3aXJlIFVOQ09OTkVDVEVEMjc1OwotICAgd2lyZSBVTkNPTk5FQ1RFRDI3NjsKLSAgIHdpcmUgVU5DT05ORUNURUQyNzc7Ci0gICB3aXJlIFVOQ09OTkVDVEVEMjc4OwotICAgd2lyZSBVTkNPTk5FQ1RFRDI3OTsKLSAgIHdpcmUgVU5DT05ORUNURUQyODA7Ci0gICB3aXJlIFVOQ09OTkVDVEVEMjgxOwotICAgd2lyZSBVTkNPTk5FQ1RFRDI4MjsKLSAgIHdpcmUgVU5DT05ORUNURUQyODM7Ci0gICB3aXJlIFVOQ09OTkVDVEVEMjg0OwotICAgd2lyZSBVTkNPTk5FQ1RFRDI4NTsKLSAgIHdpcmUgVU5DT05ORUNURUQyODY7Ci0gICB3aXJlIFVOQ09OTkVDVEVEMjg3OwotICAgd2lyZSBVTkNPTk5FQ1RFRDI4ODsKLSAgIHdpcmUgVU5DT05ORUNURUQyODk7Ci0gICB3aXJlIFVOQ09OTkVDVEVEMjkwOwotICAgd2lyZSBVTkNPTk5FQ1RFRDI5MTsKLSAgIHdpcmUgVU5DT05ORUNURUQyOTI7Ci0gICB3aXJlIFVOQ09OTkVDVEVEMjkzOwotICAgd2lyZSBcYWNjWzBdIDsKLSAgIHdpcmUgXGFjY1sxXSA7Ci0gICB3aXJlIFxhY2NbMl0gOwotICAgd2lyZSBcYWNjWzNdIDsKLSAgIHdpcmUgXGFjY1s0XSA7Ci0gICB3aXJlIFxhY2NbNV0gOwotICAgd2lyZSBcYWNjWzZdIDsKLSAgIHdpcmUgXGFjY1s3XSA7Ci0gICB3aXJlIFxhY2NbOF0gOwotICAgd2lyZSBcYWNjWzldIDsKLSAgIHdpcmUgXGFjY1sxMF0gOwotICAgd2lyZSBcYWNjWzExXSA7Ci0gICB3aXJlIFxhY2NbMTJdIDsKLSAgIHdpcmUgXGFjY1sxM10gOwotICAgd2lyZSBcYWNjWzE0XSA7Ci0gICB3aXJlIFxhY2NbMTVdIDsKLSAgIHdpcmUgXGFjY1sxNl0gOwotICAgd2lyZSBcYWNjWzE3XSA7Ci0gICB3aXJlIFxhY2NbMThdIDsKLSAgIHdpcmUgXGFjY1sxOV0gOwotICAgd2lyZSBcYWNjWzIwXSA7Ci0gICB3aXJlIFxhY2NbMjFdIDsKLSAgIHdpcmUgXGFjY1syM10gOwotICAgd2lyZSBcYWNjWzI0XSA7Ci0gICB3aXJlIFxhY2NbMjVdIDsKLSAgIHdpcmUgXGFjY1syNl0gOwotICAgd2lyZSBcYWNjWzI3XSA7Ci0gICB3aXJlIFxhY2NbMjhdIDsKLSAgIHdpcmUgXGFjY1syOV0gOwotICAgd2lyZSBcYWNjWzMwXSA7Ci0gICB3aXJlIFxhY2NbMzFdIDsKLSAgIHdpcmUgXGFsdV9jbWRbMF0gOwotICAgd2lyZSBcYWx1X2NtZFsxXSA7Ci0gICB3aXJlIFxhbHVfY21kWzJdIDsKLSAgIHdpcmUgXGFsdV9yZXN1bHRbMF0gOwotICAgd2lyZSBcYWx1X3Jlc3VsdFsxXSA7Ci0gICB3aXJlIFxhbHVfcmVzdWx0WzJdIDsKLSAgIHdpcmUgXGFsdV9yZXN1bHRbM10gOwotICAgd2lyZSBcYWx1X3Jlc3VsdFs0XSA7Ci0gICB3aXJlIFxhbHVfcmVzdWx0WzVdIDsKLSAgIHdpcmUgXGFsdV9yZXN1bHRbNl0gOwotICAgd2lyZSBcYWx1X3Jlc3VsdFs3XSA7Ci0gICB3aXJlIFxhbHVfcmVzdWx0WzhdIDsKLSAgIHdpcmUgXGFsdV9yZXN1bHRbOV0gOwotICAgd2lyZSBcYWx1X3Jlc3VsdFsxMF0gOwotICAgd2lyZSBcYWx1X3Jlc3VsdFsxMV0gOwotICAgd2lyZSBcYWx1X3Jlc3VsdFsxMl0gOwotICAgd2lyZSBcYWx1X3Jlc3VsdFsxM10gOwotICAgd2lyZSBcYWx1X3Jlc3VsdFsxNF0gOwotICAgd2lyZSBcYWx1X3Jlc3VsdFsxNV0gOwotICAgd2lyZSBcYWx1X3Jlc3VsdFsxNl0gOwotICAgd2lyZSBcYWx1X3Jlc3VsdFsxN10gOwotICAgd2lyZSBcYWx1X3Jlc3VsdFsxOF0gOwotICAgd2lyZSBcYWx1X3Jlc3VsdFsxOV0gOwotICAgd2lyZSBcYWx1X3Jlc3VsdFsyMF0gOwotICAgd2lyZSBcYWx1X3Jlc3VsdFsyMV0gOwotICAgd2lyZSBcYWx1X3Jlc3VsdFsyMl0gOwotICAgd2lyZSBcYWx1X3Jlc3VsdFsyM10gOwotICAgd2lyZSBcYWx1X3Jlc3VsdFsyNF0gOwotICAgd2lyZSBcYWx1X3Jlc3VsdFsyNV0gOwotICAgd2lyZSBcYWx1X3Jlc3VsdFsyNl0gOwotICAgd2lyZSBcYWx1X3Jlc3VsdFsyN10gOwotICAgd2lyZSBcYWx1X3Jlc3VsdFsyOF0gOwotICAgd2lyZSBcYWx1X3Jlc3VsdFsyOV0gOwotICAgd2lyZSBcYWx1X3Jlc3VsdFszMF0gOwotICAgd2lyZSBcYWx1X3Jlc3VsdFszMV0gOwotICAgd2lyZSBcYWx1X3Jlc3VsdFszMl0gOwotICAgd2lyZSBcYXIwWzBdIDsKLSAgIHdpcmUgXGFyMFsxXSA7Ci0gICB3aXJlIFxhcjBbMl0gOwotICAgd2lyZSBcYXIwWzNdIDsKLSAgIHdpcmUgXGFyMFs0XSA7Ci0gICB3aXJlIFxhcjBbNV0gOwotICAgd2lyZSBcYXIwWzZdIDsKLSAgIHdpcmUgXGFyMFs3XSA7Ci0gICB3aXJlIFxhcjBbOF0gOwotICAgd2lyZSBcYXIwWzldIDsKLSAgIHdpcmUgXGFyMFsxMF0gOwotICAgd2lyZSBcYXIwWzExXSA7Ci0gICB3aXJlIFxhcjBbMTJdIDsKLSAgIHdpcmUgXGFyMFsxM10gOwotICAgd2lyZSBcYXIwWzE0XSA7Ci0gICB3aXJlIFxhcjBbMTVdIDsKLSAgIHdpcmUgXGFyMVswXSA7Ci0gICB3aXJlIFxhcjFbMV0gOwotICAgd2lyZSBcYXIxWzJdIDsKLSAgIHdpcmUgXGFyMVszXSA7Ci0gICB3aXJlIFxhcjFbNF0gOwotICAgd2lyZSBcYXIxWzVdIDsKLSAgIHdpcmUgXGFyMVs2XSA7Ci0gICB3aXJlIFxhcjFbN10gOwotICAgd2lyZSBcYXIxWzhdIDsKLSAgIHdpcmUgXGFyMVs5XSA7Ci0gICB3aXJlIFxhcjFbMTBdIDsKLSAgIHdpcmUgXGFyMVsxMV0gOwotICAgd2lyZSBcYXIxWzEyXSA7Ci0gICB3aXJlIFxhcjFbMTNdIDsKLSAgIHdpcmUgXGFyMVsxNF0gOwotICAgd2lyZSBcYXIxWzE1XSA7Ci0gICB3aXJlIFxhclswXSA7Ci0gICB3aXJlIFxhclsxXSA7Ci0gICB3aXJlIFxhclsyXSA7Ci0gICB3aXJlIFxhclszXSA7Ci0gICB3aXJlIFxhcls0XSA7Ci0gICB3aXJlIFxhcls1XSA7Ci0gICB3aXJlIFxhcls2XSA7Ci0gICB3aXJlIFxhcls3XSA7Ci0gICB3aXJlIFxhcls4XSA7Ci0gICB3aXJlIFxhcls5XSA7Ci0gICB3aXJlIFxhclsxMF0gOwotICAgd2lyZSBcYXJbMTFdIDsKLSAgIHdpcmUgXGFyWzEyXSA7Ci0gICB3aXJlIFxhclsxM10gOwotICAgd2lyZSBcYXJbMTRdIDsKLSAgIHdpcmUgXGFyWzE1XSA7Ci0gICB3aXJlIGFybno7Ci0gICB3aXJlIGFycDsKLSAgIHdpcmUgZGVjX2dvX2RhdGE7Ci0gICB3aXJlIGRlY19nb19wb3J0OwotICAgd2lyZSBkZWNfZ29fcHJvZzsKLSAgIHdpcmUgZGVjX3JlYWRfZGF0YTsKLSAgIHdpcmUgZGVjX3JlYWRfcG9ydDsKLSAgIHdpcmUgZGVjX3JlYWRfcHJvZzsKLSAgIHdpcmUgXGRlY29kZVswXSA7Ci0gICB3aXJlIFxkZWNvZGVbMV0gOwotICAgd2lyZSBcZGVjb2RlWzJdIDsKLSAgIHdpcmUgXGRlY29kZVszXSA7Ci0gICB3aXJlIFxkZWNvZGVbNF0gOwotICAgd2lyZSBcZGVjb2RlWzVdIDsKLSAgIHdpcmUgXGRlY29kZVs2XSA7Ci0gICB3aXJlIFxkZWNvZGVbN10gOwotICAgd2lyZSBcZGVjb2RlWzhdIDsKLSAgIHdpcmUgZG1vdl9pbmM7Ci0gICB3aXJlIGRwOwotICAgd2lyZSBlbmNfZ29fZGF0YTsKLSAgIHdpcmUgZW5jX2dvX3BvcnQ7Ci0gICB3aXJlIGVuY19nb19wcm9nOwotICAgd2lyZSBlbmNfcmVhZF9wcm9nOwotICAgd2lyZSBnb19kYXRhOwotICAgd2lyZSBnb19wb3J0OwotICAgd2lyZSBnb19wcm9nOwotICAgd2lyZSBcaXJbMF0gOwotICAgd2lyZSBcaXJbMV0gOwotICAgd2lyZSBcaXJbMl0gOwotICAgd2lyZSBcaXJbM10gOwotICAgd2lyZSBcaXJbNF0gOwotICAgd2lyZSBcaXJbNV0gOwotICAgd2lyZSBcaXJbNl0gOwotICAgd2lyZSBcaXJbN10gOwotICAgd2lyZSBcaXJbMTFdIDsKLSAgIHdpcmUgXGlyWzEyXSA7Ci0gICB3aXJlIFxpclsxM10gOwotICAgd2lyZSBcaXJbMTRdIDsKLSAgIHdpcmUgXGlyWzE1XSA7Ci0gICB3aXJlIGxlejsKLSAgIHdpcmUgXG1weV9yZXN1bHRbMF0gOwotICAgd2lyZSBcbXB5X3Jlc3VsdFsxXSA7Ci0gICB3aXJlIFxtcHlfcmVzdWx0WzJdIDsKLSAgIHdpcmUgXG1weV9yZXN1bHRbM10gOwotICAgd2lyZSBcbXB5X3Jlc3VsdFs0XSA7Ci0gICB3aXJlIFxtcHlfcmVzdWx0WzVdIDsKLSAgIHdpcmUgXG1weV9yZXN1bHRbNl0gOwotICAgd2lyZSBcbXB5X3Jlc3VsdFs3XSA7Ci0gICB3aXJlIFxtcHlfcmVzdWx0WzhdIDsKLSAgIHdpcmUgXG1weV9yZXN1bHRbOV0gOwotICAgd2lyZSBcbXB5X3Jlc3VsdFsxMF0gOwotICAgd2lyZSBcbXB5X3Jlc3VsdFsxMV0gOwotICAgd2lyZSBcbXB5X3Jlc3VsdFsxMl0gOwotICAgd2lyZSBcbXB5X3Jlc3VsdFsxM10gOwotICAgd2lyZSBcbXB5X3Jlc3VsdFsxNF0gOwotICAgd2lyZSBcbXB5X3Jlc3VsdFsxNV0gOwotICAgd2lyZSBcbXB5X3Jlc3VsdFsxNl0gOwotICAgd2lyZSBcbXB5X3Jlc3VsdFsxN10gOwotICAgd2lyZSBcbXB5X3Jlc3VsdFsxOF0gOwotICAgd2lyZSBcbXB5X3Jlc3VsdFsxOV0gOwotICAgd2lyZSBcbXB5X3Jlc3VsdFsyMF0gOwotICAgd2lyZSBcbXB5X3Jlc3VsdFsyMV0gOwotICAgd2lyZSBcbXB5X3Jlc3VsdFsyMl0gOwotICAgd2lyZSBcbXB5X3Jlc3VsdFsyM10gOwotICAgd2lyZSBcbXB5X3Jlc3VsdFsyNF0gOwotICAgd2lyZSBcbXB5X3Jlc3VsdFsyNV0gOwotICAgd2lyZSBcbXB5X3Jlc3VsdFsyNl0gOwotICAgd2lyZSBcbXB5X3Jlc3VsdFsyN10gOwotICAgd2lyZSBcbXB5X3Jlc3VsdFsyOF0gOwotICAgd2lyZSBcbXB5X3Jlc3VsdFsyOV0gOwotICAgd2lyZSBcbXB5X3Jlc3VsdFszMF0gOwotICAgd2lyZSBcbXB5X3Jlc3VsdFszMV0gOwotICAgd2lyZSBuXzA7Ci0gICB3aXJlIG5fMjA7Ci0gICB3aXJlIG5fMjE7Ci0gICB3aXJlIG5fMjM7Ci0gICB3aXJlIG5fMjY7Ci0gICB3aXJlIFxvcGFbMF1bMF0gOwotICAgd2lyZSBcb3BhWzBdWzFdIDsKLSAgIHdpcmUgXG9wYVswXVsyXSA7Ci0gICB3aXJlIFxvcGFbMF1bM10gOwotICAgd2lyZSBcb3BhWzBdWzRdIDsKLSAgIHdpcmUgXG9wYVswXVs1XSA7Ci0gICB3aXJlIFxvcGFbMF1bNl0gOwotICAgd2lyZSBcb3BhWzBdWzddIDsKLSAgIHdpcmUgXG9wYVswXVs4XSA7Ci0gICB3aXJlIFxvcGFbMF1bOV0gOwotICAgd2lyZSBcb3BhWzBdWzEwXSA7Ci0gICB3aXJlIFxvcGFbMF1bMTFdIDsKLSAgIHdpcmUgXG9wYVswXVsxMl0gOwotICAgd2lyZSBcb3BhWzBdWzEzXSA7Ci0gICB3aXJlIFxvcGFbMF1bMTRdIDsKLSAgIHdpcmUgXG9wYVswXVsxNV0gOwotICAgd2lyZSBcb3BhWzE2XSA7Ci0gICB3aXJlIFxvcGFbMTddIDsKLSAgIHdpcmUgXG9wYVsxOF0gOwotICAgd2lyZSBcb3BhWzE5XSA7Ci0gICB3aXJlIFxvcGFbMjBdIDsKLSAgIHdpcmUgXG9wYVsyMV0gOwotICAgd2lyZSBcb3BhWzIyXSA7Ci0gICB3aXJlIFxvcGFbMjNdIDsKLSAgIHdpcmUgXG9wYVsyNF0gOwotICAgd2lyZSBcb3BhWzI1XSA7Ci0gICB3aXJlIFxvcGFbMjZdIDsKLSAgIHdpcmUgXG9wYVsyN10gOwotICAgd2lyZSBcb3BhWzI4XSA7Ci0gICB3aXJlIFxvcGFbMjldIDsKLSAgIHdpcmUgXG9wYVszMF0gOwotICAgd2lyZSBcb3BhWzMxXSA7Ci0gICB3aXJlIFxvcGJbMF1bMF0gOwotICAgd2lyZSBcb3BiWzBdWzFdIDsKLSAgIHdpcmUgXG9wYlswXVsyXSA7Ci0gICB3aXJlIFxvcGJbMF1bM10gOwotICAgd2lyZSBcb3BiWzBdWzRdIDsKLSAgIHdpcmUgXG9wYlswXVs1XSA7Ci0gICB3aXJlIFxvcGJbMF1bNl0gOwotICAgd2lyZSBcb3BiWzBdWzddIDsKLSAgIHdpcmUgXG9wYlswXVs4XSA7Ci0gICB3aXJlIFxvcGJbMF1bOV0gOwotICAgd2lyZSBcb3BiWzBdWzEwXSA7Ci0gICB3aXJlIFxvcGJbMF1bMTFdIDsKLSAgIHdpcmUgXG9wYlswXVsxMl0gOwotICAgd2lyZSBcb3BiWzBdWzEzXSA7Ci0gICB3aXJlIFxvcGJbMF1bMTRdIDsKLSAgIHdpcmUgXG9wYlswXVsxNV0gOwotICAgd2lyZSBcb3BiWzE2XSA7Ci0gICB3aXJlIFxvcGJbMTddIDsKLSAgIHdpcmUgXG9wYlsxOF0gOwotICAgd2lyZSBcb3BiWzE5XSA7Ci0gICB3aXJlIFxvcGJbMjBdIDsKLSAgIHdpcmUgXG9wYlsyMV0gOwotICAgd2lyZSBcb3BiWzIyXSA7Ci0gICB3aXJlIFxvcGJbMjNdIDsKLSAgIHdpcmUgXG9wYlsyNF0gOwotICAgd2lyZSBcb3BiWzI1XSA7Ci0gICB3aXJlIFxvcGJbMjZdIDsKLSAgIHdpcmUgXG9wYlsyN10gOwotICAgd2lyZSBcb3BiWzI4XSA7Ci0gICB3aXJlIFxvcGJbMjldIDsKLSAgIHdpcmUgXG9wYlszMF0gOwotICAgd2lyZSBcb3BiWzMxXSA7Ci0gICB3aXJlIG92bTsKLSAgIHdpcmUgXHBbMF0gOwotICAgd2lyZSBccFsxXSA7Ci0gICB3aXJlIFxwWzJdIDsKLSAgIHdpcmUgXHBbM10gOwotICAgd2lyZSBccFs0XSA7Ci0gICB3aXJlIFxwWzVdIDsKLSAgIHdpcmUgXHBbNl0gOwotICAgd2lyZSBccFs3XSA7Ci0gICB3aXJlIFxwWzhdIDsKLSAgIHdpcmUgXHBbOV0gOwotICAgd2lyZSBccFsxMF0gOwotICAgd2lyZSBccFsxMV0gOwotICAgd2lyZSBccFsxMl0gOwotICAgd2lyZSBccFsxM10gOwotICAgd2lyZSBccFsxNF0gOwotICAgd2lyZSBccFsxNV0gOwotICAgd2lyZSBccFsxNl0gOwotICAgd2lyZSBccFsxN10gOwotICAgd2lyZSBccFsxOF0gOwotICAgd2lyZSBccFsxOV0gOwotICAgd2lyZSBccFsyMF0gOwotICAgd2lyZSBccFsyMV0gOwotICAgd2lyZSBccFsyMl0gOwotICAgd2lyZSBccFsyM10gOwotICAgd2lyZSBccFsyNF0gOwotICAgd2lyZSBccFsyNV0gOwotICAgd2lyZSBccFsyNl0gOwotICAgd2lyZSBccFsyN10gOwotICAgd2lyZSBccFsyOF0gOwotICAgd2lyZSBccFsyOV0gOwotICAgd2lyZSBccFszMF0gOwotICAgd2lyZSBccF9kYXRhX291dFswXSA7Ci0gICB3aXJlIFxwX2RhdGFfb3V0WzFdIDsKLSAgIHdpcmUgXHBfZGF0YV9vdXRbMl0gOwotICAgd2lyZSBccF9kYXRhX291dFszXSA7Ci0gICB3aXJlIFxwX2RhdGFfb3V0WzRdIDsKLSAgIHdpcmUgXHBfZGF0YV9vdXRbNV0gOwotICAgd2lyZSBccF9kYXRhX291dFs2XSA7Ci0gICB3aXJlIFxwX2RhdGFfb3V0WzddIDsKLSAgIHdpcmUgXHBfZGF0YV9vdXRbOF0gOwotICAgd2lyZSBccF9kYXRhX291dFs5XSA7Ci0gICB3aXJlIFxwX2RhdGFfb3V0WzEwXSA7Ci0gICB3aXJlIFxwX2RhdGFfb3V0WzExXSA7Ci0gICB3aXJlIFxwX2RhdGFfb3V0WzEyXSA7Ci0gICB3aXJlIFxwX2RhdGFfb3V0WzEzXSA7Ci0gICB3aXJlIFxwX2RhdGFfb3V0WzE0XSA7Ci0gICB3aXJlIFxwX2RhdGFfb3V0WzE1XSA7Ci0gICB3aXJlIFxwY1swXSA7Ci0gICB3aXJlIFxwY1sxXSA7Ci0gICB3aXJlIFxwY1syXSA7Ci0gICB3aXJlIFxwY1szXSA7Ci0gICB3aXJlIFxwY1s0XSA7Ci0gICB3aXJlIFxwY1s1XSA7Ci0gICB3aXJlIFxwY1s2XSA7Ci0gICB3aXJlIFxwY1s3XSA7Ci0gICB3aXJlIFxwY1s4XSA7Ci0gICB3aXJlIHBjX2FjYzsKLSAgIHdpcmUgcGhpXzE7Ci0gICB3aXJlIHBoaV8zOwotICAgd2lyZSBwaGlfNDsKLSAgIHdpcmUgcGhpXzU7Ci0gICB3aXJlIHBoaV82OwotICAgd2lyZSBccG9ydF9kYXRhX291dFswXSA7Ci0gICB3aXJlIFxwb3J0X2RhdGFfb3V0WzFdIDsKLSAgIHdpcmUgXHBvcnRfZGF0YV9vdXRbMl0gOwotICAgd2lyZSBccG9ydF9kYXRhX291dFszXSA7Ci0gICB3aXJlIFxwb3J0X2RhdGFfb3V0WzRdIDsKLSAgIHdpcmUgXHBvcnRfZGF0YV9vdXRbNV0gOwotICAgd2lyZSBccG9ydF9kYXRhX291dFs2XSA7Ci0gICB3aXJlIFxwb3J0X2RhdGFfb3V0WzddIDsKLSAgIHdpcmUgXHBvcnRfZGF0YV9vdXRbOF0gOwotICAgd2lyZSBccG9ydF9kYXRhX291dFs5XSA7Ci0gICB3aXJlIFxwb3J0X2RhdGFfb3V0WzEwXSA7Ci0gICB3aXJlIFxwb3J0X2RhdGFfb3V0WzExXSA7Ci0gICB3aXJlIFxwb3J0X2RhdGFfb3V0WzEyXSA7Ci0gICB3aXJlIFxwb3J0X2RhdGFfb3V0WzEzXSA7Ci0gICB3aXJlIFxwb3J0X2RhdGFfb3V0WzE0XSA7Ci0gICB3aXJlIFxwb3J0X2RhdGFfb3V0WzE1XSA7Ci0gICB3aXJlIHJlYWRfcHJvZzsKLSAgIHdpcmUgc2FtcF9iaW87Ci0gICB3aXJlIFxzZWxfb3BfYVswXSA7Ci0gICB3aXJlIFxzZWxfb3BfYVsxXSA7Ci0gICB3aXJlIFxzZWxfb3BfYVsyXSA7Ci0gICB3aXJlIFxzZWxfb3BfYlswXSA7Ci0gICB3aXJlIFxzZWxfb3BfYlsxXSA7Ci0gICB3aXJlIFxzZWxfb3BfYlsyXSA7Ci0gICB3aXJlIHNraXBfb25lOwotICAgd2lyZSBcdG9wWzBdIDsKLSAgIHdpcmUgXHRvcFsxXSA7Ci0gICB3aXJlIFx0b3BbMl0gOwotICAgd2lyZSBcdG9wWzNdIDsKLSAgIHdpcmUgXHRvcFs0XSA7Ci0gICB3aXJlIFx0b3BbNV0gOwotICAgd2lyZSBcdG9wWzZdIDsKLSAgIHdpcmUgXHRvcFs3XSA7Ci0gICB3aXJlIFx0b3BbOF0gOwotICAgd2lyZSBcdG9wWzldIDsKLSAgIHdpcmUgXHRvcFsxMF0gOwotICAgd2lyZSBcdG9wWzExXSA7Ci0gICB3aXJlIFx0b3BbMTJdIDsKLSAgIHdpcmUgXHRvcFsxM10gOwotICAgd2lyZSBcdG9wWzE0XSA7Ci0gICB3aXJlIFx0b3BbMTVdIDsKLSAgIHdpcmUgejsKLQotICAgYWNjdW1fc3RhdCBBQ0NVTV9TVEFUX0lOU1QgKC5hY2N1bSh7IDEnYjAsCi0JCVxhY2NbMzFdICwKLQkJXGFjY1szMF0gLAotCQlcYWNjWzI5XSAsCi0JCVxhY2NbMjhdICwKLQkJXGFjY1syN10gLAotCQlcYWNjWzI2XSAsCi0JCVxhY2NbMjVdICwKLQkJXGFjY1syNF0gLAotCQlcYWNjWzIzXSAsCi0JCXRfc2RvWzBdLAotCQlcYWNjWzIxXSAsCi0JCVxhY2NbMjBdICwKLQkJXGFjY1sxOV0gLAotCQlcYWNjWzE4XSAsCi0JCVxhY2NbMTddICwKLQkJXGFjY1sxNl0gLAotCQlcYWNjWzE1XSAsCi0JCVxhY2NbMTRdICwKLQkJXGFjY1sxM10gLAotCQlcYWNjWzEyXSAsCi0JCVxhY2NbMTFdICwKLQkJXGFjY1sxMF0gLAotCQlcYWNjWzldICwKLQkJXGFjY1s4XSAsCi0JCVxhY2NbN10gLAotCQlcYWNjWzZdICwKLQkJXGFjY1s1XSAsCi0JCVxhY2NbNF0gLAotCQlcYWNjWzNdICwKLQkJXGFjY1syXSAsCi0JCVxhY2NbMV0gLAotCQlcYWNjWzBdICB9KSwgCi0JLmFyKHsgXGFyWzE1XSAsCi0JCVxhclsxNF0gLAotCQlcYXJbMTNdICwKLQkJXGFyWzEyXSAsCi0JCVxhclsxMV0gLAotCQlcYXJbMTBdICwKLQkJXGFyWzldICwKLQkJXGFyWzhdICwKLQkJXGFyWzddICwKLQkJXGFyWzZdICwKLQkJXGFyWzVdICwKLQkJXGFyWzRdICwKLQkJXGFyWzNdICwKLQkJXGFyWzJdICwKLQkJXGFyWzFdICwKLQkJXGFyWzBdICB9KSwgCi0JLmJpbygxJ2IwKSwgCi0JLmdleihVTkNPTk5FQ1RFRDIxKSwgCi0JLmd6KFVOQ09OTkVDVEVEMjIpLCAKLQkubnooVU5DT05ORUNURUQyMyksIAotCS56KHopLCAKLQkubHooVU5DT05ORUNURUQyNCksIAotCS5sZXoobGV6KSwgCi0JLm92KDEnYjApLCAKLQkuYXJueihhcm56KSwgCi0JLmJpb3ooVU5DT05ORUNURUQyNSkpOwotICAgYWx1XzMyIEFMVV8zMl9JTlNUICgub3ZtKG92bSksIAotCS5vcF9hKHsgXG9wYVszMV0gLAotCQlcb3BhWzMwXSAsCi0JCVxvcGFbMjldICwKLQkJXG9wYVsyOF0gLAotCQlcb3BhWzI3XSAsCi0JCVxvcGFbMjZdICwKLQkJXG9wYVsyNV0gLAotCQlcb3BhWzI0XSAsCi0JCVxvcGFbMjNdICwKLQkJXG9wYVsyMl0gLAotCQlcb3BhWzIxXSAsCi0JCVxvcGFbMjBdICwKLQkJXG9wYVsxOV0gLAotCQlcb3BhWzE4XSAsCi0JCVxvcGFbMTddICwKLQkJXG9wYVsxNl0gLAotCQlcb3BhWzBdWzE1XSAsCi0JCVxvcGFbMF1bMTRdICwKLQkJXG9wYVswXVsxM10gLAotCQlcb3BhWzBdWzEyXSAsCi0JCVxvcGFbMF1bMTFdICwKLQkJXG9wYVswXVsxMF0gLAotCQlcb3BhWzBdWzldICwKLQkJXG9wYVswXVs4XSAsCi0JCVxvcGFbMF1bN10gLAotCQlcb3BhWzBdWzZdICwKLQkJXG9wYVswXVs1XSAsCi0JCVxvcGFbMF1bNF0gLAotCQlcb3BhWzBdWzNdICwKLQkJXG9wYVswXVsyXSAsCi0JCVxvcGFbMF1bMV0gLAotCQlcb3BhWzBdWzBdICB9KSwgCi0JLm9wX2IoeyBcb3BiWzMxXSAsCi0JCVxvcGJbMzBdICwKLQkJXG9wYlsyOV0gLAotCQlcb3BiWzI4XSAsCi0JCVxvcGJbMjddICwKLQkJXG9wYlsyNl0gLAotCQlcb3BiWzI1XSAsCi0JCVxvcGJbMjRdICwKLQkJXG9wYlsyM10gLAotCQlcb3BiWzIyXSAsCi0JCVxvcGJbMjFdICwKLQkJXG9wYlsyMF0gLAotCQlcb3BiWzE5XSAsCi0JCVxvcGJbMThdICwKLQkJXG9wYlsxN10gLAotCQlcb3BiWzE2XSAsCi0JCVxvcGJbMF1bMTVdICwKLQkJXG9wYlswXVsxNF0gLAotCQlcb3BiWzBdWzEzXSAsCi0JCVxvcGJbMF1bMTJdICwKLQkJXG9wYlswXVsxMV0gLAotCQlcb3BiWzBdWzEwXSAsCi0JCVxvcGJbMF1bOV0gLAotCQlcb3BiWzBdWzhdICwKLQkJXG9wYlswXVs3XSAsCi0JCVxvcGJbMF1bNl0gLAotCQlcb3BiWzBdWzVdICwKLQkJXG9wYlswXVs0XSAsCi0JCVxvcGJbMF1bM10gLAotCQlcb3BiWzBdWzJdICwKLQkJXG9wYlswXVsxXSAsCi0JCVxvcGJbMF1bMF0gIH0pLCAKLQkucmVzdWx0KHsgXGFsdV9yZXN1bHRbMzJdICwKLQkJXGFsdV9yZXN1bHRbMzFdICwKLQkJXGFsdV9yZXN1bHRbMzBdICwKLQkJXGFsdV9yZXN1bHRbMjldICwKLQkJXGFsdV9yZXN1bHRbMjhdICwKLQkJXGFsdV9yZXN1bHRbMjddICwKLQkJXGFsdV9yZXN1bHRbMjZdICwKLQkJXGFsdV9yZXN1bHRbMjVdICwKLQkJXGFsdV9yZXN1bHRbMjRdICwKLQkJXGFsdV9yZXN1bHRbMjNdICwKLQkJXGFsdV9yZXN1bHRbMjJdICwKLQkJXGFsdV9yZXN1bHRbMjFdICwKLQkJXGFsdV9yZXN1bHRbMjBdICwKLQkJXGFsdV9yZXN1bHRbMTldICwKLQkJXGFsdV9yZXN1bHRbMThdICwKLQkJXGFsdV9yZXN1bHRbMTddICwKLQkJXGFsdV9yZXN1bHRbMTZdICwKLQkJXGFsdV9yZXN1bHRbMTVdICwKLQkJXGFsdV9yZXN1bHRbMTRdICwKLQkJXGFsdV9yZXN1bHRbMTNdICwKLQkJXGFsdV9yZXN1bHRbMTJdICwKLQkJXGFsdV9yZXN1bHRbMTFdICwKLQkJXGFsdV9yZXN1bHRbMTBdICwKLQkJXGFsdV9yZXN1bHRbOV0gLAotCQlcYWx1X3Jlc3VsdFs4XSAsCi0JCVxhbHVfcmVzdWx0WzddICwKLQkJXGFsdV9yZXN1bHRbNl0gLAotCQlcYWx1X3Jlc3VsdFs1XSAsCi0JCVxhbHVfcmVzdWx0WzRdICwKLQkJXGFsdV9yZXN1bHRbM10gLAotCQlcYWx1X3Jlc3VsdFsyXSAsCi0JCVxhbHVfcmVzdWx0WzFdICwKLQkJXGFsdV9yZXN1bHRbMF0gIH0pLCAKLQkuY21kKHsgMSdiMCwKLQkJXGFsdV9jbWRbMl0gLAotCQlcYWx1X2NtZFsxXSAsCi0JCVxhbHVfY21kWzBdICB9KSk7Ci0gICBkYXRhX2J1c19tYWNoIERBVEFfQlVTX01BQ0hfSU5TVCAoLmNsayhjbGspLCAKLQkucmVzZXQocmVzZXQpLCAKLQkucmVhZChyZWFkKSwgCi0JLndyaXRlKHdyaXRlKSwgCi0JLndyaXRlX2goVU5DT05ORUNURUQyNiksIAotCS5hZGRyZXNzKHsgVU5DT05ORUNURUQyNywKLQkJVU5DT05ORUNURUQyOCwKLQkJVU5DT05ORUNURUQyOSwKLQkJVU5DT05ORUNURUQzMCwKLQkJVU5DT05ORUNURUQzMSwKLQkJVU5DT05ORUNURUQzMiwKLQkJVU5DT05ORUNURUQzMywKLQkJVU5DT05ORUNURUQzNCB9KSwgCi0JLmRhdGFfaW4oeyAxJ2IwLAotCQkxJ2IwLAotCQkxJ2IwLAotCQkxJ2IwLAotCQkxJ2IwLAotCQkxJ2IwLAotCQkxJ2IwLAotCQkxJ2IwLAotCQkxJ2IwLAotCQkxJ2IwLAotCQkxJ2IwLAotCQkxJ2IwLAotCQkxJ2IwLAotCQkxJ2IwLAotCQkxJ2IwLAotCQkxJ2IwIH0pLCAKLQkuZGF0YV9vdXQocG9ydF9wYWRfZGF0YV9vdXQpLCAKLQkucGFkX2RhdGFfaW4odF9kYXRhX2luKSwgCi0JLnBhZF9kYXRhX291dCh7IFVOQ09OTkVDVEVEMzUsCi0JCVVOQ09OTkVDVEVEMzYsCi0JCVVOQ09OTkVDVEVEMzcsCi0JCVVOQ09OTkVDVEVEMzgsCi0JCVVOQ09OTkVDVEVEMzksCi0JCVVOQ09OTkVDVEVENDAsCi0JCVVOQ09OTkVDVEVENDEsCi0JCVVOQ09OTkVDVEVENDIsCi0JCVVOQ09OTkVDVEVENDMsCi0JCVVOQ09OTkVDVEVENDQsCi0JCVVOQ09OTkVDVEVENDUsCi0JCVVOQ09OTkVDVEVENDYsCi0JCVVOQ09OTkVDVEVENDcsCi0JCVVOQ09OTkVDVEVENDgsCi0JCVVOQ09OTkVDVEVENDksCi0JCVVOQ09OTkVDVEVENTAgfSksIAotCS5hZGRyc19pbih7IDEnYjAsCi0JCTEnYjAsCi0JCTEnYjAsCi0JCTEnYjAsCi0JCTEnYjAsCi0JCTEnYjAsCi0JCTEnYjAsCi0JCTEnYjAgfSksIAotCS5yZWFkX2N5Y2xlKGRlY19yZWFkX2RhdGEpLCAKLQkuc3luYygxJ2IwKSwgCi0JLmdvKGdvX2RhdGEpLCAKLQkuYXMoYXMpLCAKLQkuZG9uZShVTkNPTk5FQ1RFRDUxKSwgCi0JLmJ1c19yZXF1ZXN0KGJ1c19yZXF1ZXN0KSwgCi0JLmJ1c19ncmFudChidXNfZ3JhbnQpLCAKLQkuUkNfQ0dfVEVTVF9QT1JUKFJDX0NHX1RFU1RfUE9SVCksIAotCS5TUlBHX1BHX2luKDEnYjApLCAKLQkuU1JQR19QR19pbl8xKDEnYjApLCAKLQkuREZUX3NkaSh0X3NkaVswXSksIAotCS5ERlRfc2VuKERGVF9zZW4pKTsKLSAgIGRlY29kZV9pIERFQ09ERV9JTlNUICguY2xrKGNsayksIAotCS5yZXNldChyZXNldCksIAotCS5waGlfMSgxJ2IwKSwgCi0JLnBoaV8yKDEnYjApLCAKLQkucGhpXzMocGhpXzMpLCAKLQkucGhpXzQoMSdiMCksIAotCS5waGlfNSgxJ2IwKSwgCi0JLnBoaV82KHBoaV82KSwgCi0JLmRlY29kZSh7IFVOQ09OTkVDVEVENTIsCi0JCVVOQ09OTkVDVEVENTMsCi0JCVVOQ09OTkVDVEVENTQsCi0JCVVOQ09OTkVDVEVENTUsCi0JCVVOQ09OTkVDVEVENTYsCi0JCVVOQ09OTkVDVEVENTcsCi0JCVVOQ09OTkVDVEVENTgsCi0JCVxkZWNvZGVbOF0gLAotCQlcZGVjb2RlWzddICwKLQkJXGRlY29kZVs2XSAsCi0JCVxkZWNvZGVbNV0gLAotCQlcZGVjb2RlWzRdICwKLQkJXGRlY29kZVszXSAsCi0JCVxkZWNvZGVbMl0gLAotCQlcZGVjb2RlWzFdICwKLQkJXGRlY29kZVswXSAgfSksIAotCS5wX2RhdGFfb3V0KHsgXHBfZGF0YV9vdXRbMTVdICwKLQkJXHBfZGF0YV9vdXRbMTRdICwKLQkJXHBfZGF0YV9vdXRbMTNdICwKLQkJXHBfZGF0YV9vdXRbMTJdICwKLQkJXHBfZGF0YV9vdXRbMTFdICwKLQkJXHBfZGF0YV9vdXRbMTBdICwKLQkJXHBfZGF0YV9vdXRbOV0gLAotCQlccF9kYXRhX291dFs4XSAsCi0JCVxwX2RhdGFfb3V0WzddICwKLQkJXHBfZGF0YV9vdXRbNl0gLAotCQlccF9kYXRhX291dFs1XSAsCi0JCVxwX2RhdGFfb3V0WzRdICwKLQkJXHBfZGF0YV9vdXRbM10gLAotCQlccF9kYXRhX291dFsyXSAsCi0JCVxwX2RhdGFfb3V0WzFdICwKLQkJXHBfZGF0YV9vdXRbMF0gIH0pLCAKLQkuaXIoeyBcaXJbMTVdICwKLQkJXGlyWzE0XSAsCi0JCVxpclsxM10gLAotCQlcaXJbMTJdICwKLQkJXGlyWzExXSAsCi0JCXBvcnRfYWRkcmVzcywKLQkJXGlyWzddICwKLQkJXGlyWzZdICwKLQkJXGlyWzVdICwKLQkJXGlyWzRdICwKLQkJXGlyWzNdICwKLQkJXGlyWzJdICwKLQkJXGlyWzFdICwKLQkJXGlyWzBdICB9KSwgCi0JLnNraXBfb25lKHNraXBfb25lKSwgCi0JLnJlYWRfcHJvZyhkZWNfcmVhZF9wcm9nKSwgCi0JLmdvX3Byb2coZGVjX2dvX3Byb2cpLCAKLQkucmVhZF9kYXRhKGRlY19yZWFkX2RhdGEpLCAKLQkuZ29fZGF0YShkZWNfZ29fZGF0YSksIAotCS5yZWFkX3BvcnQoZGVjX3JlYWRfcG9ydCksIAotCS5nb19wb3J0KGRlY19nb19wb3J0KSwgCi0JLmRlY29kZV9za2lwX29uZShVTkNPTk5FQ1RFRDU5KSwgCi0JLlJDX0NHX1RFU1RfUE9SVChSQ19DR19URVNUX1BPUlQpLCAKLQkuU1JQR19QR19pbigxJ2IwKSwgCi0JLlNSUEdfUEdfaW5fMSgxJ2IwKSwgCi0JLkRGVF9zZGkod3JpdGUpLCAKLQkuREZUX3NlbihERlRfc2VuKSwgCi0JLkRGVF9zZG8obl8yNikpOwotICAgZXhlY3V0ZV9pIEVYRUNVVEVfSU5TVCAoLmNsayhjbGspLCAKLQkucmVzZXQocmVzZXQpLCAKLQkucGhpXzEocGhpXzEpLCAKLQkucGhpXzIoMSdiMCksIAotCS5waGlfMyhwaGlfMyksIAotCS5waGlfNChwaGlfNCksIAotCS5waGlfNShwaGlfNSksIAotCS5waGlfNihwaGlfNiksIAotCS5kZWNvZGVfc2tpcF9vbmUoMSdiMCksIAotCS5nZXooMSdiMCksIAotCS5neigxJ2IwKSwgCi0JLm56KDEnYjApLCAKLQkueih6KSwgCi0JLmx6KDEnYjApLCAKLQkubGV6KGxleiksIAotCS5vdihVTkNPTk5FQ1RFRDYwKSwgCi0JLmFybnooYXJueiksIAotCS5iaW96KG5fMCksIAotCS5hbHVfcmVzdWx0KHsgXGFsdV9yZXN1bHRbMzJdICwKLQkJXGFsdV9yZXN1bHRbMzFdICwKLQkJXGFsdV9yZXN1bHRbMzBdICwKLQkJXGFsdV9yZXN1bHRbMjldICwKLQkJXGFsdV9yZXN1bHRbMjhdICwKLQkJXGFsdV9yZXN1bHRbMjddICwKLQkJXGFsdV9yZXN1bHRbMjZdICwKLQkJXGFsdV9yZXN1bHRbMjVdICwKLQkJXGFsdV9yZXN1bHRbMjRdICwKLQkJXGFsdV9yZXN1bHRbMjNdICwKLQkJXGFsdV9yZXN1bHRbMjJdICwKLQkJXGFsdV9yZXN1bHRbMjFdICwKLQkJXGFsdV9yZXN1bHRbMjBdICwKLQkJXGFsdV9yZXN1bHRbMTldICwKLQkJXGFsdV9yZXN1bHRbMThdICwKLQkJXGFsdV9yZXN1bHRbMTddICwKLQkJXGFsdV9yZXN1bHRbMTZdICwKLQkJXGFsdV9yZXN1bHRbMTVdICwKLQkJXGFsdV9yZXN1bHRbMTRdICwKLQkJXGFsdV9yZXN1bHRbMTNdICwKLQkJXGFsdV9yZXN1bHRbMTJdICwKLQkJXGFsdV9yZXN1bHRbMTFdICwKLQkJXGFsdV9yZXN1bHRbMTBdICwKLQkJXGFsdV9yZXN1bHRbOV0gLAotCQlcYWx1X3Jlc3VsdFs4XSAsCi0JCVxhbHVfcmVzdWx0WzddICwKLQkJXGFsdV9yZXN1bHRbNl0gLAotCQlcYWx1X3Jlc3VsdFs1XSAsCi0JCVxhbHVfcmVzdWx0WzRdICwKLQkJXGFsdV9yZXN1bHRbM10gLAotCQlcYWx1X3Jlc3VsdFsyXSAsCi0JCVxhbHVfcmVzdWx0WzFdICwKLQkJXGFsdV9yZXN1bHRbMF0gIH0pLCAKLQkubXB5X3Jlc3VsdCh7IFxtcHlfcmVzdWx0WzMxXSAsCi0JCVxtcHlfcmVzdWx0WzMwXSAsCi0JCVxtcHlfcmVzdWx0WzI5XSAsCi0JCVxtcHlfcmVzdWx0WzI4XSAsCi0JCVxtcHlfcmVzdWx0WzI3XSAsCi0JCVxtcHlfcmVzdWx0WzI2XSAsCi0JCVxtcHlfcmVzdWx0WzI1XSAsCi0JCVxtcHlfcmVzdWx0WzI0XSAsCi0JCVxtcHlfcmVzdWx0WzIzXSAsCi0JCVxtcHlfcmVzdWx0WzIyXSAsCi0JCVxtcHlfcmVzdWx0WzIxXSAsCi0JCVxtcHlfcmVzdWx0WzIwXSAsCi0JCVxtcHlfcmVzdWx0WzE5XSAsCi0JCVxtcHlfcmVzdWx0WzE4XSAsCi0JCVxtcHlfcmVzdWx0WzE3XSAsCi0JCVxtcHlfcmVzdWx0WzE2XSAsCi0JCVxtcHlfcmVzdWx0WzE1XSAsCi0JCVxtcHlfcmVzdWx0WzE0XSAsCi0JCVxtcHlfcmVzdWx0WzEzXSAsCi0JCVxtcHlfcmVzdWx0WzEyXSAsCi0JCVxtcHlfcmVzdWx0WzExXSAsCi0JCVxtcHlfcmVzdWx0WzEwXSAsCi0JCVxtcHlfcmVzdWx0WzldICwKLQkJXG1weV9yZXN1bHRbOF0gLAotCQlcbXB5X3Jlc3VsdFs3XSAsCi0JCVxtcHlfcmVzdWx0WzZdICwKLQkJXG1weV9yZXN1bHRbNV0gLAotCQlcbXB5X3Jlc3VsdFs0XSAsCi0JCVxtcHlfcmVzdWx0WzNdICwKLQkJXG1weV9yZXN1bHRbMl0gLAotCQlcbXB5X3Jlc3VsdFsxXSAsCi0JCVxtcHlfcmVzdWx0WzBdICB9KSwgCi0JLm1kcihwb3J0X3BhZF9kYXRhX291dCksIAotCS5wZHIoeyAxJ2IwLAotCQkxJ2IwLAotCQkxJ2IwLAotCQkxJ2IwLAotCQkxJ2IwLAotCQkxJ2IwLAotCQkxJ2IwLAotCQkxJ2IwLAotCQkxJ2IwLAotCQkxJ2IwLAotCQkxJ2IwLAotCQkxJ2IwLAotCQkxJ2IwLAotCQkxJ2IwLAotCQkxJ2IwLAotCQkxJ2IwIH0pLCAKLQkuaXIoeyBcaXJbMTVdICwKLQkJXGlyWzE0XSAsCi0JCVxpclsxM10gLAotCQlcaXJbMTJdICwKLQkJXGlyWzExXSAsCi0JCXBvcnRfYWRkcmVzcywKLQkJXGlyWzddICwKLQkJXGlyWzZdICwKLQkJXGlyWzVdICwKLQkJXGlyWzRdICwKLQkJXGlyWzNdICwKLQkJXGlyWzJdICwKLQkJXGlyWzFdICwKLQkJXGlyWzBdICB9KSwgCi0JLmRlY29kZSh7IDEnYjAsCi0JCTEnYjAsCi0JCTEnYjAsCi0JCTEnYjAsCi0JCTEnYjAsCi0JCTEnYjAsCi0JCTEnYjAsCi0JCVxkZWNvZGVbOF0gLAotCQlcZGVjb2RlWzddICwKLQkJXGRlY29kZVs2XSAsCi0JCVxkZWNvZGVbNV0gLAotCQlcZGVjb2RlWzRdICwKLQkJXGRlY29kZVszXSAsCi0JCVxkZWNvZGVbMl0gLAotCQlcZGVjb2RlWzFdICwKLQkJXGRlY29kZVswXSAgfSksIAotCS5hcih7IFxhclsxNV0gLAotCQlcYXJbMTRdICwKLQkJXGFyWzEzXSAsCi0JCVxhclsxMl0gLAotCQlcYXJbMTFdICwKLQkJXGFyWzEwXSAsCi0JCVxhcls5XSAsCi0JCVxhcls4XSAsCi0JCVxhcls3XSAsCi0JCVxhcls2XSAsCi0JCVxhcls1XSAsCi0JCVxhcls0XSAsCi0JCVxhclszXSAsCi0JCVxhclsyXSAsCi0JCVxhclsxXSAsCi0JCVxhclswXSAgfSksIAotCS5za2lwX29uZShza2lwX29uZSksIAotCS5mZXRjaF9icmFuY2goVU5DT05ORUNURUQ2MSksIAotCS5icmFuY2hfc3RhbGwoVU5DT05ORUNURUQ2MiksIAotCS5wY19hY2MocGNfYWNjKSwgCi0JLmRtb3ZfaW5jKGRtb3ZfaW5jKSwgCi0JLmRwKGRwKSwgCi0JLmFycChhcnApLCAKLQkuYXIwKHsgXGFyMFsxNV0gLAotCQlcYXIwWzE0XSAsCi0JCVxhcjBbMTNdICwKLQkJXGFyMFsxMl0gLAotCQlcYXIwWzExXSAsCi0JCVxhcjBbMTBdICwKLQkJXGFyMFs5XSAsCi0JCVxhcjBbOF0gLAotCQlcYXIwWzddICwKLQkJXGFyMFs2XSAsCi0JCVxhcjBbNV0gLAotCQlcYXIwWzRdICwKLQkJXGFyMFszXSAsCi0JCVxhcjBbMl0gLAotCQlcYXIwWzFdICwKLQkJXGFyMFswXSAgfSksIAotCS5hcjEoeyBcYXIxWzE1XSAsCi0JCVxhcjFbMTRdICwKLQkJXGFyMVsxM10gLAotCQlcYXIxWzEyXSAsCi0JCVxhcjFbMTFdICwKLQkJXGFyMVsxMF0gLAotCQlcYXIxWzldICwKLQkJXGFyMVs4XSAsCi0JCVxhcjFbN10gLAotCQlcYXIxWzZdICwKLQkJXGFyMVs1XSAsCi0JCVxhcjFbNF0gLAotCQlcYXIxWzNdICwKLQkJXGFyMVsyXSAsCi0JCVxhcjFbMV0gLAotCQlcYXIxWzBdICB9KSwgCi0JLnBjKHsgVU5DT05ORUNURUQ2MywKLQkJVU5DT05ORUNURUQ2NCwKLQkJVU5DT05ORUNURUQ2NSwKLQkJVU5DT05ORUNURUQ2NiwKLQkJVU5DT05ORUNURUQ2NywKLQkJVU5DT05ORUNURUQ2OCwKLQkJVU5DT05ORUNURUQ2OSwKLQkJXHBjWzhdICwKLQkJXHBjWzddICwKLQkJXHBjWzZdICwKLQkJXHBjWzVdICwKLQkJXHBjWzRdICwKLQkJXHBjWzNdICwKLQkJXHBjWzJdICwKLQkJXHBjWzFdICwKLQkJXHBjWzBdICB9KSwgCi0JLmFjYyh7IFVOQ09OTkVDVEVENzAsCi0JCVxhY2NbMzFdICwKLQkJXGFjY1szMF0gLAotCQlcYWNjWzI5XSAsCi0JCVxhY2NbMjhdICwKLQkJXGFjY1syN10gLAotCQlcYWNjWzI2XSAsCi0JCVxhY2NbMjVdICwKLQkJXGFjY1syNF0gLAotCQlcYWNjWzIzXSAsCi0JCXRfc2RvWzBdLAotCQlcYWNjWzIxXSAsCi0JCVxhY2NbMjBdICwKLQkJXGFjY1sxOV0gLAotCQlcYWNjWzE4XSAsCi0JCVxhY2NbMTddICwKLQkJXGFjY1sxNl0gLAotCQlcYWNjWzE1XSAsCi0JCVxhY2NbMTRdICwKLQkJXGFjY1sxM10gLAotCQlcYWNjWzEyXSAsCi0JCVxhY2NbMTFdICwKLQkJXGFjY1sxMF0gLAotCQlcYWNjWzldICwKLQkJXGFjY1s4XSAsCi0JCVxhY2NbN10gLAotCQlcYWNjWzZdICwKLQkJXGFjY1s1XSAsCi0JCVxhY2NbNF0gLAotCQlcYWNjWzNdICwKLQkJXGFjY1syXSAsCi0JCVxhY2NbMV0gLAotCQlcYWNjWzBdICB9KSwgCi0JLnAoeyB0X3Nkb1sxXSwKLQkJXHBbMzBdICwKLQkJXHBbMjldICwKLQkJXHBbMjhdICwKLQkJXHBbMjddICwKLQkJXHBbMjZdICwKLQkJXHBbMjVdICwKLQkJXHBbMjRdICwKLQkJXHBbMjNdICwKLQkJXHBbMjJdICwKLQkJXHBbMjFdICwKLQkJXHBbMjBdICwKLQkJXHBbMTldICwKLQkJXHBbMThdICwKLQkJXHBbMTddICwKLQkJXHBbMTZdICwKLQkJXHBbMTVdICwKLQkJXHBbMTRdICwKLQkJXHBbMTNdICwKLQkJXHBbMTJdICwKLQkJXHBbMTFdICwKLQkJXHBbMTBdICwKLQkJXHBbOV0gLAotCQlccFs4XSAsCi0JCVxwWzddICwKLQkJXHBbNl0gLAotCQlccFs1XSAsCi0JCVxwWzRdICwKLQkJXHBbM10gLAotCQlccFsyXSAsCi0JCVxwWzFdICwKLQkJXHBbMF0gIH0pLCAKLQkudG9wKHsgXHRvcFsxNV0gLAotCQlcdG9wWzE0XSAsCi0JCVx0b3BbMTNdICwKLQkJXHRvcFsxMl0gLAotCQlcdG9wWzExXSAsCi0JCVx0b3BbMTBdICwKLQkJXHRvcFs5XSAsCi0JCVx0b3BbOF0gLAotCQlcdG9wWzddICwKLQkJXHRvcFs2XSAsCi0JCVx0b3BbNV0gLAotCQlcdG9wWzRdICwKLQkJXHRvcFszXSAsCi0JCVx0b3BbMl0gLAotCQlcdG9wWzFdICwKLQkJXHRvcFswXSAgfSksIAotCS5hbHVfY21kKHsgVU5DT05ORUNURUQ3MSwKLQkJXGFsdV9jbWRbMl0gLAotCQlcYWx1X2NtZFsxXSAsCi0JCVxhbHVfY21kWzBdICB9KSwgCi0JLnNlbF9vcF9hKHsgXHNlbF9vcF9hWzJdICwKLQkJXHNlbF9vcF9hWzFdICwKLQkJXHNlbF9vcF9hWzBdICB9KSwgCi0JLnNlbF9vcF9iKHsgXHNlbF9vcF9iWzJdICwKLQkJXHNlbF9vcF9iWzFdICwKLQkJXHNlbF9vcF9iWzBdICB9KSwgCi0JLnJlYWRfcHJvZyhlbmNfcmVhZF9wcm9nKSwgCi0JLmdvX3Byb2coZW5jX2dvX3Byb2cpLCAKLQkucmVhZF9kYXRhKFVOQ09OTkVDVEVENzIpLCAKLQkuZ29fZGF0YShlbmNfZ29fZGF0YSksIAotCS5yZWFkX3BvcnQoVU5DT05ORUNURUQ3MyksIAotCS5nb19wb3J0KGVuY19nb19wb3J0KSwgCi0JLm92bShvdm0pLCAKLQkuUkNfQ0dfVEVTVF9QT1JUKFJDX0NHX1RFU1RfUE9SVCksIAotCS5TUlBHX1BHX2luKDEnYjApLCAKLQkuU1JQR19QR19pbl8xKDEnYjApLCAKLQkuREZUX3NkaShuXzI2KSwgCi0JLkRGVF9zZW4oREZUX3NlbiksIAotCS5ERlRfc2RpXzIodF9zZGlbMV0pLCAKLQkuREZUX3NkaV8zKHRfc2RpWzJdKSwgCi0JLkRGVF9zZG8obl8yMykpOwotICAgbXVsdF8zMiBNUFlfMzJfSU5TVCAoLm92bSgxJ2IwKSwgCi0JLm9wX2EoeyBcb3BhWzBdWzE1XSAsCi0JCVxvcGFbMF1bMTRdICwKLQkJXG9wYVswXVsxM10gLAotCQlcb3BhWzBdWzEyXSAsCi0JCVxvcGFbMF1bMTFdICwKLQkJXG9wYVswXVsxMF0gLAotCQlcb3BhWzBdWzldICwKLQkJXG9wYVswXVs4XSAsCi0JCVxvcGFbMF1bN10gLAotCQlcb3BhWzBdWzZdICwKLQkJXG9wYVswXVs1XSAsCi0JCVxvcGFbMF1bNF0gLAotCQlcb3BhWzBdWzNdICwKLQkJXG9wYVswXVsyXSAsCi0JCVxvcGFbMF1bMV0gLAotCQlcb3BhWzBdWzBdICB9KSwgCi0JLm9wX2IoeyBcb3BiWzBdWzE1XSAsCi0JCVxvcGJbMF1bMTRdICwKLQkJXG9wYlswXVsxM10gLAotCQlcb3BiWzBdWzEyXSAsCi0JCVxvcGJbMF1bMTFdICwKLQkJXG9wYlswXVsxMF0gLAotCQlcb3BiWzBdWzldICwKLQkJXG9wYlswXVs4XSAsCi0JCVxvcGJbMF1bN10gLAotCQlcb3BiWzBdWzZdICwKLQkJXG9wYlswXVs1XSAsCi0JCVxvcGJbMF1bNF0gLAotCQlcb3BiWzBdWzNdICwKLQkJXG9wYlswXVsyXSAsCi0JCVxvcGJbMF1bMV0gLAotCQlcb3BiWzBdWzBdICB9KSwgCi0JLnJlc3VsdCh7IFxtcHlfcmVzdWx0WzMxXSAsCi0JCVxtcHlfcmVzdWx0WzMwXSAsCi0JCVxtcHlfcmVzdWx0WzI5XSAsCi0JCVxtcHlfcmVzdWx0WzI4XSAsCi0JCVxtcHlfcmVzdWx0WzI3XSAsCi0JCVxtcHlfcmVzdWx0WzI2XSAsCi0JCVxtcHlfcmVzdWx0WzI1XSAsCi0JCVxtcHlfcmVzdWx0WzI0XSAsCi0JCVxtcHlfcmVzdWx0WzIzXSAsCi0JCVxtcHlfcmVzdWx0WzIyXSAsCi0JCVxtcHlfcmVzdWx0WzIxXSAsCi0JCVxtcHlfcmVzdWx0WzIwXSAsCi0JCVxtcHlfcmVzdWx0WzE5XSAsCi0JCVxtcHlfcmVzdWx0WzE4XSAsCi0JCVxtcHlfcmVzdWx0WzE3XSAsCi0JCVxtcHlfcmVzdWx0WzE2XSAsCi0JCVxtcHlfcmVzdWx0WzE1XSAsCi0JCVxtcHlfcmVzdWx0WzE0XSAsCi0JCVxtcHlfcmVzdWx0WzEzXSAsCi0JCVxtcHlfcmVzdWx0WzEyXSAsCi0JCVxtcHlfcmVzdWx0WzExXSAsCi0JCVxtcHlfcmVzdWx0WzEwXSAsCi0JCVxtcHlfcmVzdWx0WzldICwKLQkJXG1weV9yZXN1bHRbOF0gLAotCQlcbXB5X3Jlc3VsdFs3XSAsCi0JCVxtcHlfcmVzdWx0WzZdICwKLQkJXG1weV9yZXN1bHRbNV0gLAotCQlcbXB5X3Jlc3VsdFs0XSAsCi0JCVxtcHlfcmVzdWx0WzNdICwKLQkJXG1weV9yZXN1bHRbMl0gLAotCQlcbXB5X3Jlc3VsdFsxXSAsCi0JCVxtcHlfcmVzdWx0WzBdICB9KSk7Ci0gICBwb3J0X2J1c19tYWNoIFBPUlRfQlVTX01BQ0hfSU5TVCAoLmNsayhjbGspLCAKLQkucmVzZXQocmVzZXQpLCAKLQkucmVhZChVTkNPTk5FQ1RFRDc0KSwgCi0JLndyaXRlKFVOQ09OTkVDVEVENzUpLCAKLQkud3JpdGVfaChVTkNPTk5FQ1RFRDc2KSwgCi0JLmFkZHJlc3MoeyBVTkNPTk5FQ1RFRDc3LAotCQlVTkNPTk5FQ1RFRDc4LAotCQlVTkNPTk5FQ1RFRDc5IH0pLCAKLQkuZGF0YV9pbih7IDEnYjAsCi0JCTEnYjAsCi0JCTEnYjAsCi0JCTEnYjAsCi0JCTEnYjAsCi0JCTEnYjAsCi0JCTEnYjAsCi0JCTEnYjAsCi0JCTEnYjAsCi0JCTEnYjAsCi0JCTEnYjAsCi0JCTEnYjAsCi0JCTEnYjAsCi0JCTEnYjAsCi0JCTEnYjAsCi0JCTEnYjAgfSksIAotCS5kYXRhX291dCh7IFxwb3J0X2RhdGFfb3V0WzE1XSAsCi0JCVxwb3J0X2RhdGFfb3V0WzE0XSAsCi0JCVxwb3J0X2RhdGFfb3V0WzEzXSAsCi0JCVxwb3J0X2RhdGFfb3V0WzEyXSAsCi0JCVxwb3J0X2RhdGFfb3V0WzExXSAsCi0JCVxwb3J0X2RhdGFfb3V0WzEwXSAsCi0JCVxwb3J0X2RhdGFfb3V0WzldICwKLQkJXHBvcnRfZGF0YV9vdXRbOF0gLAotCQlccG9ydF9kYXRhX291dFs3XSAsCi0JCVxwb3J0X2RhdGFfb3V0WzZdICwKLQkJXHBvcnRfZGF0YV9vdXRbNV0gLAotCQlccG9ydF9kYXRhX291dFs0XSAsCi0JCVxwb3J0X2RhdGFfb3V0WzNdICwKLQkJXHBvcnRfZGF0YV9vdXRbMl0gLAotCQlccG9ydF9kYXRhX291dFsxXSAsCi0JCVxwb3J0X2RhdGFfb3V0WzBdICB9KSwgCi0JLnBhZF9kYXRhX2luKHBvcnRfcGFkX2RhdGFfaW4pLCAKLQkucGFkX2RhdGFfb3V0KHsgVU5DT05ORUNURUQ4MCwKLQkJVU5DT05ORUNURUQ4MSwKLQkJVU5DT05ORUNURUQ4MiwKLQkJVU5DT05ORUNURUQ4MywKLQkJVU5DT05ORUNURUQ4NCwKLQkJVU5DT05ORUNURUQ4NSwKLQkJVU5DT05ORUNURUQ4NiwKLQkJVU5DT05ORUNURUQ4NywKLQkJVU5DT05ORUNURUQ4OCwKLQkJVU5DT05ORUNURUQ4OSwKLQkJVU5DT05ORUNURUQ5MCwKLQkJVU5DT05ORUNURUQ5MSwKLQkJVU5DT05ORUNURUQ5MiwKLQkJVU5DT05ORUNURUQ5MywKLQkJVU5DT05ORUNURUQ5NCwKLQkJVU5DT05ORUNURUQ5NSB9KSwgCi0JLmFkZHJzX2luKHsgMSdiMCwKLQkJMSdiMCwKLQkJMSdiMCB9KSwgCi0JLnJlYWRfY3ljbGUoZGVjX3JlYWRfcG9ydCksIAotCS5zeW5jKDEnYjApLCAKLQkuZ28oZ29fcG9ydCksIAotCS5hcyhwb3J0X2FzKSwgCi0JLmRvbmUoVU5DT05ORUNURUQ5NiksIAotCS5SQ19DR19URVNUX1BPUlQoUkNfQ0dfVEVTVF9QT1JUKSwgCi0JLlNSUEdfUEdfaW4oMSdiMCksIAotCS5TUlBHX1BHX2luXzEoMSdiMCksIAotCS5ERlRfc2RpKG5fMjMpLCAKLQkuREZUX3NlbihERlRfc2VuKSwgCi0JLkRGVF9zZG8obl8yMSkpOwotICAgcHJvZ19idXNfbWFjaCBQUk9HX0JVU19NQUNIX0lOU1QgKC5jbGsoY2xrKSwgCi0JLnJlc2V0KHJlc2V0KSwgCi0JLnJlYWQoVU5DT05ORUNURUQ5NyksIAotCS53cml0ZShVTkNPTk5FQ1RFRDk4KSwgCi0JLndyaXRlX2goVU5DT05ORUNURUQ5OSksIAotCS5hZGRyZXNzKHsgVU5DT05ORUNURUQxMDAsCi0JCVVOQ09OTkVDVEVEMTAxLAotCQlVTkNPTk5FQ1RFRDEwMiwKLQkJVU5DT05ORUNURUQxMDMsCi0JCVVOQ09OTkVDVEVEMTA0LAotCQlVTkNPTk5FQ1RFRDEwNSwKLQkJVU5DT05ORUNURUQxMDYsCi0JCVVOQ09OTkVDVEVEMTA3LAotCQlVTkNPTk5FQ1RFRDEwOCB9KSwgCi0JLmRhdGFfaW4oeyAxJ2IwLAotCQkxJ2IwLAotCQkxJ2IwLAotCQkxJ2IwLAotCQkxJ2IwLAotCQkxJ2IwLAotCQkxJ2IwLAotCQkxJ2IwLAotCQkxJ2IwLAotCQkxJ2IwLAotCQkxJ2IwLAotCQkxJ2IwLAotCQkxJ2IwLAotCQkxJ2IwLAotCQkxJ2IwLAotCQkxJ2IwIH0pLCAKLQkuZGF0YV9vdXQoeyBccF9kYXRhX291dFsxNV0gLAotCQlccF9kYXRhX291dFsxNF0gLAotCQlccF9kYXRhX291dFsxM10gLAotCQlccF9kYXRhX291dFsxMl0gLAotCQlccF9kYXRhX291dFsxMV0gLAotCQlccF9kYXRhX291dFsxMF0gLAotCQlccF9kYXRhX291dFs5XSAsCi0JCVxwX2RhdGFfb3V0WzhdICwKLQkJXHBfZGF0YV9vdXRbN10gLAotCQlccF9kYXRhX291dFs2XSAsCi0JCVxwX2RhdGFfb3V0WzVdICwKLQkJXHBfZGF0YV9vdXRbNF0gLAotCQlccF9kYXRhX291dFszXSAsCi0JCVxwX2RhdGFfb3V0WzJdICwKLQkJXHBfZGF0YV9vdXRbMV0gLAotCQlccF9kYXRhX291dFswXSAgfSksIAotCS5wYWRfZGF0YV9pbihyb21fZGF0YV9pbiksIAotCS5wYWRfZGF0YV9vdXQoeyBVTkNPTk5FQ1RFRDEwOSwKLQkJVU5DT05ORUNURUQxMTAsCi0JCVVOQ09OTkVDVEVEMTExLAotCQlVTkNPTk5FQ1RFRDExMiwKLQkJVU5DT05ORUNURUQxMTMsCi0JCVVOQ09OTkVDVEVEMTE0LAotCQlVTkNPTk5FQ1RFRDExNSwKLQkJVU5DT05ORUNURUQxMTYsCi0JCVVOQ09OTkVDVEVEMTE3LAotCQlVTkNPTk5FQ1RFRDExOCwKLQkJVU5DT05ORUNURUQxMTksCi0JCVVOQ09OTkVDVEVEMTIwLAotCQlVTkNPTk5FQ1RFRDEyMSwKLQkJVU5DT05ORUNURUQxMjIsCi0JCVVOQ09OTkVDVEVEMTIzLAotCQlVTkNPTk5FQ1RFRDEyNCB9KSwgCi0JLmFkZHJzX2luKHsgMSdiMCwKLQkJMSdiMCwKLQkJMSdiMCwKLQkJMSdiMCwKLQkJMSdiMCwKLQkJMSdiMCwKLQkJMSdiMCwKLQkJMSdiMCwKLQkJMSdiMCB9KSwgCi0JLnJlYWRfY3ljbGUocmVhZF9wcm9nKSwgCi0JLnN5bmMoMSdiMCksIAotCS5nbyhnb19wcm9nKSwgCi0JLmFzKFVOQ09OTkVDVEVEMTI1KSwgCi0JLmRvbmUoVU5DT05ORUNURUQxMjYpLCAKLQkuUkNfQ0dfVEVTVF9QT1JUKFJDX0NHX1RFU1RfUE9SVCksIAotCS5TUlBHX1BHX2luKDEnYjApLCAKLQkuU1JQR19QR19pbl8xKDEnYjApLCAKLQkuREZUX3NkaShuXzIxKSwgCi0JLkRGVF9zZW4oREZUX3NlbiksIAotCS5ERlRfc2RvKG5fMjApKTsKLSAgIHRkc3BfY29yZV9nbHVlIFREU1BfQ09SRV9HTFVFX0lOU1QgKC5hZGRyc19pbihhZGRyZXNzKSwgCi0JLmRhdGFfaW4odF9kYXRhX291dCksIAotCS5wX2FkZHJzX2luKHBfYWRkcmVzcyksIAotCS5wX2RhdGFfaW4oeyBVTkNPTk5FQ1RFRDEyNywKLQkJVU5DT05ORUNURUQxMjgsCi0JCVVOQ09OTkVDVEVEMTI5LAotCQlVTkNPTk5FQ1RFRDEzMCwKLQkJVU5DT05ORUNURUQxMzEsCi0JCVVOQ09OTkVDVEVEMTMyLAotCQlVTkNPTk5FQ1RFRDEzMywKLQkJVU5DT05ORUNURUQxMzQsCi0JCVVOQ09OTkVDVEVEMTM1LAotCQlVTkNPTk5FQ1RFRDEzNiwKLQkJVU5DT05ORUNURUQxMzcsCi0JCVVOQ09OTkVDVEVEMTM4LAotCQlVTkNPTk5FQ1RFRDEzOSwKLQkJVU5DT05ORUNURUQxNDAsCi0JCVVOQ09OTkVDVEVEMTQxLAotCQlVTkNPTk5FQ1RFRDE0MiB9KSwgCi0JLnBvcnRfYWRkcnNfaW4oeyBVTkNPTk5FQ1RFRDE0MywKLQkJVU5DT05ORUNURUQxNDQsCi0JCVVOQ09OTkVDVEVEMTQ1IH0pLCAKLQkucG9ydF9kYXRhX2luKHsgVU5DT05ORUNURUQxNDYsCi0JCVVOQ09OTkVDVEVEMTQ3LAotCQlVTkNPTk5FQ1RFRDE0OCwKLQkJVU5DT05ORUNURUQxNDksCi0JCVVOQ09OTkVDVEVEMTUwLAotCQlVTkNPTk5FQ1RFRDE1MSwKLQkJVU5DT05ORUNURUQxNTIsCi0JCVVOQ09OTkVDVEVEMTUzLAotCQlVTkNPTk5FQ1RFRDE1NCwKLQkJVU5DT05ORUNURUQxNTUsCi0JCVVOQ09OTkVDVEVEMTU2LAotCQlVTkNPTk5FQ1RFRDE1NywKLQkJVU5DT05ORUNURUQxNTgsCi0JCVVOQ09OTkVDVEVEMTU5LAotCQlVTkNPTk5FQ1RFRDE2MCwKLQkJVU5DT05ORUNURUQxNjEgfSksIAotCS5hcih7IFxhclsxNV0gLAotCQlcYXJbMTRdICwKLQkJXGFyWzEzXSAsCi0JCVxhclsxMl0gLAotCQlcYXJbMTFdICwKLQkJXGFyWzEwXSAsCi0JCVxhcls5XSAsCi0JCVxhcls4XSAsCi0JCVxhcls3XSAsCi0JCVxhcls2XSAsCi0JCVxhcls1XSAsCi0JCVxhcls0XSAsCi0JCVxhclszXSAsCi0JCVxhclsyXSAsCi0JCVxhclsxXSAsCi0JCVxhclswXSAgfSksIAotCS5yZXNfYWRyKHsgVU5DT05ORUNURUQxNjIsCi0JCVVOQ09OTkVDVEVEMTYzLAotCQlVTkNPTk5FQ1RFRDE2NCwKLQkJVU5DT05ORUNURUQxNjUsCi0JCVVOQ09OTkVDVEVEMTY2LAotCQlVTkNPTk5FQ1RFRDE2NywKLQkJVU5DT05ORUNURUQxNjgsCi0JCVVOQ09OTkVDVEVEMTY5IH0pLCAKLQkucmVzX3BvcnRfYWRyKHsgVU5DT05ORUNURUQxNzAsCi0JCVVOQ09OTkVDVEVEMTcxLAotCQlVTkNPTk5FQ1RFRDE3MiwKLQkJVU5DT05ORUNURUQxNzMsCi0JCVVOQ09OTkVDVEVEMTc0LAotCQlVTkNPTk5FQ1RFRDE3NSwKLQkJVU5DT05ORUNURUQxNzYsCi0JCVVOQ09OTkVDVEVEMTc3IH0pLCAKLQkuc2Vfc2hpZnRfbWRyKHsgVU5DT05ORUNURUQxNzgsCi0JCVVOQ09OTkVDVEVEMTc5LAotCQlVTkNPTk5FQ1RFRDE4MCwKLQkJVU5DT05ORUNURUQxODEsCi0JCVVOQ09OTkVDVEVEMTgyLAotCQlVTkNPTk5FQ1RFRDE4MywKLQkJVU5DT05ORUNURUQxODQsCi0JCVVOQ09OTkVDVEVEMTg1LAotCQlVTkNPTk5FQ1RFRDE4NiwKLQkJVU5DT05ORUNURUQxODcsCi0JCVVOQ09OTkVDVEVEMTg4LAotCQlVTkNPTk5FQ1RFRDE4OSwKLQkJVU5DT05ORUNURUQxOTAsCi0JCVVOQ09OTkVDVEVEMTkxLAotCQlVTkNPTk5FQ1RFRDE5MiwKLQkJVU5DT05ORUNURUQxOTMsCi0JCVVOQ09OTkVDVEVEMTk0LAotCQlVTkNPTk5FQ1RFRDE5NSwKLQkJVU5DT05ORUNURUQxOTYsCi0JCVVOQ09OTkVDVEVEMTk3LAotCQlVTkNPTk5FQ1RFRDE5OCwKLQkJVU5DT05ORUNURUQxOTksCi0JCVVOQ09OTkVDVEVEMjAwLAotCQlVTkNPTk5FQ1RFRDIwMSwKLQkJVU5DT05ORUNURUQyMDIsCi0JCVVOQ09OTkVDVEVEMjAzLAotCQlVTkNPTk5FQ1RFRDIwNCwKLQkJVU5DT05ORUNURUQyMDUsCi0JCVVOQ09OTkVDVEVEMjA2LAotCQlVTkNPTk5FQ1RFRDIwNywKLQkJVU5DT05ORUNURUQyMDgsCi0JCVVOQ09OTkVDVEVEMjA5IH0pLCAKLQkuemVfbWRyKHsgVU5DT05ORUNURUQyMTAsCi0JCVVOQ09OTkVDVEVEMjExLAotCQlVTkNPTk5FQ1RFRDIxMiwKLQkJVU5DT05ORUNURUQyMTMsCi0JCVVOQ09OTkVDVEVEMjE0LAotCQlVTkNPTk5FQ1RFRDIxNSwKLQkJVU5DT05ORUNURUQyMTYsCi0JCVVOQ09OTkVDVEVEMjE3LAotCQlVTkNPTk5FQ1RFRDIxOCwKLQkJVU5DT05ORUNURUQyMTksCi0JCVVOQ09OTkVDVEVEMjIwLAotCQlVTkNPTk5FQ1RFRDIyMSwKLQkJVU5DT05ORUNURUQyMjIsCi0JCVVOQ09OTkVDVEVEMjIzLAotCQlVTkNPTk5FQ1RFRDIyNCwKLQkJVU5DT05ORUNURUQyMjUsCi0JCVVOQ09OTkVDVEVEMjI2LAotCQlVTkNPTk5FQ1RFRDIyNywKLQkJVU5DT05ORUNURUQyMjgsCi0JCVVOQ09OTkVDVEVEMjI5LAotCQlVTkNPTk5FQ1RFRDIzMCwKLQkJVU5DT05ORUNURUQyMzEsCi0JCVVOQ09OTkVDVEVEMjMyLAotCQlVTkNPTk5FQ1RFRDIzMywKLQkJVU5DT05ORUNURUQyMzQsCi0JCVVOQ09OTkVDVEVEMjM1LAotCQlVTkNPTk5FQ1RFRDIzNiwKLQkJVU5DT05ORUNURUQyMzcsCi0JCVVOQ09OTkVDVEVEMjM4LAotCQlVTkNPTk5FQ1RFRDIzOSwKLQkJVU5DT05ORUNURUQyNDAsCi0JCVVOQ09OTkVDVEVEMjQxIH0pLCAKLQkuYWx1X291dCh7IFVOQ09OTkVDVEVEMjQyLAotCQlVTkNPTk5FQ1RFRDI0MywKLQkJVU5DT05ORUNURUQyNDQsCi0JCVVOQ09OTkVDVEVEMjQ1LAotCQlVTkNPTk5FQ1RFRDI0NiwKLQkJVU5DT05ORUNURUQyNDcsCi0JCVVOQ09OTkVDVEVEMjQ4LAotCQlVTkNPTk5FQ1RFRDI0OSwKLQkJVU5DT05ORUNURUQyNTAsCi0JCVVOQ09OTkVDVEVEMjUxLAotCQlVTkNPTk5FQ1RFRDI1MiwKLQkJVU5DT05ORUNURUQyNTMsCi0JCVVOQ09OTkVDVEVEMjU0LAotCQlVTkNPTk5FQ1RFRDI1NSwKLQkJVU5DT05ORUNURUQyNTYsCi0JCVVOQ09OTkVDVEVEMjU3IH0pLCAKLQkuZ29fcHJvZyhnb19wcm9nKSwgCi0JLnJlYWRfcHJvZyhyZWFkX3Byb2cpLCAKLQkuZ29fZGF0YShnb19kYXRhKSwgCi0JLnJlYWRfZGF0YShVTkNPTk5FQ1RFRDI1OCksIAotCS5nb19wb3J0KGdvX3BvcnQpLCAKLQkucmVhZF9wb3J0KFVOQ09OTkVDVEVEMjU5KSwgCi0JLnBjX2FjYyhwY19hY2MpLCAKLQkuYXJwKGFycCksIAotCS5hcjEoeyBcYXIxWzE1XSAsCi0JCVxhcjFbMTRdICwKLQkJXGFyMVsxM10gLAotCQlcYXIxWzEyXSAsCi0JCVxhcjFbMTFdICwKLQkJXGFyMVsxMF0gLAotCQlcYXIxWzldICwKLQkJXGFyMVs4XSAsCi0JCVxhcjFbN10gLAotCQlcYXIxWzZdICwKLQkJXGFyMVs1XSAsCi0JCVxhcjFbNF0gLAotCQlcYXIxWzNdICwKLQkJXGFyMVsyXSAsCi0JCVxhcjFbMV0gLAotCQlcYXIxWzBdICB9KSwgCi0JLmFyMCh7IFxhcjBbMTVdICwKLQkJXGFyMFsxNF0gLAotCQlcYXIwWzEzXSAsCi0JCVxhcjBbMTJdICwKLQkJXGFyMFsxMV0gLAotCQlcYXIwWzEwXSAsCi0JCVxhcjBbOV0gLAotCQlcYXIwWzhdICwKLQkJXGFyMFs3XSAsCi0JCVxhcjBbNl0gLAotCQlcYXIwWzVdICwKLQkJXGFyMFs0XSAsCi0JCVxhcjBbM10gLAotCQlcYXIwWzJdICwKLQkJXGFyMFsxXSAsCi0JCVxhcjBbMF0gIH0pLCAKLQkuZHAoZHApLCAKLQkuaXIoeyBcaXJbMTVdICwKLQkJXGlyWzE0XSAsCi0JCVxpclsxM10gLAotCQlcaXJbMTJdICwKLQkJXGlyWzExXSAsCi0JCXBvcnRfYWRkcmVzcywKLQkJXGlyWzddICwKLQkJXGlyWzZdICwKLQkJXGlyWzVdICwKLQkJXGlyWzRdICwKLQkJXGlyWzNdICwKLQkJXGlyWzJdICwKLQkJXGlyWzFdICwKLQkJXGlyWzBdICB9KSwgCi0JLnBkcih7IFVOQ09OTkVDVEVEMjYwLAotCQlVTkNPTk5FQ1RFRDI2MSwKLQkJVU5DT05ORUNURUQyNjIsCi0JCVVOQ09OTkVDVEVEMjYzLAotCQlVTkNPTk5FQ1RFRDI2NCwKLQkJVU5DT05ORUNURUQyNjUsCi0JCVVOQ09OTkVDVEVEMjY2LAotCQlVTkNPTk5FQ1RFRDI2NywKLQkJVU5DT05ORUNURUQyNjgsCi0JCVVOQ09OTkVDVEVEMjY5LAotCQlVTkNPTk5FQ1RFRDI3MCwKLQkJVU5DT05ORUNURUQyNzEsCi0JCVVOQ09OTkVDVEVEMjcyLAotCQlVTkNPTk5FQ1RFRDI3MywKLQkJVU5DT05ORUNURUQyNzQsCi0JCVVOQ09OTkVDVEVEMjc1IH0pLCAKLQkub3BhKHsgXG9wYVszMV0gLAotCQlcb3BhWzMwXSAsCi0JCVxvcGFbMjldICwKLQkJXG9wYVsyOF0gLAotCQlcb3BhWzI3XSAsCi0JCVxvcGFbMjZdICwKLQkJXG9wYVsyNV0gLAotCQlcb3BhWzI0XSAsCi0JCVxvcGFbMjNdICwKLQkJXG9wYVsyMl0gLAotCQlcb3BhWzIxXSAsCi0JCVxvcGFbMjBdICwKLQkJXG9wYVsxOV0gLAotCQlcb3BhWzE4XSAsCi0JCVxvcGFbMTddICwKLQkJXG9wYVsxNl0gLAotCQlcb3BhWzBdWzE1XSAsCi0JCVxvcGFbMF1bMTRdICwKLQkJXG9wYVswXVsxM10gLAotCQlcb3BhWzBdWzEyXSAsCi0JCVxvcGFbMF1bMTFdICwKLQkJXG9wYVswXVsxMF0gLAotCQlcb3BhWzBdWzldICwKLQkJXG9wYVswXVs4XSAsCi0JCVxvcGFbMF1bN10gLAotCQlcb3BhWzBdWzZdICwKLQkJXG9wYVswXVs1XSAsCi0JCVxvcGFbMF1bNF0gLAotCQlcb3BhWzBdWzNdICwKLQkJXG9wYVswXVsyXSAsCi0JCVxvcGFbMF1bMV0gLAotCQlcb3BhWzBdWzBdICB9KSwgCi0JLm9wYih7IFxvcGJbMzFdICwKLQkJXG9wYlszMF0gLAotCQlcb3BiWzI5XSAsCi0JCVxvcGJbMjhdICwKLQkJXG9wYlsyN10gLAotCQlcb3BiWzI2XSAsCi0JCVxvcGJbMjVdICwKLQkJXG9wYlsyNF0gLAotCQlcb3BiWzIzXSAsCi0JCVxvcGJbMjJdICwKLQkJXG9wYlsyMV0gLAotCQlcb3BiWzIwXSAsCi0JCVxvcGJbMTldICwKLQkJXG9wYlsxOF0gLAotCQlcb3BiWzE3XSAsCi0JCVxvcGJbMTZdICwKLQkJXG9wYlswXVsxNV0gLAotCQlcb3BiWzBdWzE0XSAsCi0JCVxvcGJbMF1bMTNdICwKLQkJXG9wYlswXVsxMl0gLAotCQlcb3BiWzBdWzExXSAsCi0JCVxvcGJbMF1bMTBdICwKLQkJXG9wYlswXVs5XSAsCi0JCVxvcGJbMF1bOF0gLAotCQlcb3BiWzBdWzddICwKLQkJXG9wYlswXVs2XSAsCi0JCVxvcGJbMF1bNV0gLAotCQlcb3BiWzBdWzRdICwKLQkJXG9wYlswXVszXSAsCi0JCVxvcGJbMF1bMl0gLAotCQlcb3BiWzBdWzFdICwKLQkJXG9wYlswXVswXSAgfSksIAotCS5tZHIoeyBVTkNPTk5FQ1RFRDI3NiwKLQkJVU5DT05ORUNURUQyNzcsCi0JCVVOQ09OTkVDVEVEMjc4LAotCQlVTkNPTk5FQ1RFRDI3OSwKLQkJVU5DT05ORUNURUQyODAsCi0JCVVOQ09OTkVDVEVEMjgxLAotCQlVTkNPTk5FQ1RFRDI4MiwKLQkJVU5DT05ORUNURUQyODMsCi0JCVVOQ09OTkVDVEVEMjg0LAotCQlVTkNPTk5FQ1RFRDI4NSwKLQkJVU5DT05ORUNURUQyODYsCi0JCVVOQ09OTkVDVEVEMjg3LAotCQlVTkNPTk5FQ1RFRDI4OCwKLQkJVU5DT05ORUNURUQyODksCi0JCVVOQ09OTkVDVEVEMjkwLAotCQlVTkNPTk5FQ1RFRDI5MSB9KSwgCi0JLmFjYyh7IDEnYjAsCi0JCVxhY2NbMzFdICwKLQkJXGFjY1szMF0gLAotCQlcYWNjWzI5XSAsCi0JCVxhY2NbMjhdICwKLQkJXGFjY1syN10gLAotCQlcYWNjWzI2XSAsCi0JCVxhY2NbMjVdICwKLQkJXGFjY1syNF0gLAotCQlcYWNjWzIzXSAsCi0JCXRfc2RvWzBdLAotCQlcYWNjWzIxXSAsCi0JCVxhY2NbMjBdICwKLQkJXGFjY1sxOV0gLAotCQlcYWNjWzE4XSAsCi0JCVxhY2NbMTddICwKLQkJXGFjY1sxNl0gLAotCQlcYWNjWzE1XSAsCi0JCVxhY2NbMTRdICwKLQkJXGFjY1sxM10gLAotCQlcYWNjWzEyXSAsCi0JCVxhY2NbMTFdICwKLQkJXGFjY1sxMF0gLAotCQlcYWNjWzldICwKLQkJXGFjY1s4XSAsCi0JCVxhY2NbN10gLAotCQlcYWNjWzZdICwKLQkJXGFjY1s1XSAsCi0JCVxhY2NbNF0gLAotCQlcYWNjWzNdICwKLQkJXGFjY1syXSAsCi0JCVxhY2NbMV0gLAotCQlcYWNjWzBdICB9KSwgCi0JLnBjKHsgMSdiMCwKLQkJMSdiMCwKLQkJMSdiMCwKLQkJMSdiMCwKLQkJMSdiMCwKLQkJMSdiMCwKLQkJMSdiMCwKLQkJXHBjWzhdICwKLQkJXHBjWzddICwKLQkJXHBjWzZdICwKLQkJXHBjWzVdICwKLQkJXHBjWzRdICwKLQkJXHBjWzNdICwKLQkJXHBjWzJdICwKLQkJXHBjWzFdICwKLQkJXHBjWzBdICB9KSwgCi0JLmRhdGFfb3V0KHBvcnRfcGFkX2RhdGFfb3V0KSwgCi0JLnBfZGF0YV9vdXQoeyBccF9kYXRhX291dFsxNV0gLAotCQlccF9kYXRhX291dFsxNF0gLAotCQlccF9kYXRhX291dFsxM10gLAotCQlccF9kYXRhX291dFsxMl0gLAotCQlccF9kYXRhX291dFsxMV0gLAotCQlccF9kYXRhX291dFsxMF0gLAotCQlccF9kYXRhX291dFs5XSAsCi0JCVxwX2RhdGFfb3V0WzhdICwKLQkJXHBfZGF0YV9vdXRbN10gLAotCQlccF9kYXRhX291dFs2XSAsCi0JCVxwX2RhdGFfb3V0WzVdICwKLQkJXHBfZGF0YV9vdXRbNF0gLAotCQlccF9kYXRhX291dFszXSAsCi0JCVxwX2RhdGFfb3V0WzJdICwKLQkJXHBfZGF0YV9vdXRbMV0gLAotCQlccF9kYXRhX291dFswXSAgfSksIAotCS5wb3J0X2RhdGFfb3V0KHsgXHBvcnRfZGF0YV9vdXRbMTVdICwKLQkJXHBvcnRfZGF0YV9vdXRbMTRdICwKLQkJXHBvcnRfZGF0YV9vdXRbMTNdICwKLQkJXHBvcnRfZGF0YV9vdXRbMTJdICwKLQkJXHBvcnRfZGF0YV9vdXRbMTFdICwKLQkJXHBvcnRfZGF0YV9vdXRbMTBdICwKLQkJXHBvcnRfZGF0YV9vdXRbOV0gLAotCQlccG9ydF9kYXRhX291dFs4XSAsCi0JCVxwb3J0X2RhdGFfb3V0WzddICwKLQkJXHBvcnRfZGF0YV9vdXRbNl0gLAotCQlccG9ydF9kYXRhX291dFs1XSAsCi0JCVxwb3J0X2RhdGFfb3V0WzRdICwKLQkJXHBvcnRfZGF0YV9vdXRbM10gLAotCQlccG9ydF9kYXRhX291dFsyXSAsCi0JCVxwb3J0X2RhdGFfb3V0WzFdICwKLQkJXHBvcnRfZGF0YV9vdXRbMF0gIH0pLCAKLQkudG9wKHsgXHRvcFsxNV0gLAotCQlcdG9wWzE0XSAsCi0JCVx0b3BbMTNdICwKLQkJXHRvcFsxMl0gLAotCQlcdG9wWzExXSAsCi0JCVx0b3BbMTBdICwKLQkJXHRvcFs5XSAsCi0JCVx0b3BbOF0gLAotCQlcdG9wWzddICwKLQkJXHRvcFs2XSAsCi0JCVx0b3BbNV0gLAotCQlcdG9wWzRdICwKLQkJXHRvcFszXSAsCi0JCVx0b3BbMl0gLAotCQlcdG9wWzFdICwKLQkJXHRvcFswXSAgfSksIAotCS5wKHsgdF9zZG9bMV0sCi0JCVxwWzMwXSAsCi0JCVxwWzI5XSAsCi0JCVxwWzI4XSAsCi0JCVxwWzI3XSAsCi0JCVxwWzI2XSAsCi0JCVxwWzI1XSAsCi0JCVxwWzI0XSAsCi0JCVxwWzIzXSAsCi0JCVxwWzIyXSAsCi0JCVxwWzIxXSAsCi0JCVxwWzIwXSAsCi0JCVxwWzE5XSAsCi0JCVxwWzE4XSAsCi0JCVxwWzE3XSAsCi0JCVxwWzE2XSAsCi0JCVxwWzE1XSAsCi0JCVxwWzE0XSAsCi0JCVxwWzEzXSAsCi0JCVxwWzEyXSAsCi0JCVxwWzExXSAsCi0JCVxwWzEwXSAsCi0JCVxwWzldICwKLQkJXHBbOF0gLAotCQlccFs3XSAsCi0JCVxwWzZdICwKLQkJXHBbNV0gLAotCQlccFs0XSAsCi0JCVxwWzNdICwKLQkJXHBbMl0gLAotCQlccFsxXSAsCi0JCVxwWzBdICB9KSwgCi0JLmFsdV9jbWQoeyAxJ2IwLAotCQkxJ2IwLAotCQkxJ2IwLAotCQkxJ2IwIH0pLCAKLQkuc2VsX29wX2EoeyBcc2VsX29wX2FbMl0gLAotCQlcc2VsX29wX2FbMV0gLAotCQlcc2VsX29wX2FbMF0gIH0pLCAKLQkuc2VsX29wX2IoeyBcc2VsX29wX2JbMl0gLAotCQlcc2VsX29wX2JbMV0gLAotCQlcc2VsX29wX2JbMF0gIH0pLCAKLQkuZGVjX2dvX3Byb2coZGVjX2dvX3Byb2cpLCAKLQkuZW5jX2dvX3Byb2coZW5jX2dvX3Byb2cpLCAKLQkuZGVjX3JlYWRfcHJvZyhkZWNfcmVhZF9wcm9nKSwgCi0JLmVuY19yZWFkX3Byb2coZW5jX3JlYWRfcHJvZyksIAotCS5kZWNfZ29fZGF0YShkZWNfZ29fZGF0YSksIAotCS5lbmNfZ29fZGF0YShlbmNfZ29fZGF0YSksIAotCS5kZWNfcmVhZF9kYXRhKDEnYjApLCAKLQkuZW5jX3JlYWRfZGF0YSgxJ2IwKSwgCi0JLmRlY19nb19wb3J0KGRlY19nb19wb3J0KSwgCi0JLmVuY19nb19wb3J0KGVuY19nb19wb3J0KSwgCi0JLmRlY19yZWFkX3BvcnQoMSdiMCksIAotCS5lbmNfcmVhZF9wb3J0KDEnYjApLCAKLQkuZG1vdl9pbmMoZG1vdl9pbmMpKTsKLSAgIHRkc3BfY29yZV9tYWNoIFREU1BfQ09SRV9NQUNIX0lOU1QgKC5zYW1wX2JpbyhzYW1wX2JpbyksIAotCS5zYW1wX2ludChVTkNPTk5FQ1RFRDI5MiksIAotCS5waGlfMShwaGlfMSksIAotCS5waGlfMihVTkNPTk5FQ1RFRDI5MyksIAotCS5waGlfMyhwaGlfMyksIAotCS5waGlfNChwaGlfNCksIAotCS5waGlfNShwaGlfNSksIAotCS5waGlfNihwaGlfNiksIAotCS5yZXNldChyZXNldCksIAotCS5jbGsoY2xrKSwgCi0JLmJ1c19yZXF1ZXN0KGJ1c19yZXF1ZXN0KSwgCi0JLmJ1c19ncmFudChidXNfZ3JhbnQpLCAKLQkuYmlvKGJpbyksIAotCS5pbnQoMSdiMCksIAotCS5SQ19DR19URVNUX1BPUlQoUkNfQ0dfVEVTVF9QT1JUKSwgCi0JLlNSUEdfUEdfaW4oMSdiMCksIAotCS5TUlBHX1BHX2luXzEoMSdiMCksIAotCS5ERlRfc2RpKG5fMjApLCAKLQkuREZUX3NlbihERlRfc2VuKSwgCi0JLkRGVF9zZG8odF9zZG9bMl0pKTsKLSAgIElOVlhMIGcyOCAoLlkobl8wKSwgCi0JLkEoc2FtcF9iaW8pKTsKLWVuZG1vZHVsZQotCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKZGlmZiAtLWdpdCBhL2Zsb3cvcG5yL0VYQU1QTEVTL0lOTk9WVVMvREVTSUdOL0dQREsvTElCUy9HUERLMDQ1L2dzY2xpYjA0NS5sZWYgYi9mbG93L3Buci9FWEFNUExFUy9JTk5PVlVTL0RFU0lHTi9HUERLL0xJQlMvR1BESzA0NS9nc2NsaWIwNDUubGVmCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDc1NQppbmRleCA1NTk4NDk1Li4wMDAwMDAwCi0tLSBhL2Zsb3cvcG5yL0VYQU1QTEVTL0lOTk9WVVMvREVTSUdOL0dQREsvTElCUy9HUERLMDQ1L2dzY2xpYjA0NS5sZWYKKysrIC9kZXYvbnVsbApAQCAtMSw0NTg4MCArMCwwIEBACi1WRVJTSU9OIDUuNiA7Ci1CVVNCSVRDSEFSUyAiW10iIDsKLURJVklERVJDSEFSICIvIiA7Ci0KLVBST1BFUlRZREVGSU5JVElPTlMKLSAgUElOIERCX0luaGVyaXRlZF9OZXRfRXhwciBTVFJJTkcgOwotICBMQVlFUiBMRUY1N19TUEFDSU5HIFNUUklORyA7Ci1FTkQgUFJPUEVSVFlERUZJTklUSU9OUwotCi1VTklUUwotICBDQVBBQ0lUQU5DRSBQSUNPRkFSQURTIDEgOwotICBEQVRBQkFTRSBNSUNST05TIDIwMDAgOwotRU5EIFVOSVRTCi1NQU5VRkFDVFVSSU5HR1JJRCAwLjAwNSA7Ci1MQVlFUiBPeGlkZQotICBUWVBFIE1BU1RFUlNMSUNFIDsKLUVORCBPeGlkZQotCi1MQVlFUiBQb2x5Ci0gIFRZUEUgTUFTVEVSU0xJQ0UgOwotRU5EIFBvbHkKLQotTEFZRVIgTmh2dAotICBUWVBFIElNUExBTlQgOwotRU5EIE5odnQKLQotTEFZRVIgTmltcAotICBUWVBFIElNUExBTlQgOwotICBXSURUSCAwLjEyIDsKLSAgU1BBQ0lORyAwLjEyIDsKLUVORCBOaW1wCi0KLUxBWUVSIFBodnQKLSAgVFlQRSBJTVBMQU5UIDsKLUVORCBQaHZ0Ci0KLUxBWUVSIFBpbXAKLSAgVFlQRSBJTVBMQU5UIDsKLSAgV0lEVEggMC4xMiA7Ci0gIFNQQUNJTkcgMC4xMiA7Ci0gIFNQQUNJTkcgMCBMQVlFUiBOaW1wIDsKLUVORCBQaW1wCi0KLUxBWUVSIE56dnQKLSAgVFlQRSBJTVBMQU5UIDsKLSAgV0lEVEggMC4zNSA7Ci0gIFNQQUNJTkcgMC4zIDsKLUVORCBOenZ0Ci0KLUxBWUVSIE5sdnQKLSAgVFlQRSBJTVBMQU5UIDsKLUVORCBObHZ0Ci0KLUxBWUVSIFBsdnQKLSAgVFlQRSBJTVBMQU5UIDsKLUVORCBQbHZ0Ci0KLUxBWUVSIFNpUHJvdAotICBUWVBFIElNUExBTlQgOwotICBXSURUSCAwLjIyIDsKLSAgU1BBQ0lORyAwLjIyIDsKLUVORCBTaVByb3QKLQotTEFZRVIgQ29udAotICBUWVBFIENVVCA7Ci0gIFNQQUNJTkcgMC4wNiA7Ci0gIFNQQUNJTkcgMC4wOCBBREpBQ0VOVENVVFMgMyBXSVRISU4gMC4xIDsKLSAgV0lEVEggMC4wNiA7Ci0jICBFTkNMT1NVUkUgQkVMT1cgMC4wMiAwLjAzIDsKLSMgIEVOQ0xPU1VSRSBBQk9WRSAwIDAuMDMgOwotICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BQ1VNQVJFQVJBVElPIDEyMDAgOwotICBEQ0NVUlJFTlRERU5TSVRZIEFWRVJBR0UgMC4xIDsKLUVORCBDb250Ci0KLUxBWUVSIE1ldGFsMQotICBUWVBFIFJPVVRJTkcgOwotICBESVJFQ1RJT04gSE9SSVpPTlRBTCA7Ci0gIFBJVENIIDAuMTkgMC4xOSA7Ci0gIFdJRFRIIDAuMDYgOwotICBBUkVBIDAuMDIgOwotICBTUEFDSU5HVEFCTEUKLSAgICBQQVJBTExFTFJVTkxFTkdUSCAwIDAuMzIgMC43NSAxLjUgMi41IDMuNSAKLSAgICBXSURUSCAwIDAuMDYgMC4wNiAwLjA2IDAuMDYgMC4wNiAwLjA2IAotICAgIFdJRFRIIDAuMSAwLjA2IDAuMSAwLjEgMC4xIDAuMSAwLjEgCi0gICAgV0lEVEggMC43NSAwLjA2IDAuMSAwLjI1IDAuMjUgMC4yNSAwLjI1IAotICAgIFdJRFRIIDEuNSAwLjA2IDAuMSAwLjI1IDAuNDUgMC40NSAwLjQ1IAotICAgIFdJRFRIIDIuNSAwLjA2IDAuMSAwLjI1IDAuNDUgMC43NSAwLjc1IAotICAgIFdJRFRIIDMuNSAwLjA2IDAuMSAwLjI1IDAuNDUgMC43NSAxLjI1IDsKLSAgTUlORU5DTE9TRURBUkVBIDAuMDQ1IDsKLSMgIERJQUdTUEFDSU5HIDAuMDggOwotIyAgRElBR01JTkVER0VMRU5HVEggMC4xIDsKLSAgUFJPUEVSVFkgTEVGNTdfU1BBQ0lORyAiU1BBQ0lORyAwLjA5IEVORE9GTElORSAwLjA5IFdJVEhJTiAwLjAyNSBQQVJBTExFTEVER0UgMC4wOSBXSVRISU4gMC4wMjUgVFdPRURHRVMgOyIgOyAjIE9BIERBVEFNT0RFTCAyCi0gIFJFU0lTVEFOQ0UgUlBFUlNRIDAuMTggOwotICBDQVBBQ0lUQU5DRSBDUEVSU1FESVNUIDAuMDAwMiA7Ci0gIFRISUNLTkVTUyAwLjMgOwotICBFREdFQ0FQQUNJVEFOQ0UgMC4wMDAyIDsKLSAgTUlOSU1VTURFTlNJVFkgMjAgOwotICBNQVhJTVVNREVOU0lUWSA2NSA7Ci0gIERFTlNJVFlDSEVDS1dJTkRPVyAxMjAgMTIwIDsKLSAgREVOU0lUWUNIRUNLU1RFUCA2MCA7Ci0gIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFBUkVBUkFUSU8gNDc1IDsKLSAgRENDVVJSRU5UREVOU0lUWSBBVkVSQUdFIDIgOwotRU5EIE1ldGFsMQotCi1MQVlFUiBWaWExCi0gIFRZUEUgQ1VUIDsKLSAgU1BBQ0lORyAwLjA3IDsKLSAgU1BBQ0lORyAwLjEgQURKQUNFTlRDVVRTIDMgV0lUSElOIDAuMTEgOwotICBXSURUSCAwLjA3IDsKLSMgIEVOQ0xPU1VSRSBCRUxPVyAwLjAwNSAwLjAzIDsKLSMgIEVOQ0xPU1VSRSBBQk9WRSAwLjAwNSAwLjAzIDsKLSAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUFSRUFSQVRJTyAyNSA7Ci0gICAgQU5URU5OQUNVTUFSRUFSQVRJTyAxMjAwIDsKLSAgRENDVVJSRU5UREVOU0lUWSBBVkVSQUdFIDAuMSA7Ci1FTkQgVmlhMQotCi1MQVlFUiBNZXRhbDIKLSAgVFlQRSBST1VUSU5HIDsKLSAgRElSRUNUSU9OIFZFUlRJQ0FMIDsKLSAgUElUQ0ggMC4yIDAuMiA7Ci0gIFdJRFRIIDAuMDcgOwotICBBUkVBIDAuMDIgOwotICBTUEFDSU5HVEFCTEUKLSAgICBQQVJBTExFTFJVTkxFTkdUSCAwIDAuMzIgMC43NSAxLjUgMi41IDMuNSAKLSAgICBXSURUSCAwIDAuMDcgMC4wNyAwLjA3IDAuMDcgMC4wNyAwLjA3IAotICAgIFdJRFRIIDAuMSAwLjA3IDAuMTUgMC4xNSAwLjE1IDAuMTUgMC4xNSAKLSAgICBXSURUSCAwLjc1IDAuMDcgMC4xNSAwLjI1IDAuMjUgMC4yNSAwLjI1IAotICAgIFdJRFRIIDEuNSAwLjA3IDAuMTUgMC4yNSAwLjQ1IDAuNDUgMC40NSAKLSAgICBXSURUSCAyLjUgMC4wNyAwLjE1IDAuMjUgMC40NSAwLjc1IDAuNzUgCi0gICAgV0lEVEggMy41IDAuMDcgMC4xNSAwLjI1IDAuNDUgMC43NSAxLjI1IDsKLSAgTUlORU5DTE9TRURBUkVBIDAuMDU1IDsKLSMgIERJQUdTUEFDSU5HIDAuMSA7Ci0jICBESUFHTUlORURHRUxFTkdUSCAwLjEgOwotICBQUk9QRVJUWSBMRUY1N19TUEFDSU5HICJTUEFDSU5HIDAuMSBFTkRPRkxJTkUgMC4xIFdJVEhJTiAwLjAzNSBQQVJBTExFTEVER0UgMC4xIFdJVEhJTiAwLjAzNSBUV09FREdFUyA7IiA7ICMgT0EgREFUQU1PREVMIDIKLSAgUkVTSVNUQU5DRSBSUEVSU1EgMC4xNyA7Ci0gIENBUEFDSVRBTkNFIENQRVJTUURJU1QgMC4wMDAyIDsKLSAgVEhJQ0tORVNTIDAuMzYgOwotICBFREdFQ0FQQUNJVEFOQ0UgMC4wMDAyIDsKLSAgTUlOSU1VTURFTlNJVFkgMjAgOwotICBNQVhJTVVNREVOU0lUWSA2NSA7Ci0gIERFTlNJVFlDSEVDS1dJTkRPVyAxMjAgMTIwIDsKLSAgREVOU0lUWUNIRUNLU1RFUCA2MCA7Ci0gIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFBUkVBUkFUSU8gNDc1IDsKLSAgRENDVVJSRU5UREVOU0lUWSBBVkVSQUdFIDIgOwotRU5EIE1ldGFsMgotCi1MQVlFUiBWaWEyCi0gIFRZUEUgQ1VUIDsKLSAgU1BBQ0lORyAwLjA3IDsKLSAgU1BBQ0lORyAwLjEgQURKQUNFTlRDVVRTIDMgV0lUSElOIDAuMTEgOwotICBXSURUSCAwLjA3IDsKLSMgIEVOQ0xPU1VSRSBCRUxPVyAwLjAwNSAwLjAzIDsKLSMgIEVOQ0xPU1VSRSBBQk9WRSAwLjAwNSAwLjAzIDsKLSAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUFSRUFSQVRJTyAyNSA7Ci0gICAgQU5URU5OQUNVTUFSRUFSQVRJTyAxMjAwIDsKLSAgRENDVVJSRU5UREVOU0lUWSBBVkVSQUdFIDAuMSA7Ci1FTkQgVmlhMgotCi1MQVlFUiBNZXRhbDMKLSAgVFlQRSBST1VUSU5HIDsKLSAgRElSRUNUSU9OIEhPUklaT05UQUwgOwotICBQSVRDSCAwLjIgMC4yIDsKLSAgV0lEVEggMC4wNyA7Ci0gIEFSRUEgMC4wMiA7Ci0gIFNQQUNJTkdUQUJMRQotICAgIFBBUkFMTEVMUlVOTEVOR1RIIDAgMC4zMiAwLjc1IDEuNSAyLjUgMy41IAotICAgIFdJRFRIIDAgMC4wNyAwLjA3IDAuMDcgMC4wNyAwLjA3IDAuMDcgCi0gICAgV0lEVEggMC4xIDAuMDcgMC4xNSAwLjE1IDAuMTUgMC4xNSAwLjE1IAotICAgIFdJRFRIIDAuNzUgMC4wNyAwLjE1IDAuMjUgMC4yNSAwLjI1IDAuMjUgCi0gICAgV0lEVEggMS41IDAuMDcgMC4xNSAwLjI1IDAuNDUgMC40NSAwLjQ1IAotICAgIFdJRFRIIDIuNSAwLjA3IDAuMTUgMC4yNSAwLjQ1IDAuNzUgMC43NSAKLSAgICBXSURUSCAzLjUgMC4wNyAwLjE1IDAuMjUgMC40NSAwLjc1IDEuMjUgOwotICBNSU5FTkNMT1NFREFSRUEgMC4wNTUgOwotIyAgRElBR1NQQUNJTkcgMC4xIDsKLSMgIERJQUdNSU5FREdFTEVOR1RIIDAuMSA7Ci0gIFBST1BFUlRZIExFRjU3X1NQQUNJTkcgIlNQQUNJTkcgMC4xIEVORE9GTElORSAwLjEgV0lUSElOIDAuMDM1IFBBUkFMTEVMRURHRSAwLjEgV0lUSElOIDAuMDM1IFRXT0VER0VTIDsiIDsgIyBPQSBEQVRBTU9ERUwgMgotICBSRVNJU1RBTkNFIFJQRVJTUSAwLjE3IDsKLSAgQ0FQQUNJVEFOQ0UgQ1BFUlNRRElTVCAwLjAwMDIgOwotICBUSElDS05FU1MgMC4zNiA7Ci0gIEVER0VDQVBBQ0lUQU5DRSAwLjAwMDIgOwotICBNSU5JTVVNREVOU0lUWSAyMCA7Ci0gIE1BWElNVU1ERU5TSVRZIDY1IDsKLSAgREVOU0lUWUNIRUNLV0lORE9XIDEyMCAxMjAgOwotICBERU5TSVRZQ0hFQ0tTVEVQIDYwIDsKLSAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUFSRUFSQVRJTyA0NzUgOwotICBEQ0NVUlJFTlRERU5TSVRZIEFWRVJBR0UgMiA7Ci1FTkQgTWV0YWwzCi0KLUxBWUVSIFZpYTMKLSAgVFlQRSBDVVQgOwotICBTUEFDSU5HIDAuMDcgOwotICBTUEFDSU5HIDAuMSBBREpBQ0VOVENVVFMgMyBXSVRISU4gMC4xMSA7Ci0gIFdJRFRIIDAuMDcgOwotIyAgRU5DTE9TVVJFIEJFTE9XIDAuMDA1IDAuMDMgOwotIyAgRU5DTE9TVVJFIEFCT1ZFIDAuMDA1IDAuMDMgOwotICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BQVJFQVJBVElPIDI1IDsKLSAgICBBTlRFTk5BQ1VNQVJFQVJBVElPIDEyMDAgOwotICBEQ0NVUlJFTlRERU5TSVRZIEFWRVJBR0UgMC4xIDsKLUVORCBWaWEzCi0KLUxBWUVSIE1ldGFsNAotICBUWVBFIFJPVVRJTkcgOwotICBESVJFQ1RJT04gVkVSVElDQUwgOwotICBQSVRDSCAwLjIgMC4yIDsKLSAgV0lEVEggMC4wNyA7Ci0gIEFSRUEgMC4wMiA7Ci0gIFNQQUNJTkdUQUJMRQotICAgIFBBUkFMTEVMUlVOTEVOR1RIIDAgMC4zMiAwLjc1IDEuNSAyLjUgMy41IAotICAgIFdJRFRIIDAgMC4wNyAwLjA3IDAuMDcgMC4wNyAwLjA3IDAuMDcgCi0gICAgV0lEVEggMC4xIDAuMDcgMC4xNSAwLjE1IDAuMTUgMC4xNSAwLjE1IAotICAgIFdJRFRIIDAuNzUgMC4wNyAwLjE1IDAuMjUgMC4yNSAwLjI1IDAuMjUgCi0gICAgV0lEVEggMS41IDAuMDcgMC4xNSAwLjI1IDAuNDUgMC40NSAwLjQ1IAotICAgIFdJRFRIIDIuNSAwLjA3IDAuMTUgMC4yNSAwLjQ1IDAuNzUgMC43NSAKLSAgICBXSURUSCAzLjUgMC4wNyAwLjE1IDAuMjUgMC40NSAwLjc1IDEuMjUgOwotICBNSU5FTkNMT1NFREFSRUEgMC4wNTUgOwotIyAgRElBR1NQQUNJTkcgMC4xIDsKLSMgIERJQUdNSU5FREdFTEVOR1RIIDAuMSA7Ci0gIFBST1BFUlRZIExFRjU3X1NQQUNJTkcgIlNQQUNJTkcgMC4xIEVORE9GTElORSAwLjEgV0lUSElOIDAuMDM1IFBBUkFMTEVMRURHRSAwLjEgV0lUSElOIDAuMDM1IFRXT0VER0VTIDsiIDsgIyBPQSBEQVRBTU9ERUwgMgotICBSRVNJU1RBTkNFIFJQRVJTUSAwLjE3IDsKLSAgQ0FQQUNJVEFOQ0UgQ1BFUlNRRElTVCAwLjAwMDIgOwotICBUSElDS05FU1MgMC4zNiA7Ci0gIEVER0VDQVBBQ0lUQU5DRSAwLjAwMDIgOwotICBNSU5JTVVNREVOU0lUWSAyMCA7Ci0gIE1BWElNVU1ERU5TSVRZIDY1IDsKLSAgREVOU0lUWUNIRUNLV0lORE9XIDEyMCAxMjAgOwotICBERU5TSVRZQ0hFQ0tTVEVQIDYwIDsKLSAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUFSRUFSQVRJTyA0NzUgOwotICBEQ0NVUlJFTlRERU5TSVRZIEFWRVJBR0UgMiA7Ci1FTkQgTWV0YWw0Ci0KLUxBWUVSIFZpYTQKLSAgVFlQRSBDVVQgOwotICBTUEFDSU5HIDAuMDcgOwotICBTUEFDSU5HIDAuMSBBREpBQ0VOVENVVFMgMyBXSVRISU4gMC4xMSA7Ci0gIFdJRFRIIDAuMDcgOwotIyAgRU5DTE9TVVJFIEJFTE9XIDAuMDA1IDAuMDMgOwotIyAgRU5DTE9TVVJFIEFCT1ZFIDAuMDA1IDAuMDMgOwotICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BQVJFQVJBVElPIDI1IDsKLSAgICBBTlRFTk5BQ1VNQVJFQVJBVElPIDEyMDAgOwotICBEQ0NVUlJFTlRERU5TSVRZIEFWRVJBR0UgMC4xIDsKLUVORCBWaWE0Ci0KLUxBWUVSIE1ldGFsNQotICBUWVBFIFJPVVRJTkcgOwotICBESVJFQ1RJT04gSE9SSVpPTlRBTCA7Ci0gIFBJVENIIDAuMiAwLjIgOwotICBXSURUSCAwLjA3IDsKLSAgQVJFQSAwLjAyIDsKLSAgU1BBQ0lOR1RBQkxFCi0gICAgUEFSQUxMRUxSVU5MRU5HVEggMCAwLjMyIDAuNzUgMS41IDIuNSAzLjUgCi0gICAgV0lEVEggMCAwLjA3IDAuMDcgMC4wNyAwLjA3IDAuMDcgMC4wNyAKLSAgICBXSURUSCAwLjEgMC4wNyAwLjE1IDAuMTUgMC4xNSAwLjE1IDAuMTUgCi0gICAgV0lEVEggMC43NSAwLjA3IDAuMTUgMC4yNSAwLjI1IDAuMjUgMC4yNSAKLSAgICBXSURUSCAxLjUgMC4wNyAwLjE1IDAuMjUgMC40NSAwLjQ1IDAuNDUgCi0gICAgV0lEVEggMi41IDAuMDcgMC4xNSAwLjI1IDAuNDUgMC43NSAwLjc1IAotICAgIFdJRFRIIDMuNSAwLjA3IDAuMTUgMC4yNSAwLjQ1IDAuNzUgMS4yNSA7Ci0gIE1JTkVOQ0xPU0VEQVJFQSAwLjA1NSA7Ci0jICBESUFHU1BBQ0lORyAwLjEgOwotIyAgRElBR01JTkVER0VMRU5HVEggMC4xIDsKLSAgUFJPUEVSVFkgTEVGNTdfU1BBQ0lORyAiU1BBQ0lORyAwLjEgRU5ET0ZMSU5FIDAuMSBXSVRISU4gMC4wMzUgUEFSQUxMRUxFREdFIDAuMSBXSVRISU4gMC4wMzUgVFdPRURHRVMgOyIgOyAjIE9BIERBVEFNT0RFTCAyCi0gIFJFU0lTVEFOQ0UgUlBFUlNRIDAuMTcgOwotICBDQVBBQ0lUQU5DRSBDUEVSU1FESVNUIDAuMDAwMiA7Ci0gIFRISUNLTkVTUyAwLjM2IDsKLSAgRURHRUNBUEFDSVRBTkNFIDAuMDAwMiA7Ci0gIE1JTklNVU1ERU5TSVRZIDIwIDsKLSAgTUFYSU1VTURFTlNJVFkgNjUgOwotICBERU5TSVRZQ0hFQ0tXSU5ET1cgMTIwIDEyMCA7Ci0gIERFTlNJVFlDSEVDS1NURVAgNjAgOwotICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BQVJFQVJBVElPIDQ3NSA7Ci0gIERDQ1VSUkVOVERFTlNJVFkgQVZFUkFHRSAyIDsKLUVORCBNZXRhbDUKLQotTEFZRVIgVmlhNQotICBUWVBFIENVVCA7Ci0gIFNQQUNJTkcgMC4wNyA7Ci0gIFNQQUNJTkcgMC4xIEFESkFDRU5UQ1VUUyAzIFdJVEhJTiAwLjExIDsKLSAgV0lEVEggMC4wNyA7Ci0jICBFTkNMT1NVUkUgQkVMT1cgMC4wMDUgMC4wMyA7Ci0jICBFTkNMT1NVUkUgQUJPVkUgMC4wMDUgMC4wMyA7Ci0gIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFBUkVBUkFUSU8gMjUgOwotICAgIEFOVEVOTkFDVU1BUkVBUkFUSU8gMTIwMCA7Ci0gIERDQ1VSUkVOVERFTlNJVFkgQVZFUkFHRSAwLjEgOwotRU5EIFZpYTUKLQotTEFZRVIgTWV0YWw2Ci0gIFRZUEUgUk9VVElORyA7Ci0gIERJUkVDVElPTiBWRVJUSUNBTCA7Ci0gIFBJVENIIDAuMiAwLjIgOwotICBXSURUSCAwLjA3IDsKLSAgQVJFQSAwLjAyIDsKLSAgU1BBQ0lOR1RBQkxFCi0gICAgUEFSQUxMRUxSVU5MRU5HVEggMCAwLjMyIDAuNzUgMS41IDIuNSAzLjUgCi0gICAgV0lEVEggMCAwLjA3IDAuMDcgMC4wNyAwLjA3IDAuMDcgMC4wNyAKLSAgICBXSURUSCAwLjEgMC4wNyAwLjE1IDAuMTUgMC4xNSAwLjE1IDAuMTUgCi0gICAgV0lEVEggMC43NSAwLjA3IDAuMTUgMC4yNSAwLjI1IDAuMjUgMC4yNSAKLSAgICBXSURUSCAxLjUgMC4wNyAwLjE1IDAuMjUgMC40NSAwLjQ1IDAuNDUgCi0gICAgV0lEVEggMi41IDAuMDcgMC4xNSAwLjI1IDAuNDUgMC43NSAwLjc1IAotICAgIFdJRFRIIDMuNSAwLjA3IDAuMTUgMC4yNSAwLjQ1IDAuNzUgMS4yNSA7Ci0gIE1JTkVOQ0xPU0VEQVJFQSAwLjA1NSA7Ci0jICBESUFHU1BBQ0lORyAwLjEgOwotIyAgRElBR01JTkVER0VMRU5HVEggMC4xIDsKLSAgUFJPUEVSVFkgTEVGNTdfU1BBQ0lORyAiU1BBQ0lORyAwLjEgRU5ET0ZMSU5FIDAuMSBXSVRISU4gMC4wMzUgUEFSQUxMRUxFREdFIDAuMSBXSVRISU4gMC4wMzUgVFdPRURHRVMgOyIgOyAjIE9BIERBVEFNT0RFTCAyCi0gIFJFU0lTVEFOQ0UgUlBFUlNRIDAuMTcgOwotICBDQVBBQ0lUQU5DRSBDUEVSU1FESVNUIDAuMDAwMiA7Ci0gIFRISUNLTkVTUyAwLjM2IDsKLSAgRURHRUNBUEFDSVRBTkNFIDAuMDAwMiA7Ci0gIE1JTklNVU1ERU5TSVRZIDIwIDsKLSAgTUFYSU1VTURFTlNJVFkgNjUgOwotICBERU5TSVRZQ0hFQ0tXSU5ET1cgMTIwIDEyMCA7Ci0gIERFTlNJVFlDSEVDS1NURVAgNjAgOwotICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BQVJFQVJBVElPIDQ3NSA7Ci0gIERDQ1VSUkVOVERFTlNJVFkgQVZFUkFHRSAyIDsKLUVORCBNZXRhbDYKLQotTEFZRVIgVmlhNgotICBUWVBFIENVVCA7Ci0gIFNQQUNJTkcgMC4wNyA7Ci0gIFNQQUNJTkcgMC4xIEFESkFDRU5UQ1VUUyAzIFdJVEhJTiAwLjExIDsKLSAgV0lEVEggMC4wNyA7Ci0jICBFTkNMT1NVUkUgQkVMT1cgMC4wMDUgMC4wMyA7Ci0jICBFTkNMT1NVUkUgQUJPVkUgMC4wMDUgMC4wMyA7Ci0gIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFBUkVBUkFUSU8gMjUgOwotICAgIEFOVEVOTkFDVU1BUkVBUkFUSU8gMTIwMCA7Ci0gIERDQ1VSUkVOVERFTlNJVFkgQVZFUkFHRSAwLjEgOwotRU5EIFZpYTYKLQotTEFZRVIgTWV0YWw3Ci0gIFRZUEUgUk9VVElORyA7Ci0gIERJUkVDVElPTiBIT1JJWk9OVEFMIDsKLSAgUElUQ0ggMC4yIDAuMiA7Ci0gIFdJRFRIIDAuMDcgOwotICBBUkVBIDAuMDIgOwotICBTUEFDSU5HVEFCTEUKLSAgICBQQVJBTExFTFJVTkxFTkdUSCAwIDAuMzIgMC43NSAxLjUgMi41IDMuNSAKLSAgICBXSURUSCAwIDAuMDcgMC4wNyAwLjA3IDAuMDcgMC4wNyAwLjA3IAotICAgIFdJRFRIIDAuMSAwLjA3IDAuMTUgMC4xNSAwLjE1IDAuMTUgMC4xNSAKLSAgICBXSURUSCAwLjc1IDAuMDcgMC4xNSAwLjI1IDAuMjUgMC4yNSAwLjI1IAotICAgIFdJRFRIIDEuNSAwLjA3IDAuMTUgMC4yNSAwLjQ1IDAuNDUgMC40NSAKLSAgICBXSURUSCAyLjUgMC4wNyAwLjE1IDAuMjUgMC40NSAwLjc1IDAuNzUgCi0gICAgV0lEVEggMy41IDAuMDcgMC4xNSAwLjI1IDAuNDUgMC43NSAxLjI1IDsKLSAgTUlORU5DTE9TRURBUkVBIDAuMDU1IDsKLSMgIERJQUdTUEFDSU5HIDAuMSA7Ci0jICBESUFHTUlORURHRUxFTkdUSCAwLjEgOwotICBQUk9QRVJUWSBMRUY1N19TUEFDSU5HICJTUEFDSU5HIDAuMSBFTkRPRkxJTkUgMC4xIFdJVEhJTiAwLjAzNSBQQVJBTExFTEVER0UgMC4xIFdJVEhJTiAwLjAzNSBUV09FREdFUyA7IiA7ICMgT0EgREFUQU1PREVMIDIKLSAgUkVTSVNUQU5DRSBSUEVSU1EgMC4xNyA7Ci0gIENBUEFDSVRBTkNFIENQRVJTUURJU1QgMC4wMDAyIDsKLSAgVEhJQ0tORVNTIDAuMzYgOwotICBFREdFQ0FQQUNJVEFOQ0UgMC4wMDAyIDsKLSAgTUlOSU1VTURFTlNJVFkgMjAgOwotICBNQVhJTVVNREVOU0lUWSA2NSA7Ci0gIERFTlNJVFlDSEVDS1dJTkRPVyAxMjAgMTIwIDsKLSAgREVOU0lUWUNIRUNLU1RFUCA2MCA7Ci0gIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFBUkVBUkFUSU8gNDc1IDsKLSAgRENDVVJSRU5UREVOU0lUWSBBVkVSQUdFIDIgOwotRU5EIE1ldGFsNwotCi1MQVlFUiBWaWE3Ci0gIFRZUEUgQ1VUIDsKLSAgU1BBQ0lORyAwLjA3IDsKLSAgU1BBQ0lORyAwLjEgQURKQUNFTlRDVVRTIDMgV0lUSElOIDAuMTEgOwotICBXSURUSCAwLjA3IDsKLSMgIEVOQ0xPU1VSRSBCRUxPVyAwLjAwNSAwLjAzIDsKLSMgIEVOQ0xPU1VSRSBBQk9WRSAwLjAwNSAwLjAzIDsKLSAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUFSRUFSQVRJTyAyNSA7Ci0gICAgQU5URU5OQUNVTUFSRUFSQVRJTyAxMjAwIDsKLSAgRENDVVJSRU5UREVOU0lUWSBBVkVSQUdFIDAuMSA7Ci1FTkQgVmlhNwotCi1MQVlFUiBNZXRhbDgKLSAgVFlQRSBST1VUSU5HIDsKLSAgRElSRUNUSU9OIFZFUlRJQ0FMIDsKLSAgUElUQ0ggMC4yIDAuMiA7Ci0gIFdJRFRIIDAuMDcgOwotICBBUkVBIDAuMDIgOwotICBTUEFDSU5HVEFCTEUKLSAgICBQQVJBTExFTFJVTkxFTkdUSCAwIDAuMzIgMC43NSAxLjUgMi41IDMuNSAKLSAgICBXSURUSCAwIDAuMDcgMC4wNyAwLjA3IDAuMDcgMC4wNyAwLjA3IAotICAgIFdJRFRIIDAuMSAwLjA3IDAuMTUgMC4xNSAwLjE1IDAuMTUgMC4xNSAKLSAgICBXSURUSCAwLjc1IDAuMDcgMC4xNSAwLjI1IDAuMjUgMC4yNSAwLjI1IAotICAgIFdJRFRIIDEuNSAwLjA3IDAuMTUgMC4yNSAwLjQ1IDAuNDUgMC40NSAKLSAgICBXSURUSCAyLjUgMC4wNyAwLjE1IDAuMjUgMC40NSAwLjc1IDAuNzUgCi0gICAgV0lEVEggMy41IDAuMDcgMC4xNSAwLjI1IDAuNDUgMC43NSAxLjI1IDsKLSAgTUlORU5DTE9TRURBUkVBIDAuMDU1IDsKLSMgIERJQUdTUEFDSU5HIDAuMSA7Ci0jICBESUFHTUlORURHRUxFTkdUSCAwLjEgOwotICBQUk9QRVJUWSBMRUY1N19TUEFDSU5HICJTUEFDSU5HIDAuMSBFTkRPRkxJTkUgMC4xIFdJVEhJTiAwLjAzNSBQQVJBTExFTEVER0UgMC4xIFdJVEhJTiAwLjAzNSBUV09FREdFUyA7IiA7ICMgT0EgREFUQU1PREVMIDIKLSAgUkVTSVNUQU5DRSBSUEVSU1EgMC4xNyA7Ci0gIENBUEFDSVRBTkNFIENQRVJTUURJU1QgMC4wMDAyIDsKLSAgVEhJQ0tORVNTIDAuMzYgOwotICBFREdFQ0FQQUNJVEFOQ0UgMC4wMDAyIDsKLSAgTUlOSU1VTURFTlNJVFkgMjAgOwotICBNQVhJTVVNREVOU0lUWSA2NSA7Ci0gIERFTlNJVFlDSEVDS1dJTkRPVyAxMjAgMTIwIDsKLSAgREVOU0lUWUNIRUNLU1RFUCA2MCA7Ci0gIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFBUkVBUkFUSU8gNDc1IDsKLSAgRENDVVJSRU5UREVOU0lUWSBBVkVSQUdFIDIgOwotRU5EIE1ldGFsOAotCi1MQVlFUiBWaWE4Ci0gIFRZUEUgQ1VUIDsKLSAgU1BBQ0lORyAwLjA3IDsKLSAgU1BBQ0lORyAwLjEgQURKQUNFTlRDVVRTIDMgV0lUSElOIDAuMTEgOwotICBXSURUSCAwLjA3IDsKLSMgIEVOQ0xPU1VSRSBCRUxPVyAwLjAwNSAwLjAzIDsKLSMgIEVOQ0xPU1VSRSBBQk9WRSAwLjAwNSAwLjAzIDsKLSAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUFSRUFSQVRJTyAyNSA7Ci0gICAgQU5URU5OQUNVTUFSRUFSQVRJTyAxMjAwIDsKLSAgRENDVVJSRU5UREVOU0lUWSBBVkVSQUdFIDAuMSA7Ci1FTkQgVmlhOAotCi1MQVlFUiBNZXRhbDkKLSAgVFlQRSBST1VUSU5HIDsKLSAgRElSRUNUSU9OIEhPUklaT05UQUwgOwotICBQSVRDSCAwLjMzIDAuMzMgOwotICBXSURUSCAwLjA3IDsKLSAgQVJFQSAwLjAyIDsKLSAgU1BBQ0lOR1RBQkxFCi0gICAgUEFSQUxMRUxSVU5MRU5HVEggMCAwLjMyIDAuNzUgMS41IDIuNSAzLjUgCi0gICAgV0lEVEggMCAwLjA3IDAuMDcgMC4wNyAwLjA3IDAuMDcgMC4wNyAKLSAgICBXSURUSCAwLjEgMC4wNyAwLjE1IDAuMTUgMC4xNSAwLjE1IDAuMTUgCi0gICAgV0lEVEggMC43NSAwLjA3IDAuMTUgMC4yNSAwLjI1IDAuMjUgMC4yNSAKLSAgICBXSURUSCAxLjUgMC4wNyAwLjE1IDAuMjUgMC40NSAwLjQ1IDAuNDUgCi0gICAgV0lEVEggMi41IDAuMDcgMC4xNSAwLjI1IDAuNDUgMC43NSAwLjc1IAotICAgIFdJRFRIIDMuNSAwLjA3IDAuMTUgMC4yNSAwLjQ1IDAuNzUgMS4yNSA7Ci0gIE1JTkVOQ0xPU0VEQVJFQSAwLjA1NSA7Ci0jICBESUFHU1BBQ0lORyAwLjEgOwotIyAgRElBR01JTkVER0VMRU5HVEggMC4xIDsKLSAgUFJPUEVSVFkgTEVGNTdfU1BBQ0lORyAiU1BBQ0lORyAwLjEgRU5ET0ZMSU5FIDAuMSBXSVRISU4gMC4wMzUgUEFSQUxMRUxFREdFIDAuMSBXSVRISU4gMC4wMzUgVFdPRURHRVMgOyIgOyAjIE9BIERBVEFNT0RFTCAyCi0gIFJFU0lTVEFOQ0UgUlBFUlNRIDAuMDIgOwotICBDQVBBQ0lUQU5DRSBDUEVSU1FESVNUIDAuMDAwMiA7Ci0gIFRISUNLTkVTUyAxIDsKLSAgRURHRUNBUEFDSVRBTkNFIDAuMDAwMiA7Ci0gIE1JTklNVU1ERU5TSVRZIDIwIDsKLSAgTUFYSU1VTURFTlNJVFkgNjUgOwotICBERU5TSVRZQ0hFQ0tXSU5ET1cgMTIwIDEyMCA7Ci0gIERFTlNJVFlDSEVDS1NURVAgNjAgOwotICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BQVJFQVJBVElPIDQ3NSA7Ci0gIERDQ1VSUkVOVERFTlNJVFkgQVZFUkFHRSAyIDsKLUVORCBNZXRhbDkKLQotI0xBWUVSIFZpYTkKLSMgIFRZUEUgQ1VUIDsKLSMgIFNQQUNJTkcgMC4xOCA7Ci0jICBTUEFDSU5HIDAuMiBBREpBQ0VOVENVVFMgMyBXSVRISU4gMC4yNSA7Ci0jICBXSURUSCAwLjE4IDsKLSMgIEVOQ0xPU1VSRSBCRUxPVyAwLjAxNSAwLjA0IDsKLSMgIEVOQ0xPU1VSRSBBQk9WRSAwLjAzIDAuMDUgOwotIyAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0jICAgIEFOVEVOTkFBUkVBUkFUSU8gMjUgOwotIyAgICBBTlRFTk5BQ1VNQVJFQVJBVElPIDEyMDAgOwotIyAgRENDVVJSRU5UREVOU0lUWSBBVkVSQUdFIDAuOCA7Ci0jRU5EIFZpYTkKLQotI0xBWUVSIE1ldGFsMTAKLSMgIFRZUEUgUk9VVElORyA7Ci0jICBESVJFQ1RJT04gVkVSVElDQUwgOwotIyAgUElUQ0ggMC40OCAwLjQ4IDsKLSMgIFdJRFRIIDAuMjIgOwotIyAgQVJFQSAwLjEgOwotIyAgU1BBQ0lOR1RBQkxFCi0jICAgIFBBUkFMTEVMUlVOTEVOR1RIIDAgMC43NSAxLjUgMi41IDMuNSAKLSMgICAgV0lEVEggMCAwLjIgMC4yIDAuMiAwLjIgMC4yIAotIyAgICBXSURUSCAwLjc1IDAuMiAwLjM1IDAuNDUgMC43NSAxLjI1IAotIyAgICBXSURUSCAxLjUgMC4yIDAuMzUgMC40NSAwLjQ1IDAuNDUgCi0jICAgIFdJRFRIIDIuNSAwLjIgMC4zNSAwLjQ1IDAuNzUgMC43NSAKLSMgICAgV0lEVEggMy41IDAuMiAwLjM1IDAuNDUgMC43NSAxLjI1IDsKLSMgIE1JTkVOQ0xPU0VEQVJFQSAwLjExIDsKLSMgIFJFU0lTVEFOQ0UgUlBFUlNRIDAuMDIgOwotIyAgQ0FQQUNJVEFOQ0UgQ1BFUlNRRElTVCAwLjAwMDIgOwotIyAgVEhJQ0tORVNTIDEgOwotIyAgRURHRUNBUEFDSVRBTkNFIDAuMDAwMiA7Ci0jICBNSU5JTVVNREVOU0lUWSAyMCA7Ci0jICBNQVhJTVVNREVOU0lUWSA2NSA7Ci0jICBERU5TSVRZQ0hFQ0tXSU5ET1cgMTIwIDEyMCA7Ci0jICBERU5TSVRZQ0hFQ0tTVEVQIDYwIDsKLSMgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotIyAgICBBTlRFTk5BQVJFQVJBVElPIDQ3NSA7Ci0jICBEQ0NVUlJFTlRERU5TSVRZIEFWRVJBR0UgOCA7Ci0jRU5EIE1ldGFsMTAKLSMKLSNMQVlFUiBWaWExMAotIyAgVFlQRSBDVVQgOwotIyAgU1BBQ0lORyAwLjE4IDsKLSMgIFNQQUNJTkcgMC4yIEFESkFDRU5UQ1VUUyAzIFdJVEhJTiAwLjI1IDsKLSMgIFdJRFRIIDAuMTggOwotIyAgRU5DTE9TVVJFIEJFTE9XIDAuMDE1IDAuMDQgOwotIyAgRU5DTE9TVVJFIEFCT1ZFIDAuMDMgMC4wNSA7Ci0jICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSMgICAgQU5URU5OQUFSRUFSQVRJTyAyNSA7Ci0jICAgIEFOVEVOTkFDVU1BUkVBUkFUSU8gMTIwMCA7Ci0jICBEQ0NVUlJFTlRERU5TSVRZIEFWRVJBR0UgMC44IDsKLSNFTkQgVmlhMTAKLSMKLSNMQVlFUiBNZXRhbDExCi0jICBUWVBFIFJPVVRJTkcgOwotIyAgRElSRUNUSU9OIEhPUklaT05UQUwgOwotIyAgUElUQ0ggMC40OCAwLjQ4IDsKLSMgIFdJRFRIIDAuMjIgOwotIyAgQVJFQSAwLjEgOwotIyAgU1BBQ0lOR1RBQkxFCi0jICAgIFBBUkFMTEVMUlVOTEVOR1RIIDAgMC43NSAxLjUgMi41IDMuNSAKLSMgICAgV0lEVEggMCAwLjIgMC4yIDAuMiAwLjIgMC4yIAotIyAgICBXSURUSCAwLjc1IDAuMiAwLjM1IDAuNDUgMC43NSAxLjI1IAotIyAgICBXSURUSCAxLjUgMC4yIDAuMzUgMC40NSAwLjQ1IDAuNDUgCi0jICAgIFdJRFRIIDIuNSAwLjIgMC4zNSAwLjQ1IDAuNzUgMC43NSAKLSMgICAgV0lEVEggMy41IDAuMiAwLjM1IDAuNDUgMC43NSAxLjI1IDsKLSMgIE1JTkVOQ0xPU0VEQVJFQSAwLjExIDsKLSMgIFJFU0lTVEFOQ0UgUlBFUlNRIDAuMDIgOwotIyAgQ0FQQUNJVEFOQ0UgQ1BFUlNRRElTVCAwLjAwMDIgOwotIyAgVEhJQ0tORVNTIDEgOwotIyAgRURHRUNBUEFDSVRBTkNFIDAuMDAwMiA7Ci0jICBNSU5JTVVNREVOU0lUWSAyMCA7Ci0jICBNQVhJTVVNREVOU0lUWSA2NSA7Ci0jICBERU5TSVRZQ0hFQ0tXSU5ET1cgMTIwIDEyMCA7Ci0jICBERU5TSVRZQ0hFQ0tTVEVQIDYwIDsKLSMgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotIyAgICBBTlRFTk5BQVJFQVJBVElPIDQ3NSA7Ci0jICBEQ0NVUlJFTlRERU5TSVRZIEFWRVJBR0UgOCA7Ci0jRU5EIE1ldGFsMTEKLQotTEFZRVIgT1ZFUkxBUAotICBUWVBFIE9WRVJMQVAgOwotRU5EIE9WRVJMQVAKLQotVklBIFZJQTEyXzFDIERFRkFVTFQKLSAgICBSRVNJU1RBTkNFIDYuNzAwMDAwMDAwMCA7Ci0gICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAtMC4wNjUgLTAuMDM1ICAwLjA2NSAgMC4wMzUgOwotICAgIExBWUVSIFZpYTEgOwotICAgICAgICBSRUNUIC0wLjAzNSAtMC4wMzUgIDAuMDM1ICAwLjAzNSA7Ci0gICAgTEFZRVIgTWV0YWwyIDsKLSAgICAgICAgUkVDVCAtMC4wMzUgLTAuMDY1ICAwLjAzNSAgMC4wNjUgOwotRU5EIFZJQTEyXzFDCi0KLVZJQSBWSUExMl8xQ19IIERFRkFVTFQKLSAgICBSRVNJU1RBTkNFIDYuNzAwMDAwMDAwMCA7Ci0gICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAtMC4wNjUgLTAuMDM1ICAwLjA2NSAgMC4wMzUgOwotICAgIExBWUVSIFZpYTEgOwotICAgICAgICBSRUNUIC0wLjAzNSAtMC4wMzUgIDAuMDM1ICAwLjAzNSA7Ci0gICAgTEFZRVIgTWV0YWwyIDsKLSAgICAgICAgUkVDVCAtMC4wNjUgLTAuMDM1ICAwLjA2NSAgMC4wMzUgOwotRU5EIFZJQTEyXzFDX0gKLSAgICAgICAgICAgICAgICAgCi1WSUEgVklBMTJfMUNfViBERUZBVUxUCi0gICAgUkVTSVNUQU5DRSA2LjcwMDAwMDAwMDAgOwotICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgLTAuMDM1IC0wLjA2NSAgMC4wMzUgIDAuMDY1IDsKLSAgICBMQVlFUiBWaWExIDsKLSAgICAgICAgUkVDVCAtMC4wMzUgLTAuMDM1ICAwLjAzNSAgMC4wMzUgOwotICAgIExBWUVSIE1ldGFsMiA7Ci0gICAgICAgIFJFQ1QgLTAuMDM1IC0wLjA2NSAgMC4wMzUgIDAuMDY1IDsKLUVORCBWSUExMl8xQ19WCi0KLSNWSUEgVklBMTJfMUNfRkFUX0MgREVGQVVMVAotIyAgICBSRVNJU1RBTkNFIDYuNzAwMDAwMDAwMCA7Ci0jICAgIExBWUVSIE1ldGFsMSA7Ci0jICAgICAgICBSRUNUIC0wLjA4NSAtMC4wMzUgIDAuMDg1ICAwLjAzNSA7Ci0jICAgIExBWUVSIFZpYTEgOwotIyAgICAgICAgUkVDVCAtMC4wMzUgLTAuMDM1ICAwLjAzNSAgMC4wMzUgOwotIyAgICBMQVlFUiBNZXRhbDIgOwotIyAgICAgICAgUkVDVCAtMC4wMzUgLTAuMDg1ICAwLjAzNSAgMC4wODUgOwotI0VORCBWSUExMl8xQ19GQVRfQwotIyAgICAgICAgICAgICAKLSNWSUEgVklBMTJfMUNfRkFUX0ggREVGQVVMVAotIyAgICBSRVNJU1RBTkNFIDYuNzAwMDAwMDAwMCA7Ci0jICAgIExBWUVSIE1ldGFsMSA7Ci0jICAgICAgICBSRUNUIC0wLjA4NSAtMC4wMzUgIDAuMDg1ICAwLjAzNSA7Ci0jICAgIExBWUVSIFZpYTEgOwotIyAgICAgICAgUkVDVCAtMC4wMzUgLTAuMDM1ICAwLjAzNSAgMC4wMzUgOwotIyAgICBMQVlFUiBNZXRhbDIgOwotIyAgICAgICAgUkVDVCAtMC4wODUgLTAuMDM1ICAwLjA4NSAgMC4wMzUgOwotI0VORCBWSUExMl8xQ19GQVRfSAotIwotI1ZJQSBWSUExMl8xQ19GQVRfViBERUZBVUxUCi0jICAgIFJFU0lTVEFOQ0UgNi43MDAwMDAwMDAwIDsKLSMgICAgTEFZRVIgTWV0YWwxIDsKLSMgICAgICAgIFJFQ1QgLTAuMDM1IC0wLjA4NSAgMC4wMzUgIDAuMDg1IDsKLSMgICAgTEFZRVIgVmlhMSA7Ci0jICAgICAgICBSRUNUIC0wLjAzNSAtMC4wMzUgIDAuMDM1ICAwLjAzNSA7Ci0jICAgIExBWUVSIE1ldGFsMiA7Ci0jICAgICAgICBSRUNUIC0wLjAzNSAtMC4wODUgIDAuMDM1ICAwLjA4NSA7Ci0jRU5EIFZJQTEyXzFDX0ZBVF9WCi0jCi0jVklBIFZJQTEyXzFDX0ZBVCBERUZBVUxUCi0jICAgIFJFU0lTVEFOQ0UgNi43MDAwMDAwMDAwIDsKLSMgICAgTEFZRVIgTWV0YWwxIDsKLSMgICAgICAgIFJFQ1QgLTAuMDY1IC0wLjA2NSAgMC4wNjUgIDAuMDY1IDsKLSMgICAgTEFZRVIgVmlhMSA7Ci0jICAgICAgICBSRUNUIC0wLjAzNSAtMC4wMzUgIDAuMDM1ICAwLjAzNSA7Ci0jICAgIExBWUVSIE1ldGFsMiA7Ci0jICAgICAgICBSRUNUIC0wLjA2NSAtMC4wNjUgIDAuMDY1ICAwLjA2NSA7Ci0jRU5EIFZJQTEyXzFDX0ZBVAotICAgICAgICAgICAgICAgICAKLVZJQSBWSUExMl8yQ19FIERFRkFVTFQKLSAgICBSRVNJU1RBTkNFIDMuMzUwMDAwMDAwMCA7Ci0gICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAtMC4wNjUgLTAuMDM1ICAwLjIwNSAgMC4wMzUgOwotICAgIExBWUVSIFZpYTEgOwotICAgICAgICBSRUNUIC0wLjAzNSAtMC4wMzUgIDAuMDM1ICAwLjAzNSA7Ci0gICAgICAgIFJFQ1QgMC4xMDUgLTAuMDM1ICAwLjE3NSAgMC4wMzUgOwotICAgIExBWUVSIE1ldGFsMiA7Ci0gICAgICAgIFJFQ1QgLTAuMDM1IC0wLjA2NSAgMC4xNzUgIDAuMDY1IDsKLUVORCBWSUExMl8yQ19FCi0KLVZJQSBWSUExMl8yQ19XIERFRkFVTFQKLSAgICBSRVNJU1RBTkNFIDMuMzUwMDAwMDAwMCA7Ci0gICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAtMC4yMDUgLTAuMDM1ICAwLjA2NSAgMC4wMzUgOwotICAgIExBWUVSIFZpYTEgOwotICAgICAgICBSRUNUIC0wLjAzNSAtMC4wMzUgIDAuMDM1ICAwLjAzNSA7Ci0gICAgICAgIFJFQ1QgLTAuMTc1IC0wLjAzNSAgLTAuMTA1ICAwLjAzNSA7Ci0gICAgTEFZRVIgTWV0YWwyIDsKLSAgICAgICAgUkVDVCAtMC4xNzUgLTAuMDY1ICAwLjAzNSAgMC4wNjUgOwotRU5EIFZJQTEyXzJDX1cKLQotVklBIFZJQTEyXzJDX04gREVGQVVMVAotICAgIFJFU0lTVEFOQ0UgMy4zNTAwMDAwMDAwIDsKLSAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIC0wLjA2NSAtMC4wMzUgIDAuMDY1ICAwLjE3NSA7Ci0gICAgTEFZRVIgVmlhMSA7Ci0gICAgICAgIFJFQ1QgLTAuMDM1IC0wLjAzNSAgMC4wMzUgIDAuMDM1IDsKLSAgICAgICAgUkVDVCAtMC4wMzUgMC4xMDUgIDAuMDM1ICAwLjE3NSA7Ci0gICAgTEFZRVIgTWV0YWwyIDsKLSAgICAgICAgUkVDVCAtMC4wMzUgLTAuMDY1ICAwLjAzNSAgMC4yMDUgOwotRU5EIFZJQTEyXzJDX04KLQotVklBIFZJQTEyXzJDX1MgREVGQVVMVAotICAgIFJFU0lTVEFOQ0UgMy4zNTAwMDAwMDAwIDsKLSAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIC0wLjA2NSAtMC4xNzUgIDAuMDY1ICAwLjAzNSA7Ci0gICAgTEFZRVIgVmlhMSA7Ci0gICAgICAgIFJFQ1QgLTAuMDM1IC0wLjAzNSAgMC4wMzUgIDAuMDM1IDsKLSAgICAgICAgUkVDVCAtMC4wMzUgLTAuMTc1ICAwLjAzNSAgLTAuMTA1IDsKLSAgICBMQVlFUiBNZXRhbDIgOwotICAgICAgICBSRUNUIC0wLjAzNSAtMC4yMDUgIDAuMDM1ICAwLjA2NSA7Ci1FTkQgVklBMTJfMkNfUwotCi0jVklBIFZJQTEyXzJDX0hOIERFRkFVTFQKLSMgICAgUkVTSVNUQU5DRSAzLjM1MDAwMDAwMDAgOwotIyAgICBMQVlFUiBNZXRhbDEgOwotIyAgICAgICAgUkVDVCAtMC4wMzUgLTAuMDY1ICAwLjAzNSAgMC4yMzUgOwotIyAgICBMQVlFUiBWaWExIDsKLSMgICAgICAgIFJFQ1QgLTAuMDM1IC0wLjAzNSAgMC4wMzUgIDAuMDM1IDsKLSMgICAgICAgIFJFQ1QgLTAuMDM1IDAuMTM1ICAwLjAzNSAgMC4yMDUgOwotIyAgICBMQVlFUiBNZXRhbDIgOwotIyAgICAgICAgUkVDVCAtMC4wMzUgLTAuMDY1ICAwLjAzNSAgMC4yMzUgOwotI0VORCBWSUExMl8yQ19ITgotIyBNb2RpZmllZCBmb3IgYmV0dGVyIGRDIGNvdmVyYWdlCi1WSUEgVklBMTJfMkNfSE4gREVGQVVMVAotICAgIFJFU0lTVEFOQ0UgMy4zNTAwMDAwMDAwIDsKLSAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIC0wLjAzNSAtMC4wNjUgIDAuMDM1ICAwLjIwNSA7Ci0gICAgTEFZRVIgVmlhMSA7Ci0gICAgICAgIFJFQ1QgLTAuMDM1IC0wLjAzNSAgMC4wMzUgIDAuMDM1IDsKLSAgICAgICAgUkVDVCAtMC4wMzUgMC4xMDUgIDAuMDM1ICAwLjE3NSA7Ci0gICAgTEFZRVIgTWV0YWwyIDsKLSAgICAgICAgUkVDVCAtMC4wMzUgLTAuMDY1ICAwLjAzNSAgMC4yMDUgOwotRU5EIFZJQTEyXzJDX0hOCi0KLSAKLSNWSUEgVklBMTJfMkNfSFMgREVGQVVMVAotIyAgICBSRVNJU1RBTkNFIDMuMzUwMDAwMDAwMCA7Ci0jICAgIExBWUVSIE1ldGFsMSA7Ci0jICAgICAgICBSRUNUIC0wLjAzNSAtMC4yMzUgIDAuMDM1ICAwLjA2NSA7Ci0jICAgIExBWUVSIFZpYTEgOwotIyAgICAgICAgUkVDVCAtMC4wMzUgLTAuMDM1ICAwLjAzNSAgMC4wMzUgOwotIyAgICAgICAgUkVDVCAtMC4wMzUgLTAuMjA1ICAwLjAzNSAgLTAuMTM1IDsKLSMgICAgTEFZRVIgTWV0YWwyIDsKLSMgICAgICAgIFJFQ1QgLTAuMDM1IC0wLjIzNSAgMC4wMzUgIDAuMDY1IDsKLSNFTkQgVklBMTJfMkNfSFMKLSMgTW9kaWZpZWQgZm9yIGJldHRlciBkQyBjb3ZlcmFnZQotVklBIFZJQTEyXzJDX0hTIERFRkFVTFQKLSAgICBSRVNJU1RBTkNFIDMuMzUwMDAwMDAwMCA7Ci0gICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAtMC4wMzUgLTAuMjA1ICAwLjAzNSAgMC4wNjUgOwotICAgIExBWUVSIFZpYTEgOwotICAgICAgICBSRUNUIC0wLjAzNSAtMC4wMzUgIDAuMDM1ICAwLjAzNSA7Ci0gICAgICAgIFJFQ1QgLTAuMDM1IC0wLjE3NSAgMC4wMzUgIC0wLjEwNSA7Ci0gICAgTEFZRVIgTWV0YWwyIDsKLSAgICAgICAgUkVDVCAtMC4wMzUgLTAuMjA1ICAwLjAzNSAgMC4wNjUgOwotRU5EIFZJQTEyXzJDX0hTCi0KLSMgQWRkZWQgZm9yIGhpZ2hlciBkQyBjb3ZlcmFnZQotVklBIFZJQTEyXzJDX0VTIERFRkFVTFQKLSAgICBSRVNJU1RBTkNFIDMuMzUwMDAwMDAwMCA7Ci0gICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAtMC4wNjUgLTAuMDM1ICAwLjIwNSAgMC4wMzUgOwotICAgIExBWUVSIFZpYTEgOwotICAgICAgICBSRUNUIC0wLjAzNSAtMC4wMzUgIDAuMDM1ICAwLjAzNSA7Ci0gICAgICAgIFJFQ1QgMC4xMDUgLTAuMDM1ICAwLjE3NSAgMC4wMzUgOwotICAgIExBWUVSIE1ldGFsMiA7Ci0gICAgICAgIFJFQ1QgLTAuMDY1IC0wLjAzNSAgMC4yMDUgIDAuMDM1IDsKLUVORCBWSUExMl8yQ19FUwotCi0jIEFkZGVkIGZvciBoaWdoZXIgZEMgY292ZXJhZ2UKLVZJQSBWSUExMl8yQ19XUyBERUZBVUxUCi0gICAgUkVTSVNUQU5DRSAzLjM1MDAwMDAwMDAgOwotICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgLTAuMjA1IC0wLjAzNSAgMC4wNjUgIDAuMDM1IDsKLSAgICBMQVlFUiBWaWExIDsKLSAgICAgICAgUkVDVCAtMC4wMzUgLTAuMDM1ICAwLjAzNSAgMC4wMzUgOwotICAgICAgICBSRUNUIC0wLjE3NSAtMC4wMzUgIC0wLjEwNSAgMC4wMzUgOwotICAgIExBWUVSIE1ldGFsMiA7Ci0gICAgICAgIFJFQ1QgLTAuMjA1IC0wLjAzNSAgMC4wNjUgIDAuMDM1IDsKLUVORCBWSUExMl8yQ19XUwotCi0KLSNWSUEgVklBMTJfMkNfRkFUX0UgREVGQVVMVAotIyAgICBSRVNJU1RBTkNFIDMuMzUwMDAwMDAwMCA7Ci0jICAgIExBWUVSIE1ldGFsMSA7Ci0jICAgICAgICBSRUNUIC0wLjA4NSAtMC4wMzUgIDAuMjI1ICAwLjAzNSA7Ci0jICAgIExBWUVSIFZpYTEgOwotIyAgICAgICAgUkVDVCAtMC4wMzUgLTAuMDM1ICAwLjAzNSAgMC4wMzUgOwotIyAgICAgICAgUkVDVCAwLjEwNSAtMC4wMzUgIDAuMTc1ICAwLjAzNSA7Ci0jICAgIExBWUVSIE1ldGFsMiA7Ci0jICAgICAgICBSRUNUIC0wLjAzNSAtMC4wODUgIDAuMTc1ICAwLjA4NSA7Ci0jRU5EIFZJQTEyXzJDX0ZBVF9FCi0jCi0jVklBIFZJQTEyXzJDX0ZBVF9XIERFRkFVTFQKLSMgICAgUkVTSVNUQU5DRSAzLjM1MDAwMDAwMDAgOwotIyAgICBMQVlFUiBNZXRhbDEgOwotIyAgICAgICAgUkVDVCAtMC4yMjUgLTAuMDM1ICAwLjA4NSAgMC4wMzUgOwotIyAgICBMQVlFUiBWaWExIDsKLSMgICAgICAgIFJFQ1QgLTAuMDM1IC0wLjAzNSAgMC4wMzUgIDAuMDM1IDsKLSMgICAgICAgIFJFQ1QgLTAuMTc1IC0wLjAzNSAgLTAuMTA1ICAwLjAzNSA7Ci0jICAgIExBWUVSIE1ldGFsMiA7Ci0jICAgICAgICBSRUNUIC0wLjE3NSAtMC4wODUgIDAuMDM1ICAwLjA4NSA7Ci0jRU5EIFZJQTEyXzJDX0ZBVF9XCi0jCi0jVklBIFZJQTEyXzJDX0ZBVF9OIERFRkFVTFQKLSMgICAgUkVTSVNUQU5DRSAzLjM1MDAwMDAwMDAgOwotIyAgICBMQVlFUiBNZXRhbDEgOwotIyAgICAgICAgUkVDVCAtMC4wODUgLTAuMDM1ICAwLjA4NSAgMC4xNzUgOwotIyAgICBMQVlFUiBWaWExIDsKLSMgICAgICAgIFJFQ1QgLTAuMDM1IC0wLjAzNSAgMC4wMzUgIDAuMDM1IDsKLSMgICAgICAgIFJFQ1QgLTAuMDM1IDAuMTA1ICAwLjAzNSAgMC4xNzUgOwotIyAgICBMQVlFUiBNZXRhbDIgOwotIyAgICAgICAgUkVDVCAtMC4wMzUgLTAuMDg1ICAwLjAzNSAgMC4yMjUgOwotI0VORCBWSUExMl8yQ19GQVRfTgotIwotI1ZJQSBWSUExMl8yQ19GQVRfUyBERUZBVUxUCi0jICAgIFJFU0lTVEFOQ0UgMy4zNTAwMDAwMDAwIDsKLSMgICAgTEFZRVIgTWV0YWwxIDsKLSMgICAgICAgIFJFQ1QgLTAuMDg1IC0wLjE3NSAgMC4wODUgIDAuMDM1IDsKLSMgICAgTEFZRVIgVmlhMSA7Ci0jICAgICAgICBSRUNUIC0wLjAzNSAtMC4wMzUgIDAuMDM1ICAwLjAzNSA7Ci0jICAgICAgICBSRUNUIC0wLjAzNSAtMC4xNzUgIDAuMDM1ICAtMC4xMDUgOwotIyAgICBMQVlFUiBNZXRhbDIgOwotIyAgICAgICAgUkVDVCAtMC4wMzUgLTAuMjI1ICAwLjAzNSAgMC4wODUgOwotI0VORCBWSUExMl8yQ19GQVRfUwotIwotI1ZJQSBWSUExMl8yQ19GQVRfSE4gREVGQVVMVAotIyAgICBSRVNJU1RBTkNFIDMuMzUwMDAwMDAwMCA7Ci0jICAgIExBWUVSIE1ldGFsMSA7Ci0jICAgICAgICBSRUNUIC0wLjAzNSAtMC4wODUgIDAuMDM1ICAwLjI1NSA7Ci0jICAgIExBWUVSIFZpYTEgOwotIyAgICAgICAgUkVDVCAtMC4wMzUgLTAuMDM1ICAwLjAzNSAgMC4wMzUgOwotIyAgICAgICAgUkVDVCAtMC4wMzUgMC4xMzUgIDAuMDM1ICAwLjIwNSA7Ci0jICAgIExBWUVSIE1ldGFsMiA7Ci0jICAgICAgICBSRUNUIC0wLjAzNSAtMC4wODUgIDAuMDM1ICAwLjI1NSA7Ci0jRU5EIFZJQTEyXzJDX0ZBVF9ITgotIyAKLSNWSUEgVklBMTJfMkNfRkFUX0hTIERFRkFVTFQKLSMgICAgUkVTSVNUQU5DRSAzLjM1MDAwMDAwMDAgOwotIyAgICBMQVlFUiBNZXRhbDEgOwotIyAgICAgICAgUkVDVCAtMC4wMzUgLTAuMjU1ICAwLjAzNSAgMC4wODUgOwotIyAgICBMQVlFUiBWaWExIDsKLSMgICAgICAgIFJFQ1QgLTAuMDM1IC0wLjAzNSAgMC4wMzUgIDAuMDM1IDsKLSMgICAgICAgIFJFQ1QgLTAuMDM1IC0wLjIwNSAgMC4wMzUgIC0wLjEzNSA7Ci0jICAgIExBWUVSIE1ldGFsMiA7Ci0jICAgICAgICBSRUNUIC0wLjAzNSAtMC4yNTUgIDAuMDM1ICAwLjA4NSA7Ci0jRU5EIFZJQTEyXzJDX0ZBVF9IUwotCi1WSUEgVklBMTJfNEMgREVGQVVMVAotICAgIFJFU0lTVEFOQ0UgMS42NzUwMDAwMDAwIDsKLSAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIC0wLjEzNSAtMC4xMDUgIDAuMTM1ICAwLjEwNSA7Ci0gICAgTEFZRVIgVmlhMSA7Ci0gICAgICAgIFJFQ1QgLTAuMTA1IC0wLjEwNSAgLTAuMDM1ICAtMC4wMzUgOwotICAgICAgICBSRUNUIC0wLjEwNSAwLjAzNSAgLTAuMDM1ICAwLjEwNSA7Ci0gICAgICAgIFJFQ1QgMC4wMzUgMC4wMzUgIDAuMTA1ICAwLjEwNSA7Ci0gICAgICAgIFJFQ1QgMC4wMzUgLTAuMTA1ICAwLjEwNSAgLTAuMDM1IDsKLSAgICBMQVlFUiBNZXRhbDIgOwotICAgICAgICBSRUNUIC0wLjEwNSAtMC4xMzUgIDAuMTA1ICAwLjEzNSA7Ci1FTkQgVklBMTJfNEMKLQotIyMjIyMjIyMjIyMjIyMKLSMjIyBWSUEgMjMgIyMjCi0jIyMjIyMjIyMjIyMjIwotCi1WSUEgVklBMjNfMUMgREVGQVVMVAotICAgIFJFU0lTVEFOQ0UgNi43MDAwMDAwMDAwIDsKLSAgICBMQVlFUiBNZXRhbDIgOwotICAgICAgICBSRUNUIC0wLjAzNSAtMC4wNjUgIDAuMDM1ICAwLjA2NSA7Ci0gICAgTEFZRVIgVmlhMiA7Ci0gICAgICAgIFJFQ1QgLTAuMDM1IC0wLjAzNSAgMC4wMzUgIDAuMDM1IDsKLSAgICBMQVlFUiBNZXRhbDMgOwotICAgICAgICBSRUNUIC0wLjA2NSAtMC4wMzUgIDAuMDY1ICAwLjAzNSA7Ci1FTkQgVklBMjNfMUMKLQotVklBIFZJQTIzXzFDX1YgREVGQVVMVAotICAgIFJFU0lTVEFOQ0UgNi43MDAwMDAwMDAwIDsKLSAgICBMQVlFUiBNZXRhbDIgOwotICAgICAgICBSRUNUIC0wLjAzNSAtMC4wNjUgIDAuMDM1ICAwLjA2NSA7Ci0gICAgTEFZRVIgVmlhMiA7Ci0gICAgICAgIFJFQ1QgLTAuMDM1IC0wLjAzNSAgMC4wMzUgIDAuMDM1IDsKLSAgICBMQVlFUiBNZXRhbDMgOwotICAgICAgICBSRUNUIC0wLjAzNSAtMC4wNjUgIDAuMDM1ICAwLjA2NSA7Ci1FTkQgVklBMjNfMUNfVgotCi1WSUEgVklBMjNfMUNfSCBERUZBVUxUCi0gICAgUkVTSVNUQU5DRSA2LjcwMDAwMDAwMDAgOwotICAgIExBWUVSIE1ldGFsMiA7Ci0gICAgICAgIFJFQ1QgLTAuMDY1IC0wLjAzNSAgMC4wNjUgIDAuMDM1IDsKLSAgICBMQVlFUiBWaWEyIDsKLSAgICAgICAgUkVDVCAtMC4wMzUgLTAuMDM1ICAwLjAzNSAgMC4wMzUgOwotICAgIExBWUVSIE1ldGFsMyA7Ci0gICAgICAgIFJFQ1QgLTAuMDY1IC0wLjAzNSAgMC4wNjUgIDAuMDM1IDsKLUVORCBWSUEyM18xQ19ICi0KLSNWSUEgVklBMjNfMUNfRkFUX0MgREVGQVVMVAotIyAgICBSRVNJU1RBTkNFIDYuNzAwMDAwMDAwMCA7Ci0jICAgIExBWUVSIE1ldGFsMiA7Ci0jICAgICAgICBSRUNUIC0wLjAzNSAtMC4wODUgIDAuMDM1ICAwLjA4NSA7Ci0jICAgIExBWUVSIFZpYTIgOwotIyAgICAgICAgUkVDVCAtMC4wMzUgLTAuMDM1ICAwLjAzNSAgMC4wMzUgOwotIyAgICBMQVlFUiBNZXRhbDMgOwotIyAgICAgICAgUkVDVCAtMC4wODUgLTAuMDM1ICAwLjA4NSAgMC4wMzUgOwotI0VORCBWSUEyM18xQ19GQVRfQwotIyAgICAgICAgICAgICAKLSNWSUEgVklBMjNfMUNfRkFUX1YgREVGQVVMVAotIyAgICBSRVNJU1RBTkNFIDYuNzAwMDAwMDAwMCA7Ci0jICAgIExBWUVSIE1ldGFsMiA7Ci0jICAgICAgICBSRUNUIC0wLjAzNSAtMC4wODUgIDAuMDM1ICAwLjA4NSA7Ci0jICAgIExBWUVSIFZpYTIgOwotIyAgICAgICAgUkVDVCAtMC4wMzUgLTAuMDM1ICAwLjAzNSAgMC4wMzUgOwotIyAgICBMQVlFUiBNZXRhbDMgOwotIyAgICAgICAgUkVDVCAtMC4wMzUgLTAuMDg1ICAwLjAzNSAgMC4wODUgOwotI0VORCBWSUEyM18xQ19GQVRfVgotIwotI1ZJQSBWSUEyM18xQ19GQVRfSCBERUZBVUxUCi0jICAgIFJFU0lTVEFOQ0UgNi43MDAwMDAwMDAwIDsKLSMgICAgTEFZRVIgTWV0YWwyIDsKLSMgICAgICAgIFJFQ1QgLTAuMDg1IC0wLjAzNSAgMC4wODUgIDAuMDM1IDsKLSMgICAgTEFZRVIgVmlhMiA7Ci0jICAgICAgICBSRUNUIC0wLjAzNSAtMC4wMzUgIDAuMDM1ICAwLjAzNSA7Ci0jICAgIExBWUVSIE1ldGFsMyA7Ci0jICAgICAgICBSRUNUIC0wLjA4NSAtMC4wMzUgIDAuMDg1ICAwLjAzNSA7Ci0jRU5EIFZJQTIzXzFDX0ZBVF9ICi0jCi0jCi0jVklBIFZJQTIzXzFDX0ZBVCBERUZBVUxUCi0jICAgIFJFU0lTVEFOQ0UgNi43MDAwMDAwMDAwIDsKLSMgICAgTEFZRVIgTWV0YWwyIDsKLSMgICAgICAgIFJFQ1QgLTAuMDY1IC0wLjA2NSAgMC4wNjUgIDAuMDY1IDsKLSMgICAgTEFZRVIgVmlhMiA7Ci0jICAgICAgICBSRUNUIC0wLjAzNSAtMC4wMzUgIDAuMDM1ICAwLjAzNSA7Ci0jICAgIExBWUVSIE1ldGFsMyA7Ci0jICAgICAgICBSRUNUIC0wLjA2NSAtMC4wNjUgIDAuMDY1ICAwLjA2NSA7Ci0jRU5EIFZJQTIzXzFDX0ZBVAotICAgICAgICAgICAgICAgICAKLVZJQSBWSUEyM18xU1RfTiBERUZBVUxUCi0gICAgUkVTSVNUQU5DRSA2LjcwMDAwMDAwMDAgOwotICAgIExBWUVSIE1ldGFsMiA7Ci0gICAgICAgIFJFQ1QgLTAuMDM1IC0wLjA2NSAgMC4wMzUgIDAuMzI1IDsKLSAgICBMQVlFUiBWaWEyIDsKLSAgICAgICAgUkVDVCAtMC4wMzUgLTAuMDM1ICAwLjAzNSAgMC4wMzUgOwotICAgIExBWUVSIE1ldGFsMyA7Ci0gICAgICAgIFJFQ1QgLTAuMDY1IC0wLjAzNSAgMC4wNjUgIDAuMDM1IDsKLUVORCBWSUEyM18xU1RfTgotCi1WSUEgVklBMjNfMVNUX1MgREVGQVVMVAotICAgIFJFU0lTVEFOQ0UgNi43MDAwMDAwMDAwIDsKLSAgICBMQVlFUiBNZXRhbDIgOwotICAgICAgICBSRUNUIC0wLjAzNSAtMC4zMjUgIDAuMDM1ICAwLjA2NSA7Ci0gICAgTEFZRVIgVmlhMiA7Ci0gICAgICAgIFJFQ1QgLTAuMDM1IC0wLjAzNSAgMC4wMzUgIDAuMDM1IDsKLSAgICBMQVlFUiBNZXRhbDMgOwotICAgICAgICBSRUNUIC0wLjA2NSAtMC4wMzUgIDAuMDY1ICAwLjAzNSA7Ci1FTkQgVklBMjNfMVNUX1MKLQotVklBIFZJQTIzXzJDX0UgREVGQVVMVAotICAgIFJFU0lTVEFOQ0UgMy4zNTAwMDAwMDAwIDsKLSAgICBMQVlFUiBNZXRhbDIgOwotICAgICAgICBSRUNUIC0wLjAzNSAtMC4wNjUgIDAuMTc1ICAwLjA2NSA7Ci0gICAgTEFZRVIgVmlhMiA7Ci0gICAgICAgIFJFQ1QgLTAuMDM1IC0wLjAzNSAgMC4wMzUgIDAuMDM1IDsKLSAgICAgICAgUkVDVCAwLjEwNSAtMC4wMzUgIDAuMTc1ICAwLjAzNSA7Ci0gICAgTEFZRVIgTWV0YWwzIDsKLSAgICAgICAgUkVDVCAtMC4wNjUgLTAuMDM1ICAwLjIwNSAgMC4wMzUgOwotRU5EIFZJQTIzXzJDX0UKLSAKLVZJQSBWSUEyM18yQ19XIERFRkFVTFQKLSAgICBSRVNJU1RBTkNFIDMuMzUwMDAwMDAwMCA7Ci0gICAgTEFZRVIgTWV0YWwyIDsKLSAgICAgICAgUkVDVCAtMC4xNzUgLTAuMDY1ICAwLjAzNSAgMC4wNjUgOwotICAgIExBWUVSIFZpYTIgOwotICAgICAgICBSRUNUIC0wLjAzNSAtMC4wMzUgIDAuMDM1ICAwLjAzNSA7Ci0gICAgICAgIFJFQ1QgLTAuMTc1IC0wLjAzNSAgLTAuMTA1ICAwLjAzNSA7Ci0gICAgTEFZRVIgTWV0YWwzIDsKLSAgICAgICAgUkVDVCAtMC4yMDUgLTAuMDM1ICAwLjA2NSAgMC4wMzUgOwotRU5EIFZJQTIzXzJDX1cKLSAKLVZJQSBWSUEyM18yQ19OIERFRkFVTFQKLSAgICBSRVNJU1RBTkNFIDMuMzUwMDAwMDAwMCA7Ci0gICAgTEFZRVIgTWV0YWwyIDsKLSAgICAgICAgUkVDVCAtMC4wMzUgLTAuMDY1ICAwLjAzNSAgMC4yMDUgOwotICAgIExBWUVSIFZpYTIgOwotICAgICAgICBSRUNUIC0wLjAzNSAtMC4wMzUgIDAuMDM1ICAwLjAzNSA7Ci0gICAgICAgIFJFQ1QgLTAuMDM1IDAuMTA1ICAwLjAzNSAgMC4xNzUgOwotICAgIExBWUVSIE1ldGFsMyA7Ci0gICAgICAgIFJFQ1QgLTAuMDY1IC0wLjAzNSAgMC4wNjUgIDAuMTc1IDsKLUVORCBWSUEyM18yQ19OCi0gCi1WSUEgVklBMjNfMkNfUyBERUZBVUxUCi0gICAgUkVTSVNUQU5DRSAzLjM1MDAwMDAwMDAgOwotICAgIExBWUVSIE1ldGFsMiA7Ci0gICAgICAgIFJFQ1QgLTAuMDM1IC0wLjIwNSAgMC4wMzUgIDAuMDY1IDsKLSAgICBMQVlFUiBWaWEyIDsKLSAgICAgICAgUkVDVCAtMC4wMzUgLTAuMDM1ICAwLjAzNSAgMC4wMzUgOwotICAgICAgICBSRUNUIC0wLjAzNSAtMC4xNzUgIDAuMDM1ICAtMC4xMDUgOwotICAgIExBWUVSIE1ldGFsMyA7Ci0gICAgICAgIFJFQ1QgLTAuMDY1IC0wLjE3NSAgMC4wNjUgIDAuMDM1IDsKLUVORCBWSUEyM18yQ19TCi0KLSNWSUEgVklBMjNfMkNfRkFUX0UgREVGQVVMVAotIyAgICBSRVNJU1RBTkNFIDMuMzUwMDAwMDAwMCA7Ci0jICAgIExBWUVSIE1ldGFsMiA7Ci0jICAgICAgICBSRUNUIC0wLjAzNSAtMC4wODUgIDAuMTc1ICAwLjA4NSA7Ci0jICAgIExBWUVSIFZpYTIgOwotIyAgICAgICAgUkVDVCAtMC4wMzUgLTAuMDM1ICAwLjAzNSAgMC4wMzUgOwotIyAgICAgICAgUkVDVCAwLjEwNSAtMC4wMzUgIDAuMTc1ICAwLjAzNSA7Ci0jICAgIExBWUVSIE1ldGFsMyA7Ci0jICAgICAgICBSRUNUIC0wLjA4NSAtMC4wMzUgIDAuMjI1ICAwLjAzNSA7Ci0jRU5EIFZJQTIzXzJDX0ZBVF9FCi0jIAotI1ZJQSBWSUEyM18yQ19GQVRfVyBERUZBVUxUCi0jICAgIFJFU0lTVEFOQ0UgMy4zNTAwMDAwMDAwIDsKLSMgICAgTEFZRVIgTWV0YWwyIDsKLSMgICAgICAgIFJFQ1QgLTAuMTc1IC0wLjA4NSAgMC4wMzUgIDAuMDg1IDsKLSMgICAgTEFZRVIgVmlhMiA7Ci0jICAgICAgICBSRUNUIC0wLjAzNSAtMC4wMzUgIDAuMDM1ICAwLjAzNSA7Ci0jICAgICAgICBSRUNUIC0wLjE3NSAtMC4wMzUgIC0wLjEwNSAgMC4wMzUgOwotIyAgICBMQVlFUiBNZXRhbDMgOwotIyAgICAgICAgUkVDVCAtMC4yMjUgLTAuMDM1ICAwLjA4NSAgMC4wMzUgOwotI0VORCBWSUEyM18yQ19GQVRfVwotIyAKLSNWSUEgVklBMjNfMkNfRkFUX04gREVGQVVMVAotIyAgICBSRVNJU1RBTkNFIDMuMzUwMDAwMDAwMCA7Ci0jICAgIExBWUVSIE1ldGFsMiA7Ci0jICAgICAgICBSRUNUIC0wLjAzNSAtMC4wODUgIDAuMDM1ICAwLjIyNSA7Ci0jICAgIExBWUVSIFZpYTIgOwotIyAgICAgICAgUkVDVCAtMC4wMzUgLTAuMDM1ICAwLjAzNSAgMC4wMzUgOwotIyAgICAgICAgUkVDVCAtMC4wMzUgMC4xMDUgIDAuMDM1ICAwLjE3NSA7Ci0jICAgIExBWUVSIE1ldGFsMyA7Ci0jICAgICAgICBSRUNUIC0wLjA4NSAtMC4wMzUgIDAuMDg1ICAwLjE3NSA7Ci0jRU5EIFZJQTIzXzJDX0ZBVF9OCi0jIAotI1ZJQSBWSUEyM18yQ19GQVRfUyBERUZBVUxUCi0jICAgIFJFU0lTVEFOQ0UgMy4zNTAwMDAwMDAwIDsKLSMgICAgTEFZRVIgTWV0YWwyIDsKLSMgICAgICAgIFJFQ1QgLTAuMDM1IC0wLjIyNSAgMC4wMzUgIDAuMDg1IDsKLSMgICAgTEFZRVIgVmlhMiA7Ci0jICAgICAgICBSRUNUIC0wLjAzNSAtMC4wMzUgIDAuMDM1ICAwLjAzNSA7Ci0jICAgICAgICBSRUNUIC0wLjAzNSAtMC4xNzUgIDAuMDM1ICAtMC4xMDUgOwotIyAgICBMQVlFUiBNZXRhbDMgOwotIyAgICAgICAgUkVDVCAtMC4wODUgLTAuMTc1ICAwLjA4NSAgMC4wMzUgOwotI0VORCBWSUEyM18yQ19GQVRfUwotIwotIyMgS0QgY29weSA0IEZBVCB2aWFzIGFuZCBhZGQgNCBGVUxMX0ZBVAotI1ZJQSBWSUEyM18yQ19GVUxMX0ZBVF9FIERFRkFVTFQKLSMgICAgUkVTSVNUQU5DRSAzLjM1MDAwMDAwMDAgOwotIyAgICBMQVlFUiBNZXRhbDIgOwotIyAgICAgICAgUkVDVCAtMC4wODUgLTAuMDg1ICAwLjIyNSAgMC4wODUgOwotIyAgICBMQVlFUiBWaWEyIDsKLSMgICAgICAgIFJFQ1QgLTAuMDM1IC0wLjAzNSAgMC4wMzUgIDAuMDM1IDsKLSMgICAgICAgIFJFQ1QgMC4xMDUgLTAuMDM1ICAwLjE3NSAgMC4wMzUgOwotIyAgICBMQVlFUiBNZXRhbDMgOwotIyAgICAgICAgUkVDVCAtMC4wODUgLTAuMDg1ICAwLjIyNSAgMC4wODUgOwotI0VORCBWSUEyM18yQ19GVUxMX0ZBVF9FCi0jIAotI1ZJQSBWSUEyM18yQ19GVUxMX0ZBVF9XIERFRkFVTFQKLSMgICAgUkVTSVNUQU5DRSAzLjM1MDAwMDAwMDAgOwotIyAgICBMQVlFUiBNZXRhbDIgOwotIyAgICAgICAgUkVDVCAtMC4yMjUgLTAuMDg1ICAwLjA4NSAgMC4wODUgOwotIyAgICBMQVlFUiBWaWEyIDsKLSMgICAgICAgIFJFQ1QgLTAuMDM1IC0wLjAzNSAgMC4wMzUgIDAuMDM1IDsKLSMgICAgICAgIFJFQ1QgLTAuMTc1IC0wLjAzNSAgLTAuMTA1ICAwLjAzNSA7Ci0jICAgIExBWUVSIE1ldGFsMyA7Ci0jICAgICAgICBSRUNUIC0wLjIyNSAtMC4wODUgIDAuMDg1ICAwLjA4NSA7Ci0jRU5EIFZJQTIzXzJDX0ZVTExfRkFUX1cKLSMgCi0jVklBIFZJQTIzXzJDX0ZVTExfRkFUX04gREVGQVVMVAotIyAgICBSRVNJU1RBTkNFIDMuMzUwMDAwMDAwMCA7Ci0jICAgIExBWUVSIE1ldGFsMiA7Ci0jICAgICAgICBSRUNUIC0wLjA4NSAtMC4wODUgIDAuMDg1ICAwLjIyNSA7Ci0jICAgIExBWUVSIFZpYTIgOwotIyAgICAgICAgUkVDVCAtMC4wMzUgLTAuMDM1ICAwLjAzNSAgMC4wMzUgOwotIyAgICAgICAgUkVDVCAtMC4wMzUgMC4xMDUgIDAuMDM1ICAwLjE3NSA7Ci0jICAgIExBWUVSIE1ldGFsMyA7Ci0jICAgICAgICBSRUNUIC0wLjA4NSAtMC4wODUgIDAuMDg1ICAwLjIyNSA7Ci0jRU5EIFZJQTIzXzJDX0ZVTExfRkFUX04KLSMgCi0jVklBIFZJQTIzXzJDX0ZVTExfRkFUX1MgREVGQVVMVAotIyAgICBSRVNJU1RBTkNFIDMuMzUwMDAwMDAwMCA7Ci0jICAgIExBWUVSIE1ldGFsMiA7Ci0jICAgICAgICBSRUNUIC0wLjA4NSAtMC4yMjUgIDAuMDg1ICAwLjA4NSA7Ci0jICAgIExBWUVSIFZpYTIgOwotIyAgICAgICAgUkVDVCAtMC4wMzUgLTAuMDM1ICAwLjAzNSAgMC4wMzUgOwotIyAgICAgICAgUkVDVCAtMC4wMzUgLTAuMTc1ICAwLjAzNSAgLTAuMTA1IDsKLSMgICAgTEFZRVIgTWV0YWwzIDsKLSMgICAgICAgIFJFQ1QgLTAuMDg1IC0wLjIyNSAgMC4wODUgIDAuMDg1IDsKLSNFTkQgVklBMjNfMkNfRlVMTF9GQVRfUwotCi1WSUEgVklBMjNfNEMgREVGQVVMVAotICAgIFJFU0lTVEFOQ0UgMS42NzUwMDAwMDAwIDsKLSAgICBMQVlFUiBNZXRhbDIgOwotICAgICAgICBSRUNUIC0wLjEwNSAtMC4xMzUgIDAuMTA1ICAwLjEzNSA7Ci0gICAgTEFZRVIgVmlhMiA7Ci0gICAgICAgIFJFQ1QgLTAuMTA1IC0wLjEwNSAgLTAuMDM1ICAtMC4wMzUgOwotICAgICAgICBSRUNUIC0wLjEwNSAwLjAzNSAgLTAuMDM1ICAwLjEwNSA7Ci0gICAgICAgIFJFQ1QgMC4wMzUgMC4wMzUgIDAuMTA1ICAwLjEwNSA7Ci0gICAgICAgIFJFQ1QgMC4wMzUgLTAuMTA1ICAwLjEwNSAgLTAuMDM1IDsKLSAgICBMQVlFUiBNZXRhbDMgOwotICAgICAgICBSRUNUIC0wLjEzNSAtMC4xMDUgIDAuMTM1ICAwLjEwNSA7Ci1FTkQgVklBMjNfNEMKLQotIyMjIyMjIyMjIyMjIyMjIwotIyMjIFZJQSAzNCAjIyMjIwotIyMjIyMjIyMjIyMjIyMjIwotVklBIFZJQTM0XzFDIERFRkFVTFQKLSAgICBSRVNJU1RBTkNFIDYuNzAwMDAwMDAwMCA7Ci0gICAgTEFZRVIgTWV0YWwzIDsKLSAgICAgICAgUkVDVCAtMC4wNjUgLTAuMDM1ICAwLjA2NSAgMC4wMzUgOwotICAgIExBWUVSIFZpYTMgOwotICAgICAgICBSRUNUIC0wLjAzNSAtMC4wMzUgIDAuMDM1ICAwLjAzNSA7Ci0gICAgTEFZRVIgTWV0YWw0IDsKLSAgICAgICAgUkVDVCAtMC4wMzUgLTAuMDY1ICAwLjAzNSAgMC4wNjUgOwotRU5EIFZJQTM0XzFDCi0KLVZJQSBWSUEzNF8xQ19IIERFRkFVTFQKLSAgICBSRVNJU1RBTkNFIDYuNzAwMDAwMDAwMCA7Ci0gICAgTEFZRVIgTWV0YWwzIDsKLSAgICAgICAgUkVDVCAtMC4wNjUgLTAuMDM1ICAwLjA2NSAgMC4wMzUgOwotICAgIExBWUVSIFZpYTMgOwotICAgICAgICBSRUNUIC0wLjAzNSAtMC4wMzUgIDAuMDM1ICAwLjAzNSA7Ci0gICAgTEFZRVIgTWV0YWw0IDsKLSAgICAgICAgUkVDVCAtMC4wNjUgLTAuMDM1ICAwLjA2NSAgMC4wMzUgOwotRU5EIFZJQTM0XzFDX0gKLSAgICAgICAgICAgICAgICAgCi1WSUEgVklBMzRfMUNfViBERUZBVUxUCi0gICAgUkVTSVNUQU5DRSA2LjcwMDAwMDAwMDAgOwotICAgIExBWUVSIE1ldGFsMyA7Ci0gICAgICAgIFJFQ1QgLTAuMDM1IC0wLjA2NSAgMC4wMzUgIDAuMDY1IDsKLSAgICBMQVlFUiBWaWEzIDsKLSAgICAgICAgUkVDVCAtMC4wMzUgLTAuMDM1ICAwLjAzNSAgMC4wMzUgOwotICAgIExBWUVSIE1ldGFsNCA7Ci0gICAgICAgIFJFQ1QgLTAuMDM1IC0wLjA2NSAgMC4wMzUgIDAuMDY1IDsKLUVORCBWSUEzNF8xQ19WCi0KLSNWSUEgVklBMzRfMUNfRkFUX0MgREVGQVVMVAotIyAgICBSRVNJU1RBTkNFIDYuNzAwMDAwMDAwMCA7Ci0jICAgIExBWUVSIE1ldGFsMyA7Ci0jICAgICAgICBSRUNUIC0wLjA4NSAtMC4wMzUgIDAuMDg1ICAwLjAzNSA7Ci0jICAgIExBWUVSIFZpYTMgOwotIyAgICAgICAgUkVDVCAtMC4wMzUgLTAuMDM1ICAwLjAzNSAgMC4wMzUgOwotIyAgICBMQVlFUiBNZXRhbDQgOwotIyAgICAgICAgUkVDVCAtMC4wMzUgLTAuMDg1ICAwLjAzNSAgMC4wODUgOwotI0VORCBWSUEzNF8xQ19GQVRfQwotIyAgICAgICAgICAgICAKLSNWSUEgVklBMzRfMUNfRkFUX0ggREVGQVVMVAotIyAgICBSRVNJU1RBTkNFIDYuNzAwMDAwMDAwMCA7Ci0jICAgIExBWUVSIE1ldGFsMyA7Ci0jICAgICAgICBSRUNUIC0wLjA4NSAtMC4wMzUgIDAuMDg1ICAwLjAzNSA7Ci0jICAgIExBWUVSIFZpYTMgOwotIyAgICAgICAgUkVDVCAtMC4wMzUgLTAuMDM1ICAwLjAzNSAgMC4wMzUgOwotIyAgICBMQVlFUiBNZXRhbDQgOwotIyAgICAgICAgUkVDVCAtMC4wODUgLTAuMDM1ICAwLjA4NSAgMC4wMzUgOwotI0VORCBWSUEzNF8xQ19GQVRfSAotIwotI1ZJQSBWSUEzNF8xQ19GQVRfViBERUZBVUxUCi0jICAgIFJFU0lTVEFOQ0UgNi43MDAwMDAwMDAwIDsKLSMgICAgTEFZRVIgTWV0YWwzIDsKLSMgICAgICAgIFJFQ1QgLTAuMDM1IC0wLjA4NSAgMC4wMzUgIDAuMDg1IDsKLSMgICAgTEFZRVIgVmlhMyA7Ci0jICAgICAgICBSRUNUIC0wLjAzNSAtMC4wMzUgIDAuMDM1ICAwLjAzNSA7Ci0jICAgIExBWUVSIE1ldGFsNCA7Ci0jICAgICAgICBSRUNUIC0wLjAzNSAtMC4wODUgIDAuMDM1ICAwLjA4NSA7Ci0jRU5EIFZJQTM0XzFDX0ZBVF9WCi0jCi0jVklBIFZJQTM0XzFDX0ZBVCBERUZBVUxUCi0jICAgIFJFU0lTVEFOQ0UgNi43MDAwMDAwMDAwIDsKLSMgICAgTEFZRVIgTWV0YWwzIDsKLSMgICAgICAgIFJFQ1QgLTAuMDY1IC0wLjA2NSAgMC4wNjUgIDAuMDY1IDsKLSMgICAgTEFZRVIgVmlhMyA7Ci0jICAgICAgICBSRUNUIC0wLjAzNSAtMC4wMzUgIDAuMDM1ICAwLjAzNSA7Ci0jICAgIExBWUVSIE1ldGFsNCA7Ci0jICAgICAgICBSRUNUIC0wLjA2NSAtMC4wNjUgIDAuMDY1ICAwLjA2NSA7Ci0jRU5EIFZJQTM0XzFDX0ZBVAotICAgICAgICAgICAgICAgICAKLVZJQSBWSUEzNF8xU1RfRSBERUZBVUxUCi0gICAgUkVTSVNUQU5DRSA2LjcwMDAwMDAwMDAgOwotICAgIExBWUVSIE1ldGFsMyA7Ci0gICAgICAgIFJFQ1QgLTAuMDY1IC0wLjAzNSAgMC4zMjUgIDAuMDM1IDsKLSAgICBMQVlFUiBWaWEzIDsKLSAgICAgICAgUkVDVCAtMC4wMzUgLTAuMDM1ICAwLjAzNSAgMC4wMzUgOwotICAgIExBWUVSIE1ldGFsNCA7Ci0gICAgICAgIFJFQ1QgLTAuMDM1IC0wLjA2NSAgMC4wMzUgIDAuMDY1IDsKLUVORCBWSUEzNF8xU1RfRQotCi1WSUEgVklBMzRfMVNUX1cgREVGQVVMVAotICAgIFJFU0lTVEFOQ0UgNi43MDAwMDAwMDAwIDsKLSAgICBMQVlFUiBNZXRhbDMgOwotICAgICAgICBSRUNUIC0wLjMyNSAtMC4wMzUgIDAuMDY1ICAwLjAzNSA7Ci0gICAgTEFZRVIgVmlhMyA7Ci0gICAgICAgIFJFQ1QgLTAuMDM1IC0wLjAzNSAgMC4wMzUgIDAuMDM1IDsKLSAgICBMQVlFUiBNZXRhbDQgOwotICAgICAgICBSRUNUIC0wLjAzNSAtMC4wNjUgIDAuMDM1ICAwLjA2NSA7Ci1FTkQgVklBMzRfMVNUX1cKLQotVklBIFZJQTM0XzJDX0UgREVGQVVMVAotICAgIFJFU0lTVEFOQ0UgMy4zNTAwMDAwMDAwIDsKLSAgICBMQVlFUiBNZXRhbDMgOwotICAgICAgICBSRUNUIC0wLjA2NSAtMC4wMzUgIDAuMjA1ICAwLjAzNSA7Ci0gICAgTEFZRVIgVmlhMyA7Ci0gICAgICAgIFJFQ1QgLTAuMDM1IC0wLjAzNSAgMC4wMzUgIDAuMDM1IDsKLSAgICAgICAgUkVDVCAwLjEwNSAtMC4wMzUgIDAuMTc1ICAwLjAzNSA7Ci0gICAgTEFZRVIgTWV0YWw0IDsKLSAgICAgICAgUkVDVCAtMC4wMzUgLTAuMDY1ICAwLjE3NSAgMC4wNjUgOwotRU5EIFZJQTM0XzJDX0UKLSAKLVZJQSBWSUEzNF8yQ19XIERFRkFVTFQKLSAgICBSRVNJU1RBTkNFIDMuMzUwMDAwMDAwMCA7Ci0gICAgTEFZRVIgTWV0YWwzIDsKLSAgICAgICAgUkVDVCAtMC4yMDUgLTAuMDM1ICAwLjA2NSAgMC4wMzUgOwotICAgIExBWUVSIFZpYTMgOwotICAgICAgICBSRUNUIC0wLjAzNSAtMC4wMzUgIDAuMDM1ICAwLjAzNSA7Ci0gICAgICAgIFJFQ1QgLTAuMTc1IC0wLjAzNSAgLTAuMTA1ICAwLjAzNSA7Ci0gICAgTEFZRVIgTWV0YWw0IDsKLSAgICAgICAgUkVDVCAtMC4xNzUgLTAuMDY1ICAwLjAzNSAgMC4wNjUgOwotRU5EIFZJQTM0XzJDX1cKLSAKLVZJQSBWSUEzNF8yQ19OIERFRkFVTFQKLSAgICBSRVNJU1RBTkNFIDMuMzUwMDAwMDAwMCA7Ci0gICAgTEFZRVIgTWV0YWwzIDsKLSAgICAgICAgUkVDVCAtMC4wNjUgLTAuMDM1ICAwLjA2NSAgMC4xNzUgOwotICAgIExBWUVSIFZpYTMgOwotICAgICAgICBSRUNUIC0wLjAzNSAtMC4wMzUgIDAuMDM1ICAwLjAzNSA7Ci0gICAgICAgIFJFQ1QgLTAuMDM1IDAuMTA1ICAwLjAzNSAgMC4xNzUgOwotICAgIExBWUVSIE1ldGFsNCA7Ci0gICAgICAgIFJFQ1QgLTAuMDM1IC0wLjA2NSAgMC4wMzUgIDAuMjA1IDsKLUVORCBWSUEzNF8yQ19OCi0gCi1WSUEgVklBMzRfMkNfUyBERUZBVUxUCi0gICAgUkVTSVNUQU5DRSAzLjM1MDAwMDAwMDAgOwotICAgIExBWUVSIE1ldGFsMyA7Ci0gICAgICAgIFJFQ1QgLTAuMDY1IC0wLjE3NSAgMC4wNjUgIDAuMDM1IDsKLSAgICBMQVlFUiBWaWEzIDsKLSAgICAgICAgUkVDVCAtMC4wMzUgLTAuMDM1ICAwLjAzNSAgMC4wMzUgOwotICAgICAgICBSRUNUIC0wLjAzNSAtMC4xNzUgIDAuMDM1ICAtMC4xMDUgOwotICAgIExBWUVSIE1ldGFsNCA7Ci0gICAgICAgIFJFQ1QgLTAuMDM1IC0wLjIwNSAgMC4wMzUgIDAuMDY1IDsKLUVORCBWSUEzNF8yQ19TCi0KLSNWSUEgVklBMzRfMkNfRkFUX0UgREVGQVVMVAotIyAgICBSRVNJU1RBTkNFIDMuMzUwMDAwMDAwMCA7Ci0jICAgIExBWUVSIE1ldGFsMyA7Ci0jICAgICAgICBSRUNUIC0wLjA4NSAtMC4wMzUgIDAuMjI1ICAwLjAzNSA7Ci0jICAgIExBWUVSIFZpYTMgOwotIyAgICAgICAgUkVDVCAtMC4wMzUgLTAuMDM1ICAwLjAzNSAgMC4wMzUgOwotIyAgICAgICAgUkVDVCAwLjEwNSAtMC4wMzUgIDAuMTc1ICAwLjAzNSA7Ci0jICAgIExBWUVSIE1ldGFsNCA7Ci0jICAgICAgICBSRUNUIC0wLjAzNSAtMC4wODUgIDAuMTc1ICAwLjA4NSA7Ci0jRU5EIFZJQTM0XzJDX0ZBVF9FCi0jIAotI1ZJQSBWSUEzNF8yQ19GQVRfVyBERUZBVUxUCi0jICAgIFJFU0lTVEFOQ0UgMy4zNTAwMDAwMDAwIDsKLSMgICAgTEFZRVIgTWV0YWwzIDsKLSMgICAgICAgIFJFQ1QgLTAuMjI1IC0wLjAzNSAgMC4wODUgIDAuMDM1IDsKLSMgICAgTEFZRVIgVmlhMyA7Ci0jICAgICAgICBSRUNUIC0wLjAzNSAtMC4wMzUgIDAuMDM1ICAwLjAzNSA7Ci0jICAgICAgICBSRUNUIC0wLjE3NSAtMC4wMzUgIC0wLjEwNSAgMC4wMzUgOwotIyAgICBMQVlFUiBNZXRhbDQgOwotIyAgICAgICAgUkVDVCAtMC4xNzUgLTAuMDg1ICAwLjAzNSAgMC4wODUgOwotI0VORCBWSUEzNF8yQ19GQVRfVwotIyAKLSNWSUEgVklBMzRfMkNfRkFUX04gREVGQVVMVAotIyAgICBSRVNJU1RBTkNFIDMuMzUwMDAwMDAwMCA7Ci0jICAgIExBWUVSIE1ldGFsMyA7Ci0jICAgICAgICBSRUNUIC0wLjA4NSAtMC4wMzUgIDAuMDg1ICAwLjE3NSA7Ci0jICAgIExBWUVSIFZpYTMgOwotIyAgICAgICAgUkVDVCAtMC4wMzUgLTAuMDM1ICAwLjAzNSAgMC4wMzUgOwotIyAgICAgICAgUkVDVCAtMC4wMzUgMC4xMDUgIDAuMDM1ICAwLjE3NSA7Ci0jICAgIExBWUVSIE1ldGFsNCA7Ci0jICAgICAgICBSRUNUIC0wLjAzNSAtMC4wODUgIDAuMDM1ICAwLjIyNSA7Ci0jRU5EIFZJQTM0XzJDX0ZBVF9OCi0jIAotI1ZJQSBWSUEzNF8yQ19GQVRfUyBERUZBVUxUCi0jICAgIFJFU0lTVEFOQ0UgMy4zNTAwMDAwMDAwIDsKLSMgICAgTEFZRVIgTWV0YWwzIDsKLSMgICAgICAgIFJFQ1QgLTAuMDg1IC0wLjE3NSAgMC4wODUgIDAuMDM1IDsKLSMgICAgTEFZRVIgVmlhMyA7Ci0jICAgICAgICBSRUNUIC0wLjAzNSAtMC4wMzUgIDAuMDM1ICAwLjAzNSA7Ci0jICAgICAgICBSRUNUIC0wLjAzNSAtMC4xNzUgIDAuMDM1ICAtMC4xMDUgOwotIyAgICBMQVlFUiBNZXRhbDQgOwotIyAgICAgICAgUkVDVCAtMC4wMzUgLTAuMjI1ICAwLjAzNSAgMC4wODUgOwotI0VORCBWSUEzNF8yQ19GQVRfUwotIwotIyMgS0QgY29weSBGQVQgdmlhcyBhbmQgYWRkIEZVTExfRkFUCi0jVklBIFZJQTM0XzJDX0ZVTExfRkFUX0UgREVGQVVMVAotIyAgICBSRVNJU1RBTkNFIDMuMzUwMDAwMDAwMCA7Ci0jICAgIExBWUVSIE1ldGFsMyA7Ci0jICAgICAgICBSRUNUIC0wLjA4NSAtMC4wODUgIDAuMjI1ICAwLjA4NSA7Ci0jICAgIExBWUVSIFZpYTMgOwotIyAgICAgICAgUkVDVCAtMC4wMzUgLTAuMDM1ICAwLjAzNSAgMC4wMzUgOwotIyAgICAgICAgUkVDVCAwLjEwNSAtMC4wMzUgIDAuMTc1ICAwLjAzNSA7Ci0jICAgIExBWUVSIE1ldGFsNCA7Ci0jICAgICAgICBSRUNUIC0wLjA4NSAtMC4wODUgIDAuMjI1ICAwLjA4NSA7Ci0jRU5EIFZJQTM0XzJDX0ZVTExfRkFUX0UKLSMgCi0jVklBIFZJQTM0XzJDX0ZVTExfRkFUX1cgREVGQVVMVAotIyAgICBSRVNJU1RBTkNFIDMuMzUwMDAwMDAwMCA7Ci0jICAgIExBWUVSIE1ldGFsMyA7Ci0jICAgICAgICBSRUNUIC0wLjIyNSAtMC4wODUgIDAuMDg1ICAwLjA4NSA7Ci0jICAgIExBWUVSIFZpYTMgOwotIyAgICAgICAgUkVDVCAtMC4wMzUgLTAuMDM1ICAwLjAzNSAgMC4wMzUgOwotIyAgICAgICAgUkVDVCAtMC4xNzUgLTAuMDM1ICAtMC4xMDUgIDAuMDM1IDsKLSMgICAgTEFZRVIgTWV0YWw0IDsKLSMgICAgICAgIFJFQ1QgLTAuMjI1IC0wLjA4NSAgMC4wODUgIDAuMDg1IDsKLSNFTkQgVklBMzRfMkNfRlVMTF9GQVRfVwotIyAKLSNWSUEgVklBMzRfMkNfRlVMTF9GQVRfTiBERUZBVUxUCi0jICAgIFJFU0lTVEFOQ0UgMy4zNTAwMDAwMDAwIDsKLSMgICAgTEFZRVIgTWV0YWwzIDsKLSMgICAgICAgIFJFQ1QgLTAuMDg1IC0wLjA4NSAgMC4wODUgIDAuMjI1IDsKLSMgICAgTEFZRVIgVmlhMyA7Ci0jICAgICAgICBSRUNUIC0wLjAzNSAtMC4wMzUgIDAuMDM1ICAwLjAzNSA7Ci0jICAgICAgICBSRUNUIC0wLjAzNSAwLjEwNSAgMC4wMzUgIDAuMTc1IDsKLSMgICAgTEFZRVIgTWV0YWw0IDsKLSMgICAgICAgIFJFQ1QgLTAuMDg1IC0wLjA4NSAgMC4wODUgIDAuMjI1IDsKLSNFTkQgVklBMzRfMkNfRlVMTF9GQVRfTgotIyAKLSNWSUEgVklBMzRfMkNfRlVMTF9GQVRfUyBERUZBVUxUCi0jICAgIFJFU0lTVEFOQ0UgMy4zNTAwMDAwMDAwIDsKLSMgICAgTEFZRVIgTWV0YWwzIDsKLSMgICAgICAgIFJFQ1QgLTAuMDg1IC0wLjIyNSAgMC4wODUgIDAuMDg1IDsKLSMgICAgTEFZRVIgVmlhMyA7Ci0jICAgICAgICBSRUNUIC0wLjAzNSAtMC4wMzUgIDAuMDM1ICAwLjAzNSA7Ci0jICAgICAgICBSRUNUIC0wLjAzNSAtMC4xNzUgIDAuMDM1ICAtMC4xMDUgOwotIyAgICBMQVlFUiBNZXRhbDQgOwotIyAgICAgICAgUkVDVCAtMC4wODUgLTAuMjI1ICAwLjA4NSAgMC4wODUgOwotI0VORCBWSUEzNF8yQ19GVUxMX0ZBVF9TCi0jIyMgZW5kIGFkZGVkIHZpYXMgS0QKLQotVklBIFZJQTM0XzRDIERFRkFVTFQKLSAgICBSRVNJU1RBTkNFIDEuNjc1MDAwMDAwMCA7Ci0gICAgTEFZRVIgTWV0YWwzIDsKLSAgICAgICAgUkVDVCAtMC4xMzUgLTAuMTA1ICAwLjEzNSAgMC4xMDUgOwotICAgIExBWUVSIFZpYTMgOwotICAgICAgICBSRUNUIC0wLjEwNSAtMC4xMDUgIC0wLjAzNSAgLTAuMDM1IDsKLSAgICAgICAgUkVDVCAtMC4xMDUgMC4wMzUgIC0wLjAzNSAgMC4xMDUgOwotICAgICAgICBSRUNUIDAuMDM1IDAuMDM1ICAwLjEwNSAgMC4xMDUgOwotICAgICAgICBSRUNUIDAuMDM1IC0wLjEwNSAgMC4xMDUgIC0wLjAzNSA7Ci0gICAgTEFZRVIgTWV0YWw0IDsKLSAgICAgICAgUkVDVCAtMC4xMDUgLTAuMTM1ICAwLjEwNSAgMC4xMzUgOwotRU5EIFZJQTM0XzRDCi0KLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0jIyMgVklBNDUgIyMjIyMjIyMjIyMjIwotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLVZJQSBWSUE0NV8xQyBERUZBVUxUCi0gICAgUkVTSVNUQU5DRSA2LjcwMDAwMDAwMDAgOwotICAgIExBWUVSIE1ldGFsNCA7Ci0gICAgICAgIFJFQ1QgLTAuMDM1IC0wLjA2NSAgMC4wMzUgIDAuMDY1IDsKLSAgICBMQVlFUiBWaWE0IDsKLSAgICAgICAgUkVDVCAtMC4wMzUgLTAuMDM1ICAwLjAzNSAgMC4wMzUgOwotICAgIExBWUVSIE1ldGFsNSA7Ci0gICAgICAgIFJFQ1QgLTAuMDY1IC0wLjAzNSAgMC4wNjUgIDAuMDM1IDsKLUVORCBWSUE0NV8xQwotCi1WSUEgVklBNDVfMUNfSCBERUZBVUxUCi0gICAgUkVTSVNUQU5DRSA2LjcwMDAwMDAwMDAgOwotICAgIExBWUVSIE1ldGFsNCA7Ci0gICAgICAgIFJFQ1QgLTAuMDY1IC0wLjAzNSAgMC4wNjUgIDAuMDM1IDsKLSAgICBMQVlFUiBWaWE0IDsKLSAgICAgICAgUkVDVCAtMC4wMzUgLTAuMDM1ICAwLjAzNSAgMC4wMzUgOwotICAgIExBWUVSIE1ldGFsNSA7Ci0gICAgICAgIFJFQ1QgLTAuMDY1IC0wLjAzNSAgMC4wNjUgIDAuMDM1IDsKLUVORCBWSUE0NV8xQ19ICi0gICAgICAgICAgICAgICAgIAotVklBIFZJQTQ1XzFDX1YgREVGQVVMVAotICAgIFJFU0lTVEFOQ0UgNi43MDAwMDAwMDAwIDsKLSAgICBMQVlFUiBNZXRhbDQgOwotICAgICAgICBSRUNUIC0wLjAzNSAtMC4wNjUgIDAuMDM1ICAwLjA2NSA7Ci0gICAgTEFZRVIgVmlhNCA7Ci0gICAgICAgIFJFQ1QgLTAuMDM1IC0wLjAzNSAgMC4wMzUgIDAuMDM1IDsKLSAgICBMQVlFUiBNZXRhbDUgOwotICAgICAgICBSRUNUIC0wLjAzNSAtMC4wNjUgIDAuMDM1ICAwLjA2NSA7Ci1FTkQgVklBNDVfMUNfVgotCi0jVklBIFZJQTQ1XzFDX0ZBVF9DIERFRkFVTFQKLSMgICAgUkVTSVNUQU5DRSA2LjcwMDAwMDAwMDAgOwotIyAgICBMQVlFUiBNZXRhbDQgOwotIyAgICAgICAgUkVDVCAtMC4wMzUgLTAuMDg1ICAwLjAzNSAgMC4wODUgOwotIyAgICBMQVlFUiBWaWE0IDsKLSMgICAgICAgIFJFQ1QgLTAuMDM1IC0wLjAzNSAgMC4wMzUgIDAuMDM1IDsKLSMgICAgTEFZRVIgTWV0YWw1IDsKLSMgICAgICAgIFJFQ1QgLTAuMDg1IC0wLjAzNSAgMC4wODUgIDAuMDM1IDsKLSNFTkQgVklBNDVfMUNfRkFUX0MKLSMgICAgICAgICAgICAgCi0jVklBIFZJQTQ1XzFDX0ZBVF9IIERFRkFVTFQKLSMgICAgUkVTSVNUQU5DRSA2LjcwMDAwMDAwMDAgOwotIyAgICBMQVlFUiBNZXRhbDQgOwotIyAgICAgICAgUkVDVCAtMC4wODUgLTAuMDM1ICAwLjA4NSAgMC4wMzUgOwotIyAgICBMQVlFUiBWaWE0IDsKLSMgICAgICAgIFJFQ1QgLTAuMDM1IC0wLjAzNSAgMC4wMzUgIDAuMDM1IDsKLSMgICAgTEFZRVIgTWV0YWw1IDsKLSMgICAgICAgIFJFQ1QgLTAuMDg1IC0wLjAzNSAgMC4wODUgIDAuMDM1IDsKLSNFTkQgVklBNDVfMUNfRkFUX0gKLSMKLSNWSUEgVklBNDVfMUNfRkFUX1YgREVGQVVMVAotIyAgICBSRVNJU1RBTkNFIDYuNzAwMDAwMDAwMCA7Ci0jICAgIExBWUVSIE1ldGFsNCA7Ci0jICAgICAgICBSRUNUIC0wLjAzNSAtMC4wODUgIDAuMDM1ICAwLjA4NSA7Ci0jICAgIExBWUVSIFZpYTQgOwotIyAgICAgICAgUkVDVCAtMC4wMzUgLTAuMDM1ICAwLjAzNSAgMC4wMzUgOwotIyAgICBMQVlFUiBNZXRhbDUgOwotIyAgICAgICAgUkVDVCAtMC4wMzUgLTAuMDg1ICAwLjAzNSAgMC4wODUgOwotI0VORCBWSUE0NV8xQ19GQVRfVgotIwotI1ZJQSBWSUE0NV8xQ19GQVQgREVGQVVMVAotIyAgICBSRVNJU1RBTkNFIDYuNzAwMDAwMDAwMCA7Ci0jICAgIExBWUVSIE1ldGFsNCA7Ci0jICAgICAgICBSRUNUIC0wLjA2NSAtMC4wNjUgIDAuMDY1ICAwLjA2NSA7Ci0jICAgIExBWUVSIFZpYTQgOwotIyAgICAgICAgUkVDVCAtMC4wMzUgLTAuMDM1ICAwLjAzNSAgMC4wMzUgOwotIyAgICBMQVlFUiBNZXRhbDUgOwotIyAgICAgICAgUkVDVCAtMC4wNjUgLTAuMDY1ICAwLjA2NSAgMC4wNjUgOwotI0VORCBWSUE0NV8xQ19GQVQKLSAgICAgICAgICAgICAgICAgCi1WSUEgVklBNDVfMVNUX04gREVGQVVMVAotICAgIFJFU0lTVEFOQ0UgNi43MDAwMDAwMDAwIDsKLSAgICBMQVlFUiBNZXRhbDQgOwotICAgICAgICBSRUNUIC0wLjAzNSAtMC4wNjUgIDAuMDM1ICAwLjMyNSA7Ci0gICAgTEFZRVIgVmlhNCA7Ci0gICAgICAgIFJFQ1QgLTAuMDM1IC0wLjAzNSAgMC4wMzUgIDAuMDM1IDsKLSAgICBMQVlFUiBNZXRhbDUgOwotICAgICAgICBSRUNUIC0wLjA2NSAtMC4wMzUgIDAuMDY1ICAwLjAzNSA7Ci1FTkQgVklBNDVfMVNUX04KLQotVklBIFZJQTQ1XzFTVF9TIERFRkFVTFQKLSAgICBSRVNJU1RBTkNFIDYuNzAwMDAwMDAwMCA7Ci0gICAgTEFZRVIgTWV0YWw0IDsKLSAgICAgICAgUkVDVCAtMC4wMzUgLTAuMzI1ICAwLjAzNSAgMC4wNjUgOwotICAgIExBWUVSIFZpYTQgOwotICAgICAgICBSRUNUIC0wLjAzNSAtMC4wMzUgIDAuMDM1ICAwLjAzNSA7Ci0gICAgTEFZRVIgTWV0YWw1IDsKLSAgICAgICAgUkVDVCAtMC4wNjUgLTAuMDM1ICAwLjA2NSAgMC4wMzUgOwotRU5EIFZJQTQ1XzFTVF9TCi0KLVZJQSBWSUE0NV8yQ19FIERFRkFVTFQKLSAgICBSRVNJU1RBTkNFIDMuMzUwMDAwMDAwMCA7Ci0gICAgTEFZRVIgTWV0YWw0IDsKLSAgICAgICAgUkVDVCAtMC4wMzUgLTAuMDY1ICAwLjE3NSAgMC4wNjUgOwotICAgIExBWUVSIFZpYTQgOwotICAgICAgICBSRUNUIC0wLjAzNSAtMC4wMzUgIDAuMDM1ICAwLjAzNSA7Ci0gICAgICAgIFJFQ1QgMC4xMDUgLTAuMDM1ICAwLjE3NSAgMC4wMzUgOwotICAgIExBWUVSIE1ldGFsNSA7Ci0gICAgICAgIFJFQ1QgLTAuMDY1IC0wLjAzNSAgMC4yMDUgIDAuMDM1IDsKLUVORCBWSUE0NV8yQ19FCi0gCi1WSUEgVklBNDVfMkNfVyBERUZBVUxUCi0gICAgUkVTSVNUQU5DRSAzLjM1MDAwMDAwMDAgOwotICAgIExBWUVSIE1ldGFsNCA7Ci0gICAgICAgIFJFQ1QgLTAuMTc1IC0wLjA2NSAgMC4wMzUgIDAuMDY1IDsKLSAgICBMQVlFUiBWaWE0IDsKLSAgICAgICAgUkVDVCAtMC4wMzUgLTAuMDM1ICAwLjAzNSAgMC4wMzUgOwotICAgICAgICBSRUNUIC0wLjE3NSAtMC4wMzUgIC0wLjEwNSAgMC4wMzUgOwotICAgIExBWUVSIE1ldGFsNSA7Ci0gICAgICAgIFJFQ1QgLTAuMjA1IC0wLjAzNSAgMC4wNjUgIDAuMDM1IDsKLUVORCBWSUE0NV8yQ19XCi0gCi1WSUEgVklBNDVfMkNfTiBERUZBVUxUCi0gICAgUkVTSVNUQU5DRSAzLjM1MDAwMDAwMDAgOwotICAgIExBWUVSIE1ldGFsNCA7Ci0gICAgICAgIFJFQ1QgLTAuMDM1IC0wLjA2NSAgMC4wMzUgIDAuMjA1IDsKLSAgICBMQVlFUiBWaWE0IDsKLSAgICAgICAgUkVDVCAtMC4wMzUgLTAuMDM1ICAwLjAzNSAgMC4wMzUgOwotICAgICAgICBSRUNUIC0wLjAzNSAwLjEwNSAgMC4wMzUgIDAuMTc1IDsKLSAgICBMQVlFUiBNZXRhbDUgOwotICAgICAgICBSRUNUIC0wLjA2NSAtMC4wMzUgIDAuMDY1ICAwLjE3NSA7Ci1FTkQgVklBNDVfMkNfTgotIAotVklBIFZJQTQ1XzJDX1MgREVGQVVMVAotICAgIFJFU0lTVEFOQ0UgMy4zNTAwMDAwMDAwIDsKLSAgICBMQVlFUiBNZXRhbDQgOwotICAgICAgICBSRUNUIC0wLjAzNSAtMC4yMDUgIDAuMDM1ICAwLjA2NSA7Ci0gICAgTEFZRVIgVmlhNCA7Ci0gICAgICAgIFJFQ1QgLTAuMDM1IC0wLjAzNSAgMC4wMzUgIDAuMDM1IDsKLSAgICAgICAgUkVDVCAtMC4wMzUgLTAuMTc1ICAwLjAzNSAgLTAuMTA1IDsKLSAgICBMQVlFUiBNZXRhbDUgOwotICAgICAgICBSRUNUIC0wLjA2NSAtMC4xNzUgIDAuMDY1ICAwLjAzNSA7Ci1FTkQgVklBNDVfMkNfUwotCi1WSUEgVklBNDVfMlNUX04gREVGQVVMVAotICAgIFJFU0lTVEFOQ0UgMy4zNTAwMDAwMDAwIDsKLSAgICBMQVlFUiBNZXRhbDQgOwotICAgICAgICBSRUNUIC0wLjAzNSAtMC4wNjUgIDAuMDM1ICAwLjMyNSA7Ci0gICAgTEFZRVIgVmlhNCA7Ci0gICAgICAgIFJFQ1QgLTAuMDM1IC0wLjAzNSAgMC4wMzUgIDAuMDM1IDsKLSAgICAgICAgUkVDVCAtMC4wMzUgMC4xMDUgIDAuMDM1ICAwLjE3NSA7Ci0gICAgTEFZRVIgTWV0YWw1IDsKLSAgICAgICAgUkVDVCAtMC4wNjUgLTAuMDM1ICAwLjA2NSAgMC4xNzUgOwotRU5EIFZJQTQ1XzJTVF9OCi0gCi1WSUEgVklBNDVfMlNUX1MgREVGQVVMVAotICAgIFJFU0lTVEFOQ0UgMy4zNTAwMDAwMDAwIDsKLSAgICBMQVlFUiBNZXRhbDQgOwotICAgICAgICBSRUNUIC0wLjAzNSAtMC4zMjUgIDAuMDM1ICAwLjA2NSA7Ci0gICAgTEFZRVIgVmlhNCA7Ci0gICAgICAgIFJFQ1QgLTAuMDM1IC0wLjAzNSAgMC4wMzUgIDAuMDM1IDsKLSAgICAgICAgUkVDVCAtMC4wMzUgLTAuMTc1ICAwLjAzNSAgLTAuMTA1IDsKLSAgICBMQVlFUiBNZXRhbDUgOwotICAgICAgICBSRUNUIC0wLjA2NSAtMC4xNzUgIDAuMDY1ICAwLjAzNSA7Ci1FTkQgVklBNDVfMlNUX1MKLQotI1ZJQSBWSUE0NV8yQ19GQVRfRSBERUZBVUxUCi0jICAgIFJFU0lTVEFOQ0UgMy4zNTAwMDAwMDAwIDsKLSMgICAgTEFZRVIgTWV0YWw0IDsKLSMgICAgICAgIFJFQ1QgLTAuMDM1IC0wLjA4NSAgMC4xNzUgIDAuMDg1IDsKLSMgICAgTEFZRVIgVmlhNCA7Ci0jICAgICAgICBSRUNUIC0wLjAzNSAtMC4wMzUgIDAuMDM1ICAwLjAzNSA7Ci0jICAgICAgICBSRUNUIDAuMTA1IC0wLjAzNSAgMC4xNzUgIDAuMDM1IDsKLSMgICAgTEFZRVIgTWV0YWw1IDsKLSMgICAgICAgIFJFQ1QgLTAuMDg1IC0wLjAzNSAgMC4yMjUgIDAuMDM1IDsKLSNFTkQgVklBNDVfMkNfRkFUX0UKLSMgCi0jVklBIFZJQTQ1XzJDX0ZBVF9XIERFRkFVTFQKLSMgICAgUkVTSVNUQU5DRSAzLjM1MDAwMDAwMDAgOwotIyAgICBMQVlFUiBNZXRhbDQgOwotIyAgICAgICAgUkVDVCAtMC4xNzUgLTAuMDg1ICAwLjAzNSAgMC4wODUgOwotIyAgICBMQVlFUiBWaWE0IDsKLSMgICAgICAgIFJFQ1QgLTAuMDM1IC0wLjAzNSAgMC4wMzUgIDAuMDM1IDsKLSMgICAgICAgIFJFQ1QgLTAuMTc1IC0wLjAzNSAgLTAuMTA1ICAwLjAzNSA7Ci0jICAgIExBWUVSIE1ldGFsNSA7Ci0jICAgICAgICBSRUNUIC0wLjIyNSAtMC4wMzUgIDAuMDg1ICAwLjAzNSA7Ci0jRU5EIFZJQTQ1XzJDX0ZBVF9XCi0jIAotI1ZJQSBWSUE0NV8yQ19GQVRfTiBERUZBVUxUCi0jICAgIFJFU0lTVEFOQ0UgMy4zNTAwMDAwMDAwIDsKLSMgICAgTEFZRVIgTWV0YWw0IDsKLSMgICAgICAgIFJFQ1QgLTAuMDM1IC0wLjA4NSAgMC4wMzUgIDAuMjI1IDsKLSMgICAgTEFZRVIgVmlhNCA7Ci0jICAgICAgICBSRUNUIC0wLjAzNSAtMC4wMzUgIDAuMDM1ICAwLjAzNSA7Ci0jICAgICAgICBSRUNUIC0wLjAzNSAwLjEwNSAgMC4wMzUgIDAuMTc1IDsKLSMgICAgTEFZRVIgTWV0YWw1IDsKLSMgICAgICAgIFJFQ1QgLTAuMDg1IC0wLjAzNSAgMC4wODUgIDAuMTc1IDsKLSNFTkQgVklBNDVfMkNfRkFUX04KLSMgCi0jVklBIFZJQTQ1XzJDX0ZBVF9TIERFRkFVTFQKLSMgICAgUkVTSVNUQU5DRSAzLjM1MDAwMDAwMDAgOwotIyAgICBMQVlFUiBNZXRhbDQgOwotIyAgICAgICAgUkVDVCAtMC4wMzUgLTAuMjI1ICAwLjAzNSAgMC4wODUgOwotIyAgICBMQVlFUiBWaWE0IDsKLSMgICAgICAgIFJFQ1QgLTAuMDM1IC0wLjAzNSAgMC4wMzUgIDAuMDM1IDsKLSMgICAgICAgIFJFQ1QgLTAuMDM1IC0wLjE3NSAgMC4wMzUgIC0wLjEwNSA7Ci0jICAgIExBWUVSIE1ldGFsNSA7Ci0jICAgICAgICBSRUNUIC0wLjA4NSAtMC4xNzUgIDAuMDg1ICAwLjAzNSA7Ci0jRU5EIFZJQTQ1XzJDX0ZBVF9TCi0jCi0jIyMgS0QgY29weSBGQVQgdmlhcyBhbmQgYWQgRlVMTF9GQVQKLSNWSUEgVklBNDVfMkNfRlVMTF9GQVRfRSBERUZBVUxUCi0jICAgIFJFU0lTVEFOQ0UgMy4zNTAwMDAwMDAwIDsKLSMgICAgTEFZRVIgTWV0YWw0IDsKLSMgICAgICAgIFJFQ1QgLTAuMDg1IC0wLjA4NSAgMC4yMjUgIDAuMDg1IDsKLSMgICAgTEFZRVIgVmlhNCA7Ci0jICAgICAgICBSRUNUIC0wLjAzNSAtMC4wMzUgIDAuMDM1ICAwLjAzNSA7Ci0jICAgICAgICBSRUNUIDAuMTA1IC0wLjAzNSAgMC4xNzUgIDAuMDM1IDsKLSMgICAgTEFZRVIgTWV0YWw1IDsKLSMgICAgICAgIFJFQ1QgLTAuMDg1IC0wLjA4NSAgMC4yMjUgIDAuMDg1IDsKLSNFTkQgVklBNDVfMkNfRlVMTF9GQVRfRQotIyAKLSNWSUEgVklBNDVfMkNfRlVMTF9GQVRfVyBERUZBVUxUCi0jICAgIFJFU0lTVEFOQ0UgMy4zNTAwMDAwMDAwIDsKLSMgICAgTEFZRVIgTWV0YWw0IDsKLSMgICAgICAgIFJFQ1QgLTAuMjI1IC0wLjA4NSAgMC4wODUgIDAuMDg1IDsKLSMgICAgTEFZRVIgVmlhNCA7Ci0jICAgICAgICBSRUNUIC0wLjAzNSAtMC4wMzUgIDAuMDM1ICAwLjAzNSA7Ci0jICAgICAgICBSRUNUIC0wLjE3NSAtMC4wMzUgIC0wLjEwNSAgMC4wMzUgOwotIyAgICBMQVlFUiBNZXRhbDUgOwotIyAgICAgICAgUkVDVCAtMC4yMjUgLTAuMDg1ICAwLjA4NSAgMC4wODUgOwotI0VORCBWSUE0NV8yQ19GVUxMX0ZBVF9XCi0jIAotI1ZJQSBWSUE0NV8yQ19GVUxMX0ZBVF9OIERFRkFVTFQKLSMgICAgUkVTSVNUQU5DRSAzLjM1MDAwMDAwMDAgOwotIyAgICBMQVlFUiBNZXRhbDQgOwotIyAgICAgICAgUkVDVCAtMC4wODUgLTAuMDg1ICAwLjA4NSAgMC4yMjUgOwotIyAgICBMQVlFUiBWaWE0IDsKLSMgICAgICAgIFJFQ1QgLTAuMDM1IC0wLjAzNSAgMC4wMzUgIDAuMDM1IDsKLSMgICAgICAgIFJFQ1QgLTAuMDM1IDAuMTA1ICAwLjAzNSAgMC4xNzUgOwotIyAgICBMQVlFUiBNZXRhbDUgOwotIyAgICAgICAgUkVDVCAtMC4wODUgLTAuMDg1ICAwLjA4NSAgMC4yMjUgOwotI0VORCBWSUE0NV8yQ19GVUxMX0ZBVF9OCi0jIAotI1ZJQSBWSUE0NV8yQ19GVUxMX0ZBVF9TIERFRkFVTFQKLSMgICAgUkVTSVNUQU5DRSAzLjM1MDAwMDAwMDAgOwotIyAgICBMQVlFUiBNZXRhbDQgOwotIyAgICAgICAgUkVDVCAtMC4wODUgLTAuMjI1ICAwLjA4NSAgMC4wODUgOwotIyAgICBMQVlFUiBWaWE0IDsKLSMgICAgICAgIFJFQ1QgLTAuMDM1IC0wLjAzNSAgMC4wMzUgIDAuMDM1IDsKLSMgICAgICAgIFJFQ1QgLTAuMDM1IC0wLjE3NSAgMC4wMzUgIC0wLjEwNSA7Ci0jICAgIExBWUVSIE1ldGFsNSA7Ci0jICAgICAgICBSRUNUIC0wLjA4NSAtMC4yMjUgIDAuMDg1ICAwLjA4NSA7Ci0jRU5EIFZJQTQ1XzJDX0ZVTExfRkFUX1MKLSMjIEVuZCBhZGRlZCB2aWFzIEtECi0KLVZJQSBWSUE0NV80QyBERUZBVUxUCi0gICAgUkVTSVNUQU5DRSAxLjY3NTAwMDAwMDAgOwotICAgIExBWUVSIE1ldGFsNCA7Ci0gICAgICAgIFJFQ1QgLTAuMTA1IC0wLjEzNSAgMC4xMDUgIDAuMTM1IDsKLSAgICBMQVlFUiBWaWE0IDsKLSAgICAgICAgUkVDVCAtMC4xMDUgLTAuMTA1ICAtMC4wMzUgIC0wLjAzNSA7Ci0gICAgICAgIFJFQ1QgLTAuMTA1IDAuMDM1ICAtMC4wMzUgIDAuMTA1IDsKLSAgICAgICAgUkVDVCAwLjAzNSAwLjAzNSAgMC4xMDUgIDAuMTA1IDsKLSAgICAgICAgUkVDVCAwLjAzNSAtMC4xMDUgIDAuMTA1ICAtMC4wMzUgOwotICAgIExBWUVSIE1ldGFsNSA7Ci0gICAgICAgIFJFQ1QgLTAuMTM1IC0wLjEwNSAgMC4xMzUgIDAuMTA1IDsKLUVORCBWSUE0NV80QwotCi0jR0RHCi0KLVZJQSBWSUE1XzBfVkggREVGQVVMVAotICAgIFJFU0lTVEFOQ0UgMS42NzUwMDAwMDAwIDsKLSAgTEFZRVIgTWV0YWw1IDsKLSAgICBSRUNUIC0wLjAzNSAtMC4wNjUgMC4wMzUgMC4wNjUgOwotICBMQVlFUiBNZXRhbDYgOwotICAgIFJFQ1QgLTAuMDY1IC0wLjAzNSAwLjA2NSAwLjAzNSA7Ci0gIExBWUVSIFZpYTUgOwotICAgIFJFQ1QgLTAuMDM1IC0wLjAzNSAwLjAzNSAwLjAzNSA7Ci1FTkQgVklBNV8wX1ZICi0KLVZJQSBWSUE1XzBfWDJIX1ZIIERFRkFVTFQKLSAgICBSRVNJU1RBTkNFIDEuNjc1MDAwMDAwMCA7Ci0gIExBWUVSIE1ldGFsNSA7Ci0gICAgUkVDVCAtMC4xMDUgLTAuMDY1IDAuMTA1IDAuMDY1IDsKLSAgTEFZRVIgTWV0YWw2IDsKLSAgICBSRUNUIC0wLjEzNSAtMC4wMzUgMC4xMzUgMC4wMzUgOwotICBMQVlFUiBWaWE1IDsKLSAgICBSRUNUIC0wLjEwNSAtMC4wMzUgLTAuMDM1IDAuMDM1IDsKLSAgICBSRUNUIDAuMDM1IC0wLjAzNSAwLjEwNSAwLjAzNSA7Ci1FTkQgVklBNV8wX1gySF9WSAotCi1WSUEgVklBNV8wX1gyRV9WSCBERUZBVUxUCi0gICAgUkVTSVNUQU5DRSAxLjY3NTAwMDAwMDAgOwotICBMQVlFUiBNZXRhbDUgOwotICAgIFJFQ1QgLTAuMDM1IC0wLjA2NSAwLjE3NSAwLjA2NSA7Ci0gIExBWUVSIE1ldGFsNiA7Ci0gICAgUkVDVCAtMC4wNjUgLTAuMDM1IDAuMjA1IDAuMDM1IDsKLSAgTEFZRVIgVmlhNSA7Ci0gICAgUkVDVCAtMC4wMzUgLTAuMDM1IDAuMDM1IDAuMDM1IDsKLSAgICBSRUNUIDAuMTA1IC0wLjAzNSAwLjE3NSAwLjAzNSA7Ci1FTkQgVklBNV8wX1gyRV9WSAotCi1WSUEgVklBNV8wX1gyV19WSCBERUZBVUxUCi0gICAgUkVTSVNUQU5DRSAxLjY3NTAwMDAwMDAgOwotICBMQVlFUiBNZXRhbDUgOwotICAgIFJFQ1QgLTAuMTc1IC0wLjA2NSAwLjAzNSAwLjA2NSA7Ci0gIExBWUVSIE1ldGFsNiA7Ci0gICAgUkVDVCAtMC4yMDUgLTAuMDM1IDAuMDY1IDAuMDM1IDsKLSAgTEFZRVIgVmlhNSA7Ci0gICAgUkVDVCAtMC4xNzUgLTAuMDM1IC0wLjEwNSAwLjAzNSA7Ci0gICAgUkVDVCAtMC4wMzUgLTAuMDM1IDAuMDM1IDAuMDM1IDsKLUVORCBWSUE1XzBfWDJXX1ZICi0KLVZJQSBWSUE1XzBfWDJWX1ZIIERFRkFVTFQKLSAgICBSRVNJU1RBTkNFIDEuNjc1MDAwMDAwMCA7Ci0gIExBWUVSIE1ldGFsNSA7Ci0gICAgUkVDVCAtMC4wMzUgLTAuMTM1IDAuMDM1IDAuMTM1IDsKLSAgTEFZRVIgTWV0YWw2IDsKLSAgICBSRUNUIC0wLjA2NSAtMC4xMDUgMC4wNjUgMC4xMDUgOwotICBMQVlFUiBWaWE1IDsKLSAgICBSRUNUIC0wLjAzNSAtMC4xMDUgMC4wMzUgLTAuMDM1IDsKLSAgICBSRUNUIC0wLjAzNSAwLjAzNSAwLjAzNSAwLjEwNSA7Ci1FTkQgVklBNV8wX1gyVl9WSAotCi1WSUEgVklBNV8wX1gyTl9WSCBERUZBVUxUCi0gICAgUkVTSVNUQU5DRSAxLjY3NTAwMDAwMDAgOwotICBMQVlFUiBNZXRhbDUgOwotICAgIFJFQ1QgLTAuMDM1IC0wLjA2NSAwLjAzNSAwLjIwNSA7Ci0gIExBWUVSIE1ldGFsNiA7Ci0gICAgUkVDVCAtMC4wNjUgLTAuMDM1IDAuMDY1IDAuMTc1IDsKLSAgTEFZRVIgVmlhNSA7Ci0gICAgUkVDVCAtMC4wMzUgLTAuMDM1IDAuMDM1IDAuMDM1IDsKLSAgICBSRUNUIC0wLjAzNSAwLjEwNSAwLjAzNSAwLjE3NSA7Ci1FTkQgVklBNV8wX1gyTl9WSAotCi1WSUEgVklBNV8wX1gyU19WSCBERUZBVUxUCi0gICAgUkVTSVNUQU5DRSAxLjY3NTAwMDAwMDAgOwotICBMQVlFUiBNZXRhbDUgOwotICAgIFJFQ1QgLTAuMDM1IC0wLjIwNSAwLjAzNSAwLjA2NSA7Ci0gIExBWUVSIE1ldGFsNiA7Ci0gICAgUkVDVCAtMC4wNjUgLTAuMTc1IDAuMDY1IDAuMDM1IDsKLSAgTEFZRVIgVmlhNSA7Ci0gICAgUkVDVCAtMC4wMzUgLTAuMTc1IDAuMDM1IC0wLjEwNSA7Ci0gICAgUkVDVCAtMC4wMzUgLTAuMDM1IDAuMDM1IDAuMDM1IDsKLUVORCBWSUE1XzBfWDJTX1ZICi0KLVZJQSBWSUE1XzBfWDRIX1ZIIERFRkFVTFQKLSAgICBSRVNJU1RBTkNFIDEuNjc1MDAwMDAwMCA7Ci0gIExBWUVSIE1ldGFsNSA7Ci0gICAgUkVDVCAtMC4yNDUgLTAuMDY1IDAuMjQ1IDAuMDY1IDsKLSAgTEFZRVIgTWV0YWw2IDsKLSAgICBSRUNUIC0wLjI3NSAtMC4wMzUgMC4yNzUgMC4wMzUgOwotICBMQVlFUiBWaWE1IDsKLSAgICBSRUNUIC0wLjI0NSAtMC4wMzUgLTAuMTc1IDAuMDM1IDsKLSAgICBSRUNUIC0wLjEwNSAtMC4wMzUgLTAuMDM1IDAuMDM1IDsKLSAgICBSRUNUIDAuMDM1IC0wLjAzNSAwLjEwNSAwLjAzNSA7Ci0gICAgUkVDVCAwLjE3NSAtMC4wMzUgMC4yNDUgMC4wMzUgOwotRU5EIFZJQTVfMF9YNEhfVkgKLQotVklBIFZJQTVfMF9YNEVfVkggREVGQVVMVAotICAgIFJFU0lTVEFOQ0UgMS42NzUwMDAwMDAwIDsKLSAgTEFZRVIgTWV0YWw1IDsKLSAgICBSRUNUIC0wLjAzNSAtMC4wNjUgMC40NTUgMC4wNjUgOwotICBMQVlFUiBNZXRhbDYgOwotICAgIFJFQ1QgLTAuMDY1IC0wLjAzNSAwLjQ4NSAwLjAzNSA7Ci0gIExBWUVSIFZpYTUgOwotICAgIFJFQ1QgLTAuMDM1IC0wLjAzNSAwLjAzNSAwLjAzNSA7Ci0gICAgUkVDVCAwLjEwNSAtMC4wMzUgMC4xNzUgMC4wMzUgOwotICAgIFJFQ1QgMC4yNDUgLTAuMDM1IDAuMzE1IDAuMDM1IDsKLSAgICBSRUNUIDAuMzg1IC0wLjAzNSAwLjQ1NSAwLjAzNSA7Ci1FTkQgVklBNV8wX1g0RV9WSAotCi1WSUEgVklBNV8wX1g0V19WSCBERUZBVUxUCi0gICAgUkVTSVNUQU5DRSAxLjY3NTAwMDAwMDAgOwotICBMQVlFUiBNZXRhbDUgOwotICAgIFJFQ1QgLTAuNDU1IC0wLjA2NSAwLjAzNSAwLjA2NSA7Ci0gIExBWUVSIE1ldGFsNiA7Ci0gICAgUkVDVCAtMC40ODUgLTAuMDM1IDAuMDY1IDAuMDM1IDsKLSAgTEFZRVIgVmlhNSA7Ci0gICAgUkVDVCAtMC40NTUgLTAuMDM1IC0wLjM4NSAwLjAzNSA7Ci0gICAgUkVDVCAtMC4zMTUgLTAuMDM1IC0wLjI0NSAwLjAzNSA7Ci0gICAgUkVDVCAtMC4xNzUgLTAuMDM1IC0wLjEwNSAwLjAzNSA7Ci0gICAgUkVDVCAtMC4wMzUgLTAuMDM1IDAuMDM1IDAuMDM1IDsKLUVORCBWSUE1XzBfWDRXX1ZICi0KLVZJQSBWSUE1XzBfWDRWX1ZIIERFRkFVTFQKLSAgICBSRVNJU1RBTkNFIDEuNjc1MDAwMDAwMCA7Ci0gIExBWUVSIE1ldGFsNSA7Ci0gICAgUkVDVCAtMC4wMzUgLTAuMjc1IDAuMDM1IDAuMjc1IDsKLSAgTEFZRVIgTWV0YWw2IDsKLSAgICBSRUNUIC0wLjA2NSAtMC4yNDUgMC4wNjUgMC4yNDUgOwotICBMQVlFUiBWaWE1IDsKLSAgICBSRUNUIC0wLjAzNSAtMC4yNDUgMC4wMzUgLTAuMTc1IDsKLSAgICBSRUNUIC0wLjAzNSAtMC4xMDUgMC4wMzUgLTAuMDM1IDsKLSAgICBSRUNUIC0wLjAzNSAwLjAzNSAwLjAzNSAwLjEwNSA7Ci0gICAgUkVDVCAtMC4wMzUgMC4xNzUgMC4wMzUgMC4yNDUgOwotRU5EIFZJQTVfMF9YNFZfVkgKLQotVklBIFZJQTVfMF9YNE5fVkggREVGQVVMVAotICAgIFJFU0lTVEFOQ0UgMS42NzUwMDAwMDAwIDsKLSAgTEFZRVIgTWV0YWw1IDsKLSAgICBSRUNUIC0wLjAzNSAtMC4wNjUgMC4wMzUgMC40ODUgOwotICBMQVlFUiBNZXRhbDYgOwotICAgIFJFQ1QgLTAuMDY1IC0wLjAzNSAwLjA2NSAwLjQ1NSA7Ci0gIExBWUVSIFZpYTUgOwotICAgIFJFQ1QgLTAuMDM1IC0wLjAzNSAwLjAzNSAwLjAzNSA7Ci0gICAgUkVDVCAtMC4wMzUgMC4xMDUgMC4wMzUgMC4xNzUgOwotICAgIFJFQ1QgLTAuMDM1IDAuMjQ1IDAuMDM1IDAuMzE1IDsKLSAgICBSRUNUIC0wLjAzNSAwLjM4NSAwLjAzNSAwLjQ1NSA7Ci1FTkQgVklBNV8wX1g0Tl9WSAotCi1WSUEgVklBNV8wX1g0U19WSCBERUZBVUxUCi0gICAgUkVTSVNUQU5DRSAxLjY3NTAwMDAwMDAgOwotICBMQVlFUiBNZXRhbDUgOwotICAgIFJFQ1QgLTAuMDM1IC0wLjQ4NSAwLjAzNSAwLjA2NSA7Ci0gIExBWUVSIE1ldGFsNiA7Ci0gICAgUkVDVCAtMC4wNjUgLTAuNDU1IDAuMDY1IDAuMDM1IDsKLSAgTEFZRVIgVmlhNSA7Ci0gICAgUkVDVCAtMC4wMzUgLTAuNDU1IDAuMDM1IC0wLjM4NSA7Ci0gICAgUkVDVCAtMC4wMzUgLTAuMzE1IDAuMDM1IC0wLjI0NSA7Ci0gICAgUkVDVCAtMC4wMzUgLTAuMTc1IDAuMDM1IC0wLjEwNSA7Ci0gICAgUkVDVCAtMC4wMzUgLTAuMDM1IDAuMDM1IDAuMDM1IDsKLUVORCBWSUE1XzBfWDRTX1ZICi0KLVZJQSBWSUE2XzBfSFYgREVGQVVMVAotICAgIFJFU0lTVEFOQ0UgMS42NzUwMDAwMDAwIDsKLSAgTEFZRVIgTWV0YWw2IDsKLSAgICBSRUNUIC0wLjI2IC0wLjIgMC4yNiAwLjIgOwotICBMQVlFUiBNZXRhbDcgOwotICAgIFJFQ1QgLTAuMiAtMC4yNiAwLjIgMC4yNiA7Ci0gIExBWUVSIFZpYTYgOwotICAgIFJFQ1QgLTAuMTggLTAuMTggMC4xOCAwLjE4IDsKLUVORCBWSUE2XzBfSFYKLQotVklBIFZJQTZfMF9YMkhfSFYgREVGQVVMVAotICAgIFJFU0lTVEFOQ0UgMS42NzUwMDAwMDAwIDsKLSAgTEFZRVIgTWV0YWw2IDsKLSAgICBSRUNUIC0wLjYxIC0wLjIgMC42MSAwLjIgOwotICBMQVlFUiBNZXRhbDcgOwotICAgIFJFQ1QgLTAuNTUgLTAuMjYgMC41NSAwLjI2IDsKLSAgTEFZRVIgVmlhNiA7Ci0gICAgUkVDVCAtMC41MyAtMC4xOCAtMC4xNyAwLjE4IDsKLSAgICBSRUNUIDAuMTcgLTAuMTggMC41MyAwLjE4IDsKLUVORCBWSUE2XzBfWDJIX0hWCi0KLVZJQSBWSUE2XzBfWDJFX0hWIERFRkFVTFQKLSAgICBSRVNJU1RBTkNFIDEuNjc1MDAwMDAwMCA7Ci0gIExBWUVSIE1ldGFsNiA7Ci0gICAgUkVDVCAtMC4yNiAtMC4yIDAuOTYgMC4yIDsKLSAgTEFZRVIgTWV0YWw3IDsKLSAgICBSRUNUIC0wLjIgLTAuMjYgMC45IDAuMjYgOwotICBMQVlFUiBWaWE2IDsKLSAgICBSRUNUIC0wLjE4IC0wLjE4IDAuMTggMC4xOCA7Ci0gICAgUkVDVCAwLjUyIC0wLjE4IDAuODggMC4xOCA7Ci1FTkQgVklBNl8wX1gyRV9IVgotCi1WSUEgVklBNl8wX1gyV19IViBERUZBVUxUCi0gICAgUkVTSVNUQU5DRSAxLjY3NTAwMDAwMDAgOwotICBMQVlFUiBNZXRhbDYgOwotICAgIFJFQ1QgLTAuOTYgLTAuMiAwLjI2IDAuMiA7Ci0gIExBWUVSIE1ldGFsNyA7Ci0gICAgUkVDVCAtMC45IC0wLjI2IDAuMiAwLjI2IDsKLSAgTEFZRVIgVmlhNiA7Ci0gICAgUkVDVCAtMC44OCAtMC4xOCAtMC41MiAwLjE4IDsKLSAgICBSRUNUIC0wLjE4IC0wLjE4IDAuMTggMC4xOCA7Ci1FTkQgVklBNl8wX1gyV19IVgotCi1WSUEgVklBNl8wX1gyVl9IViBERUZBVUxUCi0gICAgUkVTSVNUQU5DRSAxLjY3NTAwMDAwMDAgOwotICBMQVlFUiBNZXRhbDYgOwotICAgIFJFQ1QgLTAuMjYgLTAuNTUgMC4yNiAwLjU1IDsKLSAgTEFZRVIgTWV0YWw3IDsKLSAgICBSRUNUIC0wLjIgLTAuNjEgMC4yIDAuNjEgOwotICBMQVlFUiBWaWE2IDsKLSAgICBSRUNUIC0wLjE4IC0wLjUzIDAuMTggLTAuMTcgOwotICAgIFJFQ1QgLTAuMTggMC4xNyAwLjE4IDAuNTMgOwotRU5EIFZJQTZfMF9YMlZfSFYKLQotVklBIFZJQTZfMF9YMk5fSFYgREVGQVVMVAotICAgIFJFU0lTVEFOQ0UgMS42NzUwMDAwMDAwIDsKLSAgTEFZRVIgTWV0YWw2IDsKLSAgICBSRUNUIC0wLjI2IC0wLjIgMC4yNiAwLjkgOwotICBMQVlFUiBNZXRhbDcgOwotICAgIFJFQ1QgLTAuMiAtMC4yNiAwLjIgMC45NiA7Ci0gIExBWUVSIFZpYTYgOwotICAgIFJFQ1QgLTAuMTggLTAuMTggMC4xOCAwLjE4IDsKLSAgICBSRUNUIC0wLjE4IDAuNTIgMC4xOCAwLjg4IDsKLUVORCBWSUE2XzBfWDJOX0hWCi0KLVZJQSBWSUE2XzBfWDJTX0hWIERFRkFVTFQKLSAgICBSRVNJU1RBTkNFIDEuNjc1MDAwMDAwMCA7Ci0gIExBWUVSIE1ldGFsNiA7Ci0gICAgUkVDVCAtMC4yNiAtMC45IDAuMjYgMC4yIDsKLSAgTEFZRVIgTWV0YWw3IDsKLSAgICBSRUNUIC0wLjIgLTAuOTYgMC4yIDAuMjYgOwotICBMQVlFUiBWaWE2IDsKLSAgICBSRUNUIC0wLjE4IC0wLjg4IDAuMTggLTAuNTIgOwotICAgIFJFQ1QgLTAuMTggLTAuMTggMC4xOCAwLjE4IDsKLUVORCBWSUE2XzBfWDJTX0hWCi0KLVZJQSBWSUE3XzBfVkggREVGQVVMVAotICAgIFJFU0lTVEFOQ0UgMS42NzUwMDAwMDAwIDsKLSAgTEFZRVIgTWV0YWw3IDsKLSAgICBSRUNUIC0wLjIgLTAuMjYgMC4yIDAuMjYgOwotICBMQVlFUiBNZXRhbDggOwotICAgIFJFQ1QgLTAuMjYgLTAuMiAwLjI2IDAuMiA7Ci0gIExBWUVSIFZpYTcgOwotICAgIFJFQ1QgLTAuMTggLTAuMTggMC4xOCAwLjE4IDsKLUVORCBWSUE3XzBfVkgKLQotVklBIFZJQTdfMF9YMkhfVkggREVGQVVMVAotICAgIFJFU0lTVEFOQ0UgMS42NzUwMDAwMDAwIDsKLSAgTEFZRVIgTWV0YWw3IDsKLSAgICBSRUNUIC0wLjU1IC0wLjI2IDAuNTUgMC4yNiA7Ci0gIExBWUVSIE1ldGFsOCA7Ci0gICAgUkVDVCAtMC42MSAtMC4yIDAuNjEgMC4yIDsKLSAgTEFZRVIgVmlhNyA7Ci0gICAgUkVDVCAtMC41MyAtMC4xOCAtMC4xNyAwLjE4IDsKLSAgICBSRUNUIDAuMTcgLTAuMTggMC41MyAwLjE4IDsKLUVORCBWSUE3XzBfWDJIX1ZICi0KLVZJQSBWSUE3XzBfWDJFX1ZIIERFRkFVTFQKLSAgICBSRVNJU1RBTkNFIDEuNjc1MDAwMDAwMCA7Ci0gIExBWUVSIE1ldGFsNyA7Ci0gICAgUkVDVCAtMC4yIC0wLjI2IDAuOSAwLjI2IDsKLSAgTEFZRVIgTWV0YWw4IDsKLSAgICBSRUNUIC0wLjI2IC0wLjIgMC45NiAwLjIgOwotICBMQVlFUiBWaWE3IDsKLSAgICBSRUNUIC0wLjE4IC0wLjE4IDAuMTggMC4xOCA7Ci0gICAgUkVDVCAwLjUyIC0wLjE4IDAuODggMC4xOCA7Ci1FTkQgVklBN18wX1gyRV9WSAotCi1WSUEgVklBN18wX1gyV19WSCBERUZBVUxUCi0gICAgUkVTSVNUQU5DRSAxLjY3NTAwMDAwMDAgOwotICBMQVlFUiBNZXRhbDcgOwotICAgIFJFQ1QgLTAuOSAtMC4yNiAwLjIgMC4yNiA7Ci0gIExBWUVSIE1ldGFsOCA7Ci0gICAgUkVDVCAtMC45NiAtMC4yIDAuMjYgMC4yIDsKLSAgTEFZRVIgVmlhNyA7Ci0gICAgUkVDVCAtMC44OCAtMC4xOCAtMC41MiAwLjE4IDsKLSAgICBSRUNUIC0wLjE4IC0wLjE4IDAuMTggMC4xOCA7Ci1FTkQgVklBN18wX1gyV19WSAotCi1WSUEgVklBN18wX1gyVl9WSCBERUZBVUxUCi0gICAgUkVTSVNUQU5DRSAxLjY3NTAwMDAwMDAgOwotICBMQVlFUiBNZXRhbDcgOwotICAgIFJFQ1QgLTAuMiAtMC42MSAwLjIgMC42MSA7Ci0gIExBWUVSIE1ldGFsOCA7Ci0gICAgUkVDVCAtMC4yNiAtMC41NSAwLjI2IDAuNTUgOwotICBMQVlFUiBWaWE3IDsKLSAgICBSRUNUIC0wLjE4IC0wLjUzIDAuMTggLTAuMTcgOwotICAgIFJFQ1QgLTAuMTggMC4xNyAwLjE4IDAuNTMgOwotRU5EIFZJQTdfMF9YMlZfVkgKLQotVklBIFZJQTdfMF9YMk5fVkggREVGQVVMVAotICAgIFJFU0lTVEFOQ0UgMS42NzUwMDAwMDAwIDsKLSAgTEFZRVIgTWV0YWw3IDsKLSAgICBSRUNUIC0wLjIgLTAuMjYgMC4yIDAuOTYgOwotICBMQVlFUiBNZXRhbDggOwotICAgIFJFQ1QgLTAuMjYgLTAuMiAwLjI2IDAuOSA7Ci0gIExBWUVSIFZpYTcgOwotICAgIFJFQ1QgLTAuMTggLTAuMTggMC4xOCAwLjE4IDsKLSAgICBSRUNUIC0wLjE4IDAuNTIgMC4xOCAwLjg4IDsKLUVORCBWSUE3XzBfWDJOX1ZICi0KLVZJQSBWSUE3XzBfWDJTX1ZIIERFRkFVTFQKLSAgICBSRVNJU1RBTkNFIDEuNjc1MDAwMDAwMCA7Ci0gIExBWUVSIE1ldGFsNyA7Ci0gICAgUkVDVCAtMC4yIC0wLjk2IDAuMiAwLjI2IDsKLSAgTEFZRVIgTWV0YWw4IDsKLSAgICBSRUNUIC0wLjI2IC0wLjkgMC4yNiAwLjIgOwotICBMQVlFUiBWaWE3IDsKLSAgICBSRUNUIC0wLjE4IC0wLjg4IDAuMTggLTAuNTIgOwotICAgIFJFQ1QgLTAuMTggLTAuMTggMC4xOCAwLjE4IDsKLUVORCBWSUE3XzBfWDJTX1ZICi0jLS0KLVZJQSBWSUE4XzBfVkggREVGQVVMVAotICAgIFJFU0lTVEFOQ0UgMS42NzUwMDAwMDAwIDsKLSAgTEFZRVIgTWV0YWw4IDsKLSAgICBSRUNUIC0wLjIgLTAuMjYgMC4yIDAuMjYgOwotICBMQVlFUiBNZXRhbDkgOwotICAgIFJFQ1QgLTAuMjYgLTAuMiAwLjI2IDAuMiA7Ci0gIExBWUVSIFZpYTggOwotICAgIFJFQ1QgLTAuMTggLTAuMTggMC4xOCAwLjE4IDsKLUVORCBWSUE4XzBfVkgKLQotVklBIFZJQThfMF9YMkhfVkggREVGQVVMVAotICAgIFJFU0lTVEFOQ0UgMS42NzUwMDAwMDAwIDsKLSAgTEFZRVIgTWV0YWw4IDsKLSAgICBSRUNUIC0wLjU1IC0wLjI2IDAuNTUgMC4yNiA7Ci0gIExBWUVSIE1ldGFsOSA7Ci0gICAgUkVDVCAtMC42MSAtMC4yIDAuNjEgMC4yIDsKLSAgTEFZRVIgVmlhOCA7Ci0gICAgUkVDVCAtMC41MyAtMC4xOCAtMC4xNyAwLjE4IDsKLSAgICBSRUNUIDAuMTcgLTAuMTggMC41MyAwLjE4IDsKLUVORCBWSUE4XzBfWDJIX1ZICi0KLVZJQSBWSUE4XzBfWDJFX1ZIIERFRkFVTFQKLSAgICBSRVNJU1RBTkNFIDEuNjc1MDAwMDAwMCA7Ci0gIExBWUVSIE1ldGFsOCA7Ci0gICAgUkVDVCAtMC4yIC0wLjI2IDAuOSAwLjI2IDsKLSAgTEFZRVIgTWV0YWw5IDsKLSAgICBSRUNUIC0wLjI2IC0wLjIgMC45NiAwLjIgOwotICBMQVlFUiBWaWE4IDsKLSAgICBSRUNUIC0wLjE4IC0wLjE4IDAuMTggMC4xOCA7Ci0gICAgUkVDVCAwLjUyIC0wLjE4IDAuODggMC4xOCA7Ci1FTkQgVklBOF8wX1gyRV9WSAotCi1WSUEgVklBOF8wX1gyV19WSCBERUZBVUxUCi0gICAgUkVTSVNUQU5DRSAxLjY3NTAwMDAwMDAgOwotICBMQVlFUiBNZXRhbDggOwotICAgIFJFQ1QgLTAuOSAtMC4yNiAwLjIgMC4yNiA7Ci0gIExBWUVSIE1ldGFsOSA7Ci0gICAgUkVDVCAtMC45NiAtMC4yIDAuMjYgMC4yIDsKLSAgTEFZRVIgVmlhOCA7Ci0gICAgUkVDVCAtMC44OCAtMC4xOCAtMC41MiAwLjE4IDsKLSAgICBSRUNUIC0wLjE4IC0wLjE4IDAuMTggMC4xOCA7Ci1FTkQgVklBOF8wX1gyV19WSAotCi1WSUEgVklBOF8wX1gyVl9WSCBERUZBVUxUCi0gICAgUkVTSVNUQU5DRSAxLjY3NTAwMDAwMDAgOwotICBMQVlFUiBNZXRhbDggOwotICAgIFJFQ1QgLTAuMiAtMC42MSAwLjIgMC42MSA7Ci0gIExBWUVSIE1ldGFsOSA7Ci0gICAgUkVDVCAtMC4yNiAtMC41NSAwLjI2IDAuNTUgOwotICBMQVlFUiBWaWE4IDsKLSAgICBSRUNUIC0wLjE4IC0wLjUzIDAuMTggLTAuMTcgOwotICAgIFJFQ1QgLTAuMTggMC4xNyAwLjE4IDAuNTMgOwotRU5EIFZJQThfMF9YMlZfVkgKLQotVklBIFZJQThfMF9YMk5fVkggREVGQVVMVAotICAgIFJFU0lTVEFOQ0UgMS42NzUwMDAwMDAwIDsKLSAgTEFZRVIgTWV0YWw4IDsKLSAgICBSRUNUIC0wLjIgLTAuMjYgMC4yIDAuOTYgOwotICBMQVlFUiBNZXRhbDkgOwotICAgIFJFQ1QgLTAuMjYgLTAuMiAwLjI2IDAuOSA7Ci0gIExBWUVSIFZpYTggOwotICAgIFJFQ1QgLTAuMTggLTAuMTggMC4xOCAwLjE4IDsKLSAgICBSRUNUIC0wLjE4IDAuNTIgMC4xOCAwLjg4IDsKLUVORCBWSUE4XzBfWDJOX1ZICi0KLVZJQSBWSUE4XzBfWDJTX1ZIIERFRkFVTFQKLSAgICBSRVNJU1RBTkNFIDEuNjc1MDAwMDAwMCA7Ci0gIExBWUVSIE1ldGFsOCA7Ci0gICAgUkVDVCAtMC4yIC0wLjk2IDAuMiAwLjI2IDsKLSAgTEFZRVIgTWV0YWw5IDsKLSAgICBSRUNUIC0wLjI2IC0wLjkgMC4yNiAwLjIgOwotICBMQVlFUiBWaWE4IDsKLSAgICBSRUNUIC0wLjE4IC0wLjg4IDAuMTggLTAuNTIgOwotICAgIFJFQ1QgLTAuMTggLTAuMTggMC4xOCAwLjE4IDsKLUVORCBWSUE4XzBfWDJTX1ZICi0KLU1BWFZJQVNUQUNLIDQgUkFOR0UgTWV0YWwxIE1ldGFsOSA7Ci0jVklBUlVMRSBNMTFfTTEwIEdFTkVSQVRFIERFRkFVTFQKLSMgIExBWUVSIE1ldGFsMTAgOwotIyAgICBFTkNMT1NVUkUgMC4wMTUgMC4wNCA7Ci0jICBMQVlFUiBNZXRhbDExIDsKLSMgICAgRU5DTE9TVVJFIDAuMDMgMC4wNSA7Ci0jICBMQVlFUiBWaWExMCA7Ci0jICAgIFJFQ1QgLTAuMDkgLTAuMDkgMC4wOSAwLjA5IDsKLSMgICAgU1BBQ0lORyAwLjM2IEJZIDAuMzYgOwotIyAgICBSRVNJU1RBTkNFIDAuMDQwMDAwIDsKLSNFTkQgTTExX00xMAotCi0jVklBUlVMRSBNMTBfTTkgR0VORVJBVEUgREVGQVVMVAotIyAgTEFZRVIgTWV0YWw5IDsKLSMgICAgRU5DTE9TVVJFIDAuMDE1IDAuMDQgOwotIyAgTEFZRVIgTWV0YWwxMCA7Ci0jICAgIEVOQ0xPU1VSRSAwLjAzIDAuMDUgOwotIyAgTEFZRVIgVmlhOSA7Ci0jICAgIFJFQ1QgLTAuMDkgLTAuMDkgMC4wOSAwLjA5IDsKLSMgICAgU1BBQ0lORyAwLjM2IEJZIDAuMzYgOwotIyAgICBSRVNJU1RBTkNFIDAuMjAwMDAwIDsKLSNFTkQgTTEwX005Ci0KLVZJQVJVTEUgTTlfTTggR0VORVJBVEUgREVGQVVMVAotICBMQVlFUiBNZXRhbDggOwotICAgIEVOQ0xPU1VSRSAwLjAwNSAwLjAzIDsKLSAgTEFZRVIgVmlhOCA7Ci0gICAgUkVDVCAtMC4wMzUgLTAuMDM1IDAuMDM1IDAuMDM1IDsKLSAgICBTUEFDSU5HIDAuMTQgQlkgMC4xNCA7Ci0gICAgUkVTSVNUQU5DRSAwLjIwMDAwMCA7Ci0gIExBWUVSIE1ldGFsOSA7Ci0gICAgRU5DTE9TVVJFIDAuMDA1IDAuMDMgOwotRU5EIE05X004Ci0KLVZJQVJVTEUgTThfTTcgR0VORVJBVEUgREVGQVVMVAotICBMQVlFUiBNZXRhbDcgOwotICAgIEVOQ0xPU1VSRSAwLjAwNSAwLjAzIDsKLSAgTEFZRVIgVmlhNyA7Ci0gICAgUkVDVCAtMC4wMzUgLTAuMDM1IDAuMDM1IDAuMDM1IDsKLSAgICBTUEFDSU5HIDAuMTQgQlkgMC4xNCA7Ci0gICAgUkVTSVNUQU5DRSA1LjAwMDAwMCA7Ci0gIExBWUVSIE1ldGFsOCA7Ci0gICAgRU5DTE9TVVJFIDAuMDA1IDAuMDMgOwotRU5EIE04X003Ci0KLVZJQVJVTEUgTTdfTTYgR0VORVJBVEUgREVGQVVMVAotICBMQVlFUiBNZXRhbDYgOwotICAgIEVOQ0xPU1VSRSAwLjAwNSAwLjAzIDsKLSAgTEFZRVIgVmlhNiA7Ci0gICAgUkVDVCAtMC4wMzUgLTAuMDM1IDAuMDM1IDAuMDM1IDsKLSAgICBTUEFDSU5HIDAuMTQgQlkgMC4xNCA7Ci0gICAgUkVTSVNUQU5DRSA1LjAwMDAwMCA7Ci0gIExBWUVSIE1ldGFsNyA7Ci0gICAgRU5DTE9TVVJFIDAuMDA1IDAuMDMgOwotRU5EIE03X002Ci0KLVZJQVJVTEUgTTZfTTUgR0VORVJBVEUgREVGQVVMVAotICBMQVlFUiBNZXRhbDUgOwotICAgIEVOQ0xPU1VSRSAwLjAwNSAwLjAzIDsKLSAgTEFZRVIgVmlhNSA7Ci0gICAgUkVDVCAtMC4wMzUgLTAuMDM1IDAuMDM1IDAuMDM1IDsKLSAgICBTUEFDSU5HIDAuMTQgQlkgMC4xNCA7Ci0gICAgUkVTSVNUQU5DRSA1LjAwMDAwMCA7Ci0gIExBWUVSIE1ldGFsNiA7Ci0gICAgRU5DTE9TVVJFIDAuMDA1IDAuMDMgOwotRU5EIE02X001Ci0KLVZJQVJVTEUgTTVfTTQgR0VORVJBVEUgREVGQVVMVAotICBMQVlFUiBNZXRhbDQgOwotICAgIEVOQ0xPU1VSRSAwLjAwNSAwLjAzIDsKLSAgTEFZRVIgVmlhNCA7Ci0gICAgUkVDVCAtMC4wMzUgLTAuMDM1IDAuMDM1IDAuMDM1IDsKLSAgICBTUEFDSU5HIDAuMTQgQlkgMC4xNCA7Ci0gICAgUkVTSVNUQU5DRSA1LjAwMDAwMCA7Ci0gIExBWUVSIE1ldGFsNSA7Ci0gICAgRU5DTE9TVVJFIDAuMDA1IDAuMDMgOwotRU5EIE01X000Ci0KLVZJQVJVTEUgTTRfTTMgR0VORVJBVEUgREVGQVVMVAotICBMQVlFUiBNZXRhbDMgOwotICAgIEVOQ0xPU1VSRSAwLjAwNSAwLjAzIDsKLSAgTEFZRVIgVmlhMyA7Ci0gICAgUkVDVCAtMC4wMzUgLTAuMDM1IDAuMDM1IDAuMDM1IDsKLSAgICBTUEFDSU5HIDAuMTQgQlkgMC4xNCA7Ci0gICAgUkVTSVNUQU5DRSA1LjAwMDAwMCA7Ci0gIExBWUVSIE1ldGFsNCA7Ci0gICAgRU5DTE9TVVJFIDAuMDA1IDAuMDMgOwotRU5EIE00X00zCi0KLVZJQVJVTEUgTTNfTTIgR0VORVJBVEUgREVGQVVMVAotICBMQVlFUiBNZXRhbDIgOwotICAgIEVOQ0xPU1VSRSAwLjAwNSAwLjAzIDsKLSAgTEFZRVIgVmlhMiA7Ci0gICAgUkVDVCAtMC4wMzUgLTAuMDM1IDAuMDM1IDAuMDM1IDsKLSAgICBTUEFDSU5HIDAuMTQgQlkgMC4xNCA7Ci0gICAgUkVTSVNUQU5DRSA1LjAwMDAwMCA7Ci0gIExBWUVSIE1ldGFsMyA7Ci0gICAgRU5DTE9TVVJFIDAuMDA1IDAuMDMgOwotRU5EIE0zX00yCi0KLVZJQVJVTEUgTTJfTTEgR0VORVJBVEUgREVGQVVMVAotICBMQVlFUiBNZXRhbDEgOwotICAgIEVOQ0xPU1VSRSAwLjAwNSAwLjAzIDsKLSAgTEFZRVIgVmlhMSA7Ci0gICAgUkVDVCAtMC4wMzUgLTAuMDM1IDAuMDM1IDAuMDM1IDsKLSAgICBTUEFDSU5HIDAuMTQgQlkgMC4xNCA7Ci0gICAgUkVTSVNUQU5DRSA1LjAwMDAwMCA7Ci0gIExBWUVSIE1ldGFsMiA7Ci0gICAgRU5DTE9TVVJFIDAuMDA1IDAuMDMgOwotRU5EIE0yX00xCi0KLSNWSUFSVUxFIE0xX1BPIEdFTkVSQVRFCi0jICBMQVlFUiBQb2x5IDsKLSMgICAgRU5DTE9TVVJFIDAuMDIgMC4wMyA7Ci0jICBMQVlFUiBDb250IDsKLSMgICAgUkVDVCAtMC4wMyAtMC4wMyAwLjAzIDAuMDMgOwotIyAgICBTUEFDSU5HIDAuMTIgQlkgMC4xMiA7Ci0jICAgIFJFU0lTVEFOQ0UgNDEuMDAwMDAwIDsKLSMgIExBWUVSIE1ldGFsMSA7Ci0jICAgIEVOQ0xPU1VSRSAwIDAuMDMgOwotI0VORCBNMV9QTwotCi0jVklBUlVMRSBNMV9ESUZGIEdFTkVSQVRFCi0jICBMQVlFUiBPeGlkZSA7Ci0jICAgIEVOQ0xPU1VSRSAwLjAzIDAuMDMgOwotIyAgTEFZRVIgQ29udCA7Ci0jICAgIFJFQ1QgLTAuMDMgLTAuMDMgMC4wMyAwLjAzIDsKLSMgICAgU1BBQ0lORyAwLjEyIEJZIDAuMTIgOwotIyAgICBSRVNJU1RBTkNFIDU2LjAwMDAwMCA7Ci0jICBMQVlFUiBNZXRhbDEgOwotIyAgICBFTkNMT1NVUkUgMCAwLjAzIDsKLSNFTkQgTTFfRElGRgotCi0jVklBUlVMRSBNMV9QU1VCIEdFTkVSQVRFCi0jICBMQVlFUiBPeGlkZSA7Ci0jICAgIEVOQ0xPU1VSRSAwLjAzIDAuMDMgOwotIyAgTEFZRVIgQ29udCA7Ci0jICAgIFJFQ1QgLTAuMDMgLTAuMDMgMC4wMyAwLjAzIDsKLSMgICAgU1BBQ0lORyAwLjEyIEJZIDAuMTIgOwotIyAgICBSRVNJU1RBTkNFIDU2LjAwMDAwMCA7Ci0jICBMQVlFUiBNZXRhbDEgOwotIyAgICBFTkNMT1NVUkUgMCAwLjAzIDsKLSNFTkQgTTFfUFNVQgotCi0jVklBUlVMRSBNMV9QSU1QIEdFTkVSQVRFCi0jICBMQVlFUiBPeGlkZSA7Ci0jICAgIEVOQ0xPU1VSRSAwLjAzIDAuMDMgOwotIyAgTEFZRVIgQ29udCA7Ci0jICAgIFJFQ1QgLTAuMDMgLTAuMDMgMC4wMyAwLjAzIDsKLSMgICAgU1BBQ0lORyAwLjEyIEJZIDAuMTIgOwotIyAgICBSRVNJU1RBTkNFIDU2LjAwMDAwMCA7Ci0jICBMQVlFUiBNZXRhbDEgOwotIyAgICBFTkNMT1NVUkUgMCAwLjAzIDsKLSNFTkQgTTFfUElNUAotCi0jVklBUlVMRSBNMV9OSU1QIEdFTkVSQVRFCi0jICBMQVlFUiBPeGlkZSA7Ci0jICAgIEVOQ0xPU1VSRSAwLjAzIDAuMDMgOwotIyAgTEFZRVIgQ29udCA7Ci0jICAgIFJFQ1QgLTAuMDMgLTAuMDMgMC4wMyAwLjAzIDsKLSMgICAgU1BBQ0lORyAwLjEyIEJZIDAuMTIgOwotIyAgICBSRVNJU1RBTkNFIDU2LjAwMDAwMCA7Ci0jICBMQVlFUiBNZXRhbDEgOwotIyAgICBFTkNMT1NVUkUgMCAwLjAzIDsKLSNFTkQgTTFfTklNUAotCi0jVklBUlVMRSBNMV9OV0VMTCBHRU5FUkFURQotIyAgTEFZRVIgT3hpZGUgOwotIyAgICBFTkNMT1NVUkUgMC4wMyAwLjAzIDsKLSMgIExBWUVSIENvbnQgOwotIyAgICBSRUNUIC0wLjAzIC0wLjAzIDAuMDMgMC4wMyA7Ci0jICAgIFNQQUNJTkcgMC4xMiBCWSAwLjEyIDsKLSMgICAgUkVTSVNUQU5DRSA1Ni4wMDAwMDAgOwotIyAgTEFZRVIgTWV0YWwxIDsKLSMgICAgRU5DTE9TVVJFIDAgMC4wMyA7Ci0jRU5EIE0xX05XRUxMCi0KLU5PTkRFRkFVTFRSVUxFIFZMTURlZmF1bHRTZXR1cAotICBMQVlFUiBNZXRhbDEKLSAgICBXSURUSCAwLjA2IDsKLSAgRU5EIE1ldGFsMQotICBMQVlFUiBNZXRhbDIKLSAgICBXSURUSCAwLjA3IDsKLSAgRU5EIE1ldGFsMgotICBMQVlFUiBNZXRhbDMKLSAgICBXSURUSCAwLjA3IDsKLSAgRU5EIE1ldGFsMwotICBMQVlFUiBNZXRhbDQKLSAgICBXSURUSCAwLjA3IDsKLSAgRU5EIE1ldGFsNAotICBMQVlFUiBNZXRhbDUKLSAgICBXSURUSCAwLjA3IDsKLSAgRU5EIE1ldGFsNQotICBMQVlFUiBNZXRhbDYKLSAgICBXSURUSCAwLjA3IDsKLSAgRU5EIE1ldGFsNgotICBMQVlFUiBNZXRhbDcKLSAgICBXSURUSCAwLjA3IDsKLSAgRU5EIE1ldGFsNwotICBMQVlFUiBNZXRhbDgKLSAgICBXSURUSCAwLjA3IDsKLSAgRU5EIE1ldGFsOAotICBMQVlFUiBNZXRhbDkKLSAgICBXSURUSCAwLjA3IDsKLSAgRU5EIE1ldGFsOQotIyAgTEFZRVIgTWV0YWwxMAotIyAgICBXSURUSCAwLjIyIDsKLSMgIEVORCBNZXRhbDEwCi0jICBMQVlFUiBNZXRhbDExCi0jICAgIFdJRFRIIDAuMjIgOwotIyAgRU5EIE1ldGFsMTEKLSMgIFVTRVZJQVJVTEUgTTFfUE8gOwotIyAgVVNFVklBUlVMRSBNMV9OV0VMTCA7Ci0jICBVU0VWSUFSVUxFIE0xX1BTVUIgOwotIyAgVVNFVklBUlVMRSBNMV9OSU1QIDsKLSMgIFVTRVZJQVJVTEUgTTFfUElNUCA7Ci0jICBVU0VWSUFSVUxFIE0xX0RJRkYgOwotICBVU0VWSUFSVUxFIE0yX00xIDsKLSAgVVNFVklBUlVMRSBNM19NMiA7Ci0gIFVTRVZJQVJVTEUgTTRfTTMgOwotICBVU0VWSUFSVUxFIE01X000IDsKLSAgVVNFVklBUlVMRSBNNl9NNSA7Ci0gIFVTRVZJQVJVTEUgTTdfTTYgOwotICBVU0VWSUFSVUxFIE04X003IDsKLSAgVVNFVklBUlVMRSBNOV9NOCA7Ci0jICBVU0VWSUFSVUxFIE0xMF9NOSA7Ci0jICBVU0VWSUFSVUxFIE0xMV9NMTAgOwotRU5EIFZMTURlZmF1bHRTZXR1cAotU0lURSBDb3JlU2l0ZQotICBDTEFTUyBDT1JFIDsKLSAgU0laRSAwLjIgQlkgMS43MSA7Ci1FTkQgQ29yZVNpdGUKLQotTUFDUk8gT0FJMkJCMVg0Ci0gIENMQVNTIENPUkUgOwotICBPUklHSU4gMCAwIDsKLSAgRk9SRUlHTiBPQUkyQkIxWDQgMCAwIDsKLSAgU0laRSAyLjYgQlkgMS43MSA7Ci0gIFNZTU1FVFJZIFggWSA7Ci0gIFNJVEUgQ29yZVNpdGUgOwotICBQSU4gWQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gT1VUUFVUIDsKLSAgICBBTlRFTk5BRElGRkFSRUEgMS43Mjg1ICBMQVlFUiBNZXRhbDEgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4xMTUgMC41OSAwLjE3NSAxLjIyIDsKLSAgICAgICAgUkVDVCAwLjA2IDAuOTggMC4xNzUgMS4yMiA7Ci0gICAgICAgIFJFQ1QgMC4zMzUgMS4xNiAwLjM5NSAxLjQ0IDsKLSAgICAgICAgUkVDVCAwLjUxIDAuNTcgMC42MyAwLjY1IDsKLSAgICAgICAgUkVDVCAwLjc0NSAxLjE2IDAuODA1IDEuNDQgOwotICAgICAgICBSRUNUIDAuMTE1IDAuNTkgMS4xNDUgMC42NSA7Ci0gICAgICAgIFJFQ1QgMS4xNjUgMS4xNiAxLjIyNSAxLjQ0IDsKLSAgICAgICAgUkVDVCAxLjA5NSAwLjU3IDEuMzYgMC42MyA7Ci0gICAgICAgIFJFQ1QgMC4wNiAxLjE2IDEuNjM1IDEuMjIgOwotICAgICAgICBSRUNUIDEuNTc1IDEuMTYgMS42MzUgMS40NCA7Ci0gICAgRU5ECi0gIEVORCBZCi0gIFBJTiBBME4KLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDEuNzk1IDAuNjI1IDEuOTY1IDAuNzA1IDsKLSAgICAgICAgUkVDVCAxLjg4NSAwLjYyNSAxLjk2NSAwLjkgOwotICAgICAgICBSRUNUIDEuODg1IDAuODIgMi4xIDAuOSA7Ci0gICAgRU5ECi0gIEVORCBBME4KLSAgUElOIEExTgotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMi4zNiAwLjc2IDIuNDQgMS4wNiA7Ci0gICAgICAgIFJFQ1QgMi4zNiAwLjk4IDIuNTQgMS4wNiA7Ci0gICAgICAgIFJFQ1QgMi40NiAwLjk4IDIuNTQgMS4xNiA7Ci0gICAgRU5ECi0gIEVORCBBMU4KLSAgUElOIEIwCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjQ2IDAuNzUgMC41NCAwLjkyIDsKLSAgICAgICAgUkVDVCAwLjI3NSAwLjc1IDEuNjk1IDAuODEgOwotICAgIEVORAotICBFTkQgQjAKLSAgUElOIFZERAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBQT1dFUiA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZERCBWREQhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDEuNjUgMi42IDEuNzEgOwotICAgIEVORAotICBFTkQgVkRECi0gIFBJTiBWU1MKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgR1JPVU5EIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVlNTIFZTUyEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMC4wMCAyLjYgMC4wNiA7Ci0gICAgRU5ECi0gIEVORCBWU1MKLUVORCBPQUkyQkIxWDQKLQotTUFDUk8gT0EyMlgyCi0gIENMQVNTIENPUkUgOwotICBPUklHSU4gMCAwIDsKLSAgRk9SRUlHTiBPQTIyWDIgMCAwIDsKLSAgU0laRSAyIEJZIDEuNzEgOwotICBTWU1NRVRSWSBYIFkgOwotICBTSVRFIENvcmVTaXRlIDsKLSAgUElOIFkKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIE9VVFBVVCA7Ci0gICAgQU5URU5OQURJRkZBUkVBIDEuNzI4NSAgTEFZRVIgTWV0YWwxIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDEuNDQgMC42NyAxLjUgMS4zOTUgOwotICAgICAgICBSRUNUIDEuNDYgMC41NyAxLjU0IDAuNzMgOwotICAgICAgICBSRUNUIDEuNDYgMC41NyAxLjYxNSAwLjYzIDsKLSAgICBFTkQKLSAgRU5EIFkKLSAgUElOIEIwCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAxIDAuOTggMS4wOCAxLjE3IDsKLSAgICAgICAgUkVDVCAxIDAuOTggMS4zNCAxLjA2IDsKLSAgICAgICAgUkVDVCAxLjI2IDAuOTggMS4zNCAxLjExIDsKLSAgICBFTkQKLSAgRU5EIEIwCi0gIFBJTiBBMQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC40NiAwLjY3NSAwLjU0IDEuMTc1IDsKLSAgICBFTkQKLSAgRU5EIEExCi0gIFBJTiBBMAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4yNiAwLjY3NSAwLjM0IDEuMTc1IDsKLSAgICBFTkQKLSAgRU5EIEEwCi0gIFBJTiBCMQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC42NiAwLjY3NSAwLjc0IDEuMTc1IDsKLSAgICBFTkQKLSAgRU5EIEIxCi0gIFBJTiBWREQKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgUE9XRVIgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWREQgVkREISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAxLjY1IDIgMS43MSA7Ci0gICAgRU5ECi0gIEVORCBWREQKLSAgUElOIFZTUwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBHUk9VTkQgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWU1MgVlNTISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAwLjAwIDIgMC4wNiA7Ci0gICAgRU5ECi0gIEVORCBWU1MKLUVORCBPQTIyWDIKLQotTUFDUk8gTkFORDNYOAotICBDTEFTUyBDT1JFIDsKLSAgT1JJR0lOIDAgMCA7Ci0gIEZPUkVJR04gTkFORDNYOCAwIDAgOwotICBTSVpFIDQuOCBCWSAxLjcxIDsKLSAgU1lNTUVUUlkgWCBZIDsKLSAgU0lURSBDb3JlU2l0ZSA7Ci0gIFBJTiBZCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBPVVRQVVQgOwotICAgIEFOVEVOTkFESUZGQVJFQSAxLjcyODUgIExBWUVSIE1ldGFsMSA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjMxNSAxLjE5NSAwLjM3NSAxLjQ2IDsKLSAgICAgICAgUkVDVCAwLjc2IDEuMjEgMC44MiAxLjMzIDsKLSAgICAgICAgUkVDVCAxLjE3IDEuMjEgMS4yMyAxLjMzIDsKLSAgICAgICAgUkVDVCAxLjU4IDEuMDYgMS42NCAxLjQ2IDsKLSAgICAgICAgUkVDVCAyLjAyNSAxLjIxIDIuMDg1IDEuMzMgOwotICAgICAgICBSRUNUIDIuNDQgMS4yMSAyLjUgMS4zMyA7Ci0gICAgICAgIFJFQ1QgMi44NSAxLjIxIDIuOTEgMS4zMyA7Ci0gICAgICAgIFJFQ1QgMy4yNiAxLjIxIDMuMzIgMS4zMyA7Ci0gICAgICAgIFJFQ1QgMy43MDUgMS4wNiAzLjc2NSAxLjQ2IDsKLSAgICAgICAgUkVDVCAwLjMxNSAxLjIxIDQuMTc1IDEuMjcgOwotICAgICAgICBSRUNUIDQuMTE1IDEuMDE1IDQuMTc1IDEuNDYgOwotICAgICAgICBSRUNUIDQuNDYgMC45OCA0LjYyNSAxLjExIDsKLSAgICAgICAgUkVDVCA0LjExNSAxLjA1IDQuNjI1IDEuMTEgOwotICAgICAgICBSRUNUIDAuNzc1IDAuNDA1IDQuNjI1IDAuNDY1IDsKLSAgICAgICAgUkVDVCA0LjU2NSAwLjQwNSA0LjYyNSAxLjQ2IDsKLSAgICAgICAgUkVDVCA0LjUyNSAwLjk4IDQuNjI1IDEuNDYgOwotICAgIEVORAotICBFTkQgWQotICBQSU4gQQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4yNiAwLjc5IDAuMzQgMC45MiA7Ci0gICAgICAgIFJFQ1QgMC4yOCAwLjc5IDAuMzQgMS4wOTUgOwotICAgICAgICBSRUNUIDAuMjggMS4wMzUgMC41MzUgMS4wOTUgOwotICAgICAgICBSRUNUIDEuMjggMC44ODUgMS4zNCAxLjExIDsKLSAgICAgICAgUkVDVCAwLjQ3NSAxLjA1IDEuMzQgMS4xMSA7Ci0gICAgICAgIFJFQ1QgMS4yOCAwLjg4NSAxLjQgMC45NiA7Ci0gICAgICAgIFJFQ1QgMS4yOCAwLjkgMS44IDAuOTYgOwotICAgICAgICBSRUNUIDEuNzQgMC45IDEuOCAxLjExIDsKLSAgICAgICAgUkVDVCAyLjU1IDAuODg1IDIuNjcgMC45NDUgOwotICAgICAgICBSRUNUIDIuNjEgMC44ODUgMi42NyAxLjExIDsKLSAgICAgICAgUkVDVCAzLjU0NSAwLjkgMy42MDUgMS4xMSA7Ci0gICAgICAgIFJFQ1QgMS43NCAxLjA1IDMuNjA1IDEuMTEgOwotICAgICAgICBSRUNUIDMuNTQ1IDAuOSAzLjc5IDAuOTYgOwotICAgICAgICBSRUNUIDMuNzMgMC44ODUgMy44NiAwLjk0NSA7Ci0gICAgRU5ECi0gIEVORCBBCi0gIFBJTiBCCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjQ1IDAuODc1IDAuNjk1IDAuOTM1IDsKLSAgICAgICAgUkVDVCAxLjA0IDAuNzI1IDEuMSAwLjk1IDsKLSAgICAgICAgUkVDVCAwLjYzNSAwLjg5IDEuMSAwLjk1IDsKLSAgICAgICAgUkVDVCAxLjA0IDAuNzI1IDEuNTYgMC43ODUgOwotICAgICAgICBSRUNUIDEuNSAwLjc0IDEuOTYgMC44IDsKLSAgICAgICAgUkVDVCAxLjkgMC43NCAxLjk2IDAuOTUgOwotICAgICAgICBSRUNUIDIuMjggMC43NCAyLjM0IDAuOTUgOwotICAgICAgICBSRUNUIDEuOSAwLjg5IDIuMzQgMC45NSA7Ci0gICAgICAgIFJFQ1QgMi4yOCAwLjc0IDIuNCAwLjggOwotICAgICAgICBSRUNUIDIuMzQgMC43MjUgMi44MyAwLjc4NSA7Ci0gICAgICAgIFJFQ1QgMi43NyAwLjc0IDMuMDMgMC44IDsKLSAgICAgICAgUkVDVCAyLjk3IDAuNzQgMy4wMyAwLjk1IDsKLSAgICAgICAgUkVDVCAzLjM4NSAwLjc0IDMuNDQ1IDAuOTUgOwotICAgICAgICBSRUNUIDIuOTcgMC44OSAzLjQ0NSAwLjk1IDsKLSAgICAgICAgUkVDVCAzLjM4NSAwLjc0IDMuNjMgMC44IDsKLSAgICAgICAgUkVDVCAzLjUxIDAuNzI1IDQuMjQ1IDAuNzg1IDsKLSAgICAgICAgUkVDVCA0LjAzNSAwLjcyNSA0LjI0NSAwLjg5NSA7Ci0gICAgRU5ECi0gIEVORCBCCi0gIFBJTiBDCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjg2IDAuNiAwLjk0IDAuNzkgOwotICAgICAgICBSRUNUIDAuNzk1IDAuNzMgMC45NCAwLjc5IDsKLSAgICAgICAgUkVDVCAyLjA2IDAuNTY1IDIuMTIgMC43OSA7Ci0gICAgICAgIFJFQ1QgMi4wNiAwLjczIDIuMTggMC43OSA7Ci0gICAgICAgIFJFQ1QgMy4yMjUgMC41NjUgMy4yODUgMC43OSA7Ci0gICAgICAgIFJFQ1QgMy4xNjUgMC43MyAzLjI4NSAwLjc5IDsKLSAgICAgICAgUkVDVCAwLjg4IDAuNTY1IDQuNDA1IDAuNjI1IDsKLSAgICAgICAgUkVDVCA0LjM0NSAwLjU2NSA0LjQwNSAwLjggOwotICAgICAgICBSRUNUIDQuMzQ1IDAuNzQgNC40NjUgMC44IDsKLSAgICBFTkQKLSAgRU5EIEMKLSAgUElOIFZERAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBQT1dFUiA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZERCBWREQhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDEuNjUgNC44IDEuNzEgOwotICAgIEVORAotICBFTkQgVkRECi0gIFBJTiBWU1MKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgR1JPVU5EIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVlNTIFZTUyEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMC4wMCA0LjggMC4wNiA7Ci0gICAgRU5ECi0gIEVORCBWU1MKLUVORCBOQU5EM1g4Ci0KLU1BQ1JPIFNERkZSWDQKLSAgQ0xBU1MgQ09SRSA7Ci0gIE9SSUdJTiAwIDAgOwotICBGT1JFSUdOIFNERkZSWDQgMCAwIDsKLSAgU0laRSA3LjggQlkgMS43MSA7Ci0gIFNZTU1FVFJZIFggWSA7Ci0gIFNJVEUgQ29yZVNpdGUgOwotICBQSU4gUU4KLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIE9VVFBVVCA7Ci0gICAgQU5URU5OQURJRkZBUkVBIDEuNzI4NSAgTEFZRVIgTWV0YWwxIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDYuNjYgMC40ODUgNi43MiAxLjM0IDsKLSAgICAgICAgUkVDVCA2LjY2IDAuNzkgNi43NCAxLjM0IDsKLSAgICAgICAgUkVDVCA2LjY2IDAuOTUgNi43NiAxLjM0IDsKLSAgICAgICAgUkVDVCA2LjY2IDAuOTUgNy4xNyAxLjAxIDsKLSAgICAgICAgUkVDVCA3LjExIDAuOTUgNy4xNyAxLjM0IDsKLSAgICAgICAgUkVDVCA2LjYgMC40ODUgNy4xOSAwLjU0NSA7Ci0gICAgRU5ECi0gIEVORCBRTgotICBQSU4gUQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gT1VUUFVUIDsKLSAgICBBTlRFTk5BRElGRkFSRUEgMS43Mjg1ICBMQVlFUiBNZXRhbDEgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgNS44NiAwLjQ4NSA1LjkyIDEuMzQgOwotICAgICAgICBSRUNUIDUuODYgMC43OSA1Ljk0IDEuMzQgOwotICAgICAgICBSRUNUIDUuNjYgMC40ODUgNi4yNSAwLjU0NSA7Ci0gICAgICAgIFJFQ1QgNS44NiAwLjk1IDYuMzUgMS4wMSA7Ci0gICAgICAgIFJFQ1QgNi4yOSAwLjk1IDYuMzUgMS4zNCA7Ci0gICAgRU5ECi0gIEVORCBRCi0gIFBJTiBSTgotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMy42MzUgMC42MjUgMy43NjUgMC43MDUgOwotICAgICAgICBSRUNUIDMuNzA1IDAuMjk1IDMuNzY1IDAuODY1IDsKLSAgICAgICAgUkVDVCAzLjIyNSAwLjgwNSAzLjc2NSAwLjg2NSA7Ci0gICAgICAgIFJFQ1QgMy43MDUgMC4yOTUgNC40NyAwLjM1NSA7Ci0gICAgICAgIFJFQ1QgNC40MSAwLjI5NSA0LjQ3IDAuNDUgOwotICAgICAgICBSRUNUIDQuNDEgMC4zOSA0Ljc4NSAwLjQ1IDsKLSAgICAgICAgUkVDVCA0LjcyNSAwLjM5IDQuNzg1IDAuNzA1IDsKLSAgICAgICAgUkVDVCA0LjcyNSAwLjY0IDUuNDEgMC43MDUgOwotICAgICAgICBSRUNUIDQuNjY1IDAuNjQ1IDUuNDEgMC43MDUgOwotICAgICAgICBSRUNUIDUuMzUgMC42NCA1LjQxIDAuNzYgOwotICAgIEVORAotICBFTkQgUk4KLSAgUElOIENLCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAxLjQ2IDAuNiAxLjU0IDEuMSA7Ci0gICAgRU5ECi0gIEVORCBDSwotICBQSU4gRAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMS4yNiAwLjYgMS4zNCAxLjEgOwotICAgIEVORAotICBFTkQgRAotICBQSU4gU0kKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuNDYgMC43NCAwLjU0IDEuMSA7Ci0gICAgICAgIFJFQ1QgMC40NiAwLjc5IDAuNjggMS4xIDsKLSAgICBFTkQKLSAgRU5EIFNJCi0gIFBJTiBTRQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4yNiAwLjYgMC4zNCAwLjczIDsKLSAgICAgICAgUkVDVCAwLjU0IDAuMjU1IDAuNiAwLjY0IDsKLSAgICAgICAgUkVDVCAwLjI4IDAuNTggMC42OTUgMC42NCA7Ci0gICAgICAgIFJFQ1QgMC42MzUgMC42MjUgMC43NTUgMC42ODUgOwotICAgICAgICBSRUNUIDAuNTQgMC4yNTUgMS4xNiAwLjMxNSA7Ci0gICAgICAgIFJFQ1QgMS4xIDAuMjU1IDEuMTYgMS4xIDsKLSAgICBFTkQKLSAgRU5EIFNFCi0gIFBJTiBWREQKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgUE9XRVIgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWREQgVkREISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAxLjY1IDcuOCAxLjcxIDsKLSAgICBFTkQKLSAgRU5EIFZERAotICBQSU4gVlNTCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIEdST1VORCA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZTUyBWU1MhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDAuMDAgNy44IDAuMDYgOwotICAgIEVORAotICBFTkQgVlNTCi1FTkQgU0RGRlJYNAotCi1NQUNSTyBUTEFUU1JYMQotICBDTEFTUyBDT1JFIDsKLSAgT1JJR0lOIDAgMCA7Ci0gIEZPUkVJR04gVExBVFNSWDEgMCAwIDsKLSAgU0laRSAzLjggQlkgMS43MSA7Ci0gIFNZTU1FVFJZIFggWSA7Ci0gIFNJVEUgQ29yZVNpdGUgOwotICBQSU4gUU4KLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIE9VVFBVVCA7Ci0gICAgQU5URU5OQURJRkZBUkVBIDEuNzI4NSAgTEFZRVIgTWV0YWwxIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuODYgMC42IDAuOTQgMC43MyA7Ci0gICAgICAgIFJFQ1QgMC44OCAwLjQxIDAuOTQgMS4wNyA7Ci0gICAgRU5ECi0gIEVORCBRTgotICBQSU4gUQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gT1VUUFVUIDsKLSAgICBBTlRFTk5BRElGRkFSRUEgMS43Mjg1ICBMQVlFUiBNZXRhbDEgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wNiAwLjQxIDAuMzA1IDAuNTQgOwotICAgICAgICBSRUNUIDAuMjI1IDAuNDEgMC4zMDUgMS4yOSA7Ci0gICAgRU5ECi0gIEVORCBRCi0gIFBJTiBECi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAzLjM5IDAuNzg1IDMuNDcgMS4xNTUgOwotICAgICAgICBSRUNUIDMuMjYgMC44NDUgMy40NyAxLjE1NSA7Ci0gICAgRU5ECi0gIEVORCBECi0gIFBJTiBSTgotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMi4wMjUgMC43ODUgMi4xMDUgMC45NiA7Ci0gICAgICAgIFJFQ1QgMi4wMjUgMC44MTUgMi40MyAwLjk2IDsKLSAgICBFTkQKLSAgRU5EIFJOCi0gIFBJTiBHCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAxLjYgMC44MTUgMS42OCAxLjIzIDsKLSAgICAgICAgUkVDVCAxLjYgMC44MTUgMS43NjUgMC44OTUgOwotICAgIEVORAotICBFTkQgRwotICBQSU4gU04KLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDEuMiAwLjg0IDEuMzQgMC45MiA7Ci0gICAgICAgIFJFQ1QgMS4yNiAwLjY1IDEuMzQgMS4wOSA7Ci0gICAgRU5ECi0gIEVORCBTTgotICBQSU4gVkRECi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIFBPV0VSIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVkREIFZERCEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMS42NSAzLjggMS43MSA7Ci0gICAgRU5ECi0gIEVORCBWREQKLSAgUElOIFZTUwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBHUk9VTkQgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWU1MgVlNTISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAwLjAwIDMuOCAwLjA2IDsKLSAgICBFTkQKLSAgRU5EIFZTUwotRU5EIFRMQVRTUlgxCi0KLU1BQ1JPIE9BSTJCQjFYMQotICBDTEFTUyBDT1JFIDsKLSAgT1JJR0lOIDAgMCA7Ci0gIEZPUkVJR04gT0FJMkJCMVgxIDAgMCA7Ci0gIFNJWkUgMS4yIEJZIDEuNzEgOwotICBTWU1NRVRSWSBYIFkgOwotICBTSVRFIENvcmVTaXRlIDsKLSAgUElOIFkKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIE9VVFBVVCA7Ci0gICAgQU5URU5OQURJRkZBUkVBIDEuNzI4NSAgTEFZRVIgTWV0YWwxIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDYgMC40MSAwLjE4IDAuNTQgOwotICAgICAgICBSRUNUIDAuMTIgMC40IDAuMTggMC44NSA7Ci0gICAgICAgIFJFQ1QgMC4xMiAwLjc5IDAuMzQgMC44NSA7Ci0gICAgICAgIFJFQ1QgMC4yOCAwLjc5IDAuMzQgMS4zNCA7Ci0gICAgRU5ECi0gIEVORCBZCi0gIFBJTiBCMAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC40NCAwLjY0IDAuNTIgMS4wNiA7Ci0gICAgICAgIFJFQ1QgMC40NiAwLjk4IDAuNTQgMS4xMiA7Ci0gICAgRU5ECi0gIEVORCBCMAotICBQSU4gQTBOCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjY0IDAuNjQgMC43MiAxLjEyIDsKLSAgICAgICAgUkVDVCAwLjY0IDAuNzggMC43NCAxLjEyIDsKLSAgICBFTkQKLSAgRU5EIEEwTgotICBQSU4gQTFOCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAxIDAuNjcgMS4wOCAxLjA2IDsKLSAgICAgICAgUkVDVCAxLjA2IDAuOTggMS4xNCAxLjExIDsKLSAgICBFTkQKLSAgRU5EIEExTgotICBQSU4gVkRECi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIFBPV0VSIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVkREIFZERCEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMS42NSAxLjIgMS43MSA7Ci0gICAgRU5ECi0gIEVORCBWREQKLSAgUElOIFZTUwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBHUk9VTkQgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWU1MgVlNTISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAwLjAwIDEuMiAwLjA2IDsKLSAgICBFTkQKLSAgRU5EIFZTUwotRU5EIE9BSTJCQjFYMQotCi1NQUNSTyBETFk0WDEKLSAgQ0xBU1MgQ09SRSA7Ci0gIE9SSUdJTiAwIDAgOwotICBGT1JFSUdOIERMWTRYMSAwIDAgOwotICBTSVpFIDUuOCBCWSAxLjcxIDsKLSAgU1lNTUVUUlkgWCBZIDsKLSAgU0lURSBDb3JlU2l0ZSA7Ci0gIFBJTiBZCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBPVVRQVVQgOwotICAgIEFOVEVOTkFESUZGQVJFQSAxLjcyODUgIExBWUVSIE1ldGFsMSA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjQzNSAwLjU0IDAuNTE1IDEuMjkgOwotICAgICAgICBSRUNUIDAuNDM1IDAuNjI1IDAuNTY1IDAuNzA1IDsKLSAgICBFTkQKLSAgRU5EIFkKLSAgUElOIEEKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDUuNDYgMC42OSA1LjU0IDEuMTkgOwotICAgIEVORAotICBFTkQgQQotICBQSU4gVkRECi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIFBPV0VSIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVkREIFZERCEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMS42NSA1LjggMS43MSA7Ci0gICAgRU5ECi0gIEVORCBWREQKLSAgUElOIFZTUwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBHUk9VTkQgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWU1MgVlNTISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAwLjAwIDUuOCAwLjA2IDsKLSAgICBFTkQKLSAgRU5EIFZTUwotRU5EIERMWTRYMQotCi1NQUNSTyBBRERGWDQKLSAgQ0xBU1MgQ09SRSA7Ci0gIE9SSUdJTiAwIDAgOwotICBGT1JFSUdOIEFEREZYNCAwIDAgOwotICBTSVpFIDUuNiBCWSAxLjcxIDsKLSAgU1lNTUVUUlkgWCBZIDsKLSAgU0lURSBDb3JlU2l0ZSA7Ci0gIFBJTiBTCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBPVVRQVVQgOwotICAgIEFOVEVOTkFESUZGQVJFQSAxLjcyODUgIExBWUVSIE1ldGFsMSA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCA0Ljc0NSAwLjQxNSA0LjgwNSAwLjU1NSA7Ci0gICAgICAgIFJFQ1QgNC43NDUgMSA0LjgwNSAxLjM5IDsKLSAgICAgICAgUkVDVCA0Ljc0NSAwLjQ5NSA1LjI4NSAwLjU1NSA7Ci0gICAgICAgIFJFQ1QgNS4xNTUgMSA1LjIxNSAxLjM5IDsKLSAgICAgICAgUkVDVCA1LjE2NSAwLjQxNSA1LjIyNSAwLjU1NSA7Ci0gICAgICAgIFJFQ1QgNS4yMjUgMC40OTUgNS4yODUgMS4wNiA7Ci0gICAgICAgIFJFQ1QgNC43NDUgMSA1LjI4NSAxLjA2IDsKLSAgICAgICAgUkVDVCA1LjIyNSAwLjYgNS4zNCAwLjczIDsKLSAgICBFTkQKLSAgRU5EIFMKLSAgUElOIENPCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBPVVRQVVQgOwotICAgIEFOVEVOTkFESUZGQVJFQSAxLjcyODUgIExBWUVSIE1ldGFsMSA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjI2IDAuNiAwLjM0IDAuNzMgOwotICAgICAgICBSRUNUIDAuMjggMC42IDAuMzQgMC45OCA7Ci0gICAgICAgIFJFQ1QgMC4zNCAwLjUyIDAuNCAwLjY2IDsKLSAgICAgICAgUkVDVCAwLjM0IDAuOTIgMC40IDEuMjk1IDsKLSAgICAgICAgUkVDVCAwLjI4IDAuOTIgMC44MiAwLjk4IDsKLSAgICAgICAgUkVDVCAwLjc2IDAuNTIgMC44MiAwLjY2IDsKLSAgICAgICAgUkVDVCAwLjI2IDAuNiAwLjgyIDAuNjYgOwotICAgICAgICBSRUNUIDAuNzYgMC45MiAwLjgyIDEuMjk1IDsKLSAgICBFTkQKLSAgRU5EIENPCi0gIFBJTiBCCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAxLjc2NSAwLjc5IDIuNTI1IDAuODUgOwotICAgICAgICBSRUNUIDIuMjYgMC43OSAyLjUyNSAwLjk0IDsKLSAgICAgICAgUkVDVCAyLjI2IDAuODggMy4yMzUgMC45NCA7Ci0gICAgICAgIFJFQ1QgMy4xNzUgMC44MiA0LjMyNSAwLjg4IDsKLSAgICBFTkQKLSAgRU5EIEIKLSAgUElOIEEKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDEuNTQgMC42MyAxLjYgMC43NSA7Ci0gICAgICAgIFJFQ1QgMS41NCAwLjYzIDIuNjg1IDAuNjkgOwotICAgICAgICBSRUNUIDIuNjI1IDAuNjMgMi42ODUgMC43OCA7Ci0gICAgICAgIFJFQ1QgMi42MjUgMC43MiAzLjA3NSAwLjc4IDsKLSAgICAgICAgUkVDVCAzLjAxNSAwLjY2IDQuNDg1IDAuNzIgOwotICAgICAgICBSRUNUIDQuMjM1IDAuNjI1IDQuNDg1IDAuNzIgOwotICAgICAgICBSRUNUIDQuNDI1IDAuNjI1IDQuNDg1IDAuNzQ1IDsKLSAgICBFTkQKLSAgRU5EIEEKLSAgUElOIENJCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAyLjIzNSAwLjQzNSAyLjM2NSAwLjUzIDsKLSAgICAgICAgUkVDVCAyLjIzNSAwLjQ3IDIuODI1IDAuNTMgOwotICAgICAgICBSRUNUIDIuNzk1IDAuNSAyLjkxNSAwLjYyIDsKLSAgICAgICAgUkVDVCAyLjc2NSAwLjUgNC4wMTUgMC41NiA7Ci0gICAgRU5ECi0gIEVORCBDSQotICBQSU4gVkRECi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIFBPV0VSIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVkREIFZERCEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMS42NSA1LjYgMS43MSA7Ci0gICAgRU5ECi0gIEVORCBWREQKLSAgUElOIFZTUwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBHUk9VTkQgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWU1MgVlNTISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAwLjAwIDUuNiAwLjA2IDsKLSAgICBFTkQKLSAgRU5EIFZTUwotRU5EIEFEREZYNAotCi1NQUNSTyBDTEtBTkQyWDEyCi0gIENMQVNTIENPUkUgOwotICBPUklHSU4gMCAwIDsKLSAgRk9SRUlHTiBDTEtBTkQyWDEyIDAgMCA7Ci0gIFNJWkUgNC40IEJZIDEuNzEgOwotICBTWU1NRVRSWSBYIFkgOwotICBTSVRFIENvcmVTaXRlIDsKLSAgUElOIFkKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIE9VVFBVVCA7Ci0gICAgQU5URU5OQURJRkZBUkVBIDEuNzI4NSAgTEFZRVIgTWV0YWwxIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDIuMzA1IDAuMzUgMi4zNjUgMC42NTUgOwotICAgICAgICBSRUNUIDIuMzk1IDAuOTE1IDIuNDU1IDEuMzcgOwotICAgICAgICBSRUNUIDIuNzE1IDAuMzUgMi43NzUgMC42NTUgOwotICAgICAgICBSRUNUIDIuODA1IDAuOTE1IDIuODY1IDEuMzcgOwotICAgICAgICBSRUNUIDMuMTI1IDAuMzUgMy4xODUgMC42NTUgOwotICAgICAgICBSRUNUIDMuMjE1IDAuOTE1IDMuMjc1IDEuMzcgOwotICAgICAgICBSRUNUIDMuNTM1IDAuMzUgMy41OTUgMC42NTUgOwotICAgICAgICBSRUNUIDMuNjI1IDAuOTE1IDMuNjg1IDEuMzcgOwotICAgICAgICBSRUNUIDMuOTQ1IDAuMzUgNC4wMDUgMC42NTUgOwotICAgICAgICBSRUNUIDIuMzk1IDAuOTE1IDQuMTQgMC45NzUgOwotICAgICAgICBSRUNUIDIuMzA1IDAuNTk1IDQuMTIgMC42NTUgOwotICAgICAgICBSRUNUIDQuMDYgMC41OTUgNC4xMiAxLjM3IDsKLSAgICAgICAgUkVDVCA0LjA2IDAuNzkgNC4xNCAxLjM3IDsKLSAgICAgICAgUkVDVCA0LjAzNSAwLjkxNSA0LjE0IDEuMzcgOwotICAgIEVORAotICBFTkQgWQotICBQSU4gQQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC42NiAwLjg5IDAuNzIgMS4wMSA7Ci0gICAgICAgIFJFQ1QgMS4xOSAwLjg5IDEuMjUgMS4wMSA7Ci0gICAgICAgIFJFQ1QgMS44MzUgMC44MTUgMS45NjUgMS4wMSA7Ci0gICAgICAgIFJFQ1QgMC42NiAwLjk1IDEuOTY1IDEuMDEgOwotICAgICAgICBSRUNUIDEuODM1IDAuODE1IDIuMDQ1IDAuODc1IDsKLSAgICBFTkQKLSAgRU5EIEEKLSAgUElOIEIKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMjY1IDAuNzkgMC41NCAwLjg1IDsKLSAgICAgICAgUkVDVCAwLjQ2IDAuNzkgMC41NCAwLjkyIDsKLSAgICAgICAgUkVDVCAwLjk2NSAwLjczIDEuMDg1IDAuOCA7Ci0gICAgICAgIFJFQ1QgMC40OCAwLjczIDEuNjQgMC43OSA7Ci0gICAgICAgIFJFQ1QgMS41OCAwLjczIDEuNjQgMC44NSA7Ci0gICAgRU5ECi0gIEVORCBCCi0gIFBJTiBWREQKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgUE9XRVIgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWREQgVkREISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAxLjY1IDQuNCAxLjcxIDsKLSAgICBFTkQKLSAgRU5EIFZERAotICBQSU4gVlNTCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIEdST1VORCA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZTUyBWU1MhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDAuMDAgNC40IDAuMDYgOwotICAgIEVORAotICBFTkQgVlNTCi1FTkQgQ0xLQU5EMlgxMgotCi1NQUNSTyBNWEkzWEwKLSAgQ0xBU1MgQ09SRSA7Ci0gIE9SSUdJTiAwIDAgOwotICBGT1JFSUdOIE1YSTNYTCAwIDAgOwotICBTSVpFIDMuNCBCWSAxLjcxIDsKLSAgU1lNTUVUUlkgWCBZIDsKLSAgU0lURSBDb3JlU2l0ZSA7Ci0gIFBJTiBZCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBPVVRQVVQgOwotICAgIEFOVEVOTkFESUZGQVJFQSAxLjcyODUgIExBWUVSIE1ldGFsMSA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAzLjI2IDAuNTIgMy4zNCAxLjAyIDsKLSAgICBFTkQKLSAgRU5EIFkKLSAgUElOIEMKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDIuOTE1IDAuNzQgMi45OTUgMS4wODUgOwotICAgICAgICBSRUNUIDIuOTE1IDAuNzkgMy4xNSAxLjA4NSA7Ci0gICAgRU5ECi0gIEVORCBDCi0gIFBJTiBTMQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMi4wMzUgMC44MTUgMi4xNjUgMS4wMiA7Ci0gICAgICAgIFJFQ1QgMi4wMzUgMC45NCAyLjU2NSAxLjAyIDsKLSAgICBFTkQKLSAgRU5EIFMxCi0gIFBJTiBCCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAxLjM0NSAwLjg0NSAxLjU0IDEuMTM1IDsKLSAgICBFTkQKLSAgRU5EIEIKLSAgUElOIEEKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuNDI1IDAuODE1IDAuOTI1IDAuODk1IDsKLSAgICBFTkQKLSAgRU5EIEEKLSAgUElOIFMwCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjI0NSAwLjk2NSAwLjMyNSAxLjA4NSA7Ci0gICAgICAgIFJFQ1QgMC4yMzUgMS4wMDUgMC4zNjUgMS4wODUgOwotICAgICAgICBSRUNUIDAuMjQ1IDAuOTk1IDAuOSAxLjA3NSA7Ci0gICAgRU5ECi0gIEVORCBTMAotICBQSU4gVkRECi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIFBPV0VSIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVkREIFZERCEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMS42NSAzLjQgMS43MSA7Ci0gICAgRU5ECi0gIEVORCBWREQKLSAgUElOIFZTUwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBHUk9VTkQgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWU1MgVlNTISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAwLjAwIDMuNCAwLjA2IDsKLSAgICBFTkQKLSAgRU5EIFZTUwotRU5EIE1YSTNYTAotCi1NQUNSTyBOQU5EM1g2Ci0gIENMQVNTIENPUkUgOwotICBPUklHSU4gMCAwIDsKLSAgRk9SRUlHTiBOQU5EM1g2IDAgMCA7Ci0gIFNJWkUgNC4yIEJZIDEuNzEgOwotICBTWU1NRVRSWSBYIFkgOwotICBTSVRFIENvcmVTaXRlIDsKLSAgUElOIFkKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIE9VVFBVVCA7Ci0gICAgQU5URU5OQURJRkZBUkVBIDEuNzI4NSAgTEFZRVIgTWV0YWwxIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMzkgMS4xOCAwLjQ1IDEuMyA7Ci0gICAgICAgIFJFQ1QgMC43NzUgMC4zMiAwLjgzNSAwLjYgOwotICAgICAgICBSRUNUIDAuOCAxLjE4IDAuODYgMS4zIDsKLSAgICAgICAgUkVDVCAxLjIxIDEuMTggMS4yNyAxLjMgOwotICAgICAgICBSRUNUIDEuNjIgMS4xOCAxLjY4IDEuMyA7Ci0gICAgICAgIFJFQ1QgMC43NzUgMC4zMiAyLjAyNSAwLjM4IDsKLSAgICAgICAgUkVDVCAxLjk2NSAwLjMyIDIuMDI1IDAuNiA7Ci0gICAgICAgIFJFQ1QgMi4xNyAxLjE4IDIuMjMgMS4zIDsKLSAgICAgICAgUkVDVCAyLjYwNSAxLjA3IDIuNjY1IDEuNDMgOwotICAgICAgICBSRUNUIDMuMDE1IDEuMTggMy4wNzUgMS4zIDsKLSAgICAgICAgUkVDVCAxLjk2NSAwLjQzIDMuNDY1IDAuNDkgOwotICAgICAgICBSRUNUIDMuNDA1IDAuMzIgMy40NjUgMC42IDsKLSAgICAgICAgUkVDVCAzLjQyNSAxLjE4IDMuNDg1IDEuMyA7Ci0gICAgICAgIFJFQ1QgMy44MzUgMS4xOCAzLjg5NSAxLjQzIDsKLSAgICAgICAgUkVDVCAzLjQwNSAwLjU0IDQuMTQgMC42IDsKLSAgICAgICAgUkVDVCA0LjA2IDAuOTggNC4xNCAxLjI0IDsKLSAgICAgICAgUkVDVCA0LjA4IDAuNTQgNC4xNCAxLjI0IDsKLSAgICAgICAgUkVDVCAwLjM5IDEuMTggNC4xNCAxLjI0IDsKLSAgICBFTkQKLSAgRU5EIFkKLSAgUElOIEEKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMjM1IDAuODE1IDAuNDA1IDAuODk1IDsKLSAgICAgICAgUkVDVCAwLjM0NSAwLjgxNSAwLjQwNSAxLjA4IDsKLSAgICAgICAgUkVDVCAxLjQyNSAwLjkxIDEuNTQ1IDEuMDggOwotICAgICAgICBSRUNUIDIuNDQ1IDAuOTEgMi41MDUgMS4wOCA7Ci0gICAgICAgIFJFQ1QgMC4zNDUgMS4wMiAyLjUwNSAxLjA4IDsKLSAgICAgICAgUkVDVCAyLjQ0NSAwLjkxIDIuOTg1IDAuOTcgOwotICAgICAgICBSRUNUIDIuOTI1IDAuOTEgMi45ODUgMS4wOCA7Ci0gICAgICAgIFJFQ1QgMy45IDAuNzYgMy45NiAxLjA4IDsKLSAgICAgICAgUkVDVCAyLjkyNSAxLjAyIDMuOTYgMS4wOCA7Ci0gICAgICAgIFJFQ1QgMy45IDAuNzYgMy45NyAwLjg4IDsKLSAgICBFTkQKLSAgRU5EIEEKLSAgUElOIEIKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuNTA1IDAuODYgMS4xNjUgMC45MiA7Ci0gICAgICAgIFJFQ1QgMS4xMDUgMC44MDUgMS4zMjUgMC44NjUgOwotICAgICAgICBSRUNUIDEuMjY1IDAuNzUgMS43MDUgMC44MSA7Ci0gICAgICAgIFJFQ1QgMS42NDUgMC43NSAxLjcwNSAwLjkyIDsKLSAgICAgICAgUkVDVCAyLjI4NSAwLjc1IDIuMzQ1IDAuOTIgOwotICAgICAgICBSRUNUIDEuNjQ1IDAuODYgMi4zNDUgMC45MiA7Ci0gICAgICAgIFJFQ1QgMi4yODUgMC43NSAzLjE0NSAwLjgxIDsKLSAgICAgICAgUkVDVCAzLjA4NSAwLjc1IDMuMTQ1IDAuOTIgOwotICAgICAgICBSRUNUIDMuNjYgMC43OSAzLjc0IDAuOTIgOwotICAgICAgICBSRUNUIDMuMDg1IDAuODYgMy43OTUgMC45MiA7Ci0gICAgRU5ECi0gIEVORCBCCi0gIFBJTiBDCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjg4NSAwLjcgMS4wMDUgMC43NiA7Ci0gICAgICAgIFJFQ1QgMC45NDUgMC42MjUgMS4xNjUgMC43MDUgOwotICAgICAgICBSRUNUIDEuMTA1IDAuNTkgMS44NjUgMC42NSA7Ci0gICAgICAgIFJFQ1QgMS44MDUgMC41OSAxLjg2NSAwLjc2IDsKLSAgICAgICAgUkVDVCAyLjEyNSAwLjU5IDIuMTg1IDAuNzYgOwotICAgICAgICBSRUNUIDEuODA1IDAuNyAyLjE4NSAwLjc2IDsKLSAgICAgICAgUkVDVCAyLjEyNSAwLjU5IDMuMzA1IDAuNjUgOwotICAgICAgICBSRUNUIDMuMjQ1IDAuNTkgMy4zMDUgMC43NiA7Ci0gICAgICAgIFJFQ1QgMy4yNDUgMC43IDMuNDE1IDAuNzYgOwotICAgIEVORAotICBFTkQgQwotICBQSU4gVkRECi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIFBPV0VSIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVkREIFZERCEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMS42NSA0LjIgMS43MSA7Ci0gICAgRU5ECi0gIEVORCBWREQKLSAgUElOIFZTUwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBHUk9VTkQgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWU1MgVlNTISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAwLjAwIDQuMiAwLjA2IDsKLSAgICBFTkQKLSAgRU5EIFZTUwotRU5EIE5BTkQzWDYKLQotTUFDUk8gU0RGRlJYMgotICBDTEFTUyBDT1JFIDsKLSAgT1JJR0lOIDAgMCA7Ci0gIEZPUkVJR04gU0RGRlJYMiAwIDAgOwotICBTSVpFIDYuNCBCWSAxLjcxIDsKLSAgU1lNTUVUUlkgWCBZIDsKLSAgU0lURSBDb3JlU2l0ZSA7Ci0gIFBJTiBRCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBPVVRQVVQgOwotICAgIEFOVEVOTkFESUZGQVJFQSAxLjcyODUgIExBWUVSIE1ldGFsMSA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAxLjA1NSAwLjQ5IDEuMTM1IDAuOTkgOwotICAgICAgICBSRUNUIDEuMDU1IDAuNiAxLjE0IDAuNzMgOwotICAgICAgICBSRUNUIDEuMDU1IDAuOTEgMS4xNzUgMC45OSA7Ci0gICAgRU5ECi0gIEVORCBRCi0gIFBJTiBRTgotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gT1VUUFVUIDsKLSAgICBBTlRFTk5BRElGRkFSRUEgMS43Mjg1ICBMQVlFUiBNZXRhbDEgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC42NSAwLjQ5IDAuNzMgMC45OSA7Ci0gICAgICAgIFJFQ1QgMC41NiAwLjkxIDAuNzMgMC45OSA7Ci0gICAgICAgIFJFQ1QgMC42NSAwLjYgMC43NCAwLjczIDsKLSAgICBFTkQKLSAgRU5EIFFOCi0gIFBJTiBTRQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgNS42MzUgMC42IDUuNzE1IDAuODggOwotICAgICAgICBSRUNUIDUuNjM1IDAuNiA2LjE0IDAuNjggOwotICAgICAgICBSRUNUIDYuMDYgMC42IDYuMTQgMC43MyA7Ci0gICAgRU5ECi0gIEVORCBTRQotICBQSU4gRAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgNS44MTUgMC43OCA1Ljg5NSAxLjA4NSA7Ci0gICAgICAgIFJFQ1QgNS42MzUgMS4wMDUgNS44OTUgMS4wODUgOwotICAgICAgICBSRUNUIDUuODE1IDAuNzggNS45MzUgMC44NiA7Ci0gICAgRU5ECi0gIEVORCBECi0gIFBJTiBTSQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgNS4wNiAwLjc5IDUuMTQgMS4wMjUgOwotICAgICAgICBSRUNUIDUuMTM1IDAuNiA1LjIxNSAwLjg3IDsKLSAgICBFTkQKLSAgRU5EIFNJCi0gIFBJTiBSTgotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMi4zODUgMC44NCAyLjUyIDAuOSA7Ci0gICAgICAgIFJFQ1QgMi40NiAwLjg0IDIuNTIgMS4xMSA7Ci0gICAgICAgIFJFQ1QgMi40NiAwLjk4IDIuNTQgMS4xMSA7Ci0gICAgICAgIFJFQ1QgMi40NiAxLjA1IDIuODQgMS4xMSA7Ci0gICAgICAgIFJFQ1QgMi43OCAxLjA1IDIuODQgMS40NCA7Ci0gICAgICAgIFJFQ1QgMi43OCAxLjM4IDMuNzcgMS40NCA7Ci0gICAgRU5ECi0gIEVORCBSTgotICBQSU4gQ0sKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDEuNDM1IDAuNTcgMS41MTUgMC45NDUgOwotICAgICAgICBSRUNUIDEuNDM1IDAuNTcgMS42NCAwLjcwNSA7Ci0gICAgRU5ECi0gIEVORCBDSwotICBQSU4gVkRECi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIFBPV0VSIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVkREIFZERCEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMS42NSA2LjQgMS43MSA7Ci0gICAgRU5ECi0gIEVORCBWREQKLSAgUElOIFZTUwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBHUk9VTkQgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWU1MgVlNTISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAwLjAwIDYuNCAwLjA2IDsKLSAgICBFTkQKLSAgRU5EIFZTUwotRU5EIFNERkZSWDIKLQotTUFDUk8gTVgzWDEKLSAgQ0xBU1MgQ09SRSA7Ci0gIE9SSUdJTiAwIDAgOwotICBGT1JFSUdOIE1YM1gxIDAgMCA7Ci0gIFNJWkUgMyBCWSAxLjcxIDsKLSAgU1lNTUVUUlkgWCBZIDsKLSAgU0lURSBDb3JlU2l0ZSA7Ci0gIFBJTiBZCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBPVVRQVVQgOwotICAgIEFOVEVOTkFESUZGQVJFQSAxLjcyODUgIExBWUVSIE1ldGFsMSA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjA2IDAuNDEgMC4xNCAwLjU0IDsKLSAgICAgICAgUkVDVCAwLjA4IDAuNDEgMC4xNCAwLjgyNSA7Ci0gICAgICAgIFJFQ1QgMC4xMyAwLjM4NSAwLjE5IDAuNTA1IDsKLSAgICAgICAgUkVDVCAwLjEzIDAuNzY1IDAuMTkgMS4zNDUgOwotICAgIEVORAotICBFTkQgWQotICBQSU4gUzAKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDIuMDggMC45NjUgMi4xNiAxLjA4NSA7Ci0gICAgICAgIFJFQ1QgMi4wOCAxLjAwNSAyLjc2NSAxLjA4NSA7Ci0gICAgRU5ECi0gIEVORCBTMAotICBQSU4gQQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMi4yNiAwLjc3NSAyLjM0IDAuOTA1IDsKLSAgICAgICAgUkVDVCAyLjI2IDAuNzc1IDIuNzEgMC44NTUgOwotICAgIEVORAotICBFTkQgQQotICBQSU4gQgotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMS40NiAwLjYgMS41NCAwLjczIDsKLSAgICAgICAgUkVDVCAxLjQ2IDAuNjUgMS42NiAwLjczIDsKLSAgICAgICAgUkVDVCAxLjU4IDAuNjUgMS42NiAwLjk4IDsKLSAgICBFTkQKLSAgRU5EIEIKLSAgUElOIFMxCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAxLjI2IDAuNDggMS4zNCAwLjk4IDsKLSAgICBFTkQKLSAgRU5EIFMxCi0gIFBJTiBDCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjQ2IDAuNjI1IDAuNTQgMS4xMjUgOwotICAgIEVORAotICBFTkQgQwotICBQSU4gVkRECi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIFBPV0VSIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVkREIFZERCEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMS42NSAzIDEuNzEgOwotICAgIEVORAotICBFTkQgVkRECi0gIFBJTiBWU1MKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgR1JPVU5EIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVlNTIFZTUyEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMC4wMCAzIDAuMDYgOwotICAgIEVORAotICBFTkQgVlNTCi1FTkQgTVgzWDEKLQotTUFDUk8gU0RGRlNSSFFYMQotICBDTEFTUyBDT1JFIDsKLSAgT1JJR0lOIDAgMCA7Ci0gIEZPUkVJR04gU0RGRlNSSFFYMSAwIDAgOwotICBTSVpFIDcuOCBCWSAxLjcxIDsKLSAgU1lNTUVUUlkgWCBZIDsKLSAgU0lURSBDb3JlU2l0ZSA7Ci0gIFBJTiBRCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBPVVRQVVQgOwotICAgIEFOVEVOTkFESUZGQVJFQSAxLjcyODUgIExBWUVSIE1ldGFsMSA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjA4IDAuNTEgMC4xNCAwLjczIDsKLSAgICAgICAgUkVDVCAwLjA2IDAuNiAwLjE0IDAuNzMgOwotICAgICAgICBSRUNUIDAuMTEgMC42NyAwLjE3IDEuMjkgOwotICAgIEVORAotICBFTkQgUQotICBQSU4gU0UKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDYuODI1IDAuNjQ1IDYuODg1IDAuOTA1IDsKLSAgICAgICAgUkVDVCA3LjM5IDAuNjI1IDcuNTY1IDAuNzA1IDsKLSAgICAgICAgUkVDVCA2LjgyNSAwLjY0NSA3LjU2NSAwLjcwNSA7Ci0gICAgRU5ECi0gIEVORCBTRQotICBQSU4gU0kKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDcuMjM1IDAuODA1IDcuMzQgMC45OCA7Ci0gICAgICAgIFJFQ1QgNy4yMDUgMC44MSA3LjM0IDAuOTggOwotICAgICAgICBSRUNUIDcuMjA1IDAuODE1IDcuNjEgMC44OTUgOwotICAgIEVORAotICBFTkQgU0kKLSAgUElOIEQKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDYuNDM1IDAuNTQgNi41NjUgMC45MSA7Ci0gICAgRU5ECi0gIEVORCBECi0gIFBJTiBDSwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgNS44NSAwLjgxNSA2LjE2NSAwLjkxIDsKLSAgICAgICAgUkVDVCA1Ljg1IDAuODE1IDYuMzM1IDAuODk1IDsKLSAgICBFTkQKLSAgRU5EIENLCi0gIFBJTiBTTgotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMS40NiAwLjc5IDEuNTQgMC45MiA7Ci0gICAgICAgIFJFQ1QgMS40OCAwLjc5IDEuNTQgMS4wMDUgOwotICAgICAgICBSRUNUIDEuNDggMC45NDUgMi40NiAxLjAwNSA7Ci0gICAgICAgIFJFQ1QgMi40IDAuOTQ1IDIuNDYgMS4zNTUgOwotICAgICAgICBSRUNUIDMuMiAxLjE2IDMuMjYgMS4zNTUgOwotICAgICAgICBSRUNUIDIuNCAxLjI5NSAzLjI2IDEuMzU1IDsKLSAgICAgICAgUkVDVCAzLjIgMS4xNiAzLjY0IDEuMjIgOwotICAgICAgICBSRUNUIDMuNTggMS4xNiAzLjY0IDEuMzg1IDsKLSAgICAgICAgUkVDVCAzLjU4IDEuMzI1IDQuMjggMS4zODUgOwotICAgIEVORAotICBFTkQgU04KLSAgUElOIFJOCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAxLjAyNSAwLjY1NSAxLjEwNSAwLjkxIDsKLSAgICAgICAgUkVDVCAxLjAyNSAwLjc5IDEuMzQgMC45MSA7Ci0gICAgICAgIFJFQ1QgMS4yNiAwLjc5IDEuMzQgMC45MiA7Ci0gICAgRU5ECi0gIEVORCBSTgotICBQSU4gVkRECi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIFBPV0VSIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVkREIFZERCEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMS42NSA3LjggMS43MSA7Ci0gICAgRU5ECi0gIEVORCBWREQKLSAgUElOIFZTUwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBHUk9VTkQgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWU1MgVlNTISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAwLjAwIDcuOCAwLjA2IDsKLSAgICBFTkQKLSAgRU5EIFZTUwotRU5EIFNERkZTUkhRWDEKLQotTUFDUk8gVExBVE5UU0NBWDE2Ci0gIENMQVNTIENPUkUgOwotICBPUklHSU4gMCAwIDsKLSAgRk9SRUlHTiBUTEFUTlRTQ0FYMTYgMCAwIDsKLSAgU0laRSA3LjYgQlkgMS43MSA7Ci0gIFNZTU1FVFJZIFggWSA7Ci0gIFNJVEUgQ29yZVNpdGUgOwotICBQSU4gRUNLCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBPVVRQVVQgOwotICAgIEFOVEVOTkFESUZGQVJFQSAxLjcyODUgIExBWUVSIE1ldGFsMSA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCA0LjYxNSAwLjUgNC42NzUgMC42MiA7Ci0gICAgICAgIFJFQ1QgNC42NiAwLjU2IDQuNzIgMS40MDUgOwotICAgICAgICBSRUNUIDQuNjYgMC43OSA0Ljc0IDAuOTIgOwotICAgICAgICBSRUNUIDQuOTk1IDAuNTcgNS4xMTUgMC42MyA7Ci0gICAgICAgIFJFQ1QgNS4wNyAwLjgxNSA1LjEzIDEuNDA1IDsKLSAgICAgICAgUkVDVCA1LjA3IDAuNTg1IDUuNDk1IDAuNjQ1IDsKLSAgICAgICAgUkVDVCA1LjQzNSAwLjUyNSA1LjQ5NSAwLjg3NSA7Ci0gICAgICAgIFJFQ1QgNS40OCAwLjgxNSA1LjU0IDEuNDA1IDsKLSAgICAgICAgUkVDVCA1LjgxNSAwLjU3IDUuOTM1IDAuNjMgOwotICAgICAgICBSRUNUIDUuODkgMC44MTUgNS45NSAxLjQwNSA7Ci0gICAgICAgIFJFQ1QgNS44OSAwLjU4NSA2LjMxNSAwLjY0NSA7Ci0gICAgICAgIFJFQ1QgNi4yNTUgMC41MjUgNi4zMTUgMC44NzUgOwotICAgICAgICBSRUNUIDYuMyAwLjgxNSA2LjM2IDEuNDA1IDsKLSAgICAgICAgUkVDVCA2LjYzNSAwLjU3IDYuNzU1IDAuNjMgOwotICAgICAgICBSRUNUIDYuNzEgMC44MTUgNi43NyAxLjQwNSA7Ci0gICAgICAgIFJFQ1QgNi43MSAwLjU4NSA3LjEzNSAwLjY0NSA7Ci0gICAgICAgIFJFQ1QgNC42NiAwLjgxNSA3LjE4IDAuODc1IDsKLSAgICAgICAgUkVDVCA3LjA3NSAwLjUyNSA3LjEzNSAwLjg3NSA7Ci0gICAgICAgIFJFQ1QgNy4xMiAwLjgxNSA3LjE4IDEuNDA1IDsKLSAgICBFTkQKLSAgRU5EIEVDSwotICBQSU4gQ0sKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuNjYgMC40NSAwLjc0IDAuOTUgOwotICAgIEVORAotICBFTkQgQ0sKLSAgUElOIFNFCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjQ2IDAuNDUgMC41NCAwLjk1IDsKLSAgICBFTkQKLSAgRU5EIFNFCi0gIFBJTiBFCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAzNSAwLjU0IDAuMiAwLjk1IDsKLSAgICAgICAgUkVDVCAwLjAzIDAuODcgMC4yIDAuOTUgOwotICAgIEVORAotICBFTkQgRQotICBQSU4gVkRECi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIFBPV0VSIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVkREIFZERCEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMS42NSA3LjYgMS43MSA7Ci0gICAgRU5ECi0gIEVORCBWREQKLSAgUElOIFZTUwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBHUk9VTkQgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWU1MgVlNTISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAwLjAwIDcuNiAwLjA2IDsKLSAgICBFTkQKLSAgRU5EIFZTUwotRU5EIFRMQVROVFNDQVgxNgotCi1NQUNSTyBPQUkzM1hMCi0gIENMQVNTIENPUkUgOwotICBPUklHSU4gMCAwIDsKLSAgRk9SRUlHTiBPQUkzM1hMIDAgMCA7Ci0gIFNJWkUgMS44IEJZIDEuNzEgOwotICBTWU1NRVRSWSBYIFkgOwotICBTSVRFIENvcmVTaXRlIDsKLSAgUElOIFkKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIE9VVFBVVCA7Ci0gICAgQU5URU5OQURJRkZBUkVBIDEuNzI4NSAgTEFZRVIgTWV0YWwxIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuOTY1IDEuMTg1IDEuMDI1IDEuMzcgOwotICAgICAgICBSRUNUIDEuMTQgMC4yOSAxLjI2IDAuMzUgOwotICAgICAgICBSRUNUIDEuMiAwLjI5IDEuMjYgMC40ODUgOwotICAgICAgICBSRUNUIDEuNTk1IDAuMjYgMS43NCAwLjQ4NSA7Ci0gICAgICAgIFJFQ1QgMS4yIDAuNDI1IDEuNzQgMC40ODUgOwotICAgICAgICBSRUNUIDEuNjYgMC45OCAxLjc0IDEuMjQ1IDsKLSAgICAgICAgUkVDVCAxLjY4IDAuMjYgMS43NCAxLjI0NSA7Ci0gICAgICAgIFJFQ1QgMC45NjUgMS4xODUgMS43NCAxLjI0NSA7Ci0gICAgRU5ECi0gIEVORCBZCi0gIFBJTiBBMQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC40NiAwLjc0NSAwLjU0IDEuMjQ1IDsKLSAgICBFTkQKLSAgRU5EIEExCi0gIFBJTiBCMgotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC44NiAwLjc3NSAwLjk0IDEuMDg1IDsKLSAgICAgICAgUkVDVCAwLjg2IDEuMDA1IDEuMTMgMS4wODUgOwotICAgIEVORAotICBFTkQgQjIKLSAgUElOIEEwCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjA2IDAuNiAwLjE0IDAuNzMgOwotICAgICAgICBSRUNUIDAuMDYgMC42NSAwLjMyIDAuNzMgOwotICAgICAgICBSRUNUIDAuMjIgMC42NSAwLjMyIDAuOTIgOwotICAgIEVORAotICBFTkQgQTAKLSAgUElOIEEyCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjY2IDAuNzkgMC43NCAxLjI5IDsKLSAgICBFTkQKLSAgRU5EIEEyCi0gIFBJTiBCMQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMS4yNiAwLjU4NSAxLjM0IDEuMDg1IDsKLSAgICBFTkQKLSAgRU5EIEIxCi0gIFBJTiBCMAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMS40NCAwLjU4NSAxLjUyIDAuNzA1IDsKLSAgICAgICAgUkVDVCAxLjQ2IDAuNiAxLjU0IDEuMDY1IDsKLSAgICBFTkQKLSAgRU5EIEIwCi0gIFBJTiBWREQKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgUE9XRVIgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWREQgVkREISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAxLjY1IDEuOCAxLjcxIDsKLSAgICBFTkQKLSAgRU5EIFZERAotICBQSU4gVlNTCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIEdST1VORCA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZTUyBWU1MhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDAuMDAgMS44IDAuMDYgOwotICAgIEVORAotICBFTkQgVlNTCi1FTkQgT0FJMzNYTAotCi1NQUNSTyBUTEFUU1JYNAotICBDTEFTUyBDT1JFIDsKLSAgT1JJR0lOIDAgMCA7Ci0gIEZPUkVJR04gVExBVFNSWDQgMCAwIDsKLSAgU0laRSA3LjYgQlkgMS43MSA7Ci0gIFNZTU1FVFJZIFggWSA7Ci0gIFNJVEUgQ29yZVNpdGUgOwotICBQSU4gUU4KLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIE9VVFBVVCA7Ci0gICAgQU5URU5OQURJRkZBUkVBIDEuNzI4NSAgTEFZRVIgTWV0YWwxIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDMuNjYgMC40NjUgMy43MiAxLjA1NSA7Ci0gICAgICAgIFJFQ1QgMy42NiAwLjc5IDMuNzQgMS4wNTUgOwotICAgICAgICBSRUNUIDQuMSAwLjY3NSA0LjE2IDEuMDU1IDsKLSAgICAgICAgUkVDVCAzLjYgMC45OTUgNC4yMiAxLjA1NSA7Ci0gICAgICAgIFJFQ1QgNC4zNiAwLjQ2NSA0LjQyIDAuNzM1IDsKLSAgICAgICAgUkVDVCA0LjEgMC42NzUgNC40MiAwLjczNSA7Ci0gICAgRU5ECi0gIEVORCBRTgotICBQSU4gU04KLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDQuNzc1IDAuODE1IDUuNTIgMC44OTUgOwotICAgIEVORAotICBFTkQgU04KLSAgUElOIFJOCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjY2IDAuNiAwLjczNSAwLjc4IDsKLSAgICAgICAgUkVDVCAwLjY2IDAuNiAwLjc0IDAuNzMgOwotICAgICAgICBSRUNUIDAuOTQgMC4zMDUgMSAwLjY2IDsKLSAgICAgICAgUkVDVCAwLjY2IDAuNiAxIDAuNjYgOwotICAgICAgICBSRUNUIDAuOTQgMC4zMDUgMS4zMiAwLjM2NSA7Ci0gICAgICAgIFJFQ1QgMS4yNiAwLjMwNSAxLjMyIDAuNjA1IDsKLSAgICAgICAgUkVDVCAxLjU4IDAuMzA1IDEuNjQgMC42MDUgOwotICAgICAgICBSRUNUIDEuMjYgMC41NDUgMS42NCAwLjYwNSA7Ci0gICAgICAgIFJFQ1QgMS41OCAwLjMwNSAxLjk2IDAuMzY1IDsKLSAgICAgICAgUkVDVCAxLjkgMC4zMDUgMS45NiAwLjYwNSA7Ci0gICAgICAgIFJFQ1QgMi4yMiAwLjMwNSAyLjI4IDAuNjA1IDsKLSAgICAgICAgUkVDVCAxLjkgMC41NDUgMi4yOCAwLjYwNSA7Ci0gICAgICAgIFJFQ1QgMi4yMiAwLjMwNSAyLjYgMC4zNjUgOwotICAgICAgICBSRUNUIDIuNTQgMC4zMDUgMi42IDAuNjA1IDsKLSAgICAgICAgUkVDVCAyLjg2IDAuMzA1IDIuOTIgMC42MDUgOwotICAgICAgICBSRUNUIDIuNTQgMC41NDUgMi45MiAwLjYwNSA7Ci0gICAgICAgIFJFQ1QgMi44NiAwLjMwNSAzLjI0IDAuMzY1IDsKLSAgICAgICAgUkVDVCAzLjE4IDAuMzA1IDMuMjQgMC42MDUgOwotICAgICAgICBSRUNUIDMuNSAwLjMwNSAzLjU2IDAuNjA1IDsKLSAgICAgICAgUkVDVCAzLjE4IDAuNTQ1IDMuNTYgMC42MDUgOwotICAgICAgICBSRUNUIDMuNSAwLjMwNSAzLjg4IDAuMzY1IDsKLSAgICAgICAgUkVDVCAzLjgyIDAuMzA1IDMuODggMC41NzUgOwotICAgICAgICBSRUNUIDQuMiAwLjMwNSA0LjI2IDAuNTc1IDsKLSAgICAgICAgUkVDVCAzLjgyIDAuNTE1IDQuMjYgMC41NzUgOwotICAgICAgICBSRUNUIDQuMiAwLjMwNSA0LjU4IDAuMzY1IDsKLSAgICAgICAgUkVDVCA0LjUyIDAuMzA1IDQuNTggMC41NTUgOwotICAgICAgICBSRUNUIDQuOSAwLjMwNSA0Ljk2IDAuNTU1IDsKLSAgICAgICAgUkVDVCA0LjUyIDAuNDk1IDQuOTYgMC41NTUgOwotICAgICAgICBSRUNUIDQuOSAwLjMwNSA1LjM5NSAwLjM2NSA7Ci0gICAgICAgIFJFQ1QgNS4zMzUgMC4zNSA1Ljc3NSAwLjQxIDsKLSAgICAgICAgUkVDVCA1LjcxNSAwLjMxIDUuODM1IDAuMzcgOwotICAgIEVORAotICBFTkQgUk4KLSAgUElOIEcKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMjggMC42ODUgMC40IDAuODk1IDsKLSAgICAgICAgUkVDVCAwLjAzIDAuNzk1IDAuNCAwLjg5NSA7Ci0gICAgRU5ECi0gIEVORCBHCi0gIFBJTiBECi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCA2LjgyIDAuNjYgNi45IDAuOTEgOwotICAgICAgICBSRUNUIDYuODIgMC43OSA3LjE0IDAuOTEgOwotICAgICAgICBSRUNUIDcuMDYgMC43OSA3LjE0IDAuOTIgOwotICAgIEVORAotICBFTkQgRAotICBQSU4gUQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gT1VUUFVUIDsKLSAgICBBTlRFTk5BRElGRkFSRUEgMS43Mjg1ICBMQVlFUiBNZXRhbDEgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMS4xIDAuNDY1IDEuMTYgMS4wNTUgOwotICAgICAgICBSRUNUIDEuMSAwLjc5IDEuMzQgMS4wNTUgOwotICAgICAgICBSRUNUIDEuNzQgMC40NjUgMS44IDEuMDU1IDsKLSAgICAgICAgUkVDVCAxLjA3IDAuOTk1IDEuOCAxLjA1NSA7Ci0gICAgRU5ECi0gIEVORCBRCi0gIFBJTiBWREQKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgUE9XRVIgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWREQgVkREISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAxLjY1IDcuNiAxLjcxIDsKLSAgICBFTkQKLSAgRU5EIFZERAotICBQSU4gVlNTCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIEdST1VORCA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZTUyBWU1MhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDAuMDAgNy42IDAuMDYgOwotICAgIEVORAotICBFTkQgVlNTCi1FTkQgVExBVFNSWDQKLQotTUFDUk8gREZGSFFYNAotICBDTEFTUyBDT1JFIDsKLSAgT1JJR0lOIDAgMCA7Ci0gIEZPUkVJR04gREZGSFFYNCAwIDAgOwotICBTSVpFIDQuOCBCWSAxLjcxIDsKLSAgU1lNTUVUUlkgWCBZIDsKLSAgU0lURSBDb3JlU2l0ZSA7Ci0gIFBJTiBECi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCA0LjEgMC44MTUgNC42IDAuODk1IDsKLSAgICBFTkQKLSAgRU5EIEQKLSAgUElOIENLCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjI2IDAuNDMgMC4zNCAwLjkzIDsKLSAgICBFTkQKLSAgRU5EIENLCi0gIFBJTiBRCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBPVVRQVVQgOwotICAgIEFOVEVOTkFESUZGQVJFQSAxLjcyODUgIExBWUVSIE1ldGFsMSA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjU0NSAwLjU3IDAuNzQgMC42MyA7Ci0gICAgICAgIFJFQ1QgMC42NiAwLjU3IDAuNzQgMC43MyA7Ci0gICAgICAgIFJFQ1QgMC42OCAwLjU3IDAuNzQgMS4yOSA7Ci0gICAgICAgIFJFQ1QgMC42NiAwLjY3IDEuMTA1IDAuNzMgOwotICAgICAgICBSRUNUIDEuMDQ1IDAuNTQgMS4xMDUgMC45OSA7Ci0gICAgICAgIFJFQ1QgMS4wOSAwLjkzIDEuMTUgMS4yOSA7Ci0gICAgRU5ECi0gIEVORCBRCi0gIFBJTiBWREQKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgUE9XRVIgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWREQgVkREISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAxLjY1IDQuOCAxLjcxIDsKLSAgICBFTkQKLSAgRU5EIFZERAotICBQSU4gVlNTCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIEdST1VORCA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZTUyBWU1MhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDAuMDAgNC44IDAuMDYgOwotICAgIEVORAotICBFTkQgVlNTCi1FTkQgREZGSFFYNAotCi1NQUNSTyBBT0kyMjFYMgotICBDTEFTUyBDT1JFIDsKLSAgT1JJR0lOIDAgMCA7Ci0gIEZPUkVJR04gQU9JMjIxWDIgMCAwIDsKLSAgU0laRSAyLjYgQlkgMS43MSA7Ci0gIFNZTU1FVFJZIFggWSA7Ci0gIFNJVEUgQ29yZVNpdGUgOwotICBQSU4gWQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gT1VUUFVUIDsKLSAgICBBTlRFTk5BRElGRkFSRUEgMS43Mjg1ICBMQVlFUiBNZXRhbDEgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMS4wNiAwLjc5IDEuMTQgMC45MiA7Ci0gICAgICAgIFJFQ1QgMS4wOCAwLjQ1IDEuMTQgMS4wNTUgOwotICAgICAgICBSRUNUIDAuNjA1IDAuNDUgMi4xNyAwLjUxIDsKLSAgICAgICAgUkVDVCAxLjA4IDAuOTk1IDIuMjggMS4wNTUgOwotICAgICAgICBSRUNUIDIuMjIgMC45OTUgMi4yOCAxLjEzNSA7Ci0gICAgRU5ECi0gIEVORCBZCi0gIFBJTiBCMQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMS40MzUgMC44MTUgMS45MzUgMC44OTUgOwotICAgIEVORAotICBFTkQgQjEKLSAgUElOIEExCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjY2IDAuNzY1IDAuNzQgMS4wNjUgOwotICAgIEVORAotICBFTkQgQTEKLSAgUElOIEEwCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjIzNSAwLjYyNSAwLjM2NSAwLjcxNSA7Ci0gICAgICAgIFJFQ1QgMC4yODUgMC42MSAwLjk2IDAuNjkgOwotICAgIEVORAotICBFTkQgQTAKLSAgUElOIEIwCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAxLjYzNSAwLjYyNSAxLjc2NSAwLjcxNSA7Ci0gICAgICAgIFJFQ1QgMS4yNCAwLjYzNSAxLjkzNSAwLjcxNSA7Ci0gICAgRU5ECi0gIEVORCBCMAotICBQSU4gQzAKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDIuMDY1IDAuODE1IDIuNTY1IDAuODk1IDsKLSAgICBFTkQKLSAgRU5EIEMwCi0gIFBJTiBWREQKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgUE9XRVIgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWREQgVkREISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAxLjY1IDIuNiAxLjcxIDsKLSAgICBFTkQKLSAgRU5EIFZERAotICBQSU4gVlNTCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIEdST1VORCA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZTUyBWU1MhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDAuMDAgMi42IDAuMDYgOwotICAgIEVORAotICBFTkQgVlNTCi1FTkQgQU9JMjIxWDIKLQotTUFDUk8gQURERlgyCi0gIENMQVNTIENPUkUgOwotICBPUklHSU4gMCAwIDsKLSAgRk9SRUlHTiBBRERGWDIgMCAwIDsKLSAgU0laRSA0LjYgQlkgMS43MSA7Ci0gIFNZTU1FVFJZIFggWSA7Ci0gIFNJVEUgQ29yZVNpdGUgOwotICBQSU4gUwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gT1VUUFVUIDsKLSAgICBBTlRFTk5BRElGRkFSRUEgMS43Mjg1ICBMQVlFUiBNZXRhbDEgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgNC4yNTUgMC40MiA0LjMxNSAxLjA5IDsKLSAgICAgICAgUkVDVCA0LjI1NSAwLjYgNC4zNCAwLjczIDsKLSAgICAgICAgUkVDVCA0LjIyNSAxLjAzIDQuMzQ1IDEuMDkgOwotICAgIEVORAotICBFTkQgUwotICBQSU4gQ08KLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIE9VVFBVVCA7Ci0gICAgQU5URU5OQURJRkZBUkVBIDEuNzI4NSAgTEFZRVIgTWV0YWwxIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDYgMC43OSAwLjE0IDAuOTIgOwotICAgICAgICBSRUNUIDAuMDYgMC43OSAwLjMzNSAwLjg1IDsKLSAgICAgICAgUkVDVCAwLjI3NSAwLjU0IDAuMzM1IDEuMzEgOwotICAgIEVORAotICBFTkQgQ08KLSAgUElOIEIKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDEuMTkgMC44MSAxLjQ3IDAuODcgOwotICAgICAgICBSRUNUIDIuMDYgMC44MiAyLjE0IDEuMTEgOwotICAgICAgICBSRUNUIDEuNDI1IDAuODIgMy43MzUgMC44OCA7Ci0gICAgRU5ECi0gIEVORCBCCi0gIFBJTiBBCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjk3IDAuNjg1IDEuMDkgMC43NDUgOwotICAgICAgICBSRUNUIDEuMDMgMC42NSAxLjU3IDAuNzEgOwotICAgICAgICBSRUNUIDEuNTMgMC42NiAzLjk2NSAwLjcyIDsKLSAgICAgICAgUkVDVCAzLjgzNSAwLjY2IDMuOTY1IDAuODk1IDsKLSAgICBFTkQKLSAgRU5EIEEKLSAgUElOIENJCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAxLjYzNSAwLjQzNSAxLjc2NSAwLjU2IDsKLSAgICAgICAgUkVDVCAxLjYzNSAwLjUgMy41MTUgMC41NiA7Ci0gICAgRU5ECi0gIEVORCBDSQotICBQSU4gVkRECi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIFBPV0VSIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVkREIFZERCEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMS42NSA0LjYgMS43MSA7Ci0gICAgRU5ECi0gIEVORCBWREQKLSAgUElOIFZTUwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBHUk9VTkQgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWU1MgVlNTISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAwLjAwIDQuNiAwLjA2IDsKLSAgICBFTkQKLSAgRU5EIFZTUwotRU5EIEFEREZYMgotCi1NQUNSTyBBT0kyMlhMCi0gIENMQVNTIENPUkUgOwotICBPUklHSU4gMCAwIDsKLSAgRk9SRUlHTiBBT0kyMlhMIDAgMCA7Ci0gIFNJWkUgMS40IEJZIDEuNzEgOwotICBTWU1NRVRSWSBYIFkgOwotICBTSVRFIENvcmVTaXRlIDsKLSAgUElOIFkKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIE9VVFBVVCA7Ci0gICAgQU5URU5OQURJRkZBUkVBIDEuNzI4NSAgTEFZRVIgTWV0YWwxIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuNjggMC4yNTUgMC43NCAwLjkyIDsKLSAgICAgICAgUkVDVCAwLjY2IDAuNzkgMC43NCAwLjkyIDsKLSAgICAgICAgUkVDVCAwLjY2IDAuODYgMC45NiAwLjkyIDsKLSAgICAgICAgUkVDVCAwLjkgMC44NiAwLjk2IDEuMTc1IDsKLSAgICAgICAgUkVDVCAwLjkwNSAxLjExNSAwLjk2NSAxLjIzNSA7Ci0gICAgRU5ECi0gIEVORCBZCi0gIFBJTiBBMAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4yNiAwLjQ1IDAuMzQgMC45NSA7Ci0gICAgRU5ECi0gIEVORCBBMAotICBQSU4gQjAKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDEuMDYgMC40NSAxLjE0IDAuOTUgOwotICAgIEVORAotICBFTkQgQjAKLSAgUElOIEIxCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjg0IDAuMjUgMC45MiAwLjczIDsKLSAgICAgICAgUkVDVCAwLjg0IDAuNiAwLjk0IDAuNzMgOwotICAgIEVORAotICBFTkQgQjEKLSAgUElOIEExCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjQ2IDAuMjIgMC41NCAwLjM1IDsKLSAgICAgICAgUkVDVCAwLjQ4IDAuMjkgMC41NiAwLjcgOwotICAgIEVORAotICBFTkQgQTEKLSAgUElOIFZERAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBQT1dFUiA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZERCBWREQhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDEuNjUgMS40IDEuNzEgOwotICAgIEVORAotICBFTkQgVkRECi0gIFBJTiBWU1MKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgR1JPVU5EIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVlNTIFZTUyEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMC4wMCAxLjQgMC4wNiA7Ci0gICAgRU5ECi0gIEVORCBWU1MKLUVORCBBT0kyMlhMCi0KLU1BQ1JPIE5BTkQzQlgyCi0gIENMQVNTIENPUkUgOwotICBPUklHSU4gMCAwIDsKLSAgRk9SRUlHTiBOQU5EM0JYMiAwIDAgOwotICBTSVpFIDEuOCBCWSAxLjcxIDsKLSAgU1lNTUVUUlkgWCBZIDsKLSAgU0lURSBDb3JlU2l0ZSA7Ci0gIFBJTiBZCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBPVVRQVVQgOwotICAgIEFOVEVOTkFESUZGQVJFQSAxLjcyODUgIExBWUVSIE1ldGFsMSA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjE1IDAuMzM1IDAuMjEgMS4wODUgOwotICAgICAgICBSRUNUIDAuMTUgMS4wMDUgMC40MyAxLjA4NSA7Ci0gICAgICAgIFJFQ1QgMC4zNyAxLjAwNSAwLjQzIDEuMzQ1IDsKLSAgICAgICAgUkVDVCAwLjE1IDAuMzM1IDAuODI1IDAuMzk1IDsKLSAgICAgICAgUkVDVCAwLjc5IDEuMDY1IDAuODUgMS4zNDUgOwotICAgICAgICBSRUNUIDAuMzcgMS4wNjUgMS4yNiAxLjEyNSA7Ci0gICAgICAgIFJFQ1QgMS4yIDEuMDIgMS4yNiAxLjM0NSA7Ci0gICAgRU5ECi0gIEVORCBZCi0gIFBJTiBDCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjUzIDAuODE1IDAuOTYgMC44OTUgOwotICAgICAgICBSRUNUIDAuODggMC44MTUgMC45NiAwLjk2NSA7Ci0gICAgRU5ECi0gIEVORCBDCi0gIFBJTiBCCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjQ3IDAuNjU1IDEuMTMgMC43MTUgOwotICAgICAgICBSRUNUIDEuMDYgMC43MTUgMS4xNCAwLjkyIDsKLSAgICBFTkQKLSAgRU5EIEIKLSAgUElOIEFOCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAxLjQ2IDAuNzg1IDEuNTQgMS4xMjUgOwotICAgICAgICBSRUNUIDEuNDkgMC42NTUgMS41NyAwLjkyIDsKLSAgICBFTkQKLSAgRU5EIEFOCi0gIFBJTiBWREQKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgUE9XRVIgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWREQgVkREISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAxLjY1IDEuOCAxLjcxIDsKLSAgICBFTkQKLSAgRU5EIFZERAotICBQSU4gVlNTCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIEdST1VORCA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZTUyBWU1MhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDAuMDAgMS44IDAuMDYgOwotICAgIEVORAotICBFTkQgVlNTCi1FTkQgTkFORDNCWDIKLQotTUFDUk8gU0RGRlRSWEwKLSAgQ0xBU1MgQ09SRSA7Ci0gIE9SSUdJTiAwIDAgOwotICBGT1JFSUdOIFNERkZUUlhMIDAgMCA7Ci0gIFNJWkUgNi40IEJZIDEuNzEgOwotICBTWU1NRVRSWSBYIFkgOwotICBTSVRFIENvcmVTaXRlIDsKLSAgUElOIFEKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIE9VVFBVVCA7Ci0gICAgQU5URU5OQURJRkZBUkVBIDEuNzI4NSAgTEFZRVIgTWV0YWwxIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuODYgMC40NSAwLjk0IDEuMjEgOwotICAgICAgICBSRUNUIDAuODYgMC40NSAxLjAyIDAuNTcgOwotICAgIEVORAotICBFTkQgUQotICBQSU4gUU4KLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIE9VVFBVVCA7Ci0gICAgQU5URU5OQURJRkZBUkVBIDEuNzI4NSAgTEFZRVIgTWV0YWwxIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDYgMC42IDAuMzA1IDAuNzMgOwotICAgICAgICBSRUNUIDAuMjI1IDAuNTQgMC4zMDUgMS4wMiA7Ci0gICAgRU5ECi0gIEVORCBRTgotICBQSU4gRAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgNi4wMzUgMC41NyA2LjIxIDAuODA1IDsKLSAgICAgICAgUkVDVCA1Ljg2NSAwLjcyNSA2LjIxIDAuODA1IDsKLSAgICBFTkQKLSAgRU5EIEQKLSAgUElOIFJOCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCA1LjQ2NSAwLjYyNSA1LjU0NSAwLjkwNSA7Ci0gICAgICAgIFJFQ1QgNS40NjUgMC42MjUgNS43NjUgMC43MDUgOwotICAgIEVORAotICBFTkQgUk4KLSAgUElOIFNFCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCA1LjIzNSAwLjYyNSA1LjM2NSAxLjA3NSA7Ci0gICAgRU5ECi0gIEVORCBTRQotICBQSU4gU0kKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDQuMDYgMC43OSA0LjE0IDAuOTY1IDsKLSAgICAgICAgUkVDVCA0LjExIDAuNTE1IDQuMTkgMC45MSA7Ci0gICAgRU5ECi0gIEVORCBTSQotICBQSU4gQ0sKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDEuMjUgMC44MzUgMS4zNjUgMS4wODUgOwotICAgICAgICBSRUNUIDEuMDQgMS4wMDUgMS4zNjUgMS4wODUgOwotICAgICAgICBSRUNUIDEuMjUgMC44MzUgMS4zNyAwLjkxNSA7Ci0gICAgRU5ECi0gIEVORCBDSwotICBQSU4gVkRECi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIFBPV0VSIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVkREIFZERCEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMS42NSA2LjQgMS43MSA7Ci0gICAgRU5ECi0gIEVORCBWREQKLSAgUElOIFZTUwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBHUk9VTkQgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWU1MgVlNTISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAwLjAwIDYuNCAwLjA2IDsKLSAgICBFTkQKLSAgRU5EIFZTUwotRU5EIFNERkZUUlhMCi0KLU1BQ1JPIE9SM1gyCi0gIENMQVNTIENPUkUgOwotICBPUklHSU4gMCAwIDsKLSAgRk9SRUlHTiBPUjNYMiAwIDAgOwotICBTSVpFIDEuNCBCWSAxLjcxIDsKLSAgU1lNTUVUUlkgWCBZIDsKLSAgU0lURSBDb3JlU2l0ZSA7Ci0gIFBJTiBZCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBPVVRQVVQgOwotICAgIEFOVEVOTkFESUZGQVJFQSAxLjcyODUgIExBWUVSIE1ldGFsMSA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjkzIDAuOTEgMC45OSAxLjMgOwotICAgICAgICBSRUNUIDEuMDI1IDAuMzcgMS4wODUgMC45NyA7Ci0gICAgICAgIFJFQ1QgMC45MyAwLjkxIDEuMDg1IDAuOTcgOwotICAgICAgICBSRUNUIDEuMjYgMC42IDEuMzQgMC43MyA7Ci0gICAgICAgIFJFQ1QgMS4wMjUgMC42NyAxLjM0IDAuNzMgOwotICAgIEVORAotICBFTkQgWQotICBQSU4gQQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC42MjUgMC42MjUgMC43NDUgMS4wNjUgOwotICAgICAgICBSRUNUIDAuNjI1IDAuNjI1IDAuNzY1IDAuNzA1IDsKLSAgICBFTkQKLSAgRU5EIEEKLSAgUElOIEIKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMjYgMC42MzUgMC4zNCAwLjkyIDsKLSAgICAgICAgUkVDVCAwLjI4NSAwLjc5IDAuMzY1IDEuMTEgOwotICAgIEVORAotICBFTkQgQgotICBQSU4gQwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wNiAwLjYxIDAuMTQgMS4xMSA7Ci0gICAgRU5ECi0gIEVORCBDCi0gIFBJTiBWREQKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgUE9XRVIgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWREQgVkREISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAxLjY1IDEuNCAxLjcxIDsKLSAgICBFTkQKLSAgRU5EIFZERAotICBQSU4gVlNTCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIEdST1VORCA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZTUyBWU1MhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDAuMDAgMS40IDAuMDYgOwotICAgIEVORAotICBFTkQgVlNTCi1FTkQgT1IzWDIKLQotTUFDUk8gQ0xLQlVGWDIKLSAgQ0xBU1MgQ09SRSA7Ci0gIE9SSUdJTiAwIDAgOwotICBGT1JFSUdOIENMS0JVRlgyIDAgMCA7Ci0gIFNJWkUgMSBCWSAxLjcxIDsKLSAgU1lNTUVUUlkgWCBZIDsKLSAgU0lURSBDb3JlU2l0ZSA7Ci0gIFBJTiBZCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBPVVRQVVQgOwotICAgIEFOVEVOTkFESUZGQVJFQSAxLjcyODUgIExBWUVSIE1ldGFsMSA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjI2IDAuNiAwLjM2NSAwLjczIDsKLSAgICAgICAgUkVDVCAwLjMwNSAwLjU1NSAwLjM2NSAwLjkyNSA7Ci0gICAgICAgIFJFQ1QgMC4zNSAwLjQ5NSAwLjQxIDAuNjE1IDsKLSAgICAgICAgUkVDVCAwLjM1IDAuODY1IDAuNDEgMS4zMiA7Ci0gICAgRU5ECi0gIEVORCBZCi0gIFBJTiBBCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjY4NSAwLjc2IDAuNzY1IDEuMDg1IDsKLSAgICAgICAgUkVDVCAwLjUxIDEuMDA1IDAuNzY1IDEuMDg1IDsKLSAgICBFTkQKLSAgRU5EIEEKLSAgUElOIFZERAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBQT1dFUiA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZERCBWREQhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDEuNjUgMSAxLjcxIDsKLSAgICBFTkQKLSAgRU5EIFZERAotICBQSU4gVlNTCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIEdST1VORCA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZTUyBWU1MhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDAuMDAgMSAwLjA2IDsKLSAgICBFTkQKLSAgRU5EIFZTUwotRU5EIENMS0JVRlgyCi0KLU1BQ1JPIFRMQVRYMQotICBDTEFTUyBDT1JFIDsKLSAgT1JJR0lOIDAgMCA7Ci0gIEZPUkVJR04gVExBVFgxIDAgMCA7Ci0gIFNJWkUgMy4yIEJZIDEuNzEgOwotICBTWU1NRVRSWSBYIFkgOwotICBTSVRFIENvcmVTaXRlIDsKLSAgUElOIFEKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIE9VVFBVVCA7Ci0gICAgQU5URU5OQURJRkZBUkVBIDEuNzI4NSAgTEFZRVIgTWV0YWwxIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDMuMDQ1IDAuNTQgMy4xNjUgMC43MDUgOwotICAgICAgICBSRUNUIDMuMDM1IDAuNjI1IDMuMTY1IDAuNzA1IDsKLSAgICAgICAgUkVDVCAzLjA3IDAuNTQgMy4xNjUgMS4zMjUgOwotICAgIEVORAotICBFTkQgUQotICBQSU4gUU4KLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIE9VVFBVVCA7Ci0gICAgQU5URU5OQURJRkZBUkVBIDEuNzI4NSAgTEFZRVIgTWV0YWwxIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDIuMjYgMC42IDIuMzQgMC43MyA7Ci0gICAgICAgIFJFQ1QgMi4yOCAwLjU0IDIuMzQgMS40MTUgOwotICAgIEVORAotICBFTkQgUU4KLSAgUElOIEcKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDEuODYgMC43OCAxLjk0IDEuMjggOwotICAgIEVORAotICBFTkQgRwotICBQSU4gRAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC40NiAwLjYyIDAuNTQgMS4wMjUgOwotICAgICAgICBSRUNUIDAuNDYgMC43MjUgMC42MzUgMS4wMjUgOwotICAgIEVORAotICBFTkQgRAotICBQSU4gVkRECi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIFBPV0VSIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVkREIFZERCEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMS42NSAzLjIgMS43MSA7Ci0gICAgRU5ECi0gIEVORCBWREQKLSAgUElOIFZTUwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBHUk9VTkQgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWU1MgVlNTISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAwLjAwIDMuMiAwLjA2IDsKLSAgICBFTkQKLSAgRU5EIFZTUwotRU5EIFRMQVRYMQotCi1NQUNSTyBERkZIUVgyCi0gIENMQVNTIENPUkUgOwotICBPUklHSU4gMCAwIDsKLSAgRk9SRUlHTiBERkZIUVgyIDAgMCA7Ci0gIFNJWkUgNCBCWSAxLjcxIDsKLSAgU1lNTUVUUlkgWCBZIDsKLSAgU0lURSBDb3JlU2l0ZSA7Ci0gIFBJTiBRCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBPVVRQVVQgOwotICAgIEFOVEVOTkFESUZGQVJFQSAxLjcyODUgIExBWUVSIE1ldGFsMSA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAzLjI2IDAuOTggMy4zNCAxLjExIDsKLSAgICAgICAgUkVDVCAzLjI4IDAuOTIgMy4zNCAxLjQ2NSA7Ci0gICAgICAgIFJFQ1QgMy4zMTUgMC41NCAzLjM3NSAwLjk4IDsKLSAgICBFTkQKLSAgRU5EIFEKLSAgUElOIEQKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuNzQ1IDAuODA1IDAuOTY1IDEuMDg1IDsKLSAgICAgICAgUkVDVCAwLjc0NSAwLjgwNSAxLjA0NSAwLjg4NSA7Ci0gICAgRU5ECi0gIEVORCBECi0gIFBJTiBDSwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wNiAwLjU0IDAuMTQgMC43MyA7Ci0gICAgICAgIFJFQ1QgMC4wNiAwLjY1IDAuMjg1IDAuNzMgOwotICAgICAgICBSRUNUIDAuMjA1IDAuNjUgMC4yODUgMC44OTUgOwotICAgIEVORAotICBFTkQgQ0sKLSAgUElOIFZERAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBQT1dFUiA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZERCBWREQhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDEuNjUgNCAxLjcxIDsKLSAgICBFTkQKLSAgRU5EIFZERAotICBQSU4gVlNTCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIEdST1VORCA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZTUyBWU1MhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDAuMDAgNCAwLjA2IDsKLSAgICBFTkQKLSAgRU5EIFZTUwotRU5EIERGRkhRWDIKLQotTUFDUk8gTVhJNFhMCi0gIENMQVNTIENPUkUgOwotICBPUklHSU4gMCAwIDsKLSAgRk9SRUlHTiBNWEk0WEwgMCAwIDsKLSAgU0laRSA0LjIgQlkgMS43MSA7Ci0gIFNZTU1FVFJZIFggWSA7Ci0gIFNJVEUgQ29yZVNpdGUgOwotICBQSU4gWQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gT1VUUFVUIDsKLSAgICBBTlRFTk5BRElGRkFSRUEgMS43Mjg1ICBMQVlFUiBNZXRhbDEgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wNiAwLjYgMC4yMTUgMC43MyA7Ci0gICAgICAgIFJFQ1QgMC4xMzUgMC41NCAwLjIxNSAxLjAyIDsKLSAgICBFTkQKLSAgRU5EIFkKLSAgUElOIFMwCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAzLjQzNSAwLjgxNSAzLjkzNSAwLjg5NSA7Ci0gICAgRU5ECi0gIEVORCBTMAotICBQSU4gQQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMy40MzUgMC45OTUgMy44OSAxLjA4NSA7Ci0gICAgICAgIFJFQ1QgMy40ODUgMC45OTUgMy44OSAxLjEyIDsKLSAgICBFTkQKLSAgRU5EIEEKLSAgUElOIEIKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDIuNzc1IDAuNzQ1IDIuODU1IDEuMDg1IDsKLSAgICAgICAgUkVDVCAyLjc3NSAxLjAwNSAzLjAxNSAxLjA4NSA7Ci0gICAgRU5ECi0gIEVORCBCCi0gIFBJTiBDCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAyLjMgMC44OCAyLjU2NSAxLjA4NSA7Ci0gICAgICAgIFJFQ1QgMi4zIDAuODggMi42NzUgMC45NiA7Ci0gICAgRU5ECi0gIEVORCBDCi0gIFBJTiBECi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAxLjYgMC42MjUgMS43NjUgMC43MDUgOwotICAgICAgICBSRUNUIDEuNjg1IDAuNjI1IDEuNzY1IDAuOTg1IDsKLSAgICAgICAgUkVDVCAxLjY4NSAwLjkwNSAxLjgyIDAuOTg1IDsKLSAgICBFTkQKLSAgRU5EIEQKLSAgUElOIFMxCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjQ2IDAuNDEgMC41NCAwLjU0IDsKLSAgICAgICAgUkVDVCAwLjQ4IDAuMjcgMC41NCAwLjgzIDsKLSAgICAgICAgUkVDVCAwLjQ4IDAuNzEgMC41NDUgMC44MyA7Ci0gICAgICAgIFJFQ1QgMS4wNiAwLjI0NSAxLjE4IDAuMzMgOwotICAgICAgICBSRUNUIDAuNDggMC4yNyAxLjM5IDAuMzMgOwotICAgICAgICBSRUNUIDEuMzMgMC4yNyAxLjM5IDAuOTYgOwotICAgIEVORAotICBFTkQgUzEKLSAgUElOIFZERAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBQT1dFUiA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZERCBWREQhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDEuNjUgNC4yIDEuNzEgOwotICAgIEVORAotICBFTkQgVkRECi0gIFBJTiBWU1MKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgR1JPVU5EIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVlNTIFZTUyEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMC4wMCA0LjIgMC4wNiA7Ci0gICAgRU5ECi0gIEVORCBWU1MKLUVORCBNWEk0WEwKLQotTUFDUk8gQU9JMkJCMlgyCi0gIENMQVNTIENPUkUgOwotICBPUklHSU4gMCAwIDsKLSAgRk9SRUlHTiBBT0kyQkIyWDIgMCAwIDsKLSAgU0laRSAzIEJZIDEuNzEgOwotICBTWU1NRVRSWSBYIFkgOwotICBTSVRFIENvcmVTaXRlIDsKLSAgUElOIFkKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIE9VVFBVVCA7Ci0gICAgQU5URU5OQURJRkZBUkVBIDEuNzI4NSAgTEFZRVIgTWV0YWwxIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDEuNDA1IDAuNDQ1IDEuNjcgMC41MDUgOwotICAgICAgICBSRUNUIDEuODYgMC43OSAxLjk0IDAuOTIgOwotICAgICAgICBSRUNUIDEuODggMC40NjUgMS45NCAxLjA1NSA7Ci0gICAgICAgIFJFQ1QgMi4xIDAuOTk1IDIuMTYgMS4xMzUgOwotICAgICAgICBSRUNUIDEuNjEgMC40NjUgMi4zMzUgMC41MjUgOwotICAgICAgICBSRUNUIDIuMjc1IDAuNDQ1IDIuMzk1IDAuNTA1IDsKLSAgICAgICAgUkVDVCAxLjg4IDAuOTk1IDIuNTcgMS4wNTUgOwotICAgICAgICBSRUNUIDIuNTEgMC45OTUgMi41NyAxLjEzNSA7Ci0gICAgRU5ECi0gIEVORCBZCi0gIFBJTiBCMQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMi4wNzUgMC44MDUgMi41NjUgMC44OTUgOwotICAgIEVORAotICBFTkQgQjEKLSAgUElOIEIwCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAyLjA0IDAuNjI1IDIuNjMgMC43MDUgOwotICAgIEVORAotICBFTkQgQjAKLSAgUElOIEEwTgotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC40NiAwLjYgMC41NCAxLjEgOwotICAgIEVORAotICBFTkQgQTBOCi0gIFBJTiBBMU4KLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMjYgMC40NiAwLjM0IDAuOTYgOwotICAgIEVORAotICBFTkQgQTFOCi0gIFBJTiBWREQKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgUE9XRVIgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWREQgVkREISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAxLjY1IDMgMS43MSA7Ci0gICAgRU5ECi0gIEVORCBWREQKLSAgUElOIFZTUwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBHUk9VTkQgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWU1MgVlNTISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAwLjAwIDMgMC4wNiA7Ci0gICAgRU5ECi0gIEVORCBWU1MKLUVORCBBT0kyQkIyWDIKLQotTUFDUk8gU0VERkZUUlgyCi0gIENMQVNTIENPUkUgOwotICBPUklHSU4gMCAwIDsKLSAgRk9SRUlHTiBTRURGRlRSWDIgMCAwIDsKLSAgU0laRSA4LjIgQlkgMS43MSA7Ci0gIFNZTU1FVFJZIFggWSA7Ci0gIFNJVEUgQ29yZVNpdGUgOwotICBQSU4gUU4KLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIE9VVFBVVCA7Ci0gICAgQU5URU5OQURJRkZBUkVBIDEuNzI4NSAgTEFZRVIgTWV0YWwxIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDQuODYgMC42IDUuMDY1IDAuNzMgOwotICAgICAgICBSRUNUIDQuOTg1IDAuNTIgNS4wNjUgMS4wMiA7Ci0gICAgICAgIFJFQ1QgNC45ODUgMC41MiA1LjE5IDAuNiA7Ci0gICAgRU5ECi0gIEVORCBRTgotICBQSU4gUQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gT1VUUFVUIDsKLSAgICBBTlRFTk5BRElGRkFSRUEgMS43Mjg1ICBMQVlFUiBNZXRhbDEgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgNC41MzUgMC44ODUgNC42MTUgMS4wMiA7Ci0gICAgICAgIFJFQ1QgNC42IDAuNTIgNC42OCAwLjk5IDsKLSAgICAgICAgUkVDVCA0LjUzNSAwLjg4NSA0LjY4NSAwLjk5IDsKLSAgICAgICAgUkVDVCA0LjYgMC41MiA0LjcyIDAuNiA7Ci0gICAgICAgIFJFQ1QgNC42IDAuNzkgNC43NCAwLjkyIDsKLSAgICBFTkQKLSAgRU5EIFEKLSAgUElOIEQKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDcuODM1IDAuNjE1IDcuOTU1IDEuMDY1IDsKLSAgICAgICAgUkVDVCA3LjgzNSAwLjgxNSA3Ljk2NSAxLjA2NSA7Ci0gICAgRU5ECi0gIEVORCBECi0gIFBJTiBFCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCA3LjQ5NSAwLjc3NSA3LjU3NSAwLjg5NSA7Ci0gICAgICAgIFJFQ1QgNy4wMzUgMC44MTUgNy41NzUgMC44OTUgOwotICAgIEVORAotICBFTkQgRQotICBQSU4gUk4KLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDUuNzYgMC44MTUgNi4wMjUgMS4xMyA7Ci0gICAgRU5ECi0gIEVORCBSTgotICBQSU4gQ0sKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDQuMjYgMC42OCA0LjM0IDEuMTggOwotICAgIEVORAotICBFTkQgQ0sKLSAgUElOIFNJCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjE5IDAuODA1IDAuNjcgMC44OTUgOwotICAgICAgICBSRUNUIDAuMTkgMC44MTUgMC42OCAwLjg5NSA7Ci0gICAgRU5ECi0gIEVORCBTSQotICBQSU4gU0UKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMjM1IDAuNjI1IDAuNDM1IDAuNzA1IDsKLSAgICAgICAgUkVDVCAwLjYzNSAwLjMgMC42OTUgMC43MDUgOwotICAgICAgICBSRUNUIDAuMjM1IDAuNjQ1IDAuODQgMC43MDUgOwotICAgICAgICBSRUNUIDAuNjM1IDAuMyAxLjE2IDAuMzYgOwotICAgICAgICBSRUNUIDEuMSAwLjMgMS4xNiAwLjg1IDsKLSAgICBFTkQKLSAgRU5EIFNFCi0gIFBJTiBWREQKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgUE9XRVIgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWREQgVkREISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAxLjY1IDguMiAxLjcxIDsKLSAgICBFTkQKLSAgRU5EIFZERAotICBQSU4gVlNTCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIEdST1VORCA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZTUyBWU1MhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDAuMDAgOC4yIDAuMDYgOwotICAgIEVORAotICBFTkQgVlNTCi1FTkQgU0VERkZUUlgyCi0KLU1BQ1JPIFNERkZOU1JYMgotICBDTEFTUyBDT1JFIDsKLSAgT1JJR0lOIDAgMCA7Ci0gIEZPUkVJR04gU0RGRk5TUlgyIDAgMCA7Ci0gIFNJWkUgOC42IEJZIDEuNzEgOwotICBTWU1NRVRSWSBYIFkgOwotICBTSVRFIENvcmVTaXRlIDsKLSAgUElOIFFOCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBPVVRQVVQgOwotICAgIEFOVEVOTkFESUZGQVJFQSAxLjcyODUgIExBWUVSIE1ldGFsMSA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCA3LjgzNSAwLjYyNSA3Ljk2NSAwLjcwNSA7Ci0gICAgICAgIFJFQ1QgNy44ODUgMC41MzUgNy45NjUgMC45OSA7Ci0gICAgICAgIFJFQ1QgNy45MSAwLjQ5NSA3Ljk5IDAuNjE1IDsKLSAgICAgICAgUkVDVCA3Ljg4NSAwLjkxIDguMDIgMC45OSA7Ci0gICAgRU5ECi0gIEVORCBRTgotICBQSU4gUQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gT1VUUFVUIDsKLSAgICBBTlRFTk5BRElGRkFSRUEgMS43Mjg1ICBMQVlFUiBNZXRhbDEgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgNy4yNiAwLjk4IDcuNDY1IDEuMTEgOwotICAgICAgICBSRUNUIDcuNDA1IDAuNDk1IDcuNDY1IDEuNDEgOwotICAgIEVORAotICBFTkQgUQotICBQSU4gU0UKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuNDYgMC40MSAwLjU0IDAuNTQgOwotICAgICAgICBSRUNUIDAuNDYgMC40MiAwLjY0IDAuNTQgOwotICAgICAgICBSRUNUIDAuMTk1IDAuNDYgMC42NCAwLjU0IDsKLSAgICAgICAgUkVDVCAwLjU2IDAuNDIgMC42NCAwLjU0NSA7Ci0gICAgRU5ECi0gIEVORCBTRQotICBQSU4gU04KLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDMuMjYgMC4zMyAzLjM0IDAuNzA1IDsKLSAgICAgICAgUkVDVCAzLjI2IDAuNjI1IDMuNDY1IDAuNzA1IDsKLSAgICBFTkQKLSAgRU5EIFNOCi0gIFBJTiBECi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAxLjA2IDAuNjUgMS4xNCAxLjE1IDsKLSAgICBFTkQKLSAgRU5EIEQKLSAgUElOIFNJCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjM4IDAuNjQgMC40NiAxLjAyIDsKLSAgICAgICAgUkVDVCAwLjI2IDAuNzkgMC40NiAxLjAyIDsKLSAgICBFTkQKLSAgRU5EIFNJCi0gIFBJTiBSTgotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgNy4wNiAwLjY5IDcuMTQgMS4xOSA7Ci0gICAgRU5ECi0gIEVORCBSTgotICBQSU4gQ0tOCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAxLjMzNSAwLjU4NSAxLjQxNSAwLjg5NSA7Ci0gICAgICAgIFJFQ1QgMS4zMzUgMC44MTUgMS42MDUgMC44OTUgOwotICAgIEVORAotICBFTkQgQ0tOCi0gIFBJTiBWREQKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgUE9XRVIgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWREQgVkREISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAxLjY1IDguNiAxLjcxIDsKLSAgICBFTkQKLSAgRU5EIFZERAotICBQSU4gVlNTCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIEdST1VORCA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZTUyBWU1MhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDAuMDAgOC42IDAuMDYgOwotICAgIEVORAotICBFTkQgVlNTCi1FTkQgU0RGRk5TUlgyCi0KLU1BQ1JPIElOVlg4Ci0gIENMQVNTIENPUkUgOwotICBPUklHSU4gMCAwIDsKLSAgRk9SRUlHTiBJTlZYOCAwIDAgOwotICBTSVpFIDEuNjM1IEJZIDEuNzEgOwotICBTWU1NRVRSWSBYIFkgIDsKLSAgU0lURSBDb3JlU2l0ZSA7Ci0gIFBJTiBZCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBPVVRQVVQgOwotICAgIEFOVEVOTkFESUZGQVJFQSAxLjcyODUgIExBWUVSIE1ldGFsMSA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAxLjQ4NSAwLjcyIDEuNTY1IDAuOCA7Ci0gICAgRU5ECi0gIEVORCBZCi0gIFBJTiBBCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjA3IDAuNzIgMC4xNSAwLjg3IDsKLSAgICBFTkQKLSAgRU5EIEEKLSAgUElOIFZERAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBQT1dFUiA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZERCBWREQhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDEuNjUgMS42MzUgMS43MSA7Ci0gICAgRU5ECi0gIEVORCBWREQKLSAgUElOIFZTUwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBHUk9VTkQgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWU1MgVlNTISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAwLjAwIDEuNjM1IDAuMDYgOwotICAgIEVORAotICBFTkQgVlNTCi1FTkQgSU5WWDgKLQotTUFDUk8gQU9JMzNYMQotICBDTEFTUyBDT1JFIDsKLSAgT1JJR0lOIDAgMCA7Ci0gIEZPUkVJR04gQU9JMzNYMSAwIDAgOwotICBTSVpFIDEuNiBCWSAxLjcxIDsKLSAgU1lNTUVUUlkgWCBZIDsKLSAgU0lURSBDb3JlU2l0ZSA7Ci0gIFBJTiBZCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBPVVRQVVQgOwotICAgIEFOVEVOTkFESUZGQVJFQSAxLjcyODUgIExBWUVSIE1ldGFsMSA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjc5NSAwLjM4IDAuODU1IDAuNSA7Ci0gICAgICAgIFJFQ1QgMSAxLjIgMS4wNiAxLjMyIDsKLSAgICAgICAgUkVDVCAwLjc5NSAwLjQ0IDEuNTIgMC41IDsKLSAgICAgICAgUkVDVCAxIDEuMiAxLjUyIDEuMjYgOwotICAgICAgICBSRUNUIDEuNDYgMC40NCAxLjUyIDEuNDggOwotICAgICAgICBSRUNUIDEuNDYgMC45OCAxLjU0IDEuMTEgOwotICAgIEVORAotICBFTkQgWQotICBQSU4gQTAKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMjYgMC40OSAwLjM0IDAuOTkgOwotICAgIEVORAotICBFTkQgQTAKLSAgUElOIEEyCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjY2IDAuNiAwLjc0IDEuMSA7Ci0gICAgRU5ECi0gIEVORCBBMgotICBQSU4gQjEKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDEuMDYgMC43OSAxLjE0IDEuMDg1IDsKLSAgICAgICAgUkVDVCAxLjA3NSAwLjYgMS4xNTUgMC44NyA7Ci0gICAgRU5ECi0gIEVORCBCMQotICBQSU4gQjAKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDEuMjYgMC42IDEuMzQgMS4xIDsKLSAgICBFTkQKLSAgRU5EIEIwCi0gIFBJTiBBMQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC40NiAwLjIzIDAuNTQgMC43MyA7Ci0gICAgRU5ECi0gIEVORCBBMQotICBQSU4gQjIKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuODYgMC42IDAuOTQgMS4xIDsKLSAgICBFTkQKLSAgRU5EIEIyCi0gIFBJTiBWREQKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgUE9XRVIgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWREQgVkREISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAxLjY1IDEuNiAxLjcxIDsKLSAgICBFTkQKLSAgRU5EIFZERAotICBQSU4gVlNTCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIEdST1VORCA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZTUyBWU1MhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDAuMDAgMS42IDAuMDYgOwotICAgIEVORAotICBFTkQgVlNTCi1FTkQgQU9JMzNYMQotCi1NQUNSTyBPUjRYNAotICBDTEFTUyBDT1JFIDsKLSAgT1JJR0lOIDAgMCA7Ci0gIEZPUkVJR04gT1I0WDQgMCAwIDsKLSAgU0laRSAyLjIgQlkgMS43MSA7Ci0gIFNZTU1FVFJZIFggWSA7Ci0gIFNJVEUgQ29yZVNpdGUgOwotICBQSU4gWQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gT1VUUFVUIDsKLSAgICBBTlRFTk5BRElGRkFSRUEgMS43Mjg1ICBMQVlFUiBNZXRhbDEgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMS4zODUgMC45OSAxLjQ0NSAxLjM2IDsKLSAgICAgICAgUkVDVCAxLjQ0IDAuNDA1IDEuNSAwLjU0NSA7Ci0gICAgICAgIFJFQ1QgMS4zODUgMC45OSAxLjk0IDEuMDUgOwotICAgICAgICBSRUNUIDEuNzk1IDAuOTkgMS44NTUgMS4zNiA7Ci0gICAgICAgIFJFQ1QgMS44NSAwLjQwNSAxLjk0IDAuNTQ1IDsKLSAgICAgICAgUkVDVCAxLjQ0IDAuNDg1IDEuOTQgMC41NDUgOwotICAgICAgICBSRUNUIDEuODggMC40MDUgMS45NCAxLjMgOwotICAgICAgICBSRUNUIDEuNzk1IDAuOTkgMS45NCAxLjMgOwotICAgIEVORAotICBFTkQgWQotICBQSU4gQgotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC42NiAwLjc5IDAuNzQgMS4xNCA7Ci0gICAgICAgIFJFQ1QgMC42NjUgMC42NDUgMC43NDUgMC45MiA7Ci0gICAgRU5ECi0gIEVORCBCCi0gIFBJTiBDCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjQ4IDAuNjQ1IDAuNTYgMS4xMjUgOwotICAgICAgICBSRUNUIDAuNDYgMC44IDAuNTYgMS4xMjUgOwotICAgIEVORAotICBFTkQgQwotICBQSU4gRAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4yNiAwLjYxIDAuMzQgMS4xMSA7Ci0gICAgRU5ECi0gIEVORCBECi0gIFBJTiBBCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAxLjI2IDAuNDg1IDEuMzQgMC43MyA7Ci0gICAgICAgIFJFQ1QgMS4wMDUgMC42NSAxLjM0IDAuNzMgOwotICAgIEVORAotICBFTkQgQQotICBQSU4gVkRECi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIFBPV0VSIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVkREIFZERCEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMS42NSAyLjIgMS43MSA7Ci0gICAgRU5ECi0gIEVORCBWREQKLSAgUElOIFZTUwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBHUk9VTkQgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWU1MgVlNTISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAwLjAwIDIuMiAwLjA2IDsKLSAgICBFTkQKLSAgRU5EIFZTUwotRU5EIE9SNFg0Ci0KLU1BQ1JPIERGRk5TUlgxCi0gIENMQVNTIENPUkUgOwotICBPUklHSU4gMCAwIDsKLSAgRk9SRUlHTiBERkZOU1JYMSAwIDAgOwotICBTSVpFIDYuNCBCWSAxLjcxIDsKLSAgU1lNTUVUUlkgWCBZIDsKLSAgU0lURSBDb3JlU2l0ZSA7Ci0gIFBJTiBRCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBPVVRQVVQgOwotICAgIEFOVEVOTkFESUZGQVJFQSAxLjcyODUgIExBWUVSIE1ldGFsMSA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjg2IDAuOTU1IDAuOTk1IDEuMTEgOwotICAgICAgICBSRUNUIDAuODkgMC40NzUgMC45NSAxLjExIDsKLSAgICAgICAgUkVDVCAwLjkzNSAwLjk1NSAwLjk5NSAxLjM0NSA7Ci0gICAgICAgIFJFQ1QgMC45NCAwLjQzNSAxIDAuNTU1IDsKLSAgICBFTkQKLSAgRU5EIFEKLSAgUElOIFFOCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBPVVRQVVQgOwotICAgIEFOVEVOTkFESUZGQVJFQSAxLjcyODUgIExBWUVSIE1ldGFsMSA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjA2IDAuNDEgMC4zMjUgMC41NCA7Ci0gICAgICAgIFJFQ1QgMC4yNDUgMC40MSAwLjMyNSAxLjI5IDsKLSAgICBFTkQKLSAgRU5EIFFOCi0gIFBJTiBDS04KLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDYuMDYgMC41MiA2LjE0IDEuMDIgOwotICAgIEVORAotICBFTkQgQ0tOCi0gIFBJTiBECi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCA1LjQ0NSAwLjQ2IDUuNTI1IDAuOTQ1IDsKLSAgICAgICAgUkVDVCA1LjQ0NSAwLjQ2IDUuNTQgMC44MTUgOwotICAgIEVORAotICBFTkQgRAotICBQSU4gU04KLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDIuMDA1IDAuNzcgMi4xMjUgMC44MyA7Ci0gICAgICAgIFJFQ1QgMi4wMzUgMS4wMDUgMi4xNjUgMS4wODUgOwotICAgICAgICBSRUNUIDIuMDYgMC43NyAyLjEyNSAxLjA4NSA7Ci0gICAgICAgIFJFQ1QgMi4xMDUgMS4wMDUgMi4xNjUgMS4yMyA7Ci0gICAgICAgIFJFQ1QgMi4xMDUgMS4xNyAzLjE2NSAxLjIzIDsKLSAgICAgICAgUkVDVCAzLjEwNSAxLjE4NSA0LjAxNSAxLjI0NSA7Ci0gICAgICAgIFJFQ1QgMy45NTUgMS4xODUgNC4wMTUgMS40NjUgOwotICAgICAgICBSRUNUIDMuOTU1IDEuNDA1IDQuNDcgMS40NjUgOwotICAgIEVORAotICBFTkQgU04KLSAgUElOIFJOCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAxLjA5NSAwLjgxNSAxLjM0IDEuMTI1IDsKLSAgICAgICAgUkVDVCAxLjA5NSAwLjgxNSAxLjM2NSAwLjg5NSA7Ci0gICAgRU5ECi0gIEVORCBSTgotICBQSU4gVkRECi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIFBPV0VSIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVkREIFZERCEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMS42NSA2LjQgMS43MSA7Ci0gICAgRU5ECi0gIEVORCBWREQKLSAgUElOIFZTUwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBHUk9VTkQgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWU1MgVlNTISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAwLjAwIDYuNCAwLjA2IDsKLSAgICBFTkQKLSAgRU5EIFZTUwotRU5EIERGRk5TUlgxCi0KLU1BQ1JPIE5BTkQzWDIKLSAgQ0xBU1MgQ09SRSA7Ci0gIE9SSUdJTiAwIDAgOwotICBGT1JFSUdOIE5BTkQzWDIgMCAwIDsKLSAgU0laRSAxLjYgQlkgMS43MSA7Ci0gIFNZTU1FVFJZIFggWSA7Ci0gIFNJVEUgQ29yZVNpdGUgOwotICBQSU4gWQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gT1VUUFVUIDsKLSAgICBBTlRFTk5BRElGRkFSRUEgMS43Mjg1ICBMQVlFUiBNZXRhbDEgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4zNiAxLjA1NSAwLjQzIDEuMzM1IDsKLSAgICAgICAgUkVDVCAwLjc4IDEuMDU1IDAuODQgMS4zMzUgOwotICAgICAgICBSRUNUIDEuMTkgMS4wNTUgMS4yNSAxLjMzNSA7Ci0gICAgICAgIFJFQ1QgMC43OTUgMC4zMzUgMS41NjUgMC4zOTUgOwotICAgICAgICBSRUNUIDEuNDM1IDEuMDA1IDEuNTY1IDEuMTE1IDsKLSAgICAgICAgUkVDVCAxLjUwNSAwLjMzNSAxLjU2NSAxLjExNSA7Ci0gICAgICAgIFJFQ1QgMC4zNiAxLjA1NSAxLjU2NSAxLjExNSA7Ci0gICAgRU5ECi0gIEVORCBZCi0gIFBJTiBDCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjUyIDAuODE1IDAuNzY1IDAuOTU1IDsKLSAgICAgICAgUkVDVCAwLjUyIDAuODE1IDAuOTYgMC44OTUgOwotICAgIEVORAotICBFTkQgQwotICBQSU4gQgotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC40NyAwLjY1NSAxLjE0IDAuNzE1IDsKLSAgICAgICAgUkVDVCAxLjA2IDAuNjU1IDEuMTQgMC45MiA7Ci0gICAgRU5ECi0gIEVORCBCCi0gIFBJTiBBCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjMxIDAuNDk1IDAuMzcgMC43MzUgOwotICAgICAgICBSRUNUIDAuMjYgMC42IDAuMzcgMC43MzUgOwotICAgICAgICBSRUNUIDAuMzEgMC40OTUgMS4zIDAuNTU1IDsKLSAgICAgICAgUkVDVCAxLjI0IDAuNDk1IDEuMyAwLjczNSA7Ci0gICAgRU5ECi0gIEVORCBBCi0gIFBJTiBWREQKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgUE9XRVIgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWREQgVkREISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAxLjY1IDEuNiAxLjcxIDsKLSAgICBFTkQKLSAgRU5EIFZERAotICBQSU4gVlNTCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIEdST1VORCA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZTUyBWU1MhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDAuMDAgMS42IDAuMDYgOwotICAgIEVORAotICBFTkQgVlNTCi1FTkQgTkFORDNYMgotCi1NQUNSTyBBRERGSFg0Ci0gIENMQVNTIENPUkUgOwotICBPUklHSU4gMCAwIDsKLSAgRk9SRUlHTiBBRERGSFg0IDAgMCA7Ci0gIFNJWkUgNS42IEJZIDEuNzEgOwotICBTWU1NRVRSWSBYIFkgOwotICBTSVRFIENvcmVTaXRlIDsKLSAgUElOIFMKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIE9VVFBVVCA7Ci0gICAgQU5URU5OQURJRkZBUkVBIDEuNzI4NSAgTEFZRVIgTWV0YWwxIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDQuNzQ1IDAuNDE1IDQuODA1IDAuNTU1IDsKLSAgICAgICAgUkVDVCA0Ljc0NSAxIDQuODA1IDEuMzkgOwotICAgICAgICBSRUNUIDQuNzQ1IDAuNDk1IDUuMjg1IDAuNTU1IDsKLSAgICAgICAgUkVDVCA1LjE1NSAxIDUuMjE1IDEuMzkgOwotICAgICAgICBSRUNUIDUuMTY1IDAuNDE1IDUuMjI1IDAuNTU1IDsKLSAgICAgICAgUkVDVCA1LjIyNSAwLjQ5NSA1LjI4NSAxLjA2IDsKLSAgICAgICAgUkVDVCA0Ljc0NSAxIDUuMjg1IDEuMDYgOwotICAgICAgICBSRUNUIDUuMjI1IDAuNiA1LjM0IDAuNzMgOwotICAgIEVORAotICBFTkQgUwotICBQSU4gQ08KLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIE9VVFBVVCA7Ci0gICAgQU5URU5OQURJRkZBUkVBIDEuNzI4NSAgTEFZRVIgTWV0YWwxIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMjYgMC42IDAuMzQgMC43MyA7Ci0gICAgICAgIFJFQ1QgMC4yOCAwLjYgMC4zNCAwLjk4IDsKLSAgICAgICAgUkVDVCAwLjM0IDAuNTIgMC40IDAuNjYgOwotICAgICAgICBSRUNUIDAuMzQgMC45MiAwLjQgMS4yOTUgOwotICAgICAgICBSRUNUIDAuMjggMC45MiAwLjgyIDAuOTggOwotICAgICAgICBSRUNUIDAuNzYgMC41MiAwLjgyIDAuNjYgOwotICAgICAgICBSRUNUIDAuMjYgMC42IDAuODIgMC42NiA7Ci0gICAgICAgIFJFQ1QgMC43NiAwLjkyIDAuODIgMS4yOTUgOwotICAgIEVORAotICBFTkQgQ08KLSAgUElOIEIKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDEuNzY1IDAuNzkgMi41MjUgMC44NSA7Ci0gICAgICAgIFJFQ1QgMi4yNiAwLjc5IDIuNTI1IDAuOTQgOwotICAgICAgICBSRUNUIDIuMjYgMC44OCAzLjIzNSAwLjk0IDsKLSAgICAgICAgUkVDVCAzLjE3NSAwLjgyIDQuMzI1IDAuODggOwotICAgIEVORAotICBFTkQgQgotICBQSU4gQQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMS41NCAwLjYzIDEuNiAwLjc1IDsKLSAgICAgICAgUkVDVCAxLjU0IDAuNjMgMi42ODUgMC42OSA7Ci0gICAgICAgIFJFQ1QgMi42MjUgMC42MyAyLjY4NSAwLjc4IDsKLSAgICAgICAgUkVDVCAyLjYyNSAwLjcyIDMuMDc1IDAuNzggOwotICAgICAgICBSRUNUIDMuMDE1IDAuNjYgNC40ODUgMC43MiA7Ci0gICAgICAgIFJFQ1QgNC4yMzUgMC42MjUgNC40ODUgMC43MiA7Ci0gICAgICAgIFJFQ1QgNC40MjUgMC42MjUgNC40ODUgMC43NDUgOwotICAgIEVORAotICBFTkQgQQotICBQSU4gQ0kKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDIuMjM1IDAuNDM1IDIuMzY1IDAuNTMgOwotICAgICAgICBSRUNUIDIuMjM1IDAuNDcgMi44MjUgMC41MyA7Ci0gICAgICAgIFJFQ1QgMi43OTUgMC41IDIuOTE1IDAuNjIgOwotICAgICAgICBSRUNUIDIuNzY1IDAuNSA0LjAxNSAwLjU2IDsKLSAgICBFTkQKLSAgRU5EIENJCi0gIFBJTiBWREQKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgUE9XRVIgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWREQgVkREISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAxLjY1IDUuNiAxLjcxIDsKLSAgICBFTkQKLSAgRU5EIFZERAotICBQSU4gVlNTCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIEdST1VORCA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZTUyBWU1MhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDAuMDAgNS42IDAuMDYgOwotICAgIEVORAotICBFTkQgVlNTCi1FTkQgQURERkhYNAotCi1NQUNSTyBOQU5EM1g0Ci0gIENMQVNTIENPUkUgOwotICBPUklHSU4gMCAwIDsKLSAgRk9SRUlHTiBOQU5EM1g0IDAgMCA7Ci0gIFNJWkUgMi44IEJZIDEuNzEgOwotICBTWU1NRVRSWSBYIFkgOwotICBTSVRFIENvcmVTaXRlIDsKLSAgUElOIFkKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIE9VVFBVVCA7Ci0gICAgQU5URU5OQURJRkZBUkVBIDEuNzI4NSAgTEFZRVIgTWV0YWwxIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuNDE1IDEuMDE1IDAuNDc1IDEuNDA1IDsKLSAgICAgICAgUkVDVCAwLjgyNSAxLjEyNSAwLjg4NSAxLjQwNSA7Ci0gICAgICAgIFJFQ1QgMS4yMzUgMS4xMjUgMS4yOTUgMS40MDUgOwotICAgICAgICBSRUNUIDEuNjQ1IDEuMTI1IDEuNzA1IDEuNDA1IDsKLSAgICAgICAgUkVDVCAyLjA1NSAxLjEyNSAyLjExNSAxLjQwNSA7Ci0gICAgICAgIFJFQ1QgMC40MTUgMS4xMjUgMi41MjUgMS4xODUgOwotICAgICAgICBSRUNUIDIuNDY1IDEuMDQgMi41MjUgMS40MDUgOwotICAgICAgICBSRUNUIDAuODk1IDAuNDA1IDIuNzQgMC40NjUgOwotICAgICAgICBSRUNUIDIuNjYgMC45OCAyLjc0IDEuMTEgOwotICAgICAgICBSRUNUIDIuNjggMC40MDUgMi43NCAxLjExIDsKLSAgICAgICAgUkVDVCAyLjQ2NSAxLjA1IDIuNzQgMS4xMSA7Ci0gICAgRU5ECi0gIEVORCBZCi0gIFBJTiBBCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjIzNSAwLjgxNSAwLjM2NSAwLjg5NSA7Ci0gICAgICAgIFJFQ1QgMC4zMDUgMC44NTUgMC43IDAuOTE1IDsKLSAgICAgICAgUkVDVCAwLjY0IDAuODU1IDAuNyAxLjAyNSA7Ci0gICAgICAgIFJFQ1QgMS40NzUgMC44ODUgMS41OTUgMS4wMjUgOwotICAgICAgICBSRUNUIDIuMzA1IDAuODggMi4zNjUgMS4wMjUgOwotICAgICAgICBSRUNUIDAuNjQgMC45NjUgMi4zNjUgMS4wMjUgOwotICAgICAgICBSRUNUIDIuNDk1IDAuODIgMi41NTUgMC45NCA7Ci0gICAgICAgIFJFQ1QgMi4zMDUgMC44OCAyLjU1NSAwLjk0IDsKLSAgICBFTkQKLSAgRU5EIEEKLSAgUElOIEIKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuNTE1IDAuNjk1IDAuODYgMC43NTUgOwotICAgICAgICBSRUNUIDAuOCAwLjY5NSAwLjg2IDAuODY1IDsKLSAgICAgICAgUkVDVCAxLjI2NSAwLjcyNSAxLjMyNSAwLjg2NSA7Ci0gICAgICAgIFJFQ1QgMC44IDAuODA1IDEuMzI1IDAuODY1IDsKLSAgICAgICAgUkVDVCAxLjI2NSAwLjcyNSAxLjc1NSAwLjc4NSA7Ci0gICAgICAgIFJFQ1QgMS42OTUgMC43MjUgMS43NTUgMC44NjUgOwotICAgICAgICBSRUNUIDIuMTQ1IDAuNjg1IDIuMjA1IDAuODY1IDsKLSAgICAgICAgUkVDVCAxLjY5NSAwLjgwNSAyLjIwNSAwLjg2NSA7Ci0gICAgICAgIFJFQ1QgMi4yNiAwLjYgMi4zNCAwLjc0NSA7Ci0gICAgICAgIFJFQ1QgMi4yNiAwLjYyNSAyLjM5NSAwLjc0NSA7Ci0gICAgICAgIFJFQ1QgMi4xNDUgMC42ODUgMi4zOTUgMC43NDUgOwotICAgIEVORAotICBFTkQgQgotICBQSU4gQwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMS4wMzUgMC41NjUgMS4xNjUgMC43MDUgOwotICAgICAgICBSRUNUIDAuOTYgMC42NDUgMS4xNjUgMC43MDUgOwotICAgICAgICBSRUNUIDEuMDM1IDAuNTY1IDEuOTE1IDAuNjI1IDsKLSAgICAgICAgUkVDVCAxLjg1NSAwLjU2NSAxLjkxNSAwLjcwNSA7Ci0gICAgICAgIFJFQ1QgMS44NTUgMC42NDUgMS45ODUgMC43MDUgOwotICAgIEVORAotICBFTkQgQwotICBQSU4gVkRECi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIFBPV0VSIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVkREIFZERCEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMS42NSAyLjggMS43MSA7Ci0gICAgRU5ECi0gIEVORCBWREQKLSAgUElOIFZTUwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBHUk9VTkQgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWU1MgVlNTISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAwLjAwIDIuOCAwLjA2IDsKLSAgICBFTkQKLSAgRU5EIFZTUwotRU5EIE5BTkQzWDQKLQotTUFDUk8gTk9SMlg4Ci0gIENMQVNTIENPUkUgOwotICBPUklHSU4gMCAwIDsKLSAgRk9SRUlHTiBOT1IyWDggMCAwIDsKLSAgU0laRSAzLjIgQlkgMS43MSA7Ci0gIFNZTU1FVFJZIFggWSA7Ci0gIFNJVEUgQ29yZVNpdGUgOwotICBQSU4gWQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gT1VUUFVUIDsKLSAgICBBTlRFTk5BRElGRkFSRUEgMS43Mjg1ICBMQVlFUiBNZXRhbDEgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC42NTUgMC45OTUgMC43MTUgMS4zODUgOwotICAgICAgICBSRUNUIDEuMyAwLjk5NSAxLjM2IDEuMzg1IDsKLSAgICAgICAgUkVDVCAyLjE5NSAwLjk5NSAyLjI1NSAxLjM4NSA7Ci0gICAgICAgIFJFQ1QgMC42NTUgMC45OTUgMy4xNCAxLjA1NSA7Ci0gICAgICAgIFJFQ1QgMi45MTUgMC45NiAyLjk3NSAxLjM4NSA7Ci0gICAgICAgIFJFQ1QgMC4zMiAwLjQ5IDMuMTQgMC41NSA7Ci0gICAgICAgIFJFQ1QgMy4wOCAwLjQ5IDMuMTQgMS4xMSA7Ci0gICAgICAgIFJFQ1QgMi45MTUgMC45NiAzLjE0IDEuMTEgOwotICAgIEVORAotICBFTkQgWQotICBQSU4gQgotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC42OSAwLjgxIDAuOTEgMC44NyA7Ci0gICAgICAgIFJFQ1QgMS40MSAwLjgxIDEuNTMgMC44OTUgOwotICAgICAgICBSRUNUIDIuMDI1IDAuODEgMi4xNDUgMC44OTUgOwotICAgICAgICBSRUNUIDIuNjM1IDAuODE1IDIuOTMgMC44NiA7Ci0gICAgICAgIFJFQ1QgMC44NSAwLjgzNSAyLjc2NSAwLjg5NSA7Ci0gICAgICAgIFJFQ1QgMi43MDUgMC44IDIuOTMgMC44NiA7Ci0gICAgRU5ECi0gIEVORCBCCi0gIFBJTiBBCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjI5IDAuNzggMC41NCAwLjg0IDsKLSAgICAgICAgUkVDVCAwLjQ4IDAuNjUgMC41NCAwLjkyIDsKLSAgICAgICAgUkVDVCAwLjQ2IDAuNzggMC41NCAwLjkyIDsKLSAgICAgICAgUkVDVCAxLjAxIDAuNjUgMS4xMyAwLjczNSA7Ci0gICAgICAgIFJFQ1QgMS44MDUgMC42NSAxLjkyNSAwLjczNSA7Ci0gICAgICAgIFJFQ1QgMC40OCAwLjY1IDIuMzA1IDAuNzEgOwotICAgICAgICBSRUNUIDIuMjQ1IDAuNjc1IDIuNTY1IDAuNzM1IDsKLSAgICBFTkQKLSAgRU5EIEEKLSAgUElOIFZERAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBQT1dFUiA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZERCBWREQhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDEuNjUgMy4yIDEuNzEgOwotICAgIEVORAotICBFTkQgVkRECi0gIFBJTiBWU1MKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgR1JPVU5EIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVlNTIFZTUyEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMC4wMCAzLjIgMC4wNiA7Ci0gICAgRU5ECi0gIEVORCBWU1MKLUVORCBOT1IyWDgKLQotTUFDUk8gQU9JMzJYTAotICBDTEFTUyBDT1JFIDsKLSAgT1JJR0lOIDAgMCA7Ci0gIEZPUkVJR04gQU9JMzJYTCAwIDAgOwotICBTSVpFIDEuNiBCWSAxLjcxIDsKLSAgU1lNTUVUUlkgWCBZIDsKLSAgU0lURSBDb3JlU2l0ZSA7Ci0gIFBJTiBZCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBPVVRQVVQgOwotICAgIEFOVEVOTkFESUZGQVJFQSAxLjcyODUgIExBWUVSIE1ldGFsMSA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjg4IDAuNDI1IDAuOTQgMS4xMSA7Ci0gICAgICAgIFJFQ1QgMC44NiAwLjk4IDAuOTQgMS4xMSA7Ci0gICAgICAgIFJFQ1QgMC44NiAxLjA1IDEuMjYgMS4xMSA7Ci0gICAgICAgIFJFQ1QgMS4yIDEuMDUgMS4yNiAxLjI0NSA7Ci0gICAgRU5ECi0gIEVORCBZCi0gIFBJTiBBMQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC40NiAwLjQxIDAuNTQgMC41NCA7Ci0gICAgICAgIFJFQ1QgMC40OCAwLjQ4IDAuNTYgMC44OSA7Ci0gICAgRU5ECi0gIEVORCBBMQotICBQSU4gQjEKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDEuMDYgMC4yMyAxLjE0IDAuNzMgOwotICAgIEVORAotICBFTkQgQjEKLSAgUElOIEEyCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjY2IDAuMjIgMC43NCAwLjM1IDsKLSAgICAgICAgUkVDVCAwLjY2NSAwLjI3IDAuNzQ1IDAuNzE1IDsKLSAgICBFTkQKLSAgRU5EIEEyCi0gIFBJTiBCMAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMS4yNiAwLjcyIDEuMzQgMC45MiA7Ci0gICAgICAgIFJFQ1QgMS4yNiAwLjg0IDEuNDQgMC45MiA7Ci0gICAgICAgIFJFQ1QgMS4zNiAwLjg0IDEuNDQgMS4xMiA7Ci0gICAgRU5ECi0gIEVORCBCMAotICBQSU4gQTAKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMjYgMC42MiAwLjM0IDEuMTIgOwotICAgIEVORAotICBFTkQgQTAKLSAgUElOIFZERAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBQT1dFUiA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZERCBWREQhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDEuNjUgMS42IDEuNzEgOwotICAgIEVORAotICBFTkQgVkRECi0gIFBJTiBWU1MKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgR1JPVU5EIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVlNTIFZTUyEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMC4wMCAxLjYgMC4wNiA7Ci0gICAgRU5ECi0gIEVORCBWU1MKLUVORCBBT0kzMlhMCi0KLU1BQ1JPIE9BSTIyWDQKLSAgQ0xBU1MgQ09SRSA7Ci0gIE9SSUdJTiAwIDAgOwotICBGT1JFSUdOIE9BSTIyWDQgMCAwIDsKLSAgU0laRSAzLjggQlkgMS43MSA7Ci0gIFNZTU1FVFJZIFggWSA7Ci0gIFNJVEUgQ29yZVNpdGUgOwotICBQSU4gWQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gT1VUUFVUIDsKLSAgICBBTlRFTk5BRElGRkFSRUEgMS43Mjg1ICBMQVlFUiBNZXRhbDEgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC44NSAwLjk5NSAwLjkxIDEuMzQ1IDsKLSAgICAgICAgUkVDVCAxLjUzNSAwLjk5NSAxLjU5NSAxLjM0NSA7Ci0gICAgICAgIFJFQ1QgMS45MTUgMC40OTUgMS45NzUgMS4xNTUgOwotICAgICAgICBSRUNUIDIuMDM1IDEuMDk1IDIuMTY1IDEuMjc1IDsKLSAgICAgICAgUkVDVCAyLjIwNSAwLjQ0NSAyLjMyNSAwLjU1NSA7Ci0gICAgICAgIFJFQ1QgMi40MDUgMS4wOTUgMi40NjUgMS4yMTUgOwotICAgICAgICBSRUNUIDIuNjE1IDAuNDQ1IDIuNzM1IDAuNTU1IDsKLSAgICAgICAgUkVDVCAwLjg1IDEuMDk1IDMuMDg1IDEuMTU1IDsKLSAgICAgICAgUkVDVCAzLjAyNSAwLjk3NSAzLjA4NSAxLjM0NSA7Ci0gICAgICAgIFJFQ1QgMy4wMjUgMC40NDUgMy4xNDUgMC41NTUgOwotICAgICAgICBSRUNUIDEuOTE1IDAuNDk1IDMuNDggMC41NTUgOwotICAgICAgICBSRUNUIDMuNDIgMC40NDUgMy41NTUgMC41MDUgOwotICAgIEVORAotICBFTkQgWQotICBQSU4gQTEKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuNzQ1IDAuODE1IDEuNDk1IDAuODk1IDsKLSAgICBFTkQKLSAgRU5EIEExCi0gIFBJTiBCMQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMi40NCAwLjgxNSAyLjc2NSAwLjg5NSA7Ci0gICAgICAgIFJFQ1QgMi40NCAwLjgxNSAzLjE4IDAuODc1IDsKLSAgICBFTkQKLSAgRU5EIEIxCi0gIFBJTiBBMAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMS4yMzUgMC42MjUgMS4zNjUgMC43MDUgOwotICAgICAgICBSRUNUIDAuMTggMC42NDUgMS44MTUgMC43MDUgOwotICAgIEVORAotICBFTkQgQTAKLSAgUElOIEIwCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAyLjI2IDAuNjU1IDIuMzQgMC45MiA7Ci0gICAgICAgIFJFQ1QgMi4wNzUgMC42NTUgMy41OTUgMC43MTUgOwotICAgIEVORAotICBFTkQgQjAKLSAgUElOIFZERAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBQT1dFUiA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZERCBWREQhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDEuNjUgMy44IDEuNzEgOwotICAgIEVORAotICBFTkQgVkRECi0gIFBJTiBWU1MKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgR1JPVU5EIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVlNTIFZTUyEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMC4wMCAzLjggMC4wNiA7Ci0gICAgRU5ECi0gIEVORCBWU1MKLUVORCBPQUkyMlg0Ci0KLU1BQ1JPIE9SMlhMCi0gIENMQVNTIENPUkUgOwotICBPUklHSU4gMCAwIDsKLSAgRk9SRUlHTiBPUjJYTCAwIDAgOwotICBTSVpFIDEgQlkgMS43MSA7Ci0gIFNZTU1FVFJZIFggWSA7Ci0gIFNJVEUgQ29yZVNpdGUgOwotICBQSU4gWQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gT1VUUFVUIDsKLSAgICBBTlRFTk5BRElGRkFSRUEgMS43Mjg1ICBMQVlFUiBNZXRhbDEgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC44NyAwLjM5NSAwLjk0IDEuMDg1IDsKLSAgICAgICAgUkVDVCAwLjg2IDAuNzkgMC45NCAxLjA4NSA7Ci0gICAgRU5ECi0gIEVORCBZCi0gIFBJTiBBCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjUzIDAuNTkgMC42MSAwLjkxIDsKLSAgICAgICAgUkVDVCAwLjUzIDAuNzkgMC43NCAwLjkxIDsKLSAgICAgICAgUkVDVCAwLjY2IDAuNzkgMC43NCAwLjk2IDsKLSAgICBFTkQKLSAgRU5EIEEKLSAgUElOIEIKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDYgMC43OSAwLjE0IDAuOTYgOwotICAgICAgICBSRUNUIDAuMTkgMC41OSAwLjI3IDAuODcgOwotICAgICAgICBSRUNUIDAuMDYgMC43OSAwLjI3IDAuODcgOwotICAgIEVORAotICBFTkQgQgotICBQSU4gVkRECi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIFBPV0VSIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVkREIFZERCEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMS42NSAxIDEuNzEgOwotICAgIEVORAotICBFTkQgVkRECi0gIFBJTiBWU1MKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgR1JPVU5EIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVlNTIFZTUyEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMC4wMCAxIDAuMDYgOwotICAgIEVORAotICBFTkQgVlNTCi1FTkQgT1IyWEwKLQotTUFDUk8gU0RGRlNSSFFYNAotICBDTEFTUyBDT1JFIDsKLSAgT1JJR0lOIDAgMCA7Ci0gIEZPUkVJR04gU0RGRlNSSFFYNCAwIDAgOwotICBTSVpFIDguNiBCWSAxLjcxIDsKLSAgU1lNTUVUUlkgWCBZIDsKLSAgU0lURSBDb3JlU2l0ZSA7Ci0gIFBJTiBTTgotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMy4wMzUgMS4wMDUgMy4xNjUgMS4wODUgOwotICAgICAgICBSRUNUIDIuODkgMS4wMDUgMy4zNCAxLjA2NSA7Ci0gICAgICAgIFJFQ1QgMy4yOCAxLjAwNSAzLjM0IDEuNDA1IDsKLSAgICAgICAgUkVDVCA0LjA4IDEuMjI1IDQuMTQgMS40MDUgOwotICAgICAgICBSRUNUIDMuMjggMS4zNDUgNC4xNCAxLjQwNSA7Ci0gICAgICAgIFJFQ1QgNC4wOCAxLjIyNSA0LjUyIDEuMjg1IDsKLSAgICAgICAgUkVDVCA0LjQ2IDEuMjggNS4xMzUgMS4zNCA7Ci0gICAgRU5ECi0gIEVORCBTTgotICBQSU4gU0UKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDcuNDYgMC42MjUgOC40IDAuNzA1IDsKLSAgICAgICAgUkVDVCA4LjMyIDAuNjI1IDguNCAwLjc0NSA7Ci0gICAgRU5ECi0gIEVORCBTRQotICBQSU4gU0kKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDcuODM1IDAuODA1IDguMTM1IDAuOTY1IDsKLSAgICAgICAgUkVDVCA3LjcxNSAwLjgzNSA4LjEzNSAwLjk2NSA7Ci0gICAgRU5ECi0gIEVORCBTSQotICBQSU4gRAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgNi44NiAwLjYyNSA2Ljk0IDEuMDg1IDsKLSAgICAgICAgUkVDVCA2Ljg2IDAuODY1IDYuOTggMS4wODUgOwotICAgIEVORAotICBFTkQgRAotICBQSU4gQ0sKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDYuNDM1IDAuODE1IDYuNzYgMC44OTUgOwotICAgICAgICBSRUNUIDYuNjggMC44MTUgNi43NiAxLjA3IDsKLSAgICBFTkQKLSAgRU5EIENLCi0gIFBJTiBSTgotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMS42NiAwLjc1IDEuNzQgMS4yNSA7Ci0gICAgRU5ECi0gIEVORCBSTgotICBQSU4gUQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gT1VUUFVUIDsKLSAgICBBTlRFTk5BRElGRkFSRUEgMS43Mjg1ICBMQVlFUiBNZXRhbDEgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC40MzUgMC41NCAwLjQ5NSAxLjI5IDsKLSAgICAgICAgUkVDVCAwLjQzNSAwLjYyNSAwLjU2NSAwLjcwNSA7Ci0gICAgICAgIFJFQ1QgMC40MzUgMC42NDUgMC44NiAwLjcwNSA7Ci0gICAgICAgIFJFQ1QgMC44IDAuNTg1IDAuODYgMC45NiA7Ci0gICAgICAgIFJFQ1QgMC44NDUgMC41MjUgMC45MDUgMC42NDUgOwotICAgICAgICBSRUNUIDAuODQ1IDAuOSAwLjkwNSAxLjI5IDsKLSAgICBFTkQKLSAgRU5EIFEKLSAgUElOIFZERAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBQT1dFUiA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZERCBWREQhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDEuNjUgOC42IDEuNzEgOwotICAgIEVORAotICBFTkQgVkRECi0gIFBJTiBWU1MKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgR1JPVU5EIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVlNTIFZTUyEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMC4wMCA4LjYgMC4wNiA7Ci0gICAgRU5ECi0gIEVORCBWU1MKLUVORCBTREZGU1JIUVg0Ci0KLU1BQ1JPIFRCVUZYMjAKLSAgQ0xBU1MgQ09SRSA7Ci0gIE9SSUdJTiAwIDAgOwotICBGT1JFSUdOIFRCVUZYMjAgMCAwIDsKLSAgU0laRSAxMCBCWSAxLjcxIDsKLSAgU1lNTUVUUlkgWCBZIDsKLSAgU0lURSBDb3JlU2l0ZSA7Ci0gIFBJTiBZCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBPVVRQVVQgOwotICAgIEFOVEVOTkFESUZGQVJFQSAxLjcyODUgIExBWUVSIE1ldGFsMSA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCA1Ljg4NSAwLjQ3NSA1Ljk0NSAwLjY2IDsKLSAgICAgICAgUkVDVCA1Ljg4NSAwLjYgNi4xNCAwLjY2IDsKLSAgICAgICAgUkVDVCA1Ljk3NSAxLjA1IDYuMDM1IDEuNDE1IDsKLSAgICAgICAgUkVDVCA2LjAyIDAuNiA2LjA4IDEuMTEgOwotICAgICAgICBSRUNUIDYuMDIgMC42IDYuMTQgMC43MyA7Ci0gICAgICAgIFJFQ1QgNi4yOTUgMC40NzUgNi4zNTUgMC42MTUgOwotICAgICAgICBSRUNUIDYuMzg1IDAuNTU1IDYuNDQ1IDEuNDE1IDsKLSAgICAgICAgUkVDVCA2LjcwNSAwLjQ3NSA2Ljc2NSAwLjYxNSA7Ci0gICAgICAgIFJFQ1QgNi4yOTUgMC41NTUgNi43NjUgMC42MTUgOwotICAgICAgICBSRUNUIDYuNzk1IDEuMDI1IDYuODU1IDEuNDE1IDsKLSAgICAgICAgUkVDVCA3LjExNSAwLjQ3NSA3LjE3NSAwLjYxNSA7Ci0gICAgICAgIFJFQ1QgNy4yMDUgMC41NTUgNy4yNjUgMS40MTUgOwotICAgICAgICBSRUNUIDcuNTI1IDAuNDc1IDcuNTg1IDAuNjE1IDsKLSAgICAgICAgUkVDVCA3LjExNSAwLjU1NSA3LjU4NSAwLjYxNSA7Ci0gICAgICAgIFJFQ1QgNy42MTUgMS4wMjUgNy42NzUgMS40MTUgOwotICAgICAgICBSRUNUIDcuOTM1IDAuNDc1IDcuOTk1IDAuNjE1IDsKLSAgICAgICAgUkVDVCA4LjAyNSAxLjAyNSA4LjA4NSAxLjQxNSA7Ci0gICAgICAgIFJFQ1QgNy45MzUgMC41NTUgOC40MDUgMC42MTUgOwotICAgICAgICBSRUNUIDguMzQ1IDAuNDc1IDguNDA1IDEuMDg1IDsKLSAgICAgICAgUkVDVCA4LjQzNSAxLjAyNSA4LjQ5NSAxLjQxNSA7Ci0gICAgICAgIFJFQ1QgOC43NTUgMC40NzUgOC44MTUgMC42MTUgOwotICAgICAgICBSRUNUIDguODQ1IDEuMDI1IDguOTA1IDEuNDE1IDsKLSAgICAgICAgUkVDVCA5LjE2NSAwLjQ3NSA5LjIyNSAwLjYxNSA7Ci0gICAgICAgIFJFQ1QgOS4yNTUgMS4wMjUgOS4zMTUgMS40MTUgOwotICAgICAgICBSRUNUIDkuNTc1IDAuNDc1IDkuNjggMC42MTUgOwotICAgICAgICBSRUNUIDguNzU1IDAuNTU1IDkuNjggMC42MTUgOwotICAgICAgICBSRUNUIDYuMDIgMS4wMjUgOS43MjUgMS4wODUgOwotICAgICAgICBSRUNUIDkuNjIgMC40NzUgOS42OCAxLjA4NSA7Ci0gICAgICAgIFJFQ1QgOS42NjUgMS4wMjUgOS43MjUgMS40MTUgOwotICAgIEVORAotICBFTkQgWQotICBQSU4gT0UKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDEuNDQgMC43MyAxLjUgMC44NzUgOwotICAgICAgICBSRUNUIDEuNjM1IDAuODE1IDEuNzY1IDAuODk1IDsKLSAgICAgICAgUkVDVCAyIDAuNzMgMi4wNiAwLjg3NSA7Ci0gICAgICAgIFJFQ1QgMS40NCAwLjgxNSAyLjA2IDAuODc1IDsKLSAgICBFTkQKLSAgRU5EIE9FCi0gIFBJTiBBCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAzNSAwLjYyNSAwLjI4IDAuNzA1IDsKLSAgICAgICAgUkVDVCAwLjI4IDAuMyAwLjM0IDAuNjg1IDsKLSAgICAgICAgUkVDVCAwLjI4IDAuMyAwLjc1NSAwLjM2IDsKLSAgICAgICAgUkVDVCAwLjY5NSAwLjMgMC43NTUgMC42NCA7Ci0gICAgICAgIFJFQ1QgMC43OCAwLjU4IDAuODQgMC43MiA7Ci0gICAgICAgIFJFQ1QgMC45NCAwLjU4IDEgMC43MiA7Ci0gICAgICAgIFJFQ1QgMS4wMTUgMC4zIDEuMDc1IDAuNjQgOwotICAgICAgICBSRUNUIDAuNjk1IDAuNTggMS4wNzUgMC42NCA7Ci0gICAgICAgIFJFQ1QgMS4wMTUgMC4zIDEuNjY1IDAuMzYgOwotICAgICAgICBSRUNUIDEuNjA1IDAuMyAxLjY2NSAwLjYxNSA7Ci0gICAgICAgIFJFQ1QgMS43MSAwLjU1NSAxLjc3IDAuNzE1IDsKLSAgICAgICAgUkVDVCAxLjkyNSAwLjMgMS45ODUgMC42MTUgOwotICAgICAgICBSRUNUIDEuNjA1IDAuNTU1IDEuOTg1IDAuNjE1IDsKLSAgICAgICAgUkVDVCAxLjkyNSAwLjMgMi4zOCAwLjM2IDsKLSAgICAgICAgUkVDVCAyLjMyIDAuMyAyLjM4IDAuNjE1IDsKLSAgICAgICAgUkVDVCAyLjQxNSAwLjU1NSAyLjQ3NSAwLjc1NSA7Ci0gICAgICAgIFJFQ1QgMi42NCAwLjM0NSAyLjcgMC42MTUgOwotICAgICAgICBSRUNUIDIuMzIgMC41NTUgMi43IDAuNjE1IDsKLSAgICAgICAgUkVDVCAyLjY0IDAuMzQ1IDMuMDggMC40MDUgOwotICAgICAgICBSRUNUIDMuMDIgMC4zNDUgMy4wOCAwLjYxNSA7Ci0gICAgICAgIFJFQ1QgMy4wNTUgMC41NTUgMy4xMTUgMC43NDUgOwotICAgICAgICBSRUNUIDMuMDU1IDAuNjg1IDUuNTU1IDAuNzQ1IDsKLSAgICBFTkQKLSAgRU5EIEEKLSAgUElOIFZERAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBQT1dFUiA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZERCBWREQhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDEuNjUgMTAgMS43MSA7Ci0gICAgRU5ECi0gIEVORCBWREQKLSAgUElOIFZTUwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBHUk9VTkQgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWU1MgVlNTISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAwLjAwIDEwIDAuMDYgOwotICAgIEVORAotICBFTkQgVlNTCi1FTkQgVEJVRlgyMAotCi1NQUNSTyBJTlZYMTYKLSAgQ0xBU1MgQ09SRSA7Ci0gIE9SSUdJTiAwIDAgOwotICBGT1JFSUdOIElOVlgxNiAwIDAgOwotICBTSVpFIDMuMDcgQlkgMS43MSA7Ci0gIFNZTU1FVFJZIFggWSAgOwotICBTSVRFIENvcmVTaXRlIDsKLSAgUElOIFkKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIE9VVFBVVCA7Ci0gICAgQU5URU5OQURJRkZBUkVBIDEuNzI4NSAgTEFZRVIgTWV0YWwxIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDIuOTIgMC43MDUgMyAwLjggOwotICAgIEVORAotICBFTkQgWQotICBQSU4gQQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wNyAwLjcyIDAuMTUgMC44NyA7Ci0gICAgRU5ECi0gIEVORCBBCi0gIFBJTiBWREQKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgUE9XRVIgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWREQgVkREISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAxLjY1IDMuMDcgMS43MSA7Ci0gICAgRU5ECi0gIEVORCBWREQKLSAgUElOIFZTUwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBHUk9VTkQgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWU1MgVlNTISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAwLjAwIDMuMDcgMC4wNiA7Ci0gICAgRU5ECi0gIEVORCBWU1MKLUVORCBJTlZYMTYKLQotTUFDUk8gQURESFg0Ci0gIENMQVNTIENPUkUgOwotICBPUklHSU4gMCAwIDsKLSAgRk9SRUlHTiBBRERIWDQgMCAwIDsKLSAgU0laRSA0LjIgQlkgMS43MSA7Ci0gIFNZTU1FVFJZIFggWSA7Ci0gIFNJVEUgQ29yZVNpdGUgOwotICBQSU4gUwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gT1VUUFVUIDsKLSAgICBBTlRFTk5BRElGRkFSRUEgMS43Mjg1ICBMQVlFUiBNZXRhbDEgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMy4wOCAwLjgxNSAzLjE0IDEuMjUgOwotICAgICAgICBSRUNUIDMuMjggMC41NyAzLjM0IDAuOTIgOwotICAgICAgICBSRUNUIDMuMjYgMC43OSAzLjM0IDAuOTIgOwotICAgICAgICBSRUNUIDMuMDggMC44MTUgMy42OTUgMC44NzUgOwotICAgICAgICBSRUNUIDMuMDcgMC41NyAzLjY2IDAuNjMgOwotICAgICAgICBSRUNUIDMuNjM1IDAuODE1IDMuNjk1IDEuMDIgOwotICAgIEVORAotICBFTkQgUwotICBQSU4gQ08KLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIE9VVFBVVCA7Ci0gICAgQU5URU5OQURJRkZBUkVBIDEuNzI4NSAgTEFZRVIgTWV0YWwxIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuOCAwLjUyIDAuODYgMC42NCA7Ci0gICAgICAgIFJFQ1QgMS4yNiAwLjU4IDEuMzQgMS4wMSA7Ci0gICAgICAgIFJFQ1QgMC45MSAwLjk1IDEuMzQgMS4wMSA7Ci0gICAgICAgIFJFQ1QgMS4yOCAwLjU4IDEuMzQgMS4xMyA7Ci0gICAgICAgIFJFQ1QgMS40NCAwLjUxIDEuNSAwLjY0IDsKLSAgICAgICAgUkVDVCAwLjggMC41OCAxLjUgMC42NCA7Ci0gICAgICAgIFJFQ1QgMS4yOCAxLjA3IDEuNSAxLjEzIDsKLSAgICBFTkQKLSAgRU5EIENPCi0gIFBJTiBCCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjA2IDAuNzkgMC4yIDAuOTIgOwotICAgICAgICBSRUNUIDAuMTQgMC43NiAwLjIgMS4yIDsKLSAgICAgICAgUkVDVCAwLjE0IDEuMTQgMC44OCAxLjIgOwotICAgICAgICBSRUNUIDAuODIgMS4xNCAwLjg4IDEuMjkgOwotICAgICAgICBSRUNUIDAuODIgMS4yMyAxLjk4IDEuMjkgOwotICAgICAgICBSRUNUIDEuOTIgMC43OCAxLjk4IDEuNDM1IDsKLSAgICAgICAgUkVDVCAxLjkwNSAwLjc4IDIuMDI1IDAuODQgOwotICAgICAgICBSRUNUIDEuOTIgMS4zNzUgMi43NDUgMS40MzUgOwotICAgICAgICBSRUNUIDIuNjg1IDEuMzUgMy4zIDEuNDEgOwotICAgICAgICBSRUNUIDMuMjQgMS4xMiAzLjMgMS40MSA7Ci0gICAgICAgIFJFQ1QgMy44OCAwLjc0IDMuOTQgMS4xOCA7Ci0gICAgICAgIFJFQ1QgMy4yNCAxLjEyIDMuOTQgMS4xOCA7Ci0gICAgRU5ECi0gIEVORCBCCi0gIFBJTiBBCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjQ2IDAuNiAwLjU0IDAuOCA7Ci0gICAgICAgIFJFQ1QgMC42NCAwLjM2IDAuNyAwLjY2IDsKLSAgICAgICAgUkVDVCAwLjQ2IDAuNiAwLjcgMC42NiA7Ci0gICAgICAgIFJFQ1QgMC42NCAwLjM2IDEuMzQgMC40MiA7Ci0gICAgICAgIFJFQ1QgMS4yOCAwLjM1IDEuNjYgMC40MSA7Ci0gICAgICAgIFJFQ1QgMS42IDAuMzUgMS42NiAwLjY4IDsKLSAgICAgICAgUkVDVCAxLjYgMC42MiAxLjg1NSAwLjY4IDsKLSAgICBFTkQKLSAgRU5EIEEKLSAgUElOIFZERAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBQT1dFUiA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZERCBWREQhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDEuNjUgNC4yIDEuNzEgOwotICAgIEVORAotICBFTkQgVkRECi0gIFBJTiBWU1MKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgR1JPVU5EIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVlNTIFZTUyEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMC4wMCA0LjIgMC4wNiA7Ci0gICAgRU5ECi0gIEVORCBWU1MKLUVORCBBRERIWDQKLQotTUFDUk8gU0RGRlNIUVg4Ci0gIENMQVNTIENPUkUgOwotICBPUklHSU4gMCAwIDsKLSAgRk9SRUlHTiBTREZGU0hRWDggMCAwIDsKLSAgU0laRSA4IEJZIDEuNzEgOwotICBTWU1NRVRSWSBYIFkgOwotICBTSVRFIENvcmVTaXRlIDsKLSAgUElOIFEKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIE9VVFBVVCA7Ci0gICAgQU5URU5OQURJRkZBUkVBIDEuNzI4NSAgTEFZRVIgTWV0YWwxIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMjc1IDAuNTQgMC4zMzUgMS4zNDUgOwotICAgICAgICBSRUNUIDAuNjg1IDAuNTQgMC43NDUgMS4zNDUgOwotICAgICAgICBSRUNUIDAuMjc1IDAuNiAxLjE1NSAwLjY2IDsKLSAgICAgICAgUkVDVCAxLjA2IDAuNiAxLjE1NSAwLjczIDsKLSAgICAgICAgUkVDVCAxLjA5NSAwLjU0IDEuMTU1IDEuMzQ1IDsKLSAgICAgICAgUkVDVCAxLjUwNSAwLjkzIDEuNTY1IDEuMDUgOwotICAgICAgICBSRUNUIDEuNjIgMC41NCAxLjY4IDAuOTkgOwotICAgICAgICBSRUNUIDEuMDk1IDAuOTMgMS42OCAwLjk5IDsKLSAgICBFTkQKLSAgRU5EIFEKLSAgUElOIFNFCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCA3LjA0NSAwLjczIDcuOTIgMC43OSA7Ci0gICAgICAgIFJFQ1QgNy44NiAwLjc5IDcuOTQgMC45MiA7Ci0gICAgRU5ECi0gIEVORCBTRQotICBQSU4gU0kKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDcuMzIgMC45NDUgNy43NiAxLjA4NSA7Ci0gICAgRU5ECi0gIEVORCBTSQotICBQSU4gRAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgNi4yMzUgMC43IDYuMzY1IDAuOTA1IDsKLSAgICAgICAgUkVDVCA2LjIzNSAwLjgxIDYuNjEgMC44OSA7Ci0gICAgRU5ECi0gIEVORCBECi0gIFBJTiBDSwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgNi4wMTUgMC43NTUgNi4xMzUgMC44MzUgOwotICAgICAgICBSRUNUIDYuMDM1IDAuNzU1IDYuMTM1IDEuMDg1IDsKLSAgICAgICAgUkVDVCA2LjAzNSAxLjAwNSA2LjI2NSAxLjA4NSA7Ci0gICAgRU5ECi0gIEVORCBDSwotICBQSU4gU04KLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDIuNDM1IDEuMDA1IDIuNTY1IDEuMDg1IDsKLSAgICAgICAgUkVDVCAyLjUwNSAwLjkzIDIuNTY1IDEuMzUgOwotICAgICAgICBSRUNUIDIuNTA1IDAuOTMgMi41NzUgMS4wNSA7Ci0gICAgICAgIFJFQ1QgMy41MTUgMS4yMiAzLjU3NSAxLjM1IDsKLSAgICAgICAgUkVDVCAyLjUwNSAxLjI5IDMuNTc1IDEuMzUgOwotICAgICAgICBSRUNUIDMuNzc1IDAuOTUgMy44MzUgMS4yOCA7Ci0gICAgICAgIFJFQ1QgMy41MTUgMS4yMiAzLjgzNSAxLjI4IDsKLSAgICAgICAgUkVDVCAzLjc3NSAwLjk1IDMuOTQgMS4wMSA7Ci0gICAgRU5ECi0gIEVORCBTTgotICBQSU4gVkRECi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIFBPV0VSIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVkREIFZERCEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMS42NSA4IDEuNzEgOwotICAgIEVORAotICBFTkQgVkRECi0gIFBJTiBWU1MKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgR1JPVU5EIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVlNTIFZTUyEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMC4wMCA4IDAuMDYgOwotICAgIEVORAotICBFTkQgVlNTCi1FTkQgU0RGRlNIUVg4Ci0KLU1BQ1JPIERGRlJIUVgyCi0gIENMQVNTIENPUkUgOwotICBPUklHSU4gMCAwIDsKLSAgRk9SRUlHTiBERkZSSFFYMiAwIDAgOwotICBTSVpFIDQuNiBCWSAxLjcxIDsKLSAgU1lNTUVUUlkgWCBZIDsKLSAgU0lURSBDb3JlU2l0ZSA7Ci0gIFBJTiBRCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBPVVRQVVQgOwotICAgIEFOVEVOTkFESUZGQVJFQSAxLjcyODUgIExBWUVSIE1ldGFsMSA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjI2IDAuNTMgMC4zNCAxLjMwNSA7Ci0gICAgRU5ECi0gIEVORCBRCi0gIFBJTiBSTgotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMS42MzUgMC44MTUgMS43MTUgMS4xMTUgOwotICAgICAgICBSRUNUIDEuNDg1IDEuMDI1IDEuNzE1IDEuMTE1IDsKLSAgICAgICAgUkVDVCAxLjYzNSAwLjgxNSAxLjc2NSAwLjg5NSA7Ci0gICAgRU5ECi0gIEVORCBSTgotICBQSU4gQ0sKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuNiAwLjc0IDAuNzY1IDEuMDg1IDsKLSAgICAgICAgUkVDVCAwLjYgMS4wMDUgMC44MzUgMS4wODUgOwotICAgIEVORAotICBFTkQgQ0sKLSAgUElOIEQKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDMuOTY1IDAuNTE1IDQuMTc1IDAuNzA1IDsKLSAgICAgICAgUkVDVCA0LjA5NSAwLjUxNSA0LjE3NSAwLjg4NSA7Ci0gICAgRU5ECi0gIEVORCBECi0gIFBJTiBWREQKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgUE9XRVIgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWREQgVkREISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAxLjY1IDQuNiAxLjcxIDsKLSAgICBFTkQKLSAgRU5EIFZERAotICBQSU4gVlNTCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIEdST1VORCA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZTUyBWU1MhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDAuMDAgNC42IDAuMDYgOwotICAgIEVORAotICBFTkQgVlNTCi1FTkQgREZGUkhRWDIKLQotTUFDUk8gREZGTlNSWDQKLSAgQ0xBU1MgQ09SRSA7Ci0gIE9SSUdJTiAwIDAgOwotICBGT1JFSUdOIERGRk5TUlg0IDAgMCA7Ci0gIFNJWkUgNy44IEJZIDEuNzEgOwotICBTWU1NRVRSWSBYIFkgOwotICBTSVRFIENvcmVTaXRlIDsKLSAgUElOIFFOCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBPVVRQVVQgOwotICAgIEFOVEVOTkFESUZGQVJFQSAxLjcyODUgIExBWUVSIE1ldGFsMSA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCA2LjI2IDAuNzkgNi4zNCAwLjkyIDsKLSAgICAgICAgUkVDVCA2LjQ4IDAuODYgNi41NCAxLjMzIDsKLSAgICAgICAgUkVDVCA2LjU5NSAwLjUwNSA2LjY1NSAwLjkyIDsKLSAgICAgICAgUkVDVCA2LjI2IDAuODYgNi45NSAwLjkyIDsKLSAgICAgICAgUkVDVCA2Ljg5IDAuODYgNi45NSAxLjMzIDsKLSAgICAgICAgUkVDVCA2LjU5NSAwLjUwNSA3LjE4NSAwLjU2NSA7Ci0gICAgRU5ECi0gIEVORCBRTgotICBQSU4gUQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gT1VUUFVUIDsKLSAgICBBTlRFTk5BRElGRkFSRUEgMS43Mjg1ICBMQVlFUiBNZXRhbDEgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgNS42MzUgMS4wMDUgNS42OTUgMS4zMyA7Ci0gICAgICAgIFJFQ1QgNS42MzUgMS4wMDUgNS43NjUgMS4wODUgOwotICAgICAgICBSRUNUIDUuNzE1IDAuNTA1IDUuNzc1IDEuMDY1IDsKLSAgICAgICAgUkVDVCA1LjYzNSAxLjAwNSA2LjEzIDEuMDY1IDsKLSAgICAgICAgUkVDVCA2LjA3IDEuMDA1IDYuMTMgMS4zMyA7Ci0gICAgICAgIFJFQ1QgNS42NTUgMC41MDUgNi4yNDUgMC41NjUgOwotICAgIEVORAotICBFTkQgUQotICBQSU4gUk4KLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDIuODg1IDAuNjMgMi45NjUgMC44OTUgOwotICAgICAgICBSRUNUIDIuODA1IDAuODE1IDIuOTY1IDAuODk1IDsKLSAgICAgICAgUkVDVCAyLjg4NSAwLjYzIDMuMTIgMC43MSA7Ci0gICAgRU5ECi0gIEVORCBSTgotICBQSU4gU04KLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDIuMjM1IDAuNjI1IDIuMzY1IDAuNzQ1IDsKLSAgICAgICAgUkVDVCAyLjIzNSAwLjY2NSAyLjY5NSAwLjc0NSA7Ci0gICAgRU5ECi0gIEVORCBTTgotICBQSU4gRAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC40NiAwLjc2IDAuNTQgMS4yNiA7Ci0gICAgRU5ECi0gIEVORCBECi0gIFBJTiBDS04KLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMjYgMC43NiAwLjM0IDEuMjYgOwotICAgIEVORAotICBFTkQgQ0tOCi0gIFBJTiBWREQKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgUE9XRVIgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWREQgVkREISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAxLjY1IDcuOCAxLjcxIDsKLSAgICBFTkQKLSAgRU5EIFZERAotICBQSU4gVlNTCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIEdST1VORCA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZTUyBWU1MhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDAuMDAgNy44IDAuMDYgOwotICAgIEVORAotICBFTkQgVlNTCi1FTkQgREZGTlNSWDQKLQotTUFDUk8gVExBVE5TUlg0Ci0gIENMQVNTIENPUkUgOwotICBPUklHSU4gMCAwIDsKLSAgRk9SRUlHTiBUTEFUTlNSWDQgMCAwIDsKLSAgU0laRSA2LjYgQlkgMS43MSA7Ci0gIFNZTU1FVFJZIFggWSA7Ci0gIFNJVEUgQ29yZVNpdGUgOwotICBQSU4gUQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gT1VUUFVUIDsKLSAgICBBTlRFTk5BRElGRkFSRUEgMS43Mjg1ICBMQVlFUiBNZXRhbDEgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgNS42OSAwLjU0IDUuNzUgMC42OCA7Ci0gICAgICAgIFJFQ1QgNS43NyAwLjkzNSA1LjgzIDEuMzE1IDsKLSAgICAgICAgUkVDVCA1LjgxNSAwLjYyIDUuODc1IDAuOTk1IDsKLSAgICAgICAgUkVDVCA1LjgxNSAwLjYyIDUuOTQgMC45MiA7Ci0gICAgICAgIFJFQ1QgNi4xIDAuNTQgNi4xNiAwLjY4IDsKLSAgICAgICAgUkVDVCA1LjY5IDAuNjIgNi4xNiAwLjY4IDsKLSAgICAgICAgUkVDVCA1LjgxNSAwLjg2IDYuMjQgMC45MiA7Ci0gICAgICAgIFJFQ1QgNi4xOCAwLjg2IDYuMjQgMS4zMTUgOwotICAgIEVORAotICBFTkQgUQotICBQSU4gUU4KLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIE9VVFBVVCA7Ci0gICAgQU5URU5OQURJRkZBUkVBIDEuNzI4NSAgTEFZRVIgTWV0YWwxIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDQuMDUgMC41NCA0LjExIDAuNjggOwotICAgICAgICBSRUNUIDQuMDYgMC45MjUgNC4xMjUgMS4zMTUgOwotICAgICAgICBSRUNUIDQuMDggMC42MiA0LjE0IDEuMTEgOwotICAgICAgICBSRUNUIDQuMDYgMC45MjUgNC41MzUgMC45ODUgOwotICAgICAgICBSRUNUIDQuNDYgMC41NCA0LjUyIDAuNjggOwotICAgICAgICBSRUNUIDQuMDUgMC42MiA0LjUyIDAuNjggOwotICAgICAgICBSRUNUIDQuNDc1IDAuOTI1IDQuNTM1IDEuMzE1IDsKLSAgICBFTkQKLSAgRU5EIFFOCi0gIFBJTiBTTgotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMy4wODUgMC43OTUgMy4yMDUgMC44NTUgOwotICAgICAgICBSRUNUIDMuMTQ1IDAuNzk1IDMuMjA1IDAuOTM1IDsKLSAgICAgICAgUkVDVCAzLjE0NSAwLjg3NSAzLjY5NSAwLjkzNSA7Ci0gICAgICAgIFJFQ1QgMy42MzUgMC43ODUgMy43NjUgMC44OTUgOwotICAgICAgICBSRUNUIDMuNjM1IDAuNzg1IDMuNzkgMC44NDUgOwotICAgIEVORAotICBFTkQgU04KLSAgUElOIEQKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDEuNjYgMC42OTUgMS43NCAxLjE5NSA7Ci0gICAgRU5ECi0gIEVORCBECi0gIFBJTiBSTgotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC40NCAwLjgxNSAwLjg5IDAuODc1IDsKLSAgICAgICAgUkVDVCAwLjgzIDAuMjE1IDAuODkgMC44OTUgOwotICAgICAgICBSRUNUIDAuNjM1IDAuODE1IDAuODkgMC44OTUgOwotICAgICAgICBSRUNUIDAuODMgMC4yMTUgMS41MjUgMC4yNzUgOwotICAgICAgICBSRUNUIDEuNDY1IDAuMjE1IDEuNTI1IDAuMzYgOwotICAgICAgICBSRUNUIDEuNDY1IDAuMyAyLjkzNSAwLjM2IDsKLSAgICBFTkQKLSAgRU5EIFJOCi0gIFBJTiBHTgotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4yNiAwLjcgMC4zNCAxLjIgOwotICAgIEVORAotICBFTkQgR04KLSAgUElOIFZERAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBQT1dFUiA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZERCBWREQhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDEuNjUgNi42IDEuNzEgOwotICAgIEVORAotICBFTkQgVkRECi0gIFBJTiBWU1MKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgR1JPVU5EIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVlNTIFZTUyEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMC4wMCA2LjYgMC4wNiA7Ci0gICAgRU5ECi0gIEVORCBWU1MKLUVORCBUTEFUTlNSWDQKLQotTUFDUk8gQURERkhYMgotICBDTEFTUyBDT1JFIDsKLSAgT1JJR0lOIDAgMCA7Ci0gIEZPUkVJR04gQURERkhYMiAwIDAgOwotICBTSVpFIDQuOCBCWSAxLjcxIDsKLSAgU1lNTUVUUlkgWCBZIDsKLSAgU0lURSBDb3JlU2l0ZSA7Ci0gIFBJTiBTCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBPVVRQVVQgOwotICAgIEFOVEVOTkFESUZGQVJFQSAxLjcyODUgIExBWUVSIE1ldGFsMSA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCA0LjM5IDEuMDI1IDQuNDUgMS4zOSA7Ci0gICAgICAgIFJFQ1QgNC40MzUgMC41NCA0LjQ5NSAxLjA4NSA7Ci0gICAgICAgIFJFQ1QgNC40MzUgMC42IDQuNTQgMC43MyA7Ci0gICAgRU5ECi0gIEVORCBTCi0gIFBJTiBDTwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gT1VUUFVUIDsKLSAgICBBTlRFTk5BRElGRkFSRUEgMS43Mjg1ICBMQVlFUiBNZXRhbDEgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4yNiAwLjYgMC4zNCAwLjczIDsKLSAgICAgICAgUkVDVCAwLjI4IDAuNTQgMC4zNCAxLjI5IDsKLSAgICBFTkQKLSAgRU5EIENPCi0gIFBJTiBCCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAxLjM2NSAwLjg1NSAxLjg5NSAwLjkxNSA7Ci0gICAgICAgIFJFQ1QgMS44MzUgMC45MDUgMS45NjUgMS4wODUgOwotICAgICAgICBSRUNUIDIuOTM1IDAuODIgMi45OTUgMC45NjUgOwotICAgICAgICBSRUNUIDEuODM1IDAuOTA1IDIuOTk1IDAuOTY1IDsKLSAgICAgICAgUkVDVCAyLjkzNSAwLjgyIDMuOTcgMC44OCA7Ci0gICAgRU5ECi0gIEVORCBCCi0gIFBJTiBBCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAxLjE0NSAwLjcgMS4yNjUgMC43NiA7Ci0gICAgICAgIFJFQ1QgMS4yMyAwLjY5NSAyLjQ2NSAwLjc1NSA7Ci0gICAgICAgIFJFQ1QgMi43NzUgMC42NiAyLjgzNSAwLjgwNSA7Ci0gICAgICAgIFJFQ1QgMi40MDUgMC43NDUgMi44MzUgMC44MDUgOwotICAgICAgICBSRUNUIDMuODM1IDAuNjI1IDMuOTY1IDAuNzIgOwotICAgICAgICBSRUNUIDIuNzc1IDAuNjYgNC4xMyAwLjcyIDsKLSAgICAgICAgUkVDVCA0LjA3IDAuNjYgNC4xMyAwLjc4IDsKLSAgICBFTkQKLSAgRU5EIEEKLSAgUElOIENJCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAxLjgzNSAwLjQzNSAxLjk2NSAwLjU4NSA7Ci0gICAgICAgIFJFQ1QgMS44MzUgMC41MjUgMi42NSAwLjU4NSA7Ci0gICAgICAgIFJFQ1QgMi41OSAwLjUgMi42NSAwLjY0NSA7Ci0gICAgICAgIFJFQ1QgMi41OSAwLjUgMy42NyAwLjU2IDsKLSAgICBFTkQKLSAgRU5EIENJCi0gIFBJTiBWREQKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgUE9XRVIgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWREQgVkREISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAxLjY1IDQuOCAxLjcxIDsKLSAgICBFTkQKLSAgRU5EIFZERAotICBQSU4gVlNTCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIEdST1VORCA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZTUyBWU1MhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDAuMDAgNC44IDAuMDYgOwotICAgIEVORAotICBFTkQgVlNTCi1FTkQgQURERkhYMgotCi1NQUNSTyBOT1I0QkJYTAotICBDTEFTUyBDT1JFIDsKLSAgT1JJR0lOIDAgMCA7Ci0gIEZPUkVJR04gTk9SNEJCWEwgMCAwIDsKLSAgU0laRSAyIEJZIDEuNzEgOwotICBTWU1NRVRSWSBYIFkgOwotICBTSVRFIENvcmVTaXRlIDsKLSAgUElOIFkKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIE9VVFBVVCA7Ci0gICAgQU5URU5OQURJRkZBUkVBIDEuNzI4NSAgTEFZRVIgTWV0YWwxIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuODMgMC4yNTUgMC44OSAwLjUxIDsKLSAgICAgICAgUkVDVCAwLjgzIDAuNDUgMS4zMiAwLjUxIDsKLSAgICAgICAgUkVDVCAxLjI2IDAuMjU1IDEuMzIgMS40MSA7Ci0gICAgICAgIFJFQ1QgMC43NCAxLjM1IDEuMzIgMS40MSA7Ci0gICAgICAgIFJFQ1QgMS4yNiAwLjc5IDEuMzQgMC45MiA7Ci0gICAgRU5ECi0gIEVORCBZCi0gIFBJTiBECi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjY2IDAuOTggMC43NCAxLjI1IDsKLSAgICAgICAgUkVDVCAwLjY4IDAuNzcgMC43NiAxLjE1IDsKLSAgICBFTkQKLSAgRU5EIEQKLSAgUElOIEMKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuODYgMC45OCAwLjk0IDEuMTI1IDsKLSAgICAgICAgUkVDVCAxLjAwNSAwLjc3IDEuMDg1IDEuMTIgOwotICAgICAgICBSRUNUIDAuODYgMC45OCAxLjA4NSAxLjEyIDsKLSAgICBFTkQKLSAgRU5EIEMKLSAgUElOIEFOCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAxLjYzNSAwLjgxNSAxLjcxNSAxLjE1NSA7Ci0gICAgICAgIFJFQ1QgMS41MjUgMS4wNzUgMS43MTUgMS4xNTUgOwotICAgICAgICBSRUNUIDEuNjM1IDAuODE1IDEuNzY1IDAuODk1IDsKLSAgICBFTkQKLSAgRU5EIEFOCi0gIFBJTiBCTgotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMyAwLjY4NSAwLjQgMC44OTUgOwotICAgIEVORAotICBFTkQgQk4KLSAgUElOIFZERAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBQT1dFUiA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZERCBWREQhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDEuNjUgMiAxLjcxIDsKLSAgICBFTkQKLSAgRU5EIFZERAotICBQSU4gVlNTCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIEdST1VORCA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZTUyBWU1MhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDAuMDAgMiAwLjA2IDsKLSAgICBFTkQKLSAgRU5EIFZTUwotRU5EIE5PUjRCQlhMCi0KLU1BQ1JPIE5PUjJYNgotICBDTEFTUyBDT1JFIDsKLSAgT1JJR0lOIDAgMCA7Ci0gIEZPUkVJR04gTk9SMlg2IDAgMCA7Ci0gIFNJWkUgMi42IEJZIDEuNzEgOwotICBTWU1NRVRSWSBYIFkgOwotICBTSVRFIENvcmVTaXRlIDsKLSAgUElOIFkKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIE9VVFBVVCA7Ci0gICAgQU5URU5OQURJRkZBUkVBIDEuNzI4NSAgTEFZRVIgTWV0YWwxIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMjc1IDAuNDM1IDAuMzM1IDAuNTU1IDsKLSAgICAgICAgUkVDVCAwLjU4IDEuMDI1IDAuNjQgMS4zMzUgOwotICAgICAgICBSRUNUIDAuNjg1IDAuNDM1IDAuNzQ1IDAuNTU1IDsKLSAgICAgICAgUkVDVCAxLjA5NSAwLjQzNSAxLjE1NSAwLjU1NSA7Ci0gICAgICAgIFJFQ1QgMS4yMjUgMS4wMjUgMS4yODUgMS4zMzUgOwotICAgICAgICBSRUNUIDEuNTA1IDAuNDM1IDEuNTY1IDAuNTU1IDsKLSAgICAgICAgUkVDVCAxLjkxNSAwLjQzNSAxLjk3NSAwLjU1NSA7Ci0gICAgICAgIFJFQ1QgMS45MTUgMS4wMjUgMS45NzUgMS4zMzUgOwotICAgICAgICBSRUNUIDAuMjc1IDAuNDk1IDIuMzggMC41NTUgOwotICAgICAgICBSRUNUIDIuMjYgMC45OCAyLjM0IDEuMTEgOwotICAgICAgICBSRUNUIDIuMzIgMC40OTUgMi4zOCAxLjA4NSA7Ci0gICAgICAgIFJFQ1QgMC41OCAxLjAyNSAyLjM4IDEuMDg1IDsKLSAgICBFTkQKLSAgRU5EIFkKLSAgUElOIEIKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuNjE1IDAuODE1IDAuODM1IDAuODc1IDsKLSAgICAgICAgUkVDVCAxLjE1NSAwLjgxNSAxLjI3NSAwLjkxNSA7Ci0gICAgICAgIFJFQ1QgMC43NzUgMC44NTUgMS44ODUgMC45MTUgOwotICAgICAgICBSRUNUIDEuODM1IDAuODE1IDIuMDYgMC44OTUgOwotICAgIEVORAotICBFTkQgQgotICBQSU4gQQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4yMTUgMC43OSAwLjM0IDAuODUgOwotICAgICAgICBSRUNUIDAuMjggMC42NTUgMC4zNCAwLjkyIDsKLSAgICAgICAgUkVDVCAwLjI2IDAuNzkgMC4zNCAwLjkyIDsKLSAgICAgICAgUkVDVCAwLjkzNSAwLjY1NSAxLjA1NSAwLjc1NSA7Ci0gICAgICAgIFJFQ1QgMS41NSAwLjY1NSAxLjY3IDAuNzU1IDsKLSAgICAgICAgUkVDVCAwLjI4IDAuNjU1IDIuMjIgMC43MTUgOwotICAgICAgICBSRUNUIDIuMTYgMC42NTUgMi4yMiAwLjg4IDsKLSAgICBFTkQKLSAgRU5EIEEKLSAgUElOIFZERAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBQT1dFUiA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZERCBWREQhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDEuNjUgMi42IDEuNzEgOwotICAgIEVORAotICBFTkQgVkRECi0gIFBJTiBWU1MKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgR1JPVU5EIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVlNTIFZTUyEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMC4wMCAyLjYgMC4wNiA7Ci0gICAgRU5ECi0gIEVORCBWU1MKLUVORCBOT1IyWDYKLQotTUFDUk8gQ0xLQlVGWDgKLSAgQ0xBU1MgQ09SRSA7Ci0gIE9SSUdJTiAwIDAgOwotICBGT1JFSUdOIENMS0JVRlg4IDAgMCA7Ci0gIFNJWkUgMi4yIEJZIDEuNzEgOwotICBTWU1NRVRSWSBYIFkgOwotICBTSVRFIENvcmVTaXRlIDsKLSAgUElOIFkKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIE9VVFBVVCA7Ci0gICAgQU5URU5OQURJRkZBUkVBIDEuNzI4NSAgTEFZRVIgTWV0YWwxIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMjI1IDAuNTA1IDAuMjg1IDAuNjI1IDsKLSAgICAgICAgUkVDVCAwLjIyNSAwLjkzIDAuMjg1IDEuMzc1IDsKLSAgICAgICAgUkVDVCAwLjI2IDAuNTY1IDAuMzIgMC45OSA7Ci0gICAgICAgIFJFQ1QgMC4yNiAwLjU2NSAwLjM0IDAuNzMgOwotICAgICAgICBSRUNUIDAuNjM1IDAuOTMgMC42OTUgMS4zNzUgOwotICAgICAgICBSRUNUIDAuNjA1IDAuNTUgMC43MjUgMC42MjUgOwotICAgICAgICBSRUNUIDEuMDQ1IDAuOTMgMS4xMDUgMS4zNzUgOwotICAgICAgICBSRUNUIDEuMDE1IDAuNTUgMS4xMzUgMC42MjUgOwotICAgICAgICBSRUNUIDAuMjI1IDAuOTMgMS41MTUgMC45OSA7Ci0gICAgICAgIFJFQ1QgMC4yMjUgMC41NjUgMS40NTUgMC42MjUgOwotICAgICAgICBSRUNUIDEuNDU1IDAuOTMgMS41MTUgMS4zNzUgOwotICAgICAgICBSRUNUIDEuNDEgMC41NSAxLjU0NSAwLjYxIDsKLSAgICBFTkQKLSAgRU5EIFkKLSAgUElOIEEKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDIuMDYgMC42IDIuMTQgMS4xIDsKLSAgICBFTkQKLSAgRU5EIEEKLSAgUElOIFZERAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBQT1dFUiA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZERCBWREQhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDEuNjUgMi4yIDEuNzEgOwotICAgIEVORAotICBFTkQgVkRECi0gIFBJTiBWU1MKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgR1JPVU5EIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVlNTIFZTUyEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMC4wMCAyLjIgMC4wNiA7Ci0gICAgRU5ECi0gIEVORCBWU1MKLUVORCBDTEtCVUZYOAotCi1NQUNSTyBOT1IyQlg0Ci0gIENMQVNTIENPUkUgOwotICBPUklHSU4gMCAwIDsKLSAgRk9SRUlHTiBOT1IyQlg0IDAgMCA7Ci0gIFNJWkUgMi4yIEJZIDEuNzEgOwotICBTWU1NRVRSWSBYIFkgOwotICBTSVRFIENvcmVTaXRlIDsKLSAgUElOIFkKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIE9VVFBVVCA7Ci0gICAgQU5URU5OQURJRkZBUkVBIDEuNzI4NSAgTEFZRVIgTWV0YWwxIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDM1IDAuNDkgMC4wOTUgMS4wNTUgOwotICAgICAgICBSRUNUIDAuMDM1IDAuODE1IDAuMTY1IDAuODk1IDsKLSAgICAgICAgUkVDVCAwLjI3NSAwLjQzIDAuMzM1IDAuNTUgOwotICAgICAgICBSRUNUIDAuNTM1IDAuOTk1IDAuNTk1IDEuMzYgOwotICAgICAgICBSRUNUIDAuNjg1IDAuNDMgMC43NDUgMC41NSA7Ci0gICAgICAgIFJFQ1QgMC4wMzUgMC45OTUgMS4yMTUgMS4wNTUgOwotICAgICAgICBSRUNUIDEuMDk1IDAuNDMgMS4xNTUgMC41NSA7Ci0gICAgICAgIFJFQ1QgMS4xNTUgMC45OTUgMS4yMTUgMS4zNiA7Ci0gICAgICAgIFJFQ1QgMS41MDUgMC40MyAxLjU2NSAwLjU1IDsKLSAgICAgICAgUkVDVCAwLjAzNSAwLjQ5IDEuNTY1IDAuNTUgOwotICAgIEVORAotICBFTkQgWQotICBQSU4gQgotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC41OCAwLjgxNSAxLjI1IDAuODk1IDsKLSAgICBFTkQKLSAgRU5EIEIKLSAgUElOIEFOCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAxLjQ2IDAuOTggMS41NCAxLjExIDsKLSAgICAgICAgUkVDVCAxLjY5IDAuODEgMS43NyAxLjA2IDsKLSAgICAgICAgUkVDVCAxLjQ2IDAuOTggMS43NyAxLjA2IDsKLSAgICBFTkQKLSAgRU5EIEFOCi0gIFBJTiBWREQKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgUE9XRVIgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWREQgVkREISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAxLjY1IDIuMiAxLjcxIDsKLSAgICBFTkQKLSAgRU5EIFZERAotICBQSU4gVlNTCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIEdST1VORCA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZTUyBWU1MhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDAuMDAgMi4yIDAuMDYgOwotICAgIEVORAotICBFTkQgVlNTCi1FTkQgTk9SMkJYNAotCi1NQUNSTyBUTEFUTlNSWDEKLSAgQ0xBU1MgQ09SRSA7Ci0gIE9SSUdJTiAwIDAgOwotICBGT1JFSUdOIFRMQVROU1JYMSAwIDAgOwotICBTSVpFIDQuNiBCWSAxLjcxIDsKLSAgU1lNTUVUUlkgWCBZIDsKLSAgU0lURSBDb3JlU2l0ZSA7Ci0gIFBJTiBRTgotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gT1VUUFVUIDsKLSAgICBBTlRFTk5BRElGRkFSRUEgMS43Mjg1ICBMQVlFUiBNZXRhbDEgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC44NiAwLjQxIDAuOTQgMC41NCA7Ci0gICAgICAgIFJFQ1QgMC44OCAwLjQxIDAuOTQgMS4zMyA7Ci0gICAgRU5ECi0gIEVORCBRTgotICBQSU4gUQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gT1VUUFVUIDsKLSAgICBBTlRFTk5BRElGRkFSRUEgMS43Mjg1ICBMQVlFUiBNZXRhbDEgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wNiAwLjYgMC4zMDUgMC43MyA7Ci0gICAgICAgIFJFQ1QgMC4yMjUgMC41NCAwLjMwNSAxLjI5IDsKLSAgICBFTkQKLSAgRU5EIFEKLSAgUElOIEdOCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCA0LjA2IDAuOTggNC4xNCAxLjE4IDsKLSAgICAgICAgUkVDVCA0LjE2NSAwLjc4NSA0LjI0NSAxLjA2IDsKLSAgICAgICAgUkVDVCA0LjA2IDAuOTggNC4yNDUgMS4wNiA7Ci0gICAgRU5ECi0gIEVORCBHTgotICBQSU4gUk4KLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDEuNzk1IDAuMyAzLjc2NSAwLjM2IDsKLSAgICAgICAgUkVDVCAzLjcwNSAwLjMgMy43NjUgMC45MDUgOwotICAgICAgICBSRUNUIDMuNjM1IDAuODE1IDMuNzY1IDAuODk1IDsKLSAgICAgICAgUkVDVCAzLjcwNSAwLjg0NSAzLjk2IDAuOTA1IDsKLSAgICBFTkQKLSAgRU5EIFJOCi0gIFBJTiBECi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAyLjgyIDAuOCAyLjkgMS4wOCA7Ci0gICAgICAgIFJFQ1QgMi44NiAwLjYyIDIuOTQgMC45MiA7Ci0gICAgRU5ECi0gIEVORCBECi0gIFBJTiBTTgotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMS4yIDAuODEgMS4yOCAxLjExIDsKLSAgICAgICAgUkVDVCAxLjA2IDAuOTggMS4yOCAxLjExIDsKLSAgICAgICAgUkVDVCAxLjIgMC44MSAxLjM0IDAuODkgOwotICAgIEVORAotICBFTkQgU04KLSAgUElOIFZERAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBQT1dFUiA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZERCBWREQhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDEuNjUgNC42IDEuNzEgOwotICAgIEVORAotICBFTkQgVkRECi0gIFBJTiBWU1MKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgR1JPVU5EIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVlNTIFZTUyEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMC4wMCA0LjYgMC4wNiA7Ci0gICAgRU5ECi0gIEVORCBWU1MKLUVORCBUTEFUTlNSWDEKLQotTUFDUk8gQU9JMkJCMVhMCi0gIENMQVNTIENPUkUgOwotICBPUklHSU4gMCAwIDsKLSAgRk9SRUlHTiBBT0kyQkIxWEwgMCAwIDsKLSAgU0laRSAxLjIgQlkgMS43MSA7Ci0gIFNZTU1FVFJZIFggWSA7Ci0gIFNJVEUgQ29yZVNpdGUgOwotICBQSU4gWQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gT1VUUFVUIDsKLSAgICBBTlRFTk5BRElGRkFSRUEgMS43Mjg1ICBMQVlFUiBNZXRhbDEgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wOCAwLjQ1IDAuMTQgMC45MiA7Ci0gICAgICAgIFJFQ1QgMC4wNiAwLjc5IDAuMTQgMC45MiA7Ci0gICAgICAgIFJFQ1QgMC4wNiAwLjg2IDAuMzE1IDAuOTIgOwotICAgICAgICBSRUNUIDAuMjU1IDAuODYgMC4zMTUgMS4zODUgOwotICAgICAgICBSRUNUIDAuMzE1IDAuMjg1IDAuMzc1IDAuNTEgOwotICAgICAgICBSRUNUIDAuMDggMC40NSAwLjM3NSAwLjUxIDsKLSAgICAgICAgUkVDVCAwLjMxNSAwLjI4NSAwLjQ1IDAuMzQ1IDsKLSAgICBFTkQKLSAgRU5EIFkKLSAgUElOIEIwCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjQ2IDAuOTggMC41NCAxLjI2IDsKLSAgICAgICAgUkVDVCAwLjQ3IDAuNzcgMC41NSAxLjA2IDsKLSAgICBFTkQKLSAgRU5EIEIwCi0gIFBJTiBBME4KLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuNjUgMC43NyAwLjczIDEuMjYgOwotICAgICAgICBSRUNUIDAuNjUgMC45OCAwLjc0IDEuMjYgOwotICAgIEVORAotICBFTkQgQTBOCi0gIFBJTiBBMU4KLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDEgMC40NSAxLjE0IDAuOTUgOwotICAgIEVORAotICBFTkQgQTFOCi0gIFBJTiBWREQKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgUE9XRVIgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWREQgVkREISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAxLjY1IDEuMiAxLjcxIDsKLSAgICBFTkQKLSAgRU5EIFZERAotICBQSU4gVlNTCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIEdST1VORCA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZTUyBWU1MhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDAuMDAgMS4yIDAuMDYgOwotICAgIEVORAotICBFTkQgVlNTCi1FTkQgQU9JMkJCMVhMCi0KLU1BQ1JPIE5PUjNYOAotICBDTEFTUyBDT1JFIDsKLSAgT1JJR0lOIDAgMCA7Ci0gIEZPUkVJR04gTk9SM1g4IDAgMCA7Ci0gIFNJWkUgNS4yIEJZIDEuNzEgOwotICBTWU1NRVRSWSBYIFkgOwotICBTSVRFIENvcmVTaXRlIDsKLSAgUElOIFkKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIE9VVFBVVCA7Ci0gICAgQU5URU5OQURJRkZBUkVBIDEuNzI4NSAgTEFZRVIgTWV0YWwxIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDEgMS4wOSAxLjA2IDEuMjEgOwotICAgICAgICBSRUNUIDIuMjUgMS4wOSAyLjMxIDEuMjEgOwotICAgICAgICBSRUNUIDMuNzY1IDEuMDkgMy44MjUgMS4yMSA7Ci0gICAgICAgIFJFQ1QgMSAxLjA5IDQuOTcgMS4xNSA7Ci0gICAgICAgIFJFQ1QgNC45MSAwLjkgNC45NyAxLjM0NSA7Ci0gICAgICAgIFJFQ1QgNS4wMjUgMC4yNzUgNS4wODUgMS4wODUgOwotICAgICAgICBSRUNUIDQuOTEgMC45IDUuMDg1IDEuMDg1IDsKLSAgICAgICAgUkVDVCAwLjM0IDAuMjc1IDUuMTYgMC4zMzUgOwotICAgICAgICBSRUNUIDQuOTEgMS4wMDUgNS4xNjUgMS4wODUgOwotICAgIEVORAotICBFTkQgWQotICBQSU4gQQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4zMSAwLjczIDAuMzcgMC44OTUgOwotICAgICAgICBSRUNUIDAuMjM1IDAuODE1IDAuMzcgMC44OTUgOwotICAgICAgICBSRUNUIDAuMjM1IDAuODM1IDAuNTc1IDAuODk1IDsKLSAgICAgICAgUkVDVCAwLjUxNSAwLjgzNSAwLjU3NSAwLjk5IDsKLSAgICAgICAgUkVDVCAxLjYyNSAwLjc3IDEuNzQ1IDAuODMgOwotICAgICAgICBSRUNUIDEuNjg1IDAuNzcgMS43NDUgMC45OSA7Ci0gICAgICAgIFJFQ1QgMi44MyAwLjc3IDIuODkgMC45OSA7Ci0gICAgICAgIFJFQ1QgMi44MyAwLjc3IDIuOTUgMC44MyA7Ci0gICAgICAgIFJFQ1QgNC4xOSAwLjc3IDQuMjUgMC45OSA7Ci0gICAgICAgIFJFQ1QgMC41MTUgMC45MyA0LjI1IDAuOTkgOwotICAgICAgICBSRUNUIDQuMTkgMC43NyA0LjMxIDAuODMgOwotICAgIEVORAotICBFTkQgQQotICBQSU4gQgotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC40NyAwLjY3NSAwLjczNSAwLjczNSA7Ci0gICAgICAgIFJFQ1QgMC42NzUgMC42NzUgMC43MzUgMC44MyA7Ci0gICAgICAgIFJFQ1QgMS4yMDUgMC42MiAxLjI2NSAwLjgzIDsKLSAgICAgICAgUkVDVCAwLjY3NSAwLjc3IDEuMjY1IDAuODMgOwotICAgICAgICBSRUNUIDEuMjA1IDAuNjIgMS4zMjUgMC42OCA7Ci0gICAgICAgIFJFQ1QgMS45MSAwLjYxIDEuOTcgMC43MyA7Ci0gICAgICAgIFJFQ1QgMS4yNjUgMC42MSAyLjE4NSAwLjY3IDsKLSAgICAgICAgUkVDVCAyLjEyNSAwLjYxIDIuMTg1IDAuODMgOwotICAgICAgICBSRUNUIDIuNTYgMC42MiAyLjYyIDAuODMgOwotICAgICAgICBSRUNUIDIuMTI1IDAuNzcgMi42MiAwLjgzIDsKLSAgICAgICAgUkVDVCAyLjU2IDAuNjIgMi42OCAwLjY4IDsKLSAgICAgICAgUkVDVCAyLjYyIDAuNjEgMy4yOTUgMC42NyA7Ci0gICAgICAgIFJFQ1QgMy4yMzUgMC42MiAzLjU5NSAwLjY4IDsKLSAgICAgICAgUkVDVCAzLjUzNSAwLjYyIDMuNTk1IDAuODMgOwotICAgICAgICBSRUNUIDMuOTE1IDAuNjIgMy45NzUgMC44MyA7Ci0gICAgICAgIFJFQ1QgMy41MzUgMC43NyAzLjk3NSAwLjgzIDsKLSAgICAgICAgUkVDVCAzLjkxNSAwLjYyIDQuMDkgMC42OCA7Ci0gICAgICAgIFJFQ1QgNC4wMyAwLjYxIDQuNDcgMC42NyA7Ci0gICAgICAgIFJFQ1QgNC40MSAwLjYyNSA0Ljc2NSAwLjY4NSA7Ci0gICAgICAgIFJFQ1QgNC42MzUgMC42MjUgNC43NjUgMC43MDUgOwotICAgIEVORAotICBFTkQgQgotICBQSU4gQwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC44MzUgMC40MzUgMS4wNyAwLjY3IDsKLSAgICAgICAgUkVDVCAyLjM0NSAwLjQzNSAyLjQwNSAwLjY3IDsKLSAgICAgICAgUkVDVCAyLjI4NSAwLjYxIDIuNDA1IDAuNjcgOwotICAgICAgICBSRUNUIDMuNjk1IDAuNDM1IDMuNzU1IDAuNjcgOwotICAgICAgICBSRUNUIDMuNjk1IDAuNjEgMy44MTUgMC42NyA7Ci0gICAgICAgIFJFQ1QgMC44MzUgMC40MzUgNC45MjUgMC40OTUgOwotICAgICAgICBSRUNUIDQuODY1IDAuNDM1IDQuOTI1IDAuNzI1IDsKLSAgICBFTkQKLSAgRU5EIEMKLSAgUElOIFZERAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBQT1dFUiA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZERCBWREQhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDEuNjUgNS4yIDEuNzEgOwotICAgIEVORAotICBFTkQgVkRECi0gIFBJTiBWU1MKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgR1JPVU5EIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVlNTIFZTUyEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMC4wMCA1LjIgMC4wNiA7Ci0gICAgRU5ECi0gIEVORCBWU1MKLUVORCBOT1IzWDgKLQotTUFDUk8gQURESFgyCi0gIENMQVNTIENPUkUgOwotICBPUklHSU4gMCAwIDsKLSAgRk9SRUlHTiBBRERIWDIgMCAwIDsKLSAgU0laRSAzIEJZIDEuNzEgOwotICBTWU1NRVRSWSBYIFkgOwotICBTSVRFIENvcmVTaXRlIDsKLSAgUElOIFMKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIE9VVFBVVCA7Ci0gICAgQU5URU5OQURJRkZBUkVBIDEuNzI4NSAgTEFZRVIgTWV0YWwxIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDIuMjEgMC41MjUgMi4zNCAwLjYwNSA7Ci0gICAgICAgIFJFQ1QgMi4yNiAwLjUyNSAyLjM0IDAuOTkgOwotICAgICAgICBSRUNUIDIuMjYgMC45MSAyLjQxIDAuOTkgOwotICAgIEVORAotICBFTkQgUwotICBQSU4gQ08KLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIE9VVFBVVCA7Ci0gICAgQU5URU5OQURJRkZBUkVBIDEuNzI4NSAgTEFZRVIgTWV0YWwxIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuNzcgMC41NTUgMS4xNCAwLjYzNSA7Ci0gICAgICAgIFJFQ1QgMS4wNiAwLjU1NSAxLjE0IDEuMTE1IDsKLSAgICAgICAgUkVDVCAwLjg2NSAxLjAzNSAxLjE0IDEuMTE1IDsKLSAgICBFTkQKLSAgRU5EIENPCi0gIFBJTiBBCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjYxNSAwLjg5NSAwLjc2NSAxLjA4NSA7Ci0gICAgICAgIFJFQ1QgMC43MDUgMC44OTUgMC43NjUgMS4yNzUgOwotICAgICAgICBSRUNUIDAuNzA1IDEuMjE1IDAuOTEgMS4yNzUgOwotICAgICAgICBSRUNUIDAuODUgMS4yMTUgMC45MSAxLjM0IDsKLSAgICAgICAgUkVDVCAwLjg1IDEuMjggMS4zNiAxLjM0IDsKLSAgICAgICAgUkVDVCAxLjMgMS4yOCAxLjM2IDEuNCA7Ci0gICAgRU5ECi0gIEVORCBBCi0gIFBJTiBCCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjI2IDAuMzY1IDAuMzIgMC44MyA7Ci0gICAgICAgIFJFQ1QgMC4yNiAwLjYgMC4zNCAwLjgzIDsKLSAgICAgICAgUkVDVCAxLjQ2IDAuMzY1IDEuNTIgMC45NiA7Ci0gICAgICAgIFJFQ1QgMS43MSAwLjIzIDEuODMgMC40MjUgOwotICAgICAgICBSRUNUIDAuMjYgMC4zNjUgMi43ODUgMC40MjUgOwotICAgIEVORAotICBFTkQgQgotICBQSU4gVkRECi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIFBPV0VSIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVkREIFZERCEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMS42NSAzIDEuNzEgOwotICAgIEVORAotICBFTkQgVkRECi0gIFBJTiBWU1MKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgR1JPVU5EIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVlNTIFZTUyEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMC4wMCAzIDAuMDYgOwotICAgIEVORAotICBFTkQgVlNTCi1FTkQgQURESFgyCi0KLU1BQ1JPIFNERkZTSFFYMgotICBDTEFTUyBDT1JFIDsKLSAgT1JJR0lOIDAgMCA7Ci0gIEZPUkVJR04gU0RGRlNIUVgyIDAgMCA7Ci0gIFNJWkUgNi40IEJZIDEuNzEgOwotICBTWU1NRVRSWSBYIFkgOwotICBTSVRFIENvcmVTaXRlIDsKLSAgUElOIFEKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIE9VVFBVVCA7Ci0gICAgQU5URU5OQURJRkZBUkVBIDEuNzI4NSAgTEFZRVIgTWV0YWwxIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMjM1IDAuNjI1IDAuNSAwLjcwNSA7Ci0gICAgICAgIFJFQ1QgMC40MiAwLjUxIDAuNSAxLjI5IDsKLSAgICBFTkQKLSAgRU5EIFEKLSAgUElOIFNFCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCA1LjUyNSAwLjYzNSA2LjM0IDAuNzE1IDsKLSAgICAgICAgUkVDVCA2LjI2IDAuNiA2LjM0IDAuNzMgOwotICAgIEVORAotICBFTkQgU0UKLSAgUElOIFNJCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCA1Ljc0NSAwLjgxNSA1LjgyNSAwLjk4IDsKLSAgICAgICAgUkVDVCA1Ljc0NSAwLjgxNSA2LjE2IDAuODk1IDsKLSAgICBFTkQKLSAgRU5EIFNJCi0gIFBJTiBECi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCA0LjU2NSAwLjYyNSA0Ljk4IDAuNzA1IDsKLSAgICAgICAgUkVDVCA0Ljg2IDAuNjI1IDQuOTggMC43OSA7Ci0gICAgRU5ECi0gIEVORCBECi0gIFBJTiBDSwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgNC41NiAwLjg5IDQuNzY1IDEuMDg1IDsKLSAgICAgICAgUkVDVCA0LjU2IDAuODkgNC45NDUgMC45NyA7Ci0gICAgRU5ECi0gIEVORCBDSwotICBQSU4gU04KLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDEuMDM1IDAuODE1IDEuMTY1IDAuODk1IDsKLSAgICAgICAgUkVDVCAxLjEwNSAwLjgxNSAxLjE2NSAxLjI0NSA7Ci0gICAgICAgIFJFQ1QgMi40ODUgMC45NjUgMi41NDUgMS4yNDUgOwotICAgICAgICBSRUNUIDEuMTA1IDEuMTg1IDIuNTQ1IDEuMjQ1IDsKLSAgICAgICAgUkVDVCAyLjQ4NSAwLjk2NSAyLjYwNSAxLjAyNSA7Ci0gICAgRU5ECi0gIEVORCBTTgotICBQSU4gVkRECi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIFBPV0VSIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVkREIFZERCEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMS42NSA2LjQgMS43MSA7Ci0gICAgRU5ECi0gIEVORCBWREQKLSAgUElOIFZTUwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBHUk9VTkQgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWU1MgVlNTISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAwLjAwIDYuNCAwLjA2IDsKLSAgICBFTkQKLSAgRU5EIFZTUwotRU5EIFNERkZTSFFYMgotCi1NQUNSTyBPQUkzMlg0Ci0gIENMQVNTIENPUkUgOwotICBPUklHSU4gMCAwIDsKLSAgRk9SRUlHTiBPQUkzMlg0IDAgMCA7Ci0gIFNJWkUgNC44IEJZIDEuNzEgOwotICBTWU1NRVRSWSBYIFkgOwotICBTSVRFIENvcmVTaXRlIDsKLSAgUElOIFkKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIE9VVFBVVCA7Ci0gICAgQU5URU5OQURJRkZBUkVBIDEuNzI4NSAgTEFZRVIgTWV0YWwxIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuOTA1IDEuMTU1IDAuOTY1IDEuMjc1IDsKLSAgICAgICAgUkVDVCAyLjE1NSAxLjE1NSAyLjIxNSAxLjI3NSA7Ci0gICAgICAgIFJFQ1QgMi40MzUgMS4xNTUgMi41NjUgMS4yNzUgOwotICAgICAgICBSRUNUIDIuODU1IDAuNjg1IDIuOTE1IDEuMjE1IDsKLSAgICAgICAgUkVDVCAzLjA2NSAwLjQ4NSAzLjEyNSAwLjc0NSA7Ci0gICAgICAgIFJFQ1QgMi44NTUgMC42ODUgMy4xMjUgMC43NDUgOwotICAgICAgICBSRUNUIDMuMDY1IDAuNDg1IDMuMTg1IDAuNTk1IDsKLSAgICAgICAgUkVDVCAzLjI1IDEuMTU1IDMuMzEgMS4yNzUgOwotICAgICAgICBSRUNUIDMuNDc1IDAuNDg1IDMuNTk1IDAuNTk1IDsKLSAgICAgICAgUkVDVCAwLjkwNSAxLjE1NSAzLjkzIDEuMjE1IDsKLSAgICAgICAgUkVDVCAzLjg3IDEuMTU1IDMuOTMgMS4yNzUgOwotICAgICAgICBSRUNUIDMuODg1IDAuNDg1IDQuMDA1IDAuNTk1IDsKLSAgICAgICAgUkVDVCAzLjA2NSAwLjUzNSA0LjM0IDAuNTk1IDsKLSAgICAgICAgUkVDVCA0LjI4IDAuNDg1IDQuNDE1IDAuNTQ1IDsKLSAgICBFTkQKLSAgRU5EIFkKLSAgUElOIEEwCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjIzNSAwLjgxNSAwLjM4IDAuODk1IDsKLSAgICAgICAgUkVDVCAwLjMyIDAuODE1IDAuMzggMS4wNTUgOwotICAgICAgICBSRUNUIDEuNDI1IDAuODg1IDEuNTQ1IDEuMDU1IDsKLSAgICAgICAgUkVDVCAyLjY5NSAwLjg1NSAyLjc1NSAxLjA1NSA7Ci0gICAgICAgIFJFQ1QgMC4zMiAwLjk5NSAyLjc1NSAxLjA1NSA7Ci0gICAgRU5ECi0gIEVORCBBMAotICBQSU4gQjAKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDMuMDE1IDAuODQ1IDMuMDc1IDEuMDU1IDsKLSAgICAgICAgUkVDVCAzLjU5NSAwLjg4NSAzLjcxNSAxLjA1NSA7Ci0gICAgICAgIFJFQ1QgNC4xMTUgMC44NTUgNC4xNzUgMS4wNTUgOwotICAgICAgICBSRUNUIDMuMDE1IDAuOTk1IDQuMTc1IDEuMDU1IDsKLSAgICAgICAgUkVDVCA0LjI2IDAuNzkgNC4zNCAwLjkyIDsKLSAgICAgICAgUkVDVCA0LjExNSAwLjg1NSA0LjM0IDAuOTIgOwotICAgIEVORAotICBFTkQgQjAKLSAgUElOIEExCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjYzNSAwLjgxNSAwLjc2NSAwLjg5NSA7Ci0gICAgICAgIFJFQ1QgMS4yNjUgMC43MjUgMS4zMjUgMC44NzUgOwotICAgICAgICBSRUNUIDAuNDggMC44MTUgMS4zMjUgMC44NzUgOwotICAgICAgICBSRUNUIDEuMjY1IDAuNzI1IDEuODYgMC43ODUgOwotICAgICAgICBSRUNUIDEuOCAwLjcyNSAxLjg2IDAuODk1IDsKLSAgICAgICAgUkVDVCAxLjggMC44MzUgMi41ODUgMC44OTUgOwotICAgIEVORAotICBFTkQgQTEKLSAgUElOIEIxCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAzLjI5NSAwLjcyNSAzLjg5NSAwLjc4NSA7Ci0gICAgICAgIFJFQ1QgMy44MzUgMC43NzUgNC4wMDUgMC44OTUgOwotICAgIEVORAotICBFTkQgQjEKLSAgUElOIEEyCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAxLjAzNSAwLjYyNSAxLjE2NSAwLjcwNSA7Ci0gICAgICAgIFJFQ1QgMC45MTUgMC42NDUgMS4xNjUgMC43MDUgOwotICAgICAgICBSRUNUIDEuMTA1IDAuNTY1IDIuMDc1IDAuNjI1IDsKLSAgICAgICAgUkVDVCAyLjAxNSAwLjU2NSAyLjA3NSAwLjczNSA7Ci0gICAgRU5ECi0gIEVORCBBMgotICBQSU4gVkRECi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIFBPV0VSIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVkREIFZERCEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMS42NSA0LjggMS43MSA7Ci0gICAgRU5ECi0gIEVORCBWREQKLSAgUElOIFZTUwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBHUk9VTkQgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWU1MgVlNTISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAwLjAwIDQuOCAwLjA2IDsKLSAgICBFTkQKLSAgRU5EIFZTUwotRU5EIE9BSTMyWDQKLQotTUFDUk8gTkFORDRCWEwKLSAgQ0xBU1MgQ09SRSA7Ci0gIE9SSUdJTiAwIDAgOwotICBGT1JFSUdOIE5BTkQ0QlhMIDAgMCA7Ci0gIFNJWkUgMS40IEJZIDEuNzEgOwotICBTWU1NRVRSWSBYIFkgOwotICBTSVRFIENvcmVTaXRlIDsKLSAgUElOIFkKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIE9VVFBVVCA7Ci0gICAgQU5URU5OQURJRkZBUkVBIDEuNzI4NSAgTEFZRVIgTWV0YWwxIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDYgMC4zIDAuMTQgMC41NCA7Ci0gICAgICAgIFJFQ1QgMC4wOCAwLjMgMC4xNCAxLjEyIDsKLSAgICAgICAgUkVDVCAwLjIxNSAwLjI0IDAuMjc1IDAuMzYgOwotICAgICAgICBSRUNUIDAuMDYgMC4zIDAuMjc1IDAuMzYgOwotICAgICAgICBSRUNUIDAuMzQgMS4wNiAwLjQ2IDEuMjE1IDsKLSAgICAgICAgUkVDVCAwLjA4IDEuMDYgMC42MiAxLjEyIDsKLSAgICAgICAgUkVDVCAwLjU2IDEuMDYgMC42MiAxLjIxNSA7Ci0gICAgICAgIFJFQ1QgMC41NiAxLjE1NSAwLjg2IDEuMjE1IDsKLSAgICBFTkQKLSAgRU5EIFkKLSAgUElOIEFOCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAxLjAzNSAwLjc3NSAxLjExNSAxLjIyNSA7Ci0gICAgICAgIFJFQ1QgMS4wMzUgMC43NzUgMS4xNjUgMC44OTUgOwotICAgIEVORAotICBFTkQgQU4KLSAgUElOIEIKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuNjYgMC4yMyAwLjc0IDAuNzMgOwotICAgIEVORAotICBFTkQgQgotICBQSU4gQwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC40NiAwLjI1IDAuNTQgMC43MyA7Ci0gICAgICAgIFJFQ1QgMC40NiAwLjYgMC41NiAwLjczIDsKLSAgICBFTkQKLSAgRU5EIEMKLSAgUElOIEQKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMjYgMC40NiAwLjM0IDAuOTYgOwotICAgIEVORAotICBFTkQgRAotICBQSU4gVkRECi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIFBPV0VSIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVkREIFZERCEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMS42NSAxLjQgMS43MSA7Ci0gICAgRU5ECi0gIEVORCBWREQKLSAgUElOIFZTUwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBHUk9VTkQgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWU1MgVlNTISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAwLjAwIDEuNCAwLjA2IDsKLSAgICBFTkQKLSAgRU5EIFZTUwotRU5EIE5BTkQ0QlhMCi0KLU1BQ1JPIFRMQVROQ0FYMTYKLSAgQ0xBU1MgQ09SRSA7Ci0gIE9SSUdJTiAwIDAgOwotICBGT1JFSUdOIFRMQVROQ0FYMTYgMCAwIDsKLSAgU0laRSA3LjIgQlkgMS43MSA7Ci0gIFNZTU1FVFJZIFggWSA7Ci0gIFNJVEUgQ29yZVNpdGUgOwotICBQSU4gRUNLCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBPVVRQVVQgOwotICAgIEFOVEVOTkFESUZGQVJFQSAxLjcyODUgIExBWUVSIE1ldGFsMSA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjY2NSAwLjU0IDAuNzI1IDEuMDcgOwotICAgICAgICBSRUNUIDEuMDQ1IDAuNTcgMS4xMDUgMS4wNyA7Ci0gICAgICAgIFJFQ1QgMS4wNDUgMC41NyAxLjE2NSAwLjYzIDsKLSAgICAgICAgUkVDVCAxLjQ1NSAwLjU3IDEuNTE1IDEuMDcgOwotICAgICAgICBSRUNUIDEuNDU1IDAuNTcgMS41NzUgMC42MyA7Ci0gICAgICAgIFJFQ1QgMS44NjUgMC41NyAxLjkzIDEuMDcgOwotICAgICAgICBSRUNUIDEuODY1IDAuNTcgMS45ODUgMC42MyA7Ci0gICAgICAgIFJFQ1QgMi4yNiAwLjU3IDIuMzIgMS4wNyA7Ci0gICAgICAgIFJFQ1QgMi4yNiAwLjc5IDIuMzQgMS4wNyA7Ci0gICAgICAgIFJFQ1QgMi4yNiAwLjU3IDIuMzk1IDAuNjMgOwotICAgICAgICBSRUNUIDIuNzE1IDAuNTI1IDIuNzc1IDEuMDcgOwotICAgICAgICBSRUNUIDIuNzE1IDAuNTg1IDMuMTI1IDAuNjQ1IDsKLSAgICAgICAgUkVDVCAwLjU4IDEuMDEgMy4xNiAxLjA3IDsKLSAgICAgICAgUkVDVCAzLjA4IDAuNTcgMy4yMTUgMC42MyA7Ci0gICAgRU5ECi0gIEVORCBFQ0sKLSAgUElOIEUKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDYuNjYgMC42NyA2Ljc4IDEuMDEgOwotICAgIEVORAotICBFTkQgRQotICBQSU4gQ0sKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMzMgMC42NSAwLjQxIDAuOTcgOwotICAgICAgICBSRUNUIDAuNDYgMC42IDAuNTQgMC43MyA7Ci0gICAgICAgIFJFQ1QgMC4zMyAwLjY1IDAuNTQgMC43MyA7Ci0gICAgRU5ECi0gIEVORCBDSwotICBQSU4gVkRECi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIFBPV0VSIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVkREIFZERCEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMS42NSA3LjIgMS43MSA7Ci0gICAgRU5ECi0gIEVORCBWREQKLSAgUElOIFZTUwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBHUk9VTkQgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWU1MgVlNTISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAwLjAwIDcuMiAwLjA2IDsKLSAgICBFTkQKLSAgRU5EIFZTUwotRU5EIFRMQVROQ0FYMTYKLQotTUFDUk8gRklMTDEKLSAgQ0xBU1MgQ09SRSA7Ci0gIE9SSUdJTiAwIDAgOwotICBGT1JFSUdOIEZJTEwxIDAgMCA7Ci0gIFNJWkUgMC4yIEJZIDEuNzEgOwotICBTWU1NRVRSWSBYIFkgOwotICBTSVRFIENvcmVTaXRlIDsKLSAgUElOIFZERAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBQT1dFUiA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZERCBWREQhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDEuNjUgMC4yIDEuNzEgOwotICAgIEVORAotICBFTkQgVkRECi0gIFBJTiBWU1MKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgR1JPVU5EIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVlNTIFZTUyEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMC4wMCAwLjIgMC4wNiA7Ci0gICAgRU5ECi0gIEVORCBWU1MKLUVORCBGSUxMMQotCi1NQUNSTyBERkZTSFFYMgotICBDTEFTUyBDT1JFIDsKLSAgT1JJR0lOIDAgMCA7Ci0gIEZPUkVJR04gREZGU0hRWDIgMCAwIDsKLSAgU0laRSA0LjggQlkgMS43MSA7Ci0gIFNZTU1FVFJZIFggWSA7Ci0gIFNJVEUgQ29yZVNpdGUgOwotICBQSU4gUQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gT1VUUFVUIDsKLSAgICBBTlRFTk5BRElGRkFSRUEgMS43Mjg1ICBMQVlFUiBNZXRhbDEgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4yNiAwLjU0IDAuMzQgMS4yOSA7Ci0gICAgRU5ECi0gIEVORCBRCi0gIFBJTiBDSwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgNC40NjUgMC43MSA0Ljc3IDAuNzkgOwotICAgICAgICBSRUNUIDQuNjM1IDAuNzEgNC43NyAwLjk4NSA7Ci0gICAgRU5ECi0gIEVORCBDSwotICBQSU4gRAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgNC4yMzUgMC43MSA0LjM2NSAxLjA1IDsKLSAgICBFTkQKLSAgRU5EIEQKLSAgUElOIFNOCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAxLjQ2IDAuMzUgMS41MiAwLjkyIDsKLSAgICAgICAgUkVDVCAxLjE3IDAuODYgMS41MiAwLjkyIDsKLSAgICAgICAgUkVDVCAxLjQ2IDAuNiAxLjU0IDAuNzMgOwotICAgICAgICBSRUNUIDEuNDYgMC4zNSAyLjcyIDAuNDEgOwotICAgICAgICBSRUNUIDIuNjYgMC4zNSAyLjcyIDAuNzA1IDsKLSAgICAgICAgUkVDVCAyLjY2IDAuNjQ1IDIuOTQgMC43MDUgOwotICAgICAgICBSRUNUIDIuODggMC42NDUgMi45NCAwLjgyIDsKLSAgICBFTkQKLSAgRU5EIFNOCi0gIFBJTiBWREQKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgUE9XRVIgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWREQgVkREISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAxLjY1IDQuOCAxLjcxIDsKLSAgICBFTkQKLSAgRU5EIFZERAotICBQSU4gVlNTCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIEdST1VORCA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZTUyBWU1MhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDAuMDAgNC44IDAuMDYgOwotICAgIEVORAotICBFTkQgVlNTCi1FTkQgREZGU0hRWDIKLQotTUFDUk8gVEJVRlgzCi0gIENMQVNTIENPUkUgOwotICBPUklHSU4gMCAwIDsKLSAgRk9SRUlHTiBUQlVGWDMgMCAwIDsKLSAgU0laRSAyLjYgQlkgMS43MSA7Ci0gIFNZTU1FVFJZIFggWSA7Ci0gIFNJVEUgQ29yZVNpdGUgOwotICBQSU4gWQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gT1VUUFVUIDsKLSAgICBBTlRFTk5BRElGRkFSRUEgMS43Mjg1ICBMQVlFUiBNZXRhbDEgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMS45NyAxLjExIDIuMDMgMS4yMyA7Ci0gICAgICAgIFJFQ1QgMi4wNCAwLjQgMi4xIDAuNTQgOwotICAgICAgICBSRUNUIDIuMjYgMC40OCAyLjMyIDEuMTcgOwotICAgICAgICBSRUNUIDEuOTcgMS4xMSAyLjMyIDEuMTcgOwotICAgICAgICBSRUNUIDIuMjYgMC43OSAyLjM0IDAuOTYgOwotICAgICAgICBSRUNUIDIuMjYgMC45IDIuNSAwLjk2IDsKLSAgICAgICAgUkVDVCAyLjQ0IDAuOSAyLjUgMS4yOSA7Ci0gICAgICAgIFJFQ1QgMi40NSAwLjQgMi41MSAwLjU0IDsKLSAgICAgICAgUkVDVCAyLjA0IDAuNDggMi41MSAwLjU0IDsKLSAgICBFTkQKLSAgRU5EIFkKLSAgUElOIEEKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuNDQgMC44MyAwLjk2NSAwLjg5IDsKLSAgICAgICAgUkVDVCAwLjgzNSAwLjI3IDAuODk1IDAuODk1IDsKLSAgICAgICAgUkVDVCAwLjgzNSAwLjgxNSAwLjk2NSAwLjg5NSA7Ci0gICAgICAgIFJFQ1QgMC44MzUgMC4yNyAxLjczNSAwLjMzIDsKLSAgICAgICAgUkVDVCAxLjY3NSAwLjI3IDEuNzM1IDAuNjkgOwotICAgIEVORAotICBFTkQgQQotICBQSU4gT0UKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMjYgMC42IDAuMzQgMC43NyA7Ci0gICAgICAgIFJFQ1QgMC4yNiAwLjY1IDAuNzM1IDAuNzMgOwotICAgIEVORAotICBFTkQgT0UKLSAgUElOIFZERAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBQT1dFUiA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZERCBWREQhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDEuNjUgMi42IDEuNzEgOwotICAgIEVORAotICBFTkQgVkRECi0gIFBJTiBWU1MKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgR1JPVU5EIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVlNTIFZTUyEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMC4wMCAyLjYgMC4wNiA7Ci0gICAgRU5ECi0gIEVORCBWU1MKLUVORCBUQlVGWDMKLQotTUFDUk8gTk9SMkJYMgotICBDTEFTUyBDT1JFIDsKLSAgT1JJR0lOIDAgMCA7Ci0gIEZPUkVJR04gTk9SMkJYMiAwIDAgOwotICBTSVpFIDEuNiBCWSAxLjcxIDsKLSAgU1lNTUVUUlkgWCBZIDsKLSAgU0lURSBDb3JlU2l0ZSA7Ci0gIFBJTiBZCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBPVVRQVVQgOwotICAgIEFOVEVOTkFESUZGQVJFQSAxLjcyODUgIExBWUVSIE1ldGFsMSA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjA4IDAuNDggMC4xNCAwLjkyIDsKLSAgICAgICAgUkVDVCAwLjA2IDAuNzkgMC4xNCAwLjkyIDsKLSAgICAgICAgUkVDVCAwLjQ5IDAuNDYgMC42MSAwLjU0IDsKLSAgICAgICAgUkVDVCAwLjA2IDAuODYgMC43NiAwLjkyIDsKLSAgICAgICAgUkVDVCAwLjcgMC44NiAwLjc2IDEuMzYgOwotICAgICAgICBSRUNUIDAuMDggMC40OCAwLjk4IDAuNTQgOwotICAgICAgICBSRUNUIDAuOTMgMC40NiAxLjA1IDAuNTIgOwotICAgIEVORAotICBFTkQgWQotICBQSU4gQU4KLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDEuMDYgMC45OCAxLjE0IDEuMTQgOwotICAgICAgICBSRUNUIDEuMjIgMC44IDEuMyAxLjA2IDsKLSAgICAgICAgUkVDVCAxLjA2IDAuOTggMS4zIDEuMDYgOwotICAgIEVORAotICBFTkQgQU4KLSAgUElOIEIKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuODYgMC44IDAuOTQgMS4zIDsKLSAgICBFTkQKLSAgRU5EIEIKLSAgUElOIFZERAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBQT1dFUiA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZERCBWREQhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDEuNjUgMS42IDEuNzEgOwotICAgIEVORAotICBFTkQgVkRECi0gIFBJTiBWU1MKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgR1JPVU5EIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVlNTIFZTUyEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMC4wMCAxLjYgMC4wNiA7Ci0gICAgRU5ECi0gIEVORCBWU1MKLUVORCBOT1IyQlgyCi0KLU1BQ1JPIEFPSTIxWDQKLSAgQ0xBU1MgQ09SRSA7Ci0gIE9SSUdJTiAwIDAgOwotICBGT1JFSUdOIEFPSTIxWDQgMCAwIDsKLSAgU0laRSAzIEJZIDEuNzEgOwotICBTWU1NRVRSWSBYIFkgOwotICBTSVRFIENvcmVTaXRlIDsKLSAgUElOIFkKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIE9VVFBVVCA7Ci0gICAgQU5URU5OQURJRkZBUkVBIDEuNzI4NSAgTEFZRVIgTWV0YWwxIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuNzg1IDAuNDQ1IDAuOTA1IDAuNTA1IDsKLSAgICAgICAgUkVDVCAxLjQwNSAwLjQ0NSAxLjUyNSAwLjUyNSA7Ci0gICAgICAgIFJFQ1QgMS44OSAwLjQ2NSAxLjk1IDAuODk1IDsKLSAgICAgICAgUkVDVCAxLjk1IDAuNDA1IDIuMDEgMC41MjUgOwotICAgICAgICBSRUNUIDEuODkgMC44MTUgMi4xNjUgMC44OTUgOwotICAgICAgICBSRUNUIDIuMDYgMC44MTUgMi4xNjUgMS4wNzUgOwotICAgICAgICBSRUNUIDAuODU1IDAuNDY1IDIuMzk1IDAuNTI1IDsKLSAgICAgICAgUkVDVCAyLjM0NSAwLjQ0NSAyLjQ2NSAwLjUwNSA7Ci0gICAgICAgIFJFQ1QgMi4wNiAwLjk1NSAyLjUzIDEuMDE1IDsKLSAgICAgICAgUkVDVCAyLjQ3IDAuOTU1IDIuNTMgMS4wNzUgOwotICAgIEVORAotICBFTkQgWQotICBQSU4gQTEKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuNzE1IDAuODE1IDEuNDUgMC44OTUgOwotICAgIEVORAotICBFTkQgQTEKLSAgUElOIEEwCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjU0IDAuNjU1IDEuNzQgMC43MTUgOwotICAgICAgICBSRUNUIDEuNjYgMC42NTUgMS43NCAwLjkyIDsKLSAgICBFTkQKLSAgRU5EIEEwCi0gIFBJTiBCMAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMi4yMzUgMC42MjUgMi4zNjUgMC43MTUgOwotICAgICAgICBSRUNUIDIuMDUgMC42MzUgMi41NCAwLjcxNSA7Ci0gICAgRU5ECi0gIEVORCBCMAotICBQSU4gVkRECi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIFBPV0VSIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVkREIFZERCEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMS42NSAzIDEuNzEgOwotICAgIEVORAotICBFTkQgVkRECi0gIFBJTiBWU1MKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgR1JPVU5EIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVlNTIFZTUyEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMC4wMCAzIDAuMDYgOwotICAgIEVORAotICBFTkQgVlNTCi1FTkQgQU9JMjFYNAotCi1NQUNSTyBPUjJYNgotICBDTEFTUyBDT1JFIDsKLSAgT1JJR0lOIDAgMCA7Ci0gIEZPUkVJR04gT1IyWDYgMCAwIDsKLSAgU0laRSAyLjQgQlkgMS43MSA7Ci0gIFNZTU1FVFJZIFggWSA7Ci0gIFNJVEUgQ29yZVNpdGUgOwotICBQSU4gWQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gT1VUUFVUIDsKLSAgICBBTlRFTk5BRElGRkFSRUEgMS43Mjg1ICBMQVlFUiBNZXRhbDEgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMS4yMjUgMC45NiAxLjI4NSAxLjQzIDsKLSAgICAgICAgUkVDVCAxLjMgMC4zNSAxLjM2IDAuNjYgOwotICAgICAgICBSRUNUIDEuNjM1IDAuOTYgMS42OTUgMS40MyA7Ci0gICAgICAgIFJFQ1QgMS43MSAwLjM1IDEuNzcgMC42NiA7Ci0gICAgICAgIFJFQ1QgMS44NiAwLjYgMS45MiAxLjAyIDsKLSAgICAgICAgUkVDVCAxLjg2IDAuNiAxLjk0IDAuNzMgOwotICAgICAgICBSRUNUIDEuMjI1IDAuOTYgMi4xMDUgMS4wMiA7Ci0gICAgICAgIFJFQ1QgMi4wNDUgMC45NiAyLjEwNSAxLjQzIDsKLSAgICAgICAgUkVDVCAyLjEyIDAuMzUgMi4xOCAwLjY2IDsKLSAgICAgICAgUkVDVCAxLjMgMC42IDIuMTggMC42NiA7Ci0gICAgRU5ECi0gIEVORCBZCi0gIFBJTiBCCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjQ2IDAuOTEgMC41NCAxLjMgOwotICAgICAgICBSRUNUIDAuNDYgMC45MSAwLjY2NSAwLjk5IDsKLSAgICBFTkQKLSAgRU5EIEIKLSAgUElOIEEKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMjYgMC43NyAwLjM0IDAuOTIgOwotICAgICAgICBSRUNUIDAuMjYgMC43NyAwLjM2IDAuODUgOwotICAgICAgICBSRUNUIDAuMjggMC43MyAwLjk2NSAwLjgxIDsKLSAgICBFTkQKLSAgRU5EIEEKLSAgUElOIFZERAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBQT1dFUiA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZERCBWREQhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDEuNjUgMi40IDEuNzEgOwotICAgIEVORAotICBFTkQgVkRECi0gIFBJTiBWU1MKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgR1JPVU5EIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVlNTIFZTUyEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMC4wMCAyLjQgMC4wNiA7Ci0gICAgRU5ECi0gIEVORCBWU1MKLUVORCBPUjJYNgotCi1NQUNSTyBPQUkyMlgyCi0gIENMQVNTIENPUkUgOwotICBPUklHSU4gMCAwIDsKLSAgRk9SRUlHTiBPQUkyMlgyIDAgMCA7Ci0gIFNJWkUgMiBCWSAxLjcxIDsKLSAgU1lNTUVUUlkgWCBZIDsKLSAgU0lURSBDb3JlU2l0ZSA7Ci0gIFBJTiBZCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBPVVRQVVQgOwotICAgIEFOVEVOTkFESUZGQVJFQSAxLjcyODUgIExBWUVSIE1ldGFsMSA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjY0IDEuMDI1IDAuNyAxLjM1NSA7Ci0gICAgICAgIFJFQ1QgMC45MzUgMC42MjUgMC45OTUgMS4wODUgOwotICAgICAgICBSRUNUIDAuODM1IDEuMDA1IDAuOTk1IDEuMDg1IDsKLSAgICAgICAgUkVDVCAxLjEgMC40NDUgMS4xNiAwLjY4NSA7Ci0gICAgICAgIFJFQ1QgMC45MzUgMC42MjUgMS4xNiAwLjY4NSA7Ci0gICAgICAgIFJFQ1QgMS4xIDAuNDQ1IDEuMjQ1IDAuNTU1IDsKLSAgICAgICAgUkVDVCAwLjY0IDEuMDI1IDEuNDY1IDEuMDg1IDsKLSAgICAgICAgUkVDVCAxLjQwNSAxLjAyNSAxLjQ2NSAxLjM1NSA7Ci0gICAgICAgIFJFQ1QgMS4xIDAuNDk1IDEuNTggMC41NTUgOwotICAgICAgICBSRUNUIDEuNTIgMC40NDUgMS42NTUgMC41MDUgOwotICAgIEVORAotICBFTkQgWQotICBQSU4gQTEKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMjYgMC44MDUgMC4zNCAxLjExIDsKLSAgICAgICAgUkVDVCAwLjI2IDAuODA1IDAuNjU1IDAuODg1IDsKLSAgICBFTkQKLSAgRU5EIEExCi0gIFBJTiBCMQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMS40NCAwLjgzNSAxLjc0IDAuOTE1IDsKLSAgICAgICAgUkVDVCAxLjY2IDAuODM1IDEuNzQgMS4xMTUgOwotICAgIEVORAotICBFTkQgQjEKLSAgUElOIEEwCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjIgMC42MjUgMC44MzUgMC43MDUgOwotICAgICAgICBSRUNUIDAuNzU1IDAuNjI1IDAuODM1IDAuNzQ1IDsKLSAgICBFTkQKLSAgRU5EIEEwCi0gIFBJTiBCMAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMS4wOTUgMC43ODUgMS4zNCAwLjg2NSA7Ci0gICAgICAgIFJFQ1QgMS4yNiAwLjY1NSAxLjM0IDAuOTIgOwotICAgICAgICBSRUNUIDEuMjYgMC42NTUgMS43MyAwLjczNSA7Ci0gICAgRU5ECi0gIEVORCBCMAotICBQSU4gVkRECi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIFBPV0VSIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVkREIFZERCEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMS42NSAyIDEuNzEgOwotICAgIEVORAotICBFTkQgVkRECi0gIFBJTiBWU1MKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgR1JPVU5EIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVlNTIFZTUyEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMC4wMCAyIDAuMDYgOwotICAgIEVORAotICBFTkQgVlNTCi1FTkQgT0FJMjJYMgotCi1NQUNSTyBUQlVGWDEKLSAgQ0xBU1MgQ09SRSA7Ci0gIE9SSUdJTiAwIDAgOwotICBGT1JFSUdOIFRCVUZYMSAwIDAgOwotICBTSVpFIDIgQlkgMS43MSA7Ci0gIFNZTU1FVFJZIFggWSA7Ci0gIFNJVEUgQ29yZVNpdGUgOwotICBQSU4gWQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gT1VUUFVUIDsKLSAgICBBTlRFTk5BRElGRkFSRUEgMS43Mjg1ICBMQVlFUiBNZXRhbDEgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMS43MzUgMC40MzUgMS45NjUgMC41NTUgOwotICAgICAgICBSRUNUIDEuOTA1IDAuNDM1IDEuOTY1IDEuMyA7Ci0gICAgICAgIFJFQ1QgMS44NyAwLjkxIDEuOTY1IDEuMyA7Ci0gICAgRU5ECi0gIEVORCBZCi0gIFBJTiBBCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjYzNSAxLjAwNSAwLjc2NSAxLjA4NSA7Ci0gICAgICAgIFJFQ1QgMC43MiAwLjMxIDAuNzggMC43MjUgOwotICAgICAgICBSRUNUIDAuNzIgMC42NjUgMC44OCAwLjcyNSA7Ci0gICAgICAgIFJFQ1QgMC44MiAwLjY2NSAwLjg4IDEuMDY1IDsKLSAgICAgICAgUkVDVCAwLjQzIDEuMDA1IDAuODggMS4wNjUgOwotICAgICAgICBSRUNUIDAuNzIgMC4zMSAxLjI5IDAuMzcgOwotICAgICAgICBSRUNUIDEuMjMgMC4yODUgMS40MyAwLjM0NSA7Ci0gICAgRU5ECi0gIEVORCBBCi0gIFBJTiBPRQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4yNSAwLjgyNSAwLjMzIDAuOTQ1IDsKLSAgICAgICAgUkVDVCAwLjQ2IDAuNiAwLjU0IDAuOTA1IDsKLSAgICAgICAgUkVDVCAwLjI1IDAuODI1IDAuNzIgMC45MDUgOwotICAgIEVORAotICBFTkQgT0UKLSAgUElOIFZERAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBQT1dFUiA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZERCBWREQhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDEuNjUgMiAxLjcxIDsKLSAgICBFTkQKLSAgRU5EIFZERAotICBQSU4gVlNTCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIEdST1VORCA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZTUyBWU1MhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDAuMDAgMiAwLjA2IDsKLSAgICBFTkQKLSAgRU5EIFZTUwotRU5EIFRCVUZYMQotCi1NQUNSTyBTREZGWDQKLSAgQ0xBU1MgQ09SRSA7Ci0gIE9SSUdJTiAwIDAgOwotICBGT1JFSUdOIFNERkZYNCAwIDAgOwotICBTSVpFIDcgQlkgMS43MSA7Ci0gIFNZTU1FVFJZIFggWSA7Ci0gIFNJVEUgQ29yZVNpdGUgOwotICBQSU4gUU4KLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIE9VVFBVVCA7Ci0gICAgQU5URU5OQURJRkZBUkVBIDEuNzI4NSAgTEFZRVIgTWV0YWwxIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDUuNjcgMC40OSA1Ljc0IDEuMjkgOwotICAgICAgICBSRUNUIDUuNjYgMC43OSA1Ljc0IDEuMjkgOwotICAgICAgICBSRUNUIDUuNjYgMC45IDYuMTUgMC45NiA7Ci0gICAgICAgIFJFQ1QgNi4wOSAwLjkgNi4xNSAxLjI5IDsKLSAgICAgICAgUkVDVCA1LjY3IDAuNDkgNi4yNiAwLjU1IDsKLSAgICBFTkQKLSAgRU5EIFFOCi0gIFBJTiBRCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBPVVRQVVQgOwotICAgIEFOVEVOTkFESUZGQVJFQSAxLjcyODUgIExBWUVSIE1ldGFsMSA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCA0Ljg2IDAuNzkgNC45MiAxLjI5IDsKLSAgICAgICAgUkVDVCA0Ljg4IDAuNDkgNC45NCAwLjk2IDsKLSAgICAgICAgUkVDVCA0Ljg2IDAuOSA1LjMzIDAuOTYgOwotICAgICAgICBSRUNUIDQuNzMgMC40OSA1LjMyIDAuNTUgOwotICAgICAgICBSRUNUIDUuMjcgMC45IDUuMzMgMS4yOSA7Ci0gICAgRU5ECi0gIEVORCBRCi0gIFBJTiBDSwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMS40NCAwLjY0IDEuNzY1IDAuNzIgOwotICAgICAgICBSRUNUIDEuNjM1IDAuNjQgMS43NjUgMC44OTUgOwotICAgIEVORAotICBFTkQgQ0sKLSAgUElOIFNJCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAxLjI2IDAuMzggMS4zNCAwLjg4IDsKLSAgICBFTkQKLSAgRU5EIFNJCi0gIFBJTiBECi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjQ2IDAuOTggMC41NCAxLjE3IDsKLSAgICAgICAgUkVDVCAwLjU4IDAuNzkgMC42NiAxLjExIDsKLSAgICAgICAgUkVDVCAwLjQ2IDAuOTggMC42NiAxLjExIDsKLSAgICBFTkQKLSAgRU5EIEQKLSAgUElOIFNFCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjI2IDAuNiAwLjM0IDAuNzMgOwotICAgICAgICBSRUNUIDAuMzk1IDAuNTcgMC40NzUgMC42OSA7Ci0gICAgICAgIFJFQ1QgMC4yNiAwLjYgMC44NCAwLjY5IDsKLSAgICAgICAgUkVDVCAwLjc2IDAuNiAwLjg0IDAuOTYgOwotICAgIEVORAotICBFTkQgU0UKLSAgUElOIFZERAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBQT1dFUiA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZERCBWREQhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDEuNjUgNyAxLjcxIDsKLSAgICBFTkQKLSAgRU5EIFZERAotICBQSU4gVlNTCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIEdST1VORCA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZTUyBWU1MhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDAuMDAgNyAwLjA2IDsKLSAgICBFTkQKLSAgRU5EIFZTUwotRU5EIFNERkZYNAotCi1NQUNSTyBJTlZYMTIKLSAgQ0xBU1MgQ09SRSA7Ci0gIE9SSUdJTiAwIDAgOwotICBGT1JFSUdOIElOVlgxMiAwIDAgOwotICBTSVpFIDIuMjUgQlkgMS43MSA7Ci0gIFNZTU1FVFJZIFggWSAgOwotICBTSVRFIENvcmVTaXRlIDsKLSAgUElOIFkKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIE9VVFBVVCA7Ci0gICAgQU5URU5OQURJRkZBUkVBIDEuNzI4NSAgTEFZRVIgTWV0YWwxIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDIuMSAwLjcwNSAyLjE4IDAuOCA7Ci0gICAgRU5ECi0gIEVORCBZCi0gIFBJTiBBCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjA3IDAuNzIgMC4xNSAwLjg3IDsKLSAgICBFTkQKLSAgRU5EIEEKLSAgUElOIFZERAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBQT1dFUiA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZERCBWREQhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDEuNjUgMi4yNSAxLjcxIDsKLSAgICBFTkQKLSAgRU5EIFZERAotICBQSU4gVlNTCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIEdST1VORCA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZTUyBWU1MhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDAuMDAgMi4yNSAwLjA2IDsKLSAgICBFTkQKLSAgRU5EIFZTUwotRU5EIElOVlgxMgotCi1NQUNSTyBERkZSSFFYOAotICBDTEFTUyBDT1JFIDsKLSAgT1JJR0lOIDAgMCA7Ci0gIEZPUkVJR04gREZGUkhRWDggMCAwIDsKLSAgU0laRSA2LjYgQlkgMS43MSA7Ci0gIFNZTU1FVFJZIFggWSA7Ci0gIFNJVEUgQ29yZVNpdGUgOwotICBQSU4gQ0sKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDYuNDM1IDAuNjM1IDYuNTY1IDEuMDg1IDsKLSAgICBFTkQKLSAgRU5EIENLCi0gIFBJTiBSTgotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMS43NDUgMC4zNDUgMS44MDUgMC43OTUgOwotICAgICAgICBSRUNUIDEuNjYgMC42IDEuODA1IDAuNzk1IDsKLSAgICAgICAgUkVDVCAxLjc0NSAwLjM0NSAyLjQ0NSAwLjQwNSA7Ci0gICAgICAgIFJFQ1QgMi4zODUgMC4zNDUgMi40NDUgMC44MSA7Ci0gICAgRU5ECi0gIEVORCBSTgotICBQSU4gRAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgNS44MyAwLjQ3IDUuOTY1IDAuNzA1IDsKLSAgICAgICAgUkVDVCA1LjgzIDAuNDcgNi4xNzUgMC42MTUgOwotICAgIEVORAotICBFTkQgRAotICBQSU4gUQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gT1VUUFVUIDsKLSAgICBBTlRFTk5BRElGRkFSRUEgMS43Mjg1ICBMQVlFUiBNZXRhbDEgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wNiAwLjU0IDAuMTMgMS4zNDUgOwotICAgICAgICBSRUNUIDAuMDYgMC41NCAwLjE0IDAuNzMgOwotICAgICAgICBSRUNUIDAuNDggMC42NyAwLjU0IDEuMzQ1IDsKLSAgICAgICAgUkVDVCAwLjQ5IDAuNTQgMC41NSAwLjczIDsKLSAgICAgICAgUkVDVCAwLjA2IDAuNjcgMC45NiAwLjczIDsKLSAgICAgICAgUkVDVCAwLjg5IDAuNjcgMC45NSAxLjM0NSA7Ci0gICAgICAgIFJFQ1QgMC45IDAuNTQgMC45NiAwLjggOwotICAgICAgICBSRUNUIDAuODkgMC43NCAxLjMxNSAwLjggOwotICAgICAgICBSRUNUIDEuMjU1IDAuNTcgMS4zMTUgMC45NiA7Ci0gICAgICAgIFJFQ1QgMS4zIDAuOSAxLjM2IDEuMzQ1IDsKLSAgICAgICAgUkVDVCAxLjI1NSAwLjU3IDEuNCAwLjYzIDsKLSAgICBFTkQKLSAgRU5EIFEKLSAgUElOIFZERAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBQT1dFUiA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZERCBWREQhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDEuNjUgNi42IDEuNzEgOwotICAgIEVORAotICBFTkQgVkRECi0gIFBJTiBWU1MKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgR1JPVU5EIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVlNTIFZTUyEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMC4wMCA2LjYgMC4wNiA7Ci0gICAgRU5ECi0gIEVORCBWU1MKLUVORCBERkZSSFFYOAotCi1NQUNSTyBOT1IyWDQKLSAgQ0xBU1MgQ09SRSA7Ci0gIE9SSUdJTiAwIDAgOwotICBGT1JFSUdOIE5PUjJYNCAwIDAgOwotICBTSVpFIDIgQlkgMS43MSA7Ci0gIFNZTU1FVFJZIFggWSA7Ci0gIFNJVEUgQ29yZVNpdGUgOwotICBQSU4gWQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gT1VUUFVUIDsKLSAgICBBTlRFTk5BRElGRkFSRUEgMS43Mjg1ICBMQVlFUiBNZXRhbDEgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC40MzUgMC40MzUgMC40OTUgMC41NTUgOwotICAgICAgICBSRUNUIDAuNzQgMC45OTUgMC44IDEuMzQ1IDsKLSAgICAgICAgUkVDVCAwLjg0NSAwLjQzNSAwLjkwNSAwLjU1NSA7Ci0gICAgICAgIFJFQ1QgMS4yNTUgMC40MzUgMS4zMTUgMC41NTUgOwotICAgICAgICBSRUNUIDEuNDA1IDAuOTk1IDEuNDY1IDEuMzQ1IDsKLSAgICAgICAgUkVDVCAxLjY2NSAwLjQzNSAxLjcyNSAwLjU1NSA7Ci0gICAgICAgIFJFQ1QgMC40MzUgMC40OTUgMS45NjUgMC41NTUgOwotICAgICAgICBSRUNUIDEuODM1IDAuODE1IDEuOTY1IDAuODk1IDsKLSAgICAgICAgUkVDVCAxLjkwNSAwLjQ5NSAxLjk2NSAxLjA1NSA7Ci0gICAgICAgIFJFQ1QgMC43NCAwLjk5NSAxLjk2NSAxLjA1NSA7Ci0gICAgRU5ECi0gIEVORCBZCi0gIFBJTiBCCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjc1IDAuODE1IDEuNDIgMC44OTUgOwotICAgIEVORAotICBFTkQgQgotICBQSU4gQQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC40NiAwLjY1NSAwLjU0IDAuOTIgOwotICAgICAgICBSRUNUIDAuMzY1IDAuNjU1IDEuNzk1IDAuNzE1IDsKLSAgICBFTkQKLSAgRU5EIEEKLSAgUElOIFZERAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBQT1dFUiA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZERCBWREQhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDEuNjUgMiAxLjcxIDsKLSAgICBFTkQKLSAgRU5EIFZERAotICBQSU4gVlNTCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIEdST1VORCA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZTUyBWU1MhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDAuMDAgMiAwLjA2IDsKLSAgICBFTkQKLSAgRU5EIFZTUwotRU5EIE5PUjJYNAotCi1NQUNSTyBPUjNYOAotICBDTEFTUyBDT1JFIDsKLSAgT1JJR0lOIDAgMCA7Ci0gIEZPUkVJR04gT1IzWDggMCAwIDsKLSAgU0laRSAzLjIgQlkgMS43MSA7Ci0gIFNZTU1FVFJZIFggWSA7Ci0gIFNJVEUgQ29yZVNpdGUgOwotICBQSU4gWQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gT1VUUFVUIDsKLSAgICBBTlRFTk5BRElGRkFSRUEgMS43Mjg1ICBMQVlFUiBNZXRhbDEgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMS42MzUgMC45MDUgMS42OTUgMS4zNDUgOwotICAgICAgICBSRUNUIDEuNzA1IDAuNTcgMS44MjUgMC42MyA7Ci0gICAgICAgIFJFQ1QgMi4wNDUgMC45MDUgMi4xMDUgMS4zNDUgOwotICAgICAgICBSRUNUIDIuMTE1IDAuNTcgMi4yMzUgMC42NDUgOwotICAgICAgICBSRUNUIDIuNDU1IDAuOTA1IDIuNTE1IDEuMzQ1IDsKLSAgICAgICAgUkVDVCAyLjU1NSAwLjUyNSAyLjYxNSAwLjY0NSA7Ci0gICAgICAgIFJFQ1QgMi42NiAwLjU4NSAyLjcyIDAuOTY1IDsKLSAgICAgICAgUkVDVCAyLjY2IDAuNTg1IDIuNzQgMC43MyA7Ci0gICAgICAgIFJFQ1QgMS42MzUgMC45MDUgMi45MjUgMC45NjUgOwotICAgICAgICBSRUNUIDIuODY1IDAuOTA1IDIuOTI1IDEuMzQ1IDsKLSAgICAgICAgUkVDVCAxLjc4IDAuNTg1IDIuOTggMC42NDUgOwotICAgICAgICBSRUNUIDIuOTM1IDAuNTcgMy4wNTUgMC42MyA7Ci0gICAgRU5ECi0gIEVORCBZCi0gIFBJTiBDCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjY2IDAuODI1IDAuNzQgMS4xMSA7Ci0gICAgICAgIFJFQ1QgMC42NiAwLjgyNSAwLjk1NSAwLjkwNSA7Ci0gICAgRU5ECi0gIEVORCBDCi0gIFBJTiBCCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjUzIDAuNjY1IDEuMTk1IDAuNzI1IDsKLSAgICAgICAgUkVDVCAxLjA2IDAuNjY1IDEuMTQgMC45MiA7Ci0gICAgICAgIFJFQ1QgMS4wNiAwLjY2NSAxLjE5NSAwLjc4NSA7Ci0gICAgRU5ECi0gIEVORCBCCi0gIFBJTiBBCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjI2IDAuNTIgMC4zNCAwLjczIDsKLSAgICAgICAgUkVDVCAwLjI5NSAwLjUwNSAxLjM2IDAuNTY1IDsKLSAgICAgICAgUkVDVCAxLjMgMC41MDUgMS4zNiAwLjc1NSA7Ci0gICAgRU5ECi0gIEVORCBBCi0gIFBJTiBWREQKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgUE9XRVIgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWREQgVkREISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAxLjY1IDMuMiAxLjcxIDsKLSAgICBFTkQKLSAgRU5EIFZERAotICBQSU4gVlNTCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIEdST1VORCA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZTUyBWU1MhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDAuMDAgMy4yIDAuMDYgOwotICAgIEVORAotICBFTkQgVlNTCi1FTkQgT1IzWDgKLQotTUFDUk8gQlVGWDIKLSAgQ0xBU1MgQ09SRSA7Ci0gIE9SSUdJTiAwIDAgOwotICBGT1JFSUdOIEJVRlgyIDAgMCA7Ci0gIFNJWkUgMSBCWSAxLjcxIDsKLSAgU1lNTUVUUlkgWCBZIDsKLSAgU0lURSBDb3JlU2l0ZSA7Ci0gIFBJTiBZCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBPVVRQVVQgOwotICAgIEFOVEVOTkFESUZGQVJFQSAxLjcyODUgIExBWUVSIE1ldGFsMSA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjI2IDAuNiAwLjM2NSAwLjczIDsKLSAgICAgICAgUkVDVCAwLjMwNSAwLjU1NSAwLjM2NSAwLjkyNSA7Ci0gICAgICAgIFJFQ1QgMC4zNSAwLjQ5NSAwLjQxIDAuNjE1IDsKLSAgICAgICAgUkVDVCAwLjM1IDAuODY1IDAuNDEgMS4zMiA7Ci0gICAgRU5ECi0gIEVORCBZCi0gIFBJTiBBCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjY4NSAwLjc2IDAuNzY1IDEuMDg1IDsKLSAgICAgICAgUkVDVCAwLjUxIDEuMDA1IDAuNzY1IDEuMDg1IDsKLSAgICBFTkQKLSAgRU5EIEEKLSAgUElOIFZERAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBQT1dFUiA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZERCBWREQhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDEuNjUgMSAxLjcxIDsKLSAgICBFTkQKLSAgRU5EIFZERAotICBQSU4gVlNTCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIEdST1VORCA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZTUyBWU1MhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDAuMDAgMSAwLjA2IDsKLSAgICBFTkQKLSAgRU5EIFZTUwotRU5EIEJVRlgyCi0KLU1BQ1JPIE5PUjRYOAotICBDTEFTUyBDT1JFIDsKLSAgT1JJR0lOIDAgMCA7Ci0gIEZPUkVJR04gTk9SNFg4IDAgMCA7Ci0gIFNJWkUgNi4yIEJZIDEuNzEgOwotICBTWU1NRVRSWSBYIFkgOwotICBTSVRFIENvcmVTaXRlIDsKLSAgUElOIFkKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIE9VVFBVVCA7Ci0gICAgQU5URU5OQURJRkZBUkVBIDEuNzI4NSAgTEFZRVIgTWV0YWwxIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMjYgMC40NTUgMC4zOCAwLjUxNSA7Ci0gICAgICAgIFJFQ1QgMC42NyAwLjQ1NSAwLjc5IDAuNTMgOwotICAgICAgICBSRUNUIDEuMDggMC40NTUgMS4yIDAuNTMgOwotICAgICAgICBSRUNUIDEuNDkgMC40NTUgMS42MSAwLjUzIDsKLSAgICAgICAgUkVDVCAxLjk1IDAuNDU1IDIuMDcgMC41MyA7Ci0gICAgICAgIFJFQ1QgMi4zNiAwLjQ1NSAyLjQ4IDAuNTMgOwotICAgICAgICBSRUNUIDIuNzcgMC40NTUgMi44OSAwLjUzIDsKLSAgICAgICAgUkVDVCAzLjE4IDAuNDU1IDMuMyAwLjUzIDsKLSAgICAgICAgUkVDVCAzLjU5IDAuNDU1IDMuNzEgMC41MyA7Ci0gICAgICAgIFJFQ1QgNCAwLjQ1NSA0LjEyIDAuNTMgOwotICAgICAgICBSRUNUIDQuNDEgMC40NTUgNC41MyAwLjUzIDsKLSAgICAgICAgUkVDVCA0LjY0NSAwLjk5NSA0LjcwNSAxLjE4NSA7Ci0gICAgICAgIFJFQ1QgNC44MiAwLjQ1NSA0Ljk0IDAuNTMgOwotICAgICAgICBSRUNUIDUuMDU1IDAuOTk1IDUuMTE1IDEuMTg1IDsKLSAgICAgICAgUkVDVCA1LjIzIDAuNDU1IDUuMzUgMC41MyA7Ci0gICAgICAgIFJFQ1QgNS4zIDAuODE1IDUuNTI1IDEuMDU1IDsKLSAgICAgICAgUkVDVCA0LjY0NSAwLjk5NSA1LjUyNSAxLjA1NSA7Ci0gICAgICAgIFJFQ1QgNS40NiAwLjc5IDUuNTI1IDEuMTg1IDsKLSAgICAgICAgUkVDVCA1LjMgMC44MTUgNS41NCAwLjkyIDsKLSAgICAgICAgUkVDVCA1LjQ5IDAuNDcgNS41NSAwLjg3NSA7Ci0gICAgICAgIFJFQ1QgNS42NyAwLjQxIDUuNzMgMC41MyA7Ci0gICAgICAgIFJFQ1QgMC4zMzUgMC40NyA1LjczIDAuNTMgOwotICAgICAgICBSRUNUIDUuMyAwLjgxNSA1LjkzNSAwLjg3NSA7Ci0gICAgICAgIFJFQ1QgNS44NzUgMC44MTUgNS45MzUgMS4zNDUgOwotICAgIEVORAotICBFTkQgWQotICBQSU4gQQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC44NiAwLjc1IDAuOTQgMC45MiA7Ci0gICAgICAgIFJFQ1QgMC45NSAwLjcxIDEuMDMgMC44MyA7Ci0gICAgICAgIFJFQ1QgMC40IDAuNzUgMS4wMyAwLjgzIDsKLSAgICBFTkQKLSAgRU5EIEEKLSAgUElOIEIKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDIuMDM1IDAuNzcgMi4xNjUgMC44OTUgOwotICAgICAgICBSRUNUIDEuODg1IDAuNzcgMi41NDUgMC44NSA7Ci0gICAgRU5ECi0gIEVORCBCCi0gIFBJTiBDCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAzLjMyIDAuNzcgNC4zNCAwLjgzIDsKLSAgICAgICAgUkVDVCA0LjIyNSAwLjcxIDQuMjg1IDAuODMgOwotICAgICAgICBSRUNUIDQuMjYgMC43NyA0LjM0IDAuOTIgOwotICAgIEVORAotICBFTkQgQwotICBQSU4gRAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgNC43NTUgMC42MyA0Ljk2NSAwLjg5NSA7Ci0gICAgICAgIFJFQ1QgNC43NTUgMC42MyA1LjM5IDAuNzEgOwotICAgIEVORAotICBFTkQgRAotICBQSU4gVkRECi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIFBPV0VSIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVkREIFZERCEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMS42NSA2LjIgMS43MSA7Ci0gICAgRU5ECi0gIEVORCBWREQKLSAgUElOIFZTUwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBHUk9VTkQgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWU1MgVlNTISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAwLjAwIDYuMiAwLjA2IDsKLSAgICBFTkQKLSAgRU5EIFZTUwotRU5EIE5PUjRYOAotCi1NQUNSTyBBT0kyMVgyCi0gIENMQVNTIENPUkUgOwotICBPUklHSU4gMCAwIDsKLSAgRk9SRUlHTiBBT0kyMVgyIDAgMCA7Ci0gIFNJWkUgMS42IEJZIDEuNzEgOwotICBTWU1NRVRSWSBYIFkgOwotICBTSVRFIENvcmVTaXRlIDsKLSAgUElOIFZTUwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBHUk9VTkQgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWU1MgVlNTISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAwLjAwIDEuNiAwLjA2IDsKLSAgICBFTkQKLSAgRU5EIFZTUwotICBQSU4gVkRECi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIFBPV0VSIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVkREIFZERCEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMS42NSAxLjYgMS43MSA7Ci0gICAgRU5ECi0gIEVORCBWREQKLSAgUElOIEIwCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAxLjI0IDAuNjI1IDEuMzYgMC43NCA7Ci0gICAgICAgIFJFQ1QgMS40NiAwLjQ4NSAxLjU2NSAwLjcwNSA7Ci0gICAgICAgIFJFQ1QgMS4yNCAwLjYyNSAxLjU2NSAwLjcwNSA7Ci0gICAgRU5ECi0gIEVORCBCMAotICBQSU4gQTAKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMjYgMC41OSAwLjg2NSAwLjY3IDsKLSAgICAgICAgUkVDVCAwLjY2IDAuNTkgMC43NCAwLjczIDsKLSAgICAgICAgUkVDVCAwLjY2IDAuNTkgMC44NjUgMC43MSA7Ci0gICAgRU5ECi0gIEVORCBBMAotICBQSU4gQTEKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMjM1IDAuNzcgMC41NiAwLjkgOwotICAgIEVORAotICBFTkQgQTEKLSAgUElOIFkKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIE9VVFBVVCA7Ci0gICAgQU5URU5OQURJRkZBUkVBIDEuNzI4NSAgTEFZRVIgTWV0YWwxIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuNTA1IDAuNDEgMC42MjUgMC40NyA7Ci0gICAgICAgIFJFQ1QgMC41NzUgMC40MyAxLjE0IDAuNDkgOwotICAgICAgICBSRUNUIDEuMDYgMC40MyAxLjE0IDAuNzMgOwotICAgICAgICBSRUNUIDEuMDggMC4zNyAxLjE0IDAuOSA7Ci0gICAgICAgIFJFQ1QgMS4wOCAwLjg0IDEuMjY1IDAuOSA7Ci0gICAgICAgIFJFQ1QgMS4yMDUgMC44NCAxLjI2NSAxLjAyIDsKLSAgICBFTkQKLSAgRU5EIFkKLUVORCBBT0kyMVgyCi0KLU1BQ1JPIERGRlg0Ci0gIENMQVNTIENPUkUgOwotICBPUklHSU4gMCAwIDsKLSAgRk9SRUlHTiBERkZYNCAwIDAgOwotICBTSVpFIDUuNCBCWSAxLjcxIDsKLSAgU1lNTUVUUlkgWCBZIDsKLSAgU0lURSBDb3JlU2l0ZSA7Ci0gIFBJTiBRTgotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gT1VUUFVUIDsKLSAgICBBTlRFTk5BRElGRkFSRUEgMS43Mjg1ICBMQVlFUiBNZXRhbDEgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgNC4wNzUgMC41NyA0LjE0IDEuNDA1IDsKLSAgICAgICAgUkVDVCA0LjA2IDAuNzkgNC4xNCAxLjQwNSA7Ci0gICAgICAgIFJFQ1QgNC4wNiAxLjAxNSA0LjE0NSAxLjQwNSA7Ci0gICAgICAgIFJFQ1QgNC4wNiAxLjAxNSA0LjU1NSAxLjA3NSA7Ci0gICAgICAgIFJFQ1QgNC40OTUgMS4wMTUgNC41NTUgMS40MDUgOwotICAgICAgICBSRUNUIDQuMDc1IDAuNTcgNC42NjUgMC42MyA7Ci0gICAgRU5ECi0gIEVORCBRTgotICBQSU4gUQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gT1VUUFVUIDsKLSAgICBBTlRFTk5BRElGRkFSRUEgMS43Mjg1ICBMQVlFUiBNZXRhbDEgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMy4yNiAwLjYgMy4zNCAwLjczIDsKLSAgICAgICAgUkVDVCAzLjI2NSAwLjYgMy4zMjUgMS40MDUgOwotICAgICAgICBSRUNUIDMuMjggMC40NCAzLjM0IDEuMDc1IDsKLSAgICAgICAgUkVDVCAzLjI2NSAxLjAxNSAzLjczNSAxLjA3NSA7Ci0gICAgICAgIFJFQ1QgMy4xMzUgMC40NCAzLjcyNSAwLjUgOwotICAgICAgICBSRUNUIDMuNjc1IDEuMDE1IDMuNzM1IDEuNDA1IDsKLSAgICBFTkQKLSAgRU5EIFEKLSAgUElOIEQKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuODYgMC41MjUgMC45NCAxLjAyNSA7Ci0gICAgRU5ECi0gIEVORCBECi0gIFBJTiBDSwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wNiAwLjU2NSAwLjE0IDAuOTY1IDsKLSAgICAgICAgUkVDVCAwLjA2IDAuNTY1IDAuMjQgMC43MyA7Ci0gICAgRU5ECi0gIEVORCBDSwotICBQSU4gVkRECi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIFBPV0VSIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVkREIFZERCEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMS42NSA1LjQgMS43MSA7Ci0gICAgRU5ECi0gIEVORCBWREQKLSAgUElOIFZTUwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBHUk9VTkQgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWU1MgVlNTISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAwLjAwIDUuNCAwLjA2IDsKLSAgICBFTkQKLSAgRU5EIFZTUwotRU5EIERGRlg0Ci0KLU1BQ1JPIENMS0JVRlgxMgotICBDTEFTUyBDT1JFIDsKLSAgT1JJR0lOIDAgMCA7Ci0gIEZPUkVJR04gQ0xLQlVGWDEyIDAgMCA7Ci0gIFNJWkUgMyBCWSAxLjcxIDsKLSAgU1lNTUVUUlkgWCBZIDsKLSAgU0lURSBDb3JlU2l0ZSA7Ci0gIFBJTiBZCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBPVVRQVVQgOwotICAgIEFOVEVOTkFESUZGQVJFQSAxLjcyODUgIExBWUVSIE1ldGFsMSA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjIzNSAwLjQ3NSAwLjI5NSAxLjA0IDsKLSAgICAgICAgUkVDVCAwLjI4IDAuMjU1IDAuMzQgMC41MzUgOwotICAgICAgICBSRUNUIDAuMjYgMC45OCAwLjM0IDEuNDUgOwotICAgICAgICBSRUNUIDAuNjkgMC4yNTUgMC43NSAwLjUzNSA7Ci0gICAgICAgIFJFQ1QgMC42OSAwLjk4IDAuNzUgMS40NSA7Ci0gICAgICAgIFJFQ1QgMS4xIDAuMjU1IDEuMTYgMC41MzUgOwotICAgICAgICBSRUNUIDEuMSAwLjk4IDEuMTYgMS40NSA7Ci0gICAgICAgIFJFQ1QgMS41MSAwLjI1NSAxLjU3IDAuNTM1IDsKLSAgICAgICAgUkVDVCAxLjUxIDAuOTggMS41NyAxLjQ1IDsKLSAgICAgICAgUkVDVCAwLjIzNSAwLjk4IDEuOTggMS4wNCA7Ci0gICAgICAgIFJFQ1QgMS45MiAwLjI1NSAxLjk4IDAuNTM1IDsKLSAgICAgICAgUkVDVCAwLjIzNSAwLjQ3NSAxLjk4IDAuNTM1IDsKLSAgICAgICAgUkVDVCAxLjkyIDAuOTggMS45OCAxLjQ1IDsKLSAgICBFTkQKLSAgRU5EIFkKLSAgUElOIEEKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDIuMjYgMC43OTUgMi4zNCAxLjIzIDsKLSAgICAgICAgUkVDVCAyLjI2IDAuNzk1IDIuNDA1IDAuODc1IDsKLSAgICBFTkQKLSAgRU5EIEEKLSAgUElOIFZERAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBQT1dFUiA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZERCBWREQhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDEuNjUgMyAxLjcxIDsKLSAgICBFTkQKLSAgRU5EIFZERAotICBQSU4gVlNTCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIEdST1VORCA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZTUyBWU1MhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDAuMDAgMyAwLjA2IDsKLSAgICBFTkQKLSAgRU5EIFZTUwotRU5EIENMS0JVRlgxMgotCi1NQUNSTyBOT1IyWDIKLSAgQ0xBU1MgQ09SRSA7Ci0gIE9SSUdJTiAwIDAgOwotICBGT1JFSUdOIE5PUjJYMiAwIDAgOwotICBTSVpFIDEuMiBCWSAxLjcxIDsKLSAgU1lNTUVUUlkgWCBZIDsKLSAgU0lURSBDb3JlU2l0ZSA7Ci0gIFBJTiBZCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBPVVRQVVQgOwotICAgIEFOVEVOTkFESUZGQVJFQSAxLjcyODUgIExBWUVSIE1ldGFsMSA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjMgMC40NyAwLjM2IDAuNjEgOwotICAgICAgICBSRUNUIDAuNTA1IDAuODkgMC41NjUgMS40MSA7Ci0gICAgICAgIFJFQ1QgMC43MSAwLjQ3IDAuNzcgMC42MSA7Ci0gICAgICAgIFJFQ1QgMC4zIDAuNTUgMS4xMiAwLjYxIDsKLSAgICAgICAgUkVDVCAxLjA2IDAuNTUgMS4xMiAwLjk1IDsKLSAgICAgICAgUkVDVCAxLjA2IDAuNzkgMS4xNCAwLjk1IDsKLSAgICAgICAgUkVDVCAwLjUwNSAwLjg5IDEuMTQgMC45NSA7Ci0gICAgRU5ECi0gIEVORCBZCi0gIFBJTiBCCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjI2IDAuODkgMC4zNCAxLjMyNSA7Ci0gICAgICAgIFJFQ1QgMC4yNiAwLjg5IDAuNDA1IDAuOTcgOwotICAgIEVORAotICBFTkQgQgotICBQSU4gQQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wNiAwLjcxIDAuMTQgMC45MiA7Ci0gICAgICAgIFJFQ1QgMC4wNiAwLjcxIDAuODQgMC43OSA7Ci0gICAgRU5ECi0gIEVORCBBCi0gIFBJTiBWREQKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgUE9XRVIgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWREQgVkREISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAxLjY1IDEuMiAxLjcxIDsKLSAgICBFTkQKLSAgRU5EIFZERAotICBQSU4gVlNTCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIEdST1VORCA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZTUyBWU1MhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDAuMDAgMS4yIDAuMDYgOwotICAgIEVORAotICBFTkQgVlNTCi1FTkQgTk9SMlgyCi0KLU1BQ1JPIFRJRUxPCi0gIENMQVNTIENPUkUgOwotICBPUklHSU4gMCAwIDsKLSAgRk9SRUlHTiBUSUVMTyAwIDAgOwotICBTSVpFIDAuNiBCWSAxLjcxIDsKLSAgU1lNTUVUUlkgWCBZIDsKLSAgU0lURSBDb3JlU2l0ZSA7Ci0gIFBJTiBZCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBPVVRQVVQgOwotICAgIEFOVEVOTkFESUZGQVJFQSAxLjcyODUgIExBWUVSIE1ldGFsMSA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjA2IDAuMTYgMC4xNCAwLjY2IDsKLSAgICBFTkQKLSAgRU5EIFkKLSAgUElOIFZERAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBQT1dFUiA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZERCBWREQhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDEuNjUgMC42IDEuNzEgOwotICAgIEVORAotICBFTkQgVkRECi0gIFBJTiBWU1MKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgR1JPVU5EIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVlNTIFZTUyEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMC4wMCAwLjYgMC4wNiA7Ci0gICAgRU5ECi0gIEVORCBWU1MKLUVORCBUSUVMTwotCi1NQUNSTyBTREZGSFFYMQotICBDTEFTUyBDT1JFIDsKLSAgT1JJR0lOIDAgMCA7Ci0gIEZPUkVJR04gU0RGRkhRWDEgMCAwIDsKLSAgU0laRSA1IEJZIDEuNzEgOwotICBTWU1NRVRSWSBYIFkgOwotICBTSVRFIENvcmVTaXRlIDsKLSAgUElOIFEKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIE9VVFBVVCA7Ci0gICAgQU5URU5OQURJRkZBUkVBIDEuNzI4NSAgTEFZRVIgTWV0YWwxIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDYgMC42IDAuMiAwLjczIDsKLSAgICAgICAgUkVDVCAwLjE0IDAuNTQgMC4yIDEuNDc1IDsKLSAgICBFTkQKLSAgRU5EIFEKLSAgUElOIFNFCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAzLjkzNSAwLjY0NSAzLjk5NSAwLjk0NSA7Ci0gICAgICAgIFJFQ1QgNC42MzUgMC42MjUgNC43NyAwLjcwNSA7Ci0gICAgICAgIFJFQ1QgMy45MzUgMC42NDUgNC43NyAwLjcwNSA7Ci0gICAgICAgIFJFQ1QgNC43MSAwLjYyNSA0Ljc3IDAuNzQ1IDsKLSAgICBFTkQKLSAgRU5EIFNFCi0gIFBJTiBTSQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgNC4yNjUgMC44MDUgNC41NjUgMS4wNCA7Ci0gICAgICAgIFJFQ1QgNC4yNjUgMC44MDUgNC42MSAwLjg5NSA7Ci0gICAgRU5ECi0gIEVORCBTSQotICBQSU4gRAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMy40NiAwLjU0NSAzLjU0IDAuNzMgOwotICAgICAgICBSRUNUIDMuNDYgMC42NSAzLjY3NSAwLjczIDsKLSAgICAgICAgUkVDVCAzLjU5NSAwLjY1IDMuNjc1IDAuOTEgOwotICAgIEVORAotICBFTkQgRAotICBQSU4gQ0sKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuNDYgMC43OSAwLjU0IDEuMjU1IDsKLSAgICAgICAgUkVDVCAwLjQ4NSAwLjc4IDAuNTY1IDEuMDM1IDsKLSAgICBFTkQKLSAgRU5EIENLCi0gIFBJTiBWREQKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgUE9XRVIgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWREQgVkREISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAxLjY1IDUgMS43MSA7Ci0gICAgRU5ECi0gIEVORCBWREQKLSAgUElOIFZTUwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBHUk9VTkQgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWU1MgVlNTISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAwLjAwIDUgMC4wNiA7Ci0gICAgRU5ECi0gIEVORCBWU1MKLUVORCBTREZGSFFYMQotCi1NQUNSTyBOT1IzQlg0Ci0gIENMQVNTIENPUkUgOwotICBPUklHSU4gMCAwIDsKLSAgRk9SRUlHTiBOT1IzQlg0IDAgMCA7Ci0gIFNJWkUgMy40IEJZIDEuNzEgOwotICBTWU1NRVRSWSBYIFkgOwotICBTSVRFIENvcmVTaXRlIDsKLSAgUElOIFkKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIE9VVFBVVCA7Ci0gICAgQU5URU5OQURJRkZBUkVBIDEuNzI4NSAgTEFZRVIgTWV0YWwxIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDYgMC40MSAwLjE0IDAuNTQgOwotICAgICAgICBSRUNUIDAuMDYgMC40MSAwLjMxNSAwLjQ3IDsKLSAgICAgICAgUkVDVCAwLjI1NSAwLjM3NSAwLjMxNSAxLjE4NSA7Ci0gICAgICAgIFJFQ1QgMC45MjUgMS4xMjUgMC45ODUgMS4zNzUgOwotICAgICAgICBSRUNUIDAuMjU1IDEuMTI1IDIuMjM1IDEuMTg1IDsKLSAgICAgICAgUkVDVCAyLjE3NSAxLjEyNSAyLjIzNSAxLjM3NSA7Ci0gICAgICAgIFJFQ1QgMC4yNTUgMC4zNzUgMi44OTUgMC40MzUgOwotICAgIEVORAotICBFTkQgWQotICBQSU4gQgotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC42NiAwLjYgMC43NCAwLjg2NSA7Ci0gICAgICAgIFJFQ1QgMS41MDUgMC42OTUgMS41NjUgMC44NjUgOwotICAgICAgICBSRUNUIDAuNjYgMC44MDUgMS41NjUgMC44NjUgOwotICAgICAgICBSRUNUIDEuNTA1IDAuNjk1IDIgMC43NTUgOwotICAgICAgICBSRUNUIDEuOTQgMC42OTUgMiAwLjg2NSA7Ci0gICAgICAgIFJFQ1QgMi41OSAwLjY4NSAyLjY1IDAuODY1IDsKLSAgICAgICAgUkVDVCAxLjk0IDAuODA1IDIuNjUgMC44NjUgOwotICAgICAgICBSRUNUIDIuNTkgMC42ODUgMi43MTUgMC43NDUgOwotICAgIEVORAotICBFTkQgQgotICBQSU4gQU4KLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDIuODE1IDAuNTM1IDMuMSAwLjcwNSA7Ci0gICAgICAgIFJFQ1QgMy4wMiAwLjUzNSAzLjEgMC43OSA7Ci0gICAgICAgIFJFQ1QgMy4wMiAwLjcxIDMuMTQgMC43OSA7Ci0gICAgRU5ECi0gIEVORCBBTgotICBQSU4gQwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMS4wMzUgMC42MjUgMS4xNjUgMC43MDUgOwotICAgICAgICBSRUNUIDEuMzQ1IDAuNTM1IDEuNDA1IDAuNzA1IDsKLSAgICAgICAgUkVDVCAxLjAzNSAwLjY0NSAxLjQwNSAwLjcwNSA7Ci0gICAgICAgIFJFQ1QgMS4zNDUgMC41MzUgMi4yMjUgMC41OTUgOwotICAgICAgICBSRUNUIDIuMTY1IDAuNTM1IDIuMjI1IDAuNzA1IDsKLSAgICAgICAgUkVDVCAyLjE2NSAwLjY0NSAyLjI4NSAwLjcwNSA7Ci0gICAgRU5ECi0gIEVORCBDCi0gIFBJTiBWREQKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgUE9XRVIgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWREQgVkREISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAxLjY1IDMuNCAxLjcxIDsKLSAgICBFTkQKLSAgRU5EIFZERAotICBQSU4gVlNTCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIEdST1VORCA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZTUyBWU1MhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDAuMDAgMy40IDAuMDYgOwotICAgIEVORAotICBFTkQgVlNTCi1FTkQgTk9SM0JYNAotCi1NQUNSTyBJTlZYMwotICBDTEFTUyBDT1JFIDsKLSAgT1JJR0lOIDAgMCA7Ci0gIEZPUkVJR04gSU5WWDMgMCAwIDsKLSAgU0laRSAwLjgxNSBCWSAxLjcxIDsKLSAgU1lNTUVUUlkgWCBZICA7Ci0gIFNJVEUgQ29yZVNpdGUgOwotICBQSU4gWQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gT1VUUFVUIDsKLSAgICBBTlRFTk5BRElGRkFSRUEgMS43Mjg1ICBMQVlFUiBNZXRhbDEgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC42NjUgMC43MiAwLjc0NSAwLjggOwotICAgIEVORAotICBFTkQgWQotICBQSU4gQQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wNyAwLjYyIDAuMTc1IDAuODQ1IDsKLSAgICBFTkQKLSAgRU5EIEEKLSAgUElOIFZERAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBQT1dFUiA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZERCBWREQhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDEuNjUgMC44MTUgMS43MSA7Ci0gICAgRU5ECi0gIEVORCBWREQKLSAgUElOIFZTUwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBHUk9VTkQgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWU1MgVlNTISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAwLjAwIDAuODE1IDAuMDYgOwotICAgIEVORAotICBFTkQgVlNTCi1FTkQgSU5WWDMKLQotTUFDUk8gQ0xLWE9SMlg0Ci0gIENMQVNTIENPUkUgOwotICBPUklHSU4gMCAwIDsKLSAgRk9SRUlHTiBDTEtYT1IyWDQgMCAwIDsKLSAgU0laRSAyLjYgQlkgMS43MSA7Ci0gIFNZTU1FVFJZIFggWSA7Ci0gIFNJVEUgQ29yZVNpdGUgOwotICBQSU4gWQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gT1VUUFVUIDsKLSAgICBBTlRFTk5BRElGRkFSRUEgMS43Mjg1ICBMQVlFUiBNZXRhbDEgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4yNiAwLjQzNSAwLjMyIDEuMjkgOwotICAgICAgICBSRUNUIDAuMjYgMC40MzUgMC4zMzUgMC41NzUgOwotICAgICAgICBSRUNUIDAuMjYgMC43OSAwLjMzNSAxLjI5IDsKLSAgICAgICAgUkVDVCAwLjI2IDAuNzkgMC4zNCAwLjk2IDsKLSAgICAgICAgUkVDVCAwLjI2IDAuOSAwLjcgMC45NiA7Ci0gICAgICAgIFJFQ1QgMC42NCAwLjM1NSAwLjcgMC41NzUgOwotICAgICAgICBSRUNUIDAuMjYgMC41MTUgMC43IDAuNTc1IDsKLSAgICAgICAgUkVDVCAwLjY0IDAuOSAwLjcgMS4yMTUgOwotICAgICAgICBSRUNUIDAuNjg1IDAuMjk1IDAuNzQ1IDAuNDE1IDsKLSAgICAgICAgUkVDVCAwLjY4NSAxLjE1NSAwLjc0NSAxLjI3NSA7Ci0gICAgRU5ECi0gIEVORCBZCi0gIFBJTiBCCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAxLjkgMC42MTUgMi4zNCAwLjY5NSA7Ci0gICAgICAgIFJFQ1QgMi4yNiAwLjYxNSAyLjM0IDAuOTIgOwotICAgIEVORAotICBFTkQgQgotICBQSU4gQQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC45NiAwLjY3NSAxLjE2NSAwLjg5NSA7Ci0gICAgICAgIFJFQ1QgMC45NiAwLjY3NSAxLjMyIDAuNzU1IDsKLSAgICBFTkQKLSAgRU5EIEEKLSAgUElOIFZERAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBQT1dFUiA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZERCBWREQhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDEuNjUgMi42IDEuNzEgOwotICAgIEVORAotICBFTkQgVkRECi0gIFBJTiBWU1MKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgR1JPVU5EIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVlNTIFZTUyEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMC4wMCAyLjYgMC4wNiA7Ci0gICAgRU5ECi0gIEVORCBWU1MKLUVORCBDTEtYT1IyWDQKLQotTUFDUk8gREZGU1JYMQotICBDTEFTUyBDT1JFIDsKLSAgT1JJR0lOIDAgMCA7Ci0gIEZPUkVJR04gREZGU1JYMSAwIDAgOwotICBTSVpFIDYuNiBCWSAxLjcxIDsKLSAgU1lNTUVUUlkgWCBZIDsKLSAgU0lURSBDb3JlU2l0ZSA7Ci0gIFBJTiBRCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBPVVRQVVQgOwotICAgIEFOVEVOTkFESUZGQVJFQSAxLjcyODUgIExBWUVSIE1ldGFsMSA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjg4IDAuNCAwLjk0IDEuMTEgOwotICAgICAgICBSRUNUIDAuODYgMC45OCAwLjk0IDEuMTEgOwotICAgICAgICBSRUNUIDAuODYgMS4wNSAxLjA5IDEuMTEgOwotICAgICAgICBSRUNUIDEuMDIgMC4zNCAxLjA4IDAuNDYgOwotICAgICAgICBSRUNUIDAuODggMC40IDEuMDggMC40NiA7Ci0gICAgICAgIFJFQ1QgMS4wMyAxLjA1IDEuMDkgMS4xNyA7Ci0gICAgRU5ECi0gIEVORCBRCi0gIFBJTiBRTgotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gT1VUUFVUIDsKLSAgICBBTlRFTk5BRElGRkFSRUEgMS43Mjg1ICBMQVlFUiBNZXRhbDEgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wNiAwLjYgMC4zMjUgMC43MyA7Ci0gICAgICAgIFJFQ1QgMC4yNDUgMC41NCAwLjMyNSAxLjI5IDsKLSAgICBFTkQKLSAgRU5EIFFOCi0gIFBJTiBDSwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgNi40IDAuNDYgNi40OCAwLjg1IDsKLSAgICAgICAgUkVDVCA2LjQ2IDAuNDEgNi41NCAwLjU0IDsKLSAgICBFTkQKLSAgRU5EIENLCi0gIFBJTiBECi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCA1LjY4IDAuNjA1IDUuNzYgMC44NyA7Ci0gICAgICAgIFJFQ1QgNS42OCAwLjc5IDUuOTQgMC44NyA7Ci0gICAgICAgIFJFQ1QgNS44NiAwLjc5IDUuOTQgMC45MjUgOwotICAgIEVORAotICBFTkQgRAotICBQSU4gU04KLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDMuMjM1IDAuNjI1IDMuMzY1IDAuNzA1IDsKLSAgICAgICAgUkVDVCAzLjMwNSAwLjMgMy4zNjUgMC44NjUgOwotICAgICAgICBSRUNUIDIuMjY1IDAuODA1IDMuMzY1IDAuODY1IDsKLSAgICAgICAgUkVDVCAzLjMwNSAwLjMgNC4wMDUgMC4zNiA7Ci0gICAgICAgIFJFQ1QgMy45NDUgMC4zIDQuMDA1IDAuOTIgOwotICAgICAgICBSRUNUIDMuOTQ1IDAuODYgNC44NTUgMC45MiA7Ci0gICAgRU5ECi0gIEVORCBTTgotICBQSU4gUk4KLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDEuMjg1IDAuNzIgMS4zNjUgMC44OTUgOwotICAgICAgICBSRUNUIDEuMDQgMC44MTUgMS4zNjUgMC44OTUgOwotICAgICAgICBSRUNUIDEuMjg1IDAuNzIgMS40NDUgMC44IDsKLSAgICBFTkQKLSAgRU5EIFJOCi0gIFBJTiBWREQKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgUE9XRVIgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWREQgVkREISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAxLjY1IDYuNiAxLjcxIDsKLSAgICBFTkQKLSAgRU5EIFZERAotICBQSU4gVlNTCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIEdST1VORCA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZTUyBWU1MhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDAuMDAgNi42IDAuMDYgOwotICAgIEVORAotICBFTkQgVlNTCi1FTkQgREZGU1JYMQotCi1NQUNSTyBBTzIxWDQKLSAgQ0xBU1MgQ09SRSA7Ci0gIE9SSUdJTiAwIDAgOwotICBGT1JFSUdOIEFPMjFYNCAwIDAgOwotICBTSVpFIDIgQlkgMS43MSA7Ci0gIFNZTU1FVFJZIFggWSA7Ci0gIFNJVEUgQ29yZVNpdGUgOwotICBQSU4gWQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gT1VUUFVUIDsKLSAgICBBTlRFTk5BRElGRkFSRUEgMS43Mjg1ICBMQVlFUiBNZXRhbDEgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMS4wMiAwLjM3IDEuMDggMC41MSA7Ci0gICAgICAgIFJFQ1QgMS4yMjUgMC44NSAxLjI4NSAxLjQgOwotICAgICAgICBSRUNUIDEuNDMgMC4zNyAxLjQ5IDAuNTEgOwotICAgICAgICBSRUNUIDEuMDIgMC40NSAxLjcyIDAuNTEgOwotICAgICAgICBSRUNUIDEuMjI1IDAuODUgMS43MiAwLjkxIDsKLSAgICAgICAgUkVDVCAxLjYzNSAxLjAxIDEuNjk1IDEuNCA7Ci0gICAgICAgIFJFQ1QgMS42NiAwLjQ1IDEuNzIgMS4wNjUgOwotICAgICAgICBSRUNUIDEuNjYgMC42IDEuOTQgMC42NiA7Ci0gICAgICAgIFJFQ1QgMS44NiAwLjYgMS45NCAwLjczIDsKLSAgICBFTkQKLSAgRU5EIFkKLSAgUElOIEEwCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjI2IDAuNTkgMC4zNCAxLjA5IDsKLSAgICBFTkQKLSAgRU5EIEEwCi0gIFBJTiBBMQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC40OCAwLjYxIDAuNTYgMS4wOSA7Ci0gICAgICAgIFJFQ1QgMC40NiAwLjc5IDAuNTYgMS4wOSA7Ci0gICAgRU5ECi0gIEVORCBBMQotICBQSU4gQjAKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuNjggMC42MSAwLjc2IDEuMDkgOwotICAgICAgICBSRUNUIDAuNjYgMC43OSAwLjc2IDEuMDkgOwotICAgIEVORAotICBFTkQgQjAKLSAgUElOIFZERAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBQT1dFUiA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZERCBWREQhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDEuNjUgMiAxLjcxIDsKLSAgICBFTkQKLSAgRU5EIFZERAotICBQSU4gVlNTCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIEdST1VORCA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZTUyBWU1MhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDAuMDAgMiAwLjA2IDsKLSAgICBFTkQKLSAgRU5EIFZTUwotRU5EIEFPMjFYNAotCi1NQUNSTyBTREZGVFJYMgotICBDTEFTUyBDT1JFIDsKLSAgT1JJR0lOIDAgMCA7Ci0gIEZPUkVJR04gU0RGRlRSWDIgMCAwIDsKLSAgU0laRSA2LjYgQlkgMS43MSA7Ci0gIFNZTU1FVFJZIFggWSA7Ci0gIFNJVEUgQ29yZVNpdGUgOwotICBQSU4gUQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gT1VUUFVUIDsKLSAgICBBTlRFTk5BRElGRkFSRUEgMS43Mjg1ICBMQVlFUiBNZXRhbDEgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMS4yMiAwLjU3IDEuMjggMS4yOSA7Ci0gICAgICAgIFJFQ1QgMS4yMiAwLjU3IDEuMzQgMC42MyA7Ci0gICAgICAgIFJFQ1QgMS4yMiAwLjc5IDEuMzQgMC45MiA7Ci0gICAgRU5ECi0gIEVORCBRCi0gIFBJTiBRTgotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gT1VUUFVUIDsKLSAgICBBTlRFTk5BRElGRkFSRUEgMS43Mjg1ICBMQVlFUiBNZXRhbDEgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC42MiAwLjU3IDAuNzQgMC42MyA7Ci0gICAgICAgIFJFQ1QgMC42NiAwLjU3IDAuNzIgMS4yOSA7Ci0gICAgICAgIFJFQ1QgMC42NiAwLjU3IDAuNzQgMC43MyA7Ci0gICAgRU5ECi0gIEVORCBRTgotICBQSU4gRAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgNi4yNiAwLjIyIDYuMzQgMC4zNSA7Ci0gICAgICAgIFJFQ1QgNi4yNjUgMC4yNyA2LjM0NSAwLjczIDsKLSAgICBFTkQKLSAgRU5EIEQKLSAgUElOIFJOCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCA2LjA4NSAwLjY0NSA2LjE2NSAxLjA5NSA7Ci0gICAgICAgIFJFQ1QgNi4wMzUgMS4wMDUgNi4xNjUgMS4wOTUgOwotICAgIEVORAotICBFTkQgUk4KLSAgUElOIFNFCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCA1LjYwNSAwLjY0NSA1LjY4NSAwLjg5NSA7Ci0gICAgICAgIFJFQ1QgNS42MDUgMC43OSA1Ljc2NSAwLjg5NSA7Ci0gICAgICAgIFJFQ1QgNS42MDUgMC43OSA1LjkzNSAwLjg3IDsKLSAgICBFTkQKLSAgRU5EIFNFCi0gIFBJTiBTSQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgNC4yNiAwLjc5IDQuMzQgMC45NjUgOwotICAgICAgICBSRUNUIDQuNDggMC42ODUgNC41NiAwLjkxIDsKLSAgICAgICAgUkVDVCA0LjI2IDAuNzkgNC41NiAwLjkxIDsKLSAgICBFTkQKLSAgRU5EIFNJCi0gIFBJTiBDSwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMS42NiAwLjYgMS43NCAxLjEgOwotICAgIEVORAotICBFTkQgQ0sKLSAgUElOIFZERAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBQT1dFUiA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZERCBWREQhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDEuNjUgNi42IDEuNzEgOwotICAgIEVORAotICBFTkQgVkRECi0gIFBJTiBWU1MKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgR1JPVU5EIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVlNTIFZTUyEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMC4wMCA2LjYgMC4wNiA7Ci0gICAgRU5ECi0gIEVORCBWU1MKLUVORCBTREZGVFJYMgotCi1NQUNSTyBTREZGWDIKLSAgQ0xBU1MgQ09SRSA7Ci0gIE9SSUdJTiAwIDAgOwotICBGT1JFSUdOIFNERkZYMiAwIDAgOwotICBTSVpFIDUuNiBCWSAxLjcxIDsKLSAgU1lNTUVUUlkgWCBZIDsKLSAgU0lURSBDb3JlU2l0ZSA7Ci0gIFBJTiBRTgotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gT1VUUFVUIDsKLSAgICBBTlRFTk5BRElGRkFSRUEgMS43Mjg1ICBMQVlFUiBNZXRhbDEgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgNC44NiAwLjYgNC45NiAwLjczIDsKLSAgICAgICAgUkVDVCA0LjkgMC41NyA0Ljk2IDEuMzU1IDsKLSAgICAgICAgUkVDVCA0Ljg3IDAuNTcgNC45OSAwLjYzIDsKLSAgICBFTkQKLSAgRU5EIFFOCi0gIFBJTiBRCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBPVVRQVVQgOwotICAgIEFOVEVOTkFESUZGQVJFQSAxLjcyODUgIExBWUVSIE1ldGFsMSA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCA0LjQgMC41NyA0LjUyIDAuNjMgOwotICAgICAgICBSRUNUIDQuNDYgMC41NyA0LjUyIDEuMzU1IDsKLSAgICAgICAgUkVDVCA0LjQ2IDAuNiA0LjU0IDAuNzMgOwotICAgIEVORAotICBFTkQgUQotICBQSU4gQ0sKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDQuMDYgMC40NiA0LjE0IDAuOTYgOwotICAgIEVORAotICBFTkQgQ0sKLSAgUElOIFNJCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAxLjE4IDAuODQgMS4yNiAxLjIxIDsKLSAgICAgICAgUkVDVCAxLjI2IDAuNzkgMS4zNCAwLjkyIDsKLSAgICBFTkQKLSAgRU5EIFNJCi0gIFBJTiBECi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjQ0IDAuOTk1IDAuNzQgMS4wNzUgOwotICAgICAgICBSRUNUIDAuNjYgMC45OTUgMC43NCAxLjMgOwotICAgIEVORAotICBFTkQgRAotICBQSU4gU0UKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMjYgMC44MTUgMC4zNCAwLjkzNSA7Ci0gICAgICAgIFJFQ1QgMC4yMzUgMC44MTUgMC43NCAwLjg5NSA7Ci0gICAgRU5ECi0gIEVORCBTRQotICBQSU4gVkRECi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIFBPV0VSIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVkREIFZERCEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMS42NSA1LjYgMS43MSA7Ci0gICAgRU5ECi0gIEVORCBWREQKLSAgUElOIFZTUwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBHUk9VTkQgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWU1MgVlNTISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAwLjAwIDUuNiAwLjA2IDsKLSAgICBFTkQKLSAgRU5EIFZTUwotRU5EIFNERkZYMgotCi1NQUNSTyBOT1IzWDQKLSAgQ0xBU1MgQ09SRSA7Ci0gIE9SSUdJTiAwIDAgOwotICBGT1JFSUdOIE5PUjNYNCAwIDAgOwotICBTSVpFIDMgQlkgMS43MSA7Ci0gIFNZTU1FVFJZIFggWSA7Ci0gIFNJVEUgQ29yZVNpdGUgOwotICBQSU4gWQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gT1VUUFVUIDsKLSAgICBBTlRFTk5BRElGRkFSRUEgMS43Mjg1ICBMQVlFUiBNZXRhbDEgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC45MTUgMS4xMjUgMC45NzUgMS4zNzUgOwotICAgICAgICBSRUNUIDIuMTY1IDEuMTI1IDIuMjI1IDEuMzc1IDsKLSAgICAgICAgUkVDVCAwLjI1NSAwLjM3NSAyLjkyIDAuNDM1IDsKLSAgICAgICAgUkVDVCAyLjg2IDAuMzc1IDIuOTIgMS4xODUgOwotICAgICAgICBSRUNUIDAuOTE1IDEuMTI1IDIuOTIgMS4xODUgOwotICAgICAgICBSRUNUIDIuODYgMC40MSAyLjk0IDAuNTQgOwotICAgIEVORAotICBFTkQgWQotICBQSU4gQQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wNiAwLjc5IDAuMTQgMC45MiA7Ci0gICAgICAgIFJFQ1QgMC4wOCAwLjc5IDAuMTQgMS4wMSA7Ci0gICAgICAgIFJFQ1QgMC4wOCAwLjk1IDAuNTc1IDEuMDEgOwotICAgICAgICBSRUNUIDEuNTI1IDAuODU1IDEuNjQ1IDEuMDI1IDsKLSAgICAgICAgUkVDVCAyLjY0IDAuODI1IDIuNyAxLjAyNSA7Ci0gICAgICAgIFJFQ1QgMC41MTUgMC45NjUgMi43IDEuMDI1IDsKLSAgICBFTkQKLSAgRU5EIEEKLSAgUElOIEIKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuNDkgMC43OSAwLjczNSAwLjg1IDsKLSAgICAgICAgUkVDVCAxLjM2NSAwLjY5NSAxLjQyNSAwLjg2NSA7Ci0gICAgICAgIFJFQ1QgMC42NzUgMC44MDUgMS40MjUgMC44NjUgOwotICAgICAgICBSRUNUIDEuMzY1IDAuNjk1IDEuODMgMC43NTUgOwotICAgICAgICBSRUNUIDEuNzcgMC42OTUgMS44MyAwLjgyIDsKLSAgICAgICAgUkVDVCAyLjMxIDAuNjcgMi4zNyAwLjgyIDsKLSAgICAgICAgUkVDVCAxLjc3IDAuNzYgMi4zNyAwLjgyIDsKLSAgICAgICAgUkVDVCAyLjQ2IDAuNiAyLjU0IDAuNzMgOwotICAgICAgICBSRUNUIDIuMzEgMC42NyAyLjU0IDAuNzMgOwotICAgICAgICBSRUNUIDIuNDcgMC42IDIuNTQgMC43OSA7Ci0gICAgRU5ECi0gIEVORCBCCi0gIFBJTiBDCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjkyNSAwLjUzNSAwLjk4NSAwLjcwNSA7Ci0gICAgICAgIFJFQ1QgMC44MzUgMC42MjUgMC45ODUgMC43MDUgOwotICAgICAgICBSRUNUIDAuOTI1IDAuNTM1IDIuMDU1IDAuNTk1IDsKLSAgICAgICAgUkVDVCAxLjk5NSAwLjUzNSAyLjA1NSAwLjY2IDsKLSAgICAgICAgUkVDVCAxLjk5NSAwLjYgMi4xMTUgMC42NiA7Ci0gICAgRU5ECi0gIEVORCBDCi0gIFBJTiBWREQKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgUE9XRVIgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWREQgVkREISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAxLjY1IDMgMS43MSA7Ci0gICAgRU5ECi0gIEVORCBWREQKLSAgUElOIFZTUwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBHUk9VTkQgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWU1MgVlNTISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAwLjAwIDMgMC4wNiA7Ci0gICAgRU5ECi0gIEVORCBWU1MKLUVORCBOT1IzWDQKLQotTUFDUk8gQU9JMzFYNAotICBDTEFTUyBDT1JFIDsKLSAgT1JJR0lOIDAgMCA7Ci0gIEZPUkVJR04gQU9JMzFYNCAwIDAgOwotICBTSVpFIDMuOCBCWSAxLjcxIDsKLSAgU1lNTUVUUlkgWCBZIDsKLSAgU0lURSBDb3JlU2l0ZSA7Ci0gIFBJTiBZCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBPVVRQVVQgOwotICAgIEFOVEVOTkFESUZGQVJFQSAxLjcyODUgIExBWUVSIE1ldGFsMSA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAxLjkxIDAuNTM1IDEuOTcgMC42NzUgOwotICAgICAgICBSRUNUIDIuMzIgMC41MzUgMi4zOCAwLjY3NSA7Ci0gICAgICAgIFJFQ1QgMi43MyAwLjUzNSAyLjc5IDAuNjc1IDsKLSAgICAgICAgUkVDVCAyLjk0NSAwLjk5NSAzLjAwNSAxLjExNSA7Ci0gICAgICAgIFJFQ1QgMy4xNCAwLjUzNSAzLjIgMC42NzUgOwotICAgICAgICBSRUNUIDIuOTQ1IDAuOTk1IDMuNTQgMS4wNTUgOwotICAgICAgICBSRUNUIDMuNDEgMC45OTUgMy40NyAxLjExNSA7Ci0gICAgICAgIFJFQ1QgMy40NiAwLjYxNSAzLjUyIDEuMTEgOwotICAgICAgICBSRUNUIDMuNDYgMC45OCAzLjU0IDEuMTEgOwotICAgICAgICBSRUNUIDMuNTUgMC41MzUgMy42MSAwLjY3NSA7Ci0gICAgICAgIFJFQ1QgMS45MSAwLjYxNSAzLjYxIDAuNjc1IDsKLSAgICBFTkQKLSAgRU5EIFkKLSAgUElOIEEwCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjM4NSAwLjY5NSAwLjUxNSAwLjc3NSA7Ci0gICAgICAgIFJFQ1QgMC40MzUgMC42OTUgMC41MTUgMC44OTUgOwotICAgICAgICBSRUNUIDAuNDM1IDAuODE1IDAuODQ1IDAuODk1IDsKLSAgICBFTkQKLSAgRU5EIEEwCi0gIFBJTiBBMQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMS4yMDUgMC42OTUgMS4zMjUgMC44OTUgOwotICAgICAgICBSRUNUIDEuMjA1IDAuODA1IDEuMzY1IDAuODk1IDsKLSAgICAgICAgUkVDVCAxLjIwNSAwLjgwNSAxLjY2NSAwLjg4NSA7Ci0gICAgRU5ECi0gIEVORCBBMQotICBQSU4gQjAKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDMuMDM1IDAuNzc1IDMuMTY1IDAuODk1IDsKLSAgICAgICAgUkVDVCAyLjkgMC43NzUgMy4zNiAwLjg1NSA7Ci0gICAgRU5ECi0gIEVORCBCMAotICBQSU4gQTIKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDIuMDM1IDAuODE1IDIuNTM1IDAuODk1IDsKLSAgICBFTkQKLSAgRU5EIEEyCi0gIFBJTiBWREQKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgUE9XRVIgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWREQgVkREISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAxLjY1IDMuOCAxLjcxIDsKLSAgICBFTkQKLSAgRU5EIFZERAotICBQSU4gVlNTCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIEdST1VORCA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZTUyBWU1MhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDAuMDAgMy44IDAuMDYgOwotICAgIEVORAotICBFTkQgVlNTCi1FTkQgQU9JMzFYNAotCi1NQUNSTyBPQUkzMlgyCi0gIENMQVNTIENPUkUgOwotICBPUklHSU4gMCAwIDsKLSAgRk9SRUlHTiBPQUkzMlgyIDAgMCA7Ci0gIFNJWkUgMi42IEJZIDEuNzEgOwotICBTWU1NRVRSWSBYIFkgOwotICBTSVRFIENvcmVTaXRlIDsKLSAgUElOIFkKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIE9VVFBVVCA7Ci0gICAgQU5URU5OQURJRkZBUkVBIDEuNzI4NSAgTEFZRVIgTWV0YWwxIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuODEgMS4wMjUgMC44NyAxLjM2NSA7Ci0gICAgICAgIFJFQ1QgMS4yMzUgMS4wMDUgMS41IDEuMDg1IDsKLSAgICAgICAgUkVDVCAwLjgxIDEuMDI1IDEuNSAxLjA4NSA7Ci0gICAgICAgIFJFQ1QgMS40NCAwLjUwNSAxLjUgMS4zMDUgOwotICAgICAgICBSRUNUIDEuNzMgMC40NTUgMS44NSAwLjU2NSA7Ci0gICAgICAgIFJFQ1QgMS40NCAxLjI0NSAxLjkyNSAxLjMwNSA7Ci0gICAgICAgIFJFQ1QgMS44NjUgMS4yNDUgMS45MjUgMS4zNjUgOwotICAgICAgICBSRUNUIDEuNDQgMC41MDUgMi4xODUgMC41NjUgOwotICAgICAgICBSRUNUIDIuMTI1IDAuNDU1IDIuMjYgMC41MTUgOwotICAgIEVORAotICBFTkQgWQotICBQSU4gQTIKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuNDYgMC44NDUgMC41NCAxLjEyNSA7Ci0gICAgICAgIFJFQ1QgMC40NiAwLjg0NSAwLjc2IDAuOTI1IDsKLSAgICBFTkQKLSAgRU5EIEEyCi0gIFBJTiBBMQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC40NyAwLjY2NSAxLjE2IDAuNzQ1IDsKLSAgICAgICAgUkVDVCAwLjg2IDAuNjY1IDAuOTQgMC45MiA7Ci0gICAgICAgIFJFQ1QgMC44NiAwLjY2NSAxLjE2IDAuNzg1IDsKLSAgICBFTkQKLSAgRU5EIEExCi0gIFBJTiBCMQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMS44NiAwLjgyNSAxLjk0IDEuMTQ1IDsKLSAgICAgICAgUkVDVCAxLjg0IDAuODI1IDIuMSAwLjkwNSA7Ci0gICAgRU5ECi0gIEVORCBCMQotICBQSU4gQTAKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMjM1IDAuNTA1IDAuMjk1IDAuNzMgOwotICAgICAgICBSRUNUIDAuMjM1IDAuNTA1IDEuMzQgMC41NjUgOwotICAgICAgICBSRUNUIDEuMjYgMC41MDUgMS4zNCAwLjczIDsKLSAgICBFTkQKLSAgRU5EIEEwCi0gIFBJTiBCMAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMS42NiAwLjY2NSAxLjc0IDAuOTIgOwotICAgICAgICBSRUNUIDEuNiAwLjY2NSAyLjMgMC43MjUgOwotICAgIEVORAotICBFTkQgQjAKLSAgUElOIFZERAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBQT1dFUiA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZERCBWREQhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDEuNjUgMi42IDEuNzEgOwotICAgIEVORAotICBFTkQgVkRECi0gIFBJTiBWU1MKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgR1JPVU5EIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVlNTIFZTUyEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMC4wMCAyLjYgMC4wNiA7Ci0gICAgRU5ECi0gIEVORCBWU1MKLUVORCBPQUkzMlgyCi0KLU1BQ1JPIENMS1hPUjJYMQotICBDTEFTUyBDT1JFIDsKLSAgT1JJR0lOIDAgMCA7Ci0gIEZPUkVJR04gQ0xLWE9SMlgxIDAgMCA7Ci0gIFNJWkUgMS44IEJZIDEuNzEgOwotICBTWU1NRVRSWSBYIFkgOwotICBTSVRFIENvcmVTaXRlIDsKLSAgUElOIFkKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIE9VVFBVVCA7Ci0gICAgQU5URU5OQURJRkZBUkVBIDEuNzI4NSAgTEFZRVIgTWV0YWwxIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDg1IDAuNTIgMC4xNDUgMC43MyA7Ci0gICAgICAgIFJFQ1QgMC4wNiAwLjYgMC4xNDUgMC43MyA7Ci0gICAgICAgIFJFQ1QgMC4xNCAwLjY3IDAuMiAxLjI5IDsKLSAgICBFTkQKLSAgRU5EIFkKLSAgUElOIEIKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuOCAwLjgzNSAxLjAzNSAwLjg5NSA7Ci0gICAgICAgIFJFQ1QgMS4yMzUgMC44MTUgMS4zNjUgMC44OTUgOwotICAgICAgICBSRUNUIDAuOTc1IDAuODE1IDEuNTM1IDAuODc1IDsKLSAgICBFTkQKLSAgRU5EIEIKLSAgUElOIEEKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuNDYgMC43MyAwLjU0IDEuMjMgOwotICAgIEVORAotICBFTkQgQQotICBQSU4gVkRECi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIFBPV0VSIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVkREIFZERCEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMS42NSAxLjggMS43MSA7Ci0gICAgRU5ECi0gIEVORCBWREQKLSAgUElOIFZTUwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBHUk9VTkQgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWU1MgVlNTISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAwLjAwIDEuOCAwLjA2IDsKLSAgICBFTkQKLSAgRU5EIFZTUwotRU5EIENMS1hPUjJYMQotCi1NQUNSTyBOT1I0WDYKLSAgQ0xBU1MgQ09SRSA7Ci0gIE9SSUdJTiAwIDAgOwotICBGT1JFSUdOIE5PUjRYNiAwIDAgOwotICBTSVpFIDQuOCBCWSAxLjcxIDsKLSAgU1lNTUVUUlkgWCBZIDsKLSAgU0lURSBDb3JlU2l0ZSA7Ci0gIFBJTiBZCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBPVVRQVVQgOwotICAgIEFOVEVOTkFESUZGQVJFQSAxLjcyODUgIExBWUVSIE1ldGFsMSA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjMzIDAuMzUgMC4zOSAwLjY0IDsKLSAgICAgICAgUkVDVCAwLjc0IDAuMzUgMC44IDAuNjQgOwotICAgICAgICBSRUNUIDEuMTUgMC4zNSAxLjIxIDAuNjQgOwotICAgICAgICBSRUNUIDEuNjE1IDAuMzUgMS42NzUgMC42NCA7Ci0gICAgICAgIFJFQ1QgMi4wMjUgMC4zNSAyLjA4NSAwLjY0IDsKLSAgICAgICAgUkVDVCAyLjU0NSAwLjM1IDIuNjA1IDAuNjQgOwotICAgICAgICBSRUNUIDIuOTU1IDAuMzUgMy4wMTUgMC42NCA7Ci0gICAgICAgIFJFQ1QgMy4zNjUgMC4zNSAzLjQyNSAwLjY0IDsKLSAgICAgICAgUkVDVCAzLjU5IDAuOTIgMy42NSAxLjIxIDsKLSAgICAgICAgUkVDVCAzLjg3IDAuMzUgMy45MyAwLjY0IDsKLSAgICAgICAgUkVDVCAzLjU5IDEuMDkgNC4xMjUgMS4xNSA7Ci0gICAgICAgIFJFQ1QgNC4wNjUgMC45MiA0LjEyNSAxLjIxIDsKLSAgICAgICAgUkVDVCAwLjMzIDAuNTggNC4zNCAwLjY0IDsKLSAgICAgICAgUkVDVCA0LjI2IDAuNTggNC4zMiAwLjk4IDsKLSAgICAgICAgUkVDVCA0LjI4IDAuMzUgNC4zNCAwLjczIDsKLSAgICAgICAgUkVDVCA0LjA2NSAwLjkyIDQuNTM1IDAuOTggOwotICAgICAgICBSRUNUIDQuNDc1IDAuOSA0LjUzNSAxLjM3IDsKLSAgICBFTkQKLSAgRU5EIFkKLSAgUElOIEEKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMzQgMC43NSAwLjc0IDAuODMgOwotICAgICAgICBSRUNUIDAuNjYgMC43NCAwLjc0IDAuOTIgOwotICAgIEVORAotICBFTkQgQQotICBQSU4gQgotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMS40MzUgMC43NiAxLjU3NSAwLjg5NSA7Ci0gICAgICAgIFJFQ1QgMS4zOSAwLjc2IDEuODM1IDAuODQgOwotICAgIEVORAotICBFTkQgQgotICBQSU4gQwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMi41OSAwLjc0IDMuMTQgMC44MiA7Ci0gICAgICAgIFJFQ1QgMy4wNiAwLjc0IDMuMTQgMC45MiA7Ci0gICAgRU5ECi0gIEVORCBDCi0gIFBJTiBECi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAzLjgzNSAwLjc0IDMuOTY1IDAuODk1IDsKLSAgICAgICAgUkVDVCAzLjcgMC43NCA0LjEyNSAwLjgyIDsKLSAgICBFTkQKLSAgRU5EIEQKLSAgUElOIFZERAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBQT1dFUiA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZERCBWREQhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDEuNjUgNC44IDEuNzEgOwotICAgIEVORAotICBFTkQgVkRECi0gIFBJTiBWU1MKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgR1JPVU5EIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVlNTIFZTUyEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMC4wMCA0LjggMC4wNiA7Ci0gICAgRU5ECi0gIEVORCBWU1MKLUVORCBOT1I0WDYKLQotTUFDUk8gQU9JMjIyWDEKLSAgQ0xBU1MgQ09SRSA7Ci0gIE9SSUdJTiAwIDAgOwotICBGT1JFSUdOIEFPSTIyMlgxIDAgMCA7Ci0gIFNJWkUgMS44IEJZIDEuNzEgOwotICBTWU1NRVRSWSBYIFkgOwotICBTSVRFIENvcmVTaXRlIDsKLSAgUElOIFkKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIE9VVFBVVCA7Ci0gICAgQU5URU5OQURJRkZBUkVBIDEuNzI4NSAgTEFZRVIgTWV0YWwxIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuNzYgMC4zOCAwLjgyIDAuNTIgOwotICAgICAgICBSRUNUIDEuMzc1IDEuMiAxLjQzNSAxLjMyIDsKLSAgICAgICAgUkVDVCAxLjQ1IDAuNDEgMS43MiAwLjUyIDsKLSAgICAgICAgUkVDVCAwLjc2IDAuNDYgMS43MiAwLjUyIDsKLSAgICAgICAgUkVDVCAxLjY2IDAuNDEgMS43MiAxLjI2IDsKLSAgICAgICAgUkVDVCAxLjY2IDAuOTggMS43NCAxLjI2IDsKLSAgICAgICAgUkVDVCAxLjM3NSAxLjIgMS43NCAxLjI2IDsKLSAgICBFTkQKLSAgRU5EIFkKLSAgUElOIEIxCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjY2IDAuNjIgMC43NiAwLjkyIDsKLSAgICAgICAgUkVDVCAwLjY4IDAuNjIgMC43NiAxLjEgOwotICAgIEVORAotICBFTkQgQjEKLSAgUElOIEMxCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAxLjQ0IDAuNjIgMS41NCAxLjEgOwotICAgIEVORAotICBFTkQgQzEKLSAgUElOIEEwCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjI2IDAuNDkgMC4zNCAwLjk5IDsKLSAgICBFTkQKLSAgRU5EIEEwCi0gIFBJTiBCMAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC44NiAwLjc1NSAwLjk0IDAuOTIgOwotICAgICAgICBSRUNUIDAuODggMC44NiAxLjA5NSAxLjEgOwotICAgIEVORAotICBFTkQgQjAKLSAgUElOIEMwCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAxLjE5NSAwLjc5IDEuMjc1IDEuMjI1IDsKLSAgICAgICAgUkVDVCAxLjE5NSAwLjc5IDEuMzQgMC45MiA7Ci0gICAgRU5ECi0gIEVORCBDMAotICBQSU4gQTEKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuNDYgMC4yMiAwLjU0NSAwLjcxNSA7Ci0gICAgRU5ECi0gIEVORCBBMQotICBQSU4gVkRECi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIFBPV0VSIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVkREIFZERCEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMS42NSAxLjggMS43MSA7Ci0gICAgRU5ECi0gIEVORCBWREQKLSAgUElOIFZTUwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBHUk9VTkQgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWU1MgVlNTISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAwLjAwIDEuOCAwLjA2IDsKLSAgICBFTkQKLSAgRU5EIFZTUwotRU5EIEFPSTIyMlgxCi0KLU1BQ1JPIE5BTkQ0WDgKLSAgQ0xBU1MgQ09SRSA7Ci0gIE9SSUdJTiAwIDAgOwotICBGT1JFSUdOIE5BTkQ0WDggMCAwIDsKLSAgU0laRSA2IEJZIDEuNzEgOwotICBTWU1NRVRSWSBYIFkgOwotICBTSVRFIENvcmVTaXRlIDsKLSAgUElOIFkKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIE9VVFBVVCA7Ci0gICAgQU5URU5OQURJRkZBUkVBIDEuNzI4NSAgTEFZRVIgTWV0YWwxIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMjkgMC45NyAwLjM1IDEuMzkgOwotICAgICAgICBSRUNUIDAuMjkgMS4xMSAwLjc2IDEuMTcgOwotICAgICAgICBSRUNUIDAuNyAwLjk3IDAuNzYgMS4zOSA7Ci0gICAgICAgIFJFQ1QgMS4xMSAxLjAyIDEuMTcgMS4zOSA7Ci0gICAgICAgIFJFQ1QgMS41MiAwLjk0NSAxLjU4IDEuMzkgOwotICAgICAgICBSRUNUIDEuOTMgMS4wMiAxLjk5IDEuMzkgOwotICAgICAgICBSRUNUIDAuNyAxLjAyIDIuNCAxLjA4IDsKLSAgICAgICAgUkVDVCAyLjM0IDAuOTcgMi40IDEuMzkgOwotICAgICAgICBSRUNUIDIuNzUgMC45NDUgMi44MSAxLjM5IDsKLSAgICAgICAgUkVDVCAyLjM0IDAuOTcgMy4yMiAxLjAzIDsKLSAgICAgICAgUkVDVCAzLjE2IDAuOTQ1IDMuMjIgMS4zOSA7Ci0gICAgICAgIFJFQ1QgMy41NyAwLjk0NSAzLjYzIDEuMzkgOwotICAgICAgICBSRUNUIDMuOTggMS4wMiA0LjA0IDEuMzkgOwotICAgICAgICBSRUNUIDQuMzkgMC45NDUgNC40NSAxLjM5IDsKLSAgICAgICAgUkVDVCA0LjggMC45OTUgNC44NiAxLjM5IDsKLSAgICAgICAgUkVDVCAzLjE2IDEuMDIgNS4yNyAxLjA4IDsKLSAgICAgICAgUkVDVCA1LjIxIDAuOTk1IDUuMjcgMS4zOSA7Ci0gICAgICAgIFJFQ1QgNS40NiAwLjU3IDUuNTIgMS4wNTUgOwotICAgICAgICBSRUNUIDUuNDYgMC41NyA1LjU0IDAuNzMgOwotICAgICAgICBSRUNUIDUuMjEgMC45OTUgNS42OCAxLjA1NSA7Ci0gICAgICAgIFJFQ1QgNS42MiAwLjk0NSA1LjY4IDEuMzkgOwotICAgICAgICBSRUNUIDQuNTY1IDAuNTcgNS45MTUgMC42MyA7Ci0gICAgRU5ECi0gIEVORCBZCi0gIFBJTiBBCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjQgMC43OSAxLjAzIDAuODcgOwotICAgICAgICBSRUNUIDAuODYgMC43OSAwLjk0IDAuOTIgOwotICAgICAgICBSRUNUIDAuOTUgMC43ODUgMS4wMyAwLjkwNSA7Ci0gICAgICAgIFJFQ1QgMC44NiAwLjc5IDEuMDMgMC45MDUgOwotICAgIEVORAotICBFTkQgQQotICBQSU4gQgotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMS44NjUgMC43ODUgMS45NDUgMC45MDUgOwotICAgICAgICBSRUNUIDEuODY1IDAuNzkgMi4xNCAwLjkwNSA7Ci0gICAgICAgIFJFQ1QgMi4wNiAwLjc5IDIuMTQgMC45MiA7Ci0gICAgICAgIFJFQ1QgMS44NjUgMC43OSAyLjQ5NSAwLjg3IDsKLSAgICBFTkQKLSAgRU5EIEIKLSAgUElOIEMKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDMuODQgMC43MjUgMy45MiAwLjg0NSA7Ci0gICAgICAgIFJFQ1QgMy4yNyAwLjc4NSAzLjkyIDAuODQ1IDsKLSAgICAgICAgUkVDVCAzLjg2IDAuNzkgMy45NCAwLjkyIDsKLSAgICBFTkQKLSAgRU5EIEMKLSAgUElOIEQKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDQuNzA1IDAuODE1IDUuMzYgMC44OTUgOwotICAgIEVORAotICBFTkQgRAotICBQSU4gVkRECi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIFBPV0VSIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVkREIFZERCEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMS42NSA2IDEuNzEgOwotICAgIEVORAotICBFTkQgVkRECi0gIFBJTiBWU1MKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgR1JPVU5EIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVlNTIFZTUyEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMC4wMCA2IDAuMDYgOwotICAgIEVORAotICBFTkQgVlNTCi1FTkQgTkFORDRYOAotCi1NQUNSTyBTREZGU1g0Ci0gIENMQVNTIENPUkUgOwotICBPUklHSU4gMCAwIDsKLSAgRk9SRUlHTiBTREZGU1g0IDAgMCA7Ci0gIFNJWkUgOCBCWSAxLjcxIDsKLSAgU1lNTUVUUlkgWCBZIDsKLSAgU0lURSBDb3JlU2l0ZSA7Ci0gIFBJTiBTRQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgNi44NyAwLjk3IDYuOTMgMS4wOSA7Ci0gICAgICAgIFJFQ1QgNi45MTUgMC42NTUgNi45NzUgMS4wMyA7Ci0gICAgICAgIFJFQ1QgNi45MTUgMC42NTUgNy41NjUgMC43MTUgOwotICAgICAgICBSRUNUIDcuNTA1IDAuNjU1IDcuNTY1IDAuODUgOwotICAgICAgICBSRUNUIDcuNTA1IDAuNzkgNy43NCAwLjg1IDsKLSAgICAgICAgUkVDVCA3LjY2IDAuNzkgNy43NCAwLjkyIDsKLSAgICBFTkQKLSAgRU5EIFNFCi0gIFBJTiBTSQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgNy4yMzUgMC44MTUgNy40MDUgMS4wNTUgOwotICAgIEVORAotICBFTkQgU0kKLSAgUElOIEQKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDYuMzY1IDAuODE1IDYuNjEgMC44OTUgOwotICAgICAgICBSRUNUIDYuNTMgMC44MTUgNi42MSAxLjE1IDsKLSAgICBFTkQKLSAgRU5EIEQKLSAgUElOIENLCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCA1Ljk0IDEuMDA1IDYuMzY1IDEuMDg1IDsKLSAgICAgICAgUkVDVCA2LjI4NSAwLjk5NSA2LjQzIDEuMDc1IDsKLSAgICBFTkQKLSAgRU5EIENLCi0gIFBJTiBTTgotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMy4wNiAwLjI5NSAzLjEyIDAuODc1IDsKLSAgICAgICAgUkVDVCAyLjY0NSAwLjgxNSAzLjEyIDAuODc1IDsKLSAgICAgICAgUkVDVCAzLjA2IDAuNiAzLjE0IDAuNzMgOwotICAgICAgICBSRUNUIDMuMDYgMC4yOTUgNC4xNCAwLjM1NSA7Ci0gICAgICAgIFJFQ1QgNC4wOCAwLjI5NSA0LjE0IDAuNDIgOwotICAgICAgICBSRUNUIDQuMDggMC4zNiA0LjQzNSAwLjQyIDsKLSAgICAgICAgUkVDVCA0LjM3NSAwLjM2IDQuNDM1IDAuNjcgOwotICAgIEVORAotICBFTkQgU04KLSAgUElOIFEKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIE9VVFBVVCA7Ci0gICAgQU5URU5OQURJRkZBUkVBIDEuNzI4NSAgTEFZRVIgTWV0YWwxIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDEuNDYgMC42IDEuNTY1IDAuNzMgOwotICAgICAgICBSRUNUIDEuNTA1IDAuNTQgMS41NjUgMS40MDUgOwotICAgICAgICBSRUNUIDEuNDYgMC42NyAxLjk3NSAwLjczIDsKLSAgICAgICAgUkVDVCAxLjkxNSAwLjU0IDEuOTc1IDEuNDA1IDsKLSAgICBFTkQKLSAgRU5EIFEKLSAgUElOIFFOCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBPVVRQVVQgOwotICAgIEFOVEVOTkFESUZGQVJFQSAxLjcyODUgIExBWUVSIE1ldGFsMSA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjI2IDAuNTQgMC4zMzUgMS4yOSA7Ci0gICAgICAgIFJFQ1QgMC4yNiAwLjc5IDAuMzQgMC45MiA7Ci0gICAgICAgIFJFQ1QgMC4yNiAwLjg2IDAuNzQ1IDAuOTIgOwotICAgICAgICBSRUNUIDAuNjg1IDAuNTQgMC43NDUgMS4yOSA7Ci0gICAgRU5ECi0gIEVORCBRTgotICBQSU4gVkRECi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIFBPV0VSIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVkREIFZERCEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMS42NSA4IDEuNzEgOwotICAgIEVORAotICBFTkQgVkRECi0gIFBJTiBWU1MKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgR1JPVU5EIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVlNTIFZTUyEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMC4wMCA4IDAuMDYgOwotICAgIEVORAotICBFTkQgVlNTCi1FTkQgU0RGRlNYNAotCi1NQUNSTyBERkZTSFFYOAotICBDTEFTUyBDT1JFIDsKLSAgT1JJR0lOIDAgMCA7Ci0gIEZPUkVJR04gREZGU0hRWDggMCAwIDsKLSAgU0laRSA2LjIgQlkgMS43MSA7Ci0gIFNZTU1FVFJZIFggWSA7Ci0gIFNJVEUgQ29yZVNpdGUgOwotICBQSU4gQ0sKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDYuMDM1IDAuNyA2LjE3IDAuOTggOwotICAgICAgICBSRUNUIDUuODcgMC45IDYuMTcgMC45OCA7Ci0gICAgRU5ECi0gIEVORCBDSwotICBQSU4gRAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgNS42OSAwLjcgNS43NyAwLjk4IDsKLSAgICAgICAgUkVDVCA1LjQ3IDAuODE1IDUuNzcgMC45OCA7Ci0gICAgRU5ECi0gIEVORCBECi0gIFBJTiBTTgotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMi44NiAwLjIzNSAyLjkyIDAuODU1IDsKLSAgICAgICAgUkVDVCAyLjU4NSAwLjc5NSAyLjkyIDAuODU1IDsKLSAgICAgICAgUkVDVCAyLjg2IDAuNDEgMi45NCAwLjU0IDsKLSAgICAgICAgUkVDVCAyLjg2IDAuMjM1IDMuODY1IDAuMjk1IDsKLSAgICAgICAgUkVDVCAzLjgwNSAwLjI3IDQuMDg1IDAuMzMgOwotICAgICAgICBSRUNUIDQuMDI1IDAuMjcgNC4wODUgMC43MyA7Ci0gICAgRU5ECi0gIEVORCBTTgotICBQSU4gUQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gT1VUUFVUIDsKLSAgICBBTlRFTk5BRElGRkFSRUEgMS43Mjg1ICBMQVlFUiBNZXRhbDEgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wNiAwLjYgMC4xNCAwLjczIDsKLSAgICAgICAgUkVDVCAwLjA4IDAuNTQgMC4xNCAxLjM0NSA7Ci0gICAgICAgIFJFQ1QgMC40OSAwLjU0IDAuNTUgMS4zNDUgOwotICAgICAgICBSRUNUIDAuOSAwLjU0IDAuOTYgMS4zNDUgOwotICAgICAgICBSRUNUIDAuMDYgMC42IDEuMzcgMC42NiA7Ci0gICAgICAgIFJFQ1QgMS4zMSAwLjU0IDEuMzcgMS4zNDUgOwotICAgIEVORAotICBFTkQgUQotICBQSU4gVkRECi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIFBPV0VSIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVkREIFZERCEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMS42NSA2LjIgMS43MSA7Ci0gICAgRU5ECi0gIEVORCBWREQKLSAgUElOIFZTUwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBHUk9VTkQgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWU1MgVlNTISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAwLjAwIDYuMiAwLjA2IDsKLSAgICBFTkQKLSAgRU5EIFZTUwotRU5EIERGRlNIUVg4Ci0KLU1BQ1JPIE5PUjRCWDQKLSAgQ0xBU1MgQ09SRSA7Ci0gIE9SSUdJTiAwIDAgOwotICBGT1JFSUdOIE5PUjRCWDQgMCAwIDsKLSAgU0laRSA0LjQgQlkgMS43MSA7Ci0gIFNZTU1FVFJZIFggWSA7Ci0gIFNJVEUgQ29yZVNpdGUgOwotICBQSU4gWQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gT1VUUFVUIDsKLSAgICBBTlRFTk5BRElGRkFSRUEgMS43Mjg1ICBMQVlFUiBNZXRhbDEgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC44OCAwLjQ3NSAwLjk0IDAuNjE1IDsKLSAgICAgICAgUkVDVCAxLjI5IDAuNDc1IDEuMzUgMC42MTUgOwotICAgICAgICBSRUNUIDEuNjM1IDAuNTU1IDEuNjk1IDEuMDg1IDsKLSAgICAgICAgUkVDVCAxLjcgMC40NzUgMS43NiAwLjYxNSA7Ci0gICAgICAgIFJFQ1QgMS42MzUgMC45OTUgMS43NjUgMS4wODUgOwotICAgICAgICBSRUNUIDIuMTEgMC40NzUgMi4xNyAwLjYxNSA7Ci0gICAgICAgIFJFQ1QgMi41MiAwLjQ3NSAyLjU4IDAuNjE1IDsKLSAgICAgICAgUkVDVCAyLjkzIDAuNDc1IDIuOTkgMC42MTUgOwotICAgICAgICBSRUNUIDMuMzQgMC40NzUgMy40IDAuNjE1IDsKLSAgICAgICAgUkVDVCAzLjU0NSAwLjk5NSAzLjYwNSAxLjEzNSA7Ci0gICAgICAgIFJFQ1QgMy43NSAwLjQ3NSAzLjgxIDAuNjE1IDsKLSAgICAgICAgUkVDVCAwLjg4IDAuNTU1IDMuODEgMC42MTUgOwotICAgICAgICBSRUNUIDEuNjM1IDAuOTk1IDQuMDE1IDEuMDU1IDsKLSAgICAgICAgUkVDVCAzLjk1NSAwLjk5NSA0LjAxNSAxLjEzNSA7Ci0gICAgRU5ECi0gIEVORCBZCi0gIFBJTiBBTgotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wNiAwLjYgMC4xNCAwLjczIDsKLSAgICAgICAgUkVDVCAwLjA2IDAuNjUgMC4yODUgMC43MyA7Ci0gICAgICAgIFJFQ1QgMC4yMDUgMC42NSAwLjI4NSAwLjk1NSA7Ci0gICAgRU5ECi0gIEVORCBBTgotICBQSU4gQgotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMS43OTUgMC44MTUgMi4yOTUgMC44OTUgOwotICAgIEVORAotICBFTkQgQgotICBQSU4gQwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMi41OTUgMC43MTUgMi42NzUgMC44OTUgOwotICAgICAgICBSRUNUIDIuNTk1IDAuODE1IDMuMTUgMC44OTUgOwotICAgIEVORAotICBFTkQgQwotICBQSU4gRAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMy40MTUgMC43MTUgMy40OTUgMC44OTUgOwotICAgICAgICBSRUNUIDMuNDE1IDAuODE1IDMuOTcgMC44OTUgOwotICAgIEVORAotICBFTkQgRAotICBQSU4gVkRECi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIFBPV0VSIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVkREIFZERCEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMS42NSA0LjQgMS43MSA7Ci0gICAgRU5ECi0gIEVORCBWREQKLSAgUElOIFZTUwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBHUk9VTkQgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWU1MgVlNTISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAwLjAwIDQuNCAwLjA2IDsKLSAgICBFTkQKLSAgRU5EIFZTUwotRU5EIE5PUjRCWDQKLQotTUFDUk8gQ0xLSU5WWDMKLSAgQ0xBU1MgQ09SRSA7Ci0gIE9SSUdJTiAwIDAgOwotICBGT1JFSUdOIENMS0lOVlgzIDAgMCA7Ci0gIFNJWkUgMSBCWSAxLjcxIDsKLSAgU1lNTUVUUlkgWCBZIDsKLSAgU0lURSBDb3JlU2l0ZSA7Ci0gIFBJTiBZCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBPVVRQVVQgOwotICAgIEFOVEVOTkFESUZGQVJFQSAxLjcyODUgIExBWUVSIE1ldGFsMSA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjQxNSAwLjU0IDAuNDc1IDAuNjggOwotICAgICAgICBSRUNUIDAuNDE1IDAuOSAwLjQ3NSAxLjI5IDsKLSAgICAgICAgUkVDVCAwLjQ2IDAuNjIgMC41NCAwLjk2IDsKLSAgICAgICAgUkVDVCAwLjQxNSAwLjkgMC44ODUgMC45NiA7Ci0gICAgICAgIFJFQ1QgMC44MjUgMC41NCAwLjg4NSAwLjY4IDsKLSAgICAgICAgUkVDVCAwLjQxNSAwLjYyIDAuODg1IDAuNjggOwotICAgICAgICBSRUNUIDAuODI1IDAuOSAwLjg4NSAxLjI5IDsKLSAgICBFTkQKLSAgRU5EIFkKLSAgUElOIEEKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMjM1IDAuNjIgMC4zMTUgMC45NDUgOwotICAgICAgICBSRUNUIDAuMDYgMC43MjUgMC4zMTUgMC45NDUgOwotICAgIEVORAotICBFTkQgQQotICBQSU4gVkRECi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIFBPV0VSIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVkREIFZERCEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMS42NSAxIDEuNzEgOwotICAgIEVORAotICBFTkQgVkRECi0gIFBJTiBWU1MKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgR1JPVU5EIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVlNTIFZTUyEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMC4wMCAxIDAuMDYgOwotICAgIEVORAotICBFTkQgVlNTCi1FTkQgQ0xLSU5WWDMKLQotTUFDUk8gU0RGRkhRWDQKLSAgQ0xBU1MgQ09SRSA7Ci0gIE9SSUdJTiAwIDAgOwotICBGT1JFSUdOIFNERkZIUVg0IDAgMCA7Ci0gIFNJWkUgNS40IEJZIDEuNzEgOwotICBTWU1NRVRSWSBYIFkgOwotICBTSVRFIENvcmVTaXRlIDsKLSAgUElOIFNFCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCA0LjQ3IDAuODEgNC41MyAwLjkzIDsKLSAgICAgICAgUkVDVCA0LjUgMC42NTUgNC41NiAwLjg3IDsKLSAgICAgICAgUkVDVCA1LjAzNSAwLjYyNSA1LjE2NSAwLjcxNSA7Ci0gICAgICAgIFJFQ1QgNC41IDAuNjU1IDUuMTY1IDAuNzE1IDsKLSAgICBFTkQKLSAgRU5EIFNFCi0gIFBJTiBTSQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgNC44MiAwLjgxNSA1LjA2IDAuOTg1IDsKLSAgICBFTkQKLSAgRU5EIFNJCi0gIFBJTiBECi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAzLjg2IDAuNzkgMy45NCAwLjkyIDsKLSAgICAgICAgUkVDVCAzLjg2IDAuODQgNC4yMSAwLjkyIDsKLSAgICAgICAgUkVDVCA0LjEzIDAuNzUgNC4yMSAwLjkzIDsKLSAgICBFTkQKLSAgRU5EIEQKLSAgUElOIENLCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjI2IDAuNjkgMC4zNCAxLjE5IDsKLSAgICBFTkQKLSAgRU5EIENLCi0gIFBJTiBRCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBPVVRQVVQgOwotICAgIEFOVEVOTkFESUZGQVJFQSAxLjcyODUgIExBWUVSIE1ldGFsMSA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjQ2IDAuNzkgMC41NCAxLjA3NSA7Ci0gICAgICAgIFJFQ1QgMC41MjUgMC41NCAwLjU4NSAwLjg1IDsKLSAgICAgICAgUkVDVCAxLjAwNSAwLjU0IDEuMDY1IDEuMDc1IDsKLSAgICAgICAgUkVDVCAwLjQ2IDEuMDE1IDEuMDY1IDEuMDc1IDsKLSAgICBFTkQKLSAgRU5EIFEKLSAgUElOIFZERAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBQT1dFUiA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZERCBWREQhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDEuNjUgNS40IDEuNzEgOwotICAgIEVORAotICBFTkQgVkRECi0gIFBJTiBWU1MKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgR1JPVU5EIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVlNTIFZTUyEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMC4wMCA1LjQgMC4wNiA7Ci0gICAgRU5ECi0gIEVORCBWU1MKLUVORCBTREZGSFFYNAotCi1NQUNSTyBOT1IzWDYKLSAgQ0xBU1MgQ09SRSA7Ci0gIE9SSUdJTiAwIDAgOwotICBGT1JFSUdOIE5PUjNYNiAwIDAgOwotICBTSVpFIDQuMiBCWSAxLjcxIDsKLSAgU1lNTUVUUlkgWCBZIDsKLSAgU0lURSBDb3JlU2l0ZSA7Ci0gIFBJTiBZCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBPVVRQVVQgOwotICAgIEFOVEVOTkFESUZGQVJFQSAxLjcyODUgIExBWUVSIE1ldGFsMSA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjQwNSAwLjI5NSAwLjQ2NSAwLjYwNSA7Ci0gICAgICAgIFJFQ1QgMC44NzUgMC4yOTUgMC45MzUgMC42MDUgOwotICAgICAgICBSRUNUIDAuNDA1IDAuNTQ1IDAuOTM1IDAuNjA1IDsKLSAgICAgICAgUkVDVCAxLjAzNSAxLjE1NSAxLjA5NSAxLjI3NSA7Ci0gICAgICAgIFJFQ1QgMS4zNDUgMC4yOTUgMS40MDUgMC40MTUgOwotICAgICAgICBSRUNUIDEuODE1IDAuMjk1IDEuODc1IDAuNDE1IDsKLSAgICAgICAgUkVDVCAyLjI4NSAwLjI5NSAyLjM0NSAwLjU3NSA7Ci0gICAgICAgIFJFQ1QgMi40NDUgMS4xNTUgMi41MDUgMS4yNzUgOwotICAgICAgICBSRUNUIDIuNzU1IDAuMjk1IDIuODE1IDAuNDE1IDsKLSAgICAgICAgUkVDVCAzLjIyNSAwLjI5NSAzLjI4NSAwLjQxNSA7Ci0gICAgICAgIFJFQ1QgMy41MzUgMS4xNTUgMy41OTUgMS4yNzUgOwotICAgICAgICBSRUNUIDAuODc1IDAuMzU1IDMuNzU1IDAuNDE1IDsKLSAgICAgICAgUkVDVCAzLjY5NSAwLjI5NSAzLjc1NSAwLjYwNSA7Ci0gICAgICAgIFJFQ1QgMy42OTUgMC41NDUgNC4xNCAwLjYwNSA7Ci0gICAgICAgIFJFQ1QgNC4wNiAwLjk4IDQuMTQgMS4yMTUgOwotICAgICAgICBSRUNUIDQuMDggMC41NDUgNC4xNCAxLjIxNSA7Ci0gICAgICAgIFJFQ1QgMS4wMzUgMS4xNTUgNC4xNCAxLjIxNSA7Ci0gICAgRU5ECi0gIEVORCBZCi0gIFBJTiBBCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjIzNSAwLjgxNSAwLjM5IDAuODk1IDsKLSAgICAgICAgUkVDVCAwLjMzIDAuODE1IDAuMzkgMS4wNTUgOwotICAgICAgICBSRUNUIDEuNTg1IDAuODg1IDEuNzA1IDEuMDU1IDsKLSAgICAgICAgUkVDVCAyLjg0IDAuODg1IDIuOTYgMS4wNTUgOwotICAgICAgICBSRUNUIDMuOSAwLjg0NSAzLjk2IDEuMDU1IDsKLSAgICAgICAgUkVDVCAwLjMzIDAuOTk1IDMuOTYgMS4wNTUgOwotICAgICAgICBSRUNUIDMuOTA1IDAuNzYgMy45NjUgMC44OCA7Ci0gICAgRU5ECi0gIEVORCBBCi0gIFBJTiBCCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAxLjQyNSAwLjcyNSAxLjQ4NSAwLjg5NSA7Ci0gICAgICAgIFJFQ1QgMC41MDUgMC44MzUgMS40ODUgMC44OTUgOwotICAgICAgICBSRUNUIDEuNDI1IDAuNzI1IDEuODY1IDAuNzg1IDsKLSAgICAgICAgUkVDVCAxLjgwNSAwLjcyNSAxLjg2NSAwLjg5NSA7Ci0gICAgICAgIFJFQ1QgMS45NjUgMC43NzUgMi4wMjUgMC44OTUgOwotICAgICAgICBSRUNUIDIuNjggMC43MjUgMi43NCAwLjg5NSA7Ci0gICAgICAgIFJFQ1QgMS44MDUgMC44MzUgMi43NCAwLjg5NSA7Ci0gICAgICAgIFJFQ1QgMi42OCAwLjcyNSAzLjEyIDAuNzg1IDsKLSAgICAgICAgUkVDVCAzLjA2IDAuNzI1IDMuMTIgMC44OTUgOwotICAgICAgICBSRUNUIDMuNjM1IDAuODE1IDMuNzk1IDAuODk1IDsKLSAgICAgICAgUkVDVCAzLjczNSAwLjcyNSAzLjc5NSAwLjg5NSA7Ci0gICAgICAgIFJFQ1QgMy4wNiAwLjgzNSAzLjc5NSAwLjg5NSA7Ci0gICAgRU5ECi0gIEVORCBCCi0gIFBJTiBDCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAxLjAzNSAwLjYyNSAxLjE1NSAwLjczNSA7Ci0gICAgICAgIFJFQ1QgMS4wMzUgMC42MjUgMS4xNjUgMC43MDUgOwotICAgICAgICBSRUNUIDEuMjY1IDAuNTY1IDEuMzI1IDAuNzA1IDsKLSAgICAgICAgUkVDVCAxLjAzNSAwLjY0NSAxLjMyNSAwLjcwNSA7Ci0gICAgICAgIFJFQ1QgMS4yNjUgMC41NjUgMi4xODUgMC42MjUgOwotICAgICAgICBSRUNUIDIuMTI1IDAuNTY1IDIuMTg1IDAuNzM1IDsKLSAgICAgICAgUkVDVCAyLjUyIDAuNTY1IDIuNTggMC43MzUgOwotICAgICAgICBSRUNUIDIuMTI1IDAuNjc1IDIuNTggMC43MzUgOwotICAgICAgICBSRUNUIDIuNTIgMC41NjUgMy4yOCAwLjYyNSA7Ci0gICAgICAgIFJFQ1QgMy4yMiAwLjU2NSAzLjI4IDAuNzM1IDsKLSAgICAgICAgUkVDVCAzLjIyIDAuNjc1IDMuNTY1IDAuNzM1IDsKLSAgICBFTkQKLSAgRU5EIEMKLSAgUElOIFZERAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBQT1dFUiA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZERCBWREQhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDEuNjUgNC4yIDEuNzEgOwotICAgIEVORAotICBFTkQgVkRECi0gIFBJTiBWU1MKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgR1JPVU5EIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVlNTIFZTUyEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMC4wMCA0LjIgMC4wNiA7Ci0gICAgRU5ECi0gIEVORCBWU1MKLUVORCBOT1IzWDYKLQotTUFDUk8gVExBVE5YMQotICBDTEFTUyBDT1JFIDsKLSAgT1JJR0lOIDAgMCA7Ci0gIEZPUkVJR04gVExBVE5YMSAwIDAgOwotICBTSVpFIDMuNCBCWSAxLjcxIDsKLSAgU1lNTUVUUlkgWCBZIDsKLSAgU0lURSBDb3JlU2l0ZSA7Ci0gIFBJTiBRCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBPVVRQVVQgOwotICAgIEFOVEVOTkFESUZGQVJFQSAxLjcyODUgIExBWUVSIE1ldGFsMSA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAzLjA3IDAuMzk1IDMuMTc1IDAuNTE1IDsKLSAgICAgICAgUkVDVCAzLjAzNSAwLjQzNSAzLjE3NSAwLjUxNSA7Ci0gICAgICAgIFJFQ1QgMy4wOTUgMC4zOTUgMy4xNzUgMS4yOSA7Ci0gICAgRU5ECi0gIEVORCBRCi0gIFBJTiBRTgotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gT1VUUFVUIDsKLSAgICBBTlRFTk5BRElGRkFSRUEgMS43Mjg1ICBMQVlFUiBNZXRhbDEgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMi40NiAwLjU0IDIuNTQgMS4zNCA7Ci0gICAgRU5ECi0gIEVORCBRTgotICBQSU4gR04KLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDIuMDM1IDAuNzggMi4xMTUgMS4yMyA7Ci0gICAgICAgIFJFQ1QgMi4wMzUgMS4wMDUgMi4xNjUgMS4wODUgOwotICAgIEVORAotICBFTkQgR04KLSAgUElOIEQKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMjYgMC43ODUgMC4zNCAwLjk4IDsKLSAgICAgICAgUkVDVCAwLjQ1IDAuNzg1IDAuNTMgMC45OCA7Ci0gICAgICAgIFJFQ1QgMC4yNiAwLjkgMC41MyAwLjk4IDsKLSAgICBFTkQKLSAgRU5EIEQKLSAgUElOIFZERAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBQT1dFUiA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZERCBWREQhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDEuNjUgMy40IDEuNzEgOwotICAgIEVORAotICBFTkQgVkRECi0gIFBJTiBWU1MKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgR1JPVU5EIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVlNTIFZTUyEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMC4wMCAzLjQgMC4wNiA7Ci0gICAgRU5ECi0gIEVORCBWU1MKLUVORCBUTEFUTlgxCi0KLU1BQ1JPIEFPMjFYMgotICBDTEFTUyBDT1JFIDsKLSAgT1JJR0lOIDAgMCA7Ci0gIEZPUkVJR04gQU8yMVgyIDAgMCA7Ci0gIFNJWkUgMS42IEJZIDEuNzEgOwotICBTWU1NRVRSWSBYIFkgOwotICBTSVRFIENvcmVTaXRlIDsKLSAgUElOIFkKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIE9VVFBVVCA7Ci0gICAgQU5URU5OQURJRkZBUkVBIDEuNzI4NSAgTEFZRVIgTWV0YWwxIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDEuMiAwLjM5NSAxLjI2IDAuNjYgOwotICAgICAgICBSRUNUIDEuMjYgMC42IDEuMzQgMC43MyA7Ci0gICAgICAgIFJFQ1QgMS4yNjUgMC42IDEuMzQgMS40OCA7Ci0gICAgRU5ECi0gIEVORCBZCi0gIFBJTiBBMAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4yNiAwLjU5IDAuMzQgMS4wOSA7Ci0gICAgRU5ECi0gIEVORCBBMAotICBQSU4gQTEKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuNDYgMC40MSAwLjU0IDAuNTQgOwotICAgICAgICBSRUNUIDAuNTM1IDAuNDYgMC42MTUgMC44MzUgOwotICAgIEVORAotICBFTkQgQTEKLSAgUElOIEIwCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjgyNSAwLjYzNSAwLjk0IDEuMDA1IDsKLSAgICBFTkQKLSAgRU5EIEIwCi0gIFBJTiBWREQKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgUE9XRVIgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWREQgVkREISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAxLjY1IDEuNiAxLjcxIDsKLSAgICBFTkQKLSAgRU5EIFZERAotICBQSU4gVlNTCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIEdST1VORCA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZTUyBWU1MhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDAuMDAgMS42IDAuMDYgOwotICAgIEVORAotICBFTkQgVlNTCi1FTkQgQU8yMVgyCi0KLU1BQ1JPIEFPSTMxWDIKLSAgQ0xBU1MgQ09SRSA7Ci0gIE9SSUdJTiAwIDAgOwotICBGT1JFSUdOIEFPSTMxWDIgMCAwIDsKLSAgU0laRSAyIEJZIDEuNzEgOwotICBTWU1NRVRSWSBYIFkgOwotICBTSVRFIENvcmVTaXRlIDsKLSAgUElOIFkKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIE9VVFBVVCA7Ci0gICAgQU5URU5OQURJRkZBUkVBIDEuNzI4NSAgTEFZRVIgTWV0YWwxIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuNyAwLjMzNSAxLjU0IDAuMzk1IDsKLSAgICAgICAgUkVDVCAxLjQ2IDAuNiAxLjU0IDAuNzMgOwotICAgICAgICBSRUNUIDEuNDggMC4yNzUgMS41NCAxLjAwNSA7Ci0gICAgICAgIFJFQ1QgMS41MDUgMC45NDUgMS41NjUgMS4wNjUgOwotICAgIEVORAotICBFTkQgWQotICBQSU4gQTIKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuNzE1IDAuODE1IDEuMDU1IDAuOTM1IDsKLSAgICBFTkQKLSAgRU5EIEEyCi0gIFBJTiBBMQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC40NiAwLjY1NSAwLjU0IDAuOTIgOwotICAgICAgICBSRUNUIDAuMzc1IDAuNjU1IDEuMDU1IDAuNzE1IDsKLSAgICBFTkQKLSAgRU5EIEExCi0gIFBJTiBBMAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4yMTUgMC40OTUgMC4yNzUgMC42OTUgOwotICAgICAgICBSRUNUIDAuMjE1IDAuNDk1IDEuMjE1IDAuNTU1IDsKLSAgICAgICAgUkVDVCAxLjE1NSAwLjQ5NSAxLjIxNSAwLjczIDsKLSAgICAgICAgUkVDVCAxLjE1NSAwLjYgMS4zNCAwLjczIDsKLSAgICBFTkQKLSAgRU5EIEEwCi0gIFBJTiBCMAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMS44NiAwLjQ5NSAxLjk0IDAuOTk1IDsKLSAgICBFTkQKLSAgRU5EIEIwCi0gIFBJTiBWREQKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgUE9XRVIgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWREQgVkREISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAxLjY1IDIgMS43MSA7Ci0gICAgRU5ECi0gIEVORCBWREQKLSAgUElOIFZTUwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBHUk9VTkQgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWU1MgVlNTISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAwLjAwIDIgMC4wNiA7Ci0gICAgRU5ECi0gIEVORCBWU1MKLUVORCBBT0kzMVgyCi0KLU1BQ1JPIE5PUjNYMgotICBDTEFTUyBDT1JFIDsKLSAgT1JJR0lOIDAgMCA7Ci0gIEZPUkVJR04gTk9SM1gyIDAgMCA7Ci0gIFNJWkUgMS42IEJZIDEuNzEgOwotICBTWU1NRVRSWSBYIFkgOwotICBTSVRFIENvcmVTaXRlIDsKLSAgUElOIFkKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIE9VVFBVVCA7Ci0gICAgQU5URU5OQURJRkZBUkVBIDEuNzI4NSAgTEFZRVIgTWV0YWwxIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuODUgMS4wMiAwLjkxIDEuMTQgOwotICAgICAgICBSRUNUIDAuMjQ1IDAuMzIgMS41NCAwLjM4IDsKLSAgICAgICAgUkVDVCAxLjQ2IDAuMzIgMS41MiAxLjA4IDsKLSAgICAgICAgUkVDVCAwLjg1IDEuMDIgMS41MiAxLjA4IDsKLSAgICAgICAgUkVDVCAxLjQ2IDAuMzIgMS41NCAwLjU0IDsKLSAgICBFTkQKLSAgRU5EIFkKLSAgUElOIEMKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuNDM1IDAuODE1IDAuNTY1IDAuODk1IDsKLSAgICAgICAgUkVDVCAwLjQ4NSAwLjggMC45MiAwLjg4IDsKLSAgICBFTkQKLSAgRU5EIEMKLSAgUElOIEIKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuNDggMC42NCAxLjE0NSAwLjcgOwotICAgICAgICBSRUNUIDEuMDYgMC42NCAxLjE0IDAuOTIgOwotICAgICAgICBSRUNUIDEuMDYgMC42NCAxLjE0NSAwLjc2IDsKLSAgICBFTkQKLSAgRU5EIEIKLSAgUElOIEEKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDYgMC40OCAwLjE0IDAuNzMgOwotICAgICAgICBSRUNUIDAuMDYgMC40OCAxLjMxNSAwLjU0IDsKLSAgICAgICAgUkVDVCAxLjI1NSAwLjQ4IDEuMzE1IDAuNzA1IDsKLSAgICBFTkQKLSAgRU5EIEEKLSAgUElOIFZERAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBQT1dFUiA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZERCBWREQhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDEuNjUgMS42IDEuNzEgOwotICAgIEVORAotICBFTkQgVkRECi0gIFBJTiBWU1MKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgR1JPVU5EIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVlNTIFZTUyEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMC4wMCAxLjYgMC4wNiA7Ci0gICAgRU5ECi0gIEVORCBWU1MKLUVORCBOT1IzWDIKLQotTUFDUk8gTk9SM0JYMgotICBDTEFTUyBDT1JFIDsKLSAgT1JJR0lOIDAgMCA7Ci0gIEZPUkVJR04gTk9SM0JYMiAwIDAgOwotICBTSVpFIDIgQlkgMS43MSA7Ci0gIFNZTU1FVFJZIFggWSA7Ci0gIFNJVEUgQ29yZVNpdGUgOwotICBQSU4gWQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gT1VUUFVUIDsKLSAgICBBTlRFTk5BRElGRkFSRUEgMS43Mjg1ICBMQVlFUiBNZXRhbDEgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wOCAwLjMyIDAuMTQgMC45MiA7Ci0gICAgICAgIFJFQ1QgMC4wNiAwLjc5IDAuMTQgMC45MiA7Ci0gICAgICAgIFJFQ1QgMC4wNiAwLjg2IDAuODk1IDAuOTIgOwotICAgICAgICBSRUNUIDAuODM1IDAuODYgMC44OTUgMS4zMiA7Ci0gICAgICAgIFJFQ1QgMC4wOCAwLjMyIDEuNSAwLjM4IDsKLSAgICBFTkQKLSAgRU5EIFkKLSAgUElOIEMKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuOTk1IDAuOCAxLjE0IDAuODggOwotICAgICAgICBSRUNUIDEuMDYgMC44IDEuMTQgMS4yMzUgOwotICAgIEVORAotICBFTkQgQwotICBQSU4gQgotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC41NyAwLjY0IDEuMzQgMC43IDsKLSAgICAgICAgUkVDVCAxLjI2IDAuNjQgMS4zNCAwLjkyIDsKLSAgICBFTkQKLSAgRU5EIEIKLSAgUElOIEFOCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAxLjYgMC42NCAxLjY4IDEuMDggOwotICAgICAgICBSRUNUIDEuNiAwLjY0IDEuNzQgMC45MiA7Ci0gICAgRU5ECi0gIEVORCBBTgotICBQSU4gVkRECi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIFBPV0VSIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVkREIFZERCEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMS42NSAyIDEuNzEgOwotICAgIEVORAotICBFTkQgVkRECi0gIFBJTiBWU1MKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgR1JPVU5EIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVlNTIFZTUyEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMC4wMCAyIDAuMDYgOwotICAgIEVORAotICBFTkQgVlNTCi1FTkQgTk9SM0JYMgotCi1NQUNSTyBERkZUUlgxCi0gIENMQVNTIENPUkUgOwotICBPUklHSU4gMCAwIDsKLSAgRk9SRUlHTiBERkZUUlgxIDAgMCA7Ci0gIFNJWkUgNC44IEJZIDEuNzEgOwotICBTWU1NRVRSWSBYIFkgOwotICBTSVRFIENvcmVTaXRlIDsKLSAgUElOIFEKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIE9VVFBVVCA7Ci0gICAgQU5URU5OQURJRkZBUkVBIDEuNzI4NSAgTEFZRVIgTWV0YWwxIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuODYgMC40MSAwLjk0IDAuNTQgOwotICAgICAgICBSRUNUIDAuODggMC40MSAwLjk0IDAuOTUgOwotICAgICAgICBSRUNUIDAuOSAwLjg5IDAuOTYgMS4zNCA7Ci0gICAgICAgIFJFQ1QgMC44NiAwLjQxIDAuOTc1IDAuNTMgOwotICAgIEVORAotICBFTkQgUQotICBQSU4gUU4KLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIE9VVFBVVCA7Ci0gICAgQU5URU5OQURJRkZBUkVBIDEuNzI4NSAgTEFZRVIgTWV0YWwxIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDYgMC42IDAuMzI1IDAuNzMgOwotICAgICAgICBSRUNUIDAuMjQ1IDAuNTQgMC4zMjUgMS4yOSA7Ci0gICAgRU5ECi0gIEVORCBRTgotICBQSU4gRAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgNC40NiAwLjM2NSA0LjU0IDAuODY1IDsKLSAgICBFTkQKLSAgRU5EIEQKLSAgUElOIFJOCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCA0LjA2IDAuNzkgNC4xNCAwLjkyIDsKLSAgICAgICAgUkVDVCA0LjA2IDAuNzkgNC4zMiAwLjg3IDsKLSAgICAgICAgUkVDVCA0LjI0IDAuNzM1IDQuMzIgMS4wMDUgOwotICAgIEVORAotICBFTkQgUk4KLSAgUElOIENLCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAxLjA2IDAuOTggMS4xNCAxLjExIDsKLSAgICAgICAgUkVDVCAxLjI2IDAuNzggMS4zNCAxLjA2IDsKLSAgICAgICAgUkVDVCAxLjA2IDAuOTggMS4zNCAxLjA2IDsKLSAgICBFTkQKLSAgRU5EIENLCi0gIFBJTiBWREQKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgUE9XRVIgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWREQgVkREISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAxLjY1IDQuOCAxLjcxIDsKLSAgICBFTkQKLSAgRU5EIFZERAotICBQSU4gVlNTCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIEdST1VORCA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZTUyBWU1MhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDAuMDAgNC44IDAuMDYgOwotICAgIEVORAotICBFTkQgVlNTCi1FTkQgREZGVFJYMQotCi1NQUNSTyBUTEFUWEwKLSAgQ0xBU1MgQ09SRSA7Ci0gIE9SSUdJTiAwIDAgOwotICBGT1JFSUdOIFRMQVRYTCAwIDAgOwotICBTSVpFIDMuMiBCWSAxLjcxIDsKLSAgU1lNTUVUUlkgWCBZIDsKLSAgU0lURSBDb3JlU2l0ZSA7Ci0gIFBJTiBRCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBPVVRQVVQgOwotICAgIEFOVEVOTkFESUZGQVJFQSAxLjcyODUgIExBWUVSIE1ldGFsMSA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAzLjA2IDAuNDc1IDMuMTQgMS4wNDUgOwotICAgIEVORAotICBFTkQgUQotICBQSU4gUU4KLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIE9VVFBVVCA7Ci0gICAgQU5URU5OQURJRkZBUkVBIDEuNzI4NSAgTEFZRVIgTWV0YWwxIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDIuMjcgMC40MDUgMi4zNSAxLjQ5IDsKLSAgICAgICAgUkVDVCAyLjE1NSAxLjM2IDIuMzUgMS40OSA7Ci0gICAgRU5ECi0gIEVORCBRTgotICBQSU4gRwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMS44NiAwLjc2IDEuOTQgMS4yNiA7Ci0gICAgRU5ECi0gIEVORCBHCi0gIFBJTiBECi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjU2IDAuNjI1IDAuNjQgMS4wMjUgOwotICAgICAgICBSRUNUIDAuNDYgMC43OSAwLjY0IDEuMDI1IDsKLSAgICBFTkQKLSAgRU5EIEQKLSAgUElOIFZERAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBQT1dFUiA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZERCBWREQhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDEuNjUgMy4yIDEuNzEgOwotICAgIEVORAotICBFTkQgVkRECi0gIFBJTiBWU1MKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgR1JPVU5EIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVlNTIFZTUyEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMC4wMCAzLjIgMC4wNiA7Ci0gICAgRU5ECi0gIEVORCBWU1MKLUVORCBUTEFUWEwKLQotTUFDUk8gQU8yMlg0Ci0gIENMQVNTIENPUkUgOwotICBPUklHSU4gMCAwIDsKLSAgRk9SRUlHTiBBTzIyWDQgMCAwIDsKLSAgU0laRSAyLjIgQlkgMS43MSA7Ci0gIFNZTU1FVFJZIFggWSA7Ci0gIFNJVEUgQ29yZVNpdGUgOwotICBQSU4gWQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gT1VUUFVUIDsKLSAgICBBTlRFTk5BRElGRkFSRUEgMS43Mjg1ICBMQVlFUiBNZXRhbDEgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMS4yNDUgMC40NyAxLjM2NSAwLjUzIDsKLSAgICAgICAgUkVDVCAxLjQ1IDAuOTE1IDEuNTEgMS4zMDUgOwotICAgICAgICBSRUNUIDEuNjg1IDAuNDcgMS44MDUgMC41NSA7Ci0gICAgICAgIFJFQ1QgMS4zMTUgMC40OSAxLjkyIDAuNTUgOwotICAgICAgICBSRUNUIDEuNDUgMC45MTUgMS45MiAwLjk3NSA7Ci0gICAgICAgIFJFQ1QgMS44NiAwLjQ5IDEuOTIgMS4zMDUgOwotICAgICAgICBSRUNUIDEuODYgMC42IDEuOTQgMC43MyA7Ci0gICAgRU5ECi0gIEVORCBZCi0gIFBJTiBCMAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMSAwLjgxNSAxLjEyIDAuODk1IDsKLSAgICAgICAgUkVDVCAxLjAzNSAwLjgxNSAxLjEyIDEuMDg1IDsKLSAgICAgICAgUkVDVCAxLjAzNSAxLjAwNSAxLjMxIDEuMDg1IDsKLSAgICBFTkQKLSAgRU5EIEIwCi0gIFBJTiBBMAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4yNiAwLjUyIDAuMzQgMS4wMiA7Ci0gICAgRU5ECi0gIEVORCBBMAotICBQSU4gQjEKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuNjYgMC41MiAwLjc0IDEuMDIgOwotICAgIEVORAotICBFTkQgQjEKLSAgUElOIEExCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjQ4IDAuNTIgMC41NiAxIDsKLSAgICAgICAgUkVDVCAwLjQ2IDAuNzkgMC41NiAxIDsKLSAgICBFTkQKLSAgRU5EIEExCi0gIFBJTiBWREQKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgUE9XRVIgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWREQgVkREISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAxLjY1IDIuMiAxLjcxIDsKLSAgICBFTkQKLSAgRU5EIFZERAotICBQSU4gVlNTCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIEdST1VORCA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZTUyBWU1MhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDAuMDAgMi4yIDAuMDYgOwotICAgIEVORAotICBFTkQgVlNTCi1FTkQgQU8yMlg0Ci0KLU1BQ1JPIE5BTkQ0WDYKLSAgQ0xBU1MgQ09SRSA7Ci0gIE9SSUdJTiAwIDAgOwotICBGT1JFSUdOIE5BTkQ0WDYgMCAwIDsKLSAgU0laRSA1IEJZIDEuNzEgOwotICBTWU1NRVRSWSBYIFkgOwotICBTSVRFIENvcmVTaXRlIDsKLSAgUElOIFkKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIE9VVFBVVCA7Ci0gICAgQU5URU5OQURJRkZBUkVBIDEuNzI4NSAgTEFZRVIgTWV0YWwxIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuNDMgMC45MiAwLjQ5IDEuMzcgOwotICAgICAgICBSRUNUIDAuODQgMC45IDAuOSAxLjM3IDsKLSAgICAgICAgUkVDVCAwLjQzIDEuMDkgMS4zMSAxLjE1IDsKLSAgICAgICAgUkVDVCAxLjI1IDAuOSAxLjMxIDEuMzcgOwotICAgICAgICBSRUNUIDEuOCAxLjAyIDEuODYgMS4zNyA7Ci0gICAgICAgIFJFQ1QgMi4yODUgMC45IDIuMzQ1IDEuMzcgOwotICAgICAgICBSRUNUIDIuNjk1IDAuOTIgMi43NTUgMS4zNyA7Ci0gICAgICAgIFJFQ1QgMS4yNSAxLjAyIDMuMjI1IDEuMDggOwotICAgICAgICBSRUNUIDMuMTY1IDAuOTUgMy4yMjUgMS4zNyA7Ci0gICAgICAgIFJFQ1QgMy4xNjUgMC45NSAzLjYzNSAxLjAxIDsKLSAgICAgICAgUkVDVCAzLjU3NSAwLjkgMy42MzUgMS4zNyA7Ci0gICAgICAgIFJFQ1QgMy44MjUgMC41MiAzLjg4NSAwLjY0IDsKLSAgICAgICAgUkVDVCAzLjU3NSAxLjA5IDQuMTI1IDEuMTUgOwotICAgICAgICBSRUNUIDQuMDY1IDAuOTIgNC4xMjUgMS4zNyA7Ci0gICAgICAgIFJFQ1QgMy44MjUgMC41OCA0LjMyIDAuNjQgOwotICAgICAgICBSRUNUIDQuMjYgMC41MiA0LjMyIDEuMDggOwotICAgICAgICBSRUNUIDQuMjYgMC43OSA0LjM0IDAuOTIgOwotICAgICAgICBSRUNUIDQuMDY1IDEuMDIgNC41MzUgMS4wOCA7Ci0gICAgICAgIFJFQ1QgNC40NzUgMC45IDQuNTM1IDEuMzcgOwotICAgICAgICBSRUNUIDQuNjggMC4zNSA0Ljc0IDAuNjYgOwotICAgICAgICBSRUNUIDQuMjYgMC42IDQuNzQgMC42NiA7Ci0gICAgRU5ECi0gIEVORCBZCi0gIFBJTiBBCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjM4NSAwLjc0IDAuNzQgMC44MiA7Ci0gICAgICAgIFJFQ1QgMC42NiAwLjc0IDAuNzQgMC45NjUgOwotICAgIEVORAotICBFTkQgQQotICBQSU4gQgotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMS42NiAwLjc0IDEuNzQgMC45MiA7Ci0gICAgICAgIFJFQ1QgMS42NiAwLjc3IDIuMDYgMC44NSA7Ci0gICAgRU5ECi0gIEVORCBCCi0gIFBJTiBDCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAyLjczNSAwLjc0IDIuOTE1IDAuODIgOwotICAgICAgICBSRUNUIDIuODYgMC43NyAyLjk0IDAuOTIgOwotICAgICAgICBSRUNUIDMuMDE1IDAuNzMgMy4wOTUgMC44NSA7Ci0gICAgICAgIFJFQ1QgMi44MzUgMC43NyAzLjA5NSAwLjg1IDsKLSAgICBFTkQKLSAgRU5EIEMKLSAgUElOIEQKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDMuNzM1IDAuODE1IDMuOTY1IDAuODk1IDsKLSAgICAgICAgUkVDVCAzLjg2IDAuNzQgNC4xNiAwLjgyIDsKLSAgICBFTkQKLSAgRU5EIEQKLSAgUElOIFZERAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBQT1dFUiA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZERCBWREQhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDEuNjUgNSAxLjcxIDsKLSAgICBFTkQKLSAgRU5EIFZERAotICBQSU4gVlNTCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIEdST1VORCA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZTUyBWU1MhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDAuMDAgNSAwLjA2IDsKLSAgICBFTkQKLSAgRU5EIFZTUwotRU5EIE5BTkQ0WDYKLQotTUFDUk8gU0RGRlNYMgotICBDTEFTUyBDT1JFIDsKLSAgT1JJR0lOIDAgMCA7Ci0gIEZPUkVJR04gU0RGRlNYMiAwIDAgOwotICBTSVpFIDYuOCBCWSAxLjcxIDsKLSAgU1lNTUVUUlkgWCBZIDsKLSAgU0lURSBDb3JlU2l0ZSA7Ci0gIFBJTiBRCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBPVVRQVVQgOwotICAgIEFOVEVOTkFESUZGQVJFQSAxLjcyODUgIExBWUVSIE1ldGFsMSA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAxLjA2IDAuNiAxLjE0NSAwLjczIDsKLSAgICAgICAgUkVDVCAxLjA2NSAwLjU0IDEuMTQ1IDEuMjkgOwotICAgIEVORAotICBFTkQgUQotICBQSU4gUU4KLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIE9VVFBVVCA7Ci0gICAgQU5URU5OQURJRkZBUkVBIDEuNzI4NSAgTEFZRVIgTWV0YWwxIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMjYgMC42IDAuMzQgMC43MyA7Ci0gICAgICAgIFJFQ1QgMC4yOCAwLjU0IDAuMzQgMS4yOSA7Ci0gICAgRU5ECi0gIEVORCBRTgotICBQSU4gU0UKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDUuODkgMC42NDUgNS45NSAxLjA4NSA7Ci0gICAgICAgIFJFQ1QgNS44MyAxLjAyNSA1Ljk1IDEuMDg1IDsKLSAgICAgICAgUkVDVCA2LjEwNSAwLjU4NSA2LjE2NSAwLjcwNSA7Ci0gICAgICAgIFJFQ1QgNS44OSAwLjY0NSA2LjM2NSAwLjcwNSA7Ci0gICAgICAgIFJFQ1QgNi4xMDUgMC42MjUgNi41MDUgMC42ODUgOwotICAgIEVORAotICBFTkQgU0UKLSAgUElOIFNJCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCA2LjQzNSAwLjgxNSA2LjYxIDEuMDU1IDsKLSAgICAgICAgUkVDVCA2LjI3IDAuOTc1IDYuNjEgMS4wNTUgOwotICAgIEVORAotICBFTkQgU0kKLSAgUElOIEQKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDUuNDYgMC41NSA1LjU0IDAuNzY1IDsKLSAgICAgICAgUkVDVCA1LjI2NSAwLjU1IDUuNjMgMC42MyA7Ci0gICAgRU5ECi0gIEVORCBECi0gIFBJTiBDSwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgNS4wNDUgMC42MzUgNS4xNjUgMS4wODUgOwotICAgICAgICBSRUNUIDUuMDM1IDEuMDA1IDUuMTY1IDEuMDg1IDsKLSAgICBFTkQKLSAgRU5EIENLCi0gIFBJTiBTTgotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMi4yMzUgMC4zMTUgMi4yOTUgMC44OTUgOwotICAgICAgICBSRUNUIDIuMjM1IDAuODE1IDIuMzY1IDAuODk1IDsKLSAgICAgICAgUkVDVCAxLjg1NSAwLjgzNSAyLjM2NSAwLjg5NSA7Ci0gICAgICAgIFJFQ1QgMi4yMzUgMC4zMTUgMy4wNjUgMC4zNzUgOwotICAgICAgICBSRUNUIDMuMDA1IDAuMzE1IDMuMDY1IDAuNTUgOwotICAgICAgICBSRUNUIDMuMzg1IDAuMzMgMy40NDUgMC41NSA7Ci0gICAgICAgIFJFQ1QgMy4wMDUgMC40OSAzLjQ0NSAwLjU1IDsKLSAgICAgICAgUkVDVCAzLjM4NSAwLjMzIDMuNTA1IDAuMzkgOwotICAgIEVORAotICBFTkQgU04KLSAgUElOIFZERAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBQT1dFUiA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZERCBWREQhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDEuNjUgNi44IDEuNzEgOwotICAgIEVORAotICBFTkQgVkRECi0gIFBJTiBWU1MKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgR1JPVU5EIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVlNTIFZTUyEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMC4wMCA2LjggMC4wNiA7Ci0gICAgRU5ECi0gIEVORCBWU1MKLUVORCBTREZGU1gyCi0KLU1BQ1JPIE1YM1gyCi0gIENMQVNTIENPUkUgOwotICBPUklHSU4gMCAwIDsKLSAgRk9SRUlHTiBNWDNYMiAwIDAgOwotICBTSVpFIDMuMiBCWSAxLjcxIDsKLSAgU1lNTUVUUlkgWCBZIDsKLSAgU0lURSBDb3JlU2l0ZSA7Ci0gIFBJTiBZCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBPVVRQVVQgOwotICAgIEFOVEVOTkFESUZGQVJFQSAxLjcyODUgIExBWUVSIE1ldGFsMSA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjIzNSAwLjYyNSAwLjM3IDAuNzA1IDsKLSAgICAgICAgUkVDVCAwLjMxIDAuNDYgMC4zNyAwLjk1IDsKLSAgICAgICAgUkVDVCAwLjM1NSAwLjQgMC40MTUgMC41MiA7Ci0gICAgICAgIFJFQ1QgMC4zNTUgMC44OSAwLjQxNSAxLjQ4IDsKLSAgICBFTkQKLSAgRU5EIFkKLSAgUElOIFMwCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAyLjQwNSAxLjAyNSAyLjQ4NSAxLjE1NSA7Ci0gICAgICAgIFJFQ1QgMi44NiAwLjk4IDIuOTQgMS4xNTUgOwotICAgICAgICBSRUNUIDIuNDA1IDEuMDc1IDIuOTQgMS4xNTUgOwotICAgIEVORAotICBFTkQgUzAKLSAgUElOIEEKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDIuMzk1IDAuNzQgMi43NCAwLjgyIDsKLSAgICAgICAgUkVDVCAyLjY2IDAuNzQgMi43NCAwLjk3NSA7Ci0gICAgRU5ECi0gIEVORCBBCi0gIFBJTiBCCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAxLjg2IDAuNzkgMS45NCAwLjk4NSA7Ci0gICAgICAgIFJFQ1QgMS44OTUgMC41MiAxLjk3NSAwLjg3IDsKLSAgICBFTkQKLSAgRU5EIEIKLSAgUElOIFMxCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAxLjY2IDAuNTIgMS43NCAxLjAyIDsKLSAgICBFTkQKLSAgRU5EIFMxCi0gIFBJTiBDCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjcxIDAuNzggMC43OSAxLjA4NSA7Ci0gICAgICAgIFJFQ1QgMC41MTUgMS4wMDUgMC43OSAxLjA4NSA7Ci0gICAgRU5ECi0gIEVORCBDCi0gIFBJTiBWREQKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgUE9XRVIgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWREQgVkREISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAxLjY1IDMuMiAxLjcxIDsKLSAgICBFTkQKLSAgRU5EIFZERAotICBQSU4gVlNTCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIEdST1VORCA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZTUyBWU1MhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDAuMDAgMy4yIDAuMDYgOwotICAgIEVORAotICBFTkQgVlNTCi1FTkQgTVgzWDIKLQotTUFDUk8gTk9SNFg0Ci0gIENMQVNTIENPUkUgOwotICBPUklHSU4gMCAwIDsKLSAgRk9SRUlHTiBOT1I0WDQgMCAwIDsKLSAgU0laRSAzLjggQlkgMS43MSA7Ci0gIFNZTU1FVFJZIFggWSA7Ci0gIFNJVEUgQ29yZVNpdGUgOwotICBQSU4gWQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gT1VUUFVUIDsKLSAgICBBTlRFTk5BRElGRkFSRUEgMS43Mjg1ICBMQVlFUiBNZXRhbDEgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC41OSAwLjUxNSAwLjY1IDAuNjU1IDsKLSAgICAgICAgUkVDVCAxIDAuNTE1IDEuMDYgMC42NTUgOwotICAgICAgICBSRUNUIDEuMDYgMC43OSAxLjE0IDAuOTIgOwotICAgICAgICBSRUNUIDEuMDggMC41OTUgMS4xNCAxLjA1NSA7Ci0gICAgICAgIFJFQ1QgMS40MSAwLjUxNSAxLjQ3IDAuNjU1IDsKLSAgICAgICAgUkVDVCAxLjgyIDAuNTE1IDEuODggMC42NTUgOwotICAgICAgICBSRUNUIDIuMjMgMC41MTUgMi4yOSAwLjY1NSA7Ci0gICAgICAgIFJFQ1QgMi42NCAwLjUxNSAyLjcgMC42NTUgOwotICAgICAgICBSRUNUIDIuOTk1IDAuOTk1IDMuMDU1IDEuMTM1IDsKLSAgICAgICAgUkVDVCAzLjA1IDAuNTE1IDMuMTEgMC42NTUgOwotICAgICAgICBSRUNUIDEuMDggMC45OTUgMy40NjUgMS4wNTUgOwotICAgICAgICBSRUNUIDMuNDA1IDAuOTk1IDMuNDY1IDEuMTM1IDsKLSAgICAgICAgUkVDVCAzLjQ2IDAuNTE1IDMuNTIgMC42NTUgOwotICAgICAgICBSRUNUIDAuNTkgMC41OTUgMy41MiAwLjY1NSA7Ci0gICAgRU5ECi0gIEVORCBZCi0gIFBJTiBBCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjg2IDAuNzU1IDAuOTQgMC45NSA7Ci0gICAgICAgIFJFQ1QgMC4zNSAwLjg3IDAuOTQgMC45NSA7Ci0gICAgRU5ECi0gIEVORCBBCi0gIFBJTiBCCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAxLjcyNSAwLjc1NSAxLjgwNSAwLjg5NSA7Ci0gICAgICAgIFJFQ1QgMS4yNCAwLjgxNSAxLjgwNSAwLjg5NSA7Ci0gICAgRU5ECi0gIEVORCBCCi0gIFBJTiBDCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAyLjQzNSAwLjc3NSAyLjU3IDAuODk1IDsKLSAgICAgICAgUkVDVCAyLjExIDAuODE1IDIuNTcgMC44OTUgOwotICAgIEVORAotICBFTkQgQwotICBQSU4gRAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMy4xMDUgMC43NzUgMy4xODUgMC44OTUgOwotICAgICAgICBSRUNUIDIuODM1IDAuODE1IDMuNDIgMC44OTUgOwotICAgIEVORAotICBFTkQgRAotICBQSU4gVkRECi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIFBPV0VSIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVkREIFZERCEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMS42NSAzLjggMS43MSA7Ci0gICAgRU5ECi0gIEVORCBWREQKLSAgUElOIFZTUwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBHUk9VTkQgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWU1MgVlNTISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAwLjAwIDMuOCAwLjA2IDsKLSAgICBFTkQKLSAgRU5EIFZTUwotRU5EIE5PUjRYNAotCi1NQUNSTyBPQUkyMjJYTAotICBDTEFTUyBDT1JFIDsKLSAgT1JJR0lOIDAgMCA7Ci0gIEZPUkVJR04gT0FJMjIyWEwgMCAwIDsKLSAgU0laRSAxLjggQlkgMS43MSA7Ci0gIFNZTU1FVFJZIFggWSA7Ci0gIFNJVEUgQ29yZVNpdGUgOwotICBQSU4gWQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gT1VUUFVUIDsKLSAgICBBTlRFTk5BRElGRkFSRUEgMS43Mjg1ICBMQVlFUiBNZXRhbDEgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC43NSAxLjIzIDAuODEgMS4zODUgOwotICAgICAgICBSRUNUIDEuMzk1IDAuMzA1IDEuNDU1IDAuNTE1IDsKLSAgICAgICAgUkVDVCAxLjM5NSAwLjQ1NSAxLjUgMC41MTUgOwotICAgICAgICBSRUNUIDEuNDYgMS4yMyAxLjU1NSAxLjQ5IDsKLSAgICAgICAgUkVDVCAxLjQ0IDAuNDcgMS43IDAuNTMgOwotICAgICAgICBSRUNUIDEuNjQgMC40NyAxLjcgMS4yOSA7Ci0gICAgICAgIFJFQ1QgMC43NSAxLjIzIDEuNyAxLjI5IDsKLSAgICBFTkQKLSAgRU5EIFkKLSAgUElOIEIxCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjg2IDAuNjMgMC45NCAxLjEzIDsKLSAgICBFTkQKLSAgRU5EIEIxCi0gIFBJTiBBMAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4yNiAwLjYzIDAuMzQgMS4xMyA7Ci0gICAgRU5ECi0gIEVORCBBMAotICBQSU4gQzAKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDEuMjYgMC42MSAxLjM0IDEuMTEgOwotICAgIEVORAotICBFTkQgQzAKLSAgUElOIEExCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjQ2IDAuNzY1IDAuNTQgMS4yNiA7Ci0gICAgICAgIFJFQ1QgMC40NiAwLjc2NSAwLjU0NSAwLjkyIDsKLSAgICBFTkQKLSAgRU5EIEExCi0gIFBJTiBDMQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMS40NiAwLjYzIDEuNTQgMS4xMyA7Ci0gICAgRU5ECi0gIEVORCBDMQotICBQSU4gQjAKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDEuMDYgMC42MyAxLjE0IDEuMTMgOwotICAgIEVORAotICBFTkQgQjAKLSAgUElOIFZERAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBQT1dFUiA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZERCBWREQhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDEuNjUgMS44IDEuNzEgOwotICAgIEVORAotICBFTkQgVkRECi0gIFBJTiBWU1MKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgR1JPVU5EIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVlNTIFZTUyEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMC4wMCAxLjggMC4wNiA7Ci0gICAgRU5ECi0gIEVORCBWU1MKLUVORCBPQUkyMjJYTAotCi1NQUNSTyBBT0kyMjJYNAotICBDTEFTUyBDT1JFIDsKLSAgT1JJR0lOIDAgMCA7Ci0gIEZPUkVJR04gQU9JMjIyWDQgMCAwIDsKLSAgU0laRSA1LjYgQlkgMS43MSA7Ci0gIFNZTU1FVFJZIFggWSA7Ci0gIFNJVEUgQ29yZVNpdGUgOwotICBQSU4gWQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gT1VUUFVUIDsKLSAgICBBTlRFTk5BRElGRkFSRUEgMS43Mjg1ICBMQVlFUiBNZXRhbDEgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC43NiAwLjQ3NSAwLjg4IDAuNTM1IDsKLSAgICAgICAgUkVDVCAxLjM4IDAuNDc1IDEuNSAwLjU1NSA7Ci0gICAgICAgIFJFQ1QgMS44MzUgMC44MTUgMS45NjUgMC44OTUgOwotICAgICAgICBSRUNUIDEuOTA1IDAuNDk1IDEuOTY1IDEuMDU1IDsKLSAgICAgICAgUkVDVCAyLjM0NSAwLjQ3NSAyLjQ2NSAwLjU1NSA7Ci0gICAgICAgIFJFQ1QgMy4yMSAwLjQ3NSAzLjMzIDAuNTU1IDsKLSAgICAgICAgUkVDVCAzLjg1NSAwLjk5NSAzLjkxNSAxLjEzNSA7Ci0gICAgICAgIFJFQ1QgMy45OCAwLjQ3NSA0LjEgMC41NTUgOwotICAgICAgICBSRUNUIDQuMjY1IDAuOTk1IDQuMzI1IDEuMTM1IDsKLSAgICAgICAgUkVDVCAwLjgzIDAuNDk1IDQuNTYgMC41NTUgOwotICAgICAgICBSRUNUIDQuNTEgMC40NzUgNC43MiAwLjUzNSA7Ci0gICAgICAgIFJFQ1QgNC42NzUgMC45OTUgNC43MzUgMS4xMzUgOwotICAgICAgICBSRUNUIDEuOTA1IDAuOTk1IDUuMTQ1IDEuMDU1IDsKLSAgICAgICAgUkVDVCA1LjA4NSAwLjk5NSA1LjE0NSAxLjEzNSA7Ci0gICAgRU5ECi0gIEVORCBZCi0gIFBJTiBCMQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMi40NjUgMC44MTUgMy4yIDAuODk1IDsKLSAgICBFTkQKLSAgRU5EIEIxCi0gIFBJTiBBMQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC42MzUgMC44MTUgMS40MjUgMC44OTUgOwotICAgIEVORAotICBFTkQgQTEKLSAgUElOIEMxCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCA0LjA1NSAwLjgxNSA0Ljc5NSAwLjg5NSA7Ci0gICAgRU5ECi0gIEVORCBDMQotICBQSU4gQjAKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDIuMjM1IDAuNjU1IDIuMjk1IDAuODk1IDsKLSAgICAgICAgUkVDVCAyLjIzNSAwLjgxNSAyLjM2NSAwLjg5NSA7Ci0gICAgICAgIFJFQ1QgMi4xMSAwLjY1NSAzLjYxIDAuNzE1IDsKLSAgICBFTkQKLSAgRU5EIEIwCi0gIFBJTiBDMAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgNC44MzUgMC42MjUgNC45NjUgMC43MTUgOwotICAgICAgICBSRUNUIDMuNzQ1IDAuNjU1IDUuMTUgMC43MTUgOwotICAgIEVORAotICBFTkQgQzAKLSAgUElOIEEwCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjQzNSAwLjYyNSAwLjU2NSAwLjcxNSA7Ci0gICAgICAgIFJFQ1QgMC40MiAwLjY1NSAxLjczNSAwLjcxNSA7Ci0gICAgRU5ECi0gIEVORCBBMAotICBQSU4gVkRECi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIFBPV0VSIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVkREIFZERCEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMS42NSA1LjYgMS43MSA7Ci0gICAgRU5ECi0gIEVORCBWREQKLSAgUElOIFZTUwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBHUk9VTkQgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWU1MgVlNTISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAwLjAwIDUuNiAwLjA2IDsKLSAgICBFTkQKLSAgRU5EIFZTUwotRU5EIEFPSTIyMlg0Ci0KLU1BQ1JPIENMS0lOVlg2Ci0gIENMQVNTIENPUkUgOwotICBPUklHSU4gMCAwIDsKLSAgRk9SRUlHTiBDTEtJTlZYNiAwIDAgOwotICBTSVpFIDEuNCBCWSAxLjcxIDsKLSAgU1lNTUVUUlkgWCBZIDsKLSAgU0lURSBDb3JlU2l0ZSA7Ci0gIFBJTiBZCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBPVVRQVVQgOwotICAgIEFOVEVOTkFESUZGQVJFQSAxLjcyODUgIExBWUVSIE1ldGFsMSA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjI3NSAwLjkgMC4zMzUgMS4zNyA7Ci0gICAgICAgIFJFQ1QgMC4yODUgMC4yNDUgMC4zNDUgMC41MjUgOwotICAgICAgICBSRUNUIDAuMjc1IDEuMDkgMC43NTUgMS4xNSA7Ci0gICAgICAgIFJFQ1QgMC42OTUgMC4yNDUgMC43NTUgMC41MjUgOwotICAgICAgICBSRUNUIDAuNjk1IDAuOSAwLjc1NSAxLjM3IDsKLSAgICAgICAgUkVDVCAwLjg2IDAuNDY1IDAuOTIgMC45NiA7Ci0gICAgICAgIFJFQ1QgMC44NiAwLjc5IDAuOTQgMC45NiA7Ci0gICAgICAgIFJFQ1QgMC42OTUgMC45IDEuMTY1IDAuOTYgOwotICAgICAgICBSRUNUIDEuMTA1IDAuMjQ1IDEuMTY1IDAuNTI1IDsKLSAgICAgICAgUkVDVCAwLjI4NSAwLjQ2NSAxLjE2NSAwLjUyNSA7Ci0gICAgICAgIFJFQ1QgMS4xMDUgMC45IDEuMTY1IDEuMzcgOwotICAgIEVORAotICBFTkQgWQotICBQSU4gQQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4yMyAwLjYyNSAwLjczIDAuNzA1IDsKLSAgICBFTkQKLSAgRU5EIEEKLSAgUElOIFZERAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBQT1dFUiA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZERCBWREQhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDEuNjUgMS40IDEuNzEgOwotICAgIEVORAotICBFTkQgVkRECi0gIFBJTiBWU1MKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgR1JPVU5EIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVlNTIFZTUyEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMC4wMCAxLjQgMC4wNiA7Ci0gICAgRU5ECi0gIEVORCBWU1MKLUVORCBDTEtJTlZYNgotCi1NQUNSTyBOT1I0QkJYMgotICBDTEFTUyBDT1JFIDsKLSAgT1JJR0lOIDAgMCA7Ci0gIEZPUkVJR04gTk9SNEJCWDIgMCAwIDsKLSAgU0laRSAzIEJZIDEuNzEgOwotICBTWU1NRVRSWSBYIFkgOwotICBTSVRFIENvcmVTaXRlIDsKLSAgUElOIFkKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIE9VVFBVVCA7Ci0gICAgQU5URU5OQURJRkZBUkVBIDEuNzI4NSAgTEFZRVIgTWV0YWwxIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDEuMjYgMC40IDEuMzggMC40NiA7Ci0gICAgICAgIFJFQ1QgMS4zMyAwLjQ1IDIuNzIgMC40OCA7Ci0gICAgICAgIFJFQ1QgMS43MTUgMC4zNiAxLjc3NSAwLjUxIDsKLSAgICAgICAgUkVDVCAxLjI2IDAuNDIgMS43NzUgMC40NiA7Ci0gICAgICAgIFJFQ1QgMi4xMjUgMC4zNyAyLjE4NSAwLjUxIDsKLSAgICAgICAgUkVDVCAyLjUzNSAwLjM3IDIuNTk1IDAuNTEgOwotICAgICAgICBSRUNUIDEuNzE1IDAuNDUgMi43MiAwLjUxIDsKLSAgICAgICAgUkVDVCAyLjYzNSAwLjgwNSAyLjY5NSAxLjE0NSA7Ci0gICAgICAgIFJFQ1QgMi42NiAwLjQ1IDIuNzIgMC44NjUgOwotICAgICAgICBSRUNUIDIuNjYgMC42IDIuNzQgMC43MyA7Ci0gICAgRU5ECi0gIEVORCBZCi0gIFBJTiBECi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAyLjIyNSAwLjY1IDIuMzY1IDAuODk1IDsKLSAgICAgICAgUkVDVCAyLjIyNSAwLjY1IDIuNTYgMC43MyA7Ci0gICAgRU5ECi0gIEVORCBECi0gIFBJTiBDCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAyLjA0NSAwLjYxIDIuMTI1IDAuOTI1IDsKLSAgICAgICAgUkVDVCAxLjg2IDAuNzU1IDIuMTI1IDAuOTI1IDsKLSAgICBFTkQKLSAgRU5EIEMKLSAgUElOIEFOCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjUxNSAwLjgwNSAwLjU5NSAxLjA4NSA7Ci0gICAgICAgIFJFQ1QgMC4yOTUgMS4wMDUgMC41OTUgMS4wODUgOwotICAgIEVORAotICBFTkQgQU4KLSAgUElOIEJOCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjI5NSAwLjYyNSAwLjM3NSAwLjkwNSA7Ci0gICAgICAgIFJFQ1QgMC4yOTUgMC42MjUgMC41OTUgMC43MDUgOwotICAgIEVORAotICBFTkQgQk4KLSAgUElOIFZERAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBQT1dFUiA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZERCBWREQhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDEuNjUgMyAxLjcxIDsKLSAgICBFTkQKLSAgRU5EIFZERAotICBQSU4gVlNTCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIEdST1VORCA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZTUyBWU1MhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDAuMDAgMyAwLjA2IDsKLSAgICBFTkQKLSAgRU5EIFZTUwotRU5EIE5PUjRCQlgyCi0KLU1BQ1JPIE9SMlgxCi0gIENMQVNTIENPUkUgOwotICBPUklHSU4gMCAwIDsKLSAgRk9SRUlHTiBPUjJYMSAwIDAgOwotICBTSVpFIDEgQlkgMS43MSA7Ci0gIFNZTU1FVFJZIFggWSA7Ci0gIFNJVEUgQ29yZVNpdGUgOwotICBQSU4gWQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gT1VUUFVUIDsKLSAgICBBTlRFTk5BRElGRkFSRUEgMS43Mjg1ICBMQVlFUiBNZXRhbDEgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC44MzUgMC44ODUgMC44OTUgMS4yOSA7Ci0gICAgICAgIFJFQ1QgMC44NCAwLjM4IDAuOSAwLjUgOwotICAgICAgICBSRUNUIDAuODYgMC40NSAwLjkyIDAuOTQgOwotICAgICAgICBSRUNUIDAuODYgMC42IDAuOTQgMC43MyA7Ci0gICAgRU5ECi0gIEVORCBZCi0gIFBJTiBBCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjQzIDAuNzMgMC41MSAxLjE0IDsKLSAgICAgICAgUkVDVCAwLjQzIDAuNzMgMC41MzUgMC44OTUgOwotICAgICAgICBSRUNUIDAuNDMgMC44MTUgMC42IDAuODk1IDsKLSAgICBFTkQKLSAgRU5EIEEKLSAgUElOIEIKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDYgMC4zNiAwLjE0IDAuNTQgOwotICAgICAgICBSRUNUIDAuMDkgMC40NiAwLjE3IDAuODMgOwotICAgIEVORAotICBFTkQgQgotICBQSU4gVkRECi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIFBPV0VSIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVkREIFZERCEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMS42NSAxIDEuNzEgOwotICAgIEVORAotICBFTkQgVkRECi0gIFBJTiBWU1MKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgR1JPVU5EIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVlNTIFZTUyEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMC4wMCAxIDAuMDYgOwotICAgIEVORAotICBFTkQgVlNTCi1FTkQgT1IyWDEKLQotTUFDUk8gTVg0WDQKLSAgQ0xBU1MgQ09SRSA7Ci0gIE9SSUdJTiAwIDAgOwotICBGT1JFSUdOIE1YNFg0IDAgMCA7Ci0gIFNJWkUgNS40IEJZIDEuNzEgOwotICBTWU1NRVRSWSBYIFkgOwotICBTSVRFIENvcmVTaXRlIDsKLSAgUElOIFMwCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCA0LjE4NSAwLjYgNC4yNDUgMC43MiA7Ci0gICAgICAgIFJFQ1QgNC45IDAuNiA0Ljk2IDAuNzUgOwotICAgICAgICBSRUNUIDQuMTg1IDAuNiA1LjE0IDAuNjYgOwotICAgICAgICBSRUNUIDUuMDYgMC42IDUuMTQgMC43MyA7Ci0gICAgRU5ECi0gIEVORCBTMAotICBQSU4gRAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgNC40MDUgMC44MTUgNC40ODUgMSA7Ci0gICAgICAgIFJFQ1QgNC40MDUgMC44MTUgNC44IDAuODk1IDsKLSAgICBFTkQKLSAgRU5EIEQKLSAgUElOIEMKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDMuNDY1IDAuODA1IDMuNTQ1IDEuMDg1IDsKLSAgICAgICAgUkVDVCAzLjQ2NSAxLjAwNSAzLjc2NSAxLjA4NSA7Ci0gICAgRU5ECi0gIEVORCBDCi0gIFBJTiBCCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAzLjIzNSAwLjgwNSAzLjM2NSAxLjExNSA7Ci0gICAgRU5ECi0gIEVORCBCCi0gIFBJTiBBCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAyLjQ2IDAuNTMgMi41NCAxLjAzIDsKLSAgICBFTkQKLSAgRU5EIEEKLSAgUElOIFMxCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAxLjI0NSAwLjQzNSAxLjMyNSAwLjg1IDsKLSAgICAgICAgUkVDVCAxLjIzNSAwLjQzNSAxLjQgMC41MTUgOwotICAgIEVORAotICBFTkQgUzEKLSAgUElOIFkKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIE9VVFBVVCA7Ci0gICAgQU5URU5OQURJRkZBUkVBIDEuNzI4NSAgTEFZRVIgTWV0YWwxIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDEuNjYgMC40MzUgMS43MiAwLjk5IDsKLSAgICAgICAgUkVDVCAxLjY2IDAuNzcgMS43NCAwLjk5IDsKLSAgICAgICAgUkVDVCAxLjY2IDAuODYgMS43NSAwLjk5IDsKLSAgICAgICAgUkVDVCAxLjYzIDAuOTMgMS43NSAwLjk5IDsKLSAgICAgICAgUkVDVCAxLjY2IDAuODYgMi4xNiAwLjkyIDsKLSAgICAgICAgUkVDVCAyLjEgMC40NjUgMi4xNiAwLjk5IDsKLSAgICAgICAgUkVDVCAyLjEgMC40NjUgMi4yMiAwLjUyNSA7Ci0gICAgICAgIFJFQ1QgMi4xIDAuOTMgMi4yMiAwLjk5IDsKLSAgICBFTkQKLSAgRU5EIFkKLSAgUElOIFZERAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBQT1dFUiA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZERCBWREQhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDEuNjUgNS40IDEuNzEgOwotICAgIEVORAotICBFTkQgVkRECi0gIFBJTiBWU1MKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgR1JPVU5EIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVlNTIFZTUyEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMC4wMCA1LjQgMC4wNiA7Ci0gICAgRU5ECi0gIEVORCBWU1MKLUVORCBNWDRYNAotCi1NQUNSTyBNREZGSFFYMQotICBDTEFTUyBDT1JFIDsKLSAgT1JJR0lOIDAgMCA7Ci0gIEZPUkVJR04gTURGRkhRWDEgMCAwIDsKLSAgU0laRSA1IEJZIDEuNzEgOwotICBTWU1NRVRSWSBYIFkgOwotICBTSVRFIENvcmVTaXRlIDsKLSAgUElOIFEKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIE9VVFBVVCA7Ci0gICAgQU5URU5OQURJRkZBUkVBIDEuNzI4NSAgTEFZRVIgTWV0YWwxIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDYgMC42IDAuMiAwLjczIDsKLSAgICAgICAgUkVDVCAwLjE0IDAuNTQgMC4yIDEuNDc1IDsKLSAgICBFTkQKLSAgRU5EIFEKLSAgUElOIFMwCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAzLjkzNSAwLjY0NSAzLjk5NSAwLjk0NSA7Ci0gICAgICAgIFJFQ1QgNC42MzUgMC42MjUgNC43NyAwLjcwNSA7Ci0gICAgICAgIFJFQ1QgMy45MzUgMC42NDUgNC43NyAwLjcwNSA7Ci0gICAgICAgIFJFQ1QgNC43MSAwLjYyNSA0Ljc3IDAuNzQ1IDsKLSAgICBFTkQKLSAgRU5EIFMwCi0gIFBJTiBEMQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgNC4yNjUgMC44MDUgNC41NjUgMS4wNCA7Ci0gICAgICAgIFJFQ1QgNC4yNjUgMC44MDUgNC42MSAwLjg5NSA7Ci0gICAgRU5ECi0gIEVORCBEMQotICBQSU4gRDAKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDMuNDYgMC41NDUgMy41NCAwLjczIDsKLSAgICAgICAgUkVDVCAzLjQ2IDAuNjUgMy42NzUgMC43MyA7Ci0gICAgICAgIFJFQ1QgMy41OTUgMC42NSAzLjY3NSAwLjkxIDsKLSAgICBFTkQKLSAgRU5EIEQwCi0gIFBJTiBDSwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC40NiAwLjc5IDAuNTQgMS4yNTUgOwotICAgICAgICBSRUNUIDAuNDg1IDAuNzggMC41NjUgMS4wMzUgOwotICAgIEVORAotICBFTkQgQ0sKLSAgUElOIFZERAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBQT1dFUiA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZERCBWREQhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDEuNjUgNSAxLjcxIDsKLSAgICBFTkQKLSAgRU5EIFZERAotICBQSU4gVlNTCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIEdST1VORCA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZTUyBWU1MhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDAuMDAgNSAwLjA2IDsKLSAgICBFTkQKLSAgRU5EIFZTUwotRU5EIE1ERkZIUVgxCi0KLU1BQ1JPIE5PUjRCWDIKLSAgQ0xBU1MgQ09SRSA7Ci0gIE9SSUdJTiAwIDAgOwotICBGT1JFSUdOIE5PUjRCWDIgMCAwIDsKLSAgU0laRSAyLjggQlkgMS43MSA7Ci0gIFNZTU1FVFJZIFggWSA7Ci0gIFNJVEUgQ29yZVNpdGUgOwotICBQSU4gWQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gT1VUUFVUIDsKLSAgICBBTlRFTk5BRElGRkFSRUEgMS43Mjg1ICBMQVlFUiBNZXRhbDEgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC45ODUgMC40MDUgMS4wNDUgMC41NDUgOwotICAgICAgICBSRUNUIDEuMjYgMC43OSAxLjM1NSAwLjkyIDsKLSAgICAgICAgUkVDVCAxLjI5NSAwLjQ4NSAxLjM1NSAxLjA1NSA7Ci0gICAgICAgIFJFQ1QgMS4zOTUgMC40MDUgMS40NTUgMC41NDUgOwotICAgICAgICBSRUNUIDEuODQ1IDAuNDA1IDEuOTA1IDAuNTQ1IDsKLSAgICAgICAgUkVDVCAyLjI1NSAwLjQwNSAyLjMxNSAwLjU0NSA7Ci0gICAgICAgIFJFQ1QgMC45ODUgMC40ODUgMi4zMTUgMC41NDUgOwotICAgICAgICBSRUNUIDEuMjk1IDAuOTk1IDIuNTIgMS4wNTUgOwotICAgICAgICBSRUNUIDIuNDYgMC45OTUgMi41MiAxLjEzNSA7Ci0gICAgRU5ECi0gIEVORCBZCi0gIFBJTiBBTgotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wNiAwLjc5IDAuMTQgMC45MiA7Ci0gICAgICAgIFJFQ1QgMC4zNiAwLjczNSAwLjQ1NSAwLjg3IDsKLSAgICAgICAgUkVDVCAwLjA2IDAuNzkgMC40NTUgMC44NyA7Ci0gICAgRU5ECi0gIEVORCBBTgotICBQSU4gQgotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMS40NTUgMC42NDUgMS41MzUgMC44OTUgOwotICAgICAgICBSRUNUIDEuNjM1IDAuOCAxLjc3IDAuODk1IDsKLSAgICAgICAgUkVDVCAxLjQ1NSAwLjgxNSAxLjc3IDAuODk1IDsKLSAgICBFTkQKLSAgRU5EIEIKLSAgUElOIEMKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDEuODcgMC42NDUgMi4wMzUgMC44OTUgOwotICAgICAgICBSRUNUIDEuODcgMC44MTUgMi4yIDAuODk1IDsKLSAgICBFTkQKLSAgRU5EIEMKLSAgUElOIEQKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDIuMyAwLjY0NSAyLjU2NSAwLjg5NSA7Ci0gICAgRU5ECi0gIEVORCBECi0gIFBJTiBWREQKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgUE9XRVIgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWREQgVkREISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAxLjY1IDIuOCAxLjcxIDsKLSAgICBFTkQKLSAgRU5EIFZERAotICBQSU4gVlNTCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIEdST1VORCA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZTUyBWU1MhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDAuMDAgMi44IDAuMDYgOwotICAgIEVORAotICBFTkQgVlNTCi1FTkQgTk9SNEJYMgotCi1NQUNSTyBERkZTUkhRWDQKLSAgQ0xBU1MgQ09SRSA7Ci0gIE9SSUdJTiAwIDAgOwotICBGT1JFSUdOIERGRlNSSFFYNCAwIDAgOwotICBTSVpFIDcuNCBCWSAxLjcxIDsKLSAgU1lNTUVUUlkgWCBZIDsKLSAgU0lURSBDb3JlU2l0ZSA7Ci0gIFBJTiBTTgotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMy4wMzUgMS4wMDUgMy4xNjUgMS4wODUgOwotICAgICAgICBSRUNUIDIuOTc1IDEuMDA1IDMuNDI1IDEuMDY1IDsKLSAgICAgICAgUkVDVCAzLjM2NSAxLjAwNSAzLjQyNSAxLjQwNSA7Ci0gICAgICAgIFJFQ1QgNC4xNjUgMS4yMjUgNC4yMjUgMS40MDUgOwotICAgICAgICBSRUNUIDMuMzY1IDEuMzQ1IDQuMjI1IDEuNDA1IDsKLSAgICAgICAgUkVDVCA0LjE2NSAxLjIyNSA0LjYwNSAxLjI4NSA7Ci0gICAgICAgIFJFQ1QgNC41NDUgMS4yOCA1LjIwNSAxLjM0IDsKLSAgICBFTkQKLSAgRU5EIFNOCi0gIFBJTiBDSwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgNy4wMDUgMC42MjUgNy4wODUgMC44NCA7Ci0gICAgICAgIFJFQ1QgNy4wMDUgMC42MjUgNy4zNyAwLjc0NSA7Ci0gICAgRU5ECi0gIEVORCBDSwotICBQSU4gRAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgNi4yNzUgMC44MTUgNi41ODUgMC45NDUgOwotICAgIEVORAotICBFTkQgRAotICBQSU4gUk4KLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDEuNjA1IDAuNjI1IDEuNzc1IDAuODY1IDsKLSAgICBFTkQKLSAgRU5EIFJOCi0gIFBJTiBRCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBPVVRQVVQgOwotICAgIEFOVEVOTkFESUZGQVJFQSAxLjcyODUgIExBWUVSIE1ldGFsMSA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjQzNSAwLjQxNSAwLjQ5NSAxLjM0IDsKLSAgICAgICAgUkVDVCAwLjQzNSAwLjYgMC41NCAwLjczIDsKLSAgICAgICAgUkVDVCAwLjQzNSAwLjY3IDAuOTA1IDAuNzMgOwotICAgICAgICBSRUNUIDAuODQ1IDAuNDE1IDAuOTA1IDEuMzQgOwotICAgIEVORAotICBFTkQgUQotICBQSU4gVkRECi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIFBPV0VSIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVkREIFZERCEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMS42NSA3LjQgMS43MSA7Ci0gICAgRU5ECi0gIEVORCBWREQKLSAgUElOIFZTUwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBHUk9VTkQgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWU1MgVlNTISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAwLjAwIDcuNCAwLjA2IDsKLSAgICBFTkQKLSAgRU5EIFZTUwotRU5EIERGRlNSSFFYNAotCi1NQUNSTyBOQU5ENEJYMgotICBDTEFTUyBDT1JFIDsKLSAgT1JJR0lOIDAgMCA7Ci0gIEZPUkVJR04gTkFORDRCWDIgMCAwIDsKLSAgU0laRSAyLjYgQlkgMS43MSA7Ci0gIFNZTU1FVFJZIFggWSA7Ci0gIFNJVEUgQ29yZVNpdGUgOwotICBQSU4gWQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gT1VUUFVUIDsKLSAgICBBTlRFTk5BRElGRkFSRUEgMS43Mjg1ICBMQVlFUiBNZXRhbDEgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC44ODUgMS4xMTUgMC45NDUgMS4zOTUgOwotICAgICAgICBSRUNUIDEuMTggMC42NTUgMS4yNCAxLjE3NSA7Ci0gICAgICAgIFJFQ1QgMS4yNiAxLjExNSAxLjM1NSAxLjMgOwotICAgICAgICBSRUNUIDEuMjk1IDEuMTE1IDEuMzU1IDEuMzk1IDsKLSAgICAgICAgUkVDVCAxLjcwNSAxLjExNSAxLjc2NSAxLjM5NSA7Ci0gICAgICAgIFJFQ1QgMC44ODUgMS4xMTUgMi4yMDUgMS4xNzUgOwotICAgICAgICBSRUNUIDIuMTE1IDEuMTE1IDIuMjA1IDEuMzk1IDsKLSAgICAgICAgUkVDVCAyLjIyIDAuNDU1IDIuMjggMC43MTUgOwotICAgICAgICBSRUNUIDEuMTggMC42NTUgMi4yOCAwLjcxNSA7Ci0gICAgICAgIFJFQ1QgMi4yMiAwLjQ1NSAyLjM1NSAwLjUxNSA7Ci0gICAgRU5ECi0gIEVORCBZCi0gIFBJTiBBTgotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMyAwLjcwNSAwLjI2IDAuNzkgOwotICAgICAgICBSRUNUIDAuMTggMC43MDUgMC4yNiAwLjg5NSA7Ci0gICAgICAgIFJFQ1QgMC4xOCAwLjgxNSAwLjQyIDAuODk1IDsKLSAgICBFTkQKLSAgRU5EIEFOCi0gIFBJTiBCCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAxLjM0IDAuODE1IDEuNTY1IDEuMDE1IDsKLSAgICBFTkQKLSAgRU5EIEIKLSAgUElOIEMKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDEuNjY1IDAuODE1IDEuOTY1IDEuMDE1IDsKLSAgICAgICAgUkVDVCAxLjY2NSAwLjg1IDIuMDQ1IDEuMDE1IDsKLSAgICBFTkQKLSAgRU5EIEMKLSAgUElOIEQKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDIuMTYgMC44MTUgMi41NyAwLjk3IDsKLSAgICAgICAgUkVDVCAyLjE0NSAwLjg5IDIuNTcgMC45NyA7Ci0gICAgRU5ECi0gIEVORCBECi0gIFBJTiBWREQKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgUE9XRVIgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWREQgVkREISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAxLjY1IDIuNiAxLjcxIDsKLSAgICBFTkQKLSAgRU5EIFZERAotICBQSU4gVlNTCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIEdST1VORCA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZTUyBWU1MhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDAuMDAgMi42IDAuMDYgOwotICAgIEVORAotICBFTkQgVlNTCi1FTkQgTkFORDRCWDIKLQotTUFDUk8gQU9JMkJCMVg0Ci0gIENMQVNTIENPUkUgOwotICBPUklHSU4gMCAwIDsKLSAgRk9SRUlHTiBBT0kyQkIxWDQgMCAwIDsKLSAgU0laRSAyLjQgQlkgMS43MSA7Ci0gIFNZTU1FVFJZIFggWSA7Ci0gIFNJVEUgQ29yZVNpdGUgOwotICBQSU4gWQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gT1VUUFVUIDsKLSAgICBBTlRFTk5BRElGRkFSRUEgMS43Mjg1ICBMQVlFUiBNZXRhbDEgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4xNzUgMC40NjUgMC4yMzUgMS4yNTUgOwotICAgICAgICBSRUNUIDAuMjM1IDEuMTk1IDAuMzY1IDEuMjc1IDsKLSAgICAgICAgUkVDVCAwLjQwNSAwLjM4NSAwLjQ2NSAwLjUyNSA7Ci0gICAgICAgIFJFQ1QgMC42MSAxLjE5NSAwLjY3IDEuNDc1IDsKLSAgICAgICAgUkVDVCAwLjgxNSAwLjM4NSAwLjg3NSAwLjUyNSA7Ci0gICAgICAgIFJFQ1QgMC4xNzUgMS4xOTUgMS4yOSAxLjI1NSA7Ci0gICAgICAgIFJFQ1QgMS4yMjUgMC4zODUgMS4yODUgMC41MjUgOwotICAgICAgICBSRUNUIDEuMjMgMS4xOTUgMS4yOSAxLjQ3NSA7Ci0gICAgICAgIFJFQ1QgMS42MzUgMC4zODUgMS42OTUgMC41MjUgOwotICAgICAgICBSRUNUIDAuMTc1IDAuNDY1IDEuNjk1IDAuNTI1IDsKLSAgICBFTkQKLSAgRU5EIFkKLSAgUElOIEEwTgotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMS44NiAwLjQzNSAxLjk0IDAuOTM1IDsKLSAgICBFTkQKLSAgRU5EIEEwTgotICBQSU4gQTFOCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAyLjI2IDAuNSAyLjM0IDEgOwotICAgIEVORAotICBFTkQgQTFOCi0gIFBJTiBCMAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC40NiAwLjc4NSAwLjU0IDAuOTIgOwotICAgICAgICBSRUNUIDAuMzM1IDAuNzg1IDEuNzU1IDAuODQ1IDsKLSAgICBFTkQKLSAgRU5EIEIwCi0gIFBJTiBWREQKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgUE9XRVIgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWREQgVkREISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAxLjY1IDIuNCAxLjcxIDsKLSAgICBFTkQKLSAgRU5EIFZERAotICBQSU4gVlNTCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIEdST1VORCA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZTUyBWU1MhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDAuMDAgMi40IDAuMDYgOwotICAgIEVORAotICBFTkQgVlNTCi1FTkQgQU9JMkJCMVg0Ci0KLU1BQ1JPIEFPMjJYMgotICBDTEFTUyBDT1JFIDsKLSAgT1JJR0lOIDAgMCA7Ci0gIEZPUkVJR04gQU8yMlgyIDAgMCA7Ci0gIFNJWkUgMS44IEJZIDEuNzEgOwotICBTWU1NRVRSWSBYIFkgOwotICBTSVRFIENvcmVTaXRlIDsKLSAgUElOIFkKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIE9VVFBVVCA7Ci0gICAgQU5URU5OQURJRkZBUkVBIDEuNzI4NSAgTEFZRVIgTWV0YWwxIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDEuNDYgMC40MTUgMS41MiAxLjExIDsKLSAgICAgICAgUkVDVCAxLjQ2NSAwLjk4IDEuNTQgMS40OCA7Ci0gICAgRU5ECi0gIEVORCBZCi0gIFBJTiBCMAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMS4wMjUgMC42NTUgMS4xMDUgMS4xMiA7Ci0gICAgICAgIFJFQ1QgMS4wMjUgMC45NTUgMS4xNCAxLjEyIDsKLSAgICBFTkQKLSAgRU5EIEIwCi0gIFBJTiBBMAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wOCAwLjYzIDAuMTYgMS4xMSA7Ci0gICAgICAgIFJFQ1QgMC4wNiAwLjk1NSAwLjE2IDEuMTEgOwotICAgIEVORAotICBFTkQgQTAKLSAgUElOIEIxCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjYzNSAwLjYwNSAwLjc2NSAwLjcwNSA7Ci0gICAgICAgIFJFQ1QgMC42ODUgMC42MDUgMC43NjUgMS4wNTUgOwotICAgIEVORAotICBFTkQgQjEKLSAgUElOIEExCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjI2IDAuNzkgMC4zNCAwLjkyIDsKLSAgICAgICAgUkVDVCAwLjI2IDAuODE1IDAuNTM1IDAuODk1IDsKLSAgICAgICAgUkVDVCAwLjQ1NSAwLjgxNSAwLjUzNSAxLjA3IDsKLSAgICBFTkQKLSAgRU5EIEExCi0gIFBJTiBWREQKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgUE9XRVIgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWREQgVkREISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAxLjY1IDEuOCAxLjcxIDsKLSAgICBFTkQKLSAgRU5EIFZERAotICBQSU4gVlNTCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIEdST1VORCA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZTUyBWU1MhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDAuMDAgMS44IDAuMDYgOwotICAgIEVORAotICBFTkQgVlNTCi1FTkQgQU8yMlgyCi0KLU1BQ1JPIE5PUjRYMgotICBDTEFTUyBDT1JFIDsKLSAgT1JJR0lOIDAgMCA7Ci0gIEZPUkVJR04gTk9SNFgyIDAgMCA7Ci0gIFNJWkUgMiBCWSAxLjcxIDsKLSAgU1lNTUVUUlkgWCBZIDsKLSAgU0lURSBDb3JlU2l0ZSA7Ci0gIFBJTiBZCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBPVVRQVVQgOwotICAgIEFOVEVOTkFESUZGQVJFQSAxLjcyODUgIExBWUVSIE1ldGFsMSA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjI3NSAwLjQ0NSAwLjM5NSAwLjUwNSA7Ci0gICAgICAgIFJFQ1QgMC43MTUgMC40NDUgMC44MzUgMC41MjUgOwotICAgICAgICBSRUNUIDEuMTU1IDAuNDQ1IDEuMjc1IDAuNTI1IDsKLSAgICAgICAgUkVDVCAxLjU5NSAwLjQ0NSAxLjcxNSAwLjUyNSA7Ci0gICAgICAgIFJFQ1QgMC4zNDUgMC40NjUgMS45NCAwLjUyNSA7Ci0gICAgICAgIFJFQ1QgMS44NiAxLjE3IDEuOTQgMS4zNDUgOwotICAgICAgICBSRUNUIDEuODggMC40NjUgMS45NCAxLjM0NSA7Ci0gICAgICAgIFJFQ1QgMS4wMSAxLjI4NSAxLjk0IDEuMzQ1IDsKLSAgICBFTkQKLSAgRU5EIFkKLSAgUElOIEEKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMjYgMC44MiAwLjMyIDEuMTg1IDsKLSAgICAgICAgUkVDVCAxLjY2IDAuOTggMS43NCAxLjE4NSA7Ci0gICAgICAgIFJFQ1QgMS42OCAwLjgyIDEuNzQgMS4xODUgOwotICAgICAgICBSRUNUIDAuMjYgMS4xMjUgMS43NCAxLjE4NSA7Ci0gICAgRU5ECi0gIEVORCBBCi0gIFBJTiBCCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjQyIDAuODM1IDAuNTQgMC44OTUgOwotICAgICAgICBSRUNUIDAuNDYgMC43OSAwLjU0IDAuOTIgOwotICAgICAgICBSRUNUIDAuNDggMC43OSAwLjU0IDEuMDI1IDsKLSAgICAgICAgUkVDVCAxLjQzNSAwLjg0NSAxLjQ5NSAxLjAyNSA7Ci0gICAgICAgIFJFQ1QgMC40OCAwLjk2NSAxLjQ5NSAxLjAyNSA7Ci0gICAgRU5ECi0gIEVORCBCCi0gIFBJTiBDCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAxLjI3NSAwLjYyNSAxLjMzNSAwLjg2NSA7Ci0gICAgICAgIFJFQ1QgMC42NCAwLjgwNSAxLjMzNSAwLjg2NSA7Ci0gICAgICAgIFJFQ1QgMS4yNzUgMC42MjUgMS41NjUgMC43MDUgOwotICAgIEVORAotICBFTkQgQwotICBQSU4gRAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC42NCAwLjYyNSAxLjE0IDAuNzA1IDsKLSAgICBFTkQKLSAgRU5EIEQKLSAgUElOIFZERAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBQT1dFUiA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZERCBWREQhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDEuNjUgMiAxLjcxIDsKLSAgICBFTkQKLSAgRU5EIFZERAotICBQSU4gVlNTCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIEdST1VORCA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZTUyBWU1MhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDAuMDAgMiAwLjA2IDsKLSAgICBFTkQKLSAgRU5EIFZTUwotRU5EIE5PUjRYMgotCi1NQUNSTyBERkZRWDEKLSAgQ0xBU1MgQ09SRSA7Ci0gIE9SSUdJTiAwIDAgOwotICBGT1JFSUdOIERGRlFYMSAwIDAgOwotICBTSVpFIDMuNCBCWSAxLjcxIDsKLSAgU1lNTUVUUlkgWCBZIDsKLSAgU0lURSBDb3JlU2l0ZSA7Ci0gIFBJTiBRCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBPVVRQVVQgOwotICAgIEFOVEVOTkFESUZGQVJFQSAxLjcyODUgIExBWUVSIE1ldGFsMSA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjA2IDAuNiAwLjE3NSAwLjczIDsKLSAgICAgICAgUkVDVCAwLjA5NSAwLjQ4IDAuMTc1IDEuNDQgOwotICAgIEVORAotICBFTkQgUQotICBQSU4gRAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMi43NiAxLjAwNSAyLjk2NSAxLjE3NSA7Ci0gICAgICAgIFJFQ1QgMi43NiAxLjAwNSAzLjE3IDEuMDg1IDsKLSAgICBFTkQKLSAgRU5EIEQKLSAgUElOIENLCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjQ2IDAuNzIgMC41NCAxLjIyIDsKLSAgICBFTkQKLSAgRU5EIENLCi0gIFBJTiBWREQKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgUE9XRVIgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWREQgVkREISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAxLjY1IDMuNCAxLjcxIDsKLSAgICBFTkQKLSAgRU5EIFZERAotICBQSU4gVlNTCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIEdST1VORCA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZTUyBWU1MhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDAuMDAgMy40IDAuMDYgOwotICAgIEVORAotICBFTkQgVlNTCi1FTkQgREZGUVgxCi0KLU1BQ1JPIE1YMlhMCi0gIENMQVNTIENPUkUgOwotICBPUklHSU4gMCAwIDsKLSAgRk9SRUlHTiBNWDJYTCAwIDAgOwotICBTSVpFIDEuNiBCWSAxLjcxIDsKLSAgU1lNTUVUUlkgWCBZIDsKLSAgU0lURSBDb3JlU2l0ZSA7Ci0gIFBJTiBZCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBPVVRQVVQgOwotICAgIEFOVEVOTkFESUZGQVJFQSAxLjcyODUgIExBWUVSIE1ldGFsMSA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAxLjQ2IDAuMjYgMS41MiAxLjM4NSA7Ci0gICAgICAgIFJFQ1QgMS40NiAwLjk4IDEuNTQgMS4xMSA7Ci0gICAgRU5ECi0gIEVORCBZCi0gIFBJTiBCCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAxLjIxNSAwLjg0IDEuMjk1IDEuMjQ1IDsKLSAgICAgICAgUkVDVCAxLjI2IDAuNzkgMS4zNCAwLjkyIDsKLSAgICBFTkQKLSAgRU5EIEIKLSAgUElOIEEKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuNDk1IDAuNjE1IDAuNTc1IDEuMDggOwotICAgICAgICBSRUNUIDAuNDYgMC43OSAwLjU3NSAxLjA4IDsKLSAgICBFTkQKLSAgRU5EIEEKLSAgUElOIFMwCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjI2IDAuOTggMC4zNiAxLjExIDsKLSAgICAgICAgUkVDVCAwLjI4IDAuOTggMC4zNiAxLjI2IDsKLSAgICAgICAgUkVDVCAwLjY3NSAxLjAwNSAwLjc1NSAxLjI2IDsKLSAgICAgICAgUkVDVCAwLjI4IDEuMTggMC43NTUgMS4yNiA7Ci0gICAgICAgIFJFQ1QgMC42NzUgMS4wMDUgMC43OTUgMS4wODUgOwotICAgIEVORAotICBFTkQgUzAKLSAgUElOIFZERAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBQT1dFUiA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZERCBWREQhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDEuNjUgMS42IDEuNzEgOwotICAgIEVORAotICBFTkQgVkRECi0gIFBJTiBWU1MKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgR1JPVU5EIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVlNTIFZTUyEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMC4wMCAxLjYgMC4wNiA7Ci0gICAgRU5ECi0gIEVORCBWU1MKLUVORCBNWDJYTAotCi1NQUNSTyBYT1IyWDEKLSAgQ0xBU1MgQ09SRSA7Ci0gIE9SSUdJTiAwIDAgOwotICBGT1JFSUdOIFhPUjJYMSAwIDAgOwotICBTSVpFIDEuOCBCWSAxLjcxIDsKLSAgU1lNTUVUUlkgWCBZIDsKLSAgU0lURSBDb3JlU2l0ZSA7Ci0gIFBJTiBZCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBPVVRQVVQgOwotICAgIEFOVEVOTkFESUZGQVJFQSAxLjcyODUgIExBWUVSIE1ldGFsMSA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjA4NSAwLjUyIDAuMTQ1IDAuNzMgOwotICAgICAgICBSRUNUIDAuMDYgMC42IDAuMTQ1IDAuNzMgOwotICAgICAgICBSRUNUIDAuMTQgMC42NyAwLjIgMS4yOSA7Ci0gICAgRU5ECi0gIEVORCBZCi0gIFBJTiBCCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjggMC44MzUgMS4wMzUgMC44OTUgOwotICAgICAgICBSRUNUIDEuMjM1IDAuODE1IDEuMzY1IDAuODk1IDsKLSAgICAgICAgUkVDVCAwLjk3NSAwLjgxNSAxLjUzNSAwLjg3NSA7Ci0gICAgRU5ECi0gIEVORCBCCi0gIFBJTiBBCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjQ2IDAuNzMgMC41NCAxLjIzIDsKLSAgICBFTkQKLSAgRU5EIEEKLSAgUElOIFZERAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBQT1dFUiA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZERCBWREQhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDEuNjUgMS44IDEuNzEgOwotICAgIEVORAotICBFTkQgVkRECi0gIFBJTiBWU1MKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgR1JPVU5EIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVlNTIFZTUyEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMC4wMCAxLjggMC4wNiA7Ci0gICAgRU5ECi0gIEVORCBWU1MKLUVORCBYT1IyWDEKLQotTUFDUk8gTkFORDRYNAotICBDTEFTUyBDT1JFIDsKLSAgT1JJR0lOIDAgMCA7Ci0gIEZPUkVJR04gTkFORDRYNCAwIDAgOwotICBTSVpFIDQgQlkgMS43MSA7Ci0gIFNZTU1FVFJZIFggWSA7Ci0gIFNJVEUgQ29yZVNpdGUgOwotICBQSU4gWQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gT1VUUFVUIDsKLSAgICBBTlRFTk5BRElGRkFSRUEgMS43Mjg1ICBMQVlFUiBNZXRhbDEgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4yNzUgMC45NzUgMC4zMzUgMS4zNjUgOwotICAgICAgICBSRUNUIDAuNjk1IDAuOTc1IDAuNzU1IDEuMzY1IDsKLSAgICAgICAgUkVDVCAxLjA4IDAuNjU1IDEuMTQgMS4xMSA7Ci0gICAgICAgIFJFQ1QgMS4wNiAwLjk5NSAxLjE5IDEuMTEgOwotICAgICAgICBSRUNUIDAuMjc1IDAuOTc1IDEuMTQgMS4wMzUgOwotICAgICAgICBSRUNUIDEuMTMgMC45OTUgMS4xOSAxLjM2NSA7Ci0gICAgICAgIFJFQ1QgMS41NCAwLjk5NSAxLjYgMS4zNjUgOwotICAgICAgICBSRUNUIDEuOTg1IDAuOTk1IDIuMDQ1IDEuMzY1IDsKLSAgICAgICAgUkVDVCAyLjM5NSAwLjk5NSAyLjQ1NSAxLjM2NSA7Ci0gICAgICAgIFJFQ1QgMi43NDUgMC41MjUgMi44MDUgMC43MTUgOwotICAgICAgICBSRUNUIDEuMDggMC42NTUgMi44MDUgMC43MTUgOwotICAgICAgICBSRUNUIDIuOTcgMC45OTUgMy4wMyAxLjM2NSA7Ci0gICAgICAgIFJFQ1QgMy4yMDUgMC40NDUgMy4yNjUgMC41ODUgOwotICAgICAgICBSRUNUIDEuMDYgMC45OTUgMy40NCAxLjA1NSA7Ci0gICAgICAgIFJFQ1QgMy4zOCAwLjk5NSAzLjQ0IDEuMzY1IDsKLSAgICAgICAgUkVDVCAzLjYzNSAwLjQ0NSAzLjY5NSAwLjU4NSA7Ci0gICAgICAgIFJFQ1QgMi43NDUgMC41MjUgMy42OTUgMC41ODUgOwotICAgIEVORAotICBFTkQgWQotICBQSU4gQQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4yMyAwLjYyNSAwLjczIDAuNzA1IDsKLSAgICBFTkQKLSAgRU5EIEEKLSAgUElOIEIKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDEuMjQgMC44MTUgMS43NCAwLjg5NSA7Ci0gICAgRU5ECi0gIEVORCBCCi0gIFBJTiBDCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAyLjgzNSAwLjgxNSAyLjk2NSAwLjg5NSA7Ci0gICAgICAgIFJFQ1QgMi45MDUgMC42ODUgMi45NjUgMC44OTUgOwotICAgICAgICBSRUNUIDIuMDk1IDAuODM1IDIuOTY1IDAuODk1IDsKLSAgICAgICAgUkVDVCAyLjkwNSAwLjY4NSAzLjAyNSAwLjc0NSA7Ci0gICAgRU5ECi0gIEVORCBDCi0gIFBJTiBECi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAzLjQ2NSAwLjY4NSAzLjU0NSAwLjg5NSA7Ci0gICAgICAgIFJFQ1QgMy4xMDUgMC44MTUgMy41NDUgMC44OTUgOwotICAgICAgICBSRUNUIDMuNDY1IDAuNjg1IDMuNTg1IDAuNzY1IDsKLSAgICBFTkQKLSAgRU5EIEQKLSAgUElOIFZERAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBQT1dFUiA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZERCBWREQhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDEuNjUgNCAxLjcxIDsKLSAgICBFTkQKLSAgRU5EIFZERAotICBQSU4gVlNTCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIEdST1VORCA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZTUyBWU1MhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDAuMDAgNCAwLjA2IDsKLSAgICBFTkQKLSAgRU5EIFZTUwotRU5EIE5BTkQ0WDQKLQotTUFDUk8gQU9JMkJCMVgxCi0gIENMQVNTIENPUkUgOwotICBPUklHSU4gMCAwIDsKLSAgRk9SRUlHTiBBT0kyQkIxWDEgMCAwIDsKLSAgU0laRSAxLjIgQlkgMS43MSA7Ci0gIFNZTU1FVFJZIFggWSA7Ci0gIFNJVEUgQ29yZVNpdGUgOwotICBQSU4gWQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gT1VUUFVUIDsKLSAgICBBTlRFTk5BRElGRkFSRUEgMS43Mjg1ICBMQVlFUiBNZXRhbDEgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wNiAwLjYgMC4xNCAwLjczIDsKLSAgICAgICAgUkVDVCAwLjA4IDAuNDM1IDAuMTQgMC44MTUgOwotICAgICAgICBSRUNUIDAuMDggMC43NTUgMC4zMSAwLjgxNSA7Ci0gICAgICAgIFJFQ1QgMC4yNSAwLjc1NSAwLjMxIDEuNDc1IDsKLSAgICAgICAgUkVDVCAwLjA4IDAuNDM1IDAuNDIgMC40OTUgOwotICAgICAgICBSRUNUIDAuMzcgMC40MTUgMC40OSAwLjQ3NSA7Ci0gICAgRU5ECi0gIEVORCBZCi0gIFBJTiBCMAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC40NiAwLjk4IDAuNTQgMS4yMzUgOwotICAgICAgICBSRUNUIDAuNDggMC43NTUgMC41NiAxLjA2IDsKLSAgICBFTkQKLSAgRU5EIEIwCi0gIFBJTiBBME4KLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuNjYgMC43NTUgMC43NCAxLjI1NSA7Ci0gICAgRU5ECi0gIEVORCBBME4KLSAgUElOIEExTgotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMSAwLjY3IDEuMDggMS4wNiA7Ci0gICAgICAgIFJFQ1QgMS4wNiAwLjk4IDEuMTQgMS4xMSA7Ci0gICAgRU5ECi0gIEVORCBBMU4KLSAgUElOIFZERAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBQT1dFUiA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZERCBWREQhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDEuNjUgMS4yIDEuNzEgOwotICAgIEVORAotICBFTkQgVkRECi0gIFBJTiBWU1MKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgR1JPVU5EIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVlNTIFZTUyEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMC4wMCAxLjIgMC4wNiA7Ci0gICAgRU5ECi0gIEVORCBWU1MKLUVORCBBT0kyQkIxWDEKLQotTUFDUk8gQ0xLSU5WWDE2Ci0gIENMQVNTIENPUkUgOwotICBPUklHSU4gMCAwIDsKLSAgRk9SRUlHTiBDTEtJTlZYMTYgMCAwIDsKLSAgU0laRSAzLjIgQlkgMS43MSA7Ci0gIFNZTU1FVFJZIFggWSA7Ci0gIFNJVEUgQ29yZVNpdGUgOwotICBQSU4gWQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gT1VUUFVUIDsKLSAgICBBTlRFTk5BRElGRkFSRUEgMS43Mjg1ICBMQVlFUiBNZXRhbDEgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC40MDUgMC45OTUgMC40NjUgMS4zNDUgOwotICAgICAgICBSRUNUIDAuMzc1IDAuNTcgMC40OTUgMC42MyA7Ci0gICAgICAgIFJFQ1QgMC44MTUgMC45OTUgMC44OTUgMS4zNDUgOwotICAgICAgICBSRUNUIDAuNzg1IDAuNTcgMC45MDUgMC42NDUgOwotICAgICAgICBSRUNUIDEuMjI1IDAuOTk1IDEuMjg1IDEuMzQ1IDsKLSAgICAgICAgUkVDVCAxLjE5NSAwLjU3IDEuMzE1IDAuNjQ1IDsKLSAgICAgICAgUkVDVCAwLjQwNSAwLjk5NSAxLjY5NSAxLjA1NSA7Ci0gICAgICAgIFJFQ1QgMS42MzUgMC45MyAxLjY5NSAxLjM0NSA7Ci0gICAgICAgIFJFQ1QgMS42MDUgMC41NyAxLjcyNSAwLjY0NSA7Ci0gICAgICAgIFJFQ1QgMi4wNDUgMC45MyAyLjEwNSAxLjM0NSA7Ci0gICAgICAgIFJFQ1QgMi4wMTUgMC41NyAyLjEzNSAwLjY0NSA7Ci0gICAgICAgIFJFQ1QgMi40NTUgMC45MyAyLjUxNSAxLjM0NSA7Ci0gICAgICAgIFJFQ1QgMi40MjUgMC41NyAyLjU0NSAwLjY0NSA7Ci0gICAgICAgIFJFQ1QgMi44NjUgMC41MjUgMi45MjUgMC42NDUgOwotICAgICAgICBSRUNUIDAuNDUgMC41ODUgMi45NyAwLjY0NSA7Ci0gICAgICAgIFJFQ1QgMi44NjUgMC45MyAyLjkyNSAxLjM0NSA7Ci0gICAgICAgIFJFQ1QgMi44NiAwLjkzIDIuOTQgMS4xMSA7Ci0gICAgICAgIFJFQ1QgMi45MSAwLjU4NSAyLjk3IDAuOTkgOwotICAgICAgICBSRUNUIDEuNjM1IDAuOTMgMi45NyAwLjk5IDsKLSAgICBFTkQKLSAgRU5EIFkKLSAgUElOIEEKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuNjM1IDAuNzcgMC43NjUgMC44OTUgOwotICAgICAgICBSRUNUIDAuNTE1IDAuNzcgMi44MSAwLjgzIDsKLSAgICBFTkQKLSAgRU5EIEEKLSAgUElOIFZERAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBQT1dFUiA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZERCBWREQhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDEuNjUgMy4yIDEuNzEgOwotICAgIEVORAotICBFTkQgVkRECi0gIFBJTiBWU1MKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgR1JPVU5EIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVlNTIFZTUyEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMC4wMCAzLjIgMC4wNiA7Ci0gICAgRU5ECi0gIEVORCBWU1MKLUVORCBDTEtJTlZYMTYKLQotTUFDUk8gQlVGWDgKLSAgQ0xBU1MgQ09SRSA7Ci0gIE9SSUdJTiAwIDAgOwotICBGT1JFSUdOIEJVRlg4IDAgMCA7Ci0gIFNJWkUgMi4yIEJZIDEuNzEgOwotICBTWU1NRVRSWSBYIFkgOwotICBTSVRFIENvcmVTaXRlIDsKLSAgUElOIFkKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIE9VVFBVVCA7Ci0gICAgQU5URU5OQURJRkZBUkVBIDEuNzI4NSAgTEFZRVIgTWV0YWwxIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMjI1IDAuNTA1IDAuMjg1IDAuNjI1IDsKLSAgICAgICAgUkVDVCAwLjIyNSAwLjkzIDAuMjg1IDEuMzc1IDsKLSAgICAgICAgUkVDVCAwLjI2IDAuNTY1IDAuMzIgMC45OSA7Ci0gICAgICAgIFJFQ1QgMC4yNiAwLjU2NSAwLjM0IDAuNzMgOwotICAgICAgICBSRUNUIDAuNjM1IDAuOTMgMC42OTUgMS4zNzUgOwotICAgICAgICBSRUNUIDAuNjA1IDAuNTUgMC43MjUgMC42MjUgOwotICAgICAgICBSRUNUIDEuMDQ1IDAuOTMgMS4xMDUgMS4zNzUgOwotICAgICAgICBSRUNUIDEuMDE1IDAuNTUgMS4xMzUgMC42MjUgOwotICAgICAgICBSRUNUIDAuMjI1IDAuOTMgMS41MTUgMC45OSA7Ci0gICAgICAgIFJFQ1QgMC4yMjUgMC41NjUgMS40NTUgMC42MjUgOwotICAgICAgICBSRUNUIDEuNDU1IDAuOTMgMS41MTUgMS4zNzUgOwotICAgICAgICBSRUNUIDEuNDEgMC41NSAxLjU0NSAwLjYxIDsKLSAgICBFTkQKLSAgRU5EIFkKLSAgUElOIEEKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDIuMDYgMC42IDIuMTQgMS4xIDsKLSAgICBFTkQKLSAgRU5EIEEKLSAgUElOIFZERAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBQT1dFUiA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZERCBWREQhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDEuNjUgMi4yIDEuNzEgOwotICAgIEVORAotICBFTkQgVkRECi0gIFBJTiBWU1MKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgR1JPVU5EIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVlNTIFZTUyEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMC4wMCAyLjIgMC4wNiA7Ci0gICAgRU5ECi0gIEVORCBWU1MKLUVORCBCVUZYOAotCi1NQUNSTyBBTkQyWDEKLSAgQ0xBU1MgQ09SRSA7Ci0gIE9SSUdJTiAwIDAgOwotICBGT1JFSUdOIEFORDJYMSAwIDAgOwotICBTSVpFIDEgQlkgMS43MSA7Ci0gIFNZTU1FVFJZIFggWSA7Ci0gIFNJVEUgQ29yZVNpdGUgOwotICBQSU4gWQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gT1VUUFVUIDsKLSAgICBBTlRFTk5BRElGRkFSRUEgMS43Mjg1ICBMQVlFUiBNZXRhbDEgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC44MiAwLjUzIDAuOTY1IDAuNzA1IDsKLSAgICAgICAgUkVDVCAwLjg3IDAuNTMgMC45NjUgMS40OCA7Ci0gICAgRU5ECi0gIEVORCBZCi0gIFBJTiBBCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjQ3IDAuNzcgMC41NSAxLjI2IDsKLSAgICAgICAgUkVDVCAwLjQ2IDAuOTggMC41NSAxLjI2IDsKLSAgICBFTkQKLSAgRU5EIEEKLSAgUElOIEIKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDYgMC43OSAwLjE0IDAuOTIgOwotICAgICAgICBSRUNUIDAuMTIgMC44IDAuMiAxLjIzIDsKLSAgICBFTkQKLSAgRU5EIEIKLSAgUElOIFZERAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBQT1dFUiA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZERCBWREQhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDEuNjUgMSAxLjcxIDsKLSAgICBFTkQKLSAgRU5EIFZERAotICBQSU4gVlNTCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIEdST1VORCA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZTUyBWU1MhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDAuMDAgMSAwLjA2IDsKLSAgICBFTkQKLSAgRU5EIFZTUwotRU5EIEFORDJYMQotCi1NQUNSTyBOQU5ENFgyCi0gIENMQVNTIENPUkUgOwotICBPUklHSU4gMCAwIDsKLSAgRk9SRUlHTiBOQU5ENFgyIDAgMCA7Ci0gIFNJWkUgMi4yIEJZIDEuNzEgOwotICBTWU1NRVRSWSBYIFkgOwotICBTSVRFIENvcmVTaXRlIDsKLSAgUElOIFkKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIE9VVFBVVCA7Ci0gICAgQU5URU5OQURJRkZBUkVBIDEuNzI4NSAgTEFZRVIgTWV0YWwxIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMzIgMS4yODUgMC4zOCAxLjQwNSA7Ci0gICAgICAgIFJFQ1QgMC43OSAxLjI4NSAwLjg1IDEuNDA1IDsKLSAgICAgICAgUkVDVCAxLjA3IDAuNDQ1IDEuMjM1IDAuNTA1IDsKLSAgICAgICAgUkVDVCAxLjI2IDEuMjg1IDEuMzIgMS40MDUgOwotICAgICAgICBSRUNUIDEuNzMgMS4yODUgMS43OSAxLjQwNSA7Ci0gICAgICAgIFJFQ1QgMS4xODUgMC40NjUgMi4xMiAwLjUyNSA7Ci0gICAgICAgIFJFQ1QgMi4wNiAwLjQ2NSAyLjEyIDEuMzQ1IDsKLSAgICAgICAgUkVDVCAyLjA2IDEuMTcgMi4xNCAxLjM0NSA7Ci0gICAgICAgIFJFQ1QgMC4zMiAxLjI4NSAyLjE0IDEuMzQ1IDsKLSAgICBFTkQKLSAgRU5EIFkKLSAgUElOIEEKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMjYgMC44MiAwLjMyIDEuMTg1IDsKLSAgICAgICAgUkVDVCAxLjg2IDAuODIgMS45NCAxLjE4NSA7Ci0gICAgICAgIFJFQ1QgMC4yNiAxLjEyNSAxLjk0IDEuMTg1IDsKLSAgICBFTkQKLSAgRU5EIEEKLSAgUElOIEIKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuNDIgMC44MzUgMC41NCAwLjg5NSA7Ci0gICAgICAgIFJFQ1QgMC40NiAwLjc5IDAuNTQgMC45MiA7Ci0gICAgICAgIFJFQ1QgMC40OCAwLjc5IDAuNTQgMS4wMjUgOwotICAgICAgICBSRUNUIDEuNiAwLjg0NSAxLjY2IDEuMDI1IDsKLSAgICAgICAgUkVDVCAwLjQ4IDAuOTY1IDEuNjYgMS4wMjUgOwotICAgIEVORAotICBFTkQgQgotICBQSU4gQwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMS4yMzUgMC42MjUgMS4zOTUgMC43MDUgOwotICAgICAgICBSRUNUIDEuMzM1IDAuNjI1IDEuMzk1IDAuODY1IDsKLSAgICAgICAgUkVDVCAwLjY4NSAwLjgwNSAxLjM5NSAwLjg2NSA7Ci0gICAgRU5ECi0gIEVORCBDCi0gIFBJTiBECi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjg2IDAuNCAwLjk0IDAuNzA1IDsKLSAgICAgICAgUkVDVCAwLjg2IDAuNjI1IDEuMTM1IDAuNzA1IDsKLSAgICBFTkQKLSAgRU5EIEQKLSAgUElOIFZERAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBQT1dFUiA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZERCBWREQhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDEuNjUgMi4yIDEuNzEgOwotICAgIEVORAotICBFTkQgVkRECi0gIFBJTiBWU1MKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgR1JPVU5EIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVlNTIFZTUyEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMC4wMCAyLjIgMC4wNiA7Ci0gICAgRU5ECi0gIEVORCBWU1MKLUVORCBOQU5ENFgyCi0KLU1BQ1JPIERGRlNSSFFYMQotICBDTEFTUyBDT1JFIDsKLSAgT1JJR0lOIDAgMCA7Ci0gIEZPUkVJR04gREZGU1JIUVgxIDAgMCA7Ci0gIFNJWkUgNi40IEJZIDEuNzEgOwotICBTWU1NRVRSWSBYIFkgOwotICBTSVRFIENvcmVTaXRlIDsKLSAgUElOIFEKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIE9VVFBVVCA7Ci0gICAgQU5URU5OQURJRkZBUkVBIDEuNzI4NSAgTEFZRVIgTWV0YWwxIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDYgMC42IDAuMTQgMC43MyA7Ci0gICAgICAgIFJFQ1QgMC4wOCAwLjU0IDAuMTQgMS4yOSA7Ci0gICAgRU5ECi0gIEVORCBRCi0gIFBJTiBDSwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgNi4wMzUgMC40NDUgNi4xMTUgMC44OTUgOwotICAgICAgICBSRUNUIDYuMDM1IDAuODE1IDYuMTY1IDAuODk1IDsKLSAgICBFTkQKLSAgRU5EIENLCi0gIFBJTiBECi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCA1LjE2NSAwLjgwNSA1LjI0NSAxLjAwNSA7Ci0gICAgICAgIFJFQ1QgNS4xNjUgMC44MTUgNS4yNTUgMS4wMDUgOwotICAgICAgICBSRUNUIDUuMTY1IDAuODE1IDUuNTQ1IDAuODk1IDsKLSAgICBFTkQKLSAgRU5EIEQKLSAgUElOIFNOCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAxLjQyIDAuNzc1IDEuNTQgMC44MzUgOwotICAgICAgICBSRUNUIDEuNDYgMC43NzUgMS41MiAxLjI2IDsKLSAgICAgICAgUkVDVCAxLjQ2IDAuNzc1IDEuNTQgMC45MiA7Ci0gICAgICAgIFJFQ1QgMS40NiAxLjIgMS45IDEuMjYgOwotICAgICAgICBSRUNUIDEuODQgMS4xNCAyLjM1NSAxLjIgOwotICAgICAgICBSRUNUIDIuMjk1IDEuMTQgMi4zNTUgMS4zNDUgOwotICAgICAgICBSRUNUIDMuMyAxLjIyIDMuMzYgMS4zNDUgOwotICAgICAgICBSRUNUIDIuMjk1IDEuMjg1IDMuMzYgMS4zNDUgOwotICAgICAgICBSRUNUIDMuMyAxLjIyIDMuNzQgMS4yOCA7Ci0gICAgICAgIFJFQ1QgMy42OCAxLjIyIDMuNzQgMS40NCA7Ci0gICAgICAgIFJFQ1QgMy42OCAxLjM4IDMuOTkgMS40NCA7Ci0gICAgRU5ECi0gIEVORCBTTgotICBQSU4gUk4KLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuOTI1IDAuNzEgMS4xMTUgMC43OSA7Ci0gICAgICAgIFJFQ1QgMS4wMzUgMC43MSAxLjExNSAwLjg5NSA7Ci0gICAgICAgIFJFQ1QgMS4wMzUgMC44MTUgMS4zMiAwLjg5NSA7Ci0gICAgRU5ECi0gIEVORCBSTgotICBQSU4gVkRECi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIFBPV0VSIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVkREIFZERCEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMS42NSA2LjQgMS43MSA7Ci0gICAgRU5ECi0gIEVORCBWREQKLSAgUElOIFZTUwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBHUk9VTkQgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWU1MgVlNTISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAwLjAwIDYuNCAwLjA2IDsKLSAgICBFTkQKLSAgRU5EIFZTUwotRU5EIERGRlNSSFFYMQotCi1NQUNSTyBUTEFUTlRTQ0FYMwotICBDTEFTUyBDT1JFIDsKLSAgT1JJR0lOIDAgMCA7Ci0gIEZPUkVJR04gVExBVE5UU0NBWDMgMCAwIDsKLSAgU0laRSA0IEJZIDEuNzEgOwotICBTWU1NRVRSWSBYIFkgOwotICBTSVRFIENvcmVTaXRlIDsKLSAgUElOIEVDSwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gT1VUUFVUIDsKLSAgICBBTlRFTk5BRElGRkFSRUEgMS43Mjg1ICBMQVlFUiBNZXRhbDEgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMy40MTUgMC45IDMuNDc1IDEuMjkgOwotICAgICAgICBSRUNUIDMuNDYgMC41MiAzLjUyIDAuOTYgOwotICAgICAgICBSRUNUIDMuNDYgMC42IDMuNTQgMC43MyA7Ci0gICAgICAgIFJFQ1QgMy40MTUgMC45IDMuODg1IDAuOTYgOwotICAgICAgICBSRUNUIDMuODI1IDAuOSAzLjg4NSAxLjI5IDsKLSAgICAgICAgUkVDVCAzLjg3IDAuNTIgMy45MyAwLjY2IDsKLSAgICAgICAgUkVDVCAzLjQ2IDAuNiAzLjkzIDAuNjYgOwotICAgIEVORAotICBFTkQgRUNLCi0gIFBJTiBDSwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC42NiAwLjQ1IDAuNzY1IDAuOTI1IDsKLSAgICBFTkQKLSAgRU5EIENLCi0gIFBJTiBTRQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC40MzUgMC42IDAuNTE1IDAuOTI1IDsKLSAgICAgICAgUkVDVCAwLjQ2IDAuNDUgMC41NCAwLjczIDsKLSAgICBFTkQKLSAgRU5EIFNFCi0gIFBJTiBFCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAzNSAwLjUyNSAwLjE3NSAwLjg5NSA7Ci0gICAgRU5ECi0gIEVORCBFCi0gIFBJTiBWREQKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgUE9XRVIgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWREQgVkREISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAxLjY1IDQgMS43MSA7Ci0gICAgRU5ECi0gIEVORCBWREQKLSAgUElOIFZTUwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBHUk9VTkQgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWU1MgVlNTISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAwLjAwIDQgMC4wNiA7Ci0gICAgRU5ECi0gIEVORCBWU1MKLUVORCBUTEFUTlRTQ0FYMwotCi1NQUNSTyBCVUZYMTYKLSAgQ0xBU1MgQ09SRSA7Ci0gIE9SSUdJTiAwIDAgOwotICBGT1JFSUdOIEJVRlgxNiAwIDAgOwotICBTSVpFIDQgQlkgMS43MSA7Ci0gIFNZTU1FVFJZIFggWSA7Ci0gIFNJVEUgQ29yZVNpdGUgOwotICBQSU4gWQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gT1VUUFVUIDsKLSAgICBBTlRFTk5BRElGRkFSRUEgMS43Mjg1ICBMQVlFUiBNZXRhbDEgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4yMyAwLjU4NSAwLjI5IDAuOTY1IDsKLSAgICAgICAgUkVDVCAwLjI3NSAwLjUyNSAwLjMzNSAwLjY0NSA7Ci0gICAgICAgIFJFQ1QgMC4yNiAwLjkwNSAwLjMzNSAxLjM0NSA7Ci0gICAgICAgIFJFQ1QgMC4yNiAwLjkwNSAwLjM0IDEuMTEgOwotICAgICAgICBSRUNUIDAuNjg1IDAuOTA1IDAuNzQ1IDEuMzQ1IDsKLSAgICAgICAgUkVDVCAwLjY1NSAwLjU3IDAuNzc1IDAuNjQ1IDsKLSAgICAgICAgUkVDVCAxLjA5NSAwLjkwNSAxLjE1NSAxLjM0NSA7Ci0gICAgICAgIFJFQ1QgMS4wNjUgMC41NyAxLjE4NSAwLjY0NSA7Ci0gICAgICAgIFJFQ1QgMS41MDUgMC45MDUgMS41NjUgMS4zNDUgOwotICAgICAgICBSRUNUIDEuNDc1IDAuNTcgMS41OTUgMC42NDUgOwotICAgICAgICBSRUNUIDEuOTE1IDAuOTA1IDEuOTc1IDEuMzQ1IDsKLSAgICAgICAgUkVDVCAxLjg4NSAwLjU3IDIuMDA1IDAuNjQ1IDsKLSAgICAgICAgUkVDVCAyLjMyNSAwLjkwNSAyLjM4NSAxLjM0NSA7Ci0gICAgICAgIFJFQ1QgMi4yOTUgMC41NyAyLjQxNSAwLjY0NSA7Ci0gICAgICAgIFJFQ1QgMC4yMyAwLjkwNSAyLjc5NSAwLjk2NSA7Ci0gICAgICAgIFJFQ1QgMC4yMyAwLjU4NSAyLjczNSAwLjY0NSA7Ci0gICAgICAgIFJFQ1QgMi43MzUgMC45MDUgMi43OTUgMS4zNDUgOwotICAgICAgICBSRUNUIDIuNjkgMC41NyAyLjgyNSAwLjYzIDsKLSAgICBFTkQKLSAgRU5EIFkKLSAgUElOIEEKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDMuMjYgMC44MTUgMy43NiAwLjg5NSA7Ci0gICAgRU5ECi0gIEVORCBBCi0gIFBJTiBWREQKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgUE9XRVIgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWREQgVkREISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAxLjY1IDQgMS43MSA7Ci0gICAgRU5ECi0gIEVORCBWREQKLSAgUElOIFZTUwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBHUk9VTkQgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWU1MgVlNTISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAwLjAwIDQgMC4wNiA7Ci0gICAgRU5ECi0gIEVORCBWU1MKLUVORCBCVUZYMTYKLQotTUFDUk8gQU9JMzNYTAotICBDTEFTUyBDT1JFIDsKLSAgT1JJR0lOIDAgMCA7Ci0gIEZPUkVJR04gQU9JMzNYTCAwIDAgOwotICBTSVpFIDEuNiBCWSAxLjcxIDsKLSAgU1lNTUVUUlkgWCBZIDsKLSAgU0lURSBDb3JlU2l0ZSA7Ci0gIFBJTiBZCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBPVVRQVVQgOwotICAgIEFOVEVOTkFESUZGQVJFQSAxLjcyODUgIExBWUVSIE1ldGFsMSA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjgwNSAwLjI5IDAuODY1IDAuNDEgOwotICAgICAgICBSRUNUIDEuMDQgMS4xMSAxLjEgMS4yNjUgOwotICAgICAgICBSRUNUIDAuODA1IDAuMzUgMS41MSAwLjQxIDsKLSAgICAgICAgUkVDVCAxLjQ1IDAuMzUgMS41MSAxLjMgOwotICAgICAgICBSRUNUIDEuMDQgMS4xMSAxLjUxIDEuMTcgOwotICAgICAgICBSRUNUIDEuNDUgMS4xNyAxLjU0IDEuMyA7Ci0gICAgRU5ECi0gIEVORCBZCi0gIFBJTiBBMAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4yNiAwLjYgMC4zNCAxLjEgOwotICAgIEVORAotICBFTkQgQTAKLSAgUElOIEEyCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjY2IDAuNiAwLjc0IDEuMSA7Ci0gICAgRU5ECi0gIEVORCBBMgotICBQSU4gQjEKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDEuMDYgMC41MSAxLjE0IDAuOTkgOwotICAgICAgICBSRUNUIDEuMDYgMC41MSAxLjE2IDAuNjMgOwotICAgIEVORAotICBFTkQgQjEKLSAgUElOIEIwCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAxLjI2IDAuNTEgMS4zNCAxLjAxIDsKLSAgICBFTkQKLSAgRU5EIEIwCi0gIFBJTiBBMQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC40NiAwLjIyIDAuNTQgMC4zNSA7Ci0gICAgICAgIFJFQ1QgMC40OCAwLjI3IDAuNTYgMC43IDsKLSAgICBFTkQKLSAgRU5EIEExCi0gIFBJTiBCMgotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC44NiAwLjYgMC45NCAxLjEgOwotICAgIEVORAotICBFTkQgQjIKLSAgUElOIFZERAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBQT1dFUiA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZERCBWREQhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDEuNjUgMS42IDEuNzEgOwotICAgIEVORAotICBFTkQgVkRECi0gIFBJTiBWU1MKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgR1JPVU5EIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVlNTIFZTUyEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMC4wMCAxLjYgMC4wNiA7Ci0gICAgRU5ECi0gIEVORCBWU1MKLUVORCBBT0kzM1hMCi0KLU1BQ1JPIFRMQVRTUlhMCi0gIENMQVNTIENPUkUgOwotICBPUklHSU4gMCAwIDsKLSAgRk9SRUlHTiBUTEFUU1JYTCAwIDAgOwotICBTSVpFIDQgQlkgMS43MSA7Ci0gIFNZTU1FVFJZIFggWSA7Ci0gIFNJVEUgQ29yZVNpdGUgOwotICBQSU4gUU4KLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIE9VVFBVVCA7Ci0gICAgQU5URU5OQURJRkZBUkVBIDEuNzI4NSAgTEFZRVIgTWV0YWwxIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuODYgMC42IDEuMDA1IDAuNzMgOwotICAgICAgICBSRUNUIDAuOTI1IDAuNDkgMS4wMDUgMS4yMiA7Ci0gICAgRU5ECi0gIEVORCBRTgotICBQSU4gUQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gT1VUUFVUIDsKLSAgICBBTlRFTk5BRElGRkFSRUEgMS43Mjg1ICBMQVlFUiBNZXRhbDEgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wNiAwLjYgMC4zMjUgMC43MyA7Ci0gICAgICAgIFJFQ1QgMC4yNDUgMC41NCAwLjMyNSAxLjAyIDsKLSAgICBFTkQKLSAgRU5EIFEKLSAgUElOIEQKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDMuNDYgMC45OCAzLjU0IDEuMTg1IDsKLSAgICAgICAgUkVDVCAzLjU5IDAuODE1IDMuNjcgMS4wNiA7Ci0gICAgICAgIFJFQ1QgMy40NiAwLjk4IDMuNjcgMS4wNiA7Ci0gICAgRU5ECi0gIEVORCBECi0gIFBJTiBSTgotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMi4yIDAuODE1IDIuNjMgMC44OTUgOwotICAgICAgICBSRUNUIDIuNDM1IDAuODE1IDIuNjMgMC45NjUgOwotICAgIEVORAotICBFTkQgUk4KLSAgUElOIEcKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDEuODYgMC42MSAxLjk0IDEuMTEgOwotICAgIEVORAotICBFTkQgRwotICBQSU4gU04KLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDEuNDM1IDAuODE1IDEuNiAxLjA2IDsKLSAgICAgICAgUkVDVCAxLjI2NSAwLjk2IDEuNiAxLjA2IDsKLSAgICBFTkQKLSAgRU5EIFNOCi0gIFBJTiBWREQKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgUE9XRVIgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWREQgVkREISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAxLjY1IDQgMS43MSA7Ci0gICAgRU5ECi0gIEVORCBWREQKLSAgUElOIFZTUwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBHUk9VTkQgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWU1MgVlNTISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAwLjAwIDQgMC4wNiA7Ci0gICAgRU5ECi0gIEVORCBWU1MKLUVORCBUTEFUU1JYTAotCi1NQUNSTyBNWEkyWDgKLSAgQ0xBU1MgQ09SRSA7Ci0gIE9SSUdJTiAwIDAgOwotICBGT1JFSUdOIE1YSTJYOCAwIDAgOwotICBTSVpFIDMuNiBCWSAxLjcxIDsKLSAgU1lNTUVUUlkgWCBZIDsKLSAgU0lURSBDb3JlU2l0ZSA7Ci0gIFBJTiBZCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBPVVRQVVQgOwotICAgIEFOVEVOTkFESUZGQVJFQSAxLjcyODUgIExBWUVSIE1ldGFsMSA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAyLjA2IDAuNDA1IDIuMTIgMS40MjUgOwotICAgICAgICBSRUNUIDIuMDYgMC45OCAyLjE0IDEuMTEgOwotICAgICAgICBSRUNUIDIuNDcgMC45OCAyLjUzIDEuNDI1IDsKLSAgICAgICAgUkVDVCAyLjQ0IDAuNDM1IDIuNTYgMC40OTUgOwotICAgICAgICBSRUNUIDIuODUgMC40MzUgMi45NyAwLjUxIDsKLSAgICAgICAgUkVDVCAyLjg4IDAuOTggMi45NCAxLjQyNSA7Ci0gICAgICAgIFJFQ1QgMi45MSAwLjQzNSAyLjk3IDEuMDQgOwotICAgICAgICBSRUNUIDIuMDYgMC45OCAzLjM1IDEuMDQgOwotICAgICAgICBSRUNUIDMuMjkgMC4zOSAzLjM1IDAuNTEgOwotICAgICAgICBSRUNUIDIuNTE1IDAuNDUgMy4zNSAwLjUxIDsKLSAgICAgICAgUkVDVCAzLjI5IDAuOTggMy4zNSAxLjQyNSA7Ci0gICAgRU5ECi0gIEVORCBZCi0gIFBJTiBCCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAxLjI2IDAuNzA1IDEuMzQgMS4yMDUgOwotICAgIEVORAotICBFTkQgQgotICBQSU4gQQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC40NiAwLjY0NSAwLjU0IDEuMDI1IDsKLSAgICAgICAgUkVDVCAwLjQ2IDAuNjQ1IDAuNjYgMC45MiA7Ci0gICAgRU5ECi0gIEVORCBBCi0gIFBJTiBTMAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4yNiAwLjk4IDAuMzQgMS4xMSA7Ci0gICAgICAgIFJFQ1QgMC4yOCAwLjk5IDAuMzYgMS4yMDUgOwotICAgICAgICBSRUNUIDAuNzYgMC44NjUgMC44NCAxLjIwNSA7Ci0gICAgICAgIFJFQ1QgMC4yOCAxLjEyNSAwLjg0IDEuMjA1IDsKLSAgICBFTkQKLSAgRU5EIFMwCi0gIFBJTiBWREQKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgUE9XRVIgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWREQgVkREISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAxLjY1IDMuNiAxLjcxIDsKLSAgICBFTkQKLSAgRU5EIFZERAotICBQSU4gVlNTCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIEdST1VORCA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZTUyBWU1MhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDAuMDAgMy42IDAuMDYgOwotICAgIEVORAotICBFTkQgVlNTCi1FTkQgTVhJMlg4Ci0KLU1BQ1JPIENMS01YMlgyCi0gIENMQVNTIENPUkUgOwotICBPUklHSU4gMCAwIDsKLSAgRk9SRUlHTiBDTEtNWDJYMiAwIDAgOwotICBTSVpFIDEuOCBCWSAxLjcxIDsKLSAgU1lNTUVUUlkgWCBZIDsKLSAgU0lURSBDb3JlU2l0ZSA7Ci0gIFBJTiBZCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBPVVRQVVQgOwotICAgIEFOVEVOTkFESUZGQVJFQSAxLjcyODUgIExBWUVSIE1ldGFsMSA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAxLjQ2NSAwLjM2NSAxLjUyNSAwLjQ4NSA7Ci0gICAgICAgIFJFQ1QgMS40NjUgMS4wNDUgMS41MjUgMS40MzUgOwotICAgICAgICBSRUNUIDEuNSAwLjQyNSAxLjU2IDEuMTA1IDsKLSAgICAgICAgUkVDVCAxLjUgMC42IDEuNzQgMC42NiA7Ci0gICAgICAgIFJFQ1QgMS42NiAwLjYgMS43NCAwLjczIDsKLSAgICBFTkQKLSAgRU5EIFkKLSAgUElOIEIKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDEuMjIgMC44MTUgMS4zIDEuMjE1IDsKLSAgICAgICAgUkVDVCAxLjIyIDAuODE1IDEuNCAwLjg5NSA7Ci0gICAgRU5ECi0gIEVORCBCCi0gIFBJTiBBCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjQ2IDAuNjM1IDAuNTQgMS4wMzUgOwotICAgICAgICBSRUNUIDAuNDQgMC45NTUgMC42MiAxLjAzNSA7Ci0gICAgRU5ECi0gIEVORCBBCi0gIFBJTiBTMAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4yNiAwLjk4IDAuMzQgMS4yMTUgOwotICAgICAgICBSRUNUIDAuNzIgMC45MyAwLjggMS4yMTUgOwotICAgICAgICBSRUNUIDAuMjYgMS4xMzUgMC44IDEuMjE1IDsKLSAgICBFTkQKLSAgRU5EIFMwCi0gIFBJTiBWREQKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgUE9XRVIgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWREQgVkREISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAxLjY1IDEuOCAxLjcxIDsKLSAgICBFTkQKLSAgRU5EIFZERAotICBQSU4gVlNTCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIEdST1VORCA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZTUyBWU1MhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDAuMDAgMS44IDAuMDYgOwotICAgIEVORAotICBFTkQgVlNTCi1FTkQgQ0xLTVgyWDIKLQotTUFDUk8gTVgyWDYKLSAgQ0xBU1MgQ09SRSA7Ci0gIE9SSUdJTiAwIDAgOwotICBGT1JFSUdOIE1YMlg2IDAgMCA7Ci0gIFNJWkUgMi42IEJZIDEuNzEgOwotICBTWU1NRVRSWSBYIFkgOwotICBTSVRFIENvcmVTaXRlIDsKLSAgUElOIFkKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIE9VVFBVVCA7Ci0gICAgQU5URU5OQURJRkZBUkVBIDEuNzI4NSAgTEFZRVIgTWV0YWwxIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDEuNjEgMC4yOTUgMS42NyAwLjQxNSA7Ci0gICAgICAgIFJFQ1QgMS42MzUgMC44MyAxLjY5NSAxLjM5NSA7Ci0gICAgICAgIFJFQ1QgMS42NTUgMC4zNTUgMS43MTUgMC44OCA7Ci0gICAgICAgIFJFQ1QgMS42NTUgMC42IDEuNzQgMC44OCA7Ci0gICAgICAgIFJFQ1QgMi4wMiAwLjIzNSAyLjA4IDAuNjYgOwotICAgICAgICBSRUNUIDIuMDQ1IDAuNiAyLjEwNSAxLjM5NSA7Ci0gICAgICAgIFJFQ1QgMS42NTUgMC42IDIuNDcgMC42NiA7Ci0gICAgICAgIFJFQ1QgMi40MSAwLjQ4NSAyLjQ3IDAuOTg1IDsKLSAgICAgICAgUkVDVCAyLjQzIDAuMjM1IDIuNDkgMC41NDUgOwotICAgICAgICBSRUNUIDIuNDU1IDAuOTI1IDIuNTE1IDEuMzk1IDsKLSAgICBFTkQKLSAgRU5EIFkKLSAgUElOIEIKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDEuMjYgMC42NzUgMS4zNCAxLjE3NSA7Ci0gICAgRU5ECi0gIEVORCBCCi0gIFBJTiBBCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjU4IDAuNjE1IDAuNjYgMC45OTUgOwotICAgICAgICBSRUNUIDAuNDYgMC43OSAwLjY2IDAuOTk1IDsKLSAgICBFTkQKLSAgRU5EIEEKLSAgUElOIFMwCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjI2IDAuOTE1IDAuMzYgMS4xMSA7Ci0gICAgICAgIFJFQ1QgMC43NiAwLjkxNSAwLjg0IDEuMTc1IDsKLSAgICAgICAgUkVDVCAwLjI4IDEuMDk1IDAuODQgMS4xNzUgOwotICAgIEVORAotICBFTkQgUzAKLSAgUElOIFZERAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBQT1dFUiA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZERCBWREQhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDEuNjUgMi42IDEuNzEgOwotICAgIEVORAotICBFTkQgVkRECi0gIFBJTiBWU1MKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgR1JPVU5EIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVlNTIFZTUyEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMC4wMCAyLjYgMC4wNiA7Ci0gICAgRU5ECi0gIEVORCBWU1MKLUVORCBNWDJYNgotCi1NQUNSTyBNWEkyWDYKLSAgQ0xBU1MgQ09SRSA7Ci0gIE9SSUdJTiAwIDAgOwotICBGT1JFSUdOIE1YSTJYNiAwIDAgOwotICBTSVpFIDMgQlkgMS43MSA7Ci0gIFNZTU1FVFJZIFggWSA7Ci0gIFNJVEUgQ29yZVNpdGUgOwotICBQSU4gWQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gT1VUUFVUIDsKLSAgICBBTlRFTk5BRElGRkFSRUEgMS43Mjg1ICBMQVlFUiBNZXRhbDEgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMi4wMyAwLjI5IDIuMDkgMC43NiA7Ci0gICAgICAgIFJFQ1QgMi4wMyAwLjg2IDIuMDkgMS40OCA7Ci0gICAgICAgIFJFQ1QgMi4wMyAwLjcgMi4zMiAwLjc2IDsKLSAgICAgICAgUkVDVCAyLjI2IDAuNyAyLjMyIDAuOTIgOwotICAgICAgICBSRUNUIDIuMjYgMC43OSAyLjM0IDAuOTIgOwotICAgICAgICBSRUNUIDIuMDMgMC44NiAyLjM0IDAuOTIgOwotICAgICAgICBSRUNUIDIuNDQgMC4yOSAyLjUgMS40OCA7Ci0gICAgICAgIFJFQ1QgMi4yNiAwLjc5IDIuOTEgMC44NSA7Ci0gICAgICAgIFJFQ1QgMi44MDUgMC42MyAyLjg2NSAwLjg1IDsKLSAgICAgICAgUkVDVCAyLjg1IDAuMjkgMi45MSAwLjY5IDsKLSAgICAgICAgUkVDVCAyLjg1IDAuNzkgMi45MSAxLjQ4IDsKLSAgICBFTkQKLSAgRU5EIFkKLSAgUElOIEIKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDEuMjYgMC43NiAxLjM0IDEuMjYgOwotICAgIEVORAotICBFTkQgQgotICBQSU4gQQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC40NiAwLjc5IDAuNTQgMS4xIDsKLSAgICAgICAgUkVDVCAwLjU5IDAuNzMgMC42NyAwLjkyIDsKLSAgICAgICAgUkVDVCAwLjQ2IDAuNzkgMC42NyAwLjkyIDsKLSAgICBFTkQKLSAgRU5EIEEKLSAgUElOIFMwCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjI2IDAuOTggMC4zNCAxLjExIDsKLSAgICAgICAgUkVDVCAwLjMgMS4wNSAwLjM2IDEuMjYgOwotICAgICAgICBSRUNUIDAuNzcgMC45NiAwLjgzIDEuMjYgOwotICAgICAgICBSRUNUIDAuMyAxLjIgMC44MyAxLjI2IDsKLSAgICBFTkQKLSAgRU5EIFMwCi0gIFBJTiBWREQKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgUE9XRVIgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWREQgVkREISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAxLjY1IDMgMS43MSA7Ci0gICAgRU5ECi0gIEVORCBWREQKLSAgUElOIFZTUwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBHUk9VTkQgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWU1MgVlNTISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAwLjAwIDMgMC4wNiA7Ci0gICAgRU5ECi0gIEVORCBWU1MKLUVORCBNWEkyWDYKLQotTUFDUk8gWE9SM1gxCi0gIENMQVNTIENPUkUgOwotICBPUklHSU4gMCAwIDsKLSAgRk9SRUlHTiBYT1IzWDEgMCAwIDsKLSAgU0laRSA0LjQgQlkgMS43MSA7Ci0gIFNZTU1FVFJZIFggWSA7Ci0gIFNJVEUgQ29yZVNpdGUgOwotICBQSU4gVlNTCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIEdST1VORCA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZTUyBWU1MhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDAuMDAgNC40IDAuMDYgOwotICAgIEVORAotICBFTkQgVlNTCi0gIFBJTiBDCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAyLjkyNSAwLjY2NSAzLjI5NSAwLjcyNSA7Ci0gICAgICAgIFJFQ1QgMy4yMzUgMC42NjUgMy4yOTUgMC45MzUgOwotICAgICAgICBSRUNUIDMuMjM1IDAuODE1IDMuMzY1IDAuOTM1IDsKLSAgICBFTkQKLSAgRU5EIEMKLSAgUElOIEIKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuNDMgMC41MjUgMC41MSAwLjg5NSA7Ci0gICAgICAgIFJFQ1QgMC40MyAwLjgxNSAwLjY0IDAuODk1IDsKLSAgICBFTkQKLSAgRU5EIEIKLSAgUElOIEEKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDYgMC43OSAwLjE3IDAuOTIgOwotICAgICAgICBSRUNUIDAuMDkgMC42MTUgMC4xNyAxLjA4NSA7Ci0gICAgRU5ECi0gIEVORCBBCi0gIFBJTiBZCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBPVVRQVVQgOwotICAgIEFOVEVOTkFESUZGQVJFQSAxLjcyODUgIExBWUVSIE1ldGFsMSA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCA0LjI0IDAuNTcgNC4zNjUgMC43MDUgOwotICAgICAgICBSRUNUIDQuMjM1IDAuNjI1IDQuMzY1IDAuNzA1IDsKLSAgICAgICAgUkVDVCA0LjMwNSAwLjU3IDQuMzY1IDEuMDg1IDsKLSAgICAgICAgUkVDVCA0LjI0IDEuMDI1IDQuMzY1IDEuMDg1IDsKLSAgICBFTkQKLSAgRU5EIFkKLSAgUElOIFZERAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBQT1dFUiA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZERCBWREQhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDEuNjUgNC40IDEuNzEgOwotICAgIEVORAotICBFTkQgVkRECi1FTkQgWE9SM1gxCi0KLU1BQ1JPIE1ERkZIUVg0Ci0gIENMQVNTIENPUkUgOwotICBPUklHSU4gMCAwIDsKLSAgRk9SRUlHTiBNREZGSFFYNCAwIDAgOwotICBTSVpFIDUuNCBCWSAxLjcxIDsKLSAgU1lNTUVUUlkgWCBZIDsKLSAgU0lURSBDb3JlU2l0ZSA7Ci0gIFBJTiBTMAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgNC40NyAwLjY1NSA0LjUzIDAuOTMgOwotICAgICAgICBSRUNUIDUuMDM1IDAuNjI1IDUuMTY1IDAuNzE1IDsKLSAgICAgICAgUkVDVCA0LjQ3IDAuNjU1IDUuMTY1IDAuNzE1IDsKLSAgICBFTkQKLSAgRU5EIFMwCi0gIFBJTiBEMQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgNC44MiAwLjgxNSA1LjA2IDAuOTg1IDsKLSAgICBFTkQKLSAgRU5EIEQxCi0gIFBJTiBEMAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMy44NiAwLjc5IDMuOTQgMC45MiA7Ci0gICAgICAgIFJFQ1QgMy44NiAwLjg0IDQuMjEgMC45MiA7Ci0gICAgICAgIFJFQ1QgNC4xMyAwLjc1IDQuMjEgMC45MyA7Ci0gICAgRU5ECi0gIEVORCBEMAotICBQSU4gQ0sKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMjYgMC42OSAwLjM0IDEuMTkgOwotICAgIEVORAotICBFTkQgQ0sKLSAgUElOIFEKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIE9VVFBVVCA7Ci0gICAgQU5URU5OQURJRkZBUkVBIDEuNzI4NSAgTEFZRVIgTWV0YWwxIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuNDYgMC43OSAwLjU0IDEuMDc1IDsKLSAgICAgICAgUkVDVCAwLjUyNSAwLjU0IDAuNTg1IDAuODUgOwotICAgICAgICBSRUNUIDEuMDA1IDAuNTQgMS4wNjUgMS4wNzUgOwotICAgICAgICBSRUNUIDAuNDYgMS4wMTUgMS4wNjUgMS4wNzUgOwotICAgIEVORAotICBFTkQgUQotICBQSU4gVkRECi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIFBPV0VSIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVkREIFZERCEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMS42NSA1LjQgMS43MSA7Ci0gICAgRU5ECi0gIEVORCBWREQKLSAgUElOIFZTUwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBHUk9VTkQgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWU1MgVlNTISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAwLjAwIDUuNCAwLjA2IDsKLSAgICBFTkQKLSAgRU5EIFZTUwotRU5EIE1ERkZIUVg0Ci0KLU1BQ1JPIE9BSTIxMVgxCi0gIENMQVNTIENPUkUgOwotICBPUklHSU4gMCAwIDsKLSAgRk9SRUlHTiBPQUkyMTFYMSAwIDAgOwotICBTSVpFIDEuMiBCWSAxLjcxIDsKLSAgU1lNTUVUUlkgWCBZIDsKLSAgU0lURSBDb3JlU2l0ZSA7Ci0gIFBJTiBZCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBPVVRQVVQgOwotICAgIEFOVEVOTkFESUZGQVJFQSAxLjcyODUgIExBWUVSIE1ldGFsMSA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjYyNSAxLjE3IDAuNjg1IDEuNDUgOwotICAgICAgICBSRUNUIDEuMDcgMC4zOCAxLjEzIDAuNSA7Ci0gICAgICAgIFJFQ1QgMS4wNiAxLjE3IDEuMTQgMS40NSA7Ci0gICAgICAgIFJFQ1QgMS4xMSAwLjQ0IDEuMTcgMS4yMyA7Ci0gICAgICAgIFJFQ1QgMC42MjUgMS4xNyAxLjE3IDEuMjMgOwotICAgIEVORAotICBFTkQgWQotICBQSU4gQTAKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDYgMC45IDAuMTQgMS4xMSA7Ci0gICAgICAgIFJFQ1QgMC4yMSAwLjc2IDAuMjkgMS4wODUgOwotICAgICAgICBSRUNUIDAuMDYgMC45IDAuMjkgMS4wODUgOwotICAgIEVORAotICBFTkQgQTAKLSAgUElOIEExCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjM5IDAuNjQgMC41NCAwLjcyIDsKLSAgICAgICAgUkVDVCAwLjQ2IDAuNjQgMC41NCAxLjA3IDsKLSAgICBFTkQKLSAgRU5EIEExCi0gIFBJTiBCMAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC42NiAwLjc5IDAuNzQgMS4wNyA7Ci0gICAgICAgIFJFQ1QgMC43MSAwLjY0IDAuNzkgMC44OTUgOwotICAgICAgICBSRUNUIDAuNjQgMC43OSAwLjc5IDAuODk1IDsKLSAgICBFTkQKLSAgRU5EIEIwCi0gIFBJTiBDMAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC44NiAwLjQxIDAuOTcgMC41NCA7Ci0gICAgICAgIFJFQ1QgMC44OSAwLjQxIDAuOTcgMC44NCA7Ci0gICAgICAgIFJFQ1QgMC44OSAwLjc2IDEuMDEgMC44NCA7Ci0gICAgRU5ECi0gIEVORCBDMAotICBQSU4gVkRECi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIFBPV0VSIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVkREIFZERCEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMS42NSAxLjIgMS43MSA7Ci0gICAgRU5ECi0gIEVORCBWREQKLSAgUElOIFZTUwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBHUk9VTkQgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWU1MgVlNTISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAwLjAwIDEuMiAwLjA2IDsKLSAgICBFTkQKLSAgRU5EIFZTUwotRU5EIE9BSTIxMVgxCi0KLU1BQ1JPIFRCVUZYTAotICBDTEFTUyBDT1JFIDsKLSAgT1JJR0lOIDAgMCA7Ci0gIEZPUkVJR04gVEJVRlhMIDAgMCA7Ci0gIFNJWkUgMiBCWSAxLjcxIDsKLSAgU1lNTUVUUlkgWCBZIDsKLSAgU0lURSBDb3JlU2l0ZSA7Ci0gIFBJTiBZCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBPVVRQVVQgOwotICAgIEFOVEVOTkFESUZGQVJFQSAxLjcyODUgIExBWUVSIE1ldGFsMSA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAxLjY3NSAwLjQ4NSAxLjczNSAwLjYwNSA7Ci0gICAgICAgIFJFQ1QgMS42ODUgMC41NjUgMS43NDUgMS4xMSA7Ci0gICAgICAgIFJFQ1QgMS42NiAwLjk4IDEuNzQ1IDEuMTEgOwotICAgIEVORAotICBFTkQgWQotICBQSU4gQQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC40MzUgMC45NjUgMC41NjUgMS4wODUgOwotICAgICAgICBSRUNUIDAuNjI1IDAuMzA1IDAuNjg1IDAuNjg1IDsKLSAgICAgICAgUkVDVCAwLjYyNSAwLjYyNSAwLjg0NSAwLjY4NSA7Ci0gICAgICAgIFJFQ1QgMC43ODUgMC42MjUgMC44NDUgMS4wMjUgOwotICAgICAgICBSRUNUIDAuMzg1IDAuOTY1IDAuODQ1IDEuMDI1IDsKLSAgICAgICAgUkVDVCAwLjYyNSAwLjMwNSAxLjQxNSAwLjM2NSA7Ci0gICAgRU5ECi0gIEVORCBBCi0gIFBJTiBPRQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4yNiAwLjYgMC4zNCAwLjg2NSA7Ci0gICAgICAgIFJFQ1QgMC4yIDAuNzQ1IDAuMzQgMC44NjUgOwotICAgICAgICBSRUNUIDAuMiAwLjc4NSAwLjY4NSAwLjg2NSA7Ci0gICAgRU5ECi0gIEVORCBPRQotICBQSU4gVkRECi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIFBPV0VSIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVkREIFZERCEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMS42NSAyIDEuNzEgOwotICAgIEVORAotICBFTkQgVkRECi0gIFBJTiBWU1MKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgR1JPVU5EIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVlNTIFZTUyEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMC4wMCAyIDAuMDYgOwotICAgIEVORAotICBFTkQgVlNTCi1FTkQgVEJVRlhMCi0KLU1BQ1JPIERGRlJYMQotICBDTEFTUyBDT1JFIDsKLSAgT1JJR0lOIDAgMCA7Ci0gIEZPUkVJR04gREZGUlgxIDAgMCA7Ci0gIFNJWkUgNSBCWSAxLjcxIDsKLSAgU1lNTUVUUlkgWCBZIDsKLSAgU0lURSBDb3JlU2l0ZSA7Ci0gIFBJTiBRCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBPVVRQVVQgOwotICAgIEFOVEVOTkFESUZGQVJFQSAxLjcyODUgIExBWUVSIE1ldGFsMSA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjg2IDAuNiAwLjk0IDAuNzMgOwotICAgICAgICBSRUNUIDAuODggMC40OTUgMC45NCAxLjQ1NSA7Ci0gICAgICAgIFJFQ1QgMC45MiAwLjQzNSAwLjk4IDAuNTU1IDsKLSAgICBFTkQKLSAgRU5EIFEKLSAgUElOIFFOCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBPVVRQVVQgOwotICAgIEFOVEVOTkFESUZGQVJFQSAxLjcyODUgIExBWUVSIE1ldGFsMSA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjA2IDAuNiAwLjMyNSAwLjczIDsKLSAgICAgICAgUkVDVCAwLjI0NSAwLjU0IDAuMzI1IDEuMjkgOwotICAgIEVORAotICBFTkQgUU4KLSAgUElOIFJOCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAxLjc5NSAwLjc1NSAxLjk2NSAwLjk2IDsKLSAgICAgICAgUkVDVCAxLjc5NSAwLjgwNSAyLjE3IDAuOTYgOwotICAgIEVORAotICBFTkQgUk4KLSAgUElOIENLCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAxLjA0IDAuODE1IDEuMzY1IDEuMDYgOwotICAgICAgICBSRUNUIDEuMDQgMC45MzUgMS4zNzUgMS4wNiA7Ci0gICAgRU5ECi0gIEVORCBDSwotICBQSU4gRAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgNC40MzUgMC42MjUgNC42NTUgMC44MTUgOwotICAgIEVORAotICBFTkQgRAotICBQSU4gVkRECi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIFBPV0VSIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVkREIFZERCEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMS42NSA1IDEuNzEgOwotICAgIEVORAotICBFTkQgVkRECi0gIFBJTiBWU1MKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgR1JPVU5EIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVlNTIFZTUyEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMC4wMCA1IDAuMDYgOwotICAgIEVORAotICBFTkQgVlNTCi1FTkQgREZGUlgxCi0KLU1BQ1JPIEFORDNYMQotICBDTEFTUyBDT1JFIDsKLSAgT1JJR0lOIDAgMCA7Ci0gIEZPUkVJR04gQU5EM1gxIDAgMCA7Ci0gIFNJWkUgMS40IEJZIDEuNzEgOwotICBTWU1NRVRSWSBYIFkgOwotICBTSVRFIENvcmVTaXRlIDsKLSAgUElOIFkKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIE9VVFBVVCA7Ci0gICAgQU5URU5OQURJRkZBUkVBIDEuNzI4NSAgTEFZRVIgTWV0YWwxIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDEuMjYgMC40NyAxLjM0IDEuNDMgOwotICAgIEVORAotICBFTkQgWQotICBQSU4gQQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC44NiAwLjcxIDAuOTQgMS4yMSA7Ci0gICAgRU5ECi0gIEVORCBBCi0gIFBJTiBCCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjI2IDAuNzkgMC4zNCAwLjkyIDsKLSAgICAgICAgUkVDVCAwLjI2IDAuNzkgMC42IDAuODcgOwotICAgICAgICBSRUNUIDAuNTIgMC43OSAwLjYgMC45OCA7Ci0gICAgRU5ECi0gIEVORCBCCi0gIFBJTiBDCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjA4IDAuNjkgMC4xNiAxLjE3IDsKLSAgICAgICAgUkVDVCAwLjA2IDAuOTggMC4xNiAxLjE3IDsKLSAgICBFTkQKLSAgRU5EIEMKLSAgUElOIFZERAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBQT1dFUiA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZERCBWREQhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDEuNjUgMS40IDEuNzEgOwotICAgIEVORAotICBFTkQgVkRECi0gIFBJTiBWU1MKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgR1JPVU5EIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVlNTIFZTUyEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMC4wMCAxLjQgMC4wNiA7Ci0gICAgRU5ECi0gIEVORCBWU1MKLUVORCBBTkQzWDEKLQotTUFDUk8gT0FJMjIyWDIKLSAgQ0xBU1MgQ09SRSA7Ci0gIE9SSUdJTiAwIDAgOwotICBGT1JFSUdOIE9BSTIyMlgyIDAgMCA7Ci0gIFNJWkUgMy40IEJZIDEuNzEgOwotICBTWU1NRVRSWSBYIFkgOwotICBTSVRFIENvcmVTaXRlIDsKLSAgUElOIFkKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIE9VVFBVVCA7Ci0gICAgQU5URU5OQURJRkZBUkVBIDEuNzI4NSAgTEFZRVIgTWV0YWwxIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuNjI1IDEuMTU1IDAuNjg1IDEuMjc1IDsKLSAgICAgICAgUkVDVCAxLjY4NSAxLjE1NSAxLjc0NSAxLjI3NSA7Ci0gICAgICAgIFJFQ1QgMi40MTUgMC40MTUgMi40NzUgMC41NTUgOwotICAgICAgICBSRUNUIDIuNTIgMS4xNTUgMi41OCAxLjI3NSA7Ci0gICAgICAgIFJFQ1QgMi44MjUgMC40MTUgMi44ODUgMC41NTUgOwotICAgICAgICBSRUNUIDIuNDE1IDAuNDk1IDMuMzIgMC41NTUgOwotICAgICAgICBSRUNUIDMuMjYgMC40OTUgMy4zMiAxLjIxNSA7Ci0gICAgICAgIFJFQ1QgMC42MjUgMS4xNTUgMy4zMiAxLjIxNSA7Ci0gICAgICAgIFJFQ1QgMy4yNiAwLjYgMy4zNCAwLjczIDsKLSAgICBFTkQKLSAgRU5EIFkKLSAgUElOIEEwCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjI3NSAwLjg0NSAwLjMzNSAxLjA1NSA7Ci0gICAgICAgIFJFQ1QgMC44NiAwLjc5IDAuOTQgMS4wNTUgOwotICAgICAgICBSRUNUIDAuMjc1IDAuOTk1IDAuOTQgMS4wNTUgOwotICAgIEVORAotICBFTkQgQTAKLSAgUElOIEIwCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAxLjQyIDAuODM1IDEuNTQgMC44OTUgOwotICAgICAgICBSRUNUIDEuNDYgMC43OSAxLjU0IDEuMDU1IDsKLSAgICAgICAgUkVDVCAyLjA4IDAuODQ1IDIuMTQgMS4wNTUgOwotICAgICAgICBSRUNUIDEuNDYgMC45OTUgMi4xNCAxLjA1NSA7Ci0gICAgRU5ECi0gIEVORCBCMAotICBQSU4gQzAKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDIuMjYgMC44NDUgMi4zMiAxLjA1NSA7Ci0gICAgICAgIFJFQ1QgMi44NiAwLjc5IDIuOTIgMS4wNTUgOwotICAgICAgICBSRUNUIDIuMjYgMC45OTUgMi45MiAxLjA1NSA7Ci0gICAgICAgIFJFQ1QgMi44NiAwLjc5IDIuOTQgMC45MiA7Ci0gICAgICAgIFJFQ1QgMi44NiAwLjc5IDIuOTggMC44NSA7Ci0gICAgRU5ECi0gIEVORCBDMAotICBQSU4gQTEKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuNDM1IDAuNjc1IDAuNjUgMC44OTUgOwotICAgIEVORAotICBFTkQgQTEKLSAgUElOIEMxCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAyLjY4IDAuNjU1IDIuNzYgMC44OTUgOwotICAgICAgICBSRUNUIDIuNDIgMC43NzUgMi43NiAwLjg5NSA7Ci0gICAgRU5ECi0gIEVORCBDMQotICBQSU4gQjEKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDEuNjQgMC42NTUgMS45OCAwLjczNSA7Ci0gICAgICAgIFJFQ1QgMS44MzUgMC42NTUgMS45OCAwLjg5NSA7Ci0gICAgRU5ECi0gIEVORCBCMQotICBQSU4gVkRECi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIFBPV0VSIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVkREIFZERCEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMS42NSAzLjQgMS43MSA7Ci0gICAgRU5ECi0gIEVORCBWREQKLSAgUElOIFZTUwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBHUk9VTkQgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWU1MgVlNTISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAwLjAwIDMuNCAwLjA2IDsKLSAgICBFTkQKLSAgRU5EIFZTUwotRU5EIE9BSTIyMlgyCi0KLU1BQ1JPIE9BSTMzWDQKLSAgQ0xBU1MgQ09SRSA7Ci0gIE9SSUdJTiAwIDAgOwotICBGT1JFSUdOIE9BSTMzWDQgMCAwIDsKLSAgU0laRSA1LjggQlkgMS43MSA7Ci0gIFNZTU1FVFJZIFggWSA7Ci0gIFNJVEUgQ29yZVNpdGUgOwotICBQSU4gWQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gT1VUUFVUIDsKLSAgICBBTlRFTk5BRElGRkFSRUEgMS43Mjg1ICBMQVlFUiBNZXRhbDEgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMi4wMjUgMC45OTUgMi4wODUgMS4xODUgOwotICAgICAgICBSRUNUIDIuMDM1IDAuODE1IDIuMTY1IDAuODk1IDsKLSAgICAgICAgUkVDVCAyLjEwNSAwLjY1NSAyLjE2NSAxLjA1NSA7Ci0gICAgICAgIFJFQ1QgMi40MzUgMC45OTUgMi40OTUgMS4xODUgOwotICAgICAgICBSRUNUIDIuODU1IDAuOTk1IDIuOTE1IDEuMzQ1IDsKLSAgICAgICAgUkVDVCAzLjAzIDAuNDc1IDMuMDkgMC43MTUgOwotICAgICAgICBSRUNUIDIuMTA1IDAuNjU1IDMuMDkgMC43MTUgOwotICAgICAgICBSRUNUIDMuMDMgMC40NzUgMy4xNSAwLjU4NSA7Ci0gICAgICAgIFJFQ1QgMy4yNjUgMC45OTUgMy4zMjUgMS4xODUgOwotICAgICAgICBSRUNUIDMuNDUgMC40NzUgMy41NyAwLjU4NSA7Ci0gICAgICAgIFJFQ1QgMi4wMjUgMC45OTUgMy43NDUgMS4wNTUgOwotICAgICAgICBSRUNUIDMuNjg1IDAuOTk1IDMuNzQ1IDEuMTg1IDsKLSAgICAgICAgUkVDVCAzLjg2IDAuNDc1IDMuOTggMC41ODUgOwotICAgICAgICBSRUNUIDQuMjcgMC40NzUgNC4zOSAwLjU4NSA7Ci0gICAgICAgIFJFQ1QgNC42OCAwLjQ3NSA0LjggMC41ODUgOwotICAgICAgICBSRUNUIDMuMDMgMC41MjUgNS4xMzUgMC41ODUgOwotICAgICAgICBSRUNUIDUuMDc1IDAuNDc1IDUuMjEgMC41MzUgOwotICAgIEVORAotICBFTkQgWQotICBQSU4gQjAKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDQuODUgMC42ODUgNC45MyAwLjg5NSA7Ci0gICAgICAgIFJFQ1QgNC44NSAwLjgxNSA1LjM0IDAuODk1IDsKLSAgICBFTkQKLSAgRU5EIEIwCi0gIFBJTiBCMgotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMy4xNCAwLjgxNSAzLjY0IDAuODk1IDsKLSAgICBFTkQKLSAgRU5EIEIyCi0gIFBJTiBBMQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMS4yNSAwLjgxNSAxLjc0IDAuODk1IDsKLSAgICAgICAgUkVDVCAxLjY2IDAuNjU1IDEuNzQgMC45MiA7Ci0gICAgRU5ECi0gIEVORCBBMQotICBQSU4gQTIKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDIuMjY1IDAuODE1IDIuNzY1IDAuODk1IDsKLSAgICBFTkQKLSAgRU5EIEEyCi0gIFBJTiBBMAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC44NiAwLjY1NSAwLjk0IDAuOTIgOwotICAgICAgICBSRUNUIDAuNDk1IDAuODQgMC45NCAwLjkyIDsKLSAgICBFTkQKLSAgRU5EIEEwCi0gIFBJTiBCMQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgNC4wMSAwLjY4NSA0LjE2NSAwLjg5NSA7Ci0gICAgICAgIFJFQ1QgNC4wMSAwLjgxNSA0LjQ1NSAwLjg5NSA7Ci0gICAgRU5ECi0gIEVORCBCMQotICBQSU4gVkRECi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIFBPV0VSIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVkREIFZERCEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMS42NSA1LjggMS43MSA7Ci0gICAgRU5ECi0gIEVORCBWREQKLSAgUElOIFZTUwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBHUk9VTkQgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWU1MgVlNTISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAwLjAwIDUuOCAwLjA2IDsKLSAgICBFTkQKLSAgRU5EIFZTUwotRU5EIE9BSTMzWDQKLQotTUFDUk8gTVhJMlg0Ci0gIENMQVNTIENPUkUgOwotICBPUklHSU4gMCAwIDsKLSAgRk9SRUlHTiBNWEkyWDQgMCAwIDsKLSAgU0laRSAzIEJZIDEuNzEgOwotICBTWU1NRVRSWSBYIFkgOwotICBTSVRFIENvcmVTaXRlIDsKLSAgUElOIFkKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIE9VVFBVVCA7Ci0gICAgQU5URU5OQURJRkZBUkVBIDEuNzI4NSAgTEFZRVIgTWV0YWwxIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDEuNzUgMC44MzUgMS44MSAxLjM1IDsKLSAgICAgICAgUkVDVCAxLjkwNSAwLjQzIDEuOTY1IDAuODk1IDsKLSAgICAgICAgUkVDVCAxLjc5NSAwLjgxNSAxLjk2NSAwLjg5NSA7Ci0gICAgICAgIFJFQ1QgMS43NSAwLjgzNSAyLjIyIDAuODk1IDsKLSAgICAgICAgUkVDVCAyLjE2IDAuODM1IDIuMjIgMS4zNSA7Ci0gICAgICAgIFJFQ1QgMS43NyAwLjQzIDIuMzYgMC40OSA7Ci0gICAgRU5ECi0gIEVORCBZCi0gIFBJTiBCCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAxLjQ1IDAuNjQgMS41MyAxLjEzIDsKLSAgICAgICAgUkVDVCAxLjQ1IDAuOCAxLjU0IDEuMTMgOwotICAgIEVORAotICBFTkQgQgotICBQSU4gQQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC40NiAwLjY0IDAuNzEgMC45MiA7Ci0gICAgICAgIFJFQ1QgMC42MyAwLjY0IDAuNzEgMC45NyA7Ci0gICAgRU5ECi0gIEVORCBBCi0gIFBJTiBTMAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4yNiAwLjk2NSAwLjM0IDEuMTEgOwotICAgICAgICBSRUNUIDAuODEgMC45MjUgMC44NyAxLjEzIDsKLSAgICAgICAgUkVDVCAwLjI4IDEuMDcgMC44NyAxLjEzIDsKLSAgICAgICAgUkVDVCAxLjEzIDAuNTk1IDEuMTkgMS4wNDUgOwotICAgICAgICBSRUNUIDAuODEgMC45ODUgMS4xOSAxLjA0NSA7Ci0gICAgRU5ECi0gIEVORCBTMAotICBQSU4gVkRECi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIFBPV0VSIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVkREIFZERCEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMS42NSAzIDEuNzEgOwotICAgIEVORAotICBFTkQgVkRECi0gIFBJTiBWU1MKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgR1JPVU5EIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVlNTIFZTUyEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMC4wMCAzIDAuMDYgOwotICAgIEVORAotICBFTkQgVlNTCi1FTkQgTVhJMlg0Ci0KLU1BQ1JPIENMS0FORDJYNAotICBDTEFTUyBDT1JFIDsKLSAgT1JJR0lOIDAgMCA7Ci0gIEZPUkVJR04gQ0xLQU5EMlg0IDAgMCA7Ci0gIFNJWkUgMiBCWSAxLjcxIDsKLSAgU1lNTUVUUlkgWCBZIDsKLSAgU0lURSBDb3JlU2l0ZSA7Ci0gIFBJTiBZCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBPVVRQVVQgOwotICAgIEFOVEVOTkFESUZGQVJFQSAxLjcyODUgIExBWUVSIE1ldGFsMSA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAxLjEzNSAwLjQyNSAxLjE5NSAwLjU2NSA7Ci0gICAgICAgIFJFQ1QgMS4yMzUgMC45NDUgMS4yOTUgMS4zMzUgOwotICAgICAgICBSRUNUIDEuNTQ1IDAuNDI1IDEuNjA1IDAuNTY1IDsKLSAgICAgICAgUkVDVCAxLjIzNSAwLjk0NSAxLjc0IDEuMDA1IDsKLSAgICAgICAgUkVDVCAxLjEzNSAwLjUwNSAxLjcyIDAuNTY1IDsKLSAgICAgICAgUkVDVCAxLjY2IDAuNTA1IDEuNzIgMS4zMzUgOwotICAgICAgICBSRUNUIDEuNjYgMC43OSAxLjc0IDEuMzM1IDsKLSAgICAgICAgUkVDVCAxLjY0NSAwLjk0NSAxLjc0IDEuMzM1IDsKLSAgICBFTkQKLSAgRU5EIFkKLSAgUElOIEIKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMjY1IDAuODE1IDAuNzY1IDAuODk1IDsKLSAgICBFTkQKLSAgRU5EIEIKLSAgUElOIEEKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuNDM1IDAuNjI1IDAuNTY1IDAuNzE1IDsKLSAgICAgICAgUkVDVCAwLjI4NSAwLjYzNSAwLjg3NSAwLjcxNSA7Ci0gICAgRU5ECi0gIEVORCBBCi0gIFBJTiBWREQKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgUE9XRVIgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWREQgVkREISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAxLjY1IDIgMS43MSA7Ci0gICAgRU5ECi0gIEVORCBWREQKLSAgUElOIFZTUwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBHUk9VTkQgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWU1MgVlNTISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAwLjAwIDIgMC4wNiA7Ci0gICAgRU5ECi0gIEVORCBWU1MKLUVORCBDTEtBTkQyWDQKLQotTUFDUk8gREZGU1gxCi0gIENMQVNTIENPUkUgOwotICBPUklHSU4gMCAwIDsKLSAgRk9SRUlHTiBERkZTWDEgMCAwIDsKLSAgU0laRSA1IEJZIDEuNzEgOwotICBTWU1NRVRSWSBYIFkgOwotICBTSVRFIENvcmVTaXRlIDsKLSAgUElOIFEKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIE9VVFBVVCA7Ci0gICAgQU5URU5OQURJRkZBUkVBIDEuNzI4NSAgTEFZRVIgTWV0YWwxIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuODYgMC40OSAwLjk0IDEuMjkgOwotICAgIEVORAotICBFTkQgUQotICBQSU4gUU4KLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIE9VVFBVVCA7Ci0gICAgQU5URU5OQURJRkZBUkVBIDEuNzI4NSAgTEFZRVIgTWV0YWwxIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDYgMC42IDAuMzA1IDAuNzMgOwotICAgICAgICBSRUNUIDAuMjI1IDAuNTQgMC4zMDUgMS4yOSA7Ci0gICAgRU5ECi0gIEVORCBRTgotICBQSU4gQ0sKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDQuNjYgMC40NiA0Ljc0IDAuOTYgOwotICAgIEVORAotICBFTkQgQ0sKLSAgUElOIEQKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDQuNDYgMC40OCA0LjU0IDAuOTggOwotICAgIEVORAotICBFTkQgRAotICBQSU4gU04KLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDEuNzg1IDAuODE1IDIuMTkgMC44OTUgOwotICAgICAgICBSRUNUIDEuODM1IDAuODE1IDIuMTkgMC45OSA7Ci0gICAgRU5ECi0gIEVORCBTTgotICBQSU4gVkRECi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIFBPV0VSIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVkREIFZERCEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMS42NSA1IDEuNzEgOwotICAgIEVORAotICBFTkQgVkRECi0gIFBJTiBWU1MKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgR1JPVU5EIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVlNTIFZTUyEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMC4wMCA1IDAuMDYgOwotICAgIEVORAotICBFTkQgVlNTCi1FTkQgREZGU1gxCi0KLU1BQ1JPIEZJTEwyCi0gIENMQVNTIENPUkUgOwotICBPUklHSU4gMCAwIDsKLSAgRk9SRUlHTiBGSUxMMiAwIDAgOwotICBTSVpFIDAuNCBCWSAxLjcxIDsKLSAgU1lNTUVUUlkgWCBZIDsKLSAgU0lURSBDb3JlU2l0ZSA7Ci0gIFBJTiBWREQKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgUE9XRVIgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWREQgVkREISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAxLjY1IDAuNCAxLjcxIDsKLSAgICBFTkQKLSAgRU5EIFZERAotICBQSU4gVlNTCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIEdST1VORCA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZTUyBWU1MhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDAuMDAgMC40IDAuMDYgOwotICAgIEVORAotICBFTkQgVlNTCi1FTkQgRklMTDIKLQotTUFDUk8gREZGTlNSWEwKLSAgQ0xBU1MgQ09SRSA7Ci0gIE9SSUdJTiAwIDAgOwotICBGT1JFSUdOIERGRk5TUlhMIDAgMCA7Ci0gIFNJWkUgNi4yIEJZIDEuNzEgOwotICBTWU1NRVRSWSBYIFkgOwotICBTSVRFIENvcmVTaXRlIDsKLSAgUElOIFEKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIE9VVFBVVCA7Ci0gICAgQU5URU5OQURJRkZBUkVBIDEuNzI4NSAgTEFZRVIgTWV0YWwxIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuODggMC42MTUgMC45NCAwLjk0NSA7Ci0gICAgICAgIFJFQ1QgMC44NiAwLjc5IDAuOTQgMC45NDUgOwotICAgICAgICBSRUNUIDAuODkgMC41MzUgMC45NSAwLjY1NSA7Ci0gICAgICAgIFJFQ1QgMC45IDAuODk1IDAuOTYgMS4zNDUgOwotICAgIEVORAotICBFTkQgUQotICBQSU4gUU4KLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIE9VVFBVVCA7Ci0gICAgQU5URU5OQURJRkZBUkVBIDEuNzI4NSAgTEFZRVIgTWV0YWwxIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDYgMC42IDAuMzE1IDAuNzMgOwotICAgICAgICBSRUNUIDAuMjM1IDAuNTQgMC4zMTUgMS4wMiA7Ci0gICAgRU5ECi0gIEVORCBRTgotICBQSU4gQ0tOCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCA1LjkxNSAwLjU3IDYuMTcgMC43MDUgOwotICAgICAgICBSRUNUIDYuMDkgMC41NyA2LjE3IDAuODk1IDsKLSAgICBFTkQKLSAgRU5EIENLTgotICBQSU4gRAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgNS4yNSAwLjUzNSA1LjMzIDAuNzMgOwotICAgICAgICBSRUNUIDUuMzEgMC42IDUuMzkgMC45NzUgOwotICAgIEVORAotICBFTkQgRAotICBQSU4gU04KLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDEuODM1IDEuMDA1IDEuOTY1IDEuMDg1IDsKLSAgICAgICAgUkVDVCAxLjkwNSAwLjkgMS45NjUgMS4yOCA7Ci0gICAgICAgIFJFQ1QgMS45MDUgMC45IDIuMDI1IDAuOTYgOwotICAgICAgICBSRUNUIDEuOTA1IDEuMjIgMy44OCAxLjI4IDsKLSAgICAgICAgUkVDVCAzLjgyIDEuMjIgMy44OCAxLjQ5NSA7Ci0gICAgICAgIFJFQ1QgMy44MiAxLjQzNSA0LjMzNSAxLjQ5NSA7Ci0gICAgRU5ECi0gIEVORCBTTgotICBQSU4gUk4KLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDEuMDYgMC44OTUgMS4xNCAxLjExIDsKLSAgICAgICAgUkVDVCAxLjA2IDAuOTggMS4zMTUgMS4xMSA7Ci0gICAgICAgIFJFQ1QgMS4yMzUgMC45OCAxLjMxNSAxLjIyIDsKLSAgICBFTkQKLSAgRU5EIFJOCi0gIFBJTiBWREQKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgUE9XRVIgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWREQgVkREISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAxLjY1IDYuMiAxLjcxIDsKLSAgICBFTkQKLSAgRU5EIFZERAotICBQSU4gVlNTCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIEdST1VORCA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZTUyBWU1MhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDAuMDAgNi4yIDAuMDYgOwotICAgIEVORAotICBFTkQgVlNTCi1FTkQgREZGTlNSWEwKLQotTUFDUk8gT0FJMjExWDQKLSAgQ0xBU1MgQ09SRSA7Ci0gIE9SSUdJTiAwIDAgOwotICBGT1JFSUdOIE9BSTIxMVg0IDAgMCA7Ci0gIFNJWkUgMy44IEJZIDEuNzEgOwotICBTWU1NRVRSWSBYIFkgOwotICBTSVRFIENvcmVTaXRlIDsKLSAgUElOIFkKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIE9VVFBVVCA7Ci0gICAgQU5URU5OQURJRkZBUkVBIDEuNzI4NSAgTEFZRVIgTWV0YWwxIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuNyAxLjAwNSAwLjc2IDEuMzQ1IDsKLSAgICAgICAgUkVDVCAxLjM2IDEuMDA1IDEuNDIgMS4zNDUgOwotICAgICAgICBSRUNUIDEuOTQgMC42NTUgMiAxLjA2NSA7Ci0gICAgICAgIFJFQ1QgMS45OSAxLjAwNSAyLjA1IDEuMzQ1IDsKLSAgICAgICAgUkVDVCAwLjcgMS4wMDUgMi4xNjUgMS4wNjUgOwotICAgICAgICBSRUNUIDIuNCAxLjAyNSAyLjQ2IDEuMzQ1IDsKLSAgICAgICAgUkVDVCAyLjc5NSAwLjUyNSAyLjg1NSAwLjcxNSA7Ci0gICAgICAgIFJFQ1QgMS45NCAwLjY1NSAyLjg1NSAwLjcxNSA7Ci0gICAgICAgIFJFQ1QgMi44MSAxLjAyNSAyLjg3IDEuMzQ1IDsKLSAgICAgICAgUkVDVCAzLjAxNSAwLjQ0NSAzLjA3NSAwLjU4NSA7Ci0gICAgICAgIFJFQ1QgMS45OSAxLjAyNSAzLjI4IDEuMDg1IDsKLSAgICAgICAgUkVDVCAzLjIyIDEuMDI1IDMuMjggMS4zNDUgOwotICAgICAgICBSRUNUIDMuNDI1IDAuNDQ1IDMuNDg1IDAuNTg1IDsKLSAgICAgICAgUkVDVCAyLjc5NSAwLjUyNSAzLjQ4NSAwLjU4NSA7Ci0gICAgRU5ECi0gIEVORCBZCi0gIFBJTiBBMQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC42MDUgMC44MTUgMS4zNzUgMC44OTUgOwotICAgIEVORAotICBFTkQgQTEKLSAgUElOIEEwCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjIyIDAuNjYgMC4zNCAwLjcyIDsKLSAgICAgICAgUkVDVCAwLjI2IDAuNjYgMC4zNCAwLjkyIDsKLSAgICAgICAgUkVDVCAwLjMwNSAwLjY1NSAxLjY4NSAwLjcxNSA7Ci0gICAgRU5ECi0gIEVORCBBMAotICBQSU4gQzAKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDIuOTMgMC43OSAzLjM1NSAwLjg3IDsKLSAgICAgICAgUkVDVCAzLjA2IDAuNzkgMy4xNCAwLjkyIDsKLSAgICAgICAgUkVDVCAzLjI3NSAwLjc2IDMuMzU1IDAuODggOwotICAgICAgICBSRUNUIDMuMDYgMC43OSAzLjM1NSAwLjg4IDsKLSAgICBFTkQKLSAgRU5EIEMwCi0gIFBJTiBCMAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMi4xIDAuODE1IDIuNiAwLjg5NSA7Ci0gICAgRU5ECi0gIEVORCBCMAotICBQSU4gVkRECi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIFBPV0VSIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVkREIFZERCEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMS42NSAzLjggMS43MSA7Ci0gICAgRU5ECi0gIEVORCBWREQKLSAgUElOIFZTUwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBHUk9VTkQgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWU1MgVlNTISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAwLjAwIDMuOCAwLjA2IDsKLSAgICBFTkQKLSAgRU5EIFZTUwotRU5EIE9BSTIxMVg0Ci0KLU1BQ1JPIFRMQVROQ0FYOAotICBDTEFTUyBDT1JFIDsKLSAgT1JJR0lOIDAgMCA7Ci0gIEZPUkVJR04gVExBVE5DQVg4IDAgMCA7Ci0gIFNJWkUgNC42IEJZIDEuNzEgOwotICBTWU1NRVRSWSBYIFkgOwotICBTSVRFIENvcmVTaXRlIDsKLSAgUElOIEVDSwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gT1VUUFVUIDsKLSAgICBBTlRFTk5BRElGRkFSRUEgMS43Mjg1ICBMQVlFUiBNZXRhbDEgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMy4yNCAwLjU0IDMuMyAxLjM5NSA7Ci0gICAgICAgIFJFQ1QgMy4yNCAwLjYgMy4zNCAxLjAxIDsKLSAgICAgICAgUkVDVCAzLjY1IDAuOTUgMy43MSAxLjM5NSA7Ci0gICAgICAgIFJFQ1QgMy42MiAwLjU3IDMuNzQgMC42MyA7Ci0gICAgICAgIFJFQ1QgNC4wNiAwLjk1IDQuMTIgMS4zOTUgOwotICAgICAgICBSRUNUIDQuMDMgMC41NyA0LjE1IDAuNjQ1IDsKLSAgICAgICAgUkVDVCAzLjY5NSAwLjU4NSA0LjUzIDAuNjQ1IDsKLSAgICAgICAgUkVDVCAzLjI0IDAuOTUgNC41MyAxLjAxIDsKLSAgICAgICAgUkVDVCA0LjQ3IDAuNTI1IDQuNTMgMS4zOTUgOwotICAgIEVORAotICBFTkQgRUNLCi0gIFBJTiBFCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjU4IDAuODEgMC42NiAxLjE1IDsKLSAgICAgICAgUkVDVCAwLjU4IDEuMDA1IDAuNzc1IDEuMTUgOwotICAgICAgICBSRUNUIDAuNTM1IDEuMDcgMC43NzUgMS4xNSA7Ci0gICAgRU5ECi0gIEVORCBFCi0gIFBJTiBDSwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4zNTUgMC43NSAwLjQzNSAxLjA4NSA7Ci0gICAgICAgIFJFQ1QgMC4xOSAxLjAwNSAwLjQzNSAxLjA4NSA7Ci0gICAgRU5ECi0gIEVORCBDSwotICBQSU4gVkRECi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIFBPV0VSIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVkREIFZERCEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMS42NSA0LjYgMS43MSA7Ci0gICAgRU5ECi0gIEVORCBWREQKLSAgUElOIFZTUwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBHUk9VTkQgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWU1MgVlNTISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAwLjAwIDQuNiAwLjA2IDsKLSAgICBFTkQKLSAgRU5EIFZTUwotRU5EIFRMQVROQ0FYOAotCi1NQUNSTyBCVUZYMTIKLSAgQ0xBU1MgQ09SRSA7Ci0gIE9SSUdJTiAwIDAgOwotICBGT1JFSUdOIEJVRlgxMiAwIDAgOwotICBTSVpFIDMgQlkgMS43MSA7Ci0gIFNZTU1FVFJZIFggWSA7Ci0gIFNJVEUgQ29yZVNpdGUgOwotICBQSU4gWQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gT1VUUFVUIDsKLSAgICBBTlRFTk5BRElGRkFSRUEgMS43Mjg1ICBMQVlFUiBNZXRhbDEgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4yMzUgMC40NzUgMC4yOTUgMS4wNCA7Ci0gICAgICAgIFJFQ1QgMC4yOCAwLjI1NSAwLjM0IDAuNTM1IDsKLSAgICAgICAgUkVDVCAwLjI2IDAuOTggMC4zNCAxLjQ1IDsKLSAgICAgICAgUkVDVCAwLjY5IDAuMjU1IDAuNzUgMC41MzUgOwotICAgICAgICBSRUNUIDAuNjkgMC45OCAwLjc1IDEuNDUgOwotICAgICAgICBSRUNUIDEuMSAwLjI1NSAxLjE2IDAuNTM1IDsKLSAgICAgICAgUkVDVCAxLjEgMC45OCAxLjE2IDEuNDUgOwotICAgICAgICBSRUNUIDEuNTEgMC4yNTUgMS41NyAwLjUzNSA7Ci0gICAgICAgIFJFQ1QgMS41MSAwLjk4IDEuNTcgMS40NSA7Ci0gICAgICAgIFJFQ1QgMC4yMzUgMC45OCAxLjk4IDEuMDQgOwotICAgICAgICBSRUNUIDEuOTIgMC4yNTUgMS45OCAwLjUzNSA7Ci0gICAgICAgIFJFQ1QgMC4yMzUgMC40NzUgMS45OCAwLjUzNSA7Ci0gICAgICAgIFJFQ1QgMS45MiAwLjk4IDEuOTggMS40NSA7Ci0gICAgRU5ECi0gIEVORCBZCi0gIFBJTiBBCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAyLjI2IDAuNzk1IDIuMzQgMS4yMyA7Ci0gICAgICAgIFJFQ1QgMi4yNiAwLjc5NSAyLjQwNSAwLjg3NSA7Ci0gICAgRU5ECi0gIEVORCBBCi0gIFBJTiBWREQKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgUE9XRVIgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWREQgVkREISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAxLjY1IDMgMS43MSA7Ci0gICAgRU5ECi0gIEVORCBWREQKLSAgUElOIFZTUwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBHUk9VTkQgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWU1MgVlNTISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAwLjAwIDMgMC4wNiA7Ci0gICAgRU5ECi0gIEVORCBWU1MKLUVORCBCVUZYMTIKLQotTUFDUk8gU0VERkZYMQotICBDTEFTUyBDT1JFIDsKLSAgT1JJR0lOIDAgMCA7Ci0gIEZPUkVJR04gU0VERkZYMSAwIDAgOwotICBTSVpFIDcgQlkgMS43MSA7Ci0gIFNZTU1FVFJZIFggWSA7Ci0gIFNJVEUgQ29yZVNpdGUgOwotICBQSU4gUQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gT1VUUFVUIDsKLSAgICBBTlRFTk5BRElGRkFSRUEgMS43Mjg1ICBMQVlFUiBNZXRhbDEgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMy42MzUgMC41NCAzLjY5NSAwLjcwNSA7Ci0gICAgICAgIFJFQ1QgMy42MzUgMC42MjUgMy44MiAwLjcwNSA7Ci0gICAgICAgIFJFQ1QgMy43NiAwLjYyNSAzLjgyIDEuMDk1IDsKLSAgICBFTkQKLSAgRU5EIFEKLSAgUElOIFFOCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBPVVRQVVQgOwotICAgIEFOVEVOTkFESUZGQVJFQSAxLjcyODUgIExBWUVSIE1ldGFsMSA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAxLjgwNSAwLjQ5IDEuOTQgMC42MSA7Ci0gICAgICAgIFJFQ1QgMS44NiAwLjQ5IDEuOTQgMC45OSA7Ci0gICAgICAgIFJFQ1QgMS44NiAwLjkxIDEuOTggMC45OSA7Ci0gICAgRU5ECi0gIEVORCBRTgotICBQSU4gQ0sKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDYuNjYgMC43OSA2Ljg4IDAuOTggOwotICAgIEVORAotICBFTkQgQ0sKLSAgUElOIFNJCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAzLjI2IDAuNjIgMy4zNCAxLjEyIDsKLSAgICBFTkQKLSAgRU5EIFNJCi0gIFBJTiBTRQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMi4yNiAwLjk4IDIuMzQgMS4xMiA7Ci0gICAgICAgIFJFQ1QgMi4zNjUgMC43MjUgMi40NDUgMS4wNiA7Ci0gICAgICAgIFJFQ1QgMi4yNiAwLjk4IDIuNDQ1IDEuMDYgOwotICAgIEVORAotICBFTkQgU0UKLSAgUElOIEQKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuNTQgMC44MTUgMC44OCAwLjkzNSA7Ci0gICAgRU5ECi0gIEVORCBECi0gIFBJTiBFCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjM4IDAuNjU1IDAuNDQgMC44OTUgOwotICAgICAgICBSRUNUIDAuMjM1IDAuODE1IDAuNDQgMC44OTUgOwotICAgICAgICBSRUNUIDAuODg1IDAuMzM1IDAuOTQ1IDAuNzE1IDsKLSAgICAgICAgUkVDVCAwLjM4IDAuNjU1IDEuMDQgMC43MTUgOwotICAgICAgICBSRUNUIDAuOTggMC42NTUgMS4wNCAwLjc4IDsKLSAgICAgICAgUkVDVCAwLjg4NSAwLjMzNSAxLjUyIDAuMzk1IDsKLSAgICAgICAgUkVDVCAxLjQ2IDAuMzM1IDEuNTIgMC45MSA7Ci0gICAgRU5ECi0gIEVORCBFCi0gIFBJTiBWREQKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgUE9XRVIgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWREQgVkREISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAxLjY1IDcgMS43MSA7Ci0gICAgRU5ECi0gIEVORCBWREQKLSAgUElOIFZTUwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBHUk9VTkQgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWU1MgVlNTISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAwLjAwIDcgMC4wNiA7Ci0gICAgRU5ECi0gIEVORCBWU1MKLUVORCBTRURGRlgxCi0KLU1BQ1JPIE9BSTMzWDIKLSAgQ0xBU1MgQ09SRSA7Ci0gIE9SSUdJTiAwIDAgOwotICBGT1JFSUdOIE9BSTMzWDIgMCAwIDsKLSAgU0laRSA0LjQgQlkgMS43MSA7Ci0gIFNZTU1FVFJZIFggWSA7Ci0gIFNJVEUgQ29yZVNpdGUgOwotICBQSU4gQjAKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDMuMDMgMS4wMDUgMy4xNjUgMS4wODUgOwotICAgICAgICBSRUNUIDMuOTcgMC45NDUgNC4wMyAxLjA2NSA7Ci0gICAgICAgIFJFQ1QgMi44NCAxLjAwNSA0LjAzIDEuMDY1IDsKLSAgICBFTkQKLSAgRU5EIEIwCi0gIFBJTiBBMgotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC43NSAwLjk5NSAyLjIzNSAxLjA1NSA7Ci0gICAgICAgIFJFQ1QgMi4wMzUgMC45OTUgMi4yMzUgMS4wODUgOwotICAgIEVORAotICBFTkQgQTIKLSAgUElOIEIxCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAyLjY4IDAuODQ1IDIuNzQgMS4xMSA7Ci0gICAgICAgIFJFQ1QgMi42NiAwLjk4IDIuNzQgMS4xMSA7Ci0gICAgICAgIFJFQ1QgMi42OCAwLjg0NSAzLjg3IDAuOTA1IDsKLSAgICBFTkQKLSAgRU5EIEIxCi0gIFBJTiBBMQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC40ODUgMC44MTUgMS45MzUgMC44NzUgOwotICAgICAgICBSRUNUIDEuNjM1IDAuODE1IDEuOTM1IDAuODk1IDsKLSAgICBFTkQKLSAgRU5EIEExCi0gIFBJTiBCMgotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMi40NiAwLjY4NSAyLjU0IDAuOTIgOwotICAgICAgICBSRUNUIDIuNDYgMC42ODUgMy43MSAwLjc0NSA7Ci0gICAgRU5ECi0gIEVORCBCMgotICBQSU4gQTAKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuNDM1IDAuNjI1IDAuNTY1IDAuNzA1IDsKLSAgICAgICAgUkVDVCAwLjMyNSAwLjY0NSAxLjUgMC43MDUgOwotICAgIEVORAotICBFTkQgQTAKLSAgUElOIFkKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIE9VVFBVVCA7Ci0gICAgQU5URU5OQURJRkZBUkVBIDEuNzI4NSAgTEFZRVIgTWV0YWwxIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDIuNDc1IDAuNDE1IDIuNTk1IDAuNTE1IDsKLSAgICAgICAgUkVDVCAyLjQzNSAwLjQzNSAyLjU5NSAwLjUxNSA7Ci0gICAgICAgIFJFQ1QgMi41MzUgMC40MTUgMi41OTUgMC41ODUgOwotICAgICAgICBSRUNUIDIuOTE1IDAuNDE1IDMuMDM1IDAuNTg1IDsKLSAgICAgICAgUkVDVCAzLjM1NSAwLjQxNSAzLjQ3NSAwLjU4NSA7Ci0gICAgICAgIFJFQ1QgMy43OTUgMC40MTUgMy44NyAwLjU4NSA7Ci0gICAgICAgIFJFQ1QgMi41MzUgMC41MjUgMy44NyAwLjU4NSA7Ci0gICAgICAgIFJFQ1QgMy43OTUgMC40MTUgMy45MTUgMC40NzUgOwotICAgICAgICBSRUNUIDQuMTMgMC41NzUgNC4xOSAxLjI3IDsKLSAgICAgICAgUkVDVCAwLjgzNSAxLjIxIDQuMTkgMS4yNyA7Ci0gICAgICAgIFJFQ1QgNC4xOSAwLjQ0NSA0LjI1IDAuNjM1IDsKLSAgICAgICAgUkVDVCAzLjgxIDAuNTc1IDQuMjUgMC42MzUgOwotICAgICAgICBSRUNUIDQuMjM1IDAuMzg1IDQuMjk1IDAuNTA1IDsKLSAgICBFTkQKLSAgRU5EIFkKLSAgUElOIFZERAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBQT1dFUiA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZERCBWREQhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDEuNjUgNC40IDEuNzEgOwotICAgIEVORAotICBFTkQgVkRECi0gIFBJTiBWU1MKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgR1JPVU5EIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVlNTIFZTUyEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMC4wMCA0LjQgMC4wNiA7Ci0gICAgRU5ECi0gIEVORCBWU1MKLUVORCBPQUkzM1gyCi0KLU1BQ1JPIEVERkZIUVgyCi0gIENMQVNTIENPUkUgOwotICBPUklHSU4gMCAwIDsKLSAgRk9SRUlHTiBFREZGSFFYMiAwIDAgOwotICBTSVpFIDUuMiBCWSAxLjcxIDsKLSAgU1lNTUVUUlkgWCBZIDsKLSAgU0lURSBDb3JlU2l0ZSA7Ci0gIFBJTiBRCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBPVVRQVVQgOwotICAgIEFOVEVOTkFESUZGQVJFQSAxLjcyODUgIExBWUVSIE1ldGFsMSA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAyLjg2IDAuNzkgMy4xMjUgMC45MiA7Ci0gICAgICAgIFJFQ1QgMy4wNDUgMC41NSAzLjEyNSAxLjE0IDsKLSAgICAgICAgUkVDVCAzLjA0NSAwLjU1IDMuMTY1IDAuNjMgOwotICAgICAgICBSRUNUIDMuMDQ1IDEuMDYgMy4xNzUgMS4xNCA7Ci0gICAgRU5ECi0gIEVORCBRCi0gIFBJTiBFCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAzLjc5IDAuMjggMy44NSAwLjk4IDsKLSAgICAgICAgUkVDVCA0LjExIDAuNiA0LjE3IDAuOCA7Ci0gICAgICAgIFJFQ1QgMy43OSAwLjI4IDQuMjk1IDAuMzQgOwotICAgICAgICBSRUNUIDQuMjM1IDAuMjggNC4yOTUgMC42NiA7Ci0gICAgICAgIFJFQ1QgNC4xMSAwLjYgNC45NCAwLjY2IDsKLSAgICAgICAgUkVDVCA0Ljg2IDAuNiA0Ljk0IDAuNzMgOwotICAgIEVORAotICBFTkQgRQotICBQSU4gRAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgNC40NiAwLjc2IDQuNTQgMS4wMyA7Ci0gICAgICAgIFJFQ1QgNC40NSAwLjc2IDQuNzYgMC44NCA7Ci0gICAgRU5ECi0gIEVORCBECi0gIFBJTiBDSwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4yMyAwLjc0NSAwLjMxIDEuMDg1IDsKLSAgICAgICAgUkVDVCAwLjIzNSAxLjAwNSAwLjQyNSAxLjEzIDsKLSAgICBFTkQKLSAgRU5EIENLCi0gIFBJTiBWREQKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgUE9XRVIgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWREQgVkREISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAxLjY1IDUuMiAxLjcxIDsKLSAgICBFTkQKLSAgRU5EIFZERAotICBQSU4gVlNTCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIEdST1VORCA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZTUyBWU1MhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDAuMDAgNS4yIDAuMDYgOwotICAgIEVORAotICBFTkQgVlNTCi1FTkQgRURGRkhRWDIKLQotTUFDUk8gQU5ENFgxCi0gIENMQVNTIENPUkUgOwotICBPUklHSU4gMCAwIDsKLSAgRk9SRUlHTiBBTkQ0WDEgMCAwIDsKLSAgU0laRSAxLjYgQlkgMS43MSA7Ci0gIFNZTU1FVFJZIFggWSA7Ci0gIFNJVEUgQ29yZVNpdGUgOwotICBQSU4gWQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gT1VUUFVUIDsKLSAgICBBTlRFTk5BRElGRkFSRUEgMS43Mjg1ICBMQVlFUiBNZXRhbDEgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMS40MzUgMS4wMDUgMS41NjUgMS4wODUgOwotICAgICAgICBSRUNUIDEuNDI1IDAuNTA1IDEuNDg1IDAuNjI1IDsKLSAgICAgICAgUkVDVCAxLjQyNSAwLjU2NSAxLjU2NSAwLjYyNSA7Ci0gICAgICAgIFJFQ1QgMS41MDUgMC41NjUgMS41NjUgMS40NyA7Ci0gICAgICAgIFJFQ1QgMS40NyAxLjAwNSAxLjU2NSAxLjQ3IDsKLSAgICBFTkQKLSAgRU5EIFkKLSAgUElOIEEKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDEuMDYgMC43NzUgMS4xNjUgMC45MiA7Ci0gICAgICAgIFJFQ1QgMS4wODUgMC43NzUgMS4xNjUgMS4yNSA7Ci0gICAgRU5ECi0gIEVORCBBCi0gIFBJTiBCCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjY2IDAuNzI1IDAuNzQgMS4yMjUgOwotICAgIEVORAotICBFTkQgQgotICBQSU4gQwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC40NiAwLjk4IDAuNTQgMS4yMDUgOwotICAgICAgICBSRUNUIDAuNDggMC43MjUgMC41NiAxLjA2IDsKLSAgICBFTkQKLSAgRU5EIEMKLSAgUElOIEQKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMjIgMC43NiAwLjM0IDAuODQgOwotICAgICAgICBSRUNUIDAuMjYgMC43MjUgMC4zNCAxLjE4NSA7Ci0gICAgRU5ECi0gIEVORCBECi0gIFBJTiBWREQKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgUE9XRVIgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWREQgVkREISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAxLjY1IDEuNiAxLjcxIDsKLSAgICBFTkQKLSAgRU5EIFZERAotICBQSU4gVlNTCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIEdST1VORCA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZTUyBWU1MhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDAuMDAgMS42IDAuMDYgOwotICAgIEVORAotICBFTkQgVlNTCi1FTkQgQU5ENFgxCi0KLU1BQ1JPIENMS01YMlg4Ci0gIENMQVNTIENPUkUgOwotICBPUklHSU4gMCAwIDsKLSAgRk9SRUlHTiBDTEtNWDJYOCAwIDAgOwotICBTSVpFIDMuNCBCWSAxLjcxIDsKLSAgU1lNTUVUUlkgWCBZIDsKLSAgU0lURSBDb3JlU2l0ZSA7Ci0gIFBJTiBZCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBPVVRQVVQgOwotICAgIEFOVEVOTkFESUZGQVJFQSAxLjcyODUgIExBWUVSIE1ldGFsMSA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAyIDAuNTMgMi4xMiAwLjU5IDsKLSAgICAgICAgUkVDVCAyLjAzNSAwLjk5IDIuMDk1IDEuNDM1IDsKLSAgICAgICAgUkVDVCAyLjA2IDAuNTMgMi4xMiAxLjExIDsKLSAgICAgICAgUkVDVCAyLjA2IDAuOTggMi4xNCAxLjExIDsKLSAgICAgICAgUkVDVCAyLjQ0NSAwLjk5IDIuNTA1IDEuNDM1IDsKLSAgICAgICAgUkVDVCAyLjQxNSAwLjU0IDIuNTM1IDAuNiA7Ci0gICAgICAgIFJFQ1QgMi44NTUgMC45OSAyLjkxNSAxLjQzNSA7Ci0gICAgICAgIFJFQ1QgMi44MjUgMC41NCAyLjk0NSAwLjYxNSA7Ci0gICAgICAgIFJFQ1QgMi40OSAwLjU1NSAzLjMyNSAwLjYxNSA7Ci0gICAgICAgIFJFQ1QgMi4wMzUgMC45OSAzLjMyNSAxLjA1IDsKLSAgICAgICAgUkVDVCAzLjI2NSAwLjQ5NSAzLjMyNSAxLjQzNSA7Ci0gICAgRU5ECi0gIEVORCBZCi0gIFBJTiBCCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAxLjUgMC44NSAxLjc0IDAuOTMgOwotICAgICAgICBSRUNUIDEuNjYgMC44NSAxLjc0IDEuMTkgOwotICAgIEVORAotICBFTkQgQgotICBQSU4gQQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC42MzUgMC43MTUgMC44IDEuMDg1IDsKLSAgICBFTkQKLSAgRU5EIEEKLSAgUElOIFMwCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjI2IDAuOTU1IDAuNTM1IDEuMTEgOwotICAgICAgICBSRUNUIDAuNDc1IDAuOTU1IDAuNTM1IDEuMjQ1IDsKLSAgICAgICAgUkVDVCAwLjkgMC44NjUgMC45NiAxLjI0NSA7Ci0gICAgICAgIFJFQ1QgMC40NzUgMS4xODUgMC45NiAxLjI0NSA7Ci0gICAgICAgIFJFQ1QgMC45IDAuODY1IDEuMDIgMC45MjUgOwotICAgIEVORAotICBFTkQgUzAKLSAgUElOIFZERAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBQT1dFUiA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZERCBWREQhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDEuNjUgMy40IDEuNzEgOwotICAgIEVORAotICBFTkQgVkRECi0gIFBJTiBWU1MKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgR1JPVU5EIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVlNTIFZTUyEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMC4wMCAzLjQgMC4wNiA7Ci0gICAgRU5ECi0gIEVORCBWU1MKLUVORCBDTEtNWDJYOAotCi1NQUNSTyBYTk9SMlgxCi0gIENMQVNTIENPUkUgOwotICBPUklHSU4gMCAwIDsKLSAgRk9SRUlHTiBYTk9SMlgxIDAgMCA7Ci0gIFNJWkUgMS44IEJZIDEuNzEgOwotICBTWU1NRVRSWSBYIFkgOwotICBTSVRFIENvcmVTaXRlIDsKLSAgUElOIFkKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIE9VVFBVVCA7Ci0gICAgQU5URU5OQURJRkZBUkVBIDEuNzI4NSAgTEFZRVIgTWV0YWwxIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDYgMC40MSAwLjIgMC41NCA7Ci0gICAgICAgIFJFQ1QgMC4xNCAwLjQxIDAuMiAxLjMzNSA7Ci0gICAgICAgIFJFQ1QgMC4yMzUgMC4zNSAwLjI5NSAwLjQ3IDsKLSAgICAgICAgUkVDVCAwLjA2IDAuNDEgMC4yOTUgMC40NyA7Ci0gICAgRU5ECi0gIEVORCBZCi0gIFBJTiBCCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAxLjE5IDAuODE1IDEuNTcgMC44OTUgOwotICAgICAgICBSRUNUIDEuNDkgMC43MzUgMS42MSAwLjgxNSA7Ci0gICAgRU5ECi0gIEVORCBCCi0gIFBJTiBBCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjQ2IDAuNzkgMC41NCAwLjk3IDsKLSAgICAgICAgUkVDVCAwLjUzIDAuNTQgMC42MSAwLjg3IDsKLSAgICBFTkQKLSAgRU5EIEEKLSAgUElOIFZERAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBQT1dFUiA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZERCBWREQhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDEuNjUgMS44IDEuNzEgOwotICAgIEVORAotICBFTkQgVkRECi0gIFBJTiBWU1MKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgR1JPVU5EIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVlNTIFZTUyEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMC4wMCAxLjggMC4wNiA7Ci0gICAgRU5ECi0gIEVORCBWU1MKLUVORCBYTk9SMlgxCi0KLU1BQ1JPIEFPSTIyWDQKLSAgQ0xBU1MgQ09SRSA7Ci0gIE9SSUdJTiAwIDAgOwotICBGT1JFSUdOIEFPSTIyWDQgMCAwIDsKLSAgU0laRSAzLjYgQlkgMS43MSA7Ci0gIFNZTU1FVFJZIFggWSA7Ci0gIFNJVEUgQ29yZVNpdGUgOwotICBQSU4gWQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gT1VUUFVUIDsKLSAgICBBTlRFTk5BRElGRkFSRUEgMS43Mjg1ICBMQVlFUiBNZXRhbDEgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC42OTUgMC40NDUgMC44MTUgMC41MDUgOwotICAgICAgICBSRUNUIDEuMzE1IDAuNDQ1IDEuNDM1IDAuNTI1IDsKLSAgICAgICAgUkVDVCAxLjc0IDAuNDY1IDEuOCAwLjg5NSA7Ci0gICAgICAgIFJFQ1QgMS43NCAwLjgxNSAxLjk2NSAwLjg5NSA7Ci0gICAgICAgIFJFQ1QgMS45NiAwLjgzNSAyLjAyIDEuMTE1IDsKLSAgICAgICAgUkVDVCAyLjEzNSAwLjQ0NSAyLjI1NSAwLjUyNSA7Ci0gICAgICAgIFJFQ1QgMi4zNyAwLjk5NSAyLjQzIDEuMTE1IDsKLSAgICAgICAgUkVDVCAwLjc2NSAwLjQ2NSAyLjcxNSAwLjUyNSA7Ci0gICAgICAgIFJFQ1QgMi43OCAwLjk5NSAyLjg0IDEuMTE1IDsKLSAgICAgICAgUkVDVCAyLjY2NSAwLjQ0NSAyLjg3NSAwLjUwNSA7Ci0gICAgICAgIFJFQ1QgMS45NiAwLjk5NSAzLjI1IDEuMDU1IDsKLSAgICAgICAgUkVDVCAzLjE5IDAuOTk1IDMuMjUgMS4xMTUgOwotICAgIEVORAotICBFTkQgWQotICBQSU4gQjEKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDIuMjEgMC44MTUgMi45NDUgMC44OTUgOwotICAgIEVORAotICBFTkQgQjEKLSAgUElOIEExCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjYyNSAwLjgxNSAxLjM2IDAuODk1IDsKLSAgICBFTkQKLSAgRU5EIEExCi0gIFBJTiBBMAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4yMTUgMC42NTUgMS42NCAwLjcxNSA7Ci0gICAgICAgIFJFQ1QgMS40NiAwLjY1NSAxLjU0IDAuOTIgOwotICAgICAgICBSRUNUIDEuNTggMC42MjUgMS42NCAwLjc0NSA7Ci0gICAgICAgIFJFQ1QgMS40NiAwLjY1NSAxLjY0IDAuNzQ1IDsKLSAgICBFTkQKLSAgRU5EIEEwCi0gIFBJTiBCMAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMi4wMzUgMC42MjUgMi4xNjUgMC43MDUgOwotICAgICAgICBSRUNUIDEuOSAwLjY0NSAzLjM1NSAwLjcwNSA7Ci0gICAgRU5ECi0gIEVORCBCMAotICBQSU4gVkRECi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIFBPV0VSIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVkREIFZERCEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMS42NSAzLjYgMS43MSA7Ci0gICAgRU5ECi0gIEVORCBWREQKLSAgUElOIFZTUwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBHUk9VTkQgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWU1MgVlNTISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAwLjAwIDMuNiAwLjA2IDsKLSAgICBFTkQKLSAgRU5EIFZTUwotRU5EIEFPSTIyWDQKLQotTUFDUk8gU01ERkZIUVg0Ci0gIENMQVNTIENPUkUgOwotICBPUklHSU4gMCAwIDsKLSAgRk9SRUlHTiBTTURGRkhRWDQgMCAwIDsKLSAgU0laRSA2LjggQlkgMS43MSA7Ci0gIFNZTU1FVFJZIFggWSA7Ci0gIFNJVEUgQ29yZVNpdGUgOwotICBQSU4gUzAKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDUuNiAwLjY0NSA1LjY2IDAuOTkgOwotICAgICAgICBSRUNUIDUuNiAwLjY0NSA2LjM5IDAuNzA1IDsKLSAgICAgICAgUkVDVCA2LjIzNSAwLjYyNSA2LjM2NSAwLjcwNSA7Ci0gICAgICAgIFJFQ1QgNi4zMyAwLjY0NSA2LjM5IDAuNzY1IDsKLSAgICBFTkQKLSAgRU5EIFMwCi0gIFBJTiBEMQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgNS45MyAwLjgwNSA2LjE2NSAxLjA4NSA7Ci0gICAgICAgIFJFQ1QgNS45MyAwLjgwNSA2LjIzIDAuODg1IDsKLSAgICBFTkQKLSAgRU5EIEQxCi0gIFBJTiBEMAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgNS4yNiAwLjQ1NSA1LjM0IDAuOTU1IDsKLSAgICBFTkQKLSAgRU5EIEQwCi0gIFBJTiBTRQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgNS4wNiAwLjQ1NSA1LjE0IDAuOTU1IDsKLSAgICBFTkQKLSAgRU5EIFNFCi0gIFBJTiBTSQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgNC4wMjUgMC41ODUgNC4xMDUgMC45MiA7Ci0gICAgICAgIFJFQ1QgMy44NiAwLjc5IDQuMTA1IDAuOTIgOwotICAgIEVORAotICBFTkQgU0kKLSAgUElOIENLCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjI2IDAuNDIgMC4zNCAwLjkyIDsKLSAgICBFTkQKLSAgRU5EIENLCi0gIFBJTiBRCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBPVVRQVVQgOwotICAgIEFOVEVOTkFESUZGQVJFQSAxLjcyODUgIExBWUVSIE1ldGFsMSA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjUzIDAuNTM1IDAuNTkgMS4wNSA7Ci0gICAgICAgIFJFQ1QgMC40NiAwLjc5IDAuNTkgMS4wNSA7Ci0gICAgICAgIFJFQ1QgMC44OTUgMC42NSAwLjk1NSAxLjA1IDsKLSAgICAgICAgUkVDVCAwLjk0IDAuNTM1IDEgMC43MSA7Ci0gICAgICAgIFJFQ1QgMC40NiAwLjk5IDEuMTMgMS4wNSA7Ci0gICAgRU5ECi0gIEVORCBRCi0gIFBJTiBWREQKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgUE9XRVIgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWREQgVkREISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAxLjY1IDYuOCAxLjcxIDsKLSAgICBFTkQKLSAgRU5EIFZERAotICBQSU4gVlNTCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIEdST1VORCA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZTUyBWU1MhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDAuMDAgNi44IDAuMDYgOwotICAgIEVORAotICBFTkQgVlNTCi1FTkQgU01ERkZIUVg0Ci0KLU1BQ1JPIEJVRlgzCi0gIENMQVNTIENPUkUgOwotICBPUklHSU4gMCAwIDsKLSAgRk9SRUlHTiBCVUZYMyAwIDAgOwotICBTSVpFIDEuMiBCWSAxLjcxIDsKLSAgU1lNTUVUUlkgWCBZIDsKLSAgU0lURSBDb3JlU2l0ZSA7Ci0gIFBJTiBZCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBPVVRQVVQgOwotICAgIEFOVEVOTkFESUZGQVJFQSAxLjcyODUgIExBWUVSIE1ldGFsMSA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjE3NSAwLjQ4IDAuMjM1IDAuNjIgOwotICAgICAgICBSRUNUIDAuMjE1IDEuMDUgMC4yNzUgMS40NCA7Ci0gICAgICAgIFJFQ1QgMC4yNiAwLjU2IDAuMzIgMS4xMSA7Ci0gICAgICAgIFJFQ1QgMC4yNiAwLjk4IDAuMzQgMS4xMSA7Ci0gICAgICAgIFJFQ1QgMC41NCAwLjQwNSAwLjYgMC42MiA7Ci0gICAgICAgIFJFQ1QgMC4xNzUgMC41NiAwLjYgMC42MiA7Ci0gICAgICAgIFJFQ1QgMC4yMTUgMS4wNSAwLjY4NSAxLjExIDsKLSAgICAgICAgUkVDVCAwLjU4NSAwLjM0NSAwLjY0NSAwLjQ2NSA7Ci0gICAgICAgIFJFQ1QgMC42MjUgMS4wNSAwLjY4NSAxLjQ0IDsKLSAgICBFTkQKLSAgRU5EIFkKLSAgUElOIEEKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuODYgMC43MiAwLjk0IDEuMjIgOwotICAgIEVORAotICBFTkQgQQotICBQSU4gVkRECi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIFBPV0VSIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVkREIFZERCEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMS42NSAxLjIgMS43MSA7Ci0gICAgRU5ECi0gIEVORCBWREQKLSAgUElOIFZTUwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBHUk9VTkQgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWU1MgVlNTISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAwLjAwIDEuMiAwLjA2IDsKLSAgICBFTkQKLSAgRU5EIFZTUwotRU5EIEJVRlgzCi0KLU1BQ1JPIFRMQVROQ0FYMjAKLSAgQ0xBU1MgQ09SRSA7Ci0gIE9SSUdJTiAwIDAgOwotICBGT1JFSUdOIFRMQVROQ0FYMjAgMCAwIDsKLSAgU0laRSA4IEJZIDEuNzEgOwotICBTWU1NRVRSWSBYIFkgOwotICBTSVRFIENvcmVTaXRlIDsKLSAgUElOIEVDSwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gT1VUUFVUIDsKLSAgICBBTlRFTk5BRElGRkFSRUEgMS43Mjg1ICBMQVlFUiBNZXRhbDEgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgNC40NiAwLjM1NSA0LjUyIDAuOTIgOwotICAgICAgICBSRUNUIDQuNDkgMC43ODUgNC41NSAxLjQwNSA7Ci0gICAgICAgIFJFQ1QgNC44NyAwLjM1NSA0LjkzIDAuODQ1IDsKLSAgICAgICAgUkVDVCA0LjkgMC43ODUgNC45NiAxLjQwNSA7Ci0gICAgICAgIFJFQ1QgNS4yMzUgMC42IDUuMjk1IDAuODQ1IDsKLSAgICAgICAgUkVDVCA1LjI4IDAuMzU1IDUuMzQgMC42NiA7Ci0gICAgICAgIFJFQ1QgNS4zMSAwLjc4NSA1LjM3IDEuNDA1IDsKLSAgICAgICAgUkVDVCA1LjY5IDAuMzU1IDUuNzUgMC44NDUgOwotICAgICAgICBSRUNUIDUuNzIgMC43ODUgNS43OCAxLjQwNSA7Ci0gICAgICAgIFJFQ1QgNi4wNTUgMC42MjUgNi4xMTUgMC44NDUgOwotICAgICAgICBSRUNUIDYuMSAwLjM1NSA2LjE2IDAuNjg1IDsKLSAgICAgICAgUkVDVCA2LjEzIDAuNzg1IDYuMTkgMS40MDUgOwotICAgICAgICBSRUNUIDYuNTEgMC4zNTUgNi41NyAwLjg0NSA7Ci0gICAgICAgIFJFQ1QgNi41NCAwLjc4NSA2LjYgMS40MDUgOwotICAgICAgICBSRUNUIDYuODc1IDAuNiA2LjkzNSAwLjg0NSA7Ci0gICAgICAgIFJFQ1QgNi45MiAwLjM1NSA2Ljk4IDAuNjYgOwotICAgICAgICBSRUNUIDYuOTUgMC43ODUgNy4wMSAxLjQwNSA7Ci0gICAgICAgIFJFQ1QgNy4zMyAwLjM1NSA3LjM5IDAuODQ1IDsKLSAgICAgICAgUkVDVCA3LjM2IDAuNzg1IDcuNDIgMS40MDUgOwotICAgICAgICBSRUNUIDcuNjk1IDAuNiA3Ljc1NSAwLjg0NSA7Ci0gICAgICAgIFJFQ1QgNC40NiAwLjc4NSA3LjgzIDAuODQ1IDsKLSAgICAgICAgUkVDVCA3Ljc0IDAuMzU1IDcuOCAwLjY2IDsKLSAgICAgICAgUkVDVCA3Ljc3IDAuNzg1IDcuODMgMS40IDsKLSAgICBFTkQKLSAgRU5EIEVDSwotICBQSU4gRQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC40NiAwLjYxIDAuNTQgMS4xMSA7Ci0gICAgRU5ECi0gIEVORCBFCi0gIFBJTiBDSwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4yNiAwLjYxIDAuMzQgMS4xMSA7Ci0gICAgRU5ECi0gIEVORCBDSwotICBQSU4gVkRECi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIFBPV0VSIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVkREIFZERCEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMS42NSA4IDEuNzEgOwotICAgIEVORAotICBFTkQgVkRECi0gIFBJTiBWU1MKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgR1JPVU5EIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVlNTIFZTUyEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMC4wMCA4IDAuMDYgOwotICAgIEVORAotICBFTkQgVlNTCi1FTkQgVExBVE5DQVgyMAotCi1NQUNSTyBBT0kyMlgyCi0gIENMQVNTIENPUkUgOwotICBPUklHSU4gMCAwIDsKLSAgRk9SRUlHTiBBT0kyMlgyIDAgMCA7Ci0gIFNJWkUgMi4yIEJZIDEuNzEgOwotICBTWU1NRVRSWSBYIFkgOwotICBTSVRFIENvcmVTaXRlIDsKLSAgUElOIFkKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIE9VVFBVVCA7Ci0gICAgQU5URU5OQURJRkZBUkVBIDEuNzI4NSAgTEFZRVIgTWV0YWwxIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDEuMTY1IDAuNDE1IDEuMjI1IDAuODk1IDsKLSAgICAgICAgUkVDVCAxLjAzNSAwLjgxNSAxLjIyNSAwLjg5NSA7Ci0gICAgICAgIFJFQ1QgMS4wMzUgMC44MzUgMS40OSAwLjg5NSA7Ci0gICAgICAgIFJFQ1QgMS40MyAwLjgzNSAxLjQ5IDEuMTY1IDsKLSAgICAgICAgUkVDVCAwLjcxIDAuNDE1IDEuNjg1IDAuNDc1IDsKLSAgICAgICAgUkVDVCAxLjg0IDAuOTk1IDEuOSAxLjE2NSA7Ci0gICAgICAgIFJFQ1QgMS40MyAxLjEwNSAxLjkgMS4xNjUgOwotICAgIEVORAotICBFTkQgWQotICBQSU4gQTEKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuNjU1IDAuNzE1IDAuNzQ1IDAuOTYgOwotICAgIEVORAotICBFTkQgQTEKLSAgUElOIEIxCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAxLjY2IDAuNzQgMS43NCAxLjAzIDsKLSAgICBFTkQKLSAgRU5EIEIxCi0gIFBJTiBCMAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMS41IDAuNTggMS41NiAwLjcxNSA7Ci0gICAgICAgIFJFQ1QgMS4zMjUgMC42NTUgMS41NiAwLjcxNSA7Ci0gICAgICAgIFJFQ1QgMS41IDAuNTggMS45NiAwLjY0IDsKLSAgICAgICAgUkVDVCAxLjg0IDAuNTggMS45NiAwLjg5NSA7Ci0gICAgICAgIFJFQ1QgMS44NCAwLjgxNSAyLjE2NSAwLjg5NSA7Ci0gICAgRU5ECi0gIEVORCBCMAotICBQSU4gQTAKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMjM1IDAuNjI1IDAuNTYgMC43MDUgOwotICAgICAgICBSRUNUIDAuNDggMC41NzUgMC45MiAwLjY1NSA7Ci0gICAgICAgIFJFQ1QgMC44NCAwLjYzNSAxLjA2NSAwLjcxNSA7Ci0gICAgRU5ECi0gIEVORCBBMAotICBQSU4gVkRECi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIFBPV0VSIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVkREIFZERCEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMS42NSAyLjIgMS43MSA7Ci0gICAgRU5ECi0gIEVORCBWREQKLSAgUElOIFZTUwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBHUk9VTkQgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWU1MgVlNTISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAwLjAwIDIuMiAwLjA2IDsKLSAgICBFTkQKLSAgRU5EIFZTUwotRU5EIEFPSTIyWDIKLQotTUFDUk8gTVhJM1g0Ci0gIENMQVNTIENPUkUgOwotICBPUklHSU4gMCAwIDsKLSAgRk9SRUlHTiBNWEkzWDQgMCAwIDsKLSAgU0laRSA0IEJZIDEuNzEgOwotICBTWU1NRVRSWSBYIFkgOwotICBTSVRFIENvcmVTaXRlIDsKLSAgUElOIFkKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIE9VVFBVVCA7Ci0gICAgQU5URU5OQURJRkZBUkVBIDEuNzI4NSAgTEFZRVIgTWV0YWwxIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDIuMDE1IDAuOTY1IDIuMDc1IDEuMzUgOwotICAgICAgICBSRUNUIDIuMDYgMC43OSAyLjEyIDEuMDI1IDsKLSAgICAgICAgUkVDVCAyLjA2IDAuNzkgMi4xNCAwLjkyIDsKLSAgICAgICAgUkVDVCAyLjA2IDAuODYgMi40ODUgMC45MiA7Ci0gICAgICAgIFJFQ1QgMi40MjUgMC40NyAyLjQ4NSAxLjM1IDsKLSAgICAgICAgUkVDVCAyLjAyIDAuNDcgMi42MSAwLjUzIDsKLSAgICBFTkQKLSAgRU5EIFkKLSAgUElOIFMwCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAzIDAuNjQ1IDMuMDYgMS4wMTUgOwotICAgICAgICBSRUNUIDMuMjM1IDAuNjI1IDMuMzI1IDAuNzY1IDsKLSAgICAgICAgUkVDVCAzLjIzNSAwLjYyNSAzLjM2NSAwLjcwNSA7Ci0gICAgICAgIFJFQ1QgMyAwLjY0NSAzLjcxIDAuNzA1IDsKLSAgICBFTkQKLSAgRU5EIFMwCi0gIFBJTiBCCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAzLjYzNSAwLjgwNSAzLjc3IDAuOTQ1IDsKLSAgICAgICAgUkVDVCAzLjMzIDAuODY1IDMuNzcgMC45NDUgOwotICAgIEVORAotICBFTkQgQgotICBQSU4gQQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMi42NiAwLjYzIDIuNzQgMS4xMyA7Ci0gICAgRU5ECi0gIEVORCBBCi0gIFBJTiBTMQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC43MDUgMC43OSAwLjgyNSAwLjg1IDsKLSAgICAgICAgUkVDVCAwLjc2NSAwLjc3IDEuMDkgMC44MyA7Ci0gICAgICAgIFJFQ1QgMS4wNiAwLjYgMS4xNCAwLjc3IDsKLSAgICAgICAgUkVDVCAxLjAzIDAuNjg1IDEuMTQgMC43NyA7Ci0gICAgICAgIFJFQ1QgMS4wMyAwLjcxIDEuNDEgMC43NyA7Ci0gICAgICAgIFJFQ1QgMS4zNSAwLjcxIDEuNDEgMC45NTUgOwotICAgICAgICBSRUNUIDEuMzUgMC44OTUgMS40NyAwLjk1NSA7Ci0gICAgRU5ECi0gIEVORCBTMQotICBQSU4gQwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wNiAwLjQxIDAuMTQgMC41NCA7Ci0gICAgICAgIFJFQ1QgMC4wNiAwLjQ2IDAuMjU1IDAuNTQgOwotICAgICAgICBSRUNUIDAuMTc1IDAuNDYgMC4yNTUgMC43OTUgOwotICAgIEVORAotICBFTkQgQwotICBQSU4gVkRECi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIFBPV0VSIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVkREIFZERCEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMS42NSA0IDEuNzEgOwotICAgIEVORAotICBFTkQgVkRECi0gIFBJTiBWU1MKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgR1JPVU5EIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVlNTIFZTUyEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMC4wMCA0IDAuMDYgOwotICAgIEVORAotICBFTkQgVlNTCi1FTkQgTVhJM1g0Ci0KLU1BQ1JPIFRMQVROQ0FYMgotICBDTEFTUyBDT1JFIDsKLSAgT1JJR0lOIDAgMCA7Ci0gIEZPUkVJR04gVExBVE5DQVgyIDAgMCA7Ci0gIFNJWkUgMy4yIEJZIDEuNzEgOwotICBTWU1NRVRSWSBYIFkgOwotICBTSVRFIENvcmVTaXRlIDsKLSAgUElOIEVDSwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gT1VUUFVUIDsKLSAgICBBTlRFTk5BRElGRkFSRUEgMS43Mjg1ICBMQVlFUiBNZXRhbDEgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC42NiAwLjUyIDAuNzQgMC43MyA7Ci0gICAgICAgIFJFQ1QgMC42NyAwLjY4IDAuNzUgMS4wMiA7Ci0gICAgRU5ECi0gIEVORCBFQ0sKLSAgUElOIEUKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDIuNjE1IDAuNjcgMi42OTUgMS4wNTUgOwotICAgICAgICBSRUNUIDIuNjE1IDAuODE1IDIuODEgMC45MzUgOwotICAgIEVORAotICBFTkQgRQotICBQSU4gQ0sKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMzggMC42NSAwLjQ2IDEuMDIgOwotICAgICAgICBSRUNUIDAuNDYgMC42IDAuNTQgMC43MyA7Ci0gICAgRU5ECi0gIEVORCBDSwotICBQSU4gVkRECi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIFBPV0VSIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVkREIFZERCEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMS42NSAzLjIgMS43MSA7Ci0gICAgRU5ECi0gIEVORCBWREQKLSAgUElOIFZTUwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBHUk9VTkQgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWU1MgVlNTISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAwLjAwIDMuMiAwLjA2IDsKLSAgICBFTkQKLSAgRU5EIFZTUwotRU5EIFRMQVROQ0FYMgotCi1NQUNSTyBPQUkyQkIxWDIKLSAgQ0xBU1MgQ09SRSA7Ci0gIE9SSUdJTiAwIDAgOwotICBGT1JFSUdOIE9BSTJCQjFYMiAwIDAgOwotICBTSVpFIDEuOCBCWSAxLjcxIDsKLSAgU1lNTUVUUlkgWCBZIDsKLSAgU0lURSBDb3JlU2l0ZSA7Ci0gIFBJTiBZCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBPVVRQVVQgOwotICAgIEFOVEVOTkFESUZGQVJFQSAxLjcyODUgIExBWUVSIE1ldGFsMSA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjE3IDAuNjEgMC4yMyAxLjE3IDsKLSAgICAgICAgUkVDVCAwLjA2IDAuOTggMC4yMyAxLjE3IDsKLSAgICAgICAgUkVDVCAwLjM5IDEuMTEgMC40NSAxLjQ4IDsKLSAgICAgICAgUkVDVCAwLjU5NSAwLjUzIDAuNjU1IDAuNjcgOwotICAgICAgICBSRUNUIDAuMTcgMC42MSAwLjY1NSAwLjY3IDsKLSAgICAgICAgUkVDVCAwLjA2IDEuMTEgMC44NiAxLjE3IDsKLSAgICAgICAgUkVDVCAwLjggMS4xMSAwLjg2IDEuNDggOwotICAgIEVORAotICBFTkQgWQotICBQSU4gQjAKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuNDYgMC43NyAwLjU0IDAuOTIgOwotICAgICAgICBSRUNUIDAuMzMgMC43NyAwLjkyIDAuODUgOwotICAgIEVORAotICBFTkQgQjAKLSAgUElOIEEwTgotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMS4wMiAwLjYyNSAxLjE2NSAwLjcwNSA7Ci0gICAgICAgIFJFQ1QgMS4wODUgMC42MjUgMS4xNjUgMC44NSA7Ci0gICAgICAgIFJFQ1QgMS4wODUgMC43NyAxLjM3NSAwLjg1IDsKLSAgICBFTkQKLSAgRU5EIEEwTgotICBQSU4gQTFOCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAxLjYzNSAwLjgyNSAxLjcxNSAxLjI1IDsKLSAgICAgICAgUkVDVCAxLjY2IDEuMTcgMS43NCAxLjMgOwotICAgIEVORAotICBFTkQgQTFOCi0gIFBJTiBWREQKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgUE9XRVIgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWREQgVkREISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAxLjY1IDEuOCAxLjcxIDsKLSAgICBFTkQKLSAgRU5EIFZERAotICBQSU4gVlNTCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIEdST1VORCA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZTUyBWU1MhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDAuMDAgMS44IDAuMDYgOwotICAgIEVORAotICBFTkQgVlNTCi1FTkQgT0FJMkJCMVgyCi0KLU1BQ1JPIE1YSTJYMgotICBDTEFTUyBDT1JFIDsKLSAgT1JJR0lOIDAgMCA7Ci0gIEZPUkVJR04gTVhJMlgyIDAgMCA7Ci0gIFNJWkUgMi42IEJZIDEuNzEgOwotICBTWU1NRVRSWSBYIFkgOwotICBTSVRFIENvcmVTaXRlIDsKLSAgUElOIFkKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIE9VVFBVVCA7Ci0gICAgQU5URU5OQURJRkZBUkVBIDEuNzI4NSAgTEFZRVIgTWV0YWwxIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDEuODQ1IDAuNDYgMS45MDUgMC42IDsKLSAgICAgICAgUkVDVCAxLjg2IDAuNTQgMS45MiAxLjMzNSA7Ci0gICAgICAgIFJFQ1QgMS44NiAwLjYgMS45NCAwLjczIDsKLSAgICBFTkQKLSAgRU5EIFkKLSAgUElOIEIKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDEuNDYgMC43IDEuNTQgMS4xMTUgOwotICAgICAgICBSRUNUIDEuNDYgMC43IDEuNjI1IDAuOTIgOwotICAgIEVORAotICBFTkQgQgotICBQSU4gQQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC42ODUgMC43IDAuNzY1IDAuOTU1IDsKLSAgICAgICAgUkVDVCAwLjQ0IDAuNzkgMC43NjUgMC45NTUgOwotICAgIEVORAotICBFTkQgQQotICBQSU4gUzAKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMjYgMC45NSAwLjM0IDEuMTEgOwotICAgICAgICBSRUNUIDAuODY1IDAuODQgMC45MjUgMS4xMTUgOwotICAgICAgICBSRUNUIDAuMjggMS4wNTUgMC45MjUgMS4xMTUgOwotICAgICAgICBSRUNUIDEuMTQgMC43IDEuMiAwLjkgOwotICAgICAgICBSRUNUIDAuODY1IDAuODQgMS4yIDAuOSA7Ci0gICAgRU5ECi0gIEVORCBTMAotICBQSU4gVkRECi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIFBPV0VSIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVkREIFZERCEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMS42NSAyLjYgMS43MSA7Ci0gICAgRU5ECi0gIEVORCBWREQKLSAgUElOIFZTUwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBHUk9VTkQgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWU1MgVlNTISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAwLjAwIDIuNiAwLjA2IDsKLSAgICBFTkQKLSAgRU5EIFZTUwotRU5EIE1YSTJYMgotCi1NQUNSTyBGSUxMNjQKLSAgQ0xBU1MgQ09SRSA7Ci0gIE9SSUdJTiAwIDAgOwotICBGT1JFSUdOIEZJTEw2NCAwIDAgOwotICBTSVpFIDEyLjggQlkgMS43MSA7Ci0gIFNZTU1FVFJZIFggWSA7Ci0gIFNJVEUgQ29yZVNpdGUgOwotICBQSU4gVkRECi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIFBPV0VSIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVkREIFZERCEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMS42NSAxMi44IDEuNzEgOwotICAgIEVORAotICBFTkQgVkRECi0gIFBJTiBWU1MKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgR1JPVU5EIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVlNTIFZTUyEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMC4wMCAxMi44IDAuMDYgOwotICAgIEVORAotICBFTkQgVlNTCi1FTkQgRklMTDY0Ci0KLU1BQ1JPIFNNREZGSFFYMQotICBDTEFTUyBDT1JFIDsKLSAgT1JJR0lOIDAgMCA7Ci0gIEZPUkVJR04gU01ERkZIUVgxIDAgMCA7Ci0gIFNJWkUgNiBCWSAxLjcxIDsKLSAgU1lNTUVUUlkgWCBZIDsKLSAgU0lURSBDb3JlU2l0ZSA7Ci0gIFBJTiBRCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBPVVRQVVQgOwotICAgIEFOVEVOTkFESUZGQVJFQSAxLjcyODUgIExBWUVSIE1ldGFsMSA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjA2IDAuNiAwLjE0NSAwLjczIDsKLSAgICAgICAgUkVDVCAwLjA4NSAwLjU0IDAuMTQ1IDEuMzQgOwotICAgIEVORAotICBFTkQgUQotICBQSU4gUzAKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDUgMC43NyA1LjA2IDEuMDQgOwotICAgICAgICBSRUNUIDUuMDc1IDAuNjQ1IDUuMTM1IDAuODMgOwotICAgICAgICBSRUNUIDUgMC43NyA1LjEzNSAwLjgzIDsKLSAgICAgICAgUkVDVCA1LjIzNSAwLjYyNSA1LjM2NSAwLjcwNSA7Ci0gICAgICAgIFJFQ1QgNS4wNzUgMC42NDUgNS43OSAwLjcwNSA7Ci0gICAgICAgIFJFQ1QgNS43MyAwLjY0NSA1Ljc5IDAuNzY1IDsKLSAgICBFTkQKLSAgRU5EIFMwCi0gIFBJTiBEMQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgNS4zMyAwLjgwNSA1LjYzIDAuOTI1IDsKLSAgICAgICAgUkVDVCA1LjU1IDAuODA1IDUuNjMgMS4wODUgOwotICAgIEVORAotICBFTkQgRDEKLSAgUElOIEQwCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCA0LjY2IDAuNDg1IDQuNzQgMC45ODUgOwotICAgIEVORAotICBFTkQgRDAKLSAgUElOIFNFCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCA0LjQ2IDAuNiA0LjU0IDEuMSA7Ci0gICAgRU5ECi0gIEVORCBTRQotICBQSU4gU0kKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDMuNDYgMC41ODUgMy41NCAwLjgyIDsKLSAgICAgICAgUkVDVCAzLjUzNSAwLjYgMy42MTUgMS4wMSA7Ci0gICAgRU5ECi0gIEVORCBTSQotICBQSU4gQ0sKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMjYgMC45MiAwLjM0IDEuMTEgOwotICAgICAgICBSRUNUIDAuNDMgMC43OCAwLjUxIDEgOwotICAgICAgICBSRUNUIDAuMjYgMC45MiAwLjUxIDEgOwotICAgIEVORAotICBFTkQgQ0sKLSAgUElOIFZERAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBQT1dFUiA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZERCBWREQhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDEuNjUgNiAxLjcxIDsKLSAgICBFTkQKLSAgRU5EIFZERAotICBQSU4gVlNTCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIEdST1VORCA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZTUyBWU1MhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDAuMDAgNiAwLjA2IDsKLSAgICBFTkQKLSAgRU5EIFZTUwotRU5EIFNNREZGSFFYMQotCi1NQUNSTyBUTEFUU1JYMgotICBDTEFTUyBDT1JFIDsKLSAgT1JJR0lOIDAgMCA7Ci0gIEZPUkVJR04gVExBVFNSWDIgMCAwIDsKLSAgU0laRSA0LjggQlkgMS43MSA7Ci0gIFNZTU1FVFJZIFggWSA7Ci0gIFNJVEUgQ29yZVNpdGUgOwotICBQSU4gUQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gT1VUUFVUIDsKLSAgICBBTlRFTk5BRElGRkFSRUEgMS43Mjg1ICBMQVlFUiBNZXRhbDEgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgNC4yNzUgMC41IDQuMzM1IDAuNjIgOwotICAgICAgICBSRUNUIDQuMjc1IDAuODc1IDQuMzM1IDEuMzQ1IDsKLSAgICAgICAgUkVDVCA0LjMyIDAuNTYgNC4zOCAwLjkzNSA7Ci0gICAgICAgIFJFQ1QgNC4zMiAwLjc5IDQuNTQgMC45MiA7Ci0gICAgRU5ECi0gIEVORCBRCi0gIFBJTiBRTgotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gT1VUUFVUIDsKLSAgICBBTlRFTk5BRElGRkFSRUEgMS43Mjg1ICBMQVlFUiBNZXRhbDEgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMy40NTUgMC40MTUgMy41MTUgMC41MzUgOwotICAgICAgICBSRUNUIDMuNDU1IDAuODUgMy41MTUgMS4zNDUgOwotICAgICAgICBSRUNUIDMuNDc1IDAuNDc1IDMuNTM1IDAuOTEgOwotICAgICAgICBSRUNUIDMuNDc1IDAuNjI1IDMuNzY1IDAuNjg1IDsKLSAgICAgICAgUkVDVCAzLjYzNSAwLjYyNSAzLjc2NSAwLjcwNSA7Ci0gICAgRU5ECi0gIEVORCBRTgotICBQSU4gU04KLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDMuMDM1IDAuNzk1IDMuMTE1IDEuMTI1IDsKLSAgICAgICAgUkVDVCAzLjAzNSAwLjc5NSAzLjE1NSAxLjA4NSA7Ci0gICAgICAgIFJFQ1QgMy4wMzUgMS4wMDUgMy4yODUgMS4wODUgOwotICAgIEVORAotICBFTkQgU04KLSAgUElOIFJOCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAxLjU2NSAwLjkwNSAxLjk0IDAuOTg1IDsKLSAgICAgICAgUkVDVCAxLjg2IDAuOTA1IDEuOTQgMS4xMSA7Ci0gICAgRU5ECi0gIEVORCBSTgotICBQSU4gRAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC40NiAwLjY2IDAuNyAwLjkyIDsKLSAgICAgICAgUkVDVCAwLjYyIDAuNjYgMC43IDEgOwotICAgIEVORAotICBFTkQgRAotICBQSU4gRwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMi4yNiAwLjUzIDIuMzQgMS4wMyA7Ci0gICAgRU5ECi0gIEVORCBHCi0gIFBJTiBWREQKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgUE9XRVIgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWREQgVkREISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAxLjY1IDQuOCAxLjcxIDsKLSAgICBFTkQKLSAgRU5EIFZERAotICBQSU4gVlNTCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIEdST1VORCA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZTUyBWU1MhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDAuMDAgNC44IDAuMDYgOwotICAgIEVORAotICBFTkQgVlNTCi1FTkQgVExBVFNSWDIKLQotTUFDUk8gSU5WWDIwCi0gIENMQVNTIENPUkUgOwotICBPUklHSU4gMCAwIDsKLSAgRk9SRUlHTiBJTlZYMjAgMCAwIDsKLSAgU0laRSAzLjY4NSBCWSAxLjcxIDsKLSAgU1lNTUVUUlkgWCBZICA7Ci0gIFNJVEUgQ29yZVNpdGUgOwotICBQSU4gWQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gT1VUUFVUIDsKLSAgICBBTlRFTk5BRElGRkFSRUEgMS43Mjg1ICBMQVlFUiBNZXRhbDEgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMy41MzUgMC43MiAzLjYxNSAwLjggOwotICAgIEVORAotICBFTkQgWQotICBQSU4gQQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wNyAwLjcyIDAuMTUgMC44NyA7Ci0gICAgRU5ECi0gIEVORCBBCi0gIFBJTiBWREQKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgUE9XRVIgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWREQgVkREISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAxLjY1IDMuNjg1IDEuNzEgOwotICAgIEVORAotICBFTkQgVkRECi0gIFBJTiBWU1MKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgR1JPVU5EIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVlNTIFZTUyEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMC4wMCAzLjY4NSAwLjA2IDsKLSAgICBFTkQKLSAgRU5EIFZTUwotRU5EIElOVlgyMAotCi1NQUNSTyBBT0kzMlg0Ci0gIENMQVNTIENPUkUgOwotICBPUklHSU4gMCAwIDsKLSAgRk9SRUlHTiBBT0kzMlg0IDAgMCA7Ci0gIFNJWkUgNC42IEJZIDEuNzEgOwotICBTWU1NRVRSWSBYIFkgOwotICBTSVRFIENvcmVTaXRlIDsKLSAgUElOIFkKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIE9VVFBVVCA7Ci0gICAgQU5URU5OQURJRkZBUkVBIDEuNzI4NSAgTEFZRVIgTWV0YWwxIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDIuNjQgMC4zMzUgMi43IDAuODk1IDsKLSAgICAgICAgUkVDVCAyLjY0IDAuODE1IDIuOTY1IDAuODk1IDsKLSAgICAgICAgUkVDVCAyLjg3IDAuODE1IDIuOTY1IDEuMTE1IDsKLSAgICAgICAgUkVDVCAzLjI4IDAuOTk1IDMuMzQgMS4xMTUgOwotICAgICAgICBSRUNUIDMuNjkgMC45OTUgMy43NSAxLjExNSA7Ci0gICAgICAgIFJFQ1QgMC44MzUgMC4zMzUgMy44NDUgMC4zOTUgOwotICAgICAgICBSRUNUIDIuODcgMC45OTUgNC4xNiAxLjA1NSA7Ci0gICAgICAgIFJFQ1QgNC4xIDAuOTk1IDQuMTYgMS4xMTUgOwotICAgIEVORAotICBFTkQgWQotICBQSU4gQTIKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuODU1IDAuODE1IDEuMTY1IDAuODk1IDsKLSAgICAgICAgUkVDVCAxLjExIDAuODM1IDEuMTcgMC45ODUgOwotICAgICAgICBSRUNUIDEuODU1IDAuODE1IDEuOTE1IDAuOTg1IDsKLSAgICAgICAgUkVDVCAxLjExIDAuOTI1IDEuOTE1IDAuOTg1IDsKLSAgICBFTkQKLSAgRU5EIEEyCi0gIFBJTiBCMQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMy4xMiAwLjgxNSAzLjg1NSAwLjg5NSA7Ci0gICAgRU5ECi0gIEVORCBCMQotICBQSU4gQTEKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuNjYgMC42NTUgMC43NCAwLjkyIDsKLSAgICAgICAgUkVDVCAwLjUzNSAwLjY1NSAxLjMzIDAuNzE1IDsKLSAgICAgICAgUkVDVCAxLjI3IDAuNjU1IDEuMzMgMC44MjUgOwotICAgICAgICBSRUNUIDEuNjc1IDAuNjU1IDEuNzM1IDAuODI1IDsKLSAgICAgICAgUkVDVCAxLjI3IDAuNzY1IDEuNzM1IDAuODI1IDsKLSAgICAgICAgUkVDVCAxLjY3NSAwLjY1NSAyLjMyIDAuNzE1IDsKLSAgICBFTkQKLSAgRU5EIEExCi0gIFBJTiBBMAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4zNzUgMC40OTUgMC40MzUgMC42OTUgOwotICAgICAgICBSRUNUIDEuNDMgMC40OTUgMS41NSAwLjY2NSA7Ci0gICAgICAgIFJFQ1QgMC4zNzUgMC40OTUgMi41MiAwLjU1NSA7Ci0gICAgICAgIFJFQ1QgMi40MiAwLjY1NSAyLjU0IDAuNzE1IDsKLSAgICAgICAgUkVDVCAyLjQ2IDAuNDk1IDIuNTIgMC43MyA7Ci0gICAgICAgIFJFQ1QgMi40NiAwLjYgMi41NCAwLjczIDsKLSAgICBFTkQKLSAgRU5EIEEwCi0gIFBJTiBCMAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMi44IDAuNjI1IDMuMTY1IDAuNzA1IDsKLSAgICAgICAgUkVDVCAyLjggMC42NDUgNC4yNjUgMC43MDUgOwotICAgIEVORAotICBFTkQgQjAKLSAgUElOIFZERAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBQT1dFUiA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZERCBWREQhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDEuNjUgNC42IDEuNzEgOwotICAgIEVORAotICBFTkQgVkRECi0gIFBJTiBWU1MKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgR1JPVU5EIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVlNTIFZTUyEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMC4wMCA0LjYgMC4wNiA7Ci0gICAgRU5ECi0gIEVORCBWU1MKLUVORCBBT0kzMlg0Ci0KLU1BQ1JPIFNERkZRWDEKLSAgQ0xBU1MgQ09SRSA7Ci0gIE9SSUdJTiAwIDAgOwotICBGT1JFSUdOIFNERkZRWDEgMCAwIDsKLSAgU0laRSA0LjQgQlkgMS43MSA7Ci0gIFNZTU1FVFJZIFggWSA7Ci0gIFNJVEUgQ29yZVNpdGUgOwotICBQSU4gUQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gT1VUUFVUIDsKLSAgICBBTlRFTk5BRElGRkFSRUEgMS43Mjg1ICBMQVlFUiBNZXRhbDEgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wNiAwLjYgMC4xNCAwLjczIDsKLSAgICAgICAgUkVDVCAwLjA4IDAuNTQgMC4xNCAxLjM0IDsKLSAgICBFTkQKLSAgRU5EIFEKLSAgUElOIFNFCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAzLjQ5IDAuNzQ1IDMuNTUgMS4wMDUgOwotICAgICAgICBSRUNUIDMuNTE1IDAuNjQ1IDMuNTc1IDAuODA1IDsKLSAgICAgICAgUkVDVCAzLjY4NSAwLjU4NSAzLjc0NSAwLjcwNSA7Ci0gICAgICAgIFJFQ1QgMy42ODUgMC42MjUgNC4xNjUgMC43MDUgOwotICAgICAgICBSRUNUIDMuNTE1IDAuNjQ1IDQuMTY1IDAuNzA1IDsKLSAgICBFTkQKLSAgRU5EIFNFCi0gIFBJTiBTSQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMy44MzUgMC44MDUgMy45NjUgMS4wMSA7Ci0gICAgICAgIFJFQ1QgMy44MzUgMC44MDUgNC4yMSAwLjg4NSA7Ci0gICAgRU5ECi0gIEVORCBTSQotICBQSU4gRAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMy4wMzUgMC42MjUgMy4yMyAwLjcwNSA7Ci0gICAgICAgIFJFQ1QgMy4xNSAwLjYyIDMuMjMgMS4wMDUgOwotICAgIEVORAotICBFTkQgRAotICBQSU4gQ0sKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMjYgMC45MiAwLjM0IDEuMTE1IDsKLSAgICAgICAgUkVDVCAwLjQyNSAwLjc4IDAuNTA1IDEgOwotICAgICAgICBSRUNUIDAuMjYgMC45MiAwLjUwNSAxIDsKLSAgICBFTkQKLSAgRU5EIENLCi0gIFBJTiBWREQKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgUE9XRVIgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWREQgVkREISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAxLjY1IDQuNCAxLjcxIDsKLSAgICBFTkQKLSAgRU5EIFZERAotICBQSU4gVlNTCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIEdST1VORCA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZTUyBWU1MhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDAuMDAgNC40IDAuMDYgOwotICAgIEVORAotICBFTkQgVlNTCi1FTkQgU0RGRlFYMQotCi1NQUNSTyBJTlZYNAotICBDTEFTUyBDT1JFIDsKLSAgT1JJR0lOIDAgMCA7Ci0gIEZPUkVJR04gSU5WWDQgMCAwIDsKLSAgU0laRSAxLjAyIEJZIDEuNzEgOwotICBTWU1NRVRSWSBYIFkgIDsKLSAgU0lURSBDb3JlU2l0ZSA7Ci0gIFBJTiBZCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBPVVRQVVQgOwotICAgIEFOVEVOTkFESUZGQVJFQSAxLjcyODUgIExBWUVSIE1ldGFsMSA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjg3IDAuNjMgMC45NSAwLjggOwotICAgIEVORAotICBFTkQgWQotICBQSU4gQQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wNyAwLjcyIDAuMTUgMC44NyA7Ci0gICAgRU5ECi0gIEVORCBBCi0gIFBJTiBWREQKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgUE9XRVIgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWREQgVkREISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAxLjY1IDEuMDIgMS43MSA7Ci0gICAgRU5ECi0gIEVORCBWREQKLSAgUElOIFZTUwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBHUk9VTkQgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWU1MgVlNTISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAwLjAwIDEuMDIgMC4wNiA7Ci0gICAgRU5ECi0gIEVORCBWU1MKLUVORCBJTlZYNAotCi1NQUNSTyBDTEtNWDJYMTIKLSAgQ0xBU1MgQ09SRSA7Ci0gIE9SSUdJTiAwIDAgOwotICBGT1JFSUdOIENMS01YMlgxMiAwIDAgOwotICBTSVpFIDMuOCBCWSAxLjcxIDsKLSAgU1lNTUVUUlkgWCBZIDsKLSAgU0lURSBDb3JlU2l0ZSA7Ci0gIFBJTiBZCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBPVVRQVVQgOwotICAgIEFOVEVOTkFESUZGQVJFQSAxLjcyODUgIExBWUVSIE1ldGFsMSA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAxLjU0IDAuNDE1IDEuNiAwLjUzNSA7Ci0gICAgICAgIFJFQ1QgMS41NCAwLjQ3NSAxLjY5NSAwLjUzNSA7Ci0gICAgICAgIFJFQ1QgMS42MzUgMC40NzUgMS42OTUgMS40OCA7Ci0gICAgICAgIFJFQ1QgMS42MzUgMC43OSAxLjc0IDAuOTIgOwotICAgICAgICBSRUNUIDIgMC4zIDIuMDYgMC44NSA7Ci0gICAgICAgIFJFQ1QgMi4wNDUgMC43OSAyLjEwNSAxLjQ4IDsKLSAgICAgICAgUkVDVCAyLjQxIDAuMyAyLjQ3IDAuODUgOwotICAgICAgICBSRUNUIDIuNDU1IDAuNzkgMi41MTUgMS40OCA7Ci0gICAgICAgIFJFQ1QgMi44MiAwLjMgMi44OCAwLjg1IDsKLSAgICAgICAgUkVDVCAyLjg2NSAwLjc5IDIuOTI1IDEuNDggOwotICAgICAgICBSRUNUIDEuNjM1IDAuNzkgMy4yOSAwLjg1IDsKLSAgICAgICAgUkVDVCAzLjIzIDAuMyAzLjI5IDAuOTggOwotICAgICAgICBSRUNUIDMuMjc1IDAuOTIgMy4zMzUgMS40OCA7Ci0gICAgRU5ECi0gIEVORCBZCi0gIFBJTiBCCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAxLjIyNSAwLjk5IDEuMzA1IDEuMjYgOwotICAgICAgICBSRUNUIDEuMjYgMC43OTUgMS4zNCAxLjExIDsKLSAgICBFTkQKLSAgRU5EIEIKLSAgUElOIEEKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuNDYgMC42OCAwLjU2IDEuMDggOwotICAgIEVORAotICBFTkQgQQotICBQSU4gUzAKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMjYgMC45MiAwLjM0IDEuMjYgOwotICAgICAgICBSRUNUIDAuNjYgMS4wMzUgMC43NCAxLjI2IDsKLSAgICAgICAgUkVDVCAwLjI2IDEuMTggMC43NCAxLjI2IDsKLSAgICAgICAgUkVDVCAwLjY2IDEuMDM1IDAuODA1IDEuMTE1IDsKLSAgICBFTkQKLSAgRU5EIFMwCi0gIFBJTiBWREQKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgUE9XRVIgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWREQgVkREISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAxLjY1IDMuOCAxLjcxIDsKLSAgICBFTkQKLSAgRU5EIFZERAotICBQSU4gVlNTCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIEdST1VORCA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZTUyBWU1MhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDAuMDAgMy44IDAuMDYgOwotICAgIEVORAotICBFTkQgVlNTCi1FTkQgQ0xLTVgyWDEyCi0KLU1BQ1JPIERGRlNSWEwKLSAgQ0xBU1MgQ09SRSA7Ci0gIE9SSUdJTiAwIDAgOwotICBGT1JFSUdOIERGRlNSWEwgMCAwIDsKLSAgU0laRSA2LjYgQlkgMS43MSA7Ci0gIFNZTU1FVFJZIFggWSA7Ci0gIFNJVEUgQ29yZVNpdGUgOwotICBQSU4gUQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gT1VUUFVUIDsKLSAgICBBTlRFTk5BRElGRkFSRUEgMS43Mjg1ICBMQVlFUiBNZXRhbDEgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC44NiAwLjYgMC45NDUgMC43MyA7Ci0gICAgICAgIFJFQ1QgMC44ODUgMC41NzUgMC45NDUgMS4zMTUgOwotICAgICAgICBSRUNUIDAuOTQgMC41MTUgMSAwLjYzNSA7Ci0gICAgRU5ECi0gIEVORCBRCi0gIFBJTiBRTgotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gT1VUUFVUIDsKLSAgICBBTlRFTk5BRElGRkFSRUEgMS43Mjg1ICBMQVlFUiBNZXRhbDEgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wNiAwLjYgMC4zMTUgMC43MyA7Ci0gICAgICAgIFJFQ1QgMC4yMzUgMC41NCAwLjMxNSAxLjAyIDsKLSAgICBFTkQKLSAgRU5EIFFOCi0gIFBJTiBDSwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgNi4yNiAwLjc1NSA2LjM0IDEuMjU1IDsKLSAgICBFTkQKLSAgRU5EIENLCi0gIFBJTiBECi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCA1LjY2IDAuNDg1IDUuNzQgMC45MjUgOwotICAgICAgICBSRUNUIDUuNjYgMC43OSA1LjggMC45MjUgOwotICAgIEVORAotICBFTkQgRAotICBQSU4gU04KLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDMuMDM1IDAuNjI1IDMuMTY1IDAuNzY1IDsKLSAgICAgICAgUkVDVCAzLjEwNSAwLjMgMy4xNjUgMC43NjUgOwotICAgICAgICBSRUNUIDIuMDQgMC43MDUgMy4xNjUgMC43NjUgOwotICAgICAgICBSRUNUIDMuMTA1IDAuMyAzLjgwNSAwLjM2IDsKLSAgICAgICAgUkVDVCAzLjc0NSAwLjMgMy44MDUgMC44NiA7Ci0gICAgICAgIFJFQ1QgMy43NDUgMC44IDQuNjA1IDAuODYgOwotICAgIEVORAotICBFTkQgU04KLSAgUElOIFJOCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAxLjE5NSAwLjkgMS4zNjUgMS4xNiA7Ci0gICAgICAgIFJFQ1QgMS4wNDUgMS4wMDUgMS4zNjUgMS4xNiA7Ci0gICAgRU5ECi0gIEVORCBSTgotICBQSU4gVkRECi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIFBPV0VSIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVkREIFZERCEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMS42NSA2LjYgMS43MSA7Ci0gICAgRU5ECi0gIEVORCBWREQKLSAgUElOIFZTUwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBHUk9VTkQgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWU1MgVlNTISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAwLjAwIDYuNiAwLjA2IDsKLSAgICBFTkQKLSAgRU5EIFZTUwotRU5EIERGRlNSWEwKLQotTUFDUk8gRURGRkhRWDgKLSAgQ0xBU1MgQ09SRSA7Ci0gIE9SSUdJTiAwIDAgOwotICBGT1JFSUdOIEVERkZIUVg4IDAgMCA7Ci0gIFNJWkUgNi44IEJZIDEuNzEgOwotICBTWU1NRVRSWSBYIFkgOwotICBTSVRFIENvcmVTaXRlIDsKLSAgUElOIFEKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIE9VVFBVVCA7Ci0gICAgQU5URU5OQURJRkZBUkVBIDEuNzI4NSAgTEFZRVIgTWV0YWwxIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDMuMDMgMC41NCAzLjA5IDAuNjYgOwotICAgICAgICBSRUNUIDMuMDggMC42IDMuMTQgMS4wMjUgOwotICAgICAgICBSRUNUIDMuMDYgMC43OSAzLjE0IDEuMDI1IDsKLSAgICAgICAgUkVDVCAzLjUgMC41NCAzLjU2IDAuNjYgOwotICAgICAgICBSRUNUIDMuOTcgMC41NCA0LjAzIDAuNjYgOwotICAgICAgICBSRUNUIDIuOTk1IDAuOTY1IDQuMzQ1IDEuMDI1IDsKLSAgICAgICAgUkVDVCA0LjQ0IDAuNTQgNC41IDAuNjYgOwotICAgICAgICBSRUNUIDMuMDMgMC42IDQuNSAwLjY2IDsKLSAgICBFTkQKLSAgRU5EIFEKLSAgUElOIEUKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDUuNTk1IDAuMzI1IDUuNjU1IDAuODk1IDsKLSAgICAgICAgUkVDVCA1LjU5NSAwLjMyNSA2LjEgMC4zODUgOwotICAgICAgICBSRUNUIDYuMDQgMC4zMjUgNi4xIDAuNzA1IDsKLSAgICAgICAgUkVDVCA1LjkxNSAwLjY0NSA2LjU2NSAwLjcwNSA7Ci0gICAgICAgIFJFQ1QgNi4yNDUgMC42MjUgNi41NjUgMC43MTUgOwotICAgIEVORAotICBFTkQgRQotICBQSU4gRAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgNi4wNzUgMC44MTUgNi41NzUgMC44OTUgOwotICAgIEVORAotICBFTkQgRAotICBQSU4gQ0sKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMjYgMC43NiAwLjM0IDEuMjYgOwotICAgIEVORAotICBFTkQgQ0sKLSAgUElOIFZERAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBQT1dFUiA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZERCBWREQhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDEuNjUgNi44IDEuNzEgOwotICAgIEVORAotICBFTkQgVkRECi0gIFBJTiBWU1MKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgR1JPVU5EIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVlNTIFZTUyEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMC4wMCA2LjggMC4wNiA7Ci0gICAgRU5ECi0gIEVORCBWU1MKLUVORCBFREZGSFFYOAotCi1NQUNSTyBNWEkzWDIKLSAgQ0xBU1MgQ09SRSA7Ci0gIE9SSUdJTiAwIDAgOwotICBGT1JFSUdOIE1YSTNYMiAwIDAgOwotICBTSVpFIDMuOCBCWSAxLjcxIDsKLSAgU1lNTUVUUlkgWCBZIDsKLSAgU0lURSBDb3JlU2l0ZSA7Ci0gIFBJTiBZCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBPVVRQVVQgOwotICAgIEFOVEVOTkFESUZGQVJFQSAxLjcyODUgIExBWUVSIE1ldGFsMSA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAyLjA2IDAuNTcgMi4xNCAxLjMzNSA7Ci0gICAgICAgIFJFQ1QgMi4wNSAwLjU3IDIuMTcgMC42NSA7Ci0gICAgRU5ECi0gIEVORCBZCi0gIFBJTiBTMAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMi42MzUgMC44NCAyLjY5NSAwLjk2IDsKLSAgICAgICAgUkVDVCAyLjY5IDAuNDkgMi43NSAwLjkgOwotICAgICAgICBSRUNUIDIuOSAwLjQ5IDIuOTYgMC42OCA7Ci0gICAgICAgIFJFQ1QgMi42OSAwLjQ5IDMuNTU1IDAuNTUgOwotICAgICAgICBSRUNUIDMuNDM1IDAuNDkgMy41NTUgMC43MDUgOwotICAgICAgICBSRUNUIDMuNDM1IDAuNjI1IDMuNTY1IDAuNzA1IDsKLSAgICBFTkQKLSAgRU5EIFMwCi0gIFBJTiBCCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAzLjI1NSAwLjY1IDMuMzM1IDAuOTU1IDsKLSAgICAgICAgUkVDVCAzLjA2IDAuNzkgMy4zMzUgMC45NTUgOwotICAgIEVORAotICBFTkQgQgotICBQSU4gQQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMi4yNiAwLjc5IDIuMzQgMC45MiA7Ci0gICAgICAgIFJFQ1QgMi4yOTUgMC40NTUgMi4zNzUgMC44NyA7Ci0gICAgRU5ECi0gIEVORCBBCi0gIFBJTiBTMQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC43MiAwLjg4IDAuNzggMS4wNjUgOwotICAgICAgICBSRUNUIDAuODM1IDEuMDA1IDAuOTY1IDEuMDg1IDsKLSAgICAgICAgUkVDVCAxLjIyIDAuNzEgMS4yOCAxLjA2NSA7Ci0gICAgICAgIFJFQ1QgMS40ODUgMC44NyAxLjU0NSAxLjA2NSA7Ci0gICAgICAgIFJFQ1QgMC43MiAxLjAwNSAxLjU0NSAxLjA2NSA7Ci0gICAgRU5ECi0gIEVORCBTMQotICBQSU4gQwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wNiAwLjk4IDAuMTQgMS4xMSA7Ci0gICAgICAgIFJFQ1QgMC4xOCAwLjczIDAuMjYgMS4wNiA7Ci0gICAgICAgIFJFQ1QgMC4wNiAwLjk4IDAuMjYgMS4wNiA7Ci0gICAgRU5ECi0gIEVORCBDCi0gIFBJTiBWREQKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgUE9XRVIgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWREQgVkREISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAxLjY1IDMuOCAxLjcxIDsKLSAgICBFTkQKLSAgRU5EIFZERAotICBQSU4gVlNTCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIEdST1VORCA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZTUyBWU1MhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDAuMDAgMy44IDAuMDYgOwotICAgIEVORAotICBFTkQgVlNTCi1FTkQgTVhJM1gyCi0KLU1BQ1JPIE1YMlgxCi0gIENMQVNTIENPUkUgOwotICBPUklHSU4gMCAwIDsKLSAgRk9SRUlHTiBNWDJYMSAwIDAgOwotICBTSVpFIDEuOCBCWSAxLjcxIDsKLSAgU1lNTUVUUlkgWCBZIDsKLSAgU0lURSBDb3JlU2l0ZSA7Ci0gIFBJTiBZCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBPVVRQVVQgOwotICAgIEFOVEVOTkFESUZGQVJFQSAxLjcyODUgIExBWUVSIE1ldGFsMSA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAxLjQ4IDAuMzcgMS41NCAxLjQxNSA7Ci0gICAgICAgIFJFQ1QgMS40OCAwLjk4IDEuNzQgMS4xMSA7Ci0gICAgRU5ECi0gIEVORCBZCi0gIFBJTiBCCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAxLjIzNSAwLjcyIDEuMzY1IDEuMDkgOwotICAgIEVORAotICBFTkQgQgotICBQSU4gQQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC41NTUgMC42MSAwLjYzNSAxLjAxNSA7Ci0gICAgICAgIFJFQ1QgMC40NiAwLjc5IDAuNjM1IDEuMDE1IDsKLSAgICBFTkQKLSAgRU5EIEEKLSAgUElOIFMwCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjI2IDAuOTggMC4zNCAxLjE5NSA7Ci0gICAgICAgIFJFQ1QgMC43MzUgMC44MzUgMC44MTUgMS4xOTUgOwotICAgICAgICBSRUNUIDAuMjYgMS4xMTUgMC44MTUgMS4xOTUgOwotICAgIEVORAotICBFTkQgUzAKLSAgUElOIFZERAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBQT1dFUiA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZERCBWREQhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDEuNjUgMS44IDEuNzEgOwotICAgIEVORAotICBFTkQgVkRECi0gIFBJTiBWU1MKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgR1JPVU5EIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVlNTIFZTUyEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMC4wMCAxLjggMC4wNiA7Ci0gICAgRU5ECi0gIEVORCBWU1MKLUVORCBNWDJYMQotCi1NQUNSTyBTRURGRkhRWDQKLSAgQ0xBU1MgQ09SRSA7Ci0gIE9SSUdJTiAwIDAgOwotICBGT1JFSUdOIFNFREZGSFFYNCAwIDAgOwotICBTSVpFIDguMiBCWSAxLjcxIDsKLSAgU1lNTUVUUlkgWCBZIDsKLSAgU0lURSBDb3JlU2l0ZSA7Ci0gIFBJTiBFCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCA3LjA3IDAuNjQ1IDcuMTMgMC44OSA7Ci0gICAgICAgIFJFQ1QgNy4wMSAwLjgzIDcuMTMgMC44OSA7Ci0gICAgICAgIFJFQ1QgNy42MzUgMC42MjUgNy45NyAwLjcwNSA7Ci0gICAgICAgIFJFQ1QgNy4wNyAwLjY0NSA3Ljk3IDAuNzA1IDsKLSAgICAgICAgUkVDVCA3LjkxIDAuNjI1IDcuOTcgMC43NDUgOwotICAgIEVORAotICBFTkQgRQotICBQSU4gRAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgNy4zOSAwLjgwNSA3LjU2NSAwLjk2NSA7Ci0gICAgICAgIFJFQ1QgNy4zOSAwLjgwNSA3LjgxIDAuODg1IDsKLSAgICBFTkQKLSAgRU5EIEQKLSAgUElOIFNFCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCA2LjQxNSAwLjY5NSA2LjQ5NSAwLjk0IDsKLSAgICAgICAgUkVDVCA2LjQxNSAwLjgxNSA2Ljc1IDAuOTQgOwotICAgIEVORAotICBFTkQgU0UKLSAgUElOIFNJCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCA1LjI2IDAuNzEgNS4zNCAxLjIxIDsKLSAgICBFTkQKLSAgRU5EIFNJCi0gIFBJTiBDSwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgNC44MzUgMC43NzUgNS4xNiAwLjg5NSA7Ci0gICAgICAgIFJFQ1QgNS4wOCAwLjcxIDUuMTYgMC45NjUgOwotICAgIEVORAotICBFTkQgQ0sKLSAgUElOIFEKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIE9VVFBVVCA7Ci0gICAgQU5URU5OQURJRkZBUkVBIDEuNzI4NSAgTEFZRVIgTWV0YWwxIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMjYgMC41NCAwLjMzNSAxLjM1IDsKLSAgICAgICAgUkVDVCAwLjI2IDAuNiAwLjM0IDAuNzMgOwotICAgICAgICBSRUNUIDAuMjYgMC42NyAwLjc0NSAwLjczIDsKLSAgICAgICAgUkVDVCAwLjY4NSAwLjU0IDAuNzQ1IDEuMzUgOwotICAgIEVORAotICBFTkQgUQotICBQSU4gVkRECi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIFBPV0VSIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVkREIFZERCEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMS42NSA4LjIgMS43MSA7Ci0gICAgRU5ECi0gIEVORCBWREQKLSAgUElOIFZTUwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBHUk9VTkQgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWU1MgVlNTISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAwLjAwIDguMiAwLjA2IDsKLSAgICBFTkQKLSAgRU5EIFZTUwotRU5EIFNFREZGSFFYNAotCi1NQUNSTyBNWEk0WDQKLSAgQ0xBU1MgQ09SRSA7Ci0gIE9SSUdJTiAwIDAgOwotICBGT1JFSUdOIE1YSTRYNCAwIDAgOwotICBTSVpFIDUuNiBCWSAxLjcxIDsKLSAgU1lNTUVUUlkgWCBZIDsKLSAgU0lURSBDb3JlU2l0ZSA7Ci0gIFBJTiBTMQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMi44MzUgMC43NzUgMi44OTUgMS4zMTUgOwotICAgICAgICBSRUNUIDQuNjI1IDEuMDk1IDQuNjg1IDEuMzE1IDsKLSAgICAgICAgUkVDVCAyLjgzNSAxLjI1NSA0LjY4NSAxLjMxNSA7Ci0gICAgICAgIFJFQ1QgNC44MzUgMC44MTUgNC45NjUgMC44OTUgOwotICAgICAgICBSRUNUIDQuOTA1IDAuODE1IDQuOTY1IDEuMTU1IDsKLSAgICAgICAgUkVDVCA0LjYyNSAxLjA5NSA0Ljk2NSAxLjE1NSA7Ci0gICAgICAgIFJFQ1QgNC44MzUgMC44MTUgNS4yMDUgMC44NzUgOwotICAgIEVORAotICBFTkQgUzEKLSAgUElOIFkKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIE9VVFBVVCA7Ci0gICAgQU5URU5OQURJRkZBUkVBIDEuNzI4NSAgTEFZRVIgTWV0YWwxIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDQuMDggMC4zNzUgNC4xNCAwLjY0NSA7Ci0gICAgICAgIFJFQ1QgNC4xNCAwLjU4NSA0LjIgMC45OTUgOwotICAgICAgICBSRUNUIDQuMDggMC45MzUgNC4yIDAuOTk1IDsKLSAgICAgICAgUkVDVCA0LjQ2IDAuNTg1IDQuNTQgMC43MyA7Ci0gICAgICAgIFJFQ1QgNC40OCAwLjU4NSA0LjU0IDAuOTk1IDsKLSAgICAgICAgUkVDVCA0LjQ4IDAuOTM1IDQuNjcgMC45OTUgOwotICAgICAgICBSRUNUIDQuNzggMC4zNzUgNC44NCAwLjY0NSA7Ci0gICAgICAgIFJFQ1QgNC4wOCAwLjU4NSA0Ljg0IDAuNjQ1IDsKLSAgICBFTkQKLSAgRU5EIFkKLSAgUElOIEQKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDIuNDQ1IDAuNzUgMi41MjUgMS4xIDsKLSAgICAgICAgUkVDVCAyLjQ2IDAuOTggMi41NzUgMS4yIDsKLSAgICBFTkQKLSAgRU5EIEQKLSAgUElOIEMKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDEuNjggMC43MiAxLjc2IDEuMiA7Ci0gICAgICAgIFJFQ1QgMS42NiAwLjk4IDEuNzYgMS4yIDsKLSAgICBFTkQKLSAgRU5EIEMKLSAgUElOIEIKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDEuNDYgMC45OCAxLjU0IDEuMiA7Ci0gICAgICAgIFJFQ1QgMS40OCAwLjcyIDEuNTYgMS4xIDsKLSAgICBFTkQKLSAgRU5EIEIKLSAgUElOIEEKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuNDYgMC44NjUgMC41OCAxLjIwNSA7Ci0gICAgRU5ECi0gIEVORCBBCi0gIFBJTiBTMAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4yNiAwLjY4NSAwLjM0IDAuOTIgOwotICAgICAgICBSRUNUIDAuMjYgMC42ODUgMC44OSAwLjc2NSA7Ci0gICAgICAgIFJFQ1QgMC44MSAwLjY4NSAwLjg5IDAuOTQgOwotICAgIEVORAotICBFTkQgUzAKLSAgUElOIFZERAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBQT1dFUiA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZERCBWREQhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDEuNjUgNS42IDEuNzEgOwotICAgIEVORAotICBFTkQgVkRECi0gIFBJTiBWU1MKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgR1JPVU5EIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVlNTIFZTUyEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMC4wMCA1LjYgMC4wNiA7Ci0gICAgRU5ECi0gIEVORCBWU1MKLUVORCBNWEk0WDQKLQotTUFDUk8gRExZMVg0Ci0gIENMQVNTIENPUkUgOwotICBPUklHSU4gMCAwIDsKLSAgRk9SRUlHTiBETFkxWDQgMCAwIDsKLSAgU0laRSAyLjIgQlkgMS43MSA7Ci0gIFNZTU1FVFJZIFggWSA7Ci0gIFNJVEUgQ29yZVNpdGUgOwotICBQSU4gWQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gT1VUUFVUIDsKLSAgICBBTlRFTk5BRElGRkFSRUEgMS43Mjg1ICBMQVlFUiBNZXRhbDEgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMS40MzUgMC41MiAxLjQ5NSAwLjY2IDsKLSAgICAgICAgUkVDVCAxLjQzNSAwLjkgMS40OTUgMS4yOSA7Ci0gICAgICAgIFJFQ1QgMS40NiAwLjYgMS41MiAwLjk2IDsKLSAgICAgICAgUkVDVCAxLjQ2IDAuNzkgMS41NCAwLjk2IDsKLSAgICAgICAgUkVDVCAxLjQzNSAwLjkgMS45MDUgMC45NiA7Ci0gICAgICAgIFJFQ1QgMS44NDUgMC41MiAxLjkwNSAwLjY2IDsKLSAgICAgICAgUkVDVCAxLjQzNSAwLjYgMS45MDUgMC42NiA7Ci0gICAgICAgIFJFQ1QgMS44NDUgMC45IDEuOTA1IDEuMjkgOwotICAgIEVORAotICBFTkQgWQotICBQSU4gQQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4yMzUgMC43NzUgMC4zMTUgMS4xNDUgOwotICAgICAgICBSRUNUIDAuMjM1IDAuNzc1IDAuNDQ1IDAuODk1IDsKLSAgICBFTkQKLSAgRU5EIEEKLSAgUElOIFZERAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBQT1dFUiA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZERCBWREQhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDEuNjUgMi4yIDEuNzEgOwotICAgIEVORAotICBFTkQgVkRECi0gIFBJTiBWU1MKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgR1JPVU5EIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVlNTIFZTUyEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMC4wMCAyLjIgMC4wNiA7Ci0gICAgRU5ECi0gIEVORCBWU1MKLUVORCBETFkxWDQKLQotTUFDUk8gU0RGRlNSSFFYMgotICBDTEFTUyBDT1JFIDsKLSAgT1JJR0lOIDAgMCA7Ci0gIEZPUkVJR04gU0RGRlNSSFFYMiAwIDAgOwotICBTSVpFIDguMiBCWSAxLjcxIDsKLSAgU1lNTUVUUlkgWCBZIDsKLSAgU0lURSBDb3JlU2l0ZSA7Ci0gIFBJTiBRCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBPVVRQVVQgOwotICAgIEFOVEVOTkFESUZGQVJFQSAxLjcyODUgIExBWUVSIE1ldGFsMSA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjM2IDAuNTQgMC40MiAwLjggOwotICAgICAgICBSRUNUIDAuNCAwLjc0IDAuNDYgMS4wOSA7Ci0gICAgICAgIFJFQ1QgMC40NDUgMS4wMyAwLjUwNSAxLjMgOwotICAgICAgICBSRUNUIDAuNDQ1IDEuMTcgMC41NCAxLjMgOwotICAgIEVORAotICBFTkQgUQotICBQSU4gU0UKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDcgMC42NTUgNy4wNiAwLjkzNSA7Ci0gICAgICAgIFJFQ1QgNyAwLjY1NSA3LjkyIDAuNzE1IDsKLSAgICAgICAgUkVDVCA3Ljg2IDAuNzE1IDcuOTQgMC45MiA7Ci0gICAgRU5ECi0gIEVORCBTRQotICBQSU4gU0kKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDcuMzggMC44NSA3Ljc2IDAuOTMgOwotICAgICAgICBSRUNUIDcuNDM1IDAuODE1IDcuNzYgMS4wMTUgOwotICAgIEVORAotICBFTkQgU0kKLSAgUElOIEQKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDYuNjYgMC41IDYuNzQgMSA7Ci0gICAgRU5ECi0gIEVORCBECi0gIFBJTiBDSwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgNi40OCAwLjY2IDYuNTYgMC44OTUgOwotICAgICAgICBSRUNUIDYuMjE1IDAuODE1IDYuNTYgMC44OTUgOwotICAgIEVORAotICBFTkQgQ0sKLSAgUElOIFNOCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAxLjYzNSAwLjgxNSAxLjc4IDAuODk1IDsKLSAgICAgICAgUkVDVCAxLjcyIDAuODE1IDEuNzggMSA7Ci0gICAgICAgIFJFQ1QgMS43MiAwLjk0IDIuNzYgMSA7Ci0gICAgICAgIFJFQ1QgMi43IDAuOTQgMi43NiAxLjM1IDsKLSAgICAgICAgUkVDVCAzLjUgMS4xNTUgMy41NiAxLjM1IDsKLSAgICAgICAgUkVDVCAyLjcgMS4yOSAzLjU2IDEuMzUgOwotICAgICAgICBSRUNUIDMuNSAxLjE1NSAzLjk0IDEuMjE1IDsKLSAgICAgICAgUkVDVCAzLjg4IDEuMTU1IDMuOTQgMS4zNCA7Ci0gICAgICAgIFJFQ1QgMy44OCAxLjI4IDQuNjQgMS4zNCA7Ci0gICAgRU5ECi0gIEVORCBTTgotICBQSU4gUk4KLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDEuMjYgMC43NSAxLjM0IDEgOwotICAgICAgICBSRUNUIDEuMjA1IDAuNzUgMS41MzUgMC44MyA7Ci0gICAgRU5ECi0gIEVORCBSTgotICBQSU4gVkRECi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIFBPV0VSIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVkREIFZERCEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMS42NSA4LjIgMS43MSA7Ci0gICAgRU5ECi0gIEVORCBWREQKLSAgUElOIFZTUwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBHUk9VTkQgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWU1MgVlNTISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAwLjAwIDguMiAwLjA2IDsKLSAgICBFTkQKLSAgRU5EIFZTUwotRU5EIFNERkZTUkhRWDIKLQotTUFDUk8gWE9SMlhMCi0gIENMQVNTIENPUkUgOwotICBPUklHSU4gMCAwIDsKLSAgRk9SRUlHTiBYT1IyWEwgMCAwIDsKLSAgU0laRSAxLjggQlkgMS43MSA7Ci0gIFNZTU1FVFJZIFggWSA7Ci0gIFNJVEUgQ29yZVNpdGUgOwotICBQSU4gWQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gT1VUUFVUIDsKLSAgICBBTlRFTk5BRElGRkFSRUEgMS43Mjg1ICBMQVlFUiBNZXRhbDEgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wNiAwLjYgMC4yIDAuNzMgOwotICAgICAgICBSRUNUIDAuMTIgMC40NCAwLjIgMS4xOCA7Ci0gICAgRU5ECi0gIEVORCBZCi0gIFBJTiBCCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjg3NSAwLjgxNSAwLjkzNSAwLjkzNSA7Ci0gICAgICAgIFJFQ1QgMS4wMzUgMC44MTUgMS4xNjUgMC44OTUgOwotICAgICAgICBSRUNUIDEuMTMgMC44IDEuMjUgMC44NzUgOwotICAgICAgICBSRUNUIDAuODc1IDAuODE1IDEuNTQgMC44NzUgOwotICAgIEVORAotICBFTkQgQgotICBQSU4gQQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC40NiAwLjk4IDAuNTQgMS4yNSA7Ci0gICAgICAgIFJFQ1QgMC41MzUgMC44MjUgMC42MTUgMS4wNiA7Ci0gICAgRU5ECi0gIEVORCBBCi0gIFBJTiBWREQKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgUE9XRVIgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWREQgVkREISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAxLjY1IDEuOCAxLjcxIDsKLSAgICBFTkQKLSAgRU5EIFZERAotICBQSU4gVlNTCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIEdST1VORCA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZTUyBWU1MhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDAuMDAgMS44IDAuMDYgOwotICAgIEVORAotICBFTkQgVlNTCi1FTkQgWE9SMlhMCi0KLU1BQ1JPIFNFREZGSFFYMQotICBDTEFTUyBDT1JFIDsKLSAgT1JJR0lOIDAgMCA7Ci0gIEZPUkVJR04gU0VERkZIUVgxIDAgMCA7Ci0gIFNJWkUgNi42IEJZIDEuNzEgOwotICBTWU1NRVRSWSBYIFkgOwotICBTSVRFIENvcmVTaXRlIDsKLSAgUElOIFEKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIE9VVFBVVCA7Ci0gICAgQU5URU5OQURJRkZBUkVBIDEuNzI4NSAgTEFZRVIgTWV0YWwxIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDMuMjYgMC42IDMuMzQgMC43MyA7Ci0gICAgICAgIFJFQ1QgMy40ODUgMC42NyAzLjU0NSAxLjI5IDsKLSAgICAgICAgUkVDVCAzLjU0NSAwLjU0IDMuNjA1IDAuNzMgOwotICAgICAgICBSRUNUIDMuMjYgMC42NyAzLjYwNSAwLjczIDsKLSAgICBFTkQKLSAgRU5EIFEKLSAgUElOIENLCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCA2LjI2IDAuNjEgNi4zNCAxLjExIDsKLSAgICBFTkQKLSAgRU5EIENLCi0gIFBJTiBTSQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMi43MDUgMC42OCAyLjgyNSAwLjg5NSA7Ci0gICAgICAgIFJFQ1QgMi43MDUgMC44MTUgMi45NzUgMC44OTUgOwotICAgICAgICBSRUNUIDIuODM1IDAuODE1IDIuOTc1IDAuOTkgOwotICAgIEVORAotICBFTkQgU0kKLSAgUElOIFNFCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAxLjU0IDAuNjI1IDEuODA1IDAuNzA1IDsKLSAgICAgICAgUkVDVCAxLjcyNSAwLjYyNSAxLjgwNSAwLjk0IDsKLSAgICBFTkQKLSAgRU5EIFNFCi0gIFBJTiBECi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjQ3NSAwLjY1NSAwLjU1NSAwLjk3IDsKLSAgICAgICAgUkVDVCAwLjQ3NSAwLjc5IDAuNzQgMC45NyA7Ci0gICAgRU5ECi0gIEVORCBECi0gIFBJTiBFCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjIzNSAwLjYyNSAwLjM2NSAwLjcwNSA7Ci0gICAgICAgIFJFQ1QgMC4zMTUgMC40OTUgMC4zNzUgMC42ODUgOwotICAgICAgICBSRUNUIDAuMzE1IDAuNDk1IDAuOTYgMC41NTUgOwotICAgICAgICBSRUNUIDAuOSAwLjQ5NSAwLjk2IDAuNjk1IDsKLSAgICBFTkQKLSAgRU5EIEUKLSAgUElOIFZERAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBQT1dFUiA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZERCBWREQhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDEuNjUgNi42IDEuNzEgOwotICAgIEVORAotICBFTkQgVkRECi0gIFBJTiBWU1MKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgR1JPVU5EIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVlNTIFZTUyEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMC4wMCA2LjYgMC4wNiA7Ci0gICAgRU5ECi0gIEVORCBWU1MKLUVORCBTRURGRkhRWDEKLQotTUFDUk8gVExBVE5YTAotICBDTEFTUyBDT1JFIDsKLSAgT1JJR0lOIDAgMCA7Ci0gIEZPUkVJR04gVExBVE5YTCAwIDAgOwotICBTSVpFIDMuMiBCWSAxLjcxIDsKLSAgU1lNTUVUUlkgWCBZIDsKLSAgU0lURSBDb3JlU2l0ZSA7Ci0gIFBJTiBRCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBPVVRQVVQgOwotICAgIEFOVEVOTkFESUZGQVJFQSAxLjcyODUgIExBWUVSIE1ldGFsMSA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAzLjA2IDAuNDA1IDMuMTQgMS4wMiA7Ci0gICAgRU5ECi0gIEVORCBRCi0gIFBJTiBRTgotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gT1VUUFVUIDsKLSAgICBBTlRFTk5BRElGRkFSRUEgMS43Mjg1ICBMQVlFUiBNZXRhbDEgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMi4yNiAwLjQwNSAyLjM0IDEuMzg1IDsKLSAgICAgICAgUkVDVCAyLjI2IDEuMjY1IDIuMzU1IDEuMzg1IDsKLSAgICBFTkQKLSAgRU5EIFFOCi0gIFBJTiBHTgotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMi4wNiAwLjc2IDIuMTQgMS4yNiA7Ci0gICAgRU5ECi0gIEVORCBHTgotICBQSU4gRAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4yNiAwLjk1NSAwLjM0IDEuMTIgOwotICAgICAgICBSRUNUIDAuNCAwLjc2IDAuNDggMS4xMSA7Ci0gICAgICAgIFJFQ1QgMC4yNiAwLjk1NSAwLjQ4IDEuMTEgOwotICAgIEVORAotICBFTkQgRAotICBQSU4gVkRECi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIFBPV0VSIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVkREIFZERCEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMS42NSAzLjIgMS43MSA7Ci0gICAgRU5ECi0gIEVORCBWREQKLSAgUElOIFZTUwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBHUk9VTkQgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWU1MgVlNTISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAwLjAwIDMuMiAwLjA2IDsKLSAgICBFTkQKLSAgRU5EIFZTUwotRU5EIFRMQVROWEwKLQotTUFDUk8gT0FJMkJCMlhMCi0gIENMQVNTIENPUkUgOwotICBPUklHSU4gMCAwIDsKLSAgRk9SRUlHTiBPQUkyQkIyWEwgMCAwIDsKLSAgU0laRSAyLjIgQlkgMS43MSA7Ci0gIFNZTU1FVFJZIFggWSA7Ci0gIFNJVEUgQ29yZVNpdGUgOwotICBQSU4gWQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gT1VUUFVUIDsKLSAgICBBTlRFTk5BRElGRkFSRUEgMS43Mjg1ICBMQVlFUiBNZXRhbDEgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMS42MzUgMS4xNSAxLjc2NSAxLjI3NSA7Ci0gICAgICAgIFJFQ1QgMS41NTUgMS4yMTUgMS43NjUgMS4yNzUgOwotICAgICAgICBSRUNUIDEuODQgMC4zNTUgMS45IDEuMjEgOwotICAgICAgICBSRUNUIDEuNjM1IDEuMTUgMS45IDEuMjEgOwotICAgIEVORAotICBFTkQgWQotICBQSU4gQjAKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDIgMC42NSAyLjA4IDEuMDQgOwotICAgICAgICBSRUNUIDIuMDYgMC42IDIuMTQgMC43MyA7Ci0gICAgRU5ECi0gIEVORCBCMAotICBQSU4gQjEKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDEuNjYgMC41NSAxLjc0IDEuMDUgOwotICAgIEVORAotICBFTkQgQjEKLSAgUElOIEEwTgotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC40NiAwLjU5IDAuNTQgMS4wOSA7Ci0gICAgRU5ECi0gIEVORCBBME4KLSAgUElOIEExTgotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4yNiAwLjUgMC4zNCAxIDsKLSAgICBFTkQKLSAgRU5EIEExTgotICBQSU4gVkRECi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIFBPV0VSIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVkREIFZERCEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMS42NSAyLjIgMS43MSA7Ci0gICAgRU5ECi0gIEVORCBWREQKLSAgUElOIFZTUwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBHUk9VTkQgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWU1MgVlNTISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAwLjAwIDIuMiAwLjA2IDsKLSAgICBFTkQKLSAgRU5EIFZTUwotRU5EIE9BSTJCQjJYTAotCi1NQUNSTyBPUjRYTAotICBDTEFTUyBDT1JFIDsKLSAgT1JJR0lOIDAgMCA7Ci0gIEZPUkVJR04gT1I0WEwgMCAwIDsKLSAgU0laRSAxLjYgQlkgMS43MSA7Ci0gIFNZTU1FVFJZIFggWSA7Ci0gIFNJVEUgQ29yZVNpdGUgOwotICBQSU4gWQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gT1VUUFVUIDsKLSAgICBBTlRFTk5BRElGRkFSRUEgMS43Mjg1ICBMQVlFUiBNZXRhbDEgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMS40NiAwLjM3IDEuNTQgMS4zMTUgOwotICAgIEVORAotICBFTkQgWQotICBQSU4gQgotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC42NiAwLjYgMC43NCAwLjczIDsKLSAgICAgICAgUkVDVCAwLjY3NSAwLjY1IDAuNzU1IDEuMDg1IDsKLSAgICBFTkQKLSAgRU5EIEIKLSAgUElOIEMKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuNDggMC42MyAwLjU2IDEuMTEgOwotICAgICAgICBSRUNUIDAuNDYgMC45OCAwLjU2IDEuMTEgOwotICAgIEVORAotICBFTkQgQwotICBQSU4gRAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4yNiAwLjYgMC4zNCAxLjEgOwotICAgIEVORAotICBFTkQgRAotICBQSU4gQQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMS4wNiAwLjU5IDEuMiAwLjczIDsKLSAgICAgICAgUkVDVCAxLjEyIDAuNTkgMS4yIDEuMDMgOwotICAgIEVORAotICBFTkQgQQotICBQSU4gVkRECi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIFBPV0VSIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVkREIFZERCEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMS42NSAxLjYgMS43MSA7Ci0gICAgRU5ECi0gIEVORCBWREQKLSAgUElOIFZTUwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBHUk9VTkQgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWU1MgVlNTISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAwLjAwIDEuNiAwLjA2IDsKLSAgICBFTkQKLSAgRU5EIFZTUwotRU5EIE9SNFhMCi0KLU1BQ1JPIEZJTEw4Ci0gIENMQVNTIENPUkUgOwotICBPUklHSU4gMCAwIDsKLSAgRk9SRUlHTiBGSUxMOCAwIDAgOwotICBTSVpFIDEuNiBCWSAxLjcxIDsKLSAgU1lNTUVUUlkgWCBZIDsKLSAgU0lURSBDb3JlU2l0ZSA7Ci0gIFBJTiBWREQKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgUE9XRVIgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWREQgVkREISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAxLjY1IDEuNiAxLjcxIDsKLSAgICBFTkQKLSAgRU5EIFZERAotICBQSU4gVlNTCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIEdST1VORCA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZTUyBWU1MhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDAuMDAgMS42IDAuMDYgOwotICAgIEVORAotICBFTkQgVlNTCi1FTkQgRklMTDgKLQotTUFDUk8gREZGUVhMCi0gIENMQVNTIENPUkUgOwotICBPUklHSU4gMCAwIDsKLSAgRk9SRUlHTiBERkZRWEwgMCAwIDsKLSAgU0laRSAzLjIgQlkgMS43MSA7Ci0gIFNZTU1FVFJZIFggWSA7Ci0gIFNJVEUgQ29yZVNpdGUgOwotICBQSU4gUQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gT1VUUFVUIDsKLSAgICBBTlRFTk5BRElGRkFSRUEgMS43Mjg1ICBMQVlFUiBNZXRhbDEgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wNiAwLjQ5NSAwLjE0IDEuMzEgOwotICAgIEVORAotICBFTkQgUQotICBQSU4gRAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMi43NTUgMC44NDUgMi45NjUgMS4xODUgOwotICAgICAgICBSRUNUIDIuNzMgMS4xMDUgMi45NjUgMS4xODUgOwotICAgICAgICBSRUNUIDIuNzU1IDAuODQ1IDIuOTcgMC45MjUgOwotICAgIEVORAotICBFTkQgRAotICBQSU4gQ0sKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuNDA1IDAuODUgMC40ODUgMS4xODUgOwotICAgICAgICBSRUNUIDAuMjQgMC45OCAwLjQ4NSAxLjE4NSA7Ci0gICAgRU5ECi0gIEVORCBDSwotICBQSU4gVkRECi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIFBPV0VSIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVkREIFZERCEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMS42NSAzLjIgMS43MSA7Ci0gICAgRU5ECi0gIEVORCBWREQKLSAgUElOIFZTUwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBHUk9VTkQgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWU1MgVlNTISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAwLjAwIDMuMiAwLjA2IDsKLSAgICBFTkQKLSAgRU5EIFZTUwotRU5EIERGRlFYTAotCi1NQUNSTyBBTkQyWEwKLSAgQ0xBU1MgQ09SRSA7Ci0gIE9SSUdJTiAwIDAgOwotICBGT1JFSUdOIEFORDJYTCAwIDAgOwotICBTSVpFIDEgQlkgMS43MSA7Ci0gIFNZTU1FVFJZIFggWSA7Ci0gIFNJVEUgQ29yZVNpdGUgOwotICBQSU4gWQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gT1VUUFVUIDsKLSAgICBBTlRFTk5BRElGRkFSRUEgMS43Mjg1ICBMQVlFUiBNZXRhbDEgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC44NiAwLjYgMC45NCAwLjczIDsKLSAgICAgICAgUkVDVCAwLjg3IDAuNTMgMC45NCAxLjIzNSA7Ci0gICAgRU5ECi0gIEVORCBZCi0gIFBJTiBBCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjYyNSAwLjk0NSAwLjcwNSAxLjI1IDsKLSAgICAgICAgUkVDVCAwLjY2IDEuMTcgMC43NCAxLjQxIDsKLSAgICBFTkQKLSAgRU5EIEEKLSAgUElOIEIKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDYgMC43OSAwLjE0IDEuMDI1IDsKLSAgICAgICAgUkVDVCAwLjI4NSAwLjc1IDAuMzY1IDAuODcgOwotICAgICAgICBSRUNUIDAuMDYgMC43OSAwLjM2NSAwLjg3IDsKLSAgICBFTkQKLSAgRU5EIEIKLSAgUElOIFZERAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBQT1dFUiA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZERCBWREQhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDEuNjUgMSAxLjcxIDsKLSAgICBFTkQKLSAgRU5EIFZERAotICBQSU4gVlNTCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIEdST1VORCA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZTUyBWU1MhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDAuMDAgMSAwLjA2IDsKLSAgICBFTkQKLSAgRU5EIFZTUwotRU5EIEFORDJYTAotCi1NQUNSTyBDTEtCVUZYMwotICBDTEFTUyBDT1JFIDsKLSAgT1JJR0lOIDAgMCA7Ci0gIEZPUkVJR04gQ0xLQlVGWDMgMCAwIDsKLSAgU0laRSAxLjIgQlkgMS43MSA7Ci0gIFNZTU1FVFJZIFggWSA7Ci0gIFNJVEUgQ29yZVNpdGUgOwotICBQSU4gWQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gT1VUUFVUIDsKLSAgICBBTlRFTk5BRElGRkFSRUEgMS43Mjg1ICBMQVlFUiBNZXRhbDEgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4xNzUgMC40OCAwLjIzNSAwLjYyIDsKLSAgICAgICAgUkVDVCAwLjIxNSAxLjA1IDAuMjc1IDEuNDQgOwotICAgICAgICBSRUNUIDAuMjYgMC41NiAwLjMyIDEuMTEgOwotICAgICAgICBSRUNUIDAuMjYgMC45OCAwLjM0IDEuMTEgOwotICAgICAgICBSRUNUIDAuNTQgMC40MDUgMC42IDAuNjIgOwotICAgICAgICBSRUNUIDAuMTc1IDAuNTYgMC42IDAuNjIgOwotICAgICAgICBSRUNUIDAuMjE1IDEuMDUgMC42ODUgMS4xMSA7Ci0gICAgICAgIFJFQ1QgMC41ODUgMC4zNDUgMC42NDUgMC40NjUgOwotICAgICAgICBSRUNUIDAuNjI1IDEuMDUgMC42ODUgMS40NCA7Ci0gICAgRU5ECi0gIEVORCBZCi0gIFBJTiBBCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjg2IDAuNzIgMC45NCAxLjIyIDsKLSAgICBFTkQKLSAgRU5EIEEKLSAgUElOIFZERAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBQT1dFUiA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZERCBWREQhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDEuNjUgMS4yIDEuNzEgOwotICAgIEVORAotICBFTkQgVkRECi0gIFBJTiBWU1MKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgR1JPVU5EIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVlNTIFZTUyEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMC4wMCAxLjIgMC4wNiA7Ci0gICAgRU5ECi0gIEVORCBWU1MKLUVORCBDTEtCVUZYMwotCi1NQUNSTyBERkZUUlhMCi0gIENMQVNTIENPUkUgOwotICBPUklHSU4gMCAwIDsKLSAgRk9SRUlHTiBERkZUUlhMIDAgMCA7Ci0gIFNJWkUgNC42IEJZIDEuNzEgOwotICBTWU1NRVRSWSBYIFkgOwotICBTSVRFIENvcmVTaXRlIDsKLSAgUElOIFEKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIE9VVFBVVCA7Ci0gICAgQU5URU5OQURJRkZBUkVBIDEuNzI4NSAgTEFZRVIgTWV0YWwxIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuODYgMC41NyAwLjk0IDAuOTggOwotICAgICAgICBSRUNUIDAuODggMC45IDAuOTYgMS4xNyA7Ci0gICAgICAgIFJFQ1QgMC44OTUgMC41MjUgMC45NzUgMC42NDUgOwotICAgIEVORAotICBFTkQgUQotICBQSU4gUU4KLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIE9VVFBVVCA7Ci0gICAgQU5URU5OQURJRkZBUkVBIDEuNzI4NSAgTEFZRVIgTWV0YWwxIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDYgMC42IDAuMzI1IDAuNzMgOwotICAgICAgICBSRUNUIDAuMjQ1IDAuNTQgMC4zMjUgMS4wMiA7Ci0gICAgRU5ECi0gIEVORCBRTgotICBQSU4gRAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgNC4yNiAwLjQxIDQuMzQgMC41NCA7Ci0gICAgICAgIFJFQ1QgNC4yOSAwLjQ2IDQuMzcgMC44OCA7Ci0gICAgRU5ECi0gIEVORCBECi0gIFBJTiBSTgotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgNC4wNiAwLjM4IDQuMTQgMC44MyA7Ci0gICAgICAgIFJFQ1QgNC4wNiAwLjc1IDQuMTkgMC44MyA7Ci0gICAgRU5ECi0gIEVORCBSTgotICBQSU4gQ0sKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDEuMDYgMC45MyAxLjE0IDEuMyA7Ci0gICAgICAgIFJFQ1QgMS4yMiAwLjg5IDEuMyAxLjAxIDsKLSAgICAgICAgUkVDVCAxLjA2IDAuOTMgMS4zIDEuMDEgOwotICAgIEVORAotICBFTkQgQ0sKLSAgUElOIFZERAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBQT1dFUiA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZERCBWREQhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDEuNjUgNC42IDEuNzEgOwotICAgIEVORAotICBFTkQgVkRECi0gIFBJTiBWU1MKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgR1JPVU5EIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVlNTIFZTUyEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMC4wMCA0LjYgMC4wNiA7Ci0gICAgRU5ECi0gIEVORCBWU1MKLUVORCBERkZUUlhMCi0KLU1BQ1JPIE9SMlgyCi0gIENMQVNTIENPUkUgOwotICBPUklHSU4gMCAwIDsKLSAgRk9SRUlHTiBPUjJYMiAwIDAgOwotICBTSVpFIDEuMiBCWSAxLjcxIDsKLSAgU1lNTUVUUlkgWCBZIDsKLSAgU0lURSBDb3JlU2l0ZSA7Ci0gIFBJTiBZCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBPVVRQVVQgOwotICAgIEFOVEVOTkFESUZGQVJFQSAxLjcyODUgIExBWUVSIE1ldGFsMSA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjc2NSAwLjM4NSAwLjgyNSAwLjUwNSA7Ci0gICAgICAgIFJFQ1QgMC43NjUgMC45MDUgMC44MjUgMS4zNzUgOwotICAgICAgICBSRUNUIDAuNzY1IDAuNDQ1IDAuOTIgMC41MDUgOwotICAgICAgICBSRUNUIDAuODYgMC40NDUgMC45MiAwLjk2NSA7Ci0gICAgICAgIFJFQ1QgMC43NjUgMC45MDUgMC45MiAwLjk2NSA7Ci0gICAgICAgIFJFQ1QgMC44NiAwLjYgMC45NCAwLjczIDsKLSAgICBFTkQKLSAgRU5EIFkKLSAgUElOIEEKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuNDEgMC43NjUgMC40OSAxLjE1NSA7Ci0gICAgICAgIFJFQ1QgMC40MSAwLjgxNSAwLjUxNSAxLjE1NSA7Ci0gICAgICAgIFJFQ1QgMC40MSAwLjgxNSAwLjYgMC44OTUgOwotICAgIEVORAotICBFTkQgQQotICBQSU4gQgotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wNiAwLjQxIDAuMTQgMC41NCA7Ci0gICAgICAgIFJFQ1QgMC4wNyAwLjQ2IDAuMTUgMC45IDsKLSAgICBFTkQKLSAgRU5EIEIKLSAgUElOIFZERAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBQT1dFUiA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZERCBWREQhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDEuNjUgMS4yIDEuNzEgOwotICAgIEVORAotICBFTkQgVkRECi0gIFBJTiBWU1MKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgR1JPVU5EIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVlNTIFZTUyEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMC4wMCAxLjIgMC4wNiA7Ci0gICAgRU5ECi0gIEVORCBWU1MKLUVORCBPUjJYMgotCi1NQUNSTyBETFkyWDQKLSAgQ0xBU1MgQ09SRSA7Ci0gIE9SSUdJTiAwIDAgOwotICBGT1JFSUdOIERMWTJYNCAwIDAgOwotICBTSVpFIDQgQlkgMS43MSA7Ci0gIFNZTU1FVFJZIFggWSA7Ci0gIFNJVEUgQ29yZVNpdGUgOwotICBQSU4gQQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMi4wNiAwLjYgMi4xNCAxLjA3NSA7Ci0gICAgICAgIFJFQ1QgMi4wMzUgMC44NCAyLjE0IDEuMDc1IDsKLSAgICBFTkQKLSAgRU5EIEEKLSAgUElOIFkKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIE9VVFBVVCA7Ci0gICAgQU5URU5OQURJRkZBUkVBIDEuNzI4NSAgTEFZRVIgTWV0YWwxIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMzY1IDAuNDk1IDAuNDI1IDEuMzM1IDsKLSAgICAgICAgUkVDVCAwLjM2NSAwLjYgMC41NCAwLjczIDsKLSAgICAgICAgUkVDVCAwLjM2NSAwLjYgMC43OSAwLjY2IDsKLSAgICAgICAgUkVDVCAwLjczIDAuNDE1IDAuNzkgMS4xNzUgOwotICAgICAgICBSRUNUIDAuNzc1IDAuMzU1IDAuODM1IDAuNDc1IDsKLSAgICAgICAgUkVDVCAwLjc3NSAxLjExNSAwLjgzNSAxLjMzNSA7Ci0gICAgRU5ECi0gIEVORCBZCi0gIFBJTiBWREQKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgUE9XRVIgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWREQgVkREISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAxLjY1IDQgMS43MSA7Ci0gICAgRU5ECi0gIEVORCBWREQKLSAgUElOIFZTUwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBHUk9VTkQgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWU1MgVlNTISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAwLjAwIDQgMC4wNiA7Ci0gICAgRU5ECi0gIEVORCBWU1MKLUVORCBETFkyWDQKLQotTUFDUk8gTkFORDJYMQotICBDTEFTUyBDT1JFIDsKLSAgT1JJR0lOIDAgMCA7Ci0gIEZPUkVJR04gTkFORDJYMSAwIDAgOwotICBTSVpFIDAuNjEgQlkgMS43MSA7Ci0gIFNZTU1FVFJZIFggWSAgOwotICBTSVRFIENvcmVTaXRlIDsKLSAgUElOIFkKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIE9VVFBVVCA7Ci0gICAgQU5URU5OQURJRkZBUkVBIDEuNzI4NSAgTEFZRVIgTWV0YWwxIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuNDc1IDAuNzYgMC41NTUgMC45IDsKLSAgICBFTkQKLSAgRU5EIFkKLSAgUElOIEEKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDk1IDAuODA1IDAuMjE1IDAuOTggOwotICAgIEVORAotICBFTkQgQQotICBQSU4gQgotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4yOTUgMC42MTUgMC4zNzUgMC43NDUgOwotICAgIEVORAotICBFTkQgQgotICBQSU4gVkRECi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIFBPV0VSIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVkREIFZERCEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMS42NSAwLjYxIDEuNzEgOwotICAgIEVORAotICBFTkQgVkRECi0gIFBJTiBWU1MKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgR1JPVU5EIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVlNTIFZTUyEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMC4wMCAwLjYxIDAuMDYgOwotICAgIEVORAotICBFTkQgVlNTCi1FTkQgTkFORDJYMQotCi1NQUNSTyBNWEk0WDIKLSAgQ0xBU1MgQ09SRSA7Ci0gIE9SSUdJTiAwIDAgOwotICBGT1JFSUdOIE1YSTRYMiAwIDAgOwotICBTSVpFIDUuNCBCWSAxLjcxIDsKLSAgU1lNTUVUUlkgWCBZIDsKLSAgU0lURSBDb3JlU2l0ZSA7Ci0gIFBJTiBZCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBPVVRQVVQgOwotICAgIEFOVEVOTkFESUZGQVJFQSAxLjcyODUgIExBWUVSIE1ldGFsMSA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCA0LjYwNSAwLjU2NSA0LjcyNSAwLjY0NSA7Ci0gICAgICAgIFJFQ1QgNC42NDUgMC41NjUgNC43MjUgMS4wMjUgOwotICAgICAgICBSRUNUIDQuNjQ1IDAuNzkgNC43NCAwLjkyIDsKLSAgICBFTkQKLSAgRU5EIFkKLSAgUElOIEMKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDEuNTg1IDEuMDA1IDEuOTIgMS4yNSA7Ci0gICAgRU5ECi0gIEVORCBDCi0gIFBJTiBTMAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4yNiAwLjY1IDAuMzQ1IDAuOTIgOwotICAgICAgICBSRUNUIDAuMjYgMC42NSAwLjczIDAuNzMgOwotICAgICAgICBSRUNUIDAuNjUgMC42NSAwLjczIDAuODYgOwotICAgIEVORAotICBFTkQgUzAKLSAgUElOIEIKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDEuMTUgMS4wMDUgMS4zNjUgMS4yNSA7Ci0gICAgICAgIFJFQ1QgMS4xNSAxLjAxNSAxLjQ4NSAxLjI1IDsKLSAgICBFTkQKLSAgRU5EIEIKLSAgUElOIEEKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuNDYgMC44MyAwLjU0IDEuMTQgOwotICAgICAgICBSRUNUIDAuNDYgMC45NiAwLjczIDEuMDQgOwotICAgIEVORAotICBFTkQgQQotICBQSU4gUzEKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDMuMzA1IDAuODc1IDMuMzY1IDEuMzE1IDsKLSAgICAgICAgUkVDVCAzLjM5IDAuNzkgMy40NSAwLjkzNSA7Ci0gICAgICAgIFJFQ1QgMy4zMDUgMC44NzUgMy40NSAwLjkzNSA7Ci0gICAgICAgIFJFQ1QgNC45NiAwLjgzNSA1LjAyIDEuMzE1IDsKLSAgICAgICAgUkVDVCAzLjMwNSAxLjI1NSA1LjAyIDEuMzE1IDsKLSAgICAgICAgUkVDVCA1LjAzNSAwLjc2NSA1LjE2NSAwLjg5NSA7Ci0gICAgICAgIFJFQ1QgNC45NiAwLjgzNSA1LjE2NSAwLjg5NSA7Ci0gICAgRU5ECi0gIEVORCBTMQotICBQSU4gRAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMi44NiAwLjYyIDIuOTQgMS4xMiA7Ci0gICAgRU5ECi0gIEVORCBECi0gIFBJTiBWREQKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgUE9XRVIgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWREQgVkREISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAxLjY1IDUuNCAxLjcxIDsKLSAgICBFTkQKLSAgRU5EIFZERAotICBQSU4gVlNTCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIEdST1VORCA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZTUyBWU1MhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDAuMDAgNS40IDAuMDYgOwotICAgIEVORAotICBFTkQgVlNTCi1FTkQgTVhJNFgyCi0KLU1BQ1JPIEFPSTMyWDIKLSAgQ0xBU1MgQ09SRSA7Ci0gIE9SSUdJTiAwIDAgOwotICBGT1JFSUdOIEFPSTMyWDIgMCAwIDsKLSAgU0laRSAyLjYgQlkgMS43MSA7Ci0gIFNZTU1FVFJZIFggWSA7Ci0gIFNJVEUgQ29yZVNpdGUgOwotICBQSU4gWQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gT1VUUFVUIDsKLSAgICBBTlRFTk5BRElGRkFSRUEgMS43Mjg1ICBMQVlFUiBNZXRhbDEgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMS41MDUgMC40MzUgMS41NjUgMS4wODUgOwotICAgICAgICBSRUNUIDEuNDM1IDEuMDA1IDEuNTY1IDEuMDg1IDsKLSAgICAgICAgUkVDVCAxLjQzNSAxLjAwNSAxLjc5IDEuMDY1IDsKLSAgICAgICAgUkVDVCAxLjczIDEuMDA1IDEuNzkgMS4yMjUgOwotICAgICAgICBSRUNUIDAuODE1IDAuNDM1IDIuMDI1IDAuNDk1IDsKLSAgICAgICAgUkVDVCAxLjczIDEuMTA1IDIuMiAxLjE2NSA7Ci0gICAgICAgIFJFQ1QgMi4xNCAxLjEwNSAyLjIgMS4yMjUgOwotICAgIEVORAotICBFTkQgWQotICBQSU4gQTIKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuNTIgMC45MTUgMC42IDEuMDg1IDsKLSAgICAgICAgUkVDVCAwLjQzNSAxLjAwNSAwLjYgMS4wODUgOwotICAgICAgICBSRUNUIDAuNTIgMC45MTUgMC44NTUgMC45OTUgOwotICAgIEVORAotICBFTkQgQTIKLSAgUElOIEExCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjUyIDAuNzU1IDEuMTQgMC44MTUgOwotICAgICAgICBSRUNUIDEuMDYgMC43NTUgMS4xNCAwLjkyIDsKLSAgICBFTkQKLSAgRU5EIEExCi0gIFBJTiBCMQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMS44OSAwLjg3NSAyLjM0IDEuMDA1IDsKLSAgICBFTkQKLSAgRU5EIEIxCi0gIFBJTiBBMAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4zNiAwLjU5NSAwLjQyIDAuODIgOwotICAgICAgICBSRUNUIDAuMzYgMC41OTUgMS4zNCAwLjY1NSA7Ci0gICAgICAgIFJFQ1QgMS4yNiAwLjU5NSAxLjM0IDAuODIgOwotICAgIEVORAotICBFTkQgQTAKLSAgUElOIEIwCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAxLjY2NSAwLjYyNSAxLjc5IDAuOCA7Ci0gICAgICAgIFJFQ1QgMS42NjUgMC42MjUgMi41MzUgMC43MDUgOwotICAgICAgICBSRUNUIDIuNDE1IDAuNjI1IDIuNTM1IDAuOCA7Ci0gICAgRU5ECi0gIEVORCBCMAotICBQSU4gVkRECi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIFBPV0VSIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVkREIFZERCEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMS42NSAyLjYgMS43MSA7Ci0gICAgRU5ECi0gIEVORCBWREQKLSAgUElOIFZTUwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBHUk9VTkQgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWU1MgVlNTISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAwLjAwIDIuNiAwLjA2IDsKLSAgICBFTkQKLSAgRU5EIFZTUwotRU5EIEFPSTMyWDIKLQotTUFDUk8gREZGTlNSWDIKLSAgQ0xBU1MgQ09SRSA7Ci0gIE9SSUdJTiAwIDAgOwotICBGT1JFSUdOIERGRk5TUlgyIDAgMCA7Ci0gIFNJWkUgNyBCWSAxLjcxIDsKLSAgU1lNTUVUUlkgWCBZIDsKLSAgU0lURSBDb3JlU2l0ZSA7Ci0gIFBJTiBRTgotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gT1VUUFVUIDsKLSAgICBBTlRFTk5BRElGRkFSRUEgMS43Mjg1ICBMQVlFUiBNZXRhbDEgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgNi4zNTUgMC41NCA2LjQzNSAxLjA2IDsKLSAgICAgICAgUkVDVCA2LjM1NSAwLjk4IDYuNTQgMS4wNiA7Ci0gICAgICAgIFJFQ1QgNi40NiAwLjk4IDYuNTQgMS4xMSA7Ci0gICAgRU5ECi0gIEVORCBRTgotICBQSU4gUQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gT1VUUFVUIDsKLSAgICBBTlRFTk5BRElGRkFSRUEgMS43Mjg1ICBMQVlFUiBNZXRhbDEgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgNS44NiAwLjU0IDUuOTQgMS4xMSA7Ci0gICAgRU5ECi0gIEVORCBRCi0gIFBJTiBECi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjQ2IDAuNzggMC41NCAxLjI2IDsKLSAgICAgICAgUkVDVCAwLjQ2IDAuOTggMC41NiAxLjI2IDsKLSAgICBFTkQKLSAgRU5EIEQKLSAgUElOIFJOCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAyLjk0NSAwLjU3NSAzLjAyNSAwLjkyIDsKLSAgICAgICAgUkVDVCAyLjk0NSAwLjczIDMuMTQgMC45MiA7Ci0gICAgICAgIFJFQ1QgMy4wNiAwLjczIDMuMTQgMC45NiA7Ci0gICAgRU5ECi0gIEVORCBSTgotICBQSU4gU04KLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDIuNTg1IDAuNTc1IDIuNjY1IDAuODk1IDsKLSAgICAgICAgUkVDVCAyLjU4NSAwLjgxNSAyLjg0NSAwLjg5NSA7Ci0gICAgRU5ECi0gIEVORCBTTgotICBQSU4gQ0tOCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjI2IDAuNzggMC4zNCAwLjkyIDsKLSAgICAgICAgUkVDVCAwLjI4IDAuNzkgMC4zNiAxLjI2IDsKLSAgICBFTkQKLSAgRU5EIENLTgotICBQSU4gVkRECi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIFBPV0VSIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVkREIFZERCEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMS42NSA3IDEuNzEgOwotICAgIEVORAotICBFTkQgVkRECi0gIFBJTiBWU1MKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgR1JPVU5EIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVlNTIFZTUyEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMC4wMCA3IDAuMDYgOwotICAgIEVORAotICBFTkQgVlNTCi1FTkQgREZGTlNSWDIKLQotTUFDUk8gT1IzWDQKLSAgQ0xBU1MgQ09SRSA7Ci0gIE9SSUdJTiAwIDAgOwotICBGT1JFSUdOIE9SM1g0IDAgMCA7Ci0gIFNJWkUgMS44IEJZIDEuNzEgOwotICBTWU1NRVRSWSBYIFkgOwotICBTSVRFIENvcmVTaXRlIDsKLSAgUElOIFkKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIE9VVFBVVCA7Ci0gICAgQU5URU5OQURJRkZBUkVBIDEuNzI4NSAgTEFZRVIgTWV0YWwxIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuOTA1IDAuOTEgMC45NjUgMS40NiA7Ci0gICAgICAgIFJFQ1QgMC45MTUgMC40IDEuMDM1IDAuNDYgOwotICAgICAgICBSRUNUIDAuOTg1IDAuNDIgMS40OSAwLjQ4IDsKLSAgICAgICAgUkVDVCAxLjMxNSAxLjA3IDEuMzc1IDEuNDYgOwotICAgICAgICBSRUNUIDAuOTA1IDAuOTEgMS40OSAwLjk3IDsKLSAgICAgICAgUkVDVCAxLjM3IDAuMzYgMS40MyAwLjQ4IDsKLSAgICAgICAgUkVDVCAxLjQzIDAuNDIgMS40OSAxLjEzIDsKLSAgICAgICAgUkVDVCAxLjMxNSAxLjA3IDEuNDkgMS4xMyA7Ci0gICAgICAgIFJFQ1QgMS40MyAwLjYgMS43NCAwLjY2IDsKLSAgICAgICAgUkVDVCAxLjY2IDAuNiAxLjc0IDAuNzMgOwotICAgIEVORAotICBFTkQgWQotICBQSU4gQQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC42NiAwLjc0IDAuNzQgMS4yNCA7Ci0gICAgRU5ECi0gIEVORCBBCi0gIFBJTiBCCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjI2IDAuOTggMC4zNCAxLjExIDsKLSAgICAgICAgUkVDVCAwLjMyIDAuNjcgMC40IDEuMDYgOwotICAgIEVORAotICBFTkQgQgotICBQSU4gQwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wNiAwLjYxIDAuMTQgMS4xMSA7Ci0gICAgRU5ECi0gIEVORCBDCi0gIFBJTiBWREQKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgUE9XRVIgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWREQgVkREISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAxLjY1IDEuOCAxLjcxIDsKLSAgICBFTkQKLSAgRU5EIFZERAotICBQSU4gVlNTCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIEdST1VORCA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZTUyBWU1MhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDAuMDAgMS44IDAuMDYgOwotICAgIEVORAotICBFTkQgVlNTCi1FTkQgT1IzWDQKLQotTUFDUk8gREZGUlhMCi0gIENMQVNTIENPUkUgOwotICBPUklHSU4gMCAwIDsKLSAgRk9SRUlHTiBERkZSWEwgMCAwIDsKLSAgU0laRSA1IEJZIDEuNzEgOwotICBTWU1NRVRSWSBYIFkgOwotICBTSVRFIENvcmVTaXRlIDsKLSAgUElOIFEKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIE9VVFBVVCA7Ci0gICAgQU5URU5OQURJRkZBUkVBIDEuNzI4NSAgTEFZRVIgTWV0YWwxIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuODI1IDAuNDk1IDAuODg1IDEuMjIgOwotICAgICAgICBSRUNUIDAuODI1IDAuOTggMC45NCAxLjExIDsKLSAgICAgICAgUkVDVCAwLjk0IDAuNDM1IDEgMC41NTUgOwotICAgICAgICBSRUNUIDAuODI1IDAuNDk1IDEgMC41NTUgOwotICAgIEVORAotICBFTkQgUQotICBQSU4gUU4KLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIE9VVFBVVCA7Ci0gICAgQU5URU5OQURJRkZBUkVBIDEuNzI4NSAgTEFZRVIgTWV0YWwxIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDYgMC42IDAuMjkgMC43MyA7Ci0gICAgICAgIFJFQ1QgMC4yMSAwLjU0IDAuMjkgMS4wMiA7Ci0gICAgRU5ECi0gIEVORCBRTgotICBQSU4gUk4KLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDEuNzg1IDAuNzIgMi4xMjUgMC45NiA7Ci0gICAgRU5ECi0gIEVORCBSTgotICBQSU4gQ0sKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDEuMjM1IDAuODE1IDEuMzE1IDEuMjY1IDsKLSAgICAgICAgUkVDVCAxLjIzNSAwLjgxNSAxLjM2NSAwLjg5NSA7Ci0gICAgRU5ECi0gIEVORCBDSwotICBQSU4gRAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgNC40MzUgMC42MjUgNC42NTUgMC44MTUgOwotICAgIEVORAotICBFTkQgRAotICBQSU4gVkRECi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIFBPV0VSIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVkREIFZERCEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMS42NSA1IDEuNzEgOwotICAgIEVORAotICBFTkQgVkRECi0gIFBJTiBWU1MKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgR1JPVU5EIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVlNTIFZTUyEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMC4wMCA1IDAuMDYgOwotICAgIEVORAotICBFTkQgVlNTCi1FTkQgREZGUlhMCi0KLU1BQ1JPIEZJTEwxNgotICBDTEFTUyBDT1JFIDsKLSAgT1JJR0lOIDAgMCA7Ci0gIEZPUkVJR04gRklMTDE2IDAgMCA7Ci0gIFNJWkUgMy4yIEJZIDEuNzEgOwotICBTWU1NRVRSWSBYIFkgOwotICBTSVRFIENvcmVTaXRlIDsKLSAgUElOIFZERAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBQT1dFUiA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZERCBWREQhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDEuNjUgMy4yIDEuNzEgOwotICAgIEVORAotICBFTkQgVkRECi0gIFBJTiBWU1MKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgR1JPVU5EIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVlNTIFZTUyEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMC4wMCAzLjIgMC4wNiA7Ci0gICAgRU5ECi0gIEVORCBWU1MKLUVORCBGSUxMMTYKLQotTUFDUk8gWE9SM1hMCi0gIENMQVNTIENPUkUgOwotICBPUklHSU4gMCAwIDsKLSAgRk9SRUlHTiBYT1IzWEwgMCAwIDsKLSAgU0laRSA0LjQgQlkgMS43MSA7Ci0gIFNZTU1FVFJZIFggWSA7Ci0gIFNJVEUgQ29yZVNpdGUgOwotICBQSU4gVlNTCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIEdST1VORCA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZTUyBWU1MhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDAuMDAgNC40IDAuMDYgOwotICAgIEVORAotICBFTkQgVlNTCi0gIFBJTiBDCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAyLjkyNSAwLjY2NSAzLjI5NSAwLjcyNSA7Ci0gICAgICAgIFJFQ1QgMy4yMzUgMC42NjUgMy4yOTUgMC45MzUgOwotICAgICAgICBSRUNUIDMuMjM1IDAuODE1IDMuMzY1IDAuOTM1IDsKLSAgICBFTkQKLSAgRU5EIEMKLSAgUElOIEIKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuNDM1IDAuNjQgMC41MTUgMS4wODUgOwotICAgICAgICBSRUNUIDAuNDM1IDEuMDA1IDAuNTcgMS4wODUgOwotICAgIEVORAotICBFTkQgQgotICBQSU4gQQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wNiAwLjc5IDAuMTc1IDAuOTIgOwotICAgICAgICBSRUNUIDAuMDk1IDAuNjUgMC4xNzUgMS4xMTUgOwotICAgIEVORAotICBFTkQgQQotICBQSU4gWQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gT1VUUFVUIDsKLSAgICBBTlRFTk5BRElGRkFSRUEgMS43Mjg1ICBMQVlFUiBNZXRhbDEgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgNC4yNCAwLjU3IDQuMzY1IDAuNzA1IDsKLSAgICAgICAgUkVDVCA0LjIzNSAwLjYyNSA0LjM2NSAwLjcwNSA7Ci0gICAgICAgIFJFQ1QgNC4zMDUgMC41NyA0LjM2NSAxLjEgOwotICAgICAgICBSRUNUIDQuMjQgMS4wNCA0LjM2NSAxLjEgOwotICAgIEVORAotICBFTkQgWQotICBQSU4gVkRECi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIFBPV0VSIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVkREIFZERCEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMS42NSA0LjQgMS43MSA7Ci0gICAgRU5ECi0gIEVORCBWREQKLUVORCBYT1IzWEwKLQotTUFDUk8gQ0xLQlVGWDYKLSAgQ0xBU1MgQ09SRSA7Ci0gIE9SSUdJTiAwIDAgOwotICBGT1JFSUdOIENMS0JVRlg2IDAgMCA7Ci0gIFNJWkUgMS44IEJZIDEuNzEgOwotICBTWU1NRVRSWSBYIFkgOwotICBTSVRFIENvcmVTaXRlIDsKLSAgUElOIFZTUwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBHUk9VTkQgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWU1MgVlNTISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAwLjAwIDEuOCAwLjA2IDsKLSAgICBFTkQKLSAgRU5EIFZTUwotICBQSU4gVkRECi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIFBPV0VSIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVkREIFZERCEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMS42NSAxLjggMS43MSA7Ci0gICAgRU5ECi0gIEVORCBWREQKLSAgUElOIEEKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDEuNDYgMC41NyAxLjU0IDEuMDcgOwotICAgIEVORAotICBFTkQgQQotICBQSU4gWQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gT1VUUFVUIDsKLSAgICBBTlRFTk5BRElGRkFSRUEgMS43Mjg1ICBMQVlFUiBNZXRhbDEgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wNiAwLjM1IDAuMTMgMS4zNyA7Ci0gICAgICAgIFJFQ1QgMC4wNiAwLjc5IDAuMTQgMC45NzUgOwotICAgICAgICBSRUNUIDAuNDggMC4zNSAwLjU0IDAuNjU1IDsKLSAgICAgICAgUkVDVCAwLjQ4IDAuOTE1IDAuNTQgMS4zNyA7Ci0gICAgICAgIFJFQ1QgMC4wNiAwLjkxNSAwLjk1IDAuOTc1IDsKLSAgICAgICAgUkVDVCAwLjg5IDAuMzUgMC45NSAwLjY1NSA7Ci0gICAgICAgIFJFQ1QgMC4wNiAwLjU5NSAwLjk1IDAuNjU1IDsKLSAgICAgICAgUkVDVCAwLjg5IDAuOTE1IDAuOTUgMS4zNyA7Ci0gICAgRU5ECi0gIEVORCBZCi1FTkQgQ0xLQlVGWDYKLQotTUFDUk8gQU9JMjIyWEwKLSAgQ0xBU1MgQ09SRSA7Ci0gIE9SSUdJTiAwIDAgOwotICBGT1JFSUdOIEFPSTIyMlhMIDAgMCA7Ci0gIFNJWkUgMiBCWSAxLjcxIDsKLSAgU1lNTUVUUlkgWCBZIDsKLSAgU0lURSBDb3JlU2l0ZSA7Ci0gIFBJTiBZCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBPVVRQVVQgOwotICAgIEFOVEVOTkFESUZGQVJFQSAxLjcyODUgIExBWUVSIE1ldGFsMSA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjg0IDAuMjQgMC45IDAuMzYgOwotICAgICAgICBSRUNUIDEuNTg1IDEuMDEgMS42NDUgMS4xOTUgOwotICAgICAgICBSRUNUIDAuODQgMC4yNyAxLjkyIDAuMzMgOwotICAgICAgICBSRUNUIDEuODYgMC4yNyAxLjkyIDEuMDcgOwotICAgICAgICBSRUNUIDEuNTg1IDEuMDEgMS45MiAxLjA3IDsKLSAgICAgICAgUkVDVCAxLjg2IDAuNDEgMS45NCAwLjU0IDsKLSAgICBFTkQKLSAgRU5EIFkKLSAgUElOIEIxCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjgzNSAwLjU3NSAxLjAyNSAwLjg5NSA7Ci0gICAgICAgIFJFQ1QgMC44MzUgMC44MTUgMS4wOTUgMC44OTUgOwotICAgIEVORAotICBFTkQgQjEKLSAgUElOIEMxCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAxLjY2IDAuNDcgMS43NCAwLjkxIDsKLSAgICAgICAgUkVDVCAxLjYyIDAuODMgMS43NiAwLjkxIDsKLSAgICBFTkQKLSAgRU5EIEMxCi0gIFBJTiBBMAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4yMTUgMC42MTUgMC4zMzUgMC44OTUgOwotICAgICAgICBSRUNUIDAuMDM1IDAuODE1IDAuMzM1IDAuODk1IDsKLSAgICBFTkQKLSAgRU5EIEEwCi0gIFBJTiBCMAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMS4xOTUgMC43NDUgMS4zNCAwLjgyNSA7Ci0gICAgICAgIFJFQ1QgMS4yNiAwLjYgMS4zNCAxLjAzNSA7Ci0gICAgRU5ECi0gIEVORCBCMAotICBQSU4gQzAKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDEuNDQgMC40MyAxLjUyIDAuOTEgOwotICAgICAgICBSRUNUIDEuNDQgMC40MyAxLjU0IDAuNzMgOwotICAgIEVORAotICBFTkQgQzAKLSAgUElOIEExCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjQzNSAwLjQ2IDAuNTU1IDAuODk1IDsKLSAgICAgICAgUkVDVCAwLjQzNSAwLjgxNSAwLjU4IDAuODk1IDsKLSAgICBFTkQKLSAgRU5EIEExCi0gIFBJTiBWREQKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgUE9XRVIgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWREQgVkREISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAxLjY1IDIgMS43MSA7Ci0gICAgRU5ECi0gIEVORCBWREQKLSAgUElOIFZTUwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBHUk9VTkQgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWU1MgVlNTISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAwLjAwIDIgMC4wNiA7Ci0gICAgRU5ECi0gIEVORCBWU1MKLUVORCBBT0kyMjJYTAotCi1NQUNSTyBPUjRYNgotICBDTEFTUyBDT1JFIDsKLSAgT1JJR0lOIDAgMCA7Ci0gIEZPUkVJR04gT1I0WDYgMCAwIDsKLSAgU0laRSAzLjIgQlkgMS43MSA7Ci0gIFNZTU1FVFJZIFggWSA7Ci0gIFNJVEUgQ29yZVNpdGUgOwotICBQSU4gWQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gT1VUUFVUIDsKLSAgICBBTlRFTk5BRElGRkFSRUEgMS43Mjg1ICBMQVlFUiBNZXRhbDEgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMiAwLjk4IDIuMDYgMS4zNyA7Ci0gICAgICAgIFJFQ1QgMi4wOSAwLjI3NSAyLjE1IDAuNTg1IDsKLSAgICAgICAgUkVDVCAyIDAuOTggMi43NCAxLjA0IDsKLSAgICAgICAgUkVDVCAyLjQxIDAuOTggMi40NyAxLjM3IDsKLSAgICAgICAgUkVDVCAyLjUgMC4yNzUgMi41NiAwLjU4NSA7Ci0gICAgICAgIFJFQ1QgMi42NiAwLjUyNSAyLjcyIDEuMTEgOwotICAgICAgICBSRUNUIDIuNDEgMC45OCAyLjc0IDEuMTEgOwotICAgICAgICBSRUNUIDIuNDEgMS4wNSAyLjg4IDEuMTEgOwotICAgICAgICBSRUNUIDIuODIgMS4wNSAyLjg4IDEuMzcgOwotICAgICAgICBSRUNUIDIuOTEgMC4yNzUgMi45NyAwLjU4NSA7Ci0gICAgICAgIFJFQ1QgMi4wOSAwLjUyNSAyLjk3IDAuNTg1IDsKLSAgICBFTkQKLSAgRU5EIFkKLSAgUElOIEEKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMyAwLjg5IDAuMzYgMS4yMyA7Ci0gICAgICAgIFJFQ1QgMS42NiAwLjgwNSAxLjcyIDEuMjMgOwotICAgICAgICBSRUNUIDAuMyAxLjE3IDEuNzIgMS4yMyA7Ci0gICAgICAgIFJFQ1QgMS42NiAwLjk4IDEuNzQgMS4xMSA7Ci0gICAgRU5ECi0gIEVORCBBCi0gIFBJTiBCCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjQ2IDAuNzkgMC41NCAxLjA3IDsKLSAgICAgICAgUkVDVCAwLjQ2IDAuOTIgMC41OCAxLjA3IDsKLSAgICAgICAgUkVDVCAxLjUgMC44OSAxLjU2IDEuMDcgOwotICAgICAgICBSRUNUIDAuNDYgMS4wMSAxLjU2IDEuMDcgOwotICAgIEVORAotICBFTkQgQgotICBQSU4gQwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMS4yMzUgMC42MjUgMS4zNjUgMC43MDUgOwotICAgICAgICBSRUNUIDEuMzA1IDAuNjI1IDEuMzY1IDAuOTEgOwotICAgICAgICBSRUNUIDAuNjggMC44NSAxLjM2NSAwLjkxIDsKLSAgICBFTkQKLSAgRU5EIEMKLSAgUElOIEQKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuNjggMC42MjUgMC45NjUgMC43NSA7Ci0gICAgICAgIFJFQ1QgMC42OCAwLjY3IDEuMTM1IDAuNzUgOwotICAgIEVORAotICBFTkQgRAotICBQSU4gVkRECi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIFBPV0VSIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVkREIFZERCEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMS42NSAzLjIgMS43MSA7Ci0gICAgRU5ECi0gIEVORCBWREQKLSAgUElOIFZTUwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBHUk9VTkQgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWU1MgVlNTISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAwLjAwIDMuMiAwLjA2IDsKLSAgICBFTkQKLSAgRU5EIFZTUwotRU5EIE9SNFg2Ci0KLU1BQ1JPIEFDSENPTlgyCi0gIENMQVNTIENPUkUgOwotICBPUklHSU4gMCAwIDsKLSAgRk9SRUlHTiBBQ0hDT05YMiAwIDAgOwotICBTSVpFIDcuNCBCWSAxLjcxIDsKLSAgU1lNTUVUUlkgWCBZIDsKLSAgU0lURSBDb3JlU2l0ZSA7Ci0gIFBJTiBDT04KLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIE9VVFBVVCA7Ci0gICAgQU5URU5OQURJRkZBUkVBIDEuNzI4NSAgTEFZRVIgTWV0YWwxIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDYuMDMgMC44MTUgNi4wOSAxLjEzIDsKLSAgICAgICAgUkVDVCA1LjUxNSAxLjA3IDYuMDkgMS4xMyA7Ci0gICAgICAgIFJFQ1QgNi4xMTUgMC4zMjUgNi4xNzUgMC44OTUgOwotICAgICAgICBSRUNUIDYuMDMgMC44MTUgNi4xNzUgMC44OTUgOwotICAgICAgICBSRUNUIDYuMDMgMS4wMTUgNi41NDUgMS4wNzUgOwotICAgICAgICBSRUNUIDUuMzg1IDAuMzI1IDYuNjMgMC4zODUgOwotICAgIEVORAotICBFTkQgQ09OCi0gIFBJTiBBCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAzNSAwLjY3NSAwLjIwNSAxLjA4NSA7Ci0gICAgRU5ECi0gIEVORCBBCi0gIFBJTiBCCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAxLjU4IDAuNjk1IDEuNzYgMC45MjUgOwotICAgIEVORAotICBFTkQgQgotICBQSU4gQ0kKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDYuODA1IDAuNzc1IDcuMjY1IDAuODk1IDsKLSAgICBFTkQKLSAgRU5EIENJCi0gIFBJTiBWU1MKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgR1JPVU5EIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVlNTIFZTUyEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMC4wMCA3LjQgMC4wNiA7Ci0gICAgRU5ECi0gIEVORCBWU1MKLSAgUElOIFZERAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBQT1dFUiA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZERCBWREQhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDEuNjUgNy40IDEuNzEgOwotICAgIEVORAotICBFTkQgVkRECi1FTkQgQUNIQ09OWDIKLQotTUFDUk8gT0FJMjFYMQotICBDTEFTUyBDT1JFIDsKLSAgT1JJR0lOIDAgMCA7Ci0gIEZPUkVJR04gT0FJMjFYMSAwIDAgOwotICBTSVpFIDEuMiBCWSAxLjcxIDsKLSAgU1lNTUVUUlkgWCBZIDsKLSAgU0lURSBDb3JlU2l0ZSA7Ci0gIFBJTiBZCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBPVVRQVVQgOwotICAgIEFOVEVOTkFESUZGQVJFQSAxLjcyODUgIExBWUVSIE1ldGFsMSA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjcxIDEuMiAwLjc3IDEuNDggOwotICAgICAgICBSRUNUIDAuOTE1IDAuMzcgMC45NzUgMC40OSA7Ci0gICAgICAgIFJFQ1QgMC45MTUgMC40MyAxLjEyIDAuNDkgOwotICAgICAgICBSRUNUIDEuMDYgMC40MyAxLjEyIDEuMjYgOwotICAgICAgICBSRUNUIDEuMDYgMC45OCAxLjE0IDEuMjYgOwotICAgICAgICBSRUNUIDAuNzEgMS4yIDEuMTQgMS4yNiA7Ci0gICAgRU5ECi0gIEVORCBZCi0gIFBJTiBBMAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4yNiAwLjYgMC4zNCAxLjEgOwotICAgIEVORAotICBFTkQgQTAKLSAgUElOIEExCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjQ2IDAuNiAwLjU0IDAuODggOwotICAgICAgICBSRUNUIDAuNDYgMC42IDAuNzYgMC42OCA7Ci0gICAgRU5ECi0gIEVORCBBMQotICBQSU4gQjAKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuODYgMC42IDAuOTQgMS4xIDsKLSAgICBFTkQKLSAgRU5EIEIwCi0gIFBJTiBWREQKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgUE9XRVIgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWREQgVkREISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAxLjY1IDEuMiAxLjcxIDsKLSAgICBFTkQKLSAgRU5EIFZERAotICBQSU4gVlNTCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIEdST1VORCA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZTUyBWU1MhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDAuMDAgMS4yIDAuMDYgOwotICAgIEVORAotICBFTkQgVlNTCi1FTkQgT0FJMjFYMQotCi1NQUNSTyBETFkzWDQKLSAgQ0xBU1MgQ09SRSA7Ci0gIE9SSUdJTiAwIDAgOwotICBGT1JFSUdOIERMWTNYNCAwIDAgOwotICBTSVpFIDUuMiBCWSAxLjcxIDsKLSAgU1lNTUVUUlkgWCBZIDsKLSAgU0lURSBDb3JlU2l0ZSA7Ci0gIFBJTiBBCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAxLjU4IDAuNjEgMS42NiAxLjAyIDsKLSAgICAgICAgUkVDVCAxLjY2IDAuNiAxLjc0IDAuNzMgOwotICAgIEVORAotICBFTkQgQQotICBQSU4gWQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gT1VUUFVUIDsKLSAgICBBTlRFTk5BRElGRkFSRUEgMS43Mjg1ICBMQVlFUiBNZXRhbDEgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMi40NCAwLjQ3NSAyLjU2IDAuNTM1IDsKLSAgICAgICAgUkVDVCAyLjQ2IDAuNDc1IDIuNTYgMC43MyA7Ci0gICAgICAgIFJFQ1QgMi41NCAwLjYgMi42IDEuMjkgOwotICAgICAgICBSRUNUIDIuOTEgMC40NzUgMy4wMSAwLjY2IDsKLSAgICAgICAgUkVDVCAyLjQ2IDAuNiAzLjAxIDAuNjYgOwotICAgICAgICBSRUNUIDIuOTUgMC40NzUgMy4wMSAxLjI5IDsKLSAgICAgICAgUkVDVCAyLjkxIDAuNDc1IDMuMDMgMC41MzUgOwotICAgIEVORAotICBFTkQgWQotICBQSU4gVkRECi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIFBPV0VSIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVkREIFZERCEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMS42NSA1LjIgMS43MSA7Ci0gICAgRU5ECi0gIEVORCBWREQKLSAgUElOIFZTUwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBHUk9VTkQgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWU1MgVlNTISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAwLjAwIDUuMiAwLjA2IDsKLSAgICBFTkQKLSAgRU5EIFZTUwotRU5EIERMWTNYNAotCi1NQUNSTyBUTEFUTlNSWDIKLSAgQ0xBU1MgQ09SRSA7Ci0gIE9SSUdJTiAwIDAgOwotICBGT1JFSUdOIFRMQVROU1JYMiAwIDAgOwotICBTSVpFIDQuOCBCWSAxLjcxIDsKLSAgU1lNTUVUUlkgWCBZIDsKLSAgU0lURSBDb3JlU2l0ZSA7Ci0gIFBJTiBRCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBPVVRQVVQgOwotICAgIEFOVEVOTkFESUZGQVJFQSAxLjcyODUgIExBWUVSIE1ldGFsMSA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAzLjk4NSAwLjUxIDQuMDY1IDAuNjcgOwotICAgICAgICBSRUNUIDQuMDYgMC41OSA0LjE0IDEuMDQgOwotICAgIEVORAotICBFTkQgUQotICBQSU4gUU4KLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIE9VVFBVVCA7Ci0gICAgQU5URU5OQURJRkZBUkVBIDEuNzI4NSAgTEFZRVIgTWV0YWwxIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDMuMDM1IDAuOSAzLjExNSAxLjA0IDsKLSAgICAgICAgUkVDVCAzLjA2IDAuNTEgMy4xNCAwLjk4IDsKLSAgICBFTkQKLSAgRU5EIFFOCi0gIFBJTiBHTgotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgNC4yNiAwLjYzIDQuMzQgMS4wNCA7Ci0gICAgICAgIFJFQ1QgNC4yNiAwLjczNSA0LjQzIDEuMDQgOwotICAgIEVORAotICBFTkQgR04KLSAgUElOIFNOCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAyLjY2IDAuNzUgMi43NCAxLjI1IDsKLSAgICBFTkQKLSAgRU5EIFNOCi0gIFBJTiBSTgotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMS40OSAwLjc5IDEuOTQgMC44NyA7Ci0gICAgICAgIFJFQ1QgMS44NiAwLjc5IDEuOTQgMC45MiA7Ci0gICAgRU5ECi0gIEVORCBSTgotICBQSU4gRAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC40NiAwLjc1NSAwLjYxIDEuMDI1IDsKLSAgICBFTkQKLSAgRU5EIEQKLSAgUElOIFZERAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBQT1dFUiA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZERCBWREQhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDEuNjUgNC44IDEuNzEgOwotICAgIEVORAotICBFTkQgVkRECi0gIFBJTiBWU1MKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgR1JPVU5EIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVlNTIFZTUyEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMC4wMCA0LjggMC4wNiA7Ci0gICAgRU5ECi0gIEVORCBWU1MKLUVORCBUTEFUTlNSWDIKLQotTUFDUk8gQU5EM1hMCi0gIENMQVNTIENPUkUgOwotICBPUklHSU4gMCAwIDsKLSAgRk9SRUlHTiBBTkQzWEwgMCAwIDsKLSAgU0laRSAxLjIgQlkgMS43MSA7Ci0gIFNZTU1FVFJZIFggWSA7Ci0gIFNJVEUgQ29yZVNpdGUgOwotICBQSU4gWQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gT1VUUFVUIDsKLSAgICBBTlRFTk5BRElGRkFSRUEgMS43Mjg1ICBMQVlFUiBNZXRhbDEgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMS4wNiAwLjQwNSAxLjE0IDEuMzg1IDsKLSAgICBFTkQKLSAgRU5EIFkKLSAgUElOIEEKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuNzIgMC43NiAwLjggMS4wNiA7Ci0gICAgICAgIFJFQ1QgMC43MiAwLjk4IDAuOTQgMS4wNiA7Ci0gICAgICAgIFJFQ1QgMC44NiAwLjk4IDAuOTQgMS4xMiA7Ci0gICAgRU5ECi0gIEVORCBBCi0gIFBJTiBCCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjI2IDAuNzkgMC4zNCAwLjk4IDsKLSAgICAgICAgUkVDVCAwLjM4IDAuNiAwLjQ2IDAuOTEgOwotICAgICAgICBSRUNUIDAuMjYgMC43OSAwLjQ2IDAuOTEgOwotICAgIEVORAotICBFTkQgQgotICBQSU4gQwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wNiAwLjYgMC4xNCAxLjEgOwotICAgIEVORAotICBFTkQgQwotICBQSU4gVkRECi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIFBPV0VSIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVkREIFZERCEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMS42NSAxLjIgMS43MSA7Ci0gICAgRU5ECi0gIEVORCBWREQKLSAgUElOIFZTUwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBHUk9VTkQgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWU1MgVlNTISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAwLjAwIDEuMiAwLjA2IDsKLSAgICBFTkQKLSAgRU5EIFZTUwotRU5EIEFORDNYTAotCi1NQUNSTyBERkZTWEwKLSAgQ0xBU1MgQ09SRSA7Ci0gIE9SSUdJTiAwIDAgOwotICBGT1JFSUdOIERGRlNYTCAwIDAgOwotICBTSVpFIDUgQlkgMS43MSA7Ci0gIFNZTU1FVFJZIFggWSA7Ci0gIFNJVEUgQ29yZVNpdGUgOwotICBQSU4gUQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gT1VUUFVUIDsKLSAgICBBTlRFTk5BRElGRkFSRUEgMS43Mjg1ICBMQVlFUiBNZXRhbDEgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC44NiAwLjQ5IDAuOTQgMS4wMiA7Ci0gICAgRU5ECi0gIEVORCBRCi0gIFBJTiBRTgotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gT1VUUFVUIDsKLSAgICBBTlRFTk5BRElGRkFSRUEgMS43Mjg1ICBMQVlFUiBNZXRhbDEgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wNiAwLjYgMC4zMDUgMC43MyA7Ci0gICAgICAgIFJFQ1QgMC4yMjUgMC41NCAwLjMwNSAxLjAyIDsKLSAgICBFTkQKLSAgRU5EIFFOCi0gIFBJTiBDSwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgNC42NiAwLjQ2IDQuNzQgMC45NiA7Ci0gICAgRU5ECi0gIEVORCBDSwotICBQSU4gRAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgNC40NiAwLjQ2IDQuNTQgMC45NiA7Ci0gICAgRU5ECi0gIEVORCBECi0gIFBJTiBTTgotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMS43MyAwLjgxNSAyLjE4NSAwLjg5NSA7Ci0gICAgICAgIFJFQ1QgMi4wMzUgMC44MTUgMi4xODUgMC45NCA7Ci0gICAgRU5ECi0gIEVORCBTTgotICBQSU4gVkRECi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIFBPV0VSIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVkREIFZERCEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMS42NSA1IDEuNzEgOwotICAgIEVORAotICBFTkQgVkRECi0gIFBJTiBWU1MKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgR1JPVU5EIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVlNTIFZTUyEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMC4wMCA1IDAuMDYgOwotICAgIEVORAotICBFTkQgVlNTCi1FTkQgREZGU1hMCi0KLU1BQ1JPIE5BTkQ0QkJYTAotICBDTEFTUyBDT1JFIDsKLSAgT1JJR0lOIDAgMCA7Ci0gIEZPUkVJR04gTkFORDRCQlhMIDAgMCA7Ci0gIFNJWkUgMS44IEJZIDEuNzEgOwotICBTWU1NRVRSWSBYIFkgOwotICBTSVRFIENvcmVTaXRlIDsKLSAgUElOIFkKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIE9VVFBVVCA7Ci0gICAgQU5URU5OQURJRkZBUkVBIDEuNzI4NSAgTEFZRVIgTWV0YWwxIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuNjkgMS4yMyAwLjc1IDEuMzg1IDsKLSAgICAgICAgUkVDVCAwLjU1NSAwLjM2IDEuMTc1IDAuNDIgOwotICAgICAgICBSRUNUIDEuMDYgMC45OCAxLjE3NSAxLjI5IDsKLSAgICAgICAgUkVDVCAwLjY5IDEuMjMgMS4xNzUgMS4yOSA7Ci0gICAgICAgIFJFQ1QgMS4xMTUgMC4zNiAxLjE3NSAxLjM4NSA7Ci0gICAgRU5ECi0gIEVORCBZCi0gIFBJTiBECi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjQzNSAwLjgxNSAwLjcgMS4xMyA7Ci0gICAgRU5ECi0gIEVORCBECi0gIFBJTiBDCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjggMC44NCAwLjg4IDEuMTMgOwotICAgICAgICBSRUNUIDAuODYgMC42OSAwLjk0IDAuOTIgOwotICAgIEVORAotICBFTkQgQwotICBQSU4gQU4KLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDEuMjc1IDAuODE1IDEuNTY1IDAuODk1IDsKLSAgICAgICAgUkVDVCAxLjQxNSAwLjgxNSAxLjU2NSAxLjEwNSA7Ci0gICAgRU5ECi0gIEVORCBBTgotICBQSU4gQk4KLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDYgMC41IDAuMTQgMC43NDUgOwotICAgICAgICBSRUNUIDAuMDk1IDAuNjI1IDAuMTc1IDAuOTY1IDsKLSAgICBFTkQKLSAgRU5EIEJOCi0gIFBJTiBWREQKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgUE9XRVIgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWREQgVkREISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAxLjY1IDEuOCAxLjcxIDsKLSAgICBFTkQKLSAgRU5EIFZERAotICBQSU4gVlNTCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIEdST1VORCA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZTUyBWU1MhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDAuMDAgMS44IDAuMDYgOwotICAgIEVORAotICBFTkQgVlNTCi1FTkQgTkFORDRCQlhMCi0KLU1BQ1JPIENMS0JVRlgxNgotICBDTEFTUyBDT1JFIDsKLSAgT1JJR0lOIDAgMCA7Ci0gIEZPUkVJR04gQ0xLQlVGWDE2IDAgMCA7Ci0gIFNJWkUgNCBCWSAxLjcxIDsKLSAgU1lNTUVUUlkgWCBZIDsKLSAgU0lURSBDb3JlU2l0ZSA7Ci0gIFBJTiBZCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBPVVRQVVQgOwotICAgIEFOVEVOTkFESUZGQVJFQSAxLjcyODUgIExBWUVSIE1ldGFsMSA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjIzIDAuNTg1IDAuMjkgMC45NjUgOwotICAgICAgICBSRUNUIDAuMjc1IDAuNTI1IDAuMzM1IDAuNjQ1IDsKLSAgICAgICAgUkVDVCAwLjI2IDAuOTA1IDAuMzM1IDEuMzQ1IDsKLSAgICAgICAgUkVDVCAwLjI2IDAuOTA1IDAuMzQgMS4xMSA7Ci0gICAgICAgIFJFQ1QgMC42ODUgMC45MDUgMC43NDUgMS4zNDUgOwotICAgICAgICBSRUNUIDAuNjU1IDAuNTcgMC43NzUgMC42NDUgOwotICAgICAgICBSRUNUIDEuMDk1IDAuOTA1IDEuMTU1IDEuMzQ1IDsKLSAgICAgICAgUkVDVCAxLjA2NSAwLjU3IDEuMTg1IDAuNjQ1IDsKLSAgICAgICAgUkVDVCAxLjUwNSAwLjkwNSAxLjU2NSAxLjM0NSA7Ci0gICAgICAgIFJFQ1QgMS40NzUgMC41NyAxLjU5NSAwLjY0NSA7Ci0gICAgICAgIFJFQ1QgMS45MTUgMC45MDUgMS45NzUgMS4zNDUgOwotICAgICAgICBSRUNUIDEuODg1IDAuNTcgMi4wMDUgMC42NDUgOwotICAgICAgICBSRUNUIDIuMzI1IDAuOTA1IDIuMzg1IDEuMzQ1IDsKLSAgICAgICAgUkVDVCAyLjI5NSAwLjU3IDIuNDE1IDAuNjQ1IDsKLSAgICAgICAgUkVDVCAwLjIzIDAuOTA1IDIuNzk1IDAuOTY1IDsKLSAgICAgICAgUkVDVCAwLjIzIDAuNTg1IDIuNzM1IDAuNjQ1IDsKLSAgICAgICAgUkVDVCAyLjczNSAwLjkwNSAyLjc5NSAxLjM0NSA7Ci0gICAgICAgIFJFQ1QgMi42OSAwLjU3IDIuODI1IDAuNjMgOwotICAgIEVORAotICBFTkQgWQotICBQSU4gQQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMy4yNiAwLjgxNSAzLjc2IDAuODk1IDsKLSAgICBFTkQKLSAgRU5EIEEKLSAgUElOIFZERAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBQT1dFUiA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZERCBWREQhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDEuNjUgNCAxLjcxIDsKLSAgICBFTkQKLSAgRU5EIFZERAotICBQSU4gVlNTCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIEdST1VORCA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZTUyBWU1MhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDAuMDAgNCAwLjA2IDsKLSAgICBFTkQKLSAgRU5EIFZTUwotRU5EIENMS0JVRlgxNgotCi1NQUNSTyBPQUkyMjFYMQotICBDTEFTUyBDT1JFIDsKLSAgT1JJR0lOIDAgMCA7Ci0gIEZPUkVJR04gT0FJMjIxWDEgMCAwIDsKLSAgU0laRSAxLjYgQlkgMS43MSA7Ci0gIFNZTU1FVFJZIFggWSA7Ci0gIFNJVEUgQ29yZVNpdGUgOwotICBQSU4gWQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gT1VUUFVUIDsKLSAgICBBTlRFTk5BRElGRkFSRUEgMS43Mjg1ICBMQVlFUiBNZXRhbDEgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC43OSAxLjIgMC44NSAxLjQ4IDsKLSAgICAgICAgUkVDVCAwLjc5IDEuMiAxLjM2NSAxLjI2IDsKLSAgICAgICAgUkVDVCAxLjMwNSAxLjA5IDEuMzY1IDEuNDkgOwotICAgICAgICBSRUNUIDEuMjYgMS4yIDEuMzY1IDEuNDkgOwotICAgICAgICBSRUNUIDEuNDQgMC4zOSAxLjUgMS4xNSA7Ci0gICAgICAgIFJFQ1QgMS4zMDUgMS4wOSAxLjUgMS4xNSA7Ci0gICAgRU5ECi0gIEVORCBZCi0gIFBJTiBBMAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4yNiAwLjYgMC4zNCAxLjEgOwotICAgIEVORAotICBFTkQgQTAKLSAgUElOIEIxCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjg2IDAuNiAwLjk0IDEuMSA7Ci0gICAgRU5ECi0gIEVORCBCMQotICBQSU4gQTEKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuNDYgMC42MSAwLjU0IDEuMTEgOwotICAgIEVORAotICBFTkQgQTEKLSAgUElOIEIwCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAxLjA2IDAuNiAxLjE0IDEuMSA7Ci0gICAgRU5ECi0gIEVORCBCMAotICBQSU4gQzAKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDEuMjYgMC40NyAxLjM0IDAuOTcgOwotICAgIEVORAotICBFTkQgQzAKLSAgUElOIFZERAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBQT1dFUiA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZERCBWREQhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDEuNjUgMS42IDEuNzEgOwotICAgIEVORAotICBFTkQgVkRECi0gIFBJTiBWU1MKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgR1JPVU5EIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVlNTIFZTUyEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMC4wMCAxLjYgMC4wNiA7Ci0gICAgRU5ECi0gIEVORCBWU1MKLUVORCBPQUkyMjFYMQotCi1NQUNSTyBBTkQ0WEwKLSAgQ0xBU1MgQ09SRSA7Ci0gIE9SSUdJTiAwIDAgOwotICBGT1JFSUdOIEFORDRYTCAwIDAgOwotICBTSVpFIDEuNCBCWSAxLjcxIDsKLSAgU1lNTUVUUlkgWCBZIDsKLSAgU0lURSBDb3JlU2l0ZSA7Ci0gIFBJTiBZCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBPVVRQVVQgOwotICAgIEFOVEVOTkFESUZGQVJFQSAxLjcyODUgIExBWUVSIE1ldGFsMSA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAxLjE3NSAwLjI2IDEuMjM1IDAuMzggOwotICAgICAgICBSRUNUIDEuMTc1IDAuMzIgMS4zNCAwLjM4IDsKLSAgICAgICAgUkVDVCAxLjI2IDAuMzIgMS4zNCAwLjU0IDsKLSAgICAgICAgUkVDVCAxLjI3IDAuMzIgMS4zNCAxLjI0NSA7Ci0gICAgRU5ECi0gIEVORCBZCi0gIFBJTiBBCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAxIDAuODYgMS4wOCAxLjI1IDsKLSAgICAgICAgUkVDVCAxLjA2IDEuMTcgMS4xNCAxLjMgOwotICAgIEVORAotICBFTkQgQQotICBQSU4gQgotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC42NCAwLjY0IDAuNzIgMS4xMiA7Ci0gICAgICAgIFJFQ1QgMC42NCAwLjY0IDAuNzQgMC45MiA7Ci0gICAgRU5ECi0gIEVORCBCCi0gIFBJTiBDCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjQ0IDAuNjQgMC41MiAxLjEyIDsKLSAgICAgICAgUkVDVCAwLjQ0IDAuNjQgMC41NCAwLjkyIDsKLSAgICBFTkQKLSAgRU5EIEMKLSAgUElOIEQKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMjIgMC42NCAwLjM0IDEuMSA7Ci0gICAgRU5ECi0gIEVORCBECi0gIFBJTiBWREQKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgUE9XRVIgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWREQgVkREISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAxLjY1IDEuNCAxLjcxIDsKLSAgICBFTkQKLSAgRU5EIFZERAotICBQSU4gVlNTCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIEdST1VORCA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZTUyBWU1MhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDAuMDAgMS40IDAuMDYgOwotICAgIEVORAotICBFTkQgVlNTCi1FTkQgQU5ENFhMCi0KLU1BQ1JPIE9BSTMxWDEKLSAgQ0xBU1MgQ09SRSA7Ci0gIE9SSUdJTiAwIDAgOwotICBGT1JFSUdOIE9BSTMxWDEgMCAwIDsKLSAgU0laRSAxLjIgQlkgMS43MSA7Ci0gIFNZTU1FVFJZIFggWSA7Ci0gIFNJVEUgQ29yZVNpdGUgOwotICBQSU4gWQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gT1VUUFVUIDsKLSAgICBBTlRFTk5BRElGRkFSRUEgMS43Mjg1ICBMQVlFUiBNZXRhbDEgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC43MyAxLjIgMC43OSAxLjQ4IDsKLSAgICAgICAgUkVDVCAxLjA2IDAuMzcgMS4xNCAwLjU0IDsKLSAgICAgICAgUkVDVCAxLjA4IDAuMzcgMS4xNCAxLjI2IDsKLSAgICAgICAgUkVDVCAwLjczIDEuMiAxLjE0IDEuMjYgOwotICAgIEVORAotICBFTkQgWQotICBQSU4gQTEKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuNDYgMC42MSAwLjU0IDEuMTEgOwotICAgIEVORAotICBFTkQgQTEKLSAgUElOIEEwCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjA2IDAuNzkgMC4xNCAwLjkyIDsKLSAgICAgICAgUkVDVCAwLjE3IDAuNTMgMC4yNSAwLjg3IDsKLSAgICAgICAgUkVDVCAwLjA2IDAuNzkgMC4yNSAwLjg3IDsKLSAgICBFTkQKLSAgRU5EIEEwCi0gIFBJTiBCMAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC44NiAwLjYgMC45NCAxLjEgOwotICAgIEVORAotICBFTkQgQjAKLSAgUElOIEEyCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjY2IDAuNiAwLjc0IDEuMSA7Ci0gICAgRU5ECi0gIEVORCBBMgotICBQSU4gVkRECi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIFBPV0VSIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVkREIFZERCEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMS42NSAxLjIgMS43MSA7Ci0gICAgRU5ECi0gIEVORCBWREQKLSAgUElOIFZTUwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBHUk9VTkQgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWU1MgVlNTISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAwLjAwIDEuMiAwLjA2IDsKLSAgICBFTkQKLSAgRU5EIFZTUwotRU5EIE9BSTMxWDEKLQotTUFDUk8gT0EyMVgxCi0gIENMQVNTIENPUkUgOwotICBPUklHSU4gMCAwIDsKLSAgRk9SRUlHTiBPQTIxWDEgMCAwIDsKLSAgU0laRSAxLjQgQlkgMS43MSA7Ci0gIFNZTU1FVFJZIFggWSA7Ci0gIFNJVEUgQ29yZVNpdGUgOwotICBQSU4gWQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gT1VUUFVUIDsKLSAgICBBTlRFTk5BRElGRkFSRUEgMS43Mjg1ICBMQVlFUiBNZXRhbDEgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMS4wNiAwLjYgMS4xNCAxLjQ1NSA7Ci0gICAgICAgIFJFQ1QgMS4wOCAwLjU3IDEuMyAwLjYzIDsKLSAgICBFTkQKLSAgRU5EIFkKLSAgUElOIEEwCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjA2IDAuNTYgMC4xNCAxLjA2IDsKLSAgICBFTkQKLSAgRU5EIEEwCi0gIFBJTiBBMQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC40NiAwLjU5IDAuNTQgMS4wOSA7Ci0gICAgRU5ECi0gIEVORCBBMQotICBQSU4gQjAKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuNjYgMC4yMiAwLjc0IDAuNzIgOwotICAgIEVORAotICBFTkQgQjAKLSAgUElOIFZERAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBQT1dFUiA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZERCBWREQhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDEuNjUgMS40IDEuNzEgOwotICAgIEVORAotICBFTkQgVkRECi0gIFBJTiBWU1MKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgR1JPVU5EIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVlNTIFZTUyEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMC4wMCAxLjQgMC4wNiA7Ci0gICAgRU5ECi0gIEVORCBWU1MKLUVORCBPQTIxWDEKLQotTUFDUk8gRExZNFg0Ci0gIENMQVNTIENPUkUgOwotICBPUklHSU4gMCAwIDsKLSAgRk9SRUlHTiBETFk0WDQgMCAwIDsKLSAgU0laRSA2LjIgQlkgMS43MSA7Ci0gIFNZTU1FVFJZIFggWSA7Ci0gIFNJVEUgQ29yZVNpdGUgOwotICBQSU4gQQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgNS44NiAwLjk4IDUuOTQgMS4yMzUgOwotICAgICAgICBSRUNUIDUuODkgMC43NjUgNS45NyAxLjA2IDsKLSAgICBFTkQKLSAgRU5EIEEKLSAgUElOIFkKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIE9VVFBVVCA7Ci0gICAgQU5URU5OQURJRkZBUkVBIDEuNzI4NSAgTEFZRVIgTWV0YWwxIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuNjYgMC40OSAwLjcyIDAuOTkgOwotICAgICAgICBSRUNUIDAuNTcgMC45MyAwLjcyIDAuOTkgOwotICAgICAgICBSRUNUIDAuNjYgMC42IDAuNzQgMC43MyA7Ci0gICAgICAgIFJFQ1QgMC42NiAwLjY3IDEuMTMgMC43MyA7Ci0gICAgICAgIFJFQ1QgMS4wNyAwLjQ5IDEuMTMgMC45OSA7Ci0gICAgICAgIFJFQ1QgMS4wNCAwLjkzIDEuMTYgMC45OSA7Ci0gICAgRU5ECi0gIEVORCBZCi0gIFBJTiBWREQKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgUE9XRVIgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWREQgVkREISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAxLjY1IDYuMiAxLjcxIDsKLSAgICBFTkQKLSAgRU5EIFZERAotICBQSU4gVlNTCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIEdST1VORCA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZTUyBWU1MhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDAuMDAgNi4yIDAuMDYgOwotICAgIEVORAotICBFTkQgVlNTCi1FTkQgRExZNFg0Ci0KLU1BQ1JPIENMS1hPUjJYOAotICBDTEFTUyBDT1JFIDsKLSAgT1JJR0lOIDAgMCA7Ci0gIEZPUkVJR04gQ0xLWE9SMlg4IDAgMCA7Ci0gIFNJWkUgMy40IEJZIDEuNzEgOwotICBTWU1NRVRSWSBYIFkgOwotICBTSVRFIENvcmVTaXRlIDsKLSAgUElOIFkKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIE9VVFBVVCA7Ci0gICAgQU5URU5OQURJRkZBUkVBIDEuNzI4NSAgTEFZRVIgTWV0YWwxIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMjU1IDAuNDM1IDAuMzE1IDAuNTU1IDsKLSAgICAgICAgUkVDVCAwLjI2IDAuNDk1IDAuMzIgMS4zNiA7Ci0gICAgICAgIFJFQ1QgMC4yNiAwLjQ5NSAwLjM0IDAuNzMgOwotICAgICAgICBSRUNUIDAuNjcgMC45MTUgMC43MyAxLjM2IDsKLSAgICAgICAgUkVDVCAwLjYzNSAwLjQ4IDAuNzU1IDAuNTU1IDsKLSAgICAgICAgUkVDVCAxLjA4IDAuOTE1IDEuMTQgMS4zNiA7Ci0gICAgICAgIFJFQ1QgMS4wNDUgMC40OCAxLjE2NSAwLjU1NSA7Ci0gICAgICAgIFJFQ1QgMC4yNTUgMC40OTUgMS40ODUgMC41NTUgOwotICAgICAgICBSRUNUIDAuMjYgMC45MTUgMS41NSAwLjk3NSA7Ci0gICAgICAgIFJFQ1QgMS40OSAwLjkxNSAxLjU1IDEuMzYgOwotICAgICAgICBSRUNUIDEuNDQgMC40OCAxLjU3NSAwLjU0IDsKLSAgICBFTkQKLSAgRU5EIFkKLSAgUElOIEIKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDIuNzIgMC42MSAzLjE0IDAuNjkgOwotICAgICAgICBSRUNUIDMuMDYgMC42MSAzLjE0IDAuOTIgOwotICAgICAgICBSRUNUIDMuMDYgMC43OSAzLjE4IDAuODcgOwotICAgIEVORAotICBFTkQgQgotICBQSU4gQQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMS44MzUgMC42MjUgMi4wMyAwLjc0NSA7Ci0gICAgICAgIFJFQ1QgMS45NSAwLjYyNSAyLjAzIDEuMDEgOwotICAgIEVORAotICBFTkQgQQotICBQSU4gVkRECi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIFBPV0VSIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVkREIFZERCEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMS42NSAzLjQgMS43MSA7Ci0gICAgRU5ECi0gIEVORCBWREQKLSAgUElOIFZTUwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBHUk9VTkQgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWU1MgVlNTISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAwLjAwIDMuNCAwLjA2IDsKLSAgICBFTkQKLSAgRU5EIFZTUwotRU5EIENMS1hPUjJYOAotCi1NQUNSTyBPUjJYOAotICBDTEFTUyBDT1JFIDsKLSAgT1JJR0lOIDAgMCA7Ci0gIEZPUkVJR04gT1IyWDggMCAwIDsKLSAgU0laRSAyLjggQlkgMS43MSA7Ci0gIFNZTU1FVFJZIFggWSA7Ci0gIFNJVEUgQ29yZVNpdGUgOwotICBQSU4gWQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gT1VUUFVUIDsKLSAgICBBTlRFTk5BRElGRkFSRUEgMS43Mjg1ICBMQVlFUiBNZXRhbDEgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMS4yMjUgMSAxLjI4NSAxLjQ0NSA7Ci0gICAgICAgIFJFQ1QgMS4yNyAwLjU3IDEuMzkgMC42MyA7Ci0gICAgICAgIFJFQ1QgMS42MzUgMSAxLjY5NSAxLjQ0NSA7Ci0gICAgICAgIFJFQ1QgMS42OCAwLjU3IDEuOCAwLjY0NSA7Ci0gICAgICAgIFJFQ1QgMi4wNDUgMSAyLjEwNSAxLjQ0NSA7Ci0gICAgICAgIFJFQ1QgMi4xMiAwLjUyNSAyLjE4IDAuNjQ1IDsKLSAgICAgICAgUkVDVCAyLjI2IDAuNTg1IDIuMzIgMS4wNiA7Ci0gICAgICAgIFJFQ1QgMi4yNiAwLjU4NSAyLjM0IDAuNzMgOwotICAgICAgICBSRUNUIDEuMjI1IDEgMi41MTUgMS4wNiA7Ci0gICAgICAgIFJFQ1QgMi40NTUgMSAyLjUxNSAxLjQ0NSA7Ci0gICAgICAgIFJFQ1QgMS4zNDUgMC41ODUgMi41MyAwLjY0NSA7Ci0gICAgICAgIFJFQ1QgMi40ODUgMC41NyAyLjYyIDAuNjMgOwotICAgIEVORAotICBFTkQgWQotICBQSU4gQgotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC40NiAwLjkyNSAwLjU0IDEuMyA7Ci0gICAgICAgIFJFQ1QgMC40NiAwLjkyNSAwLjY2NSAxLjAwNSA7Ci0gICAgRU5ECi0gIEVORCBCCi0gIFBJTiBBCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjI2IDAuNzkgMC4zNiAwLjkyIDsKLSAgICAgICAgUkVDVCAwLjI4IDAuNzQ1IDAuOTY1IDAuODI1IDsKLSAgICBFTkQKLSAgRU5EIEEKLSAgUElOIFZERAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBQT1dFUiA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZERCBWREQhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDEuNjUgMi44IDEuNzEgOwotICAgIEVORAotICBFTkQgVkRECi0gIFBJTiBWU1MKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgR1JPVU5EIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVlNTIFZTUyEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMC4wMCAyLjggMC4wNiA7Ci0gICAgRU5ECi0gIEVORCBWU1MKLUVORCBPUjJYOAotCi1NQUNSTyBERkZYTAotICBDTEFTUyBDT1JFIDsKLSAgT1JJR0lOIDAgMCA7Ci0gIEZPUkVJR04gREZGWEwgMCAwIDsKLSAgU0laRSA0LjQgQlkgMS43MSA7Ci0gIFNZTU1FVFJZIFggWSA7Ci0gIFNJVEUgQ29yZVNpdGUgOwotICBQSU4gUQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gT1VUUFVUIDsKLSAgICBBTlRFTk5BRElGRkFSRUEgMS43Mjg1ICBMQVlFUiBNZXRhbDEgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC44NiAwLjU2IDAuOTQgMS4zIDsKLSAgICAgICAgUkVDVCAwLjkyIDAuNTIgMSAwLjY0IDsKLSAgICAgICAgUkVDVCAwLjg2IDAuOTk1IDEuMDU1IDEuMTE1IDsKLSAgICBFTkQKLSAgRU5EIFEKLSAgUElOIFFOCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBPVVRQVVQgOwotICAgIEFOVEVOTkFESUZGQVJFQSAxLjcyODUgIExBWUVSIE1ldGFsMSA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjA2IDAuNTQgMC4yNyAwLjczIDsKLSAgICAgICAgUkVDVCAwLjE5IDAuNTQgMC4yNyAxLjAyIDsKLSAgICAgICAgUkVDVCAwLjA2IDAuNTQgMC4zNSAwLjY2IDsKLSAgICAgICAgUkVDVCAwLjI3IDAuOTQgMC4zNSAxLjA2IDsKLSAgICBFTkQKLSAgRU5EIFFOCi0gIFBJTiBECi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAzLjkzIDAuODQ1IDQuMTQgMS4xODUgOwotICAgICAgICBSRUNUIDMuOTMgMC44NDUgNC4xNyAxLjA4NSA7Ci0gICAgRU5ECi0gIEVORCBECi0gIFBJTiBDSwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMS4yNiAwLjYyIDEuMzggMC43OSA7Ci0gICAgICAgIFJFQ1QgMS4zIDAuNjIgMS4zOCAwLjg5NSA7Ci0gICAgICAgIFJFQ1QgMS4zIDAuODE1IDEuNTY1IDAuODk1IDsKLSAgICBFTkQKLSAgRU5EIENLCi0gIFBJTiBWREQKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgUE9XRVIgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWREQgVkREISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAxLjY1IDQuNCAxLjcxIDsKLSAgICBFTkQKLSAgRU5EIFZERAotICBQSU4gVlNTCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIEdST1VORCA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZTUyBWU1MhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDAuMDAgNC40IDAuMDYgOwotICAgIEVORAotICBFTkQgVlNTCi1FTkQgREZGWEwKLQotTUFDUk8gT0FJMkJCMlg0Ci0gIENMQVNTIENPUkUgOwotICBPUklHSU4gMCAwIDsKLSAgRk9SRUlHTiBPQUkyQkIyWDQgMCAwIDsKLSAgU0laRSA1IEJZIDEuNzEgOwotICBTWU1NRVRSWSBYIFkgOwotICBTSVRFIENvcmVTaXRlIDsKLSAgUElOIFkKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIE9VVFBVVCA7Ci0gICAgQU5URU5OQURJRkZBUkVBIDEuNzI4NSAgTEFZRVIgTWV0YWwxIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDEuNzA1IDEuMTEgMS43NjUgMS4yMyA7Ci0gICAgICAgIFJFQ1QgMS43MDUgMS4xMSAyLjczNSAxLjE3IDsKLSAgICAgICAgUkVDVCAyLjQyNSAxLjExIDIuNDg1IDEuMzM1IDsKLSAgICAgICAgUkVDVCAyLjQyNSAxLjExIDIuNzM1IDEuMjc1IDsKLSAgICAgICAgUkVDVCAyLjkwNSAwLjQ2NSAyLjk2NSAxLjI3NSA7Ci0gICAgICAgIFJFQ1QgMi44MzUgMS4xOTUgMi45NjUgMS4yNzUgOwotICAgICAgICBSRUNUIDMuMTE1IDAuNDQ1IDMuMjM1IDAuNTI1IDsKLSAgICAgICAgUkVDVCAyLjQyNSAxLjIxNSAzLjUyNSAxLjI3NSA7Ci0gICAgICAgIFJFQ1QgMy41NTUgMC4zMDUgMy42MTUgMC41MjUgOwotICAgICAgICBSRUNUIDIuOTA1IDAuNDY1IDMuNjE1IDAuNTI1IDsKLSAgICAgICAgUkVDVCAzLjU1NSAwLjMwNSAzLjY3NSAwLjM2NSA7Ci0gICAgICAgIFJFQ1QgNC4xMSAwLjI4NSA0LjIzIDAuMzY1IDsKLSAgICAgICAgUkVDVCAzLjQ2NSAxLjE1NSA0LjQ1IDEuMjE1IDsKLSAgICAgICAgUkVDVCAzLjYyNSAwLjI4NSA0LjYgMC4zNDUgOwotICAgICAgICBSRUNUIDQuNTUgMC4zMDUgNC42NyAwLjM2NSA7Ci0gICAgRU5ECi0gIEVORCBZCi0gIFBJTiBCMQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMy4yODUgMC42MjUgMy4zNjUgMC43NDUgOwotICAgICAgICBSRUNUIDMuMDg1IDAuNjI1IDMuNTQ1IDAuNzA1IDsKLSAgICBFTkQKLSAgRU5EIEIxCi0gIFBJTiBCMAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMy4xMjUgMC44NDUgMy4zNjUgMS4wODUgOwotICAgICAgICBSRUNUIDMuMDY1IDAuODQ1IDQuNTM1IDAuOTA1IDsKLSAgICAgICAgUkVDVCA0LjQ3NSAwLjgzNSA0LjY4NSAwLjg5NSA7Ci0gICAgRU5ECi0gIEVORCBCMAotICBQSU4gQTBOCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjQ2IDAuNjg1IDAuNTQgMS4xODUgOwotICAgIEVORAotICBFTkQgQTBOCi0gIFBJTiBBMU4KLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMjYgMC42ODUgMC4zNCAxLjE4NSA7Ci0gICAgRU5ECi0gIEVORCBBMU4KLSAgUElOIFZERAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBQT1dFUiA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZERCBWREQhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDEuNjUgNSAxLjcxIDsKLSAgICBFTkQKLSAgRU5EIFZERAotICBQSU4gVlNTCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIEdST1VORCA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZTUyBWU1MhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDAuMDAgNSAwLjA2IDsKLSAgICBFTkQKLSAgRU5EIFZTUwotRU5EIE9BSTJCQjJYNAotCi1NQUNSTyBFREZGWDEKLSAgQ0xBU1MgQ09SRSA7Ci0gIE9SSUdJTiAwIDAgOwotICBGT1JFSUdOIEVERkZYMSAwIDAgOwotICBTSVpFIDUuNiBCWSAxLjcxIDsKLSAgU1lNTUVUUlkgWCBZIDsKLSAgU0lURSBDb3JlU2l0ZSA7Ci0gIFBJTiBRTgotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gT1VUUFVUIDsKLSAgICBBTlRFTk5BRElGRkFSRUEgMS43Mjg1ICBMQVlFUiBNZXRhbDEgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgNS4yNiAwLjYgNS4zNCAwLjczIDsKLSAgICAgICAgUkVDVCA1LjI4IDAuNTQgNS4zNCAxLjI5IDsKLSAgICBFTkQKLSAgRU5EIFFOCi0gIFBJTiBRCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBPVVRQVVQgOwotICAgIEFOVEVOTkFESUZGQVJFQSAxLjcyODUgIExBWUVSIE1ldGFsMSA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCA0LjQ2IDAuNTQgNC41NCAxLjI5IDsKLSAgICBFTkQKLSAgRU5EIFEKLSAgUElOIEUKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDMuMTc1IDAuNjk1IDMuMjk1IDAuNzU1IDsKLSAgICAgICAgUkVDVCAzLjIzNSAwLjY5NSAzLjI5NSAxLjUxNSA7Ci0gICAgICAgIFJFQ1QgMi45NjUgMS40NTUgMy4yOTUgMS41MTUgOwotICAgICAgICBSRUNUIDMuMjM1IDEuMDggNC4xMiAxLjE0IDsKLSAgICAgICAgUkVDVCA0LjA2IDAuOTc1IDQuMTQgMS4xMSA7Ci0gICAgRU5ECi0gIEVORCBFCi0gIFBJTiBECi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAzLjU1NSAwLjgwNSAzLjc2NSAwLjk4IDsKLSAgICAgICAgUkVDVCAzLjU1NSAwLjgwNSAzLjk2IDAuODg1IDsKLSAgICBFTkQKLSAgRU5EIEQKLSAgUElOIENLCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjMgMC43NyAwLjM4IDEuMDYgOwotICAgICAgICBSRUNUIDAuMyAwLjk4IDAuNTQgMS4wNiA7Ci0gICAgICAgIFJFQ1QgMC40NiAwLjk4IDAuNTQgMS4xMSA7Ci0gICAgRU5ECi0gIEVORCBDSwotICBQSU4gVkRECi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIFBPV0VSIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVkREIFZERCEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMS42NSA1LjYgMS43MSA7Ci0gICAgRU5ECi0gIEVORCBWREQKLSAgUElOIFZTUwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBHUk9VTkQgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWU1MgVlNTISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAwLjAwIDUuNiAwLjA2IDsKLSAgICBFTkQKLSAgRU5EIFZTUwotRU5EIEVERkZYMQotCi1NQUNSTyBIT0xEWDEKLSAgQ0xBU1MgQ09SRSA7Ci0gIE9SSUdJTiAwIDAgOwotICBGT1JFSUdOIEhPTERYMSAwIDAgOwotICBTSVpFIDEgQlkgMS43MSA7Ci0gIFNZTU1FVFJZIFggWSA7Ci0gIFNJVEUgQ29yZVNpdGUgOwotICBQSU4gWQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIEFOVEVOTkFESUZGQVJFQSAxLjcyODUgIExBWUVSIE1ldGFsMSA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjM0IDAuNzQgMC40IDAuOTggOwotICAgICAgICBSRUNUIDAuODYgMC43OSAwLjk0IDAuOTggOwotICAgICAgICBSRUNUIDAuMzQgMC45MiAwLjk0IDAuOTggOwotICAgICAgICBSRUNUIDAuODcgMC41NCAwLjk0IDEuMDIgOwotICAgIEVORAotICBFTkQgWQotICBQSU4gVkRECi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIFBPV0VSIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVkREIFZERCEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMS42NSAxIDEuNzEgOwotICAgIEVORAotICBFTkQgVkRECi0gIFBJTiBWU1MKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgR1JPVU5EIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVlNTIFZTUyEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMC4wMCAxIDAuMDYgOwotICAgIEVORAotICBFTkQgVlNTCi1FTkQgSE9MRFgxCi0KLU1BQ1JPIFRMQVROVFNDQVg4Ci0gIENMQVNTIENPUkUgOwotICBPUklHSU4gMCAwIDsKLSAgRk9SRUlHTiBUTEFUTlRTQ0FYOCAwIDAgOwotICBTSVpFIDUuMiBCWSAxLjcxIDsKLSAgU1lNTUVUUlkgWCBZIDsKLSAgU0lURSBDb3JlU2l0ZSA7Ci0gIFBJTiBFQ0sKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIE9VVFBVVCA7Ci0gICAgQU5URU5OQURJRkZBUkVBIDEuNzI4NSAgTEFZRVIgTWV0YWwxIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDMuNjYgMC45NiAzLjc0IDEuMTEgOwotICAgICAgICBSRUNUIDMuNjggMC41MTUgMy43NCAxLjQwNSA7Ci0gICAgICAgIFJFQ1QgNC4wOSAwLjk2IDQuMTUgMS40MDUgOwotICAgICAgICBSRUNUIDQuMDYgMC41NDUgNC4xOCAwLjYwNSA7Ci0gICAgICAgIFJFQ1QgNC41IDAuOTYgNC41NiAxLjQwNSA7Ci0gICAgICAgIFJFQ1QgNC40NyAwLjU0NSA0LjU5IDAuNjIgOwotICAgICAgICBSRUNUIDQuMTM1IDAuNTYgNC45NyAwLjYyIDsKLSAgICAgICAgUkVDVCAzLjY2IDAuOTYgNC45NyAxLjAyIDsKLSAgICAgICAgUkVDVCA0LjkxIDAuNSA0Ljk3IDEuNDA1IDsKLSAgICBFTkQKLSAgRU5EIEVDSwotICBQSU4gQ0sKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuNjYgMC40NSAwLjc0IDAuNzMgOwotICAgICAgICBSRUNUIDAuNjc1IDAuNiAwLjc1NSAwLjkzNSA7Ci0gICAgRU5ECi0gIEVORCBDSwotICBQSU4gU0UKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuNDQ1IDAuNDUgMC41MjUgMC45MzUgOwotICAgICAgICBSRUNUIDAuNDQ1IDAuNDUgMC41NCAwLjczIDsKLSAgICBFTkQKLSAgRU5EIFNFCi0gIFBJTiBFCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjA2NSAwLjQ2NSAwLjE4NSAwLjg5NSA7Ci0gICAgICAgIFJFQ1QgMC4wMzUgMC44MTUgMC4xODUgMC44OTUgOwotICAgIEVORAotICBFTkQgRQotICBQSU4gVkRECi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIFBPV0VSIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVkREIFZERCEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMS42NSA1LjIgMS43MSA7Ci0gICAgRU5ECi0gIEVORCBWREQKLSAgUElOIFZTUwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBHUk9VTkQgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWU1MgVlNTISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAwLjAwIDUuMiAwLjA2IDsKLSAgICBFTkQKLSAgRU5EIFZTUwotRU5EIFRMQVROVFNDQVg4Ci0KLU1BQ1JPIEFOVEVOTkEKLSAgQ0xBU1MgQ09SRSA7Ci0gIE9SSUdJTiAwIDAgOwotICBGT1JFSUdOIEFOVEVOTkEgMCAwIDsKLSAgU0laRSAwLjYgQlkgMS43MSA7Ci0gIFNZTU1FVFJZIFggWSA7Ci0gIFNJVEUgQ29yZVNpdGUgOwotICBQSU4gVkRECi0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgUE9XRVIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAxLjY1IDAuNiAxLjcxIDsKLSAgICBFTkQKLSAgRU5EIFZERAotICBQSU4gVlNTCi0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgR1JPVU5EIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMC4wMCAwLjYgMC4wNiA7Ci0gICAgRU5ECi0gIEVORCBWU1MKLSAgUElOIEEKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgQU5URU5OQURJRkZBUkVBIDEuNzI4NSAgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4yNiAwLjM5IDAuMzQgMS4yNyA7Ci0gICAgRU5ECi0gIEVORCBBCi1FTkQgQU5URU5OQQotCi0jTUFDUk8gQU5URU5OQQotIyAgQ0xBU1MgQ09SRSA7Ci0jICBPUklHSU4gMCAwIDsKLSMgIEZPUkVJR04gQU5URU5OQSAwIDAgOwotIyAgU0laRSAwLjYgQlkgMS43MSA7Ci0jICBTWU1NRVRSWSBYIFkgOwotIyAgU0lURSBDb3JlU2l0ZSA7Ci0jICBQSU4gVkRECi0jICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotIyAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0jICAgIERJUkVDVElPTiBJTk9VVCA7Ci0jICAgIFVTRSBQT1dFUiA7Ci0jICAgIFNIQVBFIEFCVVRNRU5UIDsKLSMgICAgTkVURVhQUiAiVkREIFZERCEiIDsKLSMgICAgUE9SVAotIyAgICAgIExBWUVSIE1ldGFsMSA7Ci0jICAgICAgICBSRUNUIDAuMDAgMS42NSAwLjYgMS43MSA7Ci0jICAgIEVORAotIyAgRU5EIFZERAotIyAgUElOIFZTUwotIyAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSMgICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotIyAgICBESVJFQ1RJT04gSU5PVVQgOwotIyAgICBVU0UgR1JPVU5EIDsKLSMgICAgU0hBUEUgQUJVVE1FTlQgOwotIyAgICBORVRFWFBSICJWU1MgVlNTISIgOwotIyAgICBQT1JUCi0jICAgICAgTEFZRVIgTWV0YWwxIDsKLSMgICAgICAgIFJFQ1QgMC4wMCAwLjAwIDAuNiAwLjA2IDsKLSMgICAgRU5ECi0jICBFTkQgVlNTCi0jICBQSU4gQQotIyAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSMgICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotIyAgICBESVJFQ1RJT04gSU5QVVQgOwotIyAgICBVU0UgU0lHTkFMIDsKLSMgICAgUE9SVAotIyAgICAgIExBWUVSIE1ldGFsMSA7Ci0jICAgICAgICBSRUNUIDAuMjYgMC4zOSAwLjM0IDEuMjcgOwotIyAgICBFTkQKLSMgIEVORCBBCi0jRU5EIEFOVEVOTkEKLQotTUFDUk8gT0FJMkJCMlgxCi0gIENMQVNTIENPUkUgOwotICBPUklHSU4gMCAwIDsKLSAgRk9SRUlHTiBPQUkyQkIyWDEgMCAwIDsKLSAgU0laRSAyLjQgQlkgMS43MSA7Ci0gIFNZTU1FVFJZIFggWSA7Ci0gIFNJVEUgQ29yZVNpdGUgOwotICBQSU4gWQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gT1VUUFVUIDsKLSAgICBBTlRFTk5BRElGRkFSRUEgMS43Mjg1ICBMQVlFUiBNZXRhbDEgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMS40MzUgMS4xOTUgMS44MDUgMS4yNzUgOwotICAgICAgICBSRUNUIDEuNzQ1IDEuMTk1IDEuODA1IDEuMzE1IDsKLSAgICAgICAgUkVDVCAxLjk5NSAwLjM4IDIuMDU1IDAuNSA7Ci0gICAgICAgIFJFQ1QgMi4wNCAwLjQ0IDIuMSAxLjI1NSA7Ci0gICAgICAgIFJFQ1QgMS40MzUgMS4xOTUgMi4xIDEuMjU1IDsKLSAgICBFTkQKLSAgRU5EIFkKLSAgUElOIEIwCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAyLjI2IDAuNDY1IDIuMzQgMC45MDUgOwotICAgICAgICBSRUNUIDIuMiAwLjc1NSAyLjM0IDAuOTA1IDsKLSAgICBFTkQKLSAgRU5EIEIwCi0gIFBJTiBCMQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMS44NiAwLjU5NSAxLjk0IDEuMDk1IDsKLSAgICBFTkQKLSAgRU5EIEIxCi0gIFBJTiBBME4KLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuNjI1IDAuODE1IDAuNzEgMS4xMDUgOwotICAgICAgICBSRUNUIDAuNjI1IDEuMDA1IDAuOTE1IDEuMTA1IDsKLSAgICBFTkQKLSAgRU5EIEEwTgotICBQSU4gQTFOCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjIzNSAwLjgxNSAwLjUyNSAwLjg5NSA7Ci0gICAgICAgIFJFQ1QgMC40NDUgMC44MTUgMC41MjUgMS4xMDUgOwotICAgIEVORAotICBFTkQgQTFOCi0gIFBJTiBWREQKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgUE9XRVIgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWREQgVkREISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAxLjY1IDIuNCAxLjcxIDsKLSAgICBFTkQKLSAgRU5EIFZERAotICBQSU4gVlNTCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIEdST1VORCA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZTUyBWU1MhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDAuMDAgMi40IDAuMDYgOwotICAgIEVORAotICBFTkQgVlNTCi1FTkQgT0FJMkJCMlgxCi0KLU1BQ1JPIENMS0lOVlgxCi0gIENMQVNTIENPUkUgOwotICBPUklHSU4gMCAwIDsKLSAgRk9SRUlHTiBDTEtJTlZYMSAwIDAgOwotICBTSVpFIDAuNiBCWSAxLjcxIDsKLSAgU1lNTUVUUlkgWCBZIDsKLSAgU0lURSBDb3JlU2l0ZSA7Ci0gIFBJTiBZCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBPVVRQVVQgOwotICAgIEFOVEVOTkFESUZGQVJFQSAxLjcyODUgIExBWUVSIE1ldGFsMSA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjI2IDAuNiAwLjM0IDAuNzMgOwotICAgICAgICBSRUNUIDAuMjggMC41MSAwLjM0IDEuMjkgOwotICAgIEVORAotICBFTkQgWQotICBQSU4gQQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wNiAwLjU5IDAuMTYgMC43OSA7Ci0gICAgICAgIFJFQ1QgMC4wOCAwLjU5IDAuMTYgMS4wNyA7Ci0gICAgRU5ECi0gIEVORCBBCi0gIFBJTiBWREQKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgUE9XRVIgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWREQgVkREISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAxLjY1IDAuNiAxLjcxIDsKLSAgICBFTkQKLSAgRU5EIFZERAotICBQSU4gVlNTCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIEdST1VORCA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZTUyBWU1MhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDAuMDAgMC42IDAuMDYgOwotICAgIEVORAotICBFTkQgVlNTCi1FTkQgQ0xLSU5WWDEKLQotTUFDUk8gU0RGRkhRWDIKLSAgQ0xBU1MgQ09SRSA7Ci0gIE9SSUdJTiAwIDAgOwotICBGT1JFSUdOIFNERkZIUVgyIDAgMCA7Ci0gIFNJWkUgNS40IEJZIDEuNzEgOwotICBTWU1NRVRSWSBYIFkgOwotICBTSVRFIENvcmVTaXRlIDsKLSAgUElOIFEKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIE9VVFBVVCA7Ci0gICAgQU5URU5OQURJRkZBUkVBIDEuNzI4NSAgTEFZRVIgTWV0YWwxIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMjYgMC43OSAwLjM2IDAuOTIgOwotICAgICAgICBSRUNUIDAuMyAwLjU0IDAuMzYgMS4zMzUgOwotICAgIEVORAotICBFTkQgUQotICBQSU4gU0UKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDQuMTk1IDAuNSA0LjI1NSAwLjg4IDsKLSAgICAgICAgUkVDVCA0LjQ0IDAuNSA0LjU2IDAuNjcgOwotICAgICAgICBSRUNUIDUuMDI1IDAuODE1IDUuMTY1IDAuODc1IDsKLSAgICAgICAgUkVDVCA0LjE5NSAwLjUgNS4xNDUgMC41NiA7Ci0gICAgICAgIFJFQ1QgNS4wODUgMC41IDUuMTQ1IDAuODk1IDsKLSAgICAgICAgUkVDVCA1LjAzNSAwLjgxNSA1LjE2NSAwLjg5NSA7Ci0gICAgRU5ECi0gIEVORCBTRQotICBQSU4gU0kKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDQuODQ1IDAuNjYgNC45MjUgMC45NzUgOwotICAgICAgICBSRUNUIDQuNjYgMC43ODUgNC45MjUgMC45NzUgOwotICAgIEVORAotICBFTkQgU0kKLSAgUElOIEQKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDMuNjYgMC41IDMuNzQgMC43MyA7Ci0gICAgICAgIFJFQ1QgMy42NiAwLjY0NSAzLjkzNSAwLjczIDsKLSAgICAgICAgUkVDVCAzLjg1NSAwLjY0NSAzLjkzNSAwLjgwNSA7Ci0gICAgRU5ECi0gIEVORCBECi0gIFBJTiBDSwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC40NiAwLjk0IDAuNTQgMS4xMTUgOwotICAgICAgICBSRUNUIDAuNjM1IDAuODkgMC44MTUgMS4wMiA7Ci0gICAgICAgIFJFQ1QgMC40NiAwLjk0IDAuODE1IDEuMDIgOwotICAgIEVORAotICBFTkQgQ0sKLSAgUElOIFZERAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBQT1dFUiA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZERCBWREQhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDEuNjUgNS40IDEuNzEgOwotICAgIEVORAotICBFTkQgVkRECi0gIFBJTiBWU1MKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgR1JPVU5EIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVlNTIFZTUyEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMC4wMCA1LjQgMC4wNiA7Ci0gICAgRU5ECi0gIEVORCBWU1MKLUVORCBTREZGSFFYMgotCi1NQUNSTyBTREZGU1JIUVg4Ci0gIENMQVNTIENPUkUgOwotICBPUklHSU4gMCAwIDsKLSAgRk9SRUlHTiBTREZGU1JIUVg4IDAgMCA7Ci0gIFNJWkUgOS42IEJZIDEuNzEgOwotICBTWU1NRVRSWSBYIFkgOwotICBTSVRFIENvcmVTaXRlIDsKLSAgUElOIFNFCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCA4LjQgMC42IDguNDYgMC44OCA7Ci0gICAgICAgIFJFQ1QgOC40IDAuNiA5LjM0IDAuNjYgOwotICAgICAgICBSRUNUIDkuMjYgMC42IDkuMzQgMC43MyA7Ci0gICAgRU5ECi0gIEVORCBTRQotICBQSU4gU0kKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDguODM1IDAuNzYgOS4xNiAwLjk2IDsKLSAgICAgICAgUkVDVCA4Ljc4IDAuODIgOS4xNiAwLjk2IDsKLSAgICBFTkQKLSAgRU5EIFNJCi0gIFBJTiBECi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCA4LjA2IDAuNDQ1IDguMTQgMC45NDUgOwotICAgIEVORAotICBFTkQgRAotICBQSU4gQ0sKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDcuNjM1IDAuNjI1IDcuOTYgMC43MDUgOwotICAgICAgICBSRUNUIDcuODggMC42MjUgNy45NiAwLjg4IDsKLSAgICBFTkQKLSAgRU5EIENLCi0gIFBJTiBTTgotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMy4wNiAwLjc5IDMuMTQgMC45MiA7Ci0gICAgICAgIFJFQ1QgMy4xMiAwLjgxNSAzLjE4IDEuMDE1IDsKLSAgICAgICAgUkVDVCAzLjEyIDAuOTU1IDQuMTIgMS4wMTUgOwotICAgICAgICBSRUNUIDQuMDYgMC45NTUgNC4xMiAxLjM2NSA7Ci0gICAgICAgIFJFQ1QgNC44NiAxLjEzNSA0LjkyIDEuMzY1IDsKLSAgICAgICAgUkVDVCA0LjA2IDEuMzA1IDQuOTIgMS4zNjUgOwotICAgICAgICBSRUNUIDQuODYgMS4xMzUgNS4zIDEuMTk1IDsKLSAgICAgICAgUkVDVCA1LjI0IDEuMTM1IDUuMyAxLjM0IDsKLSAgICAgICAgUkVDVCA1LjI0IDEuMjggNiAxLjM0IDsKLSAgICBFTkQKLSAgRU5EIFNOCi0gIFBJTiBSTgotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMi41NjUgMC43OSAyLjc2NSAwLjk3NSA7Ci0gICAgICAgIFJFQ1QgMi41NjUgMC43OSAyLjk2IDAuODcgOwotICAgIEVORAotICBFTkQgUk4KLSAgUElOIFEKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIE9VVFBVVCA7Ci0gICAgQU5URU5OQURJRkZBUkVBIDEuNzI4NSAgTEFZRVIgTWV0YWwxIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDYgMC42IDAuMTQgMC43MyA7Ci0gICAgICAgIFJFQ1QgMC4wOCAwLjU0IDAuMTQgMS4zNDUgOwotICAgICAgICBSRUNUIDAuNDkgMC41NCAwLjU1IDEuMzQ1IDsKLSAgICAgICAgUkVDVCAwLjA2IDAuNiAwLjk2IDAuNjYgOwotICAgICAgICBSRUNUIDAuOSAwLjU0IDAuOTYgMS4zNDUgOwotICAgICAgICBSRUNUIDAuOSAwLjc0IDEuMzI1IDAuOCA7Ci0gICAgICAgIFJFQ1QgMS4yNjUgMC41OSAxLjMyNSAwLjk2IDsKLSAgICAgICAgUkVDVCAxLjMxIDAuNTMgMS4zNyAwLjY1IDsKLSAgICAgICAgUkVDVCAxLjMxIDAuOSAxLjM3IDEuMzQ1IDsKLSAgICBFTkQKLSAgRU5EIFEKLSAgUElOIFZERAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBQT1dFUiA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZERCBWREQhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDEuNjUgOS42IDEuNzEgOwotICAgIEVORAotICBFTkQgVkRECi0gIFBJTiBWU1MKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgR1JPVU5EIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVlNTIFZTUyEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMC4wMCA5LjYgMC4wNiA7Ci0gICAgRU5ECi0gIEVORCBWU1MKLUVORCBTREZGU1JIUVg4Ci0KLU1BQ1JPIENMS1hPUjJYMgotICBDTEFTUyBDT1JFIDsKLSAgT1JJR0lOIDAgMCA7Ci0gIEZPUkVJR04gQ0xLWE9SMlgyIDAgMCA7Ci0gIFNJWkUgMiBCWSAxLjcxIDsKLSAgU1lNTUVUUlkgWCBZIDsKLSAgU0lURSBDb3JlU2l0ZSA7Ci0gIFBJTiBZCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBPVVRQVVQgOwotICAgIEFOVEVOTkFESUZGQVJFQSAxLjcyODUgIExBWUVSIE1ldGFsMSA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjI2IDAuNiAwLjM0IDAuNzMgOwotICAgICAgICBSRUNUIDAuMjggMC40OTUgMC4zNCAxLjIxNSA7Ci0gICAgICAgIFJFQ1QgMC4yOCAxLjE1NSAwLjQzNSAxLjIxNSA7Ci0gICAgICAgIFJFQ1QgMC4zNzUgMC40MzUgMC40MzUgMC41NTUgOwotICAgICAgICBSRUNUIDAuMjggMC40OTUgMC40MzUgMC41NTUgOwotICAgICAgICBSRUNUIDAuMzc1IDEuMTU1IDAuNDM1IDEuMjc1IDsKLSAgICBFTkQKLSAgRU5EIFkKLSAgUElOIEIKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDEuMDYgMC44MjUgMS41NjUgMC44ODUgOwotICAgICAgICBSRUNUIDEuNDM1IDAuODE1IDEuNTY1IDAuODk1IDsKLSAgICAgICAgUkVDVCAxLjMzNSAwLjgxNSAxLjc4NSAwLjg3NSA7Ci0gICAgRU5ECi0gIEVORCBCCi0gIFBJTiBBCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjYgMC44MTUgMC44IDAuODk1IDsKLSAgICAgICAgUkVDVCAwLjcyIDAuODE1IDAuOCAxLjE5NSA7Ci0gICAgRU5ECi0gIEVORCBBCi0gIFBJTiBWREQKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgUE9XRVIgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWREQgVkREISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAxLjY1IDIgMS43MSA7Ci0gICAgRU5ECi0gIEVORCBWREQKLSAgUElOIFZTUwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBHUk9VTkQgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWU1MgVlNTISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAwLjAwIDIgMC4wNiA7Ci0gICAgRU5ECi0gIEVORCBWU1MKLUVORCBDTEtYT1IyWDIKLQotTUFDUk8gT0FJMjIxWDQKLSAgQ0xBU1MgQ09SRSA7Ci0gIE9SSUdJTiAwIDAgOwotICBGT1JFSUdOIE9BSTIyMVg0IDAgMCA7Ci0gIFNJWkUgNC42IEJZIDEuNzEgOwotICBTWU1NRVRSWSBYIFkgOwotICBTSVRFIENvcmVTaXRlIDsKLSAgUElOIFkKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIE9VVFBVVCA7Ci0gICAgQU5URU5OQURJRkZBUkVBIDEuNzI4NSAgTEFZRVIgTWV0YWwxIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuNTcgMS4yMSAwLjYzIDEuMzMgOwotICAgICAgICBSRUNUIDEuNDUgMS4yMSAxLjUxIDEuMzMgOwotICAgICAgICBSRUNUIDIuNDI1IDEuMjEgMi40ODUgMS4zMyA7Ci0gICAgICAgIFJFQ1QgMy4wNDUgMS4yMSAzLjEwNSAxLjMzIDsKLSAgICAgICAgUkVDVCAzLjcxNSAxLjA3IDMuNzc1IDEuNDYgOwotICAgICAgICBSRUNUIDMuODA1IDAuNTM1IDMuODY1IDAuNjc1IDsKLSAgICAgICAgUkVDVCAwLjU3IDEuMjEgNC4xODUgMS4yNyA7Ci0gICAgICAgIFJFQ1QgNC4xMjUgMS4wNyA0LjE4NSAxLjQ2IDsKLSAgICAgICAgUkVDVCA0LjIxNSAwLjUzNSA0LjMgMC42NzUgOwotICAgICAgICBSRUNUIDMuODA1IDAuNjE1IDQuMyAwLjY3NSA7Ci0gICAgICAgIFJFQ1QgNC4yNCAwLjUzNSA0LjMgMS4xMyA7Ci0gICAgICAgIFJFQ1QgNC4xMjUgMS4wNyA0LjMgMS4xMyA7Ci0gICAgICAgIFJFQ1QgNC4yNCAwLjc5IDQuMzQgMC45MiA7Ci0gICAgRU5ECi0gIEVORCBZCi0gIFBJTiBBMAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4yNiAwLjc5IDAuMzQgMC45MiA7Ci0gICAgICAgIFJFQ1QgMC4yMiAwLjg2IDAuMzQgMC45MiA7Ci0gICAgICAgIFJFQ1QgMC4yOCAwLjc5IDAuMzQgMS4wNTUgOwotICAgICAgICBSRUNUIDEuMDEgMC45MzUgMS4wNyAxLjA1NSA7Ci0gICAgICAgIFJFQ1QgMS42OTUgMC45MSAxLjc1NSAxLjA1NSA7Ci0gICAgICAgIFJFQ1QgMC4yOCAwLjk5NSAxLjc1NSAxLjA1NSA7Ci0gICAgRU5ECi0gIEVORCBBMAotICBQSU4gQjAKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDIuMDkgMC44NzUgMi4xNSAxLjExIDsKLSAgICAgICAgUkVDVCAyLjc3IDAuOTQgMi44OSAxLjExIDsKLSAgICAgICAgUkVDVCAzLjQ2IDAuOTEgMy41NCAxLjExIDsKLSAgICAgICAgUkVDVCAyLjA5IDEuMDUgMy41NCAxLjExIDsKLSAgICBFTkQKLSAgRU5EIEIwCi0gIFBJTiBBMQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC42MTUgMC43NzUgMC43NjUgMC44OTUgOwotICAgICAgICBSRUNUIDAuNjE1IDAuNzc1IDEuNDc1IDAuODM1IDsKLSAgICBFTkQKLSAgRU5EIEExCi0gIFBJTiBCMQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMi40NyAwLjc3NSAzLjEyIDAuODM1IDsKLSAgICAgICAgUkVDVCAzLjAzNSAwLjgxNSAzLjE2NSAwLjg5NSA7Ci0gICAgRU5ECi0gIEVORCBCMQotICBQSU4gQzAKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDMuNjQgMC44MTUgNC4xNCAwLjg5NSA7Ci0gICAgRU5ECi0gIEVORCBDMAotICBQSU4gVkRECi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIFBPV0VSIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVkREIFZERCEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMS42NSA0LjYgMS43MSA7Ci0gICAgRU5ECi0gIEVORCBWREQKLSAgUElOIFZTUwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBHUk9VTkQgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWU1MgVlNTISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAwLjAwIDQuNiAwLjA2IDsKLSAgICBFTkQKLSAgRU5EIFZTUwotRU5EIE9BSTIyMVg0Ci0KLU1BQ1JPIFhOT1IzWDEKLSAgQ0xBU1MgQ09SRSA7Ci0gIE9SSUdJTiAwIDAgOwotICBGT1JFSUdOIFhOT1IzWDEgMCAwIDsKLSAgU0laRSA0LjQgQlkgMS43MSA7Ci0gIFNZTU1FVFJZIFggWSA7Ci0gIFNJVEUgQ29yZVNpdGUgOwotICBQSU4gVlNTCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIEdST1VORCA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZTUyBWU1MhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDAuMDAgNC40IDAuMDYgOwotICAgIEVORAotICBFTkQgVlNTCi0gIFBJTiBWREQKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgUE9XRVIgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWREQgVkREISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAxLjY1IDQuNCAxLjcxIDsKLSAgICBFTkQKLSAgRU5EIFZERAotICBQSU4gQwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMi45MjUgMC42NjUgMy4yOTUgMC43MjUgOwotICAgICAgICBSRUNUIDMuMjM1IDAuNjY1IDMuMjk1IDAuOTM1IDsKLSAgICAgICAgUkVDVCAzLjIzNSAwLjgxNSAzLjM2NSAwLjkzNSA7Ci0gICAgRU5ECi0gIEVORCBDCi0gIFBJTiBCCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjQxIDAuNjA1IDAuNDkgMC43NSA7Ci0gICAgICAgIFJFQ1QgMC40NiAwLjY3IDAuNTQgMS4wNTUgOwotICAgIEVORAotICBFTkQgQgotICBQSU4gQQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wNiAwLjc5IDAuMTUgMC45MiA7Ci0gICAgICAgIFJFQ1QgMC4wNyAwLjYxNSAwLjE1IDEuMTA1IDsKLSAgICBFTkQKLSAgRU5EIEEKLSAgUElOIFkKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIE9VVFBVVCA7Ci0gICAgQU5URU5OQURJRkZBUkVBIDEuNzI4NSAgTEFZRVIgTWV0YWwxIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDQuMjM1IDAuNDM1IDQuMzY1IDAuNTE1IDsKLSAgICAgICAgUkVDVCA0LjMwNSAwLjQzNSA0LjM2NSAwLjk5IDsKLSAgICAgICAgUkVDVCA0LjI0IDAuOTMgNC4zNjUgMC45OSA7Ci0gICAgRU5ECi0gIEVORCBZCi1FTkQgWE5PUjNYMQotCi1NQUNSTyBTRURGRlhMCi0gIENMQVNTIENPUkUgOwotICBPUklHSU4gMCAwIDsKLSAgRk9SRUlHTiBTRURGRlhMIDAgMCA7Ci0gIFNJWkUgNy4yIEJZIDEuNzEgOwotICBTWU1NRVRSWSBYIFkgOwotICBTSVRFIENvcmVTaXRlIDsKLSAgUElOIFEKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIE9VVFBVVCA7Ci0gICAgQU5URU5OQURJRkZBUkVBIDEuNzI4NSAgTEFZRVIgTWV0YWwxIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDMuODQ1IDAuMzc1IDMuOTI1IDAuNSA7Ci0gICAgICAgIFJFQ1QgMy44NiAwLjQyIDMuOTQgMS4xNiA7Ci0gICAgICAgIFJFQ1QgMy44NiAxLjA4IDMuOTggMS4xNiA7Ci0gICAgRU5ECi0gIEVORCBRCi0gIFBJTiBRTgotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gT1VUUFVUIDsKLSAgICBBTlRFTk5BRElGRkFSRUEgMS43Mjg1ICBMQVlFUiBNZXRhbDEgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMS42NiAwLjY1IDEuNzc1IDAuNzMgOwotICAgICAgICBSRUNUIDEuNjMgMC40OCAxLjcxIDAuNjggOwotICAgICAgICBSRUNUIDEuNjMgMC42IDEuNzQgMC42OCA7Ci0gICAgICAgIFJFQ1QgMS42OTUgMC42NSAxLjc3NSAxLjIxIDsKLSAgICBFTkQKLSAgRU5EIFFOCi0gIFBJTiBDSwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgNi44NiAwLjc5IDYuOTQgMS4wNiA7Ci0gICAgICAgIFJFQ1QgNi44NiAwLjc5IDcuMTcgMC45MSA7Ci0gICAgRU5ECi0gIEVORCBDSwotICBQSU4gU0kKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDMuNDYgMC41NyAzLjU0IDEuMDcgOwotICAgIEVORAotICBFTkQgU0kKLSAgUElOIFNFCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAyLjI2IDAuNzM1IDIuMzQgMC45NzUgOwotICAgICAgICBSRUNUIDIuNDQgMC43MzUgMi41MiAwLjg5NSA7Ci0gICAgICAgIFJFQ1QgMi4yNiAwLjgxNSAyLjUyIDAuODk1IDsKLSAgICBFTkQKLSAgRU5EIFNFCi0gIFBJTiBECi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjQzNSAwLjgwNSAwLjcwNSAwLjk1NSA7Ci0gICAgRU5ECi0gIEVORCBECi0gIFBJTiBFCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjI3NSAwLjY0NSAwLjMzNSAwLjc3IDsKLSAgICAgICAgUkVDVCAwLjcwNSAwLjMyNSAwLjc2NSAwLjcwNSA7Ci0gICAgICAgIFJFQ1QgMC42MzUgMC42MjUgMC43NjUgMC43MDUgOwotICAgICAgICBSRUNUIDAuMjc1IDAuNjQ1IDAuODY1IDAuNzA1IDsKLSAgICAgICAgUkVDVCAwLjgwNSAwLjY0NSAwLjg2NSAwLjc3IDsKLSAgICAgICAgUkVDVCAwLjcwNSAwLjMyNSAxLjM0NSAwLjM4NSA7Ci0gICAgICAgIFJFQ1QgMS4yODUgMC4zMjUgMS4zNDUgMC45MyA7Ci0gICAgRU5ECi0gIEVORCBFCi0gIFBJTiBWREQKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgUE9XRVIgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWREQgVkREISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAxLjY1IDcuMiAxLjcxIDsKLSAgICBFTkQKLSAgRU5EIFZERAotICBQSU4gVlNTCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIEdST1VORCA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZTUyBWU1MhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDAuMDAgNy4yIDAuMDYgOwotICAgIEVORAotICBFTkQgVlNTCi1FTkQgU0VERkZYTAotCi1NQUNSTyBPQTIyWDEKLSAgQ0xBU1MgQ09SRSA7Ci0gIE9SSUdJTiAwIDAgOwotICBGT1JFSUdOIE9BMjJYMSAwIDAgOwotICBTSVpFIDEuOCBCWSAxLjcxIDsKLSAgU1lNTUVUUlkgWCBZIDsKLSAgU0lURSBDb3JlU2l0ZSA7Ci0gIFBJTiBZCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBPVVRQVVQgOwotICAgIEFOVEVOTkFESUZGQVJFQSAxLjcyODUgIExBWUVSIE1ldGFsMSA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAxLjQ2IDAuNiAxLjU0IDAuNzMgOwotICAgICAgICBSRUNUIDEuNDQgMC42NyAxLjUgMS4zMyA7Ci0gICAgICAgIFJFQ1QgMS40OCAwLjUyNSAxLjU0IDAuNzMgOwotICAgICAgICBSRUNUIDEuNDggMC41MjUgMS42MTUgMC41ODUgOwotICAgIEVORAotICBFTkQgWQotICBQSU4gQjAKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDEgMC44NyAxLjA4IDEuMDYgOwotICAgICAgICBSRUNUIDEgMC45OCAxLjM0IDEuMDYgOwotICAgICAgICBSRUNUIDEuMjYgMC45OCAxLjM0IDEuMTEgOwotICAgIEVORAotICBFTkQgQjAKLSAgUElOIEExCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjQ2IDAuNjEgMC41NCAxLjExIDsKLSAgICBFTkQKLSAgRU5EIEExCi0gIFBJTiBBMAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4yNiAwLjYxIDAuMzQgMS4xMSA7Ci0gICAgRU5ECi0gIEVORCBBMAotICBQSU4gQjEKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuNjYgMC42NCAwLjc0IDEuMTQgOwotICAgIEVORAotICBFTkQgQjEKLSAgUElOIFZERAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBQT1dFUiA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZERCBWREQhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDEuNjUgMS44IDEuNzEgOwotICAgIEVORAotICBFTkQgVkRECi0gIFBJTiBWU1MKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgR1JPVU5EIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVlNTIFZTUyEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMC4wMCAxLjggMC4wNiA7Ci0gICAgRU5ECi0gIEVORCBWU1MKLUVORCBPQTIyWDEKLQotTUFDUk8gQU9JMjExWDEKLSAgQ0xBU1MgQ09SRSA7Ci0gIE9SSUdJTiAwIDAgOwotICBGT1JFSUdOIEFPSTIxMVgxIDAgMCA7Ci0gIFNJWkUgMS40IEJZIDEuNzEgOwotICBTWU1NRVRSWSBYIFkgOwotICBTSVRFIENvcmVTaXRlIDsKLSAgUElOIFkKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIE9VVFBVVCA7Ci0gICAgQU5URU5OQURJRkZBUkVBIDEuNzI4NSAgTEFZRVIgTWV0YWwxIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuNTggMC40NCAwLjcgMC41IDsKLSAgICAgICAgUkVDVCAxLjAzNSAxLjEyIDEuMDk1IDEuNDggOwotICAgICAgICBSRUNUIDEuMDYgMC40MSAxLjE0IDAuNTQgOwotICAgICAgICBSRUNUIDAuNjMgMC40OCAxLjMgMC41NCA7Ci0gICAgICAgIFJFQ1QgMS4yNCAwLjQ4IDEuMyAxLjE4IDsKLSAgICAgICAgUkVDVCAxLjAzNSAxLjEyIDEuMyAxLjE4IDsKLSAgICBFTkQKLSAgRU5EIFkKLSAgUElOIEEwCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjI2IDAuNiAwLjM0IDEuMSA7Ci0gICAgRU5ECi0gIEVORCBBMAotICBQSU4gQTEKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuNDYgMC42IDAuNTQgMS4xIDsKLSAgICBFTkQKLSAgRU5EIEExCi0gIFBJTiBCMAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC42NiAwLjY0IDAuNzQgMS4wNCA7Ci0gICAgICAgIFJFQ1QgMC42NiAwLjY0IDAuODQgMC43MiA7Ci0gICAgRU5ECi0gIEVORCBCMAotICBQSU4gQzAKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuOTQgMC42NCAxLjAyIDAuODcgOwotICAgICAgICBSRUNUIDAuOTQgMC43OSAxLjE0IDAuODcgOwotICAgICAgICBSRUNUIDEuMDYgMC43OSAxLjE0IDEuMDIgOwotICAgIEVORAotICBFTkQgQzAKLSAgUElOIFZERAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBQT1dFUiA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZERCBWREQhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDEuNjUgMS40IDEuNzEgOwotICAgIEVORAotICBFTkQgVkRECi0gIFBJTiBWU1MKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgR1JPVU5EIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVlNTIFZTUyEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMC4wMCAxLjQgMC4wNiA7Ci0gICAgRU5ECi0gIEVORCBWU1MKLUVORCBBT0kyMTFYMQotCi1NQUNSTyBUTEFUWDQKLSAgQ0xBU1MgQ09SRSA7Ci0gIE9SSUdJTiAwIDAgOwotICBGT1JFSUdOIFRMQVRYNCAwIDAgOwotICBTSVpFIDQuOCBCWSAxLjcxIDsKLSAgU1lNTUVUUlkgWCBZIDsKLSAgU0lURSBDb3JlU2l0ZSA7Ci0gIFBJTiBRTgotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gT1VUUFVUIDsKLSAgICBBTlRFTk5BRElGRkFSRUEgMS43Mjg1ICBMQVlFUiBNZXRhbDEgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMi4yNiAwLjk4IDIuMzYgMS4zNTUgOwotICAgICAgICBSRUNUIDIuNDIgMC40NjUgMi40OCAxLjA4NSA7Ci0gICAgICAgIFJFQ1QgMi4yNiAwLjk4IDIuNDggMS4wODUgOwotICAgICAgICBSRUNUIDIuMjYgMS4wMjUgMi43NyAxLjA4NSA7Ci0gICAgICAgIFJFQ1QgMi43MSAxLjAyNSAyLjc3IDEuMzU1IDsKLSAgICAgICAgUkVDVCAyLjg5IDAuNDY1IDIuOTUgMC41ODUgOwotICAgICAgICBSRUNUIDIuNDIgMC41MjUgMi45NSAwLjU4NSA7Ci0gICAgRU5ECi0gIEVORCBRTgotICBQSU4gUQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gT1VUUFVUIDsKLSAgICBBTlRFTk5BRElGRkFSRUEgMS43Mjg1ICBMQVlFUiBNZXRhbDEgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC41NCAwLjQ2NSAwLjYgMC41ODUgOwotICAgICAgICBSRUNUIDAuNjYgMC43OSAwLjcyIDEuMzU1IDsKLSAgICAgICAgUkVDVCAwLjY4IDAuNTI1IDAuNzQgMS4wMjUgOwotICAgICAgICBSRUNUIDAuNjYgMC45NjUgMS4xMyAxLjAyNSA7Ci0gICAgICAgIFJFQ1QgMS4wMSAwLjQ2NSAxLjA3IDAuNTg1IDsKLSAgICAgICAgUkVDVCAwLjU0IDAuNTI1IDEuMDcgMC41ODUgOwotICAgICAgICBSRUNUIDEuMDcgMC45NjUgMS4xMyAxLjM1NSA7Ci0gICAgRU5ECi0gIEVORCBRCi0gIFBJTiBECi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCA0LjIzNSAwLjc5IDQuNTQgMC45MiA7Ci0gICAgICAgIFJFQ1QgNC40NiAwLjc5IDQuNTQgMS4wNjUgOwotICAgIEVORAotICBFTkQgRAotICBQSU4gRwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4yNiAwLjQ2IDAuMzQgMC45NiA7Ci0gICAgRU5ECi0gIEVORCBHCi0gIFBJTiBWREQKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgUE9XRVIgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWREQgVkREISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAxLjY1IDQuOCAxLjcxIDsKLSAgICBFTkQKLSAgRU5EIFZERAotICBQSU4gVlNTCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIEdST1VORCA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZTUyBWU1MhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDAuMDAgNC44IDAuMDYgOwotICAgIEVORAotICBFTkQgVlNTCi1FTkQgVExBVFg0Ci0KLU1BQ1JPIEJVRlgyMAotICBDTEFTUyBDT1JFIDsKLSAgT1JJR0lOIDAgMCA7Ci0gIEZPUkVJR04gQlVGWDIwIDAgMCA7Ci0gIFNJWkUgNC44IEJZIDEuNzEgOwotICBTWU1NRVRSWSBYIFkgOwotICBTSVRFIENvcmVTaXRlIDsKLSAgUElOIFkKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIE9VVFBVVCA7Ci0gICAgQU5URU5OQURJRkZBUkVBIDEuNzI4NSAgTEFZRVIgTWV0YWwxIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDYgMC4zNTUgMC4xMyAxLjM2IDsKLSAgICAgICAgUkVDVCAwLjA2IDAuNTk1IDAuMTQgMC45NzUgOwotICAgICAgICBSRUNUIDAuNDggMC4zNTUgMC41NCAwLjY1NSA7Ci0gICAgICAgIFJFQ1QgMC40OCAwLjkxNSAwLjU0IDEuMzYgOwotICAgICAgICBSRUNUIDAuODkgMC4zNTUgMC45NSAwLjY1NSA7Ci0gICAgICAgIFJFQ1QgMC44OSAwLjkxNSAwLjk1IDEuMzYgOwotICAgICAgICBSRUNUIDEuMyAwLjM1NSAxLjM2IDAuNjU1IDsKLSAgICAgICAgUkVDVCAxLjMgMC45MTUgMS4zNiAxLjM2IDsKLSAgICAgICAgUkVDVCAxLjcxIDAuMzU1IDEuNzcgMC42NTUgOwotICAgICAgICBSRUNUIDEuNzEgMC45MTUgMS43NyAxLjM2IDsKLSAgICAgICAgUkVDVCAyLjEyIDAuMzU1IDIuMTggMC42NTUgOwotICAgICAgICBSRUNUIDIuMTIgMC45MTUgMi4xOCAxLjM2IDsKLSAgICAgICAgUkVDVCAyLjUzIDAuMzU1IDIuNTkgMC42NTUgOwotICAgICAgICBSRUNUIDIuNTMgMC45MTUgMi41OSAxLjM2IDsKLSAgICAgICAgUkVDVCAyLjk0IDAuMzU1IDMgMC42NTUgOwotICAgICAgICBSRUNUIDIuOTQgMC45MTUgMyAxLjM2IDsKLSAgICAgICAgUkVDVCAwLjA2IDAuOTE1IDMuNDEgMC45NzUgOwotICAgICAgICBSRUNUIDMuMzUgMC4zNTUgMy40MSAwLjY1NSA7Ci0gICAgICAgIFJFQ1QgMC4wNiAwLjU5NSAzLjQxIDAuNjU1IDsKLSAgICAgICAgUkVDVCAzLjM1IDAuOTE1IDMuNDEgMS4zNiA7Ci0gICAgRU5ECi0gIEVORCBZCi0gIFBJTiBBCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAzLjg3NSAwLjgxNSA0LjM3NSAwLjg5NSA7Ci0gICAgRU5ECi0gIEVORCBBCi0gIFBJTiBWREQKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgUE9XRVIgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWREQgVkREISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAxLjY1IDQuOCAxLjcxIDsKLSAgICBFTkQKLSAgRU5EIFZERAotICBQSU4gVlNTCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIEdST1VORCA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZTUyBWU1MhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDAuMDAgNC44IDAuMDYgOwotICAgIEVORAotICBFTkQgVlNTCi1FTkQgQlVGWDIwCi0KLU1BQ1JPIFhOT1IyWEwKLSAgQ0xBU1MgQ09SRSA7Ci0gIE9SSUdJTiAwIDAgOwotICBGT1JFSUdOIFhOT1IyWEwgMCAwIDsKLSAgU0laRSAyIEJZIDEuNzEgOwotICBTWU1NRVRSWSBYIFkgOwotICBTSVRFIENvcmVTaXRlIDsKLSAgUElOIFkKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIE9VVFBVVCA7Ci0gICAgQU5URU5OQURJRkZBUkVBIDEuNzI4NSAgTEFZRVIgTWV0YWwxIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDYgMC42IDAuMiAwLjczIDsKLSAgICAgICAgUkVDVCAwLjEyIDAuNiAwLjIgMS4xIDsKLSAgICAgICAgUkVDVCAwLjIxNSAwLjQ4NSAwLjI5NSAwLjY4IDsKLSAgICAgICAgUkVDVCAwLjA2IDAuNiAwLjI5NSAwLjY4IDsKLSAgICBFTkQKLSAgRU5EIFkKLSAgUElOIEIKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDEuMjcgMC44MTUgMS43NyAwLjg5NSA7Ci0gICAgRU5ECi0gIEVORCBCCi0gIFBJTiBBCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjQ2IDAuNzkgMC41NCAxLjA3NSA7Ci0gICAgICAgIFJFQ1QgMC41NjUgMC42OCAwLjY0NSAwLjg3IDsKLSAgICAgICAgUkVDVCAwLjQ2IDAuNzkgMC42NDUgMC44NyA7Ci0gICAgRU5ECi0gIEVORCBBCi0gIFBJTiBWREQKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgUE9XRVIgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWREQgVkREISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAxLjY1IDIgMS43MSA7Ci0gICAgRU5ECi0gIEVORCBWREQKLSAgUElOIFZTUwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBHUk9VTkQgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWU1MgVlNTISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAwLjAwIDIgMC4wNiA7Ci0gICAgRU5ECi0gIEVORCBWU1MKLUVORCBYTk9SMlhMCi0KLU1BQ1JPIE9SNFgxCi0gIENMQVNTIENPUkUgOwotICBPUklHSU4gMCAwIDsKLSAgRk9SRUlHTiBPUjRYMSAwIDAgOwotICBTSVpFIDEuNCBCWSAxLjcxIDsKLSAgU1lNTUVUUlkgWCBZIDsKLSAgU0lURSBDb3JlU2l0ZSA7Ci0gIFBJTiBZCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBPVVRQVVQgOwotICAgIEFOVEVOTkFESUZGQVJFQSAxLjcyODUgIExBWUVSIE1ldGFsMSA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAxLjI0IDAuMzk1IDEuMyAxLjM4NSA7Ci0gICAgICAgIFJFQ1QgMS4yNCAwLjQxIDEuMzQgMC41NCA7Ci0gICAgRU5ECi0gIEVORCBZCi0gIFBJTiBCCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjQ2IDAuOTggMC41NCAxLjExIDsKLSAgICAgICAgUkVDVCAwLjUxIDAuNjYgMC41OSAxLjA3IDsKLSAgICBFTkQKLSAgRU5EIEIKLSAgUElOIEMKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMjYgMC43OSAwLjM0IDEuMDIgOwotICAgICAgICBSRUNUIDAuMzMgMC41OSAwLjQxIDAuODcgOwotICAgIEVORAotICBFTkQgQwotICBQSU4gRAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMyAwLjczNSAwLjEyIDEuMDQgOwotICAgICAgICBSRUNUIDAuMDYgMC41OSAwLjE2IDAuNzk1IDsKLSAgICBFTkQKLSAgRU5EIEQKLSAgUElOIEEKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDEuMDYgMC40NzUgMS4xNCAwLjc2NSA7Ci0gICAgICAgIFJFQ1QgMC44NSAwLjY4NSAxLjE0IDAuNzY1IDsKLSAgICBFTkQKLSAgRU5EIEEKLSAgUElOIFZERAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBQT1dFUiA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZERCBWREQhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDEuNjUgMS40IDEuNzEgOwotICAgIEVORAotICBFTkQgVkRECi0gIFBJTiBWU1MKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgR1JPVU5EIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVlNTIFZTUyEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMC4wMCAxLjQgMC4wNiA7Ci0gICAgRU5ECi0gIEVORCBWU1MKLUVORCBPUjRYMQotCi1NQUNSTyBPQUkyMTFYTAotICBDTEFTUyBDT1JFIDsKLSAgT1JJR0lOIDAgMCA7Ci0gIEZPUkVJR04gT0FJMjExWEwgMCAwIDsKLSAgU0laRSAxLjIgQlkgMS43MSA7Ci0gIFNZTU1FVFJZIFggWSA7Ci0gIFNJVEUgQ29yZVNpdGUgOwotICBQSU4gWQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gT1VUUFVUIDsKLSAgICBBTlRFTk5BRElGRkFSRUEgMS43Mjg1ICBMQVlFUiBNZXRhbDEgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC41OCAxLjI1IDEuMTQgMS4zMSA7Ci0gICAgICAgIFJFQ1QgMS4wNCAwLjI5NSAxLjEgMS4zMSA7Ci0gICAgICAgIFJFQ1QgMS4wNiAxLjE5IDEuMTQgMS4zOCA7Ci0gICAgRU5ECi0gIEVORCBZCi0gIFBJTiBBMAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4yNiAwLjggMC4zNCAxLjMgOwotICAgIEVORAotICBFTkQgQTAKLSAgUElOIEExCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjQ2IDAuNjUgMC41NCAxLjE1IDsKLSAgICBFTkQKLSAgRU5EIEExCi0gIFBJTiBCMAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC42NiAwLjY1NSAwLjc0NSAwLjkyIDsKLSAgICAgICAgUkVDVCAwLjY2NSAwLjY1NSAwLjc0NSAxLjE1IDsKLSAgICBFTkQKLSAgRU5EIEIwCi0gIFBJTiBDMAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC44NiAwLjYgMC45NCAxLjEgOwotICAgIEVORAotICBFTkQgQzAKLSAgUElOIFZERAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBQT1dFUiA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZERCBWREQhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDEuNjUgMS4yIDEuNzEgOwotICAgIEVORAotICBFTkQgVkRECi0gIFBJTiBWU1MKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgR1JPVU5EIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVlNTIFZTUyEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMC4wMCAxLjIgMC4wNiA7Ci0gICAgRU5ECi0gIEVORCBWU1MKLUVORCBPQUkyMTFYTAotCi1NQUNSTyBCVUZYNAotICBDTEFTUyBDT1JFIDsKLSAgT1JJR0lOIDAgMCA7Ci0gIEZPUkVJR04gQlVGWDQgMCAwIDsKLSAgU0laRSAxLjQgQlkgMS43MSA7Ci0gIFNZTU1FVFJZIFggWSA7Ci0gIFNJVEUgQ29yZVNpdGUgOwotICBQSU4gWQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gT1VUUFVUIDsKLSAgICBBTlRFTk5BRElGRkFSRUEgMS43Mjg1ICBMQVlFUiBNZXRhbDEgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4yMyAwLjQyIDAuMjkgMS4wNCA7Ci0gICAgICAgIFJFQ1QgMC4yNzUgMC4zNiAwLjMzNSAwLjQ4IDsKLSAgICAgICAgUkVDVCAwLjI2IDAuOTggMC4zMzUgMS4zNyA7Ci0gICAgICAgIFJFQ1QgMC4yNiAwLjk4IDAuMzQgMS4xMSA7Ci0gICAgICAgIFJFQ1QgMC4yMyAwLjk4IDAuNzYgMS4wNCA7Ci0gICAgICAgIFJFQ1QgMC4yMyAwLjQyIDAuNzIgMC40OCA7Ci0gICAgICAgIFJFQ1QgMC43IDAuOTggMC43NiAxLjM3IDsKLSAgICAgICAgUkVDVCAwLjY3IDAuNCAwLjc5IDAuNDYgOwotICAgIEVORAotICBFTkQgWQotICBQSU4gQQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC44NiAwLjc4IDAuOTQgMS4xNSA7Ci0gICAgICAgIFJFQ1QgMC45NSAwLjc0IDEuMDMgMC44NiA7Ci0gICAgICAgIFJFQ1QgMC44NiAwLjc4IDEuMDMgMC44NiA7Ci0gICAgRU5ECi0gIEVORCBBCi0gIFBJTiBWREQKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgUE9XRVIgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWREQgVkREISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAxLjY1IDEuNCAxLjcxIDsKLSAgICBFTkQKLSAgRU5EIFZERAotICBQSU4gVlNTCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIEdST1VORCA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZTUyBWU1MhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDAuMDAgMS40IDAuMDYgOwotICAgIEVORAotICBFTkQgVlNTCi1FTkQgQlVGWDQKLQotTUFDUk8gQ0xLSU5WWDQKLSAgQ0xBU1MgQ09SRSA7Ci0gIE9SSUdJTiAwIDAgOwotICBGT1JFSUdOIENMS0lOVlg0IDAgMCA7Ci0gIFNJWkUgMS4yIEJZIDEuNzEgOwotICBTWU1NRVRSWSBYIFkgOwotICBTSVRFIENvcmVTaXRlIDsKLSAgUElOIFkKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIE9VVFBVVCA7Ci0gICAgQU5URU5OQURJRkZBUkVBIDEuNzI4NSAgTEFZRVIgTWV0YWwxIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuNCAwLjU0IDAuNDYgMC42OCA7Ci0gICAgICAgIFJFQ1QgMC40IDAuOTk1IDAuNDYgMS4zMzUgOwotICAgICAgICBSRUNUIDAuNCAwLjk5NSAwLjk0IDEuMDU1IDsKLSAgICAgICAgUkVDVCAwLjgxIDAuNTQgMC44NyAwLjY4IDsKLSAgICAgICAgUkVDVCAwLjQgMC42MiAwLjkyIDAuNjggOwotICAgICAgICBSRUNUIDAuODEgMC45OTUgMC44NyAxLjMzNSA7Ci0gICAgICAgIFJFQ1QgMC44NiAwLjYyIDAuOTIgMS4xMSA7Ci0gICAgICAgIFJFQ1QgMC44NiAwLjk4IDAuOTQgMS4xMSA7Ci0gICAgRU5ECi0gIEVORCBZCi0gIFBJTiBBCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjI2IDAuODE1IDAuNzYgMC44OTUgOwotICAgIEVORAotICBFTkQgQQotICBQSU4gVkRECi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIFBPV0VSIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVkREIFZERCEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMS42NSAxLjIgMS43MSA7Ci0gICAgRU5ECi0gIEVORCBWREQKLSAgUElOIFZTUwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBHUk9VTkQgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWU1MgVlNTISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAwLjAwIDEuMiAwLjA2IDsKLSAgICBFTkQKLSAgRU5EIFZTUwotRU5EIENMS0lOVlg0Ci0KLU1BQ1JPIEFPSTMzWDQKLSAgQ0xBU1MgQ09SRSA7Ci0gIE9SSUdJTiAwIDAgOwotICBGT1JFSUdOIEFPSTMzWDQgMCAwIDsKLSAgU0laRSA1LjQgQlkgMS43MSA7Ci0gIFNZTU1FVFJZIFggWSA7Ci0gIFNJVEUgQ29yZVNpdGUgOwotICBQSU4gWQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gT1VUUFVUIDsKLSAgICBBTlRFTk5BRElGRkFSRUEgMS43Mjg1ICBMQVlFUiBNZXRhbDEgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMi42NCAwLjMzNSAyLjcgMC45MiA7Ci0gICAgICAgIFJFQ1QgMi42NCAwLjc5IDIuNzQgMC45MiA7Ci0gICAgICAgIFJFQ1QgMi42NCAwLjgxNSAzLjAzIDAuODk1IDsKLSAgICAgICAgUkVDVCAyLjk3IDAuODE1IDMuMDMgMS4xMTUgOwotICAgICAgICBSRUNUIDIuOTcgMC45OTUgMy40NCAxLjA1NSA7Ci0gICAgICAgIFJFQ1QgMy4zOCAwLjk5NSAzLjQ0IDEuMjA1IDsKLSAgICAgICAgUkVDVCAzLjc5IDEuMDg1IDMuODUgMS4yMDUgOwotICAgICAgICBSRUNUIDQuMiAxLjA4NSA0LjI2IDEuMjA1IDsKLSAgICAgICAgUkVDVCAwLjk1NSAwLjMzNSA0LjYgMC4zOTUgOwotICAgICAgICBSRUNUIDQuNjEgMS4wODUgNC42NyAxLjIwNSA7Ci0gICAgICAgIFJFQ1QgMy4zOCAxLjA4NSA1LjA4IDEuMTQ1IDsKLSAgICAgICAgUkVDVCA1LjAyIDEuMDg1IDUuMDggMS4yMDUgOwotICAgIEVORAotICBFTkQgWQotICBQSU4gQTIKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuOTc1IDAuODQ1IDEuMjkgMC45MDUgOwotICAgICAgICBSRUNUIDEuMjMgMC44NDUgMS4yOSAwLjk4NSA7Ci0gICAgICAgIFJFQ1QgMS4yMyAwLjkyNSAyLjA5NSAwLjk4NSA7Ci0gICAgICAgIFJFQ1QgMi4wMzUgMC44MTUgMi4xMjUgMC45MzUgOwotICAgICAgICBSRUNUIDIuMDM1IDAuODE1IDIuMTY1IDAuODk1IDsKLSAgICBFTkQKLSAgRU5EIEEyCi0gIFBJTiBCMgotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMy40MzUgMC44MTUgMy42IDAuODk1IDsKLSAgICAgICAgUkVDVCAzLjU0IDAuODE1IDMuNiAwLjk4NSA7Ci0gICAgICAgIFJFQ1QgNC4yOCAwLjgzNSA0LjM0IDAuOTg1IDsKLSAgICAgICAgUkVDVCAzLjU0IDAuOTI1IDQuMzQgMC45ODUgOwotICAgICAgICBSRUNUIDQuMjggMC44MzUgNC41NyAwLjg5NSA7Ci0gICAgRU5ECi0gIEVORCBCMgotICBQSU4gQjEKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDMuMDcgMC42NTUgMy43NiAwLjcxNSA7Ci0gICAgICAgIFJFQ1QgMy43IDAuNjU1IDMuNzYgMC44MjUgOwotICAgICAgICBSRUNUIDQuMTIgMC42NzUgNC4xOCAwLjgyNSA7Ci0gICAgICAgIFJFQ1QgMy43IDAuNzY1IDQuMTggMC44MjUgOwotICAgICAgICBSRUNUIDQuMTIgMC42NzUgNC43MyAwLjczNSA7Ci0gICAgICAgIFJFQ1QgNC42NyAwLjY3NSA0LjczIDAuODM1IDsKLSAgICAgICAgUkVDVCA0LjY3IDAuNzc1IDQuOTUgMC44MzUgOwotICAgICAgICBSRUNUIDQuODYgMC43NzUgNC45NCAwLjkyIDsKLSAgICAgICAgUkVDVCA0Ljg2IDAuNzc1IDQuOTUgMC44OTUgOwotICAgIEVORAotICBFTkQgQjEKLSAgUElOIEExCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjYgMC43OSAwLjc0IDAuODUgOwotICAgICAgICBSRUNUIDAuNjggMC42ODUgMC43NCAwLjkyIDsKLSAgICAgICAgUkVDVCAwLjY2IDAuNzkgMC43NCAwLjkyIDsKLSAgICAgICAgUkVDVCAwLjY4IDAuNjg1IDEuNDUgMC43NDUgOwotICAgICAgICBSRUNUIDEuMzkgMC42ODUgMS40NSAwLjgyNSA7Ci0gICAgICAgIFJFQ1QgMS44NzUgMC42NTUgMS45MzUgMC44MjUgOwotICAgICAgICBSRUNUIDEuMzkgMC43NjUgMS45MzUgMC44MjUgOwotICAgICAgICBSRUNUIDEuODc1IDAuNjU1IDIuMzYgMC43MTUgOwotICAgIEVORAotICBFTkQgQTEKLSAgUElOIEEwCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjQ0IDAuNDk1IDAuNSAwLjY5NSA7Ci0gICAgICAgIFJFQ1QgMS41NSAwLjQ5NSAxLjY3IDAuNjY1IDsKLSAgICAgICAgUkVDVCAwLjQ0IDAuNDk1IDIuNTQgMC41NTUgOwotICAgICAgICBSRUNUIDIuNDYgMC40OTUgMi41NCAwLjczIDsKLSAgICBFTkQKLSAgRU5EIEEwCi0gIFBJTiBCMAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMi45MDUgMC40OTUgMi45NjUgMC42NjUgOwotICAgICAgICBSRUNUIDIuOCAwLjU4NSAyLjk2NSAwLjY2NSA7Ci0gICAgICAgIFJFQ1QgMy45IDAuNDk1IDQuMDIgMC42NjUgOwotICAgICAgICBSRUNUIDIuOTA1IDAuNDk1IDUuMTEgMC41NTUgOwotICAgICAgICBSRUNUIDUuMDUgMC40OTUgNS4xMSAwLjcwNSA7Ci0gICAgRU5ECi0gIEVORCBCMAotICBQSU4gVkRECi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIFBPV0VSIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVkREIFZERCEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMS42NSA1LjQgMS43MSA7Ci0gICAgRU5ECi0gIEVORCBWREQKLSAgUElOIFZTUwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBHUk9VTkQgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWU1MgVlNTISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAwLjAwIDUuNCAwLjA2IDsKLSAgICBFTkQKLSAgRU5EIFZTUwotRU5EIEFPSTMzWDQKLQotTUFDUk8gVEJVRlgxNgotICBDTEFTUyBDT1JFIDsKLSAgT1JJR0lOIDAgMCA7Ci0gIEZPUkVJR04gVEJVRlgxNiAwIDAgOwotICBTSVpFIDkgQlkgMS43MSA7Ci0gIFNZTU1FVFJZIFggWSA7Ci0gIFNJVEUgQ29yZVNpdGUgOwotICBQSU4gWQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gT1VUUFVUIDsKLSAgICBBTlRFTk5BRElGRkFSRUEgMS43Mjg1ICBMQVlFUiBNZXRhbDEgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgNS41IDAuMzcgNS41NiAwLjUxIDsKLSAgICAgICAgUkVDVCA1LjUgMC40NSA1LjcyIDAuNTEgOwotICAgICAgICBSRUNUIDUuNjE1IDEuMDY1IDUuNjc1IDEuNDIgOwotICAgICAgICBSRUNUIDUuNjYgMC40NSA1LjcyIDEuMTI1IDsKLSAgICAgICAgUkVDVCA1LjY2IDAuNzkgNS43NCAxLjA5IDsKLSAgICAgICAgUkVDVCA1LjkxIDAuMzcgNS45NyAwLjUxIDsKLSAgICAgICAgUkVDVCA2LjAyNSAwLjQ1IDYuMDg1IDEuNDIgOwotICAgICAgICBSRUNUIDYuMzIgMC4zNyA2LjM4IDAuNTEgOwotICAgICAgICBSRUNUIDUuOTEgMC40NSA2LjM4IDAuNTEgOwotICAgICAgICBSRUNUIDYuNDM1IDEuMDMgNi40OTUgMS40MiA7Ci0gICAgICAgIFJFQ1QgNi43MyAwLjM3IDYuNzkgMC41MSA7Ci0gICAgICAgIFJFQ1QgNi44NDUgMS4wMyA2LjkwNSAxLjQyIDsKLSAgICAgICAgUkVDVCA2LjczIDAuNDUgNy4yIDAuNTEgOwotICAgICAgICBSRUNUIDcuMTQgMC4zNyA3LjIgMS4wOSA7Ci0gICAgICAgIFJFQ1QgNy4yNTUgMS4wMyA3LjMxNSAxLjQyIDsKLSAgICAgICAgUkVDVCA3LjU1IDAuMzcgNy42MSAwLjUxIDsKLSAgICAgICAgUkVDVCA3LjY2NSAxLjAzIDcuNzI1IDEuNDIgOwotICAgICAgICBSRUNUIDcuOTYgMC4zNyA4LjAyIDAuNTEgOwotICAgICAgICBSRUNUIDguMDc1IDEuMDMgOC4xMzUgMS40MiA7Ci0gICAgICAgIFJFQ1QgNy41NSAwLjQ1IDguNDMgMC41MSA7Ci0gICAgICAgIFJFQ1QgOC4zNyAwLjM3IDguNDMgMS4wOSA7Ci0gICAgICAgIFJFQ1QgNS42NiAxLjAzIDguNTQ1IDEuMDkgOwotICAgICAgICBSRUNUIDguNDg1IDEuMDMgOC41NDUgMS40MiA7Ci0gICAgRU5ECi0gIEVORCBZCi0gIFBJTiBBCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjUxNSAwLjg3IDAuNzY1IDAuOTMgOwotICAgICAgICBSRUNUIDEuMDM1IDAuNDEgMS4wOTUgMC45OSA7Ci0gICAgICAgIFJFQ1QgMC43MDUgMC45MyAxLjA5NSAwLjk5IDsKLSAgICAgICAgUkVDVCAxLjAzNSAwLjgxNSAxLjE2NSAwLjg5NSA7Ci0gICAgICAgIFJFQ1QgMS4wMzUgMC40MSAxLjQ4NSAwLjQ3IDsKLSAgICAgICAgUkVDVCAxLjQyNSAwLjQxIDEuNDg1IDAuNzA1IDsKLSAgICAgICAgUkVDVCAxLjU5NSAwLjY0NSAxLjY1NSAwLjgzIDsKLSAgICAgICAgUkVDVCAxLjgwNSAwLjQxIDEuODY1IDAuNzA1IDsKLSAgICAgICAgUkVDVCAxLjQyNSAwLjY0NSAxLjg2NSAwLjcwNSA7Ci0gICAgICAgIFJFQ1QgMS44MDUgMC40MSAyLjMwNSAwLjQ3IDsKLSAgICAgICAgUkVDVCAyLjI0NSAwLjQxIDIuMzA1IDAuNzM1IDsKLSAgICAgICAgUkVDVCAyLjM0IDAuNjc1IDIuNCAwLjg0NSA7Ci0gICAgICAgIFJFQ1QgMi41NjUgMC40MSAyLjYyNSAwLjczNSA7Ci0gICAgICAgIFJFQ1QgMi4yNDUgMC42NzUgMi42MjUgMC43MzUgOwotICAgICAgICBSRUNUIDMuMDIgMC40NSAzLjEyIDAuNTEgOwotICAgICAgICBSRUNUIDIuNTY1IDAuNDEgMy4wOCAwLjQ3IDsKLSAgICAgICAgUkVDVCAzLjA2IDAuNDUgMy4xMiAwLjY3IDsKLSAgICAgICAgUkVDVCAzLjA2IDAuNjEgNC45OCAwLjY3IDsKLSAgICAgICAgUkVDVCA0LjkyIDAuNjM1IDUuMTggMC42OTUgOwotICAgIEVORAotICBFTkQgQQotICBQSU4gT0UKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMjYgMC43MSAwLjQxNSAwLjkyIDsKLSAgICAgICAgUkVDVCAwLjI2IDAuNzEgMC45MzUgMC43NyA7Ci0gICAgICAgIFJFQ1QgMC44NzUgMC43MSAwLjkzNSAwLjgzIDsKLSAgICBFTkQKLSAgRU5EIE9FCi0gIFBJTiBWREQKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgUE9XRVIgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWREQgVkREISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAxLjY1IDkgMS43MSA7Ci0gICAgRU5ECi0gIEVORCBWREQKLSAgUElOIFZTUwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBHUk9VTkQgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWU1MgVlNTISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAwLjAwIDkgMC4wNiA7Ci0gICAgRU5ECi0gIEVORCBWU1MKLUVORCBUQlVGWDE2Ci0KLU1BQ1JPIFNERkZSWDEKLSAgQ0xBU1MgQ09SRSA7Ci0gIE9SSUdJTiAwIDAgOwotICBGT1JFSUdOIFNERkZSWDEgMCAwIDsKLSAgU0laRSA2LjQgQlkgMS43MSA7Ci0gIFNZTU1FVFJZIFggWSA7Ci0gIFNJVEUgQ29yZVNpdGUgOwotICBQSU4gUQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gT1VUUFVUIDsKLSAgICBBTlRFTk5BRElGRkFSRUEgMS43Mjg1ICBMQVlFUiBNZXRhbDEgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC44NjUgMC41NCAwLjk0IDAuNzMgOwotICAgICAgICBSRUNUIDAuODYgMC42IDAuOTQgMC43MyA7Ci0gICAgICAgIFJFQ1QgMC44OCAwLjU0IDAuOTQgMS4zMyA7Ci0gICAgRU5ECi0gIEVORCBRCi0gIFBJTiBRTgotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gT1VUUFVUIDsKLSAgICBBTlRFTk5BRElGRkFSRUEgMS43Mjg1ICBMQVlFUiBNZXRhbDEgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wNiAwLjYgMC4yOSAwLjczIDsKLSAgICAgICAgUkVDVCAwLjIxIDAuNTQgMC4yOSAxLjI5IDsKLSAgICBFTkQKLSAgRU5EIFFOCi0gIFBJTiBTRQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgNS4xNCAwLjY3NSA1LjIgMC43OTUgOwotICAgICAgICBSRUNUIDUuNDA1IDAuNDY1IDUuNDY1IDAuNzM1IDsKLSAgICAgICAgUkVDVCA1LjE0IDAuNjc1IDUuNDY1IDAuNzM1IDsKLSAgICAgICAgUkVDVCA1LjQwNSAwLjQ2NSA2LjEyIDAuNTI1IDsKLSAgICAgICAgUkVDVCA2LjA2IDAuNDY1IDYuMTIgMC43MyA7Ci0gICAgICAgIFJFQ1QgNi4wNiAwLjYgNi4xNCAwLjczIDsKLSAgICBFTkQKLSAgRU5EIFNFCi0gIFBJTiBTSQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgNS41NjUgMC42MjUgNS42NDUgMC44MSA7Ci0gICAgICAgIFJFQ1QgNS41NjUgMC42MjUgNS45NiAwLjc0NSA7Ci0gICAgRU5ECi0gIEVORCBTSQotICBQSU4gRAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgNC42NiAwLjQ5NSA0Ljc0IDAuODU1IDsKLSAgICAgICAgUkVDVCA0LjY2IDAuNDk1IDQuODggMC41NzUgOwotICAgIEVORAotICBFTkQgRAotICBQSU4gUk4KLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDEuOCAwLjczNSAxLjk2NSAwLjk2IDsKLSAgICAgICAgUkVDVCAxLjggMC43MzUgMi4xNTUgMC44MTUgOwotICAgIEVORAotICBFTkQgUk4KLSAgUElOIENLCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAxLjIgMC43NSAxLjI4IDEuMTEgOwotICAgICAgICBSRUNUIDEuMDYgMC45OCAxLjI4IDEuMTEgOwotICAgIEVORAotICBFTkQgQ0sKLSAgUElOIFZERAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBQT1dFUiA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZERCBWREQhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDEuNjUgNi40IDEuNzEgOwotICAgIEVORAotICBFTkQgVkRECi0gIFBJTiBWU1MKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgR1JPVU5EIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVlNTIFZTUyEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMC4wMCA2LjQgMC4wNiA7Ci0gICAgRU5ECi0gIEVORCBWU1MKLUVORCBTREZGUlgxCi0KLU1BQ1JPIERGRlNSSFFYOAotICBDTEFTUyBDT1JFIDsKLSAgT1JJR0lOIDAgMCA7Ci0gIEZPUkVJR04gREZGU1JIUVg4IDAgMCA7Ci0gIFNJWkUgNy44IEJZIDEuNzEgOwotICBTWU1NRVRSWSBYIFkgOwotICBTSVRFIENvcmVTaXRlIDsKLSAgUElOIENLCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCA3LjQ2IDAuNjU1IDcuNTQgMS4xNTUgOwotICAgIEVORAotICBFTkQgQ0sKLSAgUElOIEQKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDYuNzY1IDAuNjI1IDYuODg1IDAuODY1IDsKLSAgICAgICAgUkVDVCA2LjgzNSAwLjQ5NSA2Ljk3NSAwLjcwNSA7Ci0gICAgRU5ECi0gIEVORCBECi0gIFBJTiBTTgotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMy4wNiAwLjc5IDMuMTQgMC45MiA7Ci0gICAgICAgIFJFQ1QgMy4wOCAwLjc5IDMuMTQgMS4yNjUgOwotICAgICAgICBSRUNUIDMuNDIgMS4xMjUgMy40OCAxLjI2NSA7Ci0gICAgICAgIFJFQ1QgMy4wOCAxLjIwNSAzLjQ4IDEuMjY1IDsKLSAgICAgICAgUkVDVCAzLjQyIDEuMTI1IDMuOTYgMS4xODUgOwotICAgICAgICBSRUNUIDMuOSAxLjEyNSAzLjk2IDEuMzQ1IDsKLSAgICAgICAgUkVDVCA0LjkgMS4yMiA0Ljk2IDEuMzQ1IDsKLSAgICAgICAgUkVDVCAzLjkgMS4yODUgNC45NiAxLjM0NSA7Ci0gICAgICAgIFJFQ1QgNC45IDEuMjIgNS4zNCAxLjI4IDsKLSAgICAgICAgUkVDVCA1LjI4IDEuMjIgNS4zNCAxLjQ0IDsKLSAgICAgICAgUkVDVCA1LjI4IDEuMzggNS41OSAxLjQ0IDsKLSAgICBFTkQKLSAgRU5EIFNOCi0gIFBJTiBSTgotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMi42NiAwLjYgMi43NCAxLjEgOwotICAgIEVORAotICBFTkQgUk4KLSAgUElOIFEKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIE9VVFBVVCA7Ci0gICAgQU5URU5OQURJRkZBUkVBIDEuNzI4NSAgTEFZRVIgTWV0YWwxIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDYgMC42IDAuMTQgMC43MyA7Ci0gICAgICAgIFJFQ1QgMC4wOCAwLjU0IDAuMTQgMS4zNDUgOwotICAgICAgICBSRUNUIDAuNDkgMC41NCAwLjU1IDEuMzQ1IDsKLSAgICAgICAgUkVDVCAwLjA2IDAuNjQ1IDAuOTYgMC43MDUgOwotICAgICAgICBSRUNUIDAuOSAwLjU0IDAuOTYgMS4zNDUgOwotICAgICAgICBSRUNUIDAuOSAwLjc0IDEuMzI1IDAuOCA7Ci0gICAgICAgIFJFQ1QgMS4yNjUgMC41OSAxLjMyNSAwLjk2IDsKLSAgICAgICAgUkVDVCAxLjMxIDAuNTMgMS4zNyAwLjY1IDsKLSAgICAgICAgUkVDVCAxLjMxIDAuOSAxLjM3IDEuMzQ1IDsKLSAgICBFTkQKLSAgRU5EIFEKLSAgUElOIFZERAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBQT1dFUiA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZERCBWREQhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDEuNjUgNy44IDEuNzEgOwotICAgIEVORAotICBFTkQgVkRECi0gIFBJTiBWU1MKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgR1JPVU5EIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVlNTIFZTUyEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMC4wMCA3LjggMC4wNiA7Ci0gICAgRU5ECi0gIEVORCBWU1MKLUVORCBERkZTUkhRWDgKLQotTUFDUk8gQU9JMjIyWDIKLSAgQ0xBU1MgQ09SRSA7Ci0gIE9SSUdJTiAwIDAgOwotICBGT1JFSUdOIEFPSTIyMlgyIDAgMCA7Ci0gIFNJWkUgMy4yIEJZIDEuNzEgOwotICBTWU1NRVRSWSBYIFkgOwotICBTSVRFIENvcmVTaXRlIDsKLSAgUElOIFkKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIE9VVFBVVCA7Ci0gICAgQU5URU5OQURJRkZBUkVBIDEuNzI4NSAgTEFZRVIgTWV0YWwxIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDEuMjYgMC43OSAxLjM0IDAuOTIgOwotICAgICAgICBSRUNUIDEuMjggMC40NSAxLjM0IDEuMDY1IDsKLSAgICAgICAgUkVDVCAxLjI4IDEuMDA1IDIuNSAxLjA2NSA7Ci0gICAgICAgIFJFQ1QgMi40NCAxLjAwNSAyLjUgMS4xNTUgOwotICAgICAgICBSRUNUIDAuNzA1IDAuNDUgMi42NzUgMC41MSA7Ci0gICAgICAgIFJFQ1QgMi40NCAxLjAyIDIuOTEgMS4wOCA7Ci0gICAgICAgIFJFQ1QgMi44NSAxLjAxNSAyLjkxIDEuMTM1IDsKLSAgICBFTkQKLSAgRU5EIFkKLSAgUElOIEIxCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAxLjYzNSAwLjgxNSAyLjEzNSAwLjg5NSA7Ci0gICAgRU5ECi0gIEVORCBCMQotICBQSU4gQTEKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuNjYgMC43OSAwLjgzNSAwLjkyIDsKLSAgICBFTkQKLSAgRU5EIEExCi0gIFBJTiBDMQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMi41NTUgMC43OSAyLjcyNSAwLjkyIDsKLSAgICAgICAgUkVDVCAyLjU1NSAwLjgxNSAyLjc0IDAuODk1IDsKLSAgICBFTkQKLSAgRU5EIEMxCi0gIFBJTiBBMAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4yMzUgMC42MjUgMC41NiAwLjc0IDsKLSAgICAgICAgUkVDVCAwLjUwNSAwLjYxIDAuOTUgMC42OSA7Ci0gICAgICAgIFJFQ1QgMC44NjUgMC42MzUgMS4wNiAwLjcxNSA7Ci0gICAgRU5ECi0gIEVORCBBMAotICBQSU4gQjAKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDEuODM1IDAuNjI1IDEuOTY1IDAuNzE1IDsKLSAgICAgICAgUkVDVCAxLjUwNSAwLjYzNSAyLjEzNSAwLjcxNSA7Ci0gICAgRU5ECi0gIEVORCBCMAotICBQSU4gQzAKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDIuMjM1IDAuNjI1IDIuNCAwLjcxNSA7Ci0gICAgICAgIFJFQ1QgMi4yMzUgMC42MjUgMi45IDAuNjg1IDsKLSAgICAgICAgUkVDVCAyLjg0IDAuNjggMy4wMTUgMC43NCA7Ci0gICAgRU5ECi0gIEVORCBDMAotICBQSU4gVkRECi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIFBPV0VSIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVkREIFZERCEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMS42NSAzLjIgMS43MSA7Ci0gICAgRU5ECi0gIEVORCBWREQKLSAgUElOIFZTUwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBHUk9VTkQgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWU1MgVlNTISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAwLjAwIDMuMiAwLjA2IDsKLSAgICBFTkQKLSAgRU5EIFZTUwotRU5EIEFPSTIyMlgyCi0KLU1BQ1JPIE5BTkQyQlgxCi0gIENMQVNTIENPUkUgOwotICBPUklHSU4gMCAwIDsKLSAgRk9SRUlHTiBOQU5EMkJYMSAwIDAgOwotICBTSVpFIDAuODE1IEJZIDEuNzEgOwotICBTWU1NRVRSWSBYIFkgIDsKLSAgU0lURSBDb3JlU2l0ZSA7Ci0gIFBJTiBZCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBPVVRQVVQgOwotICAgIEFOVEVOTkFESUZGQVJFQSAxLjcyODUgIExBWUVSIE1ldGFsMSA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjA3IDEuMDA1IDAuMTUgMS4wODUgOwotICAgIEVORAotICBFTkQgWQotICBQSU4gQU4KLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuNTkgMC44MDUgMC43NzUgMC45NjUgOwotICAgIEVORAotICBFTkQgQU4KLSAgUElOIEIKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDcgMC42MiAwLjE2NSAwLjcwNSA7Ci0gICAgRU5ECi0gIEVORCBCCi0gIFBJTiBWREQKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgUE9XRVIgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWREQgVkREISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAxLjY1IDAuODE1IDEuNzEgOwotICAgIEVORAotICBFTkQgVkRECi0gIFBJTiBWU1MKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgR1JPVU5EIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVlNTIFZTUyEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMC4wMCAwLjgxNSAwLjA2IDsKLSAgICBFTkQKLSAgRU5EIFZTUwotRU5EIE5BTkQyQlgxCi0KLU1BQ1JPIEFPSTIxMVg0Ci0gIENMQVNTIENPUkUgOwotICBPUklHSU4gMCAwIDsKLSAgRk9SRUlHTiBBT0kyMTFYNCAwIDAgOwotICBTSVpFIDMuOCBCWSAxLjcxIDsKLSAgU1lNTUVUUlkgWCBZIDsKLSAgU0lURSBDb3JlU2l0ZSA7Ci0gIFBJTiBZCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBPVVRQVVQgOwotICAgIEFOVEVOTkFESUZGQVJFQSAxLjcyODUgIExBWUVSIE1ldGFsMSA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjc2IDAuNDQ1IDAuODggMC41MDUgOwotICAgICAgICBSRUNUIDEuMzggMC40NDUgMS41IDAuNTI1IDsKLSAgICAgICAgUkVDVCAxLjgzNSAwLjYyNSAxLjk2NSAwLjcwNSA7Ci0gICAgICAgIFJFQ1QgMS45MDUgMC40NjUgMS45NjUgMS4wNTUgOwotICAgICAgICBSRUNUIDEuOTM1IDAuNDQ1IDIuMDU1IDAuNTI1IDsKLSAgICAgICAgUkVDVCAyLjQxNSAwLjQ0NSAyLjUzNSAwLjUyNSA7Ci0gICAgICAgIFJFQ1QgMi44NTUgMC40NDUgMi45NzUgMC41MjUgOwotICAgICAgICBSRUNUIDEuOTA1IDAuOTk1IDMuMDQ1IDEuMDU1IDsKLSAgICAgICAgUkVDVCAyLjk4NSAwLjk5NSAzLjA0NSAxLjI3NSA7Ci0gICAgICAgIFJFQ1QgMC44MyAwLjQ2NSAzLjM0NSAwLjUyNSA7Ci0gICAgICAgIFJFQ1QgMi45ODUgMS4wNDUgMy40NTUgMS4xMDUgOwotICAgICAgICBSRUNUIDMuMjk1IDAuNDQ1IDMuNDE1IDAuNTA1IDsKLSAgICAgICAgUkVDVCAzLjM5NSAxLjA0NSAzLjQ1NSAxLjI3NSA7Ci0gICAgRU5ECi0gIEVORCBZCi0gIFBJTiBBMQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC42ODUgMC44MTUgMS40MjUgMC44OTUgOwotICAgIEVORAotICBFTkQgQTEKLSAgUElOIEIwCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAyLjA2NSAwLjgxNSAyLjU2NSAwLjg5NSA7Ci0gICAgRU5ECi0gIEVORCBCMAotICBQSU4gQzAKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDIuOTg1IDAuNjI1IDMuMzY1IDAuNzA1IDsKLSAgICAgICAgUkVDVCAzLjI4NSAwLjYyNSAzLjM2NSAwLjgyNSA7Ci0gICAgRU5ECi0gIEVORCBDMAotICBQSU4gQTAKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMjM1IDAuNjI1IDAuMzY1IDAuNzA1IDsKLSAgICAgICAgUkVDVCAwLjIzIDAuNjQ1IDEuNzM1IDAuNzA1IDsKLSAgICBFTkQKLSAgRU5EIEEwCi0gIFBJTiBWREQKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgUE9XRVIgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWREQgVkREISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAxLjY1IDMuOCAxLjcxIDsKLSAgICBFTkQKLSAgRU5EIFZERAotICBQSU4gVlNTCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIEdST1VORCA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZTUyBWU1MhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDAuMDAgMy44IDAuMDYgOwotICAgIEVORAotICBFTkQgVlNTCi1FTkQgQU9JMjExWDQKLQotTUFDUk8gQk1YSVg0Ci0gIENMQVNTIENPUkUgOwotICBPUklHSU4gMCAwIDsKLSAgRk9SRUlHTiBCTVhJWDQgMCAwIDsKLSAgU0laRSA1IEJZIDEuNzEgOwotICBTWU1NRVRSWSBYIFkgOwotICBTSVRFIENvcmVTaXRlIDsKLSAgUElOIE0xCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAxLjUzIDAuMTMgMS42NSAwLjE5IDsKLSAgICAgICAgUkVDVCAxLjU5IDAuMTkgMS44NzUgMC4yNSA7Ci0gICAgICAgIFJFQ1QgMS44MTUgMC4xOSAxLjg3NSAwLjg1NSA7Ci0gICAgICAgIFJFQ1QgMS44MTUgMC42MjUgMS45NjUgMC44NTUgOwotICAgICAgICBSRUNUIDIuMzQ1IDAuNzM1IDIuNDA1IDAuODU1IDsKLSAgICAgICAgUkVDVCAxLjgxNSAwLjc5NSAyLjQwNSAwLjg1NSA7Ci0gICAgRU5ECi0gIEVORCBNMQotICBQSU4gQQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMS4yNiAwLjQ1IDEuMzQgMC45NSA7Ci0gICAgRU5ECi0gIEVORCBBCi0gIFBJTiBTCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjQgMC43NiAwLjcyIDAuODIgOwotICAgICAgICBSRUNUIDAuNjYgMC43NiAwLjcyIDEuMjcgOwotICAgICAgICBSRUNUIDAuNjYgMC45OCAwLjc0IDEuMjcgOwotICAgICAgICBSRUNUIDAuNjYgMS4yMSAxLjEyIDEuMjcgOwotICAgICAgICBSRUNUIDEuMDYgMS4yMSAxLjEyIDEuMzM1IDsKLSAgICAgICAgUkVDVCAxLjA2IDEuMjc1IDIuMDg1IDEuMzM1IDsKLSAgICBFTkQKLSAgRU5EIFMKLSAgUElOIE0wCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjIzNSAwLjc2NSAwLjI5NSAxLjI3NSA7Ci0gICAgICAgIFJFQ1QgMC4yMzUgMS4xOTUgMC4zNjUgMS4yNzUgOwotICAgICAgICBSRUNUIDAuMjM1IDEuMjE1IDAuNTYgMS4yNzUgOwotICAgICAgICBSRUNUIDAuNSAxLjIxNSAwLjU2IDEuNDMgOwotICAgICAgICBSRUNUIDAuNSAxLjM3IDAuOTYgMS40MyA7Ci0gICAgRU5ECi0gIEVORCBNMAotICBQSU4gUFBOCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBPVVRQVVQgOwotICAgIEFOVEVOTkFESUZGQVJFQSAxLjcyODUgIExBWUVSIE1ldGFsMSA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCA0LjI1NSAwLjU0IDQuMzE1IDEuMjkgOwotICAgICAgICBSRUNUIDQuMjU1IDAuNiA0LjM0IDAuNzMgOwotICAgICAgICBSRUNUIDQuMjU1IDAuNjcgNC43MjUgMC43MyA7Ci0gICAgICAgIFJFQ1QgNC42NjUgMC41NCA0LjcyNSAxLjI5IDsKLSAgICBFTkQKLSAgRU5EIFBQTgotICBQSU4gWDIKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDMuMDc1IDAuNzM1IDMuMjI1IDAuODU1IDsKLSAgICAgICAgUkVDVCAzLjE2NSAwLjczNSAzLjIyNSAxLjQ0NSA7Ci0gICAgICAgIFJFQ1QgMy4xNjUgMS4zODUgMy41NjUgMS40NDUgOwotICAgICAgICBSRUNUIDMuNDM1IDEuMzg1IDMuNTY1IDEuNDY1IDsKLSAgICBFTkQKLSAgRU5EIFgyCi0gIFBJTiBWREQKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgUE9XRVIgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWREQgVkREISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAxLjY1IDUgMS43MSA7Ci0gICAgRU5ECi0gIEVORCBWREQKLSAgUElOIFZTUwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBHUk9VTkQgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWU1MgVlNTISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAwLjAwIDUgMC4wNiA7Ci0gICAgRU5ECi0gIEVORCBWU1MKLUVORCBCTVhJWDQKLQotTUFDUk8gTVg0WEwKLSAgQ0xBU1MgQ09SRSA7Ci0gIE9SSUdJTiAwIDAgOwotICBGT1JFSUdOIE1YNFhMIDAgMCA7Ci0gIFNJWkUgNC4yIEJZIDEuNzEgOwotICBTWU1NRVRSWSBYIFkgOwotICBTSVRFIENvcmVTaXRlIDsKLSAgUElOIFkKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIE9VVFBVVCA7Ci0gICAgQU5URU5OQURJRkZBUkVBIDEuNzI4NSAgTEFZRVIgTWV0YWwxIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDYgMC40NSAwLjE0IDEuMDIgOwotICAgICAgICBSRUNUIDAuMDYgMC43OSAwLjE2IDEuMDIgOwotICAgICAgICBSRUNUIDAuMTIgMC40MSAwLjIgMC41MyA7Ci0gICAgRU5ECi0gIEVORCBZCi0gIFBJTiBTMAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMi4zMyAxLjQzIDIuNjQgMS40OSA7Ci0gICAgICAgIFJFQ1QgMy40NDUgMC44MjUgMy45NjUgMC44ODUgOwotICAgICAgICBSRUNUIDIuNTggMS4zOCAzLjU2NSAxLjQ0IDsKLSAgICAgICAgUkVDVCAzLjUwNSAwLjgyNSAzLjU2NSAxLjQ0IDsKLSAgICAgICAgUkVDVCAzLjggMC44MTUgMy45NjUgMC44OTUgOwotICAgICAgICBSRUNUIDMuNTA1IDAuODI1IDMuOTY1IDAuODk1IDsKLSAgICBFTkQKLSAgRU5EIFMwCi0gIFBJTiBBCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAzLjQ2NSAwLjYyNSAzLjk2NSAwLjcwNSA7Ci0gICAgRU5ECi0gIEVORCBBCi0gIFBJTiBCCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAyLjcyIDAuNzg1IDIuOTY1IDAuODk1IDsKLSAgICAgICAgUkVDVCAyLjg4NSAwLjc4NSAyLjk2NSAxLjEyIDsKLSAgICBFTkQKLSAgRU5EIEIKLSAgUElOIEMKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDIuNSAwLjc5IDIuNjIgMC44NyA7Ci0gICAgICAgIFJFQ1QgMi41NCAwLjc5IDIuNjIgMS4wODUgOwotICAgICAgICBSRUNUIDIuNTQgMS4wMDUgMi43ODUgMS4wODUgOwotICAgIEVORAotICBFTkQgQwotICBQSU4gRAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMS44NiAwLjY3IDEuOTQgMS4xNyA7Ci0gICAgRU5ECi0gIEVORCBECi0gIFBJTiBTMQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4yNiAwLjc5IDAuMzQgMC45MiA7Ci0gICAgICAgIFJFQ1QgMC40NiAwLjYyIDAuNTQgMC44NyA7Ci0gICAgICAgIFJFQ1QgMC4yNiAwLjc5IDAuNTQgMC44NyA7Ci0gICAgRU5ECi0gIEVORCBTMQotICBQSU4gVkRECi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIFBPV0VSIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVkREIFZERCEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMS42NSA0LjIgMS43MSA7Ci0gICAgRU5ECi0gIEVORCBWREQKLSAgUElOIFZTUwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBHUk9VTkQgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWU1MgVlNTISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAwLjAwIDQuMiAwLjA2IDsKLSAgICBFTkQKLSAgRU5EIFZTUwotRU5EIE1YNFhMCi0KLU1BQ1JPIFRMQVRYMgotICBDTEFTUyBDT1JFIDsKLSAgT1JJR0lOIDAgMCA7Ci0gIEZPUkVJR04gVExBVFgyIDAgMCA7Ci0gIFNJWkUgMy42IEJZIDEuNzEgOwotICBTWU1NRVRSWSBYIFkgOwotICBTSVRFIENvcmVTaXRlIDsKLSAgUElOIFZTUwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBHUk9VTkQgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWU1MgVlNTISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAwLjAwIDMuNiAwLjA2IDsKLSAgICBFTkQKLSAgRU5EIFZTUwotICBQSU4gVkRECi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIFBPV0VSIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVkREIFZERCEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMS42NSAzLjYgMS43MSA7Ci0gICAgRU5ECi0gIEVORCBWREQKLSAgUElOIEQKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMzYgMC43MzUgMC41NjUgMS4wODUgOwotICAgICAgICBSRUNUIDAuMzYgMC43MzUgMC41OSAwLjgxNSA7Ci0gICAgRU5ECi0gIEVORCBECi0gIFBJTiBHCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAxLjgzNSAwLjgxNSAyLjAxNSAxLjA4NSA7Ci0gICAgRU5ECi0gIEVORCBHCi0gIFBJTiBRTgotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gT1VUUFVUIDsKLSAgICBBTlRFTk5BRElGRkFSRUEgMS43Mjg1ICBMQVlFUiBNZXRhbDEgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMi4yNiAwLjQxIDIuMzIgMS4zMDUgOwotICAgICAgICBSRUNUIDIuMjYgMC40MSAyLjM0IDAuNTQgOwotICAgIEVORAotICBFTkQgUU4KLSAgUElOIFEKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIE9VVFBVVCA7Ci0gICAgQU5URU5OQURJRkZBUkVBIDEuNzI4NSAgTEFZRVIgTWV0YWwxIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDMuMjYgMC40NiAzLjM0IDEuMzA1IDsKLSAgICBFTkQKLSAgRU5EIFEKLUVORCBUTEFUWDIKLQotTUFDUk8gVEJVRlg4Ci0gIENMQVNTIENPUkUgOwotICBPUklHSU4gMCAwIDsKLSAgRk9SRUlHTiBUQlVGWDggMCAwIDsKLSAgU0laRSA1IEJZIDEuNzEgOwotICBTWU1NRVRSWSBYIFkgOwotICBTSVRFIENvcmVTaXRlIDsKLSAgUElOIFkKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIE9VVFBVVCA7Ci0gICAgQU5URU5OQURJRkZBUkVBIDEuNzI4NSAgTEFZRVIgTWV0YWwxIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDMuMjUgMC45OSAzLjMxIDEuMjkgOwotICAgICAgICBSRUNUIDMuMyAwLjQ1IDMuMzYgMC42NCA7Ci0gICAgICAgIFJFQ1QgMy4zIDAuNTggMy41MiAwLjY0IDsKLSAgICAgICAgUkVDVCAzLjQ2IDAuNTggMy41MiAxLjA1IDsKLSAgICAgICAgUkVDVCAzLjI1IDAuOTkgMy41MiAxLjA1IDsKLSAgICAgICAgUkVDVCAzLjQ2IDAuNzkgMy41NCAwLjk2IDsKLSAgICAgICAgUkVDVCAzLjY2IDAuOSAzLjcyIDEuMjkgOwotICAgICAgICBSRUNUIDMuNzEgMC40NSAzLjc3IDAuNTkgOwotICAgICAgICBSRUNUIDQuMDcgMC45IDQuMTMgMS4yOSA7Ci0gICAgICAgIFJFQ1QgNC4xMiAwLjQ1IDQuMTggMC41OSA7Ci0gICAgICAgIFJFQ1QgMy40NiAwLjkgNC41NCAwLjk2IDsKLSAgICAgICAgUkVDVCA0LjQ4IDAuNTMgNC41NCAxLjI5IDsKLSAgICAgICAgUkVDVCA0LjUzIDAuNDUgNC41OSAwLjU5IDsKLSAgICAgICAgUkVDVCAzLjcxIDAuNTMgNC41OSAwLjU5IDsKLSAgICBFTkQKLSAgRU5EIFkKLSAgUElOIEEKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuNjM1IDAuODE1IDAuNzY1IDAuOTIgOwotICAgICAgICBSRUNUIDEuMzMgMC4yNyAxLjM5IDAuOTIgOwotICAgICAgICBSRUNUIDAuNTkgMC44NiAxLjM5IDAuOTIgOwotICAgICAgICBSRUNUIDEuMzMgMC4yNyAyLjg5IDAuMzMgOwotICAgICAgICBSRUNUIDIuODMgMC4yNjUgMy4wMyAwLjMyNSA7Ci0gICAgRU5ECi0gIEVORCBBCi0gIFBJTiBPRQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4yNiAwLjY1NSAwLjM0IDAuOTIgOwotICAgICAgICBSRUNUIDAuMjIgMC44NiAwLjM0IDAuOTIgOwotICAgICAgICBSRUNUIDAuODY1IDAuNjU1IDAuOTg1IDAuNzU1IDsKLSAgICAgICAgUkVDVCAwLjI2IDAuNjU1IDEuMjMgMC43MTUgOwotICAgICAgICBSRUNUIDEuMTcgMC42NCAxLjIzIDAuNzYgOwotICAgIEVORAotICBFTkQgT0UKLSAgUElOIFZERAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBQT1dFUiA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZERCBWREQhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDEuNjUgNSAxLjcxIDsKLSAgICBFTkQKLSAgRU5EIFZERAotICBQSU4gVlNTCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIEdST1VORCA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZTUyBWU1MhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDAuMDAgNSAwLjA2IDsKLSAgICBFTkQKLSAgRU5EIFZTUwotRU5EIFRCVUZYOAotCi1NQUNSTyBOQU5EMkJYNAotICBDTEFTUyBDT1JFIDsKLSAgT1JJR0lOIDAgMCA7Ci0gIEZPUkVJR04gTkFORDJCWDQgMCAwIDsKLSAgU0laRSAyLjA0NSBCWSAxLjcxIDsKLSAgU1lNTUVUUlkgWCBZICA7Ci0gIFNJVEUgQ29yZVNpdGUgOwotICBQSU4gWQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gT1VUUFVUIDsKLSAgICBBTlRFTk5BRElGRkFSRUEgMS43Mjg1ICBMQVlFUiBNZXRhbDEgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wNjUgMC41NDUgMC4xNDUgMC42MjUgOwotICAgIEVORAotICBFTkQgWQotICBQSU4gQgotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4zODUgMC45MjUgMC40NjUgMS4wMDUgOwotICAgIEVORAotICBFTkQgQgotICBQSU4gQU4KLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDEuODU1IDAuNzg1IDEuOTM1IDAuOTMwIDsKLSAgICBFTkQKLSAgRU5EIEFOCi0gIFBJTiBWREQKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgUE9XRVIgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWREQgVkREISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAxLjY1IDIuMDQ1IDEuNzEgOwotICAgIEVORAotICBFTkQgVkRECi0gIFBJTiBWU1MKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgR1JPVU5EIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVlNTIFZTUyEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMC4wMCAyLjA0NSAwLjA2IDsKLSAgICBFTkQKLSAgRU5EIFZTUwotRU5EIE5BTkQyQlg0Ci0KLU1BQ1JPIFNERkZRWEwKLSAgQ0xBU1MgQ09SRSA7Ci0gIE9SSUdJTiAwIDAgOwotICBGT1JFSUdOIFNERkZRWEwgMCAwIDsKLSAgU0laRSA0LjYgQlkgMS43MSA7Ci0gIFNZTU1FVFJZIFggWSA7Ci0gIFNJVEUgQ29yZVNpdGUgOwotICBQSU4gUQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gT1VUUFVUIDsKLSAgICBBTlRFTk5BRElGRkFSRUEgMS43Mjg1ICBMQVlFUiBNZXRhbDEgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wNiAwLjQxIDAuMTQgMS4zNSA7Ci0gICAgRU5ECi0gIEVORCBRCi0gIFBJTiBTRQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMy43NjUgMC42MjUgMy44MjUgMC45NjUgOwotICAgICAgICBSRUNUIDMuNzA1IDAuOTA1IDMuODI1IDAuOTY1IDsKLSAgICAgICAgUkVDVCAzLjc2NSAwLjYyNSA0LjM2NSAwLjY4NSA7Ci0gICAgICAgIFJFQ1QgNC4yMzUgMC42MjUgNC4zNjUgMC43MDUgOwotICAgIEVORAotICBFTkQgU0UKLSAgUElOIFNJCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAzLjkyNSAwLjgwNSA0LjE2NSAwLjk0IDsKLSAgICAgICAgUkVDVCAzLjkyNSAwLjg2IDQuMzcgMC45NCA7Ci0gICAgRU5ECi0gIEVORCBTSQotICBQSU4gRAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMi45NDUgMC44MTUgMy40NDUgMC44OTUgOwotICAgIEVORAotICBFTkQgRAotICBQSU4gQ0sKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMjYgMC45OCAwLjM0IDEuMjI1IDsKLSAgICAgICAgUkVDVCAwLjMzIDAuNzk1IDAuNDEgMS4wNiA7Ci0gICAgRU5ECi0gIEVORCBDSwotICBQSU4gVkRECi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIFBPV0VSIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVkREIFZERCEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMS42NSA0LjYgMS43MSA7Ci0gICAgRU5ECi0gIEVORCBWREQKLSAgUElOIFZTUwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBHUk9VTkQgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWU1MgVlNTISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAwLjAwIDQuNiAwLjA2IDsKLSAgICBFTkQKLSAgRU5EIFZTUwotRU5EIFNERkZRWEwKLQotTUFDUk8gQU9JMzNYMgotICBDTEFTUyBDT1JFIDsKLSAgT1JJR0lOIDAgMCA7Ci0gIEZPUkVJR04gQU9JMzNYMiAwIDAgOwotICBTSVpFIDMgQlkgMS43MSA7Ci0gIFNZTU1FVFJZIFggWSA7Ci0gIFNJVEUgQ29yZVNpdGUgOwotICBQSU4gWQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gT1VUUFVUIDsKLSAgICBBTlRFTk5BRElGRkFSRUEgMS43Mjg1ICBMQVlFUiBNZXRhbDEgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMS41IDAuMzM1IDEuNTYgMS4wODUgOwotICAgICAgICBSRUNUIDEuNDM1IDEuMDA1IDEuNTY1IDEuMDg1IDsKLSAgICAgICAgUkVDVCAxLjQzNSAxLjAyNSAxLjc5NSAxLjA4NSA7Ci0gICAgICAgIFJFQ1QgMS43MzUgMS4wMjUgMS43OTUgMS4xNjUgOwotICAgICAgICBSRUNUIDAuNzU1IDAuMzM1IDIuMTk1IDAuMzk1IDsKLSAgICAgICAgUkVDVCAyLjE2IDEuMDQ1IDIuMjIgMS4xNjUgOwotICAgICAgICBSRUNUIDEuNzM1IDEuMDQ1IDIuNjUgMS4xMDUgOwotICAgICAgICBSRUNUIDIuNTkgMS4wNDUgMi42NSAxLjE2NSA7Ci0gICAgRU5ECi0gIEVORCBZCi0gIFBJTiBBMgotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC42ODUgMC44MTUgMC45NjUgMC45MiA7Ci0gICAgICAgIFJFQ1QgMC42ODUgMC44MTUgMS4xNiAwLjg5NSA7Ci0gICAgRU5ECi0gIEVORCBBMgotICBQSU4gQjIKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDEuODk1IDAuODE1IDIuMTQgMC45MyA7Ci0gICAgICAgIFJFQ1QgMS44OTUgMC44MTUgMi4zNiAwLjg5NSA7Ci0gICAgRU5ECi0gIEVORCBCMgotICBQSU4gQjEKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDEuODQgMC42NTUgMi41NCAwLjcxNSA7Ci0gICAgICAgIFJFQ1QgMi40NiAwLjY1NSAyLjU0IDAuOTIgOwotICAgIEVORAotICBFTkQgQjEKLSAgUElOIEExCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjQ2IDAuNjU1IDAuNTQgMC45MiA7Ci0gICAgICAgIFJFQ1QgMC40MiAwLjY1NSAxLjExIDAuNzE1IDsKLSAgICBFTkQKLSAgRU5EIEExCi0gIFBJTiBBMAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4yNiAwLjQ5NSAwLjMyIDAuNzI1IDsKLSAgICAgICAgUkVDVCAwLjI2IDAuNDk1IDEuMzIgMC41NTUgOwotICAgICAgICBSRUNUIDEuMjYgMC40OTUgMS4zMiAwLjczNSA7Ci0gICAgICAgIFJFQ1QgMS4yNiAwLjYgMS4zNCAwLjczNSA7Ci0gICAgRU5ECi0gIEVORCBBMAotICBQSU4gQjAKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDEuNjggMC40OTUgMS43NCAwLjczNSA7Ci0gICAgICAgIFJFQ1QgMS42NiAwLjYgMS43NCAwLjczNSA7Ci0gICAgICAgIFJFQ1QgMS42OCAwLjQ5NSAyLjcgMC41NTUgOwotICAgICAgICBSRUNUIDIuNjQgMC40OTUgMi43IDAuNzM1IDsKLSAgICBFTkQKLSAgRU5EIEIwCi0gIFBJTiBWREQKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgUE9XRVIgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWREQgVkREISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAxLjY1IDMgMS43MSA7Ci0gICAgRU5ECi0gIEVORCBWREQKLSAgUElOIFZTUwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBHUk9VTkQgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWU1MgVlNTISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAwLjAwIDMgMC4wNiA7Ci0gICAgRU5ECi0gIEVORCBWU1MKLUVORCBBT0kzM1gyCi0KLU1BQ1JPIEFEREZYMQotICBDTEFTUyBDT1JFIDsKLSAgT1JJR0lOIDAgMCA7Ci0gIEZPUkVJR04gQURERlgxIDAgMCA7Ci0gIFNJWkUgNCBCWSAxLjcxIDsKLSAgU1lNTUVUUlkgWCBZIDsKLSAgU0lURSBDb3JlU2l0ZSA7Ci0gIFBJTiBTCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBPVVRQVVQgOwotICAgIEFOVEVOTkFESUZGQVJFQSAxLjcyODUgIExBWUVSIE1ldGFsMSA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAzLjggMSAzLjg2IDEuMzkgOwotICAgICAgICBSRUNUIDMuODYgMC40MSAzLjkyIDEuMDYgOwotICAgICAgICBSRUNUIDMuODYgMC40MSAzLjk0IDAuNTQgOwotICAgIEVORAotICBFTkQgUwotICBQSU4gQ08KLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIE9VVFBVVCA7Ci0gICAgQU5URU5OQURJRkZBUkVBIDEuNzI4NSAgTEFZRVIgTWV0YWwxIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDggMC41OCAwLjE0IDAuOTYgOwotICAgICAgICBSRUNUIDAuMDYgMC43OSAwLjE0IDAuOTYgOwotICAgICAgICBSRUNUIDAuMDYgMC45IDAuNDA1IDAuOTYgOwotICAgICAgICBSRUNUIDAuMzQ1IDAuNSAwLjQwNSAwLjY0IDsKLSAgICAgICAgUkVDVCAwLjA4IDAuNTggMC40MDUgMC42NCA7Ci0gICAgICAgIFJFQ1QgMC4zNDUgMC45IDAuNDA1IDEuMjkgOwotICAgIEVORAotICBFTkQgQ08KLSAgUElOIEIKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDEuMTE1IDAuODA1IDEuMTc1IDAuOTI1IDsKLSAgICAgICAgUkVDVCAxLjgzNSAwLjg2NSAxLjk2NSAxLjA4NSA7Ci0gICAgICAgIFJFQ1QgMS4xMTUgMC44NjUgMi4wOTUgMC45MjUgOwotICAgICAgICBSRUNUIDIuMDM1IDAuODIgMy4zNiAwLjg4IDsKLSAgICBFTkQKLSAgRU5EIEIKLSAgUElOIEEKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuODkgMC42NyAxLjAxIDAuNzMgOwotICAgICAgICBSRUNUIDAuOTUgMC42NDUgMS4zMzUgMC43MDUgOwotICAgICAgICBSRUNUIDEuMjc1IDAuNjc1IDEuOTcgMC43MzUgOwotICAgICAgICBSRUNUIDEuOTEgMC42NiAzLjU0IDAuNzIgOwotICAgICAgICBSRUNUIDMuNDYgMC42NiAzLjU0IDAuOTIgOwotICAgIEVORAotICBFTkQgQQotICBQSU4gQ0kKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDEuNTk1IDAuNDM1IDEuNjU1IDAuNTc1IDsKLSAgICAgICAgUkVDVCAxLjU5NSAwLjQzNSAxLjc2NSAwLjU2IDsKLSAgICAgICAgUkVDVCAxLjU5NSAwLjUgMy4xOCAwLjU2IDsKLSAgICBFTkQKLSAgRU5EIENJCi0gIFBJTiBWREQKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgUE9XRVIgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWREQgVkREISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAxLjY1IDQgMS43MSA7Ci0gICAgRU5ECi0gIEVORCBWREQKLSAgUElOIFZTUwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBHUk9VTkQgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWU1MgVlNTISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAwLjAwIDQgMC4wNiA7Ci0gICAgRU5ECi0gIEVORCBWU1MKLUVORCBBRERGWDEKLQotTUFDUk8gU0RGRkhRWDgKLSAgQ0xBU1MgQ09SRSA7Ci0gIE9SSUdJTiAwIDAgOwotICBGT1JFSUdOIFNERkZIUVg4IDAgMCA7Ci0gIFNJWkUgNi42IEJZIDEuNzEgOwotICBTWU1NRVRSWSBYIFkgOwotICBTSVRFIENvcmVTaXRlIDsKLSAgUElOIFNFCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCA1LjUzNSAwLjY5NSA1LjU5NSAwLjk2NSA7Ci0gICAgICAgIFJFQ1QgNS41MzUgMC42OTUgNS42ODUgMC43NTUgOwotICAgICAgICBSRUNUIDUuNjI1IDAuNjQ1IDYuNCAwLjcwNSA7Ci0gICAgICAgIFJFQ1QgNi4yMzUgMC42MjUgNi40IDAuNzA1IDsKLSAgICAgICAgUkVDVCA2LjM0IDAuNjI1IDYuNCAwLjc0NSA7Ci0gICAgRU5ECi0gIEVORCBTRQotICBQSU4gU0kKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDUuODY1IDAuODA1IDYuMTY1IDEuMDEgOwotICAgICAgICBSRUNUIDUuODY1IDAuODA1IDYuMjQgMC44ODUgOwotICAgIEVORAotICBFTkQgU0kKLSAgUElOIEQKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDUuMDYgMC42NSA1LjE0IDAuOTIgOwotICAgICAgICBSRUNUIDUuMDYgMC43OSA1LjI3NSAwLjkyIDsKLSAgICAgICAgUkVDVCA1LjE5NSAwLjc5IDUuMjc1IDEuMDE1IDsKLSAgICBFTkQKLSAgRU5EIEQKLSAgUElOIENLCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAyLjcyIDAuNTkgMi44MyAwLjg5NSA7Ci0gICAgICAgIFJFQ1QgMi41NTUgMC44MTUgMi44MyAwLjg5NSA7Ci0gICAgRU5ECi0gIEVORCBDSwotICBQSU4gUQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gT1VUUFVUIDsKLSAgICBBTlRFTk5BRElGRkFSRUEgMS43Mjg1ICBMQVlFUiBNZXRhbDEgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wNyAwLjU0IDAuMTMgMS4zNDUgOwotICAgICAgICBSRUNUIDAuMDcgMC41NCAwLjE0IDAuNzMgOwotICAgICAgICBSRUNUIDAuMDYgMC42IDAuMTQgMC43MyA7Ci0gICAgICAgIFJFQ1QgMC40OCAwLjU0IDAuNTQgMS4zNDUgOwotICAgICAgICBSRUNUIDAuMDYgMC42NyAwLjk1IDAuNzMgOwotICAgICAgICBSRUNUIDAuODkgMC41NCAwLjk1IDEuMzQ1IDsKLSAgICAgICAgUkVDVCAwLjg5IDAuNzQgMS4zMTUgMC44IDsKLSAgICAgICAgUkVDVCAxLjI1NSAwLjU5IDEuMzE1IDAuOTYgOwotICAgICAgICBSRUNUIDEuMyAwLjUzIDEuMzYgMC42NSA7Ci0gICAgICAgIFJFQ1QgMS4zIDAuOSAxLjM2IDEuMzQ1IDsKLSAgICBFTkQKLSAgRU5EIFEKLSAgUElOIFZERAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBQT1dFUiA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZERCBWREQhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDEuNjUgNi42IDEuNzEgOwotICAgIEVORAotICBFTkQgVkRECi0gIFBJTiBWU1MKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgR1JPVU5EIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVlNTIFZTUyEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMC4wMCA2LjYgMC4wNiA7Ci0gICAgRU5ECi0gIEVORCBWU1MKLUVORCBTREZGSFFYOAotCi1NQUNSTyBNREZGSFFYMgotICBDTEFTUyBDT1JFIDsKLSAgT1JJR0lOIDAgMCA7Ci0gIEZPUkVJR04gTURGRkhRWDIgMCAwIDsKLSAgU0laRSA1LjQgQlkgMS43MSA7Ci0gIFNZTU1FVFJZIFggWSA7Ci0gIFNJVEUgQ29yZVNpdGUgOwotICBQSU4gUQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gT1VUUFVUIDsKLSAgICBBTlRFTk5BRElGRkFSRUEgMS43Mjg1ICBMQVlFUiBNZXRhbDEgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4yNiAwLjc5IDAuMzYgMC45MiA7Ci0gICAgICAgIFJFQ1QgMC4zIDAuNTQgMC4zNiAxLjMzNSA7Ci0gICAgRU5ECi0gIEVORCBRCi0gIFBJTiBTMAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgNC4xOTUgMC41IDQuMjU1IDAuODggOwotICAgICAgICBSRUNUIDQuNDQgMC41IDQuNTYgMC42NyA7Ci0gICAgICAgIFJFQ1QgNS4wMjUgMC44MTUgNS4xNjUgMC44NzUgOwotICAgICAgICBSRUNUIDQuMTk1IDAuNSA1LjE0NSAwLjU2IDsKLSAgICAgICAgUkVDVCA1LjA4NSAwLjUgNS4xNDUgMC44OTUgOwotICAgICAgICBSRUNUIDUuMDM1IDAuODE1IDUuMTY1IDAuODk1IDsKLSAgICBFTkQKLSAgRU5EIFMwCi0gIFBJTiBEMQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgNC44NDUgMC42NiA0LjkyNSAwLjk3NSA7Ci0gICAgICAgIFJFQ1QgNC42NiAwLjc4NSA0LjkyNSAwLjk3NSA7Ci0gICAgRU5ECi0gIEVORCBEMQotICBQSU4gRDAKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDMuNjYgMC41IDMuNzQgMC43MyA7Ci0gICAgICAgIFJFQ1QgMy42NiAwLjY0NSAzLjkzNSAwLjczIDsKLSAgICAgICAgUkVDVCAzLjg1NSAwLjY0NSAzLjkzNSAwLjgwNSA7Ci0gICAgRU5ECi0gIEVORCBEMAotICBQSU4gQ0sKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuNDYgMC45NCAwLjU0IDEuMTE1IDsKLSAgICAgICAgUkVDVCAwLjYzNSAwLjg5IDAuODE1IDEuMDIgOwotICAgICAgICBSRUNUIDAuNDYgMC45NCAwLjgxNSAxLjAyIDsKLSAgICBFTkQKLSAgRU5EIENLCi0gIFBJTiBWREQKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgUE9XRVIgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWREQgVkREISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAxLjY1IDUuNCAxLjcxIDsKLSAgICBFTkQKLSAgRU5EIFZERAotICBQSU4gVlNTCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIEdST1VORCA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZTUyBWU1MhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDAuMDAgNS40IDAuMDYgOwotICAgIEVORAotICBFTkQgVlNTCi1FTkQgTURGRkhRWDIKLQotTUFDUk8gTVgzWDQKLSAgQ0xBU1MgQ09SRSA7Ci0gIE9SSUdJTiAwIDAgOwotICBGT1JFSUdOIE1YM1g0IDAgMCA7Ci0gIFNJWkUgMy44IEJZIDEuNzEgOwotICBTWU1NRVRSWSBYIFkgOwotICBTSVRFIENvcmVTaXRlIDsKLSAgUElOIFkKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIE9VVFBVVCA7Ci0gICAgQU5URU5OQURJRkZBUkVBIDEuNzI4NSAgTEFZRVIgTWV0YWwxIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuNDYgMC42IDAuNTc1IDAuNzMgOwotICAgICAgICBSRUNUIDAuNTE1IDAuNTIgMC41NzUgMS40MSA7Ci0gICAgICAgIFJFQ1QgMC44OCAwLjQ0IDAuOTQgMC42NiA7Ci0gICAgICAgIFJFQ1QgMC41MTUgMS4wMiAwLjk4NSAxLjA4IDsKLSAgICAgICAgUkVDVCAwLjQ2IDAuNiAwLjk0IDAuNjYgOwotICAgICAgICBSRUNUIDAuOTI1IDAuMzggMC45ODUgMC41IDsKLSAgICAgICAgUkVDVCAwLjkyNSAxLjAyIDAuOTg1IDEuNDEgOwotICAgIEVORAotICBFTkQgWQotICBQSU4gUzAKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDIuOTggMC45OSAzLjA2IDEuMTEgOwotICAgICAgICBSRUNUIDMuNDYgMC45OCAzLjU0IDEuMTEgOwotICAgICAgICBSRUNUIDIuOTggMS4wMyAzLjU0IDEuMTEgOwotICAgIEVORAotICBFTkQgUzAKLSAgUElOIEEKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDMuMjYgMC42NyAzLjM0IDAuOTMgOwotICAgICAgICBSRUNUIDMuMjIgMC42NyAzLjU0IDAuNzUgOwotICAgIEVORAotICBFTkQgQQotICBQSU4gQgotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMi40NiAwLjQ4NSAyLjU0IDAuOTg1IDsKLSAgICBFTkQKLSAgRU5EIEIKLSAgUElOIFMxCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAyLjI2IDAuNDg1IDIuMzQgMC45ODUgOwotICAgIEVORAotICBFTkQgUzEKLSAgUElOIEMKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDEuMjYgMC43NiAxLjM0IDEuMTkgOwotICAgICAgICBSRUNUIDEuMjYgMC43NiAxLjQxIDAuODQgOwotICAgIEVORAotICBFTkQgQwotICBQSU4gVkRECi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIFBPV0VSIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVkREIFZERCEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMS42NSAzLjggMS43MSA7Ci0gICAgRU5ECi0gIEVORCBWREQKLSAgUElOIFZTUwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBHUk9VTkQgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWU1MgVlNTISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAwLjAwIDMuOCAwLjA2IDsKLSAgICBFTkQKLSAgRU5EIFZTUwotRU5EIE1YM1g0Ci0KLU1BQ1JPIE1YMlgyCi0gIENMQVNTIENPUkUgOwotICBPUklHSU4gMCAwIDsKLSAgRk9SRUlHTiBNWDJYMiAwIDAgOwotICBTSVpFIDEuOCBCWSAxLjcxIDsKLSAgU1lNTUVUUlkgWCBZIDsKLSAgU0lURSBDb3JlU2l0ZSA7Ci0gIFBJTiBZCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBPVVRQVVQgOwotICAgIEFOVEVOTkFESUZGQVJFQSAxLjcyODUgIExBWUVSIE1ldGFsMSA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAxLjQ2NSAwLjM2NSAxLjUyNSAwLjQ4NSA7Ci0gICAgICAgIFJFQ1QgMS40NjUgMS4wNDUgMS41MjUgMS40MzUgOwotICAgICAgICBSRUNUIDEuNSAwLjQyNSAxLjU2IDEuMTA1IDsKLSAgICAgICAgUkVDVCAxLjUgMC42IDEuNzQgMC42NiA7Ci0gICAgICAgIFJFQ1QgMS42NiAwLjYgMS43NCAwLjczIDsKLSAgICBFTkQKLSAgRU5EIFkKLSAgUElOIEIKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDEuMjIgMC44MTUgMS4zIDEuMjE1IDsKLSAgICAgICAgUkVDVCAxLjIyIDAuODE1IDEuNCAwLjg5NSA7Ci0gICAgRU5ECi0gIEVORCBCCi0gIFBJTiBBCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjQ2IDAuNjM1IDAuNTQgMS4wMzUgOwotICAgICAgICBSRUNUIDAuNDQgMC45NTUgMC42MiAxLjAzNSA7Ci0gICAgRU5ECi0gIEVORCBBCi0gIFBJTiBTMAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4yNiAwLjk4IDAuMzQgMS4yMTUgOwotICAgICAgICBSRUNUIDAuNzIgMC45MyAwLjggMS4yMTUgOwotICAgICAgICBSRUNUIDAuMjYgMS4xMzUgMC44IDEuMjE1IDsKLSAgICBFTkQKLSAgRU5EIFMwCi0gIFBJTiBWREQKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgUE9XRVIgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWREQgVkREISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAxLjY1IDEuOCAxLjcxIDsKLSAgICBFTkQKLSAgRU5EIFZERAotICBQSU4gVlNTCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIEdST1VORCA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZTUyBWU1MhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDAuMDAgMS44IDAuMDYgOwotICAgIEVORAotICBFTkQgVlNTCi1FTkQgTVgyWDIKLQotTUFDUk8gTkFORDRCQlg0Ci0gIENMQVNTIENPUkUgOwotICBPUklHSU4gMCAwIDsKLSAgRk9SRUlHTiBOQU5ENEJCWDQgMCAwIDsKLSAgU0laRSA0LjYgQlkgMS43MSA7Ci0gIFNZTU1FVFJZIFggWSA7Ci0gIFNJVEUgQ29yZVNpdGUgOwotICBQSU4gWQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gT1VUUFVUIDsKLSAgICBBTlRFTk5BRElGRkFSRUEgMS43Mjg1ICBMQVlFUiBNZXRhbDEgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMS4yNjUgMS4wMDUgMS4zMjUgMS4zNjUgOwotICAgICAgICBSRUNUIDEuMjY1IDEuMDA1IDEuNTY1IDEuMTQ1IDsKLSAgICAgICAgUkVDVCAxLjY3NSAxLjA4NSAxLjczNSAxLjM2NSA7Ci0gICAgICAgIFJFQ1QgMi4wODUgMS4wODUgMi4xNDUgMS4zNjUgOwotICAgICAgICBSRUNUIDIuNDk1IDEuMDg1IDIuNTU1IDEuMzY1IDsKLSAgICAgICAgUkVDVCAyLjkwNSAxLjA4NSAyLjk2NSAxLjM2NSA7Ci0gICAgICAgIFJFQ1QgMy4zMTUgMS4wODUgMy4zNzUgMS4zNjUgOwotICAgICAgICBSRUNUIDMuNzI1IDEuMDg1IDMuNzg1IDEuMzY1IDsKLSAgICAgICAgUkVDVCAzLjg1NSAwLjQyIDMuOTE1IDEuMTQ1IDsKLSAgICAgICAgUkVDVCAxLjI2NSAxLjA4NSA0LjE5NSAxLjE0NSA7Ci0gICAgICAgIFJFQ1QgNC4xMzUgMS4wODUgNC4xOTUgMS4zNjUgOwotICAgICAgICBSRUNUIDQuMjY1IDAuNDIgNC4zMjUgMC41NiA7Ci0gICAgICAgIFJFQ1QgMy44NTUgMC41IDQuMzI1IDAuNTYgOwotICAgIEVORAotICBFTkQgWQotICBQSU4gRAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMy42NiAwLjUgMy43NCAwLjczIDsKLSAgICAgICAgUkVDVCAzLjY3NSAwLjY1IDMuNzU1IDAuOTg1IDsKLSAgICBFTkQKLSAgRU5EIEQKLSAgUElOIEMKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDIuODQgMC43MDUgMi45MiAwLjk4NSA7Ci0gICAgICAgIFJFQ1QgMi44NCAwLjc0IDMuMTQgMC45ODUgOwotICAgIEVORAotICBFTkQgQwotICBQSU4gQU4KLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuNDYgMC43NiAwLjU0IDEuMjYgOwotICAgIEVORAotICBFTkQgQU4KLSAgUElOIEJOCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjI2IDAuNzYgMC4zNCAxLjI2IDsKLSAgICBFTkQKLSAgRU5EIEJOCi0gIFBJTiBWREQKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgUE9XRVIgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWREQgVkREISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAxLjY1IDQuNiAxLjcxIDsKLSAgICBFTkQKLSAgRU5EIFZERAotICBQSU4gVlNTCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIEdST1VORCA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZTUyBWU1MhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDAuMDAgNC42IDAuMDYgOwotICAgIEVORAotICBFTkQgVlNTCi1FTkQgTkFORDRCQlg0Ci0KLU1BQ1JPIEJNWElYMgotICBDTEFTUyBDT1JFIDsKLSAgT1JJR0lOIDAgMCA7Ci0gIEZPUkVJR04gQk1YSVgyIDAgMCA7Ci0gIFNJWkUgNC40IEJZIDEuNzEgOwotICBTWU1NRVRSWSBYIFkgOwotICBTSVRFIENvcmVTaXRlIDsKLSAgUElOIFBQTgotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gT1VUUFVUIDsKLSAgICBBTlRFTk5BRElGRkFSRUEgMS43Mjg1ICBMQVlFUiBNZXRhbDEgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgNC4wNiAwLjU0IDQuMTQgMS4yOSA7Ci0gICAgRU5ECi0gIEVORCBQUE4KLSAgUElOIFgyCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAzLjY2IDAuNTI1IDMuNzQgMS4wMjUgOwotICAgIEVORAotICBFTkQgWDIKLSAgUElOIE0xCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAxLjc4IDAuODE1IDIuMjggMC44OTUgOwotICAgIEVORAotICBFTkQgTTEKLSAgUElOIEEKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDEuMTY1IDAuODggMS4zMTUgMC45NiA7Ci0gICAgICAgIFJFQ1QgMS4yMzUgMC42NTUgMS40NCAwLjg5NSA7Ci0gICAgRU5ECi0gIEVORCBBCi0gIFBJTiBTCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjQ0NSAwLjk5NSAwLjU2NSAxLjA4NSA7Ci0gICAgICAgIFJFQ1QgMC40MzUgMS4wMDUgMC41NjUgMS4wODUgOwotICAgICAgICBSRUNUIDAuNTA1IDEuMDM1IDAuNjMgMS4wOTUgOwotICAgICAgICBSRUNUIDAuNTcgMS4wMzUgMC42MyAxLjQ0IDsKLSAgICAgICAgUkVDVCAwLjU3IDEuMzggMi4wMDUgMS40NCA7Ci0gICAgRU5ECi0gIEVORCBTCi0gIFBJTiBNMAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4yNSAwLjgxNSAwLjMzIDAuOTM1IDsKLSAgICAgICAgUkVDVCAwLjIzNSAwLjgxNSAwLjc0NSAwLjg5NSA7Ci0gICAgICAgIFJFQ1QgMC42NjUgMC44MTUgMC43NDUgMC45MzUgOwotICAgIEVORAotICBFTkQgTTAKLSAgUElOIFZERAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBQT1dFUiA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZERCBWREQhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDEuNjUgNC40IDEuNzEgOwotICAgIEVORAotICBFTkQgVkRECi0gIFBJTiBWU1MKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgR1JPVU5EIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVlNTIFZTUyEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMC4wMCA0LjQgMC4wNiA7Ci0gICAgRU5ECi0gIEVORCBWU1MKLUVORCBCTVhJWDIKLQotTUFDUk8gQU9JMkJCMVgyCi0gIENMQVNTIENPUkUgOwotICBPUklHSU4gMCAwIDsKLSAgRk9SRUlHTiBBT0kyQkIxWDIgMCAwIDsKLSAgU0laRSAxLjggQlkgMS43MSA7Ci0gIFNZTU1FVFJZIFggWSA7Ci0gIFNJVEUgQ29yZVNpdGUgOwotICBQSU4gWQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gT1VUUFVUIDsKLSAgICBBTlRFTk5BRElGRkFSRUEgMS43Mjg1ICBMQVlFUiBNZXRhbDEgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wNiAwLjYgMC4xNCAwLjczIDsKLSAgICAgICAgUkVDVCAwLjA4IDAuNDUgMC4xNCAxLjEwNSA7Ci0gICAgICAgIFJFQ1QgMC40MyAwLjM3IDAuNDkgMC41MSA7Ci0gICAgICAgIFJFQ1QgMC4wOCAxLjA0NSAwLjY5NSAxLjEwNSA7Ci0gICAgICAgIFJFQ1QgMC42MzUgMS4wNDUgMC42OTUgMS40MyA7Ci0gICAgICAgIFJFQ1QgMC44NCAwLjM3IDAuOSAwLjUxIDsKLSAgICAgICAgUkVDVCAwLjA4IDAuNDUgMC45IDAuNTEgOwotICAgIEVORAotICBFTkQgWQotICBQSU4gQjAKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuNDYgMC43MDUgMC41NCAwLjkyIDsKLSAgICAgICAgUkVDVCAwLjM2IDAuNzA1IDAuOTYgMC43ODUgOwotICAgIEVORAotICBFTkQgQjAKLSAgUElOIEEwTgotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMS4wNiAwLjQ1IDEuMTQgMC43MyA7Ci0gICAgICAgIFJFQ1QgMS4xMiAwLjYgMS4yIDAuODkgOwotICAgIEVORAotICBFTkQgQTBOCi0gIFBJTiBBMU4KLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDEuNDYgMC41NjUgMS41NCAxLjA2NSA7Ci0gICAgRU5ECi0gIEVORCBBMU4KLSAgUElOIFZERAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBQT1dFUiA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZERCBWREQhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDEuNjUgMS44IDEuNzEgOwotICAgIEVORAotICBFTkQgVkRECi0gIFBJTiBWU1MKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgR1JPVU5EIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVlNTIFZTUyEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMC4wMCAxLjggMC4wNiA7Ci0gICAgRU5ECi0gIEVORCBWU1MKLUVORCBBT0kyQkIxWDIKLQotTUFDUk8gVEJVRlg2Ci0gIENMQVNTIENPUkUgOwotICBPUklHSU4gMCAwIDsKLSAgRk9SRUlHTiBUQlVGWDYgMCAwIDsKLSAgU0laRSA0LjYgQlkgMS43MSA7Ci0gIFNZTU1FVFJZIFggWSA7Ci0gIFNJVEUgQ29yZVNpdGUgOwotICBQSU4gWQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gT1VUUFVUIDsKLSAgICBBTlRFTk5BRElGRkFSRUEgMS43Mjg1ICBMQVlFUiBNZXRhbDEgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMy4yNSAwLjk5IDMuMzEgMS4yOSA7Ci0gICAgICAgIFJFQ1QgMy4zIDAuNDUgMy4zNiAwLjY0IDsKLSAgICAgICAgUkVDVCAzLjMgMC41OCAzLjUyIDAuNjQgOwotICAgICAgICBSRUNUIDMuNDYgMC41OCAzLjUyIDEuMDUgOwotICAgICAgICBSRUNUIDMuMjUgMC45OSAzLjUyIDEuMDUgOwotICAgICAgICBSRUNUIDMuNDYgMC43OSAzLjU0IDAuOTYgOwotICAgICAgICBSRUNUIDMuNjYgMC45IDMuNzIgMS4yOSA7Ci0gICAgICAgIFJFQ1QgMy43MSAwLjQ1IDMuNzcgMC41OSA7Ci0gICAgICAgIFJFQ1QgMy40NiAwLjkgNC4xMyAwLjk2IDsKLSAgICAgICAgUkVDVCA0LjA3IDAuNTMgNC4xMyAxLjI5IDsKLSAgICAgICAgUkVDVCA0LjEyIDAuNDUgNC4xOCAwLjU5IDsKLSAgICAgICAgUkVDVCAzLjcxIDAuNTMgNC4xOCAwLjU5IDsKLSAgICBFTkQKLSAgRU5EIFkKLSAgUElOIEEKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuNjM1IDAuODE1IDAuNzY1IDAuOTIgOwotICAgICAgICBSRUNUIDEuMzMgMC4yNyAxLjM5IDAuOTIgOwotICAgICAgICBSRUNUIDAuNTkgMC44NiAxLjM5IDAuOTIgOwotICAgICAgICBSRUNUIDEuMzMgMC4yNyAyLjg5IDAuMzMgOwotICAgICAgICBSRUNUIDIuODMgMC4yNjUgMy4wMyAwLjMyNSA7Ci0gICAgRU5ECi0gIEVORCBBCi0gIFBJTiBPRQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4yNiAwLjY1NSAwLjM0IDAuOTIgOwotICAgICAgICBSRUNUIDAuMjIgMC44NiAwLjM0IDAuOTIgOwotICAgICAgICBSRUNUIDAuODY1IDAuNjU1IDAuOTg1IDAuNzU1IDsKLSAgICAgICAgUkVDVCAwLjI2IDAuNjU1IDEuMjMgMC43MTUgOwotICAgICAgICBSRUNUIDEuMTcgMC42NCAxLjIzIDAuNzYgOwotICAgIEVORAotICBFTkQgT0UKLSAgUElOIFZERAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBQT1dFUiA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZERCBWREQhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDEuNjUgNC42IDEuNzEgOwotICAgIEVORAotICBFTkQgVkRECi0gIFBJTiBWU1MKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgR1JPVU5EIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVlNTIFZTUyEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMC4wMCA0LjYgMC4wNiA7Ci0gICAgRU5ECi0gIEVORCBWU1MKLUVORCBUQlVGWDYKLQotTUFDUk8gVEJVRlgxMgotICBDTEFTUyBDT1JFIDsKLSAgT1JJR0lOIDAgMCA7Ci0gIEZPUkVJR04gVEJVRlgxMiAwIDAgOwotICBTSVpFIDYuNiBCWSAxLjcxIDsKLSAgU1lNTUVUUlkgWCBZIDsKLSAgU0lURSBDb3JlU2l0ZSA7Ci0gIFBJTiBZCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBPVVRQVVQgOwotICAgIEFOVEVOTkFESUZGQVJFQSAxLjcyODUgIExBWUVSIE1ldGFsMSA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCA0LjEgMC40MTUgNC4xNiAwLjU1NSA7Ci0gICAgICAgIFJFQ1QgNC4xIDAuNDk1IDQuMzIgMC41NTUgOwotICAgICAgICBSRUNUIDQuMjE1IDEuMDIgNC4yNzUgMS40MDUgOwotICAgICAgICBSRUNUIDQuMjYgMC40OTUgNC4zMiAxLjA4IDsKLSAgICAgICAgUkVDVCA0LjI2IDAuNzkgNC4zNCAwLjkyIDsKLSAgICAgICAgUkVDVCA0LjUxIDAuNDE1IDQuNTcgMC41NTUgOwotICAgICAgICBSRUNUIDQuNjI1IDAuNDk1IDQuNjg1IDEuNDA1IDsKLSAgICAgICAgUkVDVCA0LjkyIDAuNDE1IDQuOTggMC41NTUgOwotICAgICAgICBSRUNUIDQuNTEgMC40OTUgNC45OCAwLjU1NSA7Ci0gICAgICAgIFJFQ1QgNS4wMzUgMC44NiA1LjA5NSAxLjQwNSA7Ci0gICAgICAgIFJFQ1QgNS4zMyAwLjQxNSA1LjM5IDAuNTU1IDsKLSAgICAgICAgUkVDVCA1LjQ0NSAwLjg2IDUuNTA1IDEuNDA1IDsKLSAgICAgICAgUkVDVCA1Ljc0IDAuNDE1IDUuOCAwLjU1NSA7Ci0gICAgICAgIFJFQ1QgNS44NTUgMC40OTUgNS45MTUgMS40MDUgOwotICAgICAgICBSRUNUIDYuMTUgMC40MTUgNi4yMSAwLjU1NSA7Ci0gICAgICAgIFJFQ1QgNS4zMyAwLjQ5NSA2LjIxIDAuNTU1IDsKLSAgICAgICAgUkVDVCA0LjI2IDAuODYgNi4zMjUgMC45MiA7Ci0gICAgICAgIFJFQ1QgNi4yNjUgMC44NiA2LjMyNSAxLjQwNSA7Ci0gICAgRU5ECi0gIEVORCBZCi0gIFBJTiBBCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjYzNSAwLjgwNSAwLjc2NSAwLjg5NSA7Ci0gICAgICAgIFJFQ1QgMC45IDAuMjk1IDAuOTYgMC44NjUgOwotICAgICAgICBSRUNUIDAuNTQgMC44MDUgMC45NiAwLjg2NSA7Ci0gICAgICAgIFJFQ1QgMC45IDAuMjk1IDEuMzQgMC4zNTUgOwotICAgICAgICBSRUNUIDEuMjggMC4yOTUgMS4zNCAwLjY3NSA7Ci0gICAgICAgIFJFQ1QgMS42NiAwLjI5IDEuNzIgMC42NzUgOwotICAgICAgICBSRUNUIDEuMjggMC42MTUgMS43MiAwLjY3NSA7Ci0gICAgICAgIFJFQ1QgMS42NiAwLjI5IDIuMTI1IDAuMzUgOwotICAgICAgICBSRUNUIDIuMDY1IDAuMjkgMi4xMjUgMC43MDUgOwotICAgICAgICBSRUNUIDIuMDY1IDAuNjQ1IDIuNDIgMC43MDUgOwotICAgICAgICBSRUNUIDIuMzYgMC42NDUgMi40MiAwLjg2NSA7Ci0gICAgICAgIFJFQ1QgMy43MiAwLjc0NSAzLjc4IDAuODY1IDsKLSAgICAgICAgUkVDVCAyLjM2IDAuODA1IDMuNzggMC44NjUgOwotICAgIEVORAotICBFTkQgQQotICBQSU4gT0UKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMzYgMC42MjUgMC40NCAwLjc4IDsKLSAgICAgICAgUkVDVCAwLjcyIDAuNTg1IDAuOCAwLjcwNSA7Ci0gICAgICAgIFJFQ1QgMC4zNiAwLjYyNSAwLjggMC43MDUgOwotICAgIEVORAotICBFTkQgT0UKLSAgUElOIFZERAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBQT1dFUiA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZERCBWREQhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDEuNjUgNi42IDEuNzEgOwotICAgIEVORAotICBFTkQgVkRECi0gIFBJTiBWU1MKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgR1JPVU5EIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVlNTIFZTUyEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMC4wMCA2LjYgMC4wNiA7Ci0gICAgRU5ECi0gIEVORCBWU1MKLUVORCBUQlVGWDEyCi0KLU1BQ1JPIE5BTkQzWDEKLSAgQ0xBU1MgQ09SRSA7Ci0gIE9SSUdJTiAwIDAgOwotICBGT1JFSUdOIE5BTkQzWDEgMCAwIDsKLSAgU0laRSAxIEJZIDEuNzEgOwotICBTWU1NRVRSWSBYIFkgOwotICBTSVRFIENvcmVTaXRlIDsKLSAgUElOIFkKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIE9VVFBVVCA7Ci0gICAgQU5URU5OQURJRkZBUkVBIDEuNzI4NSAgTEFZRVIgTWV0YWwxIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuNDI1IDEuMiAwLjQ4NSAxLjQ4IDsKLSAgICAgICAgUkVDVCAwLjc0NSAwLjM4IDAuODA1IDAuNSA7Ci0gICAgICAgIFJFQ1QgMC43NDUgMC40NCAwLjkyIDAuNSA7Ci0gICAgICAgIFJFQ1QgMC40MjUgMS4yIDAuOTQgMS4yNiA7Ci0gICAgICAgIFJFQ1QgMC44NiAwLjQ0IDAuOTIgMS40OSA7Ci0gICAgICAgIFJFQ1QgMC44NiAxLjIgMC45NCAxLjQ5IDsKLSAgICBFTkQKLSAgRU5EIFkKLSAgUElOIEMKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuNjYgMC42IDAuNzQgMS4xIDsKLSAgICBFTkQKLSAgRU5EIEMKLSAgUElOIEEKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMjYgMC42IDAuMzQgMS4xIDsKLSAgICBFTkQKLSAgRU5EIEEKLSAgUElOIEIKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuNDYgMC40MSAwLjU0IDAuNTQgOwotICAgICAgICBSRUNUIDAuNDggMC40OCAwLjU2IDAuODkgOwotICAgIEVORAotICBFTkQgQgotICBQSU4gVkRECi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIFBPV0VSIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVkREIFZERCEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMS42NSAxIDEuNzEgOwotICAgIEVORAotICBFTkQgVkRECi0gIFBJTiBWU1MKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgR1JPVU5EIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVlNTIFZTUyEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMC4wMCAxIDAuMDYgOwotICAgIEVORAotICBFTkQgVlNTCi1FTkQgTkFORDNYMQotCi1NQUNSTyBERkZTUkhRWDIKLSAgQ0xBU1MgQ09SRSA7Ci0gIE9SSUdJTiAwIDAgOwotICBGT1JFSUdOIERGRlNSSFFYMiAwIDAgOwotICBTSVpFIDYuNiBCWSAxLjcxIDsKLSAgU1lNTUVUUlkgWCBZIDsKLSAgU0lURSBDb3JlU2l0ZSA7Ci0gIFBJTiBRCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBPVVRQVVQgOwotICAgIEFOVEVOTkFESUZGQVJFQSAxLjcyODUgIExBWUVSIE1ldGFsMSA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjQxNSAwLjU0IDAuNDc1IDEuMyA7Ci0gICAgICAgIFJFQ1QgMC40MTUgMS4xOTUgMC41NjUgMS4yNzUgOwotICAgIEVORAotICBFTkQgUQotICBQSU4gQ0sKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDYuMjYgMC42IDYuMzQgMS4xIDsKLSAgICBFTkQKLSAgRU5EIENLCi0gIFBJTiBECi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCA1LjYzNSAwLjYyNSA1LjcxNSAwLjg1IDsKLSAgICAgICAgUkVDVCA1LjQxIDAuNzcgNS43MTUgMC44NSA7Ci0gICAgICAgIFJFQ1QgNS42MzUgMC42MjUgNS43NjUgMC43MDUgOwotICAgIEVORAotICBFTkQgRAotICBQSU4gU04KLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDEuNjM1IDEuMDA1IDEuNzY1IDEuMDg1IDsKLSAgICAgICAgUkVDVCAxLjcgMC44MyAxLjc2IDEuMDg1IDsKLSAgICAgICAgUkVDVCAxLjcwNSAxLjAwNSAxLjc2NSAxLjI4IDsKLSAgICAgICAgUkVDVCAxLjcwNSAxLjIyIDIuMDg1IDEuMjggOwotICAgICAgICBSRUNUIDIuMDI1IDEuMiAyLjU5IDEuMjYgOwotICAgICAgICBSRUNUIDIuNTMgMS4yIDIuNTkgMS4zNCA7Ci0gICAgICAgIFJFQ1QgMy41NDUgMS4yIDMuNjA1IDEuMzQgOwotICAgICAgICBSRUNUIDIuNTMgMS4yOCAzLjYwNSAxLjM0IDsKLSAgICAgICAgUkVDVCAzLjU0NSAxLjIgMy45ODUgMS4yNiA7Ci0gICAgICAgIFJFQ1QgMy45MjUgMS4yIDMuOTg1IDEuNDUgOwotICAgICAgICBSRUNUIDMuOTI1IDEuMzkgNC4zMjUgMS40NSA7Ci0gICAgRU5ECi0gIEVORCBTTgotICBQSU4gUk4KLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDEuMjYgMC44MyAxLjM0IDEuMTM1IDsKLSAgICAgICAgUkVDVCAxLjI2IDAuODMgMS41MzUgMC45MSA7Ci0gICAgRU5ECi0gIEVORCBSTgotICBQSU4gVkRECi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIFBPV0VSIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVkREIFZERCEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMS42NSA2LjYgMS43MSA7Ci0gICAgRU5ECi0gIEVORCBWREQKLSAgUElOIFZTUwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBHUk9VTkQgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWU1MgVlNTISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAwLjAwIDYuNiAwLjA2IDsKLSAgICBFTkQKLSAgRU5EIFZTUwotRU5EIERGRlNSSFFYMgotCi1NQUNSTyBOQU5ENEJCWDEKLSAgQ0xBU1MgQ09SRSA7Ci0gIE9SSUdJTiAwIDAgOwotICBGT1JFSUdOIE5BTkQ0QkJYMSAwIDAgOwotICBTSVpFIDIgQlkgMS43MSA7Ci0gIFNZTU1FVFJZIFggWSA7Ci0gIFNJVEUgQ29yZVNpdGUgOwotICBQSU4gWQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gT1VUUFVUIDsKLSAgICBBTlRFTk5BRElGRkFSRUEgMS43Mjg1ICBMQVlFUiBNZXRhbDEgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC44NSAxLjIgMC45MSAxLjQ4IDsKLSAgICAgICAgUkVDVCAxLjI2IDAuOTggMS4zNCAxLjI2IDsKLSAgICAgICAgUkVDVCAwLjg1IDEuMiAxLjM0IDEuMjYgOwotICAgICAgICBSRUNUIDAuNjE1IDAuMzA1IDEuMzQ1IDAuMzY1IDsKLSAgICAgICAgUkVDVCAxLjI4IDAuOTggMS4zNCAxLjQ4IDsKLSAgICAgICAgUkVDVCAxLjI4NSAwLjMwNSAxLjM0NSAxLjA4NSA7Ci0gICAgRU5ECi0gIEVORCBZCi0gIFBJTiBECi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjQ4NSAwLjYyNSAwLjU2NSAwLjkwNSA7Ci0gICAgICAgIFJFQ1QgMC40MzUgMC44MTUgMC41NjUgMC45MDUgOwotICAgICAgICBSRUNUIDAuNDg1IDAuNjI1IDAuNzM1IDAuNzA1IDsKLSAgICBFTkQKLSAgRU5EIEQKLSAgUElOIEMKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuODM1IDAuNjI1IDAuOTE1IDEuMSA7Ci0gICAgICAgIFJFQ1QgMC44MzUgMC43OSAwLjk0IDEuMSA7Ci0gICAgRU5ECi0gIEVORCBDCi0gIFBJTiBBTgotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMS42NzUgMC43NzUgMS43NjUgMC44OTUgOwotICAgICAgICBSRUNUIDEuNjM1IDAuODE1IDEuNzY1IDAuODk1IDsKLSAgICAgICAgUkVDVCAxLjY4NSAwLjc3NSAxLjc2NSAxLjIyNSA7Ci0gICAgRU5ECi0gIEVORCBBTgotICBQSU4gQk4KLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDMgMC42IDAuMTQgMC43MyA7Ci0gICAgICAgIFJFQ1QgMC4wNiAwLjYgMC4xNCAxLjAzNSA7Ci0gICAgICAgIFJFQ1QgMC4wNiAwLjg4IDAuMTc1IDEuMDM1IDsKLSAgICBFTkQKLSAgRU5EIEJOCi0gIFBJTiBWREQKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgUE9XRVIgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWREQgVkREISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAxLjY1IDIgMS43MSA7Ci0gICAgRU5ECi0gIEVORCBWREQKLSAgUElOIFZTUwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBHUk9VTkQgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWU1MgVlNTISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAwLjAwIDIgMC4wNiA7Ci0gICAgRU5ECi0gIEVORCBWU1MKLUVORCBOQU5ENEJCWDEKLQotTUFDUk8gREZGSFFYMQotICBDTEFTUyBDT1JFIDsKLSAgT1JJR0lOIDAgMCA7Ci0gIEZPUkVJR04gREZGSFFYMSAwIDAgOwotICBTSVpFIDMuNiBCWSAxLjcxIDsKLSAgU1lNTUVUUlkgWCBZIDsKLSAgU0lURSBDb3JlU2l0ZSA7Ci0gIFBJTiBRCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBPVVRQVVQgOwotICAgIEFOVEVOTkFESUZGQVJFQSAxLjcyODUgIExBWUVSIE1ldGFsMSA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjA2IDAuNiAwLjE3NSAwLjczIDsKLSAgICAgICAgUkVDVCAwLjExNSAwLjUyIDAuMTc1IDEuNDggOwotICAgIEVORAotICBFTkQgUQotICBQSU4gRAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMy4xMSAwLjczNSAzLjM3IDEuMDU1IDsKLSAgICBFTkQKLSAgRU5EIEQKLSAgUElOIENLCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjQ2IDAuNzYgMC41NCAxLjI2IDsKLSAgICBFTkQKLSAgRU5EIENLCi0gIFBJTiBWREQKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgUE9XRVIgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWREQgVkREISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAxLjY1IDMuNiAxLjcxIDsKLSAgICBFTkQKLSAgRU5EIFZERAotICBQSU4gVlNTCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIEdST1VORCA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZTUyBWU1MhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDAuMDAgMy42IDAuMDYgOwotICAgIEVORAotICBFTkQgVlNTCi1FTkQgREZGSFFYMQotCi1NQUNSTyBTRURGRlRSWEwKLSAgQ0xBU1MgQ09SRSA7Ci0gIE9SSUdJTiAwIDAgOwotICBGT1JFSUdOIFNFREZGVFJYTCAwIDAgOwotICBTSVpFIDggQlkgMS43MSA7Ci0gIFNZTU1FVFJZIFggWSA7Ci0gIFNJVEUgQ29yZVNpdGUgOwotICBQSU4gUQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gT1VUUFVUIDsKLSAgICBBTlRFTk5BRElGRkFSRUEgMS43Mjg1ICBMQVlFUiBNZXRhbDEgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgNS4zNzUgMC43NDUgNS40NTUgMS4wNCA7Ci0gICAgICAgIFJFQ1QgNS40NiAwLjM5IDUuNTQgMC44MjUgOwotICAgICAgICBSRUNUIDUuMzc1IDAuNzQ1IDUuNTQgMC44MjUgOwotICAgIEVORAotICBFTkQgUQotICBQSU4gUU4KLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIE9VVFBVVCA7Ci0gICAgQU5URU5OQURJRkZBUkVBIDEuNzI4NSAgTEFZRVIgTWV0YWwxIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDYgMC40MSAwLjE0IDEuMDIgOwotICAgICAgICBSRUNUIDAuMDYgMC40MSAwLjE2NSAwLjYzNSA7Ci0gICAgRU5ECi0gIEVORCBRTgotICBQSU4gRAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgNy42NiAwLjk4IDcuNzQgMS4yMTUgOwotICAgICAgICBSRUNUIDcuNjggMC43MzUgNy43NiAxLjA2IDsKLSAgICBFTkQKLSAgRU5EIEQKLSAgUElOIEUKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDcuMDM1IDAuNzcgNy4xNjUgMC44OTUgOwotICAgICAgICBSRUNUIDYuOTQgMC43NyA3LjM5NSAwLjg1IDsKLSAgICBFTkQKLSAgRU5EIEUKLSAgUElOIFJOCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCA1Ljg2IDAuOTM1IDUuOTQgMS4yNSA7Ci0gICAgICAgIFJFQ1QgNS44MDUgMC45MzUgNi4wNyAxLjAxNSA7Ci0gICAgRU5ECi0gIEVORCBSTgotICBQSU4gU0kKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDQuMTc1IDAuNzQ1IDQuMzc1IDAuOTQ1IDsKLSAgICBFTkQKLSAgRU5EIFNJCi0gIFBJTiBTRQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMy44MzUgMC42MjUgNC4wNzUgMC43MDUgOwotICAgICAgICBSRUNUIDQuMDE1IDAuNTg1IDQuNzU1IDAuNjQ1IDsKLSAgICAgICAgUkVDVCA0LjY5NSAwLjU4NSA0Ljc1NSAwLjcwNSA7Ci0gICAgRU5ECi0gIEVORCBTRQotICBQSU4gQ0sKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDMuMjIgMC43MzUgMy4zIDEuMTIgOwotICAgICAgICBSRUNUIDMuMjIgMC43NCAzLjQxNSAwLjg5NSA7Ci0gICAgRU5ECi0gIEVORCBDSwotICBQSU4gVkRECi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIFBPV0VSIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVkREIFZERCEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMS42NSA4IDEuNzEgOwotICAgIEVORAotICBFTkQgVkRECi0gIFBJTiBWU1MKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgR1JPVU5EIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVlNTIFZTUyEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMC4wMCA4IDAuMDYgOwotICAgIEVORAotICBFTkQgVlNTCi1FTkQgU0VERkZUUlhMCi0KLU1BQ1JPIFRMQVROVFNDQVg2Ci0gIENMQVNTIENPUkUgOwotICBPUklHSU4gMCAwIDsKLSAgRk9SRUlHTiBUTEFUTlRTQ0FYNiAwIDAgOwotICBTSVpFIDUgQlkgMS43MSA7Ci0gIFNZTU1FVFJZIFggWSA7Ci0gIFNJVEUgQ29yZVNpdGUgOwotICBQSU4gRUNLCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBPVVRQVVQgOwotICAgIEFOVEVOTkFESUZGQVJFQSAxLjcyODUgIExBWUVSIE1ldGFsMSA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAzLjg2IDAuMzUgMy45MiAxLjM3IDsKLSAgICAgICAgUkVDVCAzLjg2IDAuNzYgMy45NCAwLjkyIDsKLSAgICAgICAgUkVDVCA0LjI3IDAuMzUgNC4zMyAxLjM3IDsKLSAgICAgICAgUkVDVCAzLjg2IDAuNzYgNC43NCAwLjgyIDsKLSAgICAgICAgUkVDVCA0LjYzNSAwLjYgNC42OTUgMC44MiA7Ci0gICAgICAgIFJFQ1QgNC42OCAwLjM1IDQuNzQgMC42NiA7Ci0gICAgICAgIFJFQ1QgNC42OCAwLjc2IDQuNzQgMS4zNyA7Ci0gICAgRU5ECi0gIEVORCBFQ0sKLSAgUElOIENLCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjY2IDAuNDUgMC43NCAwLjk1IDsKLSAgICBFTkQKLSAgRU5EIENLCi0gIFBJTiBTRQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC40NiAwLjQ1IDAuNTQgMC45NSA7Ci0gICAgRU5ECi0gIEVORCBTRQotICBQSU4gRQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wOCAwLjQ4IDAuMiAwLjg5NSA7Ci0gICAgICAgIFJFQ1QgMC4wMzUgMC44MTUgMC4yIDAuODk1IDsKLSAgICBFTkQKLSAgRU5EIEUKLSAgUElOIFZERAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBQT1dFUiA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZERCBWREQhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDEuNjUgNSAxLjcxIDsKLSAgICBFTkQKLSAgRU5EIFZERAotICBQSU4gVlNTCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIEdST1VORCA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZTUyBWU1MhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDAuMDAgNSAwLjA2IDsKLSAgICBFTkQKLSAgRU5EIFZTUwotRU5EIFRMQVROVFNDQVg2Ci0KLU1BQ1JPIFNERkZSSFFYNAotICBDTEFTUyBDT1JFIDsKLSAgT1JJR0lOIDAgMCA7Ci0gIEZPUkVJR04gU0RGRlJIUVg0IDAgMCA7Ci0gIFNJWkUgNy4yIEJZIDEuNzEgOwotICBTWU1NRVRSWSBYIFkgOwotICBTSVRFIENvcmVTaXRlIDsKLSAgUElOIFNFCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCA2LjE4IDAuNDk1IDYuMyAwLjY2NSA7Ci0gICAgICAgIFJFQ1QgNi4xOCAwLjQ5NSA2Ljg5NSAwLjU1NSA7Ci0gICAgICAgIFJFQ1QgNi44MzUgMC40OTUgNi44OTUgMC43MDUgOwotICAgICAgICBSRUNUIDYuODM1IDAuNjI1IDYuOTY1IDAuNzA1IDsKLSAgICBFTkQKLSAgRU5EIFNFCi0gIFBJTiBTSQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgNi42NTUgMC42NTUgNi43MzUgMC45NiA7Ci0gICAgICAgIFJFQ1QgNi40NiAwLjc5IDYuNzM1IDAuOTYgOwotICAgIEVORAotICBFTkQgU0kKLSAgUElOIEQKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDUuNTcgMC42MjUgNS44OTUgMC43MDUgOwotICAgICAgICBSRUNUIDUuODE1IDAuNjI1IDUuODk1IDAuODggOwotICAgIEVORAotICBFTkQgRAotICBQSU4gUk4KLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDEuNzE1IDAuMzM1IDEuNzc1IDAuNzU1IDsKLSAgICAgICAgUkVDVCAxLjY2IDAuNiAxLjc3NSAwLjc1NSA7Ci0gICAgICAgIFJFQ1QgMi4yMDUgMC4zMzUgMi4yNjUgMC43NDUgOwotICAgICAgICBSRUNUIDEuNzE1IDAuMzM1IDMuNiAwLjM5NSA7Ci0gICAgICAgIFJFQ1QgMy41NCAwLjMzNSAzLjYgMC45MDUgOwotICAgICAgICBSRUNUIDMuODcgMC43NiAzLjkzIDAuOTA1IDsKLSAgICAgICAgUkVDVCAzLjU0IDAuODQ1IDMuOTMgMC45MDUgOwotICAgIEVORAotICBFTkQgUk4KLSAgUElOIENLCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjI2IDAuNjg1IDAuMzQgMS4xODUgOwotICAgIEVORAotICBFTkQgQ0sKLSAgUElOIFEKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIE9VVFBVVCA7Ci0gICAgQU5URU5OQURJRkZBUkVBIDEuNzI4NSAgTEFZRVIgTWV0YWwxIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuODYgMC41MiAwLjk0IDAuNzMgOwotICAgICAgICBSRUNUIDAuODggMC41MiAwLjk0IDEuMDIgOwotICAgICAgICBSRUNUIDAuNjk1IDAuOTYgMC45NCAxLjAyIDsKLSAgICAgICAgUkVDVCAwLjg2IDAuNiAxLjI4NSAwLjY2IDsKLSAgICAgICAgUkVDVCAxLjIyNSAwLjU1IDEuMjg1IDEuMDIgOwotICAgICAgICBSRUNUIDEuMTY1IDAuOTYgMS4yODUgMS4wMiA7Ci0gICAgICAgIFJFQ1QgMS4yMjUgMC41NSAxLjM2IDAuNjEgOwotICAgIEVORAotICBFTkQgUQotICBQSU4gVkRECi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIFBPV0VSIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVkREIFZERCEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMS42NSA3LjIgMS43MSA7Ci0gICAgRU5ECi0gIEVORCBWREQKLSAgUElOIFZTUwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBHUk9VTkQgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWU1MgVlNTISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAwLjAwIDcuMiAwLjA2IDsKLSAgICBFTkQKLSAgRU5EIFZTUwotRU5EIFNERkZSSFFYNAotCi1NQUNSTyBOQU5EMlhMCi0gIENMQVNTIENPUkUgOwotICBPUklHSU4gMCAwIDsKLSAgRk9SRUlHTiBOQU5EMlhMIDAgMCA7Ci0gIFNJWkUgMC44IEJZIDEuNzEgOwotICBTWU1NRVRSWSBYIFkgOwotICBTSVRFIENvcmVTaXRlIDsKLSAgUElOIFkKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIE9VVFBVVCA7Ci0gICAgQU5URU5OQURJRkZBUkVBIDEuNzI4NSAgTEFZRVIgTWV0YWwxIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuNDYgMC40MSAwLjU0IDAuNTQgOwotICAgICAgICBSRUNUIDAuNDYgMC40OCAwLjcgMC41NCA7Ci0gICAgICAgIFJFQ1QgMC42NCAwLjQ4IDAuNyAxLjIgOwotICAgICAgICBSRUNUIDAuMyAxLjE0IDAuNyAxLjIgOwotICAgIEVORAotICBFTkQgWQotICBQSU4gQQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wNiAwLjc5IDAuMTQgMS4wMiA7Ci0gICAgICAgIFJFQ1QgMC4xOCAwLjY0IDAuMjYgMC45MiA7Ci0gICAgICAgIFJFQ1QgMC4wNiAwLjc5IDAuMjYgMC45MiA7Ci0gICAgRU5ECi0gIEVORCBBCi0gIFBJTiBCCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjM5NSAwLjY0IDAuNTQgMS4wNCA7Ci0gICAgICAgIFJFQ1QgMC4zNiAwLjc5IDAuNTQgMS4wNCA7Ci0gICAgRU5ECi0gIEVORCBCCi0gIFBJTiBWREQKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgUE9XRVIgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWREQgVkREISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAxLjY1IDAuOCAxLjcxIDsKLSAgICBFTkQKLSAgRU5EIFZERAotICBQSU4gVlNTCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIEdST1VORCA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZTUyBWU1MhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDAuMDAgMC44IDAuMDYgOwotICAgIEVORAotICBFTkQgVlNTCi1FTkQgTkFORDJYTAotCi1NQUNSTyBUQlVGWDQKLSAgQ0xBU1MgQ09SRSA7Ci0gIE9SSUdJTiAwIDAgOwotICBGT1JFSUdOIFRCVUZYNCAwIDAgOwotICBTSVpFIDIuOCBCWSAxLjcxIDsKLSAgU1lNTUVUUlkgWCBZIDsKLSAgU0lURSBDb3JlU2l0ZSA7Ci0gIFBJTiBZCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBPVVRQVVQgOwotICAgIEFOVEVOTkFESUZGQVJFQSAxLjcyODUgIExBWUVSIE1ldGFsMSA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAxLjk0NSAwLjQxIDIuMDA1IDAuNTUgOwotICAgICAgICBSRUNUIDIuMDQ1IDEuMDkgMi4xMDUgMS4zMyA7Ci0gICAgICAgIFJFQ1QgMi4wNiAwLjQ5IDIuMTIgMS4xNSA7Ci0gICAgICAgIFJFQ1QgMi4wNiAwLjc5IDIuMTQgMSA7Ci0gICAgICAgIFJFQ1QgMi4zNTUgMC40MSAyLjQxNSAwLjU1IDsKLSAgICAgICAgUkVDVCAxLjk0NSAwLjQ5IDIuNDE1IDAuNTUgOwotICAgICAgICBSRUNUIDIuMDYgMC45NCAyLjUxNSAxIDsKLSAgICAgICAgUkVDVCAyLjQ1NSAwLjk0IDIuNTE1IDEuMzMgOwotICAgIEVORAotICBFTkQgWQotICBQSU4gQQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC44MzUgMC4yOCAwLjg5NSAwLjg5IDsKLSAgICAgICAgUkVDVCAwLjQ0NSAwLjgzIDAuODk1IDAuODkgOwotICAgICAgICBSRUNUIDAuODM1IDAuNjI1IDAuOTY1IDAuNzA1IDsKLSAgICAgICAgUkVDVCAwLjgzNSAwLjI4IDEuNjQgMC4zNCA7Ci0gICAgICAgIFJFQ1QgMS41OCAwLjI4IDEuNjQgMC42NyA7Ci0gICAgICAgIFJFQ1QgMS41MiAwLjYxIDEuNjQgMC42NyA7Ci0gICAgRU5ECi0gIEVORCBBCi0gIFBJTiBPRQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4yNjUgMC42NSAwLjM0NSAwLjc3IDsKLSAgICAgICAgUkVDVCAwLjQ2IDAuNiAwLjU0IDAuNzMgOwotICAgICAgICBSRUNUIDAuMjY1IDAuNjUgMC43MzUgMC43MyA7Ci0gICAgRU5ECi0gIEVORCBPRQotICBQSU4gVkRECi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIFBPV0VSIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVkREIFZERCEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMS42NSAyLjggMS43MSA7Ci0gICAgRU5ECi0gIEVORCBWREQKLSAgUElOIFZTUwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBHUk9VTkQgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWU1MgVlNTISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAwLjAwIDIuOCAwLjA2IDsKLSAgICBFTkQKLSAgRU5EIFZTUwotRU5EIFRCVUZYNAotCi1NQUNSTyBBT0kyQkIyWEwKLSAgQ0xBU1MgQ09SRSA7Ci0gIE9SSUdJTiAwIDAgOwotICBGT1JFSUdOIEFPSTJCQjJYTCAwIDAgOwotICBTSVpFIDIuMiBCWSAxLjcxIDsKLSAgU1lNTUVUUlkgWCBZIDsKLSAgU0lURSBDb3JlU2l0ZSA7Ci0gIFBJTiBCMAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMS44NyAwLjY1NSAxLjk1IDAuOTM1IDsKLSAgICAgICAgUkVDVCAxLjg3IDAuODE1IDIuMTcgMC44OTUgOwotICAgIEVORAotICBFTkQgQjAKLSAgUElOIEIxCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAxLjI0IDAuNjI1IDEuNjEgMC43MDUgOwotICAgICAgICBSRUNUIDEuNTMgMC42MjUgMS42MSAwLjgzNSA7Ci0gICAgRU5ECi0gIEVORCBCMQotICBQSU4gQTBOCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjQzNSAwLjQ2IDAuNTY1IDAuNTQgOwotICAgICAgICBSRUNUIDAuNDc1IDAuNDYgMC41NjUgMC45MSA7Ci0gICAgRU5ECi0gIEVORCBBME4KLSAgUElOIEExTgotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4yNiAwLjY0IDAuMzQgMS4xNCA7Ci0gICAgRU5ECi0gIEVORCBBMU4KLSAgUElOIFkKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIE9VVFBVVCA7Ci0gICAgQU5URU5OQURJRkZBUkVBIDEuNzI4NSAgTEFZRVIgTWV0YWwxIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDEuMDggMC40NjUgMS4xNCAwLjczIDsKLSAgICAgICAgUkVDVCAxLjA2IDAuNiAxLjE0IDAuNzMgOwotICAgICAgICBSRUNUIDEuMDggMC40NjUgMS43NyAwLjUyNSA7Ci0gICAgICAgIFJFQ1QgMS43MSAwLjQ2NSAxLjc3IDEuMDk1IDsKLSAgICAgICAgUkVDVCAxLjcxIDEuMDM1IDEuODMgMS4wOTUgOwotICAgIEVORAotICBFTkQgWQotICBQSU4gVkRECi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIFBPV0VSIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVkREIFZERCEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMS42NSAyLjIgMS43MSA7Ci0gICAgRU5ECi0gIEVORCBWREQKLSAgUElOIFZTUwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBHUk9VTkQgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWU1MgVlNTISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAwLjAwIDIuMiAwLjA2IDsKLSAgICBFTkQKLSAgRU5EIFZTUwotRU5EIEFPSTJCQjJYTAotCi1NQUNSTyBTREZGTlNSWEwKLSAgQ0xBU1MgQ09SRSA7Ci0gIE9SSUdJTiAwIDAgOwotICBGT1JFSUdOIFNERkZOU1JYTCAwIDAgOwotICBTSVpFIDggQlkgMS43MSA7Ci0gIFNZTU1FVFJZIFggWSA7Ci0gIFNJVEUgQ29yZVNpdGUgOwotICBQSU4gUQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gT1VUUFVUIDsKLSAgICBBTlRFTk5BRElGRkFSRUEgMS43Mjg1ICBMQVlFUiBNZXRhbDEgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMS4wMzUgMC40MSAxLjExNSAxLjMgOwotICAgICAgICBSRUNUIDAuODYgMS4xNyAxLjExNSAxLjMgOwotICAgICAgICBSRUNUIDEuMDk1IDAuMzcgMS4xNzUgMC40OSA7Ci0gICAgICAgIFJFQ1QgMC44NiAxLjE4IDEuMTc1IDEuMyA7Ci0gICAgRU5ECi0gIEVORCBRCi0gIFBJTiBRTgotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gT1VUUFVUIDsKLSAgICBBTlRFTk5BRElGRkFSRUEgMS43Mjg1ICBMQVlFUiBNZXRhbDEgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wNiAwLjYgMC4zMjUgMC43MyA7Ci0gICAgICAgIFJFQ1QgMC4yNDUgMC41NCAwLjMyNSAxLjAyIDsKLSAgICBFTkQKLSAgRU5EIFFOCi0gIFBJTiBTRQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgNy4wODUgMC42NjUgNy4xNDUgMS4wNSA7Ci0gICAgICAgIFJFQ1QgNy4wODUgMC42NjUgNy4zMSAwLjc4NSA7Ci0gICAgICAgIFJFQ1QgNy4wODUgMC42NjUgNy43MDUgMC43MjUgOwotICAgICAgICBSRUNUIDcuNjQ1IDAuNjI1IDcuNzA1IDAuNzQ1IDsKLSAgICAgICAgUkVDVCA3LjYzNSAwLjYyNSA3Ljc2NSAwLjcwNSA7Ci0gICAgRU5ECi0gIEVORCBTRQotICBQSU4gU0kKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDcuNDE1IDAuODU1IDcuNzY1IDAuOTM1IDsKLSAgICAgICAgUkVDVCA3LjYzNSAwLjg1NSA3Ljc2NSAxLjA4NSA7Ci0gICAgRU5ECi0gIEVORCBTSQotICBQSU4gRAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgNi42MzUgMC44MTUgNi43NjUgMS4wODUgOwotICAgICAgICBSRUNUIDYuNTE1IDEuMDA1IDYuODI1IDEuMDg1IDsKLSAgICBFTkQKLSAgRU5EIEQKLSAgUElOIENLTgotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgNi4yMTUgMC44MjUgNi4yOTUgMS4wODUgOwotICAgICAgICBSRUNUIDYuMjE1IDAuODI1IDYuNDE1IDAuOTA1IDsKLSAgICAgICAgUkVDVCA2LjIxNSAxLjAwNSA2LjQxNSAxLjA4NSA7Ci0gICAgRU5ECi0gIEVORCBDS04KLSAgUElOIFNOCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAyLjI2IDAuODI1IDIuMzIgMS4xMSA7Ci0gICAgICAgIFJFQ1QgMi4yOCAwLjk4IDIuMzQgMS4yMzUgOwotICAgICAgICBSRUNUIDIuMjggMS4xNzUgNC40MSAxLjIzNSA7Ci0gICAgICAgIFJFQ1QgNC4zNSAxLjE3NSA0LjQxIDEuMzY1IDsKLSAgICAgICAgUkVDVCA0LjM1IDEuMzA1IDQuODA1IDEuMzY1IDsKLSAgICBFTkQKLSAgRU5EIFNOCi0gIFBJTiBSTgotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMS40MzUgMC43NSAxLjU2NSAxLjEyIDsKLSAgICBFTkQKLSAgRU5EIFJOCi0gIFBJTiBWREQKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgUE9XRVIgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWREQgVkREISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAxLjY1IDggMS43MSA7Ci0gICAgRU5ECi0gIEVORCBWREQKLSAgUElOIFZTUwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBHUk9VTkQgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWU1MgVlNTISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAwLjAwIDggMC4wNiA7Ci0gICAgRU5ECi0gIEVORCBWU1MKLUVORCBTREZGTlNSWEwKLQotTUFDUk8gQURERkhYMQotICBDTEFTUyBDT1JFIDsKLSAgT1JJR0lOIDAgMCA7Ci0gIEZPUkVJR04gQURERkhYMSAwIDAgOwotICBTSVpFIDQuNCBCWSAxLjcxIDsKLSAgU1lNTUVUUlkgWCBZIDsKLSAgU0lURSBDb3JlU2l0ZSA7Ci0gIFBJTiBWU1MKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgR1JPVU5EIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVlNTIFZTUyEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMC4wMCA0LjQgMC4wNiA7Ci0gICAgRU5ECi0gIEVORCBWU1MKLSAgUElOIFZERAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBQT1dFUiA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZERCBWREQhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDEuNjUgNC40IDEuNzEgOwotICAgIEVORAotICBFTkQgVkRECi0gIFBJTiBDSQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMS42MDUgMC40MzUgMS43NjUgMC41NSA7Ci0gICAgICAgIFJFQ1QgMS42MDUgMC40OSAyLjI3IDAuNTUgOwotICAgICAgICBSRUNUIDIuMjEgMC41NSAzLjM4IDAuNjEgOwotICAgIEVORAotICBFTkQgQ0kKLSAgUElOIEEKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuODggMC42NTUgMS45NzUgMC43MTUgOwotICAgICAgICBSRUNUIDEuOTE1IDAuNzEgMy43OCAwLjc3IDsKLSAgICAgICAgUkVDVCAzLjY2IDAuNzEgMy43NCAwLjkyIDsKLSAgICAgICAgUkVDVCAzLjY2IDAuNzEgMy43OCAwLjc5IDsKLSAgICBFTkQKLSAgRU5EIEEKLSAgUElOIEIKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDEuNjM1IDAuODcgMy41NiAwLjg5NSA7Ci0gICAgICAgIFJFQ1QgMS4xMzUgMC44MTUgMS44MTUgMC44NzUgOwotICAgICAgICBSRUNUIDEuNzU1IDAuODcgMy41NiAwLjkzIDsKLSAgICAgICAgUkVDVCAzLjUgMC44NyAzLjU2IDAuOTkgOwotICAgIEVORAotICBFTkQgQgotICBQSU4gQ08KLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIE9VVFBVVCA7Ci0gICAgQU5URU5OQURJRkZBUkVBIDEuNzI4NSAgTEFZRVIgTWV0YWwxIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDYgMC42IDAuMTQgMC43MyA7Ci0gICAgICAgIFJFQ1QgMC4wOCAwLjYgMC4xNCAwLjk4IDsKLSAgICAgICAgUkVDVCAwLjA4IDAuOTIgMC40MDUgMC45OCA7Ci0gICAgICAgIFJFQ1QgMC4zNDUgMC41MiAwLjQwNSAwLjY2IDsKLSAgICAgICAgUkVDVCAwLjA2IDAuNiAwLjQwNSAwLjY2IDsKLSAgICAgICAgUkVDVCAwLjM0NSAwLjkyIDAuNDA1IDEuMjkgOwotICAgIEVORAotICBFTkQgQ08KLSAgUElOIFMKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIE9VVFBVVCA7Ci0gICAgQU5URU5OQURJRkZBUkVBIDEuNzI4NSAgTEFZRVIgTWV0YWwxIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDQuMSAwLjU0IDQuMTYgMS4yOSA7Ci0gICAgICAgIFJFQ1QgNC4xIDAuNiA0LjM0IDAuNzMgOwotICAgIEVORAotICBFTkQgUwotRU5EIEFEREZIWDEKLQotTUFDUk8gU0RGRlJIUVgxCi0gIENMQVNTIENPUkUgOwotICBPUklHSU4gMCAwIDsKLSAgRk9SRUlHTiBTREZGUkhRWDEgMCAwIDsKLSAgU0laRSA1LjYgQlkgMS43MSA7Ci0gIFNZTU1FVFJZIFggWSA7Ci0gIFNJVEUgQ29yZVNpdGUgOwotICBQSU4gUQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gT1VUUFVUIDsKLSAgICBBTlRFTk5BRElGRkFSRUEgMS43Mjg1ICBMQVlFUiBNZXRhbDEgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wNiAwLjYgMC4xNzUgMC43MyA7Ci0gICAgICAgIFJFQ1QgMC4wOTUgMC40NSAwLjE3NSAxLjQxIDsKLSAgICBFTkQKLSAgRU5EIFEKLSAgUElOIFNFCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCA0LjU4IDAuNjQ1IDQuNjQgMSA7Ci0gICAgICAgIFJFQ1QgNC41OCAwLjY0NSA1LjQxIDAuNzA1IDsKLSAgICAgICAgUkVDVCA1LjIzNSAwLjYyNSA1LjM2NSAwLjcwNSA7Ci0gICAgICAgIFJFQ1QgNS4zNSAwLjY0NSA1LjQxIDAuNzY1IDsKLSAgICBFTkQKLSAgRU5EIFNFCi0gIFBJTiBTSQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgNC45MSAwLjgwNSA1LjE2NSAxLjA0NSA7Ci0gICAgICAgIFJFQ1QgNC45MSAwLjgwNSA1LjI1IDAuODg1IDsKLSAgICBFTkQKLSAgRU5EIFNJCi0gIFBJTiBECi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCA0LjA2IDAuNiA0LjE0IDAuNzMgOwotICAgICAgICBSRUNUIDQuMDYgMC42IDQuMzIgMC42OCA7Ci0gICAgICAgIFJFQ1QgNC4yNCAwLjYgNC4zMiAwLjg3IDsKLSAgICBFTkQKLSAgRU5EIEQKLSAgUElOIFJOCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAxLjMyIDAuNzcgMS41MTUgMC44NSA7Ci0gICAgICAgIFJFQ1QgMS40MzUgMC44MTUgMS42NDUgMS4wMjUgOwotICAgIEVORAotICBFTkQgUk4KLSAgUElOIENLCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjQ2IDAuNjkgMC41NCAxLjE5IDsKLSAgICBFTkQKLSAgRU5EIENLCi0gIFBJTiBWREQKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgUE9XRVIgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWREQgVkREISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAxLjY1IDUuNiAxLjcxIDsKLSAgICBFTkQKLSAgRU5EIFZERAotICBQSU4gVlNTCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIEdST1VORCA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZTUyBWU1MhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDAuMDAgNS42IDAuMDYgOwotICAgIEVORAotICBFTkQgVlNTCi1FTkQgU0RGRlJIUVgxCi0KLU1BQ1JPIENMS01YMlgzCi0gIENMQVNTIENPUkUgOwotICBPUklHSU4gMCAwIDsKLSAgRk9SRUlHTiBDTEtNWDJYMyAwIDAgOwotICBTSVpFIDIuNCBCWSAxLjcxIDsKLSAgU1lNTUVUUlkgWCBZIDsKLSAgU0lURSBDb3JlU2l0ZSA7Ci0gIFBJTiBZCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBPVVRQVVQgOwotICAgIEFOVEVOTkFESUZGQVJFQSAxLjcyODUgIExBWUVSIE1ldGFsMSA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAxLjczIDAuNDcgMS44NjUgMC41MyA7Ci0gICAgICAgIFJFQ1QgMS43NiAwLjk5NSAxLjgyIDEuMzY1IDsKLSAgICAgICAgUkVDVCAxLjgwNSAwLjQ3IDEuODY1IDEuMDU1IDsKLSAgICAgICAgUkVDVCAxLjgwNSAwLjc5IDEuOTQgMC45MiA7Ci0gICAgICAgIFJFQ1QgMS44MDUgMC44NiAyLjIzIDAuOTIgOwotICAgICAgICBSRUNUIDIuMTcgMC40NCAyLjIzIDAuNTggOwotICAgICAgICBSRUNUIDEuODA1IDAuNTIgMi4yMyAwLjU4IDsKLSAgICAgICAgUkVDVCAyLjE3IDAuODYgMi4yMyAxLjM2NSA7Ci0gICAgRU5ECi0gIEVORCBZCi0gIFBJTiBCCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAxLjQzNSAwLjc5IDEuNTE1IDEuMSA7Ci0gICAgICAgIFJFQ1QgMS40MzUgMC44MTUgMS43MDUgMC44OTUgOwotICAgIEVORAotICBFTkQgQgotICBQSU4gQQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC40NCAwLjc5IDAuNzk1IDAuODcgOwotICAgICAgICBSRUNUIDAuNjM1IDAuNzkgMC43OTUgMS4wMTUgOwotICAgIEVORAotICBFTkQgQQotICBQSU4gUzAKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMjYgMC43OSAwLjM0IDAuOTIgOwotICAgICAgICBSRUNUIDAuMjggMC43OSAwLjM0IDEuMTc1IDsKLSAgICAgICAgUkVDVCAwLjg5NSAwLjg0IDAuOTU1IDEuMTc1IDsKLSAgICAgICAgUkVDVCAwLjI4IDEuMTE1IDAuOTU1IDEuMTc1IDsKLSAgICAgICAgUkVDVCAwLjg5NSAwLjg0IDEuMDE1IDAuOSA7Ci0gICAgRU5ECi0gIEVORCBTMAotICBQSU4gVkRECi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIFBPV0VSIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVkREIFZERCEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMS42NSAyLjQgMS43MSA7Ci0gICAgRU5ECi0gIEVORCBWREQKLSAgUElOIFZTUwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBHUk9VTkQgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWU1MgVlNTISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAwLjAwIDIuNCAwLjA2IDsKLSAgICBFTkQKLSAgRU5EIFZTUwotRU5EIENMS01YMlgzCi0KLU1BQ1JPIEVERkZUUlgxCi0gIENMQVNTIENPUkUgOwotICBPUklHSU4gMCAwIDsKLSAgRk9SRUlHTiBFREZGVFJYMSAwIDAgOwotICBTSVpFIDcuMiBCWSAxLjcxIDsKLSAgU1lNTUVUUlkgWCBZIDsKLSAgU0lURSBDb3JlU2l0ZSA7Ci0gIFBJTiBRCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBPVVRQVVQgOwotICAgIEFOVEVOTkFESUZGQVJFQSAxLjcyODUgIExBWUVSIE1ldGFsMSA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjg2IDAuNiAxIDAuNzMgOwotICAgICAgICBSRUNUIDAuOTQgMC42IDEgMS4xNiA7Ci0gICAgICAgIFJFQ1QgMC45NSAwLjUwNSAxLjAxIDAuNjQgOwotICAgIEVORAotICBFTkQgUQotICBQSU4gUU4KLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIE9VVFBVVCA7Ci0gICAgQU5URU5OQURJRkZBUkVBIDEuNzI4NSAgTEFZRVIgTWV0YWwxIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDYgMC42IDAuMzI1IDAuNzMgOwotICAgICAgICBSRUNUIDAuMjQ1IDAuNTQgMC4zMjUgMS4yOSA7Ci0gICAgRU5ECi0gIEVORCBRTgotICBQSU4gRAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgNi44NiAwLjczNSA2Ljk0IDEuMTEgOwotICAgICAgICBSRUNUIDYuNzM1IDAuOTggNi45NCAxLjExIDsKLSAgICBFTkQKLSAgRU5EIEQKLSAgUElOIEUKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDUuODMgMC43OSA2LjM2NSAwLjg3IDsKLSAgICAgICAgUkVDVCA2LjIzNSAwLjc5IDYuMzY1IDAuODk1IDsKLSAgICBFTkQKLSAgRU5EIEUKLSAgUElOIFJOCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCA0LjcxIDAuNzkgNC45NCAwLjg3IDsKLSAgICAgICAgUkVDVCA0Ljg2IDAuNzkgNC45NCAxLjE0IDsKLSAgICBFTkQKLSAgRU5EIFJOCi0gIFBJTiBDSwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMS4yNiAwLjk4IDEuMzQgMS4xOSA7Ci0gICAgICAgIFJFQ1QgMS4yNyAwLjcgMS4zNSAxLjA2IDsKLSAgICBFTkQKLSAgRU5EIENLCi0gIFBJTiBWREQKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgUE9XRVIgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWREQgVkREISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAxLjY1IDcuMiAxLjcxIDsKLSAgICBFTkQKLSAgRU5EIFZERAotICBQSU4gVlNTCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIEdST1VORCA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZTUyBWU1MhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDAuMDAgNy4yIDAuMDYgOwotICAgIEVORAotICBFTkQgVlNTCi1FTkQgRURGRlRSWDEKLQotTUFDUk8gREZGWDEKLSAgQ0xBU1MgQ09SRSA7Ci0gIE9SSUdJTiAwIDAgOwotICBGT1JFSUdOIERGRlgxIDAgMCA7Ci0gIFNJWkUgNC4yIEJZIDEuNzEgOwotICBTWU1NRVRSWSBYIFkgOwotICBTSVRFIENvcmVTaXRlIDsKLSAgUElOIFEKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIE9VVFBVVCA7Ci0gICAgQU5URU5OQURJRkZBUkVBIDEuNzI4NSAgTEFZRVIgTWV0YWwxIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuODYgMC41NCAwLjk0IDAuNzMgOwotICAgICAgICBSRUNUIDAuODggMC41NCAwLjk0IDEuMzQgOwotICAgIEVORAotICBFTkQgUQotICBQSU4gUU4KLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIE9VVFBVVCA7Ci0gICAgQU5URU5OQURJRkZBUkVBIDEuNzI4NSAgTEFZRVIgTWV0YWwxIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDYgMC42IDAuMjg1IDAuNzMgOwotICAgICAgICBSRUNUIDAuMjA1IDAuNTQgMC4yODUgMS4yOSA7Ci0gICAgRU5ECi0gIEVORCBRTgotICBQSU4gRAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMy42MzUgMC44OSAzLjcxNSAxLjA4NSA7Ci0gICAgICAgIFJFQ1QgMy40OTUgMS4wMDUgMy44OCAxLjA4NSA7Ci0gICAgRU5ECi0gIEVORCBECi0gIFBJTiBDSwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMS4yIDAuODIgMS4yOCAxLjEzNSA7Ci0gICAgICAgIFJFQ1QgMS4wNiAwLjk4IDEuMjggMS4xMzUgOwotICAgICAgICBSRUNUIDEuMjA1IDAuNzggMS4yODUgMC45IDsKLSAgICBFTkQKLSAgRU5EIENLCi0gIFBJTiBWREQKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgUE9XRVIgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWREQgVkREISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAxLjY1IDQuMiAxLjcxIDsKLSAgICBFTkQKLSAgRU5EIFZERAotICBQSU4gVlNTCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIEdST1VORCA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZTUyBWU1MhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDAuMDAgNC4yIDAuMDYgOwotICAgIEVORAotICBFTkQgVlNTCi1FTkQgREZGWDEKLQotTUFDUk8gTURGRkhRWDgKLSAgQ0xBU1MgQ09SRSA7Ci0gIE9SSUdJTiAwIDAgOwotICBGT1JFSUdOIE1ERkZIUVg4IDAgMCA7Ci0gIFNJWkUgNi42IEJZIDEuNzEgOwotICBTWU1NRVRSWSBYIFkgOwotICBTSVRFIENvcmVTaXRlIDsKLSAgUElOIFMwCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCA1LjUzNSAwLjY5NSA1LjU5NSAwLjk2NSA7Ci0gICAgICAgIFJFQ1QgNS41MzUgMC42OTUgNS42ODUgMC43NTUgOwotICAgICAgICBSRUNUIDUuNjI1IDAuNjQ1IDYuNCAwLjcwNSA7Ci0gICAgICAgIFJFQ1QgNi4yMzUgMC42MjUgNi40IDAuNzA1IDsKLSAgICAgICAgUkVDVCA2LjM0IDAuNjI1IDYuNCAwLjc0NSA7Ci0gICAgRU5ECi0gIEVORCBTMAotICBQSU4gRDEKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDUuODY1IDAuODA1IDYuMTY1IDEuMDEgOwotICAgICAgICBSRUNUIDUuODY1IDAuODA1IDYuMjQgMC44ODUgOwotICAgIEVORAotICBFTkQgRDEKLSAgUElOIEQwCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCA1LjA2IDAuNjUgNS4xNCAwLjkyIDsKLSAgICAgICAgUkVDVCA1LjA2IDAuNzkgNS4yNzUgMC45MiA7Ci0gICAgICAgIFJFQ1QgNS4xOTUgMC43OSA1LjI3NSAxLjAxNSA7Ci0gICAgRU5ECi0gIEVORCBEMAotICBQSU4gQ0sKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDIuNzIgMC41OSAyLjgzIDAuODk1IDsKLSAgICAgICAgUkVDVCAyLjU1NSAwLjgxNSAyLjgzIDAuODk1IDsKLSAgICBFTkQKLSAgRU5EIENLCi0gIFBJTiBRCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBPVVRQVVQgOwotICAgIEFOVEVOTkFESUZGQVJFQSAxLjcyODUgIExBWUVSIE1ldGFsMSA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjA3IDAuNTQgMC4xMyAxLjM0NSA7Ci0gICAgICAgIFJFQ1QgMC4wNyAwLjU0IDAuMTQgMC43MyA7Ci0gICAgICAgIFJFQ1QgMC4wNiAwLjYgMC4xNCAwLjczIDsKLSAgICAgICAgUkVDVCAwLjQ4IDAuNTQgMC41NCAxLjM0NSA7Ci0gICAgICAgIFJFQ1QgMC4wNiAwLjY3IDAuOTUgMC43MyA7Ci0gICAgICAgIFJFQ1QgMC44OSAwLjU0IDAuOTUgMS4zNDUgOwotICAgICAgICBSRUNUIDAuODkgMC43NCAxLjMxNSAwLjggOwotICAgICAgICBSRUNUIDEuMjU1IDAuNTkgMS4zMTUgMC45NiA7Ci0gICAgICAgIFJFQ1QgMS4zIDAuNTMgMS4zNiAwLjY1IDsKLSAgICAgICAgUkVDVCAxLjMgMC45IDEuMzYgMS4zNDUgOwotICAgIEVORAotICBFTkQgUQotICBQSU4gVkRECi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIFBPV0VSIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVkREIFZERCEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMS42NSA2LjYgMS43MSA7Ci0gICAgRU5ECi0gIEVORCBWREQKLSAgUElOIFZTUwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBHUk9VTkQgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWU1MgVlNTISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAwLjAwIDYuNiAwLjA2IDsKLSAgICBFTkQKLSAgRU5EIFZTUwotRU5EIE1ERkZIUVg4Ci0KLU1BQ1JPIENMS0FORDJYOAotICBDTEFTUyBDT1JFIDsKLSAgT1JJR0lOIDAgMCA7Ci0gIEZPUkVJR04gQ0xLQU5EMlg4IDAgMCA7Ci0gIFNJWkUgMy40IEJZIDEuNzEgOwotICBTWU1NRVRSWSBYIFkgOwotICBTSVRFIENvcmVTaXRlIDsKLSAgUElOIFkKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIE9VVFBVVCA7Ci0gICAgQU5URU5OQURJRkZBUkVBIDEuNzI4NSAgTEFZRVIgTWV0YWwxIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDEuODY1IDAuNTEgMS45ODUgMC41NyA7Ci0gICAgICAgIFJFQ1QgMS45NSAwLjk0NSAyLjAxIDEuMzkgOwotICAgICAgICBSRUNUIDIuMjc1IDAuNTEgMi4zOTUgMC41ODUgOwotICAgICAgICBSRUNUIDIuMzYgMC45NDUgMi40MiAxLjM5IDsKLSAgICAgICAgUkVDVCAyLjY4NSAwLjUxIDIuODA1IDAuNTg1IDsKLSAgICAgICAgUkVDVCAyLjc3IDAuOTQ1IDIuODMgMS4zOSA7Ci0gICAgICAgIFJFQ1QgMy4wNiAwLjUyNSAzLjEyIDEuMDA1IDsKLSAgICAgICAgUkVDVCAxLjkyNSAwLjUyNSAzLjEyNSAwLjU4NSA7Ci0gICAgICAgIFJFQ1QgMy4wNiAwLjc5IDMuMTQgMS4wMDUgOwotICAgICAgICBSRUNUIDEuOTUgMC45NDUgMy4yNCAxLjAwNSA7Ci0gICAgICAgIFJFQ1QgMy4wOCAwLjUxIDMuMjE1IDAuNTcgOwotICAgICAgICBSRUNUIDMuMTggMC45NDUgMy4yNCAxLjM5IDsKLSAgICBFTkQKLSAgRU5EIFkKLSAgUElOIEIKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuNjEgMC44MTUgMS4zNjUgMC44OTUgOwotICAgIEVORAotICBFTkQgQgotICBQSU4gQQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4yMzUgMC42MjUgMC4zNjUgMC43MTUgOwotICAgICAgICBSRUNUIDAuMjM1IDAuNjU1IDEuNjA1IDAuNzE1IDsKLSAgICAgICAgUkVDVCAxLjU0NSAwLjY1NSAxLjYwNSAwLjc3NSA7Ci0gICAgRU5ECi0gIEVORCBBCi0gIFBJTiBWREQKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgUE9XRVIgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWREQgVkREISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAxLjY1IDMuNCAxLjcxIDsKLSAgICBFTkQKLSAgRU5EIFZERAotICBQSU4gVlNTCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIEdST1VORCA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZTUyBWU1MhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDAuMDAgMy40IDAuMDYgOwotICAgIEVORAotICBFTkQgVlNTCi1FTkQgQ0xLQU5EMlg4Ci0KLU1BQ1JPIENMS0lOVlgyMAotICBDTEFTUyBDT1JFIDsKLSAgT1JJR0lOIDAgMCA7Ci0gIEZPUkVJR04gQ0xLSU5WWDIwIDAgMCA7Ci0gIFNJWkUgMy44IEJZIDEuNzEgOwotICBTWU1NRVRSWSBYIFkgOwotICBTSVRFIENvcmVTaXRlIDsKLSAgUElOIFkKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIE9VVFBVVCA7Ci0gICAgQU5URU5OQURJRkZBUkVBIDEuNzI4NSAgTEFZRVIgTWV0YWwxIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMjc1IDAuMzU1IDAuMzM1IDAuNjYgOwotICAgICAgICBSRUNUIDAuMjc1IDAuOTIgMC4zMzUgMS4zNiA7Ci0gICAgICAgIFJFQ1QgMC42ODUgMC4zNTUgMC43NDUgMC42NiA7Ci0gICAgICAgIFJFQ1QgMC42ODUgMC45MiAwLjc0NSAxLjM2IDsKLSAgICAgICAgUkVDVCAwLjI3NSAxLjA4IDEuMTU1IDEuMTQgOwotICAgICAgICBSRUNUIDEuMDk1IDAuMzU1IDEuMTU1IDAuNjYgOwotICAgICAgICBSRUNUIDEuMDk1IDAuOTIgMS4xNTUgMS4zNiA7Ci0gICAgICAgIFJFQ1QgMS41MDUgMC4zNTUgMS41NjUgMC42NiA7Ci0gICAgICAgIFJFQ1QgMS41MDUgMC45MiAxLjU2NSAxLjM2IDsKLSAgICAgICAgUkVDVCAxLjkxNSAwLjM1NSAxLjk3NSAwLjY2IDsKLSAgICAgICAgUkVDVCAxLjkxNSAwLjkyIDEuOTc1IDEuMzYgOwotICAgICAgICBSRUNUIDIuMzI1IDAuMzU1IDIuMzg1IDAuNjYgOwotICAgICAgICBSRUNUIDIuMzI1IDAuOTIgMi4zODUgMS4zNiA7Ci0gICAgICAgIFJFQ1QgMi43MzUgMC4zNTUgMi43OTUgMC42NiA7Ci0gICAgICAgIFJFQ1QgMi43MzUgMC45MiAyLjc5NSAxLjM2IDsKLSAgICAgICAgUkVDVCAzLjE0NSAwLjM1NSAzLjIwNSAwLjY2IDsKLSAgICAgICAgUkVDVCAzLjE0NSAwLjkyIDMuMjA1IDEuMzYgOwotICAgICAgICBSRUNUIDMuMyAwLjYgMy4zNiAwLjk4IDsKLSAgICAgICAgUkVDVCAzLjQ2IDAuNzkgMy41NCAwLjk4IDsKLSAgICAgICAgUkVDVCAzLjU1NSAwLjM1NSAzLjYxNSAwLjY2IDsKLSAgICAgICAgUkVDVCAwLjI3NSAwLjYgMy42MTUgMC42NiA7Ci0gICAgICAgIFJFQ1QgMS4wOTUgMC45MiAzLjcgMC45OCA7Ci0gICAgICAgIFJFQ1QgMy42NCAwLjkwNSAzLjcgMS4zNiA7Ci0gICAgRU5ECi0gIEVORCBZCi0gIFBJTiBBCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjQzNSAwLjc2IDAuNTY1IDAuODk1IDsKLSAgICAgICAgUkVDVCAwLjMyIDAuNzYgMy4xMDUgMC44MiA7Ci0gICAgRU5ECi0gIEVORCBBCi0gIFBJTiBWREQKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgUE9XRVIgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWREQgVkREISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAxLjY1IDMuOCAxLjcxIDsKLSAgICBFTkQKLSAgRU5EIFZERAotICBQSU4gVlNTCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIEdST1VORCA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZTUyBWU1MhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDAuMDAgMy44IDAuMDYgOwotICAgIEVORAotICBFTkQgVlNTCi1FTkQgQ0xLSU5WWDIwCi0KLU1BQ1JPIE9BMjFYTAotICBDTEFTUyBDT1JFIDsKLSAgT1JJR0lOIDAgMCA7Ci0gIEZPUkVJR04gT0EyMVhMIDAgMCA7Ci0gIFNJWkUgMS42IEJZIDEuNzEgOwotICBTWU1NRVRSWSBYIFkgOwotICBTSVRFIENvcmVTaXRlIDsKLSAgUElOIFkKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIE9VVFBVVCA7Ci0gICAgQU5URU5OQURJRkZBUkVBIDEuNzI4NSAgTEFZRVIgTWV0YWwxIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDEuMDUgMC42NSAxLjEzIDEuMTg1IDsKLSAgICAgICAgUkVDVCAxLjA1IDAuNjUgMS4zNCAwLjczIDsKLSAgICAgICAgUkVDVCAxLjI2IDAuNTcgMS4zOCAwLjY1IDsKLSAgICBFTkQKLSAgRU5EIFkKLSAgUElOIEEwCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjI2IDAuNTYgMC4zNCAxLjA2IDsKLSAgICBFTkQKLSAgRU5EIEEwCi0gIFBJTiBBMQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC40NiAwLjYxIDAuNTQgMS4xMSA7Ci0gICAgRU5ECi0gIEVORCBBMQotICBQSU4gQjAKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuNjYgMC4yMiAwLjc0IDAuNzIgOwotICAgIEVORAotICBFTkQgQjAKLSAgUElOIFZERAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBQT1dFUiA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZERCBWREQhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDEuNjUgMS42IDEuNzEgOwotICAgIEVORAotICBFTkQgVkRECi0gIFBJTiBWU1MKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgR1JPVU5EIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVlNTIFZTUyEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMC4wMCAxLjYgMC4wNiA7Ci0gICAgRU5ECi0gIEVORCBWU1MKLUVORCBPQTIxWEwKLQotTUFDUk8gT0FJMjExWDIKLSAgQ0xBU1MgQ09SRSA7Ci0gIE9SSUdJTiAwIDAgOwotICBGT1JFSUdOIE9BSTIxMVgyIDAgMCA7Ci0gIFNJWkUgMi40IEJZIDEuNzEgOwotICBTWU1NRVRSWSBYIFkgOwotICBTSVRFIENvcmVTaXRlIDsKLSAgUElOIFkKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIE9VVFBVVCA7Ci0gICAgQU5URU5OQURJRkZBUkVBIDEuNzI4NSAgTEFZRVIgTWV0YWwxIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuNjQgMS4wNiAwLjcgMS4zNDUgOwotICAgICAgICBSRUNUIDEuMjggMC42MzUgMS4zNCAxLjEyIDsKLSAgICAgICAgUkVDVCAxLjI2IDAuOTggMS4zNCAxLjEyIDsKLSAgICAgICAgUkVDVCAxLjM0IDEuMDYgMS40IDEuMzQ1IDsKLSAgICAgICAgUkVDVCAwLjY0IDEuMDYgMS44MSAxLjEyIDsKLSAgICAgICAgUkVDVCAxLjc1IDEuMDYgMS44MSAxLjM0NSA7Ci0gICAgICAgIFJFQ1QgMS45NTUgMC40NTUgMi4wMTUgMC42OTUgOwotICAgICAgICBSRUNUIDEuMjggMC42MzUgMi4wMTUgMC42OTUgOwotICAgICAgICBSRUNUIDEuOTU1IDAuNDU1IDIuMTMgMC41MTUgOwotICAgIEVORAotICBFTkQgWQotICBQSU4gQTEKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuNDYgMC44MTUgMC41NCAxLjExIDsKLSAgICAgICAgUkVDVCAwLjQ2IDAuODE1IDAuNzQ1IDAuODk1IDsKLSAgICBFTkQKLSAgRU5EIEExCi0gIFBJTiBBMAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4yNiAwLjc5IDAuMzQgMC45MiA7Ci0gICAgICAgIFJFQ1QgMC4yOCAwLjYzNSAwLjM2IDAuODggOwotICAgICAgICBSRUNUIDAuMjggMC42MzUgMC45NzUgMC43MTUgOwotICAgIEVORAotICBFTkQgQTAKLSAgUElOIEIwCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAxLjQ0IDAuNzk1IDEuODU1IDAuOTYgOwotICAgIEVORAotICBFTkQgQjAKLSAgUElOIEMwCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAyLjExNSAwLjYxNSAyLjE5NSAwLjg5NSA7Ci0gICAgICAgIFJFQ1QgMi4xMTUgMC43OSAyLjM0IDAuODk1IDsKLSAgICAgICAgUkVDVCAyLjI2IDAuNzkgMi4zNCAwLjk3IDsKLSAgICBFTkQKLSAgRU5EIEMwCi0gIFBJTiBWREQKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgUE9XRVIgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWREQgVkREISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAxLjY1IDIuNCAxLjcxIDsKLSAgICBFTkQKLSAgRU5EIFZERAotICBQSU4gVlNTCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIEdST1VORCA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZTUyBWU1MhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDAuMDAgMi40IDAuMDYgOwotICAgIEVORAotICBFTkQgVlNTCi1FTkQgT0FJMjExWDIKLQotTUFDUk8gVEJVRlgyCi0gIENMQVNTIENPUkUgOwotICBPUklHSU4gMCAwIDsKLSAgRk9SRUlHTiBUQlVGWDIgMCAwIDsKLSAgU0laRSAyLjIgQlkgMS43MSA7Ci0gIFNZTU1FVFJZIFggWSA7Ci0gIFNJVEUgQ29yZVNpdGUgOwotICBQSU4gWQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gT1VUUFVUIDsKLSAgICBBTlRFTk5BRElGRkFSRUEgMS43Mjg1ICBMQVlFUiBNZXRhbDEgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMS44MzUgMC4zNyAxLjk0IDAuNDkgOwotICAgICAgICBSRUNUIDEuODYgMC4zNyAxLjk0IDEuMjggOwotICAgIEVORAotICBFTkQgWQotICBQSU4gQQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC41NTUgMC44MDUgMC42OTUgMC44NjUgOwotICAgICAgICBSRUNUIDAuNjM1IDAuODE1IDAuNzY1IDAuODk1IDsKLSAgICAgICAgUkVDVCAwLjcwNSAwLjgxNSAwLjc2NSAxLjIgOwotICAgICAgICBSRUNUIDEuNCAwLjY5IDEuNDYgMS4yIDsKLSAgICAgICAgUkVDVCAwLjcwNSAxLjE0IDEuNDYgMS4yIDsKLSAgICAgICAgUkVDVCAxLjQgMC42OSAxLjUyIDAuNzUgOwotICAgIEVORAotICBFTkQgQQotICBQSU4gT0UKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMjkgMC42MjUgMC40MDUgMC43NDUgOwotICAgICAgICBSRUNUIDAuMjM1IDAuNjI1IDAuNzY1IDAuNzA1IDsKLSAgICBFTkQKLSAgRU5EIE9FCi0gIFBJTiBWREQKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgUE9XRVIgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWREQgVkREISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAxLjY1IDIuMiAxLjcxIDsKLSAgICBFTkQKLSAgRU5EIFZERAotICBQSU4gVlNTCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIEdST1VORCA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZTUyBWU1MhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDAuMDAgMi4yIDAuMDYgOwotICAgIEVORAotICBFTkQgVlNTCi1FTkQgVEJVRlgyCi0KLU1BQ1JPIERGRlNSWDQKLSAgQ0xBU1MgQ09SRSA7Ci0gIE9SSUdJTiAwIDAgOwotICBGT1JFSUdOIERGRlNSWDQgMCAwIDsKLSAgU0laRSA4LjIgQlkgMS43MSA7Ci0gIFNZTU1FVFJZIFggWSA7Ci0gIFNJVEUgQ29yZVNpdGUgOwotICBQSU4gUU4KLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIE9VVFBVVCA7Ci0gICAgQU5URU5OQURJRkZBUkVBIDEuNzI4NSAgTEFZRVIgTWV0YWwxIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDYuOTg1IDAuOTE1IDcuMDQ1IDEuMzA1IDsKLSAgICAgICAgUkVDVCA3LjA2IDAuNDUgNy4xNCAwLjk3NSA7Ci0gICAgICAgIFJFQ1QgNi45ODUgMC45MTUgNy40ODUgMC45NzUgOwotICAgICAgICBSRUNUIDcuNDI1IDAuOTE1IDcuNDg1IDEuMzA1IDsKLSAgICAgICAgUkVDVCA2Ljk1NSAwLjQ1IDcuNTQ1IDAuNTEgOwotICAgIEVORAotICBFTkQgUU4KLSAgUElOIFEKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIE9VVFBVVCA7Ci0gICAgQU5URU5OQURJRkZBUkVBIDEuNzI4NSAgTEFZRVIgTWV0YWwxIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDYuMDYgMC42IDYuMTIgMS4zMDUgOwotICAgICAgICBSRUNUIDYuMDggMC40NCA2LjE0IDAuOTc1IDsKLSAgICAgICAgUkVDVCA2LjA2IDAuOTE1IDYuNTU1IDAuOTc1IDsKLSAgICAgICAgUkVDVCA2LjQ5NSAwLjkxNSA2LjU1NSAxLjMwNSA7Ci0gICAgICAgIFJFQ1QgNi4wMTUgMC40NCA2LjYwNSAwLjUgOwotICAgIEVORAotICBFTkQgUQotICBQSU4gUk4KLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDMuMjM1IDAuNjMgMy41MSAwLjg5NSA7Ci0gICAgICAgIFJFQ1QgMy4xOTUgMC44MTUgMy41MSAwLjg5NSA7Ci0gICAgRU5ECi0gIEVORCBSTgotICBQSU4gU04KLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDIuODM1IDAuNjMgMy4wOTUgMC44OTUgOwotICAgICAgICBSRUNUIDIuNzggMC44MTUgMy4wOTUgMC44OTUgOwotICAgIEVORAotICBFTkQgU04KLSAgUElOIEQKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuNTggMC44MjUgMC43NjUgMS4wODUgOwotICAgICAgICBSRUNUIDAuNDQ1IDEuMDA1IDAuNzY1IDEuMDg1IDsKLSAgICBFTkQKLSAgRU5EIEQKLSAgUElOIENLCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjI2IDAuNjMgMC4zNCAxLjEzIDsKLSAgICBFTkQKLSAgRU5EIENLCi0gIFBJTiBWREQKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgUE9XRVIgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWREQgVkREISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAxLjY1IDguMiAxLjcxIDsKLSAgICBFTkQKLSAgRU5EIFZERAotICBQSU4gVlNTCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIEdST1VORCA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZTUyBWU1MhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDAuMDAgOC4yIDAuMDYgOwotICAgIEVORAotICBFTkQgVlNTCi1FTkQgREZGU1JYNAotCi1NQUNSTyBBRERIWDEKLSAgQ0xBU1MgQ09SRSA7Ci0gIE9SSUdJTiAwIDAgOwotICBGT1JFSUdOIEFEREhYMSAwIDAgOwotICBTSVpFIDMgQlkgMS43MSA7Ci0gIFNZTU1FVFJZIFggWSA7Ci0gIFNJVEUgQ29yZVNpdGUgOwotICBQSU4gUwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gT1VUUFVUIDsKLSAgICBBTlRFTk5BRElGRkFSRUEgMS43Mjg1ICBMQVlFUiBNZXRhbDEgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMi44MSAwLjUxIDIuODkgMC42MyA7Ci0gICAgICAgIFJFQ1QgMi44MSAwLjg5IDIuODkgMS4yOSA7Ci0gICAgICAgIFJFQ1QgMi44NiAwLjU1IDIuOTQgMC45NyA7Ci0gICAgRU5ECi0gIEVORCBTCi0gIFBJTiBDTwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gT1VUUFVUIDsKLSAgICBBTlRFTk5BRElGRkFSRUEgMS43Mjg1ICBMQVlFUiBNZXRhbDEgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wNiAwLjYgMC4yMzUgMC43MyA7Ci0gICAgICAgIFJFQ1QgMC4xNzUgMC40MTUgMC4yMzUgMS40NyA7Ci0gICAgRU5ECi0gIEVORCBDTwotICBQSU4gQgotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC42NjUgMC42MjUgMS4wNSAwLjcwNSA7Ci0gICAgICAgIFJFQ1QgMC42ODUgMC42MjUgMS4wNSAwLjgyIDsKLSAgICBFTkQKLSAgRU5EIEIKLSAgUElOIEEKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuNDQ1IDAuNDY1IDAuNTY1IDAuNzA1IDsKLSAgICAgICAgUkVDVCAwLjQzNSAwLjYyNSAwLjU2NSAwLjcwNSA7Ci0gICAgICAgIFJFQ1QgMC42IDAuMjg1IDAuNjYgMC41MjUgOwotICAgICAgICBSRUNUIDAuNDQ1IDAuNDY1IDAuNjYgMC41MjUgOwotICAgICAgICBSRUNUIDAuNiAwLjI4NSAxLjUzIDAuMzQ1IDsKLSAgICAgICAgUkVDVCAxLjQ3IDAuMjg1IDEuNTMgMC40MzUgOwotICAgICAgICBSRUNUIDEuNDcgMC4zNzUgMS45MSAwLjQzNSA7Ci0gICAgRU5ECi0gIEVORCBBCi0gIFBJTiBWREQKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgUE9XRVIgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWREQgVkREISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAxLjY1IDMgMS43MSA7Ci0gICAgRU5ECi0gIEVORCBWREQKLSAgUElOIFZTUwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBHUk9VTkQgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWU1MgVlNTISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAwLjAwIDMgMC4wNiA7Ci0gICAgRU5ECi0gIEVORCBWU1MKLUVORCBBRERIWDEKLQotTUFDUk8gRURGRlhMCi0gIENMQVNTIENPUkUgOwotICBPUklHSU4gMCAwIDsKLSAgRk9SRUlHTiBFREZGWEwgMCAwIDsKLSAgU0laRSA1LjYgQlkgMS43MSA7Ci0gIFNZTU1FVFJZIFggWSA7Ci0gIFNJVEUgQ29yZVNpdGUgOwotICBQSU4gUU4KLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIE9VVFBVVCA7Ci0gICAgQU5URU5OQURJRkZBUkVBIDEuNzI4NSAgTEFZRVIgTWV0YWwxIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDUuNDcgMC40MTUgNS41NCAxLjE0NSA7Ci0gICAgICAgIFJFQ1QgNS40NiAwLjc5IDUuNTQgMS4xNDUgOwotICAgIEVORAotICBFTkQgUU4KLSAgUElOIFEKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIE9VVFBVVCA7Ci0gICAgQU5URU5OQURJRkZBUkVBIDEuNzI4NSAgTEFZRVIgTWV0YWwxIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDQuNDIgMC41NyA0LjU0IDAuNjUgOwotICAgICAgICBSRUNUIDQuNDUgMC43NSA0LjUzIDEuMDIgOwotICAgICAgICBSRUNUIDQuNDYgMC41NyA0LjU0IDAuOCA7Ci0gICAgRU5ECi0gIEVORCBRCi0gIFBJTiBFCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAzLjQzNSAwLjcwNSAzLjQ5NSAxLjQ2NSA7Ci0gICAgICAgIFJFQ1QgMy4xNyAxLjQwNSAzLjQ5NSAxLjQ2NSA7Ci0gICAgICAgIFJFQ1QgNC4wNCAwLjg2IDQuMSAxLjMyIDsKLSAgICAgICAgUkVDVCAzLjQzNSAxLjI2IDQuMSAxLjMyIDsKLSAgICAgICAgUkVDVCA0LjA2IDAuNzkgNC4xNCAwLjkyIDsKLSAgICBFTkQKLSAgRU5EIEUKLSAgUElOIEQKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDMuNzY1IDAuNzU1IDMuOTQgMS4xNiA7Ci0gICAgRU5ECi0gIEVORCBECi0gIFBJTiBDSwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4yNiAwLjc2NSAwLjM0IDEuMjY1IDsKLSAgICBFTkQKLSAgRU5EIENLCi0gIFBJTiBWREQKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgUE9XRVIgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWREQgVkREISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAxLjY1IDUuNiAxLjcxIDsKLSAgICBFTkQKLSAgRU5EIFZERAotICBQSU4gVlNTCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIEdST1VORCA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZTUyBWU1MhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDAuMDAgNS42IDAuMDYgOwotICAgIEVORAotICBFTkQgVlNTCi1FTkQgRURGRlhMCi0KLU1BQ1JPIE9BSTIxWEwKLSAgQ0xBU1MgQ09SRSA7Ci0gIE9SSUdJTiAwIDAgOwotICBGT1JFSUdOIE9BSTIxWEwgMCAwIDsKLSAgU0laRSAxIEJZIDEuNzEgOwotICBTWU1NRVRSWSBYIFkgOwotICBTSVRFIENvcmVTaXRlIDsKLSAgUElOIFkKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIE9VVFBVVCA7Ci0gICAgQU5URU5OQURJRkZBUkVBIDEuNzI4NSAgTEFZRVIgTWV0YWwxIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuNjQgMS4yIDAuNyAxLjM4NSA7Ci0gICAgICAgIFJFQ1QgMC43NTUgMC4zOCAwLjgxNSAwLjUgOwotICAgICAgICBSRUNUIDAuNzU1IDAuNDQgMC45MiAwLjUgOwotICAgICAgICBSRUNUIDAuODYgMC40NCAwLjkyIDEuMjYgOwotICAgICAgICBSRUNUIDAuODYgMC45OCAwLjk0IDEuMjYgOwotICAgICAgICBSRUNUIDAuNjQgMS4yIDAuOTQgMS4yNiA7Ci0gICAgRU5ECi0gIEVORCBZCi0gIFBJTiBBMAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wNiAwLjc2IDAuMTQgMS4yNiA7Ci0gICAgRU5ECi0gIEVORCBBMAotICBQSU4gQTEKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuNDYgMC44IDAuNTQgMS4zIDsKLSAgICBFTkQKLSAgRU5EIEExCi0gIFBJTiBCMAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC42NiAwLjYgMC43NCAxLjEgOwotICAgIEVORAotICBFTkQgQjAKLSAgUElOIFZERAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBQT1dFUiA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZERCBWREQhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDEuNjUgMSAxLjcxIDsKLSAgICBFTkQKLSAgRU5EIFZERAotICBQSU4gVlNTCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIEdST1VORCA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZTUyBWU1MhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDAuMDAgMSAwLjA2IDsKLSAgICBFTkQKLSAgRU5EIFZTUwotRU5EIE9BSTIxWEwKLQotTUFDUk8gTVgyWDgKLSAgQ0xBU1MgQ09SRSA7Ci0gIE9SSUdJTiAwIDAgOwotICBGT1JFSUdOIE1YMlg4IDAgMCA7Ci0gIFNJWkUgMy40IEJZIDEuNzEgOwotICBTWU1NRVRSWSBYIFkgOwotICBTSVRFIENvcmVTaXRlIDsKLSAgUElOIFkKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIE9VVFBVVCA7Ci0gICAgQU5URU5OQURJRkZBUkVBIDEuNzI4NSAgTEFZRVIgTWV0YWwxIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDIgMC41MyAyLjEyIDAuNTkgOwotICAgICAgICBSRUNUIDIuMDM1IDAuOTkgMi4wOTUgMS40MzUgOwotICAgICAgICBSRUNUIDIuMDYgMC41MyAyLjEyIDEuMTEgOwotICAgICAgICBSRUNUIDIuMDYgMC45OCAyLjE0IDEuMTEgOwotICAgICAgICBSRUNUIDIuNDQ1IDAuOTkgMi41MDUgMS40MzUgOwotICAgICAgICBSRUNUIDIuNDE1IDAuNTQgMi41MzUgMC42IDsKLSAgICAgICAgUkVDVCAyLjg1NSAwLjk5IDIuOTE1IDEuNDM1IDsKLSAgICAgICAgUkVDVCAyLjgyNSAwLjU0IDIuOTQ1IDAuNjE1IDsKLSAgICAgICAgUkVDVCAyLjQ5IDAuNTU1IDMuMzI1IDAuNjE1IDsKLSAgICAgICAgUkVDVCAyLjAzNSAwLjk5IDMuMzI1IDEuMDUgOwotICAgICAgICBSRUNUIDMuMjY1IDAuNDk1IDMuMzI1IDEuNDM1IDsKLSAgICBFTkQKLSAgRU5EIFkKLSAgUElOIEIKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDEuNSAwLjg1IDEuNzQgMC45MyA7Ci0gICAgICAgIFJFQ1QgMS42NiAwLjg1IDEuNzQgMS4xOSA7Ci0gICAgRU5ECi0gIEVORCBCCi0gIFBJTiBBCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjYzNSAwLjcxNSAwLjggMS4wODUgOwotICAgIEVORAotICBFTkQgQQotICBQSU4gUzAKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMjYgMC45NTUgMC41MzUgMS4xMSA7Ci0gICAgICAgIFJFQ1QgMC40NzUgMC45NTUgMC41MzUgMS4yNDUgOwotICAgICAgICBSRUNUIDAuOSAwLjg2NSAwLjk2IDEuMjQ1IDsKLSAgICAgICAgUkVDVCAwLjQ3NSAxLjE4NSAwLjk2IDEuMjQ1IDsKLSAgICAgICAgUkVDVCAwLjkgMC44NjUgMS4wMiAwLjkyNSA7Ci0gICAgRU5ECi0gIEVORCBTMAotICBQSU4gVkRECi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIFBPV0VSIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVkREIFZERCEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMS42NSAzLjQgMS43MSA7Ci0gICAgRU5ECi0gIEVORCBWREQKLSAgUElOIFZTUwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBHUk9VTkQgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWU1MgVlNTISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAwLjAwIDMuNCAwLjA2IDsKLSAgICBFTkQKLSAgRU5EIFZTUwotRU5EIE1YMlg4Ci0KLU1BQ1JPIENMS01YMlg2Ci0gIENMQVNTIENPUkUgOwotICBPUklHSU4gMCAwIDsKLSAgRk9SRUlHTiBDTEtNWDJYNiAwIDAgOwotICBTSVpFIDIuNiBCWSAxLjcxIDsKLSAgU1lNTUVUUlkgWCBZIDsKLSAgU0lURSBDb3JlU2l0ZSA7Ci0gIFBJTiBZCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBPVVRQVVQgOwotICAgIEFOVEVOTkFESUZGQVJFQSAxLjcyODUgIExBWUVSIE1ldGFsMSA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAxLjYxIDAuMjk1IDEuNjcgMC40MTUgOwotICAgICAgICBSRUNUIDEuNjM1IDAuODMgMS42OTUgMS4zOTUgOwotICAgICAgICBSRUNUIDEuNjU1IDAuMzU1IDEuNzE1IDAuODggOwotICAgICAgICBSRUNUIDEuNjU1IDAuNiAxLjc0IDAuODggOwotICAgICAgICBSRUNUIDIuMDIgMC4yMzUgMi4wOCAwLjY2IDsKLSAgICAgICAgUkVDVCAyLjA0NSAwLjYgMi4xMDUgMS4zOTUgOwotICAgICAgICBSRUNUIDEuNjU1IDAuNiAyLjQ3IDAuNjYgOwotICAgICAgICBSRUNUIDIuNDEgMC40ODUgMi40NyAwLjk4NSA7Ci0gICAgICAgIFJFQ1QgMi40MyAwLjIzNSAyLjQ5IDAuNTQ1IDsKLSAgICAgICAgUkVDVCAyLjQ1NSAwLjkyNSAyLjUxNSAxLjM5NSA7Ci0gICAgRU5ECi0gIEVORCBZCi0gIFBJTiBCCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAxLjI2IDAuNjc1IDEuMzQgMS4xNzUgOwotICAgIEVORAotICBFTkQgQgotICBQSU4gQQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC41OCAwLjYxNSAwLjY2IDAuOTk1IDsKLSAgICAgICAgUkVDVCAwLjQ2IDAuNzkgMC42NiAwLjk5NSA7Ci0gICAgRU5ECi0gIEVORCBBCi0gIFBJTiBTMAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4yNiAwLjkxNSAwLjM2IDEuMTEgOwotICAgICAgICBSRUNUIDAuNzYgMC45MTUgMC44NCAxLjE3NSA7Ci0gICAgICAgIFJFQ1QgMC4yOCAxLjA5NSAwLjg0IDEuMTc1IDsKLSAgICBFTkQKLSAgRU5EIFMwCi0gIFBJTiBWREQKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgUE9XRVIgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWREQgVkREISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAxLjY1IDIuNiAxLjcxIDsKLSAgICBFTkQKLSAgRU5EIFZERAotICBQSU4gVlNTCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIEdST1VORCA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZTUyBWU1MhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDAuMDAgMi42IDAuMDYgOwotICAgIEVORAotICBFTkQgVlNTCi1FTkQgQ0xLTVgyWDYKLQotTUFDUk8gRURGRlRSWDQKLSAgQ0xBU1MgQ09SRSA7Ci0gIE9SSUdJTiAwIDAgOwotICBGT1JFSUdOIEVERkZUUlg0IDAgMCA7Ci0gIFNJWkUgOC40IEJZIDEuNzEgOwotICBTWU1NRVRSWSBYIFkgOwotICBTSVRFIENvcmVTaXRlIDsKLSAgUElOIFFOCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBPVVRQVVQgOwotICAgIEFOVEVOTkFESUZGQVJFQSAxLjcyODUgIExBWUVSIE1ldGFsMSA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCA3LjI2IDAuNzkgNy4zNCAwLjkyIDsKLSAgICAgICAgUkVDVCA3LjI4IDAuNDM1IDcuMzQgMC45OSA7Ci0gICAgICAgIFJFQ1QgNy4yOCAwLjQzNSA3LjM0NSAwLjU3NSA7Ci0gICAgICAgIFJFQ1QgNy42OTUgMC40MzUgNy43NTUgMC41NzUgOwotICAgICAgICBSRUNUIDcuMjggMC41MTUgNy43NTUgMC41NzUgOwotICAgICAgICBSRUNUIDcuMjggMC45MyA3Ljg5IDAuOTkgOwotICAgIEVORAotICBFTkQgUU4KLSAgUElOIFEKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIE9VVFBVVCA7Ci0gICAgQU5URU5OQURJRkZBUkVBIDEuNzI4NSAgTEFZRVIgTWV0YWwxIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDYuNDY1IDAuNDM1IDYuNTI1IDAuNTc1IDsKLSAgICAgICAgUkVDVCA2LjY2IDAuNTE1IDYuNzIgMC45OSA7Ci0gICAgICAgIFJFQ1QgNi42NiAwLjc5IDYuNzQgMC45OSA7Ci0gICAgICAgIFJFQ1QgNi44NzUgMC40MzUgNi45MzUgMC41NzUgOwotICAgICAgICBSRUNUIDYuNDY1IDAuNTE1IDYuOTM1IDAuNTc1IDsKLSAgICAgICAgUkVDVCA2LjM2IDAuOTMgNi45NSAwLjk5IDsKLSAgICBFTkQKLSAgRU5EIFEKLSAgUElOIENLCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCA1LjQzNSAwLjYzIDUuNjU1IDAuOTYgOwotICAgICAgICBSRUNUIDUuNDM1IDAuODE1IDUuNjYgMC45NiA7Ci0gICAgICAgIFJFQ1QgNS40MSAwLjg4IDUuNjYgMC45NiA7Ci0gICAgRU5ECi0gIEVORCBDSwotICBQSU4gUk4KLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDIuNjggMC44MTUgMi45NjUgMC45NjUgOwotICAgICAgICBSRUNUIDIuNjggMC44MTUgMy4xMSAwLjg5NSA7Ci0gICAgRU5ECi0gIEVORCBSTgotICBQSU4gRQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC43MDUgMC44MDUgMC43NjUgMS4yNzUgOwotICAgICAgICBSRUNUIDAuNjM1IDEuMTk1IDAuNzY1IDEuMjc1IDsKLSAgICAgICAgUkVDVCAxLjMwNSAwLjg2IDEuMzY1IDEuMjc1IDsKLSAgICAgICAgUkVDVCAwLjYzNSAxLjIxNSAxLjM2NSAxLjI3NSA7Ci0gICAgICAgIFJFQ1QgMS4zMDUgMC44NiAxLjQ1IDAuOTIgOwotICAgIEVORAotICBFTkQgRQotICBQSU4gRAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4yNiAwLjc5IDAuMzQgMC45NyA7Ci0gICAgICAgIFJFQ1QgMC41MjUgMC43MzUgMC42MDUgMC45MiA7Ci0gICAgICAgIFJFQ1QgMC4yNiAwLjc5IDAuNjA1IDAuOTIgOwotICAgIEVORAotICBFTkQgRAotICBQSU4gVkRECi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIFBPV0VSIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVkREIFZERCEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMS42NSA4LjQgMS43MSA7Ci0gICAgRU5ECi0gIEVORCBWREQKLSAgUElOIFZTUwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBHUk9VTkQgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWU1MgVlNTISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAwLjAwIDguNCAwLjA2IDsKLSAgICBFTkQKLSAgRU5EIFZTUwotRU5EIEVERkZUUlg0Ci0KLU1BQ1JPIE5PUjJCWDEKLSAgQ0xBU1MgQ09SRSA7Ci0gIE9SSUdJTiAwIDAgOwotICBGT1JFSUdOIE5PUjJCWDEgMCAwIDsKLSAgU0laRSAxIEJZIDEuNzEgOwotICBTWU1NRVRSWSBYIFkgOwotICBTSVRFIENvcmVTaXRlIDsKLSAgUElOIFkKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIE9VVFBVVCA7Ci0gICAgQU5URU5OQURJRkZBUkVBIDEuNzI4NSAgTEFZRVIgTWV0YWwxIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDYgMC42IDAuMTQgMC43MyA7Ci0gICAgICAgIFJFQ1QgMC4wOCAwLjQ1IDAuMTQgMS4yNyA7Ci0gICAgICAgIFJFQ1QgMC4wOCAxLjIxIDAuMzEgMS4yNyA7Ci0gICAgICAgIFJFQ1QgMC4yNSAxLjIxIDAuMzEgMS4zMyA7Ci0gICAgICAgIFJFQ1QgMC4zMSAwLjQzIDAuNDE1IDAuNDkgOwotICAgICAgICBSRUNUIDAuMDggMC40NSAwLjM3IDAuNTEgOwotICAgICAgICBSRUNUIDAuMzU1IDAuMzcgMC40MTUgMC40OSA7Ci0gICAgRU5ECi0gIEVORCBZCi0gIFBJTiBBTgotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC40NCAwLjgxNSAwLjc2NSAwLjg5NSA7Ci0gICAgICAgIFJFQ1QgMC42ODUgMC43NSAwLjc2NSAxLjAwNSA7Ci0gICAgRU5ECi0gIEVORCBBTgotICBQSU4gQgotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4yNiAwLjYxIDAuMzQgMS4xMSA7Ci0gICAgRU5ECi0gIEVORCBCCi0gIFBJTiBWREQKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgUE9XRVIgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWREQgVkREISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAxLjY1IDEgMS43MSA7Ci0gICAgRU5ECi0gIEVORCBWREQKLSAgUElOIFZTUwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBHUk9VTkQgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWU1MgVlNTISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAwLjAwIDEgMC4wNiA7Ci0gICAgRU5ECi0gIEVORCBWU1MKLUVORCBOT1IyQlgxCi0KLU1BQ1JPIFNERkZTUlgxCi0gIENMQVNTIENPUkUgOwotICBPUklHSU4gMCAwIDsKLSAgRk9SRUlHTiBTREZGU1JYMSAwIDAgOwotICBTSVpFIDcuNCBCWSAxLjcxIDsKLSAgU1lNTUVUUlkgWCBZIDsKLSAgU0lURSBDb3JlU2l0ZSA7Ci0gIFBJTiBRCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBPVVRQVVQgOwotICAgIEFOVEVOTkFESUZGQVJFQSAxLjcyODUgIExBWUVSIE1ldGFsMSA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjg2IDAuNiAwLjk0IDAuNzMgOwotICAgICAgICBSRUNUIDAuODggMC40NCAwLjk0IDAuODkgOwotICAgICAgICBSRUNUIDAuODk1IDAuMzY1IDAuOTU1IDAuNDg1IDsKLSAgICAgICAgUkVDVCAwLjg5NSAwLjgzIDAuOTU1IDEuNDMgOwotICAgIEVORAotICBFTkQgUQotICBQSU4gUU4KLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIE9VVFBVVCA7Ci0gICAgQU5URU5OQURJRkZBUkVBIDEuNzI4NSAgTEFZRVIgTWV0YWwxIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDYgMC42IDAuMzIgMC43MyA7Ci0gICAgICAgIFJFQ1QgMC4yNCAwLjU0IDAuMzIgMS4yOSA7Ci0gICAgRU5ECi0gIEVORCBRTgotICBQSU4gU0UKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDYuMzU1IDAuNjU1IDYuNDE1IDEgOwotICAgICAgICBSRUNUIDYuNjc1IDAuNTk1IDYuNzM1IDAuNzE1IDsKLSAgICAgICAgUkVDVCA2LjgzNSAwLjYyNSA3LjE0IDAuNzE1IDsKLSAgICAgICAgUkVDVCA2LjM1NSAwLjY1NSA3LjE0IDAuNzE1IDsKLSAgICAgICAgUkVDVCA3LjA4IDAuNjI1IDcuMTQgMC43NDUgOwotICAgIEVORAotICBFTkQgU0UKLSAgUElOIFNJCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCA2LjYzNSAwLjgxNSA2Ljk4IDAuOTMgOwotICAgICAgICBSRUNUIDYuNTE1IDAuODUgNi45OCAwLjkzIDsKLSAgICBFTkQKLSAgRU5EIFNJCi0gIFBJTiBECi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCA1LjU5NSAwLjgxNSA2LjA5NSAwLjg5NSA7Ci0gICAgRU5ECi0gIEVORCBECi0gIFBJTiBDSwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgNS42MDUgMS4wMDUgNS43NjUgMS4wODUgOwotICAgICAgICBSRUNUIDUuNjg1IDAuOTk1IDYuMDk1IDEuMDc1IDsKLSAgICBFTkQKLSAgRU5EIENLCi0gIFBJTiBTTgotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMS45OTUgMC44MTUgMi4xNjUgMC44NzUgOwotICAgICAgICBSRUNUIDIuMDM1IDAuODE1IDIuMTY1IDAuOTg1IDsKLSAgICAgICAgUkVDVCAyLjAzNSAwLjkyNSAzLjA0NSAwLjk4NSA7Ci0gICAgICAgIFJFQ1QgMi45ODUgMC45MjUgMy4wNDUgMS4yMTUgOwotICAgICAgICBSRUNUIDIuOTg1IDEuMTU1IDMuOTQ1IDEuMjE1IDsKLSAgICAgICAgUkVDVCAzLjg4NSAxLjE1NSAzLjk0NSAxLjM3NSA7Ci0gICAgICAgIFJFQ1QgMy44ODUgMS4zMTUgNC40IDEuMzc1IDsKLSAgICBFTkQKLSAgRU5EIFNOCi0gIFBJTiBSTgotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMS4yNiAwLjcxIDEuMzQgMS4yMSA7Ci0gICAgRU5ECi0gIEVORCBSTgotICBQSU4gVkRECi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIFBPV0VSIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVkREIFZERCEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMS42NSA3LjQgMS43MSA7Ci0gICAgRU5ECi0gIEVORCBWREQKLSAgUElOIFZTUwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBHUk9VTkQgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWU1MgVlNTISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAwLjAwIDcuNCAwLjA2IDsKLSAgICBFTkQKLSAgRU5EIFZTUwotRU5EIFNERkZTUlgxCi0KLU1BQ1JPIENMS0FORDJYMgotICBDTEFTUyBDT1JFIDsKLSAgT1JJR0lOIDAgMCA7Ci0gIEZPUkVJR04gQ0xLQU5EMlgyIDAgMCA7Ci0gIFNJWkUgMS4yIEJZIDEuNzEgOwotICBTWU1NRVRSWSBYIFkgOwotICBTSVRFIENvcmVTaXRlIDsKLSAgUElOIFkKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIE9VVFBVVCA7Ci0gICAgQU5URU5OQURJRkZBUkVBIDEuNzI4NSAgTEFZRVIgTWV0YWwxIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuNzA1IDAuMyAwLjc2NSAwLjQyIDsKLSAgICAgICAgUkVDVCAwLjcwNSAwLjgyIDAuNzY1IDEuMzQgOwotICAgICAgICBSRUNUIDAuNzA1IDAuMzYgMC44NiAwLjQyIDsKLSAgICAgICAgUkVDVCAwLjggMC4zNiAwLjg2IDAuODggOwotICAgICAgICBSRUNUIDAuNzA1IDAuODIgMC44NiAwLjg4IDsKLSAgICAgICAgUkVDVCAwLjggMC42IDAuOTQgMC43MyA7Ci0gICAgRU5ECi0gIEVORCBZCi0gIFBJTiBBCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjQgMC42OCAwLjQ4NSAxLjA2IDsKLSAgICAgICAgUkVDVCAwLjQ2IDAuOTggMC41NCAxLjEyIDsKLSAgICBFTkQKLSAgRU5EIEEKLSAgUElOIEIKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDYgMC43OSAwLjE0IDEuMjkgOwotICAgIEVORAotICBFTkQgQgotICBQSU4gVkRECi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIFBPV0VSIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVkREIFZERCEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMS42NSAxLjIgMS43MSA7Ci0gICAgRU5ECi0gIEVORCBWREQKLSAgUElOIFZTUwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBHUk9VTkQgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWU1MgVlNTISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAwLjAwIDEuMiAwLjA2IDsKLSAgICBFTkQKLSAgRU5EIFZTUwotRU5EIENMS0FORDJYMgotCi1NQUNSTyBPQUkyMlgxCi0gIENMQVNTIENPUkUgOwotICBPUklHSU4gMCAwIDsKLSAgRk9SRUlHTiBPQUkyMlgxIDAgMCA7Ci0gIFNJWkUgMS40IEJZIDEuNzEgOwotICBTWU1NRVRSWSBYIFkgOwotICBTSVRFIENvcmVTaXRlIDsKLSAgUElOIFkKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIE9VVFBVVCA7Ci0gICAgQU5URU5OQURJRkZBUkVBIDEuNzI4NSAgTEFZRVIgTWV0YWwxIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuNjYgMC43OSAwLjc0IDAuOTIgOwotICAgICAgICBSRUNUIDAuNjggMC43NSAwLjc0IDEuNDYgOwotICAgICAgICBSRUNUIDAuNjggMC43NSAwLjg5NSAwLjgxIDsKLSAgICAgICAgUkVDVCAwLjgzNSAwLjU4IDAuODk1IDAuODEgOwotICAgICAgICBSRUNUIDAuOTA1IDAuNTIgMC45NjUgMC42NCA7Ci0gICAgICAgIFJFQ1QgMC44MzUgMC41OCAwLjk2NSAwLjY0IDsKLSAgICBFTkQKLSAgRU5EIFkKLSAgUElOIEExCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjQ4IDAuNzUgMC41NiAxLjIzIDsKLSAgICAgICAgUkVDVCAwLjQ2IDAuOSAwLjU2IDEuMjMgOwotICAgIEVORAotICBFTkQgQTEKLSAgUElOIEEwCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjEyIDAuNzUgMC4zNCAwLjgzIDsKLSAgICAgICAgUkVDVCAwLjI2IDAuNzUgMC4zNCAxLjExIDsKLSAgICBFTkQKLSAgRU5EIEEwCi0gIFBJTiBCMAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMS4wNiAwLjc0IDEuMTQgMS4yNCA7Ci0gICAgRU5ECi0gIEVORCBCMAotICBQSU4gQjEKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuODQgMC45MSAwLjkyIDEuMjMgOwotICAgICAgICBSRUNUIDAuODYgMS4xNyAwLjk0IDEuMzkgOwotICAgIEVORAotICBFTkQgQjEKLSAgUElOIFZERAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBQT1dFUiA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZERCBWREQhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDEuNjUgMS40IDEuNzEgOwotICAgIEVORAotICBFTkQgVkRECi0gIFBJTiBWU1MKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgR1JPVU5EIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVlNTIFZTUyEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMC4wMCAxLjQgMC4wNiA7Ci0gICAgRU5ECi0gIEVORCBWU1MKLUVORCBPQUkyMlgxCi0KLU1BQ1JPIERGRlNSWDIKLSAgQ0xBU1MgQ09SRSA7Ci0gIE9SSUdJTiAwIDAgOwotICBGT1JFSUdOIERGRlNSWDIgMCAwIDsKLSAgU0laRSA4IEJZIDEuNzEgOwotICBTWU1NRVRSWSBYIFkgOwotICBTSVRFIENvcmVTaXRlIDsKLSAgUElOIFFOCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBPVVRQVVQgOwotICAgIEFOVEVOTkFESUZGQVJFQSAxLjcyODUgIExBWUVSIE1ldGFsMSA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCA3LjI2IDAuNTcgNy4zNCAxLjExIDsKLSAgICAgICAgUkVDVCA3LjI4NSAwLjkxNSA3LjM2NSAxLjMwNSA7Ci0gICAgICAgIFJFQ1QgNy4yNiAwLjU3IDcuNDU1IDAuNjUgOwotICAgIEVORAotICBFTkQgUU4KLSAgUElOIFEKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIE9VVFBVVCA7Ci0gICAgQU5URU5OQURJRkZBUkVBIDEuNzI4NSAgTEFZRVIgTWV0YWwxIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDYuODYgMC45OCA2Ljk2IDEuMTEgOwotICAgICAgICBSRUNUIDYuODggMC41NCA2Ljk2IDEuMzA1IDsKLSAgICBFTkQKLSAgRU5EIFEKLSAgUElOIFJOCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCA2LjU0IDAuNzA1IDYuNjIgMS4wODUgOwotICAgICAgICBSRUNUIDYuNDIgMS4wMDUgNi42MiAxLjA4NSA7Ci0gICAgRU5ECi0gIEVORCBSTgotICBQSU4gU04KLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDEuODM1IDAuODE1IDEuOTk1IDEuMDY1IDsKLSAgICBFTkQKLSAgRU5EIFNOCi0gIFBJTiBECi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjY1NSAwLjgxNSAwLjk2NSAxLjAzIDsKLSAgICAgICAgUkVDVCAwLjY1NSAwLjk1IDEuMDIgMS4wMyA7Ci0gICAgRU5ECi0gIEVORCBECi0gIFBJTiBDSwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wNiAwLjQxIDAuMTQgMC41NCA7Ci0gICAgICAgIFJFQ1QgMC4wNiAwLjQ2IDAuMjM1IDAuNTQgOwotICAgICAgICBSRUNUIDAuMTU1IDAuNDYgMC4yMzUgMC44MTUgOwotICAgIEVORAotICBFTkQgQ0sKLSAgUElOIFZERAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBQT1dFUiA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZERCBWREQhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDEuNjUgOCAxLjcxIDsKLSAgICBFTkQKLSAgRU5EIFZERAotICBQSU4gVlNTCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIEdST1VORCA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZTUyBWU1MhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDAuMDAgOCAwLjA2IDsKLSAgICBFTkQKLSAgRU5EIFZTUwotRU5EIERGRlNSWDIKLQotTUFDUk8gT0FJMzJYMQotICBDTEFTUyBDT1JFIDsKLSAgT1JJR0lOIDAgMCA7Ci0gIEZPUkVJR04gT0FJMzJYMSAwIDAgOwotICBTSVpFIDEuNiBCWSAxLjcxIDsKLSAgU1lNTUVUUlkgWCBZIDsKLSAgU0lURSBDb3JlU2l0ZSA7Ci0gIFBJTiBZCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBPVVRQVVQgOwotICAgIEFOVEVOTkFESUZGQVJFQSAxLjcyODUgIExBWUVSIE1ldGFsMSA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjg2IDAuNzkgMC45NCAwLjkyIDsKLSAgICAgICAgUkVDVCAwLjg4IDAuNjUgMC45NCAxLjM2IDsKLSAgICAgICAgUkVDVCAxLjIgMC40NCAxLjI2IDAuNzEgOwotICAgICAgICBSRUNUIDAuODggMC42NSAxLjI2IDAuNzEgOwotICAgIEVORAotICBFTkQgWQotICBQSU4gQTAKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMjYgMC41MiAwLjM0IDEuMDIgOwotICAgIEVORAotICBFTkQgQTAKLSAgUElOIEExCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjQ2IDAuOCAwLjU0IDEuMyA7Ci0gICAgRU5ECi0gIEVORCBBMQotICBQSU4gQjEKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDEuMDYgMC44MSAxLjE0IDEuMzEgOwotICAgIEVORAotICBFTkQgQjEKLSAgUElOIEEyCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjY2IDAuOTggMC43NCAxLjEzIDsKLSAgICAgICAgUkVDVCAwLjY4IDAuNjUgMC43NiAxLjA0IDsKLSAgICBFTkQKLSAgRU5EIEEyCi0gIFBJTiBCMAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMS4zNiAwLjUyIDEuNDQgMC45MiA7Ci0gICAgICAgIFJFQ1QgMS4zNiAwLjUyIDEuNTQgMC43MyA7Ci0gICAgRU5ECi0gIEVORCBCMAotICBQSU4gVkRECi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIFBPV0VSIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVkREIFZERCEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMS42NSAxLjYgMS43MSA7Ci0gICAgRU5ECi0gIEVORCBWREQKLSAgUElOIFZTUwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBHUk9VTkQgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWU1MgVlNTISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAwLjAwIDEuNiAwLjA2IDsKLSAgICBFTkQKLSAgRU5EIFZTUwotRU5EIE9BSTMyWDEKLQotTUFDUk8gVExBVE5DQVg2Ci0gIENMQVNTIENPUkUgOwotICBPUklHSU4gMCAwIDsKLSAgRk9SRUlHTiBUTEFUTkNBWDYgMCAwIDsKLSAgU0laRSA0LjQgQlkgMS43MSA7Ci0gIFNZTU1FVFJZIFggWSA7Ci0gIFNJVEUgQ29yZVNpdGUgOwotICBQSU4gRUNLCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBPVVRQVVQgOwotICAgIEFOVEVOTkFESUZGQVJFQSAxLjcyODUgIExBWUVSIE1ldGFsMSA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAzLjI2IDAuMzUgMy4zMiAxLjM4IDsKLSAgICAgICAgUkVDVCAzLjI2IDAuNiAzLjM0IDAuODEgOwotICAgICAgICBSRUNUIDMuNjcgMC4zNSAzLjczIDEuMzggOwotICAgICAgICBSRUNUIDMuMjYgMC43NSA0LjE0IDAuODEgOwotICAgICAgICBSRUNUIDQuMDggMC4zNSA0LjE0IDEuMzggOwotICAgIEVORAotICBFTkQgRUNLCi0gIFBJTiBFCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjYgMC45MiAwLjY4IDEuMDg1IDsKLSAgICAgICAgUkVDVCAwLjYgMS4wMDUgMC43NjUgMS4wODUgOwotICAgICAgICBSRUNUIDAuNjg1IDEuMDA1IDAuNzY1IDEuMzM1IDsKLSAgICBFTkQKLSAgRU5EIEUKLSAgUElOIENLCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjIzNSAwLjc3NSAwLjUgMC44OTUgOwotICAgICAgICBSRUNUIDAuNDIgMC43MjUgMC41IDEuMDQgOwotICAgIEVORAotICBFTkQgQ0sKLSAgUElOIFZERAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBQT1dFUiA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZERCBWREQhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDEuNjUgNC40IDEuNzEgOwotICAgIEVORAotICBFTkQgVkRECi0gIFBJTiBWU1MKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgR1JPVU5EIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVlNTIFZTUyEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMC4wMCA0LjQgMC4wNiA7Ci0gICAgRU5ECi0gIEVORCBWU1MKLUVORCBUTEFUTkNBWDYKLQotTUFDUk8gT0EyMlhMCi0gIENMQVNTIENPUkUgOwotICBPUklHSU4gMCAwIDsKLSAgRk9SRUlHTiBPQTIyWEwgMCAwIDsKLSAgU0laRSAxLjggQlkgMS43MSA7Ci0gIFNZTU1FVFJZIFggWSA7Ci0gIFNJVEUgQ29yZVNpdGUgOwotICBQSU4gWQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gT1VUUFVUIDsKLSAgICBBTlRFTk5BRElGRkFSRUEgMS43Mjg1ICBMQVlFUiBNZXRhbDEgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMS4zIDEuMzkgMS41NCAxLjQ5IDsKLSAgICAgICAgUkVDVCAxLjQ2IDEuMzYgMS42NTUgMS40MiA7Ci0gICAgICAgIFJFQ1QgMS41OTUgMC40MjUgMS42NTUgMS40MiA7Ci0gICAgRU5ECi0gIEVORCBZCi0gIFBJTiBCMAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMS4wNiAwLjc2IDEuMTQgMS4yNiA7Ci0gICAgRU5ECi0gIEVORCBCMAotICBQSU4gQTEKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuNDYgMC42IDAuNTYgMC43MyA7Ci0gICAgICAgIFJFQ1QgMC40OCAwLjYgMC41NiAxLjA4IDsKLSAgICBFTkQKLSAgRU5EIEExCi0gIFBJTiBBMAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4yNiAwLjYgMC4zNCAxLjEgOwotICAgIEVORAotICBFTkQgQTAKLSAgUElOIEIxCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjY2IDAuOTggMC43NCAxLjExIDsKLSAgICAgICAgUkVDVCAwLjcyIDAuNjcgMC44IDEuMDYgOwotICAgIEVORAotICBFTkQgQjEKLSAgUElOIFZERAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBQT1dFUiA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZERCBWREQhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDEuNjUgMS44IDEuNzEgOwotICAgIEVORAotICBFTkQgVkRECi0gIFBJTiBWU1MKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgR1JPVU5EIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVlNTIFZTUyEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMC4wMCAxLjggMC4wNiA7Ci0gICAgRU5ECi0gIEVORCBWU1MKLUVORCBPQTIyWEwKLQotTUFDUk8gQU5EMlg4Ci0gIENMQVNTIENPUkUgOwotICBPUklHSU4gMCAwIDsKLSAgRk9SRUlHTiBBTkQyWDggMCAwIDsKLSAgU0laRSAyLjYgQlkgMS43MSA7Ci0gIFNZTU1FVFJZIFggWSA7Ci0gIFNJVEUgQ29yZVNpdGUgOwotICBQSU4gWQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gT1VUUFVUIDsKLSAgICBBTlRFTk5BRElGRkFSRUEgMS43Mjg1ICBMQVlFUiBNZXRhbDEgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMS4wNDUgMC40OCAxLjE2NSAwLjU0IDsKLSAgICAgICAgUkVDVCAxLjEzIDAuOTggMS4xOSAxLjQyNSA7Ci0gICAgICAgIFJFQ1QgMS40NTUgMC40OCAxLjU3NSAwLjU1NSA7Ci0gICAgICAgIFJFQ1QgMS41NCAwLjk4IDEuNiAxLjQyNSA7Ci0gICAgICAgIFJFQ1QgMS44NjUgMC40OCAxLjk4NSAwLjU1NSA7Ci0gICAgICAgIFJFQ1QgMS45NSAwLjk4IDIuMDEgMS40MjUgOwotICAgICAgICBSRUNUIDIuMDYgMC40OTUgMi4xMiAxLjA0IDsKLSAgICAgICAgUkVDVCAyLjA2IDAuNDk1IDIuMTQgMC43MyA7Ci0gICAgICAgIFJFQ1QgMS4xMDUgMC40OTUgMi4zMDUgMC41NTUgOwotICAgICAgICBSRUNUIDEuMTMgMC45OCAyLjQyIDEuMDQgOwotICAgICAgICBSRUNUIDIuMjYgMC40OCAyLjM5NSAwLjU0IDsKLSAgICAgICAgUkVDVCAyLjM2IDAuOTggMi40MiAxLjQyNSA7Ci0gICAgRU5ECi0gIEVORCBZCi0gIFBJTiBCCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjQzNSAwLjgwNSAwLjYwNSAxLjA0NSA7Ci0gICAgRU5ECi0gIEVORCBCCi0gIFBJTiBBCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjIxNSAwLjYyNSAwLjMzNSAwLjcxIDsKLSAgICAgICAgUkVDVCAwLjAzNSAwLjYyNSAwLjc4NSAwLjcwNSA7Ci0gICAgICAgIFJFQ1QgMC43MDUgMC42MjUgMC43ODUgMC43NDUgOwotICAgIEVORAotICBFTkQgQQotICBQSU4gVkRECi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIFBPV0VSIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVkREIFZERCEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMS42NSAyLjYgMS43MSA7Ci0gICAgRU5ECi0gIEVORCBWREQKLSAgUElOIFZTUwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBHUk9VTkQgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWU1MgVlNTISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAwLjAwIDIuNiAwLjA2IDsKLSAgICBFTkQKLSAgRU5EIFZTUwotRU5EIEFORDJYOAotCi1NQUNSTyBUTEFUTlg0Ci0gIENMQVNTIENPUkUgOwotICBPUklHSU4gMCAwIDsKLSAgRk9SRUlHTiBUTEFUTlg0IDAgMCA7Ci0gIFNJWkUgNS4yIEJZIDEuNzEgOwotICBTWU1NRVRSWSBYIFkgOwotICBTSVRFIENvcmVTaXRlIDsKLSAgUElOIFFOCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBPVVRQVVQgOwotICAgIEFOVEVOTkFESUZGQVJFQSAxLjcyODUgIExBWUVSIE1ldGFsMSA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAyLjUzIDEuMDA1IDIuNTkgMS4zNCA7Ci0gICAgICAgIFJFQ1QgMi42NSAwLjQ1NSAyLjcxIDAuNTc1IDsKLSAgICAgICAgUkVDVCAyLjUzIDEuMDA1IDIuNzY1IDEuMDg1IDsKLSAgICAgICAgUkVDVCAyLjg2NSAwLjUxNSAyLjkyNSAxLjA2NSA7Ci0gICAgICAgIFJFQ1QgMi41MyAxLjAwNSAzIDEuMDY1IDsKLSAgICAgICAgUkVDVCAyLjk0IDEuMDA1IDMgMS4zNCA7Ci0gICAgICAgIFJFQ1QgMy4xMiAwLjQ1NSAzLjE4IDAuNTc1IDsKLSAgICAgICAgUkVDVCAyLjY1IDAuNTE1IDMuMTggMC41NzUgOwotICAgIEVORAotICBFTkQgUU4KLSAgUElOIFEKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIE9VVFBVVCA7Ci0gICAgQU5URU5OQURJRkZBUkVBIDEuNzI4NSAgTEFZRVIgTWV0YWwxIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuNzcgMC40NTUgMC44MyAwLjU3NSA7Ci0gICAgICAgIFJFQ1QgMC44NiAwLjc5IDAuOTIgMS4zNCA7Ci0gICAgICAgIFJFQ1QgMC44OCAwLjUxNSAwLjk0IDEuMDEgOwotICAgICAgICBSRUNUIDAuODYgMC45NSAxLjMzIDEuMDEgOwotICAgICAgICBSRUNUIDEuMjQgMC40NTUgMS4zIDAuNTc1IDsKLSAgICAgICAgUkVDVCAwLjc3IDAuNTE1IDEuMyAwLjU3NSA7Ci0gICAgICAgIFJFQ1QgMS4yNyAwLjk1IDEuMzMgMS4zNCA7Ci0gICAgRU5ECi0gIEVORCBRCi0gIFBJTiBECi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCA0LjY2IDAuNjIgNC43NCAxLjEyIDsKLSAgICBFTkQKLSAgRU5EIEQKLSAgUElOIEdOCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjQzNSAwLjU2NSAwLjU4NSAwLjg1IDsKLSAgICAgICAgUkVDVCAwLjM3NSAwLjc3IDAuNTg1IDAuODUgOwotICAgICAgICBSRUNUIDAuNDM1IDAuNTY1IDAuNjcgMC43MDUgOwotICAgIEVORAotICBFTkQgR04KLSAgUElOIFZERAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBQT1dFUiA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZERCBWREQhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDEuNjUgNS4yIDEuNzEgOwotICAgIEVORAotICBFTkQgVkRECi0gIFBJTiBWU1MKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgR1JPVU5EIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVlNTIFZTUyEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMC4wMCA1LjIgMC4wNiA7Ci0gICAgRU5ECi0gIEVORCBWU1MKLUVORCBUTEFUTlg0Ci0KLU1BQ1JPIFNNREZGSFFYOAotICBDTEFTUyBDT1JFIDsKLSAgT1JJR0lOIDAgMCA7Ci0gIEZPUkVJR04gU01ERkZIUVg4IDAgMCA7Ci0gIFNJWkUgOCBCWSAxLjcxIDsKLSAgU1lNTUVUUlkgWCBZIDsKLSAgU0lURSBDb3JlU2l0ZSA7Ci0gIFBJTiBTMAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgNi44NiAwLjY5NSA2LjkyIDAuOTQ1IDsKLSAgICAgICAgUkVDVCA2LjggMC44ODUgNi45MiAwLjk0NSA7Ci0gICAgICAgIFJFQ1QgNi44NiAwLjY5NSA3LjA4IDAuNzU1IDsKLSAgICAgICAgUkVDVCA3LjAzNSAwLjYyNSA3LjIwNSAwLjcwNSA7Ci0gICAgICAgIFJFQ1QgNy4wMiAwLjY0NSA3LjcxNSAwLjcwNSA7Ci0gICAgICAgIFJFQ1QgNy42NTUgMC42NDUgNy43MTUgMC43NjUgOwotICAgIEVORAotICBFTkQgUzAKLSAgUElOIEQxCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCA3LjE4IDAuODA1IDcuMzc1IDEuMDEgOwotICAgICAgICBSRUNUIDcuMTggMC44MDUgNy41NTUgMC44ODUgOwotICAgIEVORAotICBFTkQgRDEKLSAgUElOIEQwCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCA2LjQ2IDAuNTM1IDYuNTQgMC45OTUgOwotICAgICAgICBSRUNUIDYuNDIgMC44ODUgNi41NCAwLjk5NSA7Ci0gICAgRU5ECi0gIEVORCBEMAotICBQSU4gU0UKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDYuMjQgMC42NSA2LjMyIDEuMDA1IDsKLSAgICAgICAgUkVDVCA2LjI2IDAuNTI1IDYuMzQgMC43MyA7Ci0gICAgRU5ECi0gIEVORCBTRQotICBQSU4gU0kKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDUuMjYgMC41NjUgNS4zNCAxLjAxIDsKLSAgICAgICAgUkVDVCA1LjI2IDAuODYgNS4zOTUgMS4wMSA7Ci0gICAgRU5ECi0gIEVORCBTSQotICBQSU4gQ0sKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDIuODIgMC42NCAyLjkzIDAuODk1IDsKLSAgICAgICAgUkVDVCAyLjYwNSAwLjgxNSAyLjkzIDAuODk1IDsKLSAgICBFTkQKLSAgRU5EIENLCi0gIFBJTiBRCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBPVVRQVVQgOwotICAgIEFOVEVOTkFESUZGQVJFQSAxLjcyODUgIExBWUVSIE1ldGFsMSA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjA2IDAuNiAwLjE0IDAuNzMgOwotICAgICAgICBSRUNUIDAuMDggMC41NCAwLjE0IDEuMzQ1IDsKLSAgICAgICAgUkVDVCAwLjQ5IDAuNTQgMC41NSAxLjM0NSA7Ci0gICAgICAgIFJFQ1QgMC4wNiAwLjYgMC45NiAwLjY2IDsKLSAgICAgICAgUkVDVCAwLjkgMC41NCAwLjk2IDEuMzQ1IDsKLSAgICAgICAgUkVDVCAwLjkgMC43NCAxLjMyNSAwLjggOwotICAgICAgICBSRUNUIDEuMjY1IDAuNTkgMS4zMjUgMC45NiA7Ci0gICAgICAgIFJFQ1QgMS4zMSAwLjUzIDEuMzcgMC42NSA7Ci0gICAgICAgIFJFQ1QgMS4zMSAwLjkgMS4zNyAxLjM0NSA7Ci0gICAgRU5ECi0gIEVORCBRCi0gIFBJTiBWREQKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgUE9XRVIgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWREQgVkREISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAxLjY1IDggMS43MSA7Ci0gICAgRU5ECi0gIEVORCBWREQKLSAgUElOIFZTUwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBHUk9VTkQgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWU1MgVlNTISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAwLjAwIDggMC4wNiA7Ci0gICAgRU5ECi0gIEVORCBWU1MKLUVORCBTTURGRkhRWDgKLQotTUFDUk8gQU9JMjFYMQotICBDTEFTUyBDT1JFIDsKLSAgT1JJR0lOIDAgMCA7Ci0gIEZPUkVJR04gQU9JMjFYMSAwIDAgOwotICBTSVpFIDEuMiBCWSAxLjcxIDsKLSAgU1lNTUVUUlkgWCBZIDsKLSAgU0lURSBDb3JlU2l0ZSA7Ci0gIFBJTiBZCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBPVVRQVVQgOwotICAgIEFOVEVOTkFESUZGQVJFQSAxLjcyODUgIExBWUVSIE1ldGFsMSA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjU2IDAuMzYgMC42MiAwLjQ4IDsKLSAgICAgICAgUkVDVCAwLjU2IDAuNDIgMC45NCAwLjQ4IDsKLSAgICAgICAgUkVDVCAwLjg4IDAuNDIgMC45NCAxLjQ0IDsKLSAgICAgICAgUkVDVCAwLjg4IDAuNiAxLjE0IDAuNzMgOwotICAgIEVORAotICBFTkQgWQotICBQSU4gQTAKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMjYgMC41NiAwLjM0IDEuMDYgOwotICAgIEVORAotICBFTkQgQTAKLSAgUElOIEExCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjQ4IDAuNTggMC41NiAxLjA2IDsKLSAgICAgICAgUkVDVCAwLjQ2IDAuNzkgMC41NiAxLjA2IDsKLSAgICBFTkQKLSAgRU5EIEExCi0gIFBJTiBCMAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC42NiAwLjU4IDAuNzQgMS4wNCA7Ci0gICAgICAgIFJFQ1QgMC42NiAwLjU4IDAuNzggMC42NiA7Ci0gICAgRU5ECi0gIEVORCBCMAotICBQSU4gVkRECi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIFBPV0VSIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVkREIFZERCEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMS42NSAxLjIgMS43MSA7Ci0gICAgRU5ECi0gIEVORCBWREQKLSAgUElOIFZTUwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBHUk9VTkQgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWU1MgVlNTISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAwLjAwIDEuMiAwLjA2IDsKLSAgICBFTkQKLSAgRU5EIFZTUwotRU5EIEFPSTIxWDEKLQotTUFDUk8gREZGVFJYNAotICBDTEFTUyBDT1JFIDsKLSAgT1JJR0lOIDAgMCA7Ci0gIEZPUkVJR04gREZGVFJYNCAwIDAgOwotICBTSVpFIDYuNCBCWSAxLjcxIDsKLSAgU1lNTUVUUlkgWCBZIDsKLSAgU0lURSBDb3JlU2l0ZSA7Ci0gIFBJTiBRTgotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gT1VUUFVUIDsKLSAgICBBTlRFTk5BRElGRkFSRUEgMS43Mjg1ICBMQVlFUiBNZXRhbDEgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgNS4wNyAwLjQ4NSA1LjE0IDEuMjkgOwotICAgICAgICBSRUNUIDUuMDYgMC43OSA1LjE0IDEuMjkgOwotICAgICAgICBSRUNUIDUuMDYgMC45IDUuNTUgMC45NiA7Ci0gICAgICAgIFJFQ1QgNS40OSAwLjkgNS41NSAxLjI5IDsKLSAgICAgICAgUkVDVCA1LjA3IDAuNDg1IDUuNjYgMC41NDUgOwotICAgIEVORAotICBFTkQgUU4KLSAgUElOIFEKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIE9VVFBVVCA7Ci0gICAgQU5URU5OQURJRkZBUkVBIDEuNzI4NSAgTEFZRVIgTWV0YWwxIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDQuMjYgMC43OSA0LjMyIDEuMjkgOwotICAgICAgICBSRUNUIDQuMjggMC40ODUgNC4zNCAwLjk2IDsKLSAgICAgICAgUkVDVCA0LjI2IDAuOSA0LjczIDAuOTYgOwotICAgICAgICBSRUNUIDQuMTMgMC40ODUgNC43MiAwLjU0NSA7Ci0gICAgICAgIFJFQ1QgNC42NyAwLjkgNC43MyAxLjI5IDsKLSAgICBFTkQKLSAgRU5EIFEKLSAgUElOIENLCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAxLjEyNSAwLjYyNSAxLjQyIDAuODk1IDsKLSAgICAgICAgUkVDVCAxLjEyNSAwLjgxNSAxLjQzNSAwLjg5NSA7Ci0gICAgRU5ECi0gIEVORCBDSwotICBQSU4gRAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4zMjUgMC42OSAwLjQwNSAxLjA1NSA7Ci0gICAgICAgIFJFQ1QgMC4zMjUgMC43OSAwLjU0IDEuMDU1IDsKLSAgICBFTkQKLSAgRU5EIEQKLSAgUElOIFJOCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjA2IDAuOTggMC4xNCAxLjExIDsKLSAgICAgICAgUkVDVCAwLjA5NSAwLjY5NSAwLjIyNSAxLjA1NSA7Ci0gICAgRU5ECi0gIEVORCBSTgotICBQSU4gVkRECi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIFBPV0VSIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVkREIFZERCEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMS42NSA2LjQgMS43MSA7Ci0gICAgRU5ECi0gIEVORCBWREQKLSAgUElOIFZTUwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBHUk9VTkQgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWU1MgVlNTISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAwLjAwIDYuNCAwLjA2IDsKLSAgICBFTkQKLSAgRU5EIFZTUwotRU5EIERGRlRSWDQKLQotTUFDUk8gVExBVE5DQVgzCi0gIENMQVNTIENPUkUgOwotICBPUklHSU4gMCAwIDsKLSAgRk9SRUlHTiBUTEFUTkNBWDMgMCAwIDsKLSAgU0laRSAzLjQgQlkgMS43MSA7Ci0gIFNZTU1FVFJZIFggWSA7Ci0gIFNJVEUgQ29yZVNpdGUgOwotICBQSU4gRUNLCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBPVVRQVVQgOwotICAgIEFOVEVOTkFESUZGQVJFQSAxLjcyODUgIExBWUVSIE1ldGFsMSA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAyLjg0IDAuNTQgMi45MiAwLjY2IDsKLSAgICAgICAgUkVDVCAyLjg0IDEuMDEgMi45IDEuNCA7Ci0gICAgICAgIFJFQ1QgMi44NiAwLjU0IDIuOTIgMS4wNyA7Ci0gICAgICAgIFJFQ1QgMi44NiAwLjc5IDIuOTQgMS4wNyA7Ci0gICAgICAgIFJFQ1QgMi44NCAxLjAxIDMuMzEgMS4wNyA7Ci0gICAgICAgIFJFQ1QgMy4yNSAwLjU0IDMuMzEgMC42OCA7Ci0gICAgICAgIFJFQ1QgMi44NiAwLjYyIDMuMzEgMC42OCA7Ci0gICAgICAgIFJFQ1QgMy4yNSAxLjAxIDMuMzEgMS40IDsKLSAgICBFTkQKLSAgRU5EIEVDSwotICBQSU4gRQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC40OSAwLjgxNSAwLjg1NSAwLjg5NSA7Ci0gICAgICAgIFJFQ1QgMC43NzUgMC44MTUgMC44NTUgMS4wMyA7Ci0gICAgRU5ECi0gIEVORCBFCi0gIFBJTiBDSwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wNiAwLjQxIDAuMTQgMC41NCA7Ci0gICAgICAgIFJFQ1QgMC4wNiAwLjQ2IDAuMjMgMC41NCA7Ci0gICAgICAgIFJFQ1QgMC4xNSAwLjQ2IDAuMjMgMC44MiA7Ci0gICAgRU5ECi0gIEVORCBDSwotICBQSU4gVkRECi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIFBPV0VSIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVkREIFZERCEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMS42NSAzLjQgMS43MSA7Ci0gICAgRU5ECi0gIEVORCBWREQKLSAgUElOIFZTUwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBHUk9VTkQgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWU1MgVlNTISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAwLjAwIDMuNCAwLjA2IDsKLSAgICBFTkQKLSAgRU5EIFZTUwotRU5EIFRMQVROQ0FYMwotCi1NQUNSTyBGSUxMNAotICBDTEFTUyBDT1JFIDsKLSAgT1JJR0lOIDAgMCA7Ci0gIEZPUkVJR04gRklMTDQgMCAwIDsKLSAgU0laRSAwLjggQlkgMS43MSA7Ci0gIFNZTU1FVFJZIFggWSA7Ci0gIFNJVEUgQ29yZVNpdGUgOwotICBQSU4gVkRECi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIFBPV0VSIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVkREIFZERCEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMS42NSAwLjggMS43MSA7Ci0gICAgRU5ECi0gIEVORCBWREQKLSAgUElOIFZTUwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBHUk9VTkQgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWU1MgVlNTISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAwLjAwIDAuOCAwLjA2IDsKLSAgICBFTkQKLSAgRU5EIFZTUwotRU5EIEZJTEw0Ci0KLU1BQ1JPIE9BSTMxWEwKLSAgQ0xBU1MgQ09SRSA7Ci0gIE9SSUdJTiAwIDAgOwotICBGT1JFSUdOIE9BSTMxWEwgMCAwIDsKLSAgU0laRSAxLjQgQlkgMS43MSA7Ci0gIFNZTU1FVFJZIFggWSA7Ci0gIFNJVEUgQ29yZVNpdGUgOwotICBQSU4gWQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gT1VUUFVUIDsKLSAgICBBTlRFTk5BRElGRkFSRUEgMS43Mjg1ICBMQVlFUiBNZXRhbDEgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC43OTUgMS4yMSAwLjg1NSAxLjMzIDsKLSAgICAgICAgUkVDVCAwLjg0IDAuOTggMC45IDEuMjcgOwotICAgICAgICBSRUNUIDEuMDggMC4yNTUgMS4xNCAxLjExIDsKLSAgICAgICAgUkVDVCAwLjg0IDAuOTggMS4xNCAxLjExIDsKLSAgICBFTkQKLSAgRU5EIFkKLSAgUElOIEExCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjQ2IDAuNjEgMC41NCAxLjExIDsKLSAgICBFTkQKLSAgRU5EIEExCi0gIFBJTiBBMAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wNiAwLjYgMC4xNCAxLjEgOwotICAgIEVORAotICBFTkQgQTAKLSAgUElOIEIwCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjkgMC40MiAwLjk4IDAuODggOwotICAgICAgICBSRUNUIDAuODYgMC42IDAuOTggMC44OCA7Ci0gICAgRU5ECi0gIEVORCBCMAotICBQSU4gQTIKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuNjYgMC42MSAwLjc0IDEuMTEgOwotICAgIEVORAotICBFTkQgQTIKLSAgUElOIFZERAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBQT1dFUiA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZERCBWREQhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDEuNjUgMS40IDEuNzEgOwotICAgIEVORAotICBFTkQgVkRECi0gIFBJTiBWU1MKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgR1JPVU5EIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVlNTIFZTUyEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMC4wMCAxLjQgMC4wNiA7Ci0gICAgRU5ECi0gIEVORCBWU1MKLUVORCBPQUkzMVhMCi0KLU1BQ1JPIE5PUjJYMQotICBDTEFTUyBDT1JFIDsKLSAgT1JJR0lOIDAgMCA7Ci0gIEZPUkVJR04gTk9SMlgxIDAgMCA7Ci0gIFNJWkUgMC44IEJZIDEuNzEgOwotICBTWU1NRVRSWSBYIFkgOwotICBTSVRFIENvcmVTaXRlIDsKLSAgUElOIFkKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIE9VVFBVVCA7Ci0gICAgQU5URU5OQURJRkZBUkVBIDEuNzI4NSAgTEFZRVIgTWV0YWwxIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuNDYgMC40OSAwLjUyIDAuNjMgOwotICAgICAgICBSRUNUIDAuNDYgMC41NyAwLjcyIDAuNjMgOwotICAgICAgICBSRUNUIDAuNjYgMC41NyAwLjcyIDEuMjkgOwotICAgICAgICBSRUNUIDAuNjYgMC42IDAuNzQgMC43MyA7Ci0gICAgRU5ECi0gIEVORCBZCi0gIFBJTiBBCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjI2IDAuNTcgMC4zNCAxLjA3IDsKLSAgICBFTkQKLSAgRU5EIEEKLSAgUElOIEIKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuNDYgMC45OCAwLjU0IDEuMjEgOwotICAgICAgICBSRUNUIDAuNDggMC43MyAwLjU2IDEuMDg1IDsKLSAgICBFTkQKLSAgRU5EIEIKLSAgUElOIFZERAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBQT1dFUiA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZERCBWREQhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDEuNjUgMC44IDEuNzEgOwotICAgIEVORAotICBFTkQgVkRECi0gIFBJTiBWU1MKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgR1JPVU5EIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVlNTIFZTUyEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMC4wMCAwLjggMC4wNiA7Ci0gICAgRU5ECi0gIEVORCBWU1MKLUVORCBOT1IyWDEKLQotTUFDUk8gU0RGRlNSWDQKLSAgQ0xBU1MgQ09SRSA7Ci0gIE9SSUdJTiAwIDAgOwotICBGT1JFSUdOIFNERkZTUlg0IDAgMCA7Ci0gIFNJWkUgOS42IEJZIDEuNzEgOwotICBTWU1NRVRSWSBYIFkgOwotICBTSVRFIENvcmVTaXRlIDsKLSAgUElOIFFOCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBPVVRQVVQgOwotICAgIEFOVEVOTkFESUZGQVJFQSAxLjcyODUgIExBWUVSIE1ldGFsMSA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCA4LjI3NSAwLjkxNSA4LjMzNSAxLjMwNSA7Ci0gICAgICAgIFJFQ1QgOC4yNzUgMC45MTUgOC4zOCAwLjk3NSA7Ci0gICAgICAgIFJFQ1QgOC4zMiAwLjQ1IDguMzg1IDAuOTIgOwotICAgICAgICBSRUNUIDguMzIgMC43OSA4LjU0IDAuOTIgOwotICAgICAgICBSRUNUIDguMzIgMC44NiA4LjcgMC45MiA7Ci0gICAgICAgIFJFQ1QgOC42NCAwLjg2IDguNyAxLjAxNSA7Ci0gICAgICAgIFJFQ1QgOC42ODUgMC45NTUgOC43NDUgMS4zMDUgOwotICAgICAgICBSRUNUIDguMjY1IDAuNDUgOC44NTUgMC41MSA7Ci0gICAgRU5ECi0gIEVORCBRTgotICBQSU4gUQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gT1VUUFVUIDsKLSAgICBBTlRFTk5BRElGRkFSRUEgMS43Mjg1ICBMQVlFUiBNZXRhbDEgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgNy40MTUgMC45MTUgNy40NzUgMS4zMDUgOwotICAgICAgICBSRUNUIDcuNDggMC40NSA3LjU0IDAuOTc1IDsKLSAgICAgICAgUkVDVCA3LjQ2IDAuNzkgNy41NCAwLjk3NSA7Ci0gICAgICAgIFJFQ1QgNy40MTUgMC45MTUgNy44ODUgMC45NzUgOwotICAgICAgICBSRUNUIDcuODI1IDAuOTE1IDcuODg1IDEuMzA1IDsKLSAgICAgICAgUkVDVCA3LjMyNSAwLjQ1IDcuOTE1IDAuNTEgOwotICAgIEVORAotICBFTkQgUQotICBQSU4gUk4KLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDQuNTc1IDAuNTU1IDQuNjU1IDAuODk1IDsKLSAgICAgICAgUkVDVCA0LjU3NSAwLjgxNSA0LjgxNSAwLjg5NSA7Ci0gICAgRU5ECi0gIEVORCBSTgotICBQSU4gU04KLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDQuMzEgMC41NTUgNC4zOSAwLjg5NSA7Ci0gICAgICAgIFJFQ1QgNC4yMzUgMC44MTUgNC40NzUgMC44OTUgOwotICAgIEVORAotICBFTkQgU04KLSAgUElOIENLCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAxLjQ1NSAwLjYyNSAxLjUzNSAwLjg5NSA7Ci0gICAgICAgIFJFQ1QgMS40NTUgMC42MjUgMS43NjUgMC43MDUgOwotICAgIEVORAotICBFTkQgQ0sKLSAgUElOIEQKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDEuMTg1IDAuNTg1IDEuMjY1IDAuODA1IDsKLSAgICAgICAgUkVDVCAxLjI2IDAuNzI1IDEuMzQgMS4wMSA7Ci0gICAgRU5ECi0gIEVORCBECi0gIFBJTiBTSQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4yIDAuODA1IDAuMzY1IDAuOTggOwotICAgICAgICBSRUNUIDAuMiAwLjkgMC42MDUgMC45OCA7Ci0gICAgRU5ECi0gIEVORCBTSQotICBQSU4gU0UKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMyAwLjU4NSAwLjM2IDAuNzA1IDsKLSAgICAgICAgUkVDVCAwLjYyIDAuMjYgMC42OCAwLjcwNSA7Ci0gICAgICAgIFJFQ1QgMC4zIDAuNTg1IDAuNjggMC42NDUgOwotICAgICAgICBSRUNUIDAuNjIgMC42MjUgMC43NjUgMC43MDUgOwotICAgICAgICBSRUNUIDAuNjIgMC4yNiAxLjA4NSAwLjMyIDsKLSAgICAgICAgUkVDVCAxLjAyNSAwLjI2IDEuMDg1IDAuOTY1IDsKLSAgICAgICAgUkVDVCAxLjAyNSAwLjkwNSAxLjE0NSAwLjk2NSA7Ci0gICAgRU5ECi0gIEVORCBTRQotICBQSU4gVkRECi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIFBPV0VSIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVkREIFZERCEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMS42NSA5LjYgMS43MSA7Ci0gICAgRU5ECi0gIEVORCBWREQKLSAgUElOIFZTUwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBHUk9VTkQgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWU1MgVlNTISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAwLjAwIDkuNiAwLjA2IDsKLSAgICBFTkQKLSAgRU5EIFZTUwotRU5EIFNERkZTUlg0Ci0KLU1BQ1JPIFNNREZGSFFYMgotICBDTEFTUyBDT1JFIDsKLSAgT1JJR0lOIDAgMCA7Ci0gIEZPUkVJR04gU01ERkZIUVgyIDAgMCA7Ci0gIFNJWkUgNi42IEJZIDEuNzEgOwotICBTWU1NRVRSWSBYIFkgOwotICBTSVRFIENvcmVTaXRlIDsKLSAgUElOIFEKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIE9VVFBVVCA7Ci0gICAgQU5URU5OQURJRkZBUkVBIDEuNzI4NSAgTEFZRVIgTWV0YWwxIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMjggMC41NCAwLjM0IDAuOTIgOwotICAgICAgICBSRUNUIDAuMjYgMC43OSAwLjM0IDAuOTIgOwotICAgICAgICBSRUNUIDAuMjk1IDAuODc1IDAuMzU1IDEuMzEgOwotICAgIEVORAotICBFTkQgUQotICBQSU4gUzAKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDUuNDYgMC42OTUgNS41MiAwLjk0NSA7Ci0gICAgICAgIFJFQ1QgNS40IDAuODg1IDUuNTIgMC45NDUgOwotICAgICAgICBSRUNUIDUuNDYgMC42OTUgNS43MzUgMC43NTUgOwotICAgICAgICBSRUNUIDUuNjc1IDAuNjQ1IDYuMzE1IDAuNzA1IDsKLSAgICAgICAgUkVDVCA2LjAzNSAwLjYyNSA2LjMxNSAwLjcwNSA7Ci0gICAgICAgIFJFQ1QgNi4yNTUgMC42MjUgNi4zMTUgMC43NDUgOwotICAgIEVORAotICBFTkQgUzAKLSAgUElOIEQxCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCA1LjgzNSAwLjgwNSA2LjE1NSAxLjAxIDsKLSAgICAgICAgUkVDVCA1Ljc4IDAuODg1IDYuMTU1IDEuMDEgOwotICAgIEVORAotICBFTkQgRDEKLSAgUElOIEQwCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCA1LjA2IDAuNTQ1IDUuMTQgMC45MyA7Ci0gICAgICAgIFJFQ1QgNC45NDUgMC44NSA1LjE0IDAuOTMgOwotICAgIEVORAotICBFTkQgRDAKLSAgUElOIFNFCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCA0Ljc2NSAwLjY1IDQuODQ1IDAuOTQ1IDsKLSAgICAgICAgUkVDVCA0Ljg2IDAuNTQgNC45NCAwLjczIDsKLSAgICAgICAgUkVDVCA0Ljc2NSAwLjY1IDQuOTQgMC43MyA7Ci0gICAgRU5ECi0gIEVORCBTRQotICBQSU4gU0kKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDMuNjYgMC43OSAzLjc0IDAuOTIgOwotICAgICAgICBSRUNUIDMuODQgMC42NSAzLjkyIDAuOTIgOwotICAgICAgICBSRUNUIDMuNjYgMC44NCAzLjkyIDAuOTIgOwotICAgIEVORAotICBFTkQgU0kKLSAgUElOIENLCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjY2IDAuNzUgMC43NCAxLjI1IDsKLSAgICBFTkQKLSAgRU5EIENLCi0gIFBJTiBWREQKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgUE9XRVIgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWREQgVkREISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAxLjY1IDYuNiAxLjcxIDsKLSAgICBFTkQKLSAgRU5EIFZERAotICBQSU4gVlNTCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIEdST1VORCA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZTUyBWU1MhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDAuMDAgNi42IDAuMDYgOwotICAgIEVORAotICBFTkQgVlNTCi1FTkQgU01ERkZIUVgyCi0KLU1BQ1JPIE1YNFgxCi0gIENMQVNTIENPUkUgOwotICBPUklHSU4gMCAwIDsKLSAgRk9SRUlHTiBNWDRYMSAwIDAgOwotICBTSVpFIDQuNCBCWSAxLjcxIDsKLSAgU1lNTUVUUlkgWCBZIDsKLSAgU0lURSBDb3JlU2l0ZSA7Ci0gIFBJTiBZCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBPVVRQVVQgOwotICAgIEFOVEVOTkFESUZGQVJFQSAxLjcyODUgIExBWUVSIE1ldGFsMSA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjA2IDAuNDEgMC4xNCAwLjU0IDsKLSAgICAgICAgUkVDVCAwLjA4IDAuNDEgMC4xNCAwLjg1IDsKLSAgICAgICAgUkVDVCAwLjEgMC43OSAwLjE2IDEuMzc1IDsKLSAgICBFTkQKLSAgRU5EIFkKLSAgUElOIFMwCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAzLjQ0NSAwLjgzNSAzLjU2NSAwLjkwNSA7Ci0gICAgICAgIFJFQ1QgMy41MDUgMC44MzUgMy41NjUgMS40MDUgOwotICAgICAgICBSRUNUIDIuNDA1IDEuMzQ1IDMuNTY1IDEuNDA1IDsKLSAgICAgICAgUkVDVCA0LjAzNSAwLjgxNSA0LjE2NSAwLjg5NSA7Ci0gICAgICAgIFJFQ1QgMy40NDUgMC44MzUgNC4xNjUgMC44OTUgOwotICAgIEVORAotICBFTkQgUzAKLSAgUElOIEEKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDMuNDY1IDAuNjI1IDMuNzY1IDAuNzA1IDsKLSAgICAgICAgUkVDVCAzLjYxNSAwLjY1NSAzLjkzNSAwLjczNSA7Ci0gICAgRU5ECi0gIEVORCBBCi0gIFBJTiBCCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAyLjg4NSAwLjgwNSAyLjk2NSAxLjA4NSA7Ci0gICAgICAgIFJFQ1QgMi44MzUgMS4wMDUgMy4xMzUgMS4wODUgOwotICAgIEVORAotICBFTkQgQgotICBQSU4gQwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMi42NTUgMC44MDUgMi43MzUgMS4wODUgOwotICAgICAgICBSRUNUIDIuNDM1IDEuMDA1IDIuNzM1IDEuMDg1IDsKLSAgICBFTkQKLSAgRU5EIEMKLSAgUElOIEQKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDEuODIgMC42MjUgMS45NjUgMC43MDUgOwotICAgICAgICBSRUNUIDEuODg1IDAuNjI1IDEuOTY1IDEuMDEgOwotICAgICAgICBSRUNUIDEuODg1IDAuODM1IDIuMDE1IDEuMDEgOwotICAgIEVORAotICBFTkQgRAotICBQSU4gUzEKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuNCAwLjYyNSAwLjU2NSAwLjcwNSA7Ci0gICAgICAgIFJFQ1QgMC41MDUgMC42NDUgMC42MjUgMC45OCA7Ci0gICAgRU5ECi0gIEVORCBTMQotICBQSU4gVkRECi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIFBPV0VSIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVkREIFZERCEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMS42NSA0LjQgMS43MSA7Ci0gICAgRU5ECi0gIEVORCBWREQKLSAgUElOIFZTUwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBHUk9VTkQgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWU1MgVlNTISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAwLjAwIDQuNCAwLjA2IDsKLSAgICBFTkQKLSAgRU5EIFZTUwotRU5EIE1YNFgxCi0KLU1BQ1JPIE5PUjNCWDEKLSAgQ0xBU1MgQ09SRSA7Ci0gIE9SSUdJTiAwIDAgOwotICBGT1JFSUdOIE5PUjNCWDEgMCAwIDsKLSAgU0laRSAxLjIgQlkgMS43MSA7Ci0gIFNZTU1FVFJZIFggWSA7Ci0gIFNJVEUgQ29yZVNpdGUgOwotICBQSU4gWQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gT1VUUFVUIDsKLSAgICBBTlRFTk5BRElGRkFSRUEgMS43Mjg1ICBMQVlFUiBNZXRhbDEgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wNiAwLjYgMC4xNCAwLjczIDsKLSAgICAgICAgUkVDVCAwLjA4IDAuNDMgMC4xNCAxLjI3IDsKLSAgICAgICAgUkVDVCAwLjEzIDAuMzcgMC4xOSAwLjUxIDsKLSAgICAgICAgUkVDVCAwLjA4IDEuMjEgMC4zMDUgMS4yNyA7Ci0gICAgICAgIFJFQ1QgMC4yNDUgMS4yMSAwLjMwNSAxLjMzIDsKLSAgICAgICAgUkVDVCAwLjU0IDAuMzcgMC42IDAuNTEgOwotICAgICAgICBSRUNUIDAuMDggMC40NSAwLjYgMC41MSA7Ci0gICAgRU5ECi0gIEVORCBZCi0gIFBJTiBBTgotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC44NiAwLjY0NSAwLjk0IDEuMTQ1IDsKLSAgICBFTkQKLSAgRU5EIEFOCi0gIFBJTiBCCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjQ2IDAuNjEgMC41NCAxLjExIDsKLSAgICBFTkQKLSAgRU5EIEIKLSAgUElOIEMKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMjYgMC42MSAwLjM0IDEuMTEgOwotICAgIEVORAotICBFTkQgQwotICBQSU4gVkRECi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIFBPV0VSIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVkREIFZERCEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMS42NSAxLjIgMS43MSA7Ci0gICAgRU5ECi0gIEVORCBWREQKLSAgUElOIFZTUwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBHUk9VTkQgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWU1MgVlNTISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAwLjAwIDEuMiAwLjA2IDsKLSAgICBFTkQKLSAgRU5EIFZTUwotRU5EIE5PUjNCWDEKLQotTUFDUk8gU0RGRlgxCi0gIENMQVNTIENPUkUgOwotICBPUklHSU4gMCAwIDsKLSAgRk9SRUlHTiBTREZGWDEgMCAwIDsKLSAgU0laRSA1LjQgQlkgMS43MSA7Ci0gIFNZTU1FVFJZIFggWSA7Ci0gIFNJVEUgQ29yZVNpdGUgOwotICBQSU4gUQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gT1VUUFVUIDsKLSAgICBBTlRFTk5BRElGRkFSRUEgMS43Mjg1ICBMQVlFUiBNZXRhbDEgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC44NiAwLjU0IDAuOTIgMS4zMTUgOwotICAgICAgICBSRUNUIDAuODYgMC42IDAuOTQgMC43MyA7Ci0gICAgRU5ECi0gIEVORCBRCi0gIFBJTiBRTgotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gT1VUUFVUIDsKLSAgICBBTlRFTk5BRElGRkFSRUEgMS43Mjg1ICBMQVlFUiBNZXRhbDEgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wNiAwLjYgMC4yOCAwLjczIDsKLSAgICAgICAgUkVDVCAwLjIgMC41NCAwLjI4IDEuMjkgOwotICAgIEVORAotICBFTkQgUU4KLSAgUElOIFNFCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCA0LjM4IDAuNjQgNC40NCAwLjk2NSA7Ci0gICAgICAgIFJFQ1QgNC4zMiAwLjkwNSA0LjQ0IDAuOTY1IDsKLSAgICAgICAgUkVDVCA0LjM4IDAuNjQgNS4xNjUgMC43IDsKLSAgICAgICAgUkVDVCA0LjkzIDAuNTg1IDQuOTkgMC43MDUgOwotICAgICAgICBSRUNUIDQuOTMgMC42MjUgNS4xNjUgMC43MDUgOwotICAgIEVORAotICBFTkQgU0UKLSAgUElOIFNJCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCA0LjgzNSAwLjgwNSA1LjIxIDAuOTM1IDsKLSAgICAgICAgUkVDVCA0Ljc2IDAuODU1IDUuMjEgMC45MzUgOwotICAgIEVORAotICBFTkQgU0kKLSAgUElOIEQKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDMuODYgMC41ODUgMy45NCAwLjczIDsKLSAgICAgICAgUkVDVCAzLjg2IDAuNjUgNC4wNiAwLjczIDsKLSAgICAgICAgUkVDVCAzLjk4IDAuNjUgNC4wNiAwLjk2NSA7Ci0gICAgRU5ECi0gIEVORCBECi0gIFBJTiBDSwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMS4xOSAwLjg4IDEuMjcgMS4wODUgOwotICAgICAgICBSRUNUIDEuMDM1IDEuMDA1IDEuMjcgMS4wODUgOwotICAgICAgICBSRUNUIDEuMiAwLjc1IDEuMjggMC45NiA7Ci0gICAgRU5ECi0gIEVORCBDSwotICBQSU4gVkRECi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIFBPV0VSIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVkREIFZERCEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMS42NSA1LjQgMS43MSA7Ci0gICAgRU5ECi0gIEVORCBWREQKLSAgUElOIFZTUwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBHUk9VTkQgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWU1MgVlNTISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAwLjAwIDUuNCAwLjA2IDsKLSAgICBFTkQKLSAgRU5EIFZTUwotRU5EIFNERkZYMQotCi1NQUNSTyBBTkQyWDYKLSAgQ0xBU1MgQ09SRSA7Ci0gIE9SSUdJTiAwIDAgOwotICBGT1JFSUdOIEFORDJYNiAwIDAgOwotICBTSVpFIDIuMiBCWSAxLjcxIDsKLSAgU1lNTUVUUlkgWCBZIDsKLSAgU0lURSBDb3JlU2l0ZSA7Ci0gIFBJTiBZCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBPVVRQVVQgOwotICAgIEFOVEVOTkFESUZGQVJFQSAxLjcyODUgIExBWUVSIE1ldGFsMSA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAxLjA4IDAuMjc1IDEuMTQgMC41ODUgOwotICAgICAgICBSRUNUIDEuMDk1IDAuOSAxLjE1NSAxLjM3IDsKLSAgICAgICAgUkVDVCAxLjQ5IDAuMjc1IDEuNTUgMC41ODUgOwotICAgICAgICBSRUNUIDEuNTA1IDAuOSAxLjU2NSAxLjM3IDsKLSAgICAgICAgUkVDVCAxLjY2IDAuNTI1IDEuNzIgMC45NiA7Ci0gICAgICAgIFJFQ1QgMS42NiAwLjc5IDEuNzQgMC45NiA7Ci0gICAgICAgIFJFQ1QgMS4wOTUgMC45IDEuOTc1IDAuOTYgOwotICAgICAgICBSRUNUIDEuOSAwLjI3NSAxLjk2IDAuNTg1IDsKLSAgICAgICAgUkVDVCAxLjA4IDAuNTI1IDEuOTYgMC41ODUgOwotICAgICAgICBSRUNUIDEuOTE1IDAuOSAxLjk3NSAxLjM3IDsKLSAgICBFTkQKLSAgRU5EIFkKLSAgUElOIEIKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMjg1IDAuNzg1IDAuNTY1IDAuOTkgOwotICAgICAgICBSRUNUIDAuMjg1IDAuNzg1IDAuNjYgMC44NjUgOwotICAgIEVORAotICBFTkQgQgotICBQSU4gQQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMzUgMC42MjUgMC4xODUgMC43MDUgOwotICAgICAgICBSRUNUIDAuMTI1IDAuNjI1IDAuMTg1IDAuNzggOwotICAgICAgICBSRUNUIDAuMDM1IDAuNjI1IDAuODIgMC42ODUgOwotICAgICAgICBSRUNUIDAuNzYgMC42MjUgMC44MiAwLjc1NSA7Ci0gICAgRU5ECi0gIEVORCBBCi0gIFBJTiBWREQKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgUE9XRVIgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWREQgVkREISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAxLjY1IDIuMiAxLjcxIDsKLSAgICBFTkQKLSAgRU5EIFZERAotICBQSU4gVlNTCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIEdST1VORCA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZTUyBWU1MhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDAuMDAgMi4yIDAuMDYgOwotICAgIEVORAotICBFTkQgVlNTCi1FTkQgQU5EMlg2Ci0KLU1BQ1JPIFNFREZGSFFYOAotICBDTEFTUyBDT1JFIDsKLSAgT1JJR0lOIDAgMCA7Ci0gIEZPUkVJR04gU0VERkZIUVg4IDAgMCA7Ci0gIFNJWkUgOC44IEJZIDEuNzEgOwotICBTWU1NRVRSWSBYIFkgOwotICBTSVRFIENvcmVTaXRlIDsKLSAgUElOIEUKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDcuNzYgMC42MzUgNy44MiAxLjAxIDsKLSAgICAgICAgUkVDVCA4LjAzNSAwLjYyNSA4LjE2NSAwLjcwNSA7Ci0gICAgICAgIFJFQ1QgNy43NiAwLjYzNSA4LjE2NSAwLjY5NSA7Ci0gICAgICAgIFJFQ1QgOC4wMzUgMC42NDUgOC42MSAwLjcwNSA7Ci0gICAgICAgIFJFQ1QgOC41NSAwLjY0NSA4LjYxIDAuNzY1IDsKLSAgICBFTkQKLSAgRU5EIEUKLSAgUElOIEQKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDguMTQgMC44MDUgOC40NSAwLjg5NSA7Ci0gICAgICAgIFJFQ1QgOC4zNyAwLjgwNSA4LjQ1IDEuMDc1IDsKLSAgICBFTkQKLSAgRU5EIEQKLSAgUElOIFNFCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCA3LjI2IDAuNjIgNy4zNCAxLjEyIDsKLSAgICBFTkQKLSAgRU5EIFNFCi0gIFBJTiBTSQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgNi4wODUgMC42NCA2LjE2NSAwLjk1IDsKLSAgICAgICAgUkVDVCA2LjAzNSAwLjgxNSA2LjE2NSAwLjk1IDsKLSAgICAgICAgUkVDVCA2LjA4NSAwLjY0IDYuMzA1IDAuNzIgOwotICAgIEVORAotICBFTkQgU0kKLSAgUElOIENLCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAyLjU4NSAwLjcgMi43NCAwLjkyIDsKLSAgICAgICAgUkVDVCAyLjY2IDAuNyAyLjc0IDEuMTI1IDsKLSAgICBFTkQKLSAgRU5EIENLCi0gIFBJTiBRCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBPVVRQVVQgOwotICAgIEFOVEVOTkFESUZGQVJFQSAxLjcyODUgIExBWUVSIE1ldGFsMSA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjA2IDAuNiAwLjE0IDAuNzMgOwotICAgICAgICBSRUNUIDAuMDggMC41NCAwLjE0IDEuMzQ1IDsKLSAgICAgICAgUkVDVCAwLjA2IDAuNjQ1IDAuNTUgMC43MDUgOwotICAgICAgICBSRUNUIDAuNDkgMC41NCAwLjU1IDEuMzQ1IDsKLSAgICAgICAgUkVDVCAwLjkgMC41NCAwLjk2IDEuMzQ1IDsKLSAgICAgICAgUkVDVCAwLjQ5IDAuNzQgMS4zMjUgMC44IDsKLSAgICAgICAgUkVDVCAxLjI2NSAwLjU4NSAxLjMyNSAwLjk2IDsKLSAgICAgICAgUkVDVCAxLjMxIDAuNTI1IDEuMzcgMC42NDUgOwotICAgICAgICBSRUNUIDEuMzEgMC45IDEuMzcgMS4zNDUgOwotICAgIEVORAotICBFTkQgUQotICBQSU4gVkRECi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIFBPV0VSIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVkREIFZERCEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMS42NSA4LjggMS43MSA7Ci0gICAgRU5ECi0gIEVORCBWREQKLSAgUElOIFZTUwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBHUk9VTkQgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWU1MgVlNTISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAwLjAwIDguOCAwLjA2IDsKLSAgICBFTkQKLSAgRU5EIFZTUwotRU5EIFNFREZGSFFYOAotCi1NQUNSTyBERkZUUlgyCi0gIENMQVNTIENPUkUgOwotICBPUklHSU4gMCAwIDsKLSAgRk9SRUlHTiBERkZUUlgyIDAgMCA7Ci0gIFNJWkUgNC44IEJZIDEuNzEgOwotICBTWU1NRVRSWSBYIFkgOwotICBTSVRFIENvcmVTaXRlIDsKLSAgUElOIFFOCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBPVVRQVVQgOwotICAgIEFOVEVOTkFESUZGQVJFQSAxLjcyODUgIExBWUVSIE1ldGFsMSA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCA0LjA2IDAuNiA0LjE3IDAuNzMgOwotICAgICAgICBSRUNUIDQuMDkgMC41NyA0LjE3IDAuOTQgOwotICAgICAgICBSRUNUIDQuMTEgMC44OCA0LjE5IDEuMjkgOwotICAgICAgICBSRUNUIDQuMDkgMC41NyA0LjI1IDAuNjUgOwotICAgIEVORAotICBFTkQgUU4KLSAgUElOIFEKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIE9VVFBVVCA7Ci0gICAgQU5URU5OQURJRkZBUkVBIDEuNzI4NSAgTEFZRVIgTWV0YWwxIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDMuNjYgMC41NyAzLjc4IDAuNzMgOwotICAgICAgICBSRUNUIDMuNzIgMC41NyAzLjc4IDEuMjkgOwotICAgIEVORAotICBFTkQgUQotICBQSU4gQ0sKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDMuMjYgMC41MzUgMy4zNCAwLjg5NSA7Ci0gICAgICAgIFJFQ1QgMy4xOCAwLjc3IDMuNCAwLjg5NSA7Ci0gICAgRU5ECi0gIEVORCBDSwotICBQSU4gUk4KLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuNDYgMC42MSAwLjU0IDEuMTEgOwotICAgIEVORAotICBFTkQgUk4KLSAgUElOIEQKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDYgMC41NzUgMC4yIDAuNzMgOwotICAgICAgICBSRUNUIDAuMTIgMC41NzUgMC4yIDEuMDE1IDsKLSAgICBFTkQKLSAgRU5EIEQKLSAgUElOIFZERAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBQT1dFUiA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZERCBWREQhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDEuNjUgNC44IDEuNzEgOwotICAgIEVORAotICBFTkQgVkRECi0gIFBJTiBWU1MKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgR1JPVU5EIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVlNTIFZTUyEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMC4wMCA0LjggMC4wNiA7Ci0gICAgRU5ECi0gIEVORCBWU1MKLUVORCBERkZUUlgyCi0KLU1BQ1JPIFRMQVROVFNDQVg0Ci0gIENMQVNTIENPUkUgOwotICBPUklHSU4gMCAwIDsKLSAgRk9SRUlHTiBUTEFUTlRTQ0FYNCAwIDAgOwotICBTSVpFIDQuMiBCWSAxLjcxIDsKLSAgU1lNTUVUUlkgWCBZIDsKLSAgU0lURSBDb3JlU2l0ZSA7Ci0gIFBJTiBDSwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC41NzUgMS4wMDUgMC44MTUgMS4xNzUgOwotICAgIEVORAotICBFTkQgQ0sKLSAgUElOIFNFCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjQzNSAwLjgxNSAwLjkyNSAwLjkwNSA7Ci0gICAgRU5ECi0gIEVORCBTRQotICBQSU4gRQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wNiAwLjk4IDAuMTQgMS4xNSA7Ci0gICAgICAgIFJFQ1QgMC4wOTUgMC42ODUgMC4xNzUgMS4wNiA7Ci0gICAgRU5ECi0gIEVORCBFCi0gIFBJTiBFQ0sKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIE9VVFBVVCA7Ci0gICAgQU5URU5OQURJRkZBUkVBIDEuNzI4NSAgTEFZRVIgTWV0YWwxIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDMuNDQ1IDAuNDY1IDMuNTIgMC41ODUgOwotICAgICAgICBSRUNUIDMuNDQ1IDAuOTcgMy41MDUgMS4zODUgOwotICAgICAgICBSRUNUIDMuNDYgMC40NjUgMy41MiAwLjczIDsKLSAgICAgICAgUkVDVCAzLjQ2IDAuNiAzLjU0IDAuNzMgOwotICAgICAgICBSRUNUIDMuNDkgMC42NyAzLjU1IDEuMDMgOwotICAgICAgICBSRUNUIDMuNDYgMC42NyAzLjkxNSAwLjczIDsKLSAgICAgICAgUkVDVCAzLjg1NSAwLjQ2NSAzLjkxNSAxLjM4NSA7Ci0gICAgRU5ECi0gIEVORCBFQ0sKLSAgUElOIFZERAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBQT1dFUiA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZERCBWREQhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDEuNjUgNC4yIDEuNzEgOwotICAgIEVORAotICBFTkQgVkRECi0gIFBJTiBWU1MKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgR1JPVU5EIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVlNTIFZTUyEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMC4wMCA0LjIgMC4wNiA7Ci0gICAgRU5ECi0gIEVORCBWU1MKLUVORCBUTEFUTlRTQ0FYNAotCi1NQUNSTyBERkZRWDQKLSAgQ0xBU1MgQ09SRSA7Ci0gIE9SSUdJTiAwIDAgOwotICBGT1JFSUdOIERGRlFYNCAwIDAgOwotICBTSVpFIDQuMiBCWSAxLjcxIDsKLSAgU1lNTUVUUlkgWCBZIDsKLSAgU0lURSBDb3JlU2l0ZSA7Ci0gIFBJTiBECi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAzLjQ4NSAwLjY3NSAzLjU2NSAwLjk3NSA7Ci0gICAgICAgIFJFQ1QgMy40ODUgMC44MTUgMy43NjUgMC44OTUgOwotICAgIEVORAotICBFTkQgRAotICBQSU4gQ0sKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMjYgMC40NiAwLjM0IDAuOTYgOwotICAgIEVORAotICBFTkQgQ0sKLSAgUElOIFEKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIE9VVFBVVCA7Ci0gICAgQU5URU5OQURJRkZBUkVBIDEuNzI4NSAgTEFZRVIgTWV0YWwxIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuNTk1IDAuNDg1IDAuNzIgMC41NDUgOwotICAgICAgICBSRUNUIDAuNjYgMC40ODUgMC43MiAxLjM1NSA7Ci0gICAgICAgIFJFQ1QgMC42NiAwLjYgMC43NCAwLjczIDsKLSAgICAgICAgUkVDVCAwLjY2IDAuNjcgMS4xMDUgMC43MyA7Ci0gICAgICAgIFJFQ1QgMS4wNDUgMC40ODUgMS4xMDUgMS4wMiA7Ci0gICAgICAgIFJFQ1QgMS4wNyAwLjk2NSAxLjEzIDEuMzU1IDsKLSAgICAgICAgUkVDVCAxLjA0NSAwLjQ4NSAxLjE4NSAwLjU0NSA7Ci0gICAgRU5ECi0gIEVORCBRCi0gIFBJTiBWREQKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgUE9XRVIgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWREQgVkREISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAxLjY1IDQuMiAxLjcxIDsKLSAgICBFTkQKLSAgRU5EIFZERAotICBQSU4gVlNTCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIEdST1VORCA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZTUyBWU1MhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDAuMDAgNC4yIDAuMDYgOwotICAgIEVORAotICBFTkQgVlNTCi1FTkQgREZGUVg0Ci0KLU1BQ1JPIEFORDNYOAotICBDTEFTUyBDT1JFIDsKLSAgT1JJR0lOIDAgMCA7Ci0gIEZPUkVJR04gQU5EM1g4IDAgMCA7Ci0gIFNJWkUgMyBCWSAxLjcxIDsKLSAgU1lNTUVUUlkgWCBZIDsKLSAgU0lURSBDb3JlU2l0ZSA7Ci0gIFBJTiBZCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBPVVRQVVQgOwotICAgIEFOVEVOTkFESUZGQVJFQSAxLjcyODUgIExBWUVSIE1ldGFsMSA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAxLjYyIDAuOTMgMS42OCAxLjM3NSA7Ci0gICAgICAgIFJFQ1QgMS41OSAwLjU3IDEuNzEgMC42MyA7Ci0gICAgICAgIFJFQ1QgMi4wMyAwLjkzIDIuMDkgMS4zNzUgOwotICAgICAgICBSRUNUIDIgMC41NyAyLjEyIDAuNjQ1IDsKLSAgICAgICAgUkVDVCAyLjQ0IDAuOTMgMi41IDEuMzc1IDsKLSAgICAgICAgUkVDVCAyLjQxIDAuNTcgMi41MyAwLjY0NSA7Ci0gICAgICAgIFJFQ1QgMi42NiAwLjU4NSAyLjcyIDAuOTkgOwotICAgICAgICBSRUNUIDIuNjYgMC41ODUgMi43NCAwLjczIDsKLSAgICAgICAgUkVDVCAxLjYyIDAuOTMgMi45MSAwLjk5IDsKLSAgICAgICAgUkVDVCAxLjY2NSAwLjU4NSAyLjg1IDAuNjQ1IDsKLSAgICAgICAgUkVDVCAyLjg1IDAuOTMgMi45MSAxLjM3NSA7Ci0gICAgICAgIFJFQ1QgMi44MDUgMC41NyAyLjk0IDAuNjMgOwotICAgIEVORAotICBFTkQgWQotICBQSU4gQwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC42MyAwLjgxNSAwLjg2IDAuOTk1IDsKLSAgICBFTkQKLSAgRU5EIEMKLSAgUElOIEIKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuNTggMC42NTUgMS4xNCAwLjcxNSA7Ci0gICAgICAgIFJFQ1QgMS4wNiAwLjY1NSAxLjE0IDAuOTIgOwotICAgIEVORAotICBFTkQgQgotICBQSU4gQQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4yOCAwLjQ5NSAwLjM0IDAuNzYgOwotICAgICAgICBSRUNUIDAuMjYgMC42IDAuMzQgMC43NiA7Ci0gICAgICAgIFJFQ1QgMC4yOCAwLjQ5NSAxLjMzIDAuNTU1IDsKLSAgICAgICAgUkVDVCAxLjI3IDAuNDk1IDEuMzMgMC43MzUgOwotICAgIEVORAotICBFTkQgQQotICBQSU4gVkRECi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIFBPV0VSIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVkREIFZERCEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMS42NSAzIDEuNzEgOwotICAgIEVORAotICBFTkQgVkRECi0gIFBJTiBWU1MKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgR1JPVU5EIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVlNTIFZTUyEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMC4wMCAzIDAuMDYgOwotICAgIEVORAotICBFTkQgVlNTCi1FTkQgQU5EM1g4Ci0KLU1BQ1JPIEFPSTIyMVgxCi0gIENMQVNTIENPUkUgOwotICBPUklHSU4gMCAwIDsKLSAgRk9SRUlHTiBBT0kyMjFYMSAwIDAgOwotICBTSVpFIDEuOCBCWSAxLjcxIDsKLSAgU1lNTUVUUlkgWCBZIDsKLSAgU0lURSBDb3JlU2l0ZSA7Ci0gIFBJTiBZCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBPVVRQVVQgOwotICAgIEFOVEVOTkFESUZGQVJFQSAxLjcyODUgIExBWUVSIE1ldGFsMSA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjggMC40IDAuOTIgMC40NiA7Ci0gICAgICAgIFJFQ1QgMS40NiAwLjIyIDEuNTQgMC40OCA7Ci0gICAgICAgIFJFQ1QgMC44NyAwLjQyIDEuNTQgMC40OCA7Ci0gICAgICAgIFJFQ1QgMS40OCAwLjIyIDEuNTQgMS40NiA7Ci0gICAgRU5ECi0gIEVORCBZCi0gIFBJTiBCMQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC44NiAwLjU4IDAuOTQgMS4wOCA7Ci0gICAgRU5ECi0gIEVORCBCMQotICBQSU4gQjAKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDEuMDYgMC41OCAxLjE0IDEuMDggOwotICAgIEVORAotICBFTkQgQjAKLSAgUElOIEEwCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjI2IDAuNDUgMC4zNCAwLjk1IDsKLSAgICBFTkQKLSAgRU5EIEEwCi0gIFBJTiBDMAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMS4yNiAwLjU4IDEuMzQgMS4wNCA7Ci0gICAgICAgIFJFQ1QgMS4yNiAwLjY1IDEuMzggMC43MyA7Ci0gICAgRU5ECi0gIEVORCBDMAotICBQSU4gQTEKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuNDYgMC4yMiAwLjU0IDAuNzIgOwotICAgIEVORAotICBFTkQgQTEKLSAgUElOIFZERAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBQT1dFUiA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZERCBWREQhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDEuNjUgMS44IDEuNzEgOwotICAgIEVORAotICBFTkQgVkRECi0gIFBJTiBWU1MKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgR1JPVU5EIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVlNTIFZTUyEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMC4wMCAxLjggMC4wNiA7Ci0gICAgRU5ECi0gIEVORCBWU1MKLUVORCBBT0kyMjFYMQotCi1NQUNSTyBUTEFUTlgyCi0gIENMQVNTIENPUkUgOwotICBPUklHSU4gMCAwIDsKLSAgRk9SRUlHTiBUTEFUTlgyIDAgMCA7Ci0gIFNJWkUgMy42IEJZIDEuNzEgOwotICBTWU1NRVRSWSBYIFkgOwotICBTSVRFIENvcmVTaXRlIDsKLSAgUElOIFZTUwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBHUk9VTkQgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWU1MgVlNTISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAwLjAwIDMuNiAwLjA2IDsKLSAgICBFTkQKLSAgRU5EIFZTUwotICBQSU4gVkRECi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIFBPV0VSIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVkREIFZERCEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMS42NSAzLjYgMS43MSA7Ci0gICAgRU5ECi0gIEVORCBWREQKLSAgUElOIEQKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuNDM1IDAuNjg1IDAuNTE1IDAuODk1IDsKLSAgICAgICAgUkVDVCAwLjE5NSAwLjgxNSAwLjUxNSAwLjg5NSA7Ci0gICAgICAgIFJFQ1QgMC40MzUgMC42ODUgMC41NjUgMC43NjUgOwotICAgIEVORAotICBFTkQgRAotICBQSU4gR04KLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDEuODI1IDAuNjI1IDEuOTc1IDAuODk1IDsKLSAgICBFTkQKLSAgRU5EIEdOCi0gIFBJTiBRTgotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gT1VUUFVUIDsKLSAgICBBTlRFTk5BRElGRkFSRUEgMS43Mjg1ICBMQVlFUiBNZXRhbDEgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMi4yNiAwLjQ2IDIuMzQgMS4yOSA7Ci0gICAgRU5ECi0gIEVORCBRTgotICBQSU4gUQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gT1VUUFVUIDsKLSAgICBBTlRFTk5BRElGRkFSRUEgMS43Mjg1ICBMQVlFUiBNZXRhbDEgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMy4xMDUgMC40NiAzLjE4NSAxLjI5IDsKLSAgICAgICAgUkVDVCAzLjEwNSAwLjYyNSAzLjM2NSAwLjcwNSA7Ci0gICAgRU5ECi0gIEVORCBRCi1FTkQgVExBVE5YMgotCi1NQUNSTyBJTlZYTAotICBDTEFTUyBDT1JFIDsKLSAgT1JJR0lOIDAgMCA7Ci0gIEZPUkVJR04gSU5WWEwgMCAwIDsKLSAgU0laRSAwLjQyNSBCWSAxLjcxIDsKLSAgU1lNTUVUUlkgWCBZICA7Ci0gIFNJVEUgQ29yZVNpdGUgOwotICBQSU4gWQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gT1VUUFVUIDsKLSAgICBBTlRFTk5BRElGRkFSRUEgMS43Mjg1ICBMQVlFUiBNZXRhbDEgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4yOTUgMC45IDAuMzc1IDAuOTggOwotICAgIEVORAotICBFTkQgWQotICBQSU4gQQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wNyAwLjcyIDAuMTk1IDAuOCA7Ci0gICAgRU5ECi0gIEVORCBBCi0gIFBJTiBWREQKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgUE9XRVIgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWREQgVkREISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAxLjY1IDAuNDI1IDEuNzEgOwotICAgIEVORAotICBFTkQgVkRECi0gIFBJTiBWU1MKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgR1JPVU5EIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVlNTIFZTUyEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMC4wMCAwLjQyNSAwLjA2IDsKLSAgICBFTkQKLSAgRU5EIFZTUwotRU5EIElOVlhMCi0KLU1BQ1JPIEFEREZYTAotICBDTEFTUyBDT1JFIDsKLSAgT1JJR0lOIDAgMCA7Ci0gIEZPUkVJR04gQURERlhMIDAgMCA7Ci0gIFNJWkUgNCBCWSAxLjcxIDsKLSAgU1lNTUVUUlkgWCBZIDsKLSAgU0lURSBDb3JlU2l0ZSA7Ci0gIFBJTiBTCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBPVVRQVVQgOwotICAgIEFOVEVOTkFESUZGQVJFQSAxLjcyODUgIExBWUVSIE1ldGFsMSA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAzLjg2IDAuMjk1IDMuOTIgMS4yIDsKLSAgICAgICAgUkVDVCAzLjg2IDAuNiAzLjk0IDAuNzMgOwotICAgIEVORAotICBFTkQgUwotICBQSU4gQ08KLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIE9VVFBVVCA7Ci0gICAgQU5URU5OQURJRkZBUkVBIDEuNzI4NSAgTEFZRVIgTWV0YWwxIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDggMC40OCAwLjE0IDAuOTIgOwotICAgICAgICBSRUNUIDAuMDYgMC43OSAwLjE0IDAuOTIgOwotICAgICAgICBSRUNUIDAuMDYgMC44NiAwLjM3NSAwLjkyIDsKLSAgICAgICAgUkVDVCAwLjMxNSAwLjI4NSAwLjM3NSAwLjU0IDsKLSAgICAgICAgUkVDVCAwLjA4IDAuNDggMC4zNzUgMC41NCA7Ci0gICAgICAgIFJFQ1QgMC4zMTUgMC44NiAwLjM3NSAxLjA0NSA7Ci0gICAgRU5ECi0gIEVORCBDTwotICBQSU4gQgotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMS4wNTUgMC43ODUgMS4xMTUgMC45MDUgOwotICAgICAgICBSRUNUIDEuNTggMC44NDUgMS43NjUgMS4wODUgOwotICAgICAgICBSRUNUIDEuMDU1IDAuODQ1IDIuMDMgMC45MDUgOwotICAgICAgICBSRUNUIDEuOTcgMC44MiAzLjM2IDAuODggOwotICAgIEVORAotICBFTkQgQgotICBQSU4gQQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC44MyAwLjY3IDAuOTU1IDAuNzMgOwotICAgICAgICBSRUNUIDAuODk1IDAuNjI1IDEuMjM1IDAuNjg1IDsKLSAgICAgICAgUkVDVCAxLjE4NSAwLjY2IDMuNTQgMC43MDUgOwotICAgICAgICBSRUNUIDAuODk1IDAuNjQ1IDEuMzk1IDAuNjg1IDsKLSAgICAgICAgUkVDVCAxLjMzNSAwLjY2IDMuNTQgMC43MiA7Ci0gICAgICAgIFJFQ1QgMy40NiAwLjY2IDMuNTQgMS4wMDUgOwotICAgIEVORAotICBFTkQgQQotICBQSU4gQ0kKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDEuNDk1IDAuNDM1IDEuNzY1IDAuNTYgOwotICAgICAgICBSRUNUIDEuNDk1IDAuNSAzLjE1IDAuNTYgOwotICAgIEVORAotICBFTkQgQ0kKLSAgUElOIFZERAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBQT1dFUiA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZERCBWREQhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDEuNjUgNCAxLjcxIDsKLSAgICBFTkQKLSAgRU5EIFZERAotICBQSU4gVlNTCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIEdST1VORCA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZTUyBWU1MhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDAuMDAgNCAwLjA2IDsKLSAgICBFTkQKLSAgRU5EIFZTUwotRU5EIEFEREZYTAotCi1NQUNSTyBJTlZYNgotICBDTEFTUyBDT1JFIDsKLSAgT1JJR0lOIDAgMCA7Ci0gIEZPUkVJR04gSU5WWDYgMCAwIDsKLSAgU0laRSAxLjIyNSBCWSAxLjcxIDsKLSAgU1lNTUVUUlkgWCBZICA7Ci0gIFNJVEUgQ29yZVNpdGUgOwotICBQSU4gWQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gT1VUUFVUIDsKLSAgICBBTlRFTk5BRElGRkFSRUEgMS43Mjg1ICBMQVlFUiBNZXRhbDEgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMS4wNzUgMC43MiAxLjE1NSAwLjggOwotICAgIEVORAotICBFTkQgWQotICBQSU4gQQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wNyAwLjcyIDAuMTUgMC44NyA7Ci0gICAgRU5ECi0gIEVORCBBCi0gIFBJTiBWREQKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgUE9XRVIgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWREQgVkREISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAxLjY1IDEuMjI1IDEuNzEgOwotICAgIEVORAotICBFTkQgVkRECi0gIFBJTiBWU1MKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgR1JPVU5EIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVlNTIFZTUyEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMC4wMCAxLjIyNSAwLjA2IDsKLSAgICBFTkQKLSAgRU5EIFZTUwotRU5EIElOVlg2Ci0KLU1BQ1JPIFhOT1IzWEwKLSAgQ0xBU1MgQ09SRSA7Ci0gIE9SSUdJTiAwIDAgOwotICBGT1JFSUdOIFhOT1IzWEwgMCAwIDsKLSAgU0laRSA0LjQgQlkgMS43MSA7Ci0gIFNZTU1FVFJZIFggWSA7Ci0gIFNJVEUgQ29yZVNpdGUgOwotICBQSU4gVkRECi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIFBPV0VSIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVkREIFZERCEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMS42NSA0LjQgMS43MSA7Ci0gICAgRU5ECi0gIEVORCBWREQKLSAgUElOIFkKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIE9VVFBVVCA7Ci0gICAgQU5URU5OQURJRkZBUkVBIDEuNzI4NSAgTEFZRVIgTWV0YWwxIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDQuMjQgMC41NyA0LjM2NSAwLjcwNSA7Ci0gICAgICAgIFJFQ1QgNC4yMzUgMC42MjUgNC4zNjUgMC43MDUgOwotICAgICAgICBSRUNUIDQuMzA1IDAuNTcgNC4zNjUgMS4xIDsKLSAgICAgICAgUkVDVCA0LjI0IDEuMDQgNC4zNjUgMS4xIDsKLSAgICBFTkQKLSAgRU5EIFkKLSAgUElOIEEKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDYgMC43OSAwLjE3NSAwLjkyIDsKLSAgICAgICAgUkVDVCAwLjA5NSAwLjYzNSAwLjE3NSAxLjEgOwotICAgIEVORAotICBFTkQgQQotICBQSU4gQgotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC40MzUgMC42MjUgMC41MTUgMC43OCA7Ci0gICAgICAgIFJFQ1QgMC40NiAwLjcgMC41NCAxLjEgOwotICAgIEVORAotICBFTkQgQgotICBQSU4gQwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMi45MjUgMC42NjUgMy4wOTUgMC43MjUgOwotICAgICAgICBSRUNUIDMuMDM1IDAuNjY1IDMuMDk1IDAuOTM1IDsKLSAgICAgICAgUkVDVCAzLjAzNSAwLjgxNSAzLjE2NSAwLjkzNSA7Ci0gICAgICAgIFJFQ1QgMy4wMzUgMC44NzUgMy4zNjUgMC45MzUgOwotICAgIEVORAotICBFTkQgQwotICBQSU4gVlNTCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIEdST1VORCA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZTUyBWU1MhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDAuMDAgNC40IDAuMDYgOwotICAgIEVORAotICBFTkQgVlNTCi1FTkQgWE5PUjNYTAotCi1NQUNSTyBPUjRYMgotICBDTEFTUyBDT1JFIDsKLSAgT1JJR0lOIDAgMCA7Ci0gIEZPUkVJR04gT1I0WDIgMCAwIDsKLSAgU0laRSAyIEJZIDEuNzEgOwotICBTWU1NRVRSWSBYIFkgOwotICBTSVRFIENvcmVTaXRlIDsKLSAgUElOIFkKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIE9VVFBVVCA7Ci0gICAgQU5URU5OQURJRkZBUkVBIDEuNzI4NSAgTEFZRVIgTWV0YWwxIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDEuNjYgMC40IDEuNzQgMS4zNTUgOwotICAgIEVORAotICBFTkQgWQotICBQSU4gQgotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC42NiAwLjYgMC43NCAwLjczIDsKLSAgICAgICAgUkVDVCAwLjY2IDAuNiAwLjkyIDAuNjggOwotICAgICAgICBSRUNUIDAuODQgMC40OCAwLjkyIDAuNzUgOwotICAgIEVORAotICBFTkQgQgotICBQSU4gQwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC40OCAwLjQ4IDAuNTYgMC45NiA7Ci0gICAgICAgIFJFQ1QgMC40NiAwLjc5IDAuNTYgMC45NiA7Ci0gICAgRU5ECi0gIEVORCBDCi0gIFBJTiBECi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjI4IDAuNDggMC4zNiAwLjk2IDsKLSAgICAgICAgUkVDVCAwLjI2IDAuNzkgMC4zNiAwLjk2IDsKLSAgICBFTkQKLSAgRU5EIEQKLSAgUElOIEEKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDEuMTk1IDAuMzUgMS4yNzUgMC43NiA7Ci0gICAgICAgIFJFQ1QgMS4xOTUgMC42MjUgMS4zNjUgMC43MDUgOwotICAgIEVORAotICBFTkQgQQotICBQSU4gVkRECi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIFBPV0VSIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVkREIFZERCEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMS42NSAyIDEuNzEgOwotICAgIEVORAotICBFTkQgVkRECi0gIFBJTiBWU1MKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgR1JPVU5EIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVlNTIFZTUyEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMC4wMCAyIDAuMDYgOwotICAgIEVORAotICBFTkQgVlNTCi1FTkQgT1I0WDIKLQotTUFDUk8gQU8yMVgxCi0gIENMQVNTIENPUkUgOwotICBPUklHSU4gMCAwIDsKLSAgRk9SRUlHTiBBTzIxWDEgMCAwIDsKLSAgU0laRSAxLjQgQlkgMS43MSA7Ci0gIFNZTU1FVFJZIFggWSA7Ci0gIFNJVEUgQ29yZVNpdGUgOwotICBQSU4gWQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gT1VUUFVUIDsKLSAgICBBTlRFTk5BRElGRkFSRUEgMS43Mjg1ICBMQVlFUiBNZXRhbDEgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMS4wOCAwLjM3IDEuMTQgMC41NCA7Ci0gICAgICAgIFJFQ1QgMS4wNiAwLjQxIDEuMTQgMC41NCA7Ci0gICAgICAgIFJFQ1QgMS4wNiAwLjQ4IDEuMjggMC41NCA7Ci0gICAgICAgIFJFQ1QgMS4yMiAwLjQ4IDEuMjggMS40OCA7Ci0gICAgRU5ECi0gIEVORCBZCi0gIFBJTiBBMAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4yNiAwLjQ1IDAuMzQgMC45NSA7Ci0gICAgRU5ECi0gIEVORCBBMAotICBQSU4gQTEKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuNDYgMC4yMiAwLjU0IDAuNzIgOwotICAgIEVORAotICBFTkQgQTEKLSAgUElOIEIwCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjY1IDAuNjEgMC43MyAwLjkxIDsKLSAgICAgICAgUkVDVCAwLjY2IDAuNzkgMC43NCAxLjEgOwotICAgIEVORAotICBFTkQgQjAKLSAgUElOIFZERAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBQT1dFUiA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZERCBWREQhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDEuNjUgMS40IDEuNzEgOwotICAgIEVORAotICBFTkQgVkRECi0gIFBJTiBWU1MKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgR1JPVU5EIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVlNTIFZTUyEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMC4wMCAxLjQgMC4wNiA7Ci0gICAgRU5ECi0gIEVORCBWU1MKLUVORCBBTzIxWDEKLQotTUFDUk8gT0FJMjIxWEwKLSAgQ0xBU1MgQ09SRSA7Ci0gIE9SSUdJTiAwIDAgOwotICBGT1JFSUdOIE9BSTIyMVhMIDAgMCA7Ci0gIFNJWkUgMS44IEJZIDEuNzEgOwotICBTWU1NRVRSWSBYIFkgOwotICBTSVRFIENvcmVTaXRlIDsKLSAgUElOIFkKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIE9VVFBVVCA7Ci0gICAgQU5URU5OQURJRkZBUkVBIDEuNzI4NSAgTEFZRVIgTWV0YWwxIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuOTI1IDEuMTE1IDAuOTg1IDEuMyA7Ci0gICAgICAgIFJFQ1QgMS42NDUgMC4zMjUgMS43MDUgMS4zIDsKLSAgICAgICAgUkVDVCAwLjkyNSAxLjExNSAxLjcwNSAxLjE3NSA7Ci0gICAgICAgIFJFQ1QgMS41NiAxLjE3IDEuNzQgMS4zIDsKLSAgICBFTkQKLSAgRU5EIFkKLSAgUElOIEEwCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjI2IDAuNjc1IDAuMzQgMS4xNzUgOwotICAgIEVORAotICBFTkQgQTAKLSAgUElOIEIxCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjY0NSAwLjgxNSAxLjE0NSAwLjg5NSA7Ci0gICAgRU5ECi0gIEVORCBCMQotICBQSU4gQTEKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuNDYgMS4xNyAwLjU0IDEuMyA7Ci0gICAgICAgIFJFQ1QgMC40NjUgMC44MDUgMC41NDUgMS4yNSA7Ci0gICAgRU5ECi0gIEVORCBBMQotICBQSU4gQjAKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDEuMjYgMC41MTUgMS4zNCAxLjAxNSA7Ci0gICAgRU5ECi0gIEVORCBCMAotICBQSU4gQzAKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDEuNDYgMC41MiAxLjU0NSAxLjAxNSA7Ci0gICAgRU5ECi0gIEVORCBDMAotICBQSU4gVkRECi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIFBPV0VSIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVkREIFZERCEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMS42NSAxLjggMS43MSA7Ci0gICAgRU5ECi0gIEVORCBWREQKLSAgUElOIFZTUwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBHUk9VTkQgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWU1MgVlNTISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAwLjAwIDEuOCAwLjA2IDsKLSAgICBFTkQKLSAgRU5EIFZTUwotRU5EIE9BSTIyMVhMCi0KLU1BQ1JPIE5PUjNYMQotICBDTEFTUyBDT1JFIDsKLSAgT1JJR0lOIDAgMCA7Ci0gIEZPUkVJR04gTk9SM1gxIDAgMCA7Ci0gIFNJWkUgMSBCWSAxLjcxIDsKLSAgU1lNTUVUUlkgWCBZIDsKLSAgU0lURSBDb3JlU2l0ZSA7Ci0gIFBJTiBZCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBPVVRQVVQgOwotICAgIEFOVEVOTkFESUZGQVJFQSAxLjcyODUgIExBWUVSIE1ldGFsMSA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjQ1IDAuMzUgMC41MSAwLjYzIDsKLSAgICAgICAgUkVDVCAwLjQ1IDAuNTcgMC45MiAwLjYzIDsKLSAgICAgICAgUkVDVCAwLjg2IDAuNDkgMC45MiAxLjI5IDsKLSAgICAgICAgUkVDVCAwLjg2IDAuNzkgMC45NCAwLjkyIDsKLSAgICBFTkQKLSAgRU5EIFkKLSAgUElOIEMKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuNjYgMC45OCAwLjc0IDEuMjEgOwotICAgICAgICBSRUNUIDAuNjggMC43MyAwLjc2IDEuMTEgOwotICAgIEVORAotICBFTkQgQwotICBQSU4gQQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4yNiAwLjU3IDAuMzQgMS4wNyA7Ci0gICAgRU5ECi0gIEVORCBBCi0gIFBJTiBCCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjQ2IDAuNzMgMC41NCAxLjIzIDsKLSAgICBFTkQKLSAgRU5EIEIKLSAgUElOIFZERAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBQT1dFUiA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZERCBWREQhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDEuNjUgMSAxLjcxIDsKLSAgICBFTkQKLSAgRU5EIFZERAotICBQSU4gVlNTCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIEdST1VORCA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZTUyBWU1MhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDAuMDAgMSAwLjA2IDsKLSAgICBFTkQKLSAgRU5EIFZTUwotRU5EIE5PUjNYMQotCi1NQUNSTyBBTkQyWDQKLSAgQ0xBU1MgQ09SRSA7Ci0gIE9SSUdJTiAwIDAgOwotICBGT1JFSUdOIEFORDJYNCAwIDAgOwotICBTSVpFIDEuOCBCWSAxLjcxIDsKLSAgU1lNTUVUUlkgWCBZIDsKLSAgU0lURSBDb3JlU2l0ZSA7Ci0gIFBJTiBZCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBPVVRQVVQgOwotICAgIEFOVEVOTkFESUZGQVJFQSAxLjcyODUgIExBWUVSIE1ldGFsMSA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjk3NSAxLjA5IDEuMDM1IDEuNDggOwotICAgICAgICBSRUNUIDAuOTQ1IDAuNDIgMS4wNjUgMC40OCA7Ci0gICAgICAgIFJFQ1QgMS4wMTUgMC40NCAxLjUyIDAuNSA7Ci0gICAgICAgIFJFQ1QgMS40IDAuMzggMS40NiAwLjUgOwotICAgICAgICBSRUNUIDEuNCAxLjA5IDEuNDYgMS40OCA7Ci0gICAgICAgIFJFQ1QgMS40NiAwLjQ0IDEuNTIgMS4xNSA7Ci0gICAgICAgIFJFQ1QgMC45NzUgMS4wOSAxLjUyIDEuMTUgOwotICAgICAgICBSRUNUIDEuNDYgMC42IDEuNTQgMC43MyA7Ci0gICAgRU5ECi0gIEVORCBZCi0gIFBJTiBBCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjY2IDAuNzYgMC43NCAxLjI2IDsKLSAgICBFTkQKLSAgRU5EIEEKLSAgUElOIEIKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDYgMC42IDAuMTQgMC43MyA7Ci0gICAgICAgIFJFQ1QgMC4wNiAwLjYyNSAwLjQgMC43MDUgOwotICAgICAgICBSRUNUIDAuMzIgMC42MjUgMC40IDAuODE1IDsKLSAgICBFTkQKLSAgRU5EIEIKLSAgUElOIFZERAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBQT1dFUiA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZERCBWREQhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDEuNjUgMS44IDEuNzEgOwotICAgIEVORAotICBFTkQgVkRECi0gIFBJTiBWU1MKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgR1JPVU5EIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVlNTIFZTUyEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMC4wMCAxLjggMC4wNiA7Ci0gICAgRU5ECi0gIEVORCBWU1MKLUVORCBBTkQyWDQKLQotTUFDUk8gVExBVE5DQVgxMgotICBDTEFTUyBDT1JFIDsKLSAgT1JJR0lOIDAgMCA7Ci0gIEZPUkVJR04gVExBVE5DQVgxMiAwIDAgOwotICBTSVpFIDUuNiBCWSAxLjcxIDsKLSAgU1lNTUVUUlkgWCBZIDsKLSAgU0lURSBDb3JlU2l0ZSA7Ci0gIFBJTiBFQ0sKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIE9VVFBVVCA7Ci0gICAgQU5URU5OQURJRkZBUkVBIDEuNzI4NSAgTEFZRVIgTWV0YWwxIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuNjEgMC4yNiAwLjY3IDAuNTcgOwotICAgICAgICBSRUNUIDAuNjEgMC45IDAuNjcgMS4wMiA7Ci0gICAgICAgIFJFQ1QgMC45OSAwLjUxIDEuMDUgMC45OSA7Ci0gICAgICAgIFJFQ1QgMS4wMiAwLjI2IDEuMDggMC41NyA7Ci0gICAgICAgIFJFQ1QgMC45OSAwLjc5IDEuMTQgMC45OSA7Ci0gICAgICAgIFJFQ1QgMC42MSAwLjkgMS4xNCAwLjk5IDsKLSAgICAgICAgUkVDVCAxLjQzIDAuMjYgMS40OSAwLjU3IDsKLSAgICAgICAgUkVDVCAxLjg0IDAuMjYgMS45IDAuNTcgOwotICAgICAgICBSRUNUIDIuMjUgMC4yNiAyLjMxIDAuNTcgOwotICAgICAgICBSRUNUIDAuNjEgMC41MSAyLjMxIDAuNTcgOwotICAgICAgICBSRUNUIDAuNjEgMC45MyAyLjM0IDAuOTkgOwotICAgIEVORAotICBFTkQgRUNLCi0gIFBJTiBFCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCA1LjEzIDAuODUgNS4yMSAxLjA2IDsKLSAgICAgICAgUkVDVCA1LjEzIDAuOTggNS4zNCAxLjA2IDsKLSAgICAgICAgUkVDVCA1LjI2IDAuOTggNS4zNCAxLjIyIDsKLSAgICBFTkQKLSAgRU5EIEUKLSAgUElOIENLCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjIwNSAwLjYyIDAuMzI1IDAuNyA7Ci0gICAgICAgIFJFQ1QgMC4yMzUgMC42MiAwLjMyNSAwLjg5NSA7Ci0gICAgICAgIFJFQ1QgMC4yMzUgMC44MTUgMC41MSAwLjg5NSA7Ci0gICAgRU5ECi0gIEVORCBDSwotICBQSU4gVkRECi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIFBPV0VSIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVkREIFZERCEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMS42NSA1LjYgMS43MSA7Ci0gICAgRU5ECi0gIEVORCBWREQKLSAgUElOIFZTUwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBHUk9VTkQgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWU1MgVlNTISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAwLjAwIDUuNiAwLjA2IDsKLSAgICBFTkQKLSAgRU5EIFZTUwotRU5EIFRMQVROQ0FYMTIKLQotTUFDUk8gWE9SMlg0Ci0gIENMQVNTIENPUkUgOwotICBPUklHSU4gMCAwIDsKLSAgRk9SRUlHTiBYT1IyWDQgMCAwIDsKLSAgU0laRSAyLjQgQlkgMS43MSA7Ci0gIFNZTU1FVFJZIFggWSA7Ci0gIFNJVEUgQ29yZVNpdGUgOwotICBQSU4gWQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gT1VUUFVUIDsKLSAgICBBTlRFTk5BRElGRkFSRUEgMS43Mjg1ICBMQVlFUiBNZXRhbDEgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4yNiAwLjUgMC4zMiAxLjQ2NSA7Ci0gICAgICAgIFJFQ1QgMC4yNiAwLjk4IDAuMzM1IDEuNDY1IDsKLSAgICAgICAgUkVDVCAwLjI2IDAuOTggMC4zNCAxLjEzNSA7Ci0gICAgICAgIFJFQ1QgMC4yNDUgMC41IDAuMzY1IDAuNTYgOwotICAgICAgICBSRUNUIDAuMjYgMS4wNzUgMC43IDEuMTM1IDsKLSAgICAgICAgUkVDVCAwLjY0IDAuMzkgMC43IDAuNjEgOwotICAgICAgICBSRUNUIDAuMjYgMC41NSAwLjcgMC42MSA7Ci0gICAgICAgIFJFQ1QgMC42NCAxLjA3NSAwLjcgMS40MDUgOwotICAgICAgICBSRUNUIDAuNjg1IDAuMzMgMC43NDUgMC40NSA7Ci0gICAgICAgIFJFQ1QgMC42ODUgMS4zNDUgMC43NDUgMS40NjUgOwotICAgIEVORAotICBFTkQgWQotICBQSU4gQgotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMS43NDUgMC42MjUgMi4yMDUgMC43MDUgOwotICAgICAgICBSRUNUIDIuMTI1IDAuNjI1IDIuMjA1IDAuNzQ1IDsKLSAgICBFTkQKLSAgRU5EIEIKLSAgUElOIEEKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuOTYgMC43MSAxLjE2NSAxLjA4NSA7Ci0gICAgRU5ECi0gIEVORCBBCi0gIFBJTiBWREQKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgUE9XRVIgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWREQgVkREISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAxLjY1IDIuNCAxLjcxIDsKLSAgICBFTkQKLSAgRU5EIFZERAotICBQSU4gVlNTCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIEdST1VORCA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZTUyBWU1MhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDAuMDAgMi40IDAuMDYgOwotICAgIEVORAotICBFTkQgVlNTCi1FTkQgWE9SMlg0Ci0KLU1BQ1JPIFNERkZTWDEKLSAgQ0xBU1MgQ09SRSA7Ci0gIE9SSUdJTiAwIDAgOwotICBGT1JFSUdOIFNERkZTWDEgMCAwIDsKLSAgU0laRSA3IEJZIDEuNzEgOwotICBTWU1NRVRSWSBYIFkgOwotICBTSVRFIENvcmVTaXRlIDsKLSAgUElOIFEKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIE9VVFBVVCA7Ci0gICAgQU5URU5OQURJRkZBUkVBIDEuNzI4NSAgTEFZRVIgTWV0YWwxIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDEuMDYgMC45OCAxLjE0IDEuMTEgOwotICAgICAgICBSRUNUIDEuMDggMC45IDEuMTQgMS4yOSA7Ci0gICAgICAgIFJFQ1QgMS4wOCAwLjkgMS4yNTUgMS4wNCA7Ci0gICAgICAgIFJFQ1QgMS4xOTUgMC41NCAxLjI1NSAxLjA0IDsKLSAgICBFTkQKLSAgRU5EIFEKLSAgUElOIFFOCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBPVVRQVVQgOwotICAgIEFOVEVOTkFESUZGQVJFQSAxLjcyODUgIExBWUVSIE1ldGFsMSA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjM5IDAuNTcgMC41NCAwLjY1IDsKLSAgICAgICAgUkVDVCAwLjQyIDAuOSAwLjUgMS4yOSA7Ci0gICAgICAgIFJFQ1QgMC40NiAwLjU3IDAuNTQgMC45OCA7Ci0gICAgRU5ECi0gIEVORCBRTgotICBQSU4gU0UKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDYuMDc1IDAuNjU1IDYuMTM1IDAuOTMgOwotICAgICAgICBSRUNUIDYuMDE1IDAuODcgNi4xMzUgMC45MyA7Ci0gICAgICAgIFJFQ1QgNi4zNTUgMC41ODUgNi40MTUgMC43MTUgOwotICAgICAgICBSRUNUIDYuMDc1IDAuNjU1IDYuNDk1IDAuNzE1IDsKLSAgICAgICAgUkVDVCA2LjM1NSAwLjYyNSA2LjU2NSAwLjcwNSA7Ci0gICAgICAgIFJFQ1QgNi4zNTUgMC42NDUgNi43MjUgMC43MDUgOwotICAgICAgICBSRUNUIDYuNjY1IDAuNTg1IDYuNzI1IDAuNzA1IDsKLSAgICBFTkQKLSAgRU5EIFNFCi0gIFBJTiBTSQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgNi4yMzUgMC44MTUgNi42OTUgMC44OTUgOwotICAgICAgICBSRUNUIDYuNDYgMC44MTUgNi42OTUgMC45MzUgOwotICAgIEVORAotICBFTkQgU0kKLSAgUElOIEQKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDUuNDYgMC41MTUgNS41NCAwLjggOwotICAgICAgICBSRUNUIDUuNDYgMC43MiA1Ljc1NSAwLjggOwotICAgIEVORAotICBFTkQgRAotICBQSU4gQ0sKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDUuMjYgMC41NSA1LjM2IDAuNzMgOwotICAgICAgICBSRUNUIDUuMjggMC41MTUgNS4zNiAwLjk5NSA7Ci0gICAgRU5ECi0gIEVORCBDSwotICBQSU4gU04KLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDIuMjM1IDAuMzI1IDIuMjk1IDAuODk1IDsKLSAgICAgICAgUkVDVCAyLjIzNSAwLjgxNSAyLjM2NSAwLjg5NSA7Ci0gICAgICAgIFJFQ1QgMS44NTUgMC44MzUgMi4zNjUgMC44OTUgOwotICAgICAgICBSRUNUIDIuMjM1IDAuMzI1IDMuMDc1IDAuMzg1IDsKLSAgICAgICAgUkVDVCAzLjAxNSAwLjM1IDMuNDU1IDAuNDEgOwotICAgICAgICBSRUNUIDMuMzk1IDAuMzMgMy41MTUgMC4zOSA7Ci0gICAgRU5ECi0gIEVORCBTTgotICBQSU4gVkRECi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIFBPV0VSIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVkREIFZERCEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMS42NSA3IDEuNzEgOwotICAgIEVORAotICBFTkQgVkRECi0gIFBJTiBWU1MKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgR1JPVU5EIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVlNTIFZTUyEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMC4wMCA3IDAuMDYgOwotICAgIEVORAotICBFTkQgVlNTCi1FTkQgU0RGRlNYMQotCi1NQUNSTyBBT0kyQkIyWDQKLSAgQ0xBU1MgQ09SRSA7Ci0gIE9SSUdJTiAwIDAgOwotICBGT1JFSUdOIEFPSTJCQjJYNCAwIDAgOwotICBTSVpFIDQuNCBCWSAxLjcxIDsKLSAgU1lNTUVUUlkgWCBZIDsKLSAgU0lURSBDb3JlU2l0ZSA7Ci0gIFBJTiBZCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBPVVRQVVQgOwotICAgIEFOVEVOTkFESUZGQVJFQSAxLjcyODUgIExBWUVSIE1ldGFsMSA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAxLjQgMC40NDUgMS41MiAwLjUwNSA7Ci0gICAgICAgIFJFQ1QgMi4wMiAwLjQ0NSAyLjE0IDAuNTI1IDsKLSAgICAgICAgUkVDVCAyLjQ3NSAwLjQ2NSAyLjUzNSAwLjg2NSA7Ci0gICAgICAgIFJFQ1QgMi40NzUgMC44MDUgMi42OTUgMC44NjUgOwotICAgICAgICBSRUNUIDIuNjM1IDAuODA1IDIuNjk1IDEuMDg1IDsKLSAgICAgICAgUkVDVCAxLjQ3IDAuNDY1IDIuNyAwLjUyNSA7Ci0gICAgICAgIFJFQ1QgMi42NjUgMC45OTUgMi43NjUgMS4xMTUgOwotICAgICAgICBSRUNUIDIuNjUgMC40NDUgMi45OSAwLjUwNSA7Ci0gICAgICAgIFJFQ1QgMy4wNzUgMC45OTUgMy4xMzUgMS4xMTUgOwotICAgICAgICBSRUNUIDMuNDg1IDAuOTk1IDMuNTQ1IDEuMTE1IDsKLSAgICAgICAgUkVDVCAzLjY2IDAuNDQ1IDMuNzg1IDAuNTA1IDsKLSAgICAgICAgUkVDVCAzLjcyNSAwLjQ0NSAzLjc4NSAxLjA1NSA7Ci0gICAgICAgIFJFQ1QgMi42MzUgMC45OTUgMy45NTUgMS4wNTUgOwotICAgICAgICBSRUNUIDMuODk1IDAuOTk1IDMuOTU1IDEuMTE1IDsKLSAgICBFTkQKLSAgRU5EIFkKLSAgUElOIEIxCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAyLjk3IDAuODE1IDMuNjI1IDAuODk1IDsKLSAgICBFTkQKLSAgRU5EIEIxCi0gIFBJTiBCMAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMi42MzUgMC42MjUgMi43NjUgMC43MDUgOwotICAgICAgICBSRUNUIDMuNSAwLjI4NSAzLjU2IDAuNzA1IDsKLSAgICAgICAgUkVDVCAyLjYzNSAwLjY0NSAzLjU2IDAuNzA1IDsKLSAgICAgICAgUkVDVCAzLjUgMC4yODUgMy45NDUgMC4zNDUgOwotICAgICAgICBSRUNUIDMuODg1IDAuMjg1IDMuOTQ1IDAuNyA7Ci0gICAgICAgIFJFQ1QgMy44ODUgMC42NCA0LjA2IDAuNyA7Ci0gICAgRU5ECi0gIEVORCBCMAotICBQSU4gQTBOCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjQ2IDAuNjk1IDAuNTQgMS4xOTUgOwotICAgIEVORAotICBFTkQgQTBOCi0gIFBJTiBBMU4KLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMjYgMC42OTUgMC4zNCAxLjE5NSA7Ci0gICAgRU5ECi0gIEVORCBBMU4KLSAgUElOIFZERAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBQT1dFUiA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZERCBWREQhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDEuNjUgNC40IDEuNzEgOwotICAgIEVORAotICBFTkQgVkRECi0gIFBJTiBWU1MKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgR1JPVU5EIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVlNTIFZTUyEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMC4wMCA0LjQgMC4wNiA7Ci0gICAgRU5ECi0gIEVORCBWU1MKLUVORCBBT0kyQkIyWDQKLQotTUFDUk8gTk9SNEJYMQotICBDTEFTUyBDT1JFIDsKLSAgT1JJR0lOIDAgMCA7Ci0gIEZPUkVJR04gTk9SNEJYMSAwIDAgOwotICBTSVpFIDEuOCBCWSAxLjcxIDsKLSAgU1lNTUVUUlkgWCBZIDsKLSAgU0lURSBDb3JlU2l0ZSA7Ci0gIFBJTiBZCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBPVVRQVVQgOwotICAgIEFOVEVOTkFESUZGQVJFQSAxLjcyODUgIExBWUVSIE1ldGFsMSA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjA2IDAuNiAwLjE0IDAuNzMgOwotICAgICAgICBSRUNUIDAuMDggMC40NSAwLjE0IDEuMjcgOwotICAgICAgICBSRUNUIDAuMDggMS4yMSAwLjUgMS4yNyA7Ci0gICAgICAgIFJFQ1QgMC40NCAxLjIxIDAuNSAxLjQyNSA7Ci0gICAgICAgIFJFQ1QgMC41NDUgMC4zNyAwLjYwNSAwLjUxIDsKLSAgICAgICAgUkVDVCAwLjkyIDAuNCAxLjAzIDAuNDYgOwotICAgICAgICBSRUNUIDAuMDggMC40NSAwLjk4IDAuNTEgOwotICAgICAgICBSRUNUIDAuOTcgMC4zNCAxLjAzIDAuNDYgOwotICAgIEVORAotICBFTkQgWQotICBQSU4gQU4KLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDEuNDYgMC42MSAxLjU0IDEuMTEgOwotICAgIEVORAotICBFTkQgQU4KLSAgUElOIEIKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuODY1IDAuODEgMS4zNiAwLjg5IDsKLSAgICAgICAgUkVDVCAxLjAzNSAwLjgxIDEuMzYgMC44OTUgOwotICAgIEVORAotICBFTkQgQgotICBQSU4gQwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC42MzUgMC42MzUgMC43NjUgMS4wODUgOwotICAgIEVORAotICBFTkQgQwotICBQSU4gRAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4yNiAwLjYxIDAuMzQgMS4xMSA7Ci0gICAgRU5ECi0gIEVORCBECi0gIFBJTiBWREQKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgUE9XRVIgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWREQgVkREISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAxLjY1IDEuOCAxLjcxIDsKLSAgICBFTkQKLSAgRU5EIFZERAotICBQSU4gVlNTCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIEdST1VORCA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZTUyBWU1MhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDAuMDAgMS44IDAuMDYgOwotICAgIEVORAotICBFTkQgVlNTCi1FTkQgTk9SNEJYMQotCi1NQUNSTyBTRURGRlRSWDEKLSAgQ0xBU1MgQ09SRSA7Ci0gIE9SSUdJTiAwIDAgOwotICBGT1JFSUdOIFNFREZGVFJYMSAwIDAgOwotICBTSVpFIDguMiBCWSAxLjcxIDsKLSAgU1lNTUVUUlkgWCBZIDsKLSAgU0lURSBDb3JlU2l0ZSA7Ci0gIFBJTiBRCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBPVVRQVVQgOwotICAgIEFOVEVOTkFESUZGQVJFQSAxLjcyODUgIExBWUVSIE1ldGFsMSA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCA1LjQyIDAuNTQgNS41IDEuMDggOwotICAgICAgICBSRUNUIDUuMzE1IDEgNS41IDEuMDggOwotICAgICAgICBSRUNUIDUuNDIgMC42IDUuNTQgMC43MyA7Ci0gICAgRU5ECi0gIEVORCBRCi0gIFBJTiBRTgotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gT1VUUFVUIDsKLSAgICBBTlRFTk5BRElGRkFSRUEgMS43Mjg1ICBMQVlFUiBNZXRhbDEgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wNiAwLjU0IDAuMTQgMS4yOSA7Ci0gICAgRU5ECi0gIEVORCBRTgotICBQSU4gRAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgNy44NiAwLjk4IDcuOTQgMS4xNyA7Ci0gICAgICAgIFJFQ1QgNy44OSAwLjcgNy45NyAxLjA2IDsKLSAgICBFTkQKLSAgRU5EIEQKLSAgUElOIEUKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDYuOTg1IDAuNzcgNy41NCAwLjg1IDsKLSAgICAgICAgUkVDVCA3LjQ2IDAuNzcgNy41NCAwLjkyIDsKLSAgICBFTkQKLSAgRU5EIEUKLSAgUElOIFJOCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCA1Ljg2IDAuODc1IDUuOTQgMS4yMDUgOwotICAgICAgICBSRUNUIDUuODYgMC44NzUgNi4xMSAwLjk1NSA7Ci0gICAgRU5ECi0gIEVORCBSTgotICBQSU4gU0kKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDQuMDggMC42NCA0LjE2IDAuOTYgOwotICAgICAgICBSRUNUIDQuMDggMC42NCA0LjM0IDAuOTIgOwotICAgIEVORAotICBFTkQgU0kKLSAgUElOIFNFCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAzLjgzNSAwLjYyNSAzLjk4IDAuNzA1IDsKLSAgICAgICAgUkVDVCAzLjkyIDAuNDggMy45OCAwLjgyIDsKLSAgICAgICAgUkVDVCAzLjkyIDAuNDggNC42NiAwLjU0IDsKLSAgICAgICAgUkVDVCA0LjYgMC40OCA0LjY2IDAuODIgOwotICAgIEVORAotICBFTkQgU0UKLSAgUElOIENLCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAzLjI2IDAuNjcgMy4zNSAxLjEyIDsKLSAgICBFTkQKLSAgRU5EIENLCi0gIFBJTiBWREQKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgUE9XRVIgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWREQgVkREISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAxLjY1IDguMiAxLjcxIDsKLSAgICBFTkQKLSAgRU5EIFZERAotICBQSU4gVlNTCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIEdST1VORCA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZTUyBWU1MhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDAuMDAgOC4yIDAuMDYgOwotICAgIEVORAotICBFTkQgVlNTCi1FTkQgU0VERkZUUlgxCi0KLU1BQ1JPIFNFREZGVFJYNAotICBDTEFTUyBDT1JFIDsKLSAgT1JJR0lOIDAgMCA7Ci0gIEZPUkVJR04gU0VERkZUUlg0IDAgMCA7Ci0gIFNJWkUgOS42IEJZIDEuNzEgOwotICBTWU1NRVRSWSBYIFkgOwotICBTSVRFIENvcmVTaXRlIDsKLSAgUElOIFFOCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBPVVRQVVQgOwotICAgIEFOVEVOTkFESUZGQVJFQSAxLjcyODUgIExBWUVSIE1ldGFsMSA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCA1LjkwNSAwLjQ5IDUuOTY1IDEuMDg1IDsKLSAgICAgICAgUkVDVCA1LjcwNSAxLjAyNSA1Ljk2NSAxLjA4NSA7Ci0gICAgICAgIFJFQ1QgNS44MzUgMS4wMDUgNi4xNyAxLjA2NSA7Ci0gICAgICAgIFJFQ1QgNi4xMSAxLjAyNSA2LjI5NSAxLjA4NSA7Ci0gICAgICAgIFJFQ1QgNS44MzUgMC40OSA2LjQyNSAwLjU1IDsKLSAgICBFTkQKLSAgRU5EIFFOCi0gIFBJTiBRCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBPVVRQVVQgOwotICAgIEFOVEVOTkFESUZGQVJFQSAxLjcyODUgIExBWUVSIE1ldGFsMSA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCA1LjA2IDAuNDYgNS4xMiAxLjA4NSA7Ci0gICAgICAgIFJFQ1QgNC43MzUgMS4wMjUgNS4xNjUgMS4wODUgOwotICAgICAgICBSRUNUIDUuMDM1IDEuMDA1IDUuMzI1IDEuMDY1IDsKLSAgICAgICAgUkVDVCA1LjI2NSAxLjAwNSA1LjMyNSAxLjEyNSA7Ci0gICAgICAgIFJFQ1QgNC44OTUgMC40NiA1LjQ4NSAwLjUyIDsKLSAgICBFTkQKLSAgRU5EIFEKLSAgUElOIEQKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDkuMjYgMC40MSA5LjM0IDAuOTEgOwotICAgIEVORAotICBFTkQgRAotICBQSU4gRQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgOC44NiAwLjc5IDguOTUgMC45MiA7Ci0gICAgICAgIFJFQ1QgOC44NyAwLjc0IDguOTUgMC45MiA7Ci0gICAgICAgIFJFQ1QgOC40MyAwLjg0IDguOTUgMC45MiA7Ci0gICAgRU5ECi0gIEVORCBFCi0gIFBJTiBSTgotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgNy4yNiAwLjc4IDcuMzkgMS4yMyA7Ci0gICAgRU5ECi0gIEVORCBSTgotICBQSU4gQ0sKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDQuNCAwLjY1IDQuNTQgMC43MyA7Ci0gICAgICAgIFJFQ1QgNC40NiAwLjYgNC41NCAxLjA0IDsKLSAgICBFTkQKLSAgRU5EIENLCi0gIFBJTiBTSQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4xOSAwLjgwNSAwLjU4IDAuOTg1IDsKLSAgICAgICAgUkVDVCAwLjE5IDAuOTA1IDAuNTkgMC45ODUgOwotICAgIEVORAotICBFTkQgU0kKLSAgUElOIFNFCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjIyNSAwLjYyNSAwLjM2NSAwLjcwNSA7Ci0gICAgICAgIFJFQ1QgMC41NDUgMC4zIDAuNjA1IDAuNzA1IDsKLSAgICAgICAgUkVDVCAwLjIyNSAwLjY0NSAwLjc1IDAuNzA1IDsKLSAgICAgICAgUkVDVCAwLjU0NSAwLjMgMS4wNyAwLjM2IDsKLSAgICAgICAgUkVDVCAxLjAxIDAuMyAxLjA3IDAuODUgOwotICAgIEVORAotICBFTkQgU0UKLSAgUElOIFZERAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBQT1dFUiA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZERCBWREQhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDEuNjUgOS42IDEuNzEgOwotICAgIEVORAotICBFTkQgVkRECi0gIFBJTiBWU1MKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgR1JPVU5EIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVlNTIFZTUyEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMC4wMCA5LjYgMC4wNiA7Ci0gICAgRU5ECi0gIEVORCBWU1MKLUVORCBTRURGRlRSWDQKLQotTUFDUk8gTkFORDNCWDEKLSAgQ0xBU1MgQ09SRSA7Ci0gIE9SSUdJTiAwIDAgOwotICBGT1JFSUdOIE5BTkQzQlgxIDAgMCA7Ci0gIFNJWkUgMS4yIEJZIDEuNzEgOwotICBTWU1NRVRSWSBYIFkgOwotICBTSVRFIENvcmVTaXRlIDsKLSAgUElOIFkKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIE9VVFBVVCA7Ci0gICAgQU5URU5OQURJRkZBUkVBIDEuNzI4NSAgTEFZRVIgTWV0YWwxIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDggMC40NCAwLjE0IDEuMjYgOwotICAgICAgICBSRUNUIDAuMDYgMC45OCAwLjE0IDEuMjYgOwotICAgICAgICBSRUNUIDAuMTQ1IDEuMiAwLjIwNSAxLjQ4IDsKLSAgICAgICAgUkVDVCAwLjIgMC4zOCAwLjI2IDAuNSA7Ci0gICAgICAgIFJFQ1QgMC4wOCAwLjQ0IDAuMjYgMC41IDsKLSAgICAgICAgUkVDVCAwLjA2IDEuMiAwLjYxNSAxLjI2IDsKLSAgICAgICAgUkVDVCAwLjU1NSAxLjIgMC42MTUgMS40OCA7Ci0gICAgRU5ECi0gIEVORCBZCi0gIFBJTiBBTgotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC44NiAwLjc2IDAuOTQgMS4yNiA7Ci0gICAgRU5ECi0gIEVORCBBTgotICBQSU4gQgotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC40NiAwLjYgMC41NCAxLjEgOwotICAgIEVORAotICBFTkQgQgotICBQSU4gQwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4yNiAwLjYgMC4zNCAxLjEgOwotICAgIEVORAotICBFTkQgQwotICBQSU4gVkRECi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIFBPV0VSIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVkREIFZERCEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMS42NSAxLjIgMS43MSA7Ci0gICAgRU5ECi0gIEVORCBWREQKLSAgUElOIFZTUwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBHUk9VTkQgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWU1MgVlNTISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAwLjAwIDEuMiAwLjA2IDsKLSAgICBFTkQKLSAgRU5EIFZTUwotRU5EIE5BTkQzQlgxCi0KLU1BQ1JPIERGRlFYMgotICBDTEFTUyBDT1JFIDsKLSAgT1JJR0lOIDAgMCA7Ci0gIEZPUkVJR04gREZGUVgyIDAgMCA7Ci0gIFNJWkUgMy44IEJZIDEuNzEgOwotICBTWU1NRVRSWSBYIFkgOwotICBTSVRFIENvcmVTaXRlIDsKLSAgUElOIFEKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIE9VVFBVVCA7Ci0gICAgQU5URU5OQURJRkZBUkVBIDEuNzI4NSAgTEFZRVIgTWV0YWwxIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDMuMDYgMC43OSAzLjEyIDEuMzU1IDsKLSAgICAgICAgUkVDVCAzLjA4IDAuNTQgMy4xNCAwLjkyIDsKLSAgICBFTkQKLSAgRU5EIFEKLSAgUElOIEQKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuODYgMC41OSAwLjk0IDAuNzMgOwotICAgICAgICBSRUNUIDAuODYgMC42NSAxLjA1NSAwLjczIDsKLSAgICAgICAgUkVDVCAwLjk3NSAwLjY1IDEuMDU1IDAuOTc1IDsKLSAgICBFTkQKLSAgRU5EIEQKLSAgUElOIENLCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjA2IDAuNiAwLjE0IDAuNzMgOwotICAgICAgICBSRUNUIDAuMDYgMC42MjUgMC4zNyAwLjczIDsKLSAgICAgICAgUkVDVCAwLjI5IDAuNjI1IDAuMzcgMC44NyA7Ci0gICAgRU5ECi0gIEVORCBDSwotICBQSU4gVkRECi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIFBPV0VSIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVkREIFZERCEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMS42NSAzLjggMS43MSA7Ci0gICAgRU5ECi0gIEVORCBWREQKLSAgUElOIFZTUwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBHUk9VTkQgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWU1MgVlNTISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAwLjAwIDMuOCAwLjA2IDsKLSAgICBFTkQKLSAgRU5EIFZTUwotRU5EIERGRlFYMgotCi1NQUNSTyBBTkQzWDYKLSAgQ0xBU1MgQ09SRSA7Ci0gIE9SSUdJTiAwIDAgOwotICBGT1JFSUdOIEFORDNYNiAwIDAgOwotICBTSVpFIDIuNiBCWSAxLjcxIDsKLSAgU1lNTUVUUlkgWCBZIDsKLSAgU0lURSBDb3JlU2l0ZSA7Ci0gIFBJTiBZCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBPVVRQVVQgOwotICAgIEFOVEVOTkFESUZGQVJFQSAxLjcyODUgIExBWUVSIE1ldGFsMSA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAxLjYgMC4zNDUgMS42NiAwLjY1NSA7Ci0gICAgICAgIFJFQ1QgMS42IDAuOTIgMS42NiAxLjM3IDsKLSAgICAgICAgUkVDVCAyLjAxIDAuMzQ1IDIuMDcgMC42NTUgOwotICAgICAgICBSRUNUIDIuMDEgMC45MiAyLjA3IDEuMzcgOwotICAgICAgICBSRUNUIDIuMjYgMC41OTUgMi4zMiAwLjk4IDsKLSAgICAgICAgUkVDVCAyLjI2IDAuNzkgMi4zNCAwLjk4IDsKLSAgICAgICAgUkVDVCAxLjYgMC45MiAyLjQ4IDAuOTggOwotICAgICAgICBSRUNUIDIuNDIgMC4zNDUgMi40OCAwLjY1NSA7Ci0gICAgICAgIFJFQ1QgMS42IDAuNTk1IDIuNDggMC42NTUgOwotICAgICAgICBSRUNUIDIuNDIgMC45MiAyLjQ4IDEuMzcgOwotICAgIEVORAotICBFTkQgWQotICBQSU4gQwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC41MyAwLjgxNSAwLjk2IDAuOTY1IDsKLSAgICBFTkQKLSAgRU5EIEMKLSAgUElOIEIKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuNDcgMC42NTUgMS4xNCAwLjcxNSA7Ci0gICAgICAgIFJFQ1QgMS4wNiAwLjY1NSAxLjE0IDAuOTIgOwotICAgIEVORAotICBFTkQgQgotICBQSU4gQQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4yNiAwLjYgMC4zNyAwLjczIDsKLSAgICAgICAgUkVDVCAwLjMxIDAuNDk1IDAuMzcgMC43MzUgOwotICAgICAgICBSRUNUIDAuMzEgMC40OTUgMS4zMiAwLjU1NSA7Ci0gICAgICAgIFJFQ1QgMS4yNiAwLjQ5NSAxLjMyIDAuNzUgOwotICAgIEVORAotICBFTkQgQQotICBQSU4gVkRECi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIFBPV0VSIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVkREIFZERCEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMS42NSAyLjYgMS43MSA7Ci0gICAgRU5ECi0gIEVORCBWREQKLSAgUElOIFZTUwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBHUk9VTkQgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWU1MgVlNTISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAwLjAwIDIuNiAwLjA2IDsKLSAgICBFTkQKLSAgRU5EIFZTUwotRU5EIEFORDNYNgotCi1NQUNSTyBBT0kyMjFYNAotICBDTEFTUyBDT1JFIDsKLSAgT1JJR0lOIDAgMCA7Ci0gIEZPUkVJR04gQU9JMjIxWDQgMCAwIDsKLSAgU0laRSA0LjYgQlkgMS43MSA7Ci0gIFNZTU1FVFJZIFggWSA7Ci0gIFNJVEUgQ29yZVNpdGUgOwotICBQSU4gWQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gT1VUUFVUIDsKLSAgICBBTlRFTk5BRElGRkFSRUEgMS43Mjg1ICBMQVlFUiBNZXRhbDEgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC43NiAwLjQ0NSAwLjg4IDAuNTA1IDsKLSAgICAgICAgUkVDVCAxLjM4IDAuNDQ1IDEuNSAwLjUyNSA7Ci0gICAgICAgIFJFQ1QgMS44MzUgMC42MjUgMS45NjUgMC43MDUgOwotICAgICAgICBSRUNUIDEuOTA1IDAuNDY1IDEuOTY1IDEuMDU1IDsKLSAgICAgICAgUkVDVCAyLjM3IDAuNDQ1IDIuNDkgMC41MjUgOwotICAgICAgICBSRUNUIDMuMTM1IDAuNDQ1IDMuMjU1IDAuNTI1IDsKLSAgICAgICAgUkVDVCAzLjY3NSAwLjQ0NSAzLjc5NSAwLjUyNSA7Ci0gICAgICAgIFJFQ1QgMy44MzUgMC45OTUgMy44OTUgMS4xMzUgOwotICAgICAgICBSRUNUIDAuODMgMC40NjUgNC4xNjUgMC41MjUgOwotICAgICAgICBSRUNUIDQuMTE1IDAuNDQ1IDQuMjM1IDAuNTA1IDsKLSAgICAgICAgUkVDVCAxLjkwNSAwLjk5NSA0LjMwNSAxLjA1NSA7Ci0gICAgICAgIFJFQ1QgNC4yNDUgMC45OTUgNC4zMDUgMS4xMzUgOwotICAgIEVORAotICBFTkQgWQotICBQSU4gQTEKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuNjg1IDAuODE1IDEuNDI1IDAuODk1IDsKLSAgICBFTkQKLSAgRU5EIEExCi0gIFBJTiBCMQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMi41IDAuODE1IDMuMTggMC44OTUgOwotICAgIEVORAotICBFTkQgQjEKLSAgUElOIEEwCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjIzNSAwLjYyNSAwLjM2NSAwLjcwNSA7Ci0gICAgICAgIFJFQ1QgMC4yMyAwLjY0NSAxLjczNSAwLjcwNSA7Ci0gICAgRU5ECi0gIEVORCBBMAotICBQSU4gQjAKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDMuNDI1IDAuNjU1IDMuNDg1IDAuODk1IDsKLSAgICAgICAgUkVDVCAyLjA5IDAuNjU1IDMuNTQ1IDAuNzE1IDsKLSAgICAgICAgUkVDVCAzLjQyNSAwLjgxNSAzLjU2NSAwLjg5NSA7Ci0gICAgRU5ECi0gIEVORCBCMAotICBQSU4gQzAKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDMuODM1IDAuNjI1IDMuOTY1IDAuODk1IDsKLSAgICAgICAgUkVDVCAzLjgzNSAwLjYzIDQuMTk1IDAuNzEgOwotICAgIEVORAotICBFTkQgQzAKLSAgUElOIFZERAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBQT1dFUiA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZERCBWREQhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDEuNjUgNC42IDEuNzEgOwotICAgIEVORAotICBFTkQgVkRECi0gIFBJTiBWU1MKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgR1JPVU5EIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVlNTIFZTUyEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMC4wMCA0LjYgMC4wNiA7Ci0gICAgRU5ECi0gIEVORCBWU1MKLUVORCBBT0kyMjFYNAotCi1NQUNSTyBYT1IyWDIKLSAgQ0xBU1MgQ09SRSA7Ci0gIE9SSUdJTiAwIDAgOwotICBGT1JFSUdOIFhPUjJYMiAwIDAgOwotICBTSVpFIDIgQlkgMS43MSA7Ci0gIFNZTU1FVFJZIFggWSA7Ci0gIFNJVEUgQ29yZVNpdGUgOwotICBQSU4gWQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gT1VUUFVUIDsKLSAgICBBTlRFTk5BRElGRkFSRUEgMS43Mjg1ICBMQVlFUiBNZXRhbDEgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4yNiAwLjYgMC4zNCAwLjczIDsKLSAgICAgICAgUkVDVCAwLjI4IDAuNDk1IDAuMzQgMS4yMTUgOwotICAgICAgICBSRUNUIDAuMjggMS4xNTUgMC40MzUgMS4yMTUgOwotICAgICAgICBSRUNUIDAuMzc1IDAuNDM1IDAuNDM1IDAuNTU1IDsKLSAgICAgICAgUkVDVCAwLjI4IDAuNDk1IDAuNDM1IDAuNTU1IDsKLSAgICAgICAgUkVDVCAwLjM3NSAxLjE1NSAwLjQzNSAxLjI3NSA7Ci0gICAgRU5ECi0gIEVORCBZCi0gIFBJTiBCCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAxLjA2IDAuODI1IDEuNTY1IDAuODg1IDsKLSAgICAgICAgUkVDVCAxLjQzNSAwLjgxNSAxLjU2NSAwLjg5NSA7Ci0gICAgICAgIFJFQ1QgMS4zMzUgMC44MTUgMS43ODUgMC44NzUgOwotICAgIEVORAotICBFTkQgQgotICBQSU4gQQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC42IDAuODE1IDAuOCAwLjg5NSA7Ci0gICAgICAgIFJFQ1QgMC43MiAwLjgxNSAwLjggMS4xOTUgOwotICAgIEVORAotICBFTkQgQQotICBQSU4gVkRECi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIFBPV0VSIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVkREIFZERCEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMS42NSAyIDEuNzEgOwotICAgIEVORAotICBFTkQgVkRECi0gIFBJTiBWU1MKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgR1JPVU5EIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVlNTIFZTUyEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMC4wMCAyIDAuMDYgOwotICAgIEVORAotICBFTkQgVlNTCi1FTkQgWE9SMlgyCi0KLU1BQ1JPIERGRlJYNAotICBDTEFTUyBDT1JFIDsKLSAgT1JJR0lOIDAgMCA7Ci0gIEZPUkVJR04gREZGUlg0IDAgMCA7Ci0gIFNJWkUgNi40IEJZIDEuNzEgOwotICBTWU1NRVRSWSBYIFkgOwotICBTSVRFIENvcmVTaXRlIDsKLSAgUElOIFFOCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBPVVRQVVQgOwotICAgIEFOVEVOTkFESUZGQVJFQSAxLjcyODUgIExBWUVSIE1ldGFsMSA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCA1LjA1NSAxLjA1IDUuMTE1IDEuMzMgOwotICAgICAgICBSRUNUIDUuMDY1IDAuNTcgNS4xNCAxLjExIDsKLSAgICAgICAgUkVDVCA1LjA2IDAuOTggNS4xNCAxLjExIDsKLSAgICAgICAgUkVDVCA1LjQzIDEuMDY1IDUuNTI1IDEuMTMgOwotICAgICAgICBSRUNUIDUuMDU1IDEuMDUgNS40OSAxLjExIDsKLSAgICAgICAgUkVDVCA1LjQ2NSAxLjA2NSA1LjUyNSAxLjMzIDsKLSAgICAgICAgUkVDVCA1LjA2NSAwLjU3IDUuNjU1IDAuNjMgOwotICAgIEVORAotICBFTkQgUU4KLSAgUElOIFEKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIE9VVFBVVCA7Ci0gICAgQU5URU5OQURJRkZBUkVBIDEuNzI4NSAgTEFZRVIgTWV0YWwxIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDQuMjE1IDAuOTQgNC4yNzUgMS4zMyA7Ci0gICAgICAgIFJFQ1QgNC4yNiAwLjU1IDQuMzIgMSA7Ci0gICAgICAgIFJFQ1QgNC4yNiAwLjc5IDQuMzQgMSA7Ci0gICAgICAgIFJFQ1QgNC4yMTUgMC45NCA0LjY4NSAxIDsKLSAgICAgICAgUkVDVCA0LjYyNSAwLjk0IDQuNjg1IDEuMzMgOwotICAgICAgICBSRUNUIDQuMTI1IDAuNTUgNC43MTUgMC42MSA7Ci0gICAgRU5ECi0gIEVORCBRCi0gIFBJTiBSTgotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMi4yMzUgMC42MjUgMi40IDAuNzA1IDsKLSAgICAgICAgUkVDVCAyLjM0IDAuMyAyLjQgMC44NyA7Ci0gICAgICAgIFJFQ1QgMS44NDUgMC44MSAyLjQgMC44NyA7Ci0gICAgICAgIFJFQ1QgMi4zNCAwLjMgMy4wOCAwLjM2IDsKLSAgICAgICAgUkVDVCAzLjAyIDAuMyAzLjA4IDAuNDcgOwotICAgICAgICBSRUNUIDMuMDIgMC40MSAzLjM3IDAuNDcgOwotICAgICAgICBSRUNUIDMuMzEgMC40MSAzLjM3IDAuNjMgOwotICAgICAgICBSRUNUIDMuMzEgMC41NyAzLjkwNSAwLjYzIDsKLSAgICBFTkQKLSAgRU5EIFJOCi0gIFBJTiBECi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjg2IDAuNzg1IDAuOTQgMS4yIDsKLSAgICAgICAgUkVDVCAwLjg2IDAuNzg1IDEuMDI1IDAuODY1IDsKLSAgICBFTkQKLSAgRU5EIEQKLSAgUElOIENLCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjA2IDAuNzkgMC4xNCAwLjkyIDsKLSAgICAgICAgUkVDVCAwLjE3IDAuNTMgMC4yNSAwLjg3IDsKLSAgICAgICAgUkVDVCAwLjA2IDAuNzkgMC4yNSAwLjg3IDsKLSAgICBFTkQKLSAgRU5EIENLCi0gIFBJTiBWREQKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgUE9XRVIgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWREQgVkREISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAxLjY1IDYuNCAxLjcxIDsKLSAgICBFTkQKLSAgRU5EIFZERAotICBQSU4gVlNTCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIEdST1VORCA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZTUyBWU1MhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDAuMDAgNi40IDAuMDYgOwotICAgIEVORAotICBFTkQgVlNTCi1FTkQgREZGUlg0Ci0KLU1BQ1JPIEFORDRYOAotICBDTEFTUyBDT1JFIDsKLSAgT1JJR0lOIDAgMCA7Ci0gIEZPUkVJR04gQU5ENFg4IDAgMCA7Ci0gIFNJWkUgMy42IEJZIDEuNzEgOwotICBTWU1NRVRSWSBYIFkgOwotICBTSVRFIENvcmVTaXRlIDsKLSAgUElOIFkKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIE9VVFBVVCA7Ci0gICAgQU5URU5OQURJRkZBUkVBIDEuNzI4NSAgTEFZRVIgTWV0YWwxIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDIuMDY1IDAuNDggMi4yIDAuNTQgOwotICAgICAgICBSRUNUIDIuMjE1IDAuOSAyLjI3NSAxLjM0NSA7Ci0gICAgICAgIFJFQ1QgMi40NzUgMC40OCAyLjU5NSAwLjU1NSA7Ci0gICAgICAgIFJFQ1QgMi42MjUgMC45IDIuNjg1IDEuMzQ1IDsKLSAgICAgICAgUkVDVCAyLjg4NSAwLjQ4IDMuMDA1IDAuNTU1IDsKLSAgICAgICAgUkVDVCAzLjAzNSAwLjkgMy4wOTUgMS4zNDUgOwotICAgICAgICBSRUNUIDMuMDYgMC40OTUgMy4xMiAwLjk2IDsKLSAgICAgICAgUkVDVCAzLjA2IDAuNzkgMy4xNCAwLjk2IDsKLSAgICAgICAgUkVDVCAyLjE0IDAuNDk1IDMuMzQgMC41NTUgOwotICAgICAgICBSRUNUIDMuMjggMC40OCAzLjQxNSAwLjU0IDsKLSAgICAgICAgUkVDVCAyLjIxNSAwLjkgMy41MDUgMC45NiA7Ci0gICAgICAgIFJFQ1QgMy40NDUgMC45IDMuNTA1IDEuMzQ1IDsKLSAgICBFTkQKLSAgRU5EIFkKLSAgUElOIEEKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMjYgMC44MiAwLjMyIDEuMTg1IDsKLSAgICAgICAgUkVDVCAxLjY2IDAuOTggMS44MDUgMS4xODUgOwotICAgICAgICBSRUNUIDEuNzQ1IDAuODIgMS44MDUgMS4xODUgOwotICAgICAgICBSRUNUIDAuMjYgMS4xMjUgMS44MDUgMS4xODUgOwotICAgIEVORAotICBFTkQgQQotICBQSU4gQgotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC40MiAwLjgzNSAwLjU0IDAuODk1IDsKLSAgICAgICAgUkVDVCAwLjQ2IDAuNzkgMC41NCAxLjAyNSA7Ci0gICAgICAgIFJFQ1QgMS41IDAuNzYgMS41NiAxLjAyNSA7Ci0gICAgICAgIFJFQ1QgMC40NiAwLjk2NSAxLjU2IDEuMDI1IDsKLSAgICAgICAgUkVDVCAxLjUgMC43NiAxLjY0NSAwLjg4IDsKLSAgICBFTkQKLSAgRU5EIEIKLSAgUElOIEMKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDEuMjM1IDAuNjI1IDEuMzggMC43MDUgOwotICAgICAgICBSRUNUIDEuMzIgMC42MjUgMS4zOCAwLjg2NSA7Ci0gICAgICAgIFJFQ1QgMC42NyAwLjgwNSAxLjM4IDAuODY1IDsKLSAgICBFTkQKLSAgRU5EIEMKLSAgUElOIEQKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuODYgMC40IDAuOTQgMC43MDUgOwotICAgICAgICBSRUNUIDAuODYgMC42MjUgMS4xMzUgMC43MDUgOwotICAgIEVORAotICBFTkQgRAotICBQSU4gVkRECi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIFBPV0VSIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVkREIFZERCEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMS42NSAzLjYgMS43MSA7Ci0gICAgRU5ECi0gIEVORCBWREQKLSAgUElOIFZTUwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBHUk9VTkQgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWU1MgVlNTISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAwLjAwIDMuNiAwLjA2IDsKLSAgICBFTkQKLSAgRU5EIFZTUwotRU5EIEFORDRYOAotCi1NQUNSTyBTREZGUlhMCi0gIENMQVNTIENPUkUgOwotICBPUklHSU4gMCAwIDsKLSAgRk9SRUlHTiBTREZGUlhMIDAgMCA7Ci0gIFNJWkUgNiBCWSAxLjcxIDsKLSAgU1lNTUVUUlkgWCBZIDsKLSAgU0lURSBDb3JlU2l0ZSA7Ci0gIFBJTiBRCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBPVVRQVVQgOwotICAgIEFOVEVOTkFESUZGQVJFQSAxLjcyODUgIExBWUVSIE1ldGFsMSA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjg2IDAuNDcgMC45MiAxLjM4NSA7Ci0gICAgICAgIFJFQ1QgMC44NiAwLjk4IDAuOTQgMS4zODUgOwotICAgIEVORAotICBFTkQgUQotICBQSU4gUU4KLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIE9VVFBVVCA7Ci0gICAgQU5URU5OQURJRkZBUkVBIDEuNzI4NSAgTEFZRVIgTWV0YWwxIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDYgMC42IDAuMjg1IDAuNzMgOwotICAgICAgICBSRUNUIDAuMjA1IDAuNTQgMC4yODUgMS4wMiA7Ci0gICAgRU5ECi0gIEVORCBRTgotICBQSU4gU0UKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDQuODA1IDAuNDY1IDQuODY1IDAuOTEgOwotICAgICAgICBSRUNUIDUuMDcgMC40NjUgNS4xMyAwLjcyNSA7Ci0gICAgICAgIFJFQ1QgNC44MDUgMC40NjUgNS42OTUgMC41MjUgOwotICAgICAgICBSRUNUIDUuNjM1IDAuNDY1IDUuNjk1IDAuNzA1IDsKLSAgICAgICAgUkVDVCA1LjYzNSAwLjYyNSA1Ljc2NSAwLjcwNSA7Ci0gICAgRU5ECi0gIEVORCBTRQotICBQSU4gU0kKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDUuMjMgMC42MjUgNS4zNjUgMC45IDsKLSAgICAgICAgUkVDVCA1LjIzIDAuODIgNS41MzUgMC45IDsKLSAgICBFTkQKLSAgRU5EIFNJCi0gIFBJTiBECi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCA0LjQ2IDAuNzkgNC41NCAwLjk5IDsKLSAgICAgICAgUkVDVCA0LjQ2NSAwLjQ5NSA0LjU0NSAwLjg3IDsKLSAgICBFTkQKLSAgRU5EIEQKLSAgUElOIFJOCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAxLjYzNSAwLjgxNSAxLjc2NSAwLjkyIDsKLSAgICAgICAgUkVDVCAxLjYzNSAwLjgyIDIuMTEgMC45IDsKLSAgICBFTkQKLSAgRU5EIFJOCi0gIFBJTiBDSwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMS4wNiAwLjk4IDEuMTQgMS4yNiA7Ci0gICAgICAgIFJFQ1QgMS4xMyAwLjgzIDEuMjEgMS4wODUgOwotICAgIEVORAotICBFTkQgQ0sKLSAgUElOIFZERAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBQT1dFUiA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZERCBWREQhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDEuNjUgNiAxLjcxIDsKLSAgICBFTkQKLSAgRU5EIFZERAotICBQSU4gVlNTCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIEdST1VORCA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZTUyBWU1MhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDAuMDAgNiAwLjA2IDsKLSAgICBFTkQKLSAgRU5EIFZTUwotRU5EIFNERkZSWEwKLQotTUFDUk8gU0RGRk5TUlgxCi0gIENMQVNTIENPUkUgOwotICBPUklHSU4gMCAwIDsKLSAgRk9SRUlHTiBTREZGTlNSWDEgMCAwIDsKLSAgU0laRSA3LjggQlkgMS43MSA7Ci0gIFNZTU1FVFJZIFggWSA7Ci0gIFNJVEUgQ29yZVNpdGUgOwotICBQSU4gUQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gT1VUUFVUIDsKLSAgICBBTlRFTk5BRElGRkFSRUEgMS43Mjg1ICBMQVlFUiBNZXRhbDEgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC44OSAwLjU1NSAwLjk1IDEuMTEgOwotICAgICAgICBSRUNUIDAuODYgMC45OCAwLjk1IDEuMTEgOwotICAgICAgICBSRUNUIDAuOTM1IDEuMDM1IDAuOTk1IDEuNDI1IDsKLSAgICAgICAgUkVDVCAwLjk0IDAuNTE1IDEgMC42MzUgOwotICAgIEVORAotICBFTkQgUQotICBQSU4gUU4KLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIE9VVFBVVCA7Ci0gICAgQU5URU5OQURJRkZBUkVBIDEuNzI4NSAgTEFZRVIgTWV0YWwxIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDYgMC42IDAuMzI1IDAuNzMgOwotICAgICAgICBSRUNUIDAuMjQ1IDAuNTQgMC4zMjUgMS4yOSA7Ci0gICAgRU5ECi0gIEVORCBRTgotICBQSU4gU0UKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDcuMjM1IDAuNjI1IDcuMzY1IDAuNzI1IDsKLSAgICAgICAgUkVDVCA3LjA0IDAuNjQ1IDcuNTIgMC43MjUgOwotICAgIEVORAotICBFTkQgU0UKLSAgUElOIFNJCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCA3LjIgMC44MjUgNy41MiAxLjA4NSA7Ci0gICAgRU5ECi0gIEVORCBTSQotICBQSU4gRAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgNi40OCAwLjY3IDYuNTYgMS4xNSA7Ci0gICAgICAgIFJFQ1QgNi40NiAwLjk4IDYuNTYgMS4xNSA7Ci0gICAgRU5ECi0gIEVORCBECi0gIFBJTiBDS04KLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDYuMjYgMC42NyA2LjM2IDAuOTIgOwotICAgICAgICBSRUNUIDYuMjggMC42NyA2LjM2IDEuMTUgOwotICAgIEVORAotICBFTkQgQ0tOCi0gIFBJTiBTTgotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMi4yMzUgMC44MTUgMi4zNjUgMC44OTUgOwotICAgICAgICBSRUNUIDIuMTMgMC44MzUgMi4zNjUgMC44OTUgOwotICAgICAgICBSRUNUIDIuMzA1IDAuODE1IDIuMzY1IDAuOTg1IDsKLSAgICAgICAgUkVDVCAyLjMwNSAwLjkyNSAzLjIyIDAuOTg1IDsKLSAgICAgICAgUkVDVCAzLjE2IDAuOTI1IDMuMjIgMS4yMzUgOwotICAgICAgICBSRUNUIDMuMTYgMS4xNzUgNC4xMiAxLjIzNSA7Ci0gICAgICAgIFJFQ1QgNC4wNiAxLjE3NSA0LjEyIDEuNDA1IDsKLSAgICAgICAgUkVDVCA0LjA2IDEuMzQ1IDQuNTE1IDEuNDA1IDsKLSAgICBFTkQKLSAgRU5EIFNOCi0gIFBJTiBSTgotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMS4yNDUgMC44OTUgMS4zNjUgMS4yMDUgOwotICAgICAgICBSRUNUIDEuMDk1IDEuMDA1IDEuMzY1IDEuMjA1IDsKLSAgICBFTkQKLSAgRU5EIFJOCi0gIFBJTiBWREQKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgUE9XRVIgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWREQgVkREISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAxLjY1IDcuOCAxLjcxIDsKLSAgICBFTkQKLSAgRU5EIFZERAotICBQSU4gVlNTCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIEdST1VORCA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZTUyBWU1MhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDAuMDAgNy44IDAuMDYgOwotICAgIEVORAotICBFTkQgVlNTCi1FTkQgU0RGRk5TUlgxCi0KLU1BQ1JPIEFPSTMxWDEKLSAgQ0xBU1MgQ09SRSA7Ci0gIE9SSUdJTiAwIDAgOwotICBGT1JFSUdOIEFPSTMxWDEgMCAwIDsKLSAgU0laRSAxLjIgQlkgMS43MSA7Ci0gIFNZTU1FVFJZIFggWSA7Ci0gIFNJVEUgQ29yZVNpdGUgOwotICBQSU4gWQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gT1VUUFVUIDsKLSAgICBBTlRFTk5BRElGRkFSRUEgMS43Mjg1ICBMQVlFUiBNZXRhbDEgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC43MyAwLjM3IDAuNzkgMC41MSA7Ci0gICAgICAgIFJFQ1QgMC43MyAwLjQ1IDEuMTIgMC41MSA7Ci0gICAgICAgIFJFQ1QgMS4wNiAwLjQ1IDEuMTIgMS40OCA7Ci0gICAgICAgIFJFQ1QgMS4wNiAwLjYgMS4xNCAwLjczIDsKLSAgICBFTkQKLSAgRU5EIFkKLSAgUElOIEEwCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjI2IDAuNDUgMC4zNCAwLjk1IDsKLSAgICBFTkQKLSAgRU5EIEEwCi0gIFBJTiBCMAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC44NiAwLjYxIDAuOTQgMS4xMSA7Ci0gICAgRU5ECi0gIEVORCBCMAotICBQSU4gQTIKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuNjUgMC42MSAwLjczIDEuMSA7Ci0gICAgICAgIFJFQ1QgMC42NSAwLjYxIDAuNzQgMC45MiA7Ci0gICAgRU5ECi0gIEVORCBBMgotICBQSU4gQTEKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuNDYgMC4yMiAwLjU0IDAuMzUgOwotICAgICAgICBSRUNUIDAuNDcgMC4yNyAwLjU1IDAuNzEgOwotICAgIEVORAotICBFTkQgQTEKLSAgUElOIFZERAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBQT1dFUiA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZERCBWREQhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDEuNjUgMS4yIDEuNzEgOwotICAgIEVORAotICBFTkQgVkRECi0gIFBJTiBWU1MKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgR1JPVU5EIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVlNTIFZTUyEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMC4wMCAxLjIgMC4wNiA7Ci0gICAgRU5ECi0gIEVORCBWU1MKLUVORCBBT0kzMVgxCi0KLU1BQ1JPIFNERkZOU1JYNAotICBDTEFTUyBDT1JFIDsKLSAgT1JJR0lOIDAgMCA7Ci0gIEZPUkVJR04gU0RGRk5TUlg0IDAgMCA7Ci0gIFNJWkUgOS40IEJZIDEuNzEgOwotICBTWU1NRVRSWSBYIFkgOwotICBTSVRFIENvcmVTaXRlIDsKLSAgUElOIFFOCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBPVVRQVVQgOwotICAgIEFOVEVOTkFESUZGQVJFQSAxLjcyODUgIExBWUVSIE1ldGFsMSA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCA4LjA0NSAwLjkxNSA4LjEwNSAxLjMwNSA7Ci0gICAgICAgIFJFQ1QgOC4wOCAwLjQ4IDguMTQgMC45NzUgOwotICAgICAgICBSRUNUIDguMDYgMC43OSA4LjE0IDAuOTc1IDsKLSAgICAgICAgUkVDVCA4LjA0NSAwLjkxNSA4LjUxNSAwLjk3NSA7Ci0gICAgICAgIFJFQ1QgOC40NTUgMC45MTUgOC41MTUgMS4zMDUgOwotICAgICAgICBSRUNUIDguMDggMC40OCA4LjY3IDAuNTQgOwotICAgIEVORAotICBFTkQgUU4KLSAgUElOIFEKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIE9VVFBVVCA7Ci0gICAgQU5URU5OQURJRkZBUkVBIDEuNzI4NSAgTEFZRVIgTWV0YWwxIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDcuMjYgMC40OCA3LjMyIDEuMzA1IDsKLSAgICAgICAgUkVDVCA3LjIyNSAwLjkxNSA3LjMyIDEuMzA1IDsKLSAgICAgICAgUkVDVCA3LjI2IDAuNzkgNy4zNCAwLjkyIDsKLSAgICAgICAgUkVDVCA3LjI2IDAuODYgNy42OTUgMC45MiA7Ci0gICAgICAgIFJFQ1QgNy42MzUgMC44NiA3LjY5NSAxLjMwNSA7Ci0gICAgICAgIFJFQ1QgNy4xNCAwLjQ4IDcuNzMgMC41NCA7Ci0gICAgRU5ECi0gIEVORCBRCi0gIFBJTiBSTgotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgNC4wMzUgMC42MjUgNC4xNjUgMC43MDUgOwotICAgICAgICBSRUNUIDQuMDg1IDAuNjU1IDQuNTkgMC43MzUgOwotICAgIEVORAotICBFTkQgUk4KLSAgUElOIFNOCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAzLjYzNSAwLjYyNSAzLjkzNSAwLjcwNSA7Ci0gICAgICAgIFJFQ1QgMy44NTUgMC42MjUgMy45MzUgMC45MDUgOwotICAgIEVORAotICBFTkQgU04KLSAgUElOIENLTgotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMS40NiAwLjcgMS41NCAxLjIgOwotICAgIEVORAotICBFTkQgQ0tOCi0gIFBJTiBECi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAxLjI2IDAuNjUgMS4zNCAxLjE1IDsKLSAgICBFTkQKLSAgRU5EIEQKLSAgUElOIFNJCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjQ2IDAuNzE1IDAuNTQgMS4wNzUgOwotICAgICAgICBSRUNUIDAuNDYgMC43MTUgMC42OCAwLjkyIDsKLSAgICBFTkQKLSAgRU5EIFNJCi0gIFBJTiBTRQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4zIDAuNTU1IDAuMzYgMC42NzUgOwotICAgICAgICBSRUNUIDAuNjYgMC40MSAwLjg0IDAuNjE1IDsKLSAgICAgICAgUkVDVCAwLjMgMC41NTUgMC44NCAwLjYxNSA7Ci0gICAgICAgIFJFQ1QgMC43OCAwLjI5NSAwLjg0IDAuNzk1IDsKLSAgICAgICAgUkVDVCAwLjc4IDAuMjk1IDEuMTYgMC4zNTUgOwotICAgICAgICBSRUNUIDEuMSAwLjI5NSAxLjE2IDEuMDYgOwotICAgIEVORAotICBFTkQgU0UKLSAgUElOIFZERAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBQT1dFUiA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZERCBWREQhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDEuNjUgOS40IDEuNzEgOwotICAgIEVORAotICBFTkQgVkRECi0gIFBJTiBWU1MKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgR1JPVU5EIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVlNTIFZTUyEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMC4wMCA5LjQgMC4wNiA7Ci0gICAgRU5ECi0gIEVORCBWU1MKLUVORCBTREZGTlNSWDQKLQotTUFDUk8gQU5EMlgyCi0gIENMQVNTIENPUkUgOwotICBPUklHSU4gMCAwIDsKLSAgRk9SRUlHTiBBTkQyWDIgMCAwIDsKLSAgU0laRSAxLjIgQlkgMS43MSA7Ci0gIFNZTU1FVFJZIFggWSA7Ci0gIFNJVEUgQ29yZVNpdGUgOwotICBQSU4gWQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gT1VUUFVUIDsKLSAgICBBTlRFTk5BRElGRkFSRUEgMS43Mjg1ICBMQVlFUiBNZXRhbDEgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC44NiAwLjQ0NSAwLjkyIDEuMzQgOwotICAgICAgICBSRUNUIDAuODYgMC42IDAuOTQgMC43MyA7Ci0gICAgRU5ECi0gIEVORCBZCi0gIFBJTiBBCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjQ2IDAuNjg1IDAuNTkgMC45MiA7Ci0gICAgICAgIFJFQ1QgMC41MSAwLjY4NSAwLjU5IDEuMTM1IDsKLSAgICBFTkQKLSAgRU5EIEEKLSAgUElOIEIKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDYgMC45NTUgMC4xNCAxLjEyNSA7Ci0gICAgICAgIFJFQ1QgMC4xMiAwLjY4NSAwLjIgMS4xMSA7Ci0gICAgRU5ECi0gIEVORCBCCi0gIFBJTiBWREQKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgUE9XRVIgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWREQgVkREISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAxLjY1IDEuMiAxLjcxIDsKLSAgICBFTkQKLSAgRU5EIFZERAotICBQSU4gVlNTCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIEdST1VORCA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZTUyBWU1MhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDAuMDAgMS4yIDAuMDYgOwotICAgIEVORAotICBFTkQgVlNTCi1FTkQgQU5EMlgyCi0KLU1BQ1JPIE9SM1hMCi0gIENMQVNTIENPUkUgOwotICBPUklHSU4gMCAwIDsKLSAgRk9SRUlHTiBPUjNYTCAwIDAgOwotICBTSVpFIDEuMiBCWSAxLjcxIDsKLSAgU1lNTUVUUlkgWCBZIDsKLSAgU0lURSBDb3JlU2l0ZSA7Ci0gIFBJTiBZCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBPVVRQVVQgOwotICAgIEFOVEVOTkFESUZGQVJFQSAxLjcyODUgIExBWUVSIE1ldGFsMSA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjg4IDEuMDMgMC45NiAxLjIxIDsKLSAgICAgICAgUkVDVCAxLjA2IDAuMjYgMS4xNCAxLjExIDsKLSAgICAgICAgUkVDVCAwLjg4IDEuMDMgMS4xNCAxLjExIDsKLSAgICBFTkQKLSAgRU5EIFkKLSAgUElOIEEKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuNjI1IDAuNjQ1IDAuNzA1IDEuMDg1IDsKLSAgICAgICAgUkVDVCAwLjYyNSAxLjAwNSAwLjc2NSAxLjA4NSA7Ci0gICAgRU5ECi0gIEVORCBBCi0gIFBJTiBCCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjI2IDAuNjQgMC4zNjUgMC45MiA7Ci0gICAgICAgIFJFQ1QgMC4yODUgMC42NCAwLjM2NSAxLjExNSA7Ci0gICAgRU5ECi0gIEVORCBCCi0gIFBJTiBDCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjA2IDAuNjE1IDAuMTQgMS4xMTUgOwotICAgIEVORAotICBFTkQgQwotICBQSU4gVkRECi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIFBPV0VSIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVkREIFZERCEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMS42NSAxLjIgMS43MSA7Ci0gICAgRU5ECi0gIEVORCBWREQKLSAgUElOIFZTUwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBHUk9VTkQgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWU1MgVlNTISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAwLjAwIDEuMiAwLjA2IDsKLSAgICBFTkQKLSAgRU5EIFZTUwotRU5EIE9SM1hMCi0KLU1BQ1JPIENMS0JVRlg0Ci0gIENMQVNTIENPUkUgOwotICBPUklHSU4gMCAwIDsKLSAgRk9SRUlHTiBDTEtCVUZYNCAwIDAgOwotICBTSVpFIDEuNCBCWSAxLjcxIDsKLSAgU1lNTUVUUlkgWCBZIDsKLSAgU0lURSBDb3JlU2l0ZSA7Ci0gIFBJTiBZCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBPVVRQVVQgOwotICAgIEFOVEVOTkFESUZGQVJFQSAxLjcyODUgIExBWUVSIE1ldGFsMSA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjIzIDAuNDIgMC4yOSAxLjA0IDsKLSAgICAgICAgUkVDVCAwLjI3NSAwLjM2IDAuMzM1IDAuNDggOwotICAgICAgICBSRUNUIDAuMjYgMC45OCAwLjMzNSAxLjM3IDsKLSAgICAgICAgUkVDVCAwLjI2IDAuOTggMC4zNCAxLjExIDsKLSAgICAgICAgUkVDVCAwLjIzIDAuOTggMC43NiAxLjA0IDsKLSAgICAgICAgUkVDVCAwLjIzIDAuNDIgMC43MiAwLjQ4IDsKLSAgICAgICAgUkVDVCAwLjcgMC45OCAwLjc2IDEuMzcgOwotICAgICAgICBSRUNUIDAuNjcgMC40IDAuNzkgMC40NiA7Ci0gICAgRU5ECi0gIEVORCBZCi0gIFBJTiBBCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjg2IDAuNzggMC45NCAxLjE1IDsKLSAgICAgICAgUkVDVCAwLjk1IDAuNzQgMS4wMyAwLjg2IDsKLSAgICAgICAgUkVDVCAwLjg2IDAuNzggMS4wMyAwLjg2IDsKLSAgICBFTkQKLSAgRU5EIEEKLSAgUElOIFZERAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBQT1dFUiA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZERCBWREQhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDEuNjUgMS40IDEuNzEgOwotICAgIEVORAotICBFTkQgVkRECi0gIFBJTiBWU1MKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgR1JPVU5EIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVlNTIFZTUyEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMC4wMCAxLjQgMC4wNiA7Ci0gICAgRU5ECi0gIEVORCBWU1MKLUVORCBDTEtCVUZYNAotCi1NQUNSTyBBTzIyWDEKLSAgQ0xBU1MgQ09SRSA7Ci0gIE9SSUdJTiAwIDAgOwotICBGT1JFSUdOIEFPMjJYMSAwIDAgOwotICBTSVpFIDEuOCBCWSAxLjcxIDsKLSAgU1lNTUVUUlkgWCBZIDsKLSAgU0lURSBDb3JlU2l0ZSA7Ci0gIFBJTiBZCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBPVVRQVVQgOwotICAgIEFOVEVOTkFESUZGQVJFQSAxLjcyODUgIExBWUVSIE1ldGFsMSA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAxLjQ1NSAwLjQxNSAxLjUyIDAuNTM1IDsKLSAgICAgICAgUkVDVCAxLjQ2IDAuNDE1IDEuNTIgMS4xMSA7Ci0gICAgICAgIFJFQ1QgMS40NiAwLjk4IDEuNTQgMS4xMSA7Ci0gICAgICAgIFJFQ1QgMS41NCAxLjA1IDEuNiAxLjQ0IDsKLSAgICBFTkQKLSAgRU5EIFkKLSAgUElOIEIwCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAxLjAyNSAwLjY1NSAxLjEwNSAxLjEyIDsKLSAgICAgICAgUkVDVCAxLjAyNSAwLjc5IDEuMTQgMSA7Ci0gICAgRU5ECi0gIEVORCBCMAotICBQSU4gQTAKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDYgMC45OCAwLjE0IDEuMTEgOwotICAgICAgICBSRUNUIDAuMDggMC42MyAwLjE2IDEuMDYgOwotICAgIEVORAotICBFTkQgQTAKLSAgUElOIEIxCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjYzNSAwLjYyNSAwLjcxNSAxLjA3NSA7Ci0gICAgICAgIFJFQ1QgMC42MzUgMC42MjUgMC43NjUgMC43NDUgOwotICAgIEVORAotICBFTkQgQjEKLSAgUElOIEExCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjI2IDAuNzkgMC4zNCAwLjkyIDsKLSAgICAgICAgUkVDVCAwLjI2IDAuNzkgMC41MzUgMC44NyA7Ci0gICAgICAgIFJFQ1QgMC40NTUgMC43OSAwLjUzNSAxLjA0NSA7Ci0gICAgRU5ECi0gIEVORCBBMQotICBQSU4gVkRECi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIFBPV0VSIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVkREIFZERCEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMS42NSAxLjggMS43MSA7Ci0gICAgRU5ECi0gIEVORCBWREQKLSAgUElOIFZTUwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBHUk9VTkQgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWU1MgVlNTISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAwLjAwIDEuOCAwLjA2IDsKLSAgICBFTkQKLSAgRU5EIFZTUwotRU5EIEFPMjJYMQotCi1NQUNSTyBOT1I0WDEKLSAgQ0xBU1MgQ09SRSA7Ci0gIE9SSUdJTiAwIDAgOwotICBGT1JFSUdOIE5PUjRYMSAwIDAgOwotICBTSVpFIDEuNCBCWSAxLjcxIDsKLSAgU1lNTUVUUlkgWCBZIDsKLSAgU0lURSBDb3JlU2l0ZSA7Ci0gIFBJTiBZCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBPVVRQVVQgOwotICAgIEFOVEVOTkFESUZGQVJFQSAxLjcyODUgIExBWUVSIE1ldGFsMSA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjU3IDAuNDkgMC42MyAwLjYzIDsKLSAgICAgICAgUkVDVCAwLjk5IDAuNDkgMS4wNSAwLjYzIDsKLSAgICAgICAgUkVDVCAwLjU3IDAuNTcgMS4zNCAwLjYzIDsKLSAgICAgICAgUkVDVCAxLjI0IDAuNTcgMS4zIDEuMjkgOwotICAgICAgICBSRUNUIDEuMjQgMC41NyAxLjM0IDAuNzMgOwotICAgIEVORAotICBFTkQgWQotICBQSU4gQQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wNiAwLjYgMC4xNCAwLjczIDsKLSAgICAgICAgUkVDVCAwLjA2IDAuNiAwLjQ3IDAuNjggOwotICAgICAgICBSRUNUIDAuMzkgMC42IDAuNDcgMC43OCA7Ci0gICAgRU5ECi0gIEVORCBBCi0gIFBJTiBCCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjY2IDAuOTggMC43NCAxLjIxIDsKLSAgICAgICAgUkVDVCAwLjY4IDAuNzMgMC43NiAxLjA2IDsKLSAgICBFTkQKLSAgRU5EIEIKLSAgUElOIEMKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuODYgMC43MyAwLjk0IDEuMjMgOwotICAgIEVORAotICBFTkQgQwotICBQSU4gRAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMS4wNiAwLjczIDEuMTQgMS4yMyA7Ci0gICAgRU5ECi0gIEVORCBECi0gIFBJTiBWREQKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgUE9XRVIgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWREQgVkREISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAxLjY1IDEuNCAxLjcxIDsKLSAgICBFTkQKLSAgRU5EIFZERAotICBQSU4gVlNTCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIEdST1VORCA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZTUyBWU1MhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDAuMDAgMS40IDAuMDYgOwotICAgIEVORAotICBFTkQgVlNTCi1FTkQgTk9SNFgxCi0KLU1BQ1JPIE5BTkQzQlg0Ci0gIENMQVNTIENPUkUgOwotICBPUklHSU4gMCAwIDsKLSAgRk9SRUlHTiBOQU5EM0JYNCAwIDAgOwotICBTSVpFIDMgQlkgMS43MSA7Ci0gIFNZTU1FVFJZIFggWSA7Ci0gIFNJVEUgQ29yZVNpdGUgOwotICBQSU4gWQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gT1VUUFVUIDsKLSAgICBBTlRFTk5BRElGRkFSRUEgMS43Mjg1ICBMQVlFUiBNZXRhbDEgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wNiAwLjQxIDAuMTQgMC41NCA7Ci0gICAgICAgIFJFQ1QgMC4wOCAwLjQxIDAuMTQgMS4wOTUgOwotICAgICAgICBSRUNUIDAuMDggMS4wMzUgMC4zNiAxLjA5NSA7Ci0gICAgICAgIFJFQ1QgMC4zIDEuMDM1IDAuMzYgMS40MjUgOwotICAgICAgICBSRUNUIDAuNzEgMS4xMjUgMC43NyAxLjQyNSA7Ci0gICAgICAgIFJFQ1QgMS4xMiAxLjEyNSAxLjE4IDEuNDI1IDsKLSAgICAgICAgUkVDVCAxLjUzIDEuMTI1IDEuNTkgMS40MjUgOwotICAgICAgICBSRUNUIDAuMDYgMC40MSAxLjk1IDAuNDcgOwotICAgICAgICBSRUNUIDEuOTQgMS4xMjUgMiAxLjQyNSA7Ci0gICAgICAgIFJFQ1QgMC4zIDEuMTI1IDIuNDEgMS4xODUgOwotICAgICAgICBSRUNUIDIuMzUgMS4xMjUgMi40MSAxLjQyNSA7Ci0gICAgRU5ECi0gIEVORCBZCi0gIFBJTiBCCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjQzNSAwLjYyNSAwLjU2NSAwLjcxNSA7Ci0gICAgICAgIFJFQ1QgMC40IDAuNjU1IDAuNzIgMC43MTUgOwotICAgICAgICBSRUNUIDAuNjYgMC42NTUgMC43MiAwLjg2NSA7Ci0gICAgICAgIFJFQ1QgMC42NiAwLjgwNSAxLjI4NSAwLjg2NSA7Ci0gICAgICAgIFJFQ1QgMS4yMjUgMC43NDUgMS42NjUgMC44MDUgOwotICAgICAgICBSRUNUIDEuNjA1IDAuODA1IDIuMjY1IDAuODY1IDsKLSAgICBFTkQKLSAgRU5EIEIKLSAgUElOIEFOCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAyLjM2NSAwLjYyNSAyLjU2NSAwLjcwNSA7Ci0gICAgICAgIFJFQ1QgMi40ODUgMC42MjUgMi41NjUgMC43OTUgOwotICAgICAgICBSRUNUIDIuNDg1IDAuNzE1IDIuNzc1IDAuNzk1IDsKLSAgICBFTkQKLSAgRU5EIEFOCi0gIFBJTiBDCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjgzNSAwLjYyNSAwLjk2NSAwLjcwNSA7Ci0gICAgICAgIFJFQ1QgMC44MiAwLjY0NSAxLjEyNSAwLjcwNSA7Ci0gICAgICAgIFJFQ1QgMS4wNjUgMC41ODUgMS44MjUgMC42NDUgOwotICAgICAgICBSRUNUIDEuNzY1IDAuNjQ1IDEuODg1IDAuNzA1IDsKLSAgICBFTkQKLSAgRU5EIEMKLSAgUElOIFZERAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBQT1dFUiA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZERCBWREQhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDEuNjUgMyAxLjcxIDsKLSAgICBFTkQKLSAgRU5EIFZERAotICBQSU4gVlNTCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIEdST1VORCA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZTUyBWU1MhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDAuMDAgMyAwLjA2IDsKLSAgICBFTkQKLSAgRU5EIFZTUwotRU5EIE5BTkQzQlg0Ci0KLU1BQ1JPIEFORDNYNAotICBDTEFTUyBDT1JFIDsKLSAgT1JJR0lOIDAgMCA7Ci0gIEZPUkVJR04gQU5EM1g0IDAgMCA7Ci0gIFNJWkUgMS44IEJZIDEuNzEgOwotICBTWU1NRVRSWSBYIFkgOwotICBTSVRFIENvcmVTaXRlIDsKLSAgUElOIFkKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIE9VVFBVVCA7Ci0gICAgQU5URU5OQURJRkZBUkVBIDEuNzI4NSAgTEFZRVIgTWV0YWwxIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuODk1IDAuNTcgMS4wMTUgMC42MyA7Ci0gICAgICAgIFJFQ1QgMS4wNCAxLjA4IDEuMSAxLjQ3IDsKLSAgICAgICAgUkVDVCAxLjMzNSAwLjU3IDEuNTI1IDAuNjUgOwotICAgICAgICBSRUNUIDAuOTY1IDAuNTkgMS41MjUgMC42NSA7Ci0gICAgICAgIFJFQ1QgMS40NSAxLjA4IDEuNTEgMS40NyA7Ci0gICAgICAgIFJFQ1QgMS40NjUgMC41NyAxLjUyNSAxLjE0IDsKLSAgICAgICAgUkVDVCAxLjA0IDEuMDggMS41MjUgMS4xNCA7Ci0gICAgICAgIFJFQ1QgMS40NjUgMC43OSAxLjc0IDAuOTIgOwotICAgIEVORAotICBFTkQgWQotICBQSU4gQQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC43IDAuOTEgMC43OCAxLjA2IDsKLSAgICAgICAgUkVDVCAwLjcgMC45OCAwLjk0IDEuMDYgOwotICAgICAgICBSRUNUIDAuODYgMC45OCAwLjk0IDEuMjUgOwotICAgIEVORAotICBFTkQgQQotICBQSU4gQgotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4yNiAwLjYgMC4zNCAwLjczIDsKLSAgICAgICAgUkVDVCAwLjI2IDAuNjUgMC40NCAwLjczIDsKLSAgICAgICAgUkVDVCAwLjM2IDAuNjUgMC40NCAxIDsKLSAgICBFTkQKLSAgRU5EIEIKLSAgUElOIEMKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDYgMC41OSAwLjE0IDEuMDkgOwotICAgIEVORAotICBFTkQgQwotICBQSU4gVkRECi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIFBPV0VSIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVkREIFZERCEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMS42NSAxLjggMS43MSA7Ci0gICAgRU5ECi0gIEVORCBWREQKLSAgUElOIFZTUwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBHUk9VTkQgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWU1MgVlNTISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAwLjAwIDEuOCAwLjA2IDsKLSAgICBFTkQKLSAgRU5EIFZTUwotRU5EIEFORDNYNAotCi1NQUNSTyBERkZSSFFYMQotICBDTEFTUyBDT1JFIDsKLSAgT1JJR0lOIDAgMCA7Ci0gIEZPUkVJR04gREZGUkhRWDEgMCAwIDsKLSAgU0laRSA0LjggQlkgMS43MSA7Ci0gIFNZTU1FVFJZIFggWSA7Ci0gIFNJVEUgQ29yZVNpdGUgOwotICBQSU4gUQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gT1VUUFVUIDsKLSAgICBBTlRFTk5BRElGRkFSRUEgMS43Mjg1ICBMQVlFUiBNZXRhbDEgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wNiAwLjQzNSAwLjE0IDAuOTk1IDsKLSAgICAgICAgUkVDVCAwLjA2IDAuOTE1IDAuMjI1IDAuOTk1IDsKLSAgICAgICAgUkVDVCAwLjA5IDAuMzg1IDAuMTcgMC41MDUgOwotICAgICAgICBSRUNUIDAuMTQ1IDAuOTE1IDAuMjI1IDEuMzA1IDsKLSAgICBFTkQKLSAgRU5EIFEKLSAgUElOIFJOCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAxLjYzNSAwLjgxNSAxLjc2NSAxLjAxIDsKLSAgICAgICAgUkVDVCAxLjM4IDAuOTIgMS43NjUgMS4wMSA7Ci0gICAgRU5ECi0gIEVORCBSTgotICBQSU4gQ0sKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuNDg1IDAuNzQ1IDAuNTY1IDEuMDg1IDsKLSAgICAgICAgUkVDVCAwLjQgMS4wMDUgMC41NjUgMS4wODUgOwotICAgICAgICBSRUNUIDAuNDg1IDAuNzQ1IDAuNjQgMC44MjUgOwotICAgIEVORAotICBFTkQgQ0sKLSAgUElOIEQKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDQuMjM1IDAuNjI1IDQuNDEgMC44OSA7Ci0gICAgICAgIFJFQ1QgNC4wOTUgMC43NTUgNC40MSAwLjg5IDsKLSAgICBFTkQKLSAgRU5EIEQKLSAgUElOIFZERAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBQT1dFUiA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZERCBWREQhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDEuNjUgNC44IDEuNzEgOwotICAgIEVORAotICBFTkQgVkRECi0gIFBJTiBWU1MKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgR1JPVU5EIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVlNTIFZTUyEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMC4wMCA0LjggMC4wNiA7Ci0gICAgRU5ECi0gIEVORCBWU1MKLUVORCBERkZSSFFYMQotCi1NQUNSTyBBT0kyMTFYTAotICBDTEFTUyBDT1JFIDsKLSAgT1JJR0lOIDAgMCA7Ci0gIEZPUkVJR04gQU9JMjExWEwgMCAwIDsKLSAgU0laRSAxLjIgQlkgMS43MSA7Ci0gIFNZTU1FVFJZIFggWSA7Ci0gIFNJVEUgQ29yZVNpdGUgOwotICBQSU4gWQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gT1VUUFVUIDsKLSAgICBBTlRFTk5BRElGRkFSRUEgMS43Mjg1ICBMQVlFUiBNZXRhbDEgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC41OTUgMC4yODUgMC42NTUgMC41MSA7Ci0gICAgICAgIFJFQ1QgMS4wMDUgMC4yODUgMS4xNCAwLjUxIDsKLSAgICAgICAgUkVDVCAwLjU5NSAwLjQ1IDEuMTQgMC41MSA7Ci0gICAgICAgIFJFQ1QgMS4wOCAwLjI4NSAxLjE0IDEuMjk1IDsKLSAgICAgICAgUkVDVCAxLjA2IDAuOTggMS4xNCAxLjI5NSA7Ci0gICAgRU5ECi0gIEVORCBZCi0gIFBJTiBBMAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wNiAwLjUxIDAuMTYgMC43MyA7Ci0gICAgICAgIFJFQ1QgMC4wOCAwLjUxIDAuMTYgMC45OSA7Ci0gICAgRU5ECi0gIEVORCBBMAotICBQSU4gQTEKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMjYgMC42MSAwLjM0IDAuOTkgOwotICAgICAgICBSRUNUIDAuMjYgMC42MSAwLjQ2IDAuNzA1IDsKLSAgICBFTkQKLSAgRU5EIEExCi0gIFBJTiBCMAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC42NiAwLjYxIDAuNzQgMC45OSA7Ci0gICAgICAgIFJFQ1QgMC41NiAwLjYxIDAuNzYgMC42OSA7Ci0gICAgRU5ECi0gIEVORCBCMAotICBQSU4gQzAKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuODYgMC42MSAwLjk0IDEuMTEgOwotICAgIEVORAotICBFTkQgQzAKLSAgUElOIFZERAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBQT1dFUiA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZERCBWREQhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDEuNjUgMS4yIDEuNzEgOwotICAgIEVORAotICBFTkQgVkRECi0gIFBJTiBWU1MKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgR1JPVU5EIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVlNTIFZTUyEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMC4wMCAxLjIgMC4wNiA7Ci0gICAgRU5ECi0gIEVORCBWU1MKLUVORCBBT0kyMTFYTAotCi1NQUNSTyBERkZSWDIKLSAgQ0xBU1MgQ09SRSA7Ci0gIE9SSUdJTiAwIDAgOwotICBGT1JFSUdOIERGRlJYMiAwIDAgOwotICBTSVpFIDUgQlkgMS43MSA7Ci0gIFNZTU1FVFJZIFggWSA7Ci0gIFNJVEUgQ29yZVNpdGUgOwotICBQSU4gUU4KLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIE9VVFBVVCA7Ci0gICAgQU5URU5OQURJRkZBUkVBIDEuNzI4NSAgTEFZRVIgTWV0YWwxIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDQuMzEgMC41NjUgNC4zNyAwLjk3NSA7Ci0gICAgICAgIFJFQ1QgNC4zNiAwLjkxNSA0LjQyIDEuMzA1IDsKLSAgICAgICAgUkVDVCA0LjMxIDAuNTY1IDQuNDUgMC42MjUgOwotICAgICAgICBSRUNUIDQuMzYgMC45MTUgNC41NCAxLjExIDsKLSAgICBFTkQKLSAgRU5EIFFOCi0gIFBJTiBRCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBPVVRQVVQgOwotICAgIEFOVEVOTkFESUZGQVJFQSAxLjcyODUgIExBWUVSIE1ldGFsMSA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAzLjg2IDAuNTM1IDMuOTIgMS4zMDUgOwotICAgICAgICBSRUNUIDMuODYgMC45MjUgMy45NCAxLjExIDsKLSAgICBFTkQKLSAgRU5EIFEKLSAgUElOIENLCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAzLjQ1NSAwLjg5IDMuNTM1IDEuMDg1IDsKLSAgICAgICAgUkVDVCAzLjM3NSAxLjAwNSAzLjc2IDEuMDg1IDsKLSAgICBFTkQKLSAgRU5EIENLCi0gIFBJTiBSTgotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMS4yMzUgMC44MTUgMS4zNjUgMC44OTUgOwotICAgICAgICBSRUNUIDEuMjg1IDAuODU1IDEuNjk1IDAuOTM1IDsKLSAgICBFTkQKLSAgRU5EIFJOCi0gIFBJTiBECi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjM2NSAwLjgxNSAwLjQ0NSAxLjE4NSA7Ci0gICAgICAgIFJFQ1QgMC4yMzUgMS4wMDUgMC40NDUgMS4xODUgOwotICAgIEVORAotICBFTkQgRAotICBQSU4gVkRECi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIFBPV0VSIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVkREIFZERCEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMS42NSA1IDEuNzEgOwotICAgIEVORAotICBFTkQgVkRECi0gIFBJTiBWU1MKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgR1JPVU5EIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVlNTIFZTUyEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMC4wMCA1IDAuMDYgOwotICAgIEVORAotICBFTkQgVlNTCi1FTkQgREZGUlgyCi0KLU1BQ1JPIEFORDRYNgotICBDTEFTUyBDT1JFIDsKLSAgT1JJR0lOIDAgMCA7Ci0gIEZPUkVJR04gQU5ENFg2IDAgMCA7Ci0gIFNJWkUgMy40IEJZIDEuNzEgOwotICBTWU1NRVRSWSBYIFkgOwotICBTSVRFIENvcmVTaXRlIDsKLSAgUElOIFkKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIE9VVFBVVCA7Ci0gICAgQU5URU5OQURJRkZBUkVBIDEuNzI4NSAgTEFZRVIgTWV0YWwxIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDIuMjQ1IDAuMjc1IDIuMzA1IDAuNTg1IDsKLSAgICAgICAgUkVDVCAyLjQ1IDAuOSAyLjUxIDEuMzcgOwotICAgICAgICBSRUNUIDIuNjU1IDAuMjc1IDIuNzE1IDAuNTg1IDsKLSAgICAgICAgUkVDVCAyLjg2IDAuNTI1IDIuOTIgMS4zNyA7Ci0gICAgICAgIFJFQ1QgMi44NiAwLjc5IDIuOTQgMS4zNyA7Ci0gICAgICAgIFJFQ1QgMy4wNjUgMC4yNzUgMy4xMjUgMC41ODUgOwotICAgICAgICBSRUNUIDIuMjQ1IDAuNTI1IDMuMTI1IDAuNTg1IDsKLSAgICAgICAgUkVDVCAyLjQ1IDAuOSAzLjMzIDAuOTYgOwotICAgICAgICBSRUNUIDMuMjcgMC45IDMuMzMgMS4zNyA7Ci0gICAgRU5ECi0gIEVORCBZCi0gIFBJTiBBCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjM5NSAwLjgyIDAuNDU1IDEuMTg1IDsKLSAgICAgICAgUkVDVCAxLjg2IDAuODIgMS45MiAxLjE4NSA7Ci0gICAgICAgIFJFQ1QgMC4zOTUgMS4xMjUgMS45MiAxLjE4NSA7Ci0gICAgICAgIFJFQ1QgMS44NiAwLjgyIDEuOTQgMS4xMSA7Ci0gICAgRU5ECi0gIEVORCBBCi0gIFBJTiBCCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjU1NSAwLjgzNSAwLjc0IDAuODk1IDsKLSAgICAgICAgUkVDVCAwLjY2IDAuNzkgMC43NCAxLjAyNSA7Ci0gICAgICAgIFJFQ1QgMS43IDAuODQ1IDEuNzYgMS4wMjUgOwotICAgICAgICBSRUNUIDAuNjYgMC45NjUgMS43NiAxLjAyNSA7Ci0gICAgRU5ECi0gIEVORCBCCi0gIFBJTiBDCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAxLjQ1NSAwLjYyNSAxLjUxNSAwLjg2NSA7Ci0gICAgICAgIFJFQ1QgMC44NCAwLjgwNSAxLjUxNSAwLjg2NSA7Ci0gICAgICAgIFJFQ1QgMS40MzUgMC42MjUgMS41NjUgMC43MDUgOwotICAgIEVORAotICBFTkQgQwotICBQSU4gRAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC44NiAwLjQxIDAuOTQgMC42ODUgOwotICAgICAgICBSRUNUIDAuODYgMC42MDUgMS4xNjUgMC42ODUgOwotICAgIEVORAotICBFTkQgRAotICBQSU4gVkRECi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIFBPV0VSIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVkREIFZERCEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMS42NSAzLjQgMS43MSA7Ci0gICAgRU5ECi0gIEVORCBWREQKLSAgUElOIFZTUwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBHUk9VTkQgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWU1MgVlNTISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAwLjAwIDMuNCAwLjA2IDsKLSAgICBFTkQKLSAgRU5EIFZTUwotRU5EIEFORDRYNgotCi1NQUNSTyBPUjJYNAotICBDTEFTUyBDT1JFIDsKLSAgT1JJR0lOIDAgMCA7Ci0gIEZPUkVJR04gT1IyWDQgMCAwIDsKLSAgU0laRSAxLjggQlkgMS43MSA7Ci0gIFNZTU1FVFJZIFggWSA7Ci0gIFNJVEUgQ29yZVNpdGUgOwotICBQSU4gWQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gT1VUUFVUIDsKLSAgICBBTlRFTk5BRElGRkFSRUEgMS43Mjg1ICBMQVlFUiBNZXRhbDEgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC45NzUgMC44NTUgMS4wMzUgMS40MDUgOwotICAgICAgICBSRUNUIDAuOTQ1IDAuNCAxLjA2NSAwLjQ2IDsKLSAgICAgICAgUkVDVCAxLjAxNSAwLjQyIDEuNTIgMC40OCA7Ci0gICAgICAgIFJFQ1QgMC45NzUgMC44NTUgMS41MiAwLjkxNSA7Ci0gICAgICAgIFJFQ1QgMS40IDAuMzYgMS40NiAwLjQ4IDsKLSAgICAgICAgUkVDVCAxLjQgMS4wMTUgMS40NiAxLjQwNSA7Ci0gICAgICAgIFJFQ1QgMS40NiAwLjQyIDEuNTIgMS4wNzUgOwotICAgICAgICBSRUNUIDEuNDYgMC42IDEuNTQgMC43MyA7Ci0gICAgRU5ECi0gIEVORCBZCi0gIFBJTiBBCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjYwNSAwLjc0IDAuNzQgMC44NiA7Ci0gICAgICAgIFJFQ1QgMC42NiAwLjc0IDAuNzQgMS4xODUgOwotICAgIEVORAotICBFTkQgQQotICBQSU4gQgotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wNiAwLjYgMC4xNCAwLjczIDsKLSAgICAgICAgUkVDVCAwLjA2IDAuNiAwLjM0NSAwLjY4IDsKLSAgICAgICAgUkVDVCAwLjI2NSAwLjYgMC4zNDUgMC44NDUgOwotICAgIEVORAotICBFTkQgQgotICBQSU4gVkRECi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIFBPV0VSIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVkREIFZERCEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMS42NSAxLjggMS43MSA7Ci0gICAgRU5ECi0gIEVORCBWREQKLSAgUElOIFZTUwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBHUk9VTkQgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWU1MgVlNTISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAwLjAwIDEuOCAwLjA2IDsKLSAgICBFTkQKLSAgRU5EIFZTUwotRU5EIE9SMlg0Ci0KLU1BQ1JPIE5BTkQ0WDEKLSAgQ0xBU1MgQ09SRSA7Ci0gIE9SSUdJTiAwIDAgOwotICBGT1JFSUdOIE5BTkQ0WDEgMCAwIDsKLSAgU0laRSAxLjIgQlkgMS43MSA7Ci0gIFNZTU1FVFJZIFggWSA7Ci0gIFNJVEUgQ29yZVNpdGUgOwotICBQSU4gWQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gT1VUUFVUIDsKLSAgICBBTlRFTk5BRElGRkFSRUEgMS43Mjg1ICBMQVlFUiBNZXRhbDEgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4zNyAxLjAyIDAuNDMgMS4zIDsKLSAgICAgICAgUkVDVCAwLjc5IDEuMDIgMC44NSAxLjMgOwotICAgICAgICBSRUNUIDEuMDQgMC41NCAxLjEgMS4wOCA7Ci0gICAgICAgIFJFQ1QgMS4wNCAwLjc5IDEuMTQgMS4wOCA7Ci0gICAgICAgIFJFQ1QgMC4zNyAxLjAyIDEuMTQgMS4wOCA7Ci0gICAgRU5ECi0gIEVORCBZCi0gIFBJTiBBCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjIzIDAuNjUgMC4zNCAwLjkyIDsKLSAgICAgICAgUkVDVCAwLjAzIDAuODQgMC4zNCAwLjkyIDsKLSAgICBFTkQKLSAgRU5EIEEKLSAgUElOIEIKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuNDYgMC40MSAwLjU0IDAuNTQgOwotICAgICAgICBSRUNUIDAuNDggMC40NiAwLjU2IDAuODkgOwotICAgIEVORAotICBFTkQgQgotICBQSU4gQwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC42NiAwLjIyIDAuNzQgMC44MyA7Ci0gICAgRU5ECi0gIEVORCBDCi0gIFBJTiBECi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjg2IDAuNDEgMC45NCAwLjkxIDsKLSAgICBFTkQKLSAgRU5EIEQKLSAgUElOIFZERAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBQT1dFUiA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZERCBWREQhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDEuNjUgMS4yIDEuNzEgOwotICAgIEVORAotICBFTkQgVkRECi0gIFBJTiBWU1MKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgR1JPVU5EIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVlNTIFZTUyEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMC4wMCAxLjIgMC4wNiA7Ci0gICAgRU5ECi0gIEVORCBWU1MKLUVORCBOQU5ENFgxCi0KLU1BQ1JPIEFPSTJCQjJYMQotICBDTEFTUyBDT1JFIDsKLSAgT1JJR0lOIDAgMCA7Ci0gIEZPUkVJR04gQU9JMkJCMlgxIDAgMCA7Ci0gIFNJWkUgMiBCWSAxLjcxIDsKLSAgU1lNTUVUUlkgWCBZIDsKLSAgU0lURSBDb3JlU2l0ZSA7Ci0gIFBJTiBCMAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMS44IDAuNiAxLjg4IDAuOTIgOwotICAgICAgICBSRUNUIDEuODYgMC40OCAxLjk0IDAuNzMgOwotICAgIEVORAotICBFTkQgQjAKLSAgUElOIEIxCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAxLjQ2IDAuNDUgMS41NCAwLjk1IDsKLSAgICBFTkQKLSAgRU5EIEIxCi0gIFBJTiBBME4KLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMjYgMC45NCAwLjM0IDEuMTEgOwotICAgICAgICBSRUNUIDAuNDcgMC44MyAwLjU2IDEuMDIgOwotICAgICAgICBSRUNUIDAuMjYgMC45NCAwLjU2IDEuMDIgOwotICAgIEVORAotICBFTkQgQTBOCi0gIFBJTiBBMU4KLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMjYgMC42NSAwLjM0IDAuODQgOwotICAgICAgICBSRUNUIDAuNDYgMC41NCAwLjU0IDAuNzMgOwotICAgICAgICBSRUNUIDAuMjYgMC42NSAwLjU0IDAuNzMgOwotICAgIEVORAotICBFTkQgQTFOCi0gIFBJTiBZCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBPVVRQVVQgOwotICAgIEFOVEVOTkFESUZGQVJFQSAxLjcyODUgIExBWUVSIE1ldGFsMSA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAxLjQ2IDAuMjIgMS41NCAwLjM1IDsKLSAgICAgICAgUkVDVCAxLjQwNSAwLjI0NSAxLjU0IDAuMzUgOwotICAgICAgICBSRUNUIDEuNDA1IDAuMjkgMS43IDAuMzUgOwotICAgICAgICBSRUNUIDEuNjQgMC4yOSAxLjcgMS4wNiA7Ci0gICAgRU5ECi0gIEVORCBZCi0gIFBJTiBWREQKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgUE9XRVIgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWREQgVkREISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAxLjY1IDIgMS43MSA7Ci0gICAgRU5ECi0gIEVORCBWREQKLSAgUElOIFZTUwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBHUk9VTkQgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWU1MgVlNTISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAwLjAwIDIgMC4wNiA7Ci0gICAgRU5ECi0gIEVORCBWU1MKLUVORCBBT0kyQkIyWDEKLQotTUFDUk8gTkFORDJCWEwKLSAgQ0xBU1MgQ09SRSA7Ci0gIE9SSUdJTiAwIDAgOwotICBGT1JFSUdOIE5BTkQyQlhMIDAgMCA7Ci0gIFNJWkUgMC44NyBCWSAxLjcxIDsKLSAgU1lNTUVUUlkgWCBZICA7Ci0gIFNJVEUgQ29yZVNpdGUgOwotICBQSU4gWQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gT1VUUFVUIDsKLSAgICBBTlRFTk5BRElGRkFSRUEgMS43Mjg1ICBMQVlFUiBNZXRhbDEgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wNCAwLjcyIDAuMTM1IDAuOCA7Ci0gICAgRU5ECi0gIEVORCBZCi0gIFBJTiBBTgotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC43MiAwLjkgMC44IDEuMDk1IDsKLSAgICBFTkQKLSAgRU5EIEFOCi0gIFBJTiBCCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjIwNSAwLjg2NSAwLjMxIDAuOTQ1IDsKLSAgICBFTkQKLSAgRU5EIEIKLSAgUElOIFZERAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBQT1dFUiA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZERCBWREQhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDEuNjUgMC44NyAxLjcxIDsKLSAgICBFTkQKLSAgRU5EIFZERAotICBQSU4gVlNTCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIEdST1VORCA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZTUyBWU1MhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDAuMDAgMC44NyAwLjA2IDsKLSAgICBFTkQKLSAgRU5EIFZTUwotRU5EIE5BTkQyQlhMCi0KLU1BQ1JPIERGRlNYNAotICBDTEFTUyBDT1JFIDsKLSAgT1JJR0lOIDAgMCA7Ci0gIEZPUkVJR04gREZGU1g0IDAgMCA7Ci0gIFNJWkUgNi40IEJZIDEuNzEgOwotICBTWU1NRVRSWSBYIFkgOwotICBTSVRFIENvcmVTaXRlIDsKLSAgUElOIFFOCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBPVVRQVVQgOwotICAgIEFOVEVOTkFESUZGQVJFQSAxLjcyODUgIExBWUVSIE1ldGFsMSA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCA1LjI2IDAuNTQgNS4zMiAxLjMzIDsKLSAgICAgICAgUkVDVCA1LjI2IDAuNiA1LjM0IDEgOwotICAgICAgICBSRUNUIDUuMjYgMC45NCA1LjczIDEgOwotICAgICAgICBSRUNUIDUuNjcgMC45NCA1LjczIDEuMzMgOwotICAgICAgICBSRUNUIDUuNzMgMC41NCA1Ljc5IDAuNjYgOwotICAgICAgICBSRUNUIDUuMjYgMC42IDUuNzkgMC42NiA7Ci0gICAgRU5ECi0gIEVORCBRTgotICBQSU4gUQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gT1VUUFVUIDsKLSAgICBBTlRFTk5BRElGRkFSRUEgMS43Mjg1ICBMQVlFUiBNZXRhbDEgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgNC4zMiAwLjUwNSA0LjM4IDAuNjI1IDsKLSAgICAgICAgUkVDVCA0LjQ0IDAuOTQgNC41IDEuMzMgOwotICAgICAgICBSRUNUIDQuNDYgMC41NjUgNC41MiAxIDsKLSAgICAgICAgUkVDVCA0LjQ2IDAuNzkgNC41NCAxIDsKLSAgICAgICAgUkVDVCA0LjQ0IDAuOTQgNC45MSAxIDsKLSAgICAgICAgUkVDVCA0Ljc5IDAuNTA1IDQuODUgMC42MjUgOwotICAgICAgICBSRUNUIDQuMzIgMC41NjUgNC44NSAwLjYyNSA7Ci0gICAgICAgIFJFQ1QgNC44NSAwLjk0IDQuOTEgMS4zMyA7Ci0gICAgRU5ECi0gIEVORCBRCi0gIFBJTiBTTgotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMS44MiAwLjM3NSAyIDAuNDM1IDsKLSAgICAgICAgUkVDVCAxLjk0IDAuMzggMi4zMiAwLjQ0IDsKLSAgICAgICAgUkVDVCAyLjI2IDAuMzM1IDMuMTQgMC4zOTUgOwotICAgICAgICBSRUNUIDMuMDggMC4zMzUgMy4xNCAwLjkyIDsKLSAgICAgICAgUkVDVCAzLjA2IDAuNzkgMy4xNCAwLjkyIDsKLSAgICAgICAgUkVDVCAzLjA2IDAuODUgMy41NzUgMC45MSA7Ci0gICAgICAgIFJFQ1QgMy41MTUgMC44NSAzLjU3NSAwLjk3IDsKLSAgICBFTkQKLSAgRU5EIFNOCi0gIFBJTiBECi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjQ2IDAuNzc1IDAuNTQgMC45OTUgOwotICAgICAgICBSRUNUIDAuNTc1IDAuNjEgMC42NTUgMC44OTUgOwotICAgICAgICBSRUNUIDAuNDYgMC43NzUgMC42NTUgMC44OTUgOwotICAgIEVORAotICBFTkQgRAotICBQSU4gQ0sKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMjYgMC42MSAwLjM2IDAuOTYgOwotICAgICAgICBSRUNUIDAuMjggMC42MSAwLjM2IDEuMDkgOwotICAgIEVORAotICBFTkQgQ0sKLSAgUElOIFZERAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBQT1dFUiA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZERCBWREQhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDEuNjUgNi40IDEuNzEgOwotICAgIEVORAotICBFTkQgVkRECi0gIFBJTiBWU1MKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgR1JPVU5EIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVlNTIFZTUyEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMC4wMCA2LjQgMC4wNiA7Ci0gICAgRU5ECi0gIEVORCBWU1MKLUVORCBERkZTWDQKLQotTUFDUk8gT1IzWDYKLSAgQ0xBU1MgQ09SRSA7Ci0gIE9SSUdJTiAwIDAgOwotICBGT1JFSUdOIE9SM1g2IDAgMCA7Ci0gIFNJWkUgMi44IEJZIDEuNzEgOwotICBTWU1NRVRSWSBYIFkgOwotICBTSVRFIENvcmVTaXRlIDsKLSAgUElOIFkKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIE9VVFBVVCA7Ci0gICAgQU5URU5OQURJRkZBUkVBIDEuNzI4NSAgTEFZRVIgTWV0YWwxIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDEuNjY1IDAuOTE1IDEuNzI1IDEuMzcgOwotICAgICAgICBSRUNUIDEuNzY1IDAuMzUgMS44MjUgMC42NTUgOwotICAgICAgICBSRUNUIDIuMDc1IDAuOTE1IDIuMTM1IDEuMzcgOwotICAgICAgICBSRUNUIDEuNzY1IDAuNTk1IDIuMzQgMC42NTUgOwotICAgICAgICBSRUNUIDIuMjM1IDAuMzUgMi4yOTUgMC42NTUgOwotICAgICAgICBSRUNUIDIuMjYgMC41OTUgMi4zMiAwLjk3NSA7Ci0gICAgICAgIFJFQ1QgMi4yNiAwLjU5NSAyLjM0IDAuNzMgOwotICAgICAgICBSRUNUIDEuNjY1IDAuOTE1IDIuNTQ1IDAuOTc1IDsKLSAgICAgICAgUkVDVCAyLjQ4NSAwLjkxNSAyLjU0NSAxLjM3IDsKLSAgICAgICAgUkVDVCAyLjY0NSAwLjM1IDIuNzA1IDAuNjYgOwotICAgICAgICBSRUNUIDIuMjYgMC42IDIuNzA1IDAuNjYgOwotICAgIEVORAotICBFTkQgWQotICBQSU4gQwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC42NiAwLjg1IDAuNzQgMS4xMyA7Ci0gICAgICAgIFJFQ1QgMC42NiAwLjg1IDAuOTYgMC45MyA7Ci0gICAgRU5ECi0gIEVORCBDCi0gIFBJTiBCCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjU2IDAuNjkgMS4yMjUgMC43NSA7Ci0gICAgICAgIFJFQ1QgMS4wNiAwLjY5IDEuMTQgMC45MiA7Ci0gICAgICAgIFJFQ1QgMS4wNiAwLjY5IDEuMjI1IDAuODEgOwotICAgIEVORAotICBFTkQgQgotICBQSU4gQQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4yNiAwLjUzIDAuMzQgMC43MyA7Ci0gICAgICAgIFJFQ1QgMC4yNiAwLjUzIDEuMzkgMC41OSA7Ci0gICAgICAgIFJFQ1QgMS4zMyAwLjUzIDEuMzkgMC43NCA7Ci0gICAgRU5ECi0gIEVORCBBCi0gIFBJTiBWREQKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgUE9XRVIgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWREQgVkREISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAxLjY1IDIuOCAxLjcxIDsKLSAgICBFTkQKLSAgRU5EIFZERAotICBQSU4gVlNTCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIEdST1VORCA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZTUyBWU1MhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDAuMDAgMi44IDAuMDYgOwotICAgIEVORAotICBFTkQgVlNTCi1FTkQgT1IzWDYKLQotTUFDUk8gQU5EM1gyCi0gIENMQVNTIENPUkUgOwotICBPUklHSU4gMCAwIDsKLSAgRk9SRUlHTiBBTkQzWDIgMCAwIDsKLSAgU0laRSAxLjYgQlkgMS43MSA7Ci0gIFNZTU1FVFJZIFggWSA7Ci0gIFNJVEUgQ29yZVNpdGUgOwotICBQSU4gWQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gT1VUUFVUIDsKLSAgICBBTlRFTk5BRElGRkFSRUEgMS43Mjg1ICBMQVlFUiBNZXRhbDEgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMS4xNDUgMC40OCAxLjIwNSAwLjY2IDsKLSAgICAgICAgUkVDVCAxLjE0NSAwLjYgMS4zNCAwLjY2IDsKLSAgICAgICAgUkVDVCAxLjI2IDAuNiAxLjMyIDEuNDIgOwotICAgICAgICBSRUNUIDEuMjYgMC42IDEuMzQgMC43MyA7Ci0gICAgRU5ECi0gIEVORCBZCi0gIFBJTiBBCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjgzNSAxLjAwNSAwLjkxNSAxLjQ1NSA7Ci0gICAgICAgIFJFQ1QgMC44MzUgMS4wMDUgMC45NjUgMS4wODUgOwotICAgIEVORAotICBFTkQgQQotICBQSU4gQgotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4yNiAwLjU2IDAuMzQgMC43MyA7Ci0gICAgICAgIFJFQ1QgMC4yNiAwLjU2IDAuNTc1IDAuNjQgOwotICAgICAgICBSRUNUIDAuNDk1IDAuNTYgMC41NzUgMC43MzUgOwotICAgIEVORAotICBFTkQgQgotICBQSU4gQwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wOCAwLjU2IDAuMTYgMS4wNCA7Ci0gICAgICAgIFJFQ1QgMC4wNiAwLjc5IDAuMTYgMS4wNCA7Ci0gICAgRU5ECi0gIEVORCBDCi0gIFBJTiBWREQKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgUE9XRVIgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWREQgVkREISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAxLjY1IDEuNiAxLjcxIDsKLSAgICBFTkQKLSAgRU5EIFZERAotICBQSU4gVlNTCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIEdST1VORCA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZTUyBWU1MhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDAuMDAgMS42IDAuMDYgOwotICAgIEVORAotICBFTkQgVlNTCi1FTkQgQU5EM1gyCi0KLU1BQ1JPIEFEREhYTAotICBDTEFTUyBDT1JFIDsKLSAgT1JJR0lOIDAgMCA7Ci0gIEZPUkVJR04gQURESFhMIDAgMCA7Ci0gIFNJWkUgMi44IEJZIDEuNzEgOwotICBTWU1NRVRSWSBYIFkgOwotICBTSVRFIENvcmVTaXRlIDsKLSAgUElOIFMKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIE9VVFBVVCA7Ci0gICAgQU5URU5OQURJRkZBUkVBIDEuNzI4NSAgTEFZRVIgTWV0YWwxIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDIuNjYgMC40NjUgMi43MiAwLjU4NSA7Ci0gICAgICAgIFJFQ1QgMi42NiAwLjk4IDIuNzQgMS4xMzUgOwotICAgICAgICBSRUNUIDIuNzEgMC41MjUgMi43NyAxLjA0IDsKLSAgICBFTkQKLSAgRU5EIFMKLSAgUElOIENPCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBPVVRQVVQgOwotICAgIEFOVEVOTkFESUZGQVJFQSAxLjcyODUgIExBWUVSIE1ldGFsMSA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjI2IDAuNDM1IDAuMzQgMS4yMyA7Ci0gICAgRU5ECi0gIEVORCBDTwotICBQSU4gQgotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC42NiAwLjc5IDAuNzQgMS4xMzUgOwotICAgICAgICBSRUNUIDAuNzg1IDAuNzYgMC44NjUgMC45MSA7Ci0gICAgICAgIFJFQ1QgMC42NiAwLjc5IDAuODY1IDAuOTEgOwotICAgIEVORAotICBFTkQgQgotICBQSU4gQQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC40NiAwLjYgMC41NiAwLjczIDsKLSAgICAgICAgUkVDVCAwLjY2IDAuMzA1IDAuNzIgMC42NiA7Ci0gICAgICAgIFJFQ1QgMC40NiAwLjYgMC43MiAwLjY2IDsKLSAgICAgICAgUkVDVCAwLjY2IDAuMzA1IDEuMzQ1IDAuMzY1IDsKLSAgICAgICAgUkVDVCAxLjI4NSAwLjMwNSAxLjM0NSAwLjcyIDsKLSAgICAgICAgUkVDVCAxLjYwNSAwLjMwNSAxLjY2NSAwLjcyIDsKLSAgICAgICAgUkVDVCAxLjI4NSAwLjY2IDEuNjY1IDAuNzIgOwotICAgICAgICBSRUNUIDEuNjA1IDAuMzA1IDEuNzI1IDAuMzY1IDsKLSAgICBFTkQKLSAgRU5EIEEKLSAgUElOIFZERAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBQT1dFUiA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZERCBWREQhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDEuNjUgMi44IDEuNzEgOwotICAgIEVORAotICBFTkQgVkRECi0gIFBJTiBWU1MKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgR1JPVU5EIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVlNTIFZTUyEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMC4wMCAyLjggMC4wNiA7Ci0gICAgRU5ECi0gIEVORCBWU1MKLUVORCBBRERIWEwKLQotTUFDUk8gREZGUkhRWDQKLSAgQ0xBU1MgQ09SRSA7Ci0gIE9SSUdJTiAwIDAgOwotICBGT1JFSUdOIERGRlJIUVg0IDAgMCA7Ci0gIFNJWkUgNS42IEJZIDEuNzEgOwotICBTWU1NRVRSWSBYIFkgOwotICBTSVRFIENvcmVTaXRlIDsKLSAgUElOIFJOCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAxLjQ2IDAuNDEgMS41NCAwLjU0IDsKLSAgICAgICAgUkVDVCAxLjQ4IDAuMzA1IDEuNTQgMC43MjUgOwotICAgICAgICBSRUNUIDEuNDY1IDAuNDEgMS41NCAwLjcyNSA7Ci0gICAgICAgIFJFQ1QgMS40OCAwLjMwNSAyIDAuMzY1IDsKLSAgICAgICAgUkVDVCAxLjk0IDAuMzA1IDIgMC41NTUgOwotICAgICAgICBSRUNUIDIuMDM1IDAuNDk1IDIuMDk1IDAuNzE1IDsKLSAgICAgICAgUkVDVCAyLjM1NSAwLjMwNSAyLjQxNSAwLjU1NSA7Ci0gICAgICAgIFJFQ1QgMS45NCAwLjQ5NSAyLjQxNSAwLjU1NSA7Ci0gICAgICAgIFJFQ1QgMi4zNTUgMC4zMDUgMy4zNiAwLjM2NSA7Ci0gICAgICAgIFJFQ1QgMy4zIDAuMzA1IDMuMzYgMC44NSA7Ci0gICAgICAgIFJFQ1QgMy42OCAwLjczIDMuNzQgMC44NSA7Ci0gICAgICAgIFJFQ1QgMy4zIDAuNzkgMy43NCAwLjg1IDsKLSAgICBFTkQKLSAgRU5EIFJOCi0gIFBJTiBDSwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4xOSAwLjY4NSAwLjU2IDAuNzY1IDsKLSAgICAgICAgUkVDVCAwLjIzNSAwLjY4NSAwLjU2IDAuODk1IDsKLSAgICBFTkQKLSAgRU5EIENLCi0gIFBJTiBECi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCA1LjA2IDAuNTcgNS4xNCAwLjg4NSA7Ci0gICAgICAgIFJFQ1QgNS4wNiAwLjYyNSA1LjMyNSAwLjg4NSA7Ci0gICAgRU5ECi0gIEVORCBECi0gIFBJTiBRCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBPVVRQVVQgOwotICAgIEFOVEVOTkFESUZGQVJFQSAxLjcyODUgIExBWUVSIE1ldGFsMSA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjY2IDAuNDkgMC43MiAxLjA1NSA7Ci0gICAgICAgIFJFQ1QgMC42IDAuOTk1IDAuNzIgMS4wNTUgOwotICAgICAgICBSRUNUIDAuNjYgMC43OSAwLjc0IDEuMDA1IDsKLSAgICAgICAgUkVDVCAwLjY2IDAuOTQ1IDEuMTkgMS4wMDUgOwotICAgICAgICBSRUNUIDEuMDk1IDAuNDkgMS4xOSAxLjAwNSA7Ci0gICAgRU5ECi0gIEVORCBRCi0gIFBJTiBWREQKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgUE9XRVIgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWREQgVkREISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAxLjY1IDUuNiAxLjcxIDsKLSAgICBFTkQKLSAgRU5EIFZERAotICBQSU4gVlNTCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIEdST1VORCA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZTUyBWU1MhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDAuMDAgNS42IDAuMDYgOwotICAgIEVORAotICBFTkQgVlNTCi1FTkQgREZGUkhRWDQKLQotTUFDUk8gTkFORDNYTAotICBDTEFTUyBDT1JFIDsKLSAgT1JJR0lOIDAgMCA7Ci0gIEZPUkVJR04gTkFORDNYTCAwIDAgOwotICBTSVpFIDEgQlkgMS43MSA7Ci0gIFNZTU1FVFJZIFggWSA7Ci0gIFNJVEUgQ29yZVNpdGUgOwotICBQSU4gWQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gT1VUUFVUIDsKLSAgICBBTlRFTk5BRElGRkFSRUEgMS43Mjg1ICBMQVlFUiBNZXRhbDEgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC40MDUgMS4xMDUgMC45NCAxLjE2NSA7Ci0gICAgICAgIFJFQ1QgMC44NyAwLjU0IDAuOTQgMS4yMjUgOwotICAgICAgICBSRUNUIDAuODYgMC45OCAwLjk0IDEuMjI1IDsKLSAgICBFTkQKLSAgRU5EIFkKLSAgUElOIEMKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuNjYgMC4zOTUgMC43NCAwLjg4IDsKLSAgICAgICAgUkVDVCAwLjY2IDAuNzYgMC43NTUgMC44OCA7Ci0gICAgRU5ECi0gIEVORCBDCi0gIFBJTiBBCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAzIDAuNzM1IDAuMTEgMS4wMDUgOwotICAgICAgICBSRUNUIDAuMDMgMC43OSAwLjM0IDEuMDA1IDsKLSAgICBFTkQKLSAgRU5EIEEKLSAgUElOIEIKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuNDYgMC40MSAwLjU0IDAuNTQgOwotICAgICAgICBSRUNUIDAuNDggMC40OCAwLjU2IDAuODkgOwotICAgIEVORAotICBFTkQgQgotICBQSU4gVkRECi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIFBPV0VSIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVkREIFZERCEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMS42NSAxIDEuNzEgOwotICAgIEVORAotICBFTkQgVkRECi0gIFBJTiBWU1MKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgR1JPVU5EIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVlNTIFZTUyEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMC4wMCAxIDAuMDYgOwotICAgIEVORAotICBFTkQgVlNTCi1FTkQgTkFORDNYTAotCi1NQUNSTyBTRURGRlg0Ci0gIENMQVNTIENPUkUgOwotICBPUklHSU4gMCAwIDsKLSAgRk9SRUlHTiBTRURGRlg0IDAgMCA7Ci0gIFNJWkUgOCBCWSAxLjcxIDsKLSAgU1lNTUVUUlkgWCBZIDsKLSAgU0lURSBDb3JlU2l0ZSA7Ci0gIFBJTiBRTgotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gT1VUUFVUIDsKLSAgICBBTlRFTk5BRElGRkFSRUEgMS43Mjg1ICBMQVlFUiBNZXRhbDEgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgNi4yMDUgMC40ODUgNi4yNjUgMC42MjUgOwotICAgICAgICBSRUNUIDYuMjYgMC41NjUgNi4zMiAxLjExIDsKLSAgICAgICAgUkVDVCA2LjI2IDAuOTggNi4zNCAxLjExIDsKLSAgICAgICAgUkVDVCA2LjA0NSAxLjA1IDYuMzQgMS4xMSA7Ci0gICAgICAgIFJFQ1QgNi4yNiAxLjAwNSA2LjU3NSAxLjA2NSA7Ci0gICAgICAgIFJFQ1QgNi41MTUgMS4wMiA2LjYzNSAxLjA4IDsKLSAgICAgICAgUkVDVCA2LjYxNSAwLjQ4NSA2LjY3NSAwLjYyNSA7Ci0gICAgICAgIFJFQ1QgNi4yMDUgMC41NjUgNi42NzUgMC42MjUgOwotICAgIEVORAotICBFTkQgUU4KLSAgUElOIEUKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDcuMDQ1IDAuNzk1IDcuMTA1IDAuOTU1IDsKLSAgICAgICAgUkVDVCA3LjI5IDAuNzI1IDcuMzUgMC44NTUgOwotICAgICAgICBSRUNUIDcuMDQ1IDAuNzk1IDcuMzUgMC44NTUgOwotICAgICAgICBSRUNUIDcuNDYgMC42IDcuNTQgMC43ODUgOwotICAgICAgICBSRUNUIDcuMjkgMC43MjUgNy43NCAwLjc4NSA7Ci0gICAgRU5ECi0gIEVORCBFCi0gIFBJTiBECi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCA3LjQ0IDAuOTggNy41NCAxLjExIDsKLSAgICAgICAgUkVDVCA3LjQ1IDAuODg1IDcuNzk1IDEuMDg1IDsKLSAgICBFTkQKLSAgRU5EIEQKLSAgUElOIFNFCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCA1LjgzIDAuNzI1IDUuOTEgMS4xOTUgOwotICAgICAgICBSRUNUIDUuODMgMC43MjUgNS45NCAwLjkyNSA7Ci0gICAgRU5ECi0gIEVORCBTRQotICBQSU4gU0kKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDQuNjM1IDAuNTEgNC43NjUgMC41OSA7Ci0gICAgICAgIFJFQ1QgNC42ODUgMC41MSA0Ljc2NSAwLjk2IDsKLSAgICBFTkQKLSAgRU5EIFNJCi0gIFBJTiBDSwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgNC40MzUgMC42OSA0LjU3NSAwLjk4IDsKLSAgICBFTkQKLSAgRU5EIENLCi0gIFBJTiBRCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBPVVRQVVQgOwotICAgIEFOVEVOTkFESUZGQVJFQSAxLjcyODUgIExBWUVSIE1ldGFsMSA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjI2IDAuNTQgMC4zMzUgMS4zNDUgOwotICAgICAgICBSRUNUIDAuMjYgMC42IDAuMzQgMC43MyA7Ci0gICAgICAgIFJFQ1QgMC4yNiAwLjY3IDAuNyAwLjczIDsKLSAgICAgICAgUkVDVCAwLjY0IDAuNiAwLjcgMC45NzUgOwotICAgICAgICBSRUNUIDAuNjg1IDAuNTQgMC43NDUgMC42NiA7Ci0gICAgICAgIFJFQ1QgMC42ODUgMC45MTUgMC43NDUgMS4zNDUgOwotICAgIEVORAotICBFTkQgUQotICBQSU4gVkRECi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIFBPV0VSIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVkREIFZERCEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMS42NSA4IDEuNzEgOwotICAgIEVORAotICBFTkQgVkRECi0gIFBJTiBWU1MKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgR1JPVU5EIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVlNTIFZTUyEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMC4wMCA4IDAuMDYgOwotICAgIEVORAotICBFTkQgVlNTCi1FTkQgU0VERkZYNAotCi1NQUNSTyBBTkQ0WDQKLSAgQ0xBU1MgQ09SRSA7Ci0gIE9SSUdJTiAwIDAgOwotICBGT1JFSUdOIEFORDRYNCAwIDAgOwotICBTSVpFIDIuMiBCWSAxLjcxIDsKLSAgU1lNTUVUUlkgWCBZIDsKLSAgU0lURSBDb3JlU2l0ZSA7Ci0gIFBJTiBZCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBPVVRQVVQgOwotICAgIEFOVEVOTkFESUZGQVJFQSAxLjcyODUgIExBWUVSIE1ldGFsMSA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAxLjE3NSAwLjQ4IDEuMjk1IDAuNTQgOwotICAgICAgICBSRUNUIDEuMjkgMS4wOSAxLjM1IDEuNDggOwotICAgICAgICBSRUNUIDEuMjkgMS4wOSAxLjgwNSAxLjE1IDsKLSAgICAgICAgUkVDVCAxLjYxNSAwLjQ4IDEuODA1IDAuNTYgOwotICAgICAgICBSRUNUIDEuMjQ1IDAuNSAxLjgwNSAwLjU2IDsKLSAgICAgICAgUkVDVCAxLjc0NSAwLjQ4IDEuODA1IDEuNDggOwotICAgICAgICBSRUNUIDEuNyAxLjA5IDEuODA1IDEuNDggOwotICAgICAgICBSRUNUIDEuNzQ1IDAuNiAxLjk0IDAuNzMgOwotICAgIEVORAotICBFTkQgWQotICBQSU4gQQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMSAwLjgyIDEuMDggMS4wNiA7Ci0gICAgICAgIFJFQ1QgMS4wNiAwLjk4IDEuMTQgMS4yNiA7Ci0gICAgRU5ECi0gIEVORCBBCi0gIFBJTiBCCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjY2IDAuNSAwLjc0IDEgOwotICAgIEVORAotICBFTkQgQgotICBQSU4gQwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC40NiAwLjUyIDAuNTYgMC43NCA7Ci0gICAgICAgIFJFQ1QgMC40OCAwLjUyIDAuNTYgMSA7Ci0gICAgRU5ECi0gIEVORCBDCi0gIFBJTiBECi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjI2IDAuNiAwLjM0IDAuOTkgOwotICAgICAgICBSRUNUIDAuMjggMC41MSAwLjM2IDAuNzMgOwotICAgIEVORAotICBFTkQgRAotICBQSU4gVkRECi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIFBPV0VSIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVkREIFZERCEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMS42NSAyLjIgMS43MSA7Ci0gICAgRU5ECi0gIEVORCBWREQKLSAgUElOIFZTUwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBHUk9VTkQgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWU1MgVlNTISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAwLjAwIDIuMiAwLjA2IDsKLSAgICBFTkQKLSAgRU5EIFZTUwotRU5EIEFORDRYNAotCi1NQUNSTyBPUjRYOAotICBDTEFTUyBDT1JFIDsKLSAgT1JJR0lOIDAgMCA7Ci0gIEZPUkVJR04gT1I0WDggMCAwIDsKLSAgU0laRSAzLjYgQlkgMS43MSA7Ci0gIFNZTU1FVFJZIFggWSA7Ci0gIFNJVEUgQ29yZVNpdGUgOwotICBQSU4gWQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gT1VUUFVUIDsKLSAgICBBTlRFTk5BRElGRkFSRUEgMS43Mjg1ICBMQVlFUiBNZXRhbDEgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMi4wMjUgMC44MTUgMi4wODUgMS4zNDUgOwotICAgICAgICBSRUNUIDIuMDYgMC40OCAyLjE4IDAuNTQgOwotICAgICAgICBSRUNUIDIuNDM1IDAuODE1IDIuNDk1IDEuMzQ1IDsKLSAgICAgICAgUkVDVCAyLjQ3IDAuNDggMi41OSAwLjU1NSA7Ci0gICAgICAgIFJFQ1QgMi44NDUgMC44MTUgMi45MDUgMS4zNDUgOwotICAgICAgICBSRUNUIDIuOTEgMC40MzUgMi45NyAwLjU1NSA7Ci0gICAgICAgIFJFQ1QgMy4wNiAwLjQ5NSAzLjE0IDAuODc1IDsKLSAgICAgICAgUkVDVCAyLjAyNSAwLjgxNSAzLjMxNSAwLjg3NSA7Ci0gICAgICAgIFJFQ1QgMy4yNTUgMC44MTUgMy4zMTUgMS4zNDUgOwotICAgICAgICBSRUNUIDIuMTM1IDAuNDk1IDMuMzM1IDAuNTU1IDsKLSAgICAgICAgUkVDVCAzLjI5IDAuNDggMy40MSAwLjU0IDsKLSAgICBFTkQKLSAgRU5EIFkKLSAgUElOIEEKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMjcgMC44NjUgMC4zMyAxLjIzIDsKLSAgICAgICAgUkVDVCAxLjYzNSAwLjc3NSAxLjY5NSAxLjIzIDsKLSAgICAgICAgUkVDVCAwLjI3IDEuMTcgMS42OTUgMS4yMyA7Ci0gICAgICAgIFJFQ1QgMS42MzUgMC43NzUgMS43NCAwLjg5NSA7Ci0gICAgICAgIFJFQ1QgMS42MzUgMC44MTUgMS43NjUgMC44OTUgOwotICAgIEVORAotICBFTkQgQQotICBQSU4gQgotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC40NiAwLjc5IDAuNTQgMS4wNyA7Ci0gICAgICAgIFJFQ1QgMC40NiAwLjkyIDAuNTggMS4wNyA7Ci0gICAgICAgIFJFQ1QgMS40NzUgMC45IDEuNTM1IDEuMDcgOwotICAgICAgICBSRUNUIDAuNDYgMS4wMSAxLjUzNSAxLjA3IDsKLSAgICBFTkQKLSAgRU5EIEIKLSAgUElOIEMKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDEuMjM1IDAuNjI1IDEuMzY1IDAuNzA1IDsKLSAgICAgICAgUkVDVCAxLjMwNSAwLjYyNSAxLjM2NSAwLjkxIDsKLSAgICAgICAgUkVDVCAwLjY4IDAuODUgMS4zNjUgMC45MSA7Ci0gICAgRU5ECi0gIEVORCBDCi0gIFBJTiBECi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjY4IDAuNjI1IDAuOTY1IDAuNzUgOwotICAgICAgICBSRUNUIDAuNjggMC42NyAxLjEzNSAwLjc1IDsKLSAgICBFTkQKLSAgRU5EIEQKLSAgUElOIFZERAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBQT1dFUiA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZERCBWREQhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDEuNjUgMy42IDEuNzEgOwotICAgIEVORAotICBFTkQgVkRECi0gIFBJTiBWU1MKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgR1JPVU5EIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVlNTIFZTUyEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMC4wMCAzLjYgMC4wNiA7Ci0gICAgRU5ECi0gIEVORCBWU1MKLUVORCBPUjRYOAotCi1NQUNSTyBERkZTSFFYMQotICBDTEFTUyBDT1JFIDsKLSAgT1JJR0lOIDAgMCA7Ci0gIEZPUkVJR04gREZGU0hRWDEgMCAwIDsKLSAgU0laRSA0LjggQlkgMS43MSA7Ci0gIFNZTU1FVFJZIFggWSA7Ci0gIFNJVEUgQ29yZVNpdGUgOwotICBQSU4gUQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gT1VUUFVUIDsKLSAgICBBTlRFTk5BRElGRkFSRUEgMS43Mjg1ICBMQVlFUiBNZXRhbDEgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wNiAwLjYgMC4xNCAwLjczIDsKLSAgICAgICAgUkVDVCAwLjA2IDAuNiAwLjMgMC42NiA7Ci0gICAgICAgIFJFQ1QgMC4yNCAwLjU0IDAuMyAxLjI5IDsKLSAgICBFTkQKLSAgRU5EIFEKLSAgUElOIENLCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCA0LjQ2NSAwLjgwNSA0LjcxNSAwLjg4NSA7Ci0gICAgICAgIFJFQ1QgNC42MzUgMC44MDUgNC43MTUgMS4wODUgOwotICAgICAgICBSRUNUIDQuNjM1IDEuMDA1IDQuNzY1IDEuMDg1IDsKLSAgICBFTkQKLSAgRU5EIENLCi0gIFBJTiBECi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCA0LjIyNSAwLjc5NSA0LjM2NSAxLjA4NSA7Ci0gICAgRU5ECi0gIEVORCBECi0gIFBJTiBTTgotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMS4yNiAwLjM2IDEuMzIgMC45NyA7Ci0gICAgICAgIFJFQ1QgMC45NjUgMC45MSAxLjMyIDAuOTcgOwotICAgICAgICBSRUNUIDEuMjYgMC42IDEuMzQgMC43MyA7Ci0gICAgICAgIFJFQ1QgMS4yNiAwLjM2IDIuNjIgMC40MiA7Ci0gICAgICAgIFJFQ1QgMi41NiAwLjM2IDIuNjIgMC43NCA7Ci0gICAgICAgIFJFQ1QgMi41NiAwLjY4IDIuODQgMC43NCA7Ci0gICAgICAgIFJFQ1QgMi43OCAwLjY4IDIuODQgMC44IDsKLSAgICBFTkQKLSAgRU5EIFNOCi0gIFBJTiBWREQKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgUE9XRVIgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWREQgVkREISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAxLjY1IDQuOCAxLjcxIDsKLSAgICBFTkQKLSAgRU5EIFZERAotICBQSU4gVlNTCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIEdST1VORCA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZTUyBWU1MhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDAuMDAgNC44IDAuMDYgOwotICAgIEVORAotICBFTkQgVlNTCi1FTkQgREZGU0hRWDEKLQotTUFDUk8gU0RGRlNIUVgxCi0gIENMQVNTIENPUkUgOwotICBPUklHSU4gMCAwIDsKLSAgRk9SRUlHTiBTREZGU0hRWDEgMCAwIDsKLSAgU0laRSA2LjQgQlkgMS43MSA7Ci0gIFNZTU1FVFJZIFggWSA7Ci0gIFNJVEUgQ29yZVNpdGUgOwotICBQSU4gUQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gT1VUUFVUIDsKLSAgICBBTlRFTk5BRElGRkFSRUEgMS43Mjg1ICBMQVlFUiBNZXRhbDEgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC40OCAwLjU3IDAuNTYgMS4wMiA7Ci0gICAgICAgIFJFQ1QgMC40OCAwLjU3IDAuNiAwLjY1IDsKLSAgICAgICAgUkVDVCAwLjQ4IDAuNzkgMC43NCAwLjg3IDsKLSAgICAgICAgUkVDVCAwLjY2IDAuNzkgMC43NCAwLjkyIDsKLSAgICBFTkQKLSAgRU5EIFEKLSAgUElOIFNFCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCA1LjI1IDAuNjM1IDYuMTYgMC43MTUgOwotICAgICAgICBSRUNUIDYuMDYgMC42IDYuMTQgMC43MyA7Ci0gICAgICAgIFJFQ1QgNi4wNiAwLjYxIDYuMTYgMC43MyA7Ci0gICAgRU5ECi0gIEVORCBTRQotICBQSU4gU0kKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDUuNTM1IDAuODE1IDUuOTA1IDAuOTM1IDsKLSAgICAgICAgUkVDVCA1LjgyNSAwLjgxNSA1LjkwNSAxLjAyNSA7Ci0gICAgRU5ECi0gIEVORCBTSQotICBQSU4gRAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgNC41NiAwLjYyNSA0LjgzIDAuNzc1IDsKLSAgICBFTkQKLSAgRU5EIEQKLSAgUElOIENLCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCA0LjM4NSAwLjg3NSA0LjY2IDEuMDEgOwotICAgICAgICBSRUNUIDQuMzg1IDAuODc1IDQuODMgMC45NTUgOwotICAgIEVORAotICBFTkQgQ0sKLSAgUElOIFNOCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAxLjA2IDAuOTggMS4xNCAxLjExIDsKLSAgICAgICAgUkVDVCAxLjA4IDAuODc1IDEuMTQgMS4yOTUgOwotICAgICAgICBSRUNUIDEuMDggMS4yMzUgMS41NjUgMS4yOTUgOwotICAgICAgICBSRUNUIDEuNTA1IDEuMjIgMi4wNSAxLjI4IDsKLSAgICAgICAgUkVDVCAxLjk5IDEuMTIgMi4wNSAxLjI4IDsKLSAgICAgICAgUkVDVCAyLjM4NSAwLjkxNSAyLjQ0NSAxLjE4IDsKLSAgICAgICAgUkVDVCAxLjk5IDEuMTIgMi40NDUgMS4xOCA7Ci0gICAgICAgIFJFQ1QgMi4zODUgMC45MTUgMi41MDUgMC45NzUgOwotICAgIEVORAotICBFTkQgU04KLSAgUElOIFZERAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBQT1dFUiA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZERCBWREQhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDEuNjUgNi40IDEuNzEgOwotICAgIEVORAotICBFTkQgVkRECi0gIFBJTiBWU1MKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgR1JPVU5EIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVlNTIFZTUyEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMC4wMCA2LjQgMC4wNiA7Ci0gICAgRU5ECi0gIEVORCBWU1MKLUVORCBTREZGU0hRWDEKLQotTUFDUk8gU0RGRlNIUVg0Ci0gIENMQVNTIENPUkUgOwotICBPUklHSU4gMCAwIDsKLSAgRk9SRUlHTiBTREZGU0hRWDQgMCAwIDsKLSAgU0laRSA3LjIgQlkgMS43MSA7Ci0gIFNZTU1FVFJZIFggWSA7Ci0gIFNJVEUgQ29yZVNpdGUgOwotICBQSU4gU0UKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDYuMDI1IDAuNjU1IDYuOTQgMC43MTUgOwotICAgICAgICBSRUNUIDYuODYgMC42IDYuOTQgMC43MyA7Ci0gICAgICAgIFJFQ1QgNi44NiAwLjY0NSA2Ljk4IDAuNzA1IDsKLSAgICBFTkQKLSAgRU5EIFNFCi0gIFBJTiBTSQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgNi4zMTUgMC44MTUgNi4zOTUgMC45NSA7Ci0gICAgICAgIFJFQ1QgNi4zMTUgMC44MTUgNi43NiAwLjg5NSA7Ci0gICAgRU5ECi0gIEVORCBTSQotICBQSU4gRAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgNS4yMzUgMC42MjUgNS41NDUgMC43MDUgOwotICAgICAgICBSRUNUIDUuNDY1IDAuNjI1IDUuNTQ1IDAuODk1IDsKLSAgICBFTkQKLSAgRU5EIEQKLSAgUElOIENLCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCA1LjAxNSAwLjYwNSA1LjEzNSAwLjY4NSA7Ci0gICAgICAgIFJFQ1QgNS4wMzUgMC42MDUgNS4xMzUgMC44OTUgOwotICAgICAgICBSRUNUIDUuMDM1IDAuODE1IDUuMzA1IDAuODk1IDsKLSAgICBFTkQKLSAgRU5EIENLCi0gIFBJTiBTTgotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMS40OCAwLjgzNSAxLjU0IDEuMzA1IDsKLSAgICAgICAgUkVDVCAxLjQ2IDEuMTcgMS41NCAxLjMgOwotICAgICAgICBSRUNUIDEuNDggMC44MzUgMS42NyAwLjg5NSA7Ci0gICAgICAgIFJFQ1QgMS40OCAxLjI0NSAyIDEuMzA1IDsKLSAgICAgICAgUkVDVCAxLjk0IDEuMjA1IDMuMDY1IDEuMjY1IDsKLSAgICAgICAgUkVDVCAzLjAwNSAxIDMuMDY1IDEuMjY1IDsKLSAgICAgICAgUkVDVCAzLjAwNSAxIDMuMTI1IDEuMDYgOwotICAgIEVORAotICBFTkQgU04KLSAgUElOIFEKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIE9VVFBVVCA7Ci0gICAgQU5URU5OQURJRkZBUkVBIDEuNzI4NSAgTEFZRVIgTWV0YWwxIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuNDM1IDAuNTQgMC40OTUgMS4zNTUgOwotICAgICAgICBSRUNUIDAuNDM1IDAuNiAwLjU0IDAuNzMgOwotICAgICAgICBSRUNUIDAuNDM1IDAuNjQ1IDAuODYgMC43MDUgOwotICAgICAgICBSRUNUIDAuOCAwLjYgMC44NiAwLjk3IDsKLSAgICAgICAgUkVDVCAwLjg0NSAwLjU0IDAuOTA1IDAuNjYgOwotICAgICAgICBSRUNUIDAuODQ1IDAuOTEgMC45MDUgMS4zNTUgOwotICAgIEVORAotICBFTkQgUQotICBQSU4gVkRECi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIFBPV0VSIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVkREIFZERCEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMS42NSA3LjIgMS43MSA7Ci0gICAgRU5ECi0gIEVORCBWREQKLSAgUElOIFZTUwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBHUk9VTkQgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWU1MgVlNTISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAwLjAwIDcuMiAwLjA2IDsKLSAgICBFTkQKLSAgRU5EIFZTUwotRU5EIFNERkZTSFFYNAotCi1NQUNSTyBUTEFUTlRTQ0FYMgotICBDTEFTUyBDT1JFIDsKLSAgT1JJR0lOIDAgMCA7Ci0gIEZPUkVJR04gVExBVE5UU0NBWDIgMCAwIDsKLSAgU0laRSAzLjggQlkgMS43MSA7Ci0gIFNZTU1FVFJZIFggWSA7Ci0gIFNJVEUgQ29yZVNpdGUgOwotICBQSU4gRUNLCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBPVVRQVVQgOwotICAgIEFOVEVOTkFESUZGQVJFQSAxLjcyODUgIExBWUVSIE1ldGFsMSA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAzLjI2IDAuNDEgMy4zNCAxLjI5IDsKLSAgICAgICAgUkVDVCAzLjI2IDAuNDEgMy4zNiAwLjUzIDsKLSAgICBFTkQKLSAgRU5EIEVDSwotICBQSU4gQ0sKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuNjYgMC40NSAwLjc0IDAuOTUgOwotICAgIEVORAotICBFTkQgQ0sKLSAgUElOIFNFCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjQ2IDAuNDUgMC41NCAwLjk1IDsKLSAgICBFTkQKLSAgRU5EIFNFCi0gIFBJTiBFCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjA2IDAuNTEgMC4yIDAuOTUgOwotICAgIEVORAotICBFTkQgRQotICBQSU4gVkRECi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIFBPV0VSIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVkREIFZERCEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMS42NSAzLjggMS43MSA7Ci0gICAgRU5ECi0gIEVORCBWREQKLSAgUElOIFZTUwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBHUk9VTkQgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWU1MgVlNTISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAwLjAwIDMuOCAwLjA2IDsKLSAgICBFTkQKLSAgRU5EIFZTUwotRU5EIFRMQVROVFNDQVgyCi0KLU1BQ1JPIFhOT1IyWDQKLSAgQ0xBU1MgQ09SRSA7Ci0gIE9SSUdJTiAwIDAgOwotICBGT1JFSUdOIFhOT1IyWDQgMCAwIDsKLSAgU0laRSAyLjQgQlkgMS43MSA7Ci0gIFNZTU1FVFJZIFggWSA7Ci0gIFNJVEUgQ29yZVNpdGUgOwotICBQSU4gWQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gT1VUUFVUIDsKLSAgICBBTlRFTk5BRElGRkFSRUEgMS43Mjg1ICBMQVlFUiBNZXRhbDEgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4yNiAwLjUgMC4zMiAxLjQ2NSA7Ci0gICAgICAgIFJFQ1QgMC4yNiAwLjk4IDAuMzM1IDEuNDY1IDsKLSAgICAgICAgUkVDVCAwLjI2IDAuOTggMC4zNCAxLjEzNSA7Ci0gICAgICAgIFJFQ1QgMC4yNDUgMC41IDAuMzY1IDAuNTYgOwotICAgICAgICBSRUNUIDAuMjYgMS4wNzUgMC43IDEuMTM1IDsKLSAgICAgICAgUkVDVCAwLjY0IDAuMzkgMC43IDAuNjEgOwotICAgICAgICBSRUNUIDAuMjYgMC41NSAwLjcgMC42MSA7Ci0gICAgICAgIFJFQ1QgMC42NCAxLjA3NSAwLjcgMS40MDUgOwotICAgICAgICBSRUNUIDAuNjg1IDAuMzMgMC43NDUgMC40NSA7Ci0gICAgICAgIFJFQ1QgMC42ODUgMS4zNDUgMC43NDUgMS40NjUgOwotICAgIEVORAotICBFTkQgWQotICBQSU4gQgotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMS40MjUgMC42NSAxLjQ4NSAwLjgyNSA7Ci0gICAgICAgIFJFQ1QgMS44MDUgMC42NDUgMS44NjUgMC44MjUgOwotICAgICAgICBSRUNUIDEuNzE1IDAuNzY1IDEuODM1IDAuOTEgOwotICAgICAgICBSRUNUIDEuNDI1IDAuNzY1IDEuODY1IDAuODI1IDsKLSAgICAgICAgUkVDVCAxLjgzNSAwLjYyNSAyLjA4IDAuNzA1IDsKLSAgICAgICAgUkVDVCAyLjAyIDAuNjI1IDIuMDggMC43NDUgOwotICAgIEVORAotICBFTkQgQgotICBQSU4gQQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC45NiAwLjcxIDEuMTY1IDEuMDg1IDsKLSAgICBFTkQKLSAgRU5EIEEKLSAgUElOIFZERAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBQT1dFUiA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZERCBWREQhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDEuNjUgMi40IDEuNzEgOwotICAgIEVORAotICBFTkQgVkRECi0gIFBJTiBWU1MKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgR1JPVU5EIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVlNTIFZTUyEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMC4wMCAyLjQgMC4wNiA7Ci0gICAgRU5ECi0gIEVORCBWU1MKLUVORCBYTk9SMlg0Ci0KLU1BQ1JPIERGRlNYMgotICBDTEFTUyBDT1JFIDsKLSAgT1JJR0lOIDAgMCA7Ci0gIEZPUkVJR04gREZGU1gyIDAgMCA7Ci0gIFNJWkUgNiBCWSAxLjcxIDsKLSAgU1lNTUVUUlkgWCBZIDsKLSAgU0lURSBDb3JlU2l0ZSA7Ci0gIFBJTiBRTgotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gT1VUUFVUIDsKLSAgICBBTlRFTk5BRElGRkFSRUEgMS43Mjg1ICBMQVlFUiBNZXRhbDEgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgNS4yNiAwLjU3IDUuMzQgMS4yOSA7Ci0gICAgICAgIFJFQ1QgNS4yMyAwLjU3IDUuMzUgMC42NSA7Ci0gICAgRU5ECi0gIEVORCBRTgotICBQSU4gUQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gT1VUUFVUIDsKLSAgICBBTlRFTk5BRElGRkFSRUEgMS43Mjg1ICBMQVlFUiBNZXRhbDEgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgNC42MiAwLjU1IDQuNzQgMC42MyA7Ci0gICAgICAgIFJFQ1QgNC42NiAwLjU1IDQuNzQgMS4yOSA7Ci0gICAgRU5ECi0gIEVORCBRCi0gIFBJTiBTTgotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMy40NiAwLjc1IDMuNTQgMS4yNSA7Ci0gICAgRU5ECi0gIEVORCBTTgotICBQSU4gRAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC40NiAwLjYxIDAuNTQgMS4xMSA7Ci0gICAgRU5ECi0gIEVORCBECi0gIFBJTiBDSwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4yNiAwLjYxIDAuMzQgMS4xMSA7Ci0gICAgRU5ECi0gIEVORCBDSwotICBQSU4gVkRECi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIFBPV0VSIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVkREIFZERCEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMS42NSA2IDEuNzEgOwotICAgIEVORAotICBFTkQgVkRECi0gIFBJTiBWU1MKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgR1JPVU5EIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVlNTIFZTUyEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMC4wMCA2IDAuMDYgOwotICAgIEVORAotICBFTkQgVlNTCi1FTkQgREZGU1gyCi0KLU1BQ1JPIERGRlgyCi0gIENMQVNTIENPUkUgOwotICBPUklHSU4gMCAwIDsKLSAgRk9SRUlHTiBERkZYMiAwIDAgOwotICBTSVpFIDQuOCBCWSAxLjcxIDsKLSAgU1lNTUVUUlkgWCBZIDsKLSAgU0lURSBDb3JlU2l0ZSA7Ci0gIFBJTiBRTgotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gT1VUUFVUIDsKLSAgICBBTlRFTk5BRElGRkFSRUEgMS43Mjg1ICBMQVlFUiBNZXRhbDEgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMy42NiAwLjYgMy43NCAwLjczIDsKLSAgICAgICAgUkVDVCAzLjY2IDAuNjQ1IDMuOSAwLjcwNSA7Ci0gICAgICAgIFJFQ1QgMy44NCAwLjUzIDMuOSAxLjI5IDsKLSAgICBFTkQKLSAgRU5EIFFOCi0gIFBJTiBRCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBPVVRQVVQgOwotICAgIEFOVEVOTkFESUZGQVJFQSAxLjcyODUgIExBWUVSIE1ldGFsMSA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAzLjI2IDAuNTMgMy4zNCAxLjI5IDsKLSAgICBFTkQKLSAgRU5EIFEKLSAgUElOIENLCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAyLjg2IDAuNTMgMi45NCAxLjAzIDsKLSAgICBFTkQKLSAgRU5EIENLCi0gIFBJTiBECi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjI4NSAwLjkzNSAwLjM2NSAxLjI3NSA7Ci0gICAgICAgIFJFQ1QgMC4yMzUgMS4xOTUgMC4zNjUgMS4yNzUgOwotICAgICAgICBSRUNUIDAuMzcgMC44OTUgMC40NSAxLjAxNSA7Ci0gICAgICAgIFJFQ1QgMC4yODUgMC45MzUgMC40NSAxLjAxNSA7Ci0gICAgRU5ECi0gIEVORCBECi0gIFBJTiBWREQKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgUE9XRVIgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWREQgVkREISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAxLjY1IDQuOCAxLjcxIDsKLSAgICBFTkQKLSAgRU5EIFZERAotICBQSU4gVlNTCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIEdST1VORCA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZTUyBWU1MhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDAuMDAgNC44IDAuMDYgOwotICAgIEVORAotICBFTkQgVlNTCi1FTkQgREZGWDIKLQotTUFDUk8gU0VERkZYMgotICBDTEFTUyBDT1JFIDsKLSAgT1JJR0lOIDAgMCA7Ci0gIEZPUkVJR04gU0VERkZYMiAwIDAgOwotICBTSVpFIDcuOCBCWSAxLjcxIDsKLSAgU1lNTUVUUlkgWCBZIDsKLSAgU0lURSBDb3JlU2l0ZSA7Ci0gIFBJTiBRTgotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gT1VUUFVUIDsKLSAgICBBTlRFTk5BRElGRkFSRUEgMS43Mjg1ICBMQVlFUiBNZXRhbDEgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgNi4xIDAuNCA2LjE4IDEuMTEgOwotICAgICAgICBSRUNUIDYuMDYgMC45OCA2LjE4IDEuMTEgOwotICAgIEVORAotICBFTkQgUU4KLSAgUElOIFEKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIE9VVFBVVCA7Ci0gICAgQU5URU5OQURJRkZBUkVBIDEuNzI4NSAgTEFZRVIgTWV0YWwxIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMjYgMC42IDAuMzQgMC43MyA7Ci0gICAgICAgIFJFQ1QgMC4yOCAwLjU0IDAuMzQgMS4yOSA7Ci0gICAgRU5ECi0gIEVORCBRCi0gIFBJTiBFCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCA2LjY3NSAwLjU4NSA2LjczNSAxLjA4NSA7Ci0gICAgICAgIFJFQ1QgNi42NzUgMC41ODUgNi43OTUgMC42NSA7Ci0gICAgICAgIFJFQ1QgNi42NzUgMC41ODUgNy40ODUgMC42NDUgOwotICAgICAgICBSRUNUIDcuNDI1IDAuNjI1IDcuNTY1IDAuNzA1IDsKLSAgICBFTkQKLSAgRU5EIEUKLSAgUElOIEQKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDYuODk1IDAuNzQ1IDcuMTY1IDAuODk1IDsKLSAgICAgICAgUkVDVCA2Ljg5NSAwLjc0NSA3LjMyNSAwLjgyNSA7Ci0gICAgRU5ECi0gIEVORCBECi0gIFBJTiBTRQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgNS42MzUgMC42MSA1Ljc2NSAwLjk4IDsKLSAgICBFTkQKLSAgRU5EIFNFCi0gIFBJTiBTSQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgNC4yMzUgMC44MTUgNC4zNjUgMC44OTUgOwotICAgICAgICBSRUNUIDQuMjg1IDAuODE1IDQuMzY1IDEuMjY1IDsKLSAgICBFTkQKLSAgRU5EIFNJCi0gIFBJTiBDSwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMy44NiAwLjc1NSAzLjk0IDAuOTIgOwotICAgICAgICBSRUNUIDMuODYgMC44NCA0LjEzNSAwLjkyIDsKLSAgICAgICAgUkVDVCA0LjA1NSAwLjg0IDQuMTM1IDEuMDYgOwotICAgIEVORAotICBFTkQgQ0sKLSAgUElOIFZERAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBQT1dFUiA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZERCBWREQhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDEuNjUgNy44IDEuNzEgOwotICAgIEVORAotICBFTkQgVkRECi0gIFBJTiBWU1MKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgR1JPVU5EIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVlNTIFZTUyEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMC4wMCA3LjggMC4wNiA7Ci0gICAgRU5ECi0gIEVORCBWU1MKLUVORCBTRURGRlgyCi0KLU1BQ1JPIEFEREZIWEwKLSAgQ0xBU1MgQ09SRSA7Ci0gIE9SSUdJTiAwIDAgOwotICBGT1JFSUdOIEFEREZIWEwgMCAwIDsKLSAgU0laRSA0LjQgQlkgMS43MSA7Ci0gIFNZTU1FVFJZIFggWSA7Ci0gIFNJVEUgQ29yZVNpdGUgOwotICBQSU4gUwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gT1VUUFVUIDsKLSAgICBBTlRFTk5BRElGRkFSRUEgMS43Mjg1ICBMQVlFUiBNZXRhbDEgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgNC4wODUgMC41MSA0LjE0NSAxLjQwNSA7Ci0gICAgICAgIFJFQ1QgNC4wODUgMC42IDQuMzQgMC43MyA7Ci0gICAgRU5ECi0gIEVORCBTCi0gIFBJTiBDTwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gT1VUUFVUIDsKLSAgICBBTlRFTk5BRElGRkFSRUEgMS43Mjg1ICBMQVlFUiBNZXRhbDEgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wNiAwLjYgMC4xNCAwLjczIDsKLSAgICAgICAgUkVDVCAwLjA4IDAuNiAwLjE0IDAuOTggOwotICAgICAgICBSRUNUIDAuMDggMC45MiAwLjQwNSAwLjk4IDsKLSAgICAgICAgUkVDVCAwLjM0NSAwLjQ2NSAwLjQwNSAwLjY2IDsKLSAgICAgICAgUkVDVCAwLjA2IDAuNiAwLjQwNSAwLjY2IDsKLSAgICAgICAgUkVDVCAwLjM0NSAwLjkyIDAuNDA1IDEuMjEgOwotICAgIEVORAotICBFTkQgQ08KLSAgUElOIEIKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDEuNjI1IDEuMDI1IDIuNzQgMS4wNDUgOwotICAgICAgICBSRUNUIDEuMDcgMC45NjUgMS43NjUgMS4wMjUgOwotICAgICAgICBSRUNUIDEuNzA1IDEuMDI1IDIuNzQgMS4wODUgOwotICAgICAgICBSRUNUIDIuNjggMC45NjUgMy41MzUgMS4wMjUgOwotICAgIEVORAotICBFTkQgQgotICBQSU4gQQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC45MDUgMC44MDUgMC45NjUgMC45MjUgOwotICAgICAgICBSRUNUIDAuOTA1IDAuODA1IDEuOTE1IDAuODY1IDsKLSAgICAgICAgUkVDVCAwLjkwNSAwLjgyNSAxLjk4NSAwLjg2NSA7Ci0gICAgICAgIFJFQ1QgMS44NjUgMC44NjUgMi41OCAwLjkyNSA7Ci0gICAgICAgIFJFQ1QgMi41MiAwLjgwNSAzLjc2NSAwLjg2NSA7Ci0gICAgICAgIFJFQ1QgMy42MzUgMC44MDUgMy43NjUgMC44OTUgOwotICAgIEVORAotICBFTkQgQQotICBQSU4gQ0kKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDEuNTMgMC42MjUgMS43NjUgMC43MDUgOwotICAgICAgICBSRUNUIDIuMTEgMC42NDUgMi4xNyAwLjc2NSA7Ci0gICAgICAgIFJFQ1QgMS41MyAwLjY0NSAzLjIzNSAwLjcwNSA7Ci0gICAgRU5ECi0gIEVORCBDSQotICBQSU4gVkRECi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIFBPV0VSIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVkREIFZERCEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMS42NSA0LjQgMS43MSA7Ci0gICAgRU5ECi0gIEVORCBWREQKLSAgUElOIFZTUwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBHUk9VTkQgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWU1MgVlNTISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAwLjAwIDQuNCAwLjA2IDsKLSAgICBFTkQKLSAgRU5EIFZTUwotRU5EIEFEREZIWEwKLQotTUFDUk8gT0FJMjIxWDIKLSAgQ0xBU1MgQ09SRSA7Ci0gIE9SSUdJTiAwIDAgOwotICBGT1JFSUdOIE9BSTIyMVgyIDAgMCA7Ci0gIFNJWkUgMi44IEJZIDEuNzEgOwotICBTWU1NRVRSWSBYIFkgOwotICBTSVRFIENvcmVTaXRlIDsKLSAgUElOIFkKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIE9VVFBVVCA7Ci0gICAgQU5URU5OQURJRkZBUkVBIDEuNzI4NSAgTEFZRVIgTWV0YWwxIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuNjYgMS4xNTUgMC43MiAxLjI3NSA7Ci0gICAgICAgIFJFQ1QgMS42OCAxLjE1NSAxLjc0IDEuMjc1IDsKLSAgICAgICAgUkVDVCAyLjM0IDEuMTU1IDIuNCAxLjQwNSA7Ci0gICAgICAgIFJFQ1QgMi40NCAwLjQ3NSAyLjUgMS4yMTUgOwotICAgICAgICBSRUNUIDAuNjYgMS4xNTUgMi41IDEuMjE1IDsKLSAgICAgICAgUkVDVCAyLjQ0IDAuNzkgMi41NCAwLjkyIDsKLSAgICBFTkQKLSAgRU5EIFkKLSAgUElOIEEwCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjI2IDAuNzkgMC4zNCAwLjkyIDsKLSAgICAgICAgUkVDVCAwLjIyIDAuODYgMC4zNCAwLjkyIDsKLSAgICAgICAgUkVDVCAwLjI4IDAuNzkgMC4zNCAxLjA1NSA7Ci0gICAgICAgIFJFQ1QgMC45NCAwLjg0NSAxIDEuMDU1IDsKLSAgICAgICAgUkVDVCAwLjI4IDAuOTk1IDEgMS4wNTUgOwotICAgIEVORAotICBFTkQgQTAKLSAgUElOIEIwCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAxLjQgMC44NDUgMS40NiAxLjA1NSA7Ci0gICAgICAgIFJFQ1QgMi4wNiAwLjc5IDIuMTQgMS4wNTUgOwotICAgICAgICBSRUNUIDEuNCAwLjk5NSAyLjE0IDEuMDU1IDsKLSAgICBFTkQKLSAgRU5EIEIwCi0gIFBJTiBBMQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC40NCAwLjcxNSAwLjcxNSAwLjc5NSA7Ci0gICAgICAgIFJFQ1QgMC42MzUgMC43MTUgMC43MTUgMC44OTUgOwotICAgICAgICBSRUNUIDAuNjM1IDAuODE1IDAuODQgMC44OTUgOwotICAgIEVORAotICBFTkQgQTEKLSAgUElOIEIxCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAxLjY4NSAwLjcxNSAxLjc2NSAwLjg5NSA7Ci0gICAgICAgIFJFQ1QgMS41NiAwLjgxNSAxLjc2NSAwLjg5NSA7Ci0gICAgICAgIFJFQ1QgMS42ODUgMC43MTUgMS45NiAwLjc5NSA7Ci0gICAgRU5ECi0gIEVORCBCMQotICBQSU4gQzAKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDIuMjYgMC41NTUgMi4zNCAxLjA1NSA7Ci0gICAgRU5ECi0gIEVORCBDMAotICBQSU4gVkRECi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIFBPV0VSIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVkREIFZERCEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMS42NSAyLjggMS43MSA7Ci0gICAgRU5ECi0gIEVORCBWREQKLSAgUElOIFZTUwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBHUk9VTkQgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWU1MgVlNTISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAwLjAwIDIuOCAwLjA2IDsKLSAgICBFTkQKLSAgRU5EIFZTUwotRU5EIE9BSTIyMVgyCi0KLU1BQ1JPIFNFREZGSFFYMgotICBDTEFTUyBDT1JFIDsKLSAgT1JJR0lOIDAgMCA7Ci0gIEZPUkVJR04gU0VERkZIUVgyIDAgMCA7Ci0gIFNJWkUgNi44IEJZIDEuNzEgOwotICBTWU1NRVRSWSBYIFkgOwotICBTSVRFIENvcmVTaXRlIDsKLSAgUElOIFEKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIE9VVFBVVCA7Ci0gICAgQU5URU5OQURJRkZBUkVBIDEuNzI4NSAgTEFZRVIgTWV0YWwxIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDMuMDYgMC40OTUgMy4xNCAxLjAyNSA7Ci0gICAgICAgIFJFQ1QgMy4wNiAwLjQ5NSAzLjE4NSAwLjU3NSA7Ci0gICAgICAgIFJFQ1QgMy4wNiAwLjk0NSAzLjI2NSAxLjAyNSA7Ci0gICAgRU5ECi0gIEVORCBRCi0gIFBJTiBDSwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgNi40OCAwLjY3IDYuNTYgMC45NiA7Ci0gICAgICAgIFJFQ1QgNi40OCAwLjc5IDYuNzcgMC45NiA7Ci0gICAgRU5ECi0gIEVORCBDSwotICBQSU4gU0kKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDIuODYgMC43MDUgMi45NiAwLjkyIDsKLSAgICAgICAgUkVDVCAyLjg4IDAuNzA1IDIuOTYgMS4xODUgOwotICAgIEVORAotICBFTkQgU0kKLSAgUElOIFNFCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAxLjYyNSAwLjYyNSAxLjc3NSAwLjg5NSA7Ci0gICAgRU5ECi0gIEVORCBTRQotICBQSU4gRAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC42NiAwLjU4NSAwLjc0IDEuMDg1IDsKLSAgICBFTkQKLSAgRU5EIEQKLSAgUElOIEUKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMjM1IDAuNjI1IDAuMzY1IDAuNzA1IDsKLSAgICAgICAgUkVDVCAwLjUgMC40MjUgMC41NiAwLjY4NSA7Ci0gICAgICAgIFJFQ1QgMC4yMzUgMC42MjUgMC41NiAwLjY4NSA7Ci0gICAgICAgIFJFQ1QgMC41IDAuNDI1IDAuOTYgMC40ODUgOwotICAgICAgICBSRUNUIDAuOSAwLjQyNSAwLjk2IDAuNjU1IDsKLSAgICBFTkQKLSAgRU5EIEUKLSAgUElOIFZERAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBQT1dFUiA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZERCBWREQhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDEuNjUgNi44IDEuNzEgOwotICAgIEVORAotICBFTkQgVkRECi0gIFBJTiBWU1MKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgR1JPVU5EIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVlNTIFZTUyEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMC4wMCA2LjggMC4wNiA7Ci0gICAgRU5ECi0gIEVORCBWU1MKLUVORCBTRURGRkhRWDIKLQotTUFDUk8gU0RGRlRSWDEKLSAgQ0xBU1MgQ09SRSA7Ci0gIE9SSUdJTiAwIDAgOwotICBGT1JFSUdOIFNERkZUUlgxIDAgMCA7Ci0gIFNJWkUgNi40IEJZIDEuNzEgOwotICBTWU1NRVRSWSBYIFkgOwotICBTSVRFIENvcmVTaXRlIDsKLSAgUElOIFEKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIE9VVFBVVCA7Ci0gICAgQU5URU5OQURJRkZBUkVBIDEuNzI4NSAgTEFZRVIgTWV0YWwxIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuODYgMC40MSAxIDAuNTQgOwotICAgICAgICBSRUNUIDAuOTQgMC40MSAxIDEuMzMgOwotICAgIEVORAotICBFTkQgUQotICBQSU4gUU4KLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIE9VVFBVVCA7Ci0gICAgQU5URU5OQURJRkZBUkVBIDEuNzI4NSAgTEFZRVIgTWV0YWwxIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDYgMC42IDAuMzI1IDAuNzMgOwotICAgICAgICBSRUNUIDAuMjQ1IDAuNTQgMC4zMjUgMS4yOSA7Ci0gICAgRU5ECi0gIEVORCBRTgotICBQSU4gRAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgNi4wNiAwLjQzIDYuMTQgMC43MzUgOwotICAgICAgICBSRUNUIDUuODY1IDAuNiA2LjE0IDAuNzM1IDsKLSAgICBFTkQKLSAgRU5EIEQKLSAgUElOIFJOCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCA1LjYyIDAuNDYgNS43IDAuODk1IDsKLSAgICAgICAgUkVDVCA1LjYyIDAuODE1IDUuNzY1IDAuODk1IDsKLSAgICBFTkQKLSAgRU5EIFJOCi0gIFBJTiBTRQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgNS4xOSAwLjYyNSA1LjM2NSAwLjg3NSA7Ci0gICAgICAgIFJFQ1QgNS4xOSAwLjYyNSA1LjUyIDAuNzA1IDsKLSAgICBFTkQKLSAgRU5EIFNFCi0gIFBJTiBTSQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMy44NiAwLjYyNSAzLjk0IDAuOTIgOwotICAgICAgICBSRUNUIDMuODYgMC43ODUgNC4xNDUgMC45MiA7Ci0gICAgRU5ECi0gIEVORCBTSQotICBQSU4gQ0sKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDEuMjg1IDAuNzcgMS4zNjUgMS4wODUgOwotICAgICAgICBSRUNUIDEuMSAxLjAwNSAxLjM2NSAxLjA4NSA7Ci0gICAgRU5ECi0gIEVORCBDSwotICBQSU4gVkRECi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIFBPV0VSIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVkREIFZERCEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMS42NSA2LjQgMS43MSA7Ci0gICAgRU5ECi0gIEVORCBWREQKLSAgUElOIFZTUwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBHUk9VTkQgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWU1MgVlNTISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAwLjAwIDYuNCAwLjA2IDsKLSAgICBFTkQKLSAgRU5EIFZTUwotRU5EIFNERkZUUlgxCi0KLU1BQ1JPIEFORDRYMgotICBDTEFTUyBDT1JFIDsKLSAgT1JJR0lOIDAgMCA7Ci0gIEZPUkVJR04gQU5ENFgyIDAgMCA7Ci0gIFNJWkUgMS44IEJZIDEuNzEgOwotICBTWU1NRVRSWSBYIFkgOwotICBTSVRFIENvcmVTaXRlIDsKLSAgUElOIFkKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIE9VVFBVVCA7Ci0gICAgQU5URU5OQURJRkZBUkVBIDEuNzI4NSAgTEFZRVIgTWV0YWwxIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDEuMzA1IDAuMjk1IDEuMzY1IDAuNDE1IDsKLSAgICAgICAgUkVDVCAxLjMwNSAwLjgxNSAxLjM2NSAxLjMzNSA7Ci0gICAgICAgIFJFQ1QgMS4zMDUgMC4zNTUgMS40NiAwLjQxNSA7Ci0gICAgICAgIFJFQ1QgMS40IDAuMzU1IDEuNDYgMC44NzUgOwotICAgICAgICBSRUNUIDEuMzA1IDAuODE1IDEuNDYgMC44NzUgOwotICAgICAgICBSRUNUIDEuNCAwLjYgMS41NCAwLjczIDsKLSAgICBFTkQKLSAgRU5EIFkKLSAgUElOIEEKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDEgMC42NzUgMS4wOCAwLjkyIDsKLSAgICAgICAgUkVDVCAxLjA2IDAuNzc1IDEuMTQgMS4xMTUgOwotICAgIEVORAotICBFTkQgQQotICBQSU4gQgotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC42NiAwLjYgMC43NCAxLjEgOwotICAgIEVORAotICBFTkQgQgotICBQSU4gQwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC40NiAwLjYxIDAuNTQgMS4xMSA7Ci0gICAgRU5ECi0gIEVORCBDCi0gIFBJTiBECi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAzNSAwLjYyNSAwLjM2IDAuOTk1IDsKLSAgICBFTkQKLSAgRU5EIEQKLSAgUElOIFZERAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBQT1dFUiA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZERCBWREQhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDEuNjUgMS44IDEuNzEgOwotICAgIEVORAotICBFTkQgVkRECi0gIFBJTiBWU1MKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgR1JPVU5EIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVlNTIFZTUyEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMC4wMCAxLjggMC4wNiA7Ci0gICAgRU5ECi0gIEVORCBWU1MKLUVORCBBTkQ0WDIKLQotTUFDUk8gT0FJMjJYTAotICBDTEFTUyBDT1JFIDsKLSAgT1JJR0lOIDAgMCA7Ci0gIEZPUkVJR04gT0FJMjJYTCAwIDAgOwotICBTSVpFIDEuMiBCWSAxLjcxIDsKLSAgU1lNTUVUUlkgWCBZIDsKLSAgU0lURSBDb3JlU2l0ZSA7Ci0gIFBJTiBZCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBPVVRQVVQgOwotICAgIEFOVEVOTkFESUZGQVJFQSAxLjcyODUgIExBWUVSIE1ldGFsMSA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjQ2IDAuOTggMC41NCAxLjExIDsKLSAgICAgICAgUkVDVCAwLjQ4IDAuNjQgMC41NCAxLjIzNSA7Ci0gICAgICAgIFJFQ1QgMC42MzUgMC40NSAwLjY5NSAwLjcgOwotICAgICAgICBSRUNUIDAuNDggMC42NCAwLjY5NSAwLjcgOwotICAgICAgICBSRUNUIDAuNzM1IDAuMzkgMC43OTUgMC41MSA7Ci0gICAgICAgIFJFQ1QgMC42MzUgMC40NSAwLjc5NSAwLjUxIDsKLSAgICBFTkQKLSAgRU5EIFkKLSAgUElOIEExCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjI2IDAuNzkgMC4zNCAxLjA1IDsKLSAgICAgICAgUkVDVCAwLjI5IDAuNTggMC4zNyAwLjkyIDsKLSAgICBFTkQKLSAgRU5EIEExCi0gIFBJTiBBMAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wNiAwLjYgMC4xNCAxLjEgOwotICAgIEVORAotICBFTkQgQTAKLSAgUElOIEIwCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjg2IDAuNjEgMC45NCAxLjExIDsKLSAgICBFTkQKLSAgRU5EIEIwCi0gIFBJTiBCMQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC42NiAwLjggMC43NCAxLjMgOwotICAgIEVORAotICBFTkQgQjEKLSAgUElOIFZERAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBQT1dFUiA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZERCBWREQhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDEuNjUgMS4yIDEuNzEgOwotICAgIEVORAotICBFTkQgVkRECi0gIFBJTiBWU1MKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgR1JPVU5EIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVlNTIFZTUyEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMC4wMCAxLjIgMC4wNiA7Ci0gICAgRU5ECi0gIEVORCBWU1MKLUVORCBPQUkyMlhMCi0KLU1BQ1JPIERGRlNIUVg0Ci0gIENMQVNTIENPUkUgOwotICBPUklHSU4gMCAwIDsKLSAgRk9SRUlHTiBERkZTSFFYNCAwIDAgOwotICBTSVpFIDUuNiBCWSAxLjcxIDsKLSAgU1lNTUVUUlkgWCBZIDsKLSAgU0lURSBDb3JlU2l0ZSA7Ci0gIFBJTiBDSwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgNS4yODUgMC40NDUgNS4zNjUgMC44OTUgOwotICAgICAgICBSRUNUIDUuMjM1IDAuODE1IDUuMzY1IDAuODk1IDsKLSAgICBFTkQKLSAgRU5EIENLCi0gIFBJTiBECi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCA0LjM4NSAwLjcxNSA0LjQ2NSAwLjg5NSA7Ci0gICAgICAgIFJFQ1QgNC4zODUgMC44MTUgNC43ODUgMC44OTUgOwotICAgIEVORAotICBFTkQgRAotICBQSU4gU04KLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDEuODYgMC4zNTUgMS45MiAwLjkyNSA7Ci0gICAgICAgIFJFQ1QgMS40NDUgMC44NjUgMS45MiAwLjkyNSA7Ci0gICAgICAgIFJFQ1QgMS44NiAwLjYgMS45NCAwLjczIDsKLSAgICAgICAgUkVDVCAxLjg2IDAuMzU1IDIuODEgMC40MTUgOwotICAgICAgICBSRUNUIDIuNzUgMC4zNTUgMi44MSAwLjU3NSA7Ci0gICAgICAgIFJFQ1QgMi43NSAwLjUxNSAzLjA3NSAwLjU3NSA7Ci0gICAgICAgIFJFQ1QgMy4wMTUgMC41MTUgMy4wNzUgMC43IDsKLSAgICBFTkQKLSAgRU5EIFNOCi0gIFBJTiBRCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBPVVRQVVQgOwotICAgIEFOVEVOTkFESUZGQVJFQSAxLjcyODUgIExBWUVSIE1ldGFsMSA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjI2IDAuNiAwLjM2NSAwLjczIDsKLSAgICAgICAgUkVDVCAwLjMwNSAwLjU0IDAuMzY1IDEuNDY1IDsKLSAgICAgICAgUkVDVCAwLjI2IDAuNjcgMC43NzUgMC43MyA7Ci0gICAgICAgIFJFQ1QgMC43MTUgMC41NCAwLjc3NSAxLjQ2NSA7Ci0gICAgRU5ECi0gIEVORCBRCi0gIFBJTiBWREQKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgUE9XRVIgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWREQgVkREISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAxLjY1IDUuNiAxLjcxIDsKLSAgICBFTkQKLSAgRU5EIFZERAotICBQSU4gVlNTCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIEdST1VORCA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZTUyBWU1MhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDAuMDAgNS42IDAuMDYgOwotICAgIEVORAotICBFTkQgVlNTCi1FTkQgREZGU0hRWDQKLQotTUFDUk8gTk9SMlhMCi0gIENMQVNTIENPUkUgOwotICBPUklHSU4gMCAwIDsKLSAgRk9SRUlHTiBOT1IyWEwgMCAwIDsKLSAgU0laRSAwLjYgQlkgMS43MSA7Ci0gIFNZTU1FVFJZIFggWSA7Ci0gIFNJVEUgQ29yZVNpdGUgOwotICBQSU4gWQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gT1VUUFVUIDsKLSAgICBBTlRFTk5BRElGRkFSRUEgMS43Mjg1ICBMQVlFUiBNZXRhbDEgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4yNiAwLjM3IDAuMzIgMC40OSA7Ci0gICAgICAgIFJFQ1QgMC4yNiAwLjQzIDAuNTcgMC40OSA7Ci0gICAgICAgIFJFQ1QgMC41MSAwLjQzIDAuNTcgMS4xNDUgOwotICAgICAgICBSRUNUIDAuNDYgMC45OCAwLjU3IDEuMTQ1IDsKLSAgICBFTkQKLSAgRU5EIFkKLSAgUElOIEEKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDYgMC40MSAwLjE2IDAuNTQgOwotICAgICAgICBSRUNUIDAuMDggMC40MSAwLjE2IDAuODkgOwotICAgIEVORAotICBFTkQgQQotICBQSU4gQgotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4yNiAwLjc5IDAuMzQgMS4wMiA7Ci0gICAgICAgIFJFQ1QgMC4zMyAwLjU5IDAuNDEgMC44NyA7Ci0gICAgRU5ECi0gIEVORCBCCi0gIFBJTiBWREQKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgUE9XRVIgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWREQgVkREISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAxLjY1IDAuNiAxLjcxIDsKLSAgICBFTkQKLSAgRU5EIFZERAotICBQSU4gVlNTCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIEdST1VORCA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZTUyBWU1MhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDAuMDAgMC42IDAuMDYgOwotICAgIEVORAotICBFTkQgVlNTCi1FTkQgTk9SMlhMCi0KLU1BQ1JPIFhOT1IyWDIKLSAgQ0xBU1MgQ09SRSA7Ci0gIE9SSUdJTiAwIDAgOwotICBGT1JFSUdOIFhOT1IyWDIgMCAwIDsKLSAgU0laRSAyLjQgQlkgMS43MSA7Ci0gIFNZTU1FVFJZIFggWSA7Ci0gIFNJVEUgQ29yZVNpdGUgOwotICBQSU4gWQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gT1VUUFVUIDsKLSAgICBBTlRFTk5BRElGRkFSRUEgMS43Mjg1ICBMQVlFUiBNZXRhbDEgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC40NiAwLjU0IDAuNTQgMS4xMiA7Ci0gICAgICAgIFJFQ1QgMC40MiAxLjA0IDAuNTQgMS4xMiA7Ci0gICAgRU5ECi0gIEVORCBZCi0gIFBJTiBCCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAxLjU5IDAuODE1IDIuMDkgMC44OTUgOwotICAgIEVORAotICBFTkQgQgotICBQSU4gQQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC42NCAwLjY4NSAwLjkwNSAwLjg5NSA7Ci0gICAgICAgIFJFQ1QgMC42NCAwLjgxNSAxLjAxIDAuODk1IDsKLSAgICBFTkQKLSAgRU5EIEEKLSAgUElOIFZERAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBQT1dFUiA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZERCBWREQhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDEuNjUgMi40IDEuNzEgOwotICAgIEVORAotICBFTkQgVkRECi0gIFBJTiBWU1MKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgR1JPVU5EIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVlNTIFZTUyEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMC4wMCAyLjQgMC4wNiA7Ci0gICAgRU5ECi0gIEVORCBWU1MKLUVORCBYTk9SMlgyCi0KLU1BQ1JPIElOVlgxCi0gIENMQVNTIENPUkUgOwotICBPUklHSU4gMCAwIDsKLSAgRk9SRUlHTiBJTlZYMSAwIDAgOwotICBTSVpFIDAuNDA1IEJZIDEuNzEgOwotICBTWU1NRVRSWSBYIFkgIDsKLSAgU0lURSBDb3JlU2l0ZSA7Ci0gIFBJTiBZCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBPVVRQVVQgOwotICAgIEFOVEVOTkFESUZGQVJFQSAxLjcyODUgIExBWUVSIE1ldGFsMSA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjI1NSAwLjcyIDAuMzM1IDAuOCA7Ci0gICAgRU5ECi0gIEVORCBZCi0gIFBJTiBBCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjA1NSAwLjcyIDAuMTU1IDAuOCA7Ci0gICAgRU5ECi0gIEVORCBBCi0gIFBJTiBWREQKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgUE9XRVIgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWREQgVkREISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAxLjY1IDAuNDA1IDEuNzEgOwotICAgIEVORAotICBFTkQgVkRECi0gIFBJTiBWU1MKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgR1JPVU5EIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVlNTIFZTUyEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMC4wMCAwLjQwNSAwLjA2IDsKLSAgICBFTkQKLSAgRU5EIFZTUwotRU5EIElOVlgxCi0KLU1BQ1JPIE5BTkQyWDgKLSAgQ0xBU1MgQ09SRSA7Ci0gIE9SSUdJTiAwIDAgOwotICBGT1JFSUdOIE5BTkQyWDggMCAwIDsKLSAgU0laRSAzLjIgQlkgMS43MSA7Ci0gIFNZTU1FVFJZIFggWSA7Ci0gIFNJVEUgQ29yZVNpdGUgOwotICBQSU4gWQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gT1VUUFVUIDsKLSAgICBBTlRFTk5BRElGRkFSRUEgMS43Mjg1ICBMQVlFUiBNZXRhbDEgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4yOTUgMC45OTUgMC4zNTUgMS40NCA7Ci0gICAgICAgIFJFQ1QgMC43MDUgMS4wNSAwLjc2NSAxLjQ0IDsKLSAgICAgICAgUkVDVCAxLjExNSAxLjA1IDEuMTc1IDEuNDQgOwotICAgICAgICBSRUNUIDEuNTI1IDEuMDUgMS41ODUgMS40NCA7Ci0gICAgICAgIFJFQ1QgMS45MzUgMS4wNSAxLjk5NSAxLjQ0IDsKLSAgICAgICAgUkVDVCAyLjM0NSAxLjA1IDIuNDA1IDEuNDQgOwotICAgICAgICBSRUNUIDIuNzU1IDEuMDUgMi44MTUgMS40NCA7Ci0gICAgICAgIFJFQ1QgMC40NyAwLjU0NSAzLjE0IDAuNjA1IDsKLSAgICAgICAgUkVDVCAzLjA2IDAuOTggMy4xNCAxLjExIDsKLSAgICAgICAgUkVDVCAzLjA4IDAuNTQ1IDMuMTQgMS4xMSA7Ci0gICAgICAgIFJFQ1QgMC4yOTUgMS4wNSAzLjE0IDEuMTEgOwotICAgIEVORAotICBFTkQgWQotICBQSU4gQgotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC41MzUgMC44NjUgMC44MSAwLjkyNSA7Ci0gICAgICAgIFJFQ1QgMS40MyAwLjg2NSAxLjU1IDAuOTUgOwotICAgICAgICBSRUNUIDIuMDQ1IDAuODY1IDIuMTY1IDAuOTUgOwotICAgICAgICBSRUNUIDIuNjM1IDAuODE1IDIuNzY1IDAuOTUgOwotICAgICAgICBSRUNUIDAuNzUgMC44OSAyLjc2NSAwLjk1IDsKLSAgICAgICAgUkVDVCAyLjYzNSAwLjgxNSAyLjg3NSAwLjg3NSA7Ci0gICAgRU5ECi0gIEVORCBCCi0gIFBJTiBBCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjIzNSAwLjYyNSAwLjM2NSAwLjc5IDsKLSAgICAgICAgUkVDVCAwLjkxIDAuNzA1IDEuMDMgMC43OSA7Ci0gICAgICAgIFJFQ1QgMS43NzUgMC43MDUgMS44OTUgMC43OSA7Ci0gICAgICAgIFJFQ1QgMC4yMzUgMC43MDUgMi4zMjUgMC43NjUgOwotICAgICAgICBSRUNUIDIuMjY1IDAuNzMgMi41MSAwLjc5IDsKLSAgICBFTkQKLSAgRU5EIEEKLSAgUElOIFZERAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBQT1dFUiA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZERCBWREQhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDEuNjUgMy4yIDEuNzEgOwotICAgIEVORAotICBFTkQgVkRECi0gIFBJTiBWU1MKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgR1JPVU5EIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVlNTIFZTUyEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMC4wMCAzLjIgMC4wNiA7Ci0gICAgRU5ECi0gIEVORCBWU1MKLUVORCBOQU5EMlg4Ci0KLU1BQ1JPIFNERkZRWDQKLSAgQ0xBU1MgQ09SRSA7Ci0gIE9SSUdJTiAwIDAgOwotICBGT1JFSUdOIFNERkZRWDQgMCAwIDsKLSAgU0laRSA1LjQgQlkgMS43MSA7Ci0gIFNZTU1FVFJZIFggWSA7Ci0gIFNJVEUgQ29yZVNpdGUgOwotICBQSU4gU0UKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDQuNTE1IDAuNjQ1IDQuNTc1IDAuOTg1IDsKLSAgICAgICAgUkVDVCA0LjQ1NSAwLjkyNSA0LjU3NSAwLjk4NSA7Ci0gICAgICAgIFJFQ1QgNS4wMzUgMC42MjUgNS4xNjUgMC43MDUgOwotICAgICAgICBSRUNUIDQuNTE1IDAuNjQ1IDUuMTY1IDAuNzA1IDsKLSAgICBFTkQKLSAgRU5EIFNFCi0gIFBJTiBTSQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgNC44MzUgMC44MDUgNC45NCAxLjAxNSA7Ci0gICAgICAgIFJFQ1QgNC44MzUgMC44MDUgNS4yMDUgMC44OTUgOwotICAgIEVORAotICBFTkQgU0kKLSAgUElOIEQKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDQuMDA1IDAuNzU1IDQuMTY1IDAuODk1IDsKLSAgICAgICAgUkVDVCA0LjA4NSAwLjc1NSA0LjE2NSAwLjk4NSA7Ci0gICAgICAgIFJFQ1QgNC4wMDUgMC43NTUgNC4zNTUgMC44NzUgOwotICAgIEVORAotICBFTkQgRAotICBQSU4gQ0sKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMjMgMC42NSAwLjMxIDAuOTcgOwotICAgICAgICBSRUNUIDAuMjYgMC41IDAuMzQgMC43MyA7Ci0gICAgRU5ECi0gIEVORCBDSwotICBQSU4gUQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gT1VUUFVUIDsKLSAgICBBTlRFTk5BRElGRkFSRUEgMS43Mjg1ICBMQVlFUiBNZXRhbDEgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC40NiAwLjYgMC41NyAwLjczIDsKLSAgICAgICAgUkVDVCAwLjUxIDAuNTcgMC41NyAxLjI5IDsKLSAgICAgICAgUkVDVCAwLjQ4IDAuNTcgMC42IDAuNjYgOwotICAgICAgICBSRUNUIDAuNDYgMC42IDAuOTM1IDAuNjYgOwotICAgICAgICBSRUNUIDAuODc1IDAuNTcgMC45MzUgMC45NDUgOwotICAgICAgICBSRUNUIDAuOTIgMC44ODUgMC45OCAxLjI5IDsKLSAgICAgICAgUkVDVCAwLjg3NSAwLjU3IDEuMDcgMC42MyA7Ci0gICAgRU5ECi0gIEVORCBRCi0gIFBJTiBWREQKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgUE9XRVIgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWREQgVkREISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAxLjY1IDUuNCAxLjcxIDsKLSAgICBFTkQKLSAgRU5EIFZERAotICBQSU4gVlNTCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIEdST1VORCA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZTUyBWU1MhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDAuMDAgNS40IDAuMDYgOwotICAgIEVORAotICBFTkQgVlNTCi1FTkQgU0RGRlFYNAotCi1NQUNSTyBTREZGWEwKLSAgQ0xBU1MgQ09SRSA7Ci0gIE9SSUdJTiAwIDAgOwotICBGT1JFSUdOIFNERkZYTCAwIDAgOwotICBTSVpFIDUuOCBCWSAxLjcxIDsKLSAgU1lNTUVUUlkgWCBZIDsKLSAgU0lURSBDb3JlU2l0ZSA7Ci0gIFBJTiBRCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBPVVRQVVQgOwotICAgIEFOVEVOTkFESUZGQVJFQSAxLjcyODUgIExBWUVSIE1ldGFsMSA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjg2IDAuNTQgMC45NCAxLjIxIDsKLSAgICAgICAgUkVDVCAxLjAzNSAwLjUgMS4xMTUgMC42MiA7Ci0gICAgICAgIFJFQ1QgMC44NiAwLjU0IDEuMTE1IDAuNjIgOwotICAgIEVORAotICBFTkQgUQotICBQSU4gUU4KLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIE9VVFBVVCA7Ci0gICAgQU5URU5OQURJRkZBUkVBIDEuNzI4NSAgTEFZRVIgTWV0YWwxIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDYgMC40MSAwLjMwNSAwLjYzNSA7Ci0gICAgICAgIFJFQ1QgMC4yMjUgMC40MSAwLjMwNSAxLjAyIDsKLSAgICBFTkQKLSAgRU5EIFFOCi0gIFBJTiBTRQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgNC43OCAwLjgzNSA0Ljg0IDEuMDEgOwotICAgICAgICBSRUNUIDQuOCAwLjU4NSA0Ljg2IDAuODk1IDsKLSAgICAgICAgUkVDVCA0LjggMC41ODUgNS4xMDUgMC43MDUgOwotICAgICAgICBSRUNUIDUuMzI1IDAuNTg1IDUuMzg1IDAuNzA1IDsKLSAgICAgICAgUkVDVCA0LjggMC42MjUgNS4zODUgMC43MDUgOwotICAgIEVORAotICBFTkQgU0UKLSAgUElOIFNJCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCA0Ljk2IDAuODA1IDUuMzg1IDAuODk1IDsKLSAgICAgICAgUkVDVCA1LjIzNSAwLjgwNSA1LjM4NSAwLjk2IDsKLSAgICBFTkQKLSAgRU5EIFNJCi0gIFBJTiBECi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCA0LjI2IDAuNjggNC4zNCAwLjk2IDsKLSAgICAgICAgUkVDVCA0LjI2IDAuNzg1IDQuNTIgMC45MiA7Ci0gICAgICAgIFJFQ1QgNC40NCAwLjc4NSA0LjUyIDAuOTYgOwotICAgIEVORAotICBFTkQgRAotICBQSU4gQ0sKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDEuMjg1IDAuODggMS4zNjUgMS4wODUgOwotICAgICAgICBSRUNUIDEuMDQgMS4wMDUgMS4zNjUgMS4wODUgOwotICAgICAgICBSRUNUIDEuMjg1IDAuODggMS40MTUgMC45NiA7Ci0gICAgRU5ECi0gIEVORCBDSwotICBQSU4gVkRECi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIFBPV0VSIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVkREIFZERCEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMS42NSA1LjggMS43MSA7Ci0gICAgRU5ECi0gIEVORCBWREQKLSAgUElOIFZTUwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBHUk9VTkQgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWU1MgVlNTISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAwLjAwIDUuOCAwLjA2IDsKLSAgICBFTkQKLSAgRU5EIFZTUwotRU5EIFNERkZYTAotCi1NQUNSTyBDTEtCVUZYMjAKLSAgQ0xBU1MgQ09SRSA7Ci0gIE9SSUdJTiAwIDAgOwotICBGT1JFSUdOIENMS0JVRlgyMCAwIDAgOwotICBTSVpFIDQuOCBCWSAxLjcxIDsKLSAgU1lNTUVUUlkgWCBZIDsKLSAgU0lURSBDb3JlU2l0ZSA7Ci0gIFBJTiBZCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBPVVRQVVQgOwotICAgIEFOVEVOTkFESUZGQVJFQSAxLjcyODUgIExBWUVSIE1ldGFsMSA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjA2IDAuMzU1IDAuMTMgMS4zNiA7Ci0gICAgICAgIFJFQ1QgMC4wNiAwLjU5NSAwLjE0IDAuOTc1IDsKLSAgICAgICAgUkVDVCAwLjQ4IDAuMzU1IDAuNTQgMC42NTUgOwotICAgICAgICBSRUNUIDAuNDggMC45MTUgMC41NCAxLjM2IDsKLSAgICAgICAgUkVDVCAwLjg5IDAuMzU1IDAuOTUgMC42NTUgOwotICAgICAgICBSRUNUIDAuODkgMC45MTUgMC45NSAxLjM2IDsKLSAgICAgICAgUkVDVCAxLjMgMC4zNTUgMS4zNiAwLjY1NSA7Ci0gICAgICAgIFJFQ1QgMS4zIDAuOTE1IDEuMzYgMS4zNiA7Ci0gICAgICAgIFJFQ1QgMS43MSAwLjM1NSAxLjc3IDAuNjU1IDsKLSAgICAgICAgUkVDVCAxLjcxIDAuOTE1IDEuNzcgMS4zNiA7Ci0gICAgICAgIFJFQ1QgMi4xMiAwLjM1NSAyLjE4IDAuNjU1IDsKLSAgICAgICAgUkVDVCAyLjEyIDAuOTE1IDIuMTggMS4zNiA7Ci0gICAgICAgIFJFQ1QgMi41MyAwLjM1NSAyLjU5IDAuNjU1IDsKLSAgICAgICAgUkVDVCAyLjUzIDAuOTE1IDIuNTkgMS4zNiA7Ci0gICAgICAgIFJFQ1QgMi45NCAwLjM1NSAzIDAuNjU1IDsKLSAgICAgICAgUkVDVCAyLjk0IDAuOTE1IDMgMS4zNiA7Ci0gICAgICAgIFJFQ1QgMC4wNiAwLjkxNSAzLjQxIDAuOTc1IDsKLSAgICAgICAgUkVDVCAzLjM1IDAuMzU1IDMuNDEgMC42NTUgOwotICAgICAgICBSRUNUIDAuMDYgMC41OTUgMy40MSAwLjY1NSA7Ci0gICAgICAgIFJFQ1QgMy4zNSAwLjkxNSAzLjQxIDEuMzYgOwotICAgIEVORAotICBFTkQgWQotICBQSU4gQQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMy44NzUgMC44MTUgNC4zNzUgMC44OTUgOwotICAgIEVORAotICBFTkQgQQotICBQSU4gVkRECi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIFBPV0VSIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVkREIFZERCEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMS42NSA0LjggMS43MSA7Ci0gICAgRU5ECi0gIEVORCBWREQKLSAgUElOIFZTUwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBHUk9VTkQgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWU1MgVlNTISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAwLjAwIDQuOCAwLjA2IDsKLSAgICBFTkQKLSAgRU5EIFZTUwotRU5EIENMS0JVRlgyMAotCi1NQUNSTyBPQUkyQkIyWDIKLSAgQ0xBU1MgQ09SRSA7Ci0gIE9SSUdJTiAwIDAgOwotICBGT1JFSUdOIE9BSTJCQjJYMiAwIDAgOwotICBTSVpFIDMuMiBCWSAxLjcxIDsKLSAgU1lNTUVUUlkgWCBZIDsKLSAgU0lURSBDb3JlU2l0ZSA7Ci0gIFBJTiBZCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBPVVRQVVQgOwotICAgIEFOVEVOTkFESUZGQVJFQSAxLjcyODUgIExBWUVSIE1ldGFsMSA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAxLjQzNSAxLjAwNSAxLjU2NSAxLjA4NSA7Ci0gICAgICAgIFJFQ1QgMS42NCAxLjAyNSAxLjcgMS40NTUgOwotICAgICAgICBSRUNUIDEuNDM1IDEuMDI1IDIuMTM1IDEuMDg1IDsKLSAgICAgICAgUkVDVCAyLjA3NSAwLjU4IDIuMTM1IDEuMjY1IDsKLSAgICAgICAgUkVDVCAyLjI4IDAuNCAyLjM0IDAuNjQgOwotICAgICAgICBSRUNUIDIuMjggMC40IDIuNCAwLjQ2IDsKLSAgICAgICAgUkVDVCAyLjA3NSAxLjIwNSAyLjUzIDEuMjY1IDsKLSAgICAgICAgUkVDVCAyLjQ3IDEuMjA1IDIuNTMgMS4zMjUgOwotICAgICAgICBSRUNUIDIuNjc1IDAuNCAyLjczNSAwLjY0IDsKLSAgICAgICAgUkVDVCAyLjA3NSAwLjU4IDIuNzM1IDAuNjQgOwotICAgICAgICBSRUNUIDIuNjc1IDAuNCAyLjgxIDAuNDYgOwotICAgIEVORAotICBFTkQgWQotICBQSU4gQjEKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDIuNDY1IDAuODE1IDIuODQgMC44OTUgOwotICAgICAgICBSRUNUIDIuNjM1IDAuNzQgMi44NCAwLjk0NSA7Ci0gICAgRU5ECi0gIEVORCBCMQotICBQSU4gQjAKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDIuMjM1IDAuNzc1IDIuMjk1IDEuMTA1IDsKLSAgICAgICAgUkVDVCAyLjIzNSAwLjgxNSAyLjM2NSAwLjg5NSA7Ci0gICAgICAgIFJFQ1QgMi45NCAwLjg3IDMgMS4xMDUgOwotICAgICAgICBSRUNUIDIuMjM1IDEuMDQ1IDMgMS4xMDUgOwotICAgIEVORAotICBFTkQgQjAKLSAgUElOIEEwTgotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC42NDUgMC42MjUgMC43MjUgMC44OTUgOwotICAgICAgICBSRUNUIDAuNDE1IDAuODE1IDAuNzI1IDAuODk1IDsKLSAgICBFTkQKLSAgRU5EIEEwTgotICBQSU4gQTFOCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjIzNSAwLjYyNSAwLjMxNSAwLjg5NSA7Ci0gICAgICAgIFJFQ1QgMC4yMzUgMC42MjUgMC41NDUgMC43MDUgOwotICAgIEVORAotICBFTkQgQTFOCi0gIFBJTiBWREQKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgUE9XRVIgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWREQgVkREISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAxLjY1IDMuMiAxLjcxIDsKLSAgICBFTkQKLSAgRU5EIFZERAotICBQSU4gVlNTCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIEdST1VORCA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZTUyBWU1MhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDAuMDAgMy4yIDAuMDYgOwotICAgIEVORAotICBFTkQgVlNTCi1FTkQgT0FJMkJCMlgyCi0KLU1BQ1JPIEZJTEwzMgotICBDTEFTUyBDT1JFIDsKLSAgT1JJR0lOIDAgMCA7Ci0gIEZPUkVJR04gRklMTDMyIDAgMCA7Ci0gIFNJWkUgNi40IEJZIDEuNzEgOwotICBTWU1NRVRSWSBYIFkgOwotICBTSVRFIENvcmVTaXRlIDsKLSAgUElOIFZERAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBQT1dFUiA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZERCBWREQhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDEuNjUgNi40IDEuNzEgOwotICAgIEVORAotICBFTkQgVkRECi0gIFBJTiBWU1MKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgR1JPVU5EIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVlNTIFZTUyEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMC4wMCA2LjQgMC4wNiA7Ci0gICAgRU5ECi0gIEVORCBWU1MKLUVORCBGSUxMMzIKLQotTUFDUk8gT0FJMzNYMQotICBDTEFTUyBDT1JFIDsKLSAgT1JJR0lOIDAgMCA7Ci0gIEZPUkVJR04gT0FJMzNYMSAwIDAgOwotICBTSVpFIDEuNiBCWSAxLjcxIDsKLSAgU1lNTUVUUlkgWCBZIDsKLSAgU0lURSBDb3JlU2l0ZSA7Ci0gIFBJTiBZCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBPVVRQVVQgOwotICAgIEFOVEVOTkFESUZGQVJFQSAxLjcyODUgIExBWUVSIE1ldGFsMSA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjc4NSAxLjIxIDAuODQ1IDEuNDYgOwotICAgICAgICBSRUNUIDAuOTkgMC4zNyAxLjA1IDAuNTEgOwotICAgICAgICBSRUNUIDEuNCAwLjM3IDEuNSAwLjUxIDsKLSAgICAgICAgUkVDVCAwLjk5IDAuNDUgMS41IDAuNTEgOwotICAgICAgICBSRUNUIDEuNDQgMC4zNyAxLjUgMS4yNyA7Ci0gICAgICAgIFJFQ1QgMS40NCAwLjk4IDEuNTQgMS4yNyA7Ci0gICAgICAgIFJFQ1QgMC43ODUgMS4yMSAxLjU0IDEuMjcgOwotICAgIEVORAotICBFTkQgWQotICBQSU4gQTEKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuNDYgMC42MSAwLjU0IDEuMTEgOwotICAgIEVORAotICBFTkQgQTEKLSAgUElOIEIyCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjg2IDAuNjEgMC45NCAxLjExIDsKLSAgICBFTkQKLSAgRU5EIEIyCi0gIFBJTiBBMAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4yNiAwLjYxIDAuMzQgMS4xMSA7Ci0gICAgRU5ECi0gIEVORCBBMAotICBQSU4gQTIKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuNjYgMC42MSAwLjc0IDEuMTEgOwotICAgIEVORAotICBFTkQgQTIKLSAgUElOIEIxCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAxLjA2IDAuNjEgMS4xNCAxLjExIDsKLSAgICBFTkQKLSAgRU5EIEIxCi0gIFBJTiBCMAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMS4yNiAwLjYxIDEuMzQgMS4xMSA7Ci0gICAgRU5ECi0gIEVORCBCMAotICBQSU4gVkRECi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIFBPV0VSIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVkREIFZERCEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMS42NSAxLjYgMS43MSA7Ci0gICAgRU5ECi0gIEVORCBWREQKLSAgUElOIFZTUwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBHUk9VTkQgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWU1MgVlNTISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAwLjAwIDEuNiAwLjA2IDsKLSAgICBFTkQKLSAgRU5EIFZTUwotRU5EIE9BSTMzWDEKLQotTUFDUk8gU0RGRlRSWDQKLSAgQ0xBU1MgQ09SRSA7Ci0gIE9SSUdJTiAwIDAgOwotICBGT1JFSUdOIFNERkZUUlg0IDAgMCA7Ci0gIFNJWkUgNy42IEJZIDEuNzEgOwotICBTWU1NRVRSWSBYIFkgOwotICBTSVRFIENvcmVTaXRlIDsKLSAgUElOIFFOCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBPVVRQVVQgOwotICAgIEFOVEVOTkFESUZGQVJFQSAxLjcyODUgIExBWUVSIE1ldGFsMSA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCA2LjI3IDAuNDg1IDYuMzQgMS4yOSA7Ci0gICAgICAgIFJFQ1QgNi4yNiAwLjc5IDYuMzQgMS4yOSA7Ci0gICAgICAgIFJFQ1QgNi4yNiAwLjkgNi43NSAwLjk2IDsKLSAgICAgICAgUkVDVCA2LjY5IDAuOSA2Ljc1IDEuMjkgOwotICAgICAgICBSRUNUIDYuMjcgMC40ODUgNi44NiAwLjU0NSA7Ci0gICAgRU5ECi0gIEVORCBRTgotICBQSU4gUQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gT1VUUFVUIDsKLSAgICBBTlRFTk5BRElGRkFSRUEgMS43Mjg1ICBMQVlFUiBNZXRhbDEgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgNS40NiAwLjc5IDUuNTIgMS4yOSA7Ci0gICAgICAgIFJFQ1QgNS40OCAwLjQ4NSA1LjU0IDAuOTYgOwotICAgICAgICBSRUNUIDUuNDYgMC45IDUuOTMgMC45NiA7Ci0gICAgICAgIFJFQ1QgNS4zMyAwLjQ4NSA1LjkyIDAuNTQ1IDsKLSAgICAgICAgUkVDVCA1Ljg3IDAuOSA1LjkzIDEuMjkgOwotICAgIEVORAotICBFTkQgUQotICBQSU4gQ0sKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDIuMjQgMC41MjUgMi4zMiAwLjg3IDsKLSAgICAgICAgUkVDVCAyLjI2IDAuNzkgMi4zNCAxLjAwNSA7Ci0gICAgRU5ECi0gIEVORCBDSwotICBQSU4gU0kKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDEuOTk1IDAuNTI1IDIuMDc1IDAuODcgOwotICAgICAgICBSRUNUIDIuMDYgMC43OSAyLjE0IDAuOTYgOwotICAgIEVORAotICBFTkQgU0kKLSAgUElOIFNFCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjk0NSAwLjYyNSAxLjE2NSAwLjkxIDsKLSAgICAgICAgUkVDVCAwLjg3IDAuODE1IDEuMTY1IDAuOTEgOwotICAgIEVORAotICBFTkQgU0UKLSAgUElOIFJOCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjYzNSAwLjYyNSAwLjc3IDAuNzQ1IDsKLSAgICAgICAgUkVDVCAwLjY5IDAuNjI1IDAuNzcgMS4wNyA7Ci0gICAgRU5ECi0gIEVORCBSTgotICBQSU4gRAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wNiAwLjc5IDAuMTQgMC45MiA7Ci0gICAgICAgIFJFQ1QgMC4yOTUgMC42NTUgMC4zNzUgMC44NyA7Ci0gICAgICAgIFJFQ1QgMC4wNiAwLjc5IDAuMzc1IDAuODcgOwotICAgIEVORAotICBFTkQgRAotICBQSU4gVkRECi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIFBPV0VSIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVkREIFZERCEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMS42NSA3LjYgMS43MSA7Ci0gICAgRU5ECi0gIEVORCBWREQKLSAgUElOIFZTUwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBHUk9VTkQgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWU1MgVlNTISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAwLjAwIDcuNiAwLjA2IDsKLSAgICBFTkQKLSAgRU5EIFZTUwotRU5EIFNERkZUUlg0Ci0KLU1BQ1JPIE5PUjJCWEwKLSAgQ0xBU1MgQ09SRSA7Ci0gIE9SSUdJTiAwIDAgOwotICBGT1JFSUdOIE5PUjJCWEwgMCAwIDsKLSAgU0laRSAxIEJZIDEuNzEgOwotICBTWU1NRVRSWSBYIFkgOwotICBTSVRFIENvcmVTaXRlIDsKLSAgUElOIFkKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIE9VVFBVVCA7Ci0gICAgQU5URU5OQURJRkZBUkVBIDEuNzI4NSAgTEFZRVIgTWV0YWwxIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDggMC40OCAwLjE0IDEuMyA7Ci0gICAgICAgIFJFQ1QgMC4wNiAxLjE3IDAuMTQgMS4zIDsKLSAgICAgICAgUkVDVCAwLjA2IDEuMjQgMC4yOSAxLjMgOwotICAgICAgICBSRUNUIDAuMjMgMS4yNCAwLjI5IDEuMzYgOwotICAgICAgICBSRUNUIDAuMzM1IDAuMjg1IDAuMzk1IDAuNTQgOwotICAgICAgICBSRUNUIDAuMDggMC40OCAwLjM5NSAwLjU0IDsKLSAgICBFTkQKLSAgRU5EIFkKLSAgUElOIEFOCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjQ2IDAuOTggMC41NCAxLjExIDsKLSAgICAgICAgUkVDVCAwLjU2NSAwLjcxNSAwLjY0NSAxLjA2IDsKLSAgICAgICAgUkVDVCAwLjQ2IDAuOTggMC42NDUgMS4wNiA7Ci0gICAgRU5ECi0gIEVORCBBTgotICBQSU4gQgotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4yNiAwLjY0IDAuMzQgMS4xNCA7Ci0gICAgRU5ECi0gIEVORCBCCi0gIFBJTiBWREQKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgUE9XRVIgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWREQgVkREISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAxLjY1IDEgMS43MSA7Ci0gICAgRU5ECi0gIEVORCBWREQKLSAgUElOIFZTUwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBHUk9VTkQgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWU1MgVlNTISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAwLjAwIDEgMC4wNiA7Ci0gICAgRU5ECi0gIEVORCBWU1MKLUVORCBOT1IyQlhMCi0KLU1BQ1JPIE1YSTJYMQotICBDTEFTUyBDT1JFIDsKLSAgT1JJR0lOIDAgMCA7Ci0gIEZPUkVJR04gTVhJMlgxIDAgMCA7Ci0gIFNJWkUgMS42IEJZIDEuNzEgOwotICBTWU1NRVRSWSBYIFkgOwotICBTSVRFIENvcmVTaXRlIDsKLSAgUElOIFkKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIE9VVFBVVCA7Ci0gICAgQU5URU5OQURJRkZBUkVBIDEuNzI4NSAgTEFZRVIgTWV0YWwxIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuNjYgMC40ODUgMC43MiAxLjM2NSA7Ci0gICAgICAgIFJFQ1QgMC42NiAwLjc5IDAuNzQgMC45MiA7Ci0gICAgICAgIFJFQ1QgMC42NiAwLjQ4NSAwLjg1NSAwLjU0NSA7Ci0gICAgRU5ECi0gIEVORCBZCi0gIFBJTiBTMAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC41IDAuMzI1IDAuNTYgMC45MzUgOwotICAgICAgICBSRUNUIDAuNSAwLjMyNSAxLjAxNSAwLjM4NSA7Ci0gICAgICAgIFJFQ1QgMC45NTUgMC4zMjUgMS4wMTUgMC43MDUgOwotICAgICAgICBSRUNUIDAuODMgMC42NDUgMS4zNjUgMC43MDUgOwotICAgICAgICBSRUNUIDEuMTYgMC42MjUgMS4zNjUgMC43MTUgOwotICAgIEVORAotICBFTkQgUzAKLSAgUElOIEIKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDEgMC44MTUgMS4xNCAwLjk4NSA7Ci0gICAgICAgIFJFQ1QgMSAwLjgxNSAxLjQxIDAuODk1IDsKLSAgICBFTkQKLSAgRU5EIEIKLSAgUElOIEEKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMjYgMC41MzUgMC4zNCAxLjAzNSA7Ci0gICAgRU5ECi0gIEVORCBBCi0gIFBJTiBWREQKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgUE9XRVIgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWREQgVkREISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAxLjY1IDEuNiAxLjcxIDsKLSAgICBFTkQKLSAgRU5EIFZERAotICBQSU4gVlNTCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIEdST1VORCA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZTUyBWU1MhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDAuMDAgMS42IDAuMDYgOwotICAgIEVORAotICBFTkQgVlNTCi1FTkQgTVhJMlgxCi0KLU1BQ1JPIE5PUjRCQlgxCi0gIENMQVNTIENPUkUgOwotICBPUklHSU4gMCAwIDsKLSAgRk9SRUlHTiBOT1I0QkJYMSAwIDAgOwotICBTSVpFIDEuOCBCWSAxLjcxIDsKLSAgU1lNTUVUUlkgWCBZIDsKLSAgU0lURSBDb3JlU2l0ZSA7Ci0gIFBJTiBZCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBPVVRQVVQgOwotICAgIEFOVEVOTkFESUZGQVJFQSAxLjcyODUgIExBWUVSIE1ldGFsMSA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjQ2NSAxLjM0NSAwLjUyNSAxLjQ2NSA7Ci0gICAgICAgIFJFQ1QgMC41OTUgMC40NjUgMC43MTUgMC41MjUgOwotICAgICAgICBSRUNUIDAuNjY1IDAuNDg1IDEuMTIgMC41NDUgOwotICAgICAgICBSRUNUIDEuMDYgMC40MjUgMS4xMiAxLjQwNSA7Ci0gICAgICAgIFJFQ1QgMC40NjUgMS4zNDUgMS4xMiAxLjQwNSA7Ci0gICAgICAgIFJFQ1QgMS4wNiAwLjk4IDEuMTQgMS4xMSA7Ci0gICAgRU5ECi0gIEVORCBZCi0gIFBJTiBECi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjQ2IDAuODQ1IDAuNTQgMS4yNDUgOwotICAgICAgICBSRUNUIDAuNDk1IDAuODA1IDAuNiAwLjkyNSA7Ci0gICAgRU5ECi0gIEVORCBECi0gIFBJTiBDCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjcgMC44MDUgMC43OCAxLjA2IDsKLSAgICAgICAgUkVDVCAwLjcgMC45OCAwLjk0IDEuMDYgOwotICAgICAgICBSRUNUIDAuODYgMC45OCAwLjk0IDEuMTQ1IDsKLSAgICBFTkQKLSAgRU5EIEMKLSAgUElOIEFOCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAxLjI0IDAuODE1IDEuNTY1IDEuMDcgOwotICAgIEVORAotICBFTkQgQU4KLSAgUElOIEJOCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjA2IDAuNDEgMC4xNCAwLjU0IDsKLSAgICAgICAgUkVDVCAwLjA4IDAuNDYgMC4xNiAwLjg5IDsKLSAgICBFTkQKLSAgRU5EIEJOCi0gIFBJTiBWREQKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgUE9XRVIgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWREQgVkREISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAxLjY1IDEuOCAxLjcxIDsKLSAgICBFTkQKLSAgRU5EIFZERAotICBQSU4gVlNTCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIEdST1VORCA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZTUyBWU1MhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDAuMDAgMS44IDAuMDYgOwotICAgIEVORAotICBFTkQgVlNTCi1FTkQgTk9SNEJCWDEKLQotTUFDUk8gQ0xLSU5WWDIKLSAgQ0xBU1MgQ09SRSA7Ci0gIE9SSUdJTiAwIDAgOwotICBGT1JFSUdOIENMS0lOVlgyIDAgMCA7Ci0gIFNJWkUgMC44IEJZIDEuNzEgOwotICBTWU1NRVRSWSBYIFkgOwotICBTSVRFIENvcmVTaXRlIDsKLSAgUElOIFkKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIE9VVFBVVCA7Ci0gICAgQU5URU5OQURJRkZBUkVBIDEuNzI4NSAgTEFZRVIgTWV0YWwxIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuNDYgMC41MiAwLjU0IDEuMjkgOwotICAgIEVORAotICBFTkQgWQotICBQSU4gQQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wNiAwLjYgMC4xNCAwLjc2IDsKLSAgICAgICAgUkVDVCAwLjA2IDAuNjggMC4zNiAwLjc2IDsKLSAgICAgICAgUkVDVCAwLjI4IDAuNiAwLjM2IDAuOCA7Ci0gICAgRU5ECi0gIEVORCBBCi0gIFBJTiBWREQKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgUE9XRVIgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWREQgVkREISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAxLjY1IDAuOCAxLjcxIDsKLSAgICBFTkQKLSAgRU5EIFZERAotICBQSU4gVlNTCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIEdST1VORCA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZTUyBWU1MhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDAuMDAgMC44IDAuMDYgOwotICAgIEVORAotICBFTkQgVlNTCi1FTkQgQ0xLSU5WWDIKLQotTUFDUk8gU0RGRlFYMgotICBDTEFTUyBDT1JFIDsKLSAgT1JJR0lOIDAgMCA7Ci0gIEZPUkVJR04gU0RGRlFYMiAwIDAgOwotICBTSVpFIDQuOCBCWSAxLjcxIDsKLSAgU1lNTUVUUlkgWCBZIDsKLSAgU0lURSBDb3JlU2l0ZSA7Ci0gIFBJTiBRCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBPVVRQVVQgOwotICAgIEFOVEVOTkFESUZGQVJFQSAxLjcyODUgIExBWUVSIE1ldGFsMSA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjI2IDAuNiAwLjM2NSAwLjczIDsKLSAgICAgICAgUkVDVCAwLjMwNSAwLjM3IDAuMzY1IDEuMjkgOwotICAgIEVORAotICBFTkQgUQotICBQSU4gU0UKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDMuNzUgMC43ODUgMy44MSAwLjk2IDsKLSAgICAgICAgUkVDVCAzLjc3NSAwLjY0NSAzLjgzNSAwLjg0NSA7Ci0gICAgICAgIFJFQ1QgNC4wMzUgMC42MjUgNC4xNjUgMC43MDUgOwotICAgICAgICBSRUNUIDMuNzc1IDAuNjQ1IDQuNDggMC43MDUgOwotICAgIEVORAotICBFTkQgU0UKLSAgUElOIFNJCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCA0LjIgMC44MDUgNC42MSAwLjg5NSA7Ci0gICAgICAgIFJFQ1QgNC40MzUgMC44MDUgNC42MSAwLjk3NSA7Ci0gICAgRU5ECi0gIEVORCBTSQotICBQSU4gRAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMy4yNiAwLjYyNSAzLjM0IDAuOTc1IDsKLSAgICAgICAgUkVDVCAzLjI2IDAuNzkgMy40OSAwLjkyIDsKLSAgICBFTkQKLSAgRU5EIEQKLSAgUElOIENLCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjY2IDAuNjEgMC43NCAxLjExIDsKLSAgICBFTkQKLSAgRU5EIENLCi0gIFBJTiBWREQKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgUE9XRVIgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWREQgVkREISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAxLjY1IDQuOCAxLjcxIDsKLSAgICBFTkQKLSAgRU5EIFZERAotICBQSU4gVlNTCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIEdST1VORCA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZTUyBWU1MhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDAuMDAgNC44IDAuMDYgOwotICAgIEVORAotICBFTkQgVlNTCi1FTkQgU0RGRlFYMgotCi1NQUNSTyBBT0kyMlgxCi0gIENMQVNTIENPUkUgOwotICBPUklHSU4gMCAwIDsKLSAgRk9SRUlHTiBBT0kyMlgxIDAgMCA7Ci0gIFNJWkUgMS40IEJZIDEuNzEgOwotICBTWU1NRVRSWSBYIFkgOwotICBTSVRFIENvcmVTaXRlIDsKLSAgUElOIFkKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIE9VVFBVVCA7Ci0gICAgQU5URU5OQURJRkZBUkVBIDEuNzI4NSAgTEFZRVIgTWV0YWwxIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuNjggMC4zNyAwLjc0IDEuMTEgOwotICAgICAgICBSRUNUIDAuNjYgMC45OCAwLjc0IDEuMTEgOwotICAgICAgICBSRUNUIDAuNjYgMS4wNSAwLjk5NSAxLjExIDsKLSAgICAgICAgUkVDVCAwLjkzNSAxLjA1IDAuOTk1IDEuMTkgOwotICAgIEVORAotICBFTkQgWQotICBQSU4gQTAKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMjYgMC42IDAuMzQgMS4xIDsKLSAgICBFTkQKLSAgRU5EIEEwCi0gIFBJTiBCMAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMS4wNiAwLjQ1IDEuMTQgMC45NSA7Ci0gICAgRU5ECi0gIEVORCBCMAotICBQSU4gQjEKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuODYgMC40MSAwLjk0IDAuOTEgOwotICAgIEVORAotICBFTkQgQjEKLSAgUElOIEExCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjQ2IDAuMjIgMC41NCAwLjM1IDsKLSAgICAgICAgUkVDVCAwLjQ4IDAuMjcgMC41NiAwLjcgOwotICAgIEVORAotICBFTkQgQTEKLSAgUElOIFZERAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBQT1dFUiA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZERCBWREQhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDEuNjUgMS40IDEuNzEgOwotICAgIEVORAotICBFTkQgVkRECi0gIFBJTiBWU1MKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgR1JPVU5EIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVlNTIFZTUyEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMC4wMCAxLjQgMC4wNiA7Ci0gICAgRU5ECi0gIEVORCBWU1MKLUVORCBBT0kyMlgxCi0KLU1BQ1JPIFRMQVROVFNDQVgyMAotICBDTEFTUyBDT1JFIDsKLSAgT1JJR0lOIDAgMCA7Ci0gIEZPUkVJR04gVExBVE5UU0NBWDIwIDAgMCA7Ci0gIFNJWkUgOC44IEJZIDEuNzEgOwotICBTWU1NRVRSWSBYIFkgOwotICBTSVRFIENvcmVTaXRlIDsKLSAgUElOIEVDSwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gT1VUUFVUIDsKLSAgICBBTlRFTk5BRElGRkFSRUEgMS43Mjg1ICBMQVlFUiBNZXRhbDEgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgNS4yNiAwLjM1NSA1LjMyIDEuMzYgOwotICAgICAgICBSRUNUIDUuMjYgMC43NiA1LjM0IDEuMzYgOwotICAgICAgICBSRUNUIDUuNjcgMC4zNTUgNS43MyAxLjM2IDsKLSAgICAgICAgUkVDVCA2LjAzNSAwLjYgNi4wOTUgMC44MiA7Ci0gICAgICAgIFJFQ1QgNi4wOCAwLjM1NSA2LjE0IDAuNjYgOwotICAgICAgICBSRUNUIDYuMDggMC43NiA2LjE0IDEuMzYgOwotICAgICAgICBSRUNUIDYuNDkgMC4zNTUgNi41NSAxLjM2IDsKLSAgICAgICAgUkVDVCA2LjkgMC4zNTUgNi45NiAxLjM2IDsKLSAgICAgICAgUkVDVCA3LjMxIDAuMzU1IDcuMzcgMS4zNiA7Ci0gICAgICAgIFJFQ1QgNy43MiAwLjM1NSA3Ljc4IDEuMzYgOwotICAgICAgICBSRUNUIDguMTMgMC4zNTUgOC4xOSAxLjM2IDsKLSAgICAgICAgUkVDVCA1LjI2IDAuNzYgOC42IDAuODIgOwotICAgICAgICBSRUNUIDguNDk1IDAuNiA4LjU1NSAwLjgyIDsKLSAgICAgICAgUkVDVCA4LjU0IDAuMzU1IDguNiAwLjY2IDsKLSAgICAgICAgUkVDVCA4LjU0IDAuNzYgOC42IDEuMzU1IDsKLSAgICBFTkQKLSAgRU5EIEVDSwotICBQSU4gQ0sKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuNzQgMC42NyAwLjk2NSAwLjg5NSA7Ci0gICAgICAgIFJFQ1QgMC42OTUgMC44MTUgMS4wNSAwLjg5NSA7Ci0gICAgRU5ECi0gIEVORCBDSwotICBQSU4gU0UKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuNDYgMC43OSAwLjU0IDAuOTU1IDsKLSAgICAgICAgUkVDVCAwLjUxNSAwLjUxIDAuNTk1IDAuODcgOwotICAgIEVORAotICBFTkQgU0UKLSAgUElOIEUKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDYgMC45OCAwLjE0IDEuMTQgOwotICAgICAgICBSRUNUIDAuMTIgMC43IDAuMiAxLjA2IDsKLSAgICBFTkQKLSAgRU5EIEUKLSAgUElOIFZERAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBQT1dFUiA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZERCBWREQhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDEuNjUgOC44IDEuNzEgOwotICAgIEVORAotICBFTkQgVkRECi0gIFBJTiBWU1MKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgR1JPVU5EIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVlNTIFZTUyEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMC4wMCA4LjggMC4wNiA7Ci0gICAgRU5ECi0gIEVORCBWU1MKLUVORCBUTEFUTlRTQ0FYMjAKLQotTUFDUk8gQU8yMVhMCi0gIENMQVNTIENPUkUgOwotICBPUklHSU4gMCAwIDsKLSAgRk9SRUlHTiBBTzIxWEwgMCAwIDsKLSAgU0laRSAxLjQgQlkgMS43MSA7Ci0gIFNZTU1FVFJZIFggWSA7Ci0gIFNJVEUgQ29yZVNpdGUgOwotICBQSU4gWQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gT1VUUFVUIDsKLSAgICBBTlRFTk5BRElGRkFSRUEgMS43Mjg1ICBMQVlFUiBNZXRhbDEgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMS4wNiAwLjQwNSAxLjE0IDAuOTkgOwotICAgICAgICBSRUNUIDEuMDYgMC45MSAxLjI5NSAwLjk5IDsKLSAgICBFTkQKLSAgRU5EIFkKLSAgUElOIEEwCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjA4IDAuNiAwLjE2IDEuMDggOwotICAgICAgICBSRUNUIDAuMDYgMC43OSAwLjE2IDEuMDggOwotICAgIEVORAotICBFTkQgQTAKLSAgUElOIEExCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjI2IDAuNzkgMC4zNCAwLjkyIDsKLSAgICAgICAgUkVDVCAwLjQ0IDAuNiAwLjUyIDAuODcgOwotICAgICAgICBSRUNUIDAuMjYgMC43OSAwLjUyIDAuODcgOwotICAgIEVORAotICBFTkQgQTEKLSAgUElOIEIwCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjYyIDAuNzMgMC43NCAwLjgxIDsKLSAgICAgICAgUkVDVCAwLjY2IDAuNzMgMC43NCAxLjE5IDsKLSAgICBFTkQKLSAgRU5EIEIwCi0gIFBJTiBWREQKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgUE9XRVIgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWREQgVkREISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAxLjY1IDEuNCAxLjcxIDsKLSAgICBFTkQKLSAgRU5EIFZERAotICBQSU4gVlNTCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIEdST1VORCA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZTUyBWU1MhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDAuMDAgMS40IDAuMDYgOwotICAgIEVORAotICBFTkQgVlNTCi1FTkQgQU8yMVhMCi0KLU1BQ1JPIE9BSTMyWEwKLSAgQ0xBU1MgQ09SRSA7Ci0gIE9SSUdJTiAwIDAgOwotICBGT1JFSUdOIE9BSTMyWEwgMCAwIDsKLSAgU0laRSAxLjggQlkgMS43MSA7Ci0gIFNZTU1FVFJZIFggWSA7Ci0gIFNJVEUgQ29yZVNpdGUgOwotICBQSU4gWQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gT1VUUFVUIDsKLSAgICBBTlRFTk5BRElGRkFSRUEgMS43Mjg1ICBMQVlFUiBNZXRhbDEgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMS4wMzUgMS4wMDUgMS4xNjUgMS4wODUgOwotICAgICAgICBSRUNUIDEuMTA1IDAuNzQgMS4xNjUgMS4yMzUgOwotICAgICAgICBSRUNUIDEuMjQgMC40MTUgMS4zIDAuOCA7Ci0gICAgICAgIFJFQ1QgMS4xMDUgMC43NCAxLjMgMC44IDsKLSAgICBFTkQKLSAgRU5EIFkKLSAgUElOIEEwCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjI2IDAuNjEgMC4zNCAxLjExIDsKLSAgICBFTkQKLSAgRU5EIEEwCi0gIFBJTiBBMQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC40NiAwLjc5IDAuNTYgMC45MiA7Ci0gICAgICAgIFJFQ1QgMC40OCAwLjc5IDAuNTYgMS4yNyA7Ci0gICAgRU5ECi0gIEVORCBBMQotICBQSU4gQjEKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDEuMjY1IDAuOSAxLjM0NSAxLjExIDsKLSAgICAgICAgUkVDVCAxLjQ2IDAuOTM1IDEuNTQgMS4xMSA7Ci0gICAgICAgIFJFQ1QgMS4yNjUgMS4wMyAxLjU0IDEuMTEgOwotICAgIEVORAotICBFTkQgQjEKLSAgUElOIEEyCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjY2IDAuNzQgMC43NCAwLjk3NSA7Ci0gICAgICAgIFJFQ1QgMC42NiAwLjc0IDEuMDA1IDAuODIgOwotICAgIEVORAotICBFTkQgQTIKLSAgUElOIEIwCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAxLjQyNSAwLjY1NSAxLjUwNSAwLjggOwotICAgICAgICBSRUNUIDEuNDI1IDAuNzIgMS43NCAwLjggOwotICAgICAgICBSRUNUIDEuNjYgMC43MiAxLjc0IDAuOTIgOwotICAgIEVORAotICBFTkQgQjAKLSAgUElOIFZERAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBQT1dFUiA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZERCBWREQhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDEuNjUgMS44IDEuNzEgOwotICAgIEVORAotICBFTkQgVkRECi0gIFBJTiBWU1MKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgR1JPVU5EIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVlNTIFZTUyEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMC4wMCAxLjggMC4wNiA7Ci0gICAgRU5ECi0gIEVORCBWU1MKLUVORCBPQUkzMlhMCi0KLU1BQ1JPIE5PUjNYTAotICBDTEFTUyBDT1JFIDsKLSAgT1JJR0lOIDAgMCA7Ci0gIEZPUkVJR04gTk9SM1hMIDAgMCA7Ci0gIFNJWkUgMSBCWSAxLjcxIDsKLSAgU1lNTUVUUlkgWCBZIDsKLSAgU0lURSBDb3JlU2l0ZSA7Ci0gIFBJTiBZCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBPVVRQVVQgOwotICAgIEFOVEVOTkFESUZGQVJFQSAxLjcyODUgIExBWUVSIE1ldGFsMSA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjQwNSAwLjUwNSAwLjQ2NSAwLjc2IDsKLSAgICAgICAgUkVDVCAwLjQwNSAwLjcgMC45MiAwLjc2IDsKLSAgICAgICAgUkVDVCAwLjg0IDEuMTE1IDAuOSAxLjIzNSA7Ci0gICAgICAgIFJFQ1QgMC44NiAwLjUwNSAwLjkyIDEuMTc1IDsKLSAgICAgICAgUkVDVCAwLjg2IDAuNTA1IDAuOTQgMC43MyA7Ci0gICAgRU5ECi0gIEVORCBZCi0gIFBJTiBDCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjY2IDAuOTM1IDAuNzQgMS4zNTUgOwotICAgICAgICBSRUNUIDAuNjY1IDAuODYgMC43NDUgMS4wMTUgOwotICAgIEVORAotICBFTkQgQwotICBQSU4gQQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMyAwLjg2IDAuMTEgMS4xMSA7Ci0gICAgICAgIFJFQ1QgMC4wMyAwLjk1NSAwLjM2IDEuMTEgOwotICAgIEVORAotICBFTkQgQQotICBQSU4gQgotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC40NiAwLjk0NSAwLjU0IDEuNDQ1IDsKLSAgICBFTkQKLSAgRU5EIEIKLSAgUElOIFZERAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBQT1dFUiA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZERCBWREQhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDEuNjUgMSAxLjcxIDsKLSAgICBFTkQKLSAgRU5EIFZERAotICBQSU4gVlNTCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIEdST1VORCA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZTUyBWU1MhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDAuMDAgMSAwLjA2IDsKLSAgICBFTkQKLSAgRU5EIFZTUwotRU5EIE5PUjNYTAotCi1NQUNSTyBFREZGVFJYTAotICBDTEFTUyBDT1JFIDsKLSAgT1JJR0lOIDAgMCA7Ci0gIEZPUkVJR04gRURGRlRSWEwgMCAwIDsKLSAgU0laRSA2LjggQlkgMS43MSA7Ci0gIFNZTU1FVFJZIFggWSA7Ci0gIFNJVEUgQ29yZVNpdGUgOwotICBQSU4gUQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gT1VUUFVUIDsKLSAgICBBTlRFTk5BRElGRkFSRUEgMS43Mjg1ICBMQVlFUiBNZXRhbDEgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC44NiAwLjUyIDAuOTQgMS4wMiA7Ci0gICAgRU5ECi0gIEVORCBRCi0gIFBJTiBRTgotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gT1VUUFVUIDsKLSAgICBBTlRFTk5BRElGRkFSRUEgMS43Mjg1ICBMQVlFUiBNZXRhbDEgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wNiAwLjYgMC4yODUgMC43MyA7Ci0gICAgICAgIFJFQ1QgMC4yMDUgMC41NCAwLjI4NSAxLjAyIDsKLSAgICBFTkQKLSAgRU5EIFFOCi0gIFBJTiBECi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCA2LjIzIDAuNzM1IDYuNDM1IDAuODU1IDsKLSAgICAgICAgUkVDVCA2LjI2IDAuNzM1IDYuNDM1IDEuMTEgOwotICAgIEVORAotICBFTkQgRAotICBQSU4gRQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgNS40MDUgMC43NjUgNS45NjUgMC44NDUgOwotICAgICAgICBSRUNUIDUuODM1IDAuNzY1IDUuOTY1IDAuODk1IDsKLSAgICBFTkQKLSAgRU5EIEUKLSAgUElOIFJOCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCA0LjI5IDAuODUgNC41NCAwLjkzIDsKLSAgICAgICAgUkVDVCA0LjQ2IDAuODUgNC41NCAxLjE4IDsKLSAgICBFTkQKLSAgRU5EIFJOCi0gIFBJTiBDSwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMS4wNiAwLjU0NSAxLjE0IDAuNzcgOwotICAgICAgICBSRUNUIDEuMDg1IDAuNjkgMS4xNjUgMS4wMiA7Ci0gICAgRU5ECi0gIEVORCBDSwotICBQSU4gVkRECi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIFBPV0VSIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVkREIFZERCEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMS42NSA2LjggMS43MSA7Ci0gICAgRU5ECi0gIEVORCBWREQKLSAgUElOIFZTUwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBHUk9VTkQgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWU1MgVlNTISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAwLjAwIDYuOCAwLjA2IDsKLSAgICBFTkQKLSAgRU5EIFZTUwotRU5EIEVERkZUUlhMCi0KLU1BQ1JPIE1YNFgyCi0gIENMQVNTIENPUkUgOwotICBPUklHSU4gMCAwIDsKLSAgRk9SRUlHTiBNWDRYMiAwIDAgOwotICBTSVpFIDUgQlkgMS43MSA7Ci0gIFNZTU1FVFJZIFggWSA7Ci0gIFNJVEUgQ29yZVNpdGUgOwotICBQSU4gWQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gT1VUUFVUIDsKLSAgICBBTlRFTk5BRElGRkFSRUEgMS43Mjg1ICBMQVlFUiBNZXRhbDEgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMS42NiAwLjYgMS43NCAxLjA0IDsKLSAgICAgICAgUkVDVCAxLjYgMC45NiAxLjc0IDEuMDQgOwotICAgICAgICBSRUNUIDEuNjcgMC40MjUgMS43NSAwLjY4IDsKLSAgICBFTkQKLSAgRU5EIFkKLSAgUElOIFMwCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCA0LjA0IDAuNTkgNC4xIDAuNzEgOwotICAgICAgICBSRUNUIDQuMDQgMC41OSA0LjcyIDAuNjUgOwotICAgICAgICBSRUNUIDQuNjYgMC41OSA0LjcyIDAuOTIgOwotICAgICAgICBSRUNUIDQuNjYgMC43OSA0Ljc0IDAuOTIgOwotICAgIEVORAotICBFTkQgUzAKLSAgUElOIEQKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDQuMiAwLjc1IDQuMjggMC45NyA7Ci0gICAgICAgIFJFQ1QgNC4yIDAuNzUgNC41NiAwLjg5NSA7Ci0gICAgRU5ECi0gIEVORCBECi0gIFBJTiBDCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAzLjI2IDAuOTggMy4zNCAxLjI4IDsKLSAgICAgICAgUkVDVCAzLjMyIDAuODQgMy40IDEuMDYgOwotICAgIEVORAotICBFTkQgQwotICBQSU4gQgotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMi45MiAwLjg0IDMgMS4yOCA7Ci0gICAgICAgIFJFQ1QgMi44NiAwLjk2NSAzIDEuMjggOwotICAgIEVORAotICBFTkQgQgotICBQSU4gQQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMS44NiAwLjc5IDEuOTQgMC45MiA7Ci0gICAgICAgIFJFQ1QgMi4wOTUgMC42NTUgMi4xNzUgMC44NyA7Ci0gICAgICAgIFJFQ1QgMS44NiAwLjc5IDIuMTc1IDAuODcgOwotICAgIEVORAotICBFTkQgQQotICBQSU4gUzEKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDEuMTcgMC42MiAxLjI3IDAuODcgOwotICAgICAgICBSRUNUIDEuMjYgMC40NiAxLjM0IDAuNzMgOwotICAgIEVORAotICBFTkQgUzEKLSAgUElOIFZERAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBQT1dFUiA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZERCBWREQhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDEuNjUgNSAxLjcxIDsKLSAgICBFTkQKLSAgRU5EIFZERAotICBQSU4gVlNTCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIEdST1VORCA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZTUyBWU1MhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDAuMDAgNSAwLjA2IDsKLSAgICBFTkQKLSAgRU5EIFZTUwotRU5EIE1YNFgyCi0KLU1BQ1JPIE5BTkQyWDYKLSAgQ0xBU1MgQ09SRSA7Ci0gIE9SSUdJTiAwIDAgOwotICBGT1JFSUdOIE5BTkQyWDYgMCAwIDsKLSAgU0laRSAyLjggQlkgMS43MSA7Ci0gIFNZTU1FVFJZIFggWSA7Ci0gIFNJVEUgQ29yZVNpdGUgOwotICBQSU4gWQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gT1VUUFVUIDsKLSAgICBBTlRFTk5BRElGRkFSRUEgMS43Mjg1ICBMQVlFUiBNZXRhbDEgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC40MDUgMS4wMTUgMC40NjUgMS4zNDUgOwotICAgICAgICBSRUNUIDAuNjQgMC40MzUgMC43IDAuNTU1IDsKLSAgICAgICAgUkVDVCAwLjgxNSAxLjAxNSAwLjg3NSAxLjM0NSA7Ci0gICAgICAgIFJFQ1QgMS4yMzUgMS4wMTUgMS4yOTUgMS4zNDUgOwotICAgICAgICBSRUNUIDEuNTQgMC40MzUgMS42IDAuNTU1IDsKLSAgICAgICAgUkVDVCAxLjY0NSAxLjAxNSAxLjcwNSAxLjM0NSA7Ci0gICAgICAgIFJFQ1QgMi4wNTUgMS4wMTUgMi4xMTUgMS4zNDUgOwotICAgICAgICBSRUNUIDIuMTYgMC40MzUgMi4yMiAwLjU1NSA7Ci0gICAgICAgIFJFQ1QgMC40MDUgMS4wMTUgMi43NiAxLjA3NSA7Ci0gICAgICAgIFJFQ1QgMi40NjUgMS4wMTUgMi41MjUgMS4zNDUgOwotICAgICAgICBSRUNUIDAuNjQgMC40OTUgMi43NiAwLjU1NSA7Ci0gICAgICAgIFJFQ1QgMi42NiAwLjk4IDIuNzQgMS4xMSA7Ci0gICAgICAgIFJFQ1QgMi43IDAuNDk1IDIuNzYgMS4wODUgOwotICAgICAgICBSRUNUIDIuNDY1IDEuMDE1IDIuNzYgMS4wODUgOwotICAgIEVORAotICBFTkQgWQotICBQSU4gQgotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC43MSAwLjgxNSAwLjk3NSAwLjg3NSA7Ci0gICAgICAgIFJFQ1QgMS40NDUgMC44MTUgMS41NjUgMC45MTUgOwotICAgICAgICBSRUNUIDAuOTE1IDAuODU1IDIuMDg1IDAuOTE1IDsKLSAgICAgICAgUkVDVCAyLjAzNSAwLjgxNSAyLjE4NSAwLjg5NSA7Ci0gICAgRU5ECi0gIEVORCBCCi0gIFBJTiBBCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjQ2IDAuNiAwLjU0IDAuNzU1IDsKLSAgICAgICAgUkVDVCAwLjM0NSAwLjY5NSAwLjU0IDAuNzU1IDsKLSAgICAgICAgUkVDVCAxLjA3NSAwLjY1NSAxLjE5NSAwLjc1NSA7Ci0gICAgICAgIFJFQ1QgMS43NTUgMC42NTUgMS44NzUgMC43NDUgOwotICAgICAgICBSRUNUIDAuNDYgMC42NTUgMi42IDAuNzE1IDsKLSAgICAgICAgUkVDVCAyLjU0IDAuNjU1IDIuNiAwLjg4IDsKLSAgICBFTkQKLSAgRU5EIEEKLSAgUElOIFZERAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBQT1dFUiA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZERCBWREQhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDEuNjUgMi44IDEuNzEgOwotICAgIEVORAotICBFTkQgVkRECi0gIFBJTiBWU1MKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgR1JPVU5EIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVlNTIFZTUyEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMC4wMCAyLjggMC4wNiA7Ci0gICAgRU5ECi0gIEVORCBWU1MKLUVORCBOQU5EMlg2Ci0KLU1BQ1JPIEFPSTIxWEwKLSAgQ0xBU1MgQ09SRSA7Ci0gIE9SSUdJTiAwIDAgOwotICBGT1JFSUdOIEFPSTIxWEwgMCAwIDsKLSAgU0laRSAxIEJZIDEuNzEgOwotICBTWU1NRVRSWSBYIFkgOwotICBTSVRFIENvcmVTaXRlIDsKLSAgUElOIFkKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIE9VVFBVVCA7Ci0gICAgQU5URU5OQURJRkZBUkVBIDEuNzI4NSAgTEFZRVIgTWV0YWwxIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuNjQgMC40MDUgMC43IDAuNjMgOwotICAgICAgICBSRUNUIDAuNjQgMC41NyAwLjkyIDAuNjMgOwotICAgICAgICBSRUNUIDAuODQgMS4yMzUgMC45IDEuMzU1IDsKLSAgICAgICAgUkVDVCAwLjg2IDAuNTcgMC45MiAxLjI5NSA7Ci0gICAgICAgIFJFQ1QgMC44NiAwLjYgMC45NCAwLjczIDsKLSAgICBFTkQKLSAgRU5EIFkKLSAgUElOIEEwCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjA2IDAuNiAwLjE0IDAuODggOwotICAgICAgICBSRUNUIDAuMDYgMC42MSAwLjM2IDAuNjkgOwotICAgIEVORAotICBFTkQgQTAKLSAgUElOIEExCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjQ2IDAuMjIgMC41NCAwLjcyIDsKLSAgICBFTkQKLSAgRU5EIEExCi0gIFBJTiBCMAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC42NiAwLjczIDAuNzQgMS4yMyA7Ci0gICAgRU5ECi0gIEVORCBCMAotICBQSU4gVkRECi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIFBPV0VSIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVkREIFZERCEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMS42NSAxIDEuNzEgOwotICAgIEVORAotICBFTkQgVkRECi0gIFBJTiBWU1MKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgR1JPVU5EIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVlNTIFZTUyEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMC4wMCAxIDAuMDYgOwotICAgIEVORAotICBFTkQgVlNTCi1FTkQgQU9JMjFYTAotCi1NQUNSTyBOQU5EMlg0Ci0gIENMQVNTIENPUkUgOwotICBPUklHSU4gMCAwIDsKLSAgRk9SRUlHTiBOQU5EMlg0IDAgMCA7Ci0gIFNJWkUgMiBCWSAxLjcxIDsKLSAgU1lNTUVUUlkgWCBZIDsKLSAgU0lURSBDb3JlU2l0ZSA7Ci0gIFBJTiBZCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBPVVRQVVQgOwotICAgIEFOVEVOTkFESUZGQVJFQSAxLjcyODUgIExBWUVSIE1ldGFsMSA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjM0IDAuOTk1IDAuNCAxLjM0NSA7Ci0gICAgICAgIFJFQ1QgMC42MyAwLjQ3NSAwLjc1IDAuNTM1IDsKLSAgICAgICAgUkVDVCAwLjc1IDAuOTk1IDAuODEgMS4zNDUgOwotICAgICAgICBSRUNUIDEuMTYgMC45OTUgMS4yMiAxLjM0NSA7Ci0gICAgICAgIFJFQ1QgMS4yNSAwLjQ3NSAxLjM3IDAuNTU1IDsKLSAgICAgICAgUkVDVCAxLjU3IDAuOTk1IDEuNjMgMS4zNDUgOwotICAgICAgICBSRUNUIDAuNyAwLjQ5NSAxLjc2NSAwLjU1NSA7Ci0gICAgICAgIFJFQ1QgMS42MzUgMC44MTUgMS43NjUgMC44OTUgOwotICAgICAgICBSRUNUIDEuNzA1IDAuNDk1IDEuNzY1IDEuMDU1IDsKLSAgICAgICAgUkVDVCAwLjM0IDAuOTk1IDEuNzY1IDEuMDU1IDsKLSAgICBFTkQKLSAgRU5EIFkKLSAgUElOIEIKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuNjQ1IDAuODE1IDEuMjk1IDAuODk1IDsKLSAgICBFTkQKLSAgRU5EIEIKLSAgUElOIEEKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMjM1IDAuNjI1IDAuMzY1IDAuNzE1IDsKLSAgICAgICAgUkVDVCAwLjIzNSAwLjY1NSAxLjYwNSAwLjcxNSA7Ci0gICAgRU5ECi0gIEVORCBBCi0gIFBJTiBWREQKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgUE9XRVIgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWREQgVkREISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAxLjY1IDIgMS43MSA7Ci0gICAgRU5ECi0gIEVORCBWREQKLSAgUElOIFZTUwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBHUk9VTkQgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWU1MgVlNTISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAwLjAwIDIgMC4wNiA7Ci0gICAgRU5ECi0gIEVORCBWU1MKLUVORCBOQU5EMlg0Ci0KLU1BQ1JPIE5PUjRCQlg0Ci0gIENMQVNTIENPUkUgOwotICBPUklHSU4gMCAwIDsKLSAgRk9SRUlHTiBOT1I0QkJYNCAwIDAgOwotICBTSVpFIDQuNiBCWSAxLjcxIDsKLSAgU1lNTUVUUlkgWCBZIDsKLSAgU0lURSBDb3JlU2l0ZSA7Ci0gIFBJTiBZCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBPVVRQVVQgOwotICAgIEFOVEVOTkFESUZGQVJFQSAxLjcyODUgIExBWUVSIE1ldGFsMSA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAxLjI1NSAwLjM2IDEuMzE1IDAuNDggOwotICAgICAgICBSRUNUIDEuNjY1IDAuMzYgMS43MjUgMC40OCA7Ci0gICAgICAgIFJFQ1QgMi4wNzUgMC4zNiAyLjEzNSAwLjQ4IDsKLSAgICAgICAgUkVDVCAyLjQ4NSAwLjM2IDIuNTQ1IDAuNDggOwotICAgICAgICBSRUNUIDIuOTI1IDAuMzYgMi45ODUgMC40OCA7Ci0gICAgICAgIFJFQ1QgMy4zMzUgMC4zNiAzLjM5NSAwLjQ4IDsKLSAgICAgICAgUkVDVCAzLjc3NSAwLjM2IDMuODM1IDAuNDggOwotICAgICAgICBSRUNUIDEuMjU1IDAuNDIgMy45IDAuNDggOwotICAgICAgICBSRUNUIDMuODQgMC40MiAzLjkgMS4zIDsKLSAgICAgICAgUkVDVCAzLjg0IDAuOTggMy45NCAxLjExIDsKLSAgICAgICAgUkVDVCA0LjE4NSAwLjM3IDQuMjQ1IDAuNTEgOwotICAgICAgICBSRUNUIDMuODQgMC40NSA0LjI0NSAwLjUxIDsKLSAgICAgICAgUkVDVCAzLjg0IDAuOTggNC4zMSAxLjA0IDsKLSAgICAgICAgUkVDVCA0LjI1IDAuOTggNC4zMSAxLjMgOwotICAgIEVORAotICBFTkQgWQotICBQSU4gRAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMy42NiAwLjYxIDMuNzQgMS4xMSA7Ci0gICAgRU5ECi0gIEVORCBECi0gIFBJTiBDCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAyLjg2IDAuNTggMi45NCAxLjA4IDsKLSAgICBFTkQKLSAgRU5EIEMKLSAgUElOIEFOCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjQ2IDAuNzYgMC41NCAxLjI2IDsKLSAgICBFTkQKLSAgRU5EIEFOCi0gIFBJTiBCTgotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4yNiAwLjc2IDAuMzQgMS4yNiA7Ci0gICAgRU5ECi0gIEVORCBCTgotICBQSU4gVkRECi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIFBPV0VSIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVkREIFZERCEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMS42NSA0LjYgMS43MSA7Ci0gICAgRU5ECi0gIEVORCBWREQKLSAgUElOIFZTUwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBHUk9VTkQgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWU1MgVlNTISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAwLjAwIDQuNiAwLjA2IDsKLSAgICBFTkQKLSAgRU5EIFZTUwotRU5EIE5PUjRCQlg0Ci0KLU1BQ1JPIFNERkZTUlhMCi0gIENMQVNTIENPUkUgOwotICBPUklHSU4gMCAwIDsKLSAgRk9SRUlHTiBTREZGU1JYTCAwIDAgOwotICBTSVpFIDcuNiBCWSAxLjcxIDsKLSAgU1lNTUVUUlkgWCBZIDsKLSAgU0lURSBDb3JlU2l0ZSA7Ci0gIFBJTiBRCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBPVVRQVVQgOwotICAgIEFOVEVOTkFESUZGQVJFQSAxLjcyODUgIExBWUVSIE1ldGFsMSA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjg2IDAuNiAwLjk0IDAuNzMgOwotICAgICAgICBSRUNUIDAuODggMC41NSAwLjk0IDEuMjU1IDsKLSAgICAgICAgUkVDVCAwLjkzNSAwLjUxNSAwLjk5NSAwLjYzNSA7Ci0gICAgRU5ECi0gIEVORCBRCi0gIFBJTiBRTgotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gT1VUUFVUIDsKLSAgICBBTlRFTk5BRElGRkFSRUEgMS43Mjg1ICBMQVlFUiBNZXRhbDEgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4xNiAwLjUzIDAuMjYgMC43MyA7Ci0gICAgICAgIFJFQ1QgMC4wNiAwLjYgMC4yNiAwLjczIDsKLSAgICAgICAgUkVDVCAwLjE4IDAuNTMgMC4yNiAwLjk5IDsKLSAgICAgICAgUkVDVCAwLjIzIDAuNDA1IDAuMzEgMC42MiA7Ci0gICAgICAgIFJFQ1QgMC4yMyAwLjkgMC4zMSAxLjAyIDsKLSAgICBFTkQKLSAgRU5EIFFOCi0gIFBJTiBTRQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgNi43MTUgMC42NTUgNi43NzUgMSA7Ci0gICAgICAgIFJFQ1QgNi44OTUgMC41OTUgNi45NTUgMC43MTUgOwotICAgICAgICBSRUNUIDcuMjc1IDAuNTk1IDcuMzM1IDAuNzE1IDsKLSAgICAgICAgUkVDVCA3LjIzNSAwLjYyNSA3LjM2NSAwLjcxNSA7Ci0gICAgICAgIFJFQ1QgNi43MTUgMC42NTUgNy4zNjUgMC43MTUgOwotICAgIEVORAotICBFTkQgU0UKLSAgUElOIFNJCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCA3LjAzNSAwLjgxNSA3LjI3NSAwLjk4NSA7Ci0gICAgRU5ECi0gIEVORCBTSQotICBQSU4gRAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgNi4yMzUgMC44MTUgNi40NTUgMC44OTUgOwotICAgICAgICBSRUNUIDYuMzc1IDAuODE1IDYuNDU1IDEuMTc1IDsKLSAgICBFTkQKLSAgRU5EIEQKLSAgUElOIENLCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCA1Ljc3NSAxLjAwNSA2LjI3NSAxLjA4NSA7Ci0gICAgRU5ECi0gIEVORCBDSwotICBQSU4gU04KLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDIuMjM1IDAuODE1IDIuMzY1IDAuODk1IDsKLSAgICAgICAgUkVDVCAyLjEgMC44MzUgMi4zNjUgMC44OTUgOwotICAgICAgICBSRUNUIDIuMzA1IDAuODE1IDIuMzY1IDEuMDEgOwotICAgICAgICBSRUNUIDIuMzA1IDAuOTUgMy4xNSAxLjAxIDsKLSAgICAgICAgUkVDVCAzLjA5IDAuOTUgMy4xNSAxLjI0IDsKLSAgICAgICAgUkVDVCAzLjA5IDEuMTggNC4wNiAxLjI0IDsKLSAgICAgICAgUkVDVCA0IDEuMTggNC4wNiAxLjQgOwotICAgICAgICBSRUNUIDQgMS4zNCA0LjQ4NSAxLjQgOwotICAgIEVORAotICBFTkQgU04KLSAgUElOIFJOCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAxLjA0IDAuOSAxLjM2NSAxLjA4NSA7Ci0gICAgICAgIFJFQ1QgMS4yNDUgMC45OTUgMS4zOSAxLjEzIDsKLSAgICBFTkQKLSAgRU5EIFJOCi0gIFBJTiBWREQKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgUE9XRVIgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWREQgVkREISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAxLjY1IDcuNiAxLjcxIDsKLSAgICBFTkQKLSAgRU5EIFZERAotICBQSU4gVlNTCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIEdST1VORCA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZTUyBWU1MhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDAuMDAgNy42IDAuMDYgOwotICAgIEVORAotICBFTkQgVlNTCi1FTkQgU0RGRlNSWEwKLQotTUFDUk8gT1IzWDEKLSAgQ0xBU1MgQ09SRSA7Ci0gIE9SSUdJTiAwIDAgOwotICBGT1JFSUdOIE9SM1gxIDAgMCA7Ci0gIFNJWkUgMS4yIEJZIDEuNzEgOwotICBTWU1NRVRSWSBYIFkgOwotICBTSVRFIENvcmVTaXRlIDsKLSAgUElOIFkKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIE9VVFBVVCA7Ci0gICAgQU5URU5OQURJRkZBUkVBIDEuNzI4NSAgTEFZRVIgTWV0YWwxIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDEuMDYgMC4zNyAxLjE0IDEuMyA7Ci0gICAgRU5ECi0gIEVORCBZCi0gIFBJTiBBCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjYzNSAwLjYyNSAwLjggMS4wNCA7Ci0gICAgRU5ECi0gIEVORCBBCi0gIFBJTiBCCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjI2IDAuNjQ1IDAuMzc1IDAuOTIgOwotICAgICAgICBSRUNUIDAuMjk1IDAuNjQ1IDAuMzc1IDEuMTEgOwotICAgIEVORAotICBFTkQgQgotICBQSU4gQwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wNiAwLjYxIDAuMTQgMS4xMSA7Ci0gICAgRU5ECi0gIEVORCBDCi0gIFBJTiBWREQKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgUE9XRVIgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWREQgVkREISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAxLjY1IDEuMiAxLjcxIDsKLSAgICBFTkQKLSAgRU5EIFZERAotICBQSU4gVlNTCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIEdST1VORCA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZTUyBWU1MhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDAuMDAgMS4yIDAuMDYgOwotICAgIEVORAotICBFTkQgVlNTCi1FTkQgT1IzWDEKLQotTUFDUk8gQU9JMjExWDIKLSAgQ0xBU1MgQ09SRSA7Ci0gIE9SSUdJTiAwIDAgOwotICBGT1JFSUdOIEFPSTIxMVgyIDAgMCA7Ci0gIFNJWkUgMiBCWSAxLjcxIDsKLSAgU1lNTUVUUlkgWCBZIDsKLSAgU0lURSBDb3JlU2l0ZSA7Ci0gIFBJTiBZCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBPVVRQVVQgOwotICAgIEFOVEVOTkFESUZGQVJFQSAxLjcyODUgIExBWUVSIE1ldGFsMSA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjU1IDAuNDQ1IDAuNjcgMC41MDUgOwotICAgICAgICBSRUNUIDEuMDYgMC40NjUgMS4xNCAwLjczIDsKLSAgICAgICAgUkVDVCAxLjA4IDAuNDY1IDEuMTQgMS4wMDUgOwotICAgICAgICBSRUNUIDEuMTk1IDAuNDQ1IDEuMzE1IDAuNTI1IDsKLSAgICAgICAgUkVDVCAxLjA4IDAuOTQ1IDEuNzI1IDEuMDA1IDsKLSAgICAgICAgUkVDVCAwLjYyIDAuNDY1IDEuNjg1IDAuNTI1IDsKLSAgICAgICAgUkVDVCAxLjY2NSAwLjk0NSAxLjcyNSAxLjIyNSA7Ci0gICAgICAgIFJFQ1QgMS42MzUgMC40NDUgMS43NTUgMC41MDUgOwotICAgIEVORAotICBFTkQgWQotICBQSU4gQTEKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuNTI1IDAuODA1IDAuODk1IDAuOTE1IDsKLSAgICBFTkQKLSAgRU5EIEExCi0gIFBJTiBBMAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4yMzUgMC42MjUgMC45MDUgMC43MDUgOwotICAgIEVORAotICBFTkQgQTAKLSAgUElOIEIwCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAxLjI0IDAuNjI1IDEuNiAwLjcwNSA7Ci0gICAgICAgIFJFQ1QgMS40MzUgMC42MjUgMS42IDAuODQ1IDsKLSAgICBFTkQKLSAgRU5EIEIwCi0gIFBJTiBDMAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMS43IDAuNjI1IDEuOTY1IDAuNzk1IDsKLSAgICBFTkQKLSAgRU5EIEMwCi0gIFBJTiBWREQKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgUE9XRVIgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWREQgVkREISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAxLjY1IDIgMS43MSA7Ci0gICAgRU5ECi0gIEVORCBWREQKLSAgUElOIFZTUwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBHUk9VTkQgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWU1MgVlNTISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAwLjAwIDIgMC4wNiA7Ci0gICAgRU5ECi0gIEVORCBWU1MKLUVORCBBT0kyMTFYMgotCi1NQUNSTyBCVUZYNgotICBDTEFTUyBDT1JFIDsKLSAgT1JJR0lOIDAgMCA7Ci0gIEZPUkVJR04gQlVGWDYgMCAwIDsKLSAgU0laRSAxLjggQlkgMS43MSA7Ci0gIFNZTU1FVFJZIFggWSA7Ci0gIFNJVEUgQ29yZVNpdGUgOwotICBQSU4gVlNTCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIEdST1VORCA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZTUyBWU1MhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDAuMDAgMS44IDAuMDYgOwotICAgIEVORAotICBFTkQgVlNTCi0gIFBJTiBWREQKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgUE9XRVIgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWREQgVkREISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAxLjY1IDEuOCAxLjcxIDsKLSAgICBFTkQKLSAgRU5EIFZERAotICBQSU4gQQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMS40NiAwLjU3IDEuNTQgMS4wNyA7Ci0gICAgRU5ECi0gIEVORCBBCi0gIFBJTiBZCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBPVVRQVVQgOwotICAgIEFOVEVOTkFESUZGQVJFQSAxLjcyODUgIExBWUVSIE1ldGFsMSA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjA2IDAuMzUgMC4xMyAxLjM3IDsKLSAgICAgICAgUkVDVCAwLjA2IDAuNzkgMC4xNCAwLjk3NSA7Ci0gICAgICAgIFJFQ1QgMC40OCAwLjM1IDAuNTQgMC42NTUgOwotICAgICAgICBSRUNUIDAuNDggMC45MTUgMC41NCAxLjM3IDsKLSAgICAgICAgUkVDVCAwLjA2IDAuOTE1IDAuOTUgMC45NzUgOwotICAgICAgICBSRUNUIDAuODkgMC4zNSAwLjk1IDAuNjU1IDsKLSAgICAgICAgUkVDVCAwLjA2IDAuNTk1IDAuOTUgMC42NTUgOwotICAgICAgICBSRUNUIDAuODkgMC45MTUgMC45NSAxLjM3IDsKLSAgICBFTkQKLSAgRU5EIFkKLUVORCBCVUZYNgotCi1NQUNSTyBOT1IzQlhMCi0gIENMQVNTIENPUkUgOwotICBPUklHSU4gMCAwIDsKLSAgRk9SRUlHTiBOT1IzQlhMIDAgMCA7Ci0gIFNJWkUgMS4yIEJZIDEuNzEgOwotICBTWU1NRVRSWSBYIFkgOwotICBTSVRFIENvcmVTaXRlIDsKLSAgUElOIFkKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIE9VVFBVVCA7Ci0gICAgQU5URU5OQURJRkZBUkVBIDEuNzI4NSAgTEFZRVIgTWV0YWwxIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDYgMC42IDAuMTQgMC43MyA7Ci0gICAgICAgIFJFQ1QgMC4wOCAwLjQ3IDAuMTQgMS4yOSA7Ci0gICAgICAgIFJFQ1QgMC4xNCAwLjI3NSAwLjIgMC41MyA7Ci0gICAgICAgIFJFQ1QgMC4wOCAxLjIzIDAuMjc1IDEuMjkgOwotICAgICAgICBSRUNUIDAuMjE1IDEuMjMgMC4yNzUgMS4zNSA7Ci0gICAgICAgIFJFQ1QgMC41MDUgMC4zMDUgMC41NjUgMC41MyA7Ci0gICAgICAgIFJFQ1QgMC4wOCAwLjQ3IDAuNTY1IDAuNTMgOwotICAgICAgICBSRUNUIDAuNTA1IDAuMzA1IDAuNjQgMC4zNjUgOwotICAgIEVORAotICBFTkQgWQotICBQSU4gQU4KLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuNzY1IDAuNzc1IDAuODQ1IDEuMTMgOwotICAgICAgICBSRUNUIDAuODI1IDAuNzUgMC45MDUgMC44OTUgOwotICAgICAgICBSRUNUIDAuNzY1IDAuNzc1IDAuOTY1IDAuODk1IDsKLSAgICBFTkQKLSAgRU5EIEFOCi0gIFBJTiBCCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjQ2IDAuNjMgMC41NCAxLjEzIDsKLSAgICBFTkQKLSAgRU5EIEIKLSAgUElOIEMKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMjYgMC42MyAwLjM0IDEuMTMgOwotICAgIEVORAotICBFTkQgQwotICBQSU4gVkRECi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIFBPV0VSIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVkREIFZERCEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMS42NSAxLjIgMS43MSA7Ci0gICAgRU5ECi0gIEVORCBWREQKLSAgUElOIFZTUwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBHUk9VTkQgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWU1MgVlNTISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAwLjAwIDEuMiAwLjA2IDsKLSAgICBFTkQKLSAgRU5EIFZTUwotRU5EIE5PUjNCWEwKLQotTUFDUk8gTVhJM1gxCi0gIENMQVNTIENPUkUgOwotICBPUklHSU4gMCAwIDsKLSAgRk9SRUlHTiBNWEkzWDEgMCAwIDsKLSAgU0laRSAzLjggQlkgMS43MSA7Ci0gIFNZTU1FVFJZIFggWSA7Ci0gIFNJVEUgQ29yZVNpdGUgOwotICBQSU4gWQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gT1VUUFVUIDsKLSAgICBBTlRFTk5BRElGRkFSRUEgMS43Mjg1ICBMQVlFUiBNZXRhbDEgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMy42NiAwLjU0IDMuNzQgMS4yOSA7Ci0gICAgRU5ECi0gIEVORCBZCi0gIFBJTiBDCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAzLjIzNSAwLjYyIDMuMzE1IDAuODYgOwotICAgICAgICBSRUNUIDMuMDYgMC42MiAzLjQgMC43NCA7Ci0gICAgRU5ECi0gIEVORCBDCi0gIFBJTiBTMQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMi4yMzUgMC44IDIuMzU1IDAuOTkgOwotICAgICAgICBSRUNUIDIuMjM1IDAuODE1IDIuMzY1IDAuOTkgOwotICAgICAgICBSRUNUIDIuMjM1IDAuOTEgMi43NjUgMC45OSA7Ci0gICAgRU5ECi0gIEVORCBTMQotICBQSU4gQgotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMS40MiAwLjg0IDEuNSAxLjA4NSA7Ci0gICAgICAgIFJFQ1QgMS40MiAxLjAwNSAxLjc1NSAxLjA4NSA7Ci0gICAgRU5ECi0gIEVORCBCCi0gIFBJTiBBCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjM3IDAuNzc1IDAuNTY1IDAuOTA1IDsKLSAgICAgICAgUkVDVCAwLjM3IDAuNzc1IDAuODIgMC44NTUgOwotICAgIEVORAotICBFTkQgQQotICBQSU4gUzAKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMTkgMC44OTUgMC4yNyAxLjA4NSA7Ci0gICAgICAgIFJFQ1QgMC45MiAwLjkzIDEgMS4wODUgOwotICAgICAgICBSRUNUIDAuMTkgMS4wMDUgMSAxLjA4NSA7Ci0gICAgRU5ECi0gIEVORCBTMAotICBQSU4gVkRECi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIFBPV0VSIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVkREIFZERCEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMS42NSAzLjggMS43MSA7Ci0gICAgRU5ECi0gIEVORCBWREQKLSAgUElOIFZTUwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBHUk9VTkQgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWU1MgVlNTISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAwLjAwIDMuOCAwLjA2IDsKLSAgICBFTkQKLSAgRU5EIFZTUwotRU5EIE1YSTNYMQotCi1NQUNSTyBOQU5EMkJYMgotICBDTEFTUyBDT1JFIDsKLSAgT1JJR0lOIDAgMCA7Ci0gIEZPUkVJR04gTkFORDJCWDIgMCAwIDsKLSAgU0laRSAxLjI2IEJZIDEuNzEgOwotICBTWU1NRVRSWSBYIFkgIDsKLSAgU0lURSBDb3JlU2l0ZSA7Ci0gIFBJTiBZCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBPVVRQVVQgOwotICAgIEFOVEVOTkFESUZGQVJFQSAxLjcyODUgIExBWUVSIE1ldGFsMSA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjA3NSAwLjU1IDAuMTU1IDAuNjM1IDsKLSAgICBFTkQKLSAgRU5EIFkKLSAgUElOIEFOCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAxLjAzNSAwLjc3NSAxLjE5IDAuOTM1IDsKLSAgICBFTkQKLSAgRU5EIEFOCi0gIFBJTiBCCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjA3NSAwLjk1NSAwLjE1NSAxLjAzNSA7Ci0gICAgRU5ECi0gIEVORCBCCi0gIFBJTiBWREQKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgUE9XRVIgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWREQgVkREISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAxLjY1IDEuMjYgMS43MSA7Ci0gICAgRU5ECi0gIEVORCBWREQKLSAgUElOIFZTUwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBHUk9VTkQgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWU1MgVlNTISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAwLjAwIDEuMjYgMC4wNiA7Ci0gICAgRU5ECi0gIEVORCBWU1MKLUVORCBOQU5EMkJYMgotCi1NQUNSTyBBT0kzMlgxCi0gIENMQVNTIENPUkUgOwotICBPUklHSU4gMCAwIDsKLSAgRk9SRUlHTiBBT0kzMlgxIDAgMCA7Ci0gIFNJWkUgMS44IEJZIDEuNzEgOwotICBTWU1NRVRSWSBYIFkgOwotICBTSVRFIENvcmVTaXRlIDsKLSAgUElOIFkKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIE9VVFBVVCA7Ci0gICAgQU5URU5OQURJRkZBUkVBIDEuNzI4NSAgTEFZRVIgTWV0YWwxIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuODUgMC41MDUgMC45MSAxLjA4NSA7Ci0gICAgICAgIFJFQ1QgMC44NSAxLjAwNSAxLjE2NSAxLjA4NSA7Ci0gICAgICAgIFJFQ1QgMS4xMDUgMS4wMDUgMS4xNjUgMS4zMDUgOwotICAgIEVORAotICBFTkQgWQotICBQSU4gQTEKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuNDYgMC40MSAwLjU0IDAuNTQgOwotICAgICAgICBSRUNUIDAuNDggMC40OCAwLjU2IDAuODkgOwotICAgIEVORAotICBFTkQgQTEKLSAgUElOIEIxCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAxLjIzNSAwLjYyNSAxLjMxNSAwLjg1IDsKLSAgICAgICAgUkVDVCAxLjAxIDAuNzcgMS4zMTUgMC44NSA7Ci0gICAgICAgIFJFQ1QgMS4yMzUgMC42MjUgMS4zNjUgMC43MDUgOwotICAgIEVORAotICBFTkQgQjEKLSAgUElOIEEyCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjY2IDAuNDEgMC43NCAwLjU0IDsKLSAgICAgICAgUkVDVCAwLjY3IDAuNDYgMC43NSAwLjkgOwotICAgIEVORAotICBFTkQgQTIKLSAgUElOIEIwCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAxLjQ2NSAwLjY1IDEuNTQ1IDAuOTA1IDsKLSAgICAgICAgUkVDVCAxLjY2IDAuNiAxLjc0IDAuNzMgOwotICAgICAgICBSRUNUIDEuNDY1IDAuNjUgMS43NCAwLjczIDsKLSAgICBFTkQKLSAgRU5EIEIwCi0gIFBJTiBBMAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4yNiAwLjU4NSAwLjM0IDEuMDg1IDsKLSAgICBFTkQKLSAgRU5EIEEwCi0gIFBJTiBWREQKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgUE9XRVIgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWREQgVkREISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAxLjY1IDEuOCAxLjcxIDsKLSAgICBFTkQKLSAgRU5EIFZERAotICBQSU4gVlNTCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIEdST1VORCA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZTUyBWU1MhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDAuMDAgMS44IDAuMDYgOwotICAgIEVORAotICBFTkQgVlNTCi1FTkQgQU9JMzJYMQotCi1NQUNSTyBPQUkyQkIxWEwKLSAgQ0xBU1MgQ09SRSA7Ci0gIE9SSUdJTiAwIDAgOwotICBGT1JFSUdOIE9BSTJCQjFYTCAwIDAgOwotICBTSVpFIDEuMiBCWSAxLjcxIDsKLSAgU1lNTUVUUlkgWCBZIDsKLSAgU0lURSBDb3JlU2l0ZSA7Ci0gIFBJTiBZCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBPVVRQVVQgOwotICAgIEFOVEVOTkFESUZGQVJFQSAxLjcyODUgIExBWUVSIE1ldGFsMSA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjA2IDAuNDEgMC4xNCAwLjU0IDsKLSAgICAgICAgUkVDVCAwLjA4IDAuMyAwLjE0IDAuNjggOwotICAgICAgICBSRUNUIDAuMDggMC42MiAwLjM2IDAuNjggOwotICAgICAgICBSRUNUIDAuMjggMC4yNCAwLjM0IDAuMzYgOwotICAgICAgICBSRUNUIDAuMDggMC4zIDAuMzQgMC4zNiA7Ci0gICAgICAgIFJFQ1QgMC4zIDAuNjIgMC4zNiAxLjI4IDsKLSAgICAgICAgUkVDVCAwLjMgMS4yMiAwLjQ3IDEuMjggOwotICAgICAgICBSRUNUIDAuNDEgMS4yMiAwLjQ3IDEuMzQgOwotICAgIEVORAotICBFTkQgWQotICBQSU4gQjAKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuNDYgMC42MiAwLjU0IDEuMTIgOwotICAgIEVORAotICBFTkQgQjAKLSAgUElOIEEwTgotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC42NiAwLjYyIDAuNzQgMS4xMiA7Ci0gICAgRU5ECi0gIEVORCBBME4KLSAgUElOIEExTgotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMS4wNiAwLjYxIDEuMTQgMS4xMSA7Ci0gICAgRU5ECi0gIEVORCBBMU4KLSAgUElOIFZERAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBQT1dFUiA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZERCBWREQhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDEuNjUgMS4yIDEuNzEgOwotICAgIEVORAotICBFTkQgVkRECi0gIFBJTiBWU1MKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgR1JPVU5EIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVlNTIFZTUyEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMC4wMCAxLjIgMC4wNiA7Ci0gICAgRU5ECi0gIEVORCBWU1MKLUVORCBPQUkyQkIxWEwKLQotTUFDUk8gQU8yMlhMCi0gIENMQVNTIENPUkUgOwotICBPUklHSU4gMCAwIDsKLSAgRk9SRUlHTiBBTzIyWEwgMCAwIDsKLSAgU0laRSAxLjYgQlkgMS43MSA7Ci0gIFNZTU1FVFJZIFggWSA7Ci0gIFNJVEUgQ29yZVNpdGUgOwotICBQSU4gWQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gT1VUUFVUIDsKLSAgICBBTlRFTk5BRElGRkFSRUEgMS43Mjg1ICBMQVlFUiBNZXRhbDEgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMS4yNSAwLjQwNSAxLjMzIDAuNjggOwotICAgICAgICBSRUNUIDEuMjYgMC42IDEuMzQgMC45OSA7Ci0gICAgICAgIFJFQ1QgMS4yNiAwLjkxIDEuNTEgMC45OSA7Ci0gICAgRU5ECi0gIEVORCBZCi0gIFBJTiBCMAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMSAwLjc5IDEuMTQgMC44NyA7Ci0gICAgICAgIFJFQ1QgMS4wNiAwLjc5IDEuMTQgMS4yMyA7Ci0gICAgRU5ECi0gIEVORCBCMAotICBQSU4gQTAKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMjYgMC42IDAuMzQgMS4xIDsKLSAgICBFTkQKLSAgRU5EIEEwCi0gIFBJTiBCMQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC42NiAwLjU5NSAwLjc0IDEuMDk1IDsKLSAgICBFTkQKLSAgRU5EIEIxCi0gIFBJTiBBMQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC40NiAwLjIzIDAuNTQgMC43MyA7Ci0gICAgRU5ECi0gIEVORCBBMQotICBQSU4gVkRECi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIFBPV0VSIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVkREIFZERCEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMS42NSAxLjYgMS43MSA7Ci0gICAgRU5ECi0gIEVORCBWREQKLSAgUElOIFZTUwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBHUk9VTkQgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWU1MgVlNTISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAwLjAwIDEuNiAwLjA2IDsKLSAgICBFTkQKLSAgRU5EIFZTUwotRU5EIEFPMjJYTAotCi1NQUNSTyBOQU5EMlgyCi0gIENMQVNTIENPUkUgOwotICBPUklHSU4gMCAwIDsKLSAgRk9SRUlHTiBOQU5EMlgyIDAgMCA7Ci0gIFNJWkUgMS4wMiBCWSAxLjcxIDsKLSAgU1lNTUVUUlkgWCBZICA7Ci0gIFNJVEUgQ29yZVNpdGUgOwotICBQSU4gWQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gT1VUUFVUIDsKLSAgICBBTlRFTk5BRElGRkFSRUEgMS43Mjg1ICBMQVlFUiBNZXRhbDEgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC44NyAwLjc2IDAuOTUgMC44NCA7Ci0gICAgRU5ECi0gIEVORCBZCi0gIFBJTiBCCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjM2IDAuNjIgMC41NyAwLjcyIDsKLSAgICBFTkQKLSAgRU5EIEIKLSAgUElOIEEKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDY1IDAuOCAwLjE1IDAuOTggOwotICAgIEVORAotICBFTkQgQQotICBQSU4gVkRECi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIFBPV0VSIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVkREIFZERCEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMS42NSAxLjAyIDEuNzEgOwotICAgIEVORAotICBFTkQgVkRECi0gIFBJTiBWU1MKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgR1JPVU5EIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVlNTIFZTUyEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMC4wMCAxLjAyIDAuMDYgOwotICAgIEVORAotICBFTkQgVlNTCi1FTkQgTkFORDJYMgotCi1NQUNSTyBOT1I0WEwKLSAgQ0xBU1MgQ09SRSA7Ci0gIE9SSUdJTiAwIDAgOwotICBGT1JFSUdOIE5PUjRYTCAwIDAgOwotICBTSVpFIDEuMiBCWSAxLjcxIDsKLSAgU1lNTUVUUlkgWCBZIDsKLSAgU0lURSBDb3JlU2l0ZSA7Ci0gIFBJTiBZCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBPVVRQVVQgOwotICAgIEFOVEVOTkFESUZGQVJFQSAxLjcyODUgIExBWUVSIE1ldGFsMSA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjM1IDAuMjkgMC40MSAwLjU0NSA7Ci0gICAgICAgIFJFQ1QgMC43OSAwLjI5IDAuODUgMC41NDUgOwotICAgICAgICBSRUNUIDAuMzUgMC40ODUgMS4xNCAwLjU0NSA7Ci0gICAgICAgIFJFQ1QgMS4wOCAwLjQ4NSAxLjE0IDEuMTEgOwotICAgICAgICBSRUNUIDEuMDQgMC45OCAxLjE0IDEuMTEgOwotICAgIEVORAotICBFTkQgWQotICBQSU4gQQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4xMjUgMC42NDUgMC4zNiAwLjg5NSA7Ci0gICAgICAgIFJFQ1QgMC4wMyAwLjgxNSAwLjM2IDAuODk1IDsKLSAgICBFTkQKLSAgRU5EIEEKLSAgUElOIEIKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuNDYgMC43MyAwLjU0IDEuMjMgOwotICAgIEVORAotICBFTkQgQgotICBQSU4gQwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC42NiAwLjY0NSAwLjc0IDEuMTQ1IDsKLSAgICBFTkQKLSAgRU5EIEMKLSAgUElOIEQKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuODYgMC42NSAwLjk0IDEuMTEgOwotICAgICAgICBSRUNUIDAuODYgMC42NSAwLjk4IDAuNzMgOwotICAgIEVORAotICBFTkQgRAotICBQSU4gVkRECi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIFBPV0VSIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVkREIFZERCEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMS42NSAxLjIgMS43MSA7Ci0gICAgRU5ECi0gIEVORCBWREQKLSAgUElOIFZTUwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBHUk9VTkQgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWU1MgVlNTISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAwLjAwIDEuMiAwLjA2IDsKLSAgICBFTkQKLSAgRU5EIFZTUwotRU5EIE5PUjRYTAotCi1NQUNSTyBNWDNYTAotICBDTEFTUyBDT1JFIDsKLSAgT1JJR0lOIDAgMCA7Ci0gIEZPUkVJR04gTVgzWEwgMCAwIDsKLSAgU0laRSAyLjggQlkgMS43MSA7Ci0gIFNZTU1FVFJZIFggWSA7Ci0gIFNJVEUgQ29yZVNpdGUgOwotICBQSU4gWQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gT1VUUFVUIDsKLSAgICBBTlRFTk5BRElGRkFSRUEgMS43Mjg1ICBMQVlFUiBNZXRhbDEgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wNiAwLjQxIDAuMTYgMC41NCA7Ci0gICAgICAgIFJFQ1QgMC4xIDAuNDEgMC4xNiAxLjI5IDsKLSAgICAgICAgUkVDVCAwLjA0IDEuMjMgMC4xNiAxLjI5IDsKLSAgICBFTkQKLSAgRU5EIFkKLSAgUElOIFMwCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAxLjk2NSAwLjc5IDIuMDQ1IDAuOTEgOwotICAgICAgICBSRUNUIDIuMDI1IDAuODMgMi4xMDUgMS4xNjUgOwotICAgICAgICBSRUNUIDIuNDYgMC45OCAyLjU0IDEuMTY1IDsKLSAgICAgICAgUkVDVCAyLjAyNSAxLjA4NSAyLjU0IDEuMTY1IDsKLSAgICBFTkQKLSAgRU5EIFMwCi0gIFBJTiBBCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAyLjI2IDAuNzQgMi4zNCAwLjk4NSA7Ci0gICAgICAgIFJFQ1QgMi4yMDUgMC43NCAyLjU0IDAuODIgOwotICAgIEVORAotICBFTkQgQQotICBQSU4gQgotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMS40NiAwLjU3NSAxLjU0IDAuNzc1IDsKLSAgICAgICAgUkVDVCAxLjQ2NSAwLjYgMS41NDUgMS4wNyA7Ci0gICAgRU5ECi0gIEVORCBCCi0gIFBJTiBTMQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMS4yNiAwLjU3NSAxLjM0IDEuMDcgOwotICAgICAgICBSRUNUIDEuMjU1IDAuOTUgMS4zNCAxLjA3IDsKLSAgICBFTkQKLSAgRU5EIFMxCi0gIFBJTiBDCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjI2IDAuNzY1IDAuMzQgMS4xOTUgOwotICAgICAgICBSRUNUIDAuMjYgMC43NjUgMC40MSAwLjg4NSA7Ci0gICAgRU5ECi0gIEVORCBDCi0gIFBJTiBWREQKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgUE9XRVIgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWREQgVkREISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAxLjY1IDIuOCAxLjcxIDsKLSAgICBFTkQKLSAgRU5EIFZERAotICBQSU4gVlNTCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIEdST1VORCA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZTUyBWU1MhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDAuMDAgMi44IDAuMDYgOwotICAgIEVORAotICBFTkQgVlNTCi1FTkQgTVgzWEwKLQotTUFDUk8gQ0xLSU5WWDgKLSAgQ0xBU1MgQ09SRSA7Ci0gIE9SSUdJTiAwIDAgOwotICBGT1JFSUdOIENMS0lOVlg4IDAgMCA7Ci0gIFNJWkUgMS44IEJZIDEuNzEgOwotICBTWU1NRVRSWSBYIFkgOwotICBTSVRFIENvcmVTaXRlIDsKLSAgUElOIFkKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIE9VVFBVVCA7Ci0gICAgQU5URU5OQURJRkZBUkVBIDEuNzI4NSAgTEFZRVIgTWV0YWwxIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMzI1IDAuOTk1IDAuMzg1IDEuMzQ1IDsKLSAgICAgICAgUkVDVCAwLjI5NSAwLjU3IDAuNDE1IDAuNjMgOwotICAgICAgICBSRUNUIDAuNzM1IDAuOTk1IDAuNzk1IDEuMzQ1IDsKLSAgICAgICAgUkVDVCAwLjcwNSAwLjU3IDAuODI1IDAuNjQ1IDsKLSAgICAgICAgUkVDVCAwLjMyNSAwLjk5NSAxLjIwNSAxLjA1NSA7Ci0gICAgICAgIFJFQ1QgMS4xNDUgMC41MjUgMS4yMDUgMC42NDUgOwotICAgICAgICBSRUNUIDEuMTQ1IDAuOTYgMS4yMDUgMS4zNDUgOwotICAgICAgICBSRUNUIDEuMjYgMC41ODUgMS4zMiAxLjAyIDsKLSAgICAgICAgUkVDVCAxLjI2IDAuNTg1IDEuMzQgMC43MyA7Ci0gICAgICAgIFJFQ1QgMS4xMzUgMC45NiAxLjYxNSAxLjAyIDsKLSAgICAgICAgUkVDVCAwLjM3IDAuNTg1IDEuNTcgMC42NDUgOwotICAgICAgICBSRUNUIDEuNTU1IDAuOTYgMS42MTUgMS4zNDUgOwotICAgICAgICBSRUNUIDEuNTI1IDAuNTcgMS42NDUgMC42MyA7Ci0gICAgRU5ECi0gIEVORCBZCi0gIFBJTiBBCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjQzNSAwLjc3IDAuNTY1IDAuODk1IDsKLSAgICAgICAgUkVDVCAwLjQzNSAwLjc3IDEuMDk1IDAuODUgOwotICAgIEVORAotICBFTkQgQQotICBQSU4gVkRECi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIFBPV0VSIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVkREIFZERCEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMS42NSAxLjggMS43MSA7Ci0gICAgRU5ECi0gIEVORCBWREQKLSAgUElOIFZTUwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBHUk9VTkQgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWU1MgVlNTISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAwLjAwIDEuOCAwLjA2IDsKLSAgICBFTkQKLSAgRU5EIFZTUwotRU5EIENMS0lOVlg4Ci0KLU1BQ1JPIE5BTkQ0QlgxCi0gIENMQVNTIENPUkUgOwotICBPUklHSU4gMCAwIDsKLSAgRk9SRUlHTiBOQU5ENEJYMSAwIDAgOwotICBTSVpFIDEuNCBCWSAxLjcxIDsKLSAgU1lNTUVUUlkgWCBZIDsKLSAgU0lURSBDb3JlU2l0ZSA7Ci0gIFBJTiBZCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBPVVRQVVQgOwotICAgIEFOVEVOTkFESUZGQVJFQSAxLjcyODUgIExBWUVSIE1ldGFsMSA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjA4IDAuNDQgMC4xNCAxLjI2IDsKLSAgICAgICAgUkVDVCAwLjA2IDAuOTggMC4xNCAxLjI2IDsKLSAgICAgICAgUkVDVCAwLjIwNSAwLjM4IDAuMjY1IDAuNSA7Ci0gICAgICAgIFJFQ1QgMC4wOCAwLjQ0IDAuMjY1IDAuNSA7Ci0gICAgICAgIFJFQ1QgMC4zNiAxLjIgMC40MiAxLjQ4IDsKLSAgICAgICAgUkVDVCAwLjA2IDEuMiAwLjg0IDEuMjYgOwotICAgICAgICBSRUNUIDAuNzggMS4yIDAuODQgMS40OCA7Ci0gICAgRU5ECi0gIEVORCBZCi0gIFBJTiBBTgotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMS4wNiAwLjc2IDEuMTQgMS4yNiA7Ci0gICAgRU5ECi0gIEVORCBBTgotICBQSU4gQgotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC42NSAwLjQzIDAuNzMgMC45MiA7Ci0gICAgICAgIFJFQ1QgMC42NSAwLjc5IDAuNzQgMC45MiA7Ci0gICAgRU5ECi0gIEVORCBCCi0gIFBJTiBDCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjQ2IDAuNjEgMC41NCAwLjkyIDsKLSAgICAgICAgUkVDVCAwLjQ3IDAuOCAwLjU1IDEuMSA7Ci0gICAgRU5ECi0gIEVORCBDCi0gIFBJTiBECi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjI2IDAuNiAwLjM0IDEuMSA7Ci0gICAgRU5ECi0gIEVORCBECi0gIFBJTiBWREQKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgUE9XRVIgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWREQgVkREISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAxLjY1IDEuNCAxLjcxIDsKLSAgICBFTkQKLSAgRU5EIFZERAotICBQSU4gVlNTCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIEdST1VORCA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZTUyBWU1MhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDAuMDAgMS40IDAuMDYgOwotICAgIEVORAotICBFTkQgVlNTCi1FTkQgTkFORDRCWDEKLQotTUFDUk8gQU9JMzFYTAotICBDTEFTUyBDT1JFIDsKLSAgT1JJR0lOIDAgMCA7Ci0gIEZPUkVJR04gQU9JMzFYTCAwIDAgOwotICBTSVpFIDEuNiBCWSAxLjcxIDsKLSAgU1lNTUVUUlkgWCBZIDsKLSAgU0lURSBDb3JlU2l0ZSA7Ci0gIFBJTiBZCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBPVVRQVVQgOwotICAgIEFOVEVOTkFESUZGQVJFQSAxLjcyODUgIExBWUVSIE1ldGFsMSA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjkgMC41NCAwLjk2IDAuNzk1IDsKLSAgICAgICAgUkVDVCAwLjkgMC43MzUgMS4zMjUgMC43OTUgOwotICAgICAgICBSRUNUIDEuMjY1IDAuNzM1IDEuMzI1IDEuMjEgOwotICAgICAgICBSRUNUIDEuMjY1IDAuNzkgMS41NCAwLjkyIDsKLSAgICBFTkQKLSAgRU5EIFkKLSAgUElOIEEwCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjA1NSAwLjc5IDAuMzQgMC44OTUgOwotICAgICAgICBSRUNUIDAuMjYgMC43OSAwLjM0IDEuMDg1IDsKLSAgICBFTkQKLSAgRU5EIEEwCi0gIFBJTiBCMAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMS4wMzUgMC45MyAxLjE2NSAxLjA4NSA7Ci0gICAgICAgIFJFQ1QgMS4wODUgMC45MyAxLjE2NSAxLjM4IDsKLSAgICBFTkQKLSAgRU5EIEIwCi0gIFBJTiBBMgotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC42NiAwLjY0NSAwLjggMC45MiA7Ci0gICAgICAgIFJFQ1QgMC43MiAwLjY0NSAwLjggMS4wODUgOwotICAgIEVORAotICBFTkQgQTIKLSAgUElOIEExCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjQ2IDAuNzkgMC41NCAwLjkyIDsKLSAgICAgICAgUkVDVCAwLjQ2NSAwLjQyNSAwLjU0NSAwLjkxIDsKLSAgICBFTkQKLSAgRU5EIEExCi0gIFBJTiBWREQKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgUE9XRVIgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWREQgVkREISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAxLjY1IDEuNiAxLjcxIDsKLSAgICBFTkQKLSAgRU5EIFZERAotICBQSU4gVlNTCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIEdST1VORCA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZTUyBWU1MhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDAuMDAgMS42IDAuMDYgOwotICAgIEVORAotICBFTkQgVlNTCi1FTkQgQU9JMzFYTAotCi1NQUNSTyBETFkxWDEKLSAgQ0xBU1MgQ09SRSA7Ci0gIE9SSUdJTiAwIDAgOwotICBGT1JFSUdOIERMWTFYMSAwIDAgOwotICBTSVpFIDEuOCBCWSAxLjcxIDsKLSAgU1lNTUVUUlkgWCBZIDsKLSAgU0lURSBDb3JlU2l0ZSA7Ci0gIFBJTiBZCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBPVVRQVVQgOwotICAgIEFOVEVOTkFESUZGQVJFQSAxLjcyODUgIExBWUVSIE1ldGFsMSA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAxLjY2IDAuNTIgMS43NCAxLjI5IDsKLSAgICBFTkQKLSAgRU5EIFkKLSAgUElOIEEKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMjggMC43NzUgMC41NCAwLjg5NSA7Ci0gICAgICAgIFJFQ1QgMC40NiAwLjYyIDAuNTQgMC45NCA7Ci0gICAgRU5ECi0gIEVORCBBCi0gIFBJTiBWREQKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgUE9XRVIgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWREQgVkREISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAxLjY1IDEuOCAxLjcxIDsKLSAgICBFTkQKLSAgRU5EIFZERAotICBQSU4gVlNTCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIEdST1VORCA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZTUyBWU1MhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDAuMDAgMS44IDAuMDYgOwotICAgIEVORAotICBFTkQgVlNTCi1FTkQgRExZMVgxCi0KLU1BQ1JPIE9BSTIxWDQKLSAgQ0xBU1MgQ09SRSA7Ci0gIE9SSUdJTiAwIDAgOwotICBGT1JFSUdOIE9BSTIxWDQgMCAwIDsKLSAgU0laRSAyLjggQlkgMS43MSA7Ci0gIFNZTU1FVFJZIFggWSA7Ci0gIFNJVEUgQ29yZVNpdGUgOwotICBQSU4gWQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gT1VUUFVUIDsKLSAgICBBTlRFTk5BRElGRkFSRUEgMS43Mjg1ICBMQVlFUiBNZXRhbDEgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC42MyAxLjAyIDAuNjkgMS4zNzUgOwotICAgICAgICBSRUNUIDEuMjUgMS4wMiAxLjMxIDEuMzc1IDsKLSAgICAgICAgUkVDVCAxLjg2IDEuMDIgMS45MiAxLjM3NSA7Ci0gICAgICAgIFJFQ1QgMS44NzUgMC40NzUgMS45MzUgMS4zIDsKLSAgICAgICAgUkVDVCAwLjYzIDEuMDIgMS45MzUgMS4wOCA7Ci0gICAgICAgIFJFQ1QgMS44NiAxLjAzNSAxLjk0IDEuMyA7Ci0gICAgICAgIFJFQ1QgMS44NzUgMC40NzUgMi4wNSAwLjU4NSA7Ci0gICAgICAgIFJFQ1QgMS44NiAxLjAzNSAyLjMzIDEuMDk1IDsKLSAgICAgICAgUkVDVCAyLjI3IDEuMDM1IDIuMzMgMS4zNzUgOwotICAgICAgICBSRUNUIDEuODc1IDAuNTI1IDIuMzg1IDAuNTg1IDsKLSAgICAgICAgUkVDVCAyLjMyNSAwLjQ3NSAyLjQ2IDAuNTM1IDsKLSAgICBFTkQKLSAgRU5EIFkKLSAgUElOIEExCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjQzNSAwLjgxNSAwLjY4IDAuOTEgOwotICAgICAgICBSRUNUIDAuNDM1IDAuODMgMS4yNjUgMC45MSA7Ci0gICAgRU5ECi0gIEVORCBBMQotICBQSU4gQTAKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMjEgMC42NiAwLjMzNSAwLjcyIDsKLSAgICAgICAgUkVDVCAwLjgzNSAwLjY1NSAwLjk1NSAwLjczIDsKLSAgICAgICAgUkVDVCAwLjMgMC42NTUgMS42MzUgMC43MTUgOwotICAgICAgICBSRUNUIDEuNTc1IDAuNjU1IDEuNjM1IDAuODUgOwotICAgICAgICBSRUNUIDEuNTc1IDAuNzkgMS43NCAwLjg1IDsKLSAgICAgICAgUkVDVCAxLjY2IDAuNzkgMS43NCAwLjkyIDsKLSAgICBFTkQKLSAgRU5EIEEwCi0gIFBJTiBCMAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMi4wMzUgMC42ODUgMi4xMTUgMC45MzUgOwotICAgICAgICBSRUNUIDIuMDM1IDAuODE1IDIuMzY1IDAuODk1IDsKLSAgICBFTkQKLSAgRU5EIEIwCi0gIFBJTiBWREQKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgUE9XRVIgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWREQgVkREISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAxLjY1IDIuOCAxLjcxIDsKLSAgICBFTkQKLSAgRU5EIFZERAotICBQSU4gVlNTCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIEdST1VORCA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZTUyBWU1MhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDAuMDAgMi44IDAuMDYgOwotICAgIEVORAotICBFTkQgVlNTCi1FTkQgT0FJMjFYNAotCi1NQUNSTyBTREZGUkhRWDgKLSAgQ0xBU1MgQ09SRSA7Ci0gIE9SSUdJTiAwIDAgOwotICBGT1JFSUdOIFNERkZSSFFYOCAwIDAgOwotICBTSVpFIDcuOCBCWSAxLjcxIDsKLSAgU1lNTUVUUlkgWCBZIDsKLSAgU0lURSBDb3JlU2l0ZSA7Ci0gIFBJTiBTRQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgNi43OCAwLjY0NSA2Ljg0IDAuOTE1IDsKLSAgICAgICAgUkVDVCA2Ljc4IDAuNjQ1IDcuNTY1IDAuNzA1IDsKLSAgICAgICAgUkVDVCA3LjM0NSAwLjYyNSA3LjU2NSAwLjcxNSA7Ci0gICAgRU5ECi0gIEVORCBTRQotICBQSU4gU0kKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDcuMTMgMC44MTUgNy4zNjUgMC45MTUgOwotICAgICAgICBSRUNUIDcuMTMgMC44MTUgNy42MSAwLjg5NSA7Ci0gICAgRU5ECi0gIEVORCBTSQotICBQSU4gRAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgNi4yNiAwLjYgNi4zNCAwLjczIDsKLSAgICAgICAgUkVDVCA2LjI2IDAuNjI1IDYuNTIgMC43MDUgOwotICAgICAgICBSRUNUIDYuNDQgMC42MjUgNi41MiAwLjg5NSA7Ci0gICAgRU5ECi0gIEVORCBECi0gIFBJTiBDSwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMy41NDUgMC41OSAzLjY1NSAwLjkxNSA7Ci0gICAgICAgIFJFQ1QgMy40IDAuODE1IDMuNjU1IDAuOTE1IDsKLSAgICBFTkQKLSAgRU5EIENLCi0gIFBJTiBSTgotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMS44MzUgMC42MjUgMS45NjUgMC43NjUgOwotICAgICAgICBSRUNUIDEuOTA1IDAuMzQ1IDEuOTY1IDAuNzY1IDsKLSAgICAgICAgUkVDVCAxLjgwNSAwLjcwNSAxLjk2NSAwLjc2NSA7Ci0gICAgICAgIFJFQ1QgMS45MDUgMC4zNDUgMi40NSAwLjQwNSA7Ci0gICAgICAgIFJFQ1QgMi4zOSAwLjM0NSAyLjQ1IDAuNzU1IDsKLSAgICAgICAgUkVDVCAyLjM5IDAuNjk1IDIuNTQ1IDAuNzU1IDsKLSAgICBFTkQKLSAgRU5EIFJOCi0gIFBJTiBRCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBPVVRQVVQgOwotICAgIEFOVEVOTkFESUZGQVJFQSAxLjcyODUgIExBWUVSIE1ldGFsMSA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjE5NSAwLjY3IDAuMjU1IDEuMzUgOwotICAgICAgICBSRUNUIDAuMjYgMC41NCAwLjM0IDAuNzMgOwotICAgICAgICBSRUNUIDAuNjA1IDAuNjcgMC42NjUgMS4zNSA7Ci0gICAgICAgIFJFQ1QgMC42OSAwLjU0IDAuNzUgMC43MyA7Ci0gICAgICAgIFJFQ1QgMS4wMTUgMC42NyAxLjA3NSAxLjM1IDsKLSAgICAgICAgUkVDVCAxLjEgMC41NCAxLjE2IDAuNzMgOwotICAgICAgICBSRUNUIDAuMTk1IDAuNjcgMS40ODUgMC43MyA7Ci0gICAgICAgIFJFQ1QgMS40MjUgMC42IDEuNDg1IDEuMzUgOwotICAgICAgICBSRUNUIDEuNTEgMC41NCAxLjU3IDAuNjYgOwotICAgICAgICBSRUNUIDEuNDI1IDAuNiAxLjU3IDAuNjYgOwotICAgIEVORAotICBFTkQgUQotICBQSU4gVkRECi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIFBPV0VSIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVkREIFZERCEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMS42NSA3LjggMS43MSA7Ci0gICAgRU5ECi0gIEVORCBWREQKLSAgUElOIFZTUwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBHUk9VTkQgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWU1MgVlNTISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAwLjAwIDcuOCAwLjA2IDsKLSAgICBFTkQKLSAgRU5EIFZTUwotRU5EIFNERkZSSFFYOAotCi1NQUNSTyBOQU5ENEJCWDIKLSAgQ0xBU1MgQ09SRSA7Ci0gIE9SSUdJTiAwIDAgOwotICBGT1JFSUdOIE5BTkQ0QkJYMiAwIDAgOwotICBTSVpFIDMuMiBCWSAxLjcxIDsKLSAgU1lNTUVUUlkgWCBZIDsKLSAgU0lURSBDb3JlU2l0ZSA7Ci0gIFBJTiBZCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBPVVRQVVQgOwotICAgIEFOVEVOTkFESUZGQVJFQSAxLjcyODUgIExBWUVSIE1ldGFsMSA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAxLjU1IDEuMDA1IDEuNjEgMS4zNzUgOwotICAgICAgICBSRUNUIDEuNTUgMS4wMDUgMS43NjUgMS4xNTUgOwotICAgICAgICBSRUNUIDEuOTYgMS4wOTUgMi4wMiAxLjM3NSA7Ci0gICAgICAgIFJFQ1QgMi4zNyAxLjA5NSAyLjQzIDEuMzc1IDsKLSAgICAgICAgUkVDVCAyLjgyIDEuMDk1IDIuODggMS4zNzUgOwotICAgICAgICBSRUNUIDIuODY1IDAuNDQgMi45MjUgMS4xNTUgOwotICAgICAgICBSRUNUIDEuNTUgMS4wOTUgMi45MjUgMS4xNTUgOwotICAgIEVORAotICBFTkQgWQotICBQSU4gRAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMi42NiAwLjUyIDIuNzQgMC43MyA7Ci0gICAgICAgIFJFQ1QgMi42ODUgMC42NSAyLjc2NSAwLjk5NSA7Ci0gICAgRU5ECi0gIEVORCBECi0gIFBJTiBDCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAyLjI1IDAuNzA1IDIuMzMgMC45OTUgOwotICAgICAgICBSRUNUIDIuMjUgMC43OSAyLjU0IDAuOTk1IDsKLSAgICBFTkQKLSAgRU5EIEMKLSAgUElOIEFOCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjU2NSAwLjgxNSAwLjY1IDEuMTY1IDsKLSAgICAgICAgUkVDVCAwLjU2NSAxLjAwNSAwLjc5NSAxLjE2NSA7Ci0gICAgRU5ECi0gIEVORCBBTgotICBQSU4gQk4KLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMjM1IDAuODE1IDAuNDY1IDAuODk1IDsKLSAgICAgICAgUkVDVCAwLjM4NSAwLjgxNSAwLjQ2NSAxLjE2NSA7Ci0gICAgRU5ECi0gIEVORCBCTgotICBQSU4gVkRECi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIFBPV0VSIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVkREIFZERCEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMS42NSAzLjIgMS43MSA7Ci0gICAgRU5ECi0gIEVORCBWREQKLSAgUElOIFZTUwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBHUk9VTkQgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWU1MgVlNTISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAwLjAwIDMuMiAwLjA2IDsKLSAgICBFTkQKLSAgRU5EIFZTUwotRU5EIE5BTkQ0QkJYMgotCi1NQUNSTyBTREZGU1hMCi0gIENMQVNTIENPUkUgOwotICBPUklHSU4gMCAwIDsKLSAgRk9SRUlHTiBTREZGU1hMIDAgMCA7Ci0gIFNJWkUgNi4yIEJZIDEuNzEgOwotICBTWU1NRVRSWSBYIFkgOwotICBTSVRFIENvcmVTaXRlIDsKLSAgUElOIFEKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIE9VVFBVVCA7Ci0gICAgQU5URU5OQURJRkZBUkVBIDEuNzI4NSAgTEFZRVIgTWV0YWwxIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDEuMDYgMC45MTUgMS4xNCAxLjExIDsKLSAgICAgICAgUkVDVCAxLjA4IDAuNTcgMS4xNiAwLjk5NSA7Ci0gICAgICAgIFJFQ1QgMS4wOCAwLjU3IDEuMiAwLjY1IDsKLSAgICBFTkQKLSAgRU5EIFEKLSAgUElOIFFOCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBPVVRQVVQgOwotICAgIEFOVEVOTkFESUZGQVJFQSAxLjcyODUgIExBWUVSIE1ldGFsMSA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjQyIDAuNTcgMC41NCAwLjYzIDsKLSAgICAgICAgUkVDVCAwLjQ2IDAuNTcgMC41MiAxLjIyIDsKLSAgICAgICAgUkVDVCAwLjQ2IDAuNTcgMC41NCAwLjczIDsKLSAgICBFTkQKLSAgRU5EIFFOCi0gIFBJTiBTRQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgNS40MjUgMC42NDUgNS40ODUgMS4wMjUgOwotICAgICAgICBSRUNUIDUuMzIgMC45NjUgNS40ODUgMS4wMjUgOwotICAgICAgICBSRUNUIDUuNjE1IDAuNTg1IDUuNjc1IDAuNzA1IDsKLSAgICAgICAgUkVDVCA1LjgzNSAwLjYyNSA1Ljk2NSAwLjcwNSA7Ci0gICAgICAgIFJFQ1QgNS40MjUgMC42NDUgNS45NyAwLjcwNSA7Ci0gICAgRU5ECi0gIEVORCBTRQotICBQSU4gU0kKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDUuNTg1IDAuODE1IDUuOTQ1IDAuODk1IDsKLSAgICAgICAgUkVDVCA1Ljg2NSAwLjgwNSA1Ljk0NSAxLjAyNSA7Ci0gICAgICAgIFJFQ1QgNS43NTUgMC44MTUgNS45NDUgMS4wMjUgOwotICAgIEVORAotICBFTkQgU0kKLSAgUElOIEQKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDQuOTggMC41ODUgNS4wNiAwLjk4IDsKLSAgICAgICAgUkVDVCA0Ljk4IDAuNTg1IDUuMTY1IDAuNzA1IDsKLSAgICBFTkQKLSAgRU5EIEQKLSAgUElOIENLCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCA0LjYzNSAwLjYyNSA0Ljc2NSAwLjcwNSA7Ci0gICAgICAgIFJFQ1QgNC42ODUgMC42MjUgNC43NjUgMC45NiA7Ci0gICAgICAgIFJFQ1QgNC42ODUgMC44OCA0Ljg4IDAuOTYgOwotICAgIEVORAotICBFTkQgQ0sKLSAgUElOIFNOCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAxLjgzNSAwLjgxNSAxLjk2NSAwLjg5NSA7Ci0gICAgICAgIFJFQ1QgMi4xMDUgMC4yOSAyLjE2NSAwLjg3NSA7Ci0gICAgICAgIFJFQ1QgMS43MTUgMC44MTUgMi4xNjUgMC44NzUgOwotICAgICAgICBSRUNUIDIuMTA1IDAuMjkgMi43NyAwLjM1IDsKLSAgICAgICAgUkVDVCAyLjcxIDAuMjkgMi43NyAwLjQ3IDsKLSAgICAgICAgUkVDVCAzLjA5IDAuMzUgMy4xNSAwLjQ3IDsKLSAgICAgICAgUkVDVCAyLjcxIDAuNDEgMy4xNSAwLjQ3IDsKLSAgICBFTkQKLSAgRU5EIFNOCi0gIFBJTiBWREQKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgUE9XRVIgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWREQgVkREISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAxLjY1IDYuMiAxLjcxIDsKLSAgICBFTkQKLSAgRU5EIFZERAotICBQSU4gVlNTCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIEdST1VORCA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZTUyBWU1MhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDAuMDAgNi4yIDAuMDYgOwotICAgIEVORAotICBFTkQgVlNTCi1FTkQgU0RGRlNYTAotCi1NQUNSTyBNWDJYNAotICBDTEFTUyBDT1JFIDsKLSAgT1JJR0lOIDAgMCA7Ci0gIEZPUkVJR04gTVgyWDQgMCAwIDsKLSAgU0laRSAyLjQgQlkgMS43MSA7Ci0gIFNZTU1FVFJZIFggWSA7Ci0gIFNJVEUgQ29yZVNpdGUgOwotICBQSU4gWQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gT1VUUFVUIDsKLSAgICBBTlRFTk5BRElGRkFSRUEgMS43Mjg1ICBMQVlFUiBNZXRhbDEgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMS40OTUgMC40MiAxLjYzIDAuNDggOwotICAgICAgICBSRUNUIDEuNTI1IDEuMDUgMS41ODUgMS40OCA7Ci0gICAgICAgIFJFQ1QgMS41NyAwLjQyIDEuNjMgMS4xMSA7Ci0gICAgICAgIFJFQ1QgMS41NyAwLjk4IDEuNzQgMS4xMSA7Ci0gICAgICAgIFJFQ1QgMS41MjUgMS4wNSAxLjk5NSAxLjExIDsKLSAgICAgICAgUkVDVCAxLjkzNSAwLjM5IDEuOTk1IDAuNTMgOwotICAgICAgICBSRUNUIDEuNTcgMC40NyAxLjk5NSAwLjUzIDsKLSAgICAgICAgUkVDVCAxLjkzNSAxLjA1IDEuOTk1IDEuNDggOwotICAgIEVORAotICBFTkQgWQotICBQSU4gQgotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMS4yMzUgMC44MTUgMS4zMTUgMS4xMDUgOwotICAgICAgICBSRUNUIDEuMTggMC45NSAxLjMxNSAxLjEwNSA7Ci0gICAgICAgIFJFQ1QgMS4yMzUgMC44MTUgMS40NyAwLjg5NSA7Ci0gICAgRU5ECi0gIEVORCBCCi0gIFBJTiBBCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjQ2IDAuNjMgMC41NCAxLjEzIDsKLSAgICBFTkQKLSAgRU5EIEEKLSAgUElOIFMwCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjI2IDAuOTggMC4zNCAxLjI5IDsKLSAgICAgICAgUkVDVCAwLjY0IDAuOTEgMC43IDEuMjkgOwotICAgICAgICBSRUNUIDAuMjYgMS4yMyAwLjcgMS4yOSA7Ci0gICAgICAgIFJFQ1QgMC42NCAwLjkxIDAuNzYgMC45NyA7Ci0gICAgRU5ECi0gIEVORCBTMAotICBQSU4gVkRECi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIFBPV0VSIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVkREIFZERCEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMS42NSAyLjQgMS43MSA7Ci0gICAgRU5ECi0gIEVORCBWREQKLSAgUElOIFZTUwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBHUk9VTkQgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWU1MgVlNTISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAwLjAwIDIuNCAwLjA2IDsKLSAgICBFTkQKLSAgRU5EIFZTUwotRU5EIE1YMlg0Ci0KLU1BQ1JPIE5PUjRCWEwKLSAgQ0xBU1MgQ09SRSA7Ci0gIE9SSUdJTiAwIDAgOwotICBGT1JFSUdOIE5PUjRCWEwgMCAwIDsKLSAgU0laRSAxLjggQlkgMS43MSA7Ci0gIFNZTU1FVFJZIFggWSA7Ci0gIFNJVEUgQ29yZVNpdGUgOwotICBQSU4gWQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gT1VUUFVUIDsKLSAgICBBTlRFTk5BRElGRkFSRUEgMS43Mjg1ICBMQVlFUiBNZXRhbDEgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wNiAwLjYgMC4xNCAwLjczIDsKLSAgICAgICAgUkVDVCAwLjA4IDAuNDU1IDAuMTQgMS4wOCA7Ci0gICAgICAgIFJFQ1QgMC4wOCAxLjAyIDAuNTM1IDEuMDggOwotICAgICAgICBSRUNUIDAuNDc1IDEuMDIgMC41MzUgMS4xNCA7Ci0gICAgICAgIFJFQ1QgMC42MDUgMC4yNiAwLjY2NSAwLjUxNSA7Ci0gICAgICAgIFJFQ1QgMC45ODUgMC4yOSAxLjA0NSAwLjUxNSA7Ci0gICAgICAgIFJFQ1QgMC4wOCAwLjQ1NSAxLjA0NSAwLjUxNSA7Ci0gICAgICAgIFJFQ1QgMC45ODUgMC4yOSAxLjEwNSAwLjM1IDsKLSAgICBFTkQKLSAgRU5EIFkKLSAgUElOIEFOCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAxLjM4IDAuNjE1IDEuNDYgMC44OTUgOwotICAgICAgICBSRUNUIDEuMjY1IDAuODE1IDEuNTY1IDAuODk1IDsKLSAgICBFTkQKLSAgRU5EIEFOCi0gIFBJTiBCCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjkyNSAwLjYxNSAxLjAwNSAwLjg3IDsKLSAgICAgICAgUkVDVCAwLjkyNSAwLjc5IDEuMTQgMC44NyA7Ci0gICAgICAgIFJFQ1QgMS4wNiAwLjc5IDEuMTQgMC45OCA7Ci0gICAgRU5ECi0gIEVORCBCCi0gIFBJTiBDCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjY4NSAwLjY5NSAwLjc2NSAxLjA4NSA7Ci0gICAgICAgIFJFQ1QgMC42MzUgMS4wMDUgMC43NjUgMS4wODUgOwotICAgICAgICBSRUNUIDAuNjg1IDAuNjk1IDAuODI1IDAuNzc1IDsKLSAgICBFTkQKLSAgRU5EIEMKLSAgUElOIEQKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuNDU1IDAuNjE1IDAuNTM1IDAuOTIgOwotICAgICAgICBSRUNUIDAuMjYgMC43MyAwLjUzNSAwLjkyIDsKLSAgICBFTkQKLSAgRU5EIEQKLSAgUElOIFZERAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBQT1dFUiA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZERCBWREQhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDEuNjUgMS44IDEuNzEgOwotICAgIEVORAotICBFTkQgVkRECi0gIFBJTiBWU1MKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgR1JPVU5EIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVlNTIFZTUyEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMC4wMCAxLjggMC4wNiA7Ci0gICAgRU5ECi0gIEVORCBWU1MKLUVORCBOT1I0QlhMCi0KLU1BQ1JPIE1YSTRYMQotICBDTEFTUyBDT1JFIDsKLSAgT1JJR0lOIDAgMCA7Ci0gIEZPUkVJR04gTVhJNFgxIDAgMCA7Ci0gIFNJWkUgNC4yIEJZIDEuNzEgOwotICBTWU1NRVRSWSBYIFkgOwotICBTSVRFIENvcmVTaXRlIDsKLSAgUElOIFkKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIE9VVFBVVCA7Ci0gICAgQU5URU5OQURJRkZBUkVBIDEuNzI4NSAgTEFZRVIgTWV0YWwxIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDYgMC42IDAuMjEgMC43MyA7Ci0gICAgICAgIFJFQ1QgMC4xMyAwLjU0IDAuMjEgMS4zNCA7Ci0gICAgRU5ECi0gIEVORCBZCi0gIFBJTiBTMAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMy40MDUgMC44MTUgMy45MDUgMC44OTUgOwotICAgIEVORAotICBFTkQgUzAKLSAgUElOIEEKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDMuNDA1IDAuOTk1IDMuNTY1IDEuMTkgOwotICAgICAgICBSRUNUIDMuNDA1IDEuMDY1IDMuNzkgMS4xOSA7Ci0gICAgRU5ECi0gIEVORCBBCi0gIFBJTiBCCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAyLjgwNSAwLjk0IDIuOTY1IDEuMTkgOwotICAgIEVORAotICBFTkQgQgotICBQSU4gQwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMi41ODUgMC44MDUgMi43MDUgMS4wODUgOwotICAgICAgICBSRUNUIDIuNDA1IDEuMDA1IDIuNzA1IDEuMDg1IDsKLSAgICBFTkQKLSAgRU5EIEMKLSAgUElOIEQKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDEuNTkgMC44MTUgMS43NjUgMC44OTUgOwotICAgICAgICBSRUNUIDEuNjg1IDAuODE1IDEuNzY1IDEgOwotICAgICAgICBSRUNUIDEuNjg1IDAuOSAxLjk4NSAxIDsKLSAgICBFTkQKLSAgRU5EIEQKLSAgUElOIFMxCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjQ2IDAuNDEgMC41NCAwLjU0IDsKLSAgICAgICAgUkVDVCAwLjQ4IDAuMjcgMC41NCAwLjgzIDsKLSAgICAgICAgUkVDVCAwLjQ4IDAuMjcgMS4wOTUgMC4zMyA7Ci0gICAgICAgIFJFQ1QgMS4wMzUgMC4yNDUgMS40OSAwLjMwNSA7Ci0gICAgICAgIFJFQ1QgMS40MyAwLjI0NSAxLjQ5IDAuODggOwotICAgIEVORAotICBFTkQgUzEKLSAgUElOIFZERAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBQT1dFUiA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZERCBWREQhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDEuNjUgNC4yIDEuNzEgOwotICAgIEVORAotICBFTkQgVkRECi0gIFBJTiBWU1MKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgR1JPVU5EIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVlNTIFZTUyEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMC4wMCA0LjIgMC4wNiA7Ci0gICAgRU5ECi0gIEVORCBWU1MKLUVORCBNWEk0WDEKLQotTUFDUk8gT0FJMjFYMgotICBDTEFTUyBDT1JFIDsKLSAgT1JJR0lOIDAgMCA7Ci0gIEZPUkVJR04gT0FJMjFYMiAwIDAgOwotICBTSVpFIDEuOCBCWSAxLjcxIDsKLSAgU1lNTUVUUlkgWCBZIDsKLSAgU0lURSBDb3JlU2l0ZSA7Ci0gIFBJTiBZCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBPVVRQVVQgOwotICAgIEFOVEVOTkFESUZGQVJFQSAxLjcyODUgIExBWUVSIE1ldGFsMSA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjY0NSAxLjE0IDAuNzA1IDEuNDggOwotICAgICAgICBSRUNUIDEuMDYgMC43OSAxLjE0IDAuOTIgOwotICAgICAgICBSRUNUIDEuMDYgMC44NiAxLjMgMC45MiA7Ci0gICAgICAgIFJFQ1QgMS4xOTUgMS4xNCAxLjI1NSAxLjQ4IDsKLSAgICAgICAgUkVDVCAxLjI0IDAuNiAxLjMgMS4yIDsKLSAgICAgICAgUkVDVCAwLjY0NSAxLjE0IDEuMyAxLjIgOwotICAgICAgICBSRUNUIDEuMzI1IDAuNTQgMS4zODUgMC42NiA7Ci0gICAgICAgIFJFQ1QgMS4yNCAwLjYgMS4zODUgMC42NiA7Ci0gICAgRU5ECi0gIEVORCBZCi0gIFBJTiBBMQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC40NiAwLjk2IDAuNTQgMS4zIDsKLSAgICAgICAgUkVDVCAwLjQ2IDAuOTYgMC43IDEuMDQgOwotICAgIEVORAotICBFTkQgQTEKLSAgUElOIEEwCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjM0NSAwLjc4IDAuOTQgMC44NiA7Ci0gICAgICAgIFJFQ1QgMC44NiAwLjc4IDAuOTQgMC45MiA7Ci0gICAgRU5ECi0gIEVORCBBMAotICBQSU4gQjAKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDEuNCAwLjc2IDEuNDggMS4yIDsKLSAgICAgICAgUkVDVCAxLjQgMC43OSAxLjU0IDAuOTIgOwotICAgIEVORAotICBFTkQgQjAKLSAgUElOIFZERAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBQT1dFUiA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZERCBWREQhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDEuNjUgMS44IDEuNzEgOwotICAgIEVORAotICBFTkQgVkRECi0gIFBJTiBWU1MKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgR1JPVU5EIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVlNTIFZTUyEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMC4wMCAxLjggMC4wNiA7Ci0gICAgRU5ECi0gIEVORCBWU1MKLUVORCBPQUkyMVgyCi0KLU1BQ1JPIE5BTkQ0Qlg0Ci0gIENMQVNTIENPUkUgOwotICBPUklHSU4gMCAwIDsKLSAgRk9SRUlHTiBOQU5ENEJYNCAwIDAgOwotICBTSVpFIDQuNCBCWSAxLjcxIDsKLSAgU1lNTUVUUlkgWCBZIDsKLSAgU0lURSBDb3JlU2l0ZSA7Ci0gIFBJTiBZCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBPVVRQVVQgOwotICAgIEFOVEVOTkFESUZGQVJFQSAxLjcyODUgIExBWUVSIE1ldGFsMSA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjY4NSAwLjk2NSAwLjc0NSAxLjM1NSA7Ci0gICAgICAgIFJFQ1QgMS4wOTUgMC45NjUgMS4xNTUgMS4zNTUgOwotICAgICAgICBSRUNUIDEuNDggMC42NTUgMS41NCAxLjExIDsKLSAgICAgICAgUkVDVCAxLjQ2IDAuOTk1IDEuNTggMS4xMSA7Ci0gICAgICAgIFJFQ1QgMC42ODUgMC45NjUgMS41NCAxLjAyNSA7Ci0gICAgICAgIFJFQ1QgMS41MiAwLjk5NSAxLjU4IDEuMzU1IDsKLSAgICAgICAgUkVDVCAxLjkzIDAuOTk1IDEuOTkgMS4zNTUgOwotICAgICAgICBSRUNUIDIuMzQgMC45OTUgMi40IDEuMzU1IDsKLSAgICAgICAgUkVDVCAyLjc1IDAuOTk1IDIuODEgMS4zNTUgOwotICAgICAgICBSRUNUIDMuMSAwLjUwNSAzLjE2IDAuNzE1IDsKLSAgICAgICAgUkVDVCAxLjQ4IDAuNjU1IDMuMTYgMC43MTUgOwotICAgICAgICBSRUNUIDMuMzA1IDAuOTk1IDMuMzY1IDEuMzU1IDsKLSAgICAgICAgUkVDVCAzLjUzNSAwLjQyNSAzLjU5NSAwLjU2NSA7Ci0gICAgICAgIFJFQ1QgMS40NiAwLjk5NSAzLjc3NSAxLjA1NSA7Ci0gICAgICAgIFJFQ1QgMy43MTUgMC45OTUgMy43NzUgMS4zNTUgOwotICAgICAgICBSRUNUIDMuOTcgMC40MjUgNC4wMyAwLjU2NSA7Ci0gICAgICAgIFJFQ1QgMy4xIDAuNTA1IDQuMDMgMC41NjUgOwotICAgIEVORAotICBFTkQgWQotICBQSU4gQU4KLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDYgMC42IDAuMTQgMC43MyA7Ci0gICAgICAgIFJFQ1QgMC4xIDAuNjUgMC4xOCAxLjA2IDsKLSAgICBFTkQKLSAgRU5EIEFOCi0gIFBJTiBCCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAxLjY0IDAuODE1IDIuMTQgMC44OTUgOwotICAgIEVORAotICBFTkQgQgotICBQSU4gQwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMy4wMzUgMC44MTUgMy4zMiAwLjg5NSA7Ci0gICAgICAgIFJFQ1QgMy4yNiAwLjY2NSAzLjMyIDAuODk1IDsKLSAgICAgICAgUkVDVCAyLjQ1IDAuODM1IDMuMzIgMC44OTUgOwotICAgICAgICBSRUNUIDMuMjYgMC42NjUgMy4zOCAwLjcyNSA7Ci0gICAgRU5ECi0gIEVORCBDCi0gIFBJTiBECi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAzLjYyIDAuNjY1IDMuNzY1IDAuODk1IDsKLSAgICAgICAgUkVDVCAzLjQ0IDAuODE1IDMuNzY1IDAuODk1IDsKLSAgICAgICAgUkVDVCAzLjYyIDAuNjY1IDMuOTIgMC43NDUgOwotICAgIEVORAotICBFTkQgRAotICBQSU4gVkRECi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIFBPV0VSIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVkREIFZERCEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMS42NSA0LjQgMS43MSA7Ci0gICAgRU5ECi0gIEVORCBWREQKLSAgUElOIFZTUwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBHUk9VTkQgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWU1MgVlNTISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAwLjAwIDQuNCAwLjA2IDsKLSAgICBFTkQKLSAgRU5EIFZTUwotRU5EIE5BTkQ0Qlg0Ci0KLU1BQ1JPIFRJRUhJCi0gIENMQVNTIENPUkUgOwotICBPUklHSU4gMCAwIDsKLSAgRk9SRUlHTiBUSUVISSAwIDAgOwotICBTSVpFIDAuNiBCWSAxLjcxIDsKLSAgU1lNTUVUUlkgWCBZIDsKLSAgU0lURSBDb3JlU2l0ZSA7Ci0gIFBJTiBZCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBPVVRQVVQgOwotICAgIEFOVEVOTkFESUZGQVJFQSAxLjcyODUgIExBWUVSIE1ldGFsMSA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjA2IDAuOSAwLjE0IDEuNCA7Ci0gICAgRU5ECi0gIEVORCBZCi0gIFBJTiBWREQKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgUE9XRVIgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWREQgVkREISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAxLjY1IDAuNiAxLjcxIDsKLSAgICBFTkQKLSAgRU5EIFZERAotICBQSU4gVlNTCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIEdST1VORCA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZTUyBWU1MhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDAuMDAgMC42IDAuMDYgOwotICAgIEVORAotICBFTkQgVlNTCi1FTkQgVElFSEkKLQotTUFDUk8gQ0xLSU5WWDEyCi0gIENMQVNTIENPUkUgOwotICBPUklHSU4gMCAwIDsKLSAgRk9SRUlHTiBDTEtJTlZYMTIgMCAwIDsKLSAgU0laRSAyLjQgQlkgMS43MSA7Ci0gIFNZTU1FVFJZIFggWSA7Ci0gIFNJVEUgQ29yZVNpdGUgOwotICBQSU4gWQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gT1VUUFVUIDsKLSAgICBBTlRFTk5BRElGRkFSRUEgMS43Mjg1ICBMQVlFUiBNZXRhbDEgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4yNzUgMC45IDAuMzM1IDEuMzcgOwotICAgICAgICBSRUNUIDAuMzMgMC4yMyAwLjM5IDAuNTI1IDsKLSAgICAgICAgUkVDVCAwLjc0IDAuMjMgMC44IDAuNTI1IDsKLSAgICAgICAgUkVDVCAwLjc0IDAuOSAwLjggMS4zNyA7Ci0gICAgICAgIFJFQ1QgMS4xNSAwLjIzIDEuMjEgMC41MjUgOwotICAgICAgICBSRUNUIDEuMTUgMC45IDEuMjEgMS4zNyA7Ci0gICAgICAgIFJFQ1QgMS41NiAwLjIzIDEuNjIgMC41MjUgOwotICAgICAgICBSRUNUIDEuNTYgMC45IDEuNjIgMS4zNyA7Ci0gICAgICAgIFJFQ1QgMS45OSAwLjIzIDIuMDUgMC41MjUgOwotICAgICAgICBSRUNUIDAuMzMgMC40NjUgMi4xNjUgMC41MjUgOwotICAgICAgICBSRUNUIDIuMDYgMC45IDIuMTQgMS4zNyA7Ci0gICAgICAgIFJFQ1QgMi4xMDUgMC40NjUgMi4xNjUgMC45NiA7Ci0gICAgICAgIFJFQ1QgMC4yNzUgMC45IDIuMTY1IDAuOTYgOwotICAgIEVORAotICBFTkQgWQotICBQSU4gQQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC40MzUgMC42MjUgMC41NjUgMC43MDUgOwotICAgICAgICBSRUNUIDAuMzc1IDAuNjI1IDIuMDA1IDAuNjg1IDsKLSAgICBFTkQKLSAgRU5EIEEKLSAgUElOIFZERAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBQT1dFUiA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZERCBWREQhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDEuNjUgMi40IDEuNzEgOwotICAgIEVORAotICBFTkQgVkRECi0gIFBJTiBWU1MKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgR1JPVU5EIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVlNTIFZTUyEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMC4wMCAyLjQgMC4wNiA7Ci0gICAgRU5ECi0gIEVORCBWU1MKLUVORCBDTEtJTlZYMTIKLQotTUFDUk8gT0EyMVg0Ci0gIENMQVNTIENPUkUgOwotICBPUklHSU4gMCAwIDsKLSAgRk9SRUlHTiBPQTIxWDQgMCAwIDsKLSAgU0laRSAyLjIgQlkgMS43MSA7Ci0gIFNZTU1FVFJZIFggWSA7Ci0gIFNJVEUgQ29yZVNpdGUgOwotICBQSU4gWQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gT1VUUFVUIDsKLSAgICBBTlRFTk5BRElGRkFSRUEgMS43Mjg1ICBMQVlFUiBNZXRhbDEgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMS4yIDAuOTQgMS4yNiAxLjM1IDsKLSAgICAgICAgUkVDVCAxLjMgMC41NCAxLjM2IDAuNjggOwotICAgICAgICBSRUNUIDEuNjEgMC45NCAxLjY3IDEuMzUgOwotICAgICAgICBSRUNUIDEuMyAwLjYyIDEuODE1IDAuNjggOwotICAgICAgICBSRUNUIDEuNzEgMC41NCAxLjc3IDAuNjggOwotICAgICAgICBSRUNUIDEuNzU1IDAuNjIgMS44MTUgMSA7Ci0gICAgICAgIFJFQ1QgMS43NTUgMC43OSAxLjk0IDEgOwotICAgICAgICBSRUNUIDEuMiAwLjk0IDEuOTQgMSA7Ci0gICAgRU5ECi0gIEVORCBZCi0gIFBJTiBBMAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wNiAwLjYzIDAuMTQgMS4xMyA7Ci0gICAgRU5ECi0gIEVORCBBMAotICBQSU4gQTEKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMjkgMC42MyAwLjYwNSAwLjcxIDsKLSAgICAgICAgUkVDVCAwLjQzNSAwLjYzIDAuNjA1IDAuODk1IDsKLSAgICBFTkQKLSAgRU5EIEExCi0gIFBJTiBCMAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC43MiAwLjYxIDAuOCAwLjg3IDsKLSAgICAgICAgUkVDVCAwLjcyIDAuNzkgMC45NCAwLjg3IDsKLSAgICAgICAgUkVDVCAwLjg2IDAuNzkgMC45NCAwLjk3IDsKLSAgICBFTkQKLSAgRU5EIEIwCi0gIFBJTiBWREQKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgUE9XRVIgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWREQgVkREISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAxLjY1IDIuMiAxLjcxIDsKLSAgICBFTkQKLSAgRU5EIFZERAotICBQSU4gVlNTCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIEdST1VORCA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZTUyBWU1MhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDAuMDAgMi4yIDAuMDYgOwotICAgIEVORAotICBFTkQgVlNTCi1FTkQgT0EyMVg0Ci0KLU1BQ1JPIEFPSTIyMVhMCi0gIENMQVNTIENPUkUgOwotICBPUklHSU4gMCAwIDsKLSAgRk9SRUlHTiBBT0kyMjFYTCAwIDAgOwotICBTSVpFIDIgQlkgMS43MSA7Ci0gIFNZTU1FVFJZIFggWSA7Ci0gIFNJVEUgQ29yZVNpdGUgOwotICBQSU4gWQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gT1VUUFVUIDsKLSAgICBBTlRFTk5BRElGRkFSRUEgMS43Mjg1ICBMQVlFUiBNZXRhbDEgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC45NjUgMC40NzUgMS4wMjUgMC43IDsKLSAgICAgICAgUkVDVCAxLjcxNSAwLjQ3NSAxLjc3NSAwLjcgOwotICAgICAgICBSRUNUIDAuOTY1IDAuNjQgMS44OCAwLjcgOwotICAgICAgICBSRUNUIDEuODIgMC42NCAxLjg4IDEuMjEgOwotICAgICAgICBSRUNUIDEuODIgMC43OSAxLjk0IDAuOTIgOwotICAgIEVORAotICBFTkQgWQotICBQSU4gQjEKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuNjkgMC44MTUgMC45NjUgMC45NTUgOwotICAgICAgICBSRUNUIDAuNjkgMC44NzUgMS4xMyAwLjk1NSA7Ci0gICAgRU5ECi0gIEVORCBCMQotICBQSU4gQjAKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDEuMjQ1IDAuODE1IDEuMzI1IDEuMDg1IDsKLSAgICAgICAgUkVDVCAxLjIzIDAuODE1IDEuNTQgMC44OTUgOwotICAgIEVORAotICBFTkQgQjAKLSAgUElOIEEwCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjIzNSAwLjgzNSAwLjM5NSAxLjA4NSA7Ci0gICAgRU5ECi0gIEVORCBBMAotICBQSU4gQzAKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDEuNjQgMC44IDEuNzIgMS4wODUgOwotICAgICAgICBSRUNUIDEuNDI1IDEuMDA1IDEuNzIgMS4wODUgOwotICAgIEVORAotICBFTkQgQzAKLSAgUElOIEExCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjQzNSAwLjI0NSAwLjU2NSAwLjMyNSA7Ci0gICAgICAgIFJFQ1QgMC40NyAwLjI0NSAwLjU2NSAwLjczNSA7Ci0gICAgICAgIFJFQ1QgMC40NyAwLjY1NSAwLjU5IDAuNzM1IDsKLSAgICBFTkQKLSAgRU5EIEExCi0gIFBJTiBWREQKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgUE9XRVIgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWREQgVkREISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAxLjY1IDIgMS43MSA7Ci0gICAgRU5ECi0gIEVORCBWREQKLSAgUElOIFZTUwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBHUk9VTkQgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWU1MgVlNTISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAwLjAwIDIgMC4wNiA7Ci0gICAgRU5ECi0gIEVORCBWU1MKLUVORCBBT0kyMjFYTAotCi1NQUNSTyBETFkyWDEKLSAgQ0xBU1MgQ09SRSA7Ci0gIE9SSUdJTiAwIDAgOwotICBGT1JFSUdOIERMWTJYMSAwIDAgOwotICBTSVpFIDMuNCBCWSAxLjcxIDsKLSAgU1lNTUVUUlkgWCBZIDsKLSAgU0lURSBDb3JlU2l0ZSA7Ci0gIFBJTiBZCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBPVVRQVVQgOwotICAgIEFOVEVOTkFESUZGQVJFQSAxLjcyODUgIExBWUVSIE1ldGFsMSA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjA2IDAuNiAwLjE0IDAuNzMgOwotICAgICAgICBSRUNUIDAuMDggMC40MTUgMC4xNCAxLjE3NSA7Ci0gICAgICAgIFJFQ1QgMC4wOCAxLjExNSAwLjMzIDEuMTc1IDsKLSAgICAgICAgUkVDVCAwLjI3IDAuMzU1IDAuMzMgMC40NzUgOwotICAgICAgICBSRUNUIDAuMDggMC40MTUgMC4zMyAwLjQ3NSA7Ci0gICAgICAgIFJFQ1QgMC4yNyAxLjExNSAwLjMzIDEuMzk1IDsKLSAgICBFTkQKLSAgRU5EIFkKLSAgUElOIEEKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDEuNDQgMC42MjUgMS41MiAxLjA4IDsKLSAgICAgICAgUkVDVCAxLjQ2IDAuNiAxLjU0IDAuNzMgOwotICAgIEVORAotICBFTkQgQQotICBQSU4gVkRECi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIFBPV0VSIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVkREIFZERCEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMS42NSAzLjQgMS43MSA7Ci0gICAgRU5ECi0gIEVORCBWREQKLSAgUElOIFZTUwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBHUk9VTkQgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWU1MgVlNTISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAwLjAwIDMuNCAwLjA2IDsKLSAgICBFTkQKLSAgRU5EIFZTUwotRU5EIERMWTJYMQotCi1NQUNSTyBPQUkzMVg0Ci0gIENMQVNTIENPUkUgOwotICBPUklHSU4gMCAwIDsKLSAgRk9SRUlHTiBPQUkzMVg0IDAgMCA7Ci0gIFNJWkUgNCBCWSAxLjcxIDsKLSAgU1lNTUVUUlkgWCBZIDsKLSAgU0lURSBDb3JlU2l0ZSA7Ci0gIFBJTiBZCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBPVVRQVVQgOwotICAgIEFOVEVOTkFESUZGQVJFQSAxLjcyODUgIExBWUVSIE1ldGFsMSA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjkxNSAxLjEyNSAwLjk3NSAxLjQwNSA7Ci0gICAgICAgIFJFQ1QgMi4xNjUgMS4xMjUgMi4yMjUgMS40MDUgOwotICAgICAgICBSRUNUIDAuOTE1IDEuMTI1IDMuMTM1IDEuMTg1IDsKLSAgICAgICAgUkVDVCAzLjA2IDAuNDg1IDMuMTIgMS4xODUgOwotICAgICAgICBSRUNUIDMuMDc1IDAuOTggMy4xMzUgMS40MDUgOwotICAgICAgICBSRUNUIDMuMDYgMC45OCAzLjE0IDEuMTEgOwotICAgICAgICBSRUNUIDMuMDYgMC40ODUgMy4yNjUgMC41OTUgOwotICAgICAgICBSRUNUIDMuMDYgMS4wNSAzLjU0NSAxLjExIDsKLSAgICAgICAgUkVDVCAzLjQ4NSAxLjAxNSAzLjU0NSAxLjQwNSA7Ci0gICAgICAgIFJFQ1QgMy4wNiAwLjUzNSAzLjYgMC41OTUgOwotICAgICAgICBSRUNUIDMuNTQgMC40ODUgMy42NzUgMC41NDUgOwotICAgIEVORAotICBFTkQgWQotICBQSU4gQjAKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDMuMjIgMC44IDMuNzA1IDAuODggOwotICAgICAgICBSRUNUIDMuNDI1IDAuOCAzLjcwNSAwLjg5NSA7Ci0gICAgRU5ECi0gIEVORCBCMAotICBQSU4gQTAKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMjM1IDAuODE1IDAuMzY1IDAuOTM1IDsKLSAgICAgICAgUkVDVCAwLjIzNSAwLjg3NSAwLjY2NSAwLjkzNSA7Ci0gICAgICAgIFJFQ1QgMC42MDUgMC44NzUgMC42NjUgMS4wMjUgOwotICAgICAgICBSRUNUIDEuNDI1IDAuODg1IDEuNTQ1IDEuMDI1IDsKLSAgICAgICAgUkVDVCAyLjc2IDAuODU1IDIuODIgMS4wMjUgOwotICAgICAgICBSRUNUIDAuNjA1IDAuOTY1IDIuODIgMS4wMjUgOwotICAgIEVORAotICBFTkQgQTAKLSAgUElOIEExCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjQ0NSAwLjY1NSAwLjgyNSAwLjcxNSA7Ci0gICAgICAgIFJFQ1QgMC43NjUgMC42NTUgMC44MjUgMC44NjUgOwotICAgICAgICBSRUNUIDEuMjY1IDAuNzI1IDEuMzI1IDAuODY1IDsKLSAgICAgICAgUkVDVCAwLjc2NSAwLjgwNSAxLjMyNSAwLjg2NSA7Ci0gICAgICAgIFJFQ1QgMS4yNjUgMC43MjUgMS43MDUgMC43ODUgOwotICAgICAgICBSRUNUIDEuNjQ1IDAuNzI1IDEuNzA1IDAuODY1IDsKLSAgICAgICAgUkVDVCAyLjI2IDAuNiAyLjMyIDAuODY1IDsKLSAgICAgICAgUkVDVCAxLjY0NSAwLjgwNSAyLjMyIDAuODY1IDsKLSAgICAgICAgUkVDVCAyLjI2IDAuNiAyLjM0IDAuNzQ1IDsKLSAgICAgICAgUkVDVCAyLjI2IDAuNjI1IDIuNTY1IDAuNzQ1IDsKLSAgICBFTkQKLSAgRU5EIEExCi0gIFBJTiBBMgotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMS4wMzUgMC42MjUgMS4xNjUgMC43MDUgOwotICAgICAgICBSRUNUIDAuOTI1IDAuNjQ1IDEuMTY1IDAuNzA1IDsKLSAgICAgICAgUkVDVCAxLjEwNSAwLjU2NSAxLjg2NSAwLjYyNSA7Ci0gICAgICAgIFJFQ1QgMS44MDUgMC41NjUgMS44NjUgMC43MDUgOwotICAgICAgICBSRUNUIDEuODA1IDAuNjQ1IDIuMTE1IDAuNzA1IDsKLSAgICBFTkQKLSAgRU5EIEEyCi0gIFBJTiBWREQKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgUE9XRVIgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWREQgVkREISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAxLjY1IDQgMS43MSA7Ci0gICAgRU5ECi0gIEVORCBWREQKLSAgUElOIFZTUwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBHUk9VTkQgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWU1MgVlNTISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAwLjAwIDQgMC4wNiA7Ci0gICAgRU5ECi0gIEVORCBWU1MKLUVORCBPQUkzMVg0Ci0KLU1BQ1JPIFRMQVROVFNDQVgxMgotICBDTEFTUyBDT1JFIDsKLSAgT1JJR0lOIDAgMCA7Ci0gIEZPUkVJR04gVExBVE5UU0NBWDEyIDAgMCA7Ci0gIFNJWkUgNi40IEJZIDEuNzEgOwotICBTWU1NRVRSWSBYIFkgOwotICBTSVRFIENvcmVTaXRlIDsKLSAgUElOIEVDSwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gT1VUUFVUIDsKLSAgICBBTlRFTk5BRElGRkFSRUEgMS43Mjg1ICBMQVlFUiBNZXRhbDEgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgNC4yMzUgMC4zNSA0LjI5NSAwLjY2IDsKLSAgICAgICAgUkVDVCA0LjIzNSAwLjg3IDQuMjk1IDEuNDIgOwotICAgICAgICBSRUNUIDQuMjM1IDAuODcgNC4zIDAuOTI1IDsKLSAgICAgICAgUkVDVCA0LjI2IDAuNjA1IDQuMzIgMC45MiA7Ci0gICAgICAgIFJFQ1QgNC4yNiAwLjc5IDQuMzQgMC45MiA7Ci0gICAgICAgIFJFQ1QgNC42NDUgMC4zNSA0LjcwNSAxLjQyIDsKLSAgICAgICAgUkVDVCA1LjA1NSAwLjM1IDUuMTE1IDEuNDIgOwotICAgICAgICBSRUNUIDUuNDY1IDAuMzUgNS41MjUgMS40MiA7Ci0gICAgICAgIFJFQ1QgNS44MyAwLjc5IDUuODkgMS4wMSA7Ci0gICAgICAgIFJFQ1QgNS44NzUgMC4zNSA1LjkzNSAwLjg1IDsKLSAgICAgICAgUkVDVCA0LjI2IDAuNzkgNS45MzUgMC44NSA7Ci0gICAgICAgIFJFQ1QgNS44NzUgMC45NSA1LjkzNSAxLjQyIDsKLSAgICBFTkQKLSAgRU5EIEVDSwotICBQSU4gQ0sKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuNjYgMC40NSAwLjc0NSAwLjczIDsKLSAgICAgICAgUkVDVCAwLjY2NSAwLjQ1IDAuNzQ1IDAuOTQ1IDsKLSAgICBFTkQKLSAgRU5EIENLCi0gIFBJTiBTRQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC40NiAwLjQ1IDAuNTQgMC45NDUgOwotICAgIEVORAotICBFTkQgU0UKLSAgUElOIEUKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDM1IDAuNDggMC4yIDAuODk1IDsKLSAgICBFTkQKLSAgRU5EIEUKLSAgUElOIFZERAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBQT1dFUiA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZERCBWREQhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDEuNjUgNi40IDEuNzEgOwotICAgIEVORAotICBFTkQgVkRECi0gIFBJTiBWU1MKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgR1JPVU5EIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVlNTIFZTUyEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMC4wMCA2LjQgMC4wNiA7Ci0gICAgRU5ECi0gIEVORCBWU1MKLUVORCBUTEFUTlRTQ0FYMTIKLQotTUFDUk8gTkFORDNCWEwKLSAgQ0xBU1MgQ09SRSA7Ci0gIE9SSUdJTiAwIDAgOwotICBGT1JFSUdOIE5BTkQzQlhMIDAgMCA7Ci0gIFNJWkUgMS4wNCBCWSAxLjcxIDsKLSAgU1lNTUVUUlkgWCBZICA7Ci0gIFNJVEUgQ29yZVNpdGUgOwotICBQSU4gWQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gT1VUUFVUIDsKLSAgICBBTlRFTk5BRElGRkFSRUEgMS43Mjg1ICBMQVlFUiBNZXRhbDEgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wNiAxLjAwNSAwLjE0IDEuMDg1IDsKLSAgICBFTkQKLSAgRU5EIFkKLSAgUElOIEFOCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjcyNSAwLjc2NSAwLjgxIDAuODk1IDsKLSAgICBFTkQKLSAgRU5EIEFOCi0gIFBJTiBCCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjMzIDAuNDEgMC40MSAwLjUxNSA7Ci0gICAgICAgIFJFQ1QgMC4zMyAwLjQ2IDAuNDY1IDAuNTE1IDsKLSAgICBFTkQKLSAgRU5EIEIKLSAgUElOIEMKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMTggMC42IDAuMjcgMC43MDUgOwotICAgIEVORAotICBFTkQgQwotICBQSU4gVkRECi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIFBPV0VSIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVkREIFZERCEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMS42NSAxLjA0IDEuNzEgOwotICAgIEVORAotICBFTkQgVkRECi0gIFBJTiBWU1MKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgR1JPVU5EIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVlNTIFZTUyEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMC4wMCAxLjA0IDAuMDYgOwotICAgIEVORAotICBFTkQgVlNTCi1FTkQgTkFORDNCWEwKLQotTUFDUk8gRURGRlg0Ci0gIENMQVNTIENPUkUgOwotICBPUklHSU4gMCAwIDsKLSAgRk9SRUlHTiBFREZGWDQgMCAwIDsKLSAgU0laRSA2LjQgQlkgMS43MSA7Ci0gIFNZTU1FVFJZIFggWSA7Ci0gIFNJVEUgQ29yZVNpdGUgOwotICBQSU4gUU4KLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIE9VVFBVVCA7Ci0gICAgQU5URU5OQURJRkZBUkVBIDEuNzI4NSAgTEFZRVIgTWV0YWwxIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDUuMjQ1IDEuMDUgNS4zMDUgMS40NCA7Ci0gICAgICAgIFJFQ1QgNS4yNiAwLjU3IDUuMzIgMS4xMSA7Ci0gICAgICAgIFJFQ1QgNS4yNiAwLjk4IDUuMzQgMS4xMSA7Ci0gICAgICAgIFJFQ1QgNS4yNDUgMS4wNSA1LjcxNSAxLjExIDsKLSAgICAgICAgUkVDVCA1LjEgMC41NyA1LjY5IDAuNjMgOwotICAgICAgICBSRUNUIDUuNjU1IDEuMDUgNS43MTUgMS40NCA7Ci0gICAgRU5ECi0gIEVORCBRTgotICBQSU4gUQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gT1VUUFVUIDsKLSAgICBBTlRFTk5BRElGRkFSRUEgMS43Mjg1ICBMQVlFUiBNZXRhbDEgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgNC40MjUgMS4wNSA0LjQ4NSAxLjQ0IDsKLSAgICAgICAgUkVDVCA0LjQ2IDAuNTcgNC41MiAxLjExIDsKLSAgICAgICAgUkVDVCA0LjQ2IDAuOTggNC41NCAxLjExIDsKLSAgICAgICAgUkVDVCA0LjE2IDAuNTcgNC43NSAwLjYzIDsKLSAgICAgICAgUkVDVCA0LjQyNSAxLjA1IDQuODk1IDEuMTEgOwotICAgICAgICBSRUNUIDQuODM1IDEuMDUgNC44OTUgMS40NCA7Ci0gICAgRU5ECi0gIEVORCBRCi0gIFBJTiBFCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAzLjY0NSAwLjgxNSA0LjE0NSAwLjg5NSA7Ci0gICAgRU5ECi0gIEVORCBFCi0gIFBJTiBECi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAyLjg4NSAwLjgxNSAzLjE2NSAwLjg5NSA7Ci0gICAgICAgIFJFQ1QgMy4wNDUgMC44MTUgMy4xNjUgMS4xMTUgOwotICAgIEVORAotICBFTkQgRAotICBQSU4gQ0sKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMjYgMC43NjUgMC4zNCAxLjI2NSA7Ci0gICAgRU5ECi0gIEVORCBDSwotICBQSU4gVkRECi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIFBPV0VSIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVkREIFZERCEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMS42NSA2LjQgMS43MSA7Ci0gICAgRU5ECi0gIEVORCBWREQKLSAgUElOIFZTUwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBHUk9VTkQgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWU1MgVlNTISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAwLjAwIDYuNCAwLjA2IDsKLSAgICBFTkQKLSAgRU5EIFZTUwotRU5EIEVERkZYNAotCi1NQUNSTyBPQUkyMjJYMQotICBDTEFTUyBDT1JFIDsKLSAgT1JJR0lOIDAgMCA7Ci0gIEZPUkVJR04gT0FJMjIyWDEgMCAwIDsKLSAgU0laRSAxLjggQlkgMS43MSA7Ci0gIFNZTU1FVFJZIFggWSA7Ci0gIFNJVEUgQ29yZVNpdGUgOwotICBQSU4gWQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gT1VUUFVUIDsKLSAgICBBTlRFTk5BRElGRkFSRUEgMS43Mjg1ICBMQVlFUiBNZXRhbDEgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC42OTUgMS4xOSAwLjc1NSAxLjQ3IDsKLSAgICAgICAgUkVDVCAxLjQ0IDAuMzcgMS41IDAuNTEgOwotICAgICAgICBSRUNUIDEuNDk1IDEuMTkgMS41NTUgMS40NyA7Ci0gICAgICAgIFJFQ1QgMS40NCAwLjQ1IDEuNzIgMC41MSA7Ci0gICAgICAgIFJFQ1QgMS42NiAwLjQ1IDEuNzIgMS4yNSA7Ci0gICAgICAgIFJFQ1QgMS42NiAwLjk4IDEuNzQgMS4yNSA7Ci0gICAgICAgIFJFQ1QgMC42OTUgMS4xOSAxLjc0IDEuMjUgOwotICAgIEVORAotICBFTkQgWQotICBQSU4gQjEKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuNzUgMC42OCAwLjgzIDEuMDkgOwotICAgICAgICBSRUNUIDAuNjYgMC43OSAwLjgzIDEuMDkgOwotICAgIEVORAotICBFTkQgQjEKLSAgUElOIEEwCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjI2IDAuNjggMC4zNCAxLjE4IDsKLSAgICBFTkQKLSAgRU5EIEEwCi0gIFBJTiBDMAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMS4yNiAwLjU5IDEuMzQgMS4wOSA7Ci0gICAgRU5ECi0gIEVORCBDMAotICBQSU4gQTEKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuNDQgMC42OCAwLjUyIDEuMDYgOwotICAgICAgICBSRUNUIDAuNDYgMC45OCAwLjU0IDEuMTYgOwotICAgIEVORAotICBFTkQgQTEKLSAgUElOIEMxCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAxLjQ4IDAuNjEgMS41NiAxLjA5IDsKLSAgICAgICAgUkVDVCAxLjQ2IDAuNzkgMS41NiAxLjA5IDsKLSAgICBFTkQKLSAgRU5EIEMxCi0gIFBJTiBCMAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMS4wNiAwLjQ1IDEuMTQgMC45NSA7Ci0gICAgRU5ECi0gIEVORCBCMAotICBQSU4gVkRECi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIFBPV0VSIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVkREIFZERCEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMS42NSAxLjggMS43MSA7Ci0gICAgRU5ECi0gIEVORCBWREQKLSAgUElOIFZTUwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBHUk9VTkQgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWU1MgVlNTISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAwLjAwIDEuOCAwLjA2IDsKLSAgICBFTkQKLSAgRU5EIFZTUwotRU5EIE9BSTIyMlgxCi0KLU1BQ1JPIFNERkZSSFFYMgotICBDTEFTUyBDT1JFIDsKLSAgT1JJR0lOIDAgMCA7Ci0gIEZPUkVJR04gU0RGRlJIUVgyIDAgMCA7Ci0gIFNJWkUgNS44IEJZIDEuNzEgOwotICBTWU1NRVRSWSBYIFkgOwotICBTSVRFIENvcmVTaXRlIDsKLSAgUElOIFEKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIE9VVFBVVCA7Ci0gICAgQU5URU5OQURJRkZBUkVBIDEuNzI4NSAgTEFZRVIgTWV0YWwxIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMjU1IDAuNDIgMC4zMzUgMS4wMDUgOwotICAgICAgICBSRUNUIDAuMjYgMC45MjUgMC4zNCAxLjMxNSA7Ci0gICAgRU5ECi0gIEVORCBRCi0gIFBJTiBTRQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgNC43OCAwLjY0NSA0Ljg0IDAuOTE1IDsKLSAgICAgICAgUkVDVCA1LjAzNSAwLjYyNSA1LjE2NSAwLjcwNSA7Ci0gICAgICAgIFJFQ1QgNC43OCAwLjY0NSA1LjIgMC43MDUgOwotICAgICAgICBSRUNUIDUuMTQgMC42NTUgNS40NzUgMC43MTUgOwotICAgIEVORAotICBFTkQgU0UKLSAgUElOIFNJCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCA1LjE5NSAwLjgxNSA1LjYxIDAuOTI1IDsKLSAgICAgICAgUkVDVCA1LjE0IDAuODQ1IDUuNjEgMC45MjUgOwotICAgIEVORAotICBFTkQgU0kKLSAgUElOIEQKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDQuMjYgMC42IDQuMzQgMC43MyA7Ci0gICAgICAgIFJFQ1QgNC4yNiAwLjYgNC41MiAwLjY4IDsKLSAgICAgICAgUkVDVCA0LjQ0IDAuNiA0LjUyIDAuODcgOwotICAgIEVORAotICBFTkQgRAotICBQSU4gUk4KLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDEuNDggMC43OSAxLjY2NSAwLjk5NSA7Ci0gICAgICAgIFJFQ1QgMS40OCAwLjgxNSAxLjg1NSAwLjk5NSA7Ci0gICAgRU5ECi0gIEVORCBSTgotICBQSU4gQ0sKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuNTk1IDAuNjYgMC43NCAwLjkyIDsKLSAgICAgICAgUkVDVCAwLjY2IDAuNjYgMC43NCAxLjA5NSA7Ci0gICAgRU5ECi0gIEVORCBDSwotICBQSU4gVkRECi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIFBPV0VSIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVkREIFZERCEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMS42NSA1LjggMS43MSA7Ci0gICAgRU5ECi0gIEVORCBWREQKLSAgUElOIFZTUwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBHUk9VTkQgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWU1MgVlNTISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAwLjAwIDUuOCAwLjA2IDsKLSAgICBFTkQKLSAgRU5EIFZTUwotRU5EIFNERkZSSFFYMgotCi1NQUNSTyBDTEtNWDJYNAotICBDTEFTUyBDT1JFIDsKLSAgT1JJR0lOIDAgMCA7Ci0gIEZPUkVJR04gQ0xLTVgyWDQgMCAwIDsKLSAgU0laRSAyLjQgQlkgMS43MSA7Ci0gIFNZTU1FVFJZIFggWSA7Ci0gIFNJVEUgQ29yZVNpdGUgOwotICBQSU4gWQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gT1VUUFVUIDsKLSAgICBBTlRFTk5BRElGRkFSRUEgMS43Mjg1ICBMQVlFUiBNZXRhbDEgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMS40OTUgMC40MiAxLjYzIDAuNDggOwotICAgICAgICBSRUNUIDEuNTI1IDEuMDUgMS41ODUgMS40OCA7Ci0gICAgICAgIFJFQ1QgMS41NyAwLjQyIDEuNjMgMS4xMSA7Ci0gICAgICAgIFJFQ1QgMS41NyAwLjk4IDEuNzQgMS4xMSA7Ci0gICAgICAgIFJFQ1QgMS41MjUgMS4wNSAxLjk5NSAxLjExIDsKLSAgICAgICAgUkVDVCAxLjkzNSAwLjM5IDEuOTk1IDAuNTMgOwotICAgICAgICBSRUNUIDEuNTcgMC40NyAxLjk5NSAwLjUzIDsKLSAgICAgICAgUkVDVCAxLjkzNSAxLjA1IDEuOTk1IDEuNDggOwotICAgIEVORAotICBFTkQgWQotICBQSU4gQgotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMS4yMzUgMC44MTUgMS4zMTUgMS4xMDUgOwotICAgICAgICBSRUNUIDEuMTggMC45NSAxLjMxNSAxLjEwNSA7Ci0gICAgICAgIFJFQ1QgMS4yMzUgMC44MTUgMS40NyAwLjg5NSA7Ci0gICAgRU5ECi0gIEVORCBCCi0gIFBJTiBBCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjQ2IDAuNjMgMC41NCAxLjEzIDsKLSAgICBFTkQKLSAgRU5EIEEKLSAgUElOIFMwCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjI2IDAuOTggMC4zNCAxLjI5IDsKLSAgICAgICAgUkVDVCAwLjY0IDAuOTEgMC43IDEuMjkgOwotICAgICAgICBSRUNUIDAuMjYgMS4yMyAwLjcgMS4yOSA7Ci0gICAgICAgIFJFQ1QgMC42NCAwLjkxIDAuNzYgMC45NyA7Ci0gICAgRU5ECi0gIEVORCBTMAotICBQSU4gVkRECi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIFBPV0VSIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVkREIFZERCEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMS42NSAyLjQgMS43MSA7Ci0gICAgRU5ECi0gIEVORCBWREQKLSAgUElOIFZTUwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBHUk9VTkQgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWU1MgVlNTISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAwLjAwIDIuNCAwLjA2IDsKLSAgICBFTkQKLSAgRU5EIFZTUwotRU5EIENMS01YMlg0Ci0KLU1BQ1JPIEVERkZUUlgyCi0gIENMQVNTIENPUkUgOwotICBPUklHSU4gMCAwIDsKLSAgRk9SRUlHTiBFREZGVFJYMiAwIDAgOwotICBTSVpFIDcuOCBCWSAxLjcxIDsKLSAgU1lNTUVUUlkgWCBZIDsKLSAgU0lURSBDb3JlU2l0ZSA7Ci0gIFBJTiBRTgotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gT1VUUFVUIDsKLSAgICBBTlRFTk5BRElGRkFSRUEgMS43Mjg1ICBMQVlFUiBNZXRhbDEgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgNy4wNjUgMC41NCA3LjE0NSAxLjExIDsKLSAgICAgICAgUkVDVCA3LjA2IDAuOTggNy4xNDUgMS4xMSA7Ci0gICAgICAgIFJFQ1QgNy4wNiAxLjAzIDcuMjE1IDEuMTEgOwotICAgIEVORAotICBFTkQgUU4KLSAgUElOIFEKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIE9VVFBVVCA7Ci0gICAgQU5URU5OQURJRkZBUkVBIDEuNzI4NSAgTEFZRVIgTWV0YWwxIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDYuNjc1IDAuNTQgNi43NTUgMS4xNCA7Ci0gICAgICAgIFJFQ1QgNi42MjUgMS4wNiA2Ljc1NSAxLjE0IDsKLSAgICAgICAgUkVDVCA2LjY3NSAwLjc5IDYuOTQgMC45MiA7Ci0gICAgRU5ECi0gIEVORCBRCi0gIFBJTiBDSwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgNi4yODUgMC42MzUgNi4zNjUgMS4wODUgOwotICAgICAgICBSRUNUIDYuMjM1IDEuMDA1IDYuMzY1IDEuMDg1IDsKLSAgICBFTkQKLSAgRU5EIENLCi0gIFBJTiBSTgotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMi42NiAwLjc1IDIuNzQgMS4yNSA7Ci0gICAgRU5ECi0gIEVORCBSTgotICBQSU4gRQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC42MzUgMS4wMDUgMC43NjUgMS4wODUgOwotICAgICAgICBSRUNUIDAuNzA1IDAuNzMgMC43NjUgMS4xNSA7Ci0gICAgICAgIFJFQ1QgMS4zMDUgMC43NyAxLjM2NSAxLjE1IDsKLSAgICAgICAgUkVDVCAwLjcwNSAxLjA5IDEuMzY1IDEuMTUgOwotICAgICAgICBSRUNUIDEuMzA1IDAuNzcgMS40OCAwLjgzIDsKLSAgICBFTkQKLSAgRU5EIEUKLSAgUElOIEQKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMjYgMC42IDAuMzQgMC44OCA7Ci0gICAgICAgIFJFQ1QgMC4yNiAwLjYgMC41NiAwLjczIDsKLSAgICBFTkQKLSAgRU5EIEQKLSAgUElOIFZERAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBQT1dFUiA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZERCBWREQhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDEuNjUgNy44IDEuNzEgOwotICAgIEVORAotICBFTkQgVkRECi0gIFBJTiBWU1MKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgR1JPVU5EIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVlNTIFZTUyEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMC4wMCA3LjggMC4wNiA7Ci0gICAgRU5ECi0gIEVORCBWU1MKLUVORCBFREZGVFJYMgotCi1NQUNSTyBDTEtBTkQyWDYKLSAgQ0xBU1MgQ09SRSA7Ci0gIE9SSUdJTiAwIDAgOwotICBGT1JFSUdOIENMS0FORDJYNiAwIDAgOwotICBTSVpFIDIuOCBCWSAxLjcxIDsKLSAgU1lNTUVUUlkgWCBZIDsKLSAgU0lURSBDb3JlU2l0ZSA7Ci0gIFBJTiBZCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBPVVRQVVQgOwotICAgIEFOVEVOTkFESUZGQVJFQSAxLjcyODUgIExBWUVSIE1ldGFsMSA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAxLjc5NSAwLjI3NSAxLjg1NSAwLjU4NSA7Ci0gICAgICAgIFJFQ1QgMS44NSAwLjg2IDEuOTEgMS4zNyA7Ci0gICAgICAgIFJFQ1QgMi4yMDUgMC4yNzUgMi4yNjUgMC41ODUgOwotICAgICAgICBSRUNUIDIuMjYgMC44NiAyLjMyIDEuMzcgOwotICAgICAgICBSRUNUIDIuNDYgMC41MjUgMi41MiAwLjkyIDsKLSAgICAgICAgUkVDVCAyLjQ2IDAuNzkgMi41NCAwLjkyIDsKLSAgICAgICAgUkVDVCAxLjg1IDAuODYgMi43MyAwLjkyIDsKLSAgICAgICAgUkVDVCAyLjYxNSAwLjI3NSAyLjY3NSAwLjU4NSA7Ci0gICAgICAgIFJFQ1QgMS43OTUgMC41MjUgMi42NzUgMC41ODUgOwotICAgICAgICBSRUNUIDIuNjcgMC44NiAyLjczIDEuMzcgOwotICAgIEVORAotICBFTkQgWQotICBQSU4gQgotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC41NCAwLjc4NSAwLjY2IDAuODk1IDsKLSAgICAgICAgUkVDVCAxLjA3IDAuNzg1IDEuMTkgMC44OTUgOwotICAgICAgICBSRUNUIDAuNTQgMC44MTUgMS4xOSAwLjg5NSA7Ci0gICAgRU5ECi0gIEVORCBCCi0gIFBJTiBBCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjE3NSAwLjY0NSAwLjM2NSAwLjcwNSA7Ci0gICAgICAgIFJFQ1QgMC4yMzUgMC42MjUgMS41MzUgMC42ODUgOwotICAgICAgICBSRUNUIDEuNDc1IDAuNjI1IDEuNTM1IDAuNzQ1IDsKLSAgICBFTkQKLSAgRU5EIEEKLSAgUElOIFZERAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBQT1dFUiA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZERCBWREQhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDEuNjUgMi44IDEuNzEgOwotICAgIEVORAotICBFTkQgVkRECi0gIFBJTiBWU1MKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgR1JPVU5EIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVlNTIFZTUyEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMC4wMCAyLjggMC4wNiA7Ci0gICAgRU5ECi0gIEVORCBWU1MKLUVORCBDTEtBTkQyWDYKLQotTUFDUk8gT0EyMVgyCi0gIENMQVNTIENPUkUgOwotICBPUklHSU4gMCAwIDsKLSAgRk9SRUlHTiBPQTIxWDIgMCAwIDsKLSAgU0laRSAxLjggQlkgMS43MSA7Ci0gIFNZTU1FVFJZIFggWSA7Ci0gIFNJVEUgQ29yZVNpdGUgOwotICBQSU4gWQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gT1VUUFVUIDsKLSAgICBBTlRFTk5BRElGRkFSRUEgMS43Mjg1ICBMQVlFUiBNZXRhbDEgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMS4yIDAuNjcgMS4yNiAxLjQ1NSA7Ci0gICAgICAgIFJFQ1QgMS4yNiAwLjYgMS4zNCAwLjczIDsKLSAgICAgICAgUkVDVCAxLjI4IDAuNTcgMS40OTUgMC42MyA7Ci0gICAgRU5ECi0gIEVORCBZCi0gIFBJTiBBMAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4yNiAwLjU2IDAuMzQgMS4wNiA7Ci0gICAgRU5ECi0gIEVORCBBMAotICBQSU4gQTEKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuNDYgMC43ODUgMC41NCAwLjkyNSA7Ci0gICAgICAgIFJFQ1QgMC42MjUgMC41OSAwLjcwNSAwLjg2NSA7Ci0gICAgICAgIFJFQ1QgMC40NiAwLjc4NSAwLjcwNSAwLjg2NSA7Ci0gICAgRU5ECi0gIEVORCBBMQotICBQSU4gQjAKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuODYgMC4yMiAwLjk0IDAuNzIgOwotICAgIEVORAotICBFTkQgQjAKLSAgUElOIFZERAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBQT1dFUiA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZERCBWREQhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDEuNjUgMS44IDEuNzEgOwotICAgIEVORAotICBFTkQgVkRECi0gIFBJTiBWU1MKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgR1JPVU5EIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVlNTIFZTUyEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMC4wMCAxLjggMC4wNiA7Ci0gICAgRU5ECi0gIEVORCBWU1MKLUVORCBPQTIxWDIKLQotTUFDUk8gT0FJMzFYMgotICBDTEFTUyBDT1JFIDsKLSAgT1JJR0lOIDAgMCA7Ci0gIEZPUkVJR04gT0FJMzFYMiAwIDAgOwotICBTSVpFIDIuMiBCWSAxLjcxIDsKLSAgU1lNTUVUUlkgWCBZIDsKLSAgU0lURSBDb3JlU2l0ZSA7Ci0gIFBJTiBZCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBPVVRQVVQgOwotICAgIEFOVEVOTkFESUZGQVJFQSAxLjcyODUgIExBWUVSIE1ldGFsMSA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjkxIDEuMTg1IDAuOTcgMS4zMDUgOwotICAgICAgICBSRUNUIDEuNDYgMC45OCAxLjU0IDEuMjQ1IDsKLSAgICAgICAgUkVDVCAxLjQ2IDEuMDUgMS43MTUgMS4yNDUgOwotICAgICAgICBSRUNUIDAuOTEgMS4xODUgMS43MTUgMS4yNDUgOwotICAgICAgICBSRUNUIDEuNjU1IDEuMDUgMS43MTUgMS40MzUgOwotICAgICAgICBSRUNUIDEuNyAwLjU0NSAxLjc2IDEuMTEgOwotICAgICAgICBSRUNUIDEuNyAwLjU0NSAxLjg3NSAwLjYwNSA7Ci0gICAgRU5ECi0gIEVORCBZCi0gIFBJTiBBMgotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC45NDUgMC45MTUgMS4xNjUgMS4wODUgOwotICAgICAgICBSRUNUIDAuODkgMS4wMDUgMS4xNjUgMS4wODUgOwotICAgICAgICBSRUNUIDAuOTQ1IDAuOTE1IDEuMyAwLjk5NSA7Ci0gICAgRU5ECi0gIEVORCBBMgotICBQSU4gQTEKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuNjYgMC43NTUgMC43NCAwLjkyIDsKLSAgICAgICAgUkVDVCAwLjQ5NSAwLjc1NSAxLjIzNSAwLjgxNSA7Ci0gICAgRU5ECi0gIEVORCBBMQotICBQSU4gQTAKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMzM1IDAuNTk1IDAuMzk1IDAuNzk1IDsKLSAgICAgICAgUkVDVCAwLjMzNSAwLjU5NSAxLjQ2IDAuNjU1IDsKLSAgICAgICAgUkVDVCAxLjQgMC42IDEuNTQgMC44MiA7Ci0gICAgRU5ECi0gIEVORCBBMAotICBQSU4gQjAKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDEuODYgMC43MDUgMS45NCAxLjIwNSA7Ci0gICAgRU5ECi0gIEVORCBCMAotICBQSU4gVkRECi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIFBPV0VSIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVkREIFZERCEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMS42NSAyLjIgMS43MSA7Ci0gICAgRU5ECi0gIEVORCBWREQKLSAgUElOIFZTUwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBHUk9VTkQgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWU1MgVlNTISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAwLjAwIDIuMiAwLjA2IDsKLSAgICBFTkQKLSAgRU5EIFZTUwotRU5EIE9BSTMxWDIKLQotTUFDUk8gRURGRkhRWDEKLSAgQ0xBU1MgQ09SRSA7Ci0gIE9SSUdJTiAwIDAgOwotICBGT1JFSUdOIEVERkZIUVgxIDAgMCA7Ci0gIFNJWkUgNSBCWSAxLjcxIDsKLSAgU1lNTUVUUlkgWCBZIDsKLSAgU0lURSBDb3JlU2l0ZSA7Ci0gIFBJTiBRCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBPVVRQVVQgOwotICAgIEFOVEVOTkFESUZGQVJFQSAxLjcyODUgIExBWUVSIE1ldGFsMSA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAzLjEgMC41MzUgMy4xOCAxLjA5IDsKLSAgICAgICAgUkVDVCAzLjA2IDAuNzkgMy4xOCAxLjA5IDsKLSAgICBFTkQKLSAgRU5EIFEKLSAgUElOIEUKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDMuODM1IDAuMzA1IDMuODk1IDAuOTA1IDsKLSAgICAgICAgUkVDVCA0LjE4NSAwLjYyNSA0LjI0NSAwLjc0NSA7Ci0gICAgICAgIFJFQ1QgMy44MzUgMC4zMDUgNC4zNiAwLjM2NSA7Ci0gICAgICAgIFJFQ1QgNC4zIDAuMzA1IDQuMzYgMC42ODUgOwotICAgICAgICBSRUNUIDQuMTg1IDAuNjI1IDQuNzY1IDAuNjg1IDsKLSAgICAgICAgUkVDVCA0LjU1NSAwLjYyNSA0Ljc2NSAwLjcxNSA7Ci0gICAgRU5ECi0gIEVORCBFCi0gIFBJTiBECi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCA0LjM3NSAwLjc4NSA0LjQ1NSAwLjk3IDsKLSAgICAgICAgUkVDVCA0LjM3NSAwLjgxNSA0Ljc3IDAuOTM1IDsKLSAgICBFTkQKLSAgRU5EIEQKLSAgUElOIENLCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjI2IDAuNzMgMC4zNCAxLjIzIDsKLSAgICBFTkQKLSAgRU5EIENLCi0gIFBJTiBWREQKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgUE9XRVIgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWREQgVkREISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAxLjY1IDUgMS43MSA7Ci0gICAgRU5ECi0gIEVORCBWREQKLSAgUElOIFZTUwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBHUk9VTkQgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWU1MgVlNTISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAwLjAwIDUgMC4wNiA7Ci0gICAgRU5ECi0gIEVORCBWU1MKLUVORCBFREZGSFFYMQotCi1NQUNSTyBTREZGU1JYMgotICBDTEFTUyBDT1JFIDsKLSAgT1JJR0lOIDAgMCA7Ci0gIEZPUkVJR04gU0RGRlNSWDIgMCAwIDsKLSAgU0laRSA5LjQgQlkgMS43MSA7Ci0gIFNZTU1FVFJZIFggWSA7Ci0gIFNJVEUgQ29yZVNpdGUgOwotICBQSU4gUU4KLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIE9VVFBVVCA7Ci0gICAgQU5URU5OQURJRkZBUkVBIDEuNzI4NSAgTEFZRVIgTWV0YWwxIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDguNDYgMC42IDguNTQgMC43MyA7Ci0gICAgICAgIFJFQ1QgOC40NiAwLjY3IDguNyAwLjczIDsKLSAgICAgICAgUkVDVCA4LjY0IDAuNTcgOC43IDEuMzA1IDsKLSAgICAgICAgUkVDVCA4LjY0IDAuNTcgOC43NiAwLjYzIDsKLSAgICBFTkQKLSAgRU5EIFFOCi0gIFBJTiBRCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBPVVRQVVQgOwotICAgIEFOVEVOTkFESUZGQVJFQSAxLjcyODUgIExBWUVSIE1ldGFsMSA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCA4LjA2IDAuOTggOC4yIDEuMTEgOwotICAgICAgICBSRUNUIDguMTIgMC41NCA4LjIgMS4zMDUgOwotICAgIEVORAotICBFTkQgUQotICBQSU4gUk4KLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDcuNjM1IDAuNzMgNy43MTUgMS4wODUgOwotICAgICAgICBSRUNUIDcuNjM1IDAuOTUgNy44NiAxLjA4NSA7Ci0gICAgRU5ECi0gIEVORCBSTgotICBQSU4gU04KLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDMuMjA1IDAuNjI1IDMuMzY1IDAuOCA7Ci0gICAgICAgIFJFQ1QgMy4yMDUgMC42NzUgMy42MSAwLjc1NSA7Ci0gICAgRU5ECi0gIEVORCBTTgotICBQSU4gQ0sKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDEuNjYgMC41MjUgMS43NCAxLjAyNSA7Ci0gICAgRU5ECi0gIEVORCBDSwotICBQSU4gRAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMS4yOCAwLjYgMS4zNiAwLjg3IDsKLSAgICAgICAgUkVDVCAxLjI4IDAuNiAxLjU0IDAuNjggOwotICAgICAgICBSRUNUIDEuNDYgMC42IDEuNTQgMC43MyA7Ci0gICAgRU5ECi0gIEVORCBECi0gIFBJTiBTSQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC40NiAwLjcxNSAwLjY4NSAwLjkyIDsKLSAgICAgICAgUkVDVCAwLjYwNSAwLjcxNSAwLjY4NSAxLjA3IDsKLSAgICBFTkQKLSAgRU5EIFNJCi0gIFBJTiBTRQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4yNiAwLjYgMC4zNCAwLjczIDsKLSAgICAgICAgUkVDVCAwLjY1NSAwLjIzIDAuNzE1IDAuNjE1IDsKLSAgICAgICAgUkVDVCAwLjI4IDAuNTU1IDAuNzc1IDAuNjE1IDsKLSAgICAgICAgUkVDVCAwLjc0IDAuNTYgMC44NiAwLjYyIDsKLSAgICAgICAgUkVDVCAwLjY1NSAwLjIzIDEuMTggMC4yOSA7Ci0gICAgICAgIFJFQ1QgMS4xMiAwLjIzIDEuMTggMS4wMyA7Ci0gICAgRU5ECi0gIEVORCBTRQotICBQSU4gVkRECi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIFBPV0VSIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVkREIFZERCEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMS42NSA5LjQgMS43MSA7Ci0gICAgRU5ECi0gIEVORCBWREQKLSAgUElOIFZTUwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBHUk9VTkQgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWU1MgVlNTISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAwLjAwIDkuNCAwLjA2IDsKLSAgICBFTkQKLSAgRU5EIFZTUwotRU5EIFNERkZTUlgyCi0KLU1BQ1JPIE9BMjJYNAotICBDTEFTUyBDT1JFIDsKLSAgT1JJR0lOIDAgMCA7Ci0gIEZPUkVJR04gT0EyMlg0IDAgMCA7Ci0gIFNJWkUgMi40IEJZIDEuNzEgOwotICBTWU1NRVRSWSBYIFkgOwotICBTSVRFIENvcmVTaXRlIDsKLSAgUElOIFkKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIE9VVFBVVCA7Ci0gICAgQU5URU5OQURJRkZBUkVBIDEuNzI4NSAgTEFZRVIgTWV0YWwxIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDEuMjQgMS4wNSAxLjMgMS40NCA7Ci0gICAgICAgIFJFQ1QgMS40OSAwLjQ0IDEuNjEgMC41IDsKLSAgICAgICAgUkVDVCAxLjY1IDEuMDUgMS43MSAxLjQ0IDsKLSAgICAgICAgUkVDVCAxLjU2IDAuNDYgMi4wMDUgMC41MiA7Ci0gICAgICAgIFJFQ1QgMS45NDUgMC40MSAyLjAwNSAxLjExIDsKLSAgICAgICAgUkVDVCAxLjk0NSAwLjk4IDIuMTQgMS4xMSA7Ci0gICAgICAgIFJFQ1QgMS4yNCAxLjA1IDIuMTQgMS4xMSA7Ci0gICAgRU5ECi0gIEVORCBZCi0gIFBJTiBCMAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMSAwLjc4IDEuMDggMS4wNiA7Ci0gICAgICAgIFJFQ1QgMS4wNiAwLjk4IDEuMTQgMS4yMiA7Ci0gICAgRU5ECi0gIEVORCBCMAotICBQSU4gQTEKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuNDggMC43MiAwLjU2IDEuMiA7Ci0gICAgICAgIFJFQ1QgMC40NiAwLjg4IDAuNTYgMS4yIDsKLSAgICBFTkQKLSAgRU5EIEExCi0gIFBJTiBBMAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4yNiAwLjcyIDAuMzQgMS4yMiA7Ci0gICAgRU5ECi0gIEVORCBBMAotICBQSU4gQjEKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuNjYgMC43MiAwLjc0IDEuMjIgOwotICAgIEVORAotICBFTkQgQjEKLSAgUElOIFZERAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBQT1dFUiA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZERCBWREQhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDEuNjUgMi40IDEuNzEgOwotICAgIEVORAotICBFTkQgVkRECi0gIFBJTiBWU1MKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgR1JPVU5EIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVlNTIFZTUyEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMC4wMCAyLjQgMC4wNiA7Ci0gICAgRU5ECi0gIEVORCBWU1MKLUVORCBPQTIyWDQKLQotTUFDUk8gQ0xLQU5EMlgzCi0gIENMQVNTIENPUkUgOwotICBPUklHSU4gMCAwIDsKLSAgRk9SRUlHTiBDTEtBTkQyWDMgMCAwIDsKLSAgU0laRSAxLjggQlkgMS43MSA7Ci0gIFNZTU1FVFJZIFggWSA7Ci0gIFNJVEUgQ29yZVNpdGUgOwotICBQSU4gWQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gT1VUUFVUIDsKLSAgICBBTlRFTk5BRElGRkFSRUEgMS43Mjg1ICBMQVlFUiBNZXRhbDEgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMS4wNjUgMC40NDUgMS4xODUgMC41MDUgOwotICAgICAgICBSRUNUIDEuMTU1IDAuOTQ1IDEuMjE1IDEuMzM1IDsKLSAgICAgICAgUkVDVCAxLjQ2IDAuNDk1IDEuNTQgMS4wMDUgOwotICAgICAgICBSRUNUIDEuMTU1IDAuOTQ1IDEuNjI1IDEuMDA1IDsKLSAgICAgICAgUkVDVCAxLjUwNSAwLjQxNSAxLjU2NSAwLjU1NSA7Ci0gICAgICAgIFJFQ1QgMS4xMjUgMC40OTUgMS41NjUgMC41NTUgOwotICAgICAgICBSRUNUIDEuNTY1IDAuOTQ1IDEuNjI1IDEuMzM1IDsKLSAgICBFTkQKLSAgRU5EIFkKLSAgUElOIEIKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMjMgMC44MDUgMC41NyAwLjkyNSA7Ci0gICAgRU5ECi0gIEVORCBCCi0gIFBJTiBBCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjIxNSAwLjYyNSAwLjgwNSAwLjcwNSA7Ci0gICAgRU5ECi0gIEVORCBBCi0gIFBJTiBWREQKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgUE9XRVIgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWREQgVkREISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAxLjY1IDEuOCAxLjcxIDsKLSAgICBFTkQKLSAgRU5EIFZERAotICBQSU4gVlNTCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIEdST1VORCA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZTUyBWU1MhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDAuMDAgMS44IDAuMDYgOwotICAgIEVORAotICBFTkQgVlNTCi1FTkQgQ0xLQU5EMlgzCi0KLU1BQ1JPIEVERkZYMgotICBDTEFTUyBDT1JFIDsKLSAgT1JJR0lOIDAgMCA7Ci0gIEZPUkVJR04gRURGRlgyIDAgMCA7Ci0gIFNJWkUgNS40IEJZIDEuNzEgOwotICBTWU1NRVRSWSBYIFkgOwotICBTSVRFIENvcmVTaXRlIDsKLSAgUElOIFFOCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBPVVRQVVQgOwotICAgIEFOVEVOTkFESUZGQVJFQSAxLjcyODUgIExBWUVSIE1ldGFsMSA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCA0LjY2IDAuNiA0Ljc0IDAuNzMgOwotICAgICAgICBSRUNUIDQuNjggMC41MDUgNC43NCAxLjM1NSA7Ci0gICAgICAgIFJFQ1QgNC42OCAwLjUwNSA0LjgxNSAwLjU2NSA7Ci0gICAgRU5ECi0gIEVORCBRTgotICBQSU4gUQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gT1VUUFVUIDsKLSAgICBBTlRFTk5BRElGRkFSRUEgMS43Mjg1ICBMQVlFUiBNZXRhbDEgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgNC4yMjUgMC41MDUgNC4zNDUgMC41NjUgOwotICAgICAgICBSRUNUIDQuMjM1IDAuNTA1IDQuMjk1IDEuMzU1IDsKLSAgICAgICAgUkVDVCA0LjIzNSAwLjUwNSA0LjM0NSAwLjcwNSA7Ci0gICAgICAgIFJFQ1QgNC4yMzUgMC42MjUgNC4zNjUgMC43MDUgOwotICAgIEVORAotICBFTkQgUQotICBQSU4gRQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMi44MDUgMS4yNSAyLjg2NSAxLjQ4NSA7Ci0gICAgICAgIFJFQ1QgMi43NDUgMS40MjUgMi44NjUgMS40ODUgOwotICAgICAgICBSRUNUIDIuOTU1IDAuNjY1IDMuMDc1IDAuNzI1IDsKLSAgICAgICAgUkVDVCAzLjAxNSAwLjY2NSAzLjA3NSAxLjMxIDsKLSAgICAgICAgUkVDVCAzLjg2IDAuNzc1IDMuOTIgMS4zMSA7Ci0gICAgICAgIFJFQ1QgMi44MDUgMS4yNSAzLjkyIDEuMzEgOwotICAgICAgICBSRUNUIDMuODM1IDAuNzc1IDMuOTU1IDAuODk1IDsKLSAgICAgICAgUkVDVCAzLjgzNSAwLjgxNSAzLjk2NSAwLjg5NSA7Ci0gICAgRU5ECi0gIEVORCBFCi0gIFBJTiBECi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAzLjM5NSAwLjY0IDMuNTQgMC43MjUgOwotICAgICAgICBSRUNUIDMuNDYgMC42NCAzLjU0IDEuMDQgOwotICAgICAgICBSRUNUIDMuMzk1IDAuNjQgMy41NzUgMC43MiA7Ci0gICAgRU5ECi0gIEVORCBECi0gIFBJTiBDSwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4yMzUgMC43NzUgMC4zMTUgMS4wMjUgOwotICAgICAgICBSRUNUIDAuMzI1IDAuNjIgMC40MDUgMC44OTUgOwotICAgICAgICBSRUNUIDAuMjMgMC43NzUgMC40MDUgMC44OTUgOwotICAgIEVORAotICBFTkQgQ0sKLSAgUElOIFZERAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBQT1dFUiA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZERCBWREQhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDEuNjUgNS40IDEuNzEgOwotICAgIEVORAotICBFTkQgVkRECi0gIFBJTiBWU1MKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgR1JPVU5EIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVlNTIFZTUyEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMC4wMCA1LjQgMC4wNiA7Ci0gICAgRU5ECi0gIEVORCBWU1MKLUVORCBFREZGWDIKLQotTUFDUk8gRExZM1gxCi0gIENMQVNTIENPUkUgOwotICBPUklHSU4gMCAwIDsKLSAgRk9SRUlHTiBETFkzWDEgMCAwIDsKLSAgU0laRSA0LjggQlkgMS43MSA7Ci0gIFNZTU1FVFJZIFggWSA7Ci0gIFNJVEUgQ29yZVNpdGUgOwotICBQSU4gWQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gT1VUUFVUIDsKLSAgICBBTlRFTk5BRElGRkFSRUEgMS43Mjg1ICBMQVlFUiBNZXRhbDEgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMi42MzUgMC41NCAyLjY5NSAwLjg5NSA7Ci0gICAgICAgIFJFQ1QgMi42MzUgMC44MTUgMi44OSAwLjg5NSA7Ci0gICAgICAgIFJFQ1QgMi44MyAwLjgxNSAyLjg5IDEuMjkgOwotICAgIEVORAotICBFTkQgWQotICBQSU4gQQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMS43NTUgMC43NiAxLjkzNSAxLjA2NSA7Ci0gICAgICAgIFJFQ1QgMS42NiAwLjc5IDEuOTM1IDEuMDY1IDsKLSAgICBFTkQKLSAgRU5EIEEKLSAgUElOIFZERAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBQT1dFUiA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZERCBWREQhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDEuNjUgNC44IDEuNzEgOwotICAgIEVORAotICBFTkQgVkRECi0gIFBJTiBWU1MKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgR1JPVU5EIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVlNTIFZTUyEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMC4wMCA0LjggMC4wNiA7Ci0gICAgRU5ECi0gIEVORCBWU1MKLUVORCBETFkzWDEKLQotTUFDUk8gT0FJMjIyWDQKLSAgQ0xBU1MgQ09SRSA7Ci0gIE9SSUdJTiAwIDAgOwotICBGT1JFSUdOIE9BSTIyMlg0IDAgMCA7Ci0gIFNJWkUgNS40IEJZIDEuNzEgOwotICBTWU1NRVRSWSBYIFkgOwotICBTSVRFIENvcmVTaXRlIDsKLSAgUElOIFkKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIE9VVFBVVCA7Ci0gICAgQU5URU5OQURJRkZBUkVBIDEuNzI4NSAgTEFZRVIgTWV0YWwxIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuNzc1IDEuMTU1IDAuODM1IDEuMjc1IDsKLSAgICAgICAgUkVDVCAxLjQ0NSAxLjE1NSAxLjUwNSAxLjI3NSA7Ci0gICAgICAgIFJFQ1QgMi4zNjUgMS4xNTUgMi40MjUgMS4yNzUgOwotICAgICAgICBSRUNUIDMuMjIgMS4xNTUgMy4yOCAxLjI3NSA7Ci0gICAgICAgIFJFQ1QgMy44MzUgMC41MzUgMy44OTUgMC42NzUgOwotICAgICAgICBSRUNUIDQuMDA1IDEuMTU1IDQuMDY1IDEuMjc1IDsKLSAgICAgICAgUkVDVCA0LjI0NSAwLjUzNSA0LjMwNSAwLjY3NSA7Ci0gICAgICAgIFJFQ1QgNC42MyAxLjE1NSA0LjY5IDEuMjc1IDsKLSAgICAgICAgUkVDVCA0LjY1NSAwLjUzNSA0LjcxNSAwLjY3NSA7Ci0gICAgICAgIFJFQ1QgMy44MzUgMC42MTUgNS4xMjUgMC42NzUgOwotICAgICAgICBSRUNUIDUuMDYgMC42MTUgNS4xMiAxLjIxNSA7Ci0gICAgICAgIFJFQ1QgMC43NzUgMS4xNTUgNS4xMiAxLjIxNSA7Ci0gICAgICAgIFJFQ1QgNS4wNjUgMC41MzUgNS4xMjUgMC45MiA7Ci0gICAgICAgIFJFQ1QgNS4wNiAwLjc5IDUuMTQgMC45MiA7Ci0gICAgRU5ECi0gIEVORCBZCi0gIFBJTiBBMAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4zMDUgMC45MzUgMC4zNjUgMS4wNTUgOwotICAgICAgICBSRUNUIDEuMDY1IDAuOTM1IDEuMTg1IDEuMDU1IDsKLSAgICAgICAgUkVDVCAxLjY2IDAuNzkgMS43NCAxLjA1NSA7Ci0gICAgICAgIFJFQ1QgMC4zMDUgMC45OTUgMS43NCAxLjA1NSA7Ci0gICAgRU5ECi0gIEVORCBBMAotICBQSU4gQzAKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDMuNzMgMC44MzUgMy45NCAwLjg5NSA7Ci0gICAgICAgIFJFQ1QgMy44NiAwLjc5IDMuOTQgMS4wNTUgOwotICAgICAgICBSRUNUIDQuMzUgMC45MzUgNC40NyAxLjA1NSA7Ci0gICAgICAgIFJFQ1QgNC44NjUgMC44OTUgNC45MjUgMS4wNTUgOwotICAgICAgICBSRUNUIDMuODYgMC45OTUgNC45MjUgMS4wNTUgOwotICAgIEVORAotICBFTkQgQzAKLSAgUElOIEIwCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAyLjA4NSAwLjg5NSAyLjE0NSAxLjA1NSA7Ci0gICAgICAgIFJFQ1QgMi42ODUgMC45MzUgMi44MDUgMS4wNTUgOwotICAgICAgICBSRUNUIDMuNDYgMC43OSAzLjUyIDEuMDU1IDsKLSAgICAgICAgUkVDVCAyLjA4NSAwLjk5NSAzLjUyIDEuMDU1IDsKLSAgICAgICAgUkVDVCAzLjQ2IDAuNzkgMy41NCAwLjkyIDsKLSAgICBFTkQKLSAgRU5EIEIwCi0gIFBJTiBBMQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC44MzUgMC43NzUgMC45NjUgMC44OTUgOwotICAgICAgICBSRUNUIDAuNjcgMC43NzUgMS40NyAwLjgzNSA7Ci0gICAgRU5ECi0gIEVORCBBMQotICBQSU4gQzEKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDQuMDQgMC43NzUgNC43NjUgMC44MzUgOwotICAgICAgICBSRUNUIDQuNjM1IDAuNzc1IDQuNzY1IDAuODk1IDsKLSAgICBFTkQKLSAgRU5EIEMxCi0gIFBJTiBCMQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMi40MzUgMC43NzUgMi41ODUgMC44OTUgOwotICAgICAgICBSRUNUIDIuNDM1IDAuNzc1IDMuMTggMC44MzUgOwotICAgIEVORAotICBFTkQgQjEKLSAgUElOIFZERAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBQT1dFUiA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZERCBWREQhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDEuNjUgNS40IDEuNzEgOwotICAgIEVORAotICBFTkQgVkRECi0gIFBJTiBWU1MKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgR1JPVU5EIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVlNTIFZTUyEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMC4wMCA1LjQgMC4wNiA7Ci0gICAgRU5ECi0gIEVORCBWU1MKLUVORCBPQUkyMjJYNAotCi1NQUNSTyBJTlZYMgotICBDTEFTUyBDT1JFIDsKLSAgT1JJR0lOIDAgMCA7Ci0gIEZPUkVJR04gSU5WWDIgMCAwIDsKLSAgU0laRSAwLjYxIEJZIDEuNzEgOwotICBTWU1NRVRSWSBYIFkgIDsKLSAgU0lURSBDb3JlU2l0ZSA7Ci0gIFBJTiBZCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBPVVRQVVQgOwotICAgIEFOVEVOTkFESUZGQVJFQSAxLjcyODUgIExBWUVSIE1ldGFsMSA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjQ2NSAwLjU0IDAuNTM1IDAuNzEgOwotIyAgICAgICAgUkVDVCAwLjQ2IDAuNzIgMC41NCAwLjggOwotICAgIEVORAotICBFTkQgWQotICBQSU4gQQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wNyAwLjYgMC4xNzUgMC44IDsKLSAgICBFTkQKLSAgRU5EIEEKLSAgUElOIFZERAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBQT1dFUiA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZERCBWREQhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDEuNjUgMC42MSAxLjcxIDsKLSAgICBFTkQKLSAgRU5EIFZERAotICBQSU4gVlNTCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIEdST1VORCA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZTUyBWU1MhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDAuMDAgMC42MSAwLjA2IDsKLSAgICBFTkQKLSAgRU5EIFZTUwotRU5EIElOVlgyCi0KLU1BQ1JPIFRMQVROU1JYTAotICBDTEFTUyBDT1JFIDsKLSAgT1JJR0lOIDAgMCA7Ci0gIEZPUkVJR04gVExBVE5TUlhMIDAgMCA7Ci0gIFNJWkUgNC42IEJZIDEuNzEgOwotICBTWU1NRVRSWSBYIFkgOwotICBTSVRFIENvcmVTaXRlIDsKLSAgUElOIFFOCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBPVVRQVVQgOwotICAgIEFOVEVOTkFESUZGQVJFQSAxLjcyODUgIExBWUVSIE1ldGFsMSA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjg2IDAuNTQ1IDAuOTQgMS4xMSA7Ci0gICAgICAgIFJFQ1QgMC44NiAxLjAzIDEuMDU1IDEuMTEgOwotICAgICAgICBSRUNUIDAuOTc1IDAuNTA1IDEuMDU1IDAuNjI1IDsKLSAgICAgICAgUkVDVCAwLjg2IDAuNTQ1IDEuMDU1IDAuNjI1IDsKLSAgICAgICAgUkVDVCAwLjk3NSAxLjAzIDEuMDU1IDEuMTc1IDsKLSAgICBFTkQKLSAgRU5EIFFOCi0gIFBJTiBRCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBPVVRQVVQgOwotICAgIEFOVEVOTkFESUZGQVJFQSAxLjcyODUgIExBWUVSIE1ldGFsMSA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjA2IDAuNiAwLjMyNSAwLjczIDsKLSAgICAgICAgUkVDVCAwLjI0NSAwLjU0IDAuMzI1IDEuMDIgOwotICAgIEVORAotICBFTkQgUQotICBQSU4gR04KLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDQuMjYgMC44MyA0LjM0IDEuMjYgOwotICAgICAgICBSRUNUIDQuMjYgMC44MyA0LjQxIDEuMTEgOwotICAgIEVORAotICBFTkQgR04KLSAgUElOIFJOCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAxLjg0IDAuMzQ1IDMuNzkgMC40MDUgOwotICAgICAgICBSRUNUIDMuNzMgMC4zNDUgMy43OSAwLjkyIDsKLSAgICAgICAgUkVDVCAzLjY2IDAuNzkgMy43OSAwLjkyIDsKLSAgICAgICAgUkVDVCAzLjY2IDAuODYgNC4xNiAwLjkyIDsKLSAgICBFTkQKLSAgRU5EIFJOCi0gIFBJTiBECi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAyLjk0NSAwLjY2NSAzLjAyNSAxLjAxIDsKLSAgICAgICAgUkVDVCAyLjk0NSAwLjY2NSAzLjE4IDAuOTIgOwotICAgIEVORAotICBFTkQgRAotICBQSU4gU04KLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDEuMjg1IDAuODg1IDEuMzY1IDEuMjc1IDsKLSAgICAgICAgUkVDVCAxLjE3NSAxLjE5NSAxLjM2NSAxLjI3NSA7Ci0gICAgRU5ECi0gIEVORCBTTgotICBQSU4gVkRECi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIFBPV0VSIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVkREIFZERCEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMS42NSA0LjYgMS43MSA7Ci0gICAgRU5ECi0gIEVORCBWREQKLSAgUElOIFZTUwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBHUk9VTkQgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWU1MgVlNTISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAwLjAwIDQuNiAwLjA2IDsKLSAgICBFTkQKLSAgRU5EIFZTUwotRU5EIFRMQVROU1JYTAotCi1NQUNSTyBNWEkyWEwKLSAgQ0xBU1MgQ09SRSA7Ci0gIE9SSUdJTiAwIDAgOwotICBGT1JFSUdOIE1YSTJYTCAwIDAgOwotICBTSVpFIDEuNCBCWSAxLjcxIDsKLSAgU1lNTUVUUlkgWCBZIDsKLSAgU0lURSBDb3JlU2l0ZSA7Ci0gIFBJTiBZCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBPVVRQVVQgOwotICAgIEFOVEVOTkFESUZGQVJFQSAxLjcyODUgIExBWUVSIE1ldGFsMSA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjI2IDAuNiAwLjM0IDAuNzMgOwotICAgICAgICBSRUNUIDAuMjggMC40OCAwLjM0IDEuMjY1IDsKLSAgICAgICAgUkVDVCAwLjI4IDAuNDggMC41MiAwLjU0IDsKLSAgICAgICAgUkVDVCAwLjI4IDEuMjA1IDAuNjA1IDEuMjY1IDsKLSAgICAgICAgUkVDVCAwLjU0NSAxLjIwNSAwLjYwNSAxLjMyNSA7Ci0gICAgRU5ECi0gIEVORCBZCi0gIFBJTiBTMAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC42NTUgMC44IDEuMTQgMC44OCA7Ci0gICAgICAgIFJFQ1QgMS4wNiAwLjggMS4xNCAxLjExIDsKLSAgICBFTkQKLSAgRU5EIFMwCi0gIFBJTiBCCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjc3IDAuOTggMC45NiAxLjIgOwotICAgIEVORAotICBFTkQgQgotICBQSU4gQQotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wNiAwLjc0IDAuMTQgMC45MiA7Ci0gICAgICAgIFJFQ1QgMC4xIDAuODQgMC4xOCAxLjIgOwotICAgIEVORAotICBFTkQgQQotICBQSU4gVkRECi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIFBPV0VSIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVkREIFZERCEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMS42NSAxLjQgMS43MSA7Ci0gICAgRU5ECi0gIEVORCBWREQKLSAgUElOIFZTUwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBHUk9VTkQgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWU1MgVlNTISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAwLjAwIDEuNCAwLjA2IDsKLSAgICBFTkQKLSAgRU5EIFZTUwotRU5EIE1YSTJYTAotCi1NQUNSTyBOQU5ENFhMCi0gIENMQVNTIENPUkUgOwotICBPUklHSU4gMCAwIDsKLSAgRk9SRUlHTiBOQU5ENFhMIDAgMCA7Ci0gIFNJWkUgMS4yIEJZIDEuNzEgOwotICBTWU1NRVRSWSBYIFkgOwotICBTSVRFIENvcmVTaXRlIDsKLSAgUElOIFkKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIE9VVFBVVCA7Ci0gICAgQU5URU5OQURJRkZBUkVBIDEuNzI4NSAgTEFZRVIgTWV0YWwxIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDEuMDYgMC40MSAxLjE0IDAuNjM1IDsKLSAgICAgICAgUkVDVCAxLjA4IDAuNDEgMS4xNCAxLjAxNSA7Ci0gICAgICAgIFJFQ1QgMC4zNjUgMC45NTUgMS4xNCAxLjAxNSA7Ci0gICAgRU5ECi0gIEVORCBZCi0gIFBJTiBBCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjI2IDAuMzU1IDAuMzQgMC44NTUgOwotICAgIEVORAotICBFTkQgQQotICBQSU4gQgotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC40NiAwLjM1NSAwLjU0IDAuODU1IDsKLSAgICBFTkQKLSAgRU5EIEIKLSAgUElOIEMKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuNjYgMC4zNTUgMC43NCAwLjg1NSA7Ci0gICAgRU5ECi0gIEVORCBDCi0gIFBJTiBECi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjg2IDAuMzU1IDAuOTQgMC44NTUgOwotICAgIEVORAotICBFTkQgRAotICBQSU4gVkRECi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTk9VVCA7Ci0gICAgVVNFIFBPV0VSIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVkREIFZERCEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMS42NSAxLjIgMS43MSA7Ci0gICAgRU5ECi0gIEVORCBWREQKLSAgUElOIFZTUwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBHUk9VTkQgOwotICAgIFNIQVBFIEFCVVRNRU5UIDsKLSAgICBORVRFWFBSICJWU1MgVlNTISIgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgMC4wMCAwLjAwIDEuMiAwLjA2IDsKLSAgICBFTkQKLSAgRU5EIFZTUwotRU5EIE5BTkQ0WEwKLQotTUFDUk8gREZGSFFYOAotICBDTEFTUyBDT1JFIDsKLSAgT1JJR0lOIDAgMCA7Ci0gIEZPUkVJR04gREZGSFFYOCAwIDAgOwotICBTSVpFIDUuNCBCWSAxLjcxIDsKLSAgU1lNTUVUUlkgWCBZIDsKLSAgU0lURSBDb3JlU2l0ZSA7Ci0gIFBJTiBDSwotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgNS4wNCAwLjY3IDUuMTkgMC45NCA7Ci0gICAgRU5ECi0gIEVORCBDSwotICBQSU4gRAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgNC42MyAwLjY3IDQuNzEgMC45MiA7Ci0gICAgICAgIFJFQ1QgNC42MyAwLjc4NSA0Ljk0IDAuOTIgOwotICAgICAgICBSRUNUIDQuODYgMC43ODUgNC45NCAwLjk0IDsKLSAgICBFTkQKLSAgRU5EIEQKLSAgUElOIFEKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIE9VVFBVVCA7Ci0gICAgQU5URU5OQURJRkZBUkVBIDEuNzI4NSAgTEFZRVIgTWV0YWwxIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDYgMC42IDAuMTQgMC43MyA7Ci0gICAgICAgIFJFQ1QgMC4wOCAwLjU0IDAuMTQgMS4zNDUgOwotICAgICAgICBSRUNUIDAuMDYgMC42NyAwLjU1IDAuNzMgOwotICAgICAgICBSRUNUIDAuNDkgMC41NCAwLjU1IDEuMzQ1IDsKLSAgICAgICAgUkVDVCAwLjkgMC41NCAwLjk2IDEuMzQ1IDsKLSAgICAgICAgUkVDVCAwLjQ5IDAuNiAxLjM3IDAuNjYgOwotICAgICAgICBSRUNUIDEuMzEgMC41NCAxLjM3IDEuMzQ1IDsKLSAgICBFTkQKLSAgRU5EIFEKLSAgUElOIFZERAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBQT1dFUiA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZERCBWREQhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDEuNjUgNS40IDEuNzEgOwotICAgIEVORAotICBFTkQgVkRECi0gIFBJTiBWU1MKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgR1JPVU5EIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVlNTIFZTUyEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMC4wMCA1LjQgMC4wNiA7Ci0gICAgRU5ECi0gIEVORCBWU1MKLUVORCBERkZIUVg4Ci0KLU1BQ1JPIEVERkZIUVg0Ci0gIENMQVNTIENPUkUgOwotICBPUklHSU4gMCAwIDsKLSAgRk9SRUlHTiBFREZGSFFYNCAwIDAgOwotICBTSVpFIDYuMiBCWSAxLjcxIDsKLSAgU1lNTUVUUlkgWCBZIDsKLSAgU0lURSBDb3JlU2l0ZSA7Ci0gIFBJTiBRCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBPVVRQVVQgOwotICAgIEFOVEVOTkFESUZGQVJFQSAxLjcyODUgIExBWUVSIE1ldGFsMSA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAzLjAyIDAuNTcgMy4xNCAwLjYzIDsKLSAgICAgICAgUkVDVCAzLjA4IDAuNTcgMy4xNCAxLjA4NSA7Ci0gICAgICAgIFJFQ1QgMy4wMzUgMS4wMDUgMy4yMjUgMS4wODUgOwotICAgICAgICBSRUNUIDMuMTY1IDEuMDA1IDMuMjI1IDEuMTYgOwotICAgICAgICBSRUNUIDMuMTcgMS4xMjUgMy43MjUgMS4xODUgOwotICAgICAgICBSRUNUIDMuNzggMC41NyAzLjg0IDAuODEgOwotICAgICAgICBSRUNUIDMuMDggMC43NSAzLjg0IDAuODEgOwotICAgICAgICBSRUNUIDMuNzggMC41NyAzLjkgMC42MyA7Ci0gICAgRU5ECi0gIEVORCBRCi0gIFBJTiBFCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCA0LjkyIDAuMjQ1IDQuOTggMC45MTUgOwotICAgICAgICBSRUNUIDQuOTIgMC4yNDUgNS4zNiAwLjMwNSA7Ci0gICAgICAgIFJFQ1QgNS4zIDAuMjQ1IDUuMzYgMC42ODUgOwotICAgICAgICBSRUNUIDUuMjQgMC42MjUgNS4zNiAwLjY4NSA7Ci0gICAgICAgIFJFQ1QgNS4zIDAuNDg1IDUuODk1IDAuNTQ1IDsKLSAgICAgICAgUkVDVCA1LjgzNSAwLjQ4NSA1Ljg5NSAwLjcwNSA7Ci0gICAgICAgIFJFQ1QgNS44MzUgMC42MjUgNS45NjUgMC43MDUgOwotICAgIEVORAotICBFTkQgRQotICBQSU4gRAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5QVVQgOwotICAgIFVTRSBTSUdOQUwgOwotICAgIFBPUlQKLSAgICAgIExBWUVSIE1ldGFsMSA7Ci0gICAgICAgIFJFQ1QgNS42NTUgMC42NDUgNS43MzUgMC45NSA7Ci0gICAgICAgIFJFQ1QgNS40NiAwLjc5IDUuNzM1IDAuOTUgOwotICAgIEVORAotICBFTkQgRAotICBQSU4gQ0sKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMjYgMC44MSAwLjM0IDEuMzEgOwotICAgIEVORAotICBFTkQgQ0sKLSAgUElOIFZERAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBQT1dFUiA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZERCBWREQhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDEuNjUgNi4yIDEuNzEgOwotICAgIEVORAotICBFTkQgVkRECi0gIFBJTiBWU1MKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgR1JPVU5EIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVlNTIFZTUyEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMC4wMCA2LjIgMC4wNiA7Ci0gICAgRU5ECi0gIEVORCBWU1MKLUVORCBFREZGSFFYNAotCi1NQUNSTyBUTEFUTkNBWDQKLSAgQ0xBU1MgQ09SRSA7Ci0gIE9SSUdJTiAwIDAgOwotICBGT1JFSUdOIFRMQVROQ0FYNCAwIDAgOwotICBTSVpFIDMuNiBCWSAxLjcxIDsKLSAgU1lNTUVUUlkgWCBZIDsKLSAgU0lURSBDb3JlU2l0ZSA7Ci0gIFBJTiBFQ0sKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIE9VVFBVVCA7Ci0gICAgQU5URU5OQURJRkZBUkVBIDEuNzI4NSAgTEFZRVIgTWV0YWwxIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuNjQgMC45IDAuNyAxLjAyIDsKLSAgICAgICAgUkVDVCAwLjY2IDAuNTEgMC43MiAwLjk2IDsKLSAgICAgICAgUkVDVCAwLjY2IDAuNzkgMC43NCAwLjk2IDsKLSAgICAgICAgUkVDVCAwLjY2IDAuNTcgMS4xMDUgMC42MyA7Ci0gICAgICAgIFJFQ1QgMC42NCAwLjkgMS4xNCAwLjk2IDsKLSAgICAgICAgUkVDVCAxLjA1NSAwLjU1IDEuMTc1IDAuNjEgOwotICAgICAgICBSRUNUIDEuMDggMC45MyAxLjIgMC45OSA7Ci0gICAgRU5ECi0gIEVORCBFQ0sKLSAgUElOIEUKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOUFVUIDsKLSAgICBVU0UgU0lHTkFMIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDIuOTUgMC43OCAzLjAzIDEuMDYgOwotICAgICAgICBSRUNUIDIuOTUgMC43OCAzLjI1IDAuODk1IDsKLSAgICBFTkQKLSAgRU5EIEUKLSAgUElOIENLCi0gICAgQU5URU5OQU1PREVMIE9YSURFMSA7Ci0gICAgQU5URU5OQUdBVEVBUkVBIDAuMDI3NiBMQVlFUiBNZXRhbDEgOwotICAgIERJUkVDVElPTiBJTlBVVCA7Ci0gICAgVVNFIFNJR05BTCA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjMzIDAuNjUgMC40MSAwLjk3IDsKLSAgICAgICAgUkVDVCAwLjQ2IDAuNiAwLjU0IDAuNzMgOwotICAgICAgICBSRUNUIDAuMzMgMC42NSAwLjU0IDAuNzMgOwotICAgIEVORAotICBFTkQgQ0sKLSAgUElOIFZERAotICAgIEFOVEVOTkFNT0RFTCBPWElERTEgOwotICAgIEFOVEVOTkFHQVRFQVJFQSAwLjAyNzYgTEFZRVIgTWV0YWwxIDsKLSAgICBESVJFQ1RJT04gSU5PVVQgOwotICAgIFVTRSBQT1dFUiA7Ci0gICAgU0hBUEUgQUJVVE1FTlQgOwotICAgIE5FVEVYUFIgIlZERCBWREQhIiA7Ci0gICAgUE9SVAotICAgICAgTEFZRVIgTWV0YWwxIDsKLSAgICAgICAgUkVDVCAwLjAwIDEuNjUgMy42IDEuNzEgOwotICAgIEVORAotICBFTkQgVkRECi0gIFBJTiBWU1MKLSAgICBBTlRFTk5BTU9ERUwgT1hJREUxIDsKLSAgICBBTlRFTk5BR0FURUFSRUEgMC4wMjc2IExBWUVSIE1ldGFsMSA7Ci0gICAgRElSRUNUSU9OIElOT1VUIDsKLSAgICBVU0UgR1JPVU5EIDsKLSAgICBTSEFQRSBBQlVUTUVOVCA7Ci0gICAgTkVURVhQUiAiVlNTIFZTUyEiIDsKLSAgICBQT1JUCi0gICAgICBMQVlFUiBNZXRhbDEgOwotICAgICAgICBSRUNUIDAuMDAgMC4wMCAzLjYgMC4wNiA7Ci0gICAgRU5ECi0gIEVORCBWU1MKLUVORCBUTEFUTkNBWDQKLQotRU5EIExJQlJBUlkKZGlmZiAtLWdpdCBhL2Zsb3cvcG5yL0VYQU1QTEVTL0lOTk9WVVMvREVTSUdOL0dQREsvTElCUy9HUERLMDQ1L3RpbWluZy9mYXN0LmxpYiBiL2Zsb3cvcG5yL0VYQU1QTEVTL0lOTk9WVVMvREVTSUdOL0dQREsvTElCUy9HUERLMDQ1L3RpbWluZy9mYXN0LmxpYgpkZWxldGVkIGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggODFmZTBkYS4uMDAwMDAwMAotLS0gYS9mbG93L3Buci9FWEFNUExFUy9JTk5PVlVTL0RFU0lHTi9HUERLL0xJQlMvR1BESzA0NS90aW1pbmcvZmFzdC5saWIKKysrIC9kZXYvbnVsbApAQCAtMSwxODc1NjQgKzAsMCBAQAotLyoKLSBkZWxheSBtb2RlbCA6ICAgICAgIG1heAotIGNoZWNrIG1vZGVsIDogICAgICAgbWF4Ci0gcG93ZXIgbW9kZWwgOiAgICAgICBtYXgKLSBjYXBhY2l0YW5jZSBtb2RlbCA6IG1heAotIG90aGVyIG1vZGVsIDogICAgICAgbWF4Ci0qLwotbGlicmFyeShncGRrMDQ1d2MpIHsKLQotICBkZWxheV9tb2RlbCA6IHRhYmxlX2xvb2t1cDsKLSAgaW5fcGxhY2Vfc3dhcF9tb2RlIDogbWF0Y2hfZm9vdHByaW50OwotCi0gIC8qIHVuaXQgYXR0cmlidXRlcyAqLwotICB0aW1lX3VuaXQgOiAiMW5zIjsKLSAgdm9sdGFnZV91bml0IDogIjFWIjsKLSAgY3VycmVudF91bml0IDogIjFtQSI7Ci0gIHB1bGxpbmdfcmVzaXN0YW5jZV91bml0IDogIjFrb2htIjsKLSAgbGVha2FnZV9wb3dlcl91bml0IDogIjFuVyI7Ci0gIGNhcGFjaXRpdmVfbG9hZF91bml0ICgxLHBmKTsKLQotICBwb3dlcl9zdXBwbHkgKCkgewotICAgICAgZGVmYXVsdF9wb3dlcl9yYWlsIDogUkFJTF9WREQ7Ci0gICAgICBwb3dlcl9yYWlsKCBSQUlMX1ZERCwgMS4zMiApOwotICAgICAgcG93ZXJfcmFpbCggUkFJTF9WU1MsIDAgKTsKLSAgfQotCi0gIHNsZXdfdXBwZXJfdGhyZXNob2xkX3BjdF9yaXNlIDogOTA7Ci0gIHNsZXdfbG93ZXJfdGhyZXNob2xkX3BjdF9yaXNlIDogMTA7Ci0gIHNsZXdfdXBwZXJfdGhyZXNob2xkX3BjdF9mYWxsIDogOTA7Ci0gIHNsZXdfbG93ZXJfdGhyZXNob2xkX3BjdF9mYWxsIDogMTA7Ci0gIGlucHV0X3RocmVzaG9sZF9wY3RfcmlzZSA6IDUwOwotICBpbnB1dF90aHJlc2hvbGRfcGN0X2ZhbGwgOiA1MDsKLSAgb3V0cHV0X3RocmVzaG9sZF9wY3RfcmlzZSA6IDUwOwotICBvdXRwdXRfdGhyZXNob2xkX3BjdF9mYWxsIDogNTA7Ci0gIG5vbV9wcm9jZXNzIDogMTsKLSAgbm9tX3ZvbHRhZ2UgOiAxLjMyOwotICBub21fdGVtcGVyYXR1cmUgOiAwOwotICBvcGVyYXRpbmdfY29uZGl0aW9ucyAoIGZhc3QgKSB7Ci0gICAgIHByb2Nlc3MgOiAxOwotICAgICB2b2x0YWdlIDogMS4zMjsKLSAgICAgdGVtcGVyYXR1cmUgOiAwOwotICAgICBwb3dlcl9yYWlsKCBSQUlMX1ZERCwgMS4zMiApOwotICAgICBwb3dlcl9yYWlsKCBSQUlMX1ZTUywgMCApOwotICB9Ci0gIGRlZmF1bHRfb3BlcmF0aW5nX2NvbmRpdGlvbnMgOiBmYXN0OwotCi0gIGx1X3RhYmxlX3RlbXBsYXRlKGRlbGF5X3RlbXBsYXRlXzd4MSkgewotICAgIHZhcmlhYmxlXzEgOiBpbnB1dF9uZXRfdHJhbnNpdGlvbjsKLSAgICBpbmRleF8xICgiMTAwMC4wLCAxMDAxLjAsIDEwMDIuMCwgMTAwMy4wLCAxMDA0LjAsIDEwMDUuMCwgMTAwNi4wIik7Ci0gIH0KLSAgbHVfdGFibGVfdGVtcGxhdGUoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgdmFyaWFibGVfMSA6IGlucHV0X25ldF90cmFuc2l0aW9uOwotICAgIHZhcmlhYmxlXzIgOiB0b3RhbF9vdXRwdXRfbmV0X2NhcGFjaXRhbmNlOwotICAgIGluZGV4XzEgKCIxMDAwLjAsIDEwMDEuMCwgMTAwMi4wLCAxMDAzLjAsIDEwMDQuMCwgMTAwNS4wLCAxMDA2LjAiKTsKLSAgICBpbmRleF8yICgiMTAwMC4wLCAxMDAxLjAsIDEwMDIuMCwgMTAwMy4wLCAxMDA0LjAsIDEwMDUuMCwgMTAwNi4wIik7Ci0gIH0KLSAgcG93ZXJfbHV0X3RlbXBsYXRlKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICB2YXJpYWJsZV8xIDogaW5wdXRfdHJhbnNpdGlvbl90aW1lOwotICAgIHZhcmlhYmxlXzIgOiB0b3RhbF9vdXRwdXRfbmV0X2NhcGFjaXRhbmNlOwotICAgIGluZGV4XzEgKCIxMDAwLjAsIDEwMDEuMCwgMTAwMi4wLCAxMDAzLjAsIDEwMDQuMCwgMTAwNS4wLCAxMDA2LjAiKTsKLSAgICBpbmRleF8yICgiMTAwMC4wLCAxMDAxLjAsIDEwMDIuMCwgMTAwMy4wLCAxMDA0LjAsIDEwMDUuMCwgMTAwNi4wIik7Ci0gIH0KLSAgbHVfdGFibGVfdGVtcGxhdGUoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICB2YXJpYWJsZV8xIDogY29uc3RyYWluZWRfcGluX3RyYW5zaXRpb247Ci0gICAgdmFyaWFibGVfMiA6IHJlbGF0ZWRfcGluX3RyYW5zaXRpb247Ci0gICAgaW5kZXhfMSAoIjEwMDAuMCwgMTAwMS4wLCAxMDAyLjAsIDEwMDMuMCwgMTAwNC4wLCAxMDA1LjAsIDEwMDYuMCIpOwotICAgIGluZGV4XzIgKCIxMDAwLjAsIDEwMDEuMCwgMTAwMi4wLCAxMDAzLjAsIDEwMDQuMCwgMTAwNS4wLCAxMDA2LjAiKTsKLSAgfQotICBwb3dlcl9sdXRfdGVtcGxhdGUocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgdmFyaWFibGVfMSA6IGlucHV0X3RyYW5zaXRpb25fdGltZTsKLSAgICBpbmRleF8xICgiMTAwMC4wLCAxMDAxLjAsIDEwMDIuMCwgMTAwMy4wLCAxMDA0LjAsIDEwMDUuMCwgMTAwNi4wIik7Ci0gIH0KLSAgbHVfdGFibGVfdGVtcGxhdGUocmVjb3ZlcnlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgdmFyaWFibGVfMSA6IGNvbnN0cmFpbmVkX3Bpbl90cmFuc2l0aW9uOwotICAgIHZhcmlhYmxlXzIgOiByZWxhdGVkX3Bpbl90cmFuc2l0aW9uOwotICAgIGluZGV4XzEgKCIxMDAwLjAsIDEwMDEuMCwgMTAwMi4wLCAxMDAzLjAsIDEwMDQuMCwgMTAwNS4wLCAxMDA2LjAiKTsKLSAgICBpbmRleF8yICgiMTAwMC4wLCAxMDAxLjAsIDEwMDIuMCwgMTAwMy4wLCAxMDA0LjAsIDEwMDUuMCwgMTAwNi4wIik7Ci0gIH0KLSAgbHVfdGFibGVfdGVtcGxhdGUocmVtb3ZhbF90ZW1wbGF0ZV83eDcpIHsKLSAgICB2YXJpYWJsZV8xIDogY29uc3RyYWluZWRfcGluX3RyYW5zaXRpb247Ci0gICAgdmFyaWFibGVfMiA6IHJlbGF0ZWRfcGluX3RyYW5zaXRpb247Ci0gICAgaW5kZXhfMSAoIjEwMDAuMCwgMTAwMS4wLCAxMDAyLjAsIDEwMDMuMCwgMTAwNC4wLCAxMDA1LjAsIDEwMDYuMCIpOwotICAgIGluZGV4XzIgKCIxMDAwLjAsIDEwMDEuMCwgMTAwMi4wLCAxMDAzLjAsIDEwMDQuMCwgMTAwNS4wLCAxMDA2LjAiKTsKLSAgfQotICBsdV90YWJsZV90ZW1wbGF0ZShzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICB2YXJpYWJsZV8xIDogY29uc3RyYWluZWRfcGluX3RyYW5zaXRpb247Ci0gICAgdmFyaWFibGVfMiA6IHJlbGF0ZWRfcGluX3RyYW5zaXRpb247Ci0gICAgaW5kZXhfMSAoIjEwMDAuMCwgMTAwMS4wLCAxMDAyLjAsIDEwMDMuMCwgMTAwNC4wLCAxMDA1LjAsIDEwMDYuMCIpOwotICAgIGluZGV4XzIgKCIxMDAwLjAsIDEwMDEuMCwgMTAwMi4wLCAxMDAzLjAsIDEwMDQuMCwgMTAwNS4wLCAxMDA2LjAiKTsKLSAgfQotICBsdV90YWJsZV90ZW1wbGF0ZSh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICB2YXJpYWJsZV8xIDogcmVsYXRlZF9waW5fdHJhbnNpdGlvbjsKLSAgICBpbmRleF8xICgiMTAwMC4wLCAxMDAxLjAsIDEwMDIuMCwgMTAwMy4wLCAxMDA0LjAsIDEwMDUuMCwgMTAwNi4wIik7Ci0gIH0KLQotLyogLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBBRERGSFgyICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKEFEREZIWDIpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMS4wOTg5MTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAzMTg0MzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDMxNjMxODsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDMxODQzOwotICB9Ci0gIHBpbihCKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDMxMTU1OTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDMwOTA4MTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDMxMTU1OTsKLSAgfQotICBwaW4oQ0kpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMjM5MjE0OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMjM3NDE0OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMjM5MjE0OwotICB9Ci0gIHBpbihDTykgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjY4NTE1NDsKLSAgICBmdW5jdGlvbiA6ICIoKChBIEIpKyhCIENJKSkrKENJIEEpKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY3Mjc1LCAwLjE0ODEsIDAuMjA5ODksIDAuMjg3Mjk1LCAwLjM2NDMyNSwgMC40NDE4NzQsIDAuNTE4NTY0IiwgXAotICAgICAgICAgICIwLjA3NDEyMywgMC4xNTQ5NzEsIDAuMjE2NzUyLCAwLjI5NDIyMSwgMC4zNzEzMjYsIDAuNDQ4NzEsIDAuNTI1NjAyIiwgXAotICAgICAgICAgICIwLjA4MTk0MywgMC4xNjI4MTcsIDAuMjI0NTczLCAwLjMwMjM3MywgMC4zNzkxNjEsIDAuNDU2NTE4LCAwLjUzMzEwNiIsIFwKLSAgICAgICAgICAiMC4wODkwMjcsIDAuMTcwMDE0LCAwLjIzMTcyNiwgMC4zMDkxNSwgMC4zODYzNjcsIDAuNDYzNjgsIDAuNTQwNjM1IiwgXAotICAgICAgICAgICIwLjA5NTU2NiwgMC4xNzY2NTcsIDAuMjM4MzkxLCAwLjMxNTgzMywgMC4zOTMzMjYsIDAuNDcwMzY4LCAwLjU0NzMzOSIsIFwKLSAgICAgICAgICAiMC4xMDQ1MDYsIDAuMTg2MDEzLCAwLjI0Nzg3NiwgMC4zMjQ5MTYsIDAuNDAyMzM2LCAwLjQ3OTc5OCwgMC41NTY2NTQiLCBcCi0gICAgICAgICAgIjAuMTExNTQyLCAwLjE5MzE3NCwgMC4yNTUyNTQsIDAuMzMyNDU1LCAwLjQwOTc2MywgMC40ODcxMzgsIDAuNTY0MTg0Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0NzA5NCwgMC4yMDQ2NDIsIDAuMzMyMjM5LCAwLjQ5NDM3OSwgMC42NTU5MjIsIDAuODE4NjA5LCAwLjk4MTk3MiIsIFwKLSAgICAgICAgICAiMC4wNDcxNCwgMC4yMDQzMTUsIDAuMzMyMDQzLCAwLjQ5NDUxOSwgMC42NTYwNzEsIDAuODE4NTc1LCAwLjk4MTE0IiwgXAotICAgICAgICAgICIwLjA0NzE0MSwgMC4yMDQyOSwgMC4zMzIwNTEsIDAuNDk0Mzg0LCAwLjY1NjAyNiwgMC44MTg1NjMsIDAuOTgxOTgxIiwgXAotICAgICAgICAgICIwLjA0NzYxLCAwLjIwNDU4LCAwLjMzMjEyLCAwLjQ5NDQwMywgMC42NTYwMTYsIDAuODE4NDk1LCAwLjk4MTk0NSIsIFwKLSAgICAgICAgICAiMC4wNDg5NzUsIDAuMjA0NzksIDAuMzMyMjQ2LCAwLjQ5NDQyLCAwLjY1NjAxNywgMC44MTg1NTcsIDAuOTgxODg4IiwgXAotICAgICAgICAgICIwLjA1MTExNiwgMC4yMDQ3NjksIDAuMzMyNzY4LCAwLjQ5NDQ5MywgMC42NTU5NzQsIDAuODE4NTQyLCAwLjk4MTgyNCIsIFwKLSAgICAgICAgICAiMC4wNTEwMDksIDAuMjA1OTIxLCAwLjMzMjk5NCwgMC40OTQzNzcsIDAuNjU2NjcxLCAwLjgxOTE5LCAwLjk4MTc3MSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzEwNTEsIDAuMTUxNDUzLCAwLjIxMjQ0NCwgMC4yODgyNzcsIDAuMzY0ODA5LCAwLjQ0MDMwMywgMC41MTYwNjEiLCBcCi0gICAgICAgICAgIjAuMDc3NjY2LCAwLjE1ODE1LCAwLjIxODkyMSwgMC4yOTUwOTYsIDAuMzcxMjU5LCAwLjQ0NjkyMywgMC41MjIzMzciLCBcCi0gICAgICAgICAgIjAuMDg0NzcyLCAwLjE2NTI0MSwgMC4yMjYwMTEsIDAuMzAyMDEsIDAuMzc4MzA3LCAwLjQ1Mzk5MiwgMC41MzAwMSIsIFwKLSAgICAgICAgICAiMC4wOTEyNzYsIDAuMTcxODI0LCAwLjIzMjY2NywgMC4zMDg4NjgsIDAuMzg0ODY3LCAwLjQ2MDU0OCwgMC41MzY2MTQiLCBcCi0gICAgICAgICAgIjAuMDk2OTU0LCAwLjE3NzY3NiwgMC4yMzg1MjEsIDAuMzE0MzAxLCAwLjM5MDY5OSwgMC40NjY0MDksIDAuNTQxNzY3IiwgXAotICAgICAgICAgICIwLjEwNDgzNSwgMC4xODYwNTksIDAuMjQ3MTY0LCAwLjMyMzA4MiwgMC4zOTkzMiwgMC40NzQ5MzQsIDAuNTUwNzg0IiwgXAotICAgICAgICAgICIwLjExMTAxNCwgMC4xOTIzNTgsIDAuMjUzNDA2LCAwLjMyOTQyLCAwLjQwNTc1MSwgMC40ODE1NTEsIDAuNTU3NDI3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0NzIwNCwgMC4xOTk5MTYsIDAuMzI0MTI0LCAwLjQ3OTk1LCAwLjYzNTc5MywgMC43OTM3NzcsIDAuOTUwODQ5IiwgXAotICAgICAgICAgICIwLjA0NzAyNiwgMC4yMDAyNDQsIDAuMzI0MDQzLCAwLjQ3OTY1MiwgMC42MzY0OSwgMC43OTMzNzcsIDAuOTUwNjA3IiwgXAotICAgICAgICAgICIwLjA0Njk0NiwgMC4yMDAzMDEsIDAuMzIzNTgxLCAwLjQ3OTkxOCwgMC42MzY3NTgsIDAuNzkzNTEsIDAuOTUwODg5IiwgXAotICAgICAgICAgICIwLjA0NzM1NiwgMC4yMDA0NTUsIDAuMzI0MjEyLCAwLjQ3OTg1MSwgMC42MzU4NywgMC43OTM4MjIsIDAuOTUxNDA3IiwgXAotICAgICAgICAgICIwLjA0OTA1NiwgMC4yMDA2ODUsIDAuMzI0MzI4LCAwLjQ3OTg4MywgMC42MzYyOCwgMC43OTM0MzEsIDAuOTUwMTA1IiwgXAotICAgICAgICAgICIwLjA1MDQ3NCwgMC4yMDAyNTgsIDAuMzI0MzkxLCAwLjQ4MDA2NCwgMC42MzYzNzIsIDAuNzkzNTMzLCAwLjk1MDY1NiIsIFwKLSAgICAgICAgICAiMC4wNTIyODgsIDAuMjAxNjY0LCAwLjMyMzg5OSwgMC40Nzk0NiwgMC42MzYyNiwgMC43OTM1NzEsIDAuOTUxMyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjczMzUsIDAuMTQ4MDY0LCAwLjIwOTkwMSwgMC4yODczMzIsIDAuMzY0NTQ4LCAwLjQ0MjA3OSwgMC41MTg4MzkiLCBcCi0gICAgICAgICAgIjAuMDc0NzEyLCAwLjE1NTQzMiwgMC4yMTcyNjYsIDAuMjk1MDAyLCAwLjM3MjEzMSwgMC40NDkzMDMsIDAuNTI2NTM1IiwgXAotICAgICAgICAgICIwLjA4NDM3NSwgMC4xNjUwOTcsIDAuMjI2ODkzLCAwLjMwNDM0MiwgMC4zODEzNTksIDAuNDU5NDcyLCAwLjUzNTgxNiIsIFwKLSAgICAgICAgICAiMC4wOTM3NzcsIDAuMTc0NDk2LCAwLjIzNjI2NSwgMC4zMTM1MTUsIDAuMzkwNjY0LCAwLjQ2ODU2NSwgMC41NDU4NTEiLCBcCi0gICAgICAgICAgIjAuMTAyMjk4LCAwLjE4MzE1LCAwLjI0NDkxNywgMC4zMjIzMzgsIDAuMzk5NzQ1LCAwLjQ3Njc3MSwgMC41NTQxMDIiLCBcCi0gICAgICAgICAgIjAuMTEzNjQ4LCAwLjE5NTEwNSwgMC4yNTY4OTYsIDAuMzM0MzE4LCAwLjQxMTY1OSwgMC40ODkxOCwgMC41NjYxNDQiLCBcCi0gICAgICAgICAgIjAuMTIyMTY0LCAwLjIwMzksIDAuMjY1OTE0LCAwLjM0MzI0LCAwLjQyMDA3OSwgMC40OTc3MDgsIDAuNTc0OTQiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQ3MjU4LCAwLjIwNDYzLCAwLjMzMjEsIDAuNDk0MzI3LCAwLjY1NjA0NywgMC44MTkzMTMsIDAuOTgxMjU5IiwgXAotICAgICAgICAgICIwLjA0NzA5LCAwLjIwMzg0NCwgMC4zMzIwNzksIDAuNDk0NTEsIDAuNjU2NjU0LCAwLjgxOTIyMSwgMC45ODE5NTIiLCBcCi0gICAgICAgICAgIjAuMDQ2OTczLCAwLjIwNDMyNywgMC4zMzIxMDIsIDAuNDkzODMxLCAwLjY1NTk0NSwgMC44MTc5NDcsIDAuOTgwOTAxIiwgXAotICAgICAgICAgICIwLjA0NzkyNiwgMC4yMDQ1NTUsIDAuMzMyMTYyLCAwLjQ5NDAzNSwgMC42NTYwNjIsIDAuODE3Nzk0LCAwLjk4MDg4NSIsIFwKLSAgICAgICAgICAiMC4wNDkyMzIsIDAuMjA0NjQyLCAwLjMzMjI2NCwgMC40OTQxODUsIDAuNjU2NTQ4LCAwLjgxODM1NSwgMC45ODE4NjkiLCBcCi0gICAgICAgICAgIjAuMDUwNzk5LCAwLjIwNTYyMSwgMC4zMzI2NjcsIDAuNDk0NTg4LCAwLjY1NjM3OSwgMC44MTgzMTIsIDAuOTgxNzQ5IiwgXAotICAgICAgICAgICIwLjA1MjIyMywgMC4yMDU0MjksIDAuMzMzMTM5LCAwLjQ5NDQwOCwgMC42NTYwNzEsIDAuODE5MjEsIDAuOTgxNzA5Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3MDA5NywgMC4xNTA1MDQsIDAuMjExNTQ2LCAwLjI4NzgyNCwgMC4zNjM5OTgsIDAuNDM5NTkyLCAwLjUxNDg5MiIsIFwKLSAgICAgICAgICAiMC4wNzczNjMsIDAuMTU3NzUzLCAwLjIxODc3NiwgMC4yOTUwMTYsIDAuMzcxMTQ2LCAwLjQ0NjgwMywgMC41MjIwNzciLCBcCi0gICAgICAgICAgIjAuMDg3MDEyLCAwLjE2NzM2LCAwLjIyODM3MywgMC4zMDQ2MDcsIDAuMzgwNzE5LCAwLjQ1NjEwOSwgMC41MzE3NzIiLCBcCi0gICAgICAgICAgIjAuMDk2MzYyLCAwLjE3NjcxOCwgMC4yMzc3NDIsIDAuMzE0MjI5LCAwLjM5MDA1NCwgMC40NjU0MzIsIDAuNTQxMDY0IiwgXAotICAgICAgICAgICIwLjEwNDc2NSwgMC4xODUyNSwgMC4yNDYyMDgsIDAuMzIxOTc0LCAwLjM5ODY3OCwgMC40NzQzMTksIDAuNTQ5NTY2IiwgXAotICAgICAgICAgICIwLjExNTc3MiwgMC4xOTY2NSwgMC4yNTc2MTYsIDAuMzMzNjk5LCAwLjQwOTY0LCAwLjQ4NTgyNSwgMC41NjE1NDUiLCBcCi0gICAgICAgICAgIjAuMTI0MTE2LCAwLjIwNTQ1NiwgMC4yNjYyMjksIDAuMzQyNTU3LCAwLjQxODY1OSwgMC40OTQ1OSwgMC41Njk5MiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDgwOTgsIDAuMjAxMjI5LCAwLjMyNDY0OSwgMC40Nzk4NzcsIDAuNjM2MjU1LCAwLjc5MzQ0MSwgMC45NTA0MjUiLCBcCi0gICAgICAgICAgIjAuMDQ4MDQxLCAwLjIwMDAxOSwgMC4zMjQ2ODgsIDAuNDc5ODI0LCAwLjYzNjMwMywgMC43OTM2NDksIDAuOTUwNDQ5IiwgXAotICAgICAgICAgICIwLjA0ODE4NCwgMC4yMDEyNjgsIDAuMzI0NjIzLCAwLjQ4MDIxOSwgMC42MzU3NSwgMC43OTM3NywgMC45NTA3MDQiLCBcCi0gICAgICAgICAgIjAuMDQ4NjA0LCAwLjIwMTQ0NCwgMC4zMjQ3MDgsIDAuNDc5NDkyLCAwLjYzNTcyOSwgMC43OTM3OTYsIDAuOTUwNTM3IiwgXAotICAgICAgICAgICIwLjA1MDE4OSwgMC4yMDE5MjgsIDAuMzI0ODMxLCAwLjQ4MDEzMywgMC42MzY1MDIsIDAuNzkzNDU5LCAwLjk1MDU5IiwgXAotICAgICAgICAgICIwLjA1MTE3NywgMC4yMDI0NjIsIDAuMzI0Nzc2LCAwLjQ3OTU5NywgMC42MzU3NDYsIDAuNzkzNTgzLCAwLjk1MTE5MSIsIFwKLSAgICAgICAgICAiMC4wNTI3NDgsIDAuMjAzNDExLCAwLjMyNDQzOSwgMC40ODAwNSwgMC42MzU5NDcsIDAuNzkzODEsIDAuOTUwODg4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNJIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjMzNzYsIDAuMTQ0MjExLCAwLjIwNjIxMSwgMC4yODM0MjEsIDAuMzYwMzAyLCAwLjQzODAxNSwgMC41MTQ5MDYiLCBcCi0gICAgICAgICAgIjAuMDcwOTkxLCAwLjE1MTg0OCwgMC4yMTM2NzgsIDAuMjkxMTE2LCAwLjM2ODI1OSwgMC40NDQ5NDgsIDAuNTIyNzM1IiwgXAotICAgICAgICAgICIwLjA4MDgsIDAuMTYxNjI2LCAwLjIyMzQxOCwgMC4zMDA4NDIsIDAuMzc4MDg1LCAwLjQ1NDkyLCAwLjUzMjM3MSIsIFwKLSAgICAgICAgICAiMC4wOTAxMzUsIDAuMTcxMDAzLCAwLjIzMjg2NSwgMC4zMTAzNTUsIDAuMzg3MjM4LCAwLjQ2NDc1NSwgMC41NDE4NTgiLCBcCi0gICAgICAgICAgIjAuMDk4MTgxLCAwLjE3OTIxOCwgMC4yNDEwNjUsIDAuMzE4MzkxLCAwLjM5NTQwNCwgMC40NzI5MTcsIDAuNTQ5ODU0IiwgXAotICAgICAgICAgICIwLjEwODkxOCwgMC4xOTA0NzYsIDAuMjUyNDQ5LCAwLjMyOTM1MiwgMC40MDYzODEsIDAuNDg0MTQyLCAwLjU2MTA0OCIsIFwKLSAgICAgICAgICAiMC4xMTcxODIsIDAuMTk5MTQsIDAuMjYwODc3LCAwLjMzODQyOSwgMC40MTU1MSwgMC40OTIxNzcsIDAuNTY5MTYiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQ3MjM0LCAwLjIwMzg1OCwgMC4zMzE4MzUsIDAuNDk0MDg2LCAwLjY1NTc4MiwgMC44MTg1NzYsIDAuOTgxMSIsIFwKLSAgICAgICAgICAiMC4wNDcyMzMsIDAuMjA0NDQ4LCAwLjMzMjA0MywgMC40OTQxMDgsIDAuNjU1OTcyLCAwLjgxNzcyMSwgMC45ODExMzMiLCBcCi0gICAgICAgICAgIjAuMDQ3MzkxLCAwLjIwMzg3NCwgMC4zMzIwODQsIDAuNDk0MDk3LCAwLjY1NTk2NCwgMC44MTc2ODgsIDAuOTgxMDk1IiwgXAotICAgICAgICAgICIwLjA0ODI3MSwgMC4yMDM5NTksIDAuMzMyMTQ4LCAwLjQ5NDA1MywgMC42NTU3MTgsIDAuODE4NTQ2LCAwLjk4MTA3NiIsIFwKLSAgICAgICAgICAiMC4wNDk3NzYsIDAuMjAzOTk0LCAwLjMzMjQ1OSwgMC40OTQwNzEsIDAuNjU1MTcsIDAuODE4NTQ0LCAwLjk4MTA2NyIsIFwKLSAgICAgICAgICAiMC4wNTE4NjYsIDAuMjA1NDY5LCAwLjMzMjYzNiwgMC40OTQwMzYsIDAuNjU1NjA0LCAwLjgxODQ3NSwgMC45ODEwMiIsIFwKLSAgICAgICAgICAiMC4wNTM1MTIsIDAuMjA2MDc5LCAwLjMzMzA1LCAwLjQ5MzUxOSwgMC42NTYwMTYsIDAuODE4MTY2LCAwLjk4MDYyNSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjYwMjEsIDAuMTQ3MDYsIDAuMjA3OTc1LCAwLjI4NDE1NSwgMC4zNjAxNjMsIDAuNDM1ODQzLCAwLjUxMTI1MyIsIFwKLSAgICAgICAgICAiMC4wNzM1MTIsIDAuMTU0NTQyLCAwLjIxNTY3NCwgMC4yOTEzNjMsIDAuMzY3Nzg1LCAwLjQ0MzM4NywgMC41MTkwNzUiLCBcCi0gICAgICAgICAgIjAuMDgzMjQsIDAuMTY0MTg1LCAwLjIyNTEzOCwgMC4zMDEzNTUsIDAuMzc3MzQ4LCAwLjQ1Mjk3OCwgMC41MjkyMDYiLCBcCi0gICAgICAgICAgIjAuMDkyMiwgMC4xNzMyMiwgMC4yMzQzNjIsIDAuMzEwMDc5LCAwLjM4NjA5NSwgMC40NjIyNTgsIDAuNTM3OTE3IiwgXAotICAgICAgICAgICIwLjEwMDI3NCwgMC4xODEyMzMsIDAuMjQyMzUyLCAwLjMxNzkwNSwgMC4zOTM2ODEsIDAuNDY5NTg0LCAwLjU0NTgxMyIsIFwKLSAgICAgICAgICAiMC4xMTA3NTcsIDAuMTkyMjk2LCAwLjI1MzA2NiwgMC4zMjkwNzEsIDAuNDA1MjE5LCAwLjQ4MDg4NCwgMC41NTY4NDQiLCBcCi0gICAgICAgICAgIjAuMTE4NTY4LCAwLjIwMDUxNiwgMC4yNjE1MzIsIDAuMzM3NTc0LCAwLjQxMzM5NCwgMC40ODkwNSwgMC41NjQ0MTQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQ4NDIyLCAwLjIwMTIzOSwgMC4zMjIzNDgsIDAuNDc5ODQzLCAwLjYzNTMzMiwgMC43OTI4NjYsIDAuOTUwNjA3IiwgXAotICAgICAgICAgICIwLjA0ODUyNCwgMC4yMDEyNjUsIDAuMzIzNDE0LCAwLjQ4MDA3NywgMC42MzYxODYsIDAuNzkyOTYsIDAuOTUwNjQxIiwgXAotICAgICAgICAgICIwLjA0ODU0OCwgMC4yMDExNDQsIDAuMzI0NDg3LCAwLjQ3OTM3NSwgMC42MzUzMTksIDAuNzkyODg5LCAwLjk1MDUxNSIsIFwKLSAgICAgICAgICAiMC4wNDkxNjcsIDAuMjAxNDM5LCAwLjMyNDI3OCwgMC40NzkzNCwgMC42MzU2NzYsIDAuNzkyOTk5LCAwLjk1MDU5MiIsIFwKLSAgICAgICAgICAiMC4wNTA0NzUsIDAuMjAxNzgyLCAwLjMyNDYxOSwgMC40Nzk4NzksIDAuNjM2Njg3LCAwLjc5MzIzMiwgMC45NTA1NzkiLCBcCi0gICAgICAgICAgIjAuMDUyNTQ5LCAwLjIwMjIwOSwgMC4zMjUwNDgsIDAuNDgwMDE4LCAwLjYzNTYxOCwgMC43OTMxMTUsIDAuOTUwNzIxIiwgXAotICAgICAgICAgICIwLjA1NDI5MiwgMC4yMDA5NDMsIDAuMzI0NTA3LCAwLjQ4MDI5NiwgMC42MzU5NzcsIDAuNzkzMjMxLCAwLjk1MDM3OSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzYxNywgMC4wMDM2NjcsIDAuMDAzNjc5LCAwLjAwMzY4NywgMC4wMDM2ODksIDAuMDAzNjkyLCAwLjAwMzY5MyIsIFwKLSAgICAgICAgICAiMC4wMDM1NzIsIDAuMDAzNjI5LCAwLjAwMzY0MiwgMC4wMDM2NSwgMC4wMDM2NTQsIDAuMDAzNjU2LCAwLjAwMzY1OCIsIFwKLSAgICAgICAgICAiMC4wMDM1OCwgMC4wMDM2MjksIDAuMDAzNjQyLCAwLjAwMzY1LCAwLjAwMzY1MywgMC4wMDM2NTYsIDAuMDAzNjU4IiwgXAotICAgICAgICAgICIwLjAwMzYsIDAuMDAzNjQ2LCAwLjAwMzY1OSwgMC4wMDM2NjcsIDAuMDAzNjcyLCAwLjAwMzY3NSwgMC4wMDM2NzYiLCBcCi0gICAgICAgICAgIjAuMDAzNjUyLCAwLjAwMzY4MSwgMC4wMDM2OTMsIDAuMDAzNzAxLCAwLjAwMzcwNSwgMC4wMDM3MDgsIDAuMDAzNzEiLCBcCi0gICAgICAgICAgIjAuMDAzNzcyLCAwLjAwMzc2NSwgMC4wMDM3NzMsIDAuMDAzNzc5LCAwLjAwMzc4MiwgMC4wMDM3ODUsIDAuMDAzNzg3IiwgXAotICAgICAgICAgICIwLjAwMzgzMywgMC4wMDM4MjYsIDAuMDAzODM0LCAwLjAwMzg0MSwgMC4wMDM4NDQsIDAuMDAzODQ3LCAwLjAwMzg0OSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjM3LCAwLjAwNjQyNiwgMC4wMDY0MzgsIDAuMDA2NDQ1LCAwLjAwNjQ0OCwgMC4wMDY0NTEsIDAuMDA2NDUzIiwgXAotICAgICAgICAgICIwLjAwNjM0NywgMC4wMDY0MDYsIDAuMDA2NDE5LCAwLjAwNjQyNSwgMC4wMDY0MjksIDAuMDA2NDMyLCAwLjAwNjQzMyIsIFwKLSAgICAgICAgICAiMC4wMDYzNTgsIDAuMDA2NDA2LCAwLjAwNjQxOSwgMC4wMDY0MjcsIDAuMDA2NDMxLCAwLjAwNjQzNCwgMC4wMDY0MzUiLCBcCi0gICAgICAgICAgIjAuMDA2MzY5LCAwLjAwNjQxNiwgMC4wMDY0MzEsIDAuMDA2NDQsIDAuMDA2NDQ0LCAwLjAwNjQ0NywgMC4wMDY0NDkiLCBcCi0gICAgICAgICAgIjAuMDA2NDExLCAwLjAwNjQ0NSwgMC4wMDY0NTgsIDAuMDA2NDY2LCAwLjAwNjQ3LCAwLjAwNjQ3MywgMC4wMDY0NzYiLCBcCi0gICAgICAgICAgIjAuMDA2NDg2LCAwLjAwNjUwNCwgMC4wMDY1MTcsIDAuMDA2NTI1LCAwLjAwNjUzNCwgMC4wMDY1MzgsIDAuMDA2NTQiLCBcCi0gICAgICAgICAgIjAuMDA2NTc0LCAwLjAwNjU2NywgMC4wMDY1ODEsIDAuMDA2NTg2LCAwLjAwNjU5MywgMC4wMDY1OTUsIDAuMDA2NTk3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzODUzLCAwLjAwMzkwNSwgMC4wMDM5MTYsIDAuMDAzOTE5LCAwLjAwMzkyNywgMC4wMDM5MjYsIDAuMDAzOTMiLCBcCi0gICAgICAgICAgIjAuMDAzNzk4LCAwLjAwMzg1NywgMC4wMDM4NjksIDAuMDAzODc1LCAwLjAwMzg4LCAwLjAwMzg4MiwgMC4wMDM4ODIiLCBcCi0gICAgICAgICAgIjAuMDAzODA3LCAwLjAwMzg1MywgMC4wMDM4NjUsIDAuMDAzODcxLCAwLjAwMzg3NSwgMC4wMDM4NzcsIDAuMDAzODc5IiwgXAotICAgICAgICAgICIwLjAwMzg2NCwgMC4wMDM4ODUsIDAuMDAzODk1LCAwLjAwMzkwMiwgMC4wMDM5MDUsIDAuMDAzOTA3LCAwLjAwMzkwOCIsIFwKLSAgICAgICAgICAiMC4wMDM5MTksIDAuMDAzOTI5LCAwLjAwMzkzOCwgMC4wMDM5NDUsIDAuMDAzOTQ4LCAwLjAwMzk1LCAwLjAwMzk1MiIsIFwKLSAgICAgICAgICAiMC4wMDM5OTEsIDAuMDA0MDIsIDAuMDA0MDI2LCAwLjAwNDAwNywgMC4wMDQwMzIsIDAuMDA0MDEzLCAwLjAwNDAzNSIsIFwKLSAgICAgICAgICAiMC4wMDQwODgsIDAuMDA0MDcxLCAwLjAwNDA4LCAwLjAwNDA4NiwgMC4wMDQwODksIDAuMDA0MDkyLCAwLjAwNDA5NCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjE3NCwgMC4wMDYyMjYsIDAuMDA2MjM3LCAwLjAwNjI0NCwgMC4wMDYyNDgsIDAuMDA2MjUsIDAuMDA2MjUyIiwgXAotICAgICAgICAgICIwLjAwNjEzMiwgMC4wMDYxODksIDAuMDA2MjAyLCAwLjAwNjIxLCAwLjAwNjIxNCwgMC4wMDYyMTYsIDAuMDA2MjE4IiwgXAotICAgICAgICAgICIwLjAwNjExNSwgMC4wMDYxNjEsIDAuMDA2MTc0LCAwLjAwNjE4MSwgMC4wMDYxODUsIDAuMDA2MTg4LCAwLjAwNjE5IiwgXAotICAgICAgICAgICIwLjAwNjE1OSwgMC4wMDYxOSwgMC4wMDYyMDIsIDAuMDA2MjA5LCAwLjAwNjIxNCwgMC4wMDYyMTYsIDAuMDA2MjE4IiwgXAotICAgICAgICAgICIwLjAwNjIyMiwgMC4wMDYyMzksIDAuMDA2MjQ5LCAwLjAwNjI1NSwgMC4wMDYyNTksIDAuMDA2MjYyLCAwLjAwNjI2NCIsIFwKLSAgICAgICAgICAiMC4wMDYzMywgMC4wMDYzMTcsIDAuMDA2MzI4LCAwLjAwNjMzNCwgMC4wMDYzNCwgMC4wMDYzNDMsIDAuMDA2MzQ0IiwgXAotICAgICAgICAgICIwLjAwNjQ3MiwgMC4wMDY0MjIsIDAuMDA2NDI4LCAwLjAwNjQzMiwgMC4wMDY0MzMsIDAuMDA2NDM0LCAwLjAwNjQzNSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNJIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDM4NzQsIDAuMDAzOTMzLCAwLjAwMzk0NSwgMC4wMDM5NTIsIDAuMDAzOTU3LCAwLjAwMzk1OCwgMC4wMDM5NiIsIFwKLSAgICAgICAgICAiMC4wMDM4NiwgMC4wMDM5MjIsIDAuMDAzOTM1LCAwLjAwMzk0MiwgMC4wMDM5NDcsIDAuMDAzOTQ5LCAwLjAwMzk1MSIsIFwKLSAgICAgICAgICAiMC4wMDM4NjUsIDAuMDAzOTIxLCAwLjAwMzkzNCwgMC4wMDM5NDIsIDAuMDAzOTQ3LCAwLjAwMzk0OSwgMC4wMDM5NTEiLCBcCi0gICAgICAgICAgIjAuMDAzOTAyLCAwLjAwMzk1LCAwLjAwMzk2NCwgMC4wMDM5NzIsIDAuMDAzOTc3LCAwLjAwMzk4LCAwLjAwMzk4MiIsIFwKLSAgICAgICAgICAiMC4wMDM5NjksIDAuMDAzOTk1LCAwLjAwNDAwNiwgMC4wMDQwMTQsIDAuMDA0MDE5LCAwLjAwNDAyMSwgMC4wMDQwMjMiLCBcCi0gICAgICAgICAgIjAuMDA0MDgyLCAwLjAwNDA4NCwgMC4wMDQwOTMsIDAuMDA0MTAxLCAwLjAwNDEwMywgMC4wMDQxMDYsIDAuMDA0MTA4IiwgXAotICAgICAgICAgICIwLjAwNDE2LCAwLjAwNDE1NCwgMC4wMDQxNjQsIDAuMDA0MTcxLCAwLjAwNDE3NSwgMC4wMDQxNzgsIDAuMDA0MTgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDU4MSwgMC4wMDU4NTksIDAuMDA1ODcxLCAwLjAwNTg3OSwgMC4wMDU4ODEsIDAuMDA1ODg1LCAwLjAwNTg4NyIsIFwKLSAgICAgICAgICAiMC4wMDU4MSwgMC4wMDU4NjEsIDAuMDA1ODc0LCAwLjAwNTg4MiwgMC4wMDU4ODUsIDAuMDA1ODg4LCAwLjAwNTg5IiwgXAotICAgICAgICAgICIwLjAwNTgzMiwgMC4wMDU4NzksIDAuMDA1ODkzLCAwLjAwNTkwMSwgMC4wMDU5MDQsIDAuMDA1OTA4LCAwLjAwNTkxMSIsIFwKLSAgICAgICAgICAiMC4wMDU4ODksIDAuMDA1OTIsIDAuMDA1OTMzLCAwLjAwNTk0MiwgMC4wMDU5NDcsIDAuMDA1OTUsIDAuMDA1OTUyIiwgXAotICAgICAgICAgICIwLjAwNTk2MywgMC4wMDU5NzEsIDAuMDA1OTgzLCAwLjAwNTk5LCAwLjAwNTk5NSwgMC4wMDU5OTgsIDAuMDA2IiwgXAotICAgICAgICAgICIwLjAwNjA0OCwgMC4wMDYwNDYsIDAuMDA2MDU3LCAwLjAwNjA2NCwgMC4wMDYwNjksIDAuMDA2MDcyLCAwLjAwNjA3NCIsIFwKLSAgICAgICAgICAiMC4wMDYxNjYsIDAuMDA2MTM5LCAwLjAwNjE0NiwgMC4wMDYxNTIsIDAuMDA2MTU3LCAwLjAwNjE1OSwgMC4wMDYxNjEiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFMpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC42NjM4NTY7Ci0gICAgZnVuY3Rpb24gOiAiKChBXkIpXkNJKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc0OTg0LCAwLjE1NTg3OCwgMC4yMTc4MzMsIDAuMjk1MTQ5LCAwLjM3MjQxMSwgMC40NDk2NzIsIDAuNTI2ODY1IiwgXAotICAgICAgICAgICIwLjA4MDAzOCwgMC4xNjA5NiwgMC4yMjI4OTksIDAuMzAwMjExLCAwLjM3NzQ5OCwgMC40NTQ3NjUsIDAuNTMxOTI0IiwgXAotICAgICAgICAgICIwLjA4NTk3MSwgMC4xNjY3ODQsIDAuMjI4NzI1LCAwLjMwNjA0LCAwLjM4MzMyNywgMC40NjA1OTgsIDAuNTM3NzUxIiwgXAotICAgICAgICAgICIwLjA5MTQzMiwgMC4xNzIzNSwgMC4yMzQzMTIsIDAuMzExNjMyLCAwLjM4ODk1LCAwLjQ2NjEyNSwgMC41NDMzNTMiLCBcCi0gICAgICAgICAgIjAuMDk2NTg2LCAwLjE3NzY0NSwgMC4yMzk2MTIsIDAuMzE2OTAxLCAwLjM5NDE3MSwgMC40NzE0NzMsIDAuNTQ4NjEiLCBcCi0gICAgICAgICAgIjAuMTA0MDIyLCAwLjE4NTQ1MywgMC4yNDc0MDEsIDAuMzI0NzA3LCAwLjQwMTk1MywgMC40NzkyNjQsIDAuNTU2NDE0IiwgXAotICAgICAgICAgICIwLjEwOTg2OSwgMC4xOTE1MzIsIDAuMjUzNTIyLCAwLjMzMDgxMywgMC40MDgxNTMsIDAuNDg1MzY0LCAwLjU2MjUyNCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDg0NTQsIDAuMjA0NTY1LCAwLjMzMzU3NCwgMC40OTU4MjEsIDAuNjU4NTYzLCAwLjgyMDAzNiwgMC45ODQyMjQiLCBcCi0gICAgICAgICAgIjAuMDQ4MzgxLCAwLjIwNDU5MSwgMC4zMzI4MiwgMC40OTU3ODksIDAuNjU3NDQ4LCAwLjgyMTM0LCAwLjk4NDE0OSIsIFwKLSAgICAgICAgICAiMC4wNDgyNzgsIDAuMjA0NjgsIDAuMzMzMDU0LCAwLjQ5NTc5OSwgMC42NTc3MjEsIDAuODIxMzE2LCAwLjk4NDEyNSIsIFwKLSAgICAgICAgICAiMC4wNDg2NjYsIDAuMjA0NjU1LCAwLjMzMzU5OCwgMC40OTU4MzQsIDAuNjU4NDQ3LCAwLjgyMTIxLCAwLjk4NDA4MyIsIFwKLSAgICAgICAgICAiMC4wNDkzMzIsIDAuMjA0OTU4LCAwLjMzMzcyNSwgMC40OTU4NCwgMC42NTc4NzIsIDAuODIwMDIyLCAwLjk4NDAzNCIsIFwKLSAgICAgICAgICAiMC4wNTAxMzQsIDAuMjA1Mzg4LCAwLjMzMzM5OSwgMC40OTU5NDgsIDAuNjU3ODUzLCAwLjgyMDA2MywgMC45ODQwMzQiLCBcCi0gICAgICAgICAgIjAuMDUwOTA1LCAwLjIwNTYzMywgMC4zMzQxNTcsIDAuNDk1OTY3LCAwLjY1NzYxMywgMC44MjEyMjgsIDAuOTgzMDIiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc5NDgsIDAuMTYwNDM4LCAwLjIyMTQxNCwgMC4yOTc0MzcsIDAuMzczMzg4LCAwLjQ0OTMyMywgMC41MjUzMjMiLCBcCi0gICAgICAgICAgIjAuMDg0NTU3LCAwLjE2NTUxMiwgMC4yMjY0ODMsIDAuMzAyNTA5LCAwLjM3ODQ2MSwgMC40NTQzOTgsIDAuNTMwMzkxIiwgXAotICAgICAgICAgICIwLjA4OTcyMywgMC4xNzA1NjksIDAuMjMxNTUyLCAwLjMwNzU3OCwgMC4zODM1MywgMC40NTk0NzEsIDAuNTM1NDYiLCBcCi0gICAgICAgICAgIjAuMDk0MjY2LCAwLjE3NTIxNCwgMC4yMzYxOTEsIDAuMzEyMjExLCAwLjM4ODE5LCAwLjQ2NDEwNiwgMC41NDAwMDQiLCBcCi0gICAgICAgICAgIjAuMDk4NDY0LCAwLjE3OTU5MiwgMC4yNDA1NiwgMC4zMTY1NzQsIDAuMzkyNTI3LCAwLjQ2ODQ2LCAwLjU0NDQ1OSIsIFwKLSAgICAgICAgICAiMC4xMDQzNDMsIDAuMTg1OTA2LCAwLjI0Njg2NywgMC4zMjI4NzQsIDAuMzk4ODcsIDAuNDc0Nzk4LCAwLjU1MDcwNCIsIFwKLSAgICAgICAgICAiMC4xMDg4NjQsIDAuMTkwNzk0LCAwLjI1MTc3NywgMC4zMjc3OTIsIDAuNDAzNzM1LCAwLjQ3OTY3OCwgMC41NTU2NTYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQ4NzMyLCAwLjE5OTc0MiwgMC4zMjQxNDQsIDAuNDgwNzk0LCAwLjYzODAxMSwgMC43OTQ2MTIsIDAuOTUxOTUxIiwgXAotICAgICAgICAgICIwLjA0ODYzLCAwLjE5OTgxMiwgMC4zMjQxMjcsIDAuNDgwNzk2LCAwLjYzODAwNSwgMC43OTQ2MzYsIDAuOTUxODk2IiwgXAotICAgICAgICAgICIwLjA0ODU4MSwgMC4xOTk3ODUsIDAuMzI0MTE4LCAwLjQ4MDc4LCAwLjYzNzk5OCwgMC43OTQ3MDIsIDAuOTUxODkxIiwgXAotICAgICAgICAgICIwLjA0ODk5MiwgMC4xOTk5MjcsIDAuMzIzOTYzLCAwLjQ4MDM0OSwgMC42MzgwODIsIDAuNzk1NTM1LCAwLjk1MzExOCIsIFwKLSAgICAgICAgICAiMC4wNDk1MzMsIDAuMjAwMTE0LCAwLjMyNDM0MywgMC40ODA4OSwgMC42MzgwNSwgMC43OTQ2MDcsIDAuOTUxOTQ5IiwgXAotICAgICAgICAgICIwLjA1MDY5NCwgMC4yMDA2NDUsIDAuMzI0NjAxLCAwLjQ4MDUxNiwgMC42MzgyMTgsIDAuNzk1NjY4LCAwLjk1MjIxNyIsIFwKLSAgICAgICAgICAiMC4wNTE2MDYsIDAuMjAxMDc3LCAwLjMyNDY0NCwgMC40ODExMjMsIDAuNjM4MTc1LCAwLjc5NTU1NCwgMC45NTE3NDMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTAzNzAzLCAwLjE4MTc5NCwgMC4yNDM1MDMsIDAuMzIwNjgsIDAuMzk3ODY3LCAwLjQ3NTA1NCwgMC41NTIxNTMiLCBcCi0gICAgICAgICAgIjAuMTEwNDEsIDAuMTg4NDU5LCAwLjI1MDEzNCwgMC4zMjczNDMsIDAuNDA0NTQ3LCAwLjQ4MTY2NSwgMC41NTg4MTUiLCBcCi0gICAgICAgICAgIjAuMTE3Mzg4LCAwLjE5NTQ5NSwgMC4yNTcxNzEsIDAuMzM0MzMyLCAwLjQxMTU3NywgMC40ODg2OTcsIDAuNTY1ODk3IiwgXAotICAgICAgICAgICIwLjEyMzkxNiwgMC4yMDIwMDIsIDAuMjYzNzI1LCAwLjM0MDkwMSwgMC40MTgwNzcsIDAuNDk1MTk3LCAwLjU3MjQwOSIsIFwKLSAgICAgICAgICAiMC4xMjk1ODUsIDAuMjA3NTcxLCAwLjI2OTI4NiwgMC4zNDY0MzcsIDAuNDIzNjMsIDAuNTAwNzU0LCAwLjU3Nzc5MiIsIFwKLSAgICAgICAgICAiMC4xMzc1MywgMC4yMTU0NTUsIDAuMjc3MTksIDAuMzU0MzI5LCAwLjQzMTUwNCwgMC41MDg2MjMsIDAuNTg1ODI1IiwgXAotICAgICAgICAgICIwLjE0MzQxNiwgMC4yMjEzMTIsIDAuMjgzMDI3LCAwLjM2MDE1OCwgMC40MzczMjQsIDAuNTE0NDk0LCAwLjU5MTYzIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0NTIzNiwgMC4yMDIxNjgsIDAuMzMxNzE3LCAwLjQ5MzczOCwgMC42NTcxNTQsIDAuODE4OTkyLCAwLjk4MTg5OSIsIFwKLSAgICAgICAgICAiMC4wNDUyMTUsIDAuMjAyMTczLCAwLjMzMTY4NywgMC40OTQyMzUsIDAuNjU3MDk5LCAwLjgyMDAxMiwgMC45ODE5NTEiLCBcCi0gICAgICAgICAgIjAuMDQ1MjUzLCAwLjIwMjE2OCwgMC4zMzEwOTIsIDAuNDk0MTQ0LCAwLjY1NzEsIDAuODE5OTksIDAuOTgyOTIyIiwgXAotICAgICAgICAgICIwLjA0NTI0LCAwLjIwMjE2NCwgMC4zMzE3MjIsIDAuNDk0Mjc2LCAwLjY1NzE2NywgMC44MTk5NzMsIDAuOTgyOTMxIiwgXAotICAgICAgICAgICIwLjA0NTMyNiwgMC4yMDIxOSwgMC4zMzE3MjQsIDAuNDkzNzM0LCAwLjY1NzA5NCwgMC44MTk5OTIsIDAuOTgxMTg5IiwgXAotICAgICAgICAgICIwLjA0NTM5LCAwLjIwMjIwMSwgMC4zMzE2LCAwLjQ5NDIyMSwgMC42NTcwNTYsIDAuODE5OTc1LCAwLjk4MjgxNCIsIFwKLSAgICAgICAgICAiMC4wNDU1MTUsIDAuMjAyMjE2LCAwLjMzMTM3NiwgMC40OTQxMjgsIDAuNjU3MDAzLCAwLjgxOTg1NCwgMC45ODI3NTkiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTAxMDY1LCAwLjE3OTQ0NiwgMC4yNDAxMjUsIDAuMzE1OTY5LCAwLjM5MTgyNCwgMC40Njc3NTUsIDAuNTQzNTUyIiwgXAotICAgICAgICAgICIwLjEwNzkxLCAwLjE4NTc2NywgMC4yNDY0NTYsIDAuMzIyMzIyLCAwLjM5ODE2NiwgMC40NzQwNjksIDAuNTUwMDA0IiwgXAotICAgICAgICAgICIwLjExNTY2NywgMC4xOTM1NjQsIDAuMjU0MjU0LCAwLjMzMDA5NiwgMC40MDU5NiwgMC40ODE4NjksIDAuNTU3NzIxIiwgXAotICAgICAgICAgICIwLjEyMjczMSwgMC4yMDA4OTUsIDAuMjYxNTg1LCAwLjMzNzQyNiwgMC40MTMyOSwgMC40ODkyMDIsIDAuNTY1MDA1IiwgXAotICAgICAgICAgICIwLjEyOTI0MSwgMC4yMDc1NDEsIDAuMjY4MjI2LCAwLjM0NDA2MiwgMC40MTk5MjQsIDAuNDk1ODM2LCAwLjU3MTYzOSIsIFwKLSAgICAgICAgICAiMC4xMzg1NjYsIDAuMjE2OTIxLCAwLjI3NzU4NywgMC4zNTM0MywgMC40MjkyODYsIDAuNTA1MjE2LCAwLjU4MTAwOCIsIFwKLSAgICAgICAgICAiMC4xNDU3NjYsIDAuMjI0MDgzLCAwLjI4NDc0NywgMC4zNjA1NzIsIDAuNDM2NDM0LCAwLjUxMjMyNSwgMC41ODgxNjIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQ2LCAwLjE5NzAzNCwgMC4zMjE0ODIsIDAuNDc4NzYxLCAwLjYzNTY3NSwgMC43OTM4NzMsIDAuOTUxNzQ3IiwgXAotICAgICAgICAgICIwLjA0NjAwMywgMC4xOTcyNSwgMC4zMjE3NzQsIDAuNDc4OTA1LCAwLjYzNTc2OCwgMC43OTM4MDQsIDAuOTUxNDMxIiwgXAotICAgICAgICAgICIwLjA0NjAxMSwgMC4xOTcyNDYsIDAuMzIxNzc4LCAwLjQ3ODc1LCAwLjYzNTczNywgMC43OTM3NzcsIDAuOTUxNzY0IiwgXAotICAgICAgICAgICIwLjA0NiwgMC4xOTcyMzcsIDAuMzIxNzcyLCAwLjQ3ODc0NSwgMC42MzU3MjMsIDAuNzkzNjcsIDAuOTUxNjg5IiwgXAotICAgICAgICAgICIwLjA0NjA5OSwgMC4xOTcyNTgsIDAuMzIxNzYzLCAwLjQ3ODcwOSwgMC42MzYxMzksIDAuNzkzNzY4LCAwLjk1MTU3OCIsIFwKLSAgICAgICAgICAiMC4wNDYxMDUsIDAuMTk3MjU3LCAwLjMyMTcxNiwgMC40Nzg3LCAwLjYzNTYxMywgMC43OTM2NzIsIDAuOTUxNTI0IiwgXAotICAgICAgICAgICIwLjA0NjIxNSwgMC4xOTcxODQsIDAuMzIxNjg1LCAwLjQ3ODU0NCwgMC42MzYxODMsIDAuNzkzODI4LCAwLjk1MTQ2OCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzMzOTksIDAuMTU0MzMsIDAuMjE2Mjg3LCAwLjI5MzU5NywgMC4zNzA4NzYsIDAuNDQ4MTYzLCAwLjUyNTMxNSIsIFwKLSAgICAgICAgICAiMC4wNzk1MzEsIDAuMTYwNDUyLCAwLjIyMjQxNSwgMC4yOTk3NjEsIDAuMzc3MDA2LCAwLjQ1NDI4OSwgMC41MzE1MjEiLCBcCi0gICAgICAgICAgIjAuMDg3NTU3LCAwLjE2ODM4OCwgMC4yMzAzNTQsIDAuMzA3Njc1LCAwLjM4NDk0NCwgMC40NjIyNjEsIDAuNTM5Mzk5IiwgXAotICAgICAgICAgICIwLjA5NTE5OSwgMC4xNzYwNzQsIDAuMjM4MDI3LCAwLjMxNTM4MSwgMC4zOTI2MSwgMC40Njk4OSwgMC41NDcxMDkiLCBcCi0gICAgICAgICAgIjAuMTAyMzA0LCAwLjE4MzMyMywgMC4yNDUyNjIsIDAuMzIyNjE4LCAwLjM5OTgyNywgMC40NzcxMjksIDAuNTU0MzQ2IiwgXAotICAgICAgICAgICIwLjExMjI0MiwgMC4xOTM1NzcsIDAuMjU1NDYsIDAuMzMyNzk4LCAwLjQxMDAyOSwgMC40ODcyOTMsIDAuNTY0NDkzIiwgXAotICAgICAgICAgICIwLjEyMDA4NywgMC4yMDE3MDUsIDAuMjYzNjU5LCAwLjM0MDk3LCAwLjQxODIxNCwgMC40OTU0NDIsIDAuNTcyNjQ0Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0ODQ2NSwgMC4yMDQ2MjMsIDAuMzMzNTM4LCAwLjQ5NTc5NiwgMC42NTc4NjIsIDAuODIxMzM4LCAwLjk4NDExNSIsIFwKLSAgICAgICAgICAiMC4wNDgzNDQsIDAuMjA0NTE0LCAwLjMzMzU1OCwgMC40OTU4NjQsIDAuNjU3NzcyLCAwLjgyMTI4MywgMC45ODQxNDQiLCBcCi0gICAgICAgICAgIjAuMDQ4MzI1LCAwLjIwNDY3OCwgMC4zMzM1ODgsIDAuNDk1ODMsIDAuNjU3ODE1LCAwLjgxOTk5NCwgMC45ODQwNyIsIFwKLSAgICAgICAgICAiMC4wNDg3MDMsIDAuMjA0ODAxLCAwLjMzMzU5NiwgMC40OTU4MzcsIDAuNjU3ODA0LCAwLjgyMTI3NywgMC45ODQwMjYiLCBcCi0gICAgICAgICAgIjAuMDQ5MjYyLCAwLjIwNDk5NCwgMC4zMzM3MDQsIDAuNDk1ODcsIDAuNjU3ODIyLCAwLjgyMDAxOSwgMC45ODQwMjUiLCBcCi0gICAgICAgICAgIjAuMDUwNTk5LCAwLjIwNTM1NywgMC4zMzM3MzUsIDAuNDk1OTU1LCAwLjY1ODQ2NCwgMC44MjAxNzMsIDAuOTg0MDAzIiwgXAotICAgICAgICAgICIwLjA1MTQ4LCAwLjIwNTc2MiwgMC4zMzQwOTQsIDAuNDk1OTk4LCAwLjY1ODQ3OSwgMC44MjExOTcsIDAuOTgzMDU1Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3NzQyNiwgMC4xNTg0MTYsIDAuMjE5Mzg2LCAwLjI5NTQxNiwgMC4zNzEzNjksIDAuNDQ3MzAxLCAwLjUyMzIwMiIsIFwKLSAgICAgICAgICAiMC4wODM0NTcsIDAuMTY0Mzg5LCAwLjIyNTM2NSwgMC4zMDEzOTMsIDAuMzc3MzQ4LCAwLjQ1MzI4OSwgMC41MjkxOTkiLCBcCi0gICAgICAgICAgIjAuMDkwNzMzLCAwLjE3MTY3OSwgMC4yMzI2NjQsIDAuMzA4Njc1LCAwLjM4NDY2NSwgMC40NjA1ODQsIDAuNTM2NDk3IiwgXAotICAgICAgICAgICIwLjA5NzYzNiwgMC4xNzg2MjYsIDAuMjM5NjEzLCAwLjMxNTY0OSwgMC4zOTE2MDIsIDAuNDY3NTQzLCAwLjU0MzUyOSIsIFwKLSAgICAgICAgICAiMC4xMDQwOTgsIDAuMTg1MTc1LCAwLjI0NjE1MSwgMC4zMjIxOCwgMC4zOTgxMzQsIDAuNDc0MDY4LCAwLjU0OTk3NCIsIFwKLSAgICAgICAgICAiMC4xMTMwMjIsIDAuMTk0NTIsIDAuMjU1NDg1LCAwLjMzMTQ3OCwgMC40MDc0OCwgMC40ODMzOCwgMC41NTkyODgiLCBcCi0gICAgICAgICAgIjAuMTIwMTEsIDAuMjAxODksIDAuMjYyODg1LCAwLjMzODkxMiwgMC40MTQ4NzUsIDAuNDkwODQ1LCAwLjU2NjY4NiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDg3NCwgMC4xOTk4MTQsIDAuMzIzODU2LCAwLjQ4MDc5NiwgMC42MzgwMTgsIDAuNzk0NTY1LCAwLjk1MzEzIiwgXAotICAgICAgICAgICIwLjA0ODYzNCwgMC4xOTk4MDEsIDAuMzI0MDk1LCAwLjQ4MDgwMywgMC42MzgwMTMsIDAuNzk0Njg2LCAwLjk1MzE2OCIsIFwKLSAgICAgICAgICAiMC4wNDg1NTQsIDAuMTk5NzkyLCAwLjMyNDEwNiwgMC40ODA2OCwgMC42MzgwNDksIDAuNzk1NTEsIDAuOTUyMTQyIiwgXAotICAgICAgICAgICIwLjA0OTI3OSwgMC4xOTk5NjksIDAuMzI0MTk5LCAwLjQ4MDgyNSwgMC42MzgwMTgsIDAuNzk0NjkyLCAwLjk1MTc5NiIsIFwKLSAgICAgICAgICAiMC4wNDk5MjcsIDAuMjAwMjEsIDAuMzI0MzI1LCAwLjQ4MDkxLCAwLjYzODA2LCAwLjc5NDYzNiwgMC45NTIwNjgiLCBcCi0gICAgICAgICAgIjAuMDUwOTE0LCAwLjIwMDcwMiwgMC4zMjQ2ODUsIDAuNDgwNzMyLCAwLjYzODI2OCwgMC43OTQ3NDQsIDAuOTUyMTU5IiwgXAotICAgICAgICAgICIwLjA1MTgwMSwgMC4yMDEyMDYsIDAuMzI0NTgsIDAuNDgxMzExLCAwLjYzODM4NSwgMC43OTQyOTIsIDAuOTUzMjQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTA0MDQ4LCAwLjE4MjI3MiwgMC4yNDQwMDMsIDAuMzIxMjMsIDAuMzk4NDUsIDAuNDc1NTg0LCAwLjU1MjczNSIsIFwKLSAgICAgICAgICAiMC4xMTA0NzEsIDAuMTg4NjQ2LCAwLjI1MDQxOSwgMC4zMjc2MDQsIDAuNDA0ODA5LCAwLjQ4MTk2NiwgMC41NTkxNDQiLCBcCi0gICAgICAgICAgIjAuMTE3MTkyLCAwLjE5NTQsIDAuMjU3MTc0LCAwLjMzNDM1OCwgMC40MTE1OTIsIDAuNDg4NzI5LCAwLjU2NTg3OCIsIFwKLSAgICAgICAgICAiMC4xMjYyMDMsIDAuMjA0NTk0LCAwLjI2NjI5LCAwLjM0MzQ4NywgMC40MjA2MTcsIDAuNDk3NzI5LCAwLjU3NDcyIiwgXAotICAgICAgICAgICIwLjEzNDU4MiwgMC4yMTI5MjQsIDAuMjc0NjE0LCAwLjM1MTc0MywgMC40Mjg5NjUsIDAuNTA2MDUxLCAwLjU4MzIyNiIsIFwKLSAgICAgICAgICAiMC4xNDU1NzksIDAuMjIzODI3LCAwLjI4NTUwMiwgMC4zNjI2MjEsIDAuNDM5ODEyLCAwLjUxNjk2MiwgMC41OTQwNjciLCBcCi0gICAgICAgICAgIjAuMTU0MTA2LCAwLjIzMjIwNywgMC4yOTM4NTQsIDAuMzcwOTk1LCAwLjQ0ODE2MiwgMC41MjUzMjMsIDAuNjAyNDE1Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0NTA4MSwgMC4yMDIxNywgMC4zMzE3MjIsIDAuNDk0MzMyLCAwLjY1NzE4OCwgMC44MjAwNDYsIDAuOTgyOTM5IiwgXAotICAgICAgICAgICIwLjA0NTA3NywgMC4yMDIwNzUsIDAuMzMxNzMsIDAuNDk0MywgMC42NTcxNTUsIDAuODE5OTY3LCAwLjk4Mjk1MiIsIFwKLSAgICAgICAgICAiMC4wNDUwNjQsIDAuMjAyMDgzLCAwLjMzMTczMywgMC40OTQyOTUsIDAuNjU3MiwgMC44MjAwNDIsIDAuOTgyMDUzIiwgXAotICAgICAgICAgICIwLjA0NTEzMywgMC4yMDIxNTIsIDAuMzMxNzM4LCAwLjQ5NDM1MywgMC42NTcxODMsIDAuODIwMDUzLCAwLjk4Mjk1MyIsIFwKLSAgICAgICAgICAiMC4wNDUxNzcsIDAuMjAyMTY1LCAwLjMzMTcxOCwgMC40OTM5MjYsIDAuNjU3MjExLCAwLjgyMDA2NCwgMC45ODI4ODEiLCBcCi0gICAgICAgICAgIjAuMDQ1MjksIDAuMjAyMTExLCAwLjMzMTY5NCwgMC40OTQyNjEsIDAuNjU3MTM3LCAwLjgxOTg2OCwgMC45ODI4NzEiLCBcCi0gICAgICAgICAgIjAuMDQ1NTI0LCAwLjIwMjIwMSwgMC4zMzE1MDIsIDAuNDk0MjY2LCAwLjY1NzExNiwgMC44MTk4OCwgMC45ODE3NTciKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTAwNzQ4LCAwLjE3OTIyNSwgMC4yMzk4OTgsIDAuMzE1NzQzLCAwLjM5MTYzNCwgMC40Njc1LCAwLjU0MzMzNCIsIFwKLSAgICAgICAgICAiMC4xMDgxMzMsIDAuMTg2NjA0LCAwLjI0NzI4NSwgMC4zMjMxNTIsIDAuMzk4OTkyLCAwLjQ3NDg0MywgMC41NTA3MjQiLCBcCi0gICAgICAgICAgIjAuMTE3Nzc0LCAwLjE5NjIzMiwgMC4yNTY5MjEsIDAuMzMyNzY1LCAwLjQwODYzOCwgMC40ODQ2MTEsIDAuNTYwMzUxIiwgXAotICAgICAgICAgICIwLjEyNzE0NywgMC4yMDU1ODMsIDAuMjY2MjcxLCAwLjM0MjEwMywgMC40MTc5NzksIDAuNDkzODc5LCAwLjU2OTc4OSIsIFwKLSAgICAgICAgICAiMC4xMzU2MzksIDAuMjE0MDEsIDAuMjc0Njg1LCAwLjM1MDUxMSwgMC40MjYzNzMsIDAuNTAyMjksIDAuNTc4MDg3IiwgXAotICAgICAgICAgICIwLjE0Njk5NSwgMC4yMjU1NDIsIDAuMjg2MjAxLCAwLjM2MTc4OSwgMC40Mzc4NzIsIDAuNTEzNTg0LCAwLjU4OTYxNCIsIFwKLSAgICAgICAgICAiMC4xNTU3NjUsIDAuMjMzOTA2LCAwLjI5NDU2LCAwLjM3MDM5NywgMC40NDYyNSwgMC41MjIwOTMsIDAuNTk3OTczIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0NTY3MiwgMC4xOTcwNDgsIDAuMzIxNzQ4LCAwLjQ3ODc5MiwgMC42MzY0MDksIDAuNzk0MDgyLCAwLjk1MTY5NSIsIFwKLSAgICAgICAgICAiMC4wNDU2NSwgMC4xOTcxMjQsIDAuMzIxNzYyLCAwLjQ3ODg4OCwgMC42MzYzMDgsIDAuNzkzOTU1LCAwLjk1MTcyIiwgXAotICAgICAgICAgICIwLjA0NTY0NiwgMC4xOTcxNzksIDAuMzIxNzQ4LCAwLjQ3ODM1NCwgMC42MzYyMzYsIDAuNzkzMjgxLCAwLjk1MTYxNiIsIFwKLSAgICAgICAgICAiMC4wNDU2NjUsIDAuMTk3MTc1LCAwLjMyMTczOSwgMC40Nzg3NjIsIDAuNjM1NzQ3LCAwLjc5MzM3OCwgMC45NTE1MzkiLCBcCi0gICAgICAgICAgIjAuMDQ1NzEzLCAwLjE5NzE4MiwgMC4zMjE3NTMsIDAuNDc4NTc5LCAwLjYzNjIwOSwgMC43OTM5MDksIDAuOTUxNTg2IiwgXAotICAgICAgICAgICIwLjA0NTgyNCwgMC4xOTcxODksIDAuMzIxNTQ4LCAwLjQ3ODc1NywgMC42MzYxNDMsIDAuNzkzNzc3LCAwLjk1MTQ5OCIsIFwKLSAgICAgICAgICAiMC4wNDYxNDgsIDAuMTk3MTI5LCAwLjMyMTUzOCwgMC40Nzg2MTcsIDAuNjM2MTU2LCAwLjc5Mzc3MywgMC45NTE0MTUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0kiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3MzM5NSwgMC4xNTQ0MTgsIDAuMjE2MzYyLCAwLjI5MzY4NiwgMC4zNzA5OTksIDAuNDQ4MjUzLCAwLjUyNTQyMSIsIFwKLSAgICAgICAgICAiMC4wODAwNTgsIDAuMTYwOTc5LCAwLjIyMjk0NiwgMC4zMDAyNywgMC4zNzc2MDIsIDAuNDU0NzY5LCAwLjUzMTk5NyIsIFwKLSAgICAgICAgICAiMC4wODkxMDEsIDAuMTY5OTg5LCAwLjIzMTk0LCAwLjMwOTI2LCAwLjM4NjUzNiwgMC40NjM4MzIsIDAuNTQwOTgxIiwgXAotICAgICAgICAgICIwLjA5NzkyMywgMC4xNzg5MTMsIDAuMjQwODgzLCAwLjMxODIwNiwgMC4zOTU0NzQsIDAuNDcyNzg5LCAwLjU0OTkyNSIsIFwKLSAgICAgICAgICAiMC4xMDY3MjUsIDAuMTg3NDE1LCAwLjI0OTM1OSwgMC4zMjY2NywgMC40MDQwMSwgMC40ODExMzUsIDAuNTU4Mzg3IiwgXAotICAgICAgICAgICIwLjExODM1NiwgMC4xOTk1MzQsIDAuMjYxNDUxLCAwLjMzODc1OCwgMC40MTYwMDUsIDAuNDkzMjY5LCAwLjU3MDQ5OSIsIFwKLSAgICAgICAgICAiMC4xMjcyNDIsIDAuMjA4Njg1LCAwLjI3MDYyNCwgMC4zNDc4OTIsIDAuNDI1MTQsIDAuNTAyMzgyLCAwLjU3OTYwOSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDg1MDcsIDAuMjA0NzIsIDAuMzMzNjI1LCAwLjQ5NTg0LCAwLjY1NzM1OCwgMC44MjE0ODIsIDAuOTg0MzM2IiwgXAotICAgICAgICAgICIwLjA0ODM0MiwgMC4yMDQ1NDcsIDAuMzMzNTc0LCAwLjQ5NTgyMywgMC42NTc0MjYsIDAuODIxMzEsIDAuOTg0MTI2IiwgXAotICAgICAgICAgICIwLjA0ODMxLCAwLjIwNDU3NSwgMC4zMzMwNjksIDAuNDk1ODEsIDAuNjU3ODgyLCAwLjgyMTMxMSwgMC45ODQxMDYiLCBcCi0gICAgICAgICAgIjAuMDQ4OTM2LCAwLjIwNDc4NiwgMC4zMzM2MjcsIDAuNDk1ODgsIDAuNjU3ODI2LCAwLjgyMDAwMiwgMC45ODQwNzMiLCBcCi0gICAgICAgICAgIjAuMDQ5Mzg3LCAwLjIwNTA0MywgMC4zMzM3MSwgMC40OTU4NTgsIDAuNjU3NDkxLCAwLjgyMDM0LCAwLjk4Mzk2OCIsIFwKLSAgICAgICAgICAiMC4wNTEwMzUsIDAuMjA1NTY5LCAwLjMzMzY4MSwgMC40OTU5MDksIDAuNjU4NDQzLCAwLjgyMDA5MywgMC45ODM5ODIiLCBcCi0gICAgICAgICAgIjAuMDUyMTE5LCAwLjIwNTkyMiwgMC4zMzQyMDQsIDAuNDk1NzAzLCAwLjY1ODQ5NywgMC44MjExOTIsIDAuOTgyNzA1Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3NDgwMSwgMC4xNTU4MzcsIDAuMjE2ODE4LCAwLjI5Mjg1NiwgMC4zNjg4MTcsIDAuNDQ0NzU1LCAwLjUyMDY2NyIsIFwKLSAgICAgICAgICAiMC4wODE0MTMsIDAuMTYyMzc5LCAwLjIyMzM3NCwgMC4yOTk0MDYsIDAuMzc1MzYyLCAwLjQ1MTI5OSwgMC41MjcyNDUiLCBcCi0gICAgICAgICAgIjAuMDkwNTQ3LCAwLjE3MTQzMSwgMC4yMzI0MjUsIDAuMzA4NDU4LCAwLjM4NDQxNSwgMC40NjAzNTUsIDAuNTM2MzA0IiwgXAotICAgICAgICAgICIwLjA5OTU3LCAwLjE4MDQ2MSwgMC4yNDE0NSwgMC4zMTc0ODMsIDAuMzkzNDM4LCAwLjQ2OTM3MywgMC41NDUzNzQiLCBcCi0gICAgICAgICAgIjAuMTA3NTkxLCAwLjE4ODY2NSwgMC4yNDk2MjksIDAuMzI1NjUyLCAwLjQwMTYwMiwgMC40Nzc1MzYsIDAuNTUzNDI3IiwgXAotICAgICAgICAgICIwLjExODgzLCAwLjIwMDI3MiwgMC4yNjEyMzIsIDAuMzM3MjY5LCAwLjQxMzIxNSwgMC40ODkxMjksIDAuNTY1MDUiLCBcCi0gICAgICAgICAgIjAuMTI3NDUyLCAwLjIwOTA5MywgMC4yNzAyNTYsIDAuMzQ2MjYsIDAuNDIyMjI0LCAwLjQ5ODE0MSwgMC41NzQwMjMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQ4NzUzLCAwLjE5OTgzMywgMC4zMjM4ODcsIDAuNDgwODMzLCAwLjYzODA3MSwgMC43OTQ2MDYsIDAuOTUzMDg3IiwgXAotICAgICAgICAgICIwLjA0ODU3MSwgMC4xOTk3ODIsIDAuMzI0MTIzLCAwLjQ4MDc5NywgMC42MzgwMDUsIDAuNzk0NjAzLCAwLjk1MTg0MSIsIFwKLSAgICAgICAgICAiMC4wNDg1OTIsIDAuMTk5Nzg4LCAwLjMyNDExNSwgMC40ODA3ODQsIDAuNjM4MDAxLCAwLjc5NDY1MSwgMC45NTE4MzIiLCBcCi0gICAgICAgICAgIjAuMDQ4ODc5LCAwLjE5OTkxMiwgMC4zMjQxNzYsIDAuNDgwODExLCAwLjYzODAxNSwgMC43OTQ2MDMsIDAuOTUxOTQ0IiwgXAotICAgICAgICAgICIwLjA0OTk5MiwgMC4yMDAyLCAwLjMyNDA3OSwgMC40ODA4OTQsIDAuNjM4MDUzLCAwLjc5NDY2MywgMC45NTMxMDYiLCBcCi0gICAgICAgICAgIjAuMDUxMDg3LCAwLjIwMDc0OSwgMC4zMjQ2NzcsIDAuNDgwMjAxLCAwLjYzODE4NCwgMC43OTU0NDUsIDAuOTUyMDciLCBcCi0gICAgICAgICAgIjAuMDUyMTQxLCAwLjIwMTMwNywgMC4zMjUwMTIsIDAuNDgxMzI2LCAwLjYzODM4NywgMC43OTQ4MjMsIDAuOTUzMTc5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNJIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTkyNDQsIDAuMTc3NDE4LCAwLjIzOTE5MSwgMC4zMTY0MDIsIDAuMzkzNjA4LCAwLjQ3MDc1LCAwLjU0NzkwMyIsIFwKLSAgICAgICAgICAiMC4xMDY5OCwgMC4xODUxNjksIDAuMjQ2OTM5LCAwLjMyNDEwMiwgMC40MDEzNTYsIDAuNDc4NDg1LCAwLjU1NTYyMSIsIFwKLSAgICAgICAgICAiMC4xMTY3NSwgMC4xOTQ5MDIsIDAuMjU2NjczLCAwLjMzMzg4MSwgMC40MTEwOTMsIDAuNDg4MjI1LCAwLjU2NTQ5MiIsIFwKLSAgICAgICAgICAiMC4xMjU3MzYsIDAuMjAzODYzLCAwLjI2NTYzMywgMC4zNDI4MDQsIDAuNDIwMDE1LCAwLjQ5NzIzMiwgMC41NzQzNjYiLCBcCi0gICAgICAgICAgIjAuMTMzNTYzLCAwLjIxMTU4OCwgMC4yNzMzMzUsIDAuMzUwNTE1LCAwLjQyNzY5NSwgMC41MDQ4NzUsIDAuNTgyMDQyIiwgXAotICAgICAgICAgICIwLjE0MzU1OSwgMC4yMjE3ODUsIDAuMjgzNTMxLCAwLjM2MDYxOCwgMC40Mzc4MzIsIDAuNTE0OTY2LCAwLjU5MjE1OCIsIFwKLSAgICAgICAgICAiMC4xNTA5NzksIDAuMjI5MTk3LCAwLjI5MDk0NywgMC4zNjgxNTUsIDAuNDQ1Mjc1LCAwLjUyMjQxLCAwLjU5OTU5MiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDQ3MDEsIDAuMjAyMTAxLCAwLjMzMTM0OSwgMC40OTQzNSwgMC42NTcxOSwgMC44MjAwNTgsIDAuOTgyMDU4IiwgXAotICAgICAgICAgICIwLjA0NDY3OCwgMC4yMDIxLCAwLjMzMTE4MywgMC40OTM5NSwgMC42NTcwOTksIDAuODIwMDYsIDAuOTgyOTM0IiwgXAotICAgICAgICAgICIwLjA0NDY4MSwgMC4yMDIwOTksIDAuMzMxNzE4LCAwLjQ5MzQyMywgMC42NTcyMTIsIDAuODIwMDYsIDAuOTgxOTYiLCBcCi0gICAgICAgICAgIjAuMDQ0NzAxLCAwLjIwMjEwMiwgMC4zMzE2MzYsIDAuNDk0Mjg5LCAwLjY1NzA4NCwgMC44MjAwOTksIDAuOTgyOTU0IiwgXAotICAgICAgICAgICIwLjA0NDc0NSwgMC4yMDIxMTMsIDAuMzMxNDQ0LCAwLjQ5MzksIDAuNjU2NTksIDAuODE5NDc3LCAwLjk4Mjk0MyIsIFwKLSAgICAgICAgICAiMC4wNDQ4NjgsIDAuMjAyMzIyLCAwLjMzMTgxMiwgMC40OTQzMjIsIDAuNjU3MTMsIDAuODE5OTg1LCAwLjk4MjkzIiwgXAotICAgICAgICAgICIwLjA0NDkzMywgMC4yMDI1MzUsIDAuMzMxNTQzLCAwLjQ5NDQ2LCAwLjY1NzIwNywgMC44MTk5NCwgMC45ODIxNTgiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk2OTM3LCAwLjE3NDUyOCwgMC4yMzUyMjcsIDAuMzExMDk1LCAwLjM4Njk3MSwgMC40NjI4NzEsIDAuNTM4NjkiLCBcCi0gICAgICAgICAgIjAuMTA0NTE2LCAwLjE4MjA3NCwgMC4yNDI3NzUsIDAuMzE4NjQyLCAwLjM5NDQ5NiwgMC40NzAzNzIsIDAuNTQ2Mjc1IiwgXAotICAgICAgICAgICIwLjExMzk4LCAwLjE5MTUzLCAwLjI1MjIyOCwgMC4zMjgwOTMsIDAuNDAzOTYsIDAuNDc5ODEzLCAwLjU1NTY5OSIsIFwKLSAgICAgICAgICAiMC4xMjMwNzQsIDAuMjAwNTk1LCAwLjI2MTMsIDAuMzM3MTczLCAwLjQxMzAzOSwgMC40ODg5MjIsIDAuNTY0Nzg5IiwgXAotICAgICAgICAgICIwLjEzMDgzMywgMC4yMDgyODksIDAuMjY4OTg0LCAwLjM0NDgzMywgMC40MjA3MTMsIDAuNDk2NTkyLCAwLjU3MjQxNyIsIFwKLSAgICAgICAgICAiMC4xNDE1LCAwLjIxODg3MSwgMC4yNzk1NTIsIDAuMzU1NDAzLCAwLjQzMTI2NCwgMC41MDcxNjIsIDAuNTgyOTgzIiwgXAotICAgICAgICAgICIwLjE0OTc4NiwgMC4yMjcxNjcsIDAuMjg3NzQyLCAwLjM2MzYxMSwgMC40Mzk1NTIsIDAuNTE1Mjg2LCAwLjU5MTE1NCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDQwOTgsIDAuMTk2NDI3LCAwLjMyMTQ5NCwgMC40Nzg2NzUsIDAuNjM2MjI2LCAwLjc5MzgyMywgMC45NTE1NTciLCBcCi0gICAgICAgICAgIjAuMDQ0MDg4LCAwLjE5NjM0NiwgMC4zMjE0OTgsIDAuNDc4NzE0LCAwLjYzNjE0NiwgMC43OTMzMTYsIDAuOTUxNTI3IiwgXAotICAgICAgICAgICIwLjA0NDA2OSwgMC4xOTY0MDYsIDAuMzIxNTEsIDAuNDc4NTI1LCAwLjYzNjE2NSwgMC43OTMyNDIsIDAuOTUxNDQ1IiwgXAotICAgICAgICAgICIwLjA0NDEwNCwgMC4xOTY0MTgsIDAuMzIxNDkxLCAwLjQ3ODcwNiwgMC42MzYxMzUsIDAuNzkzNzU0LCAwLjk1MTQ3NSIsIFwKLSAgICAgICAgICAiMC4wNDQxNzYsIDAuMTk2NDU4LCAwLjMyMTM2NywgMC40Nzg2NTYsIDAuNjM1NjM4LCAwLjc5Mzg5NSwgMC45NTE0ODYiLCBcCi0gICAgICAgICAgIjAuMDQ0MTc3LCAwLjE5NjUyMiwgMC4zMjE1NjQsIDAuNDc4NjI3LCAwLjYzNTgyMiwgMC43OTM2ODQsIDAuOTUxNTA4IiwgXAotICAgICAgICAgICIwLjA0NDMyNSwgMC4xOTY2NDQsIDAuMzIxNDYsIDAuNDc4MzY0LCAwLjYzNTkzNCwgMC43OTM2NzYsIDAuOTUxMzMxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2MzcsIDAuMDA2NDI2LCAwLjAwNjQzOCwgMC4wMDY0NDUsIDAuMDA2NDQ4LCAwLjAwNjQ1MSwgMC4wMDY0NTMiLCBcCi0gICAgICAgICAgIjAuMDA2MzQ3LCAwLjAwNjQwNiwgMC4wMDY0MTksIDAuMDA2NDI1LCAwLjAwNjQyOSwgMC4wMDY0MzIsIDAuMDA2NDMzIiwgXAotICAgICAgICAgICIwLjAwNjM1OCwgMC4wMDY0MDYsIDAuMDA2NDE5LCAwLjAwNjQyNywgMC4wMDY0MzEsIDAuMDA2NDM0LCAwLjAwNjQzNSIsIFwKLSAgICAgICAgICAiMC4wMDYzNjksIDAuMDA2NDE2LCAwLjAwNjQzMSwgMC4wMDY0NCwgMC4wMDY0NDQsIDAuMDA2NDQ3LCAwLjAwNjQ0OSIsIFwKLSAgICAgICAgICAiMC4wMDY0MTEsIDAuMDA2NDQ1LCAwLjAwNjQ1OCwgMC4wMDY0NjYsIDAuMDA2NDcsIDAuMDA2NDczLCAwLjAwNjQ3NiIsIFwKLSAgICAgICAgICAiMC4wMDY0ODYsIDAuMDA2NTA0LCAwLjAwNjUxNywgMC4wMDY1MjUsIDAuMDA2NTM0LCAwLjAwNjUzOCwgMC4wMDY1NCIsIFwKLSAgICAgICAgICAiMC4wMDY1NzQsIDAuMDA2NTY3LCAwLjAwNjU4MSwgMC4wMDY1ODYsIDAuMDA2NTkzLCAwLjAwNjU5NSwgMC4wMDY1OTciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDM2MTcsIDAuMDAzNjY3LCAwLjAwMzY3OSwgMC4wMDM2ODcsIDAuMDAzNjg5LCAwLjAwMzY5MiwgMC4wMDM2OTMiLCBcCi0gICAgICAgICAgIjAuMDAzNTcyLCAwLjAwMzYyOSwgMC4wMDM2NDIsIDAuMDAzNjUsIDAuMDAzNjU0LCAwLjAwMzY1NiwgMC4wMDM2NTgiLCBcCi0gICAgICAgICAgIjAuMDAzNTgsIDAuMDAzNjI5LCAwLjAwMzY0MiwgMC4wMDM2NSwgMC4wMDM2NTMsIDAuMDAzNjU2LCAwLjAwMzY1OCIsIFwKLSAgICAgICAgICAiMC4wMDM2LCAwLjAwMzY0NiwgMC4wMDM2NTksIDAuMDAzNjY3LCAwLjAwMzY3MiwgMC4wMDM2NzUsIDAuMDAzNjc2IiwgXAotICAgICAgICAgICIwLjAwMzY1MiwgMC4wMDM2ODEsIDAuMDAzNjkzLCAwLjAwMzcwMSwgMC4wMDM3MDUsIDAuMDAzNzA4LCAwLjAwMzcxIiwgXAotICAgICAgICAgICIwLjAwMzc3MiwgMC4wMDM3NjUsIDAuMDAzNzczLCAwLjAwMzc3OSwgMC4wMDM3ODIsIDAuMDAzNzg1LCAwLjAwMzc4NyIsIFwKLSAgICAgICAgICAiMC4wMDM4MzMsIDAuMDAzODI2LCAwLjAwMzgzNCwgMC4wMDM4NDEsIDAuMDAzODQ0LCAwLjAwMzg0NywgMC4wMDM4NDkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDYxNzQsIDAuMDA2MjI2LCAwLjAwNjIzNywgMC4wMDYyNDQsIDAuMDA2MjQ4LCAwLjAwNjI1LCAwLjAwNjI1MiIsIFwKLSAgICAgICAgICAiMC4wMDYxMzIsIDAuMDA2MTg5LCAwLjAwNjIwMiwgMC4wMDYyMSwgMC4wMDYyMTQsIDAuMDA2MjE2LCAwLjAwNjIxOCIsIFwKLSAgICAgICAgICAiMC4wMDYxMTUsIDAuMDA2MTYxLCAwLjAwNjE3NCwgMC4wMDYxODEsIDAuMDA2MTg1LCAwLjAwNjE4OCwgMC4wMDYxOSIsIFwKLSAgICAgICAgICAiMC4wMDYxNTksIDAuMDA2MTksIDAuMDA2MjAyLCAwLjAwNjIwOSwgMC4wMDYyMTQsIDAuMDA2MjE2LCAwLjAwNjIxOCIsIFwKLSAgICAgICAgICAiMC4wMDYyMjIsIDAuMDA2MjM5LCAwLjAwNjI0OSwgMC4wMDYyNTUsIDAuMDA2MjU5LCAwLjAwNjI2MiwgMC4wMDYyNjQiLCBcCi0gICAgICAgICAgIjAuMDA2MzMsIDAuMDA2MzE3LCAwLjAwNjMyOCwgMC4wMDYzMzQsIDAuMDA2MzQsIDAuMDA2MzQzLCAwLjAwNjM0NCIsIFwKLSAgICAgICAgICAiMC4wMDY0NzIsIDAuMDA2NDIyLCAwLjAwNjQyOCwgMC4wMDY0MzIsIDAuMDA2NDMzLCAwLjAwNjQzNCwgMC4wMDY0MzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDM4NTMsIDAuMDAzOTA1LCAwLjAwMzkxNiwgMC4wMDM5MTksIDAuMDAzOTI3LCAwLjAwMzkyNiwgMC4wMDM5MyIsIFwKLSAgICAgICAgICAiMC4wMDM3OTgsIDAuMDAzODU3LCAwLjAwMzg2OSwgMC4wMDM4NzUsIDAuMDAzODgsIDAuMDAzODgyLCAwLjAwMzg4MiIsIFwKLSAgICAgICAgICAiMC4wMDM4MDcsIDAuMDAzODUzLCAwLjAwMzg2NSwgMC4wMDM4NzEsIDAuMDAzODc1LCAwLjAwMzg3NywgMC4wMDM4NzkiLCBcCi0gICAgICAgICAgIjAuMDAzODY0LCAwLjAwMzg4NSwgMC4wMDM4OTUsIDAuMDAzOTAyLCAwLjAwMzkwNSwgMC4wMDM5MDcsIDAuMDAzOTA4IiwgXAotICAgICAgICAgICIwLjAwMzkxOSwgMC4wMDM5MjksIDAuMDAzOTM4LCAwLjAwMzk0NSwgMC4wMDM5NDgsIDAuMDAzOTUsIDAuMDAzOTUyIiwgXAotICAgICAgICAgICIwLjAwMzk5MSwgMC4wMDQwMiwgMC4wMDQwMjYsIDAuMDA0MDA3LCAwLjAwNDAzMiwgMC4wMDQwMTMsIDAuMDA0MDM1IiwgXAotICAgICAgICAgICIwLjAwNDA4OCwgMC4wMDQwNzEsIDAuMDA0MDgsIDAuMDA0MDg2LCAwLjAwNDA4OSwgMC4wMDQwOTIsIDAuMDA0MDk0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0kiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNTgxLCAwLjAwNTg1OSwgMC4wMDU4NzEsIDAuMDA1ODc5LCAwLjAwNTg4MSwgMC4wMDU4ODUsIDAuMDA1ODg3IiwgXAotICAgICAgICAgICIwLjAwNTgxLCAwLjAwNTg2MSwgMC4wMDU4NzQsIDAuMDA1ODgyLCAwLjAwNTg4NSwgMC4wMDU4ODgsIDAuMDA1ODkiLCBcCi0gICAgICAgICAgIjAuMDA1ODMyLCAwLjAwNTg3OSwgMC4wMDU4OTMsIDAuMDA1OTAxLCAwLjAwNTkwNCwgMC4wMDU5MDgsIDAuMDA1OTExIiwgXAotICAgICAgICAgICIwLjAwNTg4OSwgMC4wMDU5MiwgMC4wMDU5MzMsIDAuMDA1OTQyLCAwLjAwNTk0NywgMC4wMDU5NSwgMC4wMDU5NTIiLCBcCi0gICAgICAgICAgIjAuMDA1OTYzLCAwLjAwNTk3MSwgMC4wMDU5ODMsIDAuMDA1OTksIDAuMDA1OTk1LCAwLjAwNTk5OCwgMC4wMDYiLCBcCi0gICAgICAgICAgIjAuMDA2MDQ4LCAwLjAwNjA0NiwgMC4wMDYwNTcsIDAuMDA2MDY0LCAwLjAwNjA2OSwgMC4wMDYwNzIsIDAuMDA2MDc0IiwgXAotICAgICAgICAgICIwLjAwNjE2NiwgMC4wMDYxMzksIDAuMDA2MTQ2LCAwLjAwNjE1MiwgMC4wMDYxNTcsIDAuMDA2MTU5LCAwLjAwNjE2MSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzg3NCwgMC4wMDM5MzMsIDAuMDAzOTQ1LCAwLjAwMzk1MiwgMC4wMDM5NTcsIDAuMDAzOTU4LCAwLjAwMzk2IiwgXAotICAgICAgICAgICIwLjAwMzg2LCAwLjAwMzkyMiwgMC4wMDM5MzUsIDAuMDAzOTQyLCAwLjAwMzk0NywgMC4wMDM5NDksIDAuMDAzOTUxIiwgXAotICAgICAgICAgICIwLjAwMzg2NSwgMC4wMDM5MjEsIDAuMDAzOTM0LCAwLjAwMzk0MiwgMC4wMDM5NDcsIDAuMDAzOTQ5LCAwLjAwMzk1MSIsIFwKLSAgICAgICAgICAiMC4wMDM5MDIsIDAuMDAzOTUsIDAuMDAzOTY0LCAwLjAwMzk3MiwgMC4wMDM5NzcsIDAuMDAzOTgsIDAuMDAzOTgyIiwgXAotICAgICAgICAgICIwLjAwMzk2OSwgMC4wMDM5OTUsIDAuMDA0MDA2LCAwLjAwNDAxNCwgMC4wMDQwMTksIDAuMDA0MDIxLCAwLjAwNDAyMyIsIFwKLSAgICAgICAgICAiMC4wMDQwODIsIDAuMDA0MDg0LCAwLjAwNDA5MywgMC4wMDQxMDEsIDAuMDA0MTAzLCAwLjAwNDEwNiwgMC4wMDQxMDgiLCBcCi0gICAgICAgICAgIjAuMDA0MTYsIDAuMDA0MTU0LCAwLjAwNDE2NCwgMC4wMDQxNzEsIDAuMDA0MTc1LCAwLjAwNDE3OCwgMC4wMDQxOCIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IEFEREZIWDQgKgotICogLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoQURERkhYNCkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAxLjYzNjY5OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDM2NDY0MzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDM2MTgwODsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDM2NDY0MzsKLSAgfQotICBwaW4oQikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAzNDQxODM7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAzNDEzMTg7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAzNDQxODM7Ci0gIH0KLSAgcGluKENJKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDI3MjAyOTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDI2OTgwNTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDI3MjAyOTsKLSAgfQotICBwaW4oQ08pICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMS4zNjU0NTsKLSAgICBmdW5jdGlvbiA6ICIoKChBIEIpKyhCIENJKSkrKENJIEEpKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjI5ODcsIDAuMTI1MTg4LCAwLjE4MDcyNCwgMC4yMjAwNjYsIDAuMjgyODk2LCAwLjMzNzk0MiwgMC40MTYzNjgiLCBcCi0gICAgICAgICAgIjAuMDY5OTg1LCAwLjEzMjEyLCAwLjE4NzY1NywgMC4yMjcwMDMsIDAuMjg5OTQyLCAwLjM0NDkzNSwgMC40MjMwMTUiLCBcCi0gICAgICAgICAgIjAuMDc4MDI3LCAwLjE0MDEwMiwgMC4xOTU2NjcsIDAuMjM0OTk4LCAwLjI5ODAzNSwgMC4zNTI4OTUsIDAuNDMwOTc3IiwgXAotICAgICAgICAgICIwLjA4NTM2NSwgMC4xNDc1NjEsIDAuMjAzMTMsIDAuMjQyNDY2LCAwLjMwNTMyMSwgMC4zNjAzNzgsIDAuNDM4NDUiLCBcCi0gICAgICAgICAgIjAuMDkyMjIzLCAwLjE1NDY2NCwgMC4yMTAyMTIsIDAuMjQ5NTQ2LCAwLjMxMjMzLCAwLjM2NzQwNCwgMC40NDU3NDYiLCBcCi0gICAgICAgICAgIjAuMTAxNzQyLCAwLjE2NDgyNCwgMC4yMjAzNDYsIDAuMjU5NjczLCAwLjMyMjQ2MywgMC4zNzc1MTgsIDAuNDU1OTEiLCBcCi0gICAgICAgICAgIjAuMTA5MzMxLCAwLjE3MjY3LCAwLjIyODIxNiwgMC4yNjc0NjcsIDAuMzMwNDQzLCAwLjM4NTc1MiwgMC40NjQxNTQiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzQ1MjIsIDAuMTQ1ODA3LCAwLjI1ODUyMiwgMC4zMzkwMDQsIDAuNDcxMzM0LCAwLjU4NjkzLCAwLjc1MTMwNyIsIFwKLSAgICAgICAgICAiMC4wMzQ1MjQsIDAuMTQ1NzEzLCAwLjI1ODcxMSwgMC4zMzkwMjIsIDAuNDcxMzMxLCAwLjU4Njk0LCAwLjc1MTMzMyIsIFwKLSAgICAgICAgICAiMC4wMzQ0ODQsIDAuMTQ1OTU3LCAwLjI1ODk5MSwgMC4zMzg5NywgMC40NzEzNDIsIDAuNTg3MTg0LCAwLjc1MTUxMyIsIFwKLSAgICAgICAgICAiMC4wMzUxNjMsIDAuMTQ2Mjc4LCAwLjI1ODU4LCAwLjMzOTA3NywgMC40NzEzNjksIDAuNTg3MjIyLCAwLjc1MTM2OSIsIFwKLSAgICAgICAgICAiMC4wMzYsIDAuMTQ2MTM3LCAwLjI1ODk1NCwgMC4zMzkxNzQsIDAuNDcxNDA4LCAwLjU4NzIwNSwgMC43NTE1MzQiLCBcCi0gICAgICAgICAgIjAuMDM3NTgzLCAwLjE0NzQ0MywgMC4yNTkyNzcsIDAuMzM5NTM3LCAwLjQ3MTU2NywgMC41ODczMSwgMC43NTE1OTUiLCBcCi0gICAgICAgICAgIjAuMDM4ODYyLCAwLjE0ODQsIDAuMjU5NjY5LCAwLjM0MDkyOSwgMC40NzE2OTksIDAuNTg3NTIzLCAwLjc1MjYzNCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2Njk1MiwgMC4xMjkwMTcsIDAuMTgzNTc0LCAwLjIyMjE3NCwgMC4yODQwMzQsIDAuMzM3OTM4LCAwLjQxNTM4NCIsIFwKLSAgICAgICAgICAiMC4wNzM3NzgsIDAuMTM1NzgxLCAwLjE5MDM0MSwgMC4yMjg5NTEsIDAuMjkwNzYzLCAwLjM0NDY2MiwgMC40MjIxMzIiLCBcCi0gICAgICAgICAgIjAuMDgxMDY5LCAwLjE0MzA1MiwgMC4xOTc2MjgsIDAuMjM2MjQ4LCAwLjI5Nzk0OSwgMC4zNTIwNzksIDAuNDI5MTQyIiwgXAotICAgICAgICAgICIwLjA4Nzg0LCAwLjE0OTg4MSwgMC4yMDQ0NTUsIDAuMjQzMTE2LCAwLjMwNDcwNiwgMC4zNTg4NjUsIDAuNDM2MzkiLCBcCi0gICAgICAgICAgIjAuMDkzOTk0LCAwLjE1NjI1OSwgMC4yMTA5MDMsIDAuMjQ5NTU2LCAwLjMxMTUxLCAwLjM2NTM0NiwgMC40NDI2OTEiLCBcCi0gICAgICAgICAgIjAuMTAyNSwgMC4xNjUzMzMsIDAuMjE5OTQ5LCAwLjI1ODU0LCAwLjMyMDQzNywgMC4zNzQyMzIsIDAuNDUxODc5IiwgXAotICAgICAgICAgICIwLjEwODY3OSwgMC4xNzIxNDksIDAuMjI2ODUsIDAuMjY1NDQ3LCAwLjMyNzI5OCwgMC4zODEzNTcsIDAuNDU4NjU0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM0NTgyLCAwLjE0MTk1NSwgMC4yNTI3NTIsIDAuMzMxNDk4LCAwLjQ1ODM0NCwgMC41Njg5MjEsIDAuNzI3MTQxIiwgXAotICAgICAgICAgICIwLjAzNDU2NSwgMC4xNDE5OCwgMC4yNTI1ODQsIDAuMzMxNDk0LCAwLjQ1ODMzMywgMC41NjkwMTEsIDAuNzI2OTc4IiwgXAotICAgICAgICAgICIwLjAzNDM0NiwgMC4xNDE5MTksIDAuMjUyNzY2LCAwLjMzMTQ3MiwgMC40NTgzMjcsIDAuNTY5MDIyLCAwLjcyNzM2NSIsIFwKLSAgICAgICAgICAiMC4wMzQ5NzQsIDAuMTQyMTc3LCAwLjI1MjkyNiwgMC4zMzE1MzEsIDAuNDU4MzQzLCAwLjU2ODkwOCwgMC43Mjc4NzkiLCBcCi0gICAgICAgICAgIjAuMDM2MzU0LCAwLjE0MjQxNCwgMC4yNTI3NjEsIDAuMzMxMzUsIDAuNDU4Mzg4LCAwLjU2ODk0MiwgMC43MjcwMDQiLCBcCi0gICAgICAgICAgIjAuMDM3NDIxLCAwLjE0MzY4OSwgMC4yNTM2MDEsIDAuMzMxMzk3LCAwLjQ1ODUxMiwgMC41Njk0NDgsIDAuNzI3Njk0IiwgXAotICAgICAgICAgICIwLjAzODMzLCAwLjE0NDMwOCwgMC4yNTM5MzYsIDAuMzMxODQ3LCAwLjQ1ODU1LCAwLjU2ODkzOSwgMC43Mjc5NjkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjMwMjEsIDAuMTI0OTA5LCAwLjE4MDQ3OSwgMC4yMTk4MzcsIDAuMjgyOTk3LCAwLjMzNzgwOCwgMC40MTYwOTYiLCBcCi0gICAgICAgICAgIjAuMDcwNjEsIDAuMTMyNDI1LCAwLjE4Nzk5OCwgMC4yMjczNTQsIDAuMjkwNDIsIDAuMzQ1Mzg0LCAwLjQyMzkzNiIsIFwKLSAgICAgICAgICAiMC4wODA0MDksIDAuMTQyMTQ2LCAwLjE5NzcyMywgMC4yMzcwMzEsIDAuMzAwMTU0LCAwLjM1NTI1NSwgMC40MzM3MzkiLCBcCi0gICAgICAgICAgIjAuMDkwMTE5LCAwLjE1MTg1OCwgMC4yMDc0MzcsIDAuMjQ2Nzk3LCAwLjMwOTg4NCwgMC4zNjQ3NzUsIDAuNDQzNzA1IiwgXAotICAgICAgICAgICIwLjA5OTE0MywgMC4xNjA5MDksIDAuMjE2NDYzLCAwLjI1NTgyMywgMC4zMTg0NzIsIDAuMzczODcxLCAwLjQ1MjQwMiIsIFwKLSAgICAgICAgICAiMC4xMTExMzEsIDAuMTczODQ1LCAwLjIyOTM5NiwgMC4yNjg2NDUsIDAuMzMxNzE5LCAwLjM4Njg0NCwgMC40NjUzNDMiLCBcCi0gICAgICAgICAgIjAuMTIwMTM5LCAwLjE4MzYyNywgMC4yMzkyMSwgMC4yNzg0NTEsIDAuMzQxNTc3LCAwLjM5NjU3OCwgMC40NzQ4MyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzNDQ1MywgMC4xNDUyODEsIDAuMjU4MjU5LCAwLjMzOTg5OSwgMC40NzA5NjEsIDAuNTg3MTY3LCAwLjc1MTIzNSIsIFwKLSAgICAgICAgICAiMC4wMzQzOTUsIDAuMTQ1MzI0LCAwLjI1OTA5NCwgMC4zMzg5NjIsIDAuNDcxMzc5LCAwLjU4NzIxMywgMC43NTIxNzYiLCBcCi0gICAgICAgICAgIjAuMDM0Mjc5LCAwLjE0NDg0NiwgMC4yNTg0MzMsIDAuMzM4OTg5LCAwLjQ3MSwgMC41ODY2OTEsIDAuNzUyMzk2IiwgXAotICAgICAgICAgICIwLjAzNTEzMywgMC4xNDU4ODIsIDAuMjU4MzYzLCAwLjMzOTkyNywgMC40NzEyMjksIDAuNTg3MTYsIDAuNzUxNDQ2IiwgXAotICAgICAgICAgICIwLjAzNjA1OCwgMC4xNDYyNTQsIDAuMjU5MTE1LCAwLjM0MDE2LCAwLjQ3MTI2NiwgMC41ODczMSwgMC43NTIyMTkiLCBcCi0gICAgICAgICAgIjAuMDM4NDg3LCAwLjE0Nzg4MiwgMC4yNTgyNTEsIDAuMzQwNTkzLCAwLjQ3MTYyNiwgMC41ODczOTEsIDAuNzUyMjM2IiwgXAotICAgICAgICAgICIwLjA0MDQxNywgMC4xNDgyNzQsIDAuMjYwMTg4LCAwLjM0MTAwNSwgMC40NzE1NywgMC41ODc0NTQsIDAuNzUxNjc1Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY1NzEzLCAwLjEyNzU3MSwgMC4xODIyMDQsIDAuMjIwNzgzLCAwLjI4Mjk2OCwgMC4zMzcxOTIsIDAuNDE0NTAzIiwgXAotICAgICAgICAgICIwLjA3MzE0NiwgMC4xMzQ5MzEsIDAuMTg5NTQ4LCAwLjIyODI1MiwgMC4yOTAxMzEsIDAuMzQzOTYzLCAwLjQyMDcyMiIsIFwKLSAgICAgICAgICAiMC4wODI5MTQsIDAuMTQ0NjgsIDAuMTk5MzI2LCAwLjIzODAxNCwgMC4yOTk3NDIsIDAuMzUzNzMxLCAwLjQzMTYyMyIsIFwKLSAgICAgICAgICAiMC4wOTI1NjQsIDAuMTU0MzIyLCAwLjIwODkwMywgMC4yNDc1OCwgMC4zMDkzNzksIDAuMzYzMzczLCAwLjQ0MTIxNiIsIFwKLSAgICAgICAgICAiMC4xMDE0NjMsIDAuMTYzMzU4LCAwLjIxNzk2NSwgMC4yNTY1NjYsIDAuMzE4NTM0LCAwLjM3MjQyMywgMC40NDk2MDQiLCBcCi0gICAgICAgICAgIjAuMTEzMzU3LCAwLjE3NTc4MywgMC4yMzAzNDcsIDAuMjY4OTUsIDAuMzMwNzkxLCAwLjM4NDgxMywgMC40NjE5MjUiLCBcCi0gICAgICAgICAgIjAuMTIyMDY2LCAwLjE4NTExNywgMC4yMzk4MDMsIDAuMjc4Mzk4LCAwLjM0MDEzLCAwLjM5NDE3OSwgMC40NzIwOTEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzUxNzYsIDAuMTQyNjE4LCAwLjI1MzM4NSwgMC4zMzIyMTksIDAuNDU4NDc4LCAwLjU2ODQ3MSwgMC43Mjc4NzYiLCBcCi0gICAgICAgICAgIjAuMDM1MTcsIDAuMTQyNjY5LCAwLjI1MzQxNiwgMC4zMzIxOTIsIDAuNDU4NDY4LCAwLjU2ODk5NCwgMC43MjgzOTIiLCBcCi0gICAgICAgICAgIjAuMDM0NzgsIDAuMTQyNzM5LCAwLjI1MzQxNSwgMC4zMzE2OTYsIDAuNDU4NDE5LCAwLjU2ODY2NiwgMC43Mjc5NjMiLCBcCi0gICAgICAgICAgIjAuMDM1NTA5LCAwLjE0MjQzOCwgMC4yNTM1ODIsIDAuMzMxOTk3LCAwLjQ1ODM3MywgMC41Njg5MTksIDAuNzI3MjQzIiwgXAotICAgICAgICAgICIwLjAzNjc4NywgMC4xNDM0ODgsIDAuMjUzOTcsIDAuMzMyMjE3LCAwLjQ1ODU2MSwgMC41NjkwMzksIDAuNzI3MTQzIiwgXAotICAgICAgICAgICIwLjAzODQ1MiwgMC4xNDU0MjQsIDAuMjU0Nzg5LCAwLjMzMjk4MywgMC40NTg5MDYsIDAuNTY5MjMyLCAwLjcyNzYwNCIsIFwKLSAgICAgICAgICAiMC4wMzk3NjMsIDAuMTQ1NTQ4LCAwLjI1NTA1MSwgMC4zMzI2OTEsIDAuNDU5MDk0LCAwLjU2OTA5OCwgMC43MjcwMDMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0kiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU5NjA2LCAwLjEyMTczMywgMC4xNzcyOTMsIDAuMjE2NjIxLCAwLjI3OTM4MSwgMC4zMzQ1NTQsIDAuNDEyNjUzIiwgXAotICAgICAgICAgICIwLjA2NzMxNSwgMC4xMjk0NzEsIDAuMTg0OTk0LCAwLjIyNDMzNywgMC4yODczMTQsIDAuMzQyMjkxLCAwLjQyMDM3MiIsIFwKLSAgICAgICAgICAiMC4wNzczMzksIDAuMTM5Mzg2LCAwLjE5NDkzMywgMC4yMzQyODUsIDAuMjk3MTMxLCAwLjM1MjE2OCwgMC40MzAzNzkiLCBcCi0gICAgICAgICAgIjAuMDg2OTU2LCAwLjE0OTExNiwgMC4yMDQ2MzgsIDAuMjQzOTg1LCAwLjMwNjgxMiwgMC4zNjE4NzEsIDAuNDQwMTA0IiwgXAotICAgICAgICAgICIwLjA5NTcwMiwgMC4xNTgxMjcsIDAuMjEzNjUzLCAwLjI1Mjk5NSwgMC4zMTU4MTIsIDAuMzcwODY4LCAwLjQ0OTIxNCIsIFwKLSAgICAgICAgICAiMC4xMDczNTIsIDAuMTcwNTk4LCAwLjIyNjA4MywgMC4yNjUzNzYsIDAuMzI4MjMyLCAwLjM4MzgxOCwgMC40NjE4NDgiLCBcCi0gICAgICAgICAgIjAuMTE2MDU2LCAwLjE4MDE2MSwgMC4yMzU2NiwgMC4yNzUwMjIsIDAuMzM3NzcsIDAuMzkyODI0LCAwLjQ3MDkxOCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzNDU2NiwgMC4xNDYxNzcsIDAuMjU4NTIsIDAuMzM5MDQzLCAwLjQ3MTI5MiwgMC41ODY5MDEsIDAuNzUxMTI4IiwgXAotICAgICAgICAgICIwLjAzNDQwNywgMC4xNDU3NDUsIDAuMjU4ODgxLCAwLjMzOTA1NCwgMC40NzEzMDMsIDAuNTg2ODY5LCAwLjc1MTE1MyIsIFwKLSAgICAgICAgICAiMC4wMzQ0NTksIDAuMTQ2MTMyLCAwLjI1ODYxMywgMC4zMzkwMjksIDAuNDcxMywgMC41ODY4NzUsIDAuNzUxMzYyIiwgXAotICAgICAgICAgICIwLjAzNTM5MywgMC4xNDU5MjMsIDAuMjU4ODEsIDAuMzM5MTMzLCAwLjQ3MTMzOSwgMC41ODY4NzcsIDAuNzUxMzMzIiwgXAotICAgICAgICAgICIwLjAzNzAwNSwgMC4xNDY4OTMsIDAuMjU5MDA3LCAwLjMzOTI1NiwgMC40NzEzNywgMC41ODY4OTIsIDAuNzUxMTUxIiwgXAotICAgICAgICAgICIwLjAzOTQxLCAwLjE0ODI0NiwgMC4yNTk1MjYsIDAuMzQwMjg3LCAwLjQ3MTU3NCwgMC41ODY3OTUsIDAuNzUxNjc5IiwgXAotICAgICAgICAgICIwLjA0MTQ1NywgMC4xNDkzMTgsIDAuMjYwMTE5LCAwLjM0MTAzNywgMC40NzE3NTgsIDAuNTg2OTc1LCAwLjc1MTI5OSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2MjM2NCwgMC4xMjQzNjIsIDAuMTc4OTkzLCAwLjIxNzYyLCAwLjI3OTMwMiwgMC4zMzMxOTMsIDAuNDEwOTg2IiwgXAotICAgICAgICAgICIwLjA2OTkzMiwgMC4xMzE5NDEsIDAuMTg2NTczLCAwLjIyNTIwNiwgMC4yODY4NjUsIDAuMzQwODQ0LCAwLjQxODQ3IiwgXAotICAgICAgICAgICIwLjA3OTgzNywgMC4xNDE4MTIsIDAuMTk2NDM1LCAwLjIzNTA2OCwgMC4yOTY5NjMsIDAuMzUwODAxLCAwLjQyODMyIiwgXAotICAgICAgICAgICIwLjA4OTM4OCwgMC4xNTEzMDcsIDAuMjA1ODkxLCAwLjI0NDU0MSwgMC4zMDYxMTksIDAuMzYwMjYzLCAwLjQzNzc1NyIsIFwKLSAgICAgICAgICAiMC4wOTgwNiwgMC4xNTk5NTMsIDAuMjE0NTAzLCAwLjI1MzE1MSwgMC4zMTQ3NjMsIDAuMzY4ODIxLCAwLjQ0NjQzOCIsIFwKLSAgICAgICAgICAiMC4xMDkzMTcsIDAuMTcyMjYxLCAwLjIyNjgxNCwgMC4yNjU0MDEsIDAuMzI3MjA4LCAwLjM4MTA4NSwgMC40NTg2ODMiLCBcCi0gICAgICAgICAgIjAuMTE4MTA0LCAwLjE4MTQ4MywgMC4yMzYxNDUsIDAuMjc0NzQxLCAwLjMzNjcyLCAwLjM5MDQ2NSwgMC40Njc1OTUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzU3NTksIDAuMTQzMDA5LCAwLjI1MzU5NywgMC4zMzE5NzEsIDAuNDU4MTUsIDAuNTY4MjIzLCAwLjcyNzMxMiIsIFwKLSAgICAgICAgICAiMC4wMzU3MzYsIDAuMTQyOTg1LCAwLjI1MzY1NSwgMC4zMzE5ODgsIDAuNDU4MzQ0LCAwLjU2ODU2NCwgMC43Mjc4MTUiLCBcCi0gICAgICAgICAgIjAuMDM1NjksIDAuMTQyOTgxLCAwLjI1MzYyMiwgMC4zMzIwMDUsIDAuNDU4MTI3LCAwLjU2ODY5LCAwLjcyNzgzNCIsIFwKLSAgICAgICAgICAiMC4wMzY0MiwgMC4xNDMxNDEsIDAuMjUzNzIxLCAwLjMzMjA0MiwgMC40NTgzOSwgMC41Njg4MDksIDAuNzI3ODg5IiwgXAotICAgICAgICAgICIwLjAzNzY1OCwgMC4xNDMzMjMsIDAuMjUzOTI5LCAwLjMzMjE4NSwgMC40NTg0NTQsIDAuNTY4NzM1LCAwLjcyNzkwOSIsIFwKLSAgICAgICAgICAiMC4wNDAwOTIsIDAuMTQ0Nzc5LCAwLjI1NDQ5MiwgMC4zMzI2MDIsIDAuNDU4MjMyLCAwLjU2ODgyOSwgMC43Mjc4MjkiLCBcCi0gICAgICAgICAgIjAuMDQyMDE1LCAwLjE0NjE0NiwgMC4yNTQ5MTgsIDAuMzMxOTI4LCAwLjQ1ODQ3MiwgMC41Njg0OCwgMC43MjgxMDgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjUyOCwgMC4wMDY1MzYsIDAuMDA2NTY2LCAwLjAwNjU3NywgMC4wMDY1OTEsIDAuMDA2NTksIDAuMDA2NTk4IiwgXAotICAgICAgICAgICIwLjAwNjQ3LCAwLjAwNjQ4OCwgMC4wMDY1MiwgMC4wMDY1MzIsIDAuMDA2NTQ2LCAwLjAwNjU1MiwgMC4wMDY1NTUiLCBcCi0gICAgICAgICAgIjAuMDA2NDk3LCAwLjAwNjQ4NSwgMC4wMDY1MTYsIDAuMDA2NTI4LCAwLjAwNjU0LCAwLjAwNjU0NiwgMC4wMDY1NTIiLCBcCi0gICAgICAgICAgIjAuMDA2NTY5LCAwLjAwNjUwNywgMC4wMDY1MzcsIDAuMDA2NTQ4LCAwLjAwNjU1OCwgMC4wMDY1NjUsIDAuMDA2NTcxIiwgXAotICAgICAgICAgICIwLjAwNjYzOSwgMC4wMDY1NDgsIDAuMDA2NTcyLCAwLjAwNjU4MywgMC4wMDY1OTUsIDAuMDA2NiwgMC4wMDY2MDYiLCBcCi0gICAgICAgICAgIjAuMDA2OCwgMC4wMDY2MjQsIDAuMDA2NjQyLCAwLjAwNjY1MSwgMC4wMDY2NjIsIDAuMDA2NjY2LCAwLjAwNjY3MiIsIFwKLSAgICAgICAgICAiMC4wMDY5NTMsIDAuMDA2NzE3LCAwLjAwNjcxOSwgMC4wMDY3MjcsIDAuMDA2NzM0LCAwLjAwNjczOSwgMC4wMDY3NDQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwOTY2OCwgMC4wMDk2OCwgMC4wMDk3MTMsIDAuMDA5NzI1LCAwLjAwOTczNywgMC4wMDk3NDMsIDAuMDA5NzQ5IiwgXAotICAgICAgICAgICIwLjAwOTY0NCwgMC4wMDk2NTUsIDAuMDA5Njg5LCAwLjAwOTcwMiwgMC4wMDk3MTQsIDAuMDA5NzIsIDAuMDA5NzI1IiwgXAotICAgICAgICAgICIwLjAwOTY1NSwgMC4wMDk2NTIsIDAuMDA5Njg0LCAwLjAwOTY5OCwgMC4wMDk3MDksIDAuMDA5NzE3LCAwLjAwOTcyMiIsIFwKLSAgICAgICAgICAiMC4wMDk2NzQsIDAuMDA5NjU3LCAwLjAwOTY5MSwgMC4wMDk3MDYsIDAuMDA5NzE4LCAwLjAwOTcyNiwgMC4wMDk3MzMiLCBcCi0gICAgICAgICAgIjAuMDA5NzQ4LCAwLjAwOTY4OSwgMC4wMDk3MiwgMC4wMDk3MzUsIDAuMDA5NzQ2LCAwLjAwOTc1NCwgMC4wMDk3NiIsIFwKLSAgICAgICAgICAiMC4wMDk5MDcsIDAuMDA5NzcsIDAuMDA5NzkyLCAwLjAwOTgwMywgMC4wMDk4MTMsIDAuMDA5ODIsIDAuMDA5ODI3IiwgXAotICAgICAgICAgICIwLjAxMDAyOSwgMC4wMDk4NCwgMC4wMDk4NTIsIDAuMDA5ODY1LCAwLjAwOTg3NywgMC4wMDk4ODMsIDAuMDA5ODg5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDY4MjMsIDAuMDA2ODM1LCAwLjAwNjg2MywgMC4wMDY4NzIsIDAuMDA2ODgyLCAwLjAwNjg4NCwgMC4wMDY4OSIsIFwKLSAgICAgICAgICAiMC4wMDY3NDQsIDAuMDA2NzcsIDAuMDA2ODAyLCAwLjAwNjgxNCwgMC4wMDY4MjQsIDAuMDA2ODI4LCAwLjAwNjgzNSIsIFwKLSAgICAgICAgICAiMC4wMDY3NjMsIDAuMDA2NzU5LCAwLjAwNjc5MSwgMC4wMDY4MDQsIDAuMDA2ODE0LCAwLjAwNjgyMSwgMC4wMDY4MjciLCBcCi0gICAgICAgICAgIjAuMDA2ODYyLCAwLjAwNjc5MywgMC4wMDY4MTgsIDAuMDA2ODI4LCAwLjAwNjgzOSwgMC4wMDY4NDMsIDAuMDA2ODQ5IiwgXAotICAgICAgICAgICIwLjAwNjkxNywgMC4wMDY4MzQsIDAuMDA2ODU2LCAwLjAwNjg2NiwgMC4wMDY4NzUsIDAuMDA2ODgxLCAwLjAwNjg4NiIsIFwKLSAgICAgICAgICAiMC4wMDcwNCwgMC4wMDY4OTgsIDAuMDA2OTIsIDAuMDA2OTMsIDAuMDA2OTQxLCAwLjAwNjk0OCwgMC4wMDY5NTQiLCBcCi0gICAgICAgICAgIjAuMDA3MzM1LCAwLjAwNjk5NywgMC4wMDcwNjMsIDAuMDA3MDY1LCAwLjAwNzAzMywgMC4wMDcwMzksIDAuMDA3MDQ0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDk0MjUsIDAuMDA5NDUxLCAwLjAwOTQ4MSwgMC4wMDk0OTMsIDAuMDA5NTA0LCAwLjAwOTUxMywgMC4wMDk1MTYiLCBcCi0gICAgICAgICAgIjAuMDA5MzgxLCAwLjAwOTQxMywgMC4wMDk0NDgsIDAuMDA5NDU2LCAwLjAwOTQ2OCwgMC4wMDk0NzQsIDAuMDA5NDgiLCBcCi0gICAgICAgICAgIjAuMDA5MzYsIDAuMDA5Mzc1LCAwLjAwOTQwNywgMC4wMDk0MiwgMC4wMDk0MzIsIDAuMDA5NDM4LCAwLjAwOTQ0NSIsIFwKLSAgICAgICAgICAiMC4wMDkzOSwgMC4wMDkzNjUsIDAuMDA5Mzk2LCAwLjAwOTQwOCwgMC4wMDk0MiwgMC4wMDk0MjcsIDAuMDA5NDMzIiwgXAotICAgICAgICAgICIwLjAwOTU2OCwgMC4wMDk0MjgsIDAuMDA5NDQ5LCAwLjAwOTQ1OSwgMC4wMDk0NzMsIDAuMDA5NDc1LCAwLjAwOTQ4MiIsIFwKLSAgICAgICAgICAiMC4wMDk3ODMsIDAuMDA5NTMyLCAwLjAwOTU0MiwgMC4wMDk1NDgsIDAuMDA5NTU3LCAwLjAwOTU2MSwgMC4wMDk1NjYiLCBcCi0gICAgICAgICAgIjAuMDA5ODM5LCAwLjAwOTYwMiwgMC4wMDk2MDYsIDAuMDA5NjE3LCAwLjAwOTYyNywgMC4wMDk2MywgMC4wMDk2MzciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDY4MTMsIDAuMDA2ODQ3LCAwLjAwNjg3OCwgMC4wMDY4ODksIDAuMDA2OTAyLCAwLjAwNjkwNywgMC4wMDY5MTIiLCBcCi0gICAgICAgICAgIjAuMDA2NzgzLCAwLjAwNjgyOSwgMC4wMDY4NjMsIDAuMDA2ODc2LCAwLjAwNjg4OCwgMC4wMDY4OTUsIDAuMDA2ODk5IiwgXAotICAgICAgICAgICIwLjAwNjc5OCwgMC4wMDY4MjEsIDAuMDA2ODU3LCAwLjAwNjg3MSwgMC4wMDY4ODQsIDAuMDA2ODkxLCAwLjAwNjg5NyIsIFwKLSAgICAgICAgICAiMC4wMDY4ODEsIDAuMDA2ODQ5LCAwLjAwNjg4MiwgMC4wMDY4OTYsIDAuMDA2OTEsIDAuMDA2OTE1LCAwLjAwNjkyMiIsIFwKLSAgICAgICAgICAiMC4wMDY5NzgsIDAuMDA2ODk4LCAwLjAwNjkyNywgMC4wMDY5MzksIDAuMDA2OTU0LCAwLjAwNjk2MSwgMC4wMDY5NjQiLCBcCi0gICAgICAgICAgIjAuMDA3MTQ4LCAwLjAwNjk5NiwgMC4wMDcwMTgsIDAuMDA3MDI4LCAwLjAwNzA0LCAwLjAwNzA0NywgMC4wMDcwNTQiLCBcCi0gICAgICAgICAgIjAuMDA3MzE4LCAwLjAwNzEwNywgMC4wMDcxMTYsIDAuMDA3MTIyLCAwLjAwNzEzMiwgMC4wMDcxMzcsIDAuMDA3MTQzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDkwMzUsIDAuMDA5MDM2LCAwLjAwOTA2NSwgMC4wMDkwNzksIDAuMDA5MDg2LCAwLjAwOTA5NSwgMC4wMDkxMDMiLCBcCi0gICAgICAgICAgIjAuMDA5MDMyLCAwLjAwOTAzNSwgMC4wMDkwNjYsIDAuMDA5MDgxLCAwLjAwOTA5MSwgMC4wMDkxLCAwLjAwOTEwNCIsIFwKLSAgICAgICAgICAiMC4wMDkwNjUsIDAuMDA5MDQ4LCAwLjAwOTA4MSwgMC4wMDkwOTUsIDAuMDA5MTEsIDAuMDA5MTE4LCAwLjAwOTEyMyIsIFwKLSAgICAgICAgICAiMC4wMDkxNTEsIDAuMDA5MDg5LCAwLjAwOTExOSwgMC4wMDkxMzMsIDAuMDA5MTQ3LCAwLjAwOTE1MywgMC4wMDkxNjEiLCBcCi0gICAgICAgICAgIjAuMDA5MjU0LCAwLjAwOTEzOCwgMC4wMDkxNjUsIDAuMDA5MTc4LCAwLjAwOTE5MiwgMC4wMDkyMDEsIDAuMDA5MjA3IiwgXAotICAgICAgICAgICIwLjAwOTQzOCwgMC4wMDkyNDgsIDAuMDA5MjYzLCAwLjAwOTI3MiwgMC4wMDkyODMsIDAuMDA5Mjg5LCAwLjAwOTI5NiIsIFwKLSAgICAgICAgICAiMC4wMDk1OTcsIDAuMDA5MzM2LCAwLjAwOTM0MywgMC4wMDkzNSwgMC4wMDkzNTgsIDAuMDA5MzYzLCAwLjAwOTM3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDEuMjQ2OTU7Ci0gICAgZnVuY3Rpb24gOiAiKChBXkIpXkNJKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzQ2NzQsIDAuMTM4MTgxLCAwLjE5MzgzOCwgMC4yMzMyMjYsIDAuMjk2MiwgMC4zNTEzMDQsIDAuNDI5OTExIiwgXAotICAgICAgICAgICIwLjA3OTgyMywgMC4xNDMzMzgsIDAuMTk4OTk3LCAwLjIzODQwMSwgMC4zMDEzNzksIDAuMzU2NDcyLCAwLjQzNTA2OSIsIFwKLSAgICAgICAgICAiMC4wODU5NDgsIDAuMTQ5NDIxLCAwLjIwNTA2NywgMC4yNDQ0NiwgMC4zMDc0MzksIDAuMzYyNTAyLCAwLjQ0MTIyNiIsIFwKLSAgICAgICAgICAiMC4wOTE2ODksIDAuMTU1MjE0LCAwLjIxMDgzLCAwLjI1MDI0NCwgMC4zMTMyMjcsIDAuMzY4Mjk1LCAwLjQ0NjkyNCIsIFwKLSAgICAgICAgICAiMC4wOTc0MTIsIDAuMTYwOTc1LCAwLjIxNjU4OCwgMC4yNTYwMDIsIDAuMzE4OTc4LCAwLjM3NDAzMywgMC40NTI2NTgiLCBcCi0gICAgICAgICAgIjAuMTA1NTczLCAwLjE2OTQ2NiwgMC4yMjUxNjYsIDAuMjY0NTU0LCAwLjMyNzUxMSwgMC4zODI2MTIsIDAuNDYxMjAxIiwgXAotICAgICAgICAgICIwLjExMTY5OSwgMC4xNzYyMDUsIDAuMjMxOTU4LCAwLjI3MTMzOCwgMC4zMzQyNzMsIDAuMzg5MzcyLCAwLjQ2Nzk1MSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzNzAzNCwgMC4xNDcyNzQsIDAuMjYwMTM3LCAwLjM0MTc3NiwgMC40NzM5MTYsIDAuNTg5ODU3LCAwLjc1NTU0NCIsIFwKLSAgICAgICAgICAiMC4wMzY5NDEsIDAuMTQ3MjUxLCAwLjI2MDAyMywgMC4zNDE3NywgMC40NzM5MjEsIDAuNTg5ODEzLCAwLjc1NDYwNSIsIFwKLSAgICAgICAgICAiMC4wMzY4ODgsIDAuMTQ3MTc2LCAwLjI2MDA5OCwgMC4zNDE3NDUsIDAuNDczODksIDAuNTg5MDk4LCAwLjc1NDIwNCIsIFwKLSAgICAgICAgICAiMC4wMzcyMDksIDAuMTQ3MzEzLCAwLjI2MDAzOCwgMC4zNDIwMjcsIDAuNDczMzY2LCAwLjU4OTcxNiwgMC43NTQ1NDciLCBcCi0gICAgICAgICAgIjAuMDM3NTQxLCAwLjE0NzQ5NCwgMC4yNjAyMTksIDAuMzQyMTI2LCAwLjQ3Mzk3OSwgMC41ODk3MTMsIDAuNzU0NTM3IiwgXAotICAgICAgICAgICIwLjAzODU1NiwgMC4xNDgxOCwgMC4yNjA2NTcsIDAuMzQyMjIxLCAwLjQ3Mzg5NSwgMC41ODk4NDIsIDAuNzU1Mzg2IiwgXAotICAgICAgICAgICIwLjAzOTM3LCAwLjE0ODU4NiwgMC4yNjA5OTYsIDAuMzQyMzk4LCAwLjQ3NDIzLCAwLjU4OTg3OSwgMC43NTQ4MzYiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzk3MzgsIDAuMTQzNTg3LCAwLjE5ODU2LCAwLjIzNzI2NywgMC4yOTkwNzIsIDAuMzUzMDkzLCAwLjQzMDI4NyIsIFwKLSAgICAgICAgICAiMC4wODQ5OSwgMC4xNDg4NSwgMC4yMDM4MjcsIDAuMjQyNTM4LCAwLjMwNDM0MSwgMC4zNTgzNTksIDAuNDM1NTAyIiwgXAotICAgICAgICAgICIwLjA5MDM1NCwgMC4xNTQxODEsIDAuMjA5MTM5LCAwLjI0Nzg1LCAwLjMwOTY3OSwgMC4zNjM3MDEsIDAuNDQwODQ0IiwgXAotICAgICAgICAgICIwLjA5NTIyNiwgMC4xNTkwNiwgMC4yMTQwMTUsIDAuMjUyNzMsIDAuMzE0NTQ0LCAwLjM2ODU4MiwgMC40NDU3MjIiLCBcCi0gICAgICAgICAgIjAuMDk5OTg2LCAwLjE2MzgxNSwgMC4yMTg3OTIsIDAuMjU3NTA5LCAwLjMxOTMxNCwgMC4zNzMzNTUsIDAuNDUwNDk2IiwgXAotICAgICAgICAgICIwLjEwNjMxOSwgMC4xNzA3MjUsIDAuMjI1Nzg0LCAwLjI2NDQ4NSwgMC4zMjYyODcsIDAuMzgwMzExLCAwLjQ1NzQ3MyIsIFwKLSAgICAgICAgICAiMC4xMTE0MjksIDAuMTc2NDM4LCAwLjIzMTM3MiwgMC4yNzAwNzUsIDAuMzMxODU5LCAwLjM4NTg4OSwgMC40NjMwNTciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzc0NzIsIDAuMTQ0NTQ1LCAwLjI1MzExOSwgMC4zMzE2OTYsIDAuNDU5MDAxLCAwLjU3MDUzMywgMC43MzA1NjciLCBcCi0gICAgICAgICAgIjAuMDM3MzYsIDAuMTQ0NTEzLCAwLjI1MzA5NiwgMC4zMzE4MTgsIDAuNDU4OTcyLCAwLjU2OTk2LCAwLjcyOTYxNSIsIFwKLSAgICAgICAgICAiMC4wMzcyNywgMC4xNDQ0NDYsIDAuMjUzMDc2LCAwLjMzMTk4NywgMC40NTg5OTYsIDAuNTcwNjAzLCAwLjczMDQyMiIsIFwKLSAgICAgICAgICAiMC4wMzc1MiwgMC4xNDQ1ODMsIDAuMjUzMTM2LCAwLjMzMTgxOSwgMC40NTgzNzMsIDAuNTcwNjM3LCAwLjczMDQ0MiIsIFwKLSAgICAgICAgICAiMC4wMzc5MzIsIDAuMTQ0Nzc3LCAwLjI1MzMyNywgMC4zMzIxMTUsIDAuNDU5MDE2LCAwLjU3MDY3MSwgMC43MzA0NjkiLCBcCi0gICAgICAgICAgIjAuMDM5MDg2LCAwLjE0NTQ1MywgMC4yNTM2NzcsIDAuMzMyMDg3LCAwLjQ1ODc2NSwgMC41NzAxMTIsIDAuNzMwNTc4IiwgXAotICAgICAgICAgICIwLjAzOTkzNiwgMC4xNDYzMzMsIDAuMjU0MDk0LCAwLjMzMjQ0MywgMC40NTk0NDYsIDAuNTY5OTU0LCAwLjczMDY4MSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExMTU2NywgMC4xNjkyNjYsIDAuMjI0MTY5LCAwLjI2MzQyMiwgMC4zMjYyMTIsIDAuMzgxMjAyLCAwLjQ1OTgwNCIsIFwKLSAgICAgICAgICAiMC4xMTgzMTgsIDAuMTc1OTk0LCAwLjIzMDkwOSwgMC4yNzAxNjUsIDAuMzMyOTgxLCAwLjM4Nzk0LCAwLjQ2NjU0IiwgXAotICAgICAgICAgICIwLjEyNTU1MywgMC4xODMyMjQsIDAuMjM4MTg1LCAwLjI3NzQzNiwgMC4zNDAyNDMsIDAuMzk1MjI2LCAwLjQ3Mzc2MSIsIFwKLSAgICAgICAgICAiMC4xMzIzNjUsIDAuMTkwMDExLCAwLjI0NDkwOCwgMC4yODQxNTgsIDAuMzQ2OTcsIDAuNDAxOTUyLCAwLjQ4MDU2OCIsIFwKLSAgICAgICAgICAiMC4xMzg3MDEsIDAuMTk2MzU5LCAwLjI1MTI0MiwgMC4yOTA0NzgsIDAuMzUzMzQ0LCAwLjQwODMwMSwgMC40ODY4ODgiLCBcCi0gICAgICAgICAgIjAuMTQ3NTU2LCAwLjIwNTA5MiwgMC4yNTk5OTMsIDAuMjk5MjYxLCAwLjM2MjAyMiwgMC40MTcwMDIsIDAuNDk1NjIzIiwgXAotICAgICAgICAgICIwLjE1NDI4OSwgMC4yMTE1NSwgMC4yNjYzODYsIDAuMzA1NjEzLCAwLjM2ODQzOSwgMC40MjM0MDIsIDAuNTAxOTkzIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDMzNzk5LCAwLjE0MzM2OCwgMC4yNTY5OTgsIDAuMzM5MjUsIDAuNDcxNzc4LCAwLjU4Nzc0NywgMC43NTM3NzUiLCBcCi0gICAgICAgICAgIjAuMDMzODAzLCAwLjE0MzM2OCwgMC4yNTY5OTksIDAuMzM5MjYzLCAwLjQ3MTc4LCAwLjU4Nzc2OCwgMC43NTI0NTQiLCBcCi0gICAgICAgICAgIjAuMDMzODA3LCAwLjE0MzM3MiwgMC4yNTY5OTksIDAuMzM5MjU4LCAwLjQ3MTc4LCAwLjU4Nzc5MSwgMC43NTM3NjYiLCBcCi0gICAgICAgICAgIjAuMDMzODMsIDAuMTQzMzcsIDAuMjU3MDAyLCAwLjMzOTMzNywgMC40NzE3ODIsIDAuNTg3NjgxLCAwLjc1MjY0NSIsIFwKLSAgICAgICAgICAiMC4wMzM4NSwgMC4xNDMzOTUsIDAuMjU3MDExLCAwLjMzOTE1NywgMC40NzE3ODQsIDAuNTg3NzY3LCAwLjc1Mzc2MSIsIFwKLSAgICAgICAgICAiMC4wMzM5ODEsIDAuMTQzNDc3LCAwLjI1NzA1OSwgMC4zMzkxMiwgMC40NzE3OTgsIDAuNTg3ODM5LCAwLjc1MjY2NyIsIFwKLSAgICAgICAgICAiMC4wMzQxOTksIDAuMTQzNDU4LCAwLjI1NjkxNCwgMC4zMzkxNzgsIDAuNDcxNzEsIDAuNTg3MTQxLCAwLjc1MjY0MiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwOTA0MSwgMC4xNjcwNjMsIDAuMjIxMTg1LCAwLjI1OTY4OSwgMC4zMjEzMTksIDAuMzc1MjU3LCAwLjQ1MjM3MiIsIFwKLSAgICAgICAgICAiMC4xMTU5NTIsIDAuMTczNTY4LCAwLjIyNzY5MywgMC4yNjYyMDMsIDAuMzI3ODM2LCAwLjM4MTc1OSwgMC40NTg4NTgiLCBcCi0gICAgICAgICAgIjAuMTIzOTE5LCAwLjE4MTYwNSwgMC4yMzU3MzcsIDAuMjc0MjQ4LCAwLjMzNTg4LCAwLjM4OTgxMiwgMC40NjY4NzkiLCBcCi0gICAgICAgICAgIjAuMTMxMzc0LCAwLjE4OTI5MywgMC4yNDM0MTcsIDAuMjgxOTM0LCAwLjM0MzU3LCAwLjM5NzQ5OSwgMC40NzQ1NiIsIFwKLSAgICAgICAgICAiMC4xMzg0NTksIDAuMTk2NTMxLCAwLjI1MDY2LCAwLjI4OTE2NywgMC4zNTA3OTYsIDAuNDA0NzI4LCAwLjQ4MTc5NCIsIFwKLSAgICAgICAgICAiMC4xNDgzMjgsIDAuMjA2NTU3LCAwLjI2MDY1NiwgMC4yOTkxNTYsIDAuMzYwNzgsIDAuNDE0NzA3LCAwLjQ5MTc3MiIsIFwKLSAgICAgICAgICAiMC4xNTYxMDMsIDAuMjE0Mzc3LCAwLjI2ODQ2MywgMC4zMDY5NTMsIDAuMzY4NTc0LCAwLjQyMjUzNywgMC40OTk1NzMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzQ0NjgsIDAuMTQwNTE0LCAwLjI0OTY0MywgMC4zMjg2NjYsIDAuNDU2MjM5LCAwLjU2NzkyNiwgMC43Mjc2NzIiLCBcCi0gICAgICAgICAgIjAuMDM0NDcyLCAwLjE0MDU0MywgMC4yNDk3ODcsIDAuMzI4NjY0LCAwLjQ1NjMyOSwgMC41Njc5MjksIDAuNzI3NTYzIiwgXAotICAgICAgICAgICIwLjAzNDQ3NSwgMC4xNDA0MjksIDAuMjQ5NzkxLCAwLjMyODY2NSwgMC40NTYyOTEsIDAuNTY4MTI2LCAwLjcyNzY4IiwgXAotICAgICAgICAgICIwLjAzNDQ4OCwgMC4xNDA1NDgsIDAuMjQ5NzksIDAuMzI4NjU5LCAwLjQ1NjM1MywgMC41NjgxNDgsIDAuNzI3NTkzIiwgXAotICAgICAgICAgICIwLjAzNDUxLCAwLjE0MDUyNCwgMC4yNDk3OCwgMC4zMjg2NjUsIDAuNDU2MjYzLCAwLjU2ODA3MiwgMC43Mjc2MyIsIFwKLSAgICAgICAgICAiMC4wMzQ1MjIsIDAuMTQwNTgxLCAwLjI0OTgyNCwgMC4zMjg2NzcsIDAuNDU2Mjk5LCAwLjU2ODEzMSwgMC43Mjc2ODEiLCBcCi0gICAgICAgICAgIjAuMDM0NzAzLCAwLjE0MDYyMSwgMC4yNDk2NDQsIDAuMzI4Njc4LCAwLjQ1NTg1MiwgMC41NjgyNzEsIDAuNzI4MzI3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDczMjUyLCAwLjEzNjc5LCAwLjE5MjQzLCAwLjIzMTg0NCwgMC4yOTQ4MjUsIDAuMzQ5ODgsIDAuNDI4NTExIiwgXAotICAgICAgICAgICIwLjA3OTU1NSwgMC4xNDMwODUsIDAuMTk4NzQzLCAwLjIzODE1MiwgMC4zMDExMzcsIDAuMzU2MTk0LCAwLjQzNDgxNyIsIFwKLSAgICAgICAgICAiMC4wODc3NzUsIDAuMTUxMjgyLCAwLjIwNjkzNSwgMC4yNDYzNDIsIDAuMzA5MzI5LCAwLjM2NDM4OSwgMC40NDMwMTIiLCBcCi0gICAgICAgICAgIjAuMDk1Nzk2LCAwLjE1OTE0NiwgMC4yMTQ3OTcsIDAuMjU0MTg3LCAwLjMxNzE2LCAwLjM3MjI1MSwgMC40NTA4NiIsIFwKLSAgICAgICAgICAiMC4xMDMzODYsIDAuMTY3MDEzLCAwLjIyMjY0OCwgMC4yNjIwNjEsIDAuMzI1MDQ3LCAwLjM4MDEwMywgMC40NTg3MjEiLCBcCi0gICAgICAgICAgIjAuMTE0MjczLCAwLjE3ODI5MSwgMC4yMzM5MzIsIDAuMjczMzgyLCAwLjMzNjMwOSwgMC4zOTE0MTMsIDAuNDcwMDc4IiwgXAotICAgICAgICAgICIwLjEyMjY4LCAwLjE4NzIzNSwgMC4yNDI5NzIsIDAuMjgyMzcsIDAuMzQ1MzM3LCAwLjQwMDQyNiwgMC40NzkxMTgiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzcwNjEsIDAuMTQ3MjY0LCAwLjI1OTg5OCwgMC4zNDE3NzUsIDAuNDczOTYxLCAwLjU4OTY4NCwgMC43NTQ1NzUiLCBcCi0gICAgICAgICAgIjAuMDM3MDE5LCAwLjE0NzIyNSwgMC4yNjAxMDIsIDAuMzQxNzcxLCAwLjQ3Mzk4NSwgMC41ODk2OTksIDAuNzU0NTE4IiwgXAotICAgICAgICAgICIwLjAzNjgwOCwgMC4xNDcxODQsIDAuMjYwMDAzLCAwLjM0MTc2NywgMC40NzM5NzMsIDAuNTg5Njg5LCAwLjc1NDUyNyIsIFwKLSAgICAgICAgICAiMC4wMzcxNTQsIDAuMTQ3MzYzLCAwLjI2MDIsIDAuMzQyMDczLCAwLjQ3MzcwOCwgMC41ODk3NDEsIDAuNzU1MzU1IiwgXAotICAgICAgICAgICIwLjAzNzY0NSwgMC4xNDc1LCAwLjI2MDI2NSwgMC4zNDIwOTQsIDAuNDczOTkzLCAwLjU4OTc4NiwgMC43NTQ0NzYiLCBcCi0gICAgICAgICAgIjAuMDM4OTU0LCAwLjE0ODIyOSwgMC4yNjA2NDUsIDAuMzQyMzQ5LCAwLjQ3Mzg3NiwgMC41ODk4MSwgMC43NTU0MDciLCBcCi0gICAgICAgICAgIjAuMDQwMjk3LCAwLjE0ODc3LCAwLjI2MDg5NywgMC4zNDIyMzEsIDAuNDczNjg0LCAwLjU4OTg3NywgMC43NTQzNTciKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzc3ODIsIDAuMTQxNjAyLCAwLjE5NjU1NSwgMC4yMzUyNjIsIDAuMjk3MDgyLCAwLjM1MTExMywgMC40MjgyNTMiLCBcCi0gICAgICAgICAgIjAuMDgzNzksIDAuMTQ3NjY5LCAwLjIwMjY1NCwgMC4yNDEzODksIDAuMzAzMTk1LCAwLjM1NzIyNywgMC40MzQzNjkiLCBcCi0gICAgICAgICAgIjAuMDkxNDU0LCAwLjE1NTI0OSwgMC4yMTAyMjYsIDAuMjQ4OTQxLCAwLjMxMDc1LCAwLjM2NDc4MywgMC40NDE5NjYiLCBcCi0gICAgICAgICAgIjAuMDk4NzA4LCAwLjE2MjQ5OCwgMC4yMTc0NiwgMC4yNTYxNzYsIDAuMzE3OTkxLCAwLjM3MjAzMiwgMC40NDkxNzQiLCBcCi0gICAgICAgICAgIjAuMTA1NzcsIDAuMTY5NTc4LCAwLjIyNDU0MSwgMC4yNjMyNDksIDAuMzI1MDU3LCAwLjM3OTA3MiwgMC40NTYyMzMiLCBcCi0gICAgICAgICAgIjAuMTE1NTg3LCAwLjE3OTg4NiwgMC4yMzQ4NDUsIDAuMjczNTUsIDAuMzM1MzU3LCAwLjM4OTQxLCAwLjQ2NjUyNiIsIFwKLSAgICAgICAgICAiMC4xMjMyMzMsIDAuMTg4MDkzLCAwLjI0MzExOCwgMC4yODE4MTQsIDAuMzQzNTksIDAuMzk3NjE1LCAwLjQ3NDc3OCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzNzI3NSwgMC4xNDQ1MjIsIDAuMjUzMTE1LCAwLjMzMTY4OCwgMC40NTg5OTgsIDAuNTcwNjIyLCAwLjczMDQ0OCIsIFwKLSAgICAgICAgICAiMC4wMzczNDEsIDAuMTQ0MzgsIDAuMjUzMDUxLCAwLjMzMTc4NywgMC40NTg5NjQsIDAuNTcwNjIyLCAwLjczMDQ0MiIsIFwKLSAgICAgICAgICAiMC4wMzcyNjYsIDAuMTQ0NDUsIDAuMjUzMDY1LCAwLjMzMTc2MSwgMC40NTg5NSwgMC41NzA2MTEsIDAuNzMwNTI1IiwgXAotICAgICAgICAgICIwLjAzNzUsIDAuMTQ0NTc3LCAwLjI1MzEzNCwgMC4zMzE4NSwgMC40NTg1OTMsIDAuNTcwNjI5LCAwLjczMDQ0MyIsIFwKLSAgICAgICAgICAiMC4wMzgxNjIsIDAuMTQ0ODYsIDAuMjUzMzE3LCAwLjMzMTk2NSwgMC40NTg0MjksIDAuNTcwMDE4LCAwLjczMDQ3NCIsIFwKLSAgICAgICAgICAiMC4wMzkyMjksIDAuMTQ1Njc3LCAwLjI1Mzc0NCwgMC4zMzIyODIsIDAuNDU4ODI1LCAwLjU3MDg3MiwgMC43MzA1NTQiLCBcCi0gICAgICAgICAgIjAuMDQwNDY4LCAwLjE0NjI0NiwgMC4yNTQxNjEsIDAuMzMyNDg3LCAwLjQ1OTQ0NywgMC41NzA3NTEsIDAuNzI5NTM2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTExMzM1LCAwLjE2OTAxLCAwLjIyMzkxNSwgMC4yNjMxNzQsIDAuMzI2MDI0LCAwLjM4MDk3NCwgMC40NTk2NTkiLCBcCi0gICAgICAgICAgIjAuMTE3ODU1LCAwLjE3NTUzMSwgMC4yMzA0MzUsIDAuMjY5Njk3LCAwLjMzMjU0NiwgMC4zODc1NDEsIDAuNDY2MTgxIiwgXAotICAgICAgICAgICIwLjEyNDg0MiwgMC4xODI1MzgsIDAuMjM3NDgzLCAwLjI3NjcxLCAwLjMzOTU1MiwgMC4zOTQ1MDIsIDAuNDczMTg1IiwgXAotICAgICAgICAgICIwLjEzMzc5NCwgMC4xOTIxMzUsIDAuMjQ3MDUsIDAuMjg2MjgzLCAwLjM0OTA4NSwgMC40MDQwMzQsIDAuNDgyNjg4IiwgXAotICAgICAgICAgICIwLjE0MjgxMiwgMC4yMDExNTgsIDAuMjU2MDY5LCAwLjI5NTMxMiwgMC4zNTgxMiwgMC40MTMwNjIsIDAuNDkxNjQ4IiwgXAotICAgICAgICAgICIwLjE1NTE2MywgMC4yMTMxMzEsIDAuMjY4MDAxLCAwLjMwNzIzMywgMC4zNjk5OTUsIDAuNDI0OTY2LCAwLjUwMzU0NCIsIFwKLSAgICAgICAgICAiMC4xNjQ0OCwgMC4yMjIyMTEsIDAuMjc3MDY0LCAwLjMxNjI2MywgMC4zNzkwNDIsIDAuNDMzOTg3LCAwLjUxMjY1NiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzMzY0MSwgMC4xNDMzNDgsIDAuMjU3MDAzLCAwLjMzOTEzNCwgMC40NzE4MjQsIDAuNTg3NTU0LCAwLjc1Mjc0NiIsIFwKLSAgICAgICAgICAiMC4wMzM1MzgsIDAuMTQzMzM2LCAwLjI1Njk5NSwgMC4zMzkwOTQsIDAuNDcxNzM3LCAwLjU4Nzc3NywgMC43NTI5MTYiLCBcCi0gICAgICAgICAgIjAuMDMzNTcyLCAwLjE0MzM1NiwgMC4yNTY4NDEsIDAuMzM5MTQxLCAwLjQ3MTc3OCwgMC41ODc2MzQsIDAuNzUyNzQzIiwgXAotICAgICAgICAgICIwLjAzMzY1NywgMC4xNDMzNDQsIDAuMjU2OTkzLCAwLjMzOTM5MiwgMC40NzE3NzgsIDAuNTg3Nzc2LCAwLjc1Mzc4NSIsIFwKLSAgICAgICAgICAiMC4wMzM2MzMsIDAuMTQzMzYsIDAuMjU3MDQ5LCAwLjMzOTQwNywgMC40NzE3NiwgMC41ODc3MTUsIDAuNzUyODQ3IiwgXAotICAgICAgICAgICIwLjAzMzgyLCAwLjE0MzQ1NSwgMC4yNTcwMzEsIDAuMzM5MTc0LCAwLjQ3MTc2MiwgMC41ODc4MDYsIDAuNzUzNzg3IiwgXAotICAgICAgICAgICIwLjAzNDExNiwgMC4xNDM0MjMsIDAuMjU3MDI1LCAwLjMzOTEyMiwgMC40NzE3MjcsIDAuNTg3NzU3LCAwLjc1MzcxOCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwNzg0NCwgMC4xNjY4NDgsIDAuMjIwOTY0LCAwLjI1OTQ4NywgMC4zMjExMzUsIDAuMzc1MDQ2LCAwLjQ1MjEyNyIsIFwKLSAgICAgICAgICAiMC4xMTUzNDgsIDAuMTc0MzMzLCAwLjIyODQ0OSwgMC4yNjY5NzIsIDAuMzI4NjEzLCAwLjM4MjUzNywgMC40NTk1ODQiLCBcCi0gICAgICAgICAgIjAuMTI1MDUzLCAwLjE4NDAzMiwgMC4yMzgxNTQsIDAuMjc2NjY3LCAwLjMzODI5OSwgMC4zOTIyNDQsIDAuNDY5Mjk3IiwgXAotICAgICAgICAgICIwLjEzNDc3OCwgMC4xOTM2OTMsIDAuMjQ3ODI3LCAwLjI4NjMzOSwgMC4zNDc5NjYsIDAuNDAxODk3LCAwLjQ3OTAxMiIsIFwKLSAgICAgICAgICAiMC4xNDM5OTMsIDAuMjAyNjMsIDAuMjU2NzM1LCAwLjI5NTI0OSwgMC4zNTY4NTksIDAuNDEwODA4LCAwLjQ4Nzg1MyIsIFwKLSAgICAgICAgICAiMC4xNTY2ODYsIDAuMjE1MTU2LCAwLjI2OTIxMywgMC4zMDc3MTUsIDAuMzY5MzM1LCAwLjQyMzI2MiwgMC41MDAzIiwgXAotICAgICAgICAgICIwLjE2NjYwMywgMC4yMjQ2MywgMC4yNzg4NTIsIDAuMzE3MzMyLCAwLjM3ODg1MSwgMC40MzI3ODgsIDAuNTA5ODMzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDMzOTU5LCAwLjE0MDQ0NSwgMC4yNDk1MjksIDAuMzI4NjI5LCAwLjQ1NTk5MywgMC41NjgxMTcsIDAuNzI3Mzk3IiwgXAotICAgICAgICAgICIwLjAzMzk0OSwgMC4xNDA0MzcsIDAuMjQ5NzQ0LCAwLjMyODYyLCAwLjQ1NjI2MywgMC41NjgxNiwgMC43MjgyMzMiLCBcCi0gICAgICAgICAgIjAuMDMzOTQ3LCAwLjE0MDM0NSwgMC4yNDk3MjMsIDAuMzI4NjE5LCAwLjQ1NjAxOCwgMC41Njc5OSwgMC43MjgyNjgiLCBcCi0gICAgICAgICAgIjAuMDMzOTYzLCAwLjE0MDM5NiwgMC4yNDk3MDEsIDAuMzI4NjMxLCAwLjQ1NjAxOCwgMC41NjgwNjQsIDAuNzI3NjI2IiwgXAotICAgICAgICAgICIwLjAzMzk5LCAwLjE0MDM5NywgMC4yNDk1NjgsIDAuMzI4NjEyLCAwLjQ1NTk5NCwgMC41NjgxODQsIDAuNzI4MjI4IiwgXAotICAgICAgICAgICIwLjAzNDA4NywgMC4xNDA0ODEsIDAuMjQ5Nzk5LCAwLjMyODY0OCwgMC40NTYyNzUsIDAuNTY4MTY0LCAwLjcyODA5NyIsIFwKLSAgICAgICAgICAiMC4wMzQyMTIsIDAuMTQwNDU3LCAwLjI0OTc0MSwgMC4zMjg2NzksIDAuNDU1OTA3LCAwLjU2ODA5NSwgMC43MjgwOTMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0kiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDczNDgsIDAuMTM2ODk5LCAwLjE5MjU0NCwgMC4yMzE5NTgsIDAuMjk0OTY1LCAwLjM1MDAxMiwgMC40Mjg2MzkiLCBcCi0gICAgICAgICAgIjAuMDgwMDU2LCAwLjE0MzYwNCwgMC4xOTkyNjIsIDAuMjM4Njg2LCAwLjMwMTY3MywgMC4zNTY3MjksIDAuNDM1MzYxIiwgXAotICAgICAgICAgICIwLjA4OTE4NiwgMC4xNTI2MzQsIDAuMjA4Mjk1LCAwLjI0NzcsIDAuMzEwNjg2LCAwLjM2NTc0NiwgMC40NDQzNzgiLCBcCi0gICAgICAgICAgIjAuMDk4NDQ0LCAwLjE2MTcxNCwgMC4yMTczNTgsIDAuMjU2NzQ3LCAwLjMxOTczMSwgMC4zNzQ4NTEsIDAuNDUzNDM1IiwgXAotICAgICAgICAgICIwLjEwNzU0MywgMC4xNzEwMiwgMC4yMjY2NTQsIDAuMjY2MDM5LCAwLjMyOTAyMSwgMC4zODQwNzIsIDAuNDYyNzIyIiwgXAotICAgICAgICAgICIwLjEyMDQ0NywgMC4xODQyOTksIDAuMjM5OTQxLCAwLjI3OTMyNSwgMC4zNDIyNzcsIDAuMzk3MzE2LCAwLjQ3NjA0MyIsIFwKLSAgICAgICAgICAiMC4xMjk4OTIsIDAuMTk0MzgyLCAwLjI1MDEwNSwgMC4yODk0OTgsIDAuMzUyNDQyLCAwLjQwNzQ4NiwgMC40ODYxMjEiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzY5MTUsIDAuMTQ3MjY5LCAwLjI1OTk3OSwgMC4zNDIwNjgsIDAuNDcyOTQsIDAuNTg5NzU3LCAwLjc1NDUyIiwgXAotICAgICAgICAgICIwLjAzNjkyMiwgMC4xNDcxMjksIDAuMjYwMDg1LCAwLjM0MTY4MiwgMC40NzM5MDQsIDAuNTg5Njg2LCAwLjc1NDU1OSIsIFwKLSAgICAgICAgICAiMC4wMzY4NTYsIDAuMTQ3MTg0LCAwLjI1OTk5NSwgMC4zNDE3NTgsIDAuNDczOTM5LCAwLjU4OTY3MiwgMC43NTQ1NyIsIFwKLSAgICAgICAgICAiMC4wMzY5NywgMC4xNDczNzUsIDAuMjYwMTk4LCAwLjM0MjA0MywgMC40NzM5NDIsIDAuNTg5NzIyLCAwLjc1NTM5MiIsIFwKLSAgICAgICAgICAiMC4wMzc3MzUsIDAuMTQ3NTExLCAwLjI2MDMwNCwgMC4zNDE4ODIsIDAuNDczMjI3LCAwLjU4OTE0MywgMC43NTUzOTQiLCBcCi0gICAgICAgICAgIjAuMDM5NzY0LCAwLjE0ODQzOSwgMC4yNjA2OTUsIDAuMzQyMTg0LCAwLjQ3MzM2OSwgMC41ODkxODgsIDAuNzU0Mjg4IiwgXAotICAgICAgICAgICIwLjA0MTQwNCwgMC4xNDkxNywgMC4yNjExOTQsIDAuMzQyNTM3LCAwLjQ3Mzc3NywgMC41ODkzMzksIDAuNzU1NDM0Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc1MzA3LCAwLjEzOTEyNiwgMC4xOTQxMiwgMC4yMzI4MzYsIDAuMjk0NjQ3LCAwLjM0ODY2MSwgMC40MjU4MjMiLCBcCi0gICAgICAgICAgIjAuMDgxOTk4LCAwLjE0NTgwNiwgMC4yMDA4MDEsIDAuMjM5NTM2LCAwLjMwMTM0NywgMC4zNTUzNzcsIDAuNDMyNTIxIiwgXAotICAgICAgICAgICIwLjA5MTE0OSwgMC4xNTQ5NiwgMC4yMDk5NCwgMC4yNDg2NzMsIDAuMzEwNDksIDAuMzY0NTIyLCAwLjQ0MTY2NyIsIFwKLSAgICAgICAgICAiMC4xMDA0NDgsIDAuMTY0MTI4LCAwLjIxOTA4NCwgMC4yNTc4MSwgMC4zMTk2MTUsIDAuMzczNjQ1LCAwLjQ1MDc4OSIsIFwKLSAgICAgICAgICAiMC4xMDkzNTUsIDAuMTczMDkzLCAwLjIyODAyNCwgMC4yNjY3MywgMC4zMjg1MjcsIDAuMzgyNTQyLCAwLjQ1OTcwOSIsIFwKLSAgICAgICAgICAiMC4xMjE3OSwgMC4xODU4ODMsIDAuMjQwODU3LCAwLjI3OTU2LCAwLjM0MTM1MSwgMC4zOTUzNjgsIDAuNDcyNTA1IiwgXAotICAgICAgICAgICIwLjEzMTUxNCwgMC4xOTU5MTQsIDAuMjUxMDUxLCAwLjI4OTc1NSwgMC4zNTE1MTgsIDAuNDA1NTM0LCAwLjQ4MjcyOCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzNzIyOCwgMC4xNDQ1NTcsIDAuMjUzMTMxLCAwLjMzMTgzOSwgMC40NTkwMjgsIDAuNTcwNTA4LCAwLjczMDQ0NSIsIFwKLSAgICAgICAgICAiMC4wMzczODcsIDAuMTQ0NDA1LCAwLjI1MzAwNiwgMC4zMzE2ODksIDAuNDU4OTY4LCAwLjU3MDYzLCAwLjczMDQ0NyIsIFwKLSAgICAgICAgICAiMC4wMzcyNjIsIDAuMTQ0MzE1LCAwLjI1Mjk1MiwgMC4zMzE2NjQsIDAuNDU4OTUxLCAwLjU3MDYxOCwgMC43MzA0MzQiLCBcCi0gICAgICAgICAgIjAuMDM3Mjk5LCAwLjE0NDYzOCwgMC4yNTMwNDQsIDAuMzMxODI3LCAwLjQ1ODk5MSwgMC41NzA2NSwgMC43MzA0NDQiLCBcCi0gICAgICAgICAgIjAuMDM4MDg2LCAwLjE0NDg4MSwgMC4yNTMyOTQsIDAuMzMxOTE0LCAwLjQ1OTA1LCAwLjU3MDUzNSwgMC43MzA0ODIiLCBcCi0gICAgICAgICAgIjAuMDM5OTM1LCAwLjE0NTcxOCwgMC4yNTM3NzMsIDAuMzMyNDM1LCAwLjQ1ODY2MywgMC41NzA3NTEsIDAuNzI5OCIsIFwKLSAgICAgICAgICAiMC4wNDExMzQsIDAuMTQ2NTI0LCAwLjI1NDI5OCwgMC4zMzI2MTQsIDAuNDU5NDg0LCAwLjU3MDMyNywgMC43MzA4MDUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0kiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTA2Njg5LCAwLjE2NDI5NiwgMC4yMTkyNTYsIDAuMjU4NTMzLCAwLjMyMTM3MywgMC4zNzYzNTksIDAuNDU0OTY4IiwgXAotICAgICAgICAgICIwLjExNDQ5LCAwLjE3MjEzNywgMC4yMjcwOTUsIDAuMjY2MzcsIDAuMzI5MjA5LCAwLjM4NDE5NiwgMC40NjI4MDciLCBcCi0gICAgICAgICAgIjAuMTI0NDUxLCAwLjE4MjA1NywgMC4yMzcwMTEsIDAuMjc2Mjg3LCAwLjMzOTEyNiwgMC4zOTQxMTEsIDAuNDcyNzE3IiwgXAotICAgICAgICAgICIwLjEzMzk1MiwgMC4xOTE1NTEsIDAuMjQ2NDg1LCAwLjI4NTc1NiwgMC4zNDg1OTIsIDAuNDAzNTgzLCAwLjQ4MjIyNyIsIFwKLSAgICAgICAgICAiMC4xNDI2NTUsIDAuMjAwMTU0LCAwLjI1NTA3LCAwLjI5NDMzNywgMC4zNTcxNywgMC40MTIxNiwgMC40OTA4MDMiLCBcCi0gICAgICAgICAgIjAuMTU0NDEyLCAwLjIxMTUwNywgMC4yNjYzOTgsIDAuMzA1NjU4LCAwLjM2ODQ4NiwgMC40MjM0NTYsIDAuNTAyMDQzIiwgXAotICAgICAgICAgICIwLjE2MzA0NiwgMC4yMjAxNjcsIDAuMjc1MDM5LCAwLjMxNDI4MiwgMC4zNzcxMDksIDAuNDMyMDc2LCAwLjUxMDY0Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDMzMTM0LCAwLjE0Mjg1OSwgMC4yNTY3OTUsIDAuMzM5MzUzLCAwLjQ3MTcyLCAwLjU4NzI2MSwgMC43NTI2NTUiLCBcCi0gICAgICAgICAgIjAuMDMzMDM4LCAwLjE0Mjg1NCwgMC4yNTY3OTMsIDAuMzM5MzU0LCAwLjQ3MTc0NCwgMC41ODcyNjcsIDAuNzUyNjYxIiwgXAotICAgICAgICAgICIwLjAzMjk5MywgMC4xNDI4NTMsIDAuMjU2NzkzLCAwLjMzOTM0OCwgMC40NzE3NDUsIDAuNTg3NzI1LCAwLjc1MjY1NCIsIFwKLSAgICAgICAgICAiMC4wMzMwNjgsIDAuMTQyODM4LCAwLjI1Njc5NywgMC4zMzkzOTMsIDAuNDcxNzQ1LCAwLjU4Nzc2MywgMC43NTI3NTEiLCBcCi0gICAgICAgICAgIjAuMDMzMTUyLCAwLjE0Mjg0OSwgMC4yNTY3OTQsIDAuMzM5Mzk5LCAwLjQ3MTc0MywgMC41ODczMDUsIDAuNzUyNzUzIiwgXAotICAgICAgICAgICIwLjAzMzIwMSwgMC4xNDMwMTcsIDAuMjU2ODY2LCAwLjMzOTM5OSwgMC40NzE3MjgsIDAuNTg3MjUyLCAwLjc1MzczIiwgXAotICAgICAgICAgICIwLjAzMzQ0MywgMC4xNDMxMywgMC4yNTcwNjksIDAuMzM5MzE2LCAwLjQ3MTczNCwgMC41ODc3MjgsIDAuNzUzMDQ3Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTA1MzUxLCAwLjE2MjkwMiwgMC4yMTY5MTUsIDAuMjU1NDI5LCAwLjMxNzA2NSwgMC4zNzEwMTQsIDAuNDQ4MDgyIiwgXAotICAgICAgICAgICIwLjExMzAwOCwgMC4xNzA1NDMsIDAuMjI0NTU5LCAwLjI2MzA3OCwgMC4zMjQ3MjksIDAuMzc4NjY2LCAwLjQ1NTczNCIsIFwKLSAgICAgICAgICAiMC4xMjI2OTUsIDAuMTgwMjI5LCAwLjIzNDIzMSwgMC4yNzI3NTIsIDAuMzM0Mzk5LCAwLjM4ODMzOCwgMC40NjU0MTkiLCBcCi0gICAgICAgICAgIjAuMTMyMTU3LCAwLjE4OTU5NiwgMC4yNDM2MTQsIDAuMjgyMTMyLCAwLjM0Mzc3NiwgMC4zOTc3MTQsIDAuNDc0Nzk1IiwgXAotICAgICAgICAgICIwLjE0MDg4OSwgMC4xOTg0MTYsIDAuMjUyNDEsIDAuMjkwOTMxLCAwLjM1MjU3NywgMC40MDY1MiwgMC40ODM2MDkiLCBcCi0gICAgICAgICAgIjAuMTUzMTk3LCAwLjIxMDI1MSwgMC4yNjQyMDIsIDAuMzAyNzEsIDAuMzY0MzQyLCAwLjQxODM0MSwgMC40OTUzNDUiLCBcCi0gICAgICAgICAgIjAuMTYyNTk2LCAwLjIxOTM5MSwgMC4yNzMzMTYsIDAuMzExODA4LCAwLjM3MzQzMSwgMC40MjczNiwgMC41MDQ0MTciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzI0ODcsIDAuMTM5MDg2LCAwLjI0ODgzMiwgMC4zMjgwNzcsIDAuNDU2LCAwLjU2Nzk1MSwgMC43Mjc3MjYiLCBcCi0gICAgICAgICAgIjAuMDMyNDcxLCAwLjEzOTA5NCwgMC4yNDg4MTQsIDAuMzI4MDc2LCAwLjQ1NTk1MSwgMC41Njc5MjYsIDAuNzI3NjgxIiwgXAotICAgICAgICAgICIwLjAzMjQzLCAwLjEzOTEwNCwgMC4yNDg4NCwgMC4zMjgwNzcsIDAuNDU1OTE4LCAwLjU2NzkzNCwgMC43Mjc2NDgiLCBcCi0gICAgICAgICAgIjAuMDMyNDg4LCAwLjEzOTExNiwgMC4yNDg4MjEsIDAuMzI4MDcyLCAwLjQ1NTk0MywgMC41Njc5MTIsIDAuNzI3NTc3IiwgXAotICAgICAgICAgICIwLjAzMjUxOCwgMC4xMzkxMDMsIDAuMjQ4ODAyLCAwLjMyODA4MSwgMC40NTU5NjksIDAuNTY3OTE4LCAwLjcyNzc4MyIsIFwKLSAgICAgICAgICAiMC4wMzI1MzcsIDAuMTM5MjI2LCAwLjI0ODkxLCAwLjMyODEzNCwgMC40NTU5OSwgMC41Njc5NzcsIDAuNzI4MDg2IiwgXAotICAgICAgICAgICIwLjAzMjY5NCwgMC4xMzkyNjgsIDAuMjQ4OTc1LCAwLjMyODIwOSwgMC40NTU5ODMsIDAuNTY3ODc5LCAwLjcyNzcwNCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA5NjY4LCAwLjAwOTY4LCAwLjAwOTcxMywgMC4wMDk3MjUsIDAuMDA5NzM3LCAwLjAwOTc0MywgMC4wMDk3NDkiLCBcCi0gICAgICAgICAgIjAuMDA5NjQ0LCAwLjAwOTY1NSwgMC4wMDk2ODksIDAuMDA5NzAyLCAwLjAwOTcxNCwgMC4wMDk3MiwgMC4wMDk3MjUiLCBcCi0gICAgICAgICAgIjAuMDA5NjU1LCAwLjAwOTY1MiwgMC4wMDk2ODQsIDAuMDA5Njk4LCAwLjAwOTcwOSwgMC4wMDk3MTcsIDAuMDA5NzIyIiwgXAotICAgICAgICAgICIwLjAwOTY3NCwgMC4wMDk2NTcsIDAuMDA5NjkxLCAwLjAwOTcwNiwgMC4wMDk3MTgsIDAuMDA5NzI2LCAwLjAwOTczMyIsIFwKLSAgICAgICAgICAiMC4wMDk3NDgsIDAuMDA5Njg5LCAwLjAwOTcyLCAwLjAwOTczNSwgMC4wMDk3NDYsIDAuMDA5NzU0LCAwLjAwOTc2IiwgXAotICAgICAgICAgICIwLjAwOTkwNywgMC4wMDk3NywgMC4wMDk3OTIsIDAuMDA5ODAzLCAwLjAwOTgxMywgMC4wMDk4MiwgMC4wMDk4MjciLCBcCi0gICAgICAgICAgIjAuMDEwMDI5LCAwLjAwOTg0LCAwLjAwOTg1MiwgMC4wMDk4NjUsIDAuMDA5ODc3LCAwLjAwOTg4MywgMC4wMDk4ODkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjUyOCwgMC4wMDY1MzYsIDAuMDA2NTY2LCAwLjAwNjU3NywgMC4wMDY1OTEsIDAuMDA2NTksIDAuMDA2NTk4IiwgXAotICAgICAgICAgICIwLjAwNjQ3LCAwLjAwNjQ4OCwgMC4wMDY1MiwgMC4wMDY1MzIsIDAuMDA2NTQ2LCAwLjAwNjU1MiwgMC4wMDY1NTUiLCBcCi0gICAgICAgICAgIjAuMDA2NDk3LCAwLjAwNjQ4NSwgMC4wMDY1MTYsIDAuMDA2NTI4LCAwLjAwNjU0LCAwLjAwNjU0NiwgMC4wMDY1NTIiLCBcCi0gICAgICAgICAgIjAuMDA2NTY5LCAwLjAwNjUwNywgMC4wMDY1MzcsIDAuMDA2NTQ4LCAwLjAwNjU1OCwgMC4wMDY1NjUsIDAuMDA2NTcxIiwgXAotICAgICAgICAgICIwLjAwNjYzOSwgMC4wMDY1NDgsIDAuMDA2NTcyLCAwLjAwNjU4MywgMC4wMDY1OTUsIDAuMDA2NiwgMC4wMDY2MDYiLCBcCi0gICAgICAgICAgIjAuMDA2OCwgMC4wMDY2MjQsIDAuMDA2NjQyLCAwLjAwNjY1MSwgMC4wMDY2NjIsIDAuMDA2NjY2LCAwLjAwNjY3MiIsIFwKLSAgICAgICAgICAiMC4wMDY5NTMsIDAuMDA2NzE3LCAwLjAwNjcxOSwgMC4wMDY3MjcsIDAuMDA2NzM0LCAwLjAwNjczOSwgMC4wMDY3NDQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwOTQyNSwgMC4wMDk0NTEsIDAuMDA5NDgxLCAwLjAwOTQ5MywgMC4wMDk1MDQsIDAuMDA5NTEzLCAwLjAwOTUxNiIsIFwKLSAgICAgICAgICAiMC4wMDkzODEsIDAuMDA5NDEzLCAwLjAwOTQ0OCwgMC4wMDk0NTYsIDAuMDA5NDY4LCAwLjAwOTQ3NCwgMC4wMDk0OCIsIFwKLSAgICAgICAgICAiMC4wMDkzNiwgMC4wMDkzNzUsIDAuMDA5NDA3LCAwLjAwOTQyLCAwLjAwOTQzMiwgMC4wMDk0MzgsIDAuMDA5NDQ1IiwgXAotICAgICAgICAgICIwLjAwOTM5LCAwLjAwOTM2NSwgMC4wMDkzOTYsIDAuMDA5NDA4LCAwLjAwOTQyLCAwLjAwOTQyNywgMC4wMDk0MzMiLCBcCi0gICAgICAgICAgIjAuMDA5NTY4LCAwLjAwOTQyOCwgMC4wMDk0NDksIDAuMDA5NDU5LCAwLjAwOTQ3MywgMC4wMDk0NzUsIDAuMDA5NDgyIiwgXAotICAgICAgICAgICIwLjAwOTc4MywgMC4wMDk1MzIsIDAuMDA5NTQyLCAwLjAwOTU0OCwgMC4wMDk1NTcsIDAuMDA5NTYxLCAwLjAwOTU2NiIsIFwKLSAgICAgICAgICAiMC4wMDk4MzksIDAuMDA5NjAyLCAwLjAwOTYwNiwgMC4wMDk2MTcsIDAuMDA5NjI3LCAwLjAwOTYzLCAwLjAwOTYzNyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2ODIzLCAwLjAwNjgzNSwgMC4wMDY4NjMsIDAuMDA2ODcyLCAwLjAwNjg4MiwgMC4wMDY4ODQsIDAuMDA2ODkiLCBcCi0gICAgICAgICAgIjAuMDA2NzQ0LCAwLjAwNjc3LCAwLjAwNjgwMiwgMC4wMDY4MTQsIDAuMDA2ODI0LCAwLjAwNjgyOCwgMC4wMDY4MzUiLCBcCi0gICAgICAgICAgIjAuMDA2NzYzLCAwLjAwNjc1OSwgMC4wMDY3OTEsIDAuMDA2ODA0LCAwLjAwNjgxNCwgMC4wMDY4MjEsIDAuMDA2ODI3IiwgXAotICAgICAgICAgICIwLjAwNjg2MiwgMC4wMDY3OTMsIDAuMDA2ODE4LCAwLjAwNjgyOCwgMC4wMDY4MzksIDAuMDA2ODQzLCAwLjAwNjg0OSIsIFwKLSAgICAgICAgICAiMC4wMDY5MTcsIDAuMDA2ODM0LCAwLjAwNjg1NiwgMC4wMDY4NjYsIDAuMDA2ODc1LCAwLjAwNjg4MSwgMC4wMDY4ODYiLCBcCi0gICAgICAgICAgIjAuMDA3MDQsIDAuMDA2ODk4LCAwLjAwNjkyLCAwLjAwNjkzLCAwLjAwNjk0MSwgMC4wMDY5NDgsIDAuMDA2OTU0IiwgXAotICAgICAgICAgICIwLjAwNzMzNSwgMC4wMDY5OTcsIDAuMDA3MDYzLCAwLjAwNzA2NSwgMC4wMDcwMzMsIDAuMDA3MDM5LCAwLjAwNzA0NCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNJIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwOTAzNSwgMC4wMDkwMzYsIDAuMDA5MDY1LCAwLjAwOTA3OSwgMC4wMDkwODYsIDAuMDA5MDk1LCAwLjAwOTEwMyIsIFwKLSAgICAgICAgICAiMC4wMDkwMzIsIDAuMDA5MDM1LCAwLjAwOTA2NiwgMC4wMDkwODEsIDAuMDA5MDkxLCAwLjAwOTEsIDAuMDA5MTA0IiwgXAotICAgICAgICAgICIwLjAwOTA2NSwgMC4wMDkwNDgsIDAuMDA5MDgxLCAwLjAwOTA5NSwgMC4wMDkxMSwgMC4wMDkxMTgsIDAuMDA5MTIzIiwgXAotICAgICAgICAgICIwLjAwOTE1MSwgMC4wMDkwODksIDAuMDA5MTE5LCAwLjAwOTEzMywgMC4wMDkxNDcsIDAuMDA5MTUzLCAwLjAwOTE2MSIsIFwKLSAgICAgICAgICAiMC4wMDkyNTQsIDAuMDA5MTM4LCAwLjAwOTE2NSwgMC4wMDkxNzgsIDAuMDA5MTkyLCAwLjAwOTIwMSwgMC4wMDkyMDciLCBcCi0gICAgICAgICAgIjAuMDA5NDM4LCAwLjAwOTI0OCwgMC4wMDkyNjMsIDAuMDA5MjcyLCAwLjAwOTI4MywgMC4wMDkyODksIDAuMDA5Mjk2IiwgXAotICAgICAgICAgICIwLjAwOTU5NywgMC4wMDkzMzYsIDAuMDA5MzQzLCAwLjAwOTM1LCAwLjAwOTM1OCwgMC4wMDkzNjMsIDAuMDA5MzciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjgxMywgMC4wMDY4NDcsIDAuMDA2ODc4LCAwLjAwNjg4OSwgMC4wMDY5MDIsIDAuMDA2OTA3LCAwLjAwNjkxMiIsIFwKLSAgICAgICAgICAiMC4wMDY3ODMsIDAuMDA2ODI5LCAwLjAwNjg2MywgMC4wMDY4NzYsIDAuMDA2ODg4LCAwLjAwNjg5NSwgMC4wMDY4OTkiLCBcCi0gICAgICAgICAgIjAuMDA2Nzk4LCAwLjAwNjgyMSwgMC4wMDY4NTcsIDAuMDA2ODcxLCAwLjAwNjg4NCwgMC4wMDY4OTEsIDAuMDA2ODk3IiwgXAotICAgICAgICAgICIwLjAwNjg4MSwgMC4wMDY4NDksIDAuMDA2ODgyLCAwLjAwNjg5NiwgMC4wMDY5MSwgMC4wMDY5MTUsIDAuMDA2OTIyIiwgXAotICAgICAgICAgICIwLjAwNjk3OCwgMC4wMDY4OTgsIDAuMDA2OTI3LCAwLjAwNjkzOSwgMC4wMDY5NTQsIDAuMDA2OTYxLCAwLjAwNjk2NCIsIFwKLSAgICAgICAgICAiMC4wMDcxNDgsIDAuMDA2OTk2LCAwLjAwNzAxOCwgMC4wMDcwMjgsIDAuMDA3MDQsIDAuMDA3MDQ3LCAwLjAwNzA1NCIsIFwKLSAgICAgICAgICAiMC4wMDczMTgsIDAuMDA3MTA3LCAwLjAwNzExNiwgMC4wMDcxMjIsIDAuMDA3MTMyLCAwLjAwNzEzNywgMC4wMDcxNDMiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBBRERGSFhMICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKEFEREZIWEwpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC44ODUyMTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAzMTI5ODU7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAzMTEwMzM7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAzMTI5ODU7Ci0gIH0KLSAgcGluKEIpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMzA5ODgyOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMzA3NDEzOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMzA5ODgyOwotICB9Ci0gIHBpbihDSSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAyMzM5NTc7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAyMzIxNzk7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAyMzM5NTc7Ci0gIH0KLSAgcGluKENPKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMjcwODY1OwotICAgIGZ1bmN0aW9uIDogIigoKEEgQikrKEIgQ0kpKSsoQ0kgQSkpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODY0NTMsIDAuMDk0MzYsIDAuMTYzOTg4LCAwLjI3OTE1MywgMC4zOTQ0MzYsIDAuNjYzMDEsIDAuODE3Mjk3IiwgXAotICAgICAgICAgICIwLjA5MzI5OCwgMC4xMDEyMTgsIDAuMTcwODU1LCAwLjI4NjAxMSwgMC40MDExMzcsIDAuNjY5ODU3LCAwLjgyMzY0MiIsIFwKLSAgICAgICAgICAiMC4xMDA5ODUsIDAuMTA4OTA4LCAwLjE3ODQ5NiwgMC4yOTM2MjgsIDAuNDA4OTYxLCAwLjY3NzUyNSwgMC44MzEzNTgiLCBcCi0gICAgICAgICAgIjAuMTA3ODksIDAuMTE1ODMyLCAwLjE4NTQyNiwgMC4zMDA1NjIsIDAuNDE1ODEzLCAwLjY4NDQ1NiwgMC44Mzg1MjIiLCBcCi0gICAgICAgICAgIjAuMTE0MTMzLCAwLjEyMjA3NSwgMC4xOTE3OTEsIDAuMzA2ODE5LCAwLjQyMjA2OCwgMC42OTA3MzUsIDAuODQ1MDE1IiwgXAotICAgICAgICAgICIwLjEyMjU5LCAwLjEzMDU2MiwgMC4yMDAzMzQsIDAuMzE1OTE1LCAwLjQzMDkxMywgMC42OTk3MDcsIDAuODUzMDY0IiwgXAotICAgICAgICAgICIwLjEyOTM0NCwgMC4xMzczNDIsIDAuMjA3MTk0LCAwLjMyMjY1MywgMC40Mzc2MTcsIDAuNzA2MzY4LCAwLjg2MDIyMiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTI4MjMsIDAuMTA4NTI3LCAwLjI1MDc1MywgMC40OTI3MTQsIDAuNzM1ODAyLCAxLjMwMTU3LCAxLjYyNjk4IiwgXAotICAgICAgICAgICIwLjA5Mjg0OSwgMC4xMDgzNTgsIDAuMjUwNzQ1LCAwLjQ5MjcwNCwgMC43MzUzMzgsIDEuMzAxNSwgMS42MjcxNyIsIFwKLSAgICAgICAgICAiMC4wOTMwNDUsIDAuMTA4NDQxLCAwLjI1MDc5MywgMC40OTI3MTQsIDAuNzM2MDU2LCAxLjMwMTYsIDEuNjI3MTkiLCBcCi0gICAgICAgICAgIjAuMDkzNTM3LCAwLjEwODc5MSwgMC4yNTA4OTMsIDAuNDkyNzI2LCAwLjczNTcxMiwgMS4zMDE2OCwgMS42MjcyNSIsIFwKLSAgICAgICAgICAiMC4wOTM2MjMsIDAuMTA5MTg2LCAwLjI1MDk5MiwgMC40OTI3MjMsIDAuNzM1Njk4LCAxLjMwMTU3LCAxLjYyNzM2IiwgXAotICAgICAgICAgICIwLjA5NTE1NSwgMC4xMDk2NTksIDAuMjUxMzI5LCAwLjQ5MjYyMywgMC43MzYwNTYsIDEuMzAzNDgsIDEuNjI1NzciLCBcCi0gICAgICAgICAgIjAuMDk1NjgsIDAuMTExMTkzLCAwLjI1MTc0MywgMC40OTMyMTcsIDAuNzM1NDA4LCAxLjMwMzIsIDEuNjI3MjciKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg4MjUsIDAuMDk1OTA1LCAwLjE2MjUwNCwgMC4yNzI5NywgMC4zODMwMTcsIDAuNjM5MjEzLCAwLjc4NjQ2NCIsIFwKLSAgICAgICAgICAiMC4wOTQ5MTQsIDAuMTAyNTcxLCAwLjE2OTA2MSwgMC4yNzk1NiwgMC4zODkxMjksIDAuNjQ1NywgMC43OTIxOTUiLCBcCi0gICAgICAgICAgIjAuMTAxOTA1LCAwLjEwOTU1NCwgMC4xNzYwNDEsIDAuMjg2NTczLCAwLjM5NjEwOSwgMC42NTI2NjUsIDAuNzk4ODUxIiwgXAotICAgICAgICAgICIwLjEwODE4MiwgMC4xMTU4NTUsIDAuMTgyNTU2LCAwLjI5MjUyOCwgMC40MDI0NiwgMC42NTkxMTcsIDAuODA1ODA0IiwgXAotICAgICAgICAgICIwLjExMzU1OSwgMC4xMjEyNjIsIDAuMTg4MDA2LCAwLjI5ODM1NiwgMC40MDc5ODgsIDAuNjY0MjM1LCAwLjgxMDM3NiIsIFwKLSAgICAgICAgICAiMC4xMjA5OSwgMC4xMjg3MjUsIDAuMTk1NTY3LCAwLjMwNTUxNCwgMC40MTU1OTgsIDAuNjcyNjAyLCAwLjgxNzY2NyIsIFwKLSAgICAgICAgICAiMC4xMjY2NTIsIDAuMTM0Mzg0LCAwLjIwMTI1MywgMC4zMTE4NDksIDAuNDIxODYyLCAwLjY3NzM2NCwgMC44MjQwODUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg4MTg0LCAwLjEwMjg5NCwgMC4yMzYxLCAwLjQ2MDM4NiwgMC42ODU1MSwgMS4yMTEzLCAxLjUxMzQxIiwgXAotICAgICAgICAgICIwLjA4ODI3NSwgMC4xMDI4ODQsIDAuMjM2MDYxLCAwLjQ1OTQ2LCAwLjY4NTYwNiwgMS4yMTI2OSwgMS41MTI1NyIsIFwKLSAgICAgICAgICAiMC4wODgyNjIsIDAuMTAzMDA2LCAwLjIzNjAyNCwgMC40NTkyNjUsIDAuNjg1NjMxLCAxLjIxMjY2LCAxLjUxMTQ3IiwgXAotICAgICAgICAgICIwLjA4ODY1NSwgMC4xMDMyNDksIDAuMjM2MDk2LCAwLjQ1OTkwMSwgMC42ODU0MDgsIDEuMjEyNzEsIDEuNTEzODMiLCBcCi0gICAgICAgICAgIjAuMDg5NTc5LCAwLjEwNDA4NywgMC4yMzYyOCwgMC40NjA0MzYsIDAuNjg1Mzc5LCAxLjIxMTIyLCAxLjUxNDMyIiwgXAotICAgICAgICAgICIwLjA5MDQ1NSwgMC4xMDQ4MTksIDAuMjM1MzI3LCAwLjQ2MDM3OCwgMC42ODU1NDksIDEuMjEwNDYsIDEuNTE0MzMiLCBcCi0gICAgICAgICAgIjAuMDkwNzY4LCAwLjEwNTI0MywgMC4yMzY3ODIsIDAuNDYwMzExLCAwLjY4NTMyMSwgMS4yMTMyMiwgMS41MTQ5MyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODY1MjEsIDAuMDk0NDQzLCAwLjE2NDAzNiwgMC4yNzk2OTYsIDAuMzk0Nzc2LCAwLjY2MzcxOSwgMC44MTY5MjkiLCBcCi0gICAgICAgICAgIjAuMDkzODgxLCAwLjEwMTgwOCwgMC4xNzE0MjEsIDAuMjg2ODk4LCAwLjQwMjE0NCwgMC42NzExMDksIDAuODI1MjA3IiwgXAotICAgICAgICAgICIwLjEwMzUyNiwgMC4xMTE0NTIsIDAuMTgxMDgyLCAwLjI5NjUyMSwgMC40MTE2OTQsIDAuNjgwMzM4LCAwLjgzNDgyMyIsIFwKLSAgICAgICAgICAiMC4xMTI1NDEsIDAuMTIwNDY1LCAwLjE5MDA2OCwgMC4zMDU0MywgMC40MjA3NDcsIDAuNjg5MzIyLCAwLjg0Mzc0MSIsIFwKLSAgICAgICAgICAiMC4xMjA0NDgsIDAuMTI4NCwgMC4xOTgwMjEsIDAuMzEzNDQ4LCAwLjQyODY0MywgMC42OTcyNDcsIDAuODUxNzMzIiwgXAotICAgICAgICAgICIwLjEzMTI2OCwgMC4xMzkyMjYsIDAuMjA4OTc4LCAwLjMyNDQwMywgMC40Mzk1OCwgMC43MDgyMTUsIDAuODYxNzU5IiwgXAotICAgICAgICAgICIwLjEzOTQzOSwgMC4xNDc0MjksIDAuMjE3MjIzLCAwLjMzMjU4MiwgMC40NDc2MiwgMC43MTYzNjYsIDAuODY5OTg4Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5MzI2NywgMC4xMDkwNTEsIDAuMjUwODkyLCAwLjQ5MjE0NiwgMC43MzU1MDMsIDEuMzAyOTEsIDEuNjI1MzIiLCBcCi0gICAgICAgICAgIjAuMDkzMTU4LCAwLjEwODg3NywgMC4yNTA4MDIsIDAuNDkyODc1LCAwLjczNTQ0NywgMS4zMDMxLCAxLjYyNzI2IiwgXAotICAgICAgICAgICIwLjA5MzM4MiwgMC4xMDg5NDcsIDAuMjUwODIxLCAwLjQ5MjY2OCwgMC43MzYwNCwgMS4zMDE0OSwgMS42MjczMiIsIFwKLSAgICAgICAgICAiMC4wOTM4NjgsIDAuMTA5NDk1LCAwLjI1MDg2OSwgMC40OTIzMjEsIDAuNzM2MDg0LCAxLjMwMTYsIDEuNjI3MjEiLCBcCi0gICAgICAgICAgIjAuMDk0NDg1LCAwLjEwOTM4LCAwLjI1MTMwOCwgMC40OTI3OTcsIDAuNzM2MDg2LCAxLjMwMTQ4LCAxLjYyNzQzIiwgXAotICAgICAgICAgICIwLjA5NTc1MiwgMC4xMTAzODcsIDAuMjUxNzIsIDAuNDkzMTA3LCAwLjczNjA2OCwgMS4zMDMxNywgMS42Mjc0MiIsIFwKLSAgICAgICAgICAiMC4wOTYzNDEsIDAuMTExNTUsIDAuMjUyMjA5LCAwLjQ5MzI5NCwgMC43MzU2MDMsIDEuMzAzMjIsIDEuNjI3MDEiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg3Mjk2LCAwLjA5NDk1MiwgMC4xNjE2MDMsIDAuMjcxNTUxLCAwLjM4MTg4OSwgMC42Mzg0NDEsIDAuNzg0NzE2IiwgXAotICAgICAgICAgICIwLjA5NDU3MSwgMC4xMDIyMjcsIDAuMTY4ODU2LCAwLjI3OTQzOSwgMC4zODg5NDksIDAuNjQ2MTAzLCAwLjc5MTg2NSIsIFwKLSAgICAgICAgICAiMC4xMDQxMDYsIDAuMTExNzYyLCAwLjE3ODQyMSwgMC4yODkwNDIsIDAuMzk4MjAyLCAwLjY1NTU3OSwgMC44MDE1MzEiLCBcCi0gICAgICAgICAgIjAuMTEzMDQyLCAwLjEyMDY4NiwgMC4xODczMjgsIDAuMjk3OTM4LCAwLjQwNzEyMiwgMC42NjQ1MzIsIDAuODEwMjkzIiwgXAotICAgICAgICAgICIwLjEyMDc1OSwgMC4xMjg0MTMsIDAuMTk1MTQzLCAwLjMwNTAxMiwgMC40MTUyNTksIDAuNjcxNzc4LCAwLjgxODkzNyIsIFwKLSAgICAgICAgICAiMC4xMzExNzksIDAuMTM4ODg1LCAwLjIwNTc2NywgMC4zMTU3MTEsIDAuNDI1Mzc1LCAwLjY4MTk0MSwgMC44Mjc5MDYiLCBcCi0gICAgICAgICAgIjAuMTM4ODM3LCAwLjE0NjU5NywgMC4yMTM0ODksIDAuMzIzNzYsIDAuNDMzNjksIDAuNjg5NTYxLCAwLjgzNTgzNCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODg3NDEsIDAuMTAzMDkzLCAwLjIzNTk2MiwgMC40NjA1ODksIDAuNjg1NTMxLCAxLjIxMjczLCAxLjUxNDQ0IiwgXAotICAgICAgICAgICIwLjA4ODg2NSwgMC4xMDM3MywgMC4yMzY2NzQsIDAuNDYwNjI5LCAwLjY4NTM1NSwgMS4yMTI3MSwgMS41MTM5NyIsIFwKLSAgICAgICAgICAiMC4wODkxMjksIDAuMTAzMjU3LCAwLjIzNTk4NywgMC40NjA1NDIsIDAuNjg1MzY0LCAxLjIxMjgyLCAxLjUxNDQ1IiwgXAotICAgICAgICAgICIwLjA4OTg5NSwgMC4xMDM2ODQsIDAuMjM2Njc2LCAwLjQ1OTYwMywgMC42ODU3MTMsIDEuMjEyNjUsIDEuNTEzODkiLCBcCi0gICAgICAgICAgIjAuMDkwNDExLCAwLjEwNTUyLCAwLjIzNjgyMSwgMC40NjAwNzksIDAuNjg1NTM2LCAxLjIxMjc1LCAxLjUxNDIiLCBcCi0gICAgICAgICAgIjAuMDkxNzYyLCAwLjEwNjA2NSwgMC4yMzgxNCwgMC40NjA3NzIsIDAuNjg1ODkxLCAxLjIxMTg0LCAxLjUxNDM0IiwgXAotICAgICAgICAgICIwLjA5MjM3NSwgMC4xMDY2MjMsIDAuMjM3NDMzLCAwLjQ2MTMsIDAuNjg1MzMxLCAxLjIxMzIyLCAxLjUxMzk1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNJIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODI1NzEsIDAuMDkwNTExLCAwLjE2MDA1NiwgMC4yNzUyMzIsIDAuMzkwNDgxLCAwLjY1OTExLCAwLjgxMjgxMSIsIFwKLSAgICAgICAgICAiMC4wOTAyMTgsIDAuMDk4MTU3LCAwLjE2NzczNywgMC4yODI5MDksIDAuMzk4MTQ2LCAwLjY2NjcwNywgMC44MjA0MzIiLCBcCi0gICAgICAgICAgIjAuMDk5OTcsIDAuMTA3ODg5LCAwLjE3NzQ5NCwgMC4yOTI2MjQsIDAuNDA3ODU0LCAwLjY3NjUyMiwgMC44MzAyNjIiLCBcCi0gICAgICAgICAgIjAuMTA4Nzc1LCAwLjExNjcwOCwgMC4xODYyODIsIDAuMzAxNDg4LCAwLjQxNjY5NywgMC42ODUzNzYsIDAuODM4ODExIiwgXAotICAgICAgICAgICIwLjExNjIyOCwgMC4xMjQxNjQsIDAuMTkzNzMxLCAwLjMwOTAwMywgMC40MjM5ODksIDAuNjkzMTMyLCAwLjg0NzEwNCIsIFwKLSAgICAgICAgICAiMC4xMjYxNDEsIDAuMTM0MTA4LCAwLjIwMzgzNywgMC4zMTg4NDksIDAuNDMzOTY3LCAwLjcwMjcxMywgMC44NTcwODkiLCBcCi0gICAgICAgICAgIjAuMTMzOTgyLCAwLjE0MTk5NywgMC4yMTE2NTUsIDAuMzI2ODEyLCAwLjQ0MjA2OCwgMC43MTEwNDgsIDAuODY1MDU0Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5MzM0NywgMC4xMDg3ODgsIDAuMjUwODQ2LCAwLjQ5MTkzNCwgMC43MzU3MDIsIDEuMzAyNTYsIDEuNjI1NDkiLCBcCi0gICAgICAgICAgIjAuMDkzMjc0LCAwLjEwODY1OSwgMC4yNTA4MTcsIDAuNDkyMjMyLCAwLjczNTY3OCwgMS4zMDMxOCwgMS42Mjc3NiIsIFwKLSAgICAgICAgICAiMC4wOTM1MjEsIDAuMTA4OTE4LCAwLjI1MDg1OSwgMC40OTIyMzYsIDAuNzM1NzA0LCAxLjMwMTIyLCAxLjYyNzUxIiwgXAotICAgICAgICAgICIwLjA5MzQ3NCwgMC4xMDkzODYsIDAuMjUwOTM2LCAwLjQ5MjQwNCwgMC43MzU3NjYsIDEuMzAyMDcsIDEuNjI3MzUiLCBcCi0gICAgICAgICAgIjAuMDk0ODQ4LCAwLjEwOTk1MywgMC4yNTEyMDMsIDAuNDkyNDU4LCAwLjczNDQ4NCwgMS4zMDMzOCwgMS42Mjc1OSIsIFwKLSAgICAgICAgICAiMC4wOTYwNjksIDAuMTExMjU0LCAwLjI1MTQ5OCwgMC40OTI0NTMsIDAuNzM1MzM1LCAxLjMwMTU2LCAxLjYyNzg3IiwgXAotICAgICAgICAgICIwLjA5NzA2NywgMC4xMTI1NDMsIDAuMjUyMDQ3LCAwLjQ5MjcyMiwgMC43MzUzNSwgMS4zMDM0MywgMS42MjgwNSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODM2MDcsIDAuMDkxMzYyLCAwLjE1ODExNywgMC4yNjc5MjUsIDAuMzc4MTg4LCAwLjYzNDIwNiwgMC43ODAyOTgiLCBcCi0gICAgICAgICAgIjAuMDkxMDk4LCAwLjA5ODg0MiwgMC4xNjU3NDgsIDAuMjc1Njg4LCAwLjM4NTY1NywgMC42NDE4ODIsIDAuNzg3Njk0IiwgXAotICAgICAgICAgICIwLjEwMDU2NiwgMC4xMDgzMTgsIDAuMTc1MDQ0LCAwLjI4NTM3MiwgMC4zOTUxODUsIDAuNjUxODkyLCAwLjc5ODIwMyIsIFwKLSAgICAgICAgICAiMC4xMDkwMTYsIDAuMTE2Nzc3LCAwLjE4MzQ5NCwgMC4yOTM4MzQsIDAuNDAzNTYzLCAwLjY1OTM2LCAwLjgwNjA3IiwgXAotICAgICAgICAgICIwLjExNjMwMSwgMC4xMjQwMzIsIDAuMTkwNzg3LCAwLjMwMDk4OCwgMC40MTA5NTUsIDAuNjY3MjE0LCAwLjgxMzU2NSIsIFwKLSAgICAgICAgICAiMC4xMjU5NDcsIDAuMTMzNzk4LCAwLjIwMDc2MywgMC4zMTA5MDMsIDAuNDIwNjcyLCAwLjY3NzQwNiwgMC44MjM3NSIsIFwKLSAgICAgICAgICAiMC4xMzMwOTgsIDAuMTQwOTc4LCAwLjIwODEyOCwgMC4zMTgxNjUsIDAuNDI4MTU2LCAwLjY4NDQyNSwgMC44MzAxNTMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg4OTgxLCAwLjEwMzM5NywgMC4yMzY1NjksIDAuNDU3Mjk2LCAwLjY4NTMxOCwgMS4yMTIsIDEuNTE0MTgiLCBcCi0gICAgICAgICAgIjAuMDg5MzA1LCAwLjEwMzI5NSwgMC4yMzYwNDcsIDAuNDYwMjQxLCAwLjY4NTMsIDEuMjEzMjIsIDEuNTE0NTkiLCBcCi0gICAgICAgICAgIjAuMDg5MTc4LCAwLjEwMzk0NSwgMC4yMzYyOTgsIDAuNDYwMjQzLCAwLjY4NTA5OCwgMS4yMTE3LCAxLjUxNDY5IiwgXAotICAgICAgICAgICIwLjA5MDE3MSwgMC4xMDM3ODEsIDAuMjM2NDQ2LCAwLjQ2MDIxNiwgMC42ODUyOCwgMS4yMTI2MywgMS41MTM4MiIsIFwKLSAgICAgICAgICAiMC4wOTEyODYsIDAuMTA1NTA1LCAwLjIzNjUyNywgMC40NjAxNDcsIDAuNjg1MDM0LCAxLjIxMDgsIDEuNTE0NDMiLCBcCi0gICAgICAgICAgIjAuMDkxODgxLCAwLjEwNzA0OSwgMC4yMzYxNSwgMC40NTk2NTEsIDAuNjg0OTksIDEuMjEwNDEsIDEuNTExNTEiLCBcCi0gICAgICAgICAgIjAuMDkzMjk5LCAwLjEwNzMwOSwgMC4yMzcyMjIsIDAuNDYwMjQxLCAwLjY4MzQxNiwgMS4yMTAwOSwgMS41MTQ0MyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjMxNCwgMC4wMDIzMTcsIDAuMDAyMzI4LCAwLjAwMjMzMywgMC4wMDIzMzUsIDAuMDAyMzM3LCAwLjAwMjMzOCIsIFwKLSAgICAgICAgICAiMC4wMDIyNzUsIDAuMDAyMjc4LCAwLjAwMjI5MSwgMC4wMDIyOTYsIDAuMDAyMjk5LCAwLjAwMjMsIDAuMDAyMzAxIiwgXAotICAgICAgICAgICIwLjAwMjI3NSwgMC4wMDIyNzksIDAuMDAyMjkxLCAwLjAwMjI5NywgMC4wMDIyOTksIDAuMDAyMzAyLCAwLjAwMjMwMiIsIFwKLSAgICAgICAgICAiMC4wMDIzMDUsIDAuMDAyMzA3LCAwLjAwMjMxOCwgMC4wMDIzMjQsIDAuMDAyMzI3LCAwLjAwMjMyOSwgMC4wMDIzMyIsIFwKLSAgICAgICAgICAiMC4wMDIzMzQsIDAuMDAyMzM3LCAwLjAwMjM0NywgMC4wMDIzNTMsIDAuMDAyMzU2LCAwLjAwMjM1OSwgMC4wMDIzNiIsIFwKLSAgICAgICAgICAiMC4wMDI0MDYsIDAuMDAyNDA3LCAwLjAwMjQxNiwgMC4wMDI0MjMsIDAuMDAyNDI2LCAwLjAwMjQyOCwgMC4wMDI0MjkiLCBcCi0gICAgICAgICAgIjAuMDAyNDgyLCAwLjAwMjQ4MywgMC4wMDI0OSwgMC4wMDI0OTYsIDAuMDAyNDk5LCAwLjAwMjUwMSwgMC4wMDI1MDIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDUwMTgsIDAuMDA1MDIxLCAwLjAwNTAzMywgMC4wMDUwMzksIDAuMDA1MDQxLCAwLjAwNTA0NCwgMC4wMDUwNDMiLCBcCi0gICAgICAgICAgIjAuMDA0OTk3LCAwLjAwNSwgMC4wMDUwMTIsIDAuMDA1MDE4LCAwLjAwNTAyLCAwLjAwNTAyMiwgMC4wMDUwMjMiLCBcCi0gICAgICAgICAgIjAuMDA0OTk3LCAwLjAwNDk5OSwgMC4wMDUwMTMsIDAuMDA1MDE5LCAwLjAwNTAyMiwgMC4wMDUwMjQsIDAuMDA1MDI0IiwgXAotICAgICAgICAgICIwLjAwNTAxNiwgMC4wMDUwMTgsIDAuMDA1MDMxLCAwLjAwNTAzOCwgMC4wMDUwNCwgMC4wMDUwNDMsIDAuMDA1MDQzIiwgXAotICAgICAgICAgICIwLjAwNTA1MywgMC4wMDUwNTMsIDAuMDA1MDY1LCAwLjAwNTA3MiwgMC4wMDUwNzQsIDAuMDA1MDc2LCAwLjAwNTA3OCIsIFwKLSAgICAgICAgICAiMC4wMDUxMTQsIDAuMDA1MTIsIDAuMDA1MTMsIDAuMDA1MTM1LCAwLjAwNTEzNSwgMC4wMDUxMzgsIDAuMDA1MTM5IiwgXAotICAgICAgICAgICIwLjAwNTE4NiwgMC4wMDUxODgsIDAuMDA1MTk2LCAwLjAwNTIsIDAuMDA1MjA2LCAwLjAwNTIwNiwgMC4wMDUyMDciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI1NDksIDAuMDAyNTUyLCAwLjAwMjU2MiwgMC4wMDI1NjYsIDAuMDAyNTY3LCAwLjAwMjU3MiwgMC4wMDI1NyIsIFwKLSAgICAgICAgICAiMC4wMDI0OTcsIDAuMDAyNSwgMC4wMDI1MTEsIDAuMDAyNTE2LCAwLjAwMjUxOCwgMC4wMDI1MTksIDAuMDAyNTIiLCBcCi0gICAgICAgICAgIjAuMDAyNDk1LCAwLjAwMjQ5OCwgMC4wMDI1MDksIDAuMDAyNTE0LCAwLjAwMjUxNiwgMC4wMDI1MTgsIDAuMDAyNTE4IiwgXAotICAgICAgICAgICIwLjAwMjU0LCAwLjAwMjU0MiwgMC4wMDI1NSwgMC4wMDI1NTUsIDAuMDAyNTU2LCAwLjAwMjU1OCwgMC4wMDI1NTkiLCBcCi0gICAgICAgICAgIjAuMDAyNTkxLCAwLjAwMjU5MiwgMC4wMDI1OTgsIDAuMDAyNjAyLCAwLjAwMjYwNCwgMC4wMDI2MDYsIDAuMDAyNjA2IiwgXAotICAgICAgICAgICIwLjAwMjY0OSwgMC4wMDI2NTEsIDAuMDAyNjU5LCAwLjAwMjY2NCwgMC4wMDI2NjcsIDAuMDAyNjY5LCAwLjAwMjY2OSIsIFwKLSAgICAgICAgICAiMC4wMDI3NDEsIDAuMDAyNzQxLCAwLjAwMjc0NCwgMC4wMDI3NDgsIDAuMDAyNzUxLCAwLjAwMjc1MywgMC4wMDI3NTMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQ4NTIsIDAuMDA0ODU1LCAwLjAwNDg2NywgMC4wMDQ4NzMsIDAuMDA0ODc1LCAwLjAwNDg3NywgMC4wMDQ4NzciLCBcCi0gICAgICAgICAgIjAuMDA0ODEzLCAwLjAwNDgxNiwgMC4wMDQ4MjgsIDAuMDA0ODM0LCAwLjAwNDgzNiwgMC4wMDQ4MzksIDAuMDA0ODQiLCBcCi0gICAgICAgICAgIjAuMDA0Nzc5LCAwLjAwNDc4MiwgMC4wMDQ3OTUsIDAuMDA0ODAyLCAwLjAwNDgwNCwgMC4wMDQ4MDcsIDAuMDA0ODA2IiwgXAotICAgICAgICAgICIwLjAwNDc5OSwgMC4wMDQ4MDEsIDAuMDA0ODExLCAwLjAwNDgxNiwgMC4wMDQ4MTgsIDAuMDA0ODIsIDAuMDA0ODIxIiwgXAotICAgICAgICAgICIwLjAwNDg0NiwgMC4wMDQ4NDgsIDAuMDA0ODU2LCAwLjAwNDg2MiwgMC4wMDQ4NjQsIDAuMDA0ODY2LCAwLjAwNDg2NiIsIFwKLSAgICAgICAgICAiMC4wMDQ5MTYsIDAuMDA0OTE3LCAwLjAwNDkyNiwgMC4wMDQ5MjgsIDAuMDA0OTMsIDAuMDA0OTMyLCAwLjAwNDkzMyIsIFwKLSAgICAgICAgICAiMC4wMDUwMTksIDAuMDA1MDE3LCAwLjAwNTAyMiwgMC4wMDUwMjgsIDAuMDA1MDMsIDAuMDA1MDMxLCAwLjAwNTAzMiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNJIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI1OTcsIDAuMDAyNTk5LCAwLjAwMjYxMSwgMC4wMDI2MTYsIDAuMDAyNjE4LCAwLjAwMjYxOSwgMC4wMDI2MiIsIFwKLSAgICAgICAgICAiMC4wMDI1ODEsIDAuMDAyNTgzLCAwLjAwMjU5NiwgMC4wMDI2MDEsIDAuMDAyNjAzLCAwLjAwMjYwNSwgMC4wMDI2MDYiLCBcCi0gICAgICAgICAgIjAuMDAyNTgxLCAwLjAwMjU4NCwgMC4wMDI1OTYsIDAuMDAyNjAyLCAwLjAwMjYwNSwgMC4wMDI2MDcsIDAuMDAyNjA3IiwgXAotICAgICAgICAgICIwLjAwMjYyMywgMC4wMDI2MjUsIDAuMDAyNjM2LCAwLjAwMjY0MiwgMC4wMDI2NDQsIDAuMDAyNjQ2LCAwLjAwMjY0NyIsIFwKLSAgICAgICAgICAiMC4wMDI2NjEsIDAuMDAyNjYyLCAwLjAwMjY3MywgMC4wMDI2NzksIDAuMDAyNjgxLCAwLjAwMjY4MywgMC4wMDI2ODQiLCBcCi0gICAgICAgICAgIjAuMDAyNzQ3LCAwLjAwMjc0OCwgMC4wMDI3NTYsIDAuMDAyNzYyLCAwLjAwMjc2NCwgMC4wMDI3NjYsIDAuMDAyNzY4IiwgXAotICAgICAgICAgICIwLjAwMjg0NywgMC4wMDI4NDcsIDAuMDAyODUxLCAwLjAwMjg1NiwgMC4wMDI4NTgsIDAuMDAyODYxLCAwLjAwMjg2MiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDQ2OSwgMC4wMDQ0NzIsIDAuMDA0NDgzLCAwLjAwNDQ4OSwgMC4wMDQ0OTEsIDAuMDA0NDkzLCAwLjAwNDQ5MyIsIFwKLSAgICAgICAgICAiMC4wMDQ0NzEsIDAuMDA0NDc0LCAwLjAwNDQ4NiwgMC4wMDQ0OTIsIDAuMDA0NDk0LCAwLjAwNDQ5NiwgMC4wMDQ0OTciLCBcCi0gICAgICAgICAgIjAuMDA0NDk4LCAwLjAwNDUsIDAuMDA0NTEzLCAwLjAwNDUxOSwgMC4wMDQ1MjIsIDAuMDA0NTI1LCAwLjAwNDUyNSIsIFwKLSAgICAgICAgICAiMC4wMDQ1NDcsIDAuMDA0NTQ5LCAwLjAwNDU2LCAwLjAwNDU2NiwgMC4wMDQ1NjksIDAuMDA0NTcyLCAwLjAwNDU3MyIsIFwKLSAgICAgICAgICAiMC4wMDQ1OTksIDAuMDA0NiwgMC4wMDQ2MSwgMC4wMDQ2MTUsIDAuMDA0NjE4LCAwLjAwNDYyMSwgMC4wMDQ2MjEiLCBcCi0gICAgICAgICAgIjAuMDA0NjkxLCAwLjAwNDY5MiwgMC4wMDQ2OTksIDAuMDA0NzA0LCAwLjAwNDcwNiwgMC4wMDQ3MDgsIDAuMDA0NzA5IiwgXAotICAgICAgICAgICIwLjAwNDc4NiwgMC4wMDQ3ODYsIDAuMDA0NzksIDAuMDA0Nzk0LCAwLjAwNDc5NiwgMC4wMDQ3OTksIDAuMDA0Nzk5Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMjczOTk4OwotICAgIGZ1bmN0aW9uIDogIigoQV5CKV5DSSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4OTE5NywgMC4wOTcwMjcsIDAuMTY2NTM4LCAwLjI4MTkyOCwgMC4zOTcyNzIsIDAuNjY2MDg4LCAwLjgxOTc1MSIsIFwKLSAgICAgICAgICAiMC4wOTQyMjQsIDAuMTAyMDU4LCAwLjE3MTU3MiwgMC4yODY5NzksIDAuNDAyMjYyLCAwLjY3MTEyLCAwLjgyNDc1MSIsIFwKLSAgICAgICAgICAiMC4wOTk4NjcsIDAuMTA3NjkyLCAwLjE3NzIxNCwgMC4yOTI2MTksIDAuNDA3OTA1LCAwLjY3Njc0OCwgMC44MzAzOTYiLCBcCi0gICAgICAgICAgIjAuMTA1MjE4LCAwLjExMzA4OSwgMC4xODI2MiwgMC4yOTgwMDgsIDAuNDEzMjk3LCAwLjY4MjEzLCAwLjgzNTc3NyIsIFwKLSAgICAgICAgICAiMC4xMTAxMzUsIDAuMTE3OTkxLCAwLjE4NzUzOSwgMC4zMDI5MjIsIDAuNDE4MjMsIDAuNjg3MDM5LCAwLjg0MDY1NSIsIFwKLSAgICAgICAgICAiMC4xMTcxMDIsIDAuMTI0OTg0LCAwLjE5NDU1OSwgMC4zMDk5NDUsIDAuNDI1MjY5LCAwLjY5NDE5MSwgMC44NDc2MyIsIFwKLSAgICAgICAgICAiMC4xMjI2MSwgMC4xMzA0OSwgMC4yMDAxMTMsIDAuMzE1NTI5LCAwLjQzMDgxMywgMC42OTk2MjgsIDAuODUzMjY3Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5MTQ0NywgMC4xMDcwNSwgMC4yNTA1MTksIDAuNDkyODEyLCAwLjczNTYyNSwgMS4zMDA5NiwgMS42MjY1IiwgXAotICAgICAgICAgICIwLjA5MTQ2MSwgMC4xMDcwMTEsIDAuMjUwNTQ2LCAwLjQ5MjMxMSwgMC43MzU1MzYsIDEuMzAwODksIDEuNjI0MTIiLCBcCi0gICAgICAgICAgIjAuMDkxNTMyLCAwLjEwNzExMywgMC4yNTA1NSwgMC40OTIyNzQsIDAuNzM1NTE4LCAxLjMwMTI0LCAxLjYyNDE5IiwgXAotICAgICAgICAgICIwLjA5MTgxNiwgMC4xMDczOTEsIDAuMjUwNjQzLCAwLjQ5MjI1NSwgMC43MzU0NTcsIDEuMzAxMDYsIDEuNjI1MjgiLCBcCi0gICAgICAgICAgIjAuMDkyMjc1LCAwLjEwNzc5NiwgMC4yNTA3NjUsIDAuNDkyMTkxLCAwLjczNTQ2NSwgMS4zMDIyNCwgMS42MjQ0MyIsIFwKLSAgICAgICAgICAiMC4wOTI4NTMsIDAuMTA4MjIyLCAwLjI1MDg0NywgMC40OTIyODMsIDAuNzM1NDk2LCAxLjMwMTQ0LCAxLjYyNTI1IiwgXAotICAgICAgICAgICIwLjA5MzMzNSwgMC4xMDg3OTMsIDAuMjUxMDIzLCAwLjQ5Mjg5MSwgMC43MzU0NzcsIDEuMzAxMjksIDEuNjI2MTIiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDkxMjI0LCAwLjA5ODgyMywgMC4xNjUzNTEsIDAuMjc1MzYsIDAuMzg1MjU3LCAwLjY0MTU0MSwgMC43ODc5NTkiLCBcCi0gICAgICAgICAgIjAuMDk2MzU0LCAwLjEwMzk1NCwgMC4xNzA0NzcsIDAuMjgwNDk2LCAwLjM5MDQxMiwgMC42NDY3MTQsIDAuNzkzMDk1IiwgXAotICAgICAgICAgICIwLjEwMTM2OCwgMC4xMDg5NzQsIDAuMTc1NTExLCAwLjI4NTUzMywgMC4zOTU0NTcsIDAuNjUxNzM4LCAwLjc5ODEzMyIsIFwKLSAgICAgICAgICAiMC4xMDU3OTUsIDAuMTEzMzkyLCAwLjE3OTk2NywgMC4yODk5NzIsIDAuMzk5ODcxLCAwLjY1NjE1NywgMC44MDI1NzYiLCBcCi0gICAgICAgICAgIjAuMTA5NzEzLCAwLjExNzMyNiwgMC4xODM5NTYsIDAuMjk0MDA3LCAwLjQwMzg3LCAwLjY2MDE2LCAwLjgwNjU3IiwgXAotICAgICAgICAgICIwLjExNTA5MywgMC4xMjI3OTQsIDAuMTg5NDcxLCAwLjI5OTQ5NCwgMC40MDk0NDcsIDAuNjY1Njk2LCAwLjgxMjE0MiIsIFwKLSAgICAgICAgICAiMC4xMTkyNTgsIDAuMTI2OTI2LCAwLjE5MzY5NCwgMC4zMDM3NjgsIDAuNDEzNjM0LCAwLjY2OTk0NywgMC44MTYzNzciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg2OTIxLCAwLjEwMTI4MiwgMC4yMzM4NiwgMC40NTg0NjksIDAuNjgzOTgxLCAxLjIxMDg3LCAxLjUxMTk4IiwgXAotICAgICAgICAgICIwLjA4Njg4OCwgMC4xMDEzMTIsIDAuMjMzOTEzLCAwLjQ1ODQ2LCAwLjY4MzIzLCAxLjIxMDAzLCAxLjUxMTk4IiwgXAotICAgICAgICAgICIwLjA4Njk0NSwgMC4xMDEzNzEsIDAuMjMzOTMsIDAuNDU4NDU5LCAwLjY4Mjc4NiwgMS4yMTA5NCwgMS41MTE5NCIsIFwKLSAgICAgICAgICAiMC4wODcyNzgsIDAuMTAxNjUzLCAwLjIzMzk5LCAwLjQ1ODQ5NiwgMC42ODM4OTQsIDEuMjEwODcsIDEuNTExMDkiLCBcCi0gICAgICAgICAgIjAuMDg3Njg2LCAwLjEwMjA4MSwgMC4yMzM5NiwgMC40NTg2ODYsIDAuNjg0MDE1LCAxLjIxMDg5LCAxLjUxMTg5IiwgXAotICAgICAgICAgICIwLjA4ODQ2OCwgMC4xMDI3MTEsIDAuMjM0NTI5LCAwLjQ1ODcyMywgMC42ODI3NzEsIDEuMjEwODEsIDEuNTExMiIsIFwKLSAgICAgICAgICAiMC4wODkyNjYsIDAuMTAzNjI5LCAwLjIzNDg0OCwgMC40NTc5NjQsIDAuNjgzMzg1LCAxLjIxMTA1LCAxLjUxMDg4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExMTA4MywgMC4xMTg3ODgsIDAuMTg3OTgyLCAwLjMwMzI0MiwgMC40MTgzNDIsIDAuNjg3MDgxLCAwLjg0MDYzIiwgXAotICAgICAgICAgICIwLjExNzcyMSwgMC4xMjU0MzIsIDAuMTk0NjE3LCAwLjMwOTg2NywgMC40MjQ5ODIsIDAuNjkzNzI0LCAwLjg0NzI1MiIsIFwKLSAgICAgICAgICAiMC4xMjQ2MzcsIDAuMTMyMzQsIDAuMjAxNDkzLCAwLjMxNjc4NCwgMC40MzE4OTMsIDAuNzAwNjQyLCAwLjg1NDE4MiIsIFwKLSAgICAgICAgICAiMC4xMzA4MjcsIDAuMTM4NTM2LCAwLjIwNzczNiwgMC4zMjI4NjUsIDAuNDM4MDkxLCAwLjcwNjg0OCwgMC44NjAzOTciLCBcCi0gICAgICAgICAgIjAuMTM1OTg0LCAwLjE0MzY5OSwgMC4yMTI4NiwgMC4zMjgxMywgMC40NDMyMzEsIDAuNzExOTY5LCAwLjg2NTUyMiIsIFwKLSAgICAgICAgICAiMC4xNDI5NjUsIDAuMTUwNjc0LCAwLjIxOTgzMiwgMC4zMzUwMjMsIDAuNDUwMTk0LCAwLjcxODk5NywgMC44NzI0MjgiLCBcCi0gICAgICAgICAgIjAuMTQ4MTg5LCAwLjE1NTg4MSwgMC4yMjUwMTgsIDAuMzQwMjUsIDAuNDU1Mzg5LCAwLjcyNDA4OCwgMC44Nzc2NCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODkyNjgsIDAuMTA0OTk5LCAwLjI0OTAxMywgMC40OTE1MjgsIDAuNzM0NTYyLCAxLjMwMTMsIDEuNjIyOSIsIFwKLSAgICAgICAgICAiMC4wODkyNzksIDAuMTA1MDAyLCAwLjI0OTAxMywgMC40OTA5NjUsIDAuNzM0NTU3LCAxLjI5OTk4LCAxLjYyNTUxIiwgXAotICAgICAgICAgICIwLjA4OTI3OSwgMC4xMDUwMDMsIDAuMjQ5MDE1LCAwLjQ5MDk3NiwgMC43MzQ1MiwgMS4yOTk0NSwgMS42MjUyNCIsIFwKLSAgICAgICAgICAiMC4wODkzLCAwLjEwNTAyLCAwLjI0OTAxLCAwLjQ5MTAzNCwgMC43MzQ1NTQsIDEuMzAxNDksIDEuNjIzIiwgXAotICAgICAgICAgICIwLjA4OTMyMywgMC4xMDUwNSwgMC4yNDkwMjUsIDAuNDkxNTQ4LCAwLjczNDU0LCAxLjMwMTI5LCAxLjYyMzU2IiwgXAotICAgICAgICAgICIwLjA4OTMyOSwgMC4xMDUwMDQsIDAuMjQ4ODczLCAwLjQ5MTQ5OCwgMC43MzQzNzgsIDEuMzAxNDQsIDEuNjIzODQiLCBcCi0gICAgICAgICAgIjAuMDg5NDY1LCAwLjEwNTA2OSwgMC4yNDg4MDEsIDAuNDkxNTE2LCAwLjczNDM4MiwgMS4zMDAxMiwgMS42MjUxNCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDgwMjcsIDAuMTE1NTAxLCAwLjE4MTU5MiwgMC4yOTEzNzEsIDAuNDAxMjUyLCAwLjY1NzM5NCwgMC44MDM3MjEiLCBcCi0gICAgICAgICAgIjAuMTE0MzYsIDAuMTIxODM2LCAwLjE4NzkzMywgMC4yOTc3MTEsIDAuNDA3NTQsIDAuNjYzNzQzLCAwLjgxMDA3NSIsIFwKLSAgICAgICAgICAiMC4xMjE5ODQsIDAuMTI5NDY1LCAwLjE5NTU1NSwgMC4zMDUzNDEsIDAuNDE1MTYxLCAwLjY3MTM5NSwgMC44MTc2OTkiLCBcCi0gICAgICAgICAgIjAuMTI5MDM2LCAwLjEzNjUxNSwgMC4yMDI2MSwgMC4zMTIzODYsIDAuNDIyMjYsIDAuNjc4NDM3LCAwLjgyNDc1NCIsIFwKLSAgICAgICAgICAiMC4xMzUyODIsIDAuMTQyNzcxLCAwLjIwODg0NSwgMC4zMTg2MjUsIDAuNDI4NDM3LCAwLjY4NDY3NSwgMC44MzEwMTkiLCBcCi0gICAgICAgICAgIjAuMTQzODQsIDAuMTUxMzA0LCAwLjIxNzQsIDAuMzI3MjIyLCAwLjQzNjk4NywgMC42OTMxMjIsIDAuODM5NTg0IiwgXAotICAgICAgICAgICIwLjE1MDM1NywgMC4xNTc4MywgMC4yMjM4ODUsIDAuMzMzNjgxLCAwLjQ0MzQ2LCAwLjY5OTU5OSwgMC44NDU5NjEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg1MTExLCAwLjA5OTU0OCwgMC4yMzIzMjMsIDAuNDU3MTE0LCAwLjY4Mjk5NSwgMS4yMDg0MiwgMS41MTE0MSIsIFwKLSAgICAgICAgICAiMC4wODUxMDUsIDAuMDk5NTQ2LCAwLjIzMjMyMywgMC40NTcwOTYsIDAuNjgyNTkxLCAxLjIwODQ4LCAxLjUxMTMxIiwgXAotICAgICAgICAgICIwLjA4NTEwNSwgMC4wOTk1NDgsIDAuMjMyMzA2LCAwLjQ1NzEwMiwgMC42ODI5NjMsIDEuMjA4NTcsIDEuNTExMjUiLCBcCi0gICAgICAgICAgIjAuMDg1MTMyLCAwLjA5OTU3MSwgMC4yMzIzNTgsIDAuNDU3MDk0LCAwLjY4Mjc3NiwgMS4yMDg1OSwgMS41MTEyNiIsIFwKLSAgICAgICAgICAiMC4wODUxMjYsIDAuMDk5NTc0LCAwLjIzMjMyMSwgMC40NTcwNDUsIDAuNjgyNjg5LCAxLjIwODQ2LCAxLjUxMTMxIiwgXAotICAgICAgICAgICIwLjA4NTE1LCAwLjA5OTU4LCAwLjIzMjMzNCwgMC40NTY5NzMsIDAuNjgyNzg2LCAxLjIwOTg4LCAxLjUwOTE4IiwgXAotICAgICAgICAgICIwLjA4NTI0MiwgMC4wOTk1MzgsIDAuMjMyMzk0LCAwLjQ1NzExNCwgMC42ODIwMTcsIDEuMjA5NjMsIDEuNTEwNjkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg3Njg0LCAwLjA5NTUzMSwgMC4xNjUwNjMsIDAuMjgwNDc0LCAwLjM5NTc2OSwgMC42NjQ2MjYsIDAuODE4MjczIiwgXAotICAgICAgICAgICIwLjA5Mzc2NywgMC4xMDE2MTEsIDAuMTcxMTUzLCAwLjI4NjU2NiwgMC40MDE4NjEsIDAuNjcwNzAyLCAwLjgyNDM4OSIsIFwKLSAgICAgICAgICAiMC4xMDE2MDYsIDAuMTA5NDMzLCAwLjE3ODk3MiwgMC4yOTQzNzQsIDAuNDA5NjgzLCAwLjY3ODU3MywgMC44MzIxNDEiLCBcCi0gICAgICAgICAgIjAuMTA4NzcyLCAwLjExNjYxNSwgMC4xODYxMzIsIDAuMzAxNTI2LCAwLjQxNjgyMSwgMC42ODU2NDQsIDAuODM5Mjc0IiwgXAotICAgICAgICAgICIwLjExNTQ3MywgMC4xMjMzNTgsIDAuMTkyOTE2LCAwLjMwODMxNSwgMC40MjM2MzksIDAuNjkyNDExLCAwLjg0NjA2NiIsIFwKLSAgICAgICAgICAiMC4xMjQ0OTMsIDAuMTMyMzU3LCAwLjIwMTk3OSwgMC4zMTcyOTEsIDAuNDMyNTUyLCAwLjcwMTMzMSwgMC44NTQ5MjYiLCBcCi0gICAgICAgICAgIjAuMTMxNzQ0LCAwLjEzOTY0MywgMC4yMDkzLCAwLjMyNDY5NywgMC40Mzk5NjQsIDAuNzA4OTA3LCAwLjg2MjM3OCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTE0NzEsIDAuMTA3MDk5LCAwLjI1MDU0MSwgMC40OTIyNDYsIDAuNzM1NTM2LCAxLjMwMjM2LCAxLjYyNDA0IiwgXAotICAgICAgICAgICIwLjA5MTQzMywgMC4xMDcwMDMsIDAuMjUwNTI1LCAwLjQ5Mjc1NCwgMC43MzQ3MTQsIDEuMzAxMDQsIDEuNjIzNjYiLCBcCi0gICAgICAgICAgIjAuMDkxNDk0LCAwLjEwNzA2MywgMC4yNTA1MywgMC40OTI3MzksIDAuNzM1NDY4LCAxLjMwMjMyLCAxLjYyNTMyIiwgXAotICAgICAgICAgICIwLjA5MTkzMywgMC4xMDc0NzcsIDAuMjUwNDczLCAwLjQ5MjIxNiwgMC43MzU0MjYsIDEuMzAxMjIsIDEuNjIzNDQiLCBcCi0gICAgICAgICAgIjAuMDkyMTk5LCAwLjEwNzcxNywgMC4yNTA3NSwgMC40OTI3MywgMC43MzU0NDksIDEuMzAxMDMsIDEuNjI1MTQiLCBcCi0gICAgICAgICAgIjAuMDkzMDc4LCAwLjEwODQyNywgMC4yNTEwNTIsIDAuNDkyODQ1LCAwLjczNTQ2MywgMS4zMDA4NSwgMS42MjUwMiIsIFwKLSAgICAgICAgICAiMC4wOTM2ODcsIDAuMTA4OTc3LCAwLjI1MTExMywgMC40OTI0NTEsIDAuNzM0OTY2LCAxLjMwMjIxLCAxLjYyNjA5Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4OTAxLCAwLjA5NjYwNSwgMC4xNjMxNjUsIDAuMjczMTg3LCAwLjM4MzEwNywgMC42MzkzNzksIDAuNzg1Nzk5IiwgXAotICAgICAgICAgICIwLjA5NDk1LCAwLjEwMjU1MywgMC4xNjkxLCAwLjI3OTExNywgMC4zODkwNTUsIDAuNjQ1MzU4LCAwLjc5MTc3NiIsIFwKLSAgICAgICAgICAiMC4xMDIwNjksIDAuMTA5NjcyLCAwLjE3NjIzLCAwLjI4NjI2MSwgMC4zOTYxODgsIDAuNjUyNTMzLCAwLjc5ODg4MiIsIFwKLSAgICAgICAgICAiMC4xMDg1OTcsIDAuMTE2MjExLCAwLjE4Mjc3NywgMC4yOTI4MjUsIDAuNDAyNzEzLCAwLjY1ODk4NiwgMC44MDU0MDgiLCBcCi0gICAgICAgICAgIjAuMTE0NDgyLCAwLjEyMjEwNCwgMC4xODg3MjUsIDAuMjk4NzU0LCAwLjQwODY1MiwgMC42NjQ5NywgMC44MTEzNTUiLCBcCi0gICAgICAgICAgIjAuMTIyNDgyLCAwLjEzMDE2OCwgMC4xOTY5NDIsIDAuMzA2OTU3LCAwLjQxNjg5MiwgMC42NzMxNjksIDAuODE5NTU5IiwgXAotICAgICAgICAgICIwLjEyODY1MywgMC4xMzYzNjcsIDAuMjAzMjM4LCAwLjMxMzI3NSwgMC40MjMxODgsIDAuNjc5NDcsIDAuODI1OTI3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4NjkwNiwgMC4xMDEzMDMsIDAuMjMzNTQxLCAwLjQ1ODQ2NywgMC42ODQwMzgsIDEuMjEwODcsIDEuNTExOTciLCBcCi0gICAgICAgICAgIjAuMDg2ODYzLCAwLjEwMTI5NiwgMC4yMzM5MDIsIDAuNDU4MzkxLCAwLjY4MzM3OCwgMS4yMDk3OSwgMS41MTIxOCIsIFwKLSAgICAgICAgICAiMC4wODY5NTcsIDAuMTAxMzc4LCAwLjIzMzkzMiwgMC40NTg0NjEsIDAuNjgzMzU3LCAxLjIxMTE2LCAxLjUxMTM4IiwgXAotICAgICAgICAgICIwLjA4NzQyNCwgMC4xMDE3MTYsIDAuMjMzODExLCAwLjQ1ODU5NywgMC42ODMyMTEsIDEuMjEwODQsIDEuNTExODciLCBcCi0gICAgICAgICAgIjAuMDg3OTAxLCAwLjEwMjIwMywgMC4yMzM5MDEsIDAuNDU4NjA1LCAwLjY4MzI0LCAxLjIwODcsIDEuNTExNzkiLCBcCi0gICAgICAgICAgIjAuMDg4NTU4LCAwLjEwMjg0MiwgMC4yMzQzOSwgMC40NTgyNDMsIDAuNjg0MTc5LCAxLjIxMDgsIDEuNTExNzkiLCBcCi0gICAgICAgICAgIjAuMDg5NDE3LCAwLjEwMzU2LCAwLjIzNDgwNywgMC40NTg0MDUsIDAuNjgzNDIxLCAxLjIxMDgsIDEuNTEyMDIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTExOTQsIDAuMTE5NjY2LCAwLjE4ODkxMSwgMC4zMDQyMjYsIDAuNDE5NDMsIDAuNjg4MTc4LCAwLjg0MTcwNiIsIFwKLSAgICAgICAgICAiMC4xMTgyMjgsIDAuMTI1OTYsIDAuMTk1MjU5LCAwLjMxMDUyMiwgMC40MjU3NDEsIDAuNjk0NDcxLCAwLjg0ODA3NCIsIFwKLSAgICAgICAgICAiMC4xMjQ3NDYsIDAuMTMyNDg1LCAwLjIwMTc2NCwgMC4zMTcwNCwgMC40MzIyNTUsIDAuNzAwOTkyLCAwLjg1NDU0IiwgXAotICAgICAgICAgICIwLjEzMzM5MywgMC4xNDExMDgsIDAuMjEwMjQzLCAwLjMyNTQ2NiwgMC40NDA1NDIsIDAuNzA5MzQ4LCAwLjg2MjgwNiIsIFwKLSAgICAgICAgICAiMC4xNDA3NTksIDAuMTQ4NDgsIDAuMjE3NTc5LCAwLjMzMjczMSwgMC40NDc4ODMsIDAuNzE2NTY2LCAwLjg3MDI3NiIsIFwKLSAgICAgICAgICAiMC4xNTA3OTksIDAuMTU4NTA4LCAwLjIyNzYxNCwgMC4zNDI3NjEsIDAuNDU3OTE2LCAwLjcyNjYxNCwgMC44ODAxNDEiLCBcCi0gICAgICAgICAgIjAuMTU4MjE0LCAwLjE2NTg4NiwgMC4yMzQ5NzUsIDAuMzUwMTIzLCAwLjQ2NTI1NiwgMC43MzM5MjEsIDAuODg3NDUzIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4OTIzMiwgMC4xMDQ5NjYsIDAuMjQ4OTg1LCAwLjQ5MTc5MywgMC43MzQ2NTgsIDEuMzAxMzIsIDEuNjI0MDEiLCBcCi0gICAgICAgICAgIjAuMDg5MjM5LCAwLjEwNDk3MiwgMC4yNDkwNTcsIDAuNDkxODAxLCAwLjczNDY3LCAxLjMwMDM3LCAxLjYyMzI1IiwgXAotICAgICAgICAgICIwLjA4OTIzNCwgMC4xMDQ5NTksIDAuMjQ5MDAzLCAwLjQ5MTc5NywgMC43MzQ2NjksIDEuMzAxNCwgMS42MjQwNCIsIFwKLSAgICAgICAgICAiMC4wODkyNTQsIDAuMTA0OTUyLCAwLjI0OTA1NywgMC40OTEwMDcsIDAuNzM0MDQxLCAxLjMwMTUyLCAxLjYyMzkzIiwgXAotICAgICAgICAgICIwLjA4OTI2NCwgMC4xMDUwNDQsIDAuMjQ5MDUxLCAwLjQ5MTE5NywgMC43MzQ3MDYsIDEuMzAxMjYsIDEuNjIzOTgiLCBcCi0gICAgICAgICAgIjAuMDg5MzIzLCAwLjEwNTA0MSwgMC4yNDg4OTYsIDAuNDkxODQ5LCAwLjczMzgzNCwgMS4zMDE1NywgMS42MjQxNSIsIFwKLSAgICAgICAgICAiMC4wODkzNDgsIDAuMTA1MDAyLCAwLjI0OTAxMiwgMC40OTE1MzksIDAuNzM0Mzg2LCAxLjMwMTMsIDEuNjI1MjQiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTA3NzYyLCAwLjExNTIyMywgMC4xODEzMSwgMC4yOTExMywgMC40MDA5MjQsIDAuNjU3MDA5LCAwLjgwMzUzIiwgXAotICAgICAgICAgICIwLjExNTExMSwgMC4xMjI1ODIsIDAuMTg4NjY3LCAwLjI5ODQ0NywgMC40MDgyODMsIDAuNjY0NDEsIDAuODEwODQiLCBcCi0gICAgICAgICAgIjAuMTI0NzIxLCAwLjEzMjE4OSwgMC4xOTgyNzcsIDAuMzA4MDUsIDAuNDE3ODQ5LCAwLjY3NDA3OCwgMC44MjA0MjUiLCBcCi0gICAgICAgICAgIjAuMTMzNzE4LCAwLjE0MTE5LCAwLjIwNzI3NCwgMC4zMTcwNzUsIDAuNDI2ODgzLCAwLjY4MzA4NCwgMC44MjkzNTUiLCBcCi0gICAgICAgICAgIjAuMTQxMjc2LCAwLjE0ODc0NiwgMC4yMTQ4MTQsIDAuMzI0NTgzLCAwLjQzNDQsIDAuNjkwNTQ4LCAwLjgzNjk0MiIsIFwKLSAgICAgICAgICAiMC4xNTE3MjUsIDAuMTU5MTgyLCAwLjIyNTI2LCAwLjMzNTAzMiwgMC40NDQ4NDQsIDAuNzAwOTc0LCAwLjg0NzQzOSIsIFwKLSAgICAgICAgICAiMC4xNTk2MjgsIDAuMTY3MTA2LCAwLjIzMzA0MSwgMC4zNDI4MSwgMC40NTI1OTIsIDAuNzA4NzUzLCAwLjg1NTEwNSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODQ4NzgsIDAuMDk5NDMsIDAuMjMyMzE3LCAwLjQ1NjY2OSwgMC42ODMwNjMsIDEuMjEwMDYsIDEuNTA5NjciLCBcCi0gICAgICAgICAgIjAuMDg0OTU3LCAwLjA5OTQxOCwgMC4yMzIyOTgsIDAuNDU3MjM1LCAwLjY4MzAzNSwgMS4yMTAwMywgMS41MTE0OCIsIFwKLSAgICAgICAgICAiMC4wODQ5NSwgMC4wOTk0MTksIDAuMjMyMjc3LCAwLjQ1NzA1OCwgMC42ODMwMDgsIDEuMjA4NTksIDEuNTExMjciLCBcCi0gICAgICAgICAgIjAuMDg0OTU1LCAwLjA5OTQyMSwgMC4yMzIyODEsIDAuNDU2NzQ0LCAwLjY4Mjk4NiwgMS4yMDg4MSwgMS41MTEiLCBcCi0gICAgICAgICAgIjAuMDg1MDM3LCAwLjA5OTQ5NywgMC4yMzIyOTMsIDAuNDU3MDg1LCAwLjY4Mjg4NiwgMS4yMDg1OSwgMS41MTExNiIsIFwKLSAgICAgICAgICAiMC4wODQ5NzgsIDAuMDk5NDQ5LCAwLjIzMjA3MywgMC40NTcxNzMsIDAuNjgyNzM5LCAxLjIwOTgyLCAxLjUxMDkzIiwgXAotICAgICAgICAgICIwLjA4NDk2OCwgMC4wOTk0MDYsIDAuMjMyMjY5LCAwLjQ1NzA5NiwgMC42ODI4NSwgMS4yMDk3MiwgMS41MDk3MyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg3NjIsIDAuMDk1NDY1LCAwLjE2NTAxNiwgMC4yODA0NTUsIDAuMzk1NzQ4LCAwLjY2NDY4MywgMC44MTg0MjIiLCBcCi0gICAgICAgICAgIjAuMDk0MTgzLCAwLjEwMjAyNSwgMC4xNzE1NzQsIDAuMjg2OTksIDAuNDAyMjcsIDAuNjcxMTQ1LCAwLjgyNDc1NiIsIFwKLSAgICAgICAgICAiMC4xMDMxNjgsIDAuMTExMDA4LCAwLjE4MDU0NiwgMC4yOTU5NjQsIDAuNDExMjQyLCAwLjY4MDExOSwgMC44MzM3MDQiLCBcCi0gICAgICAgICAgIjAuMTExOTcxLCAwLjExOTgyNiwgMC4xODkzNjUsIDAuMzA0NzY1LCAwLjQyMDA1NCwgMC42ODg4OTMsIDAuODQyNTEiLCBcCi0gICAgICAgICAgIjAuMTE5NTM0LCAwLjEyNzM4NiwgMC4xOTY5MTUsIDAuMzEyMzM4LCAwLjQyNzY1NSwgMC42OTY0MTUsIDAuODUwMDU4IiwgXAotICAgICAgICAgICIwLjEyOTkyMywgMC4xMzc4NjQsIDAuMjA3NTI0LCAwLjMyMjg5OSwgMC40MzgxOTMsIDAuNzA3MDAyLCAwLjg2MDU4NyIsIFwKLSAgICAgICAgICAiMC4xMzc3NTksIDAuMTQ1Njc4LCAwLjIxNTU2MywgMC4zMzA5NTQsIDAuNDQ2MjgxLCAwLjcxNTA5NSwgMC44Njg3NzEiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDkxNSwgMC4xMDcxMjMsIDAuMjUwMDY3LCAwLjQ5MjMwNSwgMC43MzU2ODgsIDEuMzAyNjIsIDEuNjI1NDMiLCBcCi0gICAgICAgICAgIjAuMDkxNDI1LCAwLjEwNzAwOSwgMC4yNTA1MTMsIDAuNDkyNzg4LCAwLjczNDc0NCwgMS4zMDA5MiwgMS42MjQ1OCIsIFwKLSAgICAgICAgICAiMC4wOTE0NzYsIDAuMTA3MDc3LCAwLjI1MDUxMiwgMC40OTIyMzYsIDAuNzM1NDU5LCAxLjMwMTE1LCAxLjYyNDQ0IiwgXAotICAgICAgICAgICIwLjA5MTcyNywgMC4xMDcyMzQsIDAuMjUwNTgzLCAwLjQ5MjcwMiwgMC43MzU0MTEsIDEuMzAxMTMsIDEuNjI2MTEiLCBcCi0gICAgICAgICAgIjAuMDkyMzE0LCAwLjEwNzgzMSwgMC4yNTA2MDksIDAuNDkyMTUsIDAuNzM1NDQ1LCAxLjMwMTA5LCAxLjYyNjA2IiwgXAotICAgICAgICAgICIwLjA5MzAyNCwgMC4xMDg0NDcsIDAuMjUwODk2LCAwLjQ5MjQzLCAwLjczNDMwMywgMS4zMDIxNiwgMS42MjQ2NiIsIFwKLSAgICAgICAgICAiMC4wOTM3NywgMC4xMDkwNDIsIDAuMjUxMTg4LCAwLjQ5MjQxMywgMC43MzU2MTUsIDEuMzAyMTMsIDEuNjI2MDciKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg2MzIxLCAwLjA5Mzk0MSwgMC4xNjA1MTMsIDAuMjcwNTUyLCAwLjM4MDQ4NiwgMC42MzY3NzcsIDAuNzgzMjA5IiwgXAotICAgICAgICAgICIwLjA5Mjg0LCAwLjEwMDQ1MywgMC4xNjcwMTcsIDAuMjc3MDQyLCAwLjM4Njk3NiwgMC42NDMyNDcsIDAuNzg5ODIxIiwgXAotICAgICAgICAgICIwLjEwMTc2MiwgMC4xMDkzNzMsIDAuMTc1OTM2LCAwLjI4NTk3NCwgMC4zOTU5LCAwLjY1MjE2MywgMC43OTg2MDIiLCBcCi0gICAgICAgICAgIjAuMTEwMTU4LCAwLjExNzc3MSwgMC4xODQzMzIsIDAuMjk0MzYyLCAwLjQwNDI2LCAwLjY2MDU1NiwgMC44MDY5NzciLCBcCi0gICAgICAgICAgIjAuMTE3NDAzLCAwLjEyNTA3MSwgMC4xOTE2NzksIDAuMzAxNzEsIDAuNDExNjI0LCAwLjY2Nzg5NywgMC44MTQzMDkiLCBcCi0gICAgICAgICAgIjAuMTI3MTU5LCAwLjEzNDkyNiwgMC4yMDE3MzYsIDAuMzExNzUxLCAwLjQyMTY2MSwgMC42Nzc5NzEsIDAuODI0MzUiLCBcCi0gICAgICAgICAgIjAuMTM0NDUxLCAwLjE0MjE2NywgMC4yMDkyMjksIDAuMzE5MjY0LCAwLjQyOTE0OSwgMC42ODU0NTcsIDAuODMxODQ5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4Njg4NywgMC4xMDEzMTEsIDAuMjMzODY3LCAwLjQ1ODUwNiwgMC42ODQwOTMsIDEuMjEwOTQsIDEuNTEyMDIiLCBcCi0gICAgICAgICAgIjAuMDg2ODM5LCAwLjEwMTI3MywgMC4yMzM4NzIsIDAuNDU4MzM1LCAwLjY4MzEzMywgMS4yMTA4NSwgMS41MDkzOSIsIFwKLSAgICAgICAgICAiMC4wODcwNDIsIDAuMTAxNDQ5LCAwLjIzMzk2NSwgMC40NTg0NjcsIDAuNjgzMzMyLCAxLjIxMDgyLCAxLjUxMDciLCBcCi0gICAgICAgICAgIjAuMDg3NDA2LCAwLjEwMTczMiwgMC4yMzQwOTUsIDAuNDU4NTAxLCAwLjY4Mzk3LCAxLjIxMDg3LCAxLjUxMTE2IiwgXAotICAgICAgICAgICIwLjA4NzkyMSwgMC4xMDIyMzksIDAuMjM0MTM5LCAwLjQ1ODU5NywgMC42ODQwODQsIDEuMjEwODksIDEuNTExNzEiLCBcCi0gICAgICAgICAgIjAuMDg4NDY2LCAwLjEwMjc3MSwgMC4yMzQ2MzQsIDAuNDU4ODA3LCAwLjY4MzI3LCAxLjIwOTY4LCAxLjUxMjAyIiwgXAotICAgICAgICAgICIwLjA4OTE4MiwgMC4xMDM0MjgsIDAuMjM0ODgzLCAwLjQ1OTEzOCwgMC42ODM0NjgsIDEuMjA5NywgMS41MTA3MSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTA2NzExLCAwLjExNDQ0MiwgMC4xODM3MTYsIDAuMjk4OTQ1LCAwLjQxNDIxOSwgMC42ODI5OTYsIDAuODM2NDkyIiwgXAotICAgICAgICAgICIwLjExNDQ5MywgMC4xMjIyMTUsIDAuMTkxNDk5LCAwLjMwNjc2OSwgMC40MjE5ODQsIDAuNjkwNzAzLCAwLjg0NDI3IiwgXAotICAgICAgICAgICIwLjEyNDA0OSwgMC4xMzE3OSwgMC4yMDEwNjgsIDAuMzE2MzQ5LCAwLjQzMTU1MywgMC43MDAzODQsIDAuODUzODQxIiwgXAotICAgICAgICAgICIwLjEzMjQxNywgMC4xNDAxNDQsIDAuMjA5NDEzLCAwLjMyNDY5MiwgMC40Mzk4OTgsIDAuNzA4NjExLCAwLjg2MjIzNCIsIFwKLSAgICAgICAgICAiMC4xMzkxNDQsIDAuMTQ2ODc0LCAwLjIxNjEzNywgMC4zMzEzOTksIDAuNDQ2NjIsIDAuNzE1MzE4LCAwLjg2ODg2OSIsIFwKLSAgICAgICAgICAiMC4xNDc5MTIsIDAuMTU1NjY5LCAwLjIyNTAzMSwgMC4zNDAyOTMsIDAuNDU1NTAyLCAwLjcyNDMxNSwgMC44Nzc4NDUiLCBcCi0gICAgICAgICAgIjAuMTU0MjE5LCAwLjE2MTk4NCwgMC4yMzE0ODMsIDAuMzQ2NzczLCAwLjQ2MjAwOCwgMC43MzA3NDUsIDAuODg0Mjc1Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4OTAxMywgMC4xMDQ3OTksIDAuMjQ5MDQ1LCAwLjQ5MTM0NywgMC43MzQ2ODcsIDEuMzAwMTYsIDEuNjIzOTgiLCBcCi0gICAgICAgICAgIjAuMDg5MDc5LCAwLjEwNDc5NiwgMC4yNDg5MjksIDAuNDkxMjQ4LCAwLjczNDY4MywgMS4zMDE0NiwgMS42MjQxIiwgXAotICAgICAgICAgICIwLjA4OTAxNCwgMC4xMDQ4MjQsIDAuMjQ5MDY4LCAwLjQ5MTY4NSwgMC43MzQ2ODIsIDEuMzAxNTgsIDEuNjI0MTciLCBcCi0gICAgICAgICAgIjAuMDg5MDc2LCAwLjEwNDc3NCwgMC4yNDkwNjUsIDAuNDkxMjYsIDAuNzM0NTYyLCAxLjMwMDM3LCAxLjYyMzYzIiwgXAotICAgICAgICAgICIwLjA4OTI1NiwgMC4xMDUwMTIsIDAuMjQ5MTIzLCAwLjQ5MTY0LCAwLjczNDcsIDEuMzAxNDYsIDEuNjI1MjkiLCBcCi0gICAgICAgICAgIjAuMDg5NDA0LCAwLjEwNTI1NiwgMC4yNDkzOTUsIDAuNDkxNDc4LCAwLjczMzg2MiwgMS4zMDE1LCAxLjYyNTM4IiwgXAotICAgICAgICAgICIwLjA4OTU0NiwgMC4xMDUyNzgsIDAuMjQ5NTE5LCAwLjQ5MTYzOSwgMC43MzQ2ODMsIDEuMzAxMzUsIDEuNjI1MTYiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTAzMTkyLCAwLjExMDYwMiwgMC4xNzY2MTEsIDAuMjg2NDQ1LCAwLjM5NjIzOCwgMC42NTIzODEsIDAuNzk4NzQ2IiwgXAotICAgICAgICAgICIwLjExMDcwMywgMC4xMTgxMTEsIDAuMTg0MTI0LCAwLjI5Mzk1NCwgMC40MDM3NTIsIDAuNjU5OTIzLCAwLjgwNjI2NCIsIFwKLSAgICAgICAgICAiMC4xMjAwNTcsIDAuMTI3NDU4LCAwLjE5MzQ3NSwgMC4zMDMyOTgsIDAuNDEzMDk5LCAwLjY2OTIzMiwgMC44MTU1OTciLCBcCi0gICAgICAgICAgIjAuMTI4NDUyLCAwLjEzNTg1NCwgMC4yMDE4NjQsIDAuMzExNjgxLCAwLjQyMTUxMywgMC42Nzc2MTYsIDAuODI0MDIiLCBcCi0gICAgICAgICAgIjAuMTM1Mzg2LCAwLjE0Mjc5NiwgMC4yMDg3OTQsIDAuMzE4NjA0LCAwLjQyODQwMywgMC42ODQ1OTIsIDAuODMwOTYiLCBcCi0gICAgICAgICAgIjAuMTQ0NzIxLCAwLjE1MjExNiwgMC4yMTgxNDgsIDAuMzI3OTU0LCAwLjQzNzc0LCAwLjY5Mzg5NSwgMC44NDAyNDkiLCBcCi0gICAgICAgICAgIjAuMTUyMDgyLCAwLjE1OTQ4LCAwLjIyNTQ4MSwgMC4zMzUyOTQsIDAuNDQ1MTI4LCAwLjcwMTIxOSwgMC44NDc2OTYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDgzNjUyLCAwLjA5ODI5OSwgMC4yMzE5NzMsIDAuNDU2NzU1LCAwLjY4Mjk3LCAxLjIwOTYsIDEuNTA5NCIsIFwKLSAgICAgICAgICAiMC4wODM2MzMsIDAuMDk4Mjk4LCAwLjIzMTk1OSwgMC40NTY3NjMsIDAuNjgyODgzLCAxLjIwOTc0LCAxLjUxMTI0IiwgXAotICAgICAgICAgICIwLjA4MzY5MSwgMC4wOTgzMDQsIDAuMjMxOTY0LCAwLjQ1NjczMSwgMC42ODMwNjksIDEuMjA4NSwgMS41MTA4NiIsIFwKLSAgICAgICAgICAiMC4wODM3MjQsIDAuMDk4MzE0LCAwLjIzMTk2NCwgMC40NTcyMTMsIDAuNjgyOTM5LCAxLjIwODQzLCAxLjUxMDU2IiwgXAotICAgICAgICAgICIwLjA4MzgyMiwgMC4wOTg0NDQsIDAuMjMyMDExLCAwLjQ1NzExNSwgMC42ODIyNjcsIDEuMjA5NjUsIDEuNTEwNzgiLCBcCi0gICAgICAgICAgIjAuMDgzODYyLCAwLjA5ODU4MywgMC4yMzE5MzcsIDAuNDU2OTA0LCAwLjY4MjgzLCAxLjIwODY2LCAxLjUxMDk1IiwgXAotICAgICAgICAgICIwLjA4NDA2NSwgMC4wOTg1NTEsIDAuMjMyMTIsIDAuNDU2ODksIDAuNjgyNDYsIDEuMjA5NDcsIDEuNTExMDEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDUwMTgsIDAuMDA1MDIxLCAwLjAwNTAzMywgMC4wMDUwMzksIDAuMDA1MDQxLCAwLjAwNTA0NCwgMC4wMDUwNDMiLCBcCi0gICAgICAgICAgIjAuMDA0OTk3LCAwLjAwNSwgMC4wMDUwMTIsIDAuMDA1MDE4LCAwLjAwNTAyLCAwLjAwNTAyMiwgMC4wMDUwMjMiLCBcCi0gICAgICAgICAgIjAuMDA0OTk3LCAwLjAwNDk5OSwgMC4wMDUwMTMsIDAuMDA1MDE5LCAwLjAwNTAyMiwgMC4wMDUwMjQsIDAuMDA1MDI0IiwgXAotICAgICAgICAgICIwLjAwNTAxNiwgMC4wMDUwMTgsIDAuMDA1MDMxLCAwLjAwNTAzOCwgMC4wMDUwNCwgMC4wMDUwNDMsIDAuMDA1MDQzIiwgXAotICAgICAgICAgICIwLjAwNTA1MywgMC4wMDUwNTMsIDAuMDA1MDY1LCAwLjAwNTA3MiwgMC4wMDUwNzQsIDAuMDA1MDc2LCAwLjAwNTA3OCIsIFwKLSAgICAgICAgICAiMC4wMDUxMTQsIDAuMDA1MTIsIDAuMDA1MTMsIDAuMDA1MTM1LCAwLjAwNTEzNSwgMC4wMDUxMzgsIDAuMDA1MTM5IiwgXAotICAgICAgICAgICIwLjAwNTE4NiwgMC4wMDUxODgsIDAuMDA1MTk2LCAwLjAwNTIsIDAuMDA1MjA2LCAwLjAwNTIwNiwgMC4wMDUyMDciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDIzMTQsIDAuMDAyMzE3LCAwLjAwMjMyOCwgMC4wMDIzMzMsIDAuMDAyMzM1LCAwLjAwMjMzNywgMC4wMDIzMzgiLCBcCi0gICAgICAgICAgIjAuMDAyMjc1LCAwLjAwMjI3OCwgMC4wMDIyOTEsIDAuMDAyMjk2LCAwLjAwMjI5OSwgMC4wMDIzLCAwLjAwMjMwMSIsIFwKLSAgICAgICAgICAiMC4wMDIyNzUsIDAuMDAyMjc5LCAwLjAwMjI5MSwgMC4wMDIyOTcsIDAuMDAyMjk5LCAwLjAwMjMwMiwgMC4wMDIzMDIiLCBcCi0gICAgICAgICAgIjAuMDAyMzA1LCAwLjAwMjMwNywgMC4wMDIzMTgsIDAuMDAyMzI0LCAwLjAwMjMyNywgMC4wMDIzMjksIDAuMDAyMzMiLCBcCi0gICAgICAgICAgIjAuMDAyMzM0LCAwLjAwMjMzNywgMC4wMDIzNDcsIDAuMDAyMzUzLCAwLjAwMjM1NiwgMC4wMDIzNTksIDAuMDAyMzYiLCBcCi0gICAgICAgICAgIjAuMDAyNDA2LCAwLjAwMjQwNywgMC4wMDI0MTYsIDAuMDAyNDIzLCAwLjAwMjQyNiwgMC4wMDI0MjgsIDAuMDAyNDI5IiwgXAotICAgICAgICAgICIwLjAwMjQ4MiwgMC4wMDI0ODMsIDAuMDAyNDksIDAuMDAyNDk2LCAwLjAwMjQ5OSwgMC4wMDI1MDEsIDAuMDAyNTAyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0ODUyLCAwLjAwNDg1NSwgMC4wMDQ4NjcsIDAuMDA0ODczLCAwLjAwNDg3NSwgMC4wMDQ4NzcsIDAuMDA0ODc3IiwgXAotICAgICAgICAgICIwLjAwNDgxMywgMC4wMDQ4MTYsIDAuMDA0ODI4LCAwLjAwNDgzNCwgMC4wMDQ4MzYsIDAuMDA0ODM5LCAwLjAwNDg0IiwgXAotICAgICAgICAgICIwLjAwNDc3OSwgMC4wMDQ3ODIsIDAuMDA0Nzk1LCAwLjAwNDgwMiwgMC4wMDQ4MDQsIDAuMDA0ODA3LCAwLjAwNDgwNiIsIFwKLSAgICAgICAgICAiMC4wMDQ3OTksIDAuMDA0ODAxLCAwLjAwNDgxMSwgMC4wMDQ4MTYsIDAuMDA0ODE4LCAwLjAwNDgyLCAwLjAwNDgyMSIsIFwKLSAgICAgICAgICAiMC4wMDQ4NDYsIDAuMDA0ODQ4LCAwLjAwNDg1NiwgMC4wMDQ4NjIsIDAuMDA0ODY0LCAwLjAwNDg2NiwgMC4wMDQ4NjYiLCBcCi0gICAgICAgICAgIjAuMDA0OTE2LCAwLjAwNDkxNywgMC4wMDQ5MjYsIDAuMDA0OTI4LCAwLjAwNDkzLCAwLjAwNDkzMiwgMC4wMDQ5MzMiLCBcCi0gICAgICAgICAgIjAuMDA1MDE5LCAwLjAwNTAxNywgMC4wMDUwMjIsIDAuMDA1MDI4LCAwLjAwNTAzLCAwLjAwNTAzMSwgMC4wMDUwMzIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI1NDksIDAuMDAyNTUyLCAwLjAwMjU2MiwgMC4wMDI1NjYsIDAuMDAyNTY3LCAwLjAwMjU3MiwgMC4wMDI1NyIsIFwKLSAgICAgICAgICAiMC4wMDI0OTcsIDAuMDAyNSwgMC4wMDI1MTEsIDAuMDAyNTE2LCAwLjAwMjUxOCwgMC4wMDI1MTksIDAuMDAyNTIiLCBcCi0gICAgICAgICAgIjAuMDAyNDk1LCAwLjAwMjQ5OCwgMC4wMDI1MDksIDAuMDAyNTE0LCAwLjAwMjUxNiwgMC4wMDI1MTgsIDAuMDAyNTE4IiwgXAotICAgICAgICAgICIwLjAwMjU0LCAwLjAwMjU0MiwgMC4wMDI1NSwgMC4wMDI1NTUsIDAuMDAyNTU2LCAwLjAwMjU1OCwgMC4wMDI1NTkiLCBcCi0gICAgICAgICAgIjAuMDAyNTkxLCAwLjAwMjU5MiwgMC4wMDI1OTgsIDAuMDAyNjAyLCAwLjAwMjYwNCwgMC4wMDI2MDYsIDAuMDAyNjA2IiwgXAotICAgICAgICAgICIwLjAwMjY0OSwgMC4wMDI2NTEsIDAuMDAyNjU5LCAwLjAwMjY2NCwgMC4wMDI2NjcsIDAuMDAyNjY5LCAwLjAwMjY2OSIsIFwKLSAgICAgICAgICAiMC4wMDI3NDEsIDAuMDAyNzQxLCAwLjAwMjc0NCwgMC4wMDI3NDgsIDAuMDAyNzUxLCAwLjAwMjc1MywgMC4wMDI3NTMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0NDY5LCAwLjAwNDQ3MiwgMC4wMDQ0ODMsIDAuMDA0NDg5LCAwLjAwNDQ5MSwgMC4wMDQ0OTMsIDAuMDA0NDkzIiwgXAotICAgICAgICAgICIwLjAwNDQ3MSwgMC4wMDQ0NzQsIDAuMDA0NDg2LCAwLjAwNDQ5MiwgMC4wMDQ0OTQsIDAuMDA0NDk2LCAwLjAwNDQ5NyIsIFwKLSAgICAgICAgICAiMC4wMDQ0OTgsIDAuMDA0NSwgMC4wMDQ1MTMsIDAuMDA0NTE5LCAwLjAwNDUyMiwgMC4wMDQ1MjUsIDAuMDA0NTI1IiwgXAotICAgICAgICAgICIwLjAwNDU0NywgMC4wMDQ1NDksIDAuMDA0NTYsIDAuMDA0NTY2LCAwLjAwNDU2OSwgMC4wMDQ1NzIsIDAuMDA0NTczIiwgXAotICAgICAgICAgICIwLjAwNDU5OSwgMC4wMDQ2LCAwLjAwNDYxLCAwLjAwNDYxNSwgMC4wMDQ2MTgsIDAuMDA0NjIxLCAwLjAwNDYyMSIsIFwKLSAgICAgICAgICAiMC4wMDQ2OTEsIDAuMDA0NjkyLCAwLjAwNDY5OSwgMC4wMDQ3MDQsIDAuMDA0NzA2LCAwLjAwNDcwOCwgMC4wMDQ3MDkiLCBcCi0gICAgICAgICAgIjAuMDA0Nzg2LCAwLjAwNDc4NiwgMC4wMDQ3OSwgMC4wMDQ3OTQsIDAuMDA0Nzk2LCAwLjAwNDc5OSwgMC4wMDQ3OTkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI1OTcsIDAuMDAyNTk5LCAwLjAwMjYxMSwgMC4wMDI2MTYsIDAuMDAyNjE4LCAwLjAwMjYxOSwgMC4wMDI2MiIsIFwKLSAgICAgICAgICAiMC4wMDI1ODEsIDAuMDAyNTgzLCAwLjAwMjU5NiwgMC4wMDI2MDEsIDAuMDAyNjAzLCAwLjAwMjYwNSwgMC4wMDI2MDYiLCBcCi0gICAgICAgICAgIjAuMDAyNTgxLCAwLjAwMjU4NCwgMC4wMDI1OTYsIDAuMDAyNjAyLCAwLjAwMjYwNSwgMC4wMDI2MDcsIDAuMDAyNjA3IiwgXAotICAgICAgICAgICIwLjAwMjYyMywgMC4wMDI2MjUsIDAuMDAyNjM2LCAwLjAwMjY0MiwgMC4wMDI2NDQsIDAuMDAyNjQ2LCAwLjAwMjY0NyIsIFwKLSAgICAgICAgICAiMC4wMDI2NjEsIDAuMDAyNjYyLCAwLjAwMjY3MywgMC4wMDI2NzksIDAuMDAyNjgxLCAwLjAwMjY4MywgMC4wMDI2ODQiLCBcCi0gICAgICAgICAgIjAuMDAyNzQ3LCAwLjAwMjc0OCwgMC4wMDI3NTYsIDAuMDAyNzYyLCAwLjAwMjc2NCwgMC4wMDI3NjYsIDAuMDAyNzY4IiwgXAotICAgICAgICAgICIwLjAwMjg0NywgMC4wMDI4NDcsIDAuMDAyODUxLCAwLjAwMjg1NiwgMC4wMDI4NTgsIDAuMDAyODYxLCAwLjAwMjg2MiIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogQURERlhMICoKLSAqIC0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoQURERlhMKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuNjc1MjsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAyNzExMTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDI2OTg3NzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDI3MTExOwotICB9Ci0gIHBpbihCKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDI1MTI5NzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDI0OTU3NjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDI1MTI5NzsKLSAgfQotICBwaW4oQ0kpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMjAxMzM5OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMjAwMzA3OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMjAxMzM5OwotICB9Ci0gIHBpbihDTykgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjIwMjE1NjsKLSAgICBmdW5jdGlvbiA6ICIoKChBIEIpKyhCIENJKSkrKENJIEEpKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTAzODM0LCAwLjExNDQ5NCwgMC4yMDk3MjgsIDAuMzY3NTc2LCAwLjUyNjQ3OSwgMC44OTY1NCwgMS4xMDU5IiwgXAotICAgICAgICAgICIwLjExMDQ2MywgMC4xMjExNTEsIDAuMjE2MzM5LCAwLjM3Mzk1NSwgMC41MzI3MDYsIDAuOTAyNzQ4LCAxLjExNDE4IiwgXAotICAgICAgICAgICIwLjExNzk5NywgMC4xMjg2ODIsIDAuMjIzNzYzLCAwLjM4MTQ4MiwgMC41NDAxODYsIDAuOTEwMzUxLCAxLjEyMTczIiwgXAotICAgICAgICAgICIwLjEyNDg4NiwgMC4xMzU1NzIsIDAuMjMwNjYsIDAuMzg4NTE4LCAwLjU0NjgwMywgMC45MTc1MDIsIDEuMTI5MDYiLCBcCi0gICAgICAgICAgIjAuMTMxMTU1LCAwLjE0MTg1MSwgMC4yMzcwMzMsIDAuMzk0OTE3LCAwLjU1Mjg2NywgMC45MjM4MDYsIDEuMTMzMTYiLCBcCi0gICAgICAgICAgIjAuMTM5OTc4LCAwLjE1MDcxMywgMC4yNDYwNDEsIDAuNDAzODQxLCAwLjU2MjY5NSwgMC45MzA3NjEsIDEuMTQ0MTEiLCBcCi0gICAgICAgICAgIjAuMTQ2NzcyLCAwLjE1NzUxMywgMC4yNTI4MzUsIDAuNDEwNjI1LCAwLjU2OTQ4MywgMC45MzY5NDEsIDEuMTUxMDEiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTIyMjA3LCAwLjE0MzY1MywgMC4zNDA5MDMsIDAuNjczNzc2LCAxLjAwNzIzLCAxLjc4NTg0LCAyLjIyOTkzIiwgXAotICAgICAgICAgICIwLjEyMTkxMiwgMC4xNDM2ODcsIDAuMzQwODQ1LCAwLjY3MzUwMiwgMS4wMDcwNSwgMS43ODUyNSwgMi4yMjk3MiIsIFwKLSAgICAgICAgICAiMC4xMjIwNDgsIDAuMTQzNzcyLCAwLjM0MDkxLCAwLjY3MzM2MiwgMS4wMDY3NywgMS43ODU5NCwgMi4yMzA4MiIsIFwKLSAgICAgICAgICAiMC4xMjIyMzgsIDAuMTQzOTgsIDAuMzQwOTU3LCAwLjY3MjgyNywgMS4wMDc0LCAxLjc4NjA2LCAyLjIzMDQzIiwgXAotICAgICAgICAgICIwLjEyMjgzMiwgMC4xNDQzODgsIDAuMzQwOTUyLCAwLjY3MjY2MiwgMS4wMDcxOCwgMS43ODYxNSwgMi4yMzAyIiwgXAotICAgICAgICAgICIwLjEyNDA1NiwgMC4xNDUxMTMsIDAuMzQxMjU5LCAwLjY3MjU5NiwgMS4wMDc0MSwgMS43ODMsIDIuMjMxMDQiLCBcCi0gICAgICAgICAgIjAuMTI0Njc2LCAwLjE0NjAxOCwgMC4zNDE1NjQsIDAuNjczMTU5LCAxLjAwNzQ5LCAxLjc4NDgyLCAyLjIzMDgxIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwNTEzNywgMC4xMTUwNTUsIDAuMjAyNDMyLCAwLjM0NzkwNywgMC40OTI4NzYsIDAuODMyMTAyLCAxLjAyNDU3IiwgXAotICAgICAgICAgICIwLjExMTg2NywgMC4xMjE3ODYsIDAuMjA5MzE5LCAwLjM1NDMxMiwgMC40OTg3MjYsIDAuODM3MzMxLCAxLjAzMDU4IiwgXAotICAgICAgICAgICIwLjExODc5MiwgMC4xMjg3MTgsIDAuMjE2Mjg1LCAwLjM2MDk3NSwgMC41MDU4MDYsIDAuODQ0MzE5LCAxLjAzNzM2IiwgXAotICAgICAgICAgICIwLjEyNTE4MSwgMC4xMzUxMDQsIDAuMjIyMzY5LCAwLjM2NzcwMiwgMC41MTIxMTgsIDAuODUwNTQ5LCAxLjA0NDUxIiwgXAotICAgICAgICAgICIwLjEzMDY5OCwgMC4xNDA2MjksIDAuMjI3ODkzLCAwLjM3MzI2OCwgMC41MTc2NTYsIDAuODU2MTMsIDEuMDQ5NjMiLCBcCi0gICAgICAgICAgIjAuMTM4NDU4LCAwLjE0ODQyOCwgMC4yMzU4MTMsIDAuMzgxMTE1LCAwLjUyNTQxNywgMC44NjQyODMsIDEuMDU3ODgiLCBcCi0gICAgICAgICAgIjAuMTQ0MjAzLCAwLjE1NDE4OSwgMC4yNDE2NzUsIDAuMzg3MDg1LCAwLjUzMjM1MywgMC44NzAyNDUsIDEuMDYzODIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTEyNzY0LCAwLjEzMjIwOCwgMC4zMDk3MDEsIDAuNjA2ODYyLCAwLjg5OTYyMiwgMS41OTk4NCwgMS45OTgyOCIsIFwKLSAgICAgICAgICAiMC4xMTIzMTUsIDAuMTMyMjA5LCAwLjMwODY5NiwgMC42MDY4NzEsIDAuOTAwNTA3LCAxLjYwMTk4LCAyLjAwMDUzIiwgXAotICAgICAgICAgICIwLjExMjc5MiwgMC4xMzIzMiwgMC4zMDg2OTksIDAuNjA2ODc0LCAwLjkwMTk0MiwgMS42MDEyNiwgMi4wMDEzMSIsIFwKLSAgICAgICAgICAiMC4xMTMxMDUsIDAuMTMyNDc1LCAwLjMwODc1NywgMC42MDY4NzEsIDAuOTAxNDExLCAxLjYwMDg5LCAyLjAwMTcyIiwgXAotICAgICAgICAgICIwLjExMzY0OSwgMC4xMzMwNjYsIDAuMzA4OTEyLCAwLjYwNjg0OCwgMC45MDQ3MjMsIDEuNTk4NywgMi4wMDE5MSIsIFwKLSAgICAgICAgICAiMC4xMTQzNCwgMC4xMzM3MzYsIDAuMzEwMTE0LCAwLjYwNjgyOSwgMC45MDM1ODgsIDEuNjAyMzcsIDIuMDAwOCIsIFwKLSAgICAgICAgICAiMC4xMTU1NTksIDAuMTM0MDY2LCAwLjMxMDQ0MywgMC42MDY2NTQsIDAuOTA1MTM1LCAxLjYwMjUyLCAyLjAwMDYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTA0MDg3LCAwLjExNDc0NSwgMC4yMDk5NzMsIDAuMzY3ODM3LCAwLjUyNjgxMywgMC44OTY4NDgsIDEuMTA4MzMiLCBcCi0gICAgICAgICAgIjAuMTExNDI0LCAwLjEyMjA4NSwgMC4yMTczMTcsIDAuMzc1MjUxLCAwLjUzNDA5OCwgMC45MDE0NTEsIDEuMTE1NjQiLCBcCi0gICAgICAgICAgIjAuMTIxMDI3LCAwLjEzMTY4NiwgMC4yMjY5NDQsIDAuMzg0ODAzLCAwLjU0MzY5OSwgMC45MTM3MjgsIDEuMTI1MDQiLCBcCi0gICAgICAgICAgIjAuMTMwMDUzLCAwLjE0MDczOCwgMC4yMzU5NzQsIDAuMzkzNzcyLCAwLjU1MjY1NywgMC45MjI2NTgsIDEuMTM0MDYiLCBcCi0gICAgICAgICAgIjAuMTM4MDE0LCAwLjE0ODY2MywgMC4yNDM5MTIsIDAuNDAxNzI0LCAwLjU2MDYxMSwgMC45MzA2MDcsIDEuMTM4NDciLCBcCi0gICAgICAgICAgIjAuMTQ5MjY0LCAwLjE2MDA1OSwgMC4yNTUyNywgMC40MTMyMDgsIDAuNTcxOTQsIDAuOTM5Mzc4LCAxLjE1MzUiLCBcCi0gICAgICAgICAgIjAuMTU3NTMzLCAwLjE2ODI5NCwgMC4yNjM1MjMsIDAuNDIxNDQ5LCAwLjU4MDMyNiwgMC45NDc2MTQsIDEuMTU4MTIiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTIyNDQ2LCAwLjE0MzY3MywgMC4zNDA5NjksIDAuNjcyNjI4LCAxLjAwNjcyLCAxLjc4NTU5LCAyLjIyODQ2IiwgXAotICAgICAgICAgICIwLjEyMjU2MiwgMC4xNDM5NDEsIDAuMzQwOTI4LCAwLjY3MzY1NCwgMS4wMDY4NywgMS43ODI0NSwgMi4yMjk5NSIsIFwKLSAgICAgICAgICAiMC4xMjI1MjcsIDAuMTQzOTEyLCAwLjM0MDk1MywgMC42NzI2NTMsIDEuMDA3NDQsIDEuNzg2MTEsIDIuMjMxMjQiLCBcCi0gICAgICAgICAgIjAuMTIyOTM2LCAwLjE0NDI0MiwgMC4zNDA5NzksIDAuNjcyNTkxLCAxLjAwNzM3LCAxLjc4NjI4LCAyLjIzMTExIiwgXAotICAgICAgICAgICIwLjEyMzUzNywgMC4xNDQ5MDcsIDAuMzQxMDgsIDAuNjcyNDQxLCAxLjAwNzM4LCAxLjc4NjI4LCAyLjIzMDk4IiwgXAotICAgICAgICAgICIwLjEyNDk5OCwgMC4xNDU3ODQsIDAuMzQxNDE5LCAwLjY3MzgsIDEuMDA3MzYsIDEuNzg1NDcsIDIuMjMwNzIiLCBcCi0gICAgICAgICAgIjAuMTI1NTQzLCAwLjE0NjgzLCAwLjM0MTYyOCwgMC42NzI1MzUsIDEuMDA3MzcsIDEuNzgzOTQsIDIuMjI1MTkiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTAzOTE2LCAwLjExMzgzMywgMC4yMDE1MTUsIDAuMzQ2NjY3LCAwLjQ5MTUzMiwgMC44Mjk2MTgsIDEuMDI0NjgiLCBcCi0gICAgICAgICAgIjAuMTExMTE4LCAwLjEyMTAzNiwgMC4yMDg3NDIsIDAuMzUzOTA2LCAwLjQ5ODgyNCwgMC44MzY3OTksIDEuMDMxODQiLCBcCi0gICAgICAgICAgIjAuMTIwNTgsIDAuMTMwNDk4LCAwLjIxODIwMiwgMC4zNjMzNDIsIDAuNTA4MzY0LCAwLjg0NjU3LCAxLjA0MTI4IiwgXAotICAgICAgICAgICIwLjEyOTY2NCwgMC4xMzk1OCwgMC4yMjY5NzEsIDAuMzcyNDUzLCAwLjUxNzQ3NywgMC44NTYxMjUsIDEuMDQ5NDEiLCBcCi0gICAgICAgICAgIjAuMTM3Njk1LCAwLjE0NzQ2NCwgMC4yMzUwMDQsIDAuMzgwNDU1LCAwLjUyNTI2MSwgMC44NjM4NTksIDEuMDU3NjEiLCBcCi0gICAgICAgICAgIjAuMTQ4NzM3LCAwLjE1ODcxMiwgMC4yNDYzODMsIDAuMzkxMzMsIDAuNTM1NzM2LCAwLjg3NTY5NCwgMS4wNjg0NCIsIFwKLSAgICAgICAgICAiMC4xNTY4NTEsIDAuMTY2ODY3LCAwLjI1NDQ0LCAwLjQwMDEwNywgMC41NDQ3OTcsIDAuODgyODcyLCAxLjA3NTQ5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExNDA3MywgMC4xMzMxMTMsIDAuMzEwMzQyLCAwLjYwNjg3NywgMC45MDU0NzIsIDEuNTk4MTUsIDEuOTk3OTQiLCBcCi0gICAgICAgICAgIjAuMTEzMjg5LCAwLjEzMzExMSwgMC4zMDk1NCwgMC42MDY4NDcsIDAuOTA1NTY3LCAxLjYwMjMxLCAxLjk5NTYiLCBcCi0gICAgICAgICAgIjAuMTEyNzkzLCAwLjEzMzE2LCAwLjMxMDA0NSwgMC42MDY4NTIsIDAuOTA1NTI0LCAxLjYwMywgMS45OTc0MiIsIFwKLSAgICAgICAgICAiMC4xMTQ0MywgMC4xMzM1NSwgMC4zMTAyNzcsIDAuNjA2NzgyLCAwLjkwNTQwNywgMS41OTg3MiwgMi4wMDA5NyIsIFwKLSAgICAgICAgICAiMC4xMTUzNzQsIDAuMTM0NDQ0LCAwLjMxMDE3MywgMC42MDY4NjMsIDAuOTA1MjgzLCAxLjU5Nzc3LCAyLjAwMDk3IiwgXAotICAgICAgICAgICIwLjExNjIxNCwgMC4xMzQ3LCAwLjMwOTk3LCAwLjYwNjgxMSwgMC45MDQ5MzMsIDEuNjAyNTEsIDEuOTk5MzgiLCBcCi0gICAgICAgICAgIjAuMTE2ODg2LCAwLjEzNDkzMywgMC4zMTAyODQsIDAuNjA2ODI2LCAwLjkwNTMwNywgMS42MDA0OCwgMi4wMDA2NiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk5Mjg4LCAwLjEwOTk3NywgMC4yMDUwMjMsIDAuMzYyNzcsIDAuNTIxNDU1LCAwLjg5MTQ0MiwgMS4xMDAyOSIsIFwKLSAgICAgICAgICAiMC4xMDY5MTMsIDAuMTE3NjA0LCAwLjIxMjcwNiwgMC4zNzA0MDcsIDAuNTI5MTI1LCAwLjg5NzQwOCwgMS4xMDgwNyIsIFwKLSAgICAgICAgICAiMC4xMTY0NDUsIDAuMTI3MTM0LCAwLjIyMjIwMiwgMC4zODAwNjMsIDAuNTM4NjMzLCAwLjkwNzE3OSwgMS4xMTc1NCIsIFwKLSAgICAgICAgICAiMC4xMjUzMDcsIDAuMTM1OTk5LCAwLjIzMTA2MywgMC4zODg5NTMsIDAuNTQ2Njc0LCAwLjkxNjEwNiwgMS4xMjg3OCIsIFwKLSAgICAgICAgICAiMC4xMzI4NTUsIDAuMTQzNTYyLCAwLjIzODU5NSwgMC4zOTYzMzMsIDAuNTU0NjAzLCAwLjkyMzc3OSwgMS4xMzYxMiIsIFwKLSAgICAgICAgICAiMC4xNDMwNDIsIDAuMTUzNzU4LCAwLjI0ODg3MywgMC40MDY2NjYsIDAuNTY0MzIxLCAwLjkzNTE0LCAxLjE0NjMiLCBcCi0gICAgICAgICAgIjAuMTUwNDAyLCAwLjE2MTE0LCAwLjI1NjA1LCAwLjQxMzkwNiwgMC41NzI1MjIsIDAuOTQwMjU2LCAxLjE1MzU4Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEyMjQ2NywgMC4xNDM4OTMsIDAuMzQwNjUxLCAwLjY3MzA3NiwgMS4wMDU2NywgMS43ODQ5MiwgMi4yMjg0MiIsIFwKLSAgICAgICAgICAiMC4xMjIzMDMsIDAuMTQzOTMzLCAwLjM0MDc4OSwgMC42NzIxMTQsIDEuMDA2NDIsIDEuNzg0NjYsIDIuMjI5NjkiLCBcCi0gICAgICAgICAgIjAuMTIyNDEzLCAwLjE0NDAyMiwgMC4zNDA3OTksIDAuNjcyNjEyLCAxLjAwNTcyLCAxLjc4NTIsIDIuMjI4MDkiLCBcCi0gICAgICAgICAgIjAuMTIyOCwgMC4xNDQzMTIsIDAuMzQwODMyLCAwLjY3MjU5NywgMS4wMDU0MiwgMS43ODQ5LCAyLjIzMDgiLCBcCi0gICAgICAgICAgIjAuMTIzNSwgMC4xNDQ4OSwgMC4zNDA5ODgsIDAuNjcyMzA0LCAxLjAwNzIzLCAxLjc4NDk4LCAyLjIzMTMzIiwgXAotICAgICAgICAgICIwLjEyNDkzOCwgMC4xNDU3NjQsIDAuMzQxMDY2LCAwLjY3Mjg1NiwgMS4wMDQ1NCwgMS43ODU3OSwgMi4yMzEzMyIsIFwKLSAgICAgICAgICAiMC4xMjYzMTgsIDAuMTQ2ODUyLCAwLjM0MTMxNCwgMC42NzI5NDQsIDEuMDA1NzUsIDEuNzgzNTUsIDIuMjMwNTIiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk5NjQ1LCAwLjEwOTY1NCwgMC4xOTcwOTcsIDAuMzQyMzQxLCAwLjQ4NjcxMywgMC44MjQ5MiwgMS4wMTcxNyIsIFwKLSAgICAgICAgICAiMC4xMDcwNTIsIDAuMTE3MDQzLCAwLjIwNDQ2OSwgMC4zNDk5MDksIDAuNDk0NDU2LCAwLjgzMTU3NiwgMS4wMjUxIiwgXAotICAgICAgICAgICIwLjExNjQ3MywgMC4xMjY0OCwgMC4yMTQxMzUsIDAuMzU5MiwgMC41MDQxNTgsIDAuODQyNTEzLCAxLjAzNjQ0IiwgXAotICAgICAgICAgICIwLjEyNTEwMiwgMC4xMzUxMDYsIDAuMjIyNTQ3LCAwLjM2Nzg0NSwgMC41MTMxNTcsIDAuODUxMDk0LCAxLjA0NTMiLCBcCi0gICAgICAgICAgIjAuMTMyNjU0LCAwLjE0MjY2MiwgMC4yMzAwOTgsIDAuMzc1NTkxLCAwLjUyMDE3NiwgMC44NTc3MDEsIDEuMDUwNDIiLCBcCi0gICAgICAgICAgIjAuMTQyOTAzLCAwLjE1Mjk5MSwgMC4yNDA3MDcsIDAuMzg1MzQ4LCAwLjUzMTA3NywgMC44Njg5NTIsIDEuMDYyMDUiLCBcCi0gICAgICAgICAgIjAuMTUwNDc5LCAwLjE2MDYxNCwgMC4yNDgzMDMsIDAuMzkzMjIxLCAwLjUzODMwNiwgMC44NzYyMzMsIDEuMDY5NDIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTEzMzEyLCAwLjEzMzQ1MSwgMC4zMDg2NzcsIDAuNjA2NzQ0LCAwLjkwNTMyLCAxLjYwMzE5LCAyLjAwMDMyIiwgXAotICAgICAgICAgICIwLjExNDI1NCwgMC4xMzM0MywgMC4zMTAxMzUsIDAuNjA2NzE5LCAwLjkwNTM1MiwgMS42MDE2OSwgMS45OTU3IiwgXAotICAgICAgICAgICIwLjExMzQ1MywgMC4xMzM1MDIsIDAuMzA4NzI5LCAwLjYwNjc2NiwgMC45MDA1MzgsIDEuNjAyNDksIDEuOTk4NyIsIFwKLSAgICAgICAgICAiMC4xMTQyNTksIDAuMTMzNzkyLCAwLjMxMDIxNywgMC42MDY3NywgMC45MDUwNzMsIDEuNjAyNTYsIDIuMDAwNTgiLCBcCi0gICAgICAgICAgIjAuMTE1MjgxLCAwLjEzNDU1OSwgMC4zMTAxMTUsIDAuNjA2NzIxLCAwLjkwNTI0MiwgMS41OTc0MiwgMi4wMDAzNiIsIFwKLSAgICAgICAgICAiMC4xMTYwNCwgMC4xMzU4NTMsIDAuMzEwMjA4LCAwLjYwNDYwNiwgMC45MDQ4MzUsIDEuNjAyNTYsIDIuMDAwNTQiLCBcCi0gICAgICAgICAgIjAuMTE3NTUzLCAwLjEzNjQ0MiwgMC4zMDg3MjcsIDAuNjAyOTAxLCAwLjkwNDQ4MywgMS42MDE4MiwgMi4wMDAzOCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTk2NiwgMC4wMDE5NjgsIDAuMDAxOTczLCAwLjAwMTk3NSwgMC4wMDE5NzYsIDAuMDAxOTc3LCAwLjAwMTk3NyIsIFwKLSAgICAgICAgICAiMC4wMDE5MzksIDAuMDAxOTQxLCAwLjAwMTk0NywgMC4wMDE5NSwgMC4wMDE5NTEsIDAuMDAxOTUxLCAwLjAwMTk1MiIsIFwKLSAgICAgICAgICAiMC4wMDE5NDIsIDAuMDAxOTQ0LCAwLjAwMTk1LCAwLjAwMTk1MiwgMC4wMDE5NTQsIDAuMDAxOTU0LCAwLjAwMTk1NSIsIFwKLSAgICAgICAgICAiMC4wMDE5NjMsIDAuMDAxOTY0LCAwLjAwMTk3LCAwLjAwMTk3MywgMC4wMDE5NzMsIDAuMDAxOTc1LCAwLjAwMTk3NCIsIFwKLSAgICAgICAgICAiMC4wMDE5OTYsIDAuMDAxOTk3LCAwLjAwMjAwMiwgMC4wMDIwMDQsIDAuMDAyMDA1LCAwLjAwMjAwNiwgMC4wMDIwMDciLCBcCi0gICAgICAgICAgIjAuMDAyMDQ2LCAwLjAwMjA0NywgMC4wMDIwNTEsIDAuMDAyMDU1LCAwLjAwMjA1NiwgMC4wMDIwNTcsIDAuMDAyMDU4IiwgXAotICAgICAgICAgICIwLjAwMjExLCAwLjAwMjExMSwgMC4wMDIxMTMsIDAuMDAyMTE2LCAwLjAwMjExNywgMC4wMDIxMTgsIDAuMDAyMTE5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzOTUxLCAwLjAwMzk1MiwgMC4wMDM5NTgsIDAuMDAzOTYsIDAuMDAzOTYxLCAwLjAwMzk2MiwgMC4wMDM5NjMiLCBcCi0gICAgICAgICAgIjAuMDAzOTM0LCAwLjAwMzkzNSwgMC4wMDM5NDIsIDAuMDAzOTQ1LCAwLjAwMzk0NiwgMC4wMDM5NDcsIDAuMDAzOTQ3IiwgXAotICAgICAgICAgICIwLjAwMzkzNiwgMC4wMDM5MzgsIDAuMDAzOTQ0LCAwLjAwMzk0OCwgMC4wMDM5NDksIDAuMDAzOTUsIDAuMDAzOTUiLCBcCi0gICAgICAgICAgIjAuMDAzOTUyLCAwLjAwMzk1NCwgMC4wMDM5NiwgMC4wMDM5NjMsIDAuMDAzOTY1LCAwLjAwMzk2NiwgMC4wMDM5NjYiLCBcCi0gICAgICAgICAgIjAuMDAzOTgzLCAwLjAwMzk4NCwgMC4wMDM5OSwgMC4wMDM5OTMsIDAuMDAzOTk0LCAwLjAwMzk5NSwgMC4wMDM5OTUiLCBcCi0gICAgICAgICAgIjAuMDA0MDM1LCAwLjAwNDAzNiwgMC4wMDQwNDIsIDAuMDA0MDQ0LCAwLjAwNDA0NSwgMC4wMDQwNDcsIDAuMDA0MDQ3IiwgXAotICAgICAgICAgICIwLjAwNDA5NCwgMC4wMDQwOTEsIDAuMDA0MDk4LCAwLjAwNDEwMSwgMC4wMDQxMDIsIDAuMDA0MTAzLCAwLjAwNDEwMyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjEzMywgMC4wMDIxMzUsIDAuMDAyMTQsIDAuMDAyMTQyLCAwLjAwMjE0MiwgMC4wMDIxNDIsIDAuMDAyMTQzIiwgXAotICAgICAgICAgICIwLjAwMjA5OSwgMC4wMDIxMDEsIDAuMDAyMTA2LCAwLjAwMjEwOSwgMC4wMDIxMSwgMC4wMDIxMSwgMC4wMDIxMSIsIFwKLSAgICAgICAgICAiMC4wMDIxMDEsIDAuMDAyMTAyLCAwLjAwMjEwOCwgMC4wMDIxMTEsIDAuMDAyMTEyLCAwLjAwMjExMiwgMC4wMDIxMTMiLCBcCi0gICAgICAgICAgIjAuMDAyMTI4LCAwLjAwMjEzLCAwLjAwMjEzNSwgMC4wMDIxNDQsIDAuMDAyMTQ0LCAwLjAwMjE0NSwgMC4wMDIxNDUiLCBcCi0gICAgICAgICAgIjAuMDAyMTcyLCAwLjAwMjE3MiwgMC4wMDIxNzYsIDAuMDAyMTc4LCAwLjAwMjE3OCwgMC4wMDIxNzksIDAuMDAyMTc5IiwgXAotICAgICAgICAgICIwLjAwMjIyOCwgMC4wMDIyMzcsIDAuMDAyMjQsIDAuMDAyMjQyLCAwLjAwMjIzNSwgMC4wMDIyMzYsIDAuMDAyMjM2IiwgXAotICAgICAgICAgICIwLjAwMjI5OSwgMC4wMDIyOTksIDAuMDAyMywgMC4wMDIzMDcsIDAuMDAyMzA4LCAwLjAwMjMwNCwgMC4wMDIzMDkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDM4NDUsIDAuMDAzODQ3LCAwLjAwMzg1MywgMC4wMDM4NTUsIDAuMDAzODU3LCAwLjAwMzg1OCwgMC4wMDM4NTgiLCBcCi0gICAgICAgICAgIjAuMDAzODIsIDAuMDAzODIxLCAwLjAwMzgyNywgMC4wMDM4MywgMC4wMDM4MzIsIDAuMDAzODMzLCAwLjAwMzgzMyIsIFwKLSAgICAgICAgICAiMC4wMDM3OTgsIDAuMDAzOCwgMC4wMDM4MDYsIDAuMDAzODEsIDAuMDAzODExLCAwLjAwMzgxMiwgMC4wMDM4MTIiLCBcCi0gICAgICAgICAgIjAuMDAzODIsIDAuMDAzODIxLCAwLjAwMzgyNiwgMC4wMDM4MjgsIDAuMDAzODI5LCAwLjAwMzgyOSwgMC4wMDM4MyIsIFwKLSAgICAgICAgICAiMC4wMDM4NjUsIDAuMDAzODcxLCAwLjAwMzg2NywgMC4wMDM4NjksIDAuMDAzODcsIDAuMDAzODcxLCAwLjAwMzg3MSIsIFwKLSAgICAgICAgICAiMC4wMDM5NDYsIDAuMDAzOTQ2LCAwLjAwMzk0NiwgMC4wMDM5NDcsIDAuMDAzOTQ3LCAwLjAwMzk0OCwgMC4wMDM5NDgiLCBcCi0gICAgICAgICAgIjAuMDAzOTk0LCAwLjAwMzk5NCwgMC4wMDM5OTYsIDAuMDAzOTk4LCAwLjAwMzk5OSwgMC4wMDQsIDAuMDA0MDAxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0kiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjE0NiwgMC4wMDIxNDcsIDAuMDAyMTUzLCAwLjAwMjE1NSwgMC4wMDIxNTYsIDAuMDAyMTU3LCAwLjAwMjE1NyIsIFwKLSAgICAgICAgICAiMC4wMDIxMzcsIDAuMDAyMTM4LCAwLjAwMjE0NSwgMC4wMDIxNDgsIDAuMDAyMTQ4LCAwLjAwMjE0OSwgMC4wMDIxNDkiLCBcCi0gICAgICAgICAgIjAuMDAyMTQ0LCAwLjAwMjE0NSwgMC4wMDIxNTEsIDAuMDAyMTU0LCAwLjAwMjE1NSwgMC4wMDIxNTYsIDAuMDAyMTU2IiwgXAotICAgICAgICAgICIwLjAwMjE3LCAwLjAwMjE3MiwgMC4wMDIxNzgsIDAuMDAyMTgxLCAwLjAwMjE4MiwgMC4wMDIxODMsIDAuMDAyMTgzIiwgXAotICAgICAgICAgICIwLjAwMjIwOSwgMC4wMDIyMSwgMC4wMDIyMTYsIDAuMDAyMjE5LCAwLjAwMjIyLCAwLjAwMjIyMSwgMC4wMDIyMjEiLCBcCi0gICAgICAgICAgIjAuMDAyMjg1LCAwLjAwMjI4NSwgMC4wMDIyODgsIDAuMDAyMjksIDAuMDAyMjkxLCAwLjAwMjI5MiwgMC4wMDIyOTIiLCBcCi0gICAgICAgICAgIjAuMDAyMzUxLCAwLjAwMjM1MiwgMC4wMDIzNTMsIDAuMDAyMzU1LCAwLjAwMjM1NiwgMC4wMDIzNTgsIDAuMDAyMzU4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzNTE1LCAwLjAwMzUxNiwgMC4wMDM1MjIsIDAuMDAzNTI0LCAwLjAwMzUyNSwgMC4wMDM1MjYsIDAuMDAzNTI3IiwgXAotICAgICAgICAgICIwLjAwMzUxNiwgMC4wMDM1MTgsIDAuMDAzNTI0LCAwLjAwMzUyNiwgMC4wMDM1MjgsIDAuMDAzNTI5LCAwLjAwMzUyOSIsIFwKLSAgICAgICAgICAiMC4wMDM1MzgsIDAuMDAzNTQsIDAuMDAzNTQ2LCAwLjAwMzU0OSwgMC4wMDM1NSwgMC4wMDM1NTEsIDAuMDAzNTUxIiwgXAotICAgICAgICAgICIwLjAwMzU3MiwgMC4wMDM1NzMsIDAuMDAzNTc4LCAwLjAwMzU4MSwgMC4wMDM1ODMsIDAuMDAzNTg0LCAwLjAwMzU4NCIsIFwKLSAgICAgICAgICAiMC4wMDM2MTMsIDAuMDAzNjEzLCAwLjAwMzYxOSwgMC4wMDM2MjIsIDAuMDAzNjIzLCAwLjAwMzYyNCwgMC4wMDM2MjQiLCBcCi0gICAgICAgICAgIjAuMDAzNjg1LCAwLjAwMzY4NywgMC4wMDM2ODksIDAuMDAzNjkxLCAwLjAwMzY5MiwgMC4wMDM2OTMsIDAuMDAzNjkzIiwgXAotICAgICAgICAgICIwLjAwMzc2NSwgMC4wMDM3NjIsIDAuMDAzNzYzLCAwLjAwMzc2NCwgMC4wMDM3NjQsIDAuMDAzNzY1LCAwLjAwMzc2NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUykgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjE5ODkwMTsKLSAgICBmdW5jdGlvbiA6ICIoKEFeQileQ0kpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDc4ODEsIDAuMTE4NTI4LCAwLjIxMzY2NywgMC4zNzE4NDIsIDAuNTI5ODI1LCAwLjg5ODMyNiwgMS4xMDg5NCIsIFwKLSAgICAgICAgICAiMC4xMTI2OTgsIDAuMTIzMzUsIDAuMjE4NDk1LCAwLjM3NjY4MiwgMC41MzQ2NDIsIDAuOTAzMTQyLCAxLjExMzgxIiwgXAotICAgICAgICAgICIwLjExODE5LCAwLjEyODg1NCwgMC4yMjQwMDEsIDAuMzgyMTg2LCAwLjU0MDEwNywgMC45MDg2NCwgMS4xMTkxNyIsIFwKLSAgICAgICAgICAiMC4xMjM0MDEsIDAuMTM0MDU5LCAwLjIyOTE5OCwgMC4zODc0MTMsIDAuNTQ1MywgMC45MTM4MjMsIDEuMTI0MzEiLCBcCi0gICAgICAgICAgIjAuMTI4MzQ3LCAwLjEzODk4NSwgMC4yMzQxMywgMC4zOTIyOSwgMC41NTAyMjQsIDAuOTE4NzgxLCAxLjEyOTI4IiwgXAotICAgICAgICAgICIwLjEzNTI0NywgMC4xNDU5MywgMC4yNDEwODcsIDAuMzk5MjQ1LCAwLjU1NzIyLCAwLjkyNTY1NiwgMS4xMzY0NiIsIFwKLSAgICAgICAgICAiMC4xNDA3NiwgMC4xNTE0NTEsIDAuMjQ2NjE1LCAwLjQwNDc1MSwgMC41NjI4NTIsIDAuOTMxMjIxLCAxLjE0MTczIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEyMTQ1OCwgMC4xNDMwNzcsIDAuMzQwNDE4LCAwLjY3MjUxMiwgMS4wMDMzNywgMS43NzgzMywgMi4yMjE4OCIsIFwKLSAgICAgICAgICAiMC4xMjE0MzQsIDAuMTQzMDUxLCAwLjM0MDQ2OSwgMC42NzI0NzEsIDEuMDA0OTUsIDEuNzc5MDEsIDIuMjI0NjUiLCBcCi0gICAgICAgICAgIjAuMTIxNTAxLCAwLjE0MzA1OCwgMC4zNDA0NTUsIDAuNjcyNDQsIDEuMDAzODcsIDEuNzc5MDUsIDIuMjI0NjUiLCBcCi0gICAgICAgICAgIjAuMTIxNzQ3LCAwLjE0MzI2NCwgMC4zMzk4NjQsIDAuNjcxMzQ3LCAxLjAwMzgxLCAxLjc3OTI3LCAyLjIyNDQiLCBcCi0gICAgICAgICAgIjAuMTIyMTM4LCAwLjE0MzUxNSwgMC4zNDA0MjIsIDAuNjcxNTQ0LCAxLjAwNDgzLCAxLjc3OTkxLCAyLjIyMjIxIiwgXAotICAgICAgICAgICIwLjEyMjY5LCAwLjE0NDAyNywgMC4zNDA2NDIsIDAuNjcyNDAxLCAxLjAwNDgzLCAxLjc3OTg1LCAyLjIyMzMzIiwgXAotICAgICAgICAgICIwLjEyMzEzOCwgMC4xNDQzOCwgMC4zNDAyOTUsIDAuNjcyMzg3LCAxLjAwMzU3LCAxLjc3OTc4LCAyLjIyMjMxIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwODk2NywgMC4xMTg4NiwgMC4yMDYzMSwgMC4zNTEzMTIsIDAuNDk2MjU4LCAwLjgzNDA1MywgMS4wMjcwOCIsIFwKLSAgICAgICAgICAiMC4xMTM5MTMsIDAuMTIzODIzLCAwLjIxMTI2MiwgMC4zNTYyNjIsIDAuNTAxMTk3LCAwLjgzOTAwMSwgMS4wMzIwNCIsIFwKLSAgICAgICAgICAiMC4xMTg3MDcsIDAuMTI4NTk5LCAwLjIxNjA1NCwgMC4zNjEwNTcsIDAuNTA1OTg4LCAwLjg0Mzc5NCwgMS4wMzY4NCIsIFwKLSAgICAgICAgICAiMC4xMjMxMjMsIDAuMTMzMDE4LCAwLjIyMDQ3NCwgMC4zNjU0NzcsIDAuNTEwNDE3LCAwLjg0ODIwOCwgMS4wNDEyNCIsIFwKLSAgICAgICAgICAiMC4xMjcxNDcsIDAuMTM3MDU3LCAwLjIyNDU1NCwgMC4zNjk1NTksIDAuNTE0NTE0LCAwLjg1MjM2NiwgMS4wNDUzMiIsIFwKLSAgICAgICAgICAiMC4xMzI4MTksIDAuMTQyODI2LCAwLjIzMDMyNiwgMC4zNzUzMzcsIDAuNTIwMTksIDAuODU4MDQyLCAxLjA1MTI1IiwgXAotICAgICAgICAgICIwLjEzNzI2NywgMC4xNDcyMjUsIDAuMjM0ODE5LCAwLjM3OTg0MSwgMC41MjQ3MTIsIDAuODYyNTk4LCAxLjA1NTYxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExMTI3MywgMC4xMzAzMTksIDAuMzA1NjY1LCAwLjYwMTg4MywgMC44OTkyOTksIDEuNTkzMSwgMS45ODg5MiIsIFwKLSAgICAgICAgICAiMC4xMTEyMjMsIDAuMTMwMjY2LCAwLjMwNTU4NiwgMC42MDE4NjIsIDAuODk5MzA3LCAxLjU5Mjk4LCAxLjk4OSIsIFwKLSAgICAgICAgICAiMC4xMTEyNzMsIDAuMTMwMzUzLCAwLjMwNTY1MywgMC42MDE4NTYsIDAuODk5MywgMS41OTMwNywgMS45ODkiLCBcCi0gICAgICAgICAgIjAuMTExNDg5LCAwLjEzMDU1MiwgMC4zMDU3MjksIDAuNjAxODk0LCAwLjg5OTI3OSwgMS41OTMxOCwgMS45ODg5OCIsIFwKLSAgICAgICAgICAiMC4xMTE4OSwgMC4xMzA4ODQsIDAuMzA1ODM4LCAwLjYwMTkzLCAwLjg5ODA1NCwgMS41OTIxNCwgMS45ODg3MiIsIFwKLSAgICAgICAgICAiMC4xMTI1MTEsIDAuMTMxNTI5LCAwLjMwNjE3LCAwLjYwMjA1OCwgMC44OTkwMzcsIDEuNTkzMTcsIDEuOTg4ODQiLCBcCi0gICAgICAgICAgIjAuMTEzMzQzLCAwLjEzMjA0NCwgMC4zMDY0MiwgMC42MDIwNiwgMC44OTkxMzIsIDEuNTkzMTYsIDEuOTg5NzYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTMxNTU3LCAwLjE0MjA5NCwgMC4yMzY4NzEsIDAuMzk0NzczLCAwLjU1MjY1OSwgMC45MjA5OTMsIDEuMTMxNDYiLCBcCi0gICAgICAgICAgIjAuMTM4MjY4LCAwLjE0ODgwOCwgMC4yNDM2MTcsIDAuNDAxNDg5LCAwLjU1OTMzNSwgMC45Mjc2OTQsIDEuMTM4MjEiLCBcCi0gICAgICAgICAgIjAuMTQ1MTY0LCAwLjE1NTcwOCwgMC4yNTA0OCwgMC40MDgzNjgsIDAuNTY2MjM3LCAwLjkzNDYxOSwgMS4xNDUwOCIsIFwKLSAgICAgICAgICAiMC4xNTE0NTQsIDAuMTYxOTk5LCAwLjI1Njc3OCwgMC40MTQ2OTIsIDAuNTcyNTMyLCAwLjk0MDg5NywgMS4xNTE0MiIsIFwKLSAgICAgICAgICAiMC4xNTY2NjUsIDAuMTY3MjA4LCAwLjI2MTk4MiwgMC40MTk4OTYsIDAuNTc3NzMyLCAwLjk0NjA5OSwgMS4xNTY1NCIsIFwKLSAgICAgICAgICAiMC4xNjM5NjQsIDAuMTc0NTExLCAwLjI2OTI1NiwgMC40MjcxNywgMC41ODUsIDAuOTUzMzMsIDEuMTYzODkiLCBcCi0gICAgICAgICAgIjAuMTY5MzQxLCAwLjE3OTg3MywgMC4yNzQ2MSwgMC40MzI0OTQsIDAuNTkwMzM2LCAwLjk1ODYzMiwgMS4xNjkyNSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTkwMzUsIDAuMTQwNzM1LCAwLjMzODgzNCwgMC42NzExNjEsIDEuMDAyNTYsIDEuNzc3MjksIDIuMjIwNzgiLCBcCi0gICAgICAgICAgIjAuMTE5MDE0LCAwLjE0MDczLCAwLjMzODg2LCAwLjY3MTE2OSwgMS4wMDI5NiwgMS43NzgwNSwgMi4yMjEzOCIsIFwKLSAgICAgICAgICAiMC4xMTkwNjIsIDAuMTQwNzM1LCAwLjMzODg1NiwgMC42NzExNjEsIDEuMDAzMDMsIDEuNzc3NDIsIDIuMjIzMDEiLCBcCi0gICAgICAgICAgIjAuMTE5MDM3LCAwLjE0MDc0NywgMC4zMzg4NTksIDAuNjcxMTU1LCAxLjAwMywgMS43NzcyLCAyLjIyMzM2IiwgXAotICAgICAgICAgICIwLjExOTEyLCAwLjE0MDc4NywgMC4zMzg4MjksIDAuNjcxMTUzLCAxLjAwMywgMS43Nzc4MywgMi4yMjMzMyIsIFwKLSAgICAgICAgICAiMC4xMTkxMywgMC4xNDA3NTksIDAuMzM4NjAxLCAwLjY3MTExMywgMS4wMDI5MywgMS43Nzk0MywgMi4yMjMwMyIsIFwKLSAgICAgICAgICAiMC4xMTkwNDcsIDAuMTQwNjU5LCAwLjMzODU3OSwgMC42NzAzMTQsIDEuMDAzNTQsIDEuNzc5NDQsIDIuMjIzIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEyNTU2NCwgMC4xMzUzMjcsIDAuMjIyMjY3LCAwLjM2Njk5OSwgMC41MTE3MzYsIDAuODQ5NTE4LCAxLjA0MjM4IiwgXAotICAgICAgICAgICIwLjEzMTc4NywgMC4xNDE1NSwgMC4yMjg0OTYsIDAuMzczMjI0LCAwLjUxOCwgMC44NTU3MzQsIDEuMDQ4NjUiLCBcCi0gICAgICAgICAgIjAuMTM5Mjk0LCAwLjE0OTA1NiwgMC4yMzYwMDcsIDAuMzgwNzc0LCAwLjUyNTQ3MywgMC44NjMyMjgsIDEuMDU2MjEiLCBcCi0gICAgICAgICAgIjAuMTQ2MzI2LCAwLjE1NjA4OSwgMC4yNDMwMzMsIDAuMzg3ODIxLCAwLjUzMjU5NSwgMC44NzAzNDYsIDEuMDYzMjIiLCBcCi0gICAgICAgICAgIjAuMTUyNTk3LCAwLjE2MjM2MSwgMC4yNDkyOTksIDAuMzk0MDgsIDAuNTM4ODU3LCAwLjg3NjUzMywgMS4wNjk0IiwgXAotICAgICAgICAgICIwLjE2MTAzOSwgMC4xNzA4MDEsIDAuMjU3NzU2LCAwLjQwMjUyNSwgMC41NDcyMTEsIDAuODg0OTEzLCAxLjA3Nzk2IiwgXAotICAgICAgICAgICIwLjE2NzU0LCAwLjE3NzI3OCwgMC4yNjQyMjIsIDAuNDA4OTU0LCAwLjU1MzY5OCwgMC44OTE0OTgsIDEuMDg0MzMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTA4ODMyLCAwLjEyNzk4OCwgMC4zMDM4NjEsIDAuNjAwNjYyLCAwLjg5ODIxNCwgMS41OTMwNSwgMS45ODg4NyIsIFwKLSAgICAgICAgICAiMC4xMDg4MTksIDAuMTI3OTc5LCAwLjMwMzg0LCAwLjYwMDU3OCwgMC44OTgyMjQsIDEuNTkyODIsIDEuOTg5NDYiLCBcCi0gICAgICAgICAgIjAuMTA4ODI1LCAwLjEyNzk4OCwgMC4zMDM4NjcsIDAuNjAwMDAxLCAwLjg5ODAzMSwgMS41OTI3NCwgMS45ODk2NiIsIFwKLSAgICAgICAgICAiMC4xMDg4MzgsIDAuMTI3OTkzLCAwLjMwMzg1MywgMC42MDA2NjgsIDAuODk3NzksIDEuNTkyNzcsIDEuOTg5MjYiLCBcCi0gICAgICAgICAgIjAuMTA4ODQ0LCAwLjEyNzk5OCwgMC4zMDM3ODEsIDAuNTk5ODY4LCAwLjg5NzAyNywgMS41OTI4LCAxLjk4ODYyIiwgXAotICAgICAgICAgICIwLjEwODg3NSwgMC4xMjgwMDIsIDAuMzAzODQxLCAwLjYwMDU1OSwgMC44OTgwNjEsIDEuNTkwMzIsIDEuOTg5NjYiLCBcCi0gICAgICAgICAgIjAuMTA4ODIzLCAwLjEyNzk0MywgMC4zMDM4NSwgMC42MDA0MDMsIDAuODk4MTA4LCAxLjU5MTk1LCAxLjk4OTI2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwNjQzNywgMC4xMTcwOSwgMC4yMTIyNDcsIDAuMzcwMzc5LCAwLjUyODM2NywgMC44OTY5NjYsIDEuMTA3NDYiLCBcCi0gICAgICAgICAgIjAuMTEyNDI2LCAwLjEyMzA4MywgMC4yMTgyNDcsIDAuMzc2NDQ4LCAwLjUzNDM1OCwgMC45MDI4OTcsIDEuMTEzNDIiLCBcCi0gICAgICAgICAgIjAuMTE5OTk3LCAwLjEzMDY0NiwgMC4yMjU4MDIsIDAuMzgzOTkzLCAwLjU0MTk3MywgMC45MTA0MjQsIDEuMTIxMDIiLCBcCi0gICAgICAgICAgIjAuMTI3MzIsIDAuMTM3OTY4LCAwLjIzMzA5NiwgMC4zOTEyODUsIDAuNTQ5MjU3LCAwLjkxNzY5MSwgMS4xMjg0NiIsIFwKLSAgICAgICAgICAiMC4xMzM5NTUsIDAuMTQ0NjA2LCAwLjIzOTcwMSwgMC4zOTc4MjIsIDAuNTU1ODE5LCAwLjkyNDUyMSwgMS4xMzQ4NCIsIFwKLSAgICAgICAgICAiMC4xNDM0MjcsIDAuMTU0MTI2LCAwLjI0OTI3LCAwLjQwNzQyOSwgMC41NjUzNjYsIDAuOTMzOTQxLCAxLjE0NDM4IiwgXAotICAgICAgICAgICIwLjE1MDYzLCAwLjE2MTMzOCwgMC4yNTY1NDgsIDAuNDE0NzA2LCAwLjU3MjcyOCwgMC45NDExMiwgMS4xNTE2NSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMjE1MTksIDAuMTQzMDE2LCAwLjM0MDQ4MSwgMC42NzI0MTUsIDEuMDA0OTMsIDEuNzc4NjIsIDIuMjIwOCIsIFwKLSAgICAgICAgICAiMC4xMjE0NzksIDAuMTQzMDQ2LCAwLjM0MDQ2NSwgMC42NzEzOTksIDEuMDAzODIsIDEuNzc5MDQsIDIuMjI0NDciLCBcCi0gICAgICAgICAgIjAuMTIxNTA2LCAwLjE0MzExNCwgMC4zNDA0NDMsIDAuNjcyMzU0LCAxLjAwNDgsIDEuNzc5MjksIDIuMjIxNjkiLCBcCi0gICAgICAgICAgIjAuMTIxNzk1LCAwLjE0MzI5NSwgMC4zNDA0OCwgMC42NzE0MTUsIDEuMDA0OCwgMS43Nzk3NiwgMi4yMjMyNCIsIFwKLSAgICAgICAgICAiMC4xMjIxODUsIDAuMTQzNjIyLCAwLjM0MDM4OSwgMC42NzE4NDUsIDEuMDA0NzksIDEuNzc5NjgsIDIuMjIzMTYiLCBcCi0gICAgICAgICAgIjAuMTIyNjc5LCAwLjE0Mzk4OCwgMC4zNDA0MzMsIDAuNjcxMjM0LCAxLjAwMzg2LCAxLjc4MDc5LCAyLjIyMjQiLCBcCi0gICAgICAgICAgIjAuMTIzMTY3LCAwLjE0NDQzNywgMC4zNDA4MTUsIDAuNjcyNDMyLCAxLjAwNDgyLCAxLjc3OTI3LCAyLjIyMjk1Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwNjcyNSwgMC4xMTY2MjcsIDAuMjA0MTEsIDAuMzQ5MTMxLCAwLjQ5NDA5NywgMC44MzE5MzEsIDEuMDI1MTEiLCBcCi0gICAgICAgICAgIjAuMTEyNDcyLCAwLjEyMjM2OSwgMC4yMDk4NDQsIDAuMzU0ODg2LCAwLjQ5OTgzMSwgMC44Mzc2OTQsIDEuMDMwNjgiLCBcCi0gICAgICAgICAgIjAuMTE5NTEyLCAwLjEyOTQzNSwgMC4yMTY4OTQsIDAuMzYxOTExLCAwLjUwNjgxMywgMC44NDQ2OTQsIDEuMDM3NzMiLCBcCi0gICAgICAgICAgIjAuMTI2MjM5LCAwLjEzNjEzOCwgMC4yMjM2MTgsIDAuMzY4NjY4LCAwLjUxMzYwNywgMC44NTE0LCAxLjA0NDU2IiwgXAotICAgICAgICAgICIwLjEzMjI4NywgMC4xNDIyMTYsIDAuMjI5Njk1LCAwLjM3NDcwNSwgMC41MTk2NjIsIDAuODU3NDUzLCAxLjA1MDUiLCBcCi0gICAgICAgICAgIjAuMTQwOTQxLCAwLjE1MDkxLCAwLjIzODQ2LCAwLjM4MzQ2NSwgMC41MjgzNTMsIDAuODY2MjIzLCAxLjA1OTI1IiwgXAotICAgICAgICAgICIwLjE0NzUyMywgMC4xNTc1MDYsIDAuMjQ1MjI5LCAwLjM5MDIyNywgMC41MzUxMjUsIDAuODczMDE3LCAxLjA2NjAxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExMTIyNiwgMC4xMzAzNDMsIDAuMzA1Njc4LCAwLjYwMTkyMywgMC44OTgyMzcsIDEuNTkyNTEsIDEuOTg4ODEiLCBcCi0gICAgICAgICAgIjAuMTExMjA0LCAwLjEzMDMwMywgMC4zMDU2NTYsIDAuNjAxOTgsIDAuODk5MzMzLCAxLjU5MzUzLCAxLjk4OTIzIiwgXAotICAgICAgICAgICIwLjExMTI2MywgMC4xMzAzNCwgMC4zMDU2NDIsIDAuNjAxODc0LCAwLjg5ODE5NiwgMS41OTE0MSwgMS45ODg3NCIsIFwKLSAgICAgICAgICAiMC4xMTE1NjgsIDAuMTMwNjAzLCAwLjMwNTc1OCwgMC42MDEwMjksIDAuODk4MTA5LCAxLjU5MzA2LCAxLjk5MDQ3IiwgXAotICAgICAgICAgICIwLjExMjA4MSwgMC4xMzEwMzMsIDAuMzA1OTA4LCAwLjYwMTg4NiwgMC44OTc0NzgsIDEuNTkzLCAxLjk4OTAzIiwgXAotICAgICAgICAgICIwLjExMjcyMywgMC4xMzE2NDYsIDAuMzA2MjU1LCAwLjYwMTMwMywgMC44OTgxMTQsIDEuNTkzMDUsIDEuOTg5NzQiLCBcCi0gICAgICAgICAgIjAuMTEzMjg3LCAwLjEzMjAzOSwgMC4zMDYzOTksIDAuNjAyMTM2LCAwLjg5OTIyNCwgMS41OTMxOSwgMS45ODk2NiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMzIyNjksIDAuMTQyODMzLCAwLjIzNzcwNCwgMC4zOTU3MTgsIDAuNTUzNTE5LCAwLjkyMTg4NCwgMS4xMzIzNiIsIFwKLSAgICAgICAgICAiMC4xMzg3MDQsIDAuMTQ5MjU5LCAwLjI0NDEzNiwgMC40MDIxMDUsIDAuNTYwMDAzLCAwLjkyODUyLCAxLjEzODgiLCBcCi0gICAgICAgICAgIjAuMTQ1MTgyLCAwLjE1NTc0MywgMC4yNTA2MjQsIDAuNDA4NTYsIDAuNTY2NDQ0LCAwLjkzNDgwNSwgMS4xNDUyOSIsIFwKLSAgICAgICAgICAiMC4xNTQwMzksIDAuMTY0NTgsIDAuMjU5MzAyLCAwLjQxNzE3MiwgMC41NzUwMjksIDAuOTQzMzgxLCAxLjE1MzgyIiwgXAotICAgICAgICAgICIwLjE2MTgxNSwgMC4xNzIyMjUsIDAuMjY3MDgsIDAuNDI0OTQzLCAwLjU4Mjc4NSwgMC45NTExMjMsIDEuMTYxNjMiLCBcCi0gICAgICAgICAgIjAuMTcyMzcsIDAuMTgyOTAyLCAwLjI3NzYxOCwgMC40MzU0NDIsIDAuNTkzMjY2LCAwLjk2MTczMywgMS4xNzIxMiIsIFwKLSAgICAgICAgICAiMC4xODAxNzEsIDAuMTkwNzA1LCAwLjI4NTM5OCwgMC40NDMyODcsIDAuNjAxMDc1LCAwLjk2OTM5NywgMS4xNzk4MiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTg5NDMsIDAuMTQwNzA5LCAwLjMzODgxNywgMC42NzExNjUsIDEuMDAzNzgsIDEuNzc4NTcsIDIuMjIxNjgiLCBcCi0gICAgICAgICAgIjAuMTE4OTQxLCAwLjE0MDcxNCwgMC4zMzg0NzcsIDAuNjcxMjg3LCAxLjAwMzU5LCAxLjc3OTg3LCAyLjIyMTY0IiwgXAotICAgICAgICAgICIwLjExODk0NSwgMC4xNDA3MTcsIDAuMzM4ODA5LCAwLjY3MTI2LCAxLjAwMzc4LCAxLjc3OTU4LCAyLjIyMTc2IiwgXAotICAgICAgICAgICIwLjExOTAwMiwgMC4xNDA3MTUsIDAuMzM4ODM2LCAwLjY3MTMsIDEuMDAzOCwgMS43Nzg2MiwgMi4yMjI5IiwgXAotICAgICAgICAgICIwLjExOTA3NiwgMC4xNDA3NiwgMC4zMzg4NDgsIDAuNjcxMjUsIDEuMDAzNzcsIDEuNzc4NTMsIDIuMjIzMDIiLCBcCi0gICAgICAgICAgIjAuMTE5MTI0LCAwLjE0MDczNSwgMC4zMzg3OSwgMC42NzEyNiwgMS4wMDM3MiwgMS43Nzk3MSwgMi4yMjE1MSIsIFwKLSAgICAgICAgICAiMC4xMTkwMywgMC4xNDA3LCAwLjMzODgwMiwgMC42NzEwNjEsIDEuMDAzNjUsIDEuNzc3MzQsIDIuMjIzMDEiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTI1MTI0LCAwLjEzNDg3LCAwLjIyMTgxNiwgMC4zNjY1NzYsIDAuNTExMzIxLCAwLjg0OTA1MiwgMS4wNDIwMyIsIFwKLSAgICAgICAgICAiMC4xMzI0MTMsIDAuMTQyMTc0LCAwLjIyOTExNCwgMC4zNzM4NjIsIDAuNTE4NTc5LCAwLjg1NjM1MiwgMS4wNDkyOSIsIFwKLSAgICAgICAgICAiMC4xNDE5OTksIDAuMTUxNzUzLCAwLjIzODcsIDAuMzgzNDc2LCAwLjUyODE5OSwgMC44NjU5MjIsIDEuMDU4OTUiLCBcCi0gICAgICAgICAgIjAuMTUwOTk0LCAwLjE2MDc0OCwgMC4yNDc2OTMsIDAuMzkyNTM4LCAwLjUzNzIzNiwgMC44NzUwMjcsIDEuMDY3OTciLCBcCi0gICAgICAgICAgIjAuMTU4NzM1LCAwLjE2ODQ5LCAwLjI1NTQzOSwgMC40MDAxODksIDAuNTQ0ODg4LCAwLjg4MjY1NywgMS4wNzU2OSIsIFwKLSAgICAgICAgICAiMC4xNjk1MDcsIDAuMTc5NDAyLCAwLjI2NjM0MiwgMC40MTEwNzIsIDAuNTU1Njc4LCAwLjg5MzQ3MSwgMS4wODYyOSIsIFwKLSAgICAgICAgICAiMC4xNzc0OTgsIDAuMTg3MjQ5LCAwLjI3NDE2MywgMC40MTg5OTMsIDAuNTYzNzE0LCAwLjkwMTM0NCwgMS4wOTQ0MiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDg3MzYsIDAuMTI3OTAyLCAwLjMwMzg1MiwgMC42MDA4ODgsIDAuODk4NDYsIDEuNTkzMDYsIDEuOTg5OTciLCBcCi0gICAgICAgICAgIjAuMTA4NzIyLCAwLjEyNzksIDAuMzAzODMyLCAwLjYwMDc5MiwgMC44OTgzMzEsIDEuNTkwNDIsIDEuOTg5ODMiLCBcCi0gICAgICAgICAgIjAuMTA4NzIyLCAwLjEyNzg5MiwgMC4zMDM4MjgsIDAuNTk5NjM3LCAwLjg5ODIwMywgMS41OTI3MiwgMS45ODk3NSIsIFwKLSAgICAgICAgICAiMC4xMDg2ODcsIDAuMTI3ODkzLCAwLjMwMzgxMiwgMC42MDA3ODUsIDAuODk4Mjk4LCAxLjU5Mjc1LCAxLjk4OTQ4IiwgXAotICAgICAgICAgICIwLjEwODc2MywgMC4xMjc5MjgsIDAuMzAzODIyLCAwLjYwMDY4NiwgMC44OTc5OTYsIDEuNTkyNjIsIDEuOTg5NzEiLCBcCi0gICAgICAgICAgIjAuMTA4NzQxLCAwLjEyNzg5MSwgMC4zMDM3ODksIDAuNjAwNDk1LCAwLjg5ODExLCAxLjU5MjI1LCAxLjk4ODk0IiwgXAotICAgICAgICAgICIwLjEwODY2NywgMC4xMjc5NDQsIDAuMzAzNzI1LCAwLjU5OTc5NCwgMC44OTc5MzgsIDEuNTkyMjIsIDEuOTg2ODEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0kiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwNjI3MiwgMC4xMTY5MzIsIDAuMjEyMTAxLCAwLjM3MDI1NCwgMC41MjgyNTMsIDAuODk2ODUyLCAxLjEwNzQ5IiwgXAotICAgICAgICAgICIwLjExMjc4NCwgMC4xMjM0NDIsIDAuMjE4NjA5LCAwLjM3NjgwMywgMC41MzQ3OTQsIDAuOTAzMjc3LCAxLjExMzgyIiwgXAotICAgICAgICAgICIwLjEyMTU2NSwgMC4xMzIyMjMsIDAuMjI3Mzg0LCAwLjM4NTU4NCwgMC41NDM0OTMsIDAuOTEyMDcsIDEuMTIyNTYiLCBcCi0gICAgICAgICAgIjAuMTMwMzk4LCAwLjE0MTA0MywgMC4yMzYxNzksIDAuMzk0MzcsIDAuNTUyMjY2LCAwLjkyMDc5NCwgMS4xMzEzMSIsIFwKLSAgICAgICAgICAiMC4xMzgyNzQsIDAuMTQ4OTQxLCAwLjI0NDA3MywgMC40MDIyMywgMC41NjAxODIsIDAuOTI4NzMsIDEuMTM5MjIiLCBcCi0gICAgICAgICAgIjAuMTQ5MTI0LCAwLjE1OTgyNywgMC4yNTQ5NzUsIDAuNDEzMDkxLCAwLjU3MTA5NywgMC45Mzk2MzYsIDEuMTUwMDkiLCBcCi0gICAgICAgICAgIjAuMTU3NDE1LCAwLjE2ODI1NSwgMC4yNjM0NDcsIDAuNDIxNTQzLCAwLjU3OTU0OSwgMC45NDc5NjYsIDEuMTU4NTEiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTIxNTExLCAwLjE0MzA2NywgMC4zNDA0NDgsIDAuNjcxNjg1LCAxLjAwNTA3LCAxLjc3OTkxLCAyLjIyMDU5IiwgXAotICAgICAgICAgICIwLjEyMTQyMywgMC4xNDMwNDIsIDAuMzQwNDMxLCAwLjY3MjQ4NCwgMS4wMDM1NSwgMS43NzkwNSwgMi4yMjQ2NCIsIFwKLSAgICAgICAgICAiMC4xMjE1MzgsIDAuMTQzMDg0LCAwLjM0MDQ0NywgMC42NzE0MDIsIDEuMDAzODgsIDEuNzc4MzksIDIuMjIyMTYiLCBcCi0gICAgICAgICAgIjAuMTIxNzcsIDAuMTQzMjMzLCAwLjM0MDQ2MSwgMC42NzE0MSwgMS4wMDM4MSwgMS43Nzk1MiwgMi4yMjQ0IiwgXAotICAgICAgICAgICIwLjEyMjA5LCAwLjE0MzU0NCwgMC4zNDAxNjIsIDAuNjcyMzE4LCAxLjAwMzgzLCAxLjc4MDc4LCAyLjIyMjk0IiwgXAotICAgICAgICAgICIwLjEyMjg4OCwgMC4xNDQyNTMsIDAuMzQwNzAxLCAwLjY3MjM2MiwgMS4wMDQ3NiwgMS43NzkzMywgMi4yMjI1MyIsIFwKLSAgICAgICAgICAiMC4xMjMzMjksIDAuMTQ0NTIyLCAwLjM0MDg4MSwgMC42NzE4MTgsIDEuMDA0NzYsIDEuNzc5MTgsIDIuMjIyNTUiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTA0Mjc3LCAwLjExNDE4MiwgMC4yMDE2NjEsIDAuMzQ2NzA0LCAwLjQ5MTU4NiwgMC44Mjk0NjUsIDEuMDIyNSIsIFwKLSAgICAgICAgICAiMC4xMTA3NzQsIDAuMTIwNjkyLCAwLjIwODE3NSwgMC4zNTMxODEsIDAuNDk4MTUxLCAwLjgzNjAxNSwgMS4wMjkwMSIsIFwKLSAgICAgICAgICAiMC4xMTk3MTIsIDAuMTI5NjI2LCAwLjIxNzA4NSwgMC4zNjIwODQsIDAuNTA2OTYzLCAwLjg0NDgzOSwgMS4wMzc4NiIsIFwKLSAgICAgICAgICAiMC4xMjgzNTksIDAuMTM4MjY5LCAwLjIyNTczNCwgMC4zNzA3MywgMC41MTU2MDksIDAuODUzNDc5LCAxLjA0NjUiLCBcCi0gICAgICAgICAgIjAuMTM2MDA1LCAwLjE0NTk0MiwgMC4yMzM0MzYsIDAuMzc4NDIxLCAwLjUyMzI4MywgMC44NjExNTEsIDEuMDU0MTgiLCBcCi0gICAgICAgICAgIjAuMTQ2ODgyLCAwLjE1Njg0MiwgMC4yNDQ0MTgsIDAuMzg5NDM0LCAwLjUzNDMwNiwgMC44NzIxMzUsIDEuMDY1MjYiLCBcCi0gICAgICAgICAgIjAuMTU0ODM5LCAwLjE2NDg1NSwgMC4yNTI1OTksIDAuMzk3NTksIDAuNTQyNDcsIDAuODgwMjk5LCAxLjA3MzMyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExMTIwOCwgMC4xMzAzNDIsIDAuMzA1NjkxLCAwLjYwMTk5NywgMC44OTgxOCwgMS41OTI3NSwgMS45ODk4NiIsIFwKLSAgICAgICAgICAiMC4xMTExNzYsIDAuMTMwMjg5LCAwLjMwNTY0MSwgMC42MDE4MDksIDAuODk3OTksIDEuNTg5NzYsIDEuOTkwMTgiLCBcCi0gICAgICAgICAgIjAuMTExMjk2LCAwLjEzMDM3LCAwLjMwNTY0NiwgMC42MDE4NDIsIDAuODk5MDg0LCAxLjU5MTMsIDEuOTg3MzkiLCBcCi0gICAgICAgICAgIjAuMTExNDU1LCAwLjEzMDU3NywgMC4zMDU3MTQsIDAuNjAxODY5LCAwLjg5ODk4MSwgMS41OTIxNCwgMS45ODg3NiIsIFwKLSAgICAgICAgICAiMC4xMTIwOSwgMC4xMzEwNjksIDAuMzA1OTUzLCAwLjYwMTkzOCwgMC44OTkwODcsIDEuNTkzMDEsIDEuOTg5NDkiLCBcCi0gICAgICAgICAgIjAuMTEyNzA1LCAwLjEzMTYxOSwgMC4zMDYyNDMsIDAuNjAxNDEsIDAuODk4MTI5LCAxLjU5MzE0LCAxLjk5MDMxIiwgXAotICAgICAgICAgICIwLjExMzIzMywgMC4xMzIxMjUsIDAuMzA2MTksIDAuNjAyMjQsIDAuODk3ODM0LCAxLjU5MzA0LCAxLjk4OTYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0kiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEyNjg3LCAwLjEzNzQzNCwgMC4yMzIyOSwgMC4zOTAyOSwgMC41NDgwMDYsIDAuOTE2NTI1LCAxLjEyNjk4IiwgXAotICAgICAgICAgICIwLjEzNDUwNSwgMC4xNDUwNywgMC4yMzk5MzksIDAuMzk3OTI5LCAwLjU1NTc2NiwgMC45MjQxMzQsIDEuMTM0NiIsIFwKLSAgICAgICAgICAiMC4xNDM5NjYsIDAuMTU0NTIxLCAwLjI0OTM4OSwgMC40MDczNjQsIDAuNTY1MjUzLCAwLjkzMzY1NSwgMS4xNDQwNiIsIFwKLSAgICAgICAgICAiMC4xNTI0NzEsIDAuMTYzMDIsIDAuMjU3ODgyLCAwLjQxNTg1OCwgMC41NzM4MDUsIDAuOTQyMTM3LCAxLjE1MjgiLCBcCi0gICAgICAgICAgIjAuMTU5NTQyLCAwLjE3MDEwOSwgMC4yNjQ5NCwgMC40MjI5MjcsIDAuNTgwNzY4LCAwLjk0OTExMywgMS4xNTk1OCIsIFwKLSAgICAgICAgICAiMC4xNjg4NjUsIDAuMTc5NDMyLCAwLjI3NDMwNSwgMC40MzIyMjksIDAuNTkwMjI1LCAwLjk1ODU1MSwgMS4xNjkiLCBcCi0gICAgICAgICAgIjAuMTc1Nzg2LCAwLjE4NjI3NiwgMC4yODEyMzIsIDAuNDM5MTkzLCAwLjU5NzEwNSwgMC45NjU0MjYsIDEuMTc1ODkiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTE4OSwgMC4xNDA2OTUsIDAuMzM4ODExLCAwLjY3MTI5OCwgMS4wMDM3MiwgMS43Nzk4OCwgMi4yMjE2IiwgXAotICAgICAgICAgICIwLjExODkzOCwgMC4xNDA2ODEsIDAuMzM4ODAxLCAwLjY3MTMwMSwgMS4wMDM4LCAxLjc3ODYyLCAyLjIyMTY0IiwgXAotICAgICAgICAgICIwLjExODg5NSwgMC4xNDA2ODksIDAuMzM4ODA1LCAwLjY3MTI5OCwgMS4wMDI5NiwgMS43Nzk3OCwgMi4yMjE2NCIsIFwKLSAgICAgICAgICAiMC4xMTg4OTgsIDAuMTQwNjgsIDAuMzM4Nzg5LCAwLjY3MTI5MiwgMS4wMDM4MiwgMS43Nzk3OCwgMi4yMjMzMyIsIFwKLSAgICAgICAgICAiMC4xMTg5OCwgMC4xNDA3NDQsIDAuMzM4ODE1LCAwLjY3MTMxMiwgMS4wMDM3OSwgMS43Nzg1NCwgMi4yMjE1NiIsIFwKLSAgICAgICAgICAiMC4xMTkyMTEsIDAuMTQxMDA3LCAwLjMzODc0NSwgMC42NzA4OTUsIDEuMDAzNzUsIDEuNzc5NjMsIDIuMjIzMDEiLCBcCi0gICAgICAgICAgIjAuMTE5NDI1LCAwLjE0MTA2MiwgMC4zMzkxMywgMC42NzEwMjgsIDEuMDAzNDYsIDEuNzc5NTMsIDIuMjIyOTgiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTE5OTY1LCAwLjEyOTY3NCwgMC4yMTY2MDYsIDAuMzYxMzk0LCAwLjUwNjEyMiwgMC44NDM4MywgMS4wMzY3OSIsIFwKLSAgICAgICAgICAiMC4xMjc0NjMsIDAuMTM3MTc2LCAwLjIyNDExNCwgMC4zNjg4OTUsIDAuNTEzNjE0LCAwLjg1MTMxMiwgMS4wNDQyOCIsIFwKLSAgICAgICAgICAiMC4xMzY1NywgMC4xNDYyOTIsIDAuMjMzMjIyLCAwLjM3ODAzMywgMC41MjI3ODgsIDAuODYwNDE0LCAxLjA1MzQiLCBcCi0gICAgICAgICAgIjAuMTQ1MDk3LCAwLjE1NDgxOSwgMC4yNDE3NDksIDAuMzg2NTYxLCAwLjUzMTI4LCAwLjg2ODkzNywgMS4wNjE4OSIsIFwKLSAgICAgICAgICAiMC4xNTIyMzUsIDAuMTYxOTUxLCAwLjI0ODg3NSwgMC4zOTM2ODcsIDAuNTM4MzY4LCAwLjg3NjA1NywgMS4wNjkxNyIsIFwKLSAgICAgICAgICAiMC4xNjE4MTIsIDAuMTcxNTM2LCAwLjI1ODQ4MiwgMC40MDMyMzUsIDAuNTQ3OTgsIDAuODg1NjYxLCAxLjA3ODc1IiwgXAotICAgICAgICAgICIwLjE2ODgwNSwgMC4xNzg0OTgsIDAuMjY1NDU1LCAwLjQxMDIwNywgMC41NTQ5ODIsIDAuODkyNjYsIDEuMDg1NzIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTA3NzQsIDAuMTI3MDUxLCAwLjMwMzY3MywgMC42MDA2NDQsIDAuODk4MTgzLCAxLjU5MjQ0LCAxLjk4ODk3IiwgXAotICAgICAgICAgICIwLjEwNzczLCAwLjEyNzA1MiwgMC4zMDM1MDksIDAuNTk5NzI2LCAwLjg5ODEzOCwgMS41OTIxNywgMS45ODg4OCIsIFwKLSAgICAgICAgICAiMC4xMDc3MzQsIDAuMTI3MDQ0LCAwLjMwMzY2OCwgMC42MDA2NzgsIDAuODk4MjM1LCAxLjU5MjQ2LCAxLjk4ODgyIiwgXAotICAgICAgICAgICIwLjEwNzczOSwgMC4xMjcwNjEsIDAuMzAzNjkzLCAwLjYwMDUyNCwgMC44OTgxMTIsIDEuNTkxOTgsIDEuOTg5MDIiLCBcCi0gICAgICAgICAgIjAuMTA3ODYyLCAwLjEyNzE2MSwgMC4zMDM3MTgsIDAuNTk5ODQ1LCAwLjg5ODIzMSwgMS41OTIzNCwgMS45ODk2MyIsIFwKLSAgICAgICAgICAiMC4xMDgwMjUsIDAuMTI3MzIsIDAuMzAzNTg4LCAwLjYwMDQwMywgMC44OTY4OTcsIDEuNTkyMjYsIDEuOTg5NiIsIFwKLSAgICAgICAgICAiMC4xMDc5ODYsIDAuMTI3MjcyLCAwLjMwMzU2MSwgMC41OTk4NywgMC44OTc2MDksIDEuNTkwNTYsIDEuOTg5MTIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDM5NTEsIDAuMDAzOTUyLCAwLjAwMzk1OCwgMC4wMDM5NiwgMC4wMDM5NjEsIDAuMDAzOTYyLCAwLjAwMzk2MyIsIFwKLSAgICAgICAgICAiMC4wMDM5MzQsIDAuMDAzOTM1LCAwLjAwMzk0MiwgMC4wMDM5NDUsIDAuMDAzOTQ2LCAwLjAwMzk0NywgMC4wMDM5NDciLCBcCi0gICAgICAgICAgIjAuMDAzOTM2LCAwLjAwMzkzOCwgMC4wMDM5NDQsIDAuMDAzOTQ4LCAwLjAwMzk0OSwgMC4wMDM5NSwgMC4wMDM5NSIsIFwKLSAgICAgICAgICAiMC4wMDM5NTIsIDAuMDAzOTU0LCAwLjAwMzk2LCAwLjAwMzk2MywgMC4wMDM5NjUsIDAuMDAzOTY2LCAwLjAwMzk2NiIsIFwKLSAgICAgICAgICAiMC4wMDM5ODMsIDAuMDAzOTg0LCAwLjAwMzk5LCAwLjAwMzk5MywgMC4wMDM5OTQsIDAuMDAzOTk1LCAwLjAwMzk5NSIsIFwKLSAgICAgICAgICAiMC4wMDQwMzUsIDAuMDA0MDM2LCAwLjAwNDA0MiwgMC4wMDQwNDQsIDAuMDA0MDQ1LCAwLjAwNDA0NywgMC4wMDQwNDciLCBcCi0gICAgICAgICAgIjAuMDA0MDk0LCAwLjAwNDA5MSwgMC4wMDQwOTgsIDAuMDA0MTAxLCAwLjAwNDEwMiwgMC4wMDQxMDMsIDAuMDA0MTAzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxOTY2LCAwLjAwMTk2OCwgMC4wMDE5NzMsIDAuMDAxOTc1LCAwLjAwMTk3NiwgMC4wMDE5NzcsIDAuMDAxOTc3IiwgXAotICAgICAgICAgICIwLjAwMTkzOSwgMC4wMDE5NDEsIDAuMDAxOTQ3LCAwLjAwMTk1LCAwLjAwMTk1MSwgMC4wMDE5NTEsIDAuMDAxOTUyIiwgXAotICAgICAgICAgICIwLjAwMTk0MiwgMC4wMDE5NDQsIDAuMDAxOTUsIDAuMDAxOTUyLCAwLjAwMTk1NCwgMC4wMDE5NTQsIDAuMDAxOTU1IiwgXAotICAgICAgICAgICIwLjAwMTk2MywgMC4wMDE5NjQsIDAuMDAxOTcsIDAuMDAxOTczLCAwLjAwMTk3MywgMC4wMDE5NzUsIDAuMDAxOTc0IiwgXAotICAgICAgICAgICIwLjAwMTk5NiwgMC4wMDE5OTcsIDAuMDAyMDAyLCAwLjAwMjAwNCwgMC4wMDIwMDUsIDAuMDAyMDA2LCAwLjAwMjAwNyIsIFwKLSAgICAgICAgICAiMC4wMDIwNDYsIDAuMDAyMDQ3LCAwLjAwMjA1MSwgMC4wMDIwNTUsIDAuMDAyMDU2LCAwLjAwMjA1NywgMC4wMDIwNTgiLCBcCi0gICAgICAgICAgIjAuMDAyMTEsIDAuMDAyMTExLCAwLjAwMjExMywgMC4wMDIxMTYsIDAuMDAyMTE3LCAwLjAwMjExOCwgMC4wMDIxMTkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDM4NDUsIDAuMDAzODQ3LCAwLjAwMzg1MywgMC4wMDM4NTUsIDAuMDAzODU3LCAwLjAwMzg1OCwgMC4wMDM4NTgiLCBcCi0gICAgICAgICAgIjAuMDAzODIsIDAuMDAzODIxLCAwLjAwMzgyNywgMC4wMDM4MywgMC4wMDM4MzIsIDAuMDAzODMzLCAwLjAwMzgzMyIsIFwKLSAgICAgICAgICAiMC4wMDM3OTgsIDAuMDAzOCwgMC4wMDM4MDYsIDAuMDAzODEsIDAuMDAzODExLCAwLjAwMzgxMiwgMC4wMDM4MTIiLCBcCi0gICAgICAgICAgIjAuMDAzODIsIDAuMDAzODIxLCAwLjAwMzgyNiwgMC4wMDM4MjgsIDAuMDAzODI5LCAwLjAwMzgyOSwgMC4wMDM4MyIsIFwKLSAgICAgICAgICAiMC4wMDM4NjUsIDAuMDAzODcxLCAwLjAwMzg2NywgMC4wMDM4NjksIDAuMDAzODcsIDAuMDAzODcxLCAwLjAwMzg3MSIsIFwKLSAgICAgICAgICAiMC4wMDM5NDYsIDAuMDAzOTQ2LCAwLjAwMzk0NiwgMC4wMDM5NDcsIDAuMDAzOTQ3LCAwLjAwMzk0OCwgMC4wMDM5NDgiLCBcCi0gICAgICAgICAgIjAuMDAzOTk0LCAwLjAwMzk5NCwgMC4wMDM5OTYsIDAuMDAzOTk4LCAwLjAwMzk5OSwgMC4wMDQsIDAuMDA0MDAxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyMTMzLCAwLjAwMjEzNSwgMC4wMDIxNCwgMC4wMDIxNDIsIDAuMDAyMTQyLCAwLjAwMjE0MiwgMC4wMDIxNDMiLCBcCi0gICAgICAgICAgIjAuMDAyMDk5LCAwLjAwMjEwMSwgMC4wMDIxMDYsIDAuMDAyMTA5LCAwLjAwMjExLCAwLjAwMjExLCAwLjAwMjExIiwgXAotICAgICAgICAgICIwLjAwMjEwMSwgMC4wMDIxMDIsIDAuMDAyMTA4LCAwLjAwMjExMSwgMC4wMDIxMTIsIDAuMDAyMTEyLCAwLjAwMjExMyIsIFwKLSAgICAgICAgICAiMC4wMDIxMjgsIDAuMDAyMTMsIDAuMDAyMTM1LCAwLjAwMjE0NCwgMC4wMDIxNDQsIDAuMDAyMTQ1LCAwLjAwMjE0NSIsIFwKLSAgICAgICAgICAiMC4wMDIxNzIsIDAuMDAyMTcyLCAwLjAwMjE3NiwgMC4wMDIxNzgsIDAuMDAyMTc4LCAwLjAwMjE3OSwgMC4wMDIxNzkiLCBcCi0gICAgICAgICAgIjAuMDAyMjI4LCAwLjAwMjIzNywgMC4wMDIyNCwgMC4wMDIyNDIsIDAuMDAyMjM1LCAwLjAwMjIzNiwgMC4wMDIyMzYiLCBcCi0gICAgICAgICAgIjAuMDAyMjk5LCAwLjAwMjI5OSwgMC4wMDIzLCAwLjAwMjMwNywgMC4wMDIzMDgsIDAuMDAyMzA0LCAwLjAwMjMwOSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNJIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDM1MTUsIDAuMDAzNTE2LCAwLjAwMzUyMiwgMC4wMDM1MjQsIDAuMDAzNTI1LCAwLjAwMzUyNiwgMC4wMDM1MjciLCBcCi0gICAgICAgICAgIjAuMDAzNTE2LCAwLjAwMzUxOCwgMC4wMDM1MjQsIDAuMDAzNTI2LCAwLjAwMzUyOCwgMC4wMDM1MjksIDAuMDAzNTI5IiwgXAotICAgICAgICAgICIwLjAwMzUzOCwgMC4wMDM1NCwgMC4wMDM1NDYsIDAuMDAzNTQ5LCAwLjAwMzU1LCAwLjAwMzU1MSwgMC4wMDM1NTEiLCBcCi0gICAgICAgICAgIjAuMDAzNTcyLCAwLjAwMzU3MywgMC4wMDM1NzgsIDAuMDAzNTgxLCAwLjAwMzU4MywgMC4wMDM1ODQsIDAuMDAzNTg0IiwgXAotICAgICAgICAgICIwLjAwMzYxMywgMC4wMDM2MTMsIDAuMDAzNjE5LCAwLjAwMzYyMiwgMC4wMDM2MjMsIDAuMDAzNjI0LCAwLjAwMzYyNCIsIFwKLSAgICAgICAgICAiMC4wMDM2ODUsIDAuMDAzNjg3LCAwLjAwMzY4OSwgMC4wMDM2OTEsIDAuMDAzNjkyLCAwLjAwMzY5MywgMC4wMDM2OTMiLCBcCi0gICAgICAgICAgIjAuMDAzNzY1LCAwLjAwMzc2MiwgMC4wMDM3NjMsIDAuMDAzNzY0LCAwLjAwMzc2NCwgMC4wMDM3NjUsIDAuMDAzNzY1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyMTQ2LCAwLjAwMjE0NywgMC4wMDIxNTMsIDAuMDAyMTU1LCAwLjAwMjE1NiwgMC4wMDIxNTcsIDAuMDAyMTU3IiwgXAotICAgICAgICAgICIwLjAwMjEzNywgMC4wMDIxMzgsIDAuMDAyMTQ1LCAwLjAwMjE0OCwgMC4wMDIxNDgsIDAuMDAyMTQ5LCAwLjAwMjE0OSIsIFwKLSAgICAgICAgICAiMC4wMDIxNDQsIDAuMDAyMTQ1LCAwLjAwMjE1MSwgMC4wMDIxNTQsIDAuMDAyMTU1LCAwLjAwMjE1NiwgMC4wMDIxNTYiLCBcCi0gICAgICAgICAgIjAuMDAyMTcsIDAuMDAyMTcyLCAwLjAwMjE3OCwgMC4wMDIxODEsIDAuMDAyMTgyLCAwLjAwMjE4MywgMC4wMDIxODMiLCBcCi0gICAgICAgICAgIjAuMDAyMjA5LCAwLjAwMjIxLCAwLjAwMjIxNiwgMC4wMDIyMTksIDAuMDAyMjIsIDAuMDAyMjIxLCAwLjAwMjIyMSIsIFwKLSAgICAgICAgICAiMC4wMDIyODUsIDAuMDAyMjg1LCAwLjAwMjI4OCwgMC4wMDIyOSwgMC4wMDIyOTEsIDAuMDAyMjkyLCAwLjAwMjI5MiIsIFwKLSAgICAgICAgICAiMC4wMDIzNTEsIDAuMDAyMzUyLCAwLjAwMjM1MywgMC4wMDIzNTUsIDAuMDAyMzU2LCAwLjAwMjM1OCwgMC4wMDIzNTgiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IEFEREhYMiAqCi0gKiAtLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKEFEREhYMikgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjcyNzQ1OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDEyNzI4MzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDEyNzI4MzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDEyNzI7Ci0gIH0KLSAgcGluKEIpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMjA5MTQ5OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMjA3Mzg3OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMjA5MTQ5OwotICB9Ci0gIHBpbihDTykgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjY3MzgzNzsKLSAgICBmdW5jdGlvbiA6ICIoQSBCKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDUyMSwgMC4xMzE0MjgsIDAuMTkzODY3LCAwLjI3MjA4NiwgMC4zNDk5MTUsIDAuNDI4MjYxLCAwLjUwNjE0MyIsIFwKLSAgICAgICAgICAiMC4wNTgyMDEsIDAuMTM3NTU4LCAwLjIwMDAxOSwgMC4yNzgyNDIsIDAuMzU2MDM5LCAwLjQzNDQyMSwgMC41MTIzMTMiLCBcCi0gICAgICAgICAgIjAuMDY1NDEyLCAwLjE0NDgyMywgMC4yMDc0MDMsIDAuMjg1MzU0LCAwLjM2MzM3NywgMC40NDE2MiwgMC41MTk1MzkiLCBcCi0gICAgICAgICAgIjAuMDcxNjIsIDAuMTUxMTYsIDAuMjEzODYyLCAwLjI5MTc5NiwgMC4zNjk4MywgMC40NDc4MSwgMC41MjU4MzMiLCBcCi0gICAgICAgICAgIjAuMDc2OTEyLCAwLjE1NjUwMywgMC4yMTkxOTIsIDAuMjk3MDgzLCAwLjM3NTA0MywgMC40NTMyOTMsIDAuNTMxMjgxIiwgXAotICAgICAgICAgICIwLjA4NDEwMiwgMC4xNjQwNjEsIDAuMjI2NjgyLCAwLjMwNDU5OCwgMC4zODI1MzksIDAuNDYwNTc4LCAwLjUzODY1MSIsIFwKLSAgICAgICAgICAiMC4wODk2NTYsIDAuMTY5ODMzLCAwLjIzMjMxMywgMC4zMTAzMjEsIDAuMzg4NDM3LCAwLjQ2NjQ1NiwgMC41NDQ0MjYiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQ0NjU2LCAwLjIwNjI1OSwgMC4zMzg2NTIsIDAuNTA1NTY2LCAwLjY3MTYwMywgMC44Mzg4NzEsIDEuMDA1MzQiLCBcCi0gICAgICAgICAgIjAuMDQ0NDA0LCAwLjIwNjQwMiwgMC4zMzg2NDQsIDAuNTA1NTEsIDAuNjcxNjk2LCAwLjgzODg3NCwgMS4wMDUzOCIsIFwKLSAgICAgICAgICAiMC4wNDUwNzUsIDAuMjA2Mzk2LCAwLjMzODk4MywgMC41MDQ4NTYsIDAuNjcxMjc4LCAwLjgzODg0MiwgMS4wMDUzNSIsIFwKLSAgICAgICAgICAiMC4wNDU5ODIsIDAuMjA2Mzc2LCAwLjMzODU3MiwgMC41MDU1NjcsIDAuNjcyMTcsIDAuODM4NzI4LCAxLjAwNTI2IiwgXAotICAgICAgICAgICIwLjA0NjcyOCwgMC4yMDY3NDIsIDAuMzM4NjcxLCAwLjUwNTA3MywgMC42NzE1NTgsIDAuODM4NzMsIDEuMDA1MjQiLCBcCi0gICAgICAgICAgIjAuMDQ4MTA0LCAwLjIwNzE2NSwgMC4zMzk1MjQsIDAuNTA1MDkzLCAwLjY3MTU0LCAwLjgzODAzMiwgMS4wMDU1MiIsIFwKLSAgICAgICAgICAiMC4wNDkyNTcsIDAuMjA3NTYxLCAwLjMzOTI2MiwgMC41MDU1MDIsIDAuNjcyMjA4LCAwLjgzODY5NSwgMS4wMDU1NiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDEyMywgMC4xMTc0NjEsIDAuMTc4NDI5LCAwLjI1NDQyLCAwLjMzMDU2NiwgMC40MDYzMzgsIDAuNDgxMzczIiwgXAotICAgICAgICAgICIwLjA0OTM1MywgMC4xMjU1OSwgMC4xODYyMjcsIDAuMjYyMTA4LCAwLjMzODM3MywgMC40MTM2MzksIDAuNDkwMTkzIiwgXAotICAgICAgICAgICIwLjA1ODEyMSwgMC4xMzQ0MjEsIDAuMTk1MDk4LCAwLjI3MTE5NywgMC4zNDcxNjksIDAuNDIyNDkzLCAwLjQ5OTEyNiIsIFwKLSAgICAgICAgICAiMC4wNjQ4NywgMC4xNDExOTMsIDAuMjAxOTM5LCAwLjI3ODA5LCAwLjM1MzkxNywgMC40MjkzMDgsIDAuNTA0OTg3IiwgXAotICAgICAgICAgICIwLjA3MDEzMywgMC4xNDY1ODksIDAuMjA3NTM0LCAwLjI4MzQ4OSwgMC4zNTkyNzEsIDAuNDM1MTA0LCAwLjUxMDkyNCIsIFwKLSAgICAgICAgICAiMC4wNzcwNDEsIDAuMTUzNTYxLCAwLjIxNDM0LCAwLjI5MDQxNywgMC4zNjYyMDcsIDAuNDQyMDAzLCAwLjUxNzg5NCIsIFwKLSAgICAgICAgICAiMC4wODIwMDMsIDAuMTU4NzIxLCAwLjIxOTIzMSwgMC4yOTUzNzQsIDAuMzcxMzMyLCAwLjQ0NzA1NiwgMC41MjI0NjEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM4ODMsIDAuMTk2MzgxLCAwLjMyMjEwNiwgMC40NzcyNCwgMC42MzYzMDcsIDAuNzkyMzI1LCAwLjk1MjE1IiwgXAotICAgICAgICAgICIwLjAzOTExMSwgMC4xOTYzNSwgMC4zMjIxMjUsIDAuNDc4Mjc1LCAwLjYzNTg3OCwgMC43OTQ1MjcsIDAuOTQ5MTA3IiwgXAotICAgICAgICAgICIwLjAzOTUzNSwgMC4xOTYyMTYsIDAuMzIxOTQ0LCAwLjQ3ODkyNiwgMC42MzU0NDYsIDAuNzkxMzkzLCAwLjk0OTU1NyIsIFwKLSAgICAgICAgICAiMC4wNDA2NDIsIDAuMTk1NjY5LCAwLjMyMTgxNSwgMC40NzgwNzcsIDAuNjM1MDQ5LCAwLjc5NDE2MSwgMC45NTEzNzUiLCBcCi0gICAgICAgICAgIjAuMDQxODk4LCAwLjE5NTk3NiwgMC4zMjEyNDcsIDAuNDc4MzkzLCAwLjYzNDQ1OCwgMC43OTE4ODMsIDAuOTQ5NzQxIiwgXAotICAgICAgICAgICIwLjA0MzQyMSwgMC4xOTUyMTYsIDAuMzIxMzE1LCAwLjQ3NzMwMSwgMC42MzM0NDUsIDAuNzkyMTk0LCAwLjk0OTk5NCIsIFwKLSAgICAgICAgICAiMC4wNDQ3MjksIDAuMTk1MjU2LCAwLjMyMDkwNCwgMC40Nzg0MjMsIDAuNjM0ODI3LCAwLjc5MjU0OCwgMC45NTEyMDYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDUwMTE5LCAwLjEyOTU1LCAwLjE5MjEzMSwgMC4yNzAxODksIDAuMzQ4MjM1LCAwLjQyNjIzNSwgMC41MDQxOTgiLCBcCi0gICAgICAgICAgIjAuMDU3NjQyLCAwLjEzNzA2MSwgMC4xOTk2NTYsIDAuMjc3ODUxLCAwLjM1NTY0OCwgMC40MzM2MjgsIDAuNTExNjUxIiwgXAotICAgICAgICAgICIwLjA2NzAwNCwgMC4xNDYzNzIsIDAuMjA5MDYsIDAuMjg2OTk5LCAwLjM2NDk1MiwgMC40NDI5NTUsIDAuNTIwOTcyIiwgXAotICAgICAgICAgICIwLjA3NDgyNCwgMC4xNTQzMzEsIDAuMjE2ODAzLCAwLjI5NDgwOSwgMC4zNzI3OTksIDAuNDUwODk0LCAwLjUyOTExOCIsIFwKLSAgICAgICAgICAiMC4wODEzMDMsIDAuMTYwOTUyLCAwLjIyMzM2MywgMC4zMDEzOTMsIDAuMzc5NTcyLCAwLjQ1Nzc1MiwgMC41MzU5NTMiLCBcCi0gICAgICAgICAgIjAuMDkwMDkzLCAwLjE3MDA0OCwgMC4yMzI0NDksIDAuMzEwNjcyLCAwLjM4ODYzNywgMC40NjcwMTksIDAuNTQ1MTk5IiwgXAotICAgICAgICAgICIwLjA5NjcxLCAwLjE3NjkwMSwgMC4yMzk0MTQsIDAuMzE3NTU1LCAwLjM5NTcxLCAwLjQ3Mzg4NSwgMC41NTIwNjgiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQ0NTM1LCAwLjIwNjI5MywgMC4zMzg1MjEsIDAuNTA1NjIxLCAwLjY3MjE2NiwgMC44Mzg2OTgsIDEuMDA1NjgiLCBcCi0gICAgICAgICAgIjAuMDQ0NDc0LCAwLjIwNjI4OSwgMC4zMzkwOCwgMC41MDU2NDksIDAuNjcxNDM0LCAwLjgzODA5NCwgMS4wMDQzNyIsIFwKLSAgICAgICAgICAiMC4wNDQ3MiwgMC4yMDYzMjIsIDAuMzM4NjY2LCAwLjUwNTU1OSwgMC42NzE0OTQsIDAuODM4MzIyLCAxLjAwNTkyIiwgXAotICAgICAgICAgICIwLjA0NjA3NCwgMC4yMDY1MDMsIDAuMzM5MjUsIDAuNTA1NDYyLCAwLjY3MjI0NCwgMC44MzkxOTksIDEuMDA2MTQiLCBcCi0gICAgICAgICAgIjAuMDQ3NDQyLCAwLjIwNzAwNiwgMC4zMzkwMjIsIDAuNTA1NTA5LCAwLjY3MjQyMiwgMC44MzkzNzIsIDEuMDA2MjciLCBcCi0gICAgICAgICAgIjAuMDQ4OTExLCAwLjIwNzMzNCwgMC4zMzkzNDQsIDAuNTA1NTYxLCAwLjY3MTg1OCwgMC44MzgxODksIDEuMDA2NDEiLCBcCi0gICAgICAgICAgIjAuMDUwMjM0LCAwLjIwODE0NiwgMC4zMzk4NjgsIDAuNTA1ODYyLCAwLjY3MjE1NiwgMC44Mzg0MjUsIDEuMDA0NjQiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM5Nzc4LCAwLjExNjAwOSwgMC4xNzY5NDMsIDAuMjUzMDA0LCAwLjMyODg1OCwgMC40MDU0NDEsIDAuNDgwMzMiLCBcCi0gICAgICAgICAgIjAuMDQ3NzMsIDAuMTIzOTkzLCAwLjE4NDY4NSwgMC4yNjEwMTIsIDAuMzM2ODQsIDAuNDEzNDE5LCAwLjQ4ODI4OCIsIFwKLSAgICAgICAgICAiMC4wNTYwOTYsIDAuMTMyNDYsIDAuMTkzMTY5LCAwLjI2ODg0OSwgMC4zNDQ4NjUsIDAuNDIxNjIsIDAuNDk3NzQiLCBcCi0gICAgICAgICAgIjAuMDYyMjM2LCAwLjEzODUxNSwgMC4xOTkxNzIsIDAuMjc1NzQyLCAwLjM1MTM0NSwgMC40Mjc4MjcsIDAuNTAyNzI3IiwgXAotICAgICAgICAgICIwLjA2NzA1NiwgMC4xNDM1NDMsIDAuMjA0MzU3LCAwLjI3OTk0NCwgMC4zNTYxNzQsIDAuNDMyNDcsIDAuNTA4Mzk3IiwgXAotICAgICAgICAgICIwLjA3MzMwOSwgMC4xNDk5MzksIDAuMjEwNjI2LCAwLjI4NjMyMSwgMC4zNjI0NTEsIDAuNDM5MDk5LCAwLjUxNDg0OSIsIFwKLSAgICAgICAgICAiMC4wNzc4OCwgMC4xNTQ1MzQsIDAuMjE1MTI2LCAwLjI5MTI0MiwgMC4zNjY3MDgsIDAuNDQzMDY4LCAwLjUxODQ5NyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzg5MDcsIDAuMTkzODMyLCAwLjMyMTM3OCwgMC40Nzg0LCAwLjYzNjQzLCAwLjc5NDAxMiwgMC45NDk2MjUiLCBcCi0gICAgICAgICAgIjAuMDM5MDU3LCAwLjE5NDAzOCwgMC4zMjA4MzIsIDAuNDc2OTk1LCAwLjYzNjQ1LCAwLjc5Mzg0NiwgMC45NTEzNDEiLCBcCi0gICAgICAgICAgIjAuMDM5NiwgMC4xOTQ0OTEsIDAuMzIwOTQ4LCAwLjQ3ODQzNSwgMC42MzU1MDcsIDAuNzg5OSwgMC45NTE0MyIsIFwKLSAgICAgICAgICAiMC4wNDEwMjksIDAuMTkzODgyLCAwLjMyMDg4LCAwLjQ3NjQzOCwgMC42MzYxOCwgMC43OTI4NjMsIDAuOTUyMDEiLCBcCi0gICAgICAgICAgIjAuMDQyMDQ4LCAwLjE5NTA4NCwgMC4zMjExNTksIDAuNDc4MTMsIDAuNjM1ODc4LCAwLjc5MjEwMiwgMC45NDk3NSIsIFwKLSAgICAgICAgICAiMC4wNDM2NTIsIDAuMTk1NTU5LCAwLjMxOTc1MywgMC40Nzg3NzUsIDAuNjM2MTQ2LCAwLjc5MjU1OSwgMC45NDkxODgiLCBcCi0gICAgICAgICAgIjAuMDQ1MDY2LCAwLjE5NDQyNSwgMC4zMjAzODksIDAuNDc3NjcyLCAwLjYzNTcxNiwgMC43OTMxMzcsIDAuOTUxNjY4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzNzUzLCAwLjAwMzc2OSwgMC4wMDM3NzEsIDAuMDAzNzcyLCAwLjAwMzc3MiwgMC4wMDM3NzMsIDAuMDAzNzcyIiwgXAotICAgICAgICAgICIwLjAwMzczMywgMC4wMDM3NTQsIDAuMDAzNzU2LCAwLjAwMzc1OSwgMC4wMDM3NTgsIDAuMDAzNzU5LCAwLjAwMzc1OSIsIFwKLSAgICAgICAgICAiMC4wMDM3NzksIDAuMDAzODAyLCAwLjAwMzgwNSwgMC4wMDM4MDYsIDAuMDAzODA3LCAwLjAwMzgwNywgMC4wMDM4MDciLCBcCi0gICAgICAgICAgIjAuMDAzODU2LCAwLjAwMzg3NywgMC4wMDM4NzksIDAuMDAzODgsIDAuMDAzODgsIDAuMDAzODgxLCAwLjAwMzg4MSIsIFwKLSAgICAgICAgICAiMC4wMDM5NTgsIDAuMDAzOTY5LCAwLjAwMzk3MSwgMC4wMDM5NzIsIDAuMDAzOTcyLCAwLjAwMzk3MywgMC4wMDM5NzIiLCBcCi0gICAgICAgICAgIjAuMDA0MTM0LCAwLjAwNDEzNywgMC4wMDQxMzcsIDAuMDA0MTM3LCAwLjAwNDEzNiwgMC4wMDQxMzcsIDAuMDA0MTM3IiwgXAotICAgICAgICAgICIwLjAwNDMwNiwgMC4wMDQyOTksIDAuMDA0Mjk4LCAwLjAwNDI5NiwgMC4wMDQyOTUsIDAuMDA0Mjk3LCAwLjAwNDI5NSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDg1NCwgMC4wMDQ4ODYsIDAuMDA0ODksIDAuMDA0ODkyLCAwLjAwNDg5MywgMC4wMDQ4OTQsIDAuMDA0ODk0IiwgXAotICAgICAgICAgICIwLjAwNDg0NSwgMC4wMDQ4ODQsIDAuMDA0ODg5LCAwLjAwNDg5MSwgMC4wMDQ4OTMsIDAuMDA0ODkzLCAwLjAwNDg5NCIsIFwKLSAgICAgICAgICAiMC4wMDQ5MDgsIDAuMDA0OTQ1LCAwLjAwNDk1MSwgMC4wMDQ5NTQsIDAuMDA0OTU1LCAwLjAwNDk1NywgMC4wMDQ5NTciLCBcCi0gICAgICAgICAgIjAuMDA0OTk3LCAwLjAwNTAyOCwgMC4wMDUwMzQsIDAuMDA1MDM3LCAwLjAwNTAzOSwgMC4wMDUwNCwgMC4wMDUwNDEiLCBcCi0gICAgICAgICAgIjAuMDA1MTEyLCAwLjAwNTEzNCwgMC4wMDUxNCwgMC4wMDUxMzgsIDAuMDA1MTQ1LCAwLjAwNTE0OCwgMC4wMDUxNDciLCBcCi0gICAgICAgICAgIjAuMDA1MzExLCAwLjAwNTMyMiwgMC4wMDUzMjcsIDAuMDA1MzI4LCAwLjAwNTMzMiwgMC4wMDUzMzMsIDAuMDA1MzI0IiwgXAotICAgICAgICAgICIwLjAwNTQ4NSwgMC4wMDU0OTYsIDAuMDA1NDg4LCAwLjAwNTQ5MSwgMC4wMDU1MDQsIDAuMDA1NTA1LCAwLjAwNTUwNCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzQ1MywgMC4wMDM1MDQsIDAuMDAzNTEyLCAwLjAwMzUxNiwgMC4wMDM1MTgsIDAuMDAzNTIxLCAwLjAwMzUyMSIsIFwKLSAgICAgICAgICAiMC4wMDM0NDgsIDAuMDAzNTAyLCAwLjAwMzUxMSwgMC4wMDM1MTYsIDAuMDAzNTE3LCAwLjAwMzUyMSwgMC4wMDM1MjIiLCBcCi0gICAgICAgICAgIjAuMDAzNTI5LCAwLjAwMzU3MiwgMC4wMDM1ODEsIDAuMDAzNTg2LCAwLjAwMzU4OCwgMC4wMDM1OSwgMC4wMDM1OTIiLCBcCi0gICAgICAgICAgIjAuMDAzNjMzLCAwLjAwMzY3LCAwLjAwMzY3OCwgMC4wMDM2ODMsIDAuMDAzNjg1LCAwLjAwMzY4OCwgMC4wMDM2ODkiLCBcCi0gICAgICAgICAgIjAuMDAzNzg3LCAwLjAwMzgxNCwgMC4wMDM4MjEsIDAuMDAzODI2LCAwLjAwMzgyOCwgMC4wMDM4MjksIDAuMDAzODMyIiwgXAotICAgICAgICAgICIwLjAwMzk5MiwgMC4wMDQwMDYsIDAuMDA0MDExLCAwLjAwNDAxNCwgMC4wMDQwMTYsIDAuMDA0MDE3LCAwLjAwNDAxNyIsIFwKLSAgICAgICAgICAiMC4wMDQxNTksIDAuMDA0MTU5LCAwLjAwNDE2MywgMC4wMDQxNjQsIDAuMDA0MTY2LCAwLjAwNDE2NSwgMC4wMDQxNjciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQ1NzMsIDAuMDA0NjQyLCAwLjAwNDY1LCAwLjAwNDY1NywgMC4wMDQ2NiwgMC4wMDQ2NjEsIDAuMDA0NjYiLCBcCi0gICAgICAgICAgIjAuMDA0NTk5LCAwLjAwNDY3NiwgMC4wMDQ2ODgsIDAuMDA0Njk0LCAwLjAwNDY5NywgMC4wMDQ3LCAwLjAwNDcwMSIsIFwKLSAgICAgICAgICAiMC4wMDQ2OTUsIDAuMDA0NzcyLCAwLjAwNDc4NiwgMC4wMDQ3OTQsIDAuMDA0Nzk5LCAwLjAwNDgwMSwgMC4wMDQ4MDMiLCBcCi0gICAgICAgICAgIjAuMDA0ODMsIDAuMDA0ODk5LCAwLjAwNDkxMywgMC4wMDQ5MjIsIDAuMDA0OTI2LCAwLjAwNDkyOSwgMC4wMDQ5MzEiLCBcCi0gICAgICAgICAgIjAuMDA0OTczLCAwLjAwNTAzMywgMC4wMDUwNDcsIDAuMDA1MDU4LCAwLjAwNTA2MiwgMC4wMDUwOCwgMC4wMDUwODIiLCBcCi0gICAgICAgICAgIjAuMDA1MjM3LCAwLjAwNTI3NCwgMC4wMDUyODgsIDAuMDA1Mjk3LCAwLjAwNTMxNiwgMC4wMDUzMDUsIDAuMDA1MzA2IiwgXAotICAgICAgICAgICIwLjAwNTQ1OCwgMC4wMDU1MTEsIDAuMDA1NTI0LCAwLjAwNTUxMywgMC4wMDU1MiwgMC4wMDU1NCwgMC4wMDU1NDMiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFMpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC42NTY0ODE7Ci0gICAgZnVuY3Rpb24gOiAiKEFeQikiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1ODQ0NiwgMC4xMzg0MzcsIDAuMjAwOTM2LCAwLjI3OTAyNCwgMC4zNTcxNTEsIDAuNDM1NDg4LCAwLjUxMzM5NSIsIFwKLSAgICAgICAgICAiMC4wNjY1NDMsIDAuMTQ2NTEsIDAuMjA5MDE3LCAwLjI4NzE0NiwgMC4zNjUyMzYsIDAuNDQzNTY1LCAwLjUyMTYxNSIsIFwKLSAgICAgICAgICAiMC4wNzYyMTksIDAuMTU2MTg1LCAwLjIxODY5OCwgMC4yOTY4MTYsIDAuMzc1MDY1LCAwLjQ1MzA0LCAwLjUzMTE5OSIsIFwKLSAgICAgICAgICAiMC4wODQyNywgMC4xNjQzMDcsIDAuMjI2ODE0LCAwLjMwNDkxNSwgMC4zODMwMzQsIDAuNDYxMzg0LCAwLjUzOTI2NiIsIFwKLSAgICAgICAgICAiMC4wOTEyNiwgMC4xNzE1MjMsIDAuMjM0MDUzLCAwLjMxMjEyLCAwLjM5MDMwNywgMC40Njg0NDUsIDAuNTQ2NTM0IiwgXAotICAgICAgICAgICIwLjEwMDU3OCwgMC4xODEyODcsIDAuMjQzNzQsIDAuMzIxOTE1LCAwLjM5OTkzNSwgMC40NzgwNSwgMC41NTYzNDQiLCBcCi0gICAgICAgICAgIjAuMTA3Mjg2LCAwLjE4ODM4OSwgMC4yNTA4OTEsIDAuMzI4OTg0LCAwLjQwNzEwMywgMC40ODUyMDIsIDAuNTYzMzUxIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0NTEyNywgMC4yMDY2NjksIDAuMzM5MzI0LCAwLjUwNTY1NSwgMC42NzI0MTIsIDAuODM3OTIxLCAxLjAwNDEzIiwgXAotICAgICAgICAgICIwLjA0NTE5MywgMC4yMDY2NjksIDAuMzM5MzIxLCAwLjUwNTc2NCwgMC42NzI0MDYsIDAuODM3OTExLCAxLjAwNDgiLCBcCi0gICAgICAgICAgIjAuMDQ1NDYsIDAuMjA2Njk4LCAwLjMzOTMwOSwgMC41MDUyMTQsIDAuNjcxNDAxLCAwLjgzNzcxOCwgMS4wMDM5NCIsIFwKLSAgICAgICAgICAiMC4wNDYzMTksIDAuMjA2ODg1LCAwLjMzOTQyNCwgMC41MDU3MTYsIDAuNjcyMzYyLCAwLjgzNzkxOSwgMS4wMDQxNSIsIFwKLSAgICAgICAgICAiMC4wNDc0MTgsIDAuMjA3MTUyLCAwLjMzOTU0MiwgMC41MDUxMzcsIDAuNjcxMDc3LCAwLjgzODI4NCwgMS4wMDM4NSIsIFwKLSAgICAgICAgICAiMC4wNDkxMDQsIDAuMjA3NzQsIDAuMzM5Mzk1LCAwLjUwNTA5MSwgMC42NzIzODIsIDAuODM5MDkyLCAxLjAwNDM4IiwgXAotICAgICAgICAgICIwLjA1MDY4OSwgMC4yMDgyMDgsIDAuMzM5OTY0LCAwLjUwNTk2MSwgMC42NzE2MTIsIDAuODM4MzQ4LCAxLjAwMzg1Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2MTY4OSwgMC4xNDAyODksIDAuMjAwOTczLCAwLjI3Njc5MSwgMC4zNTI2NDQsIDAuNDI4NDM4LCAwLjUwNDM3IiwgXAotICAgICAgICAgICIwLjA2OTUwMSwgMC4xNDgxMDYsIDAuMjA4ODA1LCAwLjI4NDYyMSwgMC4zNjA1MjgsIDAuNDM2MjY5LCAwLjUxMjMxNCIsIFwKLSAgICAgICAgICAiMC4wNzkwNjUsIDAuMTU3NjU2LCAwLjIxODM2MywgMC4yOTQxNzMsIDAuMzcwMDc5LCAwLjQ0NTgyLCAwLjUyMTg2NCIsIFwKLSAgICAgICAgICAiMC4wODcwMTQsIDAuMTY1NjkxLCAwLjIyNjM4OCwgMC4zMDIxOTksIDAuMzc4MTE4LCAwLjQ1Mzg0NywgMC41Mjk5MDkiLCBcCi0gICAgICAgICAgIjAuMDkzNjY1LCAwLjE3MjU3LCAwLjIzMzI1NCwgMC4zMDkwNzMsIDAuMzg0OTIyLCAwLjQ2MDczNCwgMC41MzY2MTEiLCBcCi0gICAgICAgICAgIjAuMTAyNDkyLCAwLjE4MTkwOCwgMC4yNDI1OTYsIDAuMzE4NDEzLCAwLjM5NDI0MywgMC40NzAxODksIDAuNTQ1ODc5IiwgXAotICAgICAgICAgICIwLjEwOTA5OSwgMC4xODg4NDUsIDAuMjQ5NTA1LCAwLjMyNTMyNiwgMC40MDExNDgsIDAuNDc2OTE0LCAwLjU1MjcyMyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDQ2MDgsIDAuMTk2NiwgMC4zMjE1ODMsIDAuNDc4NjIzLCAwLjYzNDg3MSwgMC43OTM4MDQsIDAuOTQ5NTc3IiwgXAotICAgICAgICAgICIwLjA0NDY2MSwgMC4xOTY1NTIsIDAuMzIxNiwgMC40Nzg2MDMsIDAuNjM1MDksIDAuNzkzNzk1LCAwLjk0OTY5NSIsIFwKLSAgICAgICAgICAiMC4wNDQ4NzIsIDAuMTk2NTk0LCAwLjMyMTYzNSwgMC40Nzg2MTMsIDAuNjM0Njc0LCAwLjc5Mzc4MywgMC45NDk2ODkiLCBcCi0gICAgICAgICAgIjAuMDQ1Njk0LCAwLjE5NjkwMywgMC4zMjE3MTcsIDAuNDc4NjY0LCAwLjYzNTA5LCAwLjc5Mzc5NCwgMC45NDk5MTYiLCBcCi0gICAgICAgICAgIjAuMDQ2NTc3LCAwLjE5NzExLCAwLjMyMTUyNSwgMC40Nzg3MTEsIDAuNjM1Mzk3LCAwLjc5Mzg0LCAwLjk1MDIyOSIsIFwKLSAgICAgICAgICAiMC4wNDgwNTgsIDAuMTk3NzQ1LCAwLjMyMTgxNCwgMC40Nzg4MDEsIDAuNjM2MjM2LCAwLjc5MjM1MiwgMC45NTEyMTYiLCBcCi0gICAgICAgICAgIjAuMDQ5NDA3LCAwLjE5ODIyOSwgMC4zMjI0MzEsIDAuNDc4MjY5LCAwLjYzNjM5OSwgMC43OTM4MDMsIDAuOTUxNDMzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2ODQwNywgMC4xNDgwNDcsIDAuMjEwNjI0LCAwLjI4ODc0NywgMC4zNjY5MTEsIDAuNDQ0OTk4LCAwLjUyMzAzMyIsIFwKLSAgICAgICAgICAiMC4wNzYwMDIsIDAuMTU1NjI3LCAwLjIxODE3MSwgMC4yOTYzMDQsIDAuMzc0NDMsIDAuNDUyNTE4LCAwLjUzMDY0NiIsIFwKLSAgICAgICAgICAiMC4wODIzNDQsIDAuMTYxOTk3LCAwLjIyNDU0MywgMC4zMDI2ODEsIDAuMzgwODA0LCAwLjQ1ODg5LCAwLjUzNzA2MSIsIFwKLSAgICAgICAgICAiMC4wODY5NTYsIDAuMTY2NTk4LCAwLjIyOTE1MiwgMC4zMDczMSwgMC4zODU0MDQsIDAuNDYzNDksIDAuNTQxNjAyIiwgXAotICAgICAgICAgICIwLjA5MDYzOCwgMC4xNzAzMTcsIDAuMjMyODc0LCAwLjMxMTAxNCwgMC4zODkxMjMsIDAuNDY3MjIsIDAuNTQ1MzEiLCBcCi0gICAgICAgICAgIjAuMDk1NTIyLCAwLjE3NTE3MywgMC4yMzc3MjMsIDAuMzE1ODgzLCAwLjM5Mzk5NywgMC40NzIwNjUsIDAuNTUwMTM0IiwgXAotICAgICAgICAgICIwLjA5OTAxNSwgMC4xNzg3NzEsIDAuMjQxMTk4LCAwLjMxOTM3LCAwLjM5NzU2LCAwLjQ3NTYzMywgMC41NTM3MTgiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQ0NjU0LCAwLjIwNjQ4NiwgMC4zMzkzMjQsIDAuNTA0OTYxLCAwLjY3MTUyLCAwLjgzOTA2OSwgMS4wMDQ5OCIsIFwKLSAgICAgICAgICAiMC4wNDQ2NTUsIDAuMjA2NDgyLCAwLjMzOTMxNiwgMC41MDUyOTcsIDAuNjcyMzc0LCAwLjgzODQxOCwgMS4wMDU3OSIsIFwKLSAgICAgICAgICAiMC4wNDQ2MTIsIDAuMjA2NDgyLCAwLjMzOTMyNiwgMC41MDU3NTgsIDAuNjcyMzcyLCAwLjgzODE2NCwgMS4wMDU3OCIsIFwKLSAgICAgICAgICAiMC4wNDQ2NTUsIDAuMjA2NTA3LCAwLjMzOTM0OSwgMC41MDUxNjEsIDAuNjcyMzY3LCAwLjgzODM3LCAxLjAwNTA2IiwgXAotICAgICAgICAgICIwLjA0NDY5OSwgMC4yMDY0OTQsIDAuMzM4OTI2LCAwLjUwNTEzMSwgMC42NzIzLCAwLjgzODk1NywgMS4wMDU2MiIsIFwKLSAgICAgICAgICAiMC4wNDQ3MzQsIDAuMjA2NTAzLCAwLjMzOTI0NSwgMC41MDU2MjYsIDAuNjcxMjQ2LCAwLjgzODg3NCwgMS4wMDU1NyIsIFwKLSAgICAgICAgICAiMC4wNDQ3NDEsIDAuMjA2NDU0LCAwLjMzODk3NSwgMC41MDUxNDQsIDAuNjcyMTQ4LCAwLjgzODc1NCwgMS4wMDQ5OSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzE4NjgsIDAuMTUwMDEzLCAwLjIxMDc0MiwgMC4yODY1OTksIDAuMzYyNDUyLCAwLjQzODMwOSwgMC41MTQwOTIiLCBcCi0gICAgICAgICAgIjAuMDc5NTQ0LCAwLjE1NzY5MiwgMC4yMTg0MTksIDAuMjk0Mjc5LCAwLjM3MDEzNiwgMC40NDU5ODIsIDAuNTIxNzY5IiwgXAotICAgICAgICAgICIwLjA4NjEwMSwgMC4xNjQyOCwgMC4yMjUwMjEsIDAuMzAwODc2LCAwLjM3NjczOSwgMC40NTI1NjEsIDAuNTI4MzU1IiwgXAotICAgICAgICAgICIwLjA5MDgwMywgMC4xNjg5OTEsIDAuMjI5NzQzLCAwLjMwNTU3OCwgMC4zODE0MTYsIDAuNDU3MjM2LCAwLjUzMzA2OSIsIFwKLSAgICAgICAgICAiMC4wOTQ3MTEsIDAuMTcyODY0LCAwLjIzMzYwMywgMC4zMDk0NTUsIDAuMzg1MzE0LCAwLjQ2MTEzNywgMC41MzY5NjYiLCBcCi0gICAgICAgICAgIjAuMDk5ODQ5LCAwLjE3ODA0MiwgMC4yMzg3ODMsIDAuMzE0NjYyLCAwLjM5MDQ5OCwgMC40NjYzMDQsIDAuNTQyMTE4IiwgXAotICAgICAgICAgICIwLjEwMzc2NSwgMC4xODE5MiwgMC4yNDI2NCwgMC4zMTg1MTMsIDAuMzk0MzQ2LCAwLjQ3MDIwMywgMC41NDYwMzEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQ0MDEyLCAwLjE5NjM2NiwgMC4zMjExNiwgMC40Nzg1MDcsIDAuNjM1MzgyLCAwLjc5MzU3NSwgMC45NTEwOSIsIFwKLSAgICAgICAgICAiMC4wNDM5OTksIDAuMTk2MzY1LCAwLjMyMTA1MiwgMC40Nzg0NzksIDAuNjM0OTk1LCAwLjc5MzUwNywgMC45NTEwMjgiLCBcCi0gICAgICAgICAgIjAuMDQzOTU1LCAwLjE5NjM1OCwgMC4zMjEzOTIsIDAuNDc4MDQ4LCAwLjYzNTIzNSwgMC43OTM0NjUsIDAuOTUxIiwgXAotICAgICAgICAgICIwLjA0Mzk0MSwgMC4xOTYzODMsIDAuMzIwOTA5LCAwLjQ3ODQzNSwgMC42MzU4MjMsIDAuNzkzMzMzLCAwLjk1MDkzNyIsIFwKLSAgICAgICAgICAiMC4wNDM5NTgsIDAuMTk2MjgyLCAwLjMyMDkxNywgMC40NzgxMjIsIDAuNjM1MjMxLCAwLjc5MzM5MywgMC45NTA5ODkiLCBcCi0gICAgICAgICAgIjAuMDQ0MDEsIDAuMTk2MjY3LCAwLjMyMTQxOCwgMC40Nzc5OTEsIDAuNjM1MjQxLCAwLjc5MjczLCAwLjk1MDk1IiwgXAotICAgICAgICAgICIwLjA0Mzk5MiwgMC4xOTYxOTQsIDAuMzIxMDY2LCAwLjQ3ODE1MSwgMC42MzU4NiwgMC43OTM0MzMsIDAuOTUxMDI0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1MTM4OCwgMC4xMzA5NjIsIDAuMTkzNDg5LCAwLjI3MTY0MiwgMC4zNDk3MTYsIDAuNDI3NzgxLCAwLjUwNTg3NyIsIFwKLSAgICAgICAgICAiMC4wNTkwMDIsIDAuMTM4NTc5LCAwLjIwMTExNywgMC4yNzkyNjIsIDAuMzU3MzQ5LCAwLjQzNTQwNiwgMC41MTM1MDQiLCBcCi0gICAgICAgICAgIjAuMDY4MzY1LCAwLjE0NzkzNiwgMC4yMTA0NzIsIDAuMjg4NiwgMC4zNjY3MDIsIDAuNDQ0NzUsIDAuNTIyODM2IiwgXAotICAgICAgICAgICIwLjA3NjI2OCwgMC4xNTU5LCAwLjIxODQzMiwgMC4yOTY1NDMsIDAuMzc0NjMxLCAwLjQ1MjcwOSwgMC41MzA3NzgiLCBcCi0gICAgICAgICAgIjAuMDgyNzQ5LCAwLjE2MjYwNCwgMC4yMjUwOTIsIDAuMzAzMTc0LCAwLjM4MTI3MywgMC40NTkzMjcsIDAuNTM3NDI3IiwgXAotICAgICAgICAgICIwLjA5MTQ3MywgMC4xNzE1NzMsIDAuMjM0MDEsIDAuMzEyMDksIDAuMzkwMTU4LCAwLjQ2ODI3NiwgMC41NDYyOTMiLCBcCi0gICAgICAgICAgIjAuMDk3OTU0LCAwLjE3ODM0NCwgMC4yNDA3NDEsIDAuMzE4ODAyLCAwLjM5Njg3MSwgMC40NzQ5MzksIDAuNTUyOTYyIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0NDYxOSwgMC4yMDYzMDYsIDAuMzM5MzE5LCAwLjUwNDgxMiwgMC42NzIzMDQsIDAuODM4MjI0LCAxLjAwNDc3IiwgXAotICAgICAgICAgICIwLjA0NDYyMSwgMC4yMDY1OTMsIDAuMzM5MzI5LCAwLjUwNTE0OCwgMC42NzIyODEsIDAuODM4MTY4LCAxLjAwNDc3IiwgXAotICAgICAgICAgICIwLjA0NDk5NCwgMC4yMDY1NjIsIDAuMzM5Mjk2LCAwLjUwNDkyMiwgMC42NzIxODcsIDAuODM4ODg2LCAxLjAwNDkzIiwgXAotICAgICAgICAgICIwLjA0NjIwOSwgMC4yMDY3MjEsIDAuMzM5MjY2LCAwLjUwNTU2NywgMC42NzE0NjksIDAuODM4NzYxLCAxLjAwNTQyIiwgXAotICAgICAgICAgICIwLjA0NzU1OSwgMC4yMDcxMTQsIDAuMzM4OTA3LCAwLjUwNTI2NywgMC42NzIwNDIsIDAuODM4NjQsIDEuMDA0MDYiLCBcCi0gICAgICAgICAgIjAuMDQ5MzgzLCAwLjIwNzQ2NCwgMC4zMzk0MDksIDAuNTA1MzY3LCAwLjY3MTY2MywgMC44MzgxNDksIDEuMDA1MTgiLCBcCi0gICAgICAgICAgIjAuMDUwOTA5LCAwLjIwNzkzMiwgMC4zMzk0MSwgMC41MDU0NCwgMC42NzE2NSwgMC44MzgxNzQsIDEuMDA0ODIiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDUxNDY0LCAwLjEyOTk1OSwgMC4xOTA2NDksIDAuMjY2NDkzLCAwLjM0MjM1NywgMC40MTgwOTIsIDAuNDkzOTg4IiwgXAotICAgICAgICAgICIwLjA1ODg5NywgMC4xMzc0MTEsIDAuMTk4MSwgMC4yNzM5MSwgMC4zNDk3MzgsIDAuNDI1NjA1LCAwLjUwMTM4MiIsIFwKLSAgICAgICAgICAiMC4wNjc3MDMsIDAuMTQ2MjMyLCAwLjIwNjkxOSwgMC4yODI3MzUsIDAuMzU4NTk1LCAwLjQzNDQyNywgMC41MTAzMTkiLCBcCi0gICAgICAgICAgIjAuMDc0OTQ2LCAwLjE1MzU1OCwgMC4yMTQyNDMsIDAuMjkwMDU1LCAwLjM2NTkwMSwgMC40NDE3MDUsIDAuNTE3NjAyIiwgXAotICAgICAgICAgICIwLjA4MDk0MiwgMC4xNTk3MzUsIDAuMjIwNDI0LCAwLjI5NjIyLCAwLjM3MjAxOSwgMC40NDc4NjMsIDAuNTIzNjg0IiwgXAotICAgICAgICAgICIwLjA4ODk2MiwgMC4xNjgxMTQsIDAuMjI4NzgsIDAuMzA0NTQzLCAwLjM4MDQwOCwgMC40NTYyMjQsIDAuNTMyMTkyIiwgXAotICAgICAgICAgICIwLjA5NTAwNCwgMC4xNzQzNzUsIDAuMjM1MDUyLCAwLjMxMDgzMSwgMC4zODY2MjIsIDAuNDYyNDcsIDAuNTM4MzMzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0NDI5MywgMC4xOTY2MjQsIDAuMzIxNTc4LCAwLjQ3ODczLCAwLjYzNTA3LCAwLjc5MzcxNiwgMC45NDkyNzEiLCBcCi0gICAgICAgICAgIjAuMDQ0MjgxLCAwLjE5NjU0NCwgMC4zMjE1NzMsIDAuNDc4MDE0LCAwLjYzNTMzMSwgMC43OTIwNiwgMC45NTExMzkiLCBcCi0gICAgICAgICAgIjAuMDQ0NTU4LCAwLjE5NjYzNywgMC4zMjE1OTYsIDAuNDc4NjAzLCAwLjYzNTA2NywgMC43OTIwNjMsIDAuOTQ5NjgyIiwgXAotICAgICAgICAgICIwLjA0NTUxNywgMC4xOTY4NjYsIDAuMzIxNjk1LCAwLjQ3ODY0LCAwLjYzNTM0MywgMC43OTM3NjUsIDAuOTUwMjciLCBcCi0gICAgICAgICAgIjAuMDQ2Njg0LCAwLjE5NzI4MiwgMC4zMjE5MzYsIDAuNDc4MjIzLCAwLjYzNTM1OSwgMC43OTIxNjgsIDAuOTUxMTA5IiwgXAotICAgICAgICAgICIwLjA0ODE2NSwgMC4xOTc3OTgsIDAuMzIxNjUzLCAwLjQ3ODM3NCwgMC42MzUwNzEsIDAuNzkyMTA4LCAwLjk0OTU1MSIsIFwKLSAgICAgICAgICAiMC4wNDk1NzQsIDAuMTk4MTUxLCAwLjMyMjE4OCwgMC40Nzg2MDksIDAuNjM1NzAxLCAwLjc5MjM3OSwgMC45NDk5MDkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDUyNTY1LCAwLjEzNDEzMSwgMC4xOTc5NjUsIDAuMjc3NzU5LCAwLjM1NzQ2MiwgMC40Mzc0MjQsIDAuNTE3IiwgXAotICAgICAgICAgICIwLjA2MDcyMSwgMC4xNDIyOSwgMC4yMDYxMDcsIDAuMjg1OTIzLCAwLjM2NTYyMywgMC40NDU1OCwgMC41MjUxNzEiLCBcCi0gICAgICAgICAgIjAuMDY4NTAxLCAwLjE1MDA1NywgMC4yMTM4OCwgMC4yOTM2MjgsIDAuMzczMzksIDAuNDUzMjkyLCAwLjUzMzEzMiIsIFwKLSAgICAgICAgICAiMC4wNzM0NjcsIDAuMTU0OTQ5LCAwLjIxODc2OCwgMC4yOTg2MjEsIDAuMzc4Mjg1LCAwLjQ1ODIxNywgMC41Mzc4NjciLCBcCi0gICAgICAgICAgIjAuMDc3MTczLCAwLjE1ODU3NiwgMC4yMjI0MTMsIDAuMzAyMTYzLCAwLjM4MTg5MywgMC40NjE4NjUsIDAuNTQxNjI4IiwgXAotICAgICAgICAgICIwLjA4MjA5NiwgMC4xNjM0NzUsIDAuMjI3Mjc4LCAwLjMwNzA1MSwgMC4zODY4NDcsIDAuNDY2NzM1LCAwLjU0NjQyNCIsIFwKLSAgICAgICAgICAiMC4wODU2MzQsIDAuMTY2OTY0LCAwLjIzMDcwMywgMC4zMTA0ODcsIDAuMzkwMjQzLCAwLjQ2OTk3NSwgMC41NDk3MTIiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQ1NDcyLCAwLjIwOTQzMiwgMC4zNDM5MzIsIDAuNTExNzcyLCAwLjY4MTQ4MiwgMC44NDkxNDksIDEuMDE4ODMiLCBcCi0gICAgICAgICAgIjAuMDQ1NDQsIDAuMjA5NDI1LCAwLjM0MzUzNCwgMC41MTE1NDksIDAuNjgxNDc2LCAwLjg0OTExOSwgMS4wMTgyNiIsIFwKLSAgICAgICAgICAiMC4wNDUyODEsIDAuMjA5Mjg4LCAwLjM0Mzc5MSwgMC41MTE5MzQsIDAuNjgwNjMxLCAwLjg0ODcyMSwgMS4wMTc4OCIsIFwKLSAgICAgICAgICAiMC4wNDUyMTYsIDAuMjA5MzY0LCAwLjM0MzU0LCAwLjUxMTU5LCAwLjY4MTQ5NCwgMC44NDkwOTksIDEuMDE4MzMiLCBcCi0gICAgICAgICAgIjAuMDQ1MzM2LCAwLjIwOTM0MSwgMC4zNDM4NTUsIDAuNTExODk5LCAwLjY4MTQ0NCwgMC44NDg4NTgsIDEuMDE3NTUiLCBcCi0gICAgICAgICAgIjAuMDQ1MzgxLCAwLjIwOTE5MiwgMC4zNDMxNzMsIDAuNTExOTUyLCAwLjY4MDQ4MywgMC44NDkwOTcsIDEuMDE3NDgiLCBcCi0gICAgICAgICAgIjAuMDQ1NDMsIDAuMjA5MDU4LCAwLjM0MzE4MiwgMC41MTIyOCwgMC42ODA1NTksIDAuODUwNDE2LCAxLjAxODE2Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2NTU0NiwgMC4xNDM3NzMsIDAuMjA0NTE3LCAwLjI4MDM2OSwgMC4zNTYyMTgsIDAuNDMyMDUzLCAwLjUwNzg2NyIsIFwKLSAgICAgICAgICAiMC4wNzI4OTcsIDAuMTUxMTE3LCAwLjIxMTg1NCwgMC4yODc3NDYsIDAuMzYzNTUsIDAuNDM5MzksIDAuNTE1MjE4IiwgXAotICAgICAgICAgICIwLjA3ODg1MSwgMC4xNTY5OTUsIDAuMjE3NzUzLCAwLjI5MzU5MiwgMC4zNjk0MzQsIDAuNDQ1MjY1LCAwLjUyMTA4OSIsIFwKLSAgICAgICAgICAiMC4wODI5ODcsIDAuMTYxMjEyLCAwLjIyMTk0OSwgMC4yOTc4MDksIDAuMzczNjUyLCAwLjQ0OTQ3MywgMC41MjUzMTIiLCBcCi0gICAgICAgICAgIjAuMDg2NTI1LCAwLjE2NDcwOCwgMC4yMjU0NTUsIDAuMzAxMzIzLCAwLjM3NzE1NiwgMC40NTI5NzMsIDAuNTI4ODE3IiwgXAotICAgICAgICAgICIwLjA5MTE4OCwgMC4xNjk0NTQsIDAuMjMwMjMxLCAwLjMwNjEwOSwgMC4zODE5MjksIDAuNDU3NzksIDAuNTMzNTc2IiwgXAotICAgICAgICAgICIwLjA5NDg0NSwgMC4xNzMwNzYsIDAuMjMzODcsIDAuMzA5NzQ1LCAwLjM4NTYsIDAuNDYxNDI3LCAwLjUzNzI0MyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDM5NjEsIDAuMTk2MzY2LCAwLjMyMDk0LCAwLjQ3ODUyMiwgMC42MzU5NDMsIDAuNzkzNTE1LCAwLjk1MTEyIiwgXAotICAgICAgICAgICIwLjA0Mzk1MSwgMC4xOTYzNDcsIDAuMzIxNDIxLCAwLjQ3ODU3MiwgMC42MzUzNTYsIDAuNzkyNzc5LCAwLjk0OTY5IiwgXAotICAgICAgICAgICIwLjA0Mzk1MiwgMC4xOTYzNTQsIDAuMzIwOTksIDAuNDc4NDU2LCAwLjYzNTM3NCwgMC43OTI5NDYsIDAuOTUxMDY4IiwgXAotICAgICAgICAgICIwLjA0Mzk0NCwgMC4xOTYzNTIsIDAuMzIxNDI1LCAwLjQ3ODQ2MiwgMC42MzU4NTksIDAuNzkzMzcxLCAwLjk1MDk5MSIsIFwKLSAgICAgICAgICAiMC4wNDM5ODYsIDAuMTk2NDc2LCAwLjMyMTEwNCwgMC40Nzg1MjgsIDAuNjM1ODg4LCAwLjc5MzM3NCwgMC45NTA5OTgiLCBcCi0gICAgICAgICAgIjAuMDQzOTE3LCAwLjE5NjI5LCAwLjMyMTIxNiwgMC40NzgxNiwgMC42MzU2MTUsIDAuNzkyNjg2LCAwLjk1MDkyNCIsIFwKLSAgICAgICAgICAiMC4wNDM5NDksIDAuMTk2MjQ5LCAwLjMyMTAzMiwgMC40NzgyMTMsIDAuNjM1NDUyLCAwLjc5Mjc1NSwgMC45NTAwODgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQ4NTQsIDAuMDA0ODg2LCAwLjAwNDg5LCAwLjAwNDg5MiwgMC4wMDQ4OTMsIDAuMDA0ODk0LCAwLjAwNDg5NCIsIFwKLSAgICAgICAgICAiMC4wMDQ4NDUsIDAuMDA0ODg0LCAwLjAwNDg4OSwgMC4wMDQ4OTEsIDAuMDA0ODkzLCAwLjAwNDg5MywgMC4wMDQ4OTQiLCBcCi0gICAgICAgICAgIjAuMDA0OTA4LCAwLjAwNDk0NSwgMC4wMDQ5NTEsIDAuMDA0OTU0LCAwLjAwNDk1NSwgMC4wMDQ5NTcsIDAuMDA0OTU3IiwgXAotICAgICAgICAgICIwLjAwNDk5NywgMC4wMDUwMjgsIDAuMDA1MDM0LCAwLjAwNTAzNywgMC4wMDUwMzksIDAuMDA1MDQsIDAuMDA1MDQxIiwgXAotICAgICAgICAgICIwLjAwNTExMiwgMC4wMDUxMzQsIDAuMDA1MTQsIDAuMDA1MTM4LCAwLjAwNTE0NSwgMC4wMDUxNDgsIDAuMDA1MTQ3IiwgXAotICAgICAgICAgICIwLjAwNTMxMSwgMC4wMDUzMjIsIDAuMDA1MzI3LCAwLjAwNTMyOCwgMC4wMDUzMzIsIDAuMDA1MzMzLCAwLjAwNTMyNCIsIFwKLSAgICAgICAgICAiMC4wMDU0ODUsIDAuMDA1NDk2LCAwLjAwNTQ4OCwgMC4wMDU0OTEsIDAuMDA1NTA0LCAwLjAwNTUwNSwgMC4wMDU1MDQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDM3NTMsIDAuMDAzNzY5LCAwLjAwMzc3MSwgMC4wMDM3NzIsIDAuMDAzNzcyLCAwLjAwMzc3MywgMC4wMDM3NzIiLCBcCi0gICAgICAgICAgIjAuMDAzNzMzLCAwLjAwMzc1NCwgMC4wMDM3NTYsIDAuMDAzNzU5LCAwLjAwMzc1OCwgMC4wMDM3NTksIDAuMDAzNzU5IiwgXAotICAgICAgICAgICIwLjAwMzc3OSwgMC4wMDM4MDIsIDAuMDAzODA1LCAwLjAwMzgwNiwgMC4wMDM4MDcsIDAuMDAzODA3LCAwLjAwMzgwNyIsIFwKLSAgICAgICAgICAiMC4wMDM4NTYsIDAuMDAzODc3LCAwLjAwMzg3OSwgMC4wMDM4OCwgMC4wMDM4OCwgMC4wMDM4ODEsIDAuMDAzODgxIiwgXAotICAgICAgICAgICIwLjAwMzk1OCwgMC4wMDM5NjksIDAuMDAzOTcxLCAwLjAwMzk3MiwgMC4wMDM5NzIsIDAuMDAzOTczLCAwLjAwMzk3MiIsIFwKLSAgICAgICAgICAiMC4wMDQxMzQsIDAuMDA0MTM3LCAwLjAwNDEzNywgMC4wMDQxMzcsIDAuMDA0MTM2LCAwLjAwNDEzNywgMC4wMDQxMzciLCBcCi0gICAgICAgICAgIjAuMDA0MzA2LCAwLjAwNDI5OSwgMC4wMDQyOTgsIDAuMDA0Mjk2LCAwLjAwNDI5NSwgMC4wMDQyOTcsIDAuMDA0Mjk1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0NTczLCAwLjAwNDY0MiwgMC4wMDQ2NSwgMC4wMDQ2NTcsIDAuMDA0NjYsIDAuMDA0NjYxLCAwLjAwNDY2IiwgXAotICAgICAgICAgICIwLjAwNDU5OSwgMC4wMDQ2NzYsIDAuMDA0Njg4LCAwLjAwNDY5NCwgMC4wMDQ2OTcsIDAuMDA0NywgMC4wMDQ3MDEiLCBcCi0gICAgICAgICAgIjAuMDA0Njk1LCAwLjAwNDc3MiwgMC4wMDQ3ODYsIDAuMDA0Nzk0LCAwLjAwNDc5OSwgMC4wMDQ4MDEsIDAuMDA0ODAzIiwgXAotICAgICAgICAgICIwLjAwNDgzLCAwLjAwNDg5OSwgMC4wMDQ5MTMsIDAuMDA0OTIyLCAwLjAwNDkyNiwgMC4wMDQ5MjksIDAuMDA0OTMxIiwgXAotICAgICAgICAgICIwLjAwNDk3MywgMC4wMDUwMzMsIDAuMDA1MDQ3LCAwLjAwNTA1OCwgMC4wMDUwNjIsIDAuMDA1MDgsIDAuMDA1MDgyIiwgXAotICAgICAgICAgICIwLjAwNTIzNywgMC4wMDUyNzQsIDAuMDA1Mjg4LCAwLjAwNTI5NywgMC4wMDUzMTYsIDAuMDA1MzA1LCAwLjAwNTMwNiIsIFwKLSAgICAgICAgICAiMC4wMDU0NTgsIDAuMDA1NTExLCAwLjAwNTUyNCwgMC4wMDU1MTMsIDAuMDA1NTIsIDAuMDA1NTQsIDAuMDA1NTQzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzNDUzLCAwLjAwMzUwNCwgMC4wMDM1MTIsIDAuMDAzNTE2LCAwLjAwMzUxOCwgMC4wMDM1MjEsIDAuMDAzNTIxIiwgXAotICAgICAgICAgICIwLjAwMzQ0OCwgMC4wMDM1MDIsIDAuMDAzNTExLCAwLjAwMzUxNiwgMC4wMDM1MTcsIDAuMDAzNTIxLCAwLjAwMzUyMiIsIFwKLSAgICAgICAgICAiMC4wMDM1MjksIDAuMDAzNTcyLCAwLjAwMzU4MSwgMC4wMDM1ODYsIDAuMDAzNTg4LCAwLjAwMzU5LCAwLjAwMzU5MiIsIFwKLSAgICAgICAgICAiMC4wMDM2MzMsIDAuMDAzNjcsIDAuMDAzNjc4LCAwLjAwMzY4MywgMC4wMDM2ODUsIDAuMDAzNjg4LCAwLjAwMzY4OSIsIFwKLSAgICAgICAgICAiMC4wMDM3ODcsIDAuMDAzODE0LCAwLjAwMzgyMSwgMC4wMDM4MjYsIDAuMDAzODI4LCAwLjAwMzgyOSwgMC4wMDM4MzIiLCBcCi0gICAgICAgICAgIjAuMDAzOTkyLCAwLjAwNDAwNiwgMC4wMDQwMTEsIDAuMDA0MDE0LCAwLjAwNDAxNiwgMC4wMDQwMTcsIDAuMDA0MDE3IiwgXAotICAgICAgICAgICIwLjAwNDE1OSwgMC4wMDQxNTksIDAuMDA0MTYzLCAwLjAwNDE2NCwgMC4wMDQxNjYsIDAuMDA0MTY1LCAwLjAwNDE2NyIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogQURESFhMICoKLSAqIC0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoQURESFhMKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuNTA5MjE5OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE1MzI0NzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE1MzI0NzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE1MzIxMjsKLSAgfQotICBwaW4oQikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNjQ3MjE7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNjMwNDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE2NDcyMTsKLSAgfQotICBwaW4oQ08pICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4yMDA4ODk7Ci0gICAgZnVuY3Rpb24gOiAiKEEgQikiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3OTQwNSwgMC4wODk5MDgsIDAuMTg0NjExLCAwLjM0Mjc4NCwgMC41MDA2MTQsIDAuODY5MjIzLCAxLjA4MjM4IiwgXAotICAgICAgICAgICIwLjA4NTM1MywgMC4wOTU4NTcsIDAuMTkwNjYsIDAuMzQ4NjY0LCAwLjUwNjYzLCAwLjg3NTI5NCwgMS4wODg0MiIsIFwKLSAgICAgICAgICAiMC4wOTE3OTMsIDAuMTAyMjc3LCAwLjE5NzE4MywgMC4zNTQ4NTMsIDAuNTEzMTUyLCAwLjg4MTk1MywgMS4wOTI0NSIsIFwKLSAgICAgICAgICAiMC4wOTY5NDgsIDAuMTA3NDc0LCAwLjIwMjE2MywgMC4zNjAyNTMsIDAuNTE4MjA5LCAwLjg4Njg5MSwgMS4wOTk4NyIsIFwKLSAgICAgICAgICAiMC4xMDEyNjgsIDAuMTExODMyLCAwLjIwNjYyMiwgMC4zNjQ2NDQsIDAuNTIyMzMxLCAwLjg5MDgxMiwgMS4xMDI0MyIsIFwKLSAgICAgICAgICAiMC4xMDczNDUsIDAuMTE3ODgzLCAwLjIxMjY3MywgMC4zNzA0NDQsIDAuNTI4NDI1LCAwLjg5NzcwNywgMS4xMTAyNCIsIFwKLSAgICAgICAgICAiMC4xMTIwNDgsIDAuMTIyNjA5LCAwLjIxNzMyLCAwLjM3NTExNiwgMC41MzQwMDcsIDAuOTAzOTQ1LCAxLjExMzI3Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExNzU5NywgMC4xMzkzNDcsIDAuMzM4NDkzLCAwLjY3MTUzLCAxLjAwNDgzLCAxLjc4MjUyLCAyLjIzMDI0IiwgXAotICAgICAgICAgICIwLjExNzYxOCwgMC4xMzkzNzMsIDAuMzM4ODU2LCAwLjY3MTQ3MSwgMS4wMDY1NywgMS43ODI1MiwgMi4yMjk5MiIsIFwKLSAgICAgICAgICAiMC4xMTc4NTUsIDAuMTM5NTk2LCAwLjMzODkwNywgMC42NzE4MjYsIDEuMDA2MDUsIDEuNzg0NTQsIDIuMjI2OTgiLCBcCi0gICAgICAgICAgIjAuMTE4MjEsIDAuMTM5ODc3LCAwLjMzODU1OSwgMC42NzEzLCAxLjAwNjU1LCAxLjc4MjUxLCAyLjIzMDA0IiwgXAotICAgICAgICAgICIwLjExODQ2OSwgMC4xNDAxNTksIDAuMzM5MDM1LCAwLjY3MTE3NiwgMS4wMDUyMiwgMS43ODI0OSwgMi4yMjc3OCIsIFwKLSAgICAgICAgICAiMC4xMTkwOTYsIDAuMTQwNTUxLCAwLjMzOTA0LCAwLjY3MDk0MSwgMS4wMDQ4NywgMS43ODM0MSwgMi4yMzAyNyIsIFwKLSAgICAgICAgICAiMC4xMTk1MjMsIDAuMTQxMDg4LCAwLjMzODc3OSwgMC42NzEzNDcsIDEuMDA1NTgsIDEuNzg0OTksIDIuMjI3NDEiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY3NjU2LCAwLjA3NzMxMiwgMC4xNjQ1OTMsIDAuMzA5NTM1LCAwLjQ1NDQxLCAwLjc5Mjg1NywgMC45ODQ5NDEiLCBcCi0gICAgICAgICAgIjAuMDc1NDYzLCAwLjA4NTEzMywgMC4xNzI0MDMsIDAuMzE3MjY2LCAwLjQ2MjM2OSwgMC44MDAyNTMsIDAuOTkzMzY4IiwgXAotICAgICAgICAgICIwLjA4MjQxOSwgMC4wOTIwOTMsIDAuMTc5MzYyLCAwLjMyNDE5NSwgMC40Njk1NTgsIDAuODA2NjUxLCAxLjAwMDI0IiwgXAotICAgICAgICAgICIwLjA4NzU0MywgMC4wOTcyMSwgMC4xODQ0NjcsIDAuMzI5MDg1LCAwLjQ3NDA3MywgMC44MTE1NzYsIDEuMDA0NDYiLCBcCi0gICAgICAgICAgIjAuMDkxNDc2LCAwLjEwMTE1MiwgMC4xODgzNzYsIDAuMzMzMTQsIDAuNDc3NDgxLCAwLjgxNTEsIDEuMDA5OTkiLCBcCi0gICAgICAgICAgIjAuMDk2NzA3LCAwLjEwNjM4OSwgMC4xOTMzNDEsIDAuMzM4MjUyLCAwLjQ4MzE0NywgMC44MjE3ODksIDEuMDEzMzEiLCBcCi0gICAgICAgICAgIjAuMTAwNDcsIDAuMTEwMjI3LCAwLjE5NzE0OCwgMC4zNDIwMjEsIDAuNDg3MzkxLCAwLjgyNDE3NiwgMS4wMTk2MSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDQ0NDksIDAuMTI0ODQyLCAwLjMwNjEzNCwgMC42MDQzNDksIDAuOTAzNzQ2LCAxLjYwMjU4LCAxLjk5OTcxIiwgXAotICAgICAgICAgICIwLjEwNTY0NSwgMC4xMjQ5ODEsIDAuMzA1MTcxLCAwLjYwMjcxOSwgMC44OTgwNTUsIDEuNTk0MywgMS45ODg1MiIsIFwKLSAgICAgICAgICAiMC4xMDUwMjgsIDAuMTI1MzY3LCAwLjMwNTM0OSwgMC42MDIzOSwgMC45MDQ0NTYsIDEuNjAwNiwgMS45OTEwNSIsIFwKLSAgICAgICAgICAiMC4xMDUxMDUsIDAuMTI1NzU1LCAwLjMwNDUzNywgMC42MDA0MDQsIDAuOTAyODc0LCAxLjU5OTQ1LCAxLjk5ODA3IiwgXAotICAgICAgICAgICIwLjEwNjUyMSwgMC4xMjYzNjUsIDAuMzA2MTgxLCAwLjYwNTM1NywgMC44OTg0MjYsIDEuNTk2ODUsIDEuOTk4OTkiLCBcCi0gICAgICAgICAgIjAuMTA2LCAwLjEyNjU2MywgMC4zMDU3NTIsIDAuNjAyNzMxLCAwLjkwMTA4MywgMS42MDE1MiwgMS45OTY4NSIsIFwKLSAgICAgICAgICAiMC4xMDYzMjMsIDAuMTI1NjY0LCAwLjMwNTA4NCwgMC42MDEwNjUsIDAuOTAxMzcsIDEuNTk2NjYsIDEuOTk5NjkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc3OTg2LCAwLjA4ODU1LCAwLjE4MzI2MywgMC4zNDE1MjIsIDAuNDk5NTksIDAuODY3MDEyLCAxLjA3OTAyIiwgXAotICAgICAgICAgICIwLjA4NTM3MSwgMC4wOTU5NCwgMC4xOTA2NjIsIDAuMzQ4OTA2LCAwLjUwNzQsIDAuODc3MTY5LCAxLjA4NjciLCBcCi0gICAgICAgICAgIjAuMDkzNTMzLCAwLjEwNDEwOCwgMC4xOTg3ODEsIDAuMzU3MTIyLCAwLjUxNTU4OCwgMC44ODM4NjIsIDEuMDkyOTUiLCBcCi0gICAgICAgICAgIjAuMDk5ODI0LCAwLjExMDM1NCwgMC4yMDQ5ODcsIDAuMzYyNzcxLCAwLjUyMTg0MiwgMC44ODkwMjQsIDEuMTAyOTkiLCBcCi0gICAgICAgICAgIjAuMTA1MDA3LCAwLjExNTU2OCwgMC4yMTAxODQsIDAuMzY4MTMsIDAuNTI3MDUxLCAwLjg5Mzk1MiwgMS4xMDgiLCBcCi0gICAgICAgICAgIjAuMTEyMDk1LCAwLjEyMjY1OCwgMC4yMTc0MDIsIDAuMzc1NzIzLCAwLjUzMjg4MywgMC45MDM3NDIsIDEuMTEzMzIiLCBcCi0gICAgICAgICAgIjAuMTE3NTk3LCAwLjEyODA5MywgMC4yMjI4ODUsIDAuMzgxMTEzLCAwLjUzODMwOSwgMC45MDkxMTMsIDEuMTE3MDUiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTE3NTEsIDAuMTM5MzYsIDAuMzM4ODg3LCAwLjY3MTg5NSwgMS4wMDQ2NiwgMS43ODE3NCwgMi4yMjg2NCIsIFwKLSAgICAgICAgICAiMC4xMTc1NDEsIDAuMTM5NDE5LCAwLjMzODc2NywgMC42NzE2ODMsIDEuMDA1OTgsIDEuNzg1MzUsIDIuMjI3MDciLCBcCi0gICAgICAgICAgIjAuMTE3NzU4LCAwLjEzOTYyMiwgMC4zMzg4NzgsIDAuNjcxODUsIDEuMDA1ODMsIDEuNzgzODMsIDIuMjI0MzEiLCBcCi0gICAgICAgICAgIjAuMTE4MTc5LCAwLjEzOTk5NSwgMC4zMzkwMzksIDAuNjcxMzkyLCAxLjAwNTk1LCAxLjc4MDQ2LCAyLjIzMDEyIiwgXAotICAgICAgICAgICIwLjExODU1MiwgMC4xNDAzMzgsIDAuMzM5MjYxLCAwLjY3MjIzOSwgMS4wMDU0OCwgMS43ODE5MiwgMi4yMzA1IiwgXAotICAgICAgICAgICIwLjExOTI0NywgMC4xNDA3ODUsIDAuMzM4OTY0LCAwLjY3MzIxNiwgMS4wMDQ3MSwgMS43ODQxOCwgMi4yMjc1MSIsIFwKLSAgICAgICAgICAiMC4xMjAwMTcsIDAuMTQxMzA1LCAwLjMzOTUyNiwgMC42NzE0NDcsIDEuMDA0NjEsIDEuNzgwNzYsIDIuMjI3NSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjY0NTIsIDAuMDc2MDc2LCAwLjE2MzIzOSwgMC4zMDg2MjYsIDAuNDUyODExLCAwLjc5MDcyOCwgMC45ODYyODYiLCBcCi0gICAgICAgICAgIjAuMDczODU5LCAwLjA4MzQ2NiwgMC4xNzA2NTYsIDAuMzE2MDUxLCAwLjQ2MjA4OSwgMC43OTgyMTYsIDAuOTkzODU5IiwgXAotICAgICAgICAgICIwLjA4MDI3NywgMC4wODk5MjksIDAuMTc3MTgyLCAwLjMyMjQ0NCwgMC40Njg0MiwgMC44MDUxOTMsIDEuMDAwMiIsIFwKLSAgICAgICAgICAiMC4wODQ4MjEsIDAuMDk0NDkyLCAwLjE4MTcwMiwgMC4zMjczNzQsIDAuNDcxODEsIDAuODExNTE4LCAxLjAwNjM5IiwgXAotICAgICAgICAgICIwLjA4ODMwNywgMC4wOTc5NzEsIDAuMTg1MTUxLCAwLjMzMTE2NCwgMC40NzcyOTMsIDAuODEyNDI0LCAxLjAxMTE0IiwgXAotICAgICAgICAgICIwLjA5MjkyLCAwLjEwMjU5MiwgMC4xODk0ODUsIDAuMzM0MjQsIDAuNDgwMzM3LCAwLjgxOTU1LCAxLjAxMjk1IiwgXAotICAgICAgICAgICIwLjA5NjIzNSwgMC4xMDU5MTEsIDAuMTkyODAyLCAwLjMzNzk2MywgMC40ODQ1MTMsIDAuODI0MDkzLCAxLjAxNTA5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwNTIzOCwgMC4xMjU3NzQsIDAuMzAzNzE1LCAwLjU5OTkyMywgMC44OTY1MjksIDEuNTk3MzgsIDEuOTgyIiwgXAotICAgICAgICAgICIwLjEwNTMwOCwgMC4xMjU5NjEsIDAuMzAzNDExLCAwLjU5OTQwMSwgMC44OTk5NywgMS41OTc1MiwgMS45ODY3MiIsIFwKLSAgICAgICAgICAiMC4xMDYxOTQsIDAuMTI2MTY1LCAwLjMwNTcxMiwgMC42MDA2MDYsIDAuOTAxNTE5LCAxLjYwMDMxLCAxLjk4Mzg0IiwgXAotICAgICAgICAgICIwLjEwNjQzNSwgMC4xMjUzOCwgMC4zMDI2MjIsIDAuNjA0NTI3LCAwLjkwNDQwNywgMS41OTkxMSwgMS45OTg3MyIsIFwKLSAgICAgICAgICAiMC4xMDY1MTcsIDAuMTI2MjEsIDAuMzAzMjA1LCAwLjYwMjY3MywgMC45MDEzNTQsIDEuNTk4MjMsIDEuOTk3NzUiLCBcCi0gICAgICAgICAgIjAuMTA1OTUsIDAuMTI1Mjg5LCAwLjMwNTc5MiwgMC41OTg1ODUsIDAuODk5Mjc4LCAxLjU5MzcyLCAxLjk4MyIsIFwKLSAgICAgICAgICAiMC4xMDY3NiwgMC4xMjU3MTEsIDAuMzA1NjQxLCAwLjYwNTIzLCAwLjkwMjQxOSwgMS41OTEzLCAxLjk4NzYzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyMjI1LCAwLjAwMjIyNSwgMC4wMDIyMjYsIDAuMDAyMjI2LCAwLjAwMjIyNywgMC4wMDIyMjUsIDAuMDAyMjI2IiwgXAotICAgICAgICAgICIwLjAwMjIwNywgMC4wMDIyMDcsIDAuMDAyMjA4LCAwLjAwMjIwOSwgMC4wMDIyMDksIDAuMDAyMjA4LCAwLjAwMjIwOCIsIFwKLSAgICAgICAgICAiMC4wMDIyNjIsIDAuMDAyMjYyLCAwLjAwMjI2NCwgMC4wMDIyNjQsIDAuMDAyMjY1LCAwLjAwMjI2NCwgMC4wMDIyNjUiLCBcCi0gICAgICAgICAgIjAuMDAyMzQ2LCAwLjAwMjM0NiwgMC4wMDIzNDcsIDAuMDAyMzQ4LCAwLjAwMjM0OCwgMC4wMDIzNDgsIDAuMDAyMzQ4IiwgXAotICAgICAgICAgICIwLjAwMjQ0NSwgMC4wMDI0NDYsIDAuMDAyNDQ3LCAwLjAwMjQ0OCwgMC4wMDI0NDgsIDAuMDAyNDQ4LCAwLjAwMjQ0OCIsIFwKLSAgICAgICAgICAiMC4wMDI2MjksIDAuMDAyNjMsIDAuMDAyNjMsIDAuMDAyNjMxLCAwLjAwMjYzLCAwLjAwMjYzLCAwLjAwMjYyOSIsIFwKLSAgICAgICAgICAiMC4wMDI4MDMsIDAuMDAyODAzLCAwLjAwMjgwMywgMC4wMDI4MDMsIDAuMDAyODAyLCAwLjAwMjgwMiwgMC4wMDI4MDIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDMyOTcsIDAuMDAzMjk3LCAwLjAwMzI5OCwgMC4wMDMyOTgsIDAuMDAzMjk4LCAwLjAwMzI5OCwgMC4wMDMyOTgiLCBcCi0gICAgICAgICAgIjAuMDAzMjk3LCAwLjAwMzI5OCwgMC4wMDMyOTksIDAuMDAzMywgMC4wMDMzLCAwLjAwMzI5OSwgMC4wMDMzIiwgXAotICAgICAgICAgICIwLjAwMzM2OSwgMC4wMDMzNjksIDAuMDAzMzcxLCAwLjAwMzM3MiwgMC4wMDMzNzMsIDAuMDAzMzczLCAwLjAwMzM3MyIsIFwKLSAgICAgICAgICAiMC4wMDM0NiwgMC4wMDM0NjEsIDAuMDAzNDYzLCAwLjAwMzQ2NCwgMC4wMDM0NjUsIDAuMDAzNDY1LCAwLjAwMzQ2NSIsIFwKLSAgICAgICAgICAiMC4wMDM1NzgsIDAuMDAzNTc5LCAwLjAwMzU3NCwgMC4wMDM1NzUsIDAuMDAzNTgyLCAwLjAwMzU4MiwgMC4wMDM1ODIiLCBcCi0gICAgICAgICAgIjAuMDAzNzc3LCAwLjAwMzc3OSwgMC4wMDM3NjksIDAuMDAzNzY5LCAwLjAwMzc3LCAwLjAwMzc4MSwgMC4wMDM3ODEiLCBcCi0gICAgICAgICAgIjAuMDAzOTUzLCAwLjAwMzk2NiwgMC4wMDM5NjYsIDAuMDAzOTY2LCAwLjAwMzk1NCwgMC4wMDM5NjcsIDAuMDAzOTY4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxOTEyLCAwLjAwMTkxMywgMC4wMDE5MTYsIDAuMDAxOTE3LCAwLjAwMTkxNywgMC4wMDE5MTgsIDAuMDAxOTE4IiwgXAotICAgICAgICAgICIwLjAwMTkxNCwgMC4wMDE5MTYsIDAuMDAxOTE5LCAwLjAwMTkyMSwgMC4wMDE5MjIsIDAuMDAxOTIyLCAwLjAwMTkyMiIsIFwKLSAgICAgICAgICAiMC4wMDIsIDAuMDAyLCAwLjAwMjAwNCwgMC4wMDIwMDUsIDAuMDAyMDA2LCAwLjAwMjAwNiwgMC4wMDIwMDYiLCBcCi0gICAgICAgICAgIjAuMDAyMDk3LCAwLjAwMjA5OCwgMC4wMDIxMDEsIDAuMDAyMTAyLCAwLjAwMjEwMiwgMC4wMDIxMDMsIDAuMDAyMTAzIiwgXAotICAgICAgICAgICIwLjAwMjIxNiwgMC4wMDIyMTYsIDAuMDAyMjE4LCAwLjAwMjIxOSwgMC4wMDIyMTksIDAuMDAyMjE5LCAwLjAwMjIyIiwgXAotICAgICAgICAgICIwLjAwMjM5OSwgMC4wMDI0MDEsIDAuMDAyNDAxLCAwLjAwMjQwMiwgMC4wMDI0MDEsIDAuMDAyNDAxLCAwLjAwMjQwMiIsIFwKLSAgICAgICAgICAiMC4wMDI2MDgsIDAuMDAyNjA4LCAwLjAwMjYwOCwgMC4wMDI2MDksIDAuMDAyNjA3LCAwLjAwMjYwOCwgMC4wMDI2MDgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDMzNSwgMC4wMDMzNTIsIDAuMDAzMzU3LCAwLjAwMzM1OSwgMC4wMDMzNiwgMC4wMDMzNiwgMC4wMDMzNiIsIFwKLSAgICAgICAgICAiMC4wMDMzOSwgMC4wMDMzOTIsIDAuMDAzMzk4LCAwLjAwMzQsIDAuMDAzNDAxLCAwLjAwMzQwNCwgMC4wMDM0MDIiLCBcCi0gICAgICAgICAgIjAuMDAzNTEyLCAwLjAwMzUxNCwgMC4wMDM1MjEsIDAuMDAzNTI0LCAwLjAwMzUyNSwgMC4wMDM1MjYsIDAuMDAzNTI3IiwgXAotICAgICAgICAgICIwLjAwMzY0NiwgMC4wMDM2NDgsIDAuMDAzNjU2LCAwLjAwMzY1OSwgMC4wMDM2NiwgMC4wMDM2NjIsIDAuMDAzNjYxIiwgXAotICAgICAgICAgICIwLjAwMzc5MiwgMC4wMDM3OTQsIDAuMDAzODAxLCAwLjAwMzgwMywgMC4wMDM4MDUsIDAuMDAzODA2LCAwLjAwMzgwNiIsIFwKLSAgICAgICAgICAiMC4wMDQwMzcsIDAuMDA0MDM5LCAwLjAwNDA0NiwgMC4wMDQwNSwgMC4wMDQwNTIsIDAuMDA0MDUzLCAwLjAwNDA1MyIsIFwKLSAgICAgICAgICAiMC4wMDQyNzgsIDAuMDA0Mjc5LCAwLjAwNDI4NSwgMC4wMDQyODksIDAuMDA0MjkxLCAwLjAwNDI5MiwgMC4wMDQyOTMiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFMpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4xOTk3MTY7Ci0gICAgZnVuY3Rpb24gOiAiKEFeQikiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4Nzg1MywgMC4wOTg0LCAwLjE5MzE0MSwgMC4zNTExNjcsIDAuNTA4OTk4LCAwLjg3Nzg5OSwgMS4wODc4MyIsIFwKLSAgICAgICAgICAiMC4wOTU5NzYsIDAuMTA2NTE5LCAwLjIwMTI3MywgMC4zNTkyNjEsIDAuNTE3MTk0LCAwLjg4NTUyNywgMS4wOTYwMyIsIFwKLSAgICAgICAgICAiMC4xMDUxOTgsIDAuMTE1NzM5LCAwLjIxMDU1MywgMC4zNjg3NDcsIDAuNTI2NTIsIDAuODk0ODMsIDEuMTA1MjIiLCBcCi0gICAgICAgICAgIjAuMTEyNjksIDAuMTIzMjM4LCAwLjIxNzk4MiwgMC4zNzYwNjgsIDAuNTM0MDM1LCAwLjkwMjMzLCAxLjExMjc3IiwgXAotICAgICAgICAgICIwLjExODk3NSwgMC4xMjk1MjMsIDAuMjI0MzI1LCAwLjM4MjMsIDAuNTQwMzIxLCAwLjkwODU4NCwgMS4xMTk1NCIsIFwKLSAgICAgICAgICAiMC4xMjczMzYsIDAuMTM3ODgyLCAwLjIzMjYzOSwgMC4zOTA1NTksIDAuNTQ4NTE4LCAwLjkxNjk3NywgMS4xMjczIiwgXAotICAgICAgICAgICIwLjEzMzc0NSwgMC4xNDQyNzksIDAuMjM5MDE3LCAwLjM5NjkxOSwgMC41NTQ4MjQsIDAuOTIzMzI0LCAxLjEzMzg1Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExODIzMiwgMC4xNDAwNDEsIDAuMzM4MzYyLCAwLjY3MDMxNCwgMS4wMDMwOSwgMS43Nzc2LCAyLjIyMDA1IiwgXAotICAgICAgICAgICIwLjExODI0OCwgMC4xNDAwNjEsIDAuMzM4MzgyLCAwLjY2OTk5NCwgMS4wMDMwOSwgMS43NzY4NCwgMi4yMTk5MiIsIFwKLSAgICAgICAgICAiMC4xMTgzMzUsIDAuMTQwMTc0LCAwLjMzODE3NCwgMC42NzA1MzIsIDEuMDAyNTQsIDEuNzc2NzQsIDIuMjE5OTIiLCBcCi0gICAgICAgICAgIjAuMTE4ODEsIDAuMTQwNTMsIDAuMzM4ODQ0LCAwLjY3MDUxMiwgMS4wMDI1NywgMS43NzY3MywgMi4yMTk2MiIsIFwKLSAgICAgICAgICAiMC4xMTkzMDQsIDAuMTQwOTEzLCAwLjMzODk2NiwgMC42NzAyNjcsIDEuMDAyNjQsIDEuNzc2NzUsIDIuMjIyMzEiLCBcCi0gICAgICAgICAgIjAuMTIwMDY1LCAwLjE0MTU1LCAwLjMzOTEyOCwgMC42NzA2NDMsIDEuMDAyLCAxLjc3NjcxLCAyLjIyMzI2IiwgXAotICAgICAgICAgICIwLjEyMDk0MiwgMC4xNDIxMzksIDAuMzM4ODI3LCAwLjY3MTM5MSwgMS4wMDQwNywgMS43NzY4NSwgMi4yMTk2MiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODY1NDksIDAuMDk2MjQsIDAuMTgzMTI5LCAwLjMyNzg3NCwgMC40NzI4MTIsIDAuODEwNjYsIDEuMDAzNDQiLCBcCi0gICAgICAgICAgIjAuMDk0Mzk3LCAwLjEwNDEwNCwgMC4xOTA5OTEsIDAuMzM1NzQ1LCAwLjQ4MDUxMSwgMC44MTg0MDEsIDEuMDExNDUiLCBcCi0gICAgICAgICAgIjAuMTAzNDE5LCAwLjExMzExOSwgMC4yMDAwMDgsIDAuMzQ0NzY2LCAwLjQ4OTU0MiwgMC44MjczNDEsIDEuMDIwNDQiLCBcCi0gICAgICAgICAgIjAuMTEwNjY2LCAwLjEyMDM3NCwgMC4yMDcyNTYsIDAuMzUyMDE0LCAwLjQ5Njc3NSwgMC44MzQ2NzUsIDEuMDI3NTMiLCBcCi0gICAgICAgICAgIjAuMTE2Njk5LCAwLjEyNjQwOSwgMC4yMTMzMTIsIDAuMzU4MDkzLCAwLjUwMzAxMSwgMC44NDA3OTMsIDEuMDMzODgiLCBcCi0gICAgICAgICAgIjAuMTI0NjQzLCAwLjEzNDM4NiwgMC4yMjEzMDcsIDAuMzY2MTAyLCAwLjUxMDg4NiwgMC44NDg4NjcsIDEuMDQxNjgiLCBcCi0gICAgICAgICAgIjAuMTMwNTM1LCAwLjE0MDI1LCAwLjIyNzI0NywgMC4zNzIwMTksIDAuNTE2ODIsIDAuODU0NzY5LCAxLjA0NzgyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwNzAwNiwgMC4xMjYzNDYsIDAuMzAzMzU2LCAwLjYwMDY0MiwgMC44OTY0MzEsIDEuNTg5NDcsIDEuOTg5MSIsIFwKLSAgICAgICAgICAiMC4xMDcwMTYsIDAuMTI2MzcxLCAwLjMwMzM2OSwgMC42MDA1MDgsIDAuODk4MzUsIDEuNTg5OCwgMS45ODk1IiwgXAotICAgICAgICAgICIwLjEwNzIyOSwgMC4xMjY1NDIsIDAuMzAzMDMyLCAwLjYwMDY2NCwgMC44OTgxMDksIDEuNTg4ODksIDEuOTg2MTUiLCBcCi0gICAgICAgICAgIjAuMTA3Njk5LCAwLjEyNjkxOSwgMC4zMDM1MTksIDAuNjAwNjg4LCAwLjg5NjI1MSwgMS41ODk4LCAxLjk4NDk5IiwgXAotICAgICAgICAgICIwLjEwODI3OSwgMC4xMjc0MDUsIDAuMzAzNjYsIDAuNTk5MzEyLCAwLjg5NjY3MiwgMS41ODk1NSwgMS45ODU1NCIsIFwKLSAgICAgICAgICAiMC4xMDkxMDcsIDAuMTI4MTQxLCAwLjMwMzkwMSwgMC41OTkzMDEsIDAuODk2NjY4LCAxLjU4OTQ3LCAxLjk4NTg2IiwgXAotICAgICAgICAgICIwLjExMDEyLCAwLjEyODgzNiwgMC4zMDQxMSwgMC41OTk3MiwgMC44OTY2MjUsIDEuNTkxMTksIDEuOTg1NTEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk2MDYxLCAwLjEwNjYwNCwgMC4yMDEzOTUsIDAuMzU5MjcyLCAwLjUxNzEyNCwgMC44ODU0NTQsIDEuMDk1ODciLCBcCi0gICAgICAgICAgIjAuMTAzNTk4LCAwLjExNDEzNywgMC4yMDg5MzYsIDAuMzY2Nzk2LCAwLjUyNDY3MSwgMC44OTI5OCwgMS4xMDM0NCIsIFwKLSAgICAgICAgICAiMC4xMDk4MTgsIDAuMTIwMzU4LCAwLjIxNTE1NywgMC4zNzMwMTcsIDAuNTMwOTM4LCAwLjg5OTE3MSwgMS4xMDk2NiIsIFwKLSAgICAgICAgICAiMC4xMTQ0MjksIDAuMTI0OTcxLCAwLjIxOTc3MSwgMC4zNzc2MjEsIDAuNTM1NDgsIDAuOTAzNzcyLCAxLjExNDIxIiwgXAotICAgICAgICAgICIwLjExODA0MSwgMC4xMjg1ODQsIDAuMjIzMzc0LCAwLjM4MTIyNywgMC41MzkwNzIsIDAuOTA3MzU3LCAxLjExNzkxIiwgXAotICAgICAgICAgICIwLjEyMjgwOCwgMC4xMzMzMzgsIDAuMjI4MDQsIDAuMzg1OTIxLCAwLjU0Mzc1MSwgMC45MTIxNTUsIDEuMTIyNTQiLCBcCi0gICAgICAgICAgIjAuMTI2MjMyLCAwLjEzNjg2OCwgMC4yMzE2MTQsIDAuMzg5NDg5LCAwLjU0NzI3MSwgMC45MTU1OTMsIDEuMTI2MjQiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTE3OTM2LCAwLjEzOTgyNywgMC4zMzgzMDEsIDAuNjcwNTg5LCAxLjAwMjI3LCAxLjc3OTc2LCAyLjIyMTE1IiwgXAotICAgICAgICAgICIwLjExNzk1MiwgMC4xMzk4MjcsIDAuMzM4MzY0LCAwLjY3MDc1MywgMS4wMDI0NSwgMS43NzcxNiwgMi4yMTk5NyIsIFwKLSAgICAgICAgICAiMC4xMTc5MjgsIDAuMTM5ODM1LCAwLjMzODM0NSwgMC42NzA3ODgsIDEuMDAzNzEsIDEuNzc4MjQsIDIuMjE5ODkiLCBcCi0gICAgICAgICAgIjAuMTE3OTExLCAwLjEzOTgzOCwgMC4zMzg0MDIsIDAuNjcwNzAzLCAxLjAwMjk1LCAxLjc3ODQ4LCAyLjIyMTU2IiwgXAotICAgICAgICAgICIwLjExNzk3MiwgMC4xMzk4NTYsIDAuMzM4MjI3LCAwLjY3MTA2NywgMS4wMDI5LCAxLjc3ODI2LCAyLjIyMDMzIiwgXAotICAgICAgICAgICIwLjExNzkyNSwgMC4xMzk3NTMsIDAuMzM4NDU5LCAwLjY3MDY2NCwgMS4wMDI5NCwgMS43NzkzNiwgMi4yMjEzNyIsIFwKLSAgICAgICAgICAiMC4xMTgxMzEsIDAuMTM5ODM4LCAwLjMzODI4NSwgMC42NzA2MjQsIDEuMDAyMTQsIDEuNzc4MTgsIDIuMjIyODMiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk0MjQsIDAuMTAzOTI1LCAwLjE5MDg1MSwgMC4zMzU2MzQsIDAuNDgwMzQ3LCAwLjgxODAyNywgMS4wMTEwNCIsIFwKLSAgICAgICAgICAiMC4xMDE4OTksIDAuMTExNTc3LCAwLjE5ODUwNiwgMC4zNDMzMTUsIDAuNDg4MDA0LCAwLjgyNTY4MSwgMS4wMTg2MiIsIFwKLSAgICAgICAgICAiMC4xMDgzMjgsIDAuMTE4MDA2LCAwLjIwNDk1NSwgMC4zNDk3MTIsIDAuNDk0NDI5LCAwLjgzMjEwMiwgMS4wMjUwNiIsIFwKLSAgICAgICAgICAiMC4xMTMwNTIsIDAuMTIyNzQyLCAwLjIwOTY3MSwgMC4zNTQ0NTYsIDAuNDk5MTYxLCAwLjgzNjgzNywgMS4wMjk4NCIsIFwKLSAgICAgICAgICAiMC4xMTY4NywgMC4xMjY1NTcsIDAuMjEzNSwgMC4zNTgyNjUsIDAuNTAzMDAxLCAwLjg0MDY4LCAxLjAzMzYiLCBcCi0gICAgICAgICAgIjAuMTIxOTUzLCAwLjEzMTYyNywgMC4yMTg1NjMsIDAuMzYzMzQ3LCAwLjUwODA2OSwgMC44NDU3MjMsIDEuMDM4NzciLCBcCi0gICAgICAgICAgIjAuMTI1NzU1LCAwLjEzNTQ0LCAwLjIyMjM1NSwgMC4zNjcyLCAwLjUxMTg5MSwgMC44NDk1MzMsIDEuMDQyNDgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTA2NDg3LCAwLjEyNTkyOCwgMC4zMDI5OTIsIDAuNjAwNjUzLCAwLjg5NzAxMywgMS41OTA1LCAxLjk4OTM4IiwgXAotICAgICAgICAgICIwLjEwNjQ4NiwgMC4xMjU5NjMsIDAuMzAzMjI4LCAwLjYwMDY5MywgMC44OTc4ODYsIDEuNTkwMzgsIDEuOTg4OTYiLCBcCi0gICAgICAgICAgIjAuMTA2NDkyLCAwLjEyNTk2OCwgMC4zMDMzMjgsIDAuNTk5ODgsIDAuODk3ODc2LCAxLjU5MTk4LCAxLjk4NjU3IiwgXAotICAgICAgICAgICIwLjEwNjQ5NiwgMC4xMjU5MzMsIDAuMzAyOTc3LCAwLjYwMDUxOSwgMC44OTc3ODgsIDEuNTkwMjIsIDEuOTg4OCIsIFwKLSAgICAgICAgICAiMC4xMDY0ODQsIDAuMTI1OTExLCAwLjMwMzI0OCwgMC42MDA0NjgsIDAuODk2OTUyLCAxLjU5MDI2LCAxLjk4ODY2IiwgXAotICAgICAgICAgICIwLjEwNjM5MSwgMC4xMjU4MTUsIDAuMzAzMjY0LCAwLjU5OTg5MiwgMC44OTY5NTQsIDEuNTkxODgsIDEuOTg4OTUiLCBcCi0gICAgICAgICAgIjAuMTA2NjI0LCAwLjEyNTg4MSwgMC4zMDI5MjcsIDAuNTk5NDY4LCAwLjg5ODAwMiwgMS41OTE5OSwgMS45ODg1MiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzkyOSwgMC4wODk4MzgsIDAuMTg0NjQ3LCAwLjM0MjUwOSwgMC41MDAzNTksIDAuODY4NjYxLCAxLjA3OTA3IiwgXAotICAgICAgICAgICIwLjA4Njc5NCwgMC4wOTczNDEsIDAuMTkyMTM2LCAwLjM1MDAwNSwgMC41MDc4NjYsIDAuODc2MTQ5LCAxLjA4NjU2IiwgXAotICAgICAgICAgICIwLjA5NDgyNiwgMC4xMDUzNzMsIDAuMjAwMTUzLCAwLjM1ODAzNiwgMC41MTU4NjMsIDAuODg0MTk1LCAxLjA5NDc2IiwgXAotICAgICAgICAgICIwLjEwMTEwMywgMC4xMTE2NDMsIDAuMjA2NDA5LCAwLjM2NDI2NSwgMC41MjIxNiwgMC44OTA0NDEsIDEuMTAwODUiLCBcCi0gICAgICAgICAgIjAuMTA2MTc0LCAwLjExNjcxMywgMC4yMTE0NiwgMC4zNjkzMDcsIDAuNTI3MTc4LCAwLjg5NTQ2NSwgMS4xMDYwNCIsIFwKLSAgICAgICAgICAiMC4xMTI5NTgsIDAuMTIzNTM1LCAwLjIxODMzOSwgMC4zNzYyMDEsIDAuNTM0MDAzLCAwLjkwMjMzOCwgMS4xMTI2NyIsIFwKLSAgICAgICAgICAiMC4xMTgwODcsIDAuMTI4NjQ5LCAwLjIyMzQ4LCAwLjM4MTMwMiwgMC41MzkxMDQsIDAuOTA3NDczLCAxLjExNzkiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTE3OTgsIDAuMTM5OTU4LCAwLjMzODg0NCwgMC42NzA4MDYsIDEuMDAyOTcsIDEuNzc4MDUsIDIuMjIxMTMiLCBcCi0gICAgICAgICAgIjAuMTE4MDA3LCAwLjEzOTgwNiwgMC4zMzg0ODgsIDAuNjcwNjQzLCAxLjAwMywgMS43NzgzNiwgMi4yMjMzIiwgXAotICAgICAgICAgICIwLjExODI4LCAwLjE0MDA4NywgMC4zMzg3NTIsIDAuNjcxMTU5LCAxLjAwMzY4LCAxLjc3OTYxLCAyLjIyMzA0IiwgXAotICAgICAgICAgICIwLjExODcxOSwgMC4xNDA0NSwgMC4zMzg2MDYsIDAuNjcxMDU4LCAxLjAwMjA0LCAxLjc3OTU0LCAyLjIyMjk2IiwgXAotICAgICAgICAgICIwLjExOTA3NSwgMC4xNDA3MDgsIDAuMzM4NjU2LCAwLjY3MDk4NywgMS4wMDM1MSwgMS43NzcxOSwgMi4yMjI5MiIsIFwKLSAgICAgICAgICAiMC4xMTk4MTksIDAuMTQxMzEsIDAuMzM4ODExLCAwLjY3MDY5MiwgMS4wMDMzNywgMS43NzkzLCAyLjIyMjYzIiwgXAotICAgICAgICAgICIwLjEyMDU2OCwgMC4xNDIwMTYsIDAuMzM4NzMxLCAwLjY3MDc2MywgMS4wMDI3MywgMS43NzkyNSwgMi4yMTkzNSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzU2NDcsIDAuMDg1MzM4LCAwLjE3MjIwNiwgMC4zMTY5NTQsIDAuNDYxNzMzLCAwLjc5OTYwNiwgMC45OTI0NDIiLCBcCi0gICAgICAgICAgIjAuMDgzMDc0LCAwLjA5Mjc2MywgMC4xNzk2NTUsIDAuMzI0MzksIDAuNDY5MTcxLCAwLjgwNjk2NCwgMS4wMDAwNCIsIFwKLSAgICAgICAgICAiMC4wOTA3NiwgMC4xMDA0NTYsIDAuMTg3MzQ0LCAwLjMzMjA5NSwgMC40NzY4ODIsIDAuODE0Njg0LCAxLjAwNzciLCBcCi0gICAgICAgICAgIjAuMDk2NzAyLCAwLjEwNjQxLCAwLjE5MzI5OCwgMC4zMzgwNDIsIDAuNDgyOTA2LCAwLjgyMDUyOCwgMS4wMTM2MyIsIFwKLSAgICAgICAgICAiMC4xMDE1NTEsIDAuMTExMywgMC4xOTgyMTMsIDAuMzQyOTU1LCAwLjQ4NzcyNiwgMC44MjU2ODYsIDEuMDE4NjUiLCBcCi0gICAgICAgICAgIjAuMTA3OTA3LCAwLjExNzY2LCAwLjIwNDc0LCAwLjM0OTQ3NSwgMC40OTQyNTEsIDAuODMxOTY4LCAxLjAyNTAxIiwgXAotICAgICAgICAgICIwLjExMjc3NiwgMC4xMjI1MzcsIDAuMjA5NzEsIDAuMzU0NDA5LCAwLjQ5OTIxNSwgMC44MzY5OTEsIDEuMDI5OTciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTA2Nzg5LCAwLjEyNjE5MywgMC4zMDMyNTcsIDAuNjAwNTg0LCAwLjg5Nzk1MSwgMS41ODk3OSwgMS45ODUwNiIsIFwKLSAgICAgICAgICAiMC4xMDY3NywgMC4xMjYxNjIsIDAuMzAzMzcyLCAwLjYwMDU2NywgMC44OTYyMjMsIDEuNTg4OTksIDEuOTg1OTEiLCBcCi0gICAgICAgICAgIjAuMTA3MDM3LCAwLjEyNjM0NiwgMC4zMDMzNiwgMC42MDAzOCwgMC44OTYyMTgsIDEuNTg4ODUsIDEuOTg0NTkiLCBcCi0gICAgICAgICAgIjAuMTA3Mzk0LCAwLjEyNjc4MSwgMC4zMDM0ODUsIDAuNjAwNTc4LCAwLjg5NjU1NiwgMS41ODkxMiwgMS45ODQ4MSIsIFwKLSAgICAgICAgICAiMC4xMDc3NzksIDAuMTI3MDc2LCAwLjMwMzY4LCAwLjYwMDY1NiwgMC44OTY5MTEsIDEuNTg5NSwgMS45ODU4IiwgXAotICAgICAgICAgICIwLjEwODQ1MywgMC4xMjc0NzksIDAuMzAzNDA4LCAwLjYwMDg2MSwgMC44OTYyOTEsIDEuNTg5MTIsIDEuOTg2NzIiLCBcCi0gICAgICAgICAgIjAuMTA4OTMxLCAwLjEyODE2MywgMC4zMDM3OTQsIDAuNjAwNzM4LCAwLjg5NjQyNiwgMS41ODg4OCwgMS45ODQ5MyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODQxMTgsIDAuMDk0NjU1LCAwLjE4OTQxNCwgMC4zNDczNTYsIDAuNTA1MjA4LCAwLjg3Mzg1NSwgMS4wODQyNyIsIFwKLSAgICAgICAgICAiMC4wOTI1NzcsIDAuMTAzMTE1LCAwLjE5Nzg3NiwgMC4zNTU4MjQsIDAuNTEzOTU2LCAwLjg4MjQxNywgMS4wOTI3OSIsIFwKLSAgICAgICAgICAiMC4xMDA2NDQsIDAuMTExMTg3LCAwLjIwNTk1NSwgMC4zNjM4ODgsIDAuNTIyMDAxLCAwLjg5MDI5NywgMS4xMDA4MiIsIFwKLSAgICAgICAgICAiMC4xMDYwMTIsIDAuMTE2NTY0LCAwLjIxMTM0NiwgMC4zNjkzNSwgMC41MjcwNjUsIDAuODk1Nzc4LCAxLjEwNjcyIiwgXAotICAgICAgICAgICIwLjExMDEwNywgMC4xMjA2MzMsIDAuMjE1Mzg5LCAwLjM3MzQ4OSwgMC41MzE3MjQsIDAuODk5ODI1LCAxLjExMTM2IiwgXAotICAgICAgICAgICIwLjExNTM2MSwgMC4xMjU4NzgsIDAuMjIwNTM5LCAwLjM3ODQxNSwgMC41MzYzOSwgMC45MDQ5NjksIDEuMTE1NDUiLCBcCi0gICAgICAgICAgIjAuMTE5MTgxLCAwLjEyOTY5NiwgMC4yMjQyOTYsIDAuMzgyMTczLCAwLjU0MDM2MywgMC45MDkxMDIsIDEuMTE5MzQiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTE4MTMzLCAwLjE0MDAyMiwgMC4zMzg0NDgsIDAuNjcwMjY5LCAxLjAwMjksIDEuNzc4NjQsIDIuMjE5OTQiLCBcCi0gICAgICAgICAgIjAuMTE4MTExLCAwLjE0MDAwOSwgMC4zMzg0NDksIDAuNjcwMjcxLCAxLjAwMjYzLCAxLjc3ODc0LCAyLjIxOTc4IiwgXAotICAgICAgICAgICIwLjExODEzNywgMC4xMzk5ODcsIDAuMzM4MTk2LCAwLjY3MDI0NiwgMS4wMDI1NCwgMS43Nzk0MywgMi4yMTk4OSIsIFwKLSAgICAgICAgICAiMC4xMTgwNTMsIDAuMTM5OTE2LCAwLjMzODIxMywgMC42NzAwMjIsIDEuMDAzOTgsIDEuNzc2NzYsIDIuMjE5ODUiLCBcCi0gICAgICAgICAgIjAuMTE3OTczLCAwLjEzOTc0OCwgMC4zMzgzNTQsIDAuNjcwMzQsIDEuMDAyNTIsIDEuNzc4NjcsIDIuMjIwNCIsIFwKLSAgICAgICAgICAiMC4xMTc5NTgsIDAuMTM5NzMxLCAwLjMzODIyLCAwLjY3MDQxNywgMS4wMDIzNSwgMS43NzY5MywgMi4yMTk5NSIsIFwKLSAgICAgICAgICAiMC4xMTgxMjYsIDAuMTM5ODc3LCAwLjMzNzkwMSwgMC42NzA5OTYsIDEuMDAyMzksIDEuNzc3OTMsIDIuMjIwMzgiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDkwNzc0LCAwLjEwMDQ2NCwgMC4xODc0MTEsIDAuMzMyMTk1LCAwLjQ3NjgzOCwgMC44MTQ2NDUsIDEuMDA3NTQiLCBcCi0gICAgICAgICAgIjAuMDk4MjkzLCAwLjEwNzk4MiwgMC4xOTQ5MjksIDAuMzM5NzE1LCAwLjQ4NDQ2NCwgMC44MjIxNTEsIDEuMDE1MDUiLCBcCi0gICAgICAgICAgIjAuMTA0OTY3LCAwLjExNDY1NCwgMC4yMDE2MDIsIDAuMzQ2Mzg4LCAwLjQ5MTA5MywgMC44Mjg3NzMsIDEuMDIxODkiLCBcCi0gICAgICAgICAgIjAuMTA5NzI4LCAwLjExOTQyOCwgMC4yMDYzODgsIDAuMzUxMTk5LCAwLjQ5NTkxMywgMC44MzM1OTEsIDEuMDI2NTMiLCBcCi0gICAgICAgICAgIjAuMTEzNjEsIDAuMTIzMzIyLCAwLjIxMDMyNSwgMC4zNTUwOTksIDAuNDk5ODIsIDAuODM3NjI1LCAxLjAzMDUzIiwgXAotICAgICAgICAgICIwLjExODc0MywgMC4xMjg0MjIsIDAuMjE1NDg2LCAwLjM2MDI3OCwgMC41MDUwMjYsIDAuODQyNzQsIDEuMDM1NjIiLCBcCi0gICAgICAgICAgIjAuMTIyNjUzLCAwLjEzMjM0MiwgMC4yMTk0MjMsIDAuMzY0MjI3LCAwLjUwODk3NiwgMC44NDY2NjgsIDEuMDM5NjQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTA2NDI1LCAwLjEyNTg0NiwgMC4zMDMyOTgsIDAuNjAwNjI1LCAwLjg5Nzg1MSwgMS41ODk3OSwgMS45ODg3MyIsIFwKLSAgICAgICAgICAiMC4xMDYzODUsIDAuMTI1OTQ5LCAwLjMwMzI5MiwgMC42MDA2MTQsIDAuODk4MTkxLCAxLjU5MjQxLCAxLjk4ODcyIiwgXAotICAgICAgICAgICIwLjEwNjUyNCwgMC4xMjU5NzQsIDAuMzAzMzA0LCAwLjYwMDYyMywgMC44OTgwMDUsIDEuNTkyMDQsIDEuOTg1MjEiLCBcCi0gICAgICAgICAgIjAuMTA2NTM2LCAwLjEyNjA3LCAwLjMwMzMyNSwgMC41OTk0NzEsIDAuODk4MDIxLCAxLjU5MDYxLCAxLjk4ODY3IiwgXAotICAgICAgICAgICIwLjEwNjU0OSwgMC4xMjU5OTQsIDAuMzAzMDE2LCAwLjU5OTkyMSwgMC44OTc4OTEsIDEuNTg5MjQsIDEuOTg4OTIiLCBcCi0gICAgICAgICAgIjAuMTA2NTI1LCAwLjEyNTk1NSwgMC4zMDMxMDQsIDAuNTk5Nzc4LCAwLjg5NjczMSwgMS41OTE5OSwgMS45ODg1MSIsIFwKLSAgICAgICAgICAiMC4xMDY2OCwgMC4xMjYwMzIsIDAuMzAyODk5LCAwLjU5OTgzOSwgMC44OTY3NjgsIDEuNTkxNDUsIDEuOTg1ODkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDMyOTcsIDAuMDAzMjk3LCAwLjAwMzI5OCwgMC4wMDMyOTgsIDAuMDAzMjk4LCAwLjAwMzI5OCwgMC4wMDMyOTgiLCBcCi0gICAgICAgICAgIjAuMDAzMjk3LCAwLjAwMzI5OCwgMC4wMDMyOTksIDAuMDAzMywgMC4wMDMzLCAwLjAwMzI5OSwgMC4wMDMzIiwgXAotICAgICAgICAgICIwLjAwMzM2OSwgMC4wMDMzNjksIDAuMDAzMzcxLCAwLjAwMzM3MiwgMC4wMDMzNzMsIDAuMDAzMzczLCAwLjAwMzM3MyIsIFwKLSAgICAgICAgICAiMC4wMDM0NiwgMC4wMDM0NjEsIDAuMDAzNDYzLCAwLjAwMzQ2NCwgMC4wMDM0NjUsIDAuMDAzNDY1LCAwLjAwMzQ2NSIsIFwKLSAgICAgICAgICAiMC4wMDM1NzgsIDAuMDAzNTc5LCAwLjAwMzU3NCwgMC4wMDM1NzUsIDAuMDAzNTgyLCAwLjAwMzU4MiwgMC4wMDM1ODIiLCBcCi0gICAgICAgICAgIjAuMDAzNzc3LCAwLjAwMzc3OSwgMC4wMDM3NjksIDAuMDAzNzY5LCAwLjAwMzc3LCAwLjAwMzc4MSwgMC4wMDM3ODEiLCBcCi0gICAgICAgICAgIjAuMDAzOTUzLCAwLjAwMzk2NiwgMC4wMDM5NjYsIDAuMDAzOTY2LCAwLjAwMzk1NCwgMC4wMDM5NjcsIDAuMDAzOTY4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyMjI1LCAwLjAwMjIyNSwgMC4wMDIyMjYsIDAuMDAyMjI2LCAwLjAwMjIyNywgMC4wMDIyMjUsIDAuMDAyMjI2IiwgXAotICAgICAgICAgICIwLjAwMjIwNywgMC4wMDIyMDcsIDAuMDAyMjA4LCAwLjAwMjIwOSwgMC4wMDIyMDksIDAuMDAyMjA4LCAwLjAwMjIwOCIsIFwKLSAgICAgICAgICAiMC4wMDIyNjIsIDAuMDAyMjYyLCAwLjAwMjI2NCwgMC4wMDIyNjQsIDAuMDAyMjY1LCAwLjAwMjI2NCwgMC4wMDIyNjUiLCBcCi0gICAgICAgICAgIjAuMDAyMzQ2LCAwLjAwMjM0NiwgMC4wMDIzNDcsIDAuMDAyMzQ4LCAwLjAwMjM0OCwgMC4wMDIzNDgsIDAuMDAyMzQ4IiwgXAotICAgICAgICAgICIwLjAwMjQ0NSwgMC4wMDI0NDYsIDAuMDAyNDQ3LCAwLjAwMjQ0OCwgMC4wMDI0NDgsIDAuMDAyNDQ4LCAwLjAwMjQ0OCIsIFwKLSAgICAgICAgICAiMC4wMDI2MjksIDAuMDAyNjMsIDAuMDAyNjMsIDAuMDAyNjMxLCAwLjAwMjYzLCAwLjAwMjYzLCAwLjAwMjYyOSIsIFwKLSAgICAgICAgICAiMC4wMDI4MDMsIDAuMDAyODAzLCAwLjAwMjgwMywgMC4wMDI4MDMsIDAuMDAyODAyLCAwLjAwMjgwMiwgMC4wMDI4MDIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDMzNSwgMC4wMDMzNTIsIDAuMDAzMzU3LCAwLjAwMzM1OSwgMC4wMDMzNiwgMC4wMDMzNiwgMC4wMDMzNiIsIFwKLSAgICAgICAgICAiMC4wMDMzOSwgMC4wMDMzOTIsIDAuMDAzMzk4LCAwLjAwMzQsIDAuMDAzNDAxLCAwLjAwMzQwNCwgMC4wMDM0MDIiLCBcCi0gICAgICAgICAgIjAuMDAzNTEyLCAwLjAwMzUxNCwgMC4wMDM1MjEsIDAuMDAzNTI0LCAwLjAwMzUyNSwgMC4wMDM1MjYsIDAuMDAzNTI3IiwgXAotICAgICAgICAgICIwLjAwMzY0NiwgMC4wMDM2NDgsIDAuMDAzNjU2LCAwLjAwMzY1OSwgMC4wMDM2NiwgMC4wMDM2NjIsIDAuMDAzNjYxIiwgXAotICAgICAgICAgICIwLjAwMzc5MiwgMC4wMDM3OTQsIDAuMDAzODAxLCAwLjAwMzgwMywgMC4wMDM4MDUsIDAuMDAzODA2LCAwLjAwMzgwNiIsIFwKLSAgICAgICAgICAiMC4wMDQwMzcsIDAuMDA0MDM5LCAwLjAwNDA0NiwgMC4wMDQwNSwgMC4wMDQwNTIsIDAuMDA0MDUzLCAwLjAwNDA1MyIsIFwKLSAgICAgICAgICAiMC4wMDQyNzgsIDAuMDA0Mjc5LCAwLjAwNDI4NSwgMC4wMDQyODksIDAuMDA0MjkxLCAwLjAwNDI5MiwgMC4wMDQyOTMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDE5MTIsIDAuMDAxOTEzLCAwLjAwMTkxNiwgMC4wMDE5MTcsIDAuMDAxOTE3LCAwLjAwMTkxOCwgMC4wMDE5MTgiLCBcCi0gICAgICAgICAgIjAuMDAxOTE0LCAwLjAwMTkxNiwgMC4wMDE5MTksIDAuMDAxOTIxLCAwLjAwMTkyMiwgMC4wMDE5MjIsIDAuMDAxOTIyIiwgXAotICAgICAgICAgICIwLjAwMiwgMC4wMDIsIDAuMDAyMDA0LCAwLjAwMjAwNSwgMC4wMDIwMDYsIDAuMDAyMDA2LCAwLjAwMjAwNiIsIFwKLSAgICAgICAgICAiMC4wMDIwOTcsIDAuMDAyMDk4LCAwLjAwMjEwMSwgMC4wMDIxMDIsIDAuMDAyMTAyLCAwLjAwMjEwMywgMC4wMDIxMDMiLCBcCi0gICAgICAgICAgIjAuMDAyMjE2LCAwLjAwMjIxNiwgMC4wMDIyMTgsIDAuMDAyMjE5LCAwLjAwMjIxOSwgMC4wMDIyMTksIDAuMDAyMjIiLCBcCi0gICAgICAgICAgIjAuMDAyMzk5LCAwLjAwMjQwMSwgMC4wMDI0MDEsIDAuMDAyNDAyLCAwLjAwMjQwMSwgMC4wMDI0MDEsIDAuMDAyNDAyIiwgXAotICAgICAgICAgICIwLjAwMjYwOCwgMC4wMDI2MDgsIDAuMDAyNjA4LCAwLjAwMjYwOSwgMC4wMDI2MDcsIDAuMDAyNjA4LCAwLjAwMjYwOCIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogQU5EMlg0ICoKLSAqIC0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoQU5EMlg0KSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuNTMzMzI2OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA5NzI0Mjc7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwOTcyNDI3OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDk3MTAyNDsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA1MjQsIDAuMDAwNTI0LCAwLjAwMDUyNCwgMC4wMDA1MjQsIDAuMDAwNTI0LCAwLjAwMDUyNCwgMC4wMDA1MjMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA1NTMsIDAuMDAwNTM1LCAwLjAwMDUzLCAwLjAwMDUyNiwgMC4wMDA1MjYsIDAuMDAwNTI2LCAwLjAwMDUyNyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwOTc4NTc0OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDk3ODQzNTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA5Nzg1NzQ7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzI4LCAwLjAwMDMyOCwgMC4wMDAzMjcsIDAuMDAwMzI3LCAwLjAwMDMyNywgMC4wMDAzMjgsIDAuMDAwMzI4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNTk1LCAwLjAwMDU5NiwgMC4wMDA1OTYsIDAuMDAwNTk2LCAwLjAwMDU5NiwgMC4wMDA1OTYsIDAuMDAwNTk2Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDEuMzQ5NDQ7Ci0gICAgZnVuY3Rpb24gOiAiKEEgQikiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQ2MjI5LCAwLjEwNDYwNiwgMC4xNTk1MjUsIDAuMTk4NzA5LCAwLjI2MTMzNSwgMC4zMTYyMTQsIDAuMzk0NDk1IiwgXAotICAgICAgICAgICIwLjA1MjYyOSwgMC4xMTA5NzgsIDAuMTY1ODQyLCAwLjIwNTAwOCwgMC4yNjc2MywgMC4zMjI0ODQsIDAuNDAwNzc5IiwgXAotICAgICAgICAgICIwLjA2MDM3MywgMC4xMTg2NzIsIDAuMTczNTIsIDAuMjEyNjcxLCAwLjI3NTMwOSwgMC4zMzAxNTQsIDAuNDA4NTI3IiwgXAotICAgICAgICAgICIwLjA2NzEzLCAwLjEyNTY2LCAwLjE4MDUwNSwgMC4yMTk2NzQsIDAuMjgyMjY3LCAwLjMzNzE3MywgMC40MTU0MTYiLCBcCi0gICAgICAgICAgIjAuMDcyODM4LCAwLjEzMTg1NywgMC4xODY3MzksIDAuMjI1ODgzLCAwLjI4ODU3MywgMC4zNDMzOTIsIDAuNDIxNjEiLCBcCi0gICAgICAgICAgIjAuMDgwODU3LCAwLjE0MDQ1NSwgMC4xOTUyODcsIDAuMjM0NDE5LCAwLjI5NzAxOCwgMC4zNTE4NjMsIDAuNDMwMTgxIiwgXAotICAgICAgICAgICIwLjA4Njg3LCAwLjE0Njg0NywgMC4yMDE3ODIsIDAuMjQwOTA1LCAwLjMwMzUxMiwgMC4zNTgzNDcsIDAuNDM2NTcyIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDI5ODk1LCAwLjE0MDYzNCwgMC4yNTQ5NywgMC4zMzc0MDMsIDAuNDY4OTAzLCAwLjU4NDE4NiwgMC43NDk5NzMiLCBcCi0gICAgICAgICAgIjAuMDI5NzcxLCAwLjE0MDYxMiwgMC4yNTUwMDYsIDAuMzM2Njg4LCAwLjQ2ODk0LCAwLjU4NDI1MSwgMC43NTAwMDYiLCBcCi0gICAgICAgICAgIjAuMDMwMzI4LCAwLjE0MDc0LCAwLjI1NDgzOCwgMC4zMzcyODEsIDAuNDY4OTcxLCAwLjU4NDI2LCAwLjc0OTUyNiIsIFwKLSAgICAgICAgICAiMC4wMzEyNjcsIDAuMTQxMDYxLCAwLjI1NTEzMSwgMC4zMzc1MDEsIDAuNDY5Mzk4LCAwLjU4NDA4MSwgMC43NDk4NzYiLCBcCi0gICAgICAgICAgIjAuMDMyMTQ1LCAwLjE0MTM5NywgMC4yNTUwNjksIDAuMzM3NDM0LCAwLjQ2ODc0OCwgMC41ODQ1MDgsIDAuNzQ5Njk4IiwgXAotICAgICAgICAgICIwLjAzMzgxMSwgMC4xNDIxOTgsIDAuMjU1NDY5LCAwLjMzNzc0NiwgMC40NjkwNzgsIDAuNTg1MzgxLCAwLjc0OTM3NSIsIFwKLSAgICAgICAgICAiMC4wMzUwODUsIDAuMTQyODA2LCAwLjI1NTg0NSwgMC4zMzc0NDUsIDAuNDY5MDA3LCAwLjU4NDQ1MiwgMC43NTA3OTciKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzQ0MzIsIDAuMDg5NTI3LCAwLjE0MzM4MSwgMC4xODE4MzgsIDAuMjQzMzUzLCAwLjI5NzE2MywgMC4zNzQwNTkiLCBcCi0gICAgICAgICAgIjAuMDQyNjQ2LCAwLjA5Nzc0MSwgMC4xNTE1OTksIDAuMTkwMDU2LCAwLjI1MTU3MywgMC4zMDUzNzEsIDAuMzgyMjQyIiwgXAotICAgICAgICAgICIwLjA1MTk2NCwgMC4xMDcwODgsIDAuMTYwOTQ3LCAwLjE5OTQwNCwgMC4yNjA5MTcsIDAuMzE0NzEyLCAwLjM5MTU3NSIsIFwKLSAgICAgICAgICAiMC4wNTkwNTgsIDAuMTE0NDQ0LCAwLjE2ODMwNywgMC4yMDY3NDEsIDAuMjY4MjQyLCAwLjMyMjA1NywgMC4zOTg5MTQiLCBcCi0gICAgICAgICAgIjAuMDY0NjQ0LCAwLjEyMDIzNiwgMC4xNzQwMzIsIDAuMjEyNDY1LCAwLjI3Mzk3LCAwLjMyNzgsIDAuNDA0NjQiLCBcCi0gICAgICAgICAgIjAuMDcxOTU1LCAwLjEyNzg2NywgMC4xODE3MjEsIDAuMjIwMTI5LCAwLjI4MTYwNCwgMC4zMzU0MDYsIDAuNDEyMjY3IiwgXAotICAgICAgICAgICIwLjA3NzA4NSwgMC4xMzM0MDYsIDAuMTg3MTk2LCAwLjIyNTU4NywgMC4yODcwNTQsIDAuMzQwODQ4LCAwLjQxNzY5MSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyNDYzNiwgMC4xMzM1MTksIDAuMjQ1MDU1LCAwLjMyNDU2NywgMC40NTIyNzIsIDAuNTY0MTg5LCAwLjcyNTIxNCIsIFwKLSAgICAgICAgICAiMC4wMjQ2NDYsIDAuMTMzNTIxLCAwLjI0NTAyNywgMC4zMjQ1OTgsIDAuNDUyOTg5LCAwLjU2NDk1MSwgMC43MjQyMTciLCBcCi0gICAgICAgICAgIjAuMDI1NzU4LCAwLjEzMzUxLCAwLjI0NTA5LCAwLjMyNTAwOCwgMC40NTMwMTIsIDAuNTY0OTcsIDAuNzI0OTI3IiwgXAotICAgICAgICAgICIwLjAyNzA1NiwgMC4xMzM4ODYsIDAuMjQ1MTg5LCAwLjMyNTAxMSwgMC40NTI5NzQsIDAuNTY1MDA3LCAwLjcyNTAwOSIsIFwKLSAgICAgICAgICAiMC4wMjg0MDEsIDAuMTM0MjYxLCAwLjI0NTAzMiwgMC4zMjUwNTgsIDAuNDUyOTEsIDAuNTY0OTMsIDAuNzI0Mzg0IiwgXAotICAgICAgICAgICIwLjAzMDQ5MiwgMC4xMzQ3MzIsIDAuMjQ1MjAyLCAwLjMyNDc4OCwgMC40NTI2MjksIDAuNTY0NDc3LCAwLjcyNDAxOCIsIFwKLSAgICAgICAgICAiMC4wMzE5NjEsIDAuMTM1NDI2LCAwLjI0NTQ5OCwgMC4zMjUwOTgsIDAuNDUyNzQ2LCAwLjU2NDU2MiwgMC43MjQ3MTIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDQ4MTMsIDAuMTAzMTY4LCAwLjE1ODAzOSwgMC4xOTcxOTMsIDAuMjU5ODA0LCAwLjMxNDcxNiwgMC4zOTI5MTciLCBcCi0gICAgICAgICAgIjAuMDUyNDExLCAwLjExMDc1NywgMC4xNjU2MjUsIDAuMjA0NzgxLCAwLjI2NzQxOCwgMC4zMjIyNzEsIDAuNDAwNTcyIiwgXAotICAgICAgICAgICIwLjA2MjA5MiwgMC4xMjAzODcsIDAuMTc1MjQyLCAwLjIxNDQwNSwgMC4yNzcwMzYsIDAuMzMxODgxLCAwLjQxMDI0OSIsIFwKLSAgICAgICAgICAiMC4wNzA0LCAwLjEyODgyOCwgMC4xODM2NjgsIDAuMjIyODMxLCAwLjI4NTQzOCwgMC4zNDAzNTIsIDAuNDE4NTg0IiwgXAotICAgICAgICAgICIwLjA3NzU5NiwgMC4xMzYzMjgsIDAuMTkxMTY0LCAwLjIzMDI5NiwgMC4yOTI5MjYsIDAuMzQ3ODksIDAuNDI2MDEzIiwgXAotICAgICAgICAgICIwLjA4NzA0NSwgMC4xNDY3MzEsIDAuMjAxNzY0LCAwLjI0MDk3MywgMC4zMDM2NDMsIDAuMzU4NDU0LCAwLjQzNjc1OCIsIFwKLSAgICAgICAgICAiMC4wOTQxNjQsIDAuMTU0MzI1LCAwLjIwOTM1NiwgMC4yNDg2NTQsIDAuMzEwODgxLCAwLjM2NTU5NCwgMC40NDM4MjMiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjk5MzksIDAuMTQwNTgsIDAuMjU0NzUxLCAwLjMzNzM5NCwgMC40NjkzNTksIDAuNTg0MDcsIDAuNzUwMjE2IiwgXAotICAgICAgICAgICIwLjAyOTc3NywgMC4xNDA2MDQsIDAuMjU1MDA0LCAwLjMzNzM2MywgMC40Njg5NDQsIDAuNTg0MjUzLCAwLjc1MDAzNCIsIFwKLSAgICAgICAgICAiMC4wMzA1MDMsIDAuMTQwNzc1LCAwLjI1NDk0LCAwLjMzNjgyNywgMC40Njg5OTUsIDAuNTg0MjYsIDAuNzQ5NTA2IiwgXAotICAgICAgICAgICIwLjAzMTgwOSwgMC4xNDExNTYsIDAuMjU0OTY1LCAwLjMzNzUwMSwgMC40Njk0NSwgMC41ODQwNzYsIDAuNzQ5ODQ0IiwgXAotICAgICAgICAgICIwLjAzMzE5OSwgMC4xNDE2NjMsIDAuMjU1MiwgMC4zMzc0NTYsIDAuNDY5NTY0LCAwLjU4NDE1OSwgMC43NDk3MTgiLCBcCi0gICAgICAgICAgIjAuMDM1NDg0LCAwLjE0MjU2NCwgMC4yNTU4MSwgMC4zMzc3NjUsIDAuNDY4OTkxLCAwLjU4NTM4NywgMC43NDk0NzkiLCBcCi0gICAgICAgICAgIjAuMDM3MDQzLCAwLjE0MzI4MiwgMC4yNTU5ODEsIDAuMzM3NzAzLCAwLjQ2OTg5NywgMC41ODUzNjcsIDAuNzUwNzM5Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDMyOTY3LCAwLjA4Nzk5NiwgMC4xNDE4NDksIDAuMTgwMzIsIDAuMjQxODkzLCAwLjI5NTY2NywgMC4zNzI3NjYiLCBcCi0gICAgICAgICAgIjAuMDQxMTEzLCAwLjA5NjEwNCwgMC4xNDk5NTMsIDAuMTg4NDA2LCAwLjI1MDAzMSwgMC4zMDM3NjIsIDAuMzgwNjY0IiwgXAotICAgICAgICAgICIwLjA0OTk4MSwgMC4xMDUwOTcsIDAuMTU4OTMyLCAwLjE5NzQyMywgMC4yNTg5MjEsIDAuMzEyNzU2LCAwLjM4OTczMSIsIFwKLSAgICAgICAgICAiMC4wNTY2NzgsIDAuMTExOTcsIDAuMTY1NzksIDAuMjA0MjQxLCAwLjI2NTgzNiwgMC4zMTk2OTgsIDAuMzk2NTkxIiwgXAotICAgICAgICAgICIwLjA2MTg5NiwgMC4xMTc1NDUsIDAuMTcxMTUyLCAwLjIwOTU3MSwgMC4yNzEwNTcsIDAuMzI1MDE1LCAwLjQwMjAyMiIsIFwKLSAgICAgICAgICAiMC4wNjg1NDEsIDAuMTI0NTk3LCAwLjE3ODE3MywgMC4yMTY0MzgsIDAuMjc4MDQsIDAuMzMxOTQ0LCAwLjQwODY1MSIsIFwKLSAgICAgICAgICAiMC4wNzMyOTYsIDAuMTI5NzIsIDAuMTgzMjU2LCAwLjIyMTc2LCAwLjI4MzA5NiwgMC4zMzcwMSwgMC40MTM4NjQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjQzMTksIDAuMTMzMTgsIDAuMjQ0OTcxLCAwLjMyNDMwOCwgMC40NTIyNSwgMC41NjM5NDIsIDAuNzIzNzMiLCBcCi0gICAgICAgICAgIjAuMDI0NDE3LCAwLjEzMzI1MywgMC4yNDQ5MjgsIDAuMzI0OTI1LCAwLjQ1MjE4LCAwLjU2MzkyNCwgMC43MjQ5NzgiLCBcCi0gICAgICAgICAgIjAuMDI1NjUxLCAwLjEzMzU1LCAwLjI0NDk4NywgMC4zMjQzOTMsIDAuNDUyNDU5LCAwLjU2MzgxOCwgMC43MjQyOTEiLCBcCi0gICAgICAgICAgIjAuMDI3MDQ3LCAwLjEzMzkxMywgMC4yNDUwNywgMC4zMjQ5OTEsIDAuNDUyMTY3LCAwLjU2NDA0NSwgMC43MjQzMTkiLCBcCi0gICAgICAgICAgIjAuMDI4NDk5LCAwLjEzNDI0OSwgMC4yNDUyMzcsIDAuMzI1MDU5LCAwLjQ1Mjg5LCAwLjU2MzkzMiwgMC43MjM4MzEiLCBcCi0gICAgICAgICAgIjAuMDMwMjcsIDAuMTM0NzQ4LCAwLjI0NTQ4OCwgMC4zMjUxMzQsIDAuNDUzMDI1LCAwLjU2NDEzNiwgMC43MjQyNjgiLCBcCi0gICAgICAgICAgIjAuMDMyMDQxLCAwLjEzNTQ0OSwgMC4yNDUzODgsIDAuMzI0OTc5LCAwLjQ1MzE3LCAwLjU2NTE4NiwgMC43MjQzOTUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNTUxNywgMC4wMDU1NjQsIDAuMDA1NTczLCAwLjAwNTU3NSwgMC4wMDU1NzcsIDAuMDA1NTc4LCAwLjAwNTU3OSIsIFwKLSAgICAgICAgICAiMC4wMDUzOTgsIDAuMDA1NDg2LCAwLjAwNTUwMywgMC4wMDU1MDgsIDAuMDA1NTEyLCAwLjAwNTUxNywgMC4wMDU1MTgiLCBcCi0gICAgICAgICAgIjAuMDA1NTI3LCAwLjAwNTUyLCAwLjAwNTUzMSwgMC4wMDU1MzUsIDAuMDA1NTM3LCAwLjAwNTU0LCAwLjAwNTU0IiwgXAotICAgICAgICAgICIwLjAwNTY1NCwgMC4wMDU1ODcsIDAuMDA1NTk0LCAwLjAwNTU5NiwgMC4wMDU2MDEsIDAuMDA1NiwgMC4wMDU2MDEiLCBcCi0gICAgICAgICAgIjAuMDA1Njg4LCAwLjAwNTY1MiwgMC4wMDU2NjIsIDAuMDA1NjY4LCAwLjAwNTY3MywgMC4wMDU2NzUsIDAuMDA1Njc3IiwgXAotICAgICAgICAgICIwLjAwNTkzMywgMC4wMDU4MiwgMC4wMDU4MzQsIDAuMDA1ODQxLCAwLjAwNTg0LCAwLjAwNTg0MywgMC4wMDU4NDYiLCBcCi0gICAgICAgICAgIjAuMDA2MjgxLCAwLjAwNjAzNywgMC4wMDYwMjMsIDAuMDA2MDI4LCAwLjAwNjAyNSwgMC4wMDYwMjQsIDAuMDA2MDI3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDc2MzUsIDAuMDA3ODEsIDAuMDA3ODM0LCAwLjAwNzg0MiwgMC4wMDc4NDgsIDAuMDA3ODUyLCAwLjAwNzg1NSIsIFwKLSAgICAgICAgICAiMC4wMDc1ODcsIDAuMDA3NzgyLCAwLjAwNzgxNywgMC4wMDc4MjksIDAuMDA3ODM5LCAwLjAwNzg0NCwgMC4wMDc4NDkiLCBcCi0gICAgICAgICAgIjAuMDA3Njg5LCAwLjAwNzgyMSwgMC4wMDc4NTksIDAuMDA3ODcyLCAwLjAwNzg4NCwgMC4wMDc4OSwgMC4wMDc4OTUiLCBcCi0gICAgICAgICAgIjAuMDA3ODM4LCAwLjAwNzkwOSwgMC4wMDc5NDMsIDAuMDA3OTU5LCAwLjAwNzk3MSwgMC4wMDc5NzgsIDAuMDA3OTg0IiwgXAotICAgICAgICAgICIwLjAwODA2MywgMC4wMDgwNCwgMC4wMDgwNjksIDAuMDA4MDgsIDAuMDA4MDkxLCAwLjAwODA5NywgMC4wMDgxMDIiLCBcCi0gICAgICAgICAgIjAuMDA4NDU4LCAwLjAwODI5MSwgMC4wMDgzMDEsIDAuMDA4MzA1LCAwLjAwODMxMSwgMC4wMDgzMTYsIDAuMDA4MzIiLCBcCi0gICAgICAgICAgIjAuMDA4NzU3LCAwLjAwODQ5OCwgMC4wMDg0OTcsIDAuMDA4NDk5LCAwLjAwODUwNSwgMC4wMDg1MDgsIDAuMDA4NTExIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDU0OTIsIDAuMDA1NTY2LCAwLjAwNTU4MSwgMC4wMDU1ODUsIDAuMDA1NjA1LCAwLjAwNTU5MiwgMC4wMDU1OCIsIFwKLSAgICAgICAgICAiMC4wMDU0MTQsIDAuMDA1NTEsIDAuMDA1NTI5LCAwLjAwNTU0MSwgMC4wMDU1NDgsIDAuMDA1NTUzLCAwLjAwNTU1NSIsIFwKLSAgICAgICAgICAiMC4wMDU1OTYsIDAuMDA1NTc1LCAwLjAwNTU5MiwgMC4wMDU1OTksIDAuMDA1NjA0LCAwLjAwNTYwNywgMC4wMDU2MTEiLCBcCi0gICAgICAgICAgIjAuMDA1Nzc2LCAwLjAwNTY5NSwgMC4wMDU3MDYsIDAuMDA1NzExLCAwLjAwNTcyNCwgMC4wMDU3MjMsIDAuMDA1NzI2IiwgXAotICAgICAgICAgICIwLjAwNTk1NiwgMC4wMDU3OTIsIDAuMDA1ODAxLCAwLjAwNTgwNiwgMC4wMDU4MTIsIDAuMDA1ODE2LCAwLjAwNTgxOSIsIFwKLSAgICAgICAgICAiMC4wMDYyMiwgMC4wMDYwMzgsIDAuMDA2MDQsIDAuMDA2MDQyLCAwLjAwNjA0NCwgMC4wMDYwNDIsIDAuMDA2MDQ2IiwgXAotICAgICAgICAgICIwLjAwNjUzOCwgMC4wMDYyNzIsIDAuMDA2MjYsIDAuMDA2MjU4LCAwLjAwNjI1OCwgMC4wMDYyNSwgMC4wMDYyNTYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNzIxNSwgMC4wMDc0MzgsIDAuMDA3NDY4LCAwLjAwNzQ3NywgMC4wMDc0ODYsIDAuMDA3NDksIDAuMDA3NDk0IiwgXAotICAgICAgICAgICIwLjAwNzE1NywgMC4wMDczOSwgMC4wMDc0MywgMC4wMDc0NDMsIDAuMDA3NDU0LCAwLjAwNzQ2LCAwLjAwNzQ2NiIsIFwKLSAgICAgICAgICAiMC4wMDcyNDYsIDAuMDA3NDIzLCAwLjAwNzQ2OSwgMC4wMDc0ODQsIDAuMDA3NDk4LCAwLjAwNzUwNSwgMC4wMDc1MTIiLCBcCi0gICAgICAgICAgIjAuMDA3Mzk4LCAwLjAwNzQ5NCwgMC4wMDc1NDIsIDAuMDA3NTU5LCAwLjAwNzU3NSwgMC4wMDc1ODMsIDAuMDA3NTkxIiwgXAotICAgICAgICAgICIwLjAwNzY3MywgMC4wMDc2MywgMC4wMDc2NjQsIDAuMDA3Njc4LCAwLjAwNzY5MiwgMC4wMDc2OTksIDAuMDA3NjkyIiwgXAotICAgICAgICAgICIwLjAwNzc5LCAwLjAwNzgwMywgMC4wMDc4NTcsIDAuMDA3OTA0LCAwLjAwNzg4MywgMC4wMDc4OTEsIDAuMDA3OTIxIiwgXAotICAgICAgICAgICIwLjAwODAyOCwgMC4wMDgwMTYsIDAuMDA4MDY0LCAwLjAwODA3MiwgMC4wMDgwODYsIDAuMDA4MDk3LCAwLjAwODEwNiIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogQU5EMlg2ICoKLSAqIC0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoQU5EMlg2KSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuODY4MzYxOwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE4NDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE4NDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE4Mzc4OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTA0OCwgMC4wMDEwNDgsIDAuMDAxMDQ3LCAwLjAwMTA0NywgMC4wMDEwNDcsIDAuMDAxMDQ3LCAwLjAwMTA0NyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTEwNSwgMC4wMDEwNywgMC4wMDEwNTksIDAuMDAxMDUzLCAwLjAwMTA1MiwgMC4wMDEwNTIsIDAuMDAxMDUxIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE2OTk0MjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE2OTk7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNjk5NDI7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNjI5LCAwLjAwMDYyOSwgMC4wMDA2MjksIDAuMDAwNjI4LCAwLjAwMDYyOCwgMC4wMDA2MjgsIDAuMDAwNjI5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxMTkxLCAwLjAwMTE5MSwgMC4wMDExOTIsIDAuMDAxMTkyLCAwLjAwMTE5MiwgMC4wMDExOTIsIDAuMDAxMTkyIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDIuMDMwMTE7Ci0gICAgZnVuY3Rpb24gOiAiKEEgQikiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM2MjQyLCAwLjA3NTkwNiwgMC4xMTI2NTksIDAuMTM4ODU1LCAwLjE4MDczNiwgMC4yMTczNjgsIDAuMjY5NjM3IiwgXAotICAgICAgICAgICIwLjA0MjY0MSwgMC4wODIyMTMsIDAuMTE4OTU5LCAwLjE0NTE1LCAwLjE4NzAzMSwgMC4yMjM3MjIsIDAuMjc2MDM2IiwgXAotICAgICAgICAgICIwLjA0OTgyLCAwLjA4OTUyOSwgMC4xMjYyNjksIDAuMTUyNDU1LCAwLjE5NDM0LCAwLjIzMTAxMSwgMC4yODMzNDYiLCBcCi0gICAgICAgICAgIjAuMDU1NzU1LCAwLjA5NTg0MSwgMC4xMzI2MTUsIDAuMTU4Nzg4LCAwLjIwMDY5NSwgMC4yMzczMDgsIDAuMjg5NzEyIiwgXAotICAgICAgICAgICIwLjA2MDczLCAwLjEwMTMwNCwgMC4xMzgxMTQsIDAuMTY0MjY3LCAwLjIwNjE0MywgMC4yNDI4LCAwLjI5NTE2NyIsIFwKLSAgICAgICAgICAiMC4wNjc2MjksIDAuMTA4NzQ4LCAwLjE0NTYxLCAwLjE3MTczOSwgMC4yMTM2MDYsIDAuMjUwMjM2LCAwLjMwMjU2IiwgXAotICAgICAgICAgICIwLjA3Mjg5MiwgMC4xMTQ0MjIsIDAuMTUxMjM1LCAwLjE3NzQ1LCAwLjIxOTI5NSwgMC4yNTU5NDMsIDAuMzA4MjMxIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDIyMTksIDAuMDk2MDY5LCAwLjE3MjE5NiwgMC4yMjcxNTksIDAuMzE0NzM1LCAwLjM5Mjc0LCAwLjUwMjUwNSIsIFwKLSAgICAgICAgICAiMC4wMjIxNjQsIDAuMDk2MTIxLCAwLjE3MjI2MiwgMC4yMjcyMDcsIDAuMzE1MzU1LCAwLjM5MTg4NCwgMC41MDMzMjkiLCBcCi0gICAgICAgICAgIjAuMDIzMDE2LCAwLjA5NjM2NCwgMC4xNzIyNDEsIDAuMjI3MDgxLCAwLjMxNTM4NiwgMC4zOTIwMTIsIDAuNTAzMjgxIiwgXAotICAgICAgICAgICIwLjAyMzkyNywgMC4wOTY4OTgsIDAuMTcyNTEyLCAwLjIyNzMwNCwgMC4zMTU1MzQsIDAuMzkyNzMxLCAwLjUwMjM3MiIsIFwKLSAgICAgICAgICAiMC4wMjQ4NTgsIDAuMDk3Mjg5LCAwLjE3MjgwMiwgMC4yMjc1MTIsIDAuMzE1MjYzLCAwLjM5MjE3NSwgMC41MDIzODUiLCBcCi0gICAgICAgICAgIjAuMDI2MzgyLCAwLjA5ODIzNSwgMC4xNzMyMDcsIDAuMjI3NzUsIDAuMzE1NzUxLCAwLjM5Mjg1NCwgMC41MDMzMTEiLCBcCi0gICAgICAgICAgIjAuMDI3NjA2LCAwLjA5OTA0NiwgMC4xNzM2MTYsIDAuMjI3ODMyLCAwLjMxNTY2NSwgMC4zOTI4NzYsIDAuNTAyODY5Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDI3MzU1LCAwLjA2NTk3NywgMC4xMDM1NTUsIDAuMTMwMzY2LCAwLjE3MzI4NSwgMC4yMTA3OSwgMC4yNjQzNzYiLCBcCi0gICAgICAgICAgIjAuMDM1NTg0LCAwLjA3NDIwMSwgMC4xMTE3OSwgMC4xMzg2MiwgMC4xODE1MTMsIDAuMjE5MDI1LCAwLjI3MjYyMiIsIFwKLSAgICAgICAgICAiMC4wNDM3MzQsIDAuMDgyNTMsIDAuMTIwMTEyLCAwLjE0NjkyNiwgMC4xODk4MjgsIDAuMjI3MzU1LCAwLjI4MDkzOSIsIFwKLSAgICAgICAgICAiMC4wNDk2OSwgMC4wODg2OTcsIDAuMTI2MjQyLCAwLjE1MzA1NSwgMC4xOTU5MzgsIDAuMjMzNDY1LCAwLjI4NzA1NSIsIFwKLSAgICAgICAgICAiMC4wNTQyNjksIDAuMDkzNTU1LCAwLjEzMTEsIDAuMTU3OTEsIDAuMjAwNzg3LCAwLjIzODMxNCwgMC4yOTE4OTUiLCBcCi0gICAgICAgICAgIjAuMDYwMzkxLCAwLjEwMDEzNiwgMC4xMzc1NCwgMC4xNjQzMjgsIDAuMjA3MTkxLCAwLjI0NDcxNywgMC4yOTg1MSIsIFwKLSAgICAgICAgICAiMC4wNjQ2MTksIDAuMTA0Njg5LCAwLjE0MjI2NCwgMC4xNjkxMDksIDAuMjEyMDAxLCAwLjI0OTUwMiwgMC4zMDMwNzIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTg2MTEsIDAuMDkzODUyLCAwLjE3MDkwNywgMC4yMjYxMDgsIDAuMzEzOTE1LCAwLjM5MjA1NywgMC41MDI2NTciLCBcCi0gICAgICAgICAgIjAuMDE4NzU4LCAwLjA5Mzc4NywgMC4xNzA4OTIsIDAuMjI2MTU5LCAwLjMxNDYxMywgMC4zOTIwMDIsIDAuNTAyNjA3IiwgXAotICAgICAgICAgICIwLjAyMDA1NSwgMC4wOTQxMzgsIDAuMTcxMDA1LCAwLjIyNjE1MywgMC4zMTQwNywgMC4zOTIwNDksIDAuNTAyNjQiLCBcCi0gICAgICAgICAgIjAuMDIxMzM4LCAwLjA5NDQ3MSwgMC4xNzExMDQsIDAuMjI2MjA3LCAwLjMxNDYwMiwgMC4zOTE1NTksIDAuNTAyMDM0IiwgXAotICAgICAgICAgICIwLjAyMjY1LCAwLjA5NDc5MiwgMC4xNzExMywgMC4yMjYxOTYsIDAuMzE0MTQzLCAwLjM5MTg1OSwgMC41MDE4MTkiLCBcCi0gICAgICAgICAgIjAuMDI0MTUxLCAwLjA5NTU5NywgMC4xNzEzNDYsIDAuMjI2MjUsIDAuMzE0MzMxLCAwLjM5MTU5OCwgMC41MDIyIiwgXAotICAgICAgICAgICIwLjAyNTQ0NCwgMC4wOTYwNTcsIDAuMTcxNDY4LCAwLjIyNjMwMSwgMC4zMTQzMTgsIDAuMzkxNjgzLCAwLjUwMjAzMyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzNDgyNCwgMC4wNzQ0OTYsIDAuMTExMjcxLCAwLjEzNzQ3OCwgMC4xNzkzODEsIDAuMjE2MDUyLCAwLjI2ODQxIiwgXAotICAgICAgICAgICIwLjA0MjQ0NywgMC4wODIwNDUsIDAuMTE4Nzg2LCAwLjE0NDk3OSwgMC4xODY4NjEsIDAuMjIzNTQsIDAuMjc1ODciLCBcCi0gICAgICAgICAgIjAuMDUxNTczLCAwLjA5MTM2NywgMC4xMjgxMjYsIDAuMTU0MzI1LCAwLjE5NjI0MiwgMC4yMzI4ODEsIDAuMjg1MjUzIiwgXAotICAgICAgICAgICIwLjA1ODgwOCwgMC4wOTg5NTIsIDAuMTM1Njk1LCAwLjE2MTg4OSwgMC4yMDM3NjQsIDAuMjQwMzgxLCAwLjI5Mjc5OCIsIFwKLSAgICAgICAgICAiMC4wNjQ3NTEsIDAuMTA1MzU4LCAwLjE0MjIzNiwgMC4xNjg0NTgsIDAuMjEwMzQzLCAwLjI0NzAyOCwgMC4yOTkzMDMiLCBcCi0gICAgICAgICAgIjAuMDcyNzYsIDAuMTEzOTg0LCAwLjE1MDkyNSwgMC4xNzcxNjQsIDAuMjE4NzQ1LCAwLjI1NTM1OSwgMC4zMDc2NjYiLCBcCi0gICAgICAgICAgIjAuMDc4ODEyLCAwLjEyMDQ4NCwgMC4xNTc1MTEsIDAuMTgzNTU3LCAwLjIyNTM0NywgMC4yNjE5MzgsIDAuMzE0MjM0Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDIyMTYsIDAuMDk2MTIzLCAwLjE3MjEzOCwgMC4yMjcyMTksIDAuMzE1MzQyLCAwLjM5Mjc2MiwgMC41MDMzMzQiLCBcCi0gICAgICAgICAgIjAuMDIyMTk1LCAwLjA5NjExMiwgMC4xNzIyNjMsIDAuMjI2ODIyLCAwLjMxNTM1NCwgMC4zOTIxNDMsIDAuNTAzMzMiLCBcCi0gICAgICAgICAgIjAuMDIzMTkyLCAwLjA5NjQyOSwgMC4xNzIyMjYsIDAuMjI3MzAzLCAwLjMxNDkyNSwgMC4zOTIwODIsIDAuNTAyMzMzIiwgXAotICAgICAgICAgICIwLjAyNDU3NCwgMC4wOTcwMDQsIDAuMTcyNTA4LCAwLjIyNzA0MywgMC4zMTUwODMsIDAuMzkyNjk5LCAwLjUwMjMxNCIsIFwKLSAgICAgICAgICAiMC4wMjYwMTksIDAuMDk3NjQ2LCAwLjE3MjkzMywgMC4yMjc2MjUsIDAuMzE1NzAxLCAwLjM5MjI0NCwgMC41MDMzMDMiLCBcCi0gICAgICAgICAgIjAuMDI3ODk0LCAwLjA5ODcwNiwgMC4xNzM0NDIsIDAuMjI3ODc5LCAwLjMxNTQxOCwgMC4zOTI0NjQsIDAuNTAzNDM3IiwgXAotICAgICAgICAgICIwLjAyOTM1LCAwLjA5OTU3LCAwLjE3Mzg1LCAwLjIyODEyMSwgMC4zMTU3MzgsIDAuMzkyNjQzLCAwLjUwMzIxMSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyNjcxMiwgMC4wNjUzNiwgMC4xMDI5MjIsIDAuMTI5NzQ1LCAwLjE3MjYyOCwgMC4yMTAyMTIsIDAuMjYzNzk0IiwgXAotICAgICAgICAgICIwLjAzNDY5NSwgMC4wNzMzMzcsIDAuMTEwOTA3LCAwLjEzNzc2LCAwLjE4MDY2NSwgMC4yMTgyMjIsIDAuMjcxNzkxIiwgXAotICAgICAgICAgICIwLjA0MjQ5NywgMC4wODE0MDYsIDAuMTE4OTcyLCAwLjE0NTc5MiwgMC4xODg3LCAwLjIyNjI2NSwgMC4yNzk4MzYiLCBcCi0gICAgICAgICAgIjAuMDQ4MTc4LCAwLjA4NzMzMSwgMC4xMjQ5ODYsIDAuMTUxODAxLCAwLjE5NDY5OCwgMC4yMzIyNjMsIDAuMjg2MDAyIiwgXAotICAgICAgICAgICIwLjA1MjQ3NSwgMC4wOTE3ODMsIDAuMTI5MzMsIDAuMTU2MTE0LCAwLjE5ODk4MiwgMC4yMzY1MDksIDAuMjkwMDUxIiwgXAotICAgICAgICAgICIwLjA1ODAyNywgMC4wOTc4MzksIDAuMTM1Mzk3LCAwLjE2MjA2MSwgMC4yMDQ5NzksIDAuMjQyNDc2LCAwLjI5NTk4NyIsIFwKLSAgICAgICAgICAiMC4wNjE5MSwgMC4xMDIyNjcsIDAuMTM5NzEzLCAwLjE2NjUxMywgMC4yMDkzOTMsIDAuMjQ2ODYxLCAwLjMwMDQ1MiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxODU4NiwgMC4wOTM3NDYsIDAuMTcwODYxLCAwLjIyNjE0OSwgMC4zMTQ1MzYsIDAuMzkxMzQsIDAuNTAyNjY0IiwgXAotICAgICAgICAgICIwLjAxODgyLCAwLjA5Mzg4NiwgMC4xNzA4NjYsIDAuMjI1NjUzLCAwLjMxNDA1NCwgMC4zOTEzMDgsIDAuNTAxNjIzIiwgXAotICAgICAgICAgICIwLjAyMDIwOCwgMC4wOTQxOSwgMC4xNzA5NTYsIDAuMjI2MTYzLCAwLjMxNDY1MSwgMC4zOTE2MiwgMC41MDI3OTIiLCBcCi0gICAgICAgICAgIjAuMDIxNDgxLCAwLjA5NDU5NSwgMC4xNzEwMDEsIDAuMjI2MjksIDAuMzE0MjYsIDAuMzkxNDE1LCAwLjUwMTg2NCIsIFwKLSAgICAgICAgICAiMC4wMjI3MDMsIDAuMDk0OTgzLCAwLjE3MTM2OSwgMC4yMjYxOCwgMC4zMTQxNTcsIDAuMzkyMjEyLCAwLjUwMjEyNiIsIFwKLSAgICAgICAgICAiMC4wMjQzODEsIDAuMDk1Nzg4LCAwLjE3MTMzNSwgMC4yMjYzNTQsIDAuMzE0NzkzLCAwLjM5MjExOSwgMC41MDI3ODciLCBcCi0gICAgICAgICAgIjAuMDI1OTQyLCAwLjA5NjQ0NiwgMC4xNzE2MjUsIDAuMjI2MjU3LCAwLjMxNDU5NywgMC4zOTIyMDUsIDAuNTAyODkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwODMwMywgMC4wMDg1MDIsIDAuMDA4NTM2LCAwLjAwODU0NiwgMC4wMDg1NDksIDAuMDA4NTYsIDAuMDA4NTUxIiwgXAotICAgICAgICAgICIwLjAwODEyOSwgMC4wMDgzNDgsIDAuMDA4Mzk1LCAwLjAwODQxNywgMC4wMDg0MjQsIDAuMDA4NDMyLCAwLjAwODQ0IiwgXAotICAgICAgICAgICIwLjAwODI2MywgMC4wMDgzOTIsIDAuMDA4NDM5LCAwLjAwODQ1NywgMC4wMDg0NywgMC4wMDg0NzksIDAuMDA4NDg1IiwgXAotICAgICAgICAgICIwLjAwODQ5MiwgMC4wMDg1MzEsIDAuMDA4NTc4LCAwLjAwODU5NywgMC4wMDg2MDYsIDAuMDA4NjIsIDAuMDA4NjI3IiwgXAotICAgICAgICAgICIwLjAwODY1NCwgMC4wMDg2OTcsIDAuMDA4NzQ3LCAwLjAwODc1OSwgMC4wMDg3ODEsIDAuMDA4NzkzLCAwLjAwODgwMSIsIFwKLSAgICAgICAgICAiMC4wMDkxMTcsIDAuMDA5MDg2LCAwLjAwOTEyNiwgMC4wMDkxMzYsIDAuMDA5MTQ1LCAwLjAwOTE3MywgMC4wMDkxNzQiLCBcCi0gICAgICAgICAgIjAuMDA5NjYyLCAwLjAwOTUzOSwgMC4wMDk1NDIsIDAuMDA5NTUxLCAwLjAwOTU1MiwgMC4wMDk1NTgsIDAuMDA5NTY0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTE4MjgsIDAuMDEyMTU1LCAwLjAxMjIwNCwgMC4wMTIyMiwgMC4wMTIyMzMsIDAuMDEyMjQxLCAwLjAxMjI0NyIsIFwKLSAgICAgICAgICAiMC4wMTE3NjIsIDAuMDEyMDksIDAuMDEyMTYsIDAuMDEyMTgyLCAwLjAxMjIwMiwgMC4wMTIyMTMsIDAuMDEyMjIzIiwgXAotICAgICAgICAgICIwLjAxMTk0MSwgMC4wMTIxODEsIDAuMDEyMjYyLCAwLjAxMjI5LCAwLjAxMjMxNywgMC4wMTIzMzIsIDAuMDEyMzQ1IiwgXAotICAgICAgICAgICIwLjAxMjI2LCAwLjAxMjM5MywgMC4wMTI0NjksIDAuMDEyNDk3LCAwLjAxMjUyNSwgMC4wMTI1NCwgMC4wMTI1NTQiLCBcCi0gICAgICAgICAgIjAuMDEyNjc2LCAwLjAxMjY3OSwgMC4wMTI3MzgsIDAuMDEyNzY0LCAwLjAxMjc4OCwgMC4wMTI4MDIsIDAuMDEyODE2IiwgXAotICAgICAgICAgICIwLjAxMzA4OSwgMC4wMTMwODIsIDAuMDEzMTc5LCAwLjAxMzIsIDAuMDEzMjIzLCAwLjAxMzIzNiwgMC4wMTMyNTUiLCBcCi0gICAgICAgICAgIjAuMDEzNjE1LCAwLjAxMzUwNSwgMC4wMTM1NjYsIDAuMDEzNTkyLCAwLjAxMzYzMSwgMC4wMTM2NTEsIDAuMDEzNjY4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDgyODgsIDAuMDA4NTA4LCAwLjAwODU0NiwgMC4wMDg1NjIsIDAuMDA4NTc0LCAwLjAwODU5LCAwLjAwODU5NCIsIFwKLSAgICAgICAgICAiMC4wMDgxNzYsIDAuMDA4Mzk3LCAwLjAwODQ1NCwgMC4wMDg0NzMsIDAuMDA4NDkxLCAwLjAwODUwMywgMC4wMDg1MDkiLCBcCi0gICAgICAgICAgIjAuMDA4Mzg3LCAwLjAwODUxOSwgMC4wMDg1NzYsIDAuMDA4NjAxLCAwLjAwODYxOCwgMC4wMDg2MjUsIDAuMDA4NjM1IiwgXAotICAgICAgICAgICIwLjAwODc2OCwgMC4wMDg4MDQsIDAuMDA4ODU3LCAwLjAwODg3NywgMC4wMDg4OTYsIDAuMDA4OTA3LCAwLjAwODkxOCIsIFwKLSAgICAgICAgICAiMC4wMDkwNiwgMC4wMDkwMTgsIDAuMDA5MDY2LCAwLjAwOTA4MSwgMC4wMDkxMDIsIDAuMDA5MTE0LCAwLjAwOTEyNiIsIFwKLSAgICAgICAgICAiMC4wMDk3MTIsIDAuMDA5NTIyLCAwLjAwOTU0NiwgMC4wMDk1NjIsIDAuMDA5NTY2LCAwLjAwOTU3NywgMC4wMDk1ODciLCBcCi0gICAgICAgICAgIjAuMDEwMzMzLCAwLjAxMDAwMiwgMC4wMTAwMDQsIDAuMDEsIDAuMDEwMDEyLCAwLjAxMDAxOSwgMC4wMTAwMjIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMDg5NiwgMC4wMTEyNjIsIDAuMDExMzE3LCAwLjAxMTMzNCwgMC4wMTEzNDksIDAuMDExMzU3LCAwLjAxMTM2NCIsIFwKLSAgICAgICAgICAiMC4wMTA4MDUsIDAuMDExMTY3LCAwLjAxMTI0MiwgMC4wMTEyNjYsIDAuMDExMjg4LCAwLjAxMTI5OSwgMC4wMTEzMSIsIFwKLSAgICAgICAgICAiMC4wMTA5MzMsIDAuMDExMjM0LCAwLjAxMTMyNSwgMC4wMTEzNTcsIDAuMDExMzg3LCAwLjAxMTQwMiwgMC4wMTE0MTciLCBcCi0gICAgICAgICAgIjAuMDExMjE3LCAwLjAxMTQwMywgMC4wMTE0OTcsIDAuMDExNTMsIDAuMDExNTY1LCAwLjAxMTU4MywgMC4wMTE1OTkiLCBcCi0gICAgICAgICAgIjAuMDExNDc1LCAwLjAxMTczLCAwLjAxMTczNSwgMC4wMTE3NjgsIDAuMDExODAxLCAwLjAxMTgxOCwgMC4wMTE4NzMiLCBcCi0gICAgICAgICAgIjAuMDEyMDA2LCAwLjAxMjEwMSwgMC4wMTIxOTcsIDAuMDEyMjA3LCAwLjAxMjI2NywgMC4wMTIyODcsIDAuMDEyMjczIiwgXAotICAgICAgICAgICIwLjAxMjU1LCAwLjAxMjQ4NCwgMC4wMTI2MjgsIDAuMDEyNjY1LCAwLjAxMjY0NiwgMC4wMTI3MTMsIDAuMDEyNzMxIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBBTkQyWEwgKgotICogLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChBTkQyWEwpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4xNzI3MjY7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY4NDQxOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDY4NDQxOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDY4Mzg1ODsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyOTYsIDAuMDAwMjk2LCAwLjAwMDI5NiwgMC4wMDAyOTYsIDAuMDAwMjk2LCAwLjAwMDI5NiwgMC4wMDAyOTYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAzMTcsIDAuMDAwMzA3LCAwLjAwMDMwMSwgMC4wMDAyOTgsIDAuMDAwMjk4LCAwLjAwMDI5OCwgMC4wMDAyOTgiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY0MDM7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjQwMzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2NDAyMTQ7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMTY4LCAwLjAwMDE2OCwgMC4wMDAxNjgsIDAuMDAwMTY4LCAwLjAwMDE2OCwgMC4wMDAxNjgsIDAuMDAwMTY4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzM3LCAwLjAwMDMzOCwgMC4wMDAzMzgsIDAuMDAwMzM4LCAwLjAwMDMzOCwgMC4wMDAzMzgsIDAuMDAwMzM4Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMjAxMjUyOwotICAgIGZ1bmN0aW9uIDogIihBIEIpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzcwODEsIDAuMDg3NjA3LCAwLjE4MjI1NCwgMC4zNDAzLCAwLjQ5ODI1MywgMC44NjczNzgsIDEuMDc2ODkiLCBcCi0gICAgICAgICAgIjAuMDgyOTQ0LCAwLjA5MzQ2OSwgMC4xODgxODYsIDAuMzQ2MjY4LCAwLjUwMzk3NSwgMC44NzIyODgsIDEuMDgzMTUiLCBcCi0gICAgICAgICAgIjAuMDg5MTA0LCAwLjA5OTYyMiwgMC4xOTQzNzMsIDAuMzUyNDg0LCAwLjUxMDA5MiwgMC44Nzg2OTUsIDEuMDg4ODIiLCBcCi0gICAgICAgICAgIjAuMDk0MDEzLCAwLjEwNDU1NywgMC4xOTkyNSwgMC4zNTcxMywgMC41MTUyMTEsIDAuODgzMjg2LCAxLjA5MzkxIiwgXAotICAgICAgICAgICIwLjA5ODEyMywgMC4xMDg2NDQsIDAuMjAzMzM2LCAwLjM2MTIyOCwgMC41MTkxMTMsIDAuODg3NTgsIDEuMDk3ODMiLCBcCi0gICAgICAgICAgIjAuMTAzNzI2LCAwLjExNDI2LCAwLjIwODg2OSwgMC4zNjY2ODgsIDAuNTI0NTM3LCAwLjg5MzIxMiwgMS4xMDM3NyIsIFwKLSAgICAgICAgICAiMC4xMDgxNzgsIDAuMTE4NzExLCAwLjIxMzQxNiwgMC4zNzExODIsIDAuNTI5MDcxLCAwLjg5NzU0MywgMS4xMDg4NSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTcxMzIsIDAuMTM4OTc2LCAwLjMzNzkzNSwgMC42Njk5MzMsIDEuMDAyMTEsIDEuNzc3OCwgMi4yMTkwMiIsIFwKLSAgICAgICAgICAiMC4xMTcxNDcsIDAuMTM5MDU0LCAwLjMzODM3OSwgMC42Njk5NzIsIDEuMDAzMTQsIDEuNzc2MjgsIDIuMjIxNTciLCBcCi0gICAgICAgICAgIjAuMTE3MzUsIDAuMTM5MjUyLCAwLjMzNzczNiwgMC42Njk4NDcsIDEuMDAxNzIsIDEuNzc4MDYsIDIuMjE5MzUiLCBcCi0gICAgICAgICAgIjAuMTE3NTU0LCAwLjEzOTU1NiwgMC4zMzgwNjYsIDAuNjY5OCwgMS4wMDIxMiwgMS43NzczOSwgMi4yMjIxMyIsIFwKLSAgICAgICAgICAiMC4xMTc4ODMsIDAuMTM5NjcxLCAwLjMzODA0LCAwLjY3MDMxLCAxLjAwMjM0LCAxLjc3Njk0LCAyLjIxOTM0IiwgXAotICAgICAgICAgICIwLjExODQ3NiwgMC4xNDAwNywgMC4zMzgzNzksIDAuNjcwMjIsIDEuMDAzNTksIDEuNzc2OTksIDIuMjE5ODUiLCBcCi0gICAgICAgICAgIjAuMTE4OTgsIDAuMTQwNTYzLCAwLjMzODI1NywgMC42NzA3NDgsIDEuMDAzNjIsIDEuNzc2MTMsIDIuMjE5NTUiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY2MDg5LCAwLjA3NTc0NSwgMC4xNjI1OTMsIDAuMzA3MzM1LCAwLjQ1MTk2NCwgMC43ODk1OTcsIDAuOTgyNDc2IiwgXAotICAgICAgICAgICIwLjA3MzcxMSwgMC4wODMzNjksIDAuMTcwMjIzLCAwLjMxNDkzMiwgMC40NTk1OTksIDAuNzk3MTc4LCAwLjk5MDA5NCIsIFwKLSAgICAgICAgICAiMC4wODAxOTcsIDAuMDg5ODYsIDAuMTc2NzA0LCAwLjMyMTQwNSwgMC40NjYwODUsIDAuODAzNjUzLCAwLjk5NjU0NSIsIFwKLSAgICAgICAgICAiMC4wODQ5MDgsIDAuMDk0NTYxLCAwLjE4MTQxLCAwLjMyNjA4NCwgMC40NzA4MjEsIDAuODA4MzcxLCAxLjAwMTM0IiwgXAotICAgICAgICAgICIwLjA4ODYzMSwgMC4wOTgyNzMsIDAuMTg1MTcxLCAwLjMyOTg0MiwgMC40NzQ1MzYsIDAuODEyMjE0LCAxLjAwNDg4IiwgXAotICAgICAgICAgICIwLjA5MzQ1NywgMC4xMDMxMzUsIDAuMTkwMDE1LCAwLjMzNDcxLCAwLjQ3OTM4LCAwLjgxNzAzNSwgMS4wMDk4NyIsIFwKLSAgICAgICAgICAiMC4wOTcwNDMsIDAuMTA2NjcsIDAuMTkzNjUzLCAwLjMzODMzNiwgMC40ODI5OTEsIDAuODIwNTY5LCAxLjAxMzQyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwNDMwNCwgMC4xMjQwNTEsIDAuMzAyNDA0LCAwLjU5ODg4NiwgMC44OTYxMTEsIDEuNTkxNDgsIDEuOTg3ODMiLCBcCi0gICAgICAgICAgIjAuMTA0MTc5LCAwLjEyNDA5LCAwLjMwMjQwNSwgMC41OTk4OTIsIDAuODk3MTc4LCAxLjU5MTE0LCAxLjk4NTYxIiwgXAotICAgICAgICAgICIwLjEwNDU0NCwgMC4xMjQyMjgsIDAuMzAyMzksIDAuNTk5MTE4LCAwLjg5NzI3LCAxLjU5MTI1LCAxLjk4Nzc4IiwgXAotICAgICAgICAgICIwLjEwNDY5NiwgMC4xMjQyOTEsIDAuMzAyMDM3LCAwLjU5OTY4OCwgMC44OTcxMjgsIDEuNTkxMDksIDEuOTg3OSIsIFwKLSAgICAgICAgICAiMC4xMDQ4MDIsIDAuMTI0MzY4LCAwLjMwMjA4NCwgMC41OTk2NzUsIDAuODk3MTcyLCAxLjU5MTUxLCAxLjk4ODE5IiwgXAotICAgICAgICAgICIwLjEwNTMzNSwgMC4xMjQ3MTIsIDAuMzAyMjQ3LCAwLjU5OTMsIDAuODk2ODg0LCAxLjU5MTA5LCAxLjk4NTQxIiwgXAotICAgICAgICAgICIwLjEwNTY0NiwgMC4xMjUyNDYsIDAuMzAyMTU5LCAwLjU5OTI0MywgMC44OTYyMzQsIDEuNTkxMDEsIDEuOTg1ODIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc1NzY5LCAwLjA4NjI5OCwgMC4xODEwMjUsIDAuMzM5MTM0LCAwLjQ5Njc0MSwgMC44NjUxMzIsIDEuMDc2NjIiLCBcCi0gICAgICAgICAgIjAuMDgzMDU1LCAwLjA5MzU4MywgMC4xODgzMDcsIDAuMzQ2MzM4LCAwLjUwNDIxMSwgMC44NzI3MzEsIDEuMDg0MiIsIFwKLSAgICAgICAgICAiMC4wOTA4NjUsIDAuMTAxMywgMC4xOTYwNDUsIDAuMzU0MTE3LCAwLjUxMTc2MSwgMC44ODAxMjUsIDEuMDkxMzQiLCBcCi0gICAgICAgICAgIjAuMDk2NjE5LCAwLjEwNzE2LCAwLjIwMTkxMywgMC4zNTk5MzgsIDAuNTE3NzYsIDAuODg2MDEyLCAxLjA5NjYxIiwgXAotICAgICAgICAgICIwLjEwMTUyNSwgMC4xMTIwMTMsIDAuMjA2Njc0LCAwLjM2NDc0MywgMC41MjI0MTgsIDAuODkxMjMxLCAxLjEwMTUxIiwgXAotICAgICAgICAgICIwLjEwODE2NywgMC4xMTg3MDIsIDAuMjEzNDU3LCAwLjM3MTM4OSwgMC41MjkxODIsIDAuODk3ODI5LCAxLjEwODI1IiwgXAotICAgICAgICAgICIwLjExMzI5LCAwLjEyMzg1NCwgMC4yMTg2MzQsIDAuMzc2NDA5LCAwLjUzNDQzNSwgMC45MDI3MjcsIDEuMTEzNiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTcxMjMsIDAuMTM5MTUxLCAwLjMzODM5MSwgMC42Njk5MSwgMS4wMDI0OCwgMS43NzYzMiwgMi4yMTk1OSIsIFwKLSAgICAgICAgICAiMC4xMTcxNTgsIDAuMTM5MTY0LCAwLjMzODM4MywgMC42Njk5NzcsIDEuMDAyNjUsIDEuNzc3NzcsIDIuMjIwODkiLCBcCi0gICAgICAgICAgIjAuMTE3Mjg1LCAwLjEzOTM1MiwgMC4zMzc3MjIsIDAuNjY5OTI1LCAxLjAwMTczLCAxLjc3OTQyLCAyLjIxOTY1IiwgXAotICAgICAgICAgICIwLjExNzcyNiwgMC4xMzk0NjUsIDAuMzM3NzY5LCAwLjY2OTk4LCAxLjAwMjA1LCAxLjc3ODkxLCAyLjIxOTc0IiwgXAotICAgICAgICAgICIwLjExODAxNSwgMC4xMzk3NDQsIDAuMzM4MzQ0LCAwLjY3MDAwMSwgMS4wMDE4NiwgMS43NzcxMiwgMi4yMjA4NCIsIFwKLSAgICAgICAgICAiMC4xMTg1NDMsIDAuMTQwMTQ3LCAwLjMzODQ0MSwgMC42Njk3MjYsIDEuMDAxODcsIDEuNzc3MDQsIDIuMjE5NzgiLCBcCi0gICAgICAgICAgIjAuMTE5MjMsIDAuMTQwNjk3LCAwLjMzODEzNCwgMC42NzA5ODYsIDEuMDAxNjMsIDEuNzc2MjksIDIuMjE5OTUiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY0OTM2LCAwLjA3NDU1NiwgMC4xNjE0MTgsIDAuMzA2MTY3LCAwLjQ1MDk3OCwgMC43ODg1MTIsIDAuOTgxNzA1IiwgXAotICAgICAgICAgICIwLjA3MjA4NSwgMC4wODE3NDQsIDAuMTY4NjI2LCAwLjMxMzQxLCAwLjQ1ODA5MywgMC43OTY0OTIsIDAuOTg4NzM4IiwgXAotICAgICAgICAgICIwLjA3ODA2MSwgMC4wODc3MTYsIDAuMTc0NjA3LCAwLjMxOTQ2MiwgMC40NjQwNzMsIDAuODAyMDk4LCAwLjk5NDkyMSIsIFwKLSAgICAgICAgICAiMC4wODIxMDcsIDAuMDkxNzM4LCAwLjE3ODU3MSwgMC4zMjMzMzYsIDAuNDY4MjY0LCAwLjgwNTc0NSwgMC45OTg3NTciLCBcCi0gICAgICAgICAgIjAuMDg1NTQyLCAwLjA5NTA2NywgMC4xODE4MzMsIDAuMzI2NzQ4LCAwLjQ3MTU4MSwgMC44MDkyMzEsIDEuMDAyMjkiLCBcCi0gICAgICAgICAgIjAuMDg5NzE0LCAwLjA5OTQ4LCAwLjE4NjI5NCwgMC4zMzA5ODMsIDAuNDc1ODM3LCAwLjgxMzM5MywgMS4wMDY0IiwgXAotICAgICAgICAgICIwLjA5MjY4NywgMC4xMDI0MDksIDAuMTg5NDY1LCAwLjMzNDExOCwgMC40Nzg5MTIsIDAuODE2NzE4LCAxLjAxMDAxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwNDE3NywgMC4xMjM5MzQsIDAuMzAyMzMzLCAwLjU5ODU0MSwgMC44OTY0MDUsIDEuNTg4MywgMS45ODQ1OSIsIFwKLSAgICAgICAgICAiMC4xMDQyNTMsIDAuMTI0MDMsIDAuMzAxNjcyLCAwLjU5ODgyNywgMC44OTUzOTQsIDEuNTg5MzEsIDEuOTgzODQiLCBcCi0gICAgICAgICAgIjAuMTA0NDg5LCAwLjEyNDE4NSwgMC4zMDE4OTMsIDAuNTk4NzUzLCAwLjg5NzQxOSwgMS41ODg1NCwgMS45ODgyNiIsIFwKLSAgICAgICAgICAiMC4xMDQ2NTUsIDAuMTI0MjkyLCAwLjMwMjA3MiwgMC41OTg1OTUsIDAuODk2MDEsIDEuNTg4MTQsIDEuOTg4MjgiLCBcCi0gICAgICAgICAgIjAuMTA0NzYzLCAwLjEyNDM5OCwgMC4zMDI0NDMsIDAuNjAwMDIxLCAwLjg5NjM0NywgMS41ODgwNiwgMS45ODQ5OSIsIFwKLSAgICAgICAgICAiMC4xMDU1MDMsIDAuMTI0ODI4LCAwLjMwMjUyNiwgMC41OTk4MTcsIDAuODk1ODcyLCAxLjU4ODMxLCAxLjk4NDA5IiwgXAotICAgICAgICAgICIwLjEwNTc4MSwgMC4xMjUyMDcsIDAuMzAyMTkzLCAwLjU5ODk1NywgMC44OTU1NDgsIDEuNTg4NjEsIDEuOTg0NTIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDEwOTEsIDAuMDAxMDkxLCAwLjAwMTA5MSwgMC4wMDEwOTEsIDAuMDAxMDkxLCAwLjAwMTA5MSwgMC4wMDEwOTEiLCBcCi0gICAgICAgICAgIjAuMDAxMDYzLCAwLjAwMTA2MywgMC4wMDEwNjQsIDAuMDAxMDY0LCAwLjAwMTA2NCwgMC4wMDEwNjQsIDAuMDAxMDY0IiwgXAotICAgICAgICAgICIwLjAwMTEwMywgMC4wMDExMDMsIDAuMDAxMTAzLCAwLjAwMTEwNCwgMC4wMDExMDQsIDAuMDAxMTA0LCAwLjAwMTEwNCIsIFwKLSAgICAgICAgICAiMC4wMDExNzMsIDAuMDAxMTc0LCAwLjAwMTE3NCwgMC4wMDExNzUsIDAuMDAxMTc1LCAwLjAwMTE3NSwgMC4wMDExNzQiLCBcCi0gICAgICAgICAgIjAuMDAxMjY0LCAwLjAwMTI2NCwgMC4wMDEyNjQsIDAuMDAxMjYzLCAwLjAwMTI2MywgMC4wMDEyNjMsIDAuMDAxMjYzIiwgXAotICAgICAgICAgICIwLjAwMTQzNSwgMC4wMDE0MzUsIDAuMDAxNDMyLCAwLjAwMTQzLCAwLjAwMTQyOSwgMC4wMDE0MjksIDAuMDAxNDI4IiwgXAotICAgICAgICAgICIwLjAwMTU5MywgMC4wMDE1OTEsIDAuMDAxNTg4LCAwLjAwMTU4NywgMC4wMDE1ODUsIDAuMDAxNTg1LCAwLjAwMTU4NSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjQ2NywgMC4wMDI0NjcsIDAuMDAyNDcsIDAuMDAyNDcxLCAwLjAwMjQ3MSwgMC4wMDI0NzEsIDAuMDAyNDcxIiwgXAotICAgICAgICAgICIwLjAwMjQ3MiwgMC4wMDI0NzMsIDAuMDAyNDc3LCAwLjAwMjQ3OSwgMC4wMDI0NzksIDAuMDAyNDc5LCAwLjAwMjQ4IiwgXAotICAgICAgICAgICIwLjAwMjU0MywgMC4wMDI1NDQsIDAuMDAyNTQ4LCAwLjAwMjU1LCAwLjAwMjU1MSwgMC4wMDI1NTEsIDAuMDAyNTUxIiwgXAotICAgICAgICAgICIwLjAwMjYzNywgMC4wMDI2MzgsIDAuMDAyNjQxLCAwLjAwMjY0MywgMC4wMDI2NDQsIDAuMDAyNjQ0LCAwLjAwMjY0NCIsIFwKLSAgICAgICAgICAiMC4wMDI3NDksIDAuMDAyNzQzLCAwLjAwMjc1NCwgMC4wMDI3NTYsIDAuMDAyNzU2LCAwLjAwMjc1NywgMC4wMDI3NTEiLCBcCi0gICAgICAgICAgIjAuMDAyOTQyLCAwLjAwMjk0MywgMC4wMDI5MzYsIDAuMDAyOTM3LCAwLjAwMjkzOCwgMC4wMDI5NDksIDAuMDAyOTM5IiwgXAotICAgICAgICAgICIwLjAwMzEyNiwgMC4wMDMxMjUsIDAuMDAzMTI3LCAwLjAwMzEyOCwgMC4wMDMxMjgsIDAuMDAzMTI5LCAwLjAwMzExOCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTA5NCwgMC4wMDEwOTUsIDAuMDAxMDk2LCAwLjAwMTA5NywgMC4wMDEwOTcsIDAuMDAxMDk3LCAwLjAwMTA5NyIsIFwKLSAgICAgICAgICAiMC4wMDEwOSwgMC4wMDEwOTEsIDAuMDAxMDk0LCAwLjAwMTA5NSwgMC4wMDEwOTUsIDAuMDAxMDk1LCAwLjAwMTA5NSIsIFwKLSAgICAgICAgICAiMC4wMDExNjYsIDAuMDAxMTY3LCAwLjAwMTE2OSwgMC4wMDExNjksIDAuMDAxMTY4LCAwLjAwMTE3LCAwLjAwMTE3MSIsIFwKLSAgICAgICAgICAiMC4wMDEyNjQsIDAuMDAxMjYzLCAwLjAwMTI2NiwgMC4wMDEyNjcsIDAuMDAxMjY3LCAwLjAwMTI2NywgMC4wMDEyNjciLCBcCi0gICAgICAgICAgIjAuMDAxMzc2LCAwLjAwMTM3NSwgMC4wMDEzNzQsIDAuMDAxMzc1LCAwLjAwMTM3NSwgMC4wMDEzNzUsIDAuMDAxMzc1IiwgXAotICAgICAgICAgICIwLjAwMTU2NywgMC4wMDE1NjQsIDAuMDAxNTYyLCAwLjAwMTU2LCAwLjAwMTU1OSwgMC4wMDE1NTksIDAuMDAxNTU5IiwgXAotICAgICAgICAgICIwLjAwMTcyOSwgMC4wMDE3MjcsIDAuMDAxNzIyLCAwLjAwMTcxOSwgMC4wMDE3MTgsIDAuMDAxNzE3LCAwLjAwMTcxNyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjE5NSwgMC4wMDIxOTYsIDAuMDAyMTk5LCAwLjAwMjIsIDAuMDAyMiwgMC4wMDIyMDEsIDAuMDAyMiIsIFwKLSAgICAgICAgICAiMC4wMDIxOTEsIDAuMDAyMTkyLCAwLjAwMjE5OCwgMC4wMDIyLCAwLjAwMjIwMSwgMC4wMDIyMDEsIDAuMDAyMjAxIiwgXAotICAgICAgICAgICIwLjAwMjI1MywgMC4wMDIyNTYsIDAuMDAyMjYyLCAwLjAwMjI2NSwgMC4wMDIyNjYsIDAuMDAyMjY3LCAwLjAwMjI2NyIsIFwKLSAgICAgICAgICAiMC4wMDIzNTcsIDAuMDAyMzU5LCAwLjAwMjM2NiwgMC4wMDIzNjksIDAuMDAyMzYxLCAwLjAwMjM3MSwgMC4wMDIzNzEiLCBcCi0gICAgICAgICAgIjAuMDAyNDY1LCAwLjAwMjQ2LCAwLjAwMjQ2NiwgMC4wMDI0NzcsIDAuMDAyNDc5LCAwLjAwMjQ4LCAwLjAwMjQ4IiwgXAotICAgICAgICAgICIwLjAwMjYzMSwgMC4wMDI2MzgsIDAuMDAyNjQ1LCAwLjAwMjY0OSwgMC4wMDI2NDUsIDAuMDAyNjUyLCAwLjAwMjY0NyIsIFwKLSAgICAgICAgICAiMC4wMDI4LCAwLjAwMjgxMywgMC4wMDI4MTUsIDAuMDAyODExLCAwLjAwMjgxMiwgMC4wMDI4MTMsIDAuMDAyODIxIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBBTkQzWDEgKgotICogLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChBTkQzWDEpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4yNDQyMTg7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYzMjUyOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYzMjUyOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDYzMTY2NDsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyOTYsIDAuMDAwMjk2LCAwLjAwMDI5NiwgMC4wMDAyOTYsIDAuMDAwMjk2LCAwLjAwMDI5NiwgMC4wMDAyOTYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyOTcsIDAuMDAwMjk3LCAwLjAwMDI5NywgMC4wMDAyOTcsIDAuMDAwMjk3LCAwLjAwMDI5NywgMC4wMDAyOTYiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYzNDc4NzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MzQ3ODc7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjM0MTk3OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDI5NiwgMC4wMDAyOTYsIDAuMDAwMjk2LCAwLjAwMDI5NiwgMC4wMDAyOTYsIDAuMDAwMjk2LCAwLjAwMDI5NiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDI5NywgMC4wMDAyOTcsIDAuMDAwMjk3LCAwLjAwMDI5NywgMC4wMDAyOTcsIDAuMDAwMjk3LCAwLjAwMDI5NyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQykgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjYwMzA1OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDY2MDI0NTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2NjAzMDU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMTQ4LCAwLjAwMDE0NywgMC4wMDAxNDcsIDAuMDAwMTQ3LCAwLjAwMDE0NywgMC4wMDAxNDcsIDAuMDAwMTQ3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzM3LCAwLjAwMDMzOCwgMC4wMDAzMzcsIDAuMDAwMzM4LCAwLjAwMDMzOCwgMC4wMDAzMzgsIDAuMDAwMzM4Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMzQ1Njk7Ci0gICAgZnVuY3Rpb24gOiAiKChBIEIpIEMpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzg1OTIsIDAuMDk3NzczLCAwLjIwMzQ3NCwgMC4yOTY1NDQsIDAuNDIwNDkxLCAwLjY2OTAzMSwgMC44MjQyNjMiLCBcCi0gICAgICAgICAgIjAuMDgzNTU4LCAwLjEwMjcyOSwgMC4yMDg0MTMsIDAuMzAxNTIzLCAwLjQyNTYwMywgMC42NzM5MjUsIDAuODI5MjY0IiwgXAotICAgICAgICAgICIwLjA4OTAxMywgMC4xMDgxNjEsIDAuMjEzODQ5LCAwLjMwNjkzOCwgMC40MzEwNjYsIDAuNjc5OCwgMC44MzQ3NjIiLCBcCi0gICAgICAgICAgIjAuMDk0MDI1LCAwLjExMzI1LCAwLjIxODk1MSwgMC4zMTIwMTIsIDAuNDM2MTQsIDAuNjg0NjQsIDAuODM5ODIxIiwgXAotICAgICAgICAgICIwLjA5ODUwMSwgMC4xMTc3OTMsIDAuMjIzNTMsIDAuMzE2NjM2LCAwLjQ0MDY5MSwgMC42ODk2NiwgMC44NDQzNjciLCBcCi0gICAgICAgICAgIjAuMTA0ODk0LCAwLjEyNDM2NiwgMC4yMzAxNjgsIDAuMzIzMjIxLCAwLjQ0NzM2OSwgMC42OTU2MjMsIDAuODUxNDgzIiwgXAotICAgICAgICAgICIwLjEwOTk2NSwgMC4xMjk0ODgsIDAuMjM1MzEzLCAwLjMyODQwMywgMC40NTI1MDMsIDAuNzAwODQxLCAwLjg1NTk2NCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzY4ODEsIDAuMTE0MzY3LCAwLjMzMzMwMywgMC41Mjg4NTYsIDAuNzg5MTc5LCAxLjMxMDUsIDEuNjM4NyIsIFwKLSAgICAgICAgICAiMC4wNzY4MDEsIDAuMTE0MzA1LCAwLjMzMjc3MywgMC41Mjg4MzcsIDAuNzkwMTQ5LCAxLjMxMDczLCAxLjYzNzUyIiwgXAotICAgICAgICAgICIwLjA3Njk4NiwgMC4xMTQ0MjMsIDAuMzMzMzE2LCAwLjUyODc2NiwgMC43OTAxNSwgMS4zMTEwNSwgMS42Mzc1NSIsIFwKLSAgICAgICAgICAiMC4wNzc1LCAwLjExNDc1NiwgMC4zMzMyOTQsIDAuNTI4NzIzLCAwLjc5MDE0MSwgMS4zMTE3OCwgMS42Mzc1NSIsIFwKLSAgICAgICAgICAiMC4wNzgwNzYsIDAuMTE1MzM4LCAwLjMzMzA3OCwgMC41Mjg5MTksIDAuNzkwMTE2LCAxLjMxMTU5LCAxLjYzNzUyIiwgXAotICAgICAgICAgICIwLjA3OTI0NCwgMC4xMTYwMjUsIDAuMzMzMTQ5LCAwLjUyOTAxMSwgMC43ODg4MzQsIDEuMzEwODMsIDEuNjM3MyIsIFwKLSAgICAgICAgICAiMC4wODAyMTMsIDAuMTE3MDAxLCAwLjMzMzU2LCAwLjUyOTE0OSwgMC43ODkxOTMsIDEuMzEwNTEsIDEuNjM4MDEiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU1MzA2LCAwLjA3MzQ2OCwgMC4xNzYxNjcsIDAuMjY2NjQ5LCAwLjM4NzMwNSwgMC42Mjg1NzQsIDAuNzc5MzU3IiwgXAotICAgICAgICAgICIwLjA2MzI4MSwgMC4wODE0NzUsIDAuMTg0MTU2LCAwLjI3NDY5NCwgMC4zOTUzMTYsIDAuNjM2NTg2LCAwLjc4NzM5MiIsIFwKLSAgICAgICAgICAiMC4wNzE4MzYsIDAuMDkwMDMxLCAwLjE5MjcwNCwgMC4yODMyMjIsIDAuNDAzODUzLCAwLjY0NTEyOCwgMC43OTYwNSIsIFwKLSAgICAgICAgICAiMC4wNzgxOTksIDAuMDk2NDE5LCAwLjE5OTA0NSwgMC4yODk1NjMsIDAuNDEwMTk5LCAwLjY1MTQ2OSwgMC44MDIyNjYiLCBcCi0gICAgICAgICAgIjAuMDgzMjQxLCAwLjEwMTQ4MywgMC4yMDQxMDksIDAuMjk0NjM4LCAwLjQxNTI2MSwgMC42NTY1NDEsIDAuODA3MzQ1IiwgXAotICAgICAgICAgICIwLjA4OTgzOCwgMC4xMDgwNTYsIDAuMjEwNzA3LCAwLjMwMTIxMywgMC40MjE5MDcsIDAuNjYzMTMxLCAwLjgxNDAwMiIsIFwKLSAgICAgICAgICAiMC4wOTQ2OTIsIDAuMTEyOTA4LCAwLjIxNTYwMiwgMC4zMDYwOTYsIDAuNDI2Nzc4LCAwLjY2ODA5MywgMC44MTg4MTQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY4MDg1LCAwLjEwNDg4LCAwLjMxNTAyOSwgMC41MDIwMTEsIDAuNzUwNjczLCAxLjI0Nzk0LCAxLjU1ODY5IiwgXAotICAgICAgICAgICIwLjA2ODExNSwgMC4xMDQ5MDksIDAuMzE1MTk3LCAwLjUwMTk3MywgMC43NTA1MDEsIDEuMjQ3ODksIDEuNTU2OTgiLCBcCi0gICAgICAgICAgIjAuMDY4NTAzLCAwLjEwNTA5MywgMC4zMTU1NjksIDAuNTAxMjQyLCAwLjc1MDYxOSwgMS4yNDc5LCAxLjU1NjAxIiwgXAotICAgICAgICAgICIwLjA2OTE1NSwgMC4xMDUzNjIsIDAuMzE1MTc0LCAwLjUwMTkzOSwgMC43NTA2NTUsIDEuMjQ3OTUsIDEuNTU4ODEiLCBcCi0gICAgICAgICAgIjAuMDY5Njk0LCAwLjEwNTY1NiwgMC4zMTUzNTcsIDAuNTAxODUyLCAwLjc0OTc1MywgMS4yNDc4LCAxLjU1ODU5IiwgXAotICAgICAgICAgICIwLjA3MDYyNiwgMC4xMDYzMDUsIDAuMzE1NDQzLCAwLjUwMTg1OSwgMC43NDg5ODMsIDEuMjQ2NDIsIDEuNTU4MyIsIFwKLSAgICAgICAgICAiMC4wNzE0MjMsIDAuMTA2OTMyLCAwLjMxNTM3MywgMC41MDE3MzUsIDAuNzUwMjA2LCAxLjI0NzQ4LCAxLjU1ODM0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3Njc3MywgMC4wOTU5NTUsIDAuMjAxNjU5LCAwLjI5NDczLCAwLjQxODg2OCwgMC42NjczMzYsIDAuODIyNzEyIiwgXAotICAgICAgICAgICIwLjA4MjcyNywgMC4xMDE5MDYsIDAuMjA3NjEzLCAwLjMwMDcwNSwgMC40MjQ4MjIsIDAuNjczMjcyLCAwLjgyODQ0IiwgXAotICAgICAgICAgICIwLjA5MDIyNSwgMC4xMDkzOTcsIDAuMjE1MTI2LCAwLjMwODE5MSwgMC40MzI0MDQsIDAuNjgxMTg3LCAwLjgzNTkwOCIsIFwKLSAgICAgICAgICAiMC4wOTcxMiwgMC4xMTYzMjIsIDAuMjIyMDQzLCAwLjMxNTEsIDAuNDM5MjM1LCAwLjY4NzY2OCwgMC44NDI5NTIiLCBcCi0gICAgICAgICAgIjAuMTAzMjQ1LCAwLjEyMjUyNywgMC4yMjgyNTQsIDAuMzIxMzM3LCAwLjQ0NTU1MSwgMC42OTM5ODUsIDAuODQ5NDE4IiwgXAotICAgICAgICAgICIwLjExMTY0LCAwLjEzMTEwNiwgMC4yMzY5NDIsIDAuMzMwMDA3LCAwLjQ1NDEwNCwgMC43MDI4NjQsIDAuODU3NzUiLCBcCi0gICAgICAgICAgIjAuMTE4NDgzLCAwLjEzNzkxMSwgMC4yNDM4MDQsIDAuMzM2ODksIDAuNDYwOTAzLCAwLjcwOTE4LCAwLjg2NDQzNSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzY4NzksIDAuMTE0Mjg5LCAwLjMzMzMwNSwgMC41MjgyNTEsIDAuNzkwMjQ4LCAxLjMxMTE0LCAxLjYzNzYzIiwgXAotICAgICAgICAgICIwLjA3Njc3NSwgMC4xMTQyNjEsIDAuMzMyNjc0LCAwLjUyODEzMywgMC43ODk3MDksIDEuMzEyMDcsIDEuNjM3NSIsIFwKLSAgICAgICAgICAiMC4wNzcwNjQsIDAuMTE0NDYzLCAwLjMzMzMxLCAwLjUyODE1MywgMC43ODg2MjEsIDEuMzEwOTUsIDEuNjM2NjkiLCBcCi0gICAgICAgICAgIjAuMDc3NjksIDAuMTE0OTI3LCAwLjMzMzM2NiwgMC41Mjg4MDQsIDAuNzkwMTU0LCAxLjMxMTA5LCAxLjYzNzU2IiwgXAotICAgICAgICAgICIwLjA3ODM5MiwgMC4xMTU0OTUsIDAuMzMzMjIzLCAwLjUyODg4MSwgMC43ODg1NTIsIDEuMzExNywgMS42Mzc0NSIsIFwKLSAgICAgICAgICAiMC4wNzk1OTgsIDAuMTE2MjM0LCAwLjMzMzcxNCwgMC41MjkwMjMsIDAuNzg5MjAzLCAxLjMxMTAzLCAxLjYzODY4IiwgXAotICAgICAgICAgICIwLjA4MDM1OCwgMC4xMTcxODgsIDAuMzMzOTYsIDAuNTI5MjI1LCAwLjc5MDExNywgMS4zMTIzOSwgMS42MzkwNCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTQwMDUsIDAuMDcyMTY0LCAwLjE3NDgwMywgMC4yNjUyNzgsIDAuMzg1OTExLCAwLjYyNzE2LCAwLjc3Nzk1MyIsIFwKLSAgICAgICAgICAiMC4wNjE5MjgsIDAuMDgwMTA0LCAwLjE4Mjc1LCAwLjI3MzI1LCAwLjM5Mzg3NSwgMC42MzUxMzEsIDAuNzg1OTM5IiwgXAotICAgICAgICAgICIwLjA3MDA3OSwgMC4wODgyNDYsIDAuMTkwODg3LCAwLjI4MTM4LCAwLjQwMjA0NSwgMC42NDMyNzIsIDAuNzk0MDQ0IiwgXAotICAgICAgICAgICIwLjA3NjE0MiwgMC4wOTQyNjQsIDAuMTk2ODk0LCAwLjI4NzQxLCAwLjQwODAyOCwgMC42NDkyODYsIDAuODAwMDU3IiwgXAotICAgICAgICAgICIwLjA4MDY2LCAwLjA5ODk4OSwgMC4yMDE2MzUsIDAuMjkyMTMzLCAwLjQxMjc0OSwgMC42NTQwNDUsIDAuODA0ODI0IiwgXAotICAgICAgICAgICIwLjA4NjY5OSwgMC4xMDUwMTQsIDAuMjA3NTk2LCAwLjI5ODEwMSwgMC40MTg3MTEsIDAuNjU5OTcyLCAwLjgxMDc4MiIsIFwKLSAgICAgICAgICAiMC4wOTA5NjQsIDAuMTA5MjMyLCAwLjIxMTg5NywgMC4zMDI0MTksIDAuNDIzMDUxLCAwLjY2NDI2NywgMC44MTUwODYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY3ODQyLCAwLjEwNDY1MywgMC4zMTQ2OTEsIDAuNTAxOTAyLCAwLjc1MDM5NiwgMS4yNDc4MiwgMS41NTgzNSIsIFwKLSAgICAgICAgICAiMC4wNjc4NjQsIDAuMTA0Njg4LCAwLjMxNDg0LCAwLjUwMTk1MywgMC43NDk2OCwgMS4yNDYyMSwgMS41NTg3NCIsIFwKLSAgICAgICAgICAiMC4wNjgzMzIsIDAuMTA0OTQ3LCAwLjMxNTA3NiwgMC41MDE5MTEsIDAuNzUwNjI3LCAxLjI0NzgsIDEuNTU4NiIsIFwKLSAgICAgICAgICAiMC4wNjg5MjgsIDAuMTA1MjEyLCAwLjMxNTQyOSwgMC41MDE4MTQsIDAuNzUwNTg3LCAxLjI0Nzg2LCAxLjU1ODYzIiwgXAotICAgICAgICAgICIwLjA2OTU1MSwgMC4xMDU1MiwgMC4zMTUzNDksIDAuNTAwODg3LCAwLjc1MDQ5LCAxLjI0Nzk3LCAxLjU1ODc4IiwgXAotICAgICAgICAgICIwLjA3MDQ4MiwgMC4xMDYyMzgsIDAuMzE1MjE0LCAwLjUwMTE5NSwgMC43NDk2NTIsIDEuMjQ3ODMsIDEuNTU3MDciLCBcCi0gICAgICAgICAgIjAuMDcxMzEzLCAwLjEwNjgwMywgMC4zMTU0MywgMC41MDEyMjYsIDAuNzQ5Njk0LCAxLjI0NzQ1LCAxLjU1ODM5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3Mzg5MywgMC4wOTMwNjcsIDAuMTk4ODM3LCAwLjI5MTg5OCwgMC40MTYwMzIsIDAuNjY0NDksIDAuODE5OTcyIiwgXAotICAgICAgICAgICIwLjA4MDg0NCwgMC4xMDAwMzksIDAuMjA1NzYsIDAuMjk4ODM3LCAwLjQyMjk3MSwgMC42NzEzMDcsIDAuODI2Njc0IiwgXAotICAgICAgICAgICIwLjA4OTg5NiwgMC4xMDkwNzYsIDAuMjE0Nzg4LCAwLjMwNzg5MSwgMC40MzIxMjYsIDAuNjgwNjg0LCAwLjgzNTc4OCIsIFwKLSAgICAgICAgICAiMC4wOTgxODIsIDAuMTE3Mzg1LCAwLjIyMzA5LCAwLjMxNjE0MSwgMC40NDAyNzEsIDAuNjg4NzY4LCAwLjg0Mzk5NCIsIFwKLSAgICAgICAgICAiMC4xMDUzNDQsIDAuMTI0NjkyLCAwLjIzMDQ5OSwgMC4zMjM2MDksIDAuNDQ3NzQsIDAuNjk2MTksIDAuODUxMzMiLCBcCi0gICAgICAgICAgIjAuMTE0ODQsIDAuMTM0NDA0LCAwLjI0MDI0NywgMC4zMzMyNzMsIDAuNDU3NDA0LCAwLjcwNjE5NywgMC44NjExMDQiLCBcCi0gICAgICAgICAgIjAuMTIyNDE0LCAwLjE0MTg3MywgMC4yNDc3NTIsIDAuMzQwNzk2LCAwLjQ2NDkwMiwgMC43MTMyNTIsIDAuODY4MzE4Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3Njg1OSwgMC4xMTQyNDcsIDAuMzMzMjg4LCAwLjUyODY5LCAwLjc5MDIyMiwgMS4zMTIwMSwgMS42Mzc1MyIsIFwKLSAgICAgICAgICAiMC4wNzY3NjMsIDAuMTE0MjM3LCAwLjMzMjg2LCAwLjUyODY5MywgMC43OTAyMDksIDEuMzExNjIsIDEuNjM3NTEiLCBcCi0gICAgICAgICAgIjAuMDc3MDY1LCAwLjExNDUwMywgMC4zMzMzNDUsIDAuNTI4ODgsIDAuNzg4NTIxLCAxLjMxMTE1LCAxLjYzNzYyIiwgXAotICAgICAgICAgICIwLjA3Nzc2NywgMC4xMTQ4OTMsIDAuMzMzMzY0LCAwLjUyODc1NCwgMC43OTAxNDMsIDEuMzExODEsIDEuNjM3NTUiLCBcCi0gICAgICAgICAgIjAuMDc4NTMxLCAwLjExNTU0OSwgMC4zMzMzOTEsIDAuNTI4MTI1LCAwLjc4ODc5NSwgMS4zMTExMSwgMS42Mzg0IiwgXAotICAgICAgICAgICIwLjA3OTcxNiwgMC4xMTYzNywgMC4zMzMzNTksIDAuNTI4Nzg2LCAwLjc5MDE5MiwgMS4zMTA5OCwgMS42MzgzNCIsIFwKLSAgICAgICAgICAiMC4wODA0NSwgMC4xMTcyNzYsIDAuMzMzNzk3LCAwLjUyODQyNywgMC43ODkyNjEsIDEuMzExNzcsIDEuNjM5MjUiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDUyNTE1LCAwLjA3MDY4MiwgMC4xNzMzMDQsIDAuMjYzODI0LCAwLjM4NDY5NSwgMC42MjU4NTgsIDAuNzc2NjcyIiwgXAotICAgICAgICAgICIwLjA2MDM1MywgMC4wNzg1MDIsIDAuMTgxMTIyLCAwLjI3MTczLCAwLjM5MjMzOCwgMC42MzM2MzcsIDAuNzg0NTk2IiwgXAotICAgICAgICAgICIwLjA2ODA2MywgMC4wODYyMzUsIDAuMTg4ODMzLCAwLjI3OTQ3OCwgMC40MDAxMDIsIDAuNjQxNDQ1LCAwLjc5Mjc3MyIsIFwKLSAgICAgICAgICAiMC4wNzM1MDIsIDAuMDkxNjM3LCAwLjE5NDI1MSwgMC4yODQ3MTUsIDAuNDA1NjYyLCAwLjY0Njk3NSwgMC43OTgyODIiLCBcCi0gICAgICAgICAgIjAuMDc3Njk5LCAwLjA5NTg3OCwgMC4xOTg1MDUsIDAuMjg4OTU4LCAwLjQwOTYyMiwgMC42NTEwNjksIDAuODAxOTM4IiwgXAotICAgICAgICAgICIwLjA4MzMzOSwgMC4xMDEyMTksIDAuMjAzOTMxLCAwLjI5NDM4NSwgMC40MTUwOTIsIDAuNjU2NjU1LCAwLjgwNzI5NiIsIFwKLSAgICAgICAgICAiMC4wODcwNDgsIDAuMTA1MTU1LCAwLjIwNzkyNCwgMC4yOTgzODYsIDAuNDE5MDM0LCAwLjY2MDQ0NCwgMC44MTEzMDkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY3NjgxLCAwLjEwNDUzNywgMC4zMTU0NDksIDAuNTAwODM2LCAwLjc0OTM4NSwgMS4yNDc5NiwgMS41NTUzOSIsIFwKLSAgICAgICAgICAiMC4wNjc3NjUsIDAuMTA0NDcsIDAuMzE0NzQyLCAwLjUwMDk2NiwgMC43NDg4NDEsIDEuMjQ1MzEsIDEuNTU4NjgiLCBcCi0gICAgICAgICAgIjAuMDY4MzUyLCAwLjEwNDg4MiwgMC4zMTU0MDcsIDAuNTAwOTcsIDAuNzQ5MzYzLCAxLjI0NjAyLCAxLjU1NjczIiwgXAotICAgICAgICAgICIwLjA2OTA2NSwgMC4xMDUyNzcsIDAuMzE1MDMxLCAwLjUwMTgzMywgMC43NDk2MDIsIDEuMjQ1NjUsIDEuNTU2NjEiLCBcCi0gICAgICAgICAgIjAuMDY5NzcxLCAwLjEwNTU4LCAwLjMxNTYwNCwgMC41MDE4NiwgMC43NTA3MjgsIDEuMjQ1OTIsIDEuNTU2MzIiLCBcCi0gICAgICAgICAgIjAuMDcwNzU4LCAwLjEwNjQ2MiwgMC4zMTU2MDgsIDAuNTAxMjUsIDAuNzQ5NjYzLCAxLjI0NTY3LCAxLjU1ODYiLCBcCi0gICAgICAgICAgIjAuMDcxNTk0LCAwLjEwNzAyNywgMC4zMTUzNjgsIDAuNTAxODkzLCAwLjc1MDcwNSwgMS4yNDYzNiwgMS41NTY3OSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTkwNCwgMC4wMDE5LCAwLjAwMTg5MSwgMC4wMDE4ODgsIDAuMDAxODg3LCAwLjAwMTg4NiwgMC4wMDE4ODYiLCBcCi0gICAgICAgICAgIjAuMDAxODU3LCAwLjAwMTg1NiwgMC4wMDE4NTEsIDAuMDAxODQ5LCAwLjAwMTg0OCwgMC4wMDE4NDcsIDAuMDAxODQ3IiwgXAotICAgICAgICAgICIwLjAwMTg2MiwgMC4wMDE4NiwgMC4wMDE4NTMsIDAuMDAxODUxLCAwLjAwMTg1MSwgMC4wMDE4NDksIDAuMDAxODQ5IiwgXAotICAgICAgICAgICIwLjAwMTg5MywgMC4wMDE4OSwgMC4wMDE4ODMsIDAuMDAxODgxLCAwLjAwMTg3OSwgMC4wMDE4NzgsIDAuMDAxODc3IiwgXAotICAgICAgICAgICIwLjAwMTk0MywgMC4wMDE5NCwgMC4wMDE5MzIsIDAuMDAxOTI5LCAwLjAwMTkyNywgMC4wMDE5MjUsIDAuMDAxOTI1IiwgXAotICAgICAgICAgICIwLjAwMjA1MywgMC4wMDIwNDgsIDAuMDAyMDM5LCAwLjAwMjAzNiwgMC4wMDIwMzMsIDAuMDAyMDMxLCAwLjAwMjAzIiwgXAotICAgICAgICAgICIwLjAwMjE5NywgMC4wMDIxODIsIDAuMDAyMTYyLCAwLjAwMjE1NCwgMC4wMDIxNTEsIDAuMDAyMTQ3LCAwLjAwMjE0NyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzY2NCwgMC4wMDM2NywgMC4wMDM2NzcsIDAuMDAzNjc5LCAwLjAwMzY4LCAwLjAwMzY4LCAwLjAwMzY4MSIsIFwKLSAgICAgICAgICAiMC4wMDM2NiwgMC4wMDM2NjcsIDAuMDAzNjc4LCAwLjAwMzY4LCAwLjAwMzY4MSwgMC4wMDM2ODIsIDAuMDAzNjgyIiwgXAotICAgICAgICAgICIwLjAwMzcwMywgMC4wMDM3MDksIDAuMDAzNzE5LCAwLjAwMzcyMiwgMC4wMDM3MjMsIDAuMDAzNzI0LCAwLjAwMzcyNCIsIFwKLSAgICAgICAgICAiMC4wMDM3NzUsIDAuMDAzNzgsIDAuMDAzNzg4LCAwLjAwMzc5MSwgMC4wMDM3OTMsIDAuMDAzNzk0LCAwLjAwMzc5NCIsIFwKLSAgICAgICAgICAiMC4wMDM4NzQsIDAuMDAzODczLCAwLjAwMzg3NywgMC4wMDM4NzksIDAuMDAzODgsIDAuMDAzODgxLCAwLjAwMzg4MSIsIFwKLSAgICAgICAgICAiMC4wMDQwMjYsIDAuMDA0MDI2LCAwLjAwNDAzMSwgMC4wMDQwMzIsIDAuMDA0MDM0LCAwLjAwNDAzNSwgMC4wMDQwMzUiLCBcCi0gICAgICAgICAgIjAuMDA0MTc5LCAwLjAwNDE3MiwgMC4wMDQxNzMsIDAuMDA0MTc1LCAwLjAwNDE3NiwgMC4wMDQxNzcsIDAuMDA0MTc3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxOTEsIDAuMDAxOTA5LCAwLjAwMTkwNywgMC4wMDE5MDYsIDAuMDAxOTA1LCAwLjAwMTkwNCwgMC4wMDE5MDQiLCBcCi0gICAgICAgICAgIjAuMDAxODY2LCAwLjAwMTg2OCwgMC4wMDE4NjksIDAuMDAxODY5LCAwLjAwMTg3LCAwLjAwMTg2OCwgMC4wMDE4NjkiLCBcCi0gICAgICAgICAgIjAuMDAxODg3LCAwLjAwMTg4NywgMC4wMDE4ODYsIDAuMDAxODg1LCAwLjAwMTg4NSwgMC4wMDE4ODUsIDAuMDAxODg1IiwgXAotICAgICAgICAgICIwLjAwMTk0MSwgMC4wMDE5MzgsIDAuMDAxOTMyLCAwLjAwMTkzMywgMC4wMDE5MzIsIDAuMDAxOTMxLCAwLjAwMTkzIiwgXAotICAgICAgICAgICIwLjAwMiwgMC4wMDE5OTksIDAuMDAxOTkzLCAwLjAwMTk5MywgMC4wMDE5OTMsIDAuMDAxOTkyLCAwLjAwMTk5MSIsIFwKLSAgICAgICAgICAiMC4wMDIxMjksIDAuMDAyMTI3LCAwLjAwMjExNywgMC4wMDIxMTYsIDAuMDAyMTEyLCAwLjAwMjExMSwgMC4wMDIxMTEiLCBcCi0gICAgICAgICAgIjAuMDAyMjY5LCAwLjAwMjI2LCAwLjAwMjI0NSwgMC4wMDIyNDEsIDAuMDAyMjM5LCAwLjAwMjIzNywgMC4wMDIyMzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDMzNDgsIDAuMDAzMzU3LCAwLjAwMzM3LCAwLjAwMzM3MywgMC4wMDMzNzQsIDAuMDAzMzc2LCAwLjAwMzM3NiIsIFwKLSAgICAgICAgICAiMC4wMDMzMzUsIDAuMDAzMzQ3LCAwLjAwMzM2NSwgMC4wMDMzNjksIDAuMDAzMzcxLCAwLjAwMzM3MywgMC4wMDMzNzMiLCBcCi0gICAgICAgICAgIjAuMDAzMzcsIDAuMDAzMzgzLCAwLjAwMzQwNCwgMC4wMDM0MDksIDAuMDAzNDEyLCAwLjAwMzQxNCwgMC4wMDM0MTUiLCBcCi0gICAgICAgICAgIjAuMDAzNDM5LCAwLjAwMzQ1LCAwLjAwMzQ3LCAwLjAwMzQ3NiwgMC4wMDM0NzksIDAuMDAzNDgxLCAwLjAwMzQ4MiIsIFwKLSAgICAgICAgICAiMC4wMDM1MjUsIDAuMDAzNTMsIDAuMDAzNTUzLCAwLjAwMzU1OSwgMC4wMDM1NjMsIDAuMDAzNTY2LCAwLjAwMzU2NyIsIFwKLSAgICAgICAgICAiMC4wMDM2NzEsIDAuMDAzNjc1LCAwLjAwMzY5NywgMC4wMDM3MDMsIDAuMDAzNzE2LCAwLjAwMzcxOSwgMC4wMDM3MTIiLCBcCi0gICAgICAgICAgIjAuMDAzODExLCAwLjAwMzgyOSwgMC4wMDM4MzYsIDAuMDAzODU2LCAwLjAwMzg2MSwgMC4wMDM4NTIsIDAuMDAzODY2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxOTA5LCAwLjAwMTkxMiwgMC4wMDE5MTUsIDAuMDAxOTE3LCAwLjAwMTkxNiwgMC4wMDE5MTcsIDAuMDAxOTE3IiwgXAotICAgICAgICAgICIwLjAwMTg5NCwgMC4wMDE4OTcsIDAuMDAxOTA0LCAwLjAwMTkwNSwgMC4wMDE5MDUsIDAuMDAxOTA1LCAwLjAwMTkwNiIsIFwKLSAgICAgICAgICAiMC4wMDE5NDcsIDAuMDAxOTQ4LCAwLjAwMTk1MiwgMC4wMDE5NTMsIDAuMDAxOTU0LCAwLjAwMTk1NCwgMC4wMDE5NTQiLCBcCi0gICAgICAgICAgIjAuMDAyMDM4LCAwLjAwMjAzMywgMC4wMDIwMjcsIDAuMDAyMDI5LCAwLjAwMjAyOCwgMC4wMDIwMjcsIDAuMDAyMDI3IiwgXAotICAgICAgICAgICIwLjAwMjEwOSwgMC4wMDIxMDcsIDAuMDAyMTAxLCAwLjAwMjEwMiwgMC4wMDIxMDEsIDAuMDAyMTAxLCAwLjAwMjEwMSIsIFwKLSAgICAgICAgICAiMC4wMDIyNjEsIDAuMDAyMjYxLCAwLjAwMjI1MiwgMC4wMDIyNDksIDAuMDAyMjQ5LCAwLjAwMjI0NywgMC4wMDIyNDciLCBcCi0gICAgICAgICAgIjAuMDAyNDIzLCAwLjAwMjQxLCAwLjAwMjM5NiwgMC4wMDIzOTIsIDAuMDAyMzksIDAuMDAyMzg4LCAwLjAwMjM4NiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzAxOSwgMC4wMDMwMjgsIDAuMDAzMDQsIDAuMDAzMDQyLCAwLjAwMzA0MywgMC4wMDMwNDQsIDAuMDAzMDQ1IiwgXAotICAgICAgICAgICIwLjAwMzAwNSwgMC4wMDMwMTYsIDAuMDAzMDMyLCAwLjAwMzAzNSwgMC4wMDMwMzcsIDAuMDAzMDM5LCAwLjAwMzAzOSIsIFwKLSAgICAgICAgICAiMC4wMDMwMzgsIDAuMDAzMDUyLCAwLjAwMzA3MywgMC4wMDMwNzcsIDAuMDAzMDgsIDAuMDAzMDgyLCAwLjAwMzA4MyIsIFwKLSAgICAgICAgICAiMC4wMDMxMTgsIDAuMDAzMTI3LCAwLjAwMzEzOCwgMC4wMDMxNDgsIDAuMDAzMTUsIDAuMDAzMTUyLCAwLjAwMzE1IiwgXAotICAgICAgICAgICIwLjAwMzIwMywgMC4wMDMyMSwgMC4wMDMyMTksIDAuMDAzMjMsIDAuMDAzMjMzLCAwLjAwMzIzNSwgMC4wMDMyMyIsIFwKLSAgICAgICAgICAiMC4wMDMzNCwgMC4wMDMzNDksIDAuMDAzMzcxLCAwLjAwMzM2NSwgMC4wMDMzNjksIDAuMDAzMzg0LCAwLjAwMzM4NSIsIFwKLSAgICAgICAgICAiMC4wMDM0NjksIDAuMDAzNDg0LCAwLjAwMzQ5NCwgMC4wMDM1MDEsIDAuMDAzNTA1LCAwLjAwMzUwOSwgMC4wMDM1MSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogQU5EM1g4ICoKLSAqIC0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoQU5EM1g4KSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDEuMjEyODE7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTk2NjQ7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxOTY2NDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE5NjI0NjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDEwNDksIDAuMDAxMDQ4LCAwLjAwMTA0NywgMC4wMDEwNDcsIDAuMDAxMDQ3LCAwLjAwMTA0NywgMC4wMDEwNDciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDEwNSwgMC4wMDEwNSwgMC4wMDEwNSwgMC4wMDEwNTEsIDAuMDAxMDUxLCAwLjAwMTA1MSwgMC4wMDEwNTIiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTg0NzQyOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTg0NzQyOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTg0NTE1OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTA0OCwgMC4wMDEwNDgsIDAuMDAxMDQ3LCAwLjAwMTA0NywgMC4wMDEwNDcsIDAuMDAxMDQ3LCAwLjAwMTA0NyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTA0OSwgMC4wMDEwNSwgMC4wMDEwNTEsIDAuMDAxMDUxLCAwLjAwMTA1MSwgMC4wMDEwNTIsIDAuMDAxMDUyIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihDKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE2ODczNjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE2ODY5NTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE2ODczNjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA2NjEsIDAuMDAwNjYsIDAuMDAwNjYsIDAuMDAwNjU5LCAwLjAwMDY2LCAwLjAwMDY2LCAwLjAwMDY2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxMTkxLCAwLjAwMTE5MiwgMC4wMDExOTIsIDAuMDAxMTkyLCAwLjAwMTE5MiwgMC4wMDExOTIsIDAuMDAxMTkyIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDIuNjUxNDsKLSAgICBmdW5jdGlvbiA6ICIoKEEgQikgQykiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU1MTg2LCAwLjA5MTA4LCAwLjEyMDA4OSwgMC4xNDAwNDQsIDAuMTcxNjg3LCAwLjE5OTI5OCwgMC4yMzg3MDkiLCBcCi0gICAgICAgICAgIjAuMDYwMjMyLCAwLjA5NjI0OSwgMC4xMjUxOTQsIDAuMTQ1MjEzLCAwLjE3Njg1NSwgMC4yMDQ0NzcsIDAuMjQzODkiLCBcCi0gICAgICAgICAgIjAuMDY2MTkxLCAwLjEwMjE0OCwgMC4xMzEwODEsIDAuMTUxMDM2LCAwLjE4MjY4MSwgMC4yMTAyOTgsIDAuMjQ5NzEiLCBcCi0gICAgICAgICAgIjAuMDcxNzM0LCAwLjEwNzg2MiwgMC4xMzY4NjYsIDAuMTU2ODMxLCAwLjE4ODQ4MiwgMC4yMTYwNzksIDAuMjU1NDg0IiwgXAotICAgICAgICAgICIwLjA3NjY1NCwgMC4xMTMxMzEsIDAuMTQyMTc3LCAwLjE2MjE1NCwgMC4xOTM3ODUsIDAuMjIxMzkyLCAwLjI2MDc5NiIsIFwKLSAgICAgICAgICAiMC4wODM3MDksIDAuMTIwODQsIDAuMTUwMDUxLCAwLjE3MDAyNywgMC4yMDE3MywgMC4yMjkzMjcsIDAuMjY4NzM5IiwgXAotICAgICAgICAgICIwLjA4OTI1LCAwLjEyNjgxLCAwLjE1NjE5NiwgMC4xNzYyNjQsIDAuMjA3OTM4LCAwLjIzNTU2MSwgMC4yNzQ5NDgiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjU2OTYsIDAuMDgyMTkzLCAwLjEzNzYwNiwgMC4xNzc4MDksIDAuMjQyOCwgMC4yOTk3ODMsIDAuMzgyNzkiLCBcCi0gICAgICAgICAgIjAuMDI1NzI1LCAwLjA4MjE1LCAwLjEzNzUzNiwgMC4xNzc3NjYsIDAuMjQyNzcsIDAuMzAwMDc0LCAwLjM4Mjc3MyIsIFwKLSAgICAgICAgICAiMC4wMjU4NTcsIDAuMDgyMTkzLCAwLjEzNzU4OCwgMC4xNzc4MDIsIDAuMjQyODY4LCAwLjMwMDA4OSwgMC4zODI3NjEiLCBcCi0gICAgICAgICAgIjAuMDI2MzYxLCAwLjA4MjUwNiwgMC4xMzc4MDQsIDAuMTc3OTYyLCAwLjI0Mjg2OSwgMC4zMDAxNjEsIDAuMzgyNDgiLCBcCi0gICAgICAgICAgIjAuMDI3MjQ2LCAwLjA4MzEzNywgMC4xMzgyNDksIDAuMTc4MywgMC4yNDMxMTgsIDAuMzAwMTg0LCAwLjM4MjU1NSIsIFwKLSAgICAgICAgICAiMC4wMjgxNTgsIDAuMDg0MjQ5LCAwLjEzOTA3LCAwLjE3ODg2OSwgMC4yNDM2NTEsIDAuMzAwNzUxLCAwLjM4MzEyOSIsIFwKLSAgICAgICAgICAiMC4wMjkxNjksIDAuMDg1MjU2LCAwLjEzOTY3OCwgMC4xNzk1MywgMC4yNDQwOSwgMC4zMDEwOSwgMC4zODMzNzUiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzEzOCwgMC4wNjE5MjYsIDAuMDkwMjcyLCAwLjExMDQ4OSwgMC4xNDI3OCwgMC4xNzEwMzUsIDAuMjExNDExIiwgXAotICAgICAgICAgICIwLjAzOTY1NywgMC4wNzAxMTYsIDAuMDk4NTAxLCAwLjExODcxMywgMC4xNTEwMTYsIDAuMTc5Mjc1LCAwLjIxOTY0NSIsIFwKLSAgICAgICAgICAiMC4wNDkyMTcsIDAuMDc5NzA3LCAwLjEwODA5LCAwLjEyODI5NiwgMC4xNjA1OTgsIDAuMTg4ODUyLCAwLjIyOTIxMyIsIFwKLSAgICAgICAgICAiMC4wNTYzNTcsIDAuMDg3MjQ3LCAwLjExNTY1MiwgMC4xMzU4MzksIDAuMTY4MTQ1LCAwLjE5NjM5OCwgMC4yMzY3MzUiLCBcCi0gICAgICAgICAgIjAuMDYyMDI2LCAwLjA5MzQ2MiwgMC4xMjE4MDcsIDAuMTQxOTgsIDAuMTc0MjY5LCAwLjIwMjUwNywgMC4yNDI4NDgiLCBcCi0gICAgICAgICAgIjAuMDY5MjEyLCAwLjEwMTIxNSwgMC4xMjk2NDksIDAuMTQ5OTE1LCAwLjE4MjE4MiwgMC4yMTA0MywgMC4yNTA3NiIsIFwKLSAgICAgICAgICAiMC4wNzQ0NzMsIDAuMTA3MTI2LCAwLjEzNTUwMSwgMC4xNTU2NzcsIDAuMTg3OTY0LCAwLjIxNjE2LCAwLjI1NjQ3MiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxNzczNSwgMC4wNzM4MDEsIDAuMTMxNjkzLCAwLjE3MzM5MywgMC4yNDAyOSwgMC4yOTg2NzcsIDAuMzgyMTk0IiwgXAotICAgICAgICAgICIwLjAxNzgxOSwgMC4wNzM4MjEsIDAuMTMxNjk0LCAwLjE3MzA3NywgMC4yNDAyODcsIDAuMjk4NjM3LCAwLjM4MjkxNSIsIFwKLSAgICAgICAgICAiMC4wMTg3OSwgMC4wNzQwOTMsIDAuMTMxODQ3LCAwLjE3MzQ1MiwgMC4yNDAwNzUsIDAuMjk4OTMzLCAwLjM4MjMxNSIsIFwKLSAgICAgICAgICAiMC4wMjAzMDksIDAuMDc0NzgsIDAuMTMyMTQ3LCAwLjE3MzYyMywgMC4yNDA0MzcsIDAuMjk5MDI2LCAwLjM4Mjg5NSIsIFwKLSAgICAgICAgICAiMC4wMjE2NSwgMC4wNzUzNDksIDAuMTMyMzQ4LCAwLjE3MzgzNywgMC4yNDA1MjcsIDAuMjk4NzU4LCAwLjM4MjU5MSIsIFwKLSAgICAgICAgICAiMC4wMjM1MTEsIDAuMDc2Njk2LCAwLjEzMjg4OCwgMC4xNzQwMSwgMC4yNDA0ODksIDAuMjk4OTA1LCAwLjM4MjgzNiIsIFwKLSAgICAgICAgICAiMC4wMjUxMTksIDAuMDc3NTc0LCAwLjEzMzUxLCAwLjE3NDM0NCwgMC4yNDA2OTgsIDAuMjk5MTc2LCAwLjM4MjY1OSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1Mzc0LCAwLjA4OTYxNywgMC4xMTg2MzEsIDAuMTM4NTg4LCAwLjE3MDIyNywgMC4xOTc4NDIsIDAuMjM3MjUzIiwgXAotICAgICAgICAgICIwLjA1OTg1NywgMC4wOTU4NTEsIDAuMTI0ODUyLCAwLjE0NDgyLCAwLjE3NjQ4NiwgMC4yMDQxMDQsIDAuMjQzNTIiLCBcCi0gICAgICAgICAgIjAuMDY4MDUsIDAuMTAzOTY2LCAwLjEzMjkxNCwgMC4xNTI4NzIsIDAuMTg0NTQ0LCAwLjIxMjEzOCwgMC4yNTE1NyIsIFwKLSAgICAgICAgICAiMC4wNzU1MjIsIDAuMTExNTEsIDAuMTQwNDQyLCAwLjE2MDQwMiwgMC4xOTIwNjUsIDAuMjE5NjYzLCAwLjI1OTA4NCIsIFwKLSAgICAgICAgICAiMC4wODIxOTQsIDAuMTE4NjgxLCAwLjE0NzcyMSwgMC4xNjc3MjUsIDAuMTk5Mzc1LCAwLjIyNjk3NSwgMC4yNjYzNTQiLCBcCi0gICAgICAgICAgIjAuMDkxNTUzLCAwLjEyODYwMiwgMC4xNTc5MDgsIDAuMTc3OTIyLCAwLjIwOTU5NywgMC4yMzcyMTcsIDAuMjc2NiIsIFwKLSAgICAgICAgICAiMC4wOTg5MTksIDAuMTM2Njc5LCAwLjE2NTk4MiwgMC4xODYwNDIsIDAuMjE3NzIxLCAwLjI0NTMxOCwgMC4yODQ3MTkiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjU2MzMsIDAuMDgyMTk4LCAwLjEzNzYwOCwgMC4xNzc4MSwgMC4yNDI3OTcsIDAuMjk5OTM1LCAwLjM4Mjc5MiIsIFwKLSAgICAgICAgICAiMC4wMjU3MTMsIDAuMDgyMTAyLCAwLjEzNzU1MiwgMC4xNzc3NzIsIDAuMjQyNzc5LCAwLjMwMDA4NCwgMC4zODI3NDEiLCBcCi0gICAgICAgICAgIjAuMDI1NzEzLCAwLjA4MjE2OCwgMC4xMzc1NywgMC4xNzc3NzksIDAuMjQyNjcxLCAwLjMwMDA3NCwgMC4zODI3NDQiLCBcCi0gICAgICAgICAgIjAuMDI2NjI3LCAwLjA4MjczNCwgMC4xMzc5MTIsIDAuMTc4MDI2LCAwLjI0MjkyLCAwLjMwMDI2MywgMC4zODI3OTIiLCBcCi0gICAgICAgICAgIjAuMDI3Mzc2LCAwLjA4MzM5MywgMC4xMzgyOTIsIDAuMTc4Mjg3LCAwLjI0MzA4MSwgMC4zMDAzNzcsIDAuMzgyNjU4IiwgXAotICAgICAgICAgICIwLjAyOTA1MywgMC4wODQ3ODcsIDAuMTM5MzM2LCAwLjE3OTE2NywgMC4yNDM3NzMsIDAuMzAwODg3LCAwLjM4MjkzMyIsIFwKLSAgICAgICAgICAiMC4wMzAyNTMsIDAuMDg1NzA4LCAwLjEzOTk5MiwgMC4xNzk2NzcsIDAuMjQ0MDU2LCAwLjMwMTA1NiwgMC4zODMzOTciKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzA1MSwgMC4wNjA5NjMsIDAuMDg5MzExLCAwLjEwOTUxNCwgMC4xNDE3OTEsIDAuMTcwMDM1LCAwLjIxMDM4NSIsIFwKLSAgICAgICAgICAiMC4wMzg3NDksIDAuMDY5MTg0LCAwLjA5NzU0NCwgMC4xMTc3NCwgMC4xNTAwMzcsIDAuMTc4MzA4LCAwLjIxODYyMyIsIFwKLSAgICAgICAgICAiMC4wNDc5ODMsIDAuMDc4NDk5LCAwLjEwNjg1MywgMC4xMjcwNTYsIDAuMTU5MzQzLCAwLjE4NzU4OCwgMC4yMjc5NDMiLCBcCi0gICAgICAgICAgIjAuMDU0ODE1LCAwLjA4NTgxOCwgMC4xMTQxNjgsIDAuMTM0MzY4LCAwLjE2NjY0NiwgMC4xOTQ5MTEsIDAuMjM1MjQ4IiwgXAotICAgICAgICAgICIwLjA2MDEwNCwgMC4wOTE1MTUsIDAuMTE5ODc0LCAwLjE0MDA1MSwgMC4xNzIzMjcsIDAuMjAwNTY3LCAwLjI0MDg4MSIsIFwKLSAgICAgICAgICAiMC4wNjcwOTEsIDAuMDk5MjMxLCAwLjEyNzU2NiwgMC4xNDc4OTQsIDAuMTc5OTg0LCAwLjIwODIwOSwgMC4yNDg2OTQiLCBcCi0gICAgICAgICAgIjAuMDcxODk0LCAwLjEwNDc2NCwgMC4xMzMwODQsIDAuMTUzMjU0LCAwLjE4NTQ4NCwgMC4yMTM2ODUsIDAuMjU0MDQ3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE3NjE4LCAwLjA3MzY2NiwgMC4xMzE0NTUsIDAuMTczMjgxLCAwLjI0MDE1NywgMC4yOTg4NjksIDAuMzgyODEiLCBcCi0gICAgICAgICAgIjAuMDE3NjA2LCAwLjA3MzY4MywgMC4xMzE1NzEsIDAuMTczMjM0LCAwLjIzOTkzMywgMC4yOTgzNTQsIDAuMzgyNzE2IiwgXAotICAgICAgICAgICIwLjAxODgwNiwgMC4wNzQwMjYsIDAuMTMxNzI4LCAwLjE3MzM4LCAwLjI0MDIzNiwgMC4yOTg4NjEsIDAuMzgyMjQ1IiwgXAotICAgICAgICAgICIwLjAyMDMzMiwgMC4wNzQ2OTUsIDAuMTMyMDQ4LCAwLjE3MzI4MSwgMC4yNDAwODEsIDAuMjk4NDc0LCAwLjM4MjgxNSIsIFwKLSAgICAgICAgICAiMC4wMjE4MzIsIDAuMDc1MzY3LCAwLjEzMjM3LCAwLjE3Mzc5NCwgMC4yNDAzOTgsIDAuMjk4OTEzLCAwLjM4MjQ0OSIsIFwKLSAgICAgICAgICAiMC4wMjM2NTMsIDAuMDc2NzY3LCAwLjEzMjg3NSwgMC4xNzQwNTgsIDAuMjQwNDc0LCAwLjI5ODgyOSwgMC4zODI0NTQiLCBcCi0gICAgICAgICAgIjAuMDI1MTExLCAwLjA3NzU2OSwgMC4xMzM1MjUsIDAuMTc0Mjc4LCAwLjI0MDY3MiwgMC4yOTg5NjcsIDAuMzgyNjA2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDUwODMsIDAuMDg2Nzk0LCAwLjExNTgwOCwgMC4xMzU3ODUsIDAuMTY3NDY2LCAwLjE5NTA3LCAwLjIzNDQ0NyIsIFwKLSAgICAgICAgICAiMC4wNTc4MTIsIDAuMDkzODIsIDAuMTIyODA2LCAwLjE0MjgwOCwgMC4xNzQ0NjYsIDAuMjAyMDcyLCAwLjI0MTQ4MSIsIFwKLSAgICAgICAgICAiMC4wNjczNjEsIDAuMTAzMjI1LCAwLjEzMjE2MiwgMC4xNTIxMjMsIDAuMTgzNzg0LCAwLjIxMTM3NywgMC4yNTA4MTIiLCBcCi0gICAgICAgICAgIjAuMDc2Mjc3LCAwLjExMjMwNiwgMC4xNDEyNzksIDAuMTYxMjI4LCAwLjE5Mjg3NiwgMC4yMjA0OTUsIDAuMjU5OTA4IiwgXAotICAgICAgICAgICIwLjA4NDIyLCAwLjEyMDU5OSwgMC4xNDk2MjYsIDAuMTY5NjIsIDAuMjAxMjY3LCAwLjIyODg2NywgMC4yNjgyNzciLCBcCi0gICAgICAgICAgIjAuMDk1MTY3LCAwLjEzMjM2MiwgMC4xNjE0OTIsIDAuMTgxNjcsIDAuMjEzMzAyLCAwLjI0MDg5MywgMC4yODAyODMiLCBcCi0gICAgICAgICAgIjAuMTAzMDY3LCAwLjE0MDk0OCwgMC4xNzAwOTcsIDAuMTkwMjc0LCAwLjIyMjEyNywgMC4yNDk0OTcsIDAuMjg4ODg1Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDI1NzMsIDAuMDgyMTY3LCAwLjEzNzU4MywgMC4xNzc3ODgsIDAuMjQyNDk0LCAwLjMwMDI0NywgMC4zODI3ODQiLCBcCi0gICAgICAgICAgIjAuMDI1Njc5LCAwLjA4MjAzOSwgMC4xMzc1NDIsIDAuMTc3NzMyLCAwLjI0MjY2MSwgMC4zMDAwNzQsIDAuMzgyMTU5IiwgXAotICAgICAgICAgICIwLjAyNTczOSwgMC4wODIyMTUsIDAuMTM3NjMzLCAwLjE3NzgxMiwgMC4yNDI3MDQsIDAuMzAwMDkxLCAwLjM4MjcyNyIsIFwKLSAgICAgICAgICAiMC4wMjY3MTksIDAuMDgyNzU4LCAwLjEzNzk1NywgMC4xNzgwNjIsIDAuMjQyOTUyLCAwLjMwMDE4LCAwLjM4MjgwNyIsIFwKLSAgICAgICAgICAiMC4wMjgyNjYsIDAuMDgzNDg5LCAwLjEzODQwMiwgMC4xNzgzOTEsIDAuMjQzMTUyLCAwLjMwMDM4NCwgMC4zODI5MDciLCBcCi0gICAgICAgICAgIjAuMDMwMjI0LCAwLjA4NTAxOCwgMC4xMzk0MDMsIDAuMTc5MjQ0LCAwLjI0Mzc0OSwgMC4zMDA4MzMsIDAuMzgzMTc1IiwgXAotICAgICAgICAgICIwLjAzMjAwNiwgMC4wODY2MDksIDAuMTQwMjkxLCAwLjE3OTk1NCwgMC4yNDQ0MTIsIDAuMzAxMTg4LCAwLjM4MzE4OCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyOTMxNSwgMC4wNTk3NDEsIDAuMDg4MDgzLCAwLjEwODI3LCAwLjE0MDU1LCAwLjE2ODc4MiwgMC4yMDkxMTkiLCBcCi0gICAgICAgICAgIjAuMDM3NTE2LCAwLjA2Nzg4MywgMC4wOTYyMTgsIDAuMTE2NDEsIDAuMTQ4NjkzLCAwLjE3Njk2MSwgMC4yMTcyODciLCBcCi0gICAgICAgICAgIjAuMDQ2MzQ1LCAwLjA3NzAyOSwgMC4xMDUzMDksIDAuMTI1NDk1LCAwLjE1Nzc4MSwgMC4xODU4NjYsIDAuMjI2MjI0IiwgXAotICAgICAgICAgICIwLjA1Mjg4MywgMC4wODM4NDMsIDAuMTEyMTcxLCAwLjEzMjMzNSwgMC4xNjQ2MDgsIDAuMTkyODI0LCAwLjIzMzEzOSIsIFwKLSAgICAgICAgICAiMC4wNTc5NTMsIDAuMDg5MzM0LCAwLjExNzgyNCwgMC4xMzgwMjQsIDAuMTcwMDkyLCAwLjE5ODMwMiwgMC4yMzg2ODciLCBcCi0gICAgICAgICAgIjAuMDY0MjE0LCAwLjA5NjMxOSwgMC4xMjQ3NTcsIDAuMTQ0ODUsIDAuMTc3MTIzLCAwLjIwNTMyNCwgMC4yNDU1ODkiLCBcCi0gICAgICAgICAgIjAuMDY4NjE3LCAwLjEwMTUwOSwgMC4xMjk3MTYsIDAuMTQ5ODM0LCAwLjE4MjA4MiwgMC4yMTAzMDEsIDAuMjUwNTQ0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE3NDc4LCAwLjA3MzU5OSwgMC4xMzE1MTYsIDAuMTczMjA2LCAwLjIzOTg2MywgMC4yOTg4MzYsIDAuMzgyNzk5IiwgXAotICAgICAgICAgICIwLjAxNzU3MSwgMC4wNzM2NSwgMC4xMzE1MDEsIDAuMTczMjEzLCAwLjI0MDE0MSwgMC4yOTgzNzMsIDAuMzgyODQiLCBcCi0gICAgICAgICAgIjAuMDE4OTU0LCAwLjA3NDAzNCwgMC4xMzE2OTYsIDAuMTczMzM0LCAwLjI0MDI0MiwgMC4yOTg1MTcsIDAuMzgyMDc4IiwgXAotICAgICAgICAgICIwLjAyMDQ0NSwgMC4wNzQ3NTgsIDAuMTMyMDg3LCAwLjE3MzU1MywgMC4yNDAzMSwgMC4yOTg5OTcsIDAuMzgyODQiLCBcCi0gICAgICAgICAgIjAuMDIxOTE2LCAwLjA3NTYxMiwgMC4xMzIzNjYsIDAuMTczODU3LCAwLjI0MDQ5NSwgMC4yOTkwNDIsIDAuMzgyMjkzIiwgXAotICAgICAgICAgICIwLjAyMzgsIDAuMDc2OTQ1LCAwLjEzMzAxNiwgMC4xNzQxMywgMC4yNDA1NzksIDAuMjk4ODY0LCAwLjM4MzAzIiwgXAotICAgICAgICAgICIwLjAyNTM5MSwgMC4wNzc3NSwgMC4xMzM5MjgsIDAuMTc0NDU3LCAwLjI0MDYwNiwgMC4yOTkwNDIsIDAuMzgzMDI0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTE1NDEsIDAuMDExNDAzLCAwLjAxMTQzNCwgMC4wMTE0NDIsIDAuMDExNDQ5LCAwLjAxMTQzOCwgMC4wMTE0NDMiLCBcCi0gICAgICAgICAgIjAuMDExMzUzLCAwLjAxMTIwMSwgMC4wMTEyNDYsIDAuMDExMjY3LCAwLjAxMTI4NCwgMC4wMTEyOTQsIDAuMDExMzAyIiwgXAotICAgICAgICAgICIwLjAxMTQ0NiwgMC4wMTEyMDUsIDAuMDExMjM4LCAwLjAxMTI1MywgMC4wMTEyNjgsIDAuMDExMjc1LCAwLjAxMTI4MyIsIFwKLSAgICAgICAgICAiMC4wMTE2NTIsIDAuMDExMjcsIDAuMDExMjkxLCAwLjAxMTMwNywgMC4wMTEzMiwgMC4wMTEzMjMsIDAuMDExMzM0IiwgXAotICAgICAgICAgICIwLjAxMjAwOSwgMC4wMTE0NDMsIDAuMDExNDM2LCAwLjAxMTQ0LCAwLjAxMTQ0NiwgMC4wMTE0NDgsIDAuMDExNDU2IiwgXAotICAgICAgICAgICIwLjAxMjIwOCwgMC4wMTE2NzMsIDAuMDExNzY1LCAwLjAxMTc2NSwgMC4wMTE3NDksIDAuMDExNzMyLCAwLjAxMTczOCIsIFwKLSAgICAgICAgICAiMC4wMTI2OCwgMC4wMTIxMzQsIDAuMDEyMDc0LCAwLjAxMjA0NiwgMC4wMTIwMjMsIDAuMDEyMDMsIDAuMDEyMDI3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTU5NjYsIDAuMDE2Mzg5LCAwLjAxNjQ4OCwgMC4wMTY1MiwgMC4wMTY1NTEsIDAuMDE2NTY3LCAwLjAxNjU4MiIsIFwKLSAgICAgICAgICAiMC4wMTU5NjksIDAuMDE2MzE3LCAwLjAxNjQzMiwgMC4wMTY0NzMsIDAuMDE2NTEyLCAwLjAxNjUzMiwgMC4wMTY1NTIiLCBcCi0gICAgICAgICAgIjAuMDE2MTg0LCAwLjAxNjM0LCAwLjAxNjQ2NSwgMC4wMTY1MDMsIDAuMDE2NTUxLCAwLjAxNjU3OCwgMC4wMTY2MDMiLCBcCi0gICAgICAgICAgIjAuMDE2NDQ4LCAwLjAxNjUyNCwgMC4wMTY2MTgsIDAuMDE2NjYyLCAwLjAxNjcwNywgMC4wMTY3MzMsIDAuMDE2NzU4IiwgXAotICAgICAgICAgICIwLjAxNjkxNywgMC4wMTY3NjQsIDAuMDE2ODI1LCAwLjAxNjg2MywgMC4wMTY5MDUsIDAuMDE2OTI5LCAwLjAxNjk1MyIsIFwKLSAgICAgICAgICAiMC4wMTc0MjIsIDAuMDE3MTE3LCAwLjAxNzE5MiwgMC4wMTcyMTksIDAuMDE3MjYzLCAwLjAxNzI5LCAwLjAxNzMxOCIsIFwKLSAgICAgICAgICAiMC4wMTgzNjYsIDAuMDE3NjkyLCAwLjAxNzY2MywgMC4wMTc2NywgMC4wMTc2ODcsIDAuMDE3Njk1LCAwLjAxNzcxMiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDExNTM4LCAwLjAxMTQyMywgMC4wMTE0NTUsIDAuMDExNDY1LCAwLjAxMTQ2MywgMC4wMTE0NjYsIDAuMDExNDg0IiwgXAotICAgICAgICAgICIwLjAxMTM1OSwgMC4wMTEyMTcsIDAuMDExMjY0LCAwLjAxMTI4NywgMC4wMTEzMDMsIDAuMDExMzE2LCAwLjAxMTMzMSIsIFwKLSAgICAgICAgICAiMC4wMTE0NzUsIDAuMDExMjI4LCAwLjAxMTI3MSwgMC4wMTEyOTEsIDAuMDExMzExLCAwLjAxMTMyMiwgMC4wMTEzMzMiLCBcCi0gICAgICAgICAgIjAuMDExNzA5LCAwLjAxMTQyOCwgMC4wMTE0MiwgMC4wMTE0MjUsIDAuMDExNDMzLCAwLjAxMTQzOCwgMC4wMTE0NDMiLCBcCi0gICAgICAgICAgIjAuMDEyMDIzLCAwLjAxMTc0NCwgMC4wMTE2NjMsIDAuMDExNjQ5LCAwLjAxMTYyNywgMC4wMTE2MjEsIDAuMDExNjE4IiwgXAotICAgICAgICAgICIwLjAxMjU1OCwgMC4wMTIwNTMsIDAuMDExOTcsIDAuMDExOTQ4LCAwLjAxMTkyNSwgMC4wMTE5MTUsIDAuMDExOTE5IiwgXAotICAgICAgICAgICIwLjAxMzIzNywgMC4wMTIzMSwgMC4wMTIyNDMsIDAuMDEyMjE4LCAwLjAxMjE5NywgMC4wMTIxOTQsIDAuMDEyMTk4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTUwNDEsIDAuMDE1NTMsIDAuMDE1NjM4LCAwLjAxNTY3MywgMC4wMTU3MDYsIDAuMDE1NzIzLCAwLjAxNTczOSIsIFwKLSAgICAgICAgICAiMC4wMTQ5NiwgMC4wMTU0MTMsIDAuMDE1NTUsIDAuMDE1NTk4LCAwLjAxNTY0MywgMC4wMTU2NjYsIDAuMDE1Njg5IiwgXAotICAgICAgICAgICIwLjAxNTIyMiwgMC4wMTU0NDQsIDAuMDE1NTgxLCAwLjAxNTYzMywgMC4wMTU2ODUsIDAuMDE1NzE0LCAwLjAxNTc0MSIsIFwKLSAgICAgICAgICAiMC4wMTU1MzYsIDAuMDE1NTk0LCAwLjAxNTcyLCAwLjAxNTc3LCAwLjAxNTgyMywgMC4wMTU4NTIsIDAuMDE1ODc3IiwgXAotICAgICAgICAgICIwLjAxNjAwMSwgMC4wMTU4NTMsIDAuMDE1OTMzLCAwLjAxNTk3NSwgMC4wMTYwMjEsIDAuMDE2MDQ5LCAwLjAxNjA3NiIsIFwKLSAgICAgICAgICAiMC4wMTYzOTIsIDAuMDE2Mjc4LCAwLjAxNjMxMiwgMC4wMTYyOTIsIDAuMDE2Mzc2LCAwLjAxNjQwMSwgMC4wMTY0MTQiLCBcCi0gICAgICAgICAgIjAuMDE2OTEyLCAwLjAxNjU2NywgMC4wMTY2MDgsIDAuMDE2NjQ1LCAwLjAxNjcwOCwgMC4wMTY3MzUsIDAuMDE2NzU4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTE1MTUsIDAuMDExNDA0LCAwLjAxMTQ0NCwgMC4wMTE0NTksIDAuMDExNDc0LCAwLjAxMTQ2NSwgMC4wMTE1MDYiLCBcCi0gICAgICAgICAgIjAuMDExMzg3LCAwLjAxMTI0NCwgMC4wMTEzMDEsIDAuMDExMzI4LCAwLjAxMTM1NCwgMC4wMTEzNjYsIDAuMDExMzgyIiwgXAotICAgICAgICAgICIwLjAxMTYwMSwgMC4wMTEzNjQsIDAuMDExMzk4LCAwLjAxMTQxOCwgMC4wMTE0MzksIDAuMDExNDUxLCAwLjAxMTQ2MyIsIFwKLSAgICAgICAgICAiMC4wMTIwNjQsIDAuMDExNjM3LCAwLjAxMTYzMSwgMC4wMTE2NDQsIDAuMDExNjU5LCAwLjAxMTY2NiwgMC4wMTE2ODciLCBcCi0gICAgICAgICAgIjAuMDEyNDczLCAwLjAxMTg5NywgMC4wMTE4OTEsIDAuMDExODk2LCAwLjAxMTkxNCwgMC4wMTE5MjIsIDAuMDExOTQyIiwgXAotICAgICAgICAgICIwLjAxMzE0NCwgMC4wMTIyODcsIDAuMDEyMjI4LCAwLjAxMjIyOCwgMC4wMTIyMzYsIDAuMDEyMjM1LCAwLjAxMjIzOSIsIFwKLSAgICAgICAgICAiMC4wMTQwNjQsIDAuMDEyOTEyLCAwLjAxMjgyOSwgMC4wMTI3OTUsIDAuMDEyNzc3LCAwLjAxMjc2NCwgMC4wMTI3NTIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxNDAzNCwgMC4wMTQ1MzIsIDAuMDE0NjM2LCAwLjAxNDY3LCAwLjAxNDcwMSwgMC4wMTQ3MTgsIDAuMDE0NzMyIiwgXAotICAgICAgICAgICIwLjAxMzk5OSwgMC4wMTQ0MzMsIDAuMDE0NTU5LCAwLjAxNDYwMiwgMC4wMTQ2NDIsIDAuMDE0NjYzLCAwLjAxNDY4MyIsIFwKLSAgICAgICAgICAiMC4wMTQyMDgsIDAuMDE0NDQ5LCAwLjAxNDU4MSwgMC4wMTQ2MzEsIDAuMDE0NjgsIDAuMDE0NzA5LCAwLjAxNDczMyIsIFwKLSAgICAgICAgICAiMC4wMTQ1NTksIDAuMDE0NTY3LCAwLjAxNDY5OCwgMC4wMTQ3NSwgMC4wMTQ4MDMsIDAuMDE0ODI5LCAwLjAxNDg1OSIsIFwKLSAgICAgICAgICAiMC4wMTUwNzQsIDAuMDE0ODE2LCAwLjAxNDg3NSwgMC4wMTQ5MjgsIDAuMDE1MDA0LCAwLjAxNTAzMSwgMC4wMTUwMzUiLCBcCi0gICAgICAgICAgIjAuMDE1MzAzLCAwLjAxNTMxMywgMC4wMTUzMzYsIDAuMDE1MzU2LCAwLjAxNTM1OSwgMC4wMTUzODEsIDAuMDE1NDAyIiwgXAotICAgICAgICAgICIwLjAxNTkyNiwgMC4wMTU1ODYsIDAuMDE1NzEzLCAwLjAxNTczMywgMC4wMTU3MjMsIDAuMDE1NzY5LCAwLjAxNTc1NyIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogQU5EM1hMICoKLSAqIC0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoQU5EM1hMKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMjE5MjU0OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2NjAxNjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2NjAxNjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2NTk1MzM7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjk3LCAwLjAwMDI5NiwgMC4wMDAyOTYsIDAuMDAwMjk2LCAwLjAwMDI5NiwgMC4wMDAyOTYsIDAuMDAwMjk2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjk3LCAwLjAwMDI5NywgMC4wMDAyOTcsIDAuMDAwMjk3LCAwLjAwMDI5NywgMC4wMDAyOTcsIDAuMDAwMjk3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2ODA0NzE7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjgwNDcxOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDY3OTYxODsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyOTYsIDAuMDAwMjk2LCAwLjAwMDI5NiwgMC4wMDAyOTYsIDAuMDAwMjk2LCAwLjAwMDI5NiwgMC4wMDAyOTYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyOTcsIDAuMDAwMjk3LCAwLjAwMDI5OCwgMC4wMDAyOTcsIDAuMDAwMjk3LCAwLjAwMDI5NywgMC4wMDAyOTciKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEMpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY4NzM1MjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2ODczNTI7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjg3Mjc4OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDE1OSwgMC4wMDAxNTksIDAuMDAwMTU5LCAwLjAwMDE1OCwgMC4wMDAxNTksIDAuMDAwMTU5LCAwLjAwMDE1OSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDMzNywgMC4wMDAzMzgsIDAuMDAwMzM3LCAwLjAwMDMzNywgMC4wMDAzMzgsIDAuMDAwMzM4LCAwLjAwMDMzOCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjIwNDE4OwotICAgIGZ1bmN0aW9uIDogIigoQSBCKSBDKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk0NzI0LCAwLjEwNTI4MSwgMC4xOTk5OTksIDAuMzU3ODQxLCAwLjUxNTc0NywgMC44ODQ1NCwgMS4wOTUxNCIsIFwKLSAgICAgICAgICAiMC4wOTk1ODksIDAuMTEwMTU5LCAwLjIwNDg2NywgMC4zNjI3MTEsIDAuNTIwOTUsIDAuODg5Mzk4LCAxLjEwMDI5IiwgXAotICAgICAgICAgICIwLjEwNDk1NSwgMC4xMTU1MDgsIDAuMjEwMjM1LCAwLjM2ODA3OCwgMC41MjU5NzgsIDAuODk0NDA4LCAxLjEwNTAzIiwgXAotICAgICAgICAgICIwLjEwOTY4NCwgMC4xMjAyNiwgMC4yMTUwMDYsIDAuMzcyODMyLCAwLjUzMDcxMSwgMC44OTkzMjksIDEuMTEwMjIiLCBcCi0gICAgICAgICAgIjAuMTEzOTc0LCAwLjEyNDU2NiwgMC4yMTkyNjUsIDAuMzc3MDg0LCAwLjUzNTA1MSwgMC45MDM0NTUsIDEuMTE0MDkiLCBcCi0gICAgICAgICAgIjAuMTE5ODEzLCAwLjEzMDQ1MywgMC4yMjUxODYsIDAuMzgzMDg2LCAwLjU0MTAzNSwgMC45MDk2NjgsIDEuMTE5OTEiLCBcCi0gICAgICAgICAgIjAuMTI0OTAzLCAwLjEzNTUyOSwgMC4yMzAzMDQsIDAuMzg4MjExLCAwLjU0NjE4MiwgMC45MTQ4NDEsIDEuMTI1NDEiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTE5NzQsIDAuMTQxMzE4LCAwLjMzOTEzMiwgMC42NzEzNjIsIDEuMDAyMTcsIDEuNzc3NSwgMi4yMjAzNSIsIFwKLSAgICAgICAgICAiMC4xMTk3MDcsIDAuMTQxMzI1LCAwLjMzOTA2NSwgMC42NzA4NzIsIDEuMDAyMzksIDEuNzc3NSwgMi4yMjExMyIsIFwKLSAgICAgICAgICAiMC4xMTk4NTcsIDAuMTQxNDI3LCAwLjMzOTExMiwgMC42NzEyODUsIDEuMDAzMjksIDEuNzc2NTYsIDIuMjIwMTUiLCBcCi0gICAgICAgICAgIjAuMTIwMTg2LCAwLjE0MTc5NywgMC4zMzg0OTMsIDAuNjcxMjk5LCAxLjAwMzQ1LCAxLjc3NzM4LCAyLjIyMDI1IiwgXAotICAgICAgICAgICIwLjEyMDcxOSwgMC4xNDIxOTEsIDAuMzM5MTIzLCAwLjY3MTI2MywgMS4wMDIwNSwgMS43NzY1OCwgMi4yMjAxNiIsIFwKLSAgICAgICAgICAiMC4xMjE0MywgMC4xNDI3ODIsIDAuMzM5MDU5LCAwLjY3MDEwNiwgMS4wMDIzNywgMS43Nzc1LCAyLjIxOTEyIiwgXAotICAgICAgICAgICIwLjEyMjEzNywgMC4xNDMzMDUsIDAuMzM5Mjg4LCAwLjY3MDI0NCwgMS4wMDI0MiwgMS43Nzc4LCAyLjIyMDQiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDcwNjg0LCAwLjA4MDM1MiwgMC4xNjcyNzMsIDAuMzExOTg1LCAwLjQ1NjY2NiwgMC43OTQyNiwgMC45ODcyMzciLCBcCi0gICAgICAgICAgIjAuMDc4NjM2LCAwLjA4ODMwOSwgMC4xNzUyMzEsIDAuMzE5OTM4LCAwLjQ2NDYzNywgMC44MDIyMzMsIDAuOTk1MTI4IiwgXAotICAgICAgICAgICIwLjA4NjUyMSwgMC4wOTYxODMsIDAuMTgzMDg1LCAwLjMyNzgyNCwgMC40NzI1MDMsIDAuODEwMDk5LCAxLjAwMyIsIFwKLSAgICAgICAgICAiMC4wOTIxOTQsIDAuMTAxODQ2LCAwLjE4ODczMywgMC4zMzM0ODgsIDAuNDc4MTYzLCAwLjgxNTc1OSwgMS4wMDg2NSIsIFwKLSAgICAgICAgICAiMC4wOTY2NzksIDAuMTA2MzY4LCAwLjE5MzE5LCAwLjMzNzk0MSwgMC40ODI2NCwgMC44MjAyODgsIDEuMDEzMTIiLCBcCi0gICAgICAgICAgIjAuMTAyNjkxLCAwLjExMjM3NCwgMC4xOTkzMDksIDAuMzQ0MDI3LCAwLjQ4ODc1NCwgMC44MjYzNjIsIDEuMDE5MyIsIFwKLSAgICAgICAgICAiMC4xMDY5NDQsIDAuMTE2NjQ3LCAwLjIwMzYyNSwgMC4zNDgzNTgsIDAuNDkzMDMsIDAuODMwNjU2LCAxLjAyMzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTA0Nzc2LCAwLjEyNDQ5OCwgMC4zMDI1OTQsIDAuNTk5MzI3LCAwLjg5NzMzNCwgMS41OTEyOSwgMS45ODQ1MiIsIFwKLSAgICAgICAgICAiMC4xMDQ4MDYsIDAuMTI0NDk4LCAwLjMwMjYwMiwgMC42MDAwMDQsIDAuODk3NDI5LCAxLjU5MTQzLCAxLjk4Nzk0IiwgXAotICAgICAgICAgICIwLjEwNTA0MSwgMC4xMjQ2NTUsIDAuMzAyMjkzLCAwLjU5OTA5OCwgMC44OTc0MTIsIDEuNTkxNDIsIDEuOTg3OTgiLCBcCi0gICAgICAgICAgIjAuMTA1MjcyLCAwLjEyNDg4OCwgMC4zMDIzMDUsIDAuNTk5OTI2LCAwLjg5NzQ0MSwgMS41OTE0OSwgMS45ODgwMSIsIFwKLSAgICAgICAgICAiMC4xMDU1NiwgMC4xMjUwMDUsIDAuMzAyNjQyLCAwLjU5OTg1NSwgMC44OTcyNjMsIDEuNTkxMzYsIDEuOTg4MDgiLCBcCi0gICAgICAgICAgIjAuMTA2MTA5LCAwLjEyNTI4OCwgMC4zMDIzODgsIDAuNTk5MzQ0LCAwLjg5NzA2OSwgMS41ODg4OCwgMS45ODc2OSIsIFwKLSAgICAgICAgICAiMC4xMDY1MzUsIDAuMTI1ODksIDAuMzAyNTkxLCAwLjU5OTIxMSwgMC44OTYzODksIDEuNTkwODksIDEuOTg3NiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTMwMzEsIDAuMTAzNTk5LCAwLjE5ODMyOCwgMC4zNTYxNzcsIDAuNTE0Mzk0LCAwLjg4MjkwOSwgMS4wOTI4MiIsIFwKLSAgICAgICAgICAiMC4wOTg4ODUsIDAuMTA5NDQ0LCAwLjIwNDE4NSwgMC4zNjIwMzcsIDAuNTE5OTUyLCAwLjg4ODQwMywgMS4wOTkxMSIsIFwKLSAgICAgICAgICAiMC4xMDYxNDIsIDAuMTE2NzA4LCAwLjIxMTQzMSwgMC4zNjkzOTUsIDAuNTI3MTk0LCAwLjg5NTU0MywgMS4xMDYxIiwgXAotICAgICAgICAgICIwLjExMjYwOCwgMC4xMjMxNjIsIDAuMjE3ODU2LCAwLjM3NTcwOCwgMC41MzQwNzMsIDAuOTAyMzU5LCAxLjExMzkyIiwgXAotICAgICAgICAgICIwLjExODQ5MiwgMC4xMjkwOTIsIDAuMjIzNzg2LCAwLjM4MTY5OSwgMC41Mzk5ODUsIDAuOTA4MjU2LCAxLjExODc5IiwgXAotICAgICAgICAgICIwLjEyNjE0NCwgMC4xMzY3MzYsIDAuMjMxNTIxLCAwLjM4OTMxNiwgMC41NDcxNzksIDAuOTE2MTMzLCAxLjEyNjUzIiwgXAotICAgICAgICAgICIwLjEzMjU2MiwgMC4xNDMxNTYsIDAuMjM3OTUzLCAwLjM5NTczMSwgMC41NTM3MTgsIDAuOTIyMDY0LCAxLjEzMjkzIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExOTcyNiwgMC4xNDEzMjMsIDAuMzM5MTMsIDAuNjcxMzYsIDEuMDAyNDIsIDEuNzc3NDksIDIuMjIwNzIiLCBcCi0gICAgICAgICAgIjAuMTE5Njk3LCAwLjE0MTI2NiwgMC4zMzkwODIsIDAuNjcxMzQ2LCAxLjAwMzMyLCAxLjc3NjUyLCAyLjIyMDIiLCBcCi0gICAgICAgICAgIjAuMTE5OTI0LCAwLjE0MTUwNCwgMC4zMzg2MjksIDAuNjY5OTMxLCAxLjAwMjE2LCAxLjc3Njg0LCAyLjIyMjkzIiwgXAotICAgICAgICAgICIwLjEyMDM3MiwgMC4xNDE5MTgsIDAuMzM4NjExLCAwLjY3MTMwMywgMS4wMDI2NywgMS43Nzc1LCAyLjIyMDc3IiwgXAotICAgICAgICAgICIwLjEyMDgzNCwgMC4xNDIzMDYsIDAuMzM5MzIsIDAuNjcwMDM2LCAxLjAwMjI0LCAxLjc3NzQ4LCAyLjIyMDMzIiwgXAotICAgICAgICAgICIwLjEyMTcxNiwgMC4xNDI5NzYsIDAuMzM5MTQsIDAuNjcxMzY3LCAxLjAwMzkxLCAxLjc3NzM5LCAyLjIyMDgxIiwgXAotICAgICAgICAgICIwLjEyMjI5NywgMC4xNDM0NDQsIDAuMzM5MjI0LCAwLjY3MTI3NCwgMS4wMDE5NywgMS43NzY2OSwgMi4yMjAzMiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjk0NTgsIDAuMDc5MTE0LCAwLjE2NTk5OCwgMC4zMTA2NzQsIDAuNDU1Mzc3LCAwLjc5MjkxOCwgMC45ODU4MzUiLCBcCi0gICAgICAgICAgIjAuMDc3MjY1LCAwLjA4NjkzLCAwLjE3MzgwNywgMC4zMTg1MiwgMC40NjMxODIsIDAuODAwNzc0LCAwLjk5MzgxIiwgXAotICAgICAgICAgICIwLjA4NDY0NSwgMC4wOTQzMDYsIDAuMTgxMTc0LCAwLjMyNTg4LCAwLjQ3MDYwMywgMC44MDgxMywgMS4wMDEwMyIsIFwKLSAgICAgICAgICAiMC4wODk5NjYsIDAuMDk5NjIsIDAuMTg2NDg4LCAwLjMzMTIyNiwgMC40NzU4NjQsIDAuODEzNDcxLCAxLjAwNjM3IiwgXAotICAgICAgICAgICIwLjA5Mzk3MSwgMC4xMDM4NTUsIDAuMTkwNzI0LCAwLjMzNTE3OSwgMC40ODAxMDQsIDAuODE3NzMzLCAxLjAxMDM3IiwgXAotICAgICAgICAgICIwLjA5OTM1NSwgMC4xMDkwMzMsIDAuMTk1OTE4LCAwLjM0MDYzMywgMC40ODUzNDIsIDAuODIyODcxLCAxLjAxNTg1IiwgXAotICAgICAgICAgICIwLjEwMzE0OCwgMC4xMTI4NTIsIDAuMTk5NzE2LCAwLjM0NDUwNCwgMC40ODkxMzIsIDAuODI2NzM2LCAxLjAxOTY3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwNDU5NSwgMC4xMjQyODksIDAuMzAyNTE0LCAwLjU5OTE4NCwgMC44OTYyMSwgMS41OTEyNywgMS45ODc0OCIsIFwKLSAgICAgICAgICAiMC4xMDQ2MTIsIDAuMTI0MzI2LCAwLjMwMjUyNiwgMC41OTg5MzMsIDAuODk2MTk0LCAxLjU5MTM5LCAxLjk4ODY2IiwgXAotICAgICAgICAgICIwLjEwNDc5LCAwLjEyNDUwNSwgMC4zMDI0ODQsIDAuNTk5ODE1LCAwLjg5NzM2OCwgMS41OTEwOCwgMS45ODc2MSIsIFwKLSAgICAgICAgICAiMC4xMDUxMjMsIDAuMTI0NjE4LCAwLjMwMjIxMSwgMC41OTk4MTgsIDAuODk3MjAyLCAxLjU4OTY2LCAxLjk4ODAxIiwgXAotICAgICAgICAgICIwLjEwNTM3NSwgMC4xMjQ4NSwgMC4zMDIyOTcsIDAuNTk5MjU3LCAwLjg5NjI4NCwgMS41OTE1MywgMS45ODgwMiIsIFwKLSAgICAgICAgICAiMC4xMDU5NTUsIDAuMTI1MTk1LCAwLjMwMjMyMSwgMC41OTkxNDgsIDAuODk3MTc5LCAxLjU4OTM1LCAxLjk4NTAxIiwgXAotICAgICAgICAgICIwLjEwNjQzNCwgMC4xMjU5MTIsIDAuMzAyMzY4LCAwLjU5OTA5NiwgMC44OTUzOTgsIDEuNTkwODUsIDEuOTg4MDIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDkwMTg5LCAwLjEwMDc2MSwgMC4xOTU0OTQsIDAuMzUzMzcsIDAuNTExMjU3LCAwLjg3OTY4LCAxLjA5MDMyIiwgXAotICAgICAgICAgICIwLjA5NzEwNSwgMC4xMDc2ODEsIDAuMjAyNDIzLCAwLjM2MDMwOCwgMC41MTgxOTYsIDAuODg2NzkyLCAxLjA5NzE0IiwgXAotICAgICAgICAgICIwLjEwNjA0NiwgMC4xMTY2LCAwLjIxMTM1MSwgMC4zNjkxOTYsIDAuNTI3MTgxLCAwLjg5NTc4LCAxLjEwNjMxIiwgXAotICAgICAgICAgICIwLjExMzU5OSwgMC4xMjQxNiwgMC4yMTg5ODgsIDAuMzc2ODQsIDAuNTM0NzA1LCAwLjkwMzI0LCAxLjExMzg5IiwgXAotICAgICAgICAgICIwLjEyMDM2OCwgMC4xMzA5NjIsIDAuMjI1Njc0LCAwLjM4MzU5MiwgMC41NDE0NjEsIDAuOTA5ODY5LCAxLjEyMDQ5IiwgXAotICAgICAgICAgICIwLjEyOTIxNiwgMC4xMzk5MjYsIDAuMjM0NjE2LCAwLjM5MjUyNywgMC41NTAyODMsIDAuOTE5MDYzLCAxLjEyOTM4IiwgXAotICAgICAgICAgICIwLjEzNjE1LCAwLjE0NjcsIDAuMjQxNTY2LCAwLjM5OTQyLCAwLjU1NzIxLCAwLjkyNTczOSwgMS4xMzcyIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExOTY5NiwgMC4xNDEyMDksIDAuMzM4OTM1LCAwLjY3MTM2NSwgMS4wMDIxOSwgMS43ODAxOCwgMi4yMTkxMiIsIFwKLSAgICAgICAgICAiMC4xMTk2OTMsIDAuMTQxMzE2LCAwLjMzODQ4LCAwLjY3MDYxLCAxLjAwMjE4LCAxLjc3NzM3LCAyLjIxOTI1IiwgXAotICAgICAgICAgICIwLjExOTk0NSwgMC4xNDE0OTksIDAuMzM5MTI2LCAwLjY3MTI3NCwgMS4wMDE5MSwgMS43Nzc0MSwgMi4yMjAyNSIsIFwKLSAgICAgICAgICAiMC4xMjA0ODEsIDAuMTQxOTU2LCAwLjMzOTIzMiwgMC42NzEzMSwgMS4wMDIxOSwgMS43NzY0OSwgMi4yMjAyNSIsIFwKLSAgICAgICAgICAiMC4xMjA5MDEsIDAuMTQyMzM5LCAwLjMzOTE2NCwgMC42NzAwNzcsIDEuMDAyMDgsIDEuNzc2NTMsIDIuMjIwMTUiLCBcCi0gICAgICAgICAgIjAuMTIxNTI2LCAwLjE0Mjk1MiwgMC4zMzk0ODMsIDAuNjcwMDg2LCAxLjAwMzkyLCAxLjc3NzQ5LCAyLjIxOTEyIiwgXAotICAgICAgICAgICIwLjEyMjQyMSwgMC4xNDM0NDgsIDAuMzM5MTgsIDAuNjcwNDE2LCAxLjAwMjc0LCAxLjc3ODExLCAyLjIyMDAxIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2ODAzOSwgMC4wNzc2ODcsIDAuMTY0NTcxLCAwLjMwOTI0NSwgMC40NTQwMTgsIDAuNzkxNjc0LCAwLjk4NDQ0MSIsIFwKLSAgICAgICAgICAiMC4wNzU2LCAwLjA4NTI1NiwgMC4xNzIxMTUsIDAuMzE2OTM4LCAwLjQ2MTY4MiwgMC43OTk1NzMsIDAuOTkyNDk3IiwgXAotICAgICAgICAgICIwLjA4MjUzMywgMC4wOTIxODksIDAuMTc5MDQ2LCAwLjMyMzk4OSwgMC40Njg3MjEsIDAuODA2MzEyLCAwLjk5OTM4NCIsIFwKLSAgICAgICAgICAiMC4wODcyOTcsIDAuMDk2OTYyLCAwLjE4Mzc0NiwgMC4zMjg1MTMsIDAuNDczNDI4LCAwLjgxMDg1NiwgMS4wMDQ3IiwgXAotICAgICAgICAgICIwLjA5MDk0OCwgMC4xMDA5MzgsIDAuMTg3NDM1LCAwLjMzMjIwNSwgMC40NzcwMzQsIDAuODE0NjU2LCAxLjAwNzciLCBcCi0gICAgICAgICAgIjAuMDk1NzczLCAwLjEwNTQxMSwgMC4xOTIxODUsIDAuMzM2ODE2LCAwLjQ4MTY3MSwgMC44MTkzMywgMS4wMTIzOSIsIFwKLSAgICAgICAgICAiMC4wOTg5NTUsIDAuMTA4NTc5LCAwLjE5NTUyMSwgMC4zNDAwMDMsIDAuNDg0OTY3LCAwLjgyMjk0OCwgMS4wMTU5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwNDQ0OCwgMC4xMjQxMzUsIDAuMzAxOTc0LCAwLjYwMDA0NiwgMC44OTUzMzksIDEuNTg2NjcsIDEuOTg4NDciLCBcCi0gICAgICAgICAgIjAuMTA0NTMsIDAuMTI0MjUyLCAwLjMwMjM5NiwgMC41OTg4NTEsIDAuODk3NDUyLCAxLjU4ODcxLCAxLjk4NiIsIFwKLSAgICAgICAgICAiMC4xMDQ4MzMsIDAuMTI0NDQ3LCAwLjMwMjA0NCwgMC41OTg3MTYsIDAuODk1NzY1LCAxLjU5MTU4LCAxLjk4NDYzIiwgXAotICAgICAgICAgICIwLjEwNTA5NywgMC4xMjQ1OTksIDAuMzAxOTc2LCAwLjU5ODg4NywgMC44OTU4LCAxLjU4ODI4LCAxLjk4NTYiLCBcCi0gICAgICAgICAgIjAuMTA1Mzg4LCAwLjEyNTExLCAwLjMwMjU0NiwgMC41OTg2ODEsIDAuODk1ODA2LCAxLjU4ODAzLCAxLjk4ODI1IiwgXAotICAgICAgICAgICIwLjEwNjE1MiwgMC4xMjUzMjksIDAuMzAyMTU0LCAwLjU5OTg3NiwgMC44OTY0NTcsIDEuNTg4MzYsIDEuOTg0ODMiLCBcCi0gICAgICAgICAgIjAuMTA2NzE2LCAwLjEyNTk3LCAwLjMwMjUyLCAwLjU5OTg1OSwgMC44OTU3ODQsIDEuNTg5MzksIDEuOTg2MTIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDEyNjcsIDAuMDAxMjY2LCAwLjAwMTI2MywgMC4wMDEyNiwgMC4wMDEyNiwgMC4wMDEyNTksIDAuMDAxMjU5IiwgXAotICAgICAgICAgICIwLjAwMTIyNSwgMC4wMDEyMjUsIDAuMDAxMjIyLCAwLjAwMTIyLCAwLjAwMTIyLCAwLjAwMTIxOSwgMC4wMDEyMTkiLCBcCi0gICAgICAgICAgIjAuMDAxMjMxLCAwLjAwMTIzLCAwLjAwMTIyNywgMC4wMDEyMjUsIDAuMDAxMjI0LCAwLjAwMTIyNCwgMC4wMDEyMjMiLCBcCi0gICAgICAgICAgIjAuMDAxMjY1LCAwLjAwMTI2NCwgMC4wMDEyNiwgMC4wMDEyNTgsIDAuMDAxMjU3LCAwLjAwMTI1NiwgMC4wMDEyNTYiLCBcCi0gICAgICAgICAgIjAuMDAxMzIxLCAwLjAwMTMyMSwgMC4wMDEzMTYsIDAuMDAxMzEyLCAwLjAwMTMxMSwgMC4wMDEzMSwgMC4wMDEzMDkiLCBcCi0gICAgICAgICAgIjAuMDAxNDQ5LCAwLjAwMTQ0NiwgMC4wMDE0MzYsIDAuMDAxNDMxLCAwLjAwMTQyOSwgMC4wMDE0MjgsIDAuMDAxNDI3IiwgXAotICAgICAgICAgICIwLjAwMTU2OCwgMC4wMDE1NjcsIDAuMDAxNTU4LCAwLjAwMTU1NCwgMC4wMDE1NTIsIDAuMDAxNTUxLCAwLjAwMTU1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzMjc0LCAwLjAwMzI3NSwgMC4wMDMyNzcsIDAuMDAzMjc4LCAwLjAwMzI3OCwgMC4wMDMyNzksIDAuMDAzMjc5IiwgXAotICAgICAgICAgICIwLjAwMzI3MSwgMC4wMDMyNzIsIDAuMDAzMjc2LCAwLjAwMzI3NywgMC4wMDMyNzgsIDAuMDAzMjc4LCAwLjAwMzI3OCIsIFwKLSAgICAgICAgICAiMC4wMDMzMjEsIDAuMDAzMzIyLCAwLjAwMzMyNiwgMC4wMDMzMjcsIDAuMDAzMzI3LCAwLjAwMzMyOCwgMC4wMDMzMjgiLCBcCi0gICAgICAgICAgIjAuMDAzMzk5LCAwLjAwMzQsIDAuMDAzNDAyLCAwLjAwMzQwMywgMC4wMDM0MDMsIDAuMDAzNDA0LCAwLjAwMzQwNCIsIFwKLSAgICAgICAgICAiMC4wMDM0OTYsIDAuMDAzNDk2LCAwLjAwMzQ5NywgMC4wMDM0OTgsIDAuMDAzNDk3LCAwLjAwMzQ5NywgMC4wMDM0OTciLCBcCi0gICAgICAgICAgIjAuMDAzNjYsIDAuMDAzNjU5LCAwLjAwMzY2LCAwLjAwMzY2MSwgMC4wMDM2NjEsIDAuMDAzNjYxLCAwLjAwMzY2MSIsIFwKLSAgICAgICAgICAiMC4wMDM4MTUsIDAuMDAzODE1LCAwLjAwMzgxMywgMC4wMDM4MTIsIDAuMDAzODEyLCAwLjAwMzgxMiwgMC4wMDM4MTIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDEyNzMsIDAuMDAxMjczLCAwLjAwMTI3MSwgMC4wMDEyNzIsIDAuMDAxMjcxLCAwLjAwMTI3LCAwLjAwMTI3IiwgXAotICAgICAgICAgICIwLjAwMTIzNSwgMC4wMDEyMzUsIDAuMDAxMjM1LCAwLjAwMTIzNiwgMC4wMDEyMzUsIDAuMDAxMjMzLCAwLjAwMTIzNSIsIFwKLSAgICAgICAgICAiMC4wMDEyNTksIDAuMDAxMjU5LCAwLjAwMTI1NywgMC4wMDEyNTcsIDAuMDAxMjU2LCAwLjAwMTI1NiwgMC4wMDEyNTYiLCBcCi0gICAgICAgICAgIjAuMDAxMzIsIDAuMDAxMzE4LCAwLjAwMTMxMSwgMC4wMDEzMDksIDAuMDAxMzA4LCAwLjAwMTMwNywgMC4wMDEzMDciLCBcCi0gICAgICAgICAgIjAuMDAxMzgxLCAwLjAwMTM4LCAwLjAwMTM3NSwgMC4wMDEzNzQsIDAuMDAxMzczLCAwLjAwMTM3MiwgMC4wMDEzNzIiLCBcCi0gICAgICAgICAgIjAuMDAxNTI5LCAwLjAwMTUyNiwgMC4wMDE1MTUsIDAuMDAxNTA5LCAwLjAwMTUwOCwgMC4wMDE1MDYsIDAuMDAxNTA2IiwgXAotICAgICAgICAgICIwLjAwMTY2MSwgMC4wMDE2NTcsIDAuMDAxNjQ1LCAwLjAwMTY0LCAwLjAwMTYzOCwgMC4wMDE2MzUsIDAuMDAxNjM1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyOTUxLCAwLjAwMjk1MiwgMC4wMDI5NTcsIDAuMDAyOTU4LCAwLjAwMjk1OSwgMC4wMDI5NTksIDAuMDAyOTU5IiwgXAotICAgICAgICAgICIwLjAwMjk0NCwgMC4wMDI5NDUsIDAuMDAyOTUyLCAwLjAwMjk1NCwgMC4wMDI5NTUsIDAuMDAyOTU2LCAwLjAwMjk1NiIsIFwKLSAgICAgICAgICAiMC4wMDI5OTEsIDAuMDAyOTk0LCAwLjAwMywgMC4wMDMwMDMsIDAuMDAzMDA0LCAwLjAwMzAwNSwgMC4wMDMwMDUiLCBcCi0gICAgICAgICAgIjAuMDAzMDYyLCAwLjAwMzA2MywgMC4wMDMwNywgMC4wMDMwNzMsIDAuMDAzMDc0LCAwLjAwMzA3NSwgMC4wMDMwNzYiLCBcCi0gICAgICAgICAgIjAuMDAzMTUzLCAwLjAwMzE1NSwgMC4wMDMxNjQsIDAuMDAzMTYzLCAwLjAwMzE2OSwgMC4wMDMxNywgMC4wMDMxNjUiLCBcCi0gICAgICAgICAgIjAuMDAzMzE1LCAwLjAwMzMwNSwgMC4wMDMzMTMsIDAuMDAzMzE4LCAwLjAwMzMzMSwgMC4wMDMzMjEsIDAuMDAzMzIxIiwgXAotICAgICAgICAgICIwLjAwMzQ1NywgMC4wMDM0NTgsIDAuMDAzNDY1LCAwLjAwMzQ2OCwgMC4wMDM0NywgMC4wMDM0NzEsIDAuMDAzNDcxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxMjc0LCAwLjAwMTI3NSwgMC4wMDEyNzYsIDAuMDAxMjc3LCAwLjAwMTI3NywgMC4wMDEyNzcsIDAuMDAxMjc3IiwgXAotICAgICAgICAgICIwLjAwMTI2MywgMC4wMDEyNjMsIDAuMDAxMjY0LCAwLjAwMTI2NCwgMC4wMDEyNjYsIDAuMDAxMjY2LCAwLjAwMTI2NiIsIFwKLSAgICAgICAgICAiMC4wMDEzMTcsIDAuMDAxMzE3LCAwLjAwMTMxNywgMC4wMDEzMTcsIDAuMDAxMzE3LCAwLjAwMTMxNCwgMC4wMDEzMTciLCBcCi0gICAgICAgICAgIjAuMDAxNDAzLCAwLjAwMTQwMywgMC4wMDEzOSwgMC4wMDEzOSwgMC4wMDEzOSwgMC4wMDEzOSwgMC4wMDEzODkiLCBcCi0gICAgICAgICAgIjAuMDAxNDg4LCAwLjAwMTQ4NywgMC4wMDE0ODQsIDAuMDAxNDgzLCAwLjAwMTQ4MywgMC4wMDE0ODIsIDAuMDAxNDgyIiwgXAotICAgICAgICAgICIwLjAwMTY0OSwgMC4wMDE2NDgsIDAuMDAxNjQxLCAwLjAwMTYzOCwgMC4wMDE2MzcsIDAuMDAxNjM2LCAwLjAwMTYzNiIsIFwKLSAgICAgICAgICAiMC4wMDE4MDIsIDAuMDAxOCwgMC4wMDE3OTEsIDAuMDAxNzg3LCAwLjAwMTc4NiwgMC4wMDE3ODQsIDAuMDAxNzgzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyNjMxLCAwLjAwMjYzMiwgMC4wMDI2MzYsIDAuMDAyNjM4LCAwLjAwMjYzOCwgMC4wMDI2MzksIDAuMDAyNjM5IiwgXAotICAgICAgICAgICIwLjAwMjYyNCwgMC4wMDI2MjYsIDAuMDAyNjMxLCAwLjAwMjYzMywgMC4wMDI2MzMsIDAuMDAyNjM0LCAwLjAwMjYzNCIsIFwKLSAgICAgICAgICAiMC4wMDI2NzEsIDAuMDAyNjcyLCAwLjAwMjY4LCAwLjAwMjY4MywgMC4wMDI2ODQsIDAuMDAyNjg1LCAwLjAwMjY4NSIsIFwKLSAgICAgICAgICAiMC4wMDI3NDMsIDAuMDAyNzQ0LCAwLjAwMjc1NiwgMC4wMDI3NTgsIDAuMDAyNzU1LCAwLjAwMjc2LCAwLjAwMjc1NiIsIFwKLSAgICAgICAgICAiMC4wMDI4MzcsIDAuMDAyODMzLCAwLjAwMjg0NSwgMC4wMDI4NDcsIDAuMDAyODQ5LCAwLjAwMjg1LCAwLjAwMjg0MiIsIFwKLSAgICAgICAgICAiMC4wMDI5ODEsIDAuMDAyOTgzLCAwLjAwMjk5LCAwLjAwMjk5MiwgMC4wMDI5OTQsIDAuMDAyOTk2LCAwLjAwMjk5NSIsIFwKLSAgICAgICAgICAiMC4wMDMxMywgMC4wMDMxMzEsIDAuMDAzMTM0LCAwLjAwMzEzNywgMC4wMDMxMzgsIDAuMDAzMTM5LCAwLjAwMzE0Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBBTkQ0WDEgKgotICogLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChBTkQ0WDEpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4zMDMwMDc7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYyNTgyNTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MjU4MjU7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjI0ODM3OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDI5NiwgMC4wMDAyOTYsIDAuMDAwMjk2LCAwLjAwMDI5NiwgMC4wMDAyOTYsIDAuMDAwMjk2LCAwLjAwMDI5NiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDI5NywgMC4wMDAyOTcsIDAuMDAwMjk3LCAwLjAwMDI5NywgMC4wMDAyOTcsIDAuMDAwMjk3LCAwLjAwMDI5NyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjY3MjE1OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDY2NzIxNTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2NjYzNzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyOTYsIDAuMDAwMjk2LCAwLjAwMDI5NiwgMC4wMDAyOTYsIDAuMDAwMjk2LCAwLjAwMDI5NiwgMC4wMDAyOTYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyOTcsIDAuMDAwMjk3LCAwLjAwMDI5NywgMC4wMDAyOTcsIDAuMDAwMjk3LCAwLjAwMDI5NywgMC4wMDAyOTciKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEMpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY3ODEzMzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2NzgxMzM7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjc3MTY4OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDI5NiwgMC4wMDAyOTYsIDAuMDAwMjk2LCAwLjAwMDI5NiwgMC4wMDAyOTYsIDAuMDAwMjk2LCAwLjAwMDI5NiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDI5NywgMC4wMDAyOTcsIDAuMDAwMjk3LCAwLjAwMDI5NywgMC4wMDAyOTcsIDAuMDAwMjk3LCAwLjAwMDI5NyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjU4NDMyOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDY1ODQzMjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2NTgzMzY7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMTUyLCAwLjAwMDE1MiwgMC4wMDAxNTIsIDAuMDAwMTUyLCAwLjAwMDE1MiwgMC4wMDAxNTIsIDAuMDAwMTUyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzM3LCAwLjAwMDMzOCwgMC4wMDAzMzcsIDAuMDAwMzM3LCAwLjAwMDMzOCwgMC4wMDAzMzgsIDAuMDAwMzM4Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMzQwMjM3OwotICAgIGZ1bmN0aW9uIDogIigoKEEgQikgQykgRCkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5ODY1MiwgMC4xMTg3NjUsIDAuMjI1MjQ1LCAwLjMxODMzOSwgMC40NDI0NTYsIDAuNjkwNjk4LCAwLjg0NTk2MiIsIFwKLSAgICAgICAgICAiMC4xMDMxOTYsIDAuMTIzMzEyLCAwLjIyOTc5NCwgMC4zMjI4NzksIDAuNDQ2OTUzLCAwLjY5NTM1NSwgMC44NTA4ODkiLCBcCi0gICAgICAgICAgIjAuMTA3NzcsIDAuMTI3ODM5LCAwLjIzNDMxMSwgMC4zMjczNzcsIDAuNDUxNDczLCAwLjY5OTgyNiwgMC44NTUwMzYiLCBcCi0gICAgICAgICAgIjAuMTExOTM3LCAwLjEzMjAxOCwgMC4yMzg1MjUsIDAuMzMxNjA4LCAwLjQ1NTY3OCwgMC43MDQyNzIsIDAuODU5MzkxIiwgXAotICAgICAgICAgICIwLjExNTY5LCAwLjEzNTg3NCwgMC4yNDI0MjMsIDAuMzM1NDk3LCAwLjQ1OTU2NiwgMC43MDc5MjIsIDAuODYzMDYyIiwgXAotICAgICAgICAgICIwLjEyMTM2NSwgMC4xNDE2OCwgMC4yNDgzMzMsIDAuMzQxNDMyLCAwLjQ2NTUwNiwgMC43MTQwOTMsIDAuODY5MDYiLCBcCi0gICAgICAgICAgIjAuMTI2MDE1LCAwLjE0NjQ1LCAwLjI1MzIyMSwgMC4zNDYzMDQsIDAuNDcwNDI5LCAwLjcxODYyLCAwLjg3NDAzNyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODIzNjEsIDAuMTE5MzE5LCAwLjMzNTM3OSwgMC41MzAyNTcsIDAuNzg5NzQzLCAxLjMxMzkxLCAxLjYzOTAzIiwgXAotICAgICAgICAgICIwLjA4MjI0LCAwLjExOTMzOCwgMC4zMzUzNzQsIDAuNTI5NDkzLCAwLjc5MDgxNCwgMS4zMTIwOSwgMS42MzgxNSIsIFwKLSAgICAgICAgICAiMC4wODIyNjYsIDAuMTE5MzI5LCAwLjMzNTM1OCwgMC41Mjk5NjksIDAuNzg5OTIyLCAxLjMxMjM3LCAxLjYzNzM3IiwgXAotICAgICAgICAgICIwLjA4MjU1NSwgMC4xMTk1MiwgMC4zMzUzODIsIDAuNTMwMjg1LCAwLjc5MDgwMywgMS4zMTE3LCAxLjYzODAyIiwgXAotICAgICAgICAgICIwLjA4Mjk2MywgMC4xMTk5NDEsIDAuMzM1NTc4LCAwLjUzMDM0NywgMC43ODk5NTUsIDEuMzEyMzIsIDEuNjM3NzIiLCBcCi0gICAgICAgICAgIjAuMDg0MDAzLCAwLjEyMDcwNiwgMC4zMzU5MzQsIDAuNTMwMzk4LCAwLjc5MDk1OSwgMS4zMTE3MywgMS42MzczNyIsIFwKLSAgICAgICAgICAiMC4wODQ3NzUsIDAuMTIxNTAxLCAwLjMzNjIzOCwgMC41Mjk2MTIsIDAuNzkxMjA1LCAxLjMxMzczLCAxLjYzOCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTg1MTMsIDAuMDc2NzUxLCAwLjE3OTUxNSwgMC4yNzAwODMsIDAuMzkwNzU0LCAwLjYzMjA2OSwgMC43ODI5MjYiLCBcCi0gICAgICAgICAgIjAuMDY2NDk5LCAwLjA4NDc0MiwgMC4xODc1MTgsIDAuMjc4MDYxLCAwLjM5ODc1MSwgMC42NDAwNzIsIDAuNzkwODgxIiwgXAotICAgICAgICAgICIwLjA3NTYzMSwgMC4wOTM4NywgMC4xOTY2MzEsIDAuMjg3MTY4LCAwLjQwNzg1OSwgMC42NDkxNzcsIDAuNzk5OTg4IiwgXAotICAgICAgICAgICIwLjA4MjY0OSwgMC4xMDA4NzUsIDAuMjAzNjE4LCAwLjI5NDE5LCAwLjQxNDgzOSwgMC42NTYxNjMsIDAuODA2OTgxIiwgXAotICAgICAgICAgICIwLjA4ODE4NywgMC4xMDY0NjksIDAuMjA5MTYsIDAuMjk5Njk2LCAwLjQyMDM5MywgMC42NjE3MTEsIDAuODEyNTEyIiwgXAotICAgICAgICAgICIwLjA5NTQ1MSwgMC4xMTM2MzEsIDAuMjE2MzU2LCAwLjMwNjkwMiwgMC40Mjc1ODUsIDAuNjY4OTcsIDAuODE5NzI2IiwgXAotICAgICAgICAgICIwLjEwMDYwMSwgMC4xMTg4MDcsIDAuMjIxNjE5LCAwLjMxMjE0NCwgMC40MzI4NzMsIDAuNjc0MTM1LCAwLjgyNDkzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2ODg5MSwgMC4xMDU1MDQsIDAuMzE1OTA0LCAwLjUwMjIzMywgMC43NTA5MiwgMS4yNDgzMSwgMS41NTg5NiIsIFwKLSAgICAgICAgICAiMC4wNjg4OTQsIDAuMTA1NDQ2LCAwLjMxNTg4OSwgMC41MDIzMjcsIDAuNzUwOTY3LCAxLjI0ODMzLCAxLjU1OTIyIiwgXAotICAgICAgICAgICIwLjA2OTE0MiwgMC4xMDU1NDIsIDAuMzE1NDA4LCAwLjUwMTgwOSwgMC43NTA5NTgsIDEuMjQ4MzMsIDEuNTU5MTkiLCBcCi0gICAgICAgICAgIjAuMDY5ODQ0LCAwLjEwNTk1MSwgMC4zMTU5NjMsIDAuNTAyMjMxLCAwLjc1MDA2NSwgMS4yNDY5MSwgMS41NTkxNCIsIFwKLSAgICAgICAgICAiMC4wNzA0ODIsIDAuMTA2NDI3LCAwLjMxNjAzOCwgMC41MDE3MSwgMC43NTA3OTMsIDEuMjQ4MjEsIDEuNTU5MTQiLCBcCi0gICAgICAgICAgIjAuMDcxNzA3LCAwLjEwNzAyOCwgMC4zMTYwMzgsIDAuNTAyMjAxLCAwLjc0OTg2MywgMS4yNDYyOSwgMS41NTg3MiIsIFwKLSAgICAgICAgICAiMC4wNzIzNzcsIDAuMTA3OTA0LCAwLjMxNTkyMiwgMC41MDIyNDgsIDAuNzQ5NDM4LCAxLjI0Nzk4LCAxLjU1ODg4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5NjgyOCwgMC4xMTY5MTYsIDAuMjIzNDMzLCAwLjMxNjUyOSwgMC40NDA3MSwgMC42ODg5MTIsIDAuODQ0MTMyIiwgXAotICAgICAgICAgICIwLjEwMTc4NiwgMC4xMjE5LCAwLjIyODQwMywgMC4zMjE1LCAwLjQ0NTYwMywgMC42OTM5NTUsIDAuODQ5MTc4IiwgXAotICAgICAgICAgICIwLjEwNzYxNSwgMC4xMjc2OTUsIDAuMjM0MTgxLCAwLjMyNzI1OSwgMC40NTE0ODUsIDAuNjk5NzQ4LCAwLjg1NDgzMyIsIFwKLSAgICAgICAgICAiMC4xMTMyOTcsIDAuMTMzNDQ3LCAwLjIzOTkyOCwgMC4zMzMwMjgsIDAuNDU3MTAxLCAwLjcwNTU5OSwgMC44NjA2NjgiLCBcCi0gICAgICAgICAgIjAuMTE4NjU5LCAwLjEzODg0MiwgMC4yNDU0MTEsIDAuMzM4NDkyLCAwLjQ2MjU1NywgMC43MTEwMywgMC44NjYyMyIsIFwKLSAgICAgICAgICAiMC4xMjY0OSwgMC4xNDY5MTIsIDAuMjUzNjExLCAwLjM0NjY3MSwgMC40NzA3NjIsIDAuNzE5NDEzLCAwLjg3NDIyOSIsIFwKLSAgICAgICAgICAiMC4xMzMwNDQsIDAuMTUzNTUsIDAuMjYwNDA2LCAwLjM1MzQxNCwgMC40Nzc1OTEsIDAuNzI1NzI4LCAwLjg4MTIxNCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODI0MDUsIDAuMTE5MzkxLCAwLjMzNTM4OSwgMC41MzAyNiwgMC43ODk2MzIsIDEuMzEyMjYsIDEuNjM3NTgiLCBcCi0gICAgICAgICAgIjAuMDgyMjM2LCAwLjExOTMxMiwgMC4zMzUzNjIsIDAuNTMwMjcsIDAuNzkwNzc0LCAxLjMxMjMyLCAxLjYzNzM3IiwgXAotICAgICAgICAgICIwLjA4MjI4LCAwLjExOTI4LCAwLjMzNTM5OSwgMC41MzAyNzcsIDAuNzg5NzA4LCAxLjMxMjA2LCAxLjYzNzczIiwgXAotICAgICAgICAgICIwLjA4MjU3NSwgMC4xMTk2MTMsIDAuMzM1NDQ4LCAwLjUzMDI5NywgMC43OTA4LCAxLjMxMTYzLCAxLjYzNzQzIiwgXAotICAgICAgICAgICIwLjA4MzIxNiwgMC4xMjAxMTYsIDAuMzM1NjE0LCAwLjUzMDM4MiwgMC43OTA4MzYsIDEuMzEyMDIsIDEuNjM3OTkiLCBcCi0gICAgICAgICAgIjAuMDg0NTUzLCAwLjEyMTE1MSwgMC4zMzYwMzksIDAuNTMwMzMzLCAwLjc5MTA0OSwgMS4zMTEyMywgMS42Mzc3MyIsIFwKLSAgICAgICAgICAiMC4wODU2OCwgMC4xMjE5NDQsIDAuMzM2NDI3LCAwLjUzMDQ0OCwgMC43ODk4NDMsIDEuMzEzNywgMS42MzgwNCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTc0NTgsIDAuMDc1NjY3LCAwLjE3ODM3MywgMC4yNjg4OTMsIDAuMzg5NTUzLCAwLjYzMDgzNiwgMC43ODE2MjgiLCBcCi0gICAgICAgICAgIjAuMDY1NDUsIDAuMDgzNjczLCAwLjE4NjQwNywgMC4yNzY5MTQsIDAuMzk3NTYyLCAwLjYzODkxNiwgMC43ODk2NjkiLCBcCi0gICAgICAgICAgIjAuMDc0MjMzLCAwLjA5MjQyLCAwLjE5NTE2NCwgMC4yODU3MTYsIDAuNDA2MzM5LCAwLjY0NzYyOCwgMC43OTg0NzgiLCBcCi0gICAgICAgICAgIjAuMDgwOTQ2LCAwLjA5OTE4OCwgMC4yMDE4ODQsIDAuMjkyNDA1LCAwLjQxMzA2OCwgMC42NTQzNTIsIDAuODA1MTk5IiwgXAotICAgICAgICAgICIwLjA4NjE3OSwgMC4xMDQ0NDYsIDAuMjA3MTM3LCAwLjI5NzY0MiwgMC40MTgzNDIsIDAuNjU5NjE4LCAwLjgxMDQyOCIsIFwKLSAgICAgICAgICAiMC4wOTI5NjQsIDAuMTExMjk2LCAwLjIxNDAxLCAwLjMwNDUzNSwgMC40MjUyMjUsIDAuNjY2NTAzLCAwLjgxNzI3NyIsIFwKLSAgICAgICAgICAiMC4wOTc3LCAwLjExNTk5OCwgMC4yMTg3NTEsIDAuMzA5MjcyLCAwLjQyOTg5NSwgMC42NzEyMSwgMC44MjIwMzQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY4NTIzLCAwLjEwNTA4OCwgMC4zMTUzMDMsIDAuNTAyMjQsIDAuNzQ5OTM0LCAxLjI0ODE1LCAxLjU1OSIsIFwKLSAgICAgICAgICAiMC4wNjg1NTcsIDAuMTA1MjE5LCAwLjMxNTcyNywgMC41MDIyMDcsIDAuNzUwODM0LCAxLjI0ODI0LCAxLjU1OTA5IiwgXAotICAgICAgICAgICIwLjA2ODkyNiwgMC4xMDU0NzcsIDAuMzE1NzU1LCAwLjUwMTMxMSwgMC43NTA4NDQsIDEuMjQ4MTUsIDEuNTU5MiIsIFwKLSAgICAgICAgICAiMC4wNjk2MTYsIDAuMTA1ODAzLCAwLjMxNTc4NSwgMC41MDE3MDEsIDAuNzUwODk3LCAxLjI0ODE4LCAxLjU1OTEyIiwgXAotICAgICAgICAgICIwLjA3MDE3MywgMC4xMDYyMiwgMC4zMTU0ODcsIDAuNTAyMjE4LCAwLjc0OTY5NywgMS4yNDgyMiwgMS41NTkxNSIsIFwKLSAgICAgICAgICAiMC4wNzEyODcsIDAuMTA2ODQ5LCAwLjMxNTc5NCwgMC41MDIxMjgsIDAuNzUwNjA4LCAxLjI0NjcxLCAxLjU1ODczIiwgXAotICAgICAgICAgICIwLjA3MjE2NiwgMC4xMDc1MzcsIDAuMzE1ODA0LCAwLjUwMTk0NywgMC43NTA2MDEsIDEuMjQ3NzcsIDEuNTU4NzQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDkzNTUzLCAwLjExMzYzNiwgMC4yMjAxODksIDAuMzEzMjkzLCAwLjQzNzQxNywgMC42ODU2NDYsIDAuODQwOTQzIiwgXAotICAgICAgICAgICIwLjA5OTI1MywgMC4xMTkzNTcsIDAuMjI1OTAyLCAwLjMxODk5OCwgMC40NDMwODYsIDAuNjkxNDYsIDAuODQ2NTIzIiwgXAotICAgICAgICAgICIwLjEwNjkyNCwgMC4xMjcwMjQsIDAuMjMzNTM0LCAwLjMyNjYyMywgMC40NTA3MDcsIDAuNjk4OTgxLCAwLjg1NDgwOSIsIFwKLSAgICAgICAgICAiMC4xMTQ0MzEsIDAuMTM0NTA1LCAwLjI0MDk5OSwgMC4zMzQwOTMsIDAuNDU4MTY4LCAwLjcwNjQ3OCwgMC44NjE3NjYiLCBcCi0gICAgICAgICAgIjAuMTIxMjk5LCAwLjE0MTQ3MSwgMC4yNDgwNTEsIDAuMzQxMTE4LCAwLjQ2NTIxMSwgMC43MTM4MTQsIDAuODY4NzU2IiwgXAotICAgICAgICAgICIwLjEzMTUwMywgMC4xNTE2NzYsIDAuMjU4NDA3LCAwLjM1MTQ1NSwgMC40NzU1NTIsIDAuNzIzOTM3LCAwLjg3OTI1NyIsIFwKLSAgICAgICAgICAiMC4xMzk0MSwgMC4xNTk4NzEsIDAuMjY2Njc5LCAwLjM1OTczNywgMC40ODM4MzUsIDAuNzMyMjA1LCAwLjg4NzMzIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4MjQzOSwgMC4xMTk0MTUsIDAuMzM1Mzk5LCAwLjUzMDIwNywgMC43ODk1OTUsIDEuMzEyMDUsIDEuNjM3MzEiLCBcCi0gICAgICAgICAgIjAuMDgyMjY1LCAwLjExOTMsIDAuMzM1MzUzLCAwLjUzMDI3NSwgMC43OTA4NDUsIDEuMzExMjMsIDEuNjQwODEiLCBcCi0gICAgICAgICAgIjAuMDgyMjI5LCAwLjExOTI4MSwgMC4zMzUzNzcsIDAuNTMwMjY0LCAwLjc4OTk5LCAxLjMxMzg0LCAxLjYzNzg4IiwgXAotICAgICAgICAgICIwLjA4MjY5OSwgMC4xMTk2NzQsIDAuMzM1MjM1LCAwLjUzMDMwNywgMC43OTA4NDMsIDEuMzExNDIsIDEuNjM4ODUiLCBcCi0gICAgICAgICAgIjAuMDgzNTIzLCAwLjEyMDI2OCwgMC4zMzU2MzMsIDAuNTI5NjcyLCAwLjc5MDg4MiwgMS4zMTE3MywgMS42Mzc0OCIsIFwKLSAgICAgICAgICAiMC4wODQ0MjQsIDAuMTIxMjU1LCAwLjMzNjA3NywgMC41MzAwMDYsIDAuNzkwOTk0LCAxLjMxMTA2LCAxLjYzODc5IiwgXAotICAgICAgICAgICIwLjA4NTUwNywgMC4xMjIwMDMsIDAuMzM2Mzk0LCAwLjUzMDA2NSwgMC43OTExMzYsIDEuMzExMDksIDEuNjM4NiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTYwMTIsIDAuMDc0MTg2LCAwLjE3NjgzLCAwLjI2NzMyMSwgMC4zODc5NjYsIDAuNjI5MjM4LCAwLjc4MDEwMiIsIFwKLSAgICAgICAgICAiMC4wNjQwNDEsIDAuMDgyMjIzLCAwLjE4NDkwMywgMC4yNzUzNzMsIDAuMzk2MDMyLCAwLjYzNzI5NywgMC43ODgwOTYiLCBcCi0gICAgICAgICAgIjAuMDcyNDQsIDAuMDkwNjI4LCAwLjE5MzI4NiwgMC4yODM3ODksIDAuNDA0NDEyLCAwLjY0NTY5NSwgMC43OTY1MjIiLCBcCi0gICAgICAgICAgIjAuMDc4NzQsIDAuMDk3MDQ0LCAwLjE5OTY4OSwgMC4yOTAyMDMsIDAuNDEwODUsIDAuNjUxOTg0LCAwLjgwMjkwMyIsIFwKLSAgICAgICAgICAiMC4wODM3LCAwLjEwMTk0NSwgMC4yMDQ1MjQsIDAuMjk1MDA4LCAwLjQxNTc0NywgMC42NTY5NTIsIDAuODA3ODI5IiwgXAotICAgICAgICAgICIwLjA4OTkzLCAwLjEwODA5NywgMC4yMTA4MTUsIDAuMzAxMzMyLCAwLjQyMTkzLCAwLjY2MzIyMiwgMC44MTQwMDYiLCBcCi0gICAgICAgICAgIjAuMDk0MjAzLCAwLjExMjUzNCwgMC4yMTUyNjIsIDAuMzA1NjkzLCAwLjQyNjM2NSwgMC42Njc2ODMsIDAuODE4NDQ5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2ODMxMywgMC4xMDUwMjMsIDAuMzE1NjYxLCAwLjUwMTQ1OSwgMC43NDk4ODEsIDEuMjQ2NDcsIDEuNTU5MzMiLCBcCi0gICAgICAgICAgIjAuMDY4MzUyLCAwLjEwNDk0NSwgMC4zMTQ5NjksIDAuNTAyMDc2LCAwLjc0OTg2MywgMS4yNDgwMiwgMS41NTY5OSIsIFwKLSAgICAgICAgICAiMC4wNjg3OTgsIDAuMTA1MjcxLCAwLjMxNTY0NSwgMC41MDEzODMsIDAuNzUwNzI2LCAxLjI0ODA0LCAxLjU1OTA4IiwgXAotICAgICAgICAgICIwLjA2OTQ3LCAwLjEwNTY0OCwgMC4zMTU1NzcsIDAuNTAyMDAyLCAwLjc1MDY5OSwgMS4yNDgxMiwgMS41NTg2OSIsIFwKLSAgICAgICAgICAiMC4wNzAxMDEsIDAuMTA1OTA2LCAwLjMxNTQyOCwgMC41MDIwODcsIDAuNzQ5OTA5LCAxLjI0ODIyLCAxLjU1OTMiLCBcCi0gICAgICAgICAgIjAuMDcxMjIsIDAuMTA2Nzc1LCAwLjMxNTQzNCwgMC41MDE1ODgsIDAuNzUwNTE3LCAxLjI0NjEyLCAxLjU1ODg1IiwgXAotICAgICAgICAgICIwLjA3MjEzOSwgMC4xMDc0NjcsIDAuMzE1NjQ4LCAwLjUwMTYxMywgMC43NDk2MjMsIDEuMjQ2OCwgMS41NTcwNyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJEIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODkxOTEsIDAuMTA5MzQxLCAwLjIxNTg5NiwgMC4zMDg5OTksIDAuNDMzMDg3LCAwLjY4MTQ0NiwgMC44MzY2NSIsIFwKLSAgICAgICAgICAiMC4wOTU3MjQsIDAuMTE1ODQxLCAwLjIyMjQwNywgMC4zMTU0OTMsIDAuNDM5NTkzLCAwLjY4Nzk3OSwgMC44NDMwOTYiLCBcCi0gICAgICAgICAgIjAuMTA0Nzg2LCAwLjEyNDg2MiwgMC4yMzEzNzUsIDAuMzI0NDY1LCAwLjQ0ODU2NiwgMC42OTY4NjksIDAuODUyMTEiLCBcCi0gICAgICAgICAgIjAuMTEzNzU1LCAwLjEzMzg1LCAwLjI0MDMwMSwgMC4zMzMzOTEsIDAuNDU3NDY4LCAwLjcwNTc0MywgMC44NjE2NTIiLCBcCi0gICAgICAgICAgIjAuMTIxNjYsIDAuMTQxODI2LCAwLjI0ODM5NiwgMC4zNDE0NTksIDAuNDY1NTUzLCAwLjcxNDA1LCAwLjg2OTIxIiwgXAotICAgICAgICAgICIwLjEzMjkyNiwgMC4xNTMwODQsIDAuMjU5ODc5LCAwLjM1Mjk1NSwgMC40NzcwMTUsIDAuNzI1Mzc3LCAwLjg4MTE0MiIsIFwKLSAgICAgICAgICAiMC4xNDE4NjUsIDAuMTYyMTEzLCAwLjI2ODkzMiwgMC4zNjIwMTcsIDAuNDg2MDkzLCAwLjczNDQ1MSwgMC44ODk2OTYiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDgyMjQ1LCAwLjExOTMxNywgMC4zMzUzNiwgMC41MzAxODMsIDAuNzg5OTMsIDEuMzEyMzcsIDEuNjM3NDciLCBcCi0gICAgICAgICAgIjAuMDgyMTU4LCAwLjExOTI1MiwgMC4zMzUyMTgsIDAuNTMwMjQ4LCAwLjc5MDExMiwgMS4zMTIxNSwgMS42Mzc3MSIsIFwKLSAgICAgICAgICAiMC4wODIzMjYsIDAuMTE5MzUyLCAwLjMzNTM1MiwgMC41Mjk2MDUsIDAuNzg5OTEyLCAxLjMxMzg2LCAxLjYzNzU2IiwgXAotICAgICAgICAgICIwLjA4Mjc2NiwgMC4xMTk3MSwgMC4zMzU0MDcsIDAuNTMwMzE4LCAwLjc5MDg2NCwgMS4zMTM4MywgMS42Mzc4MiIsIFwKLSAgICAgICAgICAiMC4wODM0OTcsIDAuMTIwMjI1LCAwLjMzNTYyNSwgMC41MzAwNjQsIDAuNzkwODQyLCAxLjMxMTY0LCAxLjYzNzk4IiwgXAotICAgICAgICAgICIwLjA4NDUsIDAuMTIxNDc0LCAwLjMzNTg1NCwgMC41MzA1NjEsIDAuNzkxMDQ3LCAxLjMxMTEzLCAxLjYzNzgyIiwgXAotICAgICAgICAgICIwLjA4NTUyMywgMC4xMjE4OTIsIDAuMzM2NDA0LCAwLjUyOTg5LCAwLjc4OTY2NCwgMS4zMTEwNiwgMS42Mzg5NiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTQ0ODUsIDAuMDcyNjYyLCAwLjE3NTI3LCAwLjI2NTc0NywgMC4zODY0OTcsIDAuNjI3ODIzLCAwLjc3ODUzNiIsIFwKLSAgICAgICAgICAiMC4wNjI0MzQsIDAuMDgwNjA2LCAwLjE4MzIyMywgMC4yNzM3NjQsIDAuMzk0NTY3LCAwLjYzNTk3NCwgMC43ODY3MjciLCBcCi0gICAgICAgICAgIjAuMDcwNTg5LCAwLjA4ODczOSwgMC4xOTE0MzksIDAuMjgxOTIzLCAwLjQwMjcyMiwgMC42NDQyMDYsIDAuNzk0ODE5IiwgXAotICAgICAgICAgICIwLjA3NjMzMywgMC4wOTQ0ODUsIDAuMTk3MDcxLCAwLjI4NzU2OCwgMC40MDgzOTMsIDAuNjQ5NzE4LCAwLjgwMDUzNSIsIFwKLSAgICAgICAgICAiMC4wODA4NTcsIDAuMDk5MDk4LCAwLjIwMTYzNSwgMC4yOTIxMjYsIDAuNDEyOTUyLCAwLjY1NDI2MiwgMC44MDUxMjciLCBcCi0gICAgICAgICAgIjAuMDg2MzY4LCAwLjEwNDg4LCAwLjIwNzIyOCwgMC4yOTc3MTUsIDAuNDE4NjIyLCAwLjY1OTc2NiwgMC44MTA2OTYiLCBcCi0gICAgICAgICAgIjAuMDkwNTM3LCAwLjEwODU4NCwgMC4yMTE0MjYsIDAuMzAxODIyLCAwLjQyMjU1MywgMC42NjM5MiwgMC44MTUzMjMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY4MTA1LCAwLjEwNDc2NywgMC4zMTQ3NiwgMC41MDIwNTMsIDAuNzQ5NTg4LCAxLjI0NTQ0LCAxLjU1NDgxIiwgXAotICAgICAgICAgICIwLjA2ODIyOSwgMC4xMDQ4MjYsIDAuMzE1NjEsIDAuNTAxMDM0LCAwLjc0OTQyNCwgMS4yNDU5NSwgMS41NTkyMyIsIFwKLSAgICAgICAgICAiMC4wNjg3ODYsIDAuMTA1MjIxLCAwLjMxNTA3NCwgMC41MDEyNjQsIDAuNzQ5NDE5LCAxLjI0NTkxLCAxLjU1NjYzIiwgXAotICAgICAgICAgICIwLjA2OTYxMiwgMC4xMDU2NDcsIDAuMzE1MjYxLCAwLjUwMjE1NywgMC43NDk0MTMsIDEuMjQ4MzEsIDEuNTU2NyIsIFwKLSAgICAgICAgICAiMC4wNzAzNSwgMC4xMDYwODUsIDAuMzE1MzU2LCAwLjUwMjE2MiwgMC43NDk2ODYsIDEuMjQ2MjIsIDEuNTU2NTciLCBcCi0gICAgICAgICAgIjAuMDcxNTM3LCAwLjEwNjk1MywgMC4zMTU4NDQsIDAuNTAyMTgsIDAuNzQ5NDk4LCAxLjI0NTcsIDEuNTU3MTMiLCBcCi0gICAgICAgICAgIjAuMDcyMzkzLCAwLjEwNzcwNywgMC4zMTU2NjgsIDAuNTAxNTkxLCAwLjc1MDc1MSwgMS4yNDY2NSwgMS41NTY1NyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjA3NiwgMC4wMDIwNjUsIDAuMDAyMDQ1LCAwLjAwMjAzOSwgMC4wMDIwMzQsIDAuMDAyMDM0LCAwLjAwMjAzMyIsIFwKLSAgICAgICAgICAiMC4wMDIwMzEsIDAuMDAyMDIzLCAwLjAwMjAwNCwgMC4wMDE5OTksIDAuMDAxOTk1LCAwLjAwMTk5MiwgMC4wMDE5OTIiLCBcCi0gICAgICAgICAgIjAuMDAyMDIyLCAwLjAwMjAxMywgMC4wMDE5OTUsIDAuMDAxOTg5LCAwLjAwMTk4NiwgMC4wMDE5ODMsIDAuMDAxOTgyIiwgXAotICAgICAgICAgICIwLjAwMjAzMSwgMC4wMDIwMjMsIDAuMDAyMDA1LCAwLjAwMTk5OSwgMC4wMDE5OTYsIDAuMDAxOTkzLCAwLjAwMTk5MiIsIFwKLSAgICAgICAgICAiMC4wMDIwNjMsIDAuMDAyMDUyLCAwLjAwMjAzMywgMC4wMDIwMjcsIDAuMDAyMDIyLCAwLjAwMjAxOSwgMC4wMDIwMTgiLCBcCi0gICAgICAgICAgIjAuMDAyMTQsIDAuMDAyMTI5LCAwLjAwMjEwNSwgMC4wMDIwOTcsIDAuMDAyMDk0LCAwLjAwMjA4OSwgMC4wMDIwODgiLCBcCi0gICAgICAgICAgIjAuMDAyMjI1LCAwLjAwMjIxNCwgMC4wMDIxOTEsIDAuMDAyMTgzLCAwLjAwMjE3OCwgMC4wMDIxNzMsIDAuMDAyMTcyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0MjY2LCAwLjAwNDI3MiwgMC4wMDQyNzksIDAuMDA0MjgsIDAuMDA0MjgxLCAwLjAwNDI4MiwgMC4wMDQyODIiLCBcCi0gICAgICAgICAgIjAuMDA0MjU3LCAwLjAwNDI2MywgMC4wMDQyNzIsIDAuMDA0Mjc0LCAwLjAwNDI3NSwgMC4wMDQyNzYsIDAuMDA0Mjc2IiwgXAotICAgICAgICAgICIwLjAwNDI4OCwgMC4wMDQyOTMsIDAuMDA0MzAzLCAwLjAwNDMwNiwgMC4wMDQzMDcsIDAuMDA0MzA4LCAwLjAwNDMwOCIsIFwKLSAgICAgICAgICAiMC4wMDQzNTEsIDAuMDA0MzUzLCAwLjAwNDM1OSwgMC4wMDQzNjIsIDAuMDA0MzYzLCAwLjAwNDM2NCwgMC4wMDQzNjQiLCBcCi0gICAgICAgICAgIjAuMDA0NDMzLCAwLjAwNDQzMiwgMC4wMDQ0MzQsIDAuMDA0NDM2LCAwLjAwNDQzNiwgMC4wMDQ0MzcsIDAuMDA0NDM3IiwgXAotICAgICAgICAgICIwLjAwNDU2NywgMC4wMDQ1NjUsIDAuMDA0NTY4LCAwLjAwNDU3LCAwLjAwNDU3MSwgMC4wMDQ1NzIsIDAuMDA0NTczIiwgXAotICAgICAgICAgICIwLjAwNDcxLCAwLjAwNDcwNiwgMC4wMDQ3MDYsIDAuMDA0NzA2LCAwLjAwNDcwNywgMC4wMDQ3MDcsIDAuMDA0NzA3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyMDgxLCAwLjAwMjA3MywgMC4wMDIwNTgsIDAuMDAyMDU1LCAwLjAwMjA1MiwgMC4wMDIwNSwgMC4wMDIwNDkiLCBcCi0gICAgICAgICAgIjAuMDAyMDMzLCAwLjAwMjAyNywgMC4wMDIwMTcsIDAuMDAyMDE1LCAwLjAwMjAxMiwgMC4wMDIwMTEsIDAuMDAyMDEiLCBcCi0gICAgICAgICAgIjAuMDAyMDMyLCAwLjAwMjAyNSwgMC4wMDIwMTMsIDAuMDAyMDA5LCAwLjAwMjAwNywgMC4wMDIwMDUsIDAuMDAyMDA1IiwgXAotICAgICAgICAgICIwLjAwMjA0OSwgMC4wMDIwNDIsIDAuMDAyMDMsIDAuMDAyMDI3LCAwLjAwMjAyNSwgMC4wMDIwMjMsIDAuMDAyMDIyIiwgXAotICAgICAgICAgICIwLjAwMjEwNCwgMC4wMDIwOTIsIDAuMDAyMDcyLCAwLjAwMjA2NiwgMC4wMDIwNjMsIDAuMDAyMDYsIDAuMDAyMDU4IiwgXAotICAgICAgICAgICIwLjAwMjE5MywgMC4wMDIxOCwgMC4wMDIxNTgsIDAuMDAyMTU0LCAwLjAwMjE0OSwgMC4wMDIxNDUsIDAuMDAyMTQ0IiwgXAotICAgICAgICAgICIwLjAwMjMxNCwgMC4wMDIyOTYsIDAuMDAyMjYzLCAwLjAwMjI1NSwgMC4wMDIyNDcsIDAuMDAyMjQyLCAwLjAwMjI0MSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzk1NiwgMC4wMDM5NjcsIDAuMDAzOTgyLCAwLjAwMzk4NSwgMC4wMDM5ODcsIDAuMDAzOTg4LCAwLjAwMzk4OSIsIFwKLSAgICAgICAgICAiMC4wMDM5NDEsIDAuMDAzOTUzLCAwLjAwMzk3MiwgMC4wMDM5NzYsIDAuMDAzOTc4LCAwLjAwMzk4LCAwLjAwMzk4MSIsIFwKLSAgICAgICAgICAiMC4wMDM5NjksIDAuMDAzOTkyLCAwLjAwNDAwMywgMC4wMDQwMDgsIDAuMDA0MDExLCAwLjAwNDAxNCwgMC4wMDQwMTQiLCBcCi0gICAgICAgICAgIjAuMDA0MDI0LCAwLjAwNDAzNCwgMC4wMDQwNTUsIDAuMDA0MDYxLCAwLjAwNDA2NCwgMC4wMDQwNjcsIDAuMDA0MDY4IiwgXAotICAgICAgICAgICIwLjAwNDA5OCwgMC4wMDQxMSwgMC4wMDQxMzEsIDAuMDA0MTI4LCAwLjAwNDE0MSwgMC4wMDQxMzQsIDAuMDA0MTM1IiwgXAotICAgICAgICAgICIwLjAwNDIyNiwgMC4wMDQyMzYsIDAuMDA0MjU4LCAwLjAwNDI2NSwgMC4wMDQyNywgMC4wMDQyNzMsIDAuMDA0MjY3IiwgXAotICAgICAgICAgICIwLjAwNDM2MiwgMC4wMDQzNywgMC4wMDQzODEsIDAuMDA0Mzg4LCAwLjAwNDQwMiwgMC4wMDQ0MDYsIDAuMDA0Mzk4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyMDg3LCAwLjAwMjA4MSwgMC4wMDIwNywgMC4wMDIwNywgMC4wMDIwNywgMC4wMDIwNjMsIDAuMDAyMDY3IiwgXAotICAgICAgICAgICIwLjAwMjAzOSwgMC4wMDIwMzYsIDAuMDAyMDMyLCAwLjAwMjAzMSwgMC4wMDIwMzEsIDAuMDAyMDMsIDAuMDAyMDMiLCBcCi0gICAgICAgICAgIjAuMDAyMDQ2LCAwLjAwMjA0NCwgMC4wMDIwMzksIDAuMDAyMDM5LCAwLjAwMjAzNywgMC4wMDIwMzYsIDAuMDAyMDM2IiwgXAotICAgICAgICAgICIwLjAwMjEwOCwgMC4wMDIwOTcsIDAuMDAyMDgyLCAwLjAwMjA3OCwgMC4wMDIwNzYsIDAuMDAyMDc0LCAwLjAwMjA3NCIsIFwKLSAgICAgICAgICAiMC4wMDIxNjQsIDAuMDAyMTUzLCAwLjAwMjEzNiwgMC4wMDIxMzEsIDAuMDAyMTI4LCAwLjAwMjEyNiwgMC4wMDIxMjUiLCBcCi0gICAgICAgICAgIjAuMDAyMjg3LCAwLjAwMjI1NywgMC4wMDIyNCwgMC4wMDIyMzMsIDAuMDAyMjMsIDAuMDAyMjI2LCAwLjAwMjIyNSIsIFwKLSAgICAgICAgICAiMC4wMDIzODgsIDAuMDAyMzY4LCAwLjAwMjM0NiwgMC4wMDIzMzksIDAuMDAyMzM1LCAwLjAwMjMzMiwgMC4wMDIzMzEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDM2MDQsIDAuMDAzNjE0LCAwLjAwMzYyOCwgMC4wMDM2MywgMC4wMDM2MzIsIDAuMDAzNjMzLCAwLjAwMzYzMyIsIFwKLSAgICAgICAgICAiMC4wMDM1OTIsIDAuMDAzNjA0LCAwLjAwMzYyMiwgMC4wMDM2MjYsIDAuMDAzNjI4LCAwLjAwMzYzLCAwLjAwMzYzMSIsIFwKLSAgICAgICAgICAiMC4wMDM2MjEsIDAuMDAzNjMzLCAwLjAwMzY1NCwgMC4wMDM2NTksIDAuMDAzNjYyLCAwLjAwMzY2NCwgMC4wMDM2NjUiLCBcCi0gICAgICAgICAgIjAuMDAzNjgyLCAwLjAwMzY4MywgMC4wMDM3MDMsIDAuMDAzNzA4LCAwLjAwMzcxMiwgMC4wMDM3MiwgMC4wMDM3MTUiLCBcCi0gICAgICAgICAgIjAuMDAzNzQ0LCAwLjAwMzc1MiwgMC4wMDM3NzUsIDAuMDAzNzgsIDAuMDAzNzg3LCAwLjAwMzc4NiwgMC4wMDM3ODYiLCBcCi0gICAgICAgICAgIjAuMDAzODczLCAwLjAwMzg4NCwgMC4wMDM5LCAwLjAwMzkwNywgMC4wMDM5MTksIDAuMDAzOTIyLCAwLjAwMzkxNiIsIFwKLSAgICAgICAgICAiMC4wMDQwMDEsIDAuMDA0MDE0LCAwLjAwNDAzNSwgMC4wMDQwMzEsIDAuMDA0MDM2LCAwLjAwNDA1LCAwLjAwNDA1MiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkQiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjA4MiwgMC4wMDIwOCwgMC4wMDIwNzksIDAuMDAyMDc5LCAwLjAwMjA4LCAwLjAwMjA3OSwgMC4wMDIwNzkiLCBcCi0gICAgICAgICAgIjAuMDAyMDYsIDAuMDAyMDYxLCAwLjAwMjA2MiwgMC4wMDIwNjEsIDAuMDAyMDY0LCAwLjAwMjA2MiwgMC4wMDIwNjMiLCBcCi0gICAgICAgICAgIjAuMDAyMTE3LCAwLjAwMjExNCwgMC4wMDIxMTEsIDAuMDAyMTEsIDAuMDAyMTEsIDAuMDAyMTEsIDAuMDAyMTEiLCBcCi0gICAgICAgICAgIjAuMDAyMjE3LCAwLjAwMjIwMywgMC4wMDIxODUsIDAuMDAyMTgxLCAwLjAwMjE3OSwgMC4wMDIxNzcsIDAuMDAyMTc2IiwgXAotICAgICAgICAgICIwLjAwMjI5LCAwLjAwMjI3OSwgMC4wMDIyNjMsIDAuMDAyMjU4LCAwLjAwMjI1NiwgMC4wMDIyNTQsIDAuMDAyMjUzIiwgXAotICAgICAgICAgICIwLjAwMjQzMSwgMC4wMDI0NDIsIDAuMDAyNDA5LCAwLjAwMjQwMiwgMC4wMDIzOTcsIDAuMDAyMzkzLCAwLjAwMjM5MiIsIFwKLSAgICAgICAgICAiMC4wMDI1NzMsIDAuMDAyNTUxLCAwLjAwMjUyNSwgMC4wMDI1MTcsIDAuMDAyNTE0LCAwLjAwMjUwOSwgMC4wMDI1MDgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDMyNywgMC4wMDMyNzksIDAuMDAzMjkyLCAwLjAwMzI5NSwgMC4wMDMyOTYsIDAuMDAzMjk3LCAwLjAwMzI5OCIsIFwKLSAgICAgICAgICAiMC4wMDMyNiwgMC4wMDMyNzIsIDAuMDAzMjg5LCAwLjAwMzI5MywgMC4wMDMyOTUsIDAuMDAzMjk2LCAwLjAwMzI5NyIsIFwKLSAgICAgICAgICAiMC4wMDMyODksIDAuMDAzMzAxLCAwLjAwMzMyMiwgMC4wMDMzMjUsIDAuMDAzMzI5LCAwLjAwMzMzMSwgMC4wMDMzMyIsIFwKLSAgICAgICAgICAiMC4wMDMzNiwgMC4wMDMzNjgsIDAuMDAzMzgyLCAwLjAwMzM4NiwgMC4wMDMzODgsIDAuMDAzMzksIDAuMDAzMzkxIiwgXAotICAgICAgICAgICIwLjAwMzQyOCwgMC4wMDM0MzQsIDAuMDAzNDQ5LCAwLjAwMzQ1MywgMC4wMDM0NTYsIDAuMDAzNDU4LCAwLjAwMzQ1OSIsIFwKLSAgICAgICAgICAiMC4wMDM1NTgsIDAuMDAzNTUyLCAwLjAwMzU3MiwgMC4wMDM1NzgsIDAuMDAzNTg3LCAwLjAwMzU4NCwgMC4wMDM1ODUiLCBcCi0gICAgICAgICAgIjAuMDAzNjc4LCAwLjAwMzY3OCwgMC4wMDM3LCAwLjAwMzY5NCwgMC4wMDM3MSwgMC4wMDM3MDQsIDAuMDAzNzE1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBBTkQ0WDQgKgotICogLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChBTkQ0WDQpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC42NjM3NjQ7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDk0MjEyMzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA5NDIxMjM7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwOTQwMTQ0OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDUyNCwgMC4wMDA1MjQsIDAuMDAwNTI0LCAwLjAwMDUyNCwgMC4wMDA1MjQsIDAuMDAwNTI0LCAwLjAwMDUyMyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDUyNSwgMC4wMDA1MjYsIDAuMDAwNTI1LCAwLjAwMDUyNSwgMC4wMDA1MjUsIDAuMDAwNTI1LCAwLjAwMDUyNiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwOTgzNDkxOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDk4MzQ5MTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA5ODE5Njc7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNTI0LCAwLjAwMDUyNCwgMC4wMDA1MjQsIDAuMDAwNTI0LCAwLjAwMDUyNCwgMC4wMDA1MjIsIDAuMDAwNTI0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNTI1LCAwLjAwMDUyNSwgMC4wMDA1MjYsIDAuMDAwNTI2LCAwLjAwMDUyNiwgMC4wMDA1MjYsIDAuMDAwNTI2Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihDKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA5ODM4NTk7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwOTgzODU5OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDk4MjU5MjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA1MjQsIDAuMDAwNTI0LCAwLjAwMDUyNCwgMC4wMDA1MjQsIDAuMDAwNTI0LCAwLjAwMDUyNCwgMC4wMDA1MjQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA1MjUsIDAuMDAwNTI1LCAwLjAwMDUyNSwgMC4wMDA1MjUsIDAuMDAwNTI2LCAwLjAwMDUyNiwgMC4wMDA1MjYiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEQpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDk2MjAwMzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA5NjE4NzI7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwOTYyMDAzOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDMyOSwgMC4wMDAzMjgsIDAuMDAwMzI4LCAwLjAwMDMyOCwgMC4wMDAzMjgsIDAuMDAwMzI4LCAwLjAwMDMyOCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDU5NSwgMC4wMDA1OTYsIDAuMDAwNTk2LCAwLjAwMDU5NiwgMC4wMDA1OTYsIDAuMDAwNTk2LCAwLjAwMDU5NiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAxLjM2MjE3OwotICAgIGZ1bmN0aW9uIDogIigoKEEgQikgQykgRCkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg1NTE2LCAwLjE1MzM3NiwgMC4yMDk2OTEsIDAuMjQ5MDcxLCAwLjMxMTc4LCAwLjM2NjYyMiwgMC40NDQ5MjciLCBcCi0gICAgICAgICAgIjAuMDkwMTIyLCAwLjE1ODAzMywgMC4yMTQyODksIDAuMjUzNjQ0LCAwLjMxNjM3NCwgMC4zNzEyMjMsIDAuNDQ5NTQyIiwgXAotICAgICAgICAgICIwLjA5NTA3NSwgMC4xNjI5NSwgMC4yMTkyNCwgMC4yNTg2MDMsIDAuMzIxMzE3LCAwLjM3NjE3MywgMC40NTQ0ODgiLCBcCi0gICAgICAgICAgIjAuMDk5NjQ0LCAwLjE2NzQ1OSwgMC4yMjM2OTgsIDAuMjYzMDk1LCAwLjMyNTc5MiwgMC4zODA2MjcsIDAuNDU4OTQ5IiwgXAotICAgICAgICAgICIwLjEwNDA0NCwgMC4xNzIwODksIDAuMjI4MzE0LCAwLjI2NzcwOSwgMC4zMzA0MTEsIDAuMzg1MjczLCAwLjQ2MzU5MiIsIFwKLSAgICAgICAgICAiMC4xMTA0NDcsIDAuMTc4OTA3LCAwLjIzNTMxNiwgMC4yNzQ2NjgsIDAuMzM3Mzk0LCAwLjM5MjIzMiwgMC40NzA1NDEiLCBcCi0gICAgICAgICAgIjAuMTE1ODgsIDAuMTg0NzY2LCAwLjI0MTEwNywgMC4yODA1MiwgMC4zNDMyNTMsIDAuMzk4MDUxLCAwLjQ3NjM1MyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0MTExLCAwLjE1MjQ1LCAwLjI2MzU1LCAwLjM0NDE1MiwgMC40NzQyMTksIDAuNTg5MzM0LCAwLjc1NDE4NyIsIFwKLSAgICAgICAgICAiMC4wNDExODEsIDAuMTUyNDM0LCAwLjI2MzU1NSwgMC4zNDQxMTMsIDAuNDc0MjYyLCAwLjU4OTMzOCwgMC43NTI4NzIiLCBcCi0gICAgICAgICAgIjAuMDQwOTYzLCAwLjE1MjI1LCAwLjI2MzQ2MSwgMC4zNDM4NjQsIDAuNDc0MTgsIDAuNTg5MjY5LCAwLjc1NDA3OCIsIFwKLSAgICAgICAgICAiMC4wNDEyODYsIDAuMTUyMzE5LCAwLjI2MzU0NywgMC4zNDQxNTIsIDAuNDc0MjAzLCAwLjU4OTM1MiwgMC43NTMwNDIiLCBcCi0gICAgICAgICAgIjAuMDQxNzM2LCAwLjE1MjY5MiwgMC4yNjM2NDUsIDAuMzQ0MjUxLCAwLjQ3NDI2MSwgMC41ODkzMSwgMC43NTQxMTYiLCBcCi0gICAgICAgICAgIjAuMDQyNjM1LCAwLjE1MzI4NSwgMC4yNjQwMDMsIDAuMzQ0NDc4LCAwLjQ3NDM5NSwgMC41ODk0NjIsIDAuNzU0MjA2IiwgXAotICAgICAgICAgICIwLjA0MzI0NywgMC4xNTQwMDgsIDAuMjY0NTA0LCAwLjM0NDkwNywgMC40NzQ3NDYsIDAuNTg5NTY3LCAwLjc1Mjg3NyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0MDI0NywgMC4wOTYyNjcsIDAuMTUwMjA1LCAwLjE4ODcwNSwgMC4yNTAyNTQsIDAuMzA0MTE3LCAwLjM4MTAwMSIsIFwKLSAgICAgICAgICAiMC4wNDg1MDIsIDAuMTA0NDY1LCAwLjE1ODQyNiwgMC4xOTY5MjUsIDAuMjU4NDY3LCAwLjMxMjMzMSwgMC4zODkyMTYiLCBcCi0gICAgICAgICAgIjAuMDU4NjMzLCAwLjExNDU2MSwgMC4xNjg1MDYsIDAuMjA2OTg3LCAwLjI2ODU1MSwgMC4zMjI0MTYsIDAuMzk5Mjg3IiwgXAotICAgICAgICAgICIwLjA2Njc4MywgMC4xMjI5NTcsIDAuMTc2ODgsIDAuMjE1MzY3LCAwLjI3NjkxMywgMC4zMzA3NzQsIDAuNDA3NjU0IiwgXAotICAgICAgICAgICIwLjA3MzQ1MywgMC4xMjk4NDQsIDAuMTgzNzMxLCAwLjIyMjIxNiwgMC4yODM3ODQsIDAuMzM3NTg2LCAwLjQxNDUwNCIsIFwKLSAgICAgICAgICAiMC4wODE4MTksIDAuMTM4Nzk3LCAwLjE5MjY0OCwgMC4yMzExMDMsIDAuMjkyNjI5LCAwLjM0NjQ2NCwgMC40MjMzNzUiLCBcCi0gICAgICAgICAgIjAuMDg3ODUsIDAuMTQ1MjM0LCAwLjE5OTIwOSwgMC4yMzc2NjIsIDAuMjk5MTc1LCAwLjM1MzAxNiwgMC40Mjk5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDI2MjYyLCAwLjEzNDI1NiwgMC4yNDU1NzksIDAuMzI1NDU3LCAwLjQ1Mjg5NywgMC41NjUzNjQsIDAuNzI1NDgyIiwgXAotICAgICAgICAgICIwLjAyNjIyNywgMC4xMzQzNywgMC4yNDU2MjUsIDAuMzI1NDY4LCAwLjQ1MjgxNiwgMC41NjUzODEsIDAuNzI1NDQ5IiwgXAotICAgICAgICAgICIwLjAyNjc2NiwgMC4xMzQ0NzksIDAuMjQ1NjQ0LCAwLjMyNTQzMiwgMC40NTI4OTIsIDAuNTY1MzY0LCAwLjcyNTQwNiIsIFwKLSAgICAgICAgICAiMC4wMjg0MDksIDAuMTM0NzcxLCAwLjI0NTQ0NSwgMC4zMjU0OTEsIDAuNDUyOTA1LCAwLjU2NDYwMywgMC43MjU0MjEiLCBcCi0gICAgICAgICAgIjAuMDI5NTIxLCAwLjEzNTE1NywgMC4yNDU4NjcsIDAuMzI1NTg0LCAwLjQ1MjYzNywgMC41NjQ4NTcsIDAuNzI1NDM4IiwgXAotICAgICAgICAgICIwLjAzMTUzOCwgMC4xMzU3MzIsIDAuMjQ2MTEzLCAwLjMyNTcyNywgMC40NTM0ODcsIDAuNTY0OTAzLCAwLjcyNTM5NiIsIFwKLSAgICAgICAgICAiMC4wMzMxNzcsIDAuMTM2Mzk5LCAwLjI0NjI2OCwgMC4zMjU1ODksIDAuNDUzNTA3LCAwLjU2NTQyMiwgMC43MjQ3MzkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODQwNTMsIDAuMTUxODczLCAwLjIwODE4NiwgMC4yNDc1NTksIDAuMzEwMjY5LCAwLjM2NTEwMywgMC40NDM0MTciLCBcCi0gICAgICAgICAgIjAuMDg5MTU1LCAwLjE1NzA1MywgMC4yMTMzNDMsIDAuMjUyNjcyLCAwLjMxNTQwMSwgMC4zNzAyNTMsIDAuNDQ4NTcyIiwgXAotICAgICAgICAgICIwLjA5NTUxLCAwLjE2MzMxOSwgMC4yMTk1OTMsIDAuMjU4OTk3LCAwLjMyMTY5OSwgMC4zNzY1MzcsIDAuNDU0ODQyIiwgXAotICAgICAgICAgICIwLjEwMTc5NCwgMC4xNjk1OTIsIDAuMjI1ODU3LCAwLjI2NTIyOCwgMC4zMjc5MzEsIDAuMzgyNzc2LCAwLjQ2MTEwNyIsIFwKLSAgICAgICAgICAiMC4xMDc4MjksIDAuMTc1Nzc2LCAwLjIzMjAwMiwgMC4yNzEzNDUsIDAuMzM0MDc2LCAwLjM4ODkxNiwgMC40NjcyMzciLCBcCi0gICAgICAgICAgIjAuMTE2NzI4LCAwLjE4NTIyNCwgMC4yNDE1NzEsIDAuMjgwOTM1LCAwLjM0MzY3LCAwLjM5ODQ5NCwgMC40NzY3OTEiLCBcCi0gICAgICAgICAgIjAuMTIzODc0LCAwLjE5MjkyNiwgMC4yNDkzMjcsIDAuMjg4NzEyLCAwLjM1MTQ0MSwgMC40MDYyOTgsIDAuNDg0NjQ5Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQxMTEzLCAwLjE1MjQyMywgMC4yNjM1NTQsIDAuMzQ0MDA3LCAwLjQ3NDIyMSwgMC41ODkzNDcsIDAuNzU0MTgxIiwgXAotICAgICAgICAgICIwLjA0MTIsIDAuMTUyNDA0LCAwLjI2MzUyNCwgMC4zNDM5MzUsIDAuNDc0MjU0LCAwLjU4OTMzNCwgMC43NTQxNjYiLCBcCi0gICAgICAgICAgIjAuMDQxMDI3LCAwLjE1MjMzNywgMC4yNjM0ODMsIDAuMzQ0MTA1LCAwLjQ3NDE3LCAwLjU4OTMxNiwgMC43NTMyNjgiLCBcCi0gICAgICAgICAgIjAuMDQxMTAzLCAwLjE1MjMwOCwgMC4yNjM1MDIsIDAuMzQ0MTM2LCAwLjQ3NDE5NSwgMC41ODkyNTksIDAuNzU0MDg2IiwgXAotICAgICAgICAgICIwLjA0MTcyLCAwLjE1Mjc2MSwgMC4yNjM1NTksIDAuMzQzOTc5LCAwLjQ3NDIyMSwgMC41ODkzNTksIDAuNzU0MTQ0IiwgXAotICAgICAgICAgICIwLjA0MjY3OSwgMC4xNTM1NjYsIDAuMjY0MTQyLCAwLjM0NDYyNiwgMC40NzQ1NTYsIDAuNTg5NSwgMC43NTQyNDEiLCBcCi0gICAgICAgICAgIjAuMDQzNjQ5LCAwLjE1NDEwMywgMC4yNjQ1OTIsIDAuMzQ0NzU0LCAwLjQ3NDc0OSwgMC41ODg5MjIsIDAuNzUzMDg3Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM5NDI5LCAwLjA5NTI4LCAwLjE0OTE5MSwgMC4xODc2NzQsIDAuMjQ5MjE4LCAwLjMwMzA2NSwgMC4zNzk5MzgiLCBcCi0gICAgICAgICAgIjAuMDQ3NjcyLCAwLjEwMzUxMSwgMC4xNTc0MzgsIDAuMTk1OTExLCAwLjI1NzQ2MywgMC4zMTEzMTUsIDAuMzg4MTg3IiwgXAotICAgICAgICAgICIwLjA1NzU1NCwgMC4xMTM0MjEsIDAuMTY3MzU1LCAwLjIwNTgxMywgMC4yNjczNjgsIDAuMzIxMjA3LCAwLjM5ODA4NyIsIFwKLSAgICAgICAgICAiMC4wNjUzNjksIDAuMTIxNDgzLCAwLjE3NTM4NiwgMC4yMTM4NjYsIDAuMjc1Mzk2LCAwLjMyOTI1OCwgMC40MDYxMjciLCBcCi0gICAgICAgICAgIjAuMDcxOTIzLCAwLjEyODQwMiwgMC4xODIzMDEsIDAuMjIwNzY0LCAwLjI4MjI5NCwgMC4zMzYxMjgsIDAuNDEzMDExIiwgXAotICAgICAgICAgICIwLjA3OTkxMywgMC4xMzY4ODksIDAuMTkwNzc4LCAwLjIyOTIyOCwgMC4yOTA3NDEsIDAuMzQ0NjA0LCAwLjQyMTQ3NCIsIFwKLSAgICAgICAgICAiMC4wODU2MTksIDAuMTQzMTQyLCAwLjE5NzE3OCwgMC4yMzU0MjIsIDAuMjk3MTE1LCAwLjM1MDkzOSwgMC40Mjc2NCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyNjAwMiwgMC4xMzQwNTUsIDAuMjQ1NDAxLCAwLjMyNDg1OCwgMC40NTI0NTIsIDAuNTY1MzA4LCAwLjcyNTMxOCIsIFwKLSAgICAgICAgICAiMC4wMjU5NzQsIDAuMTM0MDQ2LCAwLjI0NTQ2NSwgMC4zMjUyODUsIDAuNDUyNDAxLCAwLjU2NTMyLCAwLjcyNDY1MyIsIFwKLSAgICAgICAgICAiMC4wMjY2NDIsIDAuMTM0MzEyLCAwLjI0NTAxOSwgMC4zMjUyNjQsIDAuNDUyNjA2LCAwLjU2NTMxMSwgMC43MjUzNCIsIFwKLSAgICAgICAgICAiMC4wMjgzNzIsIDAuMTM0NTE1LCAwLjI0NTU4OCwgMC4zMjUwMiwgMC40NTI3NjksIDAuNTY1Mjg4LCAwLjcyNTM1IiwgXAotICAgICAgICAgICIwLjAyOTQwNiwgMC4xMzQ5NDksIDAuMjQ1NTI4LCAwLjMyNTA2NSwgMC40NTI3NDcsIDAuNTY0NzMzLCAwLjcyNTI3NiIsIFwKLSAgICAgICAgICAiMC4wMzE0OTIsIDAuMTM1NjUxLCAwLjI0NTk4MiwgMC4zMjUxNzYsIDAuNDUzMzMyLCAwLjU2NTIsIDAuNzI0MzAzIiwgXAotICAgICAgICAgICIwLjAzMzA4MiwgMC4xMzYyOTYsIDAuMjQ2MTU0LCAwLjMyNTM3MiwgMC40NTMyNDYsIDAuNTY0ODYxLCAwLjcyNTMyMSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4MTE2NSwgMC4xNDg4ODksIDAuMjA1MTY3LCAwLjI0NDU2NiwgMC4zMDcyNjIsIDAuMzYyMTAyLCAwLjQ0MDQwMiIsIFwKLSAgICAgICAgICAiMC4wODY5NiwgMC4xNTQ4NywgMC4yMTExNzksIDAuMjUwNTQ3LCAwLjMxMzI4MiwgMC4zNjgxMTgsIDAuNDQ2NDM3IiwgXAotICAgICAgICAgICIwLjA5NDk2NSwgMC4xNjI4NzIsIDAuMjE5MTMxLCAwLjI1ODUyOCwgMC4zMjEyMzUsIDAuMzc2MDc5LCAwLjQ1NDM4NCIsIFwKLSAgICAgICAgICAiMC4xMDMwOTEsIDAuMTcwODg4LCAwLjIyNzEyNCwgMC4yNjY0OTgsIDAuMzI5MTk5LCAwLjM4NDAzNSwgMC40NjIzNzUiLCBcCi0gICAgICAgICAgIjAuMTEwODkxLCAwLjE3ODc4OCwgMC4yMzQ5NzksIDAuMjc0MzU0LCAwLjMzNzA0NiwgMC4zOTE5MDIsIDAuNDcwMjE3IiwgXAotICAgICAgICAgICIwLjEyMjMzNCwgMC4xOTA2NDksIDAuMjQ2OTU3LCAwLjI4NjMyNSwgMC4zNDkwMzgsIDAuNDAzODMxLCAwLjQ4MjE4MiIsIFwKLSAgICAgICAgICAiMC4xMzEzMzIsIDAuMjAwMjU0LCAwLjI1NjcwMywgMC4yOTYxMDMsIDAuMzU4ODA2LCAwLjQxMzYzLCAwLjQ5MTkzMiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0MDk5NiwgMC4xNTI0NzksIDAuMjYzNTc5LCAwLjM0Mzg2NiwgMC40NzQyNCwgMC41ODkzMzMsIDAuNzUzOSIsIFwKLSAgICAgICAgICAiMC4wNDExNTUsIDAuMTUyMzM0LCAwLjI2MzUwNiwgMC4zNDM4MjUsIDAuNDc0MjA0LCAwLjU4OTM0LCAwLjc1NDE2NiIsIFwKLSAgICAgICAgICAiMC4wNDA5MzUsIDAuMTUyMzE3LCAwLjI2MzQ1MywgMC4zNDQxMDQsIDAuNDc0MTc0LCAwLjU4ODcyMiwgMC43NTM4MTEiLCBcCi0gICAgICAgICAgIjAuMDQxNDE3LCAwLjE1MjQ0MywgMC4yNjM1NzEsIDAuMzQ0MTksIDAuNDc0MjI0LCAwLjU4ODc0MSwgMC43NTQxIiwgXAotICAgICAgICAgICIwLjA0MTgxNywgMC4xNTI4MzYsIDAuMjYzNzQxLCAwLjM0NDMwOCwgMC40NzQyOTUsIDAuNTg5MzI0LCAwLjc1NDE0OSIsIFwKLSAgICAgICAgICAiMC4wNDM2NzksIDAuMTUzNzEyLCAwLjI2NDI5OCwgMC4zNDQ2NjUsIDAuNDc0NTcxLCAwLjU4OTM4MSwgMC43NTQyNDEiLCBcCi0gICAgICAgICAgIjAuMDQ0MzYsIDAuMTU0NDU3LCAwLjI2NDc4MSwgMC4zNDUwNjIsIDAuNDc0NzQzLCAwLjU4OTY2LCAwLjc1MzAzNyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzODIwNiwgMC4wOTM5MTUsIDAuMTQ3ODAzLCAwLjE4NjI2NywgMC4yNDc4MjksIDAuMzAxNjI3LCAwLjM3ODQ5NyIsIFwKLSAgICAgICAgICAiMC4wNDY0ODUsIDAuMTAyMiwgMC4xNTYwOTUsIDAuMTk0NTYzLCAwLjI1NjEwMywgMC4zMDk5MywgMC4zODY4IiwgXAotICAgICAgICAgICIwLjA1NjE1LCAwLjExMTkyMiwgMC4xNjU4MDMsIDAuMjA0Mjk1LCAwLjI2NTgwOCwgMC4zMTk2MjgsIDAuMzk2NDk4IiwgXAotICAgICAgICAgICIwLjA2MzkxMSwgMC4xMTk5MjQsIDAuMTczODA3LCAwLjIxMjMxNywgMC4yNzM4MzEsIDAuMzI3NjIsIDAuNDA0NTUzIiwgXAotICAgICAgICAgICIwLjA2OTkzNCwgMC4xMjYyNjIsIDAuMTgwMjM1LCAwLjIxODY4MSwgMC4yODAyMDQsIDAuMzMzODk5LCAwLjQxMDgyOSIsIFwKLSAgICAgICAgICAiMC4wNzc1NTgsIDAuMTM0NTYyLCAwLjE4ODM5MywgMC4yMjY4MTgsIDAuMjg4NDIzLCAwLjM0MjIxMiwgMC40MTkwMSIsIFwKLSAgICAgICAgICAiMC4wODI5MDcsIDAuMTQwMjE5LCAwLjE5NDMyOSwgMC4yMzI3NDcsIDAuMjk0Mjc1LCAwLjM0Nzc0OSwgMC40MjQ5NTQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjU3NjYsIDAuMTM0MDM2LCAwLjI0NTM0MSwgMC4zMjQ4MjksIDAuNDUyMiwgMC41NjUyMjUsIDAuNzI1MjE5IiwgXAotICAgICAgICAgICIwLjAyNTc0NSwgMC4xMzQwNDcsIDAuMjQ1MzM2LCAwLjMyNTE0NywgMC40NTMxODUsIDAuNTY1MjIzLCAwLjcyNTE2NyIsIFwKLSAgICAgICAgICAiMC4wMjY2NjMsIDAuMTM0MTc1LCAwLjI0NTEwMSwgMC4zMjQ1NzcsIDAuNDUyNTE1LCAwLjU2NTIxNiwgMC43MjUyMzMiLCBcCi0gICAgICAgICAgIjAuMDI4MDczLCAwLjEzNDQzMiwgMC4yNDUxLCAwLjMyNTI1MywgMC40NTMxMiwgMC41NjQ2MzUsIDAuNzI1MjUzIiwgXAotICAgICAgICAgICIwLjAyOTU1LCAwLjEzNDg3NSwgMC4yNDU2MzMsIDAuMzI1MzI3LCAwLjQ1MzE4MywgMC41NjQ2MTksIDAuNzI1MzA5IiwgXAotICAgICAgICAgICIwLjAzMTc1MiwgMC4xMzU1OTksIDAuMjQ1Njg2LCAwLjMyNTM1NSwgMC40NTI2NjksIDAuNTY0NjA3LCAwLjcyNTI0OSIsIFwKLSAgICAgICAgICAiMC4wMzMxNjcsIDAuMTM2MzI2LCAwLjI0NTk0OCwgMC4zMjUzNzMsIDAuNDUyNzMzLCAwLjU2NDQ4MiwgMC43MjQ5NTkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzY2ODMsIDAuMTQ0NTI1LCAwLjIwMDgzMiwgMC4yNDAyMzksIDAuMzAyOTQsIDAuMzU3NzgxLCAwLjQzNjA3IiwgXAotICAgICAgICAgICIwLjA4MzE3MiwgMC4xNTEwNzYsIDAuMjA3Mzc0LCAwLjI0NjczNywgMC4zMDk0NzQsIDAuMzY0MzI0LCAwLjQ0MjY0MyIsIFwKLSAgICAgICAgICAiMC4wOTIzMiwgMC4xNjAxOTIsIDAuMjE2NDMxLCAwLjI1NTgzMiwgMC4zMTg1NDEsIDAuMzczMzgzLCAwLjQ1MTcwOCIsIFwKLSAgICAgICAgICAiMC4xMDE1NjQsIDAuMTY5MjcxLCAwLjIyNTQ4OCwgMC4yNjQ4ODYsIDAuMzI3NTkyLCAwLjM4MjQzOSwgMC40NjA3NzciLCBcCi0gICAgICAgICAgIjAuMTEwNTYzLCAwLjE3ODQ0OCwgMC4yMzQ3MTEsIDAuMjc0MDY4LCAwLjMzNjc4NSwgMC4zOTE2NDUsIDAuNDY5OTY1IiwgXAotICAgICAgICAgICIwLjEyMzgxOCwgMC4xOTE5NTksIDAuMjQ4MjU0LCAwLjI4NzYwNCwgMC4zNTAzMTgsIDAuNDA1MTQ3LCAwLjQ4MzQ2NSIsIFwKLSAgICAgICAgICAiMC4xMzM5MiwgMC4yMDI2NjQsIDAuMjU4NzYyLCAwLjI5ODEwOCwgMC4zNjA4MTQsIDAuNDE1NjIxLCAwLjQ5MzkzNCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0MTEwNSwgMC4xNTI0MDksIDAuMjYzNTQzLCAwLjM0NDAxOSwgMC40NzQyMjEsIDAuNTg5MzMzLCAwLjc1MzY2OCIsIFwKLSAgICAgICAgICAiMC4wNDEwMzksIDAuMTUyMzQyLCAwLjI2MzUxNSwgMC4zNDM4OTYsIDAuNDc0MjM2LCAwLjU4OTMxOSwgMC43NTQxNTQiLCBcCi0gICAgICAgICAgIjAuMDQwOTM2LCAwLjE1MjIzMSwgMC4yNjM0ODQsIDAuMzQ0MTAyLCAwLjQ3NDQ3NiwgMC41ODg1MDgsIDAuNzUzOTMzIiwgXAotICAgICAgICAgICIwLjA0MTAxNCwgMC4xNTI0NDgsIDAuMjYzNDIyLCAwLjM0NDE3MiwgMC40NzQyMTYsIDAuNTg4NzI5LCAwLjc1NDExIiwgXAotICAgICAgICAgICIwLjA0MjAzNiwgMC4xNTI4NjgsIDAuMjYzNzU3LCAwLjM0NDAzMSwgMC40NzQzMDIsIDAuNTg5MzMzLCAwLjc1NDE4NyIsIFwKLSAgICAgICAgICAiMC4wNDM3NzQsIDAuMTUzNTUzLCAwLjI2NDE5MSwgMC4zNDQ2MjQsIDAuNDc0NTEyLCAwLjU4OTQ5LCAwLjc1NDIzNyIsIFwKLSAgICAgICAgICAiMC4wNDUzNzUsIDAuMTU0NTcxLCAwLjI2NTA1NCwgMC4zNDUyMzUsIDAuNDc1MDExLCAwLjU4OTIyMywgMC43NTMyNjciKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzY1MDEsIDAuMDkyMTA0LCAwLjE0NTk2NywgMC4xODQ0MSwgMC4yNDU5NSwgMC4yOTk3NTksIDAuMzc2NzI0IiwgXAotICAgICAgICAgICIwLjA0NDc1NywgMC4xMDAzMTIsIDAuMTU0MTgxLCAwLjE5MjYzOSwgMC4yNTQxNzQsIDAuMzA4MTQsIDAuMzg0OTM5IiwgXAotICAgICAgICAgICIwLjA1NDEyNCwgMC4xMDk2MDUsIDAuMTYzNDYyLCAwLjIwMTkyNCwgMC4yNjM0NjcsIDAuMzE3NDUxLCAwLjM5NDIxNyIsIFwKLSAgICAgICAgICAiMC4wNjE1MDUsIDAuMTE3NDU2LCAwLjE3MTI5NiwgMC4yMDk3NjUsIDAuMjcxMzgyLCAwLjMyNTE2MywgMC40MDIwNDIiLCBcCi0gICAgICAgICAgIjAuMDY3MjU0LCAwLjEyMzQ4OSwgMC4xNzc0NjQsIDAuMjE1OTM5LCAwLjI3NzQ1NywgMC4zMzEzMzcsIDAuNDA4MjgiLCBcCi0gICAgICAgICAgIjAuMDc0MTgzLCAwLjEzMTE2NSwgMC4xODQ4ODksIDAuMjIzMjU0LCAwLjI4NDczOCwgMC4zMzg1NDEsIDAuNDE1NDYxIiwgXAotICAgICAgICAgICIwLjA3OTI0OCwgMC4xMzY0NzQsIDAuMTkwMjI0LCAwLjIyODYxOSwgMC4yOTAwOTMsIDAuMzQzODkxLCAwLjQyMDc2MyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyNTQ3MSwgMC4xMzM3MDUsIDAuMjQ1MjQ0LCAwLjMyNTA3MywgMC40NTMxNzgsIDAuNTY1MDE1LCAwLjcyMzc0NiIsIFwKLSAgICAgICAgICAiMC4wMjU0NTMsIDAuMTMzODYyLCAwLjI0NTIxLCAwLjMyNTAxNywgMC40NTMxNiwgMC41NjQyMzUsIDAuNzI1MjExIiwgXAotICAgICAgICAgICIwLjAyNjQ0OSwgMC4xMzM4ODYsIDAuMjQ1MjEzLCAwLjMyNTEzOCwgMC40NTMxODMsIDAuNTY0MjMxLCAwLjcyMzk0NSIsIFwKLSAgICAgICAgICAiMC4wMjc5NzQsIDAuMTM0NDI3LCAwLjI0NTM4NSwgMC4zMjUyMzQsIDAuNDUyMzc0LCAwLjU2NTA2NywgMC43MjM5NSIsIFwKLSAgICAgICAgICAiMC4wMjk1MDUsIDAuMTM0ODgxLCAwLjI0NTU0MSwgMC4zMjUyNzQsIDAuNDUzMTg4LCAwLjU2Mzk3OCwgMC43MjQ1MTQiLCBcCi0gICAgICAgICAgIjAuMDMxODIsIDAuMTM1NTYyLCAwLjI0NTkwOSwgMC4zMjU0MzQsIDAuNDUzMjY5LCAwLjU2NTI4NiwgMC43MjUyMiIsIFwKLSAgICAgICAgICAiMC4wMzMyODYsIDAuMTM2NTc3LCAwLjI0NjA0OCwgMC4zMjUzNSwgMC40NTMzNDgsIDAuNTY1Mjk2LCAwLjcyNTQxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDY1MzksIDAuMDA2MTY4LCAwLjAwNjEyNCwgMC4wMDYxMTIsIDAuMDA2MDk3LCAwLjAwNjA4NSwgMC4wMDYwODQiLCBcCi0gICAgICAgICAgIjAuMDA2MzgyLCAwLjAwNjA3MSwgMC4wMDYwNDMsIDAuMDA2MDMzLCAwLjAwNjAyNCwgMC4wMDYwMTcsIDAuMDA2MDEiLCBcCi0gICAgICAgICAgIjAuMDA2MjkzLCAwLjAwNjAyMSwgMC4wMDYwMDIsIDAuMDA1OTk0LCAwLjAwNTk4NywgMC4wMDU5ODMsIDAuMDA1OTc5IiwgXAotICAgICAgICAgICIwLjAwNjM3NywgMC4wMDYwNTEsIDAuMDA2MDIsIDAuMDA2MDExLCAwLjAwNjAwMSwgMC4wMDU5OTQsIDAuMDA1OTg5IiwgXAotICAgICAgICAgICIwLjAwNjQyMSwgMC4wMDYwNzgsIDAuMDA2MDQyLCAwLjAwNjAzMiwgMC4wMDYwMTUsIDAuMDA2MDE2LCAwLjAwNjAxMSIsIFwKLSAgICAgICAgICAiMC4wMDY2MjIsIDAuMDA2MTg1LCAwLjAwNjEzOCwgMC4wMDYxMjMsIDAuMDA2MTA5LCAwLjAwNjEwMSwgMC4wMDYwOTQiLCBcCi0gICAgICAgICAgIjAuMDA2ODgxLCAwLjAwNjMyNiwgMC4wMDYyNiwgMC4wMDYyNDMsIDAuMDA2MjIsIDAuMDA2MjA5LCAwLjAwNjIwMSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA5NTUsIDAuMDA5NzA4LCAwLjAwOTczNSwgMC4wMDk3NDQsIDAuMDA5NzUyLCAwLjAwOTc1NSwgMC4wMDk3NTkiLCBcCi0gICAgICAgICAgIjAuMDA5NTA0LCAwLjAwOTY3NSwgMC4wMDk3MSwgMC4wMDk3MjIsIDAuMDA5NzMyLCAwLjAwOTczOCwgMC4wMDk3NDMiLCBcCi0gICAgICAgICAgIjAuMDA5NjMyLCAwLjAwOTcwMiwgMC4wMDk3MzUsIDAuMDA5NzQ3LCAwLjAwOTc1OCwgMC4wMDk3NjMsIDAuMDA5NzY5IiwgXAotICAgICAgICAgICIwLjAwOTc3NSwgMC4wMDk3NjcsIDAuMDA5Nzk1LCAwLjAwOTgwNiwgMC4wMDk4MTYsIDAuMDA5ODIyLCAwLjAwOTgyNyIsIFwKLSAgICAgICAgICAiMC4wMDk5MDUsIDAuMDA5ODU0LCAwLjAwOTg3OSwgMC4wMDk4ODgsIDAuMDA5ODk3LCAwLjAwOTkwMiwgMC4wMDk5MDciLCBcCi0gICAgICAgICAgIjAuMDEwMTMxLCAwLjAxMDA2MSwgMC4wMTAwNjIsIDAuMDEwMDY0LCAwLjAxMDA2OSwgMC4wMTAwNzEsIDAuMDEwMDcyIiwgXAotICAgICAgICAgICIwLjAxMDQxOSwgMC4wMTAxODksIDAuMDEwMjAyLCAwLjAxMDIwNSwgMC4wMTAyMTQsIDAuMDEwMjIxLCAwLjAxMDIyNSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2NDMyLCAwLjAwNjE4NCwgMC4wMDYxNDQsIDAuMDA2MTMxLCAwLjAwNjExNywgMC4wMDYxMDksIDAuMDA2MTA0IiwgXAotICAgICAgICAgICIwLjAwNjM3OSwgMC4wMDYwNzgsIDAuMDA2MDU0LCAwLjAwNjA0NSwgMC4wMDYwMzYsIDAuMDA2MDM0LCAwLjAwNjAzIiwgXAotICAgICAgICAgICIwLjAwNjMwNywgMC4wMDYwMzQsIDAuMDA2MDIsIDAuMDA2MDEzLCAwLjAwNjAwNywgMC4wMDYwMDYsIDAuMDA2MDAxIiwgXAotICAgICAgICAgICIwLjAwNjM4OCwgMC4wMDYwNjQsIDAuMDA2MDQsIDAuMDA2MDM1LCAwLjAwNjAyNiwgMC4wMDYwMTgsIDAuMDA2MDIxIiwgXAotICAgICAgICAgICIwLjAwNjU4NiwgMC4wMDYxMzYsIDAuMDA2MDk0LCAwLjAwNjA4MSwgMC4wMDYwNzEsIDAuMDA2MDY1LCAwLjAwNjA1OSIsIFwKLSAgICAgICAgICAiMC4wMDY2OTUsIDAuMDA2MzIxLCAwLjAwNjI0NCwgMC4wMDYyMTUsIDAuMDA2MTkxLCAwLjAwNjE3NSwgMC4wMDYxNyIsIFwKLSAgICAgICAgICAiMC4wMDY4MTgsIDAuMDA2MzQ2LCAwLjAwNjI5OCwgMC4wMDYyODUsIDAuMDA2MjczLCAwLjAwNjI2NiwgMC4wMDYyNTgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwOTExNCwgMC4wMDkzNDIsIDAuMDA5Mzc5LCAwLjAwOTM5MSwgMC4wMDk0MDEsIDAuMDA5NDA3LCAwLjAwOTQxMiIsIFwKLSAgICAgICAgICAiMC4wMDkwNjQsIDAuMDA5MzAxLCAwLjAwOTM0OSwgMC4wMDkzNjQsIDAuMDA5Mzc5LCAwLjAwOTM4NiwgMC4wMDkzOTIiLCBcCi0gICAgICAgICAgIjAuMDA5MTg3LCAwLjAwOTMyMSwgMC4wMDkzNjcsIDAuMDA5Mzg0LCAwLjAwOTM5OSwgMC4wMDk0MDcsIDAuMDA5NDE0IiwgXAotICAgICAgICAgICIwLjAwOTMsIDAuMDA5Mzc2LCAwLjAwOTQyMSwgMC4wMDk0MzgsIDAuMDA5NDU1LCAwLjAwOTQ2NCwgMC4wMDk0NzIiLCBcCi0gICAgICAgICAgIjAuMDA5NDQ3LCAwLjAwOTQ0OSwgMC4wMDk0OTEsIDAuMDA5NTA3LCAwLjAwOTUyMywgMC4wMDk1MzMsIDAuMDA5NTQxIiwgXAotICAgICAgICAgICIwLjAwOTYzOSwgMC4wMDk1OTEsIDAuMDA5NjUsIDAuMDA5NjUyLCAwLjAwOTY3NiwgMC4wMDk2ODQsIDAuMDA5NjkyIiwgXAotICAgICAgICAgICIwLjAwOTkwNywgMC4wMDk3NTgsIDAuMDA5Nzg0LCAwLjAwOTgxMSwgMC4wMDk4MTgsIDAuMDA5ODI3LCAwLjAwOTg1MSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2NDUxLCAwLjAwNjE3NCwgMC4wMDYxNDgsIDAuMDA2MTQ1LCAwLjAwNjEzLCAwLjAwNjEzNCwgMC4wMDYxMTUiLCBcCi0gICAgICAgICAgIjAuMDA2MzgyLCAwLjAwNjA5MiwgMC4wMDYwNjksIDAuMDA2MDY2LCAwLjAwNjA1OCwgMC4wMDYwNTksIDAuMDA2MDQ2IiwgXAotICAgICAgICAgICIwLjAwNjMwOCwgMC4wMDYwNDksIDAuMDA2MDQxLCAwLjAwNjAzOSwgMC4wMDYwMzcsIDAuMDA2MDM3LCAwLjAwNjAzNiIsIFwKLSAgICAgICAgICAiMC4wMDY1MDcsIDAuMDA2MTI5LCAwLjAwNjA5OSwgMC4wMDYwOTIsIDAuMDA2MDg1LCAwLjAwNjA4MSwgMC4wMDYwNzciLCBcCi0gICAgICAgICAgIjAuMDA2NTc5LCAwLjAwNjI3NiwgMC4wMDYyMDgsIDAuMDA2MTg4LCAwLjAwNjE2OSwgMC4wMDYxNiwgMC4wMDYxNTQiLCBcCi0gICAgICAgICAgIjAuMDA3MDg1LCAwLjAwNjM3OSwgMC4wMDYzMTcsIDAuMDA2MzAxLCAwLjAwNjI4MSwgMC4wMDYyNjYsIDAuMDA2MjY2IiwgXAotICAgICAgICAgICIwLjAwNzAxNSwgMC4wMDY0OTMsIDAuMDA2NDI1LCAwLjAwNjQxLCAwLjAwNjM5NSwgMC4wMDYzODIsIDAuMDA2Mzc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDg2MDUsIDAuMDA4ODMyLCAwLjAwODg2NywgMC4wMDg4NzgsIDAuMDA4ODg4LCAwLjAwODg5MywgMC4wMDg4OTgiLCBcCi0gICAgICAgICAgIjAuMDA4NTU4LCAwLjAwODc5OCwgMC4wMDg4NDQsIDAuMDA4ODU5LCAwLjAwODg3MywgMC4wMDg4OCwgMC4wMDg4ODYiLCBcCi0gICAgICAgICAgIjAuMDA4Njg4LCAwLjAwODgyMywgMC4wMDg4NjYsIDAuMDA4ODgsIDAuMDA4ODk1LCAwLjAwODkwMiwgMC4wMDg5MDkiLCBcCi0gICAgICAgICAgIjAuMDA4NzU4LCAwLjAwODg2LCAwLjAwODkwOCwgMC4wMDg5MTUsIDAuMDA4OTMzLCAwLjAwODk1LCAwLjAwODk1MSIsIFwKLSAgICAgICAgICAiMC4wMDg5ODUsIDAuMDA4OTU3LCAwLjAwODk3NiwgMC4wMDg5OTIsIDAuMDA5MDA5LCAwLjAwOTAzMiwgMC4wMDkwMzkiLCBcCi0gICAgICAgICAgIjAuMDA5Mjg2LCAwLjAwOTEyNywgMC4wMDkxNDYsIDAuMDA5MTU4LCAwLjAwOTE2NCwgMC4wMDkxNzQsIDAuMDA5MTgzIiwgXAotICAgICAgICAgICIwLjAwOTM5OCwgMC4wMDkzMTksIDAuMDA5Mjc3LCAwLjAwOTI5NCwgMC4wMDkzMTMsIDAuMDA5MzM2LCAwLjAwOTMzNSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkQiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2NDEsIDAuMDA2MTYzLCAwLjAwNjE0MiwgMC4wMDYxMzQsIDAuMDA2MTM0LCAwLjAwNjEzMiwgMC4wMDYxMjYiLCBcCi0gICAgICAgICAgIjAuMDA2MzU5LCAwLjAwNjA5LCAwLjAwNjA4NSwgMC4wMDYwODIsIDAuMDA2MDg0LCAwLjAwNjA4MiwgMC4wMDYwOCIsIFwKLSAgICAgICAgICAiMC4wMDY0MDIsIDAuMDA2MTM0LCAwLjAwNjEyNiwgMC4wMDYxMjQsIDAuMDA2MTIxLCAwLjAwNjEyNCwgMC4wMDYxMjYiLCBcCi0gICAgICAgICAgIjAuMDA2NTQyLCAwLjAwNjIyNCwgMC4wMDYyMDQsIDAuMDA2MTk5LCAwLjAwNjE5NywgMC4wMDYxOTUsIDAuMDA2MTk2IiwgXAotICAgICAgICAgICIwLjAwNjg2NiwgMC4wMDYzNSwgMC4wMDYzMSwgMC4wMDYzMDQsIDAuMDA2Mjk1LCAwLjAwNjI5MywgMC4wMDYyODkiLCBcCi0gICAgICAgICAgIjAuMDA3MDY4LCAwLjAwNjU2MywgMC4wMDY1MTYsIDAuMDA2NTAxLCAwLjAwNjQ4OSwgMC4wMDY0NzksIDAuMDA2NDc5IiwgXAotICAgICAgICAgICIwLjAwNzQ0NSwgMC4wMDY3OTQsIDAuMDA2NzQ2LCAwLjAwNjcyLCAwLjAwNjcwNSwgMC4wMDY2NzgsIDAuMDA2NjY2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDgwODgsIDAuMDA4MzE0LCAwLjAwODM0OCwgMC4wMDgzNTgsIDAuMDA4MzY4LCAwLjAwODM3MiwgMC4wMDgzNzYiLCBcCi0gICAgICAgICAgIjAuMDA4MDQxLCAwLjAwODI4NCwgMC4wMDgzMjgsIDAuMDA4MzQyLCAwLjAwODM1NSwgMC4wMDgzNjEsIDAuMDA4MzY3IiwgXAotICAgICAgICAgICIwLjAwODEyOCwgMC4wMDgzMDMsIDAuMDA4MzUyLCAwLjAwODM2OCwgMC4wMDgzODIsIDAuMDA4MzksIDAuMDA4Mzk3IiwgXAotICAgICAgICAgICIwLjAwODI3NCwgMC4wMDgzNDksIDAuMDA4NDA4LCAwLjAwODQxLCAwLjAwODQyNywgMC4wMDg0MzUsIDAuMDA4NDM5IiwgXAotICAgICAgICAgICIwLjAwODQzNywgMC4wMDg0MTYsIDAuMDA4NDYzLCAwLjAwODQ4MSwgMC4wMDg1MDUsIDAuMDA4NTA1LCAwLjAwODUxMyIsIFwKLSAgICAgICAgICAiMC4wMDg4MDEsIDAuMDA4NjExLCAwLjAwODYzNiwgMC4wMDg2NDgsIDAuMDA4NjYxLCAwLjAwODY2OSwgMC4wMDg2NzUiLCBcCi0gICAgICAgICAgIjAuMDA4ODE5LCAwLjAwODgxOSwgMC4wMDg4MTYsIDAuMDA4ODIsIDAuMDA4ODI0LCAwLjAwODgyNywgMC4wMDg4MzEiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IEFORDRYOCAqCi0gKiAtLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKEFORDRYOCkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAxLjM5NDk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMjE2ODg3OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMjE2ODg3OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMjE2NDk2OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTA0OSwgMC4wMDEwNDgsIDAuMDAxMDQ3LCAwLjAwMTA0NywgMC4wMDEwNDcsIDAuMDAxMDQ3LCAwLjAwMTA0NyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTA1LCAwLjAwMTA1MSwgMC4wMDEwNSwgMC4wMDEwNTEsIDAuMDAxMDUxLCAwLjAwMTA1MSwgMC4wMDEwNTIiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTk4MDE5OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTk4MDE5OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTk3NzQxOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTA0OCwgMC4wMDEwNDgsIDAuMDAxMDQ4LCAwLjAwMTA0NiwgMC4wMDEwNDcsIDAuMDAxMDQ3LCAwLjAwMTA0NyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTA1LCAwLjAwMTA1LCAwLjAwMTA1MSwgMC4wMDEwNTEsIDAuMDAxMDUyLCAwLjAwMTA1MiwgMC4wMDEwNTIiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEMpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTc5ODY7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNzk4NjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE3OTYxNDsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDEwNDgsIDAuMDAxMDQ3LCAwLjAwMTA0NywgMC4wMDEwNDcsIDAuMDAxMDQ3LCAwLjAwMTA0NywgMC4wMDEwNDciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDEwNSwgMC4wMDEwNSwgMC4wMDEwNTEsIDAuMDAxMDUxLCAwLjAwMTA1MSwgMC4wMDEwNTIsIDAuMDAxMDUyIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihEKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE2NzMxOTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE2NzMxODsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE2NzMxOTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA1ODMsIDAuMDAwNTgyLCAwLjAwMDU4MSwgMC4wMDA1ODIsIDAuMDAwNTgxLCAwLjAwMDU4MSwgMC4wMDA1ODEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDExOSwgMC4wMDExOTEsIDAuMDAxMTkyLCAwLjAwMTE5MiwgMC4wMDExOTIsIDAuMDAxMTkyLCAwLjAwMTE5MiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAyLjYzNzM1OwotICAgIGZ1bmN0aW9uIDogIigoKEEgQikgQykgRCkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc0NDAzLCAwLjExNDMzNiwgMC4xNDQ5NTIsIDAuMTY1NTEyLCAwLjE5NzU2MSwgMC4yMjUzMjksIDAuMjY0ODI4IiwgXAotICAgICAgICAgICIwLjA3OTA4MywgMC4xMTkxNzYsIDAuMTQ5Nzk3LCAwLjE3MDMyMSwgMC4yMDI0MzEsIDAuMjMwMiwgMC4yNjk3MjEiLCBcCi0gICAgICAgICAgIjAuMDgzOTg0LCAwLjEyNDEwNiwgMC4xNTQ2NzcsIDAuMTc1MjExLCAwLjIwNzI2NCwgMC4yMzUwNDgsIDAuMjc0NTMyIiwgXAotICAgICAgICAgICIwLjA4ODU1OSwgMC4xMjg2NywgMC4xNTkyMjQsIDAuMTc5NzM3LCAwLjIxMTgwOSwgMC4yMzk1NjcsIDAuMjc5MDg0IiwgXAotICAgICAgICAgICIwLjA5MjgyNiwgMC4xMzMwODEsIDAuMTYzNjg5LCAwLjE4NDI2MSwgMC4yMTYzMywgMC4yNDQxMDgsIDAuMjgzNjA3IiwgXAotICAgICAgICAgICIwLjA5OTAyMywgMC4xMzk3ODYsIDAuMTcwNDE1LCAwLjE5MSwgMC4yMjMxMzUsIDAuMjUwOTA2LCAwLjI5MDQzNCIsIFwKLSAgICAgICAgICAiMC4xMDM5NzcsIDAuMTQ1MDI3LCAwLjE3NjA3MiwgMC4xOTY2NTMsIDAuMjI4Nzk2LCAwLjI1NjU3NSwgMC4yOTYwNzkiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzAzMDksIDAuMDg4OTksIDAuMTQzOTkxLCAwLjE4MzY1NSwgMC4yNDc4NjcsIDAuMzA0NTkxLCAwLjM4NjIyMiIsIFwKLSAgICAgICAgICAiMC4wMzA0LCAwLjA4ODkwOSwgMC4xNDM4NDksIDAuMTgzNTQ1LCAwLjI0NzgwNSwgMC4zMDQ0MDUsIDAuMzg1ODIzIiwgXAotICAgICAgICAgICIwLjAzMDIzOSwgMC4wODg3OTUsIDAuMTQzODEyLCAwLjE4MzUzOSwgMC4yNDc3NDksIDAuMzA0NTMxLCAwLjM4NjEyNSIsIFwKLSAgICAgICAgICAiMC4wMzA0ODgsIDAuMDg4OTg5LCAwLjE0MzkxOSwgMC4xODM1OTMsIDAuMjQ3ODE4LCAwLjMwNDMwNywgMC4zODYxNzgiLCBcCi0gICAgICAgICAgIjAuMDMwOTksIDAuMDg5MjczLCAwLjE0NDA2MSwgMC4xODM3OTMsIDAuMjQ3OTc5LCAwLjMwNDUzMywgMC4zODYyNDciLCBcCi0gICAgICAgICAgIjAuMDMxODQxLCAwLjA5MDI2NywgMC4xNDQ4MDYsIDAuMTg0MzY4LCAwLjI0ODQxMSwgMC4zMDUwMywgMC4zODY0OTkiLCBcCi0gICAgICAgICAgIjAuMDMyMzg4LCAwLjA5MTI5OSwgMC4xNDU2NjksIDAuMTg0OTk1LCAwLjI0ODkzNCwgMC4zMDU0NDQsIDAuMzg2OTE0Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM0MDE0LCAwLjA2NTE2MiwgMC4wOTM2NDgsIDAuMTEzODk1LCAwLjE0NjIzNCwgMC4xNzQ1MzMsIDAuMjE0OTQiLCBcCi0gICAgICAgICAgIjAuMDQyMjgxLCAwLjA3MzM2NywgMC4xMDE4NTcsIDAuMTIyMTA3LCAwLjE1NDQ3NywgMC4xODI3NTEsIDAuMjIzMTU0IiwgXAotICAgICAgICAgICIwLjA1MjEyNywgMC4wODMyMTksIDAuMTExNjc4LCAwLjEzMTkxOCwgMC4xNjQyNjUsIDAuMTkyNTc0LCAwLjIzMjk2OSIsIFwKLSAgICAgICAgICAiMC4wNTk5ODgsIDAuMDkxNDE0LCAwLjExOTg2MiwgMC4xNDAwOCwgMC4xNzI0MiwgMC4yMDA3MDgsIDAuMjQxMDk3IiwgXAotICAgICAgICAgICIwLjA2NjExOCwgMC4wOTc5NjIsIDAuMTI2NDExLCAwLjE0NjYyNiwgMC4xNzg5NTgsIDAuMjA3MjM3LCAwLjI0NzYyNSIsIFwKLSAgICAgICAgICAiMC4wNzM4OSwgMC4xMDY0NjMsIDAuMTM1MDE3LCAwLjE1NTI2LCAwLjE4NzU2NCwgMC4yMTU4MjMsIDAuMjU2MTk2IiwgXAotICAgICAgICAgICIwLjA3OTQxNCwgMC4xMTI1NywgMC4xNDEwOTcsIDAuMTYxMzM3LCAwLjE5MzY2MywgMC4yMjE5MDcsIDAuMjYyMjcyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE4NTkxLCAwLjA3NDUyNCwgMC4xMzIxMjMsIDAuMTczNTE1LCAwLjI0MDcyNCwgMC4yOTk0NzMsIDAuMzgyNzA2IiwgXAotICAgICAgICAgICIwLjAxODUzMywgMC4wNzQ1MTUsIDAuMTMyMjQxLCAwLjE3Mzg1MSwgMC4yNDAzNjUsIDAuMjk5NDUzLCAwLjM4MzM2NyIsIFwKLSAgICAgICAgICAiMC4wMTkzOTgsIDAuMDc0NzA4LCAwLjEzMjIyOCwgMC4xNzM3MzQsIDAuMjQwNTI3LCAwLjI5OTQ4OSwgMC4zODMzNjIiLCBcCi0gICAgICAgICAgIjAuMDIwNzQ5LCAwLjA3NTM3MywgMC4xMzI1MjMsIDAuMTc0MTAyLCAwLjI0MDgyMywgMC4yOTk1MDEsIDAuMzgzNCIsIFwKLSAgICAgICAgICAiMC4wMjIwOSwgMC4wNzYxMzgsIDAuMTMyOTQ5LCAwLjE3NDM4MSwgMC4yNDEwMzMsIDAuMjk5NiwgMC4zODM0MjEiLCBcCi0gICAgICAgICAgIjAuMDI0MDE5LCAwLjA3NzQ5MiwgMC4xMzM0OTgsIDAuMTc0NzMyLCAwLjI0MTA0MiwgMC4yOTk2OTYsIDAuMzgzNDgiLCBcCi0gICAgICAgICAgIjAuMDI1NDkyLCAwLjA3ODM2NywgMC4xMzQxNTYsIDAuMTc0OTU2LCAwLjI0MTI0MSwgMC4yOTk2MjEsIDAuMzgzMjUzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDcyOTUxLCAwLjExMjksIDAuMTQzNTE4LCAwLjE2NDA3MSwgMC4xOTYxMjMsIDAuMjIzODkzLCAwLjI2MzM5NCIsIFwKLSAgICAgICAgICAiMC4wNzgxOCwgMC4xMTgyMiwgMC4xNDg4MjcsIDAuMTY5MzkzLCAwLjIwMTQ1NCwgMC4yMjkyMTgsIDAuMjY4NzM1IiwgXAotICAgICAgICAgICIwLjA4NDQxNCwgMC4xMjQ1NDEsIDAuMTU1MDkyLCAwLjE3NTY0OSwgMC4yMDc3MTUsIDAuMjM1NTA1LCAwLjI3NDk5NSIsIFwKLSAgICAgICAgICAiMC4wOTA1NTksIDAuMTMwNjU5LCAwLjE2MTIzMiwgMC4xODE3NDQsIDAuMjEzODM3LCAwLjI0MTYwNiwgMC4yODEwOTEiLCBcCi0gICAgICAgICAgIjAuMDk2NTI4LCAwLjEzNjc1MywgMC4xNjczNDksIDAuMTg3ODYyLCAwLjIxOTkyOSwgMC4yNDc3MTEsIDAuMjg3MTg4IiwgXAotICAgICAgICAgICIwLjEwNDk5NCwgMC4xNDU3MjYsIDAuMTc2NDMyLCAwLjE5NzAzOCwgMC4yMjkxMzgsIDAuMjU2OTQ0LCAwLjI5NjQzNSIsIFwKLSAgICAgICAgICAiMC4xMTE4MDUsIDAuMTUzMDg2LCAwLjE4NDA2MywgMC4yMDQ3NDMsIDAuMjM2ODU4LCAwLjI2NDY2LCAwLjMwNDE0NyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzMDMzMywgMC4wODg5ODYsIDAuMTQzOTg0LCAwLjE4MzY0OSwgMC4yNDc4NjUsIDAuMzA0NTg4LCAwLjM4NjIyNiIsIFwKLSAgICAgICAgICAiMC4wMzAzMzUsIDAuMDg4ODM3LCAwLjE0MzksIDAuMTgzNTgyLCAwLjI0NzgxNiwgMC4zMDQ0MzksIDAuMzg2MjA4IiwgXAotICAgICAgICAgICIwLjAzMDI4NiwgMC4wODg4MDEsIDAuMTQzODM0LCAwLjE4MzUyNCwgMC4yNDc3NjUsIDAuMzA0NTA3LCAwLjM4NjE3MSIsIFwKLSAgICAgICAgICAiMC4wMzA3NTQsIDAuMDg5MDI0LCAwLjE0MzkwNiwgMC4xODM2NDQsIDAuMjQ3ODI2LCAwLjMwNDU4OCwgMC4zODYxOTciLCBcCi0gICAgICAgICAgIjAuMDMxMDY3LCAwLjA4OTQzOCwgMC4xNDQyMjQsIDAuMTgzODc1LCAwLjI0ODAzNCwgMC4zMDQ3MjEsIDAuMzg2MjQ1IiwgXAotICAgICAgICAgICIwLjAzMjIxMiwgMC4wOTA3MzksIDAuMTQ1MTg5LCAwLjE4NDU5NCwgMC4yNDg0MTEsIDAuMzA1MTI4LCAwLjM4NjU1NyIsIFwKLSAgICAgICAgICAiMC4wMzMyMDgsIDAuMDkxODUyLCAwLjE0NTk5NSwgMC4xODUyNywgMC4yNDkxMDEsIDAuMzA1NTI3LCAwLjM4Njk0OCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzMzM4MiwgMC4wNjQzODksIDAuMDkyODUzLCAwLjExMzA4OCwgMC4xNDU0MTUsIDAuMTczNjgxLCAwLjIxNDA2IiwgXAotICAgICAgICAgICIwLjA0MTU3OCwgMC4wNzI1NTksIDAuMTAxMDE1LCAwLjEyMTI0OSwgMC4xNTM1OTUsIDAuMTgxODYyLCAwLjIyMjI0OSIsIFwKLSAgICAgICAgICAiMC4wNTEzOTcsIDAuMDgyMzg5LCAwLjExMDgzMSwgMC4xMzEwNjIsIDAuMTYzMzg4LCAwLjE5MTY2OSwgMC4yMzIwNTMiLCBcCi0gICAgICAgICAgIjAuMDU4Nzg3LCAwLjA5MDEzMiwgMC4xMTg1OTksIDAuMTM4ODE5LCAwLjE3MTE1NSwgMC4xOTk0MTUsIDAuMjM5NzkyIiwgXAotICAgICAgICAgICIwLjA2NDgwOSwgMC4wOTY2NjMsIDAuMTI1MTMzLCAwLjE0NTM0NiwgMC4xNzc2NTQsIDAuMjA1OTI2LCAwLjI0NjMxMSIsIFwKLSAgICAgICAgICAiMC4wNzIyNTEsIDAuMTA0OTE3LCAwLjEzMzMzNiwgMC4xNTM2MjYsIDAuMTg1ODY0LCAwLjIxNDExNSwgMC4yNTQ0ODIiLCBcCi0gICAgICAgICAgIjAuMDc3NDU3LCAwLjExMDkzOCwgMC4xMzkzMjgsIDAuMTU5NTA3LCAwLjE5MTgxNSwgMC4yMjAyNTgsIDAuMjYwNDI0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE4Mzg0LCAwLjA3NDMyMywgMC4xMzE5NDYsIDAuMTczNzEzLCAwLjI0MDI0MywgMC4yOTkyNSwgMC4zODMyMjgiLCBcCi0gICAgICAgICAgIjAuMDE4Mjk4LCAwLjA3NDMyNiwgMC4xMzIwODQsIDAuMTczNTQyLCAwLjI0MDY1NSwgMC4yOTkzMDMsIDAuMzgzMjY0IiwgXAotICAgICAgICAgICIwLjAxOTE5NCwgMC4wNzQ1ODUsIDAuMTMyMjAxLCAwLjE3Mzc5OSwgMC4yNDA2MjYsIDAuMjk5MzIzLCAwLjM4Mjg0NCIsIFwKLSAgICAgICAgICAiMC4wMjA2OTYsIDAuMDc1MjU1LCAwLjEzMjUzNCwgMC4xNzM4NTEsIDAuMjQwOCwgMC4yOTkwNjQsIDAuMzgyODQyIiwgXAotICAgICAgICAgICIwLjAyMjEwOCwgMC4wNzYwMzEsIDAuMTMyODM5LCAwLjE3NDI5OCwgMC4yNDA5MzYsIDAuMjk5NDcsIDAuMzgyNzc3IiwgXAotICAgICAgICAgICIwLjAyNDEwOCwgMC4wNzczNDMsIDAuMTMzNDE0LCAwLjE3NDU0LCAwLjI0MDk5LCAwLjI5OTU1NSwgMC4zODMzODEiLCBcCi0gICAgICAgICAgIjAuMDI1NTM0LCAwLjA3ODI4MywgMC4xMzQxNjEsIDAuMTc0ODk2LCAwLjI0MTI3OCwgMC4yOTk0OTIsIDAuMzgzMDM2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY5NzQ5LCAwLjEwOTc5OCwgMC4xNDA0MjQsIDAuMTYwOTQxLCAwLjE5MzA5MSwgMC4yMjA4OTEsIDAuMjYwMzcyIiwgXAotICAgICAgICAgICIwLjA3NTYwNCwgMC4xMTU3MDUsIDAuMTQ2MzA4LCAwLjE2Njg3MiwgMC4xOTg5NjEsIDAuMjI2NzkxLCAwLjI2NjI1NSIsIFwKLSAgICAgICAgICAiMC4wODM1ODYsIDAuMTIzNzkxLCAwLjE1NDI3NiwgMC4xNzQ4MDUsIDAuMjA2ODc4LCAwLjIzNDY1MiwgMC4yNzQxMzkiLCBcCi0gICAgICAgICAgIjAuMDkxNywgMC4xMzE3MjksIDAuMTYyMjYzLCAwLjE4MjgwOSwgMC4yMTQ4NzMsIDAuMjQyNjU5LCAwLjI4MjE0MiIsIFwKLSAgICAgICAgICAiMC4wOTkyMzksIDAuMTM5NDExLCAwLjE2OTk5NSwgMC4xOTA1NTksIDAuMjIyNjMzLCAwLjI1MDM3MSwgMC4yODk4ODYiLCBcCi0gICAgICAgICAgIjAuMTEwMTI1LCAwLjE1MDgyOCwgMC4xODE1MTYsIDAuMjAyMDY2LCAwLjIzNDE3NywgMC4yNjE5MDksIDAuMzAxNDM1IiwgXAotICAgICAgICAgICIwLjExODc1OSwgMC4xNjAwNDYsIDAuMTkwNzA0LCAwLjIxMTI5MywgMC4yNDM0NzUsIDAuMjcxMjk4LCAwLjMxMDc4NSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzMDM3NiwgMC4wODg5NTYsIDAuMTQzODg3LCAwLjE4MzU4MSwgMC4yNDc4MTMsIDAuMzA0NTY5LCAwLjM4NjI0MyIsIFwKLSAgICAgICAgICAiMC4wMzAzOTksIDAuMDg4ODMsIDAuMTQzODg2LCAwLjE4MzU3MywgMC4yNDc4MDYsIDAuMzA0NTUyLCAwLjM4NjEzOCIsIFwKLSAgICAgICAgICAiMC4wMzAyNTIsIDAuMDg4ODEzLCAwLjE0Mzc2LCAwLjE4MzUzNiwgMC4yNDc3NjMsIDAuMzA0NTM1LCAwLjM4NjEyOCIsIFwKLSAgICAgICAgICAiMC4wMzA0MywgMC4wODg5NDksIDAuMTQzODY3LCAwLjE4MzYzMywgMC4yNDc4NDEsIDAuMzA0NTc1LCAwLjM4NjE0NSIsIFwKLSAgICAgICAgICAiMC4wMzEyOTIsIDAuMDg5NjcxLCAwLjE0NDQyOCwgMC4xODQwMSwgMC4yNDgwMTEsIDAuMzA0NTA5LCAwLjM4NjM0MiIsIFwKLSAgICAgICAgICAiMC4wMzI2MTMsIDAuMDkwOTQ3LCAwLjE0NTMxLCAwLjE4NDczNSwgMC4yNDg2MzIsIDAuMzA1MzU4LCAwLjM4NjU5NiIsIFwKLSAgICAgICAgICAiMC4wMzM5MiwgMC4wOTE3OTcsIDAuMTQ2Mzk5LCAwLjE4NTQ3NCwgMC4yNDkxMTIsIDAuMzA1NzIsIDAuMzg3MDE5Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDMyMTA2LCAwLjA2Mjk4MywgMC4wOTEzODcsIDAuMTExNjAyLCAwLjE0MzkxOCwgMC4xNzIxNzMsIDAuMjEyNTM2IiwgXAotICAgICAgICAgICIwLjA0MDM5OCwgMC4wNzEyMTMsIDAuMDk5NjMxLCAwLjExOTg0OCwgMC4xNTIxNjcsIDAuMTgwNDQ1LCAwLjIyMDgwMSIsIFwKLSAgICAgICAgICAiMC4wNDk4NTcsIDAuMDgwNzQ1LCAwLjEwOTE5NywgMC4xMjk0MDgsIDAuMTYxNzIyLCAwLjE4OTk4LCAwLjIzMDM1NiIsIFwKLSAgICAgICAgICAiMC4wNTcwNzEsIDAuMDg4NDY2LCAwLjExNjkxMywgMC4xMzcxMSwgMC4xNjk0MTksIDAuMTk3NjgsIDAuMjM4MDQiLCBcCi0gICAgICAgICAgIjAuMDYyNjQ5LCAwLjA5NDU3MywgMC4xMjMwMTQsIDAuMTQzMDg2LCAwLjE3NTUyNCwgMC4yMDM4LCAwLjI0NDE1OCIsIFwKLSAgICAgICAgICAiMC4wNjk1OTgsIDAuMTAyMjg2LCAwLjEzMDgxMSwgMC4xNTA5MTYsIDAuMTgzMzI0LCAwLjIxMTU3MSwgMC4yNTE3ODEiLCBcCi0gICAgICAgICAgIjAuMDc0NTA2LCAwLjEwNzg0LCAwLjEzNjM5NywgMC4xNTY1MjIsIDAuMTg4ODMxLCAwLjIxNzEzMiwgMC4yNTc0NTgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTgxMTQsIDAuMDc0MTI3LCAwLjEzMTc3NCwgMC4xNzM1OSwgMC4yNDA1MTYsIDAuMjk5MTg4LCAwLjM4MjciLCBcCi0gICAgICAgICAgIjAuMDE4MTE5LCAwLjA3NDEzNSwgMC4xMzE5MTYsIDAuMTczNTQzLCAwLjI0MDQ5LCAwLjI5OTIyNSwgMC4zODI3IiwgXAotICAgICAgICAgICIwLjAxOTMyNiwgMC4wNzQ1NTQsIDAuMTMyMDg1LCAwLjE3MzY3NCwgMC4yNDA1NDQsIDAuMjk5MiwgMC4zODI3MTEiLCBcCi0gICAgICAgICAgIjAuMDIwNjg4LCAwLjA3NTEyOSwgMC4xMzIyODQsIDAuMTczODk4LCAwLjI0MDY2NywgMC4yOTkyMTgsIDAuMzgzMTM0IiwgXAotICAgICAgICAgICIwLjAyMjE2NCwgMC4wNzU4NSwgMC4xMzI2ODcsIDAuMTc0MDQ2LCAwLjI0MDc2MSwgMC4yOTg4OTcsIDAuMzgyNTciLCBcCi0gICAgICAgICAgIjAuMDI0MTA0LCAwLjA3NzM4MSwgMC4xMzMzMDUsIDAuMTc0NTAyLCAwLjI0MDg2NCwgMC4yOTkxNjcsIDAuMzgzMDA5IiwgXAotICAgICAgICAgICIwLjAyNTYzOCwgMC4wNzgyOTQsIDAuMTM0MDUxLCAwLjE3NDc4NCwgMC4yNDExMDIsIDAuMjk5NDQ3LCAwLjM4MzA1NiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJEIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2NDk3MiwgMC4xMDUxNDYsIDAuMTM1NzI0LCAwLjE1NjI0MiwgMC4xODgzNDIsIDAuMjE2MTM1LCAwLjI1NTYyOSIsIFwKLSAgICAgICAgICAiMC4wNzE0NzksIDAuMTExNTg0LCAwLjE0MjE4NCwgMC4xNjI3NDUsIDAuMTk0ODU5LCAwLjIyMjY3LCAwLjI2MjE4NyIsIFwKLSAgICAgICAgICAiMC4wODA2NTcsIDAuMTIwNzA0LCAwLjE1MTM0OSwgMC4xNzE4NDgsIDAuMjAzOTQ2LCAwLjIzMTcxMSwgMC4yNzEyMjkiLCBcCi0gICAgICAgICAgIjAuMDkwMDkxLCAwLjEzMDE1MywgMC4xNjA2OTIsIDAuMTgxMTk2LCAwLjIxMzI3MiwgMC4yNDEwNDEsIDAuMjgwNTQ5IiwgXAotICAgICAgICAgICIwLjA5ODkyMSwgMC4xMzg5MDMsIDAuMTY5NDc0LCAwLjE4OTk4NywgMC4yMjIwNDEsIDAuMjQ5ODI4LCAwLjI4OTMxNiIsIFwKLSAgICAgICAgICAiMC4xMTEyNjgsIDAuMTUxNzgyLCAwLjE4MjQ4OCwgMC4yMDMwNjEsIDAuMjM1MTcyLCAwLjI2MjkyMywgMC4zMDI0MjQiLCBcCi0gICAgICAgICAgIjAuMTIwNzk2LCAwLjE2MTgyOSwgMC4xOTI3MDgsIDAuMjEzNTMsIDAuMjQ1NzU2LCAwLjI3MzIyNiwgMC4zMTI3MTMiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzAzOTcsIDAuMDg4OTE0LCAwLjE0MzkyNiwgMC4xODM1OTEsIDAuMjQ3NzE4LCAwLjMwNDM4NywgMC4zODYxMTgiLCBcCi0gICAgICAgICAgIjAuMDMwMzA1LCAwLjA4ODgzOCwgMC4xNDM4NTMsIDAuMTgzNTQ1LCAwLjI0NzU3MSwgMC4zMDQ1MjUsIDAuMzg2MDI0IiwgXAotICAgICAgICAgICIwLjAzMDI0LCAwLjA4ODc4LCAwLjE0Mzc2LCAwLjE4MzQ5MiwgMC4yNDc3NjQsIDAuMzA0Mzk2LCAwLjM4NjE3OCIsIFwKLSAgICAgICAgICAiMC4wMzA0NjYsIDAuMDg4OTA2LCAwLjE0MzkyOSwgMC4xODM2MzUsIDAuMjQ3ODIyLCAwLjMwNDU4MiwgMC4zODYxNzEiLCBcCi0gICAgICAgICAgIjAuMDMxMzI2LCAwLjA4OTgyNywgMC4xNDQ0NjYsIDAuMTg0MDU1LCAwLjI0ODA0OCwgMC4zMDQ4MSwgMC4zODYwOTIiLCBcCi0gICAgICAgICAgIjAuMDMzNDI2LCAwLjA5MDcyLCAwLjE0NTIxNSwgMC4xODQ2NDksIDAuMjQ4MzgyLCAwLjMwNTE0NCwgMC4zODY2OTQiLCBcCi0gICAgICAgICAgIjAuMDM1MDUsIDAuMDkyMTc3LCAwLjE0NjEzNywgMC4xODU1MjQsIDAuMjQ5MTMyLCAwLjMwNTY2NCwgMC4zODY5ODEiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzEyNTMsIDAuMDYyMTI4LCAwLjA5MDU1MSwgMC4xMTA3NTQsIDAuMTQzMDU2LCAwLjE3MTMwNCwgMC4yMTE2NjciLCBcCi0gICAgICAgICAgIjAuMDM5NTQ5LCAwLjA3MDM2NiwgMC4wOTg3NjMsIDAuMTE4OTY4LCAwLjE1MTI3MywgMC4xNzk1NCwgMC4yMTk5MyIsIFwKLSAgICAgICAgICAiMC4wNDg4NDMsIDAuMDc5NjMzLCAwLjEwODA3OCwgMC4xMjgyNzcsIDAuMTYwNTc2LCAwLjE4ODg0MiwgMC4yMjkzODMiLCBcCi0gICAgICAgICAgIjAuMDU1Mzg4LCAwLjA4NjgwNywgMC4xMTUzMzUsIDAuMTM1NTU4LCAwLjE2NzcxOCwgMC4xOTU5NiwgMC4yMzYzNDgiLCBcCi0gICAgICAgICAgIjAuMDYwOTU5LCAwLjA5MjgxNywgMC4xMjEzNjgsIDAuMTQxNjA1LCAwLjE3MzY4NiwgMC4yMDIyMzIsIDAuMjQyMjYzIiwgXAotICAgICAgICAgICIwLjA2NzUwNSwgMC4xMDAzNCwgMC4xMjg3ODMsIDAuMTQ5MDY3LCAwLjE4MTE1NSwgMC4yMDkzNDEsIDAuMjQ5NjciLCBcCi0gICAgICAgICAgIjAuMDcyMTAyLCAwLjEwNTYyMSwgMC4xMzM5MDQsIDAuMTU0MDM4LCAwLjE4NjMyLCAwLjIxNDUyOCwgMC4yNTQ4MzYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTgxMSwgMC4wNzQwOTksIDAuMTMxNzM3LCAwLjE3MzUyOCwgMC4yNDA1MDMsIDAuMjk5MTY5LCAwLjM4MjY5NiIsIFwKLSAgICAgICAgICAiMC4wMTgxNTksIDAuMDc0MTU0LCAwLjEzMTkxMywgMC4xNzMzNzYsIDAuMjQwNDU3LCAwLjI5OTIwMywgMC4zODI1NTQiLCBcCi0gICAgICAgICAgIjAuMDE5MzE4LCAwLjA3NDY0NCwgMC4xMzIwOTIsIDAuMTczNjY1LCAwLjI0MDIzOCwgMC4yOTg4OTYsIDAuMzgyMzEiLCBcCi0gICAgICAgICAgIjAuMDIwOTE4LCAwLjA3NTM2NCwgMC4xMzI1MTIsIDAuMTczOTI1LCAwLjI0MDY4NywgMC4yOTkyNjksIDAuMzgyNzE2IiwgXAotICAgICAgICAgICIwLjAyMjMzNSwgMC4wNzYyODUsIDAuMTMyOTEzLCAwLjE3NDI2OSwgMC4yNDA4OCwgMC4yOTg5OCwgMC4zODI3OTgiLCBcCi0gICAgICAgICAgIjAuMDI0MzIsIDAuMDc3NzAyLCAwLjEzMzU2MSwgMC4xNzQ2MTQsIDAuMjQwOTQ0LCAwLjI5OTY1NywgMC4zODM0NTkiLCBcCi0gICAgICAgICAgIjAuMDI1OTM0LCAwLjA3ODU4NiwgMC4xMzQ1NzcsIDAuMTc1MTA2LCAwLjI0MTIyOCwgMC4yOTk1NTYsIDAuMzgzNDM3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTMwNjcsIDAuMDEyNDEyLCAwLjAxMjM2OSwgMC4wMTIzNDgsIDAuMDEyMzI4LCAwLjAxMjMxNiwgMC4wMTIzMTEiLCBcCi0gICAgICAgICAgIjAuMDEyODU1LCAwLjAxMjE4MywgMC4wMTIxNTksIDAuMDEyMTUzLCAwLjAxMjE1MiwgMC4wMTIxNTMsIDAuMDEyMTQ4IiwgXAotICAgICAgICAgICIwLjAxMjcxNiwgMC4wMTIwNzUsIDAuMDEyMDY3LCAwLjAxMjA2NSwgMC4wMTIwNzEsIDAuMDEyMDc1LCAwLjAxMjA3NSIsIFwKLSAgICAgICAgICAiMC4wMTI3OTgsIDAuMDEyMTA2LCAwLjAxMjA4MSwgMC4wMTIwODQsIDAuMDEyMDkzLCAwLjAxMjA4NCwgMC4wMTIwODQiLCBcCi0gICAgICAgICAgIjAuMDEzMDYxLCAwLjAxMjIxNCwgMC4wMTIxNjcsIDAuMDEyMTYxLCAwLjAxMjE0OCwgMC4wMTIxNDQsIDAuMDEyMTQ0IiwgXAotICAgICAgICAgICIwLjAxMzM4MSwgMC4wMTI0MzIsIDAuMDEyMzQ4LCAwLjAxMjMyOSwgMC4wMTIzMTMsIDAuMDEyMzA2LCAwLjAxMjI5OSIsIFwKLSAgICAgICAgICAiMC4wMTM2NDgsIDAuMDEyNzY0LCAwLjAxMjY3OSwgMC4wMTI2MTEsIDAuMDEyNTY4LCAwLjAxMjU0OCwgMC4wMTI1MjkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxNzUzOSwgMC4wMTc5MjUsIDAuMDE4MDI4LCAwLjAxODA2MywgMC4wMTgwOTUsIDAuMDE4MTEyLCAwLjAxODEyOSIsIFwKLSAgICAgICAgICAiMC4wMTc0NywgMC4wMTc4MjYsIDAuMDE3OTQ5LCAwLjAxNzk5MywgMC4wMTgwMzQsIDAuMDE4MDU4LCAwLjAxODA3OSIsIFwKLSAgICAgICAgICAiMC4wMTc4MjcsIDAuMDE3OTE2LCAwLjAxODAxNiwgMC4wMTgwNTcsIDAuMDE4MDk4LCAwLjAxODEyMiwgMC4wMTgxNDQiLCBcCi0gICAgICAgICAgIjAuMDE4MDE4LCAwLjAxODAyMywgMC4wMTgxMTEsIDAuMDE4MTUsIDAuMDE4MTkyLCAwLjAxODIxNywgMC4wMTgyNDEiLCBcCi0gICAgICAgICAgIjAuMDE4NDE1LCAwLjAxODIyLCAwLjAxODI4MSwgMC4wMTgzMTcsIDAuMDE4MzU3LCAwLjAxODM4MiwgMC4wMTg0MDEiLCBcCi0gICAgICAgICAgIjAuMDE4OTAzLCAwLjAxODU1OCwgMC4wMTg1OTgsIDAuMDE4NjI5LCAwLjAxODY2NiwgMC4wMTg2OTcsIDAuMDE4NzIiLCBcCi0gICAgICAgICAgIjAuMDE5NDQ4LCAwLjAxODkzNCwgMC4wMTg5NSwgMC4wMTg5NzIsIDAuMDE4OTk2LCAwLjAxOTAyLCAwLjAxOTA0NyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEyOTIyLCAwLjAxMjQwNywgMC4wMTIzNzMsIDAuMDEyMzU3LCAwLjAxMjM0MSwgMC4wMTIzMjgsIDAuMDEyMzI1IiwgXAotICAgICAgICAgICIwLjAxMjc4OSwgMC4wMTIxNzIsIDAuMDEyMTU4LCAwLjAxMjE1NSwgMC4wMTIxNTgsIDAuMDEyMTYsIDAuMDEyMTU3IiwgXAotICAgICAgICAgICIwLjAxMjczMiwgMC4wMTIwOTYsIDAuMDEyMDksIDAuMDEyMDg5LCAwLjAxMjA5OSwgMC4wMTIxLCAwLjAxMjEwMyIsIFwKLSAgICAgICAgICAiMC4wMTI5NzIsIDAuMDEyMTksIDAuMDEyMTQ3LCAwLjAxMjE0LCAwLjAxMjEzNywgMC4wMTIxMzYsIDAuMDEyMTMiLCBcCi0gICAgICAgICAgIjAuMDEzMTY1LCAwLjAxMjM0NywgMC4wMTIyNjEsIDAuMDEyMjQsIDAuMDEyMjI1LCAwLjAxMjIxOSwgMC4wMTIyMTYiLCBcCi0gICAgICAgICAgIjAuMDEzNTA0LCAwLjAxMjY0NCwgMC4wMTI1MTQsIDAuMDEyNDc4LCAwLjAxMjQ0NCwgMC4wMTI0NCwgMC4wMTI0MjEiLCBcCi0gICAgICAgICAgIjAuMDEzOTMxLCAwLjAxMzA0MSwgMC4wMTI4NjQsIDAuMDEyODA5LCAwLjAxMjc0OCwgMC4wMTI3MjcsIDAuMDEyNjg0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTY2MDYsIDAuMDE3MDY5LCAwLjAxNzE4NywgMC4wMTcyMjcsIDAuMDE3MjYzLCAwLjAxNzI4MywgMC4wMTczMDEiLCBcCi0gICAgICAgICAgIjAuMDE2NTMxLCAwLjAxNjk2MSwgMC4wMTcxMDIsIDAuMDE3MTUyLCAwLjAxNzIsIDAuMDE3MjI2LCAwLjAxNzI1IiwgXAotICAgICAgICAgICIwLjAxNjc1MiwgMC4wMTY5NzcsIDAuMDE3MTE0LCAwLjAxNzE2OCwgMC4wMTcyMjIsIDAuMDE3MjUxLCAwLjAxNzI3OSIsIFwKLSAgICAgICAgICAiMC4wMTcwNTcsIDAuMDE3MTI5LCAwLjAxNzIzOCwgMC4wMTcyODUsIDAuMDE3MzM4LCAwLjAxNzM2OCwgMC4wMTczOTgiLCBcCi0gICAgICAgICAgIjAuMDE3MzQsIDAuMDE3Mjg3LCAwLjAxNzM3NywgMC4wMTc0MjcsIDAuMDE3NDcxLCAwLjAxNzQ5OSwgMC4wMTc1MjkiLCBcCi0gICAgICAgICAgIjAuMDE4MTcsIDAuMDE3NzIyLCAwLjAxNzY3MSwgMC4wMTc3MTYsIDAuMDE3NzcsIDAuMDE3ODAyLCAwLjAxNzgzNiIsIFwKLSAgICAgICAgICAiMC4wMTg0MDgsIDAuMDE3OTYsIDAuMDE4MDA3LCAwLjAxODA1MSwgMC4wMTgwOTQsIDAuMDE4MSwgMC4wMTgxNTciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMzE3NCwgMC4wMTIzOTgsIDAuMDEyMzYxLCAwLjAxMjM1MywgMC4wMTIzNDUsIDAuMDEyMzQzLCAwLjAxMjMzOSIsIFwKLSAgICAgICAgICAiMC4wMTI4NSwgMC4wMTIxNzIsIDAuMDEyMTY3LCAwLjAxMjE2OCwgMC4wMTIxNzUsIDAuMDEyMTc1LCAwLjAxMjE3OSIsIFwKLSAgICAgICAgICAiMC4wMTI3ODEsIDAuMDEyMTI1LCAwLjAxMjExNywgMC4wMTIxMjQsIDAuMDEyMTM0LCAwLjAxMjEzOSwgMC4wMTIxNDciLCBcCi0gICAgICAgICAgIjAuMDEzMDIsIDAuMDEyMjY2LCAwLjAxMjIyNywgMC4wMTIyMTcsIDAuMDEyMjI0LCAwLjAxMjIyMiwgMC4wMTIyMjYiLCBcCi0gICAgICAgICAgIjAuMDEzMzEsIDAuMDEyNDc3LCAwLjAxMjM4OSwgMC4wMTIzNjksIDAuMDEyMzU2LCAwLjAxMjM1MSwgMC4wMTIzNDIiLCBcCi0gICAgICAgICAgIjAuMDEzODE4LCAwLjAxMjkxNSwgMC4wMTI3MzMsIDAuMDEyNjg1LCAwLjAxMjY1MywgMC4wMTI2NSwgMC4wMTI2MTkiLCBcCi0gICAgICAgICAgIjAuMDE0NjA5LCAwLjAxMzIzOSwgMC4wMTI5NzksIDAuMDEyOTU2LCAwLjAxMjkyLCAwLjAxMjg5MiwgMC4wMTI4ODUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxNTQ5OSwgMC4wMTU5NzYsIDAuMDE2MDg4LCAwLjAxNjEyNSwgMC4wMTYxNTksIDAuMDE2MTc4LCAwLjAxNjE5NCIsIFwKLSAgICAgICAgICAiMC4wMTU0NCwgMC4wMTU4ODIsIDAuMDE2MDIxLCAwLjAxNjA3LCAwLjAxNjExNSwgMC4wMTYxNCwgMC4wMTYxNjMiLCBcCi0gICAgICAgICAgIjAuMDE1NzUzLCAwLjAxNTk1NywgMC4wMTYwNTYsIDAuMDE2MTAzLCAwLjAxNjE1LCAwLjAxNjE3NiwgMC4wMTYyIiwgXAotICAgICAgICAgICIwLjAxNTg4LCAwLjAxNjAxOCwgMC4wMTYxMzYsIDAuMDE2MTg2LCAwLjAxNjI2NywgMC4wMTYyNjgsIDAuMDE2Mjk3IiwgXAotICAgICAgICAgICIwLjAxNjQ1NywgMC4wMTYxODQsIDAuMDE2Mjc5LCAwLjAxNjM3MSwgMC4wMTYzOCwgMC4wMTY0MDgsIDAuMDE2NDM2IiwgXAotICAgICAgICAgICIwLjAxNjc1OCwgMC4wMTY2NDksIDAuMDE2NTg1LCAwLjAxNjY4OCwgMC4wMTY2ODEsIDAuMDE2NzE1LCAwLjAxNjc2NSIsIFwKLSAgICAgICAgICAiMC4wMTcyNTcsIDAuMDE2ODUxLCAwLjAxNjg5MiwgMC4wMTY5NDUsIDAuMDE2OTk1LCAwLjAxNzAwMSwgMC4wMTcwMzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJEIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMjkzMiwgMC4wMTIzMzYsIDAuMDEyMzI0LCAwLjAxMjMyOCwgMC4wMTIzMzEsIDAuMDEyMzM3LCAwLjAxMjMzOCIsIFwKLSAgICAgICAgICAiMC4wMTI4MzIsIDAuMDEyMTk0LCAwLjAxMjIwMSwgMC4wMTIyMDQsIDAuMDEyMjE0LCAwLjAxMjIyMSwgMC4wMTIyMzIiLCBcCi0gICAgICAgICAgIjAuMDEyOTY1LCAwLjAxMjI5LCAwLjAxMjI5MSwgMC4wMTIyOTIsIDAuMDEyMzAxLCAwLjAxMjMwOCwgMC4wMTIzMDkiLCBcCi0gICAgICAgICAgIjAuMDEzMzY5LCAwLjAxMjU1NiwgMC4wMTI1MDMsIDAuMDEyNDk2LCAwLjAxMjQ5NSwgMC4wMTI0OTYsIDAuMDEyNDk5IiwgXAotICAgICAgICAgICIwLjAxMzY5MywgMC4wMTI4MzUsIDAuMDEyNzA4LCAwLjAxMjY3OSwgMC4wMTI2NTksIDAuMDEyNjU1LCAwLjAxMjY0NiIsIFwKLSAgICAgICAgICAiMC4wMTQ1MDIsIDAuMDEzMjgsIDAuMDEzMTM4LCAwLjAxMzEwMywgMC4wMTMwODksIDAuMDEzMDgsIDAuMDEzMDc0IiwgXAotICAgICAgICAgICIwLjAxNTE4NSwgMC4wMTM2NTQsIDAuMDEzNTUsIDAuMDEzNTA3LCAwLjAxMzQ3NSwgMC4wMTM0NDIsIDAuMDEzNDI4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTQzNzMsIDAuMDE0ODQ4LCAwLjAxNDk1NywgMC4wMTQ5OTMsIDAuMDE1MDI2LCAwLjAxNTA0MywgMC4wMTUwNTgiLCBcCi0gICAgICAgICAgIjAuMDE0MzYyLCAwLjAxNDc3NCwgMC4wMTQ5MDEsIDAuMDE0OTQ1LCAwLjAxNDk4NiwgMC4wMTUwMDgsIDAuMDE1MDI4IiwgXAotICAgICAgICAgICIwLjAxNDU3NywgMC4wMTQ4NTcsIDAuMDE0OTI3LCAwLjAxNDk3MiwgMC4wMTUwMTYsIDAuMDE1MDQsIDAuMDE1MDUzIiwgXAotICAgICAgICAgICIwLjAxNDk4MiwgMC4wMTQ5MDMsIDAuMDE1MDM0LCAwLjAxNTA4NiwgMC4wMTUxMzQsIDAuMDE1MTY0LCAwLjAxNTE5MiIsIFwKLSAgICAgICAgICAiMC4wMTUyNTQsIDAuMDE1MTM0LCAwLjAxNTIxNywgMC4wMTUyNTYsIDAuMDE1MjksIDAuMDE1MjksIDAuMDE1MzQzIiwgXAotICAgICAgICAgICIwLjAxNTY0NSwgMC4wMTU1NTIsIDAuMDE1NTUzLCAwLjAxNTU4MSwgMC4wMTU2MTMsIDAuMDE1NjMzLCAwLjAxNTY1NiIsIFwKLSAgICAgICAgICAiMC4wMTYyMTgsIDAuMDE1Nzg3LCAwLjAxNTk1NywgMC4wMTU5NTQsIDAuMDE1OTU5LCAwLjAxNTk2NywgMC4wMTU5OCIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogQU5ENFhMICoKLSAqIC0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoQU5ENFhMKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMjc3OTc7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY2NTg2NTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2NjU4NjU7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjY0ODE2OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDI5NiwgMC4wMDAyOTYsIDAuMDAwMjk2LCAwLjAwMDI5NiwgMC4wMDAyOTYsIDAuMDAwMjk2LCAwLjAwMDI5NiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDI5NywgMC4wMDAyOTcsIDAuMDAwMjk3LCAwLjAwMDI5NywgMC4wMDAyOTcsIDAuMDAwMjk3LCAwLjAwMDI5NyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjk5MTM3OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDY5OTEzNzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2OTgzMjk7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjk2LCAwLjAwMDI5NiwgMC4wMDAyOTYsIDAuMDAwMjk2LCAwLjAwMDI5NiwgMC4wMDAyOTYsIDAuMDAwMjk2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjk3LCAwLjAwMDI5NywgMC4wMDAyOTcsIDAuMDAwMjk3LCAwLjAwMDI5NywgMC4wMDAyOTcsIDAuMDAwMjk3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihDKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA3MzQwMTY7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNzM0MDE2OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDczMzQ5OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDI5NiwgMC4wMDAyOTYsIDAuMDAwMjk2LCAwLjAwMDI5NiwgMC4wMDAyOTYsIDAuMDAwMjk2LCAwLjAwMDI5NiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDI5NywgMC4wMDAyOTcsIDAuMDAwMjk3LCAwLjAwMDI5NywgMC4wMDAyOTcsIDAuMDAwMjk3LCAwLjAwMDI5NyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjk5NTY3OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDY5OTUzNjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2OTk1Njc7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMTc5LCAwLjAwMDE3OSwgMC4wMDAxNzksIDAuMDAwMTc5LCAwLjAwMDE3OSwgMC4wMDAxNzksIDAuMDAwMTc5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzM3LCAwLjAwMDMzOCwgMC4wMDAzMzcsIDAuMDAwMzM4LCAwLjAwMDMzOCwgMC4wMDAzMzgsIDAuMDAwMzM4Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMjAyMzk3OwotICAgIGZ1bmN0aW9uIDogIigoKEEgQikgQykgRCkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExNDc1NywgMC4xMjU1LCAwLjIyMDQ4MiwgMC4zNzgyODMsIDAuNTM2MTY3LCAwLjkwNDUzNSwgMS4xMTU1NyIsIFwKLSAgICAgICAgICAiMC4xMTkxNDQsIDAuMTI5ODkyLCAwLjIyNDg0LCAwLjM4MjY1LCAwLjU0MDUzOCwgMC45MDkzMzYsIDEuMTE5ODciLCBcCi0gICAgICAgICAgIjAuMTIzNDY3LCAwLjEzNDIzLCAwLjIyOTE2MywgMC4zODY5NjgsIDAuNTQ0ODQyLCAwLjkxMzYyMSwgMS4xMjQwNSIsIFwKLSAgICAgICAgICAiMC4xMjc1MzIsIDAuMTM4Mjk3LCAwLjIzMzI0NiwgMC4zOTEwNTUsIDAuNTQ4OTI5LCAwLjkxNzY0OSwgMS4xMjgwNyIsIFwKLSAgICAgICAgICAiMC4xMzEzMTYsIDAuMTQyMTE3LCAwLjIzNzA4NywgMC4zOTQ4ODksIDAuNTUyODc4LCAwLjkyMTUyMSwgMS4xMzIwOCIsIFwKLSAgICAgICAgICAiMC4xMzY5NTksIDAuMTQ3NzQsIDAuMjQyOCwgMC40MDA2MzMsIDAuNTU4NSwgMC45MjcyNzIsIDEuMTM3NDgiLCBcCi0gICAgICAgICAgIjAuMTQxNjEzLCAwLjE1MjQwOCwgMC4yNDc1NDksIDAuNDA1MzQ4LCAwLjU2MzQxMiwgMC45MzIzMTksIDEuMTQyMTUiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTI0MzE5LCAwLjE0NTY0MywgMC4zNDExNTIsIDAuNjcyMjY4LCAxLjAwNDgsIDEuNzc5OTQsIDIuMjIxMDgiLCBcCi0gICAgICAgICAgIjAuMTI0MzQsIDAuMTQ1NjIsIDAuMzQxMTA5LCAwLjY3MTYxMSwgMS4wMDQ3OSwgMS43NzgzMSwgMi4yMjEwNCIsIFwKLSAgICAgICAgICAiMC4xMjQzODQsIDAuMTQ1NjQ5LCAwLjM0MDk4NCwgMC42NzIxODYsIDEuMDA0NzYsIDEuNzc3OSwgMi4yMjA5MiIsIFwKLSAgICAgICAgICAiMC4xMjQ1OCwgMC4xNDU3NDUsIDAuMzQxMDUzLCAwLjY3MjE4OSwgMS4wMDQ2NywgMS43Nzg4NywgMi4yMjA4NiIsIFwKLSAgICAgICAgICAiMC4xMjUwNDYsIDAuMTQ2MjI1LCAwLjM0MTEwMSwgMC42NzIyMzgsIDEuMDAzMywgMS43Nzc4NiwgMi4yMjEwMSIsIFwKLSAgICAgICAgICAiMC4xMjU3MzgsIDAuMTQ2ODk1LCAwLjM0MTQ2MywgMC42NzI0ODcsIDEuMDAyOTksIDEuNzc4MiwgMi4yMjIxMSIsIFwKLSAgICAgICAgICAiMC4xMjY0OCwgMC4xNDc0MjUsIDAuMzQxNzM2LCAwLjY3MjUwMiwgMS4wMDMyLCAxLjc3Nzg0LCAyLjIyMTg0Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3NDI0MiwgMC4wODM5MjMsIDAuMTcwODczLCAwLjMxNTY0NSwgMC40NjAzNTUsIDAuNzk3OTc1LCAwLjk5MDkxOCIsIFwKLSAgICAgICAgICAiMC4wODIyNDksIDAuMDkxOTM2LCAwLjE3ODg5MSwgMC4zMjM2NTcsIDAuNDY4MzczLCAwLjgwNTk5OSwgMC45OTg5MDEiLCBcCi0gICAgICAgICAgIjAuMDkwODg0LCAwLjEwMDU1OSwgMC4xODc1MTQsIDAuMzMyMjU5LCAwLjQ3Njk3NCwgMC44MTQ1OTksIDEuMDA3NTEiLCBcCi0gICAgICAgICAgIjAuMDk3MzE2LCAwLjEwNjk2MywgMC4xOTM5MDMsIDAuMzM4NjY1LCAwLjQ4MzM2NSwgMC44MjA5NzYsIDEuMDEzOTIiLCBcCi0gICAgICAgICAgIjAuMTAyMzU1LCAwLjExMjAzLCAwLjE5ODkzNiwgMC4zNDM2NywgMC40ODg0MTcsIDAuODI2MDIxLCAxLjAxODk0IiwgXAotICAgICAgICAgICIwLjEwODk2NSwgMC4xMTg2ODMsIDAuMjA1NTg1LCAwLjM1MDMzMSwgMC40OTUwNDgsIDAuODMyNzI2LCAxLjAyNTYxIiwgXAotICAgICAgICAgICIwLjExMzgwOCwgMC4xMjM1MDgsIDAuMjEwNTA1LCAwLjM1NTIyOSwgMC40OTk5NDYsIDAuODM3NTU0LCAxLjAzMDYzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwNTQ5OCwgMC4xMjUyODgsIDAuMzAyODQyLCAwLjYwMDQ4NCwgMC44OTc5NDMsIDEuNTkyMDMsIDEuOTg4NTUiLCBcCi0gICAgICAgICAgIjAuMTA1NjgsIDAuMTI1MTMsIDAuMzAyODgsIDAuNjAwNDg5LCAwLjg5Nzk1NywgMS41OTIwMywgMS45ODg2MSIsIFwKLSAgICAgICAgICAiMC4xMDU4NDEsIDAuMTI1NDUzLCAwLjMwMzE0OSwgMC41OTk4NzMsIDAuODk3OTkxLCAxLjU5MjAyLCAxLjk4ODU5IiwgXAotICAgICAgICAgICIwLjEwNjEyNywgMC4xMjU3MTYsIDAuMzAzMjAzLCAwLjYwMDQ1NSwgMC44OTY5NDMsIDEuNTkwMDUsIDEuOTg4NTYiLCBcCi0gICAgICAgICAgIjAuMTA2NTI4LCAwLjEyNTk1OSwgMC4zMDMwMzQsIDAuNjAwNDU3LCAwLjg5Nzc4MywgMS41OTE3NSwgMS45ODgzMSIsIFwKLSAgICAgICAgICAiMC4xMDcwNTYsIDAuMTI2MjkxLCAwLjMwMzAxNywgMC41OTk5MjMsIDAuODk3NzI3LCAxLjU5MTQ4LCAxLjk4ODE0IiwgXAotICAgICAgICAgICIwLjEwNzcyOCwgMC4xMjY5MDQsIDAuMzAzMjExLCAwLjYwMDQxNSwgMC44OTY5NDMsIDEuNTkxNjksIDEuOTg1MTUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTEzMjEyLCAwLjEyMzk4NiwgMC4yMTg5NDUsIDAuMzc2NzU0LCAwLjUzNDY0MSwgMC45MDMwMzIsIDEuMTEzOTkiLCBcCi0gICAgICAgICAgIjAuMTE4MDAyLCAwLjEyODc1NSwgMC4yMjM3MjIsIDAuMzgxNTc5LCAwLjUzOTQzMiwgMC45MDg2NjksIDEuMTE4NTciLCBcCi0gICAgICAgICAgIjAuMTIzNjkxLCAwLjEzNDQzNiwgMC4yMjk0NzQsIDAuMzg3MjkyLCAwLjU0NTE3OCwgMC45MTQzMDgsIDEuMTI0NDYiLCBcCi0gICAgICAgICAgIjAuMTI5MzE4LCAwLjE0MDA3MSwgMC4yMzUwNDQsIDAuMzkyODczLCAwLjU1MDc1MywgMC45MTk5MzgsIDEuMTI5NzMiLCBcCi0gICAgICAgICAgIjAuMTM0NTk1LCAwLjE0NTM3NSwgMC4yNDAzODQsIDAuMzk4MTksIDAuNTU2MDc2LCAwLjkyNDU3OSwgMS4xMzUyMyIsIFwKLSAgICAgICAgICAiMC4xNDI1LCAwLjE1MzMyNiwgMC4yNDgzNjIsIDAuNDA2MTg1LCAwLjU2NDExMSwgMC45MzMwNDMsIDEuMTQyODgiLCBcCi0gICAgICAgICAgIjAuMTQ4NzkzLCAwLjE1OTYzMywgMC4yNTQ4MzQsIDAuNDEyNjA4LCAwLjU3MDQ1MiwgMC45Mzg4NTIsIDEuMTUwMDciKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTI0MzY4LCAwLjE0NTU2NSwgMC4zNDExNDcsIDAuNjcyMjU1LCAxLjAwNDgsIDEuNzc5ODEsIDIuMjIxMDUiLCBcCi0gICAgICAgICAgIjAuMTI0MjY0LCAwLjE0NTU5OSwgMC4zNDExMDQsIDAuNjcxMjc0LCAxLjAwNDcxLCAxLjc3Nzg4LCAyLjIyMDg3IiwgXAotICAgICAgICAgICIwLjEyNDM4NywgMC4xNDU2MjEsIDAuMzQxMTMsIDAuNjcyMjU2LCAxLjAwNDY5LCAxLjc3Nzg4LCAyLjIyMTA1IiwgXAotICAgICAgICAgICIwLjEyNDY1OCwgMC4xNDU5MzEsIDAuMzQxMTk2LCAwLjY3MTQ1NSwgMS4wMDQ2OSwgMS43Nzc4NiwgMi4yMTk4NiIsIFwKLSAgICAgICAgICAiMC4xMjUyMzksIDAuMTQ2MzIxLCAwLjM0MTEzOCwgMC42NzIyOTUsIDEuMDA0NjksIDEuNzc4ODUsIDIuMjIwODgiLCBcCi0gICAgICAgICAgIjAuMTI2MDQ5LCAwLjE0NzE2MSwgMC4zNDE1MTksIDAuNjcyNDM0LCAxLjAwMjk4LCAxLjc3ODA2LCAyLjIyMDUiLCBcCi0gICAgICAgICAgIjAuMTI2NzY2LCAwLjE0NzY0LCAwLjM0MTg0MiwgMC42NzIzNTMsIDEuMDAzNSwgMS43Nzk5NSwgMi4yMjA5MyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzMyOTcsIDAuMDgyOTY5LCAwLjE2OTg4NCwgMC4zMTQ2MTksIDAuNDU5Mjg4LCAwLjc5Njg4MSwgMC45ODk4MzgiLCBcCi0gICAgICAgICAgIjAuMDgxMjAxLCAwLjA5MDg2OSwgMC4xNzc3ODksIDAuMzIyNTM0LCAwLjQ2NzIwNywgMC44MDQ4NzMsIDAuOTk3NzI4IiwgXAotICAgICAgICAgICIwLjA4OTQ4NCwgMC4wOTkxNTQsIDAuMTg2MDY5LCAwLjMzMDc5NywgMC40NzU1MjcsIDAuODEzMDkzLCAxLjAwNiIsIFwKLSAgICAgICAgICAiMC4wOTU2NjMsIDAuMTA1MzQ1LCAwLjE5MjI0MSwgMC4zMzY5OTUsIDAuNDgxNjc3LCAwLjgxOTI2NywgMS4wMTIxNyIsIFwKLSAgICAgICAgICAiMC4xMDA0MDUsIDAuMTEwMTAzLCAwLjE5NzAxMywgMC4zNDE3MzIsIDAuNDg2NDg4LCAwLjgyNDA0MiwgMS4wMTY5NCIsIFwKLSAgICAgICAgICAiMC4xMDY1MTgsIDAuMTE2MjA2LCAwLjIwMzE1MSwgMC4zNDc4OTksIDAuNDkyNTgsIDAuODMwMTY0LCAxLjAyMzIiLCBcCi0gICAgICAgICAgIjAuMTEwODQ3LCAwLjEyMDUyNCwgMC4yMDc1MzgsIDAuMzUyMjY5LCAwLjQ5NzAwNywgMC44MzQ1NzgsIDEuMDI3NDgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTA1Mzc4LCAwLjEyNTAzOCwgMC4zMDMwNTIsIDAuNjAwNDI4LCAwLjg5NzgyMiwgMS41OTE4MywgMS45ODg2NCIsIFwKLSAgICAgICAgICAiMC4xMDU0MzYsIDAuMTI1MDcsIDAuMzAzMDc1LCAwLjU5OTUxNCwgMC44OTc4MzYsIDEuNTkyLCAxLjk4ODUzIiwgXAotICAgICAgICAgICIwLjEwNTU2MSwgMC4xMjUyNDEsIDAuMzAyNzM5LCAwLjYwMDQzNCwgMC44OTc4NjEsIDEuNTkxODYsIDEuOTg4NDkiLCBcCi0gICAgICAgICAgIjAuMTA1OTU5LCAwLjEyNTQ1NCwgMC4zMDMxMTUsIDAuNjAwMzM5LCAwLjg5Nzg5OCwgMS41OTE4OCwgMS45ODYwMyIsIFwKLSAgICAgICAgICAiMC4xMDYzMzMsIDAuMTI1NzI4LCAwLjMwMzA1NywgMC41OTk4MzEsIDAuODk2MDYsIDEuNTkxOTcsIDEuOTg4NTMiLCBcCi0gICAgICAgICAgIjAuMTA2OTE1LCAwLjEyNjA5LCAwLjMwMjg4NiwgMC42MDAxMzMsIDAuODk3Nzc1LCAxLjU5MTU4LCAxLjk4ODExIiwgXAotICAgICAgICAgICIwLjEwNzU4NiwgMC4xMjY3MjEsIDAuMzAzMTM2LCAwLjU5OTYyMywgMC44OTczNTQsIDEuNTkxNTYsIDEuOTg2MTMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTEwMjgxLCAwLjEyMTAyLCAwLjIxNjAzNCwgMC4zNzM4MzgsIDAuNTMxNjgsIDAuOTAwNTE3LCAxLjExMTIiLCBcCi0gICAgICAgICAgIjAuMTE1OTE1LCAwLjEyNjY3MywgMC4yMjE2NiwgMC4zNzk1NjgsIDAuNTM3Mzg1LCAwLjkwNjA4NiwgMS4xMTY3NyIsIFwKLSAgICAgICAgICAiMC4xMjM0NjgsIDAuMTM0MjMyLCAwLjIyOTIwMiwgMC4zODcwMTksIDAuNTQ1MDcsIDAuOTEzNzk3LCAxLjEyNDI1IiwgXAotICAgICAgICAgICIwLjEzMDg5MywgMC4xNDE2NCwgMC4yMzY2MjEsIDAuMzk0NDc1LCAwLjU1MjMzMywgMC45MjE1OCwgMS4xMzE4NiIsIFwKLSAgICAgICAgICAiMC4xMzc0NTcsIDAuMTQ4MjQ0LCAwLjI0MzIxNiwgMC40MDEwMTIsIDAuNTU4ODk5LCAwLjkyNzIxNywgMS4xMzgxMSIsIFwKLSAgICAgICAgICAiMC4xNDc0MzcsIDAuMTU4MjM3LCAwLjI1MzMwNiwgMC40MTExOTcsIDAuNTY5MDk2LCAwLjkzNzc1OCwgMS4xNDg4MSIsIFwKLSAgICAgICAgICAiMC4xNTQ5NjEsIDAuMTY1Nzg4LCAwLjI2MDY1NSwgMC40MTg0NDYsIDAuNTc2NDUsIDAuOTQ1MDA4LCAxLjE1NTE5Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEyNDQsIDAuMTQ1NjQ0LCAwLjM0MTExOCwgMC42NzIxOTUsIDEuMDAzMjgsIDEuNzc3OTIsIDIuMjIxMDgiLCBcCi0gICAgICAgICAgIjAuMTI0MzEzLCAwLjE0NTU5NCwgMC4zNDEwOTEsIDAuNjcxMjA2LCAxLjAwNDc5LCAxLjc3Nzg0LCAyLjIyMTU3IiwgXAotICAgICAgICAgICIwLjEyNDQwMywgMC4xNDU2NjcsIDAuMzQwODc1LCAwLjY3MjEzNCwgMS4wMDI2NCwgMS43Nzg4NSwgMi4yMjEwMyIsIFwKLSAgICAgICAgICAiMC4xMjQ3NDUsIDAuMTQ2MDA2LCAwLjM0MTIwOSwgMC42NzIzNjMsIDEuMDA0NywgMS43Nzc4OCwgMi4yMjEwMyIsIFwKLSAgICAgICAgICAiMC4xMjU0NTksIDAuMTQ2NTY5LCAwLjM0MTE3NCwgMC42NzIzMzksIDEuMDA0NywgMS43Nzc3MiwgMi4yMjA5NCIsIFwKLSAgICAgICAgICAiMC4xMjYxOTQsIDAuMTQ3MTgzLCAwLjM0MTUzNiwgMC42NzExNTUsIDEuMDAyNjksIDEuNzc3ODksIDIuMjIwNjUiLCBcCi0gICAgICAgICAgIjAuMTI2ODAzLCAwLjE0NzgwMywgMC4zNDIwMjMsIDAuNjcyNywgMS4wMDMyMSwgMS43NzgxNSwgMi4yMjE3NCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzE5MzIsIDAuMDgxNTk4LCAwLjE2ODQ2NSwgMC4zMTMxNDksIDAuNDU3ODQxLCAwLjc5NTQxLCAwLjk4ODMxOCIsIFwKLSAgICAgICAgICAiMC4wNzk4ODcsIDAuMDg5NTUxLCAwLjE3NjQ0NCwgMC4zMjExMTksIDAuNDY1ODA3LCAwLjgwMzM4OCwgMC45OTYzMzEiLCBcCi0gICAgICAgICAgIjAuMDg3NzgxLCAwLjA5NzQ0NSwgMC4xODQzMTUsIDAuMzI5MDE1LCAwLjQ3MzY5NCwgMC44MTEyNzEsIDEuMDA0MTgiLCBcCi0gICAgICAgICAgIjAuMDkzNDk4LCAwLjEwMzE2NSwgMC4xOTAwNCwgMC4zMzQ3NTcsIDAuNDc5MzY5LCAwLjgxNzAwNCwgMS4wMDk4MSIsIFwKLSAgICAgICAgICAiMC4wOTgwMTYsIDAuMTA3NjgxLCAwLjE5NDM1NywgMC4zMzkwMjgsIDAuNDgzNzIsIDAuODIxMzM2LCAxLjAxNDIyIiwgXAotICAgICAgICAgICIwLjEwMzU0NiwgMC4xMTMyMywgMC4yMDAxMzMsIDAuMzQ0ODg2LCAwLjQ4OTU1OCwgMC44MjcxMTksIDEuMDIwMDQiLCBcCi0gICAgICAgICAgIjAuMTA3NDYxLCAwLjExNzEyNCwgMC4yMDQwNjIsIDAuMzQ4NzYxLCAwLjQ5MzQ0NSwgMC44MzEwMTksIDEuMDIzODgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTA1MjQ1LCAwLjEyNDY2NSwgMC4zMDI0MzIsIDAuNjAwMjg5LCAwLjg5NzgzNSwgMS41OTE0NCwgMS45ODU5MiIsIFwKLSAgICAgICAgICAiMC4xMDUyNTksIDAuMTI0ODk5LCAwLjMwMjk2MiwgMC42MDAyNzIsIDAuODk2Njc0LCAxLjU5MTUyLCAxLjk4ODU1IiwgXAotICAgICAgICAgICIwLjEwNTM4MiwgMC4xMjUxMiwgMC4zMDI2MzQsIDAuNjAwMzM5LCAwLjg5Nzc0MywgMS41OTE3NiwgMS45ODgyMSIsIFwKLSAgICAgICAgICAiMC4xMDU4NDgsIDAuMTI1NDA1LCAwLjMwMjkwMSwgMC42MDAyOTQsIDAuODk3ODM0LCAxLjU5MTg3LCAxLjk4ODQzIiwgXAotICAgICAgICAgICIwLjEwNjE2MSwgMC4xMjU2MTksIDAuMzAyNjc0LCAwLjYwMDMxMywgMC44OTY3MzcsIDEuNTkxOTksIDEuOTg4NDciLCBcCi0gICAgICAgICAgIjAuMTA2OTQxLCAwLjEyNjAyMiwgMC4zMDI3NjksIDAuNTk5NDk1LCAwLjg5NjQzOCwgMS41OTAwNCwgMS45ODg2MiIsIFwKLSAgICAgICAgICAiMC4xMDc0MzYsIDAuMTI2ODQsIDAuMzAyOTcyLCAwLjU5OTI4OSwgMC44OTcxODMsIDEuNTkxNiwgMS45ODc5NyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJEIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDYzMTMsIDAuMTE3MDg0LCAwLjIxMjEyNywgMC4zNjk5NTUsIDAuNTI3ODUsIDAuODk2MjEzLCAxLjEwNzMzIiwgXAotICAgICAgICAgICIwLjExMjg5MywgMC4xMjM2NTQsIDAuMjE4NjY4LCAwLjM3NjUwOSwgMC41MzQzOTgsIDAuOTAyOTgsIDEuMTEzNTYiLCBcCi0gICAgICAgICAgIjAuMTIxODU2LCAwLjEzMjYwNCwgMC4yMjc1OTgsIDAuMzg1NDI3LCAwLjU0MzMxMiwgMC45MTE3NzgsIDEuMTIyNDkiLCBcCi0gICAgICAgICAgIjAuMTMwMzk5LCAwLjE0MTE0NSwgMC4yMzYxMjcsIDAuMzkzOTQ0LCAwLjU1MTgyOSwgMC45MjAyODgsIDEuMTMxMTMiLCBcCi0gICAgICAgICAgIjAuMTM4MjI3LCAwLjE0ODk5MSwgMC4yNDM5OSwgMC40MDE3OTEsIDAuNTU5Njg2LCAwLjkyODA0OSwgMS4xMzkwMiIsIFwKLSAgICAgICAgICAiMC4xNDg5MjIsIDAuMTU5ODIxLCAwLjI1NDk3MSwgMC40MTI4MjcsIDAuNTcwNjc4LCAwLjkzOTE5NiwgMS4xNTAxMSIsIFwKLSAgICAgICAgICAiMC4xNTcyMTYsIDAuMTY4MDczLCAwLjI2MzI1NSwgMC40MjEwMSwgMC41Nzg4NTMsIDAuOTQ3Mjc0LCAxLjE1ODciKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTI0MzA2LCAwLjE0NTYwNCwgMC4zNDExMzQsIDAuNjcyMjczLCAxLjAwNDgsIDEuNzc3NzIsIDIuMjIxMDgiLCBcCi0gICAgICAgICAgIjAuMTI0MjgsIDAuMTQ1NTY2LCAwLjM0MTA5LCAwLjY3MjI5NSwgMS4wMDQ3LCAxLjc3OTI5LCAyLjIyMTc3IiwgXAotICAgICAgICAgICIwLjEyNDQxMiwgMC4xNDU2MjQsIDAuMzQxMTM5LCAwLjY3MjIwOCwgMS4wMDQ2OSwgMS43Nzc0NSwgMi4yMjA4OCIsIFwKLSAgICAgICAgICAiMC4xMjQ3OTcsIDAuMTQ2MDAxLCAwLjM0MTIxOCwgMC42NzIyNTEsIDEuMDA0NjgsIDEuNzc4NzMsIDIuMjIwOTkiLCBcCi0gICAgICAgICAgIjAuMTI1MzYzLCAwLjE0NjQ5OCwgMC4zNDE0MDQsIDAuNjcyMzUxLCAxLjAwNDcxLCAxLjc3OTY3LCAyLjIyMTA2IiwgXAotICAgICAgICAgICIwLjEyNjIzMSwgMC4xNDczMjksIDAuMzQxNTY4LCAwLjY3MjUzMSwgMS4wMDI5OSwgMS43NzkwMSwgMi4yMjExIiwgXAotICAgICAgICAgICIwLjEyNjgwNiwgMC4xNDc3OTQsIDAuMzQxODE4LCAwLjY3MjM2OCwgMS4wMDQ3LCAxLjc3OTg2LCAyLjIyMDY0Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3MDU1LCAwLjA4MDIwNSwgMC4xNjcwNDUsIDAuMzExNzY0LCAwLjQ1NjQ2MSwgMC43OTQwNTgsIDAuOTg3Mzk3IiwgXAotICAgICAgICAgICIwLjA3ODI4OSwgMC4wODc5NDIsIDAuMTc0ODA3LCAwLjMxOTY4OSwgMC40NjQ0MzMsIDAuODAyMjIsIDAuOTk1MDc3IiwgXAotICAgICAgICAgICIwLjA4NTkzNCwgMC4wOTU1OTMsIDAuMTgyNDU1LCAwLjMyNzM5NSwgMC40NzE5NzcsIDAuODA5NzIyLCAxLjAwMjc0IiwgXAotICAgICAgICAgICIwLjA5MTA2MSwgMC4xMDA3MDIsIDAuMTg3NTMxLCAwLjMzMjI2OCwgMC40NzcxMiwgMC44MTQ3NzcsIDEuMDA4MzYiLCBcCi0gICAgICAgICAgIjAuMDk1MTQ3LCAwLjEwNDg5OSwgMC4xOTE2MywgMC4zMzYzNjIsIDAuNDgxNDA2LCAwLjgxODgxNywgMS4wMTIxMyIsIFwKLSAgICAgICAgICAiMC4xMDAzMjcsIDAuMTA5ODY0LCAwLjE5Njc5NSwgMC4zNDE0NSwgMC40ODY0MzksIDAuODI0MTQzLCAxLjAxNjg3IiwgXAotICAgICAgICAgICIwLjEwMzcwNSwgMC4xMTM0MTEsIDAuMjAwMjQsIDAuMzQ0OTA0LCAwLjQ4OTkxNywgMC44MjczNTYsIDEuMDIxMzIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTA1MDk1LCAwLjEyNDc2OCwgMC4zMDI4NDgsIDAuNTk5MTI5LCAwLjg5Nzk3MywgMS41OTIxNiwgMS45ODUxMiIsIFwKLSAgICAgICAgICAiMC4xMDUxNzcsIDAuMTI0ODM4LCAwLjMwMjUzNSwgMC41OTk0MDUsIDAuODk2MjYsIDEuNTkwMzksIDEuOTg2NDciLCBcCi0gICAgICAgICAgIjAuMTA1NDkxLCAwLjEyNDk2MywgMC4zMDIzMTcsIDAuNTk5NDc2LCAwLjg5NjUwOSwgMS41OTIwNCwgMS45ODg3OSIsIFwKLSAgICAgICAgICAiMC4xMDU4NzcsIDAuMTI1NDAxLCAwLjMwMzA0MiwgMC42MDAzMzIsIDAuODk2MjY2LCAxLjU4OTU1LCAxLjk4NjE2IiwgXAotICAgICAgICAgICIwLjEwNjIyNywgMC4xMjU1ODEsIDAuMzAyNjk3LCAwLjYwMDUzNywgMC44OTY0MjYsIDEuNTg4NiwgMS45ODY4NiIsIFwKLSAgICAgICAgICAiMC4xMDcwNzUsIDAuMTI2MTgzLCAwLjMwMzIwOCwgMC42MDAzODgsIDAuODk2NDU0LCAxLjU5MDY0LCAxLjk4NDY0IiwgXAotICAgICAgICAgICIwLjEwNzcxOSwgMC4xMjcwMTYsIDAuMzAzMDU1LCAwLjU5OTczLCAwLjg5ODA5NSwgMS41ODg4MiwgMS45ODYxNiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTYwMiwgMC4wMDE1OTksIDAuMDAxNTksIDAuMDAxNTgzLCAwLjAwMTU4MiwgMC4wMDE1OCwgMC4wMDE1OCIsIFwKLSAgICAgICAgICAiMC4wMDE1NTgsIDAuMDAxNTU2LCAwLjAwMTU0NywgMC4wMDE1NDMsIDAuMDAxNTQxLCAwLjAwMTUzOSwgMC4wMDE1MzkiLCBcCi0gICAgICAgICAgIjAuMDAxNTUxLCAwLjAwMTU0OSwgMC4wMDE1NCwgMC4wMDE1MzUsIDAuMDAxNTMzLCAwLjAwMTUzMSwgMC4wMDE1MzEiLCBcCi0gICAgICAgICAgIjAuMDAxNTY2LCAwLjAwMTU2MywgMC4wMDE1NTQsIDAuMDAxNTQ5LCAwLjAwMTU0NywgMC4wMDE1NDUsIDAuMDAxNTQ1IiwgXAotICAgICAgICAgICIwLjAwMTU5OSwgMC4wMDE1OTYsIDAuMDAxNTg2LCAwLjAwMTU4LCAwLjAwMTU3OSwgMC4wMDE1NzcsIDAuMDAxNTc2IiwgXAotICAgICAgICAgICIwLjAwMTY4NiwgMC4wMDE2ODEsIDAuMDAxNjY5LCAwLjAwMTY2MywgMC4wMDE2NjEsIDAuMDAxNjU4LCAwLjAwMTY1NyIsIFwKLSAgICAgICAgICAiMC4wMDE3ODMsIDAuMDAxNzgsIDAuMDAxNzY2LCAwLjAwMTc1OSwgMC4wMDE3NTYsIDAuMDAxNzUzLCAwLjAwMTc1MiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzc2MSwgMC4wMDM3NjIsIDAuMDAzNzY0LCAwLjAwMzc2NSwgMC4wMDM3NjUsIDAuMDAzNzY1LCAwLjAwMzc2NSIsIFwKLSAgICAgICAgICAiMC4wMDM3NTQsIDAuMDAzNzU0LCAwLjAwMzc1OCwgMC4wMDM3NTksIDAuMDAzNzU5LCAwLjAwMzc2LCAwLjAwMzc2IiwgXAotICAgICAgICAgICIwLjAwMzc5MiwgMC4wMDM3OTEsIDAuMDAzNzk1LCAwLjAwMzc5NywgMC4wMDM3OTcsIDAuMDAzNzk4LCAwLjAwMzc5NyIsIFwKLSAgICAgICAgICAiMC4wMDM4NTYsIDAuMDAzODU2LCAwLjAwMzg1NywgMC4wMDM4NTgsIDAuMDAzODU5LCAwLjAwMzg1OSwgMC4wMDM4NTgiLCBcCi0gICAgICAgICAgIjAuMDAzOTQyLCAwLjAwMzk0MSwgMC4wMDM5MzgsIDAuMDAzOTM4LCAwLjAwMzkzNywgMC4wMDM5MzcsIDAuMDAzOTM3IiwgXAotICAgICAgICAgICIwLjAwNDA4NiwgMC4wMDQwODUsIDAuMDA0MDgzLCAwLjAwNDA4MywgMC4wMDQwODIsIDAuMDA0MDgzLCAwLjAwNDA4MyIsIFwKLSAgICAgICAgICAiMC4wMDQyMywgMC4wMDQyMjksIDAuMDA0MjI1LCAwLjAwNDIyNCwgMC4wMDQyMjQsIDAuMDA0MjI0LCAwLjAwNDIyNCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTYwNSwgMC4wMDE2MDQsIDAuMDAxNTk3LCAwLjAwMTU5MywgMC4wMDE1OTIsIDAuMDAxNTkxLCAwLjAwMTU5IiwgXAotICAgICAgICAgICIwLjAwMTU2MywgMC4wMDE1NjEsIDAuMDAxNTU2LCAwLjAwMTU1MiwgMC4wMDE1NTEsIDAuMDAxNTUxLCAwLjAwMTU1IiwgXAotICAgICAgICAgICIwLjAwMTU2LCAwLjAwMTU1OSwgMC4wMDE1NTIsIDAuMDAxNTQ5LCAwLjAwMTU0OCwgMC4wMDE1NDcsIDAuMDAxNTQ2IiwgXAotICAgICAgICAgICIwLjAwMTU4NSwgMC4wMDE1ODMsIDAuMDAxNTc2LCAwLjAwMTU3MiwgMC4wMDE1NzEsIDAuMDAxNTcsIDAuMDAxNTY5IiwgXAotICAgICAgICAgICIwLjAwMTYzMiwgMC4wMDE2MjksIDAuMDAxNjE5LCAwLjAwMTYxNCwgMC4wMDE2MTMsIDAuMDAxNjExLCAwLjAwMTYxIiwgXAotICAgICAgICAgICIwLjAwMTcyOSwgMC4wMDE3MjcsIDAuMDAxNzE1LCAwLjAwMTcxLCAwLjAwMTcwOSwgMC4wMDE3MDcsIDAuMDAxNzA2IiwgXAotICAgICAgICAgICIwLjAwMTg0MSwgMC4wMDE4MzgsIDAuMDAxODI0LCAwLjAwMTgxNywgMC4wMDE4MTQsIDAuMDAxODExLCAwLjAwMTgxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzNDY5LCAwLjAwMzQ3LCAwLjAwMzQ3NSwgMC4wMDM0NzcsIDAuMDAzNDc4LCAwLjAwMzQ3OSwgMC4wMDM0NzkiLCBcCi0gICAgICAgICAgIjAuMDAzNDY1LCAwLjAwMzQ2NywgMC4wMDM0NzQsIDAuMDAzNDc3LCAwLjAwMzQ3OCwgMC4wMDM0NzksIDAuMDAzNDc5IiwgXAotICAgICAgICAgICIwLjAwMzQ5NSwgMC4wMDM0OTcsIDAuMDAzNTA1LCAwLjAwMzUwOCwgMC4wMDM1MDksIDAuMDAzNTEsIDAuMDAzNTEiLCBcCi0gICAgICAgICAgIjAuMDAzNTUsIDAuMDAzNTUxLCAwLjAwMzU1OSwgMC4wMDM1NjIsIDAuMDAzNTY0LCAwLjAwMzU2NSwgMC4wMDM1NjUiLCBcCi0gICAgICAgICAgIjAuMDAzNjM0LCAwLjAwMzYzNywgMC4wMDM2NDQsIDAuMDAzNjQ4LCAwLjAwMzY0OSwgMC4wMDM2NSwgMC4wMDM2NSIsIFwKLSAgICAgICAgICAiMC4wMDM3NzIsIDAuMDAzNzc0LCAwLjAwMzc4MSwgMC4wMDM3NzYsIDAuMDAzNzg2LCAwLjAwMzc4LCAwLjAwMzc4OCIsIFwKLSAgICAgICAgICAiMC4wMDM5MTMsIDAuMDAzOTE1LCAwLjAwMzkyLCAwLjAwMzkyNCwgMC4wMDM5MjYsIDAuMDAzOTE2LCAwLjAwMzkxNyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTYxMiwgMC4wMDE2MSwgMC4wMDE2MDUsIDAuMDAxNjAyLCAwLjAwMTYwMiwgMC4wMDE2MDEsIDAuMDAxNiIsIFwKLSAgICAgICAgICAiMC4wMDE1NjksIDAuMDAxNTY4LCAwLjAwMTU2NiwgMC4wMDE1NjQsIDAuMDAxNTYzLCAwLjAwMTU2MywgMC4wMDE1NjMiLCBcCi0gICAgICAgICAgIjAuMDAxNTgzLCAwLjAwMTU4MiwgMC4wMDE1NzgsIDAuMDAxNTc1LCAwLjAwMTU3NSwgMC4wMDE1NzUsIDAuMDAxNTc0IiwgXAotICAgICAgICAgICIwLjAwMTYyOCwgMC4wMDE2MjYsIDAuMDAxNjIsIDAuMDAxNjE3LCAwLjAwMTYxNiwgMC4wMDE2MTUsIDAuMDAxNjE1IiwgXAotICAgICAgICAgICIwLjAwMTY5NywgMC4wMDE2OTQsIDAuMDAxNjgxLCAwLjAwMTY3NSwgMC4wMDE2NzMsIDAuMDAxNjcxLCAwLjAwMTY3MSIsIFwKLSAgICAgICAgICAiMC4wMDE4MDksIDAuMDAxODA1LCAwLjAwMTc5MiwgMC4wMDE3ODYsIDAuMDAxNzg0LCAwLjAwMTc4MiwgMC4wMDE3ODEiLCBcCi0gICAgICAgICAgIjAuMDAxOTMsIDAuMDAxOTI1LCAwLjAwMTkxOSwgMC4wMDE5MDcsIDAuMDAxOTAzLCAwLjAwMTg5OSwgMC4wMDE4OTciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDMxNDgsIDAuMDAzMTQ5LCAwLjAwMzE1NCwgMC4wMDMxNTYsIDAuMDAzMTU2LCAwLjAwMzE1NywgMC4wMDMxNTciLCBcCi0gICAgICAgICAgIjAuMDAzMTQyLCAwLjAwMzE0NCwgMC4wMDMxNTEsIDAuMDAzMTUzLCAwLjAwMzE1NCwgMC4wMDMxNTUsIDAuMDAzMTU1IiwgXAotICAgICAgICAgICIwLjAwMzE3OCwgMC4wMDMxOCwgMC4wMDMxODgsIDAuMDAzMTkxLCAwLjAwMzE5MiwgMC4wMDMxOTMsIDAuMDAzMTkzIiwgXAotICAgICAgICAgICIwLjAwMzIzNSwgMC4wMDMyMzcsIDAuMDAzMjQzLCAwLjAwMzI0NiwgMC4wMDMyNTMsIDAuMDAzMjQ4LCAwLjAwMzI1NCIsIFwKLSAgICAgICAgICAiMC4wMDMzMTIsIDAuMDAzMzEzLCAwLjAwMzMxOSwgMC4wMDMzMjEsIDAuMDAzMzIyLCAwLjAwMzMyMywgMC4wMDMzMjMiLCBcCi0gICAgICAgICAgIjAuMDAzNDUzLCAwLjAwMzQ0NCwgMC4wMDM0NTIsIDAuMDAzNDY1LCAwLjAwMzQ2NywgMC4wMDM0NjgsIDAuMDAzNDU5IiwgXAotICAgICAgICAgICIwLjAwMzU3NywgMC4wMDM1NzcsIDAuMDAzNTk0LCAwLjAwMzU4NiwgMC4wMDM1ODgsIDAuMDAzNTg5LCAwLjAwMzU5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxNjA4LCAwLjAwMTYwOCwgMC4wMDE2MDgsIDAuMDAxNjA1LCAwLjAwMTYwNiwgMC4wMDE2MDUsIDAuMDAxNjA2IiwgXAotICAgICAgICAgICIwLjAwMTU5MSwgMC4wMDE1OTEsIDAuMDAxNTkxLCAwLjAwMTU5MSwgMC4wMDE1OTEsIDAuMDAxNTkxLCAwLjAwMTU5MSIsIFwKLSAgICAgICAgICAiMC4wMDE2NDYsIDAuMDAxNjQ1LCAwLjAwMTY0MywgMC4wMDE2NDEsIDAuMDAxNjQxLCAwLjAwMTY0MSwgMC4wMDE2NDEiLCBcCi0gICAgICAgICAgIjAuMDAxNzI0LCAwLjAwMTcyMiwgMC4wMDE3MTUsIDAuMDAxNzEyLCAwLjAwMTcxMSwgMC4wMDE3MTEsIDAuMDAxNzEiLCBcCi0gICAgICAgICAgIjAuMDAxODE1LCAwLjAwMTgxMSwgMC4wMDE4LCAwLjAwMTc5NiwgMC4wMDE3OTQsIDAuMDAxNzkzLCAwLjAwMTc5MyIsIFwKLSAgICAgICAgICAiMC4wMDE5NTksIDAuMDAxOTU2LCAwLjAwMTk0NCwgMC4wMDE5MzgsIDAuMDAxOTM2LCAwLjAwMTkzNCwgMC4wMDE5MzQiLCBcCi0gICAgICAgICAgIjAuMDAyMDk3LCAwLjAwMjA5MywgMC4wMDIwNzUsIDAuMDAyMDY4LCAwLjAwMjA2NSwgMC4wMDIwNjMsIDAuMDAyMDYyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyODQyLCAwLjAwMjg0NCwgMC4wMDI4NDgsIDAuMDAyODQ5LCAwLjAwMjg1LCAwLjAwMjg1MSwgMC4wMDI4NSIsIFwKLSAgICAgICAgICAiMC4wMDI4NDgsIDAuMDAyODQ5LCAwLjAwMjg1NSwgMC4wMDI4NTcsIDAuMDAyODU4LCAwLjAwMjg1OCwgMC4wMDI4NTkiLCBcCi0gICAgICAgICAgIjAuMDAyODc1LCAwLjAwMjg3NCwgMC4wMDI4ODMsIDAuMDAyODg2LCAwLjAwMjg4NywgMC4wMDI4ODYsIDAuMDAyODg4IiwgXAotICAgICAgICAgICIwLjAwMjk0NCwgMC4wMDI5NDUsIDAuMDAyOTQ4LCAwLjAwMjk1MSwgMC4wMDI5NTEsIDAuMDAyOTUyLCAwLjAwMjk1MiIsIFwKLSAgICAgICAgICAiMC4wMDMwMTgsIDAuMDAzMDE5LCAwLjAwMzAyLCAwLjAwMzAyMiwgMC4wMDMwMjcsIDAuMDAzMDI0LCAwLjAwMzAyNCIsIFwKLSAgICAgICAgICAiMC4wMDMxNDEsIDAuMDAzMTUsIDAuMDAzMTU3LCAwLjAwMzE1LCAwLjAwMzE1MSwgMC4wMDMxNTMsIDAuMDAzMTUzIiwgXAotICAgICAgICAgICIwLjAwMzI2OCwgMC4wMDMyNjksIDAuMDAzMjczLCAwLjAwMzI3NiwgMC4wMDMyNzcsIDAuMDAzMjc5LCAwLjAwMzI3OSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogQU8yMVgxICoKLSAqIC0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoQU8yMVgxKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMjgxODE1OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjY3NTAyOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDY2NjA1MTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2Njc1MDI7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjk2LCAwLjAwMDI5NiwgMC4wMDAyOTYsIDAuMDAwMjk2LCAwLjAwMDI5NiwgMC4wMDAyOTYsIDAuMDAwMjk2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzE2LCAwLjAwMDMwNiwgMC4wMDAzMDEsIDAuMDAwMjk5LCAwLjAwMDI5OCwgMC4wMDAyOTgsIDAuMDAwMjk4Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihBMSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNzAwNDE7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjk4MzYyOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDcwMDQxOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDE0NCwgMC4wMDAxNDMsIDAuMDAwMTQzLCAwLjAwMDE0MywgMC4wMDAxNDMsIDAuMDAwMTQzLCAwLjAwMDE0MyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDMzNywgMC4wMDAzMzgsIDAuMDAwMzM4LCAwLjAwMDMzOCwgMC4wMDAzMzgsIDAuMDAwMzM4LCAwLjAwMDMzOCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQjApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDcxMDA1NzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA3MTAwNTc7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNzA5OTU3OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDA1MywgMC4wMDAwNTMsIDAuMDAwMDUzLCAwLjAwMDA1MywgMC4wMDAwNTMsIDAuMDAwMDUzLCAwLjAwMDA1MyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDM3LCAwLjAwMDM3LCAwLjAwMDM3LCAwLjAwMDM3LCAwLjAwMDM3LCAwLjAwMDM3LCAwLjAwMDM3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMzM5MjAzOwotICAgIGZ1bmN0aW9uIDogIigoQTAgQTEpK0IwKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTAiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2NjE1NSwgMC4wODQ5NzIsIDAuMTkwNzQ4LCAwLjI4MzkxNiwgMC40MDgwNDUsIDAuNjU2Mjc2LCAwLjgxMTQ2NCIsIFwKLSAgICAgICAgICAiMC4wNzIyOTYsIDAuMDkxMTE4LCAwLjE5Njg5MywgMC4yOTAwNTEsIDAuNDE0MTk4LCAwLjY2MjQzMSwgMC44MTc1NTQiLCBcCi0gICAgICAgICAgIjAuMDc5NDExLCAwLjA5ODI0LCAwLjIwNDAxOCwgMC4yOTcxOTQsIDAuNDIxMzE3LCAwLjY2OTU0NSwgMC44MjQ4NTEiLCBcCi0gICAgICAgICAgIjAuMDg1NTg3LCAwLjEwNDQzOSwgMC4yMTAyMTgsIDAuMzAzMzg5LCAwLjQyNzUzOCwgMC42NzU4MjQsIDAuODMwODY0IiwgXAotICAgICAgICAgICIwLjA5MDczNSwgMC4xMDk2MDQsIDAuMjE1Mzg0LCAwLjMwODUxOSwgMC40MzI3NDQsIDAuNjgwODgzLCAwLjgzNjAwNSIsIFwKLSAgICAgICAgICAiMC4wOTc3OTksIDAuMTE2NjY5LCAwLjIyMjQ2NCwgMC4zMTU2MTksIDAuNDM5NzU3LCAwLjY4ODA0LCAwLjg0MzE4NyIsIFwKLSAgICAgICAgICAiMC4xMDMyOCwgMC4xMjIxODUsIDAuMjI4LCAwLjMyMTE3MiwgMC40NDUzMywgMC42OTMzNSwgMC44NDg0NjgiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDczMzMxLCAwLjExMTYxOCwgMC4zMzIzNjQsIDAuNTI4NjQ3LCAwLjc4OTQyNiwgMS4zMTE3OSwgMS42Mzk3NyIsIFwKLSAgICAgICAgICAiMC4wNzMzNDIsIDAuMTExNjE0LCAwLjMzMjY5MiwgMC41Mjg2MTUsIDAuNzg5NDMsIDEuMzExNjcsIDEuNjM4MTYiLCBcCi0gICAgICAgICAgIjAuMDczNTU1LCAwLjExMTczOCwgMC4zMzIzMzIsIDAuNTI4NTc4LCAwLjc4OTMzOCwgMS4zMTE3OCwgMS42MzcyOCIsIFwKLSAgICAgICAgICAiMC4wNzQwMzgsIDAuMTEyMDQ0LCAwLjMzMjY5OSwgMC41Mjg1ODMsIDAuNzg4ODgsIDEuMzEyNzcsIDEuNjM4MjUiLCBcCi0gICAgICAgICAgIjAuMDc0NDg2LCAwLjExMjM1MSwgMC4zMzI3NCwgMC41MjgxNzksIDAuNzg5OTkzLCAxLjMxMTUyLCAxLjYzODEiLCBcCi0gICAgICAgICAgIjAuMDc1MzU0LCAwLjExMjkyMSwgMC4zMzI4NTgsIDAuNTI4MzEsIDAuNzg5NDEyLCAxLjMxMjc0LCAxLjYzOTUiLCBcCi0gICAgICAgICAgIjAuMDc2MDQ1LCAwLjExMzUyNywgMC4zMzI2MzQsIDAuNTI4MzQ0LCAwLjc4OTkwNywgMS4zMTEyOSwgMS42Mzk0NyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjg5OTYsIDAuMDg3Mzg0LCAwLjE5MDExOCwgMC4yODA2NCwgMC40MDEyODIsIDAuNjQyNTI2LCAwLjc5MzM0MSIsIFwKLSAgICAgICAgICAiMC4wNzU1MDksIDAuMDkzODkyLCAwLjE5NjYzOCwgMC4yODcxNTQsIDAuNDA3ODIyLCAwLjY0OTA2MSwgMC43OTk4MzgiLCBcCi0gICAgICAgICAgIjAuMDgyMDc5LCAwLjEwMDQ2OCwgMC4yMDMyMzIsIDAuMjkzNzI5LCAwLjQxNDM4NiwgMC42NTU2MzIsIDAuODA2NDE2IiwgXAotICAgICAgICAgICIwLjA4NzQwMiwgMC4xMDU4NDUsIDAuMjA4NjIsIDAuMjk5MTE3LCAwLjQxOTc3LCAwLjY2MTAxMiwgMC44MTE5MDUiLCBcCi0gICAgICAgICAgIjAuMDkxOTAyLCAwLjExMDM3OSwgMC4yMTMxNTYsIDAuMzAzNjY3LCAwLjQyNDM2OCwgMC42NjU1OTYsIDAuODE2MzYyIiwgXAotICAgICAgICAgICIwLjA5Nzc0NSwgMC4xMTYyOTYsIDAuMjE5MTU4LCAwLjMwOTY1NiwgMC40MzAyOSwgMC42NzE1OCwgMC44MjI0MTMiLCBcCi0gICAgICAgICAgIjAuMTAyMTYzLCAwLjEyMDc2MSwgMC4yMjM2NTIsIDAuMzE0MTcyLCAwLjQzNDgxMywgMC42NzYxMDMsIDAuODI2ODI3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3MDU5MSwgMC4xMDY3OTgsIDAuMzE2MzU1LCAwLjUwMTkxMiwgMC43NTExNjcsIDEuMjQ4MiwgMS41NTc1MiIsIFwKLSAgICAgICAgICAiMC4wNzA2MTQsIDAuMTA2Nzg2LCAwLjMxNjM0LCAwLjUwMTk0OCwgMC43NTEyMjMsIDEuMjQ4MzQsIDEuNTU3MTciLCBcCi0gICAgICAgICAgIjAuMDcwODUsIDAuMTA2OTI0LCAwLjMxNjQ0NiwgMC41MDI1NjQsIDAuNzUxMTgsIDEuMjQ4MTEsIDEuNTU3MjMiLCBcCi0gICAgICAgICAgIjAuMDcxNDM4LCAwLjEwNzM0OSwgMC4zMTY0ODYsIDAuNTAxOTY3LCAwLjc1MTE3NCwgMS4yNDgzMSwgMS41NTk2NiIsIFwKLSAgICAgICAgICAiMC4wNzIwMTYsIDAuMTA3ODMsIDAuMzE2MTkxLCAwLjUwMjUzNywgMC43NDk1NTEsIDEuMjQ4NDcsIDEuNTU5MTciLCBcCi0gICAgICAgICAgIjAuMDczMDYsIDAuMTA4NDUsIDAuMzE2MjgxLCAwLjUwMjA3MywgMC43NTExMTMsIDEuMjQ2MTksIDEuNTU5MzYiLCBcCi0gICAgICAgICAgIjAuMDczOTYyLCAwLjEwOTI4MiwgMC4zMTY1NzgsIDAuNTAyMTExLCAwLjc1MDI5OSwgMS4yNDgsIDEuNTU4ODIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTEiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2NDYxNywgMC4wODM0NjEsIDAuMTg5MjMsIDAuMjgyMzkxLCAwLjQwNjUxOSwgMC42NTQ3NTgsIDAuODA5ODg1IiwgXAotICAgICAgICAgICIwLjA3MjAzNCwgMC4wOTA4NTcsIDAuMTk2NjQ5LCAwLjI4OTgyMSwgMC40MTM5NTEsIDAuNjYyMTgxLCAwLjgxNzMzOSIsIFwKLSAgICAgICAgICAiMC4wODEzMjksIDAuMTAwMTQyLCAwLjIwNTk0OSwgMC4yOTkxMTcsIDAuNDIzMjIyLCAwLjY3MTQ2OCwgMC44MjY1OTkiLCBcCi0gICAgICAgICAgIjAuMDg4OTI4LCAwLjEwNzc3NywgMC4yMTM1NDksIDAuMzA2NzQ2LCAwLjQzMDg0NiwgMC42NzkwNzgsIDAuODM0MjEyIiwgXAotICAgICAgICAgICIwLjA5NTIyNiwgMC4xMTQwNzMsIDAuMjE5ODU0LCAwLjMxMjk2NCwgMC40MzcxNzcsIDAuNjg1NDA5LCAwLjg0MDQ1MyIsIFwKLSAgICAgICAgICAiMC4xMDM1NTksIDAuMTIyNDQ0LCAwLjIyODIwOCwgMC4zMjEzNjcsIDAuNDQ1NDg3LCAwLjY5Mzc2OSwgMC44NDg4MTYiLCBcCi0gICAgICAgICAgIjAuMTEwMjQ2LCAwLjEyOTEwNiwgMC4yMzQ5NjYsIDAuMzI4MTA5LCAwLjQ1MjI4MywgMC43MDA1MywgMC44NTU2ODYiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDczMzU4LCAwLjExMTU2NCwgMC4zMzIzOTQsIDAuNTI4NjM0LCAwLjc4OTMxNywgMS4zMTE4OSwgMS42MzgyOSIsIFwKLSAgICAgICAgICAiMC4wNzMzMzcsIDAuMTExNjE0LCAwLjMzMjM2OSwgMC41Mjg2MiwgMC43ODk0MTYsIDEuMzExODgsIDEuNjM3IiwgXAotICAgICAgICAgICIwLjA3MzU1OSwgMC4xMTE3MjEsIDAuMzMyNjcyLCAwLjUyODU5MSwgMC43ODkyMTYsIDEuMzExNjUsIDEuNjM4MTUiLCBcCi0gICAgICAgICAgIjAuMDc0MTQxLCAwLjExMjA3NywgMC4zMzI2OTgsIDAuNTI4NTk4LCAwLjc4OTI1NCwgMS4zMTE3NCwgMS42Mzg0IiwgXAotICAgICAgICAgICIwLjA3NDY0LCAwLjExMjQ4MywgMC4zMzI4MSwgMC41Mjg1NjQsIDAuNzg5OTgsIDEuMzEwNTIsIDEuNjM3OTkiLCBcCi0gICAgICAgICAgIjAuMDc1ODMzLCAwLjExMzA5MSwgMC4zMzI5NDYsIDAuNTI4NjgzLCAwLjc4OTkzMiwgMS4zMTI3MywgMS42Mzk0MiIsIFwKLSAgICAgICAgICAiMC4wNzYzMzUsIDAuMTEzNzM5LCAwLjMzMjcyOCwgMC41Mjg3MiwgMC43ODk5OTYsIDEuMzEyNywgMS42Mzk1Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2NjAxMywgMC4wODQzNDUsIDAuMTg2OTc5LCAwLjI3NzQ5NSwgMC4zOTgxOTksIDAuNjM5NzcxLCAwLjc5MDM2NCIsIFwKLSAgICAgICAgICAiMC4wNzIzOTYsIDAuMDkwNzE4LCAwLjE5MzM2NSwgMC4yODM4ODUsIDAuNDA0NTc5LCAwLjY0NjExNiwgMC43OTY4NiIsIFwKLSAgICAgICAgICAiMC4wNzg3OTQsIDAuMDk3MTUyLCAwLjE5OTc5NywgMC4yOTAzMTMsIDAuNDExMTc3LCAwLjY1MjQ0LCAwLjgwMzIzMSIsIFwKLSAgICAgICAgICAiMC4wODM5NDgsIDAuMTAyMzM3LCAwLjIwNDk4NCwgMC4yOTU1MTEsIDAuNDE2MzAxLCAwLjY1NzU2NywgMC44MDgzNzUiLCBcCi0gICAgICAgICAgIjAuMDg3OTQ1LCAwLjEwNjQxNywgMC4yMDkxMDYsIDAuMjk5NTkzLCAwLjQyMDMxOSwgMC42NjE2MTcsIDAuODEyNTAxIiwgXAotICAgICAgICAgICIwLjA5MzQzNSwgMC4xMTE4ODksIDAuMjE0Njc0LCAwLjMwNTE1NCwgMC40MjU4MzQsIDAuNjY3MTY2LCAwLjgxODQ2OCIsIFwKLSAgICAgICAgICAiMC4wOTc0MSwgMC4xMTYwMzMsIDAuMjE4ODY5LCAwLjMwOTMzMywgMC40MzAwMDEsIDAuNjcxMzEyLCAwLjgyMjM4NCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzAyMjUsIDAuMTA2NDI5LCAwLjMxNjEwOSwgMC41MDI1MTksIDAuNzQ5MzQyLCAxLjI0NjAzLCAxLjU1NjY4IiwgXAotICAgICAgICAgICIwLjA3MDIxOSwgMC4xMDY0MjYsIDAuMzE2MTA5LCAwLjUwMjUzMSwgMC43NDk0MTYsIDEuMjQ2MTIsIDEuNTU3NTIiLCBcCi0gICAgICAgICAgIjAuMDcwNTczLCAwLjEwNjYzNCwgMC4zMTYxNDQsIDAuNTAyNTEzLCAwLjc0OTYzNiwgMS4yNDYxMywgMS41NTkzMSIsIFwKLSAgICAgICAgICAiMC4wNzExOSwgMC4xMDcwODgsIDAuMzE2MTU5LCAwLjUwMTgxMiwgMC43NDk2NjEsIDEuMjQ2MzcsIDEuNTU5NCIsIFwKLSAgICAgICAgICAiMC4wNzE4MjgsIDAuMTA3NTc5LCAwLjMxNjQzNSwgMC41MDE4NiwgMC43NTAxNjIsIDEuMjQ1NjksIDEuNTU2NjYiLCBcCi0gICAgICAgICAgIjAuMDcyOTgsIDAuMTA4MzQ2LCAwLjMxNjIzNCwgMC41MDE5MzUsIDAuNzUwMTA4LCAxLjI0NTg1LCAxLjU1NjAxIiwgXAotICAgICAgICAgICIwLjA3Mzk2LCAwLjEwOTE5MywgMC4zMTY0NDMsIDAuNTAxOTQyLCAwLjc1MDIwMSwgMS4yNDg2NywgMS41NTYzNiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQ5NzYxLCAwLjA2ODM5MSwgMC4xNzM5MzcsIDAuMjY3MDQyLCAwLjM5MTIwMSwgMC42Mzk1NTIsIDAuNzk0NTgiLCBcCi0gICAgICAgICAgIjAuMDU3NjgxLCAwLjA3NjMxNiwgMC4xODE4NDksIDAuMjc1MDI2LCAwLjM5OTE2OCwgMC42NDczNTUsIDAuODAyODUzIiwgXAotICAgICAgICAgICIwLjA2NTA1NiwgMC4wODM2NTMsIDAuMTg5MTYyLCAwLjI4MjQ3OCwgMC40MDY0NjIsIDAuNjU0NjkyLCAwLjgxMDc5OCIsIFwKLSAgICAgICAgICAiMC4wNzA0NzUsIDAuMDg5MDk2LCAwLjE5NDU2NiwgMC4yODc2NjcsIDAuNDEyMDQsIDAuNjYwMjM1LCAwLjgxNjIwNiIsIFwKLSAgICAgICAgICAiMC4wNzQ3ODYsIDAuMDkzNDEsIDAuMTk4ODY2LCAwLjI5MTk5MSwgMC40MTYyMDIsIDAuNjY0NDM2LCAwLjgxOTcwMSIsIFwKLSAgICAgICAgICAiMC4wODA2MDQsIDAuMDk5MDUyLCAwLjIwNDQ4MiwgMC4yOTc2MTIsIDAuNDIxNzUsIDAuNjcwMDkzLCAwLjgyNTQxNiIsIFwKLSAgICAgICAgICAiMC4wODQ3ODMsIDAuMTAzMzU5LCAwLjIwODc3MywgMC4zMDE4MTIsIDAuNDI2LCAwLjY3NDM3NCwgMC44Mjk3NjQiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDcwOTQ4LCAwLjEwOTgzNSwgMC4zMzE2NzQsIDAuNTI3NTAzLCAwLjc4ODM4NSwgMS4zMTIyOSwgMS42Mzc0NiIsIFwKLSAgICAgICAgICAiMC4wNzEwMjEsIDAuMTA5NzE0LCAwLjMzMTYyMSwgMC41MjcxODgsIDAuNzg4ODMxLCAxLjMxMjEyLCAxLjYzNzQ2IiwgXAotICAgICAgICAgICIwLjA3MTYyNiwgMC4xMTAxMDYsIDAuMzMxODM0LCAwLjUyNzEyMiwgMC43ODkyNTQsIDEuMzExMDUsIDEuNjM4NiIsIFwKLSAgICAgICAgICAiMC4wNzIyMTksIDAuMTEwNDU0LCAwLjMzMTQyMSwgMC41Mjc2NTgsIDAuNzg4NzQ2LCAxLjMxMTQzLCAxLjYzNzc2IiwgXAotICAgICAgICAgICIwLjA3MzAzMywgMC4xMTA3NzksIDAuMzMxOTE3LCAwLjUyODAxOSwgMC43ODg1OSwgMS4zMTA1MiwgMS42MzY5OCIsIFwKLSAgICAgICAgICAiMC4wNzQxMTYsIDAuMTExNjk1LCAwLjMzMTgxOCwgMC41Mjc0MjMsIDAuNzg4OTU3LCAxLjMxMTcxLCAxLjYzNjkyIiwgXAotICAgICAgICAgICIwLjA3NTE0NiwgMC4xMTIyNjMsIDAuMzMxNzEyLCAwLjUyODAxNSwgMC43ODk0NDMsIDEuMzEyNjEsIDEuNjM4MzkiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDYzNTYyLCAwLjA4MTkzOSwgMC4xODQ2NywgMC4yNzUyMDEsIDAuMzk1ODMyLCAwLjYzNzA5LCAwLjc4Nzg2NSIsIFwKLSAgICAgICAgICAiMC4wNzA5ODMsIDAuMDg5MzY4LCAwLjE5MjExOSwgMC4yODI2NTIsIDAuNDAzMjg0LCAwLjY0NDUzOSwgMC43OTUzNDMiLCBcCi0gICAgICAgICAgIjAuMDc5ODUyLCAwLjA5ODMwOCwgMC4yMDEwNSwgMC4yOTE1NjMsIDAuNDEyMjEyLCAwLjY1MzQ2NywgMC44MDQyNjQiLCBcCi0gICAgICAgICAgIjAuMDg3MDM1LCAwLjEwNTQ1NywgMC4yMDgxOTMsIDAuMjk4NzU0LCAwLjQxOTM3OSwgMC42NjA2MzUsIDAuODExNDA0IiwgXAotICAgICAgICAgICIwLjA5MjgzNiwgMC4xMTEzNDIsIDAuMjE0MDgsIDAuMzA0NTksIDAuNDI1MjcxLCAwLjY2NjQ3NiwgMC44MTcyNzUiLCBcCi0gICAgICAgICAgIjAuMTAwNjU3LCAwLjExOTE4NCwgMC4yMjIwODcsIDAuMzEyNTgzLCAwLjQzMzI0OCwgMC42NzQ0OTEsIDAuODI1MjMyIiwgXAotICAgICAgICAgICIwLjEwNjk2OSwgMC4xMjU0ODMsIDAuMjI4NTM0LCAwLjMxOTAyMSwgMC40Mzk3NTQsIDAuNjgwOTIzLCAwLjgzMTc2OCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzA2MjksIDAuMTA2Nzg1LCAwLjMxNjI5OCwgMC41MDI0ODgsIDAuNzUxMTE4LCAxLjI0Njg1LCAxLjU1OTA0IiwgXAotICAgICAgICAgICIwLjA3MDYzNCwgMC4xMDY3ODksIDAuMzE2MzQxLCAwLjUwMjUyNSwgMC43NTExMzcsIDEuMjQ4MTMsIDEuNTU5MTkiLCBcCi0gICAgICAgICAgIjAuMDcwOTg2LCAwLjEwNjk4MiwgMC4zMTYzNjcsIDAuNTAyNDU4LCAwLjc1MDk3NCwgMS4yNDgxMiwgMS41NTg5MiIsIFwKLSAgICAgICAgICAiMC4wNzE0NiwgMC4xMDczOTMsIDAuMzE2NDE0LCAwLjUwMTU2OCwgMC43NTEyMTksIDEuMjQ2ODYsIDEuNTU3MzEiLCBcCi0gICAgICAgICAgIjAuMDcyMDE3LCAwLjEwNzc4NCwgMC4zMTY2NjUsIDAuNTAyNjU5LCAwLjc1MTI0LCAxLjI0ODI5LCAxLjU1NzM3IiwgXAotICAgICAgICAgICIwLjA3Mjg4MiwgMC4xMDgzNjYsIDAuMzE2ODg3LCAwLjUwMjg2OSwgMC43NTEzMDQsIDEuMjQ4NDIsIDEuNTU4ODQiLCBcCi0gICAgICAgICAgIjAuMDczNTM2LCAwLjEwOTAzNywgMC4zMTY1ODgsIDAuNTAyODU0LCAwLjc1MTQ0NCwgMS4yNDgxMywgMS41NTk0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTg2MywgMC4wMDE4NzMsIDAuMDAxODg2LCAwLjAwMTg4OSwgMC4wMDE4OSwgMC4wMDE4OTIsIDAuMDAxODkyIiwgXAotICAgICAgICAgICIwLjAwMTgyOSwgMC4wMDE4NCwgMC4wMDE4NTYsIDAuMDAxODU4LCAwLjAwMTg2MSwgMC4wMDE4NjMsIDAuMDAxODYzIiwgXAotICAgICAgICAgICIwLjAwMTg0MSwgMC4wMDE4NTEsIDAuMDAxODY5LCAwLjAwMTg3MiwgMC4wMDE4NzUsIDAuMDAxODc3LCAwLjAwMTg3OCIsIFwKLSAgICAgICAgICAiMC4wMDE4ODIsIDAuMDAxODkyLCAwLjAwMTkxLCAwLjAwMTkxMywgMC4wMDE5MTcsIDAuMDAxOTE5LCAwLjAwMTkyIiwgXAotICAgICAgICAgICIwLjAwMTk1NSwgMC4wMDE5NiwgMC4wMDE5NzMsIDAuMDAxOTc3LCAwLjAwMTk4LCAwLjAwMTk4MiwgMC4wMDE5ODMiLCBcCi0gICAgICAgICAgIjAuMDAyMDg3LCAwLjAwMjA4NywgMC4wMDIwOTgsIDAuMDAyMTAzLCAwLjAwMjEwNSwgMC4wMDIxMDgsIDAuMDAyMTA5IiwgXAotICAgICAgICAgICIwLjAwMjIwMiwgMC4wMDIyMDcsIDAuMDAyMjIzLCAwLjAwMjIyOSwgMC4wMDIyMzIsIDAuMDAyMjM2LCAwLjAwMjIzNyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzgxNiwgMC4wMDM4MjgsIDAuMDAzODQ0LCAwLjAwMzg0NywgMC4wMDM4NDksIDAuMDAzODUxLCAwLjAwMzg1MSIsIFwKLSAgICAgICAgICAiMC4wMDM3OTMsIDAuMDAzODA2LCAwLjAwMzgyNCwgMC4wMDM4MjgsIDAuMDAzODMxLCAwLjAwMzgzMiwgMC4wMDM4MzMiLCBcCi0gICAgICAgICAgIjAuMDAzNzkyLCAwLjAwMzgwNSwgMC4wMDM4MjUsIDAuMDAzODMsIDAuMDAzODMyLCAwLjAwMzgzNSwgMC4wMDM4MzUiLCBcCi0gICAgICAgICAgIjAuMDAzODEyLCAwLjAwMzgyNCwgMC4wMDM4NDUsIDAuMDAzODUsIDAuMDAzODUzLCAwLjAwMzg1NSwgMC4wMDM4NTYiLCBcCi0gICAgICAgICAgIjAuMDAzODQ5LCAwLjAwMzg2LCAwLjAwMzg4MSwgMC4wMDM4ODYsIDAuMDAzODg5LCAwLjAwMzg5MSwgMC4wMDM4OTIiLCBcCi0gICAgICAgICAgIjAuMDAzOTUxLCAwLjAwMzk1OCwgMC4wMDM5NzYsIDAuMDAzOTgsIDAuMDAzOTg0LCAwLjAwMzk4NiwgMC4wMDM5ODciLCBcCi0gICAgICAgICAgIjAuMDA0MDU0LCAwLjAwNDA2MiwgMC4wMDQwNzgsIDAuMDA0MDgzLCAwLjAwNDA4NywgMC4wMDQwODksIDAuMDA0MDkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxODYyLCAwLjAwMTg3MSwgMC4wMDE4ODcsIDAuMDAxODg4LCAwLjAwMTg5MSwgMC4wMDE4ODksIDAuMDAxODkxIiwgXAotICAgICAgICAgICIwLjAwMTg0MSwgMC4wMDE4NTIsIDAuMDAxODcxLCAwLjAwMTg3NiwgMC4wMDE4NzcsIDAuMDAxODc5LCAwLjAwMTg3OCIsIFwKLSAgICAgICAgICAiMC4wMDE4OCwgMC4wMDE4ODksIDAuMDAxOTA3LCAwLjAwMTkxLCAwLjAwMTkxMywgMC4wMDE5MTYsIDAuMDAxOTE3IiwgXAotICAgICAgICAgICIwLjAwMTk1MiwgMC4wMDE5NjEsIDAuMDAxOTgsIDAuMDAxOTg0LCAwLjAwMTk4OSwgMC4wMDE5OTIsIDAuMDAxOTkyIiwgXAotICAgICAgICAgICIwLjAwMjA0LCAwLjAwMjA0MywgMC4wMDIwNTYsIDAuMDAyMDYsIDAuMDAyMDY0LCAwLjAwMjA2NiwgMC4wMDIwNjciLCBcCi0gICAgICAgICAgIjAuMDAyMjA2LCAwLjAwMjIwMywgMC4wMDIyMDksIDAuMDAyMjE0LCAwLjAwMjIxNiwgMC4wMDIyMTksIDAuMDAyMjE5IiwgXAotICAgICAgICAgICIwLjAwMjM1NCwgMC4wMDIzNTIsIDAuMDAyMzYxLCAwLjAwMjM2NiwgMC4wMDIzNywgMC4wMDIzNzQsIDAuMDAyMzczIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzNTAxLCAwLjAwMzUxMiwgMC4wMDM1MjcsIDAuMDAzNTI5LCAwLjAwMzUzMSwgMC4wMDM1MzMsIDAuMDAzNTMzIiwgXAotICAgICAgICAgICIwLjAwMzQ2MiwgMC4wMDM0NzQsIDAuMDAzNDkxLCAwLjAwMzQ5NCwgMC4wMDM0OTYsIDAuMDAzNDk4LCAwLjAwMzQ5OCIsIFwKLSAgICAgICAgICAiMC4wMDM0NiwgMC4wMDM0NjksIDAuMDAzNDg4LCAwLjAwMzQ5MiwgMC4wMDM0OTQsIDAuMDAzNDk2LCAwLjAwMzQ5NiIsIFwKLSAgICAgICAgICAiMC4wMDM0NzUsIDAuMDAzNDg3LCAwLjAwMzUwOCwgMC4wMDM1MTIsIDAuMDAzNTE1LCAwLjAwMzUxNywgMC4wMDM1MTgiLCBcCi0gICAgICAgICAgIjAuMDAzNTE3LCAwLjAwMzUyOSwgMC4wMDM1NDksIDAuMDAzNTUzLCAwLjAwMzU1NiwgMC4wMDM1NTksIDAuMDAzNTU5IiwgXAotICAgICAgICAgICIwLjAwMzYxNSwgMC4wMDM2MjIsIDAuMDAzNjQxLCAwLjAwMzY0NiwgMC4wMDM2NSwgMC4wMDM2NTIsIDAuMDAzNjUzIiwgXAotICAgICAgICAgICIwLjAwMzcxNiwgMC4wMDM3MjUsIDAuMDAzNzQzLCAwLjAwMzc0OCwgMC4wMDM3NTIsIDAuMDAzNzU0LCAwLjAwMzc1NSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDE0ODYsIDAuMDAxNDg4LCAwLjAwMTQ5MSwgMC4wMDE0OTEsIDAuMDAxNDkyLCAwLjAwMTQ5MiwgMC4wMDE0OTEiLCBcCi0gICAgICAgICAgIjAuMDAxNDg4LCAwLjAwMTQ5MywgMC4wMDE0OTksIDAuMDAxNDk5LCAwLjAwMTUsIDAuMDAxNSwgMC4wMDE1IiwgXAotICAgICAgICAgICIwLjAwMTUzNSwgMC4wMDE1NDEsIDAuMDAxNTQ3LCAwLjAwMTU0OSwgMC4wMDE1NSwgMC4wMDE1NSwgMC4wMDE1NSIsIFwKLSAgICAgICAgICAiMC4wMDE2MjgsIDAuMDAxNjMyLCAwLjAwMTYzNywgMC4wMDE2MzgsIDAuMDAxNjQ1LCAwLjAwMTY0NSwgMC4wMDE2MzkiLCBcCi0gICAgICAgICAgIjAuMDAxNzUzLCAwLjAwMTc1MywgMC4wMDE3NTQsIDAuMDAxNzU2LCAwLjAwMTc1NiwgMC4wMDE3NTYsIDAuMDAxNzU2IiwgXAotICAgICAgICAgICIwLjAwMTk0OSwgMC4wMDE5NDIsIDAuMDAxOTQ1LCAwLjAwMTk0OSwgMC4wMDE5NDksIDAuMDAxOTQ5LCAwLjAwMTkzNiIsIFwKLSAgICAgICAgICAiMC4wMDIxMjMsIDAuMDAyMTIsIDAuMDAyMTE0LCAwLjAwMjEyNywgMC4wMDIxMDgsIDAuMDAyMTI5LCAwLjAwMjEyOSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzE0MywgMC4wMDMxNTUsIDAuMDAzMTcxLCAwLjAwMzE3NCwgMC4wMDMxNzYsIDAuMDAzMTc4LCAwLjAwMzE3OCIsIFwKLSAgICAgICAgICAiMC4wMDMxMjgsIDAuMDAzMTQyLCAwLjAwMzE2MywgMC4wMDMxNjcsIDAuMDAzMTcsIDAuMDAzMTcyLCAwLjAwMzE3MiIsIFwKLSAgICAgICAgICAiMC4wMDMxOTMsIDAuMDAzMiwgMC4wMDMyMiwgMC4wMDMyMjUsIDAuMDAzMjI4LCAwLjAwMzIzMSwgMC4wMDMyMzIiLCBcCi0gICAgICAgICAgIjAuMDAzMjYxLCAwLjAwMzI3MSwgMC4wMDMyOTMsIDAuMDAzMjk5LCAwLjAwMzMwMiwgMC4wMDMzMDUsIDAuMDAzMzA2IiwgXAotICAgICAgICAgICIwLjAwMzM2LCAwLjAwMzM2NCwgMC4wMDMzODMsIDAuMDAzMzg5LCAwLjAwMzM5MiwgMC4wMDMzOTUsIDAuMDAzMzk2IiwgXAotICAgICAgICAgICIwLjAwMzUzMywgMC4wMDM1MzQsIDAuMDAzNTQ1LCAwLjAwMzU0OSwgMC4wMDM1NTIsIDAuMDAzNTU1LCAwLjAwMzU1NiIsIFwKLSAgICAgICAgICAiMC4wMDM2NzcsIDAuMDAzNjgsIDAuMDAzNjk0LCAwLjAwMzcsIDAuMDAzNzA0LCAwLjAwMzcwOSwgMC4wMDM3MDkiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IEFPMjFYMiAqCi0gKiAtLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKEFPMjFYMikgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjM3MjkxOTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQTApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYyNzU4ODsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MjYxOTY7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjI3NTg4OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDI5NiwgMC4wMDAyOTYsIDAuMDAwMjk2LCAwLjAwMDI5NiwgMC4wMDAyOTYsIDAuMDAwMjk2LCAwLjAwMDI5NiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDMxNiwgMC4wMDAzMDUsIDAuMDAwMzAxLCAwLjAwMDI5OSwgMC4wMDAyOTgsIDAuMDAwMjk4LCAwLjAwMDI5OCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQTEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYzMzk2NjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MzE5NzQ7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjMzOTY2OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDE0NiwgMC4wMDAxNDUsIDAuMDAwMTQ1LCAwLjAwMDE0NSwgMC4wMDAxNDUsIDAuMDAwMTQ1LCAwLjAwMDE0NSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDMzNywgMC4wMDAzMzgsIDAuMDAwMzM3LCAwLjAwMDMzNywgMC4wMDAzMzgsIDAuMDAwMzM4LCAwLjAwMDMzOCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQjApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY2MDM1ODsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2NjAzNTg7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjYwMTk7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMDU5LCAwLjAwMDA1OSwgMC4wMDAwNTksIDAuMDAwMDU5LCAwLjAwMDA1OSwgMC4wMDAwNTksIDAuMDAwMDU5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNDQyLCAwLjAwMDQ0MiwgMC4wMDA0NDIsIDAuMDAwNDQyLCAwLjAwMDQ0MiwgMC4wMDA0NDIsIDAuMDAwNDQyIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuNjcyODc7Ci0gICAgZnVuY3Rpb24gOiAiKChBMCBBMSkrQjApIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU4MzgsIDAuMTM3Mzk4LCAwLjE5OTIyNywgMC4yNzYzNjEsIDAuMzUzNTA3LCAwLjQzMDUxNywgMC41MDc4MDEiLCBcCi0gICAgICAgICAgIjAuMDY0NTksIDAuMTQzNjE0LCAwLjIwNTQyNiwgMC4yODI1ODgsIDAuMzU5NzU4LCAwLjQzNjgyNiwgMC41MTM5MDgiLCBcCi0gICAgICAgICAgIjAuMDcyMTMyLCAwLjE1MTA3OCwgMC4yMTI4OTEsIDAuMjkwMDY1LCAwLjM2NzIwOCwgMC40NDQyODEsIDAuNTIxMzc4IiwgXAotICAgICAgICAgICIwLjA3ODc5OCwgMC4xNTc4NTQsIDAuMjE5NjUyLCAwLjI5NjgyMywgMC4zNzM5NzIsIDAuNDUxMDMzLCAwLjUyODE3OCIsIFwKLSAgICAgICAgICAiMC4wODQ1NzcsIDAuMTYzODU4LCAwLjIyNTYzNSwgMC4zMDI4MDksIDAuMzc5OTk1LCAwLjQ1NzA1MSwgMC41MzQxMTMiLCBcCi0gICAgICAgICAgIjAuMDkyNzQyLCAwLjE3MjE4NSwgMC4yMzM5NzMsIDAuMzExMTU3LCAwLjM4ODMxOSwgMC40NjU0MTQsIDAuNTQyNDU2IiwgXAotICAgICAgICAgICIwLjA5ODgzNCwgMC4xNzg1NzgsIDAuMjQwMzU1LCAwLjMxNzUxOCwgMC4zOTQ2MzEsIDAuNDcxNTUsIDAuNTQ4NjE1Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0NDUwNCwgMC4yMDIyMDcsIDAuMzMxMzMsIDAuNDkzMjIxLCAwLjY1NTQ4MSwgMC44MTkyNjQsIDAuOTgwODU1IiwgXAotICAgICAgICAgICIwLjA0NDQ2MSwgMC4yMDIyMTEsIDAuMzMxODM0LCAwLjQ5MzgzNSwgMC42NTY4NzUsIDAuODE4NDk2LCAwLjk4MTM0NiIsIFwKLSAgICAgICAgICAiMC4wNDQ3MTUsIDAuMjAyMzk2LCAwLjMzMTgyNiwgMC40OTM2NjUsIDAuNjU2ODUxLCAwLjgxOTUwOSwgMC45ODEzODMiLCBcCi0gICAgICAgICAgIjAuMDQ1NTAzLCAwLjIwMjQ0NSwgMC4zMzE4NzIsIDAuNDk0MjAzLCAwLjY1Njc5NywgMC44MTk0NjksIDAuOTgyMTU2IiwgXAotICAgICAgICAgICIwLjA0NjUzMywgMC4yMDI1OTksIDAuMzMxODM5LCAwLjQ5NDIyMiwgMC42NTU5NDEsIDAuODE5NDUsIDAuOTgyMDk0IiwgXAotICAgICAgICAgICIwLjA0NzQ5MiwgMC4yMDMwNjcsIDAuMzMxODQ1LCAwLjQ5MzczMSwgMC42NTY4NDQsIDAuODE5NDY1LCAwLjk4MjEyNSIsIFwKLSAgICAgICAgICAiMC4wNDg1NCwgMC4yMDMzMzIsIDAuMzMyMjgzLCAwLjQ5NDM0NywgMC42NTYzODcsIDAuODE4Njk2LCAwLjk4MjEwMyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjMwMDksIDAuMTQxMzQ2LCAwLjIwMjA0OSwgMC4yNzc4NzYsIDAuMzUzNjc1LCAwLjQyOTUyNiwgMC41MDUyNTciLCBcCi0gICAgICAgICAgIjAuMDY5NjA2LCAwLjE0NzkzNCwgMC4yMDg2NDUsIDAuMjg0NDY1LCAwLjM2MDI2LCAwLjQzNjA1NiwgMC41MTE4NTIiLCBcCi0gICAgICAgICAgIjAuMDc2NDA5LCAwLjE1NDc1NSwgMC4yMTU0NzUsIDAuMjkxMzEyLCAwLjM2NzExMiwgMC40NDI5MDcsIDAuNTE4Njc1IiwgXAotICAgICAgICAgICIwLjA4MjM0OSwgMC4xNjA4MjgsIDAuMjIxNTM1LCAwLjI5NzM0NywgMC4zNzMxNTUsIDAuNDQ4OTM0LCAwLjUyNDcxOCIsIFwKLSAgICAgICAgICAiMC4wODc1MzIsIDAuMTY2MjE1LCAwLjIyNjkwOCwgMC4zMDI3MjgsIDAuMzc4NTEzLCAwLjQ1NDMyMSwgMC41MzAxMzEiLCBcCi0gICAgICAgICAgIjAuMDk0MzI1LCAwLjE3MzQyMywgMC4yMzQxMjMsIDAuMzA5OTMxLCAwLjM4NTcyLCAwLjQ2MTQ5NywgMC41MzcyNzMiLCBcCi0gICAgICAgICAgIjAuMDk5Mzk4LCAwLjE3ODg2MSwgMC4yMzk1MjgsIDAuMzE1MzM3LCAwLjM5MTE1NywgMC40NjY4OTYsIDAuNTQyNzAyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0NDQ1OCwgMC4xOTY1NjIsIDAuMzIxMzUyLCAwLjQ3ODcsIDAuNjM1Mzk3LCAwLjc5MjMyOCwgMC45NTEyMjUiLCBcCi0gICAgICAgICAgIjAuMDQ0NDI5LCAwLjE5NjYyNCwgMC4zMjE2ODcsIDAuNDc4Njk3LCAwLjYzNTk5NSwgMC43OTI3MDgsIDAuOTUxMjMiLCBcCi0gICAgICAgICAgIjAuMDQ0NDg1LCAwLjE5NjYzMywgMC4zMjE2ODksIDAuNDc4NzYzLCAwLjYzNTA3NSwgMC43OTM2OTIsIDAuOTUwMzE2IiwgXAotICAgICAgICAgICIwLjA0NTIxLCAwLjE5NjkxNywgMC4zMjE3NTcsIDAuNDc4Njg4LCAwLjYzNjEwOCwgMC43OTI3NTcsIDAuOTUwMjQiLCBcCi0gICAgICAgICAgIjAuMDQ2MTA2LCAwLjE5NzEzNiwgMC4zMjE4MzcsIDAuNDc4NzgxLCAwLjYzNjA3MiwgMC43OTM2NjIsIDAuOTUxMzMiLCBcCi0gICAgICAgICAgIjAuMDQ3NTMyLCAwLjE5NzU5NywgMC4zMjE4NjgsIDAuNDc4MzU0LCAwLjYzNjE2NywgMC43OTM0ODYsIDAuOTUwMTc0IiwgXAotICAgICAgICAgICIwLjA0ODg3MiwgMC4xOTgwNTksIDAuMzIyMDQyLCAwLjQ3ODUxOCwgMC42MzU4NTksIDAuNzkyODQ0LCAwLjk1MDk2NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU2OTQ2LCAwLjEzNTg5NywgMC4xOTc3MSwgMC4yNzQ4NTksIDAuMzUyMDUyLCAwLjQyOTEwOCwgMC41MDYxOCIsIFwKLSAgICAgICAgICAiMC4wNjQzMDksIDAuMTQzMzE4LCAwLjIwNTExNywgMC4yODIzMDcsIDAuMzU5NDM1LCAwLjQzNjUwOCwgMC41MTM3MzUiLCBcCi0gICAgICAgICAgIjAuMDczNzk4LCAwLjE1Mjc1NCwgMC4yMTQ1NjYsIDAuMjkxNzI5LCAwLjM2ODg4NSwgMC40NDU5NTcsIDAuNTIzMDU4IiwgXAotICAgICAgICAgICIwLjA4MjQ0NCwgMC4xNjE0NTEsIDAuMjIzMjY1LCAwLjMwMDQwMiwgMC4zNzc1NDUsIDAuNDU0NzIxLCAwLjUzMTcyMiIsIFwKLSAgICAgICAgICAiMC4wOTAwNzIsIDAuMTY5MjIzLCAwLjIzMTAwOCwgMC4zMDgxNjgsIDAuMzg1MzczLCAwLjQ2MjQxNywgMC41Mzk0ODIiLCBcCi0gICAgICAgICAgIjAuMDk5ODMzLCAwLjE3OTE5MSwgMC4yNDA5NDYsIDAuMzE4MDg1LCAwLjM5NTIwNywgMC40NzIzNzksIDAuNTQ5NDIxIiwgXAotICAgICAgICAgICIwLjEwNzA4OCwgMC4xODY2NTYsIDAuMjQ4Mzg2LCAwLjMyNTUxOSwgMC40MDI2NDgsIDAuNDc5NzI3LCAwLjU1Njg0MyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDQ1NiwgMC4yMDIyMjIsIDAuMzMxODQ0LCAwLjQ5Mzc2NSwgMC42NTU5MTcsIDAuODE5NDk5LCAwLjk4MTI3MSIsIFwKLSAgICAgICAgICAiMC4wNDQ0ODIsIDAuMjAyMTg4LCAwLjMzMTgxNiwgMC40OTQyMDcsIDAuNjU2ODQ1LCAwLjgxOTUxMywgMC45ODA0NiIsIFwKLSAgICAgICAgICAiMC4wNDQ3ODUsIDAuMjAyMjk0LCAwLjMzMTgyNCwgMC40OTM2ODgsIDAuNjU2ODI4LCAwLjgxOTQ3MSwgMC45ODEzNDUiLCBcCi0gICAgICAgICAgIjAuMDQ1NTUyLCAwLjIwMjM5NCwgMC4zMzE4NjcsIDAuNDkzNzU2LCAwLjY1NTc2MywgMC44MTgzODcsIDAuOTgxMjA3IiwgXAotICAgICAgICAgICIwLjA0NjY4NiwgMC4yMDI2MDQsIDAuMzMxNjY5LCAwLjQ5NDIyNSwgMC42NTU2ODYsIDAuODE5NDUxLCAwLjk4MjA4OCIsIFwKLSAgICAgICAgICAiMC4wNDg0MDcsIDAuMjAzMTQ0LCAwLjMzMjE2MSwgMC40OTM5NjgsIDAuNjU2MjQ5LCAwLjgxOTQ5MiwgMC45ODIxMjQiLCBcCi0gICAgICAgICAgIjAuMDUwMDU2LCAwLjIwMzU0NSwgMC4zMzIyNTksIDAuNDk0MDksIDAuNjU2ODY5LCAwLjgxOTQ0OCwgMC45ODA4MDgiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDYwMDEyLCAwLjEzODE4MiwgMC4xOTg4NzUsIDAuMjc0NjU3LCAwLjM1MDQ4NSwgMC40MjYyNTIsIDAuNTAyMTQ5IiwgXAotICAgICAgICAgICIwLjA2NjQ3MiwgMC4xNDQ2MDEsIDAuMjA1Mjg1LCAwLjI4MTA2MywgMC4zNTY5NTQsIDAuNDMyNjU4LCAwLjUwODY4NCIsIFwKLSAgICAgICAgICAiMC4wNzMyMzMsIDAuMTUxMzQ5LCAwLjIxMjAyLCAwLjI4NzgxMiwgMC4zNjM2MTYsIDAuNDM5NDYyLCAwLjUxNTM4NyIsIFwKLSAgICAgICAgICAiMC4wNzkwMjMsIDAuMTU3MzE4LCAwLjIxNzk4NywgMC4yOTM3NzQsIDAuMzY5NTc4LCAwLjQ0NTQ0MSwgMC41MjEzNzYiLCBcCi0gICAgICAgICAgIjAuMDgzOTI4LCAwLjE2MjUyOCwgMC4yMjMxOTIsIDAuMjk4OTgyLCAwLjM3NDc4MiwgMC40NTA1NjksIDAuNTI2NjQ5IiwgXAotICAgICAgICAgICIwLjA5MDMwNiwgMC4xNjk0MTQsIDAuMjMwMDYxLCAwLjMwNTgyMywgMC4zODE2MzcsIDAuNDU3NTAzLCAwLjUzMzIzOCIsIFwKLSAgICAgICAgICAiMC4wOTUxNTgsIDAuMTc0NDM5LCAwLjIzNTA3OCwgMC4zMTA4MzgsIDAuMzg2NjIzLCAwLjQ2MjM4NywgMC41MzgxODIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQzOTE3LCAwLjE5NjE5MSwgMC4zMjEzOTgsIDAuNDc4NDc2LCAwLjYzNDg2MSwgMC43OTM2MzIsIDAuOTQ5NDg0IiwgXAotICAgICAgICAgICIwLjA0Mzg2LCAwLjE5NjE4NSwgMC4zMjE0MjUsIDAuNDc4NDY4LCAwLjYzNDkzOCwgMC43OTM2MjUsIDAuOTQ5NTU0IiwgXAotICAgICAgICAgICIwLjA0NDA4MiwgMC4xOTYyOTQsIDAuMzIxNDA2LCAwLjQ3ODQ3MiwgMC42MzYwMTMsIDAuNzkyNTk4LCAwLjk0OTUwNCIsIFwKLSAgICAgICAgICAiMC4wNDQ5MzUsIDAuMTk2NSwgMC4zMjE1MiwgMC40Nzg1MjIsIDAuNjM2MDM3LCAwLjc5Mjc1NiwgMC45NDk1NDEiLCBcCi0gICAgICAgICAgIjAuMDQ1OTU3LCAwLjE5Njc0NCwgMC4zMjE2NjUsIDAuNDc4NjUxLCAwLjYzNjA4OSwgMC43OTM2NDcsIDAuOTQ5NjI4IiwgXAotICAgICAgICAgICIwLjA0NzM2NSwgMC4xOTczMzMsIDAuMzIxOTQzLCAwLjQ3ODY3NSwgMC42MzU0MDMsIDAuNzkyMzgsIDAuOTQ5MzY2IiwgXAotICAgICAgICAgICIwLjA0ODM1MywgMC4xOTc4MzMsIDAuMzIxNzYyLCAwLjQ3ODI5OCwgMC42MzYyMTksIDAuNzkzNjc2LCAwLjk1MTI4MiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM5MDgyLCAwLjExNjQ5MSwgMC4xNzgxNTUsIDAuMjU1MzQzLCAwLjMzMjYzMSwgMC40MDk1NDksIDAuNDg2NjEiLCBcCi0gICAgICAgICAgIjAuMDQ3Mjc3LCAwLjEyNDY4MywgMC4xODYzNzgsIDAuMjYzNiwgMC4zNDA4NSwgMC40MTgwMDMsIDAuNDk0ODI2IiwgXAotICAgICAgICAgICIwLjA1NTk3NCwgMC4xMzMzODIsIDAuMTk1MTIyLCAwLjI3MjIxNSwgMC4zNDkyNTksIDAuNDI2NDMxLCAwLjUwMzYzNCIsIFwKLSAgICAgICAgICAiMC4wNjI1MDgsIDAuMTQwMDA3LCAwLjIwMTc0OSwgMC4yNzg4MjMsIDAuMzU1OTc0LCAwLjQzMzI1NCwgMC41MTAxNzEiLCBcCi0gICAgICAgICAgIjAuMDY3NzY2LCAwLjE0NTM1NiwgMC4yMDcwMzMsIDAuMjg0MTA5LCAwLjM2MTMzNSwgMC40MzgzMDUsIDAuNTE1ODUiLCBcCi0gICAgICAgICAgIjAuMDc0NjgzLCAwLjE1MjUxOSwgMC4yMTQxMDksIDAuMjkxMjc5LCAwLjM2ODMzMywgMC40NDU2ODgsIDAuNTIyNTMxIiwgXAotICAgICAgICAgICIwLjA3OTY0OSwgMC4xNTc2NzYsIDAuMjE5MjgxLCAwLjI5NjMwNiwgMC4zNzMzNDMsIDAuNDUwNDUyLCAwLjUyNzY0NCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzk5NTMsIDAuMjAwMTA4LCAwLjMzMDM1LCAwLjQ5MzE0MiwgMC42NTQ3NzUsIDAuODE4Njc4LCAwLjk3OTkxMyIsIFwKLSAgICAgICAgICAiMC4wNDAwNDYsIDAuMjAwMTIyLCAwLjMzMDM0OSwgMC40OTI0OTQsIDAuNjU0ODc5LCAwLjgxNzQ0OCwgMC45ODAzOTEiLCBcCi0gICAgICAgICAgIjAuMDQxMTA0LCAwLjIwMDAyMiwgMC4zMzAzMDYsIDAuNDkyNzUxLCAwLjY1NTU0LCAwLjgxNzQ0MiwgMC45ODA0ODEiLCBcCi0gICAgICAgICAgIjAuMDQyNTQ5LCAwLjIwMDUyLCAwLjMyOTg0NCwgMC40OTI1MTksIDAuNjU1MTk3LCAwLjgxNzQxOCwgMC45Nzk5MzkiLCBcCi0gICAgICAgICAgIjAuMDQzODk3LCAwLjIwMDY2MSwgMC4zMjk5ODksIDAuNDkzMDgzLCAwLjY1NTA4MiwgMC44MTgzNjcsIDAuOTgwMzk2IiwgXAotICAgICAgICAgICIwLjA0NTg5NiwgMC4yMDA4NzcsIDAuMzMwNTM2LCAwLjQ5MzE1NywgMC42NTU4NzYsIDAuODE3NDc2LCAwLjk4MDUwNCIsIFwKLSAgICAgICAgICAiMC4wNDc1NzIsIDAuMjAxMTc5LCAwLjMzMDM1MywgMC40OTMxNzUsIDAuNjU1ODk4LCAwLjgxODY2MywgMC45ODE0NTgiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU3NTE2LCAwLjEzNTg1MywgMC4xOTY1NjQsIDAuMjcyMzgyLCAwLjM0ODE4MSwgMC40MjQwMzEsIDAuNDk5NzYzIiwgXAotICAgICAgICAgICIwLjA2NDkwNywgMC4xNDMyNjgsIDAuMjAzOTc5LCAwLjI3OTgsIDAuMzU1NjEzLCAwLjQzMTQsIDAuNTA3MTgyIiwgXAotICAgICAgICAgICIwLjA3NDI1NCwgMC4xNTI2MTMsIDAuMjEzMzMzLCAwLjI4OTE3MSwgMC4zNjQ5NywgMC40NDA3NzEsIDAuNTE2NTgyIiwgXAotICAgICAgICAgICIwLjA4MjY1NywgMC4xNjEwOTUsIDAuMjIxODAxLCAwLjI5NzYzOSwgMC4zNzM0MjIsIDAuNDQ5MjM2LCAwLjUyNTAyNCIsIFwKLSAgICAgICAgICAiMC4wODk5MTMsIDAuMTY4NTE5LCAwLjIyOTIxNSwgMC4zMDUwMiwgMC4zODA4MTYsIDAuNDU2NjEzLCAwLjUzMjM4MiIsIFwKLSAgICAgICAgICAiMC4wOTk0NzUsIDAuMTc4Mjg3LCAwLjIzODk2MSwgMC4zMTQ3NDEsIDAuMzkwNTQzLCAwLjQ2NjMxMywgMC41NDIxNTMiLCBcCi0gICAgICAgICAgIjAuMTA2NTM5LCAwLjE4NTQ5LCAwLjI0NjE2MywgMC4zMjE5MjUsIDAuMzk3NzE3LCAwLjQ3MzQ4NSwgMC41NDkyNDYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQ0NDE0LCAwLjE5NjYzLCAwLjMyMTY3NCwgMC40Nzg2OTksIDAuNjM2MDA1LCAwLjc5Mjk0NCwgMC45NTEyMjUiLCBcCi0gICAgICAgICAgIjAuMDQ0Mzg1LCAwLjE5NjU5OCwgMC4zMjE2NzIsIDAuNDc4NjkxLCAwLjYzNjExNiwgMC43OTM2MywgMC45NTEyMSIsIFwKLSAgICAgICAgICAiMC4wNDQ3MDUsIDAuMTk2NjkzLCAwLjMyMTcwOCwgMC40Nzg3NjMsIDAuNjM1NTQsIDAuNzkzNzA0LCAwLjk1MTQxMSIsIFwKLSAgICAgICAgICAiMC4wNDU0ODYsIDAuMTk2NzYyLCAwLjMyMTc3OSwgMC40Nzg4MSwgMC42MzU5ODcsIDAuNzkzNzQ4LCAwLjk1MTM0NSIsIFwKLSAgICAgICAgICAiMC4wNDYzNDksIDAuMTk3MDkzLCAwLjMyMTg3MywgMC40Nzg3MDcsIDAuNjM2MTA4LCAwLjc5MjcxNSwgMC45NTExNTYiLCBcCi0gICAgICAgICAgIjAuMDQ4MDA1LCAwLjE5NzYyOSwgMC4zMjIwMTYsIDAuNDc4ODY0LCAwLjYzNjIzMiwgMC43OTM2MjksIDAuOTUxNDA2IiwgXAotICAgICAgICAgICIwLjA0OTMxLCAwLjE5ODA5NiwgMC4zMjI0NzYsIDAuNDc4ODQxLCAwLjYzNjI5NSwgMC43OTM2NDgsIDAuOTUxMjY2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzExMywgMC4wMDMxNzEsIDAuMDAzMTc5LCAwLjAwMzE4MSwgMC4wMDMxODgsIDAuMDAzMTg5LCAwLjAwMzE5IiwgXAotICAgICAgICAgICIwLjAwMzA3LCAwLjAwMzE0MSwgMC4wMDMxNTIsIDAuMDAzMTU0LCAwLjAwMzE2LCAwLjAwMzE2NSwgMC4wMDMxNjMiLCBcCi0gICAgICAgICAgIjAuMDAzMDk0LCAwLjAwMzE0OCwgMC4wMDMxNTcsIDAuMDAzMTY3LCAwLjAwMzE2OSwgMC4wMDMxNzEsIDAuMDAzMTczIiwgXAotICAgICAgICAgICIwLjAwMzE3MSwgMC4wMDMxOSwgMC4wMDMxOTksIDAuMDAzMjA2LCAwLjAwMzIwNSwgMC4wMDMyMDksIDAuMDAzMjEiLCBcCi0gICAgICAgICAgIjAuMDAzMjE4LCAwLjAwMzI0MiwgMC4wMDMyNDksIDAuMDAzMjU5LCAwLjAwMzI2LCAwLjAwMzI2NCwgMC4wMDMyNjMiLCBcCi0gICAgICAgICAgIjAuMDAzMzc4LCAwLjAwMzM1NiwgMC4wMDMzNjIsIDAuMDAzMzY4LCAwLjAwMzM3MiwgMC4wMDMzNzQsIDAuMDAzMzc2IiwgXAotICAgICAgICAgICIwLjAwMzQ4MiwgMC4wMDM0NjQsIDAuMDAzNDczLCAwLjAwMzQ4MSwgMC4wMDM0ODUsIDAuMDAzNDk0LCAwLjAwMzQ5NCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDk5MSwgMC4wMDUwNjgsIDAuMDA1MDgsIDAuMDA1MDg3LCAwLjAwNTA5LCAwLjAwNTA5MiwgMC4wMDUwOTQiLCBcCi0gICAgICAgICAgIjAuMDA0OTYzLCAwLjAwNTA0NywgMC4wMDUwNjEsIDAuMDA1MDY5LCAwLjAwNTA3MywgMC4wMDUwNzUsIDAuMDA1MDc3IiwgXAotICAgICAgICAgICIwLjAwNDk2NiwgMC4wMDUwNDQsIDAuMDA1MDU4LCAwLjAwNTA2NywgMC4wMDUwNzEsIDAuMDA1MDc0LCAwLjAwNTA3NiIsIFwKLSAgICAgICAgICAiMC4wMDUwMDMsIDAuMDA1MDYxLCAwLjAwNTA3NSwgMC4wMDUwODMsIDAuMDA1MDg4LCAwLjAwNTA5MSwgMC4wMDUwOTMiLCBcCi0gICAgICAgICAgIjAuMDA1MDQ3LCAwLjAwNTA5MSwgMC4wMDUxMDMsIDAuMDA1MTE0LCAwLjAwNTExOCwgMC4wMDUxMjEsIDAuMDA1MTIzIiwgXAotICAgICAgICAgICIwLjAwNTE1MywgMC4wMDUxNzEsIDAuMDA1MTg1LCAwLjAwNTE5MywgMC4wMDUxOTgsIDAuMDA1MiwgMC4wMDUyMDIiLCBcCi0gICAgICAgICAgIjAuMDA1MjczLCAwLjAwNTI2OCwgMC4wMDUyODEsIDAuMDA1Mjg4LCAwLjAwNTI5MiwgMC4wMDUyOTQsIDAuMDA1Mjk2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzExNCwgMC4wMDMxNzEsIDAuMDAzMTgsIDAuMDAzMTc5LCAwLjAwMzE4OCwgMC4wMDMxOTYsIDAuMDAzMTkiLCBcCi0gICAgICAgICAgIjAuMDAzMDgxLCAwLjAwMzE0OCwgMC4wMDMxNiwgMC4wMDMxNjcsIDAuMDAzMTcxLCAwLjAwMzE3NCwgMC4wMDMxNzQiLCBcCi0gICAgICAgICAgIjAuMDAzMTI0LCAwLjAwMzE4MiwgMC4wMDMxOTYsIDAuMDAzMjA0LCAwLjAwMzIwOCwgMC4wMDMyMTEsIDAuMDAzMjE0IiwgXAotICAgICAgICAgICIwLjAwMzI0NSwgMC4wMDMyNTQsIDAuMDAzMjY0LCAwLjAwMzI3LCAwLjAwMzI3NSwgMC4wMDMyNzcsIDAuMDAzMjc3IiwgXAotICAgICAgICAgICIwLjAwMzMwOSwgMC4wMDMzMTgsIDAuMDAzMzI5LCAwLjAwMzMzNywgMC4wMDMzNDIsIDAuMDAzMzQ2LCAwLjAwMzM0NiIsIFwKLSAgICAgICAgICAiMC4wMDM1MTUsIDAuMDAzNDYxLCAwLjAwMzQ2MywgMC4wMDM0NzEsIDAuMDAzNDcyLCAwLjAwMzQ3NSwgMC4wMDM0NzciLCBcCi0gICAgICAgICAgIjAuMDAzNzE2LCAwLjAwMzYxMSwgMC4wMDM2MDksIDAuMDAzNjExLCAwLjAwMzYxMiwgMC4wMDM2MTQsIDAuMDAzNjE0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0Njc4LCAwLjAwNDc1OCwgMC4wMDQ3NjksIDAuMDA0Nzc1LCAwLjAwNDc3OCwgMC4wMDQ3OCwgMC4wMDQ3ODEiLCBcCi0gICAgICAgICAgIjAuMDA0NjM2LCAwLjAwNDcyMywgMC4wMDQ3MzYsIDAuMDA0NzQzLCAwLjAwNDc0NiwgMC4wMDQ3NDksIDAuMDA0NzUiLCBcCi0gICAgICAgICAgIjAuMDA0NjMsIDAuMDA0NzEzLCAwLjAwNDcyNywgMC4wMDQ3MzUsIDAuMDA0NzM5LCAwLjAwNDc0MSwgMC4wMDQ3NDMiLCBcCi0gICAgICAgICAgIjAuMDA0NjU5LCAwLjAwNDcyOCwgMC4wMDQ3NDIsIDAuMDA0NzUsIDAuMDA0NzU0LCAwLjAwNDc1NywgMC4wMDQ3NTkiLCBcCi0gICAgICAgICAgIjAuMDA0NzA5LCAwLjAwNDc1OSwgMC4wMDQ3NzMsIDAuMDA0NzgsIDAuMDA0Nzg0LCAwLjAwNDc4NywgMC4wMDQ3ODgiLCBcCi0gICAgICAgICAgIjAuMDA0ODA3LCAwLjAwNDg0LCAwLjAwNDg1MSwgMC4wMDQ4NTksIDAuMDA0ODYzLCAwLjAwNDg2NiwgMC4wMDQ4NjgiLCBcCi0gICAgICAgICAgIjAuMDA0OTIxLCAwLjAwNDkzNywgMC4wMDQ5NDcsIDAuMDA0OTUzLCAwLjAwNDk1NiwgMC4wMDQ5NTksIDAuMDA0OTYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyNjY5LCAwLjAwMjcwMiwgMC4wMDI3MDQsIDAuMDAyNzA2LCAwLjAwMjcwNywgMC4wMDI3MDcsIDAuMDAyNzA3IiwgXAotICAgICAgICAgICIwLjAwMjY1MiwgMC4wMDI2OTUsIDAuMDAyNjk5LCAwLjAwMjcwMSwgMC4wMDI3MDMsIDAuMDAyNzAzLCAwLjAwMjcwNCIsIFwKLSAgICAgICAgICAiMC4wMDI3MDEsIDAuMDAyNzM3LCAwLjAwMjc0NCwgMC4wMDI3NDgsIDAuMDAyNzUsIDAuMDAyNzUxLCAwLjAwMjc1MiIsIFwKLSAgICAgICAgICAiMC4wMDI3ODksIDAuMDAyODE0LCAwLjAwMjgyMSwgMC4wMDI4MjMsIDAuMDAyODI1LCAwLjAwMjgyNiwgMC4wMDI4MjciLCBcCi0gICAgICAgICAgIjAuMDAyOTIzLCAwLjAwMjkxNCwgMC4wMDI5MTUsIDAuMDAyOTE5LCAwLjAwMjkyMSwgMC4wMDI5MjIsIDAuMDAyOTIyIiwgXAotICAgICAgICAgICIwLjAwMzExLCAwLjAwMzA4MywgMC4wMDMwODUsIDAuMDAzMDg1LCAwLjAwMzA4NiwgMC4wMDMwODcsIDAuMDAzMDg4IiwgXAotICAgICAgICAgICIwLjAwMzI4OCwgMC4wMDMyNDksIDAuMDAzMjUsIDAuMDAzMjY1LCAwLjAwMzI2NSwgMC4wMDMyNjQsIDAuMDAzMjQ5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0Mzg4LCAwLjAwNDQ2NiwgMC4wMDQ0NzgsIDAuMDA0NDg1LCAwLjAwNDQ4OSwgMC4wMDQ0OTEsIDAuMDA0NDkyIiwgXAotICAgICAgICAgICIwLjAwNDM2MiwgMC4wMDQ0NDgsIDAuMDA0NDYzLCAwLjAwNDQ3MiwgMC4wMDQ0NzYsIDAuMDA0NDc5LCAwLjAwNDQ4MSIsIFwKLSAgICAgICAgICAiMC4wMDQ0MiwgMC4wMDQ0OTMsIDAuMDA0NTEsIDAuMDA0NTIsIDAuMDA0NTI2LCAwLjAwNDUyOSwgMC4wMDQ1MzEiLCBcCi0gICAgICAgICAgIjAuMDA0NTUyLCAwLjAwNDU3NCwgMC4wMDQ1ODgsIDAuMDA0NTk3LCAwLjAwNDYwMiwgMC4wMDQ2MDUsIDAuMDA0NjA4IiwgXAotICAgICAgICAgICIwLjAwNDYxNywgMC4wMDQ2MzQsIDAuMDA0NjQ5LCAwLjAwNDY1OSwgMC4wMDQ2NjQsIDAuMDA0NjY4LCAwLjAwNDY3IiwgXAotICAgICAgICAgICIwLjAwNDgzOSwgMC4wMDQ3OTMsIDAuMDA0ODAzLCAwLjAwNDgwOSwgMC4wMDQ4MTMsIDAuMDA0ODE2LCAwLjAwNDgxOCIsIFwKLSAgICAgICAgICAiMC4wMDUwMzksIDAuMDA0OTQ1LCAwLjAwNDk0OCwgMC4wMDQ5NTEsIDAuMDA0OTU1LCAwLjAwNDk1NywgMC4wMDQ5NTgiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IEFPMjFYTCAqCi0gKiAtLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKEFPMjFYTCkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjI0OTUxMjsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQTApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY3OTc0NDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2NzgzNzE7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjc5NzQ0OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDI5NywgMC4wMDAyOTYsIDAuMDAwMjk2LCAwLjAwMDI5NiwgMC4wMDAyOTYsIDAuMDAwMjk2LCAwLjAwMDI5NiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDMxNywgMC4wMDAzMDYsIDAuMDAwMzAxLCAwLjAwMDI5OCwgMC4wMDAyOTgsIDAuMDAwMjk4LCAwLjAwMDI5OCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQTEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY5MjEwNzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2OTAxNjQ7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjkyMTA3OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDE1NiwgMC4wMDAxNTUsIDAuMDAwMTU1LCAwLjAwMDE1NSwgMC4wMDAxNTUsIDAuMDAwMTU1LCAwLjAwMDE1NSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDMzNywgMC4wMDAzMzcsIDAuMDAwMzM3LCAwLjAwMDMzOCwgMC4wMDAzMzgsIDAuMDAwMzM4LCAwLjAwMDMzOCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQjApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDcwMTgxMjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA3MDE4MTI7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNzAxNjQyOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDA1NCwgMC4wMDAwNTQsIDAuMDAwMDU0LCAwLjAwMDA1NCwgMC4wMDAwNTQsIDAuMDAwMDU0LCAwLjAwMDA1NCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDM3OCwgMC4wMDAzNzgsIDAuMDAwMzc4LCAwLjAwMDM3OCwgMC4wMDAzNzgsIDAuMDAwMzc4LCAwLjAwMDM3OCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjE5ODc3NTsKLSAgICBmdW5jdGlvbiA6ICIoKEEwIEExKStCMCkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODM3OTYsIDAuMDk0MzY5LCAwLjE4OTMxMiwgMC4zNDcxOTYsIDAuNTA1MDg0LCAwLjg3MzM4OCwgMS4wODM4NSIsIFwKLSAgICAgICAgICAiMC4wODk4NjQsIDAuMTAwNDM1LCAwLjE5NTM4NywgMC4zNTMyNzUsIDAuNTExMTU5LCAwLjg3OTQ1NywgMS4wODk5MiIsIFwKLSAgICAgICAgICAiMC4wOTY3NjQsIDAuMTA3MzQyLCAwLjIwMjI0NywgMC4zNjAyMzQsIDAuNTE4MDYsIDAuODg2MzU3LCAxLjA5Njk5IiwgXAotICAgICAgICAgICIwLjEwMjQ5NiwgMC4xMTMwNjksIDAuMjA3OTksIDAuMzY1OTE1LCAwLjUyMzg5MSwgMC44OTIxMDksIDEuMTAyNTEiLCBcCi0gICAgICAgICAgIjAuMTA3MjksIDAuMTE3ODUxLCAwLjIxMjc3OSwgMC4zNzA3MiwgMC41Mjg1NzgsIDAuODk2ODY1LCAxLjEwNzUzIiwgXAotICAgICAgICAgICIwLjExMzgyMSwgMC4xMjQ0MDQsIDAuMjE5MzIyLCAwLjM3NzMyNywgMC41MzUxNDEsIDAuOTAzNDIsIDEuMTEzODUiLCBcCi0gICAgICAgICAgIjAuMTE4NzEyLCAwLjEyOTMxNSwgMC4yMjQyMjksIDAuMzgyMTksIDAuNTQwMTExLCAwLjkwODM5NywgMS4xMTg4Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExNzYyMiwgMC4xMzk2NDksIDAuMzM4MDQ1LCAwLjY3MDQ2OSwgMS4wMDI2MiwgMS43Nzc3NywgMi4yMjI5NiIsIFwKLSAgICAgICAgICAiMC4xMTc2MjMsIDAuMTM5NTQsIDAuMzM4MTcsIDAuNjcwNDQ1LCAxLjAwMjc4LCAxLjc3ODAzLCAyLjIyMjg2IiwgXAotICAgICAgICAgICIwLjExNzc1MywgMC4xMzk1OTgsIDAuMzM4NjA4LCAwLjY3MTAxOSwgMS4wMDI3NSwgMS43NzgwMiwgMi4yMjI3MSIsIFwKLSAgICAgICAgICAiMC4xMTc5OTksIDAuMTM5ODMzLCAwLjMzODYzOSwgMC42NzEwMDcsIDEuMDAzNTIsIDEuNzc5MywgMi4yMjA3NSIsIFwKLSAgICAgICAgICAiMC4xMTgyMjcsIDAuMTQwMDg4LCAwLjMzODY3MSwgMC42NzAzNzUsIDEuMDAzNDgsIDEuNzc3NjcsIDIuMjIyNjkiLCBcCi0gICAgICAgICAgIjAuMTE4NjY2LCAwLjE0MDM1NywgMC4zMzg3NzEsIDAuNjcxMDMyLCAxLjAwMjc3LCAxLjc3OTI0LCAyLjIyMjU1IiwgXAotICAgICAgICAgICIwLjExOTIxNSwgMC4xNDA4ODQsIDAuMzM4NTc4LCAwLjY3MDUxOSwgMS4wMDE4OCwgMS43NzkxNywgMi4yMjI1NiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODIzOTYsIDAuMDkyMDcsIDAuMTc4OTgyLCAwLjMyMzcxOCwgMC40Njg0NiwgMC44MDU5OTYsIDAuOTk4OTA3IiwgXAotICAgICAgICAgICIwLjA4ODg3NiwgMC4wOTg1NTMsIDAuMTg1NDY4LCAwLjMzMDIwOCwgMC40NzQ4ODQsIDAuODEyNDg3LCAxLjAwNTQiLCBcCi0gICAgICAgICAgIjAuMDk1MTc2LCAwLjEwNDg2NCwgMC4xOTE4MDMsIDAuMzM2NTEzLCAwLjQ4MTE5NywgMC44MTg3OTcsIDEuMDExNzEiLCBcCi0gICAgICAgICAgIjAuMTAwMTIzLCAwLjEwOTgyMiwgMC4xOTY3NjMsIDAuMzQxNTAxLCAwLjQ4NjE2NSwgMC44MjM4MDYsIDEuMDE2NjYiLCBcCi0gICAgICAgICAgIjAuMTA0MjEzLCAwLjExMzkxOCwgMC4yMDA4NTMsIDAuMzQ1NTg0LCAwLjQ5MDMwNSwgMC44Mjc4OTcsIDEuMDIwNzgiLCBcCi0gICAgICAgICAgIjAuMTA5NDc4LCAwLjExOTE5NiwgMC4yMDYxODMsIDAuMzUwOTA5LCAwLjQ5NTY1MiwgMC44MzMyMywgMS4wMjYwOCIsIFwKLSAgICAgICAgICAiMC4xMTM0MDcsIDAuMTIzMTI4LCAwLjIxMDE0LCAwLjM1NDg2OCwgMC40OTk1NTQsIDAuODM3MTU2LCAxLjAzMDA0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwNTc1MywgMC4xMjUzNDMsIDAuMzAyODUxLCAwLjYwMDEyNSwgMC44OTc2OSwgMS41OTEzNSwgMS45ODU1NyIsIFwKLSAgICAgICAgICAiMC4xMDU3ODMsIDAuMTI1MzI2LCAwLjMwMjgyNywgMC42MDAxMDIsIDAuODk3NDM2LCAxLjU5MTMyLCAxLjk4NTY2IiwgXAotICAgICAgICAgICIwLjEwNjA2NywgMC4xMjU0NjksIDAuMzAyOTU1LCAwLjU5OTQyNywgMC44OTc0NTUsIDEuNTkxMzYsIDEuOTg1NjEiLCBcCi0gICAgICAgICAgIjAuMTA2NDY3LCAwLjEyNTg0NCwgMC4zMDI5NjEsIDAuNjAwMDg1LCAwLjg5NjQ3NCwgMS41OTE2NywgMS45ODgwOCIsIFwKLSAgICAgICAgICAiMC4xMDY4MjgsIDAuMTI2MjM5LCAwLjMwMjcxMiwgMC41OTk0NzUsIDAuODk3NTEsIDEuNTkxNiwgMS45ODgxMiIsIFwKLSAgICAgICAgICAiMC4xMDc1NDQsIDAuMTI2NjgyLCAwLjMwMjgzNiwgMC41OTkzODIsIDAuODk3MzA3LCAxLjU4ODkyLCAxLjk4Nzk2IiwgXAotICAgICAgICAgICIwLjEwODI4OSwgMC4xMjczNDQsIDAuMzAzMDM5LCAwLjU5OTYwMiwgMC44OTcxNTIsIDEuNTg5NzQsIDEuOTg1NDUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTEiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4MjM1NywgMC4wOTI5MjQsIDAuMTg3ODQ0LCAwLjM0NTc1NywgMC41MDM2NDMsIDAuODcxOTIsIDEuMDgyMzgiLCBcCi0gICAgICAgICAgIjAuMDg5NzQ3LCAwLjEwMDMxNywgMC4xOTUyNzUsIDAuMzUzMTY1LCAwLjUxMTA0OSwgMC44NzkzNDksIDEuMDg5OCIsIFwKLSAgICAgICAgICAiMC4wOTg1ODUsIDAuMTA5MTQ5LCAwLjIwNDA2NSwgMC4zNjE5ODksIDAuNTE5OTI5LCAwLjg4ODE1MiwgMS4wOTg2IiwgXAotICAgICAgICAgICIwLjEwNTYyLCAwLjExNjE4MiwgMC4yMTEwOTMsIDAuMzY5MDI0LCAwLjUyNjg4MSwgMC44OTUyNSwgMS4xMDU2IiwgXAotICAgICAgICAgICIwLjExMTI5OSwgMC4xMjE4MjUsIDAuMjE2NzMsIDAuMzc0NjczLCAwLjUzMjUxNiwgMC45MDA4MDUsIDEuMTExMjUiLCBcCi0gICAgICAgICAgIjAuMTE4ODc2LCAwLjEyOTQ2NywgMC4yMjQ0LCAwLjM4MjI5OSwgMC41NDAyMjYsIDAuOTA4NDIyLCAxLjExODg0IiwgXAotICAgICAgICAgICIwLjEyNTAyMiwgMC4xMzU1ODksIDAuMjMwNTQ3LCAwLjM4ODQ5MiwgMC41NDYzOTEsIDAuOTE0NzAyLCAxLjEyNTA4Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExNzY1MiwgMC4xMzk2NSwgMC4zMzgxOTYsIDAuNjcwNTMzLCAxLjAwMjcxLCAxLjc3Nzk3LCAyLjIyMDgxIiwgXAotICAgICAgICAgICIwLjExNzYyMSwgMC4xMzk1NDEsIDAuMzM4MTY4LCAwLjY3MDQ1NywgMS4wMDI3NywgMS43NzgwMSwgMi4yMjI4OSIsIFwKLSAgICAgICAgICAiMC4xMTc3NTgsIDAuMTM5NTg5LCAwLjMzODA5MiwgMC42NzA0NiwgMS4wMDM0OSwgMS43Nzc3NSwgMi4yMjExIiwgXAotICAgICAgICAgICIwLjExODA1NCwgMC4xMzk4ODMsIDAuMzM4MTYyLCAwLjY3MTAwNCwgMS4wMDI1NSwgMS43NzkzLCAyLjIyMDYxIiwgXAotICAgICAgICAgICIwLjExODMwNiwgMC4xNDAxNzUsIDAuMzM4NzI2LCAwLjY3MDA1MSwgMS4wMDM0NSwgMS43Nzc2NSwgMi4yMjA4NSIsIFwKLSAgICAgICAgICAiMC4xMTg4MzcsIDAuMTQwNDM3LCAwLjMzODg2MSwgMC42NzAwOTMsIDEuMDAzNDcsIDEuNzc5MjMsIDIuMjIyMzciLCBcCi0gICAgICAgICAgIjAuMTE5Mzg5LCAwLjE0MDgyNywgMC4zMzg2NDgsIDAuNjcwNTcyLCAxLjAwMzQyLCAxLjc3OTIyLCAyLjIyMjYiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc5NDkzLCAwLjA4OTE1OCwgMC4xNzU5OTksIDAuMzIwODUyLCAwLjQ2NTU3OCwgMC44MDM0ODUsIDAuOTk2MTU4IiwgXAotICAgICAgICAgICIwLjA4NTgzMSwgMC4wOTU0OTUsIDAuMTgyMzQxLCAwLjMyNzE5NCwgMC40NzIwNzIsIDAuODA5Njc1LCAxLjAwMzM5IiwgXAotICAgICAgICAgICIwLjA5MTk1MSwgMC4xMDE2MSwgMC4xODg0NiwgMC4zMzMyOSwgMC40Nzc5NjIsIDAuODE2MDc3LCAxLjAwODY2IiwgXAotICAgICAgICAgICIwLjA5NjYyNCwgMC4xMDYzLCAwLjE5MzE1OSwgMC4zMzc5ODUsIDAuNDgyNzE5LCAwLjgyMDQ0NywgMS4wMTMzOSIsIFwKLSAgICAgICAgICAiMC4xMDAyMiwgMC4xMDk5LCAwLjE5Njc0NiwgMC4zNDE1MDQsIDAuNDg2MjI2LCAwLjgyMzk2LCAxLjAxNzAyIiwgXAotICAgICAgICAgICIwLjEwNTA4LCAwLjExNDc5NywgMC4yMDE3MDgsIDAuMzQ2NDIxLCAwLjQ5MTE3OCwgMC44Mjg5OTksIDEuMDIxODgiLCBcCi0gICAgICAgICAgIjAuMTA4NjUzLCAwLjExODM0OCwgMC4yMDUzNDIsIDAuMzUwMDU1LCAwLjQ5NDgyNywgMC44MzI4NzMsIDEuMDI1NDYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTA1NTA3LCAwLjEyNTA2LCAwLjMwMjY0MywgMC41OTg5MzYsIDAuODk2NDEyLCAxLjU4ODgsIDEuOTg0MTkiLCBcCi0gICAgICAgICAgIjAuMTA1NTQzLCAwLjEyNTA1NiwgMC4zMDI2NDEsIDAuNTk4OTM0LCAwLjg5NTgzNiwgMS41ODg4OCwgMS45ODUzIiwgXAotICAgICAgICAgICIwLjEwNTgwMywgMC4xMjUzNDgsIDAuMzAyNjg0LCAwLjU5ODk2NSwgMC44OTU2MzIsIDEuNTkwNjEsIDEuOTgzOTIiLCBcCi0gICAgICAgICAgIjAuMTA2MjM3LCAwLjEyNTYxNiwgMC4zMDI4NDksIDAuNTk4OTU2LCAwLjg5NjUzMywgMS41OTE2NywgMS45ODUwOSIsIFwKLSAgICAgICAgICAiMC4xMDY3MDIsIDAuMTI2MDA0LCAwLjMwMjU3LCAwLjU5ODgzNCwgMC44OTU2OTksIDEuNTg4MjUsIDEuOTg1MTYiLCBcCi0gICAgICAgICAgIjAuMTA3NDcyLCAwLjEyNjU1NSwgMC4zMDMwOTMsIDAuNjAwMjE5LCAwLjg5NjQyOSwgMS41ODk2NiwgMS45ODM5MyIsIFwKLSAgICAgICAgICAiMC4xMDgxOTUsIDAuMTI3MzY4LCAwLjMwMjcyNCwgMC42MDAzMTEsIDAuODk1NjQ4LCAxLjU4ODczLCAxLjk4ODE0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjkxMywgMC4wNzk2NTYsIDAuMTc0MzksIDAuMzMyMjY4LCAwLjQ5MDE5OCwgMC44NTg2NTUsIDEuMDY5OSIsIFwKLSAgICAgICAgICAiMC4wNzY3NDQsIDAuMDg3MjczLCAwLjE4MjAwNSwgMC4zNDAwMTgsIDAuNDk3ODUyLCAwLjg2NjgxMSwgMS4wNzc4IiwgXAotICAgICAgICAgICIwLjA4MzIzNywgMC4wOTM3NjIsIDAuMTg4NDgxLCAwLjM0NjQxLCAwLjUwNDMyMSwgMC44NzM2MTYsIDEuMDgzNTIiLCBcCi0gICAgICAgICAgIjAuMDg3OTkzLCAwLjA5ODUxMywgMC4xOTMyNjksIDAuMzUxMTU1LCAwLjUwOTMyNywgMC44Nzc0NDcsIDEuMDg4MSIsIFwKLSAgICAgICAgICAiMC4wOTE3NSwgMC4xMDIzNzcsIDAuMTk2OTQ5LCAwLjM1NDk5NCwgMC41MTI3MDEsIDAuODgxMTcyLCAxLjA5MTY5IiwgXAotICAgICAgICAgICIwLjA5Njc5MywgMC4xMDczMywgMC4yMDE5OTMsIDAuMzU5OTMxLCAwLjUxNzcxMywgMC44ODYyMjcsIDEuMDk3NTMiLCBcCi0gICAgICAgICAgIjAuMTAwMzkzLCAwLjExMDkxNCwgMC4yMDU1NzIsIDAuMzYzMzQ1LCAwLjUyMTMyMSwgMC44OTAwMiwgMS4xMDEyOCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTY0LCAwLjEzODU1OCwgMC4zMzc1MTgsIDAuNjcwMzc3LCAxLjAwMjMxLCAxLjc3NzUyLCAyLjIyMTE4IiwgXAotICAgICAgICAgICIwLjExNjM1OSwgMC4xMzg1NzQsIDAuMzM3NDk2LCAwLjY2OTgzNiwgMS4wMDE4LCAxLjc3Njk1LCAyLjIyMTQ5IiwgXAotICAgICAgICAgICIwLjExNjY1MiwgMC4xMzg2ODMsIDAuMzM4MDUxLCAwLjY2OTM2MiwgMS4wMDIzMiwgMS43Nzc2MywgMi4yMjE1NCIsIFwKLSAgICAgICAgICAiMC4xMTY3ODQsIDAuMTM4NzY3LCAwLjMzODA4NywgMC42NzAyNDYsIDEuMDAxNzYsIDEuNzc4NTksIDIuMjIwNjQiLCBcCi0gICAgICAgICAgIjAuMTE3MDczLCAwLjEzODk0NCwgMC4zMzgxNDksIDAuNjcwNzI3LCAxLjAwMTU1LCAxLjc3ODY3LCAyLjIyMjQ4IiwgXAotICAgICAgICAgICIwLjExNzg4MSwgMC4xMzkzNDMsIDAuMzM3NjE3LCAwLjY3MDcwNywgMS4wMDIwOSwgMS43Nzc4NywgMi4yMTk0IiwgXAotICAgICAgICAgICIwLjExODM2NCwgMC4xNDAwNTgsIDAuMzM3ODM1LCAwLjY3MDQyMSwgMS4wMDE2NywgMS43Nzg0OCwgMi4yMTk0NyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzY5MTYsIDAuMDg2NTkzLCAwLjE3MzUwOSwgMC4zMTgyNDIsIDAuNDYyOTE4LCAwLjgwMDUyNCwgMC45OTM0MzMiLCBcCi0gICAgICAgICAgIjAuMDg0MzE3LCAwLjA5Mzk5OCwgMC4xODA5MTUsIDAuMzI1NjU4LCAwLjQ3MDMzOCwgMC44MDc5MzYsIDEuMDAxMDQiLCBcCi0gICAgICAgICAgIjAuMDkyNTk1LCAwLjEwMjI3OCwgMC4xODkxOTUsIDAuMzMzOTM4LCAwLjQ3ODYwOSwgMC44MTYyMjcsIDEuMDA5MSIsIFwKLSAgICAgICAgICAiMC4wOTg5ODksIDAuMTA4NjcyLCAwLjE5NTU3MiwgMC4zNDAzNDEsIDAuNDg0OTk0LCAwLjgyMjU5NywgMS4wMTU1NiIsIFwKLSAgICAgICAgICAiMC4xMDQyMywgMC4xMTM5NDcsIDAuMjAwODQzLCAwLjM0NTU4NSwgMC40OTAyNzcsIDAuODI3OTA4LCAxLjAyMDc2IiwgXAotICAgICAgICAgICIwLjExMTU1LCAwLjEyMTMxLCAwLjIwODM2MywgMC4zNTMxNTQsIDAuNDk3ODE2LCAwLjgzNTM3OCwgMS4wMjgyNyIsIFwKLSAgICAgICAgICAiMC4xMTY5MzYsIDAuMTI2Njc1LCAwLjIxMzgyLCAwLjM1ODUyNSwgMC41MDMyNzEsIDAuODQwODUzLCAxLjAzMzc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwNTc0MSwgMC4xMjUzMDgsIDAuMzAyNjU1LCAwLjYwMDExOCwgMC44OTc0NTMsIDEuNTkxMiwgMS45ODYwMiIsIFwKLSAgICAgICAgICAiMC4xMDU4MjgsIDAuMTI1MzY5LCAwLjMwMjg1NiwgMC42MDAxNDEsIDAuODk3NDEyLCAxLjU5MTIxLCAxLjk4NTU3IiwgXAotICAgICAgICAgICIwLjEwNjExLCAwLjEyNTUyNCwgMC4zMDI4OSwgMC42MDAxMzksIDAuODk3NDM2LCAxLjU5MTU0LCAxLjk4ODIzIiwgXAotICAgICAgICAgICIwLjEwNjUxNiwgMC4xMjU4ODQsIDAuMzAyNjMxLCAwLjYwMDE3MiwgMC44OTczNzcsIDEuNTkxNiwgMS45ODgzMSIsIFwKLSAgICAgICAgICAiMC4xMDY4MzcsIDAuMTI2MjE4LCAwLjMwMjgzOSwgMC42MDAwMjgsIDAuODk3NTQ2LCAxLjU4ODk5LCAxLjk4ODU0IiwgXAotICAgICAgICAgICIwLjEwNzI4NiwgMC4xMjY1MzQsIDAuMzAzMzU2LCAwLjU5OTE5MiwgMC44OTc1MjEsIDEuNTkxNTksIDEuOTg3NzMiLCBcCi0gICAgICAgICAgIjAuMTA3ODA0LCAwLjEyNzAwNCwgMC4zMDMxODksIDAuNjAwMjYsIDAuODk3ODE1LCAxLjU5MTM0LCAxLjk4Nzg2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTMyMywgMC4wMDEzMjUsIDAuMDAxMzMsIDAuMDAxMzMxLCAwLjAwMTMzMywgMC4wMDEzMzMsIDAuMDAxMzMyIiwgXAotICAgICAgICAgICIwLjAwMTI5MiwgMC4wMDEyOTQsIDAuMDAxMywgMC4wMDEzMDIsIDAuMDAxMzAzLCAwLjAwMTMwMywgMC4wMDEzMDQiLCBcCi0gICAgICAgICAgIjAuMDAxMzA5LCAwLjAwMTMxMSwgMC4wMDEzMTcsIDAuMDAxMzIsIDAuMDAxMzIxLCAwLjAwMTMyMSwgMC4wMDEzMjEiLCBcCi0gICAgICAgICAgIjAuMDAxMzU0LCAwLjAwMTM1NSwgMC4wMDEzNjIsIDAuMDAxMzY2LCAwLjAwMTM2NywgMC4wMDEzNjgsIDAuMDAxMzY5IiwgXAotICAgICAgICAgICIwLjAwMTQyMSwgMC4wMDE0MjMsIDAuMDAxNDMsIDAuMDAxNDM0LCAwLjAwMTQzNSwgMC4wMDE0MzYsIDAuMDAxNDM2IiwgXAotICAgICAgICAgICIwLjAwMTU1NywgMC4wMDE1NTcsIDAuMDAxNTY0LCAwLjAwMTU2NywgMC4wMDE1NjgsIDAuMDAxNTcsIDAuMDAxNTciLCBcCi0gICAgICAgICAgIjAuMDAxNjk3LCAwLjAwMTY5NiwgMC4wMDE3LCAwLjAwMTcwMywgMC4wMDE3MDQsIDAuMDAxNzA1LCAwLjAwMTcwNSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzI5LCAwLjAwMzI5MSwgMC4wMDMyOTcsIDAuMDAzMjk5LCAwLjAwMzMsIDAuMDAzMywgMC4wMDMzMDEiLCBcCi0gICAgICAgICAgIjAuMDAzMjY5LCAwLjAwMzI3MSwgMC4wMDMyNzcsIDAuMDAzMjc5LCAwLjAwMzI4LCAwLjAwMzI4MSwgMC4wMDMyODEiLCBcCi0gICAgICAgICAgIjAuMDAzMjcyLCAwLjAwMzI3MywgMC4wMDMyOCwgMC4wMDMyODMsIDAuMDAzMjg0LCAwLjAwMzI4NSwgMC4wMDMyODUiLCBcCi0gICAgICAgICAgIjAuMDAzMjk0LCAwLjAwMzI5NiwgMC4wMDMzMDMsIDAuMDAzMzA2LCAwLjAwMzMwNywgMC4wMDMzMDgsIDAuMDAzMzA5IiwgXAotICAgICAgICAgICIwLjAwMzMzNSwgMC4wMDMzMzcsIDAuMDAzMzQ0LCAwLjAwMzM0NywgMC4wMDMzNDgsIDAuMDAzMzQ5LCAwLjAwMzM0OSIsIFwKLSAgICAgICAgICAiMC4wMDM0MzksIDAuMDAzNDQsIDAuMDAzNDQ2LCAwLjAwMzQ0OSwgMC4wMDM0NSwgMC4wMDM0NTEsIDAuMDAzNDUxIiwgXAotICAgICAgICAgICIwLjAwMzU1MSwgMC4wMDM1NTUsIDAuMDAzNTU4LCAwLjAwMzU2LCAwLjAwMzU2MSwgMC4wMDM1NjEsIDAuMDAzNTYyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTMyMiwgMC4wMDEzMjQsIDAuMDAxMzI5LCAwLjAwMTMzMSwgMC4wMDEzMzIsIDAuMDAxMzMyLCAwLjAwMTMzMyIsIFwKLSAgICAgICAgICAiMC4wMDEzMDUsIDAuMDAxMzA3LCAwLjAwMTMxNCwgMC4wMDEzMTcsIDAuMDAxMzE5LCAwLjAwMTMxOSwgMC4wMDEzMTgiLCBcCi0gICAgICAgICAgIjAuMDAxMzUxLCAwLjAwMTM1MiwgMC4wMDEzNTksIDAuMDAxMzYzLCAwLjAwMTM2MywgMC4wMDEzNjQsIDAuMDAxMzY1IiwgXAotICAgICAgICAgICIwLjAwMTQyMiwgMC4wMDE0MjQsIDAuMDAxNDMsIDAuMDAxNDMzLCAwLjAwMTQzNCwgMC4wMDE0MzUsIDAuMDAxNDM2IiwgXAotICAgICAgICAgICIwLjAwMTUxMywgMC4wMDE1MTQsIDAuMDAxNTE3LCAwLjAwMTUyMSwgMC4wMDE1MjEsIDAuMDAxNTIzLCAwLjAwMTUyMyIsIFwKLSAgICAgICAgICAiMC4wMDE2NzUsIDAuMDAxNjc0LCAwLjAwMTY3NiwgMC4wMDE2NzgsIDAuMDAxNjgsIDAuMDAxNjgsIDAuMDAxNjgxIiwgXAotICAgICAgICAgICIwLjAwMTgzNSwgMC4wMDE4MzQsIDAuMDAxODM1LCAwLjAwMTgzNywgMC4wMDE4MzgsIDAuMDAxODQsIDAuMDAxODQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI5ODMsIDAuMDAyOTg0LCAwLjAwMjk4OSwgMC4wMDI5OTEsIDAuMDAyOTkxLCAwLjAwMjk5MiwgMC4wMDI5OTIiLCBcCi0gICAgICAgICAgIjAuMDAyOTQ2LCAwLjAwMjk0NywgMC4wMDI5NTMsIDAuMDAyOTU1LCAwLjAwMjk1NiwgMC4wMDI5NTYsIDAuMDAyOTU2IiwgXAotICAgICAgICAgICIwLjAwMjk0NSwgMC4wMDI5NDcsIDAuMDAyOTUzLCAwLjAwMjk1NSwgMC4wMDI5NTYsIDAuMDAyOTU3LCAwLjAwMjk1NyIsIFwKLSAgICAgICAgICAiMC4wMDI5NjcsIDAuMDAyOTcsIDAuMDAyOTc3LCAwLjAwMjk4LCAwLjAwMjk4MSwgMC4wMDI5ODIsIDAuMDAyOTgyIiwgXAotICAgICAgICAgICIwLjAwMzAxNCwgMC4wMDMwMTcsIDAuMDAzMDI0LCAwLjAwMzAyNywgMC4wMDMwMjgsIDAuMDAzMDI5LCAwLjAwMzAyOSIsIFwKLSAgICAgICAgICAiMC4wMDMxMTYsIDAuMDAzMTE3LCAwLjAwMzEyNSwgMC4wMDMxMjgsIDAuMDAzMTI5LCAwLjAwMzEzLCAwLjAwMzEzIiwgXAotICAgICAgICAgICIwLjAwMzIyOCwgMC4wMDMyMywgMC4wMDMyMzYsIDAuMDAzMjM5LCAwLjAwMzI0LCAwLjAwMzI0MSwgMC4wMDMyNDEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwOTQ0LCAwLjAwMDk0NCwgMC4wMDA5NDUsIDAuMDAwOTQ1LCAwLjAwMDk0NSwgMC4wMDA5NDUsIDAuMDAwOTQ1IiwgXAotICAgICAgICAgICIwLjAwMDk0MiwgMC4wMDA5NDIsIDAuMDAwOTQ1LCAwLjAwMDk0NSwgMC4wMDA5NDUsIDAuMDAwOTQ1LCAwLjAwMDk0NiIsIFwKLSAgICAgICAgICAiMC4wMDEwMSwgMC4wMDEwMTEsIDAuMDAxMDEzLCAwLjAwMTAxNCwgMC4wMDEwMTQsIDAuMDAxMDE0LCAwLjAwMTAxNCIsIFwKLSAgICAgICAgICAiMC4wMDExMTksIDAuMDAxMTEyLCAwLjAwMTEyMSwgMC4wMDExMjEsIDAuMDAxMTE0LCAwLjAwMTEyMSwgMC4wMDExMjIiLCBcCi0gICAgICAgICAgIjAuMDAxMjM3LCAwLjAwMTIyOCwgMC4wMDEyMzgsIDAuMDAxMjM5LCAwLjAwMTIyOSwgMC4wMDEyMzksIDAuMDAxMjM5IiwgXAotICAgICAgICAgICIwLjAwMTQyNywgMC4wMDE0MjYsIDAuMDAxNDI1LCAwLjAwMTQyNSwgMC4wMDE0MjQsIDAuMDAxNDI4LCAwLjAwMTQyNyIsIFwKLSAgICAgICAgICAiMC4wMDE2MTEsIDAuMDAxNjA3LCAwLjAwMTYwNiwgMC4wMDE2MDcsIDAuMDAxNjA0LCAwLjAwMTYwOSwgMC4wMDE2MDkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI2MjcsIDAuMDAyNjI5LCAwLjAwMjYzNSwgMC4wMDI2MzcsIDAuMDAyNjM4LCAwLjAwMjYzOCwgMC4wMDI2MzgiLCBcCi0gICAgICAgICAgIjAuMDAyNjIyLCAwLjAwMjYyNCwgMC4wMDI2MzEsIDAuMDAyNjM0LCAwLjAwMjYzNSwgMC4wMDI2MzYsIDAuMDAyNjM2IiwgXAotICAgICAgICAgICIwLjAwMjY4NCwgMC4wMDI2ODYsIDAuMDAyNjkzLCAwLjAwMjY5NiwgMC4wMDI2OTgsIDAuMDAyNjk5LCAwLjAwMjY5OSIsIFwKLSAgICAgICAgICAiMC4wMDI3NjksIDAuMDAyNzcsIDAuMDAyNzc2LCAwLjAwMjc4LCAwLjAwMjc4MSwgMC4wMDI3ODIsIDAuMDAyNzgzIiwgXAotICAgICAgICAgICIwLjAwMjg2NiwgMC4wMDI4NjcsIDAuMDAyODcyLCAwLjAwMjg3NSwgMC4wMDI4NzYsIDAuMDAyODc3LCAwLjAwMjg3NyIsIFwKLSAgICAgICAgICAiMC4wMDMwMzYsIDAuMDAzMDM3LCAwLjAwMzA0MiwgMC4wMDMwNDYsIDAuMDAzMDQ3LCAwLjAwMzA0OSwgMC4wMDMwNSIsIFwKLSAgICAgICAgICAiMC4wMDMxOTYsIDAuMDAzMTk2LCAwLjAwMzIsIDAuMDAzMjAzLCAwLjAwMzIwNSwgMC4wMDMyMDYsIDAuMDAzMjA3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBBTzIyWDEgKgotICogLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChBTzIyWDEpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4zMTg4MjE7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2NDUwODg7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjQzMjUyOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDY0NTA4ODsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyOTcsIDAuMDAwMjk2LCAwLjAwMDI5NiwgMC4wMDAyOTYsIDAuMDAwMjk2LCAwLjAwMDI5NiwgMC4wMDAyOTYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAzMTcsIDAuMDAwMzA1LCAwLjAwMDMwMSwgMC4wMDAyOTgsIDAuMDAwMjk4LCAwLjAwMDI5OCwgMC4wMDAyOTgiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEExKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2NDU4NzI7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjQzNDM5OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDY0NTg3MjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxNTcsIDAuMDAwMTU3LCAwLjAwMDE1NiwgMC4wMDAxNTYsIDAuMDAwMTU2LCAwLjAwMDE1NywgMC4wMDAxNTciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAzMzcsIDAuMDAwMzM4LCAwLjAwMDMzNywgMC4wMDAzMzgsIDAuMDAwMzM4LCAwLjAwMDMzOCwgMC4wMDAzMzgiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2NDgzNjU7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjQ4MzY1OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDY0NzY3NzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyOTcsIDAuMDAwMjk3LCAwLjAwMDI5NiwgMC4wMDAyOTYsIDAuMDAwMjk2LCAwLjAwMDI5NiwgMC4wMDAyOTYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAzMTQsIDAuMDAwMzAzLCAwLjAwMDMsIDAuMDAwMjk4LCAwLjAwMDI5OCwgMC4wMDAyOTgsIDAuMDAwMjk3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCMSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjY0MzY1OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDY2NDM2NTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2NjQyMTI7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMDgsIDAuMDAwMDgsIDAuMDAwMDgsIDAuMDAwMDgsIDAuMDAwMDgsIDAuMDAwMDgsIDAuMDAwMDgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAzMzcsIDAuMDAwMzM3LCAwLjAwMDMzNywgMC4wMDAzMzcsIDAuMDAwMzM3LCAwLjAwMDMzNywgMC4wMDAzMzciKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4zMzY1NjE7Ci0gICAgZnVuY3Rpb24gOiAiKChBMCBBMSkrKEIwIEIxKSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzM4NjcsIDAuMDkyODc5LCAwLjE5ODgxOSwgMC4yOTIwMzQsIDAuNDE2MjAzLCAwLjY2NDUsIDAuODE5NjM0IiwgXAotICAgICAgICAgICIwLjA3OTk5MiwgMC4wOTkwMTMsIDAuMjA0OTU4LCAwLjI5ODE3OSwgMC40MjIzNDEsIDAuNjcwNjI0LCAwLjgyNTc4NiIsIFwKLSAgICAgICAgICAiMC4wODc0ODcsIDAuMTA2NDgxLCAwLjIxMjQzNSwgMC4zMDU2NjQsIDAuNDI5ODYxLCAwLjY3ODA5OSwgMC44MzMzMjEiLCBcCi0gICAgICAgICAgIjAuMDk0MjE0LCAwLjExMzI0MiwgMC4yMTkxNjMsIDAuMzEyNDAzLCAwLjQzNjU3MywgMC42ODQ4NTIsIDAuODQwMDA0IiwgXAotICAgICAgICAgICIwLjEwMDExMSwgMC4xMTkxMjIsIDAuMjI1MDgzLCAwLjMxODMwNSwgMC40NDI1MSwgMC42OTA3NjMsIDAuODQ1OTA3IiwgXAotICAgICAgICAgICIwLjEwODIzMSwgMC4xMjczNTYsIDAuMjMzMzI3LCAwLjMyNjU0MiwgMC40NTA3NzUsIDAuNjk5MDY5LCAwLjg1NDEzNSIsIFwKLSAgICAgICAgICAiMC4xMTQ0MzcsIDAuMTMzNiwgMC4yMzk1NjgsIDAuMzMyNzk4LCAwLjQ1NywgMC43MDUyNjQsIDAuODYwNCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzU0MDYsIDAuMTEzMjQ4LCAwLjMzMzI2MSwgMC41Mjg5OCwgMC43OTAzMzIsIDEuMzEyMDksIDEuNjQwMDIiLCBcCi0gICAgICAgICAgIjAuMDc1NDM5LCAwLjExMzI0MiwgMC4zMzMyNTYsIDAuNTI4OTI1LCAwLjc5MDMwNywgMS4zMTIxNCwgMS42Mzk5MiIsIFwKLSAgICAgICAgICAiMC4wNzU1MzUsIDAuMTEzMjgxLCAwLjMzMzI1OCwgMC41Mjg5NTMsIDAuNzkwMzE2LCAxLjMxMjA2LCAxLjYzOTkxIiwgXAotICAgICAgICAgICIwLjA3NTk1OSwgMC4xMTM1NiwgMC4zMzMxOCwgMC41Mjg5NTQsIDAuNzkwMjM5LCAxLjMxMzA0LCAxLjYzODU1IiwgXAotICAgICAgICAgICIwLjA3NjQ2OCwgMC4xMTM5NDUsIDAuMzMzMTA0LCAwLjUyODg4MSwgMC43OTAyNDIsIDEuMzEyMDUsIDEuNjM4NDgiLCBcCi0gICAgICAgICAgIjAuMDc3NTI0LCAwLjExNDU2NSwgMC4zMzMyMzgsIDAuNTI5LCAwLjc5MDI3MiwgMS4zMTMwMSwgMS42Mzg1IiwgXAotICAgICAgICAgICIwLjA3ODI3NiwgMC4xMTUzMjksIDAuMzMzMzE4LCAwLjUyOTA4MiwgMC43OTAyMjIsIDEuMzEyOTksIDEuNjM5NzciKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc3MzI2LCAwLjA5NTg5OSwgMC4xOTg4MiwgMC4yODkzODIsIDAuNDEwMDk0LCAwLjY1MTM4NCwgMC44MDIyMzYiLCBcCi0gICAgICAgICAgIjAuMDg0MzMyLCAwLjEwMjg5OSwgMC4yMDU4MjQsIDAuMjk2Mzg0LCAwLjQxNzEwOSwgMC42NTg0MDMsIDAuODA5MjExIiwgXAotICAgICAgICAgICIwLjA5MTM1NSwgMC4xMDk5MjksIDAuMjEyODY2LCAwLjMwMzQ0LCAwLjQyNDE1NywgMC42NjU0ODIsIDAuODE2MjU5IiwgXAotICAgICAgICAgICIwLjA5NzQ0MywgMC4xMTYwNDQsIDAuMjE4OTgzLCAwLjMwOTU0NCwgMC40MzAyNTgsIDAuNjcxNTQyLCAwLjgyMjM1IiwgXAotICAgICAgICAgICIwLjEwMjUzNiwgMC4xMjEyMTMsIDAuMjI0MTcsIDAuMzE0NzIyLCAwLjQzNTQxMSwgMC42NzY3MzgsIDAuODI3NjM3IiwgXAotICAgICAgICAgICIwLjEwOTQyMywgMC4xMjgxMzksIDAuMjMxMTUzLCAwLjMyMTcxNSwgMC40NDI0MDgsIDAuNjgzNzU2LCAwLjgzNDU1MiIsIFwKLSAgICAgICAgICAiMC4xMTQzOTMsIDAuMTMzMjIsIDAuMjM2Mjg4LCAwLjMyNjg1NCwgMC40NDc1MzYsIDAuNjg4ODQ4LCAwLjgzOTY3OSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzIwMDYsIDAuMTA3OTY4LCAwLjMxNjkzNiwgMC41MDI3OCwgMC43NTE2MTQsIDEuMjQ4NywgMS41NTk3NSIsIFwKLSAgICAgICAgICAiMC4wNzE5ODksIDAuMTA3OTU1LCAwLjMxNjkxLCAwLjUwMjk1OSwgMC43NTEzOTIsIDEuMjQ4MjcsIDEuNTU5MDIiLCBcCi0gICAgICAgICAgIjAuMDcyMTAzLCAwLjEwODAyMywgMC4zMTY5MjgsIDAuNTAzMDEzLCAwLjc1MTYyMiwgMS4yNDg5NiwgMS41NTg5MiIsIFwKLSAgICAgICAgICAiMC4wNzI1MTMsIDAuMTA4MzIxLCAwLjMxNjk5NiwgMC41MDI4NzEsIDAuNzUxNjAyLCAxLjI0ODk3LCAxLjU1OTY4IiwgXAotICAgICAgICAgICIwLjA3MzE1NSwgMC4xMDg4NDMsIDAuMzE3MTM2LCAwLjUwMzAzNiwgMC43NTA1MDksIDEuMjQ4ODEsIDEuNTYwMDkiLCBcCi0gICAgICAgICAgIjAuMDc0Mzg1LCAwLjEwOTU5OSwgMC4zMTcxNDcsIDAuNTAyOTQ1LCAwLjc1MTI5MSwgMS4yNDg5NCwgMS41NTk3NCIsIFwKLSAgICAgICAgICAiMC4wNzUyODYsIDAuMTEwNDE5LCAwLjMxNzEwNywgMC41MDI0MiwgMC43NTEyNCwgMS4yNDg1OSwgMS41NTg4OCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDcyNDU5LCAwLjA5MTQ2MSwgMC4xOTczOTUsIDAuMjkwNjI3LCAwLjQxNDc3OSwgMC42NjMwNTcsIDAuODE4MjQiLCBcCi0gICAgICAgICAgIjAuMDc5ODEsIDAuMDk4ODIxLCAwLjIwNDc3LCAwLjI5Nzk4OSwgMC40MjIxNTcsIDAuNjcwNDQxLCAwLjgyNTU4MyIsIFwKLSAgICAgICAgICAiMC4wODkzMTcsIDAuMTA4MzM0LCAwLjIxNDI4MSwgMC4zMDc1MDYsIDAuNDMxNjY4LCAwLjY3OTk1NiwgMC44MzUxNjciLCBcCi0gICAgICAgICAgIjAuMDk3OTIyLCAwLjExNjkzMywgMC4yMjI4ODMsIDAuMzE2MDg4LCAwLjQ0MDI2OSwgMC42ODg1NDcsIDAuODQzNzM1IiwgXAotICAgICAgICAgICIwLjEwNTQ0OSwgMC4xMjQ0OCwgMC4yMzAzOTgsIDAuMzIzNjAyLCAwLjQ0NzgxMiwgMC42OTYxNywgMC44NTEyMDQiLCBcCi0gICAgICAgICAgIjAuMTE1MzksIDAuMTM0NDkyLCAwLjI0MDQzMSwgMC4zMzM2NTMsIDAuNDU3ODM5LCAwLjcwNjA4MiwgMC44NjE0MDEiLCBcCi0gICAgICAgICAgIjAuMTIyODcyLCAwLjE0MTk4OSwgMC4yNDc5NDcsIDAuMzQxMjAxLCAwLjQ2NTM1OCwgMC43MTM2NiwgMC44Njg3NTMiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc1NCwgMC4xMTMyNDQsIDAuMzMzMjY2LCAwLjUyODk1NywgMC43OTAzMjEsIDEuMzEyMSwgMS42Mzg0OSIsIFwKLSAgICAgICAgICAiMC4wNzUzOTIsIDAuMTEzMjQzLCAwLjMzMzI1NSwgMC41Mjg5MTMsIDAuNzkwMzA0LCAxLjMxMjE0LCAxLjYzODU5IiwgXAotICAgICAgICAgICIwLjA3NTQ4NSwgMC4xMTMyNzUsIDAuMzMzMjI4LCAwLjUyODkwOSwgMC43OTAyNiwgMS4zMTIxNSwgMS42Mzk5IiwgXAotICAgICAgICAgICIwLjA3NTk3NiwgMC4xMTM1NjYsIDAuMzMzMjY3LCAwLjUyODQ5LCAwLjc5MDI1LCAxLjMxMjAzLCAxLjYzOTgxIiwgXAotICAgICAgICAgICIwLjA3NjczNCwgMC4xMTQwNjgsIDAuMzMzMzYsIDAuNTI4OTczLCAwLjc5MDIzNCwgMS4zMTMwNywgMS42Mzg1NiIsIFwKLSAgICAgICAgICAiMC4wNzc5NTQsIDAuMTE0NzgxLCAwLjMzMzQ1OCwgMC41MjkwNDcsIDAuNzkwMjUxLCAxLjMxMjg4LCAxLjYzOTg0IiwgXAotICAgICAgICAgICIwLjA3ODgzNCwgMC4xMTU2MTYsIDAuMzMzMzUxLCAwLjUyOTE2MSwgMC43OTAzNjUsIDEuMzEzMDUsIDEuNjM5NzkiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc0ODA0LCAwLjA5MzMyOCwgMC4xOTYxNTgsIDAuMjg2NjkyLCAwLjQwNzQyMiwgMC42NDg2NiwgMC43OTk0NTUiLCBcCi0gICAgICAgICAgIjAuMDgxNjAxLCAwLjEwMDEyOCwgMC4yMDI5NjUsIDAuMjkzNSwgMC40MTQxODIsIDAuNjU1NDU4LCAwLjgwNjI1NSIsIFwKLSAgICAgICAgICAiMC4wODg1NCwgMC4xMDcwNjIsIDAuMjA5OTA5LCAwLjMwMDQ1MywgMC40MjExNDcsIDAuNjYyNDA1LCAwLjgxMzIyMyIsIFwKLSAgICAgICAgICAiMC4wOTQ0MDEsIDAuMTEyOTU3LCAwLjIxNTgwNCwgMC4zMDYzNzYsIDAuNDI3MDM2LCAwLjY2ODMzNSwgMC44MTkxMDQiLCBcCi0gICAgICAgICAgIjAuMDk5MzIyLCAwLjExNzkzLCAwLjIyMDgwOCwgMC4zMTEzMzUsIDAuNDMyMDY3LCAwLjY3MzI4OSwgMC44MjQwODYiLCBcCi0gICAgICAgICAgIjAuMTA1NTIxLCAwLjEyNDI3NywgMC4yMjcyMDEsIDAuMzE3NzU4LCAwLjQzODM5NCwgMC42Nzk2ODUsIDAuODMwNDg5IiwgXAotICAgICAgICAgICIwLjExMDM3LCAwLjEyOTE2MiwgMC4yMzIxNTUsIDAuMzIyNzA3LCAwLjQ0MzM4NiwgMC42ODQ2ODIsIDAuODM1NDQyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3MTY5OSwgMC4xMDc2OSwgMC4zMTY3MzIsIDAuNTAyNzc0LCAwLjc0OTg4LCAxLjI0NzE3LCAxLjU1OTE4IiwgXAotICAgICAgICAgICIwLjA3MTY5LCAwLjEwNzY4NywgMC4zMTY3NDQsIDAuNTAyMzkyLCAwLjc1MTQzNiwgMS4yNDcwMywgMS41NTkzOSIsIFwKLSAgICAgICAgICAiMC4wNzE4NSwgMC4xMDc3ODksIDAuMzE2NzQsIDAuNTAyNDEsIDAuNzUwNDAzLCAxLjI0ODU3LCAxLjU1NzY5IiwgXAotICAgICAgICAgICIwLjA3MjM4NCwgMC4xMDgxNTQsIDAuMzE2ODQ0LCAwLjUwMjYyMSwgMC43NTE0NzgsIDEuMjQ4ODMsIDEuNTU4MDMiLCBcCi0gICAgICAgICAgIjAuMDczMDUsIDAuMTA4NjY5LCAwLjMxNjc2MywgMC41MDI4OTgsIDAuNzUxMTU5LCAxLjI0ODUzLCAxLjU1OTM0IiwgXAotICAgICAgICAgICIwLjA3NDIwMiwgMC4xMDk0NDQsIDAuMzE3MjQ0LCAwLjUwMzEyMiwgMC43NTEyNTcsIDEuMjQ4NDIsIDEuNTU3NTQiLCBcCi0gICAgICAgICAgIjAuMDc1MTksIDAuMTEwNDQyLCAwLjMxNzQxNSwgMC41MDMxOTQsIDAuNzUxNTg0LCAxLjI0ODgxLCAxLjU1OTIxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjQ0NywgMC4wODMyNDMsIDAuMTg4NzYxLCAwLjI4MTg2MywgMC40MDYwMDcsIDAuNjU0NTM3LCAwLjgwOTQwOSIsIFwKLSAgICAgICAgICAiMC4wNzA2MDgsIDAuMDg5Mzg2LCAwLjE5NDkxLCAwLjI4ODAxMiwgMC40MTIxNTIsIDAuNjYwNzg4LCAwLjgxNTgyIiwgXAotICAgICAgICAgICIwLjA3NzQ5NiwgMC4wOTYyOTYsIDAuMjAxODI3LCAwLjI5NDk3NCwgMC40MTkxOTQsIDAuNjY3NDI1LCAwLjgyMjU4NSIsIFwKLSAgICAgICAgICAiMC4wODMyNTMsIDAuMTAyMDU5LCAwLjIwNzYxNiwgMC4zMDA3MjgsIDAuNDI0ODYzLCAwLjY3MzIyNCwgMC44MjgyMjMiLCBcCi0gICAgICAgICAgIjAuMDg4MDc2LCAwLjEwNjkzNCwgMC4yMTI0NzYsIDAuMzA1NTc5LCAwLjQyOTgzMSwgMC42Nzc5NzIsIDAuODMzMTgiLCBcCi0gICAgICAgICAgIjAuMDk0NTY0LCAwLjExMzUyMSwgMC4yMTkwNzcsIDAuMzEyMTY2LCAwLjQzNjIzNywgMC42ODQ1NTMsIDAuODQwMSIsIFwKLSAgICAgICAgICAiMC4wOTk0NiwgMC4xMTg0NjksIDAuMjI0MDMyLCAwLjMxNzA5LCAwLjQ0MTE4LCAwLjY4OTUxOCwgMC44NDQ2ODEiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDczOTY3LCAwLjExMTk2OSwgMC4zMzI0NiwgMC41Mjg1MDgsIDAuNzg5Njc1LCAxLjMxMTA0LCAxLjYzOTAxIiwgXAotICAgICAgICAgICIwLjA3Mzk4NywgMC4xMTE5ODgsIDAuMzMyNDU5LCAwLjUyODQ1MiwgMC43ODg2MDIsIDEuMzEwOTgsIDEuNjM4NjIiLCBcCi0gICAgICAgICAgIjAuMDc0MzIxLCAwLjExMjE5LCAwLjMzMjUwMSwgMC41Mjc4NzYsIDAuNzg5MjAzLCAxLjMxMDM5LCAxLjYzODk5IiwgXAotICAgICAgICAgICIwLjA3NTAxOCwgMC4xMTI2NTIsIDAuMzMyNjA3LCAwLjUyODQxNiwgMC43ODkwNDQsIDEuMzEwOTMsIDEuNjM5MjUiLCBcCi0gICAgICAgICAgIjAuMDc1Njk5LCAwLjExMzEzNywgMC4zMzI2MTEsIDAuNTI4NDQ1LCAwLjc4ODcxNiwgMS4zMTA1OCwgMS42MzczMyIsIFwKLSAgICAgICAgICAiMC4wNzY4NzIsIDAuMTEzOTU5LCAwLjMzMjQ2NCwgMC41Mjc3NjcsIDAuNzg4OTEsIDEuMzEwNTksIDEuNjM4NDMiLCBcCi0gICAgICAgICAgIjAuMDc3ODUzLCAwLjExNDgwMywgMC4zMzI2NzYsIDAuNTI4Mzg3LCAwLjc4OTk1OSwgMS4zMTEzOSwgMS42Mzg0MyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjkzMjQsIDAuMDg3ODk1LCAwLjE5MDgyNywgMC4yODEzNzQsIDAuNDAyMTE2LCAwLjY0MzM3NywgMC43OTQxOTkiLCBcCi0gICAgICAgICAgIjAuMDc2NzcxLCAwLjA5NTM1MiwgMC4xOTgyODYsIDAuMjg4ODU1LCAwLjQwOTU2MSwgMC42NTA5NSwgMC44MDE3MTMiLCBcCi0gICAgICAgICAgIjAuMDg2MTk3LCAwLjEwNDc1NSwgMC4yMDc2OTEsIDAuMjk4MjYzLCAwLjQxODk2NywgMC42NjAyNywgMC44MTExMzYiLCBcCi0gICAgICAgICAgIjAuMDkzNzg4LCAwLjExMjM4MSwgMC4yMTUzMDIsIDAuMzA1ODcxLCAwLjQyNjU1NSwgMC42Njc4NzksIDAuODE4Njc5IiwgXAotICAgICAgICAgICIwLjEwMDY2MSwgMC4xMTkyNjgsIDAuMjIyMjA1LCAwLjMxMjc2NiwgMC40MzM1MjIsIDAuNjc0NzgxLCAwLjgyNTU4MiIsIFwKLSAgICAgICAgICAiMC4xMDk0MTcsIDAuMTI4MTUzLCAwLjIzMTIzNiwgMC4zMjE3ODMsIDAuNDQyNDcsIDAuNjgzODY3LCAwLjgzNDY0MyIsIFwKLSAgICAgICAgICAiMC4xMTYwNTksIDAuMTM0Nzc0LCAwLjIzNzk1NSwgMC4zMjg1MTEsIDAuNDQ5MjIyLCAwLjY5MDUyNiwgMC44NDEzOTMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDcxOTk0LCAwLjEwNzk1MSwgMC4zMTY5NDEsIDAuNTAyOTQzLCAwLjc1MTU5NSwgMS4yNDg3NCwgMS41NTkxOSIsIFwKLSAgICAgICAgICAiMC4wNzE5NjksIDAuMTA3OTM5LCAwLjMxNjkzMSwgMC41MDI0OCwgMC43NTE1OTUsIDEuMjQ5MDcsIDEuNTU5NzciLCBcCi0gICAgICAgICAgIjAuMDcyMTcsIDAuMTA4MDY4LCAwLjMxNjkzNiwgMC41MDI0NTQsIDAuNzUxNTgyLCAxLjI0ODY3LCAxLjU1OTg0IiwgXAotICAgICAgICAgICIwLjA3MjcwNSwgMC4xMDg0NTQsIDAuMzE3MDQ2LCAwLjUwMzA0NSwgMC43NTE1MTEsIDEuMjQ4NiwgMS41NTk0NCIsIFwKLSAgICAgICAgICAiMC4wNzMyNTQsIDAuMTA4ODE0LCAwLjMxNjk5MywgMC41MDMwMzMsIDAuNzUxMzU0LCAxLjI0ODc4LCAxLjU1OTYiLCBcCi0gICAgICAgICAgIjAuMDc0MTA2LCAwLjEwOTM4NSwgMC4zMTcyODYsIDAuNTAzMTk5LCAwLjc1MTUxMywgMS4yNDg2OSwgMS41NTk3NyIsIFwKLSAgICAgICAgICAiMC4wNzQ3NTQsIDAuMTEwMDQsIDAuMzE3MjQ4LCAwLjUwMzA0NCwgMC43NTEyOTUsIDEuMjQ4NjcsIDEuNTU5NDgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjEiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2MjU3MSwgMC4wODEzNjQsIDAuMTg2OTM5LCAwLjI3OTk5OSwgMC40MDQxNjMsIDAuNjUyNDc0LCAwLjgwNzcyOCIsIFwKLSAgICAgICAgICAiMC4wNjk5ODgsIDAuMDg4Nzg2LCAwLjE5NDMxNywgMC4yODc0MjIsIDAuNDExNTY0LCAwLjY1OTksIDAuODE1MzM3IiwgXAotICAgICAgICAgICIwLjA3ODgsIDAuMDk3NiwgMC4yMDMxNjYsIDAuMjk2MjM2LCAwLjQyMDY2NCwgMC42Njg5NDIsIDAuODI0MDI2IiwgXAotICAgICAgICAgICIwLjA4NTksIDAuMTA0NzMxLCAwLjIxMDI0NCwgMC4zMDMzNzMsIDAuNDI3NTczLCAwLjY3NjI1NCwgMC44MzA5MzQiLCBcCi0gICAgICAgICAgIjAuMDkxNzQzLCAwLjExMDYzOCwgMC4yMTYxMzUsIDAuMzA5Mjc2LCAwLjQzMzY0MSwgMC42ODE3LCAwLjgzNjg1NiIsIFwKLSAgICAgICAgICAiMC4wOTk3MTcsIDAuMTE4NjI5LCAwLjIyNDE3NywgMC4zMTcyNTksIDAuNDQxMzc0LCAwLjY4OTYwMSwgMC44NDU0NzIiLCBcCi0gICAgICAgICAgIjAuMTA1NTQ3LCAwLjEyNDYxNCwgMC4yMzAxODgsIDAuMzIzMjEyLCAwLjQ0NzMzMSwgMC42OTU5MzQsIDAuODUwNzY5Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3Mzk5MSwgMC4xMTE5OTMsIDAuMzMxOTc1LCAwLjUyODUwMywgMC43ODk1MTEsIDEuMzEyMTksIDEuNjM3MzYiLCBcCi0gICAgICAgICAgIjAuMDczOTkxLCAwLjExMTk5NywgMC4zMzI0MjUsIDAuNTI4NDcsIDAuNzg5MjY1LCAxLjMxMDM3LCAxLjYzODY3IiwgXAotICAgICAgICAgICIwLjA3NDQxOSwgMC4xMTIyNCwgMC4zMzIzOTgsIDAuNTI4NDQ2LCAwLjc4OTY3MiwgMS4zMTE0MiwgMS42MzgxOSIsIFwKLSAgICAgICAgICAiMC4wNzUyMTcsIDAuMTEyNzk4LCAwLjMzMjQ0MywgMC41Mjg0MjgsIDAuNzg5NDk4LCAxLjMxMjIzLCAxLjYzOTE4IiwgXAotICAgICAgICAgICIwLjA3NjA0NiwgMC4xMTMzMjYsIDAuMzMyNjIzLCAwLjUyODA2OSwgMC43ODg3NTgsIDEuMzExNjQsIDEuNjM2NjgiLCBcCi0gICAgICAgICAgIjAuMDc3NDgxLCAwLjExNDI2MiwgMC4zMzI4NDEsIDAuNTI4NjE3LCAwLjc4OTA4OCwgMS4zMTIzOSwgMS42Mzc0MyIsIFwKLSAgICAgICAgICAiMC4wNzg1NTksIDAuMTE1MjY2LCAwLjMzMjc0LCAwLjUyODQwNiwgMC43OTAwNDMsIDEuMzExMDUsIDEuNjM3NDciKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY2MTgxLCAwLjA4NDY5MSwgMC4xODc0ODcsIDAuMjc4MDE2LCAwLjM5ODY5NywgMC42Mzk5NTQsIDAuNzkwNzUiLCBcCi0gICAgICAgICAgIjAuMDczNTM5LCAwLjA5MjA1LCAwLjE5NDg2NywgMC4yODUzOTgsIDAuNDA2MDU3LCAwLjY0NzM3MSwgMC43OTgxNDkiLCBcCi0gICAgICAgICAgIjAuMDgyNDAxLCAwLjEwMDkxNCwgMC4yMDM3MjgsIDAuMjk0MjU5LCAwLjQxNDkyNywgMC42NTYxOTcsIDAuODA3MDY1IiwgXAotICAgICAgICAgICIwLjA4OTg2NiwgMC4xMDg0MjEsIDAuMjExMjIzLCAwLjMwMTc0NSwgMC40MjI0MjYsIDAuNjYzNjg4LCAwLjgxNDQ4MiIsIFwKLSAgICAgICAgICAiMC4wOTU3NjYsIDAuMTE0NDE5LCAwLjIxNzE4MSwgMC4zMDc3MjIsIDAuNDI4NDE1LCAwLjY2OTY0MiwgMC44MjA0MzciLCBcCi0gICAgICAgICAgIjAuMTAzNjY5LCAwLjEyMjM1NCwgMC4yMjUzNTYsIDAuMzE1ODc5LCAwLjQzNjQ0NCwgMC42Nzc3NjQsIDAuODI4NTkyIiwgXAotICAgICAgICAgICIwLjEwOTU0NywgMC4xMjgyOTEsIDAuMjMxNDMxLCAwLjMyMTkyLCAwLjQ0MjU3LCAwLjY4Mzg3MSwgMC44MzQ2OTQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDcxNTkyLCAwLjEwNzYxNywgMC4zMTY2NDUsIDAuNTAyMzYyLCAwLjc1MTQxMiwgMS4yNDg1MSwgMS41NTkwOSIsIFwKLSAgICAgICAgICAiMC4wNzE2MTUsIDAuMTA3NjEzLCAwLjMxNjY3LCAwLjUwMjE2LCAwLjc1MDQ0NiwgMS4yNDg3NiwgMS41NTk1NCIsIFwKLSAgICAgICAgICAiMC4wNzE4MzEsIDAuMTA3NzU4LCAwLjMxNjY5NiwgMC41MDIyNjYsIDAuNzUxMzYzLCAxLjI0ODUsIDEuNTU5NzQiLCBcCi0gICAgICAgICAgIjAuMDcyMzYzLCAwLjEwODE3OCwgMC4zMTY3OTksIDAuNTAyNjkxLCAwLjc1MTQxNCwgMS4yNDY5OCwgMS41NTkyOCIsIFwKLSAgICAgICAgICAiMC4wNzI5OTMsIDAuMTA4NjEyLCAwLjMxNjc4MiwgMC41MDI4MjMsIDAuNzUxNDE0LCAxLjI0ODQ4LCAxLjU1OTI5IiwgXAotICAgICAgICAgICIwLjA3NDE4MywgMC4xMDkzMDksIDAuMzE3MTI0LCAwLjUwMjIwOSwgMC43NTEzMjEsIDEuMjQ4ODEsIDEuNTU5MjkiLCBcCi0gICAgICAgICAgIjAuMDc1MDA2LCAwLjExMDE1MSwgMC4zMTcwMDksIDAuNTAzMDg0LCAwLjc1MTU4NywgMS4yNDg1LCAxLjU1OTYzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjI4NywgMC4wMDIyOTYsIDAuMDAyMzEsIDAuMDAyMzE0LCAwLjAwMjMxNCwgMC4wMDIzMTUsIDAuMDAyMzE5IiwgXAotICAgICAgICAgICIwLjAwMjI1MSwgMC4wMDIyNjIsIDAuMDAyMjc5LCAwLjAwMjI4MiwgMC4wMDIyODYsIDAuMDAyMjg4LCAwLjAwMjI4OCIsIFwKLSAgICAgICAgICAiMC4wMDIyNywgMC4wMDIyNzcsIDAuMDAyMjkxLCAwLjAwMjI5NSwgMC4wMDIyOTcsIDAuMDAyMjk5LCAwLjAwMjI5OCIsIFwKLSAgICAgICAgICAiMC4wMDIzMDgsIDAuMDAyMzE0LCAwLjAwMjMyOCwgMC4wMDIzMzIsIDAuMDAyMzM1LCAwLjAwMjMzNiwgMC4wMDIzMzciLCBcCi0gICAgICAgICAgIjAuMDAyMzU4LCAwLjAwMjM2NSwgMC4wMDIzODIsIDAuMDAyMzg3LCAwLjAwMjM5LCAwLjAwMjM5MywgMC4wMDIzOTQiLCBcCi0gICAgICAgICAgIjAuMDAyNTEsIDAuMDAyNTA1LCAwLjAwMjUwNywgMC4wMDI1MTEsIDAuMDAyNTEyLCAwLjAwMjUxNCwgMC4wMDI1MTUiLCBcCi0gICAgICAgICAgIjAuMDAyNjMxLCAwLjAwMjYyNiwgMC4wMDI2MjcsIDAuMDAyNjMsIDAuMDAyNjMxLCAwLjAwMjYzMywgMC4wMDI2MzQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQ1NDMsIDAuMDA0NTU0LCAwLjAwNDU3MywgMC4wMDQ1NzcsIDAuMDA0NTc5LCAwLjAwNDU4MSwgMC4wMDQ1ODEiLCBcCi0gICAgICAgICAgIjAuMDA0NTIyLCAwLjAwNDUzNSwgMC4wMDQ1NTUsIDAuMDA0NTU5LCAwLjAwNDU2MSwgMC4wMDQ1NjMsIDAuMDA0NTY0IiwgXAotICAgICAgICAgICIwLjAwNDUxNywgMC4wMDQ1MjksIDAuMDA0NTUsIDAuMDA0NTU1LCAwLjAwNDU1OCwgMC4wMDQ1NiwgMC4wMDQ1NjEiLCBcCi0gICAgICAgICAgIjAuMDA0NTI3LCAwLjAwNDUzOSwgMC4wMDQ1NiwgMC4wMDQ1NjUsIDAuMDA0NTY4LCAwLjAwNDU3MSwgMC4wMDQ1NzEiLCBcCi0gICAgICAgICAgIjAuMDA0NTUxLCAwLjAwNDU2MiwgMC4wMDQ1ODIsIDAuMDA0NTg3LCAwLjAwNDU5LCAwLjAwNDU5MywgMC4wMDQ1OTQiLCBcCi0gICAgICAgICAgIjAuMDA0NjE3LCAwLjAwNDYyNSwgMC4wMDQ2NDMsIDAuMDA0NjQ5LCAwLjAwNDY1MiwgMC4wMDQ2NTUsIDAuMDA0NjU1IiwgXAotICAgICAgICAgICIwLjAwNDcwNCwgMC4wMDQ3MDUsIDAuMDA0NzIyLCAwLjAwNDcyOCwgMC4wMDQ3MzEsIDAuMDA0NzMzLCAwLjAwNDczNCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkExIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDIyODYsIDAuMDAyMjk1LCAwLjAwMjMwOSwgMC4wMDIzMDksIDAuMDAyMzE3LCAwLjAwMjMxNiwgMC4wMDIzMTMiLCBcCi0gICAgICAgICAgIjAuMDAyMjY1LCAwLjAwMjI3NiwgMC4wMDIyOTUsIDAuMDAyMjk5LCAwLjAwMjMwMSwgMC4wMDIzMDMsIDAuMDAyMzA0IiwgXAotICAgICAgICAgICIwLjAwMjI5OSwgMC4wMDIzMDgsIDAuMDAyMzI3LCAwLjAwMjMzMiwgMC4wMDIzMzUsIDAuMDAyMzM3LCAwLjAwMjMzOCIsIFwKLSAgICAgICAgICAiMC4wMDIzNzksIDAuMDAyMzgzLCAwLjAwMjM5NiwgMC4wMDI0LCAwLjAwMjQwMywgMC4wMDI0MDUsIDAuMDAyNDA2IiwgXAotICAgICAgICAgICIwLjAwMjQ3MywgMC4wMDI0NzMsIDAuMDAyNDgzLCAwLjAwMjQ4NiwgMC4wMDI0ODksIDAuMDAyNDkxLCAwLjAwMjQ5MiIsIFwKLSAgICAgICAgICAiMC4wMDI2MDIsIDAuMDAyNTk5LCAwLjAwMjYwNSwgMC4wMDI2MDgsIDAuMDAyNjExLCAwLjAwMjYxNCwgMC4wMDI2MTQiLCBcCi0gICAgICAgICAgIjAuMDAyNzYsIDAuMDAyNzUsIDAuMDAyNzQ3LCAwLjAwMjc0OSwgMC4wMDI3NTEsIDAuMDAyNzU0LCAwLjAwMjc1MyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDI0MywgMC4wMDQyNTUsIDAuMDA0MjcyLCAwLjAwNDI3NSwgMC4wMDQyNzcsIDAuMDA0Mjc5LCAwLjAwNDI3OSIsIFwKLSAgICAgICAgICAiMC4wMDQyMDgsIDAuMDA0MjIsIDAuMDA0MjM5LCAwLjAwNDI0MywgMC4wMDQyNDUsIDAuMDA0MjQ3LCAwLjAwNDI0NyIsIFwKLSAgICAgICAgICAiMC4wMDQxOTQsIDAuMDA0MjA3LCAwLjAwNDIyOCwgMC4wMDQyMzIsIDAuMDA0MjM1LCAwLjAwNDIzNywgMC4wMDQyMzgiLCBcCi0gICAgICAgICAgIjAuMDA0MjAzLCAwLjAwNDIxNSwgMC4wMDQyMzYsIDAuMDA0MjQxLCAwLjAwNDI0NCwgMC4wMDQyNDYsIDAuMDA0MjQ3IiwgXAotICAgICAgICAgICIwLjAwNDIyNywgMC4wMDQyMzgsIDAuMDA0MjU4LCAwLjAwNDI2MywgMC4wMDQyNjYsIDAuMDA0MjY5LCAwLjAwNDI3IiwgXAotICAgICAgICAgICIwLjAwNDI5NywgMC4wMDQzMDcsIDAuMDA0MzI1LCAwLjAwNDMzMSwgMC4wMDQzMzMsIDAuMDA0MzM2LCAwLjAwNDMzNyIsIFwKLSAgICAgICAgICAiMC4wMDQzNzQsIDAuMDA0Mzc4LCAwLjAwNDM5NiwgMC4wMDQ0MDEsIDAuMDA0NDA1LCAwLjAwNDQwOCwgMC4wMDQ0MDgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxNjU4LCAwLjAwMTY1OCwgMC4wMDE2NTcsIDAuMDAxNjU2LCAwLjAwMTY2LCAwLjAwMTY1NiwgMC4wMDE2NTYiLCBcCi0gICAgICAgICAgIjAuMDAxNjI0LCAwLjAwMTYyNiwgMC4wMDE2MjYsIDAuMDAxNjI2LCAwLjAwMTYyNiwgMC4wMDE2MjYsIDAuMDAxNjI1IiwgXAotICAgICAgICAgICIwLjAwMTY0LCAwLjAwMTY0MSwgMC4wMDE2NDEsIDAuMDAxNjQxLCAwLjAwMTY0MSwgMC4wMDE2NDEsIDAuMDAxNjQiLCBcCi0gICAgICAgICAgIjAuMDAxNjg3LCAwLjAwMTY4NywgMC4wMDE2ODUsIDAuMDAxNjg0LCAwLjAwMTY4NCwgMC4wMDE2ODMsIDAuMDAxNjgyIiwgXAotICAgICAgICAgICIwLjAwMTc1OSwgMC4wMDE3NTUsIDAuMDAxNzUzLCAwLjAwMTc1MSwgMC4wMDE3NTEsIDAuMDAxNzUxLCAwLjAwMTc1IiwgXAotICAgICAgICAgICIwLjAwMTg5NSwgMC4wMDE4ODksIDAuMDAxODg1LCAwLjAwMTg4MSwgMC4wMDE4NzksIDAuMDAxODc4LCAwLjAwMTg3OCIsIFwKLSAgICAgICAgICAiMC4wMDIwMjUsIDAuMDAyMDI2LCAwLjAwMjAxOSwgMC4wMDIwMTUsIDAuMDAyMDE1LCAwLjAwMjAxMSwgMC4wMDIwMTEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDM2NjgsIDAuMDAzNjgsIDAuMDAzNjk5LCAwLjAwMzcwMywgMC4wMDM3MDYsIDAuMDAzNzA3LCAwLjAwMzcwOCIsIFwKLSAgICAgICAgICAiMC4wMDM2NjQsIDAuMDAzNjc3LCAwLjAwMzY5OSwgMC4wMDM3MDQsIDAuMDAzNzA3LCAwLjAwMzcwOSwgMC4wMDM3MSIsIFwKLSAgICAgICAgICAiMC4wMDM3MDMsIDAuMDAzNzE0LCAwLjAwMzczNywgMC4wMDM3NDMsIDAuMDAzNzQ2LCAwLjAwMzc0OSwgMC4wMDM3NSIsIFwKLSAgICAgICAgICAiMC4wMDM3ODQsIDAuMDAzNzkxLCAwLjAwMzgxLCAwLjAwMzgxNSwgMC4wMDM4MTksIDAuMDAzODIyLCAwLjAwMzgyMyIsIFwKLSAgICAgICAgICAiMC4wMDM4NTYsIDAuMDAzODUzLCAwLjAwMzg3MiwgMC4wMDM4NzcsIDAuMDAzODgxLCAwLjAwMzg4NSwgMC4wMDM4ODYiLCBcCi0gICAgICAgICAgIjAuMDAzOTkzLCAwLjAwMzk5OSwgMC4wMDQwMTcsIDAuMDA0MDIzLCAwLjAwNDAyOCwgMC4wMDQwMzIsIDAuMDA0MDMzIiwgXAotICAgICAgICAgICIwLjAwNDEzOCwgMC4wMDQxNDEsIDAuMDA0MTUyLCAwLjAwNDE1OSwgMC4wMDQxNjMsIDAuMDA0MTY3LCAwLjAwNDE2OCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIxIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDE2NjYsIDAuMDAxNjY5LCAwLjAwMTY3MiwgMC4wMDE2NzMsIDAuMDAxNjczLCAwLjAwMTY3MywgMC4wMDE2NzMiLCBcCi0gICAgICAgICAgIjAuMDAxNjU5LCAwLjAwMTY2MywgMC4wMDE2NjksIDAuMDAxNjcsIDAuMDAxNjcsIDAuMDAxNjcxLCAwLjAwMTY3MSIsIFwKLSAgICAgICAgICAiMC4wMDE3MSwgMC4wMDE3MTMsIDAuMDAxNzE4LCAwLjAwMTcxOSwgMC4wMDE3MiwgMC4wMDE3MiwgMC4wMDE3MiIsIFwKLSAgICAgICAgICAiMC4wMDE3NzUsIDAuMDAxNzczLCAwLjAwMTc3NCwgMC4wMDE3NzYsIDAuMDAxNzc2LCAwLjAwMTc3NywgMC4wMDE3NzUiLCBcCi0gICAgICAgICAgIjAuMDAxODY5LCAwLjAwMTg2NywgMC4wMDE4NjUsIDAuMDAxODY1LCAwLjAwMTg2NSwgMC4wMDE4NjYsIDAuMDAxODY1IiwgXAotICAgICAgICAgICIwLjAwMjAzNCwgMC4wMDIwMzMsIDAuMDAyMDE4LCAwLjAwMjAyNywgMC4wMDIwMjYsIDAuMDAyMDI2LCAwLjAwMjAyNSIsIFwKLSAgICAgICAgICAiMC4wMDIxOTgsIDAuMDAyMTkzLCAwLjAwMjE4MSwgMC4wMDIxNjUsIDAuMDAyMTY1LCAwLjAwMjE2MiwgMC4wMDIxNzQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDMyODcsIDAuMDAzMjk5LCAwLjAwMzMxNiwgMC4wMDMzMTksIDAuMDAzMzIxLCAwLjAwMzMyMywgMC4wMDMzMjMiLCBcCi0gICAgICAgICAgIjAuMDAzMjY5LCAwLjAwMzI4MywgMC4wMDMzMDMsIDAuMDAzMzA4LCAwLjAwMzMxLCAwLjAwMzMxMiwgMC4wMDMzMTMiLCBcCi0gICAgICAgICAgIjAuMDAzMzEyLCAwLjAwMzMyNCwgMC4wMDMzNDUsIDAuMDAzMzUxLCAwLjAwMzM1NCwgMC4wMDMzNTcsIDAuMDAzMzU3IiwgXAotICAgICAgICAgICIwLjAwMzM2NywgMC4wMDMzNzcsIDAuMDAzMzk3LCAwLjAwMzQwMywgMC4wMDM0MDYsIDAuMDAzNDA5LCAwLjAwMzQxIiwgXAotICAgICAgICAgICIwLjAwMzQ1NCwgMC4wMDM0NTksIDAuMDAzNDc0LCAwLjAwMzQ3OSwgMC4wMDM0ODMsIDAuMDAzNDg1LCAwLjAwMzQ4NiIsIFwKLSAgICAgICAgICAiMC4wMDM2MTQsIDAuMDAzNjExLCAwLjAwMzYwNiwgMC4wMDM2MSwgMC4wMDM2MjEsIDAuMDAzNjI0LCAwLjAwMzYxNyIsIFwKLSAgICAgICAgICAiMC4wMDM3NTYsIDAuMDAzNzQ5LCAwLjAwMzczOCwgMC4wMDM3NDEsIDAuMDAzNzQ0LCAwLjAwMzc0NiwgMC4wMDM3NDciKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IEFPMjJYMiAqCi0gKiAtLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKEFPMjJYMikgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjQwOTg3NDsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQTApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY2NTUwNzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2NjM5MzQ7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjY1NTA3OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDI5NiwgMC4wMDAyOTYsIDAuMDAwMjk2LCAwLjAwMDI5NiwgMC4wMDAyOTYsIDAuMDAwMjk2LCAwLjAwMDI5NiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDMxNywgMC4wMDAzMDYsIDAuMDAwMzAxLCAwLjAwMDI5OCwgMC4wMDAyOTgsIDAuMDAwMjk4LCAwLjAwMDI5OCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQTEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY0OTk4NjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2NDc2NDE7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjQ5OTg2OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDE1NywgMC4wMDAxNTcsIDAuMDAwMTU3LCAwLjAwMDE1NywgMC4wMDAxNTcsIDAuMDAwMTU3LCAwLjAwMDE1NyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDMzNywgMC4wMDAzMzgsIDAuMDAwMzM3LCAwLjAwMDMzOCwgMC4wMDAzMzgsIDAuMDAwMzM4LCAwLjAwMDMzOCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQjApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY1NTczOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDY1NTczOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDY1NDk2NjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyOTcsIDAuMDAwMjk3LCAwLjAwMDI5NiwgMC4wMDAyOTYsIDAuMDAwMjk2LCAwLjAwMDI5NiwgMC4wMDAyOTYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAzMTMsIDAuMDAwMzAzLCAwLjAwMDI5OSwgMC4wMDAyOTgsIDAuMDAwMjk4LCAwLjAwMDI5NywgMC4wMDAyOTciKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIxKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2NjgyODU7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjY4Mjg1OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDY2ODIyNjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAwODEsIDAuMDAwMDgxLCAwLjAwMDA4MSwgMC4wMDAwODEsIDAuMDAwMDgxLCAwLjAwMDA4MSwgMC4wMDAwODEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAzMzcsIDAuMDAwMzM3LCAwLjAwMDMzNywgMC4wMDAzMzcsIDAuMDAwMzM3LCAwLjAwMDMzNywgMC4wMDAzMzciKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC42ODE0OTI7Ci0gICAgZnVuY3Rpb24gOiAiKChBMCBBMSkrKEIwIEIxKSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjYyNDUsIDAuMTQ2MzksIDAuMjA4MjM3LCAwLjI4NTQ2LCAwLjM2MjYzNSwgMC40Mzk4MTUsIDAuNTE2ODgiLCBcCi0gICAgICAgICAgIjAuMDcyNDEyLCAwLjE1MjU2MywgMC4yMTQ0NDIsIDAuMjkxNjQsIDAuMzY4ODIxLCAwLjQ0NTk4MiwgMC41MjMwNTMiLCBcCi0gICAgICAgICAgIjAuMDgwMTI1LCAwLjE2MDIzNSwgMC4yMjIxMDksIDAuMjk5MzIxLCAwLjM3NjUwOCwgMC40NTM2MDUsIDAuNTMwNzUzIiwgXAotICAgICAgICAgICIwLjA4NzI0OCwgMC4xNjc0NDYsIDAuMjI5MzE0LCAwLjMwNjU1NSwgMC4zODM2OSwgMC40NjA4NTcsIDAuNTM3OTI5IiwgXAotICAgICAgICAgICIwLjA5MzYzOSwgMC4xNzM5NTYsIDAuMjM1ODE5LCAwLjMxMzA0LCAwLjM5MDIwMiwgMC40Njc0MTYsIDAuNTQ0NDY1IiwgXAotICAgICAgICAgICIwLjEwMjU5MywgMC4xODMyNjgsIDAuMjQ1MDg3LCAwLjMyMjI5OCwgMC4zOTk0NzcsIDAuNDc2NjM0LCAwLjU1Mzc1OSIsIFwKLSAgICAgICAgICAiMC4xMDkzNjIsIDAuMTkwMzc5LCAwLjI1MjIyMywgMC4zMjk0OSwgMC40MDY2MDYsIDAuNDgzNzQyLCAwLjU2MDg4Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0NzMxLCAwLjIwMzUyNCwgMC4zMzI0MiwgMC40OTQ3MjEsIDAuNjU3MTAyLCAwLjgxOTg1LCAwLjk4MjQ5MiIsIFwKLSAgICAgICAgICAiMC4wNDczMDYsIDAuMjAzNTM0LCAwLjMzMjU3NCwgMC40OTQ3MDYsIDAuNjU2NTU2LCAwLjgxOTgxNSwgMC45ODI0NjIiLCBcCi0gICAgICAgICAgIjAuMDQ3MzkzLCAwLjIwMzQ2NywgMC4zMzI1NzEsIDAuNDk0NjY1LCAwLjY1NzE0MywgMC44MTk3NTUsIDAuOTgyMzc2IiwgXAotICAgICAgICAgICIwLjA0Nzg0MywgMC4yMDM2NzEsIDAuMzMyNTkxLCAwLjQ5NDY4NSwgMC42NTY0NjksIDAuODE5NzQyLCAwLjk4MjM5NCIsIFwKLSAgICAgICAgICAiMC4wNDg1OTUsIDAuMjAzODEyLCAwLjMzMjU1LCAwLjQ5NDcwOSwgMC42NTY2MjcsIDAuODE5NjksIDAuOTgyMzg3IiwgXAotICAgICAgICAgICIwLjA0OTk4MywgMC4yMDQzNDMsIDAuMzMyODA1LCAwLjQ5NDcxNSwgMC42NTcxNjYsIDAuODE5Njk2LCAwLjk4MjM4MyIsIFwKLSAgICAgICAgICAiMC4wNTEyNDMsIDAuMjA0ODAzLCAwLjMzMzE0MSwgMC40OTQyNDksIDAuNjU3MTk0LCAwLjgxOTc0MiwgMC45ODIzOTUiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDcxNjM0LCAwLjE1MDk2MiwgMC4yMTE3NDgsIDAuMjg3NjIyLCAwLjM2MzQzNCwgMC40MzkyNTgsIDAuNTE1MTI5IiwgXAotICAgICAgICAgICIwLjA3ODcwNCwgMC4xNTc5OSwgMC4yMTg3NzgsIDAuMjk0NjQyLCAwLjM3MDQ2OSwgMC40NDYzMDQsIDAuNTIyMDgyIiwgXAotICAgICAgICAgICIwLjA4NTkyMiwgMC4xNjUyMzksIDAuMjI2MDI1LCAwLjMwMTg5OCwgMC4zNzc3MywgMC40NTM1NjgsIDAuNTI5Mzc4IiwgXAotICAgICAgICAgICIwLjA5MjQwNSwgMC4xNzE3NzIsIDAuMjMyNTU0LCAwLjMwODQ1LCAwLjM4NDI1MywgMC40NjAxMzUsIDAuNTM1ODY5IiwgXAotICAgICAgICAgICIwLjA5ODA1NSwgMC4xNzc1ODksIDAuMjM4MzY2LCAwLjMxNDIzNSwgMC4zOTAwNTYsIDAuNDY1ODgyLCAwLjU0MTcyOSIsIFwKLSAgICAgICAgICAiMC4xMDU2NTEsIDAuMTg1NjcyLCAwLjI0NjQzLCAwLjMyMjI5LCAwLjM5ODEyMiwgMC40NzM5MTIsIDAuNTQ5NzEzIiwgXAotICAgICAgICAgICIwLjExMTM5NCwgMC4xOTE3ODEsIDAuMjUyNTQxLCAwLjMyODM4NywgMC40MDQyMSwgMC40ODAwMDQsIDAuNTU1Nzk1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0NjEwNSwgMC4xOTc3LCAwLjMyMjQxNCwgMC40NzkyNjMsIDAuNjM2NDg5LCAwLjc5MzQ0OCwgMC45NTE1NzUiLCBcCi0gICAgICAgICAgIjAuMDQ2MDc5LCAwLjE5NzY4NCwgMC4zMjI0MTIsIDAuNDc5MDA2LCAwLjYzNjQxNiwgMC43OTM0MjUsIDAuOTUxNSIsIFwKLSAgICAgICAgICAiMC4wNDYwMzIsIDAuMTk3NzEsIDAuMzIyNCwgMC40NzkyNDUsIDAuNjM2NDI5LCAwLjc5MzM5NywgMC45NTE2NjgiLCBcCi0gICAgICAgICAgIjAuMDQ2NTEzLCAwLjE5Nzc4NywgMC4zMjI0MzksIDAuNDc5MzYsIDAuNjM2NDY1LCAwLjc5MzQzNywgMC45NTE0NTgiLCBcCi0gICAgICAgICAgIjAuMDQ3Mzg0LCAwLjE5ODAyLCAwLjMyMjU3MSwgMC40NzkzMTUsIDAuNjM2NTIzLCAwLjc5MzA4NSwgMC45NTE3MDQiLCBcCi0gICAgICAgICAgIjAuMDQ4ODQ3LCAwLjE5ODYxNSwgMC4zMjI4OTYsIDAuNDc5MTQ1LCAwLjYzNjU0MiwgMC43OTM4NzMsIDAuOTUxNDI0IiwgXAotICAgICAgICAgICIwLjA0OTk4NCwgMC4xOTkxNDIsIDAuMzIzMDQ3LCAwLjQ3OTQyNywgMC42MzU5NzQsIDAuNzkzMjIsIDAuOTUxMzc4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkExIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjQ3ODgsIDAuMTQ0OTE5LCAwLjIwNjc5NywgMC4yODQwNzIsIDAuMzYxMTU1LCAwLjQzODMzOSwgMC41MTU0NiIsIFwKLSAgICAgICAgICAiMC4wNzIxNjcsIDAuMTUyMzExLCAwLjIxNDE5OCwgMC4yOTE0MzgsIDAuMzY4NTc4LCAwLjQ0NTc0LCAwLjUyMjgxNCIsIFwKLSAgICAgICAgICAiMC4wODE3ODMsIDAuMTYxOTM0LCAwLjIyMzgwMSwgMC4zMDEwMTQsIDAuMzc4MjEyLCAwLjQ1NTMxOSwgMC41MzI0NDgiLCBcCi0gICAgICAgICAgIjAuMDkxMDkxLCAwLjE3MTIyLCAwLjIzMzEwMSwgMC4zMTAzNDEsIDAuMzg3NDg2LCAwLjQ2NDYzNiwgMC41NDE3NDgiLCBcCi0gICAgICAgICAgIjAuMDk5MzAxLCAwLjE3OTUzOCwgMC4yNDE0MDgsIDAuMzE4NjA0LCAwLjM5NTc1OCwgMC40NzI5NzEsIDAuNTUwMDIxIiwgXAotICAgICAgICAgICIwLjExMDY3NiwgMC4xOTEyNDUsIDAuMjUzMDQ5LCAwLjMzMDIzNSwgMC40MDc0MzQsIDAuNDg0NjMsIDAuNTYxNjY5IiwgXAotICAgICAgICAgICIwLjExODk4OCwgMC4xOTk5MDIsIDAuMjYxNzU0LCAwLjMzODkxLCAwLjQxNjEwNCwgMC40OTMyNzgsIDAuNTcwMzA5Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0NzM0OCwgMC4yMDM1NDMsIDAuMzMyNjA2LCAwLjQ5NDU2NSwgMC42NTcxODYsIDAuODE5Nzc5LCAwLjk4MjQ5MiIsIFwKLSAgICAgICAgICAiMC4wNDczMzQsIDAuMjAzNTM4LCAwLjMzMjU3OSwgMC40OTQ3MiwgMC42NTY0NSwgMC44MTk4MiwgMC45ODI0NTkiLCBcCi0gICAgICAgICAgIjAuMDQ3MzYxLCAwLjIwMzU0NSwgMC4zMzI1NzcsIDAuNDk0NzAxLCAwLjY1NzEzNSwgMC44MTk3NjEsIDAuOTgyNDU1IiwgXAotICAgICAgICAgICIwLjA0Nzk1OSwgMC4yMDM2MywgMC4zMzI1ODIsIDAuNDk0Njc1LCAwLjY1NjE4OCwgMC44MTk3MzcsIDAuOTgyMzczIiwgXAotICAgICAgICAgICIwLjA0OTA2NCwgMC4yMDM4NTMsIDAuMzMyNjY2LCAwLjQ5NDcxMSwgMC42NTY1ODIsIDAuODE5Nzc0LCAwLjk4MjM4NyIsIFwKLSAgICAgICAgICAiMC4wNTEwMjEsIDAuMjA0NDc0LCAwLjMzMjU4NiwgMC40OTQ3MTQsIDAuNjU3MTk2LCAwLjgxOTcxMSwgMC45ODIzOTIiLCBcCi0gICAgICAgICAgIjAuMDUyNjM1LCAwLjIwNTAwMywgMC4zMzMxNSwgMC40OTQ3MzEsIDAuNjU3MTU4LCAwLjgxOTgyNSwgMC45ODIzNzgiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY5MTgzLCAwLjE0ODM2LCAwLjIwOTA2NywgMC4yODQ5MTIsIDAuMzYwNzUyLCAwLjQzNjU4LCAwLjUxMjM2NyIsIFwKLSAgICAgICAgICAiMC4wNzYxNSwgMC4xNTUyNzksIDAuMjE2MDI3LCAwLjI5MTg2NSwgMC4zNjc2OCwgMC40NDM1MSwgMC41MTkzMDciLCBcCi0gICAgICAgICAgIjAuMDgzMjM2LCAwLjE2MjM1OCwgMC4yMjMxMDUsIDAuMjk4OTUyLCAwLjM3NDc2OCwgMC40NTA1OTMsIDAuNTI2Mzk1IiwgXAotICAgICAgICAgICIwLjA4OTUzNywgMC4xNjg3NjIsIDAuMjI5NTA2LCAwLjMwNTM1MSwgMC4zODExNjcsIDAuNDU2OTkyLCAwLjUzMjc5MSIsIFwKLSAgICAgICAgICAiMC4wOTUwMzQsIDAuMTc0NDI1LCAwLjIzNTE1OCwgMC4zMTEwMDcsIDAuMzg2ODIxLCAwLjQ2MjY0NiwgMC41Mzg0NjciLCBcCi0gICAgICAgICAgIjAuMTAyMzA3LCAwLjE4MjIxNywgMC4yNDI5MjEsIDAuMzE4NzUzLCAwLjM5NDYxMywgMC40NzAzNjMsIDAuNTQ2MjAyIiwgXAotICAgICAgICAgICIwLjEwNzY0NiwgMC4xODgwMjEsIDAuMjQ4NzM3LCAwLjMyNDU2NCwgMC40MDAzNDksIDAuNDc2MTgsIDAuNTUxOTQ3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0NTczOCwgMC4xOTcyODUsIDAuMzIyMjA5LCAwLjQ3OTA4MiwgMC42MzYyNzIsIDAuNzkyNjM5LCAwLjk1MTYyMSIsIFwKLSAgICAgICAgICAiMC4wNDU3MjksIDAuMTk3MzY0LCAwLjMyMjE5NSwgMC40NzkwNzQsIDAuNjM2MjY5LCAwLjc5Mzg0MywgMC45NTE1MjUiLCBcCi0gICAgICAgICAgIjAuMDQ1NzQ3LCAwLjE5NzQxNiwgMC4zMjIyMDksIDAuNDc5MDczLCAwLjYzNjI4NiwgMC43OTM4NDUsIDAuOTUxNTM1IiwgXAotICAgICAgICAgICIwLjA0NjI3NywgMC4xOTc0NzUsIDAuMzIyMjY1LCAwLjQ3OTA5MiwgMC42MzYyOTYsIDAuNzkzMzc1LCAwLjk1MTUxMyIsIFwKLSAgICAgICAgICAiMC4wNDcyMDIsIDAuMTk3OTAyLCAwLjMyMjA3OSwgMC40NzkxNjEsIDAuNjM2NDE3LCAwLjc5Mzk1NywgMC45NTE2NDciLCBcCi0gICAgICAgICAgIjAuMDQ4Njk4LCAwLjE5ODQ2NiwgMC4zMjI0NDIsIDAuNDc5MiwgMC42MzY2MjgsIDAuNzkzODMsIDAuOTUxNTA4IiwgXAotICAgICAgICAgICIwLjA1MDEwMywgMC4xOTkwNDEsIDAuMzIzMDE0LCAwLjQ3OTE4OCwgMC42MzY0OSwgMC43OTI4ODksIDAuOTUxMzQ1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTY5NTMsIDAuMTM2MTY2LCAwLjE5Nzg2MywgMC4yNzQ5ODYsIDAuMzUyMTYyLCAwLjQyOTE1OSwgMC41MDYzNzkiLCBcCi0gICAgICAgICAgIjAuMDYzMTcyLCAwLjE0MjQxLCAwLjIwNDEyLCAwLjI4MTE5MiwgMC4zNTgzNTIsIDAuNDM1NDgsIDAuNTEyNTc2IiwgXAotICAgICAgICAgICIwLjA3MDU2LCAwLjE0OTc5NSwgMC4yMTE1MDEsIDAuMjg4NTg1LCAwLjM2NTc2LCAwLjQ0Mjg4LCAwLjUxOTk4IiwgXAotICAgICAgICAgICIwLjA3NzAwNywgMC4xNTYzNzgsIDAuMjE4MDc3LCAwLjI5NTE0NCwgMC4zNzIzMywgMC40NDk0LCAwLjUyNjU0MyIsIFwKLSAgICAgICAgICAiMC4wODI0ODYsIDAuMTYyMDkyLCAwLjIyMzc4NSwgMC4zMDA4ODIsIDAuMzc4MDczLCAwLjQ1NTA3NCwgMC41MzIzNDMiLCBcCi0gICAgICAgICAgIjAuMDg5OTE3LCAwLjE3MDAxNCwgMC4yMzE2ODYsIDAuMzA4NzU4LCAwLjM4NTg1MywgMC40NjI5NTcsIDAuNTQwMDQyIiwgXAotICAgICAgICAgICIwLjA5NTQ4NiwgMC4xNzU5NTcsIDAuMjM3NjIyLCAwLjMxNDY3NywgMC4zOTE4ODksIDAuNDY4ODQzLCAwLjU0NTk3MiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDU1NTYsIDAuMjAyNDgxLCAwLjMzMTc1NywgMC40OTQwOTQsIDAuNjU1Njc5LCAwLjgxOTQ4MiwgMC45ODAzOTEiLCBcCi0gICAgICAgICAgIjAuMDQ1NTQ2LCAwLjIwMjQyMSwgMC4zMzE3NTYsIDAuNDkzMzU5LCAwLjY1NjYwMiwgMC44MTg1NDksIDAuOTgwNDU2IiwgXAotICAgICAgICAgICIwLjA0NTgzNCwgMC4yMDI0NTQsIDAuMzMxNSwgMC40OTM4NzYsIDAuNjU2NjA1LCAwLjgxODYwOCwgMC45ODA5NzQiLCBcCi0gICAgICAgICAgIjAuMDQ2Njc0LCAwLjIwMjU0NywgMC4zMzE4MzEsIDAuNDkzOTY0LCAwLjY1NjYzMSwgMC44MTg1MDIsIDAuOTgwNDYiLCBcCi0gICAgICAgICAgIjAuMDQ3ODA4LCAwLjIwMzAzMSwgMC4zMzE1OTIsIDAuNDk0MDY2LCAwLjY1NTQ4NCwgMC44MTg4MTYsIDAuOTgwOTA3IiwgXAotICAgICAgICAgICIwLjA0OTMzNCwgMC4yMDM1NCwgMC4zMzIxMSwgMC40OTQxMjIsIDAuNjU2NzA2LCAwLjgxOTQwNiwgMC45ODE1MTciLCBcCi0gICAgICAgICAgIjAuMDUwNzE4LCAwLjIwNDAyOSwgMC4zMzIzNzIsIDAuNDk0MTMxLCAwLjY1NjYyOSwgMC44MTk0MSwgMC45ODIxOTMiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDYzMzQ4LCAwLjE0MjY4MSwgMC4yMDM0NjcsIDAuMjc5MzQxLCAwLjM1NTE3MSwgMC40MzA5OTYsIDAuNTA2ODUiLCBcCi0gICAgICAgICAgIjAuMDcwODc1LCAwLjE1MDE4MSwgMC4yMTA5NjgsIDAuMjg2ODQyLCAwLjM2MjY3MywgMC40Mzg0ODMsIDAuNTE0MzI5IiwgXAotICAgICAgICAgICIwLjA4MDI1LCAwLjE1OTU0MSwgMC4yMjAzMjMsIDAuMjk2MTkxLCAwLjM3MjAyNSwgMC40NDc4NjUsIDAuNTIzNjczIiwgXAotICAgICAgICAgICIwLjA4OTIwMSwgMC4xNjgzNDIsIDAuMjI5MTIzLCAwLjMwNDk5NCwgMC4zODA4NTYsIDAuNDU2NzU2LCAwLjUzMjU3IiwgXAotICAgICAgICAgICIwLjA5NjcyNCwgMC4xNzYyMzksIDAuMjM3MDAyLCAwLjMxMjg2OSwgMC4zODg2ODgsIDAuNDY0NTEyLCAwLjU0MDM2IiwgXAotICAgICAgICAgICIwLjEwNzQxOSwgMC4xODcxOTgsIDAuMjQ3OTQ5LCAwLjMyMzc4NSwgMC4zOTk2MTYsIDAuNDc1NDI2LCAwLjU1MTI0NCIsIFwKLSAgICAgICAgICAiMC4xMTUxMjgsIDAuMTk1MTI4LCAwLjI1NTg3OSwgMC4zMzE3MDcsIDAuNDA3NTI0LCAwLjQ4MzM1MywgMC41NTkxNzgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQ2MDg0LCAwLjE5NzY5NiwgMC4zMjI0MTIsIDAuNDc5MjYyLCAwLjYzNjM4OSwgMC43OTM5NCwgMC45NTE2MDQiLCBcCi0gICAgICAgICAgIjAuMDQ1OTg4LCAwLjE5NzUzOSwgMC4zMjI0MDEsIDAuNDc5MjQyLCAwLjYzNjI1NiwgMC43OTMzMTQsIDAuOTUxNzA4IiwgXAotICAgICAgICAgICIwLjA0NjE0MiwgMC4xOTc1ODcsIDAuMzIyMjE2LCAwLjQ3OTI0NCwgMC42MzY0NCwgMC43OTMyNjgsIDAuOTUxNjUzIiwgXAotICAgICAgICAgICIwLjA0NjgyNiwgMC4xOTc5MDUsIDAuMzIyNDg5LCAwLjQ3OTI4MiwgMC42MzY2ODUsIDAuNzkzODg0LCAwLjk1MTU0NyIsIFwKLSAgICAgICAgICAiMC4wNDc3OTcsIDAuMTk4MTA0LCAwLjMyMjU5NiwgMC40NzkzNDMsIDAuNjM2NTQsIDAuNzkzMjMxLCAwLjk1MTczOSIsIFwKLSAgICAgICAgICAiMC4wNDkxMzQsIDAuMTk4NjIsIDAuMzIyNDg1LCAwLjQ3OTM2OCwgMC42MzY1NDgsIDAuNzkzMTc0LCAwLjk1MTI1MSIsIFwKLSAgICAgICAgICAiMC4wNTA0NTQsIDAuMTk5MTQ5LCAwLjMyMzEzNiwgMC40Nzk0MDcsIDAuNjM2NjcxLCAwLjc5Mzk2NCwgMC45NTE0NDUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjEiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1NTAyNiwgMC4xMzQyNjQsIDAuMTk1OTc0LCAwLjI3MzA1LCAwLjM1MDIwMiwgMC40MjczNDksIDAuNTA0NDI5IiwgXAotICAgICAgICAgICIwLjA2MjQ2LCAwLjE0MTcxMywgMC4yMDM0MjQsIDAuMjgwNDk5LCAwLjM1NzY1NywgMC40MzQ4MDUsIDAuNTExODgyIiwgXAotICAgICAgICAgICIwLjA3MTg3NiwgMC4xNTExMjksIDAuMjEyODI0LCAwLjI4OTkwOCwgMC4zNjcwOTQsIDAuNDQ0MTM0LCAwLjUyMTMyNSIsIFwKLSAgICAgICAgICAiMC4wODAwMjQsIDAuMTU5Mzk3LCAwLjIyMTA5NiwgMC4yOTgxNjMsIDAuMzc1MzUzLCAwLjQ1MjQxLCAwLjUyOTU2NyIsIFwKLSAgICAgICAgICAiMC4wODcxOTIsIDAuMTY2Nzg5LCAwLjIyODQ1OSwgMC4zMDU1NDgsIDAuMzgyNzY3LCAwLjQ1OTczNSwgMC41MzcxNDUiLCBcCi0gICAgICAgICAgIjAuMDk2MiwgMC4xNzYyNzgsIDAuMjM3OTExLCAwLjMxNDk2NywgMC4zOTIwNDcsIDAuNDY5MjMxLCAwLjU0NjMwNCIsIFwKLSAgICAgICAgICAiMC4xMDMwODcsIDAuMTgzNDgyLCAwLjI0NTA5LCAwLjMyMjE0NSwgMC4zOTkxOTgsIDAuNDc2NDY4LCAwLjU1MzQwNSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDU1NDIsIDAuMjAyNDIsIDAuMzMxNzU5LCAwLjQ5MzM4OSwgMC42NTY2NTksIDAuODE4NDY2LCAwLjk4MDM4NSIsIFwKLSAgICAgICAgICAiMC4wNDU1NSwgMC4yMDIzOTYsIDAuMzMxNzI4LCAwLjQ5MzkxOSwgMC42NTY2NjQsIDAuODE4NDY5LCAwLjk4MDQ2NSIsIFwKLSAgICAgICAgICAiMC4wNDU5MjgsIDAuMjAyNDQ4LCAwLjMzMTUxMSwgMC40OTM5MDQsIDAuNjU2NjA4LCAwLjgxODI1OSwgMC45ODA5MDkiLCBcCi0gICAgICAgICAgIjAuMDQ3MTAyLCAwLjIwMjcwNCwgMC4zMzE4MiwgMC40OTM5NzEsIDAuNjU2NjI4LCAwLjgxODQ0NiwgMC45ODE3NDgiLCBcCi0gICAgICAgICAgIjAuMDQ4NTMsIDAuMjAzMDg1LCAwLjMzMTg5NywgMC40OTM5NjksIDAuNjU1NjUsIDAuODE5MzcyLCAwLjk4MTI0NSIsIFwKLSAgICAgICAgICAiMC4wNTA1OTUsIDAuMjAzNjc2LCAwLjMzMjE3NSwgMC40OTQxNzEsIDAuNjU1OTA0LCAwLjgxODYwMywgMC45ODExNDEiLCBcCi0gICAgICAgICAgIjAuMDUyNDI2LCAwLjIwNDI3LCAwLjMzMjQ0MywgMC40OTQyOCwgMC42NTY2MzIsIDAuODE4NDY4LCAwLjk4MjE2OCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjAzNjcsIDAuMTM5NDI0LCAwLjIwMDE1MiwgMC4yNzU5ODksIDAuMzUxNzg1LCAwLjQyNzYwMiwgMC41MDM0MzMiLCBcCi0gICAgICAgICAgIjAuMDY3Njk0LCAwLjE0NjgyNiwgMC4yMDc1NDUsIDAuMjgzMzksIDAuMzU5MjAxLCAwLjQzNTAyNSwgMC41MTA4MTYiLCBcCi0gICAgICAgICAgIjAuMDc3MDM0LCAwLjE1NjEsIDAuMjE2ODI5LCAwLjI5MjY2NiwgMC4zNjg0NzgsIDAuNDQ0Mjk5LCAwLjUyMDA5NSIsIFwKLSAgICAgICAgICAiMC4wODU1NzgsIDAuMTY0NzA2LCAwLjIyNTQyNiwgMC4zMDEyNjUsIDAuMzc3MDc0LCAwLjQ1MjkwMSwgMC41Mjg2ODMiLCBcCi0gICAgICAgICAgIjAuMDkyOTc4LCAwLjE3MjE4NiwgMC4yMzI4OTYsIDAuMzA4NzIyLCAwLjM4NDUxMywgMC40NjAzMjIsIDAuNTM2MTUzIiwgXAotICAgICAgICAgICIwLjEwMjUzNCwgMC4xODIxNDEsIDAuMjQyODE3LCAwLjMxODYyLCAwLjM5NDQ0NCwgMC40NzAyMTEsIDAuNTQ2MDI5IiwgXAotICAgICAgICAgICIwLjEwOTgzLCAwLjE4OTUzOSwgMC4yNTAyMjQsIDAuMzI2MTQzLCAwLjQwMTgyLCAwLjQ3Nzc1NSwgMC41NTMzODIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQ1NjIyLCAwLjE5NzI4MiwgMC4zMjIxNDcsIDAuNDc5MDI4LCAwLjYzNjI5LCAwLjc5MzI3LCAwLjk1MTU3MSIsIFwKLSAgICAgICAgICAiMC4wNDU1ODQsIDAuMTk3Mjc0LCAwLjMyMTgyMiwgMC40NzkwMDksIDAuNjM2MjUyLCAwLjc5MzgzNywgMC45NTE0NjEiLCBcCi0gICAgICAgICAgIjAuMDQ1NzE5LCAwLjE5NzMzOSwgMC4zMjIxNTcsIDAuNDc5MDA3LCAwLjYzNjI1NSwgMC43OTM4MzEsIDAuOTUxNSIsIFwKLSAgICAgICAgICAiMC4wNDY1MjYsIDAuMTk3NTkxLCAwLjMyMjE4NiwgMC40NzkwNDUsIDAuNjM2MjI1LCAwLjc5Mzg2OCwgMC45NTE0MzciLCBcCi0gICAgICAgICAgIjAuMDQ3NTMxLCAwLjE5NzkxNywgMC4zMjIzOTgsIDAuNDc5MTQyLCAwLjYzNjM0LCAwLjc5Mzc3OSwgMC45NTE1OCIsIFwKLSAgICAgICAgICAiMC4wNDkwNDMsIDAuMTk4NDcyLCAwLjMyMjQyNiwgMC40NzkyLCAwLjYzNTgyNCwgMC43OTM3NSwgMC45NTEwNDQiLCBcCi0gICAgICAgICAgIjAuMDUwNTE3LCAwLjE5ODk1MSwgMC4zMjI2NiwgMC40Nzk0MDEsIDAuNjM2NzY3LCAwLjc5MzcsIDAuOTUxNTMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzNTA1LCAwLjAwMzU1MSwgMC4wMDM1NTgsIDAuMDAzNTY1LCAwLjAwMzU2OCwgMC4wMDM1NjgsIDAuMDAzNTcxIiwgXAotICAgICAgICAgICIwLjAwMzQ2MSwgMC4wMDM1MTksIDAuMDAzNTMsIDAuMDAzNTM2LCAwLjAwMzUzOSwgMC4wMDM1NDEsIDAuMDAzNTQzIiwgXAotICAgICAgICAgICIwLjAwMzQ4NiwgMC4wMDM1MjQsIDAuMDAzNTM1LCAwLjAwMzU0MiwgMC4wMDM1NDUsIDAuMDAzNTQ3LCAwLjAwMzU0OSIsIFwKLSAgICAgICAgICAiMC4wMDM1MjIsIDAuMDAzNTU2LCAwLjAwMzU2NywgMC4wMDM1NzQsIDAuMDAzNTc4LCAwLjAwMzU4LCAwLjAwMzU4MSIsIFwKLSAgICAgICAgICAiMC4wMDM1OTMsIDAuMDAzNjAxLCAwLjAwMzYxNCwgMC4wMDM2MjEsIDAuMDAzNjI0LCAwLjAwMzYyOCwgMC4wMDM2MjkiLCBcCi0gICAgICAgICAgIjAuMDAzODE1LCAwLjAwMzczOCwgMC4wMDM3MzgsIDAuMDAzNzM5LCAwLjAwMzc0MSwgMC4wMDM3NDEsIDAuMDAzNzQyIiwgXAotICAgICAgICAgICIwLjAwMzkzNywgMC4wMDM4NDYsIDAuMDAzODQ0LCAwLjAwMzg0NywgMC4wMDM4NSwgMC4wMDM4NSwgMC4wMDM4NTEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDU4ODgsIDAuMDA1OTU2LCAwLjAwNTk2OSwgMC4wMDU5NzYsIDAuMDA1OTgsIDAuMDA1OTgyLCAwLjAwNTk4NCIsIFwKLSAgICAgICAgICAiMC4wMDU4NjUsIDAuMDA1OTM4LCAwLjAwNTk1MiwgMC4wMDU5NiwgMC4wMDU5NjQsIDAuMDA1OTY2LCAwLjAwNTk2OCIsIFwKLSAgICAgICAgICAiMC4wMDU4NiwgMC4wMDU5MjksIDAuMDA1OTQ0LCAwLjAwNTk1MywgMC4wMDU5NTgsIDAuMDA1OTYxLCAwLjAwNTk2MiIsIFwKLSAgICAgICAgICAiMC4wMDU4NzksIDAuMDA1OTM1LCAwLjAwNTk0OSwgMC4wMDU5NTksIDAuMDA1OTYzLCAwLjAwNTk2NiwgMC4wMDU5NjgiLCBcCi0gICAgICAgICAgIjAuMDA1OTIsIDAuMDA1OTU5LCAwLjAwNTk3MywgMC4wMDU5ODEsIDAuMDA1OTg2LCAwLjAwNTk4OSwgMC4wMDU5OTEiLCBcCi0gICAgICAgICAgIjAuMDA2MDEzLCAwLjAwNjAxMywgMC4wMDYwMjQsIDAuMDA2MDMyLCAwLjAwNjAzNywgMC4wMDYwMzksIDAuMDA2MDQxIiwgXAotICAgICAgICAgICIwLjAwNjEyMiwgMC4wMDYwODMsIDAuMDA2MDkzLCAwLjAwNjEwMSwgMC4wMDYxMDQsIDAuMDA2MTA4LCAwLjAwNjEwOSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkExIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDM1MTEsIDAuMDAzNTUzLCAwLjAwMzU2MSwgMC4wMDM1NjIsIDAuMDAzNTY4LCAwLjAwMzU2OSwgMC4wMDM1NjciLCBcCi0gICAgICAgICAgIjAuMDAzNDczLCAwLjAwMzUyOCwgMC4wMDM1MzgsIDAuMDAzNTQ3LCAwLjAwMzU1MSwgMC4wMDM1NTUsIDAuMDAzNTU1IiwgXAotICAgICAgICAgICIwLjAwMzUwOCwgMC4wMDM1NTEsIDAuMDAzNTYzLCAwLjAwMzU3MiwgMC4wMDM1NzYsIDAuMDAzNTc5LCAwLjAwMzU4IiwgXAotICAgICAgICAgICIwLjAwMzYwOCwgMC4wMDM2MTUsIDAuMDAzNjI0LCAwLjAwMzYzMiwgMC4wMDM2MzcsIDAuMDAzNjQsIDAuMDAzNjQiLCBcCi0gICAgICAgICAgIjAuMDAzNzM5LCAwLjAwMzcwMSwgMC4wMDM3MDcsIDAuMDAzNzEzLCAwLjAwMzcxNiwgMC4wMDM3MTcsIDAuMDAzNzE3IiwgXAotICAgICAgICAgICIwLjAwMzg4NSwgMC4wMDM4MjUsIDAuMDAzODMzLCAwLjAwMzgzOSwgMC4wMDM4NDQsIDAuMDAzODQ4LCAwLjAwMzg0NyIsIFwKLSAgICAgICAgICAiMC4wMDQwNzcsIDAuMDAzOTU4LCAwLjAwMzk1NiwgMC4wMDM5NTgsIDAuMDAzOTYxLCAwLjAwMzk2MywgMC4wMDM5NjIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDU1ODUsIDAuMDA1NjU5LCAwLjAwNTY3MSwgMC4wMDU2NzgsIDAuMDA1NjgyLCAwLjAwNTY4NCwgMC4wMDU2ODUiLCBcCi0gICAgICAgICAgIjAuMDA1NTUxLCAwLjAwNTYyOCwgMC4wMDU2NDIsIDAuMDA1NjQ5LCAwLjAwNTY1MywgMC4wMDU2NTUsIDAuMDA1NjU3IiwgXAotICAgICAgICAgICIwLjAwNTU0NiwgMC4wMDU2MTMsIDAuMDA1NjI3LCAwLjAwNTYzNSwgMC4wMDU2MzksIDAuMDA1NjQyLCAwLjAwNTY0NCIsIFwKLSAgICAgICAgICAiMC4wMDU1NjMsIDAuMDA1NjE3LCAwLjAwNTYzMiwgMC4wMDU2NCwgMC4wMDU2NDQsIDAuMDA1NjQ3LCAwLjAwNTY0OSIsIFwKLSAgICAgICAgICAiMC4wMDU1OSwgMC4wMDU2MzUsIDAuMDA1NjUsIDAuMDA1NjU4LCAwLjAwNTY2MywgMC4wMDU2NjYsIDAuMDA1NjY4IiwgXAotICAgICAgICAgICIwLjAwNTY3NiwgMC4wMDU2OSwgMC4wMDU3MDIsIDAuMDA1NzEsIDAuMDA1NzE0LCAwLjAwNTcxNywgMC4wMDU3MTkiLCBcCi0gICAgICAgICAgIjAuMDA1Nzc2LCAwLjAwNTc2MSwgMC4wMDU3NywgMC4wMDU3NzcsIDAuMDA1NzgxLCAwLjAwNTc4MywgMC4wMDU3ODUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyODYyLCAwLjAwMjg3MiwgMC4wMDI4NzQsIDAuMDAyODczLCAwLjAwMjg3NCwgMC4wMDI4NzQsIDAuMDAyODczIiwgXAotICAgICAgICAgICIwLjAwMjgxOSwgMC4wMDI4NDIsIDAuMDAyODQ0LCAwLjAwMjg0NSwgMC4wMDI4NDYsIDAuMDAyODQ2LCAwLjAwMjg0NyIsIFwKLSAgICAgICAgICAiMC4wMDI4MzcsIDAuMDAyODUsIDAuMDAyODUzLCAwLjAwMjg1NSwgMC4wMDI4NTUsIDAuMDAyODU1LCAwLjAwMjg1NSIsIFwKLSAgICAgICAgICAiMC4wMDI4ODYsIDAuMDAyODg3LCAwLjAwMjg4NywgMC4wMDI4ODksIDAuMDAyODksIDAuMDAyODksIDAuMDAyODkiLCBcCi0gICAgICAgICAgIjAuMDAyOTcsIDAuMDAyOTQzLCAwLjAwMjk0MywgMC4wMDI5NDMsIDAuMDAyOTQyLCAwLjAwMjk0MywgMC4wMDI5NDIiLCBcCi0gICAgICAgICAgIjAuMDAzMDg1LCAwLjAwMzA1MywgMC4wMDMwNTQsIDAuMDAzMDU0LCAwLjAwMzA1NiwgMC4wMDMwNTYsIDAuMDAzMDU2IiwgXAotICAgICAgICAgICIwLjAwMzI5MywgMC4wMDMxOTQsIDAuMDAzMTg2LCAwLjAwMzE4MiwgMC4wMDMxNzksIDAuMDAzMTc4LCAwLjAwMzE3NyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDk5LCAwLjAwNTA2LCAwLjAwNTA3MywgMC4wMDUwODEsIDAuMDA1MDg0LCAwLjAwNTA4NywgMC4wMDUwODgiLCBcCi0gICAgICAgICAgIjAuMDA0OTczLCAwLjAwNTA0OCwgMC4wMDUwNjMsIDAuMDA1MDcxLCAwLjAwNTA3NiwgMC4wMDUwNzksIDAuMDA1MDgxIiwgXAotICAgICAgICAgICIwLjAwNTAzMSwgMC4wMDUwODUsIDAuMDA1MTAxLCAwLjAwNTExMSwgMC4wMDUxMTcsIDAuMDA1MTIsIDAuMDA1MTIyIiwgXAotICAgICAgICAgICIwLjAwNTEyNywgMC4wMDUxNDUsIDAuMDA1MTU5LCAwLjAwNTE2OCwgMC4wMDUxNzQsIDAuMDA1MTc3LCAwLjAwNTE4IiwgXAotICAgICAgICAgICIwLjAwNTI0MSwgMC4wMDUyMjcsIDAuMDA1MjM4LCAwLjAwNTI0NiwgMC4wMDUyNSwgMC4wMDUyNTMsIDAuMDA1MjU1IiwgXAotICAgICAgICAgICIwLjAwNTM5MiwgMC4wMDUzMzksIDAuMDA1MzQ2LCAwLjAwNTM1NCwgMC4wMDUzNTksIDAuMDA1MzYyLCAwLjAwNTM2NCIsIFwKLSAgICAgICAgICAiMC4wMDU1ODIsIDAuMDA1NDc4LCAwLjAwNTQ4LCAwLjAwNTQ4NSwgMC4wMDU0ODgsIDAuMDA1NDksIDAuMDA1NDkxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjg2LCAwLjAwMjg4NCwgMC4wMDI4ODcsIDAuMDAyODksIDAuMDAyODksIDAuMDAyODksIDAuMDAyODkiLCBcCi0gICAgICAgICAgIjAuMDAyODQyLCAwLjAwMjg3NCwgMC4wMDI4NzcsIDAuMDAyODgyLCAwLjAwMjg4NCwgMC4wMDI4ODUsIDAuMDAyODg1IiwgXAotICAgICAgICAgICIwLjAwMjg5LCAwLjAwMjkwNSwgMC4wMDI5MTEsIDAuMDAyOTE2LCAwLjAwMjkxNSwgMC4wMDI5MTcsIDAuMDAyOTE3IiwgXAotICAgICAgICAgICIwLjAwMjk5OSwgMC4wMDI5NzgsIDAuMDAyOTgyLCAwLjAwMjk4NSwgMC4wMDI5ODcsIDAuMDAyOTg4LCAwLjAwMjk4OCIsIFwKLSAgICAgICAgICAiMC4wMDMwODEsIDAuMDAzMDQ0LCAwLjAwMzA1LCAwLjAwMzA0OCwgMC4wMDMwNDksIDAuMDAzMDQ5LCAwLjAwMzA1IiwgXAotICAgICAgICAgICIwLjAwMzI5MSwgMC4wMDMxOTgsIDAuMDAzMTkzLCAwLjAwMzE5MywgMC4wMDMxOTIsIDAuMDAzMTksIDAuMDAzMTkiLCBcCi0gICAgICAgICAgIjAuMDAzNDY2LCAwLjAwMzM0OCwgMC4wMDMzMzcsIDAuMDAzMzMzLCAwLjAwMzMzLCAwLjAwMzMyOCwgMC4wMDMzMjgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQ2MDYsIDAuMDA0Njc5LCAwLjAwNDY5MiwgMC4wMDQ3LCAwLjAwNDcwMywgMC4wMDQ3MDYsIDAuMDA0NzA3IiwgXAotICAgICAgICAgICIwLjAwNDU4MiwgMC4wMDQ2NjMsIDAuMDA0Njc3LCAwLjAwNDY4NSwgMC4wMDQ2OSwgMC4wMDQ2OTIsIDAuMDA0Njk0IiwgXAotICAgICAgICAgICIwLjAwNDYyOCwgMC4wMDQ2OTEsIDAuMDA0NzA4LCAwLjAwNDcxNywgMC4wMDQ3MjIsIDAuMDA0NzI1LCAwLjAwNDcyNyIsIFwKLSAgICAgICAgICAiMC4wMDQ3MywgMC4wMDQ3NTEsIDAuMDA0NzY1LCAwLjAwNDc3NCwgMC4wMDQ3NzksIDAuMDA0NzgyLCAwLjAwNDc4NCIsIFwKLSAgICAgICAgICAiMC4wMDQ4MDMsIDAuMDA0ODE5LCAwLjAwNDgzLCAwLjAwNDgzNywgMC4wMDQ4NDIsIDAuMDA0ODQ1LCAwLjAwNDg0NyIsIFwKLSAgICAgICAgICAiMC4wMDUwMTIsIDAuMDA0OTQ3LCAwLjAwNDk1MiwgMC4wMDQ5NTcsIDAuMDA0OTYsIDAuMDA0OTYzLCAwLjAwNDk2NCIsIFwKLSAgICAgICAgICAiMC4wMDUxNywgMC4wMDUwOTIsIDAuMDA1MDg4LCAwLjAwNTA3NCwgMC4wMDUwODgsIDAuMDA1MDc5LCAwLjAwNTA4OSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogQU8yMlhMICoKLSAqIC0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoQU8yMlhMKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMjg2NjE2OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjQ3OTEzOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDY0NjQ0OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDY0NzkxMzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyOTYsIDAuMDAwMjk2LCAwLjAwMDI5NiwgMC4wMDAyOTYsIDAuMDAwMjk2LCAwLjAwMDI5NiwgMC4wMDAyOTYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAzMTYsIDAuMDAwMzA1LCAwLjAwMDMsIDAuMDAwMjk5LCAwLjAwMDI5OCwgMC4wMDAyOTcsIDAuMDAwMjk4Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihBMSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjgyOTI2OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDY4MDY1OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDY4MjkyNjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxMjYsIDAuMDAwMTI1LCAwLjAwMDEyNSwgMC4wMDAxMjUsIDAuMDAwMTI1LCAwLjAwMDEyNSwgMC4wMDAxMjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAzMzcsIDAuMDAwMzM4LCAwLjAwMDMzOCwgMC4wMDAzMzcsIDAuMDAwMzM4LCAwLjAwMDMzOCwgMC4wMDAzMzgiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2OTkxMjg7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjk5MTI4OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDY5ODQyNTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyOTcsIDAuMDAwMjk3LCAwLjAwMDI5NiwgMC4wMDAyOTYsIDAuMDAwMjk2LCAwLjAwMDI5NiwgMC4wMDAyOTYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAzMTYsIDAuMDAwMzA1LCAwLjAwMDMwMSwgMC4wMDAyOTksIDAuMDAwMjk4LCAwLjAwMDI5OCwgMC4wMDAyOTgiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIxKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA3MTEyODQ7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNzExMjU1OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDcxMTI4NDsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxMzUsIDAuMDAwMTM1LCAwLjAwMDEzNSwgMC4wMDAxMzUsIDAuMDAwMTM1LCAwLjAwMDEzNSwgMC4wMDAxMzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAzMzcsIDAuMDAwMzM3LCAwLjAwMDMzNywgMC4wMDAzMzcsIDAuMDAwMzM3LCAwLjAwMDMzNywgMC4wMDAzMzciKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4xOTc3Mzc7Ci0gICAgZnVuY3Rpb24gOiAiKChBMCBBMSkrKEIwIEIxKSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTE4NDIsIDAuMTAyNDMzLCAwLjE5NzQzNywgMC4zNTU0NDUsIDAuNTEzNDQ4LCAwLjg4MTcsIDEuMDkyMTYiLCBcCi0gICAgICAgICAgIjAuMDk3OTY0LCAwLjEwODU1NiwgMC4yMDM1NzUsIDAuMzYxNjI4LCAwLjUxOTQ4NCwgMC44ODc4NTEsIDEuMDk4MjgiLCBcCi0gICAgICAgICAgIjAuMTA1MzAxLCAwLjExNTg5OSwgMC4yMTA5NDgsIDAuMzY4OTIyLCAwLjUyNjkzNCwgMC44OTUxNzEsIDEuMTA1NjMiLCBcCi0gICAgICAgICAgIjAuMTExNzgsIDAuMTIyMzYzLCAwLjIxNzQwMSwgMC4zNzU0MDksIDAuNTMzMzYsIDAuOTAxNzEyLCAxLjExMjEiLCBcCi0gICAgICAgICAgIjAuMTE3MzQ2LCAwLjEyNzk2NywgMC4yMjMwMDYsIDAuMzgxMDAzLCAwLjUzODg4MywgMC45MDcyNDEsIDEuMTE3NzMiLCBcCi0gICAgICAgICAgIjAuMTI1MDE0LCAwLjEzNTY0MSwgMC4yMzA2NDEsIDAuMzg4NjY0LCAwLjU0NjYxNCwgMC45MTQ4ODIsIDEuMTI1MzUiLCBcCi0gICAgICAgICAgIjAuMTMwODU3LCAwLjE0MTQ4LCAwLjIzNjQ5OCwgMC4zOTQ1MTQsIDAuNTUyNTAyLCAwLjkyMDc0OSwgMS4xMzExOSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTkwMjIsIDAuMTQwNzkxLCAwLjMzOTIxMywgMC42NzE0NywgMS4wMDQwMiwgMS43Nzk4NiwgMi4yMjMzMiIsIFwKLSAgICAgICAgICAiMC4xMTkwNTEsIDAuMTQwOCwgMC4zMzkxNzgsIDAuNjcxNDM0LCAxLjAwMzE1LCAxLjc3OTc3LCAyLjIyMzE1IiwgXAotICAgICAgICAgICIwLjExOTE0NSwgMC4xNDA4NjcsIDAuMzM5MTkxLCAwLjY3MTQ0MiwgMS4wMDM5MSwgMS43Nzg0NCwgMi4yMjMwNCIsIFwKLSAgICAgICAgICAiMC4xMTkzOTMsIDAuMTQxMDgzLCAwLjMzOTIxMywgMC42NzEzOTYsIDEuMDAzODYsIDEuNzc5NzYsIDIuMjIyOTciLCBcCi0gICAgICAgICAgIjAuMTE5NzcyLCAwLjE0MTM4MywgMC4zMzkyNzIsIDAuNjcxMzkzLCAxLjAwMzgyLCAxLjc3ODM2LCAyLjIyMzAyIiwgXAotICAgICAgICAgICIwLjEyMDI4MiwgMC4xNDE3NzgsIDAuMzM5MjQ3LCAwLjY3MDk1MywgMS4wMDM4LCAxLjc3OTYxLCAyLjIyMzA3IiwgXAotICAgICAgICAgICIwLjEyMDk2MSwgMC4xNDIyNjcsIDAuMzM5NDM2LCAwLjY3MTQzLCAxLjAwMzg1LCAxLjc3OTYzLCAyLjIyMjc5Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5MTI1MywgMC4xMDA5NzUsIDAuMTg3OTkxLCAwLjMzMjgyNSwgMC40Nzc1MDUsIDAuODE1MTM4LCAxLjAwODA2IiwgXAotICAgICAgICAgICIwLjA5ODIyOSwgMC4xMDc5NTIsIDAuMTk0OTcxLCAwLjMzOTgwMiwgMC40ODQ0ODgsIDAuODIyMTIxLCAxLjAxNTA1IiwgXAotICAgICAgICAgICIwLjEwNTIwNSwgMC4xMTQ5MjgsIDAuMjAxOTU0LCAwLjM0Njc4NCwgMC40OTE0NjIsIDAuODI5MTE1LCAxLjAyMjA1IiwgXAotICAgICAgICAgICIwLjExMDk5OSwgMC4xMjA3MzEsIDAuMjA3NzYzLCAwLjM1MjU1OCwgMC40OTcyNywgMC44MzQ5MDYsIDEuMDI3ODQiLCBcCi0gICAgICAgICAgIjAuMTE1ODM3LCAwLjEyNTU2MiwgMC4yMTI1OTMsIDAuMzU3Mzk0LCAwLjUwMjEzNCwgMC44Mzk3NDIsIDEuMDMyNjYiLCBcCi0gICAgICAgICAgIjAuMTIyMTU3LCAwLjEzMTkxNywgMC4yMTg5OTIsIDAuMzYzNzc5LCAwLjUwODUyLCAwLjg0NjI1OSwgMS4wMzkxNSIsIFwKLSAgICAgICAgICAiMC4xMjY4NiwgMC4xMzY2NTMsIDAuMjIzNzU2LCAwLjM2ODU5NSwgMC41MTMzMTYsIDAuODUwOTUxLCAxLjA0NDAyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwNzA3MSwgMC4xMjYzMywgMC4zMDM0NTgsIDAuNjAwNTExLCAwLjg5NzgxOSwgMS41OTE2OSwgMS45ODgyNiIsIFwKLSAgICAgICAgICAiMC4xMDcwNjYsIDAuMTI2MzU5LCAwLjMwMzQ1MiwgMC42MDA1MjYsIDAuODk3NjU0LCAxLjU5MjAzLCAxLjk4ODI2IiwgXAotICAgICAgICAgICIwLjEwNzE0OSwgMC4xMjY1MTcsIDAuMzAzNDU1LCAwLjYwMDUzNywgMC44OTc4LCAxLjU5MTU2LCAxLjk4ODUxIiwgXAotICAgICAgICAgICIwLjEwNzUyMywgMC4xMjY4NjgsIDAuMzAzNTc5LCAwLjYwMDExNiwgMC44OTc4NTQsIDEuNTkxNjQsIDEuOTg3OTMiLCBcCi0gICAgICAgICAgIjAuMTA4MDE0LCAwLjEyNzIyNiwgMC4zMDM0NzYsIDAuNjAwMTQxLCAwLjg5NzkzLCAxLjU5MTc5LCAxLjk4ODkxIiwgXAotICAgICAgICAgICIwLjEwODY4OCwgMC4xMjc4MjgsIDAuMzAzNTg0LCAwLjYwMDQyLCAwLjg5NzgyOCwgMS41OTE3MSwgMS45ODg4NSIsIFwKLSAgICAgICAgICAiMC4xMDk2NTEsIDAuMTI4NTEyLCAwLjMwMzc4LCAwLjU5OTk0LCAwLjg5NzY1MiwgMS41OTE0MSwgMS45ODg0NyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDkwMjE0LCAwLjEwMDc5NiwgMC4xOTU4LCAwLjM1MzgxLCAwLjUxMTcxMywgMC44ODAwNzksIDEuMDkwNTMiLCBcCi0gICAgICAgICAgIjAuMDk3NTg5LCAwLjEwODE4NSwgMC4yMDMyMDEsIDAuMzYxMjEzLCAwLjUxOTIzNSwgMC44ODc1MDYsIDEuMDk3OTIiLCBcCi0gICAgICAgICAgIjAuMTA3MDUsIDAuMTE3NjM4LCAwLjIxMjY1MiwgMC4zNzA2NjUsIDAuNTI4NjMsIDAuODk3LCAxLjEwNzM4IiwgXAotICAgICAgICAgICIwLjExNTA5OSwgMC4xMjU2OSwgMC4yMjA3MDYsIDAuMzc4NzE4LCAwLjUzNjYzOCwgMC45MDUwNjksIDEuMTE1NDIiLCBcCi0gICAgICAgICAgIjAuMTIyMTM0LCAwLjEzMjczMiwgMC4yMjc3MTEsIDAuMzg1NzY5LCAwLjU0MzU5NywgMC45MTE5NTksIDEuMTIyNDIiLCBcCi0gICAgICAgICAgIjAuMTMxNDI0LCAwLjE0MjA0OCwgMC4yMzcwMzMsIDAuMzk1MDU1LCAwLjU1MzA1MywgMC45MjEyODcsIDEuMTMyIiwgXAotICAgICAgICAgICIwLjEzODQxNCwgMC4xNDg5OTUsIDAuMjQ0MDQsIDAuNDAyMDYzLCAwLjU2MDA2LCAwLjkyODI5OCwgMS4xMzg3NCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTkxMDgsIDAuMTQwODIsIDAuMzM5MTk4LCAwLjY3MTQ1OCwgMS4wMDMxNSwgMS43NzgzOCwgMi4yMjE1MSIsIFwKLSAgICAgICAgICAiMC4xMTkwODUsIDAuMTQwODIsIDAuMzM5MiwgMC42NzE0NDYsIDEuMDAzOTQsIDEuNzc5NzksIDIuMjIxNDYiLCBcCi0gICAgICAgICAgIjAuMTE5MTAyLCAwLjE0MDg0OCwgMC4zMzkxOTYsIDAuNjcxNDMxLCAxLjAwMzg2LCAxLjc3OTY3LCAyLjIyMTQ5IiwgXAotICAgICAgICAgICIwLjExOTQzNSwgMC4xNDEwNzksIDAuMzM5MjEsIDAuNjcxMzk2LCAxLjAwMjk2LCAxLjc3OTY5LCAyLjIyMzA4IiwgXAotICAgICAgICAgICIwLjExOTg2MywgMC4xNDE0NjMsIDAuMzM5MTMxLCAwLjY3MTQxOCwgMS4wMDM3OCwgMS43NzgzNCwgMi4yMjE0OCIsIFwKLSAgICAgICAgICAiMC4xMjAzOTEsIDAuMTQxODQyLCAwLjMzOTE2OCwgMC42NzE0MTYsIDEuMDAzODksIDEuNzc5NDYsIDIuMjIzMDUiLCBcCi0gICAgICAgICAgIjAuMTIxMTIyLCAwLjE0MjM0OSwgMC4zMzkyODksIDAuNjcxNTE5LCAxLjAwMzg5LCAxLjc3OTY0LCAyLjIyMjgyIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4ODQyLCAwLjA5ODExOSwgMC4xODUwNjIsIDAuMzI5ODM3LCAwLjQ3NDQ5LCAwLjgxMjExMiwgMS4wMDUwMiIsIFwKLSAgICAgICAgICAiMC4wOTUyNDQsIDAuMTA0OTQ0LCAwLjE5MTg4MSwgMC4zMzY2MywgMC40ODEzMjMsIDAuODE4OTQsIDEuMDExODYiLCBcCi0gICAgICAgICAgIjAuMTAyMDM2LCAwLjExMTczOSwgMC4xOTg2ODUsIDAuMzQzNDU3LCAwLjQ4ODEyLCAwLjgyNTczNiwgMS4wMTg2NSIsIFwKLSAgICAgICAgICAiMC4xMDc2MDgsIDAuMTE3MzIzLCAwLjIwNDI3NCwgMC4zNDkwMiwgMC40OTM3MiwgMC44MzEzNzIsIDEuMDI0MjMiLCBcCi0gICAgICAgICAgIjAuMTEyMTg0LCAwLjEyMTkxMywgMC4yMDg4NjQsIDAuMzUzNjE4LCAwLjQ5ODMwNywgMC44MzU5MTQsIDEuMDI4ODIiLCBcCi0gICAgICAgICAgIjAuMTE3OTAyLCAwLjEyNzY3MiwgMC4yMTQ2NjIsIDAuMzU5NDA2LCAwLjUwNDEwNiwgMC44NDE3MDIsIDEuMDM0NjkiLCBcCi0gICAgICAgICAgIjAuMTIyMTM1LCAwLjEzMTg3NywgMC4yMTg5NDgsIDAuMzYzNzMxLCAwLjUwODQ2OCwgMC44NDYwNzMsIDEuMDM4OTEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTA2NzcsIDAuMTI2MTM2LCAwLjMwMzI0OSwgMC42MDAzNywgMC44OTc4OTIsIDEuNTg5ODgsIDEuOTg1ODUiLCBcCi0gICAgICAgICAgIjAuMTA2NzY0LCAwLjEyNjE1NywgMC4zMDMxNTksIDAuNjAwMjkyLCAwLjg5NzY1LCAxLjU5MTgyLCAxLjk4NTk3IiwgXAotICAgICAgICAgICIwLjEwNjksIDAuMTI2MiwgMC4zMDMyNSwgMC42MDAzNzQsIDAuODk3NjI1LCAxLjU5MTM2LCAxLjk4ODUzIiwgXAotICAgICAgICAgICIwLjEwNzMyNSwgMC4xMjY1OTEsIDAuMzAyODYsIDAuNjAwMjczLCAwLjg5NzcwNCwgMS41OTIwNSwgMS45ODgwNiIsIFwKLSAgICAgICAgICAiMC4xMDc4NCwgMC4xMjcwNTgsIDAuMzAzNDU4LCAwLjU5OTY1LCAwLjg5NzY3NiwgMS41ODk5NywgMS45ODg0MiIsIFwKLSAgICAgICAgICAiMC4xMDg1ODcsIDAuMTI3NzIxLCAwLjMwMzY5NCwgMC42MDA0MjgsIDAuODk3NzMzLCAxLjU5MTUxLCAxLjk4ODI1IiwgXAotICAgICAgICAgICIwLjEwOTQ5NiwgMC4xMjg0NTcsIDAuMzAzNjM4LCAwLjYwMDYzNywgMC44OTc4NzgsIDEuNTkxNzEsIDEuOTg4NCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDgyNDk2LCAwLjA5MzAyMiwgMC4xODc3MTcsIDAuMzQ1NjMzLCAwLjUwMzkzNSwgMC44NzMwNSwgMS4wODI0NSIsIFwKLSAgICAgICAgICAiMC4wODg1MDUsIDAuMDk5MDM1LCAwLjE5MzczMiwgMC4zNTE2NDgsIDAuNTA5Njk4LCAwLjg3ODAyNCwgMS4wODk1NCIsIFwKLSAgICAgICAgICAiMC4wOTUwOTYsIDAuMTA1NjMyLCAwLjIwMDM0NSwgMC4zNTgyNSwgMC41MTYyMDMsIDAuODg1NjUxLCAxLjA5NTA1IiwgXAotICAgICAgICAgICIwLjEwMDQ1MiwgMC4xMTA5ODksIDAuMjA1NzEzLCAwLjM2Mzc2MiwgMC41MjE4MTksIDAuODkwMDI5LCAxLjEwMTYiLCBcCi0gICAgICAgICAgIjAuMTA0OTYyLCAwLjExNTQ3MywgMC4yMTAxOTMsIDAuMzY4MTYxLCAwLjUyNTk4MSwgMC44OTQ0MTUsIDEuMTA0OTgiLCBcCi0gICAgICAgICAgIjAuMTEwOTgxLCAwLjEyMTUzNiwgMC4yMTYyMjYsIDAuMzc0MDQxLCAwLjUzMTk2NiwgMC45MDA5MTIsIDEuMTExNDIiLCBcCi0gICAgICAgICAgIjAuMTE1NTg1LCAwLjEyNjExLCAwLjIyMDgyLCAwLjM3ODY2LCAwLjUzNjYzNSwgMC45MDUwNDQsIDEuMTE2MDMiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTE4MDc4LCAwLjEzOTgzNCwgMC4zMzgwOTQsIDAuNjcwNjU4LCAxLjAwMjA3LCAxLjc3Nzc1LCAyLjIyMTAxIiwgXAotICAgICAgICAgICIwLjExODAwOSwgMC4xMzk4NDUsIDAuMzM4NTAxLCAwLjY3MDQ1NCwgMS4wMDIyNywgMS43Nzc5NSwgMi4yMjA5NyIsIFwKLSAgICAgICAgICAiMC4xMTgyNzUsIDAuMTQwMDI4LCAwLjMzODU1OSwgMC42NzAyODEsIDEuMDAyODYsIDEuNzc3OTYsIDIuMjIzMzMiLCBcCi0gICAgICAgICAgIjAuMTE4NjUxLCAwLjE0MDMzMywgMC4zMzgxMzUsIDAuNjcwMSwgMS4wMDIyMSwgMS43NzczMiwgMi4yMjMwOCIsIFwKLSAgICAgICAgICAiMC4xMTkxMTUsIDAuMTQwNzc2LCAwLjMzODczLCAwLjY3MDM2MiwgMS4wMDI1OCwgMS43NzkwNiwgMi4yMjA5NSIsIFwKLSAgICAgICAgICAiMC4xMTk4OTcsIDAuMTQxMzI0LCAwLjMzODYxNiwgMC42NzExMDQsIDEuMDAyMjEsIDEuNzc3MTksIDIuMjIwMjQiLCBcCi0gICAgICAgICAgIjAuMTIwNzU5LCAwLjE0MTk1OCwgMC4zMzg2NTcsIDAuNjcxMTY2LCAxLjAwMjI3LCAxLjc3NjcxLCAyLjIyMDkiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDgzMjY0LCAwLjA5Mjk4LCAwLjE3OTk4OCwgMC4zMjQ3ODcsIDAuNDY5NTE2LCAwLjgwNzE0OSwgMS4wMDAwOCIsIFwKLSAgICAgICAgICAiMC4wOTA2NDksIDAuMTAwMzY5LCAwLjE4NzM5NywgMC4zMzIyMjYsIDAuNDc2OTA2LCAwLjgxNDU1OSwgMS4wMDc1MSIsIFwKLSAgICAgICAgICAiMC4wOTk2OTEsIDAuMTA5NDE4LCAwLjE5NjQyNiwgMC4zNDEyNDcsIDAuNDg1OTY2LCAwLjgyMzU3NywgMS4wMTY0OSIsIFwKLSAgICAgICAgICAiMC4xMDcwNzMsIDAuMTE2ODAyLCAwLjIwMzc1NiwgMC4zNDg1NTMsIDAuNDkzMzIsIDAuODMwODg1LCAxLjAyMzg5IiwgXAotICAgICAgICAgICIwLjExMzA5NCwgMC4xMjI4MzEsIDAuMjA5ODUyLCAwLjM1NDYzOCwgMC40OTk0MjQsIDAuODM3MDk1LCAxLjAyOTk0IiwgXAotICAgICAgICAgICIwLjEyMTI4NSwgMC4xMzEwNzMsIDAuMjE4MjA1LCAwLjM2Mjk5OCwgMC41MDc3MDgsIDAuODQ1MzczLCAxLjAzODMzIiwgXAotICAgICAgICAgICIwLjEyNzM1NiwgMC4xMzcxNiwgMC4yMjQ0MDYsIDAuMzY5MTgyLCAwLjUxMzkyMiwgMC44NTE1NDksIDEuMDQ0NjEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTA3MDYxLCAwLjEyNjM4NCwgMC4zMDMzNTMsIDAuNjAwMzM1LCAwLjg5NzgzMSwgMS41OTIxMSwgMS45ODkxNSIsIFwKLSAgICAgICAgICAiMC4xMDcwNTMsIDAuMTI2NDMsIDAuMzAzNDM2LCAwLjYwMDU1MSwgMC44OTc4MDIsIDEuNTkxMzgsIDEuOTg4NTUiLCBcCi0gICAgICAgICAgIjAuMTA3MjM5LCAwLjEyNjU4OCwgMC4zMDM0NzUsIDAuNjAwNTIzLCAwLjg5NzY1MiwgMS41OTE3MSwgMS45ODgzNSIsIFwKLSAgICAgICAgICAiMC4xMDc2NDgsIDAuMTI2OTM5LCAwLjMwMzM3MSwgMC42MDAwNTIsIDAuODk3OTgxLCAxLjU5MTg1LCAxLjk4ODIzIiwgXAotICAgICAgICAgICIwLjEwNzk0NSwgMC4xMjcyMjYsIDAuMzAzNTE1LCAwLjYwMDQ3NSwgMC44OTc4ODIsIDEuNTkyMjcsIDEuOTg4NDciLCBcCi0gICAgICAgICAgIjAuMTA4Mzk2LCAwLjEyNzU3NCwgMC4zMDM3NzEsIDAuNjAwNDE2LCAwLjg5NzcwMywgMS41OTE0OSwgMS45ODg2IiwgXAotICAgICAgICAgICIwLjEwOTA5OCwgMC4xMjgwNzcsIDAuMzAzNzY4LCAwLjYwMDM4OCwgMC44OTc2NTMsIDEuNTkxNCwgMS45ODg1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIxIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODA5NTksIDAuMDkxNDkyLCAwLjE4NjIwMSwgMC4zNDQxNzEsIDAuNTAyMTYsIDAuODcwNDUzLCAxLjA4MTY4IiwgXAotICAgICAgICAgICIwLjA4ODM2MiwgMC4wOTg4OTQsIDAuMTkzNjE4LCAwLjM1MTc4LCAwLjUwOTU3NiwgMC44Nzc4NTEsIDEuMDg4MjIiLCBcCi0gICAgICAgICAgIjAuMDk2NjI5LCAwLjEwNzE3LCAwLjIwMTg4OCwgMC4zNTk3OSwgMC41MTc2OSwgMC44ODcxODgsIDEuMDk2NTgiLCBcCi0gICAgICAgICAgIjAuMTAzMjcyLCAwLjExMzc5MSwgMC4yMDg1MTMsIDAuMzY2NTgsIDAuNTI0Nzg3LCAwLjg5Mjc3MSwgMS4xMDM1NCIsIFwKLSAgICAgICAgICAiMC4xMDg2NCwgMC4xMTkxODEsIDAuMjEzODU3LCAwLjM3MTcyMywgMC41Mjk1NzgsIDAuODk4MzIxLCAxLjEwODY2IiwgXAotICAgICAgICAgICIwLjExNTk2NywgMC4xMjY0NzUsIDAuMjIxMjI5LCAwLjM3OTA5MywgMC41MzY5NTIsIDAuOTA1MzYsIDEuMTE1OTMiLCBcCi0gICAgICAgICAgIjAuMTIxNSwgMC4xMzIwMzMsIDAuMjI2NzkyLCAwLjM4NDU4NiwgMC41NDI3NjYsIDAuOTEwODYzLCAxLjEyMjA4Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExODAzNywgMC4xMzk4MjQsIDAuMzM4MTQzLCAwLjY3MDUwMywgMS4wMDIyMSwgMS43NzkwNCwgMi4yMjA1OCIsIFwKLSAgICAgICAgICAiMC4xMTgwNTYsIDAuMTM5ODAzLCAwLjMzODEzMSwgMC42NzA0NzIsIDEuMDAzODIsIDEuNzc5NDIsIDIuMjIwNTIiLCBcCi0gICAgICAgICAgIjAuMTE4MzU5LCAwLjE0MDA3MSwgMC4zMzg1NzYsIDAuNjcwMjkyLCAxLjAwMjY0LCAxLjc3Nzg4LCAyLjIyMjg5IiwgXAotICAgICAgICAgICIwLjExODg1OSwgMC4xNDA1MDcsIDAuMzM4NTUzLCAwLjY3MDEwMiwgMS4wMDI1NiwgMS43Nzc5OCwgMi4yMjE2IiwgXAotICAgICAgICAgICIwLjExOTMzOCwgMC4xNDA5NDksIDAuMzM4Nzc3LCAwLjY3MDQwMSwgMS4wMDI1MiwgMS43Nzc4NSwgMi4yMjA4IiwgXAotICAgICAgICAgICIwLjEyMDE2MSwgMC4xNDE1MzEsIDAuMzM4NzQyLCAwLjY3MTEzNSwgMS4wMDIxNSwgMS43NzczLCAyLjIyMDA5IiwgXAotICAgICAgICAgICIwLjEyMTAyOSwgMC4xNDIxNzUsIDAuMzM4NzAxLCAwLjY3MDkzOSwgMS4wMDM3NCwgMS43NzkzMiwgMi4yMjAyNCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODA0OTMsIDAuMDkwMTk5LCAwLjE3NzEzNiwgMC4zMjE5MTUsIDAuNDY2NTc0LCAwLjgwNDE4OCwgMC45OTcxMjkiLCBcCi0gICAgICAgICAgIjAuMDg3Nzg3LCAwLjA5NzQ5OSwgMC4xODQ0NDEsIDAuMzI5MjE2LCAwLjQ3Mzg4NCwgMC44MTE1LCAxLjAwNDQ2IiwgXAotICAgICAgICAgICIwLjA5NjQ2MywgMC4xMDYxNjcsIDAuMTkzMTE2LCAwLjMzNzg5NiwgMC40ODI1NTQsIDAuODIwMTc3LCAxLjAxMzEzIiwgXAotICAgICAgICAgICIwLjEwMzE2OCwgMC4xMTI4NzQsIDAuMTk5ODI1LCAwLjM0NDU3NSwgMC40ODkyNTIsIDAuODI2ODY0LCAxLjAxOTc4IiwgXAotICAgICAgICAgICIwLjEwODU2NiwgMC4xMTgzMDcsIDAuMjA1MjM3LCAwLjM0OTk4MSwgMC40OTQ3MTMsIDAuODMyMzcyLCAxLjAyNTIiLCBcCi0gICAgICAgICAgIjAuMTE2MTcxLCAwLjEyNTY1NywgMC4yMTMwMzcsIDAuMzU3Nzk3LCAwLjUwMjQ4NywgMC44NDAxMTMsIDEuMDMyNjkiLCBcCi0gICAgICAgICAgIjAuMTIxMzQzLCAwLjEzMTExMywgMC4yMTgyNjMsIDAuMzYzMjk1LCAwLjUwODAzNiwgMC44NDU2OTUsIDEuMDM4MTgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTA2Nzg4LCAwLjEyNjExNCwgMC4zMDMyNDIsIDAuNjAwMzY1LCAwLjg5NzY0OCwgMS41OTE0LCAxLjk4NjU2IiwgXAotICAgICAgICAgICIwLjEwNjc4MSwgMC4xMjYwOTgsIDAuMzAzMjM0LCAwLjYwMDM4MiwgMC44OTc2NCwgMS41OTE1MywgMS45ODg0OCIsIFwKLSAgICAgICAgICAiMC4xMDY5NywgMC4xMjYzNDMsIDAuMzAzMjc1LCAwLjYwMDM3NCwgMC44OTc2NTYsIDEuNTg5NzgsIDEuOTg4NDgiLCBcCi0gICAgICAgICAgIjAuMTA3Mzk5LCAwLjEyNjcyNiwgMC4zMDM0NDgsIDAuNjAwMzI5LCAwLjg5NzU0MywgMS41OTAzMSwgMS45ODU3OSIsIFwKLSAgICAgICAgICAiMC4xMDc4MiwgMC4xMjcxLCAwLjMwMzM3NCwgMC42MDAyNTMsIDAuODk3ODI4LCAxLjU5MjA2LCAxLjk4ODQyIiwgXAotICAgICAgICAgICIwLjEwODMxNywgMC4xMjc0ODEsIDAuMzAzNzY4LCAwLjYwMDQ5MSwgMC44OTc4MjYsIDEuNTg5OTMsIDEuOTg4MDYiLCBcCi0gICAgICAgICAgIjAuMTA5MDI5LCAwLjEyODE0NywgMC4zMDM1NDEsIDAuNjAwMDk2LCAwLjg5NjgwMiwgMS41OTIwNywgMS45ODg0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTYwMywgMC4wMDE2MDQsIDAuMDAxNjEsIDAuMDAxNjEzLCAwLjAwMTYxMywgMC4wMDE2MTMsIDAuMDAxNjE0IiwgXAotICAgICAgICAgICIwLjAwMTU2OSwgMC4wMDE1NzEsIDAuMDAxNTc4LCAwLjAwMTU4LCAwLjAwMTU4MSwgMC4wMDE1ODMsIDAuMDAxNTgzIiwgXAotICAgICAgICAgICIwLjAwMTU4NCwgMC4wMDE1ODUsIDAuMDAxNTksIDAuMDAxNTkyLCAwLjAwMTU5MywgMC4wMDE1OTMsIDAuMDAxNTk0IiwgXAotICAgICAgICAgICIwLjAwMTYyNywgMC4wMDE2MjgsIDAuMDAxNjMsIDAuMDAxNjMyLCAwLjAwMTYzMywgMC4wMDE2MzMsIDAuMDAxNjM0IiwgXAotICAgICAgICAgICIwLjAwMTY3NiwgMC4wMDE2NzgsIDAuMDAxNjg1LCAwLjAwMTY4NywgMC4wMDE2ODksIDAuMDAxNjksIDAuMDAxNjkxIiwgXAotICAgICAgICAgICIwLjAwMTc5OCwgMC4wMDE3OTksIDAuMDAxODA1LCAwLjAwMTgwOSwgMC4wMDE4MSwgMC4wMDE4MTEsIDAuMDAxODExIiwgXAotICAgICAgICAgICIwLjAwMTkzOSwgMC4wMDE5MzgsIDAuMDAxOTM2LCAwLjAwMTkzNywgMC4wMDE5MzcsIDAuMDAxOTM4LCAwLjAwMTkzOCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDIwOSwgMC4wMDQyMTEsIDAuMDA0MjE3LCAwLjAwNDIyLCAwLjAwNDIyMSwgMC4wMDQyMjEsIDAuMDA0MjIyIiwgXAotICAgICAgICAgICIwLjAwNDE5LCAwLjAwNDE5MSwgMC4wMDQxOTksIDAuMDA0MjAxLCAwLjAwNDIwMiwgMC4wMDQyMDMsIDAuMDA0MjAzIiwgXAotICAgICAgICAgICIwLjAwNDE4NSwgMC4wMDQxODcsIDAuMDA0MTk1LCAwLjAwNDE5NywgMC4wMDQxOTksIDAuMDA0MiwgMC4wMDQyIiwgXAotICAgICAgICAgICIwLjAwNDE5OCwgMC4wMDQyLCAwLjAwNDIwNywgMC4wMDQyMSwgMC4wMDQyMTIsIDAuMDA0MjEzLCAwLjAwNDIxMyIsIFwKLSAgICAgICAgICAiMC4wMDQyMjMsIDAuMDA0MjI1LCAwLjAwNDIzMiwgMC4wMDQyMzUsIDAuMDA0MjM2LCAwLjAwNDIzNywgMC4wMDQyMzciLCBcCi0gICAgICAgICAgIjAuMDA0MjkyLCAwLjAwNDI5NCwgMC4wMDQyOTksIDAuMDA0MzAyLCAwLjAwNDMwNCwgMC4wMDQzMDQsIDAuMDA0MzA1IiwgXAotICAgICAgICAgICIwLjAwNDM3NiwgMC4wMDQzNzUsIDAuMDA0MzgxLCAwLjAwNDM4MywgMC4wMDQzODQsIDAuMDA0Mzg1LCAwLjAwNDM4NSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkExIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDE2MDIsIDAuMDAxNjAzLCAwLjAwMTYwOSwgMC4wMDE2MTEsIDAuMDAxNjExLCAwLjAwMTYxMiwgMC4wMDE2MTIiLCBcCi0gICAgICAgICAgIjAuMDAxNTgyLCAwLjAwMTU4NCwgMC4wMDE1OTEsIDAuMDAxNTkzLCAwLjAwMTU5NCwgMC4wMDE1OTcsIDAuMDAxNTk2IiwgXAotICAgICAgICAgICIwLjAwMTYyLCAwLjAwMTYyMiwgMC4wMDE2MjgsIDAuMDAxNjMxLCAwLjAwMTYzMywgMC4wMDE2MzMsIDAuMDAxNjM0IiwgXAotICAgICAgICAgICIwLjAwMTcwMSwgMC4wMDE3MDIsIDAuMDAxNzA2LCAwLjAwMTcwOSwgMC4wMDE3MSwgMC4wMDE3MTEsIDAuMDAxNzExIiwgXAotICAgICAgICAgICIwLjAwMTc5NCwgMC4wMDE3OTMsIDAuMDAxNzk1LCAwLjAwMTc5OCwgMC4wMDE3OTgsIDAuMDAxNzk5LCAwLjAwMTc5OSIsIFwKLSAgICAgICAgICAiMC4wMDE5MjMsIDAuMDAxOTI0LCAwLjAwMTkyMSwgMC4wMDE5MjMsIDAuMDAxOTI0LCAwLjAwMTkyNSwgMC4wMDE5MjUiLCBcCi0gICAgICAgICAgIjAuMDAyMDc1LCAwLjAwMjA3MywgMC4wMDIwNjgsIDAuMDAyMDY4LCAwLjAwMjA2OSwgMC4wMDIwNjksIDAuMDAyMDciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDM4NzQsIDAuMDAzODc2LCAwLjAwMzg4MSwgMC4wMDM4ODMsIDAuMDAzODg0LCAwLjAwMzg4NCwgMC4wMDM4ODUiLCBcCi0gICAgICAgICAgIjAuMDAzODM4LCAwLjAwMzg0LCAwLjAwMzg0NywgMC4wMDM4NDksIDAuMDAzODUsIDAuMDAzODUsIDAuMDAzODUxIiwgXAotICAgICAgICAgICIwLjAwMzgzLCAwLjAwMzgzMiwgMC4wMDM4MzksIDAuMDAzODQxLCAwLjAwMzg0MiwgMC4wMDM4NDMsIDAuMDAzODQzIiwgXAotICAgICAgICAgICIwLjAwMzgzOSwgMC4wMDM4NDEsIDAuMDAzODQ4LCAwLjAwMzg1MSwgMC4wMDM4NTIsIDAuMDAzODUzLCAwLjAwMzg1MyIsIFwKLSAgICAgICAgICAiMC4wMDM4NjgsIDAuMDAzODY5LCAwLjAwMzg3NiwgMC4wMDM4NzksIDAuMDAzODgsIDAuMDAzODgxLCAwLjAwMzg4MSIsIFwKLSAgICAgICAgICAiMC4wMDM5MzksIDAuMDAzOTQxLCAwLjAwMzk0OCwgMC4wMDM5NTEsIDAuMDAzOTUyLCAwLjAwMzk1MiwgMC4wMDM5NTMiLCBcCi0gICAgICAgICAgIjAuMDA0MDI3LCAwLjAwNDAyOSwgMC4wMDQwMzMsIDAuMDA0MDM2LCAwLjAwNDAzNiwgMC4wMDQwMzgsIDAuMDA0MDM4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTA4NiwgMC4wMDEwODUsIDAuMDAxMDg0LCAwLjAwMTA4NCwgMC4wMDEwODQsIDAuMDAxMDgzLCAwLjAwMTA4MyIsIFwKLSAgICAgICAgICAiMC4wMDEwNTUsIDAuMDAxMDU1LCAwLjAwMTA1NCwgMC4wMDEwNTQsIDAuMDAxMDU0LCAwLjAwMTA1NCwgMC4wMDEwNTQiLCBcCi0gICAgICAgICAgIjAuMDAxMDc3LCAwLjAwMTA3NywgMC4wMDEwNzUsIDAuMDAxMDc1LCAwLjAwMTA3NSwgMC4wMDEwNzQsIDAuMDAxMDc0IiwgXAotICAgICAgICAgICIwLjAwMTEzMSwgMC4wMDExMywgMC4wMDExMjgsIDAuMDAxMTI4LCAwLjAwMTEyNywgMC4wMDExMjcsIDAuMDAxMTI2IiwgXAotICAgICAgICAgICIwLjAwMTIwMiwgMC4wMDEyMDIsIDAuMDAxMiwgMC4wMDEyLCAwLjAwMTIsIDAuMDAxMTk5LCAwLjAwMTE5OSIsIFwKLSAgICAgICAgICAiMC4wMDEzNTQsIDAuMDAxMzU0LCAwLjAwMTM0OCwgMC4wMDEzNDYsIDAuMDAxMzQ2LCAwLjAwMTM0NSwgMC4wMDEzNDQiLCBcCi0gICAgICAgICAgIjAuMDAxNSwgMC4wMDE0OTcsIDAuMDAxNDkxLCAwLjAwMTQ4OCwgMC4wMDE0ODcsIDAuMDAxNDg3LCAwLjAwMTQ4NiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzIyOCwgMC4wMDMyMywgMC4wMDMyMzYsIDAuMDAzMjM5LCAwLjAwMzIzOSwgMC4wMDMyNCwgMC4wMDMyNCIsIFwKLSAgICAgICAgICAiMC4wMDMyMjYsIDAuMDAzMjI5LCAwLjAwMzIzNywgMC4wMDMyNCwgMC4wMDMyNDEsIDAuMDAzMjQyLCAwLjAwMzI0MiIsIFwKLSAgICAgICAgICAiMC4wMDMyNjgsIDAuMDAzMjcsIDAuMDAzMjc3LCAwLjAwMzI3OSwgMC4wMDMyODEsIDAuMDAzMjgxLCAwLjAwMzI4MiIsIFwKLSAgICAgICAgICAiMC4wMDMzNTEsIDAuMDAzMzUzLCAwLjAwMzM1OCwgMC4wMDMzNjEsIDAuMDAzMzYyLCAwLjAwMzM2MywgMC4wMDMzNjMiLCBcCi0gICAgICAgICAgIjAuMDAzNDIxLCAwLjAwMzQyMiwgMC4wMDM0MjcsIDAuMDAzNDMxLCAwLjAwMzQzMiwgMC4wMDM0MzQsIDAuMDAzNDM0IiwgXAotICAgICAgICAgICIwLjAwMzU3MywgMC4wMDM1NzQsIDAuMDAzNTc5LCAwLjAwMzU4NCwgMC4wMDM1ODUsIDAuMDAzNTg3LCAwLjAwMzU4NyIsIFwKLSAgICAgICAgICAiMC4wMDM3MjEsIDAuMDAzNzIxLCAwLjAwMzcyMywgMC4wMDM3MjcsIDAuMDAzNzI4LCAwLjAwMzcyOSwgMC4wMDM3MyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIxIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDEwOTEsIDAuMDAxMDkxLCAwLjAwMTA5MiwgMC4wMDEwOTIsIDAuMDAxMDkyLCAwLjAwMTA5MiwgMC4wMDEwOTMiLCBcCi0gICAgICAgICAgIjAuMDAxMDg0LCAwLjAwMTA4NSwgMC4wMDEwODYsIDAuMDAxMDg3LCAwLjAwMTA4NywgMC4wMDEwODgsIDAuMDAxMDg3IiwgXAotICAgICAgICAgICIwLjAwMTEzNiwgMC4wMDExMzcsIDAuMDAxMTM2LCAwLjAwMTEzNiwgMC4wMDExMzYsIDAuMDAxMTM2LCAwLjAwMTEzNiIsIFwKLSAgICAgICAgICAiMC4wMDEyMSwgMC4wMDEyMTEsIDAuMDAxMjExLCAwLjAwMTIxMSwgMC4wMDEyMTEsIDAuMDAxMjExLCAwLjAwMTIxMSIsIFwKLSAgICAgICAgICAiMC4wMDEzMDksIDAuMDAxMzA4LCAwLjAwMTMwNSwgMC4wMDEzMDQsIDAuMDAxMzA0LCAwLjAwMTMwNCwgMC4wMDEzMDMiLCBcCi0gICAgICAgICAgIjAuMDAxNDgzLCAwLjAwMTQ4MiwgMC4wMDE0NzgsIDAuMDAxNDc2LCAwLjAwMTQ2NCwgMC4wMDE0NzUsIDAuMDAxNDc1IiwgXAotICAgICAgICAgICIwLjAwMTYzMiwgMC4wMDE2NDUsIDAuMDAxNjM4LCAwLjAwMTYzMywgMC4wMDE2MzMsIDAuMDAxNjE2LCAwLjAwMTYxNiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjkwMiwgMC4wMDI5MDQsIDAuMDAyOTEsIDAuMDAyOTEyLCAwLjAwMjkxMiwgMC4wMDI5MTMsIDAuMDAyOTEzIiwgXAotICAgICAgICAgICIwLjAwMjg5LCAwLjAwMjg5MiwgMC4wMDI5LCAwLjAwMjkwMywgMC4wMDI5MDMsIDAuMDAyOTA0LCAwLjAwMjkwNSIsIFwKLSAgICAgICAgICAiMC4wMDI5MjgsIDAuMDAyOTMsIDAuMDAyOTM3LCAwLjAwMjk0LCAwLjAwMjk0MSwgMC4wMDI5NDIsIDAuMDAyOTQzIiwgXAotICAgICAgICAgICIwLjAwMjk5OCwgMC4wMDI5OTksIDAuMDAzMDA2LCAwLjAwMzAwNywgMC4wMDMwMDgsIDAuMDAzMDA5LCAwLjAwMzAxIiwgXAotICAgICAgICAgICIwLjAwMzA4MiwgMC4wMDMwODIsIDAuMDAzMDg2LCAwLjAwMzA4OSwgMC4wMDMwOSwgMC4wMDMwOTEsIDAuMDAzMDkxIiwgXAotICAgICAgICAgICIwLjAwMzIyNiwgMC4wMDMyMjIsIDAuMDAzMjMxLCAwLjAwMzIzNCwgMC4wMDMyMzUsIDAuMDAzMjM3LCAwLjAwMzIyOCIsIFwKLSAgICAgICAgICAiMC4wMDMzNTksIDAuMDAzMzU4LCAwLjAwMzM1OCwgMC4wMDMzNywgMC4wMDMzNzIsIDAuMDAzMzczLCAwLjAwMzM2MiIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBBT0kyMTFYMiAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoQU9JMjExWDIpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC43Njg0MjY7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE3OTQwOTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE3ODgyNTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE3OTQwOTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDEwNDgsIDAuMDAxMDQ4LCAwLjAwMTA0OCwgMC4wMDEwNDcsIDAuMDAxMDQ3LCAwLjAwMTA0NywgMC4wMDEwNDciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDExMDUsIDAuMDAxMDY3LCAwLjAwMTA2LCAwLjAwMTA1MywgMC4wMDEwNTIsIDAuMDAxMDUyLCAwLjAwMTA1MiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQTEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTY4NDAyOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTY3NDc0OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTY4NDAyOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDYzNCwgMC4wMDA2MzMsIDAuMDAwNjMyLCAwLjAwMDYzMiwgMC4wMDA2MzIsIDAuMDAwNjMyLCAwLjAwMDYzMiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTE5MSwgMC4wMDExOTIsIDAuMDAxMTkyLCAwLjAwMTE5MiwgMC4wMDExOTIsIDAuMDAxMTkyLCAwLjAwMTE5MiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQjApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTY0MTMxOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTYzMzEzOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTY0MTMxOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDg1MywgMC4wMDA5NTIsIDAuMDAwOTgxLCAwLjAwMDk3NCwgMC4wMDA5ODcsIDAuMDAxMDA0LCAwLjAwMTAxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxMTExLCAwLjAwMTExMSwgMC4wMDExMTEsIDAuMDAxMTEyLCAwLjAwMTExMiwgMC4wMDExMSwgMC4wMDExMTIiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEMwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE2NzU5NzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE2NzU5NzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE2NzU1MTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxOTYsIDAuMDAwMTk2LCAwLjAwMDE5NiwgMC4wMDAxOTYsIDAuMDAwMTk2LCAwLjAwMDE5NiwgMC4wMDAxOTYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA3ODgsIDAuMDAwNzg5LCAwLjAwMDc4OSwgMC4wMDA3ODgsIDAuMDAwNzg4LCAwLjAwMDc4OCwgMC4wMDA3ODgiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4yNTE2OTk7Ci0gICAgZnVuY3Rpb24gOiAiKCEoKChBMCBBMSkrQjApK0MwKSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjcyODcsIDAuMjc3MjQ0LCAwLjQ0NTEzMiwgMC42NTU5NTUsIDAuODY2MzcyLCAxLjA3Njc3LCAxLjI4NjMxIiwgXAotICAgICAgICAgICIwLjA3MzUzMSwgMC4yODM4OTcsIDAuNDUyMDQxLCAwLjY2MjA0NywgMC44NzMyODgsIDEuMDgyNTksIDEuMjkzMzIiLCBcCi0gICAgICAgICAgIjAuMDc5MjQxLCAwLjI4OTg4NCwgMC40NTgwMTksIDAuNjY3ODI4LCAwLjg3Nzg4NCwgMS4wODg4LCAxLjI5ODIzIiwgXAotICAgICAgICAgICIwLjA4NDQ0MiwgMC4yOTUwMjMsIDAuNDYyOTc5LCAwLjY3MzI2NiwgMC44ODM3MjQsIDEuMDkzMTYsIDEuMzA0NTEiLCBcCi0gICAgICAgICAgIjAuMDg5MTYxLCAwLjI5OTgxMiwgMC40NjgyNTQsIDAuNjc4MjIsIDAuODg5Mjk5LCAxLjA5ODMsIDEuMzA5NjQiLCBcCi0gICAgICAgICAgIjAuMDk1NTc5LCAwLjMwNzgwNSwgMC40NzU4NTEsIDAuNjg1OTIsIDAuODk2NCwgMS4xMDYzMywgMS4zMTYyOCIsIFwKLSAgICAgICAgICAiMC4xMDA0NDksIDAuMzE0NjgxLCAwLjQ4Mjc0MywgMC42OTM2NjQsIDAuOTAzNjM0LCAxLjExMzg4LCAxLjMyNDI5Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExNzM0OSwgMC41NjA4OTEsIDAuOTE1ODE4LCAxLjM2MDAxLCAxLjgwNDA2LCAyLjI0Nzk4LCAyLjY5MDY5IiwgXAotICAgICAgICAgICIwLjExNzM2OSwgMC41NjE0NDksIDAuOTE2NjU3LCAxLjM2MDM1LCAxLjgwNDY0LCAyLjI0Njk5LCAyLjY5MTczIiwgXAotICAgICAgICAgICIwLjExODQ3NywgMC41NjEzNTcsIDAuOTE2MTg3LCAxLjM2MDMxLCAxLjgwNDM2LCAyLjI0Nzk4LCAyLjY5MDg1IiwgXAotICAgICAgICAgICIwLjEyMDczOCwgMC41NjEzMzgsIDAuOTE2NTQyLCAxLjM1OTk0LCAxLjgwMzg4LCAyLjI0ODk4LCAyLjY5MTg0IiwgXAotICAgICAgICAgICIwLjEyMzc5LCAwLjU2MTg3MiwgMC45MTYxODIsIDEuMzYwMjMsIDEuODA0MjIsIDIuMjQ2OTgsIDIuNjkxOTQiLCBcCi0gICAgICAgICAgIjAuMTMwMzI4LCAwLjU2MzQyOCwgMC45MTY3OTgsIDEuMzYwMzcsIDEuODAzNzQsIDIuMjQ4NzMsIDIuNjkyNjkiLCBcCi0gICAgICAgICAgIjAuMTM2ODM2LCAwLjU2NjE3NCwgMC45MTc2NTIsIDEuMzYwMzIsIDEuODAzODksIDIuMjQ3NTksIDIuNjkxNzMiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQ1NDg5LCAwLjE3OTMyOSwgMC4yODU0MjMsIDAuNDE4MTU5LCAwLjU1MDg1NCwgMC42ODI4ODEsIDAuODE1NzQ3IiwgXAotICAgICAgICAgICIwLjA1MTk2NywgMC4xODU4NDksIDAuMjkyMDE4LCAwLjQyNDUzNiwgMC41NTcwNTksIDAuNjg5NDU1LCAwLjgyMTcyMyIsIFwKLSAgICAgICAgICAiMC4wNjAxODEsIDAuMTk0MTkzLCAwLjMwMDUxNiwgMC40MzI5MzcsIDAuNTY1NTUxLCAwLjY5Nzg4OCwgMC44MzA3NDciLCBcCi0gICAgICAgICAgIjAuMDY4MTY1LCAwLjIwMjU4OCwgMC4zMDg4NTQsIDAuNDQxMzU1LCAwLjU3NDA3OCwgMC43MDY1NTQsIDAuODM4NjYzIiwgXAotICAgICAgICAgICIwLjA3NTE2NSwgMC4yMTA1ODEsIDAuMzE3MTQyLCAwLjQ0OTcwOSwgMC41ODIyNDUsIDAuNzE0OTYsIDAuODQ3MTc4IiwgXAotICAgICAgICAgICIwLjA4NDgyMywgMC4yMjM4NiwgMC4zMzA0NTMsIDAuNDYyOTkyLCAwLjU5NTU0OSwgMC43MjgyNDUsIDAuODYwMzcyIiwgXAotICAgICAgICAgICIwLjA5MjIzOCwgMC4yMzU1MTksIDAuMzQxNTc5LCAwLjQ3NDgzOCwgMC42MDczMzQsIDAuNzM5OTM0LCAwLjg3MjYzNyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzg2OTQsIDAuMzUyNDYsIDAuNTcxMzYsIDAuODQ0OTgyLCAxLjExODc2LCAxLjM5MzA4LCAxLjY2NjU3IiwgXAotICAgICAgICAgICIwLjA3OTEyMywgMC4zNTIyOTksIDAuNTcxMTI0LCAwLjg0NTE1OSwgMS4xMTg1OSwgMS4zOTI1OSwgMS42NjY0MSIsIFwKLSAgICAgICAgICAiMC4wODI3MTMsIDAuMzUyMTg2LCAwLjU3MTExLCAwLjg0NDg3NCwgMS4xMTg4NywgMS4zOTMxNiwgMS42NjY3IiwgXAotICAgICAgICAgICIwLjA4ODAzMiwgMC4zNTI5LCAwLjU3MTM0NiwgMC44NDUxODcsIDEuMTE4NDcsIDEuMzkyMjYsIDEuNjY2ODIiLCBcCi0gICAgICAgICAgIjAuMDk0MzI1LCAwLjM1NDcyOSwgMC41NzE1NTYsIDAuODQ1MDc1LCAxLjExODU3LCAxLjM5MjI2LCAxLjY2NzI0IiwgXAotICAgICAgICAgICIwLjEwNTE5MSwgMC4zNTk3MTUsIDAuNTczODQyLCAwLjg0NTEwMSwgMS4xMTg2MSwgMS4zOTIyMSwgMS42NjY3NSIsIFwKLSAgICAgICAgICAiMC4xMTQ1MDQsIDAuMzY1NTcxLCAwLjU3NjgxLCAwLjg0NjYxNCwgMS4xMTksIDEuMzkyMjQsIDEuNjY1ODMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2NTE3MywgMC4yNzc5NDYsIDAuNDQ4MDc3LCAwLjY2MTgxMywgMC44NzQ4NTIsIDEuMDg4NTIsIDEuMzAwNjIiLCBcCi0gICAgICAgICAgIjAuMDcxMzIsIDAuMjg0NjM2LCAwLjQ1NTE3LCAwLjY2Nzg4NSwgMC44ODE4MDYsIDEuMDk0MTEsIDEuMzA2OTgiLCBcCi0gICAgICAgICAgIjAuMDc2OTU3LCAwLjI5MDQ5OSwgMC40NjExMDcsIDAuNjczNjgsIDAuODg2ODczLCAxLjA5OTk1LCAxLjMxMjI3IiwgXAotICAgICAgICAgICIwLjA4MjA3NSwgMC4yOTU3NjQsIDAuNDY2MTU4LCAwLjY3OTM1MywgMC44OTI4OTgsIDEuMTA2MTgsIDEuMzE4ODUiLCBcCi0gICAgICAgICAgIjAuMDg2NzA0LCAwLjMwMDU4MiwgMC40NzE1NjcsIDAuNjg0NDY1LCAwLjg5NzAwMywgMS4xMDk3OCwgMS4zMjM5NCIsIFwKLSAgICAgICAgICAiMC4wOTMwNjEsIDAuMzA4NTI5LCAwLjQ3OTA2NiwgMC42OTI0NDIsIDAuOTA1NTA3LCAxLjExODQ4LCAxLjMzMjEiLCBcCi0gICAgICAgICAgIjAuMDk3NzU2LCAwLjMxNTM3MywgMC40ODU5MDYsIDAuNjk4NzgxLCAwLjkxMjI4OSwgMS4xMjU0MywgMS4zMzg4NCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTQ4NjgsIDAuNTY0MjUsIDAuOTIzODE2LCAxLjM3Mzg5LCAxLjgyMzUsIDIuMjc0LCAyLjcyMzEiLCBcCi0gICAgICAgICAgIjAuMTE0OTcsIDAuNTY1MTUxLCAwLjkyNDQ1NCwgMS4zNzQwNywgMS44MjQwMiwgMi4yNzMzMywgMi43MjI4MiIsIFwKLSAgICAgICAgICAiMC4xMTYwMjgsIDAuNTY0NTQyLCAwLjkyNDE5MSwgMS4zNzU1NCwgMS44MjQwNSwgMi4yNzM1MiwgMi43MjQxOCIsIFwKLSAgICAgICAgICAiMC4xMTgzNjUsIDAuNTY0NjIyLCAwLjkyNTY5MywgMS4zNzM4OCwgMS44MjQ1OCwgMi4yNzM5NywgMi43MjQ0NyIsIFwKLSAgICAgICAgICAiMC4xMjE0OTIsIDAuNTY1NDIzLCAwLjkyNDM0OCwgMS4zNzM4NCwgMS44MjYxNCwgMi4yNzUzMiwgMi43MjI2NCIsIFwKLSAgICAgICAgICAiMC4xMjgzNzMsIDAuNTY2NjczLCAwLjkyNTY5LCAxLjM3MzgzLCAxLjgyMzUsIDIuMjczMTksIDIuNzI0MDkiLCBcCi0gICAgICAgICAgIjAuMTM1MDMzLCAwLjU2OTI3LCAwLjkyNTQwMiwgMS4zNzQsIDEuODIzNTgsIDIuMjczMTksIDIuNzIyNjIiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQ0MDksIDAuMTc3OTA5LCAwLjI4NDE2OCwgMC40MTY3OTEsIDAuNTQ5MzUyLCAwLjY4MTQ2MSwgMC44MTQxNzkiLCBcCi0gICAgICAgICAgIjAuMDUxNTgxLCAwLjE4NTQyMywgMC4yOTE1OTgsIDAuNDI0MTAzLCAwLjU1NjY0MiwgMC42ODg5NzUsIDAuODIxMjg3IiwgXAotICAgICAgICAgICIwLjA2MTMwNSwgMC4xOTQ5NzksIDAuMzAxMTkxLCAwLjQzMzU2OSwgMC41NjYwNTQsIDAuNjk4NTg1LCAwLjgzMDg2OSIsIFwKLSAgICAgICAgICAiMC4wNzExNDcsIDAuMjA0NTQxLCAwLjMxMDYyMywgMC40NDMyLCAwLjU3NTYyMSwgMC43MDgyODEsIDAuODQwNjkxIiwgXAotICAgICAgICAgICIwLjA4MDM0NywgMC4yMTQyMDEsIDAuMzIwMzU1LCAwLjQ1MjgyMywgMC41ODUxOTIsIDAuNzE3Njk3LCAwLjg1MDIxNSIsIFwKLSAgICAgICAgICAiMC4wOTE5OCwgMC4yMjk5OTMsIDAuMzM1OTg5LCAwLjQ2ODM0NywgMC42MDA5MjEsIDAuNzMzMTgxLCAwLjg2NTY2OCIsIFwKLSAgICAgICAgICAiMC4xMDA3MjgsIDAuMjQzOTM2LCAwLjM0OTYyMSwgMC40ODE5NzgsIDAuNjEzOTQ5LCAwLjc0NjczOSwgMC44NzkyMiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzg3NjMsIDAuMzUyMTc2LCAwLjU3MTMzMiwgMC44NDQ4NjMsIDEuMTE5MTksIDEuMzkyOTgsIDEuNjY2MzkiLCBcCi0gICAgICAgICAgIjAuMDc5NDQ1LCAwLjM1MjIxNSwgMC41NzExODYsIDAuODQ1MTkyLCAxLjExODYyLCAxLjM5MjYyLCAxLjY2NjQ2IiwgXAotICAgICAgICAgICIwLjA4NDg5NSwgMC4zNTIzNDQsIDAuNTcxMjc1LCAwLjg0NTE5OCwgMS4xMTkxNCwgMS4zOTIzMSwgMS42NjY5IiwgXAotICAgICAgICAgICIwLjA5MjY0LCAwLjM1Mjk4NCwgMC41NzEyOCwgMC44NDQ5NzYsIDEuMTE4NTksIDEuMzkyNzEsIDEuNjY2MjMiLCBcCi0gICAgICAgICAgIjAuMTAwODQsIDAuMzU1ODQ1LCAwLjU3MTUwNCwgMC44NDQ4NywgMS4xMTg5NSwgMS4zOTI3OSwgMS42NjU4OCIsIFwKLSAgICAgICAgICAiMC4xMTQ5ODIsIDAuMzYzMDEzLCAwLjU3NDQ4NiwgMC44NDUxMzQsIDEuMTE4OTYsIDEuMzkyNTksIDEuNjY1ODQiLCBcCi0gICAgICAgICAgIjAuMTI2NTUxLCAwLjM3MTM3LCAwLjU3OTM3NiwgMC44NDY4MzYsIDEuMTE4NTMsIDEuMzkyNSwgMS42NjcwOCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDYzMTQyLCAwLjI3MzY1NCwgMC40NDM5ODgsIDAuNjU2ODcxLCAwLjg3MDMzNCwgMS4wODI3NCwgMS4yOTUxOSIsIFwKLSAgICAgICAgICAiMC4wNjk0MjksIDAuMjgwMjQyLCAwLjQ1MDYyNCwgMC42NjM3MjksIDAuODc2MzQ5LCAxLjA4OTksIDEuMzAxNzciLCBcCi0gICAgICAgICAgIjAuMDc2NzcsIDAuMjg3NjYxLCAwLjQ1Nzc4NCwgMC42NzA2NDQsIDAuODg0MTQ0LCAxLjA5NjksIDEuMzEwMzUiLCBcCi0gICAgICAgICAgIjAuMDg0Mzg5LCAwLjI5NTEyNSwgMC40NjU2MjcsIDAuNjc5MTA5LCAwLjg5MTIwMiwgMS4xMDQyOCwgMS4zMTY5OCIsIFwKLSAgICAgICAgICAiMC4wOTE3MjEsIDAuMzAyODU3LCAwLjQ3MzI4MSwgMC42ODY4MDYsIDAuODk5MDQ1LCAxLjExMjk1LCAxLjMyNDU1IiwgXAotICAgICAgICAgICIwLjEwMTg4OCwgMC4zMTQ5MTQsIDAuNDg1Mjk3LCAwLjY5ODM5NiwgMC45MTIxMTMsIDEuMTI0MTQsIDEuMzM2OTIiLCBcCi0gICAgICAgICAgIjAuMTA5NjcxLCAwLjMyNTU1OCwgMC40OTU4MDMsIDAuNzA4ODksIDAuOTIxODU3LCAxLjEzNTI5LCAxLjM0Nzg3Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExNzMyOSwgMC41NjQ2NjEsIDAuOTI0NjY1LCAxLjM3Mzg2LCAxLjgyNDU2LCAyLjI3MzM5LCAyLjcyMzUxIiwgXAotICAgICAgICAgICIwLjExNzQxNSwgMC41NjQ2NDgsIDAuOTI0Mjc3LCAxLjM3NDYzLCAxLjgyMzY1LCAyLjI3NDQ3LCAyLjcyNjczIiwgXAotICAgICAgICAgICIwLjExOTcyNSwgMC41NjQ1NDUsIDAuOTI1NTAxLCAxLjM3NDg5LCAxLjgyMzg1LCAyLjI3NDA3LCAyLjcyMjgyIiwgXAotICAgICAgICAgICIwLjEyNDA0MSwgMC41NjQ1MDYsIDAuOTI0MTgxLCAxLjM3NDY3LCAxLjgyNDE3LCAyLjI3Njc1LCAyLjcyNjg5IiwgXAotICAgICAgICAgICIwLjEyOTQ0LCAwLjU2NDkzNiwgMC45MjQyMSwgMS4zNzQzMSwgMS44MjY0OSwgMi4yNzM2MywgMi43MjYyNCIsIFwKLSAgICAgICAgICAiMC4xMzk0ODIsIDAuNTY3Mjg0LCAwLjkyNDM5NCwgMS4zNzU5OCwgMS44MjM4NywgMi4yNzY1NSwgMi43MjQzNSIsIFwKLSAgICAgICAgICAiMC4xNDg4MzIsIDAuNTcxNjM1LCAwLjkyNTQ4NSwgMS4zNzQwOSwgMS44MjU4OCwgMi4yNzMyNywgMi43Mjc0MiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjM5MTgsIDAuMTAwMTU4LCAwLjE2MDkyLCAwLjIzNjc5NiwgMC4zMTI1OTYsIDAuMzg4MzUxLCAwLjQ2NDEwNCIsIFwKLSAgICAgICAgICAiMC4wMzIzNDUsIDAuMTA4NTc5LCAwLjE2OTM0NiwgMC4yNDUyMDUsIDAuMzIxMDI0LCAwLjM5Njc4MSwgMC40NzI1MTgiLCBcCi0gICAgICAgICAgIjAuMDQyNDk2LCAwLjExOTAzOSwgMC4xNzk5MywgMC4yNTU1NzgsIDAuMzMxMzkyLCAwLjQwNzEzMSwgMC40ODI5MDQiLCBcCi0gICAgICAgICAgIjAuMDUwNDYyLCAwLjEyOTgyMSwgMC4xOTA1MjYsIDAuMjY2MzY3LCAwLjM0MjE4NSwgMC40MTc5MjksIDAuNDkzNjY1IiwgXAotICAgICAgICAgICIwLjA1NjkzMywgMC4xNDA0MTgsIDAuMjAwNjE2LCAwLjI3NjM5MiwgMC4zNTA2MjUsIDAuNDI3OTQ2LCAwLjUwMzY2NCIsIFwKLSAgICAgICAgICAiMC4wNjUzMzIsIDAuMTU3MTE4LCAwLjIxODMzLCAwLjI5MzUzNCwgMC4zNjkxMzQsIDAuNDQ1MDE0LCAwLjUyMDcyOSIsIFwKLSAgICAgICAgICAiMC4wNzEyNjUsIDAuMTcyMDYyLCAwLjIzMjUxNywgMC4zMDgwMDcsIDAuMzgzNzkxLCAwLjQ1OTQyOCwgMC41MzUxOTUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQzMjU2LCAwLjIwMDQ0MiwgMC4zMjYxNzgsIDAuNDgzNDk0LCAwLjY0MDgwMywgMC43OTgxOSwgMC45NTUyNzYiLCBcCi0gICAgICAgICAgIjAuMDQ2MDU1LCAwLjIwMDQwNCwgMC4zMjYyNDQsIDAuNDgzNDM4LCAwLjY0MDc3NCwgMC43OTc5NCwgMC45NTUzNzEiLCBcCi0gICAgICAgICAgIjAuMDU0Mjc4LCAwLjIwMTQ4OCwgMC4zMjYyNDIsIDAuNDgzNDIxLCAwLjY0MDcyOCwgMC43OTgwMDQsIDAuOTU1Mzk0IiwgXAotICAgICAgICAgICIwLjA2MzY4OCwgMC4yMDU0MDQsIDAuMzI3MzcsIDAuNDgzNDM1LCAwLjY0MDgyNSwgMC43OTgwMzQsIDAuOTU1MzQ2IiwgXAotICAgICAgICAgICIwLjA3Mjc2OSwgMC4yMTEyOTksIDAuMzMwNzg0LCAwLjQ4NDQyNCwgMC42NDA3OTgsIDAuNzk4MTE3LCAwLjk1NTM0OCIsIFwKLSAgICAgICAgICAiMC4wODY0NDQsIDAuMjIyOTMyLCAwLjMzODQwNCwgMC40ODkwMjIsIDAuNjQyNjM2LCAwLjc5ODQ4MSwgMC45NTU0MzkiLCBcCi0gICAgICAgICAgIjAuMDk3NTQ4LCAwLjIzNDQzOCwgMC4zNDc3NCwgMC40OTUyMjgsIDAuNjQ2OTAxLCAwLjgwMDU0OCwgMC45NTU5NTIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQzAiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1NjIyMywgMC4yNjY3MzYsIDAuNDM2MjA4LCAwLjY0OTgzOCwgMC44NjM0MjksIDEuMDc1ODMsIDEuMjg4MTkiLCBcCi0gICAgICAgICAgIjAuMDYzMTk3LCAwLjI3Mzc4LCAwLjQ0Mzg1LCAwLjY1NzM0NiwgMC44Njk4MzEsIDEuMDgzNDcsIDEuMjk1MjciLCBcCi0gICAgICAgICAgIjAuMDcyNTM1LCAwLjI4Mjg0MiwgMC40NTI4ODYsIDAuNjY2NTcyLCAwLjg3ODc3MywgMS4wOTIzNSwgMS4zMDQ0NSIsIFwKLSAgICAgICAgICAiMC4wODE4ODUsIDAuMjkxODksIDAuNDYxNjg0LCAwLjY3NDU2OCwgMC44ODc1ODUsIDEuMTAxODMsIDEuMzEzMSIsIFwKLSAgICAgICAgICAiMC4wOTE0MjksIDAuMzAwODI2LCAwLjQ3MTA3OCwgMC42ODQxNzgsIDAuODk2NzczLCAxLjExMDUsIDEuMzIzMjciLCBcCi0gICAgICAgICAgIjAuMTA0MjcsIDAuMzE1NzA5LCAwLjQ4NTM5NSwgMC42OTgxMzEsIDAuOTExNjYzLCAxLjEyNDQ3LCAxLjMzNzE2IiwgXAotICAgICAgICAgICIwLjExNDA2NywgMC4zMjg3MTgsIDAuNDk4MTY3LCAwLjcxMDc1OSwgMC45MjQwNzYsIDEuMTM3NDgsIDEuMzUwMTkiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTE3MiwgMC41NjQ0ODYsIDAuOTIzODY0LCAxLjM3Mzk4LCAxLjgyMzk3LCAyLjI3MzM3LCAyLjcyNjg3IiwgXAotICAgICAgICAgICIwLjExNzA4MywgMC41NjUzNzQsIDAuOTI1NSwgMS4zNzM5NiwgMS44MjQwMywgMi4yNzI5OCwgMi43MjYzNSIsIFwKLSAgICAgICAgICAiMC4xMjExNzQsIDAuNTY1Mjk1LCAwLjkyNDMwMywgMS4zNzQ1NiwgMS44MjM5NCwgMi4yNzMxNSwgMi43MjM5MyIsIFwKLSAgICAgICAgICAiMC4xMjc2ODcsIDAuNTY1MTc4LCAwLjkyNDk3MiwgMS4zNzU1MywgMS44MjYyNCwgMi4yNzQwOCwgMi43MjYxNCIsIFwKLSAgICAgICAgICAiMC4xMzUzMzMsIDAuNTY1MzEzLCAwLjkyNDE0OCwgMS4zNzQ0MSwgMS44MjM2NCwgMi4yNzQ0NSwgMi43MjM2IiwgXAotICAgICAgICAgICIwLjE0Nzk4MiwgMC41Njg3MzUsIDAuOTI0MTcxLCAxLjM3NTgyLCAxLjgyMzM5LCAyLjI3MzE2LCAyLjcyMzc3IiwgXAotICAgICAgICAgICIwLjE1OTEyLCAwLjU3MzcwNCwgMC45MjU1MzMsIDEuMzc0NzUsIDEuODIzNTcsIDIuMjc0MTUsIDIuNzIyNzkiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDIxNjgzLCAwLjA5NzczMywgMC4xNTg0ODIsIDAuMjM0Mzc0LCAwLjMxMDE2NywgMC4zODU5MzQsIDAuNDYxNzA5IiwgXAotICAgICAgICAgICIwLjAzMDE2NywgMC4xMDYyMzQsIDAuMTY2OTk4LCAwLjI0Mjg1NiwgMC4zMTg2NzYsIDAuMzk0NDc2LCAwLjQ3MDIxNiIsIFwKLSAgICAgICAgICAiMC4wNDAxNTEsIDAuMTE2Njk3LCAwLjE3NzQ2NCwgMC4yNTMzMTgsIDAuMzI5MjkyLCAwLjQwNDkzNiwgMC40ODA4NDciLCBcCi0gICAgICAgICAgIjAuMDQ3MzY1LCAwLjEyNzU3MSwgMC4xODgyNzgsIDAuMjYyOTQ0LCAwLjMzOTk1OSwgMC40MTU3MDQsIDAuNDkxNDc3IiwgXAotICAgICAgICAgICIwLjA1MzE1NCwgMC4xMzgwODIsIDAuMTk4NDA5LCAwLjI3NDE4MiwgMC4zNDg0MzcsIDAuNDI1Nzc1LCAwLjUwMTUxIiwgXAotICAgICAgICAgICIwLjA2MDczOSwgMC4xNTU0LCAwLjIxNTk3OCwgMC4yOTEyMzUsIDAuMzY2OTE1LCAwLjQ0MjcyMSwgMC41MTg0MjgiLCBcCi0gICAgICAgICAgIjAuMDY2MzQ0LCAwLjE2OTk3NSwgMC4yMzA1MDUsIDAuMzA2MDc5LCAwLjM4MTc2NSwgMC40NTc0NjMsIDAuNTMzMTg0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0MDMwOSwgMC4xOTc0NTksIDAuMzIzMjYxLCAwLjQ4MDcyMSwgMC42Mzc3OTksIDAuNzk1MzI2LCAwLjk1Mjk4NyIsIFwKLSAgICAgICAgICAiMC4wNDM0MzYsIDAuMTk3NDUsIDAuMzIzMjYyLCAwLjQ4MDU5LCAwLjYzNzk0LCAwLjc5NTQyOCwgMC45NTI0NjMiLCBcCi0gICAgICAgICAgIjAuMDUxNjc3LCAwLjE5ODYxMywgMC4zMjMyNDYsIDAuNDgwNjExLCAwLjYzNzkxOSwgMC43OTUyMTQsIDAuOTUyODA4IiwgXAotICAgICAgICAgICIwLjA2MTM1MSwgMC4yMDI1NjMsIDAuMzI0NDk0LCAwLjQ4MDY4MiwgMC42MzgxMDQsIDAuNzk1NDU5LCAwLjk1MzAyOSIsIFwKLSAgICAgICAgICAiMC4wNzA0MzcsIDAuMjA4NTYzLCAwLjMyODAxMywgMC40ODE1MDMsIDAuNjM3OTI1LCAwLjc5NTQzMiwgMC45NTI5NjMiLCBcCi0gICAgICAgICAgIjAuMDgzNzM1LCAwLjIxOTY1OCwgMC4zMzU3MSwgMC40ODYyOTIsIDAuNjM5NzgzLCAwLjc5NTcwOCwgMC45NTI5NTEiLCBcCi0gICAgICAgICAgIjAuMDk0MjM2LCAwLjIzMTQ1MywgMC4zNDQ3MDgsIDAuNDkyMzk3LCAwLjY0MzcwMSwgMC43OTc3MzYsIDAuOTUzNTAzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwODYyNSwgMC4wMDg2MzEsIDAuMDA4NjMxLCAwLjAwODYzMSwgMC4wMDg2MjksIDAuMDA4NjMxLCAwLjAwODYzMSIsIFwKLSAgICAgICAgICAiMC4wMDg1OCwgMC4wMDg2MTIsIDAuMDA4NjE0LCAwLjAwODYxOCwgMC4wMDg2MTgsIDAuMDA4NjE5LCAwLjAwODYxOSIsIFwKLSAgICAgICAgICAiMC4wMDg1NTUsIDAuMDA4NjAxLCAwLjAwODYwOSwgMC4wMDg2MDgsIDAuMDA4NjA5LCAwLjAwODYxNSwgMC4wMDg2MjIiLCBcCi0gICAgICAgICAgIjAuMDA4NTUsIDAuMDA4NTk5LCAwLjAwODYwNSwgMC4wMDg2MSwgMC4wMDg2MTIsIDAuMDA4NjEzLCAwLjAwODYxNCIsIFwKLSAgICAgICAgICAiMC4wMDg1NjcsIDAuMDA4NTk4LCAwLjAwODYwNSwgMC4wMDg2MTMsIDAuMDA4NjEyLCAwLjAwODYxMiwgMC4wMDg2MTQiLCBcCi0gICAgICAgICAgIjAuMDA4NjM1LCAwLjAwODYxOCwgMC4wMDg2MTksIDAuMDA4NjE5LCAwLjAwODYxOSwgMC4wMDg2MTksIDAuMDA4NjE5IiwgXAotICAgICAgICAgICIwLjAwODczMiwgMC4wMDg2NTUsIDAuMDA4NjQ1LCAwLjAwODYzNiwgMC4wMDg2MzUsIDAuMDA4NjMxLCAwLjAwODYzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxNzYsIDAuMDAxNzYxLCAwLjAwMTc2LCAwLjAwMTc2LCAwLjAwMTc2LCAwLjAwMTc1OSwgMC4wMDE3NTkiLCBcCi0gICAgICAgICAgIjAuMDAxNjc2LCAwLjAwMTY5LCAwLjAwMTY5MSwgMC4wMDE2OTMsIDAuMDAxNjksIDAuMDAxNjkyLCAwLjAwMTY5MiIsIFwKLSAgICAgICAgICAiMC4wMDE2NjYsIDAuMDAxNjc4LCAwLjAwMTY3OSwgMC4wMDE2ODEsIDAuMDAxNjgsIDAuMDAxNjgsIDAuMDAxNjgiLCBcCi0gICAgICAgICAgIjAuMDAxNzAxLCAwLjAwMTY4NSwgMC4wMDE2ODIsIDAuMDAxNjgxLCAwLjAwMTY4LCAwLjAwMTY3OSwgMC4wMDE2NzgiLCBcCi0gICAgICAgICAgIjAuMDAxNzc1LCAwLjAwMTcwNywgMC4wMDE2OTcsIDAuMDAxNjksIDAuMDAxNjg2LCAwLjAwMTY4NCwgMC4wMDE2ODEiLCBcCi0gICAgICAgICAgIjAuMDAxOTU1LCAwLjAwMTc2OCwgMC4wMDE3MzgsIDAuMDAxNzIsIDAuMDAxNzA4LCAwLjAwMTcwMiwgMC4wMDE2OTciLCBcCi0gICAgICAgICAgIjAuMDAyMTUxLCAwLjAwMTg0MywgMC4wMDE3OSwgMC4wMDE3NTksIDAuMDAxNzQsIDAuMDAxNzI4LCAwLjAwMTcxOSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkExIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDc2NjIsIDAuMDA3Njg0LCAwLjAwNzY4NiwgMC4wMDc2ODcsIDAuMDA3Njg2LCAwLjAwNzY4OCwgMC4wMDc2ODYiLCBcCi0gICAgICAgICAgIjAuMDA3NTg2LCAwLjAwNzY3LCAwLjAwNzY4MSwgMC4wMDc2ODUsIDAuMDA3Njg5LCAwLjAwNzY5MSwgMC4wMDc2OTIiLCBcCi0gICAgICAgICAgIjAuMDA3NTI5LCAwLjAwNzY0NywgMC4wMDc2NjUsIDAuMDA3NjcxLCAwLjAwNzY4MiwgMC4wMDc2OTIsIDAuMDA3Njk1IiwgXAotICAgICAgICAgICIwLjAwNzUwOSwgMC4wMDc2MywgMC4wMDc2NTgsIDAuMDA3NjY1LCAwLjAwNzY3NiwgMC4wMDc2OCwgMC4wMDc2ODYiLCBcCi0gICAgICAgICAgIjAuMDA3NTE3LCAwLjAwNzYyLCAwLjAwNzY0NywgMC4wMDc2NjMsIDAuMDA3NjY3LCAwLjAwNzY3NCwgMC4wMDc2OCIsIFwKLSAgICAgICAgICAiMC4wMDc1NzksIDAuMDA3NjI4LCAwLjAwNzY0OSwgMC4wMDc2NjMsIDAuMDA3NjcxLCAwLjAwNzY3OCwgMC4wMDc2OCIsIFwKLSAgICAgICAgICAiMC4wMDc2NzIsIDAuMDA3NjUyLCAwLjAwNzY2NiwgMC4wMDc2NzIsIDAuMDA3NjgxLCAwLjAwNzY4NCwgMC4wMDc2ODYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDE3NjcsIDAuMDAxNzY5LCAwLjAwMTc2OCwgMC4wMDE3NjgsIDAuMDAxNzY4LCAwLjAwMTc2NywgMC4wMDE3NjciLCBcCi0gICAgICAgICAgIjAuMDAxNjg3LCAwLjAwMTY5NiwgMC4wMDE2OTcsIDAuMDAxNjk4LCAwLjAwMTY5NiwgMC4wMDE2OTgsIDAuMDAxNjk4IiwgXAotICAgICAgICAgICIwLjAwMTc0NSwgMC4wMDE3MDYsIDAuMDAxNywgMC4wMDE2OTcsIDAuMDAxNjk1LCAwLjAwMTY5NCwgMC4wMDE2OTMiLCBcCi0gICAgICAgICAgIjAuMDAxODMzLCAwLjAwMTczNCwgMC4wMDE3MTYsIDAuMDAxNzA3LCAwLjAwMTcwMiwgMC4wMDE2OTgsIDAuMDAxNjk1IiwgXAotICAgICAgICAgICIwLjAwMTkwOSwgMC4wMDE3NzksIDAuMDAxNzQ5LCAwLjAwMTcyOSwgMC4wMDE3MTksIDAuMDAxNzEyLCAwLjAwMTcwNiIsIFwKLSAgICAgICAgICAiMC4wMDIxNDUsIDAuMDAxODgxLCAwLjAwMTgxNiwgMC4wMDE3ODIsIDAuMDAxNzU5LCAwLjAwMTc0NCwgMC4wMDE3MzMiLCBcCi0gICAgICAgICAgIjAuMDAyNDMsIDAuMDAxOTkyLCAwLjAwMTg5NywgMC4wMDE4NDIsIDAuMDAxODA0LCAwLjAwMTc4NCwgMC4wMDE3NjkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2ODgxLCAwLjAwNjkwMSwgMC4wMDY5MDMsIDAuMDA2OTA0LCAwLjAwNjkwNCwgMC4wMDY5MDUsIDAuMDA2OTA0IiwgXAotICAgICAgICAgICIwLjAwNjgwOSwgMC4wMDY4NzgsIDAuMDA2ODg5LCAwLjAwNjg5NCwgMC4wMDY4OTYsIDAuMDA2ODk4LCAwLjAwNjg5OCIsIFwKLSAgICAgICAgICAiMC4wMDY3ODUsIDAuMDA2ODYsIDAuMDA2ODc1LCAwLjAwNjg4NCwgMC4wMDY4ODksIDAuMDA2ODkxLCAwLjAwNjg5MyIsIFwKLSAgICAgICAgICAiMC4wMDY4LCAwLjAwNjg1MywgMC4wMDY4NjksIDAuMDA2ODc5LCAwLjAwNjg4NSwgMC4wMDY4OSwgMC4wMDY4ODkiLCBcCi0gICAgICAgICAgIjAuMDA2ODQ5LCAwLjAwNjg1OCwgMC4wMDY4NzEsIDAuMDA2ODgyLCAwLjAwNjg4NSwgMC4wMDY4ODcsIDAuMDA2ODg5IiwgXAotICAgICAgICAgICIwLjAwNjk5LCAwLjAwNjg5NSwgMC4wMDY4OTMsIDAuMDA2ODk0LCAwLjAwNjg5NSwgMC4wMDY4OTYsIDAuMDA2ODk2IiwgXAotICAgICAgICAgICIwLjAwNzE1OSwgMC4wMDY5NTIsIDAuMDA2OTI4LCAwLjAwNjkyLCAwLjAwNjkxMywgMC4wMDY5MTEsIDAuMDA2OTA5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwNzIyLCAwLjAwMDczMiwgMC4wMDA3MzMsIDAuMDAwNzMzLCAwLjAwMDczNCwgMC4wMDA3MzMsIDAuMDAwNzM0IiwgXAotICAgICAgICAgICIwLjAwMDY5NCwgMC4wMDA3MywgMC4wMDA3MzUsIDAuMDAwNzM3LCAwLjAwMDczOSwgMC4wMDA3NCwgMC4wMDA3NCIsIFwKLSAgICAgICAgICAiMC4wMDA3NTMsIDAuMDAwNzQ2LCAwLjAwMDc1MSwgMC4wMDA3NDcsIDAuMDAwNzQ3LCAwLjAwMDc0NiwgMC4wMDA3NDYiLCBcCi0gICAgICAgICAgIjAuMDAwODQ0LCAwLjAwMDc3LCAwLjAwMDc2MSwgMC4wMDA3NTgsIDAuMDAwNzUzLCAwLjAwMDc1MiwgMC4wMDA3NSIsIFwKLSAgICAgICAgICAiMC4wMDA5NzgsIDAuMDAwODM2LCAwLjAwMDgyOSwgMC4wMDA4MDQsIDAuMDAwNzg5LCAwLjAwMDc4NCwgMC4wMDA3NzciLCBcCi0gICAgICAgICAgIjAuMDAxMzIyLCAwLjAwMTAxMSwgMC4wMDA5MzQsIDAuMDAwODc2LCAwLjAwMDg0NiwgMC4wMDA4MywgMC4wMDA4MTciLCBcCi0gICAgICAgICAgIjAuMDAxNjcyLCAwLjAwMTE3MywgMC4wMDEwMzgsIDAuMDAwOTU1LCAwLjAwMDkxNCwgMC4wMDA4ODMsIDAuMDAwODY0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQzAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNTM3NSwgMC4wMDU0MDYsIDAuMDA1NDA5LCAwLjAwNTQxMSwgMC4wMDU0MTIsIDAuMDA1NDExLCAwLjAwNTQxMyIsIFwKLSAgICAgICAgICAiMC4wMDUzMTIsIDAuMDA1MzgsIDAuMDA1MzkyLCAwLjAwNTM5OSwgMC4wMDU0MDMsIDAuMDA1NDAyLCAwLjAwNTQwNCIsIFwKLSAgICAgICAgICAiMC4wMDUzNSwgMC4wMDUzNzQsIDAuMDA1Mzg1LCAwLjAwNTM5MywgMC4wMDUzOTYsIDAuMDA1Mzk5LCAwLjAwNTM5OSIsIFwKLSAgICAgICAgICAiMC4wMDU0NzIsIDAuMDA1NCwgMC4wMDUzOTksIDAuMDA1NDAyLCAwLjAwNTQwMywgMC4wMDU0MDQsIDAuMDA1NDA0IiwgXAotICAgICAgICAgICIwLjAwNTYzNiwgMC4wMDU0NTcsIDAuMDA1NDMxLCAwLjAwNTQyMywgMC4wMDU0MTgsIDAuMDA1NDE3LCAwLjAwNTQxNiIsIFwKLSAgICAgICAgICAiMC4wMDU5MjksIDAuMDA1NTU3LCAwLjAwNTQ5OSwgMC4wMDU0NjksIDAuMDA1NDUzLCAwLjAwNTQ0NCwgMC4wMDU0NCIsIFwKLSAgICAgICAgICAiMC4wMDYyMjYsIDAuMDA1NjgsIDAuMDA1NTgzLCAwLjAwNTUyOCwgMC4wMDU0OTgsIDAuMDA1NDgxLCAwLjAwNTQ2OCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDAxMiwgMC4wMDAwNTEsIDAuMDAwMDU1LCAwLjAwMDA1NywgMC4wMDAwNTgsIDAuMDAwMDU4LCAwLjAwMDA1OSIsIFwKLSAgICAgICAgICAiMC4wMDAwMjIsIDAuMDAwMDkyLCAwLjAwMDEwNCwgMC4wMDAxMSwgMC4wMDAxMTMsIDAuMDAwMTE1LCAwLjAwMDExNyIsIFwKLSAgICAgICAgICAiMC4wMDAwMzgsIDAuMDAwMTExLCAwLjAwMDEyLCAwLjAwMDEyNCwgMC4wMDAxMjQsIDAuMDAwMTI4LCAwLjAwMDEyNyIsIFwKLSAgICAgICAgICAiMC4wMDAyLCAwLjAwMDE0OSwgMC4wMDAxNDcsIDAuMDAwMTQ0LCAwLjAwMDE0MiwgMC4wMDAxNDQsIDAuMDAwMTQ0IiwgXAotICAgICAgICAgICIwLjAwMDI3OSwgMC4wMDAxOTQsIDAuMDAwMTksIDAuMDAwMTc1LCAwLjAwMDE2OCwgMC4wMDAxNjMsIDAuMDAwMTYiLCBcCi0gICAgICAgICAgIjAuMDAwNjA4LCAwLjAwMDM3MiwgMC4wMDAyOTgsIDAuMDAwMjM5LCAwLjAwMDIxMiwgMC4wMDAyMDEsIDAuMDAwMTkyIiwgXAotICAgICAgICAgICIwLjAwMDkwNywgMC4wMDA0NTcsIDAuMDAwMzU4LCAwLjAwMDI5NywgMC4wMDAyNjcsIDAuMDAwMjQ0LCAwLjAwMDIyOSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBBT0kyMTFYNCAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoQU9JMjExWDQpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMS41MzcwMTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQTApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMzU1NzM2OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMzU0NTk0OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMzU1NzM2OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjA5NywgMC4wMDIwOTYsIDAuMDAyMDk1LCAwLjAwMjA5NSwgMC4wMDIwOTQsIDAuMDAyMDk0LCAwLjAwMjA5NCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjIxNCwgMC4wMDIxMzYsIDAuMDAyMTI1LCAwLjAwMjExLCAwLjAwMjEwOSwgMC4wMDIxMDQsIDAuMDAyMTA0Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihBMSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAzMzc2OTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDMzNTg2OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMzM3Njk7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxMzExLCAwLjAwMTMwOSwgMC4wMDEzMDgsIDAuMDAxMzA4LCAwLjAwMTMwOCwgMC4wMDEzMDgsIDAuMDAxMzA4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyMzgyLCAwLjAwMjM4MywgMC4wMDIzODQsIDAuMDAyMzgzLCAwLjAwMjM4NCwgMC4wMDIzODQsIDAuMDAyMzg0Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAzMTYyNjc7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAzMTQ2NTM7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAzMTYyNjc7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxNzEzLCAwLjAwMTkxLCAwLjAwMTk2NywgMC4wMDE5NTUsIDAuMDAxOTc1LCAwLjAwMjAxLCAwLjAwMjAyMSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjIxNCwgMC4wMDIyMTUsIDAuMDAyMjE2LCAwLjAwMjIxNiwgMC4wMDIyMTYsIDAuMDAyMjE3LCAwLjAwMjIxNyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQzApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMzE4Nzk7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAzMTg3OTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDMxODY1MzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA0MDIsIDAuMDAwNDAyLCAwLjAwMDQwMiwgMC4wMDA0MDIsIDAuMDAwNDAyLCAwLjAwMDQwMiwgMC4wMDA0MDIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDE1ODgsIDAuMDAxNTg4LCAwLjAwMTU4OSwgMC4wMDE1ODgsIDAuMDAxNTg4LCAwLjAwMTU4OCwgMC4wMDE1ODgiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC40OTIzOTU7Ci0gICAgZnVuY3Rpb24gOiAiKCEoKChBMCBBMSkrQjApK0MwKSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0NjQ5NSwgMC4xOTY0MDcsIDAuMzQ2MDMsIDAuNDUzMDEzLCAwLjYyMzk5NiwgMC43NzQyMjEsIDAuOTg4NjI3IiwgXAotICAgICAgICAgICIwLjA1MjY4MSwgMC4yMDI4OTUsIDAuMzUyNzczLCAwLjQ1OTkzNywgMC42MzA4MjUsIDAuNzgxNTcsIDAuOTk0OTkzIiwgXAotICAgICAgICAgICIwLjA1ODQxNiwgMC4yMDg3ODEsIDAuMzU4Njg5LCAwLjQ2NTYxNSwgMC42MzY2ODksIDAuNzg2NTA0LCAxLjAwMDk0IiwgXAotICAgICAgICAgICIwLjA2MzAxNCwgMC4yMTM3NywgMC4zNjM2MzQsIDAuNDcwNjc4LCAwLjY0MjIwMywgMC43OTE1NTEsIDEuMDA2NjIiLCBcCi0gICAgICAgICAgIjAuMDY2OTIsIDAuMjE4NjU4LCAwLjM2ODY5LCAwLjQ3NTQxLCAwLjY0Njc5NSwgMC43OTY1NjMsIDEuMDEwNTkiLCBcCi0gICAgICAgICAgIjAuMDcxOTk0LCAwLjIyNjUsIDAuMzc2NDAxLCAwLjQ4MzM3MSwgMC42NTQ3NDMsIDAuODA0MzQ0LCAxLjAxOTM3IiwgXAotICAgICAgICAgICIwLjA3NTYzMywgMC4yMzMyOSwgMC4zODMxNjgsIDAuNDkwMjIzLCAwLjY2MjA5NiwgMC44MTEzNjksIDEuMDI1MTciKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzM5NCwgMC4zOTIzNDgsIDAuNzEwNjkzLCAwLjkzNzk3MywgMS4zMDIxNSwgMS42MjA0NSwgMi4wNzQwOCIsIFwKLSAgICAgICAgICAiMC4wNzQxLCAwLjM5MjQxNSwgMC43MTA0ODIsIDAuOTM4MDc5LCAxLjMwMTksIDEuNjIwMjUsIDIuMDczOTgiLCBcCi0gICAgICAgICAgIjAuMDc1ODE5LCAwLjM5MjMyNSwgMC43MTA0NjIsIDAuOTM3ODE0LCAxLjMwMTkzLCAxLjYyMDM3LCAyLjA3NDIxIiwgXAotICAgICAgICAgICIwLjA3ODc0NSwgMC4zOTI4MDYsIDAuNzEwOTAzLCAwLjkzODE3MSwgMS4zMDE4NSwgMS42MjAzNiwgMi4wNzUxNiIsIFwKLSAgICAgICAgICAiMC4wODI3MjksIDAuMzkzNzM0LCAwLjcxMDU2NywgMC45MzgyMjcsIDEuMzAxNDMsIDEuNjIwNSwgMi4wNzQxNyIsIFwKLSAgICAgICAgICAiMC4wODk3MDIsIDAuMzk2NDk4LCAwLjcxMTUxMywgMC45Mzg0NzIsIDEuMzAyMDUsIDEuNjIwMjQsIDIuMDc1MTMiLCBcCi0gICAgICAgICAgIjAuMDk1ODY3LCAwLjQwMDAxNCwgMC43MTM1MTEsIDAuOTM4OTUyLCAxLjMwMTkzLCAxLjYyMDE2LCAyLjA3NTE5Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDMxNTA3LCAwLjEyNzA0NiwgMC4yMjEwNywgMC4yODc4OTksIDAuMzk0OTQ1LCAwLjQ4ODY0LCAwLjYyMjIzMiIsIFwKLSAgICAgICAgICAiMC4wMzc5NTcsIDAuMTMzNiwgMC4yMjc0NjIsIDAuMjk0MzksIDAuNDAxNDY3LCAwLjQ5NTE3NSwgMC42Mjg3MjciLCBcCi0gICAgICAgICAgIjAuMDQ2MDQzLCAwLjE0MTg0OSwgMC4yMzU4NzMsIDAuMzAyODA2LCAwLjQwOTg4OSwgMC41MDM1NTQsIDAuNjM3MzM2IiwgXAotICAgICAgICAgICIwLjA1MzAwNCwgMC4xNTAwMTIsIDAuMjQ0MzU2LCAwLjMxMTM1OCwgMC40MTg0NTUsIDAuNTEyMjM4LCAwLjY0NTc0MSIsIFwKLSAgICAgICAgICAiMC4wNTg2MTQsIDAuMTU4MzI3LCAwLjI1MjU4NywgMC4zMTk0OTksIDAuNDI2NjQ5LCAwLjUyMDQyNywgMC42NTQwNCIsIFwKLSAgICAgICAgICAiMC4wNjY3MTgsIDAuMTcxODA4LCAwLjI2NTY4NCwgMC4zMzMwMjEsIDAuNDQwMTQ0LCAwLjUzMzY4MSwgMC42Njc2NTkiLCBcCi0gICAgICAgICAgIjAuMDcyNjM4LCAwLjE4MzEzNCwgMC4yNzczMTksIDAuMzQ0MTU0LCAwLjQ1MTQ5LCAwLjU0NTU3NSwgMC42Nzk1NTQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTE1MDgsIDAuMjQ0ODU0LCAwLjQzODIzOSwgMC41NzY0MjMsIDAuNzk3NTgxLCAwLjk5MTQ1MiwgMS4yNjgxIiwgXAotICAgICAgICAgICIwLjA1MjU3NiwgMC4yNDQ3MDQsIDAuNDM4MjU4LCAwLjU3NjQzOSwgMC43OTc0NTksIDAuOTkxMTE2LCAxLjI2NzgyIiwgXAotICAgICAgICAgICIwLjA1NzI4NywgMC4yNDQ5OSwgMC40MzgxMjksIDAuNTc2NDksIDAuNzk3NTIxLCAwLjk5MTU4LCAxLjI2NzQiLCBcCi0gICAgICAgICAgIjAuMDYzNjAyLCAwLjI0Njg3NSwgMC40MzgyODIsIDAuNTc2NTIyLCAwLjc5NzU5NiwgMC45OTA5OTksIDEuMjY4MDgiLCBcCi0gICAgICAgICAgIjAuMDcwMzk4LCAwLjI1MDA5MywgMC40Mzk0NDgsIDAuNTc2NzM2LCAwLjc5NzYzMSwgMC45OTEwMjUsIDEuMjY3NzEiLCBcCi0gICAgICAgICAgIjAuMDgwNTU1LCAwLjI1NzMyNCwgMC40NDMyNDMsIDAuNTc4OTM5LCAwLjc5ODA5MywgMC45OTExMSwgMS4yNjc1MyIsIFwKLSAgICAgICAgICAiMC4wODkwNDEsIDAuMjY0MzUxLCAwLjQ0ODA0NCwgMC41ODIwMjgsIDAuNzk5NzEzLCAwLjk5MTU4NiwgMS4yNjc3MyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDM3NzYsIDAuMTk0NzYzLCAwLjM0NTQ3NywgMC40NTMwNTYsIDAuNjI1ODk4LCAwLjc3NTUzNiwgMC45OTI4MzMiLCBcCi0gICAgICAgICAgIjAuMDQ5Nzg3LCAwLjIwMTIwOCwgMC4zNTIyNTMsIDAuNDU5OTgsIDAuNjMyMTE4LCAwLjc4MzgxOCwgMC45OTg2ODkiLCBcCi0gICAgICAgICAgIjAuMDU1Mzg0LCAwLjIwNjg2OSwgMC4zNTgwNjksIDAuNDY1NDg2LCAwLjYzNzc3MiwgMC43ODg3ODMsIDEuMDA0MTkiLCBcCi0gICAgICAgICAgIjAuMDU5ODI2LCAwLjIxMTk0OSwgMC4zNjI5NzEsIDAuNDcwNzg5LCAwLjY0MzE0NSwgMC43OTQzLCAxLjAwOTc1IiwgXAotICAgICAgICAgICIwLjA2MzUxNSwgMC4yMTY4MjIsIDAuMzY3NzM1LCAwLjQ3NjAxNSwgMC42NDc5ODIsIDAuNzk4NzY4LCAxLjAxNDI2IiwgXAotICAgICAgICAgICIwLjA2ODMxMiwgMC4yMjQ2MjQsIDAuMzc1NTUyLCAwLjQ4MzM4NSwgMC42NTU4NDEsIDAuODA2NjUxLCAxLjAyMzEiLCBcCi0gICAgICAgICAgIjAuMDcxNzcxLCAwLjIzMTM4NiwgMC4zODI1NTIsIDAuNDkwMjc1LCAwLjY2MjgxMSwgMC44MTM1MzksIDEuMDI4OTEiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzA0MiwgMC4zOTA4NjksIDAuNzExNDgsIDAuOTQwMTgxLCAxLjMwNTc4LCAxLjYyNTcyLCAyLjA4NDIzIiwgXAotICAgICAgICAgICIwLjA3MDYxNiwgMC4zOTExMzEsIDAuNzEwODY4LCAwLjkzOTkwMywgMS4zMDc1OSwgMS42MjY5LCAyLjA4MzcyIiwgXAotICAgICAgICAgICIwLjA3MjQwNywgMC4zOTA2NCwgMC43MTA4NDksIDAuOTQwNjkzLCAxLjMwNjczLCAxLjYyODQ4LCAyLjA4NDI0IiwgXAotICAgICAgICAgICIwLjA3NTUwMywgMC4zOTEyODEsIDAuNzExODUzLCAwLjkzOTU4MiwgMS4zMDc3NCwgMS42MjY2MSwgMi4wODQ0NCIsIFwKLSAgICAgICAgICAiMC4wNzk3MDIsIDAuMzkyMDU4LCAwLjcxMTc0OCwgMC45Mzk5MDQsIDEuMzA3NzMsIDEuNjI4NTIsIDIuMDg2OTIiLCBcCi0gICAgICAgICAgIjAuMDg2ODEzLCAwLjM5NDg4NiwgMC43MTI0MywgMC45NDA3OTEsIDEuMzA2MDQsIDEuNjI4MTcsIDIuMDg0MSIsIFwKLSAgICAgICAgICAiMC4wOTI5NTgsIDAuMzk4MzI5LCAwLjcxNDQwNiwgMC45NDA5MzMsIDEuMzA2MDQsIDEuNjI4MjEsIDIuMDg2MzUiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzAwOTIsIDAuMTI1NjE1LCAwLjIxOTU4MiwgMC4yODY1NDcsIDAuMzkzODA3LCAwLjQ4NzE2NiwgMC42MjEwOTQiLCBcCi0gICAgICAgICAgIjAuMDM3NTg4LCAwLjEzMzEyOCwgMC4yMjcwMTYsIDAuMjkzOTIxLCAwLjQwMTAzLCAwLjQ5NDc1MywgMC42MjgyNzgiLCBcCi0gICAgICAgICAgIjAuMDQ3Mzc2LCAwLjE0MjY2NywgMC4yMzY1NTYsIDAuMzAzNTM3LCAwLjQxMDU2OCwgMC41MDQ0NzMsIDAuNjM4MjA2IiwgXAotICAgICAgICAgICIwLjA1NTg4OCwgMC4xNTI1MzYsIDAuMjQ2NCwgMC4zMTMzMjEsIDAuNDIwMzM2LCAwLjUxNDA0OCwgMC42NDc4ODEiLCBcCi0gICAgICAgICAgIjAuMDYzMjMxLCAwLjE2MjAyNywgMC4yNTU4NDksIDAuMzIyNywgMC40Mjk4NjMsIDAuNTIzNDM3LCAwLjY1NzExMiIsIFwKLSAgICAgICAgICAiMC4wNzIzODYsIDAuMTc3ODg1LCAwLjI3MTQxNiwgMC4zMzgzNSwgMC40NDUzNzMsIDAuNTM4Nzk5LCAwLjY3MjU2OCIsIFwKLSAgICAgICAgICAiMC4wNzk0NjgsIDAuMTkxODQ5LCAwLjI4NTE5NiwgMC4zNTE5MzEsIDAuNDU4OTc0LCAwLjU1MjUwMywgMC42ODYyMDUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTE1OTksIDAuMjQ0Njc1LCAwLjQzODE2OCwgMC41NzY2MiwgMC43OTc2OTEsIDAuOTkxNTAzLCAxLjI2NzUiLCBcCi0gICAgICAgICAgIjAuMDUzMjg1LCAwLjI0NDY4LCAwLjQzODI0NCwgMC41NzY0MDMsIDAuNzk3NDg1LCAwLjk5MDkzNCwgMS4yNjc4OCIsIFwKLSAgICAgICAgICAiMC4wNjAzOCwgMC4yNDUxMTIsIDAuNDM4MywgMC41NzY0OCwgMC43OTc1ODIsIDAuOTkxMDcxLCAxLjI2NzcyIiwgXAotICAgICAgICAgICIwLjA2ODk4OCwgMC4yNDc3OTEsIDAuNDM4Mzg0LCAwLjU3NjUyNCwgMC43OTc3NDUsIDAuOTkxMDIzLCAxLjI2NzkyIiwgXAotICAgICAgICAgICIwLjA3NzQzNywgMC4yNTI2MjIsIDAuNDQwMDA4LCAwLjU3NjYyNCwgMC43OTc0NTMsIDAuOTkxNDM3LCAxLjI2NzU0IiwgXAotICAgICAgICAgICIwLjA4OTk2OSwgMC4yNjI0NzIsIDAuNDQ1MzU0LCAwLjU3OTY0NCwgMC43OTc4ODcsIDAuOTkxMTkyLCAxLjI2NzcxIiwgXAotICAgICAgICAgICIwLjA5OTk5NCwgMC4yNzI2MTYsIDAuNDUyMDQ3LCAwLjU4NDQxNSwgMC44MDAzMzgsIDAuOTkxNTUyLCAxLjI2NzU1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0MjIxMiwgMC4xOTI1MiwgMC4zNDIxOTcsIDAuNDQ5NzY3LCAwLjYyMDg1OSwgMC43NzIzNTksIDAuOTg3MjciLCBcCi0gICAgICAgICAgIjAuMDQ4Mzc4LCAwLjE5ODc1NCwgMC4zNDg2MjksIDAuNDU1OTkyLCAwLjYyNzU3MywgMC43Nzg0NDgsIDAuOTk0MTg4IiwgXAotICAgICAgICAgICIwLjA1NTY2MiwgMC4yMDYxLCAwLjM1NjMyMiwgMC40NjI5NjgsIDAuNjM1MTE5LCAwLjc4NTQzOCwgMS4wMDIwNiIsIFwKLSAgICAgICAgICAiMC4wNjI0MzEsIDAuMjEzNjMxLCAwLjM2MzU4NCwgMC40NzA3MjYsIDAuNjQyNzk0LCAwLjc5Mjk2OCwgMS4wMDgyMyIsIFwKLSAgICAgICAgICAiMC4wNjgwODYsIDAuMjIxMTc3LCAwLjM3MTA3OCwgMC40Nzg2NDYsIDAuNjUwNDI3LCAwLjgwMDUwOCwgMS4wMTYzMSIsIFwKLSAgICAgICAgICAiMC4wNzU5MTcsIDAuMjMzMjk0LCAwLjM4MzI5OCwgMC40OTAwNzUsIDAuNjYxOTE4LCAwLjgxMjU5MiwgMS4wMjg5MyIsIFwKLSAgICAgICAgICAiMC4wODE4MTgsIDAuMjQzNzcsIDAuMzkzNDczLCAwLjUwMDY3OCwgMC42NzI3OTEsIDAuODI0MzQyLCAxLjAzODc1Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDczOTE4LCAwLjM5MjM1MiwgMC43MTE4NCwgMC45NDAxNjcsIDEuMzA2MDMsIDEuNjI2OTgsIDIuMDgzNzQiLCBcCi0gICAgICAgICAgIjAuMDc0NDYzLCAwLjM5MjM1LCAwLjcxMTg2NSwgMC45Mzk1NzcsIDEuMzA2MTIsIDEuNjI2MDYsIDIuMDgzNDIiLCBcCi0gICAgICAgICAgIjAuMDc3OTc5LCAwLjM5MjM0LCAwLjcxMDg0LCAwLjkzOTYzMywgMS4zMDU3MSwgMS42Mjc5LCAyLjA4NDI4IiwgXAotICAgICAgICAgICIwLjA4MzM0NSwgMC4zOTI5NDcsIDAuNzExNzM5LCAwLjk0MTExOCwgMS4zMDYzMywgMS42MjgzNSwgMi4wODU3MiIsIFwKLSAgICAgICAgICAiMC4wODk2NzMsIDAuMzk0ODA2LCAwLjcxMTAwOCwgMC45NDA4MTksIDEuMzA2MTMsIDEuNjI3OCwgMi4wODQ1MSIsIFwKLSAgICAgICAgICAiMC4wOTk5MDYsIDAuMzk5MjQyLCAwLjcxMjMyMywgMC45Mzk5MzksIDEuMzA1OTYsIDEuNjI2NTEsIDIuMDgzNDYiLCBcCi0gICAgICAgICAgIjAuMTA4MDMxLCAwLjQwNDUwNiwgMC43MTUwOSwgMC45NDE3MTcsIDEuMzA1NjksIDEuNjI2NjgsIDIuMDg0NDQiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTYyNDEsIDAuMDcwNjE3LCAwLjEyNDY1NSwgMC4xNjMyMDUsIDAuMjI0ODAzLCAwLjI3ODY4NiwgMC4zNTU2ODEiLCBcCi0gICAgICAgICAgIjAuMDI0NjYxLCAwLjA3OTA1MywgMC4xMzMwNjgsIDAuMTcxNjA1LCAwLjIzMzIyMywgMC4yODcxMDIsIDAuMzY0MDM3IiwgXAotICAgICAgICAgICIwLjAzMzA4MSwgMC4wODk0ODksIDAuMTQzNTIxLCAwLjE4MjIyMSwgMC4yNDM4NjUsIDAuMjk3NSwgMC4zNzQ2MiIsIFwKLSAgICAgICAgICAiMC4wMzg4OTIsIDAuMTAwMjM0LCAwLjE1NDMxNSwgMC4xOTI4NDgsIDAuMjU0NDQyLCAwLjMwODI5NSwgMC4zODUyNTEiLCBcCi0gICAgICAgICAgIjAuMDQzNjUxLCAwLjExMDkwMSwgMC4xNjQzNDIsIDAuMjAyODYxLCAwLjI2NDM5MywgMC4zMTgyNzcsIDAuMzk1MTc2IiwgXAotICAgICAgICAgICIwLjA0OTg2OCwgMC4xMjgyNTMsIDAuMTgyMTQ2LCAwLjIyMDU5NSwgMC4yODE0NzUsIDAuMzM1MjU0LCAwLjQxMjI2MSIsIFwKLSAgICAgICAgICAiMC4wNTQyNTQsIDAuMTQwOTY4LCAwLjE5NjQxNCwgMC4yMzQ3NDQsIDAuMjk2MDMyLCAwLjM0OTg4NSwgMC40MjY2NjEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjc3NzMsIDAuMTM5NDY1LCAwLjI1MTM3MiwgMC4zMzEyMywgMC40NTkxNDQsIDAuNTcxMDcsIDAuNzMxMDU2IiwgXAotICAgICAgICAgICIwLjAzMjAyOCwgMC4xMzk1MDcsIDAuMjUxMzE2LCAwLjMzMTI3NiwgMC40NTkxMzksIDAuNTcxMTA3LCAwLjczMDc3NiIsIFwKLSAgICAgICAgICAiMC4wNDExNSwgMC4xNDI1MDcsIDAuMjUxNjM1LCAwLjMzMTIyNiwgMC40NTkwOTUsIDAuNTcxMDIzLCAwLjczMDgwMiIsIFwKLSAgICAgICAgICAiMC4wNTAzLCAwLjE0ODI5MiwgMC4yNTQyOTcsIDAuMzMyMzczLCAwLjQ1OTEzMiwgMC41NzA5OTEsIDAuNzMwODA4IiwgXAotICAgICAgICAgICIwLjA1ODM5OSwgMC4xNTU0NTgsIDAuMjU5MjU3LCAwLjMzNTY3MSwgMC40NjA0NzYsIDAuNTcxMjYsIDAuNzMxMDU4IiwgXAotICAgICAgICAgICIwLjA2OTg4OSwgMC4xNjgzMjQsIDAuMjY4NjQzLCAwLjM0MzE3MiwgMC40NjU1MzgsIDAuNTc0MzI2LCAwLjczMTgwNiIsIFwKLSAgICAgICAgICAiMC4wNzkzOTQsIDAuMTgwODA1LCAwLjI3OTcwOSwgMC4zNTI0MzksIDAuNDcyMTcyLCAwLjU3OTIwNCwgMC43MzQ1NzkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQzAiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM1NDMxLCAwLjE4NTY1NiwgMC4zMzU0ODUsIDAuNDQyOTc2LCAwLjYxNDE1NiwgMC43NjUzNjMsIDAuOTgwNjIyIiwgXAotICAgICAgICAgICIwLjA0MjM5NSwgMC4xOTI4NDksIDAuMzQyNzg1LCAwLjQ1MDE3OSwgMC42MjE3MjIsIDAuNzcyMTc3LCAwLjk4ODAwMyIsIFwKLSAgICAgICAgICAiMC4wNTIwMzMsIDAuMjAxODcxLCAwLjM1MTY0LCAwLjQ1ODg4MiwgMC42MzAxMzUsIDAuNzgxNzk4LCAwLjk5NjIyMSIsIFwKLSAgICAgICAgICAiMC4wNjA5MTQsIDAuMjExMDI4LCAwLjM2MTAwNCwgMC40Njc5ODgsIDAuNjM5Njc0LCAwLjc5MDExLCAxLjAwNTM4IiwgXAotICAgICAgICAgICIwLjA2ODMxNSwgMC4yMjAwMDYsIDAuMzY5NDYzLCAwLjQ3Njg4MiwgMC42NDgwMzYsIDAuNzk4ODQ5LCAxLjAxNDEzIiwgXAotICAgICAgICAgICIwLjA3ODAxMywgMC4yMzUwOTIsIDAuMzg0MzkyLCAwLjQ5MTIxOCwgMC42NjMxNzIsIDAuODEzMjkyLCAxLjAyODYyIiwgXAotICAgICAgICAgICIwLjA4NTYzOSwgMC4yNDgzNDgsIDAuMzk3NTYzLCAwLjUwNDE0NCwgMC42NzU0NTQsIDAuODI2NzU1LCAxLjA0MTMxIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDczNDk0LCAwLjM5MjM5OSwgMC43MTEsIDAuOTM5OTY3LCAxLjMwNjIxLCAxLjYyNTkxLCAyLjA4NDQ2IiwgXAotICAgICAgICAgICIwLjA3NDU2NCwgMC4zOTIyMzgsIDAuNzEwODY3LCAwLjk0MDAxNywgMS4zMDY0MywgMS42MjYwOSwgMi4wODQ1IiwgXAotICAgICAgICAgICIwLjA4MDc1MSwgMC4zOTIzMTYsIDAuNzExNjIzLCAwLjkzOTY5OSwgMS4zMDcxLCAxLjYyNjk1LCAyLjA4NTA2IiwgXAotICAgICAgICAgICIwLjA4ODQ4NiwgMC4zOTI2MDYsIDAuNzEwOTc2LCAwLjk0MDAyOCwgMS4zMDU2OCwgMS42MjY3OSwgMi4wODY1NyIsIFwKLSAgICAgICAgICAiMC4wOTYyNzcsIDAuMzk1NDA0LCAwLjcxMDc5NiwgMC45Mzk2NCwgMS4zMDYwOSwgMS42MjYyMywgMi4wODQ3MSIsIFwKLSAgICAgICAgICAiMC4xMDgwOTcsIDAuNDAyMDA3LCAwLjcxMjc0LCAwLjkzOTk1OCwgMS4zMDU2MywgMS42Mjc5OCwgMi4wODUwNyIsIFwKLSAgICAgICAgICAiMC4xMTY0MDgsIDAuNDA5NjM5LCAwLjcxNjM3NCwgMC45NDE0OCwgMS4zMDcyLCAxLjYyNTk3LCAyLjA4NjEiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTQxMjEsIDAuMDY4MjY4LCAwLjEyMjMsIDAuMTYwODUzLCAwLjIyMjUzMywgMC4yNzY0MjIsIDAuMzUzMzkxIiwgXAotICAgICAgICAgICIwLjAyMjQ0NSwgMC4wNzY3ODIsIDAuMTMwODA4LCAwLjE2OTM3NiwgMC4yMzEwMiwgMC4yODQ5MzMsIDAuMzYxOTIzIiwgXAotICAgICAgICAgICIwLjAyOTgwOSwgMC4wODc0MzEsIDAuMTQxNDQzLCAwLjE3OTg2NiwgMC4yNDE0OTIsIDAuMjk1NTY4LCAwLjM3MjU0IiwgXAotICAgICAgICAgICIwLjAzNDg0OCwgMC4wOTc5NTQsIDAuMTUyMDg3LCAwLjE5MDYzMSwgMC4yNTE5MzksIDAuMzA2MTU2LCAwLjM4MzEzMiIsIFwKLSAgICAgICAgICAiMC4wMzg5NjYsIDAuMTA4NTgyLCAwLjE2MjE5NywgMC4yMDA3NDgsIDAuMjYyMzEsIDAuMzE2MjQxLCAwLjM5MzIiLCBcCi0gICAgICAgICAgIjAuMDQ0MjU3LCAwLjEyNDk4OSwgMC4xNzk2MDIsIDAuMjE3ODY5LCAwLjI3OTM1OSwgMC4zMzMxNTYsIDAuNDEwMDk0IiwgXAotICAgICAgICAgICIwLjA0NzYxLCAwLjEzNzM0NCwgMC4xOTQ0NDQsIDAuMjMyODU1LCAwLjI5NDI0NCwgMC4zNDgzOCwgMC40MjQ5MzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjQ4MDYsIDAuMTM2NjYsIDAuMjQ4NjEzLCAwLjMyODU2LCAwLjQ1NjcwMiwgMC41Njg1ODksIDAuNzI4NjAxIiwgXAotICAgICAgICAgICIwLjAyOTU5MiwgMC4xMzY2NjMsIDAuMjQ4NTg2LCAwLjMyODU3MiwgMC40NTY1MzMsIDAuNTY4Njc5LCAwLjcyODc2OCIsIFwKLSAgICAgICAgICAiMC4wMzg5NzIsIDAuMTM5NzI5LCAwLjI0ODkyNSwgMC4zMjg1OCwgMC40NTY3MDIsIDAuNTY4NTUsIDAuNzI4ODY1IiwgXAotICAgICAgICAgICIwLjA0Nzg2MiwgMC4xNDU2OTIsIDAuMjUxNzY5LCAwLjMyOTcyNywgMC40NTY1ODMsIDAuNTY4Nzc5LCAwLjcyODgyNSIsIFwKLSAgICAgICAgICAiMC4wNTU1NzIsIDAuMTUyOTI1LCAwLjI1NjUzMiwgMC4zMzMwNTksIDAuNDU3OTY5LCAwLjU2ODgwNiwgMC43Mjg3NDIiLCBcCi0gICAgICAgICAgIjAuMDY2OTQ2LCAwLjE2NjgyMSwgMC4yNjY0MSwgMC4zNDEwMTYsIDAuNDYzMTQyLCAwLjU3MTk1NiwgMC43Mjk2MDciLCBcCi0gICAgICAgICAgIjAuMDc2NDA1LCAwLjE3OTg0NiwgMC4yNzY4MTUsIDAuMzQ5ODA3LCAwLjQ2OTYwOCwgMC41NzY3ODEsIDAuNzMyMzkxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE2ODI3LCAwLjAxNjg0OSwgMC4wMTY4NDcsIDAuMDE2ODUxLCAwLjAxNjg1NSwgMC4wMTY4NTEsIDAuMDE2ODQ5IiwgXAotICAgICAgICAgICIwLjAxNjcwNywgMC4wMTY4MDQsIDAuMDE2ODE4LCAwLjAxNjgyMywgMC4wMTY4MjYsIDAuMDE2ODI3LCAwLjAxNjgyNyIsIFwKLSAgICAgICAgICAiMC4wMTY2NiwgMC4wMTY3NzYsIDAuMDE2OCwgMC4wMTY4MDcsIDAuMDE2ODEsIDAuMDE2ODE3LCAwLjAxNjgxOSIsIFwKLSAgICAgICAgICAiMC4wMTY2NjEsIDAuMDE2NzYyLCAwLjAxNjc4OSwgMC4wMTY3OTksIDAuMDE2ODA3LCAwLjAxNjgxMSwgMC4wMTY4MTUiLCBcCi0gICAgICAgICAgIjAuMDE2NzEyLCAwLjAxNjc2OCwgMC4wMTY3OTUsIDAuMDE2ODAyLCAwLjAxNjgxLCAwLjAxNjgxNCwgMC4wMTY4MTciLCBcCi0gICAgICAgICAgIjAuMDE2ODk1LCAwLjAxNjgyMiwgMC4wMTY4MjYsIDAuMDE2ODI2LCAwLjAxNjgyNywgMC4wMTY4MzIsIDAuMDE2ODI4IiwgXAotICAgICAgICAgICIwLjAxNzE1NywgMC4wMTY5MTEsIDAuMDE2ODg5LCAwLjAxNjg3NCwgMC4wMTY4NjgsIDAuMDE2ODUzLCAwLjAxNjg0NSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzNTM0LCAwLjAwMzUzNSwgMC4wMDM1MzUsIDAuMDAzNTM1LCAwLjAwMzUzNSwgMC4wMDM1MzMsIDAuMDAzNTMzIiwgXAotICAgICAgICAgICIwLjAwMzM0NiwgMC4wMDMzODYsIDAuMDAzMzkyLCAwLjAwMzM5MywgMC4wMDMzOTYsIDAuMDAzMzksIDAuMDAzMzk0IiwgXAotICAgICAgICAgICIwLjAwMzMzMSwgMC4wMDMzNTksIDAuMDAzMzY1LCAwLjAwMzM2NywgMC4wMDMzNywgMC4wMDMzNjksIDAuMDAzMzY4IiwgXAotICAgICAgICAgICIwLjAwMzQzOSwgMC4wMDMzOCwgMC4wMDMzNzUsIDAuMDAzMzczLCAwLjAwMzM3LCAwLjAwMzM2OCwgMC4wMDMzNjYiLCBcCi0gICAgICAgICAgIjAuMDAzNjQsIDAuMDAzNDQxLCAwLjAwMzQxMiwgMC4wMDMzOTksIDAuMDAzMzg5LCAwLjAwMzM4MywgMC4wMDMzNzgiLCBcCi0gICAgICAgICAgIjAuMDA0MDkzLCAwLjAwMzU5NSwgMC4wMDM1MTUsIDAuMDAzNDg1LCAwLjAwMzQ1MywgMC4wMDM0MzIsIDAuMDAzNDE4IiwgXAotICAgICAgICAgICIwLjAwNDU5MiwgMC4wMDM3OTcsIDAuMDAzNjQyLCAwLjAwMzU4MiwgMC4wMDM1MjYsIDAuMDAzNTAyLCAwLjAwMzQ3MiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkExIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxNDkyMSwgMC4wMTQ5OTUsIDAuMDE1MDAzLCAwLjAxNTAwNSwgMC4wMTUwMDMsIDAuMDE1MDE0LCAwLjAxNTAwOSIsIFwKLSAgICAgICAgICAiMC4wMTQ3MTIsIDAuMDE0OTQ5LCAwLjAxNDk4NCwgMC4wMTQ5OTMsIDAuMDE1MDA3LCAwLjAxNTAxNCwgMC4wMTUwMTYiLCBcCi0gICAgICAgICAgIjAuMDE0NjA2LCAwLjAxNDg4NywgMC4wMTQ5NDcsIDAuMDE0OTY2LCAwLjAxNDk4NCwgMC4wMTQ5OTMsIDAuMDE1MDE1IiwgXAotICAgICAgICAgICIwLjAxNDU5LCAwLjAxNDg0NCwgMC4wMTQ5MSwgMC4wMTQ5MzQsIDAuMDE0OTczLCAwLjAxNDk3OCwgMC4wMTQ5OSIsIFwKLSAgICAgICAgICAiMC4wMTQ2MzYsIDAuMDE0ODI1LCAwLjAxNDg4NiwgMC4wMTQ5MjksIDAuMDE0OTYzLCAwLjAxNDk3LCAwLjAxNDk5MiIsIFwKLSAgICAgICAgICAiMC4wMTQ4MjQsIDAuMDE0ODU0LCAwLjAxNDkxNCwgMC4wMTQ5MzIsIDAuMDE0OTYyLCAwLjAxNDk2OSwgMC4wMTQ5ODIiLCBcCi0gICAgICAgICAgIjAuMDE1MDg3LCAwLjAxNDkyLCAwLjAxNDk1NCwgMC4wMTQ5NzIsIDAuMDE0OTgzLCAwLjAxNDk5MSwgMC4wMTUwMDEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzUzOCwgMC4wMDM1NDMsIDAuMDAzNTQzLCAwLjAwMzU0MSwgMC4wMDM1NDEsIDAuMDAzNTQyLCAwLjAwMzU0MSIsIFwKLSAgICAgICAgICAiMC4wMDMzNjcsIDAuMDAzMzkzLCAwLjAwMzM5NiwgMC4wMDMzOTcsIDAuMDAzNCwgMC4wMDMzOTgsIDAuMDAzMzk3IiwgXAotICAgICAgICAgICIwLjAwMzQ4OSwgMC4wMDM0MDksIDAuMDAzMzk3LCAwLjAwMzM5MywgMC4wMDMzODcsIDAuMDAzMzgxLCAwLjAwMzM3OCIsIFwKLSAgICAgICAgICAiMC4wMDM3MjEsIDAuMDAzNDgyLCAwLjAwMzQzNywgMC4wMDM0MjIsIDAuMDAzNDA4LCAwLjAwMzQwMSwgMC4wMDMzOTMiLCBcCi0gICAgICAgICAgIjAuMDAzOTQ4LCAwLjAwMzYyMiwgMC4wMDM1MzQsIDAuMDAzNDk2LCAwLjAwMzQ2NSwgMC4wMDM0NDQsIDAuMDAzNDI5IiwgXAotICAgICAgICAgICIwLjAwNDYyNCwgMC4wMDM4NjgsIDAuMDAzNjk3LCAwLjAwMzYzLCAwLjAwMzU3MiwgMC4wMDM1MzcsIDAuMDAzNSIsIFwKLSAgICAgICAgICAiMC4wMDUzMDQsIDAuMDA0MTU5LCAwLjAwMzg5NSwgMC4wMDM3OSwgMC4wMDM2ODksIDAuMDAzNjQ2LCAwLjAwMzU4OCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMzMzNSwgMC4wMTMzOTksIDAuMDEzNDA2LCAwLjAxMzQwOSwgMC4wMTM0MTEsIDAuMDEzNDA5LCAwLjAxMzQxIiwgXAotICAgICAgICAgICIwLjAxMzE2NywgMC4wMTMzMzgsIDAuMDEzMzcsIDAuMDEzMzgxLCAwLjAxMzM4OSwgMC4wMTMzOTQsIDAuMDEzMzk5IiwgXAotICAgICAgICAgICIwLjAxMzEzLCAwLjAxMzI4MiwgMC4wMTMzMzksIDAuMDEzMzUzLCAwLjAxMzM3LCAwLjAxMzM3NywgMC4wMTMzODMiLCBcCi0gICAgICAgICAgIjAuMDEzMTkzLCAwLjAxMzI3NiwgMC4wMTMzMjIsIDAuMDEzMzQxLCAwLjAxMzM1NiwgMC4wMTMzNjYsIDAuMDEzMzc3IiwgXAotICAgICAgICAgICIwLjAxMzMyNywgMC4wMTMzLCAwLjAxMzMyMywgMC4wMTMzNDQsIDAuMDEzMzU5LCAwLjAxMzM2NiwgMC4wMTMzNzYiLCBcCi0gICAgICAgICAgIjAuMDEzNzA3LCAwLjAxMzQxMSwgMC4wMTMzOSwgMC4wMTMzODksIDAuMDEzMzg5LCAwLjAxMzM5LCAwLjAxMzM5MiIsIFwKLSAgICAgICAgICAiMC4wMTQxMzIsIDAuMDEzNTU4LCAwLjAxMzQ4LCAwLjAxMzQ2LCAwLjAxMzQ0MiwgMC4wMTM0MzMsIDAuMDEzNDI3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDE0MzYsIDAuMDAxNDY2LCAwLjAwMTQ3LCAwLjAwMTQ3LCAwLjAwMTQ3MSwgMC4wMDE0NzIsIDAuMDAxNDcxIiwgXAotICAgICAgICAgICIwLjAwMTM1NiwgMC4wMDE0NTMsIDAuMDAxNDY3LCAwLjAwMTQ3MiwgMC4wMDE0NzcsIDAuMDAxNDc5LCAwLjAwMTQ4MSIsIFwKLSAgICAgICAgICAiMC4wMDE0NjMsIDAuMDAxNTAzLCAwLjAwMTUwOCwgMC4wMDE1MDQsIDAuMDAxNDg2LCAwLjAwMTQ5LCAwLjAwMTQ4NyIsIFwKLSAgICAgICAgICAiMC4wMDE4MTIsIDAuMDAxNTg5LCAwLjAwMTUyOCwgMC4wMDE1MjIsIDAuMDAxNTEzLCAwLjAwMTUwOSwgMC4wMDE1MDUiLCBcCi0gICAgICAgICAgIjAuMDAyMjIxLCAwLjAwMTczMSwgMC4wMDE3MDMsIDAuMDAxNjYyLCAwLjAwMTYxOCwgMC4wMDE1OTgsIDAuMDAxNTc2IiwgXAotICAgICAgICAgICIwLjAwMjkyOSwgMC4wMDE5NDUsIDAuMDAxOTUsIDAuMDAxODY1LCAwLjAwMTc2OSwgMC4wMDE3MiwgMC4wMDE2NzciLCBcCi0gICAgICAgICAgIjAuMDAzNzc3LCAwLjAwMjI0OSwgMC4wMDIyMTksIDAuMDAyMDc2LCAwLjAwMTkzNiwgMC4wMDE4NjcsIDAuMDAxNzkyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQzAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEwNDM5LCAwLjAxMDUzNywgMC4wMTA1NDgsIDAuMDEwNTUyLCAwLjAxMDU1MywgMC4wMTA1NTUsIDAuMDEwNTU5IiwgXAotICAgICAgICAgICIwLjAxMDMwOSwgMC4wMTA0NywgMC4wMTA1MDYsIDAuMDEwNTE3LCAwLjAxMDUyOCwgMC4wMTA1MzMsIDAuMDEwNTM4IiwgXAotICAgICAgICAgICIwLjAxMDQ0NSwgMC4wMTA0NTcsIDAuMDEwNDkxLCAwLjAxMDUwMywgMC4wMTA1MjEsIDAuMDEwNTIzLCAwLjAxMDUyOCIsIFwKLSAgICAgICAgICAiMC4wMTA3NzIsIDAuMDEwNTMzLCAwLjAxMDUyNiwgMC4wMTA1MjgsIDAuMDEwNTMxLCAwLjAxMDUzNiwgMC4wMTA1NDEiLCBcCi0gICAgICAgICAgIjAuMDExMTMzLCAwLjAxMDY3OCwgMC4wMTA2MDEsIDAuMDEwNTg5LCAwLjAxMDU3OCwgMC4wMTA1NzEsIDAuMDEwNTYyIiwgXAotICAgICAgICAgICIwLjAxMTc2MSwgMC4wMTA5NjEsIDAuMDEwNzgyLCAwLjAxMDcyMywgMC4wMTA2NzMsIDAuMDEwNjQ2LCAwLjAxMDYyNiIsIFwKLSAgICAgICAgICAiMC4wMTI0MjEsIDAuMDExMjUzLCAwLjAxMDk4NiwgMC4wMTA4ODksIDAuMDEwNzk3LCAwLjAxMDc0NiwgMC4wMTA3MDUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDA0LCAwLjAwMDA5NiwgMC4wMDAxMDksIDAuMDAwMTEzLCAwLjAwMDExNiwgMC4wMDAxMTgsIDAuMDAwMTE5IiwgXAotICAgICAgICAgICIwLjAwMDEzLCAwLjAwMDE2MywgMC4wMDAxOTksIDAuMDAwMjExLCAwLjAwMDIyMSwgMC4wMDAyMjYsIDAuMDAwMjMxIiwgXAotICAgICAgICAgICIwLjAwMDAzNiwgMC4wMDAyMTIsIDAuMDAwMjM1LCAwLjAwMDI0MSwgMC4wMDAyNDgsIDAuMDAwMjQ3LCAwLjAwMDI1MiIsIFwKLSAgICAgICAgICAiMC4wMDAzOSwgMC4wMDAyOSwgMC4wMDAzMTIsIDAuMDAwMzA2LCAwLjAwMDI5OCwgMC4wMDAyOTMsIDAuMDAwMjg5IiwgXAotICAgICAgICAgICIwLjAwMDc1MiwgMC4wMDA0MjEsIDAuMDAwNDA3LCAwLjAwMDM4NCwgMC4wMDAzNTgsIDAuMDAwMzQ3LCAwLjAwMDMzNCIsIFwKLSAgICAgICAgICAiMC4wMDE0ODksIDAuMDAwNzg1LCAwLjAwMDU2NCwgMC4wMDA1MzUsIDAuMDAwNDc5LCAwLjAwMDQ0NSwgMC4wMDA0MTIiLCBcCi0gICAgICAgICAgIjAuMDAyMzA0LCAwLjAwMTEyNiwgMC4wMDA4MTcsIDAuMDAwNzEyLCAwLjAwMDYxLCAwLjAwMDY1NywgMC4wMDA1MDciKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBBT0kyMVgxICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKEFPSTIxWDEpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4yNzcyNTY7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA5NTA4MDU7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwOTQ4MjU3OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDk1MDgwNTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA1MjQsIDAuMDAwNTI0LCAwLjAwMDUyNCwgMC4wMDA1MjQsIDAuMDAwNTI0LCAwLjAwMDUyNCwgMC4wMDA1MjQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA1NTMsIDAuMDAwNTM1LCAwLjAwMDUzLCAwLjAwMDUyNywgMC4wMDA1MjYsIDAuMDAwNTI2LCAwLjAwMDUyNyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQTEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDk5ODM5OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDk5NDA5NDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA5OTgzOTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAzMzMsIDAuMDAwMzMyLCAwLjAwMDMzMiwgMC4wMDAzMzIsIDAuMDAwMzMyLCAwLjAwMDMzMiwgMC4wMDAzMzIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA1OTUsIDAuMDAwNTk2LCAwLjAwMDU5NiwgMC4wMDA1OTYsIDAuMDAwNTk2LCAwLjAwMDU5NiwgMC4wMDA1OTYiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA5ODY1NTM7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwOTg2NTUzOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDk4NjM2ODsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAwOTcsIDAuMDAwMDk3LCAwLjAwMDA5NywgMC4wMDAwOTcsIDAuMDAwMDk3LCAwLjAwMDA5NywgMC4wMDAwOTciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA1ODIsIDAuMDAwNTgyLCAwLjAwMDU4MiwgMC4wMDA1ODIsIDAuMDAwNTgyLCAwLjAwMDU4MiwgMC4wMDA1ODIiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4xODU3Mjg7Ci0gICAgZnVuY3Rpb24gOiAiKCEoKEEwIEExKStCMCkpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDcyMDg3LCAwLjEwNjI5MiwgMC4zMDAyODQsIDAuNDcxMjY0LCAwLjY5ODk5MywgMS4xNTUsIDEuNDM5MjciLCBcCi0gICAgICAgICAgIjAuMDc4ODQzLCAwLjExMzE0NCwgMC4zMDY4NzIsIDAuNDc3OTAyLCAwLjcwNjMyOCwgMS4xNjExNywgMS40NDgzOCIsIFwKLSAgICAgICAgICAiMC4wODYyMzksIDAuMTIwNTE3LCAwLjMxNDQxNSwgMC40ODUyMjUsIDAuNzEzMTIxLCAxLjE2OTM1LCAxLjQ1NDQiLCBcCi0gICAgICAgICAgIjAuMDkzNjA1LCAwLjEyNzc3NywgMC4zMjE3MjgsIDAuNDkyODE5LCAwLjcyMDU5MywgMS4xNzY1MywgMS40NjE4MSIsIFwKLSAgICAgICAgICAiMC4xMDA5NTYsIDAuMTM1MTY3LCAwLjMyOTEwOSwgMC41MDAxMTQsIDAuNzI4NTk4LCAxLjE4MzcsIDEuNDY5NDgiLCBcCi0gICAgICAgICAgIjAuMTExMzIyLCAwLjE0Njk1LCAwLjM0MDk4MSwgMC41MTE2NjgsIDAuNzQwNzc3LCAxLjE5NTY0LCAxLjQ4MDg0IiwgXAotICAgICAgICAgICIwLjExOTMzMiwgMC4xNTY2OTYsIDAuMzUxMjE4LCAwLjUyMjE3NSwgMC43NTA5MjIsIDEuMjA2OCwgMS40OTExMSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMzYzNTgsIDAuMjA4NTY0LCAwLjYxNzc4OCwgMC45Nzg3ODgsIDEuNDU5NjYsIDIuNDIyMDUsIDMuMDIzOTgiLCBcCi0gICAgICAgICAgIjAuMTM2MzU5LCAwLjIwODUyMSwgMC42MTc4NTksIDAuOTc4OTQzLCAxLjQ1OTg2LCAyLjQyMjIxLCAzLjAyNDg2IiwgXAotICAgICAgICAgICIwLjEzODA3MywgMC4yMDkxNzYsIDAuNjE3NjU0LCAwLjk3OTEzNSwgMS40NjAxNSwgMi40MjM0MiwgMy4wMjM5MiIsIFwKLSAgICAgICAgICAiMC4xNDE2NCwgMC4yMTE0NzcsIDAuNjE3OTIzLCAwLjk3ODY1NiwgMS40NTkzNCwgMi40MjM0OCwgMy4wMjMzMiIsIFwKLSAgICAgICAgICAiMC4xNDYyOSwgMC4yMTUwMDQsIDAuNjE3ODE4LCAwLjk3ODU2OCwgMS40NTk3MSwgMi40MjQwMywgMy4wMjQxMSIsIFwKLSAgICAgICAgICAiMC4xNTUxMDEsIDAuMjIyMjEzLCAwLjYxOTY0NSwgMC45Nzg0ODgsIDEuNDYwMDMsIDIuNDI0ODksIDMuMDI1MDEiLCBcCi0gICAgICAgICAgIjAuMTYzNzgyLCAwLjIyOTYwNSwgMC42MjI4NzIsIDAuOTc5Mzg0LCAxLjQ1OTc0LCAyLjQyMTc4LCAzLjAyNjc5Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2ODM0MywgMC4xMDAxOTMsIDAuMjgwMjc0LCAwLjQzOTA0NCwgMC42NTAzNjksIDEuMDcyNzQsIDEuMzM4MSIsIFwKLSAgICAgICAgICAiMC4wNzQ5MjQsIDAuMTA2ODE1LCAwLjI4Njc3NywgMC40NDUzMTUsIDAuNjU2Njg5LCAxLjA3OTU0LCAxLjM0MzYyIiwgXAotICAgICAgICAgICIwLjA4MzExMiwgMC4xMTUwNywgMC4yOTUzMTUsIDAuNDUzODE0LCAwLjY2NTI5MiwgMS4wODc5OSwgMS4zNTI1NSIsIFwKLSAgICAgICAgICAiMC4wOTE0MTgsIDAuMTIzMjgzLCAwLjMwMzQzMiwgMC40NjIxNzIsIDAuNjczNzE0LCAxLjA5NjMxLCAxLjM2MTc4IiwgXAotICAgICAgICAgICIwLjA5OTY4NiwgMC4xMzE2OTMsIDAuMzExODA1LCAwLjQ3MDQwOSwgMC42ODE5OSwgMS4xMDQ2OSwgMS4zNjg4NiIsIFwKLSAgICAgICAgICAiMC4xMTE3NDcsIDAuMTQ1MDk0LCAwLjMyNTA4MiwgMC40ODM5MTksIDAuNjk1NTc3LCAxLjExODQxLCAxLjM4MjE3IiwgXAotICAgICAgICAgICIwLjEyMDkzNiwgMC4xNTYxNzIsIDAuMzM2NDc2LCAwLjQ5NTkzNiwgMC43MDc3ODIsIDEuMTMwNjYsIDEuMzk1MDYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTI1OTg2LCAwLjE5MTEzNSwgMC41NjA2MzUsIDAuODg2NTgsIDEuMzIwMzcsIDIuMTg4MjUsIDIuNzMxMzUiLCBcCi0gICAgICAgICAgIjAuMTI2MTIzLCAwLjE5MTIyNSwgMC41NjA3NDYsIDAuODg2MDY4LCAxLjMyMDMxLCAyLjE4ODgxLCAyLjczMDQyIiwgXAotICAgICAgICAgICIwLjEyODMyNCwgMC4xOTIwMzQsIDAuNTYwNTE3LCAwLjg4NjE1OCwgMS4zMjA0OSwgMi4xODgsIDIuNzMxNiIsIFwKLSAgICAgICAgICAiMC4xMzI0OTEsIDAuMTk0ODYxLCAwLjU2MDU4MywgMC44ODYyMTEsIDEuMzIwNCwgMi4xODc5NywgMi43MzEzMiIsIFwKLSAgICAgICAgICAiMC4xMzc3NzQsIDAuMTk4OTgxLCAwLjU2MDY2NywgMC44ODYwMSwgMS4zMjAzNiwgMi4xODc5OCwgMi43MzA1MiIsIFwKLSAgICAgICAgICAiMC4xNDc0ODUsIDAuMjA3MjU4LCAwLjU2Mjg2NCwgMC44ODYxNzcsIDEuMzIwNSwgMi4xODgyNiwgMi43MzA2OCIsIFwKLSAgICAgICAgICAiMC4xNTY3OTQsIDAuMjE1Mjk2LCAwLjU2NjI2NywgMC44ODcyMDQsIDEuMzIwMzEsIDIuMTg4NDEsIDIuNzMwMzEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2OTQxNywgMC4xMDMyNTcsIDAuMjk1MDYxLCAwLjQ2NDE4LCAwLjY4OTY1NywgMS4xNDA5NiwgMS40MjE4OSIsIFwKLSAgICAgICAgICAiMC4wNzYxOTIsIDAuMTEwMDg2LCAwLjMwMjIwOSwgMC40NzE0MTUsIDAuNjk2Nzg0LCAxLjE0NzY5LCAxLjQyOTQ1IiwgXAotICAgICAgICAgICIwLjA4MzU1OSwgMC4xMTc1MDQsIDAuMzA5NjEzLCAwLjQ3ODQ5MSwgMC43MDM5MzksIDEuMTU1MiwgMS40Mzc2OSIsIFwKLSAgICAgICAgICAiMC4wOTA5NDgsIDAuMTI0Nzk2LCAwLjMxNjY4MiwgMC40ODU4ODEsIDAuNzExMzk1LCAxLjE2NDA2LCAxLjQ0NDc3IiwgXAotICAgICAgICAgICIwLjA5ODIyNywgMC4xMzIyMjMsIDAuMzI0MTkzLCAwLjQ5MzQ2MywgMC43MTk1NDQsIDEuMTY5NzksIDEuNDUyNTkiLCBcCi0gICAgICAgICAgIjAuMTA4NDcxLCAwLjE0NDA3OCwgMC4zMzYxNzgsIDAuNTA1Mzk3LCAwLjczMTI1MywgMS4xODE4LCAxLjQ2MzY0IiwgXAotICAgICAgICAgICIwLjExNjM4NCwgMC4xNTM3MjYsIDAuMzQ2NDc0LCAwLjUxNTY2OSwgMC43NDIzMTUsIDEuMTkyNjUsIDEuNDc0NDMiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTMxOTE5LCAwLjIwMzE4MywgMC42MDczMzcsIDAuOTY0MTUzLCAxLjQzODczLCAyLjM4OTMxLCAyLjk4ODYxIiwgXAotICAgICAgICAgICIwLjEzMTkxOSwgMC4yMDMxNSwgMC42MDc0MTQsIDAuOTYzOTg5LCAxLjQzOTI4LCAyLjM4OTExLCAyLjk4NTA0IiwgXAotICAgICAgICAgICIwLjEzMzgyMSwgMC4yMDQxODEsIDAuNjA3MjMzLCAwLjk2MzMxNiwgMS40Mzk3MiwgMi4zOTEwNSwgMi45ODM1IiwgXAotICAgICAgICAgICIwLjEzNzUxNSwgMC4yMDYzNTQsIDAuNjA3NTQyLCAwLjk2NDMyNiwgMS40Mzk1MiwgMi4zOTA0NSwgMi45ODMyMyIsIFwKLSAgICAgICAgICAiMC4xNDIyMjEsIDAuMjA5ODk1LCAwLjYwODM4LCAwLjk2NTMxOCwgMS40MzkwNCwgMi4zOTI0NiwgMi45ODM0NCIsIFwKLSAgICAgICAgICAiMC4xNTEyMjQsIDAuMjE3MzYsIDAuNjA5MzQxLCAwLjk2NDA4MiwgMS40MzkxLCAyLjM5MjQ5LCAyLjk4NDc0IiwgXAotICAgICAgICAgICIwLjE2MDMyMiwgMC4yMjQ5NCwgMC42MTM1NDgsIDAuOTY2MTczLCAxLjQzOTEsIDIuMzkwNjYsIDIuOTg4NyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjY5NzQsIDAuMDk4ODMzLCAwLjI3ODkyNSwgMC40Mzc0ODksIDAuNjQ4ODcsIDEuMDcxMzksIDEuMzM2NTMiLCBcCi0gICAgICAgICAgIjAuMDc0NSwgMC4xMDYzNTksIDAuMjg2MzEsIDAuNDQ0ODA0LCAwLjY1NjE5MSwgMS4wNzg5OSwgMS4zNDMxNSIsIFwKLSAgICAgICAgICAiMC4wODQwODgsIDAuMTE2MDc0LCAwLjI5NTg1NiwgMC40NTQ0ODEsIDAuNjY2MDQ1LCAxLjA4OTIzLCAxLjM1MzE1IiwgXAotICAgICAgICAgICIwLjA5NDAyLCAwLjEyNTcyNCwgMC4zMDU0NTQsIDAuNDY0MjksIDAuNjc1NDYyLCAxLjA5ODQ5LCAxLjM2MjgzIiwgXAotICAgICAgICAgICIwLjEwNDA4MSwgMC4xMzU3MDEsIDAuMzE1MzM1LCAwLjQ3Mzk1MSwgMC42ODUxOTksIDEuMTA4NzMsIDEuMzcyMDYiLCBcCi0gICAgICAgICAgIjAuMTE5MTU5LCAwLjE1MTg1MywgMC4zMzEwMjgsIDAuNDg5MDk0LCAwLjcwMDg0NSwgMS4xMjM0OCwgMS4zODc2MiIsIFwKLSAgICAgICAgICAiMC4xMzAyODMsIDAuMTY1ODEsIDAuMzQ0NzY0LCAwLjUwMzEyNiwgMC43MTQ1NDYsIDEuMTM3OSwgMS40MDIxNyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMjU5OCwgMC4xOTExNDcsIDAuNTYwNjAxLCAwLjg4NjM4OCwgMS4zMjA0NSwgMi4xODc4NywgMi43MzE1NSIsIFwKLSAgICAgICAgICAiMC4xMjYwNzYsIDAuMTkxMTM2LCAwLjU2MDM1MSwgMC44ODYwNSwgMS4zMjAzMSwgMi4xODc5MywgMi43MzA1NCIsIFwKLSAgICAgICAgICAiMC4xMjk0NzMsIDAuMTkyNTM1LCAwLjU2MDUxNSwgMC44ODYyMTIsIDEuMzIwNTksIDIuMTg4ODQsIDIuNzMwODEiLCBcCi0gICAgICAgICAgIjAuMTM1NTM0LCAwLjE5NjUzMSwgMC41NjA1NiwgMC44ODYzNzQsIDEuMzE5ODYsIDIuMTg4NjQsIDIuNzMwOSIsIFwKLSAgICAgICAgICAiMC4xNDI5MywgMC4yMDI0NDgsIDAuNTYwNzg3LCAwLjg4NjUxMiwgMS4zMjAxNSwgMi4xODg2MiwgMi43MzA1OSIsIFwKLSAgICAgICAgICAiMC4xNTYwODcsIDAuMjEzNzM1LCAwLjU2NDA4LCAwLjg4NjQxNywgMS4zMjA0MiwgMi4xODgzNCwgMi43MzA1NiIsIFwKLSAgICAgICAgICAiMC4xNjg2NTgsIDAuMjI0NzQ1LCAwLjU2ODc2LCAwLjg4NzQ5MiwgMS4zMjA0MywgMi4xODg2NCwgMi43MzE1MSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY3MjQyLCAwLjEwMTQ5NCwgMC4yOTQ5MzUsIDAuNDY2MTQ0LCAwLjY5MzgyOCwgMS4xNTA3NiwgMS40MzQ4NCIsIFwKLSAgICAgICAgICAiMC4wNzQ3NjYsIDAuMTA5MDUzLCAwLjMwMjc1LCAwLjQ3NDEyNywgMC43MDI1ODQsIDEuMTU5MTUsIDEuNDQyODMiLCBcCi0gICAgICAgICAgIjAuMDg0NDY3LCAwLjExODY4NCwgMC4zMTI2ODEsIDAuNDgzMzE3LCAwLjcxMTI2OSwgMS4xNjc0NCwgMS40NTI1MyIsIFwKLSAgICAgICAgICAiMC4wOTQyMDMsIDAuMTI4MzA0LCAwLjMyMTk4NiwgMC40OTI5MDksIDAuNzIwNzY5LCAxLjE3NzEsIDEuNDYzMzgiLCBcCi0gICAgICAgICAgIjAuMTA0MjI0LCAwLjEzODExNywgMC4zMzE4MDEsIDAuNTAyNzE2LCAwLjczMDQsIDEuMTg2MDgsIDEuNDcxNyIsIFwKLSAgICAgICAgICAiMC4xMTkwOTUsIDAuMTU0MTA5LCAwLjM0NzE1NCwgMC41MTgwNDQsIDAuNzQ1NzE5LCAxLjIwMTc0LCAxLjQ4NzA4IiwgXAotICAgICAgICAgICIwLjEzMDAxMywgMC4xNjgwOTIsIDAuMzYwNzc0LCAwLjUzMTU4MiwgMC43NTk0NDcsIDEuMjE1MTEsIDEuNTAwMjYiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTM2MzE1LCAwLjIwODQ0NCwgMC42MTcxMTUsIDAuOTc4OTc0LCAxLjQ2MDY1LCAyLjQyMjg3LCAzLjAyMjMiLCBcCi0gICAgICAgICAgIjAuMTM2MzA2LCAwLjIwODU0NywgMC42MTc2MDQsIDAuOTc4Nzc5LCAxLjQ2MDI1LCAyLjQyMzQxLCAzLjAyMzUxIiwgXAotICAgICAgICAgICIwLjEzOTY0MiwgMC4yMDk2MDUsIDAuNjE3NzQyLCAwLjk3ODU0NywgMS40NjA1LCAyLjQyMjU0LCAzLjAyMzYiLCBcCi0gICAgICAgICAgIjAuMTQ1Nzg2LCAwLjIxMzY0MSwgMC42MTc2MjksIDAuOTc4NjY1LCAxLjQ1OTE3LCAyLjQyMjk4LCAzLjAyNjEzIiwgXAotICAgICAgICAgICIwLjE1MzE4MSwgMC4yMTkzNTksIDAuNjE3NjU4LCAwLjk3ODM4NiwgMS40NjA0NywgMi40MjQ1NCwgMy4wMjMzIiwgXAotICAgICAgICAgICIwLjE2NjMyNywgMC4yMzA1MjksIDAuNjIwMzYxLCAwLjk3ODU3OCwgMS40NjA1MiwgMi40MjM1LCAzLjAyNDk4IiwgXAotICAgICAgICAgICIwLjE3ODU1MiwgMC4yNDE3MTgsIDAuNjI0OTA4LCAwLjk3OTQwOCwgMS40NjAxLCAyLjQyMTE1LCAzLjAyNDQyIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzNjI3MSwgMC4wNTQ0NDQsIDAuMTU3MjQ3LCAwLjI0Nzc3NiwgMC4zNjgzOTgsIDAuNjA5NzM2LCAwLjc2MDI3NSIsIFwKLSAgICAgICAgICAiMC4wNDQ3MDQsIDAuMDYyODk5LCAwLjE2NTcyNCwgMC4yNTYyNTMsIDAuMzc2ODQsIDAuNjE4MDA5LCAwLjc2ODY5NyIsIFwKLSAgICAgICAgICAiMC4wNTUyMDMsIDAuMDczMzY0LCAwLjE3NjA3OSwgMC4yNjY1OTYsIDAuMzg3MjIzLCAwLjYyODI2LCAwLjc3OTE3NyIsIFwKLSAgICAgICAgICAiMC4wNjU1ODcsIDAuMDg0MDc0LCAwLjE4NjgwMSwgMC4yNzczMTIsIDAuMzk3OTQ5LCAwLjYzOTA2MywgMC43OTAwNTQiLCBcCi0gICAgICAgICAgIjAuMDczOTMyLCAwLjA5NDc1NSwgMC4xOTcyNzEsIDAuMjg3NzYsIDAuNDA4MzMxLCAwLjY0OTQ1MSwgMC44MDAyMzgiLCBcCi0gICAgICAgICAgIjAuMDg1MjEzLCAwLjEwOTM4LCAwLjIxNDQ5LCAwLjMwNDc3MywgMC40MjUzNDMsIDAuNjY2NDc3LCAwLjgxNzE3OCIsIFwKLSAgICAgICAgICAiMC4wOTM5NzksIDAuMTIwMjMzLCAwLjIyOTUzNSwgMC4zMTk2NTIsIDAuNDQwMTU3LCAwLjY4MTMsIDAuODMxOTk1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2OTYxOSwgMC4xMDY3ODksIDAuMzE3NzAyLCAwLjUwMzkwMSwgMC43NTIwNjksIDEuMjQ4NCwgMS41NTg1OSIsIFwKLSAgICAgICAgICAiMC4wNzEwMDMsIDAuMTA3MTQ4LCAwLjMxNzYxMywgMC41MDM2OTEsIDAuNzUxNjkxLCAxLjI0ODA4LCAxLjU1OTgxIiwgXAotICAgICAgICAgICIwLjA3NzUyMSwgMC4xMTE2NTYsIDAuMzE3NDY2LCAwLjUwMzg3NSwgMC43NTIxMzIsIDEuMjQ4OTcsIDEuNTU4NjkiLCBcCi0gICAgICAgICAgIjAuMDg1OTE3LCAwLjExODU1NCwgMC4zMTkwMDksIDAuNTAzOTA5LCAwLjc1MjA3MywgMS4yNDgxNiwgMS41NTkyNyIsIFwKLSAgICAgICAgICAiMC4wOTU0MTIsIDAuMTI2NzM4LCAwLjMyMjI4NSwgMC41MDQ0ODUsIDAuNzUyMTQxLCAxLjI0ODM0LCAxLjU1OTQ2IiwgXAotICAgICAgICAgICIwLjExMDkxMywgMC4xNDEyMiwgMC4zMzAzODcsIDAuNTA4NjIsIDAuNzUyNDcsIDEuMjQ4MTgsIDEuNTU4NiIsIFwKLSAgICAgICAgICAiMC4xMjI3NzksIDAuMTU0ODM3LCAwLjMzOTE1NCwgMC41MTQxMDUsIDAuNzU0OTgzLCAxLjI0ODY3LCAxLjU1OTE3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzQzMiwgMC4wMDM0MzMsIDAuMDAzNDM0LCAwLjAwMzQzNCwgMC4wMDM0MzQsIDAuMDAzNDM0LCAwLjAwMzQzMyIsIFwKLSAgICAgICAgICAiMC4wMDM0MTYsIDAuMDAzNDIxLCAwLjAwMzQyNywgMC4wMDM0MjgsIDAuMDAzNDI4LCAwLjAwMzQyOCwgMC4wMDM0MjgiLCBcCi0gICAgICAgICAgIjAuMDAzNDEsIDAuMDAzNDE1LCAwLjAwMzQyNCwgMC4wMDM0MjYsIDAuMDAzNDI1LCAwLjAwMzQyOSwgMC4wMDM0MjciLCBcCi0gICAgICAgICAgIjAuMDAzNDE1LCAwLjAwMzQxOCwgMC4wMDM0MjUsIDAuMDAzNDI1LCAwLjAwMzQyNywgMC4wMDM0MjUsIDAuMDAzNDI3IiwgXAotICAgICAgICAgICIwLjAwMzQzNCwgMC4wMDM0MzEsIDAuMDAzNDMsIDAuMDAzNDMsIDAuMDAzNDMsIDAuMDAzNDMxLCAwLjAwMzQyOSIsIFwKLSAgICAgICAgICAiMC4wMDM0ODMsIDAuMDAzNDY4LCAwLjAwMzQ0OCwgMC4wMDM0NCwgMC4wMDM0MzgsIDAuMDAzNDM2LCAwLjAwMzQzMyIsIFwKLSAgICAgICAgICAiMC4wMDM1NDksIDAuMDAzNTE5LCAwLjAwMzQ3MiwgMC4wMDM0NTksIDAuMDAzNDUxLCAwLjAwMzQ0MywgMC4wMDM0NCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDUwNiwgMC4wMDA1MDYsIDAuMDAwNTA3LCAwLjAwMDUwNywgMC4wMDA1MDcsIDAuMDAwNTA3LCAwLjAwMDUwNiIsIFwKLSAgICAgICAgICAiMC4wMDA0NzMsIDAuMDAwNDc4LCAwLjAwMDQ4NSwgMC4wMDA0ODYsIDAuMDAwNDg3LCAwLjAwMDQ4NywgMC4wMDA0ODciLCBcCi0gICAgICAgICAgIjAuMDAwNDY4LCAwLjAwMDQ3MywgMC4wMDA0ODEsIDAuMDAwNDgzLCAwLjAwMDQ4NCwgMC4wMDA0ODQsIDAuMDAwNDg0IiwgXAotICAgICAgICAgICIwLjAwMDQ4MywgMC4wMDA0ODMsIDAuMDAwNDg0LCAwLjAwMDQ4NSwgMC4wMDA0ODUsIDAuMDAwNDg0LCAwLjAwMDQ4NCIsIFwKLSAgICAgICAgICAiMC4wMDA1MTUsIDAuMDAwNTA2LCAwLjAwMDQ5MywgMC4wMDA0OSwgMC4wMDA0ODgsIDAuMDAwNDg3LCAwLjAwMDQ4NiIsIFwKLSAgICAgICAgICAiMC4wMDA1OTMsIDAuMDAwNTY0LCAwLjAwMDUxOSwgMC4wMDA1MDgsIDAuMDAwNSwgMC4wMDA0OTQsIDAuMDAwNDkxIiwgXAotICAgICAgICAgICIwLjAwMDY4LCAwLjAwMDYzNCwgMC4wMDA1NDksIDAuMDAwNTMsIDAuMDAwNTE3LCAwLjAwMDUwNCwgMC4wMDA1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjk3MywgMC4wMDI5NzYsIDAuMDAyOTgsIDAuMDAyOTgxLCAwLjAwMjk4MSwgMC4wMDI5ODEsIDAuMDAyOTgxIiwgXAotICAgICAgICAgICIwLjAwMjk0OSwgMC4wMDI5NjEsIDAuMDAyOTc3LCAwLjAwMjk4LCAwLjAwMjk4MywgMC4wMDI5ODQsIDAuMDAyOTg3IiwgXAotICAgICAgICAgICIwLjAwMjkzLCAwLjAwMjk0NSwgMC4wMDI5NywgMC4wMDI5NzYsIDAuMDAyOTc4LCAwLjAwMjk4NCwgMC4wMDI5ODMiLCBcCi0gICAgICAgICAgIjAuMDAyOTI3LCAwLjAwMjk0MSwgMC4wMDI5NjksIDAuMDAyOTc1LCAwLjAwMjk3NywgMC4wMDI5ODIsIDAuMDAyOTgzIiwgXAotICAgICAgICAgICIwLjAwMjkzOSwgMC4wMDI5NDcsIDAuMDAyOTY5LCAwLjAwMjk3NSwgMC4wMDI5NzksIDAuMDAyOTgyLCAwLjAwMjk4MyIsIFwKLSAgICAgICAgICAiMC4wMDI5ODMsIDAuMDAyOTc3LCAwLjAwMjk4MiwgMC4wMDI5ODMsIDAuMDAyOTg1LCAwLjAwMjk4NiwgMC4wMDI5ODciLCBcCi0gICAgICAgICAgIjAuMDAzMDQ3LCAwLjAwMzAyNCwgMC4wMDMwMDIsIDAuMDAyOTk3LCAwLjAwMjk5NSwgMC4wMDI5OTMsIDAuMDAyOTkzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwNTA2LCAwLjAwMDUwNywgMC4wMDA1MDgsIDAuMDAwNTA4LCAwLjAwMDUwOCwgMC4wMDA1MDgsIDAuMDAwNTA4IiwgXAotICAgICAgICAgICIwLjAwMDQ3OSwgMC4wMDA0ODIsIDAuMDAwNDg4LCAwLjAwMDQ4OCwgMC4wMDA0ODksIDAuMDAwNDg5LCAwLjAwMDQ4OSIsIFwKLSAgICAgICAgICAiMC4wMDA0OTgsIDAuMDAwNDkxLCAwLjAwMDQ5MSwgMC4wMDA0OSwgMC4wMDA0ODksIDAuMDAwNDg4LCAwLjAwMDQ4OCIsIFwKLSAgICAgICAgICAiMC4wMDA1MzYsIDAuMDAwNTI0LCAwLjAwMDUwMiwgMC4wMDA0OTcsIDAuMDAwNDk0LCAwLjAwMDQ5MSwgMC4wMDA0OSIsIFwKLSAgICAgICAgICAiMC4wMDA1OTQsIDAuMDAwNTY2LCAwLjAwMDUyMiwgMC4wMDA1MSwgMC4wMDA1MDIsIDAuMDAwNDk2LCAwLjAwMDQ5MyIsIFwKLSAgICAgICAgICAiMC4wMDA3MDksIDAuMDAwNjUxLCAwLjAwMDU2LCAwLjAwMDUzNywgMC4wMDA1MjIsIDAuMDAwNTA4LCAwLjAwMDUwNCIsIFwKLSAgICAgICAgICAiMC4wMDA4NDcsIDAuMDAwNzQ5LCAwLjAwMDYwNywgMC4wMDA1NjgsIDAuMDAwNTQ3LCAwLjAwMDUyNCwgMC4wMDA1MTYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyNDI4LCAwLjAwMjQzMiwgMC4wMDI0MzcsIDAuMDAyNDM4LCAwLjAwMjQzOSwgMC4wMDI0MzgsIDAuMDAyNDM4IiwgXAotICAgICAgICAgICIwLjAwMjQwNSwgMC4wMDI0MTQsIDAuMDAyNDI5LCAwLjAwMjQzMiwgMC4wMDI0MzUsIDAuMDAyNDM2LCAwLjAwMjQzNyIsIFwKLSAgICAgICAgICAiMC4wMDI0MTUsIDAuMDAyNDE3LCAwLjAwMjQyOCwgMC4wMDI0MzIsIDAuMDAyNDMzLCAwLjAwMjQzNSwgMC4wMDI0MzUiLCBcCi0gICAgICAgICAgIjAuMDAyNDYzLCAwLjAwMjQ1MiwgMC4wMDI0NDEsIDAuMDAyNDM5LCAwLjAwMjQzOSwgMC4wMDI0MzksIDAuMDAyNDM4IiwgXAotICAgICAgICAgICIwLjAwMjUyNywgMC4wMDI0OTUsIDAuMDAyNDYsIDAuMDAyNDUyLCAwLjAwMjQ0NywgMC4wMDI0NDMsIDAuMDAyNDQxIiwgXAotICAgICAgICAgICIwLjAwMjY2LCAwLjAwMjU5NiwgMC4wMDI1MDEsIDAuMDAyNDgzLCAwLjAwMjQ2NSwgMC4wMDI0NTUsIDAuMDAyNDUxIiwgXAotICAgICAgICAgICIwLjAwMjc5MywgMC4wMDI2OTgsIDAuMDAyNTUsIDAuMDAyNTE3LCAwLjAwMjQ4OSwgMC4wMDI0NjksIDAuMDAyNDYzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwMDEzLCAwLjAwMDAwOCwgMC4wMDAwMTUsIDAuMDAwMDE2LCAwLjAwMDAxNywgMC4wMDAwMTcsIDAuMDAwMDE4IiwgXAotICAgICAgICAgICIwLjAwMDAyOSwgMC4wMDAwMTcsIDAuMDAwMDI2LCAwLjAwMDAzLCAwLjAwMDAzMywgMC4wMDAwMzUsIDAuMDAwMDM3IiwgXAotICAgICAgICAgICIwLjAwMDAyMiwgMC4wMDAwMjUsIDAuMDAwMDM0LCAwLjAwMDAzNiwgMC4wMDAwMzgsIDAuMDAwMDQxLCAwLjAwMDA0MSIsIFwKLSAgICAgICAgICAiMC4wMDAwNjMsIDAuMDAwMDU0LCAwLjAwMDA0LCAwLjAwMDA0MSwgMC4wMDAwNDEsIDAuMDAwMDQxLCAwLjAwMDA0MiIsIFwKLSAgICAgICAgICAiMC4wMDAxMzcsIDAuMDAwMTA0LCAwLjAwMDA2NSwgMC4wMDAwNTgsIDAuMDAwMDUzLCAwLjAwMDA0OSwgMC4wMDAwNDgiLCBcCi0gICAgICAgICAgIjAuMDAwMzAxLCAwLjAwMDIwNiwgMC4wMDAxMDgsIDAuMDAwMDg3LCAwLjAwMDA3NSwgMC4wMDAwNjMsIDAuMDAwMDU5IiwgXAotICAgICAgICAgICIwLjAwMDQ3NCwgMC4wMDAzNDMsIDAuMDAwMTYsIDAuMDAwMTIsIDAuMDAwMDk5LCAwLjAwMDA3OSwgMC4wMDAwNzMiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBBT0kyMVhMICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKEFPSTIxWEwpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4xOTIyNTU7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2MzIwNzc7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjMwNzA5OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDYzMjA3NzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyOTcsIDAuMDAwMjk2LCAwLjAwMDI5NiwgMC4wMDAyOTYsIDAuMDAwMjk2LCAwLjAwMDI5NiwgMC4wMDAyOTYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAzMTcsIDAuMDAwMzA2LCAwLjAwMDMwMSwgMC4wMDAyOTgsIDAuMDAwMjk4LCAwLjAwMDI5OCwgMC4wMDAyOTgiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEExKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2OTY5MDE7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjk0Nzg0OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDY5NjkwMTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxNTYsIDAuMDAwMTU2LCAwLjAwMDE1NiwgMC4wMDAxNTYsIDAuMDAwMTU2LCAwLjAwMDE1NiwgMC4wMDAxNTYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAzMzcsIDAuMDAwMzM4LCAwLjAwMDMzOCwgMC4wMDAzMzgsIDAuMDAwMzM4LCAwLjAwMDMzOCwgMC4wMDAzMzgiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2OTM1MTc7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjkzNTE3OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDY5MzM0NjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAwNTgsIDAuMDAwMDU4LCAwLjAwMDA1OCwgMC4wMDAwNTgsIDAuMDAwMDU4LCAwLjAwMDA1OCwgMC4wMDAwNTgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA0MjgsIDAuMDAwNDI4LCAwLjAwMDQyOCwgMC4wMDA0MjgsIDAuMDAwNDI4LCAwLjAwMDQyOCwgMC4wMDA0MjgiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4xMDk3Njg7Ci0gICAgZnVuY3Rpb24gOiAiKCEoKEEwIEExKStCMCkpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTEyNTEyLCAwLjEzMTY0LCAwLjMwNDUwMiwgMC41OTE5MjMsIDAuODgwMTczLCAxLjU1MTkzLCAxLjkzMzgyIiwgXAotICAgICAgICAgICIwLjExOTE0NywgMC4xMzgyODMsIDAuMzEwODI5LCAwLjU5OTA2NCwgMC44ODY4NzksIDEuNTU4MDgsIDEuOTM5MTgiLCBcCi0gICAgICAgICAgIjAuMTI2MTU4LCAwLjE0NTMyMiwgMC4zMTgwMSwgMC42MDUzMjYsIDAuODkzMzE3LCAxLjU2NDIxLCAxLjk0ODE3IiwgXAotICAgICAgICAgICIwLjEzMzAxNiwgMC4xNTIzMDksIDAuMzI0ODQ1LCAwLjYxMjM2NiwgMC45MDA0MDQsIDEuNTcxOTgsIDEuOTUzNTciLCBcCi0gICAgICAgICAgIjAuMTQwMTQ2LCAwLjE1OTIyLCAwLjMzMTk4NSwgMC42MTkzODksIDAuOTA2ODY2LCAxLjU3Nzc4LCAxLjk2MjMzIiwgXAotICAgICAgICAgICIwLjE1MTI1OCwgMC4xNzA1MjUsIDAuMzQzMDcyLCAwLjYzMDY2LCAwLjkxODM1LCAxLjU4ODk4LCAxLjk3NDE1IiwgXAotICAgICAgICAgICIwLjE2MDcyOCwgMC4xODAzMDgsIDAuMzUyNjM3LCAwLjY0MTMwOCwgMC45Mjg4ODUsIDEuNTk5MzEsIDEuOTg0NzUiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjIyMzA4LCAwLjI2MzA3NCwgMC42Mjk2MjIsIDEuMjM5NjYsIDEuODUwODMsIDMuMjc1NjEsIDQuMDg3MjUiLCBcCi0gICAgICAgICAgIjAuMjIyMjI2LCAwLjI2MzA3LCAwLjYyOTI2NywgMS4yNDAzNCwgMS44NTA2NiwgMy4yODEyNiwgNC4wOTQ2MSIsIFwKLSAgICAgICAgICAiMC4yMjI4ODYsIDAuMjYzMzA5LCAwLjYyOTU3NSwgMS4yNDAwMSwgMS44NTAwMywgMy4yNzM3OCwgNC4wODkwMyIsIFwKLSAgICAgICAgICAiMC4yMjQ5MiwgMC4yNjQ4OTksIDAuNjI5NjczLCAxLjI0MDgsIDEuODUxNDIsIDMuMjc0NzgsIDQuMDk0ODIiLCBcCi0gICAgICAgICAgIjAuMjI4Mzk4LCAwLjI2Nzc1OSwgMC42Mjk1NjQsIDEuMjQwMjYsIDEuODUxNjQsIDMuMjc3NDUsIDQuMDg5MTciLCBcCi0gICAgICAgICAgIjAuMjM1NDkzLCAwLjI3NDI2MywgMC42MzEzODQsIDEuMjQwNTksIDEuODQ5NSwgMy4yNzMzNiwgNC4wODg4MSIsIFwKLSAgICAgICAgICAiMC4yNDI2ODgsIDAuMjgwOTQxLCAwLjYzNDQ3MSwgMS4yMzk4NCwgMS44NTAxOCwgMy4yNzQ3OSwgNC4wOTEyMSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDEwMTksIDAuMTE4MDE2LCAwLjI3MDcyNSwgMC41MjQ2NjQsIDAuNzc4OTk2LCAxLjM3MjI4LCAxLjcwOTk4IiwgXAotICAgICAgICAgICIwLjEwNzM0NSwgMC4xMjQzMTMsIDAuMjc2ODIyLCAwLjUzMDkyLCAwLjc4NDcxLCAxLjM3NzI4LCAxLjcxNjg0IiwgXAotICAgICAgICAgICIwLjExNTE1MSwgMC4xMzIyMjEsIDAuMjg0Nzk1LCAwLjUzODc5OCwgMC43OTI3NzgsIDEuMzg1OTMsIDEuNzI0MzYiLCBcCi0gICAgICAgICAgIjAuMTIzMTcyLCAwLjE0MDAxNCwgMC4yOTMxNDQsIDAuNTQ3Mjc0LCAwLjgwMDkxOCwgMS4zOTQzMSwgMS43MzE4OCIsIFwKLSAgICAgICAgICAiMC4xMzEwMTgsIDAuMTQ4MDM2LCAwLjMwMDU3MywgMC41NTQ5MDcsIDAuODA5MDQ5LCAxLjQwMTAxLCAxLjczOTgyIiwgXAotICAgICAgICAgICIwLjE0MzgzNSwgMC4xNjA3MDYsIDAuMzEzMjg3LCAwLjU2Nzg0NiwgMC44MjE5NCwgMS40MTQwMSwgMS43NTI2OCIsIFwKLSAgICAgICAgICAiMC4xNTQ0NTIsIDAuMTcxODM2LCAwLjMyNDU2OSwgMC41NzkzOTMsIDAuODMzNjk3LCAxLjQyNTcsIDEuNzY0MzciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTkzNTUzLCAwLjIyODQ0LCAwLjU0MjIyMiwgMS4wNjQ2MSwgMS41ODY5NSwgMi44MDU2MywgMy41MDA2OCIsIFwKLSAgICAgICAgICAiMC4xOTM2MjYsIDAuMjI4NTI0LCAwLjU0MjMyOSwgMS4wNjQ1NiwgMS41ODY1NCwgMi44MDU0MSwgMy41MDE3OSIsIFwKLSAgICAgICAgICAiMC4xOTQ1MTUsIDAuMjI4OTU3LCAwLjU0MTk4MSwgMS4wNjQ1MSwgMS41ODY2OSwgMi44MDU1MSwgMy41MDA2OSIsIFwKLSAgICAgICAgICAiMC4xOTc1ODMsIDAuMjMxMjE3LCAwLjU0MjIzNywgMS4wNjQ0OCwgMS41ODYyNywgMi44MDU1MywgMy41MDA1NyIsIFwKLSAgICAgICAgICAiMC4yMDE2NzQsIDAuMjM1MDIsIDAuNTQyNjUxLCAxLjA2NDMyLCAxLjU4Njg2LCAyLjgwNDY3LCAzLjUwMTU3IiwgXAotICAgICAgICAgICIwLjIxMDAzMSwgMC4yNDI0NzQsIDAuNTQ1MjE4LCAxLjA2NDQ0LCAxLjU4NjE0LCAyLjgwNDQ5LCAzLjUwMDc2IiwgXAotICAgICAgICAgICIwLjIxODM2NSwgMC4yNTAxNTQsIDAuNTQ5MTM1LCAxLjA2NDYzLCAxLjU4Njg3LCAyLjgwNDc1LCAzLjUwMjc3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkExIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDkxMjIsIDAuMTI4MDY5LCAwLjI5ODg0NCwgMC41ODI3MDgsIDAuODY2OTU3LCAxLjUzMTA5LCAxLjkwODI3IiwgXAotICAgICAgICAgICIwLjExNTg1MSwgMC4xMzQ3NzQsIDAuMzA1Mzc2LCAwLjU4OTA2NSwgMC44NzI5NzgsIDEuNTM1NjEsIDEuOTEzNjciLCBcCi0gICAgICAgICAgIjAuMTIyODksIDAuMTQxODM0LCAwLjMxMjQzNywgMC41OTYyOCwgMC44ODA3NTksIDEuNTQzNDcsIDEuOTIyODQiLCBcCi0gICAgICAgICAgIjAuMTI5ODY4LCAwLjE0ODc5MywgMC4zMTkzNjksIDAuNjAzNDAzLCAwLjg4NzgxOSwgMS41NTEzOSwgMS45Mjg0MiIsIFwKLSAgICAgICAgICAiMC4xMzcwMTIsIDAuMTU1ODM3LCAwLjMyNjU1NCwgMC42MTA4NzMsIDAuODk0NDUxLCAxLjU1NzA0LCAxLjkzNzYzIiwgXAotICAgICAgICAgICIwLjE0ODE3MiwgMC4xNjcyMzUsIDAuMzM3NzI3LCAwLjYyMTk0OCwgMC45MDYxMjksIDEuNTY4NTgsIDEuOTQ5MTUiLCBcCi0gICAgICAgICAgIjAuMTU3NTk3LCAwLjE3NzEyMywgMC4zNDc0MiwgMC42MzIwMDcsIDAuOTE2MjE3LCAxLjU3OTEsIDEuOTU5OTEiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjE2NDU2LCAwLjI1NjM1OSwgMC42MTc1NTEsIDEuMjE5MDcsIDEuODIxNjIsIDMuMjI2ODQsIDQuMDI3MjUiLCBcCi0gICAgICAgICAgIjAuMjE2MDc3LCAwLjI1NjY1LCAwLjYxNzI4NywgMS4yMTk2NywgMS44MjM5MiwgMy4yMjY1NSwgNC4wMzM5NSIsIFwKLSAgICAgICAgICAiMC4yMTY2NDYsIDAuMjU2ODcyLCAwLjYxNzYyNywgMS4yMTk3OSwgMS44MjA4MiwgMy4yMjQ4NSwgNC4wMjg5MiIsIFwKLSAgICAgICAgICAiMC4yMTkxMTIsIDAuMjU4MjMyLCAwLjYxODMwNCwgMS4yMjA3OSwgMS44MjE5OSwgMy4yMjU4NiwgNC4wMjYxOSIsIFwKLSAgICAgICAgICAiMC4yMjI2ODUsIDAuMjYxNDc0LCAwLjYxODQ2MiwgMS4yMTg5OSwgMS44MjE1NSwgMy4yMjcwNywgNC4wMjg2NCIsIFwKLSAgICAgICAgICAiMC4yMjk3NzksIDAuMjY3OTMxLCAwLjYxOTU0MSwgMS4yMjEwMywgMS44MjA2NywgMy4yMjQ0NCwgNC4wMjg4OCIsIFwKLSAgICAgICAgICAiMC4yMzcyMjcsIDAuMjc0NzczLCAwLjYyMjU1OSwgMS4yMTk2MywgMS44MjA2MywgMy4yMjQ3MywgNC4wMjkyNiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTk2MDUsIDAuMTE2NTY5LCAwLjI2OTIzNywgMC41MjMzNzUsIDAuNzc3NTU1LCAxLjM3MDMxLCAxLjcwNzc4IiwgXAotICAgICAgICAgICIwLjEwNjk5NiwgMC4xMjM5ODksIDAuMjc2NTA3LCAwLjUzMDQ5LCAwLjc4NDMxNCwgMS4zNzY3NywgMS43MTU5MSIsIFwKLSAgICAgICAgICAiMC4xMTY1NywgMC4xMzM0MTMsIDAuMjg2MDU1LCAwLjU0MDAyNiwgMC43OTQyOTYsIDEuMzg3MTYsIDEuNzI2MjEiLCBcCi0gICAgICAgICAgIjAuMTI1OTY4LCAwLjE0Mjg4NCwgMC4yOTUzOTEsIDAuNTQ5MzYxLCAwLjgwMzcwNiwgMS4zOTU3OSwgMS43MzQ5MyIsIFwKLSAgICAgICAgICAiMC4xMzU3MzIsIDAuMTUyNjQ5LCAwLjMwNDg2MiwgMC41NTg5MzEsIDAuODEyODE2LCAxLjQwNTA1LCAxLjc0NDcxIiwgXAotICAgICAgICAgICIwLjE1MTQ4OSwgMC4xNjgzNTUsIDAuMzIwMTU3LCAwLjU3NDA5NywgMC44MjgyOTEsIDEuNDIwNTUsIDEuNzU4OTEiLCBcCi0gICAgICAgICAgIjAuMTY1MDk4LCAwLjE4MjIzMiwgMC4zMzM2MywgMC41ODczNDEsIDAuODQxNDU0LCAxLjQzNDQ2LCAxLjc3MjA1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE5MzU2NywgMC4yMjg1NiwgMC41NDIyOTcsIDEuMDY0NDksIDEuNTg2OTcsIDIuODA1NTYsIDMuNTAxNTUiLCBcCi0gICAgICAgICAgIjAuMTkzNjUsIDAuMjI4Mzg4LCAwLjU0MTk3NiwgMS4wNjQ1LCAxLjU4NjE3LCAyLjgwNDY5LCAzLjUwMTYiLCBcCi0gICAgICAgICAgIjAuMTk0ODQ4LCAwLjIyOTA0NSwgMC41NDE5NjEsIDEuMDY0NTUsIDEuNTg2NzksIDIuODA1NTEsIDMuNTAxODYiLCBcCi0gICAgICAgICAgIjAuMTk5MDcsIDAuMjMyNDYyLCAwLjU0MjA4MywgMS4wNjQ1NywgMS41ODY4MSwgMi44MDQ0MiwgMy41MDIwOCIsIFwKLSAgICAgICAgICAiMC4yMDUwOTEsIDAuMjM3NzAyLCAwLjU0MjgyOCwgMS4wNjQ1MywgMS41ODY2OSwgMi44MDUyNSwgMy41MDE5MSIsIFwKLSAgICAgICAgICAiMC4yMTY0NDksIDAuMjQ4MTIyLCAwLjU0NjI0NCwgMS4wNjQ1MiwgMS41ODY1MiwgMi44MDU1OCwgMy41MDA2MSIsIFwKLSAgICAgICAgICAiMC4yMjc4MTUsIDAuMjU4Nzc3LCAwLjU1MTQ3MiwgMS4wNjQ3LCAxLjU4NjY4LCAyLjgwNTYsIDMuNTAwOTIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjAiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwNzA2MywgMC4xMjYyMDYsIDAuMjk5MDAzLCAwLjU4NjI5MSwgMC44NzQzMzUsIDEuNTQ1NDQsIDEuOTI3NDUiLCBcCi0gICAgICAgICAgIjAuMTE0MzU0LCAwLjEzMzQzLCAwLjMwNjA5NSwgMC41OTM2ODcsIDAuODgxOTIsIDEuNTUzMywgMS45MzU2NCIsIFwKLSAgICAgICAgICAiMC4xMjM2NzQsIDAuMTQyOTE1LCAwLjMxNTQ1MSwgMC42MDMwMTgsIDAuODkwNTIsIDEuNTYyMiwgMS45NDc1MyIsIFwKLSAgICAgICAgICAiMC4xMzMxOTMsIDAuMTUyMzIxLCAwLjMyNDcyNywgMC42MTIxNzcsIDAuOTAwODg1LCAxLjU3MTE0LCAxLjk1NDI1IiwgXAotICAgICAgICAgICIwLjE0MjgxNywgMC4xNjE4NTcsIDAuMzM0Mjk3LCAwLjYyMTUyLCAwLjkxMDI3OCwgMS41Nzk4NywgMS45NjM4MSIsIFwKLSAgICAgICAgICAiMC4xNTg0MjMsIDAuMTc3NDEsIDAuMzQ5Mjc3LCAwLjYzNjY2NCwgMC45MjM3MTgsIDEuNTk0MzksIDEuOTc3NTciLCBcCi0gICAgICAgICAgIjAuMTcyMzA4LCAwLjE5MTIwMSwgMC4zNjI3NDgsIDAuNjQ3MjI2LCAwLjkzNjkxMiwgMS42MDk3NCwgMS45OTA2OSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMjIyNjksIDAuMjYyOTMsIDAuNjI5NTY0LCAxLjI0MDI4LCAxLjg1MDI0LCAzLjI3NDg2LCA0LjA4OTczIiwgXAotICAgICAgICAgICIwLjIyMjI3NywgMC4yNjMwMSwgMC42Mjk0NjMsIDEuMjQwNjMsIDEuODUwMzcsIDMuMjc0ODUsIDQuMDg5MDkiLCBcCi0gICAgICAgICAgIjAuMjIzMjY4LCAwLjI2MzI3MSwgMC42Mjk1MDEsIDEuMjQwMTEsIDEuODUwOTgsIDMuMjc0NjcsIDQuMDkwNjkiLCBcCi0gICAgICAgICAgIjAuMjI3MDcsIDAuMjY2MTY1LCAwLjYyOTM5NCwgMS4yNDA5MSwgMS44NTEyLCAzLjI3NTI1LCA0LjA4NzEyIiwgXAotICAgICAgICAgICIwLjIzMjYyMywgMC4yNzEwMDksIDAuNjI5MzA0LCAxLjI0MDUsIDEuODUxNDMsIDMuMjc0NywgNC4wOTA4MSIsIFwKLSAgICAgICAgICAiMC4yNDM0NzEsIDAuMjgwOTIyLCAwLjYzMjE3LCAxLjI0MDM2LCAxLjg1MTgzLCAzLjI3MzM3LCA0LjA5MzcyIiwgXAotICAgICAgICAgICIwLjI1NDQ0LCAwLjI5MDk5NSwgMC42MzY4NTYsIDEuMjM5OTEsIDEuODUxODMsIDMuMjc2NTcsIDQuMDg3MzQiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU0NzI1LCAwLjA2NDQyMywgMC4xNTE0NjcsIDAuMjk2MTYxLCAwLjQ0MDc5MywgMC43NzgzNCwgMC45NzE0MzMiLCBcCi0gICAgICAgICAgIjAuMDYyOTIsIDAuMDcyNjA3LCAwLjE1OTY1NSwgMC4zMDQyOTYsIDAuNDQ4OTQ2LCAwLjc4Njc3NiwgMC45NzkzMzUiLCBcCi0gICAgICAgICAgIjAuMDczMjcsIDAuMDgyODg3LCAwLjE2OTY3NywgMC4zMTQ1NjgsIDAuNDU5MDY0LCAwLjc5Njg5MiwgMC45ODkzODIiLCBcCi0gICAgICAgICAgIjAuMDgzNzg2LCAwLjA5MzM2NSwgMC4xODAyOTUsIDAuMzI0OTEsIDAuNDY5NTI1LCAwLjgwNzMxNywgMC45OTk2MDQiLCBcCi0gICAgICAgICAgIjAuMDk0MjUxLCAwLjEwMzk4NywgMC4xOTA1OTMsIDAuMzM0ODMxLCAwLjQ3OTg0NSwgMC44MTc1NTksIDEuMDA5ODgiLCBcCi0gICAgICAgICAgIjAuMTA4NDQ4LCAwLjExOTcyMywgMC4yMDc1MzQsIDAuMzUxODY5LCAwLjQ5NDI1OSwgMC44MzM4NSwgMS4wMjYzOSIsIFwKLSAgICAgICAgICAiMC4xMTg4NzIsIDAuMTMxMzY4LCAwLjIyMjEwOSwgMC4zNjY0NDUsIDAuNTEwOTkzLCAwLjg0ODM1MiwgMS4wNDExMyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDczNzcsIDAuMTI3MTIxLCAwLjMwNTIzOCwgMC42MDIxODQsIDAuODk5MDA1LCAxLjU5MjQ2LCAxLjk4ODIzIiwgXAotICAgICAgICAgICIwLjEwNzc2NywgMC4xMjcyOCwgMC4zMDUyMjEsIDAuNjAyMTMzLCAwLjg5OTA4MSwgMS41OTE3NCwgMS45ODkzMyIsIFwKLSAgICAgICAgICAiMC4xMTI0NDksIDAuMTMwOTYsIDAuMzA1MzA4LCAwLjYwMjE1MiwgMC44OTk1NzQsIDEuNTkxOTYsIDEuOTg5NjgiLCBcCi0gICAgICAgICAgIjAuMTE5NTAzLCAwLjEzNzMwNiwgMC4zMDc1MDksIDAuNjAyMTUzLCAwLjg5OTAyMSwgMS41OTIwOCwgMS45ODk2MSIsIFwKLSAgICAgICAgICAiMC4xMjc4NzMsIDAuMTQ1MTc2LCAwLjMxMDYzMywgMC42MDIxOTksIDAuODk5MTg2LCAxLjU5MTc4LCAxLjk4OTQ0IiwgXAotICAgICAgICAgICIwLjE0MjczNywgMC4xNTkyMjUsIDAuMzE5MzQxLCAwLjYwNDc0OSwgMC44OTkxNjksIDEuNTkxNzYsIDEuOTg4MTUiLCBcCi0gICAgICAgICAgIjAuMTU2NjQ4LCAwLjE3MjY3MywgMC4zMjg1MjQsIDAuNjA5NDYyLCAwLjkwMDEzOSwgMS41OTIyMSwgMS45ODgxMiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDIyNiwgMC4wMDIyNjEsIDAuMDAyMjYxLCAwLjAwMjI2MSwgMC4wMDIyNjEsIDAuMDAyMjYxLCAwLjAwMjI2IiwgXAotICAgICAgICAgICIwLjAwMjI1NCwgMC4wMDIyNTQsIDAuMDAyMjU3LCAwLjAwMjI1OCwgMC4wMDIyNTgsIDAuMDAyMjU4LCAwLjAwMjI1OCIsIFwKLSAgICAgICAgICAiMC4wMDIyNTEsIDAuMDAyMjUyLCAwLjAwMjI1NiwgMC4wMDIyNTcsIDAuMDAyMjU3LCAwLjAwMjI1NywgMC4wMDIyNTciLCBcCi0gICAgICAgICAgIjAuMDAyMjU1LCAwLjAwMjI1NiwgMC4wMDIyNTcsIDAuMDAyMjU4LCAwLjAwMjI1OSwgMC4wMDIyNTgsIDAuMDAyMjU3IiwgXAotICAgICAgICAgICIwLjAwMjI2NywgMC4wMDIyNjYsIDAuMDAyMjYzLCAwLjAwMjI2MSwgMC4wMDIyNiwgMC4wMDIyNTksIDAuMDAyMjU5IiwgXAotICAgICAgICAgICIwLjAwMjMsIDAuMDAyMjk1LCAwLjAwMjI3OCwgMC4wMDIyNywgMC4wMDIyNjYsIDAuMDAyMjYyLCAwLjAwMjI2MSIsIFwKLSAgICAgICAgICAiMC4wMDIzNDEsIDAuMDAyMzMzLCAwLjAwMjI5OCwgMC4wMDIyODMsIDAuMDAyMjc2LCAwLjAwMjI2OCwgMC4wMDIyNjYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDAzOTUsIDAuMDAwMzk1LCAwLjAwMDM5NSwgMC4wMDAzOTUsIDAuMDAwMzk1LCAwLjAwMDM5NSwgMC4wMDAzOTQiLCBcCi0gICAgICAgICAgIjAuMDAwMzc5LCAwLjAwMDM4LCAwLjAwMDM4MiwgMC4wMDAzODMsIDAuMDAwMzgzLCAwLjAwMDM4MywgMC4wMDAzODMiLCBcCi0gICAgICAgICAgIjAuMDAwMzc5LCAwLjAwMDM4LCAwLjAwMDM4MSwgMC4wMDAzODIsIDAuMDAwMzgyLCAwLjAwMDM4MiwgMC4wMDAzODEiLCBcCi0gICAgICAgICAgIjAuMDAwMzksIDAuMDAwMzg5LCAwLjAwMDM4NiwgMC4wMDAzODQsIDAuMDAwMzgzLCAwLjAwMDM4MiwgMC4wMDAzODIiLCBcCi0gICAgICAgICAgIjAuMDAwNDEsIDAuMDAwNDA3LCAwLjAwMDM5NCwgMC4wMDAzODgsIDAuMDAwMzg2LCAwLjAwMDM4NCwgMC4wMDAzODMiLCBcCi0gICAgICAgICAgIjAuMDAwNDYsIDAuMDAwNDQ5LCAwLjAwMDQxNiwgMC4wMDA0MDEsIDAuMDAwMzk1LCAwLjAwMDM4OSwgMC4wMDAzODciLCBcCi0gICAgICAgICAgIjAuMDAwNTE2LCAwLjAwMDQ5NywgMC4wMDA0NDMsIDAuMDAwNDE3LCAwLjAwMDQwNiwgMC4wMDAzOTUsIDAuMDAwMzkyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTk2NywgMC4wMDE5NjgsIDAuMDAxOTY5LCAwLjAwMTk2OCwgMC4wMDE5NjksIDAuMDAxOTcsIDAuMDAxOTciLCBcCi0gICAgICAgICAgIjAuMDAxOTU4LCAwLjAwMTk2LCAwLjAwMTk2NywgMC4wMDE5NywgMC4wMDE5NzEsIDAuMDAxOTY4LCAwLjAwMTk3MiIsIFwKLSAgICAgICAgICAiMC4wMDE5NSwgMC4wMDE5NTMsIDAuMDAxOTY0LCAwLjAwMTk2NywgMC4wMDE5NywgMC4wMDE5NzEsIDAuMDAxOTcyIiwgXAotICAgICAgICAgICIwLjAwMTk1LCAwLjAwMTk1MiwgMC4wMDE5NjMsIDAuMDAxOTY3LCAwLjAwMTk2OSwgMC4wMDE5NzEsIDAuMDAxOTcyIiwgXAotICAgICAgICAgICIwLjAwMTk1OCwgMC4wMDE5NTksIDAuMDAxOTY2LCAwLjAwMTk2OSwgMC4wMDE5NzEsIDAuMDAxOTcxLCAwLjAwMTk3MiIsIFwKLSAgICAgICAgICAiMC4wMDE5ODYsIDAuMDAxOTg0LCAwLjAwMTk3OSwgMC4wMDE5NzcsIDAuMDAxOTc2LCAwLjAwMTk3NSwgMC4wMDE5NzUiLCBcCi0gICAgICAgICAgIjAuMDAyMDI1LCAwLjAwMjAxOCwgMC4wMDE5OTYsIDAuMDAxOTg4LCAwLjAwMTk4NCwgMC4wMDE5OCwgMC4wMDE5NzkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDAzOTUsIDAuMDAwMzk2LCAwLjAwMDM5NiwgMC4wMDAzOTYsIDAuMDAwMzk2LCAwLjAwMDM5NiwgMC4wMDAzOTUiLCBcCi0gICAgICAgICAgIjAuMDAwMzgyLCAwLjAwMDM4MywgMC4wMDAzODQsIDAuMDAwMzg0LCAwLjAwMDM4NCwgMC4wMDAzODQsIDAuMDAwMzg0IiwgXAotICAgICAgICAgICIwLjAwMDM5LCAwLjAwMDM5MSwgMC4wMDAzODYsIDAuMDAwMzg1LCAwLjAwMDM4NCwgMC4wMDAzODMsIDAuMDAwMzgzIiwgXAotICAgICAgICAgICIwLjAwMDQxNiwgMC4wMDA0MTIsIDAuMDAwMzk4LCAwLjAwMDM5MSwgMC4wMDAzODgsIDAuMDAwMzg1LCAwLjAwMDM4NSIsIFwKLSAgICAgICAgICAiMC4wMDA0NDgsIDAuMDAwNDQxLCAwLjAwMDQxMywgMC4wMDA0LCAwLjAwMDM5NCwgMC4wMDAzODksIDAuMDAwMzg3IiwgXAotICAgICAgICAgICIwLjAwMDUxMSwgMC4wMDA0OTcsIDAuMDAwNDQzLCAwLjAwMDQxOSwgMC4wMDA0MDgsIDAuMDAwMzk3LCAwLjAwMDM5MyIsIFwKLSAgICAgICAgICAiMC4wMDA1ODIsIDAuMDAwNTYsIDAuMDAwNDgsIDAuMDAwNDQxLCAwLjAwMDQyNCwgMC4wMDA0MDYsIDAuMDAwNDAxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTY0NiwgMC4wMDE2NDcsIDAuMDAxNjUsIDAuMDAxNjUsIDAuMDAxNjUsIDAuMDAxNjUsIDAuMDAxNjUiLCBcCi0gICAgICAgICAgIjAuMDAxNjQsIDAuMDAxNjQxLCAwLjAwMTY0NiwgMC4wMDE2NDgsIDAuMDAxNjQ5LCAwLjAwMTY0OSwgMC4wMDE2NDkiLCBcCi0gICAgICAgICAgIjAuMDAxNjQ4LCAwLjAwMTY0OSwgMC4wMDE2NDksIDAuMDAxNjQ5LCAwLjAwMTY1LCAwLjAwMTY1LCAwLjAwMTY0OSIsIFwKLSAgICAgICAgICAiMC4wMDE2NzQsIDAuMDAxNjcsIDAuMDAxNjU4LCAwLjAwMTY1NCwgMC4wMDE2NTIsIDAuMDAxNjUxLCAwLjAwMTY1MSIsIFwKLSAgICAgICAgICAiMC4wMDE3MDgsIDAuMDAxNzAyLCAwLjAwMTY3NiwgMC4wMDE2NjIsIDAuMDAxNjU4LCAwLjAwMTY1NCwgMC4wMDE2NTMiLCBcCi0gICAgICAgICAgIjAuMDAxNzg0LCAwLjAwMTc2NywgMC4wMDE3MSwgMC4wMDE2ODIsIDAuMDAxNjcyLCAwLjAwMTY2MiwgMC4wMDE2NiIsIFwKLSAgICAgICAgICAiMC4wMDE4NiwgMC4wMDE4MzgsIDAuMDAxNzUsIDAuMDAxNzA3LCAwLjAwMTY4OCwgMC4wMDE2NzIsIDAuMDAxNjY3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwMDEyLCAwLjAwMDAxMywgMC4wMDAwMTUsIDAuMDAwMDE2LCAwLjAwMDAxNiwgMC4wMDAwMTcsIDAuMDAwMDE3IiwgXAotICAgICAgICAgICIwLjAwMDAxNiwgMC4wMDAwMTgsIDAuMDAwMDI0LCAwLjAwMDAyNywgMC4wMDAwMjksIDAuMDAwMDI4LCAwLjAwMDAyOCIsIFwKLSAgICAgICAgICAiMC4wMDAwMywgMC4wMDAwMywgMC4wMDAwMzEsIDAuMDAwMDMxLCAwLjAwMDAzMiwgMC4wMDAwMzIsIDAuMDAwMDMzIiwgXAotICAgICAgICAgICIwLjAwMDA1NiwgMC4wMDAwNTIsIDAuMDAwMDQyLCAwLjAwMDAzNywgMC4wMDAwMzUsIDAuMDAwMDM1LCAwLjAwMDAzNSIsIFwKLSAgICAgICAgICAiMC4wMDAwOTUsIDAuMDAwMDg3LCAwLjAwMDA1NywgMC4wMDAwNDcsIDAuMDAwMDQyLCAwLjAwMDAzOCwgMC4wMDAwMzgiLCBcCi0gICAgICAgICAgIjAuMDAwMTgyLCAwLjAwMDE1OSwgMC4wMDAwOTMsIDAuMDAwMDY2LCAwLjAwMDA1NywgMC4wMDAwNDcsIDAuMDAwMDQ0IiwgXAotICAgICAgICAgICIwLjAwMDI4NiwgMC4wMDAyNSwgMC4wMDAxMzQsIDAuMDAwMDkxLCAwLjAwMDA3NSwgMC4wMDAwNTgsIDAuMDAwMDUzIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IEFPSTIyMVg0ICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChBT0kyMjFYNCkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAxLjcyMTc5OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAzNTk1Mzc7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAzNTgyMDE7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAzNTk1Mzc7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyMDk3LCAwLjAwMjA5NiwgMC4wMDIwOTUsIDAuMDAyMDk1LCAwLjAwMjA5NCwgMC4wMDIwOTUsIDAuMDAyMDk0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyMjEyLCAwLjAwMjEzNSwgMC4wMDIxMjQsIDAuMDAyMTA5LCAwLjAwMjEwOCwgMC4wMDIxMDQsIDAuMDAyMTAzIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihBMSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAzNDMzNjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDM0MTMyODsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDM0MzM2OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTI3MSwgMC4wMDEyNywgMC4wMDEyNywgMC4wMDEyNjgsIDAuMDAxMjY4LCAwLjAwMTI2OCwgMC4wMDEyNjkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDIzODIsIDAuMDAyMzgyLCAwLjAwMjM4NCwgMC4wMDIzODQsIDAuMDAyMzg0LCAwLjAwMjM4MywgMC4wMDIzODMiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDM0NDQ2NTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDM0MzU3NTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDM0NDQ2NTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDIwOTgsIDAuMDAyMDk3LCAwLjAwMjA5NywgMC4wMDIwOTYsIDAuMDAyMDk2LCAwLjAwMjA5NiwgMC4wMDIwOTYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDIyMDYsIDAuMDAyMTI4LCAwLjAwMjEyMywgMC4wMDIxMTMsIDAuMDAyMTA4LCAwLjAwMjEwMiwgMC4wMDIxMDIiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIxKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDMyOTUxNTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDMyNzk0OTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDMyOTUxNTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDExNTUsIDAuMDAxMTU1LCAwLjAwMTE1NSwgMC4wMDExNTQsIDAuMDAxMTU0LCAwLjAwMTE1NiwgMC4wMDExNTQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDIzODIsIDAuMDAyMzgxLCAwLjAwMjM4MywgMC4wMDIzODMsIDAuMDAyMzgzLCAwLjAwMjM4MywgMC4wMDIzODMiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEMwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDMyMjExNTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDMyMjExNTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDMyMjAzMjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA0MTQsIDAuMDAwNDE0LCAwLjAwMDQxNCwgMC4wMDA0MTQsIDAuMDAwNDE0LCAwLjAwMDQxNCwgMC4wMDA0MTQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDIzNSwgMC4wMDIzNTEsIDAuMDAyMzUsIDAuMDAyMzQ5LCAwLjAwMjM0OSwgMC4wMDIzNDksIDAuMDAyMzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC40OTI4OTQ7Ci0gICAgZnVuY3Rpb24gOiAiKCEoKChBMCBBMSkrKEIwIEIxKSkrQzApKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTAiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDUzNDAxLCAwLjIwMTQ5MSwgMC4zNDkyMjUsIDAuNDU0NzQ0LCAwLjYyNDQ3MiwgMC43NzM0OTgsIDAuOTg2MDczIiwgXAotICAgICAgICAgICIwLjA2MDExOSwgMC4yMDg1OCwgMC4zNTY3NjcsIDAuNDYyMTEyLCAwLjYzMTQsIDAuNzgwMjksIDAuOTkzMjA4IiwgXAotICAgICAgICAgICIwLjA2NjQwOCwgMC4yMTQ4NzQsIDAuMzYyNzg3LCAwLjQ2ODQ0OCwgMC42Mzc0MDUsIDAuNzg2MjgxLCAwLjk5ODk0IiwgXAotICAgICAgICAgICIwLjA3MTY1NSwgMC4yMjAyOTcsIDAuMzY4Mjc4LCAwLjQ3NDMxNywgMC42NDI5MjQsIDAuNzkxNjI1LCAxLjAwNDk0IiwgXAotICAgICAgICAgICIwLjA3NTkyNywgMC4yMjU0NDQsIDAuMzczMzk0LCAwLjQ3OTIzLCAwLjY0ODY5MywgMC43OTY4NzgsIDEuMDA5NjIiLCBcCi0gICAgICAgICAgIjAuMDgxNzM4LCAwLjIzMzQzMywgMC4zODE2NywgMC40ODczMywgMC42NTY2OTMsIDAuODA0ODgsIDEuMDE4NDYiLCBcCi0gICAgICAgICAgIjAuMDg1ODIzLCAwLjI0MDM1OSwgMC4zODg0MjksIDAuNDk0MTc5LCAwLjY2MjkxOSwgMC44MTE4NDIsIDEuMDI0MzgiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODAyMDUsIDAuMzk0MDU4LCAwLjcwOTQ1NywgMC45MzU0ODcsIDEuMjk2NjQsIDEuNjEzNTMsIDIuMDY0NTUiLCBcCi0gICAgICAgICAgIjAuMDgwMjk3LCAwLjM5NDUyNywgMC43MDkzNjIsIDAuOTM1NDYyLCAxLjI5NjY2LCAxLjYxMzQ1LCAyLjA2NTA4IiwgXAotICAgICAgICAgICIwLjA4MTUzOCwgMC4zOTQzMzEsIDAuNzA5MDcsIDAuOTM1MDQyLCAxLjI5NjgsIDEuNjEzNCwgMi4wNjU3MSIsIFwKLSAgICAgICAgICAiMC4wODM5NzYsIDAuMzk0NDYyLCAwLjcwOTQ1NywgMC45MzU0MDcsIDEuMjk2OTcsIDEuNjEzMzIsIDIuMDY1MTEiLCBcCi0gICAgICAgICAgIjAuMDg3MzQzLCAwLjM5NTc0NywgMC43MDkzOTksIDAuOTM1MDM2LCAxLjI5Njk5LCAxLjYxMzM4LCAyLjA2NDUyIiwgXAotICAgICAgICAgICIwLjA5NDAwOSwgMC4zOTgxNjQsIDAuNzEwMjQ1LCAwLjkzNTIwNCwgMS4yOTY3LCAxLjYxMzM0LCAyLjA2NTYyIiwgXAotICAgICAgICAgICIwLjA5OTkxOSwgMC40MDEyNywgMC43MTE5MTksIDAuOTM2NDc1LCAxLjI5Njg1LCAxLjYxMzE5LCAyLjA2NTY2Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM0OTUxLCAwLjEzMTQ3NiwgMC4yMjU2NTEsIDAuMjkyNzU0LCAwLjM5OTgzNywgMC40OTM0ODcsIDAuNjI3NTcxIiwgXAotICAgICAgICAgICIwLjA0MTQsIDAuMTM4MDIyLCAwLjIzMjEzNywgMC4yOTkyMSwgMC40MDYyNTcsIDAuNTAwMDMzLCAwLjYzMzYzIiwgXAotICAgICAgICAgICIwLjA0OTU3OSwgMC4xNDYyOTgsIDAuMjQwNTQzLCAwLjMwNzYwMSwgMC40MTQ2ODUsIDAuNTA4NDQxLCAwLjY0MjI4MiIsIFwKLSAgICAgICAgICAiMC4wNTY5MjEsIDAuMTU0NTEzLCAwLjI0ODgzOCwgMC4zMTU5OTEsIDAuNDIzMDY5LCAwLjUxNjc4OSwgMC42NTA1NjIiLCBcCi0gICAgICAgICAgIjAuMDYzMzc1LCAwLjE2Mjc5MywgMC4yNTczNDIsIDAuMzI0NDk1LCAwLjQzMTczMywgMC41MjU0NDgsIDAuNjU5MzE1IiwgXAotICAgICAgICAgICIwLjA3MTUxNCwgMC4xNzYwNjYsIDAuMjcwMTYzLCAwLjMzNzM1OCwgMC40NDQ4NDQsIDAuNTM4NzA5LCAwLjY3MjIxNyIsIFwKLSAgICAgICAgICAiMC4wNzg0NDgsIDAuMTg3NjUyLCAwLjI4MjI2MywgMC4zNDg4OCwgMC40NTYzMjIsIDAuNTQ5ODg2LCAwLjY4NDMyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDYwNDM1LCAwLjI1MzI1NiwgMC40NDY1MTcsIDAuNTg0NywgMC44MDU3ODgsIDAuOTk5MjczLCAxLjI3NTg3IiwgXAotICAgICAgICAgICIwLjA2MTIzMSwgMC4yNTMyMzIsIDAuNDQ2NTg0LCAwLjU4NDY3MiwgMC44MDU3ODIsIDAuOTk5MjkzLCAxLjI3NTMzIiwgXAotICAgICAgICAgICIwLjA2NTYzMywgMC4yNTM0MzIsIDAuNDQ2NTE0LCAwLjU4NDczMSwgMC44MDU2OTYsIDAuOTk5Mjc5LCAxLjI3NTc2IiwgXAotICAgICAgICAgICIwLjA3MTYxNSwgMC4yNTUyODIsIDAuNDQ2NjM5LCAwLjU4NDY3MSwgMC44MDU3OTIsIDAuOTk5MzExLCAxLjI3NTc3IiwgXAotICAgICAgICAgICIwLjA3ODM0MywgMC4yNTg1NTksIDAuNDQ3NzQyLCAwLjU4NDg3NSwgMC44MDU3MjIsIDAuOTk5MzE4LCAxLjI3NTgiLCBcCi0gICAgICAgICAgIjAuMDg4ODM0LCAwLjI2NTEyOSwgMC40NTEyNTksIDAuNTg2OTUzLCAwLjgwNjIxMiwgMC45OTkyMjQsIDEuMjc1OCIsIFwKLSAgICAgICAgICAiMC4wOTc2OSwgMC4yNzIyMDMsIDAuNDU2NDY5LCAwLjU5MDIzLCAwLjgwNzk4LCAwLjk5OTgxNiwgMS4yNzU1NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTA3MSwgMC4xOTk4MDIsIDAuMzQ5MjI4LCAwLjQ1NTQ1NywgMC42MjU1NjMsIDAuNzc1ODgzLCAwLjk4OTYwMSIsIFwKLSAgICAgICAgICAiMC4wNTcyNjUsIDAuMjA2ODY3LCAwLjM1NjI1NSwgMC40NjI2NDYsIDAuNjMyNzY2LCAwLjc4MjgyNSwgMC45OTc0MTMiLCBcCi0gICAgICAgICAgIjAuMDYzNDIyLCAwLjIxMzE1OSwgMC4zNjIxOTMsIDAuNDY4NTYzLCAwLjYzODc0NSwgMC43ODk1NjMsIDEuMDAyNDUiLCBcCi0gICAgICAgICAgIjAuMDY4NTQ2LCAwLjIxODYzLCAwLjM2NzkzMSwgMC40NzQ0MzMsIDAuNjQ0MzQ3LCAwLjc5Mzc0NSwgMS4wMDc5NyIsIFwKLSAgICAgICAgICAiMC4wNzI2NywgMC4yMjM1OTEsIDAuMzcyODQ5LCAwLjQ3OTI0OCwgMC42NDk0NiwgMC43OTkwMDYsIDEuMDEzMjciLCBcCi0gICAgICAgICAgIjAuMDc4MDE4LCAwLjIzMTYwMiwgMC4zODA2NzgsIDAuNDg3NDQsIDAuNjU3Njg0LCAwLjgwODAxNSwgMS4wMjE0MiIsIFwKLSAgICAgICAgICAiMC4wODIxMjEsIDAuMjM4NTQxLCAwLjM4NzY3NSwgMC40OTQwMjEsIDAuNjY0MjMxLCAwLjgxMzk0OCwgMS4wMjkiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzY3MzEsIDAuMzkyNTMyLCAwLjcwOTU3MywgMC45MzcyMDIsIDEuMzAwNzgsIDEuNjE5ODUsIDIuMDc0MDgiLCBcCi0gICAgICAgICAgIjAuMDc2NzkyLCAwLjM5Mjg3NiwgMC43MDk4NzIsIDAuOTM3MDgyLCAxLjMwMDczLCAxLjYxOTg2LCAyLjA3NDkiLCBcCi0gICAgICAgICAgIjAuMDc4MTM2LCAwLjM5Mjg3LCAwLjcxMDQzLCAwLjkzODE2NywgMS4zMDI2LCAxLjYxOTk0LCAyLjA3NjcyIiwgXAotICAgICAgICAgICIwLjA4MDY3NCwgMC4zOTMwMDcsIDAuNzA5NjAyLCAwLjkzNjc4LCAxLjMwMDY3LCAxLjYyMDE0LCAyLjA3NDY0IiwgXAotICAgICAgICAgICIwLjA4NDI3NiwgMC4zOTQwNzEsIDAuNzEwMjI2LCAwLjkzNjgyOCwgMS4zMDA3NywgMS42MjExMywgMi4wNzcxOCIsIFwKLSAgICAgICAgICAiMC4wOTExODgsIDAuMzk2NjAzLCAwLjcxMDM5OSwgMC45MzcwNDMsIDEuMzAxMDEsIDEuNjE5NjYsIDIuMDczOTMiLCBcCi0gICAgICAgICAgIjAuMDk3LCAwLjM5OTc5MywgMC43MTIwNTgsIDAuOTM4NzcxLCAxLjMwMjM0LCAxLjYyMTA5LCAyLjA3NDI3Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDMzNDk3LCAwLjEzMDA3LCAwLjIyNDEyNywgMC4yOTEyMjgsIDAuMzk4MzI3LCAwLjQ5MjIxOSwgMC42MjYxODkiLCBcCi0gICAgICAgICAgIjAuMDQwOTY3LCAwLjEzNzU0MiwgMC4yMzE2MjksIDAuMjk4NjY0LCAwLjQwNTgxMywgMC40OTk1NzYsIDAuNjMzMTk3IiwgXAotICAgICAgICAgICIwLjA1MDkwNSwgMC4xNDcwMzgsIDAuMjQxMjAxLCAwLjMwODI5NywgMC40MTUzMjIsIDAuNTA5MDc0LCAwLjY0Mjg0MyIsIFwKLSAgICAgICAgICAiMC4wNjAzMjMsIDAuMTU2NzU0LCAwLjI1MTAwMSwgMC4zMTgwMDEsIDAuNDI1MjIzLCAwLjUxODk3OCwgMC42NTI3OTIiLCBcCi0gICAgICAgICAgIjAuMDY3ODA4LCAwLjE2NjU5LCAwLjI2MDYzMiwgMC4zMjc1NzYsIDAuNDM0OTExLCAwLjUyODY1NCwgMC42NjIxMzEiLCBcCi0gICAgICAgICAgIjAuMDc4MjU4LCAwLjE4MjQ4LCAwLjI3NjIyMywgMC4zNDMyNTksIDAuNDUwMzgzLCAwLjU0NDE0MywgMC42Nzc3MDMiLCBcCi0gICAgICAgICAgIjAuMDg1OTY1LCAwLjE5NjQ0OSwgMC4yODk5NSwgMC4zNTY4NTUsIDAuNDYzNzkxLCAwLjU1NzYzMiwgMC42OTEyODQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjA0ODUsIDAuMjUzMTgzLCAwLjQ0NjUxNywgMC41ODQ2OTksIDAuODA1ODE3LCAwLjk5OTMwMywgMS4yNzU4NCIsIFwKLSAgICAgICAgICAiMC4wNjE4MDUsIDAuMjUzMTgzLCAwLjQ0NjU1MiwgMC41ODQ3NjMsIDAuODA1NzA4LCAwLjk5OTI5MSwgMS4yNzU3MSIsIFwKLSAgICAgICAgICAiMC4wNjg0NjUsIDAuMjUzNDI0LCAwLjQ0NjQ2MiwgMC41ODQ1NjUsIDAuODA1NzE5LCAwLjk5OTMwNywgMS4yNzU4MSIsIFwKLSAgICAgICAgICAiMC4wNzY2NjcsIDAuMjU2MDM5LCAwLjQ0NjU0NSwgMC41ODQ2NywgMC44MDU3MjMsIDAuOTk5MjgyLCAxLjI3NTYxIiwgXAotICAgICAgICAgICIwLjA4NTQ3MywgMC4yNjA1NjYsIDAuNDQ4MTMxLCAwLjU4NDc0MywgMC44MDU4MjYsIDAuOTk5MzAyLCAxLjI3NTcyIiwgXAotICAgICAgICAgICIwLjA5ODU3OCwgMC4yNzAyNjQsIDAuNDUzMjk3LCAwLjU4Nzc0NCwgMC44MDU5OTYsIDAuOTk5MjgyLCAxLjI3NTc1IiwgXAotICAgICAgICAgICIwLjEwOTE5NiwgMC4yODA0MTYsIDAuNDU5ODQ0LCAwLjU5MjQ5NCwgMC44MDgyMzgsIDAuOTk5NzI5LCAxLjI3NTUzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0NzI4NiwgMC4xOTU2MTMsIDAuMzQzNDE4LCAwLjQ0OTY0MSwgMC42MTg2NDgsIDAuNzY4MTk3LCAwLjk4MDA2NiIsIFwKLSAgICAgICAgICAiMC4wNTM4NDcsIDAuMjAyMjE4LCAwLjM1MDE1NiwgMC40NTU3NTIsIDAuNjI2MTQ0LCAwLjc3NDE2NSwgMC45ODc4NDEiLCBcCi0gICAgICAgICAgIjAuMDYxMjY1LCAwLjIwOTksIDAuMzU3NzkxLCAwLjQ2MzQ0OSwgMC42MzI5MDQsIDAuNzgyNDk0LCAwLjk5NDM4NiIsIFwKLSAgICAgICAgICAiMC4wNjgyODYsIDAuMjE3MTYyLCAwLjM2NTE3OCwgMC40NzA5MjgsIDAuNjQwODEzLCAwLjc4OTIyNiwgMS4wMDMxMSIsIFwKLSAgICAgICAgICAiMC4wNzQ0MDcsIDAuMjI0NTI4LCAwLjM3MjY5NCwgMC40NzgyOTgsIDAuNjQ4MjY2LCAwLjc5NjY1MywgMS4wMDkzMyIsIFwKLSAgICAgICAgICAiMC4wODI3NjYsIDAuMjM2ODY0LCAwLjM4NDk1MSwgMC40OTA5MjEsIDAuNjYwMzk4LCAwLjgwOTU4OCwgMS4wMjE3NSIsIFwKLSAgICAgICAgICAiMC4wODg4NzcsIDAuMjQ3MzA4LCAwLjM5NTQyNSwgMC41MDE1MDEsIDAuNjcxMDE1LCAwLjgyMDU2MiwgMS4wMzMxMiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4MDE5MywgMC4zOTQzMDQsIDAuNzA5MDE1LCAwLjkzNTAzNSwgMS4yOTYzNywgMS42MTIzNCwgMi4wNjQwNiIsIFwKLSAgICAgICAgICAiMC4wODA0MzQsIDAuMzk0NTQsIDAuNzA5MDM1LCAwLjkzNDkyLCAxLjI5NjUsIDEuNjEyMzEsIDIuMDY0NDQiLCBcCi0gICAgICAgICAgIjAuMDgzMjYyLCAwLjM5NDQ1NiwgMC43MDkyMDcsIDAuOTM1MTI3LCAxLjI5NjE4LCAxLjYxMjI1LCAyLjA2NDAyIiwgXAotICAgICAgICAgICIwLjA4ODA2NywgMC4zOTQ3NTcsIDAuNzA4OTg4LCAwLjkzNDU2NCwgMS4yOTU4NiwgMS42MTIyNywgMi4wNjQyNCIsIFwKLSAgICAgICAgICAiMC4wOTQwOTIsIDAuMzk2MzEyLCAwLjcwOTA2MSwgMC45MzQ5OTYsIDEuMjk2MiwgMS42MTIyOSwgMi4wNjQxNCIsIFwKLSAgICAgICAgICAiMC4xMDQzMTIsIDAuNDAwODMxLCAwLjcxMDE1MSwgMC45MzQ5MDIsIDEuMjk1ODUsIDEuNjEyMTYsIDIuMDYzMjQiLCBcCi0gICAgICAgICAgIjAuMTEyNTUsIDAuNDA1OTE1LCAwLjcxMjU1MywgMC45MzU3NjEsIDEuMjk1NzUsIDEuNjEyMzQsIDIuMDYzNjMiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjk3NDQsIDAuMTI0NDMzLCAwLjIxODM3OCwgMC4yODUzMjEsIDAuMzkyMzQzLCAwLjQ4NTkxNywgMC42MTk1ODgiLCBcCi0gICAgICAgICAgIjAuMDM2Mjc5LCAwLjEzMTIsIDAuMjI1MTkyLCAwLjI5MjEyMiwgMC4zOTkxNDIsIDAuNDkyNzczLCAwLjYyNjQwNyIsIFwKLSAgICAgICAgICAiMC4wNDQxMzQsIDAuMTM5NDM4LCAwLjIzMzUwNSwgMC4zMDA0NzQsIDAuNDA3NTEsIDAuNTAxMTA3LCAwLjYzNDg0MSIsIFwKLSAgICAgICAgICAiMC4wNTA2NywgMC4xNDc3NTIsIDAuMjQxODI3LCAwLjMwODc5OSwgMC40MTU5ODksIDAuNTA5NiwgMC42NDMyNTUiLCBcCi0gICAgICAgICAgIjAuMDU2MTM5LCAwLjE1NjIyNSwgMC4yNTAyMzUsIDAuMzE3NDE5LCAwLjQyNDQ5NywgMC41MTgwOTgsIDAuNjUxNzU0IiwgXAotICAgICAgICAgICIwLjA2MzQ1LCAwLjE2OTE4MiwgMC4yNjM0MjksIDAuMzMwMzMzLCAwLjQzNzk2OSwgMC41MzEzMDMsIDAuNjY1MzQ3IiwgXAotICAgICAgICAgICIwLjA2OTAxMSwgMC4xODA3NzMsIDAuMjc1MTkyLCAwLjM0MTkyOCwgMC40NDk2NTMsIDAuNTQzNTUyLCAwLjY3NzQwMyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1MTIwMSwgMC4yNDQ1MTQsIDAuNDM4MDk0LCAwLjU3NjI2OCwgMC43OTc0MjcsIDAuOTkxMTA1LCAxLjI2Nzc4IiwgXAotICAgICAgICAgICIwLjA1MjQ3NCwgMC4yNDQ1MDksIDAuNDM4MDc5LCAwLjU3NjMxNywgMC43OTc2NDMsIDAuOTkxMjU1LCAxLjI2NzgiLCBcCi0gICAgICAgICAgIjAuMDU3NDQzLCAwLjI0NDg0NywgMC40Mzc5ODgsIDAuNTc2MzIxLCAwLjc5NzQ5NSwgMC45OTExNDUsIDEuMjY3NDUiLCBcCi0gICAgICAgICAgIjAuMDYzODQ5LCAwLjI0Njg0MiwgMC40MzgxOTgsIDAuNTc2MzE1LCAwLjc5NzU0MywgMC45OTExMTMsIDEuMjY3NDMiLCBcCi0gICAgICAgICAgIjAuMDcwNTQ0LCAwLjI1MDMxMSwgMC40Mzk0NDYsIDAuNTc2NTcxLCAwLjc5NzQ1NiwgMC45OTExNDksIDEuMjY3ODQiLCBcCi0gICAgICAgICAgIjAuMDgwODk0LCAwLjI1NzEwNiwgMC40NDMyNTksIDAuNTc4Njc1LCAwLjc5ODA0NywgMC45OTEwNzcsIDEuMjY3ODMiLCBcCi0gICAgICAgICAgIjAuMDg5NTU0LCAwLjI2NDU0MSwgMC40NDgxOTIsIDAuNTgyMDUxLCAwLjc5OTQ1OSwgMC45OTE3MSwgMS4yNjc4MyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDQyNzksIDAuMTkzNTM3LCAwLjM0MjM0NSwgMC40NDkwMjgsIDAuNjE5NTAxLCAwLjc2OTM4MiwgMC45ODM5NTIiLCBcCi0gICAgICAgICAgIjAuMDUwNjMsIDAuMjAwMTczLCAwLjM0OTA5NSwgMC40NTU3NTIsIDAuNjI2NzYxLCAwLjc3NTc0NiwgMC45OTA4NDEiLCBcCi0gICAgICAgICAgIjAuMDU3ODYsIDAuMjA3NjkzLCAwLjM1NjYxMSwgMC40NjI4OTYsIDAuNjMzNDA2LCAwLjc4MzkzNywgMC45OTczMDkiLCBcCi0gICAgICAgICAgIjAuMDY0NDg2LCAwLjIxNDg2MywgMC4zNjM4MzYsIDAuNDcwMTkzLCAwLjY0MDc5NywgMC43OTExODQsIDEuMDA0NjciLCBcCi0gICAgICAgICAgIjAuMDcwMzM0LCAwLjIyMjIzNiwgMC4zNzEzMTQsIDAuNDc3ODU1LCAwLjY0ODc4NiwgMC43OTg1NTUsIDEuMDEyMDYiLCBcCi0gICAgICAgICAgIjAuMDc4MTU5LCAwLjIzNDI5MSwgMC4zODM0NDIsIDAuNDkwMTI0LCAwLjY2MDY0NiwgMC44MTAxMjUsIDEuMDI0OTkiLCBcCi0gICAgICAgICAgIjAuMDgzNzA1LCAwLjI0NDYyLCAwLjM5Mzc4NiwgMC41MDA0MTQsIDAuNjcwODc3LCAwLjgyMTY2OCwgMS4wMzQ4NCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3NjQzLCAwLjM5MjkwNCwgMC43MTA0MzUsIDAuOTM2OTUyLCAxLjMwMTMxLCAxLjYxOTE0LCAyLjA3NDUiLCBcCi0gICAgICAgICAgIjAuMDc2NzM3LCAwLjM5Mjg1OCwgMC43MTAxODUsIDAuOTM3NjIyLCAxLjMwMTQzLCAxLjYyMTQ4LCAyLjA3NDUyIiwgXAotICAgICAgICAgICIwLjA3OTczMSwgMC4zOTI4OTMsIDAuNzEwNTIsIDAuOTM3MzEzLCAxLjMwMjU5LCAxLjYxOTMsIDIuMDc0NzEiLCBcCi0gICAgICAgICAgIjAuMDg0Njk5LCAwLjM5MzA4MSwgMC43MTAyOTcsIDAuOTM3MDc3LCAxLjMwMjUzLCAxLjYxOTg3LCAyLjA3NjkiLCBcCi0gICAgICAgICAgIjAuMDkwODQ0LCAwLjM5NDc5LCAwLjcxMDI0NCwgMC45Mzc5NywgMS4zMDEzMywgMS42MTk4NCwgMi4wNzY4OCIsIFwKLSAgICAgICAgICAiMC4xMDExMTEsIDAuMzk5Mjg3LCAwLjcxMDgxNiwgMC45MzY4OTUsIDEuMzAwNzEsIDEuNjE5NzUsIDIuMDczNzgiLCBcCi0gICAgICAgICAgIjAuMTA5NDgxLCAwLjQwNDM4NywgMC43MTM0MjgsIDAuOTM3OTgzLCAxLjMwMTA2LCAxLjYxOTQ5LCAyLjA3NDUiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjgxMjgsIDAuMTIyODQ4LCAwLjIxNjc3NSwgMC4yODM3MjksIDAuMzkwODEzLCAwLjQ4NDMyMSwgMC42MTgwNzgiLCBcCi0gICAgICAgICAgIjAuMDM1NzIyLCAwLjEzMDU1MiwgMC4yMjQ1MDQsIDAuMjkxNDkxLCAwLjM5ODQ2OSwgMC40OTIwODcsIDAuNjI1NzI4IiwgXAotICAgICAgICAgICIwLjA0NTU2OCwgMC4xNDAwMjIsIDAuMjMzOTcsIDAuMzAwOTA3LCAwLjQwNzkxMywgMC41MDE2NDQsIDAuNjM1MjUiLCBcCi0gICAgICAgICAgIjAuMDUzMjk3LCAwLjE0OTk5OSwgMC4yNDM3ODcsIDAuMzEwODc4LCAwLjQxNzkwMywgMC41MTE1MDYsIDAuNjQ1MTQiLCBcCi0gICAgICAgICAgIjAuMDU5OTQ4LCAwLjE1OTQzNCwgMC4yNTMyMDksIDAuMzIwMDUzLCAwLjQyNzAyLCAwLjUyMDU3NCwgMC42NTQyMDciLCBcCi0gICAgICAgICAgIjAuMDY4NTExLCAwLjE3NTEzNywgMC4yNjkxNCwgMC4zMzU3MTEsIDAuNDQyNTk5LCAwLjUzNjE1OSwgMC42Njk3NDMiLCBcCi0gICAgICAgICAgIjAuMDc0NzYyLCAwLjE4OTE2NSwgMC4yODI2NDUsIDAuMzQ5Mjc1LCAwLjQ1NjIzMywgMC41NDk2NzQsIDAuNjgzMjMxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDUxMjIxLCAwLjI0NDU1LCAwLjQzODA1OCwgMC41NzYzNTEsIDAuNzk3NTgsIDAuOTkxMjA2LCAxLjI2NzY0IiwgXAotICAgICAgICAgICIwLjA1MzI4MSwgMC4yNDQ1MzksIDAuNDM4MDU0LCAwLjU3NjM0OSwgMC43OTc1NTMsIDAuOTkxMjIxLCAxLjI2NzczIiwgXAotICAgICAgICAgICIwLjA2MDU0MiwgMC4yNDQ5MDgsIDAuNDM4MDM3LCAwLjU3NjMyMiwgMC43OTc1MzIsIDAuOTkxMTY1LCAxLjI2Nzg2IiwgXAotICAgICAgICAgICIwLjA2OTQ5NiwgMC4yNDc3NjUsIDAuNDM4MTQxLCAwLjU3NjMxNSwgMC43OTc1MzIsIDAuOTkxMTk2LCAxLjI2Nzg1IiwgXAotICAgICAgICAgICIwLjA3ODA3MywgMC4yNTI4OTYsIDAuNDM5ODk4LCAwLjU3NjU0MSwgMC43OTc0MjksIDAuOTkxMTE3LCAxLjI2NzM5IiwgXAotICAgICAgICAgICIwLjA5MDY3OSwgMC4yNjI3NzIsIDAuNDQ1MjAyLCAwLjU3OTY1NywgMC43OTc5ODIsIDAuOTkxMjIyLCAxLjI2NzY0IiwgXAotICAgICAgICAgICIwLjEwMDgyOSwgMC4yNzMzNjEsIDAuNDUyNTU1LCAwLjU4NDYzMywgMC44MDAxNzYsIDAuOTkxNzQsIDEuMjY3ODIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQzAiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM4MzExLCAwLjE4Njg0MywgMC4zMzQ3MDksIDAuNDQwMzI3LCAwLjYwOTc1NywgMC43NTk5NTYsIDAuOTczODQxIiwgXAotICAgICAgICAgICIwLjA0NTM0OSwgMC4xOTM5MjIsIDAuMzQyMTg3LCAwLjQ0NzY5OSwgMC42MTc2MjYsIDAuNzY2NjQ3LCAwLjk4MTYzIiwgXAotICAgICAgICAgICIwLjA1NDg5NSwgMC4yMDMxODIsIDAuMzUxMTQxLCAwLjQ1NjkwMywgMC42MjU3MDksIDAuNzc1NTQyLCAwLjk4OTk1MSIsIFwKLSAgICAgICAgICAiMC4wNjQzODYsIDAuMjEyMTE0LCAwLjM2MDMyNSwgMC40NjU2MDYsIDAuNjM1NDEsIDAuNzg0NTc4LCAwLjk5OTcwNiIsIFwKLSAgICAgICAgICAiMC4wNzE5MTMsIDAuMjIxMjE2LCAwLjM2OTA4LCAwLjQ3NTA0MywgMC42NDQ1NywgMC43OTMzNzUsIDEuMDA4MTUiLCBcCi0gICAgICAgICAgIjAuMDgzMDMzLCAwLjIzNjI5MSwgMC4zODM5ODQsIDAuNDg5MjM1LCAwLjY1ODk3LCAwLjgwODE2NCwgMS4wMjIyOSIsIFwKLSAgICAgICAgICAiMC4wOTA2NTgsIDAuMjQ5NTIzLCAwLjM5Njg1OSwgMC41MDIxNDksIDAuNjcxNDksIDAuODIxMDY0LCAxLjAzNDkzIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc5MywgMC4zOTQ0MjksIDAuNzA5NzM3LCAwLjkzODIxMiwgMS4zMDAzNywgMS42MTkxMSwgMi4wNzQwMiIsIFwKLSAgICAgICAgICAiMC4wNzk5NTMsIDAuMzk0NDQ2LCAwLjcxMDQ4MywgMC45MzY4NjgsIDEuMzAxMTksIDEuNjIwMzIsIDIuMDc0MjMiLCBcCi0gICAgICAgICAgIjAuMDg1NjI2LCAwLjM5NDI4NiwgMC43MTAyNDgsIDAuOTM2ODMxLCAxLjMwMDg4LCAxLjYyMDIsIDIuMDc2OTIiLCBcCi0gICAgICAgICAgIjAuMDkzMDk4LCAwLjM5NDUxLCAwLjcxMDI4LCAwLjkzNzk2NywgMS4zMDA3LCAxLjYyMDY3LCAyLjA3NTE5IiwgXAotICAgICAgICAgICIwLjEwMTE5NiwgMC4zOTY5MzYsIDAuNzA5OTg5LCAwLjkzNzE0MSwgMS4zMDE2MiwgMS42MTg5NiwgMi4wNzQ3NiIsIFwKLSAgICAgICAgICAiMC4xMTI2NTIsIDAuNDAzNTgxLCAwLjcxMTUzMywgMC45Mzc2NjksIDEuMzAwNjksIDEuNjE5NDYsIDIuMDc2OTciLCBcCi0gICAgICAgICAgIjAuMTIxOTk5LCAwLjQxMTA5LCAwLjcxNDk3LCAwLjkzODYsIDEuMzAyNDYsIDEuNjE5NSwgMi4wNzY1NSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxNDQyOCwgMC4wNjg3OSwgMC4xMjMwMSwgMC4xNjE2NzQsIDAuMjIzNTA1LCAwLjI3NzQ1MiwgMC4zNTQ1NjEiLCBcCi0gICAgICAgICAgIjAuMDIyODQ0LCAwLjA3NzMyOSwgMC4xMzE1NDEsIDAuMTcwMjAzLCAwLjIzMjAwMSwgMC4yODYwMDMsIDAuMzYzMDk2IiwgXAotICAgICAgICAgICIwLjAzMDQ0OCwgMC4wODc4NzksIDAuMTQyMDcxLCAwLjE4MDc0OCwgMC4yNDI2NDgsIDAuMjk2NjQ3LCAwLjM3Mzc3IiwgXAotICAgICAgICAgICIwLjAzNTcyNiwgMC4wOTgzMywgMC4xNTI1ODUsIDAuMTkxMjM2LCAwLjI1MjU1LCAwLjMwNjgyOSwgMC4zODM4OTciLCBcCi0gICAgICAgICAgIjAuMDM5OTQyLCAwLjEwOTQxNywgMC4xNjM1MTIsIDAuMjAxODQ0LCAwLjI2MzU3NCwgMC4zMTc4NTQsIDAuMzk0OTEiLCBcCi0gICAgICAgICAgIjAuMDQ1NDE2LCAwLjEyNTY4MywgMC4xODAyMDEsIDAuMjE5MTksIDAuMjgwNDM2LCAwLjMzNDMzNSwgMC40MTEzNDEiLCBcCi0gICAgICAgICAgIjAuMDQ4OTUzLCAwLjEzODU0MywgMC4xOTU2MSwgMC4yMzQzNzUsIDAuMjk1NzgsIDAuMzQ5NjU4LCAwLjQyNjczMSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyNzk0NCwgMC4xMzk4MywgMC4yNTE5MjIsIDAuMzMxOTI2LCAwLjQ2MDA1MiwgMC41NzIzNjksIDAuNzMyNDk0IiwgXAotICAgICAgICAgICIwLjAzMjY3NywgMC4xMzk4MzcsIDAuMjUxOTE4LCAwLjMzMTk2MSwgMC40NjAxNTQsIDAuNTcyMzc0LCAwLjczMjUwOCIsIFwKLSAgICAgICAgICAiMC4wNDIwNjgsIDAuMTQyODk4LCAwLjI1MjI1LCAwLjMzMjAyMywgMC40NjAxNzYsIDAuNTcyMzUsIDAuNzMyNDA0IiwgXAotICAgICAgICAgICIwLjA1MTI1NiwgMC4xNDg5NjEsIDAuMjU1MDA5LCAwLjMzMzA3NywgMC40NjAyNDgsIDAuNTcyMjUxLCAwLjczMjU5NSIsIFwKLSAgICAgICAgICAiMC4wNTk1MjksIDAuMTU1NzU4LCAwLjI1OTU4NCwgMC4zMzYyNzYsIDAuNDYxMjkxLCAwLjU3MjM2NywgMC43MzI1MDEiLCBcCi0gICAgICAgICAgIjAuMDcxNDcxLCAwLjE2OTczOSwgMC4yNjk3MzEsIDAuMzQ0MDc5LCAwLjQ2NjYwNCwgMC41NzUyOTksIDAuNzMzMjA0IiwgXAotICAgICAgICAgICIwLjA4MTI4LCAwLjE4MjE5MSwgMC4yNzk1MTgsIDAuMzUyNzU2LCAwLjQ3MjY5NywgMC41ODAxNTksIDAuNzM1OTA2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDIxMzkzLCAwLjAyMTQxLCAwLjAyMTQxMywgMC4wMjE0MTMsIDAuMDIxNDEyLCAwLjAyMTQxMSwgMC4wMjE0MDkiLCBcCi0gICAgICAgICAgIjAuMDIxMjg1LCAwLjAyMTM2OSwgMC4wMjEzOCwgMC4wMjEzODMsIDAuMDIxMzg3LCAwLjAyMTM4OSwgMC4wMjEzODYiLCBcCi0gICAgICAgICAgIjAuMDIxMjI3LCAwLjAyMTMzNywgMC4wMjEzNiwgMC4wMjEzNjcsIDAuMDIxMzc0LCAwLjAyMTM3NiwgMC4wMjEzOSIsIFwKLSAgICAgICAgICAiMC4wMjEyMSwgMC4wMjEzMTksIDAuMDIxMzQ4LCAwLjAyMTM1NywgMC4wMjEzNjYsIDAuMDIxMzcsIDAuMDIxMzczIiwgXAotICAgICAgICAgICIwLjAyMTIzNCwgMC4wMjEzMTQsIDAuMDIxMzQyLCAwLjAyMTM1MywgMC4wMjEzNiwgMC4wMjEzNjYsIDAuMDIxMzc0IiwgXAotICAgICAgICAgICIwLjAyMTMzOSwgMC4wMjEzNDIsIDAuMDIxMzU3LCAwLjAyMTM2MywgMC4wMjEzNjksIDAuMDIxMzczLCAwLjAyMTM3MyIsIFwKLSAgICAgICAgICAiMC4wMjE1MjEsIDAuMDIxMzk5LCAwLjAyMTM5NywgMC4wMjEzOTgsIDAuMDIxNDAzLCAwLjAyMTM5MywgMC4wMjEzOTMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNTEzOSwgMC4wMDUxNDIsIDAuMDA1MTQxLCAwLjAwNTE0MSwgMC4wMDUxNCwgMC4wMDUxMzgsIDAuMDA1MTM5IiwgXAotICAgICAgICAgICIwLjAwNDk0NiwgMC4wMDQ5OSwgMC4wMDQ5OTcsIDAuMDA0OTk4LCAwLjAwNDk5OCwgMC4wMDQ5OTYsIDAuMDA0OTk5IiwgXAotICAgICAgICAgICIwLjAwNDkwOSwgMC4wMDQ5NTMsIDAuMDA0OTYzLCAwLjAwNDk2NSwgMC4wMDQ5NjcsIDAuMDA0OTY4LCAwLjAwNDk2NiIsIFwKLSAgICAgICAgICAiMC4wMDQ5OTcsIDAuMDA0OTY2LCAwLjAwNDk2NywgMC4wMDQ5NjYsIDAuMDA0OTY1LCAwLjAwNDk2MywgMC4wMDQ5NjMiLCBcCi0gICAgICAgICAgIjAuMDA1MTc4LCAwLjAwNTAxOSwgMC4wMDQ5OTgsIDAuMDA0OTg5LCAwLjAwNDk4MiwgMC4wMDQ5NzcsIDAuMDA0OTY5IiwgXAotICAgICAgICAgICIwLjAwNTYwNiwgMC4wMDUxNzMsIDAuMDA1MDkzLCAwLjAwNTA2OSwgMC4wMDUwNDQsIDAuMDA1MDI2LCAwLjAwNTAxMSIsIFwKLSAgICAgICAgICAiMC4wMDYwNzksIDAuMDA1MzY0LCAwLjAwNTIyMiwgMC4wMDUxNywgMC4wMDUxMTcsIDAuMDA1MDg3LCAwLjAwNTA2NSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkExIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxOTQ0OSwgMC4wMTk1MTYsIDAuMDE5NTIyLCAwLjAxOTUyNCwgMC4wMTk1MjUsIDAuMDE5NTI2LCAwLjAxOTUyNiIsIFwKLSAgICAgICAgICAiMC4wMTkyNiwgMC4wMTk0NzIsIDAuMDE5NTA0LCAwLjAxOTUxNSwgMC4wMTk1MjMsIDAuMDE5NTI3LCAwLjAxOTUzNCIsIFwKLSAgICAgICAgICAiMC4wMTkxNDYsIDAuMDE5NDA3LCAwLjAxOTQ2NCwgMC4wMTk0ODMsIDAuMDE5NTAxLCAwLjAxOTUxLCAwLjAxOTUwNiIsIFwKLSAgICAgICAgICAiMC4wMTkxMDQsIDAuMDE5MzU1LCAwLjAxOTQzMiwgMC4wMTk0NTgsIDAuMDE5NDkxLCAwLjAxOTQ5NCwgMC4wMTk1MDUiLCBcCi0gICAgICAgICAgIjAuMDE5MTE3LCAwLjAxOTMzLCAwLjAxOTQwOCwgMC4wMTk0MzcsIDAuMDE5NDY1LCAwLjAxOTQ3LCAwLjAxOTQ5NCIsIFwKLSAgICAgICAgICAiMC4wMTkyMjgsIDAuMDE5MzI5LCAwLjAxOTM5OSwgMC4wMTk0MjgsIDAuMDE5NDUyLCAwLjAxOTQ2NywgMC4wMTk0ODEiLCBcCi0gICAgICAgICAgIjAuMDE5Mzk4LCAwLjAxOTM3MiwgMC4wMTk0MjIsIDAuMDE5NDQyLCAwLjAxOTQ3NiwgMC4wMTk0ODUsIDAuMDE5NDkyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDUxNDUsIDAuMDA1MTUxLCAwLjAwNTE1LCAwLjAwNTE0OCwgMC4wMDUxNDcsIDAuMDA1MTQ3LCAwLjAwNTE0OSIsIFwKLSAgICAgICAgICAiMC4wMDQ5NjQsIDAuMDA0OTk3LCAwLjAwNTAwMiwgMC4wMDUwMDUsIDAuMDA1MDA2LCAwLjAwNSwgMC4wMDUwMDMiLCBcCi0gICAgICAgICAgIjAuMDA1MDU3LCAwLjAwNTAwMywgMC4wMDQ5OTQsIDAuMDA0OTkxLCAwLjAwNDk4NiwgMC4wMDQ5ODYsIDAuMDA0OTg0IiwgXAotICAgICAgICAgICIwLjAwNTI4NCwgMC4wMDUwNjUsIDAuMDA1MDMyLCAwLjAwNTAxNSwgMC4wMDUwMDYsIDAuMDA0OTk4LCAwLjAwNDk5MiIsIFwKLSAgICAgICAgICAiMC4wMDU2MzgsIDAuMDA1MTc5LCAwLjAwNTEwNSwgMC4wMDUwNzUsIDAuMDA1MDUsIDAuMDA1MDMzLCAwLjAwNTAyIiwgXAotICAgICAgICAgICIwLjAwNjE3MiwgMC4wMDU0MywgMC4wMDUyNjgsIDAuMDA1MjA3LCAwLjAwNTE1NywgMC4wMDUxMjMsIDAuMDA1MDg5IiwgXAotICAgICAgICAgICIwLjAwNjc3NCwgMC4wMDU3MTQsIDAuMDA1NDY5LCAwLjAwNTM2NiwgMC4wMDUyNywgMC4wMDUyMywgMC4wMDUxNzkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTY3NTUsIDAuMDE2NzcyLCAwLjAxNjc3NCwgMC4wMTY3NzQsIDAuMDE2NzczLCAwLjAxNjc3MywgMC4wMTY3NyIsIFwKLSAgICAgICAgICAiMC4wMTY2NDYsIDAuMDE2NzI4LCAwLjAxNjc0LCAwLjAxNjc0MywgMC4wMTY3NDcsIDAuMDE2NzQzLCAwLjAxNjc0NSIsIFwKLSAgICAgICAgICAiMC4wMTY2MDMsIDAuMDE2NzAxLCAwLjAxNjcyMSwgMC4wMTY3MjgsIDAuMDE2NzM0LCAwLjAxNjczNiwgMC4wMTY3MzgiLCBcCi0gICAgICAgICAgIjAuMDE2NjM2LCAwLjAxNjY5OCwgMC4wMTY3MTgsIDAuMDE2NzI1LCAwLjAxNjczMSwgMC4wMTY3MzQsIDAuMDE2NzM2IiwgXAotICAgICAgICAgICIwLjAxNjcyMiwgMC4wMTY3MjIsIDAuMDE2NzMyLCAwLjAxNjczNSwgMC4wMTY3NCwgMC4wMTY3NDEsIDAuMDE2NzQxIiwgXAotICAgICAgICAgICIwLjAxNjk4LCAwLjAxNjgwMSwgMC4wMTY3OCwgMC4wMTY3NzQsIDAuMDE2NzY2LCAwLjAxNjc2NCwgMC4wMTY3NiIsIFwKLSAgICAgICAgICAiMC4wMTczMjcsIDAuMDE2OTI5LCAwLjAxNjg2NiwgMC4wMTY4NDEsIDAuMDE2ODE4LCAwLjAxNjgwNiwgMC4wMTY3OTMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjE5MSwgMC4wMDIyMSwgMC4wMDIyMTIsIDAuMDAyMjEzLCAwLjAwMjIxMywgMC4wMDIyMTIsIDAuMDAyMjEzIiwgXAotICAgICAgICAgICIwLjAwMjA0MiwgMC4wMDIxODQsIDAuMDAyMjA0LCAwLjAwMjIxLCAwLjAwMjIxNiwgMC4wMDIyMTgsIDAuMDAyMjIiLCBcCi0gICAgICAgICAgIjAuMDAxOTk5LCAwLjAwMjE1OSwgMC4wMDIxOTEsIDAuMDAyMjAxLCAwLjAwMjIwOSwgMC4wMDIyMTMsIDAuMDAyMjE3IiwgXAotICAgICAgICAgICIwLjAwMjA5MSwgMC4wMDIxNzMsIDAuMDAyMTk3LCAwLjAwMjIwNiwgMC4wMDIyMTMsIDAuMDAyMjE3LCAwLjAwMjIyMSIsIFwKLSAgICAgICAgICAiMC4wMDIyNzgsIDAuMDAyMjIzLCAwLjAwMjIyOSwgMC4wMDIyMzIsIDAuMDAyMjMzLCAwLjAwMjIzMywgMC4wMDIyMzQiLCBcCi0gICAgICAgICAgIjAuMDAyNzQ0LCAwLjAwMjM2MiwgMC4wMDIzMTksIDAuMDAyMzAyLCAwLjAwMjI4OCwgMC4wMDIyNzcsIDAuMDAyMjciLCBcCi0gICAgICAgICAgIjAuMDAzMjc2LCAwLjAwMjU0LCAwLjAwMjQzNywgMC4wMDIzOTksIDAuMDAyMzY2LCAwLjAwMjM0NSwgMC4wMDIzMjQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTQ2ODYsIDAuMDE0NzUyLCAwLjAxNDc1OSwgMC4wMTQ3NiwgMC4wMTQ3NjIsIDAuMDE0NzYyLCAwLjAxNDc2MiIsIFwKLSAgICAgICAgICAiMC4wMTQ0OTcsIDAuMDE0NzA3LCAwLjAxNDc0LCAwLjAxNDc1MSwgMC4wMTQ3NTgsIDAuMDE0NzYsIDAuMDE0NzY4IiwgXAotICAgICAgICAgICIwLjAxNDQwMywgMC4wMTQ2NDksIDAuMDE0NzAzLCAwLjAxNDcyMiwgMC4wMTQ3MzksIDAuMDE0NzQ4LCAwLjAxNDc1IiwgXAotICAgICAgICAgICIwLjAxNDQxNywgMC4wMTQ2MTksIDAuMDE0NjgyLCAwLjAxNDcwNCwgMC4wMTQ3MjUsIDAuMDE0NzM2LCAwLjAxNDc0NiIsIFwKLSAgICAgICAgICAiMC4wMTQ1MDIsIDAuMDE0NjE1LCAwLjAxNDY3OCwgMC4wMTQ3MDEsIDAuMDE0NzIxLCAwLjAxNDczNSwgMC4wMTQ3NDMiLCBcCi0gICAgICAgICAgIjAuMDE0NzYyLCAwLjAxNDY3MiwgMC4wMTQ3MDQsIDAuMDE0NzE5LCAwLjAxNDczMSwgMC4wMTQ3NDEsIDAuMDE0NzQ4IiwgXAotICAgICAgICAgICIwLjAxNTEwNiwgMC4wMTQ3ODIsIDAuMDE0NzczLCAwLjAxNDc2MywgMC4wMTQ3NjksIDAuMDE0NzcyLCAwLjAxNDc3MyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyMTc4LCAwLjAwMjIwMywgMC4wMDIyMDUsIDAuMDAyMjA1LCAwLjAwMjIwNiwgMC4wMDIyMDYsIDAuMDAyMjA1IiwgXAotICAgICAgICAgICIwLjAwMjA4MiwgMC4wMDIxODcsIDAuMDAyMjAzLCAwLjAwMjIwNywgMC4wMDIyMTEsIDAuMDAyMjEzLCAwLjAwMjIxNSIsIFwKLSAgICAgICAgICAiMC4wMDIxMzMsIDAuMDAyMjIyLCAwLjAwMjIyNCwgMC4wMDIyMjQsIDAuMDAyMjI0LCAwLjAwMjIyMSwgMC4wMDIyMjMiLCBcCi0gICAgICAgICAgIjAuMDAyMzY5LCAwLjAwMjI1NywgMC4wMDIyNjEsIDAuMDAyMjQ3LCAwLjAwMjI0MywgMC4wMDIyNCwgMC4wMDIyMzciLCBcCi0gICAgICAgICAgIjAuMDAyNjUsIDAuMDAyNDMsIDAuMDAyMzY1LCAwLjAwMjMzNSwgMC4wMDIzMSwgMC4wMDIyOTQsIDAuMDAyMjgiLCBcCi0gICAgICAgICAgIjAuMDAzMzU1LCAwLjAwMjY2LCAwLjAwMjU1MywgMC4wMDI0NjIsIDAuMDAyNDE3LCAwLjAwMjM4NCwgMC4wMDIzNTMiLCBcCi0gICAgICAgICAgIjAuMDA0MDU0LCAwLjAwMjk2NiwgMC4wMDI3MjcsIDAuMDAyNjI5LCAwLjAwMjU1MywgMC4wMDI0OTcsIDAuMDAyNDQ1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQzAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEzMjQzLCAwLjAxMzMzLCAwLjAxMzM0LCAwLjAxMzM0MiwgMC4wMTMzNDUsIDAuMDEzMzQ1LCAwLjAxMzM0NiIsIFwKLSAgICAgICAgICAiMC4wMTMxMTgsIDAuMDEzMjY2LCAwLjAxMzI5OCwgMC4wMTMzMTEsIDAuMDEzMzIyLCAwLjAxMzMyMSwgMC4wMTMzMjciLCBcCi0gICAgICAgICAgIjAuMDEzMjM4LCAwLjAxMzI1NywgMC4wMTMyODUsIDAuMDEzMjk3LCAwLjAxMzMwOCwgMC4wMTMzMTUsIDAuMDEzMzIyIiwgXAotICAgICAgICAgICIwLjAxMzUzMiwgMC4wMTMzNDgsIDAuMDEzMzI5LCAwLjAxMzMzMiwgMC4wMTMzMzEsIDAuMDEzMzMyLCAwLjAxMzMzMyIsIFwKLSAgICAgICAgICAiMC4wMTM5NzMsIDAuMDEzNDc1LCAwLjAxMzQwMiwgMC4wMTMzODYsIDAuMDEzMzc2LCAwLjAxMzM2OCwgMC4wMTMzNTkiLCBcCi0gICAgICAgICAgIjAuMDE0NTkxLCAwLjAxMzc1OCwgMC4wMTM1OCwgMC4wMTM1MiwgMC4wMTM0NjksIDAuMDEzNDQyLCAwLjAxMzQxOCIsIFwKLSAgICAgICAgICAiMC4wMTUzMzYsIDAuMDE0MDM5LCAwLjAxMzc3OSwgMC4wMTM2ODMsIDAuMDEzNTg4LCAwLjAxMzUzOSwgMC4wMTM0OTYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDExOCwgMC4wMDAwNjMsIDAuMDAwMDc2LCAwLjAwMDA3OSwgMC4wMDAwODMsIDAuMDAwMDg0LCAwLjAwMDA4NiIsIFwKLSAgICAgICAgICAiMC4wMDAyMTEsIDAuMDAwMTQ3LCAwLjAwMDE4MywgMC4wMDAxOTYsIDAuMDAwMjA2LCAwLjAwMDIxMSwgMC4wMDAyMTYiLCBcCi0gICAgICAgICAgIjAuMDAwMDQyLCAwLjAwMDE4OSwgMC4wMDAyMTgsIDAuMDAwMjI4LCAwLjAwMDI0NCwgMC4wMDAyNDgsIDAuMDAwMjUyIiwgXAotICAgICAgICAgICIwLjAwMDM3NiwgMC4wMDAzMzQsIDAuMDAwMzA4LCAwLjAwMDI5OSwgMC4wMDAyOTMsIDAuMDAwMjg4LCAwLjAwMDI4NCIsIFwKLSAgICAgICAgICAiMC4wMDA4MTgsIDAuMDAwMzgzLCAwLjAwMDMzMiwgMC4wMDAzNDUsIDAuMDAwMzI2LCAwLjAwMDMwMywgMC4wMDAyOTciLCBcCi0gICAgICAgICAgIjAuMDAxNjA0LCAwLjAwMDgzOCwgMC4wMDA2NjIsIDAuMDAwNTkxLCAwLjAwMDQ2OCwgMC4wMDA0MzQsIDAuMDAwNDAzIiwgXAotICAgICAgICAgICIwLjAwMjQwMywgMC4wMDA5OTIsIDAuMDAwNzEzLCAwLjAwMDYzOSwgMC4wMDA1NTEsIDAuMDAwNDk5LCAwLjAwMDQ2NCIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBBT0kyMjFYTCAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoQU9JMjIxWEwpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4yNzc5ODg7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2MDIyMTk7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjAwMTkxOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDYwMjIxOTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyOTYsIDAuMDAwMjk2LCAwLjAwMDI5NiwgMC4wMDAyOTYsIDAuMDAwMjk2LCAwLjAwMDI5NiwgMC4wMDAyOTYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAzMTUsIDAuMDAwMzA0LCAwLjAwMDMsIDAuMDAwMjk5LCAwLjAwMDI5OCwgMC4wMDAyOTcsIDAuMDAwMjk4Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihBMSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjMyMzUzOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYyOTQ5NjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2MzIzNTM7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMTE5LCAwLjAwMDExOSwgMC4wMDAxMTksIDAuMDAwMTE5LCAwLjAwMDExOSwgMC4wMDAxMTksIDAuMDAwMTE5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzM3LCAwLjAwMDMzOCwgMC4wMDAzMzcsIDAuMDAwMzM4LCAwLjAwMDMzOCwgMC4wMDAzMzgsIDAuMDAwMzM4Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjYwMzgzOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDY1OTA1MzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2NjAzODM7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjk2LCAwLjAwMDI5NywgMC4wMDAyOTYsIDAuMDAwMjk2LCAwLjAwMDI5NiwgMC4wMDAyOTYsIDAuMDAwMjk2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzE0LCAwLjAwMDMwMywgMC4wMDAyOTksIDAuMDAwMjk4LCAwLjAwMDI5OCwgMC4wMDAyOTgsIDAuMDAwMjk3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCMSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjQ3MDMyOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDY0NDg7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjQ3MDMyOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDA4MSwgMC4wMDAwOCwgMC4wMDAwOCwgMC4wMDAwOCwgMC4wMDAwODEsIDAuMDAwMDgxLCAwLjAwMDA4MSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDMzNywgMC4wMDAzMzcsIDAuMDAwMzM3LCAwLjAwMDMzNywgMC4wMDAzMzcsIDAuMDAwMzM3LCAwLjAwMDMzNyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQzApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYzMTEzOTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MzExMzk7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjMxMDI2OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDA1NSwgMC4wMDAwNTUsIDAuMDAwMDU1LCAwLjAwMDA1NSwgMC4wMDAwNTUsIDAuMDAwMDU1LCAwLjAwMDA1NSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDQ0NywgMC4wMDA0NDcsIDAuMDAwNDQ3LCAwLjAwMDQ0NywgMC4wMDA0NDcsIDAuMDAwNDQ3LCAwLjAwMDQ0NyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjA3NDgwNDI7Ci0gICAgZnVuY3Rpb24gOiAiKCEoKChBMCBBMSkrKEIwIEIxKSkrQzApKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTAiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE3OTMyNSwgMC4yMDcyOTIsIDAuNDU2OTU0LCAwLjg3NTMyNywgMS4yOTU0OSwgMi4yNzE5LCAyLjgzMSIsIFwKLSAgICAgICAgICAiMC4xODY1MjMsIDAuMjE0MjExLCAwLjQ2NDUyMSwgMC44ODE4MjYsIDEuMzAyMjEsIDIuMjgxODEsIDIuODM5MDkiLCBcCi0gICAgICAgICAgIjAuMTkyOTIzLCAwLjIyMDYxOCwgMC40NzA2MTgsIDAuODg4OTcyLCAxLjMwODMyLCAyLjI4NzAxLCAyLjg0NDgyIiwgXAotICAgICAgICAgICIwLjE5ODE5NywgMC4yMjYwMDcsIDAuNDc2MDAyLCAwLjg5Mzc0MywgMS4zMTMsIDIuMjkyMzYsIDIuODUxMDIiLCBcCi0gICAgICAgICAgIjAuMjAzMTEyLCAwLjIzMTAwOCwgMC40ODA3OTMsIDAuODk5MjczLCAxLjMxNzc1LCAyLjI5NTc5LCAyLjg1NDYxIiwgXAotICAgICAgICAgICIwLjIxMDgyNCwgMC4yMzg1NjUsIDAuNDg4NDA5LCAwLjkwNjQwMiwgMS4zMjU3NiwgMi4zMDYwMywgMi44NjI1NiIsIFwKLSAgICAgICAgICAiMC4yMTc1MDksIDAuMjQ1MTYzLCAwLjQ5NTMyOSwgMC45MTI3MjgsIDEuMzMyMjksIDIuMzExNiwgMi44Njg2NCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zNDA2MDQsIDAuMzk5NjU3LCAwLjkzMjI2MywgMS44MjMwMiwgMi43MTM0NywgNC43OTA4NywgNS45NzcxNCIsIFwKLSAgICAgICAgICAiMC4zNDA4NzQsIDAuMzk5ODksIDAuOTMyNDM5LCAxLjgyMjQ5LCAyLjcxMzEyLCA0Ljc5MDMzLCA1Ljk3NTE4IiwgXAotICAgICAgICAgICIwLjM0MDc5LCAwLjM5OTg0MSwgMC45MzIwMzUsIDEuODIyMzgsIDIuNzEyMDIsIDQuNzg4ODIsIDUuOTgzMTciLCBcCi0gICAgICAgICAgIjAuMzQxMjE2LCAwLjM5OTk1OCwgMC45MzE4NzIsIDEuODI0NzIsIDIuNzEzODYsIDQuNzkwNjQsIDUuOTc1NTIiLCBcCi0gICAgICAgICAgIjAuMzQyMzU3LCAwLjQwMDU3OCwgMC45MzIyMTgsIDEuODIyMTUsIDIuNzEzMDIsIDQuNzk2MDMsIDUuOTc4MzUiLCBcCi0gICAgICAgICAgIjAuMzQ1MTk0LCAwLjQwMzIwMSwgMC45MzIyMjQsIDEuODIyNSwgMi43MTE2LCA0Ljc5MDM3LCA1Ljk4MjkyIiwgXAotICAgICAgICAgICIwLjM0ODQ5MiwgMC40MDYxNzUsIDAuOTMyOTU2LCAxLjgyMzA2LCAyLjcxNjgzLCA0Ljc4ODczLCA1Ljk4MDIiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTEyNzM3LCAwLjEyOTkxMywgMC4yODM0NzcsIDAuNTM3OTQ2LCAwLjc5MjA1OCwgMS4zODUxMiwgMS43MjQ1MiIsIFwKLSAgICAgICAgICAiMC4xMTkwMiwgMC4xMzYxOTMsIDAuMjg5NzY0LCAwLjU0NDA2NCwgMC43OTgxMjIsIDEuMzkxMzMsIDEuNzI5OTIiLCBcCi0gICAgICAgICAgIjAuMTI2OTg3LCAwLjE0NDA5LCAwLjI5Nzc4LCAwLjU1MjA1OCwgMC44MDYyMTgsIDEuMzk5NDcsIDEuNzM4MDEiLCBcCi0gICAgICAgICAgIjAuMTM0NjgxLCAwLjE1MTk1LCAwLjMwNTYwNCwgMC41NjAxNzEsIDAuODE0MDMsIDEuNDA3NDUsIDEuNzQ1ODciLCBcCi0gICAgICAgICAgIjAuMTQyNjcxLCAwLjE1OTc5NiwgMC4zMTM2ODEsIDAuNTY4MTM4LCAwLjgyMjMxOCwgMS40MTQ3NywgMS43NTM3NCIsIFwKLSAgICAgICAgICAiMC4xNTUzNDMsIDAuMTcyODQ2LCAwLjMyNjAxMiwgMC41ODA2ODIsIDAuODM0ODczLCAxLjQyNzU2LCAxLjc2NTk1IiwgXAotICAgICAgICAgICIwLjE2NjM4OSwgMC4xODM3MjgsIDAuMzM3Mzc2LCAwLjU5MjIyLCAwLjg0NjI1LCAxLjQzOTE0LCAxLjc3NzQ2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIxNDE3MSwgMC4yNDkwMTUsIDAuNTYyMzI0LCAxLjA4NDkzLCAxLjYwNzQ2LCAyLjgyNDk2LCAzLjUyMDg4IiwgXAotICAgICAgICAgICIwLjIxNDE5OSwgMC4yNDg5ODYsIDAuNTYyMjcyLCAxLjA4NDY1LCAxLjYwNzQ4LCAyLjgyNTM2LCAzLjUyMDg4IiwgXAotICAgICAgICAgICIwLjIxNDgyNywgMC4yNDkyMzcsIDAuNTYyMjg4LCAxLjA4NDY4LCAxLjYwNzAyLCAyLjgyNTYzLCAzLjUyMTAxIiwgXAotICAgICAgICAgICIwLjIxNzI1NSwgMC4yNTEyNCwgMC41NjIyODMsIDEuMDg0NjksIDEuNjA3MjEsIDIuODI0NzgsIDMuNTIxMSIsIFwKLSAgICAgICAgICAiMC4yMjExMjEsIDAuMjU0NTAxLCAwLjU2MjU5MywgMS4wODUyMywgMS42MDczNiwgMi44MjUwOCwgMy41MjEzIiwgXAotICAgICAgICAgICIwLjIyODk4NCwgMC4yNjE5NTEsIDAuNTY1MDE4LCAxLjA4NDcxLCAxLjYwNzM1LCAyLjgyNDksIDMuNTIxMjEiLCBcCi0gICAgICAgICAgIjAuMjM3MDAzLCAwLjI2OTIwOCwgMC41Njg4OTIsIDEuMDg1MDYsIDEuNjA3NDIsIDIuODI0OCwgMy41MjEyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTc2MTU5LCAwLjIwMzg3MiwgMC40NTM1NDEsIDAuODcyMDIxLCAxLjI5MDY3LCAyLjI2ODI4LCAyLjgyNzUxIiwgXAotICAgICAgICAgICIwLjE4MzA0MSwgMC4yMTA4NDQsIDAuNDYxMDUsIDAuODc5NjA2LCAxLjI5ODkzLCAyLjI3NjgsIDIuODM1ODkiLCBcCi0gICAgICAgICAgIjAuMTg5NDE5LCAwLjIxNzE1NCwgMC40NjcyNjYsIDAuODg2MDYsIDEuMzA0ODcsIDIuMjg0NDgsIDIuODQxMzQiLCBcCi0gICAgICAgICAgIjAuMTk0NjMzLCAwLjIyMjQ1MiwgMC40NzI2LCAwLjg5MTU3MiwgMS4zMDk2OCwgMi4yODkxMywgMi44NDc4MiIsIFwKLSAgICAgICAgICAiMC4xOTk0OSwgMC4yMjczMTYsIDAuNDc3MzQzLCAwLjg5NTI3OSwgMS4zMTQ2NiwgMi4yOTUyLCAyLjg1MTI1IiwgXAotICAgICAgICAgICIwLjIwNzA5NSwgMC4yMzQ5MjcsIDAuNDg1MDM2LCAwLjkwMzQ2MiwgMS4zMjIzNSwgMi4zMDI4NywgMi44NTk5MyIsIFwKLSAgICAgICAgICAiMC4yMTM3OTUsIDAuMjQxNDY1LCAwLjQ5MTUyMywgMC45MDk0MjksIDEuMzI5ODgsIDIuMzA5ODIsIDIuODY1MzciKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzM1OTIxLCAwLjM5NDkzMiwgMC45MjY5NTYsIDEuODE3NDksIDIuNzEwMzQsIDQuNzg4ODksIDUuOTcyNTMiLCBcCi0gICAgICAgICAgIjAuMzM2MDQ0LCAwLjM5NDkzNiwgMC45MjczNzQsIDEuODE3MzgsIDIuNzA4MzYsIDQuNzgzNjcsIDUuOTcwMTciLCBcCi0gICAgICAgICAgIjAuMzM1ODY2LCAwLjM5NDk2OSwgMC45MjY2MTEsIDEuODE3MzYsIDIuNzA2NywgNC43ODU2OCwgNS45NzE2NyIsIFwKLSAgICAgICAgICAiMC4zMzY0MzEsIDAuMzk0OTgsIDAuOTI2NjkxLCAxLjgxNzg3LCAyLjcwNzk2LCA0Ljc4NTU5LCA1Ljk3MDI5IiwgXAotICAgICAgICAgICIwLjMzNzMxOCwgMC4zOTU5MzIsIDAuOTI2NjI3LCAxLjgxODgzLCAyLjcwNzYyLCA0Ljc4NjIsIDUuOTcxNTMiLCBcCi0gICAgICAgICAgIjAuMzQwMzA0LCAwLjM5ODA4OCwgMC45MjY3MzMsIDEuODE3NDYsIDIuNzEwNzYsIDQuNzg2MjIsIDUuOTcwNjUiLCBcCi0gICAgICAgICAgIjAuMzQzNzU1LCAwLjQwMTI5NSwgMC45Mjc4NzIsIDEuODE4ODUsIDIuNzA3MTQsIDQuNzg1NzgsIDUuOTc1MiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTEwODYsIDAuMTI4MjYxLCAwLjI4MTgwNiwgMC41MzYwMjQsIDAuNzg5OTg5LCAxLjM4MjY5LCAxLjcyMjIyIiwgXAotICAgICAgICAgICIwLjExODMyMiwgMC4xMzU1MSwgMC4yODkwNDEsIDAuNTQzMjMzLCAwLjc5NzQwNCwgMS4zOTAwNywgMS43Mjk2NiIsIFwKLSAgICAgICAgICAiMC4xMjc4MDEsIDAuMTQ0OTY4LCAwLjI5ODQxNiwgMC41NTI3MDksIDAuODA2NzgxLCAxLjM5OTg0LCAxLjczOTA0IiwgXAotICAgICAgICAgICIwLjEzNzMzOCwgMC4xNTQ0ODgsIDAuMzA3OTQ3LCAwLjU2MjE5NCwgMC44MTYyOTEsIDEuNDA4OTgsIDEuNzQ4MyIsIFwKLSAgICAgICAgICAiMC4xNDcwODUsIDAuMTY0MTA0LCAwLjMxNzQ2OSwgMC41NzE3MjQsIDAuODI1ODExLCAxLjQxODY4LCAxLjc1NzU0IiwgXAotICAgICAgICAgICIwLjE2MjY3OSwgMC4xNzk2NDcsIDAuMzMyNzcxLCAwLjU4Njg2NSwgMC44NDA5MDgsIDEuNDMzNTIsIDEuNzcxNzciLCBcCi0gICAgICAgICAgIjAuMTc2NTc3LCAwLjE5MzQ5LCAwLjM0NjE2NSwgMC42MDAxMzUsIDAuODU0Mjk3LCAxLjQ0Njg2LCAxLjc4NTQyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIxNDI1MywgMC4yNDkwNDEsIDAuNTYyMjk1LCAxLjA4NTAzLCAxLjYwNjkyLCAyLjgyNTUxLCAzLjUyMDg5IiwgXAotICAgICAgICAgICIwLjIxNDE4NywgMC4yNDg5NDMsIDAuNTYyMjk1LCAxLjA4NTE2LCAxLjYwNzQ1LCAyLjgyNTQ0LCAzLjUyMDkiLCBcCi0gICAgICAgICAgIjAuMjE0OTY0LCAwLjI0OTIyOSwgMC41NjIyODEsIDEuMDg0ODMsIDEuNjA3MzksIDIuODI1NTUsIDMuNTIwOSIsIFwKLSAgICAgICAgICAiMC4yMTg1NDIsIDAuMjUyMTIxLCAwLjU2MjI3MSwgMS4wODQ4MywgMS42MDc1MiwgMi44MjQ4OSwgMy41MjA5MSIsIFwKLSAgICAgICAgICAiMC4yMjQwNjksIDAuMjU2Nzc1LCAwLjU2MjU1OCwgMS4wODQ2NiwgMS42MDY4NCwgMi44MjUwNywgMy41MjExIiwgXAotICAgICAgICAgICIwLjIzNTAxNiwgMC4yNjY3NDUsIDAuNTY1OTk1LCAxLjA4NTAzLCAxLjYwNzI0LCAyLjgyNTQyLCAzLjUyMDg4IiwgXAotICAgICAgICAgICIwLjI0NTk4MywgMC4yNzcwODQsIDAuNTcxMDg4LCAxLjA4NDgyLCAxLjYwNzI3LCAyLjgyNDk2LCAzLjUyMTcyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNzE3NTcsIDAuMTk5NTEyLCAwLjQ0OTE0NywgMC44NjY0NDYsIDEuMjgxNjYsIDIuMjUyNjQsIDIuODA2OTMiLCBcCi0gICAgICAgICAgIjAuMTc4NTQ4LCAwLjIwNjM1LCAwLjQ1NTk4NCwgMC44NzI0NDMsIDEuMjg4NjksIDIuMjU5OTQsIDIuODEzNzQiLCBcCi0gICAgICAgICAgIjAuMTg1ODE3LCAwLjIxMzcxOSwgMC40NjM0ODQsIDAuODgwMTgzLCAxLjI5NjUyLCAyLjI2Nzk4LCAyLjgyMTkxIiwgXAotICAgICAgICAgICIwLjE5MjkxMSwgMC4yMjA3MzIsIDAuNDcxMDMsIDAuODg3NDg0LCAxLjMwMjU3LCAyLjI3MzYxLCAyLjgyODA3IiwgXAotICAgICAgICAgICIwLjIwMDExLCAwLjIyNzkwNCwgMC40Nzc4NTQsIDAuODk0MTUzLCAxLjMxMDA2LCAyLjI4MTQ1LCAyLjgzNjU5IiwgXAotICAgICAgICAgICIwLjIxMTgyNiwgMC4yMzk1NCwgMC40OTAwOTcsIDAuOTA2MjQ3LCAxLjMyMTg0LCAyLjI5Mjg2LCAyLjg0ODY5IiwgXAotICAgICAgICAgICIwLjIyMjIzOCwgMC4yNDk4OTksIDAuNDk5NzI2LCAwLjkxNjY4MiwgMS4zMzMxOCwgMi4zMDQ3NiwgMi44NTgwNiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zNDA3ODYsIDAuMzk5OTEzLCAwLjkyOTk4NiwgMS44MTI1NCwgMi42OTI5NywgNC43NTI0OSwgNS45MjgzNyIsIFwKLSAgICAgICAgICAiMC4zNDEwMDUsIDAuMzk5NjQ3LCAwLjkyOTM4MiwgMS44MTI0OSwgMi42OTMxNywgNC43NTEyNSwgNS45MjgwNSIsIFwKLSAgICAgICAgICAiMC4zNDA5NDcsIDAuMzk5NjQzLCAwLjkyOTIwOSwgMS44MTIwMSwgMi42OTQyMiwgNC43NTE1NSwgNS45Mjc0MyIsIFwKLSAgICAgICAgICAiMC4zNDE1OSwgMC40MDAxMywgMC45Mjk1MjcsIDEuODExODgsIDIuNjk3MjcsIDQuNzU5MjUsIDUuOTMwMzUiLCBcCi0gICAgICAgICAgIjAuMzQzMzIsIDAuNDAxNDc2LCAwLjkyOTQzOCwgMS44MTE1LCAyLjY5Nzg4LCA0Ljc1Mzk2LCA1LjkyNzQzIiwgXAotICAgICAgICAgICIwLjM0ODYxNCwgMC40MDU2ODUsIDAuOTI5NTY3LCAxLjgxMTksIDIuNjkzNywgNC43NTQwOCwgNS45Mjc2MSIsIFwKLSAgICAgICAgICAiMC4zNTQ0MjksIDAuNDEwNzQ4LCAwLjkzMDQ5LCAxLjgxMTY3LCAyLjY5NDIyLCA0Ljc1MzM5LCA1LjkyODAzIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwNTU1OSwgMC4xMjI2MzMsIDAuMjc1Mzc4LCAwLjUyOTIsIDAuNzgzMDY4LCAxLjM3NTYzLCAxLjcxNDM2IiwgXAotICAgICAgICAgICIwLjExMjA0MiwgMC4xMjkxMjgsIDAuMjgxODk3LCAwLjUzNTc5MywgMC43ODk1NSwgMS4zODE2NiwgMS43MjA5NyIsIFwKLSAgICAgICAgICAiMC4xMTk5MDEsIDAuMTM3MDYyLCAwLjI4OTk3MiwgMC41NDM4NDIsIDAuNzk3NjU0LCAxLjM4OTkxLCAxLjcyOTAzIiwgXAotICAgICAgICAgICIwLjEyNzc3OCwgMC4xNDQ5MywgMC4yOTc4NzUsIDAuNTUxODE5LCAwLjgwNTU1OCwgMS4zOTg0OCwgMS43MzU5OSIsIFwKLSAgICAgICAgICAiMC4xMzU3ODIsIDAuMTUyOTUzLCAwLjMwNTc2OSwgMC41NTk3NzMsIDAuODEzNTIzLCAxLjQwNTU5LCAxLjc0NDI3IiwgXAotICAgICAgICAgICIwLjE0ODQwNywgMC4xNjU4MzksIDAuMzE4Mjk2LCAwLjU3MjU0NCwgMC44MjYzODMsIDEuNDE4NDMsIDEuNzU2OCIsIFwKLSAgICAgICAgICAiMC4xNTg3NjUsIDAuMTc2NDIsIDAuMzI5NDA1LCAwLjU4MzY2NywgMC44Mzc1MjMsIDEuNDMwMTMsIDEuNzY4MTQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjAzNjY4LCAwLjIzODU0NywgMC41NTIwNTMsIDEuMDc0NCwgMS41OTYyNSwgMi44MTQzNSwgMy41MDk5MSIsIFwKLSAgICAgICAgICAiMC4yMDM2NzgsIDAuMjM4NTM4LCAwLjU1MjA2OCwgMS4wNzQ0NiwgMS41OTY1NCwgMi44MTQ1OSwgMy41MTAzNSIsIFwKLSAgICAgICAgICAiMC4yMDQ0NTMsIDAuMjM4OTA4LCAwLjU1MjAwNywgMS4wNzQzNCwgMS41OTY1NCwgMi44MTQ0NCwgMy41MTAxOSIsIFwKLSAgICAgICAgICAiMC4yMDcxODUsIDAuMjQxMTMsIDAuNTUxOTEzLCAxLjA3NDE4LCAxLjU5NjQ4LCAyLjgxNDMzLCAzLjUwOTc4IiwgXAotICAgICAgICAgICIwLjIxMTM0NSwgMC4yNDQ2OTgsIDAuNTUyMzY2LCAxLjA3NDA5LCAxLjU5NjUzLCAyLjgxNDI5LCAzLjUwOTc3IiwgXAotICAgICAgICAgICIwLjIxOTQ3MywgMC4yNTIzOCwgMC41NTUwMDEsIDEuMDc0MDgsIDEuNTk2NTMsIDIuODE0MjEsIDMuNTEwMzciLCBcCi0gICAgICAgICAgIjAuMjI3MzIxLCAwLjI1OTUxMywgMC41NTg2NjMsIDEuMDc0NDMsIDEuNTk2NTYsIDIuODE0MjUsIDMuNTEwMjIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE2OTEyOCwgMC4xOTcxNzEsIDAuNDQ5MDc2LCAwLjg2Nzg2NCwgMS4yODc4MiwgMi4yNjcxNCwgMi44MjQ4OCIsIFwKLSAgICAgICAgICAiMC4xNzU4ODgsIDAuMjAzODY3LCAwLjQ1NTUzLCAwLjg3NTM4LCAxLjI5NTUzLCAyLjI3NDUzLCAyLjgzMTc5IiwgXAotICAgICAgICAgICIwLjE4MzA0MSwgMC4yMTEwOTMsIDAuNDYzMzM3LCAwLjg4MjA3OCwgMS4zMDE2MiwgMi4yODAyOCwgMi44MzkyMiIsIFwKLSAgICAgICAgICAiMC4xOTAwNzEsIDAuMjE4MDI4LCAwLjQ3MDMzNywgMC44OTAwMTQsIDEuMzA4MTEsIDIuMjg2MzQsIDIuODQ1MDQiLCBcCi0gICAgICAgICAgIjAuMTk3MDk5LCAwLjIyNTA4OSwgMC40NzcwNjcsIDAuODk2NTI0LCAxLjMxNTU2LCAyLjI5NDI5LCAyLjg1MzUyIiwgXAotICAgICAgICAgICIwLjIwODY1NCwgMC4yMzY1OTYsIDAuNDg5MTk3LCAwLjkwNzgyOSwgMS4zMjcxNCwgMi4zMDU2MywgMi44NjU0NSIsIFwKLSAgICAgICAgICAiMC4yMTkwMzUsIDAuMjQ2NjY5LCAwLjQ5ODg3OSwgMC45MTgzNjUsIDEuMzM3ODgsIDIuMzE1NTUsIDIuODc0NjUiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzM4NTY1LCAwLjM5NzgzOSwgMC45MzIyNzcsIDEuODI1MDMsIDIuNzEyNCwgNC43OTAxNiwgNS45NzUxMyIsIFwKLSAgICAgICAgICAiMC4zMzgzNDksIDAuMzk3NzE4LCAwLjkzMjIyMywgMS44MjI2NSwgMi43MTMyLCA0Ljc5MDQ2LCA1Ljk3NTAxIiwgXAotICAgICAgICAgICIwLjMzODUzMiwgMC4zOTc5NzIsIDAuOTMyMTc1LCAxLjgyMjkxLCAyLjcxMTcsIDQuNzg4NTgsIDUuOTc1NjIiLCBcCi0gICAgICAgICAgIjAuMzM5NDY2LCAwLjM5ODA1OSwgMC45MzIzNDEsIDEuODIyOTYsIDIuNzE1NzcsIDQuNzk2MjcsIDUuOTc4NDEiLCBcCi0gICAgICAgICAgIjAuMzQwOTQ1LCAwLjM5OTY5MSwgMC45MzIyMTcsIDEuODIxNjcsIDIuNzE2NDgsIDQuNzkxMTksIDUuOTc1MzciLCBcCi0gICAgICAgICAgIjAuMzQ2MjkxLCAwLjQwMzg1MywgMC45MzIzMzQsIDEuODI0OTgsIDIuNzExNiwgNC43OTEzMiwgNS45NzU1NSIsIFwKLSAgICAgICAgICAiMC4zNTIyNDYsIDAuNDA4ODksIDAuOTMzMDY5LCAxLjgyNDk2LCAyLjcxMzEzLCA0Ljc5NjU0LCA1Ljk3NjEiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTAzNjM0LCAwLjEyMDcwNiwgMC4yNzM0NTYsIDAuNTI3MzE1LCAwLjc4MTA3NiwgMS4zNzMxOCwgMS43MTI3NiIsIFwKLSAgICAgICAgICAiMC4xMTExODMsIDAuMTI4MjYyLCAwLjI4MTA0OCwgMC41MzQ4ODMsIDAuNzg4Njg4LCAxLjM4MDc1LCAxLjcyMDczIiwgXAotICAgICAgICAgICIwLjEyMDQ5OCwgMC4xMzc1NDEsIDAuMjkwMjU5LCAwLjU0NDA3OSwgMC43OTc4MzIsIDEuMzg5OTEsIDEuNzMwMTEiLCBcCi0gICAgICAgICAgIjAuMTI5OTE4LCAwLjE0Njk3MywgMC4yOTk2MzcsIDAuNTUzNDIxLCAwLjgwNzE2MywgMS4zOTkyNCwgMS43Mzg4OCIsIFwKLSAgICAgICAgICAiMC4xMzk2NSwgMC4xNTY2NzksIDAuMzA5MTY0LCAwLjU2MjkwOCwgMC44MTY2MDMsIDEuNDA5MzcsIDEuNzQ3NjciLCBcCi0gICAgICAgICAgIjAuMTU1MzUxLCAwLjE3MjI4OSwgMC4zMjQ0NjksIDAuNTc4MjQ2LCAwLjgzMTk0NCwgMS40MjQyMywgMS43NjIxNiIsIFwKLSAgICAgICAgICAiMC4xNjg5MDIsIDAuMTg1ODU4LCAwLjMzNzkwMSwgMC41OTE0NjEsIDAuODQ1MTMxLCAxLjQzNywgMS43NzU0OSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMDM3MSwgMC4yMzg1NCwgMC41NTE5OTcsIDEuMDc0MDgsIDEuNTk2NDMsIDIuODE0MzMsIDMuNTEwMzUiLCBcCi0gICAgICAgICAgIjAuMjAzNjk1LCAwLjIzODUzMiwgMC41NTIwMTgsIDEuMDc0MzMsIDEuNTk2NTQsIDIuODE0NTIsIDMuNTEwMzIiLCBcCi0gICAgICAgICAgIjAuMjA0Nzk1LCAwLjIzOTAxMywgMC41NTE5MzgsIDEuMDc0MTUsIDEuNTk2NTMsIDIuODE0MjYsIDMuNTEwMzEiLCBcCi0gICAgICAgICAgIjAuMjA4ODYzLCAwLjI0MjI2LCAwLjU1MTk4MSwgMS4wNzQ0MiwgMS41OTY0MSwgMi44MTM5OCwgMy41MTAxOSIsIFwKLSAgICAgICAgICAiMC4yMTQ3MTUsIDAuMjQ3NDM4LCAwLjU1MjQ3NywgMS4wNzQ0NSwgMS41OTYyMywgMi44MTQxNSwgMy41MDk3MyIsIFwKLSAgICAgICAgICAiMC4yMjYwNjksIDAuMjU3NzE4LCAwLjU1NjAwNSwgMS4wNzQ0MSwgMS41OTYzNywgMi44MTQxMywgMy41MTAzNiIsIFwKLSAgICAgICAgICAiMC4yMzczOTYsIDAuMjY4MzM1LCAwLjU2MTQzOSwgMS4wNzQzMywgMS41OTY0NiwgMi44MTQxNSwgMy41MDk4MyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTU5Njk5LCAwLjE4NzM1NiwgMC40MzczMjgsIDAuODU1NTcxLCAxLjI3NDEsIDIuMjUzMywgMi44MTA2MiIsIFwKLSAgICAgICAgICAiMC4xNjY1MzIsIDAuMTk0NDgzLCAwLjQ0NDExMSwgMC44NjIzODYsIDEuMjgyMjUsIDIuMjYxNywgMi44MTkzMyIsIFwKLSAgICAgICAgICAiMC4xNzUzOTQsIDAuMjAzMjE1LCAwLjQ1Mjg0OCwgMC44NzA5NzUsIDEuMjkwMDYsIDIuMjY5NTgsIDIuODI2NzQiLCBcCi0gICAgICAgICAgIjAuMTg0MzI2LCAwLjIxMjA5OCwgMC40NjE2MzcsIDAuODc5NzA0LCAxLjI5OTQzLCAyLjI3OTc3LCAyLjgzNTUxIiwgXAotICAgICAgICAgICIwLjE5MzQ0OCwgMC4yMjExMjEsIDAuNDcwOTUzLCAwLjg4ODMyNCwgMS4zMDc5NiwgMi4yODcyOSwgMi44NDQ2OCIsIFwKLSAgICAgICAgICAiMC4yMDgyOSwgMC4yMzU4NjYsIDAuNDg1MjA2LCAwLjkwMzQzNywgMS4zMjI5OSwgMi4zMDA3NiwgMi44NTk4MSIsIFwKLSAgICAgICAgICAiMC4yMjE0MjcsIDAuMjQ4OTI1LCAwLjQ5NzM1MSwgMC45MTU1NTMsIDEuMzM1NDMsIDIuMzE0NDgsIDIuODcwNDciKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzQwNzY0LCAwLjM5OTgwOCwgMC45MzE5NTQsIDEuODIyNDIsIDIuNzEzNDMsIDQuNzkwMjMsIDUuOTgyMzYiLCBcCi0gICAgICAgICAgIjAuMzQwODAxLCAwLjM5OTY1MSwgMC45MzIxMDIsIDEuODIyNzEsIDIuNzEyNTYsIDQuNzkwNjEsIDUuOTc1MTQiLCBcCi0gICAgICAgICAgIjAuMzQwMjczLCAwLjM5OTM2OCwgMC45MzI3NjEsIDEuODI0OTgsIDIuNzE0NDksIDQuNzg4ODIsIDUuOTc4MDIiLCBcCi0gICAgICAgICAgIjAuMzQxNDUyLCAwLjM5OTc0NywgMC45MzIxMjQsIDEuODIzNTEsIDIuNzEzODEsIDQuNzkwNTIsIDUuOTc3NjQiLCBcCi0gICAgICAgICAgIjAuMzQ0Nzc3LCAwLjQwMTk0MywgMC45MzIyNjMsIDEuODIyNzMsIDIuNzExNjIsIDQuNzg4NzQsIDUuOTc2MjEiLCBcCi0gICAgICAgICAgIjAuMzUyNTI2LCAwLjQwODY1MiwgMC45MzE2NDEsIDEuODIyMzYsIDIuNzEzOTMsIDQuNzkwNCwgNS45NzUzIiwgXAotICAgICAgICAgICIwLjM2MDc0NiwgMC40MTYxNzksIDAuOTMzMTQyLCAxLjgyMjAxLCAyLjcxMzQ2LCA0Ljc5MDU0LCA1Ljk3NzYzIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1NjM3OCwgMC4wNjYxMTUsIDAuMTUzNDc4LCAwLjI5ODQ2MywgMC40NDMwOTksIDAuNzgwNjAzLCAwLjk3MzQ3NyIsIFwKLSAgICAgICAgICAiMC4wNjQ3MjQsIDAuMDc0NDU2LCAwLjE2MTgzLCAwLjMwNjc4NSwgMC40NTE0NTgsIDAuNzg4OTgyLCAwLjk4MTg0MyIsIFwKLSAgICAgICAgICAiMC4wNzUwMywgMC4wODQ3MDksIDAuMTcxODQ3LCAwLjMxNjk2OCwgMC40NjE0OTYsIDAuNzk5MDUyLCAwLjk5MTgzNyIsIFwKLSAgICAgICAgICAiMC4wODU2MDgsIDAuMDk1MjIzLCAwLjE4MjQxNSwgMC4zMjczNDUsIDAuNDcxOTc1LCAwLjgwOTMxNywgMS4wMDIxMiIsIFwKLSAgICAgICAgICAiMC4wOTYwNjYsIDAuMTA1NzYsIDAuMTkyNzU5LCAwLjMzNzI1OCwgMC40ODIyODYsIDAuODE5NTM5LCAxLjAxMjM2IiwgXAotICAgICAgICAgICIwLjExMDUsIDAuMTIxNjk0LCAwLjIwOTU5OSwgMC4zNTQyMjIsIDAuNDk2NjQ2LCAwLjgzNjI3NiwgMS4wMjg4MiIsIFwKLSAgICAgICAgICAiMC4xMjEwODksIDAuMTMzNTcxLCAwLjIyNDEyOSwgMC4zNjg3NjUsIDAuNTEzMzU4LCAwLjg1MDc1NCwgMS4wNDM1NSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTMzMjUsIDAuMTMzMDg2LCAwLjMxMTA3NCwgMC42MDgwMTYsIDAuOTA0NTA1LCAxLjU5NzA5LCAxLjk5MzgxIiwgXAotICAgICAgICAgICIwLjExMzY2NSwgMC4xMzMyMDQsIDAuMzExMDY5LCAwLjYwODA0NiwgMC45MDQ5MTgsIDEuNTk5NTYsIDEuOTk0MTciLCBcCi0gICAgICAgICAgIjAuMTE4MTIyLCAwLjEzNjcyLCAwLjMxMTA4OCwgMC42MDgxMDgsIDAuOTA0OTk5LCAxLjU5Nzg5LCAxLjk5NDA3IiwgXAotICAgICAgICAgICIwLjEyNTA0NiwgMC4xNDI5MzYsIDAuMzEyNzQ3LCAwLjYwODAzOSwgMC45MDQ5ODgsIDEuNTk3MzIsIDEuOTk0MyIsIFwKLSAgICAgICAgICAiMC4xMzMzMDIsIDAuMTUwNjMsIDAuMzE2Mzc1LCAwLjYwODExMSwgMC45MDQ5MjEsIDEuNTk4NTMsIDEuOTk0MzYiLCBcCi0gICAgICAgICAgIjAuMTQ4MTc1LCAwLjE2NDc1NiwgMC4zMjUwMzYsIDAuNjEwNjE5LCAwLjkwNDg5NywgMS41OTc2LCAxLjk5NDciLCBcCi0gICAgICAgICAgIjAuMTYyMjcxLCAwLjE3ODIxOSwgMC4zMzQxNzcsIDAuNjE1MTk4LCAwLjkwNTk1MSwgMS41OTg0NiwgMS45OTM5MyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQxMDcsIDAuMDA0MTA3LCAwLjAwNDEwOCwgMC4wMDQxMDcsIDAuMDA0MTA3LCAwLjAwNDEwNSwgMC4wMDQxMDQiLCBcCi0gICAgICAgICAgIjAuMDA0MSwgMC4wMDQxMDEsIDAuMDA0MTAzLCAwLjAwNDEwNCwgMC4wMDQxMDMsIDAuMDA0MTAzLCAwLjAwNDEwMSIsIFwKLSAgICAgICAgICAiMC4wMDQwOTUsIDAuMDA0MDk2LCAwLjAwNDEwMSwgMC4wMDQxMDIsIDAuMDA0MTAzLCAwLjAwNDEwMSwgMC4wMDQxIiwgXAotICAgICAgICAgICIwLjAwNDA5MiwgMC4wMDQwOTMsIDAuMDA0MDk5LCAwLjAwNDEwMiwgMC4wMDQxMDEsIDAuMDA0MTAxLCAwLjAwNDEiLCBcCi0gICAgICAgICAgIjAuMDA0MDkxLCAwLjAwNDA5MywgMC4wMDQwOTgsIDAuMDA0MTAxLCAwLjAwNDEwMSwgMC4wMDQxMDEsIDAuMDA0MDk5IiwgXAotICAgICAgICAgICIwLjAwNDA5NiwgMC4wMDQwOTcsIDAuMDA0MTAxLCAwLjAwNDEwMywgMC4wMDQxMDIsIDAuMDA0MTAyLCAwLjAwNDEiLCBcCi0gICAgICAgICAgIjAuMDA0MTEsIDAuMDA0MTA4LCAwLjAwNDEwNywgMC4wMDQxMDYsIDAuMDA0MTA0LCAwLjAwNDEwNCwgMC4wMDQxMDMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDEwNDQsIDAuMDAxMDQ1LCAwLjAwMTA0NCwgMC4wMDEwNDQsIDAuMDAxMDQzLCAwLjAwMTA0MywgMC4wMDEwNDEiLCBcCi0gICAgICAgICAgIjAuMDAxMDIzLCAwLjAwMTAyMywgMC4wMDEwMjQsIDAuMDAxMDI0LCAwLjAwMTAyNCwgMC4wMDEwMjIsIDAuMDAxMDIyIiwgXAotICAgICAgICAgICIwLjAwMTAxOCwgMC4wMDEwMTgsIDAuMDAxMDE5LCAwLjAwMTAxOSwgMC4wMDEwMTksIDAuMDAxMDE4LCAwLjAwMTAxOCIsIFwKLSAgICAgICAgICAiMC4wMDEwMjMsIDAuMDAxMDIzLCAwLjAwMTAyLCAwLjAwMTAxOSwgMC4wMDEwMTgsIDAuMDAxMDE3LCAwLjAwMTAxNiIsIFwKLSAgICAgICAgICAiMC4wMDEwMzYsIDAuMDAxMDM0LCAwLjAwMTAyNiwgMC4wMDEwMjIsIDAuMDAxMDIsIDAuMDAxMDE3LCAwLjAwMTAxNiIsIFwKLSAgICAgICAgICAiMC4wMDEwNzIsIDAuMDAxMDY3LCAwLjAwMTA0MywgMC4wMDEwMzEsIDAuMDAxMDI2LCAwLjAwMTAyMSwgMC4wMDEwMTkiLCBcCi0gICAgICAgICAgIjAuMDAxMTE4LCAwLjAwMTEwNSwgMC4wMDEwNjQsIDAuMDAxMDQ0LCAwLjAwMTAzNSwgMC4wMDEwMjYsIDAuMDAxMDIzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzc3NSwgMC4wMDM3NzUsIDAuMDAzNzc2LCAwLjAwMzc3NiwgMC4wMDM3NzYsIDAuMDAzNzc1LCAwLjAwMzc3NSIsIFwKLSAgICAgICAgICAiMC4wMDM3NjYsIDAuMDAzNzY4LCAwLjAwMzc3NSwgMC4wMDM3NzcsIDAuMDAzNzc4LCAwLjAwMzc3OCwgMC4wMDM3NzgiLCBcCi0gICAgICAgICAgIjAuMDAzNzU1LCAwLjAwMzc1OCwgMC4wMDM3NywgMC4wMDM3NzQsIDAuMDAzNzc2LCAwLjAwMzc3OCwgMC4wMDM3NzYiLCBcCi0gICAgICAgICAgIjAuMDAzNzQ3LCAwLjAwMzc1MSwgMC4wMDM3NjUsIDAuMDAzNzczLCAwLjAwMzc3NCwgMC4wMDM3NzYsIDAuMDAzNzc2IiwgXAotICAgICAgICAgICIwLjAwMzc0MiwgMC4wMDM3NDYsIDAuMDAzNzYyLCAwLjAwMzc3LCAwLjAwMzc3MiwgMC4wMDM3NzUsIDAuMDAzNzc1IiwgXAotICAgICAgICAgICIwLjAwMzc0NCwgMC4wMDM3NDYsIDAuMDAzNzYxLCAwLjAwMzc3LCAwLjAwMzc3MywgMC4wMDM3NzUsIDAuMDAzNzc1IiwgXAotICAgICAgICAgICIwLjAwMzc1NCwgMC4wMDM3NTUsIDAuMDAzNzY1LCAwLjAwMzc3MiwgMC4wMDM3NzQsIDAuMDAzNzc2LCAwLjAwMzc3NiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTA0NCwgMC4wMDEwNDQsIDAuMDAxMDQ0LCAwLjAwMTA0NCwgMC4wMDEwNDMsIDAuMDAxMDQyLCAwLjAwMTA0MiIsIFwKLSAgICAgICAgICAiMC4wMDEwMjQsIDAuMDAxMDI0LCAwLjAwMTAyNCwgMC4wMDEwMjQsIDAuMDAxMDIzLCAwLjAwMTAyMiwgMC4wMDEwMjIiLCBcCi0gICAgICAgICAgIjAuMDAxMDI3LCAwLjAwMTAyNiwgMC4wMDEwMjMsIDAuMDAxMDIxLCAwLjAwMTAyLCAwLjAwMTAxOSwgMC4wMDEwMTgiLCBcCi0gICAgICAgICAgIjAuMDAxMDQzLCAwLjAwMTAzOSwgMC4wMDEwMjksIDAuMDAxMDI0LCAwLjAwMTAyMSwgMC4wMDEwMTksIDAuMDAxMDE3IiwgXAotICAgICAgICAgICIwLjAwMTA2NywgMC4wMDEwNjIsIDAuMDAxMDQxLCAwLjAwMTAzLCAwLjAwMTAyNiwgMC4wMDEwMiwgMC4wMDEwMTkiLCBcCi0gICAgICAgICAgIjAuMDAxMTE5LCAwLjAwMTEwOCwgMC4wMDEwNjYsIDAuMDAxMDQ3LCAwLjAwMTAzNywgMC4wMDEwMjcsIDAuMDAxMDI0IiwgXAotICAgICAgICAgICIwLjAwMTE3NywgMC4wMDExNjEsIDAuMDAxMDk3LCAwLjAwMTA2NSwgMC4wMDEwNTEsIDAuMDAxMDM1LCAwLjAwMTAzMSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDMyNTIsIDAuMDAzMjUyLCAwLjAwMzI1MiwgMC4wMDMyNTIsIDAuMDAzMjUxLCAwLjAwMzI1LCAwLjAwMzI0OSIsIFwKLSAgICAgICAgICAiMC4wMDMyNDQsIDAuMDAzMjQ1LCAwLjAwMzI0OCwgMC4wMDMyNDgsIDAuMDAzMjQ4LCAwLjAwMzI0NiwgMC4wMDMyNDYiLCBcCi0gICAgICAgICAgIjAuMDAzMjQsIDAuMDAzMjQxLCAwLjAwMzI0NiwgMC4wMDMyNDYsIDAuMDAzMjQ3LCAwLjAwMzI0NiwgMC4wMDMyNDUiLCBcCi0gICAgICAgICAgIjAuMDAzMjQsIDAuMDAzMjQxLCAwLjAwMzI0NSwgMC4wMDMyNDcsIDAuMDAzMjQ2LCAwLjAwMzI0NiwgMC4wMDMyNDQiLCBcCi0gICAgICAgICAgIjAuMDAzMjQ0LCAwLjAwMzI0NSwgMC4wMDMyNDYsIDAuMDAzMjQ3LCAwLjAwMzI0NywgMC4wMDMyNDYsIDAuMDAzMjQ0IiwgXAotICAgICAgICAgICIwLjAwMzI2MSwgMC4wMDMyNiwgMC4wMDMyNTQsIDAuMDAzMjUxLCAwLjAwMzI1LCAwLjAwMzI0NywgMC4wMDMyNDYiLCBcCi0gICAgICAgICAgIjAuMDAzMjg3LCAwLjAwMzI4MiwgMC4wMDMyNjYsIDAuMDAzMjU4LCAwLjAwMzI1NSwgMC4wMDMyNSwgMC4wMDMyNDgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDA0OTcsIDAuMDAwNDk3LCAwLjAwMDQ5NywgMC4wMDA0OTcsIDAuMDAwNDk3LCAwLjAwMDQ5NiwgMC4wMDA0OTYiLCBcCi0gICAgICAgICAgIjAuMDAwNDkyLCAwLjAwMDQ5MywgMC4wMDA0OTYsIDAuMDAwNDk3LCAwLjAwMDQ5OCwgMC4wMDA0OTgsIDAuMDAwNDk3IiwgXAotICAgICAgICAgICIwLjAwMDQ4OSwgMC4wMDA0OSwgMC4wMDA0OTUsIDAuMDAwNDk3LCAwLjAwMDQ5OCwgMC4wMDA0OTgsIDAuMDAwNDk4IiwgXAotICAgICAgICAgICIwLjAwMDQ5NSwgMC4wMDA0OTUsIDAuMDAwNDk4LCAwLjAwMDQ5OSwgMC4wMDA0OTgsIDAuMDAwNDk4LCAwLjAwMDQ5OCIsIFwKLSAgICAgICAgICAiMC4wMDA1MDgsIDAuMDAwNTA4LCAwLjAwMDUwNCwgMC4wMDA1MDIsIDAuMDAwNTAxLCAwLjAwMDUsIDAuMDAwNDk5IiwgXAotICAgICAgICAgICIwLjAwMDU0MiwgMC4wMDA1MzksIDAuMDAwNTIsIDAuMDAwNTExLCAwLjAwMDUwOCwgMC4wMDA1MDQsIDAuMDAwNTAzIiwgXAotICAgICAgICAgICIwLjAwMDU4MiwgMC4wMDA1NzMsIDAuMDAwNTQxLCAwLjAwMDUyNCwgMC4wMDA1MTYsIDAuMDAwNTA5LCAwLjAwMDUwNyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIxIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI4NzgsIDAuMDAyODc4LCAwLjAwMjg4LCAwLjAwMjg4LCAwLjAwMjg3OSwgMC4wMDI4NzksIDAuMDAyODc4IiwgXAotICAgICAgICAgICIwLjAwMjg2OSwgMC4wMDI4NzEsIDAuMDAyODc4LCAwLjAwMjg4LCAwLjAwMjg4MSwgMC4wMDI4ODIsIDAuMDAyODgiLCBcCi0gICAgICAgICAgIjAuMDAyODU5LCAwLjAwMjg2MiwgMC4wMDI4NzQsIDAuMDAyODc4LCAwLjAwMjg3OSwgMC4wMDI4OCwgMC4wMDI4OCIsIFwKLSAgICAgICAgICAiMC4wMDI4NTUsIDAuMDAyODU4LCAwLjAwMjg3MSwgMC4wMDI4NzcsIDAuMDAyODc5LCAwLjAwMjg4LCAwLjAwMjg4IiwgXAotICAgICAgICAgICIwLjAwMjg1NSwgMC4wMDI4NTgsIDAuMDAyODcsIDAuMDAyODc2LCAwLjAwMjg3OSwgMC4wMDI4NzksIDAuMDAyODc5IiwgXAotICAgICAgICAgICIwLjAwMjg2OCwgMC4wMDI4NjksIDAuMDAyODc1LCAwLjAwMjg3OCwgMC4wMDI4NzksIDAuMDAyODgsIDAuMDAyODgiLCBcCi0gICAgICAgICAgIjAuMDAyODkyLCAwLjAwMjg4OSwgMC4wMDI4ODQsIDAuMDAyODg0LCAwLjAwMjg4NCwgMC4wMDI4ODMsIDAuMDAyODgxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwNDk1LCAwLjAwMDQ5NiwgMC4wMDA0OTYsIDAuMDAwNDk2LCAwLjAwMDQ5NSwgMC4wMDA0OTUsIDAuMDAwNDk1IiwgXAotICAgICAgICAgICIwLjAwMDQ5MywgMC4wMDA0OTQsIDAuMDAwNDk2LCAwLjAwMDQ5NywgMC4wMDA0OTcsIDAuMDAwNDk3LCAwLjAwMDQ5NiIsIFwKLSAgICAgICAgICAiMC4wMDA1MDIsIDAuMDAwNTAyLCAwLjAwMDUsIDAuMDAwNDk5LCAwLjAwMDQ5OSwgMC4wMDA0OTgsIDAuMDAwNDk3IiwgXAotICAgICAgICAgICIwLjAwMDUyLCAwLjAwMDUxNywgMC4wMDA1MDksIDAuMDAwNTA0LCAwLjAwMDUwMiwgMC4wMDA1LCAwLjAwMDQ5OSIsIFwKLSAgICAgICAgICAiMC4wMDA1NDQsIDAuMDAwNTQsIDAuMDAwNTIxLCAwLjAwMDUxMSwgMC4wMDA1MDcsIDAuMDAwNTAzLCAwLjAwMDUwMSIsIFwKLSAgICAgICAgICAiMC4wMDA1OTEsIDAuMDAwNTgyLCAwLjAwMDU0NCwgMC4wMDA1MjcsIDAuMDAwNTE4LCAwLjAwMDUwOSwgMC4wMDA1MDciLCBcCi0gICAgICAgICAgIjAuMDAwNjUzLCAwLjAwMDYzNSwgMC4wMDA1NzUsIDAuMDAwNTQ2LCAwLjAwMDUzMiwgMC4wMDA1MTgsIDAuMDAwNTE0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQzAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjUzNiwgMC4wMDI1MzcsIDAuMDAyNTM4LCAwLjAwMjUzOSwgMC4wMDI1MzgsIDAuMDAyNTM4LCAwLjAwMjUzNyIsIFwKLSAgICAgICAgICAiMC4wMDI1MjcsIDAuMDAyNTI4LCAwLjAwMjUzNCwgMC4wMDI1MzYsIDAuMDAyNTM2LCAwLjAwMjUzNiwgMC4wMDI1MzUiLCBcCi0gICAgICAgICAgIjAuMDAyNTM0LCAwLjAwMjUzNCwgMC4wMDI1MzYsIDAuMDAyNTM3LCAwLjAwMjUzOCwgMC4wMDI1MzUsIDAuMDAyNTM1IiwgXAotICAgICAgICAgICIwLjAwMjU1NSwgMC4wMDI1NTIsIDAuMDAyNTQzLCAwLjAwMjU0MSwgMC4wMDI1MzksIDAuMDAyNTM4LCAwLjAwMjUzNiIsIFwKLSAgICAgICAgICAiMC4wMDI1ODYsIDAuMDAyNTc5LCAwLjAwMjU1NSwgMC4wMDI1NDcsIDAuMDAyNTQzLCAwLjAwMjUzOSwgMC4wMDI1MzciLCBcCi0gICAgICAgICAgIjAuMDAyNjQ3LCAwLjAwMjYzNywgMC4wMDI1ODUsIDAuMDAyNTYyLCAwLjAwMjU1NCwgMC4wMDI1NDYsIDAuMDAyNTQzIiwgXAotICAgICAgICAgICIwLjAwMjcwOCwgMC4wMDI2OTEsIDAuMDAyNjE4LCAwLjAwMjU4MSwgMC4wMDI1NjcsIDAuMDAyNTUzLCAwLjAwMjU1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwMDcsIDAuMDAwMDcxLCAwLjAwMDA3MywgMC4wMDAwNzQsIDAuMDAwMDc0LCAwLjAwMDA3NSwgMC4wMDAwNzUiLCBcCi0gICAgICAgICAgIjAuMDAwMDg0LCAwLjAwMDA4NiwgMC4wMDAwOTIsIDAuMDAwMDk0LCAwLjAwMDA5NSwgMC4wMDAwOTYsIDAuMDAwMDk2IiwgXAotICAgICAgICAgICIwLjAwMDEsIDAuMDAwMSwgMC4wMDAxMDEsIDAuMDAwMTAxLCAwLjAwMDEwMywgMC4wMDAxMDQsIDAuMDAwMTA0IiwgXAotICAgICAgICAgICIwLjAwMDEyMiwgMC4wMDAxMTgsIDAuMDAwMTExLCAwLjAwMDEwOCwgMC4wMDAxMDYsIDAuMDAwMTA2LCAwLjAwMDEwNyIsIFwKLSAgICAgICAgICAiMC4wMDAxNTUsIDAuMDAwMTQ4LCAwLjAwMDEyNSwgMC4wMDAxMTcsIDAuMDAwMTEzLCAwLjAwMDExLCAwLjAwMDEwOSIsIFwKLSAgICAgICAgICAiMC4wMDAyMywgMC4wMDAyMTEsIDAuMDAwMTU3LCAwLjAwMDEzNSwgMC4wMDAxMjYsIDAuMDAwMTE3LCAwLjAwMDExNSIsIFwKLSAgICAgICAgICAiMC4wMDAzMjMsIDAuMDAwMjkyLCAwLjAwMDE5MiwgMC4wMDAxNTYsIDAuMDAwMTQyLCAwLjAwMDEyNywgMC4wMDAxMjMiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogQU9JMjIyWEwgKgotICogLS0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKEFPSTIyMlhMKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMjg5NDM1OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNTk0OTkxOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDU5MzIzODsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA1OTQ5OTE7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjk2LCAwLjAwMDI5NiwgMC4wMDAyOTYsIDAuMDAwMjk2LCAwLjAwMDI5NiwgMC4wMDAyOTYsIDAuMDAwMjk2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzE1LCAwLjAwMDMwMywgMC4wMDAzLCAwLjAwMDI5OSwgMC4wMDAyOTgsIDAuMDAwMjk4LCAwLjAwMDI5OCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQTEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYxNDk1OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYxMjI1NTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2MTQ5NTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxMDgsIDAuMDAwMTA3LCAwLjAwMDEwNywgMC4wMDAxMDcsIDAuMDAwMTA3LCAwLjAwMDEwNywgMC4wMDAxMDciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAzMzcsIDAuMDAwMzM4LCAwLjAwMDMzNywgMC4wMDAzMzcsIDAuMDAwMzM4LCAwLjAwMDMzOCwgMC4wMDAzMzgiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2NTYzODg7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjU1MDcyOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDY1NjM4ODsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyOTcsIDAuMDAwMjk3LCAwLjAwMDI5NiwgMC4wMDAyOTYsIDAuMDAwMjk2LCAwLjAwMDI5NiwgMC4wMDAyOTYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAzMTMsIDAuMDAwMzAyLCAwLjAwMDI5OSwgMC4wMDAyOTgsIDAuMDAwMjk4LCAwLjAwMDI5NywgMC4wMDAyOTgiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIxKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2MzM5OTY7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjMxNjc3OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDYzMzk5NjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAwNjcsIDAuMDAwMDY2LCAwLjAwMDA2NiwgMC4wMDAwNjcsIDAuMDAwMDY2LCAwLjAwMDA2NywgMC4wMDAwNjciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAzMzcsIDAuMDAwMzM3LCAwLjAwMDMzNywgMC4wMDAzMzcsIDAuMDAwMzM3LCAwLjAwMDMzNywgMC4wMDAzMzciKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEMwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2ODc3NDg7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjg3NzQ4OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDY4Njg2OTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyOTcsIDAuMDAwMjk3LCAwLjAwMDI5NywgMC4wMDAyOTYsIDAuMDAwMjk3LCAwLjAwMDI5NiwgMC4wMDAyOTYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAzMTUsIDAuMDAwMzA1LCAwLjAwMDMwMSwgMC4wMDAyOTksIDAuMDAwMjk4LCAwLjAwMDI5NywgMC4wMDAyOTgiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEMxKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA3MDY0Nzc7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNzA2NDc3OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDcwNjQ2MzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxMjMsIDAuMDAwMTIzLCAwLjAwMDEyNCwgMC4wMDAxMjQsIDAuMDAwMTI0LCAwLjAwMDEyNCwgMC4wMDAxMjQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAzMzcsIDAuMDAwMzM3LCAwLjAwMDMzNywgMC4wMDAzMzcsIDAuMDAwMzM3LCAwLjAwMDMzNywgMC4wMDAzMzciKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4wNzU4MjYyOwotICAgIGZ1bmN0aW9uIDogIighKCgoQzAgQzEpKyhBMCBBMSkpKyhCMCBCMSkpKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTAiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE4Nzg4NiwgMC4yMTU2MzUsIDAuNDY1NDE5LCAwLjg4NDA1MiwgMS4zMDM1NSwgMi4yODIwMSwgMi44NDAzNCIsIFwKLSAgICAgICAgICAiMC4xOTQ4MjcsIDAuMjIyNTA2LCAwLjQ3MjI5MiwgMC44OTE4ODYsIDEuMzExNDIsIDIuMjg4MTMsIDIuODQ2NzYiLCBcCi0gICAgICAgICAgIjAuMjAxMjg2LCAwLjIyOTA0MiwgMC40NzkyNjUsIDAuODk4MTA4LCAxLjMxODExLCAyLjI5NzU5LCAyLjg1NDUiLCBcCi0gICAgICAgICAgIjAuMjA2NTYxLCAwLjIzNDQ3LCAwLjQ4NDMxMiwgMC45MDM4NywgMS4zMjM0LCAyLjMwMTY1LCAyLjg1ODUxIiwgXAotICAgICAgICAgICIwLjIxMTU1NCwgMC4yMzk0NDQsIDAuNDg5MTU5LCAwLjkwNzY0OCwgMS4zMjcxNiwgMi4zMDcxOSwgMi44NjM4NCIsIFwKLSAgICAgICAgICAiMC4yMTkzMjYsIDAuMjQ3MDk5LCAwLjQ5NzE2LCAwLjkxNTY1NiwgMS4zMzQ4MiwgMi4zMTUsIDIuODcxNDIiLCBcCi0gICAgICAgICAgIjAuMjI1ODk3LCAwLjI1MzYzLCAwLjUwMzQwNiwgMC45MjIxMzgsIDEuMzQxMzMsIDIuMzE4NDYsIDIuODc3NTgiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzUzMjU0LCAwLjQxMjQwNiwgMC45NDU1NzUsIDEuODM2MTksIDIuNzI1MzMsIDQuODAyMTYsIDUuOTg5NjkiLCBcCi0gICAgICAgICAgIjAuMzUzMjUsIDAuNDEyMzE1LCAwLjk0NTUyOCwgMS44MzYyNiwgMi43MjcwOCwgNC44MTA1MywgNS45OTEyNSIsIFwKLSAgICAgICAgICAiMC4zNTMyNTUsIDAuNDEyMjEyLCAwLjk0NTQ1OSwgMS44MzYyMiwgMi43MjcyOCwgNC44MDQyNywgNS45ODg4MSIsIFwKLSAgICAgICAgICAiMC4zNTM2MDUsIDAuNDEyMjU2LCAwLjk0NTI1LCAxLjgzNjEsIDIuNzI3MTEsIDQuODAyNTUsIDUuOTk2MTkiLCBcCi0gICAgICAgICAgIjAuMzU0NzE2LCAwLjQxMzIzLCAwLjk0NTQ1NiwgMS44Mzc0LCAyLjcyNjY3LCA0LjgwMzY4LCA1Ljk5NjUzIiwgXAotICAgICAgICAgICIwLjM1NzMwMSwgMC40MTU0ODksIDAuOTQ1MzIzLCAxLjgzNjM3LCAyLjczMDQ4LCA0LjgwMzc3LCA1Ljk5NjM4IiwgXAotICAgICAgICAgICIwLjM2MDUxNywgMC40MTgwMzMsIDAuOTQ2MzQ2LCAxLjgzNjA5LCAyLjcyNTg0LCA0LjgwODA1LCA1Ljk5NDU2Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExNzU4OSwgMC4xMzQ3MzksIDAuMjg3OTYyLCAwLjU0MjA1NiwgMC43OTY0MzEsIDEuMzg5MTMsIDEuNzI3MzciLCBcCi0gICAgICAgICAgIjAuMTIzOTE1LCAwLjE0MTAzNiwgMC4yOTQyNjcsIDAuNTQ4NTAzLCAwLjgwMjUwNywgMS4zOTUzOCwgMS43MzQ3NyIsIFwKLSAgICAgICAgICAiMC4xMzE4MzQsIDAuMTQ4OTEzLCAwLjMwMjI3MSwgMC41NTY0NDEsIDAuODEwNTI0LCAxLjQwMzY4LCAxLjc0MjQ0IiwgXAotICAgICAgICAgICIwLjEzOTU4OSwgMC4xNTY3ODcsIDAuMzEwMjEzLCAwLjU2NDYxLCAwLjgxODQwNSwgMS40MTE3MywgMS43NTA2MyIsIFwKLSAgICAgICAgICAiMC4xNDc2OTIsIDAuMTY0ODM3LCAwLjMxODE2NCwgMC41NzI3MjIsIDAuODI2ODIyLCAxLjQxOTY4LCAxLjc1ODM0IiwgXAotICAgICAgICAgICIwLjE2MDM1NiwgMC4xNzc4MzksIDAuMzMwNzk3LCAwLjU4NTA5MSwgMC44MzkyMTYsIDEuNDMxNzQsIDEuNzcwMjMiLCBcCi0gICAgICAgICAgIjAuMTcxNTIxLCAwLjE4ODQ4MiwgMC4zNDE3MDksIDAuNTk2OTE2LCAwLjg1MTI3MiwgMS40NDQyNCwgMS43ODIzMyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMjM1NzksIDAuMjU4MywgMC41NzE1OTIsIDEuMDk0MTksIDEuNjE2NjMsIDIuODM0MywgMy41MzA1NSIsIFwKLSAgICAgICAgICAiMC4yMjM1MzUsIDAuMjU4MjkyLCAwLjU3MTU4OSwgMS4wOTQwOSwgMS42MTY0LCAyLjgzNDg5LCAzLjUzMDc3IiwgXAotICAgICAgICAgICIwLjIyNDAzMiwgMC4yNTg0OTksIDAuNTcxNTI3LCAxLjA5Mzk4LCAxLjYxNjY4LCAyLjgzNTA1LCAzLjUzMDE4IiwgXAotICAgICAgICAgICIwLjIyNjMyNywgMC4yNjA0MjIsIDAuNTcxNTE4LCAxLjA5NDAyLCAxLjYxNjU5LCAyLjgzNDMxLCAzLjUzMDA1IiwgXAotICAgICAgICAgICIwLjIzMDIzNywgMC4yNjM3NDQsIDAuNTcxODY5LCAxLjA5Mzk4LCAxLjYxNjU3LCAyLjgzNDE0LCAzLjUzMDI5IiwgXAotICAgICAgICAgICIwLjIzNzk5NSwgMC4yNzEwMiwgMC41NzQzMTEsIDEuMDk0MDYsIDEuNjE2NTcsIDIuODM0ODIsIDMuNTMwMzkiLCBcCi0gICAgICAgICAgIjAuMjQ1NzY4LCAwLjI3Nzg5MiwgMC41Nzc4NzksIDEuMDk0MjMsIDEuNjE2NTgsIDIuODM0MTYsIDMuNTMwMyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTg0Mzk2LCAwLjIxMjA2MywgMC40NjE3NzQsIDAuODgxNDY0LCAxLjMwMDM0LCAyLjI4MDEzLCAyLjgzNzU2IiwgXAotICAgICAgICAgICIwLjE5MTMwNiwgMC4yMTkxNzMsIDAuNDY4ODIyLCAwLjg4ODM0NSwgMS4zMDcyLCAyLjI4NDA5LCAyLjg0MzQ0IiwgXAotICAgICAgICAgICIwLjE5NzYwNSwgMC4yMjUzODQsIDAuNDc1Nzg1LCAwLjg5NTAyMywgMS4zMTQ0NiwgMi4yOTMwNSwgMi44NTA3MiIsIFwKLSAgICAgICAgICAiMC4yMDI4NjQsIDAuMjMwNjk1LCAwLjQ4MTE2NCwgMC44OTk2MDEsIDEuMzE4NjIsIDIuMjk4NTksIDIuODU3MDYiLCBcCi0gICAgICAgICAgIjAuMjA3ODA3LCAwLjIzNTY4NCwgMC40ODU2MjcsIDAuOTA0NTE4LCAxLjMyNDM5LCAyLjMwNDEsIDIuODYxMSIsIFwKLSAgICAgICAgICAiMC4yMTU1MTgsIDAuMjQzMzM4LCAwLjQ5MzQ5NSwgMC45MTIxODQsIDEuMzMyNDQsIDIuMzExMzQsIDIuODY4MDciLCBcCi0gICAgICAgICAgIjAuMjIyMDU2LCAwLjI0OTgyMSwgMC41MDAxODMsIDAuOTE4MjgzLCAxLjMzODkyLCAyLjMxODQ5LCAyLjg3NDEyIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjM0ODE2NiwgMC40MDcyNjksIDAuOTQwMTQzLCAxLjgzMTIsIDIuNzIxNTQsIDQuNzk4MzgsIDUuOTgzMzIiLCBcCi0gICAgICAgICAgIjAuMzQ4MTgxLCAwLjQwNzE5OCwgMC45NDAxOTQsIDEuODMwNjQsIDIuNzIwMDgsIDQuODAwODksIDUuOTg0NzMiLCBcCi0gICAgICAgICAgIjAuMzQ4Mzc0LCAwLjQwNzE0MiwgMC45NDA0MDYsIDEuODMwNzMsIDIuNzIyMTcsIDQuNzk4ODQsIDUuOTg0MjUiLCBcCi0gICAgICAgICAgIjAuMzQ4NjU1LCAwLjQwNzE4MSwgMC45NDAyOTYsIDEuODMxMjEsIDIuNzIxMzMsIDQuNzk4ODksIDUuOTgzNjciLCBcCi0gICAgICAgICAgIjAuMzQ5NjM1LCAwLjQwODI4MSwgMC45NDAxMzQsIDEuODI5ODIsIDIuNzIxNjEsIDQuNzk5NiwgNS45ODM0MSIsIFwKLSAgICAgICAgICAiMC4zNTIzMDcsIDAuNDEwNDIyLCAwLjk0MDAxNSwgMS44Mjk3MSwgMi43MjE0NiwgNC43OTc5OSwgNS45ODU1MiIsIFwKLSAgICAgICAgICAiMC4zNTU1NiwgMC40MTMwNDUsIDAuOTQwODg1LCAxLjgzMTksIDIuNzIxNDUsIDQuNzk4NzksIDUuOTg3MjQiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTE1ODU3LCAwLjEzMzAzMSwgMC4yODYyMjQsIDAuNTQwMzI1LCAwLjc5NDM1MywgMS4zODY3MiwgMS43MjU5MSIsIFwKLSAgICAgICAgICAiMC4xMjMxMzIsIDAuMTQwMjg4LCAwLjI5MzQ5OSwgMC41NDc1ODEsIDAuODAxNzI2LCAxLjM5NDA1LCAxLjczMzQ4IiwgXAotICAgICAgICAgICIwLjEzMjU5NiwgMC4xNDk3NDYsIDAuMzAyOTUxLCAwLjU1NzAzOSwgMC44MTEwMTgsIDEuNDAzNTUsIDEuNzQzNjgiLCBcCi0gICAgICAgICAgIjAuMTQyMTY5LCAwLjE1OTIzNiwgMC4zMTI0MzQsIDAuNTY2NDg1LCAwLjgyMDUxNywgMS40MTM4NiwgMS43NTI3OSIsIFwKLSAgICAgICAgICAiMC4xNTE4MjUsIDAuMTY4ODcyLCAwLjMyMTkzOSwgMC41NzYwMzgsIDAuODMwMTI5LCAxLjQyMzAyLCAxLjc2MTY3IiwgXAotICAgICAgICAgICIwLjE2NzUyLCAwLjE4NDQ4OSwgMC4zMzcyNTcsIDAuNTkxMTk1LCAwLjg0NTM2NCwgMS40Mzc3NCwgMS43NzYwMiIsIFwKLSAgICAgICAgICAiMC4xODE0MzEsIDAuMTk4MzU1LCAwLjM1MDY4MywgMC42MDQ2MDIsIDAuODU4NTYyLCAxLjQ1MTE2LCAxLjc5MDAxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIyMzU5NiwgMC4yNTgzNDcsIDAuNTcxNTQzLCAxLjA5NDA0LCAxLjYxNjc4LCAyLjgzNDM0LCAzLjUzMDIyIiwgXAotICAgICAgICAgICIwLjIyMzUyMiwgMC4yNTgzMTIsIDAuNTcxNTI5LCAxLjA5NCwgMS42MTY2NSwgMi44MzQyNiwgMy41MzA1NCIsIFwKLSAgICAgICAgICAiMC4yMjQxNDEsIDAuMjU4NTExLCAwLjU3MTU2MiwgMS4wOTQyMywgMS42MTY2MywgMi44MzQ0NywgMy41MzAxNCIsIFwKLSAgICAgICAgICAiMC4yMjc2MDYsIDAuMjYxMjM1LCAwLjU3MTUwOSwgMS4wOTM5OCwgMS42MTY1NSwgMi44MzQ5NiwgMy41MzAyNSIsIFwKLSAgICAgICAgICAiMC4yMzMwNiwgMC4yNjU3ODksIDAuNTcxNzY5LCAxLjA5NDEsIDEuNjE2ODMsIDIuODM0MzgsIDMuNTMwMDUiLCBcCi0gICAgICAgICAgIjAuMjQzNzk2LCAwLjI3NTU4NSwgMC41NzUwNDksIDEuMDk0MTcsIDEuNjE2NDEsIDIuODM0MjIsIDMuNTMwMjciLCBcCi0gICAgICAgICAgIjAuMjU0NTY3LCAwLjI4NTcyMSwgMC41ODAwNzEsIDEuMDk0MTIsIDEuNjE2NjcsIDIuODM0MjYsIDMuNTMwMTkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjAiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE4MDQxNiwgMC4yMDgxMzQsIDAuNDU3ODMzLCAwLjg3NjgyOSwgMS4yOTUzOSwgMi4yNzQ0NCwgMi44MzI4NiIsIFwKLSAgICAgICAgICAiMC4xODczODEsIDAuMjE1MTEsIDAuNDY0ODY1LCAwLjg4NDM3MywgMS4zMDM1OSwgMi4yODA4MiwgMi44MzkzMiIsIFwKLSAgICAgICAgICAiMC4xOTQ3OTgsIDAuMjIyNTkzLCAwLjQ3MjQzOCwgMC44OTEzNzQsIDEuMzExNTQsIDIuMjkwOCwgMi44NDgwMSIsIFwKLSAgICAgICAgICAiMC4yMDE4ODMsIDAuMjI5Nzk1LCAwLjQ4MDA1NywgMC44OTgwNzQsIDEuMzE3MSwgMi4yOTUzLCAyLjg1Mzk1IiwgXAotICAgICAgICAgICIwLjIwODk5MSwgMC4yMzY5NSwgMC40ODY3ODYsIDAuOTA1NDIsIDEuMzI0MTcsIDIuMzAzODgsIDIuODYyNjciLCBcCi0gICAgICAgICAgIjAuMjIwNzUxLCAwLjI0ODYwMywgMC40OTgxMTYsIDAuOTE3MzQ0LCAxLjMzNjExLCAyLjMxNjUsIDIuODc0MDEiLCBcCi0gICAgICAgICAgIjAuMjMxMTg0LCAwLjI1ODY5NCwgMC41MDg2NzMsIDAuOTI2Njc4LCAxLjM0NTk4LCAyLjMyMzgzLCAyLjg4MjQiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzUzNDkxLCAwLjQxMjM1NCwgMC45NDU0NDYsIDEuODM1NTQsIDIuNzI2MzYsIDQuODAyMDcsIDUuOTg4MjIiLCBcCi0gICAgICAgICAgIjAuMzUzMjU1LCAwLjQxMjM4MywgMC45NDU1MzcsIDEuODM2NTUsIDIuNzI2ODEsIDQuODAxNDMsIDUuOTkxMjMiLCBcCi0gICAgICAgICAgIjAuMzUzMzI0LCAwLjQxMjM3NiwgMC45NDU1OTUsIDEuODM1NTgsIDIuNzI3MTMsIDQuODAzOTUsIDUuOTg4NzgiLCBcCi0gICAgICAgICAgIjAuMzUzODY4LCAwLjQxMjQ0MywgMC45NDU2NDMsIDEuODM2NTIsIDIuNzI2NjUsIDQuODA0MzcsIDUuOTkxNDMiLCBcCi0gICAgICAgICAgIjAuMzU1NTY2LCAwLjQxMzU4OCwgMC45NDU0OTEsIDEuODM1MjUsIDIuNzI5MSwgNC44MDQ1MiwgNS45ODg5NiIsIFwKLSAgICAgICAgICAiMC4zNjAxMjIsIDAuNDE3NzA1LCAwLjk0NTQxNywgMS44MzU4NSwgMi43MzA0MSwgNC44MDQ5MiwgNS45ODg5MSIsIFwKLSAgICAgICAgICAiMC4zNjU5NTEsIDAuNDIyMzExLCAwLjk0NjM2LCAxLjgzODA3LCAyLjczMDA4LCA0LjgwNDE2LCA1Ljk5NDEiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTEwMTgyLCAwLjEyNzI0NiwgMC4yNzk5NzYsIDAuNTMzODMzLCAwLjc4NzYwNCwgMS4zODAwOCwgMS43MTk2MiIsIFwKLSAgICAgICAgICAiMC4xMTY2OTIsIDAuMTMzNzQ5LCAwLjI4NjU0MiwgMC41NDA0MjYsIDAuNzk0MTYyLCAxLjM4NjI0LCAxLjcyNTM0IiwgXAotICAgICAgICAgICIwLjEyNDYyMiwgMC4xNDE2NSwgMC4yOTQ1NzIsIDAuNTQ4NDEyLCAwLjgwMjIxNiwgMS4zOTQyNiwgMS43MzM0IiwgXAotICAgICAgICAgICIwLjEzMjQ5LCAwLjE0OTQ4NiwgMC4zMDI1NjksIDAuNTU2NTU3LCAwLjgxMDI5MywgMS40MDMwMSwgMS43NDA2NiIsIFwKLSAgICAgICAgICAiMC4xNDAzMzIsIDAuMTU3NTEzLCAwLjMxMDcwNCwgMC41NjQ1NzUsIDAuODE4MzM1LCAxLjQxMTM4LCAxLjc1MDA4IiwgXAotICAgICAgICAgICIwLjE1MzI5MiwgMC4xNzAwNjEsIDAuMzIzMTY4LCAwLjU3NzMzLCAwLjgzMTEzMiwgMS40MjMxNywgMS43NjE1NCIsIFwKLSAgICAgICAgICAiMC4xNjQwMDMsIDAuMTgxMzg3LCAwLjMzNDI4NSwgMC41ODgzNTUsIDAuODQyMjAyLCAxLjQzNDY3LCAxLjc3MjQ3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIxMzI5NywgMC4yNDgxLCAwLjU2MTQ3LCAxLjA4NDA2LCAxLjYwNTk3LCAyLjgyMzczLCAzLjUxOTk3IiwgXAotICAgICAgICAgICIwLjIxMzMxNSwgMC4yNDgxMTYsIDAuNTYxNjE4LCAxLjA4NDEzLCAxLjYwNjE0LCAyLjgyNDE2LCAzLjUxOTgiLCBcCi0gICAgICAgICAgIjAuMjE0MDQ1LCAwLjI0ODQ2LCAwLjU2MTYxLCAxLjA4NDAxLCAxLjYwNjEyLCAyLjgyMzk3LCAzLjUxOTU1IiwgXAotICAgICAgICAgICIwLjIxNjU3NSwgMC4yNTA0OTUsIDAuNTYxNjE0LCAxLjA4NDEsIDEuNjA2MTIsIDIuODIzOTEsIDMuNTE5NzgiLCBcCi0gICAgICAgICAgIjAuMjIwNTI4LCAwLjI1Mzg5MywgMC41NjE5NDksIDEuMDgzNywgMS42MDU5NSwgMi44MjM3NCwgMy41MTk4NiIsIFwKLSAgICAgICAgICAiMC4yMjg4MjgsIDAuMjYxMDQ0LCAwLjU2NDY0MSwgMS4wODM4OCwgMS42MDYyLCAyLjgyNDE0LCAzLjUxOTg1IiwgXAotICAgICAgICAgICIwLjIzNjYzOSwgMC4yNjg4MSwgMC41NjgzNTQsIDEuMDgzOTgsIDEuNjA2MTEsIDIuODIzNzYsIDMuNTE5NDIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE3NzcyMywgMC4yMDU2NDgsIDAuNDU3MzM2LCAwLjg3Njc1OSwgMS4yOTYwOSwgMi4yNzQ1NSwgMi44MzI5OCIsIFwKLSAgICAgICAgICAiMC4xODQ2NzUsIDAuMjEyNTkyLCAwLjQ2NDI2MywgMC44ODQ0NTUsIDEuMzAzMjYsIDIuMjgwMjMsIDIuODM5NTEiLCBcCi0gICAgICAgICAgIjAuMTkxOTA3LCAwLjIxOTk3NSwgMC40NzE3MTQsIDAuODkxNzU3LCAxLjMxMDQ0LCAyLjI5MDY5LCAyLjg0NzA3IiwgXAotICAgICAgICAgICIwLjE5ODkwNSwgMC4yMjcwOSwgMC40Nzg4NiwgMC44OTgxMTcsIDEuMzE3MjIsIDIuMjk1MzcsIDIuODU0MDUiLCBcCi0gICAgICAgICAgIjAuMjA1OTE3LCAwLjIzMzkzOSwgMC40ODU4OTMsIDAuOTA1MzExLCAxLjMyNDI1LCAyLjMwNDAzLCAyLjg2Mjc3IiwgXAotICAgICAgICAgICIwLjIxNzUwNSwgMC4yNDU1ODcsIDAuNDk3MTA1LCAwLjkxNzQ2NCwgMS4zMzYxNSwgMi4zMTY2MSwgMi44NzQyNCIsIFwKLSAgICAgICAgICAiMC4yMjc4MSwgMC4yNTU0OTcsIDAuNTA3NjEyLCAwLjkyNjg0MSwgMS4zNDYsIDIuMzI0MDIsIDIuODgyNDkiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzUwNzM0LCAwLjQxMDMyNCwgMC45NDQ0NTUsIDEuODM1ODEsIDIuNzI0NDgsIDQuODAxMzEsIDUuOTg5MzciLCBcCi0gICAgICAgICAgIjAuMzUwNzEsIDAuNDEwMzE4LCAwLjk0NDc2MywgMS44MzUyNCwgMi43MjQ1MywgNC44MDQ5NywgNS45ODkzNyIsIFwKLSAgICAgICAgICAiMC4zNTA4OTgsIDAuNDEwMjM3LCAwLjk0NDc3MSwgMS44MzUyOSwgMi43MjU5MSwgNC44MDI5MiwgNS45ODkxNiIsIFwKLSAgICAgICAgICAiMC4zNTEzNTksIDAuNDEwMzMsIDAuOTQ0NDYyLCAxLjgzNTc5LCAyLjcyNTc0LCA0LjgwMzYyLCA1Ljk5MDU5IiwgXAotICAgICAgICAgICIwLjM1Mjg4LCAwLjQxMTc5NywgMC45NDQ3MjcsIDEuODM1OTEsIDIuNzI4MSwgNC44MDM2NiwgNS45ODgxMyIsIFwKLSAgICAgICAgICAiMC4zNTc4NzcsIDAuNDE1NzIsIDAuOTQ0NzUxLCAxLjgzNTY3LCAyLjcyOTU1LCA0LjgwMzE1LCA1Ljk4ODA2IiwgXAotICAgICAgICAgICIwLjM2MzQ3OCwgMC40MjAyOTYsIDAuOTQ1NzU2LCAxLjgzNzY5LCAyLjcyOTIxLCA0LjgwMzIxLCA1Ljk5MzIzIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwODE2LCAwLjEyNTIyMiwgMC4yNzc5NjksIDAuNTMxODM3LCAwLjc4NTU5MywgMS4zNzc2OCwgMS43MTY5NiIsIFwKLSAgICAgICAgICAiMC4xMTU2NDEsIDAuMTMyNzMxLCAwLjI4NTQ4NSwgMC41MzkzMjYsIDAuNzkzMDcyLCAxLjM4NTE0LCAxLjcyNDM5IiwgXAotICAgICAgICAgICIwLjEyNTA1MywgMC4xNDIxMTEsIDAuMjk0ODIyLCAwLjU0ODYyNSwgMC44MDIzODYsIDEuMzk1MzIsIDEuNzM0NDIiLCBcCi0gICAgICAgICAgIjAuMTM0NTUsIDAuMTUxNTk1LCAwLjMwNDI3LCAwLjU1ODAzMSwgMC44MTE3NzIsIDEuNDA0MDQsIDEuNzQzMTQiLCBcCi0gICAgICAgICAgIjAuMTQ0Mzg5LCAwLjE2MTM1MSwgMC4zMTM4NjIsIDAuNTY3NTk0LCAwLjgyMTI4NiwgMS40MTQ0LCAxLjc1MTU1IiwgXAotICAgICAgICAgICIwLjE1OTkwNywgMC4xNzY4NTEsIDAuMzI5MTk3LCAwLjU4Mjg5OCwgMC44MzY1MTUsIDEuNDI5MDEsIDEuNzY2NzUiLCBcCi0gICAgICAgICAgIjAuMTczNjM3LCAwLjE5MDUzMSwgMC4zNDI1NTcsIDAuNTk2MTI0LCAwLjg0OTgyMSwgMS40NDE2NSwgMS43ODAyMiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMTMzMywgMC4yNDgxMzYsIDAuNTYxNjIzLCAxLjA4NDA4LCAxLjYwNjE2LCAyLjgyNDEzLCAzLjUxOTU3IiwgXAotICAgICAgICAgICIwLjIxMzMxNiwgMC4yNDgxMTIsIDAuNTYxNjQxLCAxLjA4MzcyLCAxLjYwNjA5LCAyLjgyMzg1LCAzLjUxOTkzIiwgXAotICAgICAgICAgICIwLjIxNDI2MiwgMC4yNDg1NDYsIDAuNTYxNjI2LCAxLjA4Mzk0LCAxLjYwNjIxLCAyLjgyMzk3LCAzLjUxOTk3IiwgXAotICAgICAgICAgICIwLjIxODE1MywgMC4yNTE1ODMsIDAuNTYxNjM2LCAxLjA4Mzk2LCAxLjYwNjE4LCAyLjgyNDA5LCAzLjUxOTg5IiwgXAotICAgICAgICAgICIwLjIyMzg2NiwgMC4yNTY2MjksIDAuNTYxOTgxLCAxLjA4MzcyLCAxLjYwNjIxLCAyLjgyNDI2LCAzLjUyIiwgXAotICAgICAgICAgICIwLjIzNDkyMywgMC4yNjY3NTMsIDAuNTY1NTg3LCAxLjA4MzczLCAxLjYwNTY5LCAyLjgyNDE2LCAzLjUxOTgyIiwgXAotICAgICAgICAgICIwLjI0NjIzMywgMC4yNzcxOTMsIDAuNTcwODMsIDEuMDg0LCAxLjYwNjE3LCAyLjgyMzY2LCAzLjUxOTg2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNjU1ODksIDAuMTkzMjc2LCAwLjQ0MzAyMSwgMC44NjE0OSwgMS4yNzk5OSwgMi4yNTgzOSwgMi44MTg0NyIsIFwKLSAgICAgICAgICAiMC4xNzI2NzQsIDAuMjAwNTU2LCAwLjQ1MDE1MywgMC44Njg0OTEsIDEuMjg4MjcsIDIuMjY2NTcsIDIuODIzODUiLCBcCi0gICAgICAgICAgIjAuMTgxNjgzLCAwLjIwOTQyMSwgMC40NTk1NTMsIDAuODc4MTc5LCAxLjI5NzkzLCAyLjI3NjI3LCAyLjgzNDE4IiwgXAotICAgICAgICAgICIwLjE5MDQwMiwgMC4yMTgxNDQsIDAuNDY4MDE0LCAwLjg4NjA3OCwgMS4zMDYyLCAyLjI4NDI2LCAyLjg0MjE0IiwgXAotICAgICAgICAgICIwLjE5OTUzMiwgMC4yMjcxMTgsIDAuNDc2Nzk2LCAwLjg5NTA1NSwgMS4zMTMyNiwgMi4yOTE1MywgMi44NTExMiIsIFwKLSAgICAgICAgICAiMC4yMTQxNzEsIDAuMjQxODEzLCAwLjQ5MDg1LCAwLjkwODQzNCwgMS4zMjgwNSwgMi4zMDUxMSwgMi44NjQwMSIsIFwKLSAgICAgICAgICAiMC4yMjcyMDYsIDAuMjU0NjYxLCAwLjUwMzM2MSwgMC45MjE5MjEsIDEuMzQwNTUsIDIuMzE3OTMsIDIuODc2MTIiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzUzMjUzLCAwLjQxMjI4NiwgMC45NDQ3NTcsIDEuODM1MTQsIDIuNzI2MzUsIDQuODA0NTQsIDUuOTg3MDEiLCBcCi0gICAgICAgICAgIjAuMzUzMjgzLCAwLjQxMjEwNiwgMC45NDQ5MTEsIDEuODM0MzYsIDIuNzI1MzMsIDQuODAxNjMsIDUuOTkwOTYiLCBcCi0gICAgICAgICAgIjAuMzUyOTAxLCAwLjQxMTc4MiwgMC45NDQ4MzgsIDEuODM1OCwgMi43MjU4MywgNC44MDI5NywgNS45ODc4NiIsIFwKLSAgICAgICAgICAiMC4zNTMzODEsIDAuNDExOTI2LCAwLjk0NDc0LCAxLjgzNTgsIDIuNzI1NTksIDQuODAxNiwgNS45ODg4NCIsIFwKLSAgICAgICAgICAiMC4zNTY3MjUsIDAuNDEzOTg4LCAwLjk0NDUwMiwgMS44MzUwOCwgMi43MjY5MywgNC44MDQ2NywgNS45ODkwMiIsIFwKLSAgICAgICAgICAiMC4zNjM5NjEsIDAuNDIwNDEsIDAuOTQ0Mjg2LCAxLjgzNTQ5LCAyLjcyNjYsIDQuODA0MzYsIDUuOTkxMjYiLCBcCi0gICAgICAgICAgIjAuMzcyMzUzLCAwLjQyNzc5LCAwLjk0NTQ5NSwgMS44MzU1MywgMi43MjQ1LCA0LjgwOTY0LCA1Ljk5NDQ2Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwMTA0OSwgMC4xMTgxNTMsIDAuMjcxMzI2LCAwLjUyNTE1LCAwLjc3ODg1MywgMS4zNzA5MSwgMS43MDkxMyIsIFwKLSAgICAgICAgICAiMC4xMDc1ODcsIDAuMTI0NzMsIDAuMjc3OTY5LCAwLjUzMTc3NywgMC43ODU1NjksIDEuMzc3NjYsIDEuNzE1ODciLCBcCi0gICAgICAgICAgIjAuMTE1NTMzLCAwLjEzMjc3NSwgMC4yODYwMDIsIDAuNTM5ODQ5LCAwLjc5MzU3NCwgMS4zODU1OCwgMS43MjM4NyIsIFwKLSAgICAgICAgICAiMC4xMjM1MjgsIDAuMTQwNTEzLCAwLjI5Mzk3NSwgMC41NDc4NCwgMC44MDE1NDIsIDEuMzkzNTgsIDEuNzMxOSIsIFwKLSAgICAgICAgICAiMC4xMzEyLCAwLjE0ODM4LCAwLjMwMTkxOCwgMC41NTU4OTUsIDAuODA5NjI0LCAxLjQwMTYxLCAxLjc0MDAxIiwgXAotICAgICAgICAgICIwLjE0Mzg2NSwgMC4xNjEyMywgMC4zMTQzNzgsIDAuNTY4Njg3LCAwLjgyMjQ5MSwgMS40MTQ0OCwgMS43NTI4NCIsIFwKLSAgICAgICAgICAiMC4xNTQ0MDEsIDAuMTcyMTY0LCAwLjMyNTc1LCAwLjU4MDI0LCAwLjgzNDA2OSwgMS40MjYwOCwgMS43NjQyNCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMDM5NDEsIDAuMjM4NzQzLCAwLjU1MTg1NywgMS4wNzM1OCwgMS41OTU4MiwgMi44MTQ0MSwgMy41MDk3OCIsIFwKLSAgICAgICAgICAiMC4yMDM5NzMsIDAuMjM4NzM5LCAwLjU1MTgxNiwgMS4wNzM2MywgMS41OTUzNSwgMi44MTQwNiwgMy41MDk3NiIsIFwKLSAgICAgICAgICAiMC4yMDQ4NzMsIDAuMjM5MjQ4LCAwLjU1MTg2MiwgMS4wNzM5NiwgMS41OTU2NSwgMi44MTM5OCwgMy41MDk1NiIsIFwKLSAgICAgICAgICAiMC4yMDc4ODksIDAuMjQxNDk3LCAwLjU1MTg3NCwgMS4wNzM2LCAxLjU5NTk0LCAyLjgxNCwgMy41MDkwNCIsIFwKLSAgICAgICAgICAiMC4yMTE5MzksIDAuMjQ1MDc5LCAwLjU1MjM0OSwgMS4wNzM2NiwgMS41OTU5NiwgMi44MTM2LCAzLjUwOTc2IiwgXAotICAgICAgICAgICIwLjIyMDMxOCwgMC4yNTI5MDEsIDAuNTU0OTk5LCAxLjA3MzgxLCAxLjU5NTc2LCAyLjgxNDcxLCAzLjUwOTk3IiwgXAotICAgICAgICAgICIwLjIyODU5NSwgMC4yNjA1NTIsIDAuNTU5MDY3LCAxLjA3MzkxLCAxLjU5NTQ1LCAyLjgxOTEsIDMuNTEwMDMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQzEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE2MzUxMywgMC4xOTE0MzcsIDAuNDQzMTExLCAwLjg2MzE4MiwgMS4yODI2MSwgMi4yNjE5MSwgMi44MTc3NiIsIFwKLSAgICAgICAgICAiMC4xNzA1OTYsIDAuMTk4NTc0LCAwLjQ1MDMxOCwgMC44Njk0OTcsIDEuMjg5MzYsIDIuMjY3NzksIDIuODI2NDUiLCBcCi0gICAgICAgICAgIjAuMTc5NTM3LCAwLjIwNzUwOCwgMC40NTk0MDksIDAuODc4NDU1LCAxLjI5NzM0LCAyLjI3NTgzLCAyLjgzNDI4IiwgXAotICAgICAgICAgICIwLjE4ODIyNSwgMC4yMTYyMTYsIDAuNDY3NzkyLCAwLjg4NzQ2LCAxLjMwNzQ1LCAyLjI4NTU1LCAyLjg0MzUiLCBcCi0gICAgICAgICAgIjAuMTk3MjgyLCAwLjIyNTE0NywgMC40NzY4MzMsIDAuODk2MzAxLCAxLjMxNDYsIDIuMjkyODgsIDIuODUyNDciLCBcCi0gICAgICAgICAgIjAuMjExOTI5LCAwLjIzOTc5OSwgMC40OTA3ODYsIDAuOTA5NzA4LCAxLjMyOTM3LCAyLjMwNjgyLCAyLjg2NzI1IiwgXAotICAgICAgICAgICIwLjIyNDk0LCAwLjI1MjcxNSwgMC41MDM2NTksIDAuOTIyMjQ4LCAxLjM0MTc4LCAyLjMyMDA3LCAyLjg3NzQzIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjM1MTQ5MywgMC40MTEwNTMsIDAuOTQ1NTk1LCAxLjgzNjM5LCAyLjcyNjk0LCA0LjgwNDk4LCA1Ljk5NTk1IiwgXAotICAgICAgICAgICIwLjM1MTQ3NiwgMC40MTA5NDEsIDAuOTQ1NTQxLCAxLjgzNiwgMi43MjU0MiwgNC44MDIyLCA1Ljk4OTA3IiwgXAotICAgICAgICAgICIwLjM1MTA1OSwgMC40MTA1MjMsIDAuOTQ1MzEzLCAxLjgzNjYyLCAyLjcyNzIyLCA0LjgwNDIzLCA1Ljk5MTQ2IiwgXAotICAgICAgICAgICIwLjM1MTU4MywgMC40MTA5MDQsIDAuOTQ1NTM2LCAxLjgzNjYzLCAyLjcyNjQzLCA0LjgwMjQ3LCA1Ljk4OTY1IiwgXAotICAgICAgICAgICIwLjM1NDcyNSwgMC40MTI2NDYsIDAuOTQ1NTYsIDEuODM1ODgsIDIuNzI3MTUsIDQuODA1NDEsIDUuOTg5ODUiLCBcCi0gICAgICAgICAgIjAuMzYyMzc1LCAwLjQxOTI3NSwgMC45NDUwNjEsIDEuODM2MDcsIDIuNzI3MzcsIDQuODA1NDMsIDUuOTg5MjQiLCBcCi0gICAgICAgICAgIjAuMzcwODA4LCAwLjQyNjc4LCAwLjk0NjEzLCAxLjgzNjUyLCAyLjcyNTMzLCA0LjgwMjA3LCA1Ljk5NTI1Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5OTQxOCwgMC4xMTY1NzksIDAuMjY5NzQxLCAwLjUyMzUyNywgMC43NzcyNTEsIDEuMzY5MzMsIDEuNzA3NSIsIFwKLSAgICAgICAgICAiMC4xMDcwOTMsIDAuMTI0MjA2LCAwLjI3NzQxMywgMC41MzEyMzIsIDAuNzg0OTYyLCAxLjM3Njk2LCAxLjcxNTE4IiwgXAotICAgICAgICAgICIwLjExNjU3MywgMC4xMzM2NzMsIDAuMjg2ODIyLCAwLjU0MDYxNCwgMC43OTQzMjYsIDEuMzg2MzcsIDEuNzI0ODEiLCBcCi0gICAgICAgICAgIjAuMTI2MTI5LCAwLjE0MzIzNywgMC4yOTYzOTgsIDAuNTUwMTQ0LCAwLjgwMzg0MSwgMS4zOTU4LCAxLjczNDA5IiwgXAotICAgICAgICAgICIwLjEzNTgyNiwgMC4xNTI5MzEsIDAuMzA1OTA0LCAwLjU1OTY5MSwgMC44MTMzMzEsIDEuNDA1NDEsIDEuNzQzNTQiLCBcCi0gICAgICAgICAgIjAuMTUxMzkzLCAwLjE2ODQ2NywgMC4zMjEwNzEsIDAuNTc0OTExLCAwLjgyODUzMiwgMS40MjA0NSwgMS43NTg2OSIsIFwKLSAgICAgICAgICAiMC4xNjUwMjMsIDAuMTgyMDksIDAuMzM0NTkxLCAwLjU4ODIwNiwgMC44NDE4ODksIDEuNDMzNzgsIDEuNzcxOTQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjAzOTY3LCAwLjIzODc1NSwgMC41NTE4NTksIDEuMDczNjMsIDEuNTk1NjgsIDIuODE5MTEsIDMuNTIwMzgiLCBcCi0gICAgICAgICAgIjAuMjAzOTYyLCAwLjIzODc0LCAwLjU1MTc5NywgMS4wNzM1OCwgMS41OTU3MywgMi44MTQzMywgMy41MTAzNyIsIFwKLSAgICAgICAgICAiMC4yMDUyMzMsIDAuMjM5MzQ4LCAwLjU1MTg2NSwgMS4wNzM4LCAxLjU5NTU2LCAyLjgxNDUzLCAzLjUwOTU3IiwgXAotICAgICAgICAgICIwLjIwOTQyOSwgMC4yNDI2OTYsIDAuNTUxODU4LCAxLjA3MzcxLCAxLjU5NTg5LCAyLjgxNDY2LCAzLjUxMDQ4IiwgXAotICAgICAgICAgICIwLjIxNTQzLCAwLjI0Nzk5OCwgMC41NTIzMDEsIDEuMDczOTUsIDEuNTk1ODksIDIuODE0NywgMy41MTg1NSIsIFwKLSAgICAgICAgICAiMC4yMjY5OTUsIDAuMjU4NTM4LCAwLjU1NTk1MywgMS4wNzM2MywgMS41OTU0MSwgMi44MTM5MSwgMy41MTgzOCIsIFwKLSAgICAgICAgICAiMC4yMzg1MSwgMC4yNjkxNzgsIDAuNTYxNDE2LCAxLjA3NDE1LCAxLjU5NTc1LCAyLjgxNDEyLCAzLjUxODQ5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDg0NiwgMC4wMDQ4NDYsIDAuMDA0ODQ2LCAwLjAwNDg0NSwgMC4wMDQ4NDQsIDAuMDA0ODQyLCAwLjAwNDg0MSIsIFwKLSAgICAgICAgICAiMC4wMDQ4MzksIDAuMDA0ODQsIDAuMDA0ODQyLCAwLjAwNDg0MiwgMC4wMDQ4NDIsIDAuMDA0ODQsIDAuMDA0ODM4IiwgXAotICAgICAgICAgICIwLjAwNDgzNCwgMC4wMDQ4MzUsIDAuMDA0ODM5LCAwLjAwNDg0LCAwLjAwNDg0LCAwLjAwNDgzOCwgMC4wMDQ4MzYiLCBcCi0gICAgICAgICAgIjAuMDA0ODMxLCAwLjAwNDgzMiwgMC4wMDQ4MzcsIDAuMDA0ODM5LCAwLjAwNDgzOSwgMC4wMDQ4MzgsIDAuMDA0ODM3IiwgXAotICAgICAgICAgICIwLjAwNDgzLCAwLjAwNDgzMSwgMC4wMDQ4MzcsIDAuMDA0ODM5LCAwLjAwNDgzOSwgMC4wMDQ4MzgsIDAuMDA0ODM3IiwgXAotICAgICAgICAgICIwLjAwNDgzNCwgMC4wMDQ4MzUsIDAuMDA0ODM4LCAwLjAwNDgzOSwgMC4wMDQ4NCwgMC4wMDQ4MzksIDAuMDA0ODM3IiwgXAotICAgICAgICAgICIwLjAwNDg0NSwgMC4wMDQ4NDUsIDAuMDA0ODQzLCAwLjAwNDg0MiwgMC4wMDQ4NDIsIDAuMDA0ODQsIDAuMDA0ODM4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxMjU5LCAwLjAwMTI1OCwgMC4wMDEyNTgsIDAuMDAxMjU4LCAwLjAwMTI1OCwgMC4wMDEyNTcsIDAuMDAxMjU2IiwgXAotICAgICAgICAgICIwLjAwMTI0MSwgMC4wMDEyNDEsIDAuMDAxMjQyLCAwLjAwMTI0MywgMC4wMDEyNDIsIDAuMDAxMjQyLCAwLjAwMTI0MSIsIFwKLSAgICAgICAgICAiMC4wMDEyMzcsIDAuMDAxMjM3LCAwLjAwMTIzOSwgMC4wMDEyNCwgMC4wMDEyNCwgMC4wMDEyMzksIDAuMDAxMjM4IiwgXAotICAgICAgICAgICIwLjAwMTI0MywgMC4wMDEyNDMsIDAuMDAxMjQxLCAwLjAwMTI0LCAwLjAwMTI0LCAwLjAwMTIzOSwgMC4wMDEyMzgiLCBcCi0gICAgICAgICAgIjAuMDAxMjU3LCAwLjAwMTI1NSwgMC4wMDEyNDgsIDAuMDAxMjQ0LCAwLjAwMTI0MiwgMC4wMDEyNCwgMC4wMDEyMzkiLCBcCi0gICAgICAgICAgIjAuMDAxMjk1LCAwLjAwMTI5LCAwLjAwMTI2NywgMC4wMDEyNTQsIDAuMDAxMjQ5LCAwLjAwMTI0MywgMC4wMDEyNDIiLCBcCi0gICAgICAgICAgIjAuMDAxMzQzLCAwLjAwMTMyOSwgMC4wMDEyODksIDAuMDAxMjY5LCAwLjAwMTI1OSwgMC4wMDEyNSwgMC4wMDEyNDYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0NTAxLCAwLjAwNDUwMSwgMC4wMDQ1MDIsIDAuMDA0NTAyLCAwLjAwNDUwMiwgMC4wMDQ1LCAwLjAwNDQ5OSIsIFwKLSAgICAgICAgICAiMC4wMDQ0OTMsIDAuMDA0NDk1LCAwLjAwNDUwMSwgMC4wMDQ1MDMsIDAuMDA0NTA0LCAwLjAwNDUwNCwgMC4wMDQ1MDIiLCBcCi0gICAgICAgICAgIjAuMDA0NDgyLCAwLjAwNDQ4NSwgMC4wMDQ0OTUsIDAuMDA0NSwgMC4wMDQ1MDEsIDAuMDA0NTAxLCAwLjAwNDUiLCBcCi0gICAgICAgICAgIjAuMDA0NDc0LCAwLjAwNDQ3NywgMC4wMDQ0OTIsIDAuMDA0NDk3LCAwLjAwNDUsIDAuMDA0NTAxLCAwLjAwNDUiLCBcCi0gICAgICAgICAgIjAuMDA0NDY5LCAwLjAwNDQ3MywgMC4wMDQ0ODksIDAuMDA0NDk2LCAwLjAwNDQ5OCwgMC4wMDQ1LCAwLjAwNDUiLCBcCi0gICAgICAgICAgIjAuMDA0NDY5LCAwLjAwNDQ3MiwgMC4wMDQ0ODcsIDAuMDA0NDk1LCAwLjAwNDQ5OCwgMC4wMDQ0OTksIDAuMDA0NDk5IiwgXAotICAgICAgICAgICIwLjAwNDQ3OCwgMC4wMDQ0NzksIDAuMDA0NDg5LCAwLjAwNDQ5NiwgMC4wMDQ0OTgsIDAuMDA0NSwgMC4wMDQ1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxMjU5LCAwLjAwMTI1OCwgMC4wMDEyNTksIDAuMDAxMjU4LCAwLjAwMTI1OCwgMC4wMDEyNTYsIDAuMDAxMjU2IiwgXAotICAgICAgICAgICIwLjAwMTI0MywgMC4wMDEyNDMsIDAuMDAxMjQzLCAwLjAwMTI0MywgMC4wMDEyNDMsIDAuMDAxMjQyLCAwLjAwMTI0MSIsIFwKLSAgICAgICAgICAiMC4wMDEyNDgsIDAuMDAxMjQ3LCAwLjAwMTI0NCwgMC4wMDEyNDIsIDAuMDAxMjQxLCAwLjAwMTI0LCAwLjAwMTIzOSIsIFwKLSAgICAgICAgICAiMC4wMDEyNjQsIDAuMDAxMjYxLCAwLjAwMTI1MiwgMC4wMDEyNDYsIDAuMDAxMjQ0LCAwLjAwMTI0MSwgMC4wMDEyMzkiLCBcCi0gICAgICAgICAgIjAuMDAxMjg5LCAwLjAwMTI4NiwgMC4wMDEyNjQsIDAuMDAxMjUzLCAwLjAwMTI0OSwgMC4wMDEyNDMsIDAuMDAxMjQxIiwgXAotICAgICAgICAgICIwLjAwMTM0NiwgMC4wMDEzMzYsIDAuMDAxMjkyLCAwLjAwMTI3MSwgMC4wMDEyNjEsIDAuMDAxMjUxLCAwLjAwMTI0NyIsIFwKLSAgICAgICAgICAiMC4wMDE0MDcsIDAuMDAxMzkxLCAwLjAwMTMyNSwgMC4wMDEyOTEsIDAuMDAxMjc3LCAwLjAwMTI2LCAwLjAwMTI1NSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQwNTcsIDAuMDA0MDU3LCAwLjAwNDA1NywgMC4wMDQwNTYsIDAuMDA0MDU2LCAwLjAwNDA1MywgMC4wMDQwNTIiLCBcCi0gICAgICAgICAgIjAuMDA0MDUsIDAuMDA0MDUxLCAwLjAwNDA1MiwgMC4wMDQwNTMsIDAuMDA0MDUyLCAwLjAwNDA1MSwgMC4wMDQwNDkiLCBcCi0gICAgICAgICAgIjAuMDA0MDQ1LCAwLjAwNDA0NywgMC4wMDQwNTEsIDAuMDA0MDUxLCAwLjAwNDA1MSwgMC4wMDQwNSwgMC4wMDQwNDgiLCBcCi0gICAgICAgICAgIjAuMDA0MDQ0LCAwLjAwNDA0NSwgMC4wMDQwNDksIDAuMDA0MDUsIDAuMDA0MDUyLCAwLjAwNDA0OCwgMC4wMDQwNDciLCBcCi0gICAgICAgICAgIjAuMDA0MDQ3LCAwLjAwNDA0NywgMC4wMDQwNTEsIDAuMDA0MDUxLCAwLjAwNDA1MSwgMC4wMDQwNDksIDAuMDA0MDQ4IiwgXAotICAgICAgICAgICIwLjAwNDA2LCAwLjAwNDA1OSwgMC4wMDQwNTUsIDAuMDA0MDU0LCAwLjAwNDA1NCwgMC4wMDQwNSwgMC4wMDQwNDgiLCBcCi0gICAgICAgICAgIjAuMDA0MDgyLCAwLjAwNDA3OCwgMC4wMDQwNjYsIDAuMDA0MDYsIDAuMDA0MDU3LCAwLjAwNDA1NCwgMC4wMDQwNTEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDA2OTgsIDAuMDAwNjk4LCAwLjAwMDY5OCwgMC4wMDA2OTgsIDAuMDAwNjk4LCAwLjAwMDY5OCwgMC4wMDA2OTgiLCBcCi0gICAgICAgICAgIjAuMDAwNjk2LCAwLjAwMDY5OCwgMC4wMDA3MDMsIDAuMDAwNzA0LCAwLjAwMDcwNSwgMC4wMDA3MDUsIDAuMDAwNzA1IiwgXAotICAgICAgICAgICIwLjAwMDY5MywgMC4wMDA2OTQsIDAuMDAwNzAyLCAwLjAwMDcwNCwgMC4wMDA3MDUsIDAuMDAwNzA2LCAwLjAwMDcwNiIsIFwKLSAgICAgICAgICAiMC4wMDA2OTgsIDAuMDAwNjk5LCAwLjAwMDcwNCwgMC4wMDA3MDYsIDAuMDAwNzA2LCAwLjAwMDcwNiwgMC4wMDA3MDciLCBcCi0gICAgICAgICAgIjAuMDAwNzEsIDAuMDAwNzEsIDAuMDAwNzEsIDAuMDAwNzA5LCAwLjAwMDcwOSwgMC4wMDA3MDgsIDAuMDAwNzA4IiwgXAotICAgICAgICAgICIwLjAwMDc0NywgMC4wMDA3MzksIDAuMDAwNzI2LCAwLjAwMDcxOSwgMC4wMDA3MTYsIDAuMDAwNzEyLCAwLjAwMDcxMSIsIFwKLSAgICAgICAgICAiMC4wMDA3ODYsIDAuMDAwNzc5LCAwLjAwMDc0NywgMC4wMDA3MzEsIDAuMDAwNzI0LCAwLjAwMDcxNywgMC4wMDA3MTUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzNjY4LCAwLjAwMzY2OCwgMC4wMDM2NywgMC4wMDM2NywgMC4wMDM2NjksIDAuMDAzNjY4LCAwLjAwMzY2NyIsIFwKLSAgICAgICAgICAiMC4wMDM2NiwgMC4wMDM2NjIsIDAuMDAzNjY4LCAwLjAwMzY3LCAwLjAwMzY3MSwgMC4wMDM2NywgMC4wMDM2NjkiLCBcCi0gICAgICAgICAgIjAuMDAzNjUsIDAuMDAzNjUzLCAwLjAwMzY2NCwgMC4wMDM2NjgsIDAuMDAzNjY5LCAwLjAwMzY2OSwgMC4wMDM2NjkiLCBcCi0gICAgICAgICAgIjAuMDAzNjQ0LCAwLjAwMzY0NywgMC4wMDM2NiwgMC4wMDM2NjYsIDAuMDAzNjY4LCAwLjAwMzY2OCwgMC4wMDM2NjgiLCBcCi0gICAgICAgICAgIjAuMDAzNjQ0LCAwLjAwMzY0NiwgMC4wMDM2NTksIDAuMDAzNjY1LCAwLjAwMzY2NywgMC4wMDM2NjgsIDAuMDAzNjY4IiwgXAotICAgICAgICAgICIwLjAwMzY1MywgMC4wMDM2NTQsIDAuMDAzNjYxLCAwLjAwMzY2NiwgMC4wMDM2NjksIDAuMDAzNjY5LCAwLjAwMzY2OCIsIFwKLSAgICAgICAgICAiMC4wMDM2NzEsIDAuMDAzNjcsIDAuMDAzNjY5LCAwLjAwMzY3LCAwLjAwMzY3MSwgMC4wMDM2NywgMC4wMDM2NzEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDA2OTcsIDAuMDAwNjk3LCAwLjAwMDY5OCwgMC4wMDA2OTgsIDAuMDAwNjk3LCAwLjAwMDY5NywgMC4wMDA2OTciLCBcCi0gICAgICAgICAgIjAuMDAwNjk5LCAwLjAwMDcsIDAuMDAwNzAzLCAwLjAwMDcwNCwgMC4wMDA3MDUsIDAuMDAwNzA1LCAwLjAwMDcwNCIsIFwKLSAgICAgICAgICAiMC4wMDA3MDgsIDAuMDAwNzA4LCAwLjAwMDcwNywgMC4wMDA3MDcsIDAuMDAwNzA3LCAwLjAwMDcwNywgMC4wMDA3MDYiLCBcCi0gICAgICAgICAgIjAuMDAwNzI0LCAwLjAwMDcyMiwgMC4wMDA3MTYsIDAuMDAwNzEyLCAwLjAwMDcxMSwgMC4wMDA3MDksIDAuMDAwNzA4IiwgXAotICAgICAgICAgICIwLjAwMDc0NiwgMC4wMDA3NDMsIDAuMDAwNzI4LCAwLjAwMDcxOSwgMC4wMDA3MTUsIDAuMDAwNzEyLCAwLjAwMDcxIiwgXAotICAgICAgICAgICIwLjAwMDc5NywgMC4wMDA3ODcsIDAuMDAwNzUyLCAwLjAwMDczNiwgMC4wMDA3MjgsIDAuMDAwNzE5LCAwLjAwMDcxNyIsIFwKLSAgICAgICAgICAiMC4wMDA4NTUsIDAuMDAwODQxLCAwLjAwMDc4NCwgMC4wMDA3NTUsIDAuMDAwNzQyLCAwLjAwMDcyNywgMC4wMDA3MjMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDMCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzMTUzLCAwLjAwMzE1MywgMC4wMDMxNTMsIDAuMDAzMTUzLCAwLjAwMzE1MiwgMC4wMDMxNDksIDAuMDAzMTUiLCBcCi0gICAgICAgICAgIjAuMDAzMTQ3LCAwLjAwMzE0OCwgMC4wMDMxNDksIDAuMDAzMTQ5LCAwLjAwMzE0OSwgMC4wMDMxNDYsIDAuMDAzMTQ2IiwgXAotICAgICAgICAgICIwLjAwMzE1NSwgMC4wMDMxNTQsIDAuMDAzMTUyLCAwLjAwMzE1LCAwLjAwMzE0OCwgMC4wMDMxNDYsIDAuMDAzMTQ1IiwgXAotICAgICAgICAgICIwLjAwMzE3NiwgMC4wMDMxNzIsIDAuMDAzMTYsIDAuMDAzMTU0LCAwLjAwMzE1MiwgMC4wMDMxNDksIDAuMDAzMTQ2IiwgXAotICAgICAgICAgICIwLjAwMzIwMywgMC4wMDMxOTYsIDAuMDAzMTcyLCAwLjAwMzE2MSwgMC4wMDMxNTcsIDAuMDAzMTUsIDAuMDAzMTQ4IiwgXAotICAgICAgICAgICIwLjAwMzI1NiwgMC4wMDMyNDcsIDAuMDAzMiwgMC4wMDMxNzUsIDAuMDAzMTY3LCAwLjAwMzE1NiwgMC4wMDMxNTIiLCBcCi0gICAgICAgICAgIjAuMDAzMzA5LCAwLjAwMzI5NSwgMC4wMDMyMjgsIDAuMDAzMTkyLCAwLjAwMzE3OCwgMC4wMDMxNjMsIDAuMDAzMTU4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwMTg3LCAwLjAwMDE4OCwgMC4wMDAxOSwgMC4wMDAxOTEsIDAuMDAwMTkxLCAwLjAwMDE5MSwgMC4wMDAxOTEiLCBcCi0gICAgICAgICAgIjAuMDAwMTk2LCAwLjAwMDE5OSwgMC4wMDAyMDcsIDAuMDAwMjEsIDAuMDAwMjExLCAwLjAwMDIxMiwgMC4wMDAyMTMiLCBcCi0gICAgICAgICAgIjAuMDAwMTk3LCAwLjAwMDIsIDAuMDAwMjEsIDAuMDAwMjE0LCAwLjAwMDIxNiwgMC4wMDAyMTcsIDAuMDAwMjE3IiwgXAotICAgICAgICAgICIwLjAwMDIwNCwgMC4wMDAyMDYsIDAuMDAwMjE0LCAwLjAwMDIxNywgMC4wMDAyMTgsIDAuMDAwMjE5LCAwLjAwMDIxOSIsIFwKLSAgICAgICAgICAiMC4wMDAyMTgsIDAuMDAwMjE5LCAwLjAwMDIyMSwgMC4wMDAyMjEsIDAuMDAwMjIyLCAwLjAwMDIyMiwgMC4wMDAyMjIiLCBcCi0gICAgICAgICAgIjAuMDAwMjUyLCAwLjAwMDI0OSwgMC4wMDAyMzcsIDAuMDAwMjMxLCAwLjAwMDIyOSwgMC4wMDAyMjYsIDAuMDAwMjI1IiwgXAotICAgICAgICAgICIwLjAwMDI5NiwgMC4wMDAyODcsIDAuMDAwMjU4LCAwLjAwMDI0NCwgMC4wMDAyMzgsIDAuMDAwMjMyLCAwLjAwMDIzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQzEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjgyNSwgMC4wMDI4MjUsIDAuMDAyODI3LCAwLjAwMjgyNywgMC4wMDI4MjYsIDAuMDAyODI0LCAwLjAwMjgyNSIsIFwKLSAgICAgICAgICAiMC4wMDI4MTgsIDAuMDAyODIsIDAuMDAyODI1LCAwLjAwMjgyNywgMC4wMDI4MjgsIDAuMDAyODI2LCAwLjAwMjgyNiIsIFwKLSAgICAgICAgICAiMC4wMDI4MjEsIDAuMDAyODIyLCAwLjAwMjgyNSwgMC4wMDI4MjcsIDAuMDAyODI3LCAwLjAwMjgyNiwgMC4wMDI4MjYiLCBcCi0gICAgICAgICAgIjAuMDAyODM4LCAwLjAwMjgzNywgMC4wMDI4MzIsIDAuMDAyODMxLCAwLjAwMjgyOSwgMC4wMDI4MjcsIDAuMDAyODI3IiwgXAotICAgICAgICAgICIwLjAwMjg2MSwgMC4wMDI4NTcsIDAuMDAyODQyLCAwLjAwMjgzNSwgMC4wMDI4MzMsIDAuMDAyODMsIDAuMDAyODI4IiwgXAotICAgICAgICAgICIwLjAwMjkxLCAwLjAwMjkwMywgMC4wMDI4NjUsIDAuMDAyODQ4LCAwLjAwMjg0MiwgMC4wMDI4MzUsIDAuMDAyODMyIiwgXAotICAgICAgICAgICIwLjAwMjk1OSwgMC4wMDI5NDYsIDAuMDAyODkyLCAwLjAwMjg2MywgMC4wMDI4NTIsIDAuMDAyODQsIDAuMDAyODM4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwMTg3LCAwLjAwMDE4NywgMC4wMDAxOSwgMC4wMDAxOTEsIDAuMDAwMTkxLCAwLjAwMDE5MSwgMC4wMDAxOTEiLCBcCi0gICAgICAgICAgIjAuMDAwMjAyLCAwLjAwMDIwMywgMC4wMDAyMDksIDAuMDAwMjEyLCAwLjAwMDIxMiwgMC4wMDAyMTMsIDAuMDAwMjEzIiwgXAotICAgICAgICAgICIwLjAwMDIxMiwgMC4wMDAyMTMsIDAuMDAwMjE2LCAwLjAwMDIxOCwgMC4wMDAyMTgsIDAuMDAwMjE5LCAwLjAwMDIxOSIsIFwKLSAgICAgICAgICAiMC4wMDAyMjcsIDAuMDAwMjI2LCAwLjAwMDIyNSwgMC4wMDAyMjMsIDAuMDAwMjIzLCAwLjAwMDIyMiwgMC4wMDAyMjIiLCBcCi0gICAgICAgICAgIjAuMDAwMjUsIDAuMDAwMjQ4LCAwLjAwMDIzNywgMC4wMDAyMzEsIDAuMDAwMjI4LCAwLjAwMDIyNSwgMC4wMDAyMjUiLCBcCi0gICAgICAgICAgIjAuMDAwMywgMC4wMDAyOTEsIDAuMDAwMjYsIDAuMDAwMjQ3LCAwLjAwMDI0LCAwLjAwMDIzMywgMC4wMDAyMzEiLCBcCi0gICAgICAgICAgIjAuMDAwMzYxLCAwLjAwMDM0MywgMC4wMDAyODksIDAuMDAwMjY1LCAwLjAwMDI1NCwgMC4wMDAyNDEsIDAuMDAwMjM4Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogQU9JMjJYMiAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChBT0kyMlgyKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuNjQ2OTA3OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxODA2NDU7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxODAwODc7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxODA2NDU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxMDQ5LCAwLjAwMTA0OCwgMC4wMDEwNDcsIDAuMDAxMDQ3LCAwLjAwMTA0NywgMC4wMDEwNDcsIDAuMDAxMDQ3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxMTA1LCAwLjAwMTA2OCwgMC4wMDEwNTksIDAuMDAxMDUzLCAwLjAwMTA1MiwgMC4wMDEwNTIsIDAuMDAxMDUzIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihBMSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNjg3Nzg7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNjc4NzM7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNjg3Nzg7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNjIyLCAwLjAwMDYyMSwgMC4wMDA2MjEsIDAuMDAwNjIsIDAuMDAwNjIxLCAwLjAwMDYyMSwgMC4wMDA2MiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTE5MSwgMC4wMDExOTIsIDAuMDAxMTkyLCAwLjAwMTE5MiwgMC4wMDExOTIsIDAuMDAxMTkyLCAwLjAwMTE5MiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQjApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTc4MTY4OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTc4MTY4OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTc3ODM2OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTA0OSwgMC4wMDEwNDksIDAuMDAxMDQ4LCAwLjAwMTA0OCwgMC4wMDEwNDgsIDAuMDAxMDQ4LCAwLjAwMTA0OCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTEwMiwgMC4wMDEwNjYsIDAuMDAxMDYsIDAuMDAxMDUzLCAwLjAwMTA1MSwgMC4wMDEwNDgsIDAuMDAxMDUxIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCMSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNjQ1NDI7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNjQ1MTg7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNjQ1NDI7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNTc4LCAwLjAwMDU3OCwgMC4wMDA1NzcsIDAuMDAwNTc3LCAwLjAwMDU3NywgMC4wMDA1NzcsIDAuMDAwNTc3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxMTkxLCAwLjAwMTE5MSwgMC4wMDExOTEsIDAuMDAxMTkyLCAwLjAwMTE5MiwgMC4wMDExOTEsIDAuMDAxMTkxIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMzYwMTAzOwotICAgIGZ1bmN0aW9uIDogIighKChCMCBCMSkrKEEwIEExKSkpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQ4Mzc5LCAwLjE5MTYxOCwgMC4zMDc0NTQsIDAuNDUyMzgxLCAwLjU5NzEwOCwgMC43NDIwNTUsIDAuODg3Mjk0IiwgXAotICAgICAgICAgICIwLjA1NTUxOSwgMC4xOTg3NjQsIDAuMzE0NzA4LCAwLjQ1OTcyLCAwLjYwNDE1MiwgMC43NDk0NCwgMC44OTM4NDUiLCBcCi0gICAgICAgICAgIjAuMDYzMDY3LCAwLjIwNjI4MywgMC4zMjIyMzUsIDAuNDY2OTQ3LCAwLjYxMTU1NywgMC43NTY5MjgsIDAuOTAyMTM5IiwgXAotICAgICAgICAgICIwLjA3MDI0OCwgMC4yMTM0NjUsIDAuMzI5NTA4LCAwLjQ3NDI5MiwgMC42MTkyNzksIDAuNzYzNzA3LCAwLjkwOTQ1MyIsIFwKLSAgICAgICAgICAiMC4wNzYzNjIsIDAuMjIwNjMyLCAwLjMzNjc4NCwgMC40ODE2NDIsIDAuNjI2NDE4LCAwLjc3MTQ0OCwgMC45MTU3NDQiLCBcCi0gICAgICAgICAgIjAuMDg0NjM4LCAwLjIzMjIzLCAwLjM0ODUzNiwgMC40OTM3NDYsIDAuNjM4NjQ4LCAwLjc4MjkxOSwgMC45Mjc2ODgiLCBcCi0gICAgICAgICAgIjAuMDkwODI4LCAwLjI0MjQ0OSwgMC4zNTgzODYsIDAuNTAzMTE4LCAwLjY0NzYxOSwgMC43OTI5MiwgMC45Mzg0NzQiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDgyMDc3LCAwLjM4ODU3MSwgMC42MzQzODYsIDAuOTQxODE1LCAxLjI0ODgxLCAxLjU1Njg0LCAxLjg2MzczIiwgXAotICAgICAgICAgICIwLjA4MjMxNywgMC4zODgzMzMsIDAuNjM0Mzg5LCAwLjk0MTg2MSwgMS4yNDk1NywgMS41NTY2NiwgMS44NjMxOSIsIFwKLSAgICAgICAgICAiMC4wODQ5NzcsIDAuMzg4NDIyLCAwLjYzNDM5MSwgMC45NDE5ODEsIDEuMjQ4NzMsIDEuNTU2NjIsIDEuODY0MzYiLCBcCi0gICAgICAgICAgIjAuMDg5MzgsIDAuMzg4ODcsIDAuNjM0MjU1LCAwLjk0MTQxMSwgMS4yNDkyOSwgMS41NTYwMywgMS44NjM4OSIsIFwKLSAgICAgICAgICAiMC4wOTQ5NTksIDAuMzkwNDMxLCAwLjYzNDQ5MywgMC45NDE2NDMsIDEuMjQ5MTgsIDEuNTU2MTQsIDEuODYyODciLCBcCi0gICAgICAgICAgIjAuMTA0ODY2LCAwLjM5NDQwNiwgMC42MzYwNjEsIDAuOTQxODg4LCAxLjI0OTE3LCAxLjU1NzA4LCAxLjg2MjU5IiwgXAotICAgICAgICAgICIwLjExMzQ0MywgMC4zOTk1MzcsIDAuNjM5MjU3LCAwLjk0MjcwMiwgMS4yNDk0OSwgMS41NTU4MSwgMS44NjM2NiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDYzMDIsIDAuMTc5NDI0LCAwLjI4NTQ2OSwgMC40MTc5MSwgMC41NTA2NDQsIDAuNjgyODU2LCAwLjgxNDk2OCIsIFwKLSAgICAgICAgICAiMC4wNTI4MywgMC4xODYwNzgsIDAuMjkyMDE5LCAwLjQyNDQ0NCwgMC41NTY5MzgsIDAuNjg5MzUyLCAwLjgyMTY1MiIsIFwKLSAgICAgICAgICAiMC4wNjEwMzcsIDAuMTk0MzM2LCAwLjMwMDU3OCwgMC40MzI5MzEsIDAuNTY1NTM4LCAwLjY5Nzg4MSwgMC44MzAzOTQiLCBcCi0gICAgICAgICAgIjAuMDY5MDc0LCAwLjIwMjczMiwgMC4zMDg4ODksIDAuNDQxNDA4LCAwLjU3NDIwOCwgMC43MDY2OTksIDAuODM4Njg4IiwgXAotICAgICAgICAgICIwLjA3NjAzNCwgMC4yMTA3MjksIDAuMzE3MTg0LCAwLjQ0OTcxNywgMC41ODIyMzIsIDAuNzE0OTM3LCAwLjg0NzA4NiIsIFwKLSAgICAgICAgICAiMC4wODU5MjYsIDAuMjI0MDU3LCAwLjMzMDU4LCAwLjQ2MzE5OCwgMC41OTU2NjYsIDAuNzI4NDk4LCAwLjg2MDUyOCIsIFwKLSAgICAgICAgICAiMC4wOTMyMTgsIDAuMjM1NzUyLCAwLjM0MTY2OSwgMC40NzQ3NywgMC42MDc3MDYsIDAuNzQwMTYxLCAwLjg3Mjg2MiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODEwMzIsIDAuMzU0NDY5LCAwLjU3MzM0MiwgMC44NDcwNjUsIDEuMTIwNjcsIDEuMzk0NjEsIDEuNjY3ODYiLCBcCi0gICAgICAgICAgIjAuMDgxNTczLCAwLjM1NDUwNSwgMC41NzM0NjcsIDAuODQ2ODg4LCAxLjEyMDYsIDEuMzk0MTYsIDEuNjY3NzciLCBcCi0gICAgICAgICAgIjAuMDg1MjgxLCAwLjM1NDU3NSwgMC41NzMzOTEsIDAuODQ3MDMyLCAxLjEyMDY3LCAxLjM5NDI4LCAxLjY2NzU3IiwgXAotICAgICAgICAgICIwLjA5MDYyLCAwLjM1NTI5NCwgMC41NzM0NSwgMC44NDY5NjcsIDEuMTIwODMsIDEuMzk0MTksIDEuNjY3ODQiLCBcCi0gICAgICAgICAgIjAuMDk2ODU0LCAwLjM1NzA5OSwgMC41NzM1NTIsIDAuODQ3MDI3LCAxLjEyMDYsIDEuMzk0NDQsIDEuNjY3ODYiLCBcCi0gICAgICAgICAgIjAuMTA3NTIzLCAwLjM2MjQ0LCAwLjU3NTg1OSwgMC44NDcxMzcsIDEuMTIwNjMsIDEuMzk0MjcsIDEuNjY4MDMiLCBcCi0gICAgICAgICAgIjAuMTE2NzIxLCAwLjM2ODE0OCwgMC41NzkxNDYsIDAuODQ4NzQ5LCAxLjEyMDgxLCAxLjM5Mzk3LCAxLjY2ODIzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkExIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDY4MiwgMC4xOTA4ODcsIDAuMzA3MzY5LCAwLjQ1MzQ3OCwgMC41OTg5NjcsIDAuNzQ1MjM0LCAwLjg5MDI5MSIsIFwKLSAgICAgICAgICAiMC4wNTM4MTksIDAuMTk3Nzc3LCAwLjMxNDM0OCwgMC40NjAzNTMsIDAuNjA1NzI5LCAwLjc1MTg2OSwgMC44OTY4NzEiLCBcCi0gICAgICAgICAgIjAuMDYxMjExLCAwLjIwNTE5NywgMC4zMjE5NDcsIDAuNDY4MjI1LCAwLjYxMzA4NSwgMC43NTkyNzYsIDAuOTA0NDAyIiwgXAotICAgICAgICAgICIwLjA2ODE1NiwgMC4yMTIzNjYsIDAuMzI5MDgyLCAwLjQ3NDYzOSwgMC42MjA4NDksIDAuNzY2MDI3LCAwLjkxMjYyNSIsIFwKLSAgICAgICAgICAiMC4wNzQwMjUsIDAuMjE5NTY3LCAwLjMzNjQwNiwgMC40ODIwOTUsIDAuNjI3NzE0LCAwLjc3MzQ5NSwgMC45MjAxNTYiLCBcCi0gICAgICAgICAgIjAuMDgxOTQ5LCAwLjIzMTE2OSwgMC4zNDc4MjcsIDAuNDk0MTY2LCAwLjYzOTg5NSwgMC43ODUxMTYsIDAuOTMwNzk0IiwgXAotICAgICAgICAgICIwLjA4NzY4NCwgMC4yNDE0NDQsIDAuMzU3NzQyLCAwLjUwMzQwOCwgMC42NDg4MzEsIDAuNzk1MDUxLCAwLjk0MTQxNiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODAzNTgsIDAuMzg4MjEyLCAwLjYzNTU1MiwgMC45NDUzNjEsIDEuMjU0NDksIDEuNTY0NDEsIDEuODcyOSIsIFwKLSAgICAgICAgICAiMC4wODA1OTMsIDAuMzg3OTYxLCAwLjYzNTQzNywgMC45NDUwMjEsIDEuMjU0ODksIDEuNTYzNzgsIDEuODcyNDUiLCBcCi0gICAgICAgICAgIjAuMDgzMjc3LCAwLjM4ODIyMSwgMC42MzU1MTEsIDAuOTQ1NDQsIDEuMjU1MTcsIDEuNTYzNTUsIDEuODczOTciLCBcCi0gICAgICAgICAgIjAuMDg3NzgxLCAwLjM4OTA1NywgMC42MzU0NDMsIDAuOTQ2NDc1LCAxLjI1NDcyLCAxLjU2MzI0LCAxLjg3MzYzIiwgXAotICAgICAgICAgICIwLjA5MzQzNiwgMC4zOTA1MTQsIDAuNjM1NjI3LCAwLjk0NDc3NywgMS4yNTQxLCAxLjU2MzQ0LCAxLjg3Mzc4IiwgXAotICAgICAgICAgICIwLjEwMzMyOCwgMC4zOTQwODMsIDAuNjM4MzUzLCAwLjk0NTAxNiwgMS4yNTQxNSwgMS41NjYzMSwgMS44NzIzOSIsIFwKLSAgICAgICAgICAiMC4xMTE4NDUsIDAuMzk5MTkzLCAwLjY0MTI2NiwgMC45NDYyNTUsIDEuMjU0NzEsIDEuNTY0MTksIDEuODczMTgiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQ0ODQsIDAuMTc3ODk2LCAwLjI4Mzk2MSwgMC40MTY0NywgMC41NDkyMTEsIDAuNjgxNDY0LCAwLjgxMzc4NCIsIFwKLSAgICAgICAgICAiMC4wNTIzODIsIDAuMTg1NDg3LCAwLjI5MTU2MSwgMC40MjM5NywgMC41NTY0OCwgMC42ODg3NTIsIDAuODIxMDE4IiwgXAotICAgICAgICAgICIwLjA2MjA0NSwgMC4xOTQ5NjUsIDAuMzAxMDk1LCAwLjQzMzQxLCAwLjU2NTg2NSwgMC42OTg0MzQsIDAuODMwNjM0IiwgXAotICAgICAgICAgICIwLjA3MjI1NiwgMC4yMDQ4MjgsIDAuMzEwOTYyLCAwLjQ0MzUyNiwgMC41NzYwNzIsIDAuNzA4NzcyLCAwLjg0MDk2NCIsIFwKLSAgICAgICAgICAiMC4wODA5OCwgMC4yMTQ1ODYsIDAuMzIwNTcxLCAwLjQ1MzAwMywgMC41ODU2MjYsIDAuNzE3ODQ2LCAwLjg1MDI2IiwgXAotICAgICAgICAgICIwLjA5Mjc5NywgMC4yMzA0MDUsIDAuMzM2MjkxLCAwLjQ2ODU2MywgMC42MDEyMzMsIDAuNzMzMzQyLCAwLjg2NTkwNyIsIFwKLSAgICAgICAgICAiMC4xMDE2NzEsIDAuMjQ0NjAzLCAwLjM0OTk5MSwgMC40ODIxNTMsIDAuNjEzOTU1LCAwLjc0NzAyLCAwLjg3OTQxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4MTA1MiwgMC4zNTQ1MzUsIDAuNTczMzQ2LCAwLjg0NjkxLCAxLjEyMDk2LCAxLjM5NDI4LCAxLjY2NzYiLCBcCi0gICAgICAgICAgIjAuMDgxODgsIDAuMzU0NDg3LCAwLjU3MzQ3OSwgMC44NDcwNjQsIDEuMTIwNTQsIDEuMzk0NDcsIDEuNjY3NSIsIFwKLSAgICAgICAgICAiMC4wODc1MzgsIDAuMzU0NTQ2LCAwLjU3MzQzMSwgMC44NDcwNDcsIDEuMTIwNjUsIDEuMzk0NDgsIDEuNjY3NTEiLCBcCi0gICAgICAgICAgIjAuMDk1MDE0LCAwLjM1NTM4MywgMC41NzM0MjksIDAuODQ3MDM0LCAxLjEyMDY1LCAxLjM5NDMxLCAxLjY2NzY4IiwgXAotICAgICAgICAgICIwLjEwMzcxMywgMC4zNTgyMTgsIDAuNTczNDg2LCAwLjg0Njk2OCwgMS4xMjA2OCwgMS4zOTQ0MiwgMS42Njc1NyIsIFwKLSAgICAgICAgICAiMC4xMTc4MTQsIDAuMzY1Mjk4LCAwLjU3NjY1NiwgMC44NDcxNiwgMS4xMjA2MSwgMS4zOTQzNiwgMS42NjgxOCIsIFwKLSAgICAgICAgICAiMC4xMjk0NjcsIDAuMzczNjcsIDAuNTgxNjM3LCAwLjg0ODgyOSwgMS4xMjA3MiwgMS4zOTQ0LCAxLjY2Nzc5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDE2MSwgMC4xODM1NTMsIDAuMjk3NTUxLCAwLjQ0MTYyLCAwLjU4NDUxNiwgMC43Mjg0NSwgMC44NzExMjUiLCBcCi0gICAgICAgICAgIjAuMDQ5MTIzLCAwLjE5MTIzMSwgMC4zMDU1NzMsIDAuNDQ4NzMyLCAwLjU5MjA4OSwgMC43MzY1MTEsIDAuODc5MjA4IiwgXAotICAgICAgICAgICIwLjA1ODgyMSwgMC4yMDA1NjUsIDAuMzE0ODUyLCAwLjQ1ODIwMywgMC42MDE2MDUsIDAuNzQ1NjA4LCAwLjg4ODk4NyIsIFwKLSAgICAgICAgICAiMC4wNjg2MzYsIDAuMjEwMjM2LCAwLjMyNDU4NCwgMC40NjgxNTcsIDAuNjExNDQ0LCAwLjc1NDM2NywgMC44OTg3NjUiLCBcCi0gICAgICAgICAgIjAuMDc2ODc3LCAwLjIyMDAxNywgMC4zMzQ0NzYsIDAuNDc3ODA3LCAwLjYyMTExOSwgMC43NjQ1NDYsIDAuOTA4NTY2IiwgXAotICAgICAgICAgICIwLjA4Nzc2LCAwLjIzNTY1NywgMC4zNDk4OTIsIDAuNDkyNTQ1LCAwLjYzNjM5NywgMC43Nzk2ODEsIDAuOTIzMzU5IiwgXAotICAgICAgICAgICIwLjA5NTYyNiwgMC4yNDk0NDgsIDAuMzYzNDQ4LCAwLjUwNjYwMywgMC42NDk5NjYsIDAuNzkzMzM0LCAwLjkzNjQ1OSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODE5NiwgMC4zODQ0OTksIDAuNjI3MzIyLCAwLjkzMTg1LCAxLjIzNTc1LCAxLjUzOTkxLCAxLjg0MzEyIiwgXAotICAgICAgICAgICIwLjA4Mjc3NywgMC4zODQ0MjcsIDAuNjI3NzMzLCAwLjkzMTg3LCAxLjIzNTM3LCAxLjU0MDMxLCAxLjg0MzUyIiwgXAotICAgICAgICAgICIwLjA4ODc1NiwgMC4zODQzOTQsIDAuNjI3ODE5LCAwLjkzMTU2NSwgMS4yMzUzOSwgMS41NDAwNCwgMS44NDM1NCIsIFwKLSAgICAgICAgICAiMC4wOTY0OTcsIDAuMzg1MTIzLCAwLjYyNzgwNiwgMC45MzE3MDgsIDEuMjM1NDcsIDEuNTQwMSwgMS44NDM2OCIsIFwKLSAgICAgICAgICAiMC4xMDUwNzIsIDAuMzg3NzMzLCAwLjYyNzc1NywgMC45MzE0NzksIDEuMjM1ODksIDEuNTM5NDYsIDEuODQ0MTQiLCBcCi0gICAgICAgICAgIjAuMTE5MTIxLCAwLjM5NDcwNCwgMC42MzA0NDksIDAuOTMxNTM0LCAxLjIzNTQ0LCAxLjU0MDE3LCAxLjg0MzczIiwgXAotICAgICAgICAgICIwLjEzMDExOCwgMC40MDI3MDcsIDAuNjM0ODMyLCAwLjkzMjY4OCwgMS4yMzU5OSwgMS41NDAzMywgMS44NDQ3MSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzc5MzYsIDAuMTcwOTM5LCAwLjI3Njk5NiwgMC40MDk1MDQsIDAuNTQxNzM0LCAwLjY3NDA2OCwgMC44MDYzODIiLCBcCi0gICAgICAgICAgIjAuMDQ0NDUzLCAwLjE3Nzc0MSwgMC4yODM4ODcsIDAuNDE2MjUzLCAwLjU0ODY0LCAwLjY4MDk0NiwgMC44MTMzMjQiLCBcCi0gICAgICAgICAgIjAuMDUyNTgyLCAwLjE4NjIxLCAwLjI5MjI0NCwgMC40MjQ2NjgsIDAuNTU3MDM1LCAwLjY4OTM4NSwgMC44MjE2ODIiLCBcCi0gICAgICAgICAgIjAuMDU5ODkyLCAwLjE5NDQwMSwgMC4zMDA2NzgsIDAuNDMzMTAyLCAwLjU2NTQ1NSwgMC42OTc3OTMsIDAuODMwMTY4IiwgXAotICAgICAgICAgICIwLjA2NjI2NiwgMC4yMDI0NzYsIDAuMzA5MTU0LCAwLjQ0MTU4NiwgMC41NzM5MzUsIDAuNzA2MjkyLCAwLjgzODYwMyIsIFwKLSAgICAgICAgICAiMC4wNzQ5NTEsIDAuMjE2MTEsIDAuMzIyNDg2LCAwLjQ1NTAxLCAwLjU4NzM3NSwgMC43MTk3MDUsIDAuODUyMDM0IiwgXAotICAgICAgICAgICIwLjA4MTM1OCwgMC4yMjc0MjQsIDAuMzMzNjI2LCAwLjQ2Njg1OSwgMC41OTk0NjgsIDAuNzMxODEsIDAuODY0MiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzE1ODEsIDAuMzQ0OTA0LCAwLjU2MzY2NiwgMC44MzczNDMsIDEuMTEwNzgsIDEuMzg0MzcsIDEuNjYyNTUiLCBcCi0gICAgICAgICAgIjAuMDcyMzc4LCAwLjM0NDg5NywgMC41NjM3MTUsIDAuODM3MDAzLCAxLjExMDUsIDEuMzgzOTMsIDEuNjU3ODkiLCBcCi0gICAgICAgICAgIjAuMDc2Njc4LCAwLjM0NDkwNSwgMC41NjM1NiwgMC44MzcwNywgMS4xMTA1NywgMS4zODQxMSwgMS42NTc0NCIsIFwKLSAgICAgICAgICAiMC4wODI0OCwgMC4zNDU2NzYsIDAuNTYzNjA4LCAwLjgzNzE5MSwgMS4xMTA0NCwgMS4zODQ0MywgMS42NTgxNCIsIFwKLSAgICAgICAgICAiMC4wODkxNjUsIDAuMzQ3Njg0LCAwLjU2MzkyNSwgMC44MzcxMzMsIDEuMTEwNDQsIDEuMzgzOTIsIDEuNjU4MDUiLCBcCi0gICAgICAgICAgIjAuMTAwMTc1LCAwLjM1MzM4MywgMC41NjYyMTcsIDAuODM3MzU0LCAxLjExMDQ0LCAxLjM4Mzg5LCAxLjY1NzM3IiwgXAotICAgICAgICAgICIwLjEwOTI2MiwgMC4zNTkwNDcsIDAuNTY5ODE5LCAwLjgzODcyNCwgMS4xMTA5NCwgMS4zODQwMSwgMS42NTgwNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQwMzczLCAwLjE4NTUyMywgMC4zMDEzMDIsIDAuNDQ2NDY5LCAwLjU5MjI0NywgMC43MzgyNjIsIDAuODgzMzEiLCBcCi0gICAgICAgICAgIjAuMDQ3ODY1LCAwLjE5MzA4NiwgMC4zMDg5MTEsIDAuNDU0Mzk4LCAwLjU5OTM0LCAwLjc0NTg3NywgMC44OTEiLCBcCi0gICAgICAgICAgIjAuMDU3NjY5LCAwLjIwMjY2OSwgMC4zMTg0OTMsIDAuNDYzMzU1LCAwLjYwOTA4OCwgMC43NTUyODgsIDAuOTAwMzIxIiwgXAotICAgICAgICAgICIwLjA2NzE2NCwgMC4yMTIwODQsIDAuMzI3ODQ0LCAwLjQ3MjcyNywgMC42MTg0ODIsIDAuNzY0MjY5LCAwLjkwOTcxNyIsIFwKLSAgICAgICAgICAiMC4wNzUzMzUsIDAuMjIxNzg2LCAwLjMzNzU5NCwgMC40ODI2NDcsIDAuNjI4MjQ5LCAwLjc3MzkwNywgMC45MTk1ODgiLCBcCi0gICAgICAgICAgIjAuMDg1NjcsIDAuMjM3NDE5LCAwLjM1MzE2OCwgMC40OTc2MSwgMC42NDM2MzksIDAuNzg5MTYzLCAwLjkzNTE2OCIsIFwKLSAgICAgICAgICAiMC4wOTM2OSwgMC4yNTExODYsIDAuMzY2NywgMC41MTE2NDQsIDAuNjU3MzUsIDAuODAyNzgxLCAwLjk0ODM3Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4MDkyMSwgMC4zODg2MDksIDAuNjM1NTU1LCAwLjk0NTExMiwgMS4yNTQ1NSwgMS41NjQyNCwgMS44NzI4OCIsIFwKLSAgICAgICAgICAiMC4wODE3NTQsIDAuMzg4NDM5LCAwLjYzNTk2MiwgMC45NDUzNDEsIDEuMjU0OTksIDEuNTY0MTksIDEuODcyODciLCBcCi0gICAgICAgICAgIjAuMDg3NjY5LCAwLjM4ODUxOCwgMC42MzU3ODQsIDAuOTQ1MjYzLCAxLjI1MzkxLCAxLjU2MzY4LCAxLjg3NDA5IiwgXAotICAgICAgICAgICIwLjA5NTc3MywgMC4zODkxNTcsIDAuNjM2NTksIDAuOTQ1MjQ0LCAxLjI1NDEsIDEuNTYzNDUsIDEuODcyNjQiLCBcCi0gICAgICAgICAgIjAuMTA0NDYzLCAwLjM5MTcwMiwgMC42MzU0MTcsIDAuOTQ0NzU0LCAxLjI1NDA3LCAxLjU2MzQzLCAxLjg3Mzk0IiwgXAotICAgICAgICAgICIwLjExODYyNiwgMC4zOTg0MDcsIDAuNjM4OTc4LCAwLjk0NDcyMiwgMS4yNTQ3OSwgMS41NjQyMSwgMS44NzI4MyIsIFwKLSAgICAgICAgICAiMC4xMjg5MDQsIDAuNDA2Mjg3LCAwLjY0MzM3NSwgMC45NDYyNDIsIDEuMjU0ODgsIDEuNTY0MTcsIDEuODc1ODkiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM2NDAyLCAwLjE2OTQyMywgMC4yNzU1MTUsIDAuNDA3OTIxLCAwLjU0MDIwNCwgMC42NzI2MDcsIDAuODA0ODQ2IiwgXAotICAgICAgICAgICIwLjA0NDAwMywgMC4xNzcxNzUsIDAuMjgzMjk3LCAwLjQxNTY4MiwgMC41NDgwMTEsIDAuNjgwMzQ5LCAwLjgxMjY4MiIsIFwKLSAgICAgICAgICAiMC4wNTM4NjksIDAuMTg2ODI3LCAwLjI5MjkxMywgMC40MjUzMzMsIDAuNTU3NzEzLCAwLjY5MDAwNywgMC44MjI0NDUiLCBcCi0gICAgICAgICAgIjAuMDYyOTY2LCAwLjE5NjQ1NSwgMC4zMDI1MTYsIDAuNDM0OTAzLCAwLjU2NzIwNCwgMC42OTk1NSwgMC44MzE4NjIiLCBcCi0gICAgICAgICAgIjAuMDcwNzMzLCAwLjIwNjE3OSwgMC4zMTIyNDksIDAuNDQ0NjQ3LCAwLjU3NjkyMiwgMC43MDkyNDMsIDAuODQxNTE1IiwgXAotICAgICAgICAgICIwLjA4MDY4NCwgMC4yMjIwMzIsIDAuMzI3OTY3LCAwLjQ2MDI3LCAwLjU5MjUyMiwgMC43MjQ4MzIsIDAuODU3MTE0IiwgXAotICAgICAgICAgICIwLjA4ODYxLCAwLjIzNTk5OCwgMC4zNDE2NzgsIDAuNDczOTM5LCAwLjYwNTU1MiwgMC43Mzg0MzQsIDAuODcwNzM1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3MTU4LCAwLjM0NDg2NCwgMC41NjM2MTUsIDAuODM3NjY2LCAxLjExMDc4LCAxLjM4NDA0LCAxLjY1Nzg2IiwgXAotICAgICAgICAgICIwLjA3Mjg5OSwgMC4zNDQ4NTEsIDAuNTYzNjE5LCAwLjgzNzA1LCAxLjExMDQzLCAxLjM4Mzk0LCAxLjY1NzU1IiwgXAotICAgICAgICAgICIwLjA3OTE4MiwgMC4zNDQ4NjcsIDAuNTYzNjU3LCAwLjgzNjk3LCAxLjExMDc5LCAxLjM4Mzk5LCAxLjY1Nzc2IiwgXAotICAgICAgICAgICIwLjA4NzU4MywgMC4zNDU4NTEsIDAuNTYzNjEzLCAwLjgzNzAxNCwgMS4xMTA0NCwgMS4zODM5MywgMS42NTgwOCIsIFwKLSAgICAgICAgICAiMC4wOTY1NzIsIDAuMzQ4OTQsIDAuNTYzOTUyLCAwLjgzNzE5NSwgMS4xMTA2NSwgMS4zODM5MywgMS42NTc5NiIsIFwKLSAgICAgICAgICAiMC4xMTA3MzMsIDAuMzU2Mzk2LCAwLjU2NzMwNSwgMC44MzcxMzksIDEuMTEwNywgMS4zODM5MiwgMS42NTc5NCIsIFwKLSAgICAgICAgICAiMC4xMjEzNjQsIDAuMzY0OTA4LCAwLjU3MjIyNSwgMC44MzkxNDEsIDEuMTEwODYsIDEuMzgzOSwgMS42NTgwOSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDg2ODgsIDAuMDA4NjkzLCAwLjAwODY5MywgMC4wMDg2OTMsIDAuMDA4NjkzLCAwLjAwODY5MiwgMC4wMDg2OTIiLCBcCi0gICAgICAgICAgIjAuMDA4NjQ2LCAwLjAwODY3NSwgMC4wMDg2NzksIDAuMDA4NjgsIDAuMDA4NjgxLCAwLjAwODY4MSwgMC4wMDg2ODEiLCBcCi0gICAgICAgICAgIjAuMDA4NjI0LCAwLjAwODY2NywgMC4wMDg2NzMsIDAuMDA4Njc2LCAwLjAwODY3OCwgMC4wMDg2NzksIDAuMDA4NjgzIiwgXAotICAgICAgICAgICIwLjAwODYzNywgMC4wMDg2NjcsIDAuMDA4NjczLCAwLjAwODY3NiwgMC4wMDg2NzUsIDAuMDA4Njc5LCAwLjAwODY3OSIsIFwKLSAgICAgICAgICAiMC4wMDg2NzQsIDAuMDA4Njc3LCAwLjAwODY4LCAwLjAwODY4LCAwLjAwODY4MSwgMC4wMDg2ODEsIDAuMDA4NjgxIiwgXAotICAgICAgICAgICIwLjAwODc3OSwgMC4wMDg3MTQsIDAuMDA4NzA2LCAwLjAwODcsIDAuMDA4Njk3LCAwLjAwODY5MywgMC4wMDg2OTIiLCBcCi0gICAgICAgICAgIjAuMDA4OTIzLCAwLjAwODc2OSwgMC4wMDg3NDMsIDAuMDA4NzMxLCAwLjAwODcxOSwgMC4wMDg3MTMsIDAuMDA4NzA4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyMTcyLCAwLjAwMjE4LCAwLjAwMjE4LCAwLjAwMjE4LCAwLjAwMjE4LCAwLjAwMjE4LCAwLjAwMjE4IiwgXAotICAgICAgICAgICIwLjAwMjA4OSwgMC4wMDIxMzksIDAuMDAyMTQ2LCAwLjAwMjE1LCAwLjAwMjE1MSwgMC4wMDIxNTIsIDAuMDAyMTUzIiwgXAotICAgICAgICAgICIwLjAwMjA3NCwgMC4wMDIxMjYsIDAuMDAyMTM2LCAwLjAwMjE0MSwgMC4wMDIxNDQsIDAuMDAyMTQ2LCAwLjAwMjE0NyIsIFwKLSAgICAgICAgICAiMC4wMDIxMjEsIDAuMDAyMTMzLCAwLjAwMjEzOSwgMC4wMDIxNDMsIDAuMDAyMTQ1LCAwLjAwMjE0NiwgMC4wMDIxNDYiLCBcCi0gICAgICAgICAgIjAuMDAyMjA4LCAwLjAwMjE1OSwgMC4wMDIxNTUsIDAuMDAyMTU0LCAwLjAwMjE1MywgMC4wMDIxNTMsIDAuMDAyMTUxIiwgXAotICAgICAgICAgICIwLjAwMjQyNiwgMC4wMDIyMzMsIDAuMDAyMjA1LCAwLjAwMjE4OSwgMC4wMDIxOCwgMC4wMDIxNzUsIDAuMDAyMTciLCBcCi0gICAgICAgICAgIjAuMDAyNjU5LCAwLjAwMjMyMSwgMC4wMDIyNjYsIDAuMDAyMjM0LCAwLjAwMjIxNywgMC4wMDIyMDQsIDAuMDAyMTk2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNzcxMywgMC4wMDc3MzQsIDAuMDA3NzM2LCAwLjAwNzczNiwgMC4wMDc3MzcsIDAuMDA3NzM3LCAwLjAwNzczNyIsIFwKLSAgICAgICAgICAiMC4wMDc2NDMsIDAuMDA3NzIsIDAuMDA3NzMxLCAwLjAwNzczNywgMC4wMDc3MzgsIDAuMDA3NzQsIDAuMDA3NzQxIiwgXAotICAgICAgICAgICIwLjAwNzU5NSwgMC4wMDc2OTgsIDAuMDA3NzE2LCAwLjAwNzcyNiwgMC4wMDc3MzEsIDAuMDA3NzM1LCAwLjAwNzczNyIsIFwKLSAgICAgICAgICAiMC4wMDc1OTEsIDAuMDA3Njg5LCAwLjAwNzcwOSwgMC4wMDc3MjEsIDAuMDA3NzMxLCAwLjAwNzczMiwgMC4wMDc3MzQiLCBcCi0gICAgICAgICAgIjAuMDA3NjIxLCAwLjAwNzY4OSwgMC4wMDc3MDgsIDAuMDA3NzIxLCAwLjAwNzcyOCwgMC4wMDc3MzEsIDAuMDA3NzM1IiwgXAotICAgICAgICAgICIwLjAwNzcyMSwgMC4wMDc3MTQsIDAuMDA3NzI4LCAwLjAwNzczMywgMC4wMDc3MzcsIDAuMDA3NzM5LCAwLjAwNzc0MSIsIFwKLSAgICAgICAgICAiMC4wMDc4NTgsIDAuMDA3NzU5LCAwLjAwNzc1NiwgMC4wMDc3NTUsIDAuMDA3NzUxLCAwLjAwNzc1NCwgMC4wMDc3NTMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDIxNjUsIDAuMDAyMTc1LCAwLjAwMjE3NiwgMC4wMDIxNzYsIDAuMDAyMTc2LCAwLjAwMjE3NiwgMC4wMDIxNzUiLCBcCi0gICAgICAgICAgIjAuMDAyMDk5LCAwLjAwMjEzNywgMC4wMDIxNDMsIDAuMDAyMTQ2LCAwLjAwMjE0NywgMC4wMDIxNDgsIDAuMDAyMTUiLCBcCi0gICAgICAgICAgIjAuMDAyMTYsIDAuMDAyMTUxLCAwLjAwMjE1LCAwLjAwMjE1LCAwLjAwMjE1LCAwLjAwMjE0OSwgMC4wMDIxNDkiLCBcCi0gICAgICAgICAgIjAuMDAyMjM4LCAwLjAwMjE4LCAwLjAwMjE2NCwgMC4wMDIxNiwgMC4wMDIxNTcsIDAuMDAyMTU1LCAwLjAwMjE1NCIsIFwKLSAgICAgICAgICAiMC4wMDI0MTgsIDAuMDAyMjMxLCAwLjAwMjIwNiwgMC4wMDIxOSwgMC4wMDIxOCwgMC4wMDIxNzQsIDAuMDAyMTY5IiwgXAotICAgICAgICAgICIwLjAwMjc3NCwgMC4wMDIzNTYsIDAuMDAyMjg4LCAwLjAwMjI1MywgMC4wMDIyMywgMC4wMDIyMTQsIDAuMDAyMjA0IiwgXAotICAgICAgICAgICIwLjAwMzExMywgMC4wMDI0ODksIDAuMDAyMzgzLCAwLjAwMjMxNywgMC4wMDIyODUsIDAuMDAyMjY0LCAwLjAwMjI0NiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDYxNzIsIDAuMDA2MTg0LCAwLjAwNjE4NSwgMC4wMDYxODUsIDAuMDA2MTg1LCAwLjAwNjE4NSwgMC4wMDYxODQiLCBcCi0gICAgICAgICAgIjAuMDA2MTQ4LCAwLjAwNjE2OCwgMC4wMDYxNzIsIDAuMDA2MTc0LCAwLjAwNjE3MywgMC4wMDYxNzIsIDAuMDA2MTcyIiwgXAotICAgICAgICAgICIwLjAwNjIxOCwgMC4wMDYxODcsIDAuMDA2MTgyLCAwLjAwNjE3OSwgMC4wMDYxNzcsIDAuMDA2MTc3LCAwLjAwNjE3NiIsIFwKLSAgICAgICAgICAiMC4wMDYzMjMsIDAuMDA2MjE4LCAwLjAwNjIwNCwgMC4wMDYxOTQsIDAuMDA2MTksIDAuMDA2MTg1LCAwLjAwNjE4MyIsIFwKLSAgICAgICAgICAiMC4wMDY0NzksIDAuMDA2MjY3LCAwLjAwNjIzOCwgMC4wMDYyMTksIDAuMDA2MjA3LCAwLjAwNjIwMSwgMC4wMDYxOTYiLCBcCi0gICAgICAgICAgIjAuMDA2ODEyLCAwLjAwNjM4NCwgMC4wMDYzMTYsIDAuMDA2Mjc3LCAwLjAwNjI1NiwgMC4wMDYyNCwgMC4wMDYyMyIsIFwKLSAgICAgICAgICAiMC4wMDcxMzQsIDAuMDA2NDk5LCAwLjAwNjQwMywgMC4wMDYzMzgsIDAuMDA2MjkzLCAwLjAwNjI4NSwgMC4wMDYyNTkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDA1MTksIDAuMDAwNTU1LCAwLjAwMDU1OSwgMC4wMDA1NiwgMC4wMDA1NjEsIDAuMDAwNTYyLCAwLjAwMDU2MiIsIFwKLSAgICAgICAgICAiMC4wMDA0NDQsIDAuMDAwNTY3LCAwLjAwMDU4MywgMC4wMDA1OTEsIDAuMDAwNTk2LCAwLjAwMDU5OCwgMC4wMDA2IiwgXAotICAgICAgICAgICIwLjAwMDQxLCAwLjAwMDU1LCAwLjAwMDU3NCwgMC4wMDA1ODcsIDAuMDAwNTk0LCAwLjAwMDU5OSwgMC4wMDA2MDIiLCBcCi0gICAgICAgICAgIjAuMDAwNDQ4LCAwLjAwMDU0OSwgMC4wMDA1NzMsIDAuMDAwNTg3LCAwLjAwMDU5NCwgMC4wMDA1OTksIDAuMDAwNjAyIiwgXAotICAgICAgICAgICIwLjAwMDUzNSwgMC4wMDA1NjMsIDAuMDAwNTgzLCAwLjAwMDU5NCwgMC4wMDA2LCAwLjAwMDYwNCwgMC4wMDA2MDciLCBcCi0gICAgICAgICAgIjAuMDAwNzYxLCAwLjAwMDYxOSwgMC4wMDA2MjEsIDAuMDAwNjIxLCAwLjAwMDYyMSwgMC4wMDA2MjEsIDAuMDAwNjIxIiwgXAotICAgICAgICAgICIwLjAwMTAwOSwgMC4wMDA2OTMsIDAuMDAwNjY3LCAwLjAwMDY2LCAwLjAwMDY1MywgMC4wMDA2NDgsIDAuMDAwNjQ0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNTE1LCAwLjAwNTE3NywgMC4wMDUxOCwgMC4wMDUxODIsIDAuMDA1MTgzLCAwLjAwNTE4MiwgMC4wMDUxODIiLCBcCi0gICAgICAgICAgIjAuMDA1MDk3LCAwLjAwNTE2NywgMC4wMDUxNzYsIDAuMDA1MTgyLCAwLjAwNTE4NSwgMC4wMDUxODYsIDAuMDA1MTg3IiwgXAotICAgICAgICAgICIwLjAwNTExNywgMC4wMDUxNjcsIDAuMDA1MTc0LCAwLjAwNTE4LCAwLjAwNTE4MywgMC4wMDUxODUsIDAuMDA1MTg1IiwgXAotICAgICAgICAgICIwLjAwNTI0NCwgMC4wMDUyMDIsIDAuMDA1MTk5LCAwLjAwNTE5NywgMC4wMDUxOTYsIDAuMDA1MTk0LCAwLjAwNTE5NCIsIFwKLSAgICAgICAgICAiMC4wMDUzODksIDAuMDA1MjM2LCAwLjAwNTIyNiwgMC4wMDUyMTYsIDAuMDA1MjExLCAwLjAwNTIwNywgMC4wMDUyMDQiLCBcCi0gICAgICAgICAgIjAuMDA1Njk1LCAwLjAwNTMzOCwgMC4wMDUyODksIDAuMDA1MjY2LCAwLjAwNTI0NCwgMC4wMDUyMzUsIDAuMDA1MjI4IiwgXAotICAgICAgICAgICIwLjAwNTkyOSwgMC4wMDU0NDIsIDAuMDA1MzY3LCAwLjAwNTMyNywgMC4wMDUyOTksIDAuMDA1MjcyLCAwLjAwNTI1OSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDUyLCAwLjAwMDU1OSwgMC4wMDA1NjMsIDAuMDAwNTY1LCAwLjAwMDU2NiwgMC4wMDA1NjcsIDAuMDAwNTY3IiwgXAotICAgICAgICAgICIwLjAwMDQ3NiwgMC4wMDA1NzgsIDAuMDAwNTkyLCAwLjAwMDU5OSwgMC4wMDA2MDMsIDAuMDAwNjA2LCAwLjAwMDYwNyIsIFwKLSAgICAgICAgICAiMC4wMDA1MjYsIDAuMDAwNTg1LCAwLjAwMDU5OCwgMC4wMDA2MDUsIDAuMDAwNjA5LCAwLjAwMDYxMiwgMC4wMDA2MTMiLCBcCi0gICAgICAgICAgIjAuMDAwNjEyLCAwLjAwMDYxLCAwLjAwMDYxNCwgMC4wMDA2MTcsIDAuMDAwNjE4LCAwLjAwMDYyLCAwLjAwMDYyIiwgXAotICAgICAgICAgICIwLjAwMDc4MywgMC4wMDA2NDgsIDAuMDAwNjQ0LCAwLjAwMDYzOCwgMC4wMDA2MzUsIDAuMDAwNjMzLCAwLjAwMDYzMiIsIFwKLSAgICAgICAgICAiMC4wMDExNjYsIDAuMDAwNzQ4LCAwLjAwMDcwNSwgMC4wMDA2ODksIDAuMDAwNjc1LCAwLjAwMDY2NiwgMC4wMDA2NiIsIFwKLSAgICAgICAgICAiMC4wMDE1MjEsIDAuMDAwODYyLCAwLjAwMDc4OCwgMC4wMDA3NTIsIDAuMDAwNzI0LCAwLjAwMDcwOCwgMC4wMDA2OTYiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBBT0kyMlg0ICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKEFPSTIyWDQpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMS4yOTM4OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAzNTM4Nzc7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAzNTI3ODc7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAzNTM4Nzc7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyMDk3LCAwLjAwMjA5NSwgMC4wMDIwOTUsIDAuMDAyMDk1LCAwLjAwMjA5NCwgMC4wMDIwOTUsIDAuMDAyMDk0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyMjEyLCAwLjAwMjEzNSwgMC4wMDIxMjUsIDAuMDAyMTA4LCAwLjAwMjEwNywgMC4wMDIxMDQsIDAuMDAyMTAzIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihBMSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAzMzgzMzg7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAzMzY1ODY7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAzMzgzMzg7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxMjc2LCAwLjAwMTI3MywgMC4wMDEyNzMsIDAuMDAxMjcyLCAwLjAwMTI3MiwgMC4wMDEyNzIsIDAuMDAxMjcyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyMzgyLCAwLjAwMjM4MywgMC4wMDIzODQsIDAuMDAyMzg0LCAwLjAwMjM4NCwgMC4wMDIzODQsIDAuMDAyMzgzIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAzNTM5OTk7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAzNTM5OTk7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAzNTMzNjg7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyMDk4LCAwLjAwMjA5NywgMC4wMDIwOTYsIDAuMDAyMDk2LCAwLjAwMjA5NiwgMC4wMDIwOTUsIDAuMDAyMDk1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyMjExLCAwLjAwMjEzNCwgMC4wMDIxMjUsIDAuMDAyMTEzLCAwLjAwMjEwNiwgMC4wMDIxMDIsIDAuMDAyMTAxIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCMSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAzMzg3MTE7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAzMzg2Njk7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAzMzg3MTE7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxMjc1LCAwLjAwMTI3NCwgMC4wMDEyNzQsIDAuMDAxMjc0LCAwLjAwMTI3NCwgMC4wMDEyNzMsIDAuMDAxMjcyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyMzgxLCAwLjAwMjM4MiwgMC4wMDIzODIsIDAuMDAyMzgzLCAwLjAwMjM4MywgMC4wMDIzODMsIDAuMDAyMzgzIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuNzE0OTY2OwotICAgIGZ1bmN0aW9uIDogIighKChCMCBCMSkrKEEwIEExKSkpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzM0NjgsIDAuMTM0NDMyLCAwLjIzNTE2MywgMC4zMDgwMzEsIDAuNDI0MTMyLCAwLjUyNjE3MSwgMC42NzEwODUiLCBcCi0gICAgICAgICAgIjAuMDQwNDA2LCAwLjE0MTQxOSwgMC4yNDIwNDgsIDAuMzE1MDA2LCAwLjQzMTE2MiwgMC41MzMwMTMsIDAuNjc4Mzk3IiwgXAotICAgICAgICAgICIwLjA0NzcxMSwgMC4xNDg4NjgsIDAuMjQ5NTksIDAuMzIyNDAyLCAwLjQzODUxMywgMC41NDAzOTcsIDAuNjg1OTE5IiwgXAotICAgICAgICAgICIwLjA1MzUyMSwgMC4xNTYxNDEsIDAuMjU2ODY3LCAwLjMyOTYyMSwgMC40NDU4OTYsIDAuNTQ3NjgxLCAwLjY5Mjc4NCIsIFwKLSAgICAgICAgICAiMC4wNTgxODUsIDAuMTYzNTA0LCAwLjI2NDIzMSwgMC4zMzY3ODMsIDAuNDUzMjUsIDAuNTU0NzUxLCAwLjcwMDQ4NyIsIFwKLSAgICAgICAgICAiMC4wNjQzOTQsIDAuMTc1MTM3LCAwLjI3NTg2OSwgMC4zNDgzMjMsIDAuNDY0NjUxLCAwLjU2NjU4NiwgMC43MTE5MDIiLCBcCi0gICAgICAgICAgIjAuMDY4NzYzLCAwLjE4NTI4LCAwLjI4NTk4MywgMC4zNTg0MTksIDAuNDc0OTg3LCAwLjU3NjU1MiwgMC43MjE5OTkiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTE2MjYsIDAuMjY1NzA4LCAwLjQ4MTgzOCwgMC42MzYyOTMsIDAuODgzNDgzLCAxLjA5OTU2LCAxLjQwNzgzIiwgXAotICAgICAgICAgICIwLjA1MjI5NywgMC4yNjU1NDMsIDAuNDgxODU1LCAwLjYzNjI4NywgMC44ODM0OTUsIDEuMDk5MjksIDEuNDA4NTMiLCBcCi0gICAgICAgICAgIjAuMDU1OTYsIDAuMjY1ODU4LCAwLjQ4MTY0OCwgMC42MzYyNzEsIDAuODgyOTksIDEuMDk5MSwgMS40MDg0OSIsIFwKLSAgICAgICAgICAiMC4wNjEzNDcsIDAuMjY3MzIzLCAwLjQ4MTk0MiwgMC42MzYyNDcsIDAuODgzMDU0LCAxLjA5OTEyLCAxLjQwODczIiwgXAotICAgICAgICAgICIwLjA2NzQzNSwgMC4yNzAwMzEsIDAuNDgyODUzLCAwLjYzNjEwOCwgMC44ODMyMjksIDEuMDk5MzEsIDEuNDA3NzgiLCBcCi0gICAgICAgICAgIjAuMDc2NDgzLCAwLjI3NjA4NiwgMC40ODYxNTYsIDAuNjM4MTkyLCAwLjg4MzM4NCwgMS4wOTkyOCwgMS40MDg2OCIsIFwKLSAgICAgICAgICAiMC4wODQxOTgsIDAuMjgyMzk4LCAwLjQ4OTYzOSwgMC42NDExNDgsIDAuODg0Nzg2LCAxLjEwMDAyLCAxLjQwODYiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzIxMDksIDAuMTI2NTUyLCAwLjIyMDI0MywgMC4yODcxMTEsIDAuMzk0MTIzLCAwLjQ4NzcwNywgMC42MjE3NiIsIFwKLSAgICAgICAgICAiMC4wMzg1NzQsIDAuMTMzMTI1LCAwLjIyNjg2MSwgMC4yOTM2MzQsIDAuNDAwNjYsIDAuNDk0MzczLCAwLjYyNzg2NSIsIFwKLSAgICAgICAgICAiMC4wNDY2MzgsIDAuMTQxMzkzLCAwLjIzNTIyNSwgMC4zMDIwMzQsIDAuNDA5MjM2LCAwLjUwMjY0MywgMC42MzYzMzgiLCBcCi0gICAgICAgICAgIjAuMDUzNTQ5LCAwLjE0OTU5NiwgMC4yNDM3MjIsIDAuMzEwNTU5LCAwLjQxNzY0NCwgMC41MTE0LCAwLjY0NDg0IiwgXAotICAgICAgICAgICIwLjA1OTM3MywgMC4xNTc4OSwgMC4yNTIwMzksIDAuMzE4OTU4LCAwLjQyNTk1MiwgMC41MTk4MDUsIDAuNjUzMzcyIiwgXAotICAgICAgICAgICIwLjA2NzA5MSwgMC4xNzEyNjgsIDAuMjY0OTY4LCAwLjMzMjE1NiwgMC40MzkwNzUsIDAuNTMyMjU2LCAwLjY2NjQwMyIsIFwKLSAgICAgICAgICAiMC4wNzMzMTgsIDAuMTgyNzk1LCAwLjI3NjgwNCwgMC4zNDM1MTMsIDAuNDUxMTY1LCAwLjU0NTE1LCAwLjY3OTE3MyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1MjU4NywgMC4yNDU3MywgMC40MzkxMjQsIDAuNTc3NDAxLCAwLjc5ODQzNiwgMC45OTE5MTgsIDEuMjY4MzQiLCBcCi0gICAgICAgICAgIjAuMDUzODEzLCAwLjI0NTc2OSwgMC40MzkxOTksIDAuNTc3MzA2LCAwLjc5ODQyMiwgMC45OTE4OTQsIDEuMjY4MjQiLCBcCi0gICAgICAgICAgIjAuMDU4NzEyLCAwLjI0NjA3MSwgMC40MzkxOTksIDAuNTc3MzU4LCAwLjc5ODM5OSwgMC45OTE4MTYsIDEuMjY4NDYiLCBcCi0gICAgICAgICAgIjAuMDY1MDYyLCAwLjI0ODA2OCwgMC40MzkzNiwgMC41NzczNDksIDAuNzk4NDIzLCAwLjk5MTgyNCwgMS4yNjc4NCIsIFwKLSAgICAgICAgICAiMC4wNzE2MjksIDAuMjUxNDM4LCAwLjQ0MDQ5NywgMC41Nzc2MDIsIDAuNzk4MjU5LCAwLjk5MTg2OSwgMS4yNjg0MiIsIFwKLSAgICAgICAgICAiMC4wODE3NjksIDAuMjU4NDU3LCAwLjQ0NDMzMSwgMC41ODAwNDQsIDAuNzk4NjU2LCAwLjk5MTc3NywgMS4yNjg0MSIsIFwKLSAgICAgICAgICAiMC4wOTAxMjUsIDAuMjY1NTQ3LCAwLjQ0OTU1MiwgMC41ODMxNTUsIDAuODAwMzczLCAwLjk5MjUwMywgMS4yNjg0NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzE1NTksIDAuMTMzMDU1LCAwLjIzNDMxMiwgMC4zMDY3MiwgMC40MjMxNzMsIDAuNTI1NDIxLCAwLjY3MDY3NCIsIFwKLSAgICAgICAgICAiMC4wMzgzNCwgMC4xNDAwMDYsIDAuMjQxMTk0LCAwLjMxMzgzMywgMC40MzAyMTMsIDAuNTMyMzMsIDAuNjc4MTI0IiwgXAotICAgICAgICAgICIwLjA0NTM5LCAwLjE0NzM5NCwgMC4yNDg2NzMsIDAuMzIxMTc4LCAwLjQzNzUyNSwgMC41Mzk3NTMsIDAuNjg1MjI3IiwgXAotICAgICAgICAgICIwLjA1MDksIDAuMTU0NTU3LCAwLjI1NTg4NCwgMC4zMjgzNDcsIDAuNDQ0ODc4LCAwLjU0Njk1MywgMC42OTI1MzQiLCBcCi0gICAgICAgICAgIjAuMDU1MzEsIDAuMTYxODU5LCAwLjI2MzE3MSwgMC4zMzU1NTUsIDAuNDUyMTU4LCAwLjU1Mzk1NCwgMC43MDAwNTEiLCBcCi0gICAgICAgICAgIjAuMDYwODg1LCAwLjE3MzM4NywgMC4yNzQ3MjIsIDAuMzQ3MTg5LCAwLjQ2MzUyNiwgMC41NjU3MjUsIDAuNzExNDcyIiwgXAotICAgICAgICAgICIwLjA2NTAyMSwgMC4xODM0NTQsIDAuMjg0NzY3LCAwLjM1NzI1NSwgMC40NzM2OTksIDAuNTc1NjMzLCAwLjcyMTU1MiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0OTE5LCAwLjI2NDAwOCwgMC40ODAyOTMsIDAuNjM1MDU4LCAwLjg4MzE3MSwgMS4wOTkzMywgMS40MTExOCIsIFwKLSAgICAgICAgICAiMC4wNDk5MjMsIDAuMjYzOTY0LCAwLjQ4MDM1OSwgMC42MzUxMjksIDAuODgzMDk3LCAxLjA5OTI0LCAxLjQwOTY1IiwgXAotICAgICAgICAgICIwLjA1MzcxMywgMC4yNjQwODEsIDAuNDc5OTk4LCAwLjYzNTAzMSwgMC44ODIzODUsIDEuMDk5MjMsIDEuNDA5NDYiLCBcCi0gICAgICAgICAgIjAuMDU5MzAyLCAwLjI2NTU2MywgMC40ODA5NTEsIDAuNjM0ODgyLCAwLjg4MjQ5NSwgMS4wOTkxOSwgMS40MDg2OCIsIFwKLSAgICAgICAgICAiMC4wNjUzNjIsIDAuMjY4Mjk4LCAwLjQ4MTg0MywgMC42MzQ5NDQsIDAuODgyNTI2LCAxLjEwMTE0LCAxLjQwODgiLCBcCi0gICAgICAgICAgIjAuMDc0NDgyLCAwLjI3NDM4MywgMC40ODUwNCwgMC42Mzc4MDMsIDAuODg0MTkyLCAxLjEwMTAzLCAxLjQxMTE0IiwgXAotICAgICAgICAgICIwLjA4MTk0MiwgMC4yODA3MywgMC40ODgxMjUsIDAuNjQwNzExLCAwLjg4NDA4NSwgMS4xMDEzMSwgMS40MDkzOCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzMDYzMywgMC4xMjUwMzUsIDAuMjE4NzcyLCAwLjI4NTYyNSwgMC4zOTI2NTEsIDAuNDg2Mzc2LCAwLjYyMDI5IiwgXAotICAgICAgICAgICIwLjAzODE0OSwgMC4xMzI2MTgsIDAuMjI2MzM4LCAwLjI5MzIxOCwgMC40MDAxNiwgMC40OTM2MDcsIDAuNjI3MzExIiwgXAotICAgICAgICAgICIwLjA0NzgyNCwgMC4xNDIxNzIsIDAuMjM1ODA2LCAwLjMwMjc2NywgMC40MDk2MzcsIDAuNTAzMzM2LCAwLjYzNzA0NyIsIFwKLSAgICAgICAgICAiMC4wNTY0NDksIDAuMTUyMSwgMC4yNDU3NiwgMC4zMTI2MjQsIDAuNDE5NzQ1LCAwLjUxMzIxMywgMC42NDY4NjIiLCBcCi0gICAgICAgICAgIjAuMDYzNDk4LCAwLjE2MTc3NywgMC4yNTUzMzcsIDAuMzIyMTgzLCAwLjQyOTIxMywgMC41MjI4NjQsIDAuNjU2NDU2IiwgXAotICAgICAgICAgICIwLjA3MjUxOSwgMC4xNzc4MDUsIDAuMjcxMDQ1LCAwLjMzNzkxMywgMC40NDQ4NjksIDAuNTM4Mjg3LCAwLjY3MjA4OSIsIFwKLSAgICAgICAgICAiMC4wODAxNjEsIDAuMTkxOTIyLCAwLjI4NDg5NywgMC4zNTE1OTYsIDAuNDU4NDQxLCAwLjU1MjA3MiwgMC42ODU3NzgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTI2MDcsIDAuMjQ1NzgxLCAwLjQzOTExNiwgMC41NzczOTgsIDAuNzk4NDQxLCAwLjk5MTg3NywgMS4yNjgzNSIsIFwKLSAgICAgICAgICAiMC4wNTQ2MTUsIDAuMjQ1NzMsIDAuNDM5MTkyLCAwLjU3NzM3OSwgMC43OTg0MjksIDAuOTkxOTQsIDEuMjY4MzMiLCBcCi0gICAgICAgICAgIjAuMDYxNzQ4LCAwLjI0NjE4OSwgMC40MzkxOTgsIDAuNTc3MzU4LCAwLjc5ODQxLCAwLjk5MTkwMiwgMS4yNjgyOCIsIFwKLSAgICAgICAgICAiMC4wNzAzNzgsIDAuMjQ5MDExLCAwLjQzOTMsIDAuNTc3MzUsIDAuNzk4MzMyLCAwLjk5MTk1LCAxLjI2ODQ0IiwgXAotICAgICAgICAgICIwLjA3OTE4NywgMC4yNTM3ODIsIDAuNDQwOTY3LCAwLjU3NzUxLCAwLjc5ODQ2OSwgMC45OTE4OSwgMS4yNjg0OCIsIFwKLSAgICAgICAgICAiMC4wOTEwMzEsIDAuMjYzNjk4LCAwLjQ0NjQzLCAwLjU4MDYyNSwgMC43OTg2MjksIDAuOTkxODk2LCAxLjI2ODQ0IiwgXAotICAgICAgICAgICIwLjEwMDcyMywgMC4yNzM4ODUsIDAuNDUzMDU2LCAwLjU4NTQwNiwgMC44MDExNCwgMC45OTIzMjcsIDEuMjY4NDMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjAiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDI3MjgsIDAuMTI4Mjc0LCAwLjIyOTA0LCAwLjMwMDc3NywgMC40MTU3MzIsIDAuNTE2ODg3LCAwLjY2MTM2MyIsIFwKLSAgICAgICAgICAiMC4wMzQ4NzUsIDAuMTM1OTM1LCAwLjIzNjY1MSwgMC4zMDgzNTEsIDAuNDIzNzQ0LCAwLjUyNDI0MiwgMC42NjkxNDEiLCBcCi0gICAgICAgICAgIjAuMDQ0NjcsIDAuMTQ1MzcsIDAuMjQ2MDksIDAuMzE3ODM2LCAwLjQzMjk5MSwgMC41MzM1MTYsIDAuNjc4Njc1IiwgXAotICAgICAgICAgICIwLjA1MjQ4NiwgMC4xNTQ5NjgsIDAuMjU1NTc1LCAwLjMyNzQwNiwgMC40NDI3MTIsIDAuNTQzNDQyLCAwLjY4NzY4MSIsIFwKLSAgICAgICAgICAiMC4wNTgzODcsIDAuMTY0ODQyLCAwLjI2NTQ3OSwgMC4zMzcyMzgsIDAuNDUyNCwgMC41NTM0NzMsIDAuNjk3NSIsIFwKLSAgICAgICAgICAiMC4wNjY4NzksIDAuMTgwNjUzLCAwLjI4MDk3NiwgMC4zNTI3ODEsIDAuNDY3OTEsIDAuNTY4NzYxLCAwLjcxMzcxNCIsIFwKLSAgICAgICAgICAiMC4wNzI5MTksIDAuMTk0NjQsIDAuMjk0NjY5LCAwLjM2NjMxOCwgMC40ODExMjIsIDAuNTgyMzIsIDAuNzI3MDM5Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDUxMzU3LCAwLjI2NTE5NiwgMC40Nzg3MTgsIDAuNjMyMjUsIDAuODc3MjUxLCAxLjA5MjI2LCAxLjM5ODc1IiwgXAotICAgICAgICAgICIwLjA1MzYxMywgMC4yNjUyMTMsIDAuNDc4NzAzLCAwLjYzMjIzNywgMC44Nzc2NDEsIDEuMDkyODIsIDEuMzk4NzQiLCBcCi0gICAgICAgICAgIjAuMDYxMDExLCAwLjI2NTM4OSwgMC40Nzg3NDQsIDAuNjMyMjY5LCAwLjg3NzUwMSwgMS4wOTIwMSwgMS4zOTkwOCIsIFwKLSAgICAgICAgICAiMC4wNjk1MDEsIDAuMjY4MjI5LCAwLjQ3ODc3MiwgMC42MzE5MSwgMC44Nzc2MDksIDEuMDkxOTgsIDEuMzk5NDUiLCBcCi0gICAgICAgICAgIjAuMDc4MjIzLCAwLjI3MjY2NiwgMC40Nzk4ODUsIDAuNjMyMjIsIDAuODc3NjI4LCAxLjA5MjM5LCAxLjM5ODY0IiwgXAotICAgICAgICAgICIwLjA4ODg1OSwgMC4yODI1NTYsIDAuNDg1MTg2LCAwLjYzNDc5OSwgMC44Nzc1NjgsIDEuMDkyMjIsIDEuMzk5MzEiLCBcCi0gICAgICAgICAgIjAuMDk3Nzg0LCAwLjI5MjYxMiwgMC40OTE2ODYsIDAuNjM5MDA2LCAwLjg3OTEzNiwgMS4wOTIwOCwgMS4zOTkwNSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyNDMzNywgMC4xMTg1NDUsIDAuMjEyMzgsIDAuMjc5MzQzLCAwLjM4NjI5MiwgMC40Nzk4MiwgMC42MTM1MDkiLCBcCi0gICAgICAgICAgIjAuMDMwNzQ3LCAwLjEyNTI5NywgMC4yMTkyMTUsIDAuMjg2MTU0LCAwLjM5MzE0LCAwLjQ4Njc0NSwgMC42MjAzNjMiLCBcCi0gICAgICAgICAgIjAuMDM3OTY2LCAwLjEzMzU3NywgMC4yMjc1OTQsIDAuMjk0NTE4LCAwLjQwMTUyMywgMC40OTUxMzIsIDAuNjI4Nzc1IiwgXAotICAgICAgICAgICIwLjA0MzY5NiwgMC4xNDE4MTEsIDAuMjM2MDQ3LCAwLjMwMzAyOSwgMC40MTAwNTcsIDAuNTAzNjM5LCAwLjYzNzM0IiwgXAotICAgICAgICAgICIwLjA0ODUsIDAuMTUwMDI4LCAwLjI0NDMzMiwgMC4zMTE1NjEsIDAuNDE4NTkyLCAwLjUxMjE3LCAwLjY0NTkwMyIsIFwKLSAgICAgICAgICAiMC4wNTQ3NiwgMC4xNjMzNTgsIDAuMjU3MjUzLCAwLjMyNDI0NCwgMC40MzE2MTQsIDAuNTI0MTk1LCAwLjY1ODkzMiIsIFwKLSAgICAgICAgICAiMC4wNTk0NDUsIDAuMTc0Njg4LCAwLjI2OTQzLCAwLjMzNTk1MiwgMC40NDM1NzQsIDAuNTM3MjE0LCAwLjY3MDk0MyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0MzkwMiwgMC4yMzcxMDksIDAuNDMwNTA1LCAwLjU2ODY2NSwgMC43ODk3NjEsIDAuOTgzMTA4LCAxLjI1OTM4IiwgXAotICAgICAgICAgICIwLjA0NTcyNCwgMC4yMzcwOTYsIDAuNDMwNDgsIDAuNTY4NjMxLCAwLjc4OTY2MywgMC45ODMxNjYsIDEuMjU5NDciLCBcCi0gICAgICAgICAgIjAuMDUxMzM3LCAwLjIzNzQ4OSwgMC40MzA0OTIsIDAuNTY4NjA4LCAwLjc4OTczOCwgMC45ODMxNzcsIDEuMjU5NzYiLCBcCi0gICAgICAgICAgIjAuMDU4MjE2LCAwLjIzOTY4OSwgMC40MzA2NCwgMC41Njg2MDksIDAuNzg5NzU5LCAwLjk4MzEsIDEuMjU5NDQiLCBcCi0gICAgICAgICAgIjAuMDY0ODUzLCAwLjI0MzE2OCwgMC40MzIwNjcsIDAuNTY4OTgxLCAwLjc4OTY0LCAwLjk4MzEsIDEuMjU5NzciLCBcCi0gICAgICAgICAgIjAuMDc0NzY1LCAwLjI1MDUxMywgMC40MzU3NDgsIDAuNTcxMTQ1LCAwLjc5MDIxNSwgMC45ODMwNzQsIDEuMjU5NDYiLCBcCi0gICAgICAgICAgIjAuMDgyOTgzLCAwLjI1NzgyLCAwLjQ0MTI5OSwgMC41NzQ2NDIsIDAuNzkxODIyLCAwLjk4Mzc5MywgMS4yNTk1MyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjU1MzUsIDAuMTI3NjI4LCAwLjIyOTYwNCwgMC4zMDIwMjYsIDAuNDE4NTEzLCAwLjUyMDE4LCAwLjY2NTk2NSIsIFwKLSAgICAgICAgICAiMC4wMzMwMzUsIDAuMTM1MjksIDAuMjM3MDUxLCAwLjMwOTc3NywgMC40MjY1MjcsIDAuNTI4MTgsIDAuNjczMTU5IiwgXAotICAgICAgICAgICIwLjA0MjU4MSwgMC4xNDQ5NiwgMC4yNDY4MDksIDAuMzE5NDQ4LCAwLjQzNjAyNSwgMC41MzczMTcsIDAuNjgzMTAxIiwgXAotICAgICAgICAgICIwLjA0OTYxOSwgMC4xNTQyOTUsIDAuMjU2MDk0LCAwLjMyODcxOCwgMC40NDUzNTUsIDAuNTQ3Mjk5LCAwLjY5MjA4MyIsIFwKLSAgICAgICAgICAiMC4wNTU2OTQsIDAuMTY0MTUyLCAwLjI2NTkxNCwgMC4zMzg2MTMsIDAuNDU1MTcsIDAuNTU2ODM3LCAwLjcwMjA0MiIsIFwKLSAgICAgICAgICAiMC4wNjM1MjcsIDAuMTc5OTIyLCAwLjI4MTQ0OSwgMC4zNTQwODcsIDAuNDcwNjM3LCAwLjU3MjM4MywgMC43MTc5NDkiLCBcCi0gICAgICAgICAgIjAuMDY5MDA2LCAwLjE5Mzg4MiwgMC4yOTUxMDksIDAuMzY3NTkyLCAwLjQ4Mzk0OCwgMC41ODU5NDQsIDAuNzMxMjIxIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQ5MTkxLCAwLjI2NTYxMywgMC40ODE5MDEsIDAuNjM2MTc4LCAwLjg4MzIsIDEuMDk5OTEsIDEuNDA5MDEiLCBcCi0gICAgICAgICAgIjAuMDUxNjIxLCAwLjI2NTYyMiwgMC40ODE2NTIsIDAuNjM2MTU1LCAwLjg4MzQzLCAxLjA5OTU1LCAxLjQwOTUiLCBcCi0gICAgICAgICAgIjAuMDU5MjY5LCAwLjI2NTczMiwgMC40ODE2MjQsIDAuNjM2MjczLCAwLjg4MzQxNiwgMS4wOTkwOSwgMS40MDkwOCIsIFwKLSAgICAgICAgICAiMC4wNjgzMTcsIDAuMjY4NjEyLCAwLjQ4MTg4OSwgMC42MzYzMjUsIDAuODgzMzUxLCAxLjA5OTU0LCAxLjQwODQ4IiwgXAotICAgICAgICAgICIwLjA3NTk1NiwgMC4yNzMxNDcsIDAuNDgyODQ2LCAwLjYzNTk4MSwgMC44ODMzNjQsIDEuMDk5NDMsIDEuNDA4NzQiLCBcCi0gICAgICAgICAgIjAuMDg2OTcyLCAwLjI4Mjk5MywgMC40ODgwODUsIDAuNjM4NzkyLCAwLjg4MzM1OSwgMS4wOTk1MiwgMS40MDkyNSIsIFwKLSAgICAgICAgICAiMC4wOTU4MTEsIDAuMjkzMDUyLCAwLjQ5NDYyMywgMC42NDMwMzUsIDAuODg0NzkzLCAxLjA5OTQsIDEuNDA4ODQiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjI4NTksIDAuMTE3MDg2LCAwLjIxMDkzNywgMC4yNzc4NDksIDAuMzg0ODI2LCAwLjQ3ODQ0NCwgMC42MTIwMTkiLCBcCi0gICAgICAgICAgIjAuMDMwNDIyLCAwLjEyNDgzNSwgMC4yMTg3MjMsIDAuMjg1NjkyLCAwLjM5MjY4MSwgMC40ODYyMjMsIDAuNjE5ODUxIiwgXAotICAgICAgICAgICIwLjAzOTUwMiwgMC4xMzQzMDgsIDAuMjI4MjA2LCAwLjI5NTEyLCAwLjQwMjE1NywgMC40OTU2NjIsIDAuNjI5MzM1IiwgXAotICAgICAgICAgICIwLjA0NjIwOCwgMC4xNDQzMDQsIDAuMjM4MTY5LCAwLjMwNTE1NiwgMC40MTIwNDgsIDAuNTA1NjE3LCAwLjYzOTMxOCIsIFwKLSAgICAgICAgICAiMC4wNTE4NDcsIDAuMTUzOTczLCAwLjI0NzcsIDAuMzE0NTM5LCAwLjQyMTQ3NCwgMC41MTUwMzUsIDAuNjQ4NzA3IiwgXAotICAgICAgICAgICIwLjA1OTA4MywgMC4xNjk4NzMsIDAuMjYzNDA4LCAwLjMzMDI3LCAwLjQzNzE3NywgMC41MzA3MDksIDAuNjY0MzE4IiwgXAotICAgICAgICAgICIwLjA2NDQxOSwgMC4xODM5MTcsIDAuMjc3MzU0LCAwLjM0Mzk3NywgMC40NTA5MjEsIDAuNTQ0MzUsIDAuNjc3OTE0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQzODk4LCAwLjIzNzEyOSwgMC40MzA0ODQsIDAuNTY4NzEsIDAuNzg5NjU1LCAwLjk4MzE5LCAxLjI1OTM1IiwgXAotICAgICAgICAgICIwLjA0NjgzOSwgMC4yMzcxMTgsIDAuNDMwNDgyLCAwLjU2ODY3MywgMC43ODk2ODgsIDAuOTgzMTM1LCAxLjI1OTQ1IiwgXAotICAgICAgICAgICIwLjA1NDgzOCwgMC4yMzc1ODIsIDAuNDMwNDcsIDAuNTY4Njc3LCAwLjc4OTgzMSwgMC45ODMwODgsIDEuMjU5NDQiLCBcCi0gICAgICAgICAgIjAuMDY0MDI5LCAwLjI0MDc1MiwgMC40MzA1ODYsIDAuNTY4NjIsIDAuNzg5NjgxLCAwLjk4MzEyOCwgMS4yNTkzOCIsIFwKLSAgICAgICAgICAiMC4wNzIwNDIsIDAuMjQ1ODk1LCAwLjQzMjM3LCAwLjU2ODkzMywgMC43ODk3NzEsIDAuOTgzMDgsIDEuMjU5NjkiLCBcCi0gICAgICAgICAgIjAuMDgzODMsIDAuMjU2MDQ0LCAwLjQzODA2MywgMC41NzIxMTUsIDAuNzg5OTg4LCAwLjk4MzE5MywgMS4yNTk3MiIsIFwKLSAgICAgICAgICAiMC4wOTM0MzIsIDAuMjY2NDY3LCAwLjQ0NTA4MiwgMC41NzcwNDUsIDAuNzkyMzkxLCAwLjk4MzYzNCwgMS4yNTk0NiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxNjQzNiwgMC4wMTY0NTYsIDAuMDE2NDU4LCAwLjAxNjQ1OSwgMC4wMTY0NTgsIDAuMDE2NDU3LCAwLjAxNjQ1NyIsIFwKLSAgICAgICAgICAiMC4wMTYzMjksIDAuMDE2NDEzLCAwLjAxNjQyNCwgMC4wMTY0MjgsIDAuMDE2NDMxLCAwLjAxNjQzMiwgMC4wMTY0MzUiLCBcCi0gICAgICAgICAgIjAuMDE2Mjk4LCAwLjAxNjM5MSwgMC4wMTY0MSwgMC4wMTY0MTEsIDAuMDE2NDIxLCAwLjAxNjQyMywgMC4wMTY0MiIsIFwKLSAgICAgICAgICAiMC4wMTYzMzksIDAuMDE2Mzg1LCAwLjAxNjQxMiwgMC4wMTY0MTcsIDAuMDE2NDI0LCAwLjAxNjQyNCwgMC4wMTY0MjciLCBcCi0gICAgICAgICAgIjAuMDE2NDQxLCAwLjAxNjQyOCwgMC4wMTY0MzMsIDAuMDE2NDM0LCAwLjAxNjQzNSwgMC4wMTY0MzMsIDAuMDE2NDM4IiwgXAotICAgICAgICAgICIwLjAxNjc1MiwgMC4wMTY1MzYsIDAuMDE2NTAyLCAwLjAxNjQ5LCAwLjAxNjQ4LCAwLjAxNjQ3MSwgMC4wMTY0NjQiLCBcCi0gICAgICAgICAgIjAuMDE3MTQ0LCAwLjAxNjY4NiwgMC4wMTY2MDYsIDAuMDE2NTc1LCAwLjAxNjU0MywgMC4wMTY1MTgsIDAuMDE2NTA3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDM5MywgMC4wMDM5NTQsIDAuMDAzOTU3LCAwLjAwMzk1OCwgMC4wMDM5NTgsIDAuMDAzOTU4LCAwLjAwMzk1OCIsIFwKLSAgICAgICAgICAiMC4wMDM3MzIsIDAuMDAzODYzLCAwLjAwMzg4NiwgMC4wMDM4OTIsIDAuMDAzODk5LCAwLjAwMzkwMiwgMC4wMDM5MDQiLCBcCi0gICAgICAgICAgIjAuMDAzNzI5LCAwLjAwMzgzMywgMC4wMDM4NjQsIDAuMDAzODc0LCAwLjAwMzg4MywgMC4wMDM4ODgsIDAuMDAzODkxIiwgXAotICAgICAgICAgICIwLjAwMzg3NywgMC4wMDM4NTcsIDAuMDAzODc1LCAwLjAwMzg4MiwgMC4wMDM4ODcsIDAuMDAzODkxLCAwLjAwMzg5NCIsIFwKLSAgICAgICAgICAiMC4wMDQxMjYsIDAuMDAzOTM0LCAwLjAwMzkxOCwgMC4wMDM5MTQsIDAuMDAzOTExLCAwLjAwMzkwOSwgMC4wMDM5MDgiLCBcCi0gICAgICAgICAgIjAuMDA0NjcyLCAwLjAwNDEyOCwgMC4wMDQwNDMsIDAuMDA0MDIxLCAwLjAwMzk5LCAwLjAwMzk2MiwgMC4wMDM5NiIsIFwKLSAgICAgICAgICAiMC4wMDUyMzIsIDAuMDA0MzU2LCAwLjAwNDE5NCwgMC4wMDQxMzUsIDAuMDA0MDg0LCAwLjAwNDA1MywgMC4wMDQwMjIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTQ0OTUsIDAuMDE0NTY0LCAwLjAxNDU3MSwgMC4wMTQ1NzMsIDAuMDE0NTc0LCAwLjAxNDU3NSwgMC4wMTQ1NzYiLCBcCi0gICAgICAgICAgIjAuMDE0MzA2LCAwLjAxNDUyLCAwLjAxNDU1MywgMC4wMTQ1NjQsIDAuMDE0NTcyLCAwLjAxNDU3OCwgMC4wMTQ1ODIiLCBcCi0gICAgICAgICAgIjAuMDE0MjIzLCAwLjAxNDQ2NSwgMC4wMTQ1MTgsIDAuMDE0NTM3LCAwLjAxNDU1MywgMC4wMTQ1NjEsIDAuMDE0NTgzIiwgXAotICAgICAgICAgICIwLjAxNDI0NCwgMC4wMTQ0NDEsIDAuMDE0NTAyLCAwLjAxNDUyMiwgMC4wMTQ1NDEsIDAuMDE0NTUyLCAwLjAxNDU2MSIsIFwKLSAgICAgICAgICAiMC4wMTQzNiwgMC4wMTQ0NTMsIDAuMDE0NTA2LCAwLjAxNDUyNSwgMC4wMTQ1NDUsIDAuMDE0NTUxLCAwLjAxNDU2NCIsIFwKLSAgICAgICAgICAiMC4wMTQ2OCwgMC4wMTQ1MzIsIDAuMDE0NTUyLCAwLjAxNDU2MiwgMC4wMTQ1NywgMC4wMTQ1NzcsIDAuMDE0NTg1IiwgXAotICAgICAgICAgICIwLjAxNTAzOSwgMC4wMTQ2NjIsIDAuMDE0NjM4LCAwLjAxNDYzMywgMC4wMTQ2MjYsIDAuMDE0NjIyLCAwLjAxNDYxOCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzOTE3LCAwLjAwMzk0OCwgMC4wMDM5NTIsIDAuMDAzOTU0LCAwLjAwMzk1NCwgMC4wMDM5NTMsIDAuMDAzOTU0IiwgXAotICAgICAgICAgICIwLjAwMzc2NywgMC4wMDM4NjUsIDAuMDAzODgzLCAwLjAwMzg5LCAwLjAwMzg5OSwgMC4wMDM5MDIsIDAuMDAzOTAzIiwgXAotICAgICAgICAgICIwLjAwMzk1NSwgMC4wMDM4OTgsIDAuMDAzOTA0LCAwLjAwMzkwNCwgMC4wMDM5MDQsIDAuMDAzOTAzLCAwLjAwMzkwNCIsIFwKLSAgICAgICAgICAiMC4wMDQxNzYsIDAuMDAzOTU5LCAwLjAwMzkzNCwgMC4wMDM5MzEsIDAuMDAzOTI1LCAwLjAwMzkyMSwgMC4wMDM5MTciLCBcCi0gICAgICAgICAgIjAuMDA0NzAxLCAwLjAwNDEzLCAwLjAwNDA0MiwgMC4wMDQwMTgsIDAuMDAzOTksIDAuMDAzOTczLCAwLjAwMzk1NyIsIFwKLSAgICAgICAgICAiMC4wMDU1NTIsIDAuMDA0NDQ4LCAwLjAwNDI1MywgMC4wMDQxODEsIDAuMDA0MTI1LCAwLjAwNDA4NywgMC4wMDQwNDkiLCBcCi0gICAgICAgICAgIjAuMDA2MDg1LCAwLjAwNDc4NiwgMC4wMDQ0OSwgMC4wMDQzNzMsIDAuMDA0MjYyLCAwLjAwNDIxNCwgMC4wMDQxNTciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTE3OTMsIDAuMDExODMzLCAwLjAxMTgzNiwgMC4wMTE4MzcsIDAuMDExODM4LCAwLjAxMTgzOCwgMC4wMTE4MzciLCBcCi0gICAgICAgICAgIjAuMDExNzE4LCAwLjAxMTc4OSwgMC4wMTE4MDMsIDAuMDExODA2LCAwLjAxMTgwOSwgMC4wMTE4MTEsIDAuMDExODExIiwgXAotICAgICAgICAgICIwLjAxMTg1NSwgMC4wMTE4NDcsIDAuMDExODM3LCAwLjAxMTgzMiwgMC4wMTE4MjcsIDAuMDExODI1LCAwLjAxMTgyMyIsIFwKLSAgICAgICAgICAiMC4wMTIyMDYsIDAuMDExOTM5LCAwLjAxMTg5NiwgMC4wMTE4NzcsIDAuMDExODYsIDAuMDExODUzLCAwLjAxMTg0MiIsIFwKLSAgICAgICAgICAiMC4wMTI2NjcsIDAuMDEyMDY4LCAwLjAxMTk3LCAwLjAxMTk0NCwgMC4wMTE5MTMsIDAuMDExODkyLCAwLjAxMTg3NyIsIFwKLSAgICAgICAgICAiMC4wMTMyNDYsIDAuMDEyMzQyLCAwLjAxMjE2NCwgMC4wMTIwOTMsIDAuMDEyMDM1LCAwLjAxMTk5NywgMC4wMTE5NDkiLCBcCi0gICAgICAgICAgIjAuMDEzOTUyLCAwLjAxMjY1OSwgMC4wMTIzNzgsIDAuMDEyMjY0LCAwLjAxMjE1NiwgMC4wMTIwOTcsIDAuMDEyMDUzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDA4NzQsIDAuMDAwOTk0LCAwLjAwMTAwNywgMC4wMDEwMTEsIDAuMDAxMDE0LCAwLjAwMTAxNiwgMC4wMDEwMTciLCBcCi0gICAgICAgICAgIjAuMDAwNjQ0LCAwLjAwMDk4NiwgMC4wMDEwMzgsIDAuMDAxMDU1LCAwLjAwMTA2OSwgMC4wMDEwNzcsIDAuMDAxMDgzIiwgXAotICAgICAgICAgICIwLjAwMDYyMywgMC4wMDA5NCwgMC4wMDEwMTIsIDAuMDAxMDM3LCAwLjAwMTA1OSwgMC4wMDEwNzEsIDAuMDAxMDgxIiwgXAotICAgICAgICAgICIwLjAwMDc4MywgMC4wMDA5NCwgMC4wMDEwMSwgMC4wMDEwMzQsIDAuMDAxMDU4LCAwLjAwMTA3LCAwLjAwMTA4MiIsIFwKLSAgICAgICAgICAiMC4wMDEwNTEsIDAuMDAwOTg3LCAwLjAwMTAzNiwgMC4wMDEwNTYsIDAuMDAxMDczLCAwLjAwMTA4MywgMC4wMDEwOTIiLCBcCi0gICAgICAgICAgIjAuMDAxNjg0LCAwLjAwMTE0NSwgMC4wMDExMjksIDAuMDAxMTI1LCAwLjAwMTEzMSwgMC4wMDExMjUsIDAuMDAxMTI3IiwgXAotICAgICAgICAgICIwLjAwMjMyNCwgMC4wMDEzNSwgMC4wMDEyNTMsIDAuMDAxMjI1LCAwLjAwMTIxNiwgMC4wMDEyMDEsIDAuMDAxMTg4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA5ODQ3LCAwLjAwOTkzOSwgMC4wMDk5NDksIDAuMDA5OTUyLCAwLjAwOTk1MywgMC4wMDk5NTUsIDAuMDA5OTU3IiwgXAotICAgICAgICAgICIwLjAwOTcxMSwgMC4wMDk5MDEsIDAuMDA5OTMyLCAwLjAwOTk0MiwgMC4wMDk5NTMsIDAuMDA5OTU3LCAwLjAwOTk2MSIsIFwKLSAgICAgICAgICAiMC4wMDk4MTQsIDAuMDA5ODkzLCAwLjAwOTkyNSwgMC4wMDk5MzcsIDAuMDA5OTQ3LCAwLjAwOTk1NCwgMC4wMDk5NTciLCBcCi0gICAgICAgICAgIjAuMDEwMjExLCAwLjAwOTk5NSwgMC4wMDk5OTMsIDAuMDA5OTg5LCAwLjAwOTk4MywgMC4wMDk5ODMsIDAuMDA5OTgiLCBcCi0gICAgICAgICAgIjAuMDEwNDUzLCAwLjAxMDEwMSwgMC4wMTAwNTYsIDAuMDEwMDQ2LCAwLjAxMDAyNCwgMC4wMTAwMTcsIDAuMDEwMDA2IiwgXAotICAgICAgICAgICIwLjAxMTEzLCAwLjAxMDM0NCwgMC4wMTAyMTUsIDAuMDEwMTY3LCAwLjAxMDEzNCwgMC4wMTAwOSwgMC4wMTAwNjciLCBcCi0gICAgICAgICAgIjAuMDExNzkxLCAwLjAxMDY0LCAwLjAxMDQxMSwgMC4wMTAzMjMsIDAuMDEwMjU3LCAwLjAxMDIxNCwgMC4wMTAxNDgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDg2NiwgMC4wMDA5OTcsIDAuMDAxMDExLCAwLjAwMTAxNSwgMC4wMDEwMTksIDAuMDAxMDIxLCAwLjAwMTAyMiIsIFwKLSAgICAgICAgICAiMC4wMDA3MjcsIDAuMDAxMDA4LCAwLjAwMTA1MywgMC4wMDEwNjgsIDAuMDAxMDgxLCAwLjAwMTA4NywgMC4wMDEwOTMiLCBcCi0gICAgICAgICAgIjAuMDAwODIxLCAwLjAwMTAzLCAwLjAwMTA2NywgMC4wMDEwOCwgMC4wMDEwOTIsIDAuMDAxMDk5LCAwLjAwMTEwNCIsIFwKLSAgICAgICAgICAiMC4wMDExNzUsIDAuMDAxMDU1LCAwLjAwMTA4NywgMC4wMDEwOTgsIDAuMDAxMDk5LCAwLjAwMTExMywgMC4wMDExMTciLCBcCi0gICAgICAgICAgIjAuMDAxNTU5LCAwLjAwMTIwNCwgMC4wMDExODIsIDAuMDAxMTcxLCAwLjAwMTE2MSwgMC4wMDExNTYsIDAuMDAxMTUxIiwgXAotICAgICAgICAgICIwLjAwMjM5MSwgMC4wMDE0NDcsIDAuMDAxMzM2LCAwLjAwMTI5MywgMC4wMDEyNjgsIDAuMDAxMjQ1LCAwLjAwMTIyMiIsIFwKLSAgICAgICAgICAiMC4wMDMxNywgMC4wMDE3NiwgMC4wMDE1NDMsIDAuMDAxNDU3LCAwLjAwMTM5OCwgMC4wMDEzNTcsIDAuMDAxMzEzIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogQU9JMjJYTCAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChBT0kyMlhMKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMjAyOTAyOwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjQyOTY0OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDY0MTM4OTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2NDI5NjQ7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjk2LCAwLjAwMDI5NiwgMC4wMDAyOTYsIDAuMDAwMjk2LCAwLjAwMDI5NiwgMC4wMDAyOTYsIDAuMDAwMjk2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzE2LCAwLjAwMDMwNSwgMC4wMDAzLCAwLjAwMDI5OSwgMC4wMDAyOTcsIDAuMDAwMjk4LCAwLjAwMDI5OCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQTEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY3NDA3OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDY3MTc2MzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2NzQwNzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxMjYsIDAuMDAwMTI2LCAwLjAwMDEyNiwgMC4wMDAxMjYsIDAuMDAwMTI2LCAwLjAwMDEyNiwgMC4wMDAxMjYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAzMzcsIDAuMDAwMzM3LCAwLjAwMDMzOCwgMC4wMDAzMzcsIDAuMDAwMzM4LCAwLjAwMDMzOCwgMC4wMDAzMzgiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2NjI0MDM7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjYyNDAzOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDY2MTUxOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDI5NywgMC4wMDAyOTcsIDAuMDAwMjk2LCAwLjAwMDI5NiwgMC4wMDAyOTYsIDAuMDAwMjk2LCAwLjAwMDI5NiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDMxNSwgMC4wMDAzMDQsIDAuMDAwMzAxLCAwLjAwMDI5OCwgMC4wMDAyOTcsIDAuMDAwMjk3LCAwLjAwMDI5OCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQjEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY4OTIzMzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2ODkyMjk7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjg5MjMzOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDEyNSwgMC4wMDAxMjUsIDAuMDAwMTI1LCAwLjAwMDEyNSwgMC4wMDAxMjUsIDAuMDAwMTI1LCAwLjAwMDEyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDMzNywgMC4wMDAzMzcsIDAuMDAwMzM3LCAwLjAwMDMzNywgMC4wMDAzMzcsIDAuMDAwMzM3LCAwLjAwMDMzNyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjExMDIzNzsKLSAgICBmdW5jdGlvbiA6ICIoISgoQjAgQjEpKyhBMCBBMSkpKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTAiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExODczMywgMC4xMzc5MDMsIDAuMzEwNDE4LCAwLjU5ODI2MiwgMC44ODY0NTksIDEuNTU2MDEsIDEuOTQyMjkiLCBcCi0gICAgICAgICAgIjAuMTI1NzIzLCAwLjE0NDk5NywgMC4zMTc3OTQsIDAuNjA0OTc0LCAwLjg5Mjk2MiwgMS41NjQwOCwgMS45NDYzMSIsIFwKLSAgICAgICAgICAiMC4xMzI5NDIsIDAuMTUyMiwgMC4zMjQ4MTQsIDAuNjEzMDU0LCAwLjkwMDg5LCAxLjU3MzAzLCAxLjk1NDYyIiwgXAotICAgICAgICAgICIwLjEzOTg3LCAwLjE1OTA1OSwgMC4zMzE3NzMsIDAuNjE5NTczLCAwLjkwNjc4OCwgMS41Nzc4MywgMS45NjI0MiIsIFwKLSAgICAgICAgICAiMC4xNDY3ODIsIDAuMTY2MDg2LCAwLjMzODg2NiwgMC42MjYzNDUsIDAuOTE0OTk1LCAxLjU4NDM4LCAxLjk3MTAyIiwgXAotICAgICAgICAgICIwLjE1ODA0NywgMC4xNzcyODksIDAuMzUwMTQ4LCAwLjYzNzU4NywgMC45MjYzMDUsIDEuNTk3OSwgMS45NzkwMyIsIFwKLSAgICAgICAgICAiMC4xNjc2NjIsIDAuMTg3MDQ0LCAwLjM1OTU3LCAwLjY0NzQ0LCAwLjkzNDk3NSwgMS42MDYwNiwgMS45OTE0MyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMzAyMzgsIDAuMjcwOTYsIDAuNjM3NjQzLCAxLjI0ODc2LCAxLjg1OTAzLCAzLjI4ODM4LCA0LjA5OTkiLCBcCi0gICAgICAgICAgIjAuMjMwMzM2LCAwLjI3MTA0MywgMC42Mzc4MSwgMS4yNDc3MiwgMS44NTg1MiwgMy4yODMzLCA0LjEwMzY3IiwgXAotICAgICAgICAgICIwLjIzMDc3NywgMC4yNzExNDQsIDAuNjM3NDkzLCAxLjI0ODcsIDEuODU5MzQsIDMuMjg0NDIsIDQuMDk1OSIsIFwKLSAgICAgICAgICAiMC4yMzI1NDgsIDAuMjcyNzIxLCAwLjYzNzY5NywgMS4yNDc5OSwgMS44NTc5NSwgMy4yODQ0MiwgNC4wOTc0NiIsIFwKLSAgICAgICAgICAiMC4yMzU1MTgsIDAuMjc1Mzc2LCAwLjYzNzc5NywgMS4yNDc5NywgMS44NTk1NSwgMy4yODU5LCA0LjA5OTQ1IiwgXAotICAgICAgICAgICIwLjI0MjIyMywgMC4yODEyNTYsIDAuNjM5MjkzLCAxLjI0ODg0LCAxLjg1OTEyLCAzLjI4MzcxLCA0LjEwMTk1IiwgXAotICAgICAgICAgICIwLjI0OTE5MywgMC4yODc2MTUsIDAuNjQyMjYxLCAxLjI0OTIzLCAxLjg2MDM0LCAzLjI4MjA1LCA0LjA5NzgzIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwNjE4NywgMC4xMjMyMTMsIDAuMjc1Nzk5LCAwLjUzMDEwMywgMC43ODM0NTQsIDEuMzc2MzksIDEuNzE0NzQiLCBcCi0gICAgICAgICAgIjAuMTEyNDk3LCAwLjEyOTQ5NSwgMC4yODIxMzcsIDAuNTM2MjE0LCAwLjc4OTk3NywgMS4zODI1MywgMS43MjE5MSIsIFwKLSAgICAgICAgICAiMC4xMjAzNjMsIDAuMTM3NDM2LCAwLjI5MDA0NSwgMC41NDQwNjMsIDAuNzk4MDQ3LCAxLjM5MTEsIDEuNzI5NzkiLCBcCi0gICAgICAgICAgIjAuMTI4MzU4LCAwLjE0NTIyMiwgMC4yOTgwMjksIDAuNTUyMjAyLCAwLjgwNTk3NSwgMS4zOTk1MSwgMS43MzY4MSIsIFwKLSAgICAgICAgICAiMC4xMzY0NDcsIDAuMTUzMTksIDAuMzA1OTMsIDAuNTYwMjM2LCAwLjgxNDI1MSwgMS40MDYyMSwgMS43NDUzOSIsIFwKLSAgICAgICAgICAiMC4xNDkxNjEsIDAuMTY2MjMzLCAwLjMxODQ1OCwgMC41NzI4NjgsIDAuODI2NzYzLCAxLjQxOTQ4LCAxLjc1NzcxIiwgXAotICAgICAgICAgICIwLjE1OTY2MSwgMC4xNzcyNDMsIDAuMzI5NzYsIDAuNTg0MTE0LCAwLjgzODQ2NCwgMS40MzEzNCwgMS43NjkyNSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMDMyNTksIDAuMjM4MDY2LCAwLjU1MTU2MywgMS4wNzQwNCwgMS41OTU3OCwgMi44MTM2MiwgMy41MDk1MyIsIFwKLSAgICAgICAgICAiMC4yMDMyMTksIDAuMjM4MDcyLCAwLjU1MTQ2LCAxLjA3Mzg2LCAxLjU5NTk1LCAyLjgxMzksIDMuNTA5NTQiLCBcCi0gICAgICAgICAgIjAuMjA0MDQ0LCAwLjIzODUxMiwgMC41NTE0MDUsIDEuMDczOTksIDEuNTk1OTEsIDIuODEzNDQsIDMuNTA5NjUiLCBcCi0gICAgICAgICAgIjAuMjA2OTQ3LCAwLjI0MDY1NCwgMC41NTE1NzQsIDEuMDc0MDMsIDEuNTk1OTMsIDIuODEzNTYsIDMuNTA5NTYiLCBcCi0gICAgICAgICAgIjAuMjExMDMzLCAwLjI0NDIwNCwgMC41NTIwMzUsIDEuMDc0MDMsIDEuNTk1OTUsIDIuODEzNTUsIDMuNTA5ODQiLCBcCi0gICAgICAgICAgIjAuMjE5MTE2LCAwLjI1MTgwNiwgMC41NTQ2NDMsIDEuMDc0MDEsIDEuNTk2MDQsIDIuODEzNDYsIDMuNTA5MTQiLCBcCi0gICAgICAgICAgIjAuMjI3MzM3LCAwLjI1OTI1OSwgMC41NTg1ODMsIDEuMDc0MTQsIDEuNTk1OTcsIDIuODEzMzQsIDMuNTEwMzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExNjQ4OCwgMC4xMzU2MjYsIDAuMzA4MTkzLCAwLjU5NjEzNSwgMC44ODM1MDUsIDEuNTU0NDgsIDEuOTM4NDgiLCBcCi0gICAgICAgICAgIjAuMTIzNDE4LCAwLjE0MjY0NSwgMC4zMTUxMzYsIDAuNjAyNTk4LCAwLjg5MDk2LCAxLjU2MDY0LCAxLjk0NjM3IiwgXAotICAgICAgICAgICIwLjEzMDU5OCwgMC4xNDk4MDYsIDAuMzIyNzIyLCAwLjYwOTk5OCwgMC44OTczOTgsIDEuNTY4LCAxLjk1NDUyIiwgXAotICAgICAgICAgICIwLjEzNzUzLCAwLjE1NjY3MywgMC4zMjk0NjMsIDAuNjE2ODk5LCAwLjkwNTA3NywgMS41NzU1NSwgMS45NjAwNyIsIFwKLSAgICAgICAgICAiMC4xNDQzODcsIDAuMTYzNTY4LCAwLjMzNjUsIDAuNjI0MDQyLCAwLjkxMjY5NSwgMS41ODIwMSwgMS45Njg3MyIsIFwKLSAgICAgICAgICAiMC4xNTU1OTEsIDAuMTc0ODYyLCAwLjM0NzcyNywgMC42MzU1MzUsIDAuOTIyODIzLCAxLjU5MzcxLCAxLjk3ODQxIiwgXAotICAgICAgICAgICIwLjE2NTExNSwgMC4xODQ1NTcsIDAuMzU3MTY0LCAwLjY0NTEyMiwgMC45MzI3OTksIDEuNjA1MDcsIDEuOTg3MDUiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjI3LCAwLjI2NzYxNiwgMC42MzM5OTMsIDEuMjQ0NjgsIDEuODU0ODEsIDMuMjc5MjgsIDQuMDkzOCIsIFwKLSAgICAgICAgICAiMC4yMjcwMTksIDAuMjY3NzExLCAwLjYzNDAzOCwgMS4yNDUxNywgMS44NTUwOSwgMy4yODMxOSwgNC4wOTM5OCIsIFwKLSAgICAgICAgICAiMC4yMjczNzYsIDAuMjY3OTI3LCAwLjYzNDI1MiwgMS4yNDQxLCAxLjg1NzA5LCAzLjI4NDQ4LCA0LjA5NjI2IiwgXAotICAgICAgICAgICIwLjIyOTMyNiwgMC4yNjkzMjMsIDAuNjM0MjcsIDEuMjQ0NzMsIDEuODU0OTQsIDMuMjc5NTMsIDQuMDk0MiIsIFwKLSAgICAgICAgICAiMC4yMzI0MjMsIDAuMjcxODg3LCAwLjYzNDMwNiwgMS4yNDQ0LCAxLjg1NTkxLCAzLjI4MjQ4LCA0LjA5NTg5IiwgXAotICAgICAgICAgICIwLjIzOTEyMSwgMC4yNzgwMzgsIDAuNjM1OTc4LCAxLjI0NTExLCAxLjg1NTEyLCAzLjI4MjY1LCA0LjA5MzciLCBcCi0gICAgICAgICAgIjAuMjQ2MTExLCAwLjI4NDQ3OCwgMC42Mzg3NTksIDEuMjQ0OTMsIDEuODU1MjYsIDMuMjc5NywgNC4wOTQ4OCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDQ1MjYsIDAuMTIxNTIyLCAwLjI3NDA1NSwgMC41MjgyNDMsIDAuNzgyMDI3LCAxLjM3NDIzLCAxLjcxNDciLCBcCi0gICAgICAgICAgIjAuMTExOTY5LCAwLjEyODk0MSwgMC4yODE1MDYsIDAuNTM1NDc3LCAwLjc4OTM5OCwgMS4zODE3MSwgMS43MjExOCIsIFwKLSAgICAgICAgICAiMC4xMjE0NzQsIDAuMTM4NDU3LCAwLjI5MTAzMiwgMC41NDQ5NjQsIDAuNzk5MDQ1LCAxLjM5MjUzLCAxLjczMTY0IiwgXAotICAgICAgICAgICIwLjEzMDk5NSwgMC4xNDc5MzQsIDAuMzAwNDY2LCAwLjU1NDM2NywgMC44MDgzMzYsIDEuNDAxNTEsIDEuNzQwNzkiLCBcCi0gICAgICAgICAgIjAuMTQwODM2LCAwLjE1NzY4OCwgMC4zMTAwMTEsIDAuNTY0MDcsIDAuODE3NzQyLCAxLjQxMDM0LCAxLjc0OTM5IiwgXAotICAgICAgICAgICIwLjE1NjQ5OSwgMC4xNzMyMiwgMC4zMjUzNjEsIDAuNTc5MzI2LCAwLjgzMzAxNCwgMS40MjUyOCwgMS43NjQ3NyIsIFwKLSAgICAgICAgICAiMC4xNzAzOTQsIDAuMTg3MzA4LCAwLjMzODg0NCwgMC41OTI0MjksIDAuODQ2NDM4LCAxLjQzODgsIDEuNzc3MDYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjAzMjI4LCAwLjIzODEsIDAuNTUxNTY3LCAxLjA3Mzk4LCAxLjU5NTgsIDIuODEzNTQsIDMuNTA5NjMiLCBcCi0gICAgICAgICAgIjAuMjAzMjQ3LCAwLjIzODA3MywgMC41NTE0MzgsIDEuMDczODYsIDEuNTk1ODQsIDIuODEzNjQsIDMuNTA5NDkiLCBcCi0gICAgICAgICAgIjAuMjA0MzQyLCAwLjIzODU2MywgMC41NTE0MzMsIDEuMDczODUsIDEuNTk1OTcsIDIuODEzNjgsIDMuNTA5NTMiLCBcCi0gICAgICAgICAgIjAuMjA4MzksIDAuMjQxODEyLCAwLjU1MTU2NiwgMS4wNzM4NiwgMS41OTU5OSwgMi44MTM1NiwgMy41MDk1MyIsIFwKLSAgICAgICAgICAiMC4yMTQxNjEsIDAuMjQ2OTE2LCAwLjU1MTk3MSwgMS4wNzM5NiwgMS41OTU5NywgMi44MTM4MiwgMy41MDk1IiwgXAotICAgICAgICAgICIwLjIyNTM5NSwgMC4yNTcxNDUsIDAuNTU1NDIxLCAxLjA3MzYxLCAxLjU5NTkzLCAyLjgxMzgxLCAzLjUwOTY1IiwgXAotICAgICAgICAgICIwLjIzNjYyOCwgMC4yNjc1NDcsIDAuNTYwOTUxLCAxLjA3Mzc3LCAxLjU5NTkxLCAyLjgxMzQ0LCAzLjUwOTU0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTEwNywgMC4xMzAyODUsIDAuMzAyNzg1LCAwLjU5MDMyOSwgMC44Nzc1OTIsIDEuNTQ4MzgsIDEuOTMzNTYiLCBcCi0gICAgICAgICAgIjAuMTE4MzU3LCAwLjEzNzU1OCwgMC4zMTAyMTUsIDAuNTk3NjI1LCAwLjg4NDk5NywgMS41NTY4MiwgMS45NDIyNCIsIFwKLSAgICAgICAgICAiMC4xMjc2NiwgMC4xNDY4NDYsIDAuMzE5MzIsIDAuNjA2NzY5LCAwLjg5NDI3NywgMS41NjYxMSwgMS45NDkyOCIsIFwKLSAgICAgICAgICAiMC4xMzcyMjIsIDAuMTU2MzYzLCAwLjMyOTAyOSwgMC42MTY1OTQsIDAuOTAzNjUzLCAxLjU3NDUxLCAxLjk1OTg3IiwgXAotICAgICAgICAgICIwLjE0Njc4NCwgMC4xNjU5MTIsIDAuMzM4MjM5LCAwLjYyNTY5NywgMC45MTMwNjQsIDEuNTgzNzMsIDEuOTY4NTciLCBcCi0gICAgICAgICAgIjAuMTYyNDAzLCAwLjE4MTMyNCwgMC4zNTMzNjksIDAuNjQwNjk1LCAwLjkyNzgyMywgMS41OTg1NSwgMS45ODMyOSIsIFwKLSAgICAgICAgICAiMC4xNzYxOTQsIDAuMTk1MDIyLCAwLjM2NjU5OSwgMC42NTEyMzksIDAuOTQyMDU5LCAxLjYxMjgyLCAxLjk5NDc4Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIzMDI3LCAwLjI3MTA1OCwgMC42Mzc1MDUsIDEuMjQ4ODEsIDEuODYwNjMsIDMuMjg2MDUsIDQuMDk3NDUiLCBcCi0gICAgICAgICAgIjAuMjMwMzg1LCAwLjI3MTA4OCwgMC42Mzc4NjQsIDEuMjQ4NjQsIDEuODYwMjcsIDMuMjgzMzEsIDQuMTAwMjMiLCBcCi0gICAgICAgICAgIjAuMjMwOTcyLCAwLjI3MTM1MSwgMC42Mzc1OTUsIDEuMjQ4MzIsIDEuODYwNTQsIDMuMjg1MzIsIDQuMDk3MDQiLCBcCi0gICAgICAgICAgIjAuMjM0NTYxLCAwLjI3NDAxMSwgMC42Mzc2MDgsIDEuMjQ3OTcsIDEuODYwMzIsIDMuMjg2NiwgNC4wOTc3OSIsIFwKLSAgICAgICAgICAiMC4yMzk4NTUsIDAuMjc4NDYzLCAwLjYzNzY1NSwgMS4yNDc5OCwgMS44NTc5MywgMy4yODY2NCwgNC4wOTc1NyIsIFwKLSAgICAgICAgICAiMC4yNTA4MTUsIDAuMjg4MzM0LCAwLjY0MDI3NCwgMS4yNDg3NSwgMS44NjAwMiwgMy4yODE5OSwgNC4wOTc3MiIsIFwKLSAgICAgICAgICAiMC4yNjE2NzksIDAuMjk4MzM4LCAwLjY0NDc0NywgMS4yNDgyMywgMS44NTg5MywgMy4yODMyMywgNC4xMDIxNyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTc2MTksIDAuMTE0NjQzLCAwLjI2NzIsIDAuNTIwOTUzLCAwLjc3NDY3MSwgMS4zNjY3NywgMS43MDY2NSIsIFwKLSAgICAgICAgICAiMC4xMDQwNzQsIDAuMTIxMSwgMC4yNzM3NzEsIDAuNTI3NTQzLCAwLjc4MTI3OSwgMS4zNzQxNSwgMS43MTE1MyIsIFwKLSAgICAgICAgICAiMC4xMTIwMjksIDAuMTI5MDYzLCAwLjI4MTc5NywgMC41MzU2MDQsIDAuNzg5NDgsIDEuMzgyMTksIDEuNzIwMyIsIFwKLSAgICAgICAgICAiMC4xMTk5NDYsIDAuMTM2ODA2LCAwLjI4OTY5NywgMC41NDM1MDcsIDAuNzk3MzAxLCAxLjM5MDIsIDEuNzI4ODkiLCBcCi0gICAgICAgICAgIjAuMTI3ODc3LCAwLjE0NTAzLCAwLjI5NzYwMSwgMC41NTE1NjYsIDAuODA1MjY4LCAxLjM5NzI3LCAxLjczNTgyIiwgXAotICAgICAgICAgICIwLjE0MDM2MywgMC4xNTc0OCwgMC4zMTAxMjksIDAuNTY0NDM1LCAwLjgxODIxNSwgMS40MTAzNywgMS43NDg1NyIsIFwKLSAgICAgICAgICAiMC4xNTA0ODEsIDAuMTY4NDI5LCAwLjMyMTUzNSwgMC41NzU5NTEsIDAuODI5NjMzLCAxLjQyMTg1LCAxLjc2MDY5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE5MzIzMywgMC4yMjc5ODgsIDAuNTQxMTU4LCAxLjA2MzIyLCAxLjU4NDY1LCAyLjgwMzQxLCAzLjQ5ODY0IiwgXAotICAgICAgICAgICIwLjE5MzIxMywgMC4yMjc5OTQsIDAuNTQxMTQ3LCAxLjA2MjkyLCAxLjU4NDkxLCAyLjgwMjU2LCAzLjUwNDE1IiwgXAotICAgICAgICAgICIwLjE5NDI0NSwgMC4yMjg1OTUsIDAuNTQxMTY2LCAxLjA2Mjk1LCAxLjU4NSwgMi44MTQ3MywgMy40OTkiLCBcCi0gICAgICAgICAgIjAuMTk3NDAxLCAwLjIzMDk2OSwgMC41NDExNTcsIDEuMDYzMDgsIDEuNTg5MzksIDIuODAyODksIDMuNDk4MDMiLCBcCi0gICAgICAgICAgIjAuMjAxNzYyLCAwLjIzNDk0MywgMC41NDE2NzgsIDEuMDYzMzcsIDEuNTg1MzUsIDIuODA2MTQsIDMuNDk4ODQiLCBcCi0gICAgICAgICAgIjAuMjEwMTAzLCAwLjI0MjUxMiwgMC41NDQ0MjIsIDEuMDYzMDYsIDEuNTg1MDcsIDIuODAyODEsIDMuNTAzODgiLCBcCi0gICAgICAgICAgIjAuMjE4MTc5LCAwLjI1MDIzOCwgMC41NDg1NzksIDEuMDYzNTksIDEuNTg0OTQsIDIuODAzMzksIDMuNDk4OTgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwODcwNSwgMC4xMjc5NTYsIDAuMzAwNDIsIDAuNTg4NjY2LCAwLjg3NTI2OSwgMS41NDYxNywgMS45MzA3NiIsIFwKLSAgICAgICAgICAiMC4xMTYwOTksIDAuMTM1MjkyLCAwLjMwNzg5MSwgMC41OTUzMjUsIDAuODgzMTk3LCAxLjU1NDE3LCAxLjkzODM3IiwgXAotICAgICAgICAgICIwLjEyNTMxNCwgMC4xNDQ0NzEsIDAuMzE2OTk1LCAwLjYwNDQ4MiwgMC44OTE5NDQsIDEuNTYzNywgMS45NDY5OCIsIFwKLSAgICAgICAgICAiMC4xMzQ4NDIsIDAuMTUzOTU3LCAwLjMyNjY0MywgMC42MTQzNDcsIDAuOTAxMzUyLCAxLjU3MjE0LCAxLjk1NzU1IiwgXAotICAgICAgICAgICIwLjE0NDM3OSwgMC4xNjM0ODcsIDAuMzM1OTgsIDAuNjIzMzUzLCAwLjkxMDg0LCAxLjU4MTM2LCAxLjk2NjI2IiwgXAotICAgICAgICAgICIwLjE1OTkxLCAwLjE3ODg1NCwgMC4zNTA5NTEsIDAuNjM4MjI4LCAwLjkyNTU3OCwgMS41OTYxOCwgMS45ODA5MyIsIFwKLSAgICAgICAgICAiMC4xNzM2MywgMC4xOTI1MTMsIDAuMzY0MTY3LCAwLjY0OTQ4MywgMC45Mzg5MDMsIDEuNjEwODEsIDEuOTkyNCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMjcwMzEsIDAuMjY3NzI0LCAwLjYzMzk5OSwgMS4yNDQ4MywgMS44NTY0OSwgMy4yODAxNSwgNC4wOTM4NCIsIFwKLSAgICAgICAgICAiMC4yMjcwNjMsIDAuMjY3NzUxLCAwLjYzNDM3NSwgMS4yNDU1NSwgMS44NTUzMiwgMy4yNzg5MywgNC4wOTQxIiwgXAotICAgICAgICAgICIwLjIyNzczOSwgMC4yNjc5MTUsIDAuNjM0MTQzLCAxLjI0NDExLCAxLjg1NjkzLCAzLjI3OTk5LCA0LjA5MzY1IiwgXAotICAgICAgICAgICIwLjIzMTQzNSwgMC4yNzA3MjYsIDAuNjM0MTYyLCAxLjI0NDQ2LCAxLjg1NDI3LCAzLjI4Mjg0LCA0LjA5MzkzIiwgXAotICAgICAgICAgICIwLjIzNjkwOCwgMC4yNzUzLCAwLjYzNDA4MSwgMS4yNDQ0MiwgMS44NTQ3OCwgMy4yODI5MiwgNC4wOTM1NiIsIFwKLSAgICAgICAgICAiMC4yNDc4OTQsIDAuMjg1MjM5LCAwLjYzNjg0MSwgMS4yNDUxOCwgMS44NTUxMSwgMy4yNzgyLCA0LjA5MzgzIiwgXAotICAgICAgICAgICIwLjI1ODgxMiwgMC4yOTUzNTUsIDAuNjQxMzQyLCAxLjI0NDQ2LCAxLjg1NTg4LCAzLjI3OTY0LCA0LjA5ODMzIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5NTk5NywgMC4xMTMwMTgsIDAuMjY1NTgzLCAwLjUxOTMzOSwgMC43NzMwMzEsIDEuMzY1MDMsIDEuNzA0NCIsIFwKLSAgICAgICAgICAiMC4xMDM1LCAwLjEyMDUzMSwgMC4yNzMxMzQsIDAuNTI2ODg4LCAwLjc4MDYxMiwgMS4zNzI4MiwgMS43MTI1IiwgXAotICAgICAgICAgICIwLjExMjk0MywgMC4xMjk5ODgsIDAuMjgyNTQ0LCAwLjUzNjI4MywgMC43ODk5ODksIDEuMzgyNDcsIDEuNzIyMzQiLCBcCi0gICAgICAgICAgIjAuMTIyNTU4LCAwLjEzOTU0NiwgMC4yOTIxNDgsIDAuNTQ1ODIxLCAwLjc5OTU1MiwgMS4zOTE1OCwgMS43MzE0NSIsIFwKLSAgICAgICAgICAiMC4xMzIyOTgsIDAuMTQ5MzAzLCAwLjMwMTYzOCwgMC41NTUzNDMsIDAuODA4OTg5LCAxLjQwMTA3LCAxLjczOTgxIiwgXAotICAgICAgICAgICIwLjE0Nzk1NywgMC4xNjQ5MzEsIDAuMzE2ODg1LCAwLjU3MDU5NCwgMC44MjQyMTgsIDEuNDE2MTMsIDEuNzU1MjIiLCBcCi0gICAgICAgICAgIjAuMTYxMzM4LCAwLjE3ODYyNiwgMC4zMzAzNjYsIDAuNTgzOTMyLCAwLjgzNzU5MiwgMS40Mjk2NywgMS43Njc3MyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xOTMyMTgsIDAuMjI4MDAyLCAwLjU0MTE1NSwgMS4wNjI5NiwgMS41ODUxLCAyLjgwMzIxLCAzLjUxNDA1IiwgXAotICAgICAgICAgICIwLjE5MzIwOSwgMC4yMjgsIDAuNTQxMSwgMS4wNjMxOSwgMS41ODUwOSwgMi44MDM3NSwgMy40OTk0NCIsIFwKLSAgICAgICAgICAiMC4xOTQ2MzksIDAuMjI4NzM0LCAwLjU0MTA1MywgMS4wNjM0MywgMS41ODU0NCwgMi44MDMwNiwgMy40OTgzMSIsIFwKLSAgICAgICAgICAiMC4xOTg5OTQsIDAuMjMyMjEsIDAuNTQxMTk4LCAxLjA2NDQ4LCAxLjU4NTUyLCAyLjgwMjQzLCAzLjUwMTYzIiwgXAotICAgICAgICAgICIwLjIwNTE0MywgMC4yMzc2NTgsIDAuNTQxNjQzLCAxLjA2MzIsIDEuNTg0NzUsIDIuODA0MTEsIDMuNDk5NDkiLCBcCi0gICAgICAgICAgIjAuMjE2ODI2LCAwLjI0ODMxLCAwLjU0NTQ3OSwgMS4wNjI5MSwgMS41ODkzOSwgMi44MTM1LCAzLjQ5OTM2IiwgXAotICAgICAgICAgICIwLjIyODI2NSwgMC4yNTkwMDksIDAuNTUwOTY1LCAxLjA2MzM3LCAxLjU4NTQ0LCAyLjgwMzg1LCAzLjUxMzM1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzA5NywgMC4wMDMwOTcsIDAuMDAzMDk3LCAwLjAwMzA5NywgMC4wMDMwOTcsIDAuMDAzMDk2LCAwLjAwMzA5NSIsIFwKLSAgICAgICAgICAiMC4wMDMwODksIDAuMDAzMDksIDAuMDAzMDkxLCAwLjAwMzA5NCwgMC4wMDMwOTQsIDAuMDAzMDkzLCAwLjAwMzA5IiwgXAotICAgICAgICAgICIwLjAwMzA4NiwgMC4wMDMwODcsIDAuMDAzMDkxLCAwLjAwMzA5MiwgMC4wMDMwOTIsIDAuMDAzMDkzLCAwLjAwMzA5MiIsIFwKLSAgICAgICAgICAiMC4wMDMwODgsIDAuMDAzMDg5LCAwLjAwMzA5LCAwLjAwMzA5MywgMC4wMDMwOTMsIDAuMDAzMDkyLCAwLjAwMzA5MiIsIFwKLSAgICAgICAgICAiMC4wMDMwOTYsIDAuMDAzMDk2LCAwLjAwMzA5NSwgMC4wMDMwOTQsIDAuMDAzMDk0LCAwLjAwMzA5MywgMC4wMDMwOTMiLCBcCi0gICAgICAgICAgIjAuMDAzMTIsIDAuMDAzMTE3LCAwLjAwMzEwNywgMC4wMDMxMDIsIDAuMDAzMDk5LCAwLjAwMzA5NiwgMC4wMDMwOTUiLCBcCi0gICAgICAgICAgIjAuMDAzMTU0LCAwLjAwMzE0OCwgMC4wMDMxMjQsIDAuMDAzMTEyLCAwLjAwMzEwNywgMC4wMDMxLCAwLjAwMzA5OCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDY1MywgMC4wMDA2NTMsIDAuMDAwNjUzLCAwLjAwMDY1MywgMC4wMDA2NTMsIDAuMDAwNjUzLCAwLjAwMDY1MiIsIFwKLSAgICAgICAgICAiMC4wMDA2MzgsIDAuMDAwNjQsIDAuMDAwNjQ0LCAwLjAwMDY0NSwgMC4wMDA2NDUsIDAuMDAwNjQ2LCAwLjAwMDY0NSIsIFwKLSAgICAgICAgICAiMC4wMDA2MzcsIDAuMDAwNjM4LCAwLjAwMDY0MiwgMC4wMDA2NDQsIDAuMDAwNjQ0LCAwLjAwMDY0NCwgMC4wMDA2NDQiLCBcCi0gICAgICAgICAgIjAuMDAwNjQ3LCAwLjAwMDY0NiwgMC4wMDA2NDUsIDAuMDAwNjQ1LCAwLjAwMDY0NSwgMC4wMDA2NDUsIDAuMDAwNjQ0IiwgXAotICAgICAgICAgICIwLjAwMDY2NiwgMC4wMDA2NjIsIDAuMDAwNjU0LCAwLjAwMDY1LCAwLjAwMDY0OCwgMC4wMDA2NDYsIDAuMDAwNjQ2IiwgXAotICAgICAgICAgICIwLjAwMDcxMiwgMC4wMDA3MDUsIDAuMDAwNjc2LCAwLjAwMDY2MiwgMC4wMDA2NTcsIDAuMDAwNjUxLCAwLjAwMDY1IiwgXAotICAgICAgICAgICIwLjAwMDc2MywgMC4wMDA3NTEsIDAuMDAwNzAzLCAwLjAwMDY3OSwgMC4wMDA2NjgsIDAuMDAwNjU4LCAwLjAwMDY1NSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkExIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI3NzEsIDAuMDAyNzcxLCAwLjAwMjc3MywgMC4wMDI3NzQsIDAuMDAyNzczLCAwLjAwMjc3MywgMC4wMDI3NzMiLCBcCi0gICAgICAgICAgIjAuMDAyNzYyLCAwLjAwMjc2NCwgMC4wMDI3NzEsIDAuMDAyNzc0LCAwLjAwMjc3NSwgMC4wMDI3NzUsIDAuMDAyNzc1IiwgXAotICAgICAgICAgICIwLjAwMjc1MywgMC4wMDI3NTYsIDAuMDAyNzY3LCAwLjAwMjc3MiwgMC4wMDI3NzMsIDAuMDAyNzc1LCAwLjAwMjc3NSIsIFwKLSAgICAgICAgICAiMC4wMDI3NSwgMC4wMDI3NTMsIDAuMDAyNzY1LCAwLjAwMjc3MSwgMC4wMDI3NzIsIDAuMDAyNzc0LCAwLjAwMjc3NCIsIFwKLSAgICAgICAgICAiMC4wMDI3NTUsIDAuMDAyNzU2LCAwLjAwMjc2NiwgMC4wMDI3NzEsIDAuMDAyNzczLCAwLjAwMjc3NSwgMC4wMDI3NzUiLCBcCi0gICAgICAgICAgIjAuMDAyNzc1LCAwLjAwMjc3NCwgMC4wMDI3NzYsIDAuMDAyNzc2LCAwLjAwMjc3NiwgMC4wMDI3NzcsIDAuMDAyNzc2IiwgXAotICAgICAgICAgICIwLjAwMjgwNCwgMC4wMDI4MDIsIDAuMDAyNzksIDAuMDAyNzg1LCAwLjAwMjc4MywgMC4wMDI3OCwgMC4wMDI3OCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDY1MywgMC4wMDA2NTMsIDAuMDAwNjU0LCAwLjAwMDY1NCwgMC4wMDA2NTQsIDAuMDAwNjUzLCAwLjAwMDY1MyIsIFwKLSAgICAgICAgICAiMC4wMDA2NDIsIDAuMDAwNjQzLCAwLjAwMDY0NSwgMC4wMDA2NDYsIDAuMDAwNjQ2LCAwLjAwMDY0NiwgMC4wMDA2NDYiLCBcCi0gICAgICAgICAgIjAuMDAwNjUsIDAuMDAwNjQ5LCAwLjAwMDY0OCwgMC4wMDA2NDcsIDAuMDAwNjQ3LCAwLjAwMDY0NiwgMC4wMDA2NDYiLCBcCi0gICAgICAgICAgIjAuMDAwNjczLCAwLjAwMDY2OSwgMC4wMDA2NTksIDAuMDAwNjUzLCAwLjAwMDY1MSwgMC4wMDA2NDgsIDAuMDAwNjQ3IiwgXAotICAgICAgICAgICIwLjAwMDcwNSwgMC4wMDA2OTksIDAuMDAwNjc0LCAwLjAwMDY2MiwgMC4wMDA2NTcsIDAuMDAwNjUxLCAwLjAwMDY1IiwgXAotICAgICAgICAgICIwLjAwMDc3MywgMC4wMDA3NTksIDAuMDAwNzA3LCAwLjAwMDY4MywgMC4wMDA2NzIsIDAuMDAwNjYsIDAuMDAwNjU3IiwgXAotICAgICAgICAgICIwLjAwMDg0NSwgMC4wMDA4MjQsIDAuMDAwNzQ1LCAwLjAwMDcwNSwgMC4wMDA2ODksIDAuMDAwNjcxLCAwLjAwMDY2NiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDIxODIsIDAuMDAyMTgzLCAwLjAwMjE4MywgMC4wMDIxODMsIDAuMDAyMTg0LCAwLjAwMjE4MywgMC4wMDIxODIiLCBcCi0gICAgICAgICAgIjAuMDAyMTc5LCAwLjAwMjE3OSwgMC4wMDIxOCwgMC4wMDIxOCwgMC4wMDIxOCwgMC4wMDIxOCwgMC4wMDIxNzgiLCBcCi0gICAgICAgICAgIjAuMDAyMTkxLCAwLjAwMjE5MSwgMC4wMDIxODUsIDAuMDAyMTgzLCAwLjAwMjE4MSwgMC4wMDIxOCwgMC4wMDIxNzkiLCBcCi0gICAgICAgICAgIjAuMDAyMjEzLCAwLjAwMjIwOSwgMC4wMDIxOTUsIDAuMDAyMTg4LCAwLjAwMjE4NSwgMC4wMDIxODIsIDAuMDAyMTgxIiwgXAotICAgICAgICAgICIwLjAwMjI0MiwgMC4wMDIyMzcsIDAuMDAyMjA5LCAwLjAwMjE5NSwgMC4wMDIxOSwgMC4wMDIxODUsIDAuMDAyMTgyIiwgXAotICAgICAgICAgICIwLjAwMjMwNywgMC4wMDIyOTEsIDAuMDAyMjQsIDAuMDAyMjE2LCAwLjAwMjIwMywgMC4wMDIxOTIsIDAuMDAyMTg5IiwgXAotICAgICAgICAgICIwLjAwMjM3MiwgMC4wMDIzNTMsIDAuMDAyMjc2LCAwLjAwMjIzMiwgMC4wMDIyMTcsIDAuMDAyMjAxLCAwLjAwMjE5NSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDE3MiwgMC4wMDAxNzMsIDAuMDAwMTc1LCAwLjAwMDE3NiwgMC4wMDAxNzYsIDAuMDAwMTc3LCAwLjAwMDE3NyIsIFwKLSAgICAgICAgICAiMC4wMDAxNywgMC4wMDAxNzMsIDAuMDAwMTgyLCAwLjAwMDE4NiwgMC4wMDAxODcsIDAuMDAwMTg4LCAwLjAwMDE4OSIsIFwKLSAgICAgICAgICAiMC4wMDAxNjYsIDAuMDAwMTcsIDAuMDAwMTgyLCAwLjAwMDE4NywgMC4wMDAxODgsIDAuMDAwMTksIDAuMDAwMTkiLCBcCi0gICAgICAgICAgIjAuMDAwMTczLCAwLjAwMDE3NSwgMC4wMDAxODQsIDAuMDAwMTg4LCAwLjAwMDE5LCAwLjAwMDE5MSwgMC4wMDAxOTEiLCBcCi0gICAgICAgICAgIjAuMDAwMTksIDAuMDAwMTksIDAuMDAwMTkxLCAwLjAwMDE5MiwgMC4wMDAxOTIsIDAuMDAwMTkzLCAwLjAwMDE5MyIsIFwKLSAgICAgICAgICAiMC4wMDAyMjksIDAuMDAwMjI0LCAwLjAwMDIwOSwgMC4wMDAyMDIsIDAuMDAwMiwgMC4wMDAxOTcsIDAuMDAwMTk3IiwgXAotICAgICAgICAgICIwLjAwMDI3OSwgMC4wMDAyNjgsIDAuMDAwMjMyLCAwLjAwMDIxNywgMC4wMDAyMSwgMC4wMDAyMDMsIDAuMDAwMjAxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTg1NiwgMC4wMDE4NTcsIDAuMDAxODU4LCAwLjAwMTg1OSwgMC4wMDE4NiwgMC4wMDE4NTksIDAuMDAxODU5IiwgXAotICAgICAgICAgICIwLjAwMTg1MSwgMC4wMDE4NTMsIDAuMDAxODU4LCAwLjAwMTg2LCAwLjAwMTg2LCAwLjAwMTg2MSwgMC4wMDE4NjEiLCBcCi0gICAgICAgICAgIjAuMDAxODYsIDAuMDAxODYxLCAwLjAwMTg2MSwgMC4wMDE4NjIsIDAuMDAxODYxLCAwLjAwMTg2MSwgMC4wMDE4NjEiLCBcCi0gICAgICAgICAgIjAuMDAxODc2LCAwLjAwMTg3NCwgMC4wMDE4NjksIDAuMDAxODY2LCAwLjAwMTg2NSwgMC4wMDE4NjMsIDAuMDAxODYyIiwgXAotICAgICAgICAgICIwLjAwMTkwMiwgMC4wMDE4OTksIDAuMDAxODgyLCAwLjAwMTg3MiwgMC4wMDE4NjgsIDAuMDAxODY1LCAwLjAwMTg2NCIsIFwKLSAgICAgICAgICAiMC4wMDE5NjIsIDAuMDAxOTUsIDAuMDAxOTA5LCAwLjAwMTg4OCwgMC4wMDE4NzksIDAuMDAxODcxLCAwLjAwMTg3IiwgXAotICAgICAgICAgICIwLjAwMjAyNSwgMC4wMDIwMDcsIDAuMDAxOTQxLCAwLjAwMTkwOCwgMC4wMDE4OTMsIDAuMDAxODgsIDAuMDAxODc2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwMTcxLCAwLjAwMDE3MiwgMC4wMDAxNzUsIDAuMDAwMTc2LCAwLjAwMDE3NiwgMC4wMDAxNzYsIDAuMDAwMTc2IiwgXAotICAgICAgICAgICIwLjAwMDE3NiwgMC4wMDAxNzgsIDAuMDAwMTg1LCAwLjAwMDE4NywgMC4wMDAxODgsIDAuMDAwMTg5LCAwLjAwMDE4OSIsIFwKLSAgICAgICAgICAiMC4wMDAxODMsIDAuMDAwMTg1LCAwLjAwMDE4OSwgMC4wMDAxOSwgMC4wMDAxOTEsIDAuMDAwMTkyLCAwLjAwMDE5MiIsIFwKLSAgICAgICAgICAiMC4wMDAyLCAwLjAwMDE5OSwgMC4wMDAxOTcsIDAuMDAwMTk1LCAwLjAwMDE5NSwgMC4wMDAxOTQsIDAuMDAwMTk0IiwgXAotICAgICAgICAgICIwLjAwMDIyNywgMC4wMDAyMjMsIDAuMDAwMjEsIDAuMDAwMjAzLCAwLjAwMDIsIDAuMDAwMTk3LCAwLjAwMDE5NyIsIFwKLSAgICAgICAgICAiMC4wMDAyODgsIDAuMDAwMjc2LCAwLjAwMDIzNiwgMC4wMDAyMjEsIDAuMDAwMjEzLCAwLjAwMDIwNSwgMC4wMDAyMDMiLCBcCi0gICAgICAgICAgIjAuMDAwMzYxLCAwLjAwMDMzOCwgMC4wMDAyNywgMC4wMDAyNDEsIDAuMDAwMjI4LCAwLjAwMDIxNCwgMC4wMDAyMSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogQU9JMkJCMVgyICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoQU9JMkJCMVgyKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuNDczMDk4OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBME4pICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY2NjgwMzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2NjUwMjI7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjY2ODAzOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDg4MywgMC4wMDA4ODMsIDAuMDAwOTMyLCAwLjAwMTAwMiwgMC4wMDEwOTcsIDAuMDAxMjg0LCAwLjAwMTQ1NSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzYwNSwgMC4wMDM1ODMsIDAuMDAzNjAxLCAwLjAwMzY0OCwgMC4wMDM3MTMsIDAuMDAzODQ0LCAwLjAwMzk4Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihBMU4pICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY3MTk2NDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2NzE5NjQ7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjcxODkyOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDY4LCAwLjAwMDY3NiwgMC4wMDA3MDksIDAuMDAwNzgxLCAwLjAwMDg3MSwgMC4wMDEwMjcsIDAuMDAxMTc2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzMzQyLCAwLjAwMzM0MywgMC4wMDMzOTEsIDAuMDAzNDY5LCAwLjAwMzU2MiwgMC4wMDM3NDksIDAuMDAzODk5Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxODU4ODY7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxODUxNDY7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxODU4ODY7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwOTQ4LCAwLjAwMTAxMiwgMC4wMDEwMiwgMC4wMDEwMjYsIDAuMDAxMDM0LCAwLjAwMTAzOCwgMC4wMDEwMzciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDEwNjQsIDAuMDAxMDY1LCAwLjAwMTA2NSwgMC4wMDEwNjYsIDAuMDAxMDY1LCAwLjAwMTA2NSwgMC4wMDEwNjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4zNzYzNjY7Ci0gICAgZnVuY3Rpb24gOiAiKCEoKCEoQTBOK0ExTikpK0IwKSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEwTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU1Mjg4LCAwLjE5NjA2NSwgMC4zMDgzNzQsIDAuNDQ4ODMsIDAuNTg5MjgsIDAuNzI5NjY3LCAwLjg3MDA1MiIsIFwKLSAgICAgICAgICAiMC4wNjM0NzcsIDAuMjA0MjE5LCAwLjMxNjU5NiwgMC40NTcwNTQsIDAuNTk3NDcyLCAwLjczNzg0MSwgMC44NzgyODIiLCBcCi0gICAgICAgICAgIjAuMDcyMzEsIDAuMjEzMDQ0LCAwLjMyNTM4NSwgMC40NjU4NCwgMC42MDY0LCAwLjc0NjY1MSwgMC44ODcwOTciLCBcCi0gICAgICAgICAgIjAuMDc5MTUyLCAwLjIxOTg0NCwgMC4zMzIyMTYsIDAuNDcyNjM1LCAwLjYxMzA0MSwgMC43NTM1MzQsIDAuODkzODU1IiwgXAotICAgICAgICAgICIwLjA4NDY2NCwgMC4yMjUyMzUsIDAuMzM3NTkyLCAwLjQ3ODExNSwgMC42MTg0ODcsIDAuNzU4OTM0LCAwLjg5OTI1MiIsIFwKLSAgICAgICAgICAiMC4wOTIyMzQsIDAuMjMyNzUyLCAwLjM0NTExOCwgMC40ODU1MDYsIDAuNjI1OTA4LCAwLjc2NjQ5NiwgMC45MDY4MjYiLCBcCi0gICAgICAgICAgIjAuMDk3NTY4LCAwLjIzNzk4MSwgMC4zNTAzMzksIDAuNDkwNzM2LCAwLjYzMTE2MiwgMC43NzE3MjksIDAuOTExOTI1Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3MjA5NywgMC4zNjgyMzcsIDAuNjA1MjA1LCAwLjkwMTA0LCAxLjE5ODEzLCAxLjQ5Njc1LCAxLjc5MTQ3IiwgXAotICAgICAgICAgICIwLjA3MjE2MiwgMC4zNjgwNTEsIDAuNjA1MTgzLCAwLjkwMTU2NiwgMS4xOTgxNywgMS40OTU5MywgMS43OTE5NyIsIFwKLSAgICAgICAgICAiMC4wNzI1MzMsIDAuMzY4MDQ4LCAwLjYwNTI1MiwgMC45MDIzLCAxLjE5OTU1LCAxLjQ5NTQsIDEuNzkxNDUiLCBcCi0gICAgICAgICAgIjAuMDczMTc2LCAwLjM2Nzc1MSwgMC42MDU0NTUsIDAuOTAyMjM3LCAxLjE5ODU5LCAxLjQ5NjU2LCAxLjc5MTk2IiwgXAotICAgICAgICAgICIwLjA3MzkyMywgMC4zNjgwMzEsIDAuNjA0OTg2LCAwLjkwMjI0NiwgMS4xOTgyNywgMS40OTQ1MywgMS43OTI3MiIsIFwKLSAgICAgICAgICAiMC4wNzUwMjcsIDAuMzY4MDgzLCAwLjYwNTM4NiwgMC45MDIxNTcsIDEuMTk4MzgsIDEuNDk1ODIsIDEuNzkyNjQiLCBcCi0gICAgICAgICAgIjAuMDc1OTk5LCAwLjM2ODEwNCwgMC42MDQ5NTYsIDAuOTAyMDk4LCAxLjE5ODksIDEuNDk1NzUsIDEuNzkyMDQiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU5ODkxLCAwLjEzOTY3NiwgMC4yMDE3NzYsIDAuMjc5MzcsIDAuMzU3MDM4LCAwLjQzNDU4NCwgMC41MTIzMDEiLCBcCi0gICAgICAgICAgIjAuMDY1NTg4LCAwLjE0NTM5NSwgMC4yMDc0OTgsIDAuMjg1MDkxLCAwLjM2Mjc1MSwgMC40NDAyOTksIDAuNTE4MDIzIiwgXAotICAgICAgICAgICIwLjA3MjI1OCwgMC4xNTIwNjcsIDAuMjE0MTc5LCAwLjI5MTc3OCwgMC4zNjk0MDEsIDAuNDQ3MDE5LCAwLjUyNDg2NyIsIFwKLSAgICAgICAgICAiMC4wNzgxMjcsIDAuMTU4MDU4LCAwLjIyMDE1NSwgMC4yOTc3MzYsIDAuMzc1NDAxLCAwLjQ1Mjk1OSwgMC41MzA2MjkiLCBcCi0gICAgICAgICAgIjAuMDgzMDIyLCAwLjE2MzIzMywgMC4yMjUzNDEsIDAuMzAyOTYzLCAwLjM4MDUzOSwgMC40NTgzMDgsIDAuNTM1OTQ0IiwgXAotICAgICAgICAgICIwLjA4OTg1OSwgMC4xNzA0ODQsIDAuMjMyNTgyLCAwLjMxMDE0MSwgMC4zODc3NTEsIDAuNDY1NDUsIDAuNTQyOTA2IiwgXAotICAgICAgICAgICIwLjA5NDkyOSwgMC4xNzU4ODMsIDAuMjM3OTQ2LCAwLjMxNTUxMiwgMC4zOTMwOTEsIDAuNDcwNjc4LCAwLjU0ODI3OSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDU3MjIsIDAuMjAwNzYxLCAwLjMyODAzNSwgMC40ODc3OTksIDAuNjQ2NTc4LCAwLjgwODE1MywgMC45NjY3MyIsIFwKLSAgICAgICAgICAiMC4wNDU2NjcsIDAuMjAwNzQ2LCAwLjMyODAwNSwgMC40ODc3OTksIDAuNjQ2NjQ1LCAwLjgwODA3NSwgMC45NjY3MzIiLCBcCi0gICAgICAgICAgIjAuMDQ1OTgyLCAwLjIwMDkyMywgMC4zMjgxMDEsIDAuNDg3OTA5LCAwLjY0ODEzNSwgMC44MDczMTcsIDAuOTY2NjE0IiwgXAotICAgICAgICAgICIwLjA0Njc5MywgMC4yMDA5NTMsIDAuMzI4MjAyLCAwLjQ4Nzg2LCAwLjY0NjU5NCwgMC44MDgxMTYsIDAuOTY2ODkyIiwgXAotICAgICAgICAgICIwLjA0Nzc0MSwgMC4yMDEyOTksIDAuMzI3OTI1LCAwLjQ4ODA0LCAwLjY0ODA3MywgMC44MDY3NDEsIDAuOTY2NzA3IiwgXAotICAgICAgICAgICIwLjA0ODg3NywgMC4yMDE2OTIsIDAuMzI4MDg2LCAwLjQ4ODA1OSwgMC42NDgyLCAwLjgwNjgyOCwgMC45Njg1OTgiLCBcCi0gICAgICAgICAgIjAuMDUwMjIsIDAuMjAyMTMzLCAwLjMyODgyNSwgMC40ODgwODMsIDAuNjQ3MzE0LCAwLjgwODM4NywgMC45Njg2ODMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTFOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTM1NDEsIDAuMTk0MzEsIDAuMzA2Nzg1LCAwLjQ0NzEwNSwgMC41ODc2NTgsIDAuNzI3OTY1LCAwLjg2ODU1IiwgXAotICAgICAgICAgICIwLjA2MTUzNywgMC4yMDIzMDQsIDAuMzE0OTcxLCAwLjQ1NTI0NiwgMC41OTU1ODYsIDAuNzM2NjA2LCAwLjg3NjkzMyIsIFwKLSAgICAgICAgICAiMC4wNjk4OCwgMC4yMTA1NjYsIDAuMzIzMjU5LCAwLjQ2MzUzMSwgMC42MDQwMzUsIDAuNzQ1MDk5LCAwLjg4NDk0NSIsIFwKLSAgICAgICAgICAiMC4wNzYxMzksIDAuMjE2ODE2LCAwLjMyOTI3NywgMC40Njk3NjMsIDAuNjEwMjEzLCAwLjc1MDc5OCwgMC44OTE3MTUiLCBcCi0gICAgICAgICAgIjAuMDgxMDk4LCAwLjIyMTgxOSwgMC4zMzQzMzQsIDAuNDc1MTc4LCAwLjYxNTI2NiwgMC43NTU3NDksIDAuODk2MTQ4IiwgXAotICAgICAgICAgICIwLjA4NzY5OSwgMC4yMjgwOTUsIDAuMzQwNjY2LCAwLjQ4MTEzNSwgMC42MjE1NDksIDAuNzYyMzQ1LCAwLjkwMjU4NSIsIFwKLSAgICAgICAgICAiMC4wOTIzMjgsIDAuMjMyNzIzLCAwLjM0NTU1OSwgMC40ODU4MTgsIDAuNjI2MDM5LCAwLjc2NjQ5MiwgMC45MDc1NzIiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDcxOTE3LCAwLjM2NzcwOSwgMC42MDQ5OTgsIDAuOTAzMzA0LCAxLjE5ODkxLCAxLjQ5NTc5LCAxLjc5MjQxIiwgXAotICAgICAgICAgICIwLjA3MjAzMiwgMC4zNjc3MTUsIDAuNjA1MTcxLCAwLjkwMTU2LCAxLjE5ODk3LCAxLjQ5NTM5LCAxLjc5MTQxIiwgXAotICAgICAgICAgICIwLjA3MjU0MSwgMC4zNjc4ODUsIDAuNjA1MTI2LCAwLjkwMjIwNiwgMS4xOTgwMywgMS40OTUxNCwgMS43OTI4MiIsIFwKLSAgICAgICAgICAiMC4wNzMzMDQsIDAuMzY3NjY0LCAwLjYwNTQxLCAwLjkwMTUwNCwgMS4xOTkwNywgMS40OTQ4LCAxLjc5MjIxIiwgXAotICAgICAgICAgICIwLjA3NDA3LCAwLjM2ODQxMywgMC42MDQ5OTgsIDAuOTAxOTM3LCAxLjE5ODA2LCAxLjQ5NDYxLCAxLjc5MzkxIiwgXAotICAgICAgICAgICIwLjA3NTI4MSwgMC4zNjc3MjgsIDAuNjA1MjY0LCAwLjkwMTU5OCwgMS4xOTgwNCwgMS40OTQ4LCAxLjc5MTM2IiwgXAotICAgICAgICAgICIwLjA3NjQ0OCwgMC4zNjc4MTIsIDAuNjA1MDAzLCAwLjkwMTY2MywgMS4yMDAyNiwgMS40OTU2MiwgMS43OTE1NyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTc2MzEsIDAuMTM3NDExLCAwLjE5OTUzNywgMC4yNzcxNDUsIDAuMzU0ODAyLCAwLjQzMjM3NiwgMC41MTAwNjIiLCBcCi0gICAgICAgICAgIjAuMDY0OTQ3LCAwLjE0NDgxNiwgMC4yMDY5MzUsIDAuMjg0NTQ4LCAwLjM2MjEzNCwgMC40Mzk3NDgsIDAuNTE3MzAyIiwgXAotICAgICAgICAgICIwLjA3NDIxNCwgMC4xNTQwMjcsIDAuMjE2MTUsIDAuMjkzNzY1LCAwLjM3MTM3NywgMC40NDkwMDMsIDAuNTI2Njg4IiwgXAotICAgICAgICAgICIwLjA4MjMwNywgMC4xNjIxMTUsIDAuMjI0MjE2LCAwLjMwMTgwNCwgMC4zNzk0MywgMC40NTcwNjEsIDAuNTM0NzUzIiwgXAotICAgICAgICAgICIwLjA4OTI4OCwgMC4xNjk1NTUsIDAuMjMxNjQxLCAwLjMwOTIzNCwgMC4zODY5MjUsIDAuNDY0NDIsIDAuNTQyMDQ4IiwgXAotICAgICAgICAgICIwLjA5ODQzNywgMC4xNzkwMzUsIDAuMjQwODM5LCAwLjMxODQyOCwgMC4zOTU5NjksIDAuNDczNTQsIDAuNTUxMzc0IiwgXAotICAgICAgICAgICIwLjEwNTI2MiwgMC4xODYxNjQsIDAuMjQ3OTYzLCAwLjMyNTUxMSwgMC40MDMxMDIsIDAuNDgwNTk5LCAwLjU1ODI2NSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDU3OSwgMC4yMDA3NjksIDAuMzI4MDUsIDAuNDg3NzUzLCAwLjY0NjY4MiwgMC44MDgwMjUsIDAuOTY2ODA4IiwgXAotICAgICAgICAgICIwLjA0NTY3NSwgMC4yMDA4NDMsIDAuMzI4MDkxLCAwLjQ4Nzk1MSwgMC42NDcxNzMsIDAuODA2NiwgMC45NjgzMDUiLCBcCi0gICAgICAgICAgIjAuMDQ2MTYzLCAwLjIwMDgzMiwgMC4zMjgwOTksIDAuNDg3OTQ3LCAwLjY0ODEyNiwgMC44MDcyNTMsIDAuOTY3NDY0IiwgXAotICAgICAgICAgICIwLjA0NzA2NCwgMC4yMDEwMzcsIDAuMzI4MjM1LCAwLjQ4Nzg5OSwgMC42NDgxNDEsIDAuODA3MjY4LCAwLjk2NjciLCBcCi0gICAgICAgICAgIjAuMDQ4MDUsIDAuMjAxMzU3LCAwLjMyNzk1NSwgMC40ODczNTMsIDAuNjQ2OTU4LCAwLjgwODMyMSwgMC45NjgzNzciLCBcCi0gICAgICAgICAgIjAuMDQ5NzIzLCAwLjIwMjAwOSwgMC4zMjg0MTgsIDAuNDg3MjY0LCAwLjY0Nzk5NiwgMC44MDgyODEsIDAuOTY2NzIxIiwgXAotICAgICAgICAgICIwLjA1MTE4NCwgMC4yMDI0MjYsIDAuMzI4OTM2LCAwLjQ4NzUxNCwgMC42NDcwNzMsIDAuODA4MjA2LCAwLjk2NzQxNCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM5MTEyLCAwLjE3OTg5MywgMC4yOTIxOTQsIDAuNDMyNzA2LCAwLjU3MzUyNywgMC43MTM3MjEsIDAuODU0ODkyIiwgXAotICAgICAgICAgICIwLjA0NDY5NiwgMC4xODU1MDYsIDAuMjk3ODgxLCAwLjQzODc5MywgMC41Nzg4OTQsIDAuNzE5NDYxLCAwLjg1OTc5OSIsIFwKLSAgICAgICAgICAiMC4wNTE4MSwgMC4xOTI4MDQsIDAuMzA1MzgxLCAwLjQ0NTc2OSwgMC41ODY4NjIsIDAuNzI2OTEzLCAwLjg2ODAyIiwgXAotICAgICAgICAgICIwLjA1ODI1NywgMC4yMDAyMjgsIDAuMzEyODAxLCAwLjQ1MzU4LCAwLjU5Mzc4OSwgMC43MzQ0MDMsIDAuODc1MzE1IiwgXAotICAgICAgICAgICIwLjA2MzYyMSwgMC4yMDc0OTcsIDAuMzIwMjMyLCAwLjQ2MTA4MywgMC42MDE3NiwgMC43NDIxNzQsIDAuODgzNTE0IiwgXAotICAgICAgICAgICIwLjA3MDczNywgMC4yMTk0NTEsIDAuMzMxOTk4LCAwLjQ3Mjg3NSwgMC42MTM5MSwgMC43NTQwNTUsIDAuODk0ODk2IiwgXAotICAgICAgICAgICIwLjA3NjIzNywgMC4yMjk2NjgsIDAuMzQyNDE4LCAwLjQ4MzMxNCwgMC42MjQ1NjEsIDAuNzY0ODQ4LCAwLjkwNTU4MiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzEzNzYsIDAuMzY3Nzk1LCAwLjYwNTAxMiwgMC45MDE2NDEsIDEuMTk4NzQsIDEuNDk1ODIsIDEuNzkyNzYiLCBcCi0gICAgICAgICAgIjAuMDcyMTQ2LCAwLjM2ODM4MSwgMC42MDYwNzMsIDAuOTAxODA2LCAxLjIwMDQ4LCAxLjQ5NDY2LCAxLjc5MjQ5IiwgXAotICAgICAgICAgICIwLjA3NjEwNCwgMC4zNjc5MywgMC42MDUyLCAwLjkwMzMyNSwgMS4xOTg2MywgMS40OTY4LCAxLjc5MTk3IiwgXAotICAgICAgICAgICIwLjA4MTczOSwgMC4zNjg4NSwgMC42MDUwNjMsIDAuOTAxODEzLCAxLjE5ODIsIDEuNDk0ODIsIDEuNzkyMzUiLCBcCi0gICAgICAgICAgIjAuMDg4MjYxLCAwLjM3MDYzMiwgMC42MDYwNDgsIDAuOTAxODQ3LCAxLjE5ODgxLCAxLjQ5NTMyLCAxLjc5MjQ3IiwgXAotICAgICAgICAgICIwLjA5ODMzNCwgMC4zNzU0ODQsIDAuNjA4NjUsIDAuOTAzNTI1LCAxLjE5OTk1LCAxLjQ5NTU3LCAxLjc5NDczIiwgXAotICAgICAgICAgICIwLjEwNjk4MiwgMC4zODA5NTksIDAuNjExMDU4LCAwLjkwMzU5MywgMS4xOTgzMywgMS40OTc1NiwgMS43OTQzOSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjIxNDgsIDAuMDk3NzQ0LCAwLjE1ODE3NywgMC4yMzM2NjUsIDAuMzA4OTQ2LCAwLjM4NDU1NywgMC40NTk5NDQiLCBcCi0gICAgICAgICAgIjAuMDMwNTcsIDAuMTA2MTA5LCAwLjE2NjQ2MiwgMC4yNDE5MzgsIDAuMzE3NDM0LCAwLjM5MjcxMiwgMC40NjgyNDgiLCBcCi0gICAgICAgICAgIjAuMDQwNzIsIDAuMTE2ODYyLCAwLjE3NzIxLCAwLjI1MjY0MSwgMC4zMjgwMjQsIDAuNDAzNDc4LCAwLjQ3OTEyMyIsIFwKLSAgICAgICAgICAiMC4wNDgyMSwgMC4xMjY5OTEsIDAuMTg3Mjc2LCAwLjI2MTU3NSwgMC4zMzgzMjQsIDAuNDEzNjc4LCAwLjQ4OTExMiIsIFwKLSAgICAgICAgICAiMC4wNTQzMjksIDAuMTM3ODcsIDAuMTk3OTI5LCAwLjI3MzM1MiwgMC4zNDcyNzIsIDAuNDI0MjMyLCAwLjQ5OTUxOSIsIFwKLSAgICAgICAgICAiMC4wNjI0NDgsIDAuMTU1MTM4LCAwLjIxNTE3NCwgMC4yOTAzNiwgMC4zNjU3OTYsIDAuNDQxMTQ2LCAwLjUxNjY0NyIsIFwKLSAgICAgICAgICAiMC4wNjg1MzEsIDAuMTcwMjkzLCAwLjIzMDMxNiwgMC4zMDUzMTIsIDAuMzgwNjYyLCAwLjQ1NTk4MSwgMC41MzE1OTciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM4MDg4LCAwLjE5MzEzLCAwLjMxNzMwMSwgMC40NzIzODYsIDAuNjI3NDk4LCAwLjc4MjgzNywgMC45Mzc0NjgiLCBcCi0gICAgICAgICAgIjAuMDQxMzQ1LCAwLjE5MzEyMywgMC4zMTcxMDIsIDAuNDcyMjYyLCAwLjYyNzU3OCwgMC43ODIzODgsIDAuOTM3Mzk3IiwgXAotICAgICAgICAgICIwLjA0OTU4OCwgMC4xOTQyNzQsIDAuMzE3MzI2LCAwLjQ3MjM4MiwgMC42Mjc0NzIsIDAuNzgyMzg3LCAwLjkzNzgyOCIsIFwKLSAgICAgICAgICAiMC4wNTkxOTksIDAuMTk4NTQyLCAwLjMxODU2MiwgMC40NzI0NzEsIDAuNjI3MzI4LCAwLjc4MjU0LCAwLjkzNzYxMSIsIFwKLSAgICAgICAgICAiMC4wNjc5MTMsIDAuMjA0NTMxLCAwLjMyMTkxNCwgMC40NzMzNDcsIDAuNjI3NTM2LCAwLjc4MjQyOSwgMC45Mzc0NzQiLCBcCi0gICAgICAgICAgIjAuMDgwNTM5LCAwLjIxNTc5NywgMC4zMjk5MzksIDAuNDc3OTc3LCAwLjYyOTM2MywgMC43ODI2NDUsIDAuOTM3MzkiLCBcCi0gICAgICAgICAgIjAuMDkwODYsIDAuMjI3MjA5LCAwLjMzODY1OCwgMC40ODQwNjgsIDAuNjMzNDI2LCAwLjc4NDg5NSwgMC45MzgzMzgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBME4iOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzY2NywgMC4wMDM3MzUsIDAuMDAzNzQ0LCAwLjAwMzc1MiwgMC4wMDM3NDcsIDAuMDAzNzUxLCAwLjAwMzc1NiIsIFwKLSAgICAgICAgICAiMC4wMDM2NDIsIDAuMDAzNzIzLCAwLjAwMzczNCwgMC4wMDM3NCwgMC4wMDM3NDMsIDAuMDAzNzQ1LCAwLjAwMzc0NiIsIFwKLSAgICAgICAgICAiMC4wMDM2ODMsIDAuMDAzNzYyLCAwLjAwMzc3NiwgMC4wMDM3ODQsIDAuMDAzNzg4LCAwLjAwMzc5MSwgMC4wMDM3OTMiLCBcCi0gICAgICAgICAgIjAuMDAzNzY5LCAwLjAwMzgzNSwgMC4wMDM4NSwgMC4wMDM4NTksIDAuMDAzODY0LCAwLjAwMzg2NiwgMC4wMDM4NjkiLCBcCi0gICAgICAgICAgIjAuMDAzODc3LCAwLjAwMzkyNiwgMC4wMDM5NDEsIDAuMDAzOTUsIDAuMDAzOTU2LCAwLjAwMzk1OSwgMC4wMDM5NjIiLCBcCi0gICAgICAgICAgIjAuMDA0MDYyLCAwLjAwNDEsIDAuMDA0MTE2LCAwLjAwNDEyNywgMC4wMDQxMzIsIDAuMDA0MTM2LCAwLjAwNDEzOSIsIFwKLSAgICAgICAgICAiMC4wMDQyNTMsIDAuMDA0MjY1LCAwLjAwNDI4MSwgMC4wMDQyOSwgMC4wMDQyOTcsIDAuMDA0MywgMC4wMDQzMDMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQ2MTgsIDAuMDA0NywgMC4wMDQ3MTEsIDAuMDA0NzE3LCAwLjAwNDcyMSwgMC4wMDQ3MjIsIDAuMDA0NzI0IiwgXAotICAgICAgICAgICIwLjAwNDU3NSwgMC4wMDQ2NzMsIDAuMDA0Njg2LCAwLjAwNDY5MiwgMC4wMDQ2OTYsIDAuMDA0Njk4LCAwLjAwNDY5OSIsIFwKLSAgICAgICAgICAiMC4wMDQ1ODMsIDAuMDA0NjgzLCAwLjAwNDY5NywgMC4wMDQ3MDUsIDAuMDA0NzA5LCAwLjAwNDcxMSwgMC4wMDQ3MTMiLCBcCi0gICAgICAgICAgIjAuMDA0NjQ4LCAwLjAwNDcyOCwgMC4wMDQ3NDEsIDAuMDA0NzQ4LCAwLjAwNDc1MSwgMC4wMDQ3NTQsIDAuMDA0NzU1IiwgXAotICAgICAgICAgICIwLjAwNDcsIDAuMDA0NzgyLCAwLjAwNDc5NiwgMC4wMDQ4MDMsIDAuMDA0ODA3LCAwLjAwNDgxLCAwLjAwNDgxMiIsIFwKLSAgICAgICAgICAiMC4wMDQ4MDcsIDAuMDA0ODk5LCAwLjAwNDkxNSwgMC4wMDQ5MjQsIDAuMDA0OTMsIDAuMDA0OTMzLCAwLjAwNDkzNSIsIFwKLSAgICAgICAgICAiMC4wMDUwMzgsIDAuMDA1MDQxLCAwLjAwNTA1MSwgMC4wMDUwNTgsIDAuMDA1MDYxLCAwLjAwNTA2NCwgMC4wMDUwNjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMU4iOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzQ3NCwgMC4wMDM1MzYsIDAuMDAzNTQ0LCAwLjAwMzU0NywgMC4wMDM1NDksIDAuMDAzNTUxLCAwLjAwMzU1MSIsIFwKLSAgICAgICAgICAiMC4wMDM0NTUsIDAuMDAzNTI3LCAwLjAwMzUzNywgMC4wMDM1NDIsIDAuMDAzNTQ1LCAwLjAwMzU0NiwgMC4wMDM1NDciLCBcCi0gICAgICAgICAgIjAuMDAzNDY5LCAwLjAwMzU0NywgMC4wMDM1NiwgMC4wMDM1NjgsIDAuMDAzNTcxLCAwLjAwMzU3NCwgMC4wMDM1NzUiLCBcCi0gICAgICAgICAgIjAuMDAzNTQ0LCAwLjAwMzYxNywgMC4wMDM2MzEsIDAuMDAzNjQsIDAuMDAzNjQ0LCAwLjAwMzY0NywgMC4wMDM2NDgiLCBcCi0gICAgICAgICAgIjAuMDAzNjQ5LCAwLjAwMzY5MywgMC4wMDM3MDksIDAuMDAzNzE4LCAwLjAwMzcyMywgMC4wMDM3MjYsIDAuMDAzNzM1IiwgXAotICAgICAgICAgICIwLjAwMzgxMywgMC4wMDM4NDcsIDAuMDAzODcyLCAwLjAwMzg3NCwgMC4wMDM4NzksIDAuMDAzODkxLCAwLjAwMzg4NCIsIFwKLSAgICAgICAgICAiMC4wMDM5NTIsIDAuMDAzOTk1LCAwLjAwNDAyNCwgMC4wMDQwMTksIDAuMDA0MDI3LCAwLjAwNDAzMSwgMC4wMDQwMzMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQzNTUsIDAuMDA0NDQyLCAwLjAwNDQ1MywgMC4wMDQ0NiwgMC4wMDQ0NjMsIDAuMDA0NDY1LCAwLjAwNDQ2NyIsIFwKLSAgICAgICAgICAiMC4wMDQzMjQsIDAuMDA0NDMsIDAuMDA0NDQ0LCAwLjAwNDQ1MSwgMC4wMDQ0NTUsIDAuMDA0NDU4LCAwLjAwNDQ1OSIsIFwKLSAgICAgICAgICAiMC4wMDQzNjYsIDAuMDA0NDcyLCAwLjAwNDQ4OSwgMC4wMDQ0OTgsIDAuMDA0NTAzLCAwLjAwNDUwNiwgMC4wMDQ1MDgiLCBcCi0gICAgICAgICAgIjAuMDA0NDc5LCAwLjAwNDU0OCwgMC4wMDQ1NjUsIDAuMDA0NTc0LCAwLjAwNDU3OSwgMC4wMDQ1ODIsIDAuMDA0NTg0IiwgXAotICAgICAgICAgICIwLjAwNDU0NywgMC4wMDQ2MTksIDAuMDA0NjMzLCAwLjAwNDY0MywgMC4wMDQ2NDcsIDAuMDA0NjUsIDAuMDA0NjUyIiwgXAotICAgICAgICAgICIwLjAwNDc0MiwgMC4wMDQ3NjYsIDAuMDA0NzgsIDAuMDA0NzksIDAuMDA0Nzk0LCAwLjAwNDc5OSwgMC4wMDQ4MDEiLCBcCi0gICAgICAgICAgIjAuMDA0OTI2LCAwLjAwNDkxNSwgMC4wMDQ5MjYsIDAuMDA0OTM1LCAwLjAwNDkzOSwgMC4wMDQ5NDIsIDAuMDA0OTQ0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDQyNiwgMC4wMDQ0NTIsIDAuMDA0NDU0LCAwLjAwNDQ1NSwgMC4wMDQ0NTYsIDAuMDA0NDU2LCAwLjAwNDQ1NiIsIFwKLSAgICAgICAgICAiMC4wMDQzNTgsIDAuMDA0NDM2LCAwLjAwNDQ0OCwgMC4wMDQ0NDcsIDAuMDA0NDU2LCAwLjAwNDQ1LCAwLjAwNDQ2MSIsIFwKLSAgICAgICAgICAiMC4wMDQzNTcsIDAuMDA0NDE5LCAwLjAwNDQzNCwgMC4wMDQ0NDIsIDAuMDA0NDQ0LCAwLjAwNDQ0OSwgMC4wMDQ0NDkiLCBcCi0gICAgICAgICAgIjAuMDA0NDIzLCAwLjAwNDQyNCwgMC4wMDQ0MzQsIDAuMDA0NDQxLCAwLjAwNDQ0NSwgMC4wMDQ0NDgsIDAuMDA0NDUyIiwgXAotICAgICAgICAgICIwLjAwNDUzMSwgMC4wMDQ0NTIsIDAuMDA0NDUsIDAuMDA0NDUyLCAwLjAwNDQ1MywgMC4wMDQ0NTQsIDAuMDA0NDU3IiwgXAotICAgICAgICAgICIwLjAwNDc2NywgMC4wMDQ1MjgsIDAuMDA0NTAxLCAwLjAwNDQ4NSwgMC4wMDQ0OCwgMC4wMDQ0NzYsIDAuMDA0NDczIiwgXAotICAgICAgICAgICIwLjAwNTAzNSwgMC4wMDQ2MjYsIDAuMDA0NTY5LCAwLjAwNDUzNSwgMC4wMDQ1MjIsIDAuMDA0NTExLCAwLjAwNDUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDA0NTMsIDAuMDAwNDY2LCAwLjAwMDQ2NywgMC4wMDA0NjgsIDAuMDAwNDY4LCAwLjAwMDQ2OCwgMC4wMDA0NjgiLCBcCi0gICAgICAgICAgIjAuMDAwNDIsIDAuMDAwNDM2LCAwLjAwMDQ0LCAwLjAwMDQ0MSwgMC4wMDA0NDIsIDAuMDAwNDQzLCAwLjAwMDQ0MyIsIFwKLSAgICAgICAgICAiMC4wMDA1MzQsIDAuMDAwNDY1LCAwLjAwMDQ1OCwgMC4wMDA0NTQsIDAuMDAwNDUyLCAwLjAwMDQ1LCAwLjAwMDQ1IiwgXAotICAgICAgICAgICIwLjAwMDYzOCwgMC4wMDA1MzUsIDAuMDAwNTAzLCAwLjAwMDQ4NCwgMC4wMDA0NzUsIDAuMDAwNDY5LCAwLjAwMDQ2NSIsIFwKLSAgICAgICAgICAiMC4wMDA4NSwgMC4wMDA2MTEsIDAuMDAwNTUzLCAwLjAwMDUyLCAwLjAwMDUwMSwgMC4wMDA0OTIsIDAuMDAwNDg0IiwgXAotICAgICAgICAgICIwLjAwMTI1LCAwLjAwMDc2MiwgMC4wMDA2NTUsIDAuMDAwNTk0LCAwLjAwMDU1OSwgMC4wMDA1MzksIDAuMDAwNTI1IiwgXAotICAgICAgICAgICIwLjAwMTY0MywgMC4wMDA5MjMsIDAuMDAwNzY1LCAwLjAwMDY3MiwgMC4wMDA2MjMsIDAuMDAwNTkxLCAwLjAwMDU2OCIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogQU9JMkJCMVg0ICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoQU9JMkJCMVg0KSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuODUyODUzOwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBME4pICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTAwMzc1OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDk5OTg3MTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDEwMDM3NTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDE3MiwgMC4wMDE3MDEsIDAuMDAxNzU4LCAwLjAwMTg1MiwgMC4wMDE5NzIsIDAuMDAyMTk5LCAwLjAwMjQzNCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNjE5NywgMC4wMDYxNTcsIDAuMDA2MTczLCAwLjAwNjIyNSwgMC4wMDYzMDEsIDAuMDA2NDY1LCAwLjAwNjYzOCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQTFOKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA5ODI2NDk7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwOTgyNjQ5OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDk4MjYwODsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDE0NTQsIDAuMDAxNDE3LCAwLjAwMTQ2MywgMC4wMDE1NTcsIDAuMDAxNjU1LCAwLjAwMTg2NCwgMC4wMDIwNjMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDU3NDEsIDAuMDA1NzE3LCAwLjAwNTc3OSwgMC4wMDU4NywgMC4wMDU5OTQsIDAuMDA2MjA3LCAwLjAwNjQzNiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQjApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMzUzOTA0OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMzUyNDc1OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMzUzOTA0OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTg5OCwgMC4wMDIwMjIsIDAuMDAyMDQzLCAwLjAwMjA0NywgMC4wMDIwNjQsIDAuMDAyMDcyLCAwLjAwMjA3MSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjEyOSwgMC4wMDIxMzEsIDAuMDAyMTMxLCAwLjAwMjEzMSwgMC4wMDIxMzIsIDAuMDAyMTMyLCAwLjAwMjEzMiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjc0ODAzMzsKLSAgICBmdW5jdGlvbiA6ICIoISgoIShBME4rQTFOKSkrQjApKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTBOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0Mjc1MiwgMC4xNDI1NzEsIDAuMjQxODYzLCAwLjMxMjc1OSwgMC40MjYyMzYsIDAuNTI1NDUsIDAuNjY3NDA4IiwgXAotICAgICAgICAgICIwLjA1MTA3MywgMC4xNTA5MDUsIDAuMjUwMTkxLCAwLjMyMTA5MiwgMC40MzQ1NzUsIDAuNTMzNzgzLCAwLjY3NTU5NCIsIFwKLSAgICAgICAgICAiMC4wNjA1NTYsIDAuMTYwMjg0LCAwLjI1OTU5LCAwLjMzMDQ5LCAwLjQ0MzkzMiwgMC41NDMxNzMsIDAuNjg0OTk0IiwgXAotICAgICAgICAgICIwLjA2ODEyNywgMC4xNjc4MzgsIDAuMjY3MTIzLCAwLjMzODAyOCwgMC40NTE0NSwgMC41NTA4NDMsIDAuNjkyNTYxIiwgXAotICAgICAgICAgICIwLjA3NDMyNCwgMC4xNzM5NjMsIDAuMjczMjI4LCAwLjM0NDE5MiwgMC40NTc2MSwgMC41NTY4MzIsIDAuNjk4NTcxIiwgXAotICAgICAgICAgICIwLjA4MjQ4NSwgMC4xODIxNywgMC4yODE0MjYsIDAuMzUyMzEsIDAuNDY1ODMyLCAwLjU2NDk2MywgMC43MDY3NzkiLCBcCi0gICAgICAgICAgIjAuMDg4NTQyLCAwLjE4ODI2NCwgMC4yODc0OTIsIDAuMzU4MzU4LCAwLjQ3MTc1MywgMC41NzEsIDAuNzEyNzYzIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQzODM1LCAwLjI1MjA2MiwgMC40NjIyNTYsIDAuNjExNjgsIDAuODUxNjY0LCAxLjA2MTYzLCAxLjM2MTc4IiwgXAotICAgICAgICAgICIwLjA0Mzg3NywgMC4yNTE5MTEsIDAuNDYyMDMsIDAuNjEyMDgyLCAwLjg1MTgzMSwgMS4wNjE4LCAxLjM2MTkiLCBcCi0gICAgICAgICAgIjAuMDQ0NTMyLCAwLjI1MjE0LCAwLjQ2MjE4OSwgMC42MTIwODcsIDAuODUxODY5LCAxLjA2MTk0LCAxLjM2MTg2IiwgXAotICAgICAgICAgICIwLjA0NTU5NiwgMC4yNTIxNjcsIDAuNDYyMDEyLCAwLjYxMjEyNSwgMC44NTI0NDcsIDEuMDYyOTMsIDEuMzYyODIiLCBcCi0gICAgICAgICAgIjAuMDQ2NzAxLCAwLjI1MjIzLCAwLjQ2MjExMSwgMC42MTIyNTEsIDAuODUyNDI0LCAxLjA2MjYyLCAxLjM2MjgxIiwgXAotICAgICAgICAgICIwLjA0ODIzNywgMC4yNTIzNTYsIDAuNDYyMTExLCAwLjYxMjE4NCwgMC44NTIzNjgsIDEuMDYyNSwgMS4zNjI3OCIsIFwKLSAgICAgICAgICAiMC4wNDk2NTEsIDAuMjUyNDEzLCAwLjQ2MTkyLCAwLjYxMjE1NCwgMC44NTIyNTYsIDEuMDYyNDQsIDEuMzYyNjYiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTE2MDQsIDAuMTEwMTc5LCAwLjE2NDY4NiwgMC4yMDM1MzEsIDAuMjY1Njc1LCAwLjMyMDAyMiwgMC4zOTc2ODMiLCBcCi0gICAgICAgICAgIjAuMDU3NTk1LCAwLjExNjE3NywgMC4xNzA2NTgsIDAuMjA5NDkyLCAwLjI3MTYwMywgMC4zMjU5ODIsIDAuNDAzNjA1IiwgXAotICAgICAgICAgICIwLjA2NDYwNiwgMC4xMjMxNzMsIDAuMTc3NjYxLCAwLjIxNjQ5NiwgMC4yNzg2MDQsIDAuMzMyOTk1LCAwLjQxMDYwNCIsIFwKLSAgICAgICAgICAiMC4wNzA3NywgMC4xMjk1NzcsIDAuMTg0MDUyLCAwLjIyMjg3OCwgMC4yODQ5ODgsIDAuMzM5MzQ2LCAwLjQxNjk5NSIsIFwKLSAgICAgICAgICAiMC4wNzU4NzQsIDAuMTM1MDU1LCAwLjE4OTUyMiwgMC4yMjgzNjEsIDAuMjkwNDQ3LCAwLjM0NDc5MiwgMC40MjI0NSIsIFwKLSAgICAgICAgICAiMC4wODI5NCwgMC4xNDI2ODEsIDAuMTk3Mjg4LCAwLjIzNjA5NiwgMC4yOTgyMDgsIDAuMzUyNTIzLCAwLjQzMDE1IiwgXAotICAgICAgICAgICIwLjA4ODMzMiwgMC4xNDg0MiwgMC4yMDI5NzgsIDAuMjQxNzg5LCAwLjMwMzg5LCAwLjM1ODIyMSwgMC40MzU4NDMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzA5NTgsIDAuMTM4Mjc3LCAwLjI0ODkyNywgMC4zMjg1NTUsIDAuNDU1Njk2LCAwLjU2Nzg1NSwgMC43Mjg5OTMiLCBcCi0gICAgICAgICAgIjAuMDMwODc0LCAwLjEzODI2MiwgMC4yNDg4OTgsIDAuMzI4NTI4LCAwLjQ1NjM4OSwgMC41Njc4OTMsIDAuNzI4OTY2IiwgXAotICAgICAgICAgICIwLjAzMTI3NSwgMC4xMzgzNTEsIDAuMjQ4OTMzLCAwLjMyODU1MywgMC40NTYzOTMsIDAuNTY3NjMsIDAuNzI4OTYiLCBcCi0gICAgICAgICAgIjAuMDMyMTQ1LCAwLjEzODY1MiwgMC4yNDkxMiwgMC4zMjg2NDksIDAuNDU2NDYxLCAwLjU2Nzg2LCAwLjcyODk5NiIsIFwKLSAgICAgICAgICAiMC4wMzMyMDgsIDAuMTM5MTA1LCAwLjI0OTI5OCwgMC4zMjgxMzYsIDAuNDU1ODkxLCAwLjU2ODQ3NywgMC43MjkiLCBcCi0gICAgICAgICAgIjAuMDM0MzYxLCAwLjEzOTY2MywgMC4yNDk2NjMsIDAuMzI5MDQxLCAwLjQ1Njc1NiwgMC41Njg2MDYsIDAuNzI4OTI1IiwgXAotICAgICAgICAgICIwLjAzNTY1OSwgMC4xNDA0MTgsIDAuMjQ5ODU1LCAwLjMyODkzLCAwLjQ1Njg1MywgMC41Njg4NjQsIDAuNzI4MDcyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkExTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDEwNCwgMC4xNDA3MzEsIDAuMjQwMTU4LCAwLjMxMTA2MywgMC40MjQ3NjUsIDAuNTIzNzk3LCAwLjY2NTc4MSIsIFwKLSAgICAgICAgICAiMC4wNDkyNCwgMC4xNDkwMzgsIDAuMjQ4MzA2LCAwLjMxOTQ2MywgMC40MzI3NTksIDAuNTMyMTk3LCAwLjY3Mzk3NSIsIFwKLSAgICAgICAgICAiMC4wNTgyNjksIDAuMTU3OTI0LCAwLjI1NzMwNCwgMC4zMjgzMDMsIDAuNDQxOTEyLCAwLjU0MTExNywgMC42ODI4NzYiLCBcCi0gICAgICAgICAgIjAuMDY1MjM1LCAwLjE2NDgsIDAuMjY0MTc5LCAwLjMzNTEwNSwgMC40NDg2MSwgMC41NDc4ODcsIDAuNjg5NjgiLCBcCi0gICAgICAgICAgIjAuMDcwNzY2LCAwLjE3MDQ0MSwgMC4yNjk5MzYsIDAuMzQxLCAwLjQ1NDY5NywgMC41NTM3NzQsIDAuNjk1NTE3IiwgXAotICAgICAgICAgICIwLjA3ODMzLCAwLjE3Nzk3LCAwLjI3NzI2OCwgMC4zNDgxMzYsIDAuNDYxODA0LCAwLjU2MDg5MSwgMC43MDI5OTQiLCBcCi0gICAgICAgICAgIjAuMDgzODgsIDAuMTgzMjQ2LCAwLjI4MjQ5NSwgMC4zNTMzNTYsIDAuNDY2ODA2LCAwLjU2NjQxNCwgMC43MDc5MTUiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDM2MzYsIDAuMjUxOTExLCAwLjQ2MTc3NCwgMC42MTE4MjUsIDAuODUxOTA2LCAxLjA2Mzg2LCAxLjM2MTg5IiwgXAotICAgICAgICAgICIwLjA0MzcyNywgMC4yNTE4NTEsIDAuNDYyMDczLCAwLjYxMTg5MywgMC44NTM0NzIsIDEuMDYxODQsIDEuMzYyNzYiLCBcCi0gICAgICAgICAgIjAuMDQ0NTExLCAwLjI1MTk2NSwgMC40NjI2NTgsIDAuNjEyMDM1LCAwLjg1MTg3MywgMS4wNjI1MywgMS4zNjE2NyIsIFwKLSAgICAgICAgICAiMC4wNDU3MjUsIDAuMjUxOTQ1LCAwLjQ2MTk3NywgMC42MTI4NzQsIDAuODUxNzIsIDEuMDYyNTEsIDEuMzYyOTEiLCBcCi0gICAgICAgICAgIjAuMDQ2ODc2LCAwLjI1MjI0NSwgMC40NjE4OTQsIDAuNjExOTgzLCAwLjg1MjE3MywgMS4wNjE5NCwgMS4zNjE4NiIsIFwKLSAgICAgICAgICAiMC4wNDg3MjksIDAuMjUyMzM2LCAwLjQ2MjY0NiwgMC42MTI4MjcsIDAuODUxODMxLCAxLjA2MjQ4LCAxLjM2MjUyIiwgXAotICAgICAgICAgICIwLjA0OTk2MywgMC4yNTIzOTMsIDAuNDYyNjcxLCAwLjYxMTk1MiwgMC44NTMyMjQsIDEuMDYxODgsIDEuMzY0MTYiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDk1NzIsIDAuMTA4MTczLCAwLjE2MjY4LCAwLjIwMTUzNSwgMC4yNjM2NDcsIDAuMzE3OTg0LCAwLjM5NTY2NyIsIFwKLSAgICAgICAgICAiMC4wNTcxMDEsIDAuMTE1Njc4LCAwLjE3MDE2MywgMC4yMDg5OTgsIDAuMjcxMTEsIDAuMzI1NDkxLCAwLjQwMzExMyIsIFwKLSAgICAgICAgICAiMC4wNjY3NDMsIDAuMTI1Mjg1LCAwLjE3OTc3MiwgMC4yMTg2MDYsIDAuMjgwNzE4LCAwLjMzNTEwNiwgMC40MTI3MDMiLCBcCi0gICAgICAgICAgIjAuMDc1MDczLCAwLjEzMzY1NSwgMC4xODgxMjEsIDAuMjI2OTU0LCAwLjI4OTA2OCwgMC4zNDM0NSwgMC40MjEwNjgiLCBcCi0gICAgICAgICAgIjAuMDgyMzQ5LCAwLjE0MTQ3NCwgMC4xOTU5NzYsIDAuMjM0ODE1LCAwLjI5NjkyNCwgMC4zNTEyODMsIDAuNDI4OTY2IiwgXAotICAgICAgICAgICIwLjA5MTc2MywgMC4xNTEzNDgsIDAuMjA2MDUxLCAwLjI0NDg3NiwgMC4zMDY5NSwgMC4zNjEyOTIsIDAuNDM4OTM0IiwgXAotICAgICAgICAgICIwLjA5ODY3NiwgMC4xNTg1ODcsIDAuMjEzMzk5LCAwLjI1MTgzMSwgMC4zMTM4NzQsIDAuMzY4MTgsIDAuNDQ1NzU1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDMwOTAyLCAwLjEzODI3MiwgMC4yNDg4MjQsIDAuMzI4NTU3LCAwLjQ1NjM3MSwgMC41NjgzODgsIDAuNzI3MzgxIiwgXAotICAgICAgICAgICIwLjAzMDg4OCwgMC4xMzgyNjUsIDAuMjQ4OTA3LCAwLjMyODUzMywgMC40NTYzODgsIDAuNTY3NDI2LCAwLjcyODk2MSIsIFwKLSAgICAgICAgICAiMC4wMzEzMjksIDAuMTM4MzczLCAwLjI0ODk0NSwgMC4zMjg1MjMsIDAuNDU2NDQzLCAwLjU2NzQwMywgMC43Mjg5MzEiLCBcCi0gICAgICAgICAgIjAuMDMyNTA4LCAwLjEzODczLCAwLjI0OTA5MSwgMC4zMjg2MTQsIDAuNDU2NDU4LCAwLjU2NzYzNCwgMC43Mjg5ODYiLCBcCi0gICAgICAgICAgIjAuMDMzNjg3LCAwLjEzOTM0NCwgMC4yNDkxMzYsIDAuMzI4ODQ2LCAwLjQ1NTk4MiwgMC41Njc5NzUsIDAuNzI3Mjg2IiwgXAotICAgICAgICAgICIwLjAzNTgxNSwgMC4xNDAxNDUsIDAuMjQ5NTUsIDAuMzI4NTksIDAuNDU2MTc2LCAwLjU2ODc3MiwgMC43MjkwNjQiLCBcCi0gICAgICAgICAgIjAuMDM3NTk3LCAwLjE0MDg5LCAwLjI1MDAxNCwgMC4zMjg4MzgsIDAuNDU2OTc2LCAwLjU2ODk1LCAwLjcyODk3MyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjU0MDksIDAuMTI1MDQ0LCAwLjIyNDM5MywgMC4yOTUyNDIsIDAuNDA5MzY4LCAwLjUwNzk5OSwgMC42NTAzNTUiLCBcCi0gICAgICAgICAgIjAuMDMwODQyLCAwLjEzMDcwNiwgMC4yMzAwNSwgMC4zMDEyMzQsIDAuNDE0NzAyLCAwLjUxMzY1NiwgMC42NTU1NDUiLCBcCi0gICAgICAgICAgIjAuMDM2ODk1LCAwLjEzNzkwNiwgMC4yMzcyNzEsIDAuMzA4MjQsIDAuNDIyMDYxLCAwLjUyMTU0OCwgMC42NjI5MDMiLCBcCi0gICAgICAgICAgIjAuMDQxNTg0LCAwLjE0NTIwMSwgMC4yNDQ2OTMsIDAuMzE1NzA0LCAwLjQyOTEyNywgMC41Mjg5NTQsIDAuNjcwMjgxIiwgXAotICAgICAgICAgICIwLjA0NTQxNCwgMC4xNTI1NCwgMC4yNTIwNzgsIDAuMzIzMDIsIDAuNDM2OCwgMC41MzYyMzIsIDAuNjc4MzU4IiwgXAotICAgICAgICAgICIwLjA1MDYxLCAwLjE2NDUxNiwgMC4yNjM3OTcsIDAuMzM0OTA3LCAwLjQ0ODY1MywgMC41NDcyNywgMC42OTAzMjQiLCBcCi0gICAgICAgICAgIjAuMDU0MTA1LCAwLjE3NDg4OCwgMC4yNzQ4NzMsIDAuMzQ1NDI2LCAwLjQ1OTM0MiwgMC41NTg0MDEsIDAuNzAwMzcxIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQyMjE5LCAwLjI1MjI1LCAwLjQ2MTkzMSwgMC42MTE4OSwgMC44NTI0NDYsIDEuMDYxODgsIDEuMzYyMTUiLCBcCi0gICAgICAgICAgIjAuMDQzNjU0LCAwLjI1MTkxOCwgMC40NjIwNzIsIDAuNjExOTgxLCAwLjg1MTkxNCwgMS4wNjM3NCwgMS4zNjQ0IiwgXAotICAgICAgICAgICIwLjA0ODc0NCwgMC4yNTIyNTEsIDAuNDYyMDU0LCAwLjYxMjk0OSwgMC44NTI5NjYsIDEuMDYyODgsIDEuMzYyNzYiLCBcCi0gICAgICAgICAgIjAuMDU1MTUyLCAwLjI1NDM3LCAwLjQ2MjAzOCwgMC42MTE4MjUsIDAuODUyMzA5LCAxLjA2MjIxLCAxLjM2NDQ1IiwgXAotICAgICAgICAgICIwLjA2MDk3NSwgMC4yNTc1MiwgMC40NjM2NDksIDAuNjEyMDQ5LCAwLjg1MTkzOSwgMS4wNjE5MywgMS4zNjIzIiwgXAotICAgICAgICAgICIwLjA2OTkwOCwgMC4yNjQ1MywgMC40NjczMTQsIDAuNjE1Mzc1LCAwLjg1MjMxMiwgMS4wNjMyLCAxLjM2MjQ5IiwgXAotICAgICAgICAgICIwLjA3NzUzOCwgMC4yNzE1MDYsIDAuNDcyMTMyLCAwLjYxNzg3LCAwLjg1NDA4NCwgMS4wNjQzMSwgMS4zNjI2NyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxNDY1OCwgMC4wNjg1MTksIDAuMTIyMTQsIDAuMTYwNDA2LCAwLjIyMTc1MywgMC4yNzUzMTMsIDAuMzUxODgyIiwgXAotICAgICAgICAgICIwLjAyMzA1OSwgMC4wNzY5MTMsIDAuMTMwNTA5LCAwLjE2ODc5MSwgMC4yMzAwMTYsIDAuMjgzNiwgMC4zNjAwOTQiLCBcCi0gICAgICAgICAgIjAuMDMwODQxLCAwLjA4NzM5NywgMC4xNDA5NTksIDAuMTc5MjM2LCAwLjI0MDQ5NywgMC4yOTQwMDgsIDAuMzcwNjA3IiwgXAotICAgICAgICAgICIwLjAzNjQyMiwgMC4wOTg0NjMsIDAuMTUxODU5LCAwLjE5MDEsIDAuMjUxMDgyLCAwLjMwNDg4NCwgMC4zODE0NzIiLCBcCi0gICAgICAgICAgIjAuMDQwODE4LCAwLjEwODc1NSwgMC4xNjIwNTEsIDAuMjAwMjAyLCAwLjI2MTM1LCAwLjMxNDk3NiwgMC4zOTE1MTQiLCBcCi0gICAgICAgICAgIjAuMDQ2NjkxLCAwLjEyNTQzLCAwLjE3OTI3NCwgMC4yMTc0MTUsIDAuMjc4NDI5LCAwLjMzMTkxOSwgMC40MDg0MjciLCBcCi0gICAgICAgICAgIjAuMDUxMDk0LCAwLjEzODEzLCAwLjE5NDUwOCwgMC4yMzI1NDYsIDAuMjkzNDYxLCAwLjM0NjkxNCwgMC40MjMyODIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjI5MTQsIDAuMTMzMTI1LCAwLjI0MzQxNywgMC4zMjIyMzgsIDAuNDQ4NDcyLCAwLjU1ODgwNiwgMC43MTYzNzEiLCBcCi0gICAgICAgICAgIjAuMDI3ODEsIDAuMTMzMTUyLCAwLjI0MzQyNywgMC4zMjIyOTEsIDAuNDQ4MzMyLCAwLjU1ODYzNywgMC43MTYyNzgiLCBcCi0gICAgICAgICAgIjAuMDM3MDc3LCAwLjEzNjM4LCAwLjI0Mzg0NiwgMC4zMjIyNzIsIDAuNDQ4NDMyLCAwLjU1ODYzOSwgMC43MTYyMjMiLCBcCi0gICAgICAgICAgIjAuMDQ1MzYyLCAwLjE0MjE5MywgMC4yNDY1NDMsIDAuMzIzNDEsIDAuNDQ4NTEsIDAuNTU4NjQsIDAuNzE2MzQzIiwgXAotICAgICAgICAgICIwLjA1Mjc1OSwgMC4xNDk5NjYsIDAuMjUxNTc3LCAwLjMyNjgxMywgMC40NDk2OTIsIDAuNTU4ODc5LCAwLjcxNjI2IiwgXAotICAgICAgICAgICIwLjA2MzMwOCwgMC4xNjMzNDIsIDAuMjYxNTA2LCAwLjMzNDc0NywgMC40NTQ4NSwgMC41NjE5NzEsIDAuNzE3MDk0IiwgXAotICAgICAgICAgICIwLjA3MTc2NiwgMC4xNzYzNjYsIDAuMjcxNzY4LCAwLjM0MzQyLCAwLjQ2MTM1OCwgMC41NjY5NSwgMC43MTk5MTYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBME4iOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2ODE5LCAwLjAwNzAxNCwgMC4wMDcwNDEsIDAuMDA3MDQ0LCAwLjAwNzA1MywgMC4wMDcwNjEsIDAuMDA3MDY0IiwgXAotICAgICAgICAgICIwLjAwNjc2NSwgMC4wMDY5NzEsIDAuMDA3MDExLCAwLjAwNzAyLCAwLjAwNzAzNSwgMC4wMDcwMzgsIDAuMDA3MDQ1IiwgXAotICAgICAgICAgICIwLjAwNjgzNCwgMC4wMDcwMSwgMC4wMDcwNTUsIDAuMDA3MDcxLCAwLjAwNzA4NSwgMC4wMDcwOSwgMC4wMDcwOTkiLCBcCi0gICAgICAgICAgIjAuMDA2OTQxLCAwLjAwNzA4OSwgMC4wMDcxMzgsIDAuMDA3MTU4LCAwLjAwNzE3MiwgMC4wMDcxODEsIDAuMDA3MTg4IiwgXAotICAgICAgICAgICIwLjAwNzA5OSwgMC4wMDcyMDQsIDAuMDA3MjUsIDAuMDA3MjcyLCAwLjAwNzI4OSwgMC4wMDcyOTgsIDAuMDA3MzA3IiwgXAotICAgICAgICAgICIwLjAwNzM5NCwgMC4wMDc0MjksIDAuMDA3NDc0LCAwLjAwNzQ5MywgMC4wMDc1MSwgMC4wMDc1MjEsIDAuMDA3NTMiLCBcCi0gICAgICAgICAgIjAuMDA3Njg2LCAwLjAwNzY1NywgMC4wMDc2OTQsIDAuMDA3NzEsIDAuMDA3NzI4LCAwLjAwNzczNywgMC4wMDc3NDkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwODIxMiwgMC4wMDg0MzcsIDAuMDA4NDczLCAwLjAwODQ4NSwgMC4wMDg0OTcsIDAuMDA4NTAyLCAwLjAwODUwNyIsIFwKLSAgICAgICAgICAiMC4wMDgxMjMsIDAuMDA4MzgzLCAwLjAwODQyNCwgMC4wMDg0MzcsIDAuMDA4NDQ5LCAwLjAwODQ1NSwgMC4wMDg0NjEiLCBcCi0gICAgICAgICAgIjAuMDA4MTY5LCAwLjAwODM4OCwgMC4wMDg0MywgMC4wMDg0NDMsIDAuMDA4NDU1LCAwLjAwODQ2MiwgMC4wMDg0NjciLCBcCi0gICAgICAgICAgIjAuMDA4MjY1LCAwLjAwODQzNywgMC4wMDg0NzgsIDAuMDA4NDkxLCAwLjAwODUwMywgMC4wMDg1MDksIDAuMDA4NTE0IiwgXAotICAgICAgICAgICIwLjAwODM2LCAwLjAwODQ5OSwgMC4wMDg1NCwgMC4wMDg1NTUsIDAuMDA4NTY4LCAwLjAwODU3NSwgMC4wMDg1ODEiLCBcCi0gICAgICAgICAgIjAuMDA4NDcsIDAuMDA4NjMzLCAwLjAwODY4LCAwLjAwODY5NiwgMC4wMDg3MDgsIDAuMDA4NzE5LCAwLjAwODcyNCIsIFwKLSAgICAgICAgICAiMC4wMDg4MzcsIDAuMDA4ODAzLCAwLjAwODg0MywgMC4wMDg4NTUsIDAuMDA4ODY4LCAwLjAwODg3NSwgMC4wMDg4ODIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMU4iOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2NTY0LCAwLjAwNjc1NiwgMC4wMDY3NzksIDAuMDA2NzkxLCAwLjAwNjc5NSwgMC4wMDY3OTgsIDAuMDA2ODAxIiwgXAotICAgICAgICAgICIwLjAwNjQ5MSwgMC4wMDY2OTksIDAuMDA2NzM0LCAwLjAwNjc0NCwgMC4wMDY3NTIsIDAuMDA2NzYxLCAwLjAwNjc2NyIsIFwKLSAgICAgICAgICAiMC4wMDY1NjksIDAuMDA2NzQzLCAwLjAwNjc4NSwgMC4wMDY4LCAwLjAwNjgxMSwgMC4wMDY4MDksIDAuMDA2ODI1IiwgXAotICAgICAgICAgICIwLjAwNjY4MiwgMC4wMDY3OTUsIDAuMDA2ODM2LCAwLjAwNjg1LCAwLjAwNjg2NSwgMC4wMDY4NzIsIDAuMDA2ODc4IiwgXAotICAgICAgICAgICIwLjAwNjgzOCwgMC4wMDY5MDUsIDAuMDA2OTQ1LCAwLjAwNjk2LCAwLjAwNjk3NywgMC4wMDY5ODQsIDAuMDA2OTkzIiwgXAotICAgICAgICAgICIwLjAwNzEzOSwgMC4wMDcxMjIsIDAuMDA3MTU5LCAwLjAwNzE3MSwgMC4wMDcxODksIDAuMDA3MTk3LCAwLjAwNzIwNCIsIFwKLSAgICAgICAgICAiMC4wMDczMywgMC4wMDczMjUsIDAuMDA3MzM4LCAwLjAwNzM1NCwgMC4wMDczNjgsIDAuMDA3Mzc5LCAwLjAwNzQwNyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA3NzYsIDAuMDA3OTksIDAuMDA4MDI3LCAwLjAwODAzOSwgMC4wMDgwNDksIDAuMDA4MDU0LCAwLjAwODA1OCIsIFwKLSAgICAgICAgICAiMC4wMDc2NywgMC4wMDc5MzcsIDAuMDA3OTgzLCAwLjAwNzk5OCwgMC4wMDgwMTEsIDAuMDA4MDE3LCAwLjAwODAyNCIsIFwKLSAgICAgICAgICAiMC4wMDc3NjcsIDAuMDA3OTcsIDAuMDA4MDIsIDAuMDA4MDM2LCAwLjAwODA1MywgMC4wMDgwNjEsIDAuMDA4MDY4IiwgXAotICAgICAgICAgICIwLjAwNzk3OSwgMC4wMDgwNzgsIDAuMDA4MTMxLCAwLjAwODE0NSwgMC4wMDgxNjEsIDAuMDA4MTcsIDAuMDA4MTc4IiwgXAotICAgICAgICAgICIwLjAwODA1MywgMC4wMDgxNzYsIDAuMDA4MjIxLCAwLjAwODIzNiwgMC4wMDgyNDcsIDAuMDA4MjU3LCAwLjAwODI2NCIsIFwKLSAgICAgICAgICAiMC4wMDg0MjQsIDAuMDA4MzY3LCAwLjAwODQxMiwgMC4wMDg0MjcsIDAuMDA4NDQzLCAwLjAwODQ1MSwgMC4wMDg0NTYiLCBcCi0gICAgICAgICAgIjAuMDA4NzY2LCAwLjAwODU3LCAwLjAwODYwNSwgMC4wMDg2MTcsIDAuMDA4NjI5LCAwLjAwODYzOCwgMC4wMDg2NDUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDg1NTQsIDAuMDA4NjM5LCAwLjAwODY0OCwgMC4wMDg2NTEsIDAuMDA4NjUzLCAwLjAwODY1NSwgMC4wMDg2NTUiLCBcCi0gICAgICAgICAgIjAuMDA4MzkxLCAwLjAwODU3NiwgMC4wMDg2MTEsIDAuMDA4NjIzLCAwLjAwODYzMSwgMC4wMDg2NTQsIDAuMDA4NjQyIiwgXAotICAgICAgICAgICIwLjAwODQzMSwgMC4wMDg1NDUsIDAuMDA4NTg3LCAwLjAwODYwNiwgMC4wMDg2MjMsIDAuMDA4NjIzLCAwLjAwODYzOCIsIFwKLSAgICAgICAgICAiMC4wMDg2MTIsIDAuMDA4NTcsIDAuMDA4NTk1LCAwLjAwODYwOCwgMC4wMDg2MTksIDAuMDA4NjI2LCAwLjAwODYzNSIsIFwKLSAgICAgICAgICAiMC4wMDg4OTcsIDAuMDA4NjQ0LCAwLjAwODYzNSwgMC4wMDg2MzYsIDAuMDA4NjQyLCAwLjAwODY0MSwgMC4wMDg2NDMiLCBcCi0gICAgICAgICAgIjAuMDA5NTIsIDAuMDA4ODQ0LCAwLjAwODc2MSwgMC4wMDg3MzUsIDAuMDA4NzExLCAwLjAwODcwNywgMC4wMDg2OTEiLCBcCi0gICAgICAgICAgIjAuMDEwMTgyLCAwLjAwOTA3OSwgMC4wMDg5MjksIDAuMDA4ODY5LCAwLjAwODgxMSwgMC4wMDg3ODksIDAuMDA4NzU3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDEwNzIsIDAuMDAxMTE2LCAwLjAwMTEyLCAwLjAwMTEyMSwgMC4wMDExMjIsIDAuMDAxMTIzLCAwLjAwMTEyMyIsIFwKLSAgICAgICAgICAiMC4wMDA5OTcsIDAuMDAxMDQ4LCAwLjAwMTA1OSwgMC4wMDEwNjMsIDAuMDAxMDY2LCAwLjAwMTA2OCwgMC4wMDEwNyIsIFwKLSAgICAgICAgICAiMC4wMDEyMTYsIDAuMDAxMTI0LCAwLjAwMTEsIDAuMDAxMDkzLCAwLjAwMTA4NywgMC4wMDEwODQsIDAuMDAxMDgxIiwgXAotICAgICAgICAgICIwLjAwMTc4OCwgMC4wMDEyNDksIDAuMDAxMTgzLCAwLjAwMTE1OSwgMC4wMDExMzQsIDAuMDAxMTI2LCAwLjAwMTExNyIsIFwKLSAgICAgICAgICAiMC4wMDIyMTQsIDAuMDAxNTM0LCAwLjAwMTM1MSwgMC4wMDEyOTEsIDAuMDAxMjM1LCAwLjAwMTIwOCwgMC4wMDExNzkiLCBcCi0gICAgICAgICAgIjAuMDAzMTU4LCAwLjAwMTkzOSwgMC4wMDE2MDYsIDAuMDAxNDk5LCAwLjAwMTM5NCwgMC4wMDEzMzUsIDAuMDAxMjgzIiwgXAotICAgICAgICAgICIwLjAwNDA1NSwgMC4wMDIzNjcsIDAuMDAxODg1LCAwLjAwMTcyLCAwLjAwMTU2MSwgMC4wMDE0NzksIDAuMDAxMzk2Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBBT0kyQkIxWEwgKgotICogLS0tLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChBT0kyQkIxWEwpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4yNDk2Mzc7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEwTikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNzgyOTA3OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDc4MTE3ODsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA3ODI5MDc7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzUzLCAwLjAwMDM2LCAwLjAwMDQxNywgMC4wMDA1MDgsIDAuMDAwNjE4LCAwLjAwMDgxOSwgMC4wMDEwMDgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDI1MDcsIDAuMDAyNDg4LCAwLjAwMjUxNiwgMC4wMDI1NzQsIDAuMDAyNjU5LCAwLjAwMjgxNCwgMC4wMDI5NyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQTFOKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA3NjYxNDQ7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNzY2MTQ0OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDc2NTk2NzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxNzgsIDAuMDAwMTY4LCAwLjAwMDIzMSwgMC4wMDAzMTksIDAuMDAwNDM0LCAwLjAwMDYwMSwgMC4wMDA3NjgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDIyNDIsIDAuMDAyMjQ4LCAwLjAwMjMxNiwgMC4wMDI0MDIsIDAuMDAyNTA1LCAwLjAwMjY5LCAwLjAwMjg0NyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQjApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDc3NjU5NzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA3NzQ5MDk7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNzc2NTk3OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDI2NiwgMC4wMDAyODQsIDAuMDAwMjg3LCAwLjAwMDI5LCAwLjAwMDI5MywgMC4wMDAyOTMsIDAuMDAwMjkzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzAxLCAwLjAwMDMwMSwgMC4wMDAzMDEsIDAuMDAwMzAxLCAwLjAwMDMwMSwgMC4wMDAzMDEsIDAuMDAwMzAxIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMTA4ODYzOwotICAgIGZ1bmN0aW9uIDogIighKCghKEEwTitBMU4pKStCMCkpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBME4iOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExNjU0NywgMC4xMzU0NDYsIDAuMzA1NzYzLCAwLjU4OTYyNiwgMC44NzM0MywgMS41MzU2NywgMS45MTM5NyIsIFwKLSAgICAgICAgICAiMC4xMjQyNjMsIDAuMTQzMiwgMC4zMTM1NTIsIDAuNTk3Mzg0LCAwLjg4MTE3OSwgMS41NDM0MiwgMS45MjE4MSIsIFwKLSAgICAgICAgICAiMC4xMzEyNDYsIDAuMTUwMTk3LCAwLjMyMDQ5MSwgMC42MDQyOTQsIDAuODg4MDgyLCAxLjU1MDMsIDEuOTI4ODkiLCBcCi0gICAgICAgICAgIjAuMTM2Mzc2LCAwLjE1NTMxMSwgMC4zMjU2NTcsIDAuNjA5NTMzLCAwLjg5MzI1MSwgMS41NTU0MSwgMS45MzQwNSIsIFwKLSAgICAgICAgICAiMC4xNDAzOTgsIDAuMTU5MzY3LCAwLjMyOTcwMywgMC42MTM2NzcsIDAuODk3NDcxLCAxLjU1OTc1LCAxLjkzNzk2IiwgXAotICAgICAgICAgICIwLjE0NTkxOSwgMC4xNjQ4NDksIDAuMzM1MTczLCAwLjYxOTAwMSwgMC45MDI3OTQsIDEuNTY0OTcsIDEuOTQzMjIiLCBcCi0gICAgICAgICAgIjAuMTQ5OTAzLCAwLjE2ODg4NywgMC4zMzkyMTksIDAuNjIzMDIyLCAwLjkwNjk2NiwgMS41NjkzNywgMS45NDc0OSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMTUxMzgsIDAuMjU1NDc4LCAwLjYxNjQ4MiwgMS4yMTk2LCAxLjgxOTU5LCAzLjIyMzYzLCA0LjAzMTQ2IiwgXAotICAgICAgICAgICIwLjIxNTMxNiwgMC4yNTU0NTQsIDAuNjE2Njk0LCAxLjIxOTQ4LCAxLjgxOTYsIDMuMjIzNDksIDQuMDI1ODgiLCBcCi0gICAgICAgICAgIjAuMjE1MzI5LCAwLjI1NTI1LCAwLjYxNjY3OSwgMS4yMTg0OCwgMS44MjA0MywgMy4yMjM2MywgNC4wMjYxIiwgXAotICAgICAgICAgICIwLjIxNTM1LCAwLjI1NTQ0NiwgMC42MTY2MDYsIDEuMjE4NzcsIDEuODIwNzgsIDMuMjI0ODYsIDQuMDI2MjEiLCBcCi0gICAgICAgICAgIjAuMjE1MzIsIDAuMjU1NDkxLCAwLjYxNjYwOCwgMS4yMTg3NywgMS44MjA5LCAzLjIyNzMsIDQuMDI1NzciLCBcCi0gICAgICAgICAgIjAuMjE1NDA2LCAwLjI1NTUxLCAwLjYxNjU1OSwgMS4yMTg2MiwgMS44MTk1LCAzLjIyMzYzLCA0LjAyNzA3IiwgXAotICAgICAgICAgICIwLjIxNTQzOSwgMC4yNTU0NTMsIDAuNjE2NTUsIDEuMjE4NTUsIDEuODIwNzUsIDMuMjI2ODgsIDQuMDMwNTIiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc5MTU5LCAwLjA4ODgxNiwgMC4xNzU2NDgsIDAuMzIwNDAzLCAwLjQ2NTAyMiwgMC44MDI4NjMsIDAuOTk1OTgiLCBcCi0gICAgICAgICAgIjAuMDg0NzA2LCAwLjA5NDM2NSwgMC4xODEyMDIsIDAuMzI2MDE5LCAwLjQ3MDkxMywgMC44MDgyODEsIDEuMDAxNiIsIFwKLSAgICAgICAgICAiMC4wOTA2MywgMC4xMDAzMDEsIDAuMTg3MTMyLCAwLjMzMTk1NiwgMC40NzY2NDcsIDAuODE0NjQ2LCAxLjAwNzI2IiwgXAotICAgICAgICAgICIwLjA5NTI5OSwgMC4xMDQ5NzMsIDAuMTkxNzk3LCAwLjMzNjU0LCAwLjQ4MTQwMiwgMC44MTg5OTksIDEuMDExODciLCBcCi0gICAgICAgICAgIjAuMDk5MjMyLCAwLjEwODkwOSwgMC4xOTU3NDMsIDAuMzQwNTIyLCAwLjQ4NTE5NywgMC44MjI5MTYsIDEuMDE1OSIsIFwKLSAgICAgICAgICAiMC4xMDQ2NzgsIDAuMTE0Mzg2LCAwLjIwMTI3NCwgMC4zNDU5OTMsIDAuNDkwODAzLCAwLjgyODQxOCwgMS4wMjE2NCIsIFwKLSAgICAgICAgICAiMC4xMDg4MTIsIDAuMTE4NTIzLCAwLjIwNTUsIDAuMzUwMTY1LCAwLjQ5NDkyNCwgMC44MzMwNDEsIDEuMDI1NTciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTA3MTQ0LCAwLjEyNjc0MywgMC4zMDQzODksIDAuNjAwODIzLCAwLjg5OTI4OCwgMS41OTA3MiwgMS45ODYzNCIsIFwKLSAgICAgICAgICAiMC4xMDcyNzIsIDAuMTI2NzkyLCAwLjMwNDM0LCAwLjYwMDY3NCwgMC44OTc0ODUsIDEuNTkwMSwgMS45ODc5NSIsIFwKLSAgICAgICAgICAiMC4xMDc1NjQsIDAuMTI2OTYxLCAwLjMwNDQwNywgMC42MDA2NDUsIDAuODk3Nzc1LCAxLjU5MTksIDEuOTg1NDgiLCBcCi0gICAgICAgICAgIjAuMTA3OTgyLCAwLjEyNzM5LCAwLjMwNDE1NCwgMC42MDE1NDYsIDAuODk4MzU2LCAxLjU5MDY4LCAxLjk4NTc2IiwgXAotICAgICAgICAgICIwLjEwODM5NywgMC4xMjc3MzEsIDAuMzA0MTYzLCAwLjYwMDc4OSwgMC44OTczNjMsIDEuNTg5NjgsIDEuOTg2NjkiLCBcCi0gICAgICAgICAgIjAuMTA4OTIzLCAwLjEyODA3NSwgMC4zMDQ3NiwgMC42MDExOTMsIDAuODk3Nzk2LCAxLjU5MzIsIDEuOTg2MzMiLCBcCi0gICAgICAgICAgIjAuMTA5NDcsIDAuMTI4NjkxLCAwLjMwNDUxLCAwLjYwMTA1NiwgMC44OTgyMjEsIDEuNTkwMjYsIDEuOTg1NzQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTFOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTQ4OTQsIDAuMTMzNjc2LCAwLjMwNDE2OCwgMC41ODgwNjksIDAuODcyNDIxLCAxLjUzNDQsIDEuOTE1MjMiLCBcCi0gICAgICAgICAgIjAuMTIyMjIsIDAuMTQxMTc3LCAwLjMxMTYxMSwgMC41OTU4OTIsIDAuODgwMzExLCAxLjU0MzU1LCAxLjkyMTMzIiwgXAotICAgICAgICAgICIwLjEyODM4OSwgMC4xNDczNSwgMC4zMTc4NDcsIDAuNjAxNzE2LCAwLjg4NTY1NywgMS41NDg1NiwgMS45MjgzOCIsIFwKLSAgICAgICAgICAiMC4xMzI3NjksIDAuMTUxNzQ0LCAwLjMyMjM3OSwgMC42MDYyMDIsIDAuODkwMTE5LCAxLjU1MzM1LCAxLjkzMjI0IiwgXAotICAgICAgICAgICIwLjEzNjI5NCwgMC4xNTUyMjEsIDAuMzI1NzQyLCAwLjYxMDMwNCwgMC44OTQxMDYsIDEuNTU2MDgsIDEuOTM1NTUiLCBcCi0gICAgICAgICAgIjAuMTQwOTQ3LCAwLjE1OTgxOSwgMC4zMzAzNDUsIDAuNjE0MjMzLCAwLjg5ODM0NywgMS41NjA1OCwgMS45MzkzNSIsIFwKLSAgICAgICAgICAiMC4xNDQzNSwgMC4xNjMyNDcsIDAuMzMzNTY5LCAwLjYxODA5NCwgMC45MDIxMTEsIDEuNTY0NTUsIDEuOTQ0NDIiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjE1MTA5LCAwLjI1NTE1OSwgMC42MTY2NDgsIDEuMjIwMjIsIDEuODIwMjcsIDMuMjI1NjksIDQuMDI3OTEiLCBcCi0gICAgICAgICAgIjAuMjE1MjE4LCAwLjI1NTYzNiwgMC42MTYyMjIsIDEuMjE4MTMsIDEuODIwMzcsIDMuMjI1MDgsIDQuMDI2MjUiLCBcCi0gICAgICAgICAgIjAuMjE1NDcxLCAwLjI1NTMzOSwgMC42MTYyNTUsIDEuMjE5NSwgMS44MjA5LCAzLjIyNTkzLCA0LjAyNzAyIiwgXAotICAgICAgICAgICIwLjIxNTMxMiwgMC4yNTU2NzMsIDAuNjE2MzA0LCAxLjIxODc1LCAxLjgxOTQ4LCAzLjIyNjQzLCA0LjAyNjQ3IiwgXAotICAgICAgICAgICIwLjIxNTIxOCwgMC4yNTU2ODIsIDAuNjE2Mzc0LCAxLjIxODU3LCAxLjgyMDY0LCAzLjIyNjM3LCA0LjAyOTU2IiwgXAotICAgICAgICAgICIwLjIxNTM1NywgMC4yNTUzNzEsIDAuNjE2Mjk0LCAxLjIxODU2LCAxLjgyMDg3LCAzLjIyOTEsIDQuMDI4NjEiLCBcCi0gICAgICAgICAgIjAuMjE1NDksIDAuMjU1MzU5LCAwLjYxNjY1OSwgMS4yMTgyNCwgMS44MTk4NywgMy4yMjM3OSwgNC4wMjcxMSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzcxNjgsIDAuMDg2ODMsIDAuMTczNjgzLCAwLjMxODQwNSwgMC40NjMxMSwgMC44MDA5NTQsIDAuOTkzOTc3IiwgXAotICAgICAgICAgICIwLjA4NDQyMywgMC4wOTQwODIsIDAuMTgwOTIzLCAwLjMyNTc1NiwgMC40NzA0NjEsIDAuODA4MDE3LCAxLjAwMTAyIiwgXAotICAgICAgICAgICIwLjA5MjQ3NiwgMC4xMDIxMzUsIDAuMTg5MDA2LCAwLjMzMzY5NiwgMC40Nzg3MTYsIDAuODE2MTE5LCAxLjAwOTExIiwgXAotICAgICAgICAgICIwLjA5ODc1NCwgMC4xMDg0MjMsIDAuMTk1MjcsIDAuMzM5OTc4LCAwLjQ4NDg4NywgMC44MjI0ODgsIDEuMDE1ODkiLCBcCi0gICAgICAgICAgIjAuMTAzODQ3LCAwLjExMzU4NSwgMC4yMDA0NDcsIDAuMzQ1MjEsIDAuNDg5OTI3LCAwLjgyNzY0OSwgMS4wMjA3MyIsIFwKLSAgICAgICAgICAiMC4xMTA4NTYsIDAuMTIwNjE0LCAwLjIwNzMzOCwgMC4zNTIwNjUsIDAuNDk2Nzk0LCAwLjgzNDkxNywgMS4wMjc2NiIsIFwKLSAgICAgICAgICAiMC4xMTYwNTIsIDAuMTI1OTU5LCAwLjIxMjkwNSwgMC4zNTc4MzcsIDAuNTAyNTUxLCAwLjg0MDQwNCwgMS4wMzI5NSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDcyMTgsIDAuMTI2ODUsIDAuMzA0Mzc4LCAwLjYwMDk0NiwgMC44OTkxMjIsIDEuNTkwNjUsIDEuOTg2MTMiLCBcCi0gICAgICAgICAgIjAuMTA3Mjc5LCAwLjEyNjc5OCwgMC4zMDQzNjMsIDAuNjAwNjM3LCAwLjg5ODE2OSwgMS41OTAwOSwgMS45ODk4NiIsIFwKLSAgICAgICAgICAiMC4xMDc2OCwgMC4xMjcxNDYsIDAuMzAzODU3LCAwLjYwMTg0NCwgMC44OTczOSwgMS41OTMzNywgMS45ODk5MSIsIFwKLSAgICAgICAgICAiMC4xMDgwODIsIDAuMTI3NDk3LCAwLjMwNDA3NSwgMC42MDE2MjYsIDAuODk4NDI2LCAxLjU5MDc2LCAxLjk4NjAzIiwgXAotICAgICAgICAgICIwLjEwODU3OCwgMC4xMjc4OTgsIDAuMzA0NzMyLCAwLjYwMDQxOSwgMC44OTcyNzgsIDEuNTkwNywgMS45ODY0MiIsIFwKLSAgICAgICAgICAiMC4xMDkwNzEsIDAuMTI4MjI2LCAwLjMwNDk4NiwgMC42MDA3MzYsIDAuODk3MzAyLCAxLjU5MDE1LCAxLjk4ODMzIiwgXAotICAgICAgICAgICIwLjEwOTgxNiwgMC4xMjg3MzYsIDAuMzA0NzkyLCAwLjYwMTgzMywgMC44OTkxNjcsIDEuNTkwNTksIDEuOTg5ODMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjAiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwNjM0MywgMC4xMjUyNDcsIDAuMjk1NzI5LCAwLjU4MDA2OSwgMC44NjQ0MTksIDEuNTI2NjUsIDEuOTA3IiwgXAotICAgICAgICAgICIwLjExMjAyNCwgMC4xMzA5MzcsIDAuMzAxMzQ0LCAwLjU4NTMyOCwgMC44NjkyNzksIDEuNTMxNjcsIDEuOTEwNzgiLCBcCi0gICAgICAgICAgIjAuMTE4OTcxLCAwLjEzODAyNCwgMC4zMDg1OTQsIDAuNTkyNTA4LCAwLjg3NjQ5MiwgMS41Mzk5MSwgMS45MTkwNSIsIFwKLSAgICAgICAgICAiMC4xMjYwODEsIDAuMTQ0OTIzLCAwLjMxNTc3MiwgMC41OTk2MDQsIDAuODgzNDI3LCAxLjU0ODA0LCAxLjkyNDI0IiwgXAotICAgICAgICAgICIwLjEzMzAyMywgMC4xNTIwMTQsIDAuMzIyNjk5LCAwLjYwNzM1MywgMC44OTEzMjQsIDEuNTU2MDQsIDEuOTMzNTQiLCBcCi0gICAgICAgICAgIjAuMTQ0NDE0LCAwLjE2MzM2NSwgMC4zMzM5MDksIDAuNjE4OTgyLCAwLjkwMjUwNiwgMS41NjQ4NSwgMS45NDU1NCIsIFwKLSAgICAgICAgICAiMC4xNTM4MjIsIDAuMTczMzczLCAwLjM0Mzg3LCAwLjYyOTAyNywgMC45MTM2MTYsIDEuNTc1MzksIDEuOTUzOTUiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjE1MTc0LCAwLjI1NTI2NywgMC42MTY1NzcsIDEuMjE4ODksIDEuODIwMzcsIDMuMjI1NSwgNC4wMjgxOCIsIFwKLSAgICAgICAgICAiMC4yMTUxMTYsIDAuMjU1MiwgMC42MTczOCwgMS4yMTc3OCwgMS44MTk1NSwgMy4yMjk3MSwgNC4wMjg3NiIsIFwKLSAgICAgICAgICAiMC4yMTYwMzEsIDAuMjU1Njk3LCAwLjYxNjI4NywgMS4yMTg3MywgMS44MjA4MywgMy4yMjU2NywgNC4wMjciLCBcCi0gICAgICAgICAgIjAuMjE4ODc5LCAwLjI1ODE4OCwgMC42MTY0NjMsIDEuMjE4LCAxLjgyMTA4LCAzLjIyNTUzLCA0LjAzMzA2IiwgXAotICAgICAgICAgICIwLjIyMjQ3OCwgMC4yNjEzMzYsIDAuNjE3NTk4LCAxLjIyMDAxLCAxLjgyMDYyLCAzLjIzMjU5LCA0LjAyODA5IiwgXAotICAgICAgICAgICIwLjIzMDA5MiwgMC4yNjc5OTksIDAuNjE5OTI2LCAxLjIxODUyLCAxLjgxOTc0LCAzLjIyNTgzLCA0LjAyNzUxIiwgXAotICAgICAgICAgICIwLjIzNzYxNSwgMC4yNzUwMzMsIDAuNjIyMzI5LCAxLjIxODcxLCAxLjgyMDE1LCAzLjIyOTE1LCA0LjAzMjg4Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1NTg4MSwgMC4wNjU1MjIsIDAuMTUyNDYsIDAuMjk3MTQ4LCAwLjQ0MiwgMC43Nzk3NjIsIDAuOTcyODg5IiwgXAotICAgICAgICAgICIwLjA2NDAwOSwgMC4wNzM2NiwgMC4xNjA1MTUsIDAuMzA1MjYxLCAwLjQ0OTk1NCwgMC43ODc2MDgsIDAuOTgwNTY3IiwgXAotICAgICAgICAgICIwLjA3NDI0NSwgMC4wODM4NTYsIDAuMTcwNDIyLCAwLjMxNTMxMiwgMC40NjAwMDcsIDAuNzk3ODY1LCAwLjk5MDYzIiwgXAotICAgICAgICAgICIwLjA4NDc5NiwgMC4wOTQzNDcsIDAuMTgwOTA1LCAwLjMyNTc4MywgMC40NzA1MTEsIDAuODA3NjU1LCAxLjAwMDc1IiwgXAotICAgICAgICAgICIwLjA5NTMyLCAwLjEwNDk2NSwgMC4xOTEzMDUsIDAuMzM1NjYzLCAwLjQ4MDkwMywgMC44MTgyNTMsIDEuMDExOTMiLCBcCi0gICAgICAgICAgIjAuMTA5NzY1LCAwLjEyMDkzNywgMC4yMDgzMSwgMC4zNTI2MDUsIDAuNDk1MjQ5LCAwLjgzNTM2MywgMS4wMjc2NCIsIFwKLSAgICAgICAgICAiMC4xMjA1MTIsIDAuMTMzMDcxLCAwLjIyMjk4OCwgMC4zNjcyODIsIDAuNTExODQsIDAuODQ5NDE2LCAxLjA0MjU2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwNzIwOSwgMC4xMjY5OTgsIDAuMzA1MTU0LCAwLjYwMjAxMywgMC44OTg4NzQsIDEuNTkxMTcsIDEuOTg3MzIiLCBcCi0gICAgICAgICAgIjAuMTA3NTU0LCAwLjEyNzEyMywgMC4zMDUxMjcsIDAuNjAxOTA0LCAwLjg5ODg5NywgMS41OTA4OSwgMS45ODc0OSIsIFwKLSAgICAgICAgICAiMC4xMTIyNjksIDAuMTMwODgyLCAwLjMwNTEwMywgMC42MDE5NDcsIDAuODk4OTM3LCAxLjU5MTI4LCAxLjk4NzciLCBcCi0gICAgICAgICAgIjAuMTE5NDUzLCAwLjEzNzI5NywgMC4zMDY4MzEsIDAuNjAyMDc3LCAwLjg5ODcyNCwgMS41OTA5MiwgMS45ODc3NiIsIFwKLSAgICAgICAgICAiMC4xMjc4NTEsIDAuMTQ1MDQzLCAwLjMxMDYyNywgMC42MDE5MTcsIDAuODk4Nzc0LCAxLjU5MTE1LCAxLjk4NzQ5IiwgXAotICAgICAgICAgICIwLjE0MjU5MiwgMC4xNTg5NzMsIDAuMzE5MjUxLCAwLjYwNDUxMSwgMC44OTg3NDQsIDEuNTkxMTksIDEuOTg3NTIiLCBcCi0gICAgICAgICAgIjAuMTU2MzQ1LCAwLjE3MjQ3MiwgMC4zMjgyNzgsIDAuNjA5MDc1LCAwLjg5OTUyNywgMS41OTEwOCwgMS45ODcyMyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEwTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxNDY4LCAwLjAwMTQ2OSwgMC4wMDE0NzMsIDAuMDAxNDc0LCAwLjAwMTQ3NCwgMC4wMDE0NzUsIDAuMDAxNDc2IiwgXAotICAgICAgICAgICIwLjAwMTQ2MywgMC4wMDE0NjQsIDAuMDAxNDcsIDAuMDAxNDcyLCAwLjAwMTQ3MiwgMC4wMDE0NzQsIDAuMDAxNDczIiwgXAotICAgICAgICAgICIwLjAwMTUyNywgMC4wMDE1MjksIDAuMDAxNTM3LCAwLjAwMTUzOSwgMC4wMDE1NDEsIDAuMDAxNTQxLCAwLjAwMTU0MiIsIFwKLSAgICAgICAgICAiMC4wMDE2MTMsIDAuMDAxNjE1LCAwLjAwMTYyMiwgMC4wMDE2MjYsIDAuMDAxNjI3LCAwLjAwMTYyOCwgMC4wMDE2MjgiLCBcCi0gICAgICAgICAgIjAuMDAxNzIsIDAuMDAxNzIyLCAwLjAwMTczLCAwLjAwMTczNCwgMC4wMDE3MzUsIDAuMDAxNzM2LCAwLjAwMTczNiIsIFwKLSAgICAgICAgICAiMC4wMDE5MTcsIDAuMDAxOTE5LCAwLjAwMTkyOCwgMC4wMDE5MzEsIDAuMDAxOTI0LCAwLjAwMTkzNSwgMC4wMDE5MjUiLCBcCi0gICAgICAgICAgIjAuMDAyMDg3LCAwLjAwMjEsIDAuMDAyMTA4LCAwLjAwMjExMywgMC4wMDIxMDIsIDAuMDAyMTA0LCAwLjAwMjEwNSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjgxMSwgMC4wMDI4MTIsIDAuMDAyODE1LCAwLjAwMjgxNywgMC4wMDI4MTcsIDAuMDAyODE4LCAwLjAwMjgxNyIsIFwKLSAgICAgICAgICAiMC4wMDI3ODksIDAuMDAyNzksIDAuMDAyNzk1LCAwLjAwMjc5NiwgMC4wMDI3OTcsIDAuMDAyNzk3LCAwLjAwMjc5NyIsIFwKLSAgICAgICAgICAiMC4wMDI4MTUsIDAuMDAyODE3LCAwLjAwMjgyMiwgMC4wMDI4MjQsIDAuMDAyODI0LCAwLjAwMjgyNSwgMC4wMDI4MjUiLCBcCi0gICAgICAgICAgIjAuMDAyODc0LCAwLjAwMjg3NCwgMC4wMDI4NzksIDAuMDAyODgsIDAuMDAyODgxLCAwLjAwMjg4MSwgMC4wMDI4ODIiLCBcCi0gICAgICAgICAgIjAuMDAyOTUyLCAwLjAwMjk1MywgMC4wMDI5NTcsIDAuMDAyOTU5LCAwLjAwMjk2LCAwLjAwMjk2LCAwLjAwMjk2IiwgXAotICAgICAgICAgICIwLjAwMzEwMSwgMC4wMDMxMDIsIDAuMDAzMTA4LCAwLjAwMzExLCAwLjAwMzExMSwgMC4wMDMxMTEsIDAuMDAzMTExIiwgXAotICAgICAgICAgICIwLjAwMzI1MSwgMC4wMDMyNTQsIDAuMDAzMjU5LCAwLjAwMzI2MSwgMC4wMDMyNjIsIDAuMDAzMjYzLCAwLjAwMzI2MyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkExTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxMjk1LCAwLjAwMTI5NiwgMC4wMDEyOTgsIDAuMDAxMjk5LCAwLjAwMTMsIDAuMDAxMywgMC4wMDEzIiwgXAotICAgICAgICAgICIwLjAwMTI4NCwgMC4wMDEyODUsIDAuMDAxMjksIDAuMDAxMjkyLCAwLjAwMTI5MywgMC4wMDEyOTQsIDAuMDAxMjkzIiwgXAotICAgICAgICAgICIwLjAwMTMzNiwgMC4wMDEzMzgsIDAuMDAxMzQ1LCAwLjAwMTM0NywgMC4wMDEzNDksIDAuMDAxMzQ5LCAwLjAwMTM0OSIsIFwKLSAgICAgICAgICAiMC4wMDE0MjcsIDAuMDAxNDI2LCAwLjAwMTQzMiwgMC4wMDE0MzYsIDAuMDAxNDM5LCAwLjAwMTQ0LCAwLjAwMTQ0IiwgXAotICAgICAgICAgICIwLjAwMTUzLCAwLjAwMTUzMywgMC4wMDE1NCwgMC4wMDE1NDMsIDAuMDAxNTQ0LCAwLjAwMTU0NCwgMC4wMDE1NDUiLCBcCi0gICAgICAgICAgIjAuMDAxNzA3LCAwLjAwMTcwOCwgMC4wMDE3MTcsIDAuMDAxNzIxLCAwLjAwMTcyMywgMC4wMDE3MjQsIDAuMDAxNzI1IiwgXAotICAgICAgICAgICIwLjAwMTg3NSwgMC4wMDE4NzYsIDAuMDAxODg0LCAwLjAwMTg4OCwgMC4wMDE4OSwgMC4wMDE4OTIsIDAuMDAxODkyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyNTQ5LCAwLjAwMjU1LCAwLjAwMjU1NSwgMC4wMDI1NTcsIDAuMDAyNTU3LCAwLjAwMjU1OCwgMC4wMDI1NTgiLCBcCi0gICAgICAgICAgIjAuMDAyNTQ4LCAwLjAwMjU1LCAwLjAwMjU1NSwgMC4wMDI1NTgsIDAuMDAyNTU4LCAwLjAwMjU1OSwgMC4wMDI1NTkiLCBcCi0gICAgICAgICAgIjAuMDAyNjMzLCAwLjAwMjYzMywgMC4wMDI2MzksIDAuMDAyNjQyLCAwLjAwMjY0MiwgMC4wMDI2NDMsIDAuMDAyNjQzIiwgXAotICAgICAgICAgICIwLjAwMjY5NiwgMC4wMDI2OTgsIDAuMDAyNzA1LCAwLjAwMjcwOCwgMC4wMDI3MDksIDAuMDAyNzA5LCAwLjAwMjcxIiwgXAotICAgICAgICAgICIwLjAwMjc5NywgMC4wMDI3OTksIDAuMDAyODA3LCAwLjAwMjgxMSwgMC4wMDI4MTEsIDAuMDAyODEyLCAwLjAwMjgxMyIsIFwKLSAgICAgICAgICAiMC4wMDI5NzYsIDAuMDAyOTc3LCAwLjAwMjk4LCAwLjAwMjk4NSwgMC4wMDI5ODUsIDAuMDAyOTg3LCAwLjAwMjk4NyIsIFwKLSAgICAgICAgICAiMC4wMDMxMjksIDAuMDAzMTM3LCAwLjAwMzEzNCwgMC4wMDMxNDQsIDAuMDAzMTQ0LCAwLjAwMzE0NCwgMC4wMDMxMzciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxNTg5LCAwLjAwMTU4OSwgMC4wMDE1OTEsIDAuMDAxNTkyLCAwLjAwMTU5MiwgMC4wMDE1OTIsIDAuMDAxNTkyIiwgXAotICAgICAgICAgICIwLjAwMTU3OCwgMC4wMDE1OCwgMC4wMDE1ODcsIDAuMDAxNTg5LCAwLjAwMTU5LCAwLjAwMTU4OCwgMC4wMDE1OTQiLCBcCi0gICAgICAgICAgIjAuMDAxNTc3LCAwLjAwMTU3OSwgMC4wMDE1ODUsIDAuMDAxNTg5LCAwLjAwMTU4OSwgMC4wMDE1OTIsIDAuMDAxNTkxIiwgXAotICAgICAgICAgICIwLjAwMTU5LCAwLjAwMTU4OSwgMC4wMDE1OSwgMC4wMDE1OTEsIDAuMDAxNTkxLCAwLjAwMTU5MiwgMC4wMDE1OTIiLCBcCi0gICAgICAgICAgIjAuMDAxNjEyLCAwLjAwMTYwOCwgMC4wMDE1OTgsIDAuMDAxNTk1LCAwLjAwMTU5NCwgMC4wMDE1OTMsIDAuMDAxNTkzIiwgXAotICAgICAgICAgICIwLjAwMTY2MywgMC4wMDE2NTQsIDAuMDAxNjIyLCAwLjAwMTYwOSwgMC4wMDE2MDMsIDAuMDAxNTk5LCAwLjAwMTU5OCIsIFwKLSAgICAgICAgICAiMC4wMDE3MjQsIDAuMDAxNzA5LCAwLjAwMTY1MSwgMC4wMDE2MjksIDAuMDAxNjE4LCAwLjAwMTYwNywgMC4wMDE2MDQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDAxNDYsIDAuMDAwMTQ2LCAwLjAwMDE0NywgMC4wMDAxNDcsIDAuMDAwMTQ3LCAwLjAwMDE0NywgMC4wMDAxNDciLCBcCi0gICAgICAgICAgIjAuMDAwMTQsIDAuMDAwMTQsIDAuMDAwMTQxLCAwLjAwMDEzOSwgMC4wMDAxMzksIDAuMDAwMTQxLCAwLjAwMDE0MSIsIFwKLSAgICAgICAgICAiMC4wMDAxNjUsIDAuMDAwMTYyLCAwLjAwMDE1MSwgMC4wMDAxNDQsIDAuMDAwMTQyLCAwLjAwMDE0LCAwLjAwMDEzOSIsIFwKLSAgICAgICAgICAiMC4wMDAyMDEsIDAuMDAwMTk0LCAwLjAwMDE2NiwgMC4wMDAxNTQsIDAuMDAwMTUsIDAuMDAwMTQzLCAwLjAwMDE0MiIsIFwKLSAgICAgICAgICAiMC4wMDAyNDUsIDAuMDAwMjMzLCAwLjAwMDE4NCwgMC4wMDAxNjUsIDAuMDAwMTU3LCAwLjAwMDE0OCwgMC4wMDAxNDYiLCBcCi0gICAgICAgICAgIjAuMDAwMzMzLCAwLjAwMDMwOCwgMC4wMDAyMjQsIDAuMDAwMTg3LCAwLjAwMDE3MywgMC4wMDAxNiwgMC4wMDAxNTMiLCBcCi0gICAgICAgICAgIjAuMDAwNDM1LCAwLjAwMDM5NiwgMC4wMDAyNjcsIDAuMDAwMjEzLCAwLjAwMDE5MSwgMC4wMDAxNzEsIDAuMDAwMTY1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBBT0kyQkIyWDIgKgotICogLS0tLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChBT0kyQkIyWDIpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC43NjI5MDg7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEwTikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjI2NTQ3OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYyNjU0NzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2MjY1MTM7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxMTYxLCAwLjAwMTE1OSwgMC4wMDEyMjksIDAuMDAxMzI1LCAwLjAwMTQ0LCAwLjAwMTY1MiwgMC4wMDE4MzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDI4MDgsIDAuMDAyODA1LCAwLjAwMjg2NywgMC4wMDI5NjEsIDAuMDAzMDc5LCAwLjAwMzIyMiwgMC4wMDM0NzQiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEExTikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjQzNDY5OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDY0MzQ2OTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2NDM0MjI7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxMTU5LCAwLjAwMTE1NiwgMC4wMDEyMjQsIDAuMDAxMzE5LCAwLjAwMTQzNSwgMC4wMDE2NTIsIDAuMDAxODI4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzMDE4LCAwLjAwMzAxNiwgMC4wMDMwNzYsIDAuMDAzMTc0LCAwLjAwMzI5MywgMC4wMDM0MjQsIDAuMDAzNjg5Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNzk0NTE7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNzk0NTE7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNzkxMjc7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjI5LCAwLjAwMDIyOSwgMC4wMDAyMjksIDAuMDAwMjI5LCAwLjAwMDIzLCAwLjAwMDIzLCAwLjAwMDIzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjM0LCAwLjAwMDIzNCwgMC4wMDAyMzQsIDAuMDAwMjM0LCAwLjAwMDIzNCwgMC4wMDAyMzQsIDAuMDAwMjM0Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCMSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNzQyMTI7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNzQxODc7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNzQyMTI7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjI5LCAwLjAwMDIyOSwgMC4wMDAyMjksIDAuMDAwMjI5LCAwLjAwMDIyOSwgMC4wMDAyMjksIDAuMDAwMjI5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjM0LCAwLjAwMDIzNCwgMC4wMDAyMzQsIDAuMDAwMjM0LCAwLjAwMDIzNCwgMC4wMDAyMzQsIDAuMDAwMjM0Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMzY2NDk1OwotICAgIGZ1bmN0aW9uIDogIighKChCMCBCMSkrKCEoQTBOK0ExTikpKSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEwTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY0MzE3LCAwLjIwODUwOSwgMC4zMjQ5MjMsIDAuNDcwNzgyLCAwLjYxNTk3MSwgMC43NjEzMjUsIDAuOTA3MTQ1IiwgXAotICAgICAgICAgICIwLjA3MjQxNywgMC4yMTY1NzIsIDAuMzMyOTM1LCAwLjQ3OTExMiwgMC42MjQ0NjgsIDAuNzcwNjI0LCAwLjkxNTc4OCIsIFwKLSAgICAgICAgICAiMC4wODA4MzQsIDAuMjI1MTA0LCAwLjM0MTcyMSwgMC40ODc0OCwgMC42MzMxNzQsIDAuNzc5MDIyLCAwLjkyNDM1NiIsIFwKLSAgICAgICAgICAiMC4wODY5MjEsIDAuMjMxMTQ5LCAwLjM0ODAxMywgMC40OTMzOTQsIDAuNjM5MDc1LCAwLjc4NDYwNiwgMC45MzAyNjMiLCBcCi0gICAgICAgICAgIjAuMDkxODg1LCAwLjIzNjE0MiwgMC4zNTI2NTEsIDAuNDk4NjY2LCAwLjY0MzkwMywgMC43OTAxNTMsIDAuOTM1MzcxIiwgXAotICAgICAgICAgICIwLjA5ODYyOSwgMC4yNDI4MzMsIDAuMzU5MzU5LCAwLjUwNTA4MiwgMC42NTA4NzIsIDAuNzk2NjY2LCAwLjk0MTk5IiwgXAotICAgICAgICAgICIwLjEwMzY0MSwgMC4yNDc3NjEsIDAuMzY0NDY4LCAwLjUxMDEyNywgMC42NTU2NjIsIDAuODAxNDI4LCAwLjk0Njk0NiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODIwOTcsIDAuMzkwNjc4LCAwLjYzNzkxMiwgMC45NDc0MjcsIDEuMjU3MTQsIDEuNTY2MjcsIDEuODc2NCIsIFwKLSAgICAgICAgICAiMC4wODIxMTMsIDAuMzkwNTk4LCAwLjYzNzc1NSwgMC45NDc4MjEsIDEuMjU3NiwgMS41NjYyMSwgMS44Nzc1OCIsIFwKLSAgICAgICAgICAiMC4wODIyMzgsIDAuMzkwNjU3LCAwLjYzNzk3NSwgMC45NDc5MDYsIDEuMjU3NTcsIDEuNTY2MTgsIDEuODc3MDQiLCBcCi0gICAgICAgICAgIjAuMDgyNDM4LCAwLjM5MDYwMSwgMC42MzgyNTgsIDAuOTQ3NDQxLCAxLjI1Njg0LCAxLjU2NzE4LCAxLjg3NzM3IiwgXAotICAgICAgICAgICIwLjA4MjY5NCwgMC4zOTA2NDgsIDAuNjM4NDA3LCAwLjk0Nzc0OCwgMS4yNTc1NSwgMS41NjcxMiwgMS44NzUyOCIsIFwKLSAgICAgICAgICAiMC4wODMyOCwgMC4zOTA0MjcsIDAuNjM4MDg1LCAwLjk0NzYyOCwgMS4yNTY5MSwgMS41NjY0MiwgMS44NzY5OCIsIFwKLSAgICAgICAgICAiMC4wODM2MTcsIDAuMzkwNTgyLCAwLjYzODEwMSwgMC45NDc1OTMsIDEuMjU3NDUsIDEuNTY2MzEsIDEuODc2NzgiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY0NTA2LCAwLjE5NzY5MywgMC4zMDM2NzQsIDAuNDM2MzI3LCAwLjU2ODc4NCwgMC43MDEyMzMsIDAuODMzNDkxIiwgXAotICAgICAgICAgICIwLjA3MjM5MywgMC4yMDU1NzksIDAuMzExNzM3LCAwLjQ0NDE4LCAwLjU3NjYzMywgMC43MDk2MTYsIDAuODQxNDQ3IiwgXAotICAgICAgICAgICIwLjA4MDYyMSwgMC4yMTM4NCwgMC4zMjAwMTQsIDAuNDUyNDI3LCAwLjU4NDg5OCwgMC43MTczNTYsIDAuODUwMTIyIiwgXAotICAgICAgICAgICIwLjA4NjYyNywgMC4yMTk5MTYsIDAuMzI1OTY1LCAwLjQ1ODQzMywgMC41OTExNTQsIDAuNzIzMzI0LCAwLjg1NTc3OCIsIFwKLSAgICAgICAgICAiMC4wOTE0NTQsIDAuMjI0Njk1LCAwLjMzMDgwOCwgMC40NjMzNDQsIDAuNTk1ODQzLCAwLjcyODM4NywgMC44NjEwNiIsIFwKLSAgICAgICAgICAiMC4wOTc4OCwgMC4yMzExNjgsIDAuMzM3MjA4LCAwLjQ2OTcwMywgMC42MDIyMTksIDAuNzM0NzI0LCAwLjg2NzIyOSIsIFwKLSAgICAgICAgICAiMC4xMDI2MDEsIDAuMjM1ODUzLCAwLjM0MTk1MiwgMC40NzQ0OTYsIDAuNjA3MDkzLCAwLjczOTM2NSwgMC44NzIwOTIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDgxMywgMC4zNTQyMTIsIDAuNTczMTQzLCAwLjg0Njc2NiwgMS4xMjAzNiwgMS4zOTM5NywgMS42Njc1NyIsIFwKLSAgICAgICAgICAiMC4wODEzMjIsIDAuMzU0MTk4LCAwLjU3MzEwMywgMC44NDY3NDUsIDEuMTIwNDMsIDEuMzkzOTMsIDEuNjY3NjMiLCBcCi0gICAgICAgICAgIjAuMDgxNTA1LCAwLjM1NDIzLCAwLjU3MzEwNiwgMC44NDY3MzYsIDEuMTIwNTEsIDEuMzk0MDIsIDEuNjY3NDciLCBcCi0gICAgICAgICAgIjAuMDgxODI1LCAwLjM1NDI1LCAwLjU3MzAzOCwgMC44NDY2MzksIDEuMTIwNDksIDEuMzkzODYsIDEuNjY3MzEiLCBcCi0gICAgICAgICAgIjAuMDgyMTI5LCAwLjM1NDI2NSwgMC41NzMxMTIsIDAuODQ2NzUzLCAxLjEyMDM2LCAxLjM5Mzk1LCAxLjY2NzQ1IiwgXAotICAgICAgICAgICIwLjA4MjcyLCAwLjM1NDMyNiwgMC41NzMwNDQsIDAuODQ2NzQ4LCAxLjEyMDcsIDEuMzk0MDksIDEuNjY3OTMiLCBcCi0gICAgICAgICAgIjAuMDgzMTQ0LCAwLjM1NDMsIDAuNTczMTc5LCAwLjg0NjYwMiwgMS4xMjAyOCwgMS4zOTQzMiwgMS42Njc2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkExTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDYzNTUxLCAwLjIwNzU0MSwgMC4zMjM2NTYsIDAuNDY5NjUzLCAwLjYxNTYwOCwgMC43NjA3MiwgMC45MDY2NjEiLCBcCi0gICAgICAgICAgIjAuMDcxNjI2LCAwLjIxNTY4NCwgMC4zMzE3ODMsIDAuNDc3Mjc5LCAwLjYyMjg2NSwgMC43Njk0MjgsIDAuOTE0Njg1IiwgXAotICAgICAgICAgICIwLjA4MDA3LCAwLjIyNDIzMywgMC4zNDA2LCAwLjQ4NjE4NiwgMC42MzIyOTMsIDAuNzc3NDQxLCAwLjkyMzQiLCBcCi0gICAgICAgICAgIjAuMDg2NDg1LCAwLjIzMDU5LCAwLjM0NzIzMiwgMC40OTI3MjQsIDAuNjM4Mzg0LCAwLjc4NDc4LCAwLjkzMDExOCIsIFwKLSAgICAgICAgICAiMC4wOTE1ODUsIDAuMjM1NzQ1LCAwLjM1MjA2MiwgMC40OTc5MTgsIDAuNjQzNDI5LCAwLjc4OTYyOSwgMC45MzQ3OTkiLCBcCi0gICAgICAgICAgIjAuMDk4NSwgMC4yNDI2MTQsIDAuMzU4OTYsIDAuNTA0NzQsIDAuNjUwNjcxLCAwLjc5NjY4NCwgMC45NDIxNjciLCBcCi0gICAgICAgICAgIjAuMTAzNjM3LCAwLjI0NzcyOSwgMC4zNjQwNjMsIDAuNTA5NzQzLCAwLjY1NTY0NSwgMC44MDEzMTEsIDAuOTQ2NzA2Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4MDI1MSwgMC4zODgwODMsIDAuNjM1MDAzLCAwLjk0NDE5NCwgMS4yNTM2NCwgMS41NjM5NCwgMS44NzM0MiIsIFwKLSAgICAgICAgICAiMC4wODAyNiwgMC4zODgxMDIsIDAuNjM0OTY0LCAwLjk0NDMwNywgMS4yNTM4MSwgMS41NjI4NiwgMS44NzMzNCIsIFwKLSAgICAgICAgICAiMC4wODAzOTUsIDAuMzg3Mzk2LCAwLjYzNDg2NiwgMC45NDQwMDIsIDEuMjU0MDgsIDEuNTYzNjQsIDEuODczNDgiLCBcCi0gICAgICAgICAgIjAuMDgwNjUxLCAwLjM4ODAxOCwgMC42MzQ5OSwgMC45NDQyMDIsIDEuMjUzNTQsIDEuNTYzNjEsIDEuODczMDkiLCBcCi0gICAgICAgICAgIjAuMDgwOTI1LCAwLjM4NzU1MywgMC42MzU4OTYsIDAuOTQ0MjIsIDEuMjUzMzIsIDEuNTYzNTYsIDEuODcyMTIiLCBcCi0gICAgICAgICAgIjAuMDgxNTM2LCAwLjM4NzY5MiwgMC42MzU4NDYsIDAuOTQ0MDMyLCAxLjI1MzkyLCAxLjU2MzIzLCAxLjg3MjQ3IiwgXAotICAgICAgICAgICIwLjA4MTkxNywgMC4zODc1MjgsIDAuNjM0ODk1LCAwLjk0NTcwMiwgMS4yNTM1MiwgMS41NjI4NSwgMS44NzUzMSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjM4MjUsIDAuMTk2ODk3LCAwLjMwMjk5NiwgMC40MzU0NywgMC41NjgwMTIsIDAuNzAwMzU3LCAwLjgzMzMwOSIsIFwKLSAgICAgICAgICAiMC4wNzE3MDQsIDAuMjA0ODQsIDAuMzEwOTc0LCAwLjQ0MzUzOCwgMC41NzU5OTYsIDAuNzA4NDI0LCAwLjg0MDkwNiIsIFwKLSAgICAgICAgICAiMC4wNzk5NjgsIDAuMjEzMDY3LCAwLjMxOTIyOSwgMC40NTE1ODUsIDAuNTg0NDIzLCAwLjcxNjUyOSwgMC44NDk2NDIiLCBcCi0gICAgICAgICAgIjAuMDg2NTExLCAwLjIxOTYwOCwgMC4zMjU2MjMsIDAuNDU4MjUzLCAwLjU5MDY1MiwgMC43MjI5ODksIDAuODU1NDk3IiwgXAotICAgICAgICAgICIwLjA5MTUzOCwgMC4yMjQ2NTIsIDAuMzMwNzIzLCAwLjQ2MzE5MSwgMC41OTU4NDQsIDAuNzI4MzE5LCAwLjg2MDk3NyIsIFwKLSAgICAgICAgICAiMC4wOTgxNDQsIDAuMjMxMDYzLCAwLjMzNzA2MiwgMC40Njk1NzcsIDAuNjAyMTU4LCAwLjczNDk3OCwgMC44Njc1MjkiLCBcCi0gICAgICAgICAgIjAuMTAzMTgxLCAwLjIzNjA4LCAwLjM0MjAyNCwgMC40NzQ2MDIsIDAuNjA3MTU2LCAwLjczOTQ0NywgMC44NzE4MjIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDgxNTI2LCAwLjM1NDIxOSwgMC41NzMwOTgsIDAuODQ2NzQ3LCAxLjEyMDMsIDEuMzk0MSwgMS42Njc0IiwgXAotICAgICAgICAgICIwLjA4MTUzLCAwLjM1NDE0OCwgMC41NzMxMDYsIDAuODQ2ODE1LCAxLjEyMDQ1LCAxLjM5NDI2LCAxLjY2NzY4IiwgXAotICAgICAgICAgICIwLjA4MTkxMiwgMC4zNTQyMjcsIDAuNTczMTA2LCAwLjg0NjcxOSwgMS4xMjA2OCwgMS4zOTQzMywgMS42Njc1MSIsIFwKLSAgICAgICAgICAiMC4wODI0NjksIDAuMzU0MjM5LCAwLjU3MzA2OSwgMC44NDY4MiwgMS4xMjA0NCwgMS4zOTQxMywgMS42NjcyOCIsIFwKLSAgICAgICAgICAiMC4wODMwNzEsIDAuMzU0MjQ2LCAwLjU3MzEwNywgMC44NDY2NzQsIDEuMTIwNzgsIDEuMzkzOTEsIDEuNjY3MjgiLCBcCi0gICAgICAgICAgIjAuMDgzOTc1LCAwLjM1NDQyNywgMC41NzMxODYsIDAuODQ2NTk3LCAxLjEyMDYyLCAxLjM5NDI0LCAxLjY2NzM1IiwgXAotICAgICAgICAgICIwLjA4NDgwOCwgMC4zNTQ1MjIsIDAuNTczMjQ3LCAwLjg0NjYzOSwgMS4xMjAyNiwgMS4zOTQyNSwgMS42Njc2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDE1OCwgMC4xODQxMzksIDAuMjk4MjA5LCAwLjQ0MTg1NSwgMC41ODY3NjMsIDAuNzI5OTk2LCAwLjg3MzY4MiIsIFwKLSAgICAgICAgICAiMC4wNDkxMjUsIDAuMTkxNjIxLCAwLjMwNjE3MywgMC40NDk4NTYsIDAuNTkzNTc1LCAwLjczNzk1OCwgMC44ODE5NSIsIFwKLSAgICAgICAgICAiMC4wNTg3OTMsIDAuMjAxMTMzLCAwLjMxNTUxMiwgMC40NTkzLCAwLjYwMzA3NSwgMC43NDc1NDIsIDAuODkwNDg4IiwgXAotICAgICAgICAgICIwLjA2ODYwNCwgMC4yMTA3NjIsIDAuMzI1MjU4LCAwLjQ2OTA0NSwgMC42MTMwNDEsIDAuNzU2NTIxLCAwLjkwMTIxOSIsIFwKLSAgICAgICAgICAiMC4wNzY4MjksIDAuMjIwNTM3LCAwLjMzNTIxNywgMC40Nzg4MjUsIDAuNjIyNjE1LCAwLjc2NjQ1OSwgMC45MDk5NzgiLCBcCi0gICAgICAgICAgIjAuMDg3NjgzLCAwLjIzNjE5NiwgMC4zNTA1NzEsIDAuNDkzNjIyLCAwLjYzNzg4OSwgMC43ODE0NzksIDAuOTI2MDQ4IiwgXAotICAgICAgICAgICIwLjA5NTUzNywgMC4yNDk5ODksIDAuMzY0MjI5LCAwLjUwNzgxNiwgMC42NTE1MTcsIDAuNzk1MTQ4LCAwLjkzODcyNyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODE2NTMsIDAuMzg0OTQyLCAwLjYyODU1OCwgMC45MzI5MzgsIDEuMjM5MTgsIDEuNTQzNjUsIDEuODQ5MiIsIFwKLSAgICAgICAgICAiMC4wODI1MDMsIDAuMzg1MDc3LCAwLjYyODcxMywgMC45MzM5MDQsIDEuMjM5MTksIDEuNTQzOTgsIDEuODQ5MSIsIFwKLSAgICAgICAgICAiMC4wODg1MTksIDAuMzg0OTMsIDAuNjI5MDExLCAwLjkzNDQxMSwgMS4yMzg1MSwgMS41NDQxLCAxLjg0NzY1IiwgXAotICAgICAgICAgICIwLjA5NjI2NywgMC4zODU2MzEsIDAuNjI5MDUzLCAwLjkzMzYyNywgMS4yMzg3NywgMS41NDM0NCwgMS44NDg4NiIsIFwKLSAgICAgICAgICAiMC4xMDQ4NDIsIDAuMzg4MjcsIDAuNjI4OTUzLCAwLjkzMzYzMSwgMS4yMzg5OSwgMS41NDM1MSwgMS44NDk4OSIsIFwKLSAgICAgICAgICAiMC4xMTg5MTQsIDAuMzk1MTc0LCAwLjYzMTY3NywgMC45MzM3MDcsIDEuMjM4NjksIDEuNTQ0MjUsIDEuODQ4NTEiLCBcCi0gICAgICAgICAgIjAuMTI5ODkxLCAwLjQwMzIwNiwgMC42MzYyMDksIDAuOTM0ODE4LCAxLjIzODYzLCAxLjU0NDI4LCAxLjg0OTY4Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzNzY3OCwgMC4xNzA2ODcsIDAuMjc2Nzc3LCAwLjQwOTMxMiwgMC41NDE1NjcsIDAuNjc0MDE4LCAwLjgwNjI1IiwgXAotICAgICAgICAgICIwLjA0NDE3MiwgMC4xNzc0OTEsIDAuMjgzNjY0LCAwLjQxNjA2OCwgMC41NDg0NjYsIDAuNjgwNzksIDAuODEzMTY5IiwgXAotICAgICAgICAgICIwLjA1MjI3NywgMC4xODU4NjQsIDAuMjkyMDQsIDAuNDI0NTczLCAwLjU1Njk1NCwgMC42ODkyODIsIDAuODIxNjU5IiwgXAotICAgICAgICAgICIwLjA1OTU4NSwgMC4xOTQxMiwgMC4zMDA0MzIsIDAuNDMyOTMyLCAwLjU2NTI5NywgMC42OTc2NTcsIDAuODMwMDM2IiwgXAotICAgICAgICAgICIwLjA2NTg4MiwgMC4yMDIzMDQsIDAuMzA4NTcsIDAuNDQxMTc2LCAwLjU3MzU2NiwgMC43MDU5NDgsIDAuODM4Mjg5IiwgXAotICAgICAgICAgICIwLjA3NDUzNCwgMC4yMTU4NTUsIDAuMzIxNjc0LCAwLjQ1NDM5OSwgMC41ODY4MTgsIDAuNzE5MjU4LCAwLjg1MTU3MiIsIFwKLSAgICAgICAgICAiMC4wODA5NDQsIDAuMjI3MzIxLCAwLjMzMzM4NCwgMC40NjYzNzksIDAuNTk4Njc1LCAwLjczMTAwOSwgMC44NjM0NzYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDcxMTQ5LCAwLjM0NDQ4LCAwLjU2MzMwNSwgMC44MzY5MjYsIDEuMTEwMTQsIDEuMzg0MjUsIDEuNjU3OTciLCBcCi0gICAgICAgICAgIjAuMDcxOTYsIDAuMzQ0NDc2LCAwLjU2MzI5MiwgMC44MzY3MzYsIDEuMTEwMTcsIDEuMzgzNjksIDEuNjU3MjMiLCBcCi0gICAgICAgICAgIjAuMDc2MzA3LCAwLjM0NDQ2NCwgMC41NjMyNzMsIDAuODM2NjQ4LCAxLjExMDQ0LCAxLjM4NDEsIDEuNjU3NjgiLCBcCi0gICAgICAgICAgIjAuMDgyMTMyLCAwLjM0NTI1OSwgMC41NjMyNjMsIDAuODM2NzU0LCAxLjExMDE1LCAxLjM4Mzg0LCAxLjY1Nzc2IiwgXAotICAgICAgICAgICIwLjA4ODgwNSwgMC4zNDczNTksIDAuNTYzNjA0LCAwLjgzNjYzMiwgMS4xMTAyNiwgMS4zODM3LCAxLjY1NzY2IiwgXAotICAgICAgICAgICIwLjA5OTgwMiwgMC4zNTI5NjEsIDAuNTY1OTExLCAwLjgzNzAxOSwgMS4xMTAyNCwgMS4zODM2NiwgMS42NTc3NSIsIFwKLSAgICAgICAgICAiMC4xMDg4OTQsIDAuMzU4ODI3LCAwLjU2OTM0MSwgMC44Mzg1MDIsIDEuMTEwNDIsIDEuMzgzOTksIDEuNjU3NzQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0MDQ0NiwgMC4xODYzMzQsIDAuMzAyODY5LCAwLjQ0ODUwMSwgMC41OTQwNDksIDAuNzQwMzk3LCAwLjg4NTg3MyIsIFwKLSAgICAgICAgICAiMC4wNDc5ODksIDAuMTkzOTk1LCAwLjMxMDU4OCwgMC40NTY3MzcsIDAuNjAxODY0LCAwLjc0ODAxOSwgMC44OTMxNjUiLCBcCi0gICAgICAgICAgIjAuMDU3ODE3LCAwLjIwMzc0OSwgMC4zMjAzNzgsIDAuNDY1OTg5LCAwLjYxMTY1LCAwLjc1NzI5MSwgMC45MDI4NjIiLCBcCi0gICAgICAgICAgIjAuMDY3MjY3LCAwLjIxMzA4NiwgMC4zMjk1OTUsIDAuNDc1MjkxLCAwLjYyMTAxMiwgMC43NjY1NjQsIDAuOTExNTU0IiwgXAotICAgICAgICAgICIwLjA3NTQ1MSwgMC4yMjI4MzgsIDAuMzM5MzcxLCAwLjQ4NDk4MSwgMC42MzA3NTEsIDAuNzc2NDY4LCAwLjkyMjEyNyIsIFwKLSAgICAgICAgICAiMC4wODU3OTUsIDAuMjM4NTEzLCAwLjM1NDk2LCAwLjUwMDU1NCwgMC42NDYyNDQsIDAuNzkxNjg3LCAwLjkzNzg2NSIsIFwKLSAgICAgICAgICAiMC4wOTM3NDYsIDAuMjUyMjY0LCAwLjM2ODQ4MSwgMC41MTQxNiwgMC42NjAyODYsIDAuODA1MzY4LCAwLjk1MDg2NiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODA4OCwgMC4zOTA2NjUsIDAuNjM4Mzc3LCAwLjk0NzUyNywgMS4yNTc1MSwgMS41NjY3OSwgMS44NzU2OCIsIFwKLSAgICAgICAgICAiMC4wODE3NSwgMC4zOTA2MjgsIDAuNjM4LCAwLjk0Nzk2MiwgMS4yNTgxNSwgMS41NjYzLCAxLjg3NzY0IiwgXAotICAgICAgICAgICIwLjA4NzYwOCwgMC4zOTA2MTIsIDAuNjM4MTQ5LCAwLjk0NzQ0LCAxLjI1Njg4LCAxLjU2NjI5LCAxLjg3NzU0IiwgXAotICAgICAgICAgICIwLjA5NTgwNCwgMC4zOTA5NzIsIDAuNjM4MzAyLCAwLjk0NzQxNSwgMS4yNTY4OSwgMS41NjYzMSwgMS44NzY0MyIsIFwKLSAgICAgICAgICAiMC4xMDQ0ODMsIDAuMzkzNjU5LCAwLjYzODM2OSwgMC45NDc1NDYsIDEuMjU2ODcsIDEuNTY2MTYsIDEuODc2OTUiLCBcCi0gICAgICAgICAgIjAuMTE4NjkxLCAwLjQwMDQ3MSwgMC42NDA3MTcsIDAuOTQ3NTM2LCAxLjI1NzE4LCAxLjU2NzQsIDEuODc1NjEiLCBcCi0gICAgICAgICAgIjAuMTI4OTc0LCAwLjQwODMzNCwgMC42NDQ5NCwgMC45NDg1MjQsIDEuMjU3MjgsIDEuNTY2OTYsIDEuODc1NTIiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM2MTcyLCAwLjE2OTIxMiwgMC4yNzUzNDQsIDAuNDA3NzgxLCAwLjU0MDE0NSwgMC42NzI1MDIsIDAuODA0Nzc5IiwgXAotICAgICAgICAgICIwLjA0Mzc4NCwgMC4xNzcwMDEsIDAuMjgzMTY2LCAwLjQxNTU2NSwgMC41NDc5MjcsIDAuNjgwMjU1LCAwLjgxMjYxMiIsIFwKLSAgICAgICAgICAiMC4wNTM0MiwgMC4xODY0NDgsIDAuMjkyNTU3LCAwLjQyNTAwNCwgMC41NTczNjQsIDAuNjg5NzIsIDAuODIyMDU2IiwgXAotICAgICAgICAgICIwLjA2MjgzLCAwLjE5NjM4MywgMC4zMDI1MzcsIDAuNDM1MDAzLCAwLjU2NzM5OSwgMC42OTk4MzIsIDAuODMyMDE4IiwgXAotICAgICAgICAgICIwLjA3MDM5NSwgMC4yMDU5MTYsIDAuMzEyMDI0LCAwLjQ0NDQ1NywgMC41NzY3NDYsIDAuNzA5MDc2LCAwLjg0MTM5MiIsIFwKLSAgICAgICAgICAiMC4wODAzMDYsIDAuMjIxNzUsIDAuMzI3Nzc4LCAwLjQ2MDEwMSwgMC41OTIzNywgMC43MjQ3MjQsIDAuODU3MDM2IiwgXAotICAgICAgICAgICIwLjA4ODA4MiwgMC4yMzU3NjksIDAuMzQxNDgyLCAwLjQ3Mzc5MiwgMC42MDU0MjcsIDAuNzM4MzMxLCAwLjg3MDY1NyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzExMzksIDAuMzQ0NDY5LCAwLjU2MzMyMSwgMC44MzY4MDcsIDEuMTEwMiwgMS4zODgwNCwgMS42NTc3MiIsIFwKLSAgICAgICAgICAiMC4wNzI0OTMsIDAuMzQ0NDQxLCAwLjU2MzI4NywgMC44MzcyMTIsIDEuMTEwMTQsIDEuMzgzNywgMS42NTcxNSIsIFwKLSAgICAgICAgICAiMC4wNzkwMjksIDAuMzQ0NDY3LCAwLjU2MzI4MSwgMC44MzY3NTEsIDEuMTEyMDksIDEuMzgzNjYsIDEuNjU3OTQiLCBcCi0gICAgICAgICAgIjAuMDg3MTY2LCAwLjM0NTQyMiwgMC41NjMxOTUsIDAuODM2NzUxLCAxLjExMDIxLCAxLjM4NzgyLCAxLjY1Nzc1IiwgXAotICAgICAgICAgICIwLjA5NjIwNCwgMC4zNDg0ODgsIDAuNTYzNTUsIDAuODM2NzczLCAxLjExMDMzLCAxLjM4MzY2LCAxLjY1Nzc0IiwgXAotICAgICAgICAgICIwLjExMDM0NCwgMC4zNTU5MzUsIDAuNTY2OTY5LCAwLjgzNjc3NiwgMS4xMTA0MiwgMS4zODM2NywgMS42NTcxOSIsIFwKLSAgICAgICAgICAiMC4xMjA4NTQsIDAuMzY0NTMxLCAwLjU3MTkwNCwgMC44Mzg2MzgsIDEuMTEwNDcsIDEuMzgzNjUsIDEuNjU3ODciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBME4iOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNzUzOCwgMC4wMDc1NTIsIDAuMDA3NTUzLCAwLjAwNzU1NCwgMC4wMDc1NTMsIDAuMDA3NTUzLCAwLjAwNzU1MiIsIFwKLSAgICAgICAgICAiMC4wMDc1MjYsIDAuMDA3NTQ2LCAwLjAwNzU0OSwgMC4wMDc1NSwgMC4wMDc1NSwgMC4wMDc1NTIsIDAuMDA3NTUzIiwgXAotICAgICAgICAgICIwLjAwNzU4OSwgMC4wMDc2MTcsIDAuMDA3NjIxLCAwLjAwNzYyMSwgMC4wMDc2MjIsIDAuMDA3NjIzLCAwLjAwNzYyMiIsIFwKLSAgICAgICAgICAiMC4wMDc2NjksIDAuMDA3NywgMC4wMDc3MDQsIDAuMDA3NzA2LCAwLjAwNzcwNiwgMC4wMDc3MDgsIDAuMDA3NzA4IiwgXAotICAgICAgICAgICIwLjAwNzc3NSwgMC4wMDc4MDksIDAuMDA3ODE0LCAwLjAwNzgxNywgMC4wMDc4MTksIDAuMDA3ODE4LCAwLjAwNzgxOCIsIFwKLSAgICAgICAgICAiMC4wMDc5NTksIDAuMDA4MDAyLCAwLjAwODAwMSwgMC4wMDgwMTEsIDAuMDA4MDA2LCAwLjAwODAxMywgMC4wMDgwMTQiLCBcCi0gICAgICAgICAgIjAuMDA4MTUyLCAwLjAwODE5LCAwLjAwODE5NSwgMC4wMDgxOSwgMC4wMDgxOTgsIDAuMDA4MTkzLCAwLjAwODE5MyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjgwOSwgMC4wMDY4MzQsIDAuMDA2ODM4LCAwLjAwNjgzOSwgMC4wMDY4MzksIDAuMDA2ODQsIDAuMDA2ODQiLCBcCi0gICAgICAgICAgIjAuMDA2NzkzLCAwLjAwNjgzMywgMC4wMDY4MzgsIDAuMDA2ODQsIDAuMDA2ODQxLCAwLjAwNjg0MSwgMC4wMDY4NDIiLCBcCi0gICAgICAgICAgIjAuMDA2ODM2LCAwLjAwNjg4OCwgMC4wMDY4OTUsIDAuMDA2ODk5LCAwLjAwNjksIDAuMDA2OTAyLCAwLjAwNjkwMiIsIFwKLSAgICAgICAgICAiMC4wMDY5MTEsIDAuMDA2OTY4LCAwLjAwNjk3NiwgMC4wMDY5OCwgMC4wMDY5ODIsIDAuMDA2OTg0LCAwLjAwNjk4NCIsIFwKLSAgICAgICAgICAiMC4wMDcwMDgsIDAuMDA3MDY5LCAwLjAwNzA4LCAwLjAwNzA4NSwgMC4wMDcwODgsIDAuMDA3MDg5LCAwLjAwNzA5IiwgXAotICAgICAgICAgICIwLjAwNzE5MSwgMC4wMDcyNTMsIDAuMDA3MjY2LCAwLjAwNzI3MiwgMC4wMDcyNzUsIDAuMDA3Mjc3LCAwLjAwNzI3OCIsIFwKLSAgICAgICAgICAiMC4wMDczNTcsIDAuMDA3NDE4LCAwLjAwNzQzMiwgMC4wMDc0MzgsIDAuMDA3NDQzLCAwLjAwNzQ0NCwgMC4wMDc0NDYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMU4iOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNzExOCwgMC4wMDcxNjEsIDAuMDA3MTY3LCAwLjAwNzE2NywgMC4wMDcxNjgsIDAuMDA3MTY4LCAwLjAwNzE3IiwgXAotICAgICAgICAgICIwLjAwNzA5NCwgMC4wMDcxNTIsIDAuMDA3MTYzLCAwLjAwNzE2OCwgMC4wMDcxNjIsIDAuMDA3MTY1LCAwLjAwNzE2NiIsIFwKLSAgICAgICAgICAiMC4wMDcxNTEsIDAuMDA3MjI4LCAwLjAwNzIzOSwgMC4wMDcyNDMsIDAuMDA3MjQ2LCAwLjAwNzI0OCwgMC4wMDcyNDgiLCBcCi0gICAgICAgICAgIjAuMDA3MjA3LCAwLjAwNzI5MywgMC4wMDczMDUsIDAuMDA3MzEyLCAwLjAwNzMxNSwgMC4wMDczMTcsIDAuMDA3MzIiLCBcCi0gICAgICAgICAgIjAuMDA3MzA2LCAwLjAwNzM5NiwgMC4wMDc0MSwgMC4wMDc0MTksIDAuMDA3NDIzLCAwLjAwNzQyNSwgMC4wMDc0MjYiLCBcCi0gICAgICAgICAgIjAuMDA3NDgsIDAuMDA3NTc1LCAwLjAwNzYsIDAuMDA3NjAyLCAwLjAwNzYxMiwgMC4wMDc2MDgsIDAuMDA3NjExIiwgXAotICAgICAgICAgICIwLjAwNzY2NCwgMC4wMDc3NjQsIDAuMDA3Nzc0LCAwLjAwNzc5MiwgMC4wMDc3ODksIDAuMDA3ODAxLCAwLjAwNzc5NSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjQ2NSwgMC4wMDY0OTIsIDAuMDA2NDk1LCAwLjAwNjQ5NywgMC4wMDY0OTcsIDAuMDA2NDk3LCAwLjAwNjQ5NyIsIFwKLSAgICAgICAgICAiMC4wMDY0NDksIDAuMDA2NDg5LCAwLjAwNjQ5NCwgMC4wMDY0OTcsIDAuMDA2NDk4LCAwLjAwNjQ5OCwgMC4wMDY0OTkiLCBcCi0gICAgICAgICAgIjAuMDA2NTEsIDAuMDA2NTU0LCAwLjAwNjU2MiwgMC4wMDY1NjUsIDAuMDA2NTY3LCAwLjAwNjU2OCwgMC4wMDY1NjgiLCBcCi0gICAgICAgICAgIjAuMDA2NTgyLCAwLjAwNjYyNywgMC4wMDY2MzMsIDAuMDA2NjM3LCAwLjAwNjYzOSwgMC4wMDY2NCwgMC4wMDY2NDEiLCBcCi0gICAgICAgICAgIjAuMDA2Njk3LCAwLjAwNjczLCAwLjAwNjczNywgMC4wMDY3NDEsIDAuMDA2NzQzLCAwLjAwNjc0NCwgMC4wMDY3NDQiLCBcCi0gICAgICAgICAgIjAuMDA2ODk4LCAwLjAwNjkxOCwgMC4wMDY5MjMsIDAuMDA2OTI5LCAwLjAwNjkyOSwgMC4wMDY5MjksIDAuMDA2OTMiLCBcCi0gICAgICAgICAgIjAuMDA3MDgzLCAwLjAwNzA4NywgMC4wMDcwOTEsIDAuMDA3MDk0LCAwLjAwNzA5NywgMC4wMDcwOTcsIDAuMDA3MDk3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNTQ4NiwgMC4wMDU0OTcsIDAuMDA1NDk5LCAwLjAwNTQ5OSwgMC4wMDU0OTksIDAuMDA1NDk4LCAwLjAwNTQ5OCIsIFwKLSAgICAgICAgICAiMC4wMDU0NTYsIDAuMDA1NDgsIDAuMDA1NDgzLCAwLjAwNTQ4NCwgMC4wMDU0ODUsIDAuMDA1NDg1LCAwLjAwNTQ4NSIsIFwKLSAgICAgICAgICAiMC4wMDU1MzEsIDAuMDA1NDk5LCAwLjAwNTQ5NSwgMC4wMDU0OTMsIDAuMDA1NDkxLCAwLjAwNTQ5LCAwLjAwNTQ4OSIsIFwKLSAgICAgICAgICAiMC4wMDU2MzYsIDAuMDA1NTMxLCAwLjAwNTUxNywgMC4wMDU1MDgsIDAuMDA1NTAyLCAwLjAwNTQ5OSwgMC4wMDU0OTYiLCBcCi0gICAgICAgICAgIjAuMDA1NzkxLCAwLjAwNTU4LCAwLjAwNTU1MiwgMC4wMDU1MzMsIDAuMDA1NTIyLCAwLjAwNTUxNCwgMC4wMDU1MDkiLCBcCi0gICAgICAgICAgIjAuMDA2MTI1LCAwLjAwNTY5NiwgMC4wMDU2MjcsIDAuMDA1NTksIDAuMDA1NTY5LCAwLjAwNTU1NSwgMC4wMDU1NDIiLCBcCi0gICAgICAgICAgIjAuMDA2NDQ2LCAwLjAwNTgxMiwgMC4wMDU3MTYsIDAuMDA1NjUxLCAwLjAwNTYyLCAwLjAwNTU5OCwgMC4wMDU1NzMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDEwNDYsIDAuMDAxMDgyLCAwLjAwMTA4NiwgMC4wMDEwODgsIDAuMDAxMDg5LCAwLjAwMTA4OSwgMC4wMDEwODkiLCBcCi0gICAgICAgICAgIjAuMDAwOTY3LCAwLjAwMTA5MSwgMC4wMDExMDcsIDAuMDAxMTE2LCAwLjAwMTEyLCAwLjAwMTEyMywgMC4wMDExMjQiLCBcCi0gICAgICAgICAgIjAuMDAwOTM0LCAwLjAwMTA3NCwgMC4wMDEwOTcsIDAuMDAxMTExLCAwLjAwMTExOCwgMC4wMDExMjIsIDAuMDAxMTI1IiwgXAotICAgICAgICAgICIwLjAwMDk3NCwgMC4wMDEwNzIsIDAuMDAxMDk3LCAwLjAwMTExLCAwLjAwMTExOCwgMC4wMDExMjIsIDAuMDAxMTI2IiwgXAotICAgICAgICAgICIwLjAwMTA2MiwgMC4wMDEwODcsIDAuMDAxMTA1LCAwLjAwMTExNiwgMC4wMDExMjMsIDAuMDAxMTI2LCAwLjAwMTEyOSIsIFwKLSAgICAgICAgICAiMC4wMDEyOCwgMC4wMDExNDQsIDAuMDAxMTQyLCAwLjAwMTE0MSwgMC4wMDExNDIsIDAuMDAxMTQyLCAwLjAwMTE0MyIsIFwKLSAgICAgICAgICAiMC4wMDE1MSwgMC4wMDEyMiwgMC4wMDExOTQsIDAuMDAxMTg1LCAwLjAwMTE3NiwgMC4wMDExNywgMC4wMDExNjYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0NDg1LCAwLjAwNDUxNSwgMC4wMDQ1MTgsIDAuMDA0NTE4LCAwLjAwNDUxOSwgMC4wMDQ1MiwgMC4wMDQ1MTkiLCBcCi0gICAgICAgICAgIjAuMDA0NDMsIDAuMDA0NTAzLCAwLjAwNDUxMywgMC4wMDQ1MTksIDAuMDA0NTIxLCAwLjAwNDUyMywgMC4wMDQ1MjQiLCBcCi0gICAgICAgICAgIjAuMDA0NDQ2LCAwLjAwNDUwMSwgMC4wMDQ1MTEsIDAuMDA0NTE2LCAwLjAwNDUxOCwgMC4wMDQ1MjEsIDAuMDA0NTIyIiwgXAotICAgICAgICAgICIwLjAwNDU3OSwgMC4wMDQ1MzksIDAuMDA0NTM1LCAwLjAwNDUzMiwgMC4wMDQ1MzEsIDAuMDA0NTMxLCAwLjAwNDUzMSIsIFwKLSAgICAgICAgICAiMC4wMDQ3MjQsIDAuMDA0NTczLCAwLjAwNDU2MywgMC4wMDQ1NTMsIDAuMDA0NTQ3LCAwLjAwNDU0MywgMC4wMDQ1NDEiLCBcCi0gICAgICAgICAgIjAuMDA1MDMzLCAwLjAwNDY3NCwgMC4wMDQ2MjQsIDAuMDA0NjA0LCAwLjAwNDU4MSwgMC4wMDQ1NzEsIDAuMDA0NTY1IiwgXAotICAgICAgICAgICIwLjAwNTI2MiwgMC4wMDQ3NzksIDAuMDA0NzAyLCAwLjAwNDY2MywgMC4wMDQ2MzYsIDAuMDA0NjA4LCAwLjAwNDU5NSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTA0OSwgMC4wMDEwODgsIDAuMDAxMDkyLCAwLjAwMTA5NCwgMC4wMDEwOTUsIDAuMDAxMDk2LCAwLjAwMTA5NyIsIFwKLSAgICAgICAgICAiMC4wMDA5OTksIDAuMDAxMTA0LCAwLjAwMTExOCwgMC4wMDExMjUsIDAuMDAxMTI5LCAwLjAwMTEzMiwgMC4wMDExMzMiLCBcCi0gICAgICAgICAgIjAuMDAxMDUzLCAwLjAwMTExNCwgMC4wMDExMjUsIDAuMDAxMTMyLCAwLjAwMTEzNSwgMC4wMDExMzgsIDAuMDAxMTM5IiwgXAotICAgICAgICAgICIwLjAwMTEyMiwgMC4wMDExMjIsIDAuMDAxMTM1LCAwLjAwMTEzOSwgMC4wMDExNDIsIDAuMDAxMTQzLCAwLjAwMTE0NCIsIFwKLSAgICAgICAgICAiMC4wMDEzMDksIDAuMDAxMTc1LCAwLjAwMTE3LCAwLjAwMTE2NCwgMC4wMDExNjEsIDAuMDAxMTU5LCAwLjAwMTE1OCIsIFwKLSAgICAgICAgICAiMC4wMDE2NTMsIDAuMDAxMjczLCAwLjAwMTIzMSwgMC4wMDEyMTUsIDAuMDAxMiwgMC4wMDExOTEsIDAuMDAxMTg1IiwgXAotICAgICAgICAgICIwLjAwMTg3NywgMC4wMDEzODgsIDAuMDAxMzEzLCAwLjAwMTI3NywgMC4wMDEyNDksIDAuMDAxMjMzLCAwLjAwMTIyIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBBT0kyQkIyWEwgKgotICogLS0tLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChBT0kyQkIyWEwpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4zMzE0MzU7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEwTikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjY1Nzg7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjY1Nzg7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjY1NzI5OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDI4NCwgMC4wMDAzMDksIDAuMDAwMzg5LCAwLjAwMDUxMSwgMC4wMDA2NDMsIDAuMDAwODc1LCAwLjAwMTA3OSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTY5LCAwLjAwMTcxOSwgMC4wMDE3OSwgMC4wMDE5MDIsIDAuMDAyMDMzLCAwLjAwMjI1NiwgMC4wMDI0NTgiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEExTikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjg1MTIzOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDY4NTA4NzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2ODUxMjM7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjg5LCAwLjAwMDI5OCwgMC4wMDAzODEsIDAuMDAwNDkyLCAwLjAwMDYxOSwgMC4wMDA4NDksIDAuMDAxMDM5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyMTMsIDAuMDAyMTQsIDAuMDAyMjE0LCAwLjAwMjMyMSwgMC4wMDI0NDgsIDAuMDAyNjcsIDAuMDAyODU5Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjA5NjQ0OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYwOTY0NDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2MDg4NDk7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMDU4LCAwLjAwMDA1OCwgMC4wMDAwNTgsIDAuMDAwMDU4LCAwLjAwMDA1OCwgMC4wMDAwNTgsIDAuMDAwMDU4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMDU4LCAwLjAwMDA1OCwgMC4wMDAwNTgsIDAuMDAwMDU4LCAwLjAwMDA1OCwgMC4wMDAwNTgsIDAuMDAwMDU4Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCMSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjUzMzI7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjUzMjg2OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDY1MzMyOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDA1OCwgMC4wMDAwNTgsIDAuMDAwMDU4LCAwLjAwMDA1OCwgMC4wMDAwNTgsIDAuMDAwMDU4LCAwLjAwMDA1OCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDA1OCwgMC4wMDAwNTgsIDAuMDAwMDU4LCAwLjAwMDA1OCwgMC4wMDAwNTgsIDAuMDAwMDU4LCAwLjAwMDA1OCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjEwOTE1MTsKLSAgICBmdW5jdGlvbiA6ICIoISgoQjAgQjEpKyghKEEwTitBMU4pKSkpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBME4iOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEyODI5OSwgMC4xNDc1MDQsIDAuMzE5OTc2LCAwLjYwODMzOCwgMC44OTUzMjksIDEuNTY3NzgsIDEuOTUxNzciLCBcCi0gICAgICAgICAgIjAuMTM1MzQ2LCAwLjE1NDUyLCAwLjMyNzAyNSwgMC42MTQ2OTYsIDAuOTAyNDYxLCAxLjU3MzUzLCAxLjk1NzU1IiwgXAotICAgICAgICAgICIwLjE0MDgxNSwgMC4xNTk5NTgsIDAuMzMyNjg3LCAwLjYyMDEzMSwgMC45MDc5NzUsIDEuNTc5MDQsIDEuOTYyNDYiLCBcCi0gICAgICAgICAgIjAuMTQ0NzY0LCAwLjE2MzkzNywgMC4zMzY1ODQsIDAuNjI0NTA0LCAwLjkxMjkzNywgMS41ODM2OCwgMS45NjU0NiIsIFwKLSAgICAgICAgICAiMC4xNDgwNjcsIDAuMTY3MzI1LCAwLjMzOTg4MywgMC42Mjc1MDcsIDAuOTE0OTg3LCAxLjU4NjAyLCAxLjk3MTMiLCBcCi0gICAgICAgICAgIjAuMTUyNTYsIDAuMTcxNTg5LCAwLjM0NDQ2MSwgMC42MzE3MDMsIDAuOTE5NTg3LCAxLjU5MDE5LCAxLjk3NTYxIiwgXAotICAgICAgICAgICIwLjE1NTczNywgMC4xNzUsIDAuMzQ3NTE1LCAwLjYzNDk5MiwgMC45MjI0OTEsIDEuNTk0MzQsIDEuOTc3MTQiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjMyMTMzLCAwLjI3Mjg5NiwgMC42MzkzMjEsIDEuMjUwNywgMS44NjAzLCAzLjI5NDE4LCA0LjEwMTg0IiwgXAotICAgICAgICAgICIwLjIzMjA5OSwgMC4yNzI3OTQsIDAuNjM5NDgzLCAxLjI1MDgxLCAxLjg2MDM5LCAzLjI4NTE1LCA0LjEwMDA0IiwgXAotICAgICAgICAgICIwLjIzMjEwNSwgMC4yNzI5MDMsIDAuNjM5NDk2LCAxLjI1MDcsIDEuODYwNDksIDMuMjg3MzYsIDQuMDk4ODEiLCBcCi0gICAgICAgICAgIjAuMjMyMDE5LCAwLjI3Mjg3NSwgMC42MzkzMSwgMS4yNTA3NSwgMS44NjE3NCwgMy4yODU0NiwgNC4xMDU4IiwgXAotICAgICAgICAgICIwLjIzMjA0NSwgMC4yNzI5NTMsIDAuNjM5NDgzLCAxLjI1MDYzLCAxLjg1OTkxLCAzLjI4NjM2LCA0LjEwMDAyIiwgXAotICAgICAgICAgICIwLjIzMjA2NiwgMC4yNzI4MTIsIDAuNjM5MzIsIDEuMjUwMjMsIDEuODYwODcsIDMuMjg0MTEsIDQuMSIsIFwKLSAgICAgICAgICAiMC4yMzIwNjIsIDAuMjcyODE4LCAwLjYzOTE2OSwgMS4yNTAxNiwgMS44NjIxMSwgMy4yODU0NCwgNC4wOTgiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTE2Mzk5LCAwLjEzMzM1NywgMC4yODU5OTQsIDAuNTM5ODE4LCAwLjc5MzUsIDEuMzg1NjMsIDEuNzIzODIiLCBcCi0gICAgICAgICAgIjAuMTIzMjkxLCAwLjE0MDI0LCAwLjI5MjkwNCwgMC41NDcxNDksIDAuODAwOTk1LCAxLjM5NDUyLCAxLjczMjU1IiwgXAotICAgICAgICAgICIwLjEyODQ3NSwgMC4xNDU0NjEsIDAuMjk4MTU4LCAwLjU1MjM4LCAwLjgwNjMyMywgMS4zOTk5OCwgMS43Mzc1OCIsIFwKLSAgICAgICAgICAiMC4xMzIxMzcsIDAuMTQ5MTM2LCAwLjMwMTgxNiwgMC41NTYwMzEsIDAuODA5NzQ0LCAxLjQwMzI0LCAxLjc0MDciLCBcCi0gICAgICAgICAgIjAuMTM1MTU0LCAwLjE1MjE0LCAwLjMwNDczLCAwLjU1ODg2MSwgMC44MTI5ODQsIDEuNDA1MTksIDEuNzQzOSIsIFwKLSAgICAgICAgICAiMC4xMzkxNywgMC4xNTYxMjgsIDAuMzA4Njg3LCAwLjU2MjcyLCAwLjgxNjgyNCwgMS40MDk0NiwgMS43NDc4MiIsIFwKLSAgICAgICAgICAiMC4xNDIwOTMsIDAuMTU5MTM0LCAwLjMxMTYwNSwgMC41NjU3NjEsIDAuODE5ODk2LCAxLjQxMzE4LCAxLjc1Mjc4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIwNDk5MiwgMC4yMzk3NjgsIDAuNTUzMzIyLCAxLjA3NTU0LCAxLjU5NjgzLCAyLjgxNDEyLCAzLjUxMDQiLCBcCi0gICAgICAgICAgIjAuMjA0OTYyLCAwLjIzOTgyMywgMC41NTMzMDEsIDEuMDc1NjMsIDEuNTk3ODIsIDIuODE1MTcsIDMuNTExMDEiLCBcCi0gICAgICAgICAgIjAuMjA0OTk3LCAwLjIzOTgyNCwgMC41NTMzMzEsIDEuMDc1NTgsIDEuNTk3ODksIDIuODE1NzcsIDMuNTExNDkiLCBcCi0gICAgICAgICAgIjAuMjA1MDY1LCAwLjIzOTg1OSwgMC41NTMzODgsIDEuMDc1OSwgMS41OTc3NywgMi44MTU0NywgMy41MTE1OSIsIFwKLSAgICAgICAgICAiMC4yMDUwOTgsIDAuMjM5ODM1LCAwLjU1MzQxMywgMS4wNzU4LCAxLjU5Nzg0LCAyLjgxNTQyLCAzLjUxMzAzIiwgXAotICAgICAgICAgICIwLjIwNTE0NiwgMC4yMzk5NDgsIDAuNTUzNDMzLCAxLjA3NTc4LCAxLjU5Nzg3LCAyLjgxNTc2LCAzLjUxMTQ4IiwgXAotICAgICAgICAgICIwLjIwNTIwMSwgMC4yMzk5NzIsIDAuNTUzNDI1LCAxLjA3NTgzLCAxLjU5NzYxLCAyLjgxNTA1LCAzLjUxMTU3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkExTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTI3ODA0LCAwLjE0NjkyOSwgMC4zMTk3NDEsIDAuNjA3MDgsIDAuODk0OTUzLCAxLjU2NTk3LCAxLjk0OTQ1IiwgXAotICAgICAgICAgICIwLjEzNTM4NywgMC4xNTQ1OTIsIDAuMzI3MjQ3LCAwLjYxNDU5OSwgMC45MDI1MTYsIDEuNTczNTIsIDEuOTU2ODkiLCBcCi0gICAgICAgICAgIjAuMTQxNDkxLCAwLjE2MDcyNiwgMC4zMzMzNiwgMC42MjEyODgsIDAuOTA4Njg3LCAxLjU3OTc3LCAxLjk2NDUxIiwgXAotICAgICAgICAgICIwLjE0NjE2OSwgMC4xNjUzMjQsIDAuMzM3OTkzLCAwLjYyNTgxOCwgMC45MTM3NDEsIDEuNTg1NDgsIDEuOTY2NzIiLCBcCi0gICAgICAgICAgIjAuMTQ5ODA5LCAwLjE2ODk4NiwgMC4zNDE2NjUsIDAuNjI5MzE0LCAwLjkxNzgwNywgMS41ODczMywgMS45NzIxNyIsIFwKLSAgICAgICAgICAiMC4xNTQ3MTgsIDAuMTczODU0LCAwLjM0NjQwOSwgMC42MzQwMjksIDAuOTIxNzA4LCAxLjU5Mjk1LCAxLjk3NTY1IiwgXAotICAgICAgICAgICIwLjE1ODQ5NywgMC4xNzc3NzMsIDAuMzUwMjY2LCAwLjYzNzYzMiwgMC45MjUzNTYsIDEuNTk2NCwgMS45Nzk5MyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMjg2OTUsIDAuMjY5NDcxLCAwLjYzNjA0NCwgMS4yNDc0NiwgMS44NTY3MiwgMy4yODEyOSwgNC4wOTUyOSIsIFwKLSAgICAgICAgICAiMC4yMjg3ODgsIDAuMjY5NTE0LCAwLjYzNjAxOSwgMS4yNDc1MiwgMS44NTY3NywgMy4yODEzMiwgNC4wOTgwNSIsIFwKLSAgICAgICAgICAiMC4yMjg4ODEsIDAuMjY5NDI0LCAwLjYzNTkzNCwgMS4yNDY1MywgMS44NTY3NywgMy4yODE2LCA0LjA5NjE0IiwgXAotICAgICAgICAgICIwLjIyODg5NywgMC4yNjk1OTMsIDAuNjM2MTczLCAxLjI0NjgyLCAxLjg1NzM0LCAzLjI4MTk5LCA0LjA5ODgiLCBcCi0gICAgICAgICAgIjAuMjI4Nzk0LCAwLjI2OTQ3NiwgMC42MzU5MDMsIDEuMjQ2MjEsIDEuODU3NjQsIDMuMjg2NjgsIDQuMDk1OTYiLCBcCi0gICAgICAgICAgIjAuMjI4NzE4LCAwLjI2OTQ4MSwgMC42MzU4MDYsIDEuMjQ2NTksIDEuODU2MjQsIDMuMjgzMjgsIDQuMTAwNzkiLCBcCi0gICAgICAgICAgIjAuMjI4NzM5LCAwLjI2OTY4LCAwLjYzNTgzOSwgMS4yNDcyNSwgMS44NTYyNCwgMy4yODI1NiwgNC4wOTY1OSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTY4OSwgMC4xMzM5MTksIDAuMjg2NDkxLCAwLjU0MDQ2OSwgMC43OTQ2NzcsIDEuMzg3NzQsIDEuNzI3NSIsIFwKLSAgICAgICAgICAiMC4xMjQxOTYsIDAuMTQxMTg2LCAwLjI5Mzg0MywgMC41NDc3ODIsIDAuODAyMDc0LCAxLjM5NDY3LCAxLjczMzYyIiwgXAotICAgICAgICAgICIwLjEzMDQwNiwgMC4xNDczNywgMC4zMDAwODMsIDAuNTU0MDE1LCAwLjgwNzk0NywgMS40MDE1MywgMS43MzkxOCIsIFwKLSAgICAgICAgICAiMC4xMzQ4NTMsIDAuMTUxODQ0LCAwLjMwNDM5NywgMC41NTg0NTIsIDAuODEyNDQxLCAxLjQwNjI2LCAxLjc0MzYzIiwgXAotICAgICAgICAgICIwLjEzODQ1NiwgMC4xNTUyMzgsIDAuMzA3OTg4LCAwLjU2MTgzNywgMC44MTU5MjEsIDEuNDA4MjksIDEuNzQ4MzIiLCBcCi0gICAgICAgICAgIjAuMTQzMTYsIDAuMTYwMDk5LCAwLjMxMjY2MSwgMC41NjY3MTcsIDAuODIwNTQzLCAxLjQxMzM3LCAxLjc1MzU0IiwgXAotICAgICAgICAgICIwLjE0NjY0NiwgMC4xNjM3NjksIDAuMzE2MjcsIDAuNTcwMTk1LCAwLjgyNDM0OCwgMS40MTc0NCwgMS43NTcxMyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMDUwMDMsIDAuMjM5ODE0LCAwLjU1MzM4MiwgMS4wNzU3MywgMS41OTc2LCAyLjgxNTE2LCAzLjUxMTUzIiwgXAotICAgICAgICAgICIwLjIwNDk2MywgMC4yMzk3NzgsIDAuNTUzMzI4LCAxLjA3NTc2LCAxLjU5NzYzLCAyLjgxNTQyLCAzLjUxMTQ2IiwgXAotICAgICAgICAgICIwLjIwNTA2OCwgMC4yMzk4MzksIDAuNTUzMzEzLCAxLjA3NTgyLCAxLjU5NzgxLCAyLjgxNTY5LCAzLjUxMTUxIiwgXAotICAgICAgICAgICIwLjIwNTEyLCAwLjIzOTkzOCwgMC41NTMzNjQsIDEuMDc1NTIsIDEuNTk3ODgsIDIuODE1NDQsIDMuNTExNDgiLCBcCi0gICAgICAgICAgIjAuMjA1MjIxLCAwLjI0MDAwNywgMC41NTM0MzYsIDEuMDc1ODQsIDEuNTk3NzEsIDIuODE1NzgsIDMuNTExNDciLCBcCi0gICAgICAgICAgIjAuMjA1NDE2LCAwLjI0MDA5LCAwLjU1MzM1MiwgMS4wNzU3MiwgMS41OTc2NiwgMi44MTUwNywgMy41MTE2IiwgXAotICAgICAgICAgICIwLjIwNTU0OSwgMC4yNDAyMzIsIDAuNTUzNTIxLCAxLjA3NTU4LCAxLjU5NzY4LCAyLjgxNTcxLCAzLjUxMTMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjAiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExMTkxMywgMC4xMzExNDIsIDAuMzAzNjYxLCAwLjU5MDc5LCAwLjg3OTIyNiwgMS41NDkxNywgMS45MzU1MiIsIFwKLSAgICAgICAgICAiMC4xMTkzMTIsIDAuMTM4NTA0LCAwLjMxMTA4NiwgMC41OTkyMDUsIDAuODg2NTAxLCAxLjU1NzU3LCAxLjk0MDg4IiwgXAotICAgICAgICAgICIwLjEyODU1NSwgMC4xNDc3NjksIDAuMzIwMTkzLCAwLjYwNzY5NSwgMC44OTUxOTEsIDEuNTY3MDUsIDEuOTUwMzEiLCBcCi0gICAgICAgICAgIjAuMTM4MDc2LCAwLjE1NzIxOCwgMC4zMjk3MywgMC42MTc1MTQsIDAuOTA0NTgxLCAxLjU3NTQ3LCAxLjk2MDg4IiwgXAotICAgICAgICAgICIwLjE0NzYzNSwgMC4xNjY3NjgsIDAuMzM5MTExLCAwLjYyNjU5MiwgMC45MTQwODcsIDEuNTg0NjgsIDEuOTY5NjQiLCBcCi0gICAgICAgICAgIjAuMTYzMjQ1LCAwLjE4MjE3MywgMC4zNTQyMzcsIDAuNjQxNjE1LCAwLjkyODg5LCAxLjU5OTQ0LCAxLjk4NDMzIiwgXAotICAgICAgICAgICIwLjE3NzAyOCwgMC4xOTU4NjMsIDAuMzY3NDY2LCAwLjY1MjQ5MiwgMC45NDIzMzYsIDEuNjE0MzUsIDEuOTk1NzciKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjMyMDM5LCAwLjI3Mjg0NywgMC42MzkzMTgsIDEuMjQ5ODEsIDEuODYwNTUsIDMuMjg5NTIsIDQuMTAxOTYiLCBcCi0gICAgICAgICAgIjAuMjMyMTM1LCAwLjI3Mjg5MiwgMC42Mzk0MTgsIDEuMjUwMzIsIDEuODYwNTgsIDMuMjg1MTMsIDQuMDk3OTEiLCBcCi0gICAgICAgICAgIjAuMjMyODksIDAuMjcyOTYxLCAwLjYzOTQ0NiwgMS4yNDk1NywgMS44NjI1NiwgMy4yODU3OSwgNC4wOTk1NSIsIFwKLSAgICAgICAgICAiMC4yMzYzMzIsIDAuMjc1NzU5LCAwLjYzOTMxOCwgMS4yNDk5LCAxLjg1OTg5LCAzLjI4ODc1LCA0LjEwMDAxIiwgXAotICAgICAgICAgICIwLjI0MTU0OCwgMC4yODAxODYsIDAuNjM5NTA3LCAxLjI0OTksIDEuODYwMzgsIDMuMjg4OSwgNC4wOTk2NiIsIFwKLSAgICAgICAgICAiMC4yNTI0NjEsIDAuMjkwMDE0LCAwLjY0MjA3OSwgMS4yNTA2MywgMS44NjA4NiwgMy4yOTA1MiwgNC4wOTk5IiwgXAotICAgICAgICAgICIwLjI2MzI5NSwgMC4yOTk5NiwgMC42NDY1MjIsIDEuMjQ5ODYsIDEuODYwNTgsIDMuMjg1ODMsIDQuMTA0NTUiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk4MzYsIDAuMTE1Mzg3LCAwLjI2Nzk5MSwgMC41MjE3MjgsIDAuNzc1NDg4LCAxLjM2ODA3LCAxLjcwNjgyIiwgXAotICAgICAgICAgICIwLjEwNDgzNiwgMC4xMjE4NjYsIDAuMjc0NTUxLCAwLjUyODM1OSwgMC43ODIxMDMsIDEuMzc0MjIsIDEuNzEzNjIiLCBcCi0gICAgICAgICAgIjAuMTEyNzE1LCAwLjEyOTgyOSwgMC4yODI1MjgsIDAuNTM2NDA3LCAwLjc5MDEzMiwgMS4zODI1MywgMS43MjExNiIsIFwKLSAgICAgICAgICAiMC4xMjA3MTcsIDAuMTM3NTgyLCAwLjI5MDUyMSwgMC41NDQzMzIsIDAuNzk4MDgsIDEuMzkwOTcsIDEuNzI5NjkiLCBcCi0gICAgICAgICAgIjAuMTI4NDE4LCAwLjE0NTQ5LCAwLjI5ODUxOSwgMC41NTI0NTQsIDAuODA2MTg4LCAxLjM5ODIzLCAxLjczNjg1IiwgXAotICAgICAgICAgICIwLjE0MTE5MSwgMC4xNTgyMzEsIDAuMzEwOTgxLCAwLjU2NTE5LCAwLjgxODkzLCAxLjQxMTA4LCAxLjc0OTM3IiwgXAotICAgICAgICAgICIwLjE1MTM2NiwgMC4xNjkxNzIsIDAuMzIyMzE0LCAwLjU3Njg2OSwgMC44MzA3MDksIDEuNDIzMzUsIDEuNzYxMDciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTk0NzE4LCAwLjIyOTQ2NSwgMC41NDI2NTgsIDEuMDY0NzksIDEuNTg2OTIsIDIuODA0ODUsIDMuNDk5NjkiLCBcCi0gICAgICAgICAgIjAuMTk0Njc0LCAwLjIyOTQ4NCwgMC41NDI2NDgsIDEuMDY0NTgsIDEuNTg3MDIsIDIuODA0NjcsIDMuNTAyNTYiLCBcCi0gICAgICAgICAgIjAuMTk1NywgMC4yMzAwNiwgMC41NDI1NzUsIDEuMDY0NDgsIDEuNTg2OTcsIDIuODA1NDksIDMuNTAwODYiLCBcCi0gICAgICAgICAgIjAuMTk4Nzc5LCAwLjIzMjM4OSwgMC41NDI2NTcsIDEuMDY0NjQsIDEuNTkwOTgsIDIuODA0MjMsIDMuNDk5ODYiLCBcCi0gICAgICAgICAgIjAuMjAyOTA4LCAwLjIzNjA0NCwgMC41NDMxNiwgMS4wNjQ2MywgMS41ODY0NywgMi44MDc4MywgMy41MDA3NSIsIFwKLSAgICAgICAgICAiMC4yMTE1MDUsIDAuMjQzODcyLCAwLjU0NTgxLCAxLjA2NDYxLCAxLjU4NjY0LCAyLjgwNDU1LCAzLjUwNTYzIiwgXAotICAgICAgICAgICIwLjIxOTU5LCAwLjI1MTU3MSwgMC41NTAwMjIsIDEuMDY1MSwgMS41ODcwMywgMi44MDQ4LCAzLjUwMDU1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIxIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDk1MzYsIDAuMTI4NzM5LCAwLjMwMTI1OSwgMC41ODk0MjgsIDAuODc2MzIzLCAxLjU0Nzc1LCAxLjkzMTk1IiwgXAotICAgICAgICAgICIwLjExNjc3NiwgMC4xMzU5NjksIDAuMzA4NTU5LCAwLjU5NjY0NSwgMC44ODM5OCwgMS41NTYzMiwgMS45Mzg0IiwgXAotICAgICAgICAgICIwLjEyNjE1NiwgMC4xNDUzMDcsIDAuMzE3ODIxLCAwLjYwNTMzNiwgMC44OTI4MTQsIDEuNTY0NjEsIDEuOTQ3OTUiLCBcCi0gICAgICAgICAgIjAuMTM1NjQ2LCAwLjE1NDc2NywgMC4zMjczOTQsIDAuNjE1MjE3LCAwLjkwMjIzNSwgMS41NzMwNiwgMS45NTg1MyIsIFwKLSAgICAgICAgICAiMC4xNDUxOCwgMC4xNjQyOTUsIDAuMzM2NzcsIDAuNjI0MjAxLCAwLjkxMTgsIDEuNTgyMjcsIDEuOTY3MjgiLCBcCi0gICAgICAgICAgIjAuMTYwNzA1LCAwLjE3OTY1NiwgMC4zNTE3NzMsIDAuNjM5MDk0LCAwLjkyNjM1NCwgMS41OTcwNywgMS45ODE2NSIsIFwKLSAgICAgICAgICAiMC4xNzQ0NTEsIDAuMTkzMzA3LCAwLjM2NDk5MSwgMC42NDk4MjcsIDAuOTM5NzIsIDEuNjEwNjEsIDEuOTkzMzQiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjI4NzY1LCAwLjI2OTQwNywgMC42MzU3ODksIDEuMjQ2OCwgMS44NTcxMywgMy4yODE1MywgNC4wOTU3MiIsIFwKLSAgICAgICAgICAiMC4yMjg4MDIsIDAuMjY5NDkxLCAwLjYzNTg0MiwgMS4yNDY2MiwgMS44NTY3MSwgMy4yODE5NiwgNC4wOTYxOSIsIFwKLSAgICAgICAgICAiMC4yMjk1MTcsIDAuMjY5NzM4LCAwLjYzNTkxMywgMS4yNDU5NSwgMS44NTg4NiwgMy4yODIxMiwgNC4wOTU5OCIsIFwKLSAgICAgICAgICAiMC4yMzMxMDEsIDAuMjcyNDA3LCAwLjYzNTc4OSwgMS4yNDYzMSwgMS44NTYxNywgMy4yODQ5NiwgNC4wOTYwOCIsIFwKLSAgICAgICAgICAiMC4yMzg1MzksIDAuMjc2OTU1LCAwLjYzNTg4MywgMS4yNDYyNSwgMS44NTcwNiwgMy4yODUwOSwgNC4wOTU3NCIsIFwKLSAgICAgICAgICAiMC4yNDk0MjksIDAuMjg2ODUyLCAwLjYzODU3NywgMS4yNDcsIDEuODU4MDEsIDMuMjgwMjQsIDQuMDk2NSIsIFwKLSAgICAgICAgICAiMC4yNjAzNDYsIDAuMjk2OTczLCAwLjY0MzA2MSwgMS4yNDY5LCAxLjg1NzI1LCAzLjI4MTI3LCA0LjEwMDU4Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5NjY4LCAwLjExMzcxMiwgMC4yNjYzMjYsIDAuNTIwMDg0LCAwLjc3MzgwNCwgMS4zNjU4OSwgMS43MDU2MiIsIFwKLSAgICAgICAgICAiMC4xMDQyODUsIDAuMTIxMzI0LCAwLjI3Mzk2NSwgMC41Mjc3MywgMC43ODE0NTgsIDEuMzc0MjksIDEuNzEzOCIsIFwKLSAgICAgICAgICAiMC4xMTM2NTEsIDAuMTMwNjgsIDAuMjgzMjcyLCAwLjUzNzAzNSwgMC43OTA3NjIsIDEuMzgzMSwgMS43MjMxOSIsIFwKLSAgICAgICAgICAiMC4xMjMyNjksIDAuMTQwMjMsIDAuMjkyODY5LCAwLjU0NjU5MSwgMC44MDAzNDgsIDEuMzkyODksIDEuNzMyMTEiLCBcCi0gICAgICAgICAgIjAuMTMyOTg5LCAwLjE0OTk5MiwgMC4zMDIzNjQsIDAuNTU2MDY0LCAwLjgwOTc0NSwgMS40MDIxNSwgMS43NDA1OSIsIFwKLSAgICAgICAgICAiMC4xNDg2NDUsIDAuMTY1NjE2LCAwLjMxNzYwOCwgMC41NzEzNDgsIDAuODI0OTksIDEuNDE2OTUsIDEuNzU2IiwgXAotICAgICAgICAgICIwLjE2MjA5MiwgMC4xNzkzMDcsIDAuMzMxMDksIDAuNTg0NjgyLCAwLjgzODM2NSwgMS40MzA1LCAxLjc2ODUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTk0Njk2LCAwLjIyOTQ5NiwgMC41NDI2MzYsIDEuMDY0NzMsIDEuNTg2NzQsIDIuODA1ODEsIDMuNTAxMzkiLCBcCi0gICAgICAgICAgIjAuMTk0NywgMC4yMjk0NzksIDAuNTQyNjI1LCAxLjA2NDgsIDEuNTg2MzcsIDIuODA1MTQsIDMuNTAxNjIiLCBcCi0gICAgICAgICAgIjAuMTk2MDk4LCAwLjIzMDE4NywgMC41NDI1OTcsIDEuMDY0ODksIDEuNTg3MDUsIDIuODA0NTUsIDMuNTAwMDIiLCBcCi0gICAgICAgICAgIjAuMjAwNDE0LCAwLjIzMzY1NiwgMC41NDI2NTYsIDEuMDY0NjksIDEuNTkwODEsIDIuODA0NDQsIDMuNTAxMTkiLCBcCi0gICAgICAgICAgIjAuMjA2NTQsIDAuMjM5MDQ3LCAwLjU0MzExLCAxLjA2NDgyLCAxLjU4NzM1LCAyLjgwNTI0LCAzLjUwMTE3IiwgXAotICAgICAgICAgICIwLjIxODE1NywgMC4yNDk2NjYsIDAuNTQ2OTQ0LCAxLjA2NDkyLCAxLjU5MDk0LCAyLjgwNzk5LCAzLjUwMDE3IiwgXAotICAgICAgICAgICIwLjIyOTU2MiwgMC4yNjAzMSwgMC41NTIyNzUsIDEuMDY0OTYsIDEuNTg3MDgsIDIuODA1MDMsIDMuNTE1MDkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBME4iOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjk1MiwgMC4wMDI5NTIsIDAuMDAyOTUyLCAwLjAwMjk1MywgMC4wMDI5NTIsIDAuMDAyOTUyLCAwLjAwMjk1MSIsIFwKLSAgICAgICAgICAiMC4wMDI5NjMsIDAuMDAyOTYzLCAwLjAwMjk2NSwgMC4wMDI5NjUsIDAuMDAyOTY0LCAwLjAwMjk2NCwgMC4wMDI5NjMiLCBcCi0gICAgICAgICAgIjAuMDAzMDU2LCAwLjAwMzA1NiwgMC4wMDMwNTgsIDAuMDAzMDU4LCAwLjAwMzA1OCwgMC4wMDMwNTcsIDAuMDAzMDU3IiwgXAotICAgICAgICAgICIwLjAwMzE3MywgMC4wMDMxNzQsIDAuMDAzMTc2LCAwLjAwMzE3NiwgMC4wMDMxNzYsIDAuMDAzMTc2LCAwLjAwMzE3NSIsIFwKLSAgICAgICAgICAiMC4wMDMzMTgsIDAuMDAzMzA2LCAwLjAwMzMyMSwgMC4wMDMzMSwgMC4wMDMzMDYsIDAuMDAzMzA2LCAwLjAwMzMwNiIsIFwKLSAgICAgICAgICAiMC4wMDM1MzEsIDAuMDAzNTQ0LCAwLjAwMzUzNSwgMC4wMDM1NSwgMC4wMDM1NDksIDAuMDAzNTQ4LCAwLjAwMzU0NyIsIFwKLSAgICAgICAgICAiMC4wMDM3NTUsIDAuMDAzNzU4LCAwLjAwMzc0MSwgMC4wMDM3NiwgMC4wMDM3NjIsIDAuMDAzNzYxLCAwLjAwMzc0MiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjkxNywgMC4wMDI5MTcsIDAuMDAyOTE3LCAwLjAwMjkxOCwgMC4wMDI5MTcsIDAuMDAyOTE2LCAwLjAwMjkxNiIsIFwKLSAgICAgICAgICAiMC4wMDI5MzEsIDAuMDAyOTMxLCAwLjAwMjkzMywgMC4wMDI5MzMsIDAuMDAyOTMzLCAwLjAwMjkzMiwgMC4wMDI5MzIiLCBcCi0gICAgICAgICAgIjAuMDAzMDE2LCAwLjAwMzAxNywgMC4wMDMwMiwgMC4wMDMwMjEsIDAuMDAzMDIxLCAwLjAwMzAyLCAwLjAwMzAyIiwgXAotICAgICAgICAgICIwLjAwMzEyOSwgMC4wMDMxMywgMC4wMDMxMzQsIDAuMDAzMTM1LCAwLjAwMzEzNSwgMC4wMDMxMzUsIDAuMDAzMTM1IiwgXAotICAgICAgICAgICIwLjAwMzI2NiwgMC4wMDMyNjcsIDAuMDAzMjcyLCAwLjAwMzI3NCwgMC4wMDMyNzQsIDAuMDAzMjY1LCAwLjAwMzI3NCIsIFwKLSAgICAgICAgICAiMC4wMDM0ODgsIDAuMDAzNDg5LCAwLjAwMzQ5NSwgMC4wMDM0OTYsIDAuMDAzNDg2LCAwLjAwMzQ4NiwgMC4wMDM0OTciLCBcCi0gICAgICAgICAgIjAuMDAzNjkyLCAwLjAwMzY4LCAwLjAwMzY5OSwgMC4wMDM3MDIsIDAuMDAzNjg4LCAwLjAwMzcwMiwgMC4wMDM3MDIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMU4iOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjc5NCwgMC4wMDI3OTUsIDAuMDAyNzk3LCAwLjAwMjc5NywgMC4wMDI3OTcsIDAuMDAyNzk3LCAwLjAwMjc5NyIsIFwKLSAgICAgICAgICAiMC4wMDI4MDIsIDAuMDAyODAzLCAwLjAwMjgwNiwgMC4wMDI4MDgsIDAuMDAyODA4LCAwLjAwMjgwOCwgMC4wMDI4MDgiLCBcCi0gICAgICAgICAgIjAuMDAyODg1LCAwLjAwMjg4NiwgMC4wMDI4OTEsIDAuMDAyODkzLCAwLjAwMjg5NCwgMC4wMDI4OTQsIDAuMDAyODk0IiwgXAotICAgICAgICAgICIwLjAwMjk4OCwgMC4wMDI5OSwgMC4wMDI5OTcsIDAuMDAyOTk5LCAwLjAwMywgMC4wMDMsIDAuMDAzIiwgXAotICAgICAgICAgICIwLjAwMzEyLCAwLjAwMzEyMiwgMC4wMDMxMjIsIDAuMDAzMTI0LCAwLjAwMzEzMywgMC4wMDMxMzQsIDAuMDAzMTM0IiwgXAotICAgICAgICAgICIwLjAwMzMzNywgMC4wMDMzMjksIDAuMDAzMzM3LCAwLjAwMzM1MywgMC4wMDMzNTMsIDAuMDAzMzQzLCAwLjAwMzM1MyIsIFwKLSAgICAgICAgICAiMC4wMDM1MjYsIDAuMDAzNTQ3LCAwLjAwMzUzOCwgMC4wMDM1NTYsIDAuMDAzNTU2LCAwLjAwMzU1NywgMC4wMDM1NDQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDMxOTYsIDAuMDAzMTk2LCAwLjAwMzE5NywgMC4wMDMxOTcsIDAuMDAzMTk3LCAwLjAwMzE5NiwgMC4wMDMxOTYiLCBcCi0gICAgICAgICAgIjAuMDAzMjA1LCAwLjAwMzIwNSwgMC4wMDMyMDcsIDAuMDAzMjA4LCAwLjAwMzIwOCwgMC4wMDMyMDgsIDAuMDAzMjA3IiwgXAotICAgICAgICAgICIwLjAwMzI4NiwgMC4wMDMyODYsIDAuMDAzMjg5LCAwLjAwMzI5LCAwLjAwMzI5LCAwLjAwMzI5LCAwLjAwMzI5IiwgXAotICAgICAgICAgICIwLjAwMzM5LCAwLjAwMzM5MSwgMC4wMDMzOTUsIDAuMDAzMzk1LCAwLjAwMzM5NSwgMC4wMDMzOTUsIDAuMDAzMzk1IiwgXAotICAgICAgICAgICIwLjAwMzUxNiwgMC4wMDM1MTIsIDAuMDAzNTIxLCAwLjAwMzUxNywgMC4wMDM1MTcsIDAuMDAzNTE3LCAwLjAwMzUxNyIsIFwKLSAgICAgICAgICAiMC4wMDM3MzIsIDAuMDAzNzMzLCAwLjAwMzczOCwgMC4wMDM3NDEsIDAuMDAzNzMsIDAuMDAzNzQsIDAuMDAzNzQiLCBcCi0gICAgICAgICAgIjAuMDAzOTMsIDAuMDAzOTIyLCAwLjAwMzkyNywgMC4wMDM5MzcsIDAuMDAzOTM3LCAwLjAwMzkzOCwgMC4wMDM5MzgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyMTYsIDAuMDAyMTYsIDAuMDAyMTYxLCAwLjAwMjE2MSwgMC4wMDIxNiwgMC4wMDIxNiwgMC4wMDIxNTkiLCBcCi0gICAgICAgICAgIjAuMDAyMTU1LCAwLjAwMjE1NSwgMC4wMDIxNTcsIDAuMDAyMTU3LCAwLjAwMjE1NywgMC4wMDIxNTYsIDAuMDAyMTU2IiwgXAotICAgICAgICAgICIwLjAwMjE2OCwgMC4wMDIxNjgsIDAuMDAyMTYyLCAwLjAwMjE2LCAwLjAwMjE1OSwgMC4wMDIxNTcsIDAuMDAyMTU3IiwgXAotICAgICAgICAgICIwLjAwMjE5LCAwLjAwMjE4NSwgMC4wMDIxNzIsIDAuMDAyMTY1LCAwLjAwMjE2MiwgMC4wMDIxNTksIDAuMDAyMTU3IiwgXAotICAgICAgICAgICIwLjAwMjIxOSwgMC4wMDIyMTQsIDAuMDAyMTg3LCAwLjAwMjE3MywgMC4wMDIxNjcsIDAuMDAyMTYyLCAwLjAwMjE2IiwgXAotICAgICAgICAgICIwLjAwMjI4MywgMC4wMDIyNjgsIDAuMDAyMjE4LCAwLjAwMjE5MywgMC4wMDIxOCwgMC4wMDIxNjksIDAuMDAyMTY2IiwgXAotICAgICAgICAgICIwLjAwMjM0OCwgMC4wMDIzMywgMC4wMDIyNTMsIDAuMDAyMjEsIDAuMDAyMTk0LCAwLjAwMjE3OCwgMC4wMDIxNzMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDAzNTIsIDAuMDAwMzUzLCAwLjAwMDM1NSwgMC4wMDAzNTYsIDAuMDAwMzU2LCAwLjAwMDM1NiwgMC4wMDAzNTYiLCBcCi0gICAgICAgICAgIjAuMDAwMzUsIDAuMDAwMzUzLCAwLjAwMDM2MiwgMC4wMDAzNjYsIDAuMDAwMzY3LCAwLjAwMDM2OCwgMC4wMDAzNjkiLCBcCi0gICAgICAgICAgIjAuMDAwMzQ2LCAwLjAwMDM0OSwgMC4wMDAzNjEsIDAuMDAwMzY2LCAwLjAwMDM2OCwgMC4wMDAzNywgMC4wMDAzNyIsIFwKLSAgICAgICAgICAiMC4wMDAzNTMsIDAuMDAwMzU1LCAwLjAwMDM2NCwgMC4wMDAzNjgsIDAuMDAwMzY5LCAwLjAwMDM3MSwgMC4wMDAzNzEiLCBcCi0gICAgICAgICAgIjAuMDAwMzY4LCAwLjAwMDM2OSwgMC4wMDAzNywgMC4wMDAzNzIsIDAuMDAwMzcyLCAwLjAwMDM3MywgMC4wMDAzNzMiLCBcCi0gICAgICAgICAgIjAuMDAwNDA4LCAwLjAwMDQwMywgMC4wMDAzODksIDAuMDAwMzgyLCAwLjAwMDM3OSwgMC4wMDAzNzcsIDAuMDAwMzc2IiwgXAotICAgICAgICAgICIwLjAwMDQ1NywgMC4wMDA0NDYsIDAuMDAwNDEyLCAwLjAwMDM5NiwgMC4wMDAzOSwgMC4wMDAzODMsIDAuMDAwMzgxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTgyNCwgMC4wMDE4MjUsIDAuMDAxODI3LCAwLjAwMTgyNywgMC4wMDE4MjgsIDAuMDAxODI3LCAwLjAwMTgyNyIsIFwKLSAgICAgICAgICAiMC4wMDE4MjEsIDAuMDAxODIyLCAwLjAwMTgyNywgMC4wMDE4MjgsIDAuMDAxODI5LCAwLjAwMTgyOSwgMC4wMDE4MjkiLCBcCi0gICAgICAgICAgIjAuMDAxODI5LCAwLjAwMTgyOSwgMC4wMDE4MjksIDAuMDAxODMsIDAuMDAxODMsIDAuMDAxODMsIDAuMDAxODI5IiwgXAotICAgICAgICAgICIwLjAwMTg0NSwgMC4wMDE4NDMsIDAuMDAxODM3LCAwLjAwMTgzNCwgMC4wMDE4MzMsIDAuMDAxODMyLCAwLjAwMTgzMSIsIFwKLSAgICAgICAgICAiMC4wMDE4NywgMC4wMDE4NjcsIDAuMDAxODUxLCAwLjAwMTg0LCAwLjAwMTgzNywgMC4wMDE4MzMsIDAuMDAxODMyIiwgXAotICAgICAgICAgICIwLjAwMTkzLCAwLjAwMTkxOCwgMC4wMDE4NzcsIDAuMDAxODU2LCAwLjAwMTg0OCwgMC4wMDE4NCwgMC4wMDE4MzgiLCBcCi0gICAgICAgICAgIjAuMDAxOTkyLCAwLjAwMTk3NSwgMC4wMDE5MDksIDAuMDAxODc3LCAwLjAwMTg2MSwgMC4wMDE4NDgsIDAuMDAxODQ1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwMzUyLCAwLjAwMDM1MywgMC4wMDAzNTUsIDAuMDAwMzU2LCAwLjAwMDM1NiwgMC4wMDAzNTYsIDAuMDAwMzU2IiwgXAotICAgICAgICAgICIwLjAwMDM1NSwgMC4wMDAzNTcsIDAuMDAwMzY0LCAwLjAwMDM2NywgMC4wMDAzNjgsIDAuMDAwMzY5LCAwLjAwMDM2OSIsIFwKLSAgICAgICAgICAiMC4wMDAzNjQsIDAuMDAwMzY0LCAwLjAwMDM2OSwgMC4wMDAzNywgMC4wMDAzNzEsIDAuMDAwMzcxLCAwLjAwMDM3MiIsIFwKLSAgICAgICAgICAiMC4wMDAzOCwgMC4wMDAzNzgsIDAuMDAwMzc3LCAwLjAwMDM3NSwgMC4wMDAzNzQsIDAuMDAwMzc0LCAwLjAwMDM3NCIsIFwKLSAgICAgICAgICAiMC4wMDA0MDcsIDAuMDAwNDAzLCAwLjAwMDM5LCAwLjAwMDM4MywgMC4wMDAzOCwgMC4wMDAzNzcsIDAuMDAwMzc2IiwgXAotICAgICAgICAgICIwLjAwMDQ2NiwgMC4wMDA0NTUsIDAuMDAwNDE2LCAwLjAwMDQwMSwgMC4wMDAzOTMsIDAuMDAwMzg1LCAwLjAwMDM4MyIsIFwKLSAgICAgICAgICAiMC4wMDA1MzIsIDAuMDAwNTEzLCAwLjAwMDQ1LCAwLjAwMDQyMSwgMC4wMDA0MDgsIDAuMDAwMzk0LCAwLjAwMDM5Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogQU9JMzFYMiAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChBT0kzMVgyKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuNjU0MTMzOwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxOTIwMTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE5MTU5MTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE5MjAxOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTA0OSwgMC4wMDEwNDgsIDAuMDAxMDQ3LCAwLjAwMTA0NywgMC4wMDEwNDcsIDAuMDAxMDQ3LCAwLjAwMTA0NyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTA0OSwgMC4wMDEwNSwgMC4wMDEwNSwgMC4wMDEwNTEsIDAuMDAxMDUxLCAwLjAwMTA1MSwgMC4wMDEwNTIiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEExKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE4MjE4NTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE4MTY1NzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE4MjE4NTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDEwNDksIDAuMDAxMDQ4LCAwLjAwMTA0OCwgMC4wMDEwNDcsIDAuMDAxMDQ1LCAwLjAwMTA0NywgMC4wMDEwNDciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDEwNDksIDAuMDAxMDUsIDAuMDAxMDUxLCAwLjAwMTA1MSwgMC4wMDEwNTIsIDAuMDAxMDUyLCAwLjAwMTA1MiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQTIpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTY0OTk0OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTY0MTQ0OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTY0OTk0OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDYyNiwgMC4wMDA2MjQsIDAuMDAwNjI0LCAwLjAwMDYyNCwgMC4wMDA2MjQsIDAuMDAwNjI0LCAwLjAwMDYyNCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTE5MSwgMC4wMDExOTIsIDAuMDAxMTkyLCAwLjAwMTE5MiwgMC4wMDExOTIsIDAuMDAxMTkyLCAwLjAwMTE5MiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQjApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTY2ODU1OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTY2ODU1OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTY2ODM2OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDE5NCwgMC4wMDAxOTQsIDAuMDAwMTk0LCAwLjAwMDE5NCwgMC4wMDAxOTQsIDAuMDAwMTk1LCAwLjAwMDE5NCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTUzNywgMC4wMDE1MzcsIDAuMDAxNTM3LCAwLjAwMTUzNywgMC4wMDE1MzcsIDAuMDAxNTM2LCAwLjAwMTUzNiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjI4MTU4NDsKLSAgICBmdW5jdGlvbiA6ICIoISgoKEEwIEExKSBBMikrQjApKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTAiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0NjEzNCwgMC4xODg0NjksIDAuMzAyMjMzLCAwLjQ0NDIwOCwgMC41ODY0MzQsIDAuNzI4MzE1LCAwLjg2OTY0NSIsIFwKLSAgICAgICAgICAiMC4wNTMyMjUsIDAuMTk1NjIsIDAuMzA5NDU0LCAwLjQ1MTU0MiwgMC41OTM0MDgsIDAuNzM1Njc4LCAwLjg3NzMzMyIsIFwKLSAgICAgICAgICAiMC4wNjA3NzksIDAuMjAzMjAyLCAwLjMxNjg4MywgMC40NTg3MDUsIDAuNjAxMjU0LCAwLjc0MjYzMSwgMC44ODQ4MzkiLCBcCi0gICAgICAgICAgIjAuMDY3ODQ4LCAwLjIxMDYwMiwgMC4zMjQzMDIsIDAuNDY2MjEsIDAuNjA4NTM0LCAwLjc1MDg3MywgMC44OTIwNDciLCBcCi0gICAgICAgICAgIjAuMDczNzkxLCAwLjIxNzk1MywgMC4zMzE2OTUsIDAuNDczOTM0LCAwLjYxNTgxLCAwLjc1Nzg4NSwgMC45MDA0OTciLCBcCi0gICAgICAgICAgIjAuMDgxNzYyLCAwLjIyOTcxNCwgMC4zNDM2MTEsIDAuNDg1Nzg4LCAwLjYyODAyMywgMC43Njk2NCwgMC45MTE3NzciLCBcCi0gICAgICAgICAgIjAuMDg3NTM0LCAwLjI0MDEyOCwgMC4zNTM2ODMsIDAuNDk2MTI0LCAwLjYzODE0MiwgMC43ODAxMDQsIDAuOTIyMDEzIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3ODI0NywgMC4zODAzOCwgMC42MjIxMDgsIDAuOTI0MjUxLCAxLjIyNjY2LCAxLjUyODQyLCAxLjgzMDA5IiwgXAotICAgICAgICAgICIwLjA3ODU0MiwgMC4zODAzOTYsIDAuNjIyMjk3LCAwLjkyNDIwNSwgMS4yMjYyMSwgMS41Mjg1OCwgMS44MzAyMiIsIFwKLSAgICAgICAgICAiMC4wODEyOTEsIDAuMzgwNDQ1LCAwLjYyMjAzNSwgMC45MjQyNCwgMS4yMjY3MiwgMS41MjgzMSwgMS44MzA4MSIsIFwKLSAgICAgICAgICAiMC4wODU4OTcsIDAuMzgwODY3LCAwLjYyMjE3NCwgMC45MjQ0MTgsIDEuMjI2MzMsIDEuNTI4ODYsIDEuODMwMjMiLCBcCi0gICAgICAgICAgIjAuMDkxNjQ5LCAwLjM4MjQ3MywgMC42MjIwNjIsIDAuOTI0MTUyLCAxLjIyNjA5LCAxLjUyODM0LCAxLjgzMDc0IiwgXAotICAgICAgICAgICIwLjEwMTUxNCwgMC4zODY3MjgsIDAuNjI0MTYsIDAuOTI0MjMsIDEuMjI2MjMsIDEuNTI3OTcsIDEuODI5NzgiLCBcCi0gICAgICAgICAgIjAuMTA5OTQzLCAwLjM5MTkzOCwgMC42MjY5NjEsIDAuOTI1MzY3LCAxLjIyNjIyLCAxLjUyODE3LCAxLjgzMDA3Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2MTgxMiwgMC4yNTE1NTksIDAuNDAyNzIsIDAuNTkxNzgzLCAwLjc4MDk4NiwgMC45Njk2MjksIDEuMTU4MjUiLCBcCi0gICAgICAgICAgIjAuMDY3MDczLCAwLjI1Njk2LCAwLjQwODMxNCwgMC41OTcwMjksIDAuNzg2MDA1LCAwLjk3NDY1MSwgMS4xNjQxNSIsIFwKLSAgICAgICAgICAiMC4wNzMwNjMsIDAuMjYzMTM2LCAwLjQxNDUxMiwgMC42MDM1OTUsIDAuNzkyMDkyLCAwLjk4MTM3NiwgMS4xNjk1OSIsIFwKLSAgICAgICAgICAiMC4wNzkxNjQsIDAuMjY5MjYyLCAwLjQyMDQ1NywgMC42MDk1MTcsIDAuNzk4MTgxLCAwLjk4NjgxNSwgMS4xNzU4NiIsIFwKLSAgICAgICAgICAiMC4wODQ4MzUsIDAuMjc1MjI5LCAwLjQyNjUzMSwgMC42MTU2ODgsIDAuODA0NDM0LCAwLjk5MzAyMSwgMS4xODE4MSIsIFwKLSAgICAgICAgICAiMC4wOTMwNDksIDAuMjg1MDE2LCAwLjQzNjQ0MywgMC42MjU1NzksIDAuODE0MDkxLCAxLjAwMjg3LCAxLjE5MTc5IiwgXAotICAgICAgICAgICIwLjA5OTY1OSwgMC4yOTM2NDYsIDAuNDQ0ODgxLCAwLjYzMzc1LCAwLjgyMjYyNCwgMS4wMTE0OSwgMS4yMDAzNiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDQ4ODMsIDAuNDk0NTQxLCAwLjgwNTc0NCwgMS4xOTUyNCwgMS41ODQ1NywgMS45NzMxMywgMi4zNjE2NiIsIFwKLSAgICAgICAgICAiMC4xMDUwODQsIDAuNDk0NTkyLCAwLjgwNTkyNywgMS4xOTUxMywgMS41ODM2LCAxLjk3MzQ1LCAyLjM2MjYzIiwgXAotICAgICAgICAgICIwLjEwNjg4MiwgMC40OTQyMzUsIDAuODA2MDA1LCAxLjE5NTAyLCAxLjU4NDIzLCAxLjk3MzUzLCAyLjM2MTMzIiwgXAotICAgICAgICAgICIwLjExMDA4MiwgMC40OTQ0NywgMC44MDU3NDQsIDEuMTk1MTQsIDEuNTg0MTYsIDEuOTcyMjgsIDIuMzYzMjYiLCBcCi0gICAgICAgICAgIjAuMTE0MTg0LCAwLjQ5NTExMiwgMC44MDU3MjYsIDEuMTk1MTgsIDEuNTgzNiwgMS45NzIzNiwgMi4zNjEzMyIsIFwKLSAgICAgICAgICAiMC4xMjIzNDksIDAuNDk3MzkxLCAwLjgwNjIyNiwgMS4xOTUxNSwgMS41ODQwNCwgMS45NzMxNSwgMi4zNjEzNiIsIFwKLSAgICAgICAgICAiMC4xMjk3OTIsIDAuNTAwNDU4LCAwLjgwNzYzMywgMS4xOTUwNywgMS41ODQxNSwgMS45NzMyMywgMi4zNjE0MyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQ0NDY1LCAwLjE4NzM2NCwgMC4zMDE2OTYsIDAuNDQ0MjM1LCAwLjU4NzA4OCwgMC43MzAxNTUsIDAuODczMDg4IiwgXAotICAgICAgICAgICIwLjA1MTU0NCwgMC4xOTQ1MDMsIDAuMzA4ODYsIDAuNDUxNzE1LCAwLjU5NDI5MywgMC43MzczMTMsIDAuODc5NjI0IiwgXAotICAgICAgICAgICIwLjA1ODkzNSwgMC4yMDIwMTksIDAuMzE2NDMzLCAwLjQ1OTA5MSwgMC42MDE2ODcsIDAuNzQ1MjMxLCAwLjg4NzE0MyIsIFwKLSAgICAgICAgICAiMC4wNjU4NjIsIDAuMjA5MzksIDAuMzIzNjg1LCAwLjQ2Njc5LCAwLjYwOTAxMSwgMC43NTE3NjIsIDAuODk1MjEzIiwgXAotICAgICAgICAgICIwLjA3MTYyNywgMC4yMTY3MiwgMC4zMzExNDQsIDAuNDc0MDU3LCAwLjYxNjU5OCwgMC43NTkyNjksIDAuOTAyMDE0IiwgXAotICAgICAgICAgICIwLjA3OTA0OCwgMC4yMjg1MjMsIDAuMzQyNjMxLCAwLjQ4NTcyNCwgMC42Mjg0NzQsIDAuNzcwODc5LCAwLjkxMzc3NCIsIFwKLSAgICAgICAgICAiMC4wODQ3MzksIDAuMjM4NjgsIDAuMzUyNzk0LCAwLjQ5NjE4MiwgMC42Mzg4NjIsIDAuNzgxNTk3LCAwLjkyNDE0NCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzYwMDUsIDAuMzc5OTgxLCAwLjYyMzE0OSwgMC45MjcyMTMsIDEuMjMwNTksIDEuNTM0ODMsIDEuODM4NTIiLCBcCi0gICAgICAgICAgIjAuMDc2MzM0LCAwLjM4MDAyNywgMC42MjMxMzcsIDAuOTI3MDc0LCAxLjIzMTIyLCAxLjUzNDg2LCAxLjgzODc5IiwgXAotICAgICAgICAgICIwLjA3OTIwNywgMC4zODAwMjksIDAuNjIzMTU5LCAwLjkyNzI1LCAxLjIzMDQ5LCAxLjUzNTExLCAxLjgzNzgiLCBcCi0gICAgICAgICAgIjAuMDgzODU3LCAwLjM4MDQxNywgMC42MjMxMjgsIDAuOTI3MDkyLCAxLjIzMDY1LCAxLjUzNTY4LCAxLjgzODM5IiwgXAotICAgICAgICAgICIwLjA4OTYsIDAuMzgxODgxLCAwLjYyMzI3MSwgMC45MjcwMDksIDEuMjMwNTMsIDEuNTM0MywgMS44Mzc3NyIsIFwKLSAgICAgICAgICAiMC4wOTk3MjgsIDAuMzg2Mzk5LCAwLjYyNTE2MiwgMC45MjY5NzQsIDEuMjMwODUsIDEuNTM1MzQsIDEuODM3NzIiLCBcCi0gICAgICAgICAgIjAuMTA4MDg0LCAwLjM5MTU0LCAwLjYyNzkwNSwgMC45MjgxMDEsIDEuMjMxMDQsIDEuNTM1MTEsIDEuODM5NTYiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDYwMzU2LCAwLjI1MDMxNCwgMC40MDE1MDgsIDAuNTkwNTIyLCAwLjc3OTE3OCwgMC45Njc5MSwgMS4xNTczIiwgXAotICAgICAgICAgICIwLjA2NjY5MywgMC4yNTY2NiwgMC40MDc3NzgsIDAuNTk2NTg3LCAwLjc4NTg2LCAwLjk3NDExNiwgMS4xNjI5NiIsIFwKLSAgICAgICAgICAiMC4wNzQ4OTYsIDAuMjY0OTAzLCAwLjQxNjM4OSwgMC42MDUzMjcsIDAuNzkzODkyLCAwLjk4MzExOCwgMS4xNzEzNSIsIFwKLSAgICAgICAgICAiMC4wODMwNDUsIDAuMjcyNTgyLCAwLjQyNDM3NiwgMC42MTMzMTQsIDAuODAyMTE2LCAwLjk5MTQ4NywgMS4xNzk3IiwgXAotICAgICAgICAgICIwLjA5MTA5MSwgMC4yODE1MjgsIDAuNDMyODAyLCAwLjYyMTczMywgMC44MTA2MjksIDAuOTk5MzI2LCAxLjE4ODg2IiwgXAotICAgICAgICAgICIwLjEwMjI3LCAwLjI5NDg0NiwgMC40NDU5NTQsIDAuNjM0OTM3LCAwLjgyMzc1OCwgMS4wMTI5OSwgMS4yMDEzNyIsIFwKLSAgICAgICAgICAiMC4xMTEwNTcsIDAuMzA2NjA2LCAwLjQ1NzczMywgMC42NDUxNDQsIDAuODM1NDE1LCAxLjAyNDI0LCAxLjIxMzQ2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwNDk2MiwgMC40OTQzODEsIDAuODA1NzA3LCAxLjE5NTI2LCAxLjU4MzY3LCAxLjk3MjU1LCAyLjM2MjAxIiwgXAotICAgICAgICAgICIwLjEwNTEzMSwgMC40OTQzMDYsIDAuODA1NzUxLCAxLjE5NDk1LCAxLjU4NDE5LCAxLjk3MzU4LCAyLjM2MjI4IiwgXAotICAgICAgICAgICIwLjEwNzk2LCAwLjQ5NDY4MiwgMC44MDYwODEsIDEuMTk0OTcsIDEuNTg0NTMsIDEuOTczNTUsIDIuMzYxMzEiLCBcCi0gICAgICAgICAgIjAuMTEyNjIxLCAwLjQ5NDI5OCwgMC44MDU3MjgsIDEuMTk1MDIsIDEuNTgzNDEsIDEuOTczNTIsIDIuMzYxNDMiLCBcCi0gICAgICAgICAgIjAuMTE4NTA1LCAwLjQ5NTA4NywgMC44MDU3NDUsIDEuMTk1MTEsIDEuNTg0MzMsIDEuOTcyNCwgMi4zNjIiLCBcCi0gICAgICAgICAgIjAuMTI5MjUzLCAwLjQ5ODE0MiwgMC44MDYxOTgsIDEuMTk1MDQsIDEuNTg0MTYsIDEuOTczMDksIDIuMzYxMzIiLCBcCi0gICAgICAgICAgIjAuMTM4NDk3LCAwLjUwMjU3NiwgMC44MDgwMjMsIDEuMTk0OSwgMS41ODQwMSwgMS45NzIzNiwgMi4zNjE0OCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQyODc2LCAwLjE4Nzk2NywgMC4zMDM3MTIsIDAuNDQ4OTIyLCAwLjU5MzA5NywgMC43Mzg4MzgsIDAuODgzMDk5IiwgXAotICAgICAgICAgICIwLjA0OTkxMiwgMC4xOTQ5MzEsIDAuMzEwNzM0LCAwLjQ1NjAxNSwgMC42MDA3MzIsIDAuNzQ0ODkzLCAwLjg5MDMwMiIsIFwKLSAgICAgICAgICAiMC4wNTczMTMsIDAuMjAyNTc0LCAwLjMxODYwNCwgMC40NjMyNTcsIDAuNjA3ODA2LCAwLjc1MzE2MiwgMC44OTgzNTYiLCBcCi0gICAgICAgICAgIjAuMDYzOTk3LCAwLjIwOTc3OSwgMC4zMjYwMzcsIDAuNDcwOTgzLCAwLjYxNTQ3NCwgMC43NjEwOTYsIDAuOTA0ODQ4IiwgXAotICAgICAgICAgICIwLjA2OTYxOSwgMC4yMTcxMDIsIDAuMzMzMTczLCAwLjQ3ODA0OCwgMC42MjI2ODMsIDAuNzY3NTQ0LCAwLjkxMzMxNyIsIFwKLSAgICAgICAgICAiMC4wNzcwOTIsIDAuMjI4Nzg4LCAwLjM0NTAyMywgMC40OTAzMzMsIDAuNjM1MTg3LCAwLjc3OTQ2NCwgMC45MjQyMTYiLCBcCi0gICAgICAgICAgIjAuMDgyMzIxLCAwLjIzOTEzNiwgMC4zNTUwMTYsIDAuNTAwMDgyLCAwLjY0NTA0OSwgMC43ODk4MzIsIDAuOTM0ODk1Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3NDI3NiwgMC4zODI1MjMsIDAuNjI4ODc4LCAwLjkzNzUxLCAxLjI0NDkzLCAxLjU1NDA3LCAxLjg2MTU4IiwgXAotICAgICAgICAgICIwLjA3NDY4LCAwLjM4MjQ4OCwgMC42Mjg2NzMsIDAuOTM3MDkzLCAxLjI0NTMyLCAxLjU1MjgsIDEuODYxOTUiLCBcCi0gICAgICAgICAgIjAuMDc3NTUyLCAwLjM4MjI4MywgMC42Mjg4NjYsIDAuOTM3NTI3LCAxLjI0NDYyLCAxLjU1MzMsIDEuODYxODgiLCBcCi0gICAgICAgICAgIjAuMDgyMjg2LCAwLjM4MzMzMywgMC42MjkwMDYsIDAuOTM3MjQxLCAxLjI0NDk3LCAxLjU1MzkxLCAxLjg2MjA0IiwgXAotICAgICAgICAgICIwLjA4ODM0MSwgMC4zODQ5MywgMC42Mjg4ODUsIDAuOTM2ODYyLCAxLjI0NDg2LCAxLjU1Mjk2LCAxLjg2MjA3IiwgXAotICAgICAgICAgICIwLjA5ODUzNywgMC4zODg1OTcsIDAuNjMxNjgzLCAwLjkzNjk5MSwgMS4yNDQ5NiwgMS41NTI1NywgMS44NjA2NCIsIFwKLSAgICAgICAgICAiMC4xMDY4NzUsIDAuMzkzODk5LCAwLjYzNDQ1OCwgMC45Mzk0MDQsIDEuMjQ2ODksIDEuNTUzNjksIDEuODYxMDUiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU3NDUzLCAwLjI0NzIwMiwgMC4zOTgzOTksIDAuNTg3MTQ5LCAwLjc3NjcwOSwgMC45NjUxMjQsIDEuMTUzOTMiLCBcCi0gICAgICAgICAgIjAuMDY0MzUxLCAwLjI1NDI0OCwgMC40MDUzNzIsIDAuNTk0MjA2LCAwLjc4Mjg5MywgMC45NzE3NjYsIDEuMTYwMzMiLCBcCi0gICAgICAgICAgIjAuMDczNjMzLCAwLjI2MzM3OSwgMC40MTQ2NTMsIDAuNjAzNDEsIDAuNzkyNjEsIDAuOTgxNTI4LCAxLjE3MDQ2IiwgXAotICAgICAgICAgICIwLjA4MjkzNywgMC4yNzEyMjYsIDAuNDIzMzE5LCAwLjYxMjIzNSwgMC44MDA5MjUsIDAuOTg5Njc1LCAxLjE3ODU2IiwgXAotICAgICAgICAgICIwLjA5MjM3NywgMC4yODEzNDcsIDAuNDMyNDQzLCAwLjYyMTM1NiwgMC44MTAwMTgsIDAuOTk4ODU2LCAxLjE4ODM2IiwgXAotICAgICAgICAgICIwLjEwNTE4LCAwLjI5NjE2NCwgMC40NDcxMjcsIDAuNjM2MDU1LCAwLjgyNDY0NiwgMS4wMTM5NSwgMS4yMDIxOCIsIFwKLSAgICAgICAgICAiMC4xMTU1NiwgMC4zMDkzOTksIDAuNDYwMjE1LCAwLjY0NjU0NiwgMC44Mzc1OSwgMS4wMjYxNywgMS4yMTQ4OSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDQ5MzUsIDAuNDk0NywgMC44MDU3NiwgMS4xOTQ5MiwgMS41ODQ0NCwgMS45NzI3NSwgMi4zNjE5MSIsIFwKLSAgICAgICAgICAiMC4xMDUxMjYsIDAuNDk0NDEyLCAwLjgwNTczLCAxLjE5NDk0LCAxLjU4NCwgMS45NzMxNSwgMi4zNjExMyIsIFwKLSAgICAgICAgICAiMC4xMDkwMDQsIDAuNDk0MjQ1LCAwLjgwNTc3NCwgMS4xOTUwNCwgMS41ODM5OCwgMS45NzM1LCAyLjM2MjMzIiwgXAotICAgICAgICAgICIwLjExNTU0OSwgMC40OTQ1ODEsIDAuODA1NzQsIDEuMTk1MjMsIDEuNTg0MiwgMS45NzIzNCwgMi4zNjI0NSIsIFwKLSAgICAgICAgICAiMC4xMjMyMjMsIDAuNDk1MTc5LCAwLjgwNTc4MywgMS4xOTUxNiwgMS41ODQxNiwgMS45NzI0MywgMi4zNjI1MyIsIFwKLSAgICAgICAgICAiMC4xMzY0MjEsIDAuNDk5NDUsIDAuODA2MzI4LCAxLjE5NTA4LCAxLjU4NDA5LCAxLjk3Mjk1LCAyLjM2MjQiLCBcCi0gICAgICAgICAgIjAuMTQ3NzcxLCAwLjUwNTE5MywgMC44MDg3MzIsIDEuMTk0OSwgMS41ODQxMywgMS45NzIzMSwgMi4zNjEyOCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM5Nzg4LCAwLjE4MjE5NywgMC4yOTY0OTksIDAuNDQwOTQxLCAwLjU4NTQsIDAuNzMxMTU3LCAwLjg3NTY0MSIsIFwKLSAgICAgICAgICAiMC4wNDczMTgsIDAuMTg5OTIsIDAuMzA0NjA2LCAwLjQ0OTI5LCAwLjU5MzYyNCwgMC43Mzg3MTcsIDAuODgzMDc2IiwgXAotICAgICAgICAgICIwLjA1NzAxLCAwLjE5OTI4MywgMC4zMTM1MTIsIDAuNDU4Mzk2LCAwLjYwMjUwOCwgMC43NDcxNzMsIDAuODkyMzExIiwgXAotICAgICAgICAgICIwLjA2NjkyOCwgMC4yMDkwNSwgMC4zMjMzNTQsIDAuNDY3OTM2LCAwLjYxMjU3MywgMC43NTcwODYsIDAuOTAyNDEyIiwgXAotICAgICAgICAgICIwLjA3NDc2OCwgMC4yMTg2MjIsIDAuMzMyOTMzLCAwLjQ3NzgyMywgMC42MjIzMDMsIDAuNzY3MDIyLCAwLjkxMTk4MiIsIFwKLSAgICAgICAgICAiMC4wODU0ODEsIDAuMjM0Mjg1LCAwLjM0ODM2OSwgMC40OTI0MDIsIDAuNjM3ODI0LCAwLjc4Mjc4MywgMC45Mjc1NDQiLCBcCi0gICAgICAgICAgIjAuMDkzNzA0LCAwLjI0ODE1NSwgMC4zNjIwNjEsIDAuNTA2ODM1LCAwLjY1MTMwNSwgMC43OTYwMzcsIDAuOTQwNjgiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc4MTM3LCAwLjM4MjQ3OCwgMC42Mjg3MjUsIDAuOTM4MjQzLCAxLjI0NDcxLCAxLjU1MzIyLCAxLjg2MTEyIiwgXAotICAgICAgICAgICIwLjA3OTAxOSwgMC4zODIzOTMsIDAuNjI5MTg4LCAwLjkzNzIxNiwgMS4yNDU1NywgMS41NTI5NCwgMS44NjIxNyIsIFwKLSAgICAgICAgICAiMC4wODUwNDEsIDAuMzgyODgyLCAwLjYyOTA5OSwgMC45MzY4MDUsIDEuMjQ1MTMsIDEuNTUzMzksIDEuODYyMzIiLCBcCi0gICAgICAgICAgIjAuMDkyNzY0LCAwLjM4MjgyNywgMC42Mjg3NTksIDAuOTM3MzQ3LCAxLjI0NTQ4LCAxLjU1NTQ3LCAxLjg2MTczIiwgXAotICAgICAgICAgICIwLjEwMTM0MSwgMC4zODYyNCwgMC42Mjg4NTcsIDAuOTM2NzYxLCAxLjI0NDg1LCAxLjU1MjkyLCAxLjg2MTY5IiwgXAotICAgICAgICAgICIwLjExNTAyNCwgMC4zOTI4ODYsIDAuNjMyNDEsIDAuOTM4Mjk3LCAxLjI0NTQyLCAxLjU1Mjg5LCAxLjg2MDk3IiwgXAotICAgICAgICAgICIwLjEyNDU0MywgMC40MDA5ODIsIDAuNjM1OTA1LCAwLjkzODA0MywgMS4yNDQ2MywgMS41NTM0NCwgMS44NjE2MyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjA4MiwgMC4wOTY4NzMsIDAuMTU3NjM5LCAwLjIzMzUzOCwgMC4zMDkzODksIDAuMzg1MjU5LCAwLjQ2MTEwNSIsIFwKLSAgICAgICAgICAiMC4wMjkyODIsIDAuMTA1MzU4LCAwLjE2NjExMSwgMC4yNDIwMTIsIDAuMzE3ODgxLCAwLjM5Mzc3NywgMC40Njk2IiwgXAotICAgICAgICAgICIwLjAzOTAyMSwgMC4xMTU5MTEsIDAuMTc2NjM1LCAwLjI1MjU2NiwgMC4zMjg0NCwgMC40MDQyODQsIDAuNDgwMTE1IiwgXAotICAgICAgICAgICIwLjA0NjA3OCwgMC4xMjYzMTMsIDAuMTg3MDI2LCAwLjI2MTY5OSwgMC4zMzg3MjgsIDAuNDE0NTcsIDAuNDkwNDcxIiwgXAotICAgICAgICAgICIwLjA1MTk5MywgMC4xMzc1MDEsIDAuMTk4MDM3LCAwLjI3Mzg5OCwgMC4zNDgxOTYsIDAuNDI1NjQ2LCAwLjUwMTQ3MiIsIFwKLSAgICAgICAgICAiMC4wNTk1NzIsIDAuMTU0MzA0LCAwLjIxNDg1MSwgMC4yOTA1NzUsIDAuMzY2MjgsIDAuNDQyMTg3LCAwLjUxODAwNiIsIFwKLSAgICAgICAgICAiMC4wNjUyOTksIDAuMTY5ODUzLCAwLjIzMDI0NSwgMC4zMDU4MzIsIDAuMzgxNTQsIDAuNDU3Mzc4LCAwLjUzMzE3MyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDEzNzQsIDAuMTk4MjAyLCAwLjMyMzg2NywgMC40ODExNDUsIDAuNjM4NDA3LCAwLjc5NTY5MiwgMC45NTI3NDQiLCBcCi0gICAgICAgICAgIjAuMDQ0NzQyLCAwLjE5ODE4MSwgMC4zMjM4NTUsIDAuNDgxMDA2LCAwLjYzODIyLCAwLjc5NTQ0OSwgMC45NTMwMiIsIFwKLSAgICAgICAgICAiMC4wNTMzNDEsIDAuMTk5Mzg4LCAwLjMyMzg0NSwgMC40ODEwMjcsIDAuNjM4MjY5LCAwLjc5NTUxMywgMC45NTI3NTYiLCBcCi0gICAgICAgICAgIjAuMDYyNzUsIDAuMjAzNTc5LCAwLjMyNTIwMSwgMC40ODEwMTksIDAuNjM4MzgzLCAwLjc5NTYxMSwgMC45NTMwMDIiLCBcCi0gICAgICAgICAgIjAuMDcyMDIyLCAwLjIwOTIxMSwgMC4zMjgzNSwgMC40ODE5MzUsIDAuNjM4MjAxLCAwLjc5NTcyOSwgMC45NTI3MjQiLCBcCi0gICAgICAgICAgIjAuMDg1MTA1LCAwLjIyMDgzOSwgMC4zMzY2MDcsIDAuNDg2NzgsIDAuNjQwMDcsIDAuNzk2MDE3LCAwLjk1MzA2MyIsIFwKLSAgICAgICAgICAiMC4wOTUzODUsIDAuMjMxODczLCAwLjM0NTAyMSwgMC40OTI1MzQsIDAuNjQ0MTQ2LCAwLjc5ODA2MiwgMC45NTM1NDMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA4MDM5LCAwLjAwODA0MSwgMC4wMDgwNDIsIDAuMDA4MDQxLCAwLjAwODA0LCAwLjAwODAzOSwgMC4wMDgwMzkiLCBcCi0gICAgICAgICAgIjAuMDA4LCAwLjAwODAxNywgMC4wMDgwMTgsIDAuMDA4MDIsIDAuMDA4MDE4LCAwLjAwODAyLCAwLjAwODAxOSIsIFwKLSAgICAgICAgICAiMC4wMDc5ODYsIDAuMDA4MDEsIDAuMDA4MDEzLCAwLjAwODAxMiwgMC4wMDgwMTMsIDAuMDA4MDE1LCAwLjAwODAxNSIsIFwKLSAgICAgICAgICAiMC4wMDc5OTYsIDAuMDA4MDEyLCAwLjAwODAxNCwgMC4wMDgwMTUsIDAuMDA4MDE1LCAwLjAwODAxOCwgMC4wMDgwMTUiLCBcCi0gICAgICAgICAgIjAuMDA4MDMyLCAwLjAwODAyMywgMC4wMDgwMjIsIDAuMDA4MDIxLCAwLjAwODAyLCAwLjAwODAxOSwgMC4wMDgwMTgiLCBcCi0gICAgICAgICAgIjAuMDA4MTM0LCAwLjAwODA2MSwgMC4wMDgwNDksIDAuMDA4MDQsIDAuMDA4MDM1LCAwLjAwODAzMiwgMC4wMDgwMjkiLCBcCi0gICAgICAgICAgIjAuMDA4Mjc3LCAwLjAwODExNCwgMC4wMDgwODgsIDAuMDA4MDY5LCAwLjAwODA1OSwgMC4wMDgwNSwgMC4wMDgwNDUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDEzODcsIDAuMDAxMzkxLCAwLjAwMTM5MSwgMC4wMDEzOTEsIDAuMDAxMzkxLCAwLjAwMTM5LCAwLjAwMTM4OSIsIFwKLSAgICAgICAgICAiMC4wMDEyOTYsIDAuMDAxMzM0LCAwLjAwMTMzOSwgMC4wMDEzNDEsIDAuMDAxMzQyLCAwLjAwMTM0MiwgMC4wMDEzNDIiLCBcCi0gICAgICAgICAgIjAuMDAxMjU5LCAwLjAwMTMxNSwgMC4wMDEzMjQsIDAuMDAxMzI5LCAwLjAwMTMzLCAwLjAwMTMzMSwgMC4wMDEzMzIiLCBcCi0gICAgICAgICAgIjAuMDAxMjcsIDAuMDAxMzEyLCAwLjAwMTMyLCAwLjAwMTMyNSwgMC4wMDEzMjcsIDAuMDAxMzI5LCAwLjAwMTMzIiwgXAotICAgICAgICAgICIwLjAwMTMxOCwgMC4wMDEzMjIsIDAuMDAxMzI2LCAwLjAwMTMyOCwgMC4wMDEzMjksIDAuMDAxMzMsIDAuMDAxMzMiLCBcCi0gICAgICAgICAgIjAuMDAxNDYyLCAwLjAwMTM2NSwgMC4wMDEzNTUsIDAuMDAxMzQ4LCAwLjAwMTM0NCwgMC4wMDEzNDIsIDAuMDAxMzQiLCBcCi0gICAgICAgICAgIjAuMDAxNjQ0LCAwLjAwMTQyOCwgMC4wMDEzOTgsIDAuMDAxMzc5LCAwLjAwMTM2OCwgMC4wMDEzNjEsIDAuMDAxMzU2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNzA3MSwgMC4wMDcwNzksIDAuMDA3MDgsIDAuMDA3MDc5LCAwLjAwNzA4LCAwLjAwNzA3OSwgMC4wMDcwNzkiLCBcCi0gICAgICAgICAgIjAuMDA3MDE5LCAwLjAwNzA2NywgMC4wMDcwNzIsIDAuMDA3MDc1LCAwLjAwNzA3NiwgMC4wMDcwNzYsIDAuMDA3MDc3IiwgXAotICAgICAgICAgICIwLjAwNjk4NiwgMC4wMDcwNTUsIDAuMDA3MDY0LCAwLjAwNzA2NywgMC4wMDcwNzIsIDAuMDA3MDczLCAwLjAwNzA3NCIsIFwKLSAgICAgICAgICAiMC4wMDY5ODYsIDAuMDA3MDUxLCAwLjAwNzA1OSwgMC4wMDcwNjcsIDAuMDA3MDcxLCAwLjAwNzA3MiwgMC4wMDcwNzQiLCBcCi0gICAgICAgICAgIjAuMDA3MDE3LCAwLjAwNzA1NywgMC4wMDcwNjQsIDAuMDA3MDcsIDAuMDA3MDczLCAwLjAwNzA3NCwgMC4wMDcwNzUiLCBcCi0gICAgICAgICAgIjAuMDA3MTI4LCAwLjAwNzA5MiwgMC4wMDcwODksIDAuMDA3MDg4LCAwLjAwNzA4NiwgMC4wMDcwODcsIDAuMDA3MDg0IiwgXAotICAgICAgICAgICIwLjAwNzI2LCAwLjAwNzEzNiwgMC4wMDcxMiwgMC4wMDcxMTMsIDAuMDA3MTA3LCAwLjAwNzEwMywgMC4wMDcwOTkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDEzODYsIDAuMDAxMzksIDAuMDAxMzksIDAuMDAxMzksIDAuMDAxMzg5LCAwLjAwMTM4OSwgMC4wMDEzODgiLCBcCi0gICAgICAgICAgIjAuMDAxMjk4LCAwLjAwMTMzMywgMC4wMDEzMzgsIDAuMDAxMzQsIDAuMDAxMzQxLCAwLjAwMTM0MSwgMC4wMDEzNDEiLCBcCi0gICAgICAgICAgIjAuMDAxMjc0LCAwLjAwMTMxOCwgMC4wMDEzMjUsIDAuMDAxMzI5LCAwLjAwMTMzLCAwLjAwMTMzMSwgMC4wMDEzMzIiLCBcCi0gICAgICAgICAgIjAuMDAxMzAzLCAwLjAwMTMxOCwgMC4wMDEzMjUsIDAuMDAxMzI3LCAwLjAwMTMyOSwgMC4wMDEzMjksIDAuMDAxMzI5IiwgXAotICAgICAgICAgICIwLjAwMTM3NSwgMC4wMDEzMzcsIDAuMDAxMzM1LCAwLjAwMTMzMywgMC4wMDEzMzMsIDAuMDAxMzMzLCAwLjAwMTMzMiIsIFwKLSAgICAgICAgICAiMC4wMDE1NTEsIDAuMDAxMzkxLCAwLjAwMTM2OSwgMC4wMDEzNTcsIDAuMDAxMzUxLCAwLjAwMTM0NywgMC4wMDEzNDQiLCBcCi0gICAgICAgICAgIjAuMDAxNzUsIDAuMDAxNDYsIDAuMDAxNDE0LCAwLjAwMTM4NCwgMC4wMDEzNzUsIDAuMDAxMzY2LCAwLjAwMTM2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTIiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjAzLCAwLjAwNjA1MywgMC4wMDYwNTUsIDAuMDA2MDU2LCAwLjAwNjA1NiwgMC4wMDYwNTYsIDAuMDA2MDU3IiwgXAotICAgICAgICAgICIwLjAwNTk3LCAwLjAwNjA1NSwgMC4wMDYwNjMsIDAuMDA2MDY4LCAwLjAwNjA3MSwgMC4wMDYwNzIsIDAuMDA2MDczIiwgXAotICAgICAgICAgICIwLjAwNTkyLCAwLjAwNjAzNiwgMC4wMDYwNTMsIDAuMDA2MDYyLCAwLjAwNjA2OCwgMC4wMDYwNywgMC4wMDYwNzIiLCBcCi0gICAgICAgICAgIjAuMDA1OTEsIDAuMDA2MDI2LCAwLjAwNjA0NiwgMC4wMDYwNTgsIDAuMDA2MDY0LCAwLjAwNjA2NywgMC4wMDYwNjciLCBcCi0gICAgICAgICAgIjAuMDA1OTM2LCAwLjAwNjAyNywgMC4wMDYwNDgsIDAuMDA2MDU4LCAwLjAwNjA2NCwgMC4wMDYwNjgsIDAuMDA2MDciLCBcCi0gICAgICAgICAgIjAuMDA2MDMzLCAwLjAwNjA0OCwgMC4wMDYwNjUsIDAuMDA2MDcsIDAuMDA2MDc0LCAwLjAwNjA3NiwgMC4wMDYwNzciLCBcCi0gICAgICAgICAgIjAuMDA2MTY4LCAwLjAwNjA5MSwgMC4wMDYwODgsIDAuMDA2MDkyLCAwLjAwNjA5MiwgMC4wMDYwOTEsIDAuMDA2MDkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDEzOSwgMC4wMDEzOTYsIDAuMDAxMzk2LCAwLjAwMTM5NiwgMC4wMDEzOTYsIDAuMDAxMzk1LCAwLjAwMTM5NSIsIFwKLSAgICAgICAgICAiMC4wMDEzMSwgMC4wMDEzNDEsIDAuMDAxMzQ1LCAwLjAwMTM0NiwgMC4wMDEzNDcsIDAuMDAxMzQ3LCAwLjAwMTM0NyIsIFwKLSAgICAgICAgICAiMC4wMDEzMywgMC4wMDEzMzYsIDAuMDAxMzM5LCAwLjAwMTM0LCAwLjAwMTM0LCAwLjAwMTM0MSwgMC4wMDEzNDEiLCBcCi0gICAgICAgICAgIjAuMDAxNDQ1LCAwLjAwMTM2MiwgMC4wMDEzNiwgMC4wMDEzNTQsIDAuMDAxMzUsIDAuMDAxMzQ5LCAwLjAwMTM0NyIsIFwKLSAgICAgICAgICAiMC4wMDE1NzgsIDAuMDAxNDE0LCAwLjAwMTM4OCwgMC4wMDEzNzMsIDAuMDAxMzY1LCAwLjAwMTM2LCAwLjAwMTM1NiIsIFwKLSAgICAgICAgICAiMC4wMDE4NjMsIDAuMDAxNTE1LCAwLjAwMTQ1NSwgMC4wMDE0MjYsIDAuMDAxNDA1LCAwLjAwMTM5MywgMC4wMDEzODQiLCBcCi0gICAgICAgICAgIjAuMDAyMTc2LCAwLjAwMTYzMiwgMC4wMDE1MzYsIDAuMDAxNDgsIDAuMDAxNDUzLCAwLjAwMTQzMSwgMC4wMDE0MTciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1NTIyLCAwLjAwNTU1NCwgMC4wMDU1NTgsIDAuMDA1NTU4LCAwLjAwNTU1OCwgMC4wMDU1NiwgMC4wMDU1NTkiLCBcCi0gICAgICAgICAgIjAuMDA1NDY5LCAwLjAwNTUzMSwgMC4wMDU1NDIsIDAuMDA1NTQ3LCAwLjAwNTU1MSwgMC4wMDU1NTIsIDAuMDA1NTU0IiwgXAotICAgICAgICAgICIwLjAwNTU0MSwgMC4wMDU1NDEsIDAuMDA1NTQ3LCAwLjAwNTU1LCAwLjAwNTU1MywgMC4wMDU1NTQsIDAuMDA1NTUzIiwgXAotICAgICAgICAgICIwLjAwNTcwNSwgMC4wMDU1ODYsIDAuMDA1NTc0LCAwLjAwNTU2NywgMC4wMDU1NjUsIDAuMDA1NTYyLCAwLjAwNTU2MiIsIFwKLSAgICAgICAgICAiMC4wMDU4NjQsIDAuMDA1NjI5LCAwLjAwNTYwNywgMC4wMDU1OSwgMC4wMDU1ODMsIDAuMDA1NTc3LCAwLjAwNTU3NCIsIFwKLSAgICAgICAgICAiMC4wMDYyMTYsIDAuMDA1NzU4LCAwLjAwNTY4OCwgMC4wMDU2NTMsIDAuMDA1NjM0LCAwLjAwNTYxOSwgMC4wMDU2MDkiLCBcCi0gICAgICAgICAgIjAuMDA2NDg0LCAwLjAwNTg4OCwgMC4wMDU3ODUsIDAuMDA1NzI3LCAwLjAwNTY4MSwgMC4wMDU2NTgsIDAuMDA1NjQyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwMDgxLCAwLjAwMDAzOCwgMC4wMDAwMzQsIDAuMDAwMDMyLCAwLjAwMDAzMSwgMC4wMDAwMywgMC4wMDAwMyIsIFwKLSAgICAgICAgICAiMC4wMDAxNDMsIDAuMDAwMDUxLCAwLjAwMDAzOCwgMC4wMDAwNDUsIDAuMDAwMDQ5LCAwLjAwMDA1MSwgMC4wMDAwNTMiLCBcCi0gICAgICAgICAgIjAuMDAwMDI0LCAwLjAwMDA0MiwgMC4wMDAwNDcsIDAuMDAwMDUzLCAwLjAwMDA1NywgMC4wMDAwNTksIDAuMDAwMDYiLCBcCi0gICAgICAgICAgIjAuMDAwMDk3LCAwLjAwMDA5MywgMC4wMDAwODUsIDAuMDAwMDc5LCAwLjAwMDA3NywgMC4wMDAwNzYsIDAuMDAwMDc1IiwgXAotICAgICAgICAgICIwLjAwMDQwNiwgMC4wMDAxMzMsIDAuMDAwMTEzLCAwLjAwMDEwMSwgMC4wMDAwOTIsIDAuMDAwMDkzLCAwLjAwMDA5MSIsIFwKLSAgICAgICAgICAiMC4wMDA3MzMsIDAuMDAwMjc3LCAwLjAwMDIwOCwgMC4wMDAxNzIsIDAuMDAwMTQ4LCAwLjAwMDEzNSwgMC4wMDAxMjYiLCBcCi0gICAgICAgICAgIjAuMDAxMTI2LCAwLjAwMDM4MiwgMC4wMDAyNzksIDAuMDAwMjE4LCAwLjAwMDE4MywgMC4wMDAxNjgsIDAuMDAwMTUzIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogQU9JMzJYMiAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChBT0kzMlgyKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuNzc4MDExOwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxODU3OTE7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxODUzMjY7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxODU3OTE7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxMDQ5LCAwLjAwMTA0OCwgMC4wMDEwNDcsIDAuMDAxMDQ4LCAwLjAwMTA0NywgMC4wMDEwNDcsIDAuMDAxMDQ3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxMDQ5LCAwLjAwMTA1LCAwLjAwMTA1LCAwLjAwMTA1LCAwLjAwMTA1MSwgMC4wMDEwNSwgMC4wMDEwNTIiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEExKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE4OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTc5NDM5OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTg7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxMDQ5LCAwLjAwMTA0OCwgMC4wMDEwNDcsIDAuMDAxMDQ3LCAwLjAwMTA0NywgMC4wMDEwNDcsIDAuMDAxMDQ3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxMDQ5LCAwLjAwMTA1LCAwLjAwMTA1MSwgMC4wMDEwNTEsIDAuMDAxMDUyLCAwLjAwMTA1MiwgMC4wMDEwNTIiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEEyKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE2NzUyNDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE2NjY1NzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE2NzUyNDsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA2MzcsIDAuMDAwNjM2LCAwLjAwMDYzNiwgMC4wMDA2MzYsIDAuMDAwNjM2LCAwLjAwMDYzNiwgMC4wMDA2MzYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDExOTEsIDAuMDAxMTkyLCAwLjAwMTE5MiwgMC4wMDExOTIsIDAuMDAxMTkyLCAwLjAwMTE5MiwgMC4wMDExOTIiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE3NDE0NTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE3NDE0NTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE3MzgxMzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDEwNDksIDAuMDAxMDQ5LCAwLjAwMTA0OCwgMC4wMDEwNDgsIDAuMDAxMDQ4LCAwLjAwMTA0OCwgMC4wMDEwNDgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDEwOTgsIDAuMDAxMDY0LCAwLjAwMTA1NiwgMC4wMDEwNTIsIDAuMDAxMDUyLCAwLjAwMTA1LCAwLjAwMTA1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCMSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNjQwNjE7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNjQwMzQ7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNjQwNjE7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNDg5LCAwLjAwMDQ4OSwgMC4wMDA0ODksIDAuMDAwNDg5LCAwLjAwMDQ4OCwgMC4wMDA0ODksIDAuMDAwNDg5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxMTkxLCAwLjAwMTE5MSwgMC4wMDExOTEsIDAuMDAxMTkyLCAwLjAwMTE5MiwgMC4wMDExOTEsIDAuMDAxMTkxIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMjgzNjI3OwotICAgIGZ1bmN0aW9uIDogIighKChCMCBCMSkrKChBMCBBMSkgQTIpKSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTE4MDcsIDAuMTk1NzE3LCAwLjMxMTc2LCAwLjQ1NzE0NSwgMC42MDIxNjgsIDAuNzQ3NjE0LCAwLjg5MjE2MSIsIFwKLSAgICAgICAgICAiMC4wNTkxMTIsIDAuMjAzMDE2LCAwLjMxOTEyLCAwLjQ2NDIxMiwgMC42MDk1MTMsIDAuNzU0MzY1LCAwLjg5OTYzNSIsIFwKLSAgICAgICAgICAiMC4wNjY4MzMsIDAuMjEwNjI1LCAwLjMyNjg5MywgMC40NzE5OTQsIDAuNjE3MDM5LCAwLjc2MjY5NSwgMC45MDcyMDUiLCBcCi0gICAgICAgICAgIjAuMDc0MjAxLCAwLjIxNzgyNywgMC4zMzQyNTUsIDAuNDc5NDU5LCAwLjYyNDM1LCAwLjc2OTUzNCwgMC45MTQ3MDkiLCBcCi0gICAgICAgICAgIjAuMDgwNTY4LCAwLjIyNTAwNywgMC4zNDEyNiwgMC40ODY1MDMsIDAuNjMxNzA1LCAwLjc3Njg3NCwgMC45MjE3NDgiLCBcCi0gICAgICAgICAgIjAuMDg5MDkzLCAwLjIzNjQ1MywgMC4zNTI5NjYsIDAuNDk4MTcsIDAuNjQzNjg2LCAwLjc4ODUwMiwgMC45MzM2NDgiLCBcCi0gICAgICAgICAgIjAuMDk1NDY0LCAwLjI0NjgzNCwgMC4zNjMwNTYsIDAuNTA4Mzc5LCAwLjY1MzU2OSwgMC43OTkzMjYsIDAuOTQzNzc2Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4NTcwNCwgMC4zOTMxMjYsIDAuNjM5OTMxLCAwLjk0ODA3MiwgMS4yNTY2MSwgMS41NjQ3OCwgMS44NzI4OCIsIFwKLSAgICAgICAgICAiMC4wODU4NjgsIDAuMzkzMTIyLCAwLjY0MDE2NSwgMC45NDg2ODEsIDEuMjU2LCAxLjU2NTE5LCAxLjg3Mjc3IiwgXAotICAgICAgICAgICIwLjA4ODExMSwgMC4zOTMxODksIDAuNjM5ODA0LCAwLjk0NzkzNCwgMS4yNTYsIDEuNTY0ODcsIDEuODcyNjIiLCBcCi0gICAgICAgICAgIjAuMDkyMjY1LCAwLjM5MzQ3MiwgMC42Mzk5NzIsIDAuOTQ4MDQ4LCAxLjI1NjY1LCAxLjU2NTQsIDEuODcyMzQiLCBcCi0gICAgICAgICAgIjAuMDk3NDk5LCAwLjM5NDY3MiwgMC42Mzk5NjYsIDAuOTQ4Njk5LCAxLjI1NiwgMS41NjQxOSwgMS44NzI3NiIsIFwKLSAgICAgICAgICAiMC4xMDczNDIsIDAuMzk4NzQ3LCAwLjY0MTQwNywgMC45NDg0NjIsIDEuMjU2MzksIDEuNTY0OTcsIDEuODcyNjYiLCBcCi0gICAgICAgICAgIjAuMTE1ODEsIDAuNDAzNjY0LCAwLjY0NDE2MiwgMC45NDkzMDEsIDEuMjU2NTEsIDEuNTY0NjYsIDEuODcyNDQiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY5MDQ1LCAwLjI1ODY5MiwgMC40MTAwMDksIDAuNTk5MjM4LCAwLjc4NzgsIDAuOTc2NjY2LCAxLjE2NjM3IiwgXAotICAgICAgICAgICIwLjA3NDM2NCwgMC4yNjQyNDMsIDAuNDE1NzAzLCAwLjYwNDIyOCwgMC43OTMwNDUsIDAuOTgxODYsIDEuMTcxNDgiLCBcCi0gICAgICAgICAgIjAuMDgwMzY3LCAwLjI3MDM3NSwgMC40MjE2NjksIDAuNjEwOTMxLCAwLjc5OTMxOCwgMC45ODg4NCwgMS4xNzY4MiIsIFwKLSAgICAgICAgICAiMC4wODY0MjEsIDAuMjc2Mzk4LCAwLjQyNzY1MSwgMC42MTY1ODEsIDAuODA1NDM2LCAwLjk5NDk1LCAxLjE4MzQ3IiwgXAotICAgICAgICAgICIwLjA5MjI5OCwgMC4yODI0ODcsIDAuNDMzODcxLCAwLjYyMjgyNywgMC44MTE3MTUsIDEuMDAxMjIsIDEuMTg5MTEiLCBcCi0gICAgICAgICAgIjAuMTAxMTI4LCAwLjI5MjM0NywgMC40NDM0NjUsIDAuNjMyNDAzLCAwLjgyMTI1MSwgMS4wMDk5NCwgMS4xOTkwNCIsIFwKLSAgICAgICAgICAiMC4xMDgwMTcsIDAuMzAwOTQ2LCAwLjQ1MjMxNCwgMC42NDExOTIsIDAuODI5OTksIDEuMDE4ODUsIDEuMjA3ODUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTE5MTYxLCAwLjUwODI5NywgMC44MTk2MzksIDEuMjA4NjcsIDEuNTk3NTIsIDEuOTg3MDIsIDIuMzc1MDEiLCBcCi0gICAgICAgICAgIjAuMTE5MjczLCAwLjUwODE5NywgMC44MTk0MjQsIDEuMjA4NzIsIDEuNTk3NzksIDEuOTg2MzYsIDIuMzc1MDciLCBcCi0gICAgICAgICAgIjAuMTIwODgyLCAwLjUwODI1MiwgMC44MTk0MjgsIDEuMjA4NTcsIDEuNTk3NSwgMS45ODcwMSwgMi4zNzUwMyIsIFwKLSAgICAgICAgICAiMC4xMjM4MjIsIDAuNTA4MTU0LCAwLjgxOTQyMSwgMS4yMDg1MiwgMS41OTc0NywgMS45ODYxNiwgMi4zNzUwNCIsIFwKLSAgICAgICAgICAiMC4xMjc4NDMsIDAuNTA4OTg1LCAwLjgxOTU3OCwgMS4yMDg3NCwgMS41OTc0MywgMS45ODYxOCwgMi4zNzUzOSIsIFwKLSAgICAgICAgICAiMC4xMzU0MzYsIDAuNTExMzExLCAwLjgyMDAzNiwgMS4yMDgzOSwgMS41OTczOCwgMS45ODY4NywgMi4zNzUzNCIsIFwKLSAgICAgICAgICAiMC4xNDMxNzMsIDAuNTE0Mjk2LCAwLjgyMTQxLCAxLjIwODY3LCAxLjU5NzQ2LCAxLjk4Njg0LCAyLjM3NDk3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkExIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTAyMjcsIDAuMTkzNTg0LCAwLjMwOTY2NSwgMC40NTQ5OTEsIDAuNTk5OTcsIDAuNzQ1NTI4LCAwLjg5MDQ4MiIsIFwKLSAgICAgICAgICAiMC4wNTc0NzQsIDAuMjAxMTE5LCAwLjMxNjc4MywgMC40NjIwMzYsIDAuNjA3NjI5LCAwLjc1MjQ5NywgMC44OTc4OTkiLCBcCi0gICAgICAgICAgIjAuMDY1MTAxLCAwLjIwODc3NCwgMC4zMjQ2MDUsIDAuNDY5NjQyLCAwLjYxNDU5NCwgMC43NTk4NDUsIDAuOTA1NjQ4IiwgXAotICAgICAgICAgICIwLjA3MjIyNiwgMC4yMTYwNjUsIDAuMzMxODUyLCAwLjQ3NzI4NCwgMC42MjE5MzMsIDAuNzY3MTY4LCAwLjkxMjUxNiIsIFwKLSAgICAgICAgICAiMC4wNzg0NTYsIDAuMjIzMzM1LCAwLjMzODkxNCwgMC40ODQyMjksIDAuNjI5NDI5LCAwLjc3NDYwMSwgMC45MTk1MDUiLCBcCi0gICAgICAgICAgIjAuMDg2NjMsIDAuMjM0OTUxLCAwLjM1MDYzMSwgMC40OTU4NDUsIDAuNjQxMzYsIDAuNzg2MTczLCAwLjkzMTMxOCIsIFwKLSAgICAgICAgICAiMC4wOTI3MTksIDAuMjQ1NDMzLCAwLjM2MDY5NiwgMC41MDU4NDcsIDAuNjUwNTIxLCAwLjc5NjA4LCAwLjk0MTE4MSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODM4NTgsIDAuMzkwMjM1LCAwLjYzNjg0MywgMC45NDUyNDksIDEuMjUzMjEsIDEuNTYyMzcsIDEuODY5MjUiLCBcCi0gICAgICAgICAgIjAuMDg0MDE3LCAwLjM5MDEwNSwgMC42MzY1NywgMC45NDUwMTMsIDEuMjUzNSwgMS41NjEzOSwgMS44NzAxNCIsIFwKLSAgICAgICAgICAiMC4wODYzNzgsIDAuMzkwMDk1LCAwLjYzNjgxMiwgMC45NDQ3NTgsIDEuMjUzMDYsIDEuNTYxNjgsIDEuODY5MjkiLCBcCi0gICAgICAgICAgIjAuMDkwNDgsIDAuMzkwNTQ1LCAwLjYzNjczMywgMC45NDUxNDksIDEuMjUzNTgsIDEuNTYyMSwgMS44NjkyNyIsIFwKLSAgICAgICAgICAiMC4wOTU4MTMsIDAuMzkyLCAwLjYzNjkwMiwgMC45NDQ5OTQsIDEuMjUyOTMsIDEuNTYwODUsIDEuODY5MDgiLCBcCi0gICAgICAgICAgIjAuMTA1NTYxLCAwLjM5NTgzMiwgMC42Mzg1OSwgMC45NDUxNSwgMS4yNTI4OSwgMS41NjIxNSwgMS44NzA2IiwgXAotICAgICAgICAgICIwLjExNDA5NCwgMC40MDA4MDUsIDAuNjQxNDQsIDAuOTQ1ODUyLCAxLjI1MzcsIDEuNTYxMTUsIDEuODY5MTMiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY3NDYxLCAwLjI1NzIxMSwgMC40MDgzNTgsIDAuNTk3NDU5LCAwLjc4NjA5MiwgMC45NzU0OTUsIDEuMTY0MTMiLCBcCi0gICAgICAgICAgIjAuMDczNzc5LCAwLjI2MzY2NywgMC40MTQ4MDIsIDAuNjAzNjU2LCAwLjc5Mjk3NiwgMC45ODExMzUsIDEuMTcwMDIiLCBcCi0gICAgICAgICAgIjAuMDgxOTM4LCAwLjI3MTg5MywgMC40MjMzMywgMC42MTI0MzksIDAuODAwOTUyLCAwLjk5MDEzMiwgMS4xNzgzMyIsIFwKLSAgICAgICAgICAiMC4wOTAxOTQsIDAuMjgwMjk0LCAwLjQzMTQxNSwgMC42MjA0MTQsIDAuODA5MTYzLCAwLjk5ODUyMiwgMS4xODY3OCIsIFwKLSAgICAgICAgICAiMC4wOTg1MTgsIDAuMjg4MzY3LCAwLjQzOTg3MywgMC42Mjg4NDksIDAuODE3NDU4LCAxLjAwNjM5LCAxLjE5NTMyIiwgXAotICAgICAgICAgICIwLjExMDM4MywgMC4zMDE3MDgsIDAuNDUzMDUyLCAwLjY0MTk4MywgMC44MzEzMSwgMS4wMjAwOSwgMS4yMDgzIiwgXAotICAgICAgICAgICIwLjExOTcxOSwgMC4zMTMzNzIsIDAuNDY0ODIsIDAuNjUyNDc0LCAwLjg0Mjg0MywgMS4wMzEzMSwgMS4yMTk5NiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTkxNzMsIDAuNTA4MjY0LCAwLjgxOTQ0NywgMS4yMDg4NCwgMS41OTc0OSwgMS45ODY4NiwgMi4zNzUzMSIsIFwKLSAgICAgICAgICAiMC4xMTkyODksIDAuNTA4MjU3LCAwLjgxOTM4NiwgMS4yMDg1MSwgMS41OTc2NCwgMS45ODYxNCwgMi4zNzU2IiwgXAotICAgICAgICAgICIwLjEyMTc2NiwgMC41MDgyNywgMC44MTk0ODMsIDEuMjA4NTQsIDEuNTk3NjUsIDEuOTg2ODMsIDIuMzc1MjUiLCBcCi0gICAgICAgICAgIjAuMTI2MzYzLCAwLjUwODIzNiwgMC44MTk0MzEsIDEuMjA4NSwgMS41OTc0NSwgMS45ODY5LCAyLjM3NTQiLCBcCi0gICAgICAgICAgIjAuMTMxOTkxLCAwLjUwODksIDAuODE5NDI5LCAxLjIwODU0LCAxLjU5NzQ1LCAxLjk4NjE5LCAyLjM3NTQ4IiwgXAotICAgICAgICAgICIwLjE0MTkxMywgMC41MTE4MjUsIDAuODE5ODI0LCAxLjIwODQ1LCAxLjU5Nzk2LCAxLjk4NjY4LCAyLjM3NTQzIiwgXAotICAgICAgICAgICIwLjE1MTQzNCwgMC41MTU5ODgsIDAuODIxNTExLCAxLjIwODI0LCAxLjU5NzkxLCAxLjk4NjQ5LCAyLjM3NTMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTIiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0ODcyMiwgMC4xOTQyODQsIDAuMzExNDYsIDAuNDU5MDk4LCAwLjYwNTYwOSwgMC43NTM5NjksIDAuOTAwMzgzIiwgXAotICAgICAgICAgICIwLjA1NTk4MSwgMC4yMDE2NjcsIDAuMzE4ODc2LCAwLjQ2NjAzNSwgMC42MTM0NzEsIDAuNzYwODcxLCAwLjkwODc4NCIsIFwKLSAgICAgICAgICAiMC4wNjM1NDUsIDAuMjA5MzUyLCAwLjMyNjUzNCwgMC40NzM3NTgsIDAuNjIwNzUyLCAwLjc2ODU4MSwgMC45MTQ5NzgiLCBcCi0gICAgICAgICAgIjAuMDcwNjA5LCAwLjIxNjYwNCwgMC4zMzQxMjcsIDAuNDgxMTg0LCAwLjYyODUwMSwgMC43NzU0ODQsIDAuOTIzNDQ5IiwgXAotICAgICAgICAgICIwLjA3NjY0OSwgMC4yMjM4MTksIDAuMzQxMDIyLCAwLjQ4ODIzOCwgMC42MzU0NjUsIDAuNzgyNjM4LCAwLjkzMDYxNiIsIFwKLSAgICAgICAgICAiMC4wODQ1ODYsIDAuMjM1NDQ2LCAwLjM1Mjc4MSwgMC40OTk3MjIsIDAuNjQ3MjA1LCAwLjc5NDMzNiwgMC45NDIzMSIsIFwKLSAgICAgICAgICAiMC4wOTA1NjksIDAuMjQ2MDY3LCAwLjM2Mjg0NywgMC41MTAyNTYsIDAuNjU3MzU4LCAwLjgwNTE2OSwgMC45NTIxNTYiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDgyMjc5LCAwLjM5MjQ5NCwgMC42NDI0MjgsIDAuOTU1MzQyLCAxLjI2OTYsIDEuNTgwNzIsIDEuODkyMzkiLCBcCi0gICAgICAgICAgIjAuMDgyNDQ3LCAwLjM5MjQ4NSwgMC42NDI4MzEsIDAuOTU1NDI1LCAxLjI2NzQ3LCAxLjU4MDA0LCAxLjg5MzM0IiwgXAotICAgICAgICAgICIwLjA4NDg3OSwgMC4zOTI1NzgsIDAuNjQyNzk4LCAwLjk1NDg3NCwgMS4yNjk2LCAxLjU4MDE4LCAxLjg5NTYxIiwgXAotICAgICAgICAgICIwLjA4OTA5NSwgMC4zOTM0NSwgMC42NDI1OTMsIDAuOTU1MjgzLCAxLjI2NzQ3LCAxLjU4MDc2LCAxLjg5Mjc4IiwgXAotICAgICAgICAgICIwLjA5NDQ5OCwgMC4zOTQ4NDgsIDAuNjQzNjEyLCAwLjk1NTQ1OCwgMS4yNjcwOCwgMS41Nzk1OCwgMS44OTI4NSIsIFwKLSAgICAgICAgICAiMC4xMDQ0NDEsIDAuMzk4MzM1LCAwLjY0Mzk3NCwgMC45NTUzOTQsIDEuMjY3ODksIDEuNTgwNzksIDEuODkyNTEiLCBcCi0gICAgICAgICAgIjAuMTEyOTMsIDAuNDAzNDI4LCAwLjY0NjcwOCwgMC45NTYxNjMsIDEuMjY3MzIsIDEuNTc5OTcsIDEuODkyMjEiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY0NTYyLCAwLjI1NDMxOCwgMC40MDU1ODIsIDAuNTk0NzcxLCAwLjc4MzMwNywgMC45NzIxNDIsIDEuMTYxODIiLCBcCi0gICAgICAgICAgIjAuMDcxNDk3LCAwLjI2MTM3NywgMC40MTI0NjUsIDAuNjAxMjc5LCAwLjc5MDE2NCwgMC45Nzg4NywgMS4xNjc4MSIsIFwKLSAgICAgICAgICAiMC4wODA2MjUsIDAuMjcwMzMzLCAwLjQyMTQ2MywgMC42MTAyNDEsIDAuNzk5MzY1LCAwLjk4Nzg0NSwgMS4xNzY3OSIsIFwKLSAgICAgICAgICAiMC4wOTAxMDksIDAuMjc5Mzc2LCAwLjQzMDUyMiwgMC42MTk1MzYsIDAuODA4MTYxLCAwLjk5Njc3OSwgMS4xODU4IiwgXAotICAgICAgICAgICIwLjA5OTcyMywgMC4yODg1NiwgMC40Mzk3OTEsIDAuNjI4NTYzLCAwLjgxNzI4MSwgMS4wMDYxMywgMS4xOTU1NyIsIFwKLSAgICAgICAgICAiMC4xMTM3NzcsIDAuMzAzMzI3LCAwLjQ1NDM2MSwgMC42NDMzOTksIDAuODMxOTA5LCAxLjAyMTMsIDEuMjA5NDIiLCBcCi0gICAgICAgICAgIjAuMTI0NDUzLCAwLjMxNjU2OSwgMC40Njc0NDcsIDAuNjU2MDYxLCAwLjg0NDk1MSwgMS4wMzMzOSwgMS4yMjIwNSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTkxODksIDAuNTA4MjgyLCAwLjgxOTU4NSwgMS4yMDg4NSwgMS41OTc5NiwgMS45ODYyMywgMi4zNzUyOSIsIFwKLSAgICAgICAgICAiMC4xMTkyMjcsIDAuNTA4MTIzLCAwLjgxOTM5NiwgMS4yMDgzOSwgMS41OTc3NSwgMS45ODY0OSwgMi4zNzQ5IiwgXAotICAgICAgICAgICIwLjEyMjc5OCwgMC41MDgxNzEsIDAuODE5NDI2LCAxLjIwODM4LCAxLjU5NzQ5LCAxLjk4NjYzLCAyLjM3NTAxIiwgXAotICAgICAgICAgICIwLjEyODg4NiwgMC41MDgyNDIsIDAuODE5NDI3LCAxLjIwODM3LCAxLjU5NzY1LCAxLjk4NjUsIDIuMzc1NzIiLCBcCi0gICAgICAgICAgIjAuMTM2MjE3LCAwLjUwODk4NiwgMC44MTk0MjcsIDEuMjA4NTIsIDEuNTk4MDcsIDEuOTg2NjYsIDIuMzc1NDYiLCBcCi0gICAgICAgICAgIjAuMTQ5MTM4LCAwLjUxMzEwMywgMC44MTk3MDksIDEuMjA4NTEsIDEuNTk3NDcsIDEuOTg2MjcsIDIuMzc1MjUiLCBcCi0gICAgICAgICAgIjAuMTYwODEzLCAwLjUxODcxNCwgMC44MjE5NDQsIDEuMjA4MjMsIDEuNTk3MjQsIDEuOTg2ODYsIDIuMzc1NjMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjAiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0Mzg2OCwgMC4xODYxNTcsIDAuMzAxNDIyLCAwLjQ0NjQ4MywgMC41OTI4MDcsIDAuNzM3MzEzLCAwLjg4MjYiLCBcCi0gICAgICAgICAgIjAuMDUxNDA2LCAwLjE5MzcwMSwgMC4zMDkzOTIsIDAuNDU0OTQsIDAuNTk5NzkyLCAwLjc0NTMzLCAwLjg5MDczMyIsIFwKLSAgICAgICAgICAiMC4wNjEwODgsIDAuMjAzMTEsIDAuMzE4NjUxLCAwLjQ2Mzk0MywgMC42MDkyMywgMC43NTQyNjYsIDAuODk5NzI0IiwgXAotICAgICAgICAgICIwLjA3MTAxMywgMC4yMTI4OTksIDAuMzI4NDM1LCAwLjQ3NDAyNywgMC42MTg4OTYsIDAuNzYzNjU2LCAwLjkwOTM3IiwgXAotICAgICAgICAgICIwLjA3OTc0MywgMC4yMjI2MDEsIDAuMzM4MDk4LCAwLjQ4MzMsIDAuNjI4NjUxLCAwLjc3Mzc3MSwgMC45MTkyNzYiLCBcCi0gICAgICAgICAgIjAuMDkxMjIxLCAwLjIzODE5OSwgMC4zNTM2ODgsIDAuNDk4MTg4LCAwLjY0NDQyMywgMC43ODkwODIsIDAuOTM0NTUzIiwgXAotICAgICAgICAgICIwLjA5OTUyNywgMC4yNTIwMDMsIDAuMzY3MTgyLCAwLjUxMjIyNiwgMC42NTc1NDEsIDAuODAzMzQyLCAwLjk0Nzg0OCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODU1MTUsIDAuMzkwMzY2LCAwLjYzNjc5OCwgMC45NDQxMzIsIDEuMjUzMjYsIDEuNTYwNjEsIDEuODY5NzgiLCBcCi0gICAgICAgICAgIjAuMDg2MDgsIDAuMzkwNDU5LCAwLjYzNjkwNCwgMC45NDUwODEsIDEuMjUyOTQsIDEuNTYwNjQsIDEuODY4NTQiLCBcCi0gICAgICAgICAgIjAuMDkxNjc5LCAwLjM5MDM5NiwgMC42MzY5MzgsIDAuOTQ1MjY1LCAxLjI1MzU0LCAxLjU2MTU3LCAxLjg2OTk4IiwgXAotICAgICAgICAgICIwLjA5OTIwMiwgMC4zOTA4MzUsIDAuNjM3MDM3LCAwLjk0NTA2NywgMS4yNTI2NCwgMS41NjEwOCwgMS44NjgyMSIsIFwKLSAgICAgICAgICAiMC4xMDc3NDgsIDAuMzkzNDYsIDAuNjM2ODkyLCAwLjk0NDk4MSwgMS4yNTI5MSwgMS41NjA2NCwgMS44Njg3MyIsIFwKLSAgICAgICAgICAiMC4xMjE0NzMsIDAuNDAwMjg1LCAwLjYzOTQ2LCAwLjk0NDg1MSwgMS4yNTMwNiwgMS41NjE1MywgMS44NjgzNiIsIFwKLSAgICAgICAgICAiMC4xMzI1MjcsIDAuNDA4MjEzLCAwLjY0MzY2OCwgMC45NDU3OCwgMS4yNTI4LCAxLjU2MTE4LCAxLjg2ODU0Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzODExOSwgMC4xNzExNDgsIDAuMjc3MzM5LCAwLjQwOTk3NywgMC41NDI1NzksIDAuNjc1MTM1LCAwLjgwNzYzMSIsIFwKLSAgICAgICAgICAiMC4wNDQ3MDMsIDAuMTc4MDEyLCAwLjI4NDI5MywgMC40MTY4ODYsIDAuNTQ5NTE1LCAwLjY4MjA4MiwgMC44MTQ2NDEiLCBcCi0gICAgICAgICAgIjAuMDUyODA1LCAwLjE4NjMxNiwgMC4yOTI1NzksIDAuNDI1MjY3LCAwLjU1Nzg5MSwgMC42OTA0NDQsIDAuODIyOTgzIiwgXAotICAgICAgICAgICIwLjA2MDE1NiwgMC4xOTQ2NDYsIDAuMzAwODc1LCAwLjQzMzYwOSwgMC41NjYyOTYsIDAuNjk4ODEyLCAwLjgzMTM0MiIsIFwKLSAgICAgICAgICAiMC4wNjY2OCwgMC4yMDMwMjksIDAuMzA5NDUxLCAwLjQ0MjIyNCwgMC41NzUwMjYsIDAuNzA3NTY5LCAwLjg0MDAxOSIsIFwKLSAgICAgICAgICAiMC4wNzUxNDksIDAuMjE2MjI3LCAwLjMyMzAyNiwgMC40NTYwNDEsIDAuNTg4Njk2LCAwLjcyMTM1MywgMC44NTM4MDIiLCBcCi0gICAgICAgICAgIjAuMDgxNzI3LCAwLjIyODA0MiwgMC4zMzM5OTksIDAuNDY3MzY4LCAwLjU5OTkwOSwgMC43MzI0OTUsIDAuODY1MDk3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3NjUxMiwgMC4zNDkzNzgsIDAuNTY4MTA3LCAwLjg0MTU1MiwgMS4xMTUsIDEuMzg4NDYsIDEuNjYxNzciLCBcCi0gICAgICAgICAgIjAuMDc3MzE3LCAwLjM0OTQ0NywgMC41NjgxMjYsIDAuODQxNTIxLCAxLjExNTAxLCAxLjM4ODQsIDEuNjYxNzYiLCBcCi0gICAgICAgICAgIjAuMDgxNTYxLCAwLjM0OTQzNSwgMC41NjgxMDEsIDAuODQxNTI1LCAxLjExNTA1LCAxLjM4ODM0LCAxLjY2MTgiLCBcCi0gICAgICAgICAgIjAuMDg3MzEsIDAuMzUwMzU0LCAwLjU2ODA2MSwgMC44NDE1MzUsIDEuMTE0OTIsIDEuMzg4NDQsIDEuNjYyMDYiLCBcCi0gICAgICAgICAgIjAuMDkzOTM2LCAwLjM1MjI4NywgMC41Njg0MDIsIDAuODQxNTE3LCAxLjExNDg4LCAxLjM4ODM0LCAxLjY2MTk5IiwgXAotICAgICAgICAgICIwLjEwNDk3MywgMC4zNTc3MjksIDAuNTcwOTg1LCAwLjg0MTczNywgMS4xMTQ5NiwgMS4zODg0OSwgMS42NjE5NyIsIFwKLSAgICAgICAgICAiMC4xMTQxNjksIDAuMzYzNzMzLCAwLjU3NDIxNSwgMC44NDMyOTYsIDEuMTE1MTYsIDEuMzg4MzgsIDEuNjYyMDYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0MjU4MywgMC4xODgyMjgsIDAuMzA0MzQxLCAwLjQ1MDMzNiwgMC41OTc4MzYsIDAuNzQ1MDAyLCAwLjg5MzExIiwgXAotICAgICAgICAgICIwLjA1MDEzMiwgMC4xOTU5MywgMC4zMTIwMSwgMC40NTgwNSwgMC42MDU1NjUsIDAuNzUyNjI1LCAwLjg5OTYyOCIsIFwKLSAgICAgICAgICAiMC4wNTk4NjksIDAuMjA1NDUyLCAwLjMyMTcxLCAwLjQ2NzYxOCwgMC42MTU3MjMsIDAuNzYxNzk0LCAwLjkwOTkxNSIsIFwKLSAgICAgICAgICAiMC4wNjk1NjUsIDAuMjE0OTU5LCAwLjMzMTE0MSwgMC40NzcwMTMsIDAuNjI0MTk3LCAwLjc3MDc0MiwgMC45MTg0OTgiLCBcCi0gICAgICAgICAgIjAuMDc4MDQxLCAwLjIyNDczLCAwLjM0MDkwOSwgMC40ODY4MzEsIDAuNjMzODk5LCAwLjc4MTAwNiwgMC45Mjc3MiIsIFwKLSAgICAgICAgICAiMC4wODkxODMsIDAuMjQwMzY3LCAwLjM1NjQ0LCAwLjUwMTY5MSwgMC42NDk1NzQsIDAuNzk2ODM1LCAwLjk0MzcxIiwgXAotICAgICAgICAgICIwLjA5Njk1MiwgMC4yNTQxMTcsIDAuMzY5OTYsIDAuNTE1Nzk5LCAwLjY2MzU5MiwgMC44MTAxMTcsIDAuOTU3MDIiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg0NTkyLCAwLjM5MzEzOCwgMC42NDI4NjksIDAuOTU1NDM3LCAxLjI2NzMyLCAxLjU4MDQyLCAxLjg5MzM2IiwgXAotICAgICAgICAgICIwLjA4NTE1MSwgMC4zOTMxMjgsIDAuNjQyODc1LCAwLjk1NDgxMiwgMS4yNjc5MSwgMS41Nzk4NywgMS44OTM0NiIsIFwKLSAgICAgICAgICAiMC4wOTA2NzUsIDAuMzkzMTUsIDAuNjQyNDI3LCAwLjk1NDc4NSwgMS4yNjgyNSwgMS41ODExNCwgMS44OTI5OSIsIFwKLSAgICAgICAgICAiMC4wOTg1NTUsIDAuMzkzNTE5LCAwLjY0MjI5MSwgMC45NTU0MjIsIDEuMjY3MDcsIDEuNTgwNjEsIDEuODkyMDUiLCBcCi0gICAgICAgICAgIjAuMTA3MTA4LCAwLjM5NjA5NSwgMC42NDM0OCwgMC45NTQ3MDYsIDEuMjY5NjQsIDEuNTgwOTMsIDEuODkyNzciLCBcCi0gICAgICAgICAgIjAuMTIxMDYyLCAwLjQwMjYxNiwgMC42NDU4MzQsIDAuOTU2NDI2LCAxLjI2NzcsIDEuNTc5ODYsIDEuODkyMTgiLCBcCi0gICAgICAgICAgIjAuMTMyMjI5LCAwLjQxMDM4OCwgMC42NDk2MTgsIDAuOTU2MTQsIDEuMjY3NjcsIDEuNTgwNzEsIDEuODk1NTIiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM2NDAzLCAwLjE2OTQ1NiwgMC4yNzU2MTgsIDAuNDA4MzQyLCAwLjU0MDg4MiwgMC42NzM1NzgsIDAuODA2MDEyIiwgXAotICAgICAgICAgICIwLjA0NDAyOSwgMC4xNzcyNTIsIDAuMjgzNTE4LCAwLjQxNjExMywgMC41NDg3ODksIDAuNjgxMzAyLCAwLjgxMzc4IiwgXAotICAgICAgICAgICIwLjA1MzgxMiwgMC4xODY4MTgsIDAuMjkyOTk0LCAwLjQyNTY1NSwgMC41NTgyNTEsIDAuNjkwODA1LCAwLjgyMzMyNyIsIFwKLSAgICAgICAgICAiMC4wNjI5OTYsIDAuMTk2NTUyLCAwLjMwMjcxNCwgMC40MzUzMzIsIDAuNTY3OTk5LCAwLjcwMDUxNSwgMC44MzI5ODkiLCBcCi0gICAgICAgICAgIjAuMDcwNzgsIDAuMjA2Mjc2LCAwLjMxMjQ4NCwgMC40NDUxMzUsIDAuNTc3NjkxLCAwLjcxMDIyMSwgMC44NDI3IiwgXAotICAgICAgICAgICIwLjA4MDg5NCwgMC4yMjIwODYsIDAuMzI4MTQ2LCAwLjQ2MDcwNCwgMC41OTMyMzMsIDAuNzI1Nzg0LCAwLjg1ODI3NyIsIFwKLSAgICAgICAgICAiMC4wODg1OTgsIDAuMjM2MDY3LCAwLjM0MTg1MSwgMC40NzQzNjgsIDAuNjA2MjYyLCAwLjczOTM4MiwgMC44NzE4NyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzY1MDYsIDAuMzQ5Mzc3LCAwLjU2ODA4NSwgMC44NDE2MTUsIDEuMTE1MDEsIDEuMzg4NTcsIDEuNjYxOTIiLCBcCi0gICAgICAgICAgIjAuMDc3ODI5LCAwLjM0OTQwMSwgMC41NjgxNTQsIDAuODQxNTE0LCAxLjExNTAzLCAxLjM4ODQzLCAxLjY2MTg5IiwgXAotICAgICAgICAgICIwLjA4NDE3MiwgMC4zNDk0MTcsIDAuNTY4MDgyLCAwLjg0MTM3NCwgMS4xMTUwMywgMS4zODg1NiwgMS42NjE5MyIsIFwKLSAgICAgICAgICAiMC4wOTI0NjIsIDAuMzUwMzcsIDAuNTY4MTA1LCAwLjg0MTUzNiwgMS4xMTQ4OSwgMS4zODgzOCwgMS42NjE4OSIsIFwKLSAgICAgICAgICAiMC4xMDEzNTQsIDAuMzUzNDM0LCAwLjU2ODM1NywgMC44NDE1NzcsIDEuMTE1MDUsIDEuMzg4MzksIDEuNjYxOTIiLCBcCi0gICAgICAgICAgIjAuMTE1Nzg4LCAwLjM2MDkxNSwgMC41NzE3MzYsIDAuODQxNzAyLCAxLjExNTAyLCAxLjM4ODM0LCAxLjY2MjA4IiwgXAotICAgICAgICAgICIwLjEyNjY0MiwgMC4zNjk0MjksIDAuNTc2Njg5LCAwLjg0MzU1NCwgMS4xMTUwOCwgMS4zODg1MywgMS42NjE5NyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTAyNTQsIDAuMDEwMjU1LCAwLjAxMDI1NiwgMC4wMTAyNTQsIDAuMDEwMjU0LCAwLjAxMDI1MywgMC4wMTAyNTMiLCBcCi0gICAgICAgICAgIjAuMDEwMjE4LCAwLjAxMDIzMSwgMC4wMTAyMzIsIDAuMDEwMjMzLCAwLjAxMDIzMywgMC4wMTAyMzEsIDAuMDEwMjQ1IiwgXAotICAgICAgICAgICIwLjAxMDIwMSwgMC4wMTAyMjQsIDAuMDEwMjI3LCAwLjAxMDIyNywgMC4wMTAyMjcsIDAuMDEwMjI4LCAwLjAxMDIyOSIsIFwKLSAgICAgICAgICAiMC4wMTAyMDgsIDAuMDEwMjIzLCAwLjAxMDIyNiwgMC4wMTAyMjgsIDAuMDEwMjI3LCAwLjAxMDIzMSwgMC4wMTAyMjciLCBcCi0gICAgICAgICAgIjAuMDEwMjMsIDAuMDEwMjMxLCAwLjAxMDIzMSwgMC4wMTAyMzEsIDAuMDEwMjMsIDAuMDEwMjMxLCAwLjAxMDIyOSIsIFwKLSAgICAgICAgICAiMC4wMTAzMTQsIDAuMDEwMjY0LCAwLjAxMDI1NSwgMC4wMTAyNDgsIDAuMDEwMjQzLCAwLjAxMDI0MSwgMC4wMTAyMzciLCBcCi0gICAgICAgICAgIjAuMDEwNDI1LCAwLjAxMDMwOSwgMC4wMTAyODcsIDAuMDEwMjcyLCAwLjAxMDI1OSwgMC4wMTAyNTcsIDAuMDEwMjUyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyNTM1LCAwLjAwMjU0MSwgMC4wMDI1NDIsIDAuMDAyNTQxLCAwLjAwMjU0MSwgMC4wMDI1NCwgMC4wMDI1NCIsIFwKLSAgICAgICAgICAiMC4wMDI0NDksIDAuMDAyNDk4LCAwLjAwMjUwNSwgMC4wMDI1MDksIDAuMDAyNTEsIDAuMDAyNTExLCAwLjAwMjUxIiwgXAotICAgICAgICAgICIwLjAwMjQwMywgMC4wMDI0NzUsIDAuMDAyNDg5LCAwLjAwMjQ5NiwgMC4wMDI0OTksIDAuMDAyNTAxLCAwLjAwMjUwMiIsIFwKLSAgICAgICAgICAiMC4wMDI0MDcsIDAuMDAyNDY3LCAwLjAwMjQ4MiwgMC4wMDI0OSwgMC4wMDI0OTUsIDAuMDAyNDk3LCAwLjAwMjQ5OSIsIFwKLSAgICAgICAgICAiMC4wMDI0NSwgMC4wMDI0NzUsIDAuMDAyNDg2LCAwLjAwMjQ5MSwgMC4wMDI0OTUsIDAuMDAyNDk4LCAwLjAwMjQ5OCIsIFwKLSAgICAgICAgICAiMC4wMDI1OTEsIDAuMDAyNTE2LCAwLjAwMjUxMSwgMC4wMDI1MDksIDAuMDAyNTA4LCAwLjAwMjUwOCwgMC4wMDI1MDciLCBcCi0gICAgICAgICAgIjAuMDAyNzY2LCAwLjAwMjU4LCAwLjAwMjU1NSwgMC4wMDI1NCwgMC4wMDI1MzIsIDAuMDAyNTI3LCAwLjAwMjUyNCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkExIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDkyMDgsIDAuMDA5MjE1LCAwLjAwOTIxNiwgMC4wMDkyMTYsIDAuMDA5MjE1LCAwLjAwOTIxNSwgMC4wMDkyMTUiLCBcCi0gICAgICAgICAgIjAuMDA5MTYyLCAwLjAwOTIwNCwgMC4wMDkyMDksIDAuMDA5MjExLCAwLjAwOTIxMiwgMC4wMDkyMTMsIDAuMDA5MjEyIiwgXAotICAgICAgICAgICIwLjAwOTEyOCwgMC4wMDkxOTIsIDAuMDA5MiwgMC4wMDkyMDYsIDAuMDA5MjEzLCAwLjAwOTIwOSwgMC4wMDkyMSIsIFwKLSAgICAgICAgICAiMC4wMDkxMjIsIDAuMDA5MTg1LCAwLjAwOTE5NywgMC4wMDkyMDMsIDAuMDA5MjA2LCAwLjAwOTIwNSwgMC4wMDkyMDgiLCBcCi0gICAgICAgICAgIjAuMDA5MTQ1LCAwLjAwOTE4OCwgMC4wMDkxOTksIDAuMDA5MjA0LCAwLjAwOTIwOCwgMC4wMDkyMDgsIDAuMDA5MjA5IiwgXAotICAgICAgICAgICIwLjAwOTIxNiwgMC4wMDkyMTMsIDAuMDA5MjE3LCAwLjAwOTIxOCwgMC4wMDkyMTcsIDAuMDA5MjE4LCAwLjAwOTIxNSIsIFwKLSAgICAgICAgICAiMC4wMDkzMjYsIDAuMDA5MjU2LCAwLjAwOTI0OCwgMC4wMDkyMzgsIDAuMDA5MjM5LCAwLjAwOTIzNCwgMC4wMDkyMjkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI1MzQsIDAuMDAyNTQsIDAuMDAyNTQsIDAuMDAyNTM5LCAwLjAwMjUzOSwgMC4wMDI1MzksIDAuMDAyNTM4IiwgXAotICAgICAgICAgICIwLjAwMjQ0OSwgMC4wMDI0OTYsIDAuMDAyNTAzLCAwLjAwMjUwNywgMC4wMDI1MDgsIDAuMDAyNTA5LCAwLjAwMjUwOSIsIFwKLSAgICAgICAgICAiMC4wMDI0MTgsIDAuMDAyNDc5LCAwLjAwMjQ5LCAwLjAwMjQ5NSwgMC4wMDI0OTksIDAuMDAyNSwgMC4wMDI1MDEiLCBcCi0gICAgICAgICAgIjAuMDAyNDQ1LCAwLjAwMjQ3OCwgMC4wMDI0ODcsIDAuMDAyNDkzLCAwLjAwMjQ5NiwgMC4wMDI0OTgsIDAuMDAyNDk4IiwgXAotICAgICAgICAgICIwLjAwMjUxOCwgMC4wMDI0OTIsIDAuMDAyNDk1LCAwLjAwMjQ5OCwgMC4wMDI1LCAwLjAwMjUsIDAuMDAyNSIsIFwKLSAgICAgICAgICAiMC4wMDI2ODYsIDAuMDAyNTQ4LCAwLjAwMjUzMSwgMC4wMDI1MjIsIDAuMDAyNTE4LCAwLjAwMjUxNSwgMC4wMDI1MTIiLCBcCi0gICAgICAgICAgIjAuMDAyODkyLCAwLjAwMjYxNiwgMC4wMDI1NzcsIDAuMDAyNTQ4LCAwLjAwMjU0MiwgMC4wMDI1MzUsIDAuMDAyNTMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA4MTg0LCAwLjAwODIwNCwgMC4wMDgyMDUsIDAuMDA4MjA2LCAwLjAwODIwNywgMC4wMDgyMDYsIDAuMDA4MjA2IiwgXAotICAgICAgICAgICIwLjAwODEyOSwgMC4wMDgyMDQsIDAuMDA4MjEzLCAwLjAwODIxOCwgMC4wMDgyMjEsIDAuMDA4MjIxLCAwLjAwODIyMiIsIFwKLSAgICAgICAgICAiMC4wMDgwNzksIDAuMDA4MTg2LCAwLjAwODIwMiwgMC4wMDgyMTEsIDAuMDA4MjE3LCAwLjAwODIxOSwgMC4wMDgyMjEiLCBcCi0gICAgICAgICAgIjAuMDA4MDY0LCAwLjAwODE3NCwgMC4wMDgxOTcsIDAuMDA4MjA3LCAwLjAwODIxMiwgMC4wMDgyMTMsIDAuMDA4MjE4IiwgXAotICAgICAgICAgICIwLjAwODA3NywgMC4wMDgxNzIsIDAuMDA4MTkzLCAwLjAwODIwNSwgMC4wMDgyMTEsIDAuMDA4MjE1LCAwLjAwODIxNyIsIFwKLSAgICAgICAgICAiMC4wMDgxNDYsIDAuMDA4MTg5LCAwLjAwODIwNSwgMC4wMDgyMTQsIDAuMDA4MjIsIDAuMDA4MjIxLCAwLjAwODIyMiIsIFwKLSAgICAgICAgICAiMC4wMDgyNTQsIDAuMDA4MjI1LCAwLjAwODIyOCwgMC4wMDgyMzMsIDAuMDA4MjMyLCAwLjAwODIzMiwgMC4wMDgyMzMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI1MzgsIDAuMDAyNTQ3LCAwLjAwMjU0NywgMC4wMDI1NDcsIDAuMDAyNTQ3LCAwLjAwMjU0NiwgMC4wMDI1NDYiLCBcCi0gICAgICAgICAgIjAuMDAyNDYzLCAwLjAwMjUwNCwgMC4wMDI1MTEsIDAuMDAyNTE0LCAwLjAwMjUxNiwgMC4wMDI1MTYsIDAuMDAyNTE2IiwgXAotICAgICAgICAgICIwLjAwMjUwNiwgMC4wMDI1MDUsIDAuMDAyNTExLCAwLjAwMjUxMywgMC4wMDI1MTMsIDAuMDAyNTE0LCAwLjAwMjUxNCIsIFwKLSAgICAgICAgICAiMC4wMDI1ODIsIDAuMDAyNTI5LCAwLjAwMjUyNCwgMC4wMDI1MjEsIDAuMDAyNTIsIDAuMDAyNTE4LCAwLjAwMjUxNyIsIFwKLSAgICAgICAgICAiMC4wMDI3MTIsIDAuMDAyNTcyLCAwLjAwMjU1NiwgMC4wMDI1NDIsIDAuMDAyNTM2LCAwLjAwMjUzLCAwLjAwMjUyOCIsIFwKLSAgICAgICAgICAiMC4wMDI5NzksIDAuMDAyNjc5LCAwLjAwMjYyOCwgMC4wMDI1OTYsIDAuMDAyNTc2LCAwLjAwMjU2NCwgMC4wMDI1NTYiLCBcCi0gICAgICAgICAgIjAuMDAzMjcyLCAwLjAwMjc5NywgMC4wMDI3MDQsIDAuMDAyNjU5LCAwLjAwMjYyNywgMC4wMDI2MDYsIDAuMDAyNTkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA3Mzk2LCAwLjAwNzQwNiwgMC4wMDc0MDcsIDAuMDA3NDA3LCAwLjAwNzQwNywgMC4wMDc0MDYsIDAuMDA3NDA1IiwgXAotICAgICAgICAgICIwLjAwNzM3LCAwLjAwNzM5LCAwLjAwNzM5MiwgMC4wMDczOTIsIDAuMDA3MzkzLCAwLjAwNzM5MywgMC4wMDczOTIiLCBcCi0gICAgICAgICAgIjAuMDA3NDM4LCAwLjAwNzQwOCwgMC4wMDc0MDMsIDAuMDA3NCwgMC4wMDczOTgsIDAuMDA3Mzk2LCAwLjAwNzM5NSIsIFwKLSAgICAgICAgICAiMC4wMDc1MzgsIDAuMDA3NDM4LCAwLjAwNzQyNSwgMC4wMDc0MTUsIDAuMDA3NDA5LCAwLjAwNzQwNiwgMC4wMDc0MDIiLCBcCi0gICAgICAgICAgIjAuMDA3Njg3LCAwLjAwNzQ4NiwgMC4wMDc0NTksIDAuMDA3NDM5LCAwLjAwNzQyOCwgMC4wMDc0MiwgMC4wMDc0MTUiLCBcCi0gICAgICAgICAgIjAuMDA4MDA4LCAwLjAwNzYwMiwgMC4wMDc1MzUsIDAuMDA3NDk0LCAwLjAwNzQ3NywgMC4wMDc0NjEsIDAuMDA3NDUiLCBcCi0gICAgICAgICAgIjAuMDA4MzIzLCAwLjAwNzcxNiwgMC4wMDc2MjEsIDAuMDA3NTU4LCAwLjAwNzUyOCwgMC4wMDc1MDQsIDAuMDA3NDgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDA1NDgsIDAuMDAwNTg0LCAwLjAwMDU4NywgMC4wMDA1ODksIDAuMDAwNTksIDAuMDAwNTkxLCAwLjAwMDU5MSIsIFwKLSAgICAgICAgICAiMC4wMDA0NzcsIDAuMDAwNjAxLCAwLjAwMDYxNywgMC4wMDA2MjUsIDAuMDAwNjMsIDAuMDAwNjMyLCAwLjAwMDYzNCIsIFwKLSAgICAgICAgICAiMC4wMDA0NDEsIDAuMDAwNTg0LCAwLjAwMDYwOCwgMC4wMDA2MjIsIDAuMDAwNjI5LCAwLjAwMDYzMywgMC4wMDA2MzYiLCBcCi0gICAgICAgICAgIjAuMDAwNDc3LCAwLjAwMDU4MiwgMC4wMDA2MDcsIDAuMDAwNjIxLCAwLjAwMDYyOSwgMC4wMDA2MzQsIDAuMDAwNjM3IiwgXAotICAgICAgICAgICIwLjAwMDU2MiwgMC4wMDA1OTYsIDAuMDAwNjE2LCAwLjAwMDYyOCwgMC4wMDA2MzQsIDAuMDAwNjM4LCAwLjAwMDY0MSIsIFwKLSAgICAgICAgICAiMC4wMDA3NzUsIDAuMDAwNjUsIDAuMDAwNjUyLCAwLjAwMDY1NSwgMC4wMDA2NTYsIDAuMDAwNjU2LCAwLjAwMDY1NiIsIFwKLSAgICAgICAgICAiMC4wMDEwNDMsIDAuMDAwNzI3LCAwLjAwMDY5OCwgMC4wMDA2OTUsIDAuMDAwNjg2LCAwLjAwMDY4MSwgMC4wMDA2NzgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2Mjc3LCAwLjAwNjMwNCwgMC4wMDYzMDcsIDAuMDA2MzA3LCAwLjAwNjMwOCwgMC4wMDYzMDksIDAuMDA2MzA2IiwgXAotICAgICAgICAgICIwLjAwNjIyOCwgMC4wMDYyOTQsIDAuMDA2MzAzLCAwLjAwNjMwOSwgMC4wMDYzMTEsIDAuMDA2MzEyLCAwLjAwNjMxMiIsIFwKLSAgICAgICAgICAiMC4wMDYyODIsIDAuMDA2MzAxLCAwLjAwNjMwOCwgMC4wMDYzMSwgMC4wMDYzMTMsIDAuMDA2MzEzLCAwLjAwNjMxNCIsIFwKLSAgICAgICAgICAiMC4wMDYzNjgsIDAuMDA2MzI5LCAwLjAwNjMyNCwgMC4wMDYzMjIsIDAuMDA2MzIyLCAwLjAwNjMyLCAwLjAwNjMyIiwgXAotICAgICAgICAgICIwLjAwNjUwNCwgMC4wMDYzNjQsIDAuMDA2MzUzLCAwLjAwNjM0MiwgMC4wMDYzMzUsIDAuMDA2MzMzLCAwLjAwNjMzIiwgXAotICAgICAgICAgICIwLjAwNjgwNCwgMC4wMDY0NjQsIDAuMDA2NDE1LCAwLjAwNjM5MSwgMC4wMDYzNzcsIDAuMDA2MzY1LCAwLjAwNjM1OCIsIFwKLSAgICAgICAgICAiMC4wMDcwOTYsIDAuMDA2NTY3LCAwLjAwNjQ5MiwgMC4wMDY0NTMsIDAuMDA2NDI1LCAwLjAwNjM5NywgMC4wMDYzODUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDA1NDksIDAuMDAwNTg4LCAwLjAwMDU5MiwgMC4wMDA1OTQsIDAuMDAwNTk1LCAwLjAwMDU5NiwgMC4wMDA1OTYiLCBcCi0gICAgICAgICAgIjAuMDAwNTA5LCAwLjAwMDYxMSwgMC4wMDA2MjUsIDAuMDAwNjMzLCAwLjAwMDYzNiwgMC4wMDA2MzksIDAuMDAwNjQiLCBcCi0gICAgICAgICAgIjAuMDAwNTgxLCAwLjAwMDYyMiwgMC4wMDA2MzUsIDAuMDAwNjQxLCAwLjAwMDY0NCwgMC4wMDA2NDYsIDAuMDAwNjQ3IiwgXAotICAgICAgICAgICIwLjAwMDY0NiwgMC4wMDA2NDMsIDAuMDAwNjQ4LCAwLjAwMDY1MiwgMC4wMDA2NTMsIDAuMDAwNjU0LCAwLjAwMDY1NSIsIFwKLSAgICAgICAgICAiMC4wMDA4MiwgMC4wMDA2ODEsIDAuMDAwNjc3LCAwLjAwMDY3MiwgMC4wMDA2NjksIDAuMDAwNjY3LCAwLjAwMDY2NiIsIFwKLSAgICAgICAgICAiMC4wMDEyMDIsIDAuMDAwNzgyLCAwLjAwMDc0LCAwLjAwMDcyNCwgMC4wMDA3MSwgMC4wMDA3MDEsIDAuMDAwNjk1IiwgXAotICAgICAgICAgICIwLjAwMTU4LCAwLjAwMDg5NywgMC4wMDA4MjMsIDAuMDAwNzg3LCAwLjAwMDc2LCAwLjAwMDc0MywgMC4wMDA3MzEiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBBT0kzMlg0ICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKEFPSTMyWDQpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMS41NTYwMTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQTApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMzczNDc2OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMzcyNjE1OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMzczNDc2OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjA5OCwgMC4wMDIwOTYsIDAuMDAyMDk1LCAwLjAwMjA5NSwgMC4wMDIwOTQsIDAuMDAyMDk0LCAwLjAwMjA5NCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjA5OCwgMC4wMDIxLCAwLjAwMjEwMiwgMC4wMDIxMDEsIDAuMDAyMTAxLCAwLjAwMjEwMiwgMC4wMDIxMDEiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEExKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDM3MTQ5OTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDM3MDQ0NTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDM3MTQ5OTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDIwOTcsIDAuMDAyMDk2LCAwLjAwMjA5NSwgMC4wMDIwOTIsIDAuMDAyMDk0LCAwLjAwMjA5NCwgMC4wMDIwOTQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDIwOTksIDAuMDAyMSwgMC4wMDIxMDIsIDAuMDAyMTAzLCAwLjAwMjEwMywgMC4wMDIxMDMsIDAuMDAyMTA0Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihBMikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAzNDMyNTc7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAzNDE1NTU7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAzNDMyNTc7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxMjQsIDAuMDAxMjM4LCAwLjAwMTIzNywgMC4wMDEyMzcsIDAuMDAxMjM3LCAwLjAwMTIzNywgMC4wMDEyMzYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDIzODIsIDAuMDAyMzgzLCAwLjAwMjM4NSwgMC4wMDIzODMsIDAuMDAyMzgzLCAwLjAwMjM4MywgMC4wMDIzODMiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDM0NjA5NTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDM0NjA5NTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDM0NTU0MTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDIwOTgsIDAuMDAyMDk3LCAwLjAwMjA5NiwgMC4wMDIwOTYsIDAuMDAyMDk2LCAwLjAwMjA5NSwgMC4wMDIwOTUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDIyMDYsIDAuMDAyMTI5LCAwLjAwMjEyMywgMC4wMDIxMDgsIDAuMDAyMTA1LCAwLjAwMjEwMSwgMC4wMDIxMDEiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIxKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDMzOTAwNjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDMzODkxNzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDMzOTAwNjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDExODIsIDAuMDAxMTgyLCAwLjAwMTE4MSwgMC4wMDExODEsIDAuMDAxMTgxLCAwLjAwMTE4LCAwLjAwMTE3OSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjM4MSwgMC4wMDIzODIsIDAuMDAyMzgyLCAwLjAwMjM3OCwgMC4wMDIzODMsIDAuMDAyMzgzLCAwLjAwMjM4MyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjU2MjAyOwotICAgIGZ1bmN0aW9uIDogIighKChCMCBCMSkrKChBMCBBMSkgQTIpKSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzNzI5OSwgMC4xMzg1NjgsIDAuMjM5Mzg5LCAwLjMxMTcyMSwgMC40Mjc5NzcsIDAuNTI5NjY1LCAwLjY3NTMxNSIsIFwKLSAgICAgICAgICAiMC4wNDQ1NTMsIDAuMTQ1ODMsIDAuMjQ2NTE1LCAwLjMxOTI4OSwgMC40MzUyOCwgMC41MzcyNDEsIDAuNjgyNTA1IiwgXAotICAgICAgICAgICIwLjA1MjEwOCwgMC4xNTM1MDUsIDAuMjU0MjEyLCAwLjMyNjU4NCwgMC40NDI5MTUsIDAuNTQ0NTM3LCAwLjY4OTkxMiIsIFwKLSAgICAgICAgICAiMC4wNTgzNDUsIDAuMTYwNzMzLCAwLjI2MTA5NywgMC4zMzM5NiwgMC40NTA0MjUsIDAuNTUxODU4LCAwLjY5NzE5NSIsIFwKLSAgICAgICAgICAiMC4wNjM1MiwgMC4xNjgxMTksIDAuMjY4ODIsIDAuMzQxMTMyLCAwLjQ1NzYyOCwgMC41NTkwOTgsIDAuNzA0Nzg3IiwgXAotICAgICAgICAgICIwLjA3MDAyOCwgMC4xNzk2ODYsIDAuMjgwNDY5LCAwLjM1Mjc5NCwgMC40NjkwMzUsIDAuNTcwODk1LCAwLjcxNjE3NSIsIFwKLSAgICAgICAgICAiMC4wNzQ4MzEsIDAuMTg5OTk4LCAwLjI5MDkzMSwgMC4zNjI5MDQsIDAuNDc5MzMsIDAuNTgxMDI2LCAwLjcyNjM0Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU1ODIzLCAwLjI2OTQ5MiwgMC40ODU0NzYsIDAuNjQwMjc0LCAwLjg4NjYwNiwgMS4xMDMyMiwgMS40MTE2MiIsIFwKLSAgICAgICAgICAiMC4wNTYyNDMsIDAuMjY5NDg4LCAwLjQ4NTcyNCwgMC42NDAxODMsIDAuODg3MDIsIDEuMTAyODcsIDEuNDExNDciLCBcCi0gICAgICAgICAgIjAuMDU5MzM2LCAwLjI2OTYxOCwgMC40ODU2NSwgMC42NDAxMDIsIDAuODg2Nzc5LCAxLjEwMzEyLCAxLjQxMTA2IiwgXAotICAgICAgICAgICIwLjA2NDI2MiwgMC4yNzA4OCwgMC40ODU3NTIsIDAuNjQwMDQxLCAwLjg4Njg2MiwgMS4xMDI1NywgMS40MTEwOSIsIFwKLSAgICAgICAgICAiMC4wNzAxMDQsIDAuMjczNSwgMC40ODY0MDMsIDAuNjQwMTk5LCAwLjg4NjgxLCAxLjEwMjk5LCAxLjQxMTQ4IiwgXAotICAgICAgICAgICIwLjA3OTQxOSwgMC4yNzkyODUsIDAuNDg5MzU5LCAwLjY0MTc5MiwgMC44ODc0NDEsIDEuMTAyNzUsIDEuNDExODMiLCBcCi0gICAgICAgICAgIjAuMDg3MDUzLCAwLjI4NTQ1NSwgMC40OTM0OTUsIDAuNjQ0MzYzLCAwLjg4ODc2NiwgMS4xMDMxMSwgMS40MTEyNiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0OTU1NiwgMC4xODM5ODIsIDAuMzE3MzcyLCAwLjQxMjM1LCAwLjU2NDg1MiwgMC42OTc3OCwgMC44ODc5NjUiLCBcCi0gICAgICAgICAgIjAuMDU0ODA2LCAwLjE4OTI3NiwgMC4zMjI2MjYsIDAuNDE3ODc3LCAwLjU3MDI5MiwgMC43MDI5MzgsIDAuODkzNTA4IiwgXAotICAgICAgICAgICIwLjA2MDgyNSwgMC4xOTU0MDgsIDAuMzI4Nzk2LCAwLjQyMzkzNSwgMC41NzYxNDksIDAuNzA5MjE0LCAwLjg5OTc5NSIsIFwKLSAgICAgICAgICAiMC4wNjY2NjcsIDAuMjAxNDE3LCAwLjMzNDgxMywgMC40Mjk5NzMsIDAuNTgyMzcyLCAwLjcxNTUyOSwgMC45MDU1NjciLCBcCi0gICAgICAgICAgIjAuMDcxOTY5LCAwLjIwNzUzMSwgMC4zNDExNCwgMC40MzYyMzYsIDAuNTg4NTcsIDAuNzIxOTMxLCAwLjkxMjMwNCIsIFwKLSAgICAgICAgICAiMC4wNzkzMzcsIDAuMjE3NTA2LCAwLjM1MDczMSwgMC40NDU5MywgMC41OTgxLCAwLjczMTQxOCwgMC45MjE4MDUiLCBcCi0gICAgICAgICAgIjAuMDg1MTMyLCAwLjIyNTk3NywgMC4zNTk0NjksIDAuNDU0Njk5LCAwLjYwNzExMSwgMC43NDAxMjIsIDAuOTMwODU2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc5NTMsIDAuMzUzNzQ4LCAwLjYyODEwNywgMC44MjQwODksIDEuMTM3OTIsIDEuNDExOTcsIDEuODAzNTQiLCBcCi0gICAgICAgICAgIjAuMDc5ODc2LCAwLjM1Mzc3OCwgMC42MjgwNzIsIDAuODI0MTQ0LCAxLjEzNzY3LCAxLjQxMTksIDEuODA0MDIiLCBcCi0gICAgICAgICAgIjAuMDgyMjA3LCAwLjM1Mzc5MywgMC42MjgxNjUsIDAuODI0MTI1LCAxLjEzNzU4LCAxLjQxMjAzLCAxLjgwNDA3IiwgXAotICAgICAgICAgICIwLjA4NjAyOCwgMC4zNTQ0MzUsIDAuNjI4MDc1LCAwLjgyNDA2MiwgMS4xMzc0NCwgMS40MTIxNiwgMS44MDM5OCIsIFwKLSAgICAgICAgICAiMC4wOTA4MjUsIDAuMzU1ODcsIDAuNjI4MjgsIDAuODI0MDc2LCAxLjEzNzcsIDEuNDEyMDMsIDEuODAzODciLCBcCi0gICAgICAgICAgIjAuMDk5MzQ4LCAwLjM1OTUzNiwgMC42Mjk4MTQsIDAuODI0NjYxLCAxLjEzNzU4LCAxLjQxMTksIDEuODAzNjgiLCBcCi0gICAgICAgICAgIjAuMTA2Njc1LCAwLjM2Mzg2OSwgMC42MzIwNTEsIDAuODI1OTYzLCAxLjEzNzkxLCAxLjQxMTk3LCAxLjgwMzgzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkExIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzNTMzLCAwLjEzNjE4NiwgMC4yMzY5MzMsIDAuMzA4NjEzLCAwLjQyNDc3MywgMC41MjYyNDksIDAuNjcxNDUzIiwgXAotICAgICAgICAgICIwLjA0MjUyOCwgMC4xNDM1NTEsIDAuMjQ0MTI5LCAwLjMxNjIzOCwgMC40MzE5MTEsIDAuNTMzNzQyLCAwLjY3ODY3MiIsIFwKLSAgICAgICAgICAiMC4wNDk5OTYsIDAuMTUxMTYxLCAwLjI1MTgxOCwgMC4zMjM3NzIsIDAuNDM5NzA2LCAwLjU0MTQ2NCwgMC42ODYxNTYiLCBcCi0gICAgICAgICAgIjAuMDU2MDIzLCAwLjE1ODQxNiwgMC4yNTg2NDUsIDAuMzMxMSwgMC40NDcwMjksIDAuNTQ4Mzg2LCAwLjY5MzMyNSIsIFwKLSAgICAgICAgICAiMC4wNjA5MzMsIDAuMTY1NzA2LCAwLjI2NjM2LCAwLjMzODI0NywgMC40NTQzODQsIDAuNTU1NTM1LCAwLjcwMTE1OSIsIFwKLSAgICAgICAgICAiMC4wNjcyMDUsIDAuMTc3MzgsIDAuMjc4MDc5LCAwLjM1MDA0OSwgMC40NjU3NzYsIDAuNTY3MzYxLCAwLjcxMjI3IiwgXAotICAgICAgICAgICIwLjA3MTY3NCwgMC4xODc0MzIsIDAuMjg4MjgyLCAwLjM2MDAxNiwgMC40NzU3OCwgMC41NzcyMTksIDAuNzIyMTA1Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDUyOTI4LCAwLjI2NjI3OCwgMC40ODEzNzMsIDAuNjM1Mjc2LCAwLjg4MTM1MiwgMS4wOTY2NywgMS40MDQ2NyIsIFwKLSAgICAgICAgICAiMC4wNTM0MjUsIDAuMjY2MTUzLCAwLjQ4MTQ2NywgMC42MzUzNzUsIDAuODgxNzU3LCAxLjA5Njg2LCAxLjQwNTE1IiwgXAotICAgICAgICAgICIwLjA1NjcwNywgMC4yNjY0ODQsIDAuNDgxMzUyLCAwLjYzNTE1NSwgMC44ODEyMzksIDEuMDk2OSwgMS40MDQ3OCIsIFwKLSAgICAgICAgICAiMC4wNjE3MjksIDAuMjY3NjA5LCAwLjQ4MTM2LCAwLjYzNTE4OSwgMC44ODExMjYsIDEuMDk2NDMsIDEuNDA0MDgiLCBcCi0gICAgICAgICAgIjAuMDY3NjQxLCAwLjI3MDE4NywgMC40ODIwOTksIDAuNjM1MzAzLCAwLjg4MTUzNiwgMS4wOTc0MSwgMS40MDQ2OSIsIFwKLSAgICAgICAgICAiMC4wNzY3NTcsIDAuMjc2MDc1LCAwLjQ4NTQxNiwgMC42MzcwMTgsIDAuODgxNDU2LCAxLjA5Njc2LCAxLjQwNDk4IiwgXAotICAgICAgICAgICIwLjA4NDM5OSwgMC4yODI1MzUsIDAuNDg5MTcsIDAuNjM5OTI0LCAwLjg4MjgzNiwgMS4wOTY3NCwgMS40MDQ2NCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0Nzk2LCAwLjE4MjMwOCwgMC4zMTU1MDksIDAuNDEwOTE2LCAwLjU2Mjg3OSwgMC42OTY0NzIsIDAuODg2MzU0IiwgXAotICAgICAgICAgICIwLjA1NDI1OSwgMC4xODg3NDIsIDAuMzIyMDcyLCAwLjQxNzUwNSwgMC41NjkzOCwgMC43MDI5OCwgMC44OTI2MTYiLCBcCi0gICAgICAgICAgIjAuMDYyMzgzLCAwLjE5Njk5LCAwLjMzMDQ5OSwgMC40MjU0OTIsIDAuNTc4MTMyLCAwLjcxMTIxNSwgMC45MDE3MDciLCBcCi0gICAgICAgICAgIjAuMDcwNDMxLCAwLjIwNTE0MywgMC4zMzg4NDUsIDAuNDMzODg0LCAwLjU4NjAzOCwgMC43MTkxMTgsIDAuOTEwMDA2IiwgXAotICAgICAgICAgICIwLjA3NzY3NCwgMC4yMTM0NDIsIDAuMzQ2NzgsIDAuNDQyMzA3LCAwLjU5NDM4NywgMC43Mjc5NTEsIDAuOTE3NTMiLCBcCi0gICAgICAgICAgIjAuMDg3NjI3LCAwLjIyNzA3OCwgMC4zNjAzNCwgMC40NTU0MDIsIDAuNjA3NTg5LCAwLjc0MDgwNiwgMC45MzEzODQiLCBcCi0gICAgICAgICAgIjAuMDk1MzgyLCAwLjIzODgyMywgMC4zNzE4OTQsIDAuNDY3MjU2LCAwLjYxOTQ5NSwgMC43NTI0NywgMC45NDI2MTIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzk1MzgsIDAuMzUzNzUzLCAwLjYyODA5NywgMC44MjQxMjMsIDEuMTM3ODMsIDEuNDEyMTUsIDEuODA0MDIiLCBcCi0gICAgICAgICAgIjAuMDgwMDE5LCAwLjM1MzcyLCAwLjYyODA2OSwgMC44MjQwNzMsIDEuMTM3NjEsIDEuNDEyMTMsIDEuODAzNjYiLCBcCi0gICAgICAgICAgIjAuMDgzNzM4LCAwLjM1Mzc2MywgMC42MjgwNzMsIDAuODI0MTA5LCAxLjEzNzkyLCAxLjQxMjI1LCAxLjgwNCIsIFwKLSAgICAgICAgICAiMC4wODk0MjksIDAuMzU0NDU5LCAwLjYyODA3NSwgMC44MjQxMTcsIDEuMTM3NDYsIDEuNDEyMTYsIDEuODA0MDUiLCBcCi0gICAgICAgICAgIjAuMDk1NzM4LCAwLjM1NjQ3OSwgMC42MjgyMzgsIDAuODI0MDU1LCAxLjEzNzU4LCAxLjQxMjM3LCAxLjgwMzUzIiwgXAotICAgICAgICAgICIwLjEwNjQ4OCwgMC4zNjE5NDEsIDAuNjMwMDU5LCAwLjgyNDM5MywgMS4xMzc5MSwgMS40MTI0NywgMS44MDM5NyIsIFwKLSAgICAgICAgICAiMC4xMTU1MjQsIDAuMzY3OTMyLCAwLjYzMzAzOSwgMC44MjYwMTcsIDEuMTM3ODQsIDEuNDEyMTIsIDEuODA0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEyIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzMzU5MywgMC4xMzU4MTcsIDAuMjM3Nzc0LCAwLjMxMDgwOCwgMC40MjgzOTgsIDAuNTMxMTgsIDAuNjc4MjIyIiwgXAotICAgICAgICAgICIwLjA0MDc0LCAwLjE0MzI5NywgMC4yNDU0NDgsIDAuMzE4MDM0LCAwLjQzNjAxLCAwLjUzOTEwMywgMC42ODU5ODUiLCBcCi0gICAgICAgICAgIjAuMDQ4MTI1LCAwLjE1MDc5OSwgMC4yNTI4NDIsIDAuMzI1ODczLCAwLjQ0MzYwNywgMC41NDYwNTEsIDAuNjk0MDY4IiwgXAotICAgICAgICAgICIwLjA1Mzk0MiwgMC4xNTgwOTksIDAuMjYwMTkxLCAwLjMzMzI0NSwgMC40NTEwMTQsIDAuNTUzMzY4LCAwLjcwMDM1MiIsIFwKLSAgICAgICAgICAiMC4wNTg1MiwgMC4xNjU0MjcsIDAuMjY3NDgzLCAwLjM0MDM2LCAwLjQ1Nzk3LCAwLjU2MDY2NCwgMC43MDgxNjkiLCBcCi0gICAgICAgICAgIjAuMDY0MzY4LCAwLjE3Njk4NCwgMC4yNzkxNDEsIDAuMzUyMTg2LCAwLjQ2OTU0NSwgMC41NzI0OTEsIDAuNzE5NzY5IiwgXAotICAgICAgICAgICIwLjA2ODU2LCAwLjE4NzMwNiwgMC4yODk1OSwgMC4zNjIzODIsIDAuNDc5OTI0LCAwLjU4MjU1NSwgMC43Mjk4NTQiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTA5MTQsIDAuMjY3MTQ5LCAwLjQ4NDc4NywgMC42NDA4MywgMC44OTA3MjEsIDEuMTA4NzEsIDEuNDIxMjkiLCBcCi0gICAgICAgICAgIjAuMDUxNDU0LCAwLjI2NzIyMiwgMC40ODUxNjIsIDAuNjQxMTcxLCAwLjg5MDcxMywgMS4xMDkyMiwgMS40MjExIiwgXAotICAgICAgICAgICIwLjA1NDg2LCAwLjI2NzI0OSwgMC40ODUwOTMsIDAuNjQwODkxLCAwLjg5MDU2NSwgMS4xMDg0MiwgMS40MjE0NSIsIFwKLSAgICAgICAgICAiMC4wNjAwNzQsIDAuMjY4NTQ2LCAwLjQ4NTcyNSwgMC42NDA4ODEsIDAuODkwNzA5LCAxLjEwOTU2LCAxLjQyMDM5IiwgXAotICAgICAgICAgICIwLjA2NjA5NiwgMC4yNzExMjIsIDAuNDg2NDYyLCAwLjY0MTk2OSwgMC44OTA1NjQsIDEuMTA5MiwgMS40MjA4MiIsIFwKLSAgICAgICAgICAiMC4wNzUyNDksIDAuMjc2OTQxLCAwLjQ4OTUzNywgMC42NDM1NjksIDAuODkyMDQ2LCAxLjEwOTMyLCAxLjQyMDk3IiwgXAotICAgICAgICAgICIwLjA4Mjc2NywgMC4yODMzMzMsIDAuNDkyODQyLCAwLjY0NTA5OCwgMC44OTMzMzQsIDEuMTEwNzcsIDEuNDIwNSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0NDk5MywgMC4xNzkzNzEsIDAuMzEyNjk4LCAwLjQwNzgyNiwgMC41NjAwNywgMC42OTMwOTgsIDAuODgzMjQ2IiwgXAotICAgICAgICAgICIwLjA1MTg5NSwgMC4xODYzMDMsIDAuMzE5NjU5LCAwLjQxNDY5OSwgMC41NjY5MDksIDAuNzAwMTY1LCAwLjg5MDEwMSIsIFwKLSAgICAgICAgICAiMC4wNjEyMjQsIDAuMTk1Mjk1LCAwLjMyODUzOSwgMC40MjM2OTEsIDAuNTc1ODQzLCAwLjcwODg3MywgMC44OTkxMDkiLCBcCi0gICAgICAgICAgIjAuMDcwOCwgMC4yMDQ1NTUsIDAuMzM3ODc1LCAwLjQzMzExLCAwLjU4NTI1NCwgMC43MTgxODQsIDAuOTA4MjU0IiwgXAotICAgICAgICAgICIwLjA3OTA4MiwgMC4yMTM2MzgsIDAuMzQ2NTM3LCAwLjQ0MjAyOSwgMC41OTQ0MDksIDAuNzI3NTI4LCAwLjkxNzU0MiIsIFwKLSAgICAgICAgICAiMC4wOTA2NzcsIDAuMjI4NzA3LCAwLjM2MTY1LCAwLjQ1NjYyNCwgMC42MDg5NzcsIDAuNzQxNzUyLCAwLjkzMjQ2OSIsIFwKLSAgICAgICAgICAiMC4wOTg4NzIsIDAuMjQxOTgyLCAwLjM3NDU2NiwgMC40Njk0NzIsIDAuNjIwOTY5LCAwLjc1NDYzNCwgMC45NDQ4MzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzk2MDYsIDAuMzUzNzQ4LCAwLjYyODE5MSwgMC44MjQwNTgsIDEuMTM3NjgsIDEuNDExOTksIDEuODAzODciLCBcCi0gICAgICAgICAgIjAuMDgwMTg4LCAwLjM1Mzc2MiwgMC42MjgsIDAuODI0MDQ1LCAxLjEzNzU2LCAxLjQxMTkzLCAxLjgwMzQ5IiwgXAotICAgICAgICAgICIwLjA4NTUxMiwgMC4zNTM3NTcsIDAuNjI4MDYzLCAwLjgyNDEwMiwgMS4xMzc5NCwgMS40MTIzMywgMS44MDM5NyIsIFwKLSAgICAgICAgICAiMC4wOTI4MzEsIDAuMzU0NTU0LCAwLjYyODA3MywgMC44MjQwNTEsIDEuMTM3NjgsIDEuNDEyMzUsIDEuODAzODMiLCBcCi0gICAgICAgICAgIjAuMTAxMDgzLCAwLjM1NzI3LCAwLjYyODEwNSwgMC44MjQxODIsIDEuMTM3NzEsIDEuNDEyMSwgMS44MDM5NSIsIFwKLSAgICAgICAgICAiMC4xMTQwNSwgMC4zNjQzNjcsIDAuNjMwNzE2LCAwLjgyNDM2NywgMS4xMzc1NywgMS40MTIyMSwgMS44MDM2NSIsIFwKLSAgICAgICAgICAiMC4xMjQ3MDQsIDAuMzcyNDI0LCAwLjYzNDQ1NiwgMC44MjYzMzUsIDEuMTM3NzEsIDEuNDEyMjEsIDEuODA0MDQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjAiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDI5NDg4LCAwLjEzMDg1NSwgMC4yMzE0NDQsIDAuMzAzNTY1LCAwLjQxODU2OSwgMC41MjA5OTUsIDAuNjY2MDQiLCBcCi0gICAgICAgICAgIjAuMDM3MDk4LCAwLjEzODQwNiwgMC4yMzkyNzQsIDAuMzEwOTgyLCAwLjQyNjYyMywgMC41MjgxNTEsIDAuNjc0MzU3IiwgXAotICAgICAgICAgICIwLjA0Njk3MywgMC4xNDc5NDYsIDAuMjQ4NjgsIDAuMzIwNTI0LCAwLjQzNTcyMiwgMC41MzcxMjksIDAuNjg0MDY2IiwgXAotICAgICAgICAgICIwLjA1NTU3NSwgMC4xNTc1NTMsIDAuMjU4MjY1LCAwLjMzMDA5OCwgMC40NDU1NjcsIDAuNTQ3MjAyLCAwLjY5Mjc5NyIsIFwKLSAgICAgICAgICAiMC4wNjE3MzIsIDAuMTY3NDM4LCAwLjI2ODAzNiwgMC4zMzk4MTUsIDAuNDU1MjUsIDAuNTU2ODQsIDAuNzAzMTIxIiwgXAotICAgICAgICAgICIwLjA3MDk0OCwgMC4xODMyMTcsIDAuMjgzNTgsIDAuMzU1NDI1LCAwLjQ3MDgzMywgMC41NzI1MTMsIDAuNzE4MDQyIiwgXAotICAgICAgICAgICIwLjA3NzYyOCwgMC4xOTcxODksIDAuMjk3MzE4LCAwLjM2ODk3NiwgMC40ODM5NDQsIDAuNTg2MjYxLCAwLjczMTUzMiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1NTQxLCAwLjI2OTM3OSwgMC40ODM0NTEsIDAuNjM4MDc0LCAwLjg4NTUxNSwgMS4xMDE1MSwgMS40MTA4OCIsIFwKLSAgICAgICAgICAiMC4wNTcxODMsIDAuMjY5MzcxLCAwLjQ4MzUwMiwgMC42MzgwMzEsIDAuODg1MjM4LCAxLjEwMTMsIDEuNDEwNTIiLCBcCi0gICAgICAgICAgIjAuMDY0MjQ5LCAwLjI2OTQyMywgMC40ODM0NzgsIDAuNjM4MTAxLCAwLjg4NDk0NiwgMS4xMDA2NiwgMS40MTA2NiIsIFwKLSAgICAgICAgICAiMC4wNzI0MzQsIDAuMjcyMDM0LCAwLjQ4MzQ2MiwgMC42MzgwNjMsIDAuODg1MTQ4LCAxLjEwMTA0LCAxLjQwOTkxIiwgXAotICAgICAgICAgICIwLjA4MTIyOCwgMC4yNzY0NTksIDAuNDg0NjU3LCAwLjYzNzkzNiwgMC44ODUyOTQsIDEuMTAxMjIsIDEuNDEwNTYiLCBcCi0gICAgICAgICAgIjAuMDkyMDU1LCAwLjI4NjA2NiwgMC40ODk0ODYsIDAuNjQwNDksIDAuODg1MTksIDEuMTAxMywgMS40MDk5MSIsIFwKLSAgICAgICAgICAiMC4xMDExNTYsIDAuMjk1ODk5LCAwLjQ5NjE3NiwgMC42NDQ3MTEsIDAuODg2NzY2LCAxLjEwMTM3LCAxLjQwOTkxIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDI0NjI5LCAwLjExODg3NCwgMC4yMTI3OTUsIDAuMjc5ODMyLCAwLjM4NzExNiwgMC40ODA4MywgMC42MTQ4NzMiLCBcCi0gICAgICAgICAgIjAuMDMxMDcxLCAwLjEyNTY1OCwgMC4yMTk2NiwgMC4yODY3MTcsIDAuMzkzOTQzLCAwLjQ4Nzc4MiwgMC42MjE2OTYiLCBcCi0gICAgICAgICAgIjAuMDM4MzMxLCAwLjEzMzkxLCAwLjIyODA5NywgMC4yOTUxMjEsIDAuNDAyMjg5LCAwLjQ5NjA4NiwgMC42MzAwMzgiLCBcCi0gICAgICAgICAgIjAuMDQ0MjU2LCAwLjE0MjE0LCAwLjIzNjM5OSwgMC4zMDM0OTksIDAuNDEwNzY5LCAwLjUwNDU1OCwgMC42Mzg1NDMiLCBcCi0gICAgICAgICAgIjAuMDQ5MDcsIDAuMTUwNjUxLCAwLjI0NDcwNiwgMC4zMTE4MywgMC40MTkxMDcsIDAuNTEyOTcxLCAwLjY0Njk2IiwgXAotICAgICAgICAgICIwLjA1NTQzLCAwLjE2Mzc0OCwgMC4yNTc3NzksIDAuMzI0ODMsIDAuNDMyMzExLCAwLjUyNTk2LCAwLjY2MDIxNSIsIFwKLSAgICAgICAgICAiMC4wNjAyNzMsIDAuMTc1NDA0LCAwLjI2OTc4OSwgMC4zMzY2OSwgMC40NDQ0OSwgMC41MzgyNTIsIDAuNjcyNDkxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQ5NDU4LCAwLjI0MjI1LCAwLjQzNTU4NywgMC41NzM3MzUsIDAuNzk0OTIyLCAwLjk4ODMyNywgMS4yNjQ3OCIsIFwKLSAgICAgICAgICAiMC4wNTEyMjksIDAuMjQyMjMxLCAwLjQzNTU4MywgMC41NzM3LCAwLjc5NDc5OCwgMC45ODgzMzMsIDEuMjY0NjkiLCBcCi0gICAgICAgICAgIjAuMDU2Nzc2LCAwLjI0MjY0NSwgMC40MzU2MTIsIDAuNTczNjA5LCAwLjc5NDY4OCwgMC45ODgzNTUsIDEuMjY0NjQiLCBcCi0gICAgICAgICAgIjAuMDYzNTk2LCAwLjI0NDc5MiwgMC40MzU3ODYsIDAuNTczNzE0LCAwLjc5NDc4MiwgMC45ODgzNCwgMS4yNjQ2NSIsIFwKLSAgICAgICAgICAiMC4wNzA0NzQsIDAuMjQ4NTA3LCAwLjQzNzAwMiwgMC41NzM5ODcsIDAuNzk0NzY5LCAwLjk4ODM0MywgMS4yNjQ3IiwgXAotICAgICAgICAgICIwLjA4MDc0NiwgMC4yNTU2MjQsIDAuNDQwOTc4LCAwLjU3NjI5OSwgMC43OTUxNTQsIDAuOTg4MzY2LCAxLjI2NDY4IiwgXAotICAgICAgICAgICIwLjA4OTIzNCwgMC4yNjMyNDMsIDAuNDQ1ODY2LCAwLjU3OTkxMywgMC43OTcxMzQsIDAuOTg4ODE4LCAxLjI2NDY3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIxIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyNzYzNiwgMC4xMzAwNTcsIDAuMjMxODg3LCAwLjMwNDU3NiwgMC40MjA4ODMsIDAuNTIzNTMxLCAwLjY2OTk1MSIsIFwKLSAgICAgICAgICAiMC4wMzUxNjMsIDAuMTM3NjU2LCAwLjIzOTU1OCwgMC4zMTIxMjUsIDAuNDI4NzcxLCAwLjUzMDU3OSwgMC42NzgwODMiLCBcCi0gICAgICAgICAgIjAuMDQ0OTU4LCAwLjE0NzE3MiwgMC4yNDkxMDUsIDAuMzIxNjY5LCAwLjQzNzkwNywgMC41NDAxMzYsIDAuNjg2ODkzIiwgXAotICAgICAgICAgICIwLjA1MjY4OCwgMC4xNTY3NDMsIDAuMjU4Mjc1LCAwLjMzMTE5NywgMC40NDc2NTYsIDAuNTUwMjYyLCAwLjY5NjQxMiIsIFwKLSAgICAgICAgICAiMC4wNTg4MzEsIDAuMTY2NjEzLCAwLjI2ODMwOSwgMC4zNDA5NzUsIDAuNDU3NDM0LCAwLjU1OTI3NiwgMC43MDY4MjYiLCBcCi0gICAgICAgICAgIjAuMDY3MjQ5LCAwLjE4MjM2NiwgMC4yODM4NzYsIDAuMzU2NTMzLCAwLjQ3Mjc3MSwgMC41NzUzODIsIDAuNzIxNzU2IiwgXAotICAgICAgICAgICIwLjA3MzU4OCwgMC4xOTYzMjIsIDAuMjk3NjI5LCAwLjM3MDA1MiwgMC40ODYyNjYsIDAuNTg4ODY4LCAwLjczNTgyMSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1MzEzNSwgMC4yNjk1MTksIDAuNDg1NjU3LCAwLjY0MTI1MSwgMC44OTA5MDcsIDEuMTA5MTYsIDEuNDIwNSIsIFwKLSAgICAgICAgICAiMC4wNTUwNzUsIDAuMjY5NTQ0LCAwLjQ4NTY1NiwgMC42NDExMDMsIDAuODkwNzQ3LCAxLjEwOTY1LCAxLjQyMDgyIiwgXAotICAgICAgICAgICIwLjA2MjMzOCwgMC4yNjk2MTQsIDAuNDg1NjM3LCAwLjY0MDgyOSwgMC44OTAyNzQsIDEuMTA4NjEsIDEuNDIzIiwgXAotICAgICAgICAgICIwLjA3MTEzNywgMC4yNzIxNTcsIDAuNDg1NTE4LCAwLjY0MDY0MSwgMC44OTA1MzQsIDEuMTA5MTQsIDEuNDIzIiwgXAotICAgICAgICAgICIwLjA3OTUwOSwgMC4yNzY1OTcsIDAuNDg2NjYsIDAuNjQxODI4LCAwLjg5MDUyOSwgMS4xMDkzMywgMS40MjA4NSIsIFwKLSAgICAgICAgICAiMC4wOTAyMDIsIDAuMjg2MjY0LCAwLjQ5MTUzMiwgMC42NDQyMTUsIDAuODkwNDg3LCAxLjEwODk3LCAxLjQyMDMiLCBcCi0gICAgICAgICAgIjAuMDk5MDUzLCAwLjI5NjI0OCwgMC40OTc5OTMsIDAuNjQ4MDU5LCAwLjg5MjMwOSwgMS4xMDg3NSwgMS40MjA4MSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyMzA1MSwgMC4xMTczMTEsIDAuMjExMjc5LCAwLjI3ODI4NSwgMC4zODU1MjQsIDAuNDc5MjcyLCAwLjYxMzI2MyIsIFwKLSAgICAgICAgICAiMC4wMzA2MzYsIDAuMTI1MDc1LCAwLjIxOTA5NSwgMC4yODYxODEsIDAuMzkzMzMxLCAwLjQ4NzExLCAwLjYyMTA3NiIsIFwKLSAgICAgICAgICAiMC4wMzk3NjYsIDAuMTM0NjQ5LCAwLjIyODUyNywgMC4yOTU1NzcsIDAuNDAyOCwgMC40OTY2NDUsIDAuNjMwNTY0IiwgXAotICAgICAgICAgICIwLjA0NjUyNSwgMC4xNDQ1NTksIDAuMjM4NTExLCAwLjMwNTU2MiwgMC40MTI4MDMsIDAuNTA2NTkxLCAwLjY0MDUzNyIsIFwKLSAgICAgICAgICAiMC4wNTIzMjcsIDAuMTU0MywgMC4yNDgxMTEsIDAuMzE1MDk0LCAwLjQyMjI3MSwgMC41MTYwMzcsIDAuNjQ5OTU5IiwgXAotICAgICAgICAgICIwLjA1OTc3OCwgMC4xNzAxNDIsIDAuMjYzNzY2LCAwLjMzMDc1LCAwLjQzNzksIDAuNTMxNjY4LCAwLjY2NTUxNyIsIFwKLSAgICAgICAgICAiMC4wNjU0MDEsIDAuMTg0MzMxLCAwLjI3NzUxMywgMC4zNDQ0NDQsIDAuNDUxNjM4LCAwLjU0NTI5LCAwLjY3OTE2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQ5NDU1LCAwLjI0MjIyNCwgMC40MzU1NTYsIDAuNTczNjE5LCAwLjc5NDg5NCwgMC45ODgzLCAxLjI2NDcxIiwgXAotICAgICAgICAgICIwLjA1MjM1MywgMC4yNDIyNDYsIDAuNDM1NTU4LCAwLjU3Mzc5OCwgMC43OTQ3NjksIDAuOTg4MjMxLCAxLjI2NDY5IiwgXAotICAgICAgICAgICIwLjA2MDI5MSwgMC4yNDI3NSwgMC40MzU0ODMsIDAuNTczNjA5LCAwLjc5NDY5MSwgMC45ODgzODIsIDEuMjY0NjYiLCBcCi0gICAgICAgICAgIjAuMDY5MzgyLCAwLjI0NTg4NiwgMC40MzU3MiwgMC41NzM2MSwgMC43OTQ2ODEsIDAuOTg4MzY1LCAxLjI2NDYzIiwgXAotICAgICAgICAgICIwLjA3Nzc5LCAwLjI1MDk0MywgMC40Mzc1MTQsIDAuNTczOTgzLCAwLjc5NDY4NSwgMC45ODgxMDUsIDEuMjY0NjciLCBcCi0gICAgICAgICAgIjAuMDkwMTkzLCAwLjI2MTA4NSwgMC40NDMyMDEsIDAuNTc3MjY3LCAwLjc5NTIyNSwgMC45ODgyMTMsIDEuMjY0NjYiLCBcCi0gICAgICAgICAgIjAuMTAwMTE0LCAwLjI3MTUyMSwgMC40NDk5OTQsIDAuNTgyMDYyLCAwLjc5NzY2MywgMC45ODg2MzMsIDEuMjY0NiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyMDEzNiwgMC4wMjAxNCwgMC4wMjAxMzgsIDAuMDIwMTM4LCAwLjAyMDEzOCwgMC4wMjAxMzYsIDAuMDIwMTM3IiwgXAotICAgICAgICAgICIwLjAyMDA0MSwgMC4wMjAwODUsIDAuMDIwMDkxLCAwLjAyMDA5NCwgMC4wMjAwOTUsIDAuMDIwMDkyLCAwLjAyMDA5MiIsIFwKLSAgICAgICAgICAiMC4wMjAwMDgsIDAuMDIwMDY5LCAwLjAyMDA3OCwgMC4wMjAwODEsIDAuMDIwMDgzLCAwLjAyMDA4NSwgMC4wMjAwNzUiLCBcCi0gICAgICAgICAgIjAuMDIwMDI5LCAwLjAyMDA2OSwgMC4wMjAwNjksIDAuMDIwMDgxLCAwLjAyMDA4MywgMC4wMjAwOTIsIDAuMDIwMDgyIiwgXAotICAgICAgICAgICIwLjAyMDA4NiwgMC4wMjAwOSwgMC4wMjAwOTIsIDAuMDIwMDg2LCAwLjAyMDA5NiwgMC4wMjAwOSwgMC4wMjAwOTYiLCBcCi0gICAgICAgICAgIjAuMDIwMzEsIDAuMDIwMTczLCAwLjAyMDE0OSwgMC4wMjAxMzksIDAuMDIwMTI4LCAwLjAyMDEyNSwgMC4wMjAxMTQiLCBcCi0gICAgICAgICAgIjAuMDIwNTk4LCAwLjAyMDI5NCwgMC4wMjAyMjgsIDAuMDIwMjAzLCAwLjAyMDE3OSwgMC4wMjAxNjIsIDAuMDIwMTQ4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQ3NDYsIDAuMDA0NzY4LCAwLjAwNDc2NywgMC4wMDQ3NjksIDAuMDA0NzY5LCAwLjAwNDc2NywgMC4wMDQ3NjciLCBcCi0gICAgICAgICAgIjAuMDA0NTM0LCAwLjAwNDY2NiwgMC4wMDQ2ODgsIDAuMDA0Njk2LCAwLjAwNDcwMSwgMC4wMDQ3MDQsIDAuMDA0NzA2IiwgXAotICAgICAgICAgICIwLjAwNDQ0NywgMC4wMDQ2MSwgMC4wMDQ2NSwgMC4wMDQ2NjMsIDAuMDA0Njc1LCAwLjAwNDY4MiwgMC4wMDQ2ODYiLCBcCi0gICAgICAgICAgIjAuMDA0NDg2LCAwLjAwNDU5NiwgMC4wMDQ2MzYsIDAuMDA0NjUxLCAwLjAwNDY2NSwgMC4wMDQ2NzIsIDAuMDA0Njc4IiwgXAotICAgICAgICAgICIwLjAwNDYwOCwgMC4wMDQ2MTgsIDAuMDA0NjQ2LCAwLjAwNDY1OCwgMC4wMDQ2NzIsIDAuMDA0Njc3LCAwLjAwNDY4MyIsIFwKLSAgICAgICAgICAiMC4wMDQ5NTYsIDAuMDA0NzM3LCAwLjAwNDcxNCwgMC4wMDQ3MDgsIDAuMDA0NzA3LCAwLjAwNDcwNCwgMC4wMDQ3MDMiLCBcCi0gICAgICAgICAgIjAuMDA1Mzk0LCAwLjAwNDg5OCwgMC4wMDQ4MjEsIDAuMDA0Nzk1LCAwLjAwNDc3MSwgMC4wMDQ3NTYsIDAuMDA0NzQ1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE4MDkyLCAwLjAxODExNSwgMC4wMTgxMTcsIDAuMDE4MTE4LCAwLjAxODExNywgMC4wMTgxMTgsIDAuMDE4MTE3IiwgXAotICAgICAgICAgICIwLjAxNzk2NCwgMC4wMTgwODIsIDAuMDE4MSwgMC4wMTgxMDQsIDAuMDE4MTA4LCAwLjAxODExMSwgMC4wMTgxMTEiLCBcCi0gICAgICAgICAgIjAuMDE3ODksIDAuMDE4MDQ5LCAwLjAxODA3OCwgMC4wMTgwODgsIDAuMDE4MDk4LCAwLjAxODEsIDAuMDE4MTA1IiwgXAotICAgICAgICAgICIwLjAxNzg5NCwgMC4wMTgwMzUsIDAuMDE4MDU5LCAwLjAxODA4MSwgMC4wMTgwOTIsIDAuMDE4MDk1LCAwLjAxODEiLCBcCi0gICAgICAgICAgIjAuMDE3OTU0LCAwLjAxODA0MywgMC4wMTgwNzUsIDAuMDE4MDg1LCAwLjAxODA5MSwgMC4wMTgwOTksIDAuMDE4MTAyIiwgXAotICAgICAgICAgICIwLjAxODE3OCwgMC4wMTgxMTMsIDAuMDE4MTE5LCAwLjAxODEyMSwgMC4wMTgxMjEsIDAuMDE4MTIsIDAuMDE4MTIyIiwgXAotICAgICAgICAgICIwLjAxODQ2OCwgMC4wMTgyMzEsIDAuMDE4MTk2LCAwLjAxODE4NSwgMC4wMTgxNywgMC4wMTgxNjUsIDAuMDE4MTU1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQ3NSwgMC4wMDQ3NjksIDAuMDA0NzcxLCAwLjAwNDc3MSwgMC4wMDQ3NzEsIDAuMDA0NzcxLCAwLjAwNDc3IiwgXAotICAgICAgICAgICIwLjAwNDU0MywgMC4wMDQ2NjgsIDAuMDA0NjkxLCAwLjAwNDY5OCwgMC4wMDQ3MDQsIDAuMDA0NzA2LCAwLjAwNDcwNyIsIFwKLSAgICAgICAgICAiMC4wMDQ0OSwgMC4wMDQ2MjQsIDAuMDA0NjU4LCAwLjAwNDY3LCAwLjAwNDY4MSwgMC4wMDQ2ODUsIDAuMDA0NjkiLCBcCi0gICAgICAgICAgIjAuMDA0NTg0LCAwLjAwNDYyNSwgMC4wMDQ2NTUsIDAuMDA0NjY0LCAwLjAwNDY3NiwgMC4wMDQ2ODEsIDAuMDA0Njg2IiwgXAotICAgICAgICAgICIwLjAwNDc3NCwgMC4wMDQ2NzMsIDAuMDA0Njc0LCAwLjAwNDY4MSwgMC4wMDQ2ODcsIDAuMDA0Njg5LCAwLjAwNDY5MSIsIFwKLSAgICAgICAgICAiMC4wMDUyMDEsIDAuMDA0ODIyLCAwLjAwNDc2NSwgMC4wMDQ3NDgsIDAuMDA0NzM0LCAwLjAwNDcyOSwgMC4wMDQ3MjIiLCBcCi0gICAgICAgICAgIjAuMDA1NjYsIDAuMDA1MDA1LCAwLjAwNDg4MiwgMC4wMDQ4NDEsIDAuMDA0ODAzLCAwLjAwNDc4NCwgMC4wMDQ3NjYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTU5ODQsIDAuMDE2MDQ4LCAwLjAxNjA1NCwgMC4wMTYwNTYsIDAuMDE2MDU5LCAwLjAxNjA1NywgMC4wMTYwNTgiLCBcCi0gICAgICAgICAgIjAuMDE1ODI1LCAwLjAxNjAzMywgMC4wMTYwNjMsIDAuMDE2MDc0LCAwLjAxNjA4MSwgMC4wMTYwODYsIDAuMDE2MDg5IiwgXAotICAgICAgICAgICIwLjAxNTcxNywgMC4wMTU5ODUsIDAuMDE2MDM1LCAwLjAxNjA1MiwgMC4wMTYwOCwgMC4wMTYwNzUsIDAuMDE2MDgxIiwgXAotICAgICAgICAgICIwLjAxNTcwOCwgMC4wMTU5NTMsIDAuMDE2MDE1LCAwLjAxNjAzNywgMC4wMTYwNTYsIDAuMDE2MDczLCAwLjAxNjA3NiIsIFwKLSAgICAgICAgICAiMC4wMTU3NjcsIDAuMDE1OTUsIDAuMDE2MDE1LCAwLjAxNjAzMywgMC4wMTYwNDgsIDAuMDE2MDYyLCAwLjAxNjA3NCIsIFwKLSAgICAgICAgICAiMC4wMTU5ODksIDAuMDE2MDAyLCAwLjAxNjA0MywgMC4wMTYwNiwgMC4wMTYwNzEsIDAuMDE2MDgsIDAuMDE2MDkxIiwgXAotICAgICAgICAgICIwLjAxNjI2OCwgMC4wMTYwOTQsIDAuMDE2MSwgMC4wMTYxMDgsIDAuMDE2MTExLCAwLjAxNjExMywgMC4wMTYxMTQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDc1NCwgMC4wMDQ3ODEsIDAuMDA0Nzg0LCAwLjAwNDc4NywgMC4wMDQ3ODQsIDAuMDA0Nzg0LCAwLjAwNDc4NSIsIFwKLSAgICAgICAgICAiMC4wMDQ1OCwgMC4wMDQ2ODYsIDAuMDA0NzA2LCAwLjAwNDcxMiwgMC4wMDQ3MTcsIDAuMDA0NzIsIDAuMDA0NzIyIiwgXAotICAgICAgICAgICIwLjAwNDcyMywgMC4wMDQ3MDEsIDAuMDA0NzEsIDAuMDA0NzE0LCAwLjAwNDcxNywgMC4wMDQ3MTgsIDAuMDA0NzE5IiwgXAotICAgICAgICAgICIwLjAwNDg3OCwgMC4wMDQ3MzksIDAuMDA0NzI3LCAwLjAwNDcyNiwgMC4wMDQ3MjQsIDAuMDA0NzIzLCAwLjAwNDcyMSIsIFwKLSAgICAgICAgICAiMC4wMDUyNzUsIDAuMDA0ODgzLCAwLjAwNDgxNSwgMC4wMDQ4MDIsIDAuMDA0Nzc5LCAwLjAwNDc2OCwgMC4wMDQ3NTYiLCBcCi0gICAgICAgICAgIjAuMDA1OTc4LCAwLjAwNTE2NCwgMC4wMDQ5OTQsIDAuMDA0OTQ3LCAwLjAwNDg5MiwgMC4wMDQ4NTksIDAuMDA0ODMiLCBcCi0gICAgICAgICAgIjAuMDA2NjQzLCAwLjAwNTQ0MywgMC4wMDUxOTYsIDAuMDA1MDk4LCAwLjAwNTAxNSwgMC4wMDQ5NzEsIDAuMDA0OTIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTQ0NjUsIDAuMDE0NSwgMC4wMTQ1MDIsIDAuMDE0NTA1LCAwLjAxNDUwNCwgMC4wMTQ1MDIsIDAuMDE0NTAzIiwgXAotICAgICAgICAgICIwLjAxNDM5NiwgMC4wMTQ0NTksIDAuMDE0NDY5LCAwLjAxNDQ3MywgMC4wMTQ0NzcsIDAuMDE0NDc2LCAwLjAxNDQ3OCIsIFwKLSAgICAgICAgICAiMC4wMTQ2MzMsIDAuMDE0NTE1LCAwLjAxNDUwMSwgMC4wMTQ0OTUsIDAuMDE0NDkyLCAwLjAxNDQ4OSwgMC4wMTQ0ODYiLCBcCi0gICAgICAgICAgIjAuMDE0ODUzLCAwLjAxNDYwNSwgMC4wMTQ1NjIsIDAuMDE0NTQzLCAwLjAxNDUyNSwgMC4wMTQ1MTYsIDAuMDE0NTA4IiwgXAotICAgICAgICAgICIwLjAxNTI5NCwgMC4wMTQ3MzIsIDAuMDE0NjM2LCAwLjAxNDYxLCAwLjAxNDU3OCwgMC4wMTQ1NTgsIDAuMDE0NTQxIiwgXAotICAgICAgICAgICIwLjAxNTgyOCwgMC4wMTUwMDIsIDAuMDE0ODI3LCAwLjAxNDc1OCwgMC4wMTQ3LCAwLjAxNDY2MywgMC4wMTQ2MjQiLCBcCi0gICAgICAgICAgIjAuMDE2NTEzLCAwLjAxNTMxNSwgMC4wMTUwNCwgMC4wMTQ5MjgsIDAuMDE0ODIxLCAwLjAxNDc3NCwgMC4wMTQ3MTgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDg3MywgMC4wMDA5OTIsIDAuMDAxMDA1LCAwLjAwMTAwOSwgMC4wMDEwMTIsIDAuMDAxMDE0LCAwLjAwMTAxNSIsIFwKLSAgICAgICAgICAiMC4wMDA2NTcsIDAuMDAwOTk2LCAwLjAwMTA0OSwgMC4wMDEwNjUsIDAuMDAxMDc5LCAwLjAwMTA4NywgMC4wMDEwOTQiLCBcCi0gICAgICAgICAgIjAuMDAwNjM0LCAwLjAwMDk1LCAwLjAwMTAyNSwgMC4wMDEwNDksIDAuMDAxMDcyLCAwLjAwMTA4MywgMC4wMDEwOTQiLCBcCi0gICAgICAgICAgIjAuMDAwNzksIDAuMDAwOTUyLCAwLjAwMTAyNCwgMC4wMDEwNDgsIDAuMDAxMDcyLCAwLjAwMTA4NCwgMC4wMDEwOTYiLCBcCi0gICAgICAgICAgIjAuMDAxMDUxLCAwLjAwMDk5OCwgMC4wMDEwNTEsIDAuMDAxMDY5LCAwLjAwMTA4NywgMC4wMDEwOTcsIDAuMDAxMTA3IiwgXAotICAgICAgICAgICIwLjAwMTY4NywgMC4wMDExNTUsIDAuMDAxMTQxLCAwLjAwMTEzOCwgMC4wMDExMzksIDAuMDAxMTM5LCAwLjAwMTE0IiwgXAotICAgICAgICAgICIwLjAwMjMzNSwgMC4wMDEzNjcsIDAuMDAxMjc2LCAwLjAwMTI0NCwgMC4wMDEyMjEsIDAuMDAxMjA3LCAwLjAwMTE5NSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIxIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMjQyMiwgMC4wMTI1MDgsIDAuMDEyNTE3LCAwLjAxMjUxOSwgMC4wMTI1MiwgMC4wMTI1MjEsIDAuMDEyNTIxIiwgXAotICAgICAgICAgICIwLjAxMjMwMiwgMC4wMTI0NzIsIDAuMDEyNTAyLCAwLjAxMjUxMywgMC4wMTI1MjIsIDAuMDEyNTI0LCAwLjAxMjUyOCIsIFwKLSAgICAgICAgICAiMC4wMTI1MDgsIDAuMDEyNTAzLCAwLjAxMjUxOCwgMC4wMTI1MjMsIDAuMDEyNTI2LCAwLjAxMjUzMSwgMC4wMTI1MzEiLCBcCi0gICAgICAgICAgIjAuMDEyNzU3LCAwLjAxMjU2NSwgMC4wMTI1NTUsIDAuMDEyNTU1LCAwLjAxMjU1MiwgMC4wMTI1NSwgMC4wMTI1NDciLCBcCi0gICAgICAgICAgIjAuMDEzMTE2LCAwLjAxMjY2OCwgMC4wMTI2MjgsIDAuMDEyNjExLCAwLjAxMjU5MSwgMC4wMTI1ODUsIDAuMDEyNTcyIiwgXAotICAgICAgICAgICIwLjAxMzYzNCwgMC4wMTI5MSwgMC4wMTI3ODQsIDAuMDEyNzM1LCAwLjAxMjcwMiwgMC4wMTI2NzYsIDAuMDEyNjQ2IiwgXAotICAgICAgICAgICIwLjAxNDIyMSwgMC4wMTMxOTgsIDAuMDEyOTc1LCAwLjAxMjg4OCwgMC4wMTI4MjMsIDAuMDEyNzc4LCAwLjAxMjcxMiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwODY2LCAwLjAwMDk5NiwgMC4wMDEwMSwgMC4wMDEwMTQsIDAuMDAxMDE4LCAwLjAwMTAxOSwgMC4wMDEwMiIsIFwKLSAgICAgICAgICAiMC4wMDA3NDMsIDAuMDAxMDE5LCAwLjAwMTA2NCwgMC4wMDEwNzgsIDAuMDAxMDkxLCAwLjAwMTA5OCwgMC4wMDExMDQiLCBcCi0gICAgICAgICAgIjAuMDAwODQsIDAuMDAxMDM2LCAwLjAwMTA4MiwgMC4wMDEwOTQsIDAuMDAxMTA2LCAwLjAwMTExMywgMC4wMDExMTgiLCBcCi0gICAgICAgICAgIjAuMDAxMTkzLCAwLjAwMTA3MiwgMC4wMDExMDMsIDAuMDAxMTE0LCAwLjAwMTEyMywgMC4wMDExMjgsIDAuMDAxMTMyIiwgXAotICAgICAgICAgICIwLjAwMTU5NSwgMC4wMDEyMTEsIDAuMDAxMTksIDAuMDAxMTgyLCAwLjAwMTE3MywgMC4wMDExNjgsIDAuMDAxMTY0IiwgXAotICAgICAgICAgICIwLjAwMjQ0MSwgMC4wMDE0NjEsIDAuMDAxMzUsIDAuMDAxMzA4LCAwLjAwMTI4MywgMC4wMDEyNiwgMC4wMDEyMzgiLCBcCi0gICAgICAgICAgIjAuMDAzMjI2LCAwLjAwMTc3MywgMC4wMDE1NTYsIDAuMDAxNDcyLCAwLjAwMTQxNCwgMC4wMDEzNzMsIDAuMDAxMzI5Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogQU9JMzJYTCAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChBT0kzMlhMKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMjM2OTg7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2MDc2NDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MDY0NDc7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjA3NjQ7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjk3LCAwLjAwMDI5NiwgMC4wMDAyOTYsIDAuMDAwMjk2LCAwLjAwMDI5NiwgMC4wMDAyOTYsIDAuMDAwMjk2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjk3LCAwLjAwMDI5NywgMC4wMDAyOTcsIDAuMDAwMjk3LCAwLjAwMDI5NywgMC4wMDAyOTYsIDAuMDAwMjk3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihBMSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjQ2MjIzOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDY0NDgyNDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2NDYyMjM7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjk3LCAwLjAwMDI5NiwgMC4wMDAyOTYsIDAuMDAwMjk2LCAwLjAwMDI5NiwgMC4wMDAyOTYsIDAuMDAwMjk2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjk3LCAwLjAwMDI5NywgMC4wMDAyOTcsIDAuMDAwMjk3LCAwLjAwMDI5NywgMC4wMDAyOTcsIDAuMDAwMjk3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihBMikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjQ1ODg2OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDY0MzYyNjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2NDU4ODY7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMTE5LCAwLjAwMDExOCwgMC4wMDAxMTgsIDAuMDAwMTE4LCAwLjAwMDExOCwgMC4wMDAxMTksIDAuMDAwMTE5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzM3LCAwLjAwMDMzOCwgMC4wMDAzMzcsIDAuMDAwMzM3LCAwLjAwMDMzOCwgMC4wMDAzMzgsIDAuMDAwMzM4Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjYwMDIyOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDY2MDAyMjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2NTkyNzY7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjk3LCAwLjAwMDI5NiwgMC4wMDAyOTYsIDAuMDAwMjk2LCAwLjAwMDI5NiwgMC4wMDAyOTYsIDAuMDAwMjk2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzE2LCAwLjAwMDMwNSwgMC4wMDAzMDIsIDAuMDAwMjk4LCAwLjAwMDI5OCwgMC4wMDAyOTgsIDAuMDAwMjk4Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCMSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjY1Nzc2OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDY2NTc1NzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2NjU3NzY7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMTQ2LCAwLjAwMDE0NiwgMC4wMDAxNDYsIDAuMDAwMTQ2LCAwLjAwMDE0NiwgMC4wMDAxNDYsIDAuMDAwMTQ2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzM3LCAwLjAwMDMzNywgMC4wMDAzMzcsIDAuMDAwMzM3LCAwLjAwMDMzNywgMC4wMDAzMzcsIDAuMDAwMzM3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMDkwMjE5OwotICAgIGZ1bmN0aW9uIDogIighKChCMCBCMSkrKChBMCBBMSkgQTIpKSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMjIzODksIDAuMTQxNTY4LCAwLjMxNDE5OCwgMC42MDE2OTcsIDAuODg5MzgzLCAxLjU2MDUzLCAxLjk0NDE0IiwgXAotICAgICAgICAgICIwLjEyOTU3NywgMC4xNDg4NDEsIDAuMzIxNTMxLCAwLjYwODg1NSwgMC44OTcxNzMsIDEuNTY3NDYsIDEuOTUxNjMiLCBcCi0gICAgICAgICAgIjAuMTM3MDE5LCAwLjE1NjMwNSwgMC4zMjkwNTgsIDAuNjE2NDgyLCAwLjkwNDAzOSwgMS41NzUzNiwgMS45NTg4NSIsIFwKLSAgICAgICAgICAiMC4xNDQwNDMsIDAuMTYzMjYzLCAwLjMzNjE0NCwgMC42MjM1MjIsIDAuOTEwOTQ4LCAxLjU4Mjg2LCAxLjk2NzQ1IiwgXAotICAgICAgICAgICIwLjE1MDk0LCAwLjE3MDE2MywgMC4zNDI4NTUsIDAuNjMwNjM1LCAwLjkxODA2NSwgMS41ODg2OCwgMS45NzM3NiIsIFwKLSAgICAgICAgICAiMC4xNjIzMjEsIDAuMTgxMzYyLCAwLjM1NDE3MiwgMC42NDIxMzMsIDAuOTI5MjQxLCAxLjYwMDAzLCAxLjk4NTAzIiwgXAotICAgICAgICAgICIwLjE3MTgsIDAuMTkxMTY4LCAwLjM2MzY1MiwgMC42NTE3NSwgMC45MzkxMDMsIDEuNjEwMDgsIDEuOTkzMTgiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjMzNTI2LCAwLjI3NDI2NSwgMC42NDA3NTksIDEuMjUxNzYsIDEuODYyMzksIDMuMjg3MiwgNC4xMDI5MiIsIFwKLSAgICAgICAgICAiMC4yMzM1NzMsIDAuMjc0MjY1LCAwLjY0MTA1NSwgMS4yNTE3LCAxLjg2Mjg5LCAzLjI4ODMyLCA0LjEwMTgyIiwgXAotICAgICAgICAgICIwLjIzMzc4MiwgMC4yNzQzNTIsIDAuNjQwOTU3LCAxLjI1MTk2LCAxLjg2MzMsIDMuMjg3MjksIDQuMTAxNTEiLCBcCi0gICAgICAgICAgIjAuMjM1MzY4LCAwLjI3NTUyMSwgMC42NDA5NDQsIDEuMjUxNDksIDEuODYyMDgsIDMuMjg2OSwgNC4xMDE5OCIsIFwKLSAgICAgICAgICAiMC4yMzgzMzEsIDAuMjc4MDY3LCAwLjY0MTM5MiwgMS4yNTE1MiwgMS44NjE4MywgMy4yOSwgNC4xMDEwNyIsIFwKLSAgICAgICAgICAiMC4yNDQ3ODcsIDAuMjgzNjEsIDAuNjQyNTA2LCAxLjI1MTgxLCAxLjg2MTgxLCAzLjI4NTI5LCA0LjEwMTA2IiwgXAotICAgICAgICAgICIwLjI1MTQ1MSwgMC4yODk5ODUsIDAuNjQ1MzM4LCAxLjI1MTQ4LCAxLjg2MTg0LCAzLjI4NTkzLCA0LjEwMjI2Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE1NDgxNiwgMC4xNzkwNiwgMC4zOTY2NzQsIDAuNzU4OTk4LCAxLjEyMDE0LCAxLjk2NDkyLCAyLjQ0ODA1IiwgXAotICAgICAgICAgICIwLjE1OTk0MywgMC4xODQxNDksIDAuNDAxNzAxLCAwLjc2Mzk2MSwgMS4xMjYsIDEuOTcwNjUsIDIuNDUzMzgiLCBcCi0gICAgICAgICAgIjAuMTY1NTgxLCAwLjE4OTg0OSwgMC40MDc0ODcsIDAuNzY5ODk1LCAxLjEzMjAyLCAxLjk3NzczLCAyLjQ1ODY5IiwgXAotICAgICAgICAgICIwLjE3MTE4MywgMC4xOTU0ODksIDAuNDEzMDY1LCAwLjc3NTU3NywgMS4xMzc3MiwgMS45ODI5MiwgMi40NjQzIiwgXAotICAgICAgICAgICIwLjE3Njk5NSwgMC4yMDEwOTYsIDAuNDE4NzI0LCAwLjc4MTAzMywgMS4xNDI1NywgMS45ODg0NCwgMi40NjkwNCIsIFwKLSAgICAgICAgICAiMC4xODYxNDksIDAuMjEwMzQ0LCAwLjQyODAyNiwgMC43ODk5NDUsIDEuMTUxOTIsIDEuOTk4MzksIDIuNDc5MDgiLCBcCi0gICAgICAgICAgIjAuMTk0MzMyLCAwLjIxODQ3NCwgMC40MzU5ODQsIDAuNzk3OTQsIDEuMTYwMzQsIDIuMDA0MTUsIDIuNDg3OTgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjkzNjkyLCAwLjM0MzQ2MiwgMC43OTExNywgMS41MzY0MSwgMi4yODEyNCwgNC4wMTk2LCA1LjAxMjY1IiwgXAotICAgICAgICAgICIwLjI5MzY0NCwgMC4zNDM0MDEsIDAuNzkwOTI5LCAxLjUzNjUyLCAyLjI4MTIxLCA0LjAxOTQ3LCA1LjAxMjcxIiwgXAotICAgICAgICAgICIwLjI5Mzg2OSwgMC4zNDM0OCwgMC43OTEyNTEsIDEuNTM2NTgsIDIuMjgxMjMsIDQuMDE5NzUsIDUuMDEzMTEiLCBcCi0gICAgICAgICAgIjAuMjk0OTg1LCAwLjM0NDI1OSwgMC43OTA5NzgsIDEuNTM2NDksIDIuMjgxNTksIDQuMDE5NzksIDUuMDEyODIiLCBcCi0gICAgICAgICAgIjAuMjk3MDM2LCAwLjM0NTg2MiwgMC43OTA5NTIsIDEuNTM2NDIsIDIuMjgxNjUsIDQuMDE5MzgsIDUuMDE2OTQiLCBcCi0gICAgICAgICAgIjAuMzAxNjI4LCAwLjM0OTk0MywgMC43OTE5NTcsIDEuNTM2NDMsIDIuMjgxNjMsIDQuMDE5ODQsIDUuMDEzMDgiLCBcCi0gICAgICAgICAgIjAuMzA3MDQ4LCAwLjM1NDYzMiwgMC43OTMyNzEsIDEuNTM2MzksIDIuMjgxMSwgNC4wMTk5MiwgNS4wMTI2NCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTIwMTU4LCAwLjEzOTM0MywgMC4zMTE4MywgMC41OTkzNjYsIDAuODg2NzE5LCAxLjU1ODEzLCAxLjk0MTk2IiwgXAotICAgICAgICAgICIwLjEyNzQzOCwgMC4xNDY2MTYsIDAuMzE5MTkyLCAwLjYwNzM4NCwgMC44OTQxNDgsIDEuNTY1MjYsIDEuOTQ5MzYiLCBcCi0gICAgICAgICAgIjAuMTM0ODA2LCAwLjE1NDAwOSwgMC4zMjY3NSwgMC42MTQxNDMsIDAuOTAxNjYsIDEuNTczMjQsIDEuOTU3MTUiLCBcCi0gICAgICAgICAgIjAuMTQxODE4LCAwLjE2MTAyLCAwLjMzMzk5NSwgMC42MjEyNzQsIDAuOTA4Njk4LCAxLjU4MDYsIDEuOTY1MiIsIFwKLSAgICAgICAgICAiMC4xNDg3MzksIDAuMTY3OTE1LCAwLjM0MDU5NiwgMC42Mjg1ODYsIDAuOTE2NTA3LCAxLjU4NjMyLCAxLjk3MjE4IiwgXAotICAgICAgICAgICIwLjE1OTkzMiwgMC4xNzg5NjMsIDAuMzUxNjc0LCAwLjYzOTczOCwgMC45MjY4NzEsIDEuNTk3NjMsIDEuOTgyNjQiLCBcCi0gICAgICAgICAgIjAuMTY5NjI0LCAwLjE4ODg0LCAwLjM2MTYyNiwgMC42NDkxMzYsIDAuOTM3NjMxLCAxLjYwOTk2LCAxLjk5MDY0Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIzMDUsIDAuMjcxMjI0LCAwLjYzNzg1LCAxLjI0OTE1LCAxLjg2MDQ0LCAzLjI4MzM2LCA0LjA5OTc2IiwgXAotICAgICAgICAgICIwLjIzMDQ4OCwgMC4yNzEyNzQsIDAuNjM3NjU0LCAxLjI0ODc5LCAxLjg2MDA2LCAzLjI4NDkyLCA0LjA5Nzc0IiwgXAotICAgICAgICAgICIwLjIzMDg4NiwgMC4yNzEzMDgsIDAuNjM3NzgyLCAxLjI0ODg5LCAxLjg2MDU4LCAzLjI4NTI4LCA0LjA5Nzg1IiwgXAotICAgICAgICAgICIwLjIzMjM5MiwgMC4yNzI3NjcsIDAuNjM3OTE1LCAxLjI0Nzk4LCAxLjg1ODA3LCAzLjI4MzUsIDQuMDk3OTMiLCBcCi0gICAgICAgICAgIjAuMjM1NDI1LCAwLjI3NDk3NiwgMC42Mzc4MTMsIDEuMjQ4MTYsIDEuODU5MjQsIDMuMjg2ODMsIDQuMDk3OTMiLCBcCi0gICAgICAgICAgIjAuMjQxOTk4LCAwLjI4MDgyMywgMC42MzkzODIsIDEuMjQ4MTUsIDEuODU4MDcsIDMuMjgyMDksIDQuMDk3NzIiLCBcCi0gICAgICAgICAgIjAuMjQ4ODQxLCAwLjI4NzIsIDAuNjQyNDU3LCAxLjI0ODQ1LCAxLjg1ODY1LCAzLjI4NTExLCA0LjA5NTgiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTUzMjI1LCAwLjE3NzUwOSwgMC4zOTUwNzQsIDAuNzU3Mjg4LCAxLjExODk0LCAxLjk2MjgxLCAyLjQ0Njc2IiwgXAotICAgICAgICAgICIwLjE1OTQ5LCAwLjE4Mzc0NywgMC40MDEwNjIsIDAuNzYzMSwgMS4xMjQ3OSwgMS45Njg4OCwgMi40NTI0NSIsIFwKLSAgICAgICAgICAiMC4xNjczMiwgMC4xOTE1NTQsIDAuNDA5NDUzLCAwLjc3MTIwMywgMS4xMzM4LCAxLjk3NzcsIDIuNDYwODIiLCBcCi0gICAgICAgICAgIjAuMTc1MTk5LCAwLjE5OTQzNCwgMC40MTY5OTksIDAuNzc4OTQzLCAxLjE0MTQ1LCAxLjk4NTg2LCAyLjQ2ODY4IiwgXAotICAgICAgICAgICIwLjE4MzEzLCAwLjIwNzIxNiwgMC40MjUwOCwgMC43ODcwMTEsIDEuMTQ5MDYsIDEuOTk0NDYsIDIuNDc1NTQiLCBcCi0gICAgICAgICAgIjAuMTk1OTY0LCAwLjIyMDEzNCwgMC40Mzc2NjUsIDAuODAwMDQyLCAxLjE2MjAxLCAyLjAwNTc3LCAyLjQ4OTg3IiwgXAotICAgICAgICAgICIwLjIwNzQwNiwgMC4yMzE3MzIsIDAuNDQ4OTI1LCAwLjgxMDk0NiwgMS4xNzMxMywgMi4wMTcwMywgMi41MDA4NiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yOTM2OTUsIDAuMzQzNDQ3LCAwLjc5MDgwNiwgMS41MzY2MywgMi4yODEyNSwgNC4wMTk0NCwgNS4wMTM1MyIsIFwKLSAgICAgICAgICAiMC4yOTM2NSwgMC4zNDMzODksIDAuNzkwOTQ5LCAxLjUzNjMyLCAyLjI4MTA3LCA0LjAyMTkxLCA1LjAxMzU5IiwgXAotICAgICAgICAgICIwLjI5MzgyNywgMC4zNDM0NzYsIDAuNzkxMTc1LCAxLjUzNjM3LCAyLjI4MTQ2LCA0LjAxOTU2LCA1LjAxMzE0IiwgXAotICAgICAgICAgICIwLjI5NTIyNiwgMC4zNDQyODgsIDAuNzkxMTUxLCAxLjUzNjMxLCAyLjI4MTMxLCA0LjAxOTQ3LCA1LjAxMjczIiwgXAotICAgICAgICAgICIwLjI5ODA5MSwgMC4zNDY1MTgsIDAuNzkwOTM5LCAxLjUzNjQxLCAyLjI4MTQ3LCA0LjAxOTM2LCA1LjAxMzQ5IiwgXAotICAgICAgICAgICIwLjMwNDU3NywgMC4zNTIwNzQsIDAuNzkxNjM4LCAxLjUzNjE0LCAyLjI4MTcsIDQuMDE5NywgNS4wMTMxNyIsIFwKLSAgICAgICAgICAiMC4zMTE0NDUsIDAuMzU4NDE4LCAwLjc5MzI5LCAxLjUzNjUyLCAyLjI4MTIsIDQuMDE5NDMsIDUuMDEzMjQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTIiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExNzYzMiwgMC4xMzY3OTgsIDAuMzA5MjQ2LCAwLjU5Njc1NCwgMC44ODQwOTYsIDEuNTU3MjYsIDEuOTM5MSIsIFwKLSAgICAgICAgICAiMC4xMjQ5NTMsIDAuMTQ0MTExLCAwLjMxNjY2MSwgMC42MDQ0OTYsIDAuODkyOTA2LCAxLjU2NDczLCAxLjk0NjQ3IiwgXAotICAgICAgICAgICIwLjEzMjI2NywgMC4xNTE0NiwgMC4zMjQxMDksIDAuNjExNTEsIDAuODk5ODQ4LCAxLjU3MDY0LCAxLjk1NTMzIiwgXAotICAgICAgICAgICIwLjEzOTIzNSwgMC4xNTg0MDgsIDAuMzMxNDk5LCAwLjYxODc2OSwgMC45MDYxODIsIDEuNTc4MTEsIDEuOTYyNjciLCBcCi0gICAgICAgICAgIjAuMTQ2MSwgMC4xNjUyOTUsIDAuMzM4MDA4LCAwLjYyNTczNywgMC45MTMzMjUsIDEuNTgzOSwgMS45Njg5NyIsIFwKLSAgICAgICAgICAiMC4xNTczMjEsIDAuMTc2NDU4LCAwLjM0OTIxOSwgMC42MzczNDUsIDAuOTI0NDgxLCAxLjU5NTI0LCAxLjk4MDI0IiwgXAotICAgICAgICAgICIwLjE2Njc1OSwgMC4xODYyMTcsIDAuMzU4Nzk2LCAwLjY0Njc4LCAwLjkzNDMwNiwgMS42MDUyOCwgMS45ODg0Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIyNzExNywgMC4yNjc4MTEsIDAuNjM0MjE0LCAxLjI0NTYsIDEuODU2NDksIDMuMjgxNjMsIDQuMDkyMjIiLCBcCi0gICAgICAgICAgIjAuMjI3MDcxLCAwLjI2Nzg0OCwgMC42MzQwNjYsIDEuMjQ0NDksIDEuODU2MDQsIDMuMjg2ODEsIDQuMDkyMDkiLCBcCi0gICAgICAgICAgIjAuMjI3NDQsIDAuMjY3OTk4LCAwLjYzNDQzLCAxLjI0NTE1LCAxLjg1NTA5LCAzLjI3OTczLCA0LjA5MzkxIiwgXAotICAgICAgICAgICIwLjIyOTA3NCwgMC4yNjkyNTUsIDAuNjM0MzUyLCAxLjI0NDQsIDEuODU0MzMsIDMuMjc5NTIsIDQuMDkzOTgiLCBcCi0gICAgICAgICAgIjAuMjMyMDQyLCAwLjI3MTc3NCwgMC42MzQxODUsIDEuMjQ0NCwgMS44NTQ4NCwgMy4yODI5OSwgNC4wOTM2NyIsIFwKLSAgICAgICAgICAiMC4yMzg2NywgMC4yNzc0NzQsIDAuNjM1ODM0LCAxLjI0NDQ0LCAxLjg1NDMzLCAzLjI3ODI1LCA0LjA5MzY2IiwgXAotICAgICAgICAgICIwLjI0NTUzNiwgMC4yODM5NTksIDAuNjM4Nzk1LCAxLjI0NDg0LCAxLjg1NDMxLCAzLjI3ODM0LCA0LjA5NTYyIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE0OTk1OCwgMC4xNzQxNywgMC4zOTE1MTEsIDAuNzUzNTEyLCAxLjExNTgsIDEuOTYwNSwgMi40NDE4NiIsIFwKLSAgICAgICAgICAiMC4xNTY4MTQsIDAuMTgxMDk0LCAwLjM5ODQ3OCwgMC43NjA5OTgsIDEuMTIyMzIsIDEuOTY2NzIsIDIuNDUwNDMiLCBcCi0gICAgICAgICAgIjAuMTY1NzIyLCAwLjE4OTg3LCAwLjQwNzMyMywgMC43NjkyMjQsIDEuMTMxMTEsIDEuOTc1MzksIDIuNDU4ODQiLCBcCi0gICAgICAgICAgIjAuMTc0NjUxLCAwLjE5ODg4NSwgMC40MTYxNzIsIDAuNzc4MDQ4LCAxLjEzOTg5LCAxLjk4NDg0LCAyLjQ2ODA0IiwgXAotICAgICAgICAgICIwLjE4Mzc1NiwgMC4yMDc5MDksIDAuNDI1MDIxLCAwLjc4Njg5LCAxLjE0OTMyLCAxLjk5Mzk5LCAyLjQ3NjkiLCBcCi0gICAgICAgICAgIjAuMTk4NjcyLCAwLjIyMjY0OSwgMC40MzkzOTQsIDAuODAxMTE5LCAxLjE2MjcsIDIuMDA3MDEsIDIuNDkxMDEiLCBcCi0gICAgICAgICAgIjAuMjExOTI4LCAwLjIzNTg2MywgMC40NTIyMDUsIDAuODEzNjI4LCAxLjE3NTE4LCAyLjAxOTQ1LCAyLjUwMTc2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI5MzY3NywgMC4zNDM0NTMsIDAuNzkwOTIxLCAxLjUzNjE3LCAyLjI4MTY1LCA0LjAxOTM4LCA1LjAxMjgxIiwgXAotICAgICAgICAgICIwLjI5MzY3MSwgMC4zNDMzOTcsIDAuNzkxMTgzLCAxLjUzNjY0LCAyLjI4MTM5LCA0LjAxOTUsIDUuMDEzMDYiLCBcCi0gICAgICAgICAgIjAuMjkzNzEsIDAuMzQzNDYzLCAwLjc5MTE0LCAxLjUzNjIyLCAyLjI4MTM0LCA0LjAxOTk0LCA1LjAxMzQ3IiwgXAotICAgICAgICAgICIwLjI5NTY5MiwgMC4zNDQ0NjUsIDAuNzkxMTI1LCAxLjUzNjM2LCAyLjI4MTAzLCA0LjAyMDAxLCA1LjAxMzE0IiwgXAotICAgICAgICAgICIwLjI5OTUxMSwgMC4zNDc1MjksIDAuNzkxMTUxLCAxLjUzNjM4LCAyLjI4MTYzLCA0LjAxOTMzLCA1LjAxMzA4IiwgXAotICAgICAgICAgICIwLjMwODE0OSwgMC4zNTQ3ODcsIDAuNzkxNDczLCAxLjUzNjUxLCAyLjI4MTU5LCA0LjAxOTQxLCA1LjAxMjczIiwgXAotICAgICAgICAgICIwLjMxNzA2OSwgMC4zNjMzMywgMC43OTM5NSwgMS41MzY1NiwgMi4yODExMSwgNC4wMjE2OSwgNS4wMTI2OSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTEyOTM1LCAwLjEzMjExOSwgMC4zMDQ3MzcsIDAuNTkyMTg3LCAwLjg4MDQ5NiwgMS41NTE1NSwgMS45MzM0OCIsIFwKLSAgICAgICAgICAiMC4xMjAyNzgsIDAuMTM5NDk2LCAwLjMxMjEwMSwgMC41OTk2MTUsIDAuODg3NzkzLCAxLjU1OTE5LCAxLjk0MTQ0IiwgXAotICAgICAgICAgICIwLjEyOTU4MSwgMC4xNDg3ODQsIDAuMzIxMzE5LCAwLjYwOTE5MSwgMC44OTcyNzksIDEuNTY4MzcsIDEuOTUwMTciLCBcCi0gICAgICAgICAgIjAuMTM5MTE4LCAwLjE1ODI4NiwgMC4zMzA5OTEsIDAuNjE4NjUzLCAwLjkwNTc3OSwgMS41Nzc0MywgMS45NjA1OCIsIFwKLSAgICAgICAgICAiMC4xNDg2OTYsIDAuMTY3ODQxLCAwLjM0MDIwMywgMC42Mjc2NzUsIDAuOTE1MzExLCAxLjU4NzQ0LCAxLjk3MTExIiwgXAotICAgICAgICAgICIwLjE2NDMwNiwgMC4xODMyNTcsIDAuMzU1Mzk5LCAwLjY0MjY5MywgMC45MzAyMzMsIDEuNjAwNTIsIDEuOTg1MDkiLCBcCi0gICAgICAgICAgIjAuMTc4MDg5LCAwLjE5Njk0MSwgMC4zNjg2MDgsIDAuNjUzMjY3LCAwLjk0MzQxLCAxLjYxNTI4LCAxLjk5NjU3Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIzMzU4OSwgMC4yNzQzNCwgMC42NDEyNjksIDEuMjUxODksIDEuODYyODcsIDMuMjg3NzIsIDQuMTAyMDMiLCBcCi0gICAgICAgICAgIjAuMjMzNDIxLCAwLjI3NDI0LCAwLjY0MTA2MSwgMS4yNTI0MSwgMS44NjI0OCwgMy4yODY2NywgNC4xMDAxNCIsIFwKLSAgICAgICAgICAiMC4yMzQwMjgsIDAuMjc0MTk5LCAwLjY0MTQwNywgMS4yNTE5OSwgMS44NjI5MywgMy4yODY3LCA0LjA5OTU1IiwgXAotICAgICAgICAgICIwLjIzNzQ0NiwgMC4yNzY5MTcsIDAuNjQwOTI5LCAxLjI1MTkyLCAxLjg2MjE1LCAzLjI4ODUxLCA0LjEwMTM3IiwgXAotICAgICAgICAgICIwLjI0MjYyOSwgMC4yODEzNjgsIDAuNjQxMTczLCAxLjI1MTQ1LCAxLjg2MjEzLCAzLjI4ODg2LCA0LjEwMTkiLCBcCi0gICAgICAgICAgIjAuMjUzMzg2LCAwLjI5MTAxNiwgMC42NDM3ODEsIDEuMjUxNTIsIDEuODYyMDcsIDMuMjkxMDcsIDQuMTAxODIiLCBcCi0gICAgICAgICAgIjAuMjY0MTAyLCAwLjMwMDg2MywgMC42NDc4NjgsIDEuMjUxNjcsIDEuODYyNTIsIDMuMjg3MDgsIDQuMTA1OTIiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk3Mzc3LCAwLjExNDQxMiwgMC4yNjczNTIsIDAuNTIxODA4LCAwLjc3NTY5LCAxLjM2NzcyLCAxLjcwNjUyIiwgXAotICAgICAgICAgICIwLjEwMzgzOSwgMC4xMjA4NzMsIDAuMjczODg2LCAwLjUyODQwNCwgMC43ODIzMSwgMS4zNzQ0MSwgMS43MTI2MSIsIFwKLSAgICAgICAgICAiMC4xMTE3MDIsIDAuMTI4ODI3LCAwLjI4MTg3MSwgMC41MzYzNjgsIDAuNzkwMjkyLCAxLjM4MjQxLCAxLjcyMTE2IiwgXAotICAgICAgICAgICIwLjExOTczMiwgMC4xMzY2MTUsIDAuMjg5ODMzLCAwLjU0NDQ5MSwgMC43OTg0NDYsIDEuMzkwNTksIDEuNzI4ODkiLCBcCi0gICAgICAgICAgIjAuMTI3NDQ5LCAwLjE0NDU2LCAwLjI5Nzk4NSwgMC41NTI3MTgsIDAuODA2NjE0LCAxLjM5ODY0LCAxLjczNzAzIiwgXAotICAgICAgICAgICIwLjE0MDE1NSwgMC4xNTcxMDgsIDAuMzEwNDY3LCAwLjU2NTQzNiwgMC44MTkzNzEsIDEuNDExMzcsIDEuNzQ5NzUiLCBcCi0gICAgICAgICAgIjAuMTUwMjE5LCAwLjE2ODQ4LCAwLjMyMTY4MiwgMC41NzY2MzUsIDAuODMwNzIsIDEuNDIyNzYsIDEuNzYwOTYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTk3MzMzLCAwLjIzMjA2OSwgMC41NDUwMTYsIDEuMDY2OTgsIDEuNTg4NjksIDIuODA3MjMsIDMuNTE0NTYiLCBcCi0gICAgICAgICAgIjAuMTk3MzI4LCAwLjIzMjA0OSwgMC41NDQ5MzksIDEuMDY2OTYsIDEuNTg4NzQsIDIuODA3MDYsIDMuNTAyNzEiLCBcCi0gICAgICAgICAgIjAuMTk4MzY0LCAwLjIzMjY2NSwgMC41NDQ5NjMsIDEuMDY2OTcsIDEuNTg5MDIsIDIuODA2OTMsIDMuNTAyNDMiLCBcCi0gICAgICAgICAgIjAuMjAxNTEsIDAuMjM1MDYxLCAwLjU0NDkyOCwgMS4wNjcwMSwgMS41ODkwNywgMi44MDcyOSwgMy41MDM3NyIsIFwKLSAgICAgICAgICAiMC4yMDU2OSwgMC4yMzg4MjMsIDAuNTQ1NDM1LCAxLjA2Njk4LCAxLjU4ODc5LCAyLjgwNzIzLCAzLjUwMzYxIiwgXAotICAgICAgICAgICIwLjIxNDE5LCAwLjI0NjQwOCwgMC41NDgzNzgsIDEuMDY2OTcsIDEuNTg4NTksIDIuODA2OTEsIDMuNTAzMzUiLCBcCi0gICAgICAgICAgIjAuMjIyNDU4LCAwLjI1NDM2LCAwLjU1MjM4MywgMS4wNjczMSwgMS41ODg4NSwgMi44MDcwMiwgMy41MDI0MyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTEwODA0LCAwLjEzMDA4NSwgMC4zMDI2MjEsIDAuNTkwNTE5LCAwLjg3ODM0NiwgMS41NTAzOCwgMS45MzIyNyIsIFwKLSAgICAgICAgICAiMC4xMTgyMjYsIDAuMTM3Mzg1LCAwLjMxMDA0MiwgMC41OTc1MywgMC44ODQ5MjUsIDEuNTU2NjgsIDEuOTM5MzQiLCBcCi0gICAgICAgICAgIjAuMTI3NDE3LCAwLjE0NjYwOSwgMC4zMTkxODYsIDAuNjA3MDU3LCAwLjg5NTE1MSwgMS41NjYyMywgMS45NDgwNSIsIFwKLSAgICAgICAgICAiMC4xMzY5MjUsIDAuMTU2MDc1LCAwLjMyODg0MSwgMC42MTY1MTQsIDAuOTAzNjQ0LCAxLjU3NTI0LCAxLjk1ODQxIiwgXAotICAgICAgICAgICIwLjE0NjQ2NiwgMC4xNjU2LCAwLjMzODAzNCwgMC42MjU1NTIsIDAuOTEzMTM2LCAxLjU4NTE2LCAxLjk2NzIxIiwgXAotICAgICAgICAgICIwLjE2MTk4MiwgMC4xODA5NiwgMC4zNTMxNjQsIDAuNjQwNDEsIDAuOTI4MDUyLCAxLjU5ODM0LCAxLjk4Mjg5IiwgXAotICAgICAgICAgICIwLjE3NTczOSwgMC4xOTQ1OTksIDAuMzY2MzQ2LCAwLjY1MTE2LCAwLjk0MTI4NywgMS42MTE0OCwgMS45OTQzNiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMzA0MzksIDAuMjcxMjQ0LCAwLjYzNzQ3NywgMS4yNDg1OCwgMS44NTkyMSwgMy4yODcwMywgNC4wOTc1MSIsIFwKLSAgICAgICAgICAiMC4yMzAzNDMsIDAuMjcxMTU1LCAwLjYzODE2MiwgMS4yNDgyMSwgMS44NTg0NiwgMy4yODQ4NSwgNC4wOTc5OCIsIFwKLSAgICAgICAgICAiMC4yMzA5MDMsIDAuMjcxMTQxLCAwLjYzODE0NiwgMS4yNDg1NiwgMS44NTk1MiwgMy4yODMxNiwgNC4wOTUyNCIsIFwKLSAgICAgICAgICAiMC4yMzQ0MTgsIDAuMjczODMzLCAwLjYzNzY2NiwgMS4yNDg1LCAxLjg1ODMsIDMuMjg0OTQsIDQuMDk3NzYiLCBcCi0gICAgICAgICAgIjAuMjM5Nzg1LCAwLjI3ODMyNiwgMC42Mzc5LCAxLjI0Nzk4LCAxLjg1ODQzLCAzLjI4NzQ5LCA0LjA5ODU4IiwgXAotICAgICAgICAgICIwLjI1MDYyNywgMC4yODgwOTgsIDAuNjQwNTQsIDEuMjQ4MjYsIDEuODU4NDIsIDMuMjg3NCwgNC4wOTY2MSIsIFwKLSAgICAgICAgICAiMC4yNjE0MTUsIDAuMjk4MTUsIDAuNjQ0NjY1LCAxLjI0ODI1LCAxLjg1OTAxLCAzLjI4NjU4LCA0LjEwMDUzIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5NTg3NiwgMC4xMTI4OTYsIDAuMjY1ODUsIDAuNTIwMjk2LCAwLjc3NDE3MiwgMS4zNjYyMiwgMS43MDQ2MiIsIFwKLSAgICAgICAgICAiMC4xMDMzOCwgMC4xMjA0MzMsIDAuMjczNDAxLCAwLjUyNzg2MywgMC43ODE3NzEsIDEuMzczODUsIDEuNzEyMTEiLCBcCi0gICAgICAgICAgIjAuMTEyODY0LCAwLjEyOTkwMiwgMC4yODI4MzcsIDAuNTM3Mjc0LCAwLjc5MTE3LCAxLjM4MzIyLCAxLjcyMTU5IiwgXAotICAgICAgICAgICIwLjEyMjQ1OSwgMC4xMzk0NTgsIDAuMjkyNDM5LCAwLjU0NjgzOSwgMC44MDA3MTIsIDEuMzkyNzEsIDEuNzMxMDYiLCBcCi0gICAgICAgICAgIjAuMTMyMiwgMC4xNDkyMTcsIDAuMzAxOTE2LCAwLjU1NjMzMiwgMC44MTAxNzUsIDEuNDAyMjEsIDEuNzQwNDUiLCBcCi0gICAgICAgICAgIjAuMTQ3OTM3LCAwLjE2NDg0OSwgMC4zMTcxNTksIDAuNTcxNTgyLCAwLjgyNTM4NywgMS40MTczMywgMS43NTU1OSIsIFwKLSAgICAgICAgICAiMC4xNjEzOTksIDAuMTc4NjMyLCAwLjMzMDY3MSwgMC41ODQ5MjcsIDAuODM4NzY4LCAxLjQzMDY2LCAxLjc2ODkxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE5NzMyNCwgMC4yMzIwNTQsIDAuNTQ1MDI2LCAxLjA2Njk3LCAxLjU4ODgzLCAyLjgwNzI4LCAzLjUxMzk5IiwgXAotICAgICAgICAgICIwLjE5NzI3MiwgMC4yMzIwNTUsIDAuNTQ0OTk1LCAxLjA2Njk2LCAxLjU4ODgzLCAyLjgwNzQ5LCAzLjUwMjM2IiwgXAotICAgICAgICAgICIwLjE5ODc2NywgMC4yMzI3OTMsIDAuNTQ0OTM2LCAxLjA2Njk4LCAxLjU4ODk1LCAyLjgwNjQ5LCAzLjUwMjkiLCBcCi0gICAgICAgICAgIjAuMjAzMTI5LCAwLjIzNjI4LCAwLjU0NDk2LCAxLjA2Njk4LCAxLjU4ODU3LCAyLjgwNzUxLCAzLjUwMjcxIiwgXAotICAgICAgICAgICIwLjIwOTI2MiwgMC4yNDE3MzEsIDAuNTQ1NDczLCAxLjA2Njg4LCAxLjU4ODkxLCAyLjgwNjM5LCAzLjUwMjM3IiwgXAotICAgICAgICAgICIwLjIyMDkzMSwgMC4yNTI0MDgsIDAuNTQ5MzMzLCAxLjA2Njk4LCAxLjU4ODk0LCAyLjgxMzQyLCAzLjUwMzA0IiwgXAotICAgICAgICAgICIwLjIzMjQwNCwgMC4yNjMxMDEsIDAuNTU0ODE4LCAxLjA2NzE2LCAxLjU4ODk1LCAyLjgwNjQsIDMuNTAyMzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzMzk3LCAwLjAwMzM5NywgMC4wMDMzOTcsIDAuMDAzMzk2LCAwLjAwMzM5NiwgMC4wMDMzOTQsIDAuMDAzMzkzIiwgXAotICAgICAgICAgICIwLjAwMzM4OSwgMC4wMDMzODksIDAuMDAzMzksIDAuMDAzMzksIDAuMDAzMzksIDAuMDAzMzkxLCAwLjAwMzM4OCIsIFwKLSAgICAgICAgICAiMC4wMDMzODYsIDAuMDAzMzg2LCAwLjAwMzM4OSwgMC4wMDMzODksIDAuMDAzMzg5LCAwLjAwMzM4OCwgMC4wMDMzODciLCBcCi0gICAgICAgICAgIjAuMDAzMzg3LCAwLjAwMzM4OCwgMC4wMDMzODksIDAuMDAzMzg5LCAwLjAwMzM4OSwgMC4wMDMzODgsIDAuMDAzMzg3IiwgXAotICAgICAgICAgICIwLjAwMzM5MywgMC4wMDMzOTIsIDAuMDAzMzkyLCAwLjAwMzM5MSwgMC4wMDMzOSwgMC4wMDMzODgsIDAuMDAzMzg4IiwgXAotICAgICAgICAgICIwLjAwMzQxMSwgMC4wMDM0MDksIDAuMDAzNDAxLCAwLjAwMzM5NiwgMC4wMDMzOTQsIDAuMDAzMzksIDAuMDAzMzg5IiwgXAotICAgICAgICAgICIwLjAwMzQzOCwgMC4wMDM0MzMsIDAuMDAzNDE0LCAwLjAwMzQwNCwgMC4wMDM0LCAwLjAwMzM5NCwgMC4wMDMzOTIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDA5NDYsIDAuMDAwOTQ2LCAwLjAwMDk0NiwgMC4wMDA5NDYsIDAuMDAwOTQ2LCAwLjAwMDk0NCwgMC4wMDA5NDMiLCBcCi0gICAgICAgICAgIjAuMDAwOTMsIDAuMDAwOTMyLCAwLjAwMDkzNiwgMC4wMDA5MzcsIDAuMDAwOTM3LCAwLjAwMDkzNiwgMC4wMDA5MzYiLCBcCi0gICAgICAgICAgIjAuMDAwOTIzLCAwLjAwMDkyNCwgMC4wMDA5MzEsIDAuMDAwOTM0LCAwLjAwMDkzNCwgMC4wMDA5MzQsIDAuMDAwOTM0IiwgXAotICAgICAgICAgICIwLjAwMDkyNCwgMC4wMDA5MjUsIDAuMDAwOTMxLCAwLjAwMDkzMywgMC4wMDA5MzQsIDAuMDAwOTM0LCAwLjAwMDkzMyIsIFwKLSAgICAgICAgICAiMC4wMDA5MzMsIDAuMDAwOTMzLCAwLjAwMDkzNCwgMC4wMDA5MzUsIDAuMDAwOTM1LCAwLjAwMDkzNCwgMC4wMDA5MzQiLCBcCi0gICAgICAgICAgIjAuMDAwOTY0LCAwLjAwMDk2LCAwLjAwMDk0OCwgMC4wMDA5NDIsIDAuMDAwOTQsIDAuMDAwOTM3LCAwLjAwMDkzNiIsIFwKLSAgICAgICAgICAiMC4wMDEwMDQsIDAuMDAwOTk2LCAwLjAwMDk2NywgMC4wMDA5NTMsIDAuMDAwOTQ4LCAwLjAwMDk0MiwgMC4wMDA5NCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkExIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDMwOCwgMC4wMDMwOCwgMC4wMDMwODEsIDAuMDAzMDgxLCAwLjAwMzA4LCAwLjAwMzA3OSwgMC4wMDMwNzkiLCBcCi0gICAgICAgICAgIjAuMDAzMDc0LCAwLjAwMzA3NSwgMC4wMDMwNzksIDAuMDAzMDgsIDAuMDAzMDgsIDAuMDAzMDc5LCAwLjAwMzA3OSIsIFwKLSAgICAgICAgICAiMC4wMDMwNjgsIDAuMDAzMDY5LCAwLjAwMzA3NiwgMC4wMDMwNzgsIDAuMDAzMDgsIDAuMDAzMDc5LCAwLjAwMzA3OCIsIFwKLSAgICAgICAgICAiMC4wMDMwNjcsIDAuMDAzMDY4LCAwLjAwMzA3NSwgMC4wMDMwNzgsIDAuMDAzMDc4LCAwLjAwMzA3OSwgMC4wMDMwNzgiLCBcCi0gICAgICAgICAgIjAuMDAzMDcsIDAuMDAzMDcsIDAuMDAzMDc2LCAwLjAwMzA3OSwgMC4wMDMwOCwgMC4wMDMwNzksIDAuMDAzMDc5IiwgXAotICAgICAgICAgICIwLjAwMzA4OCwgMC4wMDMwODcsIDAuMDAzMDg1LCAwLjAwMzA4MywgMC4wMDMwODMsIDAuMDAzMDgsIDAuMDAzMDgiLCBcCi0gICAgICAgICAgIjAuMDAzMTEzLCAwLjAwMzEwOSwgMC4wMDMwOTcsIDAuMDAzMDkxLCAwLjAwMzA4OCwgMC4wMDMwODQsIDAuMDAzMDgzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwOTQ2LCAwLjAwMDk0NiwgMC4wMDA5NDcsIDAuMDAwOTQ2LCAwLjAwMDk0NSwgMC4wMDA5NDQsIDAuMDAwOTQ0IiwgXAotICAgICAgICAgICIwLjAwMDkzMSwgMC4wMDA5MzIsIDAuMDAwOTM2LCAwLjAwMDkzNywgMC4wMDA5MzcsIDAuMDAwOTM2LCAwLjAwMDkzNiIsIFwKLSAgICAgICAgICAiMC4wMDA5MjUsIDAuMDAwOTI3LCAwLjAwMDkzMiwgMC4wMDA5MzQsIDAuMDAwOTM1LCAwLjAwMDkzNCwgMC4wMDA5MzQiLCBcCi0gICAgICAgICAgIjAuMDAwOTMsIDAuMDAwOTMsIDAuMDAwOTM0LCAwLjAwMDkzNCwgMC4wMDA5MzUsIDAuMDAwOTM0LCAwLjAwMDkzNCIsIFwKLSAgICAgICAgICAiMC4wMDA5NDMsIDAuMDAwOTQyLCAwLjAwMDkzOCwgMC4wMDA5MzcsIDAuMDAwOTM2LCAwLjAwMDkzNSwgMC4wMDA5MzQiLCBcCi0gICAgICAgICAgIjAuMDAwOTc5LCAwLjAwMDk3NCwgMC4wMDA5NTQsIDAuMDAwOTQ1LCAwLjAwMDk0MiwgMC4wMDA5MzgsIDAuMDAwOTM3IiwgXAotICAgICAgICAgICIwLjAwMTAyMiwgMC4wMDEwMTQsIDAuMDAwOTc2LCAwLjAwMDk1NywgMC4wMDA5NSwgMC4wMDA5NDMsIDAuMDAwOTQxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTIiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjcyNiwgMC4wMDI3MjYsIDAuMDAyNzI4LCAwLjAwMjcyOCwgMC4wMDI3MjgsIDAuMDAyNzI3LCAwLjAwMjcyNyIsIFwKLSAgICAgICAgICAiMC4wMDI3MjIsIDAuMDAyNzI0LCAwLjAwMjczLCAwLjAwMjczMiwgMC4wMDI3MzMsIDAuMDAyNzMzLCAwLjAwMjczMyIsIFwKLSAgICAgICAgICAiMC4wMDI3MTMsIDAuMDAyNzE1LCAwLjAwMjcyNiwgMC4wMDI3MzEsIDAuMDAyNzMyLCAwLjAwMjczMywgMC4wMDI3MzMiLCBcCi0gICAgICAgICAgIjAuMDAyNzA5LCAwLjAwMjcxMiwgMC4wMDI3MjQsIDAuMDAyNzMsIDAuMDAyNzMxLCAwLjAwMjczMywgMC4wMDI3MzIiLCBcCi0gICAgICAgICAgIjAuMDAyNzExLCAwLjAwMjcxNCwgMC4wMDI3MjUsIDAuMDAyNzMsIDAuMDAyNzMyLCAwLjAwMjczMywgMC4wMDI3MzMiLCBcCi0gICAgICAgICAgIjAuMDAyNzI1LCAwLjAwMjcyNSwgMC4wMDI3MzEsIDAuMDAyNzM0LCAwLjAwMjczNCwgMC4wMDI3MzUsIDAuMDAyNzM1IiwgXAotICAgICAgICAgICIwLjAwMjc0OCwgMC4wMDI3NDYsIDAuMDAyNzQyLCAwLjAwMjc0MSwgMC4wMDI3NCwgMC4wMDI3MzgsIDAuMDAyNzM3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwOTQ2LCAwLjAwMDk0NiwgMC4wMDA5NDcsIDAuMDAwOTQ3LCAwLjAwMDk0NiwgMC4wMDA5NDUsIDAuMDAwOTQ1IiwgXAotICAgICAgICAgICIwLjAwMDkzNCwgMC4wMDA5MzUsIDAuMDAwOTM3LCAwLjAwMDkzOCwgMC4wMDA5MzgsIDAuMDAwOTM3LCAwLjAwMDkzNyIsIFwKLSAgICAgICAgICAiMC4wMDA5NCwgMC4wMDA5NCwgMC4wMDA5MzksIDAuMDAwOTM4LCAwLjAwMDkzOCwgMC4wMDA5MzYsIDAuMDAwOTM1IiwgXAotICAgICAgICAgICIwLjAwMDk1NywgMC4wMDA5NTQsIDAuMDAwOTQ1LCAwLjAwMDk0MSwgMC4wMDA5NCwgMC4wMDA5MzcsIDAuMDAwOTM3IiwgXAotICAgICAgICAgICIwLjAwMDk4NSwgMC4wMDA5NzksIDAuMDAwOTU3LCAwLjAwMDk0OCwgMC4wMDA5NDQsIDAuMDAwOTQsIDAuMDAwOTM5IiwgXAotICAgICAgICAgICIwLjAwMTA0NCwgMC4wMDEwMzMsIDAuMDAwOTg2LCAwLjAwMDk2NCwgMC4wMDA5NTUsIDAuMDAwOTQ2LCAwLjAwMDk0MyIsIFwKLSAgICAgICAgICAiMC4wMDExMDQsIDAuMDAxMDg5LCAwLjAwMTAxOSwgMC4wMDA5ODIsIDAuMDAwOTY4LCAwLjAwMDk1NCwgMC4wMDA5NDkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyNDY0LCAwLjAwMjQ2NSwgMC4wMDI0NjUsIDAuMDAyNDY1LCAwLjAwMjQ2NSwgMC4wMDI0NjMsIDAuMDAyNDYzIiwgXAotICAgICAgICAgICIwLjAwMjQ2MiwgMC4wMDI0NjIsIDAuMDAyNDYzLCAwLjAwMjQ2MywgMC4wMDI0NjIsIDAuMDAyNDYxLCAwLjAwMjQ2IiwgXAotICAgICAgICAgICIwLjAwMjQ3NCwgMC4wMDI0NzMsIDAuMDAyNDY3LCAwLjAwMjQ2NSwgMC4wMDI0NjQsIDAuMDAyNDYyLCAwLjAwMjQ2MSIsIFwKLSAgICAgICAgICAiMC4wMDI0OTUsIDAuMDAyNDkxLCAwLjAwMjQ3NywgMC4wMDI0NywgMC4wMDI0NjcsIDAuMDAyNDYzLCAwLjAwMjQ2MiIsIFwKLSAgICAgICAgICAiMC4wMDI1MjQsIDAuMDAyNTE5LCAwLjAwMjQ5MiwgMC4wMDI0NzcsIDAuMDAyNDcyLCAwLjAwMjQ2NiwgMC4wMDI0NjQiLCBcCi0gICAgICAgICAgIjAuMDAyNTg4LCAwLjAwMjU3MywgMC4wMDI1MjIsIDAuMDAyNDk3LCAwLjAwMjQ4NCwgMC4wMDI0NzMsIDAuMDAyNDciLCBcCi0gICAgICAgICAgIjAuMDAyNjUzLCAwLjAwMjYzNCwgMC4wMDI1NTcsIDAuMDAyNTEzLCAwLjAwMjQ5OSwgMC4wMDI0ODIsIDAuMDAyNDc3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwMTk2LCAwLjAwMDE5NywgMC4wMDAxOTksIDAuMDAwMiwgMC4wMDAyMDEsIDAuMDAwMjAxLCAwLjAwMDIwMSIsIFwKLSAgICAgICAgICAiMC4wMDAxOTYsIDAuMDAwMTk5LCAwLjAwMDIwOCwgMC4wMDAyMTIsIDAuMDAwMjEzLCAwLjAwMDIxNCwgMC4wMDAyMTQiLCBcCi0gICAgICAgICAgIjAuMDAwMTkzLCAwLjAwMDE5NiwgMC4wMDAyMDgsIDAuMDAwMjEzLCAwLjAwMDIxNSwgMC4wMDAyMTYsIDAuMDAwMjE3IiwgXAotICAgICAgICAgICIwLjAwMDIwMSwgMC4wMDAyMDIsIDAuMDAwMjExLCAwLjAwMDIxNSwgMC4wMDAyMTYsIDAuMDAwMjE4LCAwLjAwMDIxOCIsIFwKLSAgICAgICAgICAiMC4wMDAyMTcsIDAuMDAwMjE3LCAwLjAwMDIxOCwgMC4wMDAyMTksIDAuMDAwMjE5LCAwLjAwMDIxOSwgMC4wMDAyMTkiLCBcCi0gICAgICAgICAgIjAuMDAwMjU5LCAwLjAwMDI1MywgMC4wMDAyMzYsIDAuMDAwMjMxLCAwLjAwMDIyNywgMC4wMDAyMjQsIDAuMDAwMjI0IiwgXAotICAgICAgICAgICIwLjAwMDMwNSwgMC4wMDAyOTQsIDAuMDAwMjYsIDAuMDAwMjQ0LCAwLjAwMDIzOCwgMC4wMDAyMywgMC4wMDAyMjgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyMTYxLCAwLjAwMjE2MSwgMC4wMDIxNjMsIDAuMDAyMTY0LCAwLjAwMjE2MywgMC4wMDIxNjIsIDAuMDAyMTYyIiwgXAotICAgICAgICAgICIwLjAwMjE1NywgMC4wMDIxNTgsIDAuMDAyMTYzLCAwLjAwMjE2NCwgMC4wMDIxNjUsIDAuMDAyMTY1LCAwLjAwMjE2NCIsIFwKLSAgICAgICAgICAiMC4wMDIxNjUsIDAuMDAyMTY2LCAwLjAwMjE2NiwgMC4wMDIxNjYsIDAuMDAyMTY2LCAwLjAwMjE2NSwgMC4wMDIxNjQiLCBcCi0gICAgICAgICAgIjAuMDAyMTgxLCAwLjAwMjE3OSwgMC4wMDIxNzMsIDAuMDAyMTcsIDAuMDAyMTY5LCAwLjAwMjE2NywgMC4wMDIxNjUiLCBcCi0gICAgICAgICAgIjAuMDAyMjA3LCAwLjAwMjIwNCwgMC4wMDIxODcsIDAuMDAyMTc2LCAwLjAwMjE3MywgMC4wMDIxNjksIDAuMDAyMTY3IiwgXAotICAgICAgICAgICIwLjAwMjI2NiwgMC4wMDIyNTQsIDAuMDAyMjEzLCAwLjAwMjE5MiwgMC4wMDIxODQsIDAuMDAyMTc1LCAwLjAwMjE3MyIsIFwKLSAgICAgICAgICAiMC4wMDIzMjYsIDAuMDAyMzEsIDAuMDAyMjQ1LCAwLjAwMjIxMSwgMC4wMDIxOTcsIDAuMDAyMTg0LCAwLjAwMjE3OSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDE5NiwgMC4wMDAxOTcsIDAuMDAwMTk5LCAwLjAwMDIsIDAuMDAwMiwgMC4wMDAyMDEsIDAuMDAwMjAxIiwgXAotICAgICAgICAgICIwLjAwMDIwMiwgMC4wMDAyMDQsIDAuMDAwMjEsIDAuMDAwMjEzLCAwLjAwMDIxNCwgMC4wMDAyMTUsIDAuMDAwMjE1IiwgXAotICAgICAgICAgICIwLjAwMDIxLCAwLjAwMDIxMSwgMC4wMDAyMTUsIDAuMDAwMjE2LCAwLjAwMDIxNywgMC4wMDAyMTgsIDAuMDAwMjE4IiwgXAotICAgICAgICAgICIwLjAwMDIyNiwgMC4wMDAyMjUsIDAuMDAwMjIzLCAwLjAwMDIyMSwgMC4wMDAyMjEsIDAuMDAwMjIsIDAuMDAwMjIiLCBcCi0gICAgICAgICAgIjAuMDAwMjU0LCAwLjAwMDI1LCAwLjAwMDIzNiwgMC4wMDAyMjksIDAuMDAwMjI2LCAwLjAwMDIyNCwgMC4wMDAyMjMiLCBcCi0gICAgICAgICAgIjAuMDAwMzE1LCAwLjAwMDMwMywgMC4wMDAyNjMsIDAuMDAwMjQ4LCAwLjAwMDIzOSwgMC4wMDAyMzEsIDAuMDAwMjI5IiwgXAotICAgICAgICAgICIwLjAwMDM5MiwgMC4wMDAzNjcsIDAuMDAwMjk2LCAwLjAwMDI2OCwgMC4wMDAyNTUsIDAuMDAwMjQxLCAwLjAwMDIzNyIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IEFPSTMzWDEgKgotICogLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoQU9JMzNYMSkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjQ3NzM4MjsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQTApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDk1NTM0MjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA5NTI3MDU7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwOTU1MzQyOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDUyNCwgMC4wMDA1MjQsIDAuMDAwNTI0LCAwLjAwMDUyNCwgMC4wMDA1MjQsIDAuMDAwNTI0LCAwLjAwMDUyMyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDUyNSwgMC4wMDA1MjUsIDAuMDAwNTI1LCAwLjAwMDUyNSwgMC4wMDA1MjUsIDAuMDAwNTI1LCAwLjAwMDUyNiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQTEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDk2MTQ2MjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA5NTg2MTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA5NjE0NjI7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNTI0LCAwLjAwMDUyNCwgMC4wMDA1MjQsIDAuMDAwNTI0LCAwLjAwMDUyNCwgMC4wMDA1MjQsIDAuMDAwNTI0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNTI1LCAwLjAwMDUyNSwgMC4wMDA1MjUsIDAuMDAwNTI2LCAwLjAwMDUyNiwgMC4wMDA1MjYsIDAuMDAwNTI2Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihBMikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwOTQ4MjkxOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDk0MzkxNzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA5NDgyOTE7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzE0LCAwLjAwMDMxMywgMC4wMDAzMTMsIDAuMDAwMzEzLCAwLjAwMDMxMywgMC4wMDAzMTMsIDAuMDAwMzEzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNTk1LCAwLjAwMDU5NiwgMC4wMDA1OTYsIDAuMDAwNTk2LCAwLjAwMDU5NiwgMC4wMDA1OTYsIDAuMDAwNTk2Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwOTc4MDc0OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDk3ODA3NDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA5NzYyMzc7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNTI1LCAwLjAwMDUyNCwgMC4wMDA1MjQsIDAuMDAwNTI0LCAwLjAwMDUyNCwgMC4wMDA1MjQsIDAuMDAwNTI0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNTI1LCAwLjAwMDUyNSwgMC4wMDA1MjUsIDAuMDAwNTI1LCAwLjAwMDUyNSwgMC4wMDA1MjUsIDAuMDAwNTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCMSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwOTc3NTE7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwOTc3NTE7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwOTc2MTE4OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDUyNCwgMC4wMDA1MjQsIDAuMDAwNTI0LCAwLjAwMDUyNCwgMC4wMDA1MjQsIDAuMDAwNTI0LCAwLjAwMDUyNCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDUyNSwgMC4wMDA1MjUsIDAuMDAwNTI1LCAwLjAwMDUyNSwgMC4wMDA1MjUsIDAuMDAwNTI1LCAwLjAwMDUyNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQjIpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDk2ODA4MjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA5Njc3OTU7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwOTY4MDgyOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDMwNCwgMC4wMDAzMDMsIDAuMDAwMzAzLCAwLjAwMDMwMywgMC4wMDAzMDMsIDAuMDAwMzAzLCAwLjAwMDMwMyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDU5NSwgMC4wMDA1OTYsIDAuMDAwNTk2LCAwLjAwMDU5NiwgMC4wMDA1OTYsIDAuMDAwNTk2LCAwLjAwMDU5NiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjEzNzA2NzsKLSAgICBmdW5jdGlvbiA6ICIoISgoKEIwIEIxKSBCMikrKChBMCBBMSkgQTIpKSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODUyOTksIDAuMTE5NDI1LCAwLjMxMjIzLCAwLjQ4MjQ5MiwgMC43MDkxNDksIDEuMTYyMTYsIDEuNDQ1ODQiLCBcCi0gICAgICAgICAgIjAuMDkyNzUsIDAuMTI2OTEsIDAuMzE5OTc5LCAwLjQ5MDA0MSwgMC43MTY5NTksIDEuMTcwNTUsIDEuNDUzMzIiLCBcCi0gICAgICAgICAgIjAuMTAwNTEsIDAuMTM0Njk0LCAwLjMyNzcwNiwgMC40OTc1NTMsIDAuNzI0MDc3LCAxLjE3NzEzLCAxLjQ2MTQ2IiwgXAotICAgICAgICAgICIwLjEwNzk0MiwgMC4xNDIxMDMsIDAuMzM1MTcxLCAwLjUwNTMwNCwgMC43MzE1ODksIDEuMTg1ODQsIDEuNDY4NDUiLCBcCi0gICAgICAgICAgIjAuMTE1MTkyLCAwLjE0OTMwNiwgMC4zNDIxODcsIDAuNTEyNDE4LCAwLjczOTI0MiwgMS4xOTMyOSwgMS40NzUzNiIsIFwKLSAgICAgICAgICAiMC4xMjYzNzcsIDAuMTYwOTA0LCAwLjM1NDA4MSwgMC41MjMzNzgsIDAuNzUwODk2LCAxLjIwNDA5LCAxLjQ4NzE5IiwgXAotICAgICAgICAgICIwLjEzNTEwMywgMC4xNzExNzIsIDAuMzY0MTQ3LCAwLjUzNDQwNSwgMC43NjEzMzIsIDEuMjE0NTMsIDEuNDk3NzgiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTUyODk5LCAwLjIyNDcsIDAuNjMyMjk1LCAwLjk5MjU4OCwgMS40NzM0OSwgMi40MzQ4NiwgMy4wMzU0NiIsIFwKLSAgICAgICAgICAiMC4xNTI5MSwgMC4yMjQ4MjQsIDAuNjMyMDExLCAwLjk5MjUzMiwgMS40NzM2MSwgMi40MzYwOCwgMy4wMzUwOCIsIFwKLSAgICAgICAgICAiMC4xNTM3NjEsIDAuMjI0OTI5LCAwLjYzMTk0MSwgMC45OTIyOTEsIDEuNDczMzgsIDIuNDM1NDgsIDMuMDM1OTkiLCBcCi0gICAgICAgICAgIjAuMTU2Mzc2LCAwLjIyNjY5NiwgMC42MzE5MjIsIDAuOTkyNTY0LCAxLjQ3MzEyLCAyLjQzNTQzLCAzLjAzNTI4IiwgXAotICAgICAgICAgICIwLjE2MDIwMSwgMC4yMjk0MjksIDAuNjMyMjI5LCAwLjk5MjUwNSwgMS40NzMwMSwgMi40MzU0OCwgMy4wMzY0NSIsIFwKLSAgICAgICAgICAiMC4xNjc5NjcsIDAuMjM1NzQsIDAuNjMzNzk2LCAwLjk5MzE1NCwgMS40NzMwNCwgMi40MzU3MywgMy4wMzUwNyIsIFwKLSAgICAgICAgICAiMC4xNzU4MzgsIDAuMjQyNDcsIDAuNjM2MTcxLCAwLjk5MzUxNSwgMS40NzMzMywgMi40MzU0NywgMy4wMzY1MyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTQxMiwgMC4xNTk2NzEsIDAuNDE2NTU1LCAwLjY0MzIxMSwgMC45NDQ0MzQsIDEuNTQ4MTIsIDEuOTI0NzciLCBcCi0gICAgICAgICAgIjAuMTE5NDA1LCAwLjE2NDk2MiwgMC40MjE5MTYsIDAuNjQ4NDUyLCAwLjk0OTc4NSwgMS41NTMwOCwgMS45MzE1MyIsIFwKLSAgICAgICAgICAiMC4xMjU0MjMsIDAuMTcwOTgsIDAuNDI4MzE3LCAwLjY1NDY0LCAwLjk1Njc0NCwgMS41NjA5MywgMS45MzcwMiIsIFwKLSAgICAgICAgICAiMC4xMzE0MjIsIDAuMTc3MDQ3LCAwLjQzNDAzNywgMC42NjEwMTcsIDAuOTYyMzQyLCAxLjU2NjA2LCAxLjk0MzM3IiwgXAotICAgICAgICAgICIwLjEzNzYzLCAwLjE4MzEzMiwgMC40NDAxMDQsIDAuNjY2NTU1LCAwLjk2OTE4OCwgMS41NzIxOSwgMS45NDkxNSIsIFwKLSAgICAgICAgICAiMC4xNDc3MjksIDAuMTkyODk0LCAwLjQ0OTk5NiwgMC42NzY0MzUsIDAuOTc4MzIxLCAxLjU4MjY5LCAxLjk1ODUyIiwgXAotICAgICAgICAgICIwLjE1NTg0NywgMC4yMDE3OTIsIDAuNDU4NDEsIDAuNjg0ODUsIDAuOTg3MzU2LCAxLjU5MDA3LCAxLjk2NzEzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIwOTI3MywgMC4zMDIwMDQsIDAuODI3OTc4LCAxLjI5MTk2LCAxLjkxMDkzLCAzLjE0NzE1LCAzLjkxOTk2IiwgXAotICAgICAgICAgICIwLjIwOTI3MywgMC4zMDIwMjYsIDAuODI3ODYsIDEuMjkxOTUsIDEuOTEwNTUsIDMuMTQ4LCAzLjkxOTkiLCBcCi0gICAgICAgICAgIjAuMjA5ODY2LCAwLjMwMjA4OSwgMC44Mjc4NzgsIDEuMjkxOTMsIDEuOTEwNTIsIDMuMTQ3ODMsIDMuOTIwMDEiLCBcCi0gICAgICAgICAgIjAuMjExNjUxLCAwLjMwMzE2OSwgMC44Mjc3ODUsIDEuMjkxODcsIDEuOTEwNjEsIDMuMTQ3NTUsIDMuOTIwMDYiLCBcCi0gICAgICAgICAgIjAuMjE0NDE1LCAwLjMwNTAzNiwgMC44Mjc3ODksIDEuMjkxNzMsIDEuOTEwNjksIDMuMTQ3MjYsIDMuOTE5ODkiLCBcCi0gICAgICAgICAgIjAuMjIwMjc5LCAwLjMwOTQyMiwgMC44MjgxMjgsIDEuMjkxNzksIDEuOTEwNjMsIDMuMTQ3ODQsIDMuOTIwMTYiLCBcCi0gICAgICAgICAgIjAuMjI2NDEzLCAwLjMxNDI2MiwgMC44Mjk1NjMsIDEuMjkxOCwgMS45MTA2NCwgMy4xNDczOCwgMy45MTk4NCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg0MTc2LCAwLjExODY0NSwgMC4zMTMxNjEsIDAuNDg0Nzg0LCAwLjcxMzY3OSwgMS4xNzEzMSwgMS40NTY1MSIsIFwKLSAgICAgICAgICAiMC4wOTE2NjQsIDAuMTI2MTE0LCAwLjMyMDk1MiwgMC40OTI1MTIsIDAuNzIxNzU4LCAxLjE3OTQ0LCAxLjQ2NTA4IiwgXAotICAgICAgICAgICIwLjA5OTM5MSwgMC4xMzM4NzgsIDAuMzI4NTYxLCAwLjUwMDA5NywgMC43Mjg3NjgsIDEuMTg2MjEsIDEuNDczMDIiLCBcCi0gICAgICAgICAgIjAuMTA2ODAzLCAwLjE0MTI4LCAwLjMzNjA3OCwgMC41MDc4MjgsIDAuNzM2OTE1LCAxLjE5NDU0LCAxLjQ3OTYyIiwgXAotICAgICAgICAgICIwLjExNDA4NCwgMC4xNDg1ODEsIDAuMzQzNDEyLCAwLjUxNDg5NywgMC43NDM5OTUsIDEuMjAxMjksIDEuNDg2OTQiLCBcCi0gICAgICAgICAgIjAuMTI1MjEzLCAwLjE2MDE5NSwgMC4zNTUxMDEsIDAuNTI2NzMsIDAuNzU1NjkxLCAxLjIxMzE3LCAxLjQ5ODc5IiwgXAotICAgICAgICAgICIwLjEzMzkwNiwgMC4xNzAyOSwgMC4zNjUyMTgsIDAuNTM2ODM5LCAwLjc2NTc1NiwgMS4yMjQxLCAxLjUwOTM0Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE1MTg5MiwgMC4yMjQ0NzMsIDAuNjM1NTQyLCAwLjk5OTU0MSwgMS40ODQ2MiwgMi40NTQ4OCwgMy4wNjM5NiIsIFwKLSAgICAgICAgICAiMC4xNTE4ODcsIDAuMjI0NDcxLCAwLjYzNTQ4MSwgMC45OTk2MTQsIDEuNDg1MTcsIDIuNDU2NTcsIDMuMDYyMzciLCBcCi0gICAgICAgICAgIjAuMTUyNzQ1LCAwLjIyNDU3OSwgMC42MzU0OTcsIDAuOTk5NDc3LCAxLjQ4NTQ4LCAyLjQ1NjksIDMuMDYyNDgiLCBcCi0gICAgICAgICAgIjAuMTU1NDIxLCAwLjIyNjI3NCwgMC42MzU0NjgsIDAuOTk5NjE2LCAxLjQ4NDk5LCAyLjQ1NTg0LCAzLjA2NDQxIiwgXAotICAgICAgICAgICIwLjE1OTI4MiwgMC4yMjkxOTUsIDAuNjM1NDg4LCAwLjk5OTM1NSwgMS40ODQ1MiwgMi40NTYwOSwgMy4wNjUxMiIsIFwKLSAgICAgICAgICAiMC4xNjcwODUsIDAuMjM1NDksIDAuNjM3MTQ4LCAwLjk5OTI5NCwgMS40ODQ1NiwgMi40NTY0OSwgMy4wNjE1MyIsIFwKLSAgICAgICAgICAiMC4xNzUwNjUsIDAuMjQyMzY3LCAwLjYzOTU4MywgMS4wMDA0NCwgMS40ODU0LCAyLjQ1NjIyLCAzLjA2NDE1Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExMjc4NCwgMC4xNTgyNjksIDAuNDE1MzExLCAwLjY0MTM0NSwgMC45NDMzNSwgMS41NDc3NCwgMS45MjQwMiIsIFwKLSAgICAgICAgICAiMC4xMTkyMSwgMC4xNjQ3NzMsIDAuNDIxNTY4LCAwLjY0Nzg3NSwgMC45NDk1OTIsIDEuNTUyODYsIDEuOTMwNTEiLCBcCi0gICAgICAgICAgIjAuMTI3MzMzLCAwLjE3MjU3LCAwLjQyOTg0OSwgMC42NTY0MzIsIDAuOTU4NDYzLCAxLjU2MjE3LCAxLjkzODM3IiwgXAotICAgICAgICAgICIwLjEzNTUzNiwgMC4xODEyMjEsIDAuNDM4NDUxLCAwLjY2NDYwMiwgMC45NjY5MzMsIDEuNTcwMzYsIDEuOTQ3ODciLCBcCi0gICAgICAgICAgIjAuMTQzOTA3LCAwLjE4OTQ0MywgMC40NDY3MTEsIDAuNjcyOTE3LCAwLjk3NDU3MSwgMS41NzgwMSwgMS45NTY0MyIsIFwKLSAgICAgICAgICAiMC4xNTc1MywgMC4yMDMyMDYsIDAuNDU5ODA2LCAwLjY4NjMyNywgMC45ODc5MjMsIDEuNTkxMzYsIDEuOTY5ODQiLCBcCi0gICAgICAgICAgIjAuMTY5MTg2LCAwLjIxNDg2NCwgMC40NzE2NjMsIDAuNjk4MTAyLCAwLjk5OTY1MSwgMS42MDI5OSwgMS45ODAyMiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMDkyNzQsIDAuMzAyMDU3LCAwLjgyNzg2MywgMS4yOTE3MSwgMS45MTA2NCwgMy4xNDgyNywgMy45MjAwOCIsIFwKLSAgICAgICAgICAiMC4yMDkyNjYsIDAuMzAxOTgsIDAuODI3OTAxLCAxLjI5MTc5LCAxLjkxMDU1LCAzLjE0NzgzLCAzLjkyMDA3IiwgXAotICAgICAgICAgICIwLjIwOTk3OSwgMC4zMDIxMTcsIDAuODI3NzIzLCAxLjI5MTgyLCAxLjkxMDYyLCAzLjE0Nzc3LCAzLjkxOTc5IiwgXAotICAgICAgICAgICIwLjIxMjQ1MywgMC4zMDMzMTUsIDAuODI3NjMsIDEuMjkxNzksIDEuOTEwNjQsIDMuMTQ3NDEsIDMuOTIwMDIiLCBcCi0gICAgICAgICAgIjAuMjE2NDksIDAuMzA1OTIxLCAwLjgyNzgyLCAxLjI5MTgyLCAxLjkxMDU3LCAzLjE0NzMyLCAzLjkxOTk5IiwgXAotICAgICAgICAgICIwLjIyNDcsIDAuMzEyMzA3LCAwLjgyODExMywgMS4yOTE3NCwgMS45MTA1OCwgMy4xNDcxMywgMy45MTk5MSIsIFwKLSAgICAgICAgICAiMC4yMzI4MzYsIDAuMzE5MDU5LCAwLjgyOTUxNywgMS4yOTE3OCwgMS45MTA1NiwgMy4xNDczOSwgMy45MTk4OCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDgyMDQxLCAwLjExNjU4NiwgMC4zMTE0NTQsIDAuNDgzNTEsIDAuNzEyNzMxLCAxLjE3MDc4LCAxLjQ1NzU2IiwgXAotICAgICAgICAgICIwLjA4OTU0MSwgMC4xMjQwNDksIDAuMzE5MjM3LCAwLjQ5MTEwMSwgMC43MjA1NjgsIDEuMTc5MDcsIDEuNDY1NDEiLCBcCi0gICAgICAgICAgIjAuMDk3MjM1LCAwLjEzMTgsIDAuMzI3MDEzLCAwLjQ5ODcyMSwgMC43Mjc3NjQsIDEuMTg1OTEsIDEuNDczNDEiLCBcCi0gICAgICAgICAgIjAuMTA0NTU1LCAwLjEzOTEwNSwgMC4zMzQyOTQsIDAuNTA2MTI2LCAwLjczNTgyOSwgMS4xOTQsIDEuNDc5OTYiLCBcCi0gICAgICAgICAgIjAuMTExNzg3LCAwLjE0NjM2OCwgMC4zNDE1ODksIDAuNTEzNTQxLCAwLjc0Mjc4NSwgMS4yMDA5NCwgMS40ODkwMyIsIFwKLSAgICAgICAgICAiMC4xMjI3MzEsIDAuMTU3ODksIDAuMzUzMTY5LCAwLjUyNTMzNiwgMC43NTQ0MjEsIDEuMjEzMTEsIDEuNDk5MTYiLCBcCi0gICAgICAgICAgIjAuMTMxMjQyLCAwLjE2Nzk2NiwgMC4zNjMyODYsIDAuNTM1NTEsIDAuNzY0OTM5LCAxLjIyNDM1LCAxLjUwOTg3Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE0OTI2NiwgMC4yMjE4NzYsIDAuNjMzNTg0LCAwLjk5ODQzMywgMS40ODQ3NSwgMi40NTcyNiwgMy4wNjQwMiIsIFwKLSAgICAgICAgICAiMC4xNDkyNDYsIDAuMjIxOTI5LCAwLjYzMzc1MSwgMC45OTg0MjgsIDEuNDg0NjIsIDIuNDU4MDMsIDMuMDY1MTgiLCBcCi0gICAgICAgICAgIjAuMTUwMTMyLCAwLjIyMjA0NywgMC42MzM2MTMsIDAuOTk4MDA2LCAxLjQ4NTIsIDIuNDU4NzcsIDMuMDY1MzIiLCBcCi0gICAgICAgICAgIjAuMTUyODMsIDAuMjIzODEyLCAwLjYzMzYwNywgMC45OTgwMjksIDEuNDg2MDIsIDIuNDU3MzIsIDMuMDY0NiIsIFwKLSAgICAgICAgICAiMC4xNTY4MzQsIDAuMjI2NzE2LCAwLjYzMzU4NSwgMC45OTg1NDEsIDEuNDg0MjcsIDIuNDU3NDIsIDMuMDY1NjgiLCBcCi0gICAgICAgICAgIjAuMTY0NjksIDAuMjMzMDg1LCAwLjYzNTMyOCwgMC45OTgxMDgsIDEuNDg1MTQsIDIuNDU4MTUsIDMuMDY0MzMiLCBcCi0gICAgICAgICAgIjAuMTcyNzcsIDAuMjM5ODUxLCAwLjYzNzcxMiwgMC45OTkyMTEsIDEuNDg1MDcsIDIuNDU2NTcsIDMuMDY2NjgiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTA5ODEsIDAuMTU1MzI3LCAwLjQxMjI3NCwgMC42Mzg2ODcsIDAuOTQwMzIyLCAxLjU0MzkyLCAxLjkyMDg2IiwgXAotICAgICAgICAgICIwLjExNjgyNCwgMC4xNjIzMTMsIDAuNDE5MTI4LCAwLjY0NTQxNywgMC45NDcxMzEsIDEuNTUwMzksIDEuOTI4MTQiLCBcCi0gICAgICAgICAgIjAuMTI1OTc0LCAwLjE3MTMxNywgMC40MjgxMzcsIDAuNjU0NjEyLCAwLjk1NjIwOSwgMS41NjAxNiwgMS45MzczNiIsIFwKLSAgICAgICAgICAiMC4xMzUwNTcsIDAuMTgwNTAzLCAwLjQzNzI2OCwgMC42NjM5MDksIDAuOTY1ODc1LCAxLjU2OTI0LCAxLjk0NjY2IiwgXAotICAgICAgICAgICIwLjE0NDU1NSwgMC4xODk4MDUsIDAuNDQ2NjEzLCAwLjY3MjU0NiwgMC45NzQyMzcsIDEuNTc4NzMsIDEuOTU2NSIsIFwKLSAgICAgICAgICAiMC4xNTk4MDEsIDAuMjA0OTc0LCAwLjQ2MTA5NSwgMC42ODc1MiwgMC45ODk0MDksIDEuNTkyMTQsIDEuOTcwMjgiLCBcCi0gICAgICAgICAgIjAuMTczNjU3LCAwLjIxODQ3NiwgMC40NzQwMDcsIDAuNzAwMzYzLCAxLjAwMTY2LCAxLjYwNTAzLCAxLjk4MjAzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIwOTI2NywgMC4zMDE5NjYsIDAuODI3OTQyLCAxLjI5MTc4LCAxLjkxMDY0LCAzLjE0Nzk5LCAzLjkyMDU1IiwgXAotICAgICAgICAgICIwLjIwOTI4MywgMC4zMDIwMDcsIDAuODI3OTA2LCAxLjI5MTgxLCAxLjkxMDU1LCAzLjE0Nzg2LCAzLjkxOTg5IiwgXAotICAgICAgICAgICIwLjIxMDA5LCAwLjMwMjAwMSwgMC44Mjc4MDEsIDEuMjkxNzYsIDEuOTEwNTcsIDMuMTQ3NDYsIDMuOTE5ODYiLCBcCi0gICAgICAgICAgIjAuMjEzNzQsIDAuMzAzNzM3LCAwLjgyNzkxMywgMS4yOTE4MSwgMS45MTA3NCwgMy4xNDczNywgMy45MTk4OCIsIFwKLSAgICAgICAgICAiMC4yMTg5NTcsIDAuMzA3MzIsIDAuODI3ODI1LCAxLjI5MTcyLCAxLjkxMDUzLCAzLjE0NzY5LCAzLjkyMDAzIiwgXAotICAgICAgICAgICIwLjIyOTY1NywgMC4zMTU0NiwgMC44MjgxMzcsIDEuMjkxODMsIDEuOTEwODgsIDMuMTQ3MzgsIDMuOTIwMTMiLCBcCi0gICAgICAgICAgIjAuMjQwMTIzLCAwLjMyNDQ2NywgMC44MzAwNzYsIDEuMjkxNzksIDEuOTEwNiwgMy4xNDc4MiwgMy45MTk4NiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc2MjA3LCAwLjExMDM2MSwgMC4zMDM2NjksIDAuNDc0Nzk4LCAwLjcwMzczNywgMS4xNjE4NCwgMS40NDczNiIsIFwKLSAgICAgICAgICAiMC4wODM4LCAwLjExNzk1LCAwLjMxMTQzNCwgMC40ODMwNDMsIDAuNzExNDczLCAxLjE2OTM4LCAxLjQ1NTE0IiwgXAotICAgICAgICAgICIwLjA5MzI4LCAwLjEyNzQxMiwgMC4zMjA2MDcsIDAuNDkxODQxLCAwLjcyMDk2MSwgMS4xNzkwNywgMS40NjYwMiIsIFwKLSAgICAgICAgICAiMC4xMDMxMDUsIDAuMTM3MTM4LCAwLjMzMDM3MywgMC41MDIwMjMsIDAuNzMwMTc2LCAxLjE4ODY1LCAxLjQ3Mzg2IiwgXAotICAgICAgICAgICIwLjExMzE2MiwgMC4xNDcwMzQsIDAuMzQwMDgsIDAuNTExNjA4LCAwLjc0MDM0NywgMS4xOTgxNywgMS40ODM0NSIsIFwKLSAgICAgICAgICAiMC4xMjg3OTQsIDAuMTYyOTgzLCAwLjM1NTcxMywgMC41MjcyNCwgMC43NTYwNCwgMS4yMTM2OSwgMS40OTg5NiIsIFwKLSAgICAgICAgICAiMC4xNDA3ODcsIDAuMTc3MDEsIDAuMzY5MTk2LCAwLjU0MDU5NywgMC43NjkyNjMsIDEuMjI2NTQsIDEuNTEyNTciKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTUyODc0LCAwLjIyNDY5NSwgMC42MzU4NjgsIDAuOTk3Nzg1LCAxLjQ4MDgyLCAyLjQ0OTQsIDMuMDU1MDEiLCBcCi0gICAgICAgICAgIjAuMTUyNTE3LCAwLjIyNDc1MSwgMC42MzU0MzQsIDAuOTk4MDQzLCAxLjQ4MTMyLCAyLjQ0ODgyLCAzLjA1MzkxIiwgXAotICAgICAgICAgICIwLjE1NTE1NiwgMC4yMjUyOSwgMC42MzU3MjYsIDAuOTk3OTU1LCAxLjQ4MTIzLCAyLjQ0OTU2LCAzLjA1NDciLCBcCi0gICAgICAgICAgIjAuMTYwNTg1LCAwLjIyODc2OSwgMC42MzU0MDUsIDAuOTk3OTA3LCAxLjQ4MTY2LCAyLjQ0OTUsIDMuMDU2MDEiLCBcCi0gICAgICAgICAgIjAuMTY3NTUyLCAwLjIzNDA0MiwgMC42MzU2MzEsIDAuOTk4MjE1LCAxLjQ4MDkyLCAyLjQ0OTQ2LCAzLjA1NTcyIiwgXAotICAgICAgICAgICIwLjE4MDI0MSwgMC4yNDQ5NjIsIDAuNjM4MDQ1LCAwLjk5NzYzNiwgMS40ODEyMSwgMi40NDk1NSwgMy4wNTM4IiwgXAotICAgICAgICAgICIwLjE5MjM0OSwgMC4yNTU3NCwgMC42NDIxODQsIDAuOTk4OTExLCAxLjQ4MTc2LCAyLjQ0ODU5LCAzLjA1MzI0Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5NjI0LCAwLjE0MTc4MywgMC4zOTkwNzcsIDAuNjI1NzgzLCAwLjkyNzU5OCwgMS41MzA1MywgMS45MDcyMyIsIFwKLSAgICAgICAgICAiMC4xMDE3MzIsIDAuMTQ3MzY1LCAwLjQwNDg0LCAwLjYzMTU4MiwgMC45MzMzMjgsIDEuNTM2MjksIDEuOTEzMDYiLCBcCi0gICAgICAgICAgIjAuMTA3NjcxLCAwLjE1MzM4MywgMC40MTA5NzYsIDAuNjM3ODMsIDAuOTM5NTk3LCAxLjU0MjU4LCAxLjkxOTI4IiwgXAotICAgICAgICAgICIwLjExMzcwNSwgMC4xNTk0MTIsIDAuNDE3MDc2LCAwLjY0Mzg1NCwgMC45NDU2ODksIDEuNTQ4NjEsIDEuOTI1NSIsIFwKLSAgICAgICAgICAiMC4xMTk4NTUsIDAuMTY1NDEyLCAwLjQyMzE0LCAwLjY0OTkyNywgMC45NTE3ODQsIDEuNTU0NjksIDEuOTMxNTgiLCBcCi0gICAgICAgICAgIjAuMTI5NjEyLCAwLjE3NTIwNCwgMC40MzMxMTQsIDAuNjU5OTc4LCAwLjk2MTc2MSwgMS41NjQ2NiwgMS45NDE1NyIsIFwKLSAgICAgICAgICAiMC4xMzc1MDksIDAuMTgzODUzLCAwLjQ0MTczMywgMC42Njg0OTUsIDAuOTcwMjY5LCAxLjU3MzE5LCAxLjk1MDAyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE5MTU3MSwgMC4yODQxNiwgMC44MDkzNzEsIDEuMjczMjQsIDEuODkxNjcsIDMuMTI4NTEsIDMuOTAxNDYiLCBcCi0gICAgICAgICAgIjAuMTkxNTkyLCAwLjI4NDE1NSwgMC44MDk0OTEsIDEuMjczMTYsIDEuODkxNDgsIDMuMTI4MzEsIDMuOTAxNTMiLCBcCi0gICAgICAgICAgIjAuMTkyMzk3LCAwLjI4NDMyLCAwLjgwOTQ3OCwgMS4yNzMxOSwgMS44OTE1NywgMy4xMjg0NywgMy45MDE1NCIsIFwKLSAgICAgICAgICAiMC4xOTQ1OTYsIDAuMjg1NjMsIDAuODA5NDY2LCAxLjI3MzEsIDEuODkxNDMsIDMuMTI4MjEsIDMuOTAxNDMiLCBcCi0gICAgICAgICAgIjAuMTk3Nzg1LCAwLjI4NzcyNSwgMC44MDk0MjMsIDEuMjczMTMsIDEuODkxNTMsIDMuMTI4MTYsIDMuOTAxMDUiLCBcCi0gICAgICAgICAgIjAuMjA0MTUzLCAwLjI5MjM5NywgMC44MTAwNjIsIDEuMjczMTQsIDEuODkxNDgsIDMuMTI4MjYsIDMuOTAxMDIiLCBcCi0gICAgICAgICAgIjAuMjEwNjkxLCAwLjI5NzYsIDAuODExMjE0LCAxLjI3MzIyLCAxLjg5MTM2LCAzLjEyODIzLCAzLjkwMTUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3NDM5NywgMC4xMDg1NiwgMC4zMDE5NDEsIDAuNDczODI4LCAwLjcwMjg2NSwgMS4xNjA0OSwgMS40NDg3MiIsIFwKLSAgICAgICAgICAiMC4wODIwMjIsIDAuMTE2MTcyLCAwLjMwOTc4NywgMC40ODEzMzUsIDAuNzEwMDY0LCAxLjE2ODU2LCAxLjQ1NDg4IiwgXAotICAgICAgICAgICIwLjA5MTY5NiwgMC4xMjU4NTQsIDAuMzE5NDg1LCAwLjQ5MDU5NywgMC43MjAyMjksIDEuMTc4NzUsIDEuNDY1NzMiLCBcCi0gICAgICAgICAgIjAuMTAxNTcsIDAuMTM1NjY2LCAwLjMyOTA3MSwgMC41MDA5ODIsIDAuNzI5MjQ2LCAxLjE4NzM0LCAxLjQ3NTY5IiwgXAotICAgICAgICAgICIwLjExMTAzOCwgMC4xNDQ5NzMsIDAuMzM4MDkxLCAwLjUwOTc4OCwgMC43Mzg3NjYsIDEuMTk3MzUsIDEuNDgyNiIsIFwKLSAgICAgICAgICAiMC4xMjY2NiwgMC4xNjA5MzksIDAuMzUzNzcxLCAwLjUyNTYyMSwgMC43NTQ0MjIsIDEuMjEyNTksIDEuNDk4MTgiLCBcCi0gICAgICAgICAgIjAuMTM4NDIsIDAuMTc1MDUyLCAwLjM2NzM0LCAwLjUzODk1MSwgMC43Njc4MzcsIDEuMjI1NjUsIDEuNTExOTciKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTUwODQ5LCAwLjIyMzA2MSwgMC42MzU3MDksIDAuOTk5NzE0LCAxLjQ4NDcsIDIuNDU2MTQsIDMuMDY1OSIsIFwKLSAgICAgICAgICAiMC4xNTA1NTYsIDAuMjIzMDQzLCAwLjYzNTQ4MywgMC45OTkyMDksIDEuNDg1MjcsIDIuNDU2NDIsIDMuMDY1NTgiLCBcCi0gICAgICAgICAgIjAuMTUzMTU3LCAwLjIyMzU2MiwgMC42MzU0ODgsIDAuOTk5NTk0LCAxLjQ4NDksIDIuNDU3NjEsIDMuMDY1MjgiLCBcCi0gICAgICAgICAgIjAuMTU4NTYxLCAwLjIyNzA3LCAwLjYzNTE4MywgMC45OTk3MDUsIDEuNDg0OTgsIDIuNDU3OTMsIDMuMDY1OTkiLCBcCi0gICAgICAgICAgIjAuMTY1OTk1LCAwLjIzMjc0NSwgMC42MzUyODEsIDAuOTk5NDU5LCAxLjQ4NDQ5LCAyLjQ1NzYxLCAzLjA2NzU5IiwgXAotICAgICAgICAgICIwLjE3ODg3NCwgMC4yNDM1ODcsIDAuNjM3OTY5LCAwLjk5OTM1OCwgMS40ODUxLCAyLjQ1NzUxLCAzLjA2NDMiLCBcCi0gICAgICAgICAgIjAuMTkwOTk0LCAwLjI1NDUwMSwgMC42NDIxNzUsIDAuOTk5ODU0LCAxLjQ4NDk3LCAyLjQ1NjUxLCAzLjA2MzE3Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5NDg1NCwgMC4xNDA0MDQsIDAuMzk3Njk4LCAwLjYyNDQzNywgMC45MjYxMTgsIDEuNTI5MDQsIDEuOTA1ODgiLCBcCi0gICAgICAgICAgIjAuMTAxNDY2LCAwLjE0NzA5OSwgMC40MDQ1NjUsIDAuNjMxMjkxLCAwLjkzMzAzNCwgMS41MzU5OSwgMS45MTI5MSIsIFwKLSAgICAgICAgICAiMC4xMDk2OSwgMC4xNTUzNDgsIDAuNDEyOTUsIDAuNjM5NjksIDAuOTQxNDg2LCAxLjU0NDQzLCAxLjkyMTIyIiwgXAotICAgICAgICAgICIwLjExNzg1NiwgMC4xNjM0MSwgMC40MjExODIsIDAuNjQ4LCAwLjk0OTg0NywgMS41NTI3LCAxLjkyOTUyIiwgXAotICAgICAgICAgICIwLjEyNjA3MSwgMC4xNzE4MzEsIDAuNDI5NDI1LCAwLjY1NjI1NCwgMC45NTgwMywgMS41NjEwMywgMS45Mzc4NyIsIFwKLSAgICAgICAgICAiMC4xMzk0MDksIDAuMTg1MTc1LCAwLjQ0Mjg2NSwgMC42Njk3MiwgMC45NzE0NzcsIDEuNTc0NDYsIDEuOTUxMjkiLCBcCi0gICAgICAgICAgIjAuMTUwMDQ2LCAwLjE5NjgwNCwgMC40NTQ2MTYsIDAuNjgxMzg5LCAwLjk4MzIwOCwgMS41ODYxNCwgMS45NjI5NCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xOTE1NTIsIDAuMjg0MTcsIDAuODA5MzcsIDEuMjczMiwgMS44OTE0NywgMy4xMjg1NCwgMy45MDE2NSIsIFwKLSAgICAgICAgICAiMC4xOTE1NjUsIDAuMjg0MjIyLCAwLjgwOTQ1MywgMS4yNzMxMywgMS44OTE0MiwgMy4xMjgwNiwgMy45MDEwNSIsIFwKLSAgICAgICAgICAiMC4xOTI2OTgsIDAuMjg0MjcyLCAwLjgwOTQ3LCAxLjI3MzA5LCAxLjg5MTM5LCAzLjEyODE0LCAzLjkwMTMzIiwgXAotICAgICAgICAgICIwLjE5NTkxMiwgMC4yODU5NDEsIDAuODA5NDE2LCAxLjI3MzEzLCAxLjg5MTQ3LCAzLjEyODM5LCAzLjkwMTE0IiwgXAotICAgICAgICAgICIwLjIwMDM2MywgMC4yODkwMjUsIDAuODA5MTQ3LCAxLjI3MzEzLCAxLjg5MTM5LCAzLjEyODE3LCAzLjkwMDc5IiwgXAotICAgICAgICAgICIwLjIwOTI3OCwgMC4yOTU4OTUsIDAuODA5ODUyLCAxLjI3MzA5LCAxLjg5MTM4LCAzLjEyODA5LCAzLjkwMTMyIiwgXAotICAgICAgICAgICIwLjIxNzY0LCAwLjMwMzA3NCwgMC44MTE2NjMsIDEuMjczMTEsIDEuODkxNjIsIDMuMTI4MzksIDMuOTAxNTEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjIiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3MTcxMywgMC4xMDU2NTYsIDAuMjk3OTI5LCAwLjQ2ODM5MiwgMC42OTY4NTgsIDEuMTUyNSwgMS40MzY1MiIsIFwKLSAgICAgICAgICAiMC4wNzkzMjcsIDAuMTEzMzIyLCAwLjMwNTY4OCwgMC40NzY2MTgsIDAuNzA0MjEyLCAxLjE2MDA4LCAxLjQ0NDYyIiwgXAotICAgICAgICAgICIwLjA4ODc4MiwgMC4xMjI3MzgsIDAuMzE1MDI5LCAwLjQ4NTY2OSwgMC43MTM1NCwgMS4xNzAyNywgMS40NTU1MyIsIFwKLSAgICAgICAgICAiMC4wOTg1NTEsIDAuMTMyNDQ4LCAwLjMyNDkyMiwgMC40OTU2MDQsIDAuNzIyODQxLCAxLjE3OTM4LCAxLjQ2MzI5IiwgXAotICAgICAgICAgICIwLjEwODUwNCwgMC4xNDIyOTMsIDAuMzM0NDIyLCAwLjUwNTIzMSwgMC43MzMwMDgsIDEuMTg5MzIsIDEuNDcyODgiLCBcCi0gICAgICAgICAgIjAuMTIzNjcsIDAuMTU4MDQzLCAwLjM0OTk4OSwgMC41MjA3OTMsIDAuNzQ4NDc2LCAxLjIwNDI2LCAxLjQ4ODM5IiwgXAotICAgICAgICAgICIwLjEzNDk0LCAwLjE3MjAxNywgMC4zNjM1MDMsIDAuNTM0MTk1LCAwLjc2MTksIDEuMjE3MTgsIDEuNTAxOTgiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTQ2OTM3LCAwLjIxODc1OSwgMC42Mjg0MTYsIDAuOTkwMjgzLCAxLjQ3MjIyLCAyLjQzNzQ4LCAzLjA0MTc5IiwgXAotICAgICAgICAgICIwLjE0NjY4MywgMC4yMTg2MzMsIDAuNjI4ODIyLCAwLjk5MDI4OCwgMS40NzIsIDIuNDM2ODQsIDMuMDM5NjYiLCBcCi0gICAgICAgICAgIjAuMTQ5NTI2LCAwLjIxOTMxMywgMC42Mjg0MzgsIDAuOTkwMDEzLCAxLjQ3MzIsIDIuNDM3NTQsIDMuMDQxMDMiLCBcCi0gICAgICAgICAgIjAuMTU1MTkzLCAwLjIyMzAyOCwgMC42Mjg1MTgsIDAuOTkwMzM2LCAxLjQ3MjgzLCAyLjQzNzY4LCAzLjA0MjM2IiwgXAotICAgICAgICAgICIwLjE2MjMsIDAuMjI4NDc2LCAwLjYyODMyNCwgMC45OTAyNjEsIDEuNDcyMDgsIDIuNDM3OTMsIDMuMDQzMTEiLCBcCi0gICAgICAgICAgIjAuMTc1MjQ3LCAwLjIzOTQ0MiwgMC42MzA5MTgsIDAuOTg5OTU1LCAxLjQ3MzA1LCAyLjQzNzc5LCAzLjAzOTgyIiwgXAotICAgICAgICAgICIwLjE4Nzc1NiwgMC4yNTA2NzEsIDAuNjM1NDcsIDAuOTkwNTg2LCAxLjQ3Mjk5LCAyLjQzNjg4LCAzLjAzODYzIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5MTgsIDAuMTM3MzQ4LCAwLjM5NDY1NSwgMC42MjEzNTcsIDAuOTIzMDQ5LCAxLjUyNTk5LCAxLjkwMzExIiwgXAotICAgICAgICAgICIwLjA5ODk5LCAwLjE0NDYxNywgMC40MDIwMzYsIDAuNjI4NzYxLCAwLjkzMDUwMSwgMS41MzM0NiwgMS45MTAzOSIsIFwKLSAgICAgICAgICAiMC4xMDgxNjMsIDAuMTUzNzY2LCAwLjQxMTE2NiwgMC42Mzc5MzcsIDAuOTM5NjUxLCAxLjU0MjU5LCAxLjkxOTM4IiwgXAotICAgICAgICAgICIwLjExNzI0NywgMC4xNjI3MDQsIDAuNDIwMDU0LCAwLjY0Njc5NiwgMC45NDg2MDcsIDEuNTUxNDEsIDEuOTI4MiIsIFwKLSAgICAgICAgICAiMC4xMjY3MTUsIDAuMTcyMDI4LCAwLjQyOTI0NywgMC42NTU5MSwgMC45NTc1OTQsIDEuNTYwNiwgMS45Mzc0OSIsIFwKLSAgICAgICAgICAiMC4xNDIxMDgsIDAuMTg3MTQyLCAwLjQ0Mzk1MSwgMC42NzA1NjIsIDAuOTcyMTg3LCAxLjU3NTA0LCAxLjk1MTgzIiwgXAotICAgICAgICAgICIwLjE1NDk0NiwgMC4yMDA0NDgsIDAuNDU2ODg3LCAwLjY4MzQyOSwgMC45ODQ5ODksIDEuNTg3ODMsIDEuOTY0NTUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTkxNTg4LCAwLjI4NDIxMSwgMC44MDk0NjMsIDEuMjczMiwgMS44OTE0OCwgMy4xMjgyMywgMy45MDE0MSIsIFwKLSAgICAgICAgICAiMC4xOTE1MiwgMC4yODQxNjQsIDAuODA5NDY5LCAxLjI3MzE0LCAxLjg5MTQxLCAzLjEyODExLCAzLjkwMTUxIiwgXAotICAgICAgICAgICIwLjE5Mjk3NSwgMC4yODQyMzYsIDAuODA5MTMzLCAxLjI3MzE4LCAxLjg5MTM3LCAzLjEyODQ3LCAzLjkwMTM0IiwgXAotICAgICAgICAgICIwLjE5NzM1OSwgMC4yODY1NDYsIDAuODA5NDY0LCAxLjI3MzEzLCAxLjg5MTYyLCAzLjEyODM0LCAzLjkwMTMxIiwgXAotICAgICAgICAgICIwLjIwMzQzNSwgMC4yOTA2MjMsIDAuODA5NDM2LCAxLjI3MzEsIDEuODkxMzcsIDMuMTI4NjEsIDMuOTAxMzkiLCBcCi0gICAgICAgICAgIjAuMjE0ODc0LCAwLjI5OTYyNiwgMC44MDk3NjgsIDEuMjczMTcsIDEuODkxMzgsIDMuMTI4NDMsIDMuOTAxMTUiLCBcCi0gICAgICAgICAgIjAuMjI1OTQ5LCAwLjMwODg5MSwgMC44MTIyNTUsIDEuMjczMTMsIDEuODkxMzYsIDMuMTI4NzMsIDMuOTAwODMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2MjE0LCAwLjAwNjIxNCwgMC4wMDYyMTMsIDAuMDA2MjEzLCAwLjAwNjIxMywgMC4wMDYyMTEsIDAuMDA2MjExIiwgXAotICAgICAgICAgICIwLjAwNjE5OSwgMC4wMDYyMDEsIDAuMDA2MjAzLCAwLjAwNjIwMywgMC4wMDYyMDIsIDAuMDA2MjAxLCAwLjAwNjIwMSIsIFwKLSAgICAgICAgICAiMC4wMDYxOTMsIDAuMDA2MTk2LCAwLjAwNjIsIDAuMDA2MjAxLCAwLjAwNjIwNCwgMC4wMDYyLCAwLjAwNjE5OSIsIFwKLSAgICAgICAgICAiMC4wMDYxOTIsIDAuMDA2MTk1LCAwLjAwNjE5OSwgMC4wMDYyLCAwLjAwNjIsIDAuMDA2MTk5LCAwLjAwNjE5NyIsIFwKLSAgICAgICAgICAiMC4wMDYxOTgsIDAuMDA2MiwgMC4wMDYyMDIsIDAuMDA2MjAxLCAwLjAwNjIwMiwgMC4wMDYxOTksIDAuMDA2MTk4IiwgXAotICAgICAgICAgICIwLjAwNjIyNCwgMC4wMDYyMTksIDAuMDA2MjEyLCAwLjAwNjIwNSwgMC4wMDYyMDYsIDAuMDA2MjAzLCAwLjAwNjIwMiIsIFwKLSAgICAgICAgICAiMC4wMDYyNiwgMC4wMDYyNDgsIDAuMDA2MjI2LCAwLjAwNjIxOSwgMC4wMDYyMTMsIDAuMDA2MjA4LCAwLjAwNjIwNiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTY5NiwgMC4wMDE2OTcsIDAuMDAxNjk3LCAwLjAwMTY5NywgMC4wMDE2OTcsIDAuMDAxNjk2LCAwLjAwMTY5NSIsIFwKLSAgICAgICAgICAiMC4wMDE2NjMsIDAuMDAxNjcxLCAwLjAwMTY4MiwgMC4wMDE2ODQsIDAuMDAxNjg1LCAwLjAwMTY4NiwgMC4wMDE2ODUiLCBcCi0gICAgICAgICAgIjAuMDAxNjQ0LCAwLjAwMTY1NCwgMC4wMDE2NzQsIDAuMDAxNjc4LCAwLjAwMTY4MSwgMC4wMDE2ODIsIDAuMDAxNjgyIiwgXAotICAgICAgICAgICIwLjAwMTY0MSwgMC4wMDE2NSwgMC4wMDE2NywgMC4wMDE2NzUsIDAuMDAxNjc5LCAwLjAwMTY4MSwgMC4wMDE2ODEiLCBcCi0gICAgICAgICAgIjAuMDAxNjU1LCAwLjAwMTY1OSwgMC4wMDE2NzIsIDAuMDAxNjc2LCAwLjAwMTY3OSwgMC4wMDE2ODEsIDAuMDAxNjgxIiwgXAotICAgICAgICAgICIwLjAwMTcwNCwgMC4wMDE2OTMsIDAuMDAxNjg1LCAwLjAwMTY4NCwgMC4wMDE2ODUsIDAuMDAxNjg0LCAwLjAwMTY4NCIsIFwKLSAgICAgICAgICAiMC4wMDE3NjYsIDAuMDAxNzQyLCAwLjAwMTcwNiwgMC4wMDE2OTgsIDAuMDAxNjk0LCAwLjAwMTY4OSwgMC4wMDE2ODgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1NzU5LCAwLjAwNTc2LCAwLjAwNTc2LCAwLjAwNTc1OSwgMC4wMDU3NiwgMC4wMDU3NTgsIDAuMDA1NzU4IiwgXAotICAgICAgICAgICIwLjAwNTc0NCwgMC4wMDU3NDksIDAuMDA1NzU3LCAwLjAwNTc1OCwgMC4wMDU3NTgsIDAuMDA1NzU3LCAwLjAwNTc1NyIsIFwKLSAgICAgICAgICAiMC4wMDU3MzEsIDAuMDA1NzM5LCAwLjAwNTc1MiwgMC4wMDU3NTUsIDAuMDA1NzU2LCAwLjAwNTc1NiwgMC4wMDU3NTUiLCBcCi0gICAgICAgICAgIjAuMDA1NzI1LCAwLjAwNTczNCwgMC4wMDU3NSwgMC4wMDU3NTMsIDAuMDA1NzU4LCAwLjAwNTc1NiwgMC4wMDU3NTMiLCBcCi0gICAgICAgICAgIjAuMDA1NzI3LCAwLjAwNTczNSwgMC4wMDU3NSwgMC4wMDU3NTMsIDAuMDA1NzU0LCAwLjAwNTc1NywgMC4wMDU3NTgiLCBcCi0gICAgICAgICAgIjAuMDA1NzUsIDAuMDA1NzUxLCAwLjAwNTc1NywgMC4wMDU3NTgsIDAuMDA1NzU5LCAwLjAwNTc1OSwgMC4wMDU3NTgiLCBcCi0gICAgICAgICAgIjAuMDA1NzgzLCAwLjAwNTc3OCwgMC4wMDU3NywgMC4wMDU3NjgsIDAuMDA1NzY1LCAwLjAwNTc2MywgMC4wMDU3NjEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDE2OTgsIDAuMDAxNjk5LCAwLjAwMTcsIDAuMDAxNywgMC4wMDE3LCAwLjAwMTY5OSwgMC4wMDE2OTgiLCBcCi0gICAgICAgICAgIjAuMDAxNjY2LCAwLjAwMTY3MywgMC4wMDE2ODUsIDAuMDAxNjg3LCAwLjAwMTY4OCwgMC4wMDE2ODgsIDAuMDAxNjg4IiwgXAotICAgICAgICAgICIwLjAwMTY1LCAwLjAwMTY1NywgMC4wMDE2NzcsIDAuMDAxNjgxLCAwLjAwMTY4NCwgMC4wMDE2ODUsIDAuMDAxNjg1IiwgXAotICAgICAgICAgICIwLjAwMTY1NCwgMC4wMDE2NiwgMC4wMDE2NzUsIDAuMDAxNjgsIDAuMDAxNjgyLCAwLjAwMTY4NCwgMC4wMDE2ODQiLCBcCi0gICAgICAgICAgIjAuMDAxNjc0LCAwLjAwMTY3MywgMC4wMDE2NzksIDAuMDAxNjgyLCAwLjAwMTY4NCwgMC4wMDE2ODQsIDAuMDAxNjg0IiwgXAotICAgICAgICAgICIwLjAwMTczMSwgMC4wMDE3MTYsIDAuMDAxNjk1LCAwLjAwMTY5MiwgMC4wMDE2OSwgMC4wMDE2ODgsIDAuMDAxNjg3IiwgXAotICAgICAgICAgICIwLjAwMTgwMywgMC4wMDE3NzIsIDAuMDAxNzIsIDAuMDAxNzA4LCAwLjAwMTcwMSwgMC4wMDE2OTUsIDAuMDAxNjkzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTIiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNTI0NSwgMC4wMDUyNDcsIDAuMDA1MjUsIDAuMDA1MjUsIDAuMDA1MjUsIDAuMDA1MjUsIDAuMDA1MjUiLCBcCi0gICAgICAgICAgIjAuMDA1MjMyLCAwLjAwNTI0MiwgMC4wMDUyNTUsIDAuMDA1MjU3LCAwLjAwNTI1OCwgMC4wMDUyNTgsIDAuMDA1MjU4IiwgXAotICAgICAgICAgICIwLjAwNTIxMiwgMC4wMDUyMjYsIDAuMDA1MjQ5LCAwLjAwNTI1MywgMC4wMDUyNTYsIDAuMDA1MjU4LCAwLjAwNTI1OCIsIFwKLSAgICAgICAgICAiMC4wMDUyMDEsIDAuMDA1MjE3LCAwLjAwNTI0NCwgMC4wMDUyNTIsIDAuMDA1MjU0LCAwLjAwNTI1NiwgMC4wMDUyNTciLCBcCi0gICAgICAgICAgIjAuMDA1MiwgMC4wMDUyMTQsIDAuMDA1MjQzLCAwLjAwNTI1LCAwLjAwNTI1MywgMC4wMDUyNTcsIDAuMDA1MjU3IiwgXAotICAgICAgICAgICIwLjAwNTIxNywgMC4wMDUyMjUsIDAuMDA1MjQ2LCAwLjAwNTI1MiwgMC4wMDUyNTYsIDAuMDA1MjU4LCAwLjAwNTI1OSIsIFwKLSAgICAgICAgICAiMC4wMDUyNDcsIDAuMDA1MjQ2LCAwLjAwNTI1NiwgMC4wMDUyNiwgMC4wMDUyNjEsIDAuMDA1MjYyLCAwLjAwNTI2MiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTY5NywgMC4wMDE2OTgsIDAuMDAxNywgMC4wMDE3LCAwLjAwMTcsIDAuMDAxNjk4LCAwLjAwMTY5OCIsIFwKLSAgICAgICAgICAiMC4wMDE2NjksIDAuMDAxNjc1LCAwLjAwMTY4NSwgMC4wMDE2ODgsIDAuMDAxNjg4LCAwLjAwMTY4OSwgMC4wMDE2ODgiLCBcCi0gICAgICAgICAgIjAuMDAxNjY4LCAwLjAwMTY3MSwgMC4wMDE2ODQsIDAuMDAxNjg1LCAwLjAwMTY4NiwgMC4wMDE2ODcsIDAuMDAxNjg2IiwgXAotICAgICAgICAgICIwLjAwMTcwMywgMC4wMDE2OTgsIDAuMDAxNjkyLCAwLjAwMTY5MSwgMC4wMDE2OSwgMC4wMDE2ODksIDAuMDAxNjg4IiwgXAotICAgICAgICAgICIwLjAwMTc1MSwgMC4wMDE3MzMsIDAuMDAxNzA4LCAwLjAwMTcwMSwgMC4wMDE2OTcsIDAuMDAxNjkzLCAwLjAwMTY5MSIsIFwKLSAgICAgICAgICAiMC4wMDE4NDUsIDAuMDAxODEzLCAwLjAwMTc0NSwgMC4wMDE3MjYsIDAuMDAxNzE0LCAwLjAwMTcwMywgMC4wMDE3IiwgXAotICAgICAgICAgICIwLjAwMTk1MSwgMC4wMDE4OTQsIDAuMDAxNzgzLCAwLjAwMTc1MiwgMC4wMDE3MzIsIDAuMDAxNzE4LCAwLjAwMTcxMSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQ2LCAwLjAwNDYwMSwgMC4wMDQ2MDEsIDAuMDA0NjAxLCAwLjAwNDYsIDAuMDA0NTk5LCAwLjAwNDU5NyIsIFwKLSAgICAgICAgICAiMC4wMDQ1ODcsIDAuMDA0NTg5LCAwLjAwNDU5LCAwLjAwNDU5LCAwLjAwNDU5LCAwLjAwNDU4OCwgMC4wMDQ1ODciLCBcCi0gICAgICAgICAgIjAuMDA0NjA5LCAwLjAwNDYwNCwgMC4wMDQ1OTUsIDAuMDA0NTkzLCAwLjAwNDU5MSwgMC4wMDQ1ODgsIDAuMDA0NTg3IiwgXAotICAgICAgICAgICIwLjAwNDYzOCwgMC4wMDQ2MjcsIDAuMDA0NjA2LCAwLjAwNDYsIDAuMDA0NTk2LCAwLjAwNDU5MSwgMC4wMDQ1ODkiLCBcCi0gICAgICAgICAgIjAuMDA0Njc5LCAwLjAwNDY1NywgMC4wMDQ2MiwgMC4wMDQ2MDksIDAuMDA0NjAyLCAwLjAwNDU5NSwgMC4wMDQ1OTEiLCBcCi0gICAgICAgICAgIjAuMDA0NzcyLCAwLjAwNDcyOSwgMC4wMDQ2NTQsIDAuMDA0NjM0LCAwLjAwNDYxOSwgMC4wMDQ2MDUsIDAuMDA0NjAxIiwgXAotICAgICAgICAgICIwLjAwNDg3NSwgMC4wMDQ4MDYsIDAuMDA0NjkzLCAwLjAwNDY1OSwgMC4wMDQ2NCwgMC4wMDQ2MTcsIDAuMDA0NjEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDA1MDQsIDAuMDAwNTA4LCAwLjAwMDUxNCwgMC4wMDA1MTUsIDAuMDAwNTE1LCAwLjAwMDUxNiwgMC4wMDA1MTYiLCBcCi0gICAgICAgICAgIjAuMDAwNDg4LCAwLjAwMDUwNCwgMC4wMDA1MjgsIDAuMDAwNTM0LCAwLjAwMDUzNiwgMC4wMDA1MzksIDAuMDAwNTQiLCBcCi0gICAgICAgICAgIjAuMDAwNDYxLCAwLjAwMDQ4MywgMC4wMDA1MjIsIDAuMDAwNTMxLCAwLjAwMDUzNiwgMC4wMDA1NCwgMC4wMDA1NDIiLCBcCi0gICAgICAgICAgIjAuMDAwNDUyLCAwLjAwMDQ3NCwgMC4wMDA1MTcsIDAuMDAwNTI4LCAwLjAwMDUzNCwgMC4wMDA1NCwgMC4wMDA1NDIiLCBcCi0gICAgICAgICAgIjAuMDAwNDYyLCAwLjAwMDQ3OCwgMC4wMDA1MTYsIDAuMDAwNTI3LCAwLjAwMDUzNCwgMC4wMDA1NCwgMC4wMDA1NDIiLCBcCi0gICAgICAgICAgIjAuMDAwNTA3LCAwLjAwMDUwNiwgMC4wMDA1MjUsIDAuMDAwNTMzLCAwLjAwMDUzOCwgMC4wMDA1NDIsIDAuMDAwNTQ0IiwgXAotICAgICAgICAgICIwLjAwMDU3LCAwLjAwMDU0OCwgMC4wMDA1NDIsIDAuMDAwNTQ0LCAwLjAwMDU0NSwgMC4wMDA1NDcsIDAuMDAwNTQ4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDE0MSwgMC4wMDQxNDIsIDAuMDA0MTQzLCAwLjAwNDE0NCwgMC4wMDQxNDMsIDAuMDA0MTQyLCAwLjAwNDE0MSIsIFwKLSAgICAgICAgICAiMC4wMDQxMywgMC4wMDQxMzQsIDAuMDA0MTQsIDAuMDA0MTQxLCAwLjAwNDE0MSwgMC4wMDQxNDEsIDAuMDA0MTQiLCBcCi0gICAgICAgICAgIjAuMDA0MTM4LCAwLjAwNDEzOSwgMC4wMDQxNDIsIDAuMDA0MTQyLCAwLjAwNDE0MSwgMC4wMDQxNDEsIDAuMDA0MTQiLCBcCi0gICAgICAgICAgIjAuMDA0MTYyLCAwLjAwNDE1NywgMC4wMDQxNDksIDAuMDA0MTQ2LCAwLjAwNDE0NSwgMC4wMDQxNDIsIDAuMDA0MTQxIiwgXAotICAgICAgICAgICIwLjAwNDIyNCwgMC4wMDQyMDMsIDAuMDA0MTcyLCAwLjAwNDE2MiwgMC4wMDQxNTYsIDAuMDA0MTQ5LCAwLjAwNDE0NyIsIFwKLSAgICAgICAgICAiMC4wMDQzMDgsIDAuMDA0MjY4LCAwLjAwNDIwMSwgMC4wMDQxODUsIDAuMDA0MTcxLCAwLjAwNDE1OSwgMC4wMDQxNTUiLCBcCi0gICAgICAgICAgIjAuMDA0NDA0LCAwLjAwNDMzNiwgMC4wMDQyMzYsIDAuMDA0MjExLCAwLjAwNDE5MSwgMC4wMDQxNzEsIDAuMDA0MTY1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwNTAyLCAwLjAwMDUwNiwgMC4wMDA1MTEsIDAuMDAwNTEyLCAwLjAwMDUxMywgMC4wMDA1MTMsIDAuMDAwNTE0IiwgXAotICAgICAgICAgICIwLjAwMDQ4OCwgMC4wMDA1MDMsIDAuMDAwNTI3LCAwLjAwMDUzMiwgMC4wMDA1MzQsIDAuMDAwNTM3LCAwLjAwMDUzNyIsIFwKLSAgICAgICAgICAiMC4wMDA0NjYsIDAuMDAwNDg3LCAwLjAwMDUyMiwgMC4wMDA1MywgMC4wMDA1MzUsIDAuMDAwNTM5LCAwLjAwMDU0IiwgXAotICAgICAgICAgICIwLjAwMDQ2NSwgMC4wMDA0ODMsIDAuMDAwNTE5LCAwLjAwMDUyOCwgMC4wMDA1MzQsIDAuMDAwNTM5LCAwLjAwMDU0IiwgXAotICAgICAgICAgICIwLjAwMDQ4MSwgMC4wMDA0OTEsIDAuMDAwNTIsIDAuMDAwNTI5LCAwLjAwMDUzNCwgMC4wMDA1MzksIDAuMDAwNTQxIiwgXAotICAgICAgICAgICIwLjAwMDUzMywgMC4wMDA1MjcsIDAuMDAwNTMyLCAwLjAwMDUzNiwgMC4wMDA1MzksIDAuMDAwNTQyLCAwLjAwMDU0NCIsIFwKLSAgICAgICAgICAiMC4wMDA1OTgsIDAuMDAwNTcyLCAwLjAwMDU0OSwgMC4wMDA1NDcsIDAuMDAwNTQ3LCAwLjAwMDU0NywgMC4wMDA1NDciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzNjE1LCAwLjAwMzYxOCwgMC4wMDM2MjIsIDAuMDAzNjIyLCAwLjAwMzYyMiwgMC4wMDM2MjIsIDAuMDAzNjIyIiwgXAotICAgICAgICAgICIwLjAwMzYwOSwgMC4wMDM2MTYsIDAuMDAzNjI3LCAwLjAwMzYyOSwgMC4wMDM2MywgMC4wMDM2MzEsIDAuMDAzNjMiLCBcCi0gICAgICAgICAgIjAuMDAzNjIsIDAuMDAzNjI1LCAwLjAwMzYzLCAwLjAwMzYzMiwgMC4wMDM2MzIsIDAuMDAzNjMyLCAwLjAwMzYzMSIsIFwKLSAgICAgICAgICAiMC4wMDM2NDEsIDAuMDAzNjQxLCAwLjAwMzYzOCwgMC4wMDM2MzcsIDAuMDAzNjM2LCAwLjAwMzYzNCwgMC4wMDM2MzQiLCBcCi0gICAgICAgICAgIjAuMDAzNjc2LCAwLjAwMzY2NCwgMC4wMDM2NTEsIDAuMDAzNjQ1LCAwLjAwMzY0MiwgMC4wMDM2MzgsIDAuMDAzNjM2IiwgXAotICAgICAgICAgICIwLjAwMzc2MiwgMC4wMDM3MjgsIDAuMDAzNjc4LCAwLjAwMzY2NywgMC4wMDM2NTcsIDAuMDAzNjQ4LCAwLjAwMzY0NCIsIFwKLSAgICAgICAgICAiMC4wMDM4NiwgMC4wMDM3OTksIDAuMDAzNzEyLCAwLjAwMzY5MywgMC4wMDM2NzIsIDAuMDAzNjU3LCAwLjAwMzY1MiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDQ5OSwgMC4wMDA1MDQsIDAuMDAwNTEsIDAuMDAwNTExLCAwLjAwMDUxMiwgMC4wMDA1MTMsIDAuMDAwNTEzIiwgXAotICAgICAgICAgICIwLjAwMDQ5NCwgMC4wMDA1MDcsIDAuMDAwNTI3LCAwLjAwMDUzMiwgMC4wMDA1MzQsIDAuMDAwNTM2LCAwLjAwMDUzNyIsIFwKLSAgICAgICAgICAiMC4wMDA1LCAwLjAwMDUwMiwgMC4wMDA1MjgsIDAuMDAwNTMzLCAwLjAwMDUzNiwgMC4wMDA1MzksIDAuMDAwNTQiLCBcCi0gICAgICAgICAgIjAuMDAwNTIsIDAuMDAwNTIyLCAwLjAwMDUzNCwgMC4wMDA1MzcsIDAuMDAwNTQsIDAuMDAwNTQyLCAwLjAwMDU0MyIsIFwKLSAgICAgICAgICAiMC4wMDA1NiwgMC4wMDA1NTIsIDAuMDAwNTQ3LCAwLjAwMDU0NiwgMC4wMDA1NDYsIDAuMDAwNTQ2LCAwLjAwMDU0NiIsIFwKLSAgICAgICAgICAiMC4wMDA2NTEsIDAuMDAwNjE5LCAwLjAwMDU3OCwgMC4wMDA1NjcsIDAuMDAwNTYsIDAuMDAwNTU1LCAwLjAwMDU1NCIsIFwKLSAgICAgICAgICAiMC4wMDA3NjMsIDAuMDAwNjkxLCAwLjAwMDYwOSwgMC4wMDA1OTMsIDAuMDAwNTc5LCAwLjAwMDU2NywgMC4wMDA1NjMiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBBT0kzM1gyICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKEFPSTMzWDIpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC45NTQ3OTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQTApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTg3ODE5OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTg3MzQ5OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTg3ODE5OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTA0OSwgMC4wMDEwNDgsIDAuMDAxMDQ4LCAwLjAwMTA0NywgMC4wMDEwNDcsIDAuMDAxMDQ3LCAwLjAwMTA0NyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTA0OSwgMC4wMDEwNTEsIDAuMDAxMDUsIDAuMDAxMDUsIDAuMDAxMDUxLCAwLjAwMTA1MSwgMC4wMDEwNTIiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEExKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE4NjQwNTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE4NTc5ODsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE4NjQwNTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDEwNDksIDAuMDAxMDQ4LCAwLjAwMTA0NywgMC4wMDEwNDcsIDAuMDAxMDQ3LCAwLjAwMTA0NywgMC4wMDEwNDciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDEwNDksIDAuMDAxMDUsIDAuMDAxMDUxLCAwLjAwMTA1MSwgMC4wMDEwNTEsIDAuMDAxMDUyLCAwLjAwMTA1MiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQTIpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTcyMjU0OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTcxMzUzOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTcyMjU0OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDYxNSwgMC4wMDA2MTUsIDAuMDAwNjE0LCAwLjAwMDYxNCwgMC4wMDA2MTQsIDAuMDAwNjE0LCAwLjAwMDYxNCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTE5MSwgMC4wMDExOTEsIDAuMDAxMTkyLCAwLjAwMTE5MiwgMC4wMDExOTIsIDAuMDAxMTkyLCAwLjAwMTE5MiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQjApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTg5Njk2OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTg5Njk2OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTg5MzA2OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTA0OSwgMC4wMDEwNDgsIDAuMDAxMDQ4LCAwLjAwMTA0NywgMC4wMDEwNDgsIDAuMDAxMDQ4LCAwLjAwMTA0NyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTA0OSwgMC4wMDEwNDksIDAuMDAxMDUsIDAuMDAxMDUsIDAuMDAxMDUsIDAuMDAxMDUsIDAuMDAxMDUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIxKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE4NDY5NTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE4NDY5NTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE4NDQzNTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDEwNDksIDAuMDAxMDQ4LCAwLjAwMTA0OCwgMC4wMDEwNDgsIDAuMDAxMDQ4LCAwLjAwMTA0OCwgMC4wMDEwNDciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDEwNDksIDAuMDAxMDUsIDAuMDAxMDUsIDAuMDAxMDUsIDAuMDAxMDUxLCAwLjAwMTA1MSwgMC4wMDEwNTEiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIyKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE2OTQ0MTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE2OTM5NzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE2OTQ0MTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA1OTQsIDAuMDAwNTk0LCAwLjAwMDU5NCwgMC4wMDA1OTQsIDAuMDAwNTkzLCAwLjAwMDU5NCwgMC4wMDA1OTMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDExOTEsIDAuMDAxMTkxLCAwLjAwMTE5MSwgMC4wMDExOTEsIDAuMDAxMTkxLCAwLjAwMTE5MSwgMC4wMDExOTEiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4yODQ4OTk7Ci0gICAgZnVuY3Rpb24gOiAiKCEoKChCMCBCMSkgQjIpKygoQTAgQTEpIEEyKSkpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU2OTA4LCAwLjE5OTMzLCAwLjMxNDI1NywgMC40NTgwNywgMC42MDE2ODEsIDAuNzQ0ODEyLCAwLjg4ODU0NSIsIFwKLSAgICAgICAgICAiMC4wNjQ0MjEsIDAuMjA2OTEzLCAwLjMyMTgwNCwgMC40NjUzNzMsIDAuNjA5NTQ2LCAwLjc1MjUwNywgMC44OTY2OTIiLCBcCi0gICAgICAgICAgIjAuMDcyMjcsIDAuMjE0ODM4LCAwLjMyOTc2NCwgMC40NzMzOTQsIDAuNjE2NzI3LCAwLjc2MDM4LCAwLjkwNDY5NyIsIFwKLSAgICAgICAgICAiMC4wNzk3MTIsIDAuMjIyMjY2LCAwLjMzNzEyMiwgMC40ODA4NjYsIDAuNjI0NDIyLCAwLjc2ODMxNSwgMC45MTE0OTEiLCBcCi0gICAgICAgICAgIjAuMDg2NDU1LCAwLjIyOTY4NiwgMC4zNDQyNTksIDAuNDg3OTk5LCAwLjYzMTkyNiwgMC43NzU0MDEsIDAuOTE5MzA0IiwgXAotICAgICAgICAgICIwLjA5NTU5OSwgMC4yNDEzNDEsIDAuMzU2MTE0LCAwLjQ5OTc3MywgMC42NDM4NjMsIDAuNzg3MzYsIDAuOTMxMTk1IiwgXAotICAgICAgICAgICIwLjEwMjI2MSwgMC4yNTE4MzUsIDAuMzY2MjQ5LCAwLjUxMDA2LCAwLjY1MzUxNywgMC43OTc3OTcsIDAuOTQwODk2Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5Mjc0MSwgMC4zOTYzMTQsIDAuNjQwNzc0LCAwLjk0NzcxMSwgMS4yNTQ3LCAxLjU2MDk2LCAxLjg2NzYyIiwgXAotICAgICAgICAgICIwLjA5Mjg2NCwgMC4zOTYxNzcsIDAuNjQwODcsIDAuOTQ3MzYsIDEuMjU0MzksIDEuNTYxMjUsIDEuODY3NjIiLCBcCi0gICAgICAgICAgIjAuMDk0NzAxLCAwLjM5NjE0NSwgMC42NDA5NjQsIDAuOTQ3NTUyLCAxLjI1NTA5LCAxLjU2MTA5LCAxLjg2NzY1IiwgXAotICAgICAgICAgICIwLjA5ODMzMSwgMC4zOTY0OTMsIDAuNjQxMDg3LCAwLjk0NzU1MSwgMS4yNTQyOCwgMS41NjEzMSwgMS44NjY5NyIsIFwKLSAgICAgICAgICAiMC4xMDMxNjgsIDAuMzk3NzE2LCAwLjY0MTE5NSwgMC45NDc3MTUsIDEuMjU0MjUsIDEuNTYwNjksIDEuODY3NjkiLCBcCi0gICAgICAgICAgIjAuMTEyNjkzLCAwLjQwMTUwOSwgMC42NDI0MTcsIDAuOTQ4MDg5LCAxLjI1NDA5LCAxLjU2MDg1LCAxLjg2NzYxIiwgXAotICAgICAgICAgICIwLjEyMTI4NywgMC40MDYzNTUsIDAuNjQ1MjAzLCAwLjk0ODM0LCAxLjI1NDI1LCAxLjU2MDksIDEuODY3NDYiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc1OTI3LCAwLjI2NTcyNCwgMC40MTcxMSwgMC42MDU3NCwgMC43OTUwMzQsIDAuOTgzNTkzLCAxLjE3MjI1IiwgXAotICAgICAgICAgICIwLjA4MTI5OCwgMC4yNzExNDMsIDAuNDIyMzMsIDAuNjExMTUxLCAwLjgwMDA0NywgMC45ODkwMzMsIDEuMTc4NDUiLCBcCi0gICAgICAgICAgIjAuMDg3MjU4LCAwLjI3NzM2MiwgMC40Mjg2OCwgMC42MTczNjMsIDAuODA2NjAyLCAwLjk5NTA5MSwgMS4xODQ4MiIsIFwKLSAgICAgICAgICAiMC4wOTMzNiwgMC4yODMzNjEsIDAuNDM0NTcxLCAwLjYyMzQ5OCwgMC44MTIzODYsIDEuMDAyMTYsIDEuMTkwNTgiLCBcCi0gICAgICAgICAgIjAuMDk5NDU3LCAwLjI4OTM1LCAwLjQ0MDYzNywgMC42Mjk5OTQsIDAuODE4NTg0LCAxLjAwNzc4LCAxLjE5NjAxIiwgXAotICAgICAgICAgICIwLjEwODM1LCAwLjI5OTE5MiwgMC40NTA2MDksIDAuNjM5MzMsIDAuODI4NTEzLCAxLjAxNzY3LCAxLjIwNjMzIiwgXAotICAgICAgICAgICIwLjExNTU1MiwgMC4zMDc4NjcsIDAuNDU5MjU0LCAwLjY0ODI2LCAwLjgzNzE1OSwgMS4wMjU2OCwgMS4yMTUyNiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMzI2NDcsIDAuNTIxMjAxLCAwLjgzMjM5LCAxLjIyMTMyLCAxLjYxMDQxLCAxLjk5OTM5LCAyLjM4ODgyIiwgXAotICAgICAgICAgICIwLjEzMjY5NywgMC41MjEyNjgsIDAuODMyMzMyLCAxLjIyMTQxLCAxLjYxMDM2LCAxLjk5OTI4LCAyLjM4NzkxIiwgXAotICAgICAgICAgICIwLjEzNDExOSwgMC41MjEzMzQsIDAuODMyNDg2LCAxLjIyMTQ0LCAxLjYxMDQ2LCAxLjk5OTM3LCAyLjM4ODIiLCBcCi0gICAgICAgICAgIjAuMTM2OTM2LCAwLjUyMTMyNCwgMC44MzIzNzEsIDEuMjIxMjcsIDEuNjEwMzQsIDEuOTk5NDcsIDIuMzg4MjMiLCBcCi0gICAgICAgICAgIjAuMTQwNjc2LCAwLjUyMjAxOCwgMC44MzI0MzEsIDEuMjIxNDQsIDEuNjEwMzUsIDEuOTk5NTMsIDIuMzg4NDQiLCBcCi0gICAgICAgICAgIjAuMTQ4MTEzLCAwLjUyNDE4NCwgMC44MzI4ODYsIDEuMjIxMzIsIDEuNjEwMzQsIDEuOTk5NDEsIDIuMzg3NjgiLCBcCi0gICAgICAgICAgIjAuMTU1NjIxLCAwLjUyNzA4MywgMC44MzQxOCwgMS4yMjE0LCAxLjYxMDQsIDEuOTk5MjcsIDIuMzg4MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1NTE1NiwgMC4xOTgzNzYsIDAuMzEyNTg5LCAwLjQ1NTM4MSwgMC41OTg1MjQsIDAuNzQwNjU3LCAwLjg4NDA5IiwgXAotICAgICAgICAgICIwLjA2MjY0LCAwLjIwNTk4MywgMC4zMjA0NTIsIDAuNDYzMTI2LCAwLjYwNjA0LCAwLjc0ODg2MywgMC44OTE4NDIiLCBcCi0gICAgICAgICAgIjAuMDcwNDExLCAwLjIxMzgyNywgMC4zMjgxMTMsIDAuNDcxMDA2LCAwLjYxMzcyOCwgMC43NTY3OCwgMC44OTg4NjMiLCBcCi0gICAgICAgICAgIjAuMDc3NzQ1LCAwLjIyMTIwNywgMC4zMzU2MTIsIDAuNDc4NTcxLCAwLjYyMTA2LCAwLjc2NDI0LCAwLjkwNjQ4OCIsIFwKLSAgICAgICAgICAiMC4wODQzNTgsIDAuMjI4NTY0LCAwLjM0MjkzOCwgMC40ODU2OTEsIDAuNjI4NDI5LCAwLjc3MTIyMSwgMC45MTQxNCIsIFwKLSAgICAgICAgICAiMC4wOTMxMDMsIDAuMjQwMTU3LCAwLjM1NDcxNSwgMC40OTc1MzIsIDAuNjQwNjYxLCAwLjc4MzA0MiwgMC45MjYwMzQiLCBcCi0gICAgICAgICAgIjAuMDk5Njc4LCAwLjI1MDQxNCwgMC4zNjQ4NTcsIDAuNTA3NywgMC42NDk5ODgsIDAuNzkzNzIyLCAwLjkzNjAzNSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTA2MDksIDAuMzkzMzU4LCAwLjYzNTgxMiwgMC45NDA5MzMsIDEuMjQ2NTQsIDEuNTUyMTksIDEuODU3NjciLCBcCi0gICAgICAgICAgIjAuMDkwNzA4LCAwLjM5MzM3OSwgMC42MzU2MjEsIDAuOTQxMTU5LCAxLjI0NjQ0LCAxLjU1MjEsIDEuODU2ODgiLCBcCi0gICAgICAgICAgIjAuMDkyNjMxLCAwLjM5MzMwMiwgMC42MzU0MzYsIDAuOTQxMTY2LCAxLjI0NTkzLCAxLjU1MTk5LCAxLjg1NzgyIiwgXAotICAgICAgICAgICIwLjA5NjM2MywgMC4zOTM2ODQsIDAuNjM1NDUyLCAwLjk0MDgyLCAxLjI0NTg5LCAxLjU1MjEsIDEuODU2MTQiLCBcCi0gICAgICAgICAgIjAuMTAxMjY0LCAwLjM5NDg5NywgMC42MzU4ODIsIDAuOTQwNTc0LCAxLjI0NjA1LCAxLjU1Mjc0LCAxLjg1NjE5IiwgXAotICAgICAgICAgICIwLjExMDY5MywgMC4zOTg2ODksIDAuNjM2ODQ0LCAwLjk0MDc0MiwgMS4yNDYzNSwgMS41NTEyNywgMS44NTc0NiIsIFwKLSAgICAgICAgICAiMC4xMTkyMzUsIDAuNDAzNDczLCAwLjYzOTY2MywgMC45NDE3NjksIDEuMjQ2NTYsIDEuNTUxOTMsIDEuODU3NzkiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc0MzMzLCAwLjI2NDAzNCwgMC40MTUzODQsIDAuNjA0MzM4LCAwLjc5MzI4MSwgMC45ODE4MDksIDEuMTcxMTYiLCBcCi0gICAgICAgICAgIjAuMDgwNjcxLCAwLjI3MDU3NCwgMC40MjE2NzYsIDAuNjEwNTQyLCAwLjc5OTYyNCwgMC45ODgwOTgsIDEuMTc3MTciLCBcCi0gICAgICAgICAgIjAuMDg4NzgsIDAuMjc4ODU2LCAwLjQyOTk1NCwgMC42MTkzNTksIDAuODA3ODA4LCAwLjk5Njk2LCAxLjE4NjMiLCBcCi0gICAgICAgICAgIjAuMDk3MDM0LCAwLjI4NzA1MiwgMC40Mzg1MjUsIDAuNjI3NDA2LCAwLjgxNjAxNywgMS4wMDUzNCwgMS4xOTM2OCIsIFwKLSAgICAgICAgICAiMC4xMDUzOCwgMC4yOTUzODIsIDAuNDQ2ODY5LCAwLjYzNTY5NywgMC44MjQzNTksIDEuMDEzMjksIDEuMjAyMjgiLCBcCi0gICAgICAgICAgIjAuMTE4MDkyLCAwLjMwODU0NywgMC40NTk4NzgsIDAuNjQ5MjgzLCAwLjgzODA3NywgMS4wMjY1MywgMS4yMTU0MyIsIFwKLSAgICAgICAgICAiMC4xMjc1MDEsIDAuMzIwMzEzLCAwLjQ3MTc0MSwgMC42NTkzNzYsIDAuODQ5MzY5LCAxLjAzODE3LCAxLjIyNzIxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEzMjY4MywgMC41MjEzNywgMC44MzIzMzMsIDEuMjIxNDEsIDEuNjEwNDQsIDEuOTk5MzUsIDIuMzg4NDciLCBcCi0gICAgICAgICAgIjAuMTMyNjg3LCAwLjUyMTM0LCAwLjgzMjQ5NSwgMS4yMjE0MSwgMS42MTAzNywgMS45OTkzNywgMi4zODc4NiIsIFwKLSAgICAgICAgICAiMC4xMzQ4MDcsIDAuNTIxMjg4LCAwLjgzMjM4MSwgMS4yMjEzNCwgMS42MTAzOCwgMS45OTkyOSwgMi4zODg4IiwgXAotICAgICAgICAgICIwLjEzOTE0OSwgMC41MjEzNTQsIDAuODMyMzk3LCAxLjIyMTQyLCAxLjYxMDM1LCAxLjk5OTI5LCAyLjM4ODYzIiwgXAotICAgICAgICAgICIwLjE0NDM5OSwgMC41MjE4NTUsIDAuODMyMzE5LCAxLjIyMTQ4LCAxLjYxMDM1LCAxLjk5OTI4LCAyLjM4ODY5IiwgXAotICAgICAgICAgICIwLjE1NDQ4NSwgMC41MjQ3OTksIDAuODMyNjI5LCAxLjIyMTI3LCAxLjYxMDM3LCAxLjk5OTMsIDIuMzg4NDEiLCBcCi0gICAgICAgICAgIjAuMTYzNzIxLCAwLjUyODgzNiwgMC44MzQxNTYsIDEuMjIxNDIsIDEuNjEwMzMsIDEuOTk5MzQsIDIuMzg3NyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDUzNjYzLCAwLjE5ODkyNiwgMC4zMTQ2NzUsIDAuNDU5NzI3LCAwLjYwNDU1OCwgMC43NDk0MDIsIDAuODkzODY5IiwgXAotICAgICAgICAgICIwLjA2MTE1NSwgMC4yMDY1ODgsIDAuMzIyMzg1LCAwLjQ2NzE3OSwgMC42MTIzLCAwLjc1NzI5LCAwLjkwMTkyMyIsIFwKLSAgICAgICAgICAiMC4wNjg4OTksIDAuMjE0NDQyLCAwLjMzMDI5LCAwLjQ3NTE4NiwgMC42MTk5ODgsIDAuNzY0NTM2LCAwLjkwOTY4MiIsIFwKLSAgICAgICAgICAiMC4wNzYyMDYsIDAuMjIxODM5LCAwLjMzNzgzMywgMC40ODI5MTQsIDAuNjI3NjI5LCAwLjc3Mjg4OSwgMC45MTY5MTYiLCBcCi0gICAgICAgICAgIjAuMDgyNjY3LCAwLjIyOTA5MSwgMC4zNDQ4NzIsIDAuNDg5OTk5LCAwLjYzNDczMiwgMC43Nzk4ODIsIDAuOTI0NDAxIiwgXAotICAgICAgICAgICIwLjA5MTI3NiwgMC4yNDA4NzQsIDAuMzU2ODUxLCAwLjUwMTQ3MSwgMC42NDY1OTYsIDAuNzkxMjY4LCAwLjkzNjUxMyIsIFwKLSAgICAgICAgICAiMC4wOTc1MTgsIDAuMjUxMjY5LCAwLjM2Njg4MywgMC41MTIwMDUsIDAuNjU1ODk0LCAwLjgwMjIwNSwgMC45NDY2ODkiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg5MTM3LCAwLjM5NjA1NSwgMC42NDE4MTEsIDAuOTUwODg2LCAxLjI2MTE4LCAxLjU3MDIxLCAxLjg3OTUzIiwgXAotICAgICAgICAgICIwLjA4OTIyNSwgMC4zOTYwNDYsIDAuNjQxODYzLCAwLjk1MTMzMywgMS4yNjA0MSwgMS41NzA3NSwgMS44Nzk4OCIsIFwKLSAgICAgICAgICAiMC4wOTExODYsIDAuMzk1ODksIDAuNjQxNywgMC45NTA3NDksIDEuMjYwNDcsIDEuNTcwODEsIDEuODgwMDciLCBcCi0gICAgICAgICAgIjAuMDk1MDA2LCAwLjM5NjI0NSwgMC42NDE1OTMsIDAuOTUxMTkyLCAxLjI2MDQ5LCAxLjU3MDkzLCAxLjg4MDUxIiwgXAotICAgICAgICAgICIwLjA5OTk4OSwgMC4zOTc1NCwgMC42NDE3MDEsIDAuOTUxMjA4LCAxLjI2MDQsIDEuNTcwMTYsIDEuODgwNzMiLCBcCi0gICAgICAgICAgIjAuMTA5NzA3LCAwLjQwMTM5MSwgMC42NDM3NjcsIDAuOTUwODk4LCAxLjI2MDgxLCAxLjU3MDg3LCAxLjg4MDAyIiwgXAotICAgICAgICAgICIwLjExODI3LCAwLjQwNjI3NywgMC42NDU3NTUsIDAuOTUxOTk4LCAxLjI2MSwgMS41NzAxMSwgMS44Nzk1NCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzEzNzMsIDAuMjYxMDg3LCAwLjQxMjM0NiwgMC42MDE1NTUsIDAuNzkwMDk1LCAwLjk3ODY0LCAxLjE2ODY3IiwgXAotICAgICAgICAgICIwLjA3ODMwNSwgMC4yNjgxODEsIDAuNDE5MjgyLCAwLjYwODA5NywgMC43OTY5NzQsIDAuOTg1Njg0LCAxLjE3NDYxIiwgXAotICAgICAgICAgICIwLjA4NzM4NiwgMC4yNzcwNTksIDAuNDI4MzIsIDAuNjE3MDMyLCAwLjgwNjI3NywgMC45OTQ4NzIsIDEuMTgzNjMiLCBcCi0gICAgICAgICAgIjAuMDk2OTU4LCAwLjI4NjM0LCAwLjQzNzYyLCAwLjYyNjMxNSwgMC44MTU5MjUsIDEuMDAzOSwgMS4xOTQiLCBcCi0gICAgICAgICAgIjAuMTA2NDE1LCAwLjI5NTMzOCwgMC40NDY2NjQsIDAuNjM1MzM4LCAwLjgyNDE0MywgMS4wMTI5MiwgMS4yMDMiLCBcCi0gICAgICAgICAgIjAuMTIxMTg5LCAwLjMxMDE3LCAwLjQ2MTIxOSwgMC42NTAyNjksIDAuODM4ODc4LCAxLjAyODAzLCAxLjIxNjI4IiwgXAotICAgICAgICAgICIwLjEzMjA3NCwgMC4zMjMzMjQsIDAuNDc0MTA0LCAwLjY2MzE3NywgMC44NTIwNzMsIDEuMDQwMDgsIDEuMjI5MzQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTMyNjkxLCAwLjUyMTMyLCAwLjgzMjMyLCAxLjIyMTMzLCAxLjYxMDQ1LCAxLjk5OTQsIDIuMzg4MjkiLCBcCi0gICAgICAgICAgIjAuMTMyNjQ5LCAwLjUyMTMzMSwgMC44MzI0NzgsIDEuMjIxMTgsIDEuNjEwMzUsIDEuOTk5MjgsIDIuMzg3ODkiLCBcCi0gICAgICAgICAgIjAuMTM1NzU2LCAwLjUyMTM0NiwgMC44MzIzNjksIDEuMjIxNDEsIDEuNjEwMzgsIDEuOTk5MjgsIDIuMzg4MjciLCBcCi0gICAgICAgICAgIjAuMTQxNDI5LCAwLjUyMTMzMywgMC44MzIzMTYsIDEuMjIxNDEsIDEuNjEwNDQsIDEuOTk5MzUsIDIuMzg4MTgiLCBcCi0gICAgICAgICAgIjAuMTQ4NTkyLCAwLjUyMTk2NSwgMC44MzIzNDUsIDEuMjIxMzgsIDEuNjEwMzUsIDEuOTk5MjQsIDIuMzg4NjEiLCBcCi0gICAgICAgICAgIjAuMTYxMjQzLCAwLjUyNTg5NCwgMC44MzI2MTgsIDEuMjIxNDMsIDEuNjEwMzMsIDEuOTk5NCwgMi4zODc3MyIsIFwKLSAgICAgICAgICAiMC4xNzI3ODYsIDAuNTMxMzk1LCAwLjgzNDY0MywgMS4yMjEyNywgMS42MTAzMywgMS45OTkzNSwgMi4zODg0OCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQ3NDA3LCAwLjE4OTg3NSwgMC4zMDQ3MDQsIDAuNDQ5MjE4LCAwLjU5MzQzNSwgMC43MzkxNTgsIDAuODgzNzYyIiwgXAotICAgICAgICAgICIwLjA1NTAwNSwgMC4xOTc0MywgMC4zMTE5ODQsIDAuNDU3MTE2LCAwLjYwMjIyMiwgMC43NDYzOTgsIDAuODkxMzEyIiwgXAotICAgICAgICAgICIwLjA2NDc5NiwgMC4yMDcxNjcsIDAuMzIxOTUzLCAwLjQ2NjM0MSwgMC42MTE2MDgsIDAuNzU1OTk5LCAwLjkwMTYxOSIsIFwKLSAgICAgICAgICAiMC4wNzQ1MDgsIDAuMjE2NTI3LCAwLjMzMTE1NiwgMC40NzU3NTMsIDAuNjIwMTExLCAwLjc2NDgxNSwgMC45MTAwMzQiLCBcCi0gICAgICAgICAgIjAuMDgzNzUzLCAwLjIyNjI0OSwgMC4zNDA3ODUsIDAuNDg1NjcsIDAuNjMwMTkxLCAwLjc3NDk0MywgMC45MTkyNjMiLCBcCi0gICAgICAgICAgIjAuMDk1NjgyLCAwLjI0MTg4MSwgMC4zNTYzNjksIDAuNTAwNDE1LCAwLjY0NjExLCAwLjc5MDczOCwgMC45MzQ5NTkiLCBcCi0gICAgICAgICAgIjAuMTA0NTg3LCAwLjI1NTYzMywgMC4zNjk4NDEsIDAuNTE0NDM1LCAwLjY1OTMyNSwgMC44MDQzNjUsIDAuOTQ4NjIyIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5MjUzOSwgMC4zOTYwNzEsIDAuNjQxODc4LCAwLjk0ODI2NywgMS4yNTQyMiwgMS41NjE1MSwgMS44Njg4IiwgXAotICAgICAgICAgICIwLjA5Mjc4NCwgMC4zOTYwNDUsIDAuNjQxNzk1LCAwLjk0ODU1MSwgMS4yNTU2LCAxLjU2MjQ2LCAxLjg2OTYzIiwgXAotICAgICAgICAgICIwLjA5Nzc1NywgMC4zOTYwMTEsIDAuNjQxODY4LCAwLjk0ODgxNywgMS4yNTU1MywgMS41NjE4NiwgMS44Njk1MyIsIFwKLSAgICAgICAgICAiMC4xMDUzMDIsIDAuMzk2NDQ1LCAwLjY0MTYyOCwgMC45NDkxMjgsIDEuMjU0NjksIDEuNTYyMzcsIDEuODY4NjUiLCBcCi0gICAgICAgICAgIjAuMTEzNiwgMC4zOTg3MDgsIDAuNjQxNzI2LCAwLjk0ODQ3OCwgMS4yNTU2OCwgMS41NjIxNSwgMS44Njg1MiIsIFwKLSAgICAgICAgICAiMC4xMjc2NCwgMC40MDU1MjksIDAuNjQzODUzLCAwLjk0ODYwOCwgMS4yNTU0MiwgMS41NjIyNCwgMS44Njg3NCIsIFwKLSAgICAgICAgICAiMC4xMzkzNjcsIDAuNDEzMzgyLCAwLjY0ODIzNiwgMC45NDk3NzEsIDEuMjU1MDMsIDEuNTYyNTMsIDEuODY4NjciKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU3NjM1LCAwLjI0NzQ0MywgMC4zOTg5NDQsIDAuNTg4MjQ0LCAwLjc3NzIwNywgMC45NjYxOTMsIDEuMTU0ODIiLCBcCi0gICAgICAgICAgIjAuMDYzMDQsIDAuMjUzMjg2LCAwLjQwNDc2NSwgMC41OTQwMTIsIDAuNzgzMDY1LCAwLjk3MjAxMSwgMS4xNjA4NSIsIFwKLSAgICAgICAgICAiMC4wNjg5NDMsIDAuMjU5Mzc2LCAwLjQxMDk1NSwgMC42MDAxODQsIDAuNzg5Mjg4LCAwLjk3ODI4NywgMS4xNjY5NCIsIFwKLSAgICAgICAgICAiMC4wNzQ5MzksIDAuMjY1NDY1LCAwLjQxNzA3NCwgMC42MDYyOTcsIDAuNzk1NDIsIDAuOTg0MzgsIDEuMTczMSIsIFwKLSAgICAgICAgICAiMC4wODA0NjIsIDAuMjcxNDQ3LCAwLjQyMzA3MywgMC42MTIzODcsIDAuODAxNTA0LCAwLjk5MDQ5MywgMS4xNzkxNyIsIFwKLSAgICAgICAgICAiMC4wODg0ODksIDAuMjgxNDAyLCAwLjQzMjkzMiwgMC42MjIyMTcsIDAuODExNDE1LCAxLjAwMDI4LCAxLjE4OTA0IiwgXAotICAgICAgICAgICIwLjA5NDY4NiwgMC4yODk3OCwgMC40NDE0OCwgMC42MzA4NDMsIDAuODE5OTY2LCAxLjAwODk2LCAxLjE5Nzc3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExNDcwMywgMC41MDI4NDYsIDAuODEzNzcxLCAxLjIwMjUyLCAxLjU5MTI5LCAxLjk4MDI4LCAyLjM2OTA2IiwgXAotICAgICAgICAgICIwLjExNDg0NywgMC41MDI4NzUsIDAuODEzNzMxLCAxLjIwMjQsIDEuNTkxMiwgMS45ODAwOCwgMi4zNjg4NiIsIFwKLSAgICAgICAgICAiMC4xMTY4NDcsIDAuNTAyNzI1LCAwLjgxMzcsIDEuMjAyMzYsIDEuNTkxMjMsIDEuOTgwMTgsIDIuMzY5IiwgXAotICAgICAgICAgICIwLjEyMDIzNiwgMC41MDI4MjYsIDAuODEzNiwgMS4yMDI0MiwgMS41OTExOSwgMS45ODAxMiwgMi4zNjkwNiIsIFwKLSAgICAgICAgICAiMC4xMjQ2MDYsIDAuNTAzNTI5LCAwLjgxMzYwNCwgMS4yMDI0MywgMS41OTEyMywgMS45ODAwNCwgMi4zNjg5NiIsIFwKLSAgICAgICAgICAiMC4xMzI4MzIsIDAuNTA2MTA1LCAwLjgxNDE2MSwgMS4yMDI0LCAxLjU5MTI4LCAxLjk4MDAzLCAyLjM2ODk3IiwgXAotICAgICAgICAgICIwLjE0MDYxOCwgMC41MDkxNTMsIDAuODE1NzEyLCAxLjIwMjUzLCAxLjU5MTEyLCAxLjk3OTg2LCAyLjM2ODg2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIxIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDU5NTYsIDAuMTkwMDYyLCAwLjMwNTAwOSwgMC40NDg2NTksIDAuNTkzMzg2LCAwLjczODQ3NywgMC44ODQyNiIsIFwKLSAgICAgICAgICAiMC4wNTM1NTQsIDAuMTk3NzI3LCAwLjMxMjc2MSwgMC40NTYzNjUsIDAuNjAwNzUyLCAwLjc0NTc5MiwgMC44OTE0NjQiLCBcCi0gICAgICAgICAgIjAuMDYzNDA1LCAwLjIwNzU0NywgMC4zMjI3MzYsIDAuNDY2MTMxLCAwLjYxMTIwOSwgMC43NTU2ODYsIDAuOTAxODkyIiwgXAotICAgICAgICAgICIwLjA3MzM5OSwgMC4yMTcxMywgMC4zMzIxODIsIDAuNDc1NzAzLCAwLjYxOTkzMiwgMC43NjU0MTUsIDAuOTEwNzQ5IiwgXAotICAgICAgICAgICIwLjA4MjQwMSwgMC4yMjYzMTgsIDAuMzQxMjQxLCAwLjQ4NDk4NywgMC42MjkxLCAwLjc3NDMwOSwgMC45MTk1OTUiLCBcCi0gICAgICAgICAgIjAuMDk0MTYxLCAwLjI0MjAxNSwgMC4zNTY4ODksIDAuNDk5ODE5LCAwLjY0NTMyMiwgMC43OTA0MywgMC45MzQ4MDQiLCBcCi0gICAgICAgICAgIjAuMTAyMzAxLCAwLjI1NTg1MywgMC4zNzA1MDQsIDAuNTEzOTQ1LCAwLjY1ODQ2MSwgMC44MDQxNDgsIDAuOTQ4NTY1Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5MTAyNywgMC4zOTYyOTUsIDAuNjQwNjUsIDAuOTQ4ODM1LCAxLjI1NTgxLCAxLjU2NDQxLCAxLjg3MTY2IiwgXAotICAgICAgICAgICIwLjA5MTMzNiwgMC4zOTYyMTYsIDAuNjQwNTcxLCAwLjk0ODMzMywgMS4yNTYwMSwgMS41NjQ1LCAxLjg3MTgiLCBcCi0gICAgICAgICAgIjAuMDk2NDI1LCAwLjM5NjA0NCwgMC42NDA2NDUsIDAuOTQ4MDQ0LCAxLjI1NTc5LCAxLjU2MzUxLCAxLjg3MTkxIiwgXAotICAgICAgICAgICIwLjEwMzczOCwgMC4zOTY0MjcsIDAuNjQwNDY4LCAwLjk0ODA4OSwgMS4yNTYyOCwgMS41NjM1NiwgMS44NzIzMyIsIFwKLSAgICAgICAgICAiMC4xMTIwMTYsIDAuMzk4NzI5LCAwLjY0MDU1NiwgMC45NDgyMzMsIDEuMjU2NzEsIDEuNTY0NiwgMS44NzEwMSIsIFwKLSAgICAgICAgICAiMC4xMjU4MSwgMC40MDU1NDQsIDAuNjQzMDQyLCAwLjk0ODE3MSwgMS4yNTYzMiwgMS41NjQwNywgMS44NzI1NiIsIFwKLSAgICAgICAgICAiMC4xMzc2NDksIDAuNDEzMjk0LCAwLjY0NzIxMiwgMC45NDkxMTYsIDEuMjU1NzcsIDEuNTY0MTIsIDEuODcwNjUiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU2MDQ0LCAwLjI0NTg2LCAwLjM5NzMyNywgMC41ODY1ODIsIDAuNzc1NzMxLCAwLjk2NDUxNiwgMS4xNTMyOCIsIFwKLSAgICAgICAgICAiMC4wNjI0NzksIDAuMjUyNjkyLCAwLjQwNDE5NiwgMC41OTM0MjQsIDAuNzgyNTQ5LCAwLjk3MTQwOSwgMS4xNjAyMiIsIFwKLSAgICAgICAgICAiMC4wNzA2MDksIDAuMjYxMDI3LCAwLjQxMjUyNSwgMC42MDE5MjEsIDAuNzkwOTU3LCAwLjk3OTg2NywgMS4xNjg2IiwgXAotICAgICAgICAgICIwLjA3ODYxNywgMC4yNjg2MzcsIDAuNDIwOCwgMC42MTAwODMsIDAuNzk5MTk1LCAwLjk4ODEzOCwgMS4xNzY4NyIsIFwKLSAgICAgICAgICAiMC4wODY1NTUsIDAuMjc3MzksIDAuNDI5MTY5LCAwLjYxODUyMywgMC44MDc1NywgMC45OTY0ODMsIDEuMTg1MjciLCBcCi0gICAgICAgICAgIjAuMDk3MTM1LCAwLjI5MDcyNSwgMC40NDIzNDgsIDAuNjMxNzExLCAwLjgyMDgxLCAxLjAwOTc5LCAxLjE5ODQ5IiwgXAotICAgICAgICAgICIwLjEwNTQzNywgMC4zMDI2MTQsIDAuNDU0MDA1LCAwLjY0MzQ3MywgMC44MzI1ODUsIDEuMDIxNDksIDEuMjEwMjgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTE0NzAyLCAwLjUwMjc4OSwgMC44MTM3MTksIDEuMjAyNDgsIDEuNTkxMjIsIDEuOTc5OTgsIDIuMzY4OTIiLCBcCi0gICAgICAgICAgIjAuMTE0OTIzLCAwLjUwMjg1MiwgMC44MTM3MjYsIDEuMjAyNDEsIDEuNTkxMTksIDEuOTc5OTUsIDIuMzY4NjkiLCBcCi0gICAgICAgICAgIjAuMTE4MTEsIDAuNTAyODU3LCAwLjgxMzcwOCwgMS4yMDI0NSwgMS41OTEyNCwgMS45Nzk4NCwgMi4zNjkiLCBcCi0gICAgICAgICAgIjAuMTIzMDI0LCAwLjUwMjczLCAwLjgxMzY5LCAxLjIwMjM3LCAxLjU5MTIyLCAxLjk3OTk0LCAyLjM2ODc4IiwgXAotICAgICAgICAgICIwLjEyOTIzOSwgMC41MDM1NTYsIDAuODEzNzA5LCAxLjIwMjMxLCAxLjU5MTIyLCAxLjk3OTg2LCAyLjM2OTA0IiwgXAotICAgICAgICAgICIwLjEzOTc4LCAwLjUwNjg5NywgMC44MTM5NjQsIDEuMjAyNCwgMS41OTExNSwgMS45Nzk5NywgMi4zNjg5OSIsIFwKLSAgICAgICAgICAiMC4xNDk2NzYsIDAuNTExMzgyLCAwLjgxNTcyNSwgMS4yMDIzNiwgMS41OTExMiwgMS45ODAwMywgMi4zNjkwNyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQzNzIyLCAwLjE4ODA5MSwgMC4zMDMzNTUsIDAuNDQ3MTksIDAuNTkxNTgyLCAwLjczNzYxNiwgMC44ODI4MDciLCBcCi0gICAgICAgICAgIjAuMDUxMzQ2LCAwLjE5NTgzNCwgMC4zMTA5MiwgMC40NTQ3MjYsIDAuNjAwMDYyLCAwLjc0NTQ1NiwgMC44OTE2MSIsIFwKLSAgICAgICAgICAiMC4wNjEwNTQsIDAuMjA1MzQyLCAwLjMyMDUzMSwgMC40NjQ1MzksIDAuNjA5OTI4LCAwLjc1NDI5OSwgMC45MDA2NjciLCBcCi0gICAgICAgICAgIjAuMDcwNzExLCAwLjIxNDc3NiwgMC4zMjk5MzgsIDAuNDczNjc1LCAwLjYxODM1NiwgMC43NjM3MTIsIDAuOTA5MDI4IiwgXAotICAgICAgICAgICIwLjA3OTMzLCAwLjIyNDQ4NSwgMC4zMzk2MTMsIDAuNDgzNTc4LCAwLjYyNzkzNywgMC43NzMzNTksIDAuOTE4ODUzIiwgXAotICAgICAgICAgICIwLjA5MDQyNiwgMC4yNDAxNDIsIDAuMzU1MjE4LCAwLjQ5ODQxNCwgMC42NDQxMTMsIDAuNzg5Mjc2LCAwLjkzNDIxNiIsIFwKLSAgICAgICAgICAiMC4wOTg5NTIsIDAuMjUzODExLCAwLjM2ODcyLCAwLjUxMjU3NCwgMC42NTcxNjMsIDAuODAyOTU5LCAwLjk0NzYzMyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODg1NjgsIDAuMzk1NTg4LCAwLjY0MTQ1OCwgMC45NTExNzksIDEuMjYyNTIsIDEuNTcwNzUsIDEuODc5OCIsIFwKLSAgICAgICAgICAiMC4wODg5NzksIDAuMzk1NTcyLCAwLjY0MTA0OCwgMC45NTEzMywgMS4yNjA5MiwgMS41NzA0NywgMS44ODA4MSIsIFwKLSAgICAgICAgICAiMC4wOTQzMjYsIDAuMzk1NTU0LCAwLjY0MjI0LCAwLjk1MDcwMSwgMS4yNjEwMywgMS41Njk3LCAxLjg4MDQ2IiwgXAotICAgICAgICAgICIwLjEwMjEyNCwgMC4zOTU3MiwgMC42NDExMjIsIDAuOTUyMzIzLCAxLjI2MDI5LCAxLjU2OTksIDEuODc5NDMiLCBcCi0gICAgICAgICAgIjAuMTEwODA1LCAwLjM5ODE1LCAwLjY0MjA4MiwgMC45NTA3NzQsIDEuMjYwOTMsIDEuNTcwOTEsIDEuODc5NTYiLCBcCi0gICAgICAgICAgIjAuMTI0NjgxLCAwLjQwNDk0NiwgMC42NDMzMzUsIDAuOTUxMDIyLCAxLjI2MDY2LCAxLjU3MDE1LCAxLjg4MDU5IiwgXAotICAgICAgICAgICIwLjEzNTQ1NywgMC40MTI3MDYsIDAuNjQ4MzI1LCAwLjk1MzA5MiwgMS4yNjAwOSwgMS41NzAyNywgMS44NzkyMyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTI5MzYsIDAuMjQyODI2LCAwLjM5NDI0MiwgMC41ODM0NDksIDAuNzcyNTI5LCAwLjk2MTQ4NSwgMS4xNTAyMyIsIFwKLSAgICAgICAgICAiMC4wNjAwODQsIDAuMjUwMTUsIDAuNDAxNjU5LCAwLjU5MDg4OCwgMC43Nzk5NjQsIDAuOTY4ODg1LCAxLjE1NzYiLCBcCi0gICAgICAgICAgIjAuMDY5MjAyLCAwLjI1OTEwMiwgMC40MTA2MzUsIDAuNTk5ODc3LCAwLjc4ODk1NiwgMC45Nzc4MDksIDEuMTY2NiIsIFwKLSAgICAgICAgICAiMC4wNzg2NTIsIDAuMjY3NDQ4LCAwLjQxOTg0NCwgMC42MDkwNzQsIDAuNzk4MTg4LCAwLjk4NzAzMiwgMS4xNzU4MyIsIFwKLSAgICAgICAgICAiMC4wODc3MTMsIDAuMjc3Mzg3LCAwLjQyODg0LCAwLjYxODAxOCwgMC44MDcwODMsIDAuOTk1OTQsIDEuMTg0NzQiLCBcCi0gICAgICAgICAgIjAuMTAwMjM2LCAwLjI5MjEwOCwgMC40NDM1NDMsIDAuNjMyNjc4LCAwLjgyMTY2OCwgMS4wMTA1OCwgMS4xOTkyNSIsIFwKLSAgICAgICAgICAiMC4xMDk1MDYsIDAuMzA1MzA3LCAwLjQ1NjQ3MiwgMC42NDMyNDQsIDAuODM0NTEyLCAxLjAyMzMsIDEuMjExOTkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTE0NjkyLCAwLjUwMjg3MywgMC44MTM3NCwgMS4yMDI0MiwgMS41OTEyOCwgMS45ODAyLCAyLjM2ODkzIiwgXAotICAgICAgICAgICIwLjExNDk1OSwgMC41MDI4MTUsIDAuODEzNTgxLCAxLjIwMjQsIDEuNTkxMTIsIDEuOTc5ODcsIDIuMzY4NjIiLCBcCi0gICAgICAgICAgIjAuMTE5MzM3LCAwLjUwMjg2LCAwLjgxMzYyNiwgMS4yMDI0LCAxLjU5MTIyLCAxLjk4MDA2LCAyLjM2ODgxIiwgXAotICAgICAgICAgICIwLjEyNjAwNiwgMC41MDI3NjYsIDAuODEzNTk2LCAxLjIwMjM3LCAxLjU5MTMsIDEuOTgwMDEsIDIuMzY5MDMiLCBcCi0gICAgICAgICAgIjAuMTM0MDM4LCAwLjUwMzc0MywgMC44MTM2ODMsIDEuMjAyMzcsIDEuNTkxMjMsIDEuOTc5ODMsIDIuMzY4ODMiLCBcCi0gICAgICAgICAgIjAuMTQ3NDQ5LCAwLjUwODE3NywgMC44MTM5MjMsIDEuMjAyMzksIDEuNTkxMTMsIDEuOTc5OTMsIDIuMzY5MDMiLCBcCi0gICAgICAgICAgIjAuMTU5MjkyLCAwLjUxNDEyMSwgMC44MTY1NCwgMS4yMDIzNCwgMS41OTEyNiwgMS45ODAwMywgMi4zNjkwNSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTIzOSwgMC4wMTIzOTEsIDAuMDEyMzksIDAuMDEyMzg5LCAwLjAxMjM4OSwgMC4wMTIzODgsIDAuMDEyMzg2IiwgXAotICAgICAgICAgICIwLjAxMjM1MiwgMC4wMTIzNjYsIDAuMDEyMzY2LCAwLjAxMjM2NywgMC4wMTIzNjYsIDAuMDEyMzY2LCAwLjAxMjM2MyIsIFwKLSAgICAgICAgICAiMC4wMTIzMzYsIDAuMDEyMzU4LCAwLjAxMjM2LCAwLjAxMjM2MiwgMC4wMTIzNjIsIDAuMDEyMzYxLCAwLjAxMjM2MSIsIFwKLSAgICAgICAgICAiMC4wMTIzMzcsIDAuMDEyMzU2LCAwLjAxMjM1OSwgMC4wMTIzNiwgMC4wMTIzNiwgMC4wMTIzNTksIDAuMDEyMzYiLCBcCi0gICAgICAgICAgIjAuMDEyMzU1LCAwLjAxMjM2MywgMC4wMTIzNiwgMC4wMTIzNjMsIDAuMDEyMzYyLCAwLjAxMjM2NCwgMC4wMTIzNjIiLCBcCi0gICAgICAgICAgIjAuMDEyNDIsIDAuMDEyMzg3LCAwLjAxMjM4LCAwLjAxMjM3NywgMC4wMTIzNzQsIDAuMDEyMzcsIDAuMDEyMzY5IiwgXAotICAgICAgICAgICIwLjAxMjUxNiwgMC4wMTI0MjgsIDAuMDEyNDExLCAwLjAxMjM5OCwgMC4wMTIzOSwgMC4wMTIzODUsIDAuMDEyMzgyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzNDc5LCAwLjAwMzQ4NiwgMC4wMDM0ODUsIDAuMDAzNDg2LCAwLjAwMzQ4NSwgMC4wMDM0ODUsIDAuMDAzNDg0IiwgXAotICAgICAgICAgICIwLjAwMzM5NCwgMC4wMDM0NDcsIDAuMDAzNDU1LCAwLjAwMzQ1OSwgMC4wMDM0NjEsIDAuMDAzNDYyLCAwLjAwMzQ2MiIsIFwKLSAgICAgICAgICAiMC4wMDMzNDYsIDAuMDAzNDIzLCAwLjAwMzQzOCwgMC4wMDM0NDYsIDAuMDAzNDQ5LCAwLjAwMzQ1MywgMC4wMDM0NTMiLCBcCi0gICAgICAgICAgIjAuMDAzMzQ2LCAwLjAwMzQxMywgMC4wMDM0MjksIDAuMDAzNDM5LCAwLjAwMzQ0NSwgMC4wMDM0NDgsIDAuMDAzNDQ5IiwgXAotICAgICAgICAgICIwLjAwMzM4NiwgMC4wMDM0MTcsIDAuMDAzNDMxLCAwLjAwMzQ0LCAwLjAwMzQ0NCwgMC4wMDM0NDcsIDAuMDAzNDQ4IiwgXAotICAgICAgICAgICIwLjAwMzUxMSwgMC4wMDM0NTcsIDAuMDAzNDU1LCAwLjAwMzQ1NiwgMC4wMDM0NTYsIDAuMDAzNDU3LCAwLjAwMzQ1NiIsIFwKLSAgICAgICAgICAiMC4wMDM2NzYsIDAuMDAzNTE3LCAwLjAwMzQ5NywgMC4wMDM0ODQsIDAuMDAzNDgsIDAuMDAzNDc1LCAwLjAwMzQ3MiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkExIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTEzMzQsIDAuMDExMzQsIDAuMDExMzM5LCAwLjAxMTMzOSwgMC4wMTEzMzgsIDAuMDExMzM4LCAwLjAxMTMzOCIsIFwKLSAgICAgICAgICAiMC4wMTEyOTEsIDAuMDExMzI5LCAwLjAxMTMzNCwgMC4wMTEzMzYsIDAuMDExMzM3LCAwLjAxMTMzNiwgMC4wMTEzMzYiLCBcCi0gICAgICAgICAgIjAuMDExMjU3LCAwLjAxMTMxNiwgMC4wMTEzMjUsIDAuMDExMzI5LCAwLjAxMTMzMSwgMC4wMTEzMzYsIDAuMDExMzMzIiwgXAotICAgICAgICAgICIwLjAxMTI0OCwgMC4wMTEzMDksIDAuMDExMzIsIDAuMDExMzI2LCAwLjAxMTMyNywgMC4wMTEzMjgsIDAuMDExMzMxIiwgXAotICAgICAgICAgICIwLjAxMTI1OCwgMC4wMTEzMSwgMC4wMTEzMjEsIDAuMDExMzI3LCAwLjAxMTMyOSwgMC4wMTEzMzEsIDAuMDExMzMxIiwgXAotICAgICAgICAgICIwLjAxMTMyMiwgMC4wMTEzMywgMC4wMTEzMzQsIDAuMDExMzM2LCAwLjAxMTMzNiwgMC4wMTEzMzYsIDAuMDExMzM3IiwgXAotICAgICAgICAgICIwLjAxMTQxLCAwLjAxMTM2MywgMC4wMTEzNTgsIDAuMDExMzU1LCAwLjAxMTM0OSwgMC4wMTEzNDksIDAuMDExMzQ5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzNDc5LCAwLjAwMzQ4NiwgMC4wMDM0ODcsIDAuMDAzNDg2LCAwLjAwMzQ4NiwgMC4wMDM0ODYsIDAuMDAzNDg0IiwgXAotICAgICAgICAgICIwLjAwMzM5NiwgMC4wMDM0NDcsIDAuMDAzNDU2LCAwLjAwMzQ1OSwgMC4wMDM0NiwgMC4wMDM0NjIsIDAuMDAzNDYyIiwgXAotICAgICAgICAgICIwLjAwMzM2MSwgMC4wMDM0MjcsIDAuMDAzNDQsIDAuMDAzNDQ3LCAwLjAwMzQ1MiwgMC4wMDM0NTMsIDAuMDAzNDU0IiwgXAotICAgICAgICAgICIwLjAwMzM4MiwgMC4wMDM0MjQsIDAuMDAzNDM3LCAwLjAwMzQ0NCwgMC4wMDM0NDgsIDAuMDAzNDUsIDAuMDAzNDUyIiwgXAotICAgICAgICAgICIwLjAwMzQ0NiwgMC4wMDM0MzcsIDAuMDAzNDQzLCAwLjAwMzQ0OSwgMC4wMDM0NTEsIDAuMDAzNDUyLCAwLjAwMzQ1MyIsIFwKLSAgICAgICAgICAiMC4wMDM2MTMsIDAuMDAzNDg4LCAwLjAwMzQ3NiwgMC4wMDM0NzEsIDAuMDAzNDY4LCAwLjAwMzQ2NiwgMC4wMDM0NjQiLCBcCi0gICAgICAgICAgIjAuMDAzODA0LCAwLjAwMzU1OCwgMC4wMDM1MjIsIDAuMDAzNDkzLCAwLjAwMzQ5MSwgMC4wMDM0ODUsIDAuMDAzNDgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEwMjg2LCAwLjAxMDMwNCwgMC4wMTAzMDQsIDAuMDEwMzA1LCAwLjAxMDMwNSwgMC4wMTAzMDYsIDAuMDEwMzA0IiwgXAotICAgICAgICAgICIwLjAxMDIzOCwgMC4wMTAzMDUsIDAuMDEwMzE1LCAwLjAxMDMxOCwgMC4wMTAzMiwgMC4wMTAzMjIsIDAuMDEwMzIyIiwgXAotICAgICAgICAgICIwLjAxMDE4NywgMC4wMTAyODcsIDAuMDEwMzAzLCAwLjAxMDMxMSwgMC4wMTAzMTUsIDAuMDEwMzE4LCAwLjAxMDMxNCIsIFwKLSAgICAgICAgICAiMC4wMTAxNjYsIDAuMDEwMjc0LCAwLjAxMDI5NCwgMC4wMTAzMDUsIDAuMDEwMzExLCAwLjAxMDMxNSwgMC4wMTAzMTciLCBcCi0gICAgICAgICAgIjAuMDEwMTcsIDAuMDEwMjY4LCAwLjAxMDI4NywgMC4wMTAzMDMsIDAuMDEwMzA5LCAwLjAxMDMxNCwgMC4wMTAzMTUiLCBcCi0gICAgICAgICAgIjAuMDEwMjI3LCAwLjAxMDI4LCAwLjAxMDI5OCwgMC4wMTAzMDUsIDAuMDEwMzEzLCAwLjAxMDMxNywgMC4wMTAzMTkiLCBcCi0gICAgICAgICAgIjAuMDEwMzE2LCAwLjAxMDMxMSwgMC4wMTAzMTgsIDAuMDEwMzIzLCAwLjAxMDMyMiwgMC4wMTAzMjcsIDAuMDEwMzI3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzNDg0LCAwLjAwMzQ5MywgMC4wMDM0OTMsIDAuMDAzNDkzLCAwLjAwMzQ5MiwgMC4wMDM0OTIsIDAuMDAzNDkxIiwgXAotICAgICAgICAgICIwLjAwMzQxLCAwLjAwMzQ1NSwgMC4wMDM0NjMsIDAuMDAzNDY3LCAwLjAwMzQ2OSwgMC4wMDM0NjksIDAuMDAzNDY5IiwgXAotICAgICAgICAgICIwLjAwMzQ0NCwgMC4wMDM0NTgsIDAuMDAzNDYzLCAwLjAwMzQ2NiwgMC4wMDM0NjcsIDAuMDAzNDY4LCAwLjAwMzQ2OCIsIFwKLSAgICAgICAgICAiMC4wMDM0OTksIDAuMDAzNDY3LCAwLjAwMzQ2NywgMC4wMDM0NjcsIDAuMDAzNDY4LCAwLjAwMzQ2OCwgMC4wMDM0NjgiLCBcCi0gICAgICAgICAgIjAuMDAzNjQxLCAwLjAwMzUxOSwgMC4wMDM1MDUsIDAuMDAzNDk1LCAwLjAwMzQ4OCwgMC4wMDM0ODQsIDAuMDAzNDgxIiwgXAotICAgICAgICAgICIwLjAwMzg5NywgMC4wMDM2MjUsIDAuMDAzNTc5LCAwLjAwMzU0NywgMC4wMDM1MjksIDAuMDAzNTE4LCAwLjAwMzUwOSIsIFwKLSAgICAgICAgICAiMC4wMDQxNjQsIDAuMDAzNzQzLCAwLjAwMzY1NCwgMC4wMDM2MTIsIDAuMDAzNTcxLCAwLjAwMzU1MiwgMC4wMDM1NDUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA5MDgzLCAwLjAwOTA4OSwgMC4wMDkwODgsIDAuMDA5MDg3LCAwLjAwOTA4NiwgMC4wMDkwODYsIDAuMDA5MDg0IiwgXAotICAgICAgICAgICIwLjAwOTA1MywgMC4wMDkwNjQsIDAuMDA5MDYzLCAwLjAwOTA2NCwgMC4wMDkwNjQsIDAuMDA5MDYzLCAwLjAwOTA2MiIsIFwKLSAgICAgICAgICAiMC4wMDkwODgsIDAuMDA5MDcyLCAwLjAwOTA2OCwgMC4wMDkwNjUsIDAuMDA5MDYzLCAwLjAwOTA2MywgMC4wMDkwNiIsIFwKLSAgICAgICAgICAiMC4wMDkyMDYsIDAuMDA5MTEzLCAwLjAwOTA5NiwgMC4wMDkwODQsIDAuMDA5MDc4LCAwLjAwOTA3NCwgMC4wMDkwNzEiLCBcCi0gICAgICAgICAgIjAuMDA5MzIzLCAwLjAwOTE1MywgMC4wMDkxMjUsIDAuMDA5MTA1LCAwLjAwOTA5NSwgMC4wMDkwODcsIDAuMDA5MDc5IiwgXAotICAgICAgICAgICIwLjAwOTYwNCwgMC4wMDkyNTIsIDAuMDA5MTkyLCAwLjAwOTE1MSwgMC4wMDkxMzYsIDAuMDA5MTIsIDAuMDA5MTExIiwgXAotICAgICAgICAgICIwLjAwOTg3NSwgMC4wMDkzNTUsIDAuMDA5MjY5LCAwLjAwOTIxLCAwLjAwOTE4MywgMC4wMDkxNiwgMC4wMDkxNDYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDEwMDYsIDAuMDAxMDQsIDAuMDAxMDQzLCAwLjAwMTA0NSwgMC4wMDEwNDYsIDAuMDAxMDQ3LCAwLjAwMTA0NyIsIFwKLSAgICAgICAgICAiMC4wMDA5MzUsIDAuMDAxMDU4LCAwLjAwMTA3NSwgMC4wMDEwODQsIDAuMDAxMDg4LCAwLjAwMTA5MSwgMC4wMDEwOTMiLCBcCi0gICAgICAgICAgIjAuMDAwODY4LCAwLjAwMTAzNCwgMC4wMDEwNjIsIDAuMDAxMDc4LCAwLjAwMTA4NiwgMC4wMDEwOTEsIDAuMDAxMDk0IiwgXAotICAgICAgICAgICIwLjAwMDg2MiwgMC4wMDEwMTksIDAuMDAxMDUyLCAwLjAwMTA3MSwgMC4wMDEwODEsIDAuMDAxMDg4LCAwLjAwMTA5MiIsIFwKLSAgICAgICAgICAiMC4wMDA5MDUsIDAuMDAxMDE4LCAwLjAwMTA1LCAwLjAwMTA2OSwgMC4wMDEwOCwgMC4wMDEwODcsIDAuMDAxMDkyIiwgXAotICAgICAgICAgICIwLjAwMTA0MywgMC4wMDEwNDYsIDAuMDAxMDY2LCAwLjAwMTA4LCAwLjAwMTA4OCwgMC4wMDEwOTMsIDAuMDAxMDk3IiwgXAotICAgICAgICAgICIwLjAwMTIyOSwgMC4wMDEwOTUsIDAuMDAxMDk5LCAwLjAwMTEwMywgMC4wMDExMDYsIDAuMDAxMTA4LCAwLjAwMTEwOSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIxIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDgwNDUsIDAuMDA4MDU1LCAwLjAwODA1NSwgMC4wMDgwNTUsIDAuMDA4MDU0LCAwLjAwODA1MywgMC4wMDgwNTIiLCBcCi0gICAgICAgICAgIjAuMDA4MDE1LCAwLjAwODA0NCwgMC4wMDgwNDksIDAuMDA4MDUsIDAuMDA4MDUxLCAwLjAwODA1LCAwLjAwODA1MSIsIFwKLSAgICAgICAgICAiMC4wMDgwMzEsIDAuMDA4MDQ3LCAwLjAwODA1LCAwLjAwODA1MSwgMC4wMDgwNTEsIDAuMDA4MDUxLCAwLjAwODA1IiwgXAotICAgICAgICAgICIwLjAwODEwMiwgMC4wMDgwNzIsIDAuMDA4MDY2LCAwLjAwODA2MSwgMC4wMDgwNTksIDAuMDA4MDU4LCAwLjAwODA1NSIsIFwKLSAgICAgICAgICAiMC4wMDgyMDgsIDAuMDA4MTM2LCAwLjAwODExMywgMC4wMDgwOTUsIDAuMDA4MDg0LCAwLjAwODA3OCwgMC4wMDgwNzQiLCBcCi0gICAgICAgICAgIjAuMDA4NDg5LCAwLjAwODIyNSwgMC4wMDgxNzIsIDAuMDA4MTM4LCAwLjAwODEyMiwgMC4wMDgxMDgsIDAuMDA4MSIsIFwKLSAgICAgICAgICAiMC4wMDg3MjMsIDAuMDA4MzE3LCAwLjAwODI0LCAwLjAwODE5LCAwLjAwODE2NywgMC4wMDgxNDYsIDAuMDA4MTMyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxMDA3LCAwLjAwMTA0LCAwLjAwMTA0NCwgMC4wMDEwNDYsIDAuMDAxMDQ3LCAwLjAwMTA0NywgMC4wMDEwNDgiLCBcCi0gICAgICAgICAgIjAuMDAwOTQsIDAuMDAxMDYsIDAuMDAxMDc2LCAwLjAwMTA4NSwgMC4wMDEwODksIDAuMDAxMDkyLCAwLjAwMTA5NCIsIFwKLSAgICAgICAgICAiMC4wMDA4OTIsIDAuMDAxMDQxLCAwLjAwMTA2NiwgMC4wMDEwODEsIDAuMDAxMDg5LCAwLjAwMTA5MywgMC4wMDEwOTYiLCBcCi0gICAgICAgICAgIjAuMDAwOTA5LCAwLjAwMTAzMSwgMC4wMDEwNjEsIDAuMDAxMDc3LCAwLjAwMTA4NiwgMC4wMDEwOTIsIDAuMDAxMDk2IiwgXAotICAgICAgICAgICIwLjAwMDk4LCAwLjAwMTAzOSwgMC4wMDEwNjMsIDAuMDAxMDc5LCAwLjAwMTA4OCwgMC4wMDEwOTMsIDAuMDAxMDk3IiwgXAotICAgICAgICAgICIwLjAwMTE0NSwgMC4wMDEwNzUsIDAuMDAxMDg2LCAwLjAwMTA5MywgMC4wMDEwOTgsIDAuMDAxMTAyLCAwLjAwMTEwNCIsIFwKLSAgICAgICAgICAiMC4wMDEzNzEsIDAuMDAxMTM4LCAwLjAwMTEyNCwgMC4wMDExMiwgMC4wMDExMTksIDAuMDAxMTE5LCAwLjAwMTExOSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIyIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDY5NzEsIDAuMDA2OTk0LCAwLjAwNjk5NywgMC4wMDY5OTcsIDAuMDA2OTk3LCAwLjAwNjk5NywgMC4wMDY5OTciLCBcCi0gICAgICAgICAgIjAuMDA2OTQyLCAwLjAwNjk5OSwgMC4wMDcwMDcsIDAuMDA3MDEsIDAuMDA3MDEyLCAwLjAwNzAxMywgMC4wMDcwMTMiLCBcCi0gICAgICAgICAgIjAuMDA2OTg1LCAwLjAwNzAwNywgMC4wMDcwMTMsIDAuMDA3MDE0LCAwLjAwNzAxNCwgMC4wMDcwMTUsIDAuMDA3MDE0IiwgXAotICAgICAgICAgICIwLjAwNzA2NCwgMC4wMDcwMzcsIDAuMDA3MDMyLCAwLjAwNzAyOCwgMC4wMDcwMjcsIDAuMDA3MDI1LCAwLjAwNzAyMyIsIFwKLSAgICAgICAgICAiMC4wMDcxNzMsIDAuMDA3MDY4LCAwLjAwNzA1NywgMC4wMDcwNDYsIDAuMDA3MDQsIDAuMDA3MDM2LCAwLjAwNzAzNCIsIFwKLSAgICAgICAgICAiMC4wMDc0MjQsIDAuMDA3MTUsIDAuMDA3MTA5LCAwLjAwNzA4OSwgMC4wMDcwNzcsIDAuMDA3MDY1LCAwLjAwNzA1NyIsIFwKLSAgICAgICAgICAiMC4wMDc2MTUsIDAuMDA3MjM5LCAwLjAwNzE3NywgMC4wMDcxNDMsIDAuMDA3MTIsIDAuMDA3MDkzLCAwLjAwNzA4MSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDk5NiwgMC4wMDEwMzIsIDAuMDAxMDM2LCAwLjAwMTAzOCwgMC4wMDEwMzksIDAuMDAxMDQsIDAuMDAxMDQiLCBcCi0gICAgICAgICAgIjAuMDAwOTYxLCAwLjAwMTA1OSwgMC4wMDEwNzMsIDAuMDAxMDgxLCAwLjAwMTA4NSwgMC4wMDEwODcsIDAuMDAxMDg5IiwgXAotICAgICAgICAgICIwLjAwMDk5OSwgMC4wMDEwNjMsIDAuMDAxMDc3LCAwLjAwMTA4NiwgMC4wMDEwOTEsIDAuMDAxMDk0LCAwLjAwMTA5NiIsIFwKLSAgICAgICAgICAiMC4wMDEwMzksIDAuMDAxMDcsIDAuMDAxMDgyLCAwLjAwMTA5LCAwLjAwMTA5NCwgMC4wMDEwOTcsIDAuMDAxMDk5IiwgXAotICAgICAgICAgICIwLjAwMTE4NywgMC4wMDExMTIsIDAuMDAxMTE0LCAwLjAwMTExMiwgMC4wMDExMTIsIDAuMDAxMTEyLCAwLjAwMTExMSIsIFwKLSAgICAgICAgICAiMC4wMDE1MDEsIDAuMDAxMiwgMC4wMDExNzYsIDAuMDAxMTU2LCAwLjAwMTE0NSwgMC4wMDExMzksIDAuMDAxMTM1IiwgXAotICAgICAgICAgICIwLjAwMTgyMywgMC4wMDEzMDUsIDAuMDAxMjM4LCAwLjAwMTIwNywgMC4wMDExODksIDAuMDAxMTc0LCAwLjAwMTE2NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IEFPSTMzWDQgKgotICogLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoQU9JMzNYNCkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAxLjkwODk4OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAzNjc3NjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDM2NjgwMzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDM2Nzc2OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjA5NywgMC4wMDIwOTYsIDAuMDAyMDk1LCAwLjAwMjA5NSwgMC4wMDIwOTQsIDAuMDAyMDk0LCAwLjAwMjA5NCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjA5OCwgMC4wMDIxLCAwLjAwMjEwMiwgMC4wMDIxLCAwLjAwMjEwMSwgMC4wMDIxMDIsIDAuMDAyMTAxIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihBMSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAzNjY5Mzk7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAzNjU4MTE7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAzNjY5Mzk7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyMDk4LCAwLjAwMjA5NiwgMC4wMDIwOTQsIDAuMDAyMDk1LCAwLjAwMjA5NCwgMC4wMDIwOTQsIDAuMDAyMDk0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyMDk5LCAwLjAwMjEsIDAuMDAyMTAyLCAwLjAwMjEwMiwgMC4wMDIxMDMsIDAuMDAyMTAzLCAwLjAwMjEwMyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQTIpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMzQ0NjI7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAzNDI4NzI7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAzNDQ2MjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDEyNSwgMC4wMDEyNDksIDAuMDAxMjQ4LCAwLjAwMTI0OSwgMC4wMDEyNDgsIDAuMDAxMjQ4LCAwLjAwMTI0OCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjM4MSwgMC4wMDIzODMsIDAuMDAyMzg0LCAwLjAwMjM4MywgMC4wMDIzODMsIDAuMDAyMzgzLCAwLjAwMjM4MyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQjApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMzcwMzM3OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMzcwMzM3OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMzY5NTU2OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjA5OCwgMC4wMDIwOTcsIDAuMDAyMDk2LCAwLjAwMjA5NiwgMC4wMDIwOTYsIDAuMDAyMDk2LCAwLjAwMjA5NSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjA5OCwgMC4wMDIwOTksIDAuMDAyMSwgMC4wMDIxLCAwLjAwMjEsIDAuMDAyMTAxLCAwLjAwMjEiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIxKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDM2ODE7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAzNjgxOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMzY3NTI0OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjA5OCwgMC4wMDIwOTcsIDAuMDAyMDk2LCAwLjAwMjA5NiwgMC4wMDIwOTYsIDAuMDAyMDk1LCAwLjAwMjA5NSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjA5OCwgMC4wMDIwOTksIDAuMDAyMSwgMC4wMDIxMDEsIDAuMDAyMTAxLCAwLjAwMjEwMSwgMC4wMDIxMDIiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIyKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDM0MjM0NTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDM0MjI2NjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDM0MjM0NTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDEyMTksIDAuMDAxMjE5LCAwLjAwMTIxOSwgMC4wMDEyMTksIDAuMDAxMjE5LCAwLjAwMTIxNywgMC4wMDEyMTciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDIzODEsIDAuMDAyMzgyLCAwLjAwMjM4MywgMC4wMDIzODMsIDAuMDAyMzgzLCAwLjAwMjM4MywgMC4wMDIzODMiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC41NjQxNjQ7Ci0gICAgZnVuY3Rpb24gOiAiKCEoKChCMCBCMSkgQjIpKygoQTAgQTEpIEEyKSkpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDI2MjksIDAuMTQ0MTUxLCAwLjI0NDk4NSwgMC4zMTcxNTMsIDAuNDMxODU0LCAwLjUzMjg3MSwgMC42NzYzODUiLCBcCi0gICAgICAgICAgIjAuMDQ5OTk5LCAwLjE1MTYyNywgMC4yNTIzNzcsIDAuMzI0NDkyLCAwLjQzOTU0OSwgMC41NDAxNDIsIDAuNjgzOTg1IiwgXAotICAgICAgICAgICIwLjA1NzgyNCwgMC4xNTk0MTIsIDAuMjYwMjk1LCAwLjMzMjE5OCwgMC40NDcyODIsIDAuNTQ3ODY4LCAwLjY5MTk4MyIsIFwKLSAgICAgICAgICAiMC4wNjQ1OTgsIDAuMTY2NzYxLCAwLjI2NzU2OCwgMC4zMzk2MjEsIDAuNDU0ODcxLCAwLjU1NTE5OCwgMC42OTg5MzQiLCBcCi0gICAgICAgICAgIjAuMDcwMzMzLCAwLjE3NDEwOSwgMC4yNzQ4NTQsIDAuMzQ2Njg4LCAwLjQ2MjE3NCwgMC41NjI3OTksIDAuNzA2NjEiLCBcCi0gICAgICAgICAgIjAuMDc3NTk2LCAwLjE4NTY4NywgMC4yODY1NzQsIDAuMzU4NTIxLCAwLjQ3Mzg2NiwgMC41NzQ2OTIsIDAuNzE4NzIzIiwgXAotICAgICAgICAgICIwLjA4MjkzNSwgMC4xOTU5NDYsIDAuMjk2Njk1LCAwLjM2ODYsIDAuNDgzOTYyLCAwLjU4NDc3LCAwLjcyOTEwNyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2MzU0NSwgMC4yNzcxMzcsIDAuNDkwNjEsIDAuNjQzNzEsIDAuODg3OTg2LCAxLjEwMjksIDEuNDEwMTYiLCBcCi0gICAgICAgICAgIjAuMDYzNzcxLCAwLjI3NzE4MSwgMC40OTA4NDUsIDAuNjQzNDUxLCAwLjg4Nzk3NywgMS4xMDI5LCAxLjQxMDE0IiwgXAotICAgICAgICAgICIwLjA2NjMxNywgMC4yNzcyMTUsIDAuNDkwOTExLCAwLjY0MzI0OSwgMC44ODc3NzIsIDEuMTAzMDMsIDEuNDA5NjMiLCBcCi0gICAgICAgICAgIjAuMDcwNjk3LCAwLjI3ODIyMSwgMC40OTA5MDMsIDAuNjQzMzc4LCAwLjg4ODAwNCwgMS4xMDI5NiwgMS40MDk2IiwgXAotICAgICAgICAgICIwLjA3NjIwOSwgMC4yODA1OTYsIDAuNDkxNTEyLCAwLjY0MzM4NywgMC44ODc4OTYsIDEuMTAzMDMsIDEuNDA5OTgiLCBcCi0gICAgICAgICAgIjAuMDg1NTg4LCAwLjI4NjA0NCwgMC40OTQyMDgsIDAuNjQ0ODIsIDAuODg3NjcxLCAxLjEwMjgyLCAxLjQwOTk1IiwgXAotICAgICAgICAgICIwLjA5MzM0NywgMC4yOTIwNjgsIDAuNDk3OTMyLCAwLjY0NzM1OCwgMC44ODkzMTQsIDEuMTAyNzMsIDEuNDA5OTkiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTY1ODgsIDAuMTkwODU0LCAwLjMyNDE5MywgMC40MTk2MiwgMC41NzE1NzEsIDAuNzA0NTMyLCAwLjg5NTQ2NSIsIFwKLSAgICAgICAgICAiMC4wNjE4NjgsIDAuMTk2MzQ3LCAwLjMyOTY0MSwgMC40MjQ3NzMsIDAuNTc3MjA4LCAwLjcxMDEzOSwgMC45MDA1NzciLCBcCi0gICAgICAgICAgIjAuMDY3ODk1LCAwLjIwMjQ0NywgMC4zMzU4ODYsIDAuNDMwOTc2LCAwLjU4MzIzMiwgMC43MTYyMjgsIDAuOTA2OTA1IiwgXAotICAgICAgICAgICIwLjA3Mzg2MywgMC4yMDg0NDcsIDAuMzQxOTc1LCAwLjQzNzA0NiwgMC41ODk0MDUsIDAuNzIyMzU5LCAwLjkxMjcwNCIsIFwKLSAgICAgICAgICAiMC4wNzk0MTIsIDAuMjE0NTI1LCAwLjM0ODAwMiwgMC40NDMyMDQsIDAuNTk1NzQ2LCAwLjcyODYyMSwgMC45MTg4NjMiLCBcCi0gICAgICAgICAgIjAuMDg3NTkyLCAwLjIyNDMyOCwgMC4zNTc2ODgsIDAuNDUzMDY3LCAwLjYwNTIzNSwgMC43MzgyODYsIDAuOTI4NjM0IiwgXAotICAgICAgICAgICIwLjA5Mzg3MywgMC4yMzMwMTEsIDAuMzY2MzAzLCAwLjQ2MTczNywgMC42MTM3ODksIDAuNzQ3NDg5LCAwLjkzNzc5NCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5NDIxNiwgMC4zNjc4NzQsIDAuNjQyMTUsIDAuODM4MDgsIDEuMTUxMzQsIDEuNDI1ODksIDEuODE3NjEiLCBcCi0gICAgICAgICAgIjAuMDk0NDUxLCAwLjM2Nzg1MiwgMC42NDIwNTcsIDAuODM4MDY4LCAxLjE1MTQ4LCAxLjQyNTgsIDEuODE3MzUiLCBcCi0gICAgICAgICAgIjAuMDk2NTI0LCAwLjM2Nzg3NywgMC42NDIwNTcsIDAuODM3ODY5LCAxLjE1MTI3LCAxLjQyNTc3LCAxLjgxNzM4IiwgXAotICAgICAgICAgICIwLjEwMDEyMSwgMC4zNjg0ODEsIDAuNjQyMDUyLCAwLjgzODA3MiwgMS4xNTE1MiwgMS40MjU3OCwgMS44MTc0NiIsIFwKLSAgICAgICAgICAiMC4xMDQ2MDMsIDAuMzY5ODY5LCAwLjY0MjMyNiwgMC44MzgwNjYsIDEuMTUxNTEsIDEuNDI1NjksIDEuODE3NTIiLCBcCi0gICAgICAgICAgIjAuMTEzMDE1LCAwLjM3MzQ0OSwgMC42NDM2OTIsIDAuODM4NTUzLCAxLjE1MTUyLCAxLjQyNTc4LCAxLjgxNzQiLCBcCi0gICAgICAgICAgIjAuMTIwNDYsIDAuMzc3NjYyLCAwLjY0NTg4NiwgMC44Mzk4NzIsIDEuMTUxNjcsIDEuNDI1NzcsIDEuODE3MzkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQwNTc4LCAwLjE0MTgzNiwgMC4yNDI3MDUsIDAuMzE0MzU4LCAwLjQyOTMzOSwgMC41MzAyMjUsIDAuNjczODg1IiwgXAotICAgICAgICAgICIwLjA0Nzk5NywgMC4xNDkzNywgMC4yNTAxMDIsIDAuMzIyMjY3LCAwLjQzNjkyMywgMC41Mzc3NDIsIDAuNjgxNTA0IiwgXAotICAgICAgICAgICIwLjA1NTY0OSwgMC4xNTcwODcsIDAuMjU3ODc4LCAwLjMyOTc2NCwgMC40NDQ4NjgsIDAuNTQ1NDYsIDAuNjg4OTg2IiwgXAotICAgICAgICAgICIwLjA2MjMxNywgMC4xNjQ0NDQsIDAuMjY1MjQ1LCAwLjMzNzI1LCAwLjQ1MjMwMiwgMC41NTI3NjksIDAuNjk2NTQyIiwgXAotICAgICAgICAgICIwLjA2Nzc0NywgMC4xNzE3MDQsIDAuMjcyNDg3LCAwLjM0NDQyNywgMC40NTk2MTgsIDAuNTYwMzgxLCAwLjcwMzgxOCIsIFwKLSAgICAgICAgICAiMC4wNzQ3MjIsIDAuMTgzMzgyLCAwLjI4NDEyOSwgMC4zNTYyNzMsIDAuNDcxMzM1LCAwLjU3MjA2MSwgMC43MTU1OTIiLCBcCi0gICAgICAgICAgIjAuMDc5Nzc5LCAwLjE5MzM4NCwgMC4yOTQyNjksIDAuMzY2MzIxLCAwLjQ4MTY4MiwgMC41ODIyNDQsIDAuNzI2MTUiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjA2NzEsIDAuMjc0MTk0LCAwLjQ4Nzc2LCAwLjY0MDUyOCwgMC44ODM5MDIsIDEuMDk3NjIsIDEuNDAyMTUiLCBcCi0gICAgICAgICAgIjAuMDYwOTYzLCAwLjI3NDE4MiwgMC40ODc2NzQsIDAuNjQwMzAyLCAwLjg4NDU5NiwgMS4wOTc1NiwgMS40MDI2MyIsIFwKLSAgICAgICAgICAiMC4wNjM2ODYsIDAuMjc0MjI4LCAwLjQ4NzY2LCAwLjY0MDExNCwgMC44ODQwOTYsIDEuMDk3NTMsIDEuNDAyOCIsIFwKLSAgICAgICAgICAiMC4wNjgxNjksIDAuMjc1MzE5LCAwLjQ4NzgzNCwgMC42NDAxMTYsIDAuODg0MDcxLCAxLjA5Nzg0LCAxLjQwMjA1IiwgXAotICAgICAgICAgICIwLjA3Mzg4MywgMC4yNzc1NjUsIDAuNDg4NDIzLCAwLjY0MDQ0OSwgMC44ODM4ODEsIDEuMDk3NTgsIDEuNDAyMDUiLCBcCi0gICAgICAgICAgIjAuMDgzMDYzLCAwLjI4MzE4OSwgMC40OTEyMzIsIDAuNjQxNTQyLCAwLjg4NDA0MywgMS4wOTc1NCwgMS40MDI4IiwgXAotICAgICAgICAgICIwLjA5MDg0NCwgMC4yODkxMjksIDAuNDk0OTU5LCAwLjY0NDEzNSwgMC44ODUyODksIDEuMDk3OCwgMS40MDI1NSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1NTA2MiwgMC4xODkzNDgsIDAuMzIyNzMsIDAuNDE3ODI1LCAwLjU3MDE2MywgMC43MDM1NTksIDAuODkzMzEzIiwgXAotICAgICAgICAgICIwLjA2MTI3NiwgMC4xOTU3OTQsIDAuMzI5MDA4LCAwLjQyNDE3OSwgMC41NzYzOSwgMC43MDk1MzYsIDAuODk5NjQ0IiwgXAotICAgICAgICAgICIwLjA2OTM4NiwgMC4yMDM5NCwgMC4zMzc1NTgsIDAuNDMyNTY1LCAwLjU4NTEzMSwgMC43MTc4MjksIDAuOTA4NjYiLCBcCi0gICAgICAgICAgIjAuMDc3NjYzLCAwLjIxMjE4LCAwLjM0NTc1MSwgMC40NDExMTMsIDAuNTkzMDM3LCAwLjcyNjI2MSwgMC45MTcyMTgiLCBcCi0gICAgICAgICAgIjAuMDg1NCwgMC4yMjAzNjksIDAuMzUzNzEyLCAwLjQ0OTM3MSwgMC42MDE2MTksIDAuNzM0OTQ2LCAwLjkyNDY4MyIsIFwKLSAgICAgICAgICAiMC4wOTYyMTQsIDAuMjMzNzU4LCAwLjM2NzM3MSwgMC40NjI0NDIsIDAuNjE1MDQ2LCAwLjc0NzgwNSwgMC45Mzg0MDgiLCBcCi0gICAgICAgICAgIjAuMTA0MTUsIDAuMjQ1ODgsIDAuMzc4NzA2LCAwLjQ3NDMxMywgMC42MjU4ODMsIDAuNzU5NDYzLCAwLjk0OTYzMiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5NDIyNiwgMC4zNjc4MzYsIDAuNjQyMDc3LCAwLjgzODA1NiwgMS4xNTE1MywgMS40MjU2NSwgMS44MTc3OSIsIFwKLSAgICAgICAgICAiMC4wOTQ1MzYsIDAuMzY3ODkxLCAwLjY0MjE4NCwgMC44MzgwODMsIDEuMTUxMzIsIDEuNDI1NTYsIDEuODE3MjciLCBcCi0gICAgICAgICAgIjAuMDk3ODcxLCAwLjM2Nzg2NiwgMC42NDIwNTEsIDAuODM4MDY2LCAxLjE1MTU3LCAxLjQyNTc4LCAxLjgxNzY1IiwgXAotICAgICAgICAgICIwLjEwMzE4NCwgMC4zNjg0OTQsIDAuNjQyMDY1LCAwLjgzODA4MSwgMS4xNTEzOSwgMS40MjU1NCwgMS44MTc2MyIsIFwKLSAgICAgICAgICAiMC4xMDkzODgsIDAuMzcwMjk2LCAwLjY0MjExNCwgMC44MzgwOSwgMS4xNTEyNiwgMS40MjU4MywgMS44MTc0NiIsIFwKLSAgICAgICAgICAiMC4xMjAwMTksIDAuMzc1NjIxLCAwLjY0Mzg4MywgMC44MzgzMzgsIDEuMTUxNTEsIDEuNDI1NzgsIDEuODE3NDYiLCBcCi0gICAgICAgICAgIjAuMTI5MzUyLCAwLjM4MTUzMSwgMC42NDY4MywgMC44Mzk2OSwgMS4xNTE2MSwgMS40MjU3NywgMS44MTc0NCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzg5MDYsIDAuMTQxNTQxLCAwLjI0MzYzLCAwLjMxNjQ3OSwgMC40MzM0OTEsIDAuNTM1MDI5LCAwLjY4MTMwOSIsIFwKLSAgICAgICAgICAiMC4wNDYyMTgsIDAuMTQ5MTEsIDAuMjUxMTk2LCAwLjMyNDMsIDAuNDQwODI0LCAwLjU0Mjg4NSwgMC42ODg2NTciLCBcCi0gICAgICAgICAgIjAuMDUzOTQxLCAwLjE1Njk0OSwgMC4yNTkwNDUsIDAuMzMxOTY3LCAwLjQ0ODc0NSwgMC41NTA1NzgsIDAuNjk2Mjc4IiwgXAotICAgICAgICAgICIwLjA2MDM1OCwgMC4xNjQxNzEsIDAuMjY2NTQyLCAwLjMzOTQxMywgMC40NTU5MDYsIDAuNTU3OTc2LCAwLjcwMzc0NCIsIFwKLSAgICAgICAgICAiMC4wNjU2MDEsIDAuMTcxNDcyLCAwLjI3MzcwNCwgMC4zNDY1NjIsIDAuNDYzNDk5LCAwLjU2NTQ4MSwgMC43MTE0MjEiLCBcCi0gICAgICAgICAgIjAuMDcyMjg2LCAwLjE4MzA5NCwgMC4yODUyMjMsIDAuMzU4MzY0LCAwLjQ3NTE5OCwgMC41NzcwODcsIDAuNzIyOCIsIFwKLSAgICAgICAgICAiMC4wNzcxNDUsIDAuMTkzMzQ2LCAwLjI5NTUzLCAwLjM2ODUyNywgMC40ODU2ODEsIDAuNTg3NjM0LCAwLjczMzQ1MSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1ODgwNiwgMC4yNzUxNDYsIDAuNDkxOTI3LCAwLjY0NjY0NiwgMC44OTM4MjcsIDEuMTEwNDIsIDEuNDE5ODYiLCBcCi0gICAgICAgICAgIjAuMDU5MTM2LCAwLjI3NTExOSwgMC40OTE3MDIsIDAuNjQ2NDg5LCAwLjg5MzksIDEuMTEwMjgsIDEuNDE5NTMiLCBcCi0gICAgICAgICAgIjAuMDYxOTEyLCAwLjI3NTI2NiwgMC40OTE3OTgsIDAuNjQ2NDEsIDAuODkzNzM5LCAxLjExMDYsIDEuNDE5NzkiLCBcCi0gICAgICAgICAgIjAuMDY2NjA2LCAwLjI3NjE5NCwgMC40OTE1NDIsIDAuNjQ2MjYsIDAuODk0MTUsIDEuMTEwMzcsIDEuNDE5MDIiLCBcCi0gICAgICAgICAgIjAuMDcyMzkyLCAwLjI3ODUzOSwgMC40OTIzOTIsIDAuNjQ2MzI0LCAwLjg5MzY2OCwgMS4xMTAyNiwgMS40MTkzOSIsIFwKLSAgICAgICAgICAiMC4wODE2MDgsIDAuMjg0MTg3LCAwLjQ5NDk3OSwgMC42NDc3MTIsIDAuODkzODI0LCAxLjExMDM0LCAxLjQxOTc1IiwgXAotICAgICAgICAgICIwLjA4OTMxNiwgMC4yOTAxNjksIDAuNDk4Nzk0LCAwLjY1MDQwOCwgMC44OTQ5MjIsIDEuMTExMTUsIDEuNDE5MDQiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTIwNDEsIDAuMTg2MjkzLCAwLjMxOTUyOCwgMC40MTUwMTUsIDAuNTY2OTc3LCAwLjcwMDU3OSwgMC44OTA0MjQiLCBcCi0gICAgICAgICAgIjAuMDU4OTUxLCAwLjE5MzMwOSwgMC4zMjY2NiwgMC40MjE3MTIsIDAuNTczOTY1LCAwLjcwNzI3OCwgMC44OTcxNzgiLCBcCi0gICAgICAgICAgIjAuMDY4MTg4LCAwLjIwMjI2NiwgMC4zMzU1MzIsIDAuNDMwNzg4LCAwLjU4Mjk3MywgMC43MTU5NjksIDAuOTA2MDQ1IiwgXAotICAgICAgICAgICIwLjA3Nzc4OCwgMC4yMTE1NzYsIDAuMzQ0OTg3LCAwLjQ0MDExNywgMC41OTIwODEsIDAuNzI1MjM4LCAwLjkxNTMwNiIsIFwKLSAgICAgICAgICAiMC4wODY4ODksIDAuMjIwNjA3LCAwLjM1MzQ5NywgMC40NDkxNjEsIDAuNjAxNDkzLCAwLjczNDU2MywgMC45MjQ4NTYiLCBcCi0gICAgICAgICAgIjAuMDk5MzY4LCAwLjIzNTYyNywgMC4zNjg2NzMsIDAuNDYzNzI2LCAwLjYxNTcyMiwgMC43NDkwMjksIDAuOTM5NDQ3IiwgXAotICAgICAgICAgICIwLjEwODMyNSwgMC4yNDkwNDEsIDAuMzgxNTM0LCAwLjQ3NjU1MiwgMC42Mjc5OTMsIDAuNzYxNzY3LCAwLjk1MTY4OSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5NDI5NSwgMC4zNjc4MywgMC42NDIwODMsIDAuODM4MDU1LCAxLjE1MTMyLCAxLjQyNTY3LCAxLjgxNzc3IiwgXAotICAgICAgICAgICIwLjA5NDU4OCwgMC4zNjc4ODQsIDAuNjQyMDQ3LCAwLjgzODA2NywgMS4xNTE1MiwgMS40MjU0NywgMS44MTcyNyIsIFwKLSAgICAgICAgICAiMC4wOTkzMjEsIDAuMzY3ODM3LCAwLjY0MjA0NiwgMC44MzgwODUsIDEuMTUxMywgMS40MjU3OCwgMS44MTczMSIsIFwKLSAgICAgICAgICAiMC4xMDYzMzksIDAuMzY4NTQ1LCAwLjY0MjA0NywgMC44MzgxMTUsIDEuMTUxNDgsIDEuNDI1NzksIDEuODE3NDIiLCBcCi0gICAgICAgICAgIjAuMTE0MzY5LCAwLjM3MTEzLCAwLjY0MjA2OCwgMC44MzgwODgsIDEuMTUxNDIsIDEuNDI1NzMsIDEuODE3OCIsIFwKLSAgICAgICAgICAiMC4xMjc0NzksIDAuMzc3OTM5LCAwLjY0NDQxNSwgMC44MzgyODMsIDEuMTUxMzIsIDEuNDI1NjYsIDEuODE3NTkiLCBcCi0gICAgICAgICAgIjAuMTM4NDgxLCAwLjM4NTY2OSwgMC42NDgxNTgsIDAuODQwMjE5LCAxLjE1MTQxLCAxLjQyNTc3LCAxLjgxNzQyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzMzM2NiwgMC4xMzQ5OTIsIDAuMjM1NjgsIDAuMzA3NjY2LCAwLjQyMzM3OSwgMC41MjU0MSwgMC42NzEyOSIsIFwKLSAgICAgICAgICAiMC4wNDEwMDMsIDAuMTQyNTU5LCAwLjI0MzQzNSwgMC4zMTUyNjEsIDAuNDMwODU2LCAwLjUzMjgzNywgMC42Nzg2OSIsIFwKLSAgICAgICAgICAiMC4wNTA5NjQsIDAuMTUyMDExLCAwLjI1Mjc3MSwgMC4zMjQ2NjMsIDAuNDQwMTQ1LCAwLjU0MjE0MiwgMC42ODcyNzMiLCBcCi0gICAgICAgICAgIjAuMDU5OTkyLCAwLjE2MTkzMSwgMC4yNjIzNjksIDAuMzM0Njk1LCAwLjQ1MDIzMSwgMC41NTI0NiwgMC42OTcxNjYiLCBcCi0gICAgICAgICAgIjAuMDY3NDg2LCAwLjE3MTQyNywgMC4yNzIwNDUsIDAuMzQ0MDEzLCAwLjQ1OTMwNCwgMC41NjEyODYsIDAuNzA3MzkyIiwgXAotICAgICAgICAgICIwLjA3NjkyMywgMC4xODcyMzksIDAuMjg3NzAzLCAwLjM1OTY1NCwgMC40NzQ4ODcsIDAuNTc3MTI2LCAwLjcyMjY1NiIsIFwKLSAgICAgICAgICAiMC4wODM5OTQsIDAuMjAxMjUzLCAwLjMwMTQxOSwgMC4zNzMxMTcsIDAuNDg4Mzg1LCAwLjU5MDcyNywgMC43MzYwMTciKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjMwNjMsIDAuMjc3MTU1LCAwLjQ5MTY4MiwgMC42NDYzMSwgMC44OTM3MTEsIDEuMTEwMjMsIDEuNDE5NTQiLCBcCi0gICAgICAgICAgIjAuMDY0Mjk1LCAwLjI3NzIwNiwgMC40OTE3ODUsIDAuNjQ2NDMxLCAwLjg5MzY4NSwgMS4xMTA1NywgMS40MTk1IiwgXAotICAgICAgICAgICIwLjA3MDc1NCwgMC4yNzcxMTksIDAuNDkxNzMxLCAwLjY0NjU2MSwgMC44OTM4NzUsIDEuMTEwNSwgMS40MTg1NiIsIFwKLSAgICAgICAgICAiMC4wNzkxNDQsIDAuMjc5MzQ0LCAwLjQ5MTYwMSwgMC42NDYzMjcsIDAuODkzNjkxLCAxLjExMDI3LCAxLjQxOTMzIiwgXAotICAgICAgICAgICIwLjA4NzM2NiwgMC4yODM3OCwgMC40OTI2NjUsIDAuNjQ2NDk3LCAwLjg5NDAyOSwgMS4xMTA5OCwgMS40MTk1NiIsIFwKLSAgICAgICAgICAiMC4wOTk4NzgsIDAuMjkzMDc1LCAwLjQ5NzU2NCwgMC42NDg0OTcsIDAuODkzNzcsIDEuMTEwMTYsIDEuNDE5MDEiLCBcCi0gICAgICAgICAgIjAuMTA5NDkxLCAwLjMwMzA5OCwgMC41MDM5MjUsIDAuNjUyODQ0LCAwLjg5NTM0NywgMS4xMTAyNCwgMS40MTk2NyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzODgwNCwgMC4xNzI5NzcsIDAuMzA2NTk5LCAwLjQwMTk3MSwgMC41NTQ2MTQsIDAuNjg3OTE1LCAwLjg3ODM5OCIsIFwKLSAgICAgICAgICAiMC4wNDQwNDksIDAuMTc4NzIxLCAwLjMxMjQzMiwgMC40MDc4MTksIDAuNTYwNDI1LCAwLjY5Mzc4NywgMC44ODQyODIiLCBcCi0gICAgICAgICAgIjAuMDQ5OTY1LCAwLjE4NDgxMSwgMC4zMTg1NzQsIDAuNDE0MDM4LCAwLjU2NjU5NiwgMC43MDAwMTUsIDAuODkwNTEiLCBcCi0gICAgICAgICAgIjAuMDU1MTE2LCAwLjE5MDgxOSwgMC4zMjQ3MDcsIDAuNDIwMDk1LCAwLjU3Mjc3MSwgMC43MDYxOTIsIDAuODk2NTk3IiwgXAotICAgICAgICAgICIwLjA1OTYwNywgMC4xOTY4NzIsIDAuMzMwNzQyLCAwLjQyNjIxMywgMC41Nzg4MjIsIDAuNzEyMjY1LCAwLjkwMjc0MyIsIFwKLSAgICAgICAgICAiMC4wNjYwNjgsIDAuMjA2NjI1LCAwLjM0MDQ4OCwgMC40MzU5NzcsIDAuNTg4NjA1LCAwLjcyMjA1MiwgMC45MTI1MDUiLCBcCi0gICAgICAgICAgIjAuMDcxMDM4LCAwLjIxNTIzLCAwLjM0OTMyOSwgMC40NDQ2ODEsIDAuNTk3MzM4LCAwLjczMDk0OSwgMC45MjEzNTQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzYzNzYsIDAuMzQ5OTc2LCAwLjYyNDEyMywgMC44MTk5NTcsIDEuMTMzNDksIDEuNDA3NzQsIDEuNzk5NzUiLCBcCi0gICAgICAgICAgIjAuMDc2OTExLCAwLjM0OTk4NCwgMC42MjM5ODgsIDAuODE5OTQ5LCAxLjEzMzQyLCAxLjQwNzc1LCAxLjc5OTYxIiwgXAotICAgICAgICAgICIwLjA3OTgwNCwgMC4zNDk5MDcsIDAuNjI0MDY4LCAwLjgxOTg3MiwgMS4xMzM0LCAxLjQwNzc0LCAxLjc5OTY0IiwgXAotICAgICAgICAgICIwLjA4NDE4NywgMC4zNTA3NCwgMC42MjQwMTUsIDAuODE5OTU3LCAxLjEzMzQ2LCAxLjQwNzc2LCAxLjc5OTU4IiwgXAotICAgICAgICAgICIwLjA4OTM5MiwgMC4zNTIzNjQsIDAuNjI0MzI2LCAwLjgxOTg0OSwgMS4xMzM0LCAxLjQwNzc5LCAxLjc5OTYiLCBcCi0gICAgICAgICAgIjAuMDk4Mzg5LCAwLjM1NjEyMSwgMC42MjU4NTYsIDAuODIwNDkzLCAxLjEzMzM5LCAxLjQwNzc5LCAxLjc5OTYxIiwgXAotICAgICAgICAgICIwLjEwNjA1MiwgMC4zNjA2MTYsIDAuNjI4MTkxLCAwLjgyMTg0LCAxLjEzMzcyLCAxLjQwNzcsIDEuNzk5NjEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDMxMzIyLCAwLjEzMjc0NCwgMC4yMzM1MDQsIDAuMzA1NDA4LCAwLjQyMDQxMSwgMC41MjIxNjgsIDAuNjY2OTc0IiwgXAotICAgICAgICAgICIwLjAzODg4NiwgMC4xNDAzMDQsIDAuMjQxMTY1LCAwLjMxMzIyNywgMC40Mjg0OTcsIDAuNTI5MTE4LCAwLjY3NDU4OSIsIFwKLSAgICAgICAgICAiMC4wNDg5MSwgMC4xNTAwOTQsIDAuMjUwODg3LCAwLjMyMjgyLCAwLjQzNzk5NSwgMC41Mzg0OTgsIDAuNjg0NTE1IiwgXAotICAgICAgICAgICIwLjA1NzQyNiwgMC4xNTk3NzYsIDAuMjYwMzY0LCAwLjMzMjU4NCwgMC40NDc1MjMsIDAuNTQ4NzIzLCAwLjY5MzkzNiIsIFwKLSAgICAgICAgICAiMC4wNjQ0MjMsIDAuMTY4OTgsIDAuMjY5NjQsIDAuMzQxNTk3LCAwLjQ1Njc1LCAwLjU1NzYyOSwgMC43MDM1NTQiLCBcCi0gICAgICAgICAgIjAuMDczNjUyLCAwLjE4NDc5NSwgMC4yODUyODYsIDAuMzU3MjMyLCAwLjQ3MjI5MSwgMC41NzMyNjIsIDAuNzE4NzE4IiwgXAotICAgICAgICAgICIwLjA4MDAzNiwgMC4xOTg4NjksIDAuMjk5MDQzLCAwLjM3MDgxNywgMC40ODU3NjUsIDAuNTg3MjMsIDAuNzMyMzk1Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDYwMTg2LCAwLjI3NDUyNCwgMC40ODg0MywgMC42NDE3MDIsIDAuODg4NzU5LCAxLjEwNTAyLCAxLjQxMzQ2IiwgXAotICAgICAgICAgICIwLjA2MTY1MywgMC4yNzQ1MDEsIDAuNDg4MjQ2LCAwLjY0MTk2OSwgMC44ODg4OTYsIDEuMTA0NTUsIDEuNDEzNjUiLCBcCi0gICAgICAgICAgIjAuMDY4MzM2LCAwLjI3NDQxOSwgMC40ODg0MTYsIDAuNjQyMDMyLCAwLjg4ODQ3MSwgMS4xMDM5OSwgMS40MTI4NCIsIFwKLSAgICAgICAgICAiMC4wNzY3MTcsIDAuMjc2NzE5LCAwLjQ4ODE0NSwgMC42NDE5MzUsIDAuODg4NjE2LCAxLjEwNDM4LCAxLjQxMzU0IiwgXAotICAgICAgICAgICIwLjA4NTMwNSwgMC4yODEzNzMsIDAuNDg5MzEyLCAwLjY0MTkxNSwgMC44ODg0NSwgMS4xMDQ1NywgMS40MTMzMiIsIFwKLSAgICAgICAgICAiMC4wOTcyNzksIDAuMjkwOTEyLCAwLjQ5NDAwNSwgMC42NDQzOTQsIDAuODg4NjAxLCAxLjEwNDYxLCAxLjQxMjg1IiwgXAotICAgICAgICAgICIwLjEwNjg1NywgMC4zMDA4NDUsIDAuNTAwNDkzLCAwLjY0ODU0MiwgMC44OTAwOTIsIDEuMTA0NzUsIDEuNDEyODUiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzcxNTcsIDAuMTcxMzE4LCAwLjMwNDk5NSwgMC40MDAzMjgsIDAuNTUyODUyLCAwLjY4NjMwNSwgMC44NzY2OSIsIFwKLSAgICAgICAgICAiMC4wNDM0MTksIDAuMTc4MDUyLCAwLjMxMTc3OCwgMC40MDcxODcsIDAuNTU5NzMxLCAwLjY5MzE4NiwgMC44ODM2MjQiLCBcCi0gICAgICAgICAgIjAuMDUxMzczLCAwLjE4NjMyLCAwLjMyMDEzNCwgMC40MTU1NjksIDAuNTY4MTcxLCAwLjcwMTU2OSwgMC44OTIwNzciLCBcCi0gICAgICAgICAgIjAuMDU4NTIzLCAwLjE5NDYwMSwgMC4zMjgzOTYsIDAuNDIzODMzLCAwLjU3NjQzLCAwLjcwOTg1OSwgMC45MDAzNyIsIFwKLSAgICAgICAgICAiMC4wNjQ3NjUsIDAuMjAyNjQ1LCAwLjMzNjc1LCAwLjQzMjIyNywgMC41ODQ3OCwgMC43MTgyNjIsIDAuOTA4NjQ2IiwgXAotICAgICAgICAgICIwLjA3MzI4OCwgMC4yMTYzNDEsIDAuMzUwMDY2LCAwLjQ0NTQ0NSwgMC41OTgwMzksIDAuNzMxNTU0LCAwLjkyMjEwMiIsIFwKLSAgICAgICAgICAiMC4wNzk2OSwgMC4yMjc4NTksIDAuMzYxNjI0LCAwLjQ1NzI0MSwgMC42MDk4MzUsIDAuNzQzMTY3LCAwLjkzMzcxNiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3NjM3NSwgMC4zNDk5NjgsIDAuNjI0MTY0LCAwLjgxOTk5LCAxLjEzMzQzLCAxLjQwNzc3LCAxLjc5OTciLCBcCi0gICAgICAgICAgIjAuMDc3MjY4LCAwLjM0OTk3MywgMC42MjQxMSwgMC44MTk5OCwgMS4xMzMyLCAxLjQwNzcxLCAxLjc5OTY0IiwgXAotICAgICAgICAgICIwLjA4MTg0OCwgMC4zNDk5MSwgMC42MjQwNTEsIDAuODE5OTc5LCAxLjEzMzQ0LCAxLjQwNzY5LCAxLjc5OTY0IiwgXAotICAgICAgICAgICIwLjA4ODA0NiwgMC4zNTA4NDQsIDAuNjI0MDA1LCAwLjgxOTk2NiwgMS4xMzM0MSwgMS40MDc3OSwgMS43OTk2NCIsIFwKLSAgICAgICAgICAiMC4wOTQ5NCwgMC4zNTI5NDIsIDAuNjI0MTY4LCAwLjgyMDAwMywgMS4xMzM0MSwgMS40MDc3MSwgMS43OTk2NyIsIFwKLSAgICAgICAgICAiMC4xMDYxNDIsIDAuMzU4ODUxLCAwLjYyNjIwNywgMC44MjAyMDIsIDEuMTMzNCwgMS40MDc3OSwgMS43OTk2OSIsIFwKLSAgICAgICAgICAiMC4xMTUxOTMsIDAuMzY0OTk4LCAwLjYyOTMzMiwgMC44MjIwNDksIDEuMTMzNTQsIDEuNDA3NzksIDEuNzk5NTYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjIiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDI5MDk2LCAwLjEzMDY5NCwgMC4yMzE1NDgsIDAuMzAzNjIsIDAuNDE5MDI5LCAwLjUyMDEzMiwgMC42NjYxMDMiLCBcCi0gICAgICAgICAgIjAuMDM2NzAyLCAwLjEzODMxNiwgMC4yMzkzMTMsIDAuMzExMzU4LCAwLjQyNjYwNiwgMC41Mjc4NjYsIDAuNjczODAxIiwgXAotICAgICAgICAgICIwLjA0NjY2LCAwLjE0Nzc0NSwgMC4yNDg2OTYsIDAuMzIwNzY4LCAwLjQzNjI5LCAwLjUzNjc3NSwgMC42ODI4MiIsIFwKLSAgICAgICAgICAiMC4wNTQ2ODgsIDAuMTU3NjUxLCAwLjI1ODQyMSwgMC4zMzA3NzcsIDAuNDQ1OTIxLCAwLjU0NzgzNSwgMC42OTI4NTUiLCBcCi0gICAgICAgICAgIjAuMDYxMTQxLCAwLjE2NzA5MSwgMC4yNjc5MywgMC4zNDAwMTcsIDAuNDU1MjU2LCAwLjU1NjM2MiwgMC43MDI1MDEiLCBcCi0gICAgICAgICAgIjAuMDY5NjY5LCAwLjE4MjgzNywgMC4yODM1NDUsIDAuMzU1NjMsIDAuNDcwODYxLCAwLjU3MTk3MSwgMC43MTc2ODMiLCBcCi0gICAgICAgICAgIjAuMDc1ODMzLCAwLjE5NjcsIDAuMjk3MTg4LCAwLjM2OTA5NywgMC40ODQzNjIsIDAuNTg1ODk0LCAwLjczMTE5NSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1NzYyMywgMC4yNzMxNjMsIDAuNDg4MTY4LCAwLjY0MjUyMiwgMC44OTA4MjQsIDEuMTA4NjcsIDEuNDE4NjQiLCBcCi0gICAgICAgICAgIjAuMDU5MjY0LCAwLjI3MzA3MiwgMC40ODgzMDYsIDAuNjQyNDc0LCAwLjg5MDc5MSwgMS4xMDg3NywgMS40MTg1NSIsIFwKLSAgICAgICAgICAiMC4wNjYxNjcsIDAuMjczMTI0LCAwLjQ4ODM3OSwgMC42NDI3OTIsIDAuODkwOTkxLCAxLjEwODE0LCAxLjQyMDg3IiwgXAotICAgICAgICAgICIwLjA3NDY3OSwgMC4yNzU1MjYsIDAuNDg4MjI1LCAwLjY0MjU0NSwgMC44OTA2MzgsIDEuMTA4NjEsIDEuNDE5MTkiLCBcCi0gICAgICAgICAgIjAuMDgzMjc1LCAwLjI4MDA3MSwgMC40ODkyNjEsIDAuNjQzNDkxLCAwLjg5MDY5LCAxLjEwOTk1LCAxLjQxODUyIiwgXAotICAgICAgICAgICIwLjA5NDk2OSwgMC4yODk2MzksIDAuNDk0MTM1LCAwLjY0NDcyNCwgMC44OTIyNTksIDEuMTA3ODEsIDEuNDE4MzUiLCBcCi0gICAgICAgICAgIjAuMTA0MTc3LCAwLjI5OTY1MSwgMC41MDA1MzEsIDAuNjQ5NjQ5LCAwLjg5Mjc4OSwgMS4xMDgwNywgMS40MTgzNyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzNDA1NywgMC4xNjgyNjgsIDAuMzAxODgzLCAwLjM5NzI3MywgMC41NDk4MDMsIDAuNjgzMjk3LCAwLjg3MzYwMiIsIFwKLSAgICAgICAgICAiMC4wNDEwOTMsIDAuMTc1NTc0LCAwLjMwOTI3LCAwLjQwNDY4MywgMC41NTcyMzgsIDAuNjkwNjU0LCAwLjg4MTA4NCIsIFwKLSAgICAgICAgICAiMC4wNTA0NzUsIDAuMTg0NTM4LCAwLjMxODE5MiwgMC40MTM2MDgsIDAuNTY2MTU2LCAwLjY5OTYwNCwgMC44OTAwMTIiLCBcCi0gICAgICAgICAgIjAuMDU4ODY5LCAwLjE5Mzc4MiwgMC4zMjc0MzUsIDAuNDIyODUyLCAwLjU3NTM3OCwgMC43MDg3ODEsIDAuODk5MjA5IiwgXAotICAgICAgICAgICIwLjA2NTg2LCAwLjIwMjg1OCwgMC4zMzY0ODEsIDAuNDMxODQ0LCAwLjU4NDM0NywgMC43MTc3ODcsIDAuOTA4MTUiLCBcCi0gICAgICAgICAgIjAuMDc1NjQxLCAwLjIxNzgxNSwgMC4zNTExMjYsIDAuNDQ2NTExLCAwLjU5ODkyOSwgMC43MzIzMzEsIDAuOTIyNjc0IiwgXAotICAgICAgICAgICIwLjA4Mjg1MywgMC4yMzExNiwgMC4zNjQxNzksIDAuNDU5NDI4LCAwLjYxMTI0LCAwLjc0NTEwNiwgMC45MzU0ODkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzYzNTgsIDAuMzQ5OTg3LCAwLjYyNDExMywgMC44MTk5NzUsIDEuMTMzNDQsIDEuNDA3ODMsIDEuNzk5NjEiLCBcCi0gICAgICAgICAgIjAuMDc3NjcyLCAwLjM0OTkxNiwgMC42MjQwOTYsIDAuODE5ODQyLCAxLjEzMzE5LCAxLjQwNzY1LCAxLjc5OTUzIiwgXAotICAgICAgICAgICIwLjA4NDA1LCAwLjM0OTk2OSwgMC42MjQwMDIsIDAuODE5OTY3LCAxLjEzMzE5LCAxLjQwNzY3LCAxLjc5OTU5IiwgXAotICAgICAgICAgICIwLjA5MjEwMiwgMC4zNTA5OCwgMC42MjQwMTEsIDAuODE5OTksIDEuMTMzNDQsIDEuNDA3OCwgMS43OTk1NyIsIFwKLSAgICAgICAgICAiMC4xMDA2MDUsIDAuMzU0MDYzLCAwLjYyNDA3OCwgMC44MTk5NzMsIDEuMTMzMjcsIDEuNDA3NzgsIDEuNzk5NiIsIFwKLSAgICAgICAgICAiMC4xMTM0MjEsIDAuMzYxNDczLCAwLjYyNjU4OCwgMC44MjAyNjUsIDEuMTMzMiwgMS40MDc3LCAxLjc5OTU3IiwgXAotICAgICAgICAgICIwLjEyMzY5MSwgMC4zNjk5MTIsIDAuNjMwOTg0LCAwLjgyMjU4MSwgMS4xMzM1MSwgMS40MDc3OSwgMS43OTk1OCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyNDY5NCwgMC4wMjQ2OTksIDAuMDI0Njk5LCAwLjAyNDY5NywgMC4wMjQ2OTksIDAuMDI0Njk0LCAwLjAyNDY5MiIsIFwKLSAgICAgICAgICAiMC4wMjQ2MDksIDAuMDI0NjQ0LCAwLjAyNDY1MSwgMC4wMjQ2NTIsIDAuMDI0NjUsIDAuMDI0NjUxLCAwLjAyNDY1MiIsIFwKLSAgICAgICAgICAiMC4wMjQ1NiwgMC4wMjQ2MjQsIDAuMDI0NjM2LCAwLjAyNDYzOSwgMC4wMjQ2NCwgMC4wMjQ2NDIsIDAuMDI0NjQ0IiwgXAotICAgICAgICAgICIwLjAyNDU4LCAwLjAyNDYyMywgMC4wMjQ2MzQsIDAuMDI0NjM3LCAwLjAyNDY0LCAwLjAyNDY0MSwgMC4wMjQ2NDkiLCBcCi0gICAgICAgICAgIjAuMDI0NjI5LCAwLjAyNDY0LCAwLjAyNDY0MywgMC4wMjQ2NDEsIDAuMDI0NjQ2LCAwLjAyNDY0NSwgMC4wMjQ2NDQiLCBcCi0gICAgICAgICAgIjAuMDI0Nzk5LCAwLjAyNDcwNiwgMC4wMjQ2ODgsIDAuMDI0NjgyLCAwLjAyNDY3NSwgMC4wMjQ2NjcsIDAuMDI0NjY0IiwgXAotICAgICAgICAgICIwLjAyNTAyLCAwLjAyNDgwNCwgMC4wMjQ3NTQsIDAuMDI0NzM4LCAwLjAyNDcxNSwgMC4wMjQ3MDYsIDAuMDI0Njk1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDY2MSwgMC4wMDY2MywgMC4wMDY2MzMsIDAuMDA2NjMyLCAwLjAwNjYzMywgMC4wMDY2MzEsIDAuMDA2NjMxIiwgXAotICAgICAgICAgICIwLjAwNjQwNywgMC4wMDY1MzcsIDAuMDA2NTYzLCAwLjAwNjU3LCAwLjAwNjU3OCwgMC4wMDY1OCwgMC4wMDY1ODQiLCBcCi0gICAgICAgICAgIjAuMDA2MzExLCAwLjAwNjQ3NiwgMC4wMDY1MjEsIDAuMDA2NTM2LCAwLjAwNjU1MSwgMC4wMDY1NTgsIDAuMDA2NTY1IiwgXAotICAgICAgICAgICIwLjAwNjMzNCwgMC4wMDY0NTcsIDAuMDA2NTAzLCAwLjAwNjUyMSwgMC4wMDY1MzgsIDAuMDA2NTQ3LCAwLjAwNjU1NCIsIFwKLSAgICAgICAgICAiMC4wMDY0NDQsIDAuMDA2NDc1LCAwLjAwNjUxLCAwLjAwNjUyNCwgMC4wMDY1NCwgMC4wMDY1NDcsIDAuMDA2NTU2IiwgXAotICAgICAgICAgICIwLjAwNjc3NSwgMC4wMDY1ODQsIDAuMDA2NTc0LCAwLjAwNjU3MiwgMC4wMDY1NzQsIDAuMDA2NTc0LCAwLjAwNjU3NCIsIFwKLSAgICAgICAgICAiMC4wMDcxODQsIDAuMDA2NzUyLCAwLjAwNjY3NywgMC4wMDY2NTcsIDAuMDA2NjM3LCAwLjAwNjYyNSwgMC4wMDY2MTUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjI2MzksIDAuMDIyNjYyLCAwLjAyMjY2MSwgMC4wMjI2NjMsIDAuMDIyNjYsIDAuMDIyNjYyLCAwLjAyMjY2IiwgXAotICAgICAgICAgICIwLjAyMjUyNywgMC4wMjI2MzEsIDAuMDIyNjQ0LCAwLjAyMjY1LCAwLjAyMjY1MSwgMC4wMjI2NTYsIDAuMDIyNjU2IiwgXAotICAgICAgICAgICIwLjAyMjQ1MiwgMC4wMjI1OTMsIDAuMDIyNjIzLCAwLjAyMjYzMiwgMC4wMjI2NCwgMC4wMjI2NDMsIDAuMDIyNjQ3IiwgXAotICAgICAgICAgICIwLjAyMjQzOSwgMC4wMjI1NzYsIDAuMDIyNjExLCAwLjAyMjYyMiwgMC4wMjI2MzMsIDAuMDIyNjM3LCAwLjAyMjY0IiwgXAotICAgICAgICAgICIwLjAyMjQ4NywgMC4wMjI1NzgsIDAuMDIyNjEzLCAwLjAyMjYyNiwgMC4wMjI2MzQsIDAuMDIyNjM5LCAwLjAyMjY0MSIsIFwKLSAgICAgICAgICAiMC4wMjI2NTQsIDAuMDIyNjMsIDAuMDIyNjQ1LCAwLjAyMjY1LCAwLjAyMjY1NCwgMC4wMjI2NTcsIDAuMDIyNjYxIiwgXAotICAgICAgICAgICIwLjAyMjg3NywgMC4wMjI3MjQsIDAuMDIyNzEsIDAuMDIyNzA0LCAwLjAyMjY5NiwgMC4wMjI2OTEsIDAuMDIyNjg2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDY2MTIsIDAuMDA2NjMzLCAwLjAwNjYzNiwgMC4wMDY2MzYsIDAuMDA2NjM1LCAwLjAwNjYzNSwgMC4wMDY2MzIiLCBcCi0gICAgICAgICAgIjAuMDA2NDE0LCAwLjAwNjU0MSwgMC4wMDY1NjYsIDAuMDA2NTc0LCAwLjAwNjU4LCAwLjAwNjU4NCwgMC4wMDY1ODUiLCBcCi0gICAgICAgICAgIjAuMDA2MzUyLCAwLjAwNjQ5MSwgMC4wMDY1MywgMC4wMDY1NDQsIDAuMDA2NTU2LCAwLjAwNjU2MywgMC4wMDY1NjgiLCBcCi0gICAgICAgICAgIjAuMDA2NDI0LCAwLjAwNjQ4OCwgMC4wMDY1MjIsIDAuMDA2NTM5LCAwLjAwNjU1LCAwLjAwNjU1NSwgMC4wMDY1NjIiLCBcCi0gICAgICAgICAgIjAuMDA2NTkyLCAwLjAwNjUzMiwgMC4wMDY1MzgsIDAuMDA2NTUyLCAwLjAwNjU2LCAwLjAwNjU2MywgMC4wMDY1NjgiLCBcCi0gICAgICAgICAgIjAuMDA3MDA3LCAwLjAwNjY3MywgMC4wMDY2MjksIDAuMDA2NjE2LCAwLjAwNjYwNiwgMC4wMDY2MDIsIDAuMDA2NTk2IiwgXAotICAgICAgICAgICIwLjAwNzQ0NiwgMC4wMDY4NTcsIDAuMDA2NzQ0LCAwLjAwNjcwOCwgMC4wMDY2NjgsIDAuMDA2NjU2LCAwLjAwNjYzOSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEyIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyMDU1LCAwLjAyMDYwNSwgMC4wMjA2MTEsIDAuMDIwNjEyLCAwLjAyMDYxNSwgMC4wMjA2MTUsIDAuMDIwNjE1IiwgXAotICAgICAgICAgICIwLjAyMDQxNCwgMC4wMjA1OTMsIDAuMDIwNjIxLCAwLjAyMDYzMSwgMC4wMjA2NCwgMC4wMjA2NCwgMC4wMjA2NDIiLCBcCi0gICAgICAgICAgIjAuMDIwMzAxLCAwLjAyMDU0MywgMC4wMjA1OTMsIDAuMDIwNjA5LCAwLjAyMDYyNCwgMC4wMjA2MzEsIDAuMDIwNjM4IiwgXAotICAgICAgICAgICIwLjAyMDI3NSwgMC4wMjA1MTEsIDAuMDIwNTcyLCAwLjAyMDU5MiwgMC4wMjA2MTIsIDAuMDIwNjMsIDAuMDIwNjI5IiwgXAotICAgICAgICAgICIwLjAyMDMwNiwgMC4wMjA1LCAwLjAyMDU2MSwgMC4wMjA1NzMsIDAuMDIwNjA3LCAwLjAyMDYxMywgMC4wMjA2MjciLCBcCi0gICAgICAgICAgIjAuMDIwNDcxLCAwLjAyMDUzNCwgMC4wMjA1ODEsIDAuMDIwNTk4LCAwLjAyMDYxOSwgMC4wMjA2MjcsIDAuMDIwNjQiLCBcCi0gICAgICAgICAgIjAuMDIwNjk3LCAwLjAyMDYwNywgMC4wMjA2MywgMC4wMjA2NCwgMC4wMjA2NTEsIDAuMDIwNjU0LCAwLjAyMDY1NyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2NjE5LCAwLjAwNjY0NSwgMC4wMDY2NSwgMC4wMDY2NSwgMC4wMDY2NSwgMC4wMDY2NSwgMC4wMDY2NDciLCBcCi0gICAgICAgICAgIjAuMDA2NDQ4LCAwLjAwNjU1OCwgMC4wMDY1ODEsIDAuMDA2NTg5LCAwLjAwNjU5NSwgMC4wMDY1OTgsIDAuMDA2NiIsIFwKLSAgICAgICAgICAiMC4wMDY1NjIsIDAuMDA2NTY4LCAwLjAwNjU3OSwgMC4wMDY1ODksIDAuMDA2NTk0LCAwLjAwNjU5NiwgMC4wMDY1OTgiLCBcCi0gICAgICAgICAgIjAuMDA2Njk2LCAwLjAwNjYwMywgMC4wMDY1OTgsIDAuMDA2NTk4LCAwLjAwNjYsIDAuMDA2NiwgMC4wMDY2IiwgXAotICAgICAgICAgICIwLjAwNzA1NywgMC4wMDY3NDMsIDAuMDA2NjgzLCAwLjAwNjY3NCwgMC4wMDY2NTQsIDAuMDA2NjQ0LCAwLjAwNjYzNiIsIFwKLSAgICAgICAgICAiMC4wMDc3MDQsIDAuMDA3MDIsIDAuMDA2ODYxLCAwLjAwNjgyMSwgMC4wMDY3NjgsIDAuMDA2NzM2LCAwLjAwNjcwOCIsIFwKLSAgICAgICAgICAiMC4wMDgzNjQsIDAuMDA3MzE4LCAwLjAwNzA2NSwgMC4wMDY5NzEsIDAuMDA2ODkyLCAwLjAwNjg1MiwgMC4wMDY3OTkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTgxNzMsIDAuMDE4MTg2LCAwLjAxODE4OCwgMC4wMTgxODcsIDAuMDE4MTg3LCAwLjAxODE4NCwgMC4wMTgxODUiLCBcCi0gICAgICAgICAgIjAuMDE4MDk3LCAwLjAxODEzLCAwLjAxODEzNSwgMC4wMTgxMzgsIDAuMDE4MTM3LCAwLjAxODEzNywgMC4wMTgxMzUiLCBcCi0gICAgICAgICAgIjAuMDE4MjA0LCAwLjAxODE3MywgMC4wMTgxNTksIDAuMDE4MTU0LCAwLjAxODE1MSwgMC4wMTgxNDUsIDAuMDE4MTQiLCBcCi0gICAgICAgICAgIjAuMDE4NDI2LCAwLjAxODIzLCAwLjAxODE3NiwgMC4wMTgxODIsIDAuMDE4MTY2LCAwLjAxODE1OCwgMC4wMTgxNTEiLCBcCi0gICAgICAgICAgIjAuMDE4NzcsIDAuMDE4Mzg1LCAwLjAxODI5LCAwLjAxODI2MiwgMC4wMTgyMjgsIDAuMDE4MjEzLCAwLjAxODE5IiwgXAotICAgICAgICAgICIwLjAxOTM0NCwgMC4wMTg2MDgsIDAuMDE4NDUyLCAwLjAxODM5LCAwLjAxODMyMywgMC4wMTgyOTgsIDAuMDE4MjY1IiwgXAotICAgICAgICAgICIwLjAxOTkxNSwgMC4wMTg4ODIsIDAuMDE4NjQsIDAuMDE4NTQxLCAwLjAxODQ0NSwgMC4wMTgzOTEsIDAuMDE4MzQ3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDE4MzUsIDAuMDAxOTQxLCAwLjAwMTk1NCwgMC4wMDE5NTcsIDAuMDAxOTYsIDAuMDAxOTYyLCAwLjAwMTk2NCIsIFwKLSAgICAgICAgICAiMC4wMDE2MTMsIDAuMDAxOTQ5LCAwLjAwMjAwMiwgMC4wMDIwMTksIDAuMDAyMDM0LCAwLjAwMjA0MiwgMC4wMDIwNDkiLCBcCi0gICAgICAgICAgIjAuMDAxNDg1LCAwLjAwMTg3NywgMC4wMDE5NjQsIDAuMDAxOTkzLCAwLjAwMjAxOSwgMC4wMDIwMzMsIDAuMDAyMDQ2IiwgXAotICAgICAgICAgICIwLjAwMTUyLCAwLjAwMTg0MSwgMC4wMDE5MzgsIDAuMDAxOTcyLCAwLjAwMjAwNCwgMC4wMDIwMjIsIDAuMDAyMDM4IiwgXAotICAgICAgICAgICIwLjAwMTY1OCwgMC4wMDE4NDMsIDAuMDAxOTMzLCAwLjAwMTk2NywgMC4wMDIsIDAuMDAyMDE4LCAwLjAwMjAzNSIsIFwKLSAgICAgICAgICAiMC4wMDIwNDQsIDAuMDAxOTI2LCAwLjAwMTk3NSwgMC4wMDE5OTgsIDAuMDAyMDIyLCAwLjAwMjAzNiwgMC4wMDIwNDkiLCBcCi0gICAgICAgICAgIjAuMDAyNTQsIDAuMDAyMDY0LCAwLjAwMjA2MSwgMC4wMDIwNjQsIDAuMDAyMDcxLCAwLjAwMjA3NiwgMC4wMDIwODEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTYwODIsIDAuMDE2MTE0LCAwLjAxNjExOCwgMC4wMTYxMTgsIDAuMDE2MTE3LCAwLjAxNjExNywgMC4wMTYxMTciLCBcCi0gICAgICAgICAgIjAuMDE2MDE0LCAwLjAxNjA4OSwgMC4wMTYxMDMsIDAuMDE2MTA2LCAwLjAxNjEwNywgMC4wMTYxMDksIDAuMDE2MTExIiwgXAotICAgICAgICAgICIwLjAxNjA3MiwgMC4wMTYwOTgsIDAuMDE2MTA3LCAwLjAxNjEwOCwgMC4wMTYxMDgsIDAuMDE2MTEzLCAwLjAxNjExIiwgXAotICAgICAgICAgICIwLjAxNjI3MSwgMC4wMTYxNjUsIDAuMDE2MTM1LCAwLjAxNjE0MiwgMC4wMTYxMzMsIDAuMDE2MTI3LCAwLjAxNjEyNSIsIFwKLSAgICAgICAgICAiMC4wMTY1NTgsIDAuMDE2MzM3LCAwLjAxNjI2NSwgMC4wMTYyMzUsIDAuMDE2MjAyLCAwLjAxNjE4OCwgMC4wMTYxNzIiLCBcCi0gICAgICAgICAgIjAuMDE3MTQ3LCAwLjAxNjU0NywgMC4wMTY0MDgsIDAuMDE2MzUzLCAwLjAxNjMwNywgMC4wMTYyNzMsIDAuMDE2MjM4IiwgXAotICAgICAgICAgICIwLjAxNzc0NSwgMC4wMTY4LCAwLjAxNjU4MiwgMC4wMTY0OSwgMC4wMTY0MDMsIDAuMDE2MzcyLCAwLjAxNjMxOSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxODMyLCAwLjAwMTkzOSwgMC4wMDE5NTEsIDAuMDAxOTU0LCAwLjAwMTk1OCwgMC4wMDE5NTksIDAuMDAxOTYxIiwgXAotICAgICAgICAgICIwLjAwMTYyNiwgMC4wMDE5NSwgMC4wMDIwMDIsIDAuMDAyMDE4LCAwLjAwMjAzMywgMC4wMDIwNDEsIDAuMDAyMDQ3IiwgXAotICAgICAgICAgICIwLjAwMTU1MSwgMC4wMDE4OTMsIDAuMDAxOTcyLCAwLjAwMTk5OCwgMC4wMDIwMjMsIDAuMDAyMDM2LCAwLjAwMjA0OCIsIFwKLSAgICAgICAgICAiMC4wMDE2NTEsIDAuMDAxODc2LCAwLjAwMTk1NywgMC4wMDE5ODcsIDAuMDAyMDE1LCAwLjAwMjAzLCAwLjAwMjA0NCIsIFwKLSAgICAgICAgICAiMC4wMDE4NTYsIDAuMDAxOTAxLCAwLjAwMTk2NiwgMC4wMDE5OTMsIDAuMDAyMDE5LCAwLjAwMjAzMywgMC4wMDIwNDciLCBcCi0gICAgICAgICAgIjAuMDAyMzQ0LCAwLjAwMjAxOSwgMC4wMDIwMywgMC4wMDIwMzksIDAuMDAyMDUxLCAwLjAwMjA1OSwgMC4wMDIwNjciLCBcCi0gICAgICAgICAgIjAuMDAyODg4LCAwLjAwMjE2OCwgMC4wMDIxMjEsIDAuMDAyMTExLCAwLjAwMjEwMywgMC4wMDIxMDEsIDAuMDAyMTAxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjIiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEzOTUsIDAuMDE0MDIyLCAwLjAxNDAzMSwgMC4wMTQwMzIsIDAuMDE0MDM1LCAwLjAxNDAzNSwgMC4wMTQwMzUiLCBcCi0gICAgICAgICAgIjAuMDEzODY3LCAwLjAxNDAxOSwgMC4wMTQwNDUsIDAuMDE0MDUzLCAwLjAxNDA1OSwgMC4wMTQwNjIsIDAuMDE0MDY2IiwgXAotICAgICAgICAgICIwLjAxMzkxOCwgMC4wMTQwNDgsIDAuMDE0MDYyLCAwLjAxNDA2OCwgMC4wMTQwNywgMC4wMTQwNzIsIDAuMDE0MDczIiwgXAotICAgICAgICAgICIwLjAxNDE0MywgMC4wMTQwNzQsIDAuMDE0MDc5LCAwLjAxNDA3OSwgMC4wMTQwNzksIDAuMDE0MDgsIDAuMDE0MDgiLCBcCi0gICAgICAgICAgIjAuMDE0NDM0LCAwLjAxNDIwNiwgMC4wMTQxNzEsIDAuMDE0MTU0LCAwLjAxNDEzNiwgMC4wMTQxMjUsIDAuMDE0MTE1IiwgXAotICAgICAgICAgICIwLjAxNDk3OSwgMC4wMTQ0LCAwLjAxNDMsIDAuMDE0MjU3LCAwLjAxNDIzMSwgMC4wMTQyMDcsIDAuMDE0MTgiLCBcCi0gICAgICAgICAgIjAuMDE1NTA4LCAwLjAxNDY0OCwgMC4wMTQ0NjgsIDAuMDE0MzkyLCAwLjAxNDMzOSwgMC4wMTQzMDEsIDAuMDE0MjQxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDE4MDgsIDAuMDAxOTIyLCAwLjAwMTkzNSwgMC4wMDE5MzksIDAuMDAxOTQyLCAwLjAwMTk0NCwgMC4wMDE5NDYiLCBcCi0gICAgICAgICAgIjAuMDAxNjk3LCAwLjAwMTk1MywgMC4wMDE5OTgsIDAuMDAyMDEzLCAwLjAwMjAyNiwgMC4wMDIwMzIsIDAuMDAyMDM4IiwgXAotICAgICAgICAgICIwLjAwMTg0MywgMC4wMDE5NjMsIDAuMDAyMDAzLCAwLjAwMjAyLCAwLjAwMjAzNSwgMC4wMDIwNDMsIDAuMDAyMDUiLCBcCi0gICAgICAgICAgIjAuMDAxOTkyLCAwLjAwMjAwNSwgMC4wMDIwMTYsIDAuMDAyMDI5LCAwLjAwMjA0MywgMC4wMDIwNSwgMC4wMDIwNTciLCBcCi0gICAgICAgICAgIjAuMDAyNDk2LCAwLjAwMjEwMSwgMC4wMDIwOTYsIDAuMDAyMDkxLCAwLjAwMjA4OSwgMC4wMDIwODgsIDAuMDAyMDg4IiwgXAotICAgICAgICAgICIwLjAwMzA0NCwgMC4wMDIzMzUsIDAuMDAyMjMxLCAwLjAwMjIxNiwgMC4wMDIxODEsIDAuMDAyMTY0LCAwLjAwMjE0OCIsIFwKLSAgICAgICAgICAiMC4wMDM3NDYsIDAuMDAyNTk0LCAwLjAwMjQwOCwgMC4wMDIzNCwgMC4wMDIyOTUsIDAuMDAyMjYsIDAuMDAyMjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBCVUZYMTIgKgotICogLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChCVUZYMTIpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMS40NDQxNDsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAyNDUyMjY7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAyNDUyMTY7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAyNDUyMjY7Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogNC4xMTgxMTsKLSAgICBmdW5jdGlvbiA6ICJBIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjM4NjQsIDAuMDI1OTc2LCAwLjAzNjAzLCAwLjA0NDA5OSwgMC4wNTQ2NjQsIDAuMDc1NjA3LCAwLjA4ODY4OSIsIFwKLSAgICAgICAgICAiMC4wMzIxMTQsIDAuMDM0MjAzLCAwLjA0NDIzNSwgMC4wNTIzMDcsIDAuMDYyODQ4LCAwLjA4MzgxLCAwLjA5NjkwMiIsIFwKLSAgICAgICAgICAiMC4wNDA1NjUsIDAuMDQyODA2LCAwLjA1MzAwMiwgMC4wNjExNTksIDAuMDcxNjk4LCAwLjA5MjYzNywgMC4xMDU3MTciLCBcCi0gICAgICAgICAgIjAuMDQ2ODczLCAwLjA0OTI0MSwgMC4wNTk5MTUsIDAuMDY4MDkxLCAwLjA3ODY3NSwgMC4wOTk1MDMsIDAuMTEyNjA4IiwgXAotICAgICAgICAgICIwLjA1MTkyMiwgMC4wNTQ0NzIsIDAuMDY1NDY0LCAwLjA3Mzc0MSwgMC4wODQzMDcsIDAuMTA1MjA4LCAwLjExODIzNyIsIFwKLSAgICAgICAgICAiMC4wNTg1NDksIDAuMDYxMjQ5LCAwLjA3MjgzMywgMC4wODEyNTUsIDAuMDkxODEsIDAuMTEyODAxLCAwLjEyNTg3NCIsIFwKLSAgICAgICAgICAiMC4wNjMyOTksIDAuMDY2MTM3LCAwLjA3ODMyNiwgMC4wODY5NzMsIDAuMDk3NDksIDAuMTE4NTIxLCAwLjEzMTU3NiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTQyMzEsIDAuMDE3MzY1LCAwLjAzNTAxMiwgMC4wNTA5MDQsIDAuMDcyMzY4LCAwLjExNjA2MiwgMC4xNDM1NTgiLCBcCi0gICAgICAgICAgIjAuMDE0NTEzLCAwLjAxNzU5OSwgMC4wMzUxMywgMC4wNTEwMDEsIDAuMDcyNDczLCAwLjExNjA5NSwgMC4xNDM2MDgiLCBcCi0gICAgICAgICAgIjAuMDE2MjM3LCAwLjAxOTM2OCwgMC4wMzYzMTQsIDAuMDUxODA2LCAwLjA3MzAwMSwgMC4xMTYyNDEsIDAuMTQzNzYiLCBcCi0gICAgICAgICAgIjAuMDE3Nzk0LCAwLjAyMDg3NywgMC4wMzc2NzMsIDAuMDUyNzg3LCAwLjA3MzY4MywgMC4xMTY2ODgsIDAuMTQzOTExIiwgXAotICAgICAgICAgICIwLjAxOTI2LCAwLjAyMjI3NiwgMC4wMzg4MDYsIDAuMDUzODc3LCAwLjA3NDQ4OCwgMC4xMTcwODEsIDAuMTQ0MjUiLCBcCi0gICAgICAgICAgIjAuMDIxMTQsIDAuMDI0MzksIDAuMDQwNjgzLCAwLjA1NTM4NCwgMC4wNzU3OTksIDAuMTE3ODY3LCAwLjE0NDcwNSIsIFwKLSAgICAgICAgICAiMC4wMjI2MTgsIDAuMDI1ODYzLCAwLjA0MjQ2NiwgMC4wNTY4MzcsIDAuMDc2ODg0LCAwLjExODc3NiwgMC4xNDUyOTciKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDI1MjAxLCAwLjAyNzMyOSwgMC4wMzc2LCAwLjA0NTkxNiwgMC4wNTY3NDMsIDAuMDc4MjQ0LCAwLjA5MTY2IiwgXAotICAgICAgICAgICIwLjAzMzQzOSwgMC4wMzU1NDksIDAuMDQ1Nzk2LCAwLjA1NDEwNSwgMC4wNjQ5MTEsIDAuMDg2NDA5LCAwLjA5OTgyMyIsIFwKLSAgICAgICAgICAiMC4wNDE3MDMsIDAuMDQzOTE1LCAwLjA1NDMxMSwgMC4wNjI2NjYsIDAuMDczNTE4LCAwLjA5NTA0MiwgMC4xMDg0NDkiLCBcCi0gICAgICAgICAgIjAuMDQ3ODAxLCAwLjA1MDEzOSwgMC4wNjA4MSwgMC4wNjkxMjksIDAuMDgwMDcsIDAuMTAxNjE0LCAwLjExNTA1MSIsIFwKLSAgICAgICAgICAiMC4wNTI2MTcsIDAuMDU1MDIsIDAuMDY1OTI5LCAwLjA3NDMsIDAuMDg1MjYxLCAwLjEwNjg3MywgMC4xMjAyNzkiLCBcCi0gICAgICAgICAgIjAuMDU4Nzk0LCAwLjA2MTQzMSwgMC4wNzI4MzQsIDAuMDgxMTY3LCAwLjA5MjA0OCwgMC4xMTM3MjQsIDAuMTI2OTMiLCBcCi0gICAgICAgICAgIjAuMDYzMjAxLCAwLjA2NTkxLCAwLjA3NzU3NCwgMC4wODYyOTIsIDAuMDk3MiwgMC4xMTg2NDEsIDAuMTMxODMxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxNDEyLCAwLjAxNzI2MiwgMC4wMzQ5NzgsIDAuMDUwOTQ4LCAwLjA3MjQ1OSwgMC4xMTYyODgsIDAuMTQzODIxIiwgXAotICAgICAgICAgICIwLjAxNDIyOSwgMC4wMTczOCwgMC4wMzUwNywgMC4wNTEwMDEsIDAuMDcyNTY2LCAwLjExNjM0NCwgMC4xNDM4MzUiLCBcCi0gICAgICAgICAgIjAuMDE1Nzc3LCAwLjAxODgzNywgMC4wMzYwNjMsIDAuMDUxNjksIDAuMDczMDE2LCAwLjExNjU1MywgMC4xNDM5OSIsIFwKLSAgICAgICAgICAiMC4wMTczMjksIDAuMDIwMjksIDAuMDM3MTkxLCAwLjA1MjU2NiwgMC4wNzM2NzEsIDAuMTE2ODA1LCAwLjE0NDE0MSIsIFwKLSAgICAgICAgICAiMC4wMTg2MDIsIDAuMDIxNzU2LCAwLjAzODI4MywgMC4wNTM2MjUsIDAuMDc0Mjk4LCAwLjExNzIxMiwgMC4xNDQ0NCIsIFwKLSAgICAgICAgICAiMC4wMjA0MzIsIDAuMDIzNjQxLCAwLjAzOTc3NSwgMC4wNTQ5NjcsIDAuMDc1NDYsIDAuMTE3Nzc0LCAwLjE0NDc3OSIsIFwKLSAgICAgICAgICAiMC4wMjE3MywgMC4wMjQ5MDYsIDAuMDQxMDc0LCAwLjA1NTc2NiwgMC4wNzYxNDYsIDAuMTE4NDc2LCAwLjE0NTI5NCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxNTQ1OSwgMC4wMTU1NSwgMC4wMTU4NjYsIDAuMDE1OTg5LCAwLjAxNjA3NSwgMC4wMTYxNTUsIDAuMDE2MTgiLCBcCi0gICAgICAgICAgIjAuMDE1NDQxLCAwLjAxNTQ3NCwgMC4wMTU3MDUsIDAuMDE1ODMzLCAwLjAxNTkzNiwgMC4wMTYwMzYsIDAuMDE2MDgxIiwgXAotICAgICAgICAgICIwLjAxNTkwMiwgMC4wMTU4ODYsIDAuMDE1ODk4LCAwLjAxNjAxMSwgMC4wMTYxMDgsIDAuMDE2MjI5LCAwLjAxNjMwNCIsIFwKLSAgICAgICAgICAiMC4wMTY0OTUsIDAuMDE2NDA2LCAwLjAxNjMzNCwgMC4wMTYzODksIDAuMDE2NDcxLCAwLjAxNjUyMywgMC4wMTY1NjgiLCBcCi0gICAgICAgICAgIjAuMDE3MjQxLCAwLjAxNzA5NywgMC4wMTY5MDEsIDAuMDE2OTIyLCAwLjAxNjk1MywgMC4wMTY5NTYsIDAuMDE2OTk1IiwgXAotICAgICAgICAgICIwLjAxODM5NSwgMC4wMTgzMDgsIDAuMDE3ODg2LCAwLjAxNzgxMywgMC4wMTc3MTQsIDAuMDE3NzU2LCAwLjAxNzc2NCIsIFwKLSAgICAgICAgICAiMC4wMTkyNzIsIDAuMDE5MDI5LCAwLjAxODg2OSwgMC4wMTg2NDMsIDAuMDE4NjI4LCAwLjAxODYyMywgMC4wMTg1NzkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTkxMDMsIDAuMDE5MjEyLCAwLjAxOTYwNSwgMC4wMTk3NjQsIDAuMDE5ODgsIDAuMDE5OTkyLCAwLjAyMDAyOSIsIFwKLSAgICAgICAgICAiMC4wMTkwNTIsIDAuMDE5MTA5LCAwLjAxOTQyMywgMC4wMTk1ODcsIDAuMDE5NzIyLCAwLjAxOTg2NiwgMC4wMTk5MTciLCBcCi0gICAgICAgICAgIjAuMDE5NTIxLCAwLjAxOTUwNCwgMC4wMTk2NTQsIDAuMDE5NzksIDAuMDE5OTIxLCAwLjAyMDA2OCwgMC4wMjAxMjQiLCBcCi0gICAgICAgICAgIjAuMDIwMTAyLCAwLjAyMDA2MSwgMC4wMjAwNjQsIDAuMDIwMDY3LCAwLjAyMDE5LCAwLjAyMDMzNSwgMC4wMjAzOTQiLCBcCi0gICAgICAgICAgIjAuMDIwODgsIDAuMDIwOTk2LCAwLjAyMDcyOCwgMC4wMjA2NTksIDAuMDIwNTc5LCAwLjAyMDgxNSwgMC4wMjA3NjMiLCBcCi0gICAgICAgICAgIjAuMDIxNjMzLCAwLjAyMiwgMC4wMjEzNDksIDAuMDIxNjg3LCAwLjAyMTY0MiwgMC4wMjE1MDUsIDAuMDIxNjY4IiwgXAotICAgICAgICAgICIwLjAyMjY1MSwgMC4wMjI0NTEsIDAuMDIyMDk4LCAwLjAyMjEsIDAuMDIyMTIzLCAwLjAyMjIwNCwgMC4wMjIyNDQiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IEJVRlgxNiAqCi0gKiAtLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKEJVRlgxNikgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAxLjk1MTk3OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDMyMTg5OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMzIxODc5OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMzIxODk7Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogNS4zNDAwNDsKLSAgICBmdW5jdGlvbiA6ICJBIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjI1MDUsIDAuMDI0MTk0LCAwLjAzMjEzMSwgMC4wMzgzNzQsIDAuMDQ2MzgyLCAwLjA2MjE4NCwgMC4wNzIwMzMiLCBcCi0gICAgICAgICAgIjAuMDMwNzg3LCAwLjAzMjQ2OCwgMC4wNDAzNzUsIDAuMDQ2NTg2LCAwLjA1NDYxNywgMC4wNzA0MTIsIDAuMDgwMjYzIiwgXAotICAgICAgICAgICIwLjAzOTEyMiwgMC4wNDA5MzMsIDAuMDQ5MTM2LCAwLjA1NTQyOSwgMC4wNjM0NywgMC4wNzkzMDUsIDAuMDg5MTg0IiwgXAotICAgICAgICAgICIwLjA0NTE5NCwgMC4wNDcxNCwgMC4wNTU3NDQsIDAuMDYyMTQ3LCAwLjA3MDE3NCwgMC4wODYwNzksIDAuMDk1OTM2IiwgXAotICAgICAgICAgICIwLjA1MDE0OSwgMC4wNTIyMDcsIDAuMDYxMDk2LCAwLjA2NzU5NCwgMC4wNzU2NDcsIDAuMDkxNTMxLCAwLjEwMTM3NyIsIFwKLSAgICAgICAgICAiMC4wNTY1MjksIDAuMDU4NzMzLCAwLjA2ODI2MiwgMC4wNzQ5NzcsIDAuMDgzMTUsIDAuMDk5MDQ4LCAwLjEwODg3NSIsIFwKLSAgICAgICAgICAiMC4wNjEyODYsIDAuMDYzNTg2LCAwLjA3MzU2OCwgMC4wODA0ODIsIDAuMDg4NzQ0LCAwLjEwNDU2LCAwLjExNDQ2NSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTI3NjIsIDAuMDE1MTUsIDAuMDI4NDM2LCAwLjA0MDIzNSwgMC4wNTYyODYsIDAuMDg4ODM4LCAwLjEwOTQzNCIsIFwKLSAgICAgICAgICAiMC4wMTMwNjEsIDAuMDE1NDE4LCAwLjAyODU4LCAwLjA0MDM0LCAwLjA1NjM3MiwgMC4wODg4OTIsIDAuMTA5NDU1IiwgXAotICAgICAgICAgICIwLjAxNDc4MSwgMC4wMTcxMTgsIDAuMDI5ODcsIDAuMDQxMzMsIDAuMDU3MDMyLCAwLjA4OTI1MSwgMC4xMDk3MTciLCBcCi0gICAgICAgICAgIjAuMDE2NDAzLCAwLjAxODc2MSwgMC4wMzEzNDgsIDAuMDQyNjEsIDAuMDU3OTMxLCAwLjA4OTg1MywgMC4xMTAwOTUiLCBcCi0gICAgICAgICAgIjAuMDE3NzI3LCAwLjAyMDE2MiwgMC4wMzI2MjEsIDAuMDQzNzAxLCAwLjA1OTA2MywgMC4wOTA0NTksIDAuMTEwNTE0IiwgXAotICAgICAgICAgICIwLjAxOTY1NiwgMC4wMjIxNzUsIDAuMDM0NjMxLCAwLjA0NTQ0MiwgMC4wNjA0NzcsIDAuMDkxNjIsIDAuMTExNDQ4IiwgXAotICAgICAgICAgICIwLjAyMTIwMSwgMC4wMjM4MzgsIDAuMDM2Mzc0LCAwLjA0NzE5MiwgMC4wNjE4NTcsIDAuMDkyNDg2LCAwLjExMjI5MiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjM3NzIsIDAuMDI1NDQyLCAwLjAzMzU0LCAwLjAzOTk1NiwgMC4wNDgyMTgsIDAuMDY0NDc1LCAwLjA3NDU5OSIsIFwKLSAgICAgICAgICAiMC4wMzE5NDUsIDAuMDMzNjA5LCAwLjA0MTY4MSwgMC4wNDgwNzksIDAuMDU2MzMzLCAwLjA3MjYwOSwgMC4wODI3MzIiLCBcCi0gICAgICAgICAgIjAuMDQwMjAyLCAwLjA0MTk0MiwgMC4wNTAxODUsIDAuMDU2NjEyLCAwLjA2NDg5NSwgMC4wODExNywgMC4wOTEyODMiLCBcCi0gICAgICAgICAgIjAuMDQ1ODkzLCAwLjA0NzgwMiwgMC4wNTYyODYsIDAuMDYyODAyLCAwLjA3MTEzNiwgMC4wODc0ODMsIDAuMDk3NjE2IiwgXAotICAgICAgICAgICIwLjA1MDYxLCAwLjA1MjU2NCwgMC4wNjEzMiwgMC4wNjc5MDEsIDAuMDc2MjA3LCAwLjA5MjYxMywgMC4xMDI3OTIiLCBcCi0gICAgICAgICAgIjAuMDU2NjM4LCAwLjA1ODcyOSwgMC4wNjc5MTcsIDAuMDc0NjMyLCAwLjA4MzE3MywgMC4wOTk0MjYsIDAuMTA5NTMiLCBcCi0gICAgICAgICAgIjAuMDYwOTY2LCAwLjA2MzE3NCwgMC4wNzI4NzYsIDAuMDc5Njc0LCAwLjA4Nzg4NywgMC4xMDQzOTMsIDAuMTE0MzczIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMjYyNiwgMC4wMTUwNDQsIDAuMDI4NTQ3LCAwLjA0MDU4OCwgMC4wNTY4NzYsIDAuMDg5OTEzLCAwLjExMDcxNyIsIFwKLSAgICAgICAgICAiMC4wMTI4MDUsIDAuMDE1MTk5LCAwLjAyODY1MSwgMC4wNDA2NiwgMC4wNTY5MjMsIDAuMDg5OTYzLCAwLjExMDg2NiIsIFwKLSAgICAgICAgICAiMC4wMTQzNDEsIDAuMDE2Njk4LCAwLjAyOTc2NCwgMC4wNDE1MTksIDAuMDU3NTY3LCAwLjA5MDMzNSwgMC4xMTExMyIsIFwKLSAgICAgICAgICAiMC4wMTU5NzYsIDAuMDE4MzQ4LCAwLjAzMTA0NCwgMC4wNDI1NjcsIDAuMDU4MzczLCAwLjA5MDg0MiwgMC4xMTE0MTQiLCBcCi0gICAgICAgICAgIjAuMDE3MDg3LCAwLjAxOTQ5NiwgMC4wMzIyNDQsIDAuMDQzNTcyLCAwLjA1OTI0OCwgMC4wOTEyNTUsIDAuMTExODE4IiwgXAotICAgICAgICAgICIwLjAxODkzOCwgMC4wMjEzNzIsIDAuMDM0MDAzLCAwLjA0NTA3MSwgMC4wNjAyOCwgMC4wOTIyNDYsIDAuMTEyNDgzIiwgXAotICAgICAgICAgICIwLjAyMDE5LCAwLjAyMjYzNiwgMC4wMzUyNDEsIDAuMDQ2MTc1LCAwLjA2MTYwNiwgMC4wOTI5NDcsIDAuMTEzMjExIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDIwMTAzLCAwLjAyMDE5MiwgMC4wMjA1NTIsIDAuMDIwNzI0LCAwLjAyMDg1MSwgMC4wMjA5NjIsIDAuMDIxMDE1IiwgXAotICAgICAgICAgICIwLjAyMDA4LCAwLjAyMDExNiwgMC4wMjAzMzgsIDAuMDIwNDk0LCAwLjAyMDYzMiwgMC4wMjA4LCAwLjAyMDgyMyIsIFwKLSAgICAgICAgICAiMC4wMjA1ODgsIDAuMDIwNTYsIDAuMDIwNjExLCAwLjAyMDczMSwgMC4wMjA4NTcsIDAuMDIxMDA3LCAwLjAyMTA0OSIsIFwKLSAgICAgICAgICAiMC4wMjE1NDcsIDAuMDIxNDE0LCAwLjAyMTI1NCwgMC4wMjEzMzMsIDAuMDIxNDA3LCAwLjAyMTUxOCwgMC4wMjE1OTYiLCBcCi0gICAgICAgICAgIjAuMDIyMjg2LCAwLjAyMjExNywgMC4wMjIxMTQsIDAuMDIyMDg2LCAwLjAyMjAwMiwgMC4wMjIxMjMsIDAuMDIyMTYxIiwgXAotICAgICAgICAgICIwLjAyNDM5NiwgMC4wMjQwOSwgMC4wMjM0NDcsIDAuMDIzMjk4LCAwLjAyMzExNiwgMC4wMjMxODIsIDAuMDIzMjIyIiwgXAotICAgICAgICAgICIwLjAyNjA0LCAwLjAyNTY1LCAwLjAyNDc1MiwgMC4wMjQ2MTksIDAuMDI0NDg5LCAwLjAyNDQwNCwgMC4wMjQyOTMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjUxMTYsIDAuMDI1MjM0LCAwLjAyNTc0NSwgMC4wMjU5ODUsIDAuMDI2MTY4LCAwLjAyNjM1MiwgMC4wMjY0MTYiLCBcCi0gICAgICAgICAgIjAuMDI1MTAxLCAwLjAyNTE1OSwgMC4wMjU1MDQsIDAuMDI1NzMzLCAwLjAyNTkzNCwgMC4wMjYxNTgsIDAuMDI2MjQzIiwgXAotICAgICAgICAgICIwLjAyNTY0NywgMC4wMjU2MTIsIDAuMDI1Nzg4LCAwLjAyNjAwOSwgMC4wMjYxNzMsIDAuMDI2MzY3LCAwLjAyNjQ2NSIsIFwKLSAgICAgICAgICAiMC4wMjY4ODYsIDAuMDI2NzY0LCAwLjAyNjU3NiwgMC4wMjY2MDcsIDAuMDI2NjQ0LCAwLjAyNjgzNCwgMC4wMjY5MTgiLCBcCi0gICAgICAgICAgIjAuMDI3MzM0LCAwLjAyNzIzOCwgMC4wMjcyNzksIDAuMDI3MjQxLCAwLjAyNzI1NCwgMC4wMjczODQsIDAuMDI3NDUxIiwgXAotICAgICAgICAgICIwLjAyODcwMSwgMC4wMjg1MTIsIDAuMDI4NTgyLCAwLjAyODQzNywgMC4wMjgyNjksIDAuMDI4MjkxLCAwLjAyODQ1IiwgXAotICAgICAgICAgICIwLjAzMDEzMywgMC4wMjk4MDYsIDAuMDI5MjYyLCAwLjAyOTExNiwgMC4wMjk1MjMsIDAuMDI5MjI2LCAwLjAyOTUwNyIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBCVUZYMiAqCi0gKiAtLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoQlVGWDIpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4yNTg4Mjk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY2Njc2MjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2NjY3NjI7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjY2NzQzOwotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuNjk5NTcxOwotICAgIGZ1bmN0aW9uIDogIkEiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzNjI0NywgMC4xMTM0OTMsIDAuMTc1MSwgMC4yNTIyNTIsIDAuMzI5NDUsIDAuNDA2NTE3LCAwLjQ4MzU1OSIsIFwKLSAgICAgICAgICAiMC4wNDQyOSwgMC4xMjE1MzIsIDAuMTgzMjIzLCAwLjI2MDI5LCAwLjMzNzQ3NCwgMC40MTQ0NywgMC40OTE1NDgiLCBcCi0gICAgICAgICAgIjAuMDUyNTI4LCAwLjEyOTcxMiwgMC4xOTEzNzcsIDAuMjY4NTg1LCAwLjM0NTczMiwgMC40MjI2MzUsIDAuNDk5NzY1IiwgXAotICAgICAgICAgICIwLjA1ODU0NywgMC4xMzU5MDMsIDAuMTk3NTY5LCAwLjI3NDgyNCwgMC4zNTE5MDMsIDAuNDI4OTk4LCAwLjUwNTk1MiIsIFwKLSAgICAgICAgICAiMC4wNjM0NzcsIDAuMTQwNzU1LCAwLjIwMjM5LCAwLjI3OTQ0NSwgMC4zNTY1MTIsIDAuNDMzNTc1LCAwLjUxMTA0IiwgXAotICAgICAgICAgICIwLjA3MDI1MywgMC4xNDc4MTIsIDAuMjA5Mzg1LCAwLjI4NjE0NSwgMC4zNjMxNzEsIDAuNDQwNTMxLCAwLjUxNzQwMiIsIFwKLSAgICAgICAgICAiMC4wNzUwNzcsIDAuMTUyNTIxLCAwLjIxNDA3MywgMC4yOTEwNDYsIDAuMzY4MjEzLCAwLjQ0NTE3MSwgMC41MjI0MTYiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM4ODUsIDAuMTk5NjMsIDAuMzI5MzgzLCAwLjQ5MjE3NSwgMC42NTQ1NjUsIDAuODE3MDQsIDAuOTc5MzczIiwgXAotICAgICAgICAgICIwLjAzOTA0NCwgMC4xOTk5NjIsIDAuMzI5Nzc0LCAwLjQ5MTk0NSwgMC42NTQ1ODMsIDAuODE2NjYzLCAwLjk3OTA1NSIsIFwKLSAgICAgICAgICAiMC4wNDAwNjcsIDAuMTk5OTUzLCAwLjMzMDA3OSwgMC40OTIwMTQsIDAuNjU0NTUxLCAwLjgxNjcxOCwgMC45ODA1MDQiLCBcCi0gICAgICAgICAgIjAuMDQxNDA2LCAwLjIwMDA1MSwgMC4zMjk3NDgsIDAuNDkyMTYxLCAwLjY1NDU2MywgMC44MTcwODEsIDAuOTc5NDk0IiwgXAotICAgICAgICAgICIwLjA0MjQ5NywgMC4xOTk5MTgsIDAuMzMwMTgsIDAuNDkyODUsIDAuNjU0Njg1LCAwLjgxNzgwNCwgMC45NzkzNzMiLCBcCi0gICAgICAgICAgIjAuMDQ0MjEzLCAwLjIwMDIxMywgMC4zMjk3NzgsIDAuNDkyODcxLCAwLjY1NTU1MSwgMC44MTcxMiwgMC45Nzk3OTUiLCBcCi0gICAgICAgICAgIjAuMDQ1NzA4LCAwLjIwMDQ2MSwgMC4zMjk5NzUsIDAuNDkyMTgzLCAwLjY1NDI4NSwgMC44MTczNjQsIDAuOTc5MDQ5Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzODEwNCwgMC4xMTQyLCAwLjE3NDg1LCAwLjI1MDY5MywgMC4zMjYzNzQsIDAuNDAyMTE2LCAwLjQ3NzkyOSIsIFwKLSAgICAgICAgICAiMC4wNDYwMzEsIDAuMTIyMTE4LCAwLjE4Mjc4NSwgMC4yNTg1NTUsIDAuMzM0Mzc4LCAwLjQxMDE1LCAwLjQ4NTk1NSIsIFwKLSAgICAgICAgICAiMC4wNTQxNTcsIDAuMTMwMzY3LCAwLjE5MDk5NywgMC4yNjY4MzUsIDAuMzQyNjAxLCAwLjQxODMxMSwgMC40OTQxMzYiLCBcCi0gICAgICAgICAgIjAuMDYwMTY1LCAwLjEzNjI5MSwgMC4xOTY4ODMsIDAuMjcyNjM5LCAwLjM0ODQ0MywgMC40MjQ0ODgsIDAuNTAwMDYyIiwgXAotICAgICAgICAgICIwLjA2NDk1MywgMC4xNDExMTksIDAuMjAxNzAzLCAwLjI3NzUxNywgMC4zNTMyMzksIDAuNDI5MTY2LCAwLjUwNDkwOCIsIFwKLSAgICAgICAgICAiMC4wNzE0MjksIDAuMTQ3NDUyLCAwLjIwNzk3OSwgMC4yODM2OTksIDAuMzU5NDY2LCAwLjQzNTIzNiwgMC41MTEwMSIsIFwKLSAgICAgICAgICAiMC4wNzYwNjQsIDAuMTUyMjUsIDAuMjEyOTAzLCAwLjI4ODQ5NCwgMC4zNjQyMjgsIDAuNDQwMDc4LCAwLjUxNTk3NiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzgwNDcsIDAuMTkzNjc2LCAwLjMxODk4NSwgMC40NzYyNjEsIDAuNjM0ODIxLCAwLjc5MjQwNiwgMC45NDc4OTgiLCBcCi0gICAgICAgICAgIjAuMDM4MDk3LCAwLjE5MzY1OCwgMC4zMTg5NDgsIDAuNDc3MDk4LCAwLjYzNDEyOCwgMC43OTEwNTEsIDAuOTQ4MjgyIiwgXAotICAgICAgICAgICIwLjAzOTEyNCwgMC4xOTM0MDksIDAuMzE5MjQyLCAwLjQ3NjY3NywgMC42MzM2MzUsIDAuNzkwNzU5LCAwLjk0ODM5OCIsIFwKLSAgICAgICAgICAiMC4wNDAxOTksIDAuMTkzOTQ1LCAwLjMxOTA2NCwgMC40NzcyMzcsIDAuNjMzNDAxLCAwLjc5MTE0NCwgMC45NDgyNSIsIFwKLSAgICAgICAgICAiMC4wNDEyMTQsIDAuMTk0MDg0LCAwLjMxOTc5OSwgMC40NzY2ODMsIDAuNjMzMzY3LCAwLjc5MDkwMywgMC45NDg0ODQiLCBcCi0gICAgICAgICAgIjAuMDQyNTIyLCAwLjE5NDExNywgMC4zMTk4MTQsIDAuNDc2NjczLCAwLjYzNDkwMywgMC43OTEzOTIsIDAuOTQ5NzU2IiwgXAotICAgICAgICAgICIwLjA0MzcwOSwgMC4xOTQyNjIsIDAuMzE5NTUzLCAwLjQ3NzE4MSwgMC42MzQ2NywgMC43OTA2ODksIDAuOTQ4MzAxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyNjQxLCAwLjAwMjY3NywgMC4wMDI2OCwgMC4wMDI2NzcsIDAuMDAyNjgzLCAwLjAwMjY4NCwgMC4wMDI2ODQiLCBcCi0gICAgICAgICAgIjAuMDAyNjUyLCAwLjAwMjY4OSwgMC4wMDI2OTMsIDAuMDAyNjk2LCAwLjAwMjY5OCwgMC4wMDI2OTksIDAuMDAyNjk5IiwgXAotICAgICAgICAgICIwLjAwMjY5OCwgMC4wMDI3MzUsIDAuMDAyNzQyLCAwLjAwMjc0NiwgMC4wMDI3NDgsIDAuMDAyNzUsIDAuMDAyNzQ5IiwgXAotICAgICAgICAgICIwLjAwMjgwOSwgMC4wMDI4MzQsIDAuMDAyODQsIDAuMDAyODQ0LCAwLjAwMjg0NiwgMC4wMDI4NDcsIDAuMDAyODQ4IiwgXAotICAgICAgICAgICIwLjAwMjk0MywgMC4wMDI5NDcsIDAuMDAyOTUyLCAwLjAwMjk1NSwgMC4wMDI5NTgsIDAuMDAyOTU4LCAwLjAwMjk1OSIsIFwKLSAgICAgICAgICAiMC4wMDMxNTcsIDAuMDAzMTM4LCAwLjAwMzE0MSwgMC4wMDMxNTEsIDAuMDAzMTUxLCAwLjAwMzE1MSwgMC4wMDMxNDIiLCBcCi0gICAgICAgICAgIjAuMDAzMzYsIDAuMDAzMzM0LCAwLjAwMzMzNiwgMC4wMDMzMzYsIDAuMDAzMzM1LCAwLjAwMzMzNSwgMC4wMDMzMjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDM2ODMsIDAuMDAzNzM5LCAwLjAwMzc0NiwgMC4wMDM3NDksIDAuMDAzNzUxLCAwLjAwMzc1MiwgMC4wMDM3NTIiLCBcCi0gICAgICAgICAgIjAuMDAzNjY4LCAwLjAwMzczOCwgMC4wMDM3NDcsIDAuMDAzNzUyLCAwLjAwMzc1NSwgMC4wMDM3NTcsIDAuMDAzNzU4IiwgXAotICAgICAgICAgICIwLjAwMzczMSwgMC4wMDM3OTksIDAuMDAzODEsIDAuMDAzODE2LCAwLjAwMzgxOSwgMC4wMDM4MjEsIDAuMDAzODIzIiwgXAotICAgICAgICAgICIwLjAwMzg1LCAwLjAwMzg4OCwgMC4wMDM4OTksIDAuMDAzOTA2LCAwLjAwMzkwOSwgMC4wMDM5MTIsIDAuMDAzOTEzIiwgXAotICAgICAgICAgICIwLjAwMzk5MywgMC4wMDQwMDEsIDAuMDA0MDA5LCAwLjAwNDAwNSwgMC4wMDQwMTcsIDAuMDA0MDE5LCAwLjAwNDAyIiwgXAotICAgICAgICAgICIwLjAwNDE1LCAwLjAwNDE5OSwgMC4wMDQyMDMsIDAuMDA0MjA2LCAwLjAwNDIwOCwgMC4wMDQyMDksIDAuMDA0MjA5IiwgXAotICAgICAgICAgICIwLjAwNDM0MywgMC4wMDQzNiwgMC4wMDQzNjYsIDAuMDA0MzY2LCAwLjAwNDM2OCwgMC4wMDQzNywgMC4wMDQzNzciKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IEJVRlgyMCAqCi0gKiAtLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKEJVRlgyMCkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAyLjQzMzMyOwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDQwMjI5NTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDQwMjI5NTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDQwMjI4NzsKLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiA2LjgyMTM1OwotICAgIGZ1bmN0aW9uIDogIkEiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyMjQ1NiwgMC4wMzIyNjQsIDAuMDM4OTY3LCAwLjA0NzAwNywgMC4wNTQ5NTIsIDAuMDYyODUxLCAwLjA3MDc1MSIsIFwKLSAgICAgICAgICAiMC4wMzA3MiwgMC4wNDA1MTMsIDAuMDQ3MTk5LCAwLjA1NTIzNiwgMC4wNjMxODQsIDAuMDcxMDk2LCAwLjA3ODk4OCIsIFwKLSAgICAgICAgICAiMC4wMzkwMTQsIDAuMDQ5MjM5LCAwLjA1NTk2NSwgMC4wNjQwMjgsIDAuMDcxOTY1LCAwLjA3OTg2NCwgMC4wODc3NTgiLCBcCi0gICAgICAgICAgIjAuMDQ1MTY5LCAwLjA1NTk3OCwgMC4wNjI4MjYsIDAuMDcwOTAzLCAwLjA3ODg2NSwgMC4wODY3NzQsIDAuMDk0NjcxIiwgXAotICAgICAgICAgICIwLjA1MDE0LCAwLjA2MTUxNiwgMC4wNjg0NjcsIDAuMDc2NjEzLCAwLjA4NDUxNiwgMC4wOTI0MzYsIDAuMTAwNDU0IiwgXAotICAgICAgICAgICIwLjA1NjUyNSwgMC4wNjg2ODYsIDAuMDc1ODk1LCAwLjA4NDEwNCwgMC4wOTIwOTEsIDAuMTAwMDUsIDAuMTA3OTQ1IiwgXAotICAgICAgICAgICIwLjA2MTMwNywgMC4wNzQxNDYsIDAuMDgxNTY0LCAwLjA4OTY5NiwgMC4wOTc3MjQsIDAuMTA1NjkyLCAwLjExMzQyNSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTIyNDYsIDAuMDI4MDE4LCAwLjA0MDY0OCwgMC4wNTY3NTIsIDAuMDczMDMzLCAwLjA4OTQyMSwgMC4xMDU4OTEiLCBcCi0gICAgICAgICAgIjAuMDEyNTQ3LCAwLjAyODE1OCwgMC4wNDA3NywgMC4wNTY3OSwgMC4wNzMwODQsIDAuMDg5NDUsIDAuMTA1OTg4IiwgXAotICAgICAgICAgICIwLjAxNDI0MiwgMC4wMjk0NDIsIDAuMDQxNzcsIDAuMDU3NTMxLCAwLjA3MzYwNywgMC4wODk3OCwgMC4xMDYyMTciLCBcCi0gICAgICAgICAgIjAuMDE1ODU5LCAwLjAzMDkxMiwgMC4wNDI5NTIsIDAuMDU4NDU4LCAwLjA3NDM0MywgMC4wOTA0NzcsIDAuMTA2NzAxIiwgXAotICAgICAgICAgICIwLjAxNzE3LCAwLjAzMjM0NCwgMC4wNDQwOTUsIDAuMDU5NDUsIDAuMDc1MTI2LCAwLjA5MTAzMywgMC4xMDcyOTkiLCBcCi0gICAgICAgICAgIjAuMDE4OTgyLCAwLjAzNDM2NiwgMC4wNDU4OTYsIDAuMDYwOTY1LCAwLjA3NjM1OSwgMC4wOTIxNTUsIDAuMTA4MTE3IiwgXAotICAgICAgICAgICIwLjAyMDM2NSwgMC4wMzU5MTQsIDAuMDQ3MzE0LCAwLjA2MjI1OCwgMC4wNzc1NDIsIDAuMDkzMDQ1LCAwLjEwOTAwOSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjM3LCAwLjAzMzYzOSwgMC4wNDA1MDIsIDAuMDQ4NzY4LCAwLjA1NjkwOCwgMC4wNjUwMiwgMC4wNzMxMDkiLCBcCi0gICAgICAgICAgIjAuMDMxOTAzLCAwLjA0MTgxLCAwLjA0ODY2NywgMC4wNTY5MDksIDAuMDY1MDYxLCAwLjA3MzE2OCwgMC4wODEyNTYiLCBcCi0gICAgICAgICAgIjAuMDQwMjU2LCAwLjA1MDM0NSwgMC4wNTczMSwgMC4wNjU1ODIsIDAuMDczNzA5LCAwLjA4MTgyMywgMC4wODk4OTQiLCBcCi0gICAgICAgICAgIjAuMDQ2MjA1LCAwLjA1NjgwNywgMC4wNjM4MDQsIDAuMDcyMTM0LCAwLjA4MDI3MywgMC4wODg0MDUsIDAuMDk2NTExIiwgXAotICAgICAgICAgICIwLjA1MDkxNywgMC4wNjE5MjIsIDAuMDY4OTY4LCAwLjA3NzIzOSwgMC4wODU0NjIsIDAuMDkzNjA3LCAwLjEwMTc1NSIsIFwKLSAgICAgICAgICAiMC4wNTY4NTUsIDAuMDY4NTMsIDAuMDc1NjE5LCAwLjA4Mzk2LCAwLjA5MjEzOSwgMC4xMDAyMTksIDAuMTA4MzYzIiwgXAotICAgICAgICAgICIwLjA2MTIxMSwgMC4wNzM0MTEsIDAuMDgwNzUsIDAuMDg5MDE5LCAwLjA5NzMxMywgMC4xMDU0NSwgMC4xMTM1MzciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEyMDg2LCAwLjAyNzg1NiwgMC4wNDA1NTksIDAuMDU2NjMsIDAuMDcyOTMzLCAwLjA4OTMwMiwgMC4xMDU4NjkiLCBcCi0gICAgICAgICAgIjAuMDEyMjIsIDAuMDI3OTU3LCAwLjA0MDYxNiwgMC4wNTY3MTQsIDAuMDcyOTk4LCAwLjA4OTQ2MywgMC4xMDU5ODUiLCBcCi0gICAgICAgICAgIjAuMDEzNzcsIDAuMDI5MTY1LCAwLjA0MTUzNCwgMC4wNTczNjEsIDAuMDczNDY5LCAwLjA4OTc0OCwgMC4xMDYyNDkiLCBcCi0gICAgICAgICAgIjAuMDE1MzEsIDAuMDMwMjg1LCAwLjA0MjUzNCwgMC4wNTgyMjMsIDAuMDc0MTI0LCAwLjA5MDI5NCwgMC4xMDY1NjkiLCBcCi0gICAgICAgICAgIjAuMDE2NTI0LCAwLjAzMTUzLCAwLjA0MzQ4MywgMC4wNTkxMSwgMC4wNzQ3NCwgMC4wOTA3NDcsIDAuMTA2ODk3IiwgXAotICAgICAgICAgICIwLjAxODM3MSwgMC4wMzMxNDQsIDAuMDQ1MDYyLCAwLjA2MDM3MSwgMC4wNzU5MjEsIDAuMDkxODE1LCAwLjEwNzgwMiIsIFwKLSAgICAgICAgICAiMC4wMTk3MzIsIDAuMDM0NjkxLCAwLjA0NjIxMiwgMC4wNjEzNSwgMC4wNzY3NzIsIDAuMDkyNDI1LCAwLjEwODQyMiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyNjAzLCAwLjAyNjY1MiwgMC4wMjY4OTUsIDAuMDI3MDYyLCAwLjAyNzE2LCAwLjAyNzIzOCwgMC4wMjcyNzEiLCBcCi0gICAgICAgICAgIjAuMDI2MDM1LCAwLjAyNjM2NCwgMC4wMjY1ODYsIDAuMDI2NzY2LCAwLjAyNjg4NSwgMC4wMjY5NDksIDAuMDI3MDMiLCBcCi0gICAgICAgICAgIjAuMDI3MDE2LCAwLjAyNjksIDAuMDI2OTYzLCAwLjAyNzEyMywgMC4wMjcyMjEsIDAuMDI3MzE4LCAwLjAyNzM3NiIsIFwKLSAgICAgICAgICAiMC4wMjgwODksIDAuMDI3NjE1LCAwLjAyNzY3LCAwLjAyNzY1NCwgMC4wMjc3MzQsIDAuMDI3ODEsIDAuMDI3ODk0IiwgXAotICAgICAgICAgICIwLjAyOTI2LCAwLjAyODQ3NywgMC4wMjg0MzcsIDAuMDI4NTA0LCAwLjAyODQ1NiwgMC4wMjg1MTgsIDAuMDI4Njc3IiwgXAotICAgICAgICAgICIwLjAzMTAzNywgMC4wMzA0MDksIDAuMDMwMTcxLCAwLjAyOTgwNywgMC4wMjk5NjYsIDAuMDI5ODk2LCAwLjAzMDA0MiIsIFwKLSAgICAgICAgICAiMC4wMzI3NzksIDAuMDMxNzkzLCAwLjAzMTUwNCwgMC4wMzEzNTEsIDAuMDMxMjY5LCAwLjAzMTIyMiwgMC4wMzEyOCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzMTgwNCwgMC4wMzI1ODIsIDAuMDMyODk4LCAwLjAzMzEyMywgMC4wMzMyNTgsIDAuMDMzMzQ5LCAwLjAzMzQxNCIsIFwKLSAgICAgICAgICAiMC4wMzE3OTQsIDAuMDMyMjgsIDAuMDMyNTg1LCAwLjAzMjgyNywgMC4wMzI5OTIsIDAuMDMzMTA4LCAwLjAzMzE5MyIsIFwKLSAgICAgICAgICAiMC4wMzI1MTEsIDAuMDMyNzU0LCAwLjAzMjk2MiwgMC4wMzMxNjEsIDAuMDMzMjkzLCAwLjAzMzM5OSwgMC4wMzM0ODgiLCBcCi0gICAgICAgICAgIjAuMDMzODA1LCAwLjAzMzQ4LCAwLjAzMzYyNywgMC4wMzM2NywgMC4wMzM4MDQsIDAuMDMzOTAxLCAwLjAzMzk5MSIsIFwKLSAgICAgICAgICAiMC4wMzQ4NjMsIDAuMDM0NTMxLCAwLjAzNDUxMywgMC4wMzQ0MDMsIDAuMDM0NTE5LCAwLjAzNDUxNiwgMC4wMzQ2NyIsIFwKLSAgICAgICAgICAiMC4wMzY0NzMsIDAuMDM1NjM5LCAwLjAzNTkyMSwgMC4wMzYyMzYsIDAuMDM2MTkyLCAwLjAzNjE2NSwgMC4wMzYxOTkiLCBcCi0gICAgICAgICAgIjAuMDM4MTAxLCAwLjAzNzExNCwgMC4wMzY3NzcsIDAuMDM3Mjg2LCAwLjAzNjgxMSwgMC4wMzY5MDgsIDAuMDM2OTY4Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IEJVRlgzICoKLSAqIC0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChCVUZYMykgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjM3OTkzOwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA5NzM3MzM7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwOTczNjI4OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDk3MzczMzsKLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAxLjAxNzgxOwotICAgIGZ1bmN0aW9uIDogIkEiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDMwMDE0LCAwLjEwMzkwOSwgMC4xNzc1NSwgMC4yMjk5OCwgMC4zMTM5MzMsIDAuMzg3NzExLCAwLjQ5Mjg0NCIsIFwKLSAgICAgICAgICAiMC4wMzgwODQsIDAuMTExOTQ2LCAwLjE4NTU1NywgMC4yMzgxODYsIDAuMzIyMjE1LCAwLjM5NTc4OSwgMC41MDA3ODQiLCBcCi0gICAgICAgICAgIjAuMDQ2MTY1LCAwLjEyMDA1MSwgMC4xOTM2NTQsIDAuMjQ2MTk2LCAwLjMzMDMyOCwgMC40MDM4NjEsIDAuNTA5MDAxIiwgXAotICAgICAgICAgICIwLjA1MjAzMywgMC4xMjYxMTYsIDAuMTk5NjY1LCAwLjI1MjI1MSwgMC4zMzYzMzUsIDAuNDEwMDkxLCAwLjUxNTE2MiIsIFwKLSAgICAgICAgICAiMC4wNTcwOTgsIDAuMTMxMTI2LCAwLjIwNDY1NiwgMC4yNTcyODEsIDAuMzQxNDg2LCAwLjQxNTA5LCAwLjUyMDA2MyIsIFwKLSAgICAgICAgICAiMC4wNjM1NTUsIDAuMTM3OTQxLCAwLjIxMTIyLCAwLjI2Mzg1NywgMC4zNDc4MzQsIDAuNDIxNTUxLCAwLjUyNjgzMiIsIFwKLSAgICAgICAgICAiMC4wNjgzNDcsIDAuMTQyNzUxLCAwLjIxNjE3NiwgMC4yNjg2NDksIDAuMzUyNjc0LCAwLjQyNjMzOSwgMC41MzEzOTMiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjg5MiwgMC4xODI2MDUsIDAuMzM3NDY4LCAwLjQ0ODI5NiwgMC42MjUyMDUsIDAuNzgxODQsIDEuMDAyMTkiLCBcCi0gICAgICAgICAgIjAuMDI5MTk5LCAwLjE4MjM3OSwgMC4zMzczMzgsIDAuNDQ4NDQ2LCAwLjYyNTQxNiwgMC43ODA1NTQsIDEuMDAyNDkiLCBcCi0gICAgICAgICAgIjAuMDMwNDIxLCAwLjE4MjY1LCAwLjMzNzYxNCwgMC40NDg3MzksIDAuNjI2MDM4LCAwLjc4MDU4NSwgMS4wMDIxOCIsIFwKLSAgICAgICAgICAiMC4wMzE3MTQsIDAuMTgyNzI0LCAwLjMzODAwNCwgMC40NDg1NzcsIDAuNjI1OTAyLCAwLjc4MDk4NywgMS4wMDI3MyIsIFwKLSAgICAgICAgICAiMC4wMzI4NTMsIDAuMTgyNjQ3LCAwLjMzODA1MywgMC40NDgzNjYsIDAuNjI1NzYsIDAuNzgwOTYxLCAxLjAwMjY1IiwgXAotICAgICAgICAgICIwLjAzNDcxNSwgMC4xODI5NTYsIDAuMzM3OTc4LCAwLjQ0OTEwMSwgMC42MjU2NjMsIDAuNzgxMDEzLCAxLjAwMjY1IiwgXAotICAgICAgICAgICIwLjAzNjI0LCAwLjE4MzE5LCAwLjMzNzc5NywgMC40NDg1NjUsIDAuNjI1OTc0LCAwLjc4MDY5NSwgMS4wMDI1MyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzMDc3NCwgMC4xMDMxOTMsIDAuMTc1MTY1LCAwLjIyNjU4OSwgMC4zMDg4NiwgMC4zODA4NDEsIDAuNDgzNTg2IiwgXAotICAgICAgICAgICIwLjAzODc3OCwgMC4xMTExODMsIDAuMTgzMTkyLCAwLjIzNDYwOSwgMC4zMTY4NzgsIDAuMzg4ODEsIDAuNDkxNTc3IiwgXAotICAgICAgICAgICIwLjA0NjU2NCwgMC4xMTkxMDMsIDAuMTkxMDc5LCAwLjI0MjUzMiwgMC4zMjQ4ODQsIDAuMzk2NzQ3LCAwLjQ5OTU2MyIsIFwKLSAgICAgICAgICAiMC4wNTIwOTMsIDAuMTI0NTg5LCAwLjE5NjU0MSwgMC4yNDc5NTgsIDAuMzMwMTkyLCAwLjQwMjM3MywgMC41MDUxNzIiLCBcCi0gICAgICAgICAgIjAuMDU2NTcxLCAwLjEyOTE1NiwgMC4yMDExNDQsIDAuMjUyNTA2LCAwLjMzNDY4NiwgMC40MDY2NDQsIDAuNTA5NDY5IiwgXAotICAgICAgICAgICIwLjA2MjU1MSwgMC4xMzUxNjIsIDAuMjA3MTE1LCAwLjI1ODQ3MywgMC4zNDA2OTksIDAuNDEyNjU3LCAwLjUxNTM0MyIsIFwKLSAgICAgICAgICAiMC4wNjY4MDMsIDAuMTM5NDU4LCAwLjIxMTM2OSwgMC4yNjI4MjgsIDAuMzQ0OTA1LCAwLjQxNjkzNCwgMC41MTk3MjMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjc5MTgsIDAuMTc1NDkyLCAwLjMyNDczNywgMC40MzA2NDgsIDAuNjAxNjY5LCAwLjc1MDM5OCwgMC45NjMzMTYiLCBcCi0gICAgICAgICAgIjAuMDI4MTI0LCAwLjE3NTUwNiwgMC4zMjQ0NDYsIDAuNDMxMDM4LCAwLjYwMTY0NCwgMC43NTA1MDYsIDAuOTYzMzUzIiwgXAotICAgICAgICAgICIwLjAyOTIxMiwgMC4xNzU0MDEsIDAuMzI0ODMzLCAwLjQzMDgwNCwgMC42MDEyMzEsIDAuNzUwOTQ0LCAwLjk2NTE3NSIsIFwKLSAgICAgICAgICAiMC4wMzA0MDUsIDAuMTc1NzM4LCAwLjMyNDIzOCwgMC40MzA4MzcsIDAuNjAxMDE4LCAwLjc1MDc2MiwgMC45NjM0MDciLCBcCi0gICAgICAgICAgIjAuMDMxNTY5LCAwLjE3NTY0MiwgMC4zMjQ5ODgsIDAuNDMxNDg4LCAwLjYwMjQxNywgMC43NTE2MTEsIDAuOTY1MDg5IiwgXAotICAgICAgICAgICIwLjAzMjkwMiwgMC4xNzU4MzEsIDAuMzI0OTUsIDAuNDMxNjM5LCAwLjYwMjQ2OSwgMC43NTA5NiwgMC45NjUwMzYiLCBcCi0gICAgICAgICAgIjAuMDM0MjYyLCAwLjE3NjE0MywgMC4zMjQ3NDYsIDAuNDMxMjYyLCAwLjYwMjI2MiwgMC43NTAzNTIsIDAuOTYzMjkxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDM5NjMsIDAuMDA0MDM1LCAwLjAwNDA0MiwgMC4wMDQwNDgsIDAuMDA0MDQ2LCAwLjAwNDA0NywgMC4wMDQwNDciLCBcCi0gICAgICAgICAgIjAuMDAzOTMyLCAwLjAwNDAyMSwgMC4wMDQwMzQsIDAuMDA0MDM4LCAwLjAwNDA0MiwgMC4wMDQwNDIsIDAuMDA0MDQ0IiwgXAotICAgICAgICAgICIwLjAwNDAyOSwgMC4wMDQxMTgsIDAuMDA0MTMsIDAuMDA0MTM1LCAwLjAwNDEzOSwgMC4wMDQxNDEsIDAuMDA0MTQyIiwgXAotICAgICAgICAgICIwLjAwNDE5NiwgMC4wMDQyMzYsIDAuMDA0MjQ5LCAwLjAwNDI1MSwgMC4wMDQyNTYsIDAuMDA0MjU4LCAwLjAwNDI1OSIsIFwKLSAgICAgICAgICAiMC4wMDQzNTcsIDAuMDA0MzcsIDAuMDA0MzgyLCAwLjAwNDM4OSwgMC4wMDQzOTYsIDAuMDA0Mzk4LCAwLjAwNDM5OSIsIFwKLSAgICAgICAgICAiMC4wMDQ2ODUsIDAuMDA0NjQ4LCAwLjAwNDY1NCwgMC4wMDQ2NzksIDAuMDA0NjYyLCAwLjAwNDY2MiwgMC4wMDQ2NjciLCBcCi0gICAgICAgICAgIjAuMDA0OTg3LCAwLjAwNDkwNCwgMC4wMDQ5MDgsIDAuMDA0OTI5LCAwLjAwNDkyOSwgMC4wMDQ5MywgMC4wMDQ5MTUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNTQ3NiwgMC4wMDU1ODUsIDAuMDA1NTk2LCAwLjAwNTU5OSwgMC4wMDU2MDIsIDAuMDA1NjA0LCAwLjAwNTYwNSIsIFwKLSAgICAgICAgICAiMC4wMDU0NDcsIDAuMDA1NTY5LCAwLjAwNTU4NSwgMC4wMDU1OSwgMC4wMDU1OTQsIDAuMDA1NTk2LCAwLjAwNTU5OCIsIFwKLSAgICAgICAgICAiMC4wMDU1MiwgMC4wMDU2NDgsIDAuMDA1NjY2LCAwLjAwNTY3MywgMC4wMDU2NzksIDAuMDA1NjgyLCAwLjAwNTY4NSIsIFwKLSAgICAgICAgICAiMC4wMDU2OSwgMC4wMDU3NjQsIDAuMDA1Nzg3LCAwLjAwNTc5NCwgMC4wMDU4MDEsIDAuMDA1ODA1LCAwLjAwNTgwOCIsIFwKLSAgICAgICAgICAiMC4wMDU5MDIsIDAuMDA1OTIxLCAwLjAwNTkxOSwgMC4wMDU5MjYsIDAuMDA1OTUsIDAuMDA1OTUxLCAwLjAwNTk1NCIsIFwKLSAgICAgICAgICAiMC4wMDYwOSwgMC4wMDYxNjYsIDAuMDA2MTg0LCAwLjAwNjE5MiwgMC4wMDYxOTksIDAuMDA2MjAzLCAwLjAwNjE5OCIsIFwKLSAgICAgICAgICAiMC4wMDYzNjksIDAuMDA2NCwgMC4wMDY0MTYsIDAuMDA2NDMzLCAwLjAwNjQyNSwgMC4wMDY0MjgsIDAuMDA2NDMxIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IEJVRlg0ICoKLSAqIC0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChCVUZYNCkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjQ3MDkzMjsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwOTUxNzY1OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDk1MTY2MjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA5NTE3NjU7Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMS4zNjY1ODsKLSAgICBmdW5jdGlvbiA6ICJBIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzMDM3NSwgMC4wODU5NDgsIDAuMTQwNjg2LCAwLjE3OTc4OSwgMC4yNDI1MDEsIDAuMjk3MjYyLCAwLjM3NTYxNyIsIFwKLSAgICAgICAgICAiMC4wMzg2MywgMC4wOTQxNjksIDAuMTQ5MDE1LCAwLjE4ODExNywgMC4yNTA3MTgsIDAuMzA1NjcyLCAwLjM4MzkzNCIsIFwKLSAgICAgICAgICAiMC4wNDc1NTUsIDAuMTAzMjMxLCAwLjE1ODAwMSwgMC4xOTcyMDUsIDAuMjU5NzY5LCAwLjMxNDc3NCwgMC4zOTI5MDgiLCBcCi0gICAgICAgICAgIjAuMDU0MTcsIDAuMTEwMDMsIDAuMTY0Nzc1LCAwLjIwMzkwNywgMC4yNjY1NTgsIDAuMzIxNTQyLCAwLjM5OTc5NiIsIFwKLSAgICAgICAgICAiMC4wNTk1NDksIDAuMTE1OCwgMC4xNzA1MTUsIDAuMjA5NjE2LCAwLjI3MjI3NCwgMC4zMjcxMjEsIDAuNDA1MjY5IiwgXAotICAgICAgICAgICIwLjA2NjcxLCAwLjEyMzQ5MywgMC4xNzgxNTgsIDAuMjE3MjQxLCAwLjI3OTc5NCwgMC4zMzQ1OTMsIDAuNDEyODM3IiwgXAotICAgICAgICAgICIwLjA3MjA0MiwgMC4xMjkxMzEsIDAuMTgzOTE1LCAwLjIyMjg4MywgMC4yODUzODQsIDAuMzQwNDI2LCAwLjQxODQ1MSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyNDYyNywgMC4xMzc2MTMsIDAuMjUyNzkyLCAwLjMzNDk3LCAwLjQ2NzE4NSwgMC41ODMyMTQsIDAuNzQ4MTA1IiwgXAotICAgICAgICAgICIwLjAyNDc4NywgMC4xMzc2NDQsIDAuMjUyNzMyLCAwLjMzNTE4OSwgMC40Njc4NCwgMC41ODI5NiwgMC43NDgxNjEiLCBcCi0gICAgICAgICAgIjAuMDI2MjE2LCAwLjEzNzgwMywgMC4yNTI4MDIsIDAuMzM1Mjc0LCAwLjQ2NzIyNCwgMC41ODI4ODIsIDAuNzQ4MTI5IiwgXAotICAgICAgICAgICIwLjAyNzc3LCAwLjEzODA4MSwgMC4yNTMxNzIsIDAuMzM1ODE0LCAwLjQ2NzEzMSwgMC41ODI4ODQsIDAuNzQ4MDM3IiwgXAotICAgICAgICAgICIwLjAyOTI4OCwgMC4xMzgyODksIDAuMjUzMDM4LCAwLjMzNTc4MiwgMC40NjcxNzcsIDAuNTgyOTg2LCAwLjc0NzkwNiIsIFwKLSAgICAgICAgICAiMC4wMzEzMTEsIDAuMTM4OTU2LCAwLjI1MzI2NiwgMC4zMzU3MzgsIDAuNDY3OTYxLCAwLjU4MzIzNSwgMC43NDgwMDQiLCBcCi0gICAgICAgICAgIjAuMDMyOTcyLCAwLjEzOTc0MiwgMC4yNTMyOCwgMC4zMzU2NTgsIDAuNDY3MTk4LCAwLjU4Mzk2LCAwLjc0Nzc5MiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzMTQzMiwgMC4wODYyMTIsIDAuMTQwMDIsIDAuMTc4NDUyLCAwLjIzOTk0MywgMC4yOTM3ODIsIDAuMzcwNTk1IiwgXAotICAgICAgICAgICIwLjAzOTU2OCwgMC4wOTQzMjcsIDAuMTQ4MTgxLCAwLjE4NjU5NCwgMC4yNDgxNDYsIDAuMzAxOTI0LCAwLjM3ODg5MiIsIFwKLSAgICAgICAgICAiMC4wNDgzMjUsIDAuMTAzMjI2LCAwLjE1NzA0MywgMC4xOTU0NjcsIDAuMjU3MDYxLCAwLjMxMDg4MiwgMC4zODc4NDQiLCBcCi0gICAgICAgICAgIjAuMDU0NzA4LCAwLjEwOTgxNywgMC4xNjM2NDQsIDAuMjAyMDcsIDAuMjYzNjQ3LCAwLjMxNzQ0OSwgMC4zOTQ0NTIiLCBcCi0gICAgICAgICAgIjAuMDU5NzQ3LCAwLjExNTEwMywgMC4xNjg2OTgsIDAuMjA3MDg0LCAwLjI2ODU2NSwgMC4zMjI0MjUsIDAuMzk5Mjg0IiwgXAotICAgICAgICAgICIwLjA2NjU1NiwgMC4xMjE5NTUsIDAuMTc1NjgzLCAwLjIxNDA1MywgMC4yNzUzODMsIDAuMzI5MzI1LCAwLjQwNTk4NiIsIFwKLSAgICAgICAgICAiMC4wNzEyNjYsIDAuMTI2OTg5LCAwLjE4MDczNiwgMC4yMTkyMiwgMC4yODA2MDUsIDAuMzM0MjIyLCAwLjQxMTEyNCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyMzkwOCwgMC4xMzMyMywgMC4yNDQ4NDYsIDAuMzI0ODMxLCAwLjQ1MjcxNywgMC41NjM2MjgsIDAuNzIzNTEzIiwgXAotICAgICAgICAgICIwLjAyNDAyNywgMC4xMzMwODksIDAuMjQ0Mzc4LCAwLjMyNDg1NywgMC40NTIwNDUsIDAuNTY0Nzg0LCAwLjcyMzY5MyIsIFwKLSAgICAgICAgICAiMC4wMjUyODQsIDAuMTMzMzksIDAuMjQ0NDk4LCAwLjMyNDc1NCwgMC40NTIwNjksIDAuNTYzOTA2LCAwLjcyMzUyIiwgXAotICAgICAgICAgICIwLjAyNjY2NiwgMC4xMzM2MzYsIDAuMjQ0OTU4LCAwLjMyNDg4NCwgMC40NTIwNTYsIDAuNTY0MzE0LCAwLjcyMzk0NiIsIFwKLSAgICAgICAgICAiMC4wMjgxMjQsIDAuMTMzOTM1LCAwLjI0NTE3MSwgMC4zMjQ5MDksIDAuNDUyNDA3LCAwLjU2Mzg3OSwgMC43MjQwNzgiLCBcCi0gICAgICAgICAgIjAuMDI5Nzg1LCAwLjEzNDQwNywgMC4yNDUwMzksIDAuMzI0NjU4LCAwLjQ1MjIxNywgMC41NjM3NjEsIDAuNzI1MDAzIiwgXAotICAgICAgICAgICIwLjAzMTIwOSwgMC4xMzUwODgsIDAuMjQ1MTM2LCAwLjMyNTE0NSwgMC40NTI0MzcsIDAuNTY0MjY4LCAwLjcyMzU2MiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1MTkzLCAwLjAwNTMxNCwgMC4wMDUzMywgMC4wMDUzMzMsIDAuMDA1MzM1LCAwLjAwNTMzOCwgMC4wMDUzNCIsIFwKLSAgICAgICAgICAiMC4wMDUxNTYsIDAuMDA1Mjg2LCAwLjAwNTMwNywgMC4wMDUzMTQsIDAuMDA1MzE5LCAwLjAwNTMyMiwgMC4wMDUzMjUiLCBcCi0gICAgICAgICAgIjAuMDA1MjQ0LCAwLjAwNTM1OCwgMC4wMDUzNzksIDAuMDA1Mzg3LCAwLjAwNTM5NiwgMC4wMDUzOTcsIDAuMDA1NDAyIiwgXAotICAgICAgICAgICIwLjAwNTQ1NywgMC4wMDU0NzIsIDAuMDA1NDg5LCAwLjAwNTQ5NSwgMC4wMDU1MDEsIDAuMDA1NTA2LCAwLjAwNTUxIiwgXAotICAgICAgICAgICIwLjAwNTY3NywgMC4wMDU2MjUsIDAuMDA1NjQsIDAuMDA1NjM5LCAwLjAwNTY1MiwgMC4wMDU2NTUsIDAuMDA1NjU4IiwgXAotICAgICAgICAgICIwLjAwNTk3MiwgMC4wMDU4OTMsIDAuMDA1ODk5LCAwLjAwNTkwMiwgMC4wMDU5MDUsIDAuMDA1OTA0LCAwLjAwNTkxIiwgXAotICAgICAgICAgICIwLjAwNjM1NiwgMC4wMDYxNDgsIDAuMDA2MTQ1LCAwLjAwNjE1MSwgMC4wMDYxNTMsIDAuMDA2MTM2LCAwLjAwNjE1NCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2Nzc1LCAwLjAwNjk1NSwgMC4wMDY5NzgsIDAuMDA2OTg1LCAwLjAwNjk5MSwgMC4wMDY5OTQsIDAuMDA2OTk3IiwgXAotICAgICAgICAgICIwLjAwNjczLCAwLjAwNjkyNywgMC4wMDY5NjEsIDAuMDA2OTcyLCAwLjAwNjk4MSwgMC4wMDY5ODYsIDAuMDA2OTkxIiwgXAotICAgICAgICAgICIwLjAwNjgxOCwgMC4wMDY5OTEsIDAuMDA3MDI5LCAwLjAwNzA0LCAwLjAwNzA1MSwgMC4wMDcwNTYsIDAuMDA3MDYxIiwgXAotICAgICAgICAgICIwLjAwNzAyOCwgMC4wMDcwODksIDAuMDA3MTI2LCAwLjAwNzE0LCAwLjAwNzE1MSwgMC4wMDcxNTcsIDAuMDA3MTYzIiwgXAotICAgICAgICAgICIwLjAwNzI1NywgMC4wMDcyMzIsIDAuMDA3MjYyLCAwLjAwNzI3NCwgMC4wMDcyODYsIDAuMDA3MjkxLCAwLjAwNzI5NyIsIFwKLSAgICAgICAgICAiMC4wMDc0NzEsIDAuMDA3NTMyLCAwLjAwNzQ5OCwgMC4wMDc1MDcsIDAuMDA3NTQ0LCAwLjAwNzUyMywgMC4wMDc1NSIsIFwKLSAgICAgICAgICAiMC4wMDc3NDYsIDAuMDA3NzM2LCAwLjAwNzc0MSwgMC4wMDc3MzcsIDAuMDA3NzQ5LCAwLjAwNzc1MywgMC4wMDc3NTYiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IENMS0FORDJYMiAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKENMS0FORDJYMikgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjMyNjU1NjsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwODIxNjY5OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDgyMTY2OTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA4MTg3Njk7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjk2LCAwLjAwMDI5NiwgMC4wMDAyOTYsIDAuMDAwMjk2LCAwLjAwMDI5NiwgMC4wMDAyOTYsIDAuMDAwMjk2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzI4LCAwLjAwMDMwNywgMC4wMDAzMDIsIDAuMDAwMjk4LCAwLjAwMDI5OCwgMC4wMDAyOTcsIDAuMDAwMjk4Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA3OTgwMDY7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNzk4MDA2OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDc5Njg0NTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAwODksIDAuMDAwMDg5LCAwLjAwMDA4OSwgMC4wMDAwODksIDAuMDAwMDg5LCAwLjAwMDA4OSwgMC4wMDAwODkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAzNzUsIDAuMDAwMzc2LCAwLjAwMDM3NiwgMC4wMDAzNzYsIDAuMDAwMzc2LCAwLjAwMDM3NiwgMC4wMDAzNzYiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC42ODk4NTQ7Ci0gICAgZnVuY3Rpb24gOiAiKEEgQikiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0MDEyNywgMC4xMTc1ODYsIDAuMTc5MjIzLCAwLjI1NjQ1NywgMC4zMzM0LCAwLjQxMDc5MiwgMC40ODc3NTQiLCBcCi0gICAgICAgICAgIjAuMDQ2NTE5LCAwLjEyMzk2LCAwLjE4NTY0OCwgMC4yNjI3NTQsIDAuMzQwMDcyLCAwLjQxNzE1MywgMC40OTQwMzQiLCBcCi0gICAgICAgICAgIjAuMDUzMDYyLCAwLjEzMDU5LCAwLjE5MjMxNCwgMC4yNjkzODQsIDAuMzQ2NTA4LCAwLjQyMzU4NSwgMC41MDA3MjYiLCBcCi0gICAgICAgICAgIjAuMDU4MDQ5LCAwLjEzNTc3MywgMC4xOTc0NiwgMC4yNzQ1MTIsIDAuMzUxNjIsIDAuNDI4Njk1LCAwLjUwNTg3NCIsIFwKLSAgICAgICAgICAiMC4wNjIyLCAwLjEzOTc2NywgMC4yMDE0NTIsIDAuMjc4NDgzLCAwLjM1NTU3NSwgMC40MzI4MzcsIDAuNTA5NzUiLCBcCi0gICAgICAgICAgIjAuMDY3NTA4LCAwLjE0NTQ4NiwgMC4yMDY5OTksIDAuMjg0MDk2LCAwLjM2MTE4OSwgMC40MzgyMDYsIDAuNTE1MzAxIiwgXAotICAgICAgICAgICIwLjA3MTQ3NCwgMC4xNDk0MzUsIDAuMjExMDcxLCAwLjI4ODExNSwgMC4zNjUxNDEsIDAuNDQyMjU0LCAwLjUxOTQ5NyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzk5NDYsIDAuMjAwMzczLCAwLjMyOTU3OSwgMC40OTI0MDMsIDAuNjU1MDgsIDAuODE3NTYyLCAwLjk3OTk3NCIsIFwKLSAgICAgICAgICAiMC4wNDAwNDksIDAuMjAwMzYyLCAwLjMzMDQ1OCwgMC40OTIyNjYsIDAuNjU0NzksIDAuODE3Mzk4LCAwLjk3OTQ5IiwgXAotICAgICAgICAgICIwLjA0MDczNSwgMC4yMDAyNDYsIDAuMzI5NzU3LCAwLjQ5MjUzLCAwLjY1NDU2OSwgMC44MTcwMDMsIDAuOTc5ODg5IiwgXAotICAgICAgICAgICIwLjA0MTYsIDAuMjAwNTg1LCAwLjMyOTg4NywgMC40OTMxNDgsIDAuNjU0NzYsIDAuODE4MTY3LCAwLjk3OTQyMyIsIFwKLSAgICAgICAgICAiMC4wNDIzMjQsIDAuMjAwNTMyLCAwLjMyOTk5NCwgMC40OTMxNjEsIDAuNjU1OTA3LCAwLjgxNzQ1OCwgMC45ODA3OTEiLCBcCi0gICAgICAgICAgIjAuMDQzNzI5LCAwLjIwMDcyOSwgMC4zMzAxNzEsIDAuNDkzMjQ2LCAwLjY1NDgyLCAwLjgxODY2MywgMC45ODAwOTYiLCBcCi0gICAgICAgICAgIjAuMDQ1MDAyLCAwLjIwMDg3NSwgMC4zMzAzNjMsIDAuNDkzMjQ2LCAwLjY1NTE1LCAwLjgxODcwNywgMC45Nzk5MzMiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQzMjI2LCAwLjExOTUxNywgMC4xODAxNTUsIDAuMjU1OTUxLCAwLjMzMTcxOCwgMC40MDc0OTYsIDAuNDgzMjE2IiwgXAotICAgICAgICAgICIwLjA1MTIyLCAwLjEyNzU2LCAwLjE4ODIyOSwgMC4yNjQwMDIsIDAuMzM5NzgzLCAwLjQxNTUxNCwgMC40OTEyNzQiLCBcCi0gICAgICAgICAgIjAuMDYwNDc1LCAwLjEzNjc5OCwgMC4xOTc0NDQsIDAuMjczMjMzLCAwLjM0ODk4NywgMC40MjQ3NDQsIDAuNTAwNTQ5IiwgXAotICAgICAgICAgICIwLjA2NzgxOSwgMC4xNDQyMjMsIDAuMjA0ODY5LCAwLjI4MDY1MiwgMC4zNTY0MTgsIDAuNDMyMTc1LCAwLjUwNzkzNCIsIFwKLSAgICAgICAgICAiMC4wNzM3MiwgMC4xNTAxNzcsIDAuMjEwODA5LCAwLjI4NjU3NCwgMC4zNjIzMzEsIDAuNDM4MTI3LCAwLjUxMzg4IiwgXAotICAgICAgICAgICIwLjA4MTU0OCwgMC4xNTgxNzksIDAuMjE4NzgxLCAwLjI5NDU2OSwgMC4zNzAyOTksIDAuNDQ2MDkyLCAwLjUyMTgxNyIsIFwKLSAgICAgICAgICAiMC4wODc0NzUsIDAuMTY0MDk1LCAwLjIyNDY3NywgMC4zMDA0NDQsIDAuMzc2MTc4LCAwLjQ1MTkyNiwgMC41Mjc2ODEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM5MDU3LCAwLjE5NDEzNiwgMC4zMTk5MzMsIDAuNDc3NTIzLCAwLjYzNTA1NSwgMC43OTA5OTksIDAuOTQ5MDUxIiwgXAotICAgICAgICAgICIwLjAzOTAxOCwgMC4xOTQxNiwgMC4zMTkzOTksIDAuNDc3NTI2LCAwLjYzNTE0LCAwLjc5MjU4NywgMC45NDkxODEiLCBcCi0gICAgICAgICAgIjAuMDM5NzM3LCAwLjE5NDE5NSwgMC4zMTk2MDgsIDAuNDc3NDc2LCAwLjYzNDk4NiwgMC43OTI1MTYsIDAuOTUwMjYzIiwgXAotICAgICAgICAgICIwLjA0MDcxNywgMC4xOTQzMjksIDAuMzE5NjQ3LCAwLjQ3Njc0OSwgMC42MzUwMzgsIDAuNzkyNTgxLCAwLjk1MDE0NyIsIFwKLSAgICAgICAgICAiMC4wNDE2OTgsIDAuMTk0NDI4LCAwLjMxOTk3NywgMC40NzY3NTcsIDAuNjM0MzM4LCAwLjc5MjY0NiwgMC45NTAyNDkiLCBcCi0gICAgICAgICAgIjAuMDQzMTM0LCAwLjE5NDY3NiwgMC4zMTk3NDgsIDAuNDc2ODk5LCAwLjYzNDM2MiwgMC43OTIzNjIsIDAuOTUwMTQxIiwgXAotICAgICAgICAgICIwLjA0NDQyNCwgMC4xOTQ3NjUsIDAuMzE5OTc3LCAwLjQ3Njk1LCAwLjYzNDM5NSwgMC43OTIzNTIsIDAuOTQ5OTgyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzODc0NSwgMC4xMTYyOSwgMC4xNzc5MzEsIDAuMjU1MTczLCAwLjMzMjE0NSwgMC40MDk0NDcsIDAuNDg2NjAzIiwgXAotICAgICAgICAgICIwLjA0NjM1NCwgMC4xMjM4MTEsIDAuMTg1NDc4LCAwLjI2MjYyMSwgMC4zMzk4MzksIDAuNDE2ODM2LCAwLjQ5NDExMiIsIFwKLSAgICAgICAgICAiMC4wNTQyMDksIDAuMTMxNjg5LCAwLjE5MzQ0NiwgMC4yNzA1ODUsIDAuMzQ3NTUzLCAwLjQyNDc1MSwgMC41MDE5MDQiLCBcCi0gICAgICAgICAgIjAuMDU5OTE2LCAwLjEzNzY5NSwgMC4xOTkzNDYsIDAuMjc2NDc1LCAwLjM1MzU4NCwgMC40MzA3OTUsIDAuNTA4MDA5IiwgXAotICAgICAgICAgICIwLjA2NDc0MywgMC4xNDI2MSwgMC4yMDQyNCwgMC4yODEzMTksIDAuMzU4NDEyLCAwLjQzNTcxNCwgMC41MTI2MDciLCBcCi0gICAgICAgICAgIjAuMDcwODk2LCAwLjE0ODg1NywgMC4yMTA0MTgsIDAuMjg3NDAzLCAwLjM2NDQ0NCwgMC40NDE1MjEsIDAuNTE4NjI1IiwgXAotICAgICAgICAgICIwLjA3NTgxMSwgMC4xNTM0NywgMC4yMTUwNzcsIDAuMjkyMDgzLCAwLjM2OTEzLCAwLjQ0NjIyNiwgMC41MjM1MjEiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM5OTMxLCAwLjE5OTk3NywgMC4zMjk2MjcsIDAuNDkyMzg0LCAwLjY1NTk3NywgMC44MTc0NTcsIDAuOTc5OTcxIiwgXAotICAgICAgICAgICIwLjA0MDA3LCAwLjIwMDM4LCAwLjMzMDQyLCAwLjQ5MjE5NywgMC42NTUwNzMsIDAuODE2OTk4LCAwLjk3OTk2IiwgXAotICAgICAgICAgICIwLjA0MDk1NSwgMC4yMDAzODIsIDAuMzI5OTI4LCAwLjQ5MjQxMiwgMC42NTU1NDIsIDAuODE3MzkzLCAwLjk3OTk0MiIsIFwKLSAgICAgICAgICAiMC4wNDIwNDUsIDAuMjAwMzk2LCAwLjMzMDE0MiwgMC40OTIyMDUsIDAuNjU0NTY4LCAwLjgxNzI4OSwgMC45Nzk4NyIsIFwKLSAgICAgICAgICAiMC4wNDI5MjcsIDAuMjAwNTcsIDAuMzMwMjMzLCAwLjQ5MjU3MywgMC42NTU5MTQsIDAuODE3NDU3LCAwLjk4MDgzNiIsIFwKLSAgICAgICAgICAiMC4wNDQ2NTUsIDAuMjAwODMyLCAwLjMzMDI5MSwgMC40OTMzNTEsIDAuNjU2MDExLCAwLjgxODcyNywgMC45Nzk3NDciLCBcCi0gICAgICAgICAgIjAuMDQ1NjEzLCAwLjIwMTA1OSwgMC4zMzA1MDcsIDAuNDkyNjY2LCAwLjY1NTY5LCAwLjgxODc1NiwgMC45ODAwMTkiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQwOTM1LCAwLjExNzE5OSwgMC4xNzc4ODcsIDAuMjUzNjQ4LCAwLjMyOTQ1OCwgMC40MDUzNDcsIDAuNDgxMDg1IiwgXAotICAgICAgICAgICIwLjA0ODcwMywgMC4xMjQ5MjQsIDAuMTg1NTkyLCAwLjI2MTQxOSwgMC4zMzcxOTQsIDAuNDEzMDQyLCAwLjQ4ODk3OSIsIFwKLSAgICAgICAgICAiMC4wNTc0MzMsIDAuMTMzNzMxLCAwLjE5NDQxMSwgMC4yNzAyNDEsIDAuMzQ2MDUzLCAwLjQyMTkxMywgMC40OTc1MTkiLCBcCi0gICAgICAgICAgIjAuMDYzOTUzLCAwLjE0MDM4NCwgMC4yMDEsIDAuMjc2Nzg4LCAwLjM1MjU5NiwgMC40Mjg1OCwgMC41MDQxOTUiLCBcCi0gICAgICAgICAgIjAuMDY5NDIyLCAwLjE0NTk2NiwgMC4yMDY2NzcsIDAuMjgyNDc1LCAwLjM1ODI2NSwgMC40MzQwNzIsIDAuNTA5OTMzIiwgXAotICAgICAgICAgICIwLjA3NjU1NywgMC4xNTMxODcsIDAuMjEzNTM1LCAwLjI4OTU3MywgMC4zNjUxMjMsIDAuNDQxMTQ2LCAwLjUxNjcyOCIsIFwKLSAgICAgICAgICAiMC4wODE3NjcsIDAuMTU4MzcsIDAuMjE5MzM2LCAwLjI5NDY2OCwgMC4zNzA1MjYsIDAuNDQ2MjI1LCAwLjUyMjA5MiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzg3MjYsIDAuMTkzOTk0LCAwLjMxOTIzNCwgMC40NzY0ODIsIDAuNjM1MDI4LCAwLjc5MTI5MSwgMC45NDg1OTIiLCBcCi0gICAgICAgICAgIjAuMDM4ODMyLCAwLjE5Mzk2NCwgMC4zMTkxODcsIDAuNDc2NTkyLCAwLjYzNDMxLCAwLjc5MTI1NCwgMC45NDg0NiIsIFwKLSAgICAgICAgICAiMC4wMzk3MDksIDAuMTk0MDgzLCAwLjMxOTMyMSwgMC40NzY1OTMsIDAuNjM0MzksIDAuNzkxMjE4LCAwLjk0ODI2OSIsIFwKLSAgICAgICAgICAiMC4wNDA4MjEsIDAuMTkzOTY5LCAwLjMxOTgyNSwgMC40Nzc0NzksIDAuNjMzNzcsIDAuNzkxMTcxLCAwLjk0ODcyNCIsIFwKLSAgICAgICAgICAiMC4wNDE3NjgsIDAuMTk0NDYzLCAwLjMxOTYxNSwgMC40NzY5MTUsIDAuNjMzODA0LCAwLjc5MDkyMSwgMC45NDkyNzkiLCBcCi0gICAgICAgICAgIjAuMDQzMjQyLCAwLjE5NDUyMiwgMC4zMjAwNywgMC40NzY3LCAwLjYzNDA1OCwgMC43OTExNywgMC45NDg1NzkiLCBcCi0gICAgICAgICAgIjAuMDQ0NTIsIDAuMTk0NzE1LCAwLjMxOTg0OSwgMC40Nzc0MTMsIDAuNjM0MjkxLCAwLjc5MTY3OSwgMC45NTAxMDIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI4OTksIDAuMDAyOTIyLCAwLjAwMjkyNCwgMC4wMDI5MjQsIDAuMDAyOTE4LCAwLjAwMjkyNSwgMC4wMDI5MyIsIFwKLSAgICAgICAgICAiMC4wMDI4NjUsIDAuMDAyODk3LCAwLjAwMjg5OCwgMC4wMDI5LCAwLjAwMjksIDAuMDAyOTAxLCAwLjAwMjkwMSIsIFwKLSAgICAgICAgICAiMC4wMDI4ODQsIDAuMDAyOTE5LCAwLjAwMjkyNCwgMC4wMDI5MjUsIDAuMDAyOTI3LCAwLjAwMjkyOCwgMC4wMDI5MjciLCBcCi0gICAgICAgICAgIjAuMDAyOTQyLCAwLjAwMjk3OSwgMC4wMDI5ODMsIDAuMDAyOTg1LCAwLjAwMjk4NiwgMC4wMDI5ODgsIDAuMDAyOTg3IiwgXAotICAgICAgICAgICIwLjAwMzA0NCwgMC4wMDMwNzIsIDAuMDAzMDczLCAwLjAwMzA3NSwgMC4wMDMwNzIsIDAuMDAzMDczLCAwLjAwMzA3MyIsIFwKLSAgICAgICAgICAiMC4wMDMyNDksIDAuMDAzMjMsIDAuMDAzMjM0LCAwLjAwMzIzNSwgMC4wMDMyMzIsIDAuMDAzMjM0LCAwLjAwMzIzMyIsIFwKLSAgICAgICAgICAiMC4wMDM0MzYsIDAuMDAzMzk3LCAwLjAwMzM5NCwgMC4wMDMzOTYsIDAuMDAzMzkyLCAwLjAwMzM5MiwgMC4wMDMzOTIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQ1NjEsIDAuMDA0NjE2LCAwLjAwNDYyMiwgMC4wMDQ2MjYsIDAuMDA0NjI4LCAwLjAwNDYyOSwgMC4wMDQ2MjkiLCBcCi0gICAgICAgICAgIjAuMDA0NTQyLCAwLjAwNDYxMywgMC4wMDQ2MjMsIDAuMDA0NjI4LCAwLjAwNDYzMSwgMC4wMDQ2MzMsIDAuMDA0NjM0IiwgXAotICAgICAgICAgICIwLjAwNDU5NiwgMC4wMDQ2NTYsIDAuMDA0NjY4LCAwLjAwNDY3NCwgMC4wMDQ2NzcsIDAuMDA0Njc5LCAwLjAwNDY4MSIsIFwKLSAgICAgICAgICAiMC4wMDQ3MDYsIDAuMDA0NzUzLCAwLjAwNDc2NSwgMC4wMDQ3NzIsIDAuMDA0Nzc2LCAwLjAwNDc3OCwgMC4wMDQ3NzkiLCBcCi0gICAgICAgICAgIjAuMDA0ODIzLCAwLjAwNDg2MywgMC4wMDQ4NzUsIDAuMDA0ODgyLCAwLjAwNDg4NywgMC4wMDQ4ODksIDAuMDA0ODkxIiwgXAotICAgICAgICAgICIwLjAwNTA1NiwgMC4wMDUwNjksIDAuMDA1MDc4LCAwLjAwNTA4NSwgMC4wMDUwODksIDAuMDA1MDkxLCAwLjAwNTA5MyIsIFwKLSAgICAgICAgICAiMC4wMDUzMDUsIDAuMDA1MjYxLCAwLjAwNTI2MiwgMC4wMDUyNjUsIDAuMDA1MjY3LCAwLjAwNTI2OCwgMC4wMDUyNjkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI5MDEsIDAuMDAyOTM2LCAwLjAwMjk0LCAwLjAwMjk0MywgMC4wMDI5NDMsIDAuMDAyOTQ0LCAwLjAwMjk0NCIsIFwKLSAgICAgICAgICAiMC4wMDI4ODYsIDAuMDAyOTI4LCAwLjAwMjkzMSwgMC4wMDI5MzUsIDAuMDAyOTM2LCAwLjAwMjkzNywgMC4wMDI5MzgiLCBcCi0gICAgICAgICAgIjAuMDAyOTU5LCAwLjAwMjk5NCwgMC4wMDI5OTcsIDAuMDAzMDAxLCAwLjAwMzAwMywgMC4wMDMwMDUsIDAuMDAzMDA1IiwgXAotICAgICAgICAgICIwLjAwMzA4MiwgMC4wMDMwOTQsIDAuMDAzMSwgMC4wMDMxMDMsIDAuMDAzMTA0LCAwLjAwMzEwNiwgMC4wMDMxMDYiLCBcCi0gICAgICAgICAgIjAuMDAzMjI1LCAwLjAwMzIxMiwgMC4wMDMyMTYsIDAuMDAzMjE4LCAwLjAwMzIyLCAwLjAwMzIyMSwgMC4wMDMyMjEiLCBcCi0gICAgICAgICAgIjAuMDAzNDU1LCAwLjAwMzQxOSwgMC4wMDM0MiwgMC4wMDM0MzEsIDAuMDAzNDMxLCAwLjAwMzQzMSwgMC4wMDM0MzIiLCBcCi0gICAgICAgICAgIjAuMDAzNjU1LCAwLjAwMzYyLCAwLjAwMzYzMiwgMC4wMDM2MzIsIDAuMDAzNjE3LCAwLjAwMzYzMSwgMC4wMDM2MjkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQwNzksIDAuMDA0MTU0LCAwLjAwNDE2MywgMC4wMDQxNjcsIDAuMDA0MTcsIDAuMDA0MTcxLCAwLjAwNDE3MiIsIFwKLSAgICAgICAgICAiMC4wMDQwMjksIDAuMDA0MTIsIDAuMDA0MTMzLCAwLjAwNDEzOSwgMC4wMDQxNDIsIDAuMDA0MTQ1LCAwLjAwNDE0NiIsIFwKLSAgICAgICAgICAiMC4wMDQwODgsIDAuMDA0MTY5LCAwLjAwNDE4NCwgMC4wMDQxOTIsIDAuMDA0MTk2LCAwLjAwNDE5OSwgMC4wMDQyIiwgXAotICAgICAgICAgICIwLjAwNDIwNCwgMC4wMDQyNjUsIDAuMDA0MjgsIDAuMDA0MjksIDAuMDA0Mjk1LCAwLjAwNDI5OSwgMC4wMDQzMDEiLCBcCi0gICAgICAgICAgIjAuMDA0MzE4LCAwLjAwNDM2NCwgMC4wMDQzODIsIDAuMDA0MzkxLCAwLjAwNDM5NywgMC4wMDQ0LCAwLjAwNDQwMiIsIFwKLSAgICAgICAgICAiMC4wMDQ1NDMsIDAuMDA0NTgxLCAwLjAwNDU4MywgMC4wMDQ2MDgsIDAuMDA0NTk2LCAwLjAwNDYxNywgMC4wMDQ2MDIiLCBcCi0gICAgICAgICAgIjAuMDA0NzM4LCAwLjAwNDc2NCwgMC4wMDQ3ODgsIDAuMDA0NzgxLCAwLjAwNDgwMywgMC4wMDQ3ODksIDAuMDA0ODA5Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBDTEtBTkQyWDYgKgotICogLS0tLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChDTEtBTkQyWDYpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMS4xMzU3ODsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAyNjUyOTc7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAyNjUyOTc7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAyNjQyMzY7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxMDgxLCAwLjAwMTA4LCAwLjAwMTA4LCAwLjAwMTA4LCAwLjAwMTA4LCAwLjAwMTA4LCAwLjAwMTA4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxMTkzLCAwLjAwMTExNiwgMC4wMDExMDQsIDAuMDAxMDg5LCAwLjAwMTA4OCwgMC4wMDEwODQsIDAuMDAxMDg0Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDI1MzE5MzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDI1MzE5MzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDI1Mjc3NjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyMTQsIDAuMDAwMjEzLCAwLjAwMDIxNCwgMC4wMDAyMTMsIDAuMDAwMjEzLCAwLjAwMDIxNCwgMC4wMDAyMTQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDEzNjUsIDAuMDAxMzY1LCAwLjAwMTM2NiwgMC4wMDEzNjYsIDAuMDAxMzY2LCAwLjAwMTM2NiwgMC4wMDEzNjYiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMS45ODk0NjsKLSAgICBmdW5jdGlvbiA6ICIoQSBCKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjY3ODEsIDAuMDY0Njg1LCAwLjEwMTM5NiwgMC4xMjc1NDgsIDAuMTY5NDI2LCAwLjIwNjExMiwgMC4yNTg1NzUiLCBcCi0gICAgICAgICAgIjAuMDMyOTgzLCAwLjA3MDg3LCAwLjEwNzU2OCwgMC4xMzM3NjMsIDAuMTc1Njg1LCAwLjIxMjQ1OSwgMC4yNjQ3ODIiLCBcCi0gICAgICAgICAgIjAuMDM4ODE3LCAwLjA3NzA4MywgMC4xMTM3NzMsIDAuMTM5OTgzLCAwLjE4MTkyOSwgMC4yMTg1ODksIDAuMjcwOTc1IiwgXAotICAgICAgICAgICIwLjA0MzE4NywgMC4wODE3MDksIDAuMTE4NDEyLCAwLjE0NDYxLCAwLjE4NjUxNywgMC4yMjMyODIsIDAuMjc1NjMiLCBcCi0gICAgICAgICAgIjAuMDQ2NTc4LCAwLjA4NTQzNSwgMC4xMjIxNTksIDAuMTQ4MzQ2LCAwLjE5MDI1NywgMC4yMjY5MDMsIDAuMjc5Mzg3IiwgXAotICAgICAgICAgICIwLjA1MTEwMSwgMC4wOTAzNTMsIDAuMTI3MDc3LCAwLjE1MzI3NSwgMC4xOTUxNSwgMC4yMzE4MDMsIDAuMjg0MjE2IiwgXAotICAgICAgICAgICIwLjA1NDQyNSwgMC4wOTQxODQsIDAuMTMwOTI0LCAwLjE1NzEzMywgMC4xOTkwMzksIDAuMjM1NjczLCAwLjI4ODA0NCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxODg2OSwgMC4wOTM5NTYsIDAuMTcwNzIzLCAwLjIyNTgxMiwgMC4zMTM5NTEsIDAuMzkxOTQ5LCAwLjUwMjA5OCIsIFwKLSAgICAgICAgICAiMC4wMTkwODUsIDAuMDk0MDE4LCAwLjE3MTAwNSwgMC4yMjYyMjksIDAuMzE0NzgyLCAwLjM5MTY3NywgMC41MDIzNDciLCBcCi0gICAgICAgICAgIjAuMDIwMDQyLCAwLjA5NDI5NywgMC4xNzA5NzEsIDAuMjI1ODk2LCAwLjMxNDE3MiwgMC4zOTE4OSwgMC41MDIwOSIsIFwKLSAgICAgICAgICAiMC4wMjA5NDQsIDAuMDk0NjQzLCAwLjE3MTI0LCAwLjIyNjA0NiwgMC4zMTQ0OTksIDAuMzkxNjk5LCAwLjUwMTk1NiIsIFwKLSAgICAgICAgICAiMC4wMjIxMDksIDAuMDk1MDIyLCAwLjE3MTMzOSwgMC4yMjYyMzIsIDAuMzE0ODk4LCAwLjM5MjI0MywgMC41MDE5ODQiLCBcCi0gICAgICAgICAgIjAuMDIzNzIsIDAuMDk1ODA4LCAwLjE3MTQyNiwgMC4yMjYzOTEsIDAuMzE0NTcsIDAuMzkyMDg4LCAwLjUwMzA1NyIsIFwKLSAgICAgICAgICAiMC4wMjQ2MzEsIDAuMDk2MzQ1LCAwLjE3MTgzNiwgMC4yMjY0MTIsIDAuMzE0NTA2LCAwLjM5MTgwNiwgMC41MDI5NDEiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjk2NDYsIDAuMDY4NDkxLCAwLjEwNjEyMywgMC4xMzI5NjEsIDAuMTc1ODk3LCAwLjIxMzQ2MiwgMC4yNjcxMyIsIFwKLSAgICAgICAgICAiMC4wMzc1NzgsIDAuMDc2NDI0LCAwLjExNDA2MywgMC4xNDA5MTgsIDAuMTgzODQ4LCAwLjIyMTQwMiwgMC4yNzUwNTEiLCBcCi0gICAgICAgICAgIjAuMDQ2MTM5LCAwLjA4NTE0MywgMC4xMjI3NzgsIDAuMTQ5NjE3LCAwLjE5MjU1MiwgMC4yMzAxMzgsIDAuMjgzNzQ5IiwgXAotICAgICAgICAgICIwLjA1MjU5LCAwLjA5MTg2NSwgMC4xMjk1MDEsIDAuMTU2MzM5LCAwLjE5OTI3NiwgMC4yMzY4MywgMC4yOTA0OTUiLCBcCi0gICAgICAgICAgIjAuMDU3NzAyLCAwLjA5NzI2OCwgMC4xMzQ4ODgsIDAuMTYxNzMyLCAwLjIwNDY1OSwgMC4yNDIyMjcsIDAuMjk1ODUyIiwgXAotICAgICAgICAgICIwLjA2NDU3MiwgMC4xMDQ1NDgsIDAuMTQyMjIxLCAwLjE2OTA0NSwgMC4yMTE5NzksIDAuMjQ5NTIzLCAwLjMwMzE2MSIsIFwKLSAgICAgICAgICAiMC4wNjk3NzMsIDAuMTA5OTIzLCAwLjE0NzU2NiwgMC4xNzQ0MjYsIDAuMjE3NTYsIDAuMjU1MTA2LCAwLjMwODczOCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxODk4NCwgMC4wOTM5ODQsIDAuMTcxMTQ5LCAwLjIyNjM1MSwgMC4zMTQxOTgsIDAuMzkxNDkyLCAwLjUwMjI2IiwgXAotICAgICAgICAgICIwLjAxOTA0NywgMC4wOTQxMDMsIDAuMTcxMTEsIDAuMjI2MDk0LCAwLjMxNDg0MywgMC4zOTIzMzcsIDAuNTAyNTEyIiwgXAotICAgICAgICAgICIwLjAyMDI2OCwgMC4wOTQyOTUsIDAuMTcxMjI3LCAwLjIyNjM5NSwgMC4zMTQ1MjksIDAuMzkxNzA1LCAwLjUwMzA2NCIsIFwKLSAgICAgICAgICAiMC4wMjEzNDksIDAuMDk0NjE4LCAwLjE3MTMyMSwgMC4yMjYyMTUsIDAuMzE0OTIyLCAwLjM5MjM3NSwgMC41MDMwNTQiLCBcCi0gICAgICAgICAgIjAuMDIyNDcxLCAwLjA5NDk2NiwgMC4xNzEzMTgsIDAuMjI2MzcsIDAuMzE0ODcsIDAuMzkyMjIsIDAuNTAyNTA5IiwgXAotICAgICAgICAgICIwLjAyNDAyMiwgMC4wOTU3MDIsIDAuMTcxMzk0LCAwLjIyNjU1NSwgMC4zMTQ2MTUsIDAuMzkxOTA0LCAwLjUwMjM3IiwgXAotICAgICAgICAgICIwLjAyNTE1NCwgMC4wOTYxOTksIDAuMTcxNjg1LCAwLjIyNjYyNSwgMC4zMTQ4MTMsIDAuMzkxOTY3LCAwLjUwMjYxOCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyNTI0OSwgMC4wNjMxNjIsIDAuMDk5ODYxLCAwLjEyNjAzMSwgMC4xNjc5MDQsIDAuMjA0NjI1LCAwLjI1NzA5MiIsIFwKLSAgICAgICAgICAiMC4wMzI1OTMsIDAuMDcwNDk3LCAwLjEwNzE5MywgMC4xMzMzOTYsIDAuMTc1MzE2LCAwLjIxMjA5NywgMC4yNjQzOTciLCBcCi0gICAgICAgICAgIjAuMDM5NTU4LCAwLjA3NzczMiwgMC4xMTQ0MTUsIDAuMTQwNjA5LCAwLjE4MjU5NiwgMC4yMTkyMDUsIDAuMjcxNzU4IiwgXAotICAgICAgICAgICIwLjA0NDU3NiwgMC4wODMxMzUsIDAuMTE5ODUyLCAwLjE0NjA0MSwgMC4xODc5OTMsIDAuMjI0NjM5LCAwLjI3NzA3OSIsIFwKLSAgICAgICAgICAiMC4wNDg2MiwgMC4wODc0MTksIDAuMTI0MjQsIDAuMTUwNDMxLCAwLjE5MjMyNCwgMC4yMjg4MjgsIDAuMjgxMTg2IiwgXAotICAgICAgICAgICIwLjA1MzkzMSwgMC4wOTI4ODEsIDAuMTI5NzA3LCAwLjE1NTg5MSwgMC4xOTc3NTEsIDAuMjM0NDIyLCAwLjI4Njc4MyIsIFwKLSAgICAgICAgICAiMC4wNTc3MTksIDAuMDk3MTQyLCAwLjEzMzkxMywgMC4xNjAxNzQsIDAuMjAyMDcyLCAwLjIzODcxMywgMC4yOTEwNzMiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTg4NywgMC4wOTM5NTksIDAuMTcxMDA1LCAwLjIyNTk1LCAwLjMxNDAzMywgMC4zOTIyNTIsIDAuNTAxOTI5IiwgXAotICAgICAgICAgICIwLjAxOTI2NSwgMC4wOTQwMjIsIDAuMTcwOTc2LCAwLjIyNjI3NywgMC4zMTQ3ODIsIDAuMzkxNjg0LCAwLjUwMjY3NSIsIFwKLSAgICAgICAgICAiMC4wMjA0NTYsIDAuMDk0Mzk1LCAwLjE3MTE0MywgMC4yMjYwNjcsIDAuMzE0MzExLCAwLjM5MjAyMywgMC41MDIyMDkiLCBcCi0gICAgICAgICAgIjAuMDIxNjIxLCAwLjA5NDgyNywgMC4xNzExODIsIDAuMjI2NDE2LCAwLjMxNDMyOSwgMC4zOTIzMjgsIDAuNTAyMTgiLCBcCi0gICAgICAgICAgIjAuMDIyODM3LCAwLjA5NTIyNCwgMC4xNzE0NjMsIDAuMjI2MzQ2LCAwLjMxNDgxLCAwLjM5MjQyMiwgMC41MDMwMzMiLCBcCi0gICAgICAgICAgIjAuMDI0Mjc3LCAwLjA5NjAwNCwgMC4xNzE2MTIsIDAuMjI2NTMsIDAuMzE0NzQ4LCAwLjM5MTk1NCwgMC41MDI4MTMiLCBcCi0gICAgICAgICAgIjAuMDI1NzEzLCAwLjA5NjY1NCwgMC4xNzE5NDcsIDAuMjI2NTk4LCAwLjMxNDcwNiwgMC4zOTE5NTEsIDAuNTAyMzg3Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDI3NCwgMC4wNjYxMjksIDAuMTAzNzIsIDAuMTMwNTYyLCAwLjE3MzQ3LCAwLjIxMTA2MSwgMC4yNjQ3MjMiLCBcCi0gICAgICAgICAgIjAuMDM1MDg5LCAwLjA3MzgwMSwgMC4xMTEzOTcsIDAuMTM4MjQ0LCAwLjE4MTE3LCAwLjIxODc0MiwgMC4yNzIzNjciLCBcCi0gICAgICAgICAgIjAuMDQyOTUyLCAwLjA4MTc5OCwgMC4xMTk0NiwgMC4xNDYyOTIsIDAuMTg5MjM4LCAwLjIyNjgwMSwgMC4yODA1NzIiLCBcCi0gICAgICAgICAgIjAuMDQ4NjE3LCAwLjA4Nzg5NiwgMC4xMjU0MzUsIDAuMTUyMjU4LCAwLjE5NTE4NSwgMC4yMzI3NDYsIDAuMjg2NDIxIiwgXAotICAgICAgICAgICIwLjA1MzE0MywgMC4wOTI3MDUsIDAuMTMwMjAxLCAwLjE1NzAxMSwgMC4xOTk4OTEsIDAuMjM3NDQxLCAwLjI5MTA3NyIsIFwKLSAgICAgICAgICAiMC4wNTkyMTEsIDAuMDk5MDk5LCAwLjEzNjY4OSwgMC4xNjM4MjEsIDAuMjA2Mzg1LCAwLjI0Mzk4LCAwLjI5NzYwNiIsIFwKLSAgICAgICAgICAiMC4wNjM2MDMsIDAuMTA0MTEyLCAwLjE0MTg1OSwgMC4xNjg3ODIsIDAuMjExMzc0LCAwLjI0ODg2LCAwLjMwMjUxMSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxODY4NiwgMC4wOTM4OTMsIDAuMTcwOTQzLCAwLjIyNjAwOSwgMC4zMTQ3ODIsIDAuMzkxODA3LCAwLjUwMjIwMSIsIFwKLSAgICAgICAgICAiMC4wMTg4ODYsIDAuMDkzOTMyLCAwLjE3MDk1MiwgMC4yMjU3NzcsIDAuMzE0ODIzLCAwLjM5MTQ4NiwgMC41MDI5NjciLCBcCi0gICAgICAgICAgIjAuMDIwMjY4LCAwLjA5NDE1NiwgMC4xNzA4NTEsIDAuMjI2MjksIDAuMzE0MTI0LCAwLjM5MTg0LCAwLjUwMjA1OCIsIFwKLSAgICAgICAgICAiMC4wMjE0OTgsIDAuMDk0NjUyLCAwLjE3MTAxMywgMC4yMjYzNzksIDAuMzE0NDYzLCAwLjM5MjI1LCAwLjUwMTk0OSIsIFwKLSAgICAgICAgICAiMC4wMjI2OSwgMC4wOTQ5ODcsIDAuMTcxMjY5LCAwLjIyNjU0NywgMC4zMTQ4NjIsIDAuMzkxODczLCAwLjUwMzExNiIsIFwKLSAgICAgICAgICAiMC4wMjQyNDMsIDAuMDk1OTMzLCAwLjE3MTQ3LCAwLjIyNjQ1OSwgMC4zMTUwMDksIDAuMzkyMzcyLCAwLjUwMzA2OCIsIFwKLSAgICAgICAgICAiMC4wMjU1ODYsIDAuMDk2NDY0LCAwLjE3MTczNCwgMC4yMjY0NDUsIDAuMzE0NjMyLCAwLjM5MjQ1OSwgMC41MDIxNzYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwODgzMiwgMC4wMDkwNzYsIDAuMDA5MTAyLCAwLjAwOTEwOCwgMC4wMDkxMjQsIDAuMDA5MTI4LCAwLjAwOTEzMiIsIFwKLSAgICAgICAgICAiMC4wMDg2ODgsIDAuMDA4OTQ2LCAwLjAwODk5NSwgMC4wMDkwMSwgMC4wMDkwMDMsIDAuMDA5MDE3LCAwLjAwOTAyIiwgXAotICAgICAgICAgICIwLjAwODc2NSwgMC4wMDkwMjUsIDAuMDA5MDgxLCAwLjAwOTA5NywgMC4wMDkxMTMsIDAuMDA5MTIsIDAuMDA5MTI4IiwgXAotICAgICAgICAgICIwLjAwOTA0NCwgMC4wMDkyNjMsIDAuMDA5MzIyLCAwLjAwOTMzOSwgMC4wMDkzNTcsIDAuMDA5MzY3LCAwLjAwOTM3NSIsIFwKLSAgICAgICAgICAiMC4wMDk1NTQsIDAuMDA5NjA1LCAwLjAwOTY1MywgMC4wMDk2NzIsIDAuMDA5NjkyLCAwLjAwOTcwMiwgMC4wMDk3MTQiLCBcCi0gICAgICAgICAgIjAuMDEwMzI0LCAwLjAxMDI4OCwgMC4wMTAzMzEsIDAuMDEwMzQzLCAwLjAxMDM1MywgMC4wMTAzNjIsIDAuMDEwMzc0IiwgXAotICAgICAgICAgICIwLjAxMDk5NCwgMC4wMTA5MTUsIDAuMDEwOTQ5LCAwLjAxMDk3OCwgMC4wMTA5OTUsIDAuMDExMDAyLCAwLjAxMTAwNCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE0MTM0LCAwLjAxNDQ2OCwgMC4wMTQ1MjQsIDAuMDE0NTQxLCAwLjAxNDU1NiwgMC4wMTQ1NjQsIDAuMDE0NTcyIiwgXAotICAgICAgICAgICIwLjAxNDA1NywgMC4wMTQzOTgsIDAuMDE0NDc1LCAwLjAxNDUwMSwgMC4wMTQ1MjUsIDAuMDE0NTM3LCAwLjAxNDU0OCIsIFwKLSAgICAgICAgICAiMC4wMTQ0OTksIDAuMDE0NzMyLCAwLjAxNDgwOSwgMC4wMTQ4MzcsIDAuMDE0ODY0LCAwLjAxNDg3NywgMC4wMTQ4OTEiLCBcCi0gICAgICAgICAgIjAuMDE0ODE4LCAwLjAxNTAwMiwgMC4wMTUwOTMsIDAuMDE1MTI1LCAwLjAxNTE2NywgMC4wMTUxNzUsIDAuMDE1MTkyIiwgXAotICAgICAgICAgICIwLjAxNTMxNiwgMC4wMTU0NDMsIDAuMDE1NTMsIDAuMDE1NTY1LCAwLjAxNTU5OSwgMC4wMTU2MTcsIDAuMDE1NjM2IiwgXAotICAgICAgICAgICIwLjAxNjI4LCAwLjAxNjI1OCwgMC4wMTYzMywgMC4wMTYzNjQsIDAuMDE2Mzk4LCAwLjAxNjQxOCwgMC4wMTY0MzUiLCBcCi0gICAgICAgICAgIjAuMDE3MTI1LCAwLjAxNzA0NSwgMC4wMTcwNzksIDAuMDE3MDk2LCAwLjAxNzE0OSwgMC4wMTcxNjcsIDAuMDE3MTg2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDg4MSwgMC4wMDkwNzUsIDAuMDA5MTEyLCAwLjAwOTEyNSwgMC4wMDkxMjksIDAuMDA5MTM4LCAwLjAwOTE0MyIsIFwKLSAgICAgICAgICAiMC4wMDg3NzYsIDAuMDA5MDMzLCAwLjAwOTA4NCwgMC4wMDkxMDEsIDAuMDA5MTE1LCAwLjAwOTEyMiwgMC4wMDkxMyIsIFwKLSAgICAgICAgICAiMC4wMDkxMDgsIDAuMDA5Mjg2LCAwLjAwOTM0LCAwLjAwOTM2OCwgMC4wMDkzODUsIDAuMDA5Mzk5LCAwLjAwOTQwOCIsIFwKLSAgICAgICAgICAiMC4wMDk2MjcsIDAuMDA5Njk1LCAwLjAwOTc1NywgMC4wMDk3NzQsIDAuMDA5ODAxLCAwLjAwOTgxNSwgMC4wMDk4MjEiLCBcCi0gICAgICAgICAgIjAuMDEwMTUyLCAwLjAxMDE1MiwgMC4wMTAyLCAwLjAxMDIxNywgMC4wMTAyNDQsIDAuMDEwMjUyLCAwLjAxMDI2NCIsIFwKLSAgICAgICAgICAiMC4wMTA5NjksIDAuMDExMDMsIDAuMDExMDE3LCAwLjAxMTA3NywgMC4wMTEwOTksIDAuMDExMDc3LCAwLjAxMTA3NyIsIFwKLSAgICAgICAgICAiMC4wMTE4NjIsIDAuMDExNzcyLCAwLjAxMTgyNCwgMC4wMTE4NTksIDAuMDExODE5LCAwLjAxMTg4MiwgMC4wMTE5MDciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMjEyNSwgMC4wMTI0OTMsIDAuMDEyNTQ4LCAwLjAxMjU2NSwgMC4wMTI1ODEsIDAuMDEyNTg5LCAwLjAxMjU5NiIsIFwKLSAgICAgICAgICAiMC4wMTE5OTgsIDAuMDEyMzYsIDAuMDEyNDM1LCAwLjAxMjQ2LCAwLjAxMjQ4MiwgMC4wMTI0OTMsIDAuMDEyNTA0IiwgXAotICAgICAgICAgICIwLjAxMjI4NiwgMC4wMTI1NjgsIDAuMDEyNjkzLCAwLjAxMjcyLCAwLjAxMjc0NCwgMC4wMTI3NTgsIDAuMDEyNzY5IiwgXAotICAgICAgICAgICIwLjAxMjc2OSwgMC4wMTI5NjIsIDAuMDEzMDQzLCAwLjAxMzA3NywgMC4wMTMxMDgsIDAuMDEzMTI2LCAwLjAxMzE0MiIsIFwKLSAgICAgICAgICAiMC4wMTMzMjEsIDAuMDEzMzc3LCAwLjAxMzQ2NSwgMC4wMTM0OTgsIDAuMDEzNTMyLCAwLjAxMzU1MiwgMC4wMTM1NyIsIFwKLSAgICAgICAgICAiMC4wMTQxMSwgMC4wMTQyMjUsIDAuMDE0MjgxLCAwLjAxNDM2NCwgMC4wMTQzNDEsIDAuMDE0NDE4LCAwLjAxNDQzOSIsIFwKLSAgICAgICAgICAiMC4wMTQ5MzksIDAuMDE1MDA2LCAwLjAxNTA4NSwgMC4wMTUxMjEsIDAuMDE1MTUzLCAwLjAxNTA5MywgMC4wMTUxMTQiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IENMS0JVRlgxMiAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKENMS0JVRlgxMikgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAxLjQ0NDE0OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDI0NTIyNjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDI0NTIxNjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDI0NTIyNjsKLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiA0LjExODExOwotICAgIGZ1bmN0aW9uIDogIkEiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyMzg2NCwgMC4wMjU5NzYsIDAuMDM2MDMsIDAuMDQ0MDk5LCAwLjA1NDY2NCwgMC4wNzU2MDcsIDAuMDg4Njg5IiwgXAotICAgICAgICAgICIwLjAzMjExNCwgMC4wMzQyMDMsIDAuMDQ0MjM1LCAwLjA1MjMwNywgMC4wNjI4NDgsIDAuMDgzODEsIDAuMDk2OTAyIiwgXAotICAgICAgICAgICIwLjA0MDU2NSwgMC4wNDI4MDYsIDAuMDUzMDAyLCAwLjA2MTE1OSwgMC4wNzE2OTgsIDAuMDkyNjM3LCAwLjEwNTcxNyIsIFwKLSAgICAgICAgICAiMC4wNDY4NzMsIDAuMDQ5MjQxLCAwLjA1OTkxNSwgMC4wNjgwOTEsIDAuMDc4Njc1LCAwLjA5OTUwMywgMC4xMTI2MDgiLCBcCi0gICAgICAgICAgIjAuMDUxOTIyLCAwLjA1NDQ3MiwgMC4wNjU0NjQsIDAuMDczNzQxLCAwLjA4NDMwNywgMC4xMDUyMDgsIDAuMTE4MjM3IiwgXAotICAgICAgICAgICIwLjA1ODU0OSwgMC4wNjEyNDksIDAuMDcyODMzLCAwLjA4MTI1NSwgMC4wOTE4MSwgMC4xMTI4MDEsIDAuMTI1ODc0IiwgXAotICAgICAgICAgICIwLjA2MzI5OSwgMC4wNjYxMzcsIDAuMDc4MzI2LCAwLjA4Njk3MywgMC4wOTc0OSwgMC4xMTg1MjEsIDAuMTMxNTc2Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxNDIzMSwgMC4wMTczNjUsIDAuMDM1MDEyLCAwLjA1MDkwNCwgMC4wNzIzNjgsIDAuMTE2MDYyLCAwLjE0MzU1OCIsIFwKLSAgICAgICAgICAiMC4wMTQ1MTMsIDAuMDE3NTk5LCAwLjAzNTEzLCAwLjA1MTAwMSwgMC4wNzI0NzMsIDAuMTE2MDk1LCAwLjE0MzYwOCIsIFwKLSAgICAgICAgICAiMC4wMTYyMzcsIDAuMDE5MzY4LCAwLjAzNjMxNCwgMC4wNTE4MDYsIDAuMDczMDAxLCAwLjExNjI0MSwgMC4xNDM3NiIsIFwKLSAgICAgICAgICAiMC4wMTc3OTQsIDAuMDIwODc3LCAwLjAzNzY3MywgMC4wNTI3ODcsIDAuMDczNjgzLCAwLjExNjY4OCwgMC4xNDM5MTEiLCBcCi0gICAgICAgICAgIjAuMDE5MjYsIDAuMDIyMjc2LCAwLjAzODgwNiwgMC4wNTM4NzcsIDAuMDc0NDg4LCAwLjExNzA4MSwgMC4xNDQyNSIsIFwKLSAgICAgICAgICAiMC4wMjExNCwgMC4wMjQzOSwgMC4wNDA2ODMsIDAuMDU1Mzg0LCAwLjA3NTc5OSwgMC4xMTc4NjcsIDAuMTQ0NzA1IiwgXAotICAgICAgICAgICIwLjAyMjYxOCwgMC4wMjU4NjMsIDAuMDQyNDY2LCAwLjA1NjgzNywgMC4wNzY4ODQsIDAuMTE4Nzc2LCAwLjE0NTI5NyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjUyMDEsIDAuMDI3MzI5LCAwLjAzNzYsIDAuMDQ1OTE2LCAwLjA1Njc0MywgMC4wNzgyNDQsIDAuMDkxNjYiLCBcCi0gICAgICAgICAgIjAuMDMzNDM5LCAwLjAzNTU0OSwgMC4wNDU3OTYsIDAuMDU0MTA1LCAwLjA2NDkxMSwgMC4wODY0MDksIDAuMDk5ODIzIiwgXAotICAgICAgICAgICIwLjA0MTcwMywgMC4wNDM5MTUsIDAuMDU0MzExLCAwLjA2MjY2NiwgMC4wNzM1MTgsIDAuMDk1MDQyLCAwLjEwODQ0OSIsIFwKLSAgICAgICAgICAiMC4wNDc4MDEsIDAuMDUwMTM5LCAwLjA2MDgxLCAwLjA2OTEyOSwgMC4wODAwNywgMC4xMDE2MTQsIDAuMTE1MDUxIiwgXAotICAgICAgICAgICIwLjA1MjYxNywgMC4wNTUwMiwgMC4wNjU5MjksIDAuMDc0MywgMC4wODUyNjEsIDAuMTA2ODczLCAwLjEyMDI3OSIsIFwKLSAgICAgICAgICAiMC4wNTg3OTQsIDAuMDYxNDMxLCAwLjA3MjgzNCwgMC4wODExNjcsIDAuMDkyMDQ4LCAwLjExMzcyNCwgMC4xMjY5MyIsIFwKLSAgICAgICAgICAiMC4wNjMyMDEsIDAuMDY1OTEsIDAuMDc3NTc0LCAwLjA4NjI5MiwgMC4wOTcyLCAwLjExODY0MSwgMC4xMzE4MzEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE0MTIsIDAuMDE3MjYyLCAwLjAzNDk3OCwgMC4wNTA5NDgsIDAuMDcyNDU5LCAwLjExNjI4OCwgMC4xNDM4MjEiLCBcCi0gICAgICAgICAgIjAuMDE0MjI5LCAwLjAxNzM4LCAwLjAzNTA3LCAwLjA1MTAwMSwgMC4wNzI1NjYsIDAuMTE2MzQ0LCAwLjE0MzgzNSIsIFwKLSAgICAgICAgICAiMC4wMTU3NzcsIDAuMDE4ODM3LCAwLjAzNjA2MywgMC4wNTE2OSwgMC4wNzMwMTYsIDAuMTE2NTUzLCAwLjE0Mzk5IiwgXAotICAgICAgICAgICIwLjAxNzMyOSwgMC4wMjAyOSwgMC4wMzcxOTEsIDAuMDUyNTY2LCAwLjA3MzY3MSwgMC4xMTY4MDUsIDAuMTQ0MTQxIiwgXAotICAgICAgICAgICIwLjAxODYwMiwgMC4wMjE3NTYsIDAuMDM4MjgzLCAwLjA1MzYyNSwgMC4wNzQyOTgsIDAuMTE3MjEyLCAwLjE0NDQ0IiwgXAotICAgICAgICAgICIwLjAyMDQzMiwgMC4wMjM2NDEsIDAuMDM5Nzc1LCAwLjA1NDk2NywgMC4wNzU0NiwgMC4xMTc3NzQsIDAuMTQ0Nzc5IiwgXAotICAgICAgICAgICIwLjAyMTczLCAwLjAyNDkwNiwgMC4wNDEwNzQsIDAuMDU1NzY2LCAwLjA3NjE0NiwgMC4xMTg0NzYsIDAuMTQ1Mjk0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE1NDU5LCAwLjAxNTU1LCAwLjAxNTg2NiwgMC4wMTU5ODksIDAuMDE2MDc1LCAwLjAxNjE1NSwgMC4wMTYxOCIsIFwKLSAgICAgICAgICAiMC4wMTU0NDEsIDAuMDE1NDc0LCAwLjAxNTcwNSwgMC4wMTU4MzMsIDAuMDE1OTM2LCAwLjAxNjAzNiwgMC4wMTYwODEiLCBcCi0gICAgICAgICAgIjAuMDE1OTAyLCAwLjAxNTg4NiwgMC4wMTU4OTgsIDAuMDE2MDExLCAwLjAxNjEwOCwgMC4wMTYyMjksIDAuMDE2MzA0IiwgXAotICAgICAgICAgICIwLjAxNjQ5NSwgMC4wMTY0MDYsIDAuMDE2MzM0LCAwLjAxNjM4OSwgMC4wMTY0NzEsIDAuMDE2NTIzLCAwLjAxNjU2OCIsIFwKLSAgICAgICAgICAiMC4wMTcyNDEsIDAuMDE3MDk3LCAwLjAxNjkwMSwgMC4wMTY5MjIsIDAuMDE2OTUzLCAwLjAxNjk1NiwgMC4wMTY5OTUiLCBcCi0gICAgICAgICAgIjAuMDE4Mzk1LCAwLjAxODMwOCwgMC4wMTc4ODYsIDAuMDE3ODEzLCAwLjAxNzcxNCwgMC4wMTc3NTYsIDAuMDE3NzY0IiwgXAotICAgICAgICAgICIwLjAxOTI3MiwgMC4wMTkwMjksIDAuMDE4ODY5LCAwLjAxODY0MywgMC4wMTg2MjgsIDAuMDE4NjIzLCAwLjAxODU3OSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxOTEwMywgMC4wMTkyMTIsIDAuMDE5NjA1LCAwLjAxOTc2NCwgMC4wMTk4OCwgMC4wMTk5OTIsIDAuMDIwMDI5IiwgXAotICAgICAgICAgICIwLjAxOTA1MiwgMC4wMTkxMDksIDAuMDE5NDIzLCAwLjAxOTU4NywgMC4wMTk3MjIsIDAuMDE5ODY2LCAwLjAxOTkxNyIsIFwKLSAgICAgICAgICAiMC4wMTk1MjEsIDAuMDE5NTA0LCAwLjAxOTY1NCwgMC4wMTk3OSwgMC4wMTk5MjEsIDAuMDIwMDY4LCAwLjAyMDEyNCIsIFwKLSAgICAgICAgICAiMC4wMjAxMDIsIDAuMDIwMDYxLCAwLjAyMDA2NCwgMC4wMjAwNjcsIDAuMDIwMTksIDAuMDIwMzM1LCAwLjAyMDM5NCIsIFwKLSAgICAgICAgICAiMC4wMjA4OCwgMC4wMjA5OTYsIDAuMDIwNzI4LCAwLjAyMDY1OSwgMC4wMjA1NzksIDAuMDIwODE1LCAwLjAyMDc2MyIsIFwKLSAgICAgICAgICAiMC4wMjE2MzMsIDAuMDIyLCAwLjAyMTM0OSwgMC4wMjE2ODcsIDAuMDIxNjQyLCAwLjAyMTUwNSwgMC4wMjE2NjgiLCBcCi0gICAgICAgICAgIjAuMDIyNjUxLCAwLjAyMjQ1MSwgMC4wMjIwOTgsIDAuMDIyMSwgMC4wMjIxMjMsIDAuMDIyMjA0LCAwLjAyMjI0NCIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogQ0xLQlVGWDE2ICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoQ0xLQlVGWDE2KSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDEuOTUxOTc7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMzIxODk7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAzMjE4Nzk7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAzMjE4OTsKLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiA1LjM0MDA0OwotICAgIGZ1bmN0aW9uIDogIkEiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyMjUwNSwgMC4wMjQxOTQsIDAuMDMyMTMxLCAwLjAzODM3NCwgMC4wNDYzODIsIDAuMDYyMTg0LCAwLjA3MjAzMyIsIFwKLSAgICAgICAgICAiMC4wMzA3ODcsIDAuMDMyNDY4LCAwLjA0MDM3NSwgMC4wNDY1ODYsIDAuMDU0NjE3LCAwLjA3MDQxMiwgMC4wODAyNjMiLCBcCi0gICAgICAgICAgIjAuMDM5MTIyLCAwLjA0MDkzMywgMC4wNDkxMzYsIDAuMDU1NDI5LCAwLjA2MzQ3LCAwLjA3OTMwNSwgMC4wODkxODQiLCBcCi0gICAgICAgICAgIjAuMDQ1MTk0LCAwLjA0NzE0LCAwLjA1NTc0NCwgMC4wNjIxNDcsIDAuMDcwMTc0LCAwLjA4NjA3OSwgMC4wOTU5MzYiLCBcCi0gICAgICAgICAgIjAuMDUwMTQ5LCAwLjA1MjIwNywgMC4wNjEwOTYsIDAuMDY3NTk0LCAwLjA3NTY0NywgMC4wOTE1MzEsIDAuMTAxMzc3IiwgXAotICAgICAgICAgICIwLjA1NjUyOSwgMC4wNTg3MzMsIDAuMDY4MjYyLCAwLjA3NDk3NywgMC4wODMxNSwgMC4wOTkwNDgsIDAuMTA4ODc1IiwgXAotICAgICAgICAgICIwLjA2MTI4NiwgMC4wNjM1ODYsIDAuMDczNTY4LCAwLjA4MDQ4MiwgMC4wODg3NDQsIDAuMTA0NTYsIDAuMTE0NDY1Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMjc2MiwgMC4wMTUxNSwgMC4wMjg0MzYsIDAuMDQwMjM1LCAwLjA1NjI4NiwgMC4wODg4MzgsIDAuMTA5NDM0IiwgXAotICAgICAgICAgICIwLjAxMzA2MSwgMC4wMTU0MTgsIDAuMDI4NTgsIDAuMDQwMzQsIDAuMDU2MzcyLCAwLjA4ODg5MiwgMC4xMDk0NTUiLCBcCi0gICAgICAgICAgIjAuMDE0NzgxLCAwLjAxNzExOCwgMC4wMjk4NywgMC4wNDEzMywgMC4wNTcwMzIsIDAuMDg5MjUxLCAwLjEwOTcxNyIsIFwKLSAgICAgICAgICAiMC4wMTY0MDMsIDAuMDE4NzYxLCAwLjAzMTM0OCwgMC4wNDI2MSwgMC4wNTc5MzEsIDAuMDg5ODUzLCAwLjExMDA5NSIsIFwKLSAgICAgICAgICAiMC4wMTc3MjcsIDAuMDIwMTYyLCAwLjAzMjYyMSwgMC4wNDM3MDEsIDAuMDU5MDYzLCAwLjA5MDQ1OSwgMC4xMTA1MTQiLCBcCi0gICAgICAgICAgIjAuMDE5NjU2LCAwLjAyMjE3NSwgMC4wMzQ2MzEsIDAuMDQ1NDQyLCAwLjA2MDQ3NywgMC4wOTE2MiwgMC4xMTE0NDgiLCBcCi0gICAgICAgICAgIjAuMDIxMjAxLCAwLjAyMzgzOCwgMC4wMzYzNzQsIDAuMDQ3MTkyLCAwLjA2MTg1NywgMC4wOTI0ODYsIDAuMTEyMjkyIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyMzc3MiwgMC4wMjU0NDIsIDAuMDMzNTQsIDAuMDM5OTU2LCAwLjA0ODIxOCwgMC4wNjQ0NzUsIDAuMDc0NTk5IiwgXAotICAgICAgICAgICIwLjAzMTk0NSwgMC4wMzM2MDksIDAuMDQxNjgxLCAwLjA0ODA3OSwgMC4wNTYzMzMsIDAuMDcyNjA5LCAwLjA4MjczMiIsIFwKLSAgICAgICAgICAiMC4wNDAyMDIsIDAuMDQxOTQyLCAwLjA1MDE4NSwgMC4wNTY2MTIsIDAuMDY0ODk1LCAwLjA4MTE3LCAwLjA5MTI4MyIsIFwKLSAgICAgICAgICAiMC4wNDU4OTMsIDAuMDQ3ODAyLCAwLjA1NjI4NiwgMC4wNjI4MDIsIDAuMDcxMTM2LCAwLjA4NzQ4MywgMC4wOTc2MTYiLCBcCi0gICAgICAgICAgIjAuMDUwNjEsIDAuMDUyNTY0LCAwLjA2MTMyLCAwLjA2NzkwMSwgMC4wNzYyMDcsIDAuMDkyNjEzLCAwLjEwMjc5MiIsIFwKLSAgICAgICAgICAiMC4wNTY2MzgsIDAuMDU4NzI5LCAwLjA2NzkxNywgMC4wNzQ2MzIsIDAuMDgzMTczLCAwLjA5OTQyNiwgMC4xMDk1MyIsIFwKLSAgICAgICAgICAiMC4wNjA5NjYsIDAuMDYzMTc0LCAwLjA3Mjg3NiwgMC4wNzk2NzQsIDAuMDg3ODg3LCAwLjEwNDM5MywgMC4xMTQzNzMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEyNjI2LCAwLjAxNTA0NCwgMC4wMjg1NDcsIDAuMDQwNTg4LCAwLjA1Njg3NiwgMC4wODk5MTMsIDAuMTEwNzE3IiwgXAotICAgICAgICAgICIwLjAxMjgwNSwgMC4wMTUxOTksIDAuMDI4NjUxLCAwLjA0MDY2LCAwLjA1NjkyMywgMC4wODk5NjMsIDAuMTEwODY2IiwgXAotICAgICAgICAgICIwLjAxNDM0MSwgMC4wMTY2OTgsIDAuMDI5NzY0LCAwLjA0MTUxOSwgMC4wNTc1NjcsIDAuMDkwMzM1LCAwLjExMTEzIiwgXAotICAgICAgICAgICIwLjAxNTk3NiwgMC4wMTgzNDgsIDAuMDMxMDQ0LCAwLjA0MjU2NywgMC4wNTgzNzMsIDAuMDkwODQyLCAwLjExMTQxNCIsIFwKLSAgICAgICAgICAiMC4wMTcwODcsIDAuMDE5NDk2LCAwLjAzMjI0NCwgMC4wNDM1NzIsIDAuMDU5MjQ4LCAwLjA5MTI1NSwgMC4xMTE4MTgiLCBcCi0gICAgICAgICAgIjAuMDE4OTM4LCAwLjAyMTM3MiwgMC4wMzQwMDMsIDAuMDQ1MDcxLCAwLjA2MDI4LCAwLjA5MjI0NiwgMC4xMTI0ODMiLCBcCi0gICAgICAgICAgIjAuMDIwMTksIDAuMDIyNjM2LCAwLjAzNTI0MSwgMC4wNDYxNzUsIDAuMDYxNjA2LCAwLjA5Mjk0NywgMC4xMTMyMTEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjAxMDMsIDAuMDIwMTkyLCAwLjAyMDU1MiwgMC4wMjA3MjQsIDAuMDIwODUxLCAwLjAyMDk2MiwgMC4wMjEwMTUiLCBcCi0gICAgICAgICAgIjAuMDIwMDgsIDAuMDIwMTE2LCAwLjAyMDMzOCwgMC4wMjA0OTQsIDAuMDIwNjMyLCAwLjAyMDgsIDAuMDIwODIzIiwgXAotICAgICAgICAgICIwLjAyMDU4OCwgMC4wMjA1NiwgMC4wMjA2MTEsIDAuMDIwNzMxLCAwLjAyMDg1NywgMC4wMjEwMDcsIDAuMDIxMDQ5IiwgXAotICAgICAgICAgICIwLjAyMTU0NywgMC4wMjE0MTQsIDAuMDIxMjU0LCAwLjAyMTMzMywgMC4wMjE0MDcsIDAuMDIxNTE4LCAwLjAyMTU5NiIsIFwKLSAgICAgICAgICAiMC4wMjIyODYsIDAuMDIyMTE3LCAwLjAyMjExNCwgMC4wMjIwODYsIDAuMDIyMDAyLCAwLjAyMjEyMywgMC4wMjIxNjEiLCBcCi0gICAgICAgICAgIjAuMDI0Mzk2LCAwLjAyNDA5LCAwLjAyMzQ0NywgMC4wMjMyOTgsIDAuMDIzMTE2LCAwLjAyMzE4MiwgMC4wMjMyMjIiLCBcCi0gICAgICAgICAgIjAuMDI2MDQsIDAuMDI1NjUsIDAuMDI0NzUyLCAwLjAyNDYxOSwgMC4wMjQ0ODksIDAuMDI0NDA0LCAwLjAyNDI5MyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyNTExNiwgMC4wMjUyMzQsIDAuMDI1NzQ1LCAwLjAyNTk4NSwgMC4wMjYxNjgsIDAuMDI2MzUyLCAwLjAyNjQxNiIsIFwKLSAgICAgICAgICAiMC4wMjUxMDEsIDAuMDI1MTU5LCAwLjAyNTUwNCwgMC4wMjU3MzMsIDAuMDI1OTM0LCAwLjAyNjE1OCwgMC4wMjYyNDMiLCBcCi0gICAgICAgICAgIjAuMDI1NjQ3LCAwLjAyNTYxMiwgMC4wMjU3ODgsIDAuMDI2MDA5LCAwLjAyNjE3MywgMC4wMjYzNjcsIDAuMDI2NDY1IiwgXAotICAgICAgICAgICIwLjAyNjg4NiwgMC4wMjY3NjQsIDAuMDI2NTc2LCAwLjAyNjYwNywgMC4wMjY2NDQsIDAuMDI2ODM0LCAwLjAyNjkxOCIsIFwKLSAgICAgICAgICAiMC4wMjczMzQsIDAuMDI3MjM4LCAwLjAyNzI3OSwgMC4wMjcyNDEsIDAuMDI3MjU0LCAwLjAyNzM4NCwgMC4wMjc0NTEiLCBcCi0gICAgICAgICAgIjAuMDI4NzAxLCAwLjAyODUxMiwgMC4wMjg1ODIsIDAuMDI4NDM3LCAwLjAyODI2OSwgMC4wMjgyOTEsIDAuMDI4NDUiLCBcCi0gICAgICAgICAgIjAuMDMwMTMzLCAwLjAyOTgwNiwgMC4wMjkyNjIsIDAuMDI5MTE2LCAwLjAyOTUyMywgMC4wMjkyMjYsIDAuMDI5NTA3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IENMS0JVRlgyICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChDTEtCVUZYMikgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjI1ODgyOTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjY2NzYyOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDY2Njc2MjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2NjY3NDM7Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC42OTk1NzE7Ci0gICAgZnVuY3Rpb24gOiAiQSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM2MjQ3LCAwLjExMzQ5MywgMC4xNzUxLCAwLjI1MjI1MiwgMC4zMjk0NSwgMC40MDY1MTcsIDAuNDgzNTU5IiwgXAotICAgICAgICAgICIwLjA0NDI5LCAwLjEyMTUzMiwgMC4xODMyMjMsIDAuMjYwMjksIDAuMzM3NDc0LCAwLjQxNDQ3LCAwLjQ5MTU0OCIsIFwKLSAgICAgICAgICAiMC4wNTI1MjgsIDAuMTI5NzEyLCAwLjE5MTM3NywgMC4yNjg1ODUsIDAuMzQ1NzMyLCAwLjQyMjYzNSwgMC40OTk3NjUiLCBcCi0gICAgICAgICAgIjAuMDU4NTQ3LCAwLjEzNTkwMywgMC4xOTc1NjksIDAuMjc0ODI0LCAwLjM1MTkwMywgMC40Mjg5OTgsIDAuNTA1OTUyIiwgXAotICAgICAgICAgICIwLjA2MzQ3NywgMC4xNDA3NTUsIDAuMjAyMzksIDAuMjc5NDQ1LCAwLjM1NjUxMiwgMC40MzM1NzUsIDAuNTExMDQiLCBcCi0gICAgICAgICAgIjAuMDcwMjUzLCAwLjE0NzgxMiwgMC4yMDkzODUsIDAuMjg2MTQ1LCAwLjM2MzE3MSwgMC40NDA1MzEsIDAuNTE3NDAyIiwgXAotICAgICAgICAgICIwLjA3NTA3NywgMC4xNTI1MjEsIDAuMjE0MDczLCAwLjI5MTA0NiwgMC4zNjgyMTMsIDAuNDQ1MTcxLCAwLjUyMjQxNiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzg4NSwgMC4xOTk2MywgMC4zMjkzODMsIDAuNDkyMTc1LCAwLjY1NDU2NSwgMC44MTcwNCwgMC45NzkzNzMiLCBcCi0gICAgICAgICAgIjAuMDM5MDQ0LCAwLjE5OTk2MiwgMC4zMjk3NzQsIDAuNDkxOTQ1LCAwLjY1NDU4MywgMC44MTY2NjMsIDAuOTc5MDU1IiwgXAotICAgICAgICAgICIwLjA0MDA2NywgMC4xOTk5NTMsIDAuMzMwMDc5LCAwLjQ5MjAxNCwgMC42NTQ1NTEsIDAuODE2NzE4LCAwLjk4MDUwNCIsIFwKLSAgICAgICAgICAiMC4wNDE0MDYsIDAuMjAwMDUxLCAwLjMyOTc0OCwgMC40OTIxNjEsIDAuNjU0NTYzLCAwLjgxNzA4MSwgMC45Nzk0OTQiLCBcCi0gICAgICAgICAgIjAuMDQyNDk3LCAwLjE5OTkxOCwgMC4zMzAxOCwgMC40OTI4NSwgMC42NTQ2ODUsIDAuODE3ODA0LCAwLjk3OTM3MyIsIFwKLSAgICAgICAgICAiMC4wNDQyMTMsIDAuMjAwMjEzLCAwLjMyOTc3OCwgMC40OTI4NzEsIDAuNjU1NTUxLCAwLjgxNzEyLCAwLjk3OTc5NSIsIFwKLSAgICAgICAgICAiMC4wNDU3MDgsIDAuMjAwNDYxLCAwLjMyOTk3NSwgMC40OTIxODMsIDAuNjU0Mjg1LCAwLjgxNzM2NCwgMC45NzkwNDkiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM4MTA0LCAwLjExNDIsIDAuMTc0ODUsIDAuMjUwNjkzLCAwLjMyNjM3NCwgMC40MDIxMTYsIDAuNDc3OTI5IiwgXAotICAgICAgICAgICIwLjA0NjAzMSwgMC4xMjIxMTgsIDAuMTgyNzg1LCAwLjI1ODU1NSwgMC4zMzQzNzgsIDAuNDEwMTUsIDAuNDg1OTU1IiwgXAotICAgICAgICAgICIwLjA1NDE1NywgMC4xMzAzNjcsIDAuMTkwOTk3LCAwLjI2NjgzNSwgMC4zNDI2MDEsIDAuNDE4MzExLCAwLjQ5NDEzNiIsIFwKLSAgICAgICAgICAiMC4wNjAxNjUsIDAuMTM2MjkxLCAwLjE5Njg4MywgMC4yNzI2MzksIDAuMzQ4NDQzLCAwLjQyNDQ4OCwgMC41MDAwNjIiLCBcCi0gICAgICAgICAgIjAuMDY0OTUzLCAwLjE0MTExOSwgMC4yMDE3MDMsIDAuMjc3NTE3LCAwLjM1MzIzOSwgMC40MjkxNjYsIDAuNTA0OTA4IiwgXAotICAgICAgICAgICIwLjA3MTQyOSwgMC4xNDc0NTIsIDAuMjA3OTc5LCAwLjI4MzY5OSwgMC4zNTk0NjYsIDAuNDM1MjM2LCAwLjUxMTAxIiwgXAotICAgICAgICAgICIwLjA3NjA2NCwgMC4xNTIyNSwgMC4yMTI5MDMsIDAuMjg4NDk0LCAwLjM2NDIyOCwgMC40NDAwNzgsIDAuNTE1OTc2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzODA0NywgMC4xOTM2NzYsIDAuMzE4OTg1LCAwLjQ3NjI2MSwgMC42MzQ4MjEsIDAuNzkyNDA2LCAwLjk0Nzg5OCIsIFwKLSAgICAgICAgICAiMC4wMzgwOTcsIDAuMTkzNjU4LCAwLjMxODk0OCwgMC40NzcwOTgsIDAuNjM0MTI4LCAwLjc5MTA1MSwgMC45NDgyODIiLCBcCi0gICAgICAgICAgIjAuMDM5MTI0LCAwLjE5MzQwOSwgMC4zMTkyNDIsIDAuNDc2Njc3LCAwLjYzMzYzNSwgMC43OTA3NTksIDAuOTQ4Mzk4IiwgXAotICAgICAgICAgICIwLjA0MDE5OSwgMC4xOTM5NDUsIDAuMzE5MDY0LCAwLjQ3NzIzNywgMC42MzM0MDEsIDAuNzkxMTQ0LCAwLjk0ODI1IiwgXAotICAgICAgICAgICIwLjA0MTIxNCwgMC4xOTQwODQsIDAuMzE5Nzk5LCAwLjQ3NjY4MywgMC42MzMzNjcsIDAuNzkwOTAzLCAwLjk0ODQ4NCIsIFwKLSAgICAgICAgICAiMC4wNDI1MjIsIDAuMTk0MTE3LCAwLjMxOTgxNCwgMC40NzY2NzMsIDAuNjM0OTAzLCAwLjc5MTM5MiwgMC45NDk3NTYiLCBcCi0gICAgICAgICAgIjAuMDQzNzA5LCAwLjE5NDI2MiwgMC4zMTk1NTMsIDAuNDc3MTgxLCAwLjYzNDY3LCAwLjc5MDY4OSwgMC45NDgzMDEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI2NDEsIDAuMDAyNjc3LCAwLjAwMjY4LCAwLjAwMjY3NywgMC4wMDI2ODMsIDAuMDAyNjg0LCAwLjAwMjY4NCIsIFwKLSAgICAgICAgICAiMC4wMDI2NTIsIDAuMDAyNjg5LCAwLjAwMjY5MywgMC4wMDI2OTYsIDAuMDAyNjk4LCAwLjAwMjY5OSwgMC4wMDI2OTkiLCBcCi0gICAgICAgICAgIjAuMDAyNjk4LCAwLjAwMjczNSwgMC4wMDI3NDIsIDAuMDAyNzQ2LCAwLjAwMjc0OCwgMC4wMDI3NSwgMC4wMDI3NDkiLCBcCi0gICAgICAgICAgIjAuMDAyODA5LCAwLjAwMjgzNCwgMC4wMDI4NCwgMC4wMDI4NDQsIDAuMDAyODQ2LCAwLjAwMjg0NywgMC4wMDI4NDgiLCBcCi0gICAgICAgICAgIjAuMDAyOTQzLCAwLjAwMjk0NywgMC4wMDI5NTIsIDAuMDAyOTU1LCAwLjAwMjk1OCwgMC4wMDI5NTgsIDAuMDAyOTU5IiwgXAotICAgICAgICAgICIwLjAwMzE1NywgMC4wMDMxMzgsIDAuMDAzMTQxLCAwLjAwMzE1MSwgMC4wMDMxNTEsIDAuMDAzMTUxLCAwLjAwMzE0MiIsIFwKLSAgICAgICAgICAiMC4wMDMzNiwgMC4wMDMzMzQsIDAuMDAzMzM2LCAwLjAwMzMzNiwgMC4wMDMzMzUsIDAuMDAzMzM1LCAwLjAwMzMyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzY4MywgMC4wMDM3MzksIDAuMDAzNzQ2LCAwLjAwMzc0OSwgMC4wMDM3NTEsIDAuMDAzNzUyLCAwLjAwMzc1MiIsIFwKLSAgICAgICAgICAiMC4wMDM2NjgsIDAuMDAzNzM4LCAwLjAwMzc0NywgMC4wMDM3NTIsIDAuMDAzNzU1LCAwLjAwMzc1NywgMC4wMDM3NTgiLCBcCi0gICAgICAgICAgIjAuMDAzNzMxLCAwLjAwMzc5OSwgMC4wMDM4MSwgMC4wMDM4MTYsIDAuMDAzODE5LCAwLjAwMzgyMSwgMC4wMDM4MjMiLCBcCi0gICAgICAgICAgIjAuMDAzODUsIDAuMDAzODg4LCAwLjAwMzg5OSwgMC4wMDM5MDYsIDAuMDAzOTA5LCAwLjAwMzkxMiwgMC4wMDM5MTMiLCBcCi0gICAgICAgICAgIjAuMDAzOTkzLCAwLjAwNDAwMSwgMC4wMDQwMDksIDAuMDA0MDA1LCAwLjAwNDAxNywgMC4wMDQwMTksIDAuMDA0MDIiLCBcCi0gICAgICAgICAgIjAuMDA0MTUsIDAuMDA0MTk5LCAwLjAwNDIwMywgMC4wMDQyMDYsIDAuMDA0MjA4LCAwLjAwNDIwOSwgMC4wMDQyMDkiLCBcCi0gICAgICAgICAgIjAuMDA0MzQzLCAwLjAwNDM2LCAwLjAwNDM2NiwgMC4wMDQzNjYsIDAuMDA0MzY4LCAwLjAwNDM3LCAwLjAwNDM3NyIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogQ0xLQlVGWDIwICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoQ0xLQlVGWDIwKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDIuNDMzMzI7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwNDAyMjk1OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwNDAyMjk1OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwNDAyMjg3OwotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDYuODIxMzU7Ci0gICAgZnVuY3Rpb24gOiAiQSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDIyNDU2LCAwLjAzMjI2NCwgMC4wMzg5NjcsIDAuMDQ3MDA3LCAwLjA1NDk1MiwgMC4wNjI4NTEsIDAuMDcwNzUxIiwgXAotICAgICAgICAgICIwLjAzMDcyLCAwLjA0MDUxMywgMC4wNDcxOTksIDAuMDU1MjM2LCAwLjA2MzE4NCwgMC4wNzEwOTYsIDAuMDc4OTg4IiwgXAotICAgICAgICAgICIwLjAzOTAxNCwgMC4wNDkyMzksIDAuMDU1OTY1LCAwLjA2NDAyOCwgMC4wNzE5NjUsIDAuMDc5ODY0LCAwLjA4Nzc1OCIsIFwKLSAgICAgICAgICAiMC4wNDUxNjksIDAuMDU1OTc4LCAwLjA2MjgyNiwgMC4wNzA5MDMsIDAuMDc4ODY1LCAwLjA4Njc3NCwgMC4wOTQ2NzEiLCBcCi0gICAgICAgICAgIjAuMDUwMTQsIDAuMDYxNTE2LCAwLjA2ODQ2NywgMC4wNzY2MTMsIDAuMDg0NTE2LCAwLjA5MjQzNiwgMC4xMDA0NTQiLCBcCi0gICAgICAgICAgIjAuMDU2NTI1LCAwLjA2ODY4NiwgMC4wNzU4OTUsIDAuMDg0MTA0LCAwLjA5MjA5MSwgMC4xMDAwNSwgMC4xMDc5NDUiLCBcCi0gICAgICAgICAgIjAuMDYxMzA3LCAwLjA3NDE0NiwgMC4wODE1NjQsIDAuMDg5Njk2LCAwLjA5NzcyNCwgMC4xMDU2OTIsIDAuMTEzNDI1Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMjI0NiwgMC4wMjgwMTgsIDAuMDQwNjQ4LCAwLjA1Njc1MiwgMC4wNzMwMzMsIDAuMDg5NDIxLCAwLjEwNTg5MSIsIFwKLSAgICAgICAgICAiMC4wMTI1NDcsIDAuMDI4MTU4LCAwLjA0MDc3LCAwLjA1Njc5LCAwLjA3MzA4NCwgMC4wODk0NSwgMC4xMDU5ODgiLCBcCi0gICAgICAgICAgIjAuMDE0MjQyLCAwLjAyOTQ0MiwgMC4wNDE3NywgMC4wNTc1MzEsIDAuMDczNjA3LCAwLjA4OTc4LCAwLjEwNjIxNyIsIFwKLSAgICAgICAgICAiMC4wMTU4NTksIDAuMDMwOTEyLCAwLjA0Mjk1MiwgMC4wNTg0NTgsIDAuMDc0MzQzLCAwLjA5MDQ3NywgMC4xMDY3MDEiLCBcCi0gICAgICAgICAgIjAuMDE3MTcsIDAuMDMyMzQ0LCAwLjA0NDA5NSwgMC4wNTk0NSwgMC4wNzUxMjYsIDAuMDkxMDMzLCAwLjEwNzI5OSIsIFwKLSAgICAgICAgICAiMC4wMTg5ODIsIDAuMDM0MzY2LCAwLjA0NTg5NiwgMC4wNjA5NjUsIDAuMDc2MzU5LCAwLjA5MjE1NSwgMC4xMDgxMTciLCBcCi0gICAgICAgICAgIjAuMDIwMzY1LCAwLjAzNTkxNCwgMC4wNDczMTQsIDAuMDYyMjU4LCAwLjA3NzU0MiwgMC4wOTMwNDUsIDAuMTA5MDA5Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyMzcsIDAuMDMzNjM5LCAwLjA0MDUwMiwgMC4wNDg3NjgsIDAuMDU2OTA4LCAwLjA2NTAyLCAwLjA3MzEwOSIsIFwKLSAgICAgICAgICAiMC4wMzE5MDMsIDAuMDQxODEsIDAuMDQ4NjY3LCAwLjA1NjkwOSwgMC4wNjUwNjEsIDAuMDczMTY4LCAwLjA4MTI1NiIsIFwKLSAgICAgICAgICAiMC4wNDAyNTYsIDAuMDUwMzQ1LCAwLjA1NzMxLCAwLjA2NTU4MiwgMC4wNzM3MDksIDAuMDgxODIzLCAwLjA4OTg5NCIsIFwKLSAgICAgICAgICAiMC4wNDYyMDUsIDAuMDU2ODA3LCAwLjA2MzgwNCwgMC4wNzIxMzQsIDAuMDgwMjczLCAwLjA4ODQwNSwgMC4wOTY1MTEiLCBcCi0gICAgICAgICAgIjAuMDUwOTE3LCAwLjA2MTkyMiwgMC4wNjg5NjgsIDAuMDc3MjM5LCAwLjA4NTQ2MiwgMC4wOTM2MDcsIDAuMTAxNzU1IiwgXAotICAgICAgICAgICIwLjA1Njg1NSwgMC4wNjg1MywgMC4wNzU2MTksIDAuMDgzOTYsIDAuMDkyMTM5LCAwLjEwMDIxOSwgMC4xMDgzNjMiLCBcCi0gICAgICAgICAgIjAuMDYxMjExLCAwLjA3MzQxMSwgMC4wODA3NSwgMC4wODkwMTksIDAuMDk3MzEzLCAwLjEwNTQ1LCAwLjExMzUzNyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTIwODYsIDAuMDI3ODU2LCAwLjA0MDU1OSwgMC4wNTY2MywgMC4wNzI5MzMsIDAuMDg5MzAyLCAwLjEwNTg2OSIsIFwKLSAgICAgICAgICAiMC4wMTIyMiwgMC4wMjc5NTcsIDAuMDQwNjE2LCAwLjA1NjcxNCwgMC4wNzI5OTgsIDAuMDg5NDYzLCAwLjEwNTk4NSIsIFwKLSAgICAgICAgICAiMC4wMTM3NywgMC4wMjkxNjUsIDAuMDQxNTM0LCAwLjA1NzM2MSwgMC4wNzM0NjksIDAuMDg5NzQ4LCAwLjEwNjI0OSIsIFwKLSAgICAgICAgICAiMC4wMTUzMSwgMC4wMzAyODUsIDAuMDQyNTM0LCAwLjA1ODIyMywgMC4wNzQxMjQsIDAuMDkwMjk0LCAwLjEwNjU2OSIsIFwKLSAgICAgICAgICAiMC4wMTY1MjQsIDAuMDMxNTMsIDAuMDQzNDgzLCAwLjA1OTExLCAwLjA3NDc0LCAwLjA5MDc0NywgMC4xMDY4OTciLCBcCi0gICAgICAgICAgIjAuMDE4MzcxLCAwLjAzMzE0NCwgMC4wNDUwNjIsIDAuMDYwMzcxLCAwLjA3NTkyMSwgMC4wOTE4MTUsIDAuMTA3ODAyIiwgXAotICAgICAgICAgICIwLjAxOTczMiwgMC4wMzQ2OTEsIDAuMDQ2MjEyLCAwLjA2MTM1LCAwLjA3Njc3MiwgMC4wOTI0MjUsIDAuMTA4NDIyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDI2MDMsIDAuMDI2NjUyLCAwLjAyNjg5NSwgMC4wMjcwNjIsIDAuMDI3MTYsIDAuMDI3MjM4LCAwLjAyNzI3MSIsIFwKLSAgICAgICAgICAiMC4wMjYwMzUsIDAuMDI2MzY0LCAwLjAyNjU4NiwgMC4wMjY3NjYsIDAuMDI2ODg1LCAwLjAyNjk0OSwgMC4wMjcwMyIsIFwKLSAgICAgICAgICAiMC4wMjcwMTYsIDAuMDI2OSwgMC4wMjY5NjMsIDAuMDI3MTIzLCAwLjAyNzIyMSwgMC4wMjczMTgsIDAuMDI3Mzc2IiwgXAotICAgICAgICAgICIwLjAyODA4OSwgMC4wMjc2MTUsIDAuMDI3NjcsIDAuMDI3NjU0LCAwLjAyNzczNCwgMC4wMjc4MSwgMC4wMjc4OTQiLCBcCi0gICAgICAgICAgIjAuMDI5MjYsIDAuMDI4NDc3LCAwLjAyODQzNywgMC4wMjg1MDQsIDAuMDI4NDU2LCAwLjAyODUxOCwgMC4wMjg2NzciLCBcCi0gICAgICAgICAgIjAuMDMxMDM3LCAwLjAzMDQwOSwgMC4wMzAxNzEsIDAuMDI5ODA3LCAwLjAyOTk2NiwgMC4wMjk4OTYsIDAuMDMwMDQyIiwgXAotICAgICAgICAgICIwLjAzMjc3OSwgMC4wMzE3OTMsIDAuMDMxNTA0LCAwLjAzMTM1MSwgMC4wMzEyNjksIDAuMDMxMjIyLCAwLjAzMTI4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDMxODA0LCAwLjAzMjU4MiwgMC4wMzI4OTgsIDAuMDMzMTIzLCAwLjAzMzI1OCwgMC4wMzMzNDksIDAuMDMzNDE0IiwgXAotICAgICAgICAgICIwLjAzMTc5NCwgMC4wMzIyOCwgMC4wMzI1ODUsIDAuMDMyODI3LCAwLjAzMjk5MiwgMC4wMzMxMDgsIDAuMDMzMTkzIiwgXAotICAgICAgICAgICIwLjAzMjUxMSwgMC4wMzI3NTQsIDAuMDMyOTYyLCAwLjAzMzE2MSwgMC4wMzMyOTMsIDAuMDMzMzk5LCAwLjAzMzQ4OCIsIFwKLSAgICAgICAgICAiMC4wMzM4MDUsIDAuMDMzNDgsIDAuMDMzNjI3LCAwLjAzMzY3LCAwLjAzMzgwNCwgMC4wMzM5MDEsIDAuMDMzOTkxIiwgXAotICAgICAgICAgICIwLjAzNDg2MywgMC4wMzQ1MzEsIDAuMDM0NTEzLCAwLjAzNDQwMywgMC4wMzQ1MTksIDAuMDM0NTE2LCAwLjAzNDY3IiwgXAotICAgICAgICAgICIwLjAzNjQ3MywgMC4wMzU2MzksIDAuMDM1OTIxLCAwLjAzNjIzNiwgMC4wMzYxOTIsIDAuMDM2MTY1LCAwLjAzNjE5OSIsIFwKLSAgICAgICAgICAiMC4wMzgxMDEsIDAuMDM3MTE0LCAwLjAzNjc3NywgMC4wMzcyODYsIDAuMDM2ODExLCAwLjAzNjkwOCwgMC4wMzY5NjgiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogQ0xLQlVGWDQgKgotICogLS0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKENMS0JVRlg0KSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuNDcwOTMyOwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA5NTE3NjU7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwOTUxNjYyOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDk1MTc2NTsKLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAxLjM2NjU4OwotICAgIGZ1bmN0aW9uIDogIkEiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDMwMzc1LCAwLjA4NTk0OCwgMC4xNDA2ODYsIDAuMTc5Nzg5LCAwLjI0MjUwMSwgMC4yOTcyNjIsIDAuMzc1NjE3IiwgXAotICAgICAgICAgICIwLjAzODYzLCAwLjA5NDE2OSwgMC4xNDkwMTUsIDAuMTg4MTE3LCAwLjI1MDcxOCwgMC4zMDU2NzIsIDAuMzgzOTM0IiwgXAotICAgICAgICAgICIwLjA0NzU1NSwgMC4xMDMyMzEsIDAuMTU4MDAxLCAwLjE5NzIwNSwgMC4yNTk3NjksIDAuMzE0Nzc0LCAwLjM5MjkwOCIsIFwKLSAgICAgICAgICAiMC4wNTQxNywgMC4xMTAwMywgMC4xNjQ3NzUsIDAuMjAzOTA3LCAwLjI2NjU1OCwgMC4zMjE1NDIsIDAuMzk5Nzk2IiwgXAotICAgICAgICAgICIwLjA1OTU0OSwgMC4xMTU4LCAwLjE3MDUxNSwgMC4yMDk2MTYsIDAuMjcyMjc0LCAwLjMyNzEyMSwgMC40MDUyNjkiLCBcCi0gICAgICAgICAgIjAuMDY2NzEsIDAuMTIzNDkzLCAwLjE3ODE1OCwgMC4yMTcyNDEsIDAuMjc5Nzk0LCAwLjMzNDU5MywgMC40MTI4MzciLCBcCi0gICAgICAgICAgIjAuMDcyMDQyLCAwLjEyOTEzMSwgMC4xODM5MTUsIDAuMjIyODgzLCAwLjI4NTM4NCwgMC4zNDA0MjYsIDAuNDE4NDUxIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDI0NjI3LCAwLjEzNzYxMywgMC4yNTI3OTIsIDAuMzM0OTcsIDAuNDY3MTg1LCAwLjU4MzIxNCwgMC43NDgxMDUiLCBcCi0gICAgICAgICAgIjAuMDI0Nzg3LCAwLjEzNzY0NCwgMC4yNTI3MzIsIDAuMzM1MTg5LCAwLjQ2Nzg0LCAwLjU4Mjk2LCAwLjc0ODE2MSIsIFwKLSAgICAgICAgICAiMC4wMjYyMTYsIDAuMTM3ODAzLCAwLjI1MjgwMiwgMC4zMzUyNzQsIDAuNDY3MjI0LCAwLjU4Mjg4MiwgMC43NDgxMjkiLCBcCi0gICAgICAgICAgIjAuMDI3NzcsIDAuMTM4MDgxLCAwLjI1MzE3MiwgMC4zMzU4MTQsIDAuNDY3MTMxLCAwLjU4Mjg4NCwgMC43NDgwMzciLCBcCi0gICAgICAgICAgIjAuMDI5Mjg4LCAwLjEzODI4OSwgMC4yNTMwMzgsIDAuMzM1NzgyLCAwLjQ2NzE3NywgMC41ODI5ODYsIDAuNzQ3OTA2IiwgXAotICAgICAgICAgICIwLjAzMTMxMSwgMC4xMzg5NTYsIDAuMjUzMjY2LCAwLjMzNTczOCwgMC40Njc5NjEsIDAuNTgzMjM1LCAwLjc0ODAwNCIsIFwKLSAgICAgICAgICAiMC4wMzI5NzIsIDAuMTM5NzQyLCAwLjI1MzI4LCAwLjMzNTY1OCwgMC40NjcxOTgsIDAuNTgzOTYsIDAuNzQ3NzkyIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDMxNDMyLCAwLjA4NjIxMiwgMC4xNDAwMiwgMC4xNzg0NTIsIDAuMjM5OTQzLCAwLjI5Mzc4MiwgMC4zNzA1OTUiLCBcCi0gICAgICAgICAgIjAuMDM5NTY4LCAwLjA5NDMyNywgMC4xNDgxODEsIDAuMTg2NTk0LCAwLjI0ODE0NiwgMC4zMDE5MjQsIDAuMzc4ODkyIiwgXAotICAgICAgICAgICIwLjA0ODMyNSwgMC4xMDMyMjYsIDAuMTU3MDQzLCAwLjE5NTQ2NywgMC4yNTcwNjEsIDAuMzEwODgyLCAwLjM4Nzg0NCIsIFwKLSAgICAgICAgICAiMC4wNTQ3MDgsIDAuMTA5ODE3LCAwLjE2MzY0NCwgMC4yMDIwNywgMC4yNjM2NDcsIDAuMzE3NDQ5LCAwLjM5NDQ1MiIsIFwKLSAgICAgICAgICAiMC4wNTk3NDcsIDAuMTE1MTAzLCAwLjE2ODY5OCwgMC4yMDcwODQsIDAuMjY4NTY1LCAwLjMyMjQyNSwgMC4zOTkyODQiLCBcCi0gICAgICAgICAgIjAuMDY2NTU2LCAwLjEyMTk1NSwgMC4xNzU2ODMsIDAuMjE0MDUzLCAwLjI3NTM4MywgMC4zMjkzMjUsIDAuNDA1OTg2IiwgXAotICAgICAgICAgICIwLjA3MTI2NiwgMC4xMjY5ODksIDAuMTgwNzM2LCAwLjIxOTIyLCAwLjI4MDYwNSwgMC4zMzQyMjIsIDAuNDExMTI0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDIzOTA4LCAwLjEzMzIzLCAwLjI0NDg0NiwgMC4zMjQ4MzEsIDAuNDUyNzE3LCAwLjU2MzYyOCwgMC43MjM1MTMiLCBcCi0gICAgICAgICAgIjAuMDI0MDI3LCAwLjEzMzA4OSwgMC4yNDQzNzgsIDAuMzI0ODU3LCAwLjQ1MjA0NSwgMC41NjQ3ODQsIDAuNzIzNjkzIiwgXAotICAgICAgICAgICIwLjAyNTI4NCwgMC4xMzMzOSwgMC4yNDQ0OTgsIDAuMzI0NzU0LCAwLjQ1MjA2OSwgMC41NjM5MDYsIDAuNzIzNTIiLCBcCi0gICAgICAgICAgIjAuMDI2NjY2LCAwLjEzMzYzNiwgMC4yNDQ5NTgsIDAuMzI0ODg0LCAwLjQ1MjA1NiwgMC41NjQzMTQsIDAuNzIzOTQ2IiwgXAotICAgICAgICAgICIwLjAyODEyNCwgMC4xMzM5MzUsIDAuMjQ1MTcxLCAwLjMyNDkwOSwgMC40NTI0MDcsIDAuNTYzODc5LCAwLjcyNDA3OCIsIFwKLSAgICAgICAgICAiMC4wMjk3ODUsIDAuMTM0NDA3LCAwLjI0NTAzOSwgMC4zMjQ2NTgsIDAuNDUyMjE3LCAwLjU2Mzc2MSwgMC43MjUwMDMiLCBcCi0gICAgICAgICAgIjAuMDMxMjA5LCAwLjEzNTA4OCwgMC4yNDUxMzYsIDAuMzI1MTQ1LCAwLjQ1MjQzNywgMC41NjQyNjgsIDAuNzIzNTYyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDUxOTMsIDAuMDA1MzE0LCAwLjAwNTMzLCAwLjAwNTMzMywgMC4wMDUzMzUsIDAuMDA1MzM4LCAwLjAwNTM0IiwgXAotICAgICAgICAgICIwLjAwNTE1NiwgMC4wMDUyODYsIDAuMDA1MzA3LCAwLjAwNTMxNCwgMC4wMDUzMTksIDAuMDA1MzIyLCAwLjAwNTMyNSIsIFwKLSAgICAgICAgICAiMC4wMDUyNDQsIDAuMDA1MzU4LCAwLjAwNTM3OSwgMC4wMDUzODcsIDAuMDA1Mzk2LCAwLjAwNTM5NywgMC4wMDU0MDIiLCBcCi0gICAgICAgICAgIjAuMDA1NDU3LCAwLjAwNTQ3MiwgMC4wMDU0ODksIDAuMDA1NDk1LCAwLjAwNTUwMSwgMC4wMDU1MDYsIDAuMDA1NTEiLCBcCi0gICAgICAgICAgIjAuMDA1Njc3LCAwLjAwNTYyNSwgMC4wMDU2NCwgMC4wMDU2MzksIDAuMDA1NjUyLCAwLjAwNTY1NSwgMC4wMDU2NTgiLCBcCi0gICAgICAgICAgIjAuMDA1OTcyLCAwLjAwNTg5MywgMC4wMDU4OTksIDAuMDA1OTAyLCAwLjAwNTkwNSwgMC4wMDU5MDQsIDAuMDA1OTEiLCBcCi0gICAgICAgICAgIjAuMDA2MzU2LCAwLjAwNjE0OCwgMC4wMDYxNDUsIDAuMDA2MTUxLCAwLjAwNjE1MywgMC4wMDYxMzYsIDAuMDA2MTU0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDY3NzUsIDAuMDA2OTU1LCAwLjAwNjk3OCwgMC4wMDY5ODUsIDAuMDA2OTkxLCAwLjAwNjk5NCwgMC4wMDY5OTciLCBcCi0gICAgICAgICAgIjAuMDA2NzMsIDAuMDA2OTI3LCAwLjAwNjk2MSwgMC4wMDY5NzIsIDAuMDA2OTgxLCAwLjAwNjk4NiwgMC4wMDY5OTEiLCBcCi0gICAgICAgICAgIjAuMDA2ODE4LCAwLjAwNjk5MSwgMC4wMDcwMjksIDAuMDA3MDQsIDAuMDA3MDUxLCAwLjAwNzA1NiwgMC4wMDcwNjEiLCBcCi0gICAgICAgICAgIjAuMDA3MDI4LCAwLjAwNzA4OSwgMC4wMDcxMjYsIDAuMDA3MTQsIDAuMDA3MTUxLCAwLjAwNzE1NywgMC4wMDcxNjMiLCBcCi0gICAgICAgICAgIjAuMDA3MjU3LCAwLjAwNzIzMiwgMC4wMDcyNjIsIDAuMDA3Mjc0LCAwLjAwNzI4NiwgMC4wMDcyOTEsIDAuMDA3Mjk3IiwgXAotICAgICAgICAgICIwLjAwNzQ3MSwgMC4wMDc1MzIsIDAuMDA3NDk4LCAwLjAwNzUwNywgMC4wMDc1NDQsIDAuMDA3NTIzLCAwLjAwNzU1IiwgXAotICAgICAgICAgICIwLjAwNzc0NiwgMC4wMDc3MzYsIDAuMDA3NzQxLCAwLjAwNzczNywgMC4wMDc3NDksIDAuMDA3NzUzLCAwLjAwNzc1NiIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBDTEtCVUZYNiAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoQ0xLQlVGWDYpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC43NDM4Mzc7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTcxODIyOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTcxODA2OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTcxODIyOwotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDIuMDM3MDg7Ci0gICAgZnVuY3Rpb24gOiAiQSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjM3NTIsIDAuMDYwOTc0LCAwLjA5NzQ4LCAwLjEyMzUzNiwgMC4xNjUyODUsIDAuMjAxNzQ1LCAwLjI1MzY4MSIsIFwKLSAgICAgICAgICAiMC4wMzE4LCAwLjA2OTA0MiwgMC4xMDU1NTUsIDAuMTMxNjYzLCAwLjE3MzM3OCwgMC4yMDk4MDIsIDAuMjYxOTU2IiwgXAotICAgICAgICAgICIwLjAzOTQ3NSwgMC4wNzY5MjksIDAuMTEzMzgzLCAwLjEzOTQ4MiwgMC4xODExMzksIDAuMjE3Nzc0LCAwLjI2OTc0MyIsIFwKLSAgICAgICAgICAiMC4wNDUwNjYsIDAuMDgyODM3LCAwLjExOTI4OSwgMC4xNDUzNjIsIDAuMTg3MDA0LCAwLjIyMzUwMywgMC4yNzU1OTYiLCBcCi0gICAgICAgICAgIjAuMDQ5NjY3LCAwLjA4NzY3NSwgMC4xMjQxNDQsIDAuMTUwMTU2LCAwLjE5MTgzOCwgMC4yMjgzMDYsIDAuMjgwNTQ1IiwgXAotICAgICAgICAgICIwLjA1NTYxMSwgMC4wOTQyNywgMC4xMzA3OTQsIDAuMTU2ODM1LCAwLjE5ODQ2NCwgMC4yMzQ5MTUsIDAuMjg3MDU4IiwgXAotICAgICAgICAgICIwLjA2MDEwMywgMC4wOTkxMDMsIDAuMTM1NzcyLCAwLjE2MTU2NiwgMC4yMDMxODMsIDAuMjM5NjAzLCAwLjI5MTY3NCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxODIwOCwgMC4wOTMxNTEsIDAuMTcwMDU0LCAwLjIyNTA1LCAwLjMxMjU5NywgMC4zODk3MjYsIDAuNDk5MDgzIiwgXAotICAgICAgICAgICIwLjAxODU2NywgMC4wOTMyNywgMC4xNjk4MDEsIDAuMjI0NTY3LCAwLjMxMjU5NCwgMC4zODk5MjYsIDAuNDk5Nzg5IiwgXAotICAgICAgICAgICIwLjAyMDEyMiwgMC4wOTM1MTQsIDAuMTY5Nzk5LCAwLjIyNDYwMSwgMC4zMTI3MDUsIDAuMzg5NDgzLCAwLjQ5OTMxMyIsIFwKLSAgICAgICAgICAiMC4wMjE1MTYsIDAuMDkzOTIxLCAwLjE3MDA2MywgMC4yMjUxNiwgMC4zMTMxMzUsIDAuMzg5NDUsIDAuNDk5MzciLCBcCi0gICAgICAgICAgIjAuMDIyODA0LCAwLjA5NDM2NiwgMC4xNzAyOTMsIDAuMjI1MDgyLCAwLjMxMjgzNCwgMC4zODk2NjMsIDAuNDk5NTEzIiwgXAotICAgICAgICAgICIwLjAyNDgxOCwgMC4wOTUzNzcsIDAuMTcwNDc3LCAwLjIyNTAzOSwgMC4zMTI4MzYsIDAuMzg5NjkxLCAwLjQ5OTQ2NCIsIFwKLSAgICAgICAgICAiMC4wMjYxMDEsIDAuMDk1OTkyLCAwLjE3MDg2MywgMC4yMjUxMDEsIDAuMzEyOTg3LCAwLjM4OTcxNSwgMC40OTk5MzgiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjQ3OTMsIDAuMDYzMTQ1LCAwLjEwMDY2OCwgMC4xMjc0NTgsIDAuMTcwMzMsIDAuMjA3ODQxLCAwLjI2MTM4NCIsIFwKLSAgICAgICAgICAiMC4wMzI2NTIsIDAuMDcxMDQ5LCAwLjEwODU4NSwgMC4xMzUzOTUsIDAuMTc4MzM4LCAwLjIxNTc2NiwgMC4yNjk0OCIsIFwKLSAgICAgICAgICAiMC4wNDAxNTcsIDAuMDc4NjQ3LCAwLjExNjE3NSwgMC4xNDMwMDEsIDAuMTg1ODMyLCAwLjIyMzQsIDAuMjc2OTM4IiwgXAotICAgICAgICAgICIwLjA0NTUxNSwgMC4wODQyOCwgMC4xMjE4NCwgMC4xNDg2MzYsIDAuMTkxMjk1LCAwLjIyODg1OCwgMC4yODIzNjYiLCBcCi0gICAgICAgICAgIjAuMDQ5NjQzLCAwLjA4ODYxOSwgMC4xMjYwMDYsIDAuMTUyNzE0LCAwLjE5NTYxNiwgMC4yMzMwNzQsIDAuMjg2NjUxIiwgXAotICAgICAgICAgICIwLjA1NTA2NiwgMC4wOTQxNzEsIDAuMTMxNzA1LCAwLjE1ODQ5MywgMC4yMDEzNzUsIDAuMjM4NzcxLCAwLjI5MjM3OSIsIFwKLSAgICAgICAgICAiMC4wNTg4NjYsIDAuMDk4MzM4LCAwLjEzNTg5NywgMC4xNjI2OTksIDAuMjA1NjYzLCAwLjI0Mjk3OSwgMC4yOTY2MiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxODA2NiwgMC4wOTM1ODQsIDAuMTcwNjc4LCAwLjIyNTY0MywgMC4zMTM3MTcsIDAuMzkwOTQsIDAuNTAyNDM2IiwgXAotICAgICAgICAgICIwLjAxODUwNiwgMC4wOTM2MzEsIDAuMTcwNjkzLCAwLjIyNTQ2NywgMC4zMTM4NTEsIDAuMzkwOTgxLCAwLjUwMTM4OSIsIFwKLSAgICAgICAgICAiMC4wMTk3MjksIDAuMDkzOTQyLCAwLjE3MDU3MSwgMC4yMjU1ODcsIDAuMzE0NDA4LCAwLjM5MTA0OSwgMC41MDIzMzYiLCBcCi0gICAgICAgICAgIjAuMDIxMDIyLCAwLjA5NDIzNywgMC4xNzA5NDUsIDAuMjI1NzQ2LCAwLjMxNDQ1NiwgMC4zOTEwOSwgMC41MDI0NiIsIFwKLSAgICAgICAgICAiMC4wMjIwODcsIDAuMDk0NTA2LCAwLjE3MDkxNywgMC4yMjU5MDYsIDAuMzE0NTgxLCAwLjM5MTg2MSwgMC41MDEyNDgiLCBcCi0gICAgICAgICAgIjAuMDIzNzU0LCAwLjA5NTMwNywgMC4xNzEwNTMsIDAuMjI1OTU5LCAwLjMxNDUzNywgMC4zOTE4NDMsIDAuNTAyNDA5IiwgXAotICAgICAgICAgICIwLjAyNTE3MSwgMC4wOTU5NSwgMC4xNzEyODUsIDAuMjI2MDI4LCAwLjMxNDI3NiwgMC4zOTEzODYsIDAuNTAxODI0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDc4NTMsIDAuMDA4MDg5LCAwLjAwODExOSwgMC4wMDgxMjgsIDAuMDA4MTM2LCAwLjAwODEzOCwgMC4wMDgxNDMiLCBcCi0gICAgICAgICAgIjAuMDA3NzU5LCAwLjAwODAxOSwgMC4wMDgwNzMsIDAuMDA4MDgxLCAwLjAwODA5NywgMC4wMDgxMDYsIDAuMDA4MTEyIiwgXAotICAgICAgICAgICIwLjAwNzk5MiwgMC4wMDgxOCwgMC4wMDgyMzQsIDAuMDA4MjU0LCAwLjAwODI3MSwgMC4wMDgyNzksIDAuMDA4Mjg4IiwgXAotICAgICAgICAgICIwLjAwODMyOCwgMC4wMDg0NDQsIDAuMDA4NDk4LCAwLjAwODUyMSwgMC4wMDg1MzEsIDAuMDA4NTQ2LCAwLjAwODU0OSIsIFwKLSAgICAgICAgICAiMC4wMDg3MzYsIDAuMDA4NzQxLCAwLjAwODgxNCwgMC4wMDg4MTgsIDAuMDA4ODUyLCAwLjAwODg2NSwgMC4wMDg4NzQiLCBcCi0gICAgICAgICAgIjAuMDA5NDUxLCAwLjAwOTMyNCwgMC4wMDkzNjEsIDAuMDA5Mzc1LCAwLjAwOTM4OSwgMC4wMDk0MDcsIDAuMDA5NDA4IiwgXAotICAgICAgICAgICIwLjAwOTk2LCAwLjAwOTg3NCwgMC4wMDk4OTYsIDAuMDA5ODk5LCAwLjAwOTkxMywgMC4wMDk5MjQsIDAuMDA5OTI3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTAyODgsIDAuMDEwNjMxLCAwLjAxMDY3OSwgMC4wMTA2OTQsIDAuMDEwNzA3LCAwLjAxMDcxNCwgMC4wMTA3MiIsIFwKLSAgICAgICAgICAiMC4wMTAyMzIsIDAuMDEwNTczLCAwLjAxMDY0MSwgMC4wMTA2NjMsIDAuMDEwNjgzLCAwLjAxMDY5MywgMC4wMTA3MDMiLCBcCi0gICAgICAgICAgIjAuMDEwMzk4LCAwLjAxMDY5MiwgMC4wMTA3NzksIDAuMDEwODA4LCAwLjAxMDgzNSwgMC4wMTA4NDksIDAuMDEwODYyIiwgXAotICAgICAgICAgICIwLjAxMDc4MSwgMC4wMTA5MzYsIDAuMDExMDIyLCAwLjAxMTA1NCwgMC4wMTEwOSwgMC4wMTExMDUsIDAuMDExMTIxIiwgXAotICAgICAgICAgICIwLjAxMTAzMywgMC4wMTEyMTYsIDAuMDExMjk2LCAwLjAxMTM3MSwgMC4wMTEzNTcsIDAuMDExMzc0LCAwLjAxMTQyNiIsIFwKLSAgICAgICAgICAiMC4wMTE2NDUsIDAuMDExNzc0LCAwLjAxMTgzNSwgMC4wMTE4NTgsIDAuMDExOTAyLCAwLjAxMTkwMywgMC4wMTE5MzkiLCBcCi0gICAgICAgICAgIjAuMDEyMjIxLCAwLjAxMjI0MiwgMC4wMTIzMSwgMC4wMTIzMzksIDAuMDEyNDA0LCAwLjAxMjM4NywgMC4wMTI0NDEiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogQ0xLQlVGWDggKgotICogLS0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKENMS0JVRlg4KSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuOTIzMzc3OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE3MDcxMzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE3MDcxMzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE3MDcxMjsKLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAyLjY3MTEyOwotICAgIGZ1bmN0aW9uIDogIkEiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDI0ODk5LCAwLjA1Mzg2NSwgMC4wODEzNDksIDAuMTAwOTcyLCAwLjEzMjMxNywgMC4xNTk4MjYsIDAuMTk4OTkzIiwgXAotICAgICAgICAgICIwLjAzMzE3LCAwLjA2MjA2MSwgMC4wODk1NzUsIDAuMTA5MjAyLCAwLjE0MDYyLCAwLjE2ODA2NiwgMC4yMDczOTciLCBcCi0gICAgICAgICAgIjAuMDQxNjM0LCAwLjA3MDg4NSwgMC4wOTg0NTQsIDAuMTE4MDg5LCAwLjE0OTQ1NywgMC4xNzY5MzQsIDAuMjE2MTg2IiwgXAotICAgICAgICAgICIwLjA0NzgzMywgMC4wNzc1NzMsIDAuMTA1MDI3LCAwLjEyNDU5NCwgMC4xNTU5NzMsIDAuMTgzNDM0LCAwLjIyMjY0NSIsIFwKLSAgICAgICAgICAiMC4wNTI4MjksIDAuMDgyOTkyLCAwLjExMDQ3NiwgMC4xMzAwNywgMC4xNjE0MTYsIDAuMTg4ODksIDAuMjI4MTQzIiwgXAotICAgICAgICAgICIwLjA1OTQ4OCwgMC4wOTA0MDcsIDAuMTE3OTI0LCAwLjEzNzUxMywgMC4xNjg4MzcsIDAuMTk2MjU5LCAwLjIzNTQ1OCIsIFwKLSAgICAgICAgICAiMC4wNjQzNTIsIDAuMDk1OTI1LCAwLjEyMzQ2MywgMC4xNDMxMzIsIDAuMTc0MzUsIDAuMjAxNjY5LCAwLjI0MDg3MSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxNjU5MywgMC4wNzIxODgsIDAuMTI5NDA4LCAwLjE3MDkwOCwgMC4yMzY1MzMsIDAuMjk1MTM1LCAwLjM3NzQ0MSIsIFwKLSAgICAgICAgICAiMC4wMTY4NzgsIDAuMDcyMjM1LCAwLjEyOTYyNSwgMC4xNzA4ODksIDAuMjM2NzU5LCAwLjI5NTEzNCwgMC4zNzc0MzYiLCBcCi0gICAgICAgICAgIjAuMDE4NTY0LCAwLjA3MjcyOCwgMC4xMjk2OSwgMC4xNzEwMTEsIDAuMjM3MTIzLCAwLjI5NDc4MywgMC4zNzc1NzEiLCBcCi0gICAgICAgICAgIjAuMDIwMTk3LCAwLjA3MzQyNiwgMC4xMjk5NDYsIDAuMTcxMDIxLCAwLjIzNzIyOSwgMC4yOTQ3NjIsIDAuMzc3NzMzIiwgXAotICAgICAgICAgICIwLjAyMTY2NSwgMC4wNzQyNDYsIDAuMTMwMzM1LCAwLjE3MTIyNSwgMC4yMzY5MzIsIDAuMjk1MjYyLCAwLjM3NzMwNCIsIFwKLSAgICAgICAgICAiMC4wMjM2MzMsIDAuMDc1NDYxLCAwLjEzMDk4NiwgMC4xNzE1OTMsIDAuMjM3MjMzLCAwLjI5NDk1MywgMC4zNzczOTUiLCBcCi0gICAgICAgICAgIjAuMDI1MzM1LCAwLjA3NjU2NywgMC4xMzE3ODEsIDAuMTcxOTg5LCAwLjIzNzQzMiwgMC4yOTUxNTQsIDAuMzc3NTgyIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDI2MTk5LCAwLjA1NTkxMSwgMC4wODQxNjksIDAuMTA0MzIxLCAwLjEzNjU2NiwgMC4xNjQ4MDIsIDAuMjA1MDY5IiwgXAotICAgICAgICAgICIwLjAzNDM0NywgMC4wNjQwMjUsIDAuMDkyMjkyLCAwLjExMjQ0NiwgMC4xNDQ2OTUsIDAuMTcyODk1LCAwLjIxMzE5NCIsIFwKLSAgICAgICAgICAiMC4wNDI2NDksIDAuMDcyNTM5LCAwLjEwMDc4NSwgMC4xMjA5MywgMC4xNTMxNjIsIDAuMTgxMzcyLCAwLjIyMTY1NSIsIFwKLSAgICAgICAgICAiMC4wNDg2MTYsIDAuMDc4ODE4LCAwLjEwNzA2NywgMC4xMjcxOTEsIDAuMTU5NDA5LCAwLjE4NzYxNCwgMC4yMjc5MjQiLCBcCi0gICAgICAgICAgIjAuMDUzMjYxLCAwLjA4MzgwMSwgMC4xMTIxODksIDAuMTMyMTQ2LCAwLjE2NDM0MiwgMC4xOTI1MzgsIDAuMjMyODE3IiwgXAotICAgICAgICAgICIwLjA1OTUsIDAuMDkwNDgxLCAwLjExODc1MSwgMC4xMzg4OTMsIDAuMTcxMDQ3LCAwLjE5OTE5NywgMC4yMzk0NDEiLCBcCi0gICAgICAgICAgIjAuMDYzOTEyLCAwLjA5NTM3NiwgMC4xMjM1NjIsIDAuMTQzOTg4LCAwLjE3NjAxNSwgMC4yMDQxNzQsIDAuMjQ0MjYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTY0NzgsIDAuMDcyNzk2LCAwLjEzMDk1NiwgMC4xNzI3MDEsIDAuMjM5Mjc0LCAwLjI5NzgyNSwgMC4zODE2OTQiLCBcCi0gICAgICAgICAgIjAuMDE2NjQsIDAuMDcyODg2LCAwLjEzMDk3NCwgMC4xNzI3MDgsIDAuMjM5NzE1LCAwLjI5Nzc2MiwgMC4zODEzODEiLCBcCi0gICAgICAgICAgIjAuMDE4MTMyLCAwLjA3MzM2OSwgMC4xMzExNzgsIDAuMTcyNjI2LCAwLjIzOTcxMiwgMC4yOTc5OTksIDAuMzgyMDk3IiwgXAotICAgICAgICAgICIwLjAxOTU4MiwgMC4wNzQwMTIsIDAuMTMxMjY3LCAwLjE3MzAwNywgMC4yMzk4MjUsIDAuMjk3OTY1LCAwLjM4MTU1NyIsIFwKLSAgICAgICAgICAiMC4wMjEwNywgMC4wNzQ2MDYsIDAuMTMxNzE2LCAwLjE3MzIxNiwgMC4yMzk5MiwgMC4yOTg1NjMsIDAuMzgxNDgyIiwgXAotICAgICAgICAgICIwLjAyMjczNiwgMC4wNzU2MzYsIDAuMTMyMTI1LCAwLjE3MzMyOSwgMC4yMzk4NzgsIDAuMjk4NTU3LCAwLjM4MjMxMSIsIFwKLSAgICAgICAgICAiMC4wMjQwODUsIDAuMDc2NjQyLCAwLjEzMjc1OSwgMC4xNzM1MzMsIDAuMjQwMDQ1LCAwLjI5ODMwMywgMC4zODIzMiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEwMDkyLCAwLjAxMDQxOSwgMC4wMTA0ODEsIDAuMDEwNDkzLCAwLjAxMDUxNywgMC4wMTA1MzYsIDAuMDEwNTI0IiwgXAotICAgICAgICAgICIwLjAxMDA0OCwgMC4wMTAzMjcsIDAuMDEwNDAyLCAwLjAxMDQyOCwgMC4wMTA0NTIsIDAuMDEwNDYzLCAwLjAxMDQ3NSIsIFwKLSAgICAgICAgICAiMC4wMTAyNTksIDAuMDEwNDQ1LCAwLjAxMDUyOCwgMC4wMTA1NjQsIDAuMDEwNTg3LCAwLjAxMDYwMiwgMC4wMTA2MTciLCBcCi0gICAgICAgICAgIjAuMDEwNjU2LCAwLjAxMDcxNywgMC4wMTA3ODQsIDAuMDEwODA3LCAwLjAxMDgzOSwgMC4wMTA4NDgsIDAuMDEwODc2IiwgXAotICAgICAgICAgICIwLjAxMTE5MiwgMC4wMTEwMiwgMC4wMTEwODYsIDAuMDExMDk4LCAwLjAxMTEyNywgMC4wMTExMzksIDAuMDExMTY3IiwgXAotICAgICAgICAgICIwLjAxMTk2MSwgMC4wMTE1NTcsIDAuMDExNjAzLCAwLjAxMTYxOSwgMC4wMTE2MzUsIDAuMDExNjQzLCAwLjAxMTY2NCIsIFwKLSAgICAgICAgICAiMC4wMTI3MTksIDAuMDEyMTM1LCAwLjAxMjE4OSwgMC4wMTIxNDksIDAuMDEyMTk3LCAwLjAxMjIwMywgMC4wMTIxNzYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMjYxMywgMC4wMTMwOTgsIDAuMDEzMTg5LCAwLjAxMzIxOSwgMC4wMTMyNDYsIDAuMDEzMjU5LCAwLjAxMzI3MiIsIFwKLSAgICAgICAgICAiMC4wMTI1NTcsIDAuMDEyOTk0LCAwLjAxMzExMywgMC4wMTMxNTMsIDAuMDEzMTkxLCAwLjAxMzIxMSwgMC4wMTMyMyIsIFwKLSAgICAgICAgICAiMC4wMTI3NzUsIDAuMDEzMTAxLCAwLjAxMzIyNiwgMC4wMTMyNjYsIDAuMDEzMzE3LCAwLjAxMzM0MiwgMC4wMTMzNjUiLCBcCi0gICAgICAgICAgIjAuMDEzMTk2LCAwLjAxMzQyMiwgMC4wMTM1MzEsIDAuMDEzNTc5LCAwLjAxMzYyNiwgMC4wMTM2NTMsIDAuMDEzNjc4IiwgXAotICAgICAgICAgICIwLjAxMzc0NSwgMC4wMTM2MjMsIDAuMDEzNzIxLCAwLjAxMzc2MSwgMC4wMTM4MDcsIDAuMDEzODMzLCAwLjAxMzg1OSIsIFwKLSAgICAgICAgICAiMC4wMTQxNTIsIDAuMDE0MTQ4LCAwLjAxNDMxLCAwLjAxNDI0NiwgMC4wMTQyODIsIDAuMDE0MzA5LCAwLjAxNDMzNCIsIFwKLSAgICAgICAgICAiMC4wMTQ3OTYsIDAuMDE0NzE1LCAwLjAxNDcyNiwgMC4wMTQ3MTUsIDAuMDE0NzY2LCAwLjAxNDc4NywgMC4wMTQ4MTciKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogQ0xLSU5WWDEgKgotICogLS0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKENMS0lOVlgxKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMDkxMDM4MTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwOTE1NTUxOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDkxNTQxNzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA5MTU1NTE7Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4zNDE3NDE7Ci0gICAgZnVuY3Rpb24gOiAiKCFBKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM1OTc3LCAwLjA1NDYxNCwgMC4xNjAyMjEsIDAuMjUzMzc3LCAwLjM3NzU2NSwgMC42MjYyMDksIDAuNzgwOTkzIiwgXAotICAgICAgICAgICIwLjA0NDE0NiwgMC4wNjI3OSwgMC4xNjgxOSwgMC4yNjEzMzgsIDAuMzg1NTY0LCAwLjYzMzkzNCwgMC43ODkwNzQiLCBcCi0gICAgICAgICAgIjAuMDU0NjksIDAuMDczMjYzLCAwLjE3ODcxMiwgMC4yNzE4MjQsIDAuMzk1ODY3LCAwLjY0NDY1MywgMC43OTkwNzQiLCBcCi0gICAgICAgICAgIjAuMDY0NjM2LCAwLjA4MzgsIDAuMTg5MDkyLCAwLjI4MjE5MiwgMC40MDYyNzgsIDAuNjU0NDk1LCAwLjgwOTQ2NSIsIFwKLSAgICAgICAgICAiMC4wNzI1OTQsIDAuMDk0Mjc3LCAwLjE5OTU1NCwgMC4yOTI1NiwgMC40MTY2OTEsIDAuNjY0NzQ5LCAwLjgxOTc2NyIsIFwKLSAgICAgICAgICAiMC4wODMwMjIsIDAuMTA4MjU0LCAwLjIxNjI5NiwgMC4zMDkyMDMsIDAuNDMzMzYyLCAwLjY4MTQzMiwgMC44MzY2OCIsIFwKLSAgICAgICAgICAiMC4wOTEzNTUsIDAuMTE4NjE3LCAwLjIzMTEyNywgMC4zMjM4OTUsIDAuNDQ3OTMzLCAwLjY5NjA4MiwgMC44NTExMjQiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY5NjMzLCAwLjEwODc3MywgMC4zMzA3NTcsIDAuNTI2Mzc5LCAwLjc4NzQxMiwgMS4zMTAyNiwgMS42MzYxOSIsIFwKLSAgICAgICAgICAiMC4wNzEyMTUsIDAuMTA5MjA4LCAwLjMzMDU3NiwgMC41MjcwNzIsIDAuNzg4MTczLCAxLjMxMDQ4LCAxLjYzNzM5IiwgXAotICAgICAgICAgICIwLjA3NzkxOSwgMC4xMTM5NDYsIDAuMzMwNTY3LCAwLjUyNjczLCAwLjc4NzUxNSwgMS4zMTAyMiwgMS42Mzc4MSIsIFwKLSAgICAgICAgICAiMC4wODY2MTksIDAuMTIwOTI4LCAwLjMzMjEyMSwgMC41MjY3MjQsIDAuNzg3NzY2LCAxLjMxMDUsIDEuNjM1MjUiLCBcCi0gICAgICAgICAgIjAuMDk2MjA5LCAwLjEyOTM3MSwgMC4zMzUzNzMsIDAuNTI3ODk4LCAwLjc4NzE0MSwgMS4zMDk2NCwgMS42Mzg0NSIsIFwKLSAgICAgICAgICAiMC4xMTE4MTMsIDAuMTQ0NzU0LCAwLjM0MzY0MSwgMC41MzEyMDYsIDAuNzg3NTMyLCAxLjMxMTA4LCAxLjYzNjE1IiwgXAotICAgICAgICAgICIwLjEyMjkwMSwgMC4xNTc2MywgMC4zNTI2MDgsIDAuNTM2NzExLCAwLjc5MDY2NiwgMS4zMTAwNiwgMS42Mzc5MiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzUxODgsIDAuMDUzMzIzLCAwLjE1NTkwNSwgMC4yNDY0MjksIDAuMzY3MzE2LCAwLjYwODQ3MiwgMC43NTk0NzgiLCBcCi0gICAgICAgICAgIjAuMDQzNDk2LCAwLjA2MTYyOCwgMC4xNjQxOTgsIDAuMjU0NzYxLCAwLjM3NTI3OSwgMC42MTY2NDcsIDAuNzY3MzM3IiwgXAotICAgICAgICAgICIwLjA1NDIxOSwgMC4wNzIyNzYsIDAuMTc0NzM0LCAwLjI2NTMzNSwgMC4zODU5MTcsIDAuNjI3MDY2LCAwLjc3ODQ0NCIsIFwKLSAgICAgICAgICAiMC4wNjQzNjgsIDAuMDgzMDE4LCAwLjE4NTMzMSwgMC4yNzU4MTYsIDAuMzk2NjYsIDAuNjM3ODE0LCAwLjc4ODc2MiIsIFwKLSAgICAgICAgICAiMC4wNzI2ODksIDAuMDkzNjg2LCAwLjE5NTk2NSwgMC4yODYzNywgMC40MDcyMTYsIDAuNjQ4NTcsIDAuNzk5NzU3IiwgXAotICAgICAgICAgICIwLjA4Mzk0MiwgMC4xMDgzNDIsIDAuMjEzMTMzLCAwLjMwMzM0NywgMC40MjM5ODIsIDAuNjY1MzU2LCAwLjgxNjAyIiwgXAotICAgICAgICAgICIwLjA5MjEzNiwgMC4xMTkwNTEsIDAuMjI4MjI3LCAwLjMxODI3MiwgMC40Mzg3NzYsIDAuNjgwMDY3LCAwLjgzMTI1MSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjYwOTEsIDAuMTAzMTg4LCAwLjMxNDE1NywgMC41MDAzMTksIDAuNzQ4NzM1LCAxLjI0NTg3LCAxLjU1NDkxIiwgXAotICAgICAgICAgICIwLjA2NzY0MSwgMC4xMDM1NzIsIDAuMzE0NjMsIDAuNTAwMzA0LCAwLjc0ODM1NiwgMS4yNDU2NywgMS41NTgwMyIsIFwKLSAgICAgICAgICAiMC4wNzQwODUsIDAuMTA4MjU1LCAwLjMxNDU2OSwgMC41MDAzMDMsIDAuNzQ4MTg4LCAxLjI0NDQxLCAxLjU1NTc5IiwgXAotICAgICAgICAgICIwLjA4MjU1MywgMC4xMTUxMjYsIDAuMzE1NzEsIDAuNTAxMTI0LCAwLjc0ODM3MywgMS4yNDUwMywgMS41NTU1NCIsIFwKLSAgICAgICAgICAiMC4wOTIxMzMsIDAuMTIzMzM5LCAwLjMxOTEwNywgMC41MDE3NTUsIDAuNzQ4NDIyLCAxLjI0NDc3LCAxLjU1NTc1IiwgXAotICAgICAgICAgICIwLjEwNzM5OSwgMC4xMzc5MzUsIDAuMzI3MjU5LCAwLjUwNTg4MywgMC43NDg4MzMsIDEuMjQ1MDksIDEuNTU0MzUiLCBcCi0gICAgICAgICAgIjAuMTIwMjk5LCAwLjE1MTM4MSwgMC4zMzYyNzUsIDAuNTEwNzYsIDAuNzUyNzIzLCAxLjI0NDQsIDEuNTU0ODMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDE0ODQsIDAuMDAxNDksIDAuMDAxNDk2LCAwLjAwMTQ5NywgMC4wMDE0OTcsIDAuMDAxNDk4LCAwLjAwMTQ5OCIsIFwKLSAgICAgICAgICAiMC4wMDE0NzcsIDAuMDAxNDgyLCAwLjAwMTQ5MSwgMC4wMDE0OTMsIDAuMDAxNDk1LCAwLjAwMTQ5NSwgMC4wMDE0OTciLCBcCi0gICAgICAgICAgIjAuMDAxNDk4LCAwLjAwMTQ5MywgMC4wMDE0OTUsIDAuMDAxNDk2LCAwLjAwMTQ5NiwgMC4wMDE0OTcsIDAuMDAxNDk2IiwgXAotICAgICAgICAgICIwLjAwMTU2NiwgMC4wMDE1MzksIDAuMDAxNTExLCAwLjAwMTUwNywgMC4wMDE1MDUsIDAuMDAxNTAxLCAwLjAwMTUwMSIsIFwKLSAgICAgICAgICAiMC4wMDE2NTcsIDAuMDAxNjA1LCAwLjAwMTUzNywgMC4wMDE1MjQsIDAuMDAxNTE3LCAwLjAwMTUwOSwgMC4wMDE1MDciLCBcCi0gICAgICAgICAgIjAuMDAxODQyLCAwLjAwMTc0NCwgMC4wMDE1OTcsIDAuMDAxNTY1LCAwLjAwMTU0NiwgMC4wMDE1MjgsIDAuMDAxNTIyIiwgXAotICAgICAgICAgICIwLjAwMTk2MSwgMC4wMDE4ODUsIDAuMDAxNjYxLCAwLjAwMTYwOSwgMC4wMDE1NzgsIDAuMDAxNTUsIDAuMDAxNTQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDAwNTgsIDAuMDAwMDUzLCAwLjAwMDA0NSwgMC4wMDAwNDQsIDAuMDAwMDQzLCAwLjAwMDA0MywgMC4wMDAwNDMiLCBcCi0gICAgICAgICAgIjAuMDAwMDgzLCAwLjAwMDA3MiwgMC4wMDAwNTQsIDAuMDAwMDQ5LCAwLjAwMDA0NywgMC4wMDAwNDUsIDAuMDAwMDQ0IiwgXAotICAgICAgICAgICIwLjAwMDA1NywgMC4wMDAwNTgsIDAuMDAwMDUsIDAuMDAwMDQ4LCAwLjAwMDA0NiwgMC4wMDAwNDUsIDAuMDAwMDQ0IiwgXAotICAgICAgICAgICIwLjAwMDAxMiwgMC4wMDAwMTIsIDAuMDAwMDM2LCAwLjAwMDAzOCwgMC4wMDAwMzksIDAuMDAwMDQsIDAuMDAwMDQxIiwgXAotICAgICAgICAgICIwLjAwMDExLCAwLjAwMDA1NiwgMC4wMDAwMDksIDAuMDAwMDIxLCAwLjAwMDAyNywgMC4wMDAwMzMsIDAuMDAwMDM1IiwgXAotICAgICAgICAgICIwLjAwMDMxNCwgMC4wMDAyMDMsIDAuMDAwMDUzLCAwLjAwMDAyMSwgMC4wMDAwMDMsIDAuMDAwMDE0LCAwLjAwMDAxOSIsIFwKLSAgICAgICAgICAiMC4wMDA1MDksIDAuMDAwMzU5LCAwLjAwMDEyMSwgMC4wMDAwNjYsIDAuMDAwMDM1LCAwLjAwMDAwNywgMC4wMDAwMDIiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IENMS0lOVlgxMiAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKENMS0lOVlgxMikgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAxLjE2Nzg2OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDk0ODY3MTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDk0ODU5MjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDk0ODY3MTsKLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAzLjk2MzsKLSAgICBmdW5jdGlvbiA6ICIoIUEpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDc0NDIsIDAuMDA5MDcxLCAwLjAxODI0NSwgMC4wMjYyNjYsIDAuMDM2OTgyLCAwLjA1ODMxNSwgMC4wNzE2MjkiLCBcCi0gICAgICAgICAgIjAuMDEzMjksIDAuMDE1ODM1LCAwLjAyNjU2NywgMC4wMzQ1OTEsIDAuMDQ1MjU0LCAwLjA2NjYwOSwgMC4wNzk5NjIiLCBcCi0gICAgICAgICAgIjAuMDE3MDE3LCAwLjAyMDU5NSwgMC4wMzUyMTksIDAuMDQ0ODgxLCAwLjA1NTc4MywgMC4wNzcwOTQsIDAuMDkwNDAyIiwgXAotICAgICAgICAgICIwLjAxOTY3OCwgMC4wMjM3MzIsIDAuMDQxNDUsIDAuMDUzMTM4LCAwLjA2NjI2NywgMC4wODc0MjksIDAuMTAwNjk1IiwgXAotICAgICAgICAgICIwLjAyMTcsIDAuMDI2MzYxLCAwLjA0NjM5OSwgMC4wNTk1NDEsIDAuMDc0MzI2LCAwLjA5ODYzNCwgMC4xMTE3NTciLCBcCi0gICAgICAgICAgIjAuMDI0MDQyLCAwLjAyOTIzOSwgMC4wNTI4NzIsIDAuMDY4MjEyLCAwLjA4NDg2OCwgMC4xMTMyMDEsIDAuMTI4MjczIiwgXAotICAgICAgICAgICIwLjAyNTU0MywgMC4wMzE1MjMsIDAuMDU3NDQ2LCAwLjA3NDM1NSwgMC4wOTMyOTIsIDAuMTI0MDA2LCAwLjE0MDc2MSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTAwNDksIDAuMDEzMjgsIDAuMDMyMjIsIDAuMDQ5MTAzLCAwLjA3MTcxNywgMC4xMTY3OTYsIDAuMTQ1MDQyIiwgXAotICAgICAgICAgICIwLjAxNzE2NywgMC4wMjAyOTgsIDAuMDM2NDQzLCAwLjA1MTg2NSwgMC4wNzMyMjksIDAuMTE3MjM2LCAwLjE0NDkzMSIsIFwKLSAgICAgICAgICAiMC4wMjM5NzIsIDAuMDI3OTE0LCAwLjA0NTgxMywgMC4wNTk4ODQsIDAuMDc5NzI4LCAwLjEyMTM2NSwgMC4xNDgwNTUiLCBcCi0gICAgICAgICAgIjAuMDI5NTAyLCAwLjAzNDM0MywgMC4wNTQ3MjIsIDAuMDY5MTYsIDAuMDg4MDU4LCAwLjEyODMxNywgMC4xNTQxODEiLCBcCi0gICAgICAgICAgIjAuMDM0Njc4LCAwLjAzOTgxNywgMC4wNjI2NSwgMC4wNzg4NzgsIDAuMDk3NTY1LCAwLjEzNjE2MSwgMC4xNjA5OTUiLCBcCi0gICAgICAgICAgIjAuMDQyMTUyLCAwLjA0ODIwMywgMC4wNzM2MDQsIDAuMDkxODMzLCAwLjExMzU3NCwgMC4xNTExNTksIDAuMTc0NzI0IiwgXAotICAgICAgICAgICIwLjA0Nzk4OCwgMC4wNTQ4OTQsIDAuMDgyOTQyLCAwLjEwMjM1OSwgMC4xMjQ4NTksIDAuMTY0MzQ1LCAwLjE4ODE1OSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDc1NjIsIDAuMDA5MTk5LCAwLjAxODQxNCwgMC4wMjY0NjksIDAuMDM3MiwgMC4wNTg2MjIsIDAuMDcxOTkxIiwgXAotICAgICAgICAgICIwLjAxMzg0MiwgMC4wMTYzNTUsIDAuMDI2ODkzLCAwLjAzNDkzNywgMC4wNDU2NTUsIDAuMDY3MDgyLCAwLjA4MDQ3OSIsIFwKLSAgICAgICAgICAiMC4wMTgyNTcsIDAuMDIxNjg0LCAwLjAzNjAwNywgMC4wNDU2NTgsIDAuMDU2NDYzLCAwLjA3Nzc3LCAwLjA5MTE1IiwgXAotICAgICAgICAgICIwLjAyMTQyMywgMC4wMjU0MTQsIDAuMDQyODIxLCAwLjA1NDQ0NCwgMC4wNjY4MzQsIDAuMDg4NTI5LCAwLjEwMTkwMyIsIFwKLSAgICAgICAgICAiMC4wMjQwMTgsIDAuMDI4NjgsIDAuMDQ4MjA2LCAwLjA2MTMyMSwgMC4wNzYwNTksIDAuMDk5NzMzLCAwLjExMjg1OCIsIFwKLSAgICAgICAgICAiMC4wMjc1NzEsIDAuMDMyODM3LCAwLjA1NTY3LCAwLjA3MDgzNywgMC4wODc0MiwgMC4xMTUyMTEsIDAuMTI5OTUyIiwgXAotICAgICAgICAgICIwLjAzMDA0MiwgMC4wMzYwMzksIDAuMDYxMSwgMC4wNzc1OTQsIDAuMDk2MTYsIDAuMTI2OTIzLCAwLjE0MzQ1NiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDk1OTIsIDAuMDEyNzYxLCAwLjAzMTM3MiwgMC4wNDc5NDUsIDAuMDcwMDgyLCAwLjExNDE5NCwgMC4xNDIwNTUiLCBcCi0gICAgICAgICAgIjAuMDE2NDcsIDAuMDE5NDIxLCAwLjAzNTI3NiwgMC4wNTA0MTcsIDAuMDcxNDUxLCAwLjExNDYwOCwgMC4xNDE3ODUiLCBcCi0gICAgICAgICAgIjAuMDIzNDIxLCAwLjAyNzI3NywgMC4wNDQzMTgsIDAuMDU4MTYsIDAuMDc3NTkyLCAwLjExODUsIDAuMTQ0ODc2IiwgXAotICAgICAgICAgICIwLjAyOTE2OSwgMC4wMzM5MDcsIDAuMDUzMywgMC4wNjcxNywgMC4wODU5NDMsIDAuMTI1MDI1LCAwLjE1MDMyMiIsIFwKLSAgICAgICAgICAiMC4wMzQzODksIDAuMDM5MzM3LCAwLjA2MTYyNiwgMC4wNzY3MjYsIDAuMDk0ODMxLCAwLjEzMjY4MSwgMC4xNTcxMjEiLCBcCi0gICAgICAgICAgIjAuMDQxODIsIDAuMDQ4MDE2LCAwLjA3MzE1MSwgMC4wOTAyMjYsIDAuMTEwNTE3LCAwLjE0NjgzMiwgMC4xNzAzMDQiLCBcCi0gICAgICAgICAgIjAuMDQ4NDc3LCAwLjA1NDM2OSwgMC4wODE5NzgsIDAuMTAxNDgzLCAwLjEyMjgxMiwgMC4xNTk2NTksIDAuMTgyMTkzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE1NTk1LCAwLjAxNTcxNiwgMC4wMTYwNjUsIDAuMDE2MTY0LCAwLjAxNjIyNCwgMC4wMTYyODMsIDAuMDE2MyIsIFwKLSAgICAgICAgICAiMC4wMTU3NjMsIDAuMDE1Njk3LCAwLjAxNTc1NSwgMC4wMTU4NjQsIDAuMDE1OTYzLCAwLjAxNjA4NSwgMC4wMTYxMzMiLCBcCi0gICAgICAgICAgIjAuMDE3MDkxLCAwLjAxNjg0OSwgMC4wMTY1MDMsIDAuMDE2MzM0LCAwLjAxNjI1OCwgMC4wMTYyNDksIDAuMDE2MjI0IiwgXAotICAgICAgICAgICIwLjAxODgwNSwgMC4wMTgzOTUsIDAuMDE3Mzg1LCAwLjAxNjk2LCAwLjAxNjcxNSwgMC4wMTY5NDgsIDAuMDE2ODI1IiwgXAotICAgICAgICAgICIwLjAyMDc4LCAwLjAyMDMwMSwgMC4wMTg3NzUsIDAuMDE4MjE1LCAwLjAxNzY4NSwgMC4wMTcxODMsIDAuMDE3MDIxIiwgXAotICAgICAgICAgICIwLjAyNDA2NiwgMC4wMjM1MTgsIDAuMDIxMDQyLCAwLjAyMDEwNiwgMC4wMTk5MzYsIDAuMDE4ODIxLCAwLjAxODQ0OSIsIFwKLSAgICAgICAgICAiMC4wMjcxMDMsIDAuMDI2NTAzLCAwLjAyMzUzMywgMC4wMjIxNzIsIDAuMDIxMjI2LCAwLjAyMDMxMiwgMC4wMTk3MTMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDEyMTksIDAuMDAxMDY3LCAwLjAwMDY1NiwgMC4wMDA1MywgMC4wMDA0NSwgMC4wMDAzNzcsIDAuMDAwMzU0IiwgXAotICAgICAgICAgICIwLjAwMTE4OCwgMC4wMDEwNTgsIDAuMDAwOTU0LCAwLjAwMDgzLCAwLjAwMDcxMywgMC4wMDA1NzQsIDAuMDAwNTIzIiwgXAotICAgICAgICAgICIwLjAwMDE2LCAwLjAwMDA5NCwgMC4wMDA0NjksIDAuMDAwNTg0LCAwLjAwMDYxOSwgMC4wMDA1NzIsIDAuMDAwNTQ4IiwgXAotICAgICAgICAgICIwLjAwMTk5MiwgMC4wMDE2ODcsIDAuMDAwNDQxLCAwLjAwMDE0NiwgMC4wMDAyMzEsIDAuMDAwMDM3LCAwLjAwMDA5NSIsIFwKLSAgICAgICAgICAiMC4wMDM4NTcsIDAuMDAzMzcyLCAwLjAwMjA0LCAwLjAwMTIxMSwgMC4wMDA3MzMsIDAuMDAxMDg3LCAwLjAwMDg1MyIsIFwKLSAgICAgICAgICAiMC4wMDcyODgsIDAuMDA2NjQ0LCAwLjAwNDU1OCwgMC4wMDM3NDUsIDAuMDAzMzIxLCAwLjAwMjA2OCwgMC4wMDE2NzYiLCBcCi0gICAgICAgICAgIjAuMDEwNTA5LCAwLjAwOTY0LCAwLjAwNjk0NCwgMC4wMDYyMDIsIDAuMDA0ODIzLCAwLjAwMzE2OSwgMC4wMDI2MzEiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IENMS0lOVlgxNiAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKENMS0lOVlgxNikgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAxLjU4NDE0OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMTIzODkzOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAxMjM4NDM7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDEyMzg5MzsKLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiA1LjIyNjEyOwotICAgIGZ1bmN0aW9uIDogIighQSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjYxNiwgMC4wMDc4NTYsIDAuMDE0Nzk1LCAwLjAyMDg1OSwgMC4wMjg5MzUsIDAuMDQ1MDM2LCAwLjA1NTEzNiIsIFwKLSAgICAgICAgICAiMC4wMTE4MjIsIDAuMDEzOTU3LCAwLjAyMzA1NiwgMC4wMjkxODUsIDAuMDM3MjI4LCAwLjA1MzM0OCwgMC4wNjM0MTEiLCBcCi0gICAgICAgICAgIjAuMDE1MTU5LCAwLjAxODAzNywgMC4wMzAzOTEsIDAuMDM4NjgsIDAuMDQ3NzIsIDAuMDYzNzcyLCAwLjA3MzgyMSIsIFwKLSAgICAgICAgICAiMC4wMTczMDMsIDAuMDIwNzMxLCAwLjAzNTUxMiwgMC4wNDU0ODIsIDAuMDU2MzgxLCAwLjA3NDU5MywgMC4wODQ1OCIsIFwKLSAgICAgICAgICAiMC4wMTg5NDksIDAuMDIyNzQyLCAwLjAzOTc1NSwgMC4wNTEwMTMsIDAuMDYzMjg3LCAwLjA4Mzg5OSwgMC4wOTQ5NDMiLCBcCi0gICAgICAgICAgIjAuMDIwOTQyLCAwLjAyNTI4NiwgMC4wNDQ5OTUsIDAuMDU4MDA3LCAwLjA3Mjc2NiwgMC4wOTYyNzgsIDAuMTA5MTYiLCBcCi0gICAgICAgICAgIjAuMDIyMTQ0LCAwLjAyNjg5NCwgMC4wNDg1MTksIDAuMDYzMDc0LCAwLjA3OTIzNSwgMC4xMDUyNDksIDAuMTE5NjMyIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwODU1NCwgMC4wMTA5NDQsIDAuMDI1MDkzLCAwLjAzNzg4LCAwLjA1NDkzMSwgMC4wODkxMjUsIDAuMTEwMzgyIiwgXAotICAgICAgICAgICIwLjAxNTU1MiwgMC4wMTgxMDIsIDAuMDMwMjU0LCAwLjA0MTU3MiwgMC4wNTczMTUsIDAuMDg5OTAzLCAwLjExMDkxNCIsIFwKLSAgICAgICAgICAiMC4wMjE2OTcsIDAuMDI1MDExLCAwLjAzOTY5NiwgMC4wNTA0ODUsIDAuMDY1MDQxLCAwLjA5NTYzMSwgMC4xMTU0MDIiLCBcCi0gICAgICAgICAgIjAuMDI3MDY5LCAwLjAzMDg4MiwgMC4wNDgxNzcsIDAuMDYwMDMyLCAwLjA3NDIxMywgMC4xMDM0MTUsIDAuMTIyMzU5IiwgXAotICAgICAgICAgICIwLjAzMTk5OCwgMC4wMzYzNzksIDAuMDU0ODM1LCAwLjA2ODA0MiwgMC4wODQwMjMsIDAuMTEyMzgxLCAwLjEzMDczNyIsIFwKLSAgICAgICAgICAiMC4wMzg5MjQsIDAuMDQ0MDgxLCAwLjA2NTA1OCwgMC4wODAxNTYsIDAuMDk3NzM0LCAwLjEyNzg3OCwgMC4xNDYyMDIiLCBcCi0gICAgICAgICAgIjAuMDQ0NzU5LCAwLjA1MDM4NSwgMC4wNzMzODMsIDAuMDg5NzYzLCAwLjEwODY2NCwgMC4xNDE1NjIsIDAuMTU5MDM4Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjc2MSwgMC4wMDgwMTgsIDAuMDE1MDEyLCAwLjAyMTExMSwgMC4wMjkyMjQsIDAuMDQ1NDE1LCAwLjA1NTU3IiwgXAotICAgICAgICAgICIwLjAxMjQ2NCwgMC4wMTQ1NjYsIDAuMDIzNDA3LCAwLjAyOTU3NCwgMC4wMzc2NjQsIDAuMDUzODU4LCAwLjA2Mzk3NSIsIFwKLSAgICAgICAgICAiMC4wMTYzNDUsIDAuMDE5MjYxLCAwLjAzMTIwNCwgMC4wMzkzMzksIDAuMDQ4NDIyLCAwLjA2NDU5MSwgMC4wNzQ2NDgiLCBcCi0gICAgICAgICAgIjAuMDE5MjM4LCAwLjAyMjU3OCwgMC4wMzcwNzksIDAuMDQ2ODM2LCAwLjA1Nzc2MiwgMC4wNzUwMDEsIDAuMDg1MzU4IiwgXAotICAgICAgICAgICIwLjAyMTYzOCwgMC4wMjUzNTksIDAuMDQxNzk1LCAwLjA1Mjg3MywgMC4wNjUzMjksIDAuMDg1ODE5LCAwLjA5NjU2MSIsIFwKLSAgICAgICAgICAiMC4wMjQ0MzMsIDAuMDI4OTcyLCAwLjA0ODAxLCAwLjA2MDg0LCAwLjA3NDkwMiwgMC4wOTg1NTUsIDAuMTExMjkyIiwgXAotICAgICAgICAgICIwLjAyNjc3NSwgMC4wMzE1NzgsIDAuMDUyNjA5LCAwLjA2NjgyMSwgMC4wODI1NjIsIDAuMTA4NywgMC4xMjI3MTIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA4MTY2LCAwLjAxMDU1NiwgMC4wMjQ2MjEsIDAuMDM3Mjk2LCAwLjA1NDA5NSwgMC4wODc3NTMsIDAuMTA4ODk4IiwgXAotICAgICAgICAgICIwLjAxNDk4MSwgMC4wMTczNzYsIDAuMDI5Mzc2LCAwLjA0MDY0NiwgMC4wNTYyMzgsIDAuMDg4NjgzLCAwLjEwOTE5OCIsIFwKLSAgICAgICAgICAiMC4wMjEzODksIDAuMDI0NSwgMC4wMzg4OTQsIDAuMDQ5MzU1LCAwLjA2MzU2MSwgMC4wOTM4MzQsIDAuMTEzMzkiLCBcCi0gICAgICAgICAgIjAuMDI2NzYzLCAwLjAzMDUyMiwgMC4wNDcwMiwgMC4wNTg0NzEsIDAuMDcyNTksIDAuMTAxMjgzLCAwLjEyMDM1NSIsIFwKLSAgICAgICAgICAiMC4wMzE2NDgsIDAuMDM1Nzk1LCAwLjA1NDM3NSwgMC4wNjcyMiwgMC4wODE3ODIsIDAuMTA5NjQ2LCAwLjEyODA4OSIsIFwKLSAgICAgICAgICAiMC4wMzkxNjksIDAuMDQzNTAyLCAwLjA2NDg2MiwgMC4wNzkyNTIsIDAuMDk2NzE3LCAwLjEyNTMwOSwgMC4xNDI5MjgiLCBcCi0gICAgICAgICAgIjAuMDQ1MDg5LCAwLjA1MDE1NiwgMC4wNzI3MDQsIDAuMDg4NzU0LCAwLjEwNzUyOCwgMC4xMzg2MzMsIDAuMTU1NDY2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE5NzIxLCAwLjAxOTg4OCwgMC4wMjAzNDUsIDAuMDIwNDk5LCAwLjAyMDYwMywgMC4wMjA2OTYsIDAuMDIwNzMxIiwgXAotICAgICAgICAgICIwLjAyMDE2MywgMC4wMjAwNjcsIDAuMDIwMDIzLCAwLjAyMDEyMSwgMC4wMjAyNSwgMC4wMjA0MDYsIDAuMDIwNDUiLCBcCi0gICAgICAgICAgIjAuMDIyMDE3LCAwLjAyMTcxNCwgMC4wMjA5NDQsIDAuMDIwNzg1LCAwLjAyMDg4MiwgMC4wMjA3NjUsIDAuMDIwNzUiLCBcCi0gICAgICAgICAgIjAuMDI0NTAxLCAwLjAyMzkzOCwgMC4wMjI3ODYsIDAuMDIyMDg4LCAwLjAyMjQ2OSwgMC4wMjE5MzYsIDAuMDIxNzQ1IiwgXAotICAgICAgICAgICIwLjAyNzIyLCAwLjAyNjgzNywgMC4wMjQ2MywgMC4wMjM3MTIsIDAuMDIzNjE4LCAwLjAyMjY2NSwgMC4wMjIzNDQiLCBcCi0gICAgICAgICAgIjAuMDMxODE0LCAwLjAzMTMxMiwgMC4wMjgyNDcsIDAuMDI2Nzk0LCAwLjAyNTU4NSwgMC4wMjQ5ODEsIDAuMDI0MzU0IiwgXAotICAgICAgICAgICIwLjAzNjAyNywgMC4wMzU1NDQsIDAuMDMxNjUxLCAwLjAyOTg1NSwgMC4wMjgyMzUsIDAuMDI3MzE5LCAwLjAyNjQxNCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTkyMSwgMC4wMDE3MDQsIDAuMDAxMTM3LCAwLjAwMDk0MywgMC4wMDA4MTIsIDAuMDAwNjkyLCAwLjAwMDY1MyIsIFwKLSAgICAgICAgICAiMC4wMDE2NTQsIDAuMDAxNzIzLCAwLjAwMTcwOSwgMC4wMDE1MjksIDAuMDAxMzQ4LCAwLjAwMTExNywgMC4wMDEwMjEiLCBcCi0gICAgICAgICAgIjAuMDAwMzE2LCAwLjAwMDAwNSwgMC4wMDA0ODMsIDAuMDAwNzY0LCAwLjAwMDg4NSwgMC4wMDA4ODcsIDAuMDAwODYzIiwgXAotICAgICAgICAgICIwLjAwMjk0NiwgMC4wMDI0NDQsIDAuMDAwOTc1LCAwLjAwMDI5NiwgMC4wMDAwOTcsIDAuMDAwMjEsIDAuMDAwMDEzIiwgXAotICAgICAgICAgICIwLjAwNTY3NywgMC4wMDUwNDksIDAuMDAzODI1LCAwLjAwMjg1NSwgMC4wMDIwMTEsIDAuMDAxMjA0LCAwLjAwMDY5NCIsIFwKLSAgICAgICAgICAiMC4wMTA3MiwgMC4wMDkzNzUsIDAuMDA2ODU2LCAwLjAwNTQzNSwgMC4wMDUyNTMsIDAuMDAzNTA1LCAwLjAwMjgxNiIsIFwKLSAgICAgICAgICAiMC4wMTUxNTIsIDAuMDE0MDIzLCAwLjAxMDExOCwgMC4wMDg0NDYsIDAuMDA3NzQxLCAwLjAwNTM1NywgMC4wMDQ0MDIiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogQ0xLSU5WWDIgKgotICogLS0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKENMS0lOVlgyKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMTgyMDk0OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE3MTY2OTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE3MTY2OTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE3MTYzOTsKLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjY5MjQ5OTsKLSAgICBmdW5jdGlvbiA6ICIoIUEpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTk5OTksIDAuMDk2NiwgMC4xNTc4MjcsIDAuMjM0MzE2LCAwLjMxMDczOCwgMC4zODc2NSwgMC40NjM5NDIiLCBcCi0gICAgICAgICAgIjAuMDI4MjY3LCAwLjEwNDgxNCwgMC4xNjYwNDUsIDAuMjQyNjAyLCAwLjMxOTQxMiwgMC4zOTU1OTgsIDAuNDcyMTUxIiwgXAotICAgICAgICAgICIwLjAzNzU0MiwgMC4xMTUwNzQsIDAuMTc2MzA5LCAwLjI1Mjg1NSwgMC4zMjkyMDksIDAuNDA1OTU0LCAwLjQ4MjE1OSIsIFwKLSAgICAgICAgICAiMC4wNDQwNTIsIDAuMTI1NzcsIDAuMTg2OTUxLCAwLjI2Mjk1NSwgMC4zMzk5NjEsIDAuNDE2NTQ4LCAwLjQ5MjgyNiIsIFwKLSAgICAgICAgICAiMC4wNDkyOTEsIDAuMTM2MDg4LCAwLjE5NzE1NSwgMC4yNzM2NTEsIDAuMzQ5NzY4LCAwLjQyNjU5MywgMC41MDMwNDIiLCBcCi0gICAgICAgICAgIjAuMDU2MjMsIDAuMTUzMDc2LCAwLjIxMzkyNywgMC4yOTAyOTMsIDAuMzY2NjkyLCAwLjQ0MzQxMywgMC41MjAwMTkiLCBcCi0gICAgICAgICAgIjAuMDYwOTQ0LCAwLjE2NzgwNiwgMC4yMjg3NjUsIDAuMzA0OTY1LCAwLjM4MTM3OSwgMC40NTc3OTcsIDAuNTM0MzIxIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzNTk5NCwgMC4xOTcxNTQsIDAuMzI2MjgzLCAwLjQ4NzI3MiwgMC42NDgxMjcsIDAuODA5OTMsIDAuOTcwODM1IiwgXAotICAgICAgICAgICIwLjAzOTg2MiwgMC4xOTcyMTEsIDAuMzI2MDc1LCAwLjQ4NzI2LCAwLjY0ODczNiwgMC44MDk1ODUsIDAuOTcxMzU0IiwgXAotICAgICAgICAgICIwLjA0ODcyNiwgMC4xOTg1MTMsIDAuMzI2MDgxLCAwLjQ4NzIxMSwgMC42NDkwNDcsIDAuODA5NTUsIDAuOTcwMzAzIiwgXAotICAgICAgICAgICIwLjA1ODIyLCAwLjIwMjg0NiwgMC4zMjc0MTgsIDAuNDg3MjQxLCAwLjY0ODA4NywgMC44MDk5NTEsIDAuOTcwNTU1IiwgXAotICAgICAgICAgICIwLjA2NjYwOCwgMC4yMDg4OTMsIDAuMzMxNTU3LCAwLjQ4ODA1MiwgMC42NDg0MTQsIDAuODA5MjMsIDAuOTcwNDMyIiwgXAotICAgICAgICAgICIwLjA3Nzk5MSwgMC4yMjA3NTksIDAuMzM5MzkzLCAwLjQ5MzkxMiwgMC42NTA1NzIsIDAuODA5OTE5LCAwLjk3MDYwNyIsIFwKLSAgICAgICAgICAiMC4wODc2NzksIDAuMjMyNDQzLCAwLjM0ODQ1MSwgMC41MDAyNDEsIDAuNjU1NTU4LCAwLjgxMzQzMiwgMC45NzExNyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTk5NjgsIDAuMDk1ODgxLCAwLjE1NjU4NSwgMC4yMzIyNDMsIDAuMzA4MjMyLCAwLjM4Mzg2MiwgMC40NTk0ODUiLCBcCi0gICAgICAgICAgIjAuMDI4Mzc1LCAwLjEwNDE5NCwgMC4xNjQ4NDcsIDAuMjQwNTg4LCAwLjMxNjM0LCAwLjM5MjI1LCAwLjQ2Nzg4OCIsIFwKLSAgICAgICAgICAiMC4wMzc4MTMsIDAuMTE0NzA4LCAwLjE3NTI3OSwgMC4yNTExMzcsIDAuMzI2ODI4LCAwLjQwMjczNiwgMC40Nzg0NjIiLCBcCi0gICAgICAgICAgIjAuMDQ0ODgxLCAwLjEyNTM4LCAwLjE4NTkwMywgMC4yNjA0NzgsIDAuMzM3NDQ4LCAwLjQxMjkxMSwgMC40ODg3MTUiLCBcCi0gICAgICAgICAgIjAuMDUwNTI1LCAwLjEzNjMxNCwgMC4xOTY2NTQsIDAuMjcyNDI4LCAwLjM0Nzk0NSwgMC40MjM5NjcsIDAuNDk5NjYzIiwgXAotICAgICAgICAgICIwLjA1ODQxOCwgMC4xNTMzMTksIDAuMjEzNjUzLCAwLjI4OTIzLCAwLjM2NDg3NSwgMC40NDA3MjcsIDAuNTE2NTI0IiwgXAotICAgICAgICAgICIwLjA2Mzk0NiwgMC4xNjgzODcsIDAuMjI4NzIzLCAwLjMwNDE2NCwgMC4zNzk3NjcsIDAuNDU1NDQ2LCAwLjUzMTMwNSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzQ5NjQsIDAuMTkyMzQ0LCAwLjMxODI1LCAwLjQ3NTQzMywgMC42MzI5NjQsIDAuNzkwMDk2LCAwLjk0NzIyMSIsIFwKLSAgICAgICAgICAiMC4wMzg2MzEsIDAuMTkyNjM1LCAwLjMxODEzOSwgMC40NzUzNTgsIDAuNjMzOTQ3LCAwLjc5MDA2OCwgMC45NDc4OTgiLCBcCi0gICAgICAgICAgIjAuMDQ3NTMxLCAwLjE5MzkwNywgMC4zMTg1NDksIDAuNDc1NDUxLCAwLjYzMzY3OCwgMC43OTAwNjMsIDAuOTQ3ODQ3IiwgXAotICAgICAgICAgICIwLjA1Njc0LCAwLjE5Nzc2MSwgMC4zMjAwNDMsIDAuNDc2MjA1LCAwLjYzMjgwMywgMC43OTAyLCAwLjk0NzQzNCIsIFwKLSAgICAgICAgICAiMC4wNjU1NjEsIDAuMjAzODgzLCAwLjMyMzM1MiwgMC40NzY0MTUsIDAuNjMyOTg2LCAwLjc5MDE3MywgMC45NDg4MjYiLCBcCi0gICAgICAgICAgIjAuMDc2ODc3LCAwLjIxNTE5MywgMC4zMzEzNzIsIDAuNDgyMTE4LCAwLjYzNDUzOSwgMC43OTAzNiwgMC45NDczODMiLCBcCi0gICAgICAgICAgIjAuMDg2NTYyLCAwLjIyNjQxNiwgMC4zNDAxMTUsIDAuNDg4MTMyLCAwLjYzOTc2NiwgMC43OTM5NTEsIDAuOTQ3OTY0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyNjc0LCAwLjAwMjcwOSwgMC4wMDI3MTIsIDAuMDAyNzE0LCAwLjAwMjcxNSwgMC4wMDI3MTYsIDAuMDAyNzE2IiwgXAotICAgICAgICAgICIwLjAwMjYzLCAwLjAwMjY4OSwgMC4wMDI3LCAwLjAwMjcwNiwgMC4wMDI3MDksIDAuMDAyNzEsIDAuMDAyNzEyIiwgXAotICAgICAgICAgICIwLjAwMjcxOCwgMC4wMDI3MTYsIDAuMDAyNzEsIDAuMDAyNzE3LCAwLjAwMjcxNSwgMC4wMDI3MTcsIDAuMDAyNzE2IiwgXAotICAgICAgICAgICIwLjAwMjk3NSwgMC4wMDI3NiwgMC4wMDI3NDUsIDAuMDAyNzMzLCAwLjAwMjczNSwgMC4wMDI3MzEsIDAuMDAyNzMxIiwgXAotICAgICAgICAgICIwLjAwMzE0LCAwLjAwMjg0NSwgMC4wMDI3OTcsIDAuMDAyNzc2LCAwLjAwMjc1NywgMC4wMDI3NTUsIDAuMDAyNzQ5IiwgXAotICAgICAgICAgICIwLjAwMzU3MiwgMC4wMDMwMjgsIDAuMDAyOTIsIDAuMDAyODY0LCAwLjAwMjgzMSwgMC4wMDI4MTMsIDAuMDAyNzk5IiwgXAotICAgICAgICAgICIwLjAwMzk5LCAwLjAwMzIxNiwgMC4wMDMwNDksIDAuMDAyOTYsIDAuMDAyOTA4LCAwLjAwMjg3NCwgMC4wMDI4NTQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDAxMzcsIDAuMDAwMDksIDAuMDAwMDg1LCAwLjAwMDA4MywgMC4wMDAwODEsIDAuMDAwMDgxLCAwLjAwMDA4IiwgXAotICAgICAgICAgICIwLjAwMDE5OSwgMC4wMDAxMTcsIDAuMDAwMTAzLCAwLjAwMDA5NSwgMC4wMDAwOTEsIDAuMDAwMDg4LCAwLjAwMDA4NiIsIFwKLSAgICAgICAgICAiMC4wMDAwNywgMC4wMDAxMDEsIDAuMDAwMDk0LCAwLjAwMDA5MSwgMC4wMDAwODgsIDAuMDAwMDg2LCAwLjAwMDA4NSIsIFwKLSAgICAgICAgICAiMC4wMDAwODQsIDAuMDAwMDAxLCAwLjAwMDAyOSwgMC4wMDAwNDgsIDAuMDAwMDUzLCAwLjAwMDA2MSwgMC4wMDAwNjQiLCBcCi0gICAgICAgICAgIjAuMDAwNDA4LCAwLjAwMDAxNSwgMC4wMDAwMjYsIDAuMDAwMDQyLCAwLjAwMDA1LCAwLjAwMDA1NiwgMC4wMDAwNiIsIFwKLSAgICAgICAgICAiMC4wMDA4MDEsIDAuMDAwMjI0LCAwLjAwMDExOCwgMC4wMDAwNjIsIDAuMDAwMDI4LCAwLjAwMDAwOCwgMC4wMDAwMDQiLCBcCi0gICAgICAgICAgIjAuMDAxMjQ3LCAwLjAwMDQyMiwgMC4wMDAyNTUsIDAuMDAwMTU3LCAwLjAwMDEwOCwgMC4wMDAwNzQsIDAuMDAwMDUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IENMS0lOVlgyMCAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKENMS0lOVlgyMCkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAxLjk3MjU0OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMTU3NzYzOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAxNTc3NjM7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDE1Nzc0OTsKLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiA2LjUwMDMxOwotICAgIGZ1bmN0aW9uIDogIighQSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjM4OSwgMC4wMTQ2MTQsIDAuMDIxMTIsIDAuMDI5MjI0LCAwLjAzNzI5NywgMC4wNDU0MTgsIDAuMDUzNDY0IiwgXAotICAgICAgICAgICIwLjAxMTQxNCwgMC4wMjI4MzUsIDAuMDI5NDE4LCAwLjAzNzUwNiwgMC4wNDU1OTksIDAuMDUzNzEzLCAwLjA2MTc3OSIsIFwKLSAgICAgICAgICAiMC4wMTQ1NDMsIDAuMDMwMDYsIDAuMDM4ODg4LCAwLjA0ODEzLCAwLjA1NjE3NywgMC4wNjQyMzUsIDAuMDcyMzQzIiwgXAotICAgICAgICAgICIwLjAxNjU4NSwgMC4wMzUyMTQsIDAuMDQ2MDA5LCAwLjA1NjY5NiwgMC4wNjYzMDMsIDAuMDc0OTczLCAwLjA4Mjg3NCIsIFwKLSAgICAgICAgICAiMC4wMTc5NDMsIDAuMDM5MzAxLCAwLjA1MTI5MSwgMC4wNjM5OTcsIDAuMDc1MDMyLCAwLjA4NDc1NSwgMC4wOTMxMzgiLCBcCi0gICAgICAgICAgIjAuMDE5OTkzLCAwLjA0NDU0OSwgMC4wNTg1NzcsIDAuMDczMTU4LCAwLjA4NTcxNSwgMC4wOTcwMywgMC4xMDc2MjgiLCBcCi0gICAgICAgICAgIjAuMDIxMjQxLCAwLjA0ODA5OSwgMC4wNjM4NjksIDAuMDc5ODY4LCAwLjA5MzkxMiwgMC4xMDYwNDIsIDAuMTE3NTk4Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwODA0NCwgMC4wMjQ2LCAwLjAzODMwOCwgMC4wNTU0MTEsIDAuMDcyNTAxLCAwLjA4OTY4NCwgMC4xMDY5MjMiLCBcCi0gICAgICAgICAgIjAuMDE0ODg5LCAwLjAyOTc5NiwgMC4wNDE5MjIsIDAuMDU3NzQxLCAwLjA3NDA2OSwgMC4wOTA0NzYsIDAuMTA3MzY4IiwgXAotICAgICAgICAgICIwLjAyMDk3NywgMC4wMzkzMDYsIDAuMDUwOTExLCAwLjA2NTM4MywgMC4wODA0MzgsIDAuMDk2MDQsIDAuMTExOTA3IiwgXAotICAgICAgICAgICIwLjAyNjIyLCAwLjA0NzM3LCAwLjA1OTk0OCwgMC4wNzQ2NDcsIDAuMDg5MDMsIDAuMTAzOTc4LCAwLjExOTEwMyIsIFwKLSAgICAgICAgICAiMC4wMzExMzUsIDAuMDU0NDIxLCAwLjA2ODg0NCwgMC4wODM5OTgsIDAuMDk4MTM5LCAwLjExMjM2NSwgMC4xMjc3MyIsIFwKLSAgICAgICAgICAiMC4wMzc3MjcsIDAuMDY0NjMxLCAwLjA4MDUzNCwgMC4wOTgwNDYsIDAuMTEzNTI4LCAwLjEyNzkyNSwgMC4xNDI3MTkiLCBcCi0gICAgICAgICAgIjAuMDQzNDM0LCAwLjA3Mjc5NiwgMC4wODk3NTYsIDAuMTA5MDE4LCAwLjEyNTQ2MiwgMC4xNDE1NTMsIDAuMTU1NzE5Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjQ5OCwgMC4wMTQ3MjcsIDAuMDIxMjE5LCAwLjAyOTMyLCAwLjAzNzM5OSwgMC4wNDU0NjEsIDAuMDUzNTI5IiwgXAotICAgICAgICAgICIwLjAxMTk2NSwgMC4wMjMxNzksIDAuMDI5NzE2LCAwLjAzNzc4MSwgMC4wNDU4NjEsIDAuMDUzOTQ0LCAwLjA2MjAxNyIsIFwKLSAgICAgICAgICAiMC4wMTU3ODQsIDAuMDMwODQyLCAwLjAzOTU1MywgMC4wNDg1NzgsIDAuMDU2Njg3LCAwLjA2NDcxNSwgMC4wNzI3NzYiLCBcCi0gICAgICAgICAgIjAuMDE4MzgxLCAwLjAzNjY0NywgMC4wNDY4OTgsIDAuMDU3NzIsIDAuMDY3MjI3LCAwLjA3NTE5NywgMC4wODM1NjMiLCBcCi0gICAgICAgICAgIjAuMDIwNjgsIDAuMDQxMjU4LCAwLjA1MzIzOCwgMC4wNjU1MjQsIDAuMDc1ODExLCAwLjA4NTQ5MywgMC4wOTQzNzQiLCBcCi0gICAgICAgICAgIjAuMDIzMzk1LCAwLjA0NzQxNywgMC4wNjEyMjYsIDAuMDc1NDg5LCAwLjA4NzkyOCwgMC4wOTkyMjQsIDAuMTA5NDgzIiwgXAotICAgICAgICAgICIwLjAyNTgsIDAuMDUxOTA1LCAwLjA2NzExNiwgMC4wODI4MTYsIDAuMDk2NDgsIDAuMTA4ODI3LCAwLjEyMDIyOSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDc1OCwgMC4wMjM4MDUsIDAuMDM3MTk3LCAwLjA1MzgwNywgMC4wNzA0NzksIDAuMDg3Mjg4LCAwLjEwMzgyOCIsIFwKLSAgICAgICAgICAiMC4wMTQzNjcsIDAuMDI4NjYzLCAwLjA0MDQ5MSwgMC4wNTU4OTQsIDAuMDcxNzM2LCAwLjA4ODA0MywgMC4xMDQyMjYiLCBcCi0gICAgICAgICAgIjAuMDIwNDk4LCAwLjAzODE0MywgMC4wNDkxMzEsIDAuMDYzMTk2LCAwLjA3ODA1OCwgMC4wOTMxODUsIDAuMTA4NjM3IiwgXAotICAgICAgICAgICIwLjAyNTgzMywgMC4wNDYxNTQsIDAuMDU4NjMzLCAwLjA3MjU0MSwgMC4wODYyMDEsIDAuMTAwMjQ3LCAwLjExNTQyOCIsIFwKLSAgICAgICAgICAiMC4wMzA4NjQsIDAuMDUzNTc1LCAwLjA2NjkyNywgMC4wODE2OTMsIDAuMDk1NjEzLCAwLjEwOTM5MiwgMC4xMjM3MjUiLCBcCi0gICAgICAgICAgIjAuMDM4MTE3LCAwLjA2Mzc3MSwgMC4wNzkyNTksIDAuMDk1OTgyLCAwLjExMDMwMSwgMC4xMjM4MjUsIDAuMTM4MjE5IiwgXAotICAgICAgICAgICIwLjA0MzY0NSwgMC4wNzE4MjcsIDAuMDg4ODc5LCAwLjEwNzQzOSwgMC4xMjMyOTYsIDAuMTM4MDk1LCAwLjE1MTMwNSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyNTk5MSwgMC4wMjY4NCwgMC4wMjcwNTQsIDAuMDI3MTc2LCAwLjAyNzI1MiwgMC4wMjczLCAwLjAyNzMzMyIsIFwKLSAgICAgICAgICAiMC4wMjY0ODEsIDAuMDI2NjI3LCAwLjAyNjcxNywgMC4wMjY4NDgsIDAuMDI2OTQ5LCAwLjAyNzAzNSwgMC4wMjcwOTQiLCBcCi0gICAgICAgICAgIjAuMDI5MDk2LCAwLjAyNzgyNSwgMC4wMjczOTQsIDAuMDI3MjQ2LCAwLjAyNzIxMiwgMC4wMjcxOTksIDAuMDI3MjIyIiwgXAotICAgICAgICAgICIwLjAzMjIzOCwgMC4wMjk2MzIsIDAuMDI4NzQ5LCAwLjAyODczMSwgMC4wMjgzNzksIDAuMDI4MTg2LCAwLjAyODAzNyIsIFwKLSAgICAgICAgICAiMC4wMzU4MjEsIDAuMDMxODg2LCAwLjAzMDg1MiwgMC4wMjk4OTUsIDAuMDI5MzY4LCAwLjAyOTIxMywgMC4wMjk1ODgiLCBcCi0gICAgICAgICAgIjAuMDQxMzA1LCAwLjAzNjIyNSwgMC4wMzQ1ODksIDAuMDMzNTA2LCAwLjAzMjM3MiwgMC4wMzMyODMsIDAuMDMyNzAxIiwgXAotICAgICAgICAgICIwLjA0NjgsIDAuMDQwNjI1LCAwLjAzODI0OSwgMC4wMzY0NzEsIDAuMDM1NDEzLCAwLjAzNDk0NCwgMC4wMzQwOCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjQyMSwgMC4wMDEzOTMsIDAuMDAxMTI5LCAwLjAwMDk2NSwgMC4wMDA4NzQsIDAuMDAwODE2LCAwLjAwMDc3NSIsIFwKLSAgICAgICAgICAiMC4wMDE4MjIsIDAuMDAxODY5LCAwLjAwMTY4OCwgMC4wMDE0ODgsIDAuMDAxMzQ0LCAwLjAwMTI0MSwgMC4wMDExNTEiLCBcCi0gICAgICAgICAgIjAuMDAwNDk4LCAwLjAwMDc1LCAwLjAwMTA3MSwgMC4wMDExODYsIDAuMDAxMTc5LCAwLjAwMTE1NywgMC4wMDExMiIsIFwKLSAgICAgICAgICAiMC4wMDM2MjIsIDAuMDAxNDExLCAwLjAwMDgyNywgMC4wMDAyMDQsIDAuMDAwMDk1LCAwLjAwMDI3MSwgMC4wMDA0MDMiLCBcCi0gICAgICAgICAgIjAuMDA3MTE0LCAwLjAwMzg0NSwgMC4wMDI0MTgsIDAuMDAxNjY0LCAwLjAwMTc4MSwgMC4wMDEzMzEsIDAuMDAxMDM5IiwgXAotICAgICAgICAgICIwLjAxMjgyMiwgMC4wMDgyMDYsIDAuMDA2Mzk2LCAwLjAwNTExLCAwLjAwMzg5NCwgMC4wMDMxOTQsIDAuMDAyNjg5IiwgXAotICAgICAgICAgICIwLjAxODgyMywgMC4wMTI3MzYsIDAuMDEwNDg3LCAwLjAwOTYxOSwgMC4wMDc5ODEsIDAuMDA2Njg5LCAwLjAwNTY4NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBDTEtJTlZYMyAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoQ0xLSU5WWDMpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4yNzMxNDsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAyNDQwMDk7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAyNDM5OTg7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAyNDQwMDk7Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMS4wMTkyNzsKLSAgICBmdW5jdGlvbiA6ICIoIUEpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxNTMyNCwgMC4wODg3ODcsIDAuMTYyMTA5LCAwLjIxNDQzOCwgMC4yOTgxODMsIDAuMzcxNjkxLCAwLjQ3NjE4MyIsIFwKLSAgICAgICAgICAiMC4wMjM1MjgsIDAuMDk2ODQ3LCAwLjE3MDE1NCwgMC4yMjI0ODEsIDAuMzA2NTQ1LCAwLjM3OTU5OCwgMC40ODQ2NDciLCBcCi0gICAgICAgICAgIjAuMDMwOTczLCAwLjEwNzM3MSwgMC4xODA2ODgsIDAuMjMyOTkyLCAwLjMxNjkxNCwgMC4zOTAxMjIsIDAuNDk0OTQ4IiwgXAotICAgICAgICAgICIwLjAzNjMwMiwgMC4xMTc3NTcsIDAuMTkwOTc1LCAwLjI0MzE2NiwgMC4zMjcxNDYsIDAuNDAwMzA0LCAwLjUwNDk3OCIsIFwKLSAgICAgICAgICAiMC4wNDA1NjIsIDAuMTI4MDkyLCAwLjIwMTE2OSwgMC4yNTM1MzEsIDAuMzM2NzQxLCAwLjQxMDQ2MiwgMC41MTUxMTUiLCBcCi0gICAgICAgICAgIjAuMDQ1NTQzLCAwLjE0NTcwOCwgMC4yMTg1MjYsIDAuMjcwNzYyLCAwLjM1NDQzMywgMC40Mjc3NzYsIDAuNTMyMzY3IiwgXAotICAgICAgICAgICIwLjA0OTU5MiwgMC4xNTk0ODQsIDAuMjMyODY4LCAwLjI4NTAyMiwgMC4zNjg2NjUsIDAuNDQxODQ4LCAwLjU0NjgxIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDI2MDM5LCAwLjE4MDY5LCAwLjMzNTEyOSwgMC40NDU2MTYsIDAuNjIyMjcsIDAuNzc2Njk3LCAwLjk5NzY0NCIsIFwKLSAgICAgICAgICAiMC4wMzExNTcsIDAuMTgwNTIsIDAuMzM1MzAyLCAwLjQ0NTU3MiwgMC42MjI1MTgsIDAuNzc3MTQ2LCAwLjk5Nzk4NSIsIFwKLSAgICAgICAgICAiMC4wNDA2OTgsIDAuMTgyNjQ0LCAwLjMzNTM2NCwgMC40NDU0OTcsIDAuNjIyMjcyLCAwLjc3Njc4NSwgMC45OTc2NzIiLCBcCi0gICAgICAgICAgIjAuMDQ4OTUxLCAwLjE4NzMzLCAwLjMzNjM2MywgMC40NDU3NjcsIDAuNjIyNDkzLCAwLjc3NjY0OSwgMC45OTczODEiLCBcCi0gICAgICAgICAgIjAuMDU2MjcxLCAwLjE5Mzk5NCwgMC4zNDAwMzUsIDAuNDQ3MTI5LCAwLjYyMjM4NiwgMC43NzY5ODQsIDAuOTk3MzI3IiwgXAotICAgICAgICAgICIwLjA2Njg3MSwgMC4yMDU3OTcsIDAuMzQ4MDk2LCAwLjQ1MzU2NCwgMC42MjU2MjMsIDAuNzc3MDcxLCAwLjk5ODAwNiIsIFwKLSAgICAgICAgICAiMC4wNzQ5MjQsIDAuMjE4MTcsIDAuMzU2ODgyLCAwLjQ2MDE2NSwgMC42MjkwNTUsIDAuNzgxMTc1LCAwLjk5ODEzMiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxNTI0LCAwLjA4NzMzOCwgMC4xNTkzMjIsIDAuMjEwODU1LCAwLjI5MzAxNiwgMC4zNjUxOTksIDAuNDY3Nzk1IiwgXAotICAgICAgICAgICIwLjAyMzU2NCwgMC4wOTU1ODQsIDAuMTY3NTk1LCAwLjIxODk1OCwgMC4zMDEzNDMsIDAuMzczMTY1LCAwLjQ3NTk1NiIsIFwKLSAgICAgICAgICAiMC4wMzE0NTQsIDAuMTA2Mjc2LCAwLjE3ODI5NCwgMC4yMjk2MjcsIDAuMzExODM3LCAwLjM4MzksIDAuNDg2NTQ4IiwgXAotICAgICAgICAgICIwLjAzNzI1OSwgMC4xMTY5MzEsIDAuMTg4Nzk3LCAwLjI0MDE2NSwgMC4zMjI0ODUsIDAuMzk0MzIyLCAwLjQ5NzA3MSIsIFwKLSAgICAgICAgICAiMC4wNDE4ODYsIDAuMTI3NTYsIDAuMTk5MjY2LCAwLjI1MDY1NiwgMC4zMzI4MzksIDAuNDA0ODIsIDAuNTA3NTQ4IiwgXAotICAgICAgICAgICIwLjA0ODA2NiwgMC4xNDUyMjMsIDAuMjE2NjI3LCAwLjI2Nzg5NSwgMC4zNDk5OTUsIDAuNDIyMDg5LCAwLjUyNDY1NSIsIFwKLSAgICAgICAgICAiMC4wNTI1MzIsIDAuMTU5ODEyLCAwLjIzMTgzMSwgMC4yODI5NiwgMC4zNjQ5NzgsIDAuNDM2OTAxLCAwLjUzOTcwNiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyNDk1NywgMC4xNzQxMSwgMC4zMjMyNjcsIDAuNDI5OTQ1LCAwLjYwMDIzNiwgMC43NDk2NjgsIDAuOTYyNTEiLCBcCi0gICAgICAgICAgIjAuMDI5ODc2LCAwLjE3NDQyOCwgMC4zMjMyNjEsIDAuNDMwNDQzLCAwLjYwMDIzNCwgMC43NDkxMTcsIDAuOTYyMjMxIiwgXAotICAgICAgICAgICIwLjAzOTM5OCwgMC4xNzYxMjEsIDAuMzIzMjQ3LCAwLjQzMDUzOCwgMC42MDExOTksIDAuNzQ5MzcyLCAwLjk2NDAwNyIsIFwKLSAgICAgICAgICAiMC4wNDc0NiwgMC4xODA0NjEsIDAuMzI0NjQ3LCAwLjQzMDQ2NSwgMC42MDAyNTMsIDAuNzUwODE0LCAwLjk2NDI2OSIsIFwKLSAgICAgICAgICAiMC4wNTUwNjcsIDAuMTg2OTQyLCAwLjMyNzkwMSwgMC40MzE0NjUsIDAuNjAwNjY3LCAwLjc0OTM0NiwgMC45NjIyMyIsIFwKLSAgICAgICAgICAiMC4wNjU0MTksIDAuMTk4Nzc2LCAwLjMzNjA3MywgMC40Mzc2OTEsIDAuNjAzNzc5LCAwLjc0OTkzMywgMC45NjIyOTUiLCBcCi0gICAgICAgICAgIjAuMDczNjk4LCAwLjIxMDMyMiwgMC4zNDQ2NzEsIDAuNDQ0NDc4LCAwLjYwNjg4MywgMC43NTM1NjIsIDAuOTYyOTE1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQwMzksIDAuMDA0MTIxLCAwLjAwNDEyOSwgMC4wMDQxMywgMC4wMDQxMzEsIDAuMDA0MTMzLCAwLjAwNDEzMyIsIFwKLSAgICAgICAgICAiMC4wMDQwMzYsIDAuMDA0MDk5LCAwLjAwNDExMywgMC4wMDQxMTksIDAuMDA0MTIzLCAwLjAwNDEyNywgMC4wMDQxMjciLCBcCi0gICAgICAgICAgIjAuMDA0MjA0LCAwLjAwNDEwOSwgMC4wMDQxMTcsIDAuMDA0MTIxLCAwLjAwNDEyNiwgMC4wMDQxMjgsIDAuMDA0MTI4IiwgXAotICAgICAgICAgICIwLjAwNDUwMiwgMC4wMDQxOTcsIDAuMDA0MTY5LCAwLjAwNDE2MiwgMC4wMDQxNTIsIDAuMDA0MTUsIDAuMDA0MTQ4IiwgXAotICAgICAgICAgICIwLjAwNDkwNywgMC4wMDQzNzksIDAuMDA0MjgyLCAwLjAwNDI0OCwgMC4wMDQyMTksIDAuMDA0MjA0LCAwLjAwNDE5IiwgXAotICAgICAgICAgICIwLjAwNTg3OSwgMC4wMDQ2MjcsIDAuMDA0NDQxLCAwLjAwNDM3OCwgMC4wMDQzMTgsIDAuMDA0Mjg1LCAwLjAwNDI2NSIsIFwKLSAgICAgICAgICAiMC4wMDYyOTMsIDAuMDA0OTM5LCAwLjAwNDYyMSwgMC4wMDQ1MjUsIDAuMDA0NDI1LCAwLjAwNDM4MSwgMC4wMDQzMzQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDIxNCwgMC4wMDAxMTQsIDAuMDAwMTA1LCAwLjAwMDEwMiwgMC4wMDAwOTksIDAuMDAwMDk4LCAwLjAwMDA5NyIsIFwKLSAgICAgICAgICAiMC4wMDAyNzUsIDAuMDAwMTUyLCAwLjAwMDEyNywgMC4wMDAxMTksIDAuMDAwMTEyLCAwLjAwMDEwOCwgMC4wMDAxMDUiLCBcCi0gICAgICAgICAgIjAuMDAwMDg0LCAwLjAwMDE0OSwgMC4wMDAxMjksIDAuMDAwMTIyLCAwLjAwMDExNSwgMC4wMDAxMTEsIDAuMDAwMTA3IiwgXAotICAgICAgICAgICIwLjAwMDIxOSwgMC4wMDAwNjUsIDAuMDAwMDg1LCAwLjAwMDA4OSwgMC4wMDAwOTEsIDAuMDAwMDkzLCAwLjAwMDA5MyIsIFwKLSAgICAgICAgICAiMC4wMDA2NjEsIDAuMDAwMSwgMC4wMDAwMTQsIDAuMDAwMDEyLCAwLjAwMDAzNiwgMC4wMDAwNDcsIDAuMDAwMDU3IiwgXAotICAgICAgICAgICIwLjAwMTM3MSwgMC4wMDA1NDcsIDAuMDAwMzEsIDAuMDAwMjI0LCAwLjAwMDE0MywgMC4wMDAxLCAwLjAwMDA2MSIsIFwKLSAgICAgICAgICAiMC4wMDIwOTcsIDAuMDAwNjM4LCAwLjAwMDM0NiwgMC4wMDAyNDksIDAuMDAwMTU2LCAwLjAwMDExNiwgMC4wMDAwNzIiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogQ0xLSU5WWDQgKgotICogLS0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKENMS0lOVlg0KSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMzY0MTczOwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDMxOTE2NDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDMxOTEyOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMzE5MTY0OwotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDEuMzY0MDc7Ci0gICAgZnVuY3Rpb24gOiAiKCFBKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTI0ODUsIDAuMDY3MywgMC4xMjE5MzYsIDAuMTYxMDAxLCAwLjIyMzQ0NCwgMC4yNzgyOSwgMC4zNTYxNDgiLCBcCi0gICAgICAgICAgIjAuMDIwMzU3LCAwLjA3NTQ4NSwgMC4xMzAxMjEsIDAuMTY5MTg4LCAwLjIzMTg1OCwgMC4yODYyNDcsIDAuMzY0NTIxIiwgXAotICAgICAgICAgICIwLjAyNjY1MSwgMC4wODU3NzgsIDAuMTQwMzksIDAuMTc5NDM2LCAwLjI0MTgzOCwgMC4yOTY3MywgMC4zNzQ2ODIiLCBcCi0gICAgICAgICAgIjAuMDMxMDQzLCAwLjA5NjUxMSwgMC4xNTEwMDcsIDAuMTkwMDQ4LCAwLjI1MjE2OSwgMC4zMDcxNTQsIDAuMzg1MTI4IiwgXAotICAgICAgICAgICIwLjAzNDQ3NCwgMC4xMDY5MzksIDAuMTYxMzEzLCAwLjIwMDMxNywgMC4yNjI3MTYsIDAuMzE3MzM4LCAwLjM5NTUzOSIsIFwKLSAgICAgICAgICAiMC4wMzg5MTYsIDAuMTIyOTIyLCAwLjE3ODE4OCwgMC4yMTcwMzIsIDAuMjc5MzYxLCAwLjMzMzk3NywgMC40MTE5NzkiLCBcCi0gICAgICAgICAgIjAuMDQyMDIyLCAwLjEzNTA2MiwgMC4xOTMwNjksIDAuMjMxODM1LCAwLjI5Mzk5MywgMC4zNDg1OTksIDAuNDI2NjA5Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDIwMzU2LCAwLjEzNTk1NywgMC4yNTE0NDIsIDAuMzM0MTI4LCAwLjQ2NjA4LCAwLjU4MTk0MywgMC43NDY4MyIsIFwKLSAgICAgICAgICAiMC4wMjYyMTcsIDAuMTM2MDM5LCAwLjI1MTQxLCAwLjMzNCwgMC40NjYzLCAwLjU4MTM3OSwgMC43NDY2OCIsIFwKLSAgICAgICAgICAiMC4wMzU0MTUsIDAuMTM5NzA5LCAwLjI1MTk3NywgMC4zMzM4MzgsIDAuNDY1OTk5LCAwLjU4MTU4MiwgMC43NDY4MTUiLCBcCi0gICAgICAgICAgIjAuMDQzMDA0LCAwLjE0NTYwMiwgMC4yNTQ5MSwgMC4zMzUxNTcsIDAuNDY2MzY5LCAwLjU4MjAzOCwgMC43NDY1MDEiLCBcCi0gICAgICAgICAgIjAuMDQ5NTA2LCAwLjE1MzMyNCwgMC4yNjAyNjYsIDAuMzM4Njg2LCAwLjQ2NzI0OSwgMC41ODIxNCwgMC43NDY3NzYiLCBcCi0gICAgICAgICAgIjAuMDU5MTUxLCAwLjE2Njk5NCwgMC4yNzAyNTcsIDAuMzQ3MTU5LCAwLjQ3MzQ2MywgMC41ODUwMzYsIDAuNzQ3NDAzIiwgXAotICAgICAgICAgICIwLjA2Njk1MiwgMC4xODAyODUsIDAuMjgwNDk1LCAwLjM1NTg1OCwgMC40Nzk4MzQsIDAuNTkwODU4LCAwLjc1MDQ1OCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMjQ1MywgMC4wNjY0MTksIDAuMTIwMjE2LCAwLjE1ODczLCAwLjIyMDE3LCAwLjI3NDA4NiwgMC4zNTA3ODgiLCBcCi0gICAgICAgICAgIjAuMDIwNTI2LCAwLjA3NDc4NiwgMC4xMjg2MDcsIDAuMTY3MDY1LCAwLjIyODUxMSwgMC4yODIzMzIsIDAuMzU5MjM4IiwgXAotICAgICAgICAgICIwLjAyNzMzMiwgMC4wODUzMjcsIDAuMTM5MSwgMC4xNzc1NTYsIDAuMjM5MDE5LCAwLjI5Mjg0MiwgMC4zNjk2ODIiLCBcCi0gICAgICAgICAgIjAuMDMyMjQ2LCAwLjA5NjAyMiwgMC4xNDk2NSwgMC4xODgwNzQsIDAuMjQ5MzAxLCAwLjMwMzE1MywgMC4zNzk5NzQiLCBcCi0gICAgICAgICAgIjAuMDM2MTc1LCAwLjEwNjkzMywgMC4xNjA1NiwgMC4xOTg5MDIsIDAuMjYwMzQ1LCAwLjMxNDI4MiwgMC4zOTA5ODciLCBcCi0gICAgICAgICAgIjAuMDQxNDM2LCAwLjEyMzI4NiwgMC4xNzc1MzYsIDAuMjE1ODU4LCAwLjI3NzE2NCwgMC4zMzA4ODYsIDAuNDA3NjYyIiwgXAotICAgICAgICAgICIwLjA0NTM4NiwgMC4xMzU1NDksIDAuMTkyNzE0LCAwLjIzMDkyNywgMC4yOTIxMTQsIDAuMzQ1ODQsIDAuNDIyNTc4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE5NTMsIDAuMTMxMzM2LCAwLjI0MzU1NSwgMC4zMjMwMDksIDAuNDUxNjc3LCAwLjU2MjYyOCwgMC43MjIzMDciLCBcCi0gICAgICAgICAgIjAuMDI1MTM4LCAwLjEzMTYzNCwgMC4yNDMxMTUsIDAuMzIzMDU5LCAwLjQ1MTY5NywgMC41NjMwMzEsIDAuNzIyMzg2IiwgXAotICAgICAgICAgICIwLjAzNDIwNCwgMC4xMzQ5MTksIDAuMjQzOTc5LCAwLjMyMjk4MywgMC40NTE2ODgsIDAuNTYyNjA5LCAwLjcyMzUwMyIsIFwKLSAgICAgICAgICAiMC4wNDE4NzUsIDAuMTQxMDMxLCAwLjI0NjQ1NywgMC4zMjQyNzQsIDAuNDUwOTIyLCAwLjU2MjUzNCwgMC43MjIzNTYiLCBcCi0gICAgICAgICAgIjAuMDQ4NzIyLCAwLjE0Nzk0NCwgMC4yNTE1NzgsIDAuMzI4MTIsIDAuNDUyODQ5LCAwLjU2Mjg3MywgMC43MjIyOTkiLCBcCi0gICAgICAgICAgIjAuMDU4MTkxLCAwLjE2MTY4MiwgMC4yNjE0MDIsIDAuMzM2MDI4LCAwLjQ1ODExNCwgMC41NjU4OSwgMC43MjMxMzEiLCBcCi0gICAgICAgICAgIjAuMDY1OTI1LCAwLjE3NTIzOSwgMC4yNzE0ODYsIDAuMzQ0NzE4LCAwLjQ2NDY5NywgMC41NzE3ODEsIDAuNzI2NTE5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDUxOTksIDAuMDA1MzIyLCAwLjAwNTMzNCwgMC4wMDUzMzgsIDAuMDA1MzQxLCAwLjAwNTM0MiwgMC4wMDUzNDMiLCBcCi0gICAgICAgICAgIjAuMDA1MTQ2LCAwLjAwNTI2OCwgMC4wMDUyOTgsIDAuMDA1MzEyLCAwLjAwNTMyMiwgMC4wMDUzMjcsIDAuMDA1MzMyIiwgXAotICAgICAgICAgICIwLjAwNTQ2LCAwLjAwNTM0MiwgMC4wMDUzMzgsIDAuMDA1MzM3LCAwLjAwNTM0MSwgMC4wMDUzNDMsIDAuMDA1MzQ2IiwgXAotICAgICAgICAgICIwLjAwNjE3NiwgMC4wMDU1MDUsIDAuMDA1NDQsIDAuMDA1NDI0LCAwLjAwNTQwOCwgMC4wMDUzOTEsIDAuMDA1Mzg3IiwgXAotICAgICAgICAgICIwLjAwNjU1MSwgMC4wMDU3MDIsIDAuMDA1NTQ2LCAwLjAwNTUwOSwgMC4wMDU0NjUsIDAuMDA1NDQ3LCAwLjAwNTQyOCIsIFwKLSAgICAgICAgICAiMC4wMDc1MjksIDAuMDA2MTc0LCAwLjAwNTg0NiwgMC4wMDU3MzcsIDAuMDA1NjU3LCAwLjAwNTU5NiwgMC4wMDU1NTEiLCBcCi0gICAgICAgICAgIjAuMDA4NTAxLCAwLjAwNjY2NiwgMC4wMDYxNzMsIDAuMDA1OTk2LCAwLjAwNTg0MiwgMC4wMDU3NjEsIDAuMDA1Njg0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDAyODIsIDAuMDAwMTI1LCAwLjAwMDEwOSwgMC4wMDAxMDQsIDAuMDAwMSwgMC4wMDAwOTksIDAuMDAwMDk2IiwgXAotICAgICAgICAgICIwLjAwMDM4MiwgMC4wMDAxOTgsIDAuMDAwMTU1LCAwLjAwMDE0LCAwLjAwMDEyNywgMC4wMDAxMiwgMC4wMDAxMTMiLCBcCi0gICAgICAgICAgIjAuMDAwMDczLCAwLjAwMDE1MywgMC4wMDAxMzUsIDAuMDAwMTI3LCAwLjAwMDExOSwgMC4wMDAxMTQsIDAuMDAwMTA5IiwgXAotICAgICAgICAgICIwLjAwMDQ1MywgMC4wMDAxMjksIDAuMDAwMDM4LCAwLjAwMDAwNywgMC4wMDAwMTksIDAuMDAwMDUsIDAuMDAwMDU5IiwgXAotICAgICAgICAgICIwLjAwMTA4MSwgMC4wMDAxNTYsIDAuMDAwMDQyLCAwLjAwMDAwNCwgMC4wMDAwMiwgMC4wMDAwMzUsIDAuMDAwMDQ3IiwgXAotICAgICAgICAgICIwLjAwMjE3LCAwLjAwMDcyNiwgMC4wMDAzODksIDAuMDAwMjg5LCAwLjAwMDE5NywgMC4wMDAxNDUsIDAuMDAwMDkzIiwgXAotICAgICAgICAgICIwLjAwMzE4NSwgMC4wMDEyNDMsIDAuMDAwNzM0LCAwLjAwMDU2MiwgMC4wMDAzOTgsIDAuMDAwMzIxLCAwLjAwMDIzNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBDTEtJTlZYNiAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoQ0xLSU5WWDYpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC41MzAyNjsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDA0NzE2MTM7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDA0NzE1MjY7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDA0NzE2MTM7Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMS45ODg1OwotICAgIGZ1bmN0aW9uIDogIighQSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEwMTkyLCAwLjA0NzU4OCwgMC4wODQ4NjYsIDAuMTExNTQ2LCAwLjE1NDA4LCAwLjE5MTQyNSwgMC4yNDQ3MDkiLCBcCi0gICAgICAgICAgIjAuMDE3NDI2LCAwLjA1NTkyNSwgMC4wOTMyMSwgMC4xMTk5MTksIDAuMTYyNTE3LCAwLjE5OTY4LCAwLjI1MzIyMyIsIFwKLSAgICAgICAgICAiMC4wMjI3MzgsIDAuMDY2NDU1LCAwLjEwMzY5NCwgMC4xMzAzMDQsIDAuMTcyNDkzLCAwLjIxMDE1OCwgMC4yNjM0NjciLCBcCi0gICAgICAgICAgIjAuMDI2NDY1LCAwLjA3NzE3OSwgMC4xMTQyLCAwLjE0MDc2MywgMC4xODMzNDYsIDAuMjIwNTc4LCAwLjI3Mzk3IiwgXAotICAgICAgICAgICIwLjAyOTIxNSwgMC4wODY4MTcsIDAuMTI0NjczLCAwLjE1MTE4MiwgMC4xOTM2ODMsIDAuMjMwOTI0LCAwLjI4NDEzMyIsIFwKLSAgICAgICAgICAiMC4wMzI2MzIsIDAuMDk5OTk4LCAwLjE0MjA0LCAwLjE2ODU2MSwgMC4yMTA5OCwgMC4yNDgwODcsIDAuMzAxMjgxIiwgXAotICAgICAgICAgICIwLjAzNTI2MiwgMC4xMDk0MDksIDAuMTU2MTIzLCAwLjE4MzUzOCwgMC4yMjU4NTQsIDAuMjYyOTcyLCAwLjMxNjA0NyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxNTQxNCwgMC4wOTQwMjIsIDAuMTcyNjY5LCAwLjIyODkyNiwgMC4zMTkwNzMsIDAuMzk3NjEzLCAwLjUwOTk4NSIsIFwKLSAgICAgICAgICAiMC4wMjE5ODksIDAuMDk0NzIxLCAwLjE3MjY0MiwgMC4yMjg4NjcsIDAuMzE4ODYsIDAuMzk3NDk5LCAwLjUxMDI2NyIsIFwKLSAgICAgICAgICAiMC4wMzAyODksIDAuMDk5OTk3LCAwLjE3NDkyNSwgMC4yMjk2MjUsIDAuMzE4ODA0LCAwLjM5NzUwMywgMC41MTAzMzgiLCBcCi0gICAgICAgICAgIjAuMDM2ODYsIDAuMTA3NjgxLCAwLjE3OTYzOCwgMC4yMzMxNDUsIDAuMzIwOTE1LCAwLjM5ODU2MiwgMC41MTAwNDMiLCBcCi0gICAgICAgICAgIjAuMDQzMDA1LCAwLjExNjcwNywgMC4xODY1MDMsIDAuMjM4NjIxLCAwLjMyNDE2OCwgMC40MDAyNDcsIDAuNTEwOTciLCBcCi0gICAgICAgICAgIjAuMDUxNzY2LCAwLjEzMTU1MiwgMC4xOTg1MzcsIDAuMjQ5MDYyLCAwLjMzMjY2NywgMC40MDc0MjEsIDAuNTE0OTQ3IiwgXAotICAgICAgICAgICIwLjA1ODY1NywgMC4xNDU0MDQsIDAuMjEwNjQ2LCAwLjI1OTk3NSwgMC4zNDE0OTMsIDAuNDE0NTY4LCAwLjUyMTI1NyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMDMxNSwgMC4wNDc4NjEsIDAuMDg1MjQ3LCAwLjExMTk1MywgMC4xNTQ2NjEsIDAuMTkyMDYzLCAwLjI0NTQ1OSIsIFwKLSAgICAgICAgICAiMC4wMTc4ODQsIDAuMDU2MzI0LCAwLjA5MzcxNCwgMC4xMjA0MDgsIDAuMTYzMjM4LCAwLjIwMDUsIDAuMjUzOTQ1IiwgXAotICAgICAgICAgICIwLjAyMzcwNSwgMC4wNjcxMjgsIDAuMTA0MzcyLCAwLjEzMTA2OSwgMC4xNzM3NzQsIDAuMjExMTYsIDAuMjY0NTI1IiwgXAotICAgICAgICAgICIwLjAyODAwNSwgMC4wNzc5OTIsIDAuMTE1MTYzLCAwLjE0MTgwMSwgMC4xODQ0NzMsIDAuMjIxODEzLCAwLjI3NTI3MSIsIFwKLSAgICAgICAgICAiMC4wMzE1NTEsIDAuMDg4MTk1LCAwLjEyNTk0MywgMC4xNTI1NzgsIDAuMTk1MTMsIDAuMjMyNDQ1LCAwLjI4NTc0OSIsIFwKLSAgICAgICAgICAiMC4wMzU4OTQsIDAuMTAyMzUxLCAwLjE0MzM4MywgMC4xNjk2NDEsIDAuMjEyMTc1LCAwLjI0OTMsIDAuMzAyNjA1IiwgXAotICAgICAgICAgICIwLjAzOTU1LCAwLjExMjM1LCAwLjE1ODM4NCwgMC4xODU1MjYsIDAuMjI3OTY3LCAwLjI2NTIwNCwgMC4zMTgyODgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTQ4MzgsIDAuMDkxODE3LCAwLjE2ODY4LCAwLjIyMzgzOCwgMC4zMTE2MjEsIDAuMzg4ODg4LCAwLjQ5ODU2IiwgXAotICAgICAgICAgICIwLjAyMTEwNCwgMC4wOTIzNCwgMC4xNjkwMDYsIDAuMjI0MDg0LCAwLjMxMTczMywgMC4zODg0NzksIDAuNDk4ODciLCBcCi0gICAgICAgICAgIjAuMDI5NzY1LCAwLjA5NzQwMiwgMC4xNzA3NjMsIDAuMjI0NTcxLCAwLjMxMjE0LCAwLjM4OTM2OCwgMC40OTk1MjEiLCBcCi0gICAgICAgICAgIjAuMDM2NDUyLCAwLjEwNDYyNCwgMC4xNzU0NjUsIDAuMjI3NjExLCAwLjMxMzQ3NywgMC4zODg5NzMsIDAuNDk4NTQzIiwgXAotICAgICAgICAgICIwLjA0MjQyOSwgMC4xMTMxNTcsIDAuMTgxNjM0LCAwLjIzMzAwNSwgMC4zMTY5MTEsIDAuMzkxNzczLCAwLjUwMDA3NSIsIFwKLSAgICAgICAgICAiMC4wNTE0MjUsIDAuMTI3NDI3LCAwLjE5NDIzOCwgMC4yNDMyNzcsIDAuMzI1MDk4LCAwLjM5NzU5NSwgMC41MDM1MSIsIFwKLSAgICAgICAgICAiMC4wNTgwNTUsIDAuMTQxNTg2LCAwLjIwNTA2NiwgMC4yNTMyMTIsIDAuMzMzNDQyLCAwLjQwNTA4NCwgMC41MDk2ODkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNzkzMiwgMC4wMDgxNjksIDAuMDA4MTkyLCAwLjAwODIwMSwgMC4wMDgyMDgsIDAuMDA4MjExLCAwLjAwODIxNSIsIFwKLSAgICAgICAgICAiMC4wMDc5NDEsIDAuMDA4MDgsIDAuMDA4MTM4LCAwLjAwODE1MiwgMC4wMDgxNzQsIDAuMDA4MTg0LCAwLjAwODE5MyIsIFwKLSAgICAgICAgICAiMC4wMDg0MywgMC4wMDgxMjcsIDAuMDA4MTQ4LCAwLjAwODE1NCwgMC4wMDgxNTksIDAuMDA4MTgyLCAwLjAwODE5NyIsIFwKLSAgICAgICAgICAiMC4wMDkxMjUsIDAuMDA4Mzk3LCAwLjAwODMsIDAuMDA4MjcxLCAwLjAwODI1MiwgMC4wMDgyNTUsIDAuMDA4MjQ2IiwgXAotICAgICAgICAgICIwLjAxMDAzNywgMC4wMDg5MDMsIDAuMDA4NjA1LCAwLjAwODUyMSwgMC4wMDg0NDIsIDAuMDA4NDExLCAwLjAwODM2OCIsIFwKLSAgICAgICAgICAiMC4wMTE0MTcsIDAuMDA5OTcyLCAwLjAwOTM1NSwgMC4wMDkxNDEsIDAuMDA4OTMyLCAwLjAwODgxNCwgMC4wMDg3MDQiLCBcCi0gICAgICAgICAgIjAuMDEyOTkyLCAwLjAxMDM1MSwgMC4wMDk1NjgsIDAuMDA5Mjk2LCAwLjAwOTAyNywgMC4wMDg4OTksIDAuMDA4Nzc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDA1NSwgMC4wMDAyNiwgMC4wMDAyMjcsIDAuMDAwMjE2LCAwLjAwMDIwOCwgMC4wMDAyMDMsIDAuMDAwMTk5IiwgXAotICAgICAgICAgICIwLjAwMDU5NCwgMC4wMDAzNzcsIDAuMDAwMywgMC4wMDAyNzcsIDAuMDAwMjUzLCAwLjAwMDI0LCAwLjAwMDIyOCIsIFwKLSAgICAgICAgICAiMC4wMDAwNTUsIDAuMDAwMzY4LCAwLjAwMDMyNywgMC4wMDAzMDEsIDAuMDAwMjcxLCAwLjAwMDI2MSwgMC4wMDAyNDUiLCBcCi0gICAgICAgICAgIjAuMDAwNjQ3LCAwLjAwMDEyOCwgMC4wMDAxOTEsIDAuMDAwMjA4LCAwLjAwMDIwOCwgMC4wMDAyMDksIDAuMDAwMjA2IiwgXAotICAgICAgICAgICIwLjAwMTUzOCwgMC4wMDAzMzUsIDAuMDAwMDc3LCAwLjAwMDAxMiwgMC4wMDAwNDcsIDAuMDAwMDc3LCAwLjAwMDEwNCIsIFwKLSAgICAgICAgICAiMC4wMDMwNzIsIDAuMDAwODc4LCAwLjAwMDg1LCAwLjAwMDYyMiwgMC4wMDA0MjgsIDAuMDAwMzE0LCAwLjAwMDIyMiIsIFwKLSAgICAgICAgICAiMC4wMDQ1MzEsIDAuMDAxODczLCAwLjAwMTA3MywgMC4wMDA3ODYsIDAuMDAwNTU2LCAwLjAwMDQyNSwgMC4wMDAyOTMiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IENMS01YMlgxMiAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKENMS01YMlgxMikgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAxLjQ3OTU1OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA4MzIwMjM7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwODMwMjAxOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDgzMjAyMzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAzOTgsIDAuMDAwNDAyLCAwLjAwMDQwNCwgMC4wMDA0MDUsIDAuMDAwNDA2LCAwLjAwMDQwNywgMC4wMDA0MDciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA0NDUsIDAuMDAwNDMsIDAuMDAwNDI4LCAwLjAwMDQyNywgMC4wMDA0MjYsIDAuMDAwNDI1LCAwLjAwMDQyNCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNzY0NTI3OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDc2MjM2OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDc2NDUyNzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA0MDcsIDAuMDAwNDEsIDAuMDAwNDEyLCAwLjAwMDQxMiwgMC4wMDA0MTMsIDAuMDAwNDEzLCAwLjAwMDQxMyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDQ0LCAwLjAwMDQyNiwgMC4wMDA0MjUsIDAuMDAwNDI1LCAwLjAwMDQyMywgMC4wMDA0MjMsIDAuMDAwNDIzIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNzQyNzk7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNzQyNjc7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNzQyNzk7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjEzLCAwLjAwMDI0NSwgMC4wMDAzOCwgMC4wMDA1MTgsIDAuMDAwNzA3LCAwLjAwMTAyNSwgMC4wMDEzMjEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDI5ODksIDAuMDAzMDEzLCAwLjAwMzEzMiwgMC4wMDMyODUsIDAuMDAzNDYsIDAuMDAzNzYzLCAwLjAwNDAzOSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAzLjg4MjE2OwotICAgIGZ1bmN0aW9uIDogIigoUzAgQikgKyAoIVMwIEEpKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg4MTQ3LCAwLjA5MjAzMywgMC4xMDkxNDcsIDAuMTIxMTk5LCAwLjEzNTIyOCwgMC4xNjAwNiwgMC4xNzQ0ODMiLCBcCi0gICAgICAgICAgIjAuMDk0NTMyLCAwLjA5ODM0OCwgMC4xMTU1MjksIDAuMTI3NjYyLCAwLjE0MTY0NCwgMC4xNjY0NTgsIDAuMTgwODYxIiwgXAotICAgICAgICAgICIwLjEwMjY0NCwgMC4xMDY1LCAwLjEyMzcyMywgMC4xMzU3OTcsIDAuMTQ5ODA0LCAwLjE3NDY2OSwgMC4xODkwNjciLCBcCi0gICAgICAgICAgIjAuMTEwODUsIDAuMTE0NzE5LCAwLjEzMTk0OSwgMC4xNDQwMjgsIDAuMTU4MDMyLCAwLjE4Mjg2LCAwLjE5NzI2NSIsIFwKLSAgICAgICAgICAiMC4xMTg2NTMsIDAuMTIyNTMxLCAwLjEzOTc2MSwgMC4xNTE3ODgsIDAuMTY1Nzg2LCAwLjE5MDU3MiwgMC4yMDQ4OTIiLCBcCi0gICAgICAgICAgIjAuMTMwNzY3LCAwLjEzNDY1MSwgMC4xNTE4ODgsIDAuMTYzOTM1LCAwLjE3Nzk4NCwgMC4yMDI2MTUsIDAuMjE3MTU3IiwgXAotICAgICAgICAgICIwLjE0MDE5LCAwLjE0NDExNywgMC4xNjE2NjUsIDAuMTczODE5LCAwLjE4Nzg5NCwgMC4yMTI2OCwgMC4yMjcwODkiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM2MTgyLCAwLjA0MDQ2LCAwLjA2MTU1MSwgMC4wNzgwMzcsIDAuMDk4ODI3LCAwLjEzOTk4LCAwLjE2NTcwNiIsIFwKLSAgICAgICAgICAiMC4wMzYxMDYsIDAuMDQwNTgxLCAwLjA2MTU1MSwgMC4wNzc4OTMsIDAuMDk4NzYyLCAwLjEzOTg1NywgMC4xNjU1NDEiLCBcCi0gICAgICAgICAgIjAuMDM2MjA5LCAwLjA0MDQ4MywgMC4wNjEzNTcsIDAuMDc3ODQ0LCAwLjA5ODY2NSwgMC4xMzk4NiwgMC4xNjU2MjgiLCBcCi0gICAgICAgICAgIjAuMDM2MTE0LCAwLjA0MDMzNiwgMC4wNjEzOTUsIDAuMDc3NjgzLCAwLjA5ODY2LCAwLjEzOTczNCwgMC4xNjU1OTgiLCBcCi0gICAgICAgICAgIjAuMDM2NDA0LCAwLjA0MDY2NCwgMC4wNjE3MzQsIDAuMDc4MDk2LCAwLjA5ODkxNSwgMC4xNDAwMDUsIDAuMTY1Njc1IiwgXAotICAgICAgICAgICIwLjAzNzQyOSwgMC4wNDE2MjYsIDAuMDYyNjcxLCAwLjA3ODk2NCwgMC4wOTk3MjksIDAuMTQwODc5LCAwLjE2NjI5NiIsIFwKLSAgICAgICAgICAiMC4wMzg4NzUsIDAuMDQzMTAzLCAwLjA2NDIwOSwgMC4wODA2MTgsIDAuMTAxMTkxLCAwLjE0MTY3NSwgMC4xNjcxMzIiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTAwMzQyLCAwLjEwNDI2MSwgMC4xMjEzMTYsIDAuMTMzNTc4LCAwLjE0NzcyMywgMC4xNzMxNTcsIDAuMTg3NzM3IiwgXAotICAgICAgICAgICIwLjEwNjQwNywgMC4xMTAyNjUsIDAuMTI3NDI5LCAwLjEzOTU5LCAwLjE1NDAxNywgMC4xNzkwNTIsIDAuMTkzODc5IiwgXAotICAgICAgICAgICIwLjExMzcwOCwgMC4xMTc1NDQsIDAuMTM0ODg1LCAwLjE0Njk4NiwgMC4xNjEyNzgsIDAuMTg2NTQ3LCAwLjIwMTI0NCIsIFwKLSAgICAgICAgICAiMC4xMjA5MjcsIDAuMTI0ODAxLCAwLjE0MjA4MywgMC4xNTQzOTksIDAuMTY4Njg0LCAwLjE5Mzg1NiwgMC4yMDg1NDciLCBcCi0gICAgICAgICAgIjAuMTI4MjEsIDAuMTMyMDY2LCAwLjE0OTQ2NSwgMC4xNjE1MTgsIDAuMTc1Nzg5LCAwLjIwMTAzNCwgMC4yMTU2NjUiLCBcCi0gICAgICAgICAgIjAuMTM5MzUyLCAwLjE0MzE5NCwgMC4xNjAzMzUsIDAuMTcyNTQ0LCAwLjE4NjgyNCwgMC4yMTIwNzYsIDAuMjI2NzI5IiwgXAotICAgICAgICAgICIwLjE0ODAyNywgMC4xNTE5MDcsIDAuMTY5MzY2LCAwLjE4MTQ5NCwgMC4xOTU3MzgsIDAuMjIxMDI1LCAwLjIzNTc2OCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzg0MzQsIDAuMDQyNjc0LCAwLjA2Mzk3MSwgMC4wODAxMjEsIDAuMTAwNjE0LCAwLjE0MTA4NSwgMC4xNjYyODYiLCBcCi0gICAgICAgICAgIjAuMDM4NDc0LCAwLjA0MjY5NSwgMC4wNjM2NjIsIDAuMDc5ODY4LCAwLjEwMDYwMSwgMC4xNDA3NjUsIDAuMTY2MjM2IiwgXAotICAgICAgICAgICIwLjAzODUxNiwgMC4wNDI3NDEsIDAuMDYzNTU4LCAwLjA3OTY4NywgMC4xMDAzNDUsIDAuMTQwOTEzLCAwLjE2NjI1MyIsIFwKLSAgICAgICAgICAiMC4wMzg1MTQsIDAuMDQyNjg1LCAwLjA2MzMwNSwgMC4wNzk2ODYsIDAuMTAwMzIzLCAwLjE0MDc4OCwgMC4xNjYxMjQiLCBcCi0gICAgICAgICAgIjAuMDM4NTA4LCAwLjA0MjY0NywgMC4wNjM0MTgsIDAuMDc5NDgzLCAwLjEwMDE4NCwgMC4xNDA3OTMsIDAuMTY2MDM4IiwgXAotICAgICAgICAgICIwLjAzOTQwNywgMC4wNDM2MTcsIDAuMDY0MTIyLCAwLjA4MDM2NSwgMC4xMDA4NSwgMC4xNDEzMywgMC4xNjY1OTkiLCBcCi0gICAgICAgICAgIjAuMDQwNzE4LCAwLjA0NDg3MywgMC4wNjUxODUsIDAuMDgxNzgsIDAuMTAyMDM1LCAwLjE0MjE1NywgMC4xNjcyODQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg4ODMxLCAwLjA5MjcxMywgMC4xMDk4MDEsIDAuMTIxODE1LCAwLjEzNTg3NiwgMC4xNjA2NjksIDAuMTc1MDQiLCBcCi0gICAgICAgICAgIjAuMDk1MzM1LCAwLjA5OTE3NiwgMC4xMTYzNjMsIDAuMTI4NDc1LCAwLjE0MjQ0NiwgMC4xNjcyNDYsIDAuMTgxNjc5IiwgXAotICAgICAgICAgICIwLjEwMzQzOSwgMC4xMDczMjIsIDAuMTI0NTQ0LCAwLjEzNjcwNCwgMC4xNTA2ODMsIDAuMTc1NDgxLCAwLjE4OTg4NiIsIFwKLSAgICAgICAgICAiMC4xMTE2NDEsIDAuMTE1NDcsIDAuMTMyNzE1LCAwLjE0NDc5OCwgMC4xNTg3NTUsIDAuMTgzNjE5LCAwLjE5ODAyOCIsIFwKLSAgICAgICAgICAiMC4xMTk2NDksIDAuMTIzNDk2LCAwLjE0MDgwOCwgMC4xNTI4MzksIDAuMTY2Nzk2LCAwLjE5MTU5OCwgMC4yMDU5NzYiLCBcCi0gICAgICAgICAgIjAuMTMxNjgyLCAwLjEzNTU2NywgMC4xNTI3MDUsIDAuMTY0NzcsIDAuMTc4ODUsIDAuMjAzNjc4LCAwLjIxODEyMyIsIFwKLSAgICAgICAgICAiMC4xNDEyMjUsIDAuMTQ1MTY0LCAwLjE2MjY3NCwgMC4xNzQ4NDgsIDAuMTg4OTQsIDAuMjEzNzAzLCAwLjIyODExIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzNjIxNSwgMC4wNDA0OTYsIDAuMDYxODcxLCAwLjA3ODEzMywgMC4wOTkwOTMsIDAuMTQwMDU1LCAwLjE2NTgwOSIsIFwKLSAgICAgICAgICAiMC4wMzYyMjQsIDAuMDQwNjcyLCAwLjA2MTcyNiwgMC4wNzgyMTUsIDAuMDk4ODUxLCAwLjE0MDAwOSwgMC4xNjU4MjEiLCBcCi0gICAgICAgICAgIjAuMDM2Mzc0LCAwLjA0MDYzNiwgMC4wNjE0OCwgMC4wNzgwMTMsIDAuMDk4ODQzLCAwLjEzOTk4LCAwLjE2NTc0OSIsIFwKLSAgICAgICAgICAiMC4wMzYxOTYsIDAuMDQwNDM3LCAwLjA2MTQ1NSwgMC4wNzc3NzUsIDAuMDk4NzY5LCAwLjEzOTk0NCwgMC4xNjU3MDgiLCBcCi0gICAgICAgICAgIjAuMDM2NDgsIDAuMDQwNjcyLCAwLjA2MTUxNywgMC4wNzc5MzksIDAuMDk4OTEzLCAwLjEzOTkyOCwgMC4xNjU3NzMiLCBcCi0gICAgICAgICAgIjAuMDM3NTc5LCAwLjA0MTgxOSwgMC4wNjI4MDIsIDAuMDc4OTgyLCAwLjA5OTc3NCwgMC4xNDA2NjIsIDAuMTY2MjIzIiwgXAotICAgICAgICAgICIwLjAzODk1OCwgMC4wNDMxMzgsIDAuMDY0MDE4LCAwLjA4MDIyLCAwLjEwMDkzNywgMC4xNDE1NjksIDAuMTY2OTA3Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwMTcwOCwgMC4xMDU1ODUsIDAuMTIyNzIsIDAuMTM0ODkzLCAwLjE0OTIzLCAwLjE3NDUzOCwgMC4xODkyNTEiLCBcCi0gICAgICAgICAgIjAuMTA3NzU3LCAwLjExMTYzNCwgMC4xMjg4MzcsIDAuMTQxMDMyLCAwLjE1NTQxNSwgMC4xODA2MjEsIDAuMTk1MzM1IiwgXAotICAgICAgICAgICIwLjExNDk0MywgMC4xMTg4MTcsIDAuMTM2MjA2LCAwLjE0ODI1NSwgMC4xNjI2OTYsIDAuMTg3ODk2LCAwLjIwMjYwMSIsIFwKLSAgICAgICAgICAiMC4xMjIyMDYsIDAuMTI2MTA0LCAwLjE0MzM4OSwgMC4xNTU3MjcsIDAuMTY5ODgsIDAuMTk1MjE1LCAwLjIwOTkyMSIsIFwKLSAgICAgICAgICAiMC4xMjk0NjksIDAuMTMzMzQsIDAuMTUwNjQ4LCAwLjE2MjkwMywgMC4xNzcxMzQsIDAuMjAyNDAxLCAwLjIxNzA2MyIsIFwKLSAgICAgICAgICAiMC4xNDA2LCAwLjE0NDQzMywgMC4xNjE2NDIsIDAuMTczODEyLCAwLjE4Nzk1OCwgMC4yMTMzOTQsIDAuMjI4MDg0IiwgXAotICAgICAgICAgICIwLjE0OTI2NiwgMC4xNTMxOTMsIDAuMTcwNjY0LCAwLjE4Mjc1LCAwLjE5NzA2MywgMC4yMjIzNywgMC4yMzcwNjciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM4NjM3LCAwLjA0Mjg0NiwgMC4wNjM5MzgsIDAuMDgwMDA0LCAwLjEwMDY1MywgMC4xNDEyMzIsIDAuMTY2NTQyIiwgXAotICAgICAgICAgICIwLjAzODcxNSwgMC4wNDI5NjIsIDAuMDYzODU3LCAwLjA4MDE4LCAwLjEwMDg1NiwgMC4xNDExNzcsIDAuMTY2NTA5IiwgXAotICAgICAgICAgICIwLjAzODYzMywgMC4wNDI4MzcsIDAuMDYzNjU1LCAwLjA3OTg1NSwgMC4xMDA1NTcsIDAuMTQxMDYxLCAwLjE2NjQxOCIsIFwKLSAgICAgICAgICAiMC4wMzg3MzgsIDAuMDQyODgyLCAwLjA2MzQ5NywgMC4wNzk4ODksIDAuMTAwNDA1LCAwLjE0MTAwNiwgMC4xNjYzMzQiLCBcCi0gICAgICAgICAgIjAuMDM4NjM0LCAwLjA0MjgyNiwgMC4wNjM1MjIsIDAuMDc5ODM1LCAwLjEwMDQxNywgMC4xNDA5ODQsIDAuMTY2MTg2IiwgXAotICAgICAgICAgICIwLjAzOTUxOCwgMC4wNDM2MTksIDAuMDY0MTc1LCAwLjA4MDM5NSwgMC4xMDEzNTgsIDAuMTQxNTQ0LCAwLjE2NjcwMiIsIFwKLSAgICAgICAgICAiMC4wNDA3ODIsIDAuMDQ0OTc5LCAwLjA2NTM0MywgMC4wODE5MywgMC4xMDIyNjMsIDAuMTQyMzE5LCAwLjE2NzM0MiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg0MTEsIDAuMDg3OTg0LCAwLjEwNTE3NywgMC4xMTcyNzYsIDAuMTMxNDE0LCAwLjE1NjE0LCAwLjE3MDUzNCIsIFwKLSAgICAgICAgICAiMC4wOTE3NTQsIDAuMDk1NjEzLCAwLjExMjgxLCAwLjEyNDg0NywgMC4xMzg5MDksIDAuMTYzNzIsIDAuMTc4MTQ0IiwgXAotICAgICAgICAgICIwLjEwMTQ5MiwgMC4xMDUzNjIsIDAuMTIyNjczLCAwLjEzNDY3NiwgMC4xNDg2NTEsIDAuMTczNDcsIDAuMTg3OTMyIiwgXAotICAgICAgICAgICIwLjExMTQ4OSwgMC4xMTUzNCwgMC4xMzI2NTEsIDAuMTQ0NjQ1LCAwLjE1ODY3NiwgMC4xODM0OTcsIDAuMTk3OTIiLCBcCi0gICAgICAgICAgIjAuMTIxMzc1LCAwLjEyNTI2NywgMC4xNDI1OCwgMC4xNTQ1OTEsIDAuMTY4NTM5LCAwLjE5MzMxOCwgMC4yMDc2OTMiLCBcCi0gICAgICAgICAgIjAuMTM2NzIyLCAwLjE0MDYyMSwgMC4xNTc3NiwgMC4xNjk4NTYsIDAuMTgzOTA1LCAwLjIwODcyOSwgMC4yMjMwNzIiLCBcCi0gICAgICAgICAgIjAuMTQ4NjAyLCAwLjE1MjQ1LCAwLjE3MDE0MywgMC4xODIzMzcsIDAuMTk2MzkyLCAwLjIyMTE5MywgMC4yMzU2MDkiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM2Mzg0LCAwLjA0MDc1NCwgMC4wNjE2MTMsIDAuMDc3ODc1LCAwLjA5ODg2OSwgMC4xNDAwMTksIDAuMTY1NzYyIiwgXAotICAgICAgICAgICIwLjAzNjI5NiwgMC4wNDA1OTEsIDAuMDYxNTQ2LCAwLjA3Nzg5MSwgMC4wOTg4NywgMC4xMzk5MDEsIDAuMTY1NTQxIiwgXAotICAgICAgICAgICIwLjAzNjI1LCAwLjA0MDUxNiwgMC4wNjE2MjksIDAuMDc3ODIyLCAwLjA5ODc4OSwgMC4xMzk5MiwgMC4xNjU1MjciLCBcCi0gICAgICAgICAgIjAuMDM2MTU0LCAwLjA0MDQyNSwgMC4wNjE1MzIsIDAuMDc3OTA2LCAwLjA5ODc1NSwgMC4xMzk5MywgMC4xNjU2ODUiLCBcCi0gICAgICAgICAgIjAuMDM2MzcyLCAwLjA0MDc2OCwgMC4wNjE4MDMsIDAuMDc3OTY0LCAwLjA5ODk0OCwgMC4xNDAwMzMsIDAuMTY1NjgyIiwgXAotICAgICAgICAgICIwLjAzODU2NiwgMC4wNDI1NzgsIDAuMDYzMDE5LCAwLjA3OTE3OCwgMC4wOTk5NzYsIDAuMTQwODE2LCAwLjE2NjQwMSIsIFwKLSAgICAgICAgICAiMC4wNDA5NzYsIDAuMDQ1MjQzLCAwLjA2NTI4NywgMC4wODEyNTksIDAuMTAxNzk0LCAwLjE0MTk1MiwgMC4xNjc0MjQiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk2MDUsIDAuMDk5ODY3LCAwLjExNzA5NCwgMC4xMjkzNywgMC4xNDM1MTgsIDAuMTY4OTU0LCAwLjE4MzUyNiIsIFwKLSAgICAgICAgICAiMC4xMDM1NDUsIDAuMTA3Mzg0LCAwLjEyNDY2NywgMC4xMzY3NywgMC4xNTEwNiwgMC4xNzY0NzcsIDAuMTkxMDIzIiwgXAotICAgICAgICAgICIwLjExMzExNSwgMC4xMTY5ODMsIDAuMTM0MzU3LCAwLjE0NjQzOCwgMC4xNjA3NDksIDAuMTg2MDI0LCAwLjIwMDcyOCIsIFwKLSAgICAgICAgICAiMC4xMjI5NTEsIDAuMTI2ODA0LCAwLjE0NDA3OSwgMC4xNTYzMTksIDAuMTcwNjc0LCAwLjE5NTg0OCwgMC4yMTA1MzkiLCBcCi0gICAgICAgICAgIjAuMTMyODIsIDAuMTM2NjQ3LCAwLjE1NDAyMSwgMC4xNjYxNTksIDAuMTgwNDc3LCAwLjIwNTY3NCwgMC4yMjAzMDYiLCBcCi0gICAgICAgICAgIjAuMTQ4MjM5LCAwLjE1MjA1NywgMC4xNjkyODcsIDAuMTgxNDksIDAuMTk1NzAyLCAwLjIyMTAyOSwgMC4yMzU3MTIiLCBcCi0gICAgICAgICAgIjAuMTYwNzE3LCAwLjE2NDYyNiwgMC4xODE5MzYsIDAuMTk0MTEzLCAwLjIwODM5OSwgMC4yMzM3MDIsIDAuMjQ4MjY4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzODQ4NiwgMC4wNDI3NTIsIDAuMDYzNjMxLCAwLjA3OTc2NiwgMC4xMDAzNzksIDAuMTQwOTk5LCAwLjE2NjIwNCIsIFwKLSAgICAgICAgICAiMC4wMzg1MjMsIDAuMDQyNzU3LCAwLjA2MzU1NywgMC4wNzk2NzUsIDAuMTAwMzk1LCAwLjE0MTAwOSwgMC4xNjYxOTIiLCBcCi0gICAgICAgICAgIjAuMDM4NTc1LCAwLjA0MjczNywgMC4wNjM1MDYsIDAuMDc5NjI3LCAwLjEwMDIyNCwgMC4xNDA4NzYsIDAuMTY2MjA1IiwgXAotICAgICAgICAgICIwLjAzODQzNiwgMC4wNDI3MzUsIDAuMDYzMzU3LCAwLjA3OTY4LCAwLjEwMDMwNSwgMC4xNDA3ODYsIDAuMTY2MTI0IiwgXAotICAgICAgICAgICIwLjAzODQ3MSwgMC4wNDI2MDcsIDAuMDYzNDE1LCAwLjA3OTY2LCAwLjEwMDMyLCAwLjE0MDg0NCwgMC4xNjYxMjQiLCBcCi0gICAgICAgICAgIjAuMDM5NDYzLCAwLjA0MzUwOCwgMC4wNjQwNDgsIDAuMDgwMTEyLCAwLjEwMDgzNSwgMC4xNDEyNDYsIDAuMTY2NTE4IiwgXAotICAgICAgICAgICIwLjA0MTYyMSwgMC4wNDU1NDUsIDAuMDY1OTUyLCAwLjA4MTg2MSwgMC4xMDIwOTksIDAuMTQyMTU5LCAwLjE2NzI4OCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDkyODk3LCAwLjA5NjczMSwgMC4xMTM5MzgsIDAuMTI2MDU3LCAwLjEzOTg3MiwgMC4xNjQ3MTMsIDAuMTc5MjYyIiwgXAotICAgICAgICAgICIwLjA5OTgyNCwgMC4xMDM2NTksIDAuMTIwODU5LCAwLjEzMjk5NywgMC4xNDY5NjMsIDAuMTcxNzgzLCAwLjE4NjE5NiIsIFwKLSAgICAgICAgICAiMC4xMDUwNTgsIDAuMTA4OTI4LCAwLjEyNjI3OCwgMC4xMzgyNDYsIDAuMTUyMjYyLCAwLjE3NzA4NiwgMC4xOTE1MjMiLCBcCi0gICAgICAgICAgIjAuMTA4NzE4LCAwLjExMjU4NiwgMC4xMjk5MTQsIDAuMTQxODk5LCAwLjE1NTkzOSwgMC4xODA3MDYsIDAuMTk1MTAxIiwgXAotICAgICAgICAgICIwLjExMTcsIDAuMTE1NTk2LCAwLjEzMjgyNCwgMC4xNDQ4OTksIDAuMTU4OTExLCAwLjE4MzcyOCwgMC4xOTgwOTgiLCBcCi0gICAgICAgICAgIjAuMTE1NDAyLCAwLjExOTI4NywgMC4xMzY0NjgsIDAuMTQ4NDk2LCAwLjE2MjQ2NywgMC4xODcyNzEsIDAuMjAxNjY0IiwgXAotICAgICAgICAgICIwLjExODMyNywgMC4xMjIyMDEsIDAuMTM5NTA1LCAwLjE1MTUzNCwgMC4xNjU1MTEsIDAuMTkwMjE3LCAwLjIwNDYyNSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzYxMiwgMC4wNDA1OTcsIDAuMDYxNTcsIDAuMDc4MDYsIDAuMDk4NzIxLCAwLjEzOTgxMiwgMC4xNjU2NzkiLCBcCi0gICAgICAgICAgIjAuMDM2MTIsIDAuMDQwNTkyLCAwLjA2MTU3MSwgMC4wNzc4NDQsIDAuMDk4Nzk4LCAwLjEzOTksIDAuMTY1Njc5IiwgXAotICAgICAgICAgICIwLjAzNjI1NywgMC4wNDA0NTIsIDAuMDYxNDcsIDAuMDc3NjcxLCAwLjA5ODYxOCwgMC4xMzk4NDcsIDAuMTY1NTkxIiwgXAotICAgICAgICAgICIwLjAzNjA1MywgMC4wNDAzMzMsIDAuMDYxMzc2LCAwLjA3Nzc0NiwgMC4wOTg2MjYsIDAuMTM5NzMyLCAwLjE2NTQ5NCIsIFwKLSAgICAgICAgICAiMC4wMzYxMjcsIDAuMDQwMzA1LCAwLjA2MTMxMiwgMC4wNzc4NjMsIDAuMDk4NzQ4LCAwLjEzOTg5MywgMC4xNjU2MTkiLCBcCi0gICAgICAgICAgIjAuMDM2MDA5LCAwLjA0MDI4NiwgMC4wNjExNDUsIDAuMDc3NzA3LCAwLjA5ODY3MSwgMC4xMzk3NTksIDAuMTY1NTYyIiwgXAotICAgICAgICAgICIwLjAzNjA1OSwgMC4wNDAyMzksIDAuMDYxMzY4LCAwLjA3NzgyMSwgMC4wOTg1NjQsIDAuMTM5ODA5LCAwLjE2NTQ5NiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDQ4MjMsIDAuMTA4NjY5LCAwLjEyNTg3OCwgMC4xMzgyMDQsIDAuMTUyMzE5LCAwLjE3NzcwOCwgMC4xOTI0MDciLCBcCi0gICAgICAgICAgIjAuMTExOTk3LCAwLjExNTg0OSwgMC4xMzMwNTgsIDAuMTQ1MjQ4LCAwLjE1OTU3NiwgMC4xODQ4NywgMC4xOTk2MSIsIFwKLSAgICAgICAgICAiMC4xMTc1NjYsIDAuMTIxMzg1LCAwLjEzODc2MSwgMC4xNTA4NDQsIDAuMTY1Mjc2LCAwLjE5MDUwNSwgMC4yMDUxODMiLCBcCi0gICAgICAgICAgIjAuMTIxNTYxLCAwLjEyNTQzOSwgMC4xNDI4MTUsIDAuMTU1MDM0LCAwLjE2OTI2MywgMC4xOTQ2MDQsIDAuMjA5Mjc2IiwgXAotICAgICAgICAgICIwLjEyNTE3NiwgMC4xMjkwNTMsIDAuMTQ2Mzk5LCAwLjE1ODUxOSwgMC4xNzI4NzUsIDAuMTk4MDkyLCAwLjIxMjc3NyIsIFwKLSAgICAgICAgICAiMC4xMjk3MjUsIDAuMTMzNTM3LCAwLjE1MDc3LCAwLjE2MzAwOCwgMC4xNzcyODcsIDAuMjAyNTcyLCAwLjIxNzI4NSIsIFwKLSAgICAgICAgICAiMC4xMzMyMTgsIDAuMTM2OTI3LCAwLjE1NDM0NCwgMC4xNjY1MjIsIDAuMTgwNjYsIDAuMjA1ODY4LCAwLjIyMDc1NCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzg3MTUsIDAuMDQyODQ5LCAwLjA2MzkwOCwgMC4wODAyNjIsIDAuMTAwNjYsIDAuMTQxMjA2LCAwLjE2NjUyNiIsIFwKLSAgICAgICAgICAiMC4wMzg2MTcsIDAuMDQyOTM3LCAwLjA2Mzg5MSwgMC4wODAxMTIsIDAuMTAwNjg5LCAwLjE0MTI2NSwgMC4xNjY1MzMiLCBcCi0gICAgICAgICAgIjAuMDM4Njk5LCAwLjA0MzAzMywgMC4wNjM4MzMsIDAuMDc5ODE0LCAwLjEwMDU2OCwgMC4xNDEwNTYsIDAuMTY2MzMyIiwgXAotICAgICAgICAgICIwLjAzODYwMywgMC4wNDI4OTEsIDAuMDYzNTAxLCAwLjA3OTg1LCAwLjEwMDMxMSwgMC4xNDA5NjEsIDAuMTY2MjY5IiwgXAotICAgICAgICAgICIwLjAzODY4LCAwLjA0MjgzMSwgMC4wNjM3NTQsIDAuMDc5ODA2LCAwLjEwMDU1NCwgMC4xNDEwNTQsIDAuMTY2MzU4IiwgXAotICAgICAgICAgICIwLjAzODQzOSwgMC4wNDI3OTYsIDAuMDYzNDY4LCAwLjA3OTc2NiwgMC4xMDA0MjQsIDAuMTQxMjM3LCAwLjE2NjMyNSIsIFwKLSAgICAgICAgICAiMC4wMzg1MjEsIDAuMDQyNzExLCAwLjA2MzQ2MiwgMC4wNzk2NDEsIDAuMTAwNTYzLCAwLjE0MTA5MywgMC4xNjYzODEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjE2LCAwLjAyMDYzNCwgMC4wMTg1MjcsIDAuMDE4MDQzLCAwLjAxNzc2MSwgMC4wMTc1MzcsIDAuMDE3NDc4IiwgXAotICAgICAgICAgICIwLjAyMTI2OSwgMC4wMjAyNDEsIDAuMDE4MzgxLCAwLjAxNzg5MiwgMC4wMTc2MDQsIDAuMDE3NDUxLCAwLjAxNzM5OCIsIFwKLSAgICAgICAgICAiMC4wMjExNjQsIDAuMDIwMTg4LCAwLjAxODI0NCwgMC4wMTc3NjgsIDAuMDE3NTEsIDAuMDE3MzI4LCAwLjAxNzI4NSIsIFwKLSAgICAgICAgICAiMC4wMjE0MTMsIDAuMDIwNDU0LCAwLjAxODQ1MywgMC4wMTc5NDgsIDAuMDE3NjYsIDAuMDE3NDUxLCAwLjAxNzM5MiIsIFwKLSAgICAgICAgICAiMC4wMjE1OTcsIDAuMDIwNTcxLCAwLjAxODY2NiwgMC4wMTgxMiwgMC4wMTc3OTQsIDAuMDE3NTM0LCAwLjAxNzQ1NiIsIFwKLSAgICAgICAgICAiMC4wMjIyODksIDAuMDIxMjgsIDAuMDE5NTQ3LCAwLjAxODgzMywgMC4wMTgzNjMsIDAuMDE3OTI5LCAwLjAxNzgxOSIsIFwKLSAgICAgICAgICAiMC4wMjMwMDYsIDAuMDIxOTQzLCAwLjAyMDA5NCwgMC4wMTkxMTUsIDAuMDE4NjE3LCAwLjAxODE1NywgMC4wMTgwMTgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjMxMTIsIDAuMDIyMDg4LCAwLjAyMDA2MiwgMC4wMTkzOTgsIDAuMDE4OTk4LCAwLjAxODc4LCAwLjAxODY4OSIsIFwKLSAgICAgICAgICAiMC4wMjMzMiwgMC4wMjIyNzcsIDAuMDE5ODgxLCAwLjAxOTI0OSwgMC4wMTg5MTYsIDAuMDE4NjM0LCAwLjAxODU2OSIsIFwKLSAgICAgICAgICAiMC4wMjMwMSwgMC4wMjE5NzksIDAuMDE5NzQ2LCAwLjAxOTEwNCwgMC4wMTg3NjQsIDAuMDE4NTIxLCAwLjAxODQ2MyIsIFwKLSAgICAgICAgICAiMC4wMjI5NzYsIDAuMDIxOTI0LCAwLjAxOTY5MiwgMC4wMTkxMjksIDAuMDE4NzgsIDAuMDE4NTA3LCAwLjAxODQ0OSIsIFwKLSAgICAgICAgICAiMC4wMjMyNDksIDAuMDIyMjExLCAwLjAxOTk3MiwgMC4wMTkzMTEsIDAuMDE4OTE1LCAwLjAxODYyMSwgMC4wMTg1NDQiLCBcCi0gICAgICAgICAgIjAuMDI0NDEyLCAwLjAyMzI5LCAwLjAyMDY5MywgMC4wMTk5NjEsIDAuMDE5NDcsIDAuMDE5MDM1LCAwLjAxODg5OCIsIFwKLSAgICAgICAgICAiMC4wMjUwNzcsIDAuMDIzOTAxLCAwLjAyMTE3OCwgMC4wMjAwODEsIDAuMDE5NTYzLCAwLjAxOTExMiwgMC4wMTg5OCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyMTE0MiwgMC4wMjAyLCAwLjAxODMyNSwgMC4wMTc3NDksIDAuMDE3NDE0LCAwLjAxNzExNiwgMC4wMTcwNzUiLCBcCi0gICAgICAgICAgIjAuMDIwOTk2LCAwLjAxOTk5NywgMC4wMTgxMTksIDAuMDE3NTk5LCAwLjAxNzI3NywgMC4wMTcwNiwgMC4wMTY5ODEiLCBcCi0gICAgICAgICAgIjAuMDIwODk0LCAwLjAxOTkzMywgMC4wMTc5NTMsIDAuMDE3NDcxLCAwLjAxNzE1NSwgMC4wMTY5MzQsIDAuMDE2ODU5IiwgXAotICAgICAgICAgICIwLjAyMTExOSwgMC4wMjAxNTMsIDAuMDE4MTMxLCAwLjAxNzYwMSwgMC4wMTcyODgsIDAuMDE3MDM4LCAwLjAxNjk1MiIsIFwKLSAgICAgICAgICAiMC4wMjEyODMsIDAuMDIwMzExLCAwLjAxODI5LCAwLjAxNzc0LCAwLjAxNzM4NiwgMC4wMTcwOTcsIDAuMDE3MDEzIiwgXAotICAgICAgICAgICIwLjAyMjA1MiwgMC4wMjA5OTIsIDAuMDE4Nzg4LCAwLjAxODEzOCwgMC4wMTc3MTQsIDAuMDE3MzMyLCAwLjAxNzIyNSIsIFwKLSAgICAgICAgICAiMC4wMjMwMzgsIDAuMDIxOTM5LCAwLjAxOTUxMSwgMC4wMTg3NDIsIDAuMDE4MTY3LCAwLjAxNzY4MywgMC4wMTc1MTMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjM3NjksIDAuMDIyNzIyLCAwLjAyMDQ1NCwgMC4wMTk3OSwgMC4wMTkzODIsIDAuMDE5MDQsIDAuMDE4OTQiLCBcCi0gICAgICAgICAgIjAuMDIzODE1LCAwLjAyMjc3NSwgMC4wMjAzNjYsIDAuMDE5Njk4LCAwLjAxOTMzOSwgMC4wMTkwMTEsIDAuMDE4OTEyIiwgXAotICAgICAgICAgICIwLjAyMzM4MSwgMC4wMjIzMzIsIDAuMDIwMDc1LCAwLjAxOTUxMiwgMC4wMTkxNjQsIDAuMDE4ODQ2LCAwLjAxODc1NiIsIFwKLSAgICAgICAgICAiMC4wMjM0MzIsIDAuMDIyMzg1LCAwLjAyMDExMiwgMC4wMTk1MjQsIDAuMDE5MTEzLCAwLjAxODgyNywgMC4wMTg3NDkiLCBcCi0gICAgICAgICAgIjAuMDIzNjc1LCAwLjAyMjYyNCwgMC4wMjAzMzEsIDAuMDE5NzAyLCAwLjAxOTI2NywgMC4wMTg5MzYsIDAuMDE4ODM2IiwgXAotICAgICAgICAgICIwLjAyNDczMSwgMC4wMjM2MjcsIDAuMDIxMDg3LCAwLjAyMDI5NCwgMC4wMTk2NjYsIDAuMDE5MjQ5LCAwLjAxOTExNSIsIFwKLSAgICAgICAgICAiMC4wMjU0OCwgMC4wMjQyOTYsIDAuMDIxNTY3LCAwLjAyMDQ0MiwgMC4wMTk5MywgMC4wMTk0MzksIDAuMDE5Mjg1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUzAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyNDE4OSwgMC4wMjMxNzgsIDAuMDIxMzA3LCAwLjAyMDgyNCwgMC4wMjA1MzEsIDAuMDIwMzgsIDAuMDIwMzMiLCBcCi0gICAgICAgICAgIjAuMDI0MjA4LCAwLjAyMzE5NSwgMC4wMjEzMjIsIDAuMDIwODM5LCAwLjAyMDU1LCAwLjAyMDM5OSwgMC4wMjAzMzgiLCBcCi0gICAgICAgICAgIjAuMDI0MjQ2LCAwLjAyMzMwNywgMC4wMjEzODYsIDAuMDIwODgsIDAuMDIwNjIyLCAwLjAyMDQ3MSwgMC4wMjA0MjQiLCBcCi0gICAgICAgICAgIjAuMDI0NDI2LCAwLjAyMzQ3MywgMC4wMjE1NDcsIDAuMDIxMDY5LCAwLjAyMDgxNSwgMC4wMjA2MzgsIDAuMDIwNjA1IiwgXAotICAgICAgICAgICIwLjAyNDU1LCAwLjAyMzYwMiwgMC4wMjE2NjIsIDAuMDIxMjA4LCAwLjAyMDk1NiwgMC4wMjA3OTYsIDAuMDIwNzU3IiwgXAotICAgICAgICAgICIwLjAyNDg4OSwgMC4wMjM5MzMsIDAuMDIyLCAwLjAyMTUwNiwgMC4wMjEyNjMsIDAuMDIxMDgzLCAwLjAyMTA1MyIsIFwKLSAgICAgICAgICAiMC4wMjUxMzcsIDAuMDI0MTkyLCAwLjAyMjI5OCwgMC4wMjE4NDQsIDAuMDIxNTUyLCAwLjAyMTM5MSwgMC4wMjEzNTciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjI4MDQsIDAuMDIxNzU3LCAwLjAxOTQ0NCwgMC4wMTg4MjYsIDAuMDE4NDEzLCAwLjAxODExNCwgMC4wMTgwMyIsIFwKLSAgICAgICAgICAiMC4wMjI2ODQsIDAuMDIxNjI4LCAwLjAxOTUwOCwgMC4wMTg4NTYsIDAuMDE4NDU5LCAwLjAxODEzOSwgMC4wMTgwNTMiLCBcCi0gICAgICAgICAgIjAuMDIyODQyLCAwLjAyMTc3NSwgMC4wMTk0ODUsIDAuMDE4ODE5LCAwLjAxODQ3NywgMC4wMTgxNzQsIDAuMDE4MDg2IiwgXAotICAgICAgICAgICIwLjAyMjgzNywgMC4wMjE3NywgMC4wMTk1MTIsIDAuMDE4OTE2LCAwLjAxODUzNCwgMC4wMTgyOTgsIDAuMDE4MjI3IiwgXAotICAgICAgICAgICIwLjAyMzExNCwgMC4wMjIwODUsIDAuMDIwMDUxLCAwLjAxOTM4MiwgMC4wMTkwMDcsIDAuMDE4NjYzLCAwLjAxODU2NiIsIFwKLSAgICAgICAgICAiMC4wMjM1MjcsIDAuMDIyNDA3LCAwLjAyMDE0OCwgMC4wMTk1OCwgMC4wMTkyMDQsIDAuMDE4OTE3LCAwLjAxODg0NCIsIFwKLSAgICAgICAgICAiMC4wMjM3ODcsIDAuMDIyNzQ0LCAwLjAyMDQ3NywgMC4wMTk4MjYsIDAuMDE5NTAyLCAwLjAxOTIxMiwgMC4wMTkxMzgiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IENMS1hPUjJYMSAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKENMS1hPUjJYMSkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjM4MTA3MjsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjY1NzYxOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDY2NTY3NDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2NjU3NjE7Ci0gIH0KLSAgcGluKEIpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTM2MjA0OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTM2MjA0OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTM2MjAzOwotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMzM4NDU7Ci0gICAgZnVuY3Rpb24gOiAiKEFeQikiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3MTk3LCAwLjA5MDgwOSwgMC4xOTYzMzIsIDAuMjg5Mzc1LCAwLjQxMzQ3NiwgMC42NjE5NjUsIDAuODE2ODYyIiwgXAotICAgICAgICAgICIwLjA4MDEwNywgMC4wOTg5NDgsIDAuMjA0NDQ2LCAwLjI5NzU4LCAwLjQyMTc2OSwgMC42NzAwOSwgMC44MjUzMjgiLCBcCi0gICAgICAgICAgIjAuMDg5NzQxLCAwLjEwODU4LCAwLjIxNDA2OCwgMC4zMDcxOSwgMC40MzEzNDYsIDAuNjc5NzE0LCAwLjgzNDU0OSIsIFwKLSAgICAgICAgICAiMC4wOTc4MzgsIDAuMTE2NjgsIDAuMjIyMTY5LCAwLjMxNTMwNiwgMC40Mzk2MDgsIDAuNjg3OTYsIDAuODQyNzQxIiwgXAotICAgICAgICAgICIwLjEwNDcxNywgMC4xMjM2MywgMC4yMjkxMDMsIDAuMzIyMTU5LCAwLjQ0NjU2MSwgMC42OTQ1OSwgMC44NDk2NDciLCBcCi0gICAgICAgICAgIjAuMTEzOTQsIDAuMTMyOTUsIDAuMjM4NDA4LCAwLjMzMTQzLCAwLjQ1NTUyMSwgMC43MDQyOTgsIDAuODU5MTQ3IiwgXAotICAgICAgICAgICIwLjEyMDc5NSwgMC4xMzk5MzUsIDAuMjQ1NDA4LCAwLjMzODQ0MiwgMC40NjI1MTksIDAuNzEwNzczLCAwLjg2NjE5OSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzQ3OTUsIDAuMTEyNjk2LCAwLjMzMjc3OCwgMC41Mjc5NTcsIDAuNzg5NjM3LCAxLjMxMDg5LCAxLjYzNjU3IiwgXAotICAgICAgICAgICIwLjA3NDg1NywgMC4xMTI3MDEsIDAuMzMyNzI3LCAwLjUyNzQyOSwgMC43ODg2OSwgMS4zMTA4OSwgMS42MzcyNyIsIFwKLSAgICAgICAgICAiMC4wNzUwMjYsIDAuMTEyODAyLCAwLjMzMjc0MywgMC41Mjc0NzQsIDAuNzg4NjcyLCAxLjMxMDkxLCAxLjYzNjg3IiwgXAotICAgICAgICAgICIwLjA3NTY1OSwgMC4xMTMxOSwgMC4zMzI3ODEsIDAuNTI3NDQsIDAuNzg4NzAzLCAxLjMxMDc3LCAxLjYzNzk3IiwgXAotICAgICAgICAgICIwLjA3NjM4NCwgMC4xMTM3MywgMC4zMzI0MjIsIDAuNTI4NTMzLCAwLjc4ODg1LCAxLjMxMTcsIDEuNjM2NTUiLCBcCi0gICAgICAgICAgIjAuMDc3Nzg1LCAwLjExNDYyNywgMC4zMzMwNywgMC41Mjc5ODcsIDAuNzg5OTI5LCAxLjMxMDY1LCAxLjYzNzIxIiwgXAotICAgICAgICAgICIwLjA3ODc5NSwgMC4xMTU2MjEsIDAuMzMyODY2LCAwLjUyODYyNCwgMC43ODg4ODEsIDEuMzEwNTEsIDEuNjM3MjciKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc0ODg5LCAwLjA5MzQ4LCAwLjE5NjE4NCwgMC4yODY2NTcsIDAuNDA3MzMyLCAwLjY0ODcyMywgMC43OTk0NCIsIFwKLSAgICAgICAgICAiMC4wODI3ODIsIDAuMTAxMzc1LCAwLjIwNDA4NSwgMC4yOTQ1NTksIDAuNDE1MzA0LCAwLjY1Njc1NiwgMC44MDc4NDUiLCBcCi0gICAgICAgICAgIjAuMDkyMTExLCAwLjExMDcwMiwgMC4yMTM0NDMsIDAuMzAzOTE2LCAwLjQyNDU0OCwgMC42NjYwMjIsIDAuODE2ODM1IiwgXAotICAgICAgICAgICIwLjEwMDEzMSwgMC4xMTg3NSwgMC4yMjE0NzQsIDAuMzExOTQzLCAwLjQzMjU4OCwgMC42NzQwOTMsIDAuODI0OTQ4IiwgXAotICAgICAgICAgICIwLjEwNjc4NywgMC4xMjU0OTIsIDAuMjI4MjQzLCAwLjMxODY5NywgMC40MzkzNTYsIDAuNjgwNzc1LCAwLjgzMTY2OCIsIFwKLSAgICAgICAgICAiMC4xMTU2MTcsIDAuMTM0NDUzLCAwLjIzNzI1OSwgMC4zMjc3MSwgMC40NDgzMzYsIDAuNjg5NzA0LCAwLjg0MDc2NiIsIFwKLSAgICAgICAgICAiMC4xMjIxMzcsIDAuMTQxMDY5LCAwLjI0MzkyMiwgMC4zMzQzNjksIDAuNDU1MDY5LCAwLjY5NjQ0MiwgMC44NDcyNDgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDcyNzQyLCAwLjEwODUzNiwgMC4zMTY4OTIsIDAuNTAyMTc2LCAwLjc1MDM0NiwgMS4yNDY2MiwgMS41NTk1OSIsIFwKLSAgICAgICAgICAiMC4wNzI3NTksIDAuMTA4NTQ1LCAwLjMxNjkwNSwgMC41MDIxNzEsIDAuNzUwMDc2LCAxLjI0NzU1LCAxLjU1NzIzIiwgXAotICAgICAgICAgICIwLjA3Mjk1NCwgMC4xMDg2NTksIDAuMzE2MjQ5LCAwLjUwMjkxOCwgMC43NTEyOCwgMS4yNDcyNiwgMS41NTY3OSIsIFwKLSAgICAgICAgICAiMC4wNzM1MSwgMC4xMDg5OTcsIDAuMzE2OTgsIDAuNTAyNzg5LCAwLjc1MTQxOCwgMS4yNDcyNSwgMS41NTY1NiIsIFwKLSAgICAgICAgICAiMC4wNzQyMjUsIDAuMTA5NTk2LCAwLjMxNjUxNiwgMC41MDI4NDksIDAuNzUxNDU3LCAxLjI0NzAyLCAxLjU1NjYzIiwgXAotICAgICAgICAgICIwLjA3NTU3NSwgMC4xMTA0NDYsIDAuMzE3NDc1LCAwLjUwMjM5NCwgMC43NTE0MjksIDEuMjQ1ODIsIDEuNTU2NiIsIFwKLSAgICAgICAgICAiMC4wNzY1NzEsIDAuMTExNDA0LCAwLjMxNzY0LCAwLjUwMzA4NSwgMC43NDk3NDksIDEuMjQ2NCwgMS41NTY3OCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODA3MTQsIDAuMDk5NTUxLCAwLjIwNTE3MiwgMC4yOTgyOSwgMC40MjIyNzUsIDAuNjcwNjUsIDAuODI1NjI0IiwgXAotICAgICAgICAgICIwLjA4ODI2MywgMC4xMDcwODYsIDAuMjEyNzE5LCAwLjMwNTgzOCwgMC40Mjk5NTgsIDAuNjc4MDM0LCAwLjgzMzE1OCIsIFwKLSAgICAgICAgICAiMC4wOTQ5MzUsIDAuMTEzNzY2LCAwLjIxOTM5NSwgMC4zMTI0OTksIDAuNDM2NTYsIDAuNjg0NzMsIDAuODM5ODM0IiwgXAotICAgICAgICAgICIwLjA5OTcxLCAwLjExODUyNCwgMC4yMjQxNTQsIDAuMzE3MjQ2LCAwLjQ0MTM0NiwgMC42ODk0OTksIDAuODQ0NTciLCBcCi0gICAgICAgICAgIjAuMTAzNTI2LCAwLjEyMjM0MSwgMC4yMjc5NTksIDAuMzIxMDgsIDAuNDQ1MTQ4LCAwLjY5MzI3OCwgMC44NDgzNzkiLCBcCi0gICAgICAgICAgIjAuMTA4NTIzLCAwLjEyNzM0MSwgMC4yMzI5NiwgMC4zMjYwNzcsIDAuNDUwMTE0LCAwLjY5ODIzOSwgMC44NTMzOTQiLCBcCi0gICAgICAgICAgIjAuMTEyMTY1LCAwLjEzMTAzMywgMC4yMzY1NDYsIDAuMzI5NzU0LCAwLjQ1MzgyMywgMC43MDE5NzYsIDAuODU2OTc2Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3Mzk2OCwgMC4xMTIwNDEsIDAuMzMyNjE3LCAwLjUyODUyNCwgMC43ODg3MDYsIDEuMzEwMTksIDEuNjM3MDMiLCBcCi0gICAgICAgICAgIjAuMDczOTY5LCAwLjExMTk5NywgMC4zMzI2MjMsIDAuNTI4NTIzLCAwLjc4ODE5MiwgMS4zMTE0MiwgMS42MzY2NyIsIFwKLSAgICAgICAgICAiMC4wNzM5ODYsIDAuMTEyMDUsIDAuMzMyNjc3LCAwLjUyODUxLCAwLjc4OTA0MiwgMS4zMTA0MywgMS42MzcwNSIsIFwKLSAgICAgICAgICAiMC4wNzQwMDMsIDAuMTEyMDU1LCAwLjMzMjY3NiwgMC41Mjc5MzUsIDAuNzg4NTczLCAxLjMxMDc1LCAxLjYzNjYyIiwgXAotICAgICAgICAgICIwLjA3NDAxLCAwLjExMjA2NiwgMC4zMzIyNTcsIDAuNTI4NTEzLCAwLjc4OSwgMS4zMTExNCwgMS42MzY2IiwgXAotICAgICAgICAgICIwLjA3NDE1NiwgMC4xMTE5NzksIDAuMzMyMjE2LCAwLjUyODQ5MiwgMC43ODk3NDUsIDEuMzExMzksIDEuNjM5MjciLCBcCi0gICAgICAgICAgIjAuMDc0MTA4LCAwLjExMjE0NSwgMC4zMzIyNywgMC41Mjg1NDgsIDAuNzg5OCwgMS4zMTEsIDEuNjM3NzkiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDgzMTM2LCAwLjEwMTYxOSwgMC4yMDQzOTQsIDAuMjk0OTE2LCAwLjQxNTU0NSwgMC42NTY4MSwgMC44MDc1NiIsIFwKLSAgICAgICAgICAiMC4wOTA4NjgsIDAuMTA5MzU1LCAwLjIxMjEyOCwgMC4zMDI2MzksIDAuNDIzMjg1LCAwLjY2NDUxMywgMC44MTUzMTQiLCBcCi0gICAgICAgICAgIjAuMDk3NTk5LCAwLjExNjA4MiwgMC4yMTg4NTgsIDAuMzA5MzYyLCAwLjQzMDAxNCwgMC42NzEyMzcsIDAuODIyMDA5IiwgXAotICAgICAgICAgICIwLjEwMjUxMywgMC4xMjA5OTksIDAuMjIzNzYyLCAwLjMxNDI3OCwgMC40MzQ5MTUsIDAuNjc2MTk1LCAwLjgyNzAzMSIsIFwKLSAgICAgICAgICAiMC4xMDY0MTUsIDAuMTI0OTEzLCAwLjIyNzY4NiwgMC4zMTgyMDgsIDAuNDM4ODM1LCAwLjY4MDEzMywgMC44MzA5MDUiLCBcCi0gICAgICAgICAgIjAuMTExNzY2LCAwLjEzMDIwNCwgMC4yMzMwMDUsIDAuMzIzNTMzLCAwLjQ0NDE2NywgMC42ODUzNjgsIDAuODM2MjU5IiwgXAotICAgICAgICAgICIwLjExNTY1NSwgMC4xMzQxOTYsIDAuMjM2OTMsIDAuMzI3MzczLCAwLjQ0ODA3OSwgMC42ODkyNiwgMC44NDAxMDgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDcxNzAxLCAwLjEwNzY1NCwgMC4zMTY3MDEsIDAuNTAyMzE0LCAwLjc1MTMwNCwgMS4yNDcyNiwgMS41NTc0IiwgXAotICAgICAgICAgICIwLjA3MTY5MiwgMC4xMDc2NjUsIDAuMzE2NzAxLCAwLjUwMjE1NywgMC43NTEzMzEsIDEuMjQ4MzUsIDEuNTU5MzkiLCBcCi0gICAgICAgICAgIjAuMDcxNjU5LCAwLjEwNzY1NCwgMC4zMTYyNjMsIDAuNTAyMTcxLCAwLjc1MTM0NiwgMS4yNDY4MywgMS41NTcyNSIsIFwKLSAgICAgICAgICAiMC4wNzE2ODYsIDAuMTA3Njg2LCAwLjMxNjY0LCAwLjUwMjE2OCwgMC43NTAyOTcsIDEuMjQ4NjgsIDEuNTU5ODIiLCBcCi0gICAgICAgICAgIjAuMDcxNjgyLCAwLjEwNzY0NywgMC4zMTY2NSwgMC41MDIyNjIsIDAuNzUxMzY4LCAxLjI0ODc3LCAxLjU1Njk1IiwgXAotICAgICAgICAgICIwLjA3MTgsIDAuMTA3NTc1LCAwLjMxNjY0LCAwLjUwMjgwNiwgMC43NTEzNzMsIDEuMjQ4MjEsIDEuNTU5NzgiLCBcCi0gICAgICAgICAgIjAuMDcxNzUxLCAwLjEwNzczMSwgMC4zMTY2MTcsIDAuNTAyNzUyLCAwLjc1MTE1MiwgMS4yNDY5NSwgMS41NTkzMyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjM3MzEsIDAuMDgyNTQsIDAuMTg4MTYsIDAuMjgxMjgzLCAwLjQwNTMzLCAwLjY1MzQ5NCwgMC44MDg1ODciLCBcCi0gICAgICAgICAgIjAuMDcxMjg2LCAwLjA5MDExNywgMC4xOTU3NTQsIDAuMjg4ODU2LCAwLjQxMjkzNCwgMC42NjEwOTIsIDAuODE2MTc5IiwgXAotICAgICAgICAgICIwLjA4MDMxOSwgMC4wOTkxNDMsIDAuMjA0NzgsIDAuMjk3OTA1LCAwLjQyMTk1NCwgMC42NzAwOTQsIDAuODI1MTk0IiwgXAotICAgICAgICAgICIwLjA4NzY0MSwgMC4xMDY0ODQsIDAuMjEyMTQyLCAwLjMwNTI4LCAwLjQyOTI4MywgMC42Nzc0NDMsIDAuODMyNTE2IiwgXAotICAgICAgICAgICIwLjA5MzYzLCAwLjExMjU0MiwgMC4yMTgyMzcsIDAuMzExMzAzLCAwLjQzNTM4NiwgMC42ODM1ODQsIDAuODM4NjE1IiwgXAotICAgICAgICAgICIwLjEwMTY2OSwgMC4xMjA2NzEsIDAuMjI2MzQ5LCAwLjMxOTU0NiwgMC40NDM1NzcsIDAuNjkxNTksIDAuODQ2Nzg4IiwgXAotICAgICAgICAgICIwLjEwNzc0LCAwLjEyNjcsIDAuMjMyNDEsIDAuMzI1NDg3LCAwLjQ0OTYwNCwgMC42OTc3OTgsIDAuODUyNzcyIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3Mzk2LCAwLjExMjAzMSwgMC4zMzI2MzcsIDAuNTI4NTI2LCAwLjc4OTE2MSwgMS4zMTA0MiwgMS42Mzk0OSIsIFwKLSAgICAgICAgICAiMC4wNzM5NTEsIDAuMTEyMDI2LCAwLjMzMjY0MiwgMC41Mjg0NjQsIDAuNzg5Nzc5LCAxLjMxMDQxLCAxLjYzNjczIiwgXAotICAgICAgICAgICIwLjA3NDI4MiwgMC4xMTIyMTEsIDAuMzMyNjUsIDAuNTI4NDY2LCAwLjc4OTA5MywgMS4zMTI1OCwgMS42Mzc2OSIsIFwKLSAgICAgICAgICAiMC4wNzUwMzYsIDAuMTEyNzIzLCAwLjMzMjcyNywgMC41Mjc3NTIsIDAuNzg4OTg3LCAxLjMxMTE3LCAxLjYzNzciLCBcCi0gICAgICAgICAgIjAuMDc1NzUsIDAuMTEzMjUyLCAwLjMzMjM5NiwgMC41Mjg1MjIsIDAuNzg4NjM0LCAxLjMxMjUzLCAxLjYzNjcxIiwgXAotICAgICAgICAgICIwLjA3NzA1NiwgMC4xMTQwMzksIDAuMzMyNjYyLCAwLjUyNzg5NiwgMC43ODkwNjksIDEuMzEyMzcsIDEuNjM3NTYiLCBcCi0gICAgICAgICAgIjAuMDc4MDY3LCAwLjExNDk5NiwgMC4zMzI4NTQsIDAuNTI4NzUzLCAwLjc4OTE5NCwgMS4zMTI1MiwgMS42MzkzMiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjM2MDEsIDAuMDgyMTk1LCAwLjE4NDk0OCwgMC4yNzU0MzYsIDAuMzk2MDc5LCAwLjYzNzcxNiwgMC43ODg1NCIsIFwKLSAgICAgICAgICAiMC4wNzEwMSwgMC4wODk2MTYsIDAuMTkyMzgyLCAwLjI4Mjg2NywgMC40MDM1MjcsIDAuNjQ1MzA2LCAwLjc5NjA3MyIsIFwKLSAgICAgICAgICAiMC4wNzk1NDUsIDAuMDk4MTYzLCAwLjIwMDkzLCAwLjI5MTQxMiwgMC40MTIxOTQsIDAuNjUzNTI3LCAwLjgwNDQzMyIsIFwKLSAgICAgICAgICAiMC4wODYzNzYsIDAuMTA1MDMxLCAwLjIwNzc5OSwgMC4yOTgyNzIsIDAuNDE4OTM2LCAwLjY2MDU1LCAwLjgxMTM0IiwgXAotICAgICAgICAgICIwLjA5MTg1OSwgMC4xMTA2MzcsIDAuMjEzNDEzLCAwLjMwMzkyOCwgMC40MjQ2MTIsIDAuNjY2MDUsIDAuODE3MTU4IiwgXAotICAgICAgICAgICIwLjA5OTM4NSwgMC4xMTgxNCwgMC4yMjExMjksIDAuMzExNTc4LCAwLjQzMjMyMywgMC42NzM3MjksIDAuODI0NDA2IiwgXAotICAgICAgICAgICIwLjEwNDk5NCwgMC4xMjM4NywgMC4yMjY4ODMsIDAuMzE3MzMzLCAwLjQzNzk1MSwgMC42NzkyNjgsIDAuODMwNDY4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3MjQxLCAwLjEwODI1LCAwLjMxNjgxNiwgMC41MDIxMzMsIDAuNzUxMzM1LCAxLjI0NjE1LCAxLjU1NjUiLCBcCi0gICAgICAgICAgIjAuMDcyMzUzLCAwLjEwODI1MywgMC4zMTY4MTIsIDAuNTAyMTQ0LCAwLjc1MTE2NywgMS4yNDY5LCAxLjU1NjMxIiwgXAotICAgICAgICAgICIwLjA3MjYxNCwgMC4xMDg0MywgMC4zMTY4NSwgMC41MDI3ODEsIDAuNzQ5ODk3LCAxLjI0NjI4LCAxLjU1NjQ4IiwgXAotICAgICAgICAgICIwLjA3MzI4LCAwLjEwODksIDAuMzE2NTgxLCAwLjUwMjY3MSwgMC43NTEzNTEsIDEuMjQ2MiwgMS41NTY0OCIsIFwKLSAgICAgICAgICAiMC4wNzM4NjMsIDAuMTA5MzE1LCAwLjMxNzE1NCwgMC41MDI5MDEsIDAuNzQ5NzM1LCAxLjI0NjIyLCAxLjU1NjE0IiwgXAotICAgICAgICAgICIwLjA3NDk5MSwgMC4xMTAwNjgsIDAuMzE3NDU0LCAwLjUwMjk1MiwgMC43NTAxNjIsIDEuMjQ2MjMsIDEuNTU5MyIsIFwKLSAgICAgICAgICAiMC4wNzU4NjMsIDAuMTEwOTMxLCAwLjMxNzM0OCwgMC41MDI1NjcsIDAuNzUxNDU4LCAxLjI0ODgsIDEuNTU2NDUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY1MTQyLCAwLjA4NDAxNiwgMC4xODk1NzMsIDAuMjgyNzY3LCAwLjQwNjg2NywgMC42NTUzMzksIDAuODEwMTc4IiwgXAotICAgICAgICAgICIwLjA3MzI3OCwgMC4wOTIxNDYsIDAuMTk3NzAxLCAwLjI5MDgxMiwgMC40MTQ5MiwgMC42NjM2MzQsIDAuODE4MzY2IiwgXAotICAgICAgICAgICIwLjA4MDYzNiwgMC4wOTk1MDUsIDAuMjA1MDYxLCAwLjI5ODE2NSwgMC40MjIzNzYsIDAuNjcwNjQ2LCAwLjgyNTcwNSIsIFwKLSAgICAgICAgICAiMC4wODUzNTgsIDAuMTA0MjE4LCAwLjIwOTc2LCAwLjMwMjk1NCwgMC40MjcwNTYsIDAuNjc1MzA2LCAwLjgzMDQ3MSIsIFwKLSAgICAgICAgICAiMC4wODkwNSwgMC4xMDc4NDMsIDAuMjEzMzczLCAwLjMwNjQ1OSwgMC40MzA1OCwgMC42Nzg4NDYsIDAuODM0MDY5IiwgXAotICAgICAgICAgICIwLjA5MzgwMiwgMC4xMTI1OTcsIDAuMjE4MDE0LCAwLjMxMTA5NSwgMC40MzUyMDQsIDAuNjgzNjI5LCAwLjgzODczIiwgXAotICAgICAgICAgICIwLjA5NzIzNCwgMC4xMTYwNzUsIDAuMjIxNCwgMC4zMTQ0NDksIDAuNDM4NTM4LCAwLjY4NzE0NSwgMC44NDI0NjYiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc0NjIxLCAwLjExMjUzNiwgMC4zMzI2MTUsIDAuNTI3NjksIDAuNzg5MTcsIDEuMzEwOSwgMS42MzY1NyIsIFwKLSAgICAgICAgICAiMC4wNzQ1OTgsIDAuMTEyNTI1LCAwLjMzMjYxNSwgMC41Mjc1OTEsIDAuNzg5NDgyLCAxLjMxMDY3LCAxLjYzOTA4IiwgXAotICAgICAgICAgICIwLjA3NDUxLCAwLjExMjQ4OSwgMC4zMzI2OTEsIDAuNTI3NTIyLCAwLjc4ODY4MywgMS4zMTA4MywgMS42MzYzOSIsIFwKLSAgICAgICAgICAiMC4wNzQ0MTcsIDAuMTEyMzcyLCAwLjMzMjIzNiwgMC41Mjc2ODQsIDAuNzg4MjkxLCAxLjMxMDE5LCAxLjYzNzE1IiwgXAotICAgICAgICAgICIwLjA3NDMyNSwgMC4xMTIyNzMsIDAuMzMyNiwgMC41Mjc4ODQsIDAuNzg4NTU0LCAxLjMxMDI2LCAxLjYzNzE1IiwgXAotICAgICAgICAgICIwLjA3NDQ0OSwgMC4xMTIyNywgMC4zMzE4NzcsIDAuNTI4MzU1LCAwLjc4OTg4MiwgMS4zMTA4MiwgMS42MzcxNSIsIFwKLSAgICAgICAgICAiMC4wNzQ1MzksIDAuMTEyNDksIDAuMzMxOTI5LCAwLjUyODI1NiwgMC43ODg4NzQsIDEuMzEwOTEsIDEuNjM3MTQiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc2NjA1LCAwLjA5NTEwMywgMC4xOTc4NzQsIDAuMjg4Mzg1LCAwLjQwOTAyOSwgMC42NTAyNTUsIDAuODAxMDMzIiwgXAotICAgICAgICAgICIwLjA4Mzc2NCwgMC4xMDIyNDcsIDAuMjA1MDE5LCAwLjI5NTUyOCwgMC40MTYxNzcsIDAuNjU3NDA0LCAwLjgwODE3IiwgXAotICAgICAgICAgICIwLjA4OTUzMiwgMC4xMDgwMDcsIDAuMjEwNzg1LCAwLjMwMTMwNCwgMC40MjE5NDgsIDAuNjYzMTksIDAuODEzOTQ1IiwgXAotICAgICAgICAgICIwLjA5MzcwNywgMC4xMTIyMzUsIDAuMjE1MDE2LCAwLjMwNTUyNiwgMC40MjYyMDUsIDAuNjY3NDEsIDAuODE4MTY4IiwgXAotICAgICAgICAgICIwLjA5NzEwOCwgMC4xMTU2MDIsIDAuMjE4NDM1LCAwLjMwODkzNCwgMC40Mjk1NzEsIDAuNjcwODU3LCAwLjgyMTY2NSIsIFwKLSAgICAgICAgICAiMC4xMDE3MSwgMC4xMjAxOTgsIDAuMjIzMDMzLCAwLjMxMzU0OSwgMC40MzQxODEsIDAuNjc1NDQ0LCAwLjgyNjI3MyIsIFwKLSAgICAgICAgICAiMC4xMDUzNTMsIDAuMTIzNzgsIDAuMjI2NjA4LCAwLjMxNzE4LCAwLjQzNzgyLCAwLjY3OTEzOCwgMC44Mjk4MDIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDcxNzA1LCAwLjEwNzY2LCAwLjMxNjIyNiwgMC41MDIxNzgsIDAuNzUxMzkyLCAxLjI0NjksIDEuNTU3MzciLCBcCi0gICAgICAgICAgIjAuMDcxNjg4LCAwLjEwNzY1NSwgMC4zMTY3MDIsIDAuNTAyMTg3LCAwLjc1MTMyNSwgMS4yNDY4NSwgMS41NTkwNyIsIFwKLSAgICAgICAgICAiMC4wNzE3MSwgMC4xMDc2NjQsIDAuMzE2NjksIDAuNTAyMjYxLCAwLjc1MTM0LCAxLjI0Njk4LCAxLjU1NzExIiwgXAotICAgICAgICAgICIwLjA3MTY5MiwgMC4xMDc2ODgsIDAuMzE2NjgxLCAwLjUwMjE3MSwgMC43NTExNCwgMS4yNDgyNywgMS41NTg5NSIsIFwKLSAgICAgICAgICAiMC4wNzE2MzIsIDAuMTA3NjUxLCAwLjMxNjIzNiwgMC41MDIxNjIsIDAuNzUxMTI4LCAxLjI0NjQyLCAxLjU1OTUzIiwgXAotICAgICAgICAgICIwLjA3MTY0OCwgMC4xMDc1MjUsIDAuMzE2Mjg3LCAwLjUwMTk4NywgMC43NTA3NzcsIDEuMjQ3MDYsIDEuNTU4ODciLCBcCi0gICAgICAgICAgIjAuMDcxNzE3LCAwLjEwNzYxNywgMC4zMTYwMzcsIDAuNTAyMDU2LCAwLjc1MDM4LCAxLjI0NTgxLCAxLjU1ODYyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0NDc3LCAwLjAwNDQ4NywgMC4wMDQ1MDQsIDAuMDA0NTA3LCAwLjAwNDUxLCAwLjAwNDUxMSwgMC4wMDQ1MSIsIFwKLSAgICAgICAgICAiMC4wMDQ0ODEsIDAuMDA0NDkxLCAwLjAwNDUwNywgMC4wMDQ1MDksIDAuMDA0NTEzLCAwLjAwNDUxNSwgMC4wMDQ1MTYiLCBcCi0gICAgICAgICAgIjAuMDA0NTQ4LCAwLjAwNDU1NywgMC4wMDQ1NzIsIDAuMDA0NTc1LCAwLjAwNDU3NywgMC4wMDQ1NzksIDAuMDA0NTc5IiwgXAotICAgICAgICAgICIwLjAwNDY0MywgMC4wMDQ2NTIsIDAuMDA0NjY4LCAwLjAwNDY2NiwgMC4wMDQ2NzIsIDAuMDA0NjcsIDAuMDA0Njc1IiwgXAotICAgICAgICAgICIwLjAwNDc2NCwgMC4wMDQ3NzIsIDAuMDA0Nzc1LCAwLjAwNDc4NiwgMC4wMDQ3ODcsIDAuMDA0NzgxLCAwLjAwNDc4OCIsIFwKLSAgICAgICAgICAiMC4wMDQ5NzIsIDAuMDA0OTc5LCAwLjAwNDk4OCwgMC4wMDQ5ODYsIDAuMDA0OTg5LCAwLjAwNDk4OSwgMC4wMDQ5ODgiLCBcCi0gICAgICAgICAgIjAuMDA1MTUyLCAwLjAwNTE3MSwgMC4wMDUxNjQsIDAuMDA1MTc1LCAwLjAwNTE3NiwgMC4wMDUxNzMsIDAuMDA1MTczIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0MTQ5LCAwLjAwNDE2MSwgMC4wMDQxODEsIDAuMDA0MTg2LCAwLjAwNDE4OCwgMC4wMDQxOTEsIDAuMDA0MTkxIiwgXAotICAgICAgICAgICIwLjAwNDE1NywgMC4wMDQxNywgMC4wMDQxOSwgMC4wMDQxOTQsIDAuMDA0MTk3LCAwLjAwNDE5OSwgMC4wMDQyIiwgXAotICAgICAgICAgICIwLjAwNDIxNywgMC4wMDQyMjksIDAuMDA0MjQ4LCAwLjAwNDI1MywgMC4wMDQyNTYsIDAuMDA0MjU4LCAwLjAwNDI1OCIsIFwKLSAgICAgICAgICAiMC4wMDQzMTksIDAuMDA0MzMxLCAwLjAwNDM1LCAwLjAwNDM1NCwgMC4wMDQzNTYsIDAuMDA0MzU4LCAwLjAwNDM1OSIsIFwKLSAgICAgICAgICAiMC4wMDQ0MzgsIDAuMDA0NDUsIDAuMDA0NDY3LCAwLjAwNDQ3LCAwLjAwNDQ2NiwgMC4wMDQ0NzQsIDAuMDA0NDc1IiwgXAotICAgICAgICAgICIwLjAwNDY1LCAwLjAwNDY1LCAwLjAwNDY3NCwgMC4wMDQ2NzcsIDAuMDA0Njc5LCAwLjAwNDY4LCAwLjAwNDY4MSIsIFwKLSAgICAgICAgICAiMC4wMDQ4MzcsIDAuMDA0ODYsIDAuMDA0ODcyLCAwLjAwNDg2MywgMC4wMDQ4NzQsIDAuMDA0ODY0LCAwLjAwNDg3NiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDEwNywgMC4wMDQxMTQsIDAuMDA0MTI3LCAwLjAwNDEyNiwgMC4wMDQxMjUsIDAuMDA0MTI4LCAwLjAwNDEyOCIsIFwKLSAgICAgICAgICAiMC4wMDQyMDcsIDAuMDA0MjEyLCAwLjAwNDIyMSwgMC4wMDQyMjMsIDAuMDA0MjI0LCAwLjAwNDIyNSwgMC4wMDQyMjQiLCBcCi0gICAgICAgICAgIjAuMDA0MzYsIDAuMDA0MzY0LCAwLjAwNDM3MiwgMC4wMDQzNzQsIDAuMDA0Mzc1LCAwLjAwNDM3NywgMC4wMDQzNzciLCBcCi0gICAgICAgICAgIjAuMDA0NTUsIDAuMDA0NTUzLCAwLjAwNDU1NywgMC4wMDQ1NTksIDAuMDA0NTYsIDAuMDA0NTYxLCAwLjAwNDU2MSIsIFwKLSAgICAgICAgICAiMC4wMDQ3NjIsIDAuMDA0NzY0LCAwLjAwNDc2NiwgMC4wMDQ3NiwgMC4wMDQ3NjcsIDAuMDA0NzY4LCAwLjAwNDc2OCIsIFwKLSAgICAgICAgICAiMC4wMDUwOTYsIDAuMDA1MDk4LCAwLjAwNTA4MywgMC4wMDUwODMsIDAuMDA1MDk3LCAwLjAwNTA5OSwgMC4wMDUwOTgiLCBcCi0gICAgICAgICAgIjAuMDA1Mzk1LCAwLjAwNTM3NywgMC4wMDUzNzUsIDAuMDA1MzkyLCAwLjAwNTM5MiwgMC4wMDUzNzQsIDAuMDA1Mzc0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzNDE1LCAwLjAwMzQyNywgMC4wMDM0NDcsIDAuMDAzNDUyLCAwLjAwMzQ1NCwgMC4wMDM0NTYsIDAuMDAzNDU3IiwgXAotICAgICAgICAgICIwLjAwMzQzMSwgMC4wMDM0NDMsIDAuMDAzNDYzLCAwLjAwMzQ2NywgMC4wMDM0NywgMC4wMDM0NzIsIDAuMDAzNDczIiwgXAotICAgICAgICAgICIwLjAwMzUyMiwgMC4wMDM1MzQsIDAuMDAzNTU0LCAwLjAwMzU1OSwgMC4wMDM1NjIsIDAuMDAzNTY0LCAwLjAwMzU2NCIsIFwKLSAgICAgICAgICAiMC4wMDM2NDQsIDAuMDAzNjU3LCAwLjAwMzY3NiwgMC4wMDM2ODEsIDAuMDAzNjgzLCAwLjAwMzY4NSwgMC4wMDM2ODYiLCBcCi0gICAgICAgICAgIjAuMDAzNzc4LCAwLjAwMzc4OSwgMC4wMDM4MSwgMC4wMDM4MTQsIDAuMDAzODE2LCAwLjAwMzgxOSwgMC4wMDM4MTkiLCBcCi0gICAgICAgICAgIjAuMDA0LCAwLjAwNDAxMiwgMC4wMDQwMzMsIDAuMDA0MDM2LCAwLjAwNDA0LCAwLjAwNDA0MywgMC4wMDQwNDMiLCBcCi0gICAgICAgICAgIjAuMDA0MjAzLCAwLjAwNDIxNSwgMC4wMDQyMzUsIDAuMDA0MjQsIDAuMDA0MjQyLCAwLjAwNDI0NSwgMC4wMDQyNDUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IENMS1hPUjJYNCAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKENMS1hPUjJYNCkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjY4NzI5ODsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjIxMTE2OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYyMTExNjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2MjEwNTI7Ci0gIH0KLSAgcGluKEIpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTQ2NDg4OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTQ2NDc4OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTQ2NDg4OwotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDEuMjk1MjsKLSAgICBmdW5jdGlvbiA6ICIoQV5CKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjY2MDMsIDAuMTI5NDkzLCAwLjE4NDgxOCwgMC4yMjQwNTYsIDAuMjg2ODI2LCAwLjM0MTc5LCAwLjQyMDE3IiwgXAotICAgICAgICAgICIwLjA3NDc4OSwgMC4xMzc2MzUsIDAuMTkyOTY4LCAwLjIzMjIwNywgMC4yOTQ5NzksIDAuMzQ5ODkxLCAwLjQyODM0MyIsIFwKLSAgICAgICAgICAiMC4wODQ4NTcsIDAuMTQ3Njk4LCAwLjIwMzAxOCwgMC4yNDIyNzYsIDAuMzA1MDUxLCAwLjM1OTk1LCAwLjQzODM3IiwgXAotICAgICAgICAgICIwLjA5NDQ3LCAwLjE1NzMxMywgMC4yMTI2NDcsIDAuMjUxODgzLCAwLjMxNDY0NiwgMC4zNjk1MzksIDAuNDQ4MDU3IiwgXAotICAgICAgICAgICIwLjEwMjk1NSwgMC4xNjYwMDcsIDAuMjIxMzAzLCAwLjI2MDU2MiwgMC4zMjMzMzYsIDAuMzc4MjM3LCAwLjQ1NjY0NCIsIFwKLSAgICAgICAgICAiMC4xMTQ5MzYsIDAuMTc4ODcsIDAuMjM0MjEyLCAwLjI3MzQxOSwgMC4zMzYxNjYsIDAuMzkxMTE5LCAwLjQ2OTU0MSIsIFwKLSAgICAgICAgICAiMC4xMjM2NDUsIDAuMTg4NDcsIDAuMjQzODUyLCAwLjI4MzA2NiwgMC4zNDU3NjcsIDAuNDAwNjU0LCAwLjQ3OTE0MyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzNTY5LCAwLjE0NjU3NCwgMC4yNTk2NzEsIDAuMzQxNzgsIDAuNDc0Mzg4LCAwLjU4OTU3MiwgMC43NTY4MzIiLCBcCi0gICAgICAgICAgIjAuMDM1NzM3LCAwLjE0NjUwNCwgMC4yNTk2MzcsIDAuMzQxNzgxLCAwLjQ3NDM3OSwgMC41ODk2NTQsIDAuNzU2ODU4IiwgXAotICAgICAgICAgICIwLjAzNTczOSwgMC4xNDY1ODUsIDAuMjU5ODIzLCAwLjM0MTc3LCAwLjQ3NDM5NiwgMC41OTA0OTUsIDAuNzU1ODUyIiwgXAotICAgICAgICAgICIwLjAzNjEyNiwgMC4xNDY2NjEsIDAuMjU5NzAxLCAwLjM0MTgxNywgMC40NzM4MywgMC41OTAxOSwgMC43NTU1NTIiLCBcCi0gICAgICAgICAgIjAuMDM3MTM0LCAwLjE0NzAyOSwgMC4yNjAwMzcsIDAuMzQxODk4LCAwLjQ3NDM4MSwgMC41OTA1NDQsIDAuNzU1ODA5IiwgXAotICAgICAgICAgICIwLjAzOTE2OCwgMC4xNDgwNDQsIDAuMjYwNTY4LCAwLjM0MjM2OCwgMC40NzQxMDQsIDAuNTkwNjk1LCAwLjc1Njg2IiwgXAotICAgICAgICAgICIwLjA0MDk1NCwgMC4xNDkwODEsIDAuMjYxMjQ3LCAwLjM0MjcxOCwgMC40NzQzNjgsIDAuNTkwNDQ5LCAwLjc1Njk0MiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3MTk4MSwgMC4xMzUzNTEsIDAuMTg5OTU4LCAwLjIyODQ4NCwgMC4yODk5ODMsIDAuMzQzNzg2LCAwLjQyMDYyNyIsIFwKLSAgICAgICAgICAiMC4wNzk5NTcsIDAuMTQzMzE0LCAwLjE5NzkxNCwgMC4yMzY0MjYsIDAuMjk3OTMsIDAuMzUxNzMsIDAuNDI4NTc4IiwgXAotICAgICAgICAgICIwLjA4OTg2OSwgMC4xNTMxNjcsIDAuMjA3NzgyLCAwLjI0NjI5NSwgMC4zMDc4MjIsIDAuMzYxNjIzLCAwLjQzODQ2NSIsIFwKLSAgICAgICAgICAiMC4wOTkyNjgsIDAuMTYyNjAyLCAwLjIxNzE4MywgMC4yNTU2OTQsIDAuMzE3MjIxLCAwLjM3MTAxLCAwLjQ0Nzg1OCIsIFwKLSAgICAgICAgICAiMC4xMDc2MjksIDAuMTcxMDcxLCAwLjIyNTY1MSwgMC4yNjQxODIsIDAuMzI1Njg3LCAwLjM3OTQ5MSwgMC40NTYzMzIiLCBcCi0gICAgICAgICAgIjAuMTE5NDk4LCAwLjE4MzY0MywgMC4yMzgyNzEsIDAuMjc2NzgsIDAuMzM4MjgyLCAwLjM5MjA3MywgMC40Njg5MTQiLCBcCi0gICAgICAgICAgIjAuMTI4MDk1LCAwLjE5MjkwOCwgMC4yNDc2MzEsIDAuMjg2MTI5LCAwLjM0NzYxMSwgMC40MDE0MTQsIDAuNDc4MjUxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM2NjE5LCAwLjE0MzM2MiwgMC4yNTE1MiwgMC4zMjk4NDEsIDAuNDU2Mjc4LCAwLjU2Nzk5NywgMC43MjczNDciLCBcCi0gICAgICAgICAgIjAuMDM2NjI0LCAwLjE0MzM1NCwgMC4yNTE1MDMsIDAuMzI5NjgsIDAuNDU2NzQ1LCAwLjU2NzM1MSwgMC43MjczNTEiLCBcCi0gICAgICAgICAgIjAuMDM2NzA1LCAwLjE0MzM3MSwgMC4yNTE1MTcsIDAuMzI5OTAxLCAwLjQ1NjA3LCAwLjU2Nzk5NywgMC43MjczNTYiLCBcCi0gICAgICAgICAgIjAuMDM2OTA4LCAwLjE0MzQ1NSwgMC4yNTE1NTgsIDAuMzI5OTksIDAuNDU2MzU3LCAwLjU2NzMyMiwgMC43MjczNTYiLCBcCi0gICAgICAgICAgIjAuMDM3NzA5LCAwLjE0Mzc3MiwgMC4yNTE2NzYsIDAuMzMwMDg0LCAwLjQ1NjgwNSwgMC41NjczNzUsIDAuNzI3MzM0IiwgXAotICAgICAgICAgICIwLjAzOTU5NywgMC4xNDQ2MjcsIDAuMjUyMjE1LCAwLjMzMDI3NSwgMC40NTY5NjMsIDAuNTY4MTczLCAwLjcyNzQ2NCIsIFwKLSAgICAgICAgICAiMC4wNDEwMzksIDAuMTQ1NjY5LCAwLjI1Mjg1LCAwLjMzMDc1OCwgMC40NTcyNjUsIDAuNTY4Mzc2LCAwLjcyNjI5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDcyNjIsIDAuMTMzMDUxLCAwLjE4ODE3LCAwLjIyNzQzMiwgMC4yOTAyMTMsIDAuMzQ1MTI2LCAwLjQyMzY2MiIsIFwKLSAgICAgICAgICAiMC4wODA0MjMsIDAuMTQwOTA0LCAwLjE5NjAxMiwgMC4yMzUyNzUsIDAuMjk4MDU1LCAwLjM1Mjk3MywgMC40MzE0OTEiLCBcCi0gICAgICAgICAgIjAuMDg4MDM1LCAwLjE0ODQ5LCAwLjIwMzYxNCwgMC4yNDI4NzksIDAuMzA1NjU5LCAwLjM2MDU3NCwgMC40MzkxMDMiLCBcCi0gICAgICAgICAgIjAuMDkzNDkxLCAwLjE1Mzg2NywgMC4yMDg5OCwgMC4yNDgyNDgsIDAuMzExMDI5LCAwLjM2NTkzOSwgMC40NDQ0ODUiLCBcCi0gICAgICAgICAgIjAuMDk3OTE1LCAwLjE1ODMwNiwgMC4yMTM0MTYsIDAuMjUyNjc4LCAwLjMxNTQ2LCAwLjM3MDM3MSwgMC40NDg5MTgiLCBcCi0gICAgICAgICAgIjAuMTAzNzEsIDAuMTY0MTQzLCAwLjIxOTI2MiwgMC4yNTg1MDcsIDAuMzIxMzI4LCAwLjM3NjIwNiwgMC40NTQ3NTEiLCBcCi0gICAgICAgICAgIjAuMTA3OTcxLCAwLjE2ODQyOSwgMC4yMjM1NTksIDAuMjYyODAzLCAwLjMyNTYxLCAwLjM4MDUwOSwgMC40NTg5NjQiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzI3ODUsIDAuMTQzNjI1LCAwLjI1NzgxOCwgMC4zNDA2MzYsIDAuNDczMzkzLCAwLjU4OTExMywgMC43NTUwMzgiLCBcCi0gICAgICAgICAgIjAuMDMyODMyLCAwLjE0MzYxNiwgMC4yNTc4MjksIDAuMzQwNjM2LCAwLjQ3MzM3MiwgMC41ODkxNTYsIDAuNzU1MDg2IiwgXAotICAgICAgICAgICIwLjAzMjc2NCwgMC4xNDM2NDEsIDAuMjU3ODI5LCAwLjM0MDY0MywgMC40NzMzODcsIDAuNTg5MTM1LCAwLjc1NTA3IiwgXAotICAgICAgICAgICIwLjAzMjkxNCwgMC4xNDM2MzIsIDAuMjU3ODIxLCAwLjM0MDY0LCAwLjQ3MzM4OSwgMC41ODkwOTIsIDAuNzU1MTMxIiwgXAotICAgICAgICAgICIwLjAzMjc5OCwgMC4xNDM2NDQsIDAuMjU3ODU2LCAwLjM0MDY1MiwgMC40NzMzNzIsIDAuNTg5MDkxLCAwLjc1NTEzNiIsIFwKLSAgICAgICAgICAiMC4wMzI4NTIsIDAuMTQzNjYxLCAwLjI1Nzg2NCwgMC4zNDAzMDgsIDAuNDczMzM4LCAwLjU4OTE3LCAwLjc1NTEyOSIsIFwKLSAgICAgICAgICAiMC4wMzI4OTMsIDAuMTQzNTQzLCAwLjI1ODAxNSwgMC4zNDAzMjIsIDAuNDcyNTUzLCAwLjU4OTA5LCAwLjc1NDkyMyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3NTk0LCAwLjEzNjQzMywgMC4xOTA1NjIsIDAuMjI5MDU3LCAwLjI5MDU4OCwgMC4zNDQzODYsIDAuNDIxMjQyIiwgXAotICAgICAgICAgICIwLjA4NDA0MSwgMC4xNDQ0NzgsIDAuMTk4NjI1LCAwLjIzNzExNCwgMC4yOTg2MjMsIDAuMzUyNDQyLCAwLjQyOTMiLCBcCi0gICAgICAgICAgIjAuMDkxNjA0LCAwLjE1MjA5NSwgMC4yMDYyMzgsIDAuMjQ0NzI1LCAwLjMwNjIzOSwgMC4zNjAwNjgsIDAuNDM2OTE2IiwgXAotICAgICAgICAgICIwLjA5NzE4OSwgMC4xNTc1NjcsIDAuMjExNzM2LCAwLjI1MDIyNywgMC4zMTE3NDksIDAuMzY1NTU5LCAwLjQ0MjQxNyIsIFwKLSAgICAgICAgICAiMC4xMDE4MDQsIDAuMTYyMjE3LCAwLjIxNjM4MywgMC4yNTQ4NTcsIDAuMzE2MzgyLCAwLjM3MDIxNiwgMC40NDcwNDIiLCBcCi0gICAgICAgICAgIjAuMTA3NzYyLCAwLjE2ODIxMiwgMC4yMjI0MDgsIDAuMjYwODc2LCAwLjMyMjQxMywgMC4zNzYyMTYsIDAuNDUzMDg5IiwgXAotICAgICAgICAgICIwLjExMjMsIDAuMTcyNzc5LCAwLjIyNjkzNiwgMC4yNjU0MDUsIDAuMzI2OTY5LCAwLjM4MDc0OCwgMC40NTc2MTQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzMxMTcsIDAuMTM5NTcyLCAwLjI0ODc1NywgMC4zMjgwNDQsIDAuNDU1MjQ0LCAwLjU2Njc5NSwgMC43MjU1NDkiLCBcCi0gICAgICAgICAgIjAuMDMzMTgxLCAwLjEzOTU4OCwgMC4yNDg4NDIsIDAuMzI4MDMzLCAwLjQ1NTExOSwgMC41NjY3OCwgMC43MjYzNjQiLCBcCi0gICAgICAgICAgIjAuMDMzMTA4LCAwLjEzOTU3NSwgMC4yNDg4MzUsIDAuMzI4MDI2LCAwLjQ1NDY4OCwgMC41NjU4NTcsIDAuNzI1Njc1IiwgXAotICAgICAgICAgICIwLjAzMzA1NywgMC4xMzk1NjcsIDAuMjQ4ODA3LCAwLjMyNzk4LCAwLjQ1NTIwMiwgMC41NjY3NjMsIDAuNzI1NTQ4IiwgXAotICAgICAgICAgICIwLjAzMzA3OCwgMC4xMzk1OSwgMC4yNDg4MTYsIDAuMzI4MDA0LCAwLjQ1NTIwNSwgMC41NjY4NDksIDAuNzI2MzI2IiwgXAotICAgICAgICAgICIwLjAzMzEyNSwgMC4xMzk1NywgMC4yNDg3NDYsIDAuMzI3NTgyLCAwLjQ1NDUyMywgMC41NjY3OTksIDAuNzI1NzExIiwgXAotICAgICAgICAgICIwLjAzMzE5MiwgMC4xMzk0NzYsIDAuMjQ4OTksIDAuMzI4MDI5LCAwLjQ1NTI2LCAwLjU2NjA5OCwgMC43MjY0NTgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTI2NjUsIDAuMTEzMDcyLCAwLjE2ODE3MSwgMC4yMDc0MjYsIDAuMjcwMjE1LCAwLjMyNTE1MiwgMC40MDM2NDMiLCBcCi0gICAgICAgICAgIjAuMDYwMzEyLCAwLjEyMDcxLCAwLjE3NTgzNiwgMC4yMTUwOTksIDAuMjc3ODgxLCAwLjMzMjgwNywgMC40MTEzMTQiLCBcCi0gICAgICAgICAgIjAuMDcwMDc4LCAwLjEzMDQ1NiwgMC4xODU1ODIsIDAuMjI0ODQ4LCAwLjI4NzYzMiwgMC4zNDI1NDgsIDAuNDIxMDgyIiwgXAotICAgICAgICAgICIwLjA3OTIyOSwgMC4xMzk3MzcsIDAuMTk0ODUyLCAwLjIzNDExNiwgMC4yOTY5MDEsIDAuMzUxODA5LCAwLjQzMDM0OSIsIFwKLSAgICAgICAgICAiMC4wODY4OTMsIDAuMTQ3Nzc3LCAwLjIwMjg4NCwgMC4yNDIxMzUsIDAuMzA0OTEyLCAwLjM1OTgxNywgMC40MzgzMjYiLCBcCi0gICAgICAgICAgIjAuMDk3MDE0LCAwLjE1ODgxMSwgMC4yMTM5MDYsIDAuMjUzMTQxLCAwLjMxNTg5LCAwLjM3MDkwNCwgMC40NDkyMzYiLCBcCi0gICAgICAgICAgIjAuMTA0NTA4LCAwLjE2NzA4NCwgMC4yMjIyMTgsIDAuMjYxNDMyLCAwLjMyNDE1NCwgMC4zNzkwOTMsIDAuNDU3NTI5Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDMyNzQ2LCAwLjE0MzU2MSwgMC4yNTc4MTgsIDAuMzQwMzExLCAwLjQ3MzM2NSwgMC41ODk3OSwgMC43NTUwODkiLCBcCi0gICAgICAgICAgIjAuMDMyNjkyLCAwLjE0MzYyMSwgMC4yNTc4MTIsIDAuMzQwNjA5LCAwLjQ3MzM2MSwgMC41ODkyMDUsIDAuNzU1MDg4IiwgXAotICAgICAgICAgICIwLjAzMjkwMywgMC4xNDM2NTUsIDAuMjU3ODI2LCAwLjM0MDY0NiwgMC40NzMzNjEsIDAuNTg5MTIsIDAuNzU1MDQ0IiwgXAotICAgICAgICAgICIwLjAzNDA0OSwgMC4xNDM5MjksIDAuMjU3OTM5LCAwLjM0MDY3LCAwLjQ3MzM3OCwgMC41ODkwODQsIDAuNzU1MDMyIiwgXAotICAgICAgICAgICIwLjAzNTc2NCwgMC4xNDQ0MjksIDAuMjU4MTgyLCAwLjM0MDQ0NCwgMC40NzM0NjYsIDAuNTg5MTgsIDAuNzU1MSIsIFwKLSAgICAgICAgICAiMC4wMzgxNzYsIDAuMTQ1NTkxLCAwLjI1ODc3LCAwLjM0MTA4MiwgMC40NzMwMzQsIDAuNTg5MDUxLCAwLjc1NjE5MyIsIFwKLSAgICAgICAgICAiMC4wNDAwMTksIDAuMTQ2NDk3LCAwLjI1OTI3LCAwLjM0MTIxMywgMC40NzM1OTYsIDAuNTg5MjM5LCAwLjc1NTE2OSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1ODE5MSwgMC4xMjE1NTcsIDAuMTc2MTUxLCAwLjIxNDY3LCAwLjI3NjE4NCwgMC4zMjk5ODUsIDAuNDA2ODU2IiwgXAotICAgICAgICAgICIwLjA2NTQ0NywgMC4xMjg4NTgsIDAuMTgzNDU5LCAwLjIyMTk3LCAwLjI4MzQ4NCwgMC4zMzcyODIsIDAuNDE0MTIxIiwgXAotICAgICAgICAgICIwLjA3NDIyMywgMC4xMzc1NCwgMC4xOTIxNTcsIDAuMjMwNjY3LCAwLjI5MjE4NywgMC4zNDYwMDQsIDAuNDIyODQ3IiwgXAotICAgICAgICAgICIwLjA4MjU2MywgMC4xNDU4NjksIDAuMjAwNDY0LCAwLjIzODk4MiwgMC4zMDA0ODUsIDAuMzU0MzA2LCAwLjQzMTE0OCIsIFwKLSAgICAgICAgICAiMC4wODk4NTQsIDAuMTUzMjcsIDAuMjA3ODkyLCAwLjI0NjQwNSwgMC4zMDc5MTQsIDAuMzYxNzA4LCAwLjQzODYxMSIsIFwKLSAgICAgICAgICAiMC4wOTk0MzgsIDAuMTYzNTI2LCAwLjIxODE1NywgMC4yNTY3NCwgMC4zMTgyMTYsIDAuMzcyMDAyLCAwLjQ0ODg1NiIsIFwKLSAgICAgICAgICAiMC4xMDY2NTYsIDAuMTcxMjksIDAuMjI2MTI0LCAwLjI2NDYxNywgMC4zMjYwODksIDAuMzc5NzYxLCAwLjQ1Njc1NiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzNjMyNCwgMC4xNDMxOTksIDAuMjUxNDM1LCAwLjMyOTg1LCAwLjQ1NjY1OSwgMC41Njc5NDYsIDAuNzI3NDM1IiwgXAotICAgICAgICAgICIwLjAzNjIyNSwgMC4xNDMxMTEsIDAuMjUxNDAxLCAwLjMyOTg0MSwgMC40NTY2NTQsIDAuNTY3MywgMC43MjcxOSIsIFwKLSAgICAgICAgICAiMC4wMzYxMDgsIDAuMTQzMTc4LCAwLjI1MTQyNCwgMC4zMjk5MDIsIDAuNDU2MTk3LCAwLjU2Nzk3LCAwLjcyNzI5NSIsIFwKLSAgICAgICAgICAiMC4wMzY3LCAwLjE0MzM1MSwgMC4yNTE1MjksIDAuMzI5ODI2LCAwLjQ1NjY0NiwgMC41NjgwMDYsIDAuNzI3MzE0IiwgXAotICAgICAgICAgICIwLjAzNzk4NywgMC4xNDM3NjIsIDAuMjUxNzksIDAuMzI5OTk4LCAwLjQ1Njc5NCwgMC41Njc0NDYsIDAuNzI3NTU0IiwgXAotICAgICAgICAgICIwLjA0MDExMiwgMC4xNDQ4MDQsIDAuMjUyMzg1LCAwLjMzMDUwOCwgMC40NTYzNzgsIDAuNTY3NjIzLCAwLjcyNzU1NCIsIFwKLSAgICAgICAgICAiMC4wNDIxNjEsIDAuMTQ1NjM1LCAwLjI1Mjk2NiwgMC4zMzEwNCwgMC40NTc0MzksIDAuNTY4MzY3LCAwLjcyNjExNCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1NjQ2MywgMC4xMTkzNTksIDAuMTc0NzA3LCAwLjIxMzk1MiwgMC4yNzY3MjksIDAuMzMxNjI5LCAwLjQxMDA1NiIsIFwKLSAgICAgICAgICAiMC4wNjQ2NzgsIDAuMTI3NTg0LCAwLjE4MjkzMiwgMC4yMjIxNzcsIDAuMjg0OTUzLCAwLjMzOTg1NCwgMC40MTgyODIiLCBcCi0gICAgICAgICAgIjAuMDczNjc1LCAwLjEzNjUzNCwgMC4xOTE4NywgMC4yMzExMzIsIDAuMjkzOTA5LCAwLjM0ODgxLCAwLjQyNzIzNSIsIFwKLSAgICAgICAgICAiMC4wNzk5NDUsIDAuMTQyNjc1LCAwLjE5ODAyMiwgMC4yMzcyNjUsIDAuMzAwMDQ0LCAwLjM1NDk0MSwgMC40MzM1MzIiLCBcCi0gICAgICAgICAgIjAuMDg0NjM0LCAwLjE0NzE4LCAwLjIwMjU2MywgMC4yNDE3ODQsIDAuMzA0NTI2LCAwLjM1OTQ4LCAwLjQzNzg3OCIsIFwKLSAgICAgICAgICAiMC4wOTA0NDUsIDAuMTUyOTg5LCAwLjIwODMwMSwgMC4yNDc0MDIsIDAuMzEwMzIyLCAwLjM2NTA2NCwgMC40NDM3MjMiLCBcCi0gICAgICAgICAgIjAuMDk0NTMyLCAwLjE1NzE1MywgMC4yMTIzNzksIDAuMjUxNjI2LCAwLjMxNDQ4OSwgMC4zNjkzNjEsIDAuNDQ3ODIyIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM1NDM5LCAwLjE0NjQ3MSwgMC4yNTk3MDUsIDAuMzQxNzM2LCAwLjQ3NDM2NSwgMC41OTA0NSwgMC43NTU4OCIsIFwKLSAgICAgICAgICAiMC4wMzUzNzksIDAuMTQ2NDY4LCAwLjI1OTcyNywgMC4zNDE3MzQsIDAuNDc0MzQ2LCAwLjU5MDQ0LCAwLjc1NTg5MiIsIFwKLSAgICAgICAgICAiMC4wMzUxOTgsIDAuMTQ2NDIxLCAwLjI1OTY1NCwgMC4zNDE3MTksIDAuNDc0MzUzLCAwLjU5MDQ0MywgMC43NTU4NjUiLCBcCi0gICAgICAgICAgIjAuMDM0OTcyLCAwLjE0NjM2MiwgMC4yNTk2MzEsIDAuMzQxNzIxLCAwLjQ3NDI5MSwgMC41OTAyNzMsIDAuNzU1NjIxIiwgXAotICAgICAgICAgICIwLjAzNTE3OSwgMC4xNDYyNDYsIDAuMjU5Njc2LCAwLjM0MTY5NiwgMC40NzM4ODcsIDAuNTkwMTc4LCAwLjc1NTgzOCIsIFwKLSAgICAgICAgICAiMC4wMzUxMjgsIDAuMTQ2MTQxLCAwLjI1OTM3NiwgMC4zNDE1OTMsIDAuNDczNTg1LCAwLjU5MDA3OCwgMC43NTU1MTQiLCBcCi0gICAgICAgICAgIjAuMDM1MTcsIDAuMTQ2MDA4LCAwLjI1OTU3NSwgMC4zNDE1MDYsIDAuNDczNDQ5LCAwLjU4OTM1OCwgMC43NTUxOTciKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjg5NTMsIDAuMTI5NDI5LCAwLjE4MzU3OCwgMC4yMjIwNjIsIDAuMjgzNTcxLCAwLjMzNzM5NSwgMC40MTQyNDkiLCBcCi0gICAgICAgICAgIjAuMDc2ODE2LCAwLjEzNzIzLCAwLjE5MTQxNSwgMC4yMjk4OTUsIDAuMjkxNDIyLCAwLjM0NTIyNywgMC40MjIwODUiLCBcCi0gICAgICAgICAgIjAuMDgzNTc3LCAwLjE0Mzk1OSwgMC4xOTgxMjksIDAuMjM2NjA4LCAwLjI5ODEzNCwgMC4zNTE5MzgsIDAuNDI4ODA0IiwgXAotICAgICAgICAgICIwLjA4ODM2OCwgMC4xNDg4MTgsIDAuMjAyOTk2LCAwLjI0MTQ3NSwgMC4zMDMsIDAuMzU2ODA3LCAwLjQzMzY3MyIsIFwKLSAgICAgICAgICAiMC4wOTIzOSwgMC4xNTI4NzQsIDAuMjA3MDY0LCAwLjI0NTUzOSwgMC4zMDcwNjIsIDAuMzYwODY5LCAwLjQzNzcyMyIsIFwKLSAgICAgICAgICAiMC4wOTc3NDUsIDAuMTU4MTQ4LCAwLjIxMjM4MiwgMC4yNTA4ODIsIDAuMzEyMzkyLCAwLjM2NjIwNSwgMC40NDMwNzQiLCBcCi0gICAgICAgICAgIjAuMTAxNzMxLCAwLjE2MjExNiwgMC4yMTYzNDEsIDAuMjU0ODMxLCAwLjMxNjM1NSwgMC4zNzAxNjQsIDAuNDQ3MDE1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDMzMTEyLCAwLjEzOTU2OCwgMC4yNDg2MzcsIDAuMzI4MDY0LCAwLjQ1NTE1LCAwLjU2NjgwOCwgMC43MjYyODQiLCBcCi0gICAgICAgICAgIjAuMDMzMDg4LCAwLjEzOTU2OCwgMC4yNDg4MjMsIDAuMzI4MDMzLCAwLjQ1NTE4OSwgMC41NjY3ODYsIDAuNzI1NTc0IiwgXAotICAgICAgICAgICIwLjAzMzA5NSwgMC4xMzk1NDQsIDAuMjQ4NzY5LCAwLjMyNzk4LCAwLjQ1NTIwNiwgMC41NjY2NjgsIDAuNzI1NjQ5IiwgXAotICAgICAgICAgICIwLjAzMzAyMywgMC4xMzk1NTksIDAuMjQ4ODE4LCAwLjMyODAzOCwgMC40NTUyMDIsIDAuNTY2NzYyLCAwLjcyNTcxNyIsIFwKLSAgICAgICAgICAiMC4wMzI5MTIsIDAuMTM5NTQsIDAuMjQ4Nzk4LCAwLjMyODA0NSwgMC40NTUxMzMsIDAuNTY2NjgxLCAwLjcyNjI5NCIsIFwKLSAgICAgICAgICAiMC4wMzMwMjksIDAuMTM5NTIzLCAwLjI0ODgxMSwgMC4zMjc2ODEsIDAuNDU0NzM3LCAwLjU2NjU0NCwgMC43MjU1MzYiLCBcCi0gICAgICAgICAgIjAuMDMzMDYxLCAwLjEzOTQ3MSwgMC4yNDg2MjksIDAuMzI3NzIzLCAwLjQ1NDQ5MSwgMC41NjU5NzEsIDAuNzI1NzE2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDg3NDksIDAuMDA4ODE3LCAwLjAwODg0NywgMC4wMDg4NTgsIDAuMDA4ODcsIDAuMDA4ODcyLCAwLjAwODg3NiIsIFwKLSAgICAgICAgICAiMC4wMDg3NDksIDAuMDA4ODE1LCAwLjAwODg0NCwgMC4wMDg4NTUsIDAuMDA4ODY0LCAwLjAwODg3LCAwLjAwODg3MyIsIFwKLSAgICAgICAgICAiMC4wMDg3OTksIDAuMDA4ODY5LCAwLjAwODkwMSwgMC4wMDg5MTEsIDAuMDA4OTE4LCAwLjAwODkyNiwgMC4wMDg5MyIsIFwKLSAgICAgICAgICAiMC4wMDg5MDQsIDAuMDA4OTYzLCAwLjAwODk5MiwgMC4wMDkwMDIsIDAuMDA5MDExLCAwLjAwOTAxNSwgMC4wMDkwMTkiLCBcCi0gICAgICAgICAgIjAuMDA5MDEzLCAwLjAwOTA2OCwgMC4wMDkwOTcsIDAuMDA5MTA3LCAwLjAwOTEyMSwgMC4wMDkxMjIsIDAuMDA5MTI0IiwgXAotICAgICAgICAgICIwLjAwOTIyMiwgMC4wMDkyNjMsIDAuMDA5MjksIDAuMDA5Mjk4LCAwLjAwOTMxMiwgMC4wMDkzMTMsIDAuMDA5MzE0IiwgXAotICAgICAgICAgICIwLjAwOTQwNSwgMC4wMDk0NDksIDAuMDA5NDcsIDAuMDA5NDc2LCAwLjAwOTQ4NSwgMC4wMDk0ODgsIDAuMDA5NDkzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDg3MDYsIDAuMDA4NzkyLCAwLjAwODgzMiwgMC4wMDg4NDYsIDAuMDA4ODU5LCAwLjAwODg2NiwgMC4wMDg4NzMiLCBcCi0gICAgICAgICAgIjAuMDA4NzE3LCAwLjAwODc5NSwgMC4wMDg4MzUsIDAuMDA4ODQ4LCAwLjAwODg2MSwgMC4wMDg4NjgsIDAuMDA4ODc0IiwgXAotICAgICAgICAgICIwLjAwODc2MywgMC4wMDg4NDUsIDAuMDA4ODg1LCAwLjAwODg5OSwgMC4wMDg5MTIsIDAuMDA4OTE5LCAwLjAwODkyNiIsIFwKLSAgICAgICAgICAiMC4wMDg4NzYsIDAuMDA4OTQzLCAwLjAwODk4MSwgMC4wMDg5OTQsIDAuMDA5MDA3LCAwLjAwOTAxMywgMC4wMDkwMTkiLCBcCi0gICAgICAgICAgIjAuMDA4OTg0LCAwLjAwOTA0NiwgMC4wMDkwOTEsIDAuMDA5MDk5LCAwLjAwOTExNywgMC4wMDkxMjQsIDAuMDA5MTI0IiwgXAotICAgICAgICAgICIwLjAwOTE4MywgMC4wMDkyNDYsIDAuMDA5Mjg4LCAwLjAwOTI5NCwgMC4wMDkzMTIsIDAuMDA5MzE4LCAwLjAwOTMyNCIsIFwKLSAgICAgICAgICAiMC4wMDkzNzQsIDAuMDA5NDQ0LCAwLjAwOTQ3NiwgMC4wMDk0NzksIDAuMDA5NSwgMC4wMDk1MDYsIDAuMDA5NTExIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDg2NTQsIDAuMDA4NjI4LCAwLjAwODY0MSwgMC4wMDg2NDEsIDAuMDA4NjQ5LCAwLjAwODY1MiwgMC4wMDg2NTUiLCBcCi0gICAgICAgICAgIjAuMDA4NzQ2LCAwLjAwODcwOSwgMC4wMDg3MjUsIDAuMDA4NzMxLCAwLjAwODczOSwgMC4wMDg3MzksIDAuMDA4NzQzIiwgXAotICAgICAgICAgICIwLjAwODk0NiwgMC4wMDg5MDMsIDAuMDA4OTE5LCAwLjAwODkyNiwgMC4wMDg5MzMsIDAuMDA4OTM2LCAwLjAwODk0IiwgXAotICAgICAgICAgICIwLjAwOTEzNCwgMC4wMDkwODIsIDAuMDA5MDk4LCAwLjAwOTEwNSwgMC4wMDkxMTIsIDAuMDA5MTE0LCAwLjAwOTExOSIsIFwKLSAgICAgICAgICAiMC4wMDkzNTQsIDAuMDA5Mjk0LCAwLjAwOTMwOSwgMC4wMDkzMTUsIDAuMDA5MzIyLCAwLjAwOTMxOSwgMC4wMDkzMjgiLCBcCi0gICAgICAgICAgIjAuMDA5NzQ4LCAwLjAwOTY3NSwgMC4wMDk2ODUsIDAuMDA5NjUxLCAwLjAwOTY5NiwgMC4wMDk2NjUsIDAuMDA5NzAzIiwgXAotICAgICAgICAgICIwLjAxMDA2NCwgMC4wMDk5ODgsIDAuMDA5OTk3LCAwLjAxMDAwMiwgMC4wMTAwMDYsIDAuMDEwMDEsIDAuMDA5OTg2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDc1ODQsIDAuMDA3NjYzLCAwLjAwNzcwNCwgMC4wMDc3MTksIDAuMDA3NzMzLCAwLjAwNzc0LCAwLjAwNzc0NyIsIFwKLSAgICAgICAgICAiMC4wMDc2MDcsIDAuMDA3Njg0LCAwLjAwNzcyNiwgMC4wMDc3NCwgMC4wMDc3NTQsIDAuMDA3NzYxLCAwLjAwNzc2OCIsIFwKLSAgICAgICAgICAiMC4wMDc3LCAwLjAwNzc3OSwgMC4wMDc4MiwgMC4wMDc4MzUsIDAuMDA3ODQ5LCAwLjAwNzg1NiwgMC4wMDc4NjMiLCBcCi0gICAgICAgICAgIjAuMDA3ODA5LCAwLjAwNzg4OCwgMC4wMDc5MzIsIDAuMDA3OTQ4LCAwLjAwNzk2MiwgMC4wMDc5NywgMC4wMDc5NzciLCBcCi0gICAgICAgICAgIjAuMDA3OTQsIDAuMDA4MDMsIDAuMDA4MDcsIDAuMDA4MDg1LCAwLjAwODA5OCwgMC4wMDgxMDYsIDAuMDA4MTEyIiwgXAotICAgICAgICAgICIwLjAwODE1OSwgMC4wMDgyNDUsIDAuMDA4Mjg1LCAwLjAwODI5OSwgMC4wMDgzMTMsIDAuMDA4MzIxLCAwLjAwODMyOCIsIFwKLSAgICAgICAgICAiMC4wMDgzNzMsIDAuMDA4NDQ1LCAwLjAwODQ3OSwgMC4wMDg0OTksIDAuMDA4NTA5LCAwLjAwODUxOSwgMC4wMDg1MjYiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBERkZIUVgxICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKERGRkhRWDEpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC44MTUyODY7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgZmYgKE4zMCxRQklOVCkgewotICAgIG5leHRfc3RhdGUgOiAiRCI7Ci0gICAgY2xvY2tlZF9vbiA6ICJDSyI7Ci0gIH0KLSAgcGluKENLKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2NjgyMzQ7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjY4MjM0OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDY2Nzk2NTsKLSAgICBjbG9jayA6IHRydWU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzODcyLCAwLjAwMzg3MiwgMC4wMDM5MzcsIDAuMDA0MDMsIDAuMDA0MTM5LCAwLjAwNDM3MywgMC4wMDQ1NzMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDkxNzIsIDAuMDA5MTYyLCAwLjAwOTIyNSwgMC4wMDkzMTUsIDAuMDA5NDM5LCAwLjAwOTU4OCwgMC4wMDk3NjMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFEIjsKLSAgICAgIHNkZl9jb25kIDogIkQgPT0gMSdiMCI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4xMDM0NDIsIDAuMTExNjIsIDAuMTIxMTA4LCAwLjEyODc5NiwgMC4xMzQ5OTksIDAuMTQyOTk2LCAwLjE0OTE3OSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDcxMDkyLCAwLjA3OTIyMywgMC4wODg1OTIsIDAuMDk1NjQ0LCAwLjEwMTM5MiwgMC4xMDkwMDYsIDAuMTE0NDIzIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihEKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA4MTU3MTQ7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwODEzNjk2OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDgxNTcxNDsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDMyOCwgMC4wMDMyMzcsIDAuMDAzMjgsIDAuMDAzMzI1LCAwLjAwMzQxNSwgMC4wMDM1OTgsIDAuMDAzNzY4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA0Mjc2LCAwLjAwNDI0OSwgMC4wMDQyNzIsIDAuMDA0MzMyLCAwLjAwNDM5NiwgMC4wMDQ1NTUsIDAuMDA0NzYyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDA2MjUsIC0wLjAwMTI1LCAtMC4wMDEyNSwgMC4wMDUsIDAuMDA1LCAwLjAwODc1LCAwLjAxMTI1IiwgXAotICAgICAgICAgICItMC4wMTEyNSwgLTAuMDA2MjUsIC0wLjAwNjI1LCAwLCAwLCAwLjAwMzc1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wMTc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgLTAuMDA2MjUsIC0wLjAwNjI1LCAtMC4wMDI1LCAwIiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAxMjUsIC0wLjAwNjI1LCAtMC4wMDI1LCAwIiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDEyNSwgLTAuMDA4NzUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wMzM3NSwgLTAuMDI4NzUsIC0wLjAyMjUsIC0wLjAxNjI1LCAtMC4wMTYyNSwgLTAuMDEyNSwgLTAuMDEiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTUsIC0wLjAxMjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxODc1LCAwLjAyMzc1LCAwLjAzLCAwLjA0MjUsIDAuMDQyNSwgMC4wNTI1LCAwLjA1NSIsIFwKLSAgICAgICAgICAiMC4wMTM3NSwgMC4wMTg3NSwgMC4wMjUsIDAuMDM3NSwgMC4wMzc1LCAwLjA0NzUsIDAuMDUiLCBcCi0gICAgICAgICAgIjAuMDA3NSwgMC4wMTI1LCAwLjAyNSwgMC4wMzEyNSwgMC4wMzc1LCAwLjA0MTI1LCAwLjA1IiwgXAotICAgICAgICAgICIwLjAwNzUsIDAuMDEyNSwgMC4wMTg3NSwgMC4wMzEyNSwgMC4wMzEyNSwgMC4wNDEyNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4wMDEyNSwgMC4wMTI1LCAwLjAxODc1LCAwLjAyNSwgMC4wMzEyNSwgMC4wNDEyNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4wMDM3NSwgMC4wMDg3NSwgMC4wMTUsIDAuMDI3NSwgMC4wMjc1LCAwLjAzNzUsIDAuMDQiLCBcCi0gICAgICAgICAgIjAuMDAxMjUsIDAuMDA2MjUsIDAuMDE4NzUsIDAuMDI1LCAwLjAzMTI1LCAwLjAzNSwgMC4wNDM3NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjUsIDAuMDEzNzUsIDAuMDEzNzUsIDAuMDA3NSwgMC4wMDEyNSwgMC4wMDM3NSwgLTAuMDA1IiwgXAotICAgICAgICAgICIwLjAzLCAwLjAyNSwgMC4wMTg3NSwgMC4wMTI1LCAwLjAxMjUsIDAuMDA4NzUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMDM2MjUsIDAuMDMxMjUsIDAuMDI1LCAwLjAxODc1LCAwLjAxODc1LCAwLjAwODc1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICIwLjA0MjUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMjUsIDAuMDE4NzUsIDAuMDE1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMDQ4NzUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMzEyNSwgMC4wMjUsIDAuMDIxMjUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMDUyNSwgMC4wNDc1LCAwLjA0MTI1LCAwLjAzNSwgMC4wMjg3NSwgMC4wMjUsIDAuMDIyNSIsIFwKLSAgICAgICAgICAiMC4wNjEyNSwgMC4wNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzNzUsIDAuMDMzNzUsIDAuMDI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2MjUsIC0wLjAwNSwgLTAuMDExMjUsIC0wLjAxNzUsIC0wLjAyMzc1LCAtMC4wMzM3NSwgLTAuMDM2MjUiLCBcCi0gICAgICAgICAgIjAuMDExMjUsIDAuMDA2MjUsIC0wLjAwNjI1LCAtMC4wMTI1LCAtMC4wMTg3NSwgLTAuMDI4NzUsIC0wLjAzMTI1IiwgXAotICAgICAgICAgICIwLjAxNzUsIDAuMDEyNSwgMCwgLTAuMDA2MjUsIC0wLjAxMjUsIC0wLjAyMjUsIC0wLjAzMTI1IiwgXAotICAgICAgICAgICIwLjAyMzc1LCAwLjAxMjUsIDAuMDA2MjUsIC0wLjAwNjI1LCAtMC4wMTI1LCAtMC4wMTYyNSwgLTAuMDI1IiwgXAotICAgICAgICAgICIwLjAzLCAwLjAxODc1LCAwLjAwNjI1LCAwLCAtMC4wMDYyNSwgLTAuMDE2MjUsIC0wLjAxODc1IiwgXAotICAgICAgICAgICIwLjAzMzc1LCAwLjAyMjUsIDAuMDE2MjUsIDAuMDAzNzUsIC0wLjAwMjUsIC0wLjAxMjUsIC0wLjAxNSIsIFwKLSAgICAgICAgICAiMC4wMzYyNSwgMC4wMjUsIDAuMDE4NzUsIDAuMDA2MjUsIDAsIC0wLjAwMzc1LCAtMC4wMTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihRKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMzI5OTc0OwotICAgIGZ1bmN0aW9uIDogIk4zMCI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3NlbnNlIDogbm9uX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiByaXNpbmdfZWRnZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDkyNjU3LCAwLjExMTE4NywgMC4yMTY0MDYsIDAuMzA5MzY0LCAwLjQzMzM1OCwgMC42ODE0NjksIDAuODM2NTExIiwgXAotICAgICAgICAgICIwLjEwMDgwOCwgMC4xMTkzMzYsIDAuMjI0NTg2LCAwLjMxNzUwNCwgMC40NDE0NjMsIDAuNjg5NjE4LCAwLjg0NDY3NiIsIFwKLSAgICAgICAgICAiMC4xMTAyNSwgMC4xMjg3OTQsIDAuMjMzOTg3LCAwLjMyNjk3NSwgMC40NTA5NTEsIDAuNjk5MDMyLCAwLjg1NDEzMyIsIFwKLSAgICAgICAgICAiMC4xMTc4NzEsIDAuMTM2NDE5LCAwLjI0MTY0OSwgMC4zMzQ2MSwgMC40NTg2NjIsIDAuNzA2NjQ5LCAwLjg2MTcxIiwgXAotICAgICAgICAgICIwLjEyMzkzMiwgMC4xNDI0NzYsIDAuMjQ3NzAzLCAwLjM0MDYzOCwgMC40NjQ2MjgsIDAuNzEyNzY5LCAwLjg2Nzc0MSIsIFwKLSAgICAgICAgICAiMC4xMzE3NzUsIDAuMTUwMzI4LCAwLjI1NTU2NCwgMC4zNDg1MjMsIDAuNDcyNDYzLCAwLjcyMDU4LCAwLjg3NTU2MiIsIFwKLSAgICAgICAgICAiMC4xMzc4MDIsIDAuMTU2MzYyLCAwLjI2MTU5OSwgMC4zNTQ1MjEsIDAuNDc4NDkzLCAwLjcyNjUzOCwgMC44ODE1OTUiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDcwOTA5LCAwLjEwOTU5LCAwLjMzMDc2LCAwLjUyNzYzNCwgMC43ODgyNjksIDEuMzA5ODgsIDEuNjM2ODUiLCBcCi0gICAgICAgICAgIjAuMDcwOTI5LCAwLjEwOTYxMSwgMC4zMzEwOTUsIDAuNTI3NjMyLCAwLjc4OTEzNCwgMS4zMTE4OSwgMS42MzU5NyIsIFwKLSAgICAgICAgICAiMC4wNzA5NjgsIDAuMTA5NTYzLCAwLjMzMTI4NSwgMC41Mjc2MzUsIDAuNzg4MzczLCAxLjMxMDQyLCAxLjYzODczIiwgXAotICAgICAgICAgICIwLjA3MDk1OCwgMC4xMDk3MzMsIDAuMzMxMDg2LCAwLjUyNzYzLCAwLjc4NzkxMywgMS4zMTA0NCwgMS42MzY4NCIsIFwKLSAgICAgICAgICAiMC4wNzA5NjIsIDAuMTA5NzEyLCAwLjMzMTE3LCAwLjUyNzUzMSwgMC43ODgzMTcsIDEuMzExNzksIDEuNjM3MzEiLCBcCi0gICAgICAgICAgIjAuMDcwOTM2LCAwLjEwOTU4NywgMC4zMzExNDcsIDAuNTI3NTQ0LCAwLjc4ODkxLCAxLjMxMTc1LCAxLjYzNzEzIiwgXAotICAgICAgICAgICIwLjA3MTA1NSwgMC4xMDk2NDQsIDAuMzMxNTU3LCAwLjUyNzAyMiwgMC43ODgyMzMsIDEuMzEwNjksIDEuNjM3MTkiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTAzNDQyLCAwLjEyMTU3OSwgMC4yMjQxNzMsIDAuMzE0NjM3LCAwLjQzNTMwMSwgMC42NzY0OTIsIDAuODI3MjU0IiwgXAotICAgICAgICAgICIwLjExMTYyLCAwLjEyOTc2MSwgMC4yMzIzNDYsIDAuMzIyODEyLCAwLjQ0MzQ0NiwgMC42ODQ2NiwgMC44MzU0MTEiLCBcCi0gICAgICAgICAgIjAuMTIxMTA4LCAwLjEzOTI0NywgMC4yNDE4MzgsIDAuMzMyMzM1LCAwLjQ1MjkzLCAwLjY5NDE4OCwgMC44NDQ5MDQiLCBcCi0gICAgICAgICAgIjAuMTI4Nzk2LCAwLjE0NjkzNSwgMC4yNDk1MTEsIDAuMzM5OTc5LCAwLjQ2MDYxLCAwLjcwMTgwNiwgMC44NTI1OTQiLCBcCi0gICAgICAgICAgIjAuMTM0OTk5LCAwLjE1MzEzNCwgMC4yNTU3MTMsIDAuMzQ2MTgxLCAwLjQ2NjgsIDAuNzA4MDI5LCAwLjg1ODgyOSIsIFwKLSAgICAgICAgICAiMC4xNDI5OTYsIDAuMTYxMTIxLCAwLjI2MzcwMiwgMC4zNTQxNDgsIDAuNDc0Nzc3LCAwLjcxNTk5NywgMC44NjY4NiIsIFwKLSAgICAgICAgICAiMC4xNDkxNzksIDAuMTY3MjIyLCAwLjI2OTkwMSwgMC4zNjAyNjUsIDAuNDgwODUxLCAwLjcyMjE4MywgMC44NzI4NTYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY3NTMzLCAwLjEwNDQxOSwgMC4zMTUzNTQsIDAuNTAxMTU1LCAwLjc1MDYyMiwgMS4yNDYzNywgMS41NTY3MyIsIFwKLSAgICAgICAgICAiMC4wNjc1NDcsIDAuMTA0NDM2LCAwLjMxNTM0NywgMC41MDExNTMsIDAuNzQ5MTE2LCAxLjI0NjMsIDEuNTU2NjQiLCBcCi0gICAgICAgICAgIjAuMDY3NTQyLCAwLjEwNDQyMiwgMC4zMTUwMTIsIDAuNTAwNzU1LCAwLjc0OTE0MiwgMS4yNDgwNywgMS41NTY2MyIsIFwKLSAgICAgICAgICAiMC4wNjc1NDMsIDAuMTA0NDE2LCAwLjMxNTMsIDAuNTAxNzk2LCAwLjc0ODk4OSwgMS4yNDc3NiwgMS41NTY2NSIsIFwKLSAgICAgICAgICAiMC4wNjc1NTMsIDAuMTA0NDE5LCAwLjMxNTMzNywgMC41MDExNjMsIDAuNzQ5NzMxLCAxLjI0NjU5LCAxLjU1NjI5IiwgXAotICAgICAgICAgICIwLjA2NzUxMiwgMC4xMDQ0MSwgMC4zMTUzODYsIDAuNTAxMTEyLCAwLjc0ODg5NywgMS4yNDY1NCwgMS41NTU4MyIsIFwKLSAgICAgICAgICAiMC4wNjc2MzIsIDAuMTA0MTkzLCAwLjMxNDY1NywgMC41MDA4MDQsIDAuNzQ5MzM3LCAxLjI0NjQxLCAxLjU1NzEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA4NDU2LCAwLjAwODQzMSwgMC4wMDgzNTgsIDAuMDA4MzM2LCAwLjAwODMyMiwgMC4wMDgzMDksIDAuMDA4MzA1IiwgXAotICAgICAgICAgICIwLjAwODQ0MywgMC4wMDg0MTksIDAuMDA4MzQ2LCAwLjAwODMyMywgMC4wMDgzMDksIDAuMDA4Mjk2LCAwLjAwODI5MSIsIFwKLSAgICAgICAgICAiMC4wMDg1MjUsIDAuMDA4NTAyLCAwLjAwODQzLCAwLjAwODQwNiwgMC4wMDgzODgsIDAuMDA4Mzc2LCAwLjAwODM3MSIsIFwKLSAgICAgICAgICAiMC4wMDg2MzksIDAuMDA4NjE5LCAwLjAwODU0OCwgMC4wMDg1MjQsIDAuMDA4NTA2LCAwLjAwODQ5MiwgMC4wMDg0ODYiLCBcCi0gICAgICAgICAgIjAuMDA4NzY1LCAwLjAwODc0NywgMC4wMDg2NzgsIDAuMDA4NjUyLCAwLjAwODYzNCwgMC4wMDg2MTgsIDAuMDA4NjEzIiwgXAotICAgICAgICAgICIwLjAwODk5LCAwLjAwODk3MiwgMC4wMDg5MDksIDAuMDA4ODgyLCAwLjAwODg1OCwgMC4wMDg4NCwgMC4wMDg4MzUiLCBcCi0gICAgICAgICAgIjAuMDA5MTkyLCAwLjAwOTE0NywgMC4wMDkwOCwgMC4wMDkwNTIsIDAuMDA5MDYsIDAuMDA5MDEyLCAwLjAwOTAwNiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwOTIyLCAwLjAwOTIzMiwgMC4wMDkyNSwgMC4wMDkyNTQsIDAuMDA5MjU2LCAwLjAwOTI1OCwgMC4wMDkyNTgiLCBcCi0gICAgICAgICAgIjAuMDA5MjE5LCAwLjAwOTIzLCAwLjAwOTI0OCwgMC4wMDkyNTIsIDAuMDA5MjU0LCAwLjAwOTI1NiwgMC4wMDkyNTciLCBcCi0gICAgICAgICAgIjAuMDA5MzE5LCAwLjAwOTMzMSwgMC4wMDkzNDcsIDAuMDA5MzUxLCAwLjAwOTM1MywgMC4wMDkzNTUsIDAuMDA5MzU1IiwgXAotICAgICAgICAgICIwLjAwOTQyOCwgMC4wMDk0NCwgMC4wMDk0NTYsIDAuMDA5NDU5LCAwLjAwOTQ2MSwgMC4wMDk0NjMsIDAuMDA5NDYzIiwgXAotICAgICAgICAgICIwLjAwOTU3OCwgMC4wMDk1ODksIDAuMDA5NjA0LCAwLjAwOTYwNywgMC4wMDk2MDgsIDAuMDA5NjEsIDAuMDA5NjEiLCBcCi0gICAgICAgICAgIjAuMDA5ODI4LCAwLjAwOTgzOSwgMC4wMDk4NTEsIDAuMDA5ODUzLCAwLjAwOTg1MywgMC4wMDk4NTQsIDAuMDA5ODU0IiwgXAotICAgICAgICAgICIwLjAxMDAwNSwgMC4wMTAwNTEsIDAuMDEwMDI2LCAwLjAxMDA2LCAwLjAxMDA2MywgMC4wMTAwMjYsIDAuMDEwMDYiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBERkZIUVgyICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKERGRkhRWDIpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC45MjI3NzQ7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgZmYgKE4zMCxRQklOVCkgewotICAgIG5leHRfc3RhdGUgOiAiRCI7Ci0gICAgY2xvY2tlZF9vbiA6ICJDSyI7Ci0gIH0KLSAgcGluKENLKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA1OTIyMzc7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNTkyMjM3OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDU5MjE5NTsKLSAgICBjbG9jayA6IHRydWU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzODEsIDAuMDAzNzk5LCAwLjAwMzg3OCwgMC4wMDM5NzYsIDAuMDA0MDkyLCAwLjAwNDMyNSwgMC4wMDQ1MTkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDkzNTMsIDAuMDA5MzQ1LCAwLjAwOTQxMywgMC4wMDk1MTQsIDAuMDA5NjQ5LCAwLjAwOTc2NiwgMC4wMDk5NDUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFEIjsKLSAgICAgIHNkZl9jb25kIDogIkQgPT0gMSdiMCI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wOTI3MjcsIDAuMTAxMDA5LCAwLjExMDQ5OSwgMC4xMTgyODIsIDAuMTI0NjAyLCAwLjEzMjcwNCwgMC4xMzg4ODgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjA3MjQyNCwgMC4wODA1MTcsIDAuMDg5ODcxLCAwLjA5NzE0MiwgMC4xMDI5OCwgMC4xMTA3MTQsIDAuMTE2MjMyIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihEKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA4MDMxODI7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwODAxMjc5OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDgwMzE4MjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDM0MjcsIDAuMDAzMzgzLCAwLjAwMzQyNywgMC4wMDM0NjksIDAuMDAzNTU5LCAwLjAwMzcyNywgMC4wMDM5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA0MzQzLCAwLjAwNDMxNiwgMC4wMDQzMzcsIDAuMDA0MzkxLCAwLjAwNDQ3MywgMC4wMDQ2MDksIDAuMDA0NzcyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDA2MjUsIC0wLjAwMTI1LCAtMC4wMDEyNSwgMC4wMDUsIDAuMDA1LCAwLjAwODc1LCAwLjAxMTI1IiwgXAotICAgICAgICAgICItMC4wMTc1LCAtMC4wMDYyNSwgLTAuMDA2MjUsIDAsIDAsIDAuMDAzNzUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTI1LCAtMC4wMTI1LCAtMC4wMDYyNSwgLTAuMDA2MjUsIC0wLjAwMjUsIDAiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDEyNSwgLTAuMDA2MjUsIC0wLjAwMjUsIDAiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMTI1LCAtMC4wMDg3NSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjAzMzc1LCAtMC4wMjg3NSwgLTAuMDIyNSwgLTAuMDIyNSwgLTAuMDE2MjUsIC0wLjAxMjUsIC0wLjAxIiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTUsIC0wLjAxMjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxODc1LCAwLjAyMzc1LCAwLjAzNjI1LCAwLjA0MjUsIDAuMDQyNSwgMC4wNTI1LCAwLjA1NSIsIFwKLSAgICAgICAgICAiMC4wMTM3NSwgMC4wMTg3NSwgMC4wMjUsIDAuMDM3NSwgMC4wMzc1LCAwLjA0NzUsIDAuMDUiLCBcCi0gICAgICAgICAgIjAuMDA3NSwgMC4wMTI1LCAwLjAyNSwgMC4wMzEyNSwgMC4wMzc1LCAwLjA0MTI1LCAwLjA1IiwgXAotICAgICAgICAgICIwLjAwNzUsIDAuMDEyNSwgMC4wMjUsIDAuMDMxMjUsIDAuMDMxMjUsIDAuMDQxMjUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMDAxMjUsIDAuMDEyNSwgMC4wMTg3NSwgMC4wMjUsIDAuMDMxMjUsIDAuMDQxMjUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMDAzNzUsIDAuMDA4NzUsIDAuMDE1LCAwLjAyNzUsIDAuMDI3NSwgMC4wMzc1LCAwLjA0IiwgXAotICAgICAgICAgICIwLjAwMTI1LCAwLjAwNjI1LCAwLjAxODc1LCAwLjAyNSwgMC4wMzEyNSwgMC4wMzUsIDAuMDQzNzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDI1LCAwLjAyLCAwLjAxMzc1LCAwLjAwNzUsIDAuMDA3NSwgMC4wMDM3NSwgMC4wMDEyNSIsIFwKLSAgICAgICAgICAiMC4wMywgMC4wMjUsIDAuMDE4NzUsIDAuMDEyNSwgMC4wMTI1LCAwLjAwODc1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICIwLjAzNjI1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMTg3NSwgMC4wMTg3NSwgMC4wMTUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4wNDI1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDI1LCAwLjAyNSwgMC4wMjEyNSwgMC4wMTI1IiwgXAotICAgICAgICAgICIwLjA0ODc1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDI1LCAwLjAyMTI1LCAwLjAxODc1IiwgXAotICAgICAgICAgICIwLjA1ODc1LCAwLjA0NzUsIDAuMDQxMjUsIDAuMDM1LCAwLjAzNSwgMC4wMzEyNSwgMC4wMjI1IiwgXAotICAgICAgICAgICIwLjA2MTI1LCAwLjA1NjI1LCAwLjA0Mzc1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDMzNzUsIDAuMDMxMjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDYyNSwgMC4wMDEyNSwgLTAuMDExMjUsIC0wLjAxNzUsIC0wLjAyMzc1LCAtMC4wMzM3NSwgLTAuMDM2MjUiLCBcCi0gICAgICAgICAgIjAuMDExMjUsIDAuMDA2MjUsIC0wLjAwNjI1LCAtMC4wMTI1LCAtMC4wMTg3NSwgLTAuMDI4NzUsIC0wLjAzMTI1IiwgXAotICAgICAgICAgICIwLjAxNzUsIDAuMDEyNSwgMCwgLTAuMDA2MjUsIC0wLjAxMjUsIC0wLjAyMjUsIC0wLjAyNSIsIFwKLSAgICAgICAgICAiMC4wMjM3NSwgMC4wMTg3NSwgMC4wMDYyNSwgMCwgLTAuMDA2MjUsIC0wLjAxNjI1LCAtMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMDMsIDAuMDE4NzUsIDAuMDEyNSwgMCwgLTAuMDA2MjUsIC0wLjAxLCAtMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4wMzM3NSwgMC4wMjg3NSwgMC4wMTYyNSwgMC4wMSwgMC4wMDM3NSwgLTAuMDA2MjUsIC0wLjAxNSIsIFwKLSAgICAgICAgICAiMC4wMzYyNSwgMC4wMzEyNSwgMC4wMTg3NSwgMC4wMTI1LCAwLjAwNjI1LCAtMC4wMDM3NSwgLTAuMDEyNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjcwMDc2NjsKLSAgICBmdW5jdGlvbiA6ICJOMzAiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5vbl91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcmlzaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4MTk3OSwgMC4xNTg4OTUsIDAuMjIwMjQ3LCAwLjI5NjkyOCwgMC4zNzM2MzMsIDAuNDUwMzA2LCAwLjUyNzAxNCIsIFwKLSAgICAgICAgICAiMC4wOTAyMjksIDAuMTY3MTQzLCAwLjIyODUsIDAuMzA1MTgzLCAwLjM4MTc4MiwgMC40NTg1NjcsIDAuNTM1MjcxIiwgXAotICAgICAgICAgICIwLjA5OTcwOCwgMC4xNzY2MjYsIDAuMjM3OTgyLCAwLjMxNDY2MywgMC4zOTEzNSwgMC40NjgwNDUsIDAuNTQ0NzU2IiwgXAotICAgICAgICAgICIwLjEwNzQwMSwgMC4xODQzMjIsIDAuMjQ1NjY3LCAwLjMyMjM4NSwgMC4zOTkxLCAwLjQ3NTczMiwgMC41NTI0NDYiLCBcCi0gICAgICAgICAgIjAuMTEzNTM1LCAwLjE5MDQ1MiwgMC4yNTE4NDQsIDAuMzI4NDg5LCAwLjQwNTE3MSwgMC40ODE4OTUsIDAuNTU4NTQ1IiwgXAotICAgICAgICAgICIwLjEyMTU2MiwgMC4xOTg0NzksIDAuMjU5ODI1LCAwLjMzNjUyMiwgMC40MTMxOSwgMC40ODk4OTcsIDAuNTY2NTY4IiwgXAotICAgICAgICAgICIwLjEyNzcyMSwgMC4yMDQ2MjMsIDAuMjY1OTc3LCAwLjM0MjY2OSwgMC40MTkzNSwgMC40OTYxMTQsIDAuNTcyNzg2Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzOTU0NiwgMC4xOTkwMTQsIDAuMzI4NDgyLCAwLjQ5MDI2NSwgMC42NTA5OTgsIDAuODEzMjA4LCAwLjk3NDUyNiIsIFwKLSAgICAgICAgICAiMC4wMzk1NDUsIDAuMTk5MDIsIDAuMzI3NzM0LCAwLjQ5MDI4MywgMC42NTEyOTcsIDAuODEzMDczLCAwLjk3NDYyIiwgXAotICAgICAgICAgICIwLjAzOTUzOSwgMC4xOTkwMzEsIDAuMzI4NDYyLCAwLjQ5MDI3MywgMC42NTE0OTgsIDAuODEzMDYzLCAwLjk3NDE5NyIsIFwKLSAgICAgICAgICAiMC4wMzk1MzksIDAuMTk5MDMyLCAwLjMyODA1NywgMC40OTAyNTksIDAuNjUyMTE1LCAwLjgxMzIyNiwgMC45NzQ2NjYiLCBcCi0gICAgICAgICAgIjAuMDM5NTQ4LCAwLjE5ODc5NywgMC4zMjc5NDQsIDAuNDkwMjA2LCAwLjY1MTUyLCAwLjgxMzg2NCwgMC45NzQ3NjIiLCBcCi0gICAgICAgICAgIjAuMDM5Njg2LCAwLjE5OTA0NiwgMC4zMjgzNTgsIDAuNDg5NywgMC42NTIwMywgMC44MTI2ODEsIDAuOTc0NzM0IiwgXAotICAgICAgICAgICIwLjAzOTU1OCwgMC4xOTg3NywgMC4zMjgwNjYsIDAuNDg5NjkzLCAwLjY1MTQyNCwgMC44MTI3NzcsIDAuOTc1NzIxIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5MjcyNywgMC4xNjg5MDgsIDAuMjI5NjA5LCAwLjMwNTQzMywgMC4zODEzMTIsIDAuNDU3MTQ5LCAwLjUzMjkyOCIsIFwKLSAgICAgICAgICAiMC4xMDEwMDksIDAuMTc3MTg5LCAwLjIzNzg3NSwgMC4zMTM3MSwgMC4zODk1NTgsIDAuNDY1NDE0LCAwLjU0MTIxNiIsIFwKLSAgICAgICAgICAiMC4xMTA0OTksIDAuMTg2Njc0LCAwLjI0NzM3NSwgMC4zMjMxOTksIDAuMzk5MDQ3LCAwLjQ3NDkwOCwgMC41NTA2OCIsIFwKLSAgICAgICAgICAiMC4xMTgyODIsIDAuMTk0NDczLCAwLjI1NTE1OCwgMC4zMzA5OCwgMC40MDY4MjUsIDAuNDgyNjQ0LCAwLjU1ODQ5OCIsIFwKLSAgICAgICAgICAiMC4xMjQ2MDIsIDAuMjAwNzksIDAuMjYxNDc0LCAwLjMzNzI5NywgMC40MTMxNDIsIDAuNDg5MDE0LCAwLjU2NDgxNiIsIFwKLSAgICAgICAgICAiMC4xMzI3MDQsIDAuMjA4ODkxLCAwLjI2OTU3LCAwLjM0NTQyLCAwLjQyMTI3MiwgMC40OTcxMjEsIDAuNTcyOTEyIiwgXAotICAgICAgICAgICIwLjEzODg4OCwgMC4yMTUxMTgsIDAuMjc1ODAzLCAwLjM1MTY1NSwgMC40Mjc0NzMsIDAuNTAzMjU3LCAwLjU3OTA1MSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzg0MDgsIDAuMTkzOTUxLCAwLjMyMDA3MiwgMC40NzcxNzIsIDAuNjM0NDI3LCAwLjc5MTg3NiwgMC45NTAwNDgiLCBcCi0gICAgICAgICAgIjAuMDM4NDA4LCAwLjE5Mzk1MSwgMC4zMTk2MTIsIDAuNDc3MTc2LCAwLjYzNTYwMSwgMC43OTE3OTEsIDAuOTQ5NTYiLCBcCi0gICAgICAgICAgIjAuMDM4Mzg5LCAwLjE5Mzk1LCAwLjMyMDA3MSwgMC40NzcxNzgsIDAuNjM0NjA1LCAwLjc5MTc3LCAwLjk1MTA4NiIsIFwKLSAgICAgICAgICAiMC4wMzg0MDYsIDAuMTkzOTk3LCAwLjMyMDA1NSwgMC40Nzc3NTMsIDAuNjM1NTc3LCAwLjc5MjM3NCwgMC45NDk3NjYiLCBcCi0gICAgICAgICAgIjAuMDM4NDA3LCAwLjE5Mzk5NSwgMC4zMjAwNTIsIDAuNDc3NzUsIDAuNjM1NTc1LCAwLjc5MTc3MywgMC45NDk3MyIsIFwKLSAgICAgICAgICAiMC4wMzg0NTMsIDAuMTkzNzMsIDAuMzE5NjA4LCAwLjQ3NzgxOSwgMC42MzQzMTgsIDAuNzkxOTYxLCAwLjk0OTUzMiIsIFwKLSAgICAgICAgICAiMC4wMzgzODMsIDAuMTkzOTA2LCAwLjMyMDAyOSwgMC40NzcxNDYsIDAuNjM1NTI1LCAwLjc5MzM2MiwgMC45NTA4NTMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA5ODc3LCAwLjAwOTkxNywgMC4wMDk5MjIsIDAuMDA5OTI1LCAwLjAwOTkyNSwgMC4wMDk5MjUsIDAuMDA5OTI1IiwgXAotICAgICAgICAgICIwLjAwOTg1MywgMC4wMDk4OTMsIDAuMDA5ODk4LCAwLjAwOTkwMSwgMC4wMDk5MDQsIDAuMDA5OTA1LCAwLjAwOTkwNiIsIFwKLSAgICAgICAgICAiMC4wMDk5NDEsIDAuMDA5OTgyLCAwLjAwOTk5MSwgMC4wMDk5OTEsIDAuMDA5OTkyLCAwLjAwOTk5MywgMC4wMDk5OTgiLCBcCi0gICAgICAgICAgIjAuMDEwMDQ5LCAwLjAxMDA5MiwgMC4wMTAwOTcsIDAuMDEwMTAxLCAwLjAxMDEwMiwgMC4wMTAxMDMsIDAuMDEwMTA0IiwgXAotICAgICAgICAgICIwLjAxMDE3OSwgMC4wMTAyMjEsIDAuMDEwMjI3LCAwLjAxMDIzLCAwLjAxMDIzMSwgMC4wMTAyMzMsIDAuMDEwMjMzIiwgXAotICAgICAgICAgICIwLjAxMDQsIDAuMDEwNDM3LCAwLjAxMDQ0NiwgMC4wMTA0NSwgMC4wMTA0NDgsIDAuMDEwNDUxLCAwLjAxMDQ1MSIsIFwKLSAgICAgICAgICAiMC4wMTA1OTgsIDAuMDEwNjQsIDAuMDEwNjQ1LCAwLjAxMDU5OSwgMC4wMTA2MDIsIDAuMDEwNjAzLCAwLjAxMDY0NSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMDA1MSwgMC4wMTAxMjYsIDAuMDEwMTM2LCAwLjAxMDE0LCAwLjAxMDE0MiwgMC4wMTAxNDMsIDAuMDEwMTQ0IiwgXAotICAgICAgICAgICIwLjAxMDA0MSwgMC4wMTAxMTcsIDAuMDEwMTI2LCAwLjAxMDEzMSwgMC4wMTAxMzMsIDAuMDEwMTMzLCAwLjAxMDEzNSIsIFwKLSAgICAgICAgICAiMC4wMTAxNTIsIDAuMDEwMjI3LCAwLjAxMDIzNywgMC4wMTAyNCwgMC4wMTAyNDMsIDAuMDEwMjQ0LCAwLjAxMDI0NSIsIFwKLSAgICAgICAgICAiMC4wMTAyOCwgMC4wMTAzNTUsIDAuMDEwMzY0LCAwLjAxMDM2OCwgMC4wMTAzNywgMC4wMTAzNzIsIDAuMDEwMzcyIiwgXAotICAgICAgICAgICIwLjAxMDQwOCwgMC4wMTA0ODMsIDAuMDEwNDkxLCAwLjAxMDQ5NSwgMC4wMTA0OTgsIDAuMDEwNDk5LCAwLjAxMDQ5OSIsIFwKLSAgICAgICAgICAiMC4wMTA2NjQsIDAuMDEwNzM2LCAwLjAxMDc0NCwgMC4wMTA3NDgsIDAuMDEwNzUsIDAuMDEwNzUxLCAwLjAxMDc1MiIsIFwKLSAgICAgICAgICAiMC4wMTA4NzIsIDAuMDEwOTE4LCAwLjAxMDkyNiwgMC4wMTA5MywgMC4wMTA5MzIsIDAuMDEwOTYzLCAwLjAxMDk2NCIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBERkZOU1JYMiAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoREZGTlNSWDIpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMS4zMzE3OTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBmZiAoTjM1LFFCSU5UKSB7Ci0gICAgbmV4dF9zdGF0ZSA6ICJEIjsKLSAgICBjbG9ja2VkX29uIDogIighQ0tOKSI7Ci0gICAgY2xlYXIgOiAiKCFSTikiOwotICAgIHByZXNldCA6ICIoIVNOKSI7Ci0gICAgY2xlYXJfcHJlc2V0X3ZhcjEgOiBIOwotICAgIGNsZWFyX3ByZXNldF92YXIyIDogTDsKLSAgfQotICBwaW4oQ0tOKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA3MDk0MTg7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNzA5NDE4OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDcwOTIzMjsKLSAgICBjbG9jayA6IHRydWU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA3OTQ1LCAwLjAwNzk0MSwgMC4wMDgsIDAuMDA4MDk1LCAwLjAwODIsIDAuMDA4NDM2LCAwLjAwODY2MyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNTg2MSwgMC4wMDU4NTIsIDAuMDA1OTE3LCAwLjAwNjAxMywgMC4wMDYxMzYsIDAuMDA2MjgyLCAwLjAwNjQ1MSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDS04iOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFEJlJOJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9STl9FUV8xX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wOTAyMjIsIDAuMDk4NTMyLCAwLjEwODM3NywgMC4xMTYxMDYsIDAuMTIyMzI1LCAwLjEzMDYwOSwgMC4xMzY2NzciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjExMjcwMSwgMC4xMjA3MzcsIDAuMTMwMTYxLCAwLjEzODA5NiwgMC4xNDQ0OSwgMC4xNTI2NzMsIDAuMTU4NzcxIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihEKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA3MTM1OTY7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNzEyNDU5OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDcxMzU5NjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDM4NjYsIDAuMDAzODM3LCAwLjAwMzg1NiwgMC4wMDM5MDgsIDAuMDAzOTcyLCAwLjAwNDEwMywgMC4wMDQyNTMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDQwMTcsIDAuMDAzOTk2LCAwLjAwNDAxNCwgMC4wMDQwNTYsIDAuMDA0MTIzLCAwLjAwNDIzOSwgMC4wMDQzODIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0tOIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9mYWxsaW5nOwotICAgICAgd2hlbiA6ICJSTiZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJSTl9FUV8xX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTg3NSwgMC4wMywgMC4wMzYyNSwgMC4wNDI1LCAwLjA0ODc1LCAwLjA1MjUsIDAuMDYxMjUiLCBcCi0gICAgICAgICAgIjAuMDEzNzUsIDAuMDE4NzUsIDAuMDMxMjUsIDAuMDM3NSwgMC4wNDM3NSwgMC4wNDc1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICIwLjAwNzUsIDAuMDE4NzUsIDAuMDI1LCAwLjAzMTI1LCAwLjAzNzUsIDAuMDQ3NSwgMC4wNSIsIFwKLSAgICAgICAgICAiMC4wMDc1LCAwLjAxMjUsIDAuMDI1LCAwLjAzMTI1LCAwLjAzNzUsIDAuMDQxMjUsIDAuMDUiLCBcCi0gICAgICAgICAgIjAuMDAxMjUsIDAuMDEyNSwgMC4wMTg3NSwgMC4wMjUsIDAuMDMxMjUsIDAuMDQxMjUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIi0wLjAwMjUsIDAuMDA4NzUsIDAuMDE1LCAwLjAyMTI1LCAwLjAyNzUsIDAuMDM3NSwgMC4wNCIsIFwKLSAgICAgICAgICAiLTAuMDA1LCAwLjAwNjI1LCAwLjAxMjUsIDAuMDE4NzUsIDAuMDI1LCAwLjAzNSwgMC4wMzc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDEyNSwgLTAuMDA3NSwgLTAuMDAxMjUsIDAuMDA1LCAwLjAwNSwgMC4wMDg3NSwgMC4wMTEyNSIsIFwKLSAgICAgICAgICAiLTAuMDE3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAsIDAsIDAuMDAzNzUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTI1LCAtMC4wMTI1LCAtMC4wMDYyNSwgLTAuMDA2MjUsIC0wLjAwMjUsIDAiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDEyNSwgLTAuMDA2MjUsIC0wLjAwMjUsIDAiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMTI1LCAtMC4wMDg3NSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjAzMzc1LCAtMC4wMjg3NSwgLTAuMDIyNSwgLTAuMDE2MjUsIC0wLjAxNjI1LCAtMC4wMTI1LCAtMC4wMSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxNSwgLTAuMDEyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDS04iOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9mYWxsaW5nOwotICAgICAgd2hlbiA6ICJSTiZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJSTl9FUV8xX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQzNzUsIDAuMDMyNSwgMC4wMiwgMC4wMTM3NSwgMC4wMDc1LCAtMC4wMDI1LCAtMC4wMDUiLCBcCi0gICAgICAgICAgIjAuMDQ4NzUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMTg3NSwgMC4wMTI1LCAwLjAwODc1LCAwIiwgXAotICAgICAgICAgICIwLjA1NSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAyNSwgMC4wMTg3NSwgMC4wMTUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMDYxMjUsIDAuMDUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMjUsIDAuMDIxMjUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4wNjEyNSwgMC4wNTYyNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyMTI1LCAwLjAxODc1IiwgXAotICAgICAgICAgICIwLjA3MTI1LCAwLjA2LCAwLjA1Mzc1LCAwLjA0MTI1LCAwLjAzNSwgMC4wMzEyNSwgMC4wMjI1IiwgXAotICAgICAgICAgICIwLjA3Mzc1LCAwLjA2ODc1LCAwLjA1NjI1LCAwLjA1LCAwLjA0Mzc1LCAwLjAzMzc1LCAwLjAzMTI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU2MjUsIDAuMDQ1LCAwLjAzMjUsIDAuMDI2MjUsIDAuMDIsIDAuMDE2MjUsIDAuMDEzNzUiLCBcCi0gICAgICAgICAgIjAuMDYxMjUsIDAuMDUsIDAuMDQzNzUsIDAuMDMxMjUsIDAuMDMxMjUsIDAuMDIxMjUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMDY3NSwgMC4wNTYyNSwgMC4wNSwgMC4wMzc1LCAwLjAzNzUsIDAuMDI3NSwgMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMDczNzUsIDAuMDYyNSwgMC4wNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzMzc1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICIwLjA3Mzc1LCAwLjA2ODc1LCAwLjA1NjI1LCAwLjA1LCAwLjA0Mzc1LCAwLjA0LCAwLjAzMTI1IiwgXAotICAgICAgICAgICIwLjA4Mzc1LCAwLjA3MjUsIDAuMDYsIDAuMDUzNzUsIDAuMDQ3NSwgMC4wNDM3NSwgMC4wNDEyNSIsIFwKLSAgICAgICAgICAiMC4wODYyNSwgMC4wNzUsIDAuMDY4NzUsIDAuMDU2MjUsIDAuMDU2MjUsIDAuMDQ2MjUsIDAuMDQzNzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFEpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC42NzM5MDY7Ci0gICAgZnVuY3Rpb24gOiAiTjM1IjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDS04iOwotICAgICAgdGltaW5nX3NlbnNlIDogbm9uX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiBmYWxsaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwODY3MiwgMC4xODc0MDQsIDAuMjQ5NTMyLCAwLjMyNzM2NywgMC40MDUxOTksIDAuNDgyODU1LCAwLjU2MDY3OCIsIFwKLSAgICAgICAgICAiMC4xMTY4MDIsIDAuMTk1Mzk0LCAwLjI1NzYyOCwgMC4zMzUzNjgsIDAuNDEzMzIyLCAwLjQ5MTEsIDAuNTY4ODg5IiwgXAotICAgICAgICAgICIwLjEyNjI0NywgMC4yMDQ4NjUsIDAuMjY3MjIzLCAwLjM0NTAzMSwgMC40MjI3MjMsIDAuNTAwNTM1LCAwLjU3ODI2NSIsIFwKLSAgICAgICAgICAiMC4xMzQxNzUsIDAuMjEyNzgsIDAuMjc0OTQzLCAwLjM1MjgwMiwgMC40MzA0OTcsIDAuNTA4NDYzLCAwLjU4NjE5MyIsIFwKLSAgICAgICAgICAiMC4xNDAzNzUsIDAuMjE5MDg4LCAwLjI4MTMsIDAuMzU5MTQxLCAwLjQzNjczMywgMC41MTQ3MTMsIDAuNTkyNDA3IiwgXAotICAgICAgICAgICIwLjE0ODU2OCwgMC4yMjcxNzMsIDAuMjg5NTQzLCAwLjM2NzMzMiwgMC40NDQ5NTgsIDAuNTIyODcsIDAuNjAwNjAzIiwgXAotICAgICAgICAgICIwLjE1NDQyOCwgMC4yMzMxNzcsIDAuMjk1MTgyLCAwLjM3MzE4MiwgMC40NTA5NTMsIDAuNTI4NzI4LCAwLjYwNjQ0MiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDI2ODcsIDAuMjA0NDQzLCAwLjMzNjMzMiwgMC41MDI3OTEsIDAuNjY4OTQ5LCAwLjgzMzg2MiwgMC45OTk4OTciLCBcCi0gICAgICAgICAgIjAuMDQzMDQxLCAwLjIwNDQwNSwgMC4zMzY1NzUsIDAuNTAyMTcsIDAuNjY4OTI2LCAwLjgzNDk1NiwgMS4wMDExNyIsIFwKLSAgICAgICAgICAiMC4wNDI4ODcsIDAuMjA0NDI4LCAwLjMzNjYyNiwgMC41MDI4NzUsIDAuNjY4ODM1LCAwLjgzNDg5MywgMC45OTk5NjgiLCBcCi0gICAgICAgICAgIjAuMDQzMDQ5LCAwLjIwNDQyNywgMC4zMzY0NTUsIDAuNTAyMTc5LCAwLjY2ODE3MywgMC44MzQ4OTEsIDEuMDAwMDYiLCBcCi0gICAgICAgICAgIjAuMDQyNzUxLCAwLjIwNDE5OCwgMC4zMzYzNzIsIDAuNTAyODg2LCAwLjY2ODIzMywgMC44MzQ5NDQsIDEuMDAwMDEiLCBcCi0gICAgICAgICAgIjAuMDQyNzQ2LCAwLjIwNDQyNCwgMC4zMzYyNzYsIDAuNTAyODczLCAwLjY2ODE4NywgMC44MzQ4ODUsIDEuMDAwMTIiLCBcCi0gICAgICAgICAgIjAuMDQzMDc1LCAwLjIwNDQ0MSwgMC4zMzY0OSwgMC41MDI4NTcsIDAuNjY4ODczLCAwLjgzNDg3OCwgMS4wMDA1NCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTc3MDYsIDAuMTc0NjI4LCAwLjIzNTMsIDAuMzExNjE3LCAwLjM4NzM3MywgMC40NjMzNjMsIDAuNTM5MzE4IiwgXAotICAgICAgICAgICIwLjEwNTczNSwgMC4xODI3NjIsIDAuMjQzNjIsIDAuMzE5NDQyLCAwLjM5NjA3OSwgMC40NzEzNTIsIDAuNTQ3Nzc3IiwgXAotICAgICAgICAgICIwLjExNTE2NSwgMC4xOTIwODUsIDAuMjUzMTM2LCAwLjMyOTA3MywgMC40MDQ4MiwgMC40ODA4MDksIDAuNTU2NzcxIiwgXAotICAgICAgICAgICIwLjEyMzEsIDAuMjAwMDE3LCAwLjI2MTA1OSwgMC4zMzY4NCwgMC40MTI3NDQsIDAuNDg4NzQsIDAuNTY0NzAyIiwgXAotICAgICAgICAgICIwLjEyOTQ4OSwgMC4yMDYzNjUsIDAuMjY3MTYsIDAuMzQzMTgyLCAwLjQxOTMwNCwgMC40OTUyMzksIDAuNTcxNTMzIiwgXAotICAgICAgICAgICIwLjEzNzY4OCwgMC4yMTQ2NDYsIDAuMjc1NTU4LCAwLjM1MTMyMywgMC40Mjc1NzksIDAuNTAzMjksIDAuNTc5MzIiLCBcCi0gICAgICAgICAgIjAuMTQzNzc3LCAwLjIyMDc3MSwgMC4yODE2MjcsIDAuMzU3NzE0LCAwLjQzMzU1NiwgMC41MDk4OTIsIDAuNTg1NDA4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0MDU2MSwgMC4xOTU1NywgMC4zMjAyOSwgMC40Nzc5OTEsIDAuNjM2NzI3LCAwLjc5MzA2OSwgMC45NTI1MDkiLCBcCi0gICAgICAgICAgIjAuMDQwNzQsIDAuMTk1NTQ2LCAwLjMyMDgxOCwgMC40NzkyNjYsIDAuNjM2NzE2LCAwLjc5MzYwNSwgMC45NTIzMDIiLCBcCi0gICAgICAgICAgIjAuMDQwNTYzLCAwLjE5NTU5MSwgMC4zMjA2ODIsIDAuNDc3OTk5LCAwLjYzNjIwMSwgMC43OTMyOTksIDAuOTUyNjA5IiwgXAotICAgICAgICAgICIwLjA0MDUwNiwgMC4xOTU1OTYsIDAuMzIwNzE3LCAwLjQ3OTIwMiwgMC42MzU2NTYsIDAuNzkzMzU0LCAwLjk1MjY4IiwgXAotICAgICAgICAgICIwLjA0MDg3NiwgMC4xOTQ2MzksIDAuMzIwODE3LCAwLjQ3OTI1OCwgMC42MzY5MDcsIDAuNzk1MDEzLCAwLjk1MTI3NiIsIFwKLSAgICAgICAgICAiMC4wNDA1MzksIDAuMTk1MTE1LCAwLjMyMDg0OSwgMC40NzkzMDQsIDAuNjM3MTM1LCAwLjc5Mzk3NSwgMC45NTEyNiIsIFwKLSAgICAgICAgICAiMC4wNDA2OTYsIDAuMTk1NjUsIDAuMzIwODA3LCAwLjQ3Nzg0NSwgMC42MzcxOTQsIDAuNzk0MjYsIDAuOTUyODIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUk4iOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGNsZWFyOwotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMjkxMiwgMC4yMDYwNjYsIDAuMjY2OTQxLCAwLjM0MjcyNywgMC40MTkxMTYsIDAuNDk1NTcxLCAwLjU3MDcyMiIsIFwKLSAgICAgICAgICAiMC4xMzcwOTQsIDAuMjEzOTgxLCAwLjI3NDkzOCwgMC4zNTA5NjEsIDAuNDI2NjU3LCAwLjUwMzMxMSwgMC41Nzk1NjUiLCBcCi0gICAgICAgICAgIjAuMTQ1NSwgMC4yMjIzNjIsIDAuMjgzMjEsIDAuMzU5MTk1LCAwLjQzNTcwNywgMC41MTE1MzUsIDAuNTg2ODc4IiwgXAotICAgICAgICAgICIwLjE1MjIxMSwgMC4yMjkxNzcsIDAuMjkwMDkxLCAwLjM2NTgyOSwgMC40NDE5OTUsIDAuNTE4MTksIDAuNTkzOTUxIiwgXAotICAgICAgICAgICIwLjE1NzM5OCwgMC4yMzQxNTksIDAuMjk1MzIyLCAwLjM3MTAzOCwgMC40NDczMjksIDAuNTIzODQ5LCAwLjU5ODk4OCIsIFwKLSAgICAgICAgICAiMC4xNjQyMDYsIDAuMjQxMDk1LCAwLjMwMjEwMSwgMC4zNzgxMjEsIDAuNDU0MDE0LCAwLjUzMDY2NiwgMC42MDYyNDEiLCBcCi0gICAgICAgICAgIjAuMTY5Mzg1LCAwLjI0NjM4MywgMC4zMDcyNDMsIDAuMzgzNDM3LCAwLjQ1OTQxMSwgMC41MzUxNzIsIDAuNjExODY4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0MTA2MywgMC4xOTU2NzgsIDAuMzIxNDg1LCAwLjQ3OTMyOCwgMC42Mzc3NTQsIDAuNzk0NjE5LCAwLjk1MjU4NSIsIFwKLSAgICAgICAgICAiMC4wNDEwNSwgMC4xOTU2MTksIDAuMzIxNTA5LCAwLjQ3ODYxOCwgMC42MzY0ODQsIDAuNzk0OTM1LCAwLjk1MjciLCBcCi0gICAgICAgICAgIjAuMDQwODQ4LCAwLjE5NTcxLCAwLjMyMTQ1NiwgMC40NzkyNjMsIDAuNjM2NDAzLCAwLjc5NTUwMiwgMC45NTI2ODYiLCBcCi0gICAgICAgICAgIjAuMDQxMDQ1LCAwLjE5NTY0NiwgMC4zMjE0NDUsIDAuNDc5MzE5LCAwLjYzNzQ4OSwgMC43OTQ4NjQsIDAuOTUzMDE3IiwgXAotICAgICAgICAgICIwLjA0MTA1MywgMC4xOTUzNCwgMC4zMjE2OTYsIDAuNDc5MjksIDAuNjM2NjYzLCAwLjc5NDk1OSwgMC45NTI3MDciLCBcCi0gICAgICAgICAgIjAuMDQxMDc1LCAwLjE5NTY3NSwgMC4zMjE0NCwgMC40Nzg4MTYsIDAuNjM3NDUyLCAwLjc5NTAwNSwgMC45NTI2ODUiLCBcCi0gICAgICAgICAgIjAuMDQxMDg0LCAwLjE5NTY2MSwgMC4zMjE0NTMsIDAuNDc4ODUyLCAwLjYzNzI0OCwgMC43OTQ5ODYsIDAuOTUyNjA2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiBwcmVzZXQ7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4OTY2LCAwLjE2ODA5MSwgMC4yMzA2NzYsIDAuMzA4MjIsIDAuMzg2MzAxLCAwLjQ2NDAxMywgMC41NDE3NDkiLCBcCi0gICAgICAgICAgIjAuMDk3NTA3LCAwLjE3NjA3NCwgMC4yMzgwNzMsIDAuMzE1ODc4LCAwLjM5MzY3NiwgMC40NzE2MzUsIDAuNTQ5NTU4IiwgXAotICAgICAgICAgICIwLjEwNzU2MSwgMC4xODYwOTksIDAuMjQ4MzcyLCAwLjMyNjIyMiwgMC40MDM4NDMsIDAuNDgxOTIzLCAwLjU1OTY5NSIsIFwKLSAgICAgICAgICAiMC4xMTY2NzMsIDAuMTk1MTYsIDAuMjU3NjgsIDAuMzM1MjA2LCAwLjQxMzMxNiwgMC40OTEwNDIsIDAuNTY4NTgiLCBcCi0gICAgICAgICAgIjAuMTI0NTEzLCAwLjIwMjk0OSwgMC4yNjUzNzYsIDAuMzQzMjUzLCAwLjQyMDY5NSwgMC40OTg5MDUsIDAuNTc2NjEyIiwgXAotICAgICAgICAgICIwLjEzNDk1OSwgMC4yMTM0NTgsIDAuMjc1NjYyLCAwLjM1MzYyNSwgMC40MzEyNzYsIDAuNTA5MzY0LCAwLjU4Njg2NCIsIFwKLSAgICAgICAgICAiMC4xNDI3MTcsIDAuMjIxMjA5LCAwLjI4MzY4NCwgMC4zNjEyNSwgMC40MzkzODEsIDAuNTE3MDIyLCAwLjU5NDYyOCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDIyOTcsIDAuMjA0Mzc0LCAwLjMzNjgxMSwgMC41MDI5NDYsIDAuNjY4OTYzLCAwLjgzNDkzMiwgMS4wMDA5NiIsIFwKLSAgICAgICAgICAiMC4wNDIzODIsIDAuMjA0MjQ4LCAwLjMzNjgxNSwgMC41MDI5NjYsIDAuNjY4OTczLCAwLjgzNDk3OSwgMS4wMDA5OCIsIFwKLSAgICAgICAgICAiMC4wNDIzMDgsIDAuMjA0NDUyLCAwLjMzNjM1MiwgMC41MDI5MjEsIDAuNjY4OTcyLCAwLjgzNDk3OSwgMS4wMDA5NiIsIFwKLSAgICAgICAgICAiMC4wNDIzNjUsIDAuMjA0NDUyLCAwLjMzNjgwNCwgMC41MDI5MTMsIDAuNjY4OTY1LCAwLjgzNDk3OSwgMS4wMDA5NSIsIFwKLSAgICAgICAgICAiMC4wNDIzNjcsIDAuMjA0NDM0LCAwLjMzNjg1MSwgMC41MDI5NCwgMC42Njg5NjcsIDAuODM0OTg4LCAxLjAwMDk1IiwgXAotICAgICAgICAgICIwLjA0MjYwNywgMC4yMDQ0MywgMC4zMzY3ODYsIDAuNTAyOTA3LCAwLjY2ODkyMiwgMC44MzQ4ODQsIDEuMDAwODgiLCBcCi0gICAgICAgICAgIjAuMDQyNzA2LCAwLjIwNDM1NCwgMC4zMzY4MTcsIDAuNTAyODgsIDAuNjY4OTA3LCAwLjgzNDg4MywgMS4wMDA4OSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTQyMjYsIDAuMTkwOTkzLCAwLjI1MTg4MSwgMC4zMjc4NDQsIDAuNDA0MTc3LCAwLjQ4MDY5MiwgMC41NTU5MzMiLCBcCi0gICAgICAgICAgIjAuMTIwOTAyLCAwLjE5Nzc5MywgMC4yNTg3ODYsIDAuMzM0ODAxLCAwLjQxMTA0OSwgMC40ODY3MTUsIDAuNTYzMzg3IiwgXAotICAgICAgICAgICIwLjEyODQ0MiwgMC4yMDUzMjEsIDAuMjY2NTI2LCAwLjM0MjQyNSwgMC40MTg1MTEsIDAuNDk0MjY1LCAwLjU3MDk0NiIsIFwKLSAgICAgICAgICAiMC4xMzU4ODksIDAuMjEyNzEzLCAwLjI3MzU5NywgMC4zNDk1OTgsIDAuNDI1Mzc2LCAwLjUwMTg4OCwgMC41Nzc4NTQiLCBcCi0gICAgICAgICAgIjAuMTQyODU3LCAwLjIxOTc0NSwgMC4yODA5MzIsIDAuMzU2NTgyLCAwLjQzMjQ5MywgMC41MDg1NTQsIDAuNTg1Mzk3IiwgXAotICAgICAgICAgICIwLjE1MjgyNywgMC4yMjk3MzIsIDAuMjkwNzQ2LCAwLjM2Njk5NiwgMC40NDMxNDgsIDAuNTE4NDY2LCAwLjU5NTM5IiwgXAotICAgICAgICAgICIwLjE2MDU3OSwgMC4yMzc0NjksIDAuMjk4Mzc4LCAwLjM3NDUsIDAuNDUwMjU3LCAwLjUyNjQyMSwgMC42MDIyNTEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQxMDYxLCAwLjE5NTYxNiwgMC4zMjE0MjMsIDAuNDc5MzMsIDAuNjM3MDI5LCAwLjc5NDg2NiwgMC45NTI4ODUiLCBcCi0gICAgICAgICAgIjAuMDQxMTY2LCAwLjE5NTYwNiwgMC4zMjE0NTUsIDAuNDc5MzU2LCAwLjYzNzA0NywgMC43OTQ4NjIsIDAuOTUyOTQzIiwgXAotICAgICAgICAgICIwLjA0MTExOSwgMC4xOTU2MTgsIDAuMzIxNDAyLCAwLjQ3ODg1MywgMC42MzcyNzYsIDAuNzk1MDU2LCAwLjk1MjYyOCIsIFwKLSAgICAgICAgICAiMC4wNDA4OTMsIDAuMTk1NjI4LCAwLjMyMTQsIDAuNDc5MDc2LCAwLjYzNjY3OCwgMC43OTUzNDYsIDAuOTUyNjc3IiwgXAotICAgICAgICAgICIwLjA0MDk3NiwgMC4xOTU2NDUsIDAuMzIxNDU4LCAwLjQ3OTM1MiwgMC42MzY4MDgsIDAuNzk0ODk0LCAwLjk1MzAyNyIsIFwKLSAgICAgICAgICAiMC4wNDEyNTYsIDAuMTk1NiwgMC4zMjEzNjYsIDAuNDc5MzA5LCAwLjYzNjczNSwgMC43OTQ5NjcsIDAuOTUyOTA2IiwgXAotICAgICAgICAgICIwLjA0MTE5NiwgMC4xOTU2MzUsIDAuMzIxMzI2LCAwLjQ3ODA3OCwgMC42MzcyMDUsIDAuNzk1MTM3LCAwLjk1MzA1OCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA3OTcsIDAuMDA3OTk2LCAwLjAwOCwgMC4wMDgwMDEsIDAuMDA4MDAyLCAwLjAwODAwMiwgMC4wMDgwMDMiLCBcCi0gICAgICAgICAgIjAuMDA3OTY4LCAwLjAwNzk5NCwgMC4wMDc5OTgsIDAuMDA3OTk5LCAwLjAwOCwgMC4wMDgwMDEsIDAuMDA4MDAxIiwgXAotICAgICAgICAgICIwLjAwODAxNywgMC4wMDgwNDMsIDAuMDA4MDQ2LCAwLjAwODA0OCwgMC4wMDgwNDgsIDAuMDA4MDQ5LCAwLjAwODA1IiwgXAotICAgICAgICAgICIwLjAwODA3NywgMC4wMDgxMDQsIDAuMDA4MTA3LCAwLjAwODEwOSwgMC4wMDgxMDksIDAuMDA4MTEsIDAuMDA4MTEiLCBcCi0gICAgICAgICAgIjAuMDA4MTMsIDAuMDA4MTU5LCAwLjAwODE2MiwgMC4wMDgxNjUsIDAuMDA4MTY1LCAwLjAwODE2NCwgMC4wMDgxNjYiLCBcCi0gICAgICAgICAgIjAuMDA4MjI1LCAwLjAwODI1MiwgMC4wMDgyNTUsIDAuMDA4MjU4LCAwLjAwODI1OCwgMC4wMDgyNTgsIDAuMDA4MjU5IiwgXAotICAgICAgICAgICIwLjAwODMyMiwgMC4wMDgzNDYsIDAuMDA4MzQ5LCAwLjAwODM1MSwgMC4wMDgzNTIsIDAuMDA4MzUzLCAwLjAwODM1MyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNzUwOSwgMC4wMDc1NDUsIDAuMDA3NTQ5LCAwLjAwNzU1MiwgMC4wMDc1NTMsIDAuMDA3NTU0LCAwLjAwNzU1NCIsIFwKLSAgICAgICAgICAiMC4wMDc1MDIsIDAuMDA3NTM3LCAwLjAwNzU0MiwgMC4wMDc1NDYsIDAuMDA3NTQ2LCAwLjAwNzU0NiwgMC4wMDc1NDUiLCBcCi0gICAgICAgICAgIjAuMDA3NTM3LCAwLjAwNzU3MywgMC4wMDc1NzgsIDAuMDA3NTgxLCAwLjAwNzU4MSwgMC4wMDc1ODIsIDAuMDA3NTgzIiwgXAotICAgICAgICAgICIwLjAwNzU5MiwgMC4wMDc2MjgsIDAuMDA3NjMxLCAwLjAwNzYzNSwgMC4wMDc2MzcsIDAuMDA3NjM3LCAwLjAwNzYzNyIsIFwKLSAgICAgICAgICAiMC4wMDc2NDcsIDAuMDA3NjgyLCAwLjAwNzY4NywgMC4wMDc2ODksIDAuMDA3Njg5LCAwLjAwNzY5MSwgMC4wMDc2ODkiLCBcCi0gICAgICAgICAgIjAuMDA3NzM0LCAwLjAwNzc2OCwgMC4wMDc3NzQsIDAuMDA3Nzc1LCAwLjAwNzc3NywgMC4wMDc3NzcsIDAuMDA3Nzc4IiwgXAotICAgICAgICAgICIwLjAwNzgxNiwgMC4wMDc4NDksIDAuMDA3ODU0LCAwLjAwNzg1NiwgMC4wMDc4NTcsIDAuMDA3ODU4LCAwLjAwNzg1OCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDg0NTIsIDAuMDA4NDgzLCAwLjAwODQ4NywgMC4wMDg0ODksIDAuMDA4NDksIDAuMDA4NDksIDAuMDA4NDkxIiwgXAotICAgICAgICAgICIwLjAwODQ1LCAwLjAwODQ3OCwgMC4wMDg0ODksIDAuMDA4NDg1LCAwLjAwODQ4NiwgMC4wMDg0ODQsIDAuMDA4NDg3IiwgXAotICAgICAgICAgICIwLjAwODQ4LCAwLjAwODUxMywgMC4wMDg1MTcsIDAuMDA4NTIsIDAuMDA4NTIzLCAwLjAwODUyNiwgMC4wMDg1MjIiLCBcCi0gICAgICAgICAgIjAuMDA4NTE5LCAwLjAwODU1LCAwLjAwODU1NCwgMC4wMDg1NTYsIDAuMDA4NTU3LCAwLjAwODU1OCwgMC4wMDg1NTkiLCBcCi0gICAgICAgICAgIjAuMDA4NTcxLCAwLjAwODYwMiwgMC4wMDg2MDYsIDAuMDA4NjA4LCAwLjAwODYwOSwgMC4wMDg2MDksIDAuMDA4NjE0IiwgXAotICAgICAgICAgICIwLjAwODY2NiwgMC4wMDg2OTksIDAuMDA4NzA0LCAwLjAwODcwNiwgMC4wMDg3MDcsIDAuMDA4NzA3LCAwLjAwODcwNSIsIFwKLSAgICAgICAgICAiMC4wMDg3NTIsIDAuMDA4Nzg5LCAwLjAwODc5MywgMC4wMDg3OTUsIDAuMDA4Nzk3LCAwLjAwODc5NywgMC4wMDg3OTciKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfcG93ZXIoc2NhbGFyKSB7Ci0gICAgICAgIHZhbHVlcygiMCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDc5NjMsIDAuMDA3OTg3LCAwLjAwNzk4OSwgMC4wMDc5OSwgMC4wMDc5ODksIDAuMDA3OTksIDAuMDA3OTkiLCBcCi0gICAgICAgICAgIjAuMDA3OTQ5LCAwLjAwNzk3MywgMC4wMDc5NzUsIDAuMDA3OTc2LCAwLjAwNzk3NiwgMC4wMDc5NzcsIDAuMDA3OTc2IiwgXAotICAgICAgICAgICIwLjAwNzk2NiwgMC4wMDc5OSwgMC4wMDc5OTEsIDAuMDA3OTkzLCAwLjAwNzk5NCwgMC4wMDc5OTMsIDAuMDA3OTkzIiwgXAotICAgICAgICAgICIwLjAwNzk5NywgMC4wMDgwMjUsIDAuMDA4MDI4LCAwLjAwODAyOSwgMC4wMDgwMjksIDAuMDA4MDI5LCAwLjAwODAzIiwgXAotICAgICAgICAgICIwLjAwODA1MiwgMC4wMDgwNzgsIDAuMDA4MDgsIDAuMDA4MDgxLCAwLjAwODA4MiwgMC4wMDgwODIsIDAuMDA4MDgxIiwgXAotICAgICAgICAgICIwLjAwODE2OCwgMC4wMDgxODgsIDAuMDA4MTksIDAuMDA4MTkxLCAwLjAwODE5MSwgMC4wMDgxOTEsIDAuMDA4MTkxIiwgXAotICAgICAgICAgICIwLjAwODI4NSwgMC4wMDgzMDYsIDAuMDA4MzA4LCAwLjAwODMwOSwgMC4wMDgzMSwgMC4wMDgzMTEsIDAuMDA4MzEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDY1NjUsIDAuMDA2NTk2LCAwLjAwNjYsIDAuMDA2NjAyLCAwLjAwNjYwMywgMC4wMDY2MDMsIDAuMDA2NjA0IiwgXAotICAgICAgICAgICIwLjAwNjUzMiwgMC4wMDY1NjUsIDAuMDA2NTY5LCAwLjAwNjU3MSwgMC4wMDY1NzMsIDAuMDA2NTY4LCAwLjAwNjU3NCIsIFwKLSAgICAgICAgICAiMC4wMDY1MiwgMC4wMDY1NTQsIDAuMDA2NTU5LCAwLjAwNjU2MSwgMC4wMDY1NjIsIDAuMDA2NTYzLCAwLjAwNjU2MyIsIFwKLSAgICAgICAgICAiMC4wMDY1MjQsIDAuMDA2NTU3LCAwLjAwNjU2MiwgMC4wMDY1NjQsIDAuMDA2NTY1LCAwLjAwNjU2MSwgMC4wMDY1NjciLCBcCi0gICAgICAgICAgIjAuMDA2NTM1LCAwLjAwNjU3LCAwLjAwNjU3NSwgMC4wMDY1NzcsIDAuMDA2NTgsIDAuMDA2NTc5LCAwLjAwNjU4IiwgXAotICAgICAgICAgICIwLjAwNjU4NCwgMC4wMDY2MjEsIDAuMDA2NjI2LCAwLjAwNjYyOSwgMC4wMDY2MywgMC4wMDY2MzEsIDAuMDA2NjMxIiwgXAotICAgICAgICAgICIwLjAwNjYzNSwgMC4wMDY2NjUsIDAuMDA2NjcxLCAwLjAwNjY3MiwgMC4wMDY2NzMsIDAuMDA2Njc0LCAwLjAwNjY3NCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUU4pICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC42NzUxOTc7Ci0gICAgZnVuY3Rpb24gOiAiUUJJTlQiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBub25fdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGZhbGxpbmdfZWRnZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTEyNzAxLCAwLjE5MDgwOCwgMC4yNTMzMzksIDAuMzMxNjMxLCAwLjQwOTkyMSwgMC40ODgyMDIsIDAuNTY2NDc4IiwgXAotICAgICAgICAgICIwLjEyMDczNywgMC4xOTg4NCwgMC4yNjE0MTYsIDAuMzM5NjU1LCAwLjQxODAxNiwgMC40OTYyMjcsIDAuNTc0NTMiLCBcCi0gICAgICAgICAgIjAuMTMwMTYxLCAwLjIwODI2NywgMC4yNzA4NzEsIDAuMzQ5MDksIDAuNDI3Mzg1LCAwLjUwNTY2MywgMC41ODM5MzgiLCBcCi0gICAgICAgICAgIjAuMTM4MDk2LCAwLjIxNjIwMywgMC4yNzg4MDUsIDAuMzU3MDI5LCAwLjQzNTMyMywgMC41MTM1OTgsIDAuNTkxODczIiwgXAotICAgICAgICAgICIwLjE0NDQ5LCAwLjIyMjU3NCwgMC4yODUxMjMsIDAuMzYzNCwgMC40NDE3MTksIDAuNTE5OTgzLCAwLjU5ODI4IiwgXAotICAgICAgICAgICIwLjE1MjY3MywgMC4yMzA3NzksIDAuMjkzMzY1LCAwLjM3MTYwNywgMC40NDk5MjYsIDAuNTI4MTcxLCAwLjYwNjQyOCIsIFwKLSAgICAgICAgICAiMC4xNTg3NzEsIDAuMjM2ODgsIDAuMjk5NDU0LCAwLjM3NzY5OSwgMC40NTU5NiwgMC41MzQyMzIsIDAuNjEyNTMxIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0MDAyNSwgMC4yMDUxMDEsIDAuMzM4MTI1LCAwLjUwNTY3NSwgMC42NzIyOTMsIDAuODM5MDY5LCAxLjAwNTUiLCBcCi0gICAgICAgICAgIjAuMDQwMDU2LCAwLjIwNTExMywgMC4zMzg2ODUsIDAuNTA1MywgMC42NzE4NjksIDAuODM4OTk0LCAxLjAwNTM1IiwgXAotICAgICAgICAgICIwLjA0MDAyOSwgMC4yMDUxMDYsIDAuMzM4Njc5LCAwLjUwNTY2OCwgMC42NzIyNTIsIDAuODM5MDI2LCAxLjAwNTUzIiwgXAotICAgICAgICAgICIwLjA0MDAyNywgMC4yMDUxMDcsIDAuMzM4NjgxLCAwLjUwNTI4LCAwLjY3MjIwNSwgMC44MzkwMTYsIDEuMDA1NTQiLCBcCi0gICAgICAgICAgIjAuMDQwMDM4LCAwLjIwNDk1MSwgMC4zMzgzNDksIDAuNTA1Mjk1LCAwLjY3MTk2MSwgMC44Mzg4MjksIDEuMDA1MjIiLCBcCi0gICAgICAgICAgIjAuMDQwMDIsIDAuMjA0OTc0LCAwLjMzODY2OSwgMC41MDUzNTksIDAuNjcyMDQ3LCAwLjgzODU3NiwgMS4wMDU4OSIsIFwKLSAgICAgICAgICAiMC4wNDAyNDQsIDAuMjA1MTM2LCAwLjMzODY2NCwgMC41MDU3MSwgMC42NzIxNzYsIDAuODM5ODE5LCAxLjAwNTU4Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEyNTEzOSwgMC4yMDEwODksIDAuMjYxODU3LCAwLjMzNzgyMywgMC40MTM4MjUsIDAuNDg5ODI3LCAwLjU2NTgyNCIsIFwKLSAgICAgICAgICAiMC4xMzMyNTksIDAuMjA5MjIsIDAuMjY5OTk3LCAwLjM0NTkyNywgMC40MjE5NjMsIDAuNDk3OTYsIDAuNTczOTczIiwgXAotICAgICAgICAgICIwLjE0MjcxMywgMC4yMTg2NzIsIDAuMjc5NDUsIDAuMzU1NDM0LCAwLjQzMTM4NywgMC41MDc0MDIsIDAuNTgzNDEzIiwgXAotICAgICAgICAgICIwLjE1MDYzMywgMC4yMjY1OTgsIDAuMjg3MzcxLCAwLjM2MzM0NiwgMC40MzkyNywgMC41MTUzMywgMC41OTEzNTEiLCBcCi0gICAgICAgICAgIjAuMTU2ODMxLCAwLjIzMjgwNCwgMC4yOTM1ODEsIDAuMzY5NTU2LCAwLjQ0NTU2NCwgMC41MjE1NDksIDAuNTk3NTUzIiwgXAotICAgICAgICAgICIwLjE2NTAwMywgMC4yNDA5OTMsIDAuMzAxNzc2LCAwLjM3Nzc0OCwgMC40NTM3MzcsIDAuNTI5NzI0LCAwLjYwNTc1IiwgXAotICAgICAgICAgICIwLjE3MDksIDAuMjQ2ODgzLCAwLjMwNzY0MywgMC4zODM2MjQsIDAuNDU5NjA5LCAwLjUzNTYwNCwgMC42MTE2MzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM4MzI1LCAwLjE5NDEwNywgMC4zMTk5NDgsIDAuNDc4MTk4LCAwLjYzNjM4OCwgMC43OTI3NDQsIDAuOTUxMzgxIiwgXAotICAgICAgICAgICIwLjAzODMzNSwgMC4xOTQwNTgsIDAuMzE5Nzc2LCAwLjQ3Nzg0OCwgMC42MzYzMjgsIDAuNzk0NDY3LCAwLjk1MjQ2OCIsIFwKLSAgICAgICAgICAiMC4wMzgzNDIsIDAuMTk0MDcxLCAwLjMyMDI3OCwgMC40NzgzMDgsIDAuNjM2MTU2LCAwLjc5NDMxOSwgMC45NTEzNTIiLCBcCi0gICAgICAgICAgIjAuMDM4MzMyLCAwLjE5NDA3MiwgMC4zMjAxNDIsIDAuNDc3OTA1LCAwLjYzNTc0NywgMC43OTQzMjMsIDAuOTUxNTA3IiwgXAotICAgICAgICAgICIwLjAzODMwOCwgMC4xOTM5MTEsIDAuMzE5OTc2LCAwLjQ3ODMxOSwgMC42MzUyMDYsIDAuNzk0NDU3LCAwLjk1MTQ5MyIsIFwKLSAgICAgICAgICAiMC4wMzgzNDcsIDAuMTk0MDY2LCAwLjMxOTg1OSwgMC40NzgyOTQsIDAuNjM1NzI2LCAwLjc5NDMxMiwgMC45NTE1NDciLCBcCi0gICAgICAgICAgIjAuMDM4MzgsIDAuMTk0MTAzLCAwLjMyMDE1NiwgMC40NzgyNTUsIDAuNjM2MjI1LCAwLjc5NDI5LCAwLjk1MTQ4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiBwcmVzZXQ7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE0NDA4MSwgMC4yMjIxNSwgMC4yODQ3MTksIDAuMzYyOTgsIDAuNDQxMywgMC41MTk2MzYsIDAuNTk3ODA5IiwgXAotICAgICAgICAgICIwLjE1MjA1MSwgMC4yMzAwODYsIDAuMjkyNjg4LCAwLjM3MDkyMSwgMC40NDkyMjEsIDAuNTI3NDkyLCAwLjYwNTg1NSIsIFwKLSAgICAgICAgICAiMC4xNjA0NiwgMC4yMzg1MTksIDAuMzAxMDc3LCAwLjM3OTM0OSwgMC40NTc2NDgsIDAuNTM1OTQ3LCAwLjYxMzk2OSIsIFwKLSAgICAgICAgICAiMC4xNjcxNzEsIDAuMjQ1MjQzLCAwLjMwNzgzLCAwLjM4NjA3MSwgMC40NjQzNzUsIDAuNTQyNjU2LCAwLjYyMDkxIiwgXAotICAgICAgICAgICIwLjE3MjM1OSwgMC4yNTAzOTMsIDAuMzEzMDEyLCAwLjM5MTI1MywgMC40Njk1NzIsIDAuNTQ3OTE0LCAwLjYyNjA3NiIsIFwKLSAgICAgICAgICAiMC4xNzkxNTksIDAuMjU3MjMzLCAwLjMxOTg0LCAwLjM5ODA3MiwgMC40NzYzODksIDAuNTU0NzQsIDAuNjMyODEzIiwgXAotICAgICAgICAgICIwLjE4NDM0LCAwLjI2MjQxOSwgMC4zMjUsIDAuNDAzMjczLCAwLjQ4MTUwOSwgMC41NTk4MTksIDAuNjM4MTYzIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0MDA5OSwgMC4yMDUxNDEsIDAuMzM4ODM1LCAwLjUwNTM4NSwgMC42NzE5NjgsIDAuODQwMDc2LCAxLjAwNTYiLCBcCi0gICAgICAgICAgIjAuMDQwMTA4LCAwLjIwNTEyOSwgMC4zMzg4NDksIDAuNTA1ODc5LCAwLjY3MjkxOSwgMC44NDAxOTgsIDEuMDA3MDMiLCBcCi0gICAgICAgICAgIjAuMDQwMDg1LCAwLjIwNTE1MSwgMC4zMzg4MjUsIDAuNTA1MzE0LCAwLjY3MzA5MiwgMC44Mzg3NzMsIDEuMDA3MDQiLCBcCi0gICAgICAgICAgIjAuMDQwMSwgMC4yMDUxMjUsIDAuMzM4ODEyLCAwLjUwNTM2NywgMC42NzE5NDUsIDAuODM4ODk5LCAxLjAwNjk5IiwgXAotICAgICAgICAgICIwLjA0MDEwMSwgMC4yMDQ5NTgsIDAuMzM4ODMxLCAwLjUwNTMzNSwgMC42NzE4NzgsIDAuODM4ODA0LCAxLjAwNzAzIiwgXAotICAgICAgICAgICIwLjA0MDA4NCwgMC4yMDUxMjksIDAuMzM4ODIzLCAwLjUwNTkwOCwgMC42NzIyMDMsIDAuODQwMTQ4LCAxLjAwNzAzIiwgXAotICAgICAgICAgICIwLjA0MDEwNiwgMC4yMDUxMjUsIDAuMzM4ODAyLCAwLjUwNTk0LCAwLjY3MjkyLCAwLjgzODg0OCwgMS4wMDY5MyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogY2xlYXI7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEyOTE4NSwgMC4yMDcyMTgsIDAuMjY5NzksIDAuMzQ4MDgyLCAwLjQyNjM5OCwgMC41MDQ3NCwgMC41ODI5MTciLCBcCi0gICAgICAgICAgIjAuMTM1ODU0LCAwLjIxMzk0MSwgMC4yNzY1NDgsIDAuMzU0NzY2LCAwLjQzMzA4NiwgMC41MTEzNjEsIDAuNTg5NyIsIFwKLSAgICAgICAgICAiMC4xNDMzODEsIDAuMjIxNTIyLCAwLjI4NDE0MiwgMC4zNjIzNSwgMC40NDA2MjMsIDAuNTE4OTI0LCAwLjU5NzI3IiwgXAotICAgICAgICAgICIwLjE1MDg0OSwgMC4yMjg5MDIsIDAuMjkxNDY0LCAwLjM2OTczNSwgMC40NDc4ODEsIDAuNTI2MzI5LCAwLjYwNDQyOSIsIFwKLSAgICAgICAgICAiMC4xNTc3OTMsIDAuMjM1OTM3LCAwLjI5ODU1MywgMC4zNzY3OCwgMC40NTUwMDIsIDAuNTMzMjgsIDAuNjExNjQ4IiwgXAotICAgICAgICAgICIwLjE2Nzc1NCwgMC4yNDU4NDQsIDAuMzA4NDMsIDAuMzg2NzAzLCAwLjQ2NTAxMSwgMC41NDMyMjksIDAuNjIxNjA2IiwgXAotICAgICAgICAgICIwLjE3NTUwOSwgMC4yNTM1ODksIDAuMzE2MTY5LCAwLjM5NDQwOCwgMC40NzI3MDIsIDAuNTUwOTQsIDAuNjI5MjIzIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0MDEwMiwgMC4yMDUxMzIsIDAuMzM4ODIxLCAwLjUwNTM4NCwgMC42NzE5NzcsIDAuODQwMDY5LCAxLjAwNTY0IiwgXAotICAgICAgICAgICIwLjA0MDEwMiwgMC4yMDQ5NjYsIDAuMzM4ODIyLCAwLjUwNTc3OCwgMC42NzI5NTUsIDAuODQwMDczLCAxLjAwNTYzIiwgXAotICAgICAgICAgICIwLjA0MDEwMiwgMC4yMDUxMjQsIDAuMzM4ODE1LCAwLjUwNTkzNCwgMC42NzI5NjcsIDAuODM4ODg3LCAxLjAwNTYiLCBcCi0gICAgICAgICAgIjAuMDQwMDg3LCAwLjIwNTEyNSwgMC4zMzg4MTMsIDAuNTA1MzMsIDAuNjcxODYsIDAuODM5ODgyLCAxLjAwNjkzIiwgXAotICAgICAgICAgICIwLjA0MDA3MiwgMC4yMDUxMjMsIDAuMzM4ODM5LCAwLjUwNTMzOSwgMC42NzIyNDIsIDAuODM5ODgsIDEuMDA3MTgiLCBcCi0gICAgICAgICAgIjAuMDQwMTIyLCAwLjIwNTA5OCwgMC4zMzg3ODYsIDAuNTA1OTQ1LCAwLjY3MTkwOCwgMC44Mzg5NTcsIDEuMDA2MDIiLCBcCi0gICAgICAgICAgIjAuMDQwMzY5LCAwLjIwNTA5MSwgMC4zMzg3ODIsIDAuNTA1Nzc2LCAwLjY3Mjc4MSwgMC44MzkyNDksIDEuMDA2MDQiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTA2MjA1LCAwLjE4MjE4NiwgMC4yNDI5ODksIDAuMzE4OTQ5LCAwLjM5NTAwMiwgMC40NzA5OTUsIDAuNTQ2OTg2IiwgXAotICAgICAgICAgICIwLjExNDA1NSwgMC4xOTAwMjgsIDAuMjUwNzY2LCAwLjMyNjcyOCwgMC40MDI2OTgsIDAuNDc4Nzg0LCAwLjU1NDgxNyIsIFwKLSAgICAgICAgICAiMC4xMjQxMDIsIDAuMjAwMTE3LCAwLjI2MDkwNywgMC4zMzY4NzksIDAuNDEyOTA2LCAwLjQ4ODkzNCwgMC41NjQ5NDkiLCBcCi0gICAgICAgICAgIjAuMTMzMjA2LCAwLjIwOTE3NiwgMC4yNjk5ODIsIDAuMzQ1OTQ0LCAwLjQyMjAwNiwgMC40OTc5OTcsIDAuNTczOTYyIiwgXAotICAgICAgICAgICIwLjE0MTAzNywgMC4yMTcwMTYsIDAuMjc3ODAxLCAwLjM1MzgwNywgMC40Mjk2OTMsIDAuNTA1ODUzLCAwLjU4MTgzMyIsIFwKLSAgICAgICAgICAiMC4xNTE0NTIsIDAuMjI3NDE5LCAwLjI4ODE5MSwgMC4zNjQxNzUsIDAuNDQwMTksIDAuNTE2MjQ5LCAwLjU5MjE2NSIsIFwKLSAgICAgICAgICAiMC4xNTkyMTMsIDAuMjM1MTY1LCAwLjI5NTk1NiwgMC4zNzE5MTksIDAuNDQ3OTkxLCAwLjUyMzk0NSwgMC41OTk5NDMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM4MzEzLCAwLjE5NDEyNCwgMC4zMjA0NTksIDAuNDc4NDc0LCAwLjYzNjM5MywgMC43OTQzNTMsIDAuOTUyNDk1IiwgXAotICAgICAgICAgICIwLjAzODMwMywgMC4xOTM5NzIsIDAuMzIwNDc2LCAwLjQ3ODUwMiwgMC42MzY0ODcsIDAuNzk0NDY4LCAwLjk1MjQ4NSIsIFwKLSAgICAgICAgICAiMC4wMzgzMDgsIDAuMTk0MTU5LCAwLjMyMDA2OSwgMC40NzgzOTcsIDAuNjM2NDY4LCAwLjc5NDQ2NSwgMC45NTI0NzMiLCBcCi0gICAgICAgICAgIjAuMDM4MzExLCAwLjE5NDE1OSwgMC4zMjA0NzEsIDAuNDc4NDA1LCAwLjYzNjQ1MywgMC43OTQ0NzEsIDAuOTUyNDQ1IiwgXAotICAgICAgICAgICIwLjAzODMxNiwgMC4xOTQxNDksIDAuMzIwNDc1LCAwLjQ3ODQyNiwgMC42MzY0NSwgMC43OTQ0NzEsIDAuOTUyNDg2IiwgXAotICAgICAgICAgICIwLjAzODMzNSwgMC4xOTQxMTksIDAuMzIwNDIsIDAuNDc4MzkzLCAwLjYzNjM0OSwgMC43OTQzNDgsIDAuOTUyMzI4IiwgXAotICAgICAgICAgICIwLjAzODUzMiwgMC4xOTQwNjYsIDAuMzIwMzg5LCAwLjQ3ODM1LCAwLjYzNjM0MSwgMC43OTQyNzgsIDAuOTUyMjk5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0tOIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDc1MDksIDAuMDA3NTQ1LCAwLjAwNzU0OSwgMC4wMDc1NTIsIDAuMDA3NTUzLCAwLjAwNzU1NCwgMC4wMDc1NTQiLCBcCi0gICAgICAgICAgIjAuMDA3NTAyLCAwLjAwNzUzNywgMC4wMDc1NDIsIDAuMDA3NTQ2LCAwLjAwNzU0NiwgMC4wMDc1NDYsIDAuMDA3NTQ1IiwgXAotICAgICAgICAgICIwLjAwNzUzNywgMC4wMDc1NzMsIDAuMDA3NTc4LCAwLjAwNzU4MSwgMC4wMDc1ODEsIDAuMDA3NTgyLCAwLjAwNzU4MyIsIFwKLSAgICAgICAgICAiMC4wMDc1OTIsIDAuMDA3NjI4LCAwLjAwNzYzMSwgMC4wMDc2MzUsIDAuMDA3NjM3LCAwLjAwNzYzNywgMC4wMDc2MzciLCBcCi0gICAgICAgICAgIjAuMDA3NjQ3LCAwLjAwNzY4MiwgMC4wMDc2ODcsIDAuMDA3Njg5LCAwLjAwNzY4OSwgMC4wMDc2OTEsIDAuMDA3Njg5IiwgXAotICAgICAgICAgICIwLjAwNzczNCwgMC4wMDc3NjgsIDAuMDA3Nzc0LCAwLjAwNzc3NSwgMC4wMDc3NzcsIDAuMDA3Nzc3LCAwLjAwNzc3OCIsIFwKLSAgICAgICAgICAiMC4wMDc4MTYsIDAuMDA3ODQ5LCAwLjAwNzg1NCwgMC4wMDc4NTYsIDAuMDA3ODU3LCAwLjAwNzg1OCwgMC4wMDc4NTgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDc5NywgMC4wMDc5OTYsIDAuMDA4LCAwLjAwODAwMSwgMC4wMDgwMDIsIDAuMDA4MDAyLCAwLjAwODAwMyIsIFwKLSAgICAgICAgICAiMC4wMDc5NjgsIDAuMDA3OTk0LCAwLjAwNzk5OCwgMC4wMDc5OTksIDAuMDA4LCAwLjAwODAwMSwgMC4wMDgwMDEiLCBcCi0gICAgICAgICAgIjAuMDA4MDE3LCAwLjAwODA0MywgMC4wMDgwNDYsIDAuMDA4MDQ4LCAwLjAwODA0OCwgMC4wMDgwNDksIDAuMDA4MDUiLCBcCi0gICAgICAgICAgIjAuMDA4MDc3LCAwLjAwODEwNCwgMC4wMDgxMDcsIDAuMDA4MTA5LCAwLjAwODEwOSwgMC4wMDgxMSwgMC4wMDgxMSIsIFwKLSAgICAgICAgICAiMC4wMDgxMywgMC4wMDgxNTksIDAuMDA4MTYyLCAwLjAwODE2NSwgMC4wMDgxNjUsIDAuMDA4MTY0LCAwLjAwODE2NiIsIFwKLSAgICAgICAgICAiMC4wMDgyMjUsIDAuMDA4MjUyLCAwLjAwODI1NSwgMC4wMDgyNTgsIDAuMDA4MjU4LCAwLjAwODI1OCwgMC4wMDgyNTkiLCBcCi0gICAgICAgICAgIjAuMDA4MzIyLCAwLjAwODM0NiwgMC4wMDgzNDksIDAuMDA4MzUxLCAwLjAwODM1MiwgMC4wMDgzNTMsIDAuMDA4MzUzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUk4iOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwODQ1MiwgMC4wMDg0ODMsIDAuMDA4NDg3LCAwLjAwODQ4OSwgMC4wMDg0OSwgMC4wMDg0OSwgMC4wMDg0OTEiLCBcCi0gICAgICAgICAgIjAuMDA4NDUsIDAuMDA4NDc4LCAwLjAwODQ4OSwgMC4wMDg0ODUsIDAuMDA4NDg2LCAwLjAwODQ4NCwgMC4wMDg0ODciLCBcCi0gICAgICAgICAgIjAuMDA4NDgsIDAuMDA4NTEzLCAwLjAwODUxNywgMC4wMDg1MiwgMC4wMDg1MjMsIDAuMDA4NTI2LCAwLjAwODUyMiIsIFwKLSAgICAgICAgICAiMC4wMDg1MTksIDAuMDA4NTUsIDAuMDA4NTU0LCAwLjAwODU1NiwgMC4wMDg1NTcsIDAuMDA4NTU4LCAwLjAwODU1OSIsIFwKLSAgICAgICAgICAiMC4wMDg1NzEsIDAuMDA4NjAyLCAwLjAwODYwNiwgMC4wMDg2MDgsIDAuMDA4NjA5LCAwLjAwODYwOSwgMC4wMDg2MTQiLCBcCi0gICAgICAgICAgIjAuMDA4NjY2LCAwLjAwODY5OSwgMC4wMDg3MDQsIDAuMDA4NzA2LCAwLjAwODcwNywgMC4wMDg3MDcsIDAuMDA4NzA1IiwgXAotICAgICAgICAgICIwLjAwODc1MiwgMC4wMDg3ODksIDAuMDA4NzkzLCAwLjAwODc5NSwgMC4wMDg3OTcsIDAuMDA4Nzk3LCAwLjAwODc5NyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihzY2FsYXIpIHsKLSAgICAgICAgdmFsdWVzKCIwIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiU04iOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjU2NSwgMC4wMDY1OTYsIDAuMDA2NiwgMC4wMDY2MDIsIDAuMDA2NjAzLCAwLjAwNjYwMywgMC4wMDY2MDQiLCBcCi0gICAgICAgICAgIjAuMDA2NTMyLCAwLjAwNjU2NSwgMC4wMDY1NjksIDAuMDA2NTcxLCAwLjAwNjU3MywgMC4wMDY1NjgsIDAuMDA2NTc0IiwgXAotICAgICAgICAgICIwLjAwNjUyLCAwLjAwNjU1NCwgMC4wMDY1NTksIDAuMDA2NTYxLCAwLjAwNjU2MiwgMC4wMDY1NjMsIDAuMDA2NTYzIiwgXAotICAgICAgICAgICIwLjAwNjUyNCwgMC4wMDY1NTcsIDAuMDA2NTYyLCAwLjAwNjU2NCwgMC4wMDY1NjUsIDAuMDA2NTYxLCAwLjAwNjU2NyIsIFwKLSAgICAgICAgICAiMC4wMDY1MzUsIDAuMDA2NTcsIDAuMDA2NTc1LCAwLjAwNjU3NywgMC4wMDY1OCwgMC4wMDY1NzksIDAuMDA2NTgiLCBcCi0gICAgICAgICAgIjAuMDA2NTg0LCAwLjAwNjYyMSwgMC4wMDY2MjYsIDAuMDA2NjI5LCAwLjAwNjYzLCAwLjAwNjYzMSwgMC4wMDY2MzEiLCBcCi0gICAgICAgICAgIjAuMDA2NjM1LCAwLjAwNjY2NSwgMC4wMDY2NzEsIDAuMDA2NjcyLCAwLjAwNjY3MywgMC4wMDY2NzQsIDAuMDA2Njc0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA3OTYzLCAwLjAwNzk4NywgMC4wMDc5ODksIDAuMDA3OTksIDAuMDA3OTg5LCAwLjAwNzk5LCAwLjAwNzk5IiwgXAotICAgICAgICAgICIwLjAwNzk0OSwgMC4wMDc5NzMsIDAuMDA3OTc1LCAwLjAwNzk3NiwgMC4wMDc5NzYsIDAuMDA3OTc3LCAwLjAwNzk3NiIsIFwKLSAgICAgICAgICAiMC4wMDc5NjYsIDAuMDA3OTksIDAuMDA3OTkxLCAwLjAwNzk5MywgMC4wMDc5OTQsIDAuMDA3OTkzLCAwLjAwNzk5MyIsIFwKLSAgICAgICAgICAiMC4wMDc5OTcsIDAuMDA4MDI1LCAwLjAwODAyOCwgMC4wMDgwMjksIDAuMDA4MDI5LCAwLjAwODAyOSwgMC4wMDgwMyIsIFwKLSAgICAgICAgICAiMC4wMDgwNTIsIDAuMDA4MDc4LCAwLjAwODA4LCAwLjAwODA4MSwgMC4wMDgwODIsIDAuMDA4MDgyLCAwLjAwODA4MSIsIFwKLSAgICAgICAgICAiMC4wMDgxNjgsIDAuMDA4MTg4LCAwLjAwODE5LCAwLjAwODE5MSwgMC4wMDgxOTEsIDAuMDA4MTkxLCAwLjAwODE5MSIsIFwKLSAgICAgICAgICAiMC4wMDgyODUsIDAuMDA4MzA2LCAwLjAwODMwOCwgMC4wMDgzMDksIDAuMDA4MzEsIDAuMDA4MzExLCAwLjAwODMxIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihSTikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjEwMDg3OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYxMDAyOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDYxMDA4NzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA3ODcsIDAuMDAwNzgzLCAwLjAwMDg0OSwgMC4wMDA5NDUsIDAuMDAxMDYzLCAwLjAwMTI3OSwgMC4wMDE0NDQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDM0MTgsIDAuMDAzNDE3LCAwLjAwMzQ3OSwgMC4wMDM1NjksIDAuMDAzNjksIDAuMDAzOTIzLCAwLjAwNDExIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRCZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjE0NDA4MSwgMC4xNTIwNTEsIDAuMTYwNDYsIDAuMTY3MTcxLCAwLjE3MjM1OSwgMC4xNzkxNTksIDAuMTg0MzQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0tOIjsKLSAgICAgIHRpbWluZ190eXBlIDogcmVjb3ZlcnlfZmFsbGluZzsKLSAgICAgIHdoZW4gOiAiRCZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzFfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChyZWNvdmVyeV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzEyNSwgMC4wMjYyNSwgMC4wMTM3NSwgMC4wMDc1LCAwLjAwMTI1LCAtMC4wMDg3NSwgLTAuMDE3NSIsIFwKLSAgICAgICAgICAiMC4wNDI1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMTI1LCAwLjAwNjI1LCAtMC4wMDM3NSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMDQ4NzUsIDAuMDQzNzUsIDAuMDMxMjUsIDAuMDI1LCAwLjAxODc1LCAwLjAwODc1LCAwIiwgXAotICAgICAgICAgICIwLjA1NSwgMC4wNSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMTUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMDYxMjUsIDAuMDU2MjUsIDAuMDQzNzUsIDAuMDMxMjUsIDAuMDI1LCAwLjAyMTI1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMDcxMjUsIDAuMDYsIDAuMDQ3NSwgMC4wNDEyNSwgMC4wMzUsIDAuMDI1LCAwLjAyMjUiLCBcCi0gICAgICAgICAgIjAuMDczNzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzMzc1LCAwLjAyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJlY292ZXJ5X3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUQiOwotICAgICAgc2RmX2NvbmQgOiAiRCA9PSAxJ2IwIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChyZWNvdmVyeV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNSwgMC4wNjEyNSwgMC4wNjc1LCAwLjA3Mzc1LCAwLjA4LCAwLjA5LCAwLjA5ODc1IiwgXAotICAgICAgICAgICIwLjA0NSwgMC4wNSwgMC4wNjI1LCAwLjA2ODc1LCAwLjA3NSwgMC4wODUsIDAuMDkzNzUiLCBcCi0gICAgICAgICAgIjAuMDM4NzUsIDAuMDUsIDAuMDU2MjUsIDAuMDYyNSwgMC4wNjg3NSwgMC4wNzg3NSwgMC4wODc1IiwgXAotICAgICAgICAgICIwLjAzODc1LCAwLjA0Mzc1LCAwLjA1LCAwLjA2MjUsIDAuMDY4NzUsIDAuMDcyNSwgMC4wODEyNSIsIFwKLSAgICAgICAgICAiMC4wMzg3NSwgMC4wNDM3NSwgMC4wNSwgMC4wNTYyNSwgMC4wNjI1LCAwLjA3MjUsIDAuMDgxMjUiLCBcCi0gICAgICAgICAgIjAuMDM1LCAwLjA0LCAwLjA0NjI1LCAwLjA1MjUsIDAuMDU4NzUsIDAuMDY4NzUsIDAuMDc3NSIsIFwKLSAgICAgICAgICAiMC4wMzI1LCAwLjAzNzUsIDAuMDQzNzUsIDAuMDUsIDAuMDU2MjUsIDAuMDY2MjUsIDAuMDc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJlbW92YWxfZmFsbGluZzsKLSAgICAgIHdoZW4gOiAiRCZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzFfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChyZW1vdmFsX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLCAwLjAxMTI1LCAwLjAxNzUsIDAuMDIzNzUsIDAuMDMsIDAuMDQsIDAuMDQyNSIsIFwKLSAgICAgICAgICAiLTAuMDA1LCAwLCAwLjAxMjUsIDAuMDE4NzUsIDAuMDI1LCAwLjAyODc1LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjAxNzUsIC0wLjAwNjI1LCAwLCAwLjAwNjI1LCAwLjAxMjUsIDAuMDIyNSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLCAwLjAwNjI1LCAwLjAxNjI1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAxODc1LCAtMC4wMTI1LCAwLCAwLjAwNjI1LCAwLjAxLCAwLjAxODc1IiwgXAotICAgICAgICAgICItMC4wMzM3NSwgLTAuMDI4NzUsIC0wLjAxNjI1LCAtMC4wMSwgLTAuMDAzNzUsIDAuMDA2MjUsIDAuMDA4NzUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAtMC4wMDI1LCAwLjAwNjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTTikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNDQyMDg7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNDQyMDg7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNDQxMzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA1OTMsIDAuMDAwNTkzLCAwLjAwMDU5MywgMC4wMDA1OTIsIDAuMDAwNTkyLCAwLjAwMDU5MiwgMC4wMDA1OTIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA2MDEsIDAuMDAwNTk2LCAwLjAwMDU5NSwgMC4wMDA1OTQsIDAuMDAwNTk1LCAwLjAwMDU5NSwgMC4wMDA1OTUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiU04iOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFEJiFSTiI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fUk5fRVFfMCA9PSAxJ2IxIjsKLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjEwNjE4MiwgMC4xMTQwNTUsIDAuMTI0MTAyLCAwLjEzMzIwNSwgMC4xNDEwMzcsIDAuMTUxNDUyLCAwLjE1OTIxMyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDS04iOwotICAgICAgdGltaW5nX3R5cGUgOiByZWNvdmVyeV9mYWxsaW5nOwotICAgICAgd2hlbiA6ICIhRCZSTiI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fUk5fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChyZWNvdmVyeV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzEyNSwgMC4wMiwgMC4wMTM3NSwgMC4wMDEyNSwgMC4wMDEyNSwgLTAuMDA4NzUsIC0wLjAxNzUiLCBcCi0gICAgICAgICAgIjAuMDM2MjUsIDAuMDMxMjUsIDAuMDE4NzUsIDAuMDEyNSwgMC4wMDYyNSwgLTAuMDAzNzUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICIwLjA0MjUsIDAuMDM3NSwgMC4wMjUsIDAuMDE4NzUsIDAuMDEyNSwgMC4wMDI1LCAwIiwgXAotICAgICAgICAgICIwLjA1NSwgMC4wNDM3NSwgMC4wMzEyNSwgMC4wMjUsIDAuMDE4NzUsIDAuMDE1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICIwLjA2MTI1LCAwLjA1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDI1LCAwLjAyMTI1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMDcxMjUsIDAuMDYsIDAuMDUzNzUsIDAuMDQ3NSwgMC4wNDEyNSwgMC4wMzEyNSwgMC4wMjg3NSIsIFwKLSAgICAgICAgICAiMC4wOCwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1LCAwLjA0LCAwLjAzNzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0tOIjsKLSAgICAgIHRpbWluZ190eXBlIDogcmVtb3ZhbF9mYWxsaW5nOwotICAgICAgd2hlbiA6ICIhRCZSTiI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fUk5fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChyZW1vdmFsX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMjUsIDAuMDE3NSwgMC4wMywgMC4wMzYyNSwgMC4wNDI1LCAwLjA0NjI1LCAwLjA1NSIsIFwKLSAgICAgICAgICAiMC4wMDEyNSwgMC4wMTI1LCAwLjAxODc1LCAwLjAzMTI1LCAwLjAzMTI1LCAwLjA0MTI1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICItMC4wMDUsIDAuMDA2MjUsIDAuMDEyNSwgMC4wMjUsIDAuMDI1LCAwLjAzNSwgMC4wMzc1IiwgXAotICAgICAgICAgICItMC4wMDUsIDAsIDAuMDEyNSwgMC4wMTg3NSwgMC4wMjUsIDAuMDI4NzUsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDExMjUsIC0wLjAwNjI1LCAwLjAwNjI1LCAwLjAxMjUsIDAuMDE4NzUsIDAuMDI4NzUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjAxNSwgLTAuMDEsIDAuMDAyNSwgMC4wMDg3NSwgMC4wMTUsIDAuMDE4NzUsIDAuMDI3NSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLCAwLjAwNjI1LCAwLjAxNjI1LCAwLjAxODc1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBERkZRWDEgKgotICogLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChERkZRWDEpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC42OTg0OTU7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgZmYgKE4zMCxRQklOVCkgewotICAgIG5leHRfc3RhdGUgOiAiRCI7Ci0gICAgY2xvY2tlZF9vbiA6ICJDSyI7Ci0gIH0KLSAgcGluKENLKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2NTg1OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDY1ODU7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjU4MzY4OwotICAgIGNsb2NrIDogdHJ1ZTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDM1MjQsIDAuMDAzNTE0LCAwLjAwMzU5OCwgMC4wMDM2OTMsIDAuMDAzODIyLCAwLjAwNDA2OSwgMC4wMDQyMzMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDgxMjIsIDAuMDA4MTE3LCAwLjAwODE4NCwgMC4wMDgyODQsIDAuMDA4Mzk2LCAwLjAwODY1MSwgMC4wMDg3MzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFEIjsKLSAgICAgIHNkZl9jb25kIDogIkQgPT0gMSdiMCI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4xMDQxNzksIDAuMTEyMzg2LCAwLjEyMTY0NSwgMC4xMjkxMDIsIDAuMTM1MDQyLCAwLjE0Mjg1MywgMC4xNDg1NzgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjA3MDc4MSwgMC4wNzg5MTksIDAuMDg4MDc0LCAwLjA5NDk5LCAwLjEwMDM3LCAwLjEwNzU3NSwgMC4xMTI4NjEiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEQpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY3NDc1NDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2NzMzOTc7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjc0NzU0OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjY4MSwgMC4wMDI2NTMsIDAuMDAyNjg2LCAwLjAwMjczNCwgMC4wMDI4MTQsIDAuMDAyOTYsIDAuMDAzMTI3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzNDU1LCAwLjAwMzQzNSwgMC4wMDM0NTksIDAuMDAzNTEzLCAwLjAwMzU4NywgMC4wMDM3MDYsIDAuMDAzODQ1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDA2MjUsIC0wLjAwMTI1LCAtMC4wMDEyNSwgMC4wMDUsIDAuMDA1LCAwLjAwODc1LCAwLjAxMTI1IiwgXAotICAgICAgICAgICItMC4wMTc1LCAtMC4wMDYyNSwgLTAuMDA2MjUsIDAsIDAsIDAuMDAzNzUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTI1LCAtMC4wMTI1LCAtMC4wMDYyNSwgLTAuMDA2MjUsIC0wLjAwMjUsIDAiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDEyNSwgLTAuMDA2MjUsIC0wLjAwMjUsIDAiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMTI1LCAtMC4wMDg3NSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjAzMzc1LCAtMC4wMjg3NSwgLTAuMDIyNSwgLTAuMDIyNSwgLTAuMDE2MjUsIC0wLjAxMjUsIC0wLjAxIiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDIxMjUsIC0wLjAxMjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMjUsIDAuMDIzNzUsIDAuMDMsIDAuMDM2MjUsIDAuMDQyNSwgMC4wNDYyNSwgMC4wNTUiLCBcCi0gICAgICAgICAgIjAuMDA3NSwgMC4wMTg3NSwgMC4wMjUsIDAuMDMxMjUsIDAuMDM3NSwgMC4wNDEyNSwgMC4wNSIsIFwKLSAgICAgICAgICAiMC4wMDEyNSwgMC4wMTI1LCAwLjAxODc1LCAwLjAyNSwgMC4wMzEyNSwgMC4wNDEyNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4wMDEyNSwgMC4wMDYyNSwgMC4wMTg3NSwgMC4wMjUsIDAuMDMxMjUsIDAuMDM1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjAwMTI1LCAwLjAwNjI1LCAwLjAxMjUsIDAuMDI1LCAwLjAyNSwgMC4wMzUsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDAyNSwgMC4wMDI1LCAwLjAxNSwgMC4wMjEyNSwgMC4wMjc1LCAwLjAzMTI1LCAwLjAzMzc1IiwgXAotICAgICAgICAgICItMC4wMDUsIDAsIDAuMDEyNSwgMC4wMTg3NSwgMC4wMjUsIDAuMDI4NzUsIDAuMDM3NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjUsIDAuMDIsIDAuMDEzNzUsIDAuMDA3NSwgMC4wMDc1LCAwLjAwMzc1LCAwLjAwMTI1IiwgXAotICAgICAgICAgICIwLjAzLCAwLjAyNSwgMC4wMTg3NSwgMC4wMTg3NSwgMC4wMTI1LCAwLjAwODc1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICIwLjA0MjUsIDAuMDMxMjUsIDAuMDI1LCAwLjAyNSwgMC4wMTg3NSwgMC4wMTUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4wNDI1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDI1LCAwLjAyNSwgMC4wMjEyNSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4wNDg3NSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMjEyNSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4wNTg3NSwgMC4wNDc1LCAwLjA0MTI1LCAwLjAzNSwgMC4wMzUsIDAuMDMxMjUsIDAuMDI4NzUiLCBcCi0gICAgICAgICAgIjAuMDYxMjUsIDAuMDU2MjUsIDAuMDQzNzUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzM3NSwgMC4wMzEyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMjUsIDAuMDAxMjUsIC0wLjAwNSwgLTAuMDExMjUsIC0wLjAxNzUsIC0wLjAyNzUsIC0wLjAzIiwgXAotICAgICAgICAgICIwLjAxNzUsIDAuMDA2MjUsIDAsIC0wLjAwNjI1LCAtMC4wMTI1LCAtMC4wMjI1LCAtMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMDIzNzUsIDAuMDEyNSwgMC4wMDYyNSwgMCwgLTAuMDA2MjUsIC0wLjAxNjI1LCAtMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4wMywgMC4wMTg3NSwgMC4wMTI1LCAwLCAwLCAtMC4wMSwgLTAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMDM2MjUsIDAuMDI1LCAwLjAxMjUsIDAuMDA2MjUsIDAsIC0wLjAxLCAtMC4wMTI1IiwgXAotICAgICAgICAgICIwLjA0LCAwLjAyODc1LCAwLjAyMjUsIDAuMDEsIDAuMDAzNzUsIDAsIC0wLjAwODc1IiwgXAotICAgICAgICAgICIwLjA0MjUsIDAuMDMxMjUsIDAuMDI1LCAwLjAxODc1LCAwLjAxMjUsIDAuMDAyNSwgLTAuMDA2MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFEpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4zNDIxMTc7Ci0gICAgZnVuY3Rpb24gOiAiTjMwIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBub25fdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJpc2luZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTQ3ODcsIDAuMTEzMzMxLCAwLjIxODU2NiwgMC4zMTE1MTcsIDAuNDM1NTI1LCAwLjY4MzYxLCAwLjgzODczIiwgXAotICAgICAgICAgICIwLjEwMjk1NCwgMC4xMjE1MDMsIDAuMjI2NzYyLCAwLjMxOTY4NiwgMC40NDM3MDYsIDAuNjkxODE2LCAwLjg0Njg1IiwgXAotICAgICAgICAgICIwLjExMjE2NiwgMC4xMzA3MTcsIDAuMjM1OTc2LCAwLjMyODg5OSwgMC40NTI5MTUsIDAuNzAxMDE0LCAwLjg1NTk4OSIsIFwKLSAgICAgICAgICAiMC4xMTk0OTEsIDAuMTM4MDQ4LCAwLjI0MzI1OSwgMC4zMzYyMSwgMC40NjAyMzcsIDAuNzA4MzA5LCAwLjg2MzQ5NSIsIFwKLSAgICAgICAgICAiMC4xMjUzMzksIDAuMTQzODk2LCAwLjI0OTE2NiwgMC4zNDIwNzYsIDAuNDY2MDcsIDAuNzE0MTU5LCAwLjg2OTIwNiIsIFwKLSAgICAgICAgICAiMC4xMzMxNjcsIDAuMTUxNzM0LCAwLjI1Njk2NywgMC4zNDk5MDcsIDAuNDczODkxLCAwLjcyMTk2NiwgMC44NzY5OTgiLCBcCi0gICAgICAgICAgIjAuMTM4NzMzLCAwLjE1NzI0NywgMC4yNjI0NjksIDAuMzU1NDkzLCAwLjQ3OTQyOCwgMC43Mjc0OTQsIDAuODgyNTM1Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3MTMzNSwgMC4xMDk5NjcsIDAuMzMxMTM5LCAwLjUyNzA0NywgMC43ODkwMzgsIDEuMzEwNjcsIDEuNjM2MzciLCBcCi0gICAgICAgICAgIjAuMDcxMzMzLCAwLjEwOTk2LCAwLjMzMTEwOSwgMC41MjcwMjksIDAuNzg4MjI1LCAxLjMxMDIzLCAxLjYzNTg3IiwgXAotICAgICAgICAgICIwLjA3MTMzNywgMC4xMDk5NTgsIDAuMzMxMDk3LCAwLjUyNzA0OSwgMC43ODgyMDksIDEuMzEwMTIsIDEuNjM4NTMiLCBcCi0gICAgICAgICAgIjAuMDcxMjksIDAuMTA5OTYsIDAuMzMxNTU3LCAwLjUyNzc0OSwgMC43ODgxODgsIDEuMzA5NjQsIDEuNjM2MjEiLCBcCi0gICAgICAgICAgIjAuMDcxMzQ3LCAwLjEwOTkzNSwgMC4zMzExMDcsIDAuNTI3MDEzLCAwLjc4ODE2MywgMS4zMDk2MywgMS42MzY3MSIsIFwKLSAgICAgICAgICAiMC4wNzEzMDEsIDAuMTA5NzkxLCAwLjMzMTU1LCAwLjUyNzA2OSwgMC43ODgyNzYsIDEuMzEwMzUsIDEuNjM3MjEiLCBcCi0gICAgICAgICAgIjAuMDcxNDgxLCAwLjEwOTc3NiwgMC4zMzEyNzQsIDAuNTI2ODQ2LCAwLjc4ODkwNiwgMS4zMTA3MSwgMS42MzcwOSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDQxNzksIDAuMTIyMzI5LCAwLjIyNDk0NiwgMC4zMTU0MTEsIDAuNDM2MDYxLCAwLjY3NzI1NywgMC44MjgwMzciLCBcCi0gICAgICAgICAgIjAuMTEyMzg2LCAwLjEzMDUzNiwgMC4yMzMxMjYsIDAuMzIzNjQ2LCAwLjQ0NDI1OSwgMC42ODU0MjIsIDAuODM2MjMiLCBcCi0gICAgICAgICAgIjAuMTIxNjQ1LCAwLjEzOTc5NSwgMC4yNDI0MTgsIDAuMzMyODU2LCAwLjQ1MzUxOCwgMC42OTQ3MDksIDAuODQ1NDg4IiwgXAotICAgICAgICAgICIwLjEyOTEwMiwgMC4xNDcyNTQsIDAuMjQ5ODcyLCAwLjM0MDMxLCAwLjQ2MDk3MiwgMC43MDIyMTcsIDAuODUyOTQ0IiwgXAotICAgICAgICAgICIwLjEzNTA0MiwgMC4xNTMxOSwgMC4yNTU3ODMsIDAuMzQ2Mjc2LCAwLjQ2Njg5OSwgMC43MDgxMSwgMC44NTg4NzMiLCBcCi0gICAgICAgICAgIjAuMTQyODUzLCAwLjE2MDk4MywgMC4yNjM1NTcsIDAuMzU0MDM2LCAwLjQ3NDYzLCAwLjcxNTg5MiwgMC44NjY2MyIsIFwKLSAgICAgICAgICAiMC4xNDg1NzgsIDAuMTY2NzMxLCAwLjI2OTQxMSwgMC4zNTk5MjUsIDAuNDgwMzY1LCAwLjcyMTU5MSwgMC44NzI1ODIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY4MDQsIDAuMTA0NjQ4LCAwLjMxNDcxNCwgMC41MDE5MTUsIDAuNzUwNzIxLCAxLjI0NjU1LCAxLjU1NTgzIiwgXAotICAgICAgICAgICIwLjA2ODAzNywgMC4xMDQ2NTksIDAuMzE1Mzg3LCAwLjUwMDc4NSwgMC43NTA3MTcsIDEuMjQ3NzgsIDEuNTU3MjEiLCBcCi0gICAgICAgICAgIjAuMDY4MDM3LCAwLjEwNDc0OCwgMC4zMTQ2NjEsIDAuNTAxODIyLCAwLjc1MDcyMSwgMS4yNDc5MiwgMS41NTU1MyIsIFwKLSAgICAgICAgICAiMC4wNjgwMzUsIDAuMTA0NzY4LCAwLjMxNDY3MiwgMC41MDE4NDgsIDAuNzUwNzIzLCAxLjI0ODE5LCAxLjU1NTY2IiwgXAotICAgICAgICAgICIwLjA2ODAzMSwgMC4xMDQ2MjcsIDAuMzE0OTg0LCAwLjUwMTk5MywgMC43NTA3MTgsIDEuMjQ4LCAxLjU1NTQ1IiwgXAotICAgICAgICAgICIwLjA2ODAzMSwgMC4xMDQ2MDEsIDAuMzE1NDAxLCAwLjUwMDg4MiwgMC43NTA1MTgsIDEuMjQ2LCAxLjU1Njc5IiwgXAotICAgICAgICAgICIwLjA2ODEyNSwgMC4xMDQ1MywgMC4zMTU0MzEsIDAuNTAwOTU3LCAwLjc1MDQ4MSwgMS4yNDYwOSwgMS41NTU3NSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDczOTksIDAuMDA3Mzc3LCAwLjAwNzMwOCwgMC4wMDcyODcsIDAuMDA3MjczLCAwLjAwNzI2MiwgMC4wMDcyNTYiLCBcCi0gICAgICAgICAgIjAuMDA3Mzg2LCAwLjAwNzM2NCwgMC4wMDcyOTUsIDAuMDA3Mjc0LCAwLjAwNzI2LCAwLjAwNzI0NywgMC4wMDcyNDIiLCBcCi0gICAgICAgICAgIjAuMDA3NDgyLCAwLjAwNzQ2MSwgMC4wMDczOTMsIDAuMDA3MzcsIDAuMDA3MzU1LCAwLjAwNzM0LCAwLjAwNzMzNiIsIFwKLSAgICAgICAgICAiMC4wMDc1ODUsIDAuMDA3NTY2LCAwLjAwNzQ5OSwgMC4wMDc0NzUsIDAuMDA3NDU5LCAwLjAwNzQ0NiwgMC4wMDc0NCIsIFwKLSAgICAgICAgICAiMC4wMDc3MTUsIDAuMDA3Njk2LCAwLjAwNzYzNCwgMC4wMDc2MSwgMC4wMDc1OTIsIDAuMDA3NTc3LCAwLjAwNzU3MiIsIFwKLSAgICAgICAgICAiMC4wMDc4OTgsIDAuMDA3ODgyLCAwLjAwNzgxOCwgMC4wMDc3OTIsIDAuMDA3NzcyLCAwLjAwNzc1NiwgMC4wMDc3NSIsIFwKLSAgICAgICAgICAiMC4wMDgwOTYsIDAuMDA4MTI0LCAwLjAwODA1NSwgMC4wMDgwMzMsIDAuMDA4MDExLCAwLjAwNzk1NCwgMC4wMDc5NDgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDc5ODgsIDAuMDA4MDAxLCAwLjAwODAxOSwgMC4wMDgwMjMsIDAuMDA4MDI2LCAwLjAwODAyOCwgMC4wMDgwMjkiLCBcCi0gICAgICAgICAgIjAuMDA3OTgzLCAwLjAwNzk5NSwgMC4wMDgwMTUsIDAuMDA4MDE5LCAwLjAwODAyMiwgMC4wMDgwMjQsIDAuMDA4MDI1IiwgXAotICAgICAgICAgICIwLjAwODA5MiwgMC4wMDgxMDQsIDAuMDA4MTIyLCAwLjAwODEyNiwgMC4wMDgxMjksIDAuMDA4MTMxLCAwLjAwODEzMSIsIFwKLSAgICAgICAgICAiMC4wMDgxOSwgMC4wMDgyMDIsIDAuMDA4MjE5LCAwLjAwODIyMiwgMC4wMDgyMjUsIDAuMDA4MjI2LCAwLjAwODIyNyIsIFwKLSAgICAgICAgICAiMC4wMDgzNCwgMC4wMDgzNTMsIDAuMDA4MzY4LCAwLjAwODM3MSwgMC4wMDgzNzMsIDAuMDA4Mzc0LCAwLjAwODM3NSIsIFwKLSAgICAgICAgICAiMC4wMDg1NTQsIDAuMDA4NTYzLCAwLjAwODU3NywgMC4wMDg1NzksIDAuMDA4NTgsIDAuMDA4NTgxLCAwLjAwODU4MSIsIFwKLSAgICAgICAgICAiMC4wMDg3ODQsIDAuMDA4Nzk3LCAwLjAwODc4MiwgMC4wMDg3ODMsIDAuMDA4ODA3LCAwLjAwODgwNywgMC4wMDg3ODMiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IERGRlFYMiAqCi0gKiAtLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKERGRlFYMikgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjgyMjA2NTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBmZiAoTjMwLFFCSU5UKSB7Ci0gICAgbmV4dF9zdGF0ZSA6ICJEIjsKLSAgICBjbG9ja2VkX29uIDogIkNLIjsKLSAgfQotICBwaW4oQ0spICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYwMTI0OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYwMTI0OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDYwMTE5MjsKLSAgICBjbG9jayA6IHRydWU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzNTY0LCAwLjAwMzU1NSwgMC4wMDM2NDMsIDAuMDAzNzI3LCAwLjAwMzg0OSwgMC4wMDQwODksIDAuMDA0MjciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDgwNjQsIDAuMDA4MDU2LCAwLjAwODEzLCAwLjAwODIyMywgMC4wMDgzNiwgMC4wMDg0OTQsIDAuMDA4Njc3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRCI7Ci0gICAgICBzZGZfY29uZCA6ICJEID09IDEnYjAiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDkwMDMxLCAwLjA5ODMyLCAwLjEwNzQ2NiwgMC4xMTQ4OTEsIDAuMTIwODUyLCAwLjEyODY0NSwgMC4xMzQzNTQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjA3MTM5MSwgMC4wNzk0OTMsIDAuMDg4NjE4LCAwLjA5NTM3OCwgMC4xMDA4NSwgMC4xMDgwNTYsIDAuMTEzMTg4Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihEKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2Mzc0Njc7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjM2Mzc7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjM3NDY3OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjcwNiwgMC4wMDI2OCwgMC4wMDI3MTIsIDAuMDAyNzU1LCAwLjAwMjgyOSwgMC4wMDMsIDAuMDAzMTE5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzNDc4LCAwLjAwMzQ1OCwgMC4wMDM0ODIsIDAuMDAzNTM3LCAwLjAwMzYyMSwgMC4wMDM3MzksIDAuMDAzODc5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDA2MjUsIC0wLjAwMTI1LCAtMC4wMDEyNSwgMC4wMDUsIDAuMDA1LCAwLjAwODc1LCAwLjAxMTI1IiwgXAotICAgICAgICAgICItMC4wMTc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMCwgMCwgMC4wMDM3NSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxMjUsIC0wLjAxMjUsIC0wLjAwNjI1LCAtMC4wMDYyNSwgLTAuMDAyNSwgMCIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMTI1LCAtMC4wMDYyNSwgLTAuMDA4NzUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDEyNSwgLTAuMDA4NzUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wMzM3NSwgLTAuMDI4NzUsIC0wLjAyMjUsIC0wLjAyMjUsIC0wLjAxNjI1LCAtMC4wMTI1LCAtMC4wMSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAyNSwgLTAuMDI1LCAtMC4wMjEyNSwgLTAuMDE4NzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMjUsIDAuMDIzNzUsIDAuMDMsIDAuMDM2MjUsIDAuMDQyNSwgMC4wNDYyNSwgMC4wNTUiLCBcCi0gICAgICAgICAgIjAuMDA3NSwgMC4wMTg3NSwgMC4wMjUsIDAuMDMxMjUsIDAuMDM3NSwgMC4wNDEyNSwgMC4wNSIsIFwKLSAgICAgICAgICAiMC4wMDc1LCAwLjAxMjUsIDAuMDI1LCAwLjAzMTI1LCAwLjAzMTI1LCAwLjA0MTI1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjAwMTI1LCAwLjAxMjUsIDAuMDE4NzUsIDAuMDI1LCAwLjAzMTI1LCAwLjAzNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4wMDEyNSwgMC4wMTI1LCAwLjAxODc1LCAwLjAyNSwgMC4wMzEyNSwgMC4wMzUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIi0wLjAwMjUsIDAuMDA4NzUsIDAuMDE1LCAwLjAyMTI1LCAwLjAyNzUsIDAuMDMxMjUsIDAuMDQiLCBcCi0gICAgICAgICAgIjAuMDAxMjUsIDAuMDA2MjUsIDAuMDEyNSwgMC4wMTg3NSwgMC4wMjUsIDAuMDM1LCAwLjAzNzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDMxMjUsIDAuMDIsIDAuMDEzNzUsIDAuMDEzNzUsIDAuMDA3NSwgMC4wMDM3NSwgMC4wMDEyNSIsIFwKLSAgICAgICAgICAiMC4wMzYyNSwgMC4wMjUsIDAuMDE4NzUsIDAuMDE4NzUsIDAuMDEyNSwgMC4wMDg3NSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiMC4wNDI1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMjUsIDAuMDE4NzUsIDAuMDE1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMDQ4NzUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMzEyNSwgMC4wMjUsIDAuMDIxMjUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMDQ4NzUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMzEyNSwgMC4wMjc1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiMC4wNTg3NSwgMC4wNDc1LCAwLjA0MTI1LCAwLjA0MTI1LCAwLjAzNSwgMC4wMzEyNSwgMC4wMjg3NSIsIFwKLSAgICAgICAgICAiMC4wNjEyNSwgMC4wNTYyNSwgMC4wNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzMzc1LCAwLjAzMTI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEyNSwgMC4wMDc1LCAtMC4wMDUsIC0wLjAxMTI1LCAtMC4wMTc1LCAtMC4wMjc1LCAtMC4wMyIsIFwKLSAgICAgICAgICAiMC4wMTc1LCAwLjAxMjUsIDAsIC0wLjAwNjI1LCAtMC4wMTI1LCAtMC4wMjI1LCAtMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMDIzNzUsIDAuMDE4NzUsIDAuMDA2MjUsIDAsIC0wLjAwNjI1LCAtMC4wMTYyNSwgLTAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMDMsIDAuMDE4NzUsIDAuMDEyNSwgMC4wMDYyNSwgMCwgLTAuMDEsIC0wLjAxODc1IiwgXAotICAgICAgICAgICIwLjAzNjI1LCAwLjAyNSwgMC4wMTg3NSwgMC4wMDYyNSwgMCwgLTAuMDAzNzUsIC0wLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMDQsIDAuMDI4NzUsIDAuMDIyNSwgMC4wMTYyNSwgMC4wMSwgMCwgLTAuMDA4NzUiLCBcCi0gICAgICAgICAgIjAuMDQyNSwgMC4wMzc1LCAwLjAyNSwgMC4wMTg3NSwgMC4wMTI1LCAwLjAwMjUsIDAiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFEpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC42ODc1MTI7Ci0gICAgZnVuY3Rpb24gOiAiTjMwIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBub25fdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJpc2luZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODIyMTksIDAuMTU5Njg4LCAwLjIyMTUxNCwgMC4yOTg3NjYsIDAuMzc2MDQsIDAuNDUzMjg3LCAwLjUzMDU3NCIsIFwKLSAgICAgICAgICAiMC4wOTA0NDUsIDAuMTY3OTA5LCAwLjIyOTcyNiwgMC4zMDcwMDgsIDAuMzg0MTUzLCAwLjQ2MTUxNCwgMC41Mzg4MDMiLCBcCi0gICAgICAgICAgIjAuMDk5NTUxLCAwLjE3NzAyMSwgMC4yMzg4MzEsIDAuMzE2MTA3LCAwLjM5MzM3LCAwLjQ3MDYyMywgMC41NDc5MDgiLCBcCi0gICAgICAgICAgIjAuMTA2OTA3LCAwLjE4NDM3NywgMC4yNDYxOSwgMC4zMjM0NzQsIDAuNDAwNzMxLCAwLjQ3Nzk4LCAwLjU1NTI2MiIsIFwKLSAgICAgICAgICAiMC4xMTI2OTcsIDAuMTkwMTU1LCAwLjI1MTk3MiwgMC4zMjkyNjYsIDAuNDA2NTA2LCAwLjQ4Mzc4NiwgMC41NjEwMyIsIFwKLSAgICAgICAgICAiMC4xMjA2MTYsIDAuMTk4MDgyLCAwLjI1OTg4NywgMC4zMzcxNzgsIDAuNDE0NDU0LCAwLjQ5MTY4MywgMC41Njg5NTUiLCBcCi0gICAgICAgICAgIjAuMTI2MTM2LCAwLjIwMzY0MiwgMC4yNjU0MTUsIDAuMzQyNzE4LCAwLjQyMDAxOCwgMC40OTcyNjksIDAuNTc0NTc4Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzOTQ3NywgMC4yMDA0MDcsIDAuMzMxMDExLCAwLjQ5MzUxOSwgMC42NTY2ODEsIDAuODIwNDIyLCAwLjk4MjY0OSIsIFwKLSAgICAgICAgICAiMC4wMzk0ODMsIDAuMjAwNDA3LCAwLjMzMDk4OCwgMC40OTQxMjksIDAuNjU2NjAxLCAwLjgxOTU3LCAwLjk4MjQ3OCIsIFwKLSAgICAgICAgICAiMC4wMzk0NzUsIDAuMjAwNDA2LCAwLjMzMDkyNywgMC40OTQxMDEsIDAuNjU2NjQsIDAuODE5NTQ0LCAwLjk4MjU1OCIsIFwKLSAgICAgICAgICAiMC4wMzk0NzgsIDAuMjAwNDAyLCAwLjMzMDkzOCwgMC40OTQwOTksIDAuNjU3MjMsIDAuODE5NTQ1LCAwLjk4MjU3OSIsIFwKLSAgICAgICAgICAiMC4wMzk0NTYsIDAuMjAwMjYzLCAwLjMzMDUzMSwgMC40OTMyNTcsIDAuNjU3MTgzLCAwLjgxOTU5MiwgMC45ODI2ODciLCBcCi0gICAgICAgICAgIjAuMDM5Njg2LCAwLjIwMDM5NSwgMC4zMzA3NzksIDAuNDk0MDEzLCAwLjY1NzE2LCAwLjgxOTUwOSwgMC45ODI4IiwgXAotICAgICAgICAgICIwLjAzOTQ5OSwgMC4yMDAyMjgsIDAuMzMwNTE3LCAwLjQ5NDAzNSwgMC42NTY1MDksIDAuODE5Njk1LCAwLjk4MjIwMyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTAwMzEsIDAuMTY2MTYxLCAwLjIyNjgzMiwgMC4zMDI2NjMsIDAuMzc4NDk3LCAwLjQ1NDMyMywgMC41MzAxNTIiLCBcCi0gICAgICAgICAgIjAuMDk4MzIsIDAuMTc0NDUsIDAuMjM1MTE5LCAwLjMxMDk1LCAwLjM4Njc4MiwgMC40NjI2MjEsIDAuNTM4NDE5IiwgXAotICAgICAgICAgICIwLjEwNzQ2NiwgMC4xODM2MDksIDAuMjQ0MjkyLCAwLjMyMDExMSwgMC4zOTU5MjgsIDAuNDcxNzYxLCAwLjU0NzY0MiIsIFwKLSAgICAgICAgICAiMC4xMTQ4OTEsIDAuMTkxMDM0LCAwLjI1MTcxOCwgMC4zMjc1NDEsIDAuNDAzMzQ4LCAwLjQ3OTIxNSwgMC41NTUwNjciLCBcCi0gICAgICAgICAgIjAuMTIwODUyLCAwLjE5Njk4NCwgMC4yNTc2NzUsIDAuMzMzNTAyLCAwLjQwOTMxOSwgMC40ODUxNTksIDAuNTYwOTc5IiwgXAotICAgICAgICAgICIwLjEyODY0NSwgMC4yMDQ3OTEsIDAuMjY1NDc1LCAwLjM0MTI4LCAwLjQxNzEzMSwgMC40OTI5NjMsIDAuNTY4NzY0IiwgXAotICAgICAgICAgICIwLjEzNDM1NCwgMC4yMTA1ODEsIDAuMjcxMjcyLCAwLjM0Njk5NSwgMC40MjI5NDYsIDAuNDk4NjUxLCAwLjU3NDU2OSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzgwNzEsIDAuMTkzNzA1LCAwLjMxOTc0LCAwLjQ3NzQ0MSwgMC42MzUyODMsIDAuNzkxNTMxLCAwLjk0OTIxNyIsIFwKLSAgICAgICAgICAiMC4wMzgwNTgsIDAuMTkzNzE4LCAwLjMxOTc1MiwgMC40Nzc0NDgsIDAuNjM0NDgzLCAwLjc5MTc1MSwgMC45NTA3NzQiLCBcCi0gICAgICAgICAgIjAuMDM4MDY0LCAwLjE5MzczMiwgMC4zMTk4MzIsIDAuNDc2OTcsIDAuNjM1MjUyLCAwLjc5MjA5LCAwLjk0OTA5MSIsIFwKLSAgICAgICAgICAiMC4wMzgwNjYsIDAuMTkzNzMzLCAwLjMxOTgzMiwgMC40NzY5MjYsIDAuNjM1MjM5LCAwLjc5MzE3MywgMC45NDkxMDUiLCBcCi0gICAgICAgICAgIjAuMDM4MDY4LCAwLjE5MzcxLCAwLjMxOTgzNCwgMC40Nzc1NDEsIDAuNjM0NTUyLCAwLjc5MTgzNSwgMC45NDk0MDQiLCBcCi0gICAgICAgICAgIjAuMDM4MTExLCAwLjE5Mzc3MiwgMC4zMTk3MTMsIDAuNDc3NTE2LCAwLjYzNDQ4NywgMC43OTMxODksIDAuOTQ5MzUzIiwgXAotICAgICAgICAgICIwLjAzODAzMiwgMC4xOTM2NzQsIDAuMzE5ODM5LCAwLjQ3NjkyNywgMC42MzUzODgsIDAuNzkzMDc0LCAwLjk0OTE4NiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDkxOTMsIDAuMDA5MjM2LCAwLjAwOTI0MiwgMC4wMDkyNDQsIDAuMDA5MjQ2LCAwLjAwOTI0NywgMC4wMDkyNDgiLCBcCi0gICAgICAgICAgIjAuMDA5MTgyLCAwLjAwOTIyMywgMC4wMDkyMjksIDAuMDA5MjMyLCAwLjAwOTIzNCwgMC4wMDkyMzUsIDAuMDA5MjM1IiwgXAotICAgICAgICAgICIwLjAwOTI2NiwgMC4wMDkzMDksIDAuMDA5MzE1LCAwLjAwOTMxOCwgMC4wMDkzMTksIDAuMDA5MzI1LCAwLjAwOTMyMSIsIFwKLSAgICAgICAgICAiMC4wMDkzNTQsIDAuMDA5Mzk4LCAwLjAwOTQwNCwgMC4wMDk0MDksIDAuMDA5NDA5LCAwLjAwOTQxLCAwLjAwOTQxIiwgXAotICAgICAgICAgICIwLjAwOTUsIDAuMDA5NTQ0LCAwLjAwOTU1LCAwLjAwOTU1MiwgMC4wMDk1NTMsIDAuMDA5NTU2LCAwLjAwOTU1NiIsIFwKLSAgICAgICAgICAiMC4wMDk3LCAwLjAwOTc0MiwgMC4wMDk3NDcsIDAuMDA5NzI5LCAwLjAwOTczLCAwLjAwOTc1MSwgMC4wMDk3NTIiLCBcCi0gICAgICAgICAgIjAuMDA5OTEyLCAwLjAwOTkxLCAwLjAwOTk1NiwgMC4wMDk5NjQsIDAuMDA5OTIxLCAwLjAwOTkyNCwgMC4wMDk5NjQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDkwNjgsIDAuMDA5MTQsIDAuMDA5MTQ4LCAwLjAwOTE1MiwgMC4wMDkxNTQsIDAuMDA5MTU1LCAwLjAwOTE1NiIsIFwKLSAgICAgICAgICAiMC4wMDkwNjYsIDAuMDA5MTM4LCAwLjAwOTE0NiwgMC4wMDkxNDksIDAuMDA5MTUxLCAwLjAwOTE1MywgMC4wMDkxNTQiLCBcCi0gICAgICAgICAgIjAuMDA5MTcsIDAuMDA5MjQzLCAwLjAwOTI1LCAwLjAwOTI1NSwgMC4wMDkyNTcsIDAuMDA5MjU4LCAwLjAwOTI1OCIsIFwKLSAgICAgICAgICAiMC4wMDkyNjcsIDAuMDA5MzM5LCAwLjAwOTM0NiwgMC4wMDkzNSwgMC4wMDkzNTIsIDAuMDA5MzUzLCAwLjAwOTM1NCIsIFwKLSAgICAgICAgICAiMC4wMDk0MiwgMC4wMDk0OTIsIDAuMDA5NDk5LCAwLjAwOTUwMiwgMC4wMDk1MDQsIDAuMDA5NTA1LCAwLjAwOTUwNiIsIFwKLSAgICAgICAgICAiMC4wMDk2NjcsIDAuMDA5NzM4LCAwLjAwOTczMiwgMC4wMDk3NDksIDAuMDA5NzM2LCAwLjAwOTc1MiwgMC4wMDk3NTIiLCBcCi0gICAgICAgICAgIjAuMDA5ODY4LCAwLjAwOTkwOSwgMC4wMDk5MTcsIDAuMDA5OTQ4LCAwLjAwOTkyMywgMC4wMDk5NDcsIDAuMDA5OTI0Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBERkZRWDQgKgotICogLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChERkZRWDQpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMS4xMTE4MzsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBmZiAoTjMwLFFCSU5UKSB7Ci0gICAgbmV4dF9zdGF0ZSA6ICJEIjsKLSAgICBjbG9ja2VkX29uIDogIkNLIjsKLSAgfQotICBwaW4oQ0spICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYzOTQ4NzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2Mzk0ODc7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjM5MTE2OwotICAgIGNsb2NrIDogdHJ1ZTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDM1MTYsIDAuMDAzNTEyLCAwLjAwMzU4NiwgMC4wMDM2NzMsIDAuMDAzNzg2LCAwLjAwNDAyOSwgMC4wMDQyMjQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDgzNjUsIDAuMDA4MzU1LCAwLjAwODQyNSwgMC4wMDg1MTEsIDAuMDA4NjQxLCAwLjAwODc5MywgMC4wMDg5NjkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFEIjsKLSAgICAgIHNkZl9jb25kIDogIkQgPT0gMSdiMCI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wODQ0MzEsIDAuMDkyNzE1LCAwLjEwMjA0OSwgMC4xMDk3MTksIDAuMTE1ODUsIDAuMTIzODg3LCAwLjEyOTczOCIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDcxMzg3LCAwLjA3OTUxOSwgMC4wODg4MSwgMC4wOTU3MzIsIDAuMTAxMzUyLCAwLjEwODc4MywgMC4xMTQwNDYiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEQpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY4MTAyOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDY4MDA3MTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2ODEwMjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDI1MTEsIDAuMDAyNDg0LCAwLjAwMjUyMSwgMC4wMDI1ODMsIDAuMDAyNjQxLCAwLjAwMjc5MiwgMC4wMDI5MzQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDM0OTUsIDAuMDAzNDc2LCAwLjAwMzUwNiwgMC4wMDM1NTYsIDAuMDAzNjQxLCAwLjAwMzc2MywgMC4wMDM5MzIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMDYyNSwgLTAuMDAxMjUsIC0wLjAwMTI1LCAwLjAwNSwgMC4wMDUsIDAuMDA4NzUsIDAuMDExMjUiLCBcCi0gICAgICAgICAgIi0wLjAxMTI1LCAtMC4wMDYyNSwgLTAuMDA2MjUsIDAsIDAsIDAuMDAzNzUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjAxNzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAtMC4wMDYyNSwgLTAuMDA2MjUsIC0wLjAwMjUsIDAiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDEyNSwgLTAuMDA2MjUsIC0wLjAwMjUsIDAiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMTI1LCAtMC4wMDg3NSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjAzMzc1LCAtMC4wMjg3NSwgLTAuMDIyNSwgLTAuMDE2MjUsIC0wLjAxNjI1LCAtMC4wMTI1LCAtMC4wMSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxNSwgLTAuMDEyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE4NzUsIDAuMDIzNzUsIDAuMDMsIDAuMDM2MjUsIDAuMDQyNSwgMC4wNTI1LCAwLjA1NSIsIFwKLSAgICAgICAgICAiMC4wMTM3NSwgMC4wMTg3NSwgMC4wMjUsIDAuMDMxMjUsIDAuMDM3NSwgMC4wNDc1LCAwLjA1IiwgXAotICAgICAgICAgICIwLjAwNzUsIDAuMDE4NzUsIDAuMDI1LCAwLjAzMTI1LCAwLjAzNzUsIDAuMDQxMjUsIDAuMDUiLCBcCi0gICAgICAgICAgIjAuMDA3NSwgMC4wMTI1LCAwLjAyNSwgMC4wMzEyNSwgMC4wMzEyNSwgMC4wNDEyNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4wMDc1LCAwLjAxMjUsIDAuMDE4NzUsIDAuMDI1LCAwLjAzMTI1LCAwLjAzNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4wMDM3NSwgMC4wMDg3NSwgMC4wMjEyNSwgMC4wMjEyNSwgMC4wMjc1LCAwLjAzNzUsIDAuMDQiLCBcCi0gICAgICAgICAgIjAuMDAxMjUsIDAuMDEyNSwgMC4wMTg3NSwgMC4wMjUsIDAuMDI1LCAwLjAzNSwgMC4wMzc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyNSwgMC4wMiwgMC4wMTM3NSwgMC4wMDc1LCAwLjAwNzUsIDAuMDAzNzUsIDAuMDAxMjUiLCBcCi0gICAgICAgICAgIjAuMDM2MjUsIDAuMDI1LCAwLjAxODc1LCAwLjAxMjUsIDAuMDEyNSwgMC4wMDg3NSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiMC4wNDI1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMTg3NSwgMC4wMTg3NSwgMC4wMTUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4wNDg3NSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMjUsIDAuMDIxMjUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMDQ4NzUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMjUsIDAuMDIxMjUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMDU4NzUsIDAuMDQ3NSwgMC4wNDEyNSwgMC4wMzUsIDAuMDM1LCAwLjAzMTI1LCAwLjAyODc1IiwgXAotICAgICAgICAgICIwLjA2MTI1LCAwLjA1NjI1LCAwLjA1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDMzNzUsIDAuMDMxMjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTI1LCAwLjAwMTI1LCAtMC4wMDUsIC0wLjAxMTI1LCAtMC4wMTc1LCAtMC4wMjc1LCAtMC4wMzYyNSIsIFwKLSAgICAgICAgICAiMC4wMTc1LCAwLjAxMjUsIDAsIC0wLjAwNjI1LCAtMC4wMTI1LCAtMC4wMjI1LCAtMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMDIzNzUsIDAuMDE4NzUsIDAuMDA2MjUsIDAsIC0wLjAwNjI1LCAtMC4wMTYyNSwgLTAuMDI1IiwgXAotICAgICAgICAgICIwLjAzLCAwLjAxODc1LCAwLjAxMjUsIDAsIC0wLjAwNjI1LCAtMC4wMSwgLTAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMDM2MjUsIDAuMDI1LCAwLjAxMjUsIDAuMDA2MjUsIDAsIC0wLjAxLCAtMC4wMTI1IiwgXAotICAgICAgICAgICIwLjA0LCAwLjAyODc1LCAwLjAyMjUsIDAuMDEsIDAuMDAzNzUsIDAsIC0wLjAwODc1IiwgXAotICAgICAgICAgICIwLjA0MjUsIDAuMDM3NSwgMC4wMjUsIDAuMDE4NzUsIDAuMDEyNSwgMC4wMDI1LCAtMC4wMDYyNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAxLjM3Mjc1OwotICAgIGZ1bmN0aW9uIDogIk4zMCI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3NlbnNlIDogbm9uX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiByaXNpbmdfZWRnZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzg4ODEsIDAuMTMzNDgxLCAwLjE4NzQ1NSwgMC4yMjYwMiwgMC4yODc3MzQsIDAuMzQxNzQyLCAwLjQxODkyNiIsIFwKLSAgICAgICAgICAiMC4wODcxNDYsIDAuMTQxNzQ1LCAwLjE5NTcyMiwgMC4yMzQyODIsIDAuMjk2MDU5LCAwLjM1MDAyLCAwLjQyNzIxNSIsIFwKLSAgICAgICAgICAiMC4wOTYzODIsIDAuMTUwOTgzLCAwLjIwNDk2LCAwLjI0MzUxOSwgMC4zMDUyODksIDAuMzU5MjQ4LCAwLjQzNjQ1MSIsIFwKLSAgICAgICAgICAiMC4xMDM5MzcsIDAuMTU4NTM4LCAwLjIxMjUwNywgMC4yNTEwNzMsIDAuMzEyNzg3LCAwLjM2Njg5NSwgMC40NDM5OTgiLCBcCi0gICAgICAgICAgIjAuMTEwMDA4LCAwLjE2NDYxNiwgMC4yMTg1ODcsIDAuMjU3MTUyLCAwLjMxODg3MSwgMC4zNzI5NzEsIDAuNDUwMDc1IiwgXAotICAgICAgICAgICIwLjExODI1NiwgMC4xNzI4ODEsIDAuMjI2ODM2LCAwLjI2NTQzMSwgMC4zMjcxNDIsIDAuMzgxMTM1LCAwLjQ1ODMzMiIsIFwKLSAgICAgICAgICAiMC4xMjQwMTYsIDAuMTc4NjMsIDAuMjMyNjU4LCAwLjI3MTI0NSwgMC4zMzI5MzcsIDAuMzg3MDAzLCAwLjQ2NDAzOSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyNDE0NCwgMC4xMzUxNzksIDAuMjQ4NzU2LCAwLjMzMDUwNSwgMC40NjA0OTEsIDAuNTc0MzgzLCAwLjczNjY5NiIsIFwKLSAgICAgICAgICAiMC4wMjQxNDMsIDAuMTM1MTc5LCAwLjI0OTAxNywgMC4zMzA0NzMsIDAuNDYwMjM1LCAwLjU3NTAyLCAwLjczNzk3MSIsIFwKLSAgICAgICAgICAiMC4wMjQxNDQsIDAuMTM1MTc5LCAwLjI0OTAxNywgMC4zMzA0NzEsIDAuNDYwMjMyLCAwLjU3NTAxMiwgMC43Mzc5NiIsIFwKLSAgICAgICAgICAiMC4wMjQxNjQsIDAuMTM1MTgxLCAwLjI0ODg4NiwgMC4zMzA0NTUsIDAuNDYwNDk3LCAwLjU3NDE2OCwgMC43Mzc5NTQiLCBcCi0gICAgICAgICAgIjAuMDI0MTY1LCAwLjEzNTE4LCAwLjI0ODg3LCAwLjMzMDQ1MSwgMC40NjA1MTgsIDAuNTc0MTU0LCAwLjczNzk0NCIsIFwKLSAgICAgICAgICAiMC4wMjQxNTksIDAuMTM1MTYzLCAwLjI0ODg3MywgMC4zMzAwMTcsIDAuNDYwODM4LCAwLjU3NDkyMiwgMC43MzY5ODQiLCBcCi0gICAgICAgICAgIjAuMDI0MTc4LCAwLjEzNTEzMiwgMC4yNDg3MTMsIDAuMzI5OTQ3LCAwLjQ2MDgzNywgMC41NzQxMzQsIDAuNzM3MjY4Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg0NDMxLCAwLjEzODk4OCwgMC4xOTI4LCAwLjIzMTIyNCwgMC4yOTI3MzUsIDAuMzQ2NTExLCAwLjQyMzM0NiIsIFwKLSAgICAgICAgICAiMC4wOTI3MTUsIDAuMTQ3Mjc1LCAwLjIwMTA4MSwgMC4yMzk1MDksIDAuMzAwOTk5LCAwLjM1NDc5OSwgMC40MzE2MTkiLCBcCi0gICAgICAgICAgIjAuMTAyMDQ5LCAwLjE1NjYwMiwgMC4yMTA0MTQsIDAuMjQ4ODM1LCAwLjMxMDM1NSwgMC4zNjQxMjUsIDAuNDQwOTQ0IiwgXAotICAgICAgICAgICIwLjEwOTcxOSwgMC4xNjQyNzUsIDAuMjE4MDg0LCAwLjI1NjUwOCwgMC4zMTgwMjIsIDAuMzcxODIxLCAwLjQ0ODY2MSIsIFwKLSAgICAgICAgICAiMC4xMTU4NSwgMC4xNzA0MDYsIDAuMjI0MjE1LCAwLjI2MjY0MSwgMC4zMjQxNDksIDAuMzc3OTI0LCAwLjQ1NDc2NSIsIFwKLSAgICAgICAgICAiMC4xMjM4ODcsIDAuMTc4NDQ4LCAwLjIzMjI1LCAwLjI3MDY3MywgMC4zMzIxNzEsIDAuMzg1OTU3LCAwLjQ2Mjc3NiIsIFwKLSAgICAgICAgICAiMC4xMjk3MzgsIDAuMTg0Mzg1LCAwLjIzODE4NCwgMC4yNzY1MjksIDAuMzM4MTA5LCAwLjM5MTgwMSwgMC40Njg3ODEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjMzNzQsIDAuMTMyNTk0LCAwLjI0NDQ3OCwgMC4zMjQ0MTksIDAuNDUyNTMyLCAwLjU2NDQ4LCAwLjcyNDQ4NyIsIFwKLSAgICAgICAgICAiMC4wMjMzODYsIDAuMTMyNTkxLCAwLjI0NDQ3LCAwLjMyNDA3NiwgMC40NTI0NzQsIDAuNTY0NDk4LCAwLjcyNDQzOSIsIFwKLSAgICAgICAgICAiMC4wMjMzOSwgMC4xMzI1OTEsIDAuMjQ0NDk0LCAwLjMyNDA3OSwgMC40NTE1OTgsIDAuNTY0NDkxLCAwLjcyNDQzOSIsIFwKLSAgICAgICAgICAiMC4wMjMzOTEsIDAuMTMyNTkzLCAwLjI0NDQ3MiwgMC4zMjQ0MDgsIDAuNDUyNTM5LCAwLjU2NDU3MiwgMC43MjQ1OTYiLCBcCi0gICAgICAgICAgIjAuMDIzMzg3LCAwLjEzMjU4OSwgMC4yNDQ0NywgMC4zMjQ0MzUsIDAuNDUyNTI1LCAwLjU2NDQ4MSwgMC43MjQ0OTEiLCBcCi0gICAgICAgICAgIjAuMDIzMzg4LCAwLjEzMjYyNCwgMC4yNDQyMTMsIDAuMzI0MDM2LCAwLjQ1MjQ4OSwgMC41NjQ0NzcsIDAuNzI0NDMiLCBcCi0gICAgICAgICAgIjAuMDIzMzg3LCAwLjEzMjU4NCwgMC4yNDQxODcsIDAuMzI0NDYzLCAwLjQ1MjQ5NiwgMC41NjQzNCwgMC43MjMxMDgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTI1NCwgMC4wMTI2MiwgMC4wMTI1OTUsIDAuMDEyNTgyLCAwLjAxMjU2OCwgMC4wMTI1NjEsIDAuMDEyNTU0IiwgXAotICAgICAgICAgICIwLjAxMjUyMSwgMC4wMTI2MDIsIDAuMDEyNTc3LCAwLjAxMjU2NSwgMC4wMTI1NTEsIDAuMDEyNTQzLCAwLjAxMjUzNSIsIFwKLSAgICAgICAgICAiMC4wMTI2MDgsIDAuMDEyNjkyLCAwLjAxMjY2OCwgMC4wMTI2NTQsIDAuMDEyNjQsIDAuMDEyNjMzLCAwLjAxMjYyMyIsIFwKLSAgICAgICAgICAiMC4wMTI3MjEsIDAuMDEyODAxLCAwLjAxMjc3NiwgMC4wMTI3NjUsIDAuMDEyNzQ4LCAwLjAxMjc0LCAwLjAxMjczIiwgXAotICAgICAgICAgICIwLjAxMjgzNSwgMC4wMTI5MjUsIDAuMDEyOTA0LCAwLjAxMjg5LCAwLjAxMjg3NSwgMC4wMTI4NjYsIDAuMDEyODU1IiwgXAotICAgICAgICAgICIwLjAxMzA0MywgMC4wMTMxMTcsIDAuMDEzMTEyLCAwLjAxMzA4MSwgMC4wMTMwNjcsIDAuMDEzMDcxLCAwLjAxMzA0NCIsIFwKLSAgICAgICAgICAiMC4wMTMyNTksIDAuMDEzMzQ5LCAwLjAxMzI4NCwgMC4wMTMyNywgMC4wMTMyNTcsIDAuMDEzMjQzLCAwLjAxMzI3OSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEyNTE3LCAwLjAxMjc0NywgMC4wMTI3ODUsIDAuMDEyNzk2LCAwLjAxMjgwNywgMC4wMTI4MTIsIDAuMDEyODE3IiwgXAotICAgICAgICAgICIwLjAxMjUxMywgMC4wMTI3NCwgMC4wMTI3NzcsIDAuMDEyNzg5LCAwLjAxMjc5OSwgMC4wMTI4MDUsIDAuMDEyODEiLCBcCi0gICAgICAgICAgIjAuMDEyNjI3LCAwLjAxMjg0OSwgMC4wMTI4ODYsIDAuMDEyODk3LCAwLjAxMjkwNiwgMC4wMTI5MTIsIDAuMDEyOTE3IiwgXAotICAgICAgICAgICIwLjAxMjcxMSwgMC4wMTI5MzcsIDAuMDEyOTczLCAwLjAxMjk4NCwgMC4wMTI5OTQsIDAuMDEyOTk5LCAwLjAxMzAwNCIsIFwKLSAgICAgICAgICAiMC4wMTI4NjUsIDAuMDEzMDk1LCAwLjAxMzEzLCAwLjAxMzE0MSwgMC4wMTMxNSwgMC4wMTMxNTUsIDAuMDEzMTYxIiwgXAotICAgICAgICAgICIwLjAxMzA3OCwgMC4wMTMzMDMsIDAuMDEzMzM2LCAwLjAxMzM0MywgMC4wMTMzNTQsIDAuMDEzMzU5LCAwLjAxMzM2MyIsIFwKLSAgICAgICAgICAiMC4wMTMzMTUsIDAuMDEzNTEsIDAuMDEzNTQ0LCAwLjAxMzU3NywgMC4wMTM1NiwgMC4wMTM1OSwgMC4wMTM1NjciKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogREZGUkhRWDIgKgotICogLS0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKERGRlJIUVgyKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDEuMDQ2Njk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgZmYgKE4zMCxRQklOVCkgewotICAgIG5leHRfc3RhdGUgOiAiRCI7Ci0gICAgY2xvY2tlZF9vbiA6ICJDSyI7Ci0gICAgY2xlYXIgOiAiKCFSTikiOwotICB9Ci0gIHBpbihDSykgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjU4NTg0OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDY1ODU4NDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2NTg1MzM7Ci0gICAgY2xvY2sgOiB0cnVlOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzk5OSwgMC4wMDM5OTUsIDAuMDA0MDY1LCAwLjAwNDE1NSwgMC4wMDQyNjYsIDAuMDA0NTA4LCAwLjAwNDcxMiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAxMDE4LCAwLjAxMDE3MSwgMC4wMTAyMzUsIDAuMDEwMzI5LCAwLjAxMDQ1OSwgMC4wMTA1ODksIDAuMDEwNzY2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRCZSTiI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fUk5fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjA5Njk5MSwgMC4xMDUyNzQsIDAuMTE0ODg3LCAwLjEyMjg5LCAwLjEyOTM3MiwgMC4xMzc3MTIsIDAuMTQ0MDM4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wNzUyNDQsIDAuMDgzMzc4LCAwLjA5Mjk2LCAwLjEwMDM1MywgMC4xMDYzNjQsIDAuMTE0NDE3LCAwLjEyMDEzMyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwODMwNjk0OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDgyODg5NDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA4MzA2OTQ7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzMzY5LCAwLjAwMzMyNiwgMC4wMDMzNTQsIDAuMDAzNDI2LCAwLjAwMzQ5NywgMC4wMDM2NzgsIDAuMDAzODU4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA0NDM1LCAwLjAwNDQwNywgMC4wMDQ0MzMsIDAuMDA0NDg1LCAwLjAwNDU3NiwgMC4wMDQ3MzYsIDAuMDA0ODk1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlJOIjsKLSAgICAgIHNkZl9jb25kIDogIlJOID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAwNjI1LCAtMC4wMDEyNSwgLTAuMDAxMjUsIDAuMDA1LCAwLjAwNSwgMC4wMDg3NSwgMC4wMTEyNSIsIFwKLSAgICAgICAgICAiLTAuMDE3NSwgLTAuMDA2MjUsIC0wLjAwNjI1LCAwLCAwLCAwLjAwMzc1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDEyNSwgLTAuMDEyNSwgLTAuMDA2MjUsIC0wLjAwNjI1LCAtMC4wMDI1LCAwIiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAxMjUsIC0wLjAwNjI1LCAtMC4wMDI1LCAwIiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDEyNSwgLTAuMDA4NzUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wMzM3NSwgLTAuMDI4NzUsIC0wLjAyMjUsIC0wLjAyMjUsIC0wLjAxNjI1LCAtMC4wMTI1LCAtMC4wMSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDMxMjUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTUsIC0wLjAxMjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxODc1LCAwLjAzLCAwLjAzNjI1LCAwLjA0MjUsIDAuMDQ4NzUsIDAuMDU4NzUsIDAuMDYxMjUiLCBcCi0gICAgICAgICAgIjAuMDEzNzUsIDAuMDI1LCAwLjAzMTI1LCAwLjAzNzUsIDAuMDQzNzUsIDAuMDUzNzUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIjAuMDEzNzUsIDAuMDE4NzUsIDAuMDMxMjUsIDAuMDM3NSwgMC4wNDM3NSwgMC4wNDc1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICIwLjAwNzUsIDAuMDE4NzUsIDAuMDI1LCAwLjAzMTI1LCAwLjAzNzUsIDAuMDQ3NSwgMC4wNSIsIFwKLSAgICAgICAgICAiMC4wMDc1LCAwLjAxODc1LCAwLjAyNSwgMC4wMzEyNSwgMC4wMzc1LCAwLjA0NzUsIDAuMDUiLCBcCi0gICAgICAgICAgIjAuMDEsIDAuMDE1LCAwLjAyMTI1LCAwLjAzMzc1LCAwLjAzMzc1LCAwLjA0Mzc1LCAwLjA1MjUiLCBcCi0gICAgICAgICAgIjAuMDA3NSwgMC4wMTI1LCAwLjAyNSwgMC4wMzEyNSwgMC4wMzc1LCAwLjA0MTI1LCAwLjA1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJSTiI7Ci0gICAgICBzZGZfY29uZCA6ICJSTiA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjUsIDAuMDIsIDAuMDEzNzUsIDAuMDA3NSwgMC4wMDc1LCAwLjAwMzc1LCAwLjAwMTI1IiwgXAotICAgICAgICAgICIwLjAzLCAwLjAyNSwgMC4wMTg3NSwgMC4wMTI1LCAwLjAxMjUsIDAuMDA4NzUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMDM2MjUsIDAuMDMxMjUsIDAuMDI1LCAwLjAxODc1LCAwLjAxODc1LCAwLjAxNSwgMC4wMTI1IiwgXAotICAgICAgICAgICIwLjA0MjUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMjUsIDAuMDI1LCAwLjAyMTI1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMDQ4NzUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMjUsIDAuMDIxMjUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMDU4NzUsIDAuMDQ3NSwgMC4wNDEyNSwgMC4wMzUsIDAuMDM1LCAwLjAzMTI1LCAwLjAyMjUiLCBcCi0gICAgICAgICAgIjAuMDYxMjUsIDAuMDU2MjUsIDAuMDUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzM3NSwgMC4wMzEyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjI1LCAtMC4wMDUsIC0wLjAxMTI1LCAtMC4wMjM3NSwgLTAuMDMsIC0wLjAzMzc1LCAtMC4wNDI1IiwgXAotICAgICAgICAgICIwLjAxMTI1LCAwLCAtMC4wMDYyNSwgLTAuMDE4NzUsIC0wLjAyNSwgLTAuMDI4NzUsIC0wLjAzNzUiLCBcCi0gICAgICAgICAgIjAuMDE3NSwgMC4wMDYyNSwgMCwgLTAuMDEyNSwgLTAuMDE4NzUsIC0wLjAyMjUsIC0wLjAzMTI1IiwgXAotICAgICAgICAgICIwLjAyMzc1LCAwLjAxMjUsIDAsIC0wLjAwNjI1LCAtMC4wMTI1LCAtMC4wMjI1LCAtMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMDIzNzUsIDAuMDE4NzUsIDAuMDA2MjUsIDAsIC0wLjAwNjI1LCAtMC4wMTYyNSwgLTAuMDI1IiwgXAotICAgICAgICAgICIwLjAzMzc1LCAwLjAyMjUsIDAuMDEsIDAuMDAzNzUsIC0wLjAwMjUsIC0wLjAxMjUsIC0wLjAyMTI1IiwgXAotICAgICAgICAgICIwLjAzNjI1LCAwLjAyNSwgMC4wMTg3NSwgMC4wMDYyNSwgMCwgLTAuMDEsIC0wLjAxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFEpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC42ODY5NjE7Ci0gICAgZnVuY3Rpb24gOiAiTjMwIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBub25fdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJpc2luZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTg2NDMsIDAuMTc3Mzg3LCAwLjIzOTAwOCwgMC4zMTYwMzQsIDAuMzkzMDkxLCAwLjQ3MDA4MywgMC41NDcxNTEiLCBcCi0gICAgICAgICAgIjAuMTA2Nzk4LCAwLjE4NTU1MywgMC4yNDcxNjQsIDAuMzI0MjExLCAwLjQwMTI0NCwgMC40NzgyNDEsIDAuNTU1MzA3IiwgXAotICAgICAgICAgICIwLjExNjQzMywgMC4xOTUxODksIDAuMjU2Nzk5LCAwLjMzMzgxOCwgMC40MTA4OTIsIDAuNDg3ODc5LCAwLjU2NDk0MiIsIFwKLSAgICAgICAgICAiMC4xMjM5NDYsIDAuMjAyNzEsIDAuMjY0MzE3LCAwLjM0MTM5MiwgMC40MTgzOTEsIDAuNDk1Mzg3LCAwLjU3MjQyNCIsIFwKLSAgICAgICAgICAiMC4xMzA0OTYsIDAuMjA5MjYyLCAwLjI3MDg3OSwgMC4zNDc4OTYsIDAuNDI0OTU1LCAwLjUwMTkzNiwgMC41NzkwMiIsIFwKLSAgICAgICAgICAiMC4xMzg2MjgsIDAuMjE3NDAyLCAwLjI3OTAyNywgMC4zNTYwMjIsIDAuNDMzMDQsIDAuNTEwMDg2LCAwLjU4NzA5IiwgXAotICAgICAgICAgICIwLjE0NTAwMiwgMC4yMjM3NzcsIDAuMjg1MzcsIDAuMzYyMzMsIDAuNDM5MzM0LCAwLjUxNjQyOCwgMC41OTM0ODUiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQ0NTMyLCAwLjIwMTUyOSwgMC4zMzA5NjksIDAuNDkzMjg4LCAwLjY1NTg4NSwgMC44MTc0ODEsIDAuOTc5MzUiLCBcCi0gICAgICAgICAgIjAuMDQ0NTMyLCAwLjIwMTUyOCwgMC4zMzA5NywgMC40OTI0MDMsIDAuNjU1ODg4LCAwLjgxNzUyLCAwLjk4MTA1OCIsIFwKLSAgICAgICAgICAiMC4wNDQ1MzgsIDAuMjAxNTM0LCAwLjMzMDQyNCwgMC40OTI2ODIsIDAuNjU1ODc1LCAwLjgxNzUzLCAwLjk3OTM3MSIsIFwKLSAgICAgICAgICAiMC4wNDQ1MzcsIDAuMjAxNjcyLCAwLjMzMDk2NywgMC40OTIzODMsIDAuNjU1ODY0LCAwLjgxNzU1MSwgMC45ODEwNTYiLCBcCi0gICAgICAgICAgIjAuMDQ0NTQ1LCAwLjIwMTUzOCwgMC4zMzA5NjUsIDAuNDkyNzM5LCAwLjY1NTg0MSwgMC44MTc0MjksIDAuOTc5ODIyIiwgXAotICAgICAgICAgICIwLjA0NDUyOCwgMC4yMDE1MzQsIDAuMzMwNDEsIDAuNDkyNzA1LCAwLjY1NTcxNCwgMC44MTc0MjIsIDAuOTgwMTQyIiwgXAotICAgICAgICAgICIwLjA0NDU3MSwgMC4yMDE2NzYsIDAuMzMwNzczLCAwLjQ5MzE4NywgMC42NTUwOTIsIDAuODE3NDksIDAuOTc5MzQ1Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5Njk5MSwgMC4xNzMzMTUsIDAuMjMzOTc4LCAwLjMwOTcwMiwgMC4zODU0NjksIDAuNDYxMjE3LCAwLjUzNzAwMyIsIFwKLSAgICAgICAgICAiMC4xMDUyNzQsIDAuMTgxNTk0LCAwLjI0MjI0NCwgMC4zMTc5NzMsIDAuMzkzNzM5LCAwLjQ2OTUyLCAwLjU0NTIiLCBcCi0gICAgICAgICAgIjAuMTE0ODg3LCAwLjE5MTIwNiwgMC4yNTE4OCwgMC4zMjc1ODQsIDAuNDAzMzUxLCAwLjQ3OTEzLCAwLjU1NDgxNSIsIFwKLSAgICAgICAgICAiMC4xMjI4OSwgMC4xOTkyMTQsIDAuMjU5ODg4LCAwLjMzNTU5LCAwLjQxMTM1NywgMC40ODcxMzUsIDAuNTYyODE3IiwgXAotICAgICAgICAgICIwLjEyOTM3MiwgMC4yMDU2ODcsIDAuMjY2MzU5LCAwLjM0MjA2MSwgMC40MTc4MjEsIDAuNDkzNjAyLCAwLjU2OTMyNSIsIFwKLSAgICAgICAgICAiMC4xMzc3MTIsIDAuMjE0MDMxLCAwLjI3NDY3NiwgMC4zNTA0MTMsIDAuNDI2MTcsIDAuNTAxODkyLCAwLjU3NzY5OSIsIFwKLSAgICAgICAgICAiMC4xNDQwMzgsIDAuMjIwMzg4LCAwLjI4MDk5NywgMC4zNTY3NTYsIDAuNDMyNTM4LCAwLjUwODIzMywgMC41ODM5ODciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM4OTM2LCAwLjE5MzYxNiwgMC4zMTg2OTMsIDAuNDc2OTA5LCAwLjYzMzQyNCwgMC43OTA4NjIsIDAuOTQ3Nzg0IiwgXAotICAgICAgICAgICIwLjAzODk0MywgMC4xOTM2MjMsIDAuMzE4OTA4LCAwLjQ3NjgzNywgMC42MzM3MjQsIDAuNzkwNTIxLCAwLjk0OTU1MiIsIFwKLSAgICAgICAgICAiMC4wMzg5NDIsIDAuMTkzNjIxLCAwLjMxODczOCwgMC40NzY4NCwgMC42MzMyNjUsIDAuNzkwNTE5LCAwLjk0OTU1NyIsIFwKLSAgICAgICAgICAiMC4wMzg5MzUsIDAuMTkzNjIxLCAwLjMxODczOCwgMC40NzY4NDMsIDAuNjMzMjM4LCAwLjc5MDUyMiwgMC45NDk1NDgiLCBcCi0gICAgICAgICAgIjAuMDM4OTQyLCAwLjE5MzYxOSwgMC4zMTg3MjMsIDAuNDc2ODQyLCAwLjYzMzc1NywgMC43OTA1MjEsIDAuOTQ4MTg3IiwgXAotICAgICAgICAgICIwLjAzODkzNCwgMC4xOTM0MDksIDAuMzE4ODkzLCAwLjQ3NjkyLCAwLjYzMzQxNywgMC43OTIwMjgsIDAuOTQ3Nzg4IiwgXAotICAgICAgICAgICIwLjAzODkzOSwgMC4xOTM2MjIsIDAuMzE5MDA2LCAwLjQ3Njk3MSwgMC42MzMyODQsIDAuNzkyMDc2LCAwLjk0ODM1NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogY2xlYXI7Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0MzA2NSwgMC4xMTkzMDcsIDAuMTc5OTA0LCAwLjI1NTY1NiwgMC4zMzEzOCwgMC40MDcxMjMsIDAuNDgyODkyIiwgXAotICAgICAgICAgICIwLjA1MTIzNSwgMC4xMjc1MDcsIDAuMTg4MDk3LCAwLjI2Mzg1MiwgMC4zMzk1ODMsIDAuNDE1MzIxLCAwLjQ5MTA5MSIsIFwKLSAgICAgICAgICAiMC4wNjA0NzMsIDAuMTM2NzI3LCAwLjE5NzMxNSwgMC4yNzMwNjUsIDAuMzQ4ODAzLCAwLjQyNDU3OSwgMC41MDAzMDciLCBcCi0gICAgICAgICAgIjAuMDY3NDMsIDAuMTQzODA5LCAwLjIwNDM4OCwgMC4yODAxNDUsIDAuMzU1OSwgMC40MzE2MjMsIDAuNTA3MzYxIiwgXAotICAgICAgICAgICIwLjA3MzI3NiwgMC4xNDk1MjgsIDAuMjEwMTAxLCAwLjI4NTg2OSwgMC4zNjE2MSwgMC40MzczNDYsIDAuNTEzMTIiLCBcCi0gICAgICAgICAgIjAuMDgwNjg5LCAwLjE1Njk0OSwgMC4yMTc1MTcsIDAuMjkzMjQ4LCAwLjM2ODk5OCwgMC40NDQ3NTgsIDAuNTIwNDciLCBcCi0gICAgICAgICAgIjAuMDg1OTU4LCAwLjE2MjI0OSwgMC4yMjI4MDUsIDAuMjk4NTQ3LCAwLjM3NDI5NiwgMC40NTAwNTYsIDAuNTI1NzUyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzODg4NiwgMC4xOTMyNTMsIDAuMzE4ODg5LCAwLjQ3NjQ3MywgMC42MzM5OTcsIDAuNzkxNTc1LCAwLjk0OTEwNCIsIFwKLSAgICAgICAgICAiMC4wMzg5MjQsIDAuMTkzMTQ4LCAwLjMxODcxNSwgMC40NzY0NzMsIDAuNjMzOTkxLCAwLjc5MTU2MSwgMC45NDkwOTkiLCBcCi0gICAgICAgICAgIjAuMDM5NTM3LCAwLjE5MzMxMSwgMC4zMTg5ODQsIDAuNDc2NDk0LCAwLjYzMzk5NSwgMC43OTE1NiwgMC45NDgyOTQiLCBcCi0gICAgICAgICAgIjAuMDQwNjMzLCAwLjE5MzQzNywgMC4zMTg5OTIsIDAuNDc2NDcyLCAwLjYzNDA2MSwgMC43OTE1MDMsIDAuOTQ3NjYyIiwgXAotICAgICAgICAgICIwLjA0MTY1MiwgMC4xOTM1ODUsIDAuMzE5MDI3LCAwLjQ3NjQyNywgMC42MzM3NzgsIDAuNzkxNTI1LCAwLjk0OTMyNCIsIFwKLSAgICAgICAgICAiMC4wNDMwODQsIDAuMTkzNjQxLCAwLjMxOTEyMywgMC40NzY0NSwgMC42MzM4OTksIDAuNzkxNjU1LCAwLjk0OTAzOSIsIFwKLSAgICAgICAgICAiMC4wNDQyNDMsIDAuMTkzNzE4LCAwLjMxODc4NywgMC40NzY0ODIsIDAuNjMzODI1LCAwLjc5MTU5MiwgMC45NDkyNjYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEwMzY4LCAwLjAxMDMyLCAwLjAxMDI4OSwgMC4wMTAyNjcsIDAuMDEwMjU1LCAwLjAxMDI0NywgMC4wMTAyNDEiLCBcCi0gICAgICAgICAgIjAuMDEwMzU3LCAwLjAxMDMxMSwgMC4wMTAyOCwgMC4wMTAyNTksIDAuMDEwMjQ2LCAwLjAxMDIzNywgMC4wMTAyMzEiLCBcCi0gICAgICAgICAgIjAuMDEwNDM2LCAwLjAxMDM5MiwgMC4wMTAzNTksIDAuMDEwMzM3LCAwLjAxMDMyNCwgMC4wMTAzMTYsIDAuMDEwMzA4IiwgXAotICAgICAgICAgICIwLjAxMDU3MSwgMC4wMTA1MzEsIDAuMDEwNDk4LCAwLjAxMDQ3NiwgMC4wMTA0NjIsIDAuMDEwNDUzLCAwLjAxMDQ0NSIsIFwKLSAgICAgICAgICAiMC4wMTA2NiwgMC4wMTA2MjMsIDAuMDEwNTkxLCAwLjAxMDU2OCwgMC4wMTA1NTQsIDAuMDEwNTQ1LCAwLjAxMDUzNyIsIFwKLSAgICAgICAgICAiMC4wMTA4OTksIDAuMDEwODY0LCAwLjAxMDgzMiwgMC4wMTA4MDgsIDAuMDEwNzkzLCAwLjAxMDc4MywgMC4wMTA3NzQiLCBcCi0gICAgICAgICAgIjAuMDExMDQ1LCAwLjAxMTAxMSwgMC4wMTA5OCwgMC4wMTA5ODYsIDAuMDEwOTcsIDAuMDEwOTI2LCAwLjAxMDkxOCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMDgyMSwgMC4wMTA5MTQsIDAuMDEwOTI3LCAwLjAxMDkzNSwgMC4wMTA5MzksIDAuMDEwOTQxLCAwLjAxMDk0MiIsIFwKLSAgICAgICAgICAiMC4wMTA4MTUsIDAuMDEwOTA4LCAwLjAxMDkyMSwgMC4wMTA5MjgsIDAuMDEwOTMyLCAwLjAxMDkzNCwgMC4wMTA5MzYiLCBcCi0gICAgICAgICAgIjAuMDEwOTE5LCAwLjAxMTAxMSwgMC4wMTEwMjQsIDAuMDExMDMsIDAuMDExMDM0LCAwLjAxMTAzNiwgMC4wMTEwMzgiLCBcCi0gICAgICAgICAgIjAuMDExMDQ1LCAwLjAxMTEzNiwgMC4wMTExNDgsIDAuMDExMTU1LCAwLjAxMTE1OCwgMC4wMTExNiwgMC4wMTExNjIiLCBcCi0gICAgICAgICAgIjAuMDExMTcsIDAuMDExMjYsIDAuMDExMjcxLCAwLjAxMTI3NywgMC4wMTEyOCwgMC4wMTEyODIsIDAuMDExMjgzIiwgXAotICAgICAgICAgICIwLjAxMTQyMSwgMC4wMTE1MSwgMC4wMTE1MjEsIDAuMDExNTI2LCAwLjAxMTUyOCwgMC4wMTE1MywgMC4wMTE1MzEiLCBcCi0gICAgICAgICAgIjAuMDExNjQ0LCAwLjAxMTcxNCwgMC4wMTE3NDEsIDAuMDExNzQ2LCAwLjAxMTc0NywgMC4wMTE3NDksIDAuMDExNzMzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUk4iOwotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMTczLCAwLjAxMTgxNCwgMC4wMTE4MjQsIDAuMDExODMsIDAuMDExODMyLCAwLjAxMTgzNCwgMC4wMTE4MzUiLCBcCi0gICAgICAgICAgIjAuMDExNjc1LCAwLjAxMTc3MSwgMC4wMTE3ODYsIDAuMDExNzk0LCAwLjAxMTc5NywgMC4wMTE4LCAwLjAxMTgwMSIsIFwKLSAgICAgICAgICAiMC4wMTE3MDQsIDAuMDExNzk2LCAwLjAxMTgxMywgMC4wMTE4MjMsIDAuMDExODI4LCAwLjAxMTgzMSwgMC4wMTE4MzMiLCBcCi0gICAgICAgICAgIjAuMDExODAzLCAwLjAxMTg4LCAwLjAxMTkwMywgMC4wMTE5MTMsIDAuMDExOTE5LCAwLjAxMTkyMywgMC4wMTE5MjUiLCBcCi0gICAgICAgICAgIjAuMDExOTQxLCAwLjAxMjAwNiwgMC4wMTIwMjQsIDAuMDEyMDMyLCAwLjAxMjA0LCAwLjAxMjA0NCwgMC4wMTIwNDciLCBcCi0gICAgICAgICAgIjAuMDEyMjIsIDAuMDEyMjY0LCAwLjAxMjI3OSwgMC4wMTIyOTUsIDAuMDEyMjk5LCAwLjAxMjMwMywgMC4wMTIzMDkiLCBcCi0gICAgICAgICAgIjAuMDEyNDg4LCAwLjAxMjUxLCAwLjAxMjUyNSwgMC4wMTI1MzgsIDAuMDEyNTQ0LCAwLjAxMjU1LCAwLjAxMjU1MiIpOwotICAgICAgfQotICAgICAgcmlzZV9wb3dlcihzY2FsYXIpIHsKLSAgICAgICAgdmFsdWVzKCIwIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihSTikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNjI0MzQ7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNDk3MzM7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNjI0MzQ7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwODQyLCAwLjAwMDg0MSwgMC4wMDA4NDEsIDAuMDAwODQxLCAwLjAwMDg0MSwgMC4wMDA4NDEsIDAuMDAwODQxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwODY2LCAwLjAwMDg1MiwgMC4wMDA4NDgsIDAuMDAwODQ4LCAwLjAwMDg0NiwgMC4wMDA4NDcsIDAuMDAwODQ2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRCI7Ci0gICAgICBzZGZfY29uZCA6ICJEID09IDEnYjAiOwotICAgICAgZmFsbF9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDU1MTk1LCAwLjA2MTgyNiwgMC4wNjg0NjIsIDAuMDczNzk1LCAwLjA3ODIyMiwgMC4wODM4MzgsIDAuMDg3OTczIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogcmVjb3ZlcnlfcmlzaW5nOwotICAgICAgd2hlbiA6ICJEIjsKLSAgICAgIHNkZl9jb25kIDogIkQgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQocmVjb3ZlcnlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAyNSwgLTAuMDM2MjUsIC0wLjA0ODc1LCAtMC4wNTUsIC0wLjA2MTI1LCAtMC4wNzEyNSwgLTAuMDczNzUiLCBcCi0gICAgICAgICAgIi0wLjAyNjI1LCAtMC4wMzc1LCAtMC4wNSwgLTAuMDU2MjUsIC0wLjA2MjUsIC0wLjA3MjUsIC0wLjA3NSIsIFwKLSAgICAgICAgICAiLTAuMDIsIC0wLjAzMTI1LCAtMC4wNDM3NSwgLTAuMDUsIC0wLjA1NjI1LCAtMC4wNjYyNSwgLTAuMDY4NzUiLCBcCi0gICAgICAgICAgIi0wLjAwNzUsIC0wLjAxODc1LCAtMC4wMzEyNSwgLTAuMDM3NSwgLTAuMDQzNzUsIC0wLjA1Mzc1LCAtMC4wNjI1IiwgXAotICAgICAgICAgICIwLjAwNSwgLTAuMDA2MjUsIC0wLjAxODc1LCAtMC4wMjUsIC0wLjAzMTI1LCAtMC4wNDEyNSwgLTAuMDUiLCBcCi0gICAgICAgICAgIjAuMDI3NSwgMC4wMjI1LCAwLjAxLCAtMC4wMDI1LCAtMC4wMDg3NSwgLTAuMDE4NzUsIC0wLjAyNzUiLCBcCi0gICAgICAgICAgIjAuMDU1LCAwLjA0Mzc1LCAwLjAyNSwgMC4wMTg3NSwgMC4wMDYyNSwgMC4wMDI1LCAtMC4wMDYyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJlbW92YWxfcmlzaW5nOwotICAgICAgd2hlbiA6ICJEIjsKLSAgICAgIHNkZl9jb25kIDogIkQgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQocmVtb3ZhbF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDM3NSwgMC4wNDg3NSwgMC4wNjEyNSwgMC4wNjc1LCAwLjA3Mzc1LCAwLjA4Mzc1LCAwLjA4NjI1IiwgXAotICAgICAgICAgICIwLjA0NSwgMC4wNTYyNSwgMC4wNjI1LCAwLjA3NSwgMC4wODEyNSwgMC4wODUsIDAuMDkzNzUiLCBcCi0gICAgICAgICAgIjAuMDUxMjUsIDAuMDYyNSwgMC4wNjg3NSwgMC4wNzUsIDAuMDgxMjUsIDAuMDkxMjUsIDAuMDkzNzUiLCBcCi0gICAgICAgICAgIjAuMDU3NSwgMC4wNjI1LCAwLjA3NSwgMC4wODEyNSwgMC4wODc1LCAwLjA5MTI1LCAwLjEiLCBcCi0gICAgICAgICAgIjAuMDU3NSwgMC4wNjg3NSwgMC4wNzUsIDAuMDgxMjUsIDAuMDg3NSwgMC4wOTc1LCAwLjEiLCBcCi0gICAgICAgICAgIjAuMDYsIDAuMDcxMjUsIDAuMDc3NSwgMC4wOSwgMC4wOTYyNSwgMC4xLCAwLjEwODc1IiwgXAotICAgICAgICAgICIwLjA2Mzc1LCAwLjA3NSwgMC4wODEyNSwgMC4wOTM3NSwgMC4wOTM3NSwgMC4xMDM3NSwgMC4xMTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBERkZSWDEgKgotICogLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChERkZSWDEpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC45NjA0NzI7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgZmYgKE4zMCxRQklOVCkgewotICAgIG5leHRfc3RhdGUgOiAiRCI7Ci0gICAgY2xvY2tlZF9vbiA6ICJDSyI7Ci0gICAgY2xlYXIgOiAiKCFSTikiOwotICB9Ci0gIHBpbihDSykgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjYxODMxOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDY2MTgzMTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2NjE3MTM7Ci0gICAgY2xvY2sgOiB0cnVlOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzY2NywgMC4wMDM2NTgsIDAuMDAzNzQxLCAwLjAwMzgzLCAwLjAwMzk1NywgMC4wMDQxOTgsIDAuMDA0MzcxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA4NjQ4LCAwLjAwODY0MywgMC4wMDg3MTEsIDAuMDA4ODA3LCAwLjAwODkxOSwgMC4wMDkxNzYsIDAuMDA5MjY1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRCZSTiI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fUk5fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjEyMTYzMSwgMC4xMjk4OTMsIDAuMTM5MDUxLCAwLjE0NjQ2MywgMC4xNTIzOTIsIDAuMTYwMjQzLCAwLjE2NTkxMyIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDcyMjY4LCAwLjA4MDM5MiwgMC4wODk1NDksIDAuMDk2NDYsIDAuMTAxOCwgMC4xMDg5OTUsIDAuMTE0MjY5Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihEKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2MjQwMjM7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjIyNTYzOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDYyNDAyMzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDI3MjYsIDAuMDAyNjk3LCAwLjAwMjczLCAwLjAwMjc4MSwgMC4wMDI4NDYsIDAuMDAyOTk4LCAwLjAwMzEzMiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzU3MywgMC4wMDM1NTIsIDAuMDAzNTc2LCAwLjAwMzYyNiwgMC4wMDM2OTksIDAuMDAzODE3LCAwLjAwMzk1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlJOIjsKLSAgICAgIHNkZl9jb25kIDogIlJOID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAxMjUsIC0wLjAwNzUsIC0wLjAwMTI1LCAwLjAwNSwgMC4wMDUsIDAuMDA4NzUsIDAuMDExMjUiLCBcCi0gICAgICAgICAgIi0wLjAxNzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAtMC4wMDYyNSwgMCwgMC4wMDM3NSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgLTAuMDA2MjUsIC0wLjAwMjUsIDAiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMTg3NSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAxMjUsIC0wLjAwODc1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDg3NSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA0LCAtMC4wMjg3NSwgLTAuMDI4NzUsIC0wLjAyMjUsIC0wLjAyMjUsIC0wLjAxODc1LCAtMC4wMTYyNSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDI1LCAtMC4wMjEyNSwgLTAuMDE4NzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxODc1LCAwLjAyMzc1LCAwLjAzLCAwLjAzNjI1LCAwLjA0MjUsIDAuMDUyNSwgMC4wNTUiLCBcCi0gICAgICAgICAgIjAuMDEzNzUsIDAuMDE4NzUsIDAuMDI1LCAwLjAzMTI1LCAwLjAzNzUsIDAuMDQ3NSwgMC4wNSIsIFwKLSAgICAgICAgICAiMC4wMDc1LCAwLjAxODc1LCAwLjAyNSwgMC4wMzEyNSwgMC4wMzc1LCAwLjA0MTI1LCAwLjA1IiwgXAotICAgICAgICAgICIwLjAwNzUsIDAuMDEyNSwgMC4wMjUsIDAuMDMxMjUsIDAuMDMxMjUsIDAuMDQxMjUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMDAxMjUsIDAuMDEyNSwgMC4wMTg3NSwgMC4wMjUsIDAuMDMxMjUsIDAuMDQxMjUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMDAzNzUsIDAuMDA4NzUsIDAuMDIxMjUsIDAuMDI3NSwgMC4wMjc1LCAwLjAzNzUsIDAuMDQiLCBcCi0gICAgICAgICAgIjAuMDAxMjUsIDAuMDEyNSwgMC4wMTg3NSwgMC4wMjUsIDAuMDMxMjUsIDAuMDM1LCAwLjA0Mzc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJSTiI7Ci0gICAgICBzZGZfY29uZCA6ICJSTiA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzEyNSwgMC4wMiwgMC4wMTM3NSwgMC4wMTM3NSwgMC4wMDc1LCAwLjAwMzc1LCAwLjAwMTI1IiwgXAotICAgICAgICAgICIwLjAzNjI1LCAwLjAyNSwgMC4wMTg3NSwgMC4wMTg3NSwgMC4wMTI1LCAwLjAwODc1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICIwLjA0MjUsIDAuMDMxMjUsIDAuMDI1LCAwLjAyNSwgMC4wMTg3NSwgMC4wMTUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4wNDg3NSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMjEyNSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4wNTUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMzEyNSwgMC4wMjc1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiMC4wNTg3NSwgMC4wNTM3NSwgMC4wNDEyNSwgMC4wNDEyNSwgMC4wMzUsIDAuMDMxMjUsIDAuMDI4NzUiLCBcCi0gICAgICAgICAgIjAuMDYxMjUsIDAuMDU2MjUsIDAuMDUsIDAuMDQzNzUsIDAuMDQzNzUsIDAuMDMzNzUsIDAuMDMxMjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTI1LCAwLjAwMTI1LCAtMC4wMDUsIC0wLjAxNzUsIC0wLjAyMzc1LCAtMC4wMjc1LCAtMC4wMzYyNSIsIFwKLSAgICAgICAgICAiMC4wMTc1LCAwLjAwNjI1LCAwLCAtMC4wMTI1LCAtMC4wMTI1LCAtMC4wMjI1LCAtMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4wMjM3NSwgMC4wMTI1LCAwLjAwNjI1LCAtMC4wMDYyNSwgLTAuMDEyNSwgLTAuMDE2MjUsIC0wLjAyNSIsIFwKLSAgICAgICAgICAiMC4wMywgMC4wMTg3NSwgMC4wMDYyNSwgMCwgLTAuMDA2MjUsIC0wLjAxLCAtMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4wMywgMC4wMjUsIDAuMDEyNSwgMC4wMDYyNSwgMCwgLTAuMDEsIC0wLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMDQsIDAuMDI4NzUsIDAuMDE2MjUsIDAuMDEsIDAuMDAzNzUsIC0wLjAwNjI1LCAtMC4wMDg3NSIsIFwKLSAgICAgICAgICAiMC4wNDI1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMTI1LCAwLjAwNjI1LCAwLjAwMjUsIC0wLjAwNjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihRKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMzM4MzIyOwotICAgIGZ1bmN0aW9uIDogIk4zMCI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3NlbnNlIDogbm9uX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiByaXNpbmdfZWRnZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTE5ODUsIDAuMTM5MDc3LCAwLjI0NDc1OSwgMC4zMzgwMjIsIDAuNDYyMzUxLCAwLjcxMTQ4OSwgMC44NjY3NDUiLCBcCi0gICAgICAgICAgIjAuMTI4MDI4LCAwLjE0NzI1OSwgMC4yNTI5NDEsIDAuMzQ2MjA1LCAwLjQ3MDUxNSwgMC43MjAxODIsIDAuODc1OTYzIiwgXAotICAgICAgICAgICIwLjEzNzA3NCwgMC4xNTYzMjIsIDAuMjYxOTg5LCAwLjM1NTI0OCwgMC40Nzk5NzksIDAuNzI5MjE1LCAwLjg4NDk4NSIsIFwKLSAgICAgICAgICAiMC4xNDQzMTgsIDAuMTYzNTYsIDAuMjY5MjM4LCAwLjM2MjQ5MiwgMC40ODcyMTYsIDAuNzM2NDUyLCAwLjg5MjIyMSIsIFwKLSAgICAgICAgICAiMC4xNTAwNDYsIDAuMTY5MzE4LCAwLjI3NDk4NywgMC4zNjgyMzYsIDAuNDkyNjMsIDAuNzQxNDcyLCAwLjg5Nzk4NCIsIFwKLSAgICAgICAgICAiMC4xNTc3NDksIDAuMTc3MDM2LCAwLjI4MjcxNywgMC4zNzU5MjIsIDAuNTAwNjUyLCAwLjc0OTkxMywgMC45MDU2OTQiLCBcCi0gICAgICAgICAgIjAuMTYzMjA3LCAwLjE4MjQ5NCwgMC4yODgyMiwgMC4zODE0ODksIDAuNTA2MTQyLCAwLjc1NTMxNywgMC45MTA0NDEiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc4MTA4LCAwLjExNTc2MSwgMC4zMzYwNywgMC41MzIyNzgsIDAuNzk1NjY4LCAxLjMyMjM2LCAxLjY1MzYxIiwgXAotICAgICAgICAgICIwLjA3ODA5NiwgMC4xMTU3NjEsIDAuMzM2MDcxLCAwLjUzMjIzNiwgMC43OTU1MzUsIDEuMzI1MDUsIDEuNjU1MDUiLCBcCi0gICAgICAgICAgIjAuMDc4MTEsIDAuMTE1NzY2LCAwLjMzNjA4MywgMC41MzIyNjgsIDAuNzk3MDMyLCAxLjMyNTA0LCAxLjY1NDk1IiwgXAotICAgICAgICAgICIwLjA3ODE2MywgMC4xMTU3NjIsIDAuMzM2MDgzLCAwLjUzMjMwOSwgMC43OTcwMzUsIDEuMzI1MDYsIDEuNjU0OTciLCBcCi0gICAgICAgICAgIjAuMDc4MTY2LCAwLjExNTgxMywgMC4zMzYwNDUsIDAuNTMyMzY0LCAwLjc5NTk5NiwgMS4zMjI4LCAxLjY1NDg5IiwgXAotICAgICAgICAgICIwLjA3ODE3NCwgMC4xMTU3MTgsIDAuMzM1NjY2LCAwLjUzMjQyNywgMC43OTY5NTMsIDEuMzI0OTgsIDEuNjU0OCIsIFwKLSAgICAgICAgICAiMC4wNzgxODYsIDAuMTE1NzY2LCAwLjMzNTg0MywgMC41MzM0MDIsIDAuNzk2OTYsIDEuMzI0OTcsIDEuNjUxNzgiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTEzMDMyLCAwLjEzMTMxOSwgMC4yMzQxNDUsIDAuMzI0NDUsIDAuNDQ1NTY3LCAwLjY4NzExNCwgMC44Mzc4NzciLCBcCi0gICAgICAgICAgIjAuMTIxMjY2LCAwLjEzOTUzOSwgMC4yNDIxOTQsIDAuMzMzMTcyLCAwLjQ1Mzk2NywgMC42OTUyNDIsIDAuODQ2MzYxIiwgXAotICAgICAgICAgICIwLjEzMDQ1NiwgMC4xNDg3OTEsIDAuMjUxNTc3LCAwLjM0MjM1NywgMC40NjI5MTIsIDAuNzA0NDYsIDAuODU0ODA4IiwgXAotICAgICAgICAgICIwLjEzNzg2MywgMC4xNTYxNDEsIDAuMjU4OTYyLCAwLjM0OTcyMSwgMC40NzAzODMsIDAuNzExOTI3LCAwLjg2Mjc0MiIsIFwKLSAgICAgICAgICAiMC4xNDM3OTksIDAuMTYyMDkyLCAwLjI2NDkwNiwgMC4zNTU2ODYsIDAuNDc2MjA0LCAwLjcxNzc3NywgMC44NjgxMTciLCBcCi0gICAgICAgICAgIjAuMTUxNjI2LCAwLjE2OTk1MywgMC4yNzI3MTcsIDAuMzYzNDksIDAuNDg0MDg2LCAwLjcyNTU4MywgMC44NzU5MzkiLCBcCi0gICAgICAgICAgIjAuMTU3MzIzLCAwLjE3NTY2MywgMC4yNzg3ODIsIDAuMzY4NzQ0LCAwLjQ4OTgyNSwgMC43MzEzNzMsIDAuODgyMDQ3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3MDM0MSwgMC4xMDY1MDUsIDAuMzE1ODMsIDAuNTAxODk4LCAwLjc1MTIsIDEuMjQ5MSwgMS41NiIsIFwKLSAgICAgICAgICAiMC4wNzA0MjksIDAuMTA2NTAyLCAwLjMxNjE3LCAwLjUwMjAyOSwgMC43NTA2NzIsIDEuMjQ4OTMsIDEuNTYwMzMiLCBcCi0gICAgICAgICAgIjAuMDcwMjY3LCAwLjEwNjE2NywgMC4zMTU4NDcsIDAuNTAyMSwgMC43NTExNDIsIDEuMjQ4OTksIDEuNTU2OTYiLCBcCi0gICAgICAgICAgIjAuMDcwMzMyLCAwLjEwNjUsIDAuMzE1ODI2LCAwLjUwMjI5OCwgMC43NTExOTMsIDEuMjQ5MDksIDEuNTYwMDciLCBcCi0gICAgICAgICAgIjAuMDcwMDI3LCAwLjEwNjUwOSwgMC4zMTU4NTEsIDAuNTAyMDc5LCAwLjc1MTEwNywgMS4yNDg5OCwgMS41NTY3NyIsIFwKLSAgICAgICAgICAiMC4wNzA0NzgsIDAuMTA2NjEyLCAwLjMxNTgyOCwgMC41MDIxMTgsIDAuNzUxMTMsIDEuMjQ4NzQsIDEuNTU3NDYiLCBcCi0gICAgICAgICAgIjAuMDcwNTY1LCAwLjEwNjU2MSwgMC4zMTU0NjksIDAuNTAxMjc2LCAwLjc1MTIyNSwgMS4yNDg3MywgMS41NTk2OCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogY2xlYXI7Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2MjgwOCwgMC4wODEwNTYsIDAuMTgzNzU3LCAwLjI3NDM4NCwgMC4zOTUxNzcsIDAuNjM2NTM0LCAwLjc4Nzc1NyIsIFwKLSAgICAgICAgICAiMC4wNzA4OTksIDAuMDg5MTYxLCAwLjE5MTg4MywgMC4yODIyMjcsIDAuNDAzMTg0LCAwLjY0NDc2NCwgMC43OTU3NzciLCBcCi0gICAgICAgICAgIjAuMDgwNDA0LCAwLjA5ODY0NywgMC4yMDEzMDksIDAuMjkyMDQzLCAwLjQxMjU5MywgMC42NTQ0MjgsIDAuODA1MTY0IiwgXAotICAgICAgICAgICIwLjA4ODE0MiwgMC4xMDYzMTgsIDAuMjA5MDcsIDAuMjk5NzMsIDAuNDIwNTM0LCAwLjY2MjA4NiwgMC44MTI5OSIsIFwKLSAgICAgICAgICAiMC4wOTQzMDMsIDAuMTEyNTAzLCAwLjIxNTIzMiwgMC4zMDU4MTUsIDAuNDI2Mzk1LCAwLjY2ODI0LCAwLjgxODkzMyIsIFwKLSAgICAgICAgICAiMC4xMDI0ODgsIDAuMTIwNjUyLCAwLjIyMzM4OCwgMC4zMTM4OCwgMC40MzQ1ODgsIDAuNjc2MDg0LCAwLjgyNjk4MiIsIFwKLSAgICAgICAgICAiMC4xMDgyNDgsIDAuMTI2Mzk5LCAwLjIyOTAzNiwgMC4zMTk2OTIsIDAuNDQwMzY2LCAwLjY4MTgxOCwgMC44MzI4NDgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDcwMjIzLCAwLjEwNjYzMiwgMC4zMTU4ODEsIDAuNTAyMjMyLCAwLjc1MTA5OCwgMS4yNDg2OCwgMS41NjAyNCIsIFwKLSAgICAgICAgICAiMC4wNzAyNDQsIDAuMTA2MjYyLCAwLjMxNTcyMiwgMC41MDE4NjIsIDAuNzUxMDA3LCAxLjI0ODk2LCAxLjU2MDEiLCBcCi0gICAgICAgICAgIjAuMDcwMzA3LCAwLjEwNjU4LCAwLjMxNTc1MywgMC41MDIyNjQsIDAuNzUwOTA5LCAxLjI0OTExLCAxLjU1OTkzIiwgXAotICAgICAgICAgICIwLjA3MTE1OSwgMC4xMDY5OTQsIDAuMzE1Njg1LCAwLjUwMjI4OCwgMC43NTA4NjQsIDEuMjQ4NSwgMS41NTk5IiwgXAotICAgICAgICAgICIwLjA3MTkyMywgMC4xMDc0NzIsIDAuMzE1NjYsIDAuNTAyMTk1LCAwLjc1MDQ2MiwgMS4yNDg4NCwgMS41NTk2MyIsIFwKLSAgICAgICAgICAiMC4wNzI1OCwgMC4xMDc3OTgsIDAuMzE1Nzg0LCAwLjUwMjI0MiwgMC43NTA5NzIsIDEuMjQ4NjMsIDEuNTU5NTEiLCBcCi0gICAgICAgICAgIjAuMDczNTM0LCAwLjEwODExOCwgMC4zMTU4NjEsIDAuNTAyMjQ5LCAwLjc1MTA3NCwgMS4yNDg1MywgMS41NTk3OSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDUzMTUsIDAuMDA1MzEsIDAuMDA1MjgxLCAwLjAwNTI2OCwgMC4wMDUyNjEsIDAuMDA1MjUyLCAwLjAwNTI1MSIsIFwKLSAgICAgICAgICAiMC4wMDUzMDgsIDAuMDA1MzAzLCAwLjAwNTI3NCwgMC4wMDUyNjIsIDAuMDA1MjUzLCAwLjAwNTI0NiwgMC4wMDUyNDMiLCBcCi0gICAgICAgICAgIjAuMDA1MzU1LCAwLjAwNTM1MSwgMC4wMDUzMjIsIDAuMDA1MzA5LCAwLjAwNTMsIDAuMDA1MjkyLCAwLjAwNTI5IiwgXAotICAgICAgICAgICIwLjAwNTM5OCwgMC4wMDUzOTQsIDAuMDA1MzY1LCAwLjAwNTM1MiwgMC4wMDUzNDMsIDAuMDA1MzM1LCAwLjAwNTMzMiIsIFwKLSAgICAgICAgICAiMC4wMDU0NjgsIDAuMDA1NDY1LCAwLjAwNTQzNywgMC4wMDU0MjMsIDAuMDA1NDE0LCAwLjAwNTQwNSwgMC4wMDU0MDIiLCBcCi0gICAgICAgICAgIjAuMDA1NTY4LCAwLjAwNTU1NiwgMC4wMDU1MzEsIDAuMDA1NTI3LCAwLjAwNTUwNywgMC4wMDU0OTgsIDAuMDA1NDk0IiwgXAotICAgICAgICAgICIwLjAwNTY3NywgMC4wMDU2NTcsIDAuMDA1NjI4LCAwLjAwNTYzMiwgMC4wMDU2MDQsIDAuMDA1NjExLCAwLjAwNTYwNyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNTQzMSwgMC4wMDU0NCwgMC4wMDU0NTMsIDAuMDA1NDU2LCAwLjAwNTQ1OCwgMC4wMDU0NTksIDAuMDA1NDU5IiwgXAotICAgICAgICAgICIwLjAwNTQzLCAwLjAwNTQzOCwgMC4wMDU0NTEsIDAuMDA1NDUzLCAwLjAwNTQ1NSwgMC4wMDU0NTcsIDAuMDA1NDU4IiwgXAotICAgICAgICAgICIwLjAwNTQ4MywgMC4wMDU0OTIsIDAuMDA1NTA0LCAwLjAwNTUwNywgMC4wMDU1MDgsIDAuMDA1NTEsIDAuMDA1NTEiLCBcCi0gICAgICAgICAgIjAuMDA1NTMzLCAwLjAwNTU0MSwgMC4wMDU1NTMsIDAuMDA1NTU1LCAwLjAwNTU1NywgMC4wMDU1NTgsIDAuMDA1NTU4IiwgXAotICAgICAgICAgICIwLjAwNTYwOCwgMC4wMDU2MTYsIDAuMDA1NjI3LCAwLjAwNTYyOSwgMC4wMDU2MywgMC4wMDU2MzEsIDAuMDA1NjMyIiwgXAotICAgICAgICAgICIwLjAwNTczLCAwLjAwNTczMiwgMC4wMDU3NDEsIDAuMDA1NzUsIDAuMDA1NzQ0LCAwLjAwNTc1MiwgMC4wMDU3NTIiLCBcCi0gICAgICAgICAgIjAuMDA1ODMsIDAuMDA1ODI1LCAwLjAwNTgzMywgMC4wMDU4NDcsIDAuMDA1ODQ5LCAwLjAwNTgzNSwgMC4wMDU4NDkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1NjA5LCAwLjAwNTYxNywgMC4wMDU2MjcsIDAuMDA1NjMsIDAuMDA1NjMxLCAwLjAwNTYzNSwgMC4wMDU2MzUiLCBcCi0gICAgICAgICAgIjAuMDA1NTkzLCAwLjAwNTYwMiwgMC4wMDU2MTUsIDAuMDA1NjE3LCAwLjAwNTYxOSwgMC4wMDU2MjIsIDAuMDA1NjIzIiwgXAotICAgICAgICAgICIwLjAwNTYxOCwgMC4wMDU2MjYsIDAuMDA1NjQxLCAwLjAwNTY0NCwgMC4wMDU2NDYsIDAuMDA1NjQ4LCAwLjAwNTY0OCIsIFwKLSAgICAgICAgICAiMC4wMDU2NjIsIDAuMDA1NjcyLCAwLjAwNTY4NSwgMC4wMDU2ODksIDAuMDA1NjkxLCAwLjAwNTY5MywgMC4wMDU2OTMiLCBcCi0gICAgICAgICAgIjAuMDA1NzI1LCAwLjAwNTczMywgMC4wMDU3NDcsIDAuMDA1NzQ5LCAwLjAwNTc1MiwgMC4wMDU3NTQsIDAuMDA1NzU0IiwgXAotICAgICAgICAgICIwLjAwNTg0MywgMC4wMDU4NDgsIDAuMDA1ODYsIDAuMDA1ODYzLCAwLjAwNTg2NywgMC4wMDU4NjksIDAuMDA1ODY5IiwgXAotICAgICAgICAgICIwLjAwNTk2MSwgMC4wMDU5NjUsIDAuMDA1OTc0LCAwLjAwNTk3OSwgMC4wMDU5ODEsIDAuMDA1OTgzLCAwLjAwNTk4NCIpOwotICAgICAgfQotICAgICAgcmlzZV9wb3dlcihzY2FsYXIpIHsKLSAgICAgICAgdmFsdWVzKCIwIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihRTikgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjMzOTk1OwotICAgIGZ1bmN0aW9uIDogIlFCSU5UIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBub25fdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJpc2luZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMjE2MzEsIDAuMTQwMjM2LCAwLjI0NTY4MywgMC4zMzg3NzIsIDAuNDYyODQ2LCAwLjcxMTAxNywgMC44NjYwMzUiLCBcCi0gICAgICAgICAgIjAuMTI5ODkzLCAwLjE0ODQ1OSwgMC4yNTM4OTMsIDAuMzQ3MDUsIDAuNDcxMTQ3LCAwLjcxOTIsIDAuODc0Mzc3IiwgXAotICAgICAgICAgICIwLjEzOTA1MSwgMC4xNTc2NTYsIDAuMjYzMTA3LCAwLjM1NjIzOSwgMC40ODAyMzUsIDAuNzI4NDA1LCAwLjg4MzQ0OCIsIFwKLSAgICAgICAgICAiMC4xNDY0NjMsIDAuMTY1MDY3LCAwLjI3MDUxNiwgMC4zNjM2MzksIDAuNDg3Njc5LCAwLjczNTg0OSwgMC44OTA4OTIiLCBcCi0gICAgICAgICAgIjAuMTUyMzkyLCAwLjE3MDk5NiwgMC4yNzY0NDYsIDAuMzY5NTc5LCAwLjQ5MzU2MywgMC43NDE3NDMsIDAuODk2NzkiLCBcCi0gICAgICAgICAgIjAuMTYwMjQzLCAwLjE3ODgzNiwgMC4yODQyODUsIDAuMzc3NDI0LCAwLjUwMTQyOSwgMC43NDk1OSwgMC45MDQ2MyIsIFwKLSAgICAgICAgICAiMC4xNjU5MTMsIDAuMTg0NjMxLCAwLjI5MDE2LCAwLjM4MzA0OSwgMC41MDcxMywgMC43NTUzNjUsIDAuOTEwMjg0Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3MDUzNCwgMC4xMDk1MjEsIDAuMzMxNzU2LCAwLjUyNjg3MSwgMC43ODkyOTIsIDEuMzEyMjIsIDEuNjM4OTQiLCBcCi0gICAgICAgICAgIjAuMDcwNTMzLCAwLjEwOTUyMSwgMC4zMzEzMDIsIDAuNTI2ODYxLCAwLjc4NzkzMywgMS4zMTIxOCwgMS42MzkwOSIsIFwKLSAgICAgICAgICAiMC4wNzA1MzMsIDAuMTA5MzQxLCAwLjMzMTc2MSwgMC41MjY4ODEsIDAuNzg5MjQ4LCAxLjMxMjIyLCAxLjYzNzUiLCBcCi0gICAgICAgICAgIjAuMDcwNTM0LCAwLjEwOTUxLCAwLjMzMTc1NCwgMC41MjY5NjQsIDAuNzg5Mjk0LCAxLjMxMjIyLCAxLjYzODk0IiwgXAotICAgICAgICAgICIwLjA3MDU1MiwgMC4xMDk1MiwgMC4zMzE3NjEsIDAuNTI2ODc0LCAwLjc4OTI1LCAxLjMxMjIyLCAxLjYzNzQxIiwgXAotICAgICAgICAgICIwLjA3MDUzMywgMC4xMDk0NiwgMC4zMzE3NDYsIDAuNTI2ODg2LCAwLjc4OTI3NiwgMS4zMTIwOSwgMS42Mzc0NiIsIFwKLSAgICAgICAgICAiMC4wNzA1MDIsIDAuMTA5NDI1LCAwLjMzMTIyLCAwLjUyNzIyOCwgMC43ODkyNTEsIDEuMzEyMDksIDEuNjM4ODgiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTI1NTY1LCAwLjE0MzY0OCwgMC4yNDYxNDQsIDAuMzM2Njc0LCAwLjQ1NzI5NSwgMC42OTg0NjYsIDAuODQ5Mjc3IiwgXAotICAgICAgICAgICIwLjEzMzc0MSwgMC4xNTE4MjQsIDAuMjU0MzE5LCAwLjM0NDg1LCAwLjQ2NTQ1OCwgMC43MDY3LCAwLjg1NzUwMiIsIFwKLSAgICAgICAgICAiMC4xNDI3ODcsIDAuMTYwODczLCAwLjI2MzM2MywgMC4zNTM4OTIsIDAuNDc0NDg2LCAwLjcxNTc0LCAwLjg2NjUwMSIsIFwKLSAgICAgICAgICAiMC4xNTAwMzEsIDAuMTY4MTE0LCAwLjI3MDYwNSwgMC4zNjExMzIsIDAuNDgxNzI1LCAwLjcyMjk4NCwgMC44NzM3NDYiLCBcCi0gICAgICAgICAgIjAuMTU1ODIzLCAwLjE3MzkxNCwgMC4yNzY0LCAwLjM2NjkyNSwgMC40ODc1MiwgMC43Mjg3NDIsIDAuODc5NTI1IiwgXAotICAgICAgICAgICIwLjE2MzQ5NCwgMC4xODE2MTEsIDAuMjg0MTA5LCAwLjM3NDU3OSwgMC40OTUxODksIDAuNzM2NDksIDAuODg3MjM2IiwgXAotICAgICAgICAgICIwLjE2ODk0NCwgMC4xODcxMTEsIDAuMjg5NTk0LCAwLjM4MDAxMiwgMC41MDA2NzIsIDAuNzQxODkyLCAwLjg5MjU4MiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjczMiwgMC4xMDQxODEsIDAuMzE1MTQ1LCAwLjUwMDc0MywgMC43NDg5NzYsIDEuMjQ1OSwgMS41NTY0MyIsIFwKLSAgICAgICAgICAiMC4wNjczMDYsIDAuMTA0MTgxLCAwLjMxNTEzNywgMC41MDA3MjgsIDAuNzQ4OTgzLCAxLjI0NzUsIDEuNTU4MyIsIFwKLSAgICAgICAgICAiMC4wNjczMTUsIDAuMTA0MTk3LCAwLjMxNTE0NiwgMC41MDA3MzcsIDAuNzUwMzc2LCAxLjI0NzQ5LCAxLjU1ODE2IiwgXAotICAgICAgICAgICIwLjA2NzMzOSwgMC4xMDQxODQsIDAuMzE1MTQ1LCAwLjUwMDc0OSwgMC43NTAzNjMsIDEuMjQ3NTEsIDEuNTU4MTgiLCBcCi0gICAgICAgICAgIjAuMDY3MzUzLCAwLjEwNDIsIDAuMzE1MTM3LCAwLjUwMDc2NSwgMC43NDk0MzksIDEuMjQ2MDMsIDEuNTU4MTgiLCBcCi0gICAgICAgICAgIjAuMDY3MzUyLCAwLjEwNDE3MiwgMC4zMTQ3NTUsIDAuNTAwODIsIDAuNzUwMTc1LCAxLjI0NzM1LCAxLjU1Nzk1IiwgXAotICAgICAgICAgICIwLjA2NzMxNCwgMC4xMDQxMzksIDAuMzE0ODksIDAuNTAxNjkxLCAwLjc1MDE2LCAxLjI0NzMxLCAxLjU1NjA4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiBwcmVzZXQ7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3MTQwOSwgMC4wODk5OTksIDAuMTk1NDQzLCAwLjI4ODQ5NCwgMC40MTI1OTUsIDAuNjYwNjg4LCAwLjgxNTkxIiwgXAotICAgICAgICAgICIwLjA3OTQ3MywgMC4wOTgwMjIsIDAuMjAzNDY2LCAwLjI5NjUxNywgMC40MjA1OTUsIDAuNjY4Nzg5LCAwLjgyMzgzOSIsIFwKLSAgICAgICAgICAiMC4wODg4NjEsIDAuMTA3NDQ5LCAwLjIxMjg4NywgMC4zMDU5MzcsIDAuNDI5OTg3LCAwLjY3ODE4NCwgMC44MzMyNTEiLCBcCi0gICAgICAgICAgIjAuMDk2MjY3LCAwLjExNDg0NCwgMC4yMjAyNzEsIDAuMzEzMzE5LCAwLjQzNzM5LCAwLjY4NTUwNiwgMC44NDA2OTEiLCBcCi0gICAgICAgICAgIjAuMTAyMDg0LCAwLjEyMDU4NiwgMC4yMjYwMDQsIDAuMzE5MDQ1LCAwLjQ0MzExOSwgMC42OTEzNDEsIDAuODQ2MzEzIiwgXAotICAgICAgICAgICIwLjEwOTYxMiwgMC4xMjgxNzMsIDAuMjMzNTcyLCAwLjMyNjYzMywgMC40NTA2NzYsIDAuNjk4NzksIDAuODUzODY1IiwgXAotICAgICAgICAgICIwLjExNDkxNiwgMC4xMzM0NjksIDAuMjM4ODQxLCAwLjMzMTkyNSwgMC40NTU5NTgsIDAuNzA0MDY5LCAwLjg1OTIiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDcwNDcyLCAwLjEwOTM2NiwgMC4zMzE1NTksIDAuNTI3NDkxLCAwLjc4OTEwMSwgMS4zMTE5NywgMS42Mzg4OSIsIFwKLSAgICAgICAgICAiMC4wNzA0OTEsIDAuMTA5MzY2LCAwLjMzMTU1OCwgMC41MjcxNzksIDAuNzg5MDcsIDEuMzEyMDMsIDEuNjM4NzkiLCBcCi0gICAgICAgICAgIjAuMDcwNTEyLCAwLjEwOTM3LCAwLjMzMTE0OCwgMC41Mjc1NTMsIDAuNzg5MDA0LCAxLjMxMTk4LCAxLjYzODc0IiwgXAotICAgICAgICAgICIwLjA3MDU1OCwgMC4xMDk0MjQsIDAuMzMxNTQ2LCAwLjUyNzU1NywgMC43ODkwMTQsIDEuMzExODMsIDEuNjM4NzMiLCBcCi0gICAgICAgICAgIjAuMDcwNTgzLCAwLjEwOTQxMiwgMC4zMzE1NDksIDAuNTI3NTYxLCAwLjc4Nzk2MiwgMS4zMTE4NywgMS42Mzg2MiIsIFwKLSAgICAgICAgICAiMC4wNzA3ODksIDAuMTA5NDEyLCAwLjMzMTU3OSwgMC41Mjc1NDcsIDAuNzg4OTQ2LCAxLjMxMTkyLCAxLjYzODYyIiwgXAotICAgICAgICAgICIwLjA3MDcxMSwgMC4xMDk2MDQsIDAuMzMxNTMxLCAwLjUyNzYzNiwgMC43ODg5MiwgMS4zMTE4MywgMS42Mzg2MyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDU0MzEsIDAuMDA1NDQsIDAuMDA1NDUzLCAwLjAwNTQ1NiwgMC4wMDU0NTgsIDAuMDA1NDU5LCAwLjAwNTQ1OSIsIFwKLSAgICAgICAgICAiMC4wMDU0MywgMC4wMDU0MzgsIDAuMDA1NDUxLCAwLjAwNTQ1MywgMC4wMDU0NTUsIDAuMDA1NDU3LCAwLjAwNTQ1OCIsIFwKLSAgICAgICAgICAiMC4wMDU0ODMsIDAuMDA1NDkyLCAwLjAwNTUwNCwgMC4wMDU1MDcsIDAuMDA1NTA4LCAwLjAwNTUxLCAwLjAwNTUxIiwgXAotICAgICAgICAgICIwLjAwNTUzMywgMC4wMDU1NDEsIDAuMDA1NTUzLCAwLjAwNTU1NSwgMC4wMDU1NTcsIDAuMDA1NTU4LCAwLjAwNTU1OCIsIFwKLSAgICAgICAgICAiMC4wMDU2MDgsIDAuMDA1NjE2LCAwLjAwNTYyNywgMC4wMDU2MjksIDAuMDA1NjMsIDAuMDA1NjMxLCAwLjAwNTYzMiIsIFwKLSAgICAgICAgICAiMC4wMDU3MywgMC4wMDU3MzIsIDAuMDA1NzQxLCAwLjAwNTc1LCAwLjAwNTc0NCwgMC4wMDU3NTIsIDAuMDA1NzUyIiwgXAotICAgICAgICAgICIwLjAwNTgzLCAwLjAwNTgyNSwgMC4wMDU4MzMsIDAuMDA1ODQ3LCAwLjAwNTg0OSwgMC4wMDU4MzUsIDAuMDA1ODQ5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1MzE1LCAwLjAwNTMxLCAwLjAwNTI4MSwgMC4wMDUyNjgsIDAuMDA1MjYxLCAwLjAwNTI1MiwgMC4wMDUyNTEiLCBcCi0gICAgICAgICAgIjAuMDA1MzA4LCAwLjAwNTMwMywgMC4wMDUyNzQsIDAuMDA1MjYyLCAwLjAwNTI1MywgMC4wMDUyNDYsIDAuMDA1MjQzIiwgXAotICAgICAgICAgICIwLjAwNTM1NSwgMC4wMDUzNTEsIDAuMDA1MzIyLCAwLjAwNTMwOSwgMC4wMDUzLCAwLjAwNTI5MiwgMC4wMDUyOSIsIFwKLSAgICAgICAgICAiMC4wMDUzOTgsIDAuMDA1Mzk0LCAwLjAwNTM2NSwgMC4wMDUzNTIsIDAuMDA1MzQzLCAwLjAwNTMzNSwgMC4wMDUzMzIiLCBcCi0gICAgICAgICAgIjAuMDA1NDY4LCAwLjAwNTQ2NSwgMC4wMDU0MzcsIDAuMDA1NDIzLCAwLjAwNTQxNCwgMC4wMDU0MDUsIDAuMDA1NDAyIiwgXAotICAgICAgICAgICIwLjAwNTU2OCwgMC4wMDU1NTYsIDAuMDA1NTMxLCAwLjAwNTUyNywgMC4wMDU1MDcsIDAuMDA1NDk4LCAwLjAwNTQ5NCIsIFwKLSAgICAgICAgICAiMC4wMDU2NzcsIDAuMDA1NjU3LCAwLjAwNTYyOCwgMC4wMDU2MzIsIDAuMDA1NjA0LCAwLjAwNTYxMSwgMC4wMDU2MDciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1NjA5LCAwLjAwNTYxNywgMC4wMDU2MjcsIDAuMDA1NjMsIDAuMDA1NjMxLCAwLjAwNTYzNSwgMC4wMDU2MzUiLCBcCi0gICAgICAgICAgIjAuMDA1NTkzLCAwLjAwNTYwMiwgMC4wMDU2MTUsIDAuMDA1NjE3LCAwLjAwNTYxOSwgMC4wMDU2MjIsIDAuMDA1NjIzIiwgXAotICAgICAgICAgICIwLjAwNTYxOCwgMC4wMDU2MjYsIDAuMDA1NjQxLCAwLjAwNTY0NCwgMC4wMDU2NDYsIDAuMDA1NjQ4LCAwLjAwNTY0OCIsIFwKLSAgICAgICAgICAiMC4wMDU2NjIsIDAuMDA1NjcyLCAwLjAwNTY4NSwgMC4wMDU2ODksIDAuMDA1NjkxLCAwLjAwNTY5MywgMC4wMDU2OTMiLCBcCi0gICAgICAgICAgIjAuMDA1NzI1LCAwLjAwNTczMywgMC4wMDU3NDcsIDAuMDA1NzQ5LCAwLjAwNTc1MiwgMC4wMDU3NTQsIDAuMDA1NzU0IiwgXAotICAgICAgICAgICIwLjAwNTg0MywgMC4wMDU4NDgsIDAuMDA1ODYsIDAuMDA1ODYzLCAwLjAwNTg2NywgMC4wMDU4NjksIDAuMDA1ODY5IiwgXAotICAgICAgICAgICIwLjAwNTk2MSwgMC4wMDU5NjUsIDAuMDA1OTc0LCAwLjAwNTk3OSwgMC4wMDU5ODEsIDAuMDA1OTgzLCAwLjAwNTk4NCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihzY2FsYXIpIHsKLSAgICAgICAgdmFsdWVzKCIwIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihSTikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNjAyNzk7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNTEyNjM7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNjAyNzk7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNTkzLCAwLjAwMDU5MywgMC4wMDA1OTEsIDAuMDAwNTkyLCAwLjAwMDU5MiwgMC4wMDA1OTIsIDAuMDAwNTkyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNjEzLCAwLjAwMDYwMiwgMC4wMDA2LCAwLjAwMDU5OCwgMC4wMDA1OTksIDAuMDAwNTk2LCAwLjAwMDU5NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQiOwotICAgICAgc2RmX2NvbmQgOiAiRCA9PSAxJ2IwIjsKLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjA3MTQwOCwgMC4wNzk0NzMsIDAuMDg4ODYsIDAuMDk2MjY2LCAwLjEwMjA3OSwgMC4xMDk1NjIsIDAuMTE0OTE2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogcmVjb3ZlcnlfcmlzaW5nOwotICAgICAgd2hlbiA6ICJEIjsKLSAgICAgIHNkZl9jb25kIDogIkQgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQocmVjb3ZlcnlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAyNSwgLTAuMDM2MjUsIC0wLjA0MjUsIC0wLjA0ODc1LCAtMC4wNTUsIC0wLjA2NSwgLTAuMDY3NSIsIFwKLSAgICAgICAgICAiLTAuMDI2MjUsIC0wLjAzNzUsIC0wLjA1LCAtMC4wNTYyNSwgLTAuMDYyNSwgLTAuMDY2MjUsIC0wLjA3NSIsIFwKLSAgICAgICAgICAiLTAuMDIsIC0wLjAzMTI1LCAtMC4wNDM3NSwgLTAuMDUsIC0wLjA1NjI1LCAtMC4wNiwgLTAuMDY4NzUiLCBcCi0gICAgICAgICAgIi0wLjAwNzUsIC0wLjAxODc1LCAtMC4wMzEyNSwgLTAuMDM3NSwgLTAuMDQzNzUsIC0wLjA1Mzc1LCAtMC4wNTYyNSIsIFwKLSAgICAgICAgICAiMC4wMDUsIC0wLjAwNjI1LCAtMC4wMTg3NSwgLTAuMDI1LCAtMC4wMzEyNSwgLTAuMDQxMjUsIC0wLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjAyNzUsIDAuMDE2MjUsIDAuMDAzNzUsIC0wLjAwMjUsIC0wLjAwODc1LCAtMC4wMTg3NSwgLTAuMDIxMjUiLCBcCi0gICAgICAgICAgIjAuMDQ4NzUsIDAuMDM3NSwgMC4wMjUsIDAuMDE4NzUsIDAuMDEyNSwgMC4wMDI1LCAtMC4wMDYyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJlbW92YWxfcmlzaW5nOwotICAgICAgd2hlbiA6ICJEIjsKLSAgICAgIHNkZl9jb25kIDogIkQgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQocmVtb3ZhbF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzc1LCAwLjA0ODc1LCAwLjA1NSwgMC4wNjc1LCAwLjA3Mzc1LCAwLjA3NzUsIDAuMDg2MjUiLCBcCi0gICAgICAgICAgIjAuMDQ1LCAwLjA1NjI1LCAwLjA2MjUsIDAuMDY4NzUsIDAuMDc1LCAwLjA4NSwgMC4wODc1IiwgXAotICAgICAgICAgICIwLjA1MTI1LCAwLjA1NjI1LCAwLjA2ODc1LCAwLjA3NSwgMC4wODEyNSwgMC4wODUsIDAuMDkzNzUiLCBcCi0gICAgICAgICAgIjAuMDUxMjUsIDAuMDYyNSwgMC4wNjg3NSwgMC4wNzUsIDAuMDgxMjUsIDAuMDkxMjUsIDAuMDkzNzUiLCBcCi0gICAgICAgICAgIjAuMDU3NSwgMC4wNjI1LCAwLjA3NSwgMC4wODEyNSwgMC4wODc1LCAwLjA5MTI1LCAwLjEiLCBcCi0gICAgICAgICAgIjAuMDYsIDAuMDcxMjUsIDAuMDc3NSwgMC4wODM3NSwgMC4wOSwgMC4xLCAwLjEwMjUiLCBcCi0gICAgICAgICAgIjAuMDYzNzUsIDAuMDc1LCAwLjA4MTI1LCAwLjA4NzUsIDAuMDkzNzUsIDAuMTAzNzUsIDAuMTA2MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IERGRlJYNCAqCi0gKiAtLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKERGRlJYNCkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAxLjc2NDgzOwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIGZmIChOMzAsUUJJTlQpIHsKLSAgICBuZXh0X3N0YXRlIDogIkQiOwotICAgIGNsb2NrZWRfb24gOiAiQ0siOwotICAgIGNsZWFyIDogIighUk4pIjsKLSAgfQotICBwaW4oQ0spICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDU5NDc5NDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA1OTQ3OTQ7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNTk0NTU4OwotICAgIGNsb2NrIDogdHJ1ZTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDM0MzQsIDAuMDAzNDM3LCAwLjAwMzUsIDAuMDAzNjAzLCAwLjAwMzcwOSwgMC4wMDM5MzIsIDAuMDA0MTM2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA4MDQ2LCAwLjAwODA0MiwgMC4wMDgxMTQsIDAuMDA4MjA2LCAwLjAwODMyNiwgMC4wMDg1NzYsIDAuMDA4NzgxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRCZSTiI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fUk5fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjEwNzEsIDAuMTE1MjE3LCAwLjEyNDIwOCwgMC4xMzExOSwgMC4xMzY3ODgsIDAuMTQ0MjQ1LCAwLjE0OTc0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wNjgyMjEsIDAuMDc2MzIzLCAwLjA4NTA0LCAwLjA5MTU0MiwgMC4wOTY2MDQsIDAuMTAzMzM3LCAwLjEwODMxNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNzE5MDY1OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDcxODE3MzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA3MTkwNjU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyNzMxLCAwLjAwMjcwNCwgMC4wMDI3NDQsIDAuMDAyNzkxLCAwLjAwMjg2OSwgMC4wMDMwMTYsIDAuMDAzMTg1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzMzcyLCAwLjAwMzM1MSwgMC4wMDMzNzUsIDAuMDAzNDMyLCAwLjAwMzQ5OCwgMC4wMDM2MzQsIDAuMDAzNzgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiUk4iOwotICAgICAgc2RmX2NvbmQgOiAiUk4gPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDA2MjUsIC0wLjAwMTI1LCAtMC4wMDEyNSwgMC4wMDUsIDAuMDA1LCAwLjAwODc1LCAwLjAxMTI1IiwgXAotICAgICAgICAgICItMC4wMTc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMCwgMCwgMC4wMDM3NSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxMjUsIC0wLjAxMjUsIC0wLjAwNjI1LCAtMC4wMDYyNSwgLTAuMDAyNSwgMCIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMTI1LCAtMC4wMTI1LCAtMC4wMDg3NSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA4NzUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wMzM3NSwgLTAuMDI4NzUsIC0wLjAyMjUsIC0wLjAyMjUsIC0wLjAxNjI1LCAtMC4wMTg3NSwgLTAuMDE2MjUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMjUsIC0wLjAyNSwgLTAuMDIxMjUsIC0wLjAxODc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTg3NSwgMC4wMjM3NSwgMC4wMywgMC4wMzYyNSwgMC4wNDI1LCAwLjA0NjI1LCAwLjA1NSIsIFwKLSAgICAgICAgICAiMC4wMTM3NSwgMC4wMTg3NSwgMC4wMzEyNSwgMC4wMzEyNSwgMC4wMzc1LCAwLjA0NzUsIDAuMDUiLCBcCi0gICAgICAgICAgIjAuMDA3NSwgMC4wMTg3NSwgMC4wMjUsIDAuMDMxMjUsIDAuMDM3NSwgMC4wNDEyNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4wMDc1LCAwLjAxODc1LCAwLjAyNSwgMC4wMzEyNSwgMC4wMzc1LCAwLjA0MTI1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjAwNzUsIDAuMDE4NzUsIDAuMDI1LCAwLjAzMTI1LCAwLjAzMTI1LCAwLjA0MTI1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjAxLCAwLjAxNSwgMC4wMjEyNSwgMC4wMjc1LCAwLjAzMzc1LCAwLjAzNzUsIDAuMDQ2MjUiLCBcCi0gICAgICAgICAgIjAuMDA3NSwgMC4wMTg3NSwgMC4wMjUsIDAuMDMxMjUsIDAuMDMxMjUsIDAuMDQxMjUsIDAuMDQzNzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlJOIjsKLSAgICAgIHNkZl9jb25kIDogIlJOID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzMTI1LCAwLjAyLCAwLjAxMzc1LCAwLjAxMzc1LCAwLjAwNzUsIDAuMDEsIDAuMDAxMjUiLCBcCi0gICAgICAgICAgIjAuMDM2MjUsIDAuMDMxMjUsIDAuMDI1LCAwLjAxODc1LCAwLjAxODc1LCAwLjAxNSwgMC4wMTI1IiwgXAotICAgICAgICAgICIwLjA0MjUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMjUsIDAuMDI1LCAwLjAyMTI1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMDQ4NzUsIDAuMDQzNzUsIDAuMDMxMjUsIDAuMDMxMjUsIDAuMDI1LCAwLjAyMTI1LCAwLjAxODc1IiwgXAotICAgICAgICAgICIwLjA1NSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDI3NSwgMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMDU4NzUsIDAuMDUzNzUsIDAuMDQ3NSwgMC4wNDEyNSwgMC4wMzUsIDAuMDMxMjUsIDAuMDI4NzUiLCBcCi0gICAgICAgICAgIjAuMDY3NSwgMC4wNTYyNSwgMC4wNSwgMC4wNDM3NSwgMC4wNDM3NSwgMC4wNCwgMC4wMzc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEyNSwgMC4wMDc1LCAtMC4wMDUsIC0wLjAxMTI1LCAtMC4wMTc1LCAtMC4wMjc1LCAtMC4wMyIsIFwKLSAgICAgICAgICAiMC4wMTc1LCAwLjAxMjUsIDAsIC0wLjAwNjI1LCAtMC4wMTI1LCAtMC4wMTYyNSwgLTAuMDI1IiwgXAotICAgICAgICAgICIwLjAyMzc1LCAwLjAxODc1LCAwLjAwNjI1LCAwLCAtMC4wMDYyNSwgLTAuMDEsIC0wLjAxODc1IiwgXAotICAgICAgICAgICIwLjAzLCAwLjAyNSwgMC4wMTI1LCAwLjAwNjI1LCAwLCAtMC4wMSwgLTAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4wMzYyNSwgMC4wMjUsIDAuMDE4NzUsIDAuMDA2MjUsIDAuMDA2MjUsIC0wLjAwMzc1LCAtMC4wMTI1IiwgXAotICAgICAgICAgICIwLjA0LCAwLjAyODc1LCAwLjAyMjUsIDAuMDE2MjUsIDAuMDEsIDAsIC0wLjAwMjUiLCBcCi0gICAgICAgICAgIjAuMDQyNSwgMC4wMzc1LCAwLjAyNSwgMC4wMTg3NSwgMC4wMTI1LCAwLjAwMjUsIDAiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFEpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMS4zNjc5NDsKLSAgICBmdW5jdGlvbiA6ICJOMzAiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5vbl91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcmlzaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk2MDIxLCAwLjE1NDg4NiwgMC4yMTAxNTQsIDAuMjQ5MjksIDAuMzEyNDAyLCAwLjM2NzIxOCwgMC40NDYxMzkiLCBcCi0gICAgICAgICAgIjAuMTA0MDk3LCAwLjE2Mjk5MSwgMC4yMTgyODksIDAuMjU3NzQzLCAwLjMyMDQ4NCwgMC4zNzUyOTQsIDAuNDU0MTc0IiwgXAotICAgICAgICAgICIwLjExMjk0NSwgMC4xNzE4MTQsIDAuMjI3MTU5LCAwLjI2NjM0OCwgMC4zMjkwODksIDAuMzg0MjAxLCAwLjQ2MzA0NyIsIFwKLSAgICAgICAgICAiMC4xMTk3NTYsIDAuMTc4NjkyLCAwLjIzMzg5OCwgMC4yNzMyNjcsIDAuMzM2MTU3LCAwLjM5MDk1NCwgMC40Njk4MjUiLCBcCi0gICAgICAgICAgIjAuMTI1MjExLCAwLjE4NDA3NCwgMC4yMzkzNTIsIDAuMjc4ODA0LCAwLjM0MTYwOSwgMC4zOTY0MDYsIDAuNDc1MjY2IiwgXAotICAgICAgICAgICIwLjEzMjU5MSwgMC4xOTE0NzcsIDAuMjQ2ODMyLCAwLjI4NjMyLCAwLjM0OTA1LCAwLjQwMzg2MSwgMC40ODI3NDEiLCBcCi0gICAgICAgICAgIjAuMTM4MTQsIDAuMTk3MTA4LCAwLjI1MjI4OCwgMC4yOTE0NDEsIDAuMzU0NTY4LCAwLjQwOTM0MywgMC40ODc5MzIiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzAyMDMsIDAuMTQwOTEyLCAwLjI1NTU2NSwgMC4zMzc1NDUsIDAuNDcwNDI5LCAwLjU4NTk4NywgMC43NTE2ODIiLCBcCi0gICAgICAgICAgIjAuMDMwMTcxLCAwLjE0MDk0MSwgMC4yNTU2MiwgMC4zMzc0ODQsIDAuNDcwNDI4LCAwLjU4NTk1MiwgMC43NTEyODciLCBcCi0gICAgICAgICAgIjAuMDMwMTgzLCAwLjE0MDk0OCwgMC4yNTU2MDksIDAuMzM3NDcxLCAwLjQ2OTU3NiwgMC41ODU3NywgMC43NTEyMDUiLCBcCi0gICAgICAgICAgIjAuMDMwMTgzLCAwLjE0MTE0MywgMC4yNTU1OTQsIDAuMzM3OTc0LCAwLjQ3MDQzMywgMC41ODU5NTQsIDAuNzUxMzAzIiwgXAotICAgICAgICAgICIwLjAzMDI3LCAwLjE0MDk4LCAwLjI1NTU5MiwgMC4zMzc5OTQsIDAuNDcwNDMzLCAwLjU4NTk0MSwgMC43NTEzMjMiLCBcCi0gICAgICAgICAgIjAuMDMwMTI3LCAwLjE0MDkyMiwgMC4yNTU2MjgsIDAuMzM3NDMsIDAuNDcwNDM1LCAwLjU4NTk2OSwgMC43NTEyNyIsIFwKLSAgICAgICAgICAiMC4wMzAxODYsIDAuMTQwODg4LCAwLjI1NTU3MiwgMC4zMzc1OTcsIDAuNDcwNDA4LCAwLjU4NTk2NCwgMC43NTE4MTciKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODg4NzIsIDAuMTQ0NTY3LCAwLjE5ODU1MiwgMC4yMzc0NzksIDAuMjk4ODgsIDAuMzUzNDc2LCAwLjQzMDU3NiIsIFwKLSAgICAgICAgICAiMC4wOTY5NzksIDAuMTUyNjc4LCAwLjIwNjYzLCAwLjI0NTU4NiwgMC4zMDcxLCAwLjM2MTIxOCwgMC40Mzg2OTUiLCBcCi0gICAgICAgICAgIjAuMTA1OTcsIDAuMTYxNjYsIDAuMjE1NjI0LCAwLjI1NDU3MywgMC4zMTY0MjIsIDAuMzcwNDAxLCAwLjQ0NzY2NSIsIFwKLSAgICAgICAgICAiMC4xMTI5NzUsIDAuMTY4NjA4LCAwLjIyMjgyMywgMC4yNjE1OTksIDAuMzIzNzY4LCAwLjM3NzU2MiwgMC40NTQ2NzQiLCBcCi0gICAgICAgICAgIjAuMTE4NTU4LCAwLjE3NDI1MSwgMC4yMjg0NzMsIDAuMjY3MzUsIDAuMzI5MzYxLCAwLjM4MzE1LCAwLjQ2MDI2NCIsIFwKLSAgICAgICAgICAiMC4xMjYwMDksIDAuMTgxNjQ4LCAwLjIzNjE3NiwgMC4yNzQ1ODcsIDAuMzM2NjUsIDAuMzkwNTE2LCAwLjQ2NzY2IiwgXAotICAgICAgICAgICIwLjEzMTUwOCwgMC4xODcxNjksIDAuMjQxNTgxLCAwLjI4MDQ1NSwgMC4zNDIxNzEsIDAuMzk1NjksIDAuNDczMTgzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDI1MjE2LCAwLjEzMzgwOSwgMC4yNDY1NTksIDAuMzI2MjI3LCAwLjQ1MzEwOSwgMC41NjY2NzQsIDAuNzI3NTM2IiwgXAotICAgICAgICAgICIwLjAyNTI4NCwgMC4xMzM4MDMsIDAuMjQ2MTA4LCAwLjMyNjIyNiwgMC40NTQzMjQsIDAuNTY2NzA1LCAwLjcyNzU0MyIsIFwKLSAgICAgICAgICAiMC4wMjUyNzksIDAuMTMzNzk0LCAwLjI0NTE0NSwgMC4zMjYyMjYsIDAuNDUzOTI0LCAwLjU2NTYxMywgMC43Mjc1MzYiLCBcCi0gICAgICAgICAgIjAuMDI1MjQ3LCAwLjEzMzg0OCwgMC4yNDUyMzgsIDAuMzI2MjQyLCAwLjQ1NDE0OSwgMC41NjY2ODMsIDAuNzI3NTM3IiwgXAotICAgICAgICAgICIwLjAyNTE4NSwgMC4xMzM4MTksIDAuMjQ1MjQ4LCAwLjMyNTY0MSwgMC40NTQzOSwgMC41NjY2ODUsIDAuNzI3NTM3IiwgXAotICAgICAgICAgICIwLjAyNTI1NSwgMC4xMzQ5NDMsIDAuMjQ2MDk3LCAwLjMyNjE2OSwgMC40NTM5OTQsIDAuNTY2NjQxLCAwLjcyNzQwNyIsIFwKLSAgICAgICAgICAiMC4wMjUyOTgsIDAuMTM0OTU5LCAwLjI0NjE2MiwgMC4zMjQ5NTgsIDAuNDUzODQzLCAwLjU2NjQzLCAwLjcyNzQxNiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogY2xlYXI7Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDMzNzg0LCAwLjA4OTQ3NiwgMC4xNDM0NjYsIDAuMTgyMjA0LCAwLjI0MzkzMywgMC4yOTgxMTQsIDAuMzc1NDg3IiwgXAotICAgICAgICAgICIwLjA0MTkxNywgMC4wOTc2NDcsIDAuMTUxNjQyLCAwLjE5MDMzMywgMC4yNTIyMjMsIDAuMzA2MjA0LCAwLjM4MzU1MyIsIFwKLSAgICAgICAgICAiMC4wNTA4NjEsIDAuMTA2NjM1LCAwLjE2MDYzNywgMC4xOTkzNDIsIDAuMjYxMTExLCAwLjMxNTQ4NSwgMC4zOTI3MDYiLCBcCi0gICAgICAgICAgIjAuMDU3NDkyLCAwLjExMzQ3MywgMC4xNjc0OTEsIDAuMjA2MTk2LCAwLjI2Nzk2OSwgMC4zMjIzMDEsIDAuMzk5MzYiLCBcCi0gICAgICAgICAgIjAuMDYyNzgsIDAuMTE5MDIsIDAuMTczMDY4LCAwLjIxMTYwMywgMC4yNzM0NDksIDAuMzI3Njk1LCAwLjQwNTA2NCIsIFwKLSAgICAgICAgICAiMC4wNjk1NzIsIDAuMTI2MjA0LCAwLjE4MDI1OCwgMC4yMTg5MDgsIDAuMjgwNjc0LCAwLjMzNDY4MywgMC40MTIyIiwgXAotICAgICAgICAgICIwLjA3NDUwNCwgMC4xMzEzNzMsIDAuMTg1MzM5LCAwLjIyNDA4NiwgMC4yODU4NDUsIDAuMzQwMTI4LCAwLjQxNzI5MiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyNDc1MiwgMC4xMzQ4ODEsIDAuMjQ2MjcyLCAwLjMyNjI2MSwgMC40NTQxNCwgMC41NjY1MTUsIDAuNzI3MzEzIiwgXAotICAgICAgICAgICIwLjAyNDgxLCAwLjEzNDQyOCwgMC4yNDYyNTYsIDAuMzI1NDIzLCAwLjQ1NDA1LCAwLjU2NjQzMiwgMC43MjczMTEiLCBcCi0gICAgICAgICAgIjAuMDI1OTQ3LCAwLjEzNTA0MywgMC4yNDYyMjksIDAuMzI1MjEsIDAuNDU0MDkzLCAwLjU2NjQ0OCwgMC43MjczNDEiLCBcCi0gICAgICAgICAgIjAuMDI3MjQsIDAuMTM1MzE2LCAwLjI0NjMzNSwgMC4zMjU2MywgMC40NTQxODgsIDAuNTY2NjM5LCAwLjcyNzI3NCIsIFwKLSAgICAgICAgICAiMC4wMjg0NzQsIDAuMTM1NjMsIDAuMjQ1ODM4LCAwLjMyNjE1OCwgMC40NTQxNTMsIDAuNTY2NTY1LCAwLjcyNzMyOSIsIFwKLSAgICAgICAgICAiMC4wMzAzODMsIDAuMTM1OTM0LCAwLjI0NTg1MSwgMC4zMjU5NjcsIDAuNDU0MDk3LCAwLjU2NjM2NiwgMC43Mjc0MyIsIFwKLSAgICAgICAgICAiMC4wMzE4OSwgMC4xMzYwMTYsIDAuMjQ2NjQyLCAwLjMyNTk4OSwgMC40NTQwNSwgMC41NjY2MTUsIDAuNzI3NDYzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA5OTMxLCAwLjAxMDA1MywgMC4wMTAwNzksIDAuMDEwMDg3LCAwLjAxMDA5NCwgMC4wMTAwOTgsIDAuMDEwMTAxIiwgXAotICAgICAgICAgICIwLjAwOTkyNCwgMC4wMTAwNDYsIDAuMDEwMDcyLCAwLjAxMDA4LCAwLjAxMDA4OCwgMC4wMTAwOTIsIDAuMDEwMDk2IiwgXAotICAgICAgICAgICIwLjAwOTk2NSwgMC4wMTAwODYsIDAuMDEwMTEyLCAwLjAxMDEyLCAwLjAxMDEyOCwgMC4wMTAxMzIsIDAuMDEwMTM1IiwgXAotICAgICAgICAgICIwLjAxMDAxMywgMC4wMTAxMzUsIDAuMDEwMTYxLCAwLjAxMDE3NiwgMC4wMTAxNzcsIDAuMDEwMTg2LCAwLjAxMDE4NCIsIFwKLSAgICAgICAgICAiMC4wMTAwOCwgMC4wMTAyMDMsIDAuMDEwMjI4LCAwLjAxMDIzNywgMC4wMTAyNDQsIDAuMDEwMjUyLCAwLjAxMDI1MSIsIFwKLSAgICAgICAgICAiMC4wMTAxOTMsIDAuMDEwMzI0LCAwLjAxMDM0LCAwLjAxMDM0NywgMC4wMTAzNTYsIDAuMDEwMzU5LCAwLjAxMDM2MyIsIFwKLSAgICAgICAgICAiMC4wMTAyNzgsIDAuMDEwMzk1LCAwLjAxMDQyLCAwLjAxMDQzLCAwLjAxMDQzNSwgMC4wMTA0NDEsIDAuMDEwNDQ0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTAwMDksIDAuMDEwMTUsIDAuMDEwMTczLCAwLjAxMDE4NSwgMC4wMTAxODYsIDAuMDEwMTg0LCAwLjAxMDE5MiIsIFwKLSAgICAgICAgICAiMC4wMTAwMDUsIDAuMDEwMTQ5LCAwLjAxMDE3MiwgMC4wMTAxOCwgMC4wMTAxODYsIDAuMDEwMTkyLCAwLjAxMDE4OCIsIFwKLSAgICAgICAgICAiMC4wMTAwNTksIDAuMDEwMjAxLCAwLjAxMDIyNSwgMC4wMTAyMzIsIDAuMDEwMjM4LCAwLjAxMDI0MSwgMC4wMTAyNDQiLCBcCi0gICAgICAgICAgIjAuMDEwMTE0LCAwLjAxMDI1NiwgMC4wMTAyOCwgMC4wMTAyOTEsIDAuMDEwMjkzLCAwLjAxMDI5MSwgMC4wMTAyOTkiLCBcCi0gICAgICAgICAgIjAuMDEwMTksIDAuMDEwMzMyLCAwLjAxMDM1NywgMC4wMTAzNjIsIDAuMDEwMzY4LCAwLjAxMDM3MiwgMC4wMTAzNyIsIFwKLSAgICAgICAgICAiMC4wMTAzMTIsIDAuMDEwNDYxLCAwLjAxMDQ3MywgMC4wMTA0OCwgMC4wMTA0ODUsIDAuMDEwNTAxLCAwLjAxMDQ5MiIsIFwKLSAgICAgICAgICAiMC4wMTA0MDUsIDAuMDEwNTM5LCAwLjAxMDU2MiwgMC4wMTA1NjgsIDAuMDEwNTc0LCAwLjAxMDU3OCwgMC4wMTA1ODIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTA3NzgsIDAuMDEwODk5LCAwLjAxMDkxNSwgMC4wMTA5MTksIDAuMDEwOTI0LCAwLjAxMDkyNywgMC4wMTA5MjkiLCBcCi0gICAgICAgICAgIjAuMDEwNzMzLCAwLjAxMDg2MSwgMC4wMTA4ODIsIDAuMDEwODg5LCAwLjAxMDg5NCwgMC4wMTA4OTgsIDAuMDEwOSIsIFwKLSAgICAgICAgICAiMC4wMTA3OCwgMC4wMTA4OTIsIDAuMDEwOTE2LCAwLjAxMDkyNiwgMC4wMTA5MzEsIDAuMDEwOTM1LCAwLjAxMDkzOSIsIFwKLSAgICAgICAgICAiMC4wMTA4ODMsIDAuMDEwOTY5LCAwLjAxMDk5NiwgMC4wMTEwMDMsIDAuMDExMDExLCAwLjAxMTAxNSwgMC4wMTEwMTkiLCBcCi0gICAgICAgICAgIjAuMDExMDMxLCAwLjAxMTA3NCwgMC4wMTEwOTgsIDAuMDExMTA4LCAwLjAxMTExNCwgMC4wMTExMTgsIDAuMDExMTIyIiwgXAotICAgICAgICAgICIwLjAxMTI4NSwgMC4wMTEyOTQsIDAuMDExMzE1LCAwLjAxMTMxOSwgMC4wMTEzMjcsIDAuMDExMzMzLCAwLjAxMTMzNSIsIFwKLSAgICAgICAgICAiMC4wMTE1NTgsIDAuMDExNTExLCAwLjAxMTUyNywgMC4wMTE1MzQsIDAuMDExNTQyLCAwLjAxMTU0NiwgMC4wMTE1NDciKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfcG93ZXIoc2NhbGFyKSB7Ci0gICAgICAgIHZhbHVlcygiMCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUU4pICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMS4zNTkzMjsKLSAgICBmdW5jdGlvbiA6ICJRQklOVCI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3NlbnNlIDogbm9uX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiByaXNpbmdfZWRnZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDcxLCAwLjE2MjI2NSwgMC4yMTcxMzEsIDAuMjU2NDA5LCAwLjMxOTE1LCAwLjM3NDE2NiwgMC40NTI2MTciLCBcCi0gICAgICAgICAgIjAuMTE1MjE3LCAwLjE3MDM4OSwgMC4yMjUyNDgsIDAuMjY0NTA4LCAwLjMyNzIxNSwgMC4zODIyMzMsIDAuNDYwNzE5IiwgXAotICAgICAgICAgICIwLjEyNDIwOCwgMC4xNzkzNDUsIDAuMjM0MjExLCAwLjI3MzQ5NiwgMC4zMzYyNjMsIDAuMzkxMjczLCAwLjQ2OTcwMyIsIFwKLSAgICAgICAgICAiMC4xMzExOSwgMC4xODYzNjMsIDAuMjQxMjgyLCAwLjI4MDUzLCAwLjM0MzQxNywgMC4zOTgyNzgsIDAuNDc2NzM0IiwgXAotICAgICAgICAgICIwLjEzNjc4OCwgMC4xOTE5NywgMC4yNDY4NzgsIDAuMjg2MTUsIDAuMzQ5MDA1LCAwLjQwMzg2NCwgMC40ODIzMjEiLCBcCi0gICAgICAgICAgIjAuMTQ0MjQ1LCAwLjE5OTM1MSwgMC4yNTQzNTMsIDAuMjkzNTQzLCAwLjM1NjM5LCAwLjQxMTIyOSwgMC40ODk3NDEiLCBcCi0gICAgICAgICAgIjAuMTQ5NzQsIDAuMjA0ODc2LCAwLjI1OTg4NCwgMC4yOTkxNjcsIDAuMzYxODc0LCAwLjQxNjg0NSwgMC40OTUyMjYiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjUwNiwgMC4xMzgxMjgsIDAuMjUzODc3LCAwLjMzNzUzNiwgMC40Njk0MjUsIDAuNTg2OTY2LCAwLjc1MzE1OCIsIFwKLSAgICAgICAgICAiMC4wMjUwODQsIDAuMTM4MTMsIDAuMjUzNzM0LCAwLjMzNzUzNiwgMC40Njk4MywgMC41ODYxNjgsIDAuNzUzMTU4IiwgXAotICAgICAgICAgICIwLjAyNTA4NCwgMC4xMzgxNzEsIDAuMjUzOTE1LCAwLjMzNzUzNiwgMC40NzA1NSwgMC41ODYwNDksIDAuNzUzMTU2IiwgXAotICAgICAgICAgICIwLjAyNTA2NiwgMC4xMzgwMDksIDAuMjU0MDI1LCAwLjMzNzU0MywgMC40Njk4MDgsIDAuNTg2OTQyLCAwLjc1MzEzIiwgXAotICAgICAgICAgICIwLjAyNTA1OCwgMC4xMzgxMzEsIDAuMjU0MDM1LCAwLjMzNjg5MiwgMC40Njk4MTMsIDAuNTg2OTM5LCAwLjc1MzEzMSIsIFwKLSAgICAgICAgICAiMC4wMjUxMDUsIDAuMTM4MzQ4LCAwLjI1NDAwNywgMC4zMzc0OTYsIDAuNDY5NjQsIDAuNTg2OTQsIDAuNzUzMDk4IiwgXAotICAgICAgICAgICIwLjAyNTA4MSwgMC4xMzgzMDksIDAuMjU0MDgyLCAwLjMzNjgzLCAwLjQ2OTYwNiwgMC41ODYzMTIsIDAuNzUzMDg2Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTE1MTc2LCAwLjE2OTQyMSwgMC4yMjM0MzEsIDAuMjYyMDM1LCAwLjMyMzgwMSwgMC4zNzc4NjMsIDAuNDU1MTU3IiwgXAotICAgICAgICAgICIwLjEyMzI4NiwgMC4xNzc0NzUsIDAuMjMxNDg3LCAwLjI3MDEwNywgMC4zMzE4NDksIDAuMzg1OTI1LCAwLjQ2MzE4NiIsIFwKLSAgICAgICAgICAiMC4xMzIxMzMsIDAuMTg2MzMxLCAwLjI0MDM0MiwgMC4yNzg5NCwgMC4zNDA3MTcsIDAuMzk0NzU4LCAwLjQ3MjA0OSIsIFwKLSAgICAgICAgICAiMC4xMzg4OTksIDAuMTkzMTcxLCAwLjI0NzIxOCwgMC4yODU4MiwgMC4zNDc1OSwgMC40MDE2NTgsIDAuNDc4OTE4IiwgXAotICAgICAgICAgICIwLjE0NDM1OCwgMC4xOTg2NTcsIDAuMjUyNjgyLCAwLjI5MTI5NywgMC4zNTMwNTMsIDAuNDA3MTIyLCAwLjQ4NDM3NiIsIFwKLSAgICAgICAgICAiMC4xNTE3NDgsIDAuMjA1ODcxLCAwLjI2MDAwMiwgMC4yOTg2MjgsIDAuMzYwMzY3LCAwLjQxNDQzOCwgMC40OTE3MDUiLCBcCi0gICAgICAgICAgIjAuMTU3MzA5LCAwLjIxMTUyNSwgMC4yNjU1NjUsIDAuMzA0MTA4LCAwLjM2NTk0OSwgMC40MTk5NDgsIDAuNDk3MTg3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDI0NjkxLCAwLjEzMzYzMywgMC4yNDU4MTQsIDAuMzI1NzgsIDAuNDU0NzA1LCAwLjU2NjcwMSwgMC43MjY1NTgiLCBcCi0gICAgICAgICAgIjAuMDI0Njk4LCAwLjEzMzYzMSwgMC4yNDU4NSwgMC4zMjU2MjYsIDAuNDU0NzAzLCAwLjU2NjU2OCwgMC43MjY2OTIiLCBcCi0gICAgICAgICAgIjAuMDI0NjksIDAuMTMzNjI2LCAwLjI0NTg0NSwgMC4zMjU2NDEsIDAuNDUzOTA4LCAwLjU2NjUyNSwgMC43MjY1ODUiLCBcCi0gICAgICAgICAgIjAuMDI0Njc0LCAwLjEzMzY1NywgMC4yNDU4MjksIDAuMzI2MTQ0LCAwLjQ1NDcxMiwgMC41NjY1NDQsIDAuNzI2NzE2IiwgXAotICAgICAgICAgICIwLjAyNDY3NSwgMC4xMzM2MjksIDAuMjQ1ODMxLCAwLjMyNjE3OCwgMC40NTQ3MTIsIDAuNTY2NTI3LCAwLjcyNjc1NiIsIFwKLSAgICAgICAgICAiMC4wMjQ2ODcsIDAuMTMzNjI2LCAwLjI0NTgyNSwgMC4zMjU1NjEsIDAuNDU0NzAxLCAwLjU2NjYwNSwgMC43MjY2NjQiLCBcCi0gICAgICAgICAgIjAuMDI0NjYzLCAwLjEzMzcyMiwgMC4yNDU4MDEsIDAuMzI1Nzk1LCAwLjQ1NDY2NiwgMC41NjY2MTMsIDAuNzI3MTM2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiBwcmVzZXQ7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDUyMDU3LCAwLjEwNzIzOSwgMC4xNjIxMzQsIDAuMjAxMzY0LCAwLjI2NDE0NSwgMC4zMTkxMDcsIDAuMzk3NjIyIiwgXAotICAgICAgICAgICIwLjA2MDE2OCwgMC4xMTUzMiwgMC4xNzAyMTQsIDAuMjA5NDU3LCAwLjI3MjIyNywgMC4zMjcxODQsIDAuNDA1NzA4IiwgXAotICAgICAgICAgICIwLjA2OTIzNSwgMC4xMjQzMTEsIDAuMTc5MTk2LCAwLjIxODQyMiwgMC4yODEyMywgMC4zMzYxNzUsIDAuNDE0Njg3IiwgXAotICAgICAgICAgICIwLjA3NjAwNywgMC4xMzA5OTYsIDAuMTg1ODY4LCAwLjIyNTEwNSwgMC4yODc5MDIsIDAuMzQyODYyLCAwLjQyMTMzIiwgXAotICAgICAgICAgICIwLjA4MTQzMSwgMC4xMzYzNTIsIDAuMTkxMjE3LCAwLjIzMDQzLCAwLjI5MzIzNSwgMC4zNDgxNDcsIDAuNDI2NjgzIiwgXAotICAgICAgICAgICIwLjA4ODUyNSwgMC4xNDMyOTUsIDAuMTk4MTQyLCAwLjIzNzM3NSwgMC4zMDAxMTMsIDAuMzU1MDgzLCAwLjQzMzYxMSIsIFwKLSAgICAgICAgICAiMC4wOTM2NjMsIDAuMTQ4Mjg3LCAwLjIwMzExOSwgMC4yNDIzMjgsIDAuMzA1MDk1LCAwLjM2MDExOCwgMC40Mzg1MTQiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjUwNDQsIDAuMTM4MTA1LCAwLjI1NDA1NywgMC4zMzcwNDMsIDAuNDcwMTk2LCAwLjU4NjcwNywgMC43NTI5MyIsIFwKLSAgICAgICAgICAiMC4wMjUwNSwgMC4xMzgxMDUsIDAuMjU0MDU3LCAwLjMzNjgzNSwgMC40NzAyMzksIDAuNTg2NzAzLCAwLjc1MjkyNSIsIFwKLSAgICAgICAgICAiMC4wMjUwOTIsIDAuMTM4MDUsIDAuMjUzOTMxLCAwLjMzNzIzOCwgMC40NzAxOTIsIDAuNTg2NzEyLCAwLjc1Mjk2MSIsIFwKLSAgICAgICAgICAiMC4wMjUyNTIsIDAuMTM4MTAzLCAwLjI1NDA1NiwgMC4zMzczNDcsIDAuNDcwMTY3LCAwLjU4NjczMSwgMC43NTI5MTIiLCBcCi0gICAgICAgICAgIjAuMDI1NDIyLCAwLjEzODE0OSwgMC4yNTQwNjYsIDAuMzM3MzMsIDAuNDY5OTkyLCAwLjU4NjY2NCwgMC43NTI5MzciLCBcCi0gICAgICAgICAgIjAuMDI1NjEsIDAuMTM4MTYxLCAwLjI1NDA3MiwgMC4zMzczNDksIDAuNDcwMzA2LCAwLjU4NjYyMSwgMC43NTI4OTMiLCBcCi0gICAgICAgICAgIjAuMDI1ODM1LCAwLjEzODEzMSwgMC4yNTQxMzIsIDAuMzM3MzMxLCAwLjQ3MDM3MSwgMC41ODY3MDQsIDAuNzUyOTYxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEwMDA5LCAwLjAxMDE1LCAwLjAxMDE3MywgMC4wMTAxODUsIDAuMDEwMTg2LCAwLjAxMDE4NCwgMC4wMTAxOTIiLCBcCi0gICAgICAgICAgIjAuMDEwMDA1LCAwLjAxMDE0OSwgMC4wMTAxNzIsIDAuMDEwMTgsIDAuMDEwMTg2LCAwLjAxMDE5MiwgMC4wMTAxODgiLCBcCi0gICAgICAgICAgIjAuMDEwMDU5LCAwLjAxMDIwMSwgMC4wMTAyMjUsIDAuMDEwMjMyLCAwLjAxMDIzOCwgMC4wMTAyNDEsIDAuMDEwMjQ0IiwgXAotICAgICAgICAgICIwLjAxMDExNCwgMC4wMTAyNTYsIDAuMDEwMjgsIDAuMDEwMjkxLCAwLjAxMDI5MywgMC4wMTAyOTEsIDAuMDEwMjk5IiwgXAotICAgICAgICAgICIwLjAxMDE5LCAwLjAxMDMzMiwgMC4wMTAzNTcsIDAuMDEwMzYyLCAwLjAxMDM2OCwgMC4wMTAzNzIsIDAuMDEwMzciLCBcCi0gICAgICAgICAgIjAuMDEwMzEyLCAwLjAxMDQ2MSwgMC4wMTA0NzMsIDAuMDEwNDgsIDAuMDEwNDg1LCAwLjAxMDUwMSwgMC4wMTA0OTIiLCBcCi0gICAgICAgICAgIjAuMDEwNDA1LCAwLjAxMDUzOSwgMC4wMTA1NjIsIDAuMDEwNTY4LCAwLjAxMDU3NCwgMC4wMTA1NzgsIDAuMDEwNTgyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDk5MzEsIDAuMDEwMDUzLCAwLjAxMDA3OSwgMC4wMTAwODcsIDAuMDEwMDk0LCAwLjAxMDA5OCwgMC4wMTAxMDEiLCBcCi0gICAgICAgICAgIjAuMDA5OTI0LCAwLjAxMDA0NiwgMC4wMTAwNzIsIDAuMDEwMDgsIDAuMDEwMDg4LCAwLjAxMDA5MiwgMC4wMTAwOTYiLCBcCi0gICAgICAgICAgIjAuMDA5OTY1LCAwLjAxMDA4NiwgMC4wMTAxMTIsIDAuMDEwMTIsIDAuMDEwMTI4LCAwLjAxMDEzMiwgMC4wMTAxMzUiLCBcCi0gICAgICAgICAgIjAuMDEwMDEzLCAwLjAxMDEzNSwgMC4wMTAxNjEsIDAuMDEwMTc2LCAwLjAxMDE3NywgMC4wMTAxODYsIDAuMDEwMTg0IiwgXAotICAgICAgICAgICIwLjAxMDA4LCAwLjAxMDIwMywgMC4wMTAyMjgsIDAuMDEwMjM3LCAwLjAxMDI0NCwgMC4wMTAyNTIsIDAuMDEwMjUxIiwgXAotICAgICAgICAgICIwLjAxMDE5MywgMC4wMTAzMjQsIDAuMDEwMzQsIDAuMDEwMzQ3LCAwLjAxMDM1NiwgMC4wMTAzNTksIDAuMDEwMzYzIiwgXAotICAgICAgICAgICIwLjAxMDI3OCwgMC4wMTAzOTUsIDAuMDEwNDIsIDAuMDEwNDMsIDAuMDEwNDM1LCAwLjAxMDQ0MSwgMC4wMTA0NDQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTA3NzgsIDAuMDEwODk5LCAwLjAxMDkxNSwgMC4wMTA5MTksIDAuMDEwOTI0LCAwLjAxMDkyNywgMC4wMTA5MjkiLCBcCi0gICAgICAgICAgIjAuMDEwNzMzLCAwLjAxMDg2MSwgMC4wMTA4ODIsIDAuMDEwODg5LCAwLjAxMDg5NCwgMC4wMTA4OTgsIDAuMDEwOSIsIFwKLSAgICAgICAgICAiMC4wMTA3OCwgMC4wMTA4OTIsIDAuMDEwOTE2LCAwLjAxMDkyNiwgMC4wMTA5MzEsIDAuMDEwOTM1LCAwLjAxMDkzOSIsIFwKLSAgICAgICAgICAiMC4wMTA4ODMsIDAuMDEwOTY5LCAwLjAxMDk5NiwgMC4wMTEwMDMsIDAuMDExMDExLCAwLjAxMTAxNSwgMC4wMTEwMTkiLCBcCi0gICAgICAgICAgIjAuMDExMDMxLCAwLjAxMTA3NCwgMC4wMTEwOTgsIDAuMDExMTA4LCAwLjAxMTExNCwgMC4wMTExMTgsIDAuMDExMTIyIiwgXAotICAgICAgICAgICIwLjAxMTI4NSwgMC4wMTEyOTQsIDAuMDExMzE1LCAwLjAxMTMxOSwgMC4wMTEzMjcsIDAuMDExMzMzLCAwLjAxMTMzNSIsIFwKLSAgICAgICAgICAiMC4wMTE1NTgsIDAuMDExNTExLCAwLjAxMTUyNywgMC4wMTE1MzQsIDAuMDExNTQyLCAwLjAxMTU0NiwgMC4wMTE1NDciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoc2NhbGFyKSB7Ci0gICAgICAgIHZhbHVlcygiMCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUk4pICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMjQ2NDM2OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMjI4MjI7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAyNDY0MzY7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxMTM4LCAwLjAwMTEzNywgMC4wMDExMzcsIDAuMDAxMTM3LCAwLjAwMTEzNiwgMC4wMDExMzYsIDAuMDAxMTM3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxMTg0LCAwLjAwMTE1NSwgMC4wMDExNDcsIDAuMDAxMTQzLCAwLjAwMTE0MiwgMC4wMDExNDEsIDAuMDAxMTQxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRCI7Ci0gICAgICBzZGZfY29uZCA6ICJEID09IDEnYjAiOwotICAgICAgZmFsbF9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDYyNTg1LCAwLjA2OTI1OSwgMC4wNzU4NDQsIDAuMDgxMTIsIDAuMDg1NDcyLCAwLjA5MTAzMywgMC4wOTUwNzkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiByZWNvdmVyeV9yaXNpbmc7Ci0gICAgICB3aGVuIDogIkQiOwotICAgICAgc2RmX2NvbmQgOiAiRCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChyZWNvdmVyeV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDI1LCAtMC4wMywgLTAuMDQyNSwgLTAuMDQ4NzUsIC0wLjA0ODc1LCAtMC4wNTg3NSwgLTAuMDYxMjUiLCBcCi0gICAgICAgICAgIi0wLjAyNjI1LCAtMC4wMzEyNSwgLTAuMDQzNzUsIC0wLjA1LCAtMC4wNTYyNSwgLTAuMDYsIC0wLjA2ODc1IiwgXAotICAgICAgICAgICItMC4wMiwgLTAuMDMxMjUsIC0wLjAzNzUsIC0wLjA1LCAtMC4wNSwgLTAuMDYsIC0wLjA2ODc1IiwgXAotICAgICAgICAgICItMC4wMTM3NSwgLTAuMDI1LCAtMC4wMzEyNSwgLTAuMDM3NSwgLTAuMDQzNzUsIC0wLjA1Mzc1LCAtMC4wNTYyNSIsIFwKLSAgICAgICAgICAiLTAuMDAxMjUsIC0wLjAxMjUsIC0wLjAxODc1LCAtMC4wMzEyNSwgLTAuMDM3NSwgLTAuMDQxMjUsIC0wLjA1IiwgXAotICAgICAgICAgICIwLjAyMTI1LCAwLjAxLCAtMC4wMDI1LCAtMC4wMDg3NSwgLTAuMDE1LCAtMC4wMjUsIC0wLjAzMzc1IiwgXAotICAgICAgICAgICIwLjA0MjUsIDAuMDMxMjUsIDAuMDE4NzUsIDAuMDA2MjUsIDAsIC0wLjAxLCAtMC4wMTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogcmVtb3ZhbF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIkQiOwotICAgICAgc2RmX2NvbmQgOiAiRCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChyZW1vdmFsX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzNzUsIDAuMDQyNSwgMC4wNTUsIDAuMDYxMjUsIDAuMDY3NSwgMC4wNzEyNSwgMC4wOCIsIFwKLSAgICAgICAgICAiMC4wMzg3NSwgMC4wNSwgMC4wNTYyNSwgMC4wNjI1LCAwLjA2ODc1LCAwLjA3ODc1LCAwLjA4MTI1IiwgXAotICAgICAgICAgICIwLjA0NSwgMC4wNSwgMC4wNjI1LCAwLjA2ODc1LCAwLjA3NSwgMC4wNzg3NSwgMC4wODc1IiwgXAotICAgICAgICAgICIwLjA0NSwgMC4wNTYyNSwgMC4wNjI1LCAwLjA2ODc1LCAwLjA3NSwgMC4wODUsIDAuMDg3NSIsIFwKLSAgICAgICAgICAiMC4wNTEyNSwgMC4wNTYyNSwgMC4wNjg3NSwgMC4wNzUsIDAuMDgxMjUsIDAuMDg1LCAwLjA5Mzc1IiwgXAotICAgICAgICAgICIwLjA1Mzc1LCAwLjA2NSwgMC4wNzEyNSwgMC4wNzc1LCAwLjA4Mzc1LCAwLjA4NzUsIDAuMDk2MjUiLCBcCi0gICAgICAgICAgIjAuMDU3NSwgMC4wNjg3NSwgMC4wNzUsIDAuMDgxMjUsIDAuMDg3NSwgMC4wOTEyNSwgMC4xIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBERkZSWEwgKgotICogLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChERkZSWEwpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC44OTg4MDU7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgZmYgKE4zMCxRQklOVCkgewotICAgIG5leHRfc3RhdGUgOiAiRCI7Ci0gICAgY2xvY2tlZF9vbiA6ICJDSyI7Ci0gICAgY2xlYXIgOiAiKCFSTikiOwotICB9Ci0gIHBpbihDSykgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNTkzNDk1OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDU5MzQ4NTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA1OTM0OTU7Ci0gICAgY2xvY2sgOiB0cnVlOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzY5OCwgMC4wMDM2ODcsIDAuMDAzNzY4LCAwLjAwMzg3LCAwLjAwMzk5NiwgMC4wMDQyMjMsIDAuMDA0NDAyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA4NjIsIDAuMDA4NjEyLCAwLjAwODY5NSwgMC4wMDg3ODgsIDAuMDA4OTI1LCAwLjAwOTA1MywgMC4wMDkyMzYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFEJlJOIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9STl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMTM4NTI0LCAwLjE0NjcwNCwgMC4xNTU5MTcsIDAuMTYzMjgzLCAwLjE2OTE5OCwgMC4xNzcwMSwgMC4xODI3MjEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjA3MjQyNywgMC4wODA1NjcsIDAuMDg5NjYyLCAwLjA5NjQ1NSwgMC4xMDE5MTIsIDAuMTA5MTYsIDAuMTE0MzQ4Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihEKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2MjQ3NzM7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjIzNDc4OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDYyNDc3MzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDI3NjQsIDAuMDAyNzM0LCAwLjAwMjc2NiwgMC4wMDI4MjEsIDAuMDAyODgxLCAwLjAwMzAzNSwgMC4wMDMxNjgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDM2MDQsIDAuMDAzNTgzLCAwLjAwMzYwNiwgMC4wMDM2NTYsIDAuMDAzNzI4LCAwLjAwMzg0NiwgMC4wMDM5NzkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiUk4iOwotICAgICAgc2RmX2NvbmQgOiAiUk4gPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDEyNSwgLTAuMDA3NSwgLTAuMDAxMjUsIDAuMDA1LCAwLjAwNSwgMC4wMDg3NSwgMC4wMTEyNSIsIFwKLSAgICAgICAgICAiLTAuMDE3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIC0wLjAwNjI1LCAwLCAwLjAwMzc1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAtMC4wMDYyNSwgLTAuMDAyNSwgMCIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAxODc1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDEyNSwgLTAuMDA4NzUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwODc1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDQsIC0wLjAyODc1LCAtMC4wMjg3NSwgLTAuMDIyNSwgLTAuMDIyNSwgLTAuMDE4NzUsIC0wLjAxNjI1IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMjUsIC0wLjAyMTI1LCAtMC4wMTg3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEyNSwgMC4wMjM3NSwgMC4wMywgMC4wMzYyNSwgMC4wNDI1LCAwLjA1MjUsIDAuMDU1IiwgXAotICAgICAgICAgICIwLjAwNzUsIDAuMDE4NzUsIDAuMDI1LCAwLjAzMTI1LCAwLjAzNzUsIDAuMDQ3NSwgMC4wNSIsIFwKLSAgICAgICAgICAiMC4wMDc1LCAwLjAxMjUsIDAuMDI1LCAwLjAzMTI1LCAwLjAzNzUsIDAuMDQxMjUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMDAxMjUsIDAuMDEyNSwgMC4wMTg3NSwgMC4wMjUsIDAuMDMxMjUsIDAuMDQxMjUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMDAxMjUsIDAuMDEyNSwgMC4wMTg3NSwgMC4wMjUsIDAuMDMxMjUsIDAuMDM1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjAwMzc1LCAwLjAwODc1LCAwLjAxNSwgMC4wMjEyNSwgMC4wMjc1LCAwLjAzNzUsIDAuMDQiLCBcCi0gICAgICAgICAgIjAuMDAxMjUsIDAuMDA2MjUsIDAuMDE4NzUsIDAuMDI1LCAwLjAyNSwgMC4wMzUsIDAuMDM3NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiUk4iOwotICAgICAgc2RmX2NvbmQgOiAiUk4gPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDI1LCAwLjAyLCAwLjAxMzc1LCAwLjAxMzc1LCAwLjAwNzUsIDAuMDAzNzUsIDAuMDAxMjUiLCBcCi0gICAgICAgICAgIjAuMDM2MjUsIDAuMDI1LCAwLjAxODc1LCAwLjAxODc1LCAwLjAxMjUsIDAuMDA4NzUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMDQyNSwgMC4wMzEyNSwgMC4wMjUsIDAuMDI1LCAwLjAxODc1LCAwLjAxNSwgMC4wMTI1IiwgXAotICAgICAgICAgICIwLjA0ODc1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDMxMjUsIDAuMDI1LCAwLjAyMTI1LCAwLjAxODc1IiwgXAotICAgICAgICAgICIwLjA0ODc1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDMxMjUsIDAuMDI3NSwgMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMDU4NzUsIDAuMDQ3NSwgMC4wNDEyNSwgMC4wNDEyNSwgMC4wMzUsIDAuMDMxMjUsIDAuMDI4NzUiLCBcCi0gICAgICAgICAgIjAuMDYxMjUsIDAuMDU2MjUsIDAuMDUsIDAuMDQzNzUsIDAuMDQzNzUsIDAuMDMzNzUsIDAuMDMxMjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTI1LCAwLjAwMTI1LCAtMC4wMDUsIC0wLjAxNzUsIC0wLjAyMzc1LCAtMC4wMjc1LCAtMC4wMzYyNSIsIFwKLSAgICAgICAgICAiMC4wMTc1LCAwLjAwNjI1LCAwLCAtMC4wMTI1LCAtMC4wMTg3NSwgLTAuMDIyNSwgLTAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMDIzNzUsIDAuMDEyNSwgMC4wMDYyNSwgLTAuMDA2MjUsIC0wLjAxMjUsIC0wLjAxNjI1LCAtMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMDMsIDAuMDE4NzUsIDAuMDA2MjUsIDAsIC0wLjAwNjI1LCAtMC4wMSwgLTAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMDMsIDAuMDI1LCAwLjAxMjUsIDAuMDA2MjUsIDAsIC0wLjAxLCAtMC4wMTI1IiwgXAotICAgICAgICAgICIwLjA0LCAwLjAyODc1LCAwLjAxNjI1LCAwLjAxLCAwLjAwMzc1LCAtMC4wMDYyNSwgLTAuMDA4NzUiLCBcCi0gICAgICAgICAgIjAuMDQyNSwgMC4wMzEyNSwgMC4wMjUsIDAuMDEyNSwgMC4wMDYyNSwgMC4wMDI1LCAtMC4wMDYyNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjIwMzgyNjsKLSAgICBmdW5jdGlvbiA6ICJOMzAiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5vbl91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcmlzaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEzODUwMiwgMC4xNDkwNjYsIDAuMjQ0MDQxLCAwLjQwMTIxLCAwLjU1OTIxNywgMC45MjcyNTcsIDEuMTQxOTIiLCBcCi0gICAgICAgICAgIjAuMTQ2NjY1LCAwLjE1NzE3MywgMC4yNTIyLCAwLjQxMDgxMiwgMC41NjcyMDgsIDAuOTM4ODEzLCAxLjE0NzY1IiwgXAotICAgICAgICAgICIwLjE1NTczLCAwLjE2NjMwMSwgMC4yNjEzOSwgMC40MTk4ODksIDAuNTc2MzIyLCAwLjk0NzkzMywgMS4xNTkwOSIsIFwKLSAgICAgICAgICAiMC4xNjI5NTYsIDAuMTczNTI4LCAwLjI2ODYxOSwgMC40MjcxMDcsIDAuNTgzNDk0LCAwLjk1NDk5NywgMS4xNjYzOSIsIFwKLSAgICAgICAgICAiMC4xNjg2MzUsIDAuMTc5MjQsIDAuMjc0MjIzLCAwLjQzMjgxNiwgMC41ODkxMywgMC45NjA2OTcsIDEuMTY5MTMiLCBcCi0gICAgICAgICAgIjAuMTc2MjQxLCAwLjE4NjgxNiwgMC4yODE3NDQsIDAuNDQwMzUxLCAwLjU5ODU1NywgMC45NjgxNTEsIDEuMTc5NTUiLCBcCi0gICAgICAgICAgIjAuMTgyMDU3LCAwLjE5MjU5OSwgMC4yODcxNzIsIDAuNDQ1MTAzLCAwLjYwMjg5LCAwLjk3MDgzOSwgMS4xODUyOSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMjE5MDgsIDAuMTQzMzgzLCAwLjM0MTExMiwgMC42NzMyNzIsIDEuMDA2MjIsIDEuNzgzMDksIDIuMjI4NjkiLCBcCi0gICAgICAgICAgIjAuMTIxOTk2LCAwLjE0MzM2LCAwLjM0MTQwNCwgMC42NzM1NTIsIDEuMDA1ODcsIDEuNzg2MDUsIDIuMjI4MDMiLCBcCi0gICAgICAgICAgIjAuMTIxOTcsIDAuMTQzNDk5LCAwLjM0MTA2MSwgMC42NzM0NTMsIDEuMDA1NTYsIDEuNzg1OTMsIDIuMjMxMDEiLCBcCi0gICAgICAgICAgIjAuMTIxOTYyLCAwLjE0MzQ3LCAwLjM0MTAwNSwgMC42NzMyNTYsIDEuMDA1ODQsIDEuNzg1NiwgMi4yMjk4NiIsIFwKLSAgICAgICAgICAiMC4xMjE5NjMsIDAuMTQzNDc5LCAwLjM0MTQsIDAuNjczNTU3LCAxLjAwNTY2LCAxLjc4NjMyLCAyLjIyODY3IiwgXAotICAgICAgICAgICIwLjEyMTk2NCwgMC4xNDM0OTEsIDAuMzQxMjg2LCAwLjY3MzY3LCAxLjAwNzkyLCAxLjc4NjYsIDIuMjMxMDMiLCBcCi0gICAgICAgICAgIjAuMTIxODEyLCAwLjE0MzMyLCAwLjM0MDQwMiwgMC42NzM1ODEsIDEuMDA0ODgsIDEuNzgzODUsIDIuMjMxMjYiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTI5MDM5LCAwLjEzODcxLCAwLjIyNTc5OCwgMC4zNzEwNjIsIDAuNTE1OTEyLCAwLjg1NDgyOCwgMS4wNDU4NCIsIFwKLSAgICAgICAgICAiMC4xMzcyMTksIDAuMTQ2OTQ1LCAwLjIzNDA2NCwgMC4zNzkyMjEsIDAuNTIzNTI3LCAwLjg2Mjk3NywgMS4wNTM5NiIsIFwKLSAgICAgICAgICAiMC4xNDY0MzIsIDAuMTU2MTA3LCAwLjI0MzI1LCAwLjM4NzY5OCwgMC41MzMzMDUsIDAuODcyMjIyLCAxLjA2NDU3IiwgXAotICAgICAgICAgICIwLjE1MzgxMSwgMC4xNjM0NzgsIDAuMjUxMDE2LCAwLjM5NTc4OSwgMC41NDA3NywgMC44Nzk1NTksIDEuMDcwNTQiLCBcCi0gICAgICAgICAgIjAuMTU5NzU5LCAwLjE2OTQwNiwgMC4yNTY1MzYsIDAuNDAxNjk2LCAwLjU0NjY2NywgMC44ODU0NjcsIDEuMDc2NCIsIFwKLSAgICAgICAgICAiMC4xNjc2MSwgMC4xNzcyMTIsIDAuMjY0MzQzLCAwLjQwODg2NCwgMC41NTQ0NDcsIDAuODkxNTQ3LCAxLjA4NTg4IiwgXAotICAgICAgICAgICIwLjE3MzIwMiwgMC4xODI5NzgsIDAuMjcwMDM2LCAwLjQxNTE3NCwgMC41NjAxNjYsIDAuODk5MDMyLCAxLjA5MTI4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwNjk3NCwgMC4xMjU5MzQsIDAuMzA1Nzg5LCAwLjYwNDU2MSwgMC45MDM1OTQsIDEuNTk4MjcsIDEuOTk5MzciLCBcCi0gICAgICAgICAgIjAuMTA3MDc1LCAwLjEyNzIsIDAuMzA1ODA0LCAwLjYwNDU3OSwgMC44OTg2OTksIDEuNTk4OTMsIDEuOTk3NDIiLCBcCi0gICAgICAgICAgIjAuMTA2OTgyLCAwLjEyNTkzNiwgMC4zMDU4MDksIDAuNjAzMjMxLCAwLjkwMzcxNiwgMS41OTgxMiwgMS45OTc4NyIsIFwKLSAgICAgICAgICAiMC4xMDcwNzYsIDAuMTI2OTA4LCAwLjMwNTM5NywgMC42MDQ1ODgsIDAuOTAzNTQxLCAxLjU5ODk1LCAxLjk5NzQ3IiwgXAotICAgICAgICAgICIwLjEwNjk4LCAwLjEyNzI0MSwgMC4zMDU4MDksIDAuNjA0NTg2LCAwLjkwMzU0OCwgMS41OTg5MiwgMS45OTc4NyIsIFwKLSAgICAgICAgICAiMC4xMDY5MzIsIDAuMTI2ODQsIDAuMzA1NzUsIDAuNjAyMzA3LCAwLjkwMzY2MywgMS41OTU5MywgMS45OTg0NiIsIFwKLSAgICAgICAgICAiMC4xMDY1NTEsIDAuMTI2ODE0LCAwLjMwNTc5NywgMC42MDQ1MjIsIDAuOTAzNzI3LCAxLjU5OTAzLCAxLjk5Mjc3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiBjbGVhcjsKLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc5MTUzLCAwLjA4ODgxNiwgMC4xNzYwNDgsIDAuMzIwOTY4LCAwLjQ2NTkyNiwgMC44MDQ2MDMsIDAuOTk3NDk1IiwgXAotICAgICAgICAgICIwLjA4NzI2NywgMC4wOTY5MzIsIDAuMTg0MTM3LCAwLjMyOTAyOSwgMC40NzQwMzQsIDAuODEyMDc2LCAxLjAwNTc0IiwgXAotICAgICAgICAgICIwLjA5NjQ2NSwgMC4xMDYxMzUsIDAuMTkzMzA2LCAwLjMzODE2LCAwLjQ4MzI1MywgMC44MjE3NzksIDEuMDEzOSIsIFwKLSAgICAgICAgICAiMC4xMDM3NzEsIDAuMTEzNDI4LCAwLjIwMDY1MywgMC4zNDU0NzksIDAuNDkwNTQ3LCAwLjgyODk2MiwgMS4wMjE1MSIsIFwKLSAgICAgICAgICAiMC4xMDk2MywgMC4xMTkyODMsIDAuMjA2MjE4LCAwLjM1MTI3NSwgMC40OTY0MTQsIDAuODM0OTM3LCAxLjAyNzgxIiwgXAotICAgICAgICAgICIwLjExNzI3OCwgMC4xMjY5MywgMC4yMTQwMTYsIDAuMzU5MDAyLCAwLjUwNDE4OCwgMC44NDIyMzgsIDEuMDM1NDIiLCBcCi0gICAgICAgICAgIjAuMTIyNzgzLCAwLjEzMjQ0MywgMC4yMTkzNDYsIDAuMzY0NTc2LCAwLjUwOTc2LCAwLjg0ODIzMSwgMS4wNDA5MiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDc1NzQsIDAuMTI3MDI4LCAwLjMwNTI0OSwgMC42MDQwMTksIDAuOTAzMDc5LCAxLjYwMTE5LCAxLjk5OTM4IiwgXAotICAgICAgICAgICIwLjEwNjc1MywgMC4xMjYwODcsIDAuMzA1MjQzLCAwLjYwMzk4OCwgMC45MDMwNDksIDEuNjAxMTQsIDEuOTk5MjgiLCBcCi0gICAgICAgICAgIjAuMTA3NjI0LCAwLjEyNzAyNCwgMC4zMDUyMDYsIDAuNjAzNDk3LCAwLjkwMjk2MSwgMS42MDA4NCwgMS45OTM4MiIsIFwKLSAgICAgICAgICAiMC4xMDc1LCAwLjEyNzY1MSwgMC4zMDUxNDQsIDAuNjAzODYyLCAwLjkwMjY4NywgMS42MDA4NSwgMS45OTI2OCIsIFwKLSAgICAgICAgICAiMC4xMDgwOTMsIDAuMTI3MDM1LCAwLjMwNTE3MSwgMC42MDM5NzUsIDAuOTAyNjQ3LCAxLjYwMDI2LCAxLjk5OTI1IiwgXAotICAgICAgICAgICIwLjEwOTIxNCwgMC4xMjgwMiwgMC4zMDUxNzEsIDAuNjAzNjIxLCAwLjkwMjI5MywgMS42MDA2NCwgMS45OTg5NSIsIFwKLSAgICAgICAgICAiMC4xMDkwNTYsIDAuMTI4NDU1LCAwLjMwMzg1MiwgMC42MDM3MjUsIDAuOTAyMzEzLCAxLjYwMDI3LCAxLjk5OTIyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDg4NCwgMC4wMDQ4ODEsIDAuMDA0ODYzLCAwLjAwNDg1MiwgMC4wMDQ4NDcsIDAuMDA0ODQzLCAwLjAwNDg0MSIsIFwKLSAgICAgICAgICAiMC4wMDQ4NzgsIDAuMDA0ODc1LCAwLjAwNDg1NywgMC4wMDQ4NDYsIDAuMDA0ODQxLCAwLjAwNDgzNiwgMC4wMDQ4MzUiLCBcCi0gICAgICAgICAgIjAuMDA0OTI0LCAwLjAwNDkyMSwgMC4wMDQ5MDQsIDAuMDA0ODkxLCAwLjAwNDg4NiwgMC4wMDQ4ODEsIDAuMDA0ODgiLCBcCi0gICAgICAgICAgIjAuMDA0OTY3LCAwLjAwNDk2NSwgMC4wMDQ5NDcsIDAuMDA0OTM1LCAwLjAwNDkzLCAwLjAwNDkyNCwgMC4wMDQ5MjIiLCBcCi0gICAgICAgICAgIjAuMDA1MDM3LCAwLjAwNTAzNSwgMC4wMDUwMTgsIDAuMDA1MDA1LCAwLjAwNSwgMC4wMDQ5OTQsIDAuMDA0OTkyIiwgXAotICAgICAgICAgICIwLjAwNTEzMiwgMC4wMDUxMywgMC4wMDUxMTQsIDAuMDA1MTAxLCAwLjAwNTA5NSwgMC4wMDUwODksIDAuMDA1MDg3IiwgXAotICAgICAgICAgICIwLjAwNTIzOSwgMC4wMDUyMzcsIDAuMDA1MjI5LCAwLjAwNTIwNywgMC4wMDUyLCAwLjAwNTE5NCwgMC4wMDUxOTIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQ5NDgsIDAuMDA0OTQ5LCAwLjAwNDk1NCwgMC4wMDQ5NTYsIDAuMDA0OTU3LCAwLjAwNDk1NywgMC4wMDQ5NTgiLCBcCi0gICAgICAgICAgIjAuMDA0OTQ2LCAwLjAwNDk0NywgMC4wMDQ5NTIsIDAuMDA0OTU0LCAwLjAwNDk1NSwgMC4wMDQ5NTUsIDAuMDA0OTU1IiwgXAotICAgICAgICAgICIwLjAwNTAwMSwgMC4wMDUwMDIsIDAuMDA1MDA3LCAwLjAwNTAwOCwgMC4wMDUwMDksIDAuMDA1MDA5LCAwLjAwNTAxIiwgXAotICAgICAgICAgICIwLjAwNTA0OSwgMC4wMDUwNSwgMC4wMDUwNTQsIDAuMDA1MDU2LCAwLjAwNTA1NywgMC4wMDUwNTcsIDAuMDA1MDU3IiwgXAotICAgICAgICAgICIwLjAwNTEyNCwgMC4wMDUxMjUsIDAuMDA1MTI5LCAwLjAwNTEzLCAwLjAwNTEzMSwgMC4wMDUxMzEsIDAuMDA1MTMxIiwgXAotICAgICAgICAgICIwLjAwNTI0OSwgMC4wMDUyNSwgMC4wMDUyNDQsIDAuMDA1MjU0LCAwLjAwNTI0NSwgMC4wMDUyNDYsIDAuMDA1MjQ2IiwgXAotICAgICAgICAgICIwLjAwNTM0NywgMC4wMDUzMzQsIDAuMDA1MzUxLCAwLjAwNTM1MSwgMC4wMDUzMzcsIDAuMDA1MzM3LCAwLjAwNTMzOCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDUxMzIsIDAuMDA1MTMzLCAwLjAwNTEzNywgMC4wMDUxMzgsIDAuMDA1MTM5LCAwLjAwNTE0LCAwLjAwNTE0MSIsIFwKLSAgICAgICAgICAiMC4wMDUxMiwgMC4wMDUxMjEsIDAuMDA1MTI2LCAwLjAwNTEyOCwgMC4wMDUxMjgsIDAuMDA1MTI5LCAwLjAwNTEyOSIsIFwKLSAgICAgICAgICAiMC4wMDUxNDcsIDAuMDA1MTQ4LCAwLjAwNTE1NCwgMC4wMDUxNTYsIDAuMDA1MTU3LCAwLjAwNTE1NywgMC4wMDUxNTciLCBcCi0gICAgICAgICAgIjAuMDA1MTk1LCAwLjAwNTE5NSwgMC4wMDUxOTksIDAuMDA1MjAyLCAwLjAwNTIwMiwgMC4wMDUyMDMsIDAuMDA1MjAzIiwgXAotICAgICAgICAgICIwLjAwNTI1OSwgMC4wMDUyNTksIDAuMDA1MjY0LCAwLjAwNTI2NywgMC4wMDUyNjcsIDAuMDA1MjY4LCAwLjAwNTI2OCIsIFwKLSAgICAgICAgICAiMC4wMDUzNzcsIDAuMDA1Mzc1LCAwLjAwNTM4LCAwLjAwNTM4MiwgMC4wMDUzODUsIDAuMDA1Mzg2LCAwLjAwNTM4NiIsIFwKLSAgICAgICAgICAiMC4wMDU0ODksIDAuMDA1NDg4LCAwLjAwNTQ5MywgMC4wMDU0OTQsIDAuMDA1NDk1LCAwLjAwNTQ5NiwgMC4wMDU0OTYiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfcG93ZXIoc2NhbGFyKSB7Ci0gICAgICAgIHZhbHVlcygiMCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUU4pICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4yMDA4MjQ7Ci0gICAgZnVuY3Rpb24gOiAiUUJJTlQiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5vbl91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcmlzaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEzODUyNCwgMC4xNDkwNDIsIDAuMjQzNjk5LCAwLjQwMTU2NSwgMC41NTkzNDEsIDAuOTI3NjkxLCAxLjEzNzkyIiwgXAotICAgICAgICAgICIwLjE0NjcwNCwgMC4xNTcyMjcsIDAuMjUxOTIyLCAwLjQwOTc2NywgMC41Njc1MTQsIDAuOTM1ODg4LCAxLjE0NjEiLCBcCi0gICAgICAgICAgIjAuMTU1OTE3LCAwLjE2NjQzNSwgMC4yNjExMzEsIDAuNDE4OTM0LCAwLjU3Njc2MiwgMC45NDUxMTMsIDEuMTU1NDIiLCBcCi0gICAgICAgICAgIjAuMTYzMjgzLCAwLjE3MzgsIDAuMjY4NTg2LCAwLjQyNjM0MywgMC41ODQxNDksIDAuOTUyNDY2LCAxLjE2MjY4IiwgXAotICAgICAgICAgICIwLjE2OTE5OCwgMC4xNzk3MTMsIDAuMjc0NDA3LCAwLjQzMjI3NCwgMC41OTAwNzgsIDAuOTU4Mzk4LCAxLjE2ODYxIiwgXAotICAgICAgICAgICIwLjE3NzAxLCAwLjE4NzUyLCAwLjI4MjI1MywgMC40NDAwMTMsIDAuNTk3ODk3LCAwLjk2NjAyNywgMS4xNzY1NyIsIFwKLSAgICAgICAgICAiMC4xODI3MjEsIDAuMTkzMzM0LCAwLjI4NzkyOCwgMC40NDU3NzUsIDAuNjAzNjU4LCAwLjk3MTk5NywgMS4xODIzMiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTU4OTgsIDAuMTM3OTY1LCAwLjMzNzY5MiwgMC42NzAyMDEsIDEuMDAyNjksIDEuNzc2MDUsIDIuMjE5NzIiLCBcCi0gICAgICAgICAgIjAuMTE1ODk4LCAwLjEzODA5NSwgMC4zMzc3MzIsIDAuNjcwMTk3LCAxLjAwMTcsIDEuNzc2LCAyLjIyMDA5IiwgXAotICAgICAgICAgICIwLjExNTg5OCwgMC4xMzc5NjUsIDAuMzM3NzI4LCAwLjY2OTU5NywgMS4wMDI3MywgMS43NzYwNSwgMi4yMTg5MyIsIFwKLSAgICAgICAgICAiMC4xMTU4OTgsIDAuMTM4MDE3LCAwLjMzNzA3LCAwLjY3MDE5NiwgMS4wMDI2OSwgMS43NzYsIDIuMjIwMSIsIFwKLSAgICAgICAgICAiMC4xMTU5MDEsIDAuMTM4MTA0LCAwLjMzNzcyMywgMC42NzAxOTEsIDEuMDAyNjgsIDEuNzc2LCAyLjIyMDE1IiwgXAotICAgICAgICAgICIwLjExNTkwNywgMC4xMzgwMTcsIDAuMzM3NjkxLCAwLjY2OTUxOSwgMS4wMDI3MSwgMS43NzY4MiwgMi4yMTg5NSIsIFwKLSAgICAgICAgICAiMC4xMTU4ODQsIDAuMTM4MDI4LCAwLjMzNzcyLCAwLjY3MDE2NiwgMS4wMDI3MiwgMS43NzU5OSwgMi4yMTkyNyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMzczMTgsIDAuMTQ2OTY0LCAwLjIzMzc2MywgMC4zNzg1MDUsIDAuNTIzMTcyLCAwLjg2MDkwMSwgMS4wNTM2OSIsIFwKLSAgICAgICAgICAiMC4xNDU0ODksIDAuMTU1MTI5LCAwLjI0MTkzMSwgMC4zODY2NTQsIDAuNTMxMzY3LCAwLjg2ODk1MiwgMS4wNjE3OSIsIFwKLSAgICAgICAgICAiMC4xNTQ1MTUsIDAuMTY0MTY3LCAwLjI1MDk3NSwgMC4zOTU2OTYsIDAuNTQwMzc4LCAwLjg3Nzk2NiwgMS4wNzA5MSIsIFwKLSAgICAgICAgICAiMC4xNjE3NDEsIDAuMTcxMzkxLCAwLjI1ODE5OSwgMC40MDI5MTEsIDAuNTQ3NjgxLCAwLjg4NTIzNCwgMS4wNzgxMiIsIFwKLSAgICAgICAgICAiMC4xNjc0NjgsIDAuMTc3MTE1LCAwLjI2MzkxMywgMC40MDg2MzUsIDAuNTUzMzMxLCAwLjg5MDk0NywgMS4wODM3NyIsIFwKLSAgICAgICAgICAiMC4xNzUwNTMsIDAuMTg0NzA2LCAwLjI3MTQ5NiwgMC40MTYyMTksIDAuNTYwOTEzLCAwLjg5ODU2MywgMS4wOTEzOCIsIFwKLSAgICAgICAgICAiMC4xODA5MDUsIDAuMTkwNTQzLCAwLjI3NzIzNywgMC40MjIwNDEsIDAuNTY2NzIzLCAwLjkwNDM1MywgMS4wOTczIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwMzc2NiwgMC4xMjM1LCAwLjMwMTkzOSwgMC41OTgyODIsIDAuODk1NTk1LCAxLjU4Nzk5LCAxLjk4Nzk1IiwgXAotICAgICAgICAgICIwLjEwMzc2NCwgMC4xMjM0NDIsIDAuMzAxOTYxLCAwLjU5OTYwOSwgMC44OTU1MTYsIDEuNTkxMjgsIDEuOTg3MjYiLCBcCi0gICAgICAgICAgIjAuMTAzNzY1LCAwLjEyMzQ5NywgMC4zMDIwNTQsIDAuNTk5NjU0LCAwLjg5NjAwNywgMS41OTEyLCAxLjk4ODAzIiwgXAotICAgICAgICAgICIwLjEwMzc2NiwgMC4xMjM0OTgsIDAuMzAyMDQ5LCAwLjU5OTYxNywgMC44OTUyNDMsIDEuNTkxMzcsIDEuOTg3OTYiLCBcCi0gICAgICAgICAgIjAuMTAzNzM4LCAwLjEyMzQ5MywgMC4zMDE5NjIsIDAuNTk5NjA5LCAwLjg5NTQzOCwgMS41OTEzNSwgMS45ODUxMSIsIFwKLSAgICAgICAgICAiMC4xMDM3NTUsIDAuMTIzNDksIDAuMzAxOTExLCAwLjU5OTU4OSwgMC44OTcwNjksIDEuNTkxNDcsIDEuOTg3NDEiLCBcCi0gICAgICAgICAgIjAuMTAzNzU4LCAwLjEyMzQ3NSwgMC4zMDE2MTYsIDAuNTk4NzM5LCAwLjg5NTc3MSwgMS41ODg0OCwgMS45ODgxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiBwcmVzZXQ7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4ODU3OSwgMC4wOTkwOTUsIDAuMTkzODA4LCAwLjM1MTU4OCwgMC41MDk0MDYsIDAuODc3NTYzLCAxLjA4Nzk0IiwgXAotICAgICAgICAgICIwLjA5NjY3MiwgMC4xMDcxODksIDAuMjAxOTAyLCAwLjM1OTY4MiwgMC41MTc1MDIsIDAuODg1NjU4LCAxLjA5NjA2IiwgXAotICAgICAgICAgICIwLjEwNTY1NywgMC4xMTYxNzUsIDAuMjEwODg1LCAwLjM2ODU4MSwgMC41MjY0OTEsIDAuODk0NjU5LCAxLjEwNTAxIiwgXAotICAgICAgICAgICIwLjExMjU1NCwgMC4xMjMwNjgsIDAuMjE3Nzc2LCAwLjM3NTU1MywgMC41MzMzNzIsIDAuOTAxNTI1LCAxLjExMTkiLCBcCi0gICAgICAgICAgIjAuMTE3OTMsIDAuMTI4NDQzLCAwLjIyMzExMSwgMC4zODA5MjUsIDAuNTM4NzU3LCAwLjkwNzAxOSwgMS4xMTcyNyIsIFwKLSAgICAgICAgICAiMC4xMjQ4NTUsIDAuMTM1MzcyLCAwLjIzMDA0NywgMC4zODc4NDEsIDAuNTQ1NjY5LCAwLjkxMzc5MywgMS4xMjQyMSIsIFwKLSAgICAgICAgICAiMC4xMjk3NjQsIDAuMTQwMjcyLCAwLjIzNDkwOCwgMC4zOTI3OTQsIDAuNTUwNjA0LCAwLjkxODc1MiwgMS4xMjkwOCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTU3NjgsIDAuMTM3OTczLCAwLjMzNzU0NSwgMC42Njk5NzgsIDEuMDAyNTIsIDEuNzc4NDQsIDIuMjIxNzIiLCBcCi0gICAgICAgICAgIjAuMTE1Nzg4LCAwLjEzNzkwNiwgMC4zMzc1NDQsIDAuNjY5OTcxLCAxLjAwMjUxLCAxLjc3ODQyLCAyLjIyMTczIiwgXAotICAgICAgICAgICIwLjExNTgxMiwgMC4xMzc5NzIsIDAuMzM3NTQxLCAwLjY2OTg4OCwgMS4wMDI1LCAxLjc3ODM2LCAyLjIxOTc4IiwgXAotICAgICAgICAgICIwLjExNTg0LCAwLjEzNzk3OSwgMC4zMzc1NDEsIDAuNjY5OTM4LCAxLjAwMjQsIDEuNzc4MzUsIDIuMjE5NjkiLCBcCi0gICAgICAgICAgIjAuMTE1ODQ0LCAwLjEzNzk3MywgMC4zMzc0NzgsIDAuNjY5OTE4LCAxLjAwMjQzLCAxLjc3ODM1LCAyLjIyMTYiLCBcCi0gICAgICAgICAgIjAuMTE1ODMxLCAwLjEzNzkzMiwgMC4zMzc1NjEsIDAuNjY5OTM4LCAxLjAwMjM0LCAxLjc3ODI4LCAyLjIyMTU1IiwgXAotICAgICAgICAgICIwLjExNjAxNCwgMC4xMzgwMzcsIDAuMzM3MjU3LCAwLjY3MDA2NCwgMS4wMDI1MiwgMS43NzgzNiwgMi4yMjE1OCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQ5NDgsIDAuMDA0OTQ5LCAwLjAwNDk1NCwgMC4wMDQ5NTYsIDAuMDA0OTU3LCAwLjAwNDk1NywgMC4wMDQ5NTgiLCBcCi0gICAgICAgICAgIjAuMDA0OTQ2LCAwLjAwNDk0NywgMC4wMDQ5NTIsIDAuMDA0OTU0LCAwLjAwNDk1NSwgMC4wMDQ5NTUsIDAuMDA0OTU1IiwgXAotICAgICAgICAgICIwLjAwNTAwMSwgMC4wMDUwMDIsIDAuMDA1MDA3LCAwLjAwNTAwOCwgMC4wMDUwMDksIDAuMDA1MDA5LCAwLjAwNTAxIiwgXAotICAgICAgICAgICIwLjAwNTA0OSwgMC4wMDUwNSwgMC4wMDUwNTQsIDAuMDA1MDU2LCAwLjAwNTA1NywgMC4wMDUwNTcsIDAuMDA1MDU3IiwgXAotICAgICAgICAgICIwLjAwNTEyNCwgMC4wMDUxMjUsIDAuMDA1MTI5LCAwLjAwNTEzLCAwLjAwNTEzMSwgMC4wMDUxMzEsIDAuMDA1MTMxIiwgXAotICAgICAgICAgICIwLjAwNTI0OSwgMC4wMDUyNSwgMC4wMDUyNDQsIDAuMDA1MjU0LCAwLjAwNTI0NSwgMC4wMDUyNDYsIDAuMDA1MjQ2IiwgXAotICAgICAgICAgICIwLjAwNTM0NywgMC4wMDUzMzQsIDAuMDA1MzUxLCAwLjAwNTM1MSwgMC4wMDUzMzcsIDAuMDA1MzM3LCAwLjAwNTMzOCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDg4NCwgMC4wMDQ4ODEsIDAuMDA0ODYzLCAwLjAwNDg1MiwgMC4wMDQ4NDcsIDAuMDA0ODQzLCAwLjAwNDg0MSIsIFwKLSAgICAgICAgICAiMC4wMDQ4NzgsIDAuMDA0ODc1LCAwLjAwNDg1NywgMC4wMDQ4NDYsIDAuMDA0ODQxLCAwLjAwNDgzNiwgMC4wMDQ4MzUiLCBcCi0gICAgICAgICAgIjAuMDA0OTI0LCAwLjAwNDkyMSwgMC4wMDQ5MDQsIDAuMDA0ODkxLCAwLjAwNDg4NiwgMC4wMDQ4ODEsIDAuMDA0ODgiLCBcCi0gICAgICAgICAgIjAuMDA0OTY3LCAwLjAwNDk2NSwgMC4wMDQ5NDcsIDAuMDA0OTM1LCAwLjAwNDkzLCAwLjAwNDkyNCwgMC4wMDQ5MjIiLCBcCi0gICAgICAgICAgIjAuMDA1MDM3LCAwLjAwNTAzNSwgMC4wMDUwMTgsIDAuMDA1MDA1LCAwLjAwNSwgMC4wMDQ5OTQsIDAuMDA0OTkyIiwgXAotICAgICAgICAgICIwLjAwNTEzMiwgMC4wMDUxMywgMC4wMDUxMTQsIDAuMDA1MTAxLCAwLjAwNTA5NSwgMC4wMDUwODksIDAuMDA1MDg3IiwgXAotICAgICAgICAgICIwLjAwNTIzOSwgMC4wMDUyMzcsIDAuMDA1MjI5LCAwLjAwNTIwNywgMC4wMDUyLCAwLjAwNTE5NCwgMC4wMDUxOTIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1MTMyLCAwLjAwNTEzMywgMC4wMDUxMzcsIDAuMDA1MTM4LCAwLjAwNTEzOSwgMC4wMDUxNCwgMC4wMDUxNDEiLCBcCi0gICAgICAgICAgIjAuMDA1MTIsIDAuMDA1MTIxLCAwLjAwNTEyNiwgMC4wMDUxMjgsIDAuMDA1MTI4LCAwLjAwNTEyOSwgMC4wMDUxMjkiLCBcCi0gICAgICAgICAgIjAuMDA1MTQ3LCAwLjAwNTE0OCwgMC4wMDUxNTQsIDAuMDA1MTU2LCAwLjAwNTE1NywgMC4wMDUxNTcsIDAuMDA1MTU3IiwgXAotICAgICAgICAgICIwLjAwNTE5NSwgMC4wMDUxOTUsIDAuMDA1MTk5LCAwLjAwNTIwMiwgMC4wMDUyMDIsIDAuMDA1MjAzLCAwLjAwNTIwMyIsIFwKLSAgICAgICAgICAiMC4wMDUyNTksIDAuMDA1MjU5LCAwLjAwNTI2NCwgMC4wMDUyNjcsIDAuMDA1MjY3LCAwLjAwNTI2OCwgMC4wMDUyNjgiLCBcCi0gICAgICAgICAgIjAuMDA1Mzc3LCAwLjAwNTM3NSwgMC4wMDUzOCwgMC4wMDUzODIsIDAuMDA1Mzg1LCAwLjAwNTM4NiwgMC4wMDUzODYiLCBcCi0gICAgICAgICAgIjAuMDA1NDg5LCAwLjAwNTQ4OCwgMC4wMDU0OTMsIDAuMDA1NDk0LCAwLjAwNTQ5NSwgMC4wMDU0OTYsIDAuMDA1NDk2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHNjYWxhcikgewotICAgICAgICB2YWx1ZXMoIjAiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFJOKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE2MTY1NjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE1MjY0MTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE2MTY1NjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA1OTMsIDAuMDAwNTkzLCAwLjAwMDU5MiwgMC4wMDA1OTIsIDAuMDAwNTkyLCAwLjAwMDU5MiwgMC4wMDA1OTIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA2MTIsIDAuMDAwNjAxLCAwLjAwMDU5OSwgMC4wMDA1OTcsIDAuMDAwNTk4LCAwLjAwMDU5NiwgMC4wMDA1OTUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUk4iOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFEIjsKLSAgICAgIHNkZl9jb25kIDogIkQgPT0gMSdiMCI7Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wODg1NzgsIDAuMDk2NjcyLCAwLjEwNTY1NywgMC4xMTI1NTQsIDAuMTE3OTI0LCAwLjEyNDgwNiwgMC4xMjk3NjQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiByZWNvdmVyeV9yaXNpbmc7Ci0gICAgICB3aGVuIDogIkQiOwotICAgICAgc2RmX2NvbmQgOiAiRCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChyZWNvdmVyeV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDI1LCAtMC4wMzYyNSwgLTAuMDQ4NzUsIC0wLjA1NSwgLTAuMDYxMjUsIC0wLjA2NSwgLTAuMDczNzUiLCBcCi0gICAgICAgICAgIi0wLjAzMjUsIC0wLjAzNzUsIC0wLjA1LCAtMC4wNTYyNSwgLTAuMDYyNSwgLTAuMDY2MjUsIC0wLjA3NSIsIFwKLSAgICAgICAgICAiLTAuMDI2MjUsIC0wLjAzMTI1LCAtMC4wNDM3NSwgLTAuMDUsIC0wLjA1NjI1LCAtMC4wNjYyNSwgLTAuMDY4NzUiLCBcCi0gICAgICAgICAgIi0wLjAxMzc1LCAtMC4wMjUsIC0wLjAzMTI1LCAtMC4wMzc1LCAtMC4wNDM3NSwgLTAuMDUzNzUsIC0wLjA2MjUiLCBcCi0gICAgICAgICAgIi0wLjAwMTI1LCAtMC4wMTI1LCAtMC4wMTg3NSwgLTAuMDMxMjUsIC0wLjAzNzUsIC0wLjA0MTI1LCAtMC4wNSIsIFwKLSAgICAgICAgICAiMC4wMjEyNSwgMC4wMSwgLTAuMDAyNSwgLTAuMDA4NzUsIC0wLjAxNSwgLTAuMDI1LCAtMC4wMzM3NSIsIFwKLSAgICAgICAgICAiMC4wMzYyNSwgMC4wMjUsIDAuMDEyNSwgMC4wMDYyNSwgMCwgLTAuMDEsIC0wLjAxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiByZW1vdmFsX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiRCI7Ci0gICAgICBzZGZfY29uZCA6ICJEID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHJlbW92YWxfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQzNzUsIDAuMDQ4NzUsIDAuMDU1LCAwLjA2NzUsIDAuMDczNzUsIDAuMDc3NSwgMC4wODYyNSIsIFwKLSAgICAgICAgICAiMC4wNDUsIDAuMDU2MjUsIDAuMDYyNSwgMC4wNjg3NSwgMC4wNzUsIDAuMDg1LCAwLjA4NzUiLCBcCi0gICAgICAgICAgIjAuMDUxMjUsIDAuMDU2MjUsIDAuMDY4NzUsIDAuMDc1LCAwLjA4MTI1LCAwLjA4NSwgMC4wOTM3NSIsIFwKLSAgICAgICAgICAiMC4wNTEyNSwgMC4wNjI1LCAwLjA2ODc1LCAwLjA3NSwgMC4wODEyNSwgMC4wOTEyNSwgMC4wOTM3NSIsIFwKLSAgICAgICAgICAiMC4wNTc1LCAwLjA2MjUsIDAuMDc1LCAwLjA4MTI1LCAwLjA4NzUsIDAuMDkxMjUsIDAuMSIsIFwKLSAgICAgICAgICAiMC4wNiwgMC4wNzEyNSwgMC4wNzc1LCAwLjA4Mzc1LCAwLjA5LCAwLjEsIDAuMTAyNSIsIFwKLSAgICAgICAgICAiMC4wNjM3NSwgMC4wNzUsIDAuMDgxMjUsIDAuMDg3NSwgMC4wOTM3NSwgMC4xMDM3NSwgMC4xMDYyNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBERkZTSFFYMiAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoREZGU0hRWDIpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMS4wNDg3NjsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBmZiAoTjM1LFFCSU5UKSB7Ci0gICAgbmV4dF9zdGF0ZSA6ICJEIjsKLSAgICBjbG9ja2VkX29uIDogIkNLIjsKLSAgICBwcmVzZXQgOiAiKCFTTikiOwotICB9Ci0gIHBpbihDSykgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjYxODA3OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDY2MTc3NDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2NjE4MDc7Ci0gICAgY2xvY2sgOiB0cnVlOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzc3MiwgMC4wMDM3NjUsIDAuMDAzODE2LCAwLjAwMzkzMSwgMC4wMDQwMywgMC4wMDQyNDcsIDAuMDA0NDUxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA5OTQ1LCAwLjAwOTkzNSwgMC4wMDk5OTgsIDAuMDEwMTA3LCAwLjAxMDI0NSwgMC4wMTA1MDEsIDAuMDEwNjEyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRCZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjA5NzMwNywgMC4xMDU1MjMsIDAuMTE0OTYzLCAwLjEyMjcyMSwgMC4xMjg5MDksIDAuMTM2OTQsIDAuMTQzMTQ1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wODE2OTgsIDAuMDg5NzEyLCAwLjA5OTI3NCwgMC4xMDY1MTYsIDAuMTEyMTg2LCAwLjExOTc5MSwgMC4xMjUzNjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEQpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDgyMTc0NDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA4MTk4OTc7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwODIxNzQ0OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNDA4OCwgMC4wMDQwNDMsIDAuMDA0MDcsIDAuMDA0MTIsIDAuMDA0MjAxLCAwLjAwNDM2OSwgMC4wMDQ1NDgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDQ1NTMsIDAuMDA0NTI1LCAwLjAwNDU0MywgMC4wMDQ1OTUsIDAuMDA0NjczLCAwLjAwNDg0NiwgMC4wMDQ5OTMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiU04iOwotICAgICAgc2RmX2NvbmQgOiAiU04gPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDA2MjUsIC0wLjAwMTI1LCAwLjAwNSwgMC4wMDUsIDAuMDA1LCAwLjAwODc1LCAwLjAxMTI1IiwgXAotICAgICAgICAgICItMC4wMTc1LCAtMC4wMDYyNSwgLTAuMDA2MjUsIDAsIDAsIDAuMDAzNzUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjAxNzUsIC0wLjAxMjUsIC0wLjAxMjUsIC0wLjAwNjI1LCAtMC4wMDYyNSwgLTAuMDAyNSwgMCIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMTI1LCAtMC4wMDYyNSwgLTAuMDAyNSwgMCIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAxMjUsIC0wLjAwODc1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDMzNzUsIC0wLjAyODc1LCAtMC4wMjI1LCAtMC4wMjI1LCAtMC4wMTYyNSwgLTAuMDEyNSwgLTAuMDEiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTUsIC0wLjAxMjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxODc1LCAwLjAyMzc1LCAwLjAzLCAwLjAzNjI1LCAwLjA0MjUsIDAuMDUyNSwgMC4wNTUiLCBcCi0gICAgICAgICAgIjAuMDEzNzUsIDAuMDE4NzUsIDAuMDI1LCAwLjAzMTI1LCAwLjAzNzUsIDAuMDQ3NSwgMC4wNSIsIFwKLSAgICAgICAgICAiMC4wMDc1LCAwLjAxMjUsIDAuMDI1LCAwLjAzMTI1LCAwLjAzNzUsIDAuMDQxMjUsIDAuMDUiLCBcCi0gICAgICAgICAgIjAuMDA3NSwgMC4wMTI1LCAwLjAxODc1LCAwLjAyNSwgMC4wMzEyNSwgMC4wNDEyNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4wMDEyNSwgMC4wMTI1LCAwLjAxODc1LCAwLjAyNSwgMC4wMzEyNSwgMC4wNDEyNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4wMDM3NSwgMC4wMDg3NSwgMC4wMTUsIDAuMDIxMjUsIDAuMDI3NSwgMC4wMzc1LCAwLjA0IiwgXAotICAgICAgICAgICIwLjAwMTI1LCAwLjAwNjI1LCAwLjAxODc1LCAwLjAyNSwgMC4wMjUsIDAuMDM1LCAwLjAzNzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlNOIjsKLSAgICAgIHNkZl9jb25kIDogIlNOID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzMTI1LCAwLjAyLCAwLjAxMzc1LCAwLjAwNzUsIDAuMDA3NSwgMC4wMDM3NSwgMC4wMDEyNSIsIFwKLSAgICAgICAgICAiMC4wMzYyNSwgMC4wMjUsIDAuMDE4NzUsIDAuMDE4NzUsIDAuMDEyNSwgMC4wMDg3NSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiMC4wNDI1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMjUsIDAuMDE4NzUsIDAuMDE1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMDQ4NzUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMjUsIDAuMDI1LCAwLjAyMTI1LCAwLjAxODc1IiwgXAotICAgICAgICAgICIwLjA1NSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAzMTI1LCAwLjAyNzUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMDU4NzUsIDAuMDUzNzUsIDAuMDQxMjUsIDAuMDQxMjUsIDAuMDM1LCAwLjAzMTI1LCAwLjAyODc1IiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDU2MjUsIDAuMDUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzM3NSwgMC4wMzEyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyNSwgMC4wMiwgMC4wMDc1LCAwLjAwMTI1LCAtMC4wMDUsIC0wLjAxNSwgLTAuMDIzNzUiLCBcCi0gICAgICAgICAgIjAuMDMsIDAuMDI1LCAwLjAxMjUsIDAuMDA2MjUsIDAsIC0wLjAxLCAtMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4wMzYyNSwgMC4wMzEyNSwgMC4wMTg3NSwgMC4wMTI1LCAwLjAwNjI1LCAtMC4wMDM3NSwgLTAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4wNDI1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMTI1LCAwLjAwNjI1LCAwLjAwMjUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICIwLjA0ODc1LCAwLjAzNzUsIDAuMDI1LCAwLjAxODc1LCAwLjAxMjUsIDAuMDAyNSwgMCIsIFwKLSAgICAgICAgICAiMC4wNTI1LCAwLjA0MTI1LCAwLjAzNSwgMC4wMjI1LCAwLjAxNjI1LCAwLjAxMjUsIDAuMDAzNzUiLCBcCi0gICAgICAgICAgIjAuMDU1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDE4NzUsIDAuMDE1LCAwLjAwNjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihRKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuNjkyODE0OwotICAgIGZ1bmN0aW9uIDogIk4zNSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3NlbnNlIDogbm9uX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiByaXNpbmdfZWRnZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDgwODAyLCAwLjE1NzU1MiwgMC4yMTg3NTEsIDAuMjk1MTE3LCAwLjM3MTY2MiwgMC40NDgxNjUsIDAuNTI0NTk4IiwgXAotICAgICAgICAgICIwLjA4ODk5OCwgMC4xNjU3NTEsIDAuMjI2OTIzLCAwLjMwMzM5LCAwLjM3OTg0OSwgMC40NTYzMjUsIDAuNTMyODU2IiwgXAotICAgICAgICAgICIwLjA5ODQwNCwgMC4xNzUxNjYsIDAuMjM2MzAyLCAwLjMxMjgxNywgMC4zODkyNywgMC40NjU3NDEsIDAuNTQyMjEiLCBcCi0gICAgICAgICAgIjAuMTA2MDgsIDAuMTgyODQxLCAwLjI0NDAzNCwgMC4zMjA0ODIsIDAuMzk2OTQzLCAwLjQ3MzI2NSwgMC41NDk4NjciLCBcCi0gICAgICAgICAgIjAuMTEyMTIyLCAwLjE4ODg3OCwgMC4yNTAwNTcsIDAuMzI2NTE1LCAwLjQwMjk3LCAwLjQ3OTQ0LCAwLjU1NTkwNSIsIFwKLSAgICAgICAgICAiMC4xMjAwMjUsIDAuMTk2NzkyLCAwLjI1Nzk2OSwgMC4zMzQ0MjYsIDAuNDEwODgxLCAwLjQ4NzMyNywgMC41NjM3OTYiLCBcCi0gICAgICAgICAgIjAuMTI2MDg5LCAwLjIwMjg0MSwgMC4yNjQwMzYsIDAuMzQwNTI1LCAwLjQxNjk3MywgMC40OTM0MzIsIDAuNTY5OTYiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM5MjA3LCAwLjE5NzkxMSwgMC4zMjYzNjIsIDAuNDg3OTIzLCAwLjY0OTIwOCwgMC44MTEwOTYsIDAuOTcwODMzIiwgXAotICAgICAgICAgICIwLjAzOTIwNiwgMC4xOTgwOTgsIDAuMzI2MzM2LCAwLjQ4ODQyMiwgMC42NDkxODYsIDAuODEwMTkyLCAwLjk3MTA0NCIsIFwKLSAgICAgICAgICAiMC4wMzkyMDQsIDAuMTk3OTEyLCAwLjMyNjM0MywgMC40ODc5MSwgMC42NDkxMzUsIDAuODEwMzM0LCAwLjk3MDg1OCIsIFwKLSAgICAgICAgICAiMC4wMzkxOTksIDAuMTk3Nzg5LCAwLjMyNjM3OCwgMC40ODg0LCAwLjY0OTE4NCwgMC44MTAyNjUsIDAuOTcxNDU0IiwgXAotICAgICAgICAgICIwLjAzOTIxNiwgMC4xOTgwOTYsIDAuMzI2Njg3LCAwLjQ4ODM4NSwgMC42NDkxMjUsIDAuODEwMjY5LCAwLjk3MjQzNyIsIFwKLSAgICAgICAgICAiMC4wMzkzODcsIDAuMTk4MTA4LCAwLjMyNzAxNSwgMC40ODgzMDcsIDAuNjQ5NjUzLCAwLjgxMDI0NSwgMC45NzE1MTciLCBcCi0gICAgICAgICAgIjAuMDM5MjI4LCAwLjE5NzgxNCwgMC4zMjY0OTQsIDAuNDg3Nzc1LCAwLjY0OTAwNCwgMC44MDk3NDIsIDAuOTcyMzU5Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5NzMwNywgMC4xNzM1LCAwLjIzNDExMSwgMC4zMDk5MDUsIDAuMzg1NjA5LCAwLjQ2MTM2MSwgMC41MzcwODQiLCBcCi0gICAgICAgICAgIjAuMTA1NTIzLCAwLjE4MTcxNiwgMC4yNDIzMTgsIDAuMzE4MTE1LCAwLjM5MzgzOSwgMC40Njk1NzEsIDAuNTQ1Mjk0IiwgXAotICAgICAgICAgICIwLjExNDk2MywgMC4xOTExNTksIDAuMjUxNzYyLCAwLjMyNzU1OCwgMC40MDMyODIsIDAuNDc5MDEzLCAwLjU1NDc0NiIsIFwKLSAgICAgICAgICAiMC4xMjI3MjEsIDAuMTk4OTE5LCAwLjI1OTUyMiwgMC4zMzUzMTYsIDAuNDExMDQyLCAwLjQ4Njc3MiwgMC41NjI1MDYiLCBcCi0gICAgICAgICAgIjAuMTI4OTA5LCAwLjIwNTEwNSwgMC4yNjU3MTksIDAuMzQxNDg2LCAwLjQxNzIxMywgMC40OTI5NjQsIDAuNTY4Njg3IiwgXAotICAgICAgICAgICIwLjEzNjk0LCAwLjIxMzEzOSwgMC4yNzM3MzQsIDAuMzQ5NTE4LCAwLjQyNTI1LCAwLjUwMDk4NCwgMC41NzY3MjUiLCBcCi0gICAgICAgICAgIjAuMTQzMTQ1LCAwLjIxOTMzOCwgMC4yNzk4ODIsIDAuMzU1NzA4LCAwLjQzMTM4OSwgMC41MDcxNjcsIDAuNTgyODU1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzODYyNCwgMC4xOTMzODgsIDAuMzE5MzA2LCAwLjQ3NjA0NCwgMC42MzQzODYsIDAuNzkxOTY5LCAwLjk0OTQ0OSIsIFwKLSAgICAgICAgICAiMC4wMzg2MTgsIDAuMTkzMzY5LCAwLjMxOTI4NiwgMC40NzU5OTMsIDAuNjM0NDQyLCAwLjc5MTk2MiwgMC45NDk0NDciLCBcCi0gICAgICAgICAgIjAuMDM4NjIzLCAwLjE5MzM3MywgMC4zMTkyODUsIDAuNDc1ODY5LCAwLjYzNDQ0LCAwLjc5MTk1NSwgMC45NDkzODkiLCBcCi0gICAgICAgICAgIjAuMDM4NjIzLCAwLjE5MzM3MywgMC4zMTkyODYsIDAuNDc1OTUzLCAwLjYzNDQ0MSwgMC43OTE5NSwgMC45NDk0MDYiLCBcCi0gICAgICAgICAgIjAuMDM4NjIsIDAuMTkzMzg3LCAwLjMxODkxMiwgMC40NzYxNjEsIDAuNjM0MzEsIDAuNzkxOTYsIDAuOTQ5NDQ2IiwgXAotICAgICAgICAgICIwLjAzODYxOCwgMC4xOTMzNjgsIDAuMzE5MjI2LCAwLjQ3NjkwOCwgMC42MzQ0MTQsIDAuNzkxOTM3LCAwLjk0OTQ4NCIsIFwKLSAgICAgICAgICAiMC4wMzg1OTIsIDAuMTkzNDUyLCAwLjMxOTMzMywgMC40NzYyMzQsIDAuNjM0NDI3LCAwLjc5MjExOSwgMC45NDkzMDgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiU04iOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHByZXNldDsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDcyODI3LCAwLjE0OTU1LCAwLjIxMDc4OCwgMC4yODcyMjcsIDAuMzYzNzAzLCAwLjQ0MDIyOCwgMC41MTY2NTMiLCBcCi0gICAgICAgICAgIjAuMDgwOTY3LCAwLjE1NzcwNywgMC4yMTg5MjIsIDAuMjk1MzU2LCAwLjM3MTgzMiwgMC40NDgyOTYsIDAuNTI0NzM1IiwgXAotICAgICAgICAgICIwLjA5MDQ2MSwgMC4xNjcyMzUsIDAuMjI4NDU0LCAwLjMwNDg4MywgMC4zODEzNTYsIDAuNDU3ODI5LCAwLjUzNDI5MyIsIFwKLSAgICAgICAgICAiMC4wOTgyNzcsIDAuMTc1MDE0LCAwLjIzNjIzNCwgMC4zMTI2NTcsIDAuMzg5MTI1LCAwLjQ2NTYxMSwgMC41NDIwNTIiLCBcCi0gICAgICAgICAgIjAuMTA0NzQ4LCAwLjE4MTUyNiwgMC4yNDI3MzIsIDAuMzE5MTY3LCAwLjM5NTY0LCAwLjQ3MjA5OCwgMC41NDg1NzYiLCBcCi0gICAgICAgICAgIjAuMTEzMTA2LCAwLjE4OTg3MiwgMC4yNTEwODYsIDAuMzI3NTQyLCAwLjQwMzk4MiwgMC40ODA0NTMsIDAuNTU2ODkzIiwgXAotICAgICAgICAgICIwLjExODk3OSwgMC4xOTU3MTEsIDAuMjU2ODgzLCAwLjMzMzQxNiwgMC40MDk4NCwgMC40ODYzNTQsIDAuNTYyNzciKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM5MTA4LCAwLjE5ODEzMywgMC4zMjcxMjEsIDAuNDg4Mzc4LCAwLjY0OTY1OCwgMC44MTAzNSwgMC45NzIxNTkiLCBcCi0gICAgICAgICAgIjAuMDM5MTM2LCAwLjE5ODE1LCAwLjMyNzA4LCAwLjQ4ODM3LCAwLjY0OTY1OSwgMC44MTAzNDYsIDAuOTcxNjA3IiwgXAotICAgICAgICAgICIwLjAzOTA5OSwgMC4xOTgxNTQsIDAuMzI3MDcsIDAuNDg4MzI3LCAwLjY0OTIxNiwgMC44MTAzNTcsIDAuOTcyNTAyIiwgXAotICAgICAgICAgICIwLjAzOTE2NiwgMC4xOTgxNjYsIDAuMzI3MDUxLCAwLjQ4ODMyNSwgMC42NDk2ODQsIDAuODEwNDM5LCAwLjk3MjMyOCIsIFwKLSAgICAgICAgICAiMC4wMzkyMjcsIDAuMTk4MTc4LCAwLjMyNzA5NywgMC40ODgzMjYsIDAuNjQ5NjA3LCAwLjgxMTA1OCwgMC45NzE1ODQiLCBcCi0gICAgICAgICAgIjAuMDM5Mjk4LCAwLjE5ODE3NiwgMC4zMjcwOCwgMC40ODgzODIsIDAuNjQ5NzIxLCAwLjgxMDk2NywgMC45NzI0MTMiLCBcCi0gICAgICAgICAgIjAuMDM5MzUzLCAwLjE5Nzk0MSwgMC4zMjY5NzYsIDAuNDg3NzgxLCAwLjY0OTY3MywgMC44MTEwOSwgMC45NzIyMzMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEwMTIxLCAwLjAxMDE4NiwgMC4wMTAxOTgsIDAuMDEwMTk4LCAwLjAxMDIwNiwgMC4wMTAyMDIsIDAuMDEwMjAyIiwgXAotICAgICAgICAgICIwLjAxMDEwMiwgMC4wMTAxNjYsIDAuMDEwMTc0LCAwLjAxMDE3OSwgMC4wMTAxODEsIDAuMDEwMTgyLCAwLjAxMDE4MiIsIFwKLSAgICAgICAgICAiMC4wMTAxODIsIDAuMDEwMjQ3LCAwLjAxMDI1NSwgMC4wMTAyNTksIDAuMDEwMjY1LCAwLjAxMDI2MiwgMC4wMTAyNjciLCBcCi0gICAgICAgICAgIjAuMDEwMjg2LCAwLjAxMDM1NCwgMC4wMTAzNjMsIDAuMDEwMzY3LCAwLjAxMDM3LCAwLjAxMDM2NywgMC4wMTAzNzIiLCBcCi0gICAgICAgICAgIjAuMDEwNDE1LCAwLjAxMDQ4LCAwLjAxMDQ4NywgMC4wMTA0OTIsIDAuMDEwNDk0LCAwLjAxMDQ5NywgMC4wMTA0OTYiLCBcCi0gICAgICAgICAgIjAuMDEwNjQ2LCAwLjAxMDcwNSwgMC4wMTA3MTksIDAuMDEwNzE3LCAwLjAxMDcxOCwgMC4wMTA3MjEsIDAuMDEwNzIyIiwgXAotICAgICAgICAgICIwLjAxMDgzLCAwLjAxMDg1LCAwLjAxMDg1NCwgMC4wMTA4NjksIDAuMDEwODcxLCAwLjAxMDg3MSwgMC4wMTA4NzEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDk5MiwgMC4wMTAwMTIsIDAuMDEwMDI1LCAwLjAxMDAzMiwgMC4wMTAwMzYsIDAuMDEwMDM4LCAwLjAxMDA0IiwgXAotICAgICAgICAgICIwLjAwOTkxNSwgMC4wMTAwMDYsIDAuMDEwMDE5LCAwLjAxMDAyNSwgMC4wMTAwMjksIDAuMDEwMDMxLCAwLjAxMDAzMyIsIFwKLSAgICAgICAgICAiMC4wMTAwMTgsIDAuMDEwMTA5LCAwLjAxMDEyMiwgMC4wMTAxMjgsIDAuMDEwMTMyLCAwLjAxMDEzNCwgMC4wMTAxMzYiLCBcCi0gICAgICAgICAgIjAuMDEwMTQ2LCAwLjAxMDIzNywgMC4wMTAyNSwgMC4wMTAyNTYsIDAuMDEwMjYsIDAuMDEwMjYyLCAwLjAxMDI2NCIsIFwKLSAgICAgICAgICAiMC4wMTAyNzEsIDAuMDEwMzYyLCAwLjAxMDM3NSwgMC4wMTAzODIsIDAuMDEwMzg0LCAwLjAxMDM4NywgMC4wMTAzODkiLCBcCi0gICAgICAgICAgIjAuMDEwNTI5LCAwLjAxMDYxOCwgMC4wMTA2MjksIDAuMDEwNjM2LCAwLjAxMDY0LCAwLjAxMDY0MiwgMC4wMTA2NDMiLCBcCi0gICAgICAgICAgIjAuMDEwNjk5LCAwLjAxMDc4OSwgMC4wMTA4MzcsIDAuMDEwODA4LCAwLjAxMDg0OSwgMC4wMTA4NTEsIDAuMDEwODUzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiU04iOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMTc1MywgMC4wMTE4MiwgMC4wMTE4MjksIDAuMDExODM0LCAwLjAxMTgzNiwgMC4wMTE4MzcsIDAuMDExODM0IiwgXAotICAgICAgICAgICIwLjAxMTcxMSwgMC4wMTE3NzcsIDAuMDExNzg3LCAwLjAxMTc5MSwgMC4wMTE3OTYsIDAuMDExNzk1LCAwLjAxMTc5NSIsIFwKLSAgICAgICAgICAiMC4wMTE3MiwgMC4wMTE3OSwgMC4wMTE3OTksIDAuMDExODA0LCAwLjAxMTgwNiwgMC4wMTE4MTIsIDAuMDExODExIiwgXAotICAgICAgICAgICIwLjAxMTc5MywgMC4wMTE4NjEsIDAuMDExODcsIDAuMDExODc1LCAwLjAxMTg3OCwgMC4wMTE4OCwgMC4wMTE4OCIsIFwKLSAgICAgICAgICAiMC4wMTE4ODIsIDAuMDExOTU0LCAwLjAxMTk2NSwgMC4wMTE5NzEsIDAuMDExOTczLCAwLjAxMTk3NCwgMC4wMTE5NzYiLCBcCi0gICAgICAgICAgIjAuMDEyMDUzLCAwLjAxMjExOCwgMC4wMTIxMywgMC4wMTIxMzMsIDAuMDEyMTM4LCAwLjAxMjEzOSwgMC4wMTIxNCIsIFwKLSAgICAgICAgICAiMC4wMTIyODIsIDAuMDEyMzUzLCAwLjAxMjM2MSwgMC4wMTIzNjUsIDAuMDEyMzcsIDAuMDEyMzcxLCAwLjAxMjM3MiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihzY2FsYXIpIHsKLSAgICAgICAgdmFsdWVzKCIwIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTTikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxODY0OTM7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNzI0NDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE4NjQ5MzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA4NDIsIDAuMDAwODQxLCAwLjAwMDg0MSwgMC4wMDA4NDEsIDAuMDAwODQxLCAwLjAwMDg0LCAwLjAwMDg0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwODY4LCAwLjAwMDg1MywgMC4wMDA4NDcsIDAuMDAwODQ1LCAwLjAwMDg0NCwgMC4wMDA4NDQsIDAuMDAwODQzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRCI7Ci0gICAgICBzZGZfY29uZCA6ICJEID09IDEnYjAiOwotICAgICAgZmFsbF9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDcyODI3LCAwLjA4MDk2NywgMC4wOTA0NjEsIDAuMDk4Mjc2LCAwLjEwNDc0OCwgMC4xMTMxMDYsIDAuMTE4OTc5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogcmVjb3ZlcnlfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRCI7Ci0gICAgICBzZGZfY29uZCA6ICJEID09IDEnYjAiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHJlY292ZXJ5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLCAtMC4wMDUsIC0wLjAxNzUsIC0wLjAyMzc1LCAtMC4wMywgLTAuMDQsIC0wLjA0ODc1IiwgXAotICAgICAgICAgICIwLjAwNSwgMCwgLTAuMDEyNSwgLTAuMDE4NzUsIC0wLjAyNSwgLTAuMDM1LCAtMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4wMTc1LCAwLjAwNjI1LCAtMC4wMDYyNSwgLTAuMDEyNSwgLTAuMDE4NzUsIC0wLjAyODc1LCAtMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4wMjM3NSwgMC4wMTI1LCAwLjAwNjI1LCAtMC4wMDYyNSwgLTAuMDEyNSwgLTAuMDE2MjUsIC0wLjAyNSIsIFwKLSAgICAgICAgICAiMC4wMywgMC4wMTg3NSwgMC4wMTI1LCAwLCAtMC4wMDYyNSwgLTAuMDEsIC0wLjAxODc1IiwgXAotICAgICAgICAgICIwLjA0LCAwLjAzNSwgMC4wMjI1LCAwLjAxNjI1LCAwLjAxLCAwLCAtMC4wMDg3NSIsIFwKLSAgICAgICAgICAiMC4wNDg3NSwgMC4wNDM3NSwgMC4wMzEyNSwgMC4wMjUsIDAuMDE4NzUsIDAuMDA4NzUsIDAiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiByZW1vdmFsX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUQiOwotICAgICAgc2RmX2NvbmQgOiAiRCA9PSAxJ2IwIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChyZW1vdmFsX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyNSwgMC4wMzYyNSwgMC4wNDI1LCAwLjA0ODc1LCAwLjA1NSwgMC4wNjUsIDAuMDczNzUiLCBcCi0gICAgICAgICAgIjAuMDIsIDAuMDMxMjUsIDAuMDM3NSwgMC4wNDM3NSwgMC4wNSwgMC4wNiwgMC4wNjI1IiwgXAotICAgICAgICAgICIwLjAxMzc1LCAwLjAxODc1LCAwLjAzMTI1LCAwLjAzNzUsIDAuMDQzNzUsIDAuMDUzNzUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIjAuMDA3NSwgMC4wMTI1LCAwLjAyNSwgMC4wMzEyNSwgMC4wMzc1LCAwLjA0NzUsIDAuMDUiLCBcCi0gICAgICAgICAgIjAuMDAxMjUsIDAuMDA2MjUsIDAuMDE4NzUsIDAuMDI1LCAwLjAzMTI1LCAwLjA0MTI1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICItMC4wMDg3NSwgMC4wMDI1LCAwLjAwODc1LCAwLjAxNSwgMC4wMjEyNSwgMC4wMzEyNSwgMC4wMzM3NSIsIFwKLSAgICAgICAgICAiLTAuMDExMjUsIC0wLjAwNjI1LCAwLjAwNjI1LCAwLjAxMjUsIDAuMDE4NzUsIDAuMDIyNSwgMC4wMzEyNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBERkZTSFFYNCAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoREZGU0hRWDQpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMS4zMzc4ODsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBmZiAoTjM1LFFCSU5UKSB7Ci0gICAgbmV4dF9zdGF0ZSA6ICJEIjsKLSAgICBjbG9ja2VkX29uIDogIkNLIjsKLSAgICBwcmVzZXQgOiAiKCFTTikiOwotICB9Ci0gIHBpbihDSykgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjMwNDM2OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYzMDM2MzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2MzA0MzY7Ci0gICAgY2xvY2sgOiB0cnVlOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzg0NSwgMC4wMDM4MzQsIDAuMDAzOTA2LCAwLjAwNDAxLCAwLjAwNDEyOCwgMC4wMDQzNjIsIDAuMDA0NTUyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA5NjU1LCAwLjAwOTY0OCwgMC4wMDk3MTcsIDAuMDA5ODE5LCAwLjAwOTk2MiwgMC4wMTAwNjUsIDAuMDEwMjc5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRCZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjA5MjM3MiwgMC4xMDA2MTMsIDAuMTEwMDkzLCAwLjExNzk4OCwgMC4xMjQxOTQsIDAuMTMyMzc1LCAwLjEzODU5NiIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDgwNjc3LCAwLjA4ODgxOCwgMC4wOTgxMTcsIDAuMTA1Mzc5LCAwLjExMTE2NSwgMC4xMTg5NTIsIDAuMTI0NDcyIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihEKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA4MjgzMjQ7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwODI2NjAzOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDgyODMyNDsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDM3NCwgMC4wMDM2OTUsIDAuMDAzNzI3LCAwLjAwMzc3MywgMC4wMDM4NTgsIDAuMDA0MDI5LCAwLjAwNDIxMSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNDU2NCwgMC4wMDQ1MzksIDAuMDA0NTU1LCAwLjAwNDYwOCwgMC4wMDQ2OTIsIDAuMDA0ODMyLCAwLjAwNTAwNiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJTTiA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMDYyNSwgLTAuMDAxMjUsIDAuMDA1LCAwLjAwNSwgMC4wMDUsIDAuMDA4NzUsIDAuMDExMjUiLCBcCi0gICAgICAgICAgIi0wLjAxMTI1LCAtMC4wMDYyNSwgLTAuMDA2MjUsIDAsIDAsIDAuMDAzNzUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjAxNzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAtMC4wMDYyNSwgMCwgMC4wMDM3NSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMTI1LCAtMC4wMDYyNSwgLTAuMDAyNSwgMCIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAxMjUsIC0wLjAwODc1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDMzNzUsIC0wLjAyODc1LCAtMC4wMjI1LCAtMC4wMTYyNSwgLTAuMDE2MjUsIC0wLjAxMjUsIC0wLjAxIiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDE1LCAtMC4wMTI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTg3NSwgMC4wMjM3NSwgMC4wMzYyNSwgMC4wNDI1LCAwLjA0ODc1LCAwLjA1MjUsIDAuMDU1IiwgXAotICAgICAgICAgICIwLjAxMzc1LCAwLjAxODc1LCAwLjAzMTI1LCAwLjAzNzUsIDAuMDQzNzUsIDAuMDQ3NSwgMC4wNSIsIFwKLSAgICAgICAgICAiMC4wMDc1LCAwLjAxODc1LCAwLjAyNSwgMC4wMzEyNSwgMC4wMzc1LCAwLjA0NzUsIDAuMDUiLCBcCi0gICAgICAgICAgIjAuMDA3NSwgMC4wMTI1LCAwLjAyNSwgMC4wMzEyNSwgMC4wMzc1LCAwLjA0MTI1LCAwLjA1IiwgXAotICAgICAgICAgICIwLjAwNzUsIDAuMDEyNSwgMC4wMjUsIDAuMDMxMjUsIDAuMDMxMjUsIDAuMDQxMjUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMDAzNzUsIDAuMDA4NzUsIDAuMDIxMjUsIDAuMDI3NSwgMC4wMzM3NSwgMC4wMzc1LCAwLjA0NjI1IiwgXAotICAgICAgICAgICIwLjAwMTI1LCAwLjAxMjUsIDAuMDE4NzUsIDAuMDI1LCAwLjAzMTI1LCAwLjAzNSwgMC4wNDM3NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiU04iOwotICAgICAgc2RmX2NvbmQgOiAiU04gPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDI1LCAwLjAyLCAwLjAxMzc1LCAwLjAwNzUsIDAuMDA3NSwgMC4wMDM3NSwgMC4wMDEyNSIsIFwKLSAgICAgICAgICAiMC4wMzYyNSwgMC4wMjUsIDAuMDE4NzUsIDAuMDE4NzUsIDAuMDEyNSwgMC4wMDg3NSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiMC4wNDI1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMjUsIDAuMDE4NzUsIDAuMDE1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMDQ4NzUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMjUsIDAuMDI1LCAwLjAyMTI1LCAwLjAxODc1IiwgXAotICAgICAgICAgICIwLjA0ODc1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDMxMjUsIDAuMDIxMjUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMDU4NzUsIDAuMDQ3NSwgMC4wNDEyNSwgMC4wNDEyNSwgMC4wMzUsIDAuMDMxMjUsIDAuMDI4NzUiLCBcCi0gICAgICAgICAgIjAuMDYxMjUsIDAuMDU2MjUsIDAuMDUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzM3NSwgMC4wMzEyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyNSwgMC4wMTM3NSwgMC4wMDc1LCAtMC4wMDUsIC0wLjAxMTI1LCAtMC4wMTUsIC0wLjAyMzc1IiwgXAotICAgICAgICAgICIwLjAzLCAwLjAxODc1LCAwLjAxMjUsIDAuMDA2MjUsIC0wLjAwNjI1LCAtMC4wMSwgLTAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMDM2MjUsIDAuMDI1LCAwLjAxODc1LCAwLjAxMjUsIDAsIC0wLjAwMzc1LCAtMC4wMTI1IiwgXAotICAgICAgICAgICIwLjA0MjUsIDAuMDMxMjUsIDAuMDI1LCAwLjAxMjUsIDAuMDA2MjUsIC0wLjAwMzc1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiMC4wNDI1LCAwLjAzNzUsIDAuMDI1LCAwLjAxODc1LCAwLjAxMjUsIDAuMDAyNSwgMCIsIFwKLSAgICAgICAgICAiMC4wNTI1LCAwLjA0MTI1LCAwLjAyODc1LCAwLjAyMjUsIDAuMDE2MjUsIDAuMDA2MjUsIDAuMDAzNzUiLCBcCi0gICAgICAgICAgIjAuMDU1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDI1LCAwLjAxODc1LCAwLjAxNSwgMC4wMDYyNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAxLjM3ODY4OwotICAgIGZ1bmN0aW9uIDogIk4zNSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3NlbnNlIDogbm9uX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiByaXNpbmdfZWRnZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzczOSwgMC4xMzE4OTgsIDAuMTg1NzA2LCAwLjIyNDEyMSwgMC4yODU2MjUsIDAuMzM5NDM2LCAwLjQxNjI2MSIsIFwKLSAgICAgICAgICAiMC4wODU1ODksIDAuMTQwMDg4LCAwLjE5Mzg5MiwgMC4yMzIzMDcsIDAuMjkzNzkyLCAwLjM0NzU5OCwgMC40MjQzODYiLCBcCi0gICAgICAgICAgIjAuMDk1MDU3LCAwLjE0OTU1LCAwLjIwMzM1NiwgMC4yNDE3NzIsIDAuMzAzMjg1LCAwLjM1Njk2NCwgMC40MzM5ODQiLCBcCi0gICAgICAgICAgIjAuMTAyODAyLCAwLjE1NzMwOCwgMC4yMTExMTMsIDAuMjQ5NTI4LCAwLjMxMTAxMiwgMC4zNjQ4MTIsIDAuNDQxNzQyIiwgXAotICAgICAgICAgICIwLjEwOTAzNSwgMC4xNjM1MjIsIDAuMjE3MzE5LCAwLjI1NTczMywgMC4zMTcyMzksIDAuMzcxMDUyLCAwLjQ0Nzg4NSIsIFwKLSAgICAgICAgICAiMC4xMTcxNDYsIDAuMTcxNjY1LCAwLjIyNTQ1MSwgMC4yNjM4NzcsIDAuMzI1MzUxLCAwLjM3OTE1MSwgMC40NTYwMDkiLCBcCi0gICAgICAgICAgIjAuMTIzNDMxLCAwLjE3NzkyMiwgMC4yMzE3MjUsIDAuMjcwMTQ5LCAwLjMzMTY1NSwgMC4zODU0MjMsIDAuNDYyMjkxIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDI0MDI5LCAwLjEzNDQ2OSwgMC4yNDc4MDMsIDAuMzI4MzkxLCAwLjQ1ODEwNiwgMC41NzIzNjYsIDAuNzM0NTY2IiwgXAotICAgICAgICAgICIwLjAyNDAzMSwgMC4xMzQ0NjgsIDAuMjQ3Nzk5LCAwLjMyODgzOSwgMC40NTg3NiwgMC41NzIzNDIsIDAuNzM0MzQzIiwgXAotICAgICAgICAgICIwLjAyNDAyLCAwLjEzNDQ2NCwgMC4yNDc3OTMsIDAuMzI4ODg1LCAwLjQ1Nzc1MSwgMC41NzEwMzgsIDAuNzMzMTgyIiwgXAotICAgICAgICAgICIwLjAyNDAyMywgMC4xMzQ0NjgsIDAuMjQ3Nzk2LCAwLjMyODgzNCwgMC40NTg3NCwgMC41NzIzMTYsIDAuNzMzMjM5IiwgXAotICAgICAgICAgICIwLjAyNDAzNCwgMC4xMzQ0ODUsIDAuMjQ3Nzk4LCAwLjMyODg0NSwgMC40NTg3NjQsIDAuNTcxMjYzLCAwLjczNDUyNiIsIFwKLSAgICAgICAgICAiMC4wMjQwNTcsIDAuMTM0NDc5LCAwLjI0Nzc2OSwgMC4zMjg5MDEsIDAuNDU4NjgzLCAwLjU3MjIyOSwgMC43MzQ0MjUiLCBcCi0gICAgICAgICAgIjAuMDI0MDY2LCAwLjEzNDMzMywgMC4yNDc0OTIsIDAuMzI4OTgxLCAwLjQ1ODA2OSwgMC41NzIxOTYsIDAuNzM0NDI5Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDkyMzcyLCAwLjE0NzA3MSwgMC4yMDA4ODEsIDAuMjM5Mjk3LCAwLjMwMDc1NSwgMC4zNTQ1NTksIDAuNDMxMzkiLCBcCi0gICAgICAgICAgIjAuMTAwNjEzLCAwLjE1NTMxNSwgMC4yMDkxMiwgMC4yNDc1NDYsIDAuMzA4OTk1LCAwLjM2Mjc4MywgMC40Mzk2NDQiLCBcCi0gICAgICAgICAgIjAuMTEwMDkzLCAwLjE2NDc5NCwgMC4yMTg2MDMsIDAuMjU3MDExLCAwLjMxODQ3MywgMC4zNzIyNTksIDAuNDQ5MTI1IiwgXAotICAgICAgICAgICIwLjExNzk4OCwgMC4xNzI2ODksIDAuMjI2NDksIDAuMjY0OTA1LCAwLjMyNjM3MSwgMC4zODAxNDYsIDAuNDU2OTkiLCBcCi0gICAgICAgICAgIjAuMTI0MTk0LCAwLjE3ODg5NSwgMC4yMzI2OTgsIDAuMjcxMTE5LCAwLjMzMjU3NCwgMC4zODYzNjQsIDAuNDYzMjI3IiwgXAotICAgICAgICAgICIwLjEzMjM3NSwgMC4xODcwNzQsIDAuMjQwODgxLCAwLjI3OTI5MywgMC4zNDA3NTEsIDAuMzk0NTM4LCAwLjQ3MTQwNyIsIFwKLSAgICAgICAgICAiMC4xMzg1OTYsIDAuMTkzMjk2LCAwLjI0NzE2NCwgMC4yODU1MjUsIDAuMzQ3MDU1LCAwLjQwMDgzNCwgMC40Nzc2MiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyMzkxOCwgMC4xMzI2MzcsIDAuMjQ0MDIyLCAwLjMyNDI2NiwgMC40NTIxNjUsIDAuNTY0MjY0LCAwLjcyNDIxOSIsIFwKLSAgICAgICAgICAiMC4wMjM5MDEsIDAuMTMyNTk2LCAwLjI0Mzk1MiwgMC4zMjQzNDYsIDAuNDUyMTU4LCAwLjU2MzYwNCwgMC43MjM1MzkiLCBcCi0gICAgICAgICAgIjAuMDIzOSwgMC4xMzI1OTYsIDAuMjQ0MDI1LCAwLjMyMzkyNSwgMC40NTIxNSwgMC41NjM1MzMsIDAuNzIyOTMiLCBcCi0gICAgICAgICAgIjAuMDIzOTAzLCAwLjEzMjYwMiwgMC4yNDQwMiwgMC4zMjQyNTcsIDAuNDUxNzc5LCAwLjU2NDE0NSwgMC43MjQxOTQiLCBcCi0gICAgICAgICAgIjAuMDIzODgzLCAwLjEzMjU5NSwgMC4yNDQwMDUsIDAuMzIzNjE5LCAwLjQ1MjE0NSwgMC41NjM2MDMsIDAuNzIzMDMyIiwgXAotICAgICAgICAgICIwLjAyMzk3NSwgMC4xMzI2MzQsIDAuMjQ0MDA3LCAwLjMyNDIwNSwgMC40NTIwOTUsIDAuNTYzNDg4LCAwLjcyMzEwOCIsIFwKLSAgICAgICAgICAiMC4wMjM4ODQsIDAuMTMyNjQ2LCAwLjI0NDA5LCAwLjMyMzc2NCwgMC40NTIyMzYsIDAuNTY0MjA4LCAwLjcyMzI4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiBwcmVzZXQ7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY3MzYxLCAwLjEyMTksIDAuMTc1NzI0LCAwLjIxNDEyLCAwLjI3NTY0NiwgMC4zMjk0MTYsIDAuNDA2MjUiLCBcCi0gICAgICAgICAgIjAuMDc0MzIzLCAwLjEyODgxMiwgMC4xODI2MDcsIDAuMjIxMDc1LCAwLjI4MjU2MywgMC4zMzYzMzUsIDAuNDEzMTc0IiwgXAotICAgICAgICAgICIwLjA4NDA2MywgMC4xMzg1MTcsIDAuMTkyMzI3LCAwLjIzMDcyMSwgMC4yOTIyNTIsIDAuMzQ2MDIzLCAwLjQyMjg4OCIsIFwKLSAgICAgICAgICAiMC4wOTIxMDQsIDAuMTQ2NTQyLCAwLjIwMDM0NywgMC4yMzg3ODcsIDAuMzAwMjcsIDAuMzU0MDQzLCAwLjQzMDc5OCIsIFwKLSAgICAgICAgICAiMC4wOTg3NTIsIDAuMTUzMjYsIDAuMjA3MDcsIDAuMjQ1NTA1LCAwLjMwNjk5OSwgMC4zNjA3NywgMC40Mzc2MDgiLCBcCi0gICAgICAgICAgIjAuMTA3NDUzLCAwLjE2MTk1MSwgMC4yMTU3NjUsIDAuMjU0MjAyLCAwLjMxNTY3MywgMC4zNjk0ODMsIDAuNDQ2MzEiLCBcCi0gICAgICAgICAgIjAuMTEzNzI4LCAwLjE2ODI0OCwgMC4yMjIwNDcsIDAuMjYwNDkyLCAwLjMyMTk5LCAwLjM3NTg0OCwgMC40NTI2MzIiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjM5MywgMC4xMzQ0MzcsIDAuMjQ3ODUsIDAuMzI4NzgxLCAwLjQ1ODczMSwgMC41NzIzLCAwLjczNDM3MiIsIFwKLSAgICAgICAgICAiMC4wMjM5MiwgMC4xMzQ1MzUsIDAuMjQ3ODY1LCAwLjMyODY1MywgMC40NTg3NDcsIDAuNTcyMzAyLCAwLjczNDMyNyIsIFwKLSAgICAgICAgICAiMC4wMjM5MzMsIDAuMTM0NTM0LCAwLjI0Nzg3LCAwLjMyODQxNywgMC40NTg3NjUsIDAuNTcyMzA3LCAwLjczNDYxMyIsIFwKLSAgICAgICAgICAiMC4wMjQwMTEsIDAuMTM0NTMxLCAwLjI0Nzg5NCwgMC4zMjg5ODMsIDAuNDU4NzU1LCAwLjU3MjI3MSwgMC43MzQ1MDciLCBcCi0gICAgICAgICAgIjAuMDI0MjE2LCAwLjEzNDUzMiwgMC4yNDc4OTcsIDAuMzI4OTUsIDAuNDU4NzQ3LCAwLjU3MjI3MSwgMC43MzQ0MjciLCBcCi0gICAgICAgICAgIjAuMDI0MjM0LCAwLjEzNDQ5NywgMC4yNDc5MjQsIDAuMzI4OTU4LCAwLjQ1ODcxNCwgMC41NzE2ODgsIDAuNzM0NDk5IiwgXAotICAgICAgICAgICIwLjAyNDM4NiwgMC4xMzQzODQsIDAuMjQ3NTg2LCAwLjMyODk5NywgMC40NTgzMTMsIDAuNTcyMjA0LCAwLjczNDQzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE0MTc5LCAwLjAxNDMyMSwgMC4wMTQzNDEsIDAuMDE0MzQ4LCAwLjAxNDM1MywgMC4wMTQzNDEsIDAuMDE0MzgiLCBcCi0gICAgICAgICAgIjAuMDE0MTU0LCAwLjAxNDI5NywgMC4wMTQzMTksIDAuMDE0MzI1LCAwLjAxNDMzMSwgMC4wMTQzMzMsIDAuMDE0MzM2IiwgXAotICAgICAgICAgICIwLjAxNDIzNiwgMC4wMTQzNzgsIDAuMDE0Mzk5LCAwLjAxNDQwNiwgMC4wMTQ0MjEsIDAuMDE0NDE0LCAwLjAxNDQxNyIsIFwKLSAgICAgICAgICAiMC4wMTQzMzMsIDAuMDE0NDgyLCAwLjAxNDUwNSwgMC4wMTQ1MTEsIDAuMDE0NTE1LCAwLjAxNDUxNywgMC4wMTQ1MjMiLCBcCi0gICAgICAgICAgIjAuMDE0NDU5LCAwLjAxNDYxNiwgMC4wMTQ2MzcsIDAuMDE0NjQ1LCAwLjAxNDY1MywgMC4wMTQ2NTIsIDAuMDE0NjU2IiwgXAotICAgICAgICAgICIwLjAxNDY4OCwgMC4wMTQ4MjgsIDAuMDE0ODQ3LCAwLjAxNDg1MywgMC4wMTQ4NjEsIDAuMDE0ODYxLCAwLjAxNDg2OSIsIFwKLSAgICAgICAgICAiMC4wMTQ4NDYsIDAuMDE0OTc5LCAwLjAxNSwgMC4wMTUwNDcsIDAuMDE1MDUzLCAwLjAxNTA1NiwgMC4wMTUwNTkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMzQ4NSwgMC4wMTM3MDgsIDAuMDEzNzQ3LCAwLjAxMzc1OSwgMC4wMTM3NzEsIDAuMDEzNzc2LCAwLjAxMzc4MiIsIFwKLSAgICAgICAgICAiMC4wMTM0OCwgMC4wMTM3MDEsIDAuMDEzNzQsIDAuMDEzNzUyLCAwLjAxMzc2MywgMC4wMTM3NjksIDAuMDEzNzc0IiwgXAotICAgICAgICAgICIwLjAxMzU4NSwgMC4wMTM4MDcsIDAuMDEzODQ2LCAwLjAxMzg1OSwgMC4wMTM4NywgMC4wMTM4NzUsIDAuMDEzODgiLCBcCi0gICAgICAgICAgIjAuMDEzNzIzLCAwLjAxMzkzOSwgMC4wMTM5NzgsIDAuMDEzOTksIDAuMDE0LCAwLjAxNDAwNiwgMC4wMTQwMTIiLCBcCi0gICAgICAgICAgIjAuMDEzODI5LCAwLjAxNDA1MywgMC4wMTQwOTIsIDAuMDE0MTA0LCAwLjAxNDExNiwgMC4wMTQxMjIsIDAuMDE0MTI3IiwgXAotICAgICAgICAgICIwLjAxNDA5MSwgMC4wMTQzMTgsIDAuMDE0MzUyLCAwLjAxNDM2NiwgMC4wMTQzNzYsIDAuMDE0MzgxLCAwLjAxNDM4NyIsIFwKLSAgICAgICAgICAiMC4wMTQyODcsIDAuMDE0NTE3LCAwLjAxNDUyMiwgMC4wMTQ1NjgsIDAuMDE0NTQ2LCAwLjAxNDU1MSwgMC4wMTQ1ODkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTUyMjIsIDAuMDE1MzcxLCAwLjAxNTM5NCwgMC4wMTU0MDMsIDAuMDE1NDI0LCAwLjAxNTQyLCAwLjAxNTQxMyIsIFwKLSAgICAgICAgICAiMC4wMTUxODgsIDAuMDE1MzM4LCAwLjAxNTM2MSwgMC4wMTUzNzQsIDAuMDE1Mzc1LCAwLjAxNTM5MSwgMC4wMTUzODEiLCBcCi0gICAgICAgICAgIjAuMDE1MjA5LCAwLjAxNTM1NiwgMC4wMTUzOCwgMC4wMTUzODgsIDAuMDE1Mzk0LCAwLjAxNTM5OCwgMC4wMTU0MDEiLCBcCi0gICAgICAgICAgIjAuMDE1Mjk1LCAwLjAxNTQ0MiwgMC4wMTU0NjcsIDAuMDE1NDc0LCAwLjAxNTQ4MywgMC4wMTU0ODYsIDAuMDE1NDg5IiwgXAotICAgICAgICAgICIwLjAxNTQwNywgMC4wMTU1NDMsIDAuMDE1NTg3LCAwLjAxNTU4OSwgMC4wMTU1OTYsIDAuMDE1NTk4LCAwLjAxNTYwMyIsIFwKLSAgICAgICAgICAiMC4wMTU2MTIsIDAuMDE1NzQ5LCAwLjAxNTc3NSwgMC4wMTU3ODQsIDAuMDE1NzkxLCAwLjAxNTc5NSwgMC4wMTU3OTkiLCBcCi0gICAgICAgICAgIjAuMDE1ODAyLCAwLjAxNTk0LCAwLjAxNTk3LCAwLjAxNTk3NCwgMC4wMTU5ODUsIDAuMDE1OTksIDAuMDE1OTk5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHNjYWxhcikgewotICAgICAgICB2YWx1ZXMoIjAiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFNOKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE4MTI5NDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE2NzI2MTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE4MTI5NDsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA4NDIsIDAuMDAwODQxLCAwLjAwMDg0MSwgMC4wMDA4NDEsIDAuMDAwODQxLCAwLjAwMDg0MSwgMC4wMDA4NCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDg2NywgMC4wMDA4NTQsIDAuMDAwODQ4LCAwLjAwMDg0NSwgMC4wMDA4NDQsIDAuMDAwODQ0LCAwLjAwMDg0MyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQiOwotICAgICAgc2RmX2NvbmQgOiAiRCA9PSAxJ2IwIjsKLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjA2NzM2MSwgMC4wNzQzMjMsIDAuMDg0MDYzLCAwLjA5MjEwNCwgMC4wOTg3NTIsIDAuMTA3NDUzLCAwLjExMzcyNyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJlY292ZXJ5X3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUQiOwotICAgICAgc2RmX2NvbmQgOiAiRCA9PSAxJ2IwIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChyZWNvdmVyeV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMCwgLTAuMDExMjUsIC0wLjAxNzUsIC0wLjAzLCAtMC4wMzYyNSwgLTAuMDQsIC0wLjA0ODc1IiwgXAotICAgICAgICAgICIwLjAwNSwgLTAuMDA2MjUsIC0wLjAxMjUsIC0wLjAxODc1LCAtMC4wMzEyNSwgLTAuMDM1LCAtMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4wMTEyNSwgMC4wMDYyNSwgLTAuMDA2MjUsIC0wLjAxMjUsIC0wLjAxODc1LCAtMC4wMjg3NSwgLTAuMDM3NSIsIFwKLSAgICAgICAgICAiMC4wMjM3NSwgMC4wMTI1LCAwLCAtMC4wMDYyNSwgLTAuMDEyNSwgLTAuMDIyNSwgLTAuMDI1IiwgXAotICAgICAgICAgICIwLjAzLCAwLjAxODc1LCAwLjAxMjUsIDAsIC0wLjAwNjI1LCAtMC4wMTYyNSwgLTAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMDQsIDAuMDI4NzUsIDAuMDIyNSwgMC4wMSwgMC4wMDM3NSwgMCwgLTAuMDA4NzUiLCBcCi0gICAgICAgICAgIjAuMDQ4NzUsIDAuMDQzNzUsIDAuMDMxMjUsIDAuMDI1LCAwLjAxMjUsIDAuMDA4NzUsIDAiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiByZW1vdmFsX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUQiOwotICAgICAgc2RmX2NvbmQgOiAiRCA9PSAxJ2IwIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChyZW1vdmFsX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyNSwgMC4wMzYyNSwgMC4wNDI1LCAwLjA1NSwgMC4wNTUsIDAuMDY1LCAwLjA3Mzc1IiwgXAotICAgICAgICAgICIwLjAyLCAwLjAzMTI1LCAwLjAzNzUsIDAuMDQzNzUsIDAuMDUsIDAuMDYsIDAuMDYyNSIsIFwKLSAgICAgICAgICAiMC4wMTM3NSwgMC4wMTg3NSwgMC4wMzEyNSwgMC4wMzc1LCAwLjA0Mzc1LCAwLjA1Mzc1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICIwLjAwNzUsIDAuMDEyNSwgMC4wMjUsIDAuMDMxMjUsIDAuMDM3NSwgMC4wNDc1LCAwLjA1IiwgXAotICAgICAgICAgICIwLjAwMTI1LCAwLjAwNjI1LCAwLjAxODc1LCAwLjAyNSwgMC4wMzEyNSwgMC4wNDEyNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDA4NzUsIDAuMDAyNSwgMC4wMDg3NSwgMC4wMTUsIDAuMDIxMjUsIDAuMDMxMjUsIDAuMDMzNzUiLCBcCi0gICAgICAgICAgIi0wLjAxMTI1LCAtMC4wMDYyNSwgMC4wMDYyNSwgMC4wMTI1LCAwLjAxODc1LCAwLjAyMjUsIDAuMDMxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogREZGU0hRWDggKgotICogLS0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKERGRlNIUVg4KSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDEuODM3NzQ7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgZmYgKE4zNSxRQklOVCkgewotICAgIG5leHRfc3RhdGUgOiAiRCI7Ci0gICAgY2xvY2tlZF9vbiA6ICJDSyI7Ci0gICAgcHJlc2V0IDogIighU04pIjsKLSAgfQotICBwaW4oQ0spICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY2OTc0ODsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2Njk3NDg7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjY5NzI0OwotICAgIGNsb2NrIDogdHJ1ZTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDM4ODYsIDAuMDAzODg1LCAwLjAwMzk1LCAwLjAwNDA0NSwgMC4wMDQxNSwgMC4wMDQzNzksIDAuMDA0NTc3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA5Nzc3LCAwLjAwOTc2NywgMC4wMDk4MzQsIDAuMDA5OTY1LCAwLjAxMDA1OSwgMC4wMTAzMSwgMC4wMTA1NjQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFEJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDkzOTc4LCAwLjEwMjIzLCAwLjExMTQyMSwgMC4xMTkwNCwgMC4xMjUwODUsIDAuMTMzMTg4LCAwLjEzOTEzMiIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDgxNDM3LCAwLjA4OTUzOCwgMC4wOTg3ODUsIDAuMTA1ODIsIDAuMTExNDc5LCAwLjExODc0NSwgMC4xMjQxNDYiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEQpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDgzNjA0NzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA4MzQxMDk7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwODM2MDQ3OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNDE0MywgMC4wMDQwOTYsIDAuMDA0MTIyLCAwLjAwNDE3MiwgMC4wMDQyNTYsIDAuMDA0NDI2LCAwLjAwNDU5NCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNDUzNiwgMC4wMDQ1MDcsIDAuMDA0NTI1LCAwLjAwNDU3NSwgMC4wMDQ2NDcsIDAuMDA0Nzk2LCAwLjAwNDk3OCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJTTiA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMDYyNSwgLTAuMDAxMjUsIC0wLjAwMTI1LCAwLjAwNSwgMC4wMDUsIDAuMDA4NzUsIDAuMDExMjUiLCBcCi0gICAgICAgICAgIi0wLjAxMTI1LCAtMC4wMDYyNSwgLTAuMDA2MjUsIDAsIDAsIDAuMDAzNzUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjAxNzUsIC0wLjAxMjUsIC0wLjAxMjUsIC0wLjAwNjI1LCAtMC4wMDYyNSwgLTAuMDAyNSwgMCIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMTI1LCAtMC4wMDYyNSwgLTAuMDAyNSwgMCIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAxMjUsIC0wLjAwODc1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDMzNzUsIC0wLjAyODc1LCAtMC4wMjI1LCAtMC4wMjI1LCAtMC4wMTYyNSwgLTAuMDEyNSwgLTAuMDEiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTUsIC0wLjAxMjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxODc1LCAwLjAyMzc1LCAwLjAzNjI1LCAwLjA0MjUsIDAuMDQyNSwgMC4wNTI1LCAwLjA1NSIsIFwKLSAgICAgICAgICAiMC4wMTM3NSwgMC4wMTg3NSwgMC4wMzEyNSwgMC4wMzc1LCAwLjAzNzUsIDAuMDQ3NSwgMC4wNSIsIFwKLSAgICAgICAgICAiMC4wMDc1LCAwLjAxODc1LCAwLjAyNSwgMC4wMzEyNSwgMC4wMzc1LCAwLjA0MTI1LCAwLjA1IiwgXAotICAgICAgICAgICIwLjAwNzUsIDAuMDEyNSwgMC4wMjUsIDAuMDMxMjUsIDAuMDM3NSwgMC4wNDEyNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4wMDc1LCAwLjAxMjUsIDAuMDI1LCAwLjAzMTI1LCAwLjAzMTI1LCAwLjA0MTI1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjAwMzc1LCAwLjAxNSwgMC4wMjEyNSwgMC4wMjc1LCAwLjAzMzc1LCAwLjAzNzUsIDAuMDQ2MjUiLCBcCi0gICAgICAgICAgIjAuMDAxMjUsIDAuMDEyNSwgMC4wMTg3NSwgMC4wMjUsIDAuMDMxMjUsIDAuMDM1LCAwLjA0Mzc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJTTiA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzEyNSwgMC4wMiwgMC4wMTM3NSwgMC4wMTM3NSwgMC4wMDc1LCAwLjAwMzc1LCAwLjAwMTI1IiwgXAotICAgICAgICAgICIwLjAzNjI1LCAwLjAzMTI1LCAwLjAxODc1LCAwLjAxODc1LCAwLjAxMjUsIDAuMDA4NzUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMDQyNSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMTg3NSwgMC4wMTUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4wNDg3NSwgMC4wNDM3NSwgMC4wMzEyNSwgMC4wMzEyNSwgMC4wMjUsIDAuMDIxMjUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMDU1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDMxMjUsIDAuMDI3NSwgMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMDU4NzUsIDAuMDUzNzUsIDAuMDQ3NSwgMC4wNDEyNSwgMC4wMzUsIDAuMDMxMjUsIDAuMDI4NzUiLCBcCi0gICAgICAgICAgIjAuMDY3NSwgMC4wNTYyNSwgMC4wNSwgMC4wNDM3NSwgMC4wNDM3NSwgMC4wNCwgMC4wMzEyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzMTI1LCAwLjAyLCAwLjAwNzUsIDAuMDAxMjUsIC0wLjAwNSwgLTAuMDE1LCAtMC4wMTc1IiwgXAotICAgICAgICAgICIwLjAzNjI1LCAwLjAyNSwgMC4wMTg3NSwgMC4wMDYyNSwgMCwgLTAuMDAzNzUsIC0wLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMDQyNSwgMC4wMzEyNSwgMC4wMTg3NSwgMC4wMTI1LCAwLjAwNjI1LCAwLjAwMjUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICIwLjA0MjUsIDAuMDM3NSwgMC4wMjUsIDAuMDE4NzUsIDAuMDEyNSwgMC4wMDI1LCAwIiwgXAotICAgICAgICAgICIwLjA0ODc1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDI1LCAwLjAxODc1LCAwLjAwODc1LCAwIiwgXAotICAgICAgICAgICIwLjA1MjUsIDAuMDQ3NSwgMC4wMzUsIDAuMDI4NzUsIDAuMDIyNSwgMC4wMTI1LCAwLjAxIiwgXAotICAgICAgICAgICIwLjA1NSwgMC4wNSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMTUsIDAuMDEyNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAyLjY4MzQ1OwotICAgIGZ1bmN0aW9uIDogIk4zNSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3NlbnNlIDogbm9uX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiByaXNpbmdfZWRnZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODAwMDcsIDAuMTA4OTA0LCAwLjEzNjI3NCwgMC4xNTU3OTYsIDAuMTg3MDA3LCAwLjIxNDMwOSwgMC4yNTMzMzEiLCBcCi0gICAgICAgICAgIjAuMDg4MTMxLCAwLjExNzAyNywgMC4xNDQzOTcsIDAuMTYzOTE4LCAwLjE5NTEzMiwgMC4yMjI0MzUsIDAuMjYxNDQxIiwgXAotICAgICAgICAgICIwLjA5NzQ2OSwgMC4xMjYzNDYsIDAuMTUzNzE4LCAwLjE3MzIzNywgMC4yMDQ0NDcsIDAuMjMxNzUxLCAwLjI3MDc1OCIsIFwKLSAgICAgICAgICAiMC4xMDUwMTIsIDAuMTMzOTA1LCAwLjE2MTI3LCAwLjE4MDc5NywgMC4yMTIwMDcsIDAuMjM5MzIyLCAwLjI3ODMyOSIsIFwKLSAgICAgICAgICAiMC4xMTEwODQsIDAuMTM5OTgxLCAwLjE2NzM1NCwgMC4xODY4NzMsIDAuMjE4MDkxLCAwLjI0NTQwNiwgMC4yODQ0MTQiLCBcCi0gICAgICAgICAgIjAuMTE5MTUxLCAwLjE0ODA1NiwgMC4xNzU0MjIsIDAuMTk0OTQ0LCAwLjIyNjE0NiwgMC4yNTM0NDYsIDAuMjkyNDYzIiwgXAotICAgICAgICAgICIwLjEyNTExOSwgMC4xNTQxMDgsIDAuMTgxNDg3LCAwLjIwMDk5LCAwLjIzMjExNCwgMC4yNTk1MzgsIDAuMjk4NDM0Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE3MTcxLCAwLjA3MTcyNiwgMC4xMjg1NSwgMC4xNjkzNzcsIDAuMjM0OTMsIDAuMjkyNzkzLCAwLjM3NDkzOCIsIFwKLSAgICAgICAgICAiMC4wMTcxNywgMC4wNzE3MjYsIDAuMTI4NTUsIDAuMTY5NDM4LCAwLjIzNTA3MywgMC4yOTI2MTIsIDAuMzc1MTI3IiwgXAotICAgICAgICAgICIwLjAxNzE4NCwgMC4wNzE3MjcsIDAuMTI4NTUyLCAwLjE2OTQzOSwgMC4yMzUwODQsIDAuMjkyODM5LCAwLjM3NTI4NCIsIFwKLSAgICAgICAgICAiMC4wMTcxOTEsIDAuMDcxNzM0LCAwLjEyODU1NiwgMC4xNjk0OTgsIDAuMjM1MTAyLCAwLjI5Mjk4NywgMC4zNzU0MTciLCBcCi0gICAgICAgICAgIjAuMDE3MjA2LCAwLjA3MTc0LCAwLjEyODU1NywgMC4xNjk0OSwgMC4yMzQ5MjEsIDAuMjkyOTgyLCAwLjM3NTQyMiIsIFwKLSAgICAgICAgICAiMC4wMTcxOTMsIDAuMDcxNjk4LCAwLjEyODU2OCwgMC4xNjk0OTYsIDAuMjM1MDQ0LCAwLjI5MjcxOSwgMC4zNzQ4MTUiLCBcCi0gICAgICAgICAgIjAuMDE3MjAzLCAwLjA3MTgzOSwgMC4xMjg1MzQsIDAuMTY5NTI2LCAwLjIzNTE2LCAwLjI5Mjk0LCAwLjM3NTEyOCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5Mzk3OCwgMC4xMjM4MjYsIDAuMTUyMDk3LCAwLjE3MjI1LCAwLjIwNDQ2NiwgMC4yMzI2NDMsIDAuMjcyODk0IiwgXAotICAgICAgICAgICIwLjEwMjIzLCAwLjEzMjA3MywgMC4xNjAzNDIsIDAuMTgwNDk0LCAwLjIxMjcxLCAwLjI0MDg4OCwgMC4yODExMjQiLCBcCi0gICAgICAgICAgIjAuMTExNDIxLCAwLjE0MTI3NCwgMC4xNjk1NDcsIDAuMTg5Njk5LCAwLjIyMTkxNiwgMC4yNTAwOTQsIDAuMjkwMzM1IiwgXAotICAgICAgICAgICIwLjExOTA0LCAwLjE0ODg5NSwgMC4xNzcxNjQsIDAuMTk3MzE2LCAwLjIyOTUzMiwgMC4yNTc3MDksIDAuMjk3OTYiLCBcCi0gICAgICAgICAgIjAuMTI1MDg1LCAwLjE1NDkzOCwgMC4xODMyMTEsIDAuMjAzMzYzLCAwLjIzNTU3NSwgMC4yNjM3NTcsIDAuMzAzOTk1IiwgXAotICAgICAgICAgICIwLjEzMzE4OCwgMC4xNjMwNTgsIDAuMTkxMzMyLCAwLjIxMTQ1NSwgMC4yNDM2NjgsIDAuMjcxODQ2LCAwLjMxMjA5NyIsIFwKLSAgICAgICAgICAiMC4xMzkxMzIsIDAuMTY4OTI2LCAwLjE5NzI0NCwgMC4yMTc0LCAwLjI0OTYxNywgMC4yNzc3NDIsIDAuMzE4MDQ5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE3NDcsIDAuMDcyOTMxLCAwLjEzMDY0NCwgMC4xNzIyNTMsIDAuMjM5MDQsIDAuMjk3NTY5LCAwLjM4MTE4NiIsIFwKLSAgICAgICAgICAiMC4wMTc0NTYsIDAuMDcyOTMxLCAwLjEzMDY0MywgMC4xNzIyNTQsIDAuMjM5MDQsIDAuMjk3NTc3LCAwLjM4MTY3OSIsIFwKLSAgICAgICAgICAiMC4wMTc0NjIsIDAuMDcyOTMxLCAwLjEzMDY0MiwgMC4xNzIyNTQsIDAuMjM5MDQsIDAuMjk3NTc1LCAwLjM4MTMwOSIsIFwKLSAgICAgICAgICAiMC4wMTc0NTgsIDAuMDcyOTEsIDAuMTMwNjQyLCAwLjE3MjI1MywgMC4yMzkwNDEsIDAuMjk3NTY4LCAwLjM4MTU2MSIsIFwKLSAgICAgICAgICAiMC4wMTc0NjMsIDAuMDcyOTI5LCAwLjEzMDY0MSwgMC4xNzIyNTIsIDAuMjM5MDQsIDAuMjk3NTczLCAwLjM4MTY2OCIsIFwKLSAgICAgICAgICAiMC4wMTc0ODYsIDAuMDcyOSwgMC4xMzA2NDcsIDAuMTcyMTY1LCAwLjIzOTA0OCwgMC4yOTc1NTEsIDAuMzgxNTI2IiwgXAotICAgICAgICAgICIwLjAxNzQzNCwgMC4wNzI4NDgsIDAuMTMwNjcxLCAwLjE3MjI2NCwgMC4yMzkwNTUsIDAuMjk3NTUxLCAwLjM4MTUxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiBwcmVzZXQ7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDcxMTE0LCAwLjEwMDAxNCwgMC4xMjczNzksIDAuMTQ2ODk2LCAwLjE3ODEsIDAuMjA1Mzk5LCAwLjI0NDQzNyIsIFwKLSAgICAgICAgICAiMC4wNzgzNDQsIDAuMTA3MiwgMC4xMzQ1NjksIDAuMTU0MDg2LCAwLjE4NTMxNCwgMC4yMTI1ODgsIDAuMjUxNjIzIiwgXAotICAgICAgICAgICIwLjA4ODI1MywgMC4xMTcxMTIsIDAuMTQ0NDgxLCAwLjE2Mzk5NCwgMC4xOTUyMjUsIDAuMjIyNTI3LCAwLjI2MTUzOCIsIFwKLSAgICAgICAgICAiMC4wOTY5NDQsIDAuMTI1NzczLCAwLjE1MzE0NywgMC4xNzI2NjMsIDAuMjAzODk2LCAwLjIzMTE5OSwgMC4yNzAyMDgiLCBcCi0gICAgICAgICAgIjAuMTA0MzIyLCAwLjEzMzE2OCwgMC4xNjA1MzksIDAuMTgwMDQ5LCAwLjIxMTI3MiwgMC4yMzg1ODksIDAuMjc3NTk2IiwgXAotICAgICAgICAgICIwLjExMzkzNywgMC4xNDI4MzQsIDAuMTcwMjA4LCAwLjE4OTczMywgMC4yMjA5MzgsIDAuMjQ4MjQ5LCAwLjI4NzI4NCIsIFwKLSAgICAgICAgICAiMC4xMjEwMjYsIDAuMTQ5OTAzLCAwLjE3NzI3MSwgMC4xOTY3OTIsIDAuMjI4MDEsIDAuMjU1MzI1LCAwLjI5NDM4NyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxNzEzNCwgMC4wNzE2NzEsIDAuMTI4NTE4LCAwLjE2OTQzNCwgMC4yMzUzNTEsIDAuMjkzMDYxLCAwLjM3NTQxMiIsIFwKLSAgICAgICAgICAiMC4wMTcxMjgsIDAuMDcxNjIsIDAuMTI4NDg5LCAwLjE2OTI1OSwgMC4yMzUzMDIsIDAuMjkzMDg3LCAwLjM3NTMwMSIsIFwKLSAgICAgICAgICAiMC4wMTcxMSwgMC4wNzE2NjQsIDAuMTI4NTE0LCAwLjE2OTQzNSwgMC4yMzUzNCwgMC4yOTMwMzIsIDAuMzc1NDI1IiwgXAotICAgICAgICAgICIwLjAxNzEyOSwgMC4wNzE2NywgMC4xMjg1MjIsIDAuMTY5NDQ4LCAwLjIzNTM5MywgMC4yOTMwNjYsIDAuMzc1NDE0IiwgXAotICAgICAgICAgICIwLjAxNzI4OCwgMC4wNzE3MDcsIDAuMTI4NTQxLCAwLjE2OTUwOSwgMC4yMzUxMzYsIDAuMjkzMTE4LCAwLjM3NTQ2MiIsIFwKLSAgICAgICAgICAiMC4wMTc0OTEsIDAuMDcxNzMsIDAuMTI4NTU0LCAwLjE2OTQ2NSwgMC4yMzUzNTIsIDAuMjkzMDYzLCAwLjM3NTQ4IiwgXAotICAgICAgICAgICIwLjAxNzY5NSwgMC4wNzE5NTMsIDAuMTI4NDgzLCAwLjE2OTQ2OSwgMC4yMzUzNDMsIDAuMjkzMDg4LCAwLjM3NTQ2NiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyMDQyOCwgMC4wMjA3NzEsIDAuMDIwODY1LCAwLjAyMDg5NywgMC4wMjA5MjYsIDAuMDIwOTQxLCAwLjAyMDk1NSIsIFwKLSAgICAgICAgICAiMC4wMjA0MTMsIDAuMDIwNzU2LCAwLjAyMDg0OSwgMC4wMjA4ODEsIDAuMDIwOTEsIDAuMDIwOTI1LCAwLjAyMDkzOSIsIFwKLSAgICAgICAgICAiMC4wMjA0ODgsIDAuMDIwODI5LCAwLjAyMDkyMiwgMC4wMjA5NTQsIDAuMDIwOTgzLCAwLjAyMDk5OCwgMC4wMjEwMDUiLCBcCi0gICAgICAgICAgIjAuMDIwNTc4LCAwLjAyMDkxNywgMC4wMjEwMDksIDAuMDIxMDQxLCAwLjAyMTA3LCAwLjAyMTA4NSwgMC4wMjEwOTkiLCBcCi0gICAgICAgICAgIjAuMDIwNzE0LCAwLjAyMTA1NywgMC4wMjExNDgsIDAuMDIxMTgsIDAuMDIxMjA5LCAwLjAyMTIyMSwgMC4wMjEyNDEiLCBcCi0gICAgICAgICAgIjAuMDIwOTIsIDAuMDIxMjYsIDAuMDIxMzQxLCAwLjAyMTM3MiwgMC4wMjE0MTIsIDAuMDIxNDE0LCAwLjAyMTQzMiIsIFwKLSAgICAgICAgICAiMC4wMjExNDksIDAuMDIxNDMyLCAwLjAyMTU0MSwgMC4wMjE1NTYsIDAuMDIxNjM2LCAwLjAyMTYwOCwgMC4wMjE2NjQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxOTY4MywgMC4wMjAxMDIsIDAuMDIwMjM5LCAwLjAyMDI4NywgMC4wMjAzMzIsIDAuMDIwMzU3LCAwLjAyMDM3OSIsIFwKLSAgICAgICAgICAiMC4wMTk3MDIsIDAuMDIwMTAxLCAwLjAyMDIzMywgMC4wMjAyOCwgMC4wMjAzMjQsIDAuMDIwMzQ4LCAwLjAyMDM3IiwgXAotICAgICAgICAgICIwLjAxOTc4MSwgMC4wMjAyMDIsIDAuMDIwMzQsIDAuMDIwMzg5LCAwLjAyMDQzNSwgMC4wMjA0NTksIDAuMDIwNDgyIiwgXAotICAgICAgICAgICIwLjAxOTg3NCwgMC4wMjAyOTYsIDAuMDIwNDM0LCAwLjAyMDQ4MywgMC4wMjA1MjgsIDAuMDIwNTUxLCAwLjAyMDU3NCIsIFwKLSAgICAgICAgICAiMC4wMjAwMjEsIDAuMDIwNDQyLCAwLjAyMDU3OSwgMC4wMjA2MjYsIDAuMDIwNjczLCAwLjAyMDY5NiwgMC4wMjA3MTkiLCBcCi0gICAgICAgICAgIjAuMDIwMjksIDAuMDIwNjgxLCAwLjAyMDgxOSwgMC4wMjA4OTgsIDAuMDIwOTQ4LCAwLjAyMDk3MiwgMC4wMjA5OTQiLCBcCi0gICAgICAgICAgIjAuMDIwNDY5LCAwLjAyMDg2NywgMC4wMjEwNDcsIDAuMDIxMDk2LCAwLjAyMTEzNywgMC4wMjExMiwgMC4wMjExODUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjE5OTgsIDAuMDIyMzM2LCAwLjAyMjQzLCAwLjAyMjQ2MywgMC4wMjI0OTMsIDAuMDIyNTEsIDAuMDIyNTI0IiwgXAotICAgICAgICAgICIwLjAyMTk2NywgMC4wMjIzMDQsIDAuMDIyNCwgMC4wMjI0MzMsIDAuMDIyNDYzLCAwLjAyMjQ4NSwgMC4wMjI0OTQiLCBcCi0gICAgICAgICAgIjAuMDIxOTkzLCAwLjAyMjMzLCAwLjAyMjQyNCwgMC4wMjI0NjIsIDAuMDIyNDksIDAuMDIyNTA2LCAwLjAyMjUyMyIsIFwKLSAgICAgICAgICAiMC4wMjIwNjgsIDAuMDIyNDA4LCAwLjAyMjUxMiwgMC4wMjI1NDksIDAuMDIyNTgsIDAuMDIyNTk4LCAwLjAyMjYxNyIsIFwKLSAgICAgICAgICAiMC4wMjIyNDQsIDAuMDIyNTc3LCAwLjAyMjY4MSwgMC4wMjI3MjUsIDAuMDIyNzYxLCAwLjAyMjc3MiwgMC4wMjI3ODgiLCBcCi0gICAgICAgICAgIjAuMDIyNTY3LCAwLjAyMjg1OSwgMC4wMjI5NjYsIDAuMDIzMDAyLCAwLjAyMzAzOSwgMC4wMjMwNTgsIDAuMDIzMDgzIiwgXAotICAgICAgICAgICIwLjAyMjc5OCwgMC4wMjMwOTQsIDAuMDIzMTg4LCAwLjAyMzIzMiwgMC4wMjMyNjgsIDAuMDIzMjg4LCAwLjAyMzMwNSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihzY2FsYXIpIHsKLSAgICAgICAgdmFsdWVzKCIwIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTTikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxODY0ODY7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNzI0NDg7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxODY0ODY7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwODQyLCAwLjAwMDg0MSwgMC4wMDA4NDEsIDAuMDAwODQsIDAuMDAwODQxLCAwLjAwMDg0LCAwLjAwMDg0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwODY2LCAwLjAwMDg1LCAwLjAwMDg0NywgMC4wMDA4NDUsIDAuMDAwODQ0LCAwLjAwMDg0NCwgMC4wMDA4NDMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiU04iOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFEIjsKLSAgICAgIHNkZl9jb25kIDogIkQgPT0gMSdiMCI7Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wNzExMTQsIDAuMDc4MzQ0LCAwLjA4ODI1MywgMC4wOTY5NDQsIDAuMTA0MzIyLCAwLjExMzkzNywgMC4xMjEwMjYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiByZWNvdmVyeV9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEIjsKLSAgICAgIHNkZl9jb25kIDogIkQgPT0gMSdiMCI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQocmVjb3ZlcnlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2MjUsIC0wLjAwNSwgLTAuMDExMjUsIC0wLjAyMzc1LCAtMC4wMywgLTAuMDMzNzUsIC0wLjA0MjUiLCBcCi0gICAgICAgICAgIjAuMDExMjUsIDAsIC0wLjAwNjI1LCAtMC4wMTg3NSwgLTAuMDI1LCAtMC4wMjg3NSwgLTAuMDM3NSIsIFwKLSAgICAgICAgICAiMC4wMTc1LCAwLjAwNjI1LCAwLCAtMC4wMDYyNSwgLTAuMDEyNSwgLTAuMDIyNSwgLTAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMDIzNzUsIDAuMDE4NzUsIDAuMDA2MjUsIDAsIC0wLjAwNjI1LCAtMC4wMTYyNSwgLTAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMDM2MjUsIDAuMDI1LCAwLjAxMjUsIDAuMDA2MjUsIDAsIC0wLjAxLCAtMC4wMTI1IiwgXAotICAgICAgICAgICIwLjA0NjI1LCAwLjAzNSwgMC4wMjg3NSwgMC4wMTYyNSwgMC4wMSwgMC4wMDYyNSwgLTAuMDAyNSIsIFwKLSAgICAgICAgICAiMC4wNjEyNSwgMC4wNSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMTUsIDAuMDA2MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiByZW1vdmFsX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUQiOwotICAgICAgc2RmX2NvbmQgOiAiRCA9PSAxJ2IwIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChyZW1vdmFsX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxODc1LCAwLjAzLCAwLjAzNjI1LCAwLjA0ODc1LCAwLjA1NSwgMC4wNTg3NSwgMC4wNjc1IiwgXAotICAgICAgICAgICIwLjAxMzc1LCAwLjAyNSwgMC4wMzEyNSwgMC4wMzc1LCAwLjA0Mzc1LCAwLjA1Mzc1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICIwLjAwNzUsIDAuMDEyNSwgMC4wMjUsIDAuMDMxMjUsIDAuMDM3NSwgMC4wNDc1LCAwLjA1IiwgXAotICAgICAgICAgICIwLjAwMTI1LCAwLjAwNjI1LCAwLjAxODc1LCAwLjAyNSwgMC4wMzEyNSwgMC4wMzUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIi0wLjAwNSwgMCwgMC4wMTI1LCAwLjAxODc1LCAwLjAyNSwgMC4wMjg3NSwgMC4wMzc1IiwgXAotICAgICAgICAgICItMC4wMTUsIC0wLjAwMzc1LCAwLjAwMjUsIDAuMDA4NzUsIDAuMDE1LCAwLjAyNSwgMC4wMjc1IiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAsIDAuMDA2MjUsIDAuMDE2MjUsIDAuMDE4NzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IERGRlNSSFFYMSAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKERGRlNSSFFYMSkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAxLjEyNzM4OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIGZmIChOMzUsUUJJTlQpIHsKLSAgICBuZXh0X3N0YXRlIDogIkQiOwotICAgIGNsb2NrZWRfb24gOiAiQ0siOwotICAgIGNsZWFyIDogIighUk4pIjsKLSAgICBwcmVzZXQgOiAiKCFTTikiOwotICAgIGNsZWFyX3ByZXNldF92YXIxIDogSDsKLSAgfQotICBwaW4oQ0spICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYzMDE5MzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MzAxOTM7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjMwMTEzOwotICAgIGNsb2NrIDogdHJ1ZTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDQ3MTMsIDAuMDA0NywgMC4wMDQ3NzYsIDAuMDA0ODc2LCAwLjAwNDk5NSwgMC4wMDUyMTgsIDAuMDA1NDA1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDEwMjg3LCAwLjAxMDI3NiwgMC4wMTAzMzcsIDAuMDEwNDM4LCAwLjAxMDU3OSwgMC4wMTA2OTIsIDAuMDEwODY0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRCZSTiZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fUk5fRVFfMV9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMTEyOTY1LCAwLjEyMTE1LCAwLjEzMDU4NCwgMC4xMzgzNSwgMC4xNDQ1MzEsIDAuMTUyNjExLCAwLjE1ODc5MiIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDg3MTM3LCAwLjA5NTI3MiwgMC4xMDQ1MTQsIDAuMTExNzE4LCAwLjExNzQ5MywgMC4xMjUxOTMsIDAuMTMwNzM2Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihEKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA4MTQ3OTc7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwODEyMjMzOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDgxNDc5NzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDQyOTgsIDAuMDA0MjUzLCAwLjAwNDI3NCwgMC4wMDQzMjgsIDAuMDA0NDA2LCAwLjAwNDU2OSwgMC4wMDQ3MzIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDQ4MTMsIDAuMDA0NzgyLCAwLjAwNDc5NywgMC4wMDQ4NDUsIDAuMDA0OTE2LCAwLjAwNTA1MywgMC4wMDUyMTkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiUk4mU04iOwotICAgICAgc2RmX2NvbmQgOiAiUk5fRVFfMV9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAxMjUsIC0wLjAwNzUsIC0wLjAwMTI1LCAwLjAwNSwgMC4wMDUsIDAuMDA4NzUsIDAuMDExMjUiLCBcCi0gICAgICAgICAgIi0wLjAxNzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAtMC4wMDYyNSwgMCwgMC4wMDM3NSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgLTAuMDA2MjUsIC0wLjAwMjUsIDAiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMTI1LCAtMC4wMDg3NSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA4NzUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wNCwgLTAuMDI4NzUsIC0wLjAyODc1LCAtMC4wMjI1LCAtMC4wMjI1LCAtMC4wMTg3NSwgLTAuMDE2MjUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAyNSwgLTAuMDIxMjUsIC0wLjAxODc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTg3NSwgMC4wMjM3NSwgMC4wMzYyNSwgMC4wNDI1LCAwLjA0ODc1LCAwLjA1MjUsIDAuMDU1IiwgXAotICAgICAgICAgICIwLjAxMzc1LCAwLjAxODc1LCAwLjAzMTI1LCAwLjAzNzUsIDAuMDM3NSwgMC4wNDc1LCAwLjA1IiwgXAotICAgICAgICAgICIwLjAwNzUsIDAuMDEyNSwgMC4wMjUsIDAuMDMxMjUsIDAuMDM3NSwgMC4wNDEyNSwgMC4wNSIsIFwKLSAgICAgICAgICAiMC4wMDc1LCAwLjAxMjUsIDAuMDI1LCAwLjAzMTI1LCAwLjAzMTI1LCAwLjA0MTI1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjAwMTI1LCAwLjAxMjUsIDAuMDE4NzUsIDAuMDI1LCAwLjAzMTI1LCAwLjA0MTI1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjAwMzc1LCAwLjAwODc1LCAwLjAxNSwgMC4wMjEyNSwgMC4wMjc1LCAwLjAzNzUsIDAuMDQiLCBcCi0gICAgICAgICAgIjAuMDAxMjUsIDAuMDA2MjUsIDAuMDE4NzUsIDAuMDI1LCAwLjAzMTI1LCAwLjAzNSwgMC4wNDM3NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiUk4mU04iOwotICAgICAgc2RmX2NvbmQgOiAiUk5fRVFfMV9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1LCAwLjAzODc1LCAwLjAzMjUsIDAuMDI2MjUsIDAuMDIsIDAuMDE2MjUsIDAuMDA3NSIsIFwKLSAgICAgICAgICAiMC4wNTUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMjUsIDAuMDIxMjUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMDYxMjUsIDAuMDU2MjUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMjc1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiMC4wNjc1LCAwLjA1NjI1LCAwLjA1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDMzNzUsIDAuMDI1IiwgXAotICAgICAgICAgICIwLjA3Mzc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDUsIDAuMDQzNzUsIDAuMDMzNzUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMDc3NSwgMC4wNzI1LCAwLjA2LCAwLjA1Mzc1LCAwLjA0NzUsIDAuMDQzNzUsIDAuMDQxMjUiLCBcCi0gICAgICAgICAgIjAuMDg2MjUsIDAuMDc1LCAwLjA2ODc1LCAwLjA1NjI1LCAwLjA1NjI1LCAwLjA0NjI1LCAwLjA0Mzc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDI1LCAwLjAyLCAwLjAwNzUsIDAuMDAxMjUsIC0wLjAwNSwgLTAuMDE1LCAtMC4wMjM3NSIsIFwKLSAgICAgICAgICAiMC4wMywgMC4wMjUsIDAuMDEyNSwgMC4wMDYyNSwgMCwgLTAuMDEsIC0wLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMDM2MjUsIDAuMDMxMjUsIDAuMDE4NzUsIDAuMDEyNSwgMC4wMDYyNSwgLTAuMDAzNzUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICIwLjA0MjUsIDAuMDM3NSwgMC4wMjUsIDAuMDE4NzUsIDAuMDEyNSwgMC4wMDI1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiMC4wNDg3NSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAxODc1LCAwLjAxMjUsIDAuMDA4NzUsIDAiLCBcCi0gICAgICAgICAgIjAuMDUyNSwgMC4wNDEyNSwgMC4wMzUsIDAuMDI4NzUsIDAuMDIyNSwgMC4wMTI1LCAwLjAwMzc1IiwgXAotICAgICAgICAgICIwLjA1NSwgMC4wNSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMTUsIDAuMDA2MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFEpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4zNDE3NDg7Ci0gICAgZnVuY3Rpb24gOiAiTjM1IjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBub25fdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJpc2luZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDExNDMsIDAuMTE5Nzg0LCAwLjIyNTIzMiwgMC4zMTgyMzQsIDAuNDQyMzM2LCAwLjY5MDUxMSwgMC44NDU1MzUiLCBcCi0gICAgICAgICAgIjAuMTA5MzI5LCAwLjEyNzk2NywgMC4yMzM0MTcsIDAuMzI2NDYzLCAwLjQ1MDUzOSwgMC42OTg3MDcsIDAuODUzNzIiLCBcCi0gICAgICAgICAgIjAuMTE4NzE3LCAwLjEzNzM1OSwgMC4yNDI3ODQsIDAuMzM1ODQ4LCAwLjQ1OTkyLCAwLjcwODE0OCwgMC44NjMyNyIsIFwKLSAgICAgICAgICAiMC4xMjYzNzYsIDAuMTQ1MDA4LCAwLjI1MDQ2MSwgMC4zNDM1MDUsIDAuNDY3NjAxLCAwLjcxNTc0MiwgMC44NzA3NTUiLCBcCi0gICAgICAgICAgIjAuMTMyNDc0LCAwLjE1MTExMSwgMC4yNTY1NzcsIDAuMzQ5NjAzLCAwLjQ3MzY4NSwgMC43MjE4MzQsIDAuODc2OTA3IiwgXAotICAgICAgICAgICIwLjE0MDc4MSwgMC4xNTk0MjgsIDAuMjY0ODg1LCAwLjM1NzkwOSwgMC40ODE5NjYsIDAuNzMwMTY5LCAwLjg4NTE4MiIsIFwKLSAgICAgICAgICAiMC4xNDY3MTgsIDAuMTY1MzIxLCAwLjI3MDc3MywgMC4zNjM4NDYsIDAuNDg3OTE2LCAwLjczNjA3NywgMC44OTEwNzciKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDcxMzE0LCAwLjEwOTg2NSwgMC4zMzEwMDYsIDAuNTI2Mzk3LCAwLjc4ODIxOCwgMS4zMTE3MiwgMS42MzY5MSIsIFwKLSAgICAgICAgICAiMC4wNzEzMywgMC4xMDk3MjksIDAuMzMxMjkyLCAwLjUyNzQ2LCAwLjc4Nzk5NiwgMS4zMTE3NCwgMS42Mzg1NSIsIFwKLSAgICAgICAgICAiMC4wNzEzMTcsIDAuMTA5ODc2LCAwLjMzMTA1MiwgMC41Mjc0MDEsIDAuNzg4MjUyLCAxLjMxMTc4LCAxLjYzODYxIiwgXAotICAgICAgICAgICIwLjA3MTI5MSwgMC4xMDk4NjIsIDAuMzMxMjk0LCAwLjUyNzQxOSwgMC43ODc3MDEsIDEuMzExNzEsIDEuNjM4NTMiLCBcCi0gICAgICAgICAgIjAuMDcxMzIyLCAwLjEwOTg3NiwgMC4zMzEwOTcsIDAuNTI3Mzg4LCAwLjc4ODA2NSwgMS4zMTE3LCAxLjYzODUyIiwgXAotICAgICAgICAgICIwLjA3MTMxMSwgMC4xMDk4NjIsIDAuMzMxMDc4LCAwLjUyNzMwOSwgMC43ODg3NTEsIDEuMzExNTcsIDEuNjM4NCIsIFwKLSAgICAgICAgICAiMC4wNzEzODEsIDAuMTA5NzYyLCAwLjMzMTEwOCwgMC41MjcyNTgsIDAuNzg4MTU4LCAxLjMxMTU2LCAxLjYzODM5Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExMjk2NSwgMC4xMzExMDUsIDAuMjMzNjU0LCAwLjMyNDExNywgMC40NDQ3NDEsIDAuNjg1OTYyLCAwLjgzNjcwNSIsIFwKLSAgICAgICAgICAiMC4xMjExNSwgMC4xMzkyOTQsIDAuMjQxODM2LCAwLjMzMjMwNiwgMC40NTI5NjgsIDAuNjk0MTQ0LCAwLjg0NDg5NiIsIFwKLSAgICAgICAgICAiMC4xMzA1ODQsIDAuMTQ4NzI1LCAwLjI1MTI3MywgMC4zNDE3NCwgMC40NjIzNTksIDAuNzAzNTg0LCAwLjg1NDQwNSIsIFwKLSAgICAgICAgICAiMC4xMzgzNSwgMC4xNTY0OTEsIDAuMjU5MDM5LCAwLjM0OTUwNiwgMC40NzAxMjIsIDAuNzExMzQ0LCAwLjg2MjEzMSIsIFwKLSAgICAgICAgICAiMC4xNDQ1MzEsIDAuMTYyNjcxLCAwLjI2NTIxOCwgMC4zNTU2ODYsIDAuNDc2MzQ3LCAwLjcxNzUyMiwgMC44NjgyNjgiLCBcCi0gICAgICAgICAgIjAuMTUyNjExLCAwLjE3MDc0NSwgMC4yNzMyOTEsIDAuMzYzNzQ5LCAwLjQ4NDQwMywgMC43MjU1NzYsIDAuODc2MzQiLCBcCi0gICAgICAgICAgIjAuMTU4NzkyLCAwLjE3Njg4NSwgMC4yNzk0ODIsIDAuMzY5OTc3LCAwLjQ5MDU1MiwgMC43MzE4MSwgMC44ODI0NzEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY3ODQ5LCAwLjEwNDQ2MSwgMC4zMTUxOCwgMC41MDA5ODIsIDAuNzQ5MzczLCAxLjI0NzY0LCAxLjU1ODM4IiwgXAotICAgICAgICAgICIwLjA2Nzg1MSwgMC4xMDQ0NTgsIDAuMzE0NzY3LCAwLjUwMTY0NiwgMC43NTAzNTIsIDEuMjQ3NjQsIDEuNTU4MjgiLCBcCi0gICAgICAgICAgIjAuMDY3ODIsIDAuMTA0NDY1LCAwLjMxNTE3LCAwLjUwMTAxNSwgMC43NDkzMiwgMS4yNDYwNiwgMS41NTYxMSIsIFwKLSAgICAgICAgICAiMC4wNjc4MzYsIDAuMTA0NDYxLCAwLjMxNTE3MywgMC41MDEwMTUsIDAuNzQ5MjEzLCAxLjI0NTgzLCAxLjU1NjQ2IiwgXAotICAgICAgICAgICIwLjA2NzgyNCwgMC4xMDQ0NTQsIDAuMzE1MTU5LCAwLjUwMDQ4OCwgMC43NTAzNTcsIDEuMjQ3NDIsIDEuNTU4MzciLCBcCi0gICAgICAgICAgIjAuMDY3ODI3LCAwLjEwNDQxNCwgMC4zMTUxNDQsIDAuNTAxNjE4LCAwLjc1MDM0MiwgMS4yNDc1NiwgMS41NTc2OCIsIFwKLSAgICAgICAgICAiMC4wNjc4MjgsIDAuMTA0NDMsIDAuMzE0NzY2LCAwLjUwMDcxMiwgMC43NTAzNiwgMS4yNDc3MywgMS41NTgzMyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogY2xlYXI7Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEzMDMxMywgMC4xNDg0NzYsIDAuMjUxMDI0LCAwLjM0MTQ4NiwgMC40NjIxNCwgMC43MDMzMjksIDAuODU0MDk0IiwgXAotICAgICAgICAgICIwLjEzODI3MSwgMC4xNTY0MjMsIDAuMjU4OTcyLCAwLjM0OTQzNiwgMC40NzAwODgsIDAuNzExMjgsIDAuODYyMDQxIiwgXAotICAgICAgICAgICIwLjE0Njk1NywgMC4xNjUwOSwgMC4yNjc2NDksIDAuMzU4MTE2LCAwLjQ3ODc3MywgMC43MTk5NDcsIDAuODcwNzIiLCBcCi0gICAgICAgICAgIjAuMTUzNjE3LCAwLjE3MTc2LCAwLjI3NDMwOCwgMC4zNjQ3NzcsIDAuNDg1NDEsIDAuNzI2NjQsIDAuODc3NTExIiwgXAotICAgICAgICAgICIwLjE1ODk1OSwgMC4xNzcwNTUsIDAuMjc5NjA0LCAwLjM3MDA2NSwgMC40OTA3MjMsIDAuNzMxOTYsIDAuODgyNjc0IiwgXAotICAgICAgICAgICIwLjE2NTg1LCAwLjE4NDAwNCwgMC4yODY1NDUsIDAuMzc3MDA4LCAwLjQ5NzY2NCwgMC43Mzg4NDcsIDAuODg5NjE2IiwgXAotICAgICAgICAgICIwLjE3MTAzNCwgMC4xODkxNzUsIDAuMjkxNzEyLCAwLjM4MjIwOCwgMC41MDI4MzgsIDAuNzQ0MDU3LCAwLjg5NDgyMiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjc4NjYsIDAuMTA0NDUzLCAwLjMxNTI3MywgMC41MDE2MjQsIDAuNzUwNDI4LCAxLjI0NDY3LCAxLjU1NjQxIiwgXAotICAgICAgICAgICIwLjA2Nzg2OSwgMC4xMDQ0NTMsIDAuMzE1MjYsIDAuNTAxNzM4LCAwLjc1MDQzNCwgMS4yNDczNiwgMS41NTYzNCIsIFwKLSAgICAgICAgICAiMC4wNjc4ODcsIDAuMTA0NDM0LCAwLjMxNTI4OCwgMC41MDA5OTMsIDAuNzUwNDg1LCAxLjI0Nzg3LCAxLjU1ODgiLCBcCi0gICAgICAgICAgIjAuMDY3ODc5LCAwLjEwNDQ1MywgMC4zMTUyNDQsIDAuNTAxNjM1LCAwLjc1MDQ1MSwgMS4yNDgwMiwgMS41NTg3MiIsIFwKLSAgICAgICAgICAiMC4wNjc4NjYsIDAuMTA0NDUsIDAuMzE1MjcsIDAuNTAxNjY3LCAwLjc1MDQ0NCwgMS4yNDc3NiwgMS41NTY0NSIsIFwKLSAgICAgICAgICAiMC4wNjc4NjMsIDAuMTA0NDQ2LCAwLjMxNTI2NiwgMC41MDA5OSwgMC43NTA1NjIsIDEuMjQ3OTcsIDEuNTU2NTQiLCBcCi0gICAgICAgICAgIjAuMDY3ODUxLCAwLjEwNDQxOCwgMC4zMTUyNSwgMC41MDE4MDEsIDAuNzUwNDcxLCAxLjI0ODA1LCAxLjU1NzIyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiBwcmVzZXQ7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5MjY4OSwgMC4xMTEzNDUsIDAuMjE2ODA0LCAwLjMwOTkyMywgMC40MzM5MjcsIDAuNjgyMDQ4LCAwLjgzNzA5NiIsIFwKLSAgICAgICAgICAiMC4wOTk0MTIsIDAuMTE4MDM3LCAwLjIyMzQ4MywgMC4zMTY0ODUsIDAuNDQwNjI5LCAwLjY4ODY5OCwgMC44NDM3ODciLCBcCi0gICAgICAgICAgIjAuMTA5NDA3LCAwLjEyODAzNiwgMC4yMzM1MDUsIDAuMzI2NTc4LCAwLjQ1MDU4NCwgMC42OTg2NjEsIDAuODUzODg1IiwgXAotICAgICAgICAgICIwLjExODA0MywgMC4xMzY2NjYsIDAuMjQyMTI1LCAwLjMzNTIzOCwgMC40NTkyNjcsIDAuNzA3MzE4LCAwLjg2MjQxMiIsIFwKLSAgICAgICAgICAiMC4xMjUyMjksIDAuMTQzODU2LCAwLjI0OTMwOCwgMC4zNDIzNjgsIDAuNDY2NDIyLCAwLjcxNDU3OCwgMC44Njk2MjkiLCBcCi0gICAgICAgICAgIjAuMTM0NDc4LCAwLjE1MzEwNSwgMC4yNTg1NTQsIDAuMzUxNjE1LCAwLjQ3NTc1OCwgMC43MjM3NzIsIDAuODc4ODM1IiwgXAotICAgICAgICAgICIwLjE0MTM5NCwgMC4xNjAwMzUsIDAuMjY1NDg0LCAwLjM1ODUyNywgMC40ODI2MiwgMC43MzA2ODcsIDAuODg1NzQ1Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3MTAzMywgMC4xMDk2ODIsIDAuMzMxNDA5LCAwLjUyNzUwOCwgMC43ODg4OSwgMS4zMTE4MiwgMS42Mzg1IiwgXAotICAgICAgICAgICIwLjA3MTA4NCwgMC4xMDk2MzcsIDAuMzMxNTI0LCAwLjUyNzU3MiwgMC43ODg4OSwgMS4zMTE4MiwgMS42Mzg1OSIsIFwKLSAgICAgICAgICAiMC4wNzEwNjgsIDAuMTA5Njc5LCAwLjMzMTM4MywgMC41Mjc1MiwgMC43ODg5NzUsIDEuMzExODEsIDEuNjM4NDQiLCBcCi0gICAgICAgICAgIjAuMDcxMTIyLCAwLjEwOTY5MywgMC4zMzE0OTksIDAuNTI3NTA2LCAwLjc4ODg5NCwgMS4zMTE4LCAxLjYzNzEzIiwgXAotICAgICAgICAgICIwLjA3MTEzMSwgMC4xMDk3MjcsIDAuMzMxNDExLCAwLjUyNzQ3MiwgMC43ODg5MzUsIDEuMzExNjgsIDEuNjM4NTciLCBcCi0gICAgICAgICAgIjAuMDcxMjMyLCAwLjEwOTc0NCwgMC4zMzE0NTYsIDAuNTI3NDQ3LCAwLjc4ODg0LCAxLjMxMTc2LCAxLjYzODM5IiwgXAotICAgICAgICAgICIwLjA3MTM4NiwgMC4xMDk3NDIsIDAuMzMxNDUxLCAwLjUyNzUyNiwgMC43ODg4ODMsIDEuMzExNjMsIDEuNjM4MzkiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTE0MjQxLCAwLjEzMjM4OSwgMC4yMzQ5NTEsIDAuMzI1NDEyLCAwLjQ0NjA3NSwgMC42ODcyNSwgMC44MzgwMjEiLCBcCi0gICAgICAgICAgIjAuMTIwODA3LCAwLjEzODk0MiwgMC4yNDE0OTQsIDAuMzMyMDA4LCAwLjQ1MjYyNSwgMC42OTM3OTksIDAuODQ0NTczIiwgXAotICAgICAgICAgICIwLjEyODQwMiwgMC4xNDY1NTYsIDAuMjQ5MTEzLCAwLjMzOTU4MiwgMC40NjAyMzMsIDAuNzAxNDA1LCAwLjg1MjE3OSIsIFwKLSAgICAgICAgICAiMC4xMzU3OTgsIDAuMTUzOTQzLCAwLjI1NjQ5MSwgMC4zNDY5NTksIDAuNDY3NTc0LCAwLjcwODgzNSwgMC44NTk1OTEiLCBcCi0gICAgICAgICAgIjAuMTQyNjQxLCAwLjE2MDc3NSwgMC4yNjMzMjIsIDAuMzUzODIxLCAwLjQ3NDQ2MiwgMC43MTU2MzEsIDAuODY2NDA0IiwgXAotICAgICAgICAgICIwLjE1MjM3LCAwLjE3MDUyNiwgMC4yNzMwNjMsIDAuMzYzNTMsIDAuNDg0MjE0LCAwLjcyNTM2OSwgMC44NzYxMjYiLCBcCi0gICAgICAgICAgIjAuMTU5ODU3LCAwLjE3ODAyLCAwLjI4MDU3NSwgMC4zNzEwMjcsIDAuNDkxNjU2LCAwLjczMjg3MywgMC44ODM2OTQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY3OTIzLCAwLjEwNDQzLCAwLjMxNTM2MSwgMC41MDEwOCwgMC43NTA1MiwgMS4yNDc5NCwgMS41NTY1MyIsIFwKLSAgICAgICAgICAiMC4wNjc4ODQsIDAuMTA0NDA5LCAwLjMxNTI0MywgMC41MDE1NTYsIDAuNzUwNDM3LCAxLjI0Nzg3LCAxLjU1NjUiLCBcCi0gICAgICAgICAgIjAuMDY3ODc5LCAwLjEwNDM5OSwgMC4zMTUyOSwgMC41MDE2MDIsIDAuNzUwNDA1LCAxLjI0NzgsIDEuNTU2MzgiLCBcCi0gICAgICAgICAgIjAuMDY3OTAzLCAwLjEwNDQ2NSwgMC4zMTUyMywgMC41MDE1ODYsIDAuNzUwNDU5LCAxLjI0NzM0LCAxLjU1ODkzIiwgXAotICAgICAgICAgICIwLjA2Nzg5MiwgMC4xMDQ0MjksIDAuMzE1MjM2LCAwLjUwMTgwMSwgMC43NTA0MjYsIDEuMjQ3ODYsIDEuNTU2NDUiLCBcCi0gICAgICAgICAgIjAuMDY3OTI5LCAwLjEwNDQ2MSwgMC4zMTUxMDEsIDAuNTAxNzU2LCAwLjc0OTAyMywgMS4yNDc4OSwgMS41NTc5NiIsIFwKLSAgICAgICAgICAiMC4wNjgxNDcsIDAuMTA0Mzg2LCAwLjMxNTI3MywgMC41MDE3MTEsIDAuNzUwMDk2LCAxLjI0Nzg0LCAxLjU1ODk5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMDMxNywgMC4wMTAzMiwgMC4wMTAzMjIsIDAuMDEwMzIyLCAwLjAxMDMyMywgMC4wMTAzMjYsIDAuMDEwMzIzIiwgXAotICAgICAgICAgICIwLjAxMDI5NSwgMC4wMTAyOTcsIDAuMDEwMywgMC4wMTAzLCAwLjAxMDMsIDAuMDEwMywgMC4wMTAzIiwgXAotICAgICAgICAgICIwLjAxMDM3NSwgMC4wMTAzNzYsIDAuMDEwMzc5LCAwLjAxMDM4LCAwLjAxMDM4LCAwLjAxMDM3OSwgMC4wMTAzOCIsIFwKLSAgICAgICAgICAiMC4wMTA0NzYsIDAuMDEwNDc4LCAwLjAxMDQ4MSwgMC4wMTA0ODEsIDAuMDEwNDgyLCAwLjAxMDQ4MiwgMC4wMTA0ODIiLCBcCi0gICAgICAgICAgIjAuMDEwNTk4LCAwLjAxMDYsIDAuMDEwNjAzLCAwLjAxMDYwNCwgMC4wMTA2MDUsIDAuMDEwNjA1LCAwLjAxMDYwNCIsIFwKLSAgICAgICAgICAiMC4wMTA3NzQsIDAuMDEwNzc3LCAwLjAxMDc4LCAwLjAxMDc3NywgMC4wMTA3NzcsIDAuMDEwNzk3LCAwLjAxMDc5NyIsIFwKLSAgICAgICAgICAiMC4wMTA5NzksIDAuMDExMDE3LCAwLjAxMTAyLCAwLjAxMDk4NSwgMC4wMTA5ODUsIDAuMDEwOTg3LCAwLjAxMTAyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA5OTg1LCAwLjAwOTk5MiwgMC4wMTAwMDIsIDAuMDEwMDA0LCAwLjAxMDAwNSwgMC4wMTAwMDUsIDAuMDEwMDA2IiwgXAotICAgICAgICAgICIwLjAwOTk3NywgMC4wMDk5ODMsIDAuMDA5OTkzLCAwLjAwOTk5NCwgMC4wMDk5OTUsIDAuMDA5OTk2LCAwLjAwOTk5NiIsIFwKLSAgICAgICAgICAiMC4wMTAwNzgsIDAuMDEwMDg1LCAwLjAxMDA5NSwgMC4wMTAwOTYsIDAuMDEwMDk3LCAwLjAxMDA5OCwgMC4wMTAwOTkiLCBcCi0gICAgICAgICAgIjAuMDEwMTg1LCAwLjAxMDE5MiwgMC4wMTAyMDEsIDAuMDEwMjAzLCAwLjAxMDIwNCwgMC4wMTAyMDUsIDAuMDEwMjA2IiwgXAotICAgICAgICAgICIwLjAxMDMxNiwgMC4wMTAzMjMsIDAuMDEwMzMyLCAwLjAxMDMzNSwgMC4wMTAzMzUsIDAuMDEwMzM3LCAwLjAxMDMzNiIsIFwKLSAgICAgICAgICAiMC4wMTA1NjIsIDAuMDEwNTY5LCAwLjAxMDU3OCwgMC4wMTA1OCwgMC4wMTA1ODEsIDAuMDEwNTgxLCAwLjAxMDU4MiIsIFwKLSAgICAgICAgICAiMC4wMTA3NjMsIDAuMDEwNzg4LCAwLjAxMDc3OCwgMC4wMTA3NzksIDAuMDEwOCwgMC4wMTA3ODEsIDAuMDEwODAxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUk4iOwotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMjkwNCwgMC4wMTI5MSwgMC4wMTI5MTksIDAuMDEyOTIxLCAwLjAxMjkyMiwgMC4wMTI5MjMsIDAuMDEyOTIzIiwgXAotICAgICAgICAgICIwLjAxMjg5NSwgMC4wMTI5MDMsIDAuMDEyOTEyLCAwLjAxMjkxNCwgMC4wMTI5MTUsIDAuMDEyOTE2LCAwLjAxMjkxNiIsIFwKLSAgICAgICAgICAiMC4wMTI5NTcsIDAuMDEyOTY0LCAwLjAxMjk3MywgMC4wMTI5NzUsIDAuMDEyOTc2LCAwLjAxMjk3NiwgMC4wMTI5NzciLCBcCi0gICAgICAgICAgIjAuMDEzMDMyLCAwLjAxMzAzOSwgMC4wMTMwNDgsIDAuMDEzMDUsIDAuMDEzMDUxLCAwLjAxMzA1MiwgMC4wMTMwNTEiLCBcCi0gICAgICAgICAgIjAuMDEzMTI5LCAwLjAxMzEzNywgMC4wMTMxNDcsIDAuMDEzMTQ4LCAwLjAxMzE1LCAwLjAxMzE1LCAwLjAxMzE1MSIsIFwKLSAgICAgICAgICAiMC4wMTMzNTYsIDAuMDEzMzQ1LCAwLjAxMzM3MywgMC4wMTMzNzUsIDAuMDEzMzc2LCAwLjAxMzM3NywgMC4wMTMzNzciLCBcCi0gICAgICAgICAgIjAuMDEzNTA5LCAwLjAxMzUxMywgMC4wMTM1MiwgMC4wMTM1MjIsIDAuMDEzNTIzLCAwLjAxMzUyNCwgMC4wMTM1MjQiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfcG93ZXIoc2NhbGFyKSB7Ci0gICAgICAgIHZhbHVlcygiMCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTI2MDEsIDAuMDEyNjAyLCAwLjAxMjYwNCwgMC4wMTI2MDQsIDAuMDEyNjAzLCAwLjAxMjYwNCwgMC4wMTI2MDMiLCBcCi0gICAgICAgICAgIjAuMDEyNTY0LCAwLjAxMjU2NCwgMC4wMTI1NjcsIDAuMDEyNTY1LCAwLjAxMjU2NywgMC4wMTI1NjcsIDAuMDEyNTY2IiwgXAotICAgICAgICAgICIwLjAxMjYwNCwgMC4wMTI2MDYsIDAuMDEyNjA4LCAwLjAxMjYwNywgMC4wMTI2MDcsIDAuMDEyNjA5LCAwLjAxMjYwNyIsIFwKLSAgICAgICAgICAiMC4wMTI3MDEsIDAuMDEyNzAzLCAwLjAxMjcwNSwgMC4wMTI3MDUsIDAuMDEyNzA2LCAwLjAxMjcwNiwgMC4wMTI3MDciLCBcCi0gICAgICAgICAgIjAuMDEyODM2LCAwLjAxMjgzNywgMC4wMTI4MzgsIDAuMDEyODQsIDAuMDEyODM5LCAwLjAxMjgzOCwgMC4wMTI4NCIsIFwKLSAgICAgICAgICAiMC4wMTMxMDksIDAuMDEzMTA2LCAwLjAxMzEwOCwgMC4wMTMxMDgsIDAuMDEzMTEsIDAuMDEzMTEsIDAuMDEzMTEiLCBcCi0gICAgICAgICAgIjAuMDEzMzg5LCAwLjAxMzM5MSwgMC4wMTMzOTIsIDAuMDEzMzkyLCAwLjAxMzM5MiwgMC4wMTMzOTIsIDAuMDEzMzkxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA5MDkzLCAwLjAwOTEsIDAuMDA5MTA5LCAwLjAwOTExMSwgMC4wMDkxMTIsIDAuMDA5MTEzLCAwLjAwOTExMyIsIFwKLSAgICAgICAgICAiMC4wMDkwMSwgMC4wMDkwMTYsIDAuMDA5MDI2LCAwLjAwOTAyNywgMC4wMDkwMjksIDAuMDA5MDI5LCAwLjAwOTAyOSIsIFwKLSAgICAgICAgICAiMC4wMDg5ODIsIDAuMDA4OTg4LCAwLjAwODk5OCwgMC4wMDg5OTksIDAuMDA5LCAwLjAwOTAwMSwgMC4wMDkwMDIiLCBcCi0gICAgICAgICAgIjAuMDA4OTg5LCAwLjAwODk5NSwgMC4wMDkwMDYsIDAuMDA5MDA4LCAwLjAwOTAwOCwgMC4wMDkwMDksIDAuMDA5MDA5IiwgXAotICAgICAgICAgICIwLjAwOTAzNCwgMC4wMDkwNDEsIDAuMDA5MDUsIDAuMDA5MDUyLCAwLjAwOTA1MywgMC4wMDkwNTQsIDAuMDA5MDU0IiwgXAotICAgICAgICAgICIwLjAwOTE0MywgMC4wMDkxNSwgMC4wMDkxNiwgMC4wMDkxNjIsIDAuMDA5MTYzLCAwLjAwOTE2NCwgMC4wMDkxNjQiLCBcCi0gICAgICAgICAgIjAuMDA5MjU0LCAwLjAwOTI2LCAwLjAwOTI2OSwgMC4wMDkyNywgMC4wMDkyNzIsIDAuMDA5MjczLCAwLjAwOTI3MyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUk4pICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYxOTg2OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYxOTg2OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDYxOTgxNDsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA5OTksIDAuMDAwOTk2LCAwLjAwMTA2MywgMC4wMDExNTcsIDAuMDAxMjcxLCAwLjAwMTQ4NiwgMC4wMDE2NTgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDMzMDgsIDAuMDAzMzA5LCAwLjAwMzM2OCwgMC4wMDM0NTksIDAuMDAzNTc2LCAwLjAwMzgwOCwgMC4wMDM5OTUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUk4iOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFEJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgZmFsbF9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMTMwMzEzLCAwLjEzODI3MSwgMC4xNDY5NTcsIDAuMTUzNjE3LCAwLjE1ODk1OSwgMC4xNjU4NSwgMC4xNzEwMzQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiByZWNvdmVyeV9yaXNpbmc7Ci0gICAgICB3aGVuIDogIkQmU04iOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8xX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQocmVjb3ZlcnlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQzNzUsIDAuMDM4NzUsIDAuMDI2MjUsIDAuMDIsIDAuMDEzNzUsIDAuMDEsIDAuMDAxMjUiLCBcCi0gICAgICAgICAgIjAuMDU1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDI1LCAwLjAxNSwgMC4wMTI1IiwgXAotICAgICAgICAgICIwLjA2MTI1LCAwLjA1NjI1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDI3NSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4wNjc1LCAwLjA2MjUsIDAuMDUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzM3NSwgMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMDczNzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNSwgMC4wNDM3NSwgMC4wNCwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4wODM3NSwgMC4wNzI1LCAwLjA2NjI1LCAwLjA1Mzc1LCAwLjA1Mzc1LCAwLjA0Mzc1LCAwLjA0MTI1IiwgXAotICAgICAgICAgICIwLjA4NjI1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1MjUsIDAuMDQzNzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiU04iOwotICAgICAgdGltaW5nX3R5cGUgOiByZWNvdmVyeV9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEIjsKLSAgICAgIHNkZl9jb25kIDogIkQgPT0gMSdiMCI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQocmVjb3ZlcnlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDUsIDAuMDU1LCAwLjA2MTI1LCAwLjA2NzUsIDAuMDczNzUsIDAuMDgzNzUsIDAuMDkyNSIsIFwKLSAgICAgICAgICAiMC4wMzg3NSwgMC4wNDM3NSwgMC4wNTYyNSwgMC4wNjI1LCAwLjA2ODc1LCAwLjA3ODc1LCAwLjA4MTI1IiwgXAotICAgICAgICAgICIwLjAzODc1LCAwLjA0Mzc1LCAwLjA1LCAwLjA1NjI1LCAwLjA2MjUsIDAuMDcyNSwgMC4wODEyNSIsIFwKLSAgICAgICAgICAiMC4wMzI1LCAwLjAzNzUsIDAuMDUsIDAuMDU2MjUsIDAuMDYyNSwgMC4wNjYyNSwgMC4wNzUiLCBcCi0gICAgICAgICAgIjAuMDMyNSwgMC4wMzc1LCAwLjA0Mzc1LCAwLjA1LCAwLjA1NjI1LCAwLjA2NjI1LCAwLjA3NSIsIFwKLSAgICAgICAgICAiMC4wMjg3NSwgMC4wMzM3NSwgMC4wNDYyNSwgMC4wNTI1LCAwLjA1ODc1LCAwLjA2MjUsIDAuMDcxMjUiLCBcCi0gICAgICAgICAgIjAuMDI2MjUsIDAuMDM3NSwgMC4wNDM3NSwgMC4wNSwgMC4wNTYyNSwgMC4wNiwgMC4wNjg3NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJlbW92YWxfcmlzaW5nOwotICAgICAgd2hlbiA6ICJEJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMV9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHJlbW92YWxfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAwNjI1LCAtMC4wMDEyNSwgMC4wMDUsIDAuMDExMjUsIDAuMDE3NSwgMC4wMjc1LCAwLjAzIiwgXAotICAgICAgICAgICItMC4wMTc1LCAtMC4wMDYyNSwgMCwgMC4wMDYyNSwgMC4wMTI1LCAwLjAxNjI1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxODc1LCAtMC4wMDYyNSwgMCwgMCwgMC4wMSwgMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDI1LCAtMC4wMTI1LCAtMC4wMDYyNSwgLTAuMDA2MjUsIDAuMDAzNzUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAtMC4wMDI1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wNDYyNSwgLTAuMDM1LCAtMC4wMjg3NSwgLTAuMDIyNSwgLTAuMDE2MjUsIC0wLjAwNjI1LCAtMC4wMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTUsIC0wLjAwNjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTTikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxOTUzMTc7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxOTUzMTc7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxOTUzMTI7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwODQxLCAwLjAwMDg0MSwgMC4wMDA4NDEsIDAuMDAwODQxLCAwLjAwMDg0MSwgMC4wMDA4NCwgMC4wMDA4NCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDg1MSwgMC4wMDA4NDUsIDAuMDAwODQ0LCAwLjAwMDg0NCwgMC4wMDA4NDQsIDAuMDAwODQzLCAwLjAwMDg0NCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQmIVJOIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9STl9FUV8wID09IDEnYjEiOwotICAgICAgZmFsbF9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDkyNjU1LCAwLjA5OTQxMiwgMC4xMDk0MDcsIDAuMTE4MDQzLCAwLjEyNTIyOSwgMC4xMzQ0NzgsIDAuMTQxMzk0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogcmVjb3ZlcnlfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRCZSTiI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fUk5fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChyZWNvdmVyeV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDYyNSwgLTAuMDA1LCAtMC4wMTc1LCAtMC4wMjM3NSwgLTAuMDMsIC0wLjA0LCAtMC4wNDI1IiwgXAotICAgICAgICAgICIwLjAxMTI1LCAwLCAtMC4wMDYyNSwgLTAuMDE4NzUsIC0wLjAyNSwgLTAuMDI4NzUsIC0wLjAzNzUiLCBcCi0gICAgICAgICAgIjAuMDE3NSwgMC4wMTI1LCAwLCAtMC4wMDYyNSwgLTAuMDEyNSwgLTAuMDIyNSwgLTAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMDIzNzUsIDAuMDE4NzUsIDAuMDA2MjUsIDAsIC0wLjAwNjI1LCAtMC4wMTYyNSwgLTAuMDI1IiwgXAotICAgICAgICAgICIwLjAzNjI1LCAwLjAyNSwgMC4wMTI1LCAwLjAwNjI1LCAwLCAtMC4wMSwgLTAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4wNDYyNSwgMC4wMzUsIDAuMDIyNSwgMC4wMTYyNSwgMC4wMSwgMCwgLTAuMDAyNSIsIFwKLSAgICAgICAgICAiMC4wNTUsIDAuMDQzNzUsIDAuMDMxMjUsIDAuMDI1LCAwLjAxODc1LCAwLjAwODc1LCAwLjAwNjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogcmVtb3ZhbF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEJlJOIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9STl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHJlbW92YWxfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDI1LCAwLjAzNjI1LCAwLjA0MjUsIDAuMDQ4NzUsIDAuMDU1LCAwLjA2NSwgMC4wNjc1IiwgXAotICAgICAgICAgICIwLjAyLCAwLjAyNSwgMC4wMzc1LCAwLjA0Mzc1LCAwLjA1LCAwLjA2LCAwLjA2MjUiLCBcCi0gICAgICAgICAgIjAuMDEzNzUsIDAuMDE4NzUsIDAuMDMxMjUsIDAuMDM3NSwgMC4wNDM3NSwgMC4wNDc1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICIwLjAwNzUsIDAuMDEyNSwgMC4wMjUsIDAuMDMxMjUsIDAuMDM3NSwgMC4wNDEyNSwgMC4wNSIsIFwKLSAgICAgICAgICAiMC4wMDEyNSwgMC4wMDYyNSwgMC4wMTg3NSwgMC4wMjUsIDAuMDMxMjUsIDAuMDM1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICItMC4wMDg3NSwgLTAuMDAzNzUsIDAuMDA4NzUsIDAuMDE1LCAwLjAyMTI1LCAwLjAzMTI1LCAwLjAzMzc1IiwgXAotICAgICAgICAgICItMC4wMTc1LCAtMC4wMDYyNSwgMCwgMC4wMDYyNSwgMC4wMTI1LCAwLjAyMjUsIDAuMDI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBERkZTUkhRWDIgKgotICogLS0tLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChERkZTUkhRWDIpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMS4yMzUwMTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBmZiAoTjM1LFFCSU5UKSB7Ci0gICAgbmV4dF9zdGF0ZSA6ICJEIjsKLSAgICBjbG9ja2VkX29uIDogIkNLIjsKLSAgICBjbGVhciA6ICIoIVJOKSI7Ci0gICAgcHJlc2V0IDogIighU04pIjsKLSAgICBjbGVhcl9wcmVzZXRfdmFyMSA6IEg7Ci0gIH0KLSAgcGluKENLKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2MTE4MjQ7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjExODI0OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDYxMTc2NDsKLSAgICBjbG9jayA6IHRydWU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA0Njg0LCAwLjAwNDY3NCwgMC4wMDQ3NDgsIDAuMDA0ODU0LCAwLjAwNDk3NiwgMC4wMDUyMDMsIDAuMDA1Mzc3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDEwMTg1LCAwLjAxMDE3NSwgMC4wMTAyNDIsIDAuMDEwMzQ2LCAwLjAxMDQ0MSwgMC4wMTA1ODUsIDAuMDEwNzcxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRCZSTiZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fUk5fRVFfMV9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMTAyNzksIDAuMTEwOTkxLCAwLjEyMDM3NiwgMC4xMjgwNzEsIDAuMTM0MTg5LCAwLjE0MjE4NCwgMC4xNDgyOTMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjA4NjA1OCwgMC4wOTQxODksIDAuMTAzNDIzLCAwLjExMDU0MiwgMC4xMTYyOTUsIDAuMTIzODY3LCAwLjEyOTM1MiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwODAwNDU4OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDc5ODU3MzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA4MDA0NTg7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA0MjIsIDAuMDA0MTc0LCAwLjAwNDE5NCwgMC4wMDQyNTYsIDAuMDA0MzE5LCAwLjAwNDQ4OCwgMC4wMDQ2NDQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDQ3OSwgMC4wMDQ3NiwgMC4wMDQ3NzUsIDAuMDA0ODI0LCAwLjAwNDkwMiwgMC4wMDUwMzYsIDAuMDA1MTkzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlJOJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIlJOX0VRXzFfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMTI1LCAtMC4wMDc1LCAtMC4wMDEyNSwgMC4wMDUsIDAuMDA1LCAwLjAwODc1LCAwLjAxMTI1IiwgXAotICAgICAgICAgICItMC4wMTc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgLTAuMDA2MjUsIDAsIDAuMDAzNzUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIC0wLjAwNjI1LCAtMC4wMDI1LCAwIiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDE4NzUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMTI1LCAtMC4wMDg3NSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA4NzUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wNCwgLTAuMDI4NzUsIC0wLjAyODc1LCAtMC4wMjI1LCAtMC4wMjI1LCAtMC4wMTg3NSwgLTAuMDE2MjUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAyNSwgLTAuMDIxMjUsIC0wLjAxODc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTg3NSwgMC4wMjM3NSwgMC4wMzYyNSwgMC4wNDI1LCAwLjA0ODc1LCAwLjA1MjUsIDAuMDU1IiwgXAotICAgICAgICAgICIwLjAxMzc1LCAwLjAxODc1LCAwLjAzMTI1LCAwLjAzNzUsIDAuMDQzNzUsIDAuMDQ3NSwgMC4wNSIsIFwKLSAgICAgICAgICAiMC4wMDc1LCAwLjAxODc1LCAwLjAyNSwgMC4wMzEyNSwgMC4wMzc1LCAwLjA0NzUsIDAuMDUiLCBcCi0gICAgICAgICAgIjAuMDA3NSwgMC4wMTI1LCAwLjAyNSwgMC4wMzEyNSwgMC4wMzc1LCAwLjA0MTI1LCAwLjA1IiwgXAotICAgICAgICAgICIwLjAwNzUsIDAuMDEyNSwgMC4wMTg3NSwgMC4wMjUsIDAuMDMxMjUsIDAuMDQxMjUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMDAzNzUsIDAuMDA4NzUsIDAuMDIxMjUsIDAuMDI3NSwgMC4wMzM3NSwgMC4wMzc1LCAwLjA0NjI1IiwgXAotICAgICAgICAgICIwLjAwMTI1LCAwLjAwNjI1LCAwLjAxODc1LCAwLjAyNSwgMC4wMzEyNSwgMC4wMzUsIDAuMDQzNzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlJOJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIlJOX0VRXzFfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNSwgMC4wMzg3NSwgMC4wMzI1LCAwLjAyNjI1LCAwLjAyLCAwLjAxNjI1LCAwLjAxMzc1IiwgXAotICAgICAgICAgICIwLjA1NSwgMC4wNSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMjEyNSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4wNjEyNSwgMC4wNTYyNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyNzUsIDAuMDI1IiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDYyNSwgMC4wNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzMzc1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICIwLjA3Mzc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDUsIDAuMDQzNzUsIDAuMDMzNzUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMDgzNzUsIDAuMDcyNSwgMC4wNiwgMC4wNTM3NSwgMC4wNDc1LCAwLjA0Mzc1LCAwLjA0MTI1IiwgXAotICAgICAgICAgICIwLjA4NjI1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA0NjI1LCAwLjA0Mzc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDI1LCAwLjAyLCAwLjAwNzUsIDAuMDAxMjUsIC0wLjAwNSwgLTAuMDE1LCAtMC4wMTc1IiwgXAotICAgICAgICAgICIwLjAzNjI1LCAwLjAyNSwgMC4wMTI1LCAwLjAwNjI1LCAwLCAtMC4wMSwgLTAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4wNDI1LCAwLjAzMTI1LCAwLjAxODc1LCAwLjAxMjUsIDAuMDA2MjUsIC0wLjAwMzc1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiMC4wNDI1LCAwLjAzNzUsIDAuMDI1LCAwLjAxODc1LCAwLjAxMjUsIDAuMDAyNSwgMCIsIFwKLSAgICAgICAgICAiMC4wNDg3NSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMTI1LCAwLjAwODc1LCAwIiwgXAotICAgICAgICAgICIwLjA1MjUsIDAuMDQ3NSwgMC4wMzUsIDAuMDI4NzUsIDAuMDIyNSwgMC4wMTI1LCAwLjAwMzc1IiwgXAotICAgICAgICAgICIwLjA1NSwgMC4wNSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMTUsIDAuMDEyNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjY4NTk5NTsKLSAgICBmdW5jdGlvbiA6ICJOMzUiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5vbl91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcmlzaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5MDYyNSwgMC4xNjgxMzYsIDAuMjI5NzU1LCAwLjMwNjc5MSwgMC4zODM4NDQsIDAuNDYwOTY2LCAwLjUzNzk4NiIsIFwKLSAgICAgICAgICAiMC4wOTg3NTgsIDAuMTc2MjcyLCAwLjIzNzg5NCwgMC4zMTQ4OTMsIDAuMzkxOTczLCAwLjQ2OTExMiwgMC41NDYxMjEiLCBcCi0gICAgICAgICAgIjAuMTA4MTIzLCAwLjE4NTY0MSwgMC4yNDcyNjcsIDAuMzI0MzA4LCAwLjQwMTM0NCwgMC40Nzg0ODQsIDAuNTU1NTA1IiwgXAotICAgICAgICAgICIwLjExNTY5NiwgMC4xOTMyMTIsIDAuMjU0ODMyLCAwLjMzMTg3LCAwLjQwODkyOCwgMC40ODU5OTEsIDAuNTYzMDYxIiwgXAotICAgICAgICAgICIwLjEyMTc0LCAwLjE5OTIzNSwgMC4yNjA4NTksIDAuMzM3OTE1LCAwLjQxNDk1NCwgMC40OTIwNzMsIDAuNTY5MDY0IiwgXAotICAgICAgICAgICIwLjEyOTczMSwgMC4yMDcyMTgsIDAuMjY4ODMzLCAwLjM0NTg2NywgMC40MjI5MjYsIDAuNDk5OTYsIDAuNTc3MDc0IiwgXAotICAgICAgICAgICIwLjEzNTg0NCwgMC4yMTMzNDYsIDAuMjc1MDM4LCAwLjM1MjA3MiwgMC40MjkxMjMsIDAuNTA2MjAxLCAwLjU4MzIzOSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDA2MTMsIDAuMTk5NzYzLCAwLjMyOTQ5NCwgMC40OTEzMzQsIDAuNjU0Mzc4LCAwLjgxNzg0MSwgMC45ODA0ODQiLCBcCi0gICAgICAgICAgIjAuMDQwNjEzLCAwLjE5OTc2NSwgMC4zMjkyOTcsIDAuNDkxMzE1LCAwLjY1NDQ3OCwgMC44MTY1NTgsIDAuOTgwNDc4IiwgXAotICAgICAgICAgICIwLjA0MDYxNywgMC4xOTk3NTQsIDAuMzI5MDcyLCAwLjQ5MjM0NSwgMC42NTQ5ODYsIDAuODE2NTU5LCAwLjk4MDQ2NiIsIFwKLSAgICAgICAgICAiMC4wNDA2MDksIDAuMTk5NzY0LCAwLjMyOTQ0NiwgMC40OTIzMjcsIDAuNjU0MTE3LCAwLjgxNjM3NSwgMC45ODA0NjIiLCBcCi0gICAgICAgICAgIjAuMDQwNTksIDAuMTk5NzU4LCAwLjMyOTY1NywgMC40OTIzOTksIDAuNjUzOTQ1LCAwLjgxNjU1NywgMC45Nzg3OCIsIFwKLSAgICAgICAgICAiMC4wNDA3MjYsIDAuMTk5NzcsIDAuMzI5NjM0LCAwLjQ5MTg5NSwgMC42NTM5NSwgMC44MTY5MTIsIDAuOTgwMzMyIiwgXAotICAgICAgICAgICIwLjA0MDYsIDAuMTk5NzQ4LCAwLjMyOTI0NSwgMC40OTIzMDcsIDAuNjU0MDM0LCAwLjgxNjYxMSwgMC45ODAzMjIiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTAyNzksIDAuMTc5MDk0LCAwLjIzOTcwMiwgMC4zMTU0NTEsIDAuMzkxMjQsIDAuNDY2OTgxLCAwLjU0Mjc1OSIsIFwKLSAgICAgICAgICAiMC4xMTA5OTEsIDAuMTg3MzEsIDAuMjQ3OTI4LCAwLjMyMzY2NSwgMC4zOTk0NTEsIDAuNDc1MTksIDAuNTUwOTMzIiwgXAotICAgICAgICAgICIwLjEyMDM3NiwgMC4xOTY2OSwgMC4yNTcyOTQsIDAuMzMzMDU1LCAwLjQwODgyOSwgMC40ODQ1NjcsIDAuNTYwMzkxIiwgXAotICAgICAgICAgICIwLjEyODA3MSwgMC4yMDQzNzQsIDAuMjY0OTgzLCAwLjM0MDczMSwgMC40MTY1MTYsIDAuNDkyMjU4LCAwLjU2ODAzIiwgXAotICAgICAgICAgICIwLjEzNDE4OSwgMC4yMTA0OTcsIDAuMjcxMTAzLCAwLjM0Njg1MSwgMC40MjI2MzcsIDAuNDk4MzgsIDAuNTc0MTQyIiwgXAotICAgICAgICAgICIwLjE0MjE4NCwgMC4yMTg1MSwgMC4yNzkxMDcsIDAuMzU0ODU4LCAwLjQzMDYyNCwgMC41MDYzOTgsIDAuNTgyMTE0IiwgXAotICAgICAgICAgICIwLjE0ODI5MywgMC4yMjQ2MzksIDAuMjg1MjE3LCAwLjM2MTAyMSwgMC40MzY3MTEsIDAuNTEyNDgsIDAuNTg4MjE2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzOTI3OSwgMC4xOTM0OSwgMC4zMTk0MjcsIDAuNDc2OTE1LCAwLjYzNDYzOSwgMC43OTIxNTcsIDAuOTQ5ODM5IiwgXAotICAgICAgICAgICIwLjAzOTI3LCAwLjE5MzQ4MiwgMC4zMTk0NzEsIDAuNDc2MzI1LCAwLjYzMzg2NSwgMC43OTExODEsIDAuOTQ5NzI0IiwgXAotICAgICAgICAgICIwLjAzOTI2OCwgMC4xOTM0MDEsIDAuMzE5Mzk2LCAwLjQ3NjUwMiwgMC42MzQ1OTUsIDAuNzkyMTY0LCAwLjk0ODAxOCIsIFwKLSAgICAgICAgICAiMC4wMzkyNjgsIDAuMTkzNDg5LCAwLjMxOTQyMiwgMC40NzY5MDksIDAuNjM0NjAxLCAwLjc5MjEzNywgMC45NDk3ODgiLCBcCi0gICAgICAgICAgIjAuMDM5MjQ2LCAwLjE5MzM4NCwgMC4zMTk0MDYsIDAuNDc2ODgzLCAwLjYzNDU5OCwgMC43OTIxNTIsIDAuOTQ5NzcyIiwgXAotICAgICAgICAgICIwLjAzOTI1MSwgMC4xOTM0MTQsIDAuMzE5MDUyLCAwLjQ3NjM5OSwgMC42MzQ1NDIsIDAuNzkwODc1LCAwLjk0OTY3OSIsIFwKLSAgICAgICAgICAiMC4wMzkyNTIsIDAuMTkzNTc3LCAwLjMxOTAxOSwgMC40NzYxNzMsIDAuNjM0MzgsIDAuNzkyMTUxLCAwLjk0OTY4OSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogY2xlYXI7Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEyMDAzLCAwLjE5NjI4OCwgMC4yNTY4OTYsIDAuMzMyNjY4LCAwLjQwODQyNCwgMC40ODQxNzYsIDAuNTU5OTA2IiwgXAotICAgICAgICAgICIwLjEyNzk1OCwgMC4yMDQyMTksIDAuMjY0ODMsIDAuMzQwNjAxLCAwLjQxNjM2NCwgMC40OTIxMDUsIDAuNTY3ODQzIiwgXAotICAgICAgICAgICIwLjEzNjUzNiwgMC4yMTI3OTYsIDAuMjczNDAxLCAwLjM0OTE3NCwgMC40MjQ5MjYsIDAuNTAwNjczLCAwLjU3NjQxIiwgXAotICAgICAgICAgICIwLjE0Mjk2NSwgMC4yMTkyOTIsIDAuMjc5ODg5LCAwLjM1NTY1OCwgMC40MzE0MDcsIDAuNTA3MTg3LCAwLjU4Mjg5OSIsIFwKLSAgICAgICAgICAiMC4xNDgxNzMsIDAuMjI0NDk1LCAwLjI4NTA5OCwgMC4zNjA4MTEsIDAuNDM2NjE2LCAwLjUxMjQxMywgMC41ODgxMDgiLCBcCi0gICAgICAgICAgIjAuMTU0ODgsIDAuMjMxMTgyLCAwLjI5MTc5NywgMC4zNjc1NTYsIDAuNDQzMzI5LCAwLjUxOTA4NSwgMC41OTQ4MDUiLCBcCi0gICAgICAgICAgIjAuMTU5OTksIDAuMjM2Mjc0LCAwLjI5Njg3OCwgMC4zNzI2MjksIDAuNDQ4NDE3LCAwLjUyNDE5MywgMC41OTk4OTQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM5NDIzLCAwLjE5MzYxNiwgMC4zMTk0NzksIDAuNDc2MzgsIDAuNjM0NywgMC43OTIyOSwgMC45NDk4NjMiLCBcCi0gICAgICAgICAgIjAuMDM5NDkyLCAwLjE5MzYxNCwgMC4zMTk0ODgsIDAuNDc2MTExLCAwLjYzNDczMSwgMC43OTIyODQsIDAuOTQ5ODg5IiwgXAotICAgICAgICAgICIwLjAzOTQ4OSwgMC4xOTM2MDksIDAuMzE5NDY5LCAwLjQ3Njk0NiwgMC42MzQ2ODIsIDAuNzkyMjYxLCAwLjk0OTg1MSIsIFwKLSAgICAgICAgICAiMC4wMzk0MTQsIDAuMTkzMzk4LCAwLjMxOTQ1MSwgMC40NzcwNTcsIDAuNjM0NiwgMC43OTIzNTEsIDAuOTQ5ODUxIiwgXAotICAgICAgICAgICIwLjAzOTQ3OCwgMC4xOTM2MzMsIDAuMzE5NDcsIDAuNDc2OTg4LCAwLjYzNDcxMywgMC43OTIzOTMsIDAuOTQ5ODk0IiwgXAotICAgICAgICAgICIwLjAzOTM5NiwgMC4xOTM2MjksIDAuMzE5NDk0LCAwLjQ3Njk0NiwgMC42MzQ3MTIsIDAuNzkyMDQ5LCAwLjk0OTg2MyIsIFwKLSAgICAgICAgICAiMC4wMzk2NDksIDAuMTkzNiwgMC4zMTk1MDcsIDAuNDc2OTk2LCAwLjYzNDcxNCwgMC43OTI0MzIsIDAuOTQ5ODU2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiBwcmVzZXQ7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4MjIxNiwgMC4xNTk2MzEsIDAuMjIxMjYsIDAuMjk4MzgyLCAwLjM3NTM4MywgMC40NTI0MTMsIDAuNTI5NDM1IiwgXAotICAgICAgICAgICIwLjA4ODgxLCAwLjE2NjIzMSwgMC4yMjc4NTgsIDAuMzA0OTU2LCAwLjM4MTk3LCAwLjQ1ODk5NCwgMC41MzU5ODUiLCBcCi0gICAgICAgICAgIjAuMDk4NDA4LCAwLjE3NTc4NCwgMC4yMzc0MTMsIDAuMzE0NDgyLCAwLjM5MTQyMiwgMC40Njg1NjQsIDAuNTQ1NTkiLCBcCi0gICAgICAgICAgIjAuMTA3MDk3LCAwLjE4NDQ2MywgMC4yNDYwOTUsIDAuMzIzMTM5LCAwLjQwMDIxNSwgMC40NzcxMTgsIDAuNTU0MjczIiwgXAotICAgICAgICAgICIwLjExNDI5NiwgMC4xOTE2NjEsIDAuMjUzMzE5LCAwLjMzMDQwOSwgMC40MDc0NywgMC40ODQ0MjksIDAuNTYxNDY3IiwgXAotICAgICAgICAgICIwLjEyMzYyMywgMC4yMDEwMDksIDAuMjYyNjQ3LCAwLjMzOTY4MSwgMC40MTY3MzMsIDAuNDkzODA5LCAwLjU3MDgyMSIsIFwKLSAgICAgICAgICAiMC4xMzA2MzgsIDAuMjA3OTk4LCAwLjI2OTY0LCAwLjM0NjY5MiwgMC40MjM3MzUsIDAuNTAwNzc0LCAwLjU3Nzg4OSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDAxNzUsIDAuMTk5ODEsIDAuMzI5NzM1LCAwLjQ5MjM2NSwgMC42NTUwODgsIDAuODE3ODMzLCAwLjk4MDQyNiIsIFwKLSAgICAgICAgICAiMC4wNDAxNzYsIDAuMTk5ODYyLCAwLjMyOTgwNywgMC40OTI0NDQsIDAuNjU1MDg4LCAwLjgxNzY0NCwgMC45ODA2IiwgXAotICAgICAgICAgICIwLjA0MDE3LCAwLjE5OTgxLCAwLjMyOTc4NSwgMC40OTI0NTUsIDAuNjU1MDk3LCAwLjgxNzc0NSwgMC45ODA0MjUiLCBcCi0gICAgICAgICAgIjAuMDQwMjI1LCAwLjE5OTg1NSwgMC4zMjk4NDMsIDAuNDkyNDk0LCAwLjY1NTA4OCwgMC44MTcwOCwgMC45ODA0MzciLCBcCi0gICAgICAgICAgIjAuMDQwMjcxLCAwLjE5OTg0NiwgMC4zMjk4NTMsIDAuNDkyNDU5LCAwLjY1NTA5NiwgMC44MTc2OTcsIDAuOTgwNDI1IiwgXAotICAgICAgICAgICIwLjA0MDU5MywgMC4xOTk4MjcsIDAuMzI5ODMxLCAwLjQ5MjQyNiwgMC42NTUwNTYsIDAuODE3NzA1LCAwLjk4MDM0NSIsIFwKLSAgICAgICAgICAiMC4wNDA1NzksIDAuMTk5NzE2LCAwLjMyOTg0NSwgMC40OTIzNSwgMC42NTUwMDUsIDAuODE3NjQsIDAuOTgwMjkyIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwNDY0OCwgMC4xODA5NCwgMC4yNDE1NTMsIDAuMzE3MzU1LCAwLjM5MzA4NiwgMC40Njg4MjUsIDAuNTQ0NjA0IiwgXAotICAgICAgICAgICIwLjExMTI2MywgMC4xODc1MjIsIDAuMjQ4MTI0LCAwLjMyMzg5OSwgMC4zOTk2NDMsIDAuNDc1NDEzLCAwLjU1MTEzNiIsIFwKLSAgICAgICAgICAiMC4xMTg3NywgMC4xOTUwODIsIDAuMjU1NjkzLCAwLjMzMTQ4NCwgMC40MDcyMjksIDAuNDgzMDE2LCAwLjU1ODcwOSIsIFwKLSAgICAgICAgICAiMC4xMjYxODIsIDAuMjAyNDg3LCAwLjI2MzA5NSwgMC4zMzg4NTIsIDAuNDE0NjMsIDAuNDkwMzY4LCAwLjU2NjExNSIsIFwKLSAgICAgICAgICAiMC4xMzMwNzcsIDAuMjA5NCwgMC4yNzAwMTksIDAuMzQ1Nzc3LCAwLjQyMTU1OCwgMC40OTczMDQsIDAuNTczMDI3IiwgXAotICAgICAgICAgICIwLjE0MjksIDAuMjE5MjE3LCAwLjI3OTgzLCAwLjM1NTU3NywgMC40MzEzMzgsIDAuNTA3MTYyLCAwLjU4MjgzNSIsIFwKLSAgICAgICAgICAiMC4xNTA0NTUsIDAuMjI2NzkxLCAwLjI4NzQsIDAuMzYzMTc4LCAwLjQzODkxOCwgMC41MTQ2OTYsIDAuNTkwNDE5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzOTQ3NSwgMC4xOTM2MDEsIDAuMzE5NDksIDAuNDc2MTc0LCAwLjYzNDcyMiwgMC43OTIyODEsIDAuOTUwMDE2IiwgXAotICAgICAgICAgICIwLjAzOTQ5NCwgMC4xOTM2MzQsIDAuMzE5NDU3LCAwLjQ3NjkzMiwgMC42MzQ2NTMsIDAuNzkyMDUsIDAuOTQ5ODUiLCBcCi0gICAgICAgICAgIjAuMDM5NDM2LCAwLjE5MzYzMywgMC4zMTk0NjUsIDAuNDc3MTMxLCAwLjYzNDY5OSwgMC43OTI0NTEsIDAuOTQ5ODY5IiwgXAotICAgICAgICAgICIwLjAzOTQyOCwgMC4xOTM2MjgsIDAuMzE5NDY0LCAwLjQ3NzAwNSwgMC42MzQ2OSwgMC43OTIyODEsIDAuOTQ5ODgyIiwgXAotICAgICAgICAgICIwLjAzOTQzNiwgMC4xOTM1OTUsIDAuMzE5NTEyLCAwLjQ3NjUzMywgMC42MzQ1NzQsIDAuNzkyMDcsIDAuOTQ5ODQ2IiwgXAotICAgICAgICAgICIwLjAzOTU3NywgMC4xOTM0MjcsIDAuMzE5NTI1LCAwLjQ3NjQwNiwgMC42MzQ2MzUsIDAuNzkyMTE3LCAwLjk0OTgzOCIsIFwKLSAgICAgICAgICAiMC4wMzk2NzIsIDAuMTkzNjcyLCAwLjMxOTQ5MiwgMC40NzcxMDcsIDAuNjMzNzA4LCAwLjc5MjM0OCwgMC45NDk4NTMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDExNDU2LCAwLjAxMTQ4OCwgMC4wMTE0OTIsIDAuMDExNDk0LCAwLjAxMTUsIDAuMDExNDk1LCAwLjAxMTQ5IiwgXAotICAgICAgICAgICIwLjAxMTQzNiwgMC4wMTE0NjcsIDAuMDExNDcxLCAwLjAxMTQ3NCwgMC4wMTE0NzUsIDAuMDExNDc1LCAwLjAxMTQ3MiIsIFwKLSAgICAgICAgICAiMC4wMTE1MTUsIDAuMDExNTQ3LCAwLjAxMTU1LCAwLjAxMTU1NSwgMC4wMTE1NTQsIDAuMDExNTU1LCAwLjAxMTU1NSIsIFwKLSAgICAgICAgICAiMC4wMTE2MTEsIDAuMDExNjQ0LCAwLjAxMTY0OSwgMC4wMTE2NSwgMC4wMTE2NTEsIDAuMDExNjUyLCAwLjAxMTY1MyIsIFwKLSAgICAgICAgICAiMC4wMTE3MywgMC4wMTE3NjMsIDAuMDExNzY4LCAwLjAxMTc3LCAwLjAxMTc3MiwgMC4wMTE3NzEsIDAuMDExNzczIiwgXAotICAgICAgICAgICIwLjAxMTk1OSwgMC4wMTE5ODYsIDAuMDExOTg5LCAwLjAxMTk5NiwgMC4wMTE5OTcsIDAuMDExOTk3LCAwLjAxMTk5OCIsIFwKLSAgICAgICAgICAiMC4wMTIxNTYsIDAuMDEyMTg2LCAwLjAxMjE1NCwgMC4wMTIxNSwgMC4wMTIxOTMsIDAuMDEyMTU4LCAwLjAxMjE1OCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMTMwMywgMC4wMTEzNjUsIDAuMDExMzc0LCAwLjAxMTM3OCwgMC4wMTEzOCwgMC4wMTEzODIsIDAuMDExMzgzIiwgXAotICAgICAgICAgICIwLjAxMTI5NywgMC4wMTEzNTgsIDAuMDExMzY3LCAwLjAxMTM3MiwgMC4wMTEzNzQsIDAuMDExMzc1LCAwLjAxMTM3NyIsIFwKLSAgICAgICAgICAiMC4wMTEzOTgsIDAuMDExNDU5LCAwLjAxMTQ2OCwgMC4wMTE0NzQsIDAuMDExNDc1LCAwLjAxMTQ3NywgMC4wMTE0NzgiLCBcCi0gICAgICAgICAgIjAuMDExNTA3LCAwLjAxMTU2OCwgMC4wMTE1NzYsIDAuMDExNTgxLCAwLjAxMTU4NCwgMC4wMTE1ODUsIDAuMDExNTg2IiwgXAotICAgICAgICAgICIwLjAxMTYyOSwgMC4wMTE2OTUsIDAuMDExNzA1LCAwLjAxMTcxLCAwLjAxMTcxMywgMC4wMTE3MTQsIDAuMDExNzE1IiwgXAotICAgICAgICAgICIwLjAxMTg3OCwgMC4wMTE5NDEsIDAuMDExOTU2LCAwLjAxMTk2MSwgMC4wMTE5NjMsIDAuMDExOTY1LCAwLjAxMTk2NiIsIFwKLSAgICAgICAgICAiMC4wMTIxMDMsIDAuMDEyMTQ1LCAwLjAxMjE3MywgMC4wMTIxNTgsIDAuMDEyMTc5LCAwLjAxMjE4MSwgMC4wMTIxODIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE0MDc2LCAwLjAxNDE0LCAwLjAxNDE1LCAwLjAxNDE1NSwgMC4wMTQxNTgsIDAuMDE0MTYsIDAuMDE0MTYxIiwgXAotICAgICAgICAgICIwLjAxNDA3LCAwLjAxNDEzNCwgMC4wMTQxNDMsIDAuMDE0MTQ5LCAwLjAxNDE1MSwgMC4wMTQxNTMsIDAuMDE0MTU0IiwgXAotICAgICAgICAgICIwLjAxNDEyMywgMC4wMTQxODcsIDAuMDE0MTk2LCAwLjAxNDIwMiwgMC4wMTQyMDQsIDAuMDE0MjA2LCAwLjAxNDIwNyIsIFwKLSAgICAgICAgICAiMC4wMTQyMDYsIDAuMDE0MjcsIDAuMDE0MjgsIDAuMDE0Mjg2LCAwLjAxNDI4OCwgMC4wMTQyODksIDAuMDE0MjkiLCBcCi0gICAgICAgICAgIjAuMDE0MzA2LCAwLjAxNDM2OSwgMC4wMTQzNzksIDAuMDE0Mzg0LCAwLjAxNDM4NywgMC4wMTQzODgsIDAuMDE0Mzg5IiwgXAotICAgICAgICAgICIwLjAxNDUzMSwgMC4wMTQ2MDEsIDAuMDE0NjEsIDAuMDE0NjE1LCAwLjAxNDYxOCwgMC4wMTQ2MiwgMC4wMTQ2MjEiLCBcCi0gICAgICAgICAgIjAuMDE0Njg1LCAwLjAxNDc0NywgMC4wMTQ3NTcsIDAuMDE0NzYyLCAwLjAxNDc2NSwgMC4wMTQ3NjYsIDAuMDE0NzY3Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3Bvd2VyKHNjYWxhcikgewotICAgICAgICB2YWx1ZXMoIjAiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEzNzMxLCAwLjAxMzc2MiwgMC4wMTM3NjQsIDAuMDEzNzY1LCAwLjAxMzc2NywgMC4wMTM3NjcsIDAuMDEzNzY2IiwgXAotICAgICAgICAgICIwLjAxMzY5MiwgMC4wMTM3MjIsIDAuMDEzNzI2LCAwLjAxMzcyNywgMC4wMTM3MjksIDAuMDEzNzI5LCAwLjAxMzcyOSIsIFwKLSAgICAgICAgICAiMC4wMTM3MjksIDAuMDEzNzYxLCAwLjAxMzc2NSwgMC4wMTM3NjcsIDAuMDEzNzY4LCAwLjAxMzc2OCwgMC4wMTM3NjgiLCBcCi0gICAgICAgICAgIjAuMDEzODMzLCAwLjAxMzg2NSwgMC4wMTM4NjksIDAuMDEzODcsIDAuMDEzODcxLCAwLjAxMzg3MSwgMC4wMTM4NzIiLCBcCi0gICAgICAgICAgIjAuMDEzOTU0LCAwLjAxMzk4NywgMC4wMTM5OSwgMC4wMTM5OTIsIDAuMDEzOTkzLCAwLjAxMzk5MywgMC4wMTM5OTQiLCBcCi0gICAgICAgICAgIjAuMDE0MjI1LCAwLjAxNDI1MywgMC4wMTQyNTgsIDAuMDE0MjU4LCAwLjAxNDI2MSwgMC4wMTQyNjQsIDAuMDE0MjY0IiwgXAotICAgICAgICAgICIwLjAxNDUsIDAuMDE0NTMyLCAwLjAxNDUzNSwgMC4wMTQ1MzYsIDAuMDE0NTM4LCAwLjAxNDUzOCwgMC4wMTQ1MzgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTA0MjgsIDAuMDEwNDksIDAuMDEwNTAxLCAwLjAxMDUwNSwgMC4wMTA1MDksIDAuMDEwNTExLCAwLjAxMDUxMiIsIFwKLSAgICAgICAgICAiMC4wMTAzNDMsIDAuMDEwNDA3LCAwLjAxMDQxNywgMC4wMTA0MjIsIDAuMDEwNDI1LCAwLjAxMDQyNywgMC4wMTA0MjgiLCBcCi0gICAgICAgICAgIjAuMDEwMzEzLCAwLjAxMDM3OCwgMC4wMTAzODgsIDAuMDEwMzk0LCAwLjAxMDM5NSwgMC4wMTAzOTgsIDAuMDEwMzk5IiwgXAotICAgICAgICAgICIwLjAxMDMyMywgMC4wMTAzODgsIDAuMDEwMzk4LCAwLjAxMDQwNCwgMC4wMTA0MDYsIDAuMDEwNDA4LCAwLjAxMDQwOSIsIFwKLSAgICAgICAgICAiMC4wMTAzNTgsIDAuMDEwNDI0LCAwLjAxMDQzNCwgMC4wMTA0NCwgMC4wMTA0NDMsIDAuMDEwNDQ1LCAwLjAxMDQ0NiIsIFwKLSAgICAgICAgICAiMC4wMTA0NzEsIDAuMDEwNTM0LCAwLjAxMDU0NCwgMC4wMTA1NSwgMC4wMTA1NTMsIDAuMDEwNTU1LCAwLjAxMDU1NiIsIFwKLSAgICAgICAgICAiMC4wMTA1NzgsIDAuMDEwNjM5LCAwLjAxMDY0OSwgMC4wMTA2NTUsIDAuMDEwNjU4LCAwLjAxMDY2LCAwLjAxMDY2MSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUk4pICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYxNjY2MTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MTY2NjE7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjE2NjQ1OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTAwOCwgMC4wMDEwMDYsIDAuMDAxMDc0LCAwLjAwMTE3LCAwLjAwMTI4MiwgMC4wMDE0OTksIDAuMDAxNjg0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzMTQ2LCAwLjAwMzE0OSwgMC4wMDMyMDksIDAuMDAzMzAzLCAwLjAwMzQxOCwgMC4wMDM2NTUsIDAuMDAzODQxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRCZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjEyMDAzLCAwLjEyNzk1OCwgMC4xMzY1MzYsIDAuMTQyOTY1LCAwLjE0ODE3MywgMC4xNTQ4OCwgMC4xNTk5OSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJlY292ZXJ5X3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiRCZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzFfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChyZWNvdmVyeV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNSwgMC4wMzg3NSwgMC4wMjYyNSwgMC4wMiwgMC4wMiwgMC4wMSwgMC4wMDc1IiwgXAotICAgICAgICAgICIwLjA1NSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMTUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4wNjEyNSwgMC4wNTYyNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyNzUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMDY3NSwgMC4wNjI1LCAwLjA1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDMzNzUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMDczNzUsIDAuMDY4NzUsIDAuMDU2MjUsIDAuMDUsIDAuMDQzNzUsIDAuMDQsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMDgzNzUsIDAuMDcyNSwgMC4wNjYyNSwgMC4wNTM3NSwgMC4wNTM3NSwgMC4wNDM3NSwgMC4wNDEyNSIsIFwKLSAgICAgICAgICAiMC4wODYyNSwgMC4wNzUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNTI1LCAwLjA0Mzc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIHRpbWluZ190eXBlIDogcmVjb3ZlcnlfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRCI7Ci0gICAgICBzZGZfY29uZCA6ICJEID09IDEnYjAiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHJlY292ZXJ5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1LCAwLjA1NSwgMC4wNjEyNSwgMC4wNjc1LCAwLjA3Mzc1LCAwLjA4Mzc1LCAwLjA5MjUiLCBcCi0gICAgICAgICAgIjAuMDQ1LCAwLjA1LCAwLjA1NjI1LCAwLjA2MjUsIDAuMDY4NzUsIDAuMDc4NzUsIDAuMDgxMjUiLCBcCi0gICAgICAgICAgIjAuMDM4NzUsIDAuMDQzNzUsIDAuMDUsIDAuMDU2MjUsIDAuMDYyNSwgMC4wNzI1LCAwLjA4MTI1IiwgXAotICAgICAgICAgICIwLjAzODc1LCAwLjA0Mzc1LCAwLjA1LCAwLjA1NjI1LCAwLjA2MjUsIDAuMDcyNSwgMC4wNzUiLCBcCi0gICAgICAgICAgIjAuMDMyNSwgMC4wMzc1LCAwLjA0Mzc1LCAwLjA1LCAwLjA1NjI1LCAwLjA2NjI1LCAwLjA3NSIsIFwKLSAgICAgICAgICAiMC4wMzUsIDAuMDQsIDAuMDQ2MjUsIDAuMDUyNSwgMC4wNTg3NSwgMC4wNjI1LCAwLjA3MTI1IiwgXAotICAgICAgICAgICIwLjAzMjUsIDAuMDM3NSwgMC4wNDM3NSwgMC4wNSwgMC4wNTYyNSwgMC4wNiwgMC4wNjg3NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJlbW92YWxfcmlzaW5nOwotICAgICAgd2hlbiA6ICJEJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMV9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHJlbW92YWxfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAwNjI1LCAtMC4wMDEyNSwgMC4wMDUsIDAuMDExMjUsIDAuMDE3NSwgMC4wMjc1LCAwLjAzIiwgXAotICAgICAgICAgICItMC4wMTc1LCAtMC4wMDYyNSwgMCwgMC4wMDYyNSwgMC4wMTI1LCAwLjAxNjI1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxODc1LCAtMC4wMDYyNSwgMCwgMC4wMDYyNSwgMC4wMSwgMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDI1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMCwgMC4wMDM3NSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIC0wLjAwMjUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA0LCAtMC4wMzUsIC0wLjAyODc1LCAtMC4wMTYyNSwgLTAuMDE2MjUsIC0wLjAwNjI1LCAtMC4wMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTUsIC0wLjAwNjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTTikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxOTQyMDQ7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxOTQyMDQ7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxOTQxNTU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwODQxLCAwLjAwMDg0MSwgMC4wMDA4NDEsIDAuMDAwODQxLCAwLjAwMDg0MSwgMC4wMDA4NCwgMC4wMDA4NCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDg1MSwgMC4wMDA4NDUsIDAuMDAwODQ0LCAwLjAwMDg0NCwgMC4wMDA4NDQsIDAuMDAwODQyLCAwLjAwMDg0MSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQmIVJOIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9STl9FUV8wID09IDEnYjEiOwotICAgICAgZmFsbF9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDgyMjAxLCAwLjA4ODc1NSwgMC4wOTg0MDcsIDAuMTA3MDk2LCAwLjExNDI5NiwgMC4xMjM2MjMsIDAuMTMwNjM4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogcmVjb3ZlcnlfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRCZSTiI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fUk5fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChyZWNvdmVyeV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDYyNSwgLTAuMDA1LCAtMC4wMTEyNSwgLTAuMDIzNzUsIC0wLjAzLCAtMC4wNCwgLTAuMDQyNSIsIFwKLSAgICAgICAgICAiMC4wMTEyNSwgMCwgLTAuMDA2MjUsIC0wLjAxMjUsIC0wLjAyNSwgLTAuMDI4NzUsIC0wLjAzNzUiLCBcCi0gICAgICAgICAgIjAuMDE3NSwgMC4wMTI1LCAwLCAtMC4wMDYyNSwgLTAuMDEyNSwgLTAuMDIyNSwgLTAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMDMsIDAuMDE4NzUsIDAuMDA2MjUsIDAsIC0wLjAwNjI1LCAtMC4wMTYyNSwgLTAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMDM2MjUsIDAuMDI1LCAwLjAxMjUsIDAuMDA2MjUsIDAsIC0wLjAxLCAtMC4wMTI1IiwgXAotICAgICAgICAgICIwLjA0NjI1LCAwLjAzNSwgMC4wMjg3NSwgMC4wMTYyNSwgMC4wMSwgMC4wMDYyNSwgLTAuMDAyNSIsIFwKLSAgICAgICAgICAiMC4wNTUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMjUsIDAuMDE4NzUsIDAuMDE1LCAwLjAwNjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogcmVtb3ZhbF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEJlJOIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9STl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHJlbW92YWxfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDI1LCAwLjAzNjI1LCAwLjA0MjUsIDAuMDQ4NzUsIDAuMDU1LCAwLjA2NSwgMC4wNjc1IiwgXAotICAgICAgICAgICIwLjAyLCAwLjAyNSwgMC4wMzc1LCAwLjA0Mzc1LCAwLjA1LCAwLjA2LCAwLjA2MjUiLCBcCi0gICAgICAgICAgIjAuMDEzNzUsIDAuMDE4NzUsIDAuMDMxMjUsIDAuMDM3NSwgMC4wNDM3NSwgMC4wNDc1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICIwLjAwNzUsIDAuMDEyNSwgMC4wMjUsIDAuMDMxMjUsIDAuMDM3NSwgMC4wNDEyNSwgMC4wNSIsIFwKLSAgICAgICAgICAiMC4wMDEyNSwgMC4wMDYyNSwgMC4wMTg3NSwgMC4wMjUsIDAuMDMxMjUsIDAuMDM1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICItMC4wMDg3NSwgLTAuMDAzNzUsIDAuMDA4NzUsIDAuMDE1LCAwLjAyMTI1LCAwLjAzMTI1LCAwLjAzMzc1IiwgXAotICAgICAgICAgICItMC4wMTc1LCAtMC4wMDYyNSwgMCwgMC4wMDYyNSwgMC4wMTI1LCAwLjAyMjUsIDAuMDI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogREZGU1JYMSAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChERkZTUlgxKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDEuMTE4NTE7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgZmYgKE4zNSxRQklOVCkgewotICAgIG5leHRfc3RhdGUgOiAiRCI7Ci0gICAgY2xvY2tlZF9vbiA6ICJDSyI7Ci0gICAgY2xlYXIgOiAiKCFSTikiOwotICAgIHByZXNldCA6ICIoIVNOKSI7Ci0gICAgY2xlYXJfcHJlc2V0X3ZhcjEgOiBIOwotICAgIGNsZWFyX3ByZXNldF92YXIyIDogTDsKLSAgfQotICBwaW4oQ0spICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYyMTkyNzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MjE5Mjc7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjIxODc7Ci0gICAgY2xvY2sgOiB0cnVlOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNDI1MSwgMC4wMDQyNTMsIDAuMDA0MzEzLCAwLjAwNDQxNywgMC4wMDQ1MjIsIDAuMDA0NzQxLCAwLjAwNDk0MiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwODU4LCAwLjAwODU3NiwgMC4wMDg2NCwgMC4wMDg3NDIsIDAuMDA4ODc4LCAwLjAwOTEzMywgMC4wMDkzNTEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFEJlJOJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9STl9FUV8xX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4xMjUzNjYsIDAuMTMzNDU0LCAwLjE0MjMwMSwgMC4xNDkxNjIsIDAuMTU0NzA1LCAwLjE2MjA2OSwgMC4xNjc0ODMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjA4Mzg0OCwgMC4wOTE4NTYsIDAuMTAwNiwgMC4xMDcwMjQsIDAuMTEyMDQyLCAwLjExODc1MywgMC4xMjM3NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjIwNDY5OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYxOTU3NjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2MjA0Njk7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzNzQyLCAwLjAwMzcxMiwgMC4wMDM3MjcsIDAuMDAzNzcyLCAwLjAwMzg0MSwgMC4wMDM5ODcsIDAuMDA0MTExIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzNjExLCAwLjAwMzU4OCwgMC4wMDM2MDMsIDAuMDAzNjQ0LCAwLjAwMzcwNiwgMC4wMDM4MjUsIDAuMDAzOTU3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlJOJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIlJOX0VRXzFfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMTI1LCAtMC4wMDc1LCAtMC4wMDEyNSwgLTAuMDAxMjUsIC0wLjAwMTI1LCAwLjAwMjUsIDAuMDA1IiwgXAotICAgICAgICAgICItMC4wMTc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgLTAuMDA2MjUsIC0wLjAwNjI1LCAtMC4wMDI1LCAwIiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAxMjUsIC0wLjAxMjUsIC0wLjAwODc1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDg3NSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMjUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxODc1LCAtMC4wMTUsIC0wLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjA0LCAtMC4wMzUsIC0wLjAyODc1LCAtMC4wMjI1LCAtMC4wMjI1LCAtMC4wMTg3NSwgLTAuMDE2MjUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMjEyNSwgLTAuMDE4NzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMjUsIDAuMDIzNzUsIDAuMDMsIDAuMDM2MjUsIDAuMDQyNSwgMC4wNDYyNSwgMC4wNDg3NSIsIFwKLSAgICAgICAgICAiMC4wMDc1LCAwLjAxODc1LCAwLjAyNSwgMC4wMzEyNSwgMC4wMzc1LCAwLjA0MTI1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjAwMTI1LCAwLjAxMjUsIDAuMDE4NzUsIDAuMDI1LCAwLjAzMTI1LCAwLjAzNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4wMDEyNSwgMC4wMDYyNSwgMC4wMTg3NSwgMC4wMjUsIDAuMDMxMjUsIDAuMDM1LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIjAuMDAxMjUsIDAuMDA2MjUsIDAuMDEyNSwgMC4wMTg3NSwgMC4wMjUsIDAuMDM1LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjAwMjUsIDAuMDAyNSwgMC4wMTUsIDAuMDIxMjUsIDAuMDIxMjUsIDAuMDMxMjUsIDAuMDMzNzUiLCBcCi0gICAgICAgICAgIi0wLjAwNSwgMCwgMC4wMTI1LCAwLjAxODc1LCAwLjAyNSwgMC4wMjg3NSwgMC4wMzEyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiUk4mU04iOwotICAgICAgc2RmX2NvbmQgOiAiUk5fRVFfMV9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2MjUsIDAuMDUxMjUsIDAuMDM4NzUsIDAuMDMyNSwgMC4wMzI1LCAwLjAyMjUsIDAuMDIiLCBcCi0gICAgICAgICAgIjAuMDY3NSwgMC4wNTYyNSwgMC4wNSwgMC4wMzc1LCAwLjAzNzUsIDAuMDI3NSwgMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMDczNzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNSwgMC4wNDM3NSwgMC4wMzM3NSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4wOCwgMC4wNjg3NSwgMC4wNTYyNSwgMC4wNSwgMC4wNSwgMC4wNCwgMC4wMzc1IiwgXAotICAgICAgICAgICIwLjA4LCAwLjA3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1LCAwLjA0NjI1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjA5LCAwLjA3ODc1LCAwLjA3MjUsIDAuMDY2MjUsIDAuMDYsIDAuMDUsIDAuMDQ3NSIsIFwKLSAgICAgICAgICAiMC4wOTI1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1ODc1LCAwLjA1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM3NSwgMC4wMjYyNSwgMC4wMiwgMC4wMDc1LCAwLjAwNzUsIC0wLjAwMjUsIC0wLjAxMTI1IiwgXAotICAgICAgICAgICIwLjA0MjUsIDAuMDMxMjUsIDAuMDI1LCAwLjAxODc1LCAwLjAxMjUsIDAuMDAyNSwgMCIsIFwKLSAgICAgICAgICAiMC4wNDg3NSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMTg3NSwgMC4wMDg3NSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiMC4wNTUsIDAuMDQzNzUsIDAuMDMxMjUsIDAuMDI1LCAwLjAxODc1LCAwLjAxNSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiMC4wNTUsIDAuMDUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMjUsIDAuMDE1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMDU4NzUsIDAuMDUzNzUsIDAuMDQxMjUsIDAuMDM1LCAwLjAyODc1LCAwLjAyNSwgMC4wMTYyNSIsIFwKLSAgICAgICAgICAiMC4wNjc1LCAwLjA1NjI1LCAwLjA1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDI3NSwgMC4wMTg3NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjMzNzk4NzsKLSAgICBmdW5jdGlvbiA6ICJOMzUiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5vbl91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcmlzaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwNTQ5OSwgMC4xMjQzMDUsIDAuMjMwMDMzLCAwLjMyMzM3NywgMC40NDc4NTksIDAuNjk2OTM4LCAwLjg1MjM2MiIsIFwKLSAgICAgICAgICAiMC4xMTM0NzYsIDAuMTMyMzA3LCAwLjIzODAxNCwgMC4zMzEzNTksIDAuNDU1ODgsIDAuNzA0ODY3LCAwLjg2MDI3NyIsIFwKLSAgICAgICAgICAiMC4xMjIzNDgsIDAuMTQxMTgxLCAwLjI0NzA1LCAwLjM0MDE4MywgMC40NjQ2MzIsIDAuNzEzNzY1LCAwLjg2OTE5IiwgXAotICAgICAgICAgICIwLjEyOTE5NywgMC4xNDgwMzQsIDAuMjUzNzQzLCAwLjM0NzA4NCwgMC40NzE1ODcsIDAuNzIwNjAzLCAwLjg3NjAyOSIsIFwKLSAgICAgICAgICAiMC4xMzQ1MzgsIDAuMTUzMzA2LCAwLjI1OTA3OSwgMC4zNTI0MjcsIDAuNDc2ODEyLCAwLjcyNjI4NSwgMC44ODE0MzciLCBcCi0gICAgICAgICAgIjAuMTQxODk2LCAwLjE2MDc1NywgMC4yNjY1MTgsIDAuMzU5ODE3LCAwLjQ4NDI5MywgMC43MzM2ODIsIDAuODg4ODU4IiwgXAotICAgICAgICAgICIwLjE0NzMzNCwgMC4xNjYwNTEsIDAuMjcxODE2LCAwLjM2NTIzMiwgMC40ODk2MDMsIDAuNzM4NjY0LCAwLjg5NDkzNiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzM2MjgsIDAuMTEyMDI4LCAwLjMzNDI3NCwgMC41MzI2MjksIDAuNzk2NTQxLCAxLjMyMzE4LCAxLjY1MTUzIiwgXAotICAgICAgICAgICIwLjA3MzY3OSwgMC4xMTE5NDMsIDAuMzM0MTg4LCAwLjUzMjYzNywgMC43OTY1MjYsIDEuMzIxOTUsIDEuNjUwOTEiLCBcCi0gICAgICAgICAgIjAuMDczNjM4LCAwLjExMTk0NywgMC4zMzQxMzUsIDAuNTMxNzE3LCAwLjc5NTI5OCwgMS4zMjIwMywgMS42NTE4OCIsIFwKLSAgICAgICAgICAiMC4wNzM2NTgsIDAuMTExOTI2LCAwLjMzNDE3LCAwLjUzMjY1NiwgMC43OTY1ODQsIDEuMzIxODYsIDEuNjUwMTEiLCBcCi0gICAgICAgICAgIjAuMDczNjYzLCAwLjExMTk1NSwgMC4zMzQyMDcsIDAuNTMyNjQxLCAwLjc5NTc1OSwgMS4zMjQ0NiwgMS42NTIwNSIsIFwKLSAgICAgICAgICAiMC4wNzM3MDEsIDAuMTExOTQxLCAwLjMzNDE5NCwgMC41MzI2MSwgMC43OTY0NjIsIDEuMzI0MzcsIDEuNjUyMyIsIFwKLSAgICAgICAgICAiMC4wNzQwMjMsIDAuMTExOTcxLCAwLjMzNDI2NCwgMC41MzI0ODEsIDAuNzk1NDQ3LCAxLjMyMjY0LCAxLjY1NDM2Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExNjc3OCwgMC4xMzQ5ODQsIDAuMjM3NjI4LCAwLjMyODUzNywgMC40NDg5MDcsIDAuNjkwMTY4LCAwLjg0MTcxMyIsIFwKLSAgICAgICAgICAiMC4xMjQ4NjQsIDAuMTQzMTE2LCAwLjI0NTkyMywgMC4zMzY1MTEsIDAuNDU3MDEzLCAwLjY5ODQ5NywgMC44NDkwNTQiLCBcCi0gICAgICAgICAgIjAuMTMzNzAzLCAwLjE1MTk5NSwgMC4yNTQ4MTEsIDAuMzQ1MzI3LCAwLjQ2NTg2LCAwLjcwNzA0OCwgMC44NTc4ODciLCBcCi0gICAgICAgICAgIjAuMTQwNTc1LCAwLjE1ODc4LCAwLjI2MTY5OSwgMC4zNTIyNDcsIDAuNDcyNjc0LCAwLjcxMzk1NiwgMC44NjQ3NjIiLCBcCi0gICAgICAgICAgIjAuMTQ2MDkyLCAwLjE2NDMyLCAwLjI2Njk2OCwgMC4zNTc2MjIsIDAuNDc4MjI5LCAwLjcxOTc2NywgMC44NzAzMTQiLCBcCi0gICAgICAgICAgIjAuMTUzNDYsIDAuMTcxODA0LCAwLjI3NDM3NywgMC4zNjUxMTgsIDAuNDg2MTY0LCAwLjcyNjg2OCwgMC44Nzc3OTUiLCBcCi0gICAgICAgICAgIjAuMTU4ODkxLCAwLjE3NzExOSwgMC4yNzk3OTcsIDAuMzcwNTc0LCAwLjQ5MTIzNCwgMC43MzI0MDQsIDAuODgzMjM0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2OTcxLCAwLjEwNjM0OSwgMC4zMTYwMTcsIDAuNTAyMDEsIDAuNzUwNTUzLCAxLjI0NDQzLCAxLjU2IiwgXAotICAgICAgICAgICIwLjA2OTcyNCwgMC4xMDU4MjYsIDAuMzE1ODA2LCAwLjUwMjAzNSwgMC43NTA2NDcsIDEuMjQ4ODIsIDEuNTU4OTQiLCBcCi0gICAgICAgICAgIjAuMDcwMjM2LCAwLjEwNTg0LCAwLjMxNTU4NSwgMC41MDIwNjYsIDAuNzUwNjczLCAxLjI0NjI5LCAxLjU1NzE2IiwgXAotICAgICAgICAgICIwLjA2OTcxMiwgMC4xMDYzNTQsIDAuMzE1NjA1LCAwLjUwMjAwNSwgMC43NDk1NjksIDEuMjQ4MjUsIDEuNTU3MzkiLCBcCi0gICAgICAgICAgIjAuMDY5NzE1LCAwLjEwNjI3NywgMC4zMTYwMTgsIDAuNTAyMjgsIDAuNzQ5Mzk1LCAxLjI0ODg0LCAxLjU1ODQ2IiwgXAotICAgICAgICAgICIwLjA3MDM5NiwgMC4xMDU5OTksIDAuMzE1NTg4LCAwLjUwMTk2OSwgMC43NTA0NjEsIDEuMjQ3MzksIDEuNTU3NTgiLCBcCi0gICAgICAgICAgIjAuMDcwMzc4LCAwLjEwNTY5NSwgMC4zMTYwMzUsIDAuNTAyMDM2LCAwLjc1MDc1MywgMS4yNDczNiwgMS41NTgyNyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogY2xlYXI7Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEzODYyOCwgMC4xNTY4NTcsIDAuMjU5NTM5LCAwLjM1MDA5NSwgMC40NzA0MjMsIDAuNzEyNTE1LCAwLjg2MzI5MSIsIFwKLSAgICAgICAgICAiMC4xNDYzOTEsIDAuMTY0NjE2LCAwLjI2NzMxNCwgMC4zNTc3NzYsIDAuNDc4MTc5LCAwLjcyMDA5NiwgMC44NzA0MzEiLCBcCi0gICAgICAgICAgIjAuMTU0MjUzLCAwLjE3MjUwMiwgMC4yNzUxODQsIDAuMzY1NTQ0LCAwLjQ4NjA4LCAwLjcyODE3LCAwLjg3ODExMSIsIFwKLSAgICAgICAgICAiMC4xNTk5NjcsIDAuMTc4MjAxLCAwLjI4MDg4OCwgMC4zNzEyNTEsIDAuNDkxNzkyLCAwLjczMzg4NSwgMC44ODM4MDgiLCBcCi0gICAgICAgICAgIjAuMTY0NTM5LCAwLjE4Mjc5NSwgMC4yODUyODQsIDAuMzc1ODIyLCAwLjQ5Njg2NywgMC43MzgzOTEsIDAuODg4OTgyIiwgXAotICAgICAgICAgICIwLjE3MDU2NSwgMC4xODg4LCAwLjI5MTQwOCwgMC4zODE5NzUsIDAuNTAyMzQ3LCAwLjc0Mzk2NSwgMC44OTQ0OTciLCBcCi0gICAgICAgICAgIjAuMTc1MDU1LCAwLjE5MzMxOCwgMC4yOTU5LCAwLjM4NjY3NCwgMC41MDY4MjQsIDAuNzQ4ODk4LCAwLjg5ODk1NSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzAxNjksIDAuMTA2NDU3LCAwLjMxNTc5NSwgMC41MDIzNDQsIDAuNzUxMTI5LCAxLjI0OTEzLCAxLjU2MDI0IiwgXAotICAgICAgICAgICIwLjA3MDQwMSwgMC4xMDY0NTIsIDAuMzE1ODQ1LCAwLjUwMjM0OSwgMC43NTA3NzgsIDEuMjQ5MDEsIDEuNTU4MjIiLCBcCi0gICAgICAgICAgIjAuMDcwMTc3LCAwLjEwNjQ1NSwgMC4zMTU3NjUsIDAuNTAyMzIxLCAwLjc1MDg2NSwgMS4yNDc0NCwgMS41NTk3MiIsIFwKLSAgICAgICAgICAiMC4wNzAxODEsIDAuMTA2NDQyLCAwLjMxNTc2NywgMC41MDIzNDQsIDAuNzUxMDg5LCAxLjI0OTExLCAxLjU1OTAzIiwgXAotICAgICAgICAgICIwLjA3MDE0NSwgMC4xMDY1MTEsIDAuMzE1ODg4LCAwLjUwMjM0MiwgMC43NTEyNDcsIDEuMjQ4NjcsIDEuNTU5OTUiLCBcCi0gICAgICAgICAgIjAuMDcwNDQxLCAwLjEwNjMzMywgMC4zMTU4NDgsIDAuNTAyMjkyLCAwLjc0OTUyNywgMS4yNDkwOSwgMS41NTk4OCIsIFwKLSAgICAgICAgICAiMC4wNzA1MTUsIDAuMTA2NTM4LCAwLjMxNjAzMSwgMC41MDIxMDEsIDAuNzUwODUyLCAxLjI0NzAzLCAxLjU1NjUzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiBwcmVzZXQ7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwMzEyNCwgMC4xMjE5MDQsIDAuMjI3Nzk3LCAwLjMyMTAxMSwgMC40NDU0MzEsIDAuNjk0Mjc5LCAwLjg0OTkxOCIsIFwKLSAgICAgICAgICAiMC4xMTEwMjEsIDAuMTI5ODQsIDAuMjM1NjY5LCAwLjMyODg4NywgMC40NTMzMDIsIDAuNzAyMTUxLCAwLjg1NzY2NCIsIFwKLSAgICAgICAgICAiMC4xMjA5MDMsIDAuMTM5NjcxLCAwLjI0NTU3NCwgMC4zMzg3NTYsIDAuNDYzMTcxLCAwLjcxMjE3MSwgMC44Njc1NjIiLCBcCi0gICAgICAgICAgIjAuMTI5ODAxLCAwLjE0ODYxNiwgMC4yNTQ0NDEsIDAuMzQ3NjUzLCAwLjQ3MjA5OCwgMC43MjA5NDIsIDAuODc2NDY0IiwgXAotICAgICAgICAgICIwLjEzNzY4NSwgMC4xNTY1MDIsIDAuMjYyMzI3LCAwLjM1NTUzMywgMC40Nzk5NTksIDAuNzI4ODA3LCAwLjg4NDM1MiIsIFwKLSAgICAgICAgICAiMC4xNDc2MzksIDAuMTY2NDQyLCAwLjI3MjI2NywgMC4zNjU1MzEsIDAuNDg5OTE4LCAwLjczODc2NywgMC44OTQzMTQiLCBcCi0gICAgICAgICAgIjAuMTU1MDk5LCAwLjE3MzgyOSwgMC4yNzk3ODYsIDAuMzczMDAxLCAwLjQ5NzM4MSwgMC43NDYzNiwgMC45MDE4MDUiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDczMjM5LCAwLjExMTc2OSwgMC4zMzQ3NzYsIDAuNTMyNjQyLCAwLjc5NjU5OCwgMS4zMjQ2MywgMS42NTQ1OSIsIFwKLSAgICAgICAgICAiMC4wNzMzMywgMC4xMTE3MzIsIDAuMzM0NzI0LCAwLjUzMjY0NiwgMC43OTY2MDIsIDEuMzI0NjIsIDEuNjUxNDIiLCBcCi0gICAgICAgICAgIjAuMDczMjI0LCAwLjExMTc3OSwgMC4zMzQ3NzMsIDAuNTMyNjQ3LCAwLjc5NjYxLCAxLjMyNDYyLCAxLjY1NDQzIiwgXAotICAgICAgICAgICIwLjA3MzMzMSwgMC4xMTE4MSwgMC4zMzQ3NzEsIDAuNTMyNjQ4LCAwLjc5NTMzMywgMS4zMjQ2MSwgMS42NTE0OSIsIFwKLSAgICAgICAgICAiMC4wNzMzNTgsIDAuMTExODE2LCAwLjMzNDc4NywgMC41MzI2NTgsIDAuNzk2NjA2LCAxLjMyMjg0LCAxLjY1NDY2IiwgXAotICAgICAgICAgICIwLjA3MzQ5OCwgMC4xMTE4NjUsIDAuMzM0NzcxLCAwLjUzMjYwMywgMC43OTY1MzYsIDEuMzI0NSwgMS42NTMwNSIsIFwKLSAgICAgICAgICAiMC4wNzM3NjksIDAuMTExODUsIDAuMzM0NzExLCAwLjUzMjU5NywgMC43OTY1MiwgMS4zMjQ0OSwgMS42NTQ0MiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMjc1ODIsIDAuMTQ1ODMzLCAwLjI0ODY1MiwgMC4zMzg5OCwgMC40NTk2MDMsIDAuNzAwODA3LCAwLjg1MjM4OCIsIFwKLSAgICAgICAgICAiMC4xMzQzOCwgMC4xNTI2NSwgMC4yNTU0NjQsIDAuMzQ1ODg5LCAwLjQ2NjQ3NSwgMC43MDg1OTksIDAuODU4NTgxIiwgXAotICAgICAgICAgICIwLjE0MTk4MywgMC4xNjAyMzUsIDAuMjYzMDUyLCAwLjM1MzQ3NywgMC40NzQwNjMsIDAuNzE2MTg3LCAwLjg2NjEyOCIsIFwKLSAgICAgICAgICAiMC4xNDkyNzIsIDAuMTY3NTI0LCAwLjI3MDMzNywgMC4zNjEwMjQsIDAuNDgxMzE1LCAwLjcyMzQzOCwgMC44NzQ0MzMiLCBcCi0gICAgICAgICAgIjAuMTU2MTUzLCAwLjE3NDM3MSwgMC4yNzY5ODYsIDAuMzY3NTU2LCAwLjQ4ODE5OCwgMC43Mjk4NzUsIDAuODgxMTIzIiwgXAotICAgICAgICAgICIwLjE2NTk1OSwgMC4xODQxNzYsIDAuMjg3MDM3LCAwLjM3NzU3NSwgMC40OTgwOTMsIDAuNzM5MzYzLCAwLjg5MDIyMyIsIFwKLSAgICAgICAgICAiMC4xNzM1ODEsIDAuMTkxODk4LCAwLjI5NDQ5OSwgMC4zODUyMTgsIDAuNTA1ODI4LCAwLjc0NzAxLCAwLjg5Nzg3OSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzA0NjgsIDAuMTA2NDU1LCAwLjMxNTgxOCwgMC41MDIzMywgMC43NTExOTUsIDEuMjQ2MzEsIDEuNTYwMDUiLCBcCi0gICAgICAgICAgIjAuMDcwMjQ4LCAwLjEwNjQzNSwgMC4zMTU3MTMsIDAuNTAyMzMzLCAwLjc1MTAzMSwgMS4yNDg4NCwgMS41NTk3OSIsIFwKLSAgICAgICAgICAiMC4wNzA0NDMsIDAuMTA2NDIyLCAwLjMxNjA2NywgMC41MDIzMzMsIDAuNzUxMDM3LCAxLjI0NjMxLCAxLjU1OTczIiwgXAotICAgICAgICAgICIwLjA3MDEwNiwgMC4xMDY0MzUsIDAuMzE1NzY0LCAwLjUwMjMyOCwgMC43NTEwOCwgMS4yNDg3LCAxLjU1ODEiLCBcCi0gICAgICAgICAgIjAuMDcwNDQ4LCAwLjEwNjM1NSwgMC4zMTU2NjYsIDAuNTAyMzMxLCAwLjc1MTA5LCAxLjI0ODc1LCAxLjU1OTg2IiwgXAotICAgICAgICAgICIwLjA3MDM0LCAwLjEwNjQ4NCwgMC4zMTU1NzgsIDAuNTAyMDYsIDAuNzUwOTQ5LCAxLjI0NzY4LCAxLjU1NzE1IiwgXAotICAgICAgICAgICIwLjA3MDYwNSwgMC4xMDY2MTIsIDAuMzE2MDAyLCAwLjUwMjIyMywgMC43NTEzODEsIDEuMjQ3NjYsIDEuNTU5ODciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1NzksIDAuMDA1Nzk4LCAwLjAwNTgxLCAwLjAwNTgxMiwgMC4wMDU4MTQsIDAuMDA1ODE1LCAwLjAwNTgxNSIsIFwKLSAgICAgICAgICAiMC4wMDU3ODMsIDAuMDA1NzkxLCAwLjAwNTgwMywgMC4wMDU4MDYsIDAuMDA1ODA3LCAwLjAwNTgwOCwgMC4wMDU4MDkiLCBcCi0gICAgICAgICAgIjAuMDA1ODIyLCAwLjAwNTgzMSwgMC4wMDU4NDIsIDAuMDA1ODQ1LCAwLjAwNTg0NSwgMC4wMDU4NDgsIDAuMDA1ODQ3IiwgXAotICAgICAgICAgICIwLjAwNTg3LCAwLjAwNTg3OSwgMC4wMDU4OTEsIDAuMDA1ODkzLCAwLjAwNTg5NSwgMC4wMDU4OTYsIDAuMDA1ODk3IiwgXAotICAgICAgICAgICIwLjAwNTkzNSwgMC4wMDU5NDMsIDAuMDA1OTU1LCAwLjAwNTk1OCwgMC4wMDU5NiwgMC4wMDU5NjEsIDAuMDA1OTYxIiwgXAotICAgICAgICAgICIwLjAwNjA1MSwgMC4wMDYwNTksIDAuMDA2MDYzLCAwLjAwNjA2NiwgMC4wMDYwNzQsIDAuMDA2MDY4LCAwLjAwNjA2OCIsIFwKLSAgICAgICAgICAiMC4wMDYxMywgMC4wMDYxNTEsIDAuMDA2MTY0LCAwLjAwNjE1MiwgMC4wMDYxNTMsIDAuMDA2MTU0LCAwLjAwNjE1NSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNTU0NywgMC4wMDU1NTUsIDAuMDA1NTY3LCAwLjAwNTU2OCwgMC4wMDU1NzEsIDAuMDA1NTc1LCAwLjAwNTU3MyIsIFwKLSAgICAgICAgICAiMC4wMDU1NDgsIDAuMDA1NTU2LCAwLjAwNTU2OCwgMC4wMDU1NywgMC4wMDU1NzIsIDAuMDA1NTcxLCAwLjAwNTU3MSIsIFwKLSAgICAgICAgICAiMC4wMDU1OTYsIDAuMDA1NjA0LCAwLjAwNTYxNiwgMC4wMDU2MTksIDAuMDA1NjIsIDAuMDA1NjIxLCAwLjAwNTYyNCIsIFwKLSAgICAgICAgICAiMC4wMDU2NDgsIDAuMDA1NjU2LCAwLjAwNTY2OCwgMC4wMDU2NywgMC4wMDU2NzEsIDAuMDA1NjcyLCAwLjAwNTY3IiwgXAotICAgICAgICAgICIwLjAwNTcxOCwgMC4wMDU3MjYsIDAuMDA1NzM4LCAwLjAwNTc0LCAwLjAwNTc0MiwgMC4wMDU3NDEsIDAuMDA1NzQxIiwgXAotICAgICAgICAgICIwLjAwNTgzOCwgMC4wMDU4MzgsIDAuMDA1ODU4LCAwLjAwNTg1MSwgMC4wMDU4NTMsIDAuMDA1ODYzLCAwLjAwNTg2NCIsIFwKLSAgICAgICAgICAiMC4wMDU5MzcsIDAuMDA1OTQ1LCAwLjAwNTk1NSwgMC4wMDU5NTcsIDAuMDA1OTQ5LCAwLjAwNTk2LCAwLjAwNTk1MSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDY0NTcsIDAuMDA2NDYyLCAwLjAwNjQ1NCwgMC4wMDY0NDgsIDAuMDA2NDQzLCAwLjAwNjQzOCwgMC4wMDY0MzciLCBcCi0gICAgICAgICAgIjAuMDA2NDU4LCAwLjAwNjQ2MywgMC4wMDY0NTUsIDAuMDA2NDQ5LCAwLjAwNjQ0NCwgMC4wMDY0NCwgMC4wMDY0MzgiLCBcCi0gICAgICAgICAgIjAuMDA2NDg5LCAwLjAwNjQ5NCwgMC4wMDY0ODYsIDAuMDA2NDgsIDAuMDA2NDc0LCAwLjAwNjQ2OSwgMC4wMDY0NjciLCBcCi0gICAgICAgICAgIjAuMDA2NTM1LCAwLjAwNjUzOSwgMC4wMDY1MzEsIDAuMDA2NTI1LCAwLjAwNjUxOCwgMC4wMDY1MTMsIDAuMDA2NTExIiwgXAotICAgICAgICAgICIwLjAwNjU5LCAwLjAwNjU5NSwgMC4wMDY1ODcsIDAuMDA2NTgsIDAuMDA2NTc0LCAwLjAwNjU2OCwgMC4wMDY1NjYiLCBcCi0gICAgICAgICAgIjAuMDA2NjkyLCAwLjAwNjY5OCwgMC4wMDY2OTEsIDAuMDA2NjgzLCAwLjAwNjY3NywgMC4wMDY2NzIsIDAuMDA2NjciLCBcCi0gICAgICAgICAgIjAuMDA2NzgyLCAwLjAwNjc4NiwgMC4wMDY3NzcsIDAuMDA2NzY4LCAwLjAwNjc2MiwgMC4wMDY3NTcsIDAuMDA2NzUzIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3Bvd2VyKHNjYWxhcikgewotICAgICAgICB2YWx1ZXMoIjAiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2NzE2LCAwLjAwNjcyNSwgMC4wMDY3MzcsIDAuMDA2NzM5LCAwLjAwNjc0LCAwLjAwNjc0MSwgMC4wMDY3NDEiLCBcCi0gICAgICAgICAgIjAuMDA2NzAyLCAwLjAwNjcxLCAwLjAwNjcyMSwgMC4wMDY3MjUsIDAuMDA2NzI2LCAwLjAwNjcyNywgMC4wMDY3MjciLCBcCi0gICAgICAgICAgIjAuMDA2NzIxLCAwLjAwNjcyOSwgMC4wMDY3NDEsIDAuMDA2NzQzLCAwLjAwNjc0NCwgMC4wMDY3NDUsIDAuMDA2NzQ2IiwgXAotICAgICAgICAgICIwLjAwNjc1NywgMC4wMDY3NjYsIDAuMDA2Nzc5LCAwLjAwNjc4MSwgMC4wMDY3ODIsIDAuMDA2NzgzLCAwLjAwNjc4NCIsIFwKLSAgICAgICAgICAiMC4wMDY4MSwgMC4wMDY4MTksIDAuMDA2ODMxLCAwLjAwNjgzMywgMC4wMDY4MzUsIDAuMDA2ODM2LCAwLjAwNjgzNyIsIFwKLSAgICAgICAgICAiMC4wMDY5MTcsIDAuMDA2OTI3LCAwLjAwNjkzOCwgMC4wMDY5NDIsIDAuMDA2OTQzLCAwLjAwNjk0NCwgMC4wMDY5NDUiLCBcCi0gICAgICAgICAgIjAuMDA3MDMyLCAwLjAwNzA0LCAwLjAwNzA1MiwgMC4wMDcwNTUsIDAuMDA3MDU3LCAwLjAwNzA1NywgMC4wMDcwNTgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQ4NjksIDAuMDA0ODc3LCAwLjAwNDg4OSwgMC4wMDQ4OTIsIDAuMDA0ODkzLCAwLjAwNDg5NCwgMC4wMDQ4OTciLCBcCi0gICAgICAgICAgIjAuMDA0ODQxLCAwLjAwNDg0OCwgMC4wMDQ4NiwgMC4wMDQ4NjIsIDAuMDA0ODY0LCAwLjAwNDg2NSwgMC4wMDQ4NjUiLCBcCi0gICAgICAgICAgIjAuMDA0ODI5LCAwLjAwNDgzNywgMC4wMDQ4NDksIDAuMDA0ODUxLCAwLjAwNDg1MywgMC4wMDQ4NTQsIDAuMDA0ODU0IiwgXAotICAgICAgICAgICIwLjAwNDgzMSwgMC4wMDQ4NCwgMC4wMDQ4NTIsIDAuMDA0ODU0LCAwLjAwNDg1NywgMC4wMDQ4NTcsIDAuMDA0ODU3IiwgXAotICAgICAgICAgICIwLjAwNDg0NywgMC4wMDQ4NTUsIDAuMDA0ODY4LCAwLjAwNDg3LCAwLjAwNDg3NCwgMC4wMDQ4NzMsIDAuMDA0ODc1IiwgXAotICAgICAgICAgICIwLjAwNDg4OCwgMC4wMDQ4OTcsIDAuMDA0OTEsIDAuMDA0OTEzLCAwLjAwNDkxNSwgMC4wMDQ5MTUsIDAuMDA0OTE2IiwgXAotICAgICAgICAgICIwLjAwNDkzNSwgMC4wMDQ5NDIsIDAuMDA0OTU2LCAwLjAwNDk1OCwgMC4wMDQ5NTksIDAuMDA0OTYxLCAwLjAwNDk2MSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUU4pICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4zNDAwNzM7Ci0gICAgZnVuY3Rpb24gOiAiUUJJTlQiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5vbl91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcmlzaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEyNTM2NiwgMC4xNDM5NDcsIDAuMjQ5MzUzLCAwLjM0MjQ3NSwgMC40NjY1MjYsIDAuNzE0NTM2LCAwLjg2OTc5NyIsIFwKLSAgICAgICAgICAiMC4xMzM0NTQsIDAuMTUyMDQsIDAuMjU3NDczLCAwLjM1MDUzNSwgMC40NzQ2MDksIDAuNzIyNjA1LCAwLjg3Nzg2MiIsIFwKLSAgICAgICAgICAiMC4xNDIzMDEsIDAuMTYwOTAxLCAwLjI2NjM0NiwgMC4zNTkzNzcsIDAuNDgzNDU3LCAwLjczMTYzOCwgMC44ODY3MzUiLCBcCi0gICAgICAgICAgIjAuMTQ5MTYyLCAwLjE2Nzc0MywgMC4yNzMyMTMsIDAuMzY2MjM5LCAwLjQ5MDMyOSwgMC43Mzg1MDcsIDAuODkzNDQ1IiwgXAotICAgICAgICAgICIwLjE1NDcwNSwgMC4xNzMyOTMsIDAuMjc4NywgMC4zNzE3NDgsIDAuNDk1ODc2LCAwLjc0Mzg4NiwgMC44OTkxMTYiLCBcCi0gICAgICAgICAgIjAuMTYyMDY5LCAwLjE4MDY5MiwgMC4yODYwOTUsIDAuMzc5MTY0LCAwLjUwMzM1OSwgMC43NTEzNjYsIDAuOTA2NTA0IiwgXAotICAgICAgICAgICIwLjE2NzQ4MywgMC4xODYwODUsIDAuMjkxNTE0LCAwLjM4NDU3OSwgMC41MDg3ODIsIDAuNzU2NzU3LCAwLjkxMjAzOSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzA1MDYsIDAuMTA5MzE5LCAwLjMzMTI5LCAwLjUyNzkyOCwgMC43ODg0ODQsIDEuMzA4ODQsIDEuNjM5MDQiLCBcCi0gICAgICAgICAgIjAuMDcwNTA4LCAwLjEwOTM4NCwgMC4zMzExMzYsIDAuNTI3ODMyLCAwLjc4ODQzOSwgMS4zMTE1NiwgMS42MzU2MSIsIFwKLSAgICAgICAgICAiMC4wNzA1MzcsIDAuMTA5NDU2LCAwLjMzMTY0NiwgMC41Mjc3NzgsIDAuNzg4NDE5LCAxLjMxMDIyLCAxLjYzNjU4IiwgXAotICAgICAgICAgICIwLjA3MDQ5OCwgMC4xMDkzMTgsIDAuMzMxNjUyLCAwLjUyNzg2MywgMC43ODc1NDgsIDEuMzA5MzEsIDEuNjM1NTYiLCBcCi0gICAgICAgICAgIjAuMDcwNDU4LCAwLjEwOTMxOCwgMC4zMzEyODcsIDAuNTI3NDgxLCAwLjc4NzUzLCAxLjMxMTYyLCAxLjYzNTM5IiwgXAotICAgICAgICAgICIwLjA3MDQ5OCwgMC4xMDkzNzgsIDAuMzMxMDk3LCAwLjUyNzc0MSwgMC43ODgwNDQsIDEuMzEwNTUsIDEuNjM2NjYiLCBcCi0gICAgICAgICAgIjAuMDcwNTI0LCAwLjEwOTM5NywgMC4zMzEzMDgsIDAuNTI3ODQxLCAwLjc4ODI5NywgMS4zMTA3NiwgMS42MzYzNyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTM5NTcsIDAuMTMyMDQ1LCAwLjIzNDU2MiwgMC4zMjUwMjEsIDAuNDQ1NjE2LCAwLjY4Njg1NSwgMC44Mzc2MzciLCBcCi0gICAgICAgICAgIjAuMTIxOTU5LCAwLjE0MDA1MSwgMC4yNDI1NjUsIDAuMzMzMDIzLCAwLjQ1MzYzNSwgMC42OTQ4NiwgMC44NDU2NTIiLCBcCi0gICAgICAgICAgIjAuMTMwODMzLCAwLjE0ODkyMSwgMC4yNTE0NSwgMC4zNDE4NjksIDAuNDYyNTA0LCAwLjcwMzczLCAwLjg1NDUxNyIsIFwKLSAgICAgICAgICAiMC4xMzc2ODEsIDAuMTU1Nzc0LCAwLjI1ODI4OCwgMC4zNDg3NDQsIDAuNDY5MzQ4LCAwLjcxMDU4MSwgMC44NjEzNjgiLCBcCi0gICAgICAgICAgIjAuMTQzMDQ3LCAwLjE2MTEzNywgMC4yNjM2NiwgMC4zNTQxMTksIDAuNDc0NzM0LCAwLjcxNTkzOSwgMC44NjY3MjgiLCBcCi0gICAgICAgICAgIjAuMTUwMzg1LCAwLjE2ODQ3MiwgMC4yNzEwMywgMC4zNjE0OTUsIDAuNDgyMDQxLCAwLjcyMzMxOCwgMC44NzQwOTciLCBcCi0gICAgICAgICAgIjAuMTU1ODI2LCAwLjE3MzgzNCwgMC4yNzYzNTUsIDAuMzY2OTAzLCAwLjQ4NzQ5MywgMC43Mjg3MjcsIDAuODc5NTMxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2NzE2MywgMC4xMDQxLCAwLjMxNDc3MSwgMC41MDE2MjgsIDAuNzUwMTEyLCAxLjI0NjkxLCAxLjU1NjU3IiwgXAotICAgICAgICAgICIwLjA2NzE2NywgMC4xMDQwNzYsIDAuMzE0NTY4LCAwLjUwMTYzLCAwLjc1MDIyMSwgMS4yNDU5MiwgMS41NTM3MyIsIFwKLSAgICAgICAgICAiMC4wNjcxNDYsIDAuMTA0MDU4LCAwLjMxNDc2LCAwLjUwMTE1OSwgMC43NDk0NDIsIDEuMjQ1ODgsIDEuNTU2MzgiLCBcCi0gICAgICAgICAgIjAuMDY3MTY1LCAwLjEwNDA3NiwgMC4zMTQ1NTYsIDAuNTAxNjM1LCAwLjc1MDE2MSwgMS4yNDU5LCAxLjU1MzY1IiwgXAotICAgICAgICAgICIwLjA2NzE1OSwgMC4xMDQwNjMsIDAuMzE0NTc4LCAwLjUwMTYzNCwgMC43NDkzNTIsIDEuMjQ3MjEsIDEuNTU2NjYiLCBcCi0gICAgICAgICAgIjAuMDY3MTk5LCAwLjEwNDA2MSwgMC4zMTQ4NDIsIDAuNTAxNTYsIDAuNzUwMDczLCAxLjI0NzA2LCAxLjU1NjQ1IiwgXAotICAgICAgICAgICIwLjA2NzIzMSwgMC4xMDQwNDgsIDAuMzE0ODQxLCAwLjUwMTUzOSwgMC43NDk0MDksIDEuMjQ1OTUsIDEuNTU3ODEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUk4iOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHByZXNldDsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTQ3MjM3LCAwLjE2NTgzMSwgMC4yNzEyNjksIDAuMzY0MzI4LCAwLjQ4ODQxMiwgMC43MzY2NTQsIDAuODkxNjg2IiwgXAotICAgICAgICAgICIwLjE1NTAwOSwgMC4xNzM2MDYsIDAuMjc5MDQ5LCAwLjM3MjEzNSwgMC40OTYxOTMsIDAuNzQ0MzU1LCAwLjg5OTQ2NiIsIFwKLSAgICAgICAgICAiMC4xNjI4NTUsIDAuMTgxNDU2LCAwLjI4Njg4OSwgMC4zNzk5MjcsIDAuNTA0MDIxLCAwLjc1MjI4MiwgMC45MDcyODIiLCBcCi0gICAgICAgICAgIjAuMTY4NjA0LCAwLjE4NzE4OCwgMC4yOTI2MjEsIDAuMzg1NjU5LCAwLjUwOTc0OSwgMC43NTgwMjUsIDAuOTEzMDIiLCBcCi0gICAgICAgICAgIjAuMTczMjA0LCAwLjE5MTc5NiwgMC4yOTcyNCwgMC4zOTAyODIsIDAuNTE0NDI3LCAwLjc2MjU0NSwgMC45MTc0OTMiLCBcCi0gICAgICAgICAgIjAuMTc4OTg0LCAwLjE5NzU3NywgMC4zMDI5ODksIDAuMzk2MDU0LCAwLjUyMDE0NywgMC43NjgxNjksIDAuOTIzNDIyIiwgXAotICAgICAgICAgICIwLjE4MzcwMywgMC4yMDIyOTUsIDAuMzA3NzE2LCAwLjQwMDgzMiwgMC41MjQ4NzYsIDAuNzczMDY5LCAwLjkyODEzMyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzA1NTIsIDAuMTA5NTMzLCAwLjMzMTc1OCwgMC41Mjc4ODEsIDAuNzg5MjY3LCAxLjMxMjI1LCAxLjYzOTE2IiwgXAotICAgICAgICAgICIwLjA3MDUzNCwgMC4xMDk1MzUsIDAuMzMxNzcxLCAwLjUyNzI0NSwgMC43ODg0MTEsIDEuMzEyMjIsIDEuNjM2NDMiLCBcCi0gICAgICAgICAgIjAuMDcwNTU4LCAwLjEwOTUzNCwgMC4zMzE3NTYsIDAuNTI3MjQsIDAuNzg4MzEsIDEuMzEwMDgsIDEuNjM4NzgiLCBcCi0gICAgICAgICAgIjAuMDcwNTM2LCAwLjEwOTUyOSwgMC4zMzE3NTgsIDAuNTI3MjM2LCAwLjc4ODkxOSwgMS4zMTIxNCwgMS42MzY0NCIsIFwKLSAgICAgICAgICAiMC4wNzA1MzYsIDAuMTA5NTE1LCAwLjMzMTc1MSwgMC41MjcyODIsIDAuNzg5MzU1LCAxLjMxMjI5LCAxLjYzOTEzIiwgXAotICAgICAgICAgICIwLjA3MDU2MSwgMC4xMDk1MTUsIDAuMzMxNzE4LCAwLjUyNzg1OCwgMC43ODgxNjIsIDEuMzEyMjEsIDEuNjM4OTgiLCBcCi0gICAgICAgICAgIjAuMDcwNTQyLCAwLjEwOTU2NiwgMC4zMzE3MSwgMC41Mjc4MjcsIDAuNzg5MTc0LCAxLjMxMDMsIDEuNjM2NzQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiU04iOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGNsZWFyOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMzYxNywgMC4xNTQ3NjcsIDAuMjYwMjA4LCAwLjM1MzI4MiwgMC40NzczNiwgMC43MjUyNiwgMC44ODA1NTMiLCBcCi0gICAgICAgICAgIjAuMTQzLCAwLjE2MTU5LCAwLjI2NzAyNSwgMC4zNjAwNjMsIDAuNDg0MTU0LCAwLjczMjQzMSwgMC44ODc0MjgiLCBcCi0gICAgICAgICAgIjAuMTUwNTcxLCAwLjE2OTE5MSwgMC4yNzQ2MjYsIDAuMzY3NjY1LCAwLjQ5MTc1NSwgMC43NDAwMzMsIDAuODk1MDI3IiwgXAotICAgICAgICAgICIwLjE1Nzg3MywgMC4xNzY0NzEsIDAuMjgxOTExLCAwLjM3NDk5NCwgMC40OTkwNTUsIDAuNzQ3Mjk3LCAwLjkwMjQyNyIsIFwKLSAgICAgICAgICAiMC4xNjQ3MjQsIDAuMTgzMzA5LCAwLjI4ODcwNiwgMC4zODE3MzQsIDAuNTA1OTAyLCAwLjc1Mzg5OCwgMC45MDkxMzMiLCBcCi0gICAgICAgICAgIjAuMTc0NDQ0LCAwLjE5MzAzNSwgMC4yOTg0OCwgMC4zOTE1MTUsIDAuNTE1NTk1LCAwLjc2Mzc4NywgMC45MTg4ODgiLCBcCi0gICAgICAgICAgIjAuMTgyMjE3LCAwLjIwMDcxNywgMC4zMDYxMjYsIDAuMzk5MTc2LCAwLjUyMzI1MywgMC43NzE0MDQsIDAuOTI2NTQ3Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3MDUzMSwgMC4xMDk1MzcsIDAuMzMxNzcsIDAuNTI3MTksIDAuNzg5MjEzLCAxLjMxMDE0LCAxLjYzOTEyIiwgXAotICAgICAgICAgICIwLjA3MDUzMSwgMC4xMDk1MzIsIDAuMzMxNzU5LCAwLjUyNzIyMiwgMC43ODkxNjcsIDEuMzEyMDQsIDEuNjM5MDEiLCBcCi0gICAgICAgICAgIjAuMDcwNTQxLCAwLjEwOTUyOSwgMC4zMzE3NTQsIDAuNTI3MTY2LCAwLjc4OTE2LCAxLjMxMDE1LCAxLjYzNzg5IiwgXAotICAgICAgICAgICIwLjA3MDUzNywgMC4xMDk1MzIsIDAuMzMxNzU5LCAwLjUyNzg4NywgMC43ODkxNTUsIDEuMzExOTUsIDEuNjM2NDMiLCBcCi0gICAgICAgICAgIjAuMDcwNTQzLCAwLjEwOTQ2MSwgMC4zMzE3NSwgMC41MjcyMDMsIDAuNzg5MTY5LCAxLjMxMjAzLCAxLjYzOTUxIiwgXAotICAgICAgICAgICIwLjA3MDU3MywgMC4xMDk1MzMsIDAuMzMxNzI1LCAwLjUyNzgxMSwgMC43ODkwOTEsIDEuMzEwMzksIDEuNjM2NjciLCBcCi0gICAgICAgICAgIjAuMDcwNTQsIDAuMTA5NTY3LCAwLjMzMTI4NywgMC41Mjc4MDcsIDAuNzg5MDc1LCAxLjMxMDY3LCAxLjYzODY0Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExMTk0LCAwLjEzMDAzMywgMC4yMzI1NjEsIDAuMzIzMDMyLCAwLjQ0MzY0NCwgMC42ODQ4OSwgMC44MzU2MjYiLCBcCi0gICAgICAgICAgIjAuMTE5ODMxLCAwLjEzNzkyMSwgMC4yNDA0NDUsIDAuMzMwOTIzLCAwLjQ1MTUyNywgMC42OTI4NCwgMC44NDM1NyIsIFwKLSAgICAgICAgICAiMC4xMjk2ODgsIDAuMTQ3Nzc5LCAwLjI1MDMxMSwgMC4zNDA3NzcsIDAuNDYxNDA2LCAwLjcwMjYwMywgMC44NTM0OTgiLCBcCi0gICAgICAgICAgIjAuMTM4NTc5LCAwLjE1NjY3NCwgMC4yNTkxOTksIDAuMzQ5NjY5LCAwLjQ3MDMzNCwgMC43MTE2MDgsIDAuODYyMzk3IiwgXAotICAgICAgICAgICIwLjE0NjQzNywgMC4xNjQ1MzIsIDAuMjY3MDU5LCAwLjM1NzUyMiwgMC40NzgxNjIsIDAuNzE5NDAxLCAwLjg3MDI2MiIsIFwKLSAgICAgICAgICAiMC4xNTYzODIsIDAuMTc0NDc1LCAwLjI3Njk4OSwgMC4zNjc0NjEsIDAuNDg4MDg5LCAwLjcyOTM1MSwgMC44ODAxMTYiLCBcCi0gICAgICAgICAgIjAuMTYzNzkxLCAwLjE4MTg5MywgMC4yODQ0MTQsIDAuMzc0ODY5LCAwLjQ5NTUsIDAuNzM2NywgMC44ODc0OTUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY3MTU4LCAwLjEwNDE0OCwgMC4zMTUyNTQsIDAuNTAxNzQzLCAwLjc1MDI4OSwgMS4yNDc1OSwgMS41NTgzNSIsIFwKLSAgICAgICAgICAiMC4wNjcxNjYsIDAuMTA0MTM5LCAwLjMxNTI1LCAwLjUwMTcxNiwgMC43NTAyODksIDEuMjQ3NTksIDEuNTU2MTQiLCBcCi0gICAgICAgICAgIjAuMDY3MTYsIDAuMTA0MTQ4LCAwLjMxNTI0OSwgMC41MDE3MTYsIDAuNzUwMjk1LCAxLjI0NzU3LCAxLjU1ODA2IiwgXAotICAgICAgICAgICIwLjA2NzE2OCwgMC4xMDQxNTUsIDAuMzE1MjUyLCAwLjUwMTcxMSwgMC43NDk1NjIsIDEuMjQ3NTQsIDEuNTU2MyIsIFwKLSAgICAgICAgICAiMC4wNjcxNjIsIDAuMTA0MTYsIDAuMzE1MjUzLCAwLjUwMTcyMSwgMC43NTAyNzMsIDEuMjQ2MDcsIDEuNTU4NDQiLCBcCi0gICAgICAgICAgIjAuMDY3MTc5LCAwLjEwNDE2OCwgMC4zMTUyNDEsIDAuNTAxNTgyLCAwLjc1MDE3MSwgMS4yNDczLCAxLjU1NjQ0IiwgXAotICAgICAgICAgICIwLjA2NzI3NCwgMC4xMDQwNzUsIDAuMzE1MjA5LCAwLjUwMTU3MywgMC43NTAwOTMsIDEuMjQ3MjksIDEuNTU4MDciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1NTQ3LCAwLjAwNTU1NSwgMC4wMDU1NjcsIDAuMDA1NTY4LCAwLjAwNTU3MSwgMC4wMDU1NzUsIDAuMDA1NTczIiwgXAotICAgICAgICAgICIwLjAwNTU0OCwgMC4wMDU1NTYsIDAuMDA1NTY4LCAwLjAwNTU3LCAwLjAwNTU3MiwgMC4wMDU1NzEsIDAuMDA1NTcxIiwgXAotICAgICAgICAgICIwLjAwNTU5NiwgMC4wMDU2MDQsIDAuMDA1NjE2LCAwLjAwNTYxOSwgMC4wMDU2MiwgMC4wMDU2MjEsIDAuMDA1NjI0IiwgXAotICAgICAgICAgICIwLjAwNTY0OCwgMC4wMDU2NTYsIDAuMDA1NjY4LCAwLjAwNTY3LCAwLjAwNTY3MSwgMC4wMDU2NzIsIDAuMDA1NjciLCBcCi0gICAgICAgICAgIjAuMDA1NzE4LCAwLjAwNTcyNiwgMC4wMDU3MzgsIDAuMDA1NzQsIDAuMDA1NzQyLCAwLjAwNTc0MSwgMC4wMDU3NDEiLCBcCi0gICAgICAgICAgIjAuMDA1ODM4LCAwLjAwNTgzOCwgMC4wMDU4NTgsIDAuMDA1ODUxLCAwLjAwNTg1MywgMC4wMDU4NjMsIDAuMDA1ODY0IiwgXAotICAgICAgICAgICIwLjAwNTkzNywgMC4wMDU5NDUsIDAuMDA1OTU1LCAwLjAwNTk1NywgMC4wMDU5NDksIDAuMDA1OTYsIDAuMDA1OTUxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1NzksIDAuMDA1Nzk4LCAwLjAwNTgxLCAwLjAwNTgxMiwgMC4wMDU4MTQsIDAuMDA1ODE1LCAwLjAwNTgxNSIsIFwKLSAgICAgICAgICAiMC4wMDU3ODMsIDAuMDA1NzkxLCAwLjAwNTgwMywgMC4wMDU4MDYsIDAuMDA1ODA3LCAwLjAwNTgwOCwgMC4wMDU4MDkiLCBcCi0gICAgICAgICAgIjAuMDA1ODIyLCAwLjAwNTgzMSwgMC4wMDU4NDIsIDAuMDA1ODQ1LCAwLjAwNTg0NSwgMC4wMDU4NDgsIDAuMDA1ODQ3IiwgXAotICAgICAgICAgICIwLjAwNTg3LCAwLjAwNTg3OSwgMC4wMDU4OTEsIDAuMDA1ODkzLCAwLjAwNTg5NSwgMC4wMDU4OTYsIDAuMDA1ODk3IiwgXAotICAgICAgICAgICIwLjAwNTkzNSwgMC4wMDU5NDMsIDAuMDA1OTU1LCAwLjAwNTk1OCwgMC4wMDU5NiwgMC4wMDU5NjEsIDAuMDA1OTYxIiwgXAotICAgICAgICAgICIwLjAwNjA1MSwgMC4wMDYwNTksIDAuMDA2MDYzLCAwLjAwNjA2NiwgMC4wMDYwNzQsIDAuMDA2MDY4LCAwLjAwNjA2OCIsIFwKLSAgICAgICAgICAiMC4wMDYxMywgMC4wMDYxNTEsIDAuMDA2MTY0LCAwLjAwNjE1MiwgMC4wMDYxNTMsIDAuMDA2MTU0LCAwLjAwNjE1NSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDY0NTcsIDAuMDA2NDYyLCAwLjAwNjQ1NCwgMC4wMDY0NDgsIDAuMDA2NDQzLCAwLjAwNjQzOCwgMC4wMDY0MzciLCBcCi0gICAgICAgICAgIjAuMDA2NDU4LCAwLjAwNjQ2MywgMC4wMDY0NTUsIDAuMDA2NDQ5LCAwLjAwNjQ0NCwgMC4wMDY0NCwgMC4wMDY0MzgiLCBcCi0gICAgICAgICAgIjAuMDA2NDg5LCAwLjAwNjQ5NCwgMC4wMDY0ODYsIDAuMDA2NDgsIDAuMDA2NDc0LCAwLjAwNjQ2OSwgMC4wMDY0NjciLCBcCi0gICAgICAgICAgIjAuMDA2NTM1LCAwLjAwNjUzOSwgMC4wMDY1MzEsIDAuMDA2NTI1LCAwLjAwNjUxOCwgMC4wMDY1MTMsIDAuMDA2NTExIiwgXAotICAgICAgICAgICIwLjAwNjU5LCAwLjAwNjU5NSwgMC4wMDY1ODcsIDAuMDA2NTgsIDAuMDA2NTc0LCAwLjAwNjU2OCwgMC4wMDY1NjYiLCBcCi0gICAgICAgICAgIjAuMDA2NjkyLCAwLjAwNjY5OCwgMC4wMDY2OTEsIDAuMDA2NjgzLCAwLjAwNjY3NywgMC4wMDY2NzIsIDAuMDA2NjciLCBcCi0gICAgICAgICAgIjAuMDA2NzgyLCAwLjAwNjc4NiwgMC4wMDY3NzcsIDAuMDA2NzY4LCAwLjAwNjc2MiwgMC4wMDY3NTcsIDAuMDA2NzUzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHNjYWxhcikgewotICAgICAgICB2YWx1ZXMoIjAiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0ODY5LCAwLjAwNDg3NywgMC4wMDQ4ODksIDAuMDA0ODkyLCAwLjAwNDg5MywgMC4wMDQ4OTQsIDAuMDA0ODk3IiwgXAotICAgICAgICAgICIwLjAwNDg0MSwgMC4wMDQ4NDgsIDAuMDA0ODYsIDAuMDA0ODYyLCAwLjAwNDg2NCwgMC4wMDQ4NjUsIDAuMDA0ODY1IiwgXAotICAgICAgICAgICIwLjAwNDgyOSwgMC4wMDQ4MzcsIDAuMDA0ODQ5LCAwLjAwNDg1MSwgMC4wMDQ4NTMsIDAuMDA0ODU0LCAwLjAwNDg1NCIsIFwKLSAgICAgICAgICAiMC4wMDQ4MzEsIDAuMDA0ODQsIDAuMDA0ODUyLCAwLjAwNDg1NCwgMC4wMDQ4NTcsIDAuMDA0ODU3LCAwLjAwNDg1NyIsIFwKLSAgICAgICAgICAiMC4wMDQ4NDcsIDAuMDA0ODU1LCAwLjAwNDg2OCwgMC4wMDQ4NywgMC4wMDQ4NzQsIDAuMDA0ODczLCAwLjAwNDg3NSIsIFwKLSAgICAgICAgICAiMC4wMDQ4ODgsIDAuMDA0ODk3LCAwLjAwNDkxLCAwLjAwNDkxMywgMC4wMDQ5MTUsIDAuMDA0OTE1LCAwLjAwNDkxNiIsIFwKLSAgICAgICAgICAiMC4wMDQ5MzUsIDAuMDA0OTQyLCAwLjAwNDk1NiwgMC4wMDQ5NTgsIDAuMDA0OTU5LCAwLjAwNDk2MSwgMC4wMDQ5NjEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDY3MTYsIDAuMDA2NzI1LCAwLjAwNjczNywgMC4wMDY3MzksIDAuMDA2NzQsIDAuMDA2NzQxLCAwLjAwNjc0MSIsIFwKLSAgICAgICAgICAiMC4wMDY3MDIsIDAuMDA2NzEsIDAuMDA2NzIxLCAwLjAwNjcyNSwgMC4wMDY3MjYsIDAuMDA2NzI3LCAwLjAwNjcyNyIsIFwKLSAgICAgICAgICAiMC4wMDY3MjEsIDAuMDA2NzI5LCAwLjAwNjc0MSwgMC4wMDY3NDMsIDAuMDA2NzQ0LCAwLjAwNjc0NSwgMC4wMDY3NDYiLCBcCi0gICAgICAgICAgIjAuMDA2NzU3LCAwLjAwNjc2NiwgMC4wMDY3NzksIDAuMDA2NzgxLCAwLjAwNjc4MiwgMC4wMDY3ODMsIDAuMDA2Nzg0IiwgXAotICAgICAgICAgICIwLjAwNjgxLCAwLjAwNjgxOSwgMC4wMDY4MzEsIDAuMDA2ODMzLCAwLjAwNjgzNSwgMC4wMDY4MzYsIDAuMDA2ODM3IiwgXAotICAgICAgICAgICIwLjAwNjkxNywgMC4wMDY5MjcsIDAuMDA2OTM4LCAwLjAwNjk0MiwgMC4wMDY5NDMsIDAuMDA2OTQ0LCAwLjAwNjk0NSIsIFwKLSAgICAgICAgICAiMC4wMDcwMzIsIDAuMDA3MDQsIDAuMDA3MDUyLCAwLjAwNzA1NSwgMC4wMDcwNTcsIDAuMDA3MDU3LCAwLjAwNzA1OCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUk4pICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYzODA5ODsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2Mzc3ODE7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjM4MDk4OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDYzMSwgMC4wMDA2MzMsIDAuMDAwNzA1LCAwLjAwMDgwOCwgMC4wMDA5MjUsIDAuMDAxMTQ2LCAwLjAwMTM0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyODIzLCAwLjAwMjgyOCwgMC4wMDI4OTIsIDAuMDAyOTg5LCAwLjAwMzEwOCwgMC4wMDMzNjMsIDAuMDAzNTE3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRCZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjE0NzIzNywgMC4xNTUwMDksIDAuMTYyODU1LCAwLjE2ODYwNCwgMC4xNzMyMDQsIDAuMTc4OTg0LCAwLjE4MzY0NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJlY292ZXJ5X3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiRCZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzFfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChyZWNvdmVyeV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTYyNSwgMC4wNDUsIDAuMDM4NzUsIDAuMDMyNSwgMC4wMjYyNSwgMC4wMTYyNSwgMC4wMTM3NSIsIFwKLSAgICAgICAgICAiMC4wNjEyNSwgMC4wNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyNzUsIDAuMDI1IiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDYyNSwgMC4wNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzMzc1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICIwLjA3Mzc1LCAwLjA2ODc1LCAwLjA1NjI1LCAwLjA1LCAwLjA0Mzc1LCAwLjA0LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIjAuMDgsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNSwgMC4wNDYyNSwgMC4wMzc1IiwgXAotICAgICAgICAgICIwLjA4Mzc1LCAwLjA3ODc1LCAwLjA2NjI1LCAwLjA2LCAwLjA1Mzc1LCAwLjA1LCAwLjA0NzUiLCBcCi0gICAgICAgICAgIjAuMDkyNSwgMC4wODEyNSwgMC4wNzUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNTI1LCAwLjA1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIHRpbWluZ190eXBlIDogcmVjb3ZlcnlfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRCI7Ci0gICAgICBzZGZfY29uZCA6ICJEID09IDEnYjAiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHJlY292ZXJ5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1LCAwLjA2MTI1LCAwLjA2NzUsIDAuMDczNzUsIDAuMDgsIDAuMDksIDAuMDkyNSIsIFwKLSAgICAgICAgICAiMC4wNDUsIDAuMDUsIDAuMDU2MjUsIDAuMDY4NzUsIDAuMDc1LCAwLjA4NSwgMC4wODc1IiwgXAotICAgICAgICAgICIwLjAzODc1LCAwLjA1LCAwLjA1NjI1LCAwLjA2MjUsIDAuMDY4NzUsIDAuMDc4NzUsIDAuMDg3NSIsIFwKLSAgICAgICAgICAiMC4wMzg3NSwgMC4wNDM3NSwgMC4wNSwgMC4wNjI1LCAwLjA2ODc1LCAwLjA3MjUsIDAuMDgxMjUiLCBcCi0gICAgICAgICAgIjAuMDM4NzUsIDAuMDQzNzUsIDAuMDUsIDAuMDU2MjUsIDAuMDYyNSwgMC4wNzI1LCAwLjA4MTI1IiwgXAotICAgICAgICAgICIwLjAzNSwgMC4wNCwgMC4wNTI1LCAwLjA1ODc1LCAwLjA2NSwgMC4wNjg3NSwgMC4wNzc1IiwgXAotICAgICAgICAgICIwLjAzMjUsIDAuMDQzNzUsIDAuMDUsIDAuMDU2MjUsIDAuMDYyNSwgMC4wNzI1LCAwLjA3NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJlbW92YWxfcmlzaW5nOwotICAgICAgd2hlbiA6ICJEJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMV9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHJlbW92YWxfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAxMjUsIC0wLjAwNzUsIDAuMDA1LCAwLjAxMTI1LCAwLjAxMTI1LCAwLjAyMTI1LCAwLjAyMzc1IiwgXAotICAgICAgICAgICItMC4wMTc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMCwgMC4wMDYyNSwgMC4wMSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMCwgMC4wMDM3NSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAtMC4wMDI1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwMjUsIDAiLCBcCi0gICAgICAgICAgIi0wLjA0NjI1LCAtMC4wMzUsIC0wLjAyODc1LCAtMC4wMjI1LCAtMC4wMTYyNSwgLTAuMDEyNSwgLTAuMDAzNzUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDE1LCAtMC4wMTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTTikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxODIxNzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE4MjE2OTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE4MjE3OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDU5MywgMC4wMDA1OTIsIDAuMDAwNTkzLCAwLjAwMDU5MiwgMC4wMDA1OTIsIDAuMDAwNTkyLCAwLjAwMDU5MiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDU5OSwgMC4wMDA1OTYsIDAuMDAwNTk1LCAwLjAwMDU5NSwgMC4wMDA1OTUsIDAuMDAwNTk0LCAwLjAwMDU5NCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQmIVJOIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9STl9FUV8wID09IDEnYjEiOwotICAgICAgZmFsbF9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMTExODg0LCAwLjExOTgzMSwgMC4xMjk2ODgsIDAuMTM4NTc5LCAwLjE0NjQzNywgMC4xNTYzODIsIDAuMTYzNzkxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogcmVjb3ZlcnlfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRCZSTiI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fUk5fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChyZWNvdmVyeV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTI1LCAwLjAwNzUsIC0wLjAwNSwgLTAuMDExMjUsIC0wLjAxNzUsIC0wLjAyNzUsIC0wLjAzIiwgXAotICAgICAgICAgICIwLjAxNzUsIDAuMDEyNSwgMCwgLTAuMDA2MjUsIC0wLjAxMjUsIC0wLjAxNjI1LCAtMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMDMsIDAuMDE4NzUsIDAuMDEyNSwgMCwgLTAuMDA2MjUsIC0wLjAxLCAtMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4wMzYyNSwgMC4wMjUsIDAuMDE4NzUsIDAuMDEyNSwgMC4wMDYyNSwgLTAuMDAzNzUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICIwLjA0MjUsIDAuMDMxMjUsIDAuMDI1LCAwLjAxODc1LCAwLjAxMjUsIDAuMDAyNSwgMCIsIFwKLSAgICAgICAgICAiMC4wNTI1LCAwLjA0NzUsIDAuMDM1LCAwLjAyODc1LCAwLjAyMjUsIDAuMDEyNSwgMC4wMSIsIFwKLSAgICAgICAgICAiMC4wNjc1LCAwLjA1NjI1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDIxMjUsIDAuMDE4NzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiByZW1vdmFsX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUQmUk4iOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1JOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQocmVtb3ZhbF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTg3NSwgMC4wMjM3NSwgMC4wMzYyNSwgMC4wNDI1LCAwLjA0ODc1LCAwLjA1MjUsIDAuMDYxMjUiLCBcCi0gICAgICAgICAgIjAuMDEzNzUsIDAuMDE4NzUsIDAuMDI1LCAwLjAzMTI1LCAwLjAzNzUsIDAuMDQ3NSwgMC4wNSIsIFwKLSAgICAgICAgICAiMC4wMDEyNSwgMC4wMTI1LCAwLjAxODc1LCAwLjAyNSwgMC4wMzEyNSwgMC4wNDEyNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDA1LCAwLjAwNjI1LCAwLjAxMjUsIDAuMDE4NzUsIDAuMDI1LCAwLjAyODc1LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjAxMTI1LCAwLCAwLjAwNjI1LCAwLjAxMjUsIDAuMDE4NzUsIDAuMDIyNSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDE1LCAtMC4wMSwgLTAuMDAzNzUsIDAuMDAyNSwgMC4wMDg3NSwgMC4wMTg3NSwgMC4wMjEyNSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLCAwLjAwNjI1LCAwLjAxLCAwLjAxODc1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogREZGU1JYTCAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChERkZTUlhMKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDEuMDU1MDI7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgZmYgKE4zNSxRQklOVCkgewotICAgIG5leHRfc3RhdGUgOiAiRCI7Ci0gICAgY2xvY2tlZF9vbiA6ICJDSyI7Ci0gICAgY2xlYXIgOiAiKCFSTikiOwotICAgIHByZXNldCA6ICIoIVNOKSI7Ci0gICAgY2xlYXJfcHJlc2V0X3ZhcjEgOiBIOwotICAgIGNsZWFyX3ByZXNldF92YXIyIDogTDsKLSAgfQotICBwaW4oQ0spICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYzMzQ7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjMzNDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2MzMyMTM7Ci0gICAgY2xvY2sgOiB0cnVlOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNDMyMiwgMC4wMDQzMTIsIDAuMDA0MzkzLCAwLjAwNDQ5NywgMC4wMDQ2MjIsIDAuMDA0ODU2LCAwLjAwNTAyMiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwODU0MSwgMC4wMDg1MzEsIDAuMDA4NjEyLCAwLjAwODcxNCwgMC4wMDg4NTEsIDAuMDA5MDEsIDAuMDA5MzE2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRCZSTiZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fUk5fRVFfMV9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMTQzMDc0LCAwLjE1MTIxNiwgMC4xNjAwNjQsIDAuMTY2OTYyLCAwLjE3MjU2MSwgMC4xNzk5NTksIDAuMTg1NDI2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wODUxMTIsIDAuMDkzMTg5LCAwLjEwMTkxNywgMC4xMDgyOTcsIDAuMTEzNDQ5LCAwLjEyMDI2OCwgMC4xMjUyMjciKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEQpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY0NjAxNjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2NDQ4MzM7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjQ2MDE2OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzczOSwgMC4wMDM3MDgsIDAuMDAzNzI2LCAwLjAwMzc3LCAwLjAwMzgzNiwgMC4wMDM5ODMsIDAuMDA0MTA3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzNzE1LCAwLjAwMzY5MywgMC4wMDM3MDcsIDAuMDAzNzQ3LCAwLjAwMzgwOCwgMC4wMDM5MjgsIDAuMDA0MDU2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlJOJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIlJOX0VRXzFfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMTI1LCAtMC4wMDc1LCAtMC4wMDEyNSwgLTAuMDAxMjUsIC0wLjAwMTI1LCAwLjAwMjUsIDAuMDA1IiwgXAotICAgICAgICAgICItMC4wMTc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgLTAuMDA2MjUsIC0wLjAwNjI1LCAtMC4wMDI1LCAwIiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAxMjUsIC0wLjAxMjUsIC0wLjAwODc1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDg3NSwgLTAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDE4NzUsIC0wLjAxNSwgLTAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDQsIC0wLjAzNSwgLTAuMDI4NzUsIC0wLjAyODc1LCAtMC4wMjI1LCAtMC4wMTg3NSwgLTAuMDE2MjUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMzEyNSwgLTAuMDMxMjUsIC0wLjAyNzUsIC0wLjAyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEyNSwgMC4wMTc1LCAwLjAzLCAwLjAzNjI1LCAwLjAzNjI1LCAwLjA0NjI1LCAwLjA0ODc1IiwgXAotICAgICAgICAgICIwLjAwNzUsIDAuMDEyNSwgMC4wMjUsIDAuMDMxMjUsIDAuMDMxMjUsIDAuMDQxMjUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMDAxMjUsIDAuMDEyNSwgMC4wMTg3NSwgMC4wMjUsIDAuMDMxMjUsIDAuMDM1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjAwMTI1LCAwLjAwNjI1LCAwLjAxODc1LCAwLjAyNSwgMC4wMjUsIDAuMDM1LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjAwNSwgMC4wMDYyNSwgMC4wMTI1LCAwLjAxODc1LCAwLjAyNSwgMC4wMjg3NSwgMC4wMzc1IiwgXAotICAgICAgICAgICItMC4wMDI1LCAwLjAwMjUsIDAuMDA4NzUsIDAuMDE1LCAwLjAyMTI1LCAwLjAzMTI1LCAwLjAzMzc1IiwgXAotICAgICAgICAgICItMC4wMDUsIDAsIDAuMDA2MjUsIDAuMDEyNSwgMC4wMTg3NSwgMC4wMjg3NSwgMC4wMzEyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiUk4mU04iOwotICAgICAgc2RmX2NvbmQgOiAiUk5fRVFfMV9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1NjI1LCAwLjA0NSwgMC4wMzg3NSwgMC4wMzI1LCAwLjAyNjI1LCAwLjAyMjUsIDAuMDIiLCBcCi0gICAgICAgICAgIjAuMDYxMjUsIDAuMDU2MjUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMjc1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiMC4wNjc1LCAwLjA2MjUsIDAuMDUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzM3NSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4wNzM3NSwgMC4wNjg3NSwgMC4wNTYyNSwgMC4wNSwgMC4wNDM3NSwgMC4wNCwgMC4wMzc1IiwgXAotICAgICAgICAgICIwLjA4LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDUsIDAuMDQ2MjUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMDgzNzUsIDAuMDc4NzUsIDAuMDY2MjUsIDAuMDYsIDAuMDYsIDAuMDUsIDAuMDQ3NSIsIFwKLSAgICAgICAgICAiMC4wOTI1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1ODc1LCAwLjA1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM3NSwgMC4wMjYyNSwgMC4wMTM3NSwgMC4wMDc1LCAwLjAwMTI1LCAtMC4wMDI1LCAtMC4wMTEyNSIsIFwKLSAgICAgICAgICAiMC4wNDI1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMTg3NSwgMC4wMTI1LCAwLjAwMjUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICIwLjA0ODc1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDE4NzUsIDAuMDE4NzUsIDAuMDA4NzUsIDAiLCBcCi0gICAgICAgICAgIjAuMDQ4NzUsIDAuMDQzNzUsIDAuMDMxMjUsIDAuMDI1LCAwLjAxODc1LCAwLjAxNSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiMC4wNTUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMjUsIDAuMDE1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMDU4NzUsIDAuMDUzNzUsIDAuMDQxMjUsIDAuMDM1LCAwLjAyODc1LCAwLjAyNSwgMC4wMTYyNSIsIFwKLSAgICAgICAgICAiMC4wNjc1LCAwLjA1NjI1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDI3NSwgMC4wMTg3NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjIwMDY1NDsKLSAgICBmdW5jdGlvbiA6ICJOMzUiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5vbl91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcmlzaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEyNjEzNCwgMC4xMzY2NjksIDAuMjMxNjY1LCAwLjM4OTIwMywgMC41NDg5NzYsIDAuOTE2MywgMS4xMzAwNSIsIFwKLSAgICAgICAgICAiMC4xMzQyMTEsIDAuMTQ0NzM0LCAwLjIzOTcyOSwgMC4zOTcyNjIsIDAuNTU3MDM4LCAwLjkyNDM1OCwgMS4xMzQwNiIsIFwKLSAgICAgICAgICAiMC4xNDMwNTUsIDAuMTUzNTg4LCAwLjI0ODU5NiwgMC40MDYxNDcsIDAuNTY1ODkzLCAwLjkzMzE3NSwgMS4xNDI5OCIsIFwKLSAgICAgICAgICAiMC4xNDk5MjYsIDAuMTYwNDY5LCAwLjI1NTQ2OSwgMC40MTMwMTUsIDAuNTcyNzUsIDAuOTM5OTgxLCAxLjE1Mzc4IiwgXAotICAgICAgICAgICIwLjE1NTM2MiwgMC4xNjU4OSwgMC4yNjA5MDUsIDAuNDE5Njc3LCAwLjU3ODA4MywgMC45NDU1NDQsIDEuMTU2MjgiLCBcCi0gICAgICAgICAgIjAuMTYyNzgxLCAwLjE3MzMyOSwgMC4yNjgwOTcsIDAuNDI3MDc0LCAwLjU4NTUxNywgMC45NTI4MzIsIDEuMTY2NjciLCBcCi0gICAgICAgICAgIjAuMTY4MjMzLCAwLjE3ODczNCwgMC4yNzM2MzksIDAuNDMyMjA4LCAwLjU5MDg0NiwgMC45NTg5NTMsIDEuMTY4NzQiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTE4MzAxLCAwLjE0MDQwMywgMC4zMzkxOTcsIDAuNjcyODYsIDEuMDA1MywgMS43ODEzOCwgMi4yMjcxOSIsIFwKLSAgICAgICAgICAiMC4xMTg1MTcsIDAuMTQwNDEsIDAuMzM5MTQxLCAwLjY3MjcxMSwgMS4wMDUyMiwgMS43ODExOCwgMi4yMjIwMSIsIFwKLSAgICAgICAgICAiMC4xMTgyNjksIDAuMTQwMjMxLCAwLjMzOTEwOCwgMC42NzI0MzcsIDEuMDA1NDYsIDEuNzgxOTcsIDIuMjIzMzIiLCBcCi0gICAgICAgICAgIjAuMTE4MzQ3LCAwLjE0MDM5NywgMC4zMzkwOTUsIDAuNjcyODYxLCAxLjAwNTU1LCAxLjc3OTc3LCAyLjIyNzU4IiwgXAotICAgICAgICAgICIwLjExODQxMSwgMC4xNDAxNTIsIDAuMzM5MDgzLCAwLjY3MzE2LCAxLjAwNzAzLCAxLjc4Mzc0LCAyLjIyODE0IiwgXAotICAgICAgICAgICIwLjExODM5NywgMC4xNDAzOTUsIDAuMzM5MjY1LCAwLjY3MzEzNywgMS4wMDY4MiwgMS43ODM3NywgMi4yMzAwOSIsIFwKLSAgICAgICAgICAiMC4xMTgzNywgMC4xNDAyODYsIDAuMzM5MjQ0LCAwLjY3MzAwNywgMS4wMDcwNCwgMS43ODI3LCAyLjIyNzE0Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEzMzQ2NiwgMC4xNDMxMjcsIDAuMjMwMjQ4LCAwLjM3NTQ2NywgMC41MTk0ODYsIDAuODU3ODcyLCAxLjA1MDgiLCBcCi0gICAgICAgICAgIjAuMTQxNTgsIDAuMTUxMjc3LCAwLjIzODM5LCAwLjM4MzMzOCwgMC41Mjc2NDUsIDAuODY1OTY0LCAxLjA1OSIsIFwKLSAgICAgICAgICAiMC4xNTA0MTcsIDAuMTYwMTI3LCAwLjI0NzIzOSwgMC4zOTIxOCwgMC41MzY0ODYsIDAuODc0ODMxLCAxLjA2NzkiLCBcCi0gICAgICAgICAgIjAuMTU3Mzc5LCAwLjE2NzEwMywgMC4yNTQzNDgsIDAuMzk5MTA4LCAwLjU0NDA4OSwgMC44ODI0MTksIDEuMDc0MDciLCBcCi0gICAgICAgICAgIjAuMTYyODg5LCAwLjE3MjY0LCAwLjI1OTg0NywgMC40MDQ0NDgsIDAuNTQ4OTYsIDAuODg3NDIyLCAxLjA4MDM3IiwgXAotICAgICAgICAgICIwLjE3MDMxMywgMC4xODAxMTgsIDAuMjY3MjE1LCAwLjQxMjExNiwgMC41NTYyNzYsIDAuODk1MzM1LCAxLjA4ODQ3IiwgXAotICAgICAgICAgICIwLjE3NTc4MSwgMC4xODU1OTksIDAuMjcyNjIsIDAuNDE4MDI1LCAwLjU2MTk4NCwgMC45MDE0NDIsIDEuMDkzNCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDY0NDQsIDAuMTI2NDEzLCAwLjMwMzQxNCwgMC42MDQwMjIsIDAuOTAwOTgzLCAxLjU4ODkzLCAxLjk4NTQ2IiwgXAotICAgICAgICAgICIwLjEwNjU0MywgMC4xMjYzOSwgMC4zMDI4NzgsIDAuNjA0MTc5LCAwLjkwMDgzNSwgMS41ODc1NiwgMS45ODM1OCIsIFwKLSAgICAgICAgICAiMC4xMDY1ODYsIDAuMTI2Mzg2LCAwLjMwMzE0NywgMC42MDQxOTMsIDAuOTAwOTAzLCAxLjU4ODA5LCAxLjk4MjQ4IiwgXAotICAgICAgICAgICIwLjEwNjM5OCwgMC4xMjYzMzcsIDAuMzA0NjUzLCAwLjYwNDE4NCwgMC45MDI5MjUsIDEuNjAwNjcsIDEuOTk3MTMiLCBcCi0gICAgICAgICAgIjAuMTA2OTEsIDAuMTI2MzY1LCAwLjMwNDYwNiwgMC42MDMyODEsIDAuOTAxMjE2LCAxLjU5NTQyLCAxLjk5NzcxIiwgXAotICAgICAgICAgICIwLjEwNjU4OCwgMC4xMjU0MDYsIDAuMzA0OTI2LCAwLjYwNDA2NCwgMC45MDE5ODYsIDEuNjAwNiwgMS45OTU5NiIsIFwKLSAgICAgICAgICAiMC4xMDcxOTcsIDAuMTI2MDAyLCAwLjMwNDY3NCwgMC42MDI3OCwgMC45MDEwMDMsIDEuNjAwMjksIDEuOTg1MzciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUk4iOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGNsZWFyOwotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNTM4MTgsIDAuMTYzNDczLCAwLjI1MDU2MiwgMC4zOTUxMTgsIDAuNTM5NjkxLCAwLjg3ODQyMywgMS4wNzExNSIsIFwKLSAgICAgICAgICAiMC4xNjE2MTksIDAuMTcxMjg5LCAwLjI1ODM1OSwgMC40MDMxNTcsIDAuNTQ3MzkzLCAwLjg4NTg1LCAxLjA3OTE3IiwgXAotICAgICAgICAgICIwLjE2OTMwNywgMC4xNzkwMDEsIDAuMjY2MDQyLCAwLjQxMDUxNSwgMC41NTU5NiwgMC44OTMwMjIsIDEuMDg3MjkiLCBcCi0gICAgICAgICAgIjAuMTc0OTQ3LCAwLjE4NDU2NywgMC4yNzEzNzEsIDAuNDE2NDQsIDAuNTYwOTA1LCAwLjg5ODk5OCwgMS4wOTIzIiwgXAotICAgICAgICAgICIwLjE3OTQ0MiwgMC4xODkwOTIsIDAuMjc2MTk5LCAwLjQyMDk5LCAwLjU2NTM5LCAwLjkwMzU4NCwgMS4wOTYiLCBcCi0gICAgICAgICAgIjAuMTg1MzQ5LCAwLjE5NTAxLCAwLjI4MjEzNSwgMC40MjY4NzQsIDAuNTcxMTg0LCAwLjkwOTU5NSwgMS4xMDMyIiwgXAotICAgICAgICAgICIwLjE4OTgwOSwgMC4xOTk0OTcsIDAuMjg2MzQ1LCAwLjQzMDkwNCwgMC41NzYzMDQsIDAuOTE0NDUyLCAxLjEwNzIxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwNjkwMywgMC4xMjY3NTMsIDAuMzA1MjcxLCAwLjYwMzYwNiwgMC45MDIzOSwgMS41OTg1MSwgMS45OTk4MiIsIFwKLSAgICAgICAgICAiMC4xMDY5MjgsIDAuMTI2NzUsIDAuMzA1MjcxLCAwLjYwNDQwNiwgMC45MDI1MjUsIDEuNTk5NjksIDEuOTk1MzciLCBcCi0gICAgICAgICAgIjAuMTA2ODYxLCAwLjEyNjY1LCAwLjMwNTI2MSwgMC42MDI5OTgsIDAuOTAzMzI4LCAxLjU5NDI5LCAxLjk5NTEyIiwgXAotICAgICAgICAgICIwLjEwNzE1NCwgMC4xMjY3NDMsIDAuMzA1MjgyLCAwLjYwNDE5NywgMC45MDI2NzIsIDEuNTk4OTUsIDEuOTk5ODkiLCBcCi0gICAgICAgICAgIjAuMTA2ODkzLCAwLjEyNjc1LCAwLjMwNTI4LCAwLjYwNDIsIDAuOTAyNjY3LCAxLjU5NjIsIDEuOTk0OCIsIFwKLSAgICAgICAgICAiMC4xMDcwNjQsIDAuMTI2NzUxLCAwLjMwNTA5NSwgMC42MDQyMjksIDAuOTAyOTQ1LCAxLjU5OTU1LCAxLjk5NTM1IiwgXAotICAgICAgICAgICIwLjEwNzE4NSwgMC4xMjY1NjksIDAuMzA1MjM4LCAwLjYwNDExMiwgMC45MDMxLCAxLjYwMTI5LCAxLjk5NzgxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiBwcmVzZXQ7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEyMzcyNiwgMC4xMzQyNDIsIDAuMjI5MzgzLCAwLjM4NzkyOSwgMC41NDQ5NzQsIDAuOTE1NTU2LCAxLjEyNDY2IiwgXAotICAgICAgICAgICIwLjEzMDk2MiwgMC4xNDE0NzUsIDAuMjM2NTksIDAuMzk0NjEzLCAwLjU1MzEwNCwgMC45MjAzNjQsIDEuMTMzMiIsIFwKLSAgICAgICAgICAiMC4xNDA4NTIsIDAuMTUxMzY0LCAwLjI0NjQ3MywgMC40MDUwMTIsIDAuNTYyMDc0LCAwLjkzMDE1MSwgMS4xNDA5MSIsIFwKLSAgICAgICAgICAiMC4xNDk3NDgsIDAuMTYwMjYyLCAwLjI1NTM3NiwgMC40MTM0MzYsIDAuNTcxNTc2LCAwLjk0MjI5OCwgMS4xNTMxIiwgXAotICAgICAgICAgICIwLjE1NzU2MiwgMC4xNjgwOTcsIDAuMjYyNzcsIDAuNDIxMTk2LCAwLjU3ODQ2LCAwLjk0OTg4NiwgMS4xNTk2NCIsIFwKLSAgICAgICAgICAiMC4xNjc2OCwgMC4xNzgyMTQsIDAuMjczMjg5LCAwLjQzMTg3OCwgMC41OTAxOTMsIDAuOTU3MzI4LCAxLjE3MTM5IiwgXAotICAgICAgICAgICIwLjE3NDgwOCwgMC4xODUzNTEsIDAuMjgwMTU1LCAwLjQzOTAyOCwgMC41OTczODIsIDAuOTY3MDI2LCAxLjE3NTE1Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExODI0NSwgMC4xNDAxNTIsIDAuMzM5NjMsIDAuNjcyOTUsIDEuMDA2NTYsIDEuNzg0MzksIDIuMjI3MDIiLCBcCi0gICAgICAgICAgIjAuMTE4MjQ4LCAwLjE0MDE2NCwgMC4zMzk1MTYsIDAuNjcyNzU0LCAxLjAwNjIyLCAxLjc4NDI0LCAyLjIyNjM5IiwgXAotICAgICAgICAgICIwLjExODI0MywgMC4xNDAxNjIsIDAuMzM5NDk5LCAwLjY3MzAxOSwgMS4wMDY1OSwgMS43ODMzNSwgMi4yMjkxNyIsIFwKLSAgICAgICAgICAiMC4xMTgyMzgsIDAuMTQwMTY5LCAwLjMzOTY3NSwgMC42NzMwNTEsIDEuMDA2MzUsIDEuNzg0NDgsIDIuMjMxMTMiLCBcCi0gICAgICAgICAgIjAuMTE4Mjc5LCAwLjE0MDE5LCAwLjMzOTY0LCAwLjY3MzQ1NywgMS4wMDcxOCwgMS43ODYwNSwgMi4yMjgwNiIsIFwKLSAgICAgICAgICAiMC4xMTgyOTgsIDAuMTQwMTgzLCAwLjMzOTcwNCwgMC42NzMyOTcsIDEuMDA3MzcsIDEuNzg1NjksIDIuMjMxMDQiLCBcCi0gICAgICAgICAgIjAuMTE4MjMsIDAuMTQwMjA5LCAwLjMzOTgxNSwgMC42NzMzNTEsIDEuMDA3NDYsIDEuNzg2MjYsIDIuMjMwMTciKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTQzMDY1LCAwLjE1MjcxNiwgMC4yMzk3OTMsIDAuMzg0NTE0LCAwLjUyOTcyNSwgMC44Njc4OTQsIDEuMDYxMiIsIFwKLSAgICAgICAgICAiMC4xNDk4NTIsIDAuMTU5NTE3LCAwLjI0NjcyMywgMC4zOTE1OTYsIDAuNTM2MDA4LCAwLjg3NDEwNywgMS4wNjc4NiIsIFwKLSAgICAgICAgICAiMC4xNTc0MSwgMC4xNjcwODIsIDAuMjU0Mjg1LCAwLjM5OTE3NywgMC41NDM2MDcsIDAuODgxNzUxLCAxLjA3Njc2IiwgXAotICAgICAgICAgICIwLjE2NDc5NCwgMC4xNzQ0MDYsIDAuMjYxNTQsIDAuNDA2MTYsIDAuNTUwOTAzLCAwLjg4ODM4NywgMS4wODI5NyIsIFwKLSAgICAgICAgICAiMC4xNzE1MjYsIDAuMTgxMTk3LCAwLjI2ODIyNCwgMC40MTMyNjgsIDAuNTU4NjgxLCAwLjg5Njc2OSwgMS4wODkzMyIsIFwKLSAgICAgICAgICAiMC4xODEyNjksIDAuMTkxMDE5LCAwLjI3ODA0OSwgMC40MjMwNDUsIDAuNTY3NSwgMC45MDU1NzMsIDEuMDk5NDYiLCBcCi0gICAgICAgICAgIjAuMTg4ODc4LCAwLjE5ODUzNywgMC4yODU1MzgsIDAuNDMwNjU1LCAwLjU3NTUzMSwgMC45MTMwOTgsIDEuMTA2NzEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTA3MDksIDAuMTI2NzI5LCAwLjMwNTI0OCwgMC42MDIyMjEsIDAuOTAxNDIxLCAxLjYwMTYsIDEuOTg1OSIsIFwKLSAgICAgICAgICAiMC4xMDY5NDYsIDAuMTI2NzM3LCAwLjMwNTIyOCwgMC42MDQxNSwgMC45MDI2MjMsIDEuNTk5NDEsIDEuOTk5ODMiLCBcCi0gICAgICAgICAgIjAuMTA3MDQ4LCAwLjEyNjczNywgMC4zMDUyMzUsIDAuNjA0MTM5LCAwLjkwMjYzMSwgMS41OTYyNSwgMS45ODY2NCIsIFwKLSAgICAgICAgICAiMC4xMDY2MjQsIDAuMTI2NzI2LCAwLjMwNTI0LCAwLjYwMjM2OCwgMC45MDI1NzcsIDEuNTk5NiwgMS45OTc0IiwgXAotICAgICAgICAgICIwLjEwNjg1LCAwLjEyNjA3NSwgMC4zMDUyOTEsIDAuNjA0MTg0LCAwLjkwMjkxMywgMS42MDEwMywgMi4wMDAyNCIsIFwKLSAgICAgICAgICAiMC4xMDY5NDEsIDAuMTI2MzE4LCAwLjMwNDM0MywgMC42MDQxNDQsIDAuOTAyNjcxLCAxLjU5ODA0LCAxLjk5ODQ2IiwgXAotICAgICAgICAgICIwLjEwNzIzMSwgMC4xMjY4MSwgMC4zMDUxNzgsIDAuNjA0MTIyLCAwLjkwMzEyNSwgMS42MDAxNCwgMS45OTgzMSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDU0NDIsIDAuMDA1NDQzLCAwLjAwNTQ0OCwgMC4wMDU0NDksIDAuMDA1NDUsIDAuMDA1NDUxLCAwLjAwNTQ1MSIsIFwKLSAgICAgICAgICAiMC4wMDU0MzYsIDAuMDA1NDM3LCAwLjAwNTQ0MSwgMC4wMDU0NDMsIDAuMDA1NDQzLCAwLjAwNTQ0NCwgMC4wMDU0NDYiLCBcCi0gICAgICAgICAgIjAuMDA1NDc1LCAwLjAwNTQ3NywgMC4wMDU0ODEsIDAuMDA1NDgyLCAwLjAwNTQ4MywgMC4wMDU0ODQsIDAuMDA1NDg0IiwgXAotICAgICAgICAgICIwLjAwNTUyMywgMC4wMDU1MjUsIDAuMDA1NTI5LCAwLjAwNTUzMSwgMC4wMDU1MzIsIDAuMDA1NTMyLCAwLjAwNTUzMiIsIFwKLSAgICAgICAgICAiMC4wMDU1OSwgMC4wMDU1OTEsIDAuMDA1NTk2LCAwLjAwNTU5NywgMC4wMDU1OTgsIDAuMDA1NTk5LCAwLjAwNTU5OCIsIFwKLSAgICAgICAgICAiMC4wMDU2OTUsIDAuMDA1Njk2LCAwLjAwNTcwMiwgMC4wMDU3MDIsIDAuMDA1NzEzLCAwLjAwNTcxMywgMC4wMDU3MTMiLCBcCi0gICAgICAgICAgIjAuMDA1NzgyLCAwLjAwNTc4NCwgMC4wMDU3ODgsIDAuMDA1NzksIDAuMDA1ODA1LCAwLjAwNTc5LCAwLjAwNTc5MSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNTEsIDAuMDA1MTAxLCAwLjAwNTEwNiwgMC4wMDUxMDcsIDAuMDA1MTA4LCAwLjAwNTEwOCwgMC4wMDUxMSIsIFwKLSAgICAgICAgICAiMC4wMDUwOTksIDAuMDA1MSwgMC4wMDUxMDQsIDAuMDA1MTA2LCAwLjAwNTEwNiwgMC4wMDUxMDgsIDAuMDA1MTA3IiwgXAotICAgICAgICAgICIwLjAwNTE0OCwgMC4wMDUxNDksIDAuMDA1MTU0LCAwLjAwNTE1NiwgMC4wMDUxNTYsIDAuMDA1MTU4LCAwLjAwNTE1OCIsIFwKLSAgICAgICAgICAiMC4wMDUyMDEsIDAuMDA1MjAyLCAwLjAwNTIwNiwgMC4wMDUyMDgsIDAuMDA1MjA4LCAwLjAwNTIwOSwgMC4wMDUyMDciLCBcCi0gICAgICAgICAgIjAuMDA1MjcxLCAwLjAwNTI3MiwgMC4wMDUyNzYsIDAuMDA1Mjc4LCAwLjAwNTI3OSwgMC4wMDUyNzksIDAuMDA1Mjc5IiwgXAotICAgICAgICAgICIwLjAwNTM5LCAwLjAwNTM4NCwgMC4wMDUzOTUsIDAuMDA1MzksIDAuMDA1Mzk3LCAwLjAwNTM5MSwgMC4wMDUzOTEiLCBcCi0gICAgICAgICAgIjAuMDA1NDksIDAuMDA1NDc4LCAwLjAwNTQ4MSwgMC4wMDU0ODMsIDAuMDA1NDgzLCAwLjAwNTQ4NCwgMC4wMDU0OTUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1OTg4LCAwLjAwNTk4OSwgMC4wMDU5ODMsIDAuMDA1OTc3LCAwLjAwNTk3NSwgMC4wMDU5NzMsIDAuMDA1OTcyIiwgXAotICAgICAgICAgICIwLjAwNTk4OSwgMC4wMDU5ODksIDAuMDA1OTgzLCAwLjAwNTk3NywgMC4wMDU5NzUsIDAuMDA1OTc0LCAwLjAwNTk3MSIsIFwKLSAgICAgICAgICAiMC4wMDYwMjIsIDAuMDA2MDIxLCAwLjAwNjAxNSwgMC4wMDYwMSwgMC4wMDYwMDcsIDAuMDA2MDA0LCAwLjAwNjAwNiIsIFwKLSAgICAgICAgICAiMC4wMDYwNjcsIDAuMDA2MDY3LCAwLjAwNjA2MSwgMC4wMDYwNTUsIDAuMDA2MDUyLCAwLjAwNjA1MSwgMC4wMDYwNDUiLCBcCi0gICAgICAgICAgIjAuMDA2MTE2LCAwLjAwNjExNywgMC4wMDYxMTEsIDAuMDA2MTA1LCAwLjAwNjEwMSwgMC4wMDYwOTgsIDAuMDA2MDk4IiwgXAotICAgICAgICAgICIwLjAwNjIyMiwgMC4wMDYyMjIsIDAuMDA2MjE2LCAwLjAwNjIwOSwgMC4wMDYyMDYsIDAuMDA2MjAyLCAwLjAwNjIwMiIsIFwKLSAgICAgICAgICAiMC4wMDYzMTgsIDAuMDA2MzE4LCAwLjAwNjMwOSwgMC4wMDYzMDUsIDAuMDA2MzAyLCAwLjAwNjI5OCwgMC4wMDYyOTciKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfcG93ZXIoc2NhbGFyKSB7Ci0gICAgICAgIHZhbHVlcygiMCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDYyOTksIDAuMDA2MywgMC4wMDYzMDQsIDAuMDA2MzA2LCAwLjAwNjMwNiwgMC4wMDYzMDYsIDAuMDA2MzA3IiwgXAotICAgICAgICAgICIwLjAwNjI4NSwgMC4wMDYyODUsIDAuMDA2MjksIDAuMDA2MjkxLCAwLjAwNjI5MiwgMC4wMDYyOTIsIDAuMDA2MjkyIiwgXAotICAgICAgICAgICIwLjAwNjMwNSwgMC4wMDYzMDYsIDAuMDA2MzEsIDAuMDA2MzEyLCAwLjAwNjMxMiwgMC4wMDYzMTIsIDAuMDA2MzEyIiwgXAotICAgICAgICAgICIwLjAwNjM0MSwgMC4wMDYzNDMsIDAuMDA2MzQ3LCAwLjAwNjM0OSwgMC4wMDYzNDksIDAuMDA2MzUsIDAuMDA2MzUiLCBcCi0gICAgICAgICAgIjAuMDA2Mzk1LCAwLjAwNjM5NiwgMC4wMDY0LCAwLjAwNjQwMiwgMC4wMDY0MDMsIDAuMDA2NDAzLCAwLjAwNjQwMyIsIFwKLSAgICAgICAgICAiMC4wMDY1MDIsIDAuMDA2NTAzLCAwLjAwNjUwOCwgMC4wMDY1MDksIDAuMDA2NTEsIDAuMDA2NTEsIDAuMDA2NTEiLCBcCi0gICAgICAgICAgIjAuMDA2NjE4LCAwLjAwNjYyLCAwLjAwNjYyNCwgMC4wMDY2MjYsIDAuMDA2NjI2LCAwLjAwNjYyNiwgMC4wMDY2MjYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQ0NDIsIDAuMDA0NDQzLCAwLjAwNDQ0OCwgMC4wMDQ0NDksIDAuMDA0NDUsIDAuMDA0NDUyLCAwLjAwNDQ1IiwgXAotICAgICAgICAgICIwLjAwNDQxMywgMC4wMDQ0MTUsIDAuMDA0NDE5LCAwLjAwNDQyLCAwLjAwNDQyMSwgMC4wMDQ0MjEsIDAuMDA0NDIxIiwgXAotICAgICAgICAgICIwLjAwNDQwMywgMC4wMDQ0MDQsIDAuMDA0NDA5LCAwLjAwNDQxLCAwLjAwNDQxLCAwLjAwNDQxMiwgMC4wMDQ0MTEiLCBcCi0gICAgICAgICAgIjAuMDA0NDA4LCAwLjAwNDQwOCwgMC4wMDQ0MTIsIDAuMDA0NDE0LCAwLjAwNDQxNCwgMC4wMDQ0MTUsIDAuMDA0NDE1IiwgXAotICAgICAgICAgICIwLjAwNDQyLCAwLjAwNDQyMiwgMC4wMDQ0MjYsIDAuMDA0NDI4LCAwLjAwNDQyOSwgMC4wMDQ0MjksIDAuMDA0NDI5IiwgXAotICAgICAgICAgICIwLjAwNDQ2MywgMC4wMDQ0NjQsIDAuMDA0NDY5LCAwLjAwNDQ3LCAwLjAwNDQ3MSwgMC4wMDQ0NzIsIDAuMDA0NDcyIiwgXAotICAgICAgICAgICIwLjAwNDUxMiwgMC4wMDQ1MTMsIDAuMDA0NTIsIDAuMDA0NTE5LCAwLjAwNDUyLCAwLjAwNDUyMSwgMC4wMDQ1MjEiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFFOKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMTk5MTY4OwotICAgIGZ1bmN0aW9uIDogIlFCSU5UIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBub25fdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJpc2luZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNDMwNzQsIDAuMTUzNTksIDAuMjQ4Mjc4LCAwLjQwNjEzNCwgMC41NjM4ODIsIDAuOTMyMTMzLCAxLjE0MjU0IiwgXAotICAgICAgICAgICIwLjE1MTIxNiwgMC4xNjE3MzYsIDAuMjU2NDIzLCAwLjQxNDIyNSwgMC41NzIwMjYsIDAuOTQwMjc0LCAxLjE1MDY5IiwgXAotICAgICAgICAgICIwLjE2MDA2NCwgMC4xNzA1ODUsIDAuMjY1MjcyLCAwLjQyMzA3MywgMC41ODA4NzYsIDAuOTQ5MTI0LCAxLjE1OTU0IiwgXAotICAgICAgICAgICIwLjE2Njk2MiwgMC4xNzc0NzgsIDAuMjcyMTk0LCAwLjQyOTk2NCwgMC41ODc3NzgsIDAuOTU2MDEyLCAxLjE2NjM5IiwgXAotICAgICAgICAgICIwLjE3MjU2MSwgMC4xODMwOSwgMC4yNzc3OTQsIDAuNDM1NTA0LCAwLjU5MzM3OSwgMC45NjE2MzEsIDEuMTcyMDQiLCBcCi0gICAgICAgICAgIjAuMTc5OTU5LCAwLjE5MDUxMSwgMC4yODUxNzYsIDAuNDQyOTk1LCAwLjYwMDc3NiwgMC45NjkwMjMsIDEuMTc5NTIiLCBcCi0gICAgICAgICAgIjAuMTg1NDI2LCAwLjE5NjA5OSwgMC4yOTA3ODUsIDAuNDQ4NjU5LCAwLjYwNjM5NCwgMC45NzQ3MzcsIDEuMTg0OSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTU4NTcsIDAuMTM3OTgsIDAuMzM3MDksIDAuNjcwMTYzLCAxLjAwMTc4LCAxLjc3NjA3LCAyLjIxODU4IiwgXAotICAgICAgICAgICIwLjExNTg1NSwgMC4xMzc5OCwgMC4zMzcwODcsIDAuNjcwMTU2LCAxLjAwMTc3LCAxLjc3NiwgMi4yMTg2NCIsIFwKLSAgICAgICAgICAiMC4xMTU4NTQsIDAuMTM3OTgsIDAuMzM3MDg0LCAwLjY3MDE2MSwgMS4wMDE3OCwgMS43NzYwMywgMi4yMTg3MSIsIFwKLSAgICAgICAgICAiMC4xMTU4NTgsIDAuMTM3OTEsIDAuMzM3MDg5LCAwLjY3MDE1OSwgMS4wMDI1OCwgMS43Nzg1LCAyLjIyMDE1IiwgXAotICAgICAgICAgICIwLjExNTg0OCwgMC4xMzc5ODEsIDAuMzM2OTUyLCAwLjY2OTgxMSwgMS4wMDE4LCAxLjc3NDk2LCAyLjIxNzE1IiwgXAotICAgICAgICAgICIwLjExNTg1MywgMC4xMzc5MzksIDAuMzM3NTE3LCAwLjY3MDEwMiwgMS4wMDE4NiwgMS43Nzg0MiwgMi4yMTkzOCIsIFwKLSAgICAgICAgICAiMC4xMTU3ODksIDAuMTM3OTg1LCAwLjMzNzA1MSwgMC42NjkxNTksIDEuMDAxNzYsIDEuNzc4NTEsIDIuMjE4ODIiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTI4MTEzLCAwLjEzNzc1OSwgMC4yMjQ1NjUsIDAuMzY5MjU3LCAwLjUxMzk0OCwgMC44NTE1MiwgMS4wNDQ0MyIsIFwKLSAgICAgICAgICAiMC4xMzYxNjQsIDAuMTQ1ODEsIDAuMjMyNjE2LCAwLjM3NzMwOCwgMC41MjE5OTQsIDAuODU5NTY4LCAxLjA1MjUiLCBcCi0gICAgICAgICAgIjAuMTQ1MDU0LCAwLjE1NDY5OCwgMC4yNDE1MDUsIDAuMzg2MjI3LCAwLjUzMDg4MywgMC44Njg0NTksIDEuMDYxMzkiLCBcCi0gICAgICAgICAgIjAuMTUxOTQ0LCAwLjE2MTU4OSwgMC4yNDgzOTcsIDAuMzkzMTE3LCAwLjUzNzc3NywgMC44NzUzNTMsIDEuMDY4MjgiLCBcCi0gICAgICAgICAgIjAuMTU3Mzk0LCAwLjE2NzA0MSwgMC4yNTM4NDUsIDAuMzk4NTUxLCAwLjU0MzI1LCAwLjg4MDgwMywgMS4wNzM2OSIsIFwKLSAgICAgICAgICAiMC4xNjQ3NzcsIDAuMTc0NDIyLCAwLjI2MTIyNiwgMC40MDU5MjYsIDAuNTUwNjEyLCAwLjg4ODE4MiwgMS4wODExMSIsIFwKLSAgICAgICAgICAiMC4xNzAyNTMsIDAuMTc5OTA1LCAwLjI2NjcxMSwgMC40MTEzNywgMC41NTYwMzUsIDAuODkzNjQzLCAxLjA4NjU2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwMzY1MiwgMC4xMjM0OTcsIDAuMzAxNzY5LCAwLjU5ODA5NiwgMC44OTY5NjYsIDEuNTg5MDMsIDEuOTg3NjYiLCBcCi0gICAgICAgICAgIjAuMTAzNzE5LCAwLjEyMzQ5NSwgMC4zMDE4MjIsIDAuNTk4MDczLCAwLjg5Njk0OSwgMS41ODkwMywgMS45ODExOSIsIFwKLSAgICAgICAgICAiMC4xMDM2MTQsIDAuMTIzNDA0LCAwLjMwMTgyOCwgMC41OTgzMzMsIDAuODk2OTQsIDEuNTg5MDcsIDEuOTgxMjEiLCBcCi0gICAgICAgICAgIjAuMTAzNjAzLCAwLjEyMzQ5NSwgMC4zMDE4MzMsIDAuNTk4MTA1LCAwLjg5Njg5OSwgMS41ODYzMiwgMS45ODc3MiIsIFwKLSAgICAgICAgICAiMC4xMDM2NSwgMC4xMjMzNjEsIDAuMzAxODI0LCAwLjU5OTQ2LCAwLjg5NzAxOSwgMS41ODksIDEuOTg1MTEiLCBcCi0gICAgICAgICAgIjAuMTAzNjUxLCAwLjEyMzUwNCwgMC4zMDE1NSwgMC41OTk0ODYsIDAuODk2NzY3LCAxLjU4ODk1LCAxLjk4NzMyIiwgXAotICAgICAgICAgICIwLjEwMzUyMywgMC4xMjMzODYsIDAuMzAxNDgyLCAwLjU5OTIxMiwgMC44OTY5NzQsIDEuNTkwNTUsIDEuOTg1MTIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUk4iOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHByZXNldDsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTYzNTIxLCAwLjE3NDAzNywgMC4yNjg3MzcsIDAuNDI2NTQ3LCAwLjU4NDM0MywgMC45NTI2MTksIDEuMTYzMDEiLCBcCi0gICAgICAgICAgIjAuMTcxMzM0LCAwLjE4MTg1MywgMC4yNzY1NDgsIDAuNDM0MzM2LCAwLjU5MjAxMSwgMC45NjAyMTYsIDEuMTcwODQiLCBcCi0gICAgICAgICAgIjAuMTc5MDE3LCAwLjE4OTUyNCwgMC4yODQyMzEsIDAuNDQyMDI0LCAwLjU5OTg2LCAwLjk2NzgxLCAxLjE3ODU2IiwgXAotICAgICAgICAgICIwLjE4NDU0OCwgMC4xOTUwNzMsIDAuMjg5NzE3LCAwLjQ0NzU1NywgMC42MDUyMzcsIDAuOTczNDMsIDEuMTg0MDUiLCBcCi0gICAgICAgICAgIjAuMTg5MTM2LCAwLjE5OTY1MiwgMC4yOTQzNTQsIDAuNDUyMTQyLCAwLjYwOTk2MSwgMC45NzgxOTgsIDEuMTg4NTciLCBcCi0gICAgICAgICAgIjAuMTk1MDMsIDAuMjA1NTQ5LCAwLjMwMDI1NCwgMC40NTgwMzMsIDAuNjE1ODM3LCAwLjk4NDEwNCwgMS4xOTQ1NiIsIFwKLSAgICAgICAgICAiMC4xOTk0MDYsIDAuMjA5OTE3LCAwLjMwNDU4NCwgMC40NjI0MTQsIDAuNjIwMTksIDAuOTg4NDQ0LCAxLjE5ODg0Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExNTg1OCwgMC4xMzgwNTQsIDAuMzM3Njg3LCAwLjY2OTUxMSwgMS4wMDE3NiwgMS43NzYxNiwgMi4yMjIwMyIsIFwKLSAgICAgICAgICAiMC4xMTU4NTYsIDAuMTM4MDU1LCAwLjMzNzY4NSwgMC42NzAzMDIsIDEuMDAwNywgMS43NzgxMywgMi4yMTk4NCIsIFwKLSAgICAgICAgICAiMC4xMTU4NTMsIDAuMTM3OTk0LCAwLjMzNzY4MSwgMC42Njk2MDEsIDEuMDAyODMsIDEuNzc2NTYsIDIuMjE4OTEiLCBcCi0gICAgICAgICAgIjAuMTE1ODU5LCAwLjEzODA1NSwgMC4zMzc2ODYsIDAuNjcwMTk1LCAxLjAwMjEyLCAxLjc3NjA0LCAyLjIyMjAyIiwgXAotICAgICAgICAgICIwLjExNTg1NCwgMC4xMzgwNTIsIDAuMzM3Njg4LCAwLjY3MDIwMiwgMS4wMDE2NywgMS43NzU5LCAyLjIyMDA2IiwgXAotICAgICAgICAgICIwLjExNTg1NiwgMC4xMzgwNDksIDAuMzM3NiwgMC42NzAyMDUsIDEuMDAyNjQsIDEuNzc2MzMsIDIuMjE5NDUiLCBcCi0gICAgICAgICAgIjAuMTE1OTYxLCAwLjEzNzk5NCwgMC4zMzc2NDYsIDAuNjcwMDcsIDEuMDAyNzEsIDEuNzc4NzgsIDIuMjIwMTgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiU04iOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGNsZWFyOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNTI3MjgsIDAuMTYzMjM4LCAwLjI1NzkxNCwgMC40MTU3MzcsIDAuNTczNTY1LCAwLjk0MTY2NiwgMS4xNTIyNyIsIFwKLSAgICAgICAgICAiMC4xNTk1MTMsIDAuMTcwMDMsIDAuMjY0NzMxLCAwLjQyMjUxOSwgMC41ODAzMzYsIDAuOTQ4NTY1LCAxLjE1ODkxIiwgXAotICAgICAgICAgICIwLjE2NzA3OSwgMC4xNzc1OTQsIDAuMjcyMzE2LCAwLjQzMDEwOSwgMC41ODc5MjUsIDAuOTU2MTU3LCAxLjE2NjgiLCBcCi0gICAgICAgICAgIjAuMTc0MzMsIDAuMTg0ODQ1LCAwLjI3OTUzMSwgMC40MzczMjksIDAuNTk1MTI2LCAwLjk2MzM2NSwgMS4xNzM4NiIsIFwKLSAgICAgICAgICAiMC4xODExNDMsIDAuMTkxNjU5LCAwLjI4NjMyNywgMC40NDQxNDgsIDAuNjAyMDU2LCAwLjk3MDI0MiwgMS4xODA2NSIsIFwKLSAgICAgICAgICAiMC4xOTA4NDUsIDAuMjAxMzYyLCAwLjI5NjA0NywgMC40NTM4NTUsIDAuNjExNjQ4LCAwLjk3OTkxLCAxLjE5MDM4IiwgXAotICAgICAgICAgICIwLjE5ODM4OCwgMC4yMDg5MDksIDAuMzAzNTc3LCAwLjQ2MTQwNSwgMC42MTkxOTYsIDAuOTg3NDQ1LCAxLjE5NzkiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTE1ODQ3LCAwLjEzODA0MywgMC4zMzc2NTYsIDAuNjY5NTIsIDEuMDAwNiwgMS43Nzg4OSwgMi4yMTgxMiIsIFwKLSAgICAgICAgICAiMC4xMTU4NTksIDAuMTM4MDUyLCAwLjMzNzY0MywgMC42NzAxODcsIDEuMDAxNjksIDEuNzc2MDUsIDIuMjIyMDQiLCBcCi0gICAgICAgICAgIjAuMTE1ODQ3LCAwLjEzODA1OCwgMC4zMzc2NDMsIDAuNjcwMTgzLCAxLjAwMTY2LCAxLjc3NTc4LCAyLjIxODg0IiwgXAotICAgICAgICAgICIwLjExNTg1LCAwLjEzODA1MiwgMC4zMzc2NDcsIDAuNjY5NTIyLCAxLjAwMTY4LCAxLjc3NzA5LCAyLjIxOTEzIiwgXAotICAgICAgICAgICIwLjExNTg0OSwgMC4xMzc5OCwgMC4zMzc2NTcsIDAuNjcwMiwgMS4wMDI3NiwgMS43Nzg3NiwgMi4yMjIxNiIsIFwKLSAgICAgICAgICAiMC4xMTU4NjYsIDAuMTM3OTkzLCAwLjMzNzE3OCwgMC42NzAxODEsIDEuMDAxODMsIDEuNzc2NTIsIDIuMjIxNCIsIFwKLSAgICAgICAgICAiMC4xMTU4MTYsIDAuMTM4MDU4LCAwLjMzNzU3MiwgMC42NzAxODQsIDEuMDAyNjksIDEuNzc4MjgsIDIuMjIwMTMiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTI2MDYsIDAuMTM1NzA1LCAwLjIyMjUyMywgMC4zNjcxOCwgMC41MTE4ODMsIDAuODQ5NDU4LCAxLjA0MjI4IiwgXAotICAgICAgICAgICIwLjEzMzI3LCAwLjE0MjkxNSwgMC4yMjk3MzIsIDAuMzc0NDA5LCAwLjUxOTEwNiwgMC44NTY2OSwgMS4wNDk3MyIsIFwKLSAgICAgICAgICAiMC4xNDMyLCAwLjE1Mjg0NSwgMC4yMzk2NjEsIDAuMzg0MzQ1LCAwLjUyOTAzMywgMC44NjY2MjQsIDEuMDU5MjciLCBcCi0gICAgICAgICAgIjAuMTUyMDQ5LCAwLjE2MTY5NSwgMC4yNDg1MTIsIDAuMzkzMTg4LCAwLjUzNzg2MiwgMC44NzU0MjgsIDEuMDY4NSIsIFwKLSAgICAgICAgICAiMC4xNTk4ODMsIDAuMTY5NTM3LCAwLjI1NjM1NywgMC40MDEwMjYsIDAuNTQ1NzM4LCAwLjg4MzMyNiwgMS4wNzYyNSIsIFwKLSAgICAgICAgICAiMC4xNjk5MTksIDAuMTc5NTY5LCAwLjI2NjM2OCwgMC40MTEwNTcsIDAuNTU1Nzc5LCAwLjg5MzMxNywgMS4wODYyMSIsIFwKLSAgICAgICAgICAiMC4xNzcwNDIsIDAuMTg2Njk4LCAwLjI3MzQ5OSwgMC40MTgxOTYsIDAuNTYyOTI2LCAwLjkwMDUzNCwgMS4wOTMzNSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDM3NDIsIDAuMTIzNTIsIDAuMzAxOTg4LCAwLjU5OTQyNywgMC44OTcxMjEsIDEuNTkxMTEsIDEuOTg1MDYiLCBcCi0gICAgICAgICAgIjAuMTAzNzQxLCAwLjEyMzUxOCwgMC4zMDIwMDMsIDAuNTk5NDkzLCAwLjg5NzE4MSwgMS41ODk5NCwgMS45ODc1OCIsIFwKLSAgICAgICAgICAiMC4xMDM3NCwgMC4xMjM1MTIsIDAuMzAxOTkzLCAwLjU5OTU3OCwgMC44OTY5MzMsIDEuNTg4NzQsIDEuOTg3NDkiLCBcCi0gICAgICAgICAgIjAuMTAzNzQzLCAwLjEyMzUzNCwgMC4zMDE5ODcsIDAuNTk5NjE2LCAwLjg5NzE0MiwgMS41OTA5NiwgMS45ODgyMSIsIFwKLSAgICAgICAgICAiMC4xMDM3MzgsIDAuMTIzNTQxLCAwLjMwMTk5MSwgMC41OTk2MjYsIDAuODk3MTU3LCAxLjU5MTE2LCAxLjk4Nzk2IiwgXAotICAgICAgICAgICIwLjEwMzcxNiwgMC4xMjM1MSwgMC4zMDE5ODEsIDAuNTk5MzYsIDAuODk3MjMsIDEuNTkwNzksIDEuOTg4IiwgXAotICAgICAgICAgICIwLjEwMzU1OCwgMC4xMjM0MiwgMC4zMDIwNTMsIDAuNTk5NTY1LCAwLjg5NzE1LCAxLjU5MTU3LCAxLjk4NTQyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNTEsIDAuMDA1MTAxLCAwLjAwNTEwNiwgMC4wMDUxMDcsIDAuMDA1MTA4LCAwLjAwNTEwOCwgMC4wMDUxMSIsIFwKLSAgICAgICAgICAiMC4wMDUwOTksIDAuMDA1MSwgMC4wMDUxMDQsIDAuMDA1MTA2LCAwLjAwNTEwNiwgMC4wMDUxMDgsIDAuMDA1MTA3IiwgXAotICAgICAgICAgICIwLjAwNTE0OCwgMC4wMDUxNDksIDAuMDA1MTU0LCAwLjAwNTE1NiwgMC4wMDUxNTYsIDAuMDA1MTU4LCAwLjAwNTE1OCIsIFwKLSAgICAgICAgICAiMC4wMDUyMDEsIDAuMDA1MjAyLCAwLjAwNTIwNiwgMC4wMDUyMDgsIDAuMDA1MjA4LCAwLjAwNTIwOSwgMC4wMDUyMDciLCBcCi0gICAgICAgICAgIjAuMDA1MjcxLCAwLjAwNTI3MiwgMC4wMDUyNzYsIDAuMDA1Mjc4LCAwLjAwNTI3OSwgMC4wMDUyNzksIDAuMDA1Mjc5IiwgXAotICAgICAgICAgICIwLjAwNTM5LCAwLjAwNTM4NCwgMC4wMDUzOTUsIDAuMDA1MzksIDAuMDA1Mzk3LCAwLjAwNTM5MSwgMC4wMDUzOTEiLCBcCi0gICAgICAgICAgIjAuMDA1NDksIDAuMDA1NDc4LCAwLjAwNTQ4MSwgMC4wMDU0ODMsIDAuMDA1NDgzLCAwLjAwNTQ4NCwgMC4wMDU0OTUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDU0NDIsIDAuMDA1NDQzLCAwLjAwNTQ0OCwgMC4wMDU0NDksIDAuMDA1NDUsIDAuMDA1NDUxLCAwLjAwNTQ1MSIsIFwKLSAgICAgICAgICAiMC4wMDU0MzYsIDAuMDA1NDM3LCAwLjAwNTQ0MSwgMC4wMDU0NDMsIDAuMDA1NDQzLCAwLjAwNTQ0NCwgMC4wMDU0NDYiLCBcCi0gICAgICAgICAgIjAuMDA1NDc1LCAwLjAwNTQ3NywgMC4wMDU0ODEsIDAuMDA1NDgyLCAwLjAwNTQ4MywgMC4wMDU0ODQsIDAuMDA1NDg0IiwgXAotICAgICAgICAgICIwLjAwNTUyMywgMC4wMDU1MjUsIDAuMDA1NTI5LCAwLjAwNTUzMSwgMC4wMDU1MzIsIDAuMDA1NTMyLCAwLjAwNTUzMiIsIFwKLSAgICAgICAgICAiMC4wMDU1OSwgMC4wMDU1OTEsIDAuMDA1NTk2LCAwLjAwNTU5NywgMC4wMDU1OTgsIDAuMDA1NTk5LCAwLjAwNTU5OCIsIFwKLSAgICAgICAgICAiMC4wMDU2OTUsIDAuMDA1Njk2LCAwLjAwNTcwMiwgMC4wMDU3MDIsIDAuMDA1NzEzLCAwLjAwNTcxMywgMC4wMDU3MTMiLCBcCi0gICAgICAgICAgIjAuMDA1NzgyLCAwLjAwNTc4NCwgMC4wMDU3ODgsIDAuMDA1NzksIDAuMDA1ODA1LCAwLjAwNTc5LCAwLjAwNTc5MSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDU5ODgsIDAuMDA1OTg5LCAwLjAwNTk4MywgMC4wMDU5NzcsIDAuMDA1OTc1LCAwLjAwNTk3MywgMC4wMDU5NzIiLCBcCi0gICAgICAgICAgIjAuMDA1OTg5LCAwLjAwNTk4OSwgMC4wMDU5ODMsIDAuMDA1OTc3LCAwLjAwNTk3NSwgMC4wMDU5NzQsIDAuMDA1OTcxIiwgXAotICAgICAgICAgICIwLjAwNjAyMiwgMC4wMDYwMjEsIDAuMDA2MDE1LCAwLjAwNjAxLCAwLjAwNjAwNywgMC4wMDYwMDQsIDAuMDA2MDA2IiwgXAotICAgICAgICAgICIwLjAwNjA2NywgMC4wMDYwNjcsIDAuMDA2MDYxLCAwLjAwNjA1NSwgMC4wMDYwNTIsIDAuMDA2MDUxLCAwLjAwNjA0NSIsIFwKLSAgICAgICAgICAiMC4wMDYxMTYsIDAuMDA2MTE3LCAwLjAwNjExMSwgMC4wMDYxMDUsIDAuMDA2MTAxLCAwLjAwNjA5OCwgMC4wMDYwOTgiLCBcCi0gICAgICAgICAgIjAuMDA2MjIyLCAwLjAwNjIyMiwgMC4wMDYyMTYsIDAuMDA2MjA5LCAwLjAwNjIwNiwgMC4wMDYyMDIsIDAuMDA2MjAyIiwgXAotICAgICAgICAgICIwLjAwNjMxOCwgMC4wMDYzMTgsIDAuMDA2MzA5LCAwLjAwNjMwNSwgMC4wMDYzMDIsIDAuMDA2Mjk4LCAwLjAwNjI5NyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihzY2FsYXIpIHsKLSAgICAgICAgdmFsdWVzKCIwIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiU04iOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDQ0MiwgMC4wMDQ0NDMsIDAuMDA0NDQ4LCAwLjAwNDQ0OSwgMC4wMDQ0NSwgMC4wMDQ0NTIsIDAuMDA0NDUiLCBcCi0gICAgICAgICAgIjAuMDA0NDEzLCAwLjAwNDQxNSwgMC4wMDQ0MTksIDAuMDA0NDIsIDAuMDA0NDIxLCAwLjAwNDQyMSwgMC4wMDQ0MjEiLCBcCi0gICAgICAgICAgIjAuMDA0NDAzLCAwLjAwNDQwNCwgMC4wMDQ0MDksIDAuMDA0NDEsIDAuMDA0NDEsIDAuMDA0NDEyLCAwLjAwNDQxMSIsIFwKLSAgICAgICAgICAiMC4wMDQ0MDgsIDAuMDA0NDA4LCAwLjAwNDQxMiwgMC4wMDQ0MTQsIDAuMDA0NDE0LCAwLjAwNDQxNSwgMC4wMDQ0MTUiLCBcCi0gICAgICAgICAgIjAuMDA0NDIsIDAuMDA0NDIyLCAwLjAwNDQyNiwgMC4wMDQ0MjgsIDAuMDA0NDI5LCAwLjAwNDQyOSwgMC4wMDQ0MjkiLCBcCi0gICAgICAgICAgIjAuMDA0NDYzLCAwLjAwNDQ2NCwgMC4wMDQ0NjksIDAuMDA0NDcsIDAuMDA0NDcxLCAwLjAwNDQ3MiwgMC4wMDQ0NzIiLCBcCi0gICAgICAgICAgIjAuMDA0NTEyLCAwLjAwNDUxMywgMC4wMDQ1MiwgMC4wMDQ1MTksIDAuMDA0NTIsIDAuMDA0NTIxLCAwLjAwNDUyMSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjI5OSwgMC4wMDYzLCAwLjAwNjMwNCwgMC4wMDYzMDYsIDAuMDA2MzA2LCAwLjAwNjMwNiwgMC4wMDYzMDciLCBcCi0gICAgICAgICAgIjAuMDA2Mjg1LCAwLjAwNjI4NSwgMC4wMDYyOSwgMC4wMDYyOTEsIDAuMDA2MjkyLCAwLjAwNjI5MiwgMC4wMDYyOTIiLCBcCi0gICAgICAgICAgIjAuMDA2MzA1LCAwLjAwNjMwNiwgMC4wMDYzMSwgMC4wMDYzMTIsIDAuMDA2MzEyLCAwLjAwNjMxMiwgMC4wMDYzMTIiLCBcCi0gICAgICAgICAgIjAuMDA2MzQxLCAwLjAwNjM0MywgMC4wMDYzNDcsIDAuMDA2MzQ5LCAwLjAwNjM0OSwgMC4wMDYzNSwgMC4wMDYzNSIsIFwKLSAgICAgICAgICAiMC4wMDYzOTUsIDAuMDA2Mzk2LCAwLjAwNjQsIDAuMDA2NDAyLCAwLjAwNjQwMywgMC4wMDY0MDMsIDAuMDA2NDAzIiwgXAotICAgICAgICAgICIwLjAwNjUwMiwgMC4wMDY1MDMsIDAuMDA2NTA4LCAwLjAwNjUwOSwgMC4wMDY1MSwgMC4wMDY1MSwgMC4wMDY1MSIsIFwKLSAgICAgICAgICAiMC4wMDY2MTgsIDAuMDA2NjIsIDAuMDA2NjI0LCAwLjAwNjYyNiwgMC4wMDY2MjYsIDAuMDA2NjI2LCAwLjAwNjYyNiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUk4pICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY1OTY4MzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2NTk2ODM7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjU5NDE3OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDYyNiwgMC4wMDA2MjksIDAuMDAwNywgMC4wMDA4MDUsIDAuMDAwOTIzLCAwLjAwMTE0LCAwLjAwMTMzOSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjc0MywgMC4wMDI3NDgsIDAuMDAyODEsIDAuMDAyOTA2LCAwLjAwMzAyMiwgMC4wMDMyNjUsIDAuMDAzNDM3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRCZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjE2MzUyMSwgMC4xNzEzMzQsIDAuMTc5MDE3LCAwLjE4NDU0OCwgMC4xODkxMzYsIDAuMTk1MDMsIDAuMTk5NDA2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogcmVjb3ZlcnlfcmlzaW5nOwotICAgICAgd2hlbiA6ICJEJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMV9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHJlY292ZXJ5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1LCAwLjAzODc1LCAwLjAzMjUsIDAuMDI2MjUsIDAuMDIsIDAuMDE2MjUsIDAuMDA3NSIsIFwKLSAgICAgICAgICAiMC4wNTUsIDAuMDUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMjUsIDAuMDIxMjUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMDYxMjUsIDAuMDU2MjUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzc1LCAwLjAyNzUsIDAuMDI1IiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDYyNSwgMC4wNSwgMC4wNDM3NSwgMC4wNDM3NSwgMC4wMzM3NSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4wNzM3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1LCAwLjA0Mzc1LCAwLjA0LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIjAuMDc3NSwgMC4wNzI1LCAwLjA2LCAwLjA1Mzc1LCAwLjA1Mzc1LCAwLjA0Mzc1LCAwLjA0MTI1IiwgXAotICAgICAgICAgICIwLjA4NjI1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1MjUsIDAuMDQzNzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiU04iOwotICAgICAgdGltaW5nX3R5cGUgOiByZWNvdmVyeV9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEIjsKLSAgICAgIHNkZl9jb25kIDogIkQgPT0gMSdiMCI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQocmVjb3ZlcnlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDUsIDAuMDYxMjUsIDAuMDY3NSwgMC4wNzM3NSwgMC4wOCwgMC4wOSwgMC4wOTI1IiwgXAotICAgICAgICAgICIwLjA0NSwgMC4wNSwgMC4wNTYyNSwgMC4wNjg3NSwgMC4wNzUsIDAuMDg1LCAwLjA4NzUiLCBcCi0gICAgICAgICAgIjAuMDQ1LCAwLjA1LCAwLjA1NjI1LCAwLjA2MjUsIDAuMDY4NzUsIDAuMDc4NzUsIDAuMDg3NSIsIFwKLSAgICAgICAgICAiMC4wMzg3NSwgMC4wNDM3NSwgMC4wNTYyNSwgMC4wNjI1LCAwLjA2ODc1LCAwLjA3ODc1LCAwLjA4MTI1IiwgXAotICAgICAgICAgICIwLjAzODc1LCAwLjA0Mzc1LCAwLjA1LCAwLjA1NjI1LCAwLjA2MjUsIDAuMDcyNSwgMC4wODEyNSIsIFwKLSAgICAgICAgICAiMC4wMzUsIDAuMDQsIDAuMDUyNSwgMC4wNTg3NSwgMC4wNjUsIDAuMDY4NzUsIDAuMDc3NSIsIFwKLSAgICAgICAgICAiMC4wMzI1LCAwLjA0Mzc1LCAwLjA1LCAwLjA1NjI1LCAwLjA2MjUsIDAuMDcyNSwgMC4wNzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiByZW1vdmFsX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiRCZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzFfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChyZW1vdmFsX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMTI1LCAtMC4wMDEyNSwgMC4wMDUsIDAuMDExMjUsIDAuMDE3NSwgMC4wMjEyNSwgMC4wMjM3NSIsIFwKLSAgICAgICAgICAiLTAuMDE3NSwgLTAuMDEyNSwgMCwgMCwgMC4wMDYyNSwgMC4wMTYyNSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMCwgMC4wMDM3NSwgMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDI1LCAtMC4wMTI1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMC4wMDM3NSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAtMC4wMDI1LCAwIiwgXAotICAgICAgICAgICItMC4wNCwgLTAuMDM1LCAtMC4wMjg3NSwgLTAuMDIyNSwgLTAuMDE2MjUsIC0wLjAwNjI1LCAtMC4wMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTUsIC0wLjAwNjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTTikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNzg2MTc7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNzg2MTc7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNzg1OTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA1OTMsIDAuMDAwNTkyLCAwLjAwMDU5MywgMC4wMDA1OTIsIDAuMDAwNTkyLCAwLjAwMDU5MiwgMC4wMDA1OTIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA1OTksIDAuMDAwNTk2LCAwLjAwMDU5NSwgMC4wMDA1OTUsIDAuMDAwNTk0LCAwLjAwMDU5NCwgMC4wMDA1OTQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiU04iOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFEJiFSTiI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fUk5fRVFfMCA9PSAxJ2IxIjsKLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjEyNTk3OCwgMC4xMzMyNywgMC4xNDMxOTksIDAuMTUyMDQ5LCAwLjE1OTg4MywgMC4xNjk5MTgsIDAuMTc3MDQyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogcmVjb3ZlcnlfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRCZSTiI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fUk5fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChyZWNvdmVyeV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTI1LCAwLjAwMTI1LCAtMC4wMDUsIC0wLjAxMTI1LCAtMC4wMTc1LCAtMC4wMjc1LCAtMC4wMzYyNSIsIFwKLSAgICAgICAgICAiMC4wMTc1LCAwLjAwNjI1LCAwLCAtMC4wMDYyNSwgLTAuMDEyNSwgLTAuMDIyNSwgLTAuMDI1IiwgXAotICAgICAgICAgICIwLjAyMzc1LCAwLjAxODc1LCAwLjAwNjI1LCAwLCAtMC4wMDYyNSwgLTAuMDE2MjUsIC0wLjAxODc1IiwgXAotICAgICAgICAgICIwLjAzNjI1LCAwLjAyNSwgMC4wMTI1LCAwLjAwNjI1LCAwLCAtMC4wMDM3NSwgLTAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4wNDI1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMTI1LCAwLjAwNjI1LCAwLjAwMjUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICIwLjA1MjUsIDAuMDQxMjUsIDAuMDM1LCAwLjAyODc1LCAwLjAyMjUsIDAuMDEyNSwgMC4wMDM3NSIsIFwKLSAgICAgICAgICAiMC4wNjEyNSwgMC4wNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyMTI1LCAwLjAxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiByZW1vdmFsX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUQmUk4iOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1JOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQocmVtb3ZhbF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTg3NSwgMC4wMjM3NSwgMC4wMzYyNSwgMC4wNDI1LCAwLjA0ODc1LCAwLjA1MjUsIDAuMDYxMjUiLCBcCi0gICAgICAgICAgIjAuMDEzNzUsIDAuMDE4NzUsIDAuMDMxMjUsIDAuMDM3NSwgMC4wNDM3NSwgMC4wNDc1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICIwLjAwNzUsIDAuMDEyNSwgMC4wMTg3NSwgMC4wMjUsIDAuMDMxMjUsIDAuMDQxMjUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIi0wLjAwNSwgMC4wMDYyNSwgMC4wMTI1LCAwLjAxODc1LCAwLjAyNSwgMC4wMzUsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDExMjUsIDAsIDAuMDA2MjUsIDAuMDEyNSwgMC4wMTg3NSwgMC4wMjg3NSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDE1LCAtMC4wMSwgMC4wMDI1LCAwLjAwODc1LCAwLjAxNSwgMC4wMTg3NSwgMC4wMjEyNSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLCAwLjAwNjI1LCAwLjAxLCAwLjAxODc1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogREZGVFJYMiAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChERkZUUlgyKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDEuMTMwNTc7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgZmYgKE4zMCxRQklOVCkgewotICAgIG5leHRfc3RhdGUgOiAiKEQgUk4pIjsKLSAgICBjbG9ja2VkX29uIDogIkNLIjsKLSAgfQotICBwaW4oQ0spICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYxNTQ1MTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MTU0MDI7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjE1NDUxOwotICAgIGNsb2NrIDogdHJ1ZTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDM3MTMsIDAuMDAzNzA5LCAwLjAwMzc5MiwgMC4wMDM4ODQsIDAuMDA0MDExLCAwLjAwNDI1LCAwLjAwNDQyNiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNzU3NSwgMC4wMDc1NzMsIDAuMDA3NjYsIDAuMDA3NzkxLCAwLjAwNzk1LCAwLjAwODEzMywgMC4wMDg0MzQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFEJiFSTiI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fUk5fRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjEwODA3NywgMC4xMTYyMzYsIDAuMTI1MjUsIDAuMTMyMDE5LCAwLjEzNzUwNywgMC4xNDQ4NjQsIDAuMTUwMzg5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wNTY5NzksIDAuMDY1MDI0LCAwLjA3Mzg4NiwgMC4wODAzOTksIDAuMDg1NzQ5LCAwLjA5MjY5OSwgMC4wOTc4MDIiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEQpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY2OTUyODsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2NjkzMDQ7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjY5NTI4OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjc3MiwgMC4wMDI3NjEsIDAuMDAyODI1LCAwLjAwMjkxMSwgMC4wMDMwMjIsIDAuMDAzMjA0LCAwLjAwMzM3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNDY3NywgMC4wMDQ2NzYsIDAuMDA0NzMzLCAwLjAwNDg0LCAwLjAwNDkyLCAwLjAwNTA5OCwgMC4wMDUyNTUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiUk4iOwotICAgICAgc2RmX2NvbmQgOiAiUk4gPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDI1LCAtMC4wMiwgLTAuMDEzNzUsIC0wLjAxMzc1LCAtMC4wMDc1LCAtMC4wMDM3NSwgLTAuMDAxMjUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMjUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxODc1LCAtMC4wMTUsIC0wLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMjEyNSwgLTAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDM3NSwgLTAuMDM3NSwgLTAuMDI3NSwgLTAuMDI1IiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDQzNzUsIC0wLjA0Mzc1LCAtMC4wNCwgLTAuMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDY1LCAtMC4wNiwgLTAuMDUzNzUsIC0wLjA1Mzc1LCAtMC4wNDc1LCAtMC4wNSwgLTAuMDQxMjUiLCBcCi0gICAgICAgICAgIi0wLjA3Mzc1LCAtMC4wNjg3NSwgLTAuMDYyNSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA1MjUsIC0wLjA1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDYyNSwgMC4wMTEyNSwgMC4wMjM3NSwgMC4wMywgMC4wMywgMC4wNCwgMC4wNDI1IiwgXAotICAgICAgICAgICIwLjAwMTI1LCAwLjAwNjI1LCAwLjAxMjUsIDAuMDE4NzUsIDAuMDI1LCAwLjAyODc1LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjAxMTI1LCAwLCAwLjAwNjI1LCAwLjAxMjUsIDAuMDE4NzUsIDAuMDIyNSwgMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjAxMTI1LCAtMC4wMDYyNSwgMCwgMC4wMDYyNSwgMC4wMTI1LCAwLjAxNjI1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDE3NSwgLTAuMDEyNSwgMCwgMCwgMC4wMDYyNSwgMC4wMTYyNSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDIxMjUsIC0wLjAxNjI1LCAtMC4wMSwgLTAuMDAzNzUsIDAuMDAyNSwgMC4wMDYyNSwgMC4wMTUiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAsIDAuMDAzNzUsIDAuMDA2MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlJOIjsKLSAgICAgIHNkZl9jb25kIDogIlJOID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0Mzc1LCAwLjAzODc1LCAwLjAzMjUsIDAuMDI2MjUsIDAuMDI2MjUsIDAuMDIyNSwgMC4wMiIsIFwKLSAgICAgICAgICAiMC4wNTUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyNzUsIDAuMDI1IiwgXAotICAgICAgICAgICIwLjA2MTI1LCAwLjA1NjI1LCAwLjA1LCAwLjA0Mzc1LCAwLjA0Mzc1LCAwLjA0LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIjAuMDczNzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNTYyNSwgMC4wNSwgMC4wNDYyNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4wOCwgMC4wNjg3NSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1MjUsIDAuMDUiLCBcCi0gICAgICAgICAgIjAuMDksIDAuMDg1LCAwLjA3MjUsIDAuMDcyNSwgMC4wNjYyNSwgMC4wNjI1LCAwLjA2IiwgXAotICAgICAgICAgICIwLjA5ODc1LCAwLjA4NzUsIDAuMDgxMjUsIDAuMDgxMjUsIDAuMDc1LCAwLjA3MTI1LCAwLjA2ODc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE4NzUsIDAuMDA3NSwgMC4wMDEyNSwgLTAuMDA1LCAtMC4wMTEyNSwgLTAuMDIxMjUsIC0wLjAyMzc1IiwgXAotICAgICAgICAgICIwLjAyMzc1LCAwLjAxODc1LCAwLjAwNjI1LCAwLCAtMC4wMDYyNSwgLTAuMDEsIC0wLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMDM2MjUsIDAuMDI1LCAwLjAxODc1LCAwLjAxMjUsIDAuMDA2MjUsIC0wLjAwMzc1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiMC4wNDI1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMTg3NSwgMC4wMTI1LCAwLjAwMjUsIDAiLCBcCi0gICAgICAgICAgIjAuMDQyNSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMTg3NSwgMC4wMDg3NSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiMC4wNTI1LCAwLjA0NzUsIDAuMDM1LCAwLjAyODc1LCAwLjAyMjUsIDAuMDE4NzUsIDAuMDEiLCBcCi0gICAgICAgICAgIjAuMDU1LCAwLjA1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDIxMjUsIDAuMDE4NzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFEpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC42ODkxMzI7Ci0gICAgZnVuY3Rpb24gOiAiTjMwIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBub25fdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJpc2luZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODMzNTcsIDAuMTYwNjMyLCAwLjIyMjI4MSwgMC4yOTkxOTcsIDAuMzc1NzY1LCAwLjQ1MjQ4NywgMC41MjkxNjYiLCBcCi0gICAgICAgICAgIjAuMDkxNDQ4LCAwLjE2ODc5MiwgMC4yMzAzNjcsIDAuMzA3MjkxLCAwLjM4Mzg1NSwgMC40NjA1ODUsIDAuNTM3MjMiLCBcCi0gICAgICAgICAgIjAuMTAwMjQ3LCAwLjE3NzUzMiwgMC4yMzkwOTcsIDAuMzE2MDYxLCAwLjM5MjY0NSwgMC40NjkzMDksIDAuNTQ1ODYiLCBcCi0gICAgICAgICAgIjAuMTA3MDE0LCAwLjE4NDQ5NiwgMC4yNDU5NTUsIDAuMzIyNzQsIDAuMzk5NDY4LCAwLjQ3NjI0MiwgMC41NTI4MTkiLCBcCi0gICAgICAgICAgIjAuMTEyNDEyLCAwLjE4OTcwOSwgMC4yNTEzMDgsIDAuMzI4MiwgMC40MDQ4MTYsIDAuNDgxNDgzLCAwLjU1ODI3OCIsIFwKLSAgICAgICAgICAiMC4xMTk2NDcsIDAuMTk3MDM2LCAwLjI1ODgzMSwgMC4zMzU0MDksIDAuNDEyMDc0LCAwLjQ4ODczNiwgMC41NjU1MDMiLCBcCi0gICAgICAgICAgIjAuMTI1MDg5LCAwLjIwMjQzNCwgMC4yNjQxMDksIDAuMzQwNTM1LCAwLjQxNzQ0LCAwLjQ5Mzk2NCwgMC41NzExMTYiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQxMDA5LCAwLjE5OTQ0MSwgMC4zMjg4NDMsIDAuNDg5NzI5LCAwLjY1MjYwNCwgMC44MTQ3MzMsIDAuOTc2ODYyIiwgXAotICAgICAgICAgICIwLjA0MTA0OCwgMC4xOTkzNzcsIDAuMzI4ODM5LCAwLjQ4OTcyNSwgMC42NTI1ODksIDAuODE0NzI2LCAwLjk3Njg1NSIsIFwKLSAgICAgICAgICAiMC4wNDEwNDQsIDAuMTk5NDUyLCAwLjMyODgxNCwgMC40ODk3ODksIDAuNjUyNTYzLCAwLjgxNDc2MywgMC45NzU3MjYiLCBcCi0gICAgICAgICAgIjAuMDQwOTkxLCAwLjE5OTMwOSwgMC4zMjg4MzksIDAuNDkwNjc2LCAwLjY1MjU1NCwgMC44MTMzNjQsIDAuOTc2ODcxIiwgXAotICAgICAgICAgICIwLjA0MDk4MywgMC4xOTk0NTksIDAuMzI4ODI0LCAwLjQ4OTgxMywgMC42NTI1NDIsIDAuODE0NzQxLCAwLjk3Njg0NCIsIFwKLSAgICAgICAgICAiMC4wNDEwMTQsIDAuMTk5MzkyLCAwLjMyODMyNSwgMC40OTA1NywgMC42NTI0NjEsIDAuODE0NjYzLCAwLjk3Njc1NSIsIFwKLSAgICAgICAgICAiMC4wNDA5NTMsIDAuMTk5NDM4LCAwLjMyODE5MSwgMC40ODk5MzYsIDAuNjUyNDM3LCAwLjgxMzY1NCwgMC45NzUyNjgiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDkzMTAzLCAwLjE3MDA1LCAwLjIzMDU5LCAwLjMwNjg1LCAwLjM4MjY5OCwgMC40NTgzMjksIDAuNTM0NDg3IiwgXAotICAgICAgICAgICIwLjEwMTI2NywgMC4xNzgwMywgMC4yMzg3MjcsIDAuMzE1MDMsIDAuMzkwODU3LCAwLjQ2NjczLCAwLjU0MjYzMyIsIFwKLSAgICAgICAgICAiMC4xMTAyODIsIDAuMTg3MjcsIDAuMjQ4MDE3LCAwLjMyNDAxOSwgMC4zOTk4NzEsIDAuNDc1ODQzLCAwLjU1MTY4MiIsIFwKLSAgICAgICAgICAiMC4xMTcwNDcsIDAuMTkzOTgzLCAwLjI1NDM5NSwgMC4zMzA3NzEsIDAuNDA2NjI0LCAwLjQ4MjI4NywgMC41NTg0MyIsIFwKLSAgICAgICAgICAiMC4xMjI1MzIsIDAuMTk5NDYsIDAuMjYwMDAxLCAwLjMzNjI1OSwgMC40MTIxMDUsIDAuNDg3NzAzLCAwLjU2MzkwNSIsIFwKLSAgICAgICAgICAiMC4xMjk5MTIsIDAuMjA2NzgzLCAwLjI2NzgzMiwgMC4zNDM2NDQsIDAuNDE5NDY4LCAwLjQ5NTQyMywgMC41NzEyODUiLCBcCi0gICAgICAgICAgIjAuMTM1NDIzLCAwLjIxMjMyMiwgMC4yNzMyMDcsIDAuMzQ5MjIyLCAwLjQyNTI3OCwgMC41MDA5NDEsIDAuNTc2OTIxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0MDEzOCwgMC4xOTQ2OTcsIDAuMzIwNDAxLCAwLjQ3ODE0NSwgMC42MzYxMjUsIDAuNzkyNTgxLCAwLjk1MTkwOCIsIFwKLSAgICAgICAgICAiMC4wMzk4ODUsIDAuMTk0OTE2LCAwLjMxOTc3OSwgMC40NzY4ODksIDAuNjM2MTE4LCAwLjc5NDA2LCAwLjk1MTkyNCIsIFwKLSAgICAgICAgICAiMC4wNDAxMDksIDAuMTk1MDA5LCAwLjMyMDQyMywgMC40NzgxNDQsIDAuNjM2MTI1LCAwLjc5NDA4LCAwLjk1MTkyOSIsIFwKLSAgICAgICAgICAiMC4wNDAxMSwgMC4xOTQ3MjMsIDAuMzE5NDU0LCAwLjQ3ODE0MSwgMC42MzYxMjEsIDAuNzkyMzY1LCAwLjk1MTkxNiIsIFwKLSAgICAgICAgICAiMC4wNDAwOTgsIDAuMTk0NzUxLCAwLjMyMDQxNSwgMC40NzgxNDEsIDAuNjM2MTE5LCAwLjc5MjkzMywgMC45NTE5MDkiLCBcCi0gICAgICAgICAgIjAuMDQwMTU0LCAwLjE5NDkxMiwgMC4zMTk5NywgMC40NzgwNDMsIDAuNjM2MDIyLCAwLjc5Mzk1NiwgMC45NTE4NCIsIFwKLSAgICAgICAgICAiMC4wNDAxMDksIDAuMTk0OTY0LCAwLjMyMDE2MiwgMC40NzgxNDEsIDAuNjM1MDQsIDAuNzkzOTc5LCAwLjk1MTg3NyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDYzNDcsIDAuMDA2MzY0LCAwLjAwNjM1NiwgMC4wMDYzNTEsIDAuMDA2MzQ1LCAwLjAwNjM0NiwgMC4wMDYzNDQiLCBcCi0gICAgICAgICAgIjAuMDA2MzQsIDAuMDA2MzU4LCAwLjAwNjM1MSwgMC4wMDYzNDUsIDAuMDA2MzQyLCAwLjAwNjM0LCAwLjAwNjM0IiwgXAotICAgICAgICAgICIwLjAwNjM4NSwgMC4wMDY0MDMsIDAuMDA2Mzk1LCAwLjAwNjM4OSwgMC4wMDYzODUsIDAuMDA2MzgzLCAwLjAwNjM4MSIsIFwKLSAgICAgICAgICAiMC4wMDY0MzIsIDAuMDA2NDU0LCAwLjAwNjQ0NiwgMC4wMDY0NCwgMC4wMDY0MzYsIDAuMDA2NDMzLCAwLjAwNjQzMSIsIFwKLSAgICAgICAgICAiMC4wMDY1MDIsIDAuMDA2NTI2LCAwLjAwNjUxOCwgMC4wMDY1MTEsIDAuMDA2NTA3LCAwLjAwNjUwNCwgMC4wMDY1MDMiLCBcCi0gICAgICAgICAgIjAuMDA2NjIxLCAwLjAwNjYzNSwgMC4wMDY2MjYsIDAuMDA2NjE5LCAwLjAwNjYyMywgMC4wMDY2MTksIDAuMDA2NjE3IiwgXAotICAgICAgICAgICIwLjAwNjY5NywgMC4wMDY3MjIsIDAuMDA2NzEyLCAwLjAwNjcwNiwgMC4wMDY3MDEsIDAuMDA2Njk3LCAwLjAwNjY5NCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjc5OSwgMC4wMDY4NDgsIDAuMDA2ODU0LCAwLjAwNjg1NywgMC4wMDY4NiwgMC4wMDY4NTksIDAuMDA2ODYyIiwgXAotICAgICAgICAgICIwLjAwNjgsIDAuMDA2ODQ4LCAwLjAwNjg1NCwgMC4wMDY4NTYsIDAuMDA2ODU4LCAwLjAwNjg1OSwgMC4wMDY4NjEiLCBcCi0gICAgICAgICAgIjAuMDA2ODQ0LCAwLjAwNjg5MiwgMC4wMDY4OTksIDAuMDA2OTA0LCAwLjAwNjkwMywgMC4wMDY5MDQsIDAuMDA2OTA0IiwgXAotICAgICAgICAgICIwLjAwNjkwOCwgMC4wMDY5NTYsIDAuMDA2OTYyLCAwLjAwNjk2NSwgMC4wMDY5NjgsIDAuMDA2OTY3LCAwLjAwNjk2OCIsIFwKLSAgICAgICAgICAiMC4wMDY5ODMsIDAuMDA3MDMxLCAwLjAwNzAzNywgMC4wMDcwNCwgMC4wMDcwNDEsIDAuMDA3MDQyLCAwLjAwNzA0MiIsIFwKLSAgICAgICAgICAiMC4wMDcxMDYsIDAuMDA3MTU2LCAwLjAwNzE2MSwgMC4wMDcxNjQsIDAuMDA3MTY1LCAwLjAwNzE2NiwgMC4wMDcxNTgiLCBcCi0gICAgICAgICAgIjAuMDA3MjA4LCAwLjAwNzI1MywgMC4wMDcyNTgsIDAuMDA3MjUsIDAuMDA3MjYxLCAwLjAwNzI2MiwgMC4wMDcyNjMiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFFOKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuNjgwNjY4OwotICAgIGZ1bmN0aW9uIDogIlFCSU5UIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBub25fdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJpc2luZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDgwOCwgMC4xODQ3NjIsIDAuMjQ2MTUxLCAwLjMyMjk0NSwgMC4zOTk2OTQsIDAuNDc2NDY0LCAwLjU1MzIyNSIsIFwKLSAgICAgICAgICAiMC4xMTYyMzYsIDAuMTkyOTY4LCAwLjI1NDMzLCAwLjMzMTE4NiwgMC40MDc5MjYsIDAuNDg0Njg0LCAwLjU2MTQ1NCIsIFwKLSAgICAgICAgICAiMC4xMjUyNSwgMC4yMDE5MzUsIDAuMjYzMzMzLCAwLjM0MDExNiwgMC40MTY4NjYsIDAuNDkzNjYzLCAwLjU3MDQwNiIsIFwKLSAgICAgICAgICAiMC4xMzIwMTksIDAuMjA4NzAzLCAwLjI3MDAyNSwgMC4zNDY4ODEsIDAuNDIzNjMxLCAwLjUwMDQwMywgMC41NzcxNjgiLCBcCi0gICAgICAgICAgIjAuMTM3NTA3LCAwLjIxNDE5MSwgMC4yNzU1ODcsIDAuMzUyMzcxLCAwLjQyOTExOCwgMC41MDU5MDUsIDAuNTgyNjUzIiwgXAotICAgICAgICAgICIwLjE0NDg5OCwgMC4yMjE1NTEsIDAuMjgzMDEyLCAwLjM1OTc1LCAwLjQzNjUzMSwgMC41MTMyNzMsIDAuNTkwMDI2IiwgXAotICAgICAgICAgICIwLjE1MDM4OSwgMC4yMjcwOTEsIDAuMjg4NTE3LCAwLjM2NTMxMiwgMC40NDIxNTMsIDAuNTE4ODI1LCAwLjU5NTYzMyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzkyODksIDAuMTk5MDczLCAwLjMyODU3OCwgMC40OTEwOTIsIDAuNjUzMDczLCAwLjgxNDI1OSwgMC45NzcwNzgiLCBcCi0gICAgICAgICAgIjAuMDM5Mjg2LCAwLjE5OTM4NywgMC4zMjg0OTQsIDAuNDkwMjA5LCAwLjY1MzA1NywgMC44MTUxMDYsIDAuOTc3MDcyIiwgXAotICAgICAgICAgICIwLjAzOTMwMiwgMC4xOTk0MzgsIDAuMzI5MDM4LCAwLjQ5MTA4OCwgMC42NTMwNzksIDAuODE1MDcxLCAwLjk3NzA4NSIsIFwKLSAgICAgICAgICAiMC4wMzkyOTEsIDAuMTk5MDczLCAwLjMyODE3NSwgMC40OTEwNzUsIDAuNjUzMDc4LCAwLjgxNDE5OSwgMC45NzcwODciLCBcCi0gICAgICAgICAgIjAuMDM5Mjk5LCAwLjE5OTA3MiwgMC4zMjg1ODksIDAuNDkxMDgsIDAuNjUzMDc2LCAwLjgxNDI0MywgMC45NzcwODYiLCBcCi0gICAgICAgICAgIjAuMDM5MzE0LCAwLjE5OTM5MywgMC4zMjg5ODYsIDAuNDkxMDM2LCAwLjY1MzAzLCAwLjgxNTAyNSwgMC45NzcwODYiLCBcCi0gICAgICAgICAgIjAuMDM5MzAzLCAwLjE5OTQxNywgMC4zMjkwMzcsIDAuNDkwNywgMC42NTI0MzIsIDAuODE1MDU1LCAwLjk3NzAyMyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDAyNjYsIDAuMTc2MjYyLCAwLjIzNzAwMiwgMC4zMTI5NTUsIDAuMzg4ODIsIDAuNDY0NzI4LCAwLjU0MDYxNSIsIFwKLSAgICAgICAgICAiMC4xMDgzNTUsIDAuMTg0MzU4LCAwLjI0NTA5NSwgMC4zMjEwNTEsIDAuMzk2OTE1LCAwLjQ3MjgyNiwgMC41NDg3MDMiLCBcCi0gICAgICAgICAgIjAuMTE3MTU2LCAwLjE5MzEwOSwgMC4yNTM4MzUsIDAuMzI5Nzk3LCAwLjQwNTY2NiwgMC40ODE1NTMsIDAuNTU3NDg3IiwgXAotICAgICAgICAgICIwLjEyMzkwOCwgMC4xOTk5MDIsIDAuMjYwNjI2LCAwLjMzNjU0NywgMC40MTI0NTksIDAuNDg4Mzg2LCAwLjU2NDI0IiwgXAotICAgICAgICAgICIwLjEyOTMyNiwgMC4yMDUyNjQsIDAuMjY1OTk1LCAwLjM0MTk0MSwgMC40MTc4MTcsIDAuNDkzNzA1LCAwLjU2OTYzOSIsIFwKLSAgICAgICAgICAiMC4xMzY1NjcsIDAuMjEyNTYsIDAuMjczMzM1LCAwLjM0OTIxNCwgMC40MjUwODcsIDAuNTAwOTczLCAwLjU3Njg5OCIsIFwKLSAgICAgICAgICAiMC4xNDE5OTUsIDAuMjE3OTU0LCAwLjI3ODY5OCwgMC4zNTQ1OTIsIDAuNDMwNTAyLCAwLjUwNjM5OCwgMC41ODIzOTYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM4NDY1LCAwLjE5NDE3NSwgMC4zMjAzODksIDAuNDc3MjgzLCAwLjYzNjA0NiwgMC43OTM4NDUsIDAuOTUxNjYyIiwgXAotICAgICAgICAgICIwLjAzODQ2OCwgMC4xOTQwNjEsIDAuMzIwMzg0LCAwLjQ3NzI3NywgMC42MzYwMywgMC43OTM4MzksIDAuOTUxNjQxIiwgXAotICAgICAgICAgICIwLjAzODQ2NiwgMC4xOTQxODEsIDAuMzIwMzU1LCAwLjQ3NzMzNSwgMC42MzYwMDksIDAuNzkzODM2LCAwLjk1MDY2MyIsIFwKLSAgICAgICAgICAiMC4wMzg0NTcsIDAuMTkzODc3LCAwLjMyMDM4NywgMC40NzgyNDYsIDAuNjM2MDE5LCAwLjc5MjU5NSwgMC45NTE2NTYiLCBcCi0gICAgICAgICAgIjAuMDM4NDU4LCAwLjE5NDE2NywgMC4zMjAzNjYsIDAuNDc3NDE3LCAwLjYzNTk4NiwgMC43OTM4MDgsIDAuOTUxNjQ1IiwgXAotICAgICAgICAgICIwLjAzODQ2MiwgMC4xOTQwMjgsIDAuMzE5OTI0LCAwLjQ3ODEyOCwgMC42MzU5MDEsIDAuNzkzNzE3LCAwLjk1MTUyIiwgXAotICAgICAgICAgICIwLjAzODQ0MywgMC4xOTQxOTIsIDAuMzE5ODYsIDAuNDc3NTU4LCAwLjYzNTg3NCwgMC43OTI5OCwgMC45NTAyMTkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2Nzk5LCAwLjAwNjg0OCwgMC4wMDY4NTQsIDAuMDA2ODU3LCAwLjAwNjg2LCAwLjAwNjg1OSwgMC4wMDY4NjIiLCBcCi0gICAgICAgICAgIjAuMDA2OCwgMC4wMDY4NDgsIDAuMDA2ODU0LCAwLjAwNjg1NiwgMC4wMDY4NTgsIDAuMDA2ODU5LCAwLjAwNjg2MSIsIFwKLSAgICAgICAgICAiMC4wMDY4NDQsIDAuMDA2ODkyLCAwLjAwNjg5OSwgMC4wMDY5MDQsIDAuMDA2OTAzLCAwLjAwNjkwNCwgMC4wMDY5MDQiLCBcCi0gICAgICAgICAgIjAuMDA2OTA4LCAwLjAwNjk1NiwgMC4wMDY5NjIsIDAuMDA2OTY1LCAwLjAwNjk2OCwgMC4wMDY5NjcsIDAuMDA2OTY4IiwgXAotICAgICAgICAgICIwLjAwNjk4MywgMC4wMDcwMzEsIDAuMDA3MDM3LCAwLjAwNzA0LCAwLjAwNzA0MSwgMC4wMDcwNDIsIDAuMDA3MDQyIiwgXAotICAgICAgICAgICIwLjAwNzEwNiwgMC4wMDcxNTYsIDAuMDA3MTYxLCAwLjAwNzE2NCwgMC4wMDcxNjUsIDAuMDA3MTY2LCAwLjAwNzE1OCIsIFwKLSAgICAgICAgICAiMC4wMDcyMDgsIDAuMDA3MjUzLCAwLjAwNzI1OCwgMC4wMDcyNSwgMC4wMDcyNjEsIDAuMDA3MjYyLCAwLjAwNzI2MyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjM0NywgMC4wMDYzNjQsIDAuMDA2MzU2LCAwLjAwNjM1MSwgMC4wMDYzNDUsIDAuMDA2MzQ2LCAwLjAwNjM0NCIsIFwKLSAgICAgICAgICAiMC4wMDYzNCwgMC4wMDYzNTgsIDAuMDA2MzUxLCAwLjAwNjM0NSwgMC4wMDYzNDIsIDAuMDA2MzQsIDAuMDA2MzQiLCBcCi0gICAgICAgICAgIjAuMDA2Mzg1LCAwLjAwNjQwMywgMC4wMDYzOTUsIDAuMDA2Mzg5LCAwLjAwNjM4NSwgMC4wMDYzODMsIDAuMDA2MzgxIiwgXAotICAgICAgICAgICIwLjAwNjQzMiwgMC4wMDY0NTQsIDAuMDA2NDQ2LCAwLjAwNjQ0LCAwLjAwNjQzNiwgMC4wMDY0MzMsIDAuMDA2NDMxIiwgXAotICAgICAgICAgICIwLjAwNjUwMiwgMC4wMDY1MjYsIDAuMDA2NTE4LCAwLjAwNjUxMSwgMC4wMDY1MDcsIDAuMDA2NTA0LCAwLjAwNjUwMyIsIFwKLSAgICAgICAgICAiMC4wMDY2MjEsIDAuMDA2NjM1LCAwLjAwNjYyNiwgMC4wMDY2MTksIDAuMDA2NjIzLCAwLjAwNjYxOSwgMC4wMDY2MTciLCBcCi0gICAgICAgICAgIjAuMDA2Njk3LCAwLjAwNjcyMiwgMC4wMDY3MTIsIDAuMDA2NzA2LCAwLjAwNjcwMSwgMC4wMDY2OTcsIDAuMDA2Njk0Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihSTikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjg5NDgyOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDY4OTQ4MjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2ODg5NDM7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyNzczLCAwLjAwMjc0MywgMC4wMDI3NzksIDAuMDAyODQ3LCAwLjAwMjkxNCwgMC4wMDMwNjIsIDAuMDAzMjE3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA0OTY4LCAwLjAwNDk3OCwgMC4wMDUwMzIsIDAuMDA1MTIyLCAwLjAwNTIzOCwgMC4wMDU0MDgsIDAuMDA1NTY5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIkQiOwotICAgICAgc2RmX2NvbmQgOiAiRCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMjUsIC0wLjAyLCAtMC4wMTM3NSwgLTAuMDEzNzUsIC0wLjAwNzUsIC0wLjAwMzc1LCAtMC4wMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDE4NzUsIC0wLjAxNSwgLTAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAzMTI1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMjUsIC0wLjAyMTI1LCAtMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDM3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAzMTI1LCAtMC4wMjc1LCAtMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wNDM3NSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzNzUsIC0wLjAzMzc1LCAtMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDU4NzUsIC0wLjA1Mzc1LCAtMC4wNDc1LCAtMC4wNDc1LCAtMC4wNDEyNSwgLTAuMDM3NSwgLTAuMDM1IiwgXAotICAgICAgICAgICItMC4wNjEyNSwgLTAuMDU2MjUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDUsIC0wLjA0NjI1LCAtMC4wNDM3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2MjUsIDAuMDExMjUsIDAuMDE3NSwgMC4wMjM3NSwgMC4wMywgMC4wMzM3NSwgMC4wNDI1IiwgXAotICAgICAgICAgICItMC4wMDUsIDAuMDA2MjUsIDAuMDEyNSwgMC4wMTg3NSwgMC4wMjUsIDAuMDI4NzUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjAxMTI1LCAwLCAwLjAwNjI1LCAwLjAxMjUsIDAuMDEyNSwgMC4wMjI1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDE3NSwgLTAuMDA2MjUsIDAsIDAuMDA2MjUsIDAuMDEyNSwgMC4wMTYyNSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDE3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAsIDAuMDA2MjUsIDAuMDEsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDIxMjUsIC0wLjAxNjI1LCAtMC4wMSwgLTAuMDAzNzUsIC0wLjAwMzc1LCAwLjAwNjI1LCAwLjAwODc1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLjAwMzc1LCAwLjAwNjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJEIjsKLSAgICAgIHNkZl9jb25kIDogIkQgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDUsIDAuMDM4NzUsIDAuMDMyNSwgMC4wMzI1LCAwLjAyNjI1LCAwLjAyMjUsIDAuMDIiLCBcCi0gICAgICAgICAgIjAuMDU1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMjc1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiMC4wNjEyNSwgMC4wNTYyNSwgMC4wNSwgMC4wNDM3NSwgMC4wNDM3NSwgMC4wMzM3NSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4wNjc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDUsIDAuMDUsIDAuMDQ2MjUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMDczNzUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNTYyNSwgMC4wNDYyNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4wODM3NSwgMC4wNzI1LCAwLjA2NjI1LCAwLjA2NjI1LCAwLjA2LCAwLjA1NjI1LCAwLjA1Mzc1IiwgXAotICAgICAgICAgICIwLjA4NjI1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjg3NSwgMC4wNjUsIDAuMDYyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxODc1LCAwLjAwNzUsIDAuMDAxMjUsIC0wLjAwNSwgLTAuMDExMjUsIC0wLjAxNSwgLTAuMDIzNzUiLCBcCi0gICAgICAgICAgIjAuMDIzNzUsIDAuMDE4NzUsIDAuMDEyNSwgMCwgMCwgLTAuMDEsIC0wLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMDM2MjUsIDAuMDI1LCAwLjAxODc1LCAwLjAxMjUsIDAuMDA2MjUsIDAuMDAyNSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMDQyNSwgMC4wMzEyNSwgMC4wMjUsIDAuMDE4NzUsIDAuMDEyNSwgMC4wMDg3NSwgMCIsIFwKLSAgICAgICAgICAiMC4wNDg3NSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMTg3NSwgMC4wMTUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMDUyNSwgMC4wNDc1LCAwLjA0MTI1LCAwLjAzNSwgMC4wMjg3NSwgMC4wMTg3NSwgMC4wMTYyNSIsIFwKLSAgICAgICAgICAiMC4wNjEyNSwgMC4wNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyNzUsIDAuMDE4NzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogREZGWDEgKgotICogLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKERGRlgxKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuODY2ODMxOwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIGZmIChOMzAsUUJJTlQpIHsKLSAgICBuZXh0X3N0YXRlIDogIkQiOwotICAgIGNsb2NrZWRfb24gOiAiQ0siOwotICB9Ci0gIHBpbihDSykgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjEyNDU1OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYxMjQ1OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDYxMjQ1NTsKLSAgICBjbG9jayA6IHRydWU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzNTM1LCAwLjAwMzUyNywgMC4wMDM2MDgsIDAuMDAzNzA2LCAwLjAwMzgyNywgMC4wMDQwODcsIDAuMDA0MjQ0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA3OTU1LCAwLjAwNzk0NywgMC4wMDgwMjYsIDAuMDA4MTE4LCAwLjAwODI1NSwgMC4wMDgzODYsIDAuMDA4NTcyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRCI7Ci0gICAgICBzZGZfY29uZCA6ICJEID09IDEnYjAiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMTE3Mzk5LCAwLjEyNTU4OSwgMC4xMzQ3OTgsIDAuMTQyMjUzLCAwLjE0ODEyMSwgMC4xNTU5MzUsIDAuMTYxNjU5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wNjk5OSwgMC4wNzgwOTIsIDAuMDg3MjAzLCAwLjA5Mzk3OSwgMC4wOTk0NDUsIDAuMTA2NjUxLCAwLjExMTgxIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihEKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2NjkxMDU7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjY4MTIyOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDY2OTEwNTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDI2NSwgMC4wMDI2MjUsIDAuMDAyNjU2LCAwLjAwMjcwNCwgMC4wMDI3ODUsIDAuMDAyOTMsIDAuMDAzMDc4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzNDA3LCAwLjAwMzM5LCAwLjAwMzQxMiwgMC4wMDM0NjUsIDAuMDAzNTQ1LCAwLjAwMzY2MywgMC4wMDM4MDgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMDYyNSwgLTAuMDAxMjUsIC0wLjAwMTI1LCAwLjAwNSwgMC4wMDUsIDAuMDA4NzUsIDAuMDExMjUiLCBcCi0gICAgICAgICAgIi0wLjAxNzUsIC0wLjAwNjI1LCAtMC4wMDYyNSwgMCwgMCwgMC4wMDM3NSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxMjUsIC0wLjAxMjUsIC0wLjAwNjI1LCAtMC4wMDYyNSwgLTAuMDAyNSwgMCIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMTI1LCAtMC4wMDYyNSwgLTAuMDAyNSwgMCIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAxMjUsIC0wLjAwODc1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDMzNzUsIC0wLjAyODc1LCAtMC4wMjI1LCAtMC4wMjI1LCAtMC4wMTYyNSwgLTAuMDEyNSwgLTAuMDEiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTUsIC0wLjAxMjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMjUsIDAuMDIzNzUsIDAuMDMsIDAuMDM2MjUsIDAuMDQyNSwgMC4wNDYyNSwgMC4wNTUiLCBcCi0gICAgICAgICAgIjAuMDA3NSwgMC4wMTg3NSwgMC4wMjUsIDAuMDMxMjUsIDAuMDM3NSwgMC4wNDEyNSwgMC4wNSIsIFwKLSAgICAgICAgICAiMC4wMDEyNSwgMC4wMTI1LCAwLjAxODc1LCAwLjAyNSwgMC4wMzEyNSwgMC4wNDEyNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4wMDEyNSwgMC4wMTI1LCAwLjAxODc1LCAwLjAyNSwgMC4wMzEyNSwgMC4wMzUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMDAxMjUsIDAuMDA2MjUsIDAuMDE4NzUsIDAuMDI1LCAwLjAyNSwgMC4wMzUsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDAyNSwgMC4wMDI1LCAwLjAxNSwgMC4wMjEyNSwgMC4wMjc1LCAwLjAzMTI1LCAwLjA0IiwgXAotICAgICAgICAgICItMC4wMDUsIDAuMDA2MjUsIDAuMDEyNSwgMC4wMTg3NSwgMC4wMjUsIDAuMDI4NzUsIDAuMDM3NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjUsIDAuMDIsIDAuMDEzNzUsIDAuMDA3NSwgMC4wMDc1LCAwLjAwMzc1LCAwLjAwMTI1IiwgXAotICAgICAgICAgICIwLjAzLCAwLjAyNSwgMC4wMTg3NSwgMC4wMTI1LCAwLjAxMjUsIDAuMDA4NzUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMDM2MjUsIDAuMDMxMjUsIDAuMDI1LCAwLjAxODc1LCAwLjAxODc1LCAwLjAxNSwgMC4wMTI1IiwgXAotICAgICAgICAgICIwLjA0MjUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMjUsIDAuMDI1LCAwLjAyMTI1LCAwLjAxODc1IiwgXAotICAgICAgICAgICIwLjA0ODc1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDI1LCAwLjAyMTI1LCAwLjAxODc1IiwgXAotICAgICAgICAgICIwLjA1ODc1LCAwLjA0NzUsIDAuMDQxMjUsIDAuMDM1LCAwLjAzNSwgMC4wMzEyNSwgMC4wMjg3NSIsIFwKLSAgICAgICAgICAiMC4wNjEyNSwgMC4wNSwgMC4wNDM3NSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzMzc1LCAwLjAzMTI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEyNSwgMC4wMDEyNSwgLTAuMDA1LCAtMC4wMTEyNSwgLTAuMDE3NSwgLTAuMDI3NSwgLTAuMDM2MjUiLCBcCi0gICAgICAgICAgIjAuMDE3NSwgMC4wMDYyNSwgMCwgLTAuMDA2MjUsIC0wLjAxMjUsIC0wLjAyMjUsIC0wLjAyNSIsIFwKLSAgICAgICAgICAiMC4wMjM3NSwgMC4wMTI1LCAwLjAwNjI1LCAwLCAtMC4wMDYyNSwgLTAuMDE2MjUsIC0wLjAxODc1IiwgXAotICAgICAgICAgICIwLjAzLCAwLjAxODc1LCAwLjAxMjUsIDAsIC0wLjAwNjI1LCAtMC4wMSwgLTAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMDMsIDAuMDI1LCAwLjAxMjUsIDAuMDA2MjUsIDAsIC0wLjAxLCAtMC4wMTI1IiwgXAotICAgICAgICAgICIwLjA0LCAwLjAyODc1LCAwLjAxNjI1LCAwLjAxLCAwLjAwMzc1LCAwLCAtMC4wMDg3NSIsIFwKLSAgICAgICAgICAiMC4wNDI1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMTI1LCAwLjAwNjI1LCAwLjAwMjUsIC0wLjAwNjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihRKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMzQyMjM0OwotICAgIGZ1bmN0aW9uIDogIk4zMCI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3NlbnNlIDogbm9uX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiByaXNpbmdfZWRnZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk4ODkxLCAwLjExNzQ4NywgMC4yMjI3NTcsIDAuMzE1ODM1LCAwLjQzOTcxNywgMC42ODgzODMsIDAuODQzODE0IiwgXAotICAgICAgICAgICIwLjEwNzA0NiwgMC4xMjU2NDMsIDAuMjMwOTA0LCAwLjMyMzk3LCAwLjQ0Nzg3NCwgMC42OTYyODQsIDAuODUxOTU4IiwgXAotICAgICAgICAgICIwLjExNjIyNywgMC4xMzQ4MzcsIDAuMjQwMTIsIDAuMzMzMTQyLCAwLjQ1NzAxOSwgMC43MDU2OTUsIDAuODYxMTUxIiwgXAotICAgICAgICAgICIwLjEyMzQ5MiwgMC4xNDIxMTQsIDAuMjQ3NDYzLCAwLjM0MDQxNCwgMC40NjQzMDYsIDAuNzEyOTQ3LCAwLjg2ODQwOSIsIFwKLSAgICAgICAgICAiMC4xMjkyODEsIDAuMTQ3ODc4LCAwLjI1MzE2MiwgMC4zNDYyLCAwLjQ3MDEwOSwgMC43MTg3NTYsIDAuODc0MjA3IiwgXAotICAgICAgICAgICIwLjEzNjg1NSwgMC4xNTU1MTgsIDAuMjYwNzUzLCAwLjM1Mzg0NSwgMC40Nzc2ODUsIDAuNzI1ODU4LCAwLjg4MDk1MSIsIFwKLSAgICAgICAgICAiMC4xNDI2MDksIDAuMTYxMTE3LCAwLjI2NjU3LCAwLjM1OTQ0OSwgMC40ODMzNzksIDAuNzMyMDczLCAwLjg4NjY3NiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzI2OTIsIDAuMTExMTgzLCAwLjMzMjA1OSwgMC41Mjg3MjksIDAuNzkwNTY1LCAxLjMxNDIzLCAxLjY0MTY1IiwgXAotICAgICAgICAgICIwLjA3MjcxMSwgMC4xMTExNjQsIDAuMzMyMDA5LCAwLjUyODczMywgMC43OTA1MDMsIDEuMzEyNDksIDEuNjQxNjIiLCBcCi0gICAgICAgICAgIjAuMDcyNzExLCAwLjExMTE0OCwgMC4zMzE5MDQsIDAuNTI4NzIxLCAwLjc4OTE3MiwgMS4zMTQyNiwgMS42NDE1NyIsIFwKLSAgICAgICAgICAiMC4wNzI4MDMsIDAuMTExMTUsIDAuMzMyMzUxLCAwLjUyODcwNiwgMC43OTA0OTcsIDEuMzE0MjEsIDEuNjQxNjYiLCBcCi0gICAgICAgICAgIjAuMDcyNjg1LCAwLjExMTE2MiwgMC4zMzE5NSwgMC41Mjg1ODksIDAuNzkwNDgzLCAxLjMxNDIyLCAxLjY0MTY4IiwgXAotICAgICAgICAgICIwLjA3MjkxOSwgMC4xMTA5NzMsIDAuMzMyMDIxLCAwLjUyNzcyMiwgMC43OTA0MDMsIDEuMzExMDYsIDEuNjM3NzQiLCBcCi0gICAgICAgICAgIjAuMDczMTQ0LCAwLjExMTAyOCwgMC4zMzIzMTIsIDAuNTI3NzkyLCAwLjc5MDMyNiwgMS4zMTQxNCwgMS42MzkxNSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDg1OTMsIDAuMTI2Nzc1LCAwLjIyOTQ1OSwgMC4zMjAzMjksIDAuNDQxMDI2LCAwLjY4MjYxLCAwLjgzMzY3NiIsIFwKLSAgICAgICAgICAiMC4xMTY3OTgsIDAuMTM1MDE0LCAwLjIzNzY4NCwgMC4zMjgwNTksIDAuNDQ5MjA3LCAwLjY5MDc3LCAwLjg0MTc3MSIsIFwKLSAgICAgICAgICAiMC4xMjU5OSwgMC4xNDQyMzQsIDAuMjQ2OTE5LCAwLjMzNzgyNiwgMC40NTc5MzIsIDAuNjk5OTMsIDAuODUxMDA4IiwgXAotICAgICAgICAgICIwLjEzMzQyLCAwLjE1MTYzNiwgMC4yNTQzMjUsIDAuMzQ0NjQ4LCAwLjQ2NTgxNCwgMC43MDc0NzEsIDAuODU4MzY5IiwgXAotICAgICAgICAgICIwLjEzOTI2OSwgMC4xNTc1MjUsIDAuMjYwMTk3LCAwLjM1MTA5MywgMC40NzEyMzUsIDAuNzEzMjAzLCAwLjg2NDI5MiIsIFwKLSAgICAgICAgICAiMC4xNDcwOTYsIDAuMTY1MzQsIDAuMjY3OTE3LCAwLjM1ODg2OCwgMC40Nzk1MDMsIDAuNzIxMTA0LCAwLjg3MjA4MyIsIFwKLSAgICAgICAgICAiMC4xNTI4MTYsIDAuMTcwOTI3LCAwLjI3Mzc5MiwgMC4zNjQyMTQsIDAuNDg1MjkyLCAwLjcyNjcwNSwgMC44NzcwNjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDcwMDUxLCAwLjEwNjMzNCwgMC4zMTYzMzMsIDAuNTAyNDM0LCAwLjc1MTMyMiwgMS4yNDkyOCwgMS41NTYyIiwgXAotICAgICAgICAgICIwLjA3MDEzOCwgMC4xMDYzNzIsIDAuMzE2MzM5LCAwLjUwMTg4NSwgMC43NTEzMjMsIDEuMjQ5MjYsIDEuNTYwNDIiLCBcCi0gICAgICAgICAgIjAuMDY5OTYxLCAwLjEwNjQxMywgMC4zMTYwMjgsIDAuNTAyNDIxLCAwLjc0OTgyNiwgMS4yNDkwNywgMS41NjA0NyIsIFwKLSAgICAgICAgICAiMC4wNzAxMywgMC4xMDYzODgsIDAuMzE1Njc3LCAwLjUwMjEzMywgMC43NTEzMTgsIDEuMjQ5MzgsIDEuNTYwNCIsIFwKLSAgICAgICAgICAiMC4wNzAxMjcsIDAuMTA1OTE2LCAwLjMxNiwgMC41MDI0NzgsIDAuNzQ5NTgxLCAxLjI0OTA4LCAxLjU2MDQ4IiwgXAotICAgICAgICAgICIwLjA3MDAxMiwgMC4xMDY0MSwgMC4zMTYzMzcsIDAuNTAyNDM0LCAwLjc1MTM4NiwgMS4yNDkyOSwgMS41NjA0MSIsIFwKLSAgICAgICAgICAiMC4wNjk4NzcsIDAuMTA2MzgsIDAuMzE2MDEzLCAwLjUwMTQ4OSwgMC43NTE0MzEsIDEuMjQ4ODksIDEuNTU3NjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0OTQyLCAwLjAwNDkzNSwgMC4wMDQ5MDYsIDAuMDA0ODk3LCAwLjAwNDg4OSwgMC4wMDQ4ODMsIDAuMDA0ODgiLCBcCi0gICAgICAgICAgIjAuMDA0OTM1LCAwLjAwNDkyOSwgMC4wMDQ5LCAwLjAwNDg4OSwgMC4wMDQ4ODIsIDAuMDA0ODc2LCAwLjAwNDg3NCIsIFwKLSAgICAgICAgICAiMC4wMDQ5ODMsIDAuMDA0OTc3LCAwLjAwNDk0OCwgMC4wMDQ5MzcsIDAuMDA0OTMsIDAuMDA0OTIzLCAwLjAwNDkyMSIsIFwKLSAgICAgICAgICAiMC4wMDUwMjUsIDAuMDA1MDIsIDAuMDA0OTkyLCAwLjAwNDk4MSwgMC4wMDQ5NzMsIDAuMDA0OTY2LCAwLjAwNDk2MyIsIFwKLSAgICAgICAgICAiMC4wMDUwOTksIDAuMDA1MDk1LCAwLjAwNTA2OCwgMC4wMDUwNTYsIDAuMDA1MDQ4LCAwLjAwNTA0MSwgMC4wMDUwMzgiLCBcCi0gICAgICAgICAgIjAuMDA1MTk0LCAwLjAwNTE5LCAwLjAwNTE2MywgMC4wMDUxNSwgMC4wMDUxNDIsIDAuMDA1MTMzLCAwLjAwNTEzMSIsIFwKLSAgICAgICAgICAiMC4wMDUyOTEsIDAuMDA1MzA2LCAwLjAwNTI2LCAwLjAwNTI0NywgMC4wMDUyNTYsIDAuMDA1MjI4LCAwLjAwNTIyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNTE3NiwgMC4wMDUxODUsIDAuMDA1MTk3LCAwLjAwNTIsIDAuMDA1MjAyLCAwLjAwNTIwMywgMC4wMDUyMDQiLCBcCi0gICAgICAgICAgIjAuMDA1MTc0LCAwLjAwNTE4MywgMC4wMDUxOTUsIDAuMDA1MTk4LCAwLjAwNTIsIDAuMDA1MjAyLCAwLjAwNTIwMyIsIFwKLSAgICAgICAgICAiMC4wMDUyMjksIDAuMDA1MjM3LCAwLjAwNTI1LCAwLjAwNTI1MywgMC4wMDUyNTQsIDAuMDA1MjU1LCAwLjAwNTI1NiIsIFwKLSAgICAgICAgICAiMC4wMDUyNzksIDAuMDA1Mjg3LCAwLjAwNTI5OSwgMC4wMDUzMDIsIDAuMDA1MzAyLCAwLjAwNTMwNSwgMC4wMDUzMDYiLCBcCi0gICAgICAgICAgIjAuMDA1MzUzLCAwLjAwNTM2MiwgMC4wMDUzNzMsIDAuMDA1Mzc1LCAwLjAwNTM3NiwgMC4wMDUzNzksIDAuMDA1Mzc4IiwgXAotICAgICAgICAgICIwLjAwNTQ3LCAwLjAwNTQ4NiwgMC4wMDU0OTUsIDAuMDA1NDksIDAuMDA1NDk4LCAwLjAwNTQ5MiwgMC4wMDU0OTIiLCBcCi0gICAgICAgICAgIjAuMDA1NTYzLCAwLjAwNTU4NSwgMC4wMDU1OTMsIDAuMDA1NTgzLCAwLjAwNTU4MSwgMC4wMDU1ODEsIDAuMDA1NTgxIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihRTikgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjM0MzM5OTsKLSAgICBmdW5jdGlvbiA6ICJRQklOVCI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3NlbnNlIDogbm9uX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiByaXNpbmdfZWRnZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTE3Mzk5LCAwLjEzNTk5NCwgMC4yNDE0NzksIDAuMzM0NTQ0LCAwLjQ1ODU5NCwgMC43MDY3OCwgMC44NjE5MzYiLCBcCi0gICAgICAgICAgIjAuMTI1NTg5LCAwLjE0NDE4OSwgMC4yNDk2NDYsIDAuMzQyNTkzLCAwLjQ2Njc3MiwgMC43MTQ5NTEsIDAuODcwMDciLCBcCi0gICAgICAgICAgIjAuMTM0Nzk4LCAwLjE1MzQ1NSwgMC4yNTg4NjQsIDAuMzUyMDI4LCAwLjQ3NTg3NSwgMC43MjQxOTQsIDAuODc5MzUxIiwgXAotICAgICAgICAgICIwLjE0MjI1MywgMC4xNjA4MTQsIDAuMjY2MjIyLCAwLjM1OTIzOCwgMC40ODMzOTYsIDAuNzMxNjE1LCAwLjg4NjY5IiwgXAotICAgICAgICAgICIwLjE0ODEyMSwgMC4xNjY3MzksIDAuMjcyMTQzLCAwLjM2NTMwNywgMC40ODkxNjEsIDAuNzM3NDc3LCAwLjg5MjY0IiwgXAotICAgICAgICAgICIwLjE1NTkzNSwgMC4xNzQ1MjMsIDAuMjc5OTc4LCAwLjM3MzEwMSwgMC40OTcxMTgsIDAuNzQ1MzI1LCAwLjkwMDQ0IiwgXAotICAgICAgICAgICIwLjE2MTY1OSwgMC4xODAxODcsIDAuMjg1NjM2LCAwLjM3ODgzNywgMC41MDI5MDIsIDAuNzUxMDE3LCAwLjkwNjA1OSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzA0ODQsIDAuMTA5NDc4LCAwLjMzMTM4OSwgMC41Mjc4MzIsIDAuNzg5MjY1LCAxLjMxMjE3LCAxLjYzNjM3IiwgXAotICAgICAgICAgICIwLjA3MDQ4NiwgMC4xMDk0OTksIDAuMzMxMzE2LCAwLjUyNjU5MSwgMC43ODkyNTIsIDEuMzEyMDksIDEuNjM5MDIiLCBcCi0gICAgICAgICAgIjAuMDcwNDgyLCAwLjEwOTUwNCwgMC4zMzEyMSwgMC41MjY5MDgsIDAuNzg4MTQ4LCAxLjMxMjA1LCAxLjYzOTAxIiwgXAotICAgICAgICAgICIwLjA3MDQ4NiwgMC4xMDk1MDIsIDAuMzMxMjQ3LCAwLjUyNjc3MSwgMC43ODkyNTUsIDEuMzEyMTMsIDEuNjM5MDIiLCBcCi0gICAgICAgICAgIjAuMDcwMzgyLCAwLjEwOTQ3NSwgMC4zMzE0NDksIDAuNTI2OTM3LCAwLjc4ODE3MywgMS4zMTIwNywgMS42MzkwMiIsIFwKLSAgICAgICAgICAiMC4wNzA0ODcsIDAuMTA5NTA4LCAwLjMzMTM1MiwgMC41MjY5NDEsIDAuNzg5MjE3LCAxLjMxMjE2LCAxLjYzOTA0IiwgXAotICAgICAgICAgICIwLjA3MDQ3MywgMC4xMDkzOTQsIDAuMzMxNzM0LCAwLjUyNzE5OSwgMC43ODkyMjcsIDEuMzEyMDQsIDEuNjM3NDIiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTA3OTM3LCAwLjEyNjAzNCwgMC4yMjg1NzUsIDAuMzE5MDYxLCAwLjQzOTY1LCAwLjY4MDg4MywgMC44MzE2ODkiLCBcCi0gICAgICAgICAgIjAuMTE2MDg1LCAwLjEzNDE1NCwgMC4yMzY2OTcsIDAuMzI3MTY5LCAwLjQ0Nzc2OSwgMC42ODg5NzUsIDAuODM5Nzk2IiwgXAotICAgICAgICAgICIwLjEyNTIzNiwgMC4xNDMzMywgMC4yNDU4NjUsIDAuMzM2MzQ0LCAwLjQ1NjkzMSwgMC42OTgxNzYsIDAuODQ4OTc3IiwgXAotICAgICAgICAgICIwLjEzMjUwNiwgMC4xNTA2MDEsIDAuMjUzMTMsIDAuMzQzNjEsIDAuNDY0MjIyLCAwLjcwNTQ2MSwgMC44NTYyODMiLCBcCi0gICAgICAgICAgIjAuMTM4MTk4LCAwLjE1NjI5LCAwLjI1ODgyNiwgMC4zNDkyOTEsIDAuNDY5ODg5LCAwLjcxMTE0MywgMC44NjE5NTkiLCBcCi0gICAgICAgICAgIjAuMTQ1ODgzLCAwLjE2Mzk2OCwgMC4yNjY1MDUsIDAuMzU2OTk0LCAwLjQ3NzU2NCwgMC43MTg4NTgsIDAuODY5NjQ0IiwgXAotICAgICAgICAgICIwLjE1MTU5OSwgMC4xNjk2NDgsIDAuMjcyMjEsIDAuMzYyNjc4LCAwLjQ4MzI3MiwgMC43MjQ1NjMsIDAuODc1MzEzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2NzEwMSwgMC4xMDQxMjUsIDAuMzE0OTI1LCAwLjUwMTcyLCAwLjc1MDIyNSwgMS4yNDczOSwgMS41NTgyNyIsIFwKLSAgICAgICAgICAiMC4wNjcxMDEsIDAuMTA0MTIzLCAwLjMxNDg2NCwgMC41MDE2OTYsIDAuNzUwMjI5LCAxLjI0NjkxLCAxLjU1ODIxIiwgXAotICAgICAgICAgICIwLjA2NzEwMSwgMC4xMDQxMjIsIDAuMzE0ODMsIDAuNTAxNjg4LCAwLjc0OTI2NCwgMS4yNDc0LCAxLjU1ODIyIiwgXAotICAgICAgICAgICIwLjA2NzA3NywgMC4xMDQxMjIsIDAuMzE1MjMyLCAwLjUwMTY3NiwgMC43NTAyMTgsIDEuMjQ3MzYsIDEuNTU4MzEiLCBcCi0gICAgICAgICAgIjAuMDY3MTExLCAwLjEwNDEwOSwgMC4zMTQ4NjgsIDAuNTAxNjcsIDAuNzUwMjA3LCAxLjI0NzQxLCAxLjU1ODM0IiwgXAotICAgICAgICAgICIwLjA2NzExLCAwLjEwMzk5MiwgMC4zMTQ4NDUsIDAuNTAwNzgyLCAwLjc1MDA5OCwgMS4yNDUyNCwgMS41NTU0MyIsIFwKLSAgICAgICAgICAiMC4wNjcyMDgsIDAuMTAzOTI5LCAwLjMxNTE3LCAwLjUwMTA0MiwgMC43NTAxMjksIDEuMjQ3MywgMS41NTU4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNTE3NiwgMC4wMDUxODUsIDAuMDA1MTk3LCAwLjAwNTIsIDAuMDA1MjAyLCAwLjAwNTIwMywgMC4wMDUyMDQiLCBcCi0gICAgICAgICAgIjAuMDA1MTc0LCAwLjAwNTE4MywgMC4wMDUxOTUsIDAuMDA1MTk4LCAwLjAwNTIsIDAuMDA1MjAyLCAwLjAwNTIwMyIsIFwKLSAgICAgICAgICAiMC4wMDUyMjksIDAuMDA1MjM3LCAwLjAwNTI1LCAwLjAwNTI1MywgMC4wMDUyNTQsIDAuMDA1MjU1LCAwLjAwNTI1NiIsIFwKLSAgICAgICAgICAiMC4wMDUyNzksIDAuMDA1Mjg3LCAwLjAwNTI5OSwgMC4wMDUzMDIsIDAuMDA1MzAyLCAwLjAwNTMwNSwgMC4wMDUzMDYiLCBcCi0gICAgICAgICAgIjAuMDA1MzUzLCAwLjAwNTM2MiwgMC4wMDUzNzMsIDAuMDA1Mzc1LCAwLjAwNTM3NiwgMC4wMDUzNzksIDAuMDA1Mzc4IiwgXAotICAgICAgICAgICIwLjAwNTQ3LCAwLjAwNTQ4NiwgMC4wMDU0OTUsIDAuMDA1NDksIDAuMDA1NDk4LCAwLjAwNTQ5MiwgMC4wMDU0OTIiLCBcCi0gICAgICAgICAgIjAuMDA1NTYzLCAwLjAwNTU4NSwgMC4wMDU1OTMsIDAuMDA1NTgzLCAwLjAwNTU4MSwgMC4wMDU1ODEsIDAuMDA1NTgxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0OTQyLCAwLjAwNDkzNSwgMC4wMDQ5MDYsIDAuMDA0ODk3LCAwLjAwNDg4OSwgMC4wMDQ4ODMsIDAuMDA0ODgiLCBcCi0gICAgICAgICAgIjAuMDA0OTM1LCAwLjAwNDkyOSwgMC4wMDQ5LCAwLjAwNDg4OSwgMC4wMDQ4ODIsIDAuMDA0ODc2LCAwLjAwNDg3NCIsIFwKLSAgICAgICAgICAiMC4wMDQ5ODMsIDAuMDA0OTc3LCAwLjAwNDk0OCwgMC4wMDQ5MzcsIDAuMDA0OTMsIDAuMDA0OTIzLCAwLjAwNDkyMSIsIFwKLSAgICAgICAgICAiMC4wMDUwMjUsIDAuMDA1MDIsIDAuMDA0OTkyLCAwLjAwNDk4MSwgMC4wMDQ5NzMsIDAuMDA0OTY2LCAwLjAwNDk2MyIsIFwKLSAgICAgICAgICAiMC4wMDUwOTksIDAuMDA1MDk1LCAwLjAwNTA2OCwgMC4wMDUwNTYsIDAuMDA1MDQ4LCAwLjAwNTA0MSwgMC4wMDUwMzgiLCBcCi0gICAgICAgICAgIjAuMDA1MTk0LCAwLjAwNTE5LCAwLjAwNTE2MywgMC4wMDUxNSwgMC4wMDUxNDIsIDAuMDA1MTMzLCAwLjAwNTEzMSIsIFwKLSAgICAgICAgICAiMC4wMDUyOTEsIDAuMDA1MzA2LCAwLjAwNTI2LCAwLjAwNTI0NywgMC4wMDUyNTYsIDAuMDA1MjI4LCAwLjAwNTIyNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBERkZYMiAqCi0gKiAtLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoREZGWDIpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMS4wODE5NzsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBmZiAoTjMwLFFCSU5UKSB7Ci0gICAgbmV4dF9zdGF0ZSA6ICJEIjsKLSAgICBjbG9ja2VkX29uIDogIkNLIjsKLSAgfQotICBwaW4oQ0spICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYwOTAzNTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MDkwMzU7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjA5MDM7Ci0gICAgY2xvY2sgOiB0cnVlOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzU3NywgMC4wMDM1NzQsIDAuMDAzNjU1LCAwLjAwMzc1LCAwLjAwMzg3NCwgMC4wMDQxMTIsIDAuMDA0MjkzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA3MjIyLCAwLjAwNzIxOSwgMC4wMDcyODMsIDAuMDA3MzksIDAuMDA3NTE2LCAwLjAwNzY4LCAwLjAwNzk4MSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQiOwotICAgICAgc2RmX2NvbmQgOiAiRCA9PSAxJ2IwIjsKLSAgICAgIHJpc2VfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjEwNzEzMiwgMC4xMTUyNzMsIDAuMTI0MDcxLCAwLjEzMDYxMSwgMC4xMzU5MTEsIDAuMTQzMTYsIDAuMTQ4MzgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjA2NTYyNywgMC4wNzM2NzEsIDAuMDgyMDgsIDAuMDg4MTU4LCAwLjA5MzA5NywgMC4wOTk1NzYsIDAuMTA0MjM1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihEKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2NDU4NTk7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjQ1MDAzOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDY0NTg1OTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDI0NCwgMC4wMDI0MTUsIDAuMDAyNDQ5LCAwLjAwMjQ5OSwgMC4wMDI1ODQsIDAuMDAyNzM0LCAwLjAwMjg4MSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzMsIDAuMDAzMjgyLCAwLjAwMzMxMywgMC4wMDMzNjQsIDAuMDAzNDUxLCAwLjAwMzU3MywgMC4wMDM3MjEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMDYyNSwgLTAuMDAxMjUsIC0wLjAwMTI1LCAwLjAwNSwgMC4wMDUsIDAuMDA4NzUsIDAuMDExMjUiLCBcCi0gICAgICAgICAgIi0wLjAxNzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLCAwLCAwLjAwMzc1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDEyNSwgLTAuMDEyNSwgLTAuMDA2MjUsIC0wLjAwNjI1LCAtMC4wMDI1LCAwIiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAxMjUsIC0wLjAxMjUsIC0wLjAwODc1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDg3NSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjAzMzc1LCAtMC4wMjg3NSwgLTAuMDIyNSwgLTAuMDIyNSwgLTAuMDE2MjUsIC0wLjAxMjUsIC0wLjAxNjI1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDI1LCAtMC4wMjUsIC0wLjAyMTI1LCAtMC4wMTg3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEyNSwgMC4wMjM3NSwgMC4wMywgMC4wMzYyNSwgMC4wMzYyNSwgMC4wNDYyNSwgMC4wNDg3NSIsIFwKLSAgICAgICAgICAiMC4wMDc1LCAwLjAxODc1LCAwLjAyNSwgMC4wMzEyNSwgMC4wMzEyNSwgMC4wNDEyNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4wMDc1LCAwLjAxMjUsIDAuMDE4NzUsIDAuMDI1LCAwLjAzMTI1LCAwLjAzNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4wMDEyNSwgMC4wMTI1LCAwLjAxODc1LCAwLjAyNSwgMC4wMzEyNSwgMC4wMzUsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiMC4wMDEyNSwgMC4wMDYyNSwgMC4wMTg3NSwgMC4wMjUsIDAuMDI1LCAwLjAzNSwgMC4wMzc1IiwgXAotICAgICAgICAgICItMC4wMDI1LCAwLjAwODc1LCAwLjAxNSwgMC4wMjEyNSwgMC4wMjc1LCAwLjAzMTI1LCAwLjAzMzc1IiwgXAotICAgICAgICAgICIwLjAwMTI1LCAwLjAwNjI1LCAwLjAxMjUsIDAuMDE4NzUsIDAuMDI1LCAwLjAyODc1LCAwLjAzNzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDI1LCAwLjAyLCAwLjAxMzc1LCAwLjAxMzc1LCAwLjAwNzUsIDAuMDAzNzUsIDAuMDAxMjUiLCBcCi0gICAgICAgICAgIjAuMDMsIDAuMDI1LCAwLjAxODc1LCAwLjAxODc1LCAwLjAxMjUsIDAuMDA4NzUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMDQyNSwgMC4wMzEyNSwgMC4wMjUsIDAuMDI1LCAwLjAxODc1LCAwLjAxNSwgMC4wMTI1IiwgXAotICAgICAgICAgICIwLjA0MjUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMjUsIDAuMDI1LCAwLjAyMTI1LCAwLjAxODc1IiwgXAotICAgICAgICAgICIwLjA0ODc1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDMxMjUsIDAuMDI3NSwgMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMDU4NzUsIDAuMDQ3NSwgMC4wNDEyNSwgMC4wMzUsIDAuMDM1LCAwLjAzMTI1LCAwLjAyODc1IiwgXAotICAgICAgICAgICIwLjA2MTI1LCAwLjA1LCAwLjA0Mzc1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDMzNzUsIDAuMDMxMjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTI1LCAwLjAwMTI1LCAtMC4wMDUsIC0wLjAxMTI1LCAtMC4wMTc1LCAtMC4wMjc1LCAtMC4wMyIsIFwKLSAgICAgICAgICAiMC4wMTc1LCAwLjAxMjUsIDAsIC0wLjAwNjI1LCAtMC4wMTI1LCAtMC4wMTYyNSwgLTAuMDI1IiwgXAotICAgICAgICAgICIwLjAyMzc1LCAwLjAxODc1LCAwLjAwNjI1LCAwLCAtMC4wMDYyNSwgLTAuMDEsIC0wLjAxODc1IiwgXAotICAgICAgICAgICIwLjAzLCAwLjAxODc1LCAwLjAxMjUsIDAuMDA2MjUsIDAsIC0wLjAxLCAtMC4wMTI1IiwgXAotICAgICAgICAgICIwLjAzNjI1LCAwLjAyNSwgMC4wMTI1LCAwLjAwNjI1LCAwLCAtMC4wMDM3NSwgLTAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4wNCwgMC4wMjg3NSwgMC4wMjI1LCAwLjAxNjI1LCAwLjAxLCAwLCAtMC4wMDI1IiwgXAotICAgICAgICAgICIwLjA0MjUsIDAuMDMxMjUsIDAuMDI1LCAwLjAxODc1LCAwLjAxMjUsIDAuMDAyNSwgMCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjY5MTUwODsKLSAgICBmdW5jdGlvbiA6ICJOMzAiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5vbl91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcmlzaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4MzA0OSwgMC4xNjAzMDgsIDAuMjIxOTE3LCAwLjI5ODQyMywgMC4zNzUzODMsIDAuNDUyMTQ0LCAwLjUyODc1MSIsIFwKLSAgICAgICAgICAiMC4wOTExMTYsIDAuMTY4NDI1LCAwLjIzMDAyMSwgMC4zMDY3NywgMC4zODM1MiwgMC40NjAyMTgsIDAuNTM2ODA3IiwgXAotICAgICAgICAgICIwLjA5OTg0OCwgMC4xNzczLCAwLjIzODc2NywgMC4zMTUxNzYsIDAuMzkyMzg5LCAwLjQ2ODg3NSwgMC41NDU1ODkiLCBcCi0gICAgICAgICAgIjAuMTA2Mjg5LCAwLjE4MzU4MiwgMC4yNDUxOTgsIDAuMzIyMDkzLCAwLjM5ODY0NCwgMC40NzUxNiwgMC41NTE5ODMiLCBcCi0gICAgICAgICAgIjAuMTExNDk4LCAwLjE4ODgxMywgMC4yNTAzOTIsIDAuMzI3MzQsIDAuNDAzNjA1LCAwLjQ4MDUwOSwgMC41NTcyNjYiLCBcCi0gICAgICAgICAgIjAuMTE4NjIxLCAwLjE5NjAzOCwgMC4yNTc2NDQsIDAuMzM0MjkxLCAwLjQxMDk1MiwgMC40ODc2NzEsIDAuNTY0MzAxIiwgXAotICAgICAgICAgICIwLjEyMzc5LCAwLjIwMTA2MiwgMC4yNjI2NzgsIDAuMzM5MTc1LCAwLjQxNjExMiwgMC40OTI2MzIsIDAuNTY5MjczIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0MTI1LCAwLjE5OTU4NiwgMC4zMjg5MTIsIDAuNDkwMTUzLCAwLjY1MjU4MiwgMC44MTQ2NzcsIDAuOTc2ODE4IiwgXAotICAgICAgICAgICIwLjA0MTI1NCwgMC4xOTk2LCAwLjMyODkyNSwgMC40OTA3MDQsIDAuNjUyNjMxLCAwLjgxNDcxOCwgMC45NzY3NzUiLCBcCi0gICAgICAgICAgIjAuMDQxMjY4LCAwLjE5OTE5OCwgMC4zMjg0MzIsIDAuNDg5ODQ4LCAwLjY1MTM0NiwgMC44MTQ3MDEsIDAuOTc2NzgxIiwgXAotICAgICAgICAgICIwLjA0MTI0OSwgMC4xOTk1OTQsIDAuMzI4OTI2LCAwLjQ4OTc4MiwgMC42NTI1NDksIDAuODE0MzkyLCAwLjk3Njc4NiIsIFwKLSAgICAgICAgICAiMC4wNDExMDcsIDAuMTk5NjE0LCAwLjMyODkxNiwgMC40ODk3NTgsIDAuNjUxOTY1LCAwLjgxNDY5MSwgMC45NzY3NjEiLCBcCi0gICAgICAgICAgIjAuMDQxMjIsIDAuMTk5NjAxLCAwLjMyODIyOSwgMC40ODk4MjQsIDAuNjUyNDc5LCAwLjgxNDU4OCwgMC45NzY2OCIsIFwKLSAgICAgICAgICAiMC4wNDEwNzcsIDAuMTk5NTc3LCAwLjMyODg3NywgMC40OTAwNzcsIDAuNjUyNDY0LCAwLjgxMzYyMywgMC45NzUyNDYiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDkyMjg4LCAwLjE2OTAyLCAwLjIyOTc1OSwgMC4zMDU5ODgsIDAuMzgxNzk4LCAwLjQ1NzY3NCwgMC41MzMxMzIiLCBcCi0gICAgICAgICAgIjAuMTAwNDE3LCAwLjE3NzExNSwgMC4yMzgwNjUsIDAuMzE0MDk5LCAwLjM4OTkwOCwgMC40NjU3OTgsIDAuNTQxNjk0IiwgXAotICAgICAgICAgICIwLjEwOTIyLCAwLjE4NTk4OCwgMC4yNDY5MzgsIDAuMzIyOTQ0LCAwLjM5ODg3NiwgMC40NzQ1ODMsIDAuNTUwMjYyIiwgXAotICAgICAgICAgICIwLjExNTc2OSwgMC4xOTI0OTEsIDAuMjUzNjAyLCAwLjMyOTQ1OSwgMC40MDUxNDEsIDAuNDgxMTUyLCAwLjU1NzIxOSIsIFwKLSAgICAgICAgICAiMC4xMjEwNjEsIDAuMTk4MDMyLCAwLjI1ODUyOSwgMC4zMzQ2NCwgMC40MTAxMzMsIDAuNDg2NjMxLCAwLjU2MjM1MiIsIFwKLSAgICAgICAgICAiMC4xMjgzMTksIDAuMjA1MzMxLCAwLjI2NTcyOCwgMC4zNDIwMzIsIDAuNDE3ODQ0LCAwLjQ5MzgxMywgMC41Njk1OTciLCBcCi0gICAgICAgICAgIjAuMTMzNTM1LCAwLjIxMDI5NCwgMC4yNzEzMzYsIDAuMzQ3MzE5LCAwLjQyMzExNSwgMC40OTkxNzUsIDAuNTc0OTQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQwMzQ4LCAwLjE5NDY5OSwgMC4zMjAzNTQsIDAuNDc4MjMxLCAwLjYzNTcxNCwgMC43OTQwMzYsIDAuOTUwMjExIiwgXAotICAgICAgICAgICIwLjA0MDMyMiwgMC4xOTQ2MywgMC4zMjAxOSwgMC40NzgyMywgMC42MzYxNDUsIDAuNzk0MDM4LCAwLjk1MTg4MyIsIFwKLSAgICAgICAgICAiMC4wNDAzMjYsIDAuMTk0OTE4LCAwLjMyMDE5NCwgMC40NzY4MjIsIDAuNjM0NDIsIDAuNzk0MDIsIDAuOTUwMDkyIiwgXAotICAgICAgICAgICIwLjA0MDM1LCAwLjE5NDY3OSwgMC4zMjAxODYsIDAuNDc3NjIzLCAwLjYzNTk5NywgMC43OTQwMzcsIDAuOTUxOTU1IiwgXAotICAgICAgICAgICIwLjA0MDA4NSwgMC4xOTQ0NDIsIDAuMzIwNDU1LCAwLjQ3ODE5MiwgMC42MzQ5NDQsIDAuNzkxOTEzLCAwLjk1MTc4OCIsIFwKLSAgICAgICAgICAiMC4wNDAzMzcsIDAuMTk0MDU3LCAwLjMyMDQxNywgMC40Nzc0MzYsIDAuNjM2MDU0LCAwLjc5MzkzMywgMC45NTE3NTciLCBcCi0gICAgICAgICAgIjAuMDQwMzUsIDAuMTk0OTY5LCAwLjMyMDI2NSwgMC40Nzc1ODIsIDAuNjM2MDYzLCAwLjc5MjA5NywgMC45NTE3OTYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2MzI0LCAwLjAwNjM0NywgMC4wMDYzNDEsIDAuMDA2MzM3LCAwLjAwNjMzNCwgMC4wMDYzMzIsIDAuMDA2MzMiLCBcCi0gICAgICAgICAgIjAuMDA2MzE5LCAwLjAwNjM0MywgMC4wMDYzMzcsIDAuMDA2MzMyLCAwLjAwNjMyOSwgMC4wMDYzMjksIDAuMDA2MzI1IiwgXAotICAgICAgICAgICIwLjAwNjM1NCwgMC4wMDYzNzgsIDAuMDA2MzcyLCAwLjAwNjM2NywgMC4wMDYzNjQsIDAuMDA2MzYxLCAwLjAwNjM1OSIsIFwKLSAgICAgICAgICAiMC4wMDY0MTQsIDAuMDA2NDQsIDAuMDA2NDMzLCAwLjAwNjQyOCwgMC4wMDY0MjQsIDAuMDA2NDIyLCAwLjAwNjQyIiwgXAotICAgICAgICAgICIwLjAwNjQ4NCwgMC4wMDY1MTEsIDAuMDA2NTA0LCAwLjAwNjQ5OCwgMC4wMDY0OTQsIDAuMDA2NDksIDAuMDA2NDkiLCBcCi0gICAgICAgICAgIjAuMDA2NTgzLCAwLjAwNjYxOSwgMC4wMDY2MDIsIDAuMDA2NjA2LCAwLjAwNjU5MSwgMC4wMDY1ODgsIDAuMDA2NTk2IiwgXAotICAgICAgICAgICIwLjAwNjY3NywgMC4wMDY3MDYsIDAuMDA2NywgMC4wMDY2OSwgMC4wMDY2ODksIDAuMDA2NjgxLCAwLjAwNjY3OSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjgwOCwgMC4wMDY4NTcsIDAuMDA2ODYzLCAwLjAwNjg2NywgMC4wMDY4NjgsIDAuMDA2ODY5LCAwLjAwNjg3IiwgXAotICAgICAgICAgICIwLjAwNjgxMSwgMC4wMDY4NiwgMC4wMDY4NjYsIDAuMDA2ODY5LCAwLjAwNjg3MiwgMC4wMDY4NzMsIDAuMDA2ODcxIiwgXAotICAgICAgICAgICIwLjAwNjg1NCwgMC4wMDY5MDMsIDAuMDA2OTA5LCAwLjAwNjkxMiwgMC4wMDY5MTUsIDAuMDA2OTE1LCAwLjAwNjkxNiIsIFwKLSAgICAgICAgICAiMC4wMDY5MjEsIDAuMDA2OTY5LCAwLjAwNjk3NiwgMC4wMDY5NzksIDAuMDA2OTgsIDAuMDA2OTgxLCAwLjAwNjk4MSIsIFwKLSAgICAgICAgICAiMC4wMDY5OTQsIDAuMDA3MDQzLCAwLjAwNzA0OSwgMC4wMDcwNTIsIDAuMDA3MDU1LCAwLjAwNzA1NCwgMC4wMDcwNTUiLCBcCi0gICAgICAgICAgIjAuMDA3MDk5LCAwLjAwNzE0OCwgMC4wMDcxNTQsIDAuMDA3MTY3LCAwLjAwNzE1OCwgMC4wMDcxNiwgMC4wMDcxNTkiLCBcCi0gICAgICAgICAgIjAuMDA3MjEzLCAwLjAwNzI1OCwgMC4wMDcyNjMsIDAuMDA3MjYyLCAwLjAwNzI2NCwgMC4wMDcyNjQsIDAuMDA3MjY2Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihRTikgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjY5Mjg2NTsKLSAgICBmdW5jdGlvbiA6ICJRQklOVCI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3NlbnNlIDogbm9uX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiByaXNpbmdfZWRnZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTA3MTMyLCAwLjE4MzY1NSwgMC4yNDQ4ODUsIDAuMzIxNTcxLCAwLjM5ODE1MSwgMC40NzQ3NTQsIDAuNTUxMTg5IiwgXAotICAgICAgICAgICIwLjExNTI3MywgMC4xOTE3ODQsIDAuMjUzMDY0LCAwLjMyOTcsIDAuNDA2MjgxLCAwLjQ4Mjg4OSwgMC41NTk1MDMiLCBcCi0gICAgICAgICAgIjAuMTI0MDcxLCAwLjIwMDU3NCwgMC4yNjE4NjYsIDAuMzM4NDk5LCAwLjQxNTEyNywgMC40OTE2NjUsIDAuNTY4Mjg2IiwgXAotICAgICAgICAgICIwLjEzMDYxMSwgMC4yMDcxNCwgMC4yNjg0NiwgMC4zNDUwNTQsIDAuNDIxNTY1LCAwLjQ5ODI0MSwgMC41NzQ5MzUiLCBcCi0gICAgICAgICAgIjAuMTM1OTExLCAwLjIxMjQ5OSwgMC4yNzM3NjIsIDAuMzUwMzQ0LCAwLjQyNjgzOCwgMC41MDM2NTUsIDAuNTgwMTk0IiwgXAotICAgICAgICAgICIwLjE0MzE2LCAwLjIxOTc1OSwgMC4yODEwMjEsIDAuMzU3NTQsIDAuNDM0MjI5LCAwLjUxMDg3MywgMC41ODc0MzkiLCBcCi0gICAgICAgICAgIjAuMTQ4MzgsIDAuMjI0OSwgMC4yODYyMiwgMC4zNjI5MjUsIDAuNDM5NSwgMC41MTYxODYsIDAuNTkyNzIiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM5MjU0LCAwLjE5ODc0NiwgMC4zMjgwMjIsIDAuNDkwMDYyLCAwLjY1MTQ2NiwgMC44MTMzNDMsIDAuOTczODQyIiwgXAotICAgICAgICAgICIwLjAzOTI1NCwgMC4xOTg3NDEsIDAuMzI4MzE4LCAwLjQ5MDA2NiwgMC42NTE2NiwgMC44MTMzNDEsIDAuOTc1MDI1IiwgXAotICAgICAgICAgICIwLjAzOTI1MywgMC4xOTg5NjMsIDAuMzI4MzM4LCAwLjQ4OTE0NywgMC42NTA1NzksIDAuODEzMzMxLCAwLjk3MzkxMSIsIFwKLSAgICAgICAgICAiMC4wMzkyNTMsIDAuMTk4NzQ0LCAwLjMyNzY4MiwgMC40ODkxNzMsIDAuNjUxMzk4LCAwLjgxMzM0MSwgMC45NzQ5OTciLCBcCi0gICAgICAgICAgIjAuMDM5MjQ0LCAwLjE5ODY1OCwgMC4zMjc4NzksIDAuNDg5OTg4LCAwLjY1MDQ4NSwgMC44MTIwMTksIDAuOTc0OTE1IiwgXAotICAgICAgICAgICIwLjAzOTI2NSwgMC4xOTg2MTgsIDAuMzI3OTI4LCAwLjQ4OTAxNSwgMC42NTE1OTcsIDAuODEzMjI0LCAwLjk3NDkyNCIsIFwKLSAgICAgICAgICAiMC4wMzkyNjIsIDAuMTk4OTY3LCAwLjMyNzcwNywgMC40ODkxNSwgMC42NTE1ODMsIDAuODExOTk5LCAwLjk3NDg4OCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTk4OTcsIDAuMTc1ODQ3LCAwLjIzNjU3MiwgMC4zMTI0OTMsIDAuMzg4MzcxLCAwLjQ2NDI4NCwgMC41NDAxNDIiLCBcCi0gICAgICAgICAgIjAuMTA3OTUxLCAwLjE4Mzk0LCAwLjI0NDY4OSwgMC4zMjA1ODgsIDAuMzk2NDk5LCAwLjQ3MjM5MywgMC41NDgyNDgiLCBcCi0gICAgICAgICAgIjAuMTE2Njg2LCAwLjE5MjY3MiwgMC4yNTM0MTksIDAuMzI5MzE0LCAwLjQwNTI1LCAwLjQ4MTA3MywgMC41NTY5NzMiLCBcCi0gICAgICAgICAgIjAuMTIzMTM3LCAwLjE5OTA5MSwgMC4yNTk4MjEsIDAuMzM1NzY1LCAwLjQxMTYxOCwgMC40ODc0MiwgMC41NjMzODIiLCBcCi0gICAgICAgICAgIjAuMTI4MzMsIDAuMjA0MywgMC4yNjUwMjEsIDAuMzQwOTc1LCAwLjQxNjgyMSwgMC40OTI2OTYsIDAuNTY4NjExIiwgXAotICAgICAgICAgICIwLjEzNTQ2NywgMC4yMTEzNiwgMC4yNzIyMjUsIDAuMzQ3OTkyLCAwLjQyMzk5NCwgMC40OTk4OTMsIDAuNTc1NjQ2IiwgXAotICAgICAgICAgICIwLjE0MDYzNywgMC4yMTY1ODYsIDAuMjc3MzIzLCAwLjM1MzIxNSwgMC40MjkxMTEsIDAuNTA0OTksIDAuNTgwOTE3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzODQ5NCwgMC4xOTQxNjEsIDAuMzIwMzY5LCAwLjQ3Nzc5NiwgMC42MzU5NzksIDAuNzkzNzk5LCAwLjk1MTYyIiwgXAotICAgICAgICAgICIwLjAzODQ4NiwgMC4xOTQyMTcsIDAuMzIwMzgyLCAwLjQ3ODIwOSwgMC42MzYwNCwgMC43OTM4MzMsIDAuOTUxNTczIiwgXAotICAgICAgICAgICIwLjAzODQ4NywgMC4xOTM5NjcsIDAuMzE5OTExLCAwLjQ3NzMzLCAwLjYzNDc4MywgMC43OTM3ODYsIDAuOTUxNTkyIiwgXAotICAgICAgICAgICIwLjAzODQ5NCwgMC4xOTQxOTIsIDAuMzIwMzg0LCAwLjQ3NzI2NywgMC42MzU5NjUsIDAuNzkzNTAyLCAwLjk1MTU4NSIsIFwKLSAgICAgICAgICAiMC4wMzg0NzEsIDAuMTk0MTk3LCAwLjMyMDM3MSwgMC40NzcyMjYsIDAuNjM1NDY3LCAwLjc5Mzc2MSwgMC45NTE1ODIiLCBcCi0gICAgICAgICAgIjAuMDM4NSwgMC4xOTQyMjIsIDAuMzE5ODMyLCAwLjQ3NzQwNiwgMC42MzU4NjMsIDAuNzkzNjU2LCAwLjk1MTQ1MyIsIFwKLSAgICAgICAgICAiMC4wMzg0NjUsIDAuMTk0MTMzLCAwLjMyMDMyMywgMC40Nzc3MDcsIDAuNjM1ODQsIDAuNzkyOTM4LCAwLjk1MDQxNCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDY4MDgsIDAuMDA2ODU3LCAwLjAwNjg2MywgMC4wMDY4NjcsIDAuMDA2ODY4LCAwLjAwNjg2OSwgMC4wMDY4NyIsIFwKLSAgICAgICAgICAiMC4wMDY4MTEsIDAuMDA2ODYsIDAuMDA2ODY2LCAwLjAwNjg2OSwgMC4wMDY4NzIsIDAuMDA2ODczLCAwLjAwNjg3MSIsIFwKLSAgICAgICAgICAiMC4wMDY4NTQsIDAuMDA2OTAzLCAwLjAwNjkwOSwgMC4wMDY5MTIsIDAuMDA2OTE1LCAwLjAwNjkxNSwgMC4wMDY5MTYiLCBcCi0gICAgICAgICAgIjAuMDA2OTIxLCAwLjAwNjk2OSwgMC4wMDY5NzYsIDAuMDA2OTc5LCAwLjAwNjk4LCAwLjAwNjk4MSwgMC4wMDY5ODEiLCBcCi0gICAgICAgICAgIjAuMDA2OTk0LCAwLjAwNzA0MywgMC4wMDcwNDksIDAuMDA3MDUyLCAwLjAwNzA1NSwgMC4wMDcwNTQsIDAuMDA3MDU1IiwgXAotICAgICAgICAgICIwLjAwNzA5OSwgMC4wMDcxNDgsIDAuMDA3MTU0LCAwLjAwNzE2NywgMC4wMDcxNTgsIDAuMDA3MTYsIDAuMDA3MTU5IiwgXAotICAgICAgICAgICIwLjAwNzIxMywgMC4wMDcyNTgsIDAuMDA3MjYzLCAwLjAwNzI2MiwgMC4wMDcyNjQsIDAuMDA3MjY0LCAwLjAwNzI2NiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjMyNCwgMC4wMDYzNDcsIDAuMDA2MzQxLCAwLjAwNjMzNywgMC4wMDYzMzQsIDAuMDA2MzMyLCAwLjAwNjMzIiwgXAotICAgICAgICAgICIwLjAwNjMxOSwgMC4wMDYzNDMsIDAuMDA2MzM3LCAwLjAwNjMzMiwgMC4wMDYzMjksIDAuMDA2MzI5LCAwLjAwNjMyNSIsIFwKLSAgICAgICAgICAiMC4wMDYzNTQsIDAuMDA2Mzc4LCAwLjAwNjM3MiwgMC4wMDYzNjcsIDAuMDA2MzY0LCAwLjAwNjM2MSwgMC4wMDYzNTkiLCBcCi0gICAgICAgICAgIjAuMDA2NDE0LCAwLjAwNjQ0LCAwLjAwNjQzMywgMC4wMDY0MjgsIDAuMDA2NDI0LCAwLjAwNjQyMiwgMC4wMDY0MiIsIFwKLSAgICAgICAgICAiMC4wMDY0ODQsIDAuMDA2NTExLCAwLjAwNjUwNCwgMC4wMDY0OTgsIDAuMDA2NDk0LCAwLjAwNjQ5LCAwLjAwNjQ5IiwgXAotICAgICAgICAgICIwLjAwNjU4MywgMC4wMDY2MTksIDAuMDA2NjAyLCAwLjAwNjYwNiwgMC4wMDY1OTEsIDAuMDA2NTg4LCAwLjAwNjU5NiIsIFwKLSAgICAgICAgICAiMC4wMDY2NzcsIDAuMDA2NzA2LCAwLjAwNjcsIDAuMDA2NjksIDAuMDA2Njg5LCAwLjAwNjY4MSwgMC4wMDY2NzkiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IERMWTFYNCAqCi0gKiAtLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKERMWTFYNCkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjY0MjM1NDsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjk4ODQ7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjk4ODM1OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDY5ODg0OwotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDEuMzczODY7Ci0gICAgZnVuY3Rpb24gOiAiQSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjY1MzMsIDAuMTIyMjk0LCAwLjE3NzEzMSwgMC4yMTYzNCwgMC4yNzg5MjYsIDAuMzMzNzUsIDAuNDEyMTAyIiwgXAotICAgICAgICAgICIwLjA3MzU5NSwgMC4xMjkzNzEsIDAuMTg0MTgsIDAuMjIzNDAxLCAwLjI4NjAwMiwgMC4zNDA4MjksIDAuNDE5MTY1IiwgXAotICAgICAgICAgICIwLjA3OTE3NSwgMC4xMzQ5NjksIDAuMTg5NzUyLCAwLjIyODk3NSwgMC4yOTE1ODEsIDAuMzQ2NDA4LCAwLjQyNDc0NiIsIFwKLSAgICAgICAgICAiMC4wODMxNDQsIDAuMTM4ODg5LCAwLjE5MzcwNywgMC4yMzI4NywgMC4yOTU1MDUsIDAuMzUwMzQzLCAwLjQyODY2MyIsIFwKLSAgICAgICAgICAiMC4wODY1OTYsIDAuMTQyMjUxLCAwLjE5NzA4OSwgMC4yMzYyMTksIDAuMjk4OTk4LCAwLjM1MzY5OCwgMC40MzIxNTEiLCBcCi0gICAgICAgICAgIjAuMDkwOTU1LCAwLjE0NjY3NSwgMC4yMDE0ODIsIDAuMjQwNjk0LCAwLjMwMzMwNSwgMC4zNTgxMjEsIDAuNDM2NDI5IiwgXAotICAgICAgICAgICIwLjA5NDM2NiwgMC4xNDk5NjIsIDAuMjA0Nzc0LCAwLjI0MzkwOCwgMC4zMDY1ODEsIDAuMzYxNDEzLCAwLjQzOTcxNCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyNTEyLCAwLjEzNzM5LCAwLjI1MzE1NSwgMC4zMzUzMTIsIDAuNDY3Nzc0LCAwLjU4Mjk3OSwgMC43NDg0NTQiLCBcCi0gICAgICAgICAgIjAuMDI1MTE3LCAwLjEzNzQ3NywgMC4yNTI2NDksIDAuMzM1Mzg5LCAwLjQ2Nzc1MSwgMC41ODI4OTUsIDAuNzQ4NTQ4IiwgXAotICAgICAgICAgICIwLjAyNTEyNSwgMC4xMzc1MjgsIDAuMjUyNjI0LCAwLjMzNTM5MiwgMC40Njc3NTcsIDAuNTgzMjQyLCAwLjc0ODU0OCIsIFwKLSAgICAgICAgICAiMC4wMjUxMDIsIDAuMTM3NjkxLCAwLjI1MzE0NywgMC4zMzU1ODcsIDAuNDY3ODA2LCAwLjU4MzM4NSwgMC43NDg1MzgiLCBcCi0gICAgICAgICAgIjAuMDI1MDk3LCAwLjEzNzY4NCwgMC4yNTMyNDksIDAuMzM1NTcyLCAwLjQ2Nzg4MiwgMC41ODMzNzksIDAuNzQ4NTM5IiwgXAotICAgICAgICAgICIwLjAyNTEzOSwgMC4xMzc1MjgsIDAuMjUzMDI1LCAwLjMzNTM3NCwgMC40Njc4NSwgMC41ODMxNDYsIDAuNzQ4NjUiLCBcCi0gICAgICAgICAgIjAuMDI1MTM5LCAwLjEzNzUwOSwgMC4yNTI5MzgsIDAuMzM1NTEsIDAuNDY4MzQ4LCAwLjU4MzU1MywgMC43NDk1ODkiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjU1MDksIDAuMTIwNDA2LCAwLjE3NDI2OCwgMC4yMTI3NzEsIDAuMjc0MjYsIDAuMzI4MTAxLCAwLjQwNTAxNCIsIFwKLSAgICAgICAgICAiMC4wNzI1MDYsIDAuMTI3NDQ2LCAwLjE4MTMwOCwgMC4yMTk3NjYsIDAuMjgxMzA3LCAwLjMzNTEyNiwgMC40MTIwMzQiLCBcCi0gICAgICAgICAgIjAuMDc3OTIzLCAwLjEzMjg2NywgMC4xODY3MzUsIDAuMjI1MjQ3LCAwLjI4Njc3MSwgMC4zNDA1OTYsIDAuNDE3NDg3IiwgXAotICAgICAgICAgICIwLjA4MTc0NSwgMC4xMzY2ODcsIDAuMTkwNTQ5LCAwLjIyOTAzNCwgMC4yOTA1NzEsIDAuMzQ0NDEsIDAuNDIxMzA1IiwgXAotICAgICAgICAgICIwLjA4NDg0NiwgMC4xMzk3NywgMC4xOTM2MjIsIDAuMjMyMDg4LCAwLjI5MzY2NSwgMC4zNDc1MjQsIDAuNDI0MzU4IiwgXAotICAgICAgICAgICIwLjA4ODk2MiwgMC4xNDM5MDcsIDAuMTk3ODE3LCAwLjIzNjI4LCAwLjI5Nzc5LCAwLjM1MTcwOCwgMC40Mjg1MDQiLCBcCi0gICAgICAgICAgIjAuMDkxOTU4LCAwLjE0Njk1NiwgMC4yMDA4MTEsIDAuMjM5MjE4LCAwLjMwMDgxMywgMC4zNTQ2OCwgMC40MzE1MDQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjQyMjYsIDAuMTMzMzA0LCAwLjI0NDkzNiwgMC4zMjQyMzMsIDAuNDUzMDU1LCAwLjU2NDUxLCAwLjcyMzg2OCIsIFwKLSAgICAgICAgICAiMC4wMjQyMDksIDAuMTMzMDA3LCAwLjI0NDkzNSwgMC4zMjQ1MTUsIDAuNDUzMDY1LCAwLjU2NDg5LCAwLjcyMzYxIiwgXAotICAgICAgICAgICIwLjAyNDIxNSwgMC4xMzMxMywgMC4yNDQ5MjMsIDAuMzI0Mjk4LCAwLjQ1MjEyMiwgMC41NjQwNjYsIDAuNzI1MzAzIiwgXAotICAgICAgICAgICIwLjAyNDE5NiwgMC4xMzMyNzMsIDAuMjQ0ODkyLCAwLjMyNDMyNCwgMC40NTMwNjcsIDAuNTY0MDcsIDAuNzI1MzM1IiwgXAotICAgICAgICAgICIwLjAyNDIzMSwgMC4xMzMwMDcsIDAuMjQ0OTMsIDAuMzI0ODYzLCAwLjQ1MjQ1NSwgMC41NjQwNjksIDAuNzI0MzciLCBcCi0gICAgICAgICAgIjAuMDI0MTk2LCAwLjEzMjk3OCwgMC4yNDQ4NTQsIDAuMzI0NDkyLCAwLjQ1MjUzMSwgMC41NjQwMDksIDAuNzI1MjYyIiwgXAotICAgICAgICAgICIwLjAyNDIxNSwgMC4xMzI5NDMsIDAuMjQ0NjIzLCAwLjMyNDc3NiwgMC40NTMwNDYsIDAuNTY0MDk1LCAwLjcyNTA4NiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA4MDE5LCAwLjAwODE0NiwgMC4wMDgxNjUsIDAuMDA4MTcxLCAwLjAwODE1OCwgMC4wMDgxOSwgMC4wMDgxOCIsIFwKLSAgICAgICAgICAiMC4wMDgwMjYsIDAuMDA4MTUzLCAwLjAwODE3MSwgMC4wMDgxNzcsIDAuMDA4MTY5LCAwLjAwODE5OSwgMC4wMDgxODgiLCBcCi0gICAgICAgICAgIjAuMDA4MTA4LCAwLjAwODIzOCwgMC4wMDgyNTgsIDAuMDA4MjY0LCAwLjAwODI1NSwgMC4wMDgyODQsIDAuMDA4MjczIiwgXAotICAgICAgICAgICIwLjAwODIyNiwgMC4wMDgzNTYsIDAuMDA4Mzc2LCAwLjAwODM4MiwgMC4wMDgzODYsIDAuMDA4MzksIDAuMDA4MzkyIiwgXAotICAgICAgICAgICIwLjAwODM1NiwgMC4wMDg0OTcsIDAuMDA4NTA5LCAwLjAwODUyMywgMC4wMDg1MTcsIDAuMDA4NTMsIDAuMDA4NTIyIiwgXAotICAgICAgICAgICIwLjAwODU4NiwgMC4wMDg3MTUsIDAuMDA4NzM1LCAwLjAwODc0MiwgMC4wMDg3NDksIDAuMDA4NzUzLCAwLjAwODc1MSIsIFwKLSAgICAgICAgICAiMC4wMDg3ODEsIDAuMDA4OTI4LCAwLjAwODk0OCwgMC4wMDg5NTIsIDAuMDA4OTU1LCAwLjAwODk1MywgMC4wMDg5NjQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwOTE0OCwgMC4wMDkzNDUsIDAuMDA5Mzc2LCAwLjAwOTM4NSwgMC4wMDkzOTQsIDAuMDA5Mzk4LCAwLjAwOTQwMiIsIFwKLSAgICAgICAgICAiMC4wMDkxNiwgMC4wMDkzNTQsIDAuMDA5Mzg0LCAwLjAwOTM5NCwgMC4wMDk0MDIsIDAuMDA5NDA2LCAwLjAwOTQxIiwgXAotICAgICAgICAgICIwLjAwOTIzMiwgMC4wMDk0MzEsIDAuMDA5NDYyLCAwLjAwOTQ3MSwgMC4wMDk0NzksIDAuMDA5NDg0LCAwLjAwOTQ4OCIsIFwKLSAgICAgICAgICAiMC4wMDkzNTQsIDAuMDA5NTU5LCAwLjAwOTU4OSwgMC4wMDk1ODgsIDAuMDA5NTk4LCAwLjAwOTYxLCAwLjAwOTYxNCIsIFwKLSAgICAgICAgICAiMC4wMDk0NzUsIDAuMDA5NjY5LCAwLjAwOTY5OSwgMC4wMDk3MDksIDAuMDA5NzI1LCAwLjAwOTcyOSwgMC4wMDk3MjYiLCBcCi0gICAgICAgICAgIjAuMDA5NywgMC4wMDk4OTYsIDAuMDA5OTE3LCAwLjAwOTkyOCwgMC4wMDk5NDUsIDAuMDA5OTQxLCAwLjAwOTk0OSIsIFwKLSAgICAgICAgICAiMC4wMDk4OTcsIDAuMDEwMDgyLCAwLjAxMDExNywgMC4wMTAxMzksIDAuMDEwMTMxLCAwLjAxMDE1MiwgMC4wMTAxNTQiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IERMWTJYNCAqCi0gKiAtLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKERMWTJYNCkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjg0ODM1NzsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjE1NDM2OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYxNTIzOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDYxNTQzNjsKLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAxLjM4OTUzOwotICAgIGZ1bmN0aW9uIDogIkEiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTE2NTI0LCAwLjE3MTkxMSwgMC4yMjYwNDMsIDAuMjY0Njg3LCAwLjMyNjUwNiwgMC4zODA2MjIsIDAuNDU3ODc5IiwgXAotICAgICAgICAgICIwLjEyMzkwNSwgMC4xNzkyNTQsIDAuMjMzMzcyLCAwLjI3MjA0NCwgMC4zMzM4MzYsIDAuMzg3OTQ1LCAwLjQ2NTI1IiwgXAotICAgICAgICAgICIwLjEyOTgyMSwgMC4xODUxNjksIDAuMjM5Mjg3LCAwLjI3Nzk1OCwgMC4zMzk3NTIsIDAuMzkzODYsIDAuNDcxMTY2IiwgXAotICAgICAgICAgICIwLjEzNDIyOSwgMC4xODk1ODQsIDAuMjQzNzAxLCAwLjI4MjMzMywgMC4zNDQxNjcsIDAuMzk4MjQ3LCAwLjQ3NTU5NyIsIFwKLSAgICAgICAgICAiMC4xMzc2NCwgMC4xOTMwMjMsIDAuMjQ3MjAzLCAwLjI4NTc4OCwgMC4zNDc2NjYsIDAuNDAxNzg0LCAwLjQ3OTEzIiwgXAotICAgICAgICAgICIwLjE0MjQwMywgMC4xOTc2MzUsIDAuMjUxNzU5LCAwLjI5MDQzNSwgMC4zNTIyMDgsIDAuNDA2MzI1LCAwLjQ4MzU5OSIsIFwKLSAgICAgICAgICAiMC4xNDU5MjMsIDAuMjAxMjYzLCAwLjI1NTM5MywgMC4yOTQwMjMsIDAuMzU1ODQ2LCAwLjQwOTkzNSwgMC40ODcyNDQiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjU1ODUsIDAuMTM2MzgsIDAuMjUxMDE2LCAwLjMzMjIwNSwgMC40NjM2NzksIDAuNTc4OTQ2LCAwLjc0MTkwOSIsIFwKLSAgICAgICAgICAiMC4wMjU1NzgsIDAuMTM2NTQ5LCAwLjI1MTAyNiwgMC4zMzIzNzQsIDAuNDYzNTgsIDAuNTc3OTc3LCAwLjc0MTgzIiwgXAotICAgICAgICAgICIwLjAyNTU2OCwgMC4xMzY1NDksIDAuMjUxMDI2LCAwLjMzMjM4MywgMC40NjM1OCwgMC41Nzc5NjgsIDAuNzQxODI5IiwgXAotICAgICAgICAgICIwLjAyNTU4MywgMC4xMzY2MSwgMC4yNTEwMjEsIDAuMzMyOTU5LCAwLjQ2NDE1MiwgMC41Nzg0MTcsIDAuNzQxNjIyIiwgXAotICAgICAgICAgICIwLjAyNTU4MywgMC4xMzY1MDIsIDAuMjUxMDI3LCAwLjMzMjE5MSwgMC40NjM1ODQsIDAuNTc4MjQsIDAuNzQxODY4IiwgXAotICAgICAgICAgICIwLjAyNTYxNCwgMC4xMzY2ODcsIDAuMjUwOTkzLCAwLjMzMjUwMywgMC40NjM1ODgsIDAuNTc4MTgyLCAwLjc0Mjc5NiIsIFwKLSAgICAgICAgICAiMC4wMjU1MDEsIDAuMTM2NTc2LCAwLjI1MTA2NCwgMC4zMzI1ODIsIDAuNDYzNjQxLCAwLjU3ODgyNiwgMC43NDE4MjQiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTYwMSwgMC4xNzEyMDEsIDAuMjI1MDI4LCAwLjI2MzQ2NiwgMC4zMjQ5NDYsIDAuMzc4NzQzLCAwLjQ1NTYyOSIsIFwKLSAgICAgICAgICAiMC4xMjMyMTEsIDAuMTc4NDA4LCAwLjIzMjI0LCAwLjI3MDY3NCwgMC4zMzIxNjEsIDAuMzg1OTM4LCAwLjQ2MjgxIiwgXAotICAgICAgICAgICIwLjEyOTA2NiwgMC4xODQyNDgsIDAuMjM4MDcxLCAwLjI3NjUxMSwgMC4zMzc5OSwgMC4zOTE3OCwgMC40Njg2ODMiLCBcCi0gICAgICAgICAgIjAuMTMzMjIyLCAwLjE4ODQyNywgMC4yNDIyNjQsIDAuMjgwNjg3LCAwLjM0MjE4MSwgMC4zOTU5NjEsIDAuNDcyODIyIiwgXAotICAgICAgICAgICIwLjEzNjQ4LCAwLjE5MTY4NCwgMC4yNDU1MTIsIDAuMjgzOTU3LCAwLjM0NTQyOSwgMC4zOTkxOTgsIDAuNDc2MTE1IiwgXAotICAgICAgICAgICIwLjE0MDkzMiwgMC4xOTYwNjEsIDAuMjQ5OTg3LCAwLjI4ODQxMiwgMC4zNDk4NzksIDAuNDAzNjk3LCAwLjQ4MDUyNSIsIFwKLSAgICAgICAgICAiMC4xNDQxNjEsIDAuMTk5MzM0LCAwLjI1MzE1NSwgMC4yOTE2MTUsIDAuMzUzMDkxLCAwLjQwNjg4NywgMC40ODM3MTciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjQ4NTIsIDAuMTMzMjU4LCAwLjI0NDg0OCwgMC4zMjQ3ODYsIDAuNDUyNzEsIDAuNTYzOTI4LCAwLjcyMzI5IiwgXAotICAgICAgICAgICIwLjAyNDg5MSwgMC4xMzMzODMsIDAuMjQ0OTAxLCAwLjMyNDc4OCwgMC40NTI3NTcsIDAuNTY0NTc4LCAwLjcyMzE0NSIsIFwKLSAgICAgICAgICAiMC4wMjQ4NzcsIDAuMTMzMjU4LCAwLjI0NDgyNiwgMC4zMjQzNjksIDAuNDUyNjk3LCAwLjU2NDAxNCwgMC43MjMzNTIiLCBcCi0gICAgICAgICAgIjAuMDI0ODg1LCAwLjEzMzM3NiwgMC4yNDQ4ODUsIDAuMzI0MDg2LCAwLjQ1Mjc1MiwgMC41NjQ2MDMsIDAuNzIzMjg3IiwgXAotICAgICAgICAgICIwLjAyNDg3NCwgMC4xMzMyNiwgMC4yNDQ4NSwgMC4zMjQwODIsIDAuNDUyNzA1LCAwLjU2NDAzOCwgMC43MjMyNTUiLCBcCi0gICAgICAgICAgIjAuMDI0ODU3LCAwLjEzMzQyMSwgMC4yNDQ0ODgsIDAuMzI0MzQ2LCAwLjQ1MjU4OSwgMC41NjM3NjgsIDAuNzI0NzA4IiwgXAotICAgICAgICAgICIwLjAyNDg1OCwgMC4xMzM0NDEsIDAuMjQ0NTUyLCAwLjMyNDQwNywgMC40NTE4NDUsIDAuNTY0NzI0LCAwLjcyNDciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMTM0NCwgMC4wMTE1MjEsIDAuMDExNTUsIDAuMDExNTY4LCAwLjAxMTU3NiwgMC4wMTE1NjYsIDAuMDExNTc2IiwgXAotICAgICAgICAgICIwLjAxMTM1MSwgMC4wMTE1MjIsIDAuMDExNTcsIDAuMDExNTYxLCAwLjAxMTU1NiwgMC4wMTE1NzQsIDAuMDExNTc3IiwgXAotICAgICAgICAgICIwLjAxMTQzNywgMC4wMTE2MDgsIDAuMDExNjM3LCAwLjAxMTYzNywgMC4wMTE2NDIsIDAuMDExNjYsIDAuMDExNjY0IiwgXAotICAgICAgICAgICIwLjAxMTUzOSwgMC4wMTE3MTMsIDAuMDExNzQzLCAwLjAxMTc1MiwgMC4wMTE3NTgsIDAuMDExNzY1LCAwLjAxMTc2OSIsIFwKLSAgICAgICAgICAiMC4wMTE2NzMsIDAuMDExODQ2LCAwLjAxMTg3MywgMC4wMTE4OTYsIDAuMDExODg1LCAwLjAxMTg5LCAwLjAxMTg5MSIsIFwKLSAgICAgICAgICAiMC4wMTE5MTIsIDAuMDEyMDY5LCAwLjAxMjA5NCwgMC4wMTIxMDMsIDAuMDEyMTE2LCAwLjAxMjEyMiwgMC4wMTIxMjkiLCBcCi0gICAgICAgICAgIjAuMDEyMDg4LCAwLjAxMjI3MywgMC4wMTIzLCAwLjAxMjMxNCwgMC4wMTIzMiwgMC4wMTIzMjMsIDAuMDEyMzI2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTM1OTIsIDAuMDEzODE2LCAwLjAxMzg1NCwgMC4wMTM4NjcsIDAuMDEzODc4LCAwLjAxMzg4NCwgMC4wMTM4ODgiLCBcCi0gICAgICAgICAgIjAuMDEzNTk5LCAwLjAxMzgyMywgMC4wMTM4NjIsIDAuMDEzODc1LCAwLjAxMzg4NSwgMC4wMTM4OTIsIDAuMDEzODk3IiwgXAotICAgICAgICAgICIwLjAxMzY3MiwgMC4wMTM4OTcsIDAuMDEzOTM2LCAwLjAxMzk0OCwgMC4wMTM5NiwgMC4wMTM5NjYsIDAuMDEzOTciLCBcCi0gICAgICAgICAgIjAuMDEzNzgsIDAuMDEzOTk4LCAwLjAxNDA0MiwgMC4wMTQwNDksIDAuMDE0MDYsIDAuMDE0MDcyLCAwLjAxNDA3MSIsIFwKLSAgICAgICAgICAiMC4wMTM4OTEsIDAuMDE0MTEzLCAwLjAxNDE1MiwgMC4wMTQxNTYsIDAuMDE0MTc1LCAwLjAxNDE3NCwgMC4wMTQxODYiLCBcCi0gICAgICAgICAgIjAuMDE0MTE4LCAwLjAxNDMzNiwgMC4wMTQzODcsIDAuMDE0NDAxLCAwLjAxNDQxMSwgMC4wMTQ0MTgsIDAuMDE0NDI0IiwgXAotICAgICAgICAgICIwLjAxNDMyNSwgMC4wMTQ1NDIsIDAuMDE0NTcxLCAwLjAxNDU4NCwgMC4wMTQ1OTQsIDAuMDE0NjA4LCAwLjAxNDYxNCIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogRExZM1g0ICoKLSAqIC0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoRExZM1g0KSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDEuMDU0NDQ7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYzOTEzOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYzOTEzOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDYzODY0OTsKLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAxLjM3NjIyOwotICAgIGZ1bmN0aW9uIDogIkEiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTYwOTYzLCAwLjIxNjI2NSwgMC4yNzA0OTgsIDAuMzA5Mjk2LCAwLjM3MTIyOCwgMC40MjU0OCwgMC41MDMwMDgiLCBcCi0gICAgICAgICAgIjAuMTY4Mjk4LCAwLjIyMzYxNCwgMC4yNzc4NTgsIDAuMzE2NjIsIDAuMzc4NTg1LCAwLjQzMjgyOCwgMC41MTAzNzgiLCBcCi0gICAgICAgICAgIjAuMTc0MTY0LCAwLjIyOTQ4MywgMC4yODM3MjcsIDAuMzIyNDg5LCAwLjM4NDQ1MywgMC40Mzg2OTgsIDAuNTE2MjQzIiwgXAotICAgICAgICAgICIwLjE3ODU1NCwgMC4yMzM4MDksIDAuMjg4MDg5LCAwLjMyNjkxMiwgMC4zODg5MTcsIDAuNDQzMDc1LCAwLjUyMDU4NCIsIFwKLSAgICAgICAgICAiMC4xODE5ODQsIDAuMjM3MjQxLCAwLjI5MTUxNSwgMC4zMzAyODgsIDAuMzkyMjgyLCAwLjQ0NjM0LCAwLjUyMzg1OSIsIFwKLSAgICAgICAgICAiMC4xODY2MjYsIDAuMjQxOTM5LCAwLjI5NjIxLCAwLjMzNDk3NywgMC4zOTcwMTksIDAuNDUxMTQ0LCAwLjUyODY5NSIsIFwKLSAgICAgICAgICAiMC4xOTAxMTgsIDAuMjQ1MzAzLCAwLjI5OTQ3MywgMC4zMzgxOCwgMC40MDAyMjksIDAuNDU0NTUsIDAuNTMxOTI1Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDI1NDIyLCAwLjEzNjUxMiwgMC4yNTAxODIsIDAuMzMxODYyLCAwLjQ2Mjg2OSwgMC41NzczMywgMC43NDA1ODEiLCBcCi0gICAgICAgICAgIjAuMDI1NDIzLCAwLjEzNjQ0NywgMC4yNTA3MzQsIDAuMzMyNTkxLCAwLjQ2MzQ3LCAwLjU3NzQyMiwgMC43NDA1OSIsIFwKLSAgICAgICAgICAiMC4wMjU0MTgsIDAuMTM2NDQ5LCAwLjI1MDczNCwgMC4zMzI1OTEsIDAuNDYzNDc0LCAwLjU3NzM4NCwgMC43NDA1OTQiLCBcCi0gICAgICAgICAgIjAuMDI1NDE4LCAwLjEzNjQwNCwgMC4yNTAwNjcsIDAuMzMyMDE3LCAwLjQ2Mjc0NywgMC41NzgxMTMsIDAuNzQwMjU1IiwgXAotICAgICAgICAgICIwLjAyNTM5NywgMC4xMzY0NDksIDAuMjUwMzI4LCAwLjMzMjAwMywgMC40NjI2MzMsIDAuNTc2NTU1LCAwLjc0MTYzNiIsIFwKLSAgICAgICAgICAiMC4wMjU0MjEsIDAuMTM2NDQ0LCAwLjI1MDI1MywgMC4zMzE3NTksIDAuNDYyNjM1LCAwLjU3Nzc5OCwgMC43NDA1OTQiLCBcCi0gICAgICAgICAgIjAuMDI1NDUyLCAwLjEzNjQyNSwgMC4yNTA3NCwgMC4zMzE2OTcsIDAuNDYzMTg3LCAwLjU3Nzk2OSwgMC43NDA5MjYiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNjAxNTUsIDAuMjE1MjE3LCAwLjI2OTA4OSwgMC4zMDc1OTEsIDAuMzY5MTIxLCAwLjQyMjk5NCwgMC40OTk5NTUiLCBcCi0gICAgICAgICAgIjAuMTY3MjkzLCAwLjIyMjM1NCwgMC4yNzYyMzUsIDAuMzE0NzAxLCAwLjM3NjI5OCwgMC40MzAxNzIsIDAuNTA3MDM0IiwgXAotICAgICAgICAgICIwLjE3MzE1OSwgMC4yMjgyMjIsIDAuMjgyMDk0LCAwLjMyMDU2NSwgMC4zODIxMjEsIDAuNDM1OTk3LCAwLjUxMjk1NCIsIFwKLSAgICAgICAgICAiMC4xNzcyMzcsIDAuMjMyMywgMC4yODYxNzcsIDAuMzI0NjQ2LCAwLjM4NjIxNywgMC40NDAwNTQsIDAuNTE2OTk2IiwgXAotICAgICAgICAgICIwLjE4MDUwNSwgMC4yMzU1NjksIDAuMjg5NDgyLCAwLjMyNzk1NywgMC4zODk0NjgsIDAuNDQzMzY4LCAwLjUyMDMzMyIsIFwKLSAgICAgICAgICAiMC4xODQ5MzQsIDAuMjM5OTk4LCAwLjI5Mzg3LCAwLjMzMjM1NywgMC4zOTM4OTcsIDAuNDQ3Nzc1LCAwLjUyNDYzNCIsIFwKLSAgICAgICAgICAiMC4xODgwMzIsIDAuMjQzMTA5LCAwLjI5Njk4NSwgMC4zMzU0MTEsIDAuMzk2OTQyLCAwLjQ1MDg2MSwgMC41Mjc3NzciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjQ3MzUsIDAuMTMzNjM2LCAwLjI0NTMxNSwgMC4zMjQ3OTQsIDAuNDUzMzUyLCAwLjU2NDUyMiwgMC43MjQ1MTIiLCBcCi0gICAgICAgICAgIjAuMDI0NzEyLCAwLjEzMzUwNSwgMC4yNDUzNTcsIDAuMzI0ODk3LCAwLjQ1MjU5OSwgMC41NjQ0NiwgMC43MjU4MzgiLCBcCi0gICAgICAgICAgIjAuMDI0NzQ1LCAwLjEzMzYzMywgMC4yNDUzMiwgMC4zMjUzNTUsIDAuNDUzNTA4LCAwLjU2NDUyMiwgMC43MjQ1MiIsIFwKLSAgICAgICAgICAiMC4wMjQ3MzgsIDAuMTMzNzA1LCAwLjI0NTMzOSwgMC4zMjQ5MTEsIDAuNDUzNTQ3LCAwLjU2NTQ5NywgMC43MjQ5MTYiLCBcCi0gICAgICAgICAgIjAuMDI0NzQ0LCAwLjEzMzYzMywgMC4yNDUyODksIDAuMzI0OTI0LCAwLjQ1MzUwNywgMC41NjU0NzMsIDAuNzI0NTEyIiwgXAotICAgICAgICAgICIwLjAyNDc0NCwgMC4xMzM2MzMsIDAuMjQ1MzE5LCAwLjMyNDc3NCwgMC40NTM1MTEsIDAuNTY0NTQyLCAwLjcyNTgyMSIsIFwKLSAgICAgICAgICAiMC4wMjQ3ODQsIDAuMTMzNjQ4LCAwLjI0NTAzMiwgMC4zMjQ3NSwgMC40NTMzODMsIDAuNTY0NjE4LCAwLjcyNTkyOCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE0OTE1LCAwLjAxNTAzOCwgMC4wMTUwMzEsIDAuMDE1MDI2LCAwLjAxNTAxNywgMC4wMTUwMTQsIDAuMDE1MDA4IiwgXAotICAgICAgICAgICIwLjAxNDkxNCwgMC4wMTUwMzgsIDAuMDE1MDMxLCAwLjAxNTAyNSwgMC4wMTUwMTgsIDAuMDE1MDA3LCAwLjAxNTAwOSIsIFwKLSAgICAgICAgICAiMC4wMTUwMDIsIDAuMDE1MTI2LCAwLjAxNTEyLCAwLjAxNTEyLCAwLjAxNTEwNywgMC4wMTUxMDIsIDAuMDE1MDk3IiwgXAotICAgICAgICAgICIwLjAxNTEwNywgMC4wMTUyMjcsIDAuMDE1MjE4LCAwLjAxNTIxNSwgMC4wMTUyMDgsIDAuMDE1MjAzLCAwLjAxNTE5OCIsIFwKLSAgICAgICAgICAiMC4wMTUyNDMsIDAuMDE1MzY0LCAwLjAxNTM1OCwgMC4wMTUzNTMsIDAuMDE1MzQ2LCAwLjAxNTM0NiwgMC4wMTUzMjgiLCBcCi0gICAgICAgICAgIjAuMDE1NDQ5LCAwLjAxNTU3MiwgMC4wMTU1NzYsIDAuMDE1NTcsIDAuMDE1NTYyLCAwLjAxNTU1MiwgMC4wMTU1NDIiLCBcCi0gICAgICAgICAgIjAuMDE1NjcxLCAwLjAxNTc4NywgMC4wMTU3OTYsIDAuMDE1NzkzLCAwLjAxNTc2OCwgMC4wMTU3NTksIDAuMDE1Nzc5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTYxMzcsIDAuMDE2MzI5LCAwLjAxNjM0MSwgMC4wMTYzNDMsIDAuMDE2MzQyLCAwLjAxNjM0MiwgMC4wMTYzMzkiLCBcCi0gICAgICAgICAgIjAuMDE2MTQ4LCAwLjAxNjMzNCwgMC4wMTYzNDcsIDAuMDE2MzQ4LCAwLjAxNjM0OCwgMC4wMTYzNDYsIDAuMDE2MzQ2IiwgXAotICAgICAgICAgICIwLjAxNjIxOSwgMC4wMTY0MSwgMC4wMTY0MjIsIDAuMDE2NDIzLCAwLjAxNjQyMywgMC4wMTY0MjIsIDAuMDE2NDIiLCBcCi0gICAgICAgICAgIjAuMDE2MzI3LCAwLjAxNjUxNCwgMC4wMTY1MjcsIDAuMDE2NTI4LCAwLjAxNjUyOCwgMC4wMTY1MjcsIDAuMDE2NTI2IiwgXAotICAgICAgICAgICIwLjAxNjQ0MywgMC4wMTY2MzQsIDAuMDE2NjU0LCAwLjAxNjY1NSwgMC4wMTY2NDYsIDAuMDE2NjU0LCAwLjAxNjY1MyIsIFwKLSAgICAgICAgICAiMC4wMTY2NjYsIDAuMDE2ODU2LCAwLjAxNjg2OCwgMC4wMTY4NTcsIDAuMDE2ODY5LCAwLjAxNjg2OCwgMC4wMTY4NTUiLCBcCi0gICAgICAgICAgIjAuMDE2ODYyLCAwLjAxNzA2LCAwLjAxNzA3MywgMC4wMTcwODIsIDAuMDE3MDgyLCAwLjAxNzA4MiwgMC4wMTcwOTMiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogRURGRkhRWDIgKgotICogLS0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKEVERkZIUVgyKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDEuMTQ1Mjc7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgZmYgKE4zMCxRQklOVCkgewotICAgIG5leHRfc3RhdGUgOiAiKChFIEQpICsgKCFFICghKCFOMzApKSkpIjsKLSAgICBjbG9ja2VkX29uIDogIkNLIjsKLSAgfQotICBwaW4oQ0spICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY4Nzc5MTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2ODc3OTE7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjg3NzI7Ci0gICAgY2xvY2sgOiB0cnVlOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNDQ3NywgMC4wMDQ0ODMsIDAuMDA0NTQxLCAwLjAwNDY1MywgMC4wMDQ3NjQsIDAuMDA0OTg0LCAwLjAwNTE4NyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwODYwNiwgMC4wMDg2MTMsIDAuMDA4NzA3LCAwLjAwODgyNywgMC4wMDg5ODQsIDAuMDA5MjQ5LCAwLjAwOTU0NiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQmRSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fRV9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDg4MDgzLCAwLjA5NjIzLCAwLjEwNTA0MSwgMC4xMTE2NTUsIDAuMTE3MDE4LCAwLjEyNDMzMywgMC4xMjk3NzkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjA2MDE1OSwgMC4wNjgyMTUsIDAuMDc2OTc2LCAwLjA4MzM3NSwgMC4wODg2NjksIDAuMDk1MzkxLCAwLjEwMDQ5NiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwODgwMDMyOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDg3NzU1MTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA4ODAwMzI7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA0MSwgMC4wMDQwNTMsIDAuMDA0MDczLCAwLjAwNDExNCwgMC4wMDQxOTksIDAuMDA0MzQ4LCAwLjAwNDUwMyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwODUxMywgMC4wMDg0ODUsIDAuMDA4NTAyLCAwLjAwODU0NCwgMC4wMDg2MTMsIDAuMDA4NzQxLCAwLjAwODg5MSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJFIjsKLSAgICAgIHNkZl9jb25kIDogIkUgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDMxMjUsIC0wLjAyNjI1LCAtMC4wMjYyNSwgLTAuMDIsIC0wLjAyLCAtMC4wMTYyNSwgLTAuMDEzNzUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMzEyNSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDI1LCAtMC4wMjEyNSwgLTAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAyNzUsIC0wLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wNCwgLTAuMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDYxMjUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wNDYyNSwgLTAuMDQzNzUiLCBcCi0gICAgICAgICAgIi0wLjA2NSwgLTAuMDY2MjUsIC0wLjA2LCAtMC4wNiwgLTAuMDUzNzUsIC0wLjA1LCAtMC4wNDc1IiwgXAotICAgICAgICAgICItMC4wNzM3NSwgLTAuMDY4NzUsIC0wLjA2ODc1LCAtMC4wNjI1LCAtMC4wNjI1LCAtMC4wNTg3NSwgLTAuMDU2MjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMTI1LCAtMC4wMDEyNSwgMC4wMDUsIDAuMDExMjUsIDAuMDExMjUsIDAuMDIxMjUsIDAuMDIzNzUiLCBcCi0gICAgICAgICAgIi0wLjAxNzUsIC0wLjAwNjI1LCAwLCAwLjAwNjI1LCAwLjAwNjI1LCAwLjAxNjI1LCAwLjAxODc1IiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAsIDAsIDAuMDEsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgLTAuMDA2MjUsIDAuMDAzNzUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgLTAuMDAyNSwgMCIsIFwKLSAgICAgICAgICAiLTAuMDQsIC0wLjAyODc1LCAtMC4wMjI1LCAtMC4wMjI1LCAtMC4wMTYyNSwgLTAuMDEyNSwgLTAuMDAzNzUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTUsIC0wLjAxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIkUiOwotICAgICAgc2RmX2NvbmQgOiAiRSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTYyNSwgMC4wNDUsIDAuMDM4NzUsIDAuMDM4NzUsIDAuMDMyNSwgMC4wMjg3NSwgMC4wMjYyNSIsIFwKLSAgICAgICAgICAiMC4wNjEyNSwgMC4wNSwgMC4wNSwgMC4wNDM3NSwgMC4wNDM3NSwgMC4wNCwgMC4wMzc1IiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNSwgMC4wNSwgMC4wNDYyNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4wNzM3NSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDUyNSwgMC4wNSIsIFwKLSAgICAgICAgICAiMC4wOCwgMC4wNzUsIDAuMDY4NzUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNTg3NSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiMC4wOSwgMC4wODUsIDAuMDc4NzUsIDAuMDcyNSwgMC4wNzI1LCAwLjA2ODc1LCAwLjA2NjI1IiwgXAotICAgICAgICAgICIwLjA5ODc1LCAwLjA5Mzc1LCAwLjA4NzUsIDAuMDgxMjUsIDAuMDgxMjUsIDAuMDc3NSwgMC4wNzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzc1LCAwLjAzMjUsIDAuMDIsIDAuMDEzNzUsIDAuMDEzNzUsIDAuMDAzNzUsIDAuMDAxMjUiLCBcCi0gICAgICAgICAgIjAuMDQyNSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMTg3NSwgMC4wMDg3NSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiMC4wNDg3NSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMTUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4wNjEyNSwgMC4wNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyMTI1LCAwLjAxODc1IiwgXAotICAgICAgICAgICIwLjA2MTI1LCAwLjA1NjI1LCAwLjA1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDI3NSwgMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMDcxMjUsIDAuMDY2MjUsIDAuMDUzNzUsIDAuMDQ3NSwgMC4wNDEyNSwgMC4wMzc1LCAwLjAyODc1IiwgXAotICAgICAgICAgICIwLjA4LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDUsIDAuMDQsIDAuMDM3NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxODMwOTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE4Mjk5NjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE4MzA5OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNzc2NywgMC4wMDc3ODUsIDAuMDA3ODYsIDAuMDA3OTcyLCAwLjAwODA5OCwgMC4wMDgzNjYsIDAuMDA4NTY3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA4OTk3LCAwLjAwOTAxMSwgMC4wMDkxMjksIDAuMDA5MzIyLCAwLjAwOTU3NCwgMC4wMDk5ODgsIDAuMDEwMzc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEIjsKLSAgICAgIHNkZl9jb25kIDogIkQgPT0gMSdiMCI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDMxMjUsIC0wLjAyNjI1LCAtMC4wMiwgLTAuMDEzNzUsIC0wLjAwNzUsIDAuMDAyNSwgMC4wMDUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDg3NSwgMCIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTUsIC0wLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjA1NSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAyMTI1LCAtMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDMxMjUsIC0wLjAyMTI1LCAtMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDU4NzUsIC0wLjA1Mzc1LCAtMC4wNDc1LCAtMC4wNDEyNSwgLTAuMDM1LCAtMC4wMzEyNSwgLTAuMDIyNSIsIFwKLSAgICAgICAgICAiLTAuMDY3NSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDMzNzUsIC0wLjAyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAsIDAuMDExMjUsIDAuMDE3NSwgMC4wMjM3NSwgMC4wMjM3NSwgMC4wMzM3NSwgMC4wMzYyNSIsIFwKLSAgICAgICAgICAiLTAuMDA1LCAwLCAwLjAwNjI1LCAwLjAxMjUsIDAuMDE4NzUsIDAuMDIyNSwgMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjAxMTI1LCAtMC4wMDYyNSwgMCwgMC4wMDYyNSwgMC4wMDYyNSwgMC4wMTYyNSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDE3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAsIDAuMDA2MjUsIDAuMDEsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxODc1LCAtMC4wMDYyNSwgLTAuMDA2MjUsIDAsIDAuMDAzNzUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjAzMzc1LCAtMC4wMjI1LCAtMC4wMTYyNSwgLTAuMDEsIC0wLjAxLCAwLCAwLjAwMjUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA4NzUsIC0wLjAwNjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIkQiOwotICAgICAgc2RmX2NvbmQgOiAiRCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMzEyNSwgLTAuMDI2MjUsIC0wLjAyLCAtMC4wMiwgLTAuMDIsIC0wLjAxNjI1LCAtMC4wMTM3NSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDI1LCAtMC4wMjEyNSwgLTAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDM3NSwgLTAuMDM3NSwgLTAuMDMzNzUsIC0wLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wNjEyNSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDQzNzUsIC0wLjA0LCAtMC4wMzc1IiwgXAotICAgICAgICAgICItMC4wNjc1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNDYyNSwgLTAuMDQzNzUiLCBcCi0gICAgICAgICAgIi0wLjA3NzUsIC0wLjA3MjUsIC0wLjA2NjI1LCAtMC4wNjYyNSwgLTAuMDYsIC0wLjA1NjI1LCAtMC4wNTM3NSIsIFwKLSAgICAgICAgICAiLTAuMDg2MjUsIC0wLjA3NSwgLTAuMDc1LCAtMC4wNjg3NSwgLTAuMDY4NzUsIC0wLjA2NSwgLTAuMDYyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEyNSwgMC4wMTc1LCAwLjAyMzc1LCAwLjAzLCAwLjAzNjI1LCAwLjA0LCAwLjA0ODc1IiwgXAotICAgICAgICAgICIwLjAwMTI1LCAwLjAxMjUsIDAuMDE4NzUsIDAuMDI1LCAwLjAzMTI1LCAwLjAzNSwgMC4wMzc1IiwgXAotICAgICAgICAgICItMC4wMDUsIDAuMDA2MjUsIDAuMDEyNSwgMC4wMTg3NSwgMC4wMTg3NSwgMC4wMjg3NSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDExMjUsIDAsIDAuMDA2MjUsIDAuMDEyNSwgMC4wMTI1LCAwLjAyMjUsIDAuMDI1IiwgXAotICAgICAgICAgICItMC4wMTc1LCAtMC4wMDYyNSwgMCwgMC4wMDYyNSwgMC4wMDYyNSwgMC4wMTYyNSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDIxMjUsIC0wLjAxNjI1LCAtMC4wMSwgLTAuMDAzNzUsIDAuMDAyNSwgMC4wMDYyNSwgMC4wMDg3NSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgLTAuMDA2MjUsIDAuMDAzNzUsIDAuMDA2MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEIjsKLSAgICAgIHNkZl9jb25kIDogIkQgPT0gMSdiMCI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQzNzUsIDAuMDM4NzUsIDAuMDI2MjUsIDAuMDIsIDAuMDIsIDAuMDEsIDAuMDA3NSIsIFwKLSAgICAgICAgICAiMC4wNTUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMjUsIDAuMDIxMjUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4wNjEyNSwgMC4wNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyNzUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMDY3NSwgMC4wNTYyNSwgMC4wNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAyNzUsIDAuMDI1IiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDYyNSwgMC4wNSwgMC4wNDM3NSwgMC4wNDM3NSwgMC4wMzM3NSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4wNzEyNSwgMC4wNjYyNSwgMC4wNiwgMC4wNTM3NSwgMC4wNDc1LCAwLjAzNzUsIDAuMDM1IiwgXAotICAgICAgICAgICIwLjA4LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDUsIDAuMDQ2MjUsIDAuMDM3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzNzUsIDAuMDMyNSwgMC4wMjYyNSwgMC4wMjYyNSwgMC4wMiwgMC4wMTYyNSwgMC4wMTM3NSIsIFwKLSAgICAgICAgICAiMC4wNDI1LCAwLjAzNzUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMzEyNSwgMC4wMjc1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiMC4wNTUsIDAuMDUsIDAuMDQzNzUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzM3NSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4wNjEyNSwgMC4wNTYyNSwgMC4wNSwgMC4wNSwgMC4wNDM3NSwgMC4wNCwgMC4wMzc1IiwgXAotICAgICAgICAgICIwLjA2MTI1LCAwLjA1NjI1LCAwLjA1NjI1LCAwLjA1LCAwLjA1LCAwLjA0NjI1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjA3MTI1LCAwLjA2NjI1LCAwLjA2LCAwLjA2LCAwLjA1Mzc1LCAwLjA1LCAwLjA0NzUiLCBcCi0gICAgICAgICAgIjAuMDczNzUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNjI1LCAwLjA2MjUsIDAuMDU4NzUsIDAuMDU2MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIkQiOwotICAgICAgc2RmX2NvbmQgOiAiRCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNSwgMC4wMzg3NSwgMC4wMzg3NSwgMC4wMzI1LCAwLjAzMjUsIDAuMDI4NzUsIDAuMDI2MjUiLCBcCi0gICAgICAgICAgIjAuMDU1LCAwLjA1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDM3NSwgMC4wMzM3NSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4wNjc1LCAwLjA1NjI1LCAwLjA1NjI1LCAwLjA1LCAwLjA1LCAwLjA0NjI1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjA3Mzc1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDU2MjUsIDAuMDUyNSwgMC4wNSIsIFwKLSAgICAgICAgICAiMC4wODYyNSwgMC4wNzUsIDAuMDY4NzUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNTg3NSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiMC4wOTYyNSwgMC4wODUsIDAuMDc4NzUsIDAuMDc4NzUsIDAuMDcyNSwgMC4wNjg3NSwgMC4wNjYyNSIsIFwKLSAgICAgICAgICAiMC4xMDUsIDAuMDkzNzUsIDAuMDg3NSwgMC4wODc1LCAwLjA4MTI1LCAwLjA3NzUsIDAuMDc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE4NzUsIDAuMDA3NSwgMC4wMDEyNSwgLTAuMDA1LCAtMC4wMTEyNSwgLTAuMDE1LCAtMC4wMTc1IiwgXAotICAgICAgICAgICIwLjAyMzc1LCAwLjAxODc1LCAwLjAwNjI1LCAwLCAwLCAtMC4wMSwgLTAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4wMywgMC4wMjUsIDAuMDE4NzUsIDAuMDEyNSwgMC4wMDYyNSwgMC4wMDI1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiMC4wNDI1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMTg3NSwgMC4wMTI1LCAwLjAwODc1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICIwLjA0ODc1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDI1LCAwLjAxODc1LCAwLjAxNSwgMC4wMTI1IiwgXAotICAgICAgICAgICIwLjA1MjUsIDAuMDQ3NSwgMC4wNDEyNSwgMC4wMzUsIDAuMDI4NzUsIDAuMDI1LCAwLjAxNjI1IiwgXAotICAgICAgICAgICIwLjA2MTI1LCAwLjA1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDM3NSwgMC4wMjc1LCAwLjAyNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjY2MDgzNTsKLSAgICBmdW5jdGlvbiA6ICJOMzAiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5vbl91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcmlzaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3NzI0OCwgMC4xNTU1MzksIDAuMjE4MDE3LCAwLjI5NjEwOCwgMC4zNzQxOTMsIDAuNDUyMzA2LCAwLjUzMDM1OCIsIFwKLSAgICAgICAgICAiMC4wODUzNSwgMC4xNjM2NDQsIDAuMjI2MTI4LCAwLjMwNDIyNSwgMC4zODIyMTQsIDAuNDYwNDAzLCAwLjUzODYwMiIsIFwKLSAgICAgICAgICAiMC4wOTQwNSwgMC4xNzIzNCwgMC4yMzQ4NTQsIDAuMzEyODMzLCAwLjM5MDk0LCAwLjQ2OTE5NiwgMC41NDcyMjkiLCBcCi0gICAgICAgICAgIjAuMTAwNjEyLCAwLjE3ODkwMSwgMC4yNDE0MjEsIDAuMzE5NDY3LCAwLjM5NzU2OCwgMC40NzU2NjYsIDAuNTUzNjk0IiwgXAotICAgICAgICAgICIwLjEwNTg5OSwgMC4xODQyMDQsIDAuMjQ2Njg0LCAwLjMyNDc4OCwgMC40MDI5MSwgMC40ODA5NDIsIDAuNTU5MDYxIiwgXAotICAgICAgICAgICIwLjExMzAyMiwgMC4xOTEzMjUsIDAuMjUzODQ3LCAwLjMzMTk1NCwgMC40MDk5NjIsIDAuNDg4MDk1LCAwLjU2NjE1NiIsIFwKLSAgICAgICAgICAiMC4xMTgyMjUsIDAuMTk2NTgzLCAwLjI1OTAxOCwgMC4zMzcxODYsIDAuNDE1MjU0LCAwLjQ5MzMzNSwgMC41NzE0MTkiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQwMTY4LCAwLjIwNDY3LCAwLjMzNzY0MSwgMC41MDQ3ODQsIDAuNjcwOTA2LCAwLjgzNjg2OSwgMS4wMDQ5OSIsIFwKLSAgICAgICAgICAiMC4wNDAxNjEsIDAuMjA0Njg3LCAwLjMzNzYxLCAwLjUwNDc1NSwgMC42NzA2OTQsIDAuODM3MzUsIDEuMDAzNjUiLCBcCi0gICAgICAgICAgIjAuMDQwMTM1LCAwLjIwNDUzLCAwLjMzNzU0NSwgMC41MDQxODYsIDAuNjcxMjU0LCAwLjgzNzAwMywgMS4wMDMyNiIsIFwKLSAgICAgICAgICAiMC4wNDAxNzQsIDAuMjA0Njk0LCAwLjMzNzUxLCAwLjUwNDIyLCAwLjY3MDIzOSwgMC44MzY5ODgsIDEuMDA1MiIsIFwKLSAgICAgICAgICAiMC4wNDAxNTksIDAuMjA0Njg5LCAwLjMzNzYzNSwgMC41MDQ2NzIsIDAuNjcxMzgyLCAwLjgzNzU4NSwgMS4wMDM3IiwgXAotICAgICAgICAgICIwLjA0MDE0LCAwLjIwNDc2OCwgMC4zMzc0NTgsIDAuNTA0MDUyLCAwLjY3MTM5NSwgMC44MzY4NzYsIDEuMDAzMzUiLCBcCi0gICAgICAgICAgIjAuMDQwMTU1LCAwLjIwNDQzMiwgMC4zMzc1NDMsIDAuNTAzOTM1LCAwLjY3MTM0NSwgMC44Mzc1NTIsIDEuMDA0ODUiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg4MDgzLCAwLjE2NDIxNywgMC4yMjQ4ODksIDAuMzAwNzAzLCAwLjM3NjUyLCAwLjQ1MjM2NSwgMC41MjgxNzMiLCBcCi0gICAgICAgICAgIjAuMDk2MjMsIDAuMTcyMzYsIDAuMjMzMDQ5LCAwLjMwODg1MiwgMC4zODQ2ODQsIDAuNDYwNTA5LCAwLjUzNjM0IiwgXAotICAgICAgICAgICIwLjEwNTA0MSwgMC4xODExNjgsIDAuMjQxODUyLCAwLjMxNzY3NiwgMC4zOTM0ODksIDAuNDY5MzYsIDAuNTQ1MTkzIiwgXAotICAgICAgICAgICIwLjExMTY1NSwgMC4xODc3ODIsIDAuMjQ4NDY5LCAwLjMyNDI3NCwgMC40MDAxMDgsIDAuNDc1OTI3LCAwLjU1MTczNyIsIFwKLSAgICAgICAgICAiMC4xMTcwMTgsIDAuMTkzMTM1LCAwLjI1MzgyMSwgMC4zMjk2MjgsIDAuNDA1NDYsIDAuNDgxMjc3LCAwLjU1NzA5NiIsIFwKLSAgICAgICAgICAiMC4xMjQzMzMsIDAuMjAwNDgsIDAuMjYxMTA4LCAwLjMzNjk1MiwgMC40MTI3ODQsIDAuNDg4NTczLCAwLjU2NDQyIiwgXAotICAgICAgICAgICIwLjEyOTc3OSwgMC4yMDU5MDIsIDAuMjY2Mzk0LCAwLjM0MjM5OCwgMC40MTgwNDksIDAuNDkzODU4LCAwLjU2OTY3NiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzgxMjUsIDAuMTkzNDY3LCAwLjMxOTM0MiwgMC40Nzc0MjEsIDAuNjM1MTcxLCAwLjc5MTcxMiwgMC45NDk2NTUiLCBcCi0gICAgICAgICAgIjAuMDM4MTI3LCAwLjE5MzY4MywgMC4zMTkxMTcsIDAuNDc2ODcxLCAwLjYzNDAzNSwgMC43OTE2NjgsIDAuOTUwODIxIiwgXAotICAgICAgICAgICIwLjAzODEyNywgMC4xOTM2NzUsIDAuMzE5NzczLCAwLjQ3NzUsIDAuNjM0NTQ1LCAwLjc5MTE1NiwgMC45NDg5NDQiLCBcCi0gICAgICAgICAgIjAuMDM4MTI2LCAwLjE5MzY4LCAwLjMxOTc4NSwgMC40NzY5MDQsIDAuNjM0MjAyLCAwLjc5MTY3NywgMC45NDk1OTgiLCBcCi0gICAgICAgICAgIjAuMDM4MTA0LCAwLjE5MzY3OSwgMC4zMTk3ODIsIDAuNDc2OTExLCAwLjYzNDE3NiwgMC43OTE2MjIsIDAuOTQ5NzI5IiwgXAotICAgICAgICAgICIwLjAzODMxOCwgMC4xOTM3NDgsIDAuMzE5NzQsIDAuNDc3NTU0LCAwLjYzNTI0OCwgMC43OTE2MjMsIDAuOTQ5MDU3IiwgXAotICAgICAgICAgICIwLjAzODEyMiwgMC4xOTM2NDIsIDAuMzE5NjMxLCAwLjQ3NzQ0NywgMC42MzUwNDEsIDAuNzkyOTA3LCAwLjk0OTM0MiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTA2NDgsIDAuMDEwNjgzLCAwLjAxMDY4NywgMC4wMTA2ODksIDAuMDEwNjkxLCAwLjAxMDY5MiwgMC4wMTA2OTIiLCBcCi0gICAgICAgICAgIjAuMDEwNjMxLCAwLjAxMDY2NywgMC4wMTA2NzEsIDAuMDEwNjc0LCAwLjAxMDY3NSwgMC4wMTA2NzUsIDAuMDEwNjc3IiwgXAotICAgICAgICAgICIwLjAxMDcwMiwgMC4wMTA3MzksIDAuMDEwNzQzLCAwLjAxMDc0NiwgMC4wMTA3NDYsIDAuMDEwNzQ4LCAwLjAxMDc0OSIsIFwKLSAgICAgICAgICAiMC4wMTA4MjgsIDAuMDEwODYyLCAwLjAxMDg2NiwgMC4wMTA4NjksIDAuMDEwODcxLCAwLjAxMDg3MiwgMC4wMTA4NzIiLCBcCi0gICAgICAgICAgIjAuMDEwOTY1LCAwLjAxMTAwNSwgMC4wMTEwMSwgMC4wMTEwMSwgMC4wMTEwMTQsIDAuMDExMDE0LCAwLjAxMTAxNiIsIFwKLSAgICAgICAgICAiMC4wMTEyMDEsIDAuMDExMjM1LCAwLjAxMTI0LCAwLjAxMTIyOCwgMC4wMTEyNDcsIDAuMDExMjMxLCAwLjAxMTI0NiIsIFwKLSAgICAgICAgICAiMC4wMTEzODgsIDAuMDExMzkxLCAwLjAxMTQyOCwgMC4wMTEzOTUsIDAuMDExNDAzLCAwLjAxMTM5OCwgMC4wMTEzOTkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTEwNzIsIDAuMDExMTIyLCAwLjAxMTEyNiwgMC4wMTExMjgsIDAuMDExMTI5LCAwLjAxMTEzLCAwLjAxMTEzIiwgXAotICAgICAgICAgICIwLjAxMTA3OCwgMC4wMTExMjksIDAuMDExMTMzLCAwLjAxMTEzNSwgMC4wMTExMzYsIDAuMDExMTM3LCAwLjAxMTEzNyIsIFwKLSAgICAgICAgICAiMC4wMTExODMsIDAuMDExMjM0LCAwLjAxMTIzOCwgMC4wMTEyNCwgMC4wMTEyNDEsIDAuMDExMjQxLCAwLjAxMTI0MSIsIFwKLSAgICAgICAgICAiMC4wMTEzMjIsIDAuMDExMzcxLCAwLjAxMTM3NSwgMC4wMTEzNzYsIDAuMDExMzc3LCAwLjAxMTM3NywgMC4wMTEzNzgiLCBcCi0gICAgICAgICAgIjAuMDExNDc4LCAwLjAxMTUzNCwgMC4wMTE1MzgsIDAuMDExNTQsIDAuMDExNTQsIDAuMDExNTQxLCAwLjAxMTU0MSIsIFwKLSAgICAgICAgICAiMC4wMTE3MiwgMC4wMTE3NjUsIDAuMDExNzg1LCAwLjAxMTc4NiwgMC4wMTE3NywgMC4wMTE3ODcsIDAuMDExNzciLCBcCi0gICAgICAgICAgIjAuMDExOTEzLCAwLjAxMTk2MywgMC4wMTE5OTMsIDAuMDExOTY4LCAwLjAxMTk5NSwgMC4wMTE5OTUsIDAuMDExOTk1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IEVERkZUUlgxICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChFREZGVFJYMSkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAxLjMxNDM5OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIGZmIChOMzAsUUJJTlQpIHsKLSAgICBuZXh0X3N0YXRlIDogIigoKCEoKCFEKSBFKSkgKCEoKCFFKSAoIU4zMCkpKSkgUk4pIjsKLSAgICBjbG9ja2VkX29uIDogIkNLIjsKLSAgfQotICBwaW4oQ0spICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY0NzI1MzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2NDcyNTM7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjQ3MDI3OwotICAgIGNsb2NrIDogdHJ1ZTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDMxMjksIDAuMDAzMTE5LCAwLjAwMzE5MywgMC4wMDMzMDIsIDAuMDAzNDE4LCAwLjAwMzY1NywgMC4wMDM4NSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwODQyNCwgMC4wMDg0MTQsIDAuMDA4NDg4LCAwLjAwODU5NywgMC4wMDg3MzQsIDAuMDA4ODQ5LCAwLjAwOTAzMSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQmIUUmIVJOIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9FX0VRXzBfQU5fUk5fRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjExOTUxMywgMC4xMjc3OSwgMC4xMzcyMjcsIDAuMTQ0OTI1LCAwLjE1MTExOCwgMC4xNTkxMTUsIDAuMTY1MTkxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wNzA0MjMsIDAuMDc4NTI4LCAwLjA4Nzg3OSwgMC4wOTQ5NzQsIDAuMTAwNjgyLCAwLjEwODIwMSwgMC4xMTM1NTIiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEQpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYxNDQzMzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MTQ0MzM7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjE0NDE0OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNjY0LCAwLjAwNjY0LCAwLjAwNjcyMiwgMC4wMDY4MjksIDAuMDA2OTYzLCAwLjAwNzE5OCwgMC4wMDczOTIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDU5OCwgMC4wMDU5OTMsIDAuMDA2MDcxLCAwLjAwNjE4MSwgMC4wMDYzMjMsIDAuMDA2NTQ3LCAwLjAwNjc0MiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJFJlJOIjsKLSAgICAgIHNkZl9jb25kIDogIkVfRVFfMV9BTl9STl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjA1LCAtMC4wNDUsIC0wLjAzODc1LCAtMC4wMzg3NSwgLTAuMDMyNSwgLTAuMDI4NzUsIC0wLjAyNjI1IiwgXAotICAgICAgICAgICItMC4wNjEyNSwgLTAuMDUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDQzNzUsIC0wLjA0LCAtMC4wMzc1IiwgXAotICAgICAgICAgICItMC4wNjc1LCAtMC4wNTYyNSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNSwgLTAuMDQ2MjUsIC0wLjA0Mzc1IiwgXAotICAgICAgICAgICItMC4wNjc1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNDYyNSwgLTAuMDQzNzUiLCBcCi0gICAgICAgICAgIi0wLjA3Mzc1LCAtMC4wNjg3NSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA1NjI1LCAtMC4wNTI1LCAtMC4wNSIsIFwKLSAgICAgICAgICAiLTAuMDc3NSwgLTAuMDcyNSwgLTAuMDY2MjUsIC0wLjA2NjI1LCAtMC4wNiwgLTAuMDU2MjUsIC0wLjA1Mzc1IiwgXAotICAgICAgICAgICItMC4wOCwgLTAuMDc1LCAtMC4wNjg3NSwgLTAuMDY4NzUsIC0wLjA2MjUsIC0wLjA1ODc1LCAtMC4wNTYyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAyNSwgLTAuMDEzNzUsIC0wLjAwNzUsIC0wLjAwMTI1LCAwLjAwNSwgMC4wMDg3NSwgMC4wMTc1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDI1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMCwgMC4wMDM3NSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIC0wLjAwMjUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDg3NSwgMCIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDM3NSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDE4NzUsIC0wLjAwODc1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDUyNSwgLTAuMDQxMjUsIC0wLjAzNSwgLTAuMDI4NzUsIC0wLjAyMjUsIC0wLjAxMjUsIC0wLjAxIiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMTUsIC0wLjAxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIkUmUk4iOwotICAgICAgc2RmX2NvbmQgOiAiRV9FUV8xX0FOX1JOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDgxMjUsIDAuMDcsIDAuMDYzNzUsIDAuMDYzNzUsIDAuMDU3NSwgMC4wNTM3NSwgMC4wNTEyNSIsIFwKLSAgICAgICAgICAiMC4wODYyNSwgMC4wODEyNSwgMC4wNzUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNTg3NSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiMC4wOTI1LCAwLjA4NzUsIDAuMDgxMjUsIDAuMDc1LCAwLjA2ODc1LCAwLjA2NSwgMC4wNjI1IiwgXAotICAgICAgICAgICIwLjA5ODc1LCAwLjA4NzUsIDAuMDgxMjUsIDAuMDgxMjUsIDAuMDc1LCAwLjA3MTI1LCAwLjA2ODc1IiwgXAotICAgICAgICAgICIwLjA5ODc1LCAwLjA5Mzc1LCAwLjA4NzUsIDAuMDgxMjUsIDAuMDgxMjUsIDAuMDc3NSwgMC4wNjg3NSIsIFwKLSAgICAgICAgICAiMC4xMDI1LCAwLjA5NzUsIDAuMDkxMjUsIDAuMDg1LCAwLjA4NSwgMC4wODEyNSwgMC4wNzg3NSIsIFwKLSAgICAgICAgICAiMC4xMTEyNSwgMC4xLCAwLjA5Mzc1LCAwLjA4NzUsIDAuMDg3NSwgMC4wODM3NSwgMC4wODEyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1LCAwLjAzODc1LCAwLjAzMjUsIDAuMDIsIDAuMDEzNzUsIDAuMDEsIDAuMDAxMjUiLCBcCi0gICAgICAgICAgIjAuMDU1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDI1LCAwLjAxNSwgMC4wMTI1IiwgXAotICAgICAgICAgICIwLjA2MTI1LCAwLjA1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDIxMjUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4wNjc1LCAwLjA1NjI1LCAwLjA1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDI3NSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4wNjc1LCAwLjA2MjUsIDAuMDUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMjc1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiMC4wNzEyNSwgMC4wNjYyNSwgMC4wNTM3NSwgMC4wNDc1LCAwLjA0MTI1LCAwLjAzMTI1LCAwLjAyODc1IiwgXAotICAgICAgICAgICIwLjA4LCAwLjA2ODc1LCAwLjA1NjI1LCAwLjA1LCAwLjA0Mzc1LCAwLjAzMzc1LCAwLjAzMTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihFKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDEyNzg2NDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDEyNzg2NDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDEyNzgzNzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDcyNjMsIDAuMDA3Mjc2LCAwLjAwNzM1MiwgMC4wMDc0NjIsIDAuMDA3NTk5LCAwLjAwNzgwMywgMC4wMDc5OTMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDg0MDYsIDAuMDA4NDIsIDAuMDA4NTI2LCAwLjAwODcwMywgMC4wMDg5MDQsIDAuMDA5Mjc3LCAwLjAwOTYwMiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJSTiI7Ci0gICAgICBzZGZfY29uZCA6ICJSTiA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMjUsIC0wLjAyLCAtMC4wMDc1LCAtMC4wMDEyNSwgMC4wMDUsIDAuMDA4NzUsIDAuMDE3NSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAyNSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAsIDAuMDAzNzUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIC0wLjAwMjUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzNzUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwODc1LCAwIiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDQzNzUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMDg3NSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA1MjUsIC0wLjA0NzUsIC0wLjAzNSwgLTAuMDI4NzUsIC0wLjAyMjUsIC0wLjAxODc1LCAtMC4wMSIsIFwKLSAgICAgICAgICAiLTAuMDYxMjUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAyMTI1LCAtMC4wMTg3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAzMTI1LCAtMC4wMjYyNSwgLTAuMDEzNzUsIC0wLjAwNzUsIC0wLjAwMTI1LCAwLjAwMjUsIDAuMDExMjUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDAyNSwgMCIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDM3NSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDE4NzUsIC0wLjAwODc1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjA0Mzc1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDE1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDE1LCAtMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wNTg3NSwgLTAuMDQ3NSwgLTAuMDQxMjUsIC0wLjAzNSwgLTAuMDI4NzUsIC0wLjAxODc1LCAtMC4wMTYyNSIsIFwKLSAgICAgICAgICAiLTAuMDYxMjUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAyNzUsIC0wLjAxODc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJSTiI7Ci0gICAgICBzZGZfY29uZCA6ICJSTiA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTM3NSwgMC4wODI1LCAwLjA3NjI1LCAwLjA3NjI1LCAwLjA3LCAwLjA2NjI1LCAwLjA2Mzc1IiwgXAotICAgICAgICAgICIwLjA5ODc1LCAwLjA5Mzc1LCAwLjA4NzUsIDAuMDgxMjUsIDAuMDc1LCAwLjA3MTI1LCAwLjA2ODc1IiwgXAotICAgICAgICAgICIwLjEwNSwgMC4xLCAwLjA5Mzc1LCAwLjA4NzUsIDAuMDgxMjUsIDAuMDc3NSwgMC4wNzUiLCBcCi0gICAgICAgICAgIjAuMTExMjUsIDAuMSwgMC4wOTM3NSwgMC4wOTM3NSwgMC4wODc1LCAwLjA4Mzc1LCAwLjA4MTI1IiwgXAotICAgICAgICAgICIwLjExMTI1LCAwLjEwNjI1LCAwLjEsIDAuMDkzNzUsIDAuMDkzNzUsIDAuMDksIDAuMDg3NSIsIFwKLSAgICAgICAgICAiMC4xMjEyNSwgMC4xMSwgMC4xMDM3NSwgMC4wOTc1LCAwLjA5NzUsIDAuMDkzNzUsIDAuMDkxMjUiLCBcCi0gICAgICAgICAgIjAuMTIzNzUsIDAuMTEyNSwgMC4xMDYyNSwgMC4xMDYyNSwgMC4xLCAwLjA5NjI1LCAwLjA5Mzc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU2MjUsIDAuMDUxMjUsIDAuMDQ1LCAwLjAzODc1LCAwLjAzODc1LCAwLjAzNSwgMC4wMzI1IiwgXAotICAgICAgICAgICIwLjA2MTI1LCAwLjA1NjI1LCAwLjA1LCAwLjA1LCAwLjA0Mzc1LCAwLjA0LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIjAuMDczNzUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNTYyNSwgMC4wNTI1LCAwLjA1IiwgXAotICAgICAgICAgICIwLjA4LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1ODc1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICIwLjA4NjI1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNzUsIDAuMDY4NzUsIDAuMDY1LCAwLjA2MjUiLCBcCi0gICAgICAgICAgIjAuMDk2MjUsIDAuMDkxMjUsIDAuMDg1LCAwLjA4NSwgMC4wNzg3NSwgMC4wNzUsIDAuMDcyNSIsIFwKLSAgICAgICAgICAiMC4xMDUsIDAuMSwgMC4wOTM3NSwgMC4wOTM3NSwgMC4wODc1LCAwLjA4Mzc1LCAwLjA4MTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihRKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMzMwMDEyOwotICAgIGZ1bmN0aW9uIDogIk4zMCI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3NlbnNlIDogbm9uX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiByaXNpbmdfZWRnZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTAzMjMsIDAuMTIxOTEsIDAuMjI3NDE1LCAwLjMyMDYyNiwgMC40NDQ5NTEsIDAuNjkzNjc5LCAwLjg1MDA5NSIsIFwKLSAgICAgICAgICAiMC4xMTE0NDEsIDAuMTMwMTMxLCAwLjIzNTYzMiwgMC4zMjg4OTUsIDAuNDUzMTU1LCAwLjcwMjAxNywgMC44NTgzMDciLCBcCi0gICAgICAgICAgIjAuMTIwODY2LCAwLjEzOTU1OSwgMC4yNDUwNjEsIDAuMzM4MjU2LCAwLjQ2MjU4MywgMC43MTE4NTQsIDAuODY2OTg2IiwgXAotICAgICAgICAgICIwLjEyODUxNSwgMC4xNDcxOTQsIDAuMjUyNzE4LCAwLjM0NTk3OCwgMC40NzAyNDYsIDAuNzE5NTgsIDAuODc1Mzg2IiwgXAotICAgICAgICAgICIwLjEzNDU0MSwgMC4xNTMyNzcsIDAuMjU4NzQxLCAwLjM1MTk4OSwgMC40NzYyODMsIDAuNzI1NTY4LCAwLjg4MDMwOSIsIFwKLSAgICAgICAgICAiMC4xNDI1OSwgMC4xNjEyNzgsIDAuMjY2ODc3LCAwLjM2MDAzNCwgMC40ODQzMzUsIDAuNzMzNjI3LCAwLjg4OTQwMSIsIFwKLSAgICAgICAgICAiMC4xNDg3MDEsIDAuMTY3NDUyLCAwLjI3MzE0OSwgMC4zNjYyMjUsIDAuNDkwMzg3LCAwLjczOTI1NywgMC44OTU1NTgiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDczMDQ2LCAwLjExMTcwMywgMC4zMzQwMDUsIDAuNTMyNDc3LCAwLjc5NjM5MSwgMS4zMjE3NiwgMS42NTI4MiIsIFwKLSAgICAgICAgICAiMC4wNzMwNTIsIDAuMTExNywgMC4zMzQwMDcsIDAuNTMxMzQyLCAwLjc5NjM4NywgMS4zMjA2OSwgMS42NTI4MiIsIFwKLSAgICAgICAgICAiMC4wNzMwNSwgMC4xMTE3LCAwLjMzNDAwOCwgMC41MzI0NjQsIDAuNzk2Mzg2LCAxLjMyNDI0LCAxLjY1MDM1IiwgXAotICAgICAgICAgICIwLjA3MzA1MywgMC4xMTE2ODIsIDAuMzM0MTIsIDAuNTMyNDc2LCAwLjc5NjM4LCAxLjMyNDA3LCAxLjY1MjgxIiwgXAotICAgICAgICAgICIwLjA3MzExNywgMC4xMTE0OTQsIDAuMzM0MDk5LCAwLjUzMjQzOSwgMC43OTYzODYsIDEuMzI0MjgsIDEuNjUwNDMiLCBcCi0gICAgICAgICAgIjAuMDczMTk4LCAwLjExMTY4NiwgMC4zMzQ1MjUsIDAuNTMyMzUzLCAwLjc5NjI3OCwgMS4zMjQyMiwgMS42NTQxMyIsIFwKLSAgICAgICAgICAiMC4wNzM0NzgsIDAuMTExNTg4LCAwLjMzNDA3NSwgMC41MzE0NDEsIDAuNzk0OTk4LCAxLjMyMjQ3LCAxLjY1NDE2Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExMTIxMiwgMC4xMjk0NTQsIDAuMjMyMjg5LCAwLjMyMjk2MywgMC40NDM2ODgsIDAuNjg1MTY5LCAwLjgzNjI1NCIsIFwKLSAgICAgICAgICAiMC4xMTk0NjUsIDAuMTM3NzA2LCAwLjI0MDQxNywgMC4zMzEwMTcsIDAuNDUxOTIsIDAuNjkzNDY0LCAwLjg0NDQ0NyIsIFwKLSAgICAgICAgICAiMC4xMjg5MTcsIDAuMTQ3MTY0LCAwLjI0OTgxOCwgMC4zNDA3NjYsIDAuNDYxMzg5LCAwLjcwMjg4NSwgMC44NTM4OTkiLCBcCi0gICAgICAgICAgIjAuMTM2NTcxLCAwLjE1NDgyNSwgMC4yNTc2MDMsIDAuMzQ4NDEyLCAwLjQ2OTA0NiwgMC43MTA1MjIsIDAuODYxNjM2IiwgXAotICAgICAgICAgICIwLjE0Mjc1MiwgMC4xNjA5NzEsIDAuMjYzNzI0LCAwLjM1NDU2MiwgMC40NzQ5OTksIDAuNzE2NzQ0LCAwLjg2NzQ4OSIsIFwKLSAgICAgICAgICAiMC4xNTA4MTYsIDAuMTY5MDIzLCAwLjI3MTc0NywgMC4zNjI1MjcsIDAuNDgzMjMsIDAuNzI0MzA1LCAwLjg3NTc0MSIsIFwKLSAgICAgICAgICAiMC4xNTY4NjgsIDAuMTc1MTYyLCAwLjI3ODIyMSwgMC4zNjgzNDksIDAuNDg5NDEyLCAwLjczMDg2NSwgMC44ODE0NTUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY5ODc5LCAwLjEwNjA3MSwgMC4zMTU5MTQsIDAuNTAyMDEsIDAuNzUwOTA0LCAxLjI0ODg1LCAxLjU2MDA3IiwgXAotICAgICAgICAgICIwLjA2OTgzLCAwLjEwNjEyMiwgMC4zMTU5MTYsIDAuNTAyMDQ4LCAwLjc1MDkyLCAxLjI0ODgyLCAxLjU2MDA5IiwgXAotICAgICAgICAgICIwLjA2OTg3NiwgMC4xMDYwODEsIDAuMzE1ODE0LCAwLjUwMjE4OCwgMC43NTA4NzUsIDEuMjQ4OTIsIDEuNTU5OTQiLCBcCi0gICAgICAgICAgIjAuMDY5OTE4LCAwLjEwNjA5OSwgMC4zMTU4MzEsIDAuNTAyMDM4LCAwLjc1MDksIDEuMjQ4NzksIDEuNTYwMDYiLCBcCi0gICAgICAgICAgIjAuMDY5ODkzLCAwLjEwNjEyMSwgMC4zMTU4MTcsIDAuNTAyMDE2LCAwLjc1MTIzNywgMS4yNDg4NSwgMS41NTk5OCIsIFwKLSAgICAgICAgICAiMC4wNzAwMTQsIDAuMTA2MDc0LCAwLjMxNTc2NSwgMC41MDIwMTMsIDAuNzUwODM5LCAxLjI0ODQzLCAxLjU2MDAyIiwgXAotICAgICAgICAgICIwLjA2OTg1NywgMC4xMDYwNjQsIDAuMzE1ODI2LCAwLjUwMjA1NywgMC43NTA5MDUsIDEuMjQ4NDMsIDEuNTYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0OTExLCAwLjAwNDkwNCwgMC4wMDQ4NzEsIDAuMDA0ODYsIDAuMDA0ODUyLCAwLjAwNDg0NSwgMC4wMDQ4NDMiLCBcCi0gICAgICAgICAgIjAuMDA0OTA0LCAwLjAwNDg5NywgMC4wMDQ4NjQsIDAuMDA0ODUyLCAwLjAwNDg0NSwgMC4wMDQ4MzcsIDAuMDA0ODM1IiwgXAotICAgICAgICAgICIwLjAwNDk1LCAwLjAwNDk0NCwgMC4wMDQ5MTIsIDAuMDA0ODk5LCAwLjAwNDg5MSwgMC4wMDQ4ODMsIDAuMDA0ODgxIiwgXAotICAgICAgICAgICIwLjAwNTAwMywgMC4wMDQ5OTgsIDAuMDA0OTY2LCAwLjAwNDk1NCwgMC4wMDQ5NDUsIDAuMDA0OTM3LCAwLjAwNDkzNCIsIFwKLSAgICAgICAgICAiMC4wMDUwNjYsIDAuMDA1MDYxLCAwLjAwNTAzLCAwLjAwNTAxNiwgMC4wMDUwMDgsIDAuMDA0OTk5LCAwLjAwNDk5NiIsIFwKLSAgICAgICAgICAiMC4wMDUxNjEsIDAuMDA1MTU2LCAwLjAwNTEyNywgMC4wMDUxMTMsIDAuMDA1MTAzLCAwLjAwNTA5MywgMC4wMDUwOTEiLCBcCi0gICAgICAgICAgIjAuMDA1MjYyLCAwLjAwNTI3MywgMC4wMDUyMjcsIDAuMDA1MjMsIDAuMDA1MjAzLCAwLjAwNTIxLCAwLjAwNTIwNyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNTg3NywgMC4wMDU4ODUsIDAuMDA1ODk4LCAwLjAwNTksIDAuMDA1OTAyLCAwLjAwNTkwNCwgMC4wMDU5MDQiLCBcCi0gICAgICAgICAgIjAuMDA1ODczLCAwLjAwNTg4MiwgMC4wMDU4OTQsIDAuMDA1ODk3LCAwLjAwNTg5OSwgMC4wMDU5LCAwLjAwNTkiLCBcCi0gICAgICAgICAgIjAuMDA1OTI2LCAwLjAwNTkzNCwgMC4wMDU5NDYsIDAuMDA1OTQ5LCAwLjAwNTk1LCAwLjAwNTk1MiwgMC4wMDU5NTIiLCBcCi0gICAgICAgICAgIjAuMDA1OTc5LCAwLjAwNTk4NywgMC4wMDU5OTksIDAuMDA2MDAxLCAwLjAwNjAwMiwgMC4wMDYwMDMsIDAuMDA2MDAzIiwgXAotICAgICAgICAgICIwLjAwNjA1MiwgMC4wMDYwNiwgMC4wMDYwNzEsIDAuMDA2MDczLCAwLjAwNjA3NSwgMC4wMDYwNzYsIDAuMDA2MDc2IiwgXAotICAgICAgICAgICIwLjAwNjE1OCwgMC4wMDYxNjQsIDAuMDA2MTc1LCAwLjAwNjE3NiwgMC4wMDYxNzgsIDAuMDA2MTc4LCAwLjAwNjE3OCIsIFwKLSAgICAgICAgICAiMC4wMDYyNzIsIDAuMDA2MjcxLCAwLjAwNjI3OCwgMC4wMDYyODQsIDAuMDA2MjgxLCAwLjAwNjI5MSwgMC4wMDYyOTEiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFFOKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMzQxNjA4OwotICAgIGZ1bmN0aW9uIDogIlFCSU5UIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBub25fdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJpc2luZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMjAwOTIsIDAuMTM4NjY0LCAwLjI0NDExNCwgMC4zMzcxODIsIDAuNDYxMjY1LCAwLjcwOTQwNSwgMC44NjQ1NzIiLCBcCi0gICAgICAgICAgIjAuMTI4MzUsIDAuMTQ2OTE5LCAwLjI1MjMzNywgMC4zNDUzNzksIDAuNDY5NTE3LCAwLjcxNzY4NiwgMC44NzI3OTciLCBcCi0gICAgICAgICAgIjAuMTM3NzY1LCAwLjE1NjM3MywgMC4yNjE3ODksIDAuMzU0OTM4LCAwLjQ3ODk3OCwgMC43MjcxMjUsIDAuODgyMjUyIiwgXAotICAgICAgICAgICIwLjE0NTQ0LCAwLjE2NDA1NSwgMC4yNjk1MTgsIDAuMzYyNjU5LCAwLjQ4NjY4NywgMC43MzQ4MjUsIDAuODg5OTk4IiwgXAotICAgICAgICAgICIwLjE1MTYwNiwgMC4xNzAyMTQsIDAuMjc1Njc4LCAwLjM2ODc4NiwgMC40OTI4MDQsIDAuNzQwOTg1LCAwLjg5NTk5NCIsIFwKLSAgICAgICAgICAiMC4xNTk2OTQsIDAuMTc4MjUsIDAuMjgzNzAxLCAwLjM3Njc4NiwgMC41MDA4NDIsIDAuNzQ4OTYsIDAuOTA0MTE4IiwgXAotICAgICAgICAgICIwLjE2NTczNiwgMC4xODQ0MTIsIDAuMjg5OTI5LCAwLjM4Mjk1MywgMC41MDcwMjMsIDAuNzU1MTUzLCAwLjkxMDE5MyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzA1MjQsIDAuMTA5NTE0LCAwLjMzMTc1OSwgMC41MjcwMDMsIDAuNzg5MzAzLCAxLjMxMjI0LCAxLjYzOTA5IiwgXAotICAgICAgICAgICIwLjA3MDUxLCAwLjEwOTUyMiwgMC4zMzE3ODMsIDAuNTI3ODkyLCAwLjc4OTMwNiwgMS4zMTIyMywgMS42MzkxNCIsIFwKLSAgICAgICAgICAiMC4wNzA1MjQsIDAuMTA5NTE3LCAwLjMzMTc0MSwgMC41MjcyNTIsIDAuNzg5Mjk4LCAxLjMxMjE5LCAxLjYzOTA4IiwgXAotICAgICAgICAgICIwLjA3MDUxMiwgMC4xMDk1MTgsIDAuMzMxNjU3LCAwLjUyNjk2MiwgMC43ODkzMDcsIDEuMzEyMjIsIDEuNjM5MDkiLCBcCi0gICAgICAgICAgIjAuMDcwNTA5LCAwLjEwOTUxOCwgMC4zMzE1MDYsIDAuNTI3NTQ3LCAwLjc4OTI5OCwgMS4zMTIyNCwgMS42MzkxMSIsIFwKLSAgICAgICAgICAiMC4wNzA1MiwgMC4xMDk1MDgsIDAuMzMxNDk0LCAwLjUyNzg2MSwgMC43ODkyODcsIDEuMzEyMTEsIDEuNjM5MDgiLCBcCi0gICAgICAgICAgIjAuMDcwNTMsIDAuMTA5NDM0LCAwLjMzMTc2NCwgMC41MjcyMjcsIDAuNzg5MjU4LCAxLjMxMjEyLCAxLjYzOTA3Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExMjE5MiwgMC4xMzAyOTYsIDAuMjMyODMxLCAwLjMyMzMwMywgMC40NDM5MjcsIDAuNjg0OTg1LCAwLjgzNTk0NiIsIFwKLSAgICAgICAgICAiMC4xMjAzOTksIDAuMTM4NTAzLCAwLjI0MTA0LCAwLjMzMTU0MiwgMC40NTIxMjgsIDAuNjkzMzIxLCAwLjg0NDE1OCIsIFwKLSAgICAgICAgICAiMC4xMjk4MjIsIDAuMTQ3OTI2LCAwLjI1MDQ2MSwgMC4zNDA5MjcsIDAuNDYxNTUzLCAwLjcwMjc1OCwgMC44NTMzNTUiLCBcCi0gICAgICAgICAgIjAuMTM3NDUsIDAuMTU1NTUyLCAwLjI1ODEyNSwgMC4zNDg2MTYsIDAuNDY5MjA2LCAwLjcxMDQ0OSwgMC44NjEyNDgiLCBcCi0gICAgICAgICAgIjAuMTQzNDczLCAwLjE2MTU3MywgMC4yNjQxMTMsIDAuMzU0NTk4LCAwLjQ3NTIwNywgMC43MTY0NDIsIDAuODY2OTY4IiwgXAotICAgICAgICAgICIwLjE1MTU0LCAwLjE2OTYzNSwgMC4yNzIxNjUsIDAuMzYyNjQ4LCAwLjQ4MzI2NywgMC43MjQ1MjUsIDAuODc1MjkiLCBcCi0gICAgICAgICAgIjAuMTU3NjUxLCAwLjE3NTc3NSwgMC4yNzgzNTIsIDAuMzY4ODI4LCAwLjQ4OTM5NSwgMC43MzA2MDMsIDAuODgxNDU3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2NzEzMSwgMC4xMDQxNDMsIDAuMzE0ODI2LCAwLjUwMTY5MywgMC43NTAyNDEsIDEuMjQ1ODcsIDEuNTU4MTciLCBcCi0gICAgICAgICAgIjAuMDY3MTMyLCAwLjEwNDE0MywgMC4zMTQ4MzEsIDAuNTAwODI2LCAwLjc1MDIyNiwgMS4yNDQwNywgMS41NTgxOCIsIFwKLSAgICAgICAgICAiMC4wNjcxMzIsIDAuMTA0MTQzLCAwLjMxNDgzNCwgMC41MDE2NjgsIDAuNzUwMjMsIDEuMjQ3MzEsIDEuNTU2MDIiLCBcCi0gICAgICAgICAgIjAuMDY3MTI5LCAwLjEwNDEzOCwgMC4zMTQ5MjcsIDAuNTAxNzEzLCAwLjc1MDIyLCAxLjI0NzQzLCAxLjU1ODIiLCBcCi0gICAgICAgICAgIjAuMDY3MTMzLCAwLjEwNDAyLCAwLjMxNDkxNywgMC41MDE3MDUsIDAuNzUwMjQzLCAxLjI0NzQsIDEuNTUzNTMiLCBcCi0gICAgICAgICAgIjAuMDY3MTU5LCAwLjEwNDE0MywgMC4zMTUxOTcsIDAuNTAxNjAzLCAwLjc1MDExOSwgMS4yNDcyOSwgMS41NTc5MiIsIFwKLSAgICAgICAgICAiMC4wNjcxNDMsIDAuMTA0MDQ2LCAwLjMxNDc1MywgMC41MDA4NjUsIDAuNzQ5MjAyLCAxLjI0NjE0LCAxLjU1ODAyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNTg3NywgMC4wMDU4ODUsIDAuMDA1ODk4LCAwLjAwNTksIDAuMDA1OTAyLCAwLjAwNTkwNCwgMC4wMDU5MDQiLCBcCi0gICAgICAgICAgIjAuMDA1ODczLCAwLjAwNTg4MiwgMC4wMDU4OTQsIDAuMDA1ODk3LCAwLjAwNTg5OSwgMC4wMDU5LCAwLjAwNTkiLCBcCi0gICAgICAgICAgIjAuMDA1OTI2LCAwLjAwNTkzNCwgMC4wMDU5NDYsIDAuMDA1OTQ5LCAwLjAwNTk1LCAwLjAwNTk1MiwgMC4wMDU5NTIiLCBcCi0gICAgICAgICAgIjAuMDA1OTc5LCAwLjAwNTk4NywgMC4wMDU5OTksIDAuMDA2MDAxLCAwLjAwNjAwMiwgMC4wMDYwMDMsIDAuMDA2MDAzIiwgXAotICAgICAgICAgICIwLjAwNjA1MiwgMC4wMDYwNiwgMC4wMDYwNzEsIDAuMDA2MDczLCAwLjAwNjA3NSwgMC4wMDYwNzYsIDAuMDA2MDc2IiwgXAotICAgICAgICAgICIwLjAwNjE1OCwgMC4wMDYxNjQsIDAuMDA2MTc1LCAwLjAwNjE3NiwgMC4wMDYxNzgsIDAuMDA2MTc4LCAwLjAwNjE3OCIsIFwKLSAgICAgICAgICAiMC4wMDYyNzIsIDAuMDA2MjcxLCAwLjAwNjI3OCwgMC4wMDYyODQsIDAuMDA2MjgxLCAwLjAwNjI5MSwgMC4wMDYyOTEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQ5MTEsIDAuMDA0OTA0LCAwLjAwNDg3MSwgMC4wMDQ4NiwgMC4wMDQ4NTIsIDAuMDA0ODQ1LCAwLjAwNDg0MyIsIFwKLSAgICAgICAgICAiMC4wMDQ5MDQsIDAuMDA0ODk3LCAwLjAwNDg2NCwgMC4wMDQ4NTIsIDAuMDA0ODQ1LCAwLjAwNDgzNywgMC4wMDQ4MzUiLCBcCi0gICAgICAgICAgIjAuMDA0OTUsIDAuMDA0OTQ0LCAwLjAwNDkxMiwgMC4wMDQ4OTksIDAuMDA0ODkxLCAwLjAwNDg4MywgMC4wMDQ4ODEiLCBcCi0gICAgICAgICAgIjAuMDA1MDAzLCAwLjAwNDk5OCwgMC4wMDQ5NjYsIDAuMDA0OTU0LCAwLjAwNDk0NSwgMC4wMDQ5MzcsIDAuMDA0OTM0IiwgXAotICAgICAgICAgICIwLjAwNTA2NiwgMC4wMDUwNjEsIDAuMDA1MDMsIDAuMDA1MDE2LCAwLjAwNTAwOCwgMC4wMDQ5OTksIDAuMDA0OTk2IiwgXAotICAgICAgICAgICIwLjAwNTE2MSwgMC4wMDUxNTYsIDAuMDA1MTI3LCAwLjAwNTExMywgMC4wMDUxMDMsIDAuMDA1MDkzLCAwLjAwNTA5MSIsIFwKLSAgICAgICAgICAiMC4wMDUyNjIsIDAuMDA1MjczLCAwLjAwNTIyNywgMC4wMDUyMywgMC4wMDUyMDMsIDAuMDA1MjEsIDAuMDA1MjA3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihSTikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjM0NzM1OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYzNDczNTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2MzQ1NDk7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA4MTU3LCAwLjAwODE2MywgMC4wMDgyNDcsIDAuMDA4MzU3LCAwLjAwODQ4MiwgMC4wMDg3MTQsIDAuMDA4OTA1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA2OTMxLCAwLjAwNjk0NCwgMC4wMDcwMjMsIDAuMDA3MTMzLCAwLjAwNzI2NiwgMC4wMDc0ODEsIDAuMDA3Njc2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEJiFFIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9FX0VRXzAgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDgxMjUsIC0wLjA3NjI1LCAtMC4wNywgLTAuMDYzNzUsIC0wLjA2Mzc1LCAtMC4wNiwgLTAuMDU3NSIsIFwKLSAgICAgICAgICAiLTAuMDg2MjUsIC0wLjA4MTI1LCAtMC4wNzUsIC0wLjA3NSwgLTAuMDY4NzUsIC0wLjA2NSwgLTAuMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDkyNSwgLTAuMDg3NSwgLTAuMDgxMjUsIC0wLjA4MTI1LCAtMC4wNzUsIC0wLjA3MTI1LCAtMC4wNjg3NSIsIFwKLSAgICAgICAgICAiLTAuMDk4NzUsIC0wLjA5Mzc1LCAtMC4wODc1LCAtMC4wODEyNSwgLTAuMDgxMjUsIC0wLjA3NzUsIC0wLjA3NSIsIFwKLSAgICAgICAgICAiLTAuMDk4NzUsIC0wLjA5Mzc1LCAtMC4wODc1LCAtMC4wODc1LCAtMC4wODEyNSwgLTAuMDc3NSwgLTAuMDc1IiwgXAotICAgICAgICAgICItMC4xMDI1LCAtMC4wOTc1LCAtMC4wOTEyNSwgLTAuMDkxMjUsIC0wLjA4NSwgLTAuMDgxMjUsIC0wLjA3ODc1IiwgXAotICAgICAgICAgICItMC4xMTEyNSwgLTAuMSwgLTAuMSwgLTAuMDkzNzUsIC0wLjA5Mzc1LCAtMC4wOSwgLTAuMDg3NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJEJkUiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8xX0FOX0VfRVFfMSA9PSAxJ2IxIjsKLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMTg3NSwgLTAuMDEzNzUsIC0wLjAwMTI1LCAwLjAwNSwgMC4wMTEyNSwgMC4wMTUsIDAuMDE3NSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMCwgMC4wMSwgMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAuMDAzNzUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAtMC4wMDI1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDAyNSwgMCIsIFwKLSAgICAgICAgICAiLTAuMDQ2MjUsIC0wLjAzNSwgLTAuMDI4NzUsIC0wLjAyMjUsIC0wLjAxNjI1LCAtMC4wMTI1LCAtMC4wMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjA0Mzc1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDE1LCAtMC4wMDYyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUQmIUUiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX0VfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDM3NSwgMC4wMzg3NSwgMC4wMjYyNSwgMC4wMiwgMC4wMTM3NSwgMC4wMDM3NSwgMC4wMDEyNSIsIFwKLSAgICAgICAgICAiMC4wNTUsIDAuMDQzNzUsIDAuMDMxMjUsIDAuMDI1LCAwLjAxODc1LCAwLjAwODc1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICIwLjA1NSwgMC4wNSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMTUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4wNjEyNSwgMC4wNTYyNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyMTI1LCAwLjAxODc1IiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDU2MjUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMjc1LCAwLjAxODc1IiwgXAotICAgICAgICAgICIwLjA3MTI1LCAwLjA2LCAwLjA1Mzc1LCAwLjA0MTI1LCAwLjAzNSwgMC4wMzEyNSwgMC4wMjI1IiwgXAotICAgICAgICAgICIwLjA3Mzc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDUsIDAuMDQzNzUsIDAuMDMzNzUsIDAuMDI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJEJkUiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8xX0FOX0VfRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xLCAwLjA4ODc1LCAwLjA4MjUsIDAuMDgyNSwgMC4wNzYyNSwgMC4wNzI1LCAwLjA3IiwgXAotICAgICAgICAgICIwLjEwNSwgMC4xLCAwLjA5Mzc1LCAwLjA4NzUsIDAuMDg3NSwgMC4wNzc1LCAwLjA3NSIsIFwKLSAgICAgICAgICAiMC4xMTEyNSwgMC4xMDYyNSwgMC4xLCAwLjA5Mzc1LCAwLjA4NzUsIDAuMDgzNzUsIDAuMDgxMjUiLCBcCi0gICAgICAgICAgIjAuMTE3NSwgMC4xMDYyNSwgMC4xLCAwLjEsIDAuMDkzNzUsIDAuMDksIDAuMDg3NSIsIFwKLSAgICAgICAgICAiMC4xMTc1LCAwLjExMjUsIDAuMTA2MjUsIDAuMSwgMC4xLCAwLjA5NjI1LCAwLjA5Mzc1IiwgXAotICAgICAgICAgICIwLjEyMTI1LCAwLjExNjI1LCAwLjExLCAwLjEwMzc1LCAwLjEwMzc1LCAwLjEsIDAuMDk3NSIsIFwKLSAgICAgICAgICAiMC4xMywgMC4xMTg3NSwgMC4xMTI1LCAwLjEwNjI1LCAwLjEwNjI1LCAwLjEwMjUsIDAuMSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBFREZGVFJYNCAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoRURGRlRSWDQpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMi4wMzIxNjsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBmZiAoTjMwLFFCSU5UKSB7Ci0gICAgbmV4dF9zdGF0ZSA6ICIoKCghKCghRCkgRSkpICghKCghRSkgKCFOMzApKSkpIFJOKSI7Ci0gICAgY2xvY2tlZF9vbiA6ICJDSyI7Ci0gIH0KLSAgcGluKENLKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2NTA1NDc7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjUwNTQ3OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDY1MDQyOTsKLSAgICBjbG9jayA6IHRydWU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzMDAxLCAwLjAwMjk5NCwgMC4wMDMwODYsIDAuMDAzMTY2LCAwLjAwMzI4OCwgMC4wMDM1NDEsIDAuMDAzNzIyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA4NTIzLCAwLjAwODUxNCwgMC4wMDg1OTMsIDAuMDA4Njg1LCAwLjAwODgxNiwgMC4wMDg5NTMsIDAuMDA5MTMzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRCYhRSYhUk4iOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX0VfRVFfMF9BTl9STl9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMTEwMzQ0LCAwLjExODU5NCwgMC4xMjgsIDAuMTM1NzQ5LCAwLjE0MTg2LCAwLjE0OTgyMiwgMC4xNTU4MTYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjA3MDE4NSwgMC4wNzgzMjUsIDAuMDg3NjQ5LCAwLjA5NDcwOCwgMC4xMDAzMjUsIDAuMTA3NzEsIDAuMTEyOTc5Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihEKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2MzY3OTY7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjM2NjU2OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDYzNjc5NjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDU5MjcsIDAuMDA1OTI2LCAwLjAwNjAwNSwgMC4wMDYxMTMsIDAuMDA2MjQ0LCAwLjAwNjQ4LCAwLjAwNjY3NCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNjI1LCAwLjAwNjI2MSwgMC4wMDYzMzcsIDAuMDA2NDYxLCAwLjAwNjU5MSwgMC4wMDY4MTEsIDAuMDA3MDA4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIkUmUk4iOwotICAgICAgc2RmX2NvbmQgOiAiRV9FUV8xX0FOX1JOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDUsIC0wLjAzODc1LCAtMC4wMzg3NSwgLTAuMDMyNSwgLTAuMDMyNSwgLTAuMDI4NzUsIC0wLjAyNjI1IiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzMzc1LCAtMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDYxMjUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjA0Mzc1LCAtMC4wNCwgLTAuMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDY3NSwgLTAuMDU2MjUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDUsIC0wLjA0NjI1LCAtMC4wNDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDY3NSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDQ2MjUsIC0wLjA0Mzc1IiwgXAotICAgICAgICAgICItMC4wNzEyNSwgLTAuMDY2MjUsIC0wLjA2LCAtMC4wNiwgLTAuMDYsIC0wLjA1NjI1LCAtMC4wNTM3NSIsIFwKLSAgICAgICAgICAiLTAuMDgsIC0wLjA2ODc1LCAtMC4wNjg3NSwgLTAuMDYyNSwgLTAuMDYyNSwgLTAuMDU4NzUsIC0wLjA1NjI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDE4NzUsIC0wLjAxMzc1LCAtMC4wMDEyNSwgMC4wMDUsIDAuMDA1LCAwLjAxNSwgMC4wMTc1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLCAwLjAwMzc1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgLTAuMDAyNSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwMjUsIDAiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDg3NSwgMCIsIFwKLSAgICAgICAgICAiLTAuMDQ2MjUsIC0wLjA0MTI1LCAtMC4wMjg3NSwgLTAuMDIyNSwgLTAuMDE2MjUsIC0wLjAxMjUsIC0wLjAxIiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDQzNzUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAyNSwgLTAuMDE1LCAtMC4wMTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJFJlJOIjsKLSAgICAgIHNkZl9jb25kIDogIkVfRVFfMV9BTl9STl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3NSwgMC4wNywgMC4wNjM3NSwgMC4wNTc1LCAwLjA1MTI1LCAwLjA0NzUsIDAuMDQ1IiwgXAotICAgICAgICAgICIwLjA4LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA2MjUsIDAuMDU4NzUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIjAuMDg2MjUsIDAuMDgxMjUsIDAuMDc1LCAwLjA2ODc1LCAwLjA2ODc1LCAwLjA2NSwgMC4wNjI1IiwgXAotICAgICAgICAgICIwLjA5MjUsIDAuMDg3NSwgMC4wODEyNSwgMC4wNzUsIDAuMDY4NzUsIDAuMDY1LCAwLjA2MjUiLCBcCi0gICAgICAgICAgIjAuMDk4NzUsIDAuMDg3NSwgMC4wODEyNSwgMC4wODEyNSwgMC4wNzUsIDAuMDcxMjUsIDAuMDY4NzUiLCBcCi0gICAgICAgICAgIjAuMTAyNSwgMC4wOTEyNSwgMC4wODUsIDAuMDg1LCAwLjA3ODc1LCAwLjA3NSwgMC4wNzI1IiwgXAotICAgICAgICAgICIwLjEwNSwgMC4xLCAwLjA5Mzc1LCAwLjA4NzUsIDAuMDgxMjUsIDAuMDc3NSwgMC4wNzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNSwgMC4wMzg3NSwgMC4wMzI1LCAwLjAyLCAwLjAxMzc1LCAwLjAxLCAwLjAwMTI1IiwgXAotICAgICAgICAgICIwLjA1NSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMTUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMDYxMjUsIDAuMDUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMjEyNSwgMC4wMTI1IiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDU2MjUsIDAuMDUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMjc1LCAwLjAxODc1IiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDYyNSwgMC4wNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAyNzUsIDAuMDI1IiwgXAotICAgICAgICAgICIwLjA3MTI1LCAwLjA2NjI1LCAwLjA1Mzc1LCAwLjA0NzUsIDAuMDQxMjUsIDAuMDMxMjUsIDAuMDI4NzUiLCBcCi0gICAgICAgICAgIjAuMDgsIDAuMDY4NzUsIDAuMDU2MjUsIDAuMDUsIDAuMDQzNzUsIDAuMDMzNzUsIDAuMDMxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEUpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTM4OTEyOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTM4OTEyOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTM4ODIxOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNjUzNiwgMC4wMDY1NDIsIDAuMDA2NjQ0LCAwLjAwNjc1MywgMC4wMDY4NjksIDAuMDA3MDY0LCAwLjAwNzI3MyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNzc2MywgMC4wMDc3OTMsIDAuMDA3ODg5LCAwLjAwODA2NiwgMC4wMDgyNzgsIDAuMDA4NjU1LCAwLjAwODk4MiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJSTiI7Ci0gICAgICBzZGZfY29uZCA6ICJSTiA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMjUsIC0wLjAyLCAtMC4wMDc1LCAtMC4wMDEyNSwgMC4wMDUsIDAuMDE1LCAwLjAxNzUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMjUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLCAwLjAwMzc1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAtMC4wMDI1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDI1LCAwIiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAwODc1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDUyNSwgLTAuMDQ3NSwgLTAuMDM1LCAtMC4wMjg3NSwgLTAuMDIyNSwgLTAuMDEyNSwgLTAuMDEiLCBcCi0gICAgICAgICAgIi0wLjA1NSwgLTAuMDUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAyMTI1LCAtMC4wMTI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDMxMjUsIC0wLjAyLCAtMC4wMTM3NSwgLTAuMDA3NSwgLTAuMDAxMjUsIDAuMDAyNSwgMC4wMTEyNSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIC0wLjAwMjUsIDAiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDg3NSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDE1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjA0Mzc1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMjUsIC0wLjAxNSwgLTAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDUyNSwgLTAuMDQ3NSwgLTAuMDM1LCAtMC4wMjg3NSwgLTAuMDI4NzUsIC0wLjAxODc1LCAtMC4wMTYyNSIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMjEyNSwgLTAuMDE4NzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlJOIjsKLSAgICAgIHNkZl9jb25kIDogIlJOID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4NzUsIDAuMDgyNSwgMC4wNzYyNSwgMC4wNywgMC4wNywgMC4wNjYyNSwgMC4wNTc1IiwgXAotICAgICAgICAgICIwLjA5ODc1LCAwLjA4NzUsIDAuMDgxMjUsIDAuMDgxMjUsIDAuMDc1LCAwLjA3MTI1LCAwLjA2ODc1IiwgXAotICAgICAgICAgICIwLjEwNSwgMC4wOTM3NSwgMC4wODc1LCAwLjA4NzUsIDAuMDgxMjUsIDAuMDc3NSwgMC4wNzUiLCBcCi0gICAgICAgICAgIjAuMTA1LCAwLjEsIDAuMDkzNzUsIDAuMDg3NSwgMC4wODc1LCAwLjA4Mzc1LCAwLjA3NSIsIFwKLSAgICAgICAgICAiMC4xMTEyNSwgMC4xLCAwLjA5Mzc1LCAwLjA5Mzc1LCAwLjA4NzUsIDAuMDgzNzUsIDAuMDgxMjUiLCBcCi0gICAgICAgICAgIjAuMTE1LCAwLjExLCAwLjEwMzc1LCAwLjA5NzUsIDAuMDk3NSwgMC4wODc1LCAwLjA4NSIsIFwKLSAgICAgICAgICAiMC4xMTc1LCAwLjExMjUsIDAuMTA2MjUsIDAuMSwgMC4xLCAwLjA5NjI1LCAwLjA5Mzc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDUsIDAuMDQ1LCAwLjAzODc1LCAwLjAzODc1LCAwLjAzMjUsIDAuMDI4NzUsIDAuMDI2MjUiLCBcCi0gICAgICAgICAgIjAuMDU1LCAwLjA1LCAwLjA0Mzc1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDMzNzUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMDY3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1LCAwLjA1LCAwLjA0NjI1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjA3Mzc1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNTI1LCAwLjA1IiwgXAotICAgICAgICAgICIwLjA4LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1ODc1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICIwLjA5LCAwLjA4NSwgMC4wNzg3NSwgMC4wNzg3NSwgMC4wNzI1LCAwLjA2ODc1LCAwLjA2NjI1IiwgXAotICAgICAgICAgICIwLjA5ODc1LCAwLjA5Mzc1LCAwLjA4NzUsIDAuMDgxMjUsIDAuMDgxMjUsIDAuMDc3NSwgMC4wNzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFEpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMS4zMTIyNDsKLSAgICBmdW5jdGlvbiA6ICJOMzAiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5vbl91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcmlzaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDkwMTM3LCAwLjE0NzI5LCAwLjIwMzAzLCAwLjI0Mjc2OCwgMC4zMDYxMjEsIDAuMzYxNzQ3LCAwLjQ0MTUyOSIsIFwKLSAgICAgICAgICAiMC4wOTg0MDgsIDAuMTU1NTM4LCAwLjIxMTMwMSwgMC4yNTEyNTYsIDAuMzE0NjIzLCAwLjM3MDAxMSwgMC40NDk2ODkiLCBcCi0gICAgICAgICAgIjAuMTA3NzIzLCAwLjE2NDg1OSwgMC4yMjA0NjYsIDAuMjYwNTgzLCAwLjMyMzczMiwgMC4zNzkzNDIsIDAuNDU4NzcyIiwgXAotICAgICAgICAgICIwLjExNTQxLCAwLjE3MjUzMiwgMC4yMjgxNDUsIDAuMjY4MjcsIDAuMzMxNjEsIDAuMzg3MDI0LCAwLjQ2NjQ3MSIsIFwKLSAgICAgICAgICAiMC4xMjE1OTQsIDAuMTc4NzIsIDAuMjM0NDczLCAwLjI3NDMsIDAuMzM3NjY2LCAwLjM5MzI2MSwgMC40NzI2NjUiLCBcCi0gICAgICAgICAgIjAuMTI5NzU4LCAwLjE4Njg5NSwgMC4yNDI1NDUsIDAuMjgyNTc5LCAwLjM0NjA1NCwgMC40MDE2OTgsIDAuNDgxMDE3IiwgXAotICAgICAgICAgICIwLjEzNTk1NCwgMC4xOTMwNjksIDAuMjQ4OTcyLCAwLjI4ODY1MSwgMC4zNTIyNTQsIDAuNDA3NDc4LCAwLjQ4NzE0MiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyNjY0OCwgMC4xNDA3ODIsIDAuMjU4Nzg4LCAwLjM0MzA0NCwgMC40Nzg0OTcsIDAuNTk3MTcxLCAwLjc2NjcyOCIsIFwKLSAgICAgICAgICAiMC4wMjY2MTIsIDAuMTQwNzg3LCAwLjI1ODgxLCAwLjM0MzA1OSwgMC40NzkzNDUsIDAuNTk3NDg3LCAwLjc2NjUyNiIsIFwKLSAgICAgICAgICAiMC4wMjY2NjMsIDAuMTQwNzI3LCAwLjI1ODYwNiwgMC4zNDMwNDcsIDAuNDc4NzQ0LCAwLjU5NzQ3NywgMC43NjY5OTciLCBcCi0gICAgICAgICAgIjAuMDI2NDkxLCAwLjE0MTAyLCAwLjI1ODU5NCwgMC4zNDMwNjQsIDAuNDc5MzEyLCAwLjU5NzQyMSwgMC43NjY2OTUiLCBcCi0gICAgICAgICAgIjAuMDI2Njc3LCAwLjE0MDgwOCwgMC4yNTg3OCwgMC4zNDI5NzgsIDAuNDc4NjM1LCAwLjU5NzM1OCwgMC43NjY2MjEiLCBcCi0gICAgICAgICAgIjAuMDI2NjE4LCAwLjE0MDcyOSwgMC4yNTg2NDUsIDAuMzQzMDM4LCAwLjQ3OTM2OSwgMC41OTcwOTksIDAuNzY2NzI1IiwgXAotICAgICAgICAgICIwLjAyNjU3NSwgMC4xNDA5MDksIDAuMjU4NTExLCAwLjM0MzUyMywgMC40Nzg0NTksIDAuNTk3NDU1LCAwLjc2NzUzMiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5MjkyNCwgMC4xNDg3NDMsIDAuMjAzMzY3LCAwLjI0MTkyNSwgMC4zMDQyODYsIDAuMzU4MTgsIDAuNDM1NDc1IiwgXAotICAgICAgICAgICIwLjEwMTIxMywgMC4xNTcwMywgMC4yMTEyMSwgMC4yNTAyMTUsIDAuMzEyNTgxLCAwLjM2NjQ3LCAwLjQ0Mzc1NyIsIFwKLSAgICAgICAgICAiMC4xMTA2MjIsIDAuMTY2NDM3LCAwLjIyMDYzMiwgMC4yNTk2MiwgMC4zMjE5ODQsIDAuMzc1ODc0LCAwLjQ1MzIzMSIsIFwKLSAgICAgICAgICAiMC4xMTgzMzMsIDAuMTc0MjAzLCAwLjIyODQ5OCwgMC4yNjczMzEsIDAuMzI5Njk0LCAwLjM4MzU4MSwgMC40NjA4NjYiLCBcCi0gICAgICAgICAgIjAuMTI0NDg0LCAwLjE4MDM2NiwgMC4yMzQ4MzcsIDAuMjczNDUzLCAwLjMzNTU0MiwgMC4zODk0NDQsIDAuNDY3MDYzIiwgXAotICAgICAgICAgICIwLjEzMjQ3NiwgMC4xODgzNTUsIDAuMjQyODg1LCAwLjI4MTQ3MSwgMC4zNDM4MjksIDAuMzk3NzI0LCAwLjQ3NDk5OCIsIFwKLSAgICAgICAgICAiMC4xMzg0MzIsIDAuMTk0MzQ3LCAwLjI0ODc3LCAwLjI4NzQyNCwgMC4zNDk1MzMsIDAuNDAzNzc1LCAwLjQ4MDk4NCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyNTE4MywgMC4xMzM2MTYsIDAuMjQ2Njk2LCAwLjMyNzAzNywgMC40NTQwNTksIDAuNTY3NjM5LCAwLjcyNzgwNSIsIFwKLSAgICAgICAgICAiMC4wMjUyODMsIDAuMTMzNjExLCAwLjI0Njk1MywgMC4zMjcwMzksIDAuNDU0NzQ5LCAwLjU2Nzc2NSwgMC43Mjc4MSIsIFwKLSAgICAgICAgICAiMC4wMjUyMDgsIDAuMTMzNjg2LCAwLjI0NjcwMSwgMC4zMjcwNDEsIDAuNDU0OTMxLCAwLjU2NzgzMiwgMC43MjgxNzkiLCBcCi0gICAgICAgICAgIjAuMDI1MTg5LCAwLjEzMzY3OSwgMC4yNDY5NTQsIDAuMzI3MDQyLCAwLjQ1NTAxMiwgMC41Njc2MzcsIDAuNzI3ODEyIiwgXAotICAgICAgICAgICIwLjAyNTI0NiwgMC4xMzQ5ODYsIDAuMjQ2OTQ5LCAwLjMyNzA0LCAwLjQ1NTQ3MywgMC41Njc3NTEsIDAuNzI4ODg2IiwgXAotICAgICAgICAgICIwLjAyNTMwMiwgMC4xMzQ5OTUsIDAuMjQ1MDc1LCAwLjMyNzAzNiwgMC40NTUyNjEsIDAuNTY4MTIyLCAwLjcyODg5OCIsIFwKLSAgICAgICAgICAiMC4wMjUyMzEsIDAuMTM0ODc0LCAwLjI0NjkxOCwgMC4zMjY5NzgsIDAuNDU1NTcxLCAwLjU2NzgxOSwgMC43Mjg4NjciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDkzNjEsIDAuMDA5NDc1LCAwLjAwOTQ5LCAwLjAwOTQ5NCwgMC4wMDk0OTYsIDAuMDA5NDk5LCAwLjAwOTUiLCBcCi0gICAgICAgICAgIjAuMDA5MzYxLCAwLjAwOTQ3MiwgMC4wMDk0ODYsIDAuMDA5NDkxLCAwLjAwOTQ5NCwgMC4wMDk0OTUsIDAuMDA5NDk3IiwgXAotICAgICAgICAgICIwLjAwOTM5NywgMC4wMDk1MTEsIDAuMDA5NTI1LCAwLjAwOTUzLCAwLjAwOTUzMywgMC4wMDk1MzUsIDAuMDA5NTM2IiwgXAotICAgICAgICAgICIwLjAwOTQ0OCwgMC4wMDk1NiwgMC4wMDk1NzYsIDAuMDA5NTgsIDAuMDA5NTg1LCAwLjAwOTU4NiwgMC4wMDk1ODciLCBcCi0gICAgICAgICAgIjAuMDA5NTE0LCAwLjAwOTYyMywgMC4wMDk2MzgsIDAuMDA5NjQyLCAwLjAwOTY0NSwgMC4wMDk2NDUsIDAuMDA5NjQ4IiwgXAotICAgICAgICAgICIwLjAwOTYwNywgMC4wMDk3MTYsIDAuMDA5NzMxLCAwLjAwOTczNSwgMC4wMDk3MzgsIDAuMDA5NzM5LCAwLjAwOTc0MSIsIFwKLSAgICAgICAgICAiMC4wMDk3MDEsIDAuMDA5ODEsIDAuMDA5ODQ5LCAwLjAwOTgyOCwgMC4wMDk4NTQsIDAuMDA5ODU2LCAwLjAwOTgzMiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEwMTEyLCAwLjAxMDIyMywgMC4wMTAyMzcsIDAuMDEwMjQ2LCAwLjAxMDI0NCwgMC4wMTAyNDYsIDAuMDEwMjQ4IiwgXAotICAgICAgICAgICIwLjAxMDExMSwgMC4wMTAyMjIsIDAuMDEwMjM3LCAwLjAxMDI0MSwgMC4wMTAyNDQsIDAuMDEwMjQ3LCAwLjAxMDI0NyIsIFwKLSAgICAgICAgICAiMC4wMTAxNjYsIDAuMDEwMjczLCAwLjAxMDI4OCwgMC4wMTAyOTIsIDAuMDEwMjk1LCAwLjAxMDI5NiwgMC4wMTAyOTciLCBcCi0gICAgICAgICAgIjAuMDEwMjIsIDAuMDEwMzI4LCAwLjAxMDM0MiwgMC4wMTAzNDYsIDAuMDEwMzQ5LCAwLjAxMDM1LCAwLjAxMDM1MSIsIFwKLSAgICAgICAgICAiMC4wMTAyOSwgMC4wMTAzOTksIDAuMDEwNDE0LCAwLjAxMDQxOCwgMC4wMTA0MTksIDAuMDEwNDIzLCAwLjAxMDQyMyIsIFwKLSAgICAgICAgICAiMC4wMTAzOTgsIDAuMDEwNTA2LCAwLjAxMDUyMiwgMC4wMTA1MjYsIDAuMDEwNTI5LCAwLjAxMDUzLCAwLjAxMDUzMSIsIFwKLSAgICAgICAgICAiMC4wMTA1MDIsIDAuMDEwNjEzLCAwLjAxMDYzNSwgMC4wMTA2MzQsIDAuMDEwNjI0LCAwLjAxMDYzOCwgMC4wMTA2NDMiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFFOKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDEuMzQ3ODM7Ci0gICAgZnVuY3Rpb24gOiAiUUJJTlQiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5vbl91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcmlzaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTEwNjQyLCAwLjE2NjUsIDAuMjIyMTQ0LCAwLjI2MTgzNSwgMC4zMjU1MTMsIDAuMzgxMDQ4LCAwLjQ2MDQ3OCIsIFwKLSAgICAgICAgICAiMC4xMTg4OTIsIDAuMTc0Nzg3LCAwLjIzMDM2OCwgMC4yNzAxMjUsIDAuMzMzODA1LCAwLjM4OTMzOCwgMC40Njg3NjYiLCBcCi0gICAgICAgICAgIjAuMTI4MzQsIDAuMTg0MTk5LCAwLjIzOTc4LCAwLjI3OTUzNSwgMC4zNDMyMTQsIDAuMzk4NzQ4LCAwLjQ3ODE3MyIsIFwKLSAgICAgICAgICAiMC4xMzYwMTEsIDAuMTkxOTMzLCAwLjI0NzUxNiwgMC4yODcyNDgsIDAuMzUwOTI2LCAwLjQwNjQ1OSwgMC40ODU4ODciLCBcCi0gICAgICAgICAgIjAuMTQyMTk4LCAwLjE5ODA2NCwgMC4yNTM2NzQsIDAuMjkzMzc5LCAwLjM1NjkzOCwgMC40MTI0NjIsIDAuNDkyMDM1IiwgXAotICAgICAgICAgICIwLjE1MDEyMiwgMC4yMDU5NywgMC4yNjE1OTQsIDAuMzAxMjg4LCAwLjM2NDk2NSwgMC40MjA1MDEsIDAuNDk5OTI1IiwgXAotICAgICAgICAgICIwLjE1NjExNCwgMC4yMTE5ODEsIDAuMjY3NTg4LCAwLjMwNzMyMSwgMC4zNzA5MTYsIDAuNDI2NTQsIDAuNTA1OTU2Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDI1MSwgMC4xNDA1NjIsIDAuMjU4Nzc2LCAwLjM0NDE0NSwgMC40NzkwMzQsIDAuNTk3NzI2LCAwLjc2ODM4MiIsIFwKLSAgICAgICAgICAiMC4wMjUxMDUsIDAuMTQwNjM5LCAwLjI1OTI5MywgMC4zNDQxNDUsIDAuNDc5NzUzLCAwLjU5NzczNywgMC43Njg0MDIiLCBcCi0gICAgICAgICAgIjAuMDI1MSwgMC4xNDA2MjIsIDAuMjU4OTYzLCAwLjM0NDE0NSwgMC40NzkxODMsIDAuNTk4NzYzLCAwLjc2ODM3MiIsIFwKLSAgICAgICAgICAiMC4wMjUwOTgsIDAuMTQwNjE5LCAwLjI1OTI5MywgMC4zNDQxNDYsIDAuNDc5MTkxLCAwLjU5NzcyNiwgMC43NjgzNzIiLCBcCi0gICAgICAgICAgIjAuMDI1MTEsIDAuMTQwNzY3LCAwLjI1OTI5NCwgMC4zNDQxNDYsIDAuNDc5MzAyLCAwLjU5ODc0NywgMC43NjgzODYiLCBcCi0gICAgICAgICAgIjAuMDI1MDcsIDAuMTQwNzU0LCAwLjI1ODg1MiwgMC4zNDQxNDcsIDAuNDc5MjAyLCAwLjU5ODc3MiwgMC43NjgzOTIiLCBcCi0gICAgICAgICAgIjAuMDI1MTA4LCAwLjE0MDc4OSwgMC4yNTkyODgsIDAuMzQ0MTEzLCAwLjQ3OTM5NSwgMC41OTg3NCwgMC43NjgzNDciKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDg3NDIsIDAuMTYzMzQ1LCAwLjIxNzQ3MSwgMC4yNTYxNjIsIDAuMzE4MDYxLCAwLjM3MjIzNiwgMC40NDk2NjUiLCBcCi0gICAgICAgICAgIjAuMTE3MDExLCAwLjE3MTU3NiwgMC4yMjU3MDUsIDAuMjY0NDE0LCAwLjMyNjI3MSwgMC4zODA0NTcsIDAuNDU3ODUiLCBcCi0gICAgICAgICAgIjAuMTI2MzMzLCAwLjE4MDkzMSwgMC4yMzUwNTksIDAuMjczNzY4LCAwLjMzNTYzNCwgMC4zODk4MTUsIDAuNDY3MTY0IiwgXAotICAgICAgICAgICIwLjEzNDAzOSwgMC4xODg1NjksIDAuMjQyNjk1LCAwLjI4MTQwNywgMC4zNDMyNTcsIDAuMzk3NDQzLCAwLjQ3NDc5MSIsIFwKLSAgICAgICAgICAiMC4xNDAyMDMsIDAuMTk0ODA2LCAwLjI0ODkyOSwgMC4yODc2MjUsIDAuMzQ5NDk3LCAwLjQwMzY2MywgMC40ODEwMjYiLCBcCi0gICAgICAgICAgIjAuMTQ4MzM1LCAwLjIwMjkxMywgMC4yNTcwNDYsIDAuMjk1NzQ2LCAwLjM1NzYyOSwgMC40MTE4MTUsIDAuNDg5MTgxIiwgXAotICAgICAgICAgICIwLjE1NDU1NSwgMC4yMDkxMDcsIDAuMjYzMTUyLCAwLjMwMTkwNCwgMC4zNjM3MzMsIDAuNDE3ODUsIDAuNDk1MzI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDIzOTU2LCAwLjEzMzYwNiwgMC4yNDU5MTEsIDAuMzI1ODc2LCAwLjQ1NDQ0MywgMC41NjY5OTksIDAuNzI3Nzk3IiwgXAotICAgICAgICAgICIwLjAyMzk2MywgMC4xMzM1MSwgMC4yNDU5MzIsIDAuMzI1OTEsIDAuNDU1MTc5LCAwLjU2NzI1MywgMC43Mjc3MTQiLCBcCi0gICAgICAgICAgIjAuMDIzOTU2LCAwLjEzMzYwMSwgMC4yNDU2OSwgMC4zMjU5NTIsIDAuNDU0NzIxLCAwLjU2Njg2OCwgMC43MjgxODYiLCBcCi0gICAgICAgICAgIjAuMDIzOTU0LCAwLjEzMzQ4NywgMC4yNDU2OTEsIDAuMzI1OTE4LCAwLjQ1NTEzMiwgMC41NjcyNSwgMC43MjgwMjEiLCBcCi0gICAgICAgICAgIjAuMDIzOTU4LCAwLjEzMzUwNiwgMC4yNDU5MDEsIDAuMzI1ODI4LCAwLjQ1NDY1OCwgMC41NjcyNTMsIDAuNzI3OTYyIiwgXAotICAgICAgICAgICIwLjAyMzkzNCwgMC4xMzM2MywgMC4yNDU3NTcsIDAuMzI1ODg5LCAwLjQ1NTIxNCwgMC41NjY5NzIsIDAuNzI3Njk3IiwgXAotICAgICAgICAgICIwLjAyMzk2MywgMC4xMzM2NDgsIDAuMjQ1NjMyLCAwLjMyNjM2MywgMC40NTQzOTQsIDAuNTY3MzQ4LCAwLjcyODciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTAxMTIsIDAuMDEwMjIzLCAwLjAxMDIzNywgMC4wMTAyNDYsIDAuMDEwMjQ0LCAwLjAxMDI0NiwgMC4wMTAyNDgiLCBcCi0gICAgICAgICAgIjAuMDEwMTExLCAwLjAxMDIyMiwgMC4wMTAyMzcsIDAuMDEwMjQxLCAwLjAxMDI0NCwgMC4wMTAyNDcsIDAuMDEwMjQ3IiwgXAotICAgICAgICAgICIwLjAxMDE2NiwgMC4wMTAyNzMsIDAuMDEwMjg4LCAwLjAxMDI5MiwgMC4wMTAyOTUsIDAuMDEwMjk2LCAwLjAxMDI5NyIsIFwKLSAgICAgICAgICAiMC4wMTAyMiwgMC4wMTAzMjgsIDAuMDEwMzQyLCAwLjAxMDM0NiwgMC4wMTAzNDksIDAuMDEwMzUsIDAuMDEwMzUxIiwgXAotICAgICAgICAgICIwLjAxMDI5LCAwLjAxMDM5OSwgMC4wMTA0MTQsIDAuMDEwNDE4LCAwLjAxMDQxOSwgMC4wMTA0MjMsIDAuMDEwNDIzIiwgXAotICAgICAgICAgICIwLjAxMDM5OCwgMC4wMTA1MDYsIDAuMDEwNTIyLCAwLjAxMDUyNiwgMC4wMTA1MjksIDAuMDEwNTMsIDAuMDEwNTMxIiwgXAotICAgICAgICAgICIwLjAxMDUwMiwgMC4wMTA2MTMsIDAuMDEwNjM1LCAwLjAxMDYzNCwgMC4wMTA2MjQsIDAuMDEwNjM4LCAwLjAxMDY0MyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA5MzYxLCAwLjAwOTQ3NSwgMC4wMDk0OSwgMC4wMDk0OTQsIDAuMDA5NDk2LCAwLjAwOTQ5OSwgMC4wMDk1IiwgXAotICAgICAgICAgICIwLjAwOTM2MSwgMC4wMDk0NzIsIDAuMDA5NDg2LCAwLjAwOTQ5MSwgMC4wMDk0OTQsIDAuMDA5NDk1LCAwLjAwOTQ5NyIsIFwKLSAgICAgICAgICAiMC4wMDkzOTcsIDAuMDA5NTExLCAwLjAwOTUyNSwgMC4wMDk1MywgMC4wMDk1MzMsIDAuMDA5NTM1LCAwLjAwOTUzNiIsIFwKLSAgICAgICAgICAiMC4wMDk0NDgsIDAuMDA5NTYsIDAuMDA5NTc2LCAwLjAwOTU4LCAwLjAwOTU4NSwgMC4wMDk1ODYsIDAuMDA5NTg3IiwgXAotICAgICAgICAgICIwLjAwOTUxNCwgMC4wMDk2MjMsIDAuMDA5NjM4LCAwLjAwOTY0MiwgMC4wMDk2NDUsIDAuMDA5NjQ1LCAwLjAwOTY0OCIsIFwKLSAgICAgICAgICAiMC4wMDk2MDcsIDAuMDA5NzE2LCAwLjAwOTczMSwgMC4wMDk3MzUsIDAuMDA5NzM4LCAwLjAwOTczOSwgMC4wMDk3NDEiLCBcCi0gICAgICAgICAgIjAuMDA5NzAxLCAwLjAwOTgxLCAwLjAwOTg0OSwgMC4wMDk4MjgsIDAuMDA5ODU0LCAwLjAwOTg1NiwgMC4wMDk4MzIiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFJOKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2Mzc5NjE7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjM3OTYxOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDYzNzkzNTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDczMjYsIDAuMDA3MzMyLCAwLjAwNzQyMywgMC4wMDc1MjcsIDAuMDA3NjU0LCAwLjAwNzg4NywgMC4wMDgwOTEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDcwNDYsIDAuMDA3MDU3LCAwLjAwNzE0LCAwLjAwNzI1MywgMC4wMDczODYsIDAuMDA3NjA5LCAwLjAwNzgwNyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRCYhRSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fRV9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjA3NSwgLTAuMDcsIC0wLjA2Mzc1LCAtMC4wNTc1LCAtMC4wNTc1LCAtMC4wNTM3NSwgLTAuMDUxMjUiLCBcCi0gICAgICAgICAgIi0wLjA4LCAtMC4wNzUsIC0wLjA2ODc1LCAtMC4wNjg3NSwgLTAuMDYyNSwgLTAuMDU4NzUsIC0wLjA1NjI1IiwgXAotICAgICAgICAgICItMC4wODYyNSwgLTAuMDgxMjUsIC0wLjA3NSwgLTAuMDc1LCAtMC4wNjg3NSwgLTAuMDY1LCAtMC4wNjI1IiwgXAotICAgICAgICAgICItMC4wOTI1LCAtMC4wODEyNSwgLTAuMDgxMjUsIC0wLjA3NSwgLTAuMDc1LCAtMC4wNzEyNSwgLTAuMDY4NzUiLCBcCi0gICAgICAgICAgIi0wLjA5MjUsIC0wLjA4NzUsIC0wLjA4MTI1LCAtMC4wODEyNSwgLTAuMDc1LCAtMC4wNzEyNSwgLTAuMDY4NzUiLCBcCi0gICAgICAgICAgIi0wLjA5NjI1LCAtMC4wOTEyNSwgLTAuMDg1LCAtMC4wODUsIC0wLjA3ODc1LCAtMC4wNzUsIC0wLjA3MjUiLCBcCi0gICAgICAgICAgIi0wLjA5ODc1LCAtMC4wOTM3NSwgLTAuMDg3NSwgLTAuMDg3NSwgLTAuMDg3NSwgLTAuMDgzNzUsIC0wLjA4MTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIkQmRSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzFfQU5fRV9FUV8xID09IDEnYjEiOwotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAxODc1LCAtMC4wMDc1LCAtMC4wMDEyNSwgMC4wMDUsIDAuMDExMjUsIDAuMDE1LCAwLjAyMzc1IiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAsIDAuMDA2MjUsIDAuMDEsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAsIDAuMDAzNzUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLjAwMzc1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDMxMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgLTAuMDAyNSwgMCIsIFwKLSAgICAgICAgICAiLTAuMDQsIC0wLjAzNSwgLTAuMDIyNSwgLTAuMDE2MjUsIC0wLjAxLCAtMC4wMDYyNSwgLTAuMDAzNzUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzNzUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxODc1LCAtMC4wMDg3NSwgLTAuMDA2MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEJiFFIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9FX0VRXzAgPT0gMSdiMSI7Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQzNzUsIDAuMDM4NzUsIDAuMDI2MjUsIDAuMDIsIDAuMDEzNzUsIDAuMDAzNzUsIDAuMDAxMjUiLCBcCi0gICAgICAgICAgIjAuMDU1LCAwLjA0Mzc1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMTg3NSwgMC4wMDg3NSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiMC4wNTUsIDAuMDUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMjUsIDAuMDE1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMDYxMjUsIDAuMDUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMjEyNSwgMC4wMTI1IiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDU2MjUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMjEyNSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4wNzEyNSwgMC4wNiwgMC4wNDc1LCAwLjA0MTI1LCAwLjAzNSwgMC4wMzEyNSwgMC4wMjI1IiwgXAotICAgICAgICAgICIwLjA3Mzc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzM3NSwgMC4wMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIkQmRSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzFfQU5fRV9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5Mzc1LCAwLjA4ODc1LCAwLjA4MjUsIDAuMDc2MjUsIDAuMDcsIDAuMDY2MjUsIDAuMDYzNzUiLCBcCi0gICAgICAgICAgIjAuMDk4NzUsIDAuMDkzNzUsIDAuMDg3NSwgMC4wODEyNSwgMC4wODEyNSwgMC4wNzc1LCAwLjA3NSIsIFwKLSAgICAgICAgICAiMC4xMDUsIDAuMSwgMC4wOTM3NSwgMC4wODc1LCAwLjA4NzUsIDAuMDgzNzUsIDAuMDc1IiwgXAotICAgICAgICAgICIwLjExMTI1LCAwLjEsIDAuMDkzNzUsIDAuMDkzNzUsIDAuMDg3NSwgMC4wODM3NSwgMC4wODEyNSIsIFwKLSAgICAgICAgICAiMC4xMTEyNSwgMC4xMDYyNSwgMC4xLCAwLjA5Mzc1LCAwLjA5Mzc1LCAwLjA5LCAwLjA4NzUiLCBcCi0gICAgICAgICAgIjAuMTE1LCAwLjExLCAwLjEwMzc1LCAwLjA5NzUsIDAuMDk3NSwgMC4wOTM3NSwgMC4wOTEyNSIsIFwKLSAgICAgICAgICAiMC4xMjM3NSwgMC4xMTI1LCAwLjEwNjI1LCAwLjEsIDAuMSwgMC4wOTYyNSwgMC4wOTM3NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogRURGRlgxICoKLSAqIC0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoRURGRlgxKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDEuMDQzMDU7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgZmYgKE4zMCxRQklOVCkgewotICAgIG5leHRfc3RhdGUgOiAiKChFIEQpICsgKCFFICghKCFOMzApKSkpIjsKLSAgICBjbG9ja2VkX29uIDogIkNLIjsKLSAgfQotICBwaW4oQ0spICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY2NjI3NDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2NjYyNzQ7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjY2MjY7Ci0gICAgY2xvY2sgOiB0cnVlOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzcyLCAwLjAwMzcyMSwgMC4wMDM3OTIsIDAuMDAzOTAyLCAwLjAwNDAxOSwgMC4wMDQyNDYsIDAuMDA0NDQxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA2OTE0LCAwLjAwNjkyMywgMC4wMDcwMTcsIDAuMDA3MTM4LCAwLjAwNzI4NiwgMC4wMDc1OTYsIDAuMDA3OCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQmRSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fRV9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMTEyMzk4LCAwLjEyMDQ3NywgMC4xMjg5OTEsIDAuMTM1MTc5LCAwLjE0MDM3OSwgMC4xNDcxNSwgMC4xNTIyMDgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjA1Nzg3NSwgMC4wNjU4OCwgMC4wNzQyNzUsIDAuMDgwMjksIDAuMDg1MjE0LCAwLjA5MTYxOSwgMC4wOTYyNTMiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEQpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY1MTQ1NjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2NTAxMDQ7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjUxNDU2OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzI4OCwgMC4wMDMyNjUsIDAuMDAzMjc4LCAwLjAwMzMyNiwgMC4wMDMzODQsIDAuMDAzNDkxLCAwLjAwMzYwNyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNjAyMiwgMC4wMDYwMDQsIDAuMDA2MDE3LCAwLjAwNjA2MiwgMC4wMDYxMjcsIDAuMDA2MjIzLCAwLjAwNjM0NiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJFIjsKLSAgICAgIHNkZl9jb25kIDogIkUgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDM3NSwgLTAuMDMyNSwgLTAuMDI2MjUsIC0wLjAyNjI1LCAtMC4wMjYyNSwgLTAuMDIyNSwgLTAuMDIiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzNzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMzEyNSwgLTAuMDI3NSwgLTAuMDI1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDQzNzUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzc1LCAtMC4wMzM3NSwgLTAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjA1NSwgLTAuMDUsIC0wLjA1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjA0LCAtMC4wMzc1IiwgXAotICAgICAgICAgICItMC4wNjEyNSwgLTAuMDU2MjUsIC0wLjA1NjI1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjA0NjI1LCAtMC4wNDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDcxMjUsIC0wLjA2NjI1LCAtMC4wNjYyNSwgLTAuMDYsIC0wLjA2LCAtMC4wNTYyNSwgLTAuMDUzNzUiLCBcCi0gICAgICAgICAgIi0wLjA4LCAtMC4wNzUsIC0wLjA2ODc1LCAtMC4wNjg3NSwgLTAuMDY4NzUsIC0wLjA2NSwgLTAuMDYyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAxODc1LCAtMC4wMTM3NSwgLTAuMDAxMjUsIC0wLjAwMTI1LCAwLjAwNSwgMC4wMDg3NSwgMC4wMTEyNSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMCwgMC4wMDM3NSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAtMC4wMDI1LCAwIiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwODc1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDE1LCAtMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wNDYyNSwgLTAuMDQxMjUsIC0wLjAzNSwgLTAuMDI4NzUsIC0wLjAyODc1LCAtMC4wMTg3NSwgLTAuMDE2MjUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAyNzUsIC0wLjAyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiRSI7Ci0gICAgICBzZGZfY29uZCA6ICJFID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1NjI1LCAwLjA1MTI1LCAwLjA0NSwgMC4wNDUsIDAuMDM4NzUsIDAuMDM1LCAwLjAzMjUiLCBcCi0gICAgICAgICAgIjAuMDY3NSwgMC4wNTYyNSwgMC4wNSwgMC4wNSwgMC4wNDM3NSwgMC4wNDYyNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4wNzM3NSwgMC4wNjI1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDU2MjUsIDAuMDUyNSwgMC4wNSIsIFwKLSAgICAgICAgICAiMC4wOCwgMC4wNzUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNjI1LCAwLjA1ODc1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICIwLjA4NjI1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjg3NSwgMC4wNjUsIDAuMDYyNSIsIFwKLSAgICAgICAgICAiMC4wOTYyNSwgMC4wOTEyNSwgMC4wODUsIDAuMDc4NzUsIDAuMDc4NzUsIDAuMDc1LCAwLjA3MjUiLCBcCi0gICAgICAgICAgIjAuMTA1LCAwLjA5Mzc1LCAwLjA4NzUsIDAuMDg3NSwgMC4wODEyNSwgMC4wODM3NSwgMC4wODEyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1LCAwLjAzODc1LCAwLjAzMjUsIDAuMDI2MjUsIDAuMDIsIDAuMDE2MjUsIDAuMDEzNzUiLCBcCi0gICAgICAgICAgIjAuMDU1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDI1LCAwLjAyMTI1LCAwLjAxODc1IiwgXAotICAgICAgICAgICIwLjA2MTI1LCAwLjA1NjI1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDM3NSwgMC4wMjc1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiMC4wNjc1LCAwLjA2MjUsIDAuMDUsIDAuMDQzNzUsIDAuMDQzNzUsIDAuMDMzNzUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMDczNzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNSwgMC4wNSwgMC4wNCwgMC4wMzc1IiwgXAotICAgICAgICAgICIwLjA4Mzc1LCAwLjA3MjUsIDAuMDY2MjUsIDAuMDYsIDAuMDUzNzUsIDAuMDUsIDAuMDQxMjUiLCBcCi0gICAgICAgICAgIjAuMDg2MjUsIDAuMDgxMjUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNjI1LCAwLjA1MjUsIDAuMDUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEUpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTQ2Mzg7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNDYzNDM7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNDYzODsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDU2MjMsIDAuMDA1NjM3LCAwLjAwNTcxOSwgMC4wMDU4MzMsIDAuMDA1OTY4LCAwLjAwNjE5NSwgMC4wMDY0MzciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDcwOTUsIDAuMDA3MTI2LCAwLjAwNzIzLCAwLjAwNzQxMywgMC4wMDc2MzQsIDAuMDA4MDE0LCAwLjAwODM1MiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRCI7Ci0gICAgICBzZGZfY29uZCA6ICJEID09IDEnYjAiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjA0Mzc1LCAtMC4wMzI1LCAtMC4wMjYyNSwgLTAuMDIsIC0wLjAyLCAtMC4wMSwgLTAuMDA3NSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMjEyNSwgLTAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMjc1LCAtMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDYxMjUsIC0wLjA1NjI1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDM3NSwgLTAuMDI3NSwgLTAuMDI1IiwgXAotICAgICAgICAgICItMC4wNjc1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzM3NSwgLTAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjA3MTI1LCAtMC4wNiwgLTAuMDUzNzUsIC0wLjA0NzUsIC0wLjA0MTI1LCAtMC4wMzc1LCAtMC4wMzUiLCBcCi0gICAgICAgICAgIi0wLjA3Mzc1LCAtMC4wNjg3NSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNSwgLTAuMDQsIC0wLjAzNzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLCAwLjAwNSwgMC4wMTEyNSwgMC4wMTc1LCAwLjAyMzc1LCAwLjAyNzUsIDAuMDMiLCBcCi0gICAgICAgICAgIi0wLjAwNSwgMCwgMC4wMDYyNSwgMC4wMTI1LCAwLjAxMjUsIDAuMDE2MjUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjAxNzUsIC0wLjAwNjI1LCAwLCAwLCAwLjAwNjI1LCAwLjAxLCAwLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjAxNzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAtMC4wMDYyNSwgMCwgMC4wMDM3NSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgLTAuMDA2MjUsIDAuMDAzNzUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjAzMzc1LCAtMC4wMjI1LCAtMC4wMTYyNSwgLTAuMDE2MjUsIC0wLjAxLCAtMC4wMDYyNSwgLTAuMDAzNzUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDE4NzUsIC0wLjAwODc1LCAtMC4wMDYyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJEIjsKLSAgICAgIHNkZl9jb25kIDogIkQgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDM3NSwgLTAuMDMyNSwgLTAuMDI2MjUsIC0wLjAyNjI1LCAtMC4wMjYyNSwgLTAuMDIyNSwgLTAuMDIiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzNzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMzEyNSwgLTAuMDI3NSwgLTAuMDI1IiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjA0LCAtMC4wMzc1IiwgXAotICAgICAgICAgICItMC4wNjEyNSwgLTAuMDU2MjUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDUsIC0wLjA0NjI1LCAtMC4wNDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDczNzUsIC0wLjA2ODc1LCAtMC4wNjI1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDUyNSwgLTAuMDUiLCBcCi0gICAgICAgICAgIi0wLjA4Mzc1LCAtMC4wNzg3NSwgLTAuMDcyNSwgLTAuMDcyNSwgLTAuMDY2MjUsIC0wLjA2MjUsIC0wLjA2IiwgXAotICAgICAgICAgICItMC4wOTI1LCAtMC4wODEyNSwgLTAuMDgxMjUsIC0wLjA3NSwgLTAuMDc1LCAtMC4wNzEyNSwgLTAuMDY4NzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjI1LCAwLjAxMTI1LCAwLjAxNzUsIDAuMDIzNzUsIDAuMDMsIDAuMDMzNzUsIDAuMDM2MjUiLCBcCi0gICAgICAgICAgIjAuMDAxMjUsIDAuMDA2MjUsIDAuMDEyNSwgMC4wMTg3NSwgMC4wMjUsIDAuMDI4NzUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjAxMTI1LCAwLCAwLjAwNjI1LCAwLjAxMjUsIDAuMDEyNSwgMC4wMjI1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDExMjUsIC0wLjAwNjI1LCAwLCAwLjAwNjI1LCAwLjAwNjI1LCAwLjAxNjI1LCAwLjAxODc1IiwgXAotICAgICAgICAgICItMC4wMTc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMCwgMCwgMC4wMSwgMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wMjc1LCAtMC4wMTYyNSwgLTAuMDE2MjUsIC0wLjAxLCAtMC4wMDM3NSwgMCwgMC4wMDI1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDEyNSwgLTAuMDAyNSwgMCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUQiOwotICAgICAgc2RmX2NvbmQgOiAiRCA9PSAxJ2IwIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTYyNSwgMC4wNDUsIDAuMDM4NzUsIDAuMDMyNSwgMC4wMjYyNSwgMC4wMjI1LCAwLjAyIiwgXAotICAgICAgICAgICIwLjA2MTI1LCAwLjA1NjI1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDM3NSwgMC4wMjc1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiMC4wNjc1LCAwLjA2MjUsIDAuMDUsIDAuMDQzNzUsIDAuMDQzNzUsIDAuMDMzNzUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMDczNzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNSwgMC4wNDM3NSwgMC4wNCwgMC4wMzc1IiwgXAotICAgICAgICAgICIwLjA3Mzc1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDUsIDAuMDQ2MjUsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiMC4wODM3NSwgMC4wNzI1LCAwLjA2NjI1LCAwLjA2LCAwLjA1Mzc1LCAwLjA1LCAwLjA0MTI1IiwgXAotICAgICAgICAgICIwLjA4NjI1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1MjUsIDAuMDUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzc1LCAwLjAzMjUsIDAuMDI2MjUsIDAuMDI2MjUsIDAuMDIsIDAuMDIyNSwgMC4wMiIsIFwKLSAgICAgICAgICAiMC4wNDI1LCAwLjAzNzUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMzEyNSwgMC4wMjc1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiMC4wNTUsIDAuMDUsIDAuMDQzNzUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzM3NSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4wNTUsIDAuMDUsIDAuMDUsIDAuMDUsIDAuMDQzNzUsIDAuMDQsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiMC4wNjEyNSwgMC4wNTYyNSwgMC4wNTYyNSwgMC4wNSwgMC4wNSwgMC4wNDYyNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4wNjUsIDAuMDYsIDAuMDYsIDAuMDUzNzUsIDAuMDUzNzUsIDAuMDUsIDAuMDQ3NSIsIFwKLSAgICAgICAgICAiMC4wNzM3NSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDUyNSwgMC4wNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiRCI7Ci0gICAgICBzZGZfY29uZCA6ICJEID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1NjI1LCAwLjA0NSwgMC4wMzg3NSwgMC4wMzg3NSwgMC4wMzI1LCAwLjAzNSwgMC4wMzI1IiwgXAotICAgICAgICAgICIwLjA2MTI1LCAwLjA1NjI1LCAwLjA1LCAwLjA0Mzc1LCAwLjA0Mzc1LCAwLjA0LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIjAuMDczNzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNTYyNSwgMC4wNSwgMC4wNTI1LCAwLjA1IiwgXAotICAgICAgICAgICIwLjA4LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA2MjUsIDAuMDU4NzUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIjAuMDg2MjUsIDAuMDgxMjUsIDAuMDc1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjUsIDAuMDYyNSIsIFwKLSAgICAgICAgICAiMC4xMDI1LCAwLjA5MTI1LCAwLjA4NSwgMC4wODUsIDAuMDc4NzUsIDAuMDc1LCAwLjA3MjUiLCBcCi0gICAgICAgICAgIjAuMTExMjUsIDAuMSwgMC4wOTM3NSwgMC4wOTM3NSwgMC4wODc1LCAwLjA4Mzc1LCAwLjA4MTI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE4NzUsIDAuMDEzNzUsIDAuMDA3NSwgMC4wMDEyNSwgLTAuMDA1LCAtMC4wMDg3NSwgLTAuMDExMjUiLCBcCi0gICAgICAgICAgIjAuMDMsIDAuMDE4NzUsIDAuMDEyNSwgMC4wMDYyNSwgMC4wMDYyNSwgLTAuMDAzNzUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICIwLjAzNjI1LCAwLjAzMTI1LCAwLjAxODc1LCAwLjAxODc1LCAwLjAxMjUsIDAuMDA4NzUsIDAiLCBcCi0gICAgICAgICAgIjAuMDQyNSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMTg3NSwgMC4wMTUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4wNDg3NSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMjEyNSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4wNTg3NSwgMC4wNDc1LCAwLjA0MTI1LCAwLjA0MTI1LCAwLjAzNSwgMC4wMzEyNSwgMC4wMjI1IiwgXAotICAgICAgICAgICIwLjA2MTI1LCAwLjA1NjI1LCAwLjA1LCAwLjA0Mzc1LCAwLjA0Mzc1LCAwLjAzMzc1LCAwLjAzMTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihRKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMzQ0MzQ7Ci0gICAgZnVuY3Rpb24gOiAiTjMwIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBub25fdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJpc2luZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTQ1OTUsIDAuMTEzMDA2LCAwLjIxNzA0NiwgMC4zMDg4MzQsIDAuNDMxMjc3LCAwLjY3NTc3NiwgMC44Mjg3NzUiLCBcCi0gICAgICAgICAgIjAuMTAyNjM1LCAwLjEyMTA0OCwgMC4yMjUwOTMsIDAuMzE3MDUsIDAuNDM5MzEyLCAwLjY4Mzg3MSwgMC44MzY4MTYiLCBcCi0gICAgICAgICAgIjAuMTEwOTEzLCAwLjEyOTMyNSwgMC4yMzMzNjMsIDAuMzI1MzQsIDAuNDQ3NTkzLCAwLjY5MjA3NiwgMC44NDUwOTEiLCBcCi0gICAgICAgICAgIjAuMTE3MDc3LCAwLjEzNTQ5OCwgMC4yMzk1MzIsIDAuMzMxNDksIDAuNDUzNzU1LCAwLjY5ODM0NiwgMC44NTEyODMiLCBcCi0gICAgICAgICAgIjAuMTIyMDEyLCAwLjE0MDQ1NywgMC4yNDQ0NjksIDAuMzM2NDExLCAwLjQ1ODcwOSwgMC43MDMzNDEsIDAuODU2MTQ3IiwgXAotICAgICAgICAgICIwLjEyODg1NiwgMC4xNDcyMzQsIDAuMjUxMjEyLCAwLjM0MzEzOSwgMC40NjU0NywgMC43MTAxNjgsIDAuODYyODA2IiwgXAotICAgICAgICAgICIwLjEzMzc1MiwgMC4xNTIyMywgMC4yNTY0MiwgMC4zNDgxMSwgMC40NzA1LCAwLjcxNDkyMSwgMC44Njc4MDQiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDcxMTUyLCAwLjEwOTA5MywgMC4zMjY2NTksIDAuNTE5NjA5LCAwLjc3Nzc1MiwgMS4yOTA5NiwgMS42MTQ2OCIsIFwKLSAgICAgICAgICAiMC4wNzExMzYsIDAuMTA5MTAzLCAwLjMyNjY5LCAwLjUyMDIzNSwgMC43Nzc3NDYsIDEuMjkyNzQsIDEuNjE0NjciLCBcCi0gICAgICAgICAgIjAuMDcxMTQ5LCAwLjEwOTEwMywgMC4zMjY2NTksIDAuNTIwMjU1LCAwLjc3Nzc0MywgMS4yOTE0MiwgMS42MTQ2NyIsIFwKLSAgICAgICAgICAiMC4wNzEwOTIsIDAuMTA5MDk3LCAwLjMyNjY4NywgMC41MjAyNDQsIDAuNzc3NzM5LCAxLjI5Mjc1LCAxLjYxNDY5IiwgXAotICAgICAgICAgICIwLjA3MTE3MywgMC4xMDkxMTksIDAuMzI2NjYzLCAwLjUyMDIzMywgMC43Nzc3MzgsIDEuMjkyOCwgMS42MTQ2MSIsIFwKLSAgICAgICAgICAiMC4wNzEzNjcsIDAuMTA5MDE1LCAwLjMyNjY3NCwgMC41MjAxNDcsIDAuNzc3NjU3LCAxLjI5MjY2LCAxLjYxNDQ0IiwgXAotICAgICAgICAgICIwLjA3MTI4MSwgMC4xMDg5ODksIDAuMzI3MDQxLCAwLjUyMDE3MiwgMC43Nzc2NzYsIDEuMjkxMDUsIDEuNjExOTgiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTAzMjA3LCAwLjEyMTM4MywgMC4yMjQ2NDQsIDAuMzE0OTk1LCAwLjQzNTk5OCwgMC42Nzc1NjgsIDAuODI5MjYiLCBcCi0gICAgICAgICAgIjAuMTExMjgyLCAwLjEyOTQ3NiwgMC4yMzI3MzQsIDAuMzIzMTksIDAuNDQ0MDUxLCAwLjY4NTgzNCwgMC44MzczNzIiLCBcCi0gICAgICAgICAgIjAuMTE5NzYsIDAuMTM3OTQyLCAwLjI0MTIwNiwgMC4zMzEyMjcsIDAuNDUyNTU5LCAwLjY5NDU1NiwgMC44NDU3NjYiLCBcCi0gICAgICAgICAgIjAuMTI1OTg4LCAwLjE0NDE2MywgMC4yNDcyMjIsIDAuMzM3OTU2LCAwLjQ1ODgxNSwgMC43MDA3MTYsIDAuODUwNzcxIiwgXAotICAgICAgICAgICIwLjEzMTE4MiwgMC4xNDkzNTIsIDAuMjUyNjMyLCAwLjM0MzEsIDAuNDY0MDE2LCAwLjcwNTk4MSwgMC44NTczOTIiLCBcCi0gICAgICAgICAgIjAuMTM3OTQ0LCAwLjE1NjA2MiwgMC4yNTkwNDMsIDAuMzQ5OTIzLCAwLjQ3MDc1NiwgMC43MTI2MjMsIDAuODYyNzk2IiwgXAotICAgICAgICAgICIwLjE0Mjk3OSwgMC4xNjExMzIsIDAuMjY0MzM0LCAwLjM1NDc5NSwgMC40NzU4NzMsIDAuNzE3NjYsIDAuODY4NzYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY5ODMyLCAwLjEwNjI5NSwgMC4zMTUwNjgsIDAuNTAzMjcyLCAwLjc1MTM1NiwgMS4yNDcyMiwgMS41NTk5MiIsIFwKLSAgICAgICAgICAiMC4wNjk4MzcsIDAuMTA2MjkzLCAwLjMxNjYzNiwgMC41MDI5MTUsIDAuNzUxMzg0LCAxLjI0ODU0LCAxLjU1OTk0IiwgXAotICAgICAgICAgICIwLjA2OTg0NCwgMC4xMDYyOTksIDAuMzE2NTM2LCAwLjUwMzQ4OCwgMC43NTEzMTksIDEuMjQ4NjgsIDEuNTU5ODgiLCBcCi0gICAgICAgICAgIjAuMDY5ODMxLCAwLjEwNjI5MSwgMC4zMTY1MzQsIDAuNTAzMDMzLCAwLjc1MTMwOCwgMS4yNDg2LCAxLjU2MDI1IiwgXAotICAgICAgICAgICIwLjA2OTc5MSwgMC4xMDYzMDMsIDAuMzE2MzQ0LCAwLjUwMjk4OSwgMC43NTEwNDIsIDEuMjQ4NzIsIDEuNTU3MjUiLCBcCi0gICAgICAgICAgIjAuMDY5Nzg4LCAwLjEwNTkwNywgMC4zMTY5MjYsIDAuNTAyODUyLCAwLjc1MTM1LCAxLjI0ODY4LCAxLjU2MTg3IiwgXAotICAgICAgICAgICIwLjA2OTIyMywgMC4xMDYwOTQsIDAuMzE2MiwgMC41MDMxODUsIDAuNzUxMDExLCAxLjI0ODYsIDEuNTU5NzEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1MjE2LCAwLjAwNTIyNiwgMC4wMDUyMzksIDAuMDA1MjQyLCAwLjAwNTI0MywgMC4wMDUyNDQsIDAuMDA1MjQ0IiwgXAotICAgICAgICAgICIwLjAwNTIyMiwgMC4wMDUyMzIsIDAuMDA1MjQ1LCAwLjAwNTI0OCwgMC4wMDUyNDksIDAuMDA1MjQ4LCAwLjAwNTI1MSIsIFwKLSAgICAgICAgICAiMC4wMDUyNTEsIDAuMDA1MjYsIDAuMDA1Mjc0LCAwLjAwNTI3NiwgMC4wMDUyNzgsIDAuMDA1Mjc5LCAwLjAwNTI3OSIsIFwKLSAgICAgICAgICAiMC4wMDUzMTMsIDAuMDA1MzIzLCAwLjAwNTMzNiwgMC4wMDUzMzksIDAuMDA1MzQsIDAuMDA1MzQyLCAwLjAwNTM0MSIsIFwKLSAgICAgICAgICAiMC4wMDUzOCwgMC4wMDUzOSwgMC4wMDU0MDMsIDAuMDA1NDA2LCAwLjAwNTQwNywgMC4wMDU0MDgsIDAuMDA1NDA5IiwgXAotICAgICAgICAgICIwLjAwNTQ3OSwgMC4wMDU0ODcsIDAuMDA1NTEyLCAwLjAwNTUxNSwgMC4wMDU1MDYsIDAuMDA1NTA4LCAwLjAwNTUxOCIsIFwKLSAgICAgICAgICAiMC4wMDU1NzksIDAuMDA1NTg4LCAwLjAwNTYwMSwgMC4wMDU2MDYsIDAuMDA1NjA3LCAwLjAwNTYwNywgMC4wMDU2MDciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDU1NDMsIDAuMDA1NTU0LCAwLjAwNTU2NywgMC4wMDU1NywgMC4wMDU1NzIsIDAuMDA1NTczLCAwLjAwNTU3NCIsIFwKLSAgICAgICAgICAiMC4wMDU1NTcsIDAuMDA1NTY2LCAwLjAwNTU4LCAwLjAwNTU4MywgMC4wMDU1ODQsIDAuMDA1NTg2LCAwLjAwNTU4NiIsIFwKLSAgICAgICAgICAiMC4wMDU2LCAwLjAwNTYxLCAwLjAwNTYyMywgMC4wMDU2MjYsIDAuMDA1NjI4LCAwLjAwNTYyOSwgMC4wMDU2MjkiLCBcCi0gICAgICAgICAgIjAuMDA1NjY3LCAwLjAwNTY3NywgMC4wMDU2OTEsIDAuMDA1Njk0LCAwLjAwNTY5NSwgMC4wMDU2OTcsIDAuMDA1Njk4IiwgXAotICAgICAgICAgICIwLjAwNTc0MSwgMC4wMDU3NTEsIDAuMDA1NzY0LCAwLjAwNTc2NywgMC4wMDU3NjksIDAuMDA1NzcsIDAuMDA1NzciLCBcCi0gICAgICAgICAgIjAuMDA1ODUsIDAuMDA1ODY4LCAwLjAwNTg4MSwgMC4wMDU4NzUsIDAuMDA1ODc3LCAwLjAwNTg4NiwgMC4wMDU4NzgiLCBcCi0gICAgICAgICAgIjAuMDA1OTU5LCAwLjAwNTk2NywgMC4wMDU5ODMsIDAuMDA1OTg1LCAwLjAwNTk4NSwgMC4wMDU5ODgsIDAuMDA1OTg3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihRTikgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjMzMzM1OTsKLSAgICBmdW5jdGlvbiA6ICJRQklOVCI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3NlbnNlIDogbm9uX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiByaXNpbmdfZWRnZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTEyMzk4LCAwLjEzMTQzNiwgMC4yMzkzNTcsIDAuMzM0NDcxLCAwLjQ2MTMwOCwgMC43MTUwODUsIDAuODczNzEzIiwgXAotICAgICAgICAgICIwLjEyMDQ3NywgMC4xMzk1MTQsIDAuMjQ3NDQxLCAwLjM0MjUzMSwgMC40NjkzOCwgMC43MjMwOTgsIDAuODgxODA0IiwgXAotICAgICAgICAgICIwLjEyODk5MSwgMC4xNDgwMzIsIDAuMjU1OTU3LCAwLjM1MDk2OSwgMC40Nzc5MDgsIDAuNzMxNjg4LCAwLjg5MDI5NSIsIFwKLSAgICAgICAgICAiMC4xMzUxNzksIDAuMTU0MjE4LCAwLjI2MjExMSwgMC4zNTcyNTQsIDAuNDg0MTA0LCAwLjczNzg1NCwgMC44OTYzNjEiLCBcCi0gICAgICAgICAgIjAuMTQwMzc5LCAwLjE1OTQxMywgMC4yNjczNCwgMC4zNjI0MzIsIDAuNDg5Mjk4LCAwLjc0MzA2OSwgMC45MDE3NSIsIFwKLSAgICAgICAgICAiMC4xNDcxNSwgMC4xNjYwNDYsIDAuMjczOTE1LCAwLjM2OTIxNSwgMC40OTYwNTUsIDAuNzQ5NzA1LCAwLjkwODMxMSIsIFwKLSAgICAgICAgICAiMC4xNTIyMDgsIDAuMTcxMjMyLCAwLjI3OTE0MywgMC4zNzQxNTUsIDAuNTAxMTU2LCAwLjc1NDc5LCAwLjkxMzQ1MSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzExNjUsIDAuMTEwODM3LCAwLjMzNTcyOSwgMC41MzQ2NjgsIDAuODAwODkyLCAxLjMyODk5LCAxLjY2MzU3IiwgXAotICAgICAgICAgICIwLjA3MTE2NCwgMC4xMTA4MzcsIDAuMzM1ODg1LCAwLjUzNTQ3NiwgMC44MDA4OTEsIDEuMzMxNjIsIDEuNjYzNiIsIFwKLSAgICAgICAgICAiMC4wNzExNjYsIDAuMTEwODQzLCAwLjMzNTg2MiwgMC41MzQ4MjUsIDAuODAwODg4LCAxLjMzMTY2LCAxLjY2MzU0IiwgXAotICAgICAgICAgICIwLjA3MTE2NSwgMC4xMTA4MzcsIDAuMzM1OTA1LCAwLjUzNTUyMSwgMC44MDA4OTcsIDEuMzMxNzQsIDEuNjYxNjEiLCBcCi0gICAgICAgICAgIjAuMDcxMTU4LCAwLjExMDgzMSwgMC4zMzU4NjgsIDAuNTM1NDk0LCAwLjgwMDg2MiwgMS4zMzE3NiwgMS42NjA2OSIsIFwKLSAgICAgICAgICAiMC4wNzExMzcsIDAuMTEwNzY3LCAwLjMzNjQ3OSwgMC41MzU0ODUsIDAuODAwODgxLCAxLjMzMTc0LCAxLjY2MTc3IiwgXAotICAgICAgICAgICIwLjA3MTIyNywgMC4xMTA2MzcsIDAuMzM1ODM4LCAwLjUzNTUxLCAwLjgwMDg3MiwgMS4zMzE3MiwgMS42NjM0MSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDM1OTksIDAuMTIxODM3LCAwLjIyNTEwNiwgMC4zMTYyMTQsIDAuNDM3NjczLCAwLjY4MDYxNiwgMC44MzI0MzkiLCBcCi0gICAgICAgICAgIjAuMTExNjU2LCAwLjEyOTg5MywgMC4yMzMxNiwgMC4zMjQyODEsIDAuNDQ1NzI2LCAwLjY4ODYyNSwgMC44NDA0OTYiLCBcCi0gICAgICAgICAgIjAuMTE5OTMzLCAwLjEzODE3LCAwLjI0MTQzOSwgMC4zMzI1NjMsIDAuNDU0MDA1LCAwLjY5NjkyNywgMC44NDg3NzEiLCBcCi0gICAgICAgICAgIjAuMTI2MDkxLCAwLjE0NDMzLCAwLjI0NzU5NywgMC4zMzg3MTgsIDAuNDYwMTY1LCAwLjcwMzA4MywgMC44NTQ5NDkiLCBcCi0gICAgICAgICAgIjAuMTMxMDEzLCAwLjE0OTI1MiwgMC4yNTI1MTMsIDAuMzQzNjMzLCAwLjQ2NTA5MywgMC43MDgwMzYsIDAuODU5ODI5IiwgXAotICAgICAgICAgICIwLjEzNzg2LCAwLjE1NjEsIDAuMjU5MjgxLCAwLjM1MDM4MywgMC40NzE5MDcsIDAuNzE0ODc3LCAwLjg2NjUzIiwgXAotICAgICAgICAgICIwLjE0Mjc1OCwgMC4xNjEwMjcsIDAuMjY0MjkyLCAwLjM1NTM3NSwgMC40NzY4NzUsIDAuNzE5Nzc0LCAwLjg3MTU4OCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjcwOTgsIDAuMTA0MzU2LCAwLjMxNjI1MiwgMC41MDM1NDYsIDAuNzUzODE2LCAxLjI1MTczLCAxLjU2NTkxIiwgXAotICAgICAgICAgICIwLjA2NzA5OCwgMC4xMDQzNTksIDAuMzE2MzE0LCAwLjUwNDAxMSwgMC43NTM4MDQsIDEuMjUzNDMsIDEuNTY1OTEiLCBcCi0gICAgICAgICAgIjAuMDY3MDk4LCAwLjEwNDM1NywgMC4zMTYyNTIsIDAuNTA0MDI5LCAwLjc1Mzc5OSwgMS4yNTEyOCwgMS41NjU4OCIsIFwKLSAgICAgICAgICAiMC4wNjcwOTgsIDAuMTA0MzY4LCAwLjMxNjMwNywgMC41MDQwMTMsIDAuNzUzNzk4LCAxLjI1MzQ2LCAxLjU2NTk0IiwgXAotICAgICAgICAgICIwLjA2NzEwNiwgMC4xMDQzOTQsIDAuMzE2MywgMC41MDM5OTMsIDAuNzUzODA4LCAxLjI1MzU3LCAxLjU2NTc0IiwgXAotICAgICAgICAgICIwLjA2NzA1NCwgMC4xMDQyNywgMC4zMTYyNjMsIDAuNTAzODg2LCAwLjc1MzYzNywgMS4yNTMzOCwgMS41NjU0NiIsIFwKLSAgICAgICAgICAiMC4wNjczMDksIDAuMTA0MTc0LCAwLjMxNjU2OCwgMC41MDM4OSwgMC43NTM3MzUsIDEuMjUxNzcsIDEuNTYzNDMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1NTQzLCAwLjAwNTU1NCwgMC4wMDU1NjcsIDAuMDA1NTcsIDAuMDA1NTcyLCAwLjAwNTU3MywgMC4wMDU1NzQiLCBcCi0gICAgICAgICAgIjAuMDA1NTU3LCAwLjAwNTU2NiwgMC4wMDU1OCwgMC4wMDU1ODMsIDAuMDA1NTg0LCAwLjAwNTU4NiwgMC4wMDU1ODYiLCBcCi0gICAgICAgICAgIjAuMDA1NiwgMC4wMDU2MSwgMC4wMDU2MjMsIDAuMDA1NjI2LCAwLjAwNTYyOCwgMC4wMDU2MjksIDAuMDA1NjI5IiwgXAotICAgICAgICAgICIwLjAwNTY2NywgMC4wMDU2NzcsIDAuMDA1NjkxLCAwLjAwNTY5NCwgMC4wMDU2OTUsIDAuMDA1Njk3LCAwLjAwNTY5OCIsIFwKLSAgICAgICAgICAiMC4wMDU3NDEsIDAuMDA1NzUxLCAwLjAwNTc2NCwgMC4wMDU3NjcsIDAuMDA1NzY5LCAwLjAwNTc3LCAwLjAwNTc3IiwgXAotICAgICAgICAgICIwLjAwNTg1LCAwLjAwNTg2OCwgMC4wMDU4ODEsIDAuMDA1ODc1LCAwLjAwNTg3NywgMC4wMDU4ODYsIDAuMDA1ODc4IiwgXAotICAgICAgICAgICIwLjAwNTk1OSwgMC4wMDU5NjcsIDAuMDA1OTgzLCAwLjAwNTk4NSwgMC4wMDU5ODUsIDAuMDA1OTg4LCAwLjAwNTk4NyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNTIxNiwgMC4wMDUyMjYsIDAuMDA1MjM5LCAwLjAwNTI0MiwgMC4wMDUyNDMsIDAuMDA1MjQ0LCAwLjAwNTI0NCIsIFwKLSAgICAgICAgICAiMC4wMDUyMjIsIDAuMDA1MjMyLCAwLjAwNTI0NSwgMC4wMDUyNDgsIDAuMDA1MjQ5LCAwLjAwNTI0OCwgMC4wMDUyNTEiLCBcCi0gICAgICAgICAgIjAuMDA1MjUxLCAwLjAwNTI2LCAwLjAwNTI3NCwgMC4wMDUyNzYsIDAuMDA1Mjc4LCAwLjAwNTI3OSwgMC4wMDUyNzkiLCBcCi0gICAgICAgICAgIjAuMDA1MzEzLCAwLjAwNTMyMywgMC4wMDUzMzYsIDAuMDA1MzM5LCAwLjAwNTM0LCAwLjAwNTM0MiwgMC4wMDUzNDEiLCBcCi0gICAgICAgICAgIjAuMDA1MzgsIDAuMDA1MzksIDAuMDA1NDAzLCAwLjAwNTQwNiwgMC4wMDU0MDcsIDAuMDA1NDA4LCAwLjAwNTQwOSIsIFwKLSAgICAgICAgICAiMC4wMDU0NzksIDAuMDA1NDg3LCAwLjAwNTUxMiwgMC4wMDU1MTUsIDAuMDA1NTA2LCAwLjAwNTUwOCwgMC4wMDU1MTgiLCBcCi0gICAgICAgICAgIjAuMDA1NTc5LCAwLjAwNTU4OCwgMC4wMDU2MDEsIDAuMDA1NjA2LCAwLjAwNTYwNywgMC4wMDU2MDcsIDAuMDA1NjA3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBFREZGWDQgKgotICogLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChFREZGWDQpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMS43NTA2NjsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBmZiAoTjMwLFFCSU5UKSB7Ci0gICAgbmV4dF9zdGF0ZSA6ICIoKEUgRCkgKyAoIUUgKCEoIU4zMCkpKSkiOwotICAgIGNsb2NrZWRfb24gOiAiQ0siOwotICB9Ci0gIHBpbihDSykgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjk2NzE3OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDY5NjcxNzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2OTY2OTg7Ci0gICAgY2xvY2sgOiB0cnVlOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzc4NCwgMC4wMDM3OTgsIDAuMDAzODUzLCAwLjAwMzk2MiwgMC4wMDQwNzcsIDAuMDA0MzAxLCAwLjAwNDQ5NiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNzE0NiwgMC4wMDcxNTQsIDAuMDA3MjQ2LCAwLjAwNzM2NiwgMC4wMDc1MTUsIDAuMDA3ODE1LCAwLjAwODA0NyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQmRSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fRV9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMTA0NTcsIDAuMTEyNjU1LCAwLjEyMTIzNywgMC4xMjc1ODksIDAuMTMyNzM3LCAwLjEzOTkyOCwgMC4xNDUwODMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjA1OTIzMywgMC4wNjcyOTQsIDAuMDc1Nzk2LCAwLjA4MTkyMSwgMC4wODY5NjksIDAuMDkzNDY4LCAwLjA5ODI5MSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjQ5MzAzOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDY0Nzk5NDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2NDkzMDM7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzMTAxLCAwLjAwMzA4MywgMC4wMDMxMDEsIDAuMDAzMTQ1LCAwLjAwMzIxMiwgMC4wMDMzNDUsIDAuMDAzNDQ3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA2MTM2LCAwLjAwNjExOSwgMC4wMDYxMzUsIDAuMDA2MTgyLCAwLjAwNjI0OCwgMC4wMDYzNDgsIDAuMDA2NDYxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIkUiOwotICAgICAgc2RmX2NvbmQgOiAiRSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMzc1LCAtMC4wMzI1LCAtMC4wMjYyNSwgLTAuMDI2MjUsIC0wLjAyLCAtMC4wMjI1LCAtMC4wMiIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAzMTI1LCAtMC4wMzEyNSwgLTAuMDI3NSwgLTAuMDI1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDQzNzUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzc1LCAtMC4wMzM3NSwgLTAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjA1NSwgLTAuMDUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDQzNzUsIC0wLjA0LCAtMC4wMzc1IiwgXAotICAgICAgICAgICItMC4wNjEyNSwgLTAuMDU2MjUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDUsIC0wLjA0NjI1LCAtMC4wNDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDcxMjUsIC0wLjA2NjI1LCAtMC4wNiwgLTAuMDYsIC0wLjA2LCAtMC4wNTYyNSwgLTAuMDUzNzUiLCBcCi0gICAgICAgICAgIi0wLjA3Mzc1LCAtMC4wNjg3NSwgLTAuMDY4NzUsIC0wLjA2ODc1LCAtMC4wNjI1LCAtMC4wNjUsIC0wLjA2MjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMTI1LCAtMC4wMDc1LCAtMC4wMDEyNSwgMC4wMDUsIDAuMDA1LCAwLjAwODc1LCAwLjAxNzUiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMCwgMCwgMC4wMDM3NSwgMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAxMjUsIC0wLjAwNjI1LCAtMC4wMDI1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDEyNSwgLTAuMDA4NzUsIDAiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDE4NzUsIC0wLjAwODc1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDQsIC0wLjAzNSwgLTAuMDI4NzUsIC0wLjAyODc1LCAtMC4wMjI1LCAtMC4wMTg3NSwgLTAuMDE2MjUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzNzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMzEyNSwgLTAuMDIxMjUsIC0wLjAxODc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJFIjsKLSAgICAgIHNkZl9jb25kIDogIkUgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDYyNSwgMC4wNTEyNSwgMC4wNDUsIDAuMDQ1LCAwLjAzODc1LCAwLjAzNSwgMC4wMzI1IiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDU2MjUsIDAuMDU2MjUsIDAuMDUsIDAuMDUsIDAuMDQ2MjUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMDczNzUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNTYyNSwgMC4wNTI1LCAwLjA1IiwgXAotICAgICAgICAgICIwLjA4LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA2MjUsIDAuMDU4NzUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIjAuMDg2MjUsIDAuMDgxMjUsIDAuMDc1LCAwLjA2ODc1LCAwLjA2ODc1LCAwLjA2NSwgMC4wNjI1IiwgXAotICAgICAgICAgICIwLjA5NjI1LCAwLjA5MTI1LCAwLjA4NSwgMC4wNzg3NSwgMC4wNzg3NSwgMC4wNzUsIDAuMDcyNSIsIFwKLSAgICAgICAgICAiMC4xMDUsIDAuMSwgMC4wOTM3NSwgMC4wODc1LCAwLjA4NzUsIDAuMDgzNzUsIDAuMDgxMjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNSwgMC4wMzg3NSwgMC4wMzI1LCAwLjAyNjI1LCAwLjAyLCAwLjAxNjI1LCAwLjAxMzc1IiwgXAotICAgICAgICAgICIwLjA1NSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMjEyNSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4wNjEyNSwgMC4wNTYyNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzNzUsIDAuMDI3NSwgMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMDY3NSwgMC4wNjI1LCAwLjA1LCAwLjA0Mzc1LCAwLjA0Mzc1LCAwLjAzMzc1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICIwLjA3Mzc1LCAwLjA2ODc1LCAwLjA1NjI1LCAwLjA1LCAwLjA1LCAwLjA0LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIjAuMDgzNzUsIDAuMDcyNSwgMC4wNjYyNSwgMC4wNiwgMC4wNTM3NSwgMC4wNSwgMC4wNDEyNSIsIFwKLSAgICAgICAgICAiMC4wODYyNSwgMC4wODEyNSwgMC4wNjg3NSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1MjUsIDAuMDUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEUpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTI0MjgxOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTI0MjgxOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTI0MTg7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA1NzE1LCAwLjAwNTcyNCwgMC4wMDU4MDMsIDAuMDA1OTQsIDAuMDA2MDYsIDAuMDA2MjczLCAwLjAwNjQ0OCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNzQwNSwgMC4wMDc0MzIsIDAuMDA3NTUyLCAwLjAwNzcyNiwgMC4wMDc5NDUsIDAuMDA4MzI5LCAwLjAwODY3MyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRCI7Ci0gICAgICBzZGZfY29uZCA6ICJEID09IDEnYjAiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjA0Mzc1LCAtMC4wMzg3NSwgLTAuMDI2MjUsIC0wLjAyLCAtMC4wMiwgLTAuMDEsIC0wLjAwNzUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDIxMjUsIC0wLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjA2MTI1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMjc1LCAtMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDYxMjUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAyNzUsIC0wLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDY3NSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDQzNzUsIC0wLjAzMzc1LCAtMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDcxMjUsIC0wLjA2NjI1LCAtMC4wNTM3NSwgLTAuMDQ3NSwgLTAuMDQ3NSwgLTAuMDM3NSwgLTAuMDM1IiwgXAotICAgICAgICAgICItMC4wNzM3NSwgLTAuMDY4NzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDQ2MjUsIC0wLjAzNzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMTI1LCAtMC4wMTM3NSwgLTAuMDA3NSwgLTAuMDA3NSwgLTAuMDA3NSwgLTAuMDAzNzUsIC0wLjAwMTI1IiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDE4NzUsIC0wLjAxODc1LCAtMC4wMTg3NSwgLTAuMDE4NzUsIC0wLjAxNSwgLTAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAyNSwgLTAuMDI1LCAtMC4wMjUsIC0wLjAyNSwgLTAuMDIxMjUsIC0wLjAxODc1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDMxMjUsIC0wLjAzMTI1LCAtMC4wMzEyNSwgLTAuMDMxMjUsIC0wLjAyNzUsIC0wLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAzNzUsIC0wLjAzNzUsIC0wLjAzNzUsIC0wLjAzNzUsIC0wLjAzMzc1LCAtMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDQ2MjUsIC0wLjA0MTI1LCAtMC4wNDEyNSwgLTAuMDQxMjUsIC0wLjA0MTI1LCAtMC4wMzc1LCAtMC4wMzUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wNDM3NSwgLTAuMDQsIC0wLjAzNzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiRCI7Ci0gICAgICBzZGZfY29uZCA6ICJEID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAzNzUsIC0wLjAzMjUsIC0wLjAyNjI1LCAtMC4wMjYyNSwgLTAuMDI2MjUsIC0wLjAyMjUsIC0wLjAyIiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzc1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDMxMjUsIC0wLjAyNzUsIC0wLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wNCwgLTAuMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDYxMjUsIC0wLjA1NjI1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjA1LCAtMC4wNDYyNSwgLTAuMDQzNzUiLCBcCi0gICAgICAgICAgIi0wLjA3Mzc1LCAtMC4wNjg3NSwgLTAuMDYyNSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA1MjUsIC0wLjA1IiwgXAotICAgICAgICAgICItMC4wODM3NSwgLTAuMDc4NzUsIC0wLjA3MjUsIC0wLjA3MjUsIC0wLjA2NjI1LCAtMC4wNjI1LCAtMC4wNiIsIFwKLSAgICAgICAgICAiLTAuMDkyNSwgLTAuMDg3NSwgLTAuMDgxMjUsIC0wLjA3NSwgLTAuMDc1LCAtMC4wNzEyNSwgLTAuMDY4NzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLCAwLjAxMTI1LCAwLjAxNzUsIDAuMDIzNzUsIDAuMDIzNzUsIDAuMDI3NSwgMC4wMzYyNSIsIFwKLSAgICAgICAgICAiLTAuMDA1LCAwLCAwLjAwNjI1LCAwLjAxMjUsIDAuMDE4NzUsIDAuMDIyNSwgMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjAxMTI1LCAtMC4wMDYyNSwgMCwgMC4wMDYyNSwgMC4wMTI1LCAwLjAxNjI1LCAwLjAxODc1IiwgXAotICAgICAgICAgICItMC4wMTc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMCwgMC4wMDYyNSwgMC4wMSwgMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDEyNSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAsIDAuMDAzNzUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjAyNzUsIC0wLjAyMjUsIC0wLjAxNjI1LCAtMC4wMSwgLTAuMDEsIC0wLjAwNjI1LCAwLjAwMjUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA4NzUsIC0wLjAwNjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRCI7Ci0gICAgICBzZGZfY29uZCA6ICJEID09IDEnYjAiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1NjI1LCAwLjA0NSwgMC4wMzg3NSwgMC4wMzI1LCAwLjAyNjI1LCAwLjAyMjUsIDAuMDIiLCBcCi0gICAgICAgICAgIjAuMDYxMjUsIDAuMDU2MjUsIDAuMDUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMjc1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiMC4wNjc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDUsIDAuMDQzNzUsIDAuMDMzNzUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMDczNzUsIDAuMDY4NzUsIDAuMDU2MjUsIDAuMDUsIDAuMDUsIDAuMDQsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiMC4wOCwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1LCAwLjA0NjI1LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIjAuMDgzNzUsIDAuMDcyNSwgMC4wNjYyNSwgMC4wNiwgMC4wNTM3NSwgMC4wNSwgMC4wNDc1IiwgXAotICAgICAgICAgICIwLjA4NjI1LCAwLjA4MTI1LCAwLjA2ODc1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDUyNSwgMC4wNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzMTI1LCAwLjAyNjI1LCAwLjAyNjI1LCAwLjAyLCAwLjAyLCAwLjAxNjI1LCAwLjAxMzc1IiwgXAotICAgICAgICAgICIwLjA0MjUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMzEyNSwgMC4wMjUsIDAuMDIxMjUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMDQ4NzUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzc1LCAwLjAzNzUsIDAuMDMzNzUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMDU1LCAwLjA1LCAwLjA0Mzc1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDQsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiMC4wNjEyNSwgMC4wNTYyNSwgMC4wNSwgMC4wNSwgMC4wNDM3NSwgMC4wNCwgMC4wMzc1IiwgXAotICAgICAgICAgICIwLjA2NSwgMC4wNiwgMC4wNTM3NSwgMC4wNTM3NSwgMC4wNDc1LCAwLjA0Mzc1LCAwLjA0MTI1IiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDYyNSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1NjI1LCAwLjA1MjUsIDAuMDUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIkQiOwotICAgICAgc2RmX2NvbmQgOiAiRCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTYyNSwgMC4wNTEyNSwgMC4wNDUsIDAuMDM4NzUsIDAuMDM4NzUsIDAuMDM1LCAwLjAzMjUiLCBcCi0gICAgICAgICAgIjAuMDYxMjUsIDAuMDU2MjUsIDAuMDUsIDAuMDQzNzUsIDAuMDQzNzUsIDAuMDQsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiMC4wNzM3NSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1NjI1LCAwLjA1MjUsIDAuMDUiLCBcCi0gICAgICAgICAgIjAuMDgsIDAuMDc1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDYyNSwgMC4wNTg3NSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiMC4wOTI1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNzUsIDAuMDY4NzUsIDAuMDY1LCAwLjA2MjUiLCBcCi0gICAgICAgICAgIjAuMTAyNSwgMC4wOTc1LCAwLjA5MTI1LCAwLjA4NSwgMC4wODUsIDAuMDgxMjUsIDAuMDc4NzUiLCBcCi0gICAgICAgICAgIjAuMTExMjUsIDAuMTA2MjUsIDAuMSwgMC4wOTM3NSwgMC4wODc1LCAwLjA5LCAwLjA4MTI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE4NzUsIDAuMDA3NSwgMC4wMDEyNSwgLTAuMDA1LCAtMC4wMTEyNSwgLTAuMDE1LCAtMC4wMTc1IiwgXAotICAgICAgICAgICIwLjAyMzc1LCAwLjAxODc1LCAwLjAwNjI1LCAwLjAwNjI1LCAwLCAtMC4wMDM3NSwgLTAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4wMywgMC4wMjUsIDAuMDE4NzUsIDAuMDEyNSwgMC4wMDYyNSwgMC4wMDI1LCAwIiwgXAotICAgICAgICAgICIwLjA0MjUsIDAuMDMxMjUsIDAuMDI1LCAwLjAxODc1LCAwLjAxODc1LCAwLjAwODc1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICIwLjA0ODc1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDI1LCAwLjAxODc1LCAwLjAxNSwgMC4wMTI1IiwgXAotICAgICAgICAgICIwLjA1MjUsIDAuMDQ3NSwgMC4wNDEyNSwgMC4wMzUsIDAuMDI4NzUsIDAuMDI1LCAwLjAyMjUiLCBcCi0gICAgICAgICAgIjAuMDYxMjUsIDAuMDUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzc1LCAwLjAyNzUsIDAuMDI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihRKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDEuMzQ5MDQ7Ci0gICAgZnVuY3Rpb24gOiAiTjMwIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBub25fdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJpc2luZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4MDEwOCwgMC4xMzY1MzksIDAuMTkxNjQ5LCAwLjIzMDg2NiwgMC4yOTM3MzQsIDAuMzQ5MTQ3LCAwLjQyNzUxMiIsIFwKLSAgICAgICAgICAiMC4wODgxNjgsIDAuMTQ0NjAxLCAwLjE5OTU1MywgMC4yMzkxNjMsIDAuMzAxNzY0LCAwLjM1NzE3MSwgMC40MzU1NzciLCBcCi0gICAgICAgICAgIjAuMDk2NjIxLCAwLjE1MzA0NiwgMC4yMDgzNDYsIDAuMjQ3NjI1LCAwLjMxMDIyMSwgMC4zNjU2MzUsIDAuNDQ0MDEyIiwgXAotICAgICAgICAgICIwLjEwMjg5NywgMC4xNTkzMjQsIDAuMjE0NTE4LCAwLjI1Mzk5LCAwLjMxNjUyMywgMC4zNzE5MzQsIDAuNDUwMjg5IiwgXAotICAgICAgICAgICIwLjEwNzk4OCwgMC4xNjQ0MjUsIDAuMjE5NDQ0LCAwLjI1OTA3LCAwLjMyMTYxOSwgMC4zNzcwMzMsIDAuNDU1Mzg1IiwgXAotICAgICAgICAgICIwLjExNDk4NCwgMC4xNzE0NSwgMC4yMjY2NTIsIDAuMjY2MDYzLCAwLjMyODY5OCwgMC4zODQxMDIsIDAuNDYyNDQzIiwgXAotICAgICAgICAgICIwLjEyMDE4NSwgMC4xNzY1NzYsIDAuMjMxNjE0LCAwLjI3MTEzLCAwLjMzNDA1MywgMC4zODg5OTIsIDAuNDY3Njg0Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDI2Mjc3LCAwLjEzODY2NSwgMC4yNTQwNDgsIDAuMzM2MzgxLCAwLjQ2ODkzMiwgMC41ODQ2ODMsIDAuNzUxOTc4IiwgXAotICAgICAgICAgICIwLjAyNjI2OSwgMC4xMzgzNTcsIDAuMjUzNTc3LCAwLjMzNjkwNCwgMC40NjkwMTcsIDAuNTg0NzIyLCAwLjc1MTk3MiIsIFwKLSAgICAgICAgICAiMC4wMjYyOCwgMC4xMzgyODQsIDAuMjUzNzQ1LCAwLjMzNjkwNywgMC40Njg5OTEsIDAuNTg0NjgzLCAwLjc1MTk2OCIsIFwKLSAgICAgICAgICAiMC4wMjYyODUsIDAuMTM4Njc4LCAwLjI1NDEwNiwgMC4zMzYzNTQsIDAuNDY4OTI4LCAwLjU4NDY4OSwgMC43NTE5NTkiLCBcCi0gICAgICAgICAgIjAuMDI2MjYxLCAwLjEzODY4MiwgMC4yNTM1MjQsIDAuMzM2Mzc3LCAwLjQ2ODkzMSwgMC41ODQ2ODgsIDAuNzUxOTUxIiwgXAotICAgICAgICAgICIwLjAyNjMxNCwgMC4xMzg3MjMsIDAuMjUzNzYyLCAwLjMzNjg3OCwgMC40Njg5MDEsIDAuNTg0NjYxLCAwLjc1MTg2OSIsIFwKLSAgICAgICAgICAiMC4wMjYyOTMsIDAuMTM4NjgyLCAwLjI1MzUxLCAwLjMzNjg2MSwgMC40Njk1NDgsIDAuNTg1Njk3LCAwLjc1MDYwNSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4NjQ0MiwgMC4xNDIxMTgsIDAuMTk2MDgsIDAuMjM0NzM0LCAwLjI5NzE0MSwgMC4zNTA5NCwgMC40MjgwMzMiLCBcCi0gICAgICAgICAgIjAuMDk0NTc5LCAwLjE1MDI2NSwgMC4yMDQ1MzksIDAuMjQzMTcxLCAwLjMwNTA1MiwgMC4zNTg2MDksIDAuNDM2MTY4IiwgXAotICAgICAgICAgICIwLjEwMzE1MiwgMC4xNTg4MywgMC4yMTI3NzMsIDAuMjUxNzQ5LCAwLjMxMzU5NCwgMC4zNjc2NjIsIDAuNDQ0NzI0IiwgXAotICAgICAgICAgICIwLjEwOTUwNywgMC4xNjUxODUsIDAuMjE5MTQ3LCAwLjI1Nzc3MywgMC4zMjAyMDMsIDAuMzczOTk5LCAwLjQ1MTA5MyIsIFwKLSAgICAgICAgICAiMC4xMTQ2NjEsIDAuMTcwMzQ1LCAwLjIyNDMxNywgMC4yNjMyNjQsIDAuMzI1MDc3LCAwLjM3OTI4OSwgMC40NTYyNTkiLCBcCi0gICAgICAgICAgIjAuMTIxODIzLCAwLjE3NzM2NSwgMC4yMzE4MzksIDAuMjcwNDQ5LCAwLjMzMjM5NywgMC4zODYyNjQsIDAuNDYzNDA1IiwgXAotICAgICAgICAgICIwLjEyNjk2OCwgMC4xODI2MTUsIDAuMjM3MTAyLCAwLjI3NTQ5MywgMC4zMzc0NzQsIDAuMzkxMjM4LCAwLjQ2ODczMyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyNTM2MSwgMC4xMzM4MzcsIDAuMjQ1MzIsIDAuMzI1ODYsIDAuNDUzMzYsIDAuNTY2NzUyLCAwLjcyNzU0NSIsIFwKLSAgICAgICAgICAiMC4wMjUzNzMsIDAuMTM1MDI5LCAwLjI0NTExNiwgMC4zMjYwNCwgMC40NTQwODIsIDAuNTY1OTc5LCAwLjcyNzUzNSIsIFwKLSAgICAgICAgICAiMC4wMjUzNzMsIDAuMTMzODIsIDAuMjQ1ODc4LCAwLjMyNjA4LCAwLjQ1MzUyNiwgMC41NjY3NDcsIDAuNzI3NTQxIiwgXAotICAgICAgICAgICIwLjAyNTQzOSwgMC4xMzM4MjMsIDAuMjQ1MzMsIDAuMzI0ODI3LCAwLjQ1MzQzMywgMC41NjY3NDksIDAuNzI3NTQyIiwgXAotICAgICAgICAgICIwLjAyNTQwMywgMC4xMzUwMzQsIDAuMjQ1NTQxLCAwLjMyNjAzMywgMC40NTQwODgsIDAuNTY2MzE2LCAwLjcyNzU0NyIsIFwKLSAgICAgICAgICAiMC4wMjUyNjIsIDAuMTM0OTg5LCAwLjI0NDk3MywgMC4zMjYwNDcsIDAuNDU0MDM5LCAwLjU2NjcwMiwgMC43Mjc0MjUiLCBcCi0gICAgICAgICAgIjAuMDI1MzIyLCAwLjEzNDM0NywgMC4yNDQ5MjYsIDAuMzI1Njk3LCAwLjQ1NDA2NiwgMC41NjY0MTgsIDAuNzI1NDA2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA5ODE3LCAwLjAwOTk5NSwgMC4wMTAwMjUsIDAuMDEwMDM0LCAwLjAxMDA0MiwgMC4wMTAwNDYsIDAuMDEwMDQ2IiwgXAotICAgICAgICAgICIwLjAwOTgxNSwgMC4wMDk5OTIsIDAuMDEwMDIyLCAwLjAxMDAzMSwgMC4wMTAwMzksIDAuMDEwMDQyLCAwLjAxMDA1IiwgXAotICAgICAgICAgICIwLjAwOTg1MSwgMC4wMTAwMjYsIDAuMDEwMDU1LCAwLjAxMDA2NSwgMC4wMTAwNzMsIDAuMDEwMDc3LCAwLjAxMDA4IiwgXAotICAgICAgICAgICIwLjAwOTkwNCwgMC4wMTAwODQsIDAuMDEwMTE0LCAwLjAxMDEyMywgMC4wMTAxMzQsIDAuMDEwMTM2LCAwLjAxMDE0IiwgXAotICAgICAgICAgICIwLjAwOTk3MiwgMC4wMTAxNTEsIDAuMDEwMTgyLCAwLjAxMDE5MSwgMC4wMTAyMDIsIDAuMDEwMjAzLCAwLjAxMDIwNyIsIFwKLSAgICAgICAgICAiMC4wMTAwODYsIDAuMDEwMjU1LCAwLjAxMDI4NCwgMC4wMTAyOTMsIDAuMDEwMywgMC4wMTAzMDUsIDAuMDEwMzA3IiwgXAotICAgICAgICAgICIwLjAxMDE4MiwgMC4wMTAzNTMsIDAuMDEwMzgyLCAwLjAxMDM5MywgMC4wMTA0LCAwLjAxMDQwMiwgMC4wMTA0MDciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMDU2MSwgMC4wMTA3MDEsIDAuMDEwNzI1LCAwLjAxMDczMiwgMC4wMTA3MzksIDAuMDEwNzM3LCAwLjAxMDc0NSIsIFwKLSAgICAgICAgICAiMC4wMTA1NTksIDAuMDEwNzA0LCAwLjAxMDcyOCwgMC4wMTA3MzYsIDAuMDEwNzQyLCAwLjAxMDc0NiwgMC4wMTA3NDkiLCBcCi0gICAgICAgICAgIjAuMDEwNjA5LCAwLjAxMDc1MSwgMC4wMTA3NzUsIDAuMDEwNzgyLCAwLjAxMDc4OSwgMC4wMTA3OTIsIDAuMDEwNzk1IiwgXAotICAgICAgICAgICIwLjAxMDY3MywgMC4wMTA4MTYsIDAuMDEwODQsIDAuMDEwODQ3LCAwLjAxMDg1NCwgMC4wMTA4NTIsIDAuMDEwODU3IiwgXAotICAgICAgICAgICIwLjAxMDc1LCAwLjAxMDg5NCwgMC4wMTA5MTgsIDAuMDEwOTI2LCAwLjAxMDkzMiwgMC4wMTA5MzUsIDAuMDEwOTM5IiwgXAotICAgICAgICAgICIwLjAxMDg1OCwgMC4wMTEwMDksIDAuMDExMDM3LCAwLjAxMTAzNiwgMC4wMTEwNDMsIDAuMDExMDQ2LCAwLjAxMTA0OSIsIFwKLSAgICAgICAgICAiMC4wMTA5NzMsIDAuMDExMTExLCAwLjAxMTEzNSwgMC4wMTExMzcsIDAuMDExMTQ5LCAwLjAxMTE1MywgMC4wMTExNTUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFFOKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDEuMzg0MjQ7Ci0gICAgZnVuY3Rpb24gOiAiUUJJTlQiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5vbl91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcmlzaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTA0NTcsIDAuMTU5NywgMC4yMTQ0NiwgMC4yNTM2MDgsIDAuMzE2NDE1LCAwLjM3MTE3NSwgMC40NDk0NzUiLCBcCi0gICAgICAgICAgIjAuMTEyNjU1LCAwLjE2NzgzMiwgMC4yMjI2NDUsIDAuMjYxODAyLCAwLjMyNDQ4NCwgMC4zNzkzMDQsIDAuNDU3NjA5IiwgXAotICAgICAgICAgICIwLjEyMTIzNywgMC4xNzYzOTcsIDAuMjMxMTUsIDAuMjcwMzY2LCAwLjMzMzA3NSwgMC4zODc4NzgsIDAuNDY2MTY4IiwgXAotICAgICAgICAgICIwLjEyNzU4OSwgMC4xODI3NSwgMC4yMzc1MzUsIDAuMjc2NjgsIDAuMzM5NDg4LCAwLjM5NDI0NiwgMC40NzI1NDYiLCBcCi0gICAgICAgICAgIjAuMTMyNzM3LCAwLjE4NzkxNSwgMC4yNDI2OTIsIDAuMjgxODg2LCAwLjM0NDU1LCAwLjM5OTQzNiwgMC40Nzc2OSIsIFwKLSAgICAgICAgICAiMC4xMzk5MjgsIDAuMTk0OTIyLCAwLjI0OTc5NSwgMC4yODkwNTcsIDAuMzUxNzU4LCAwLjQwNjU0LCAwLjQ4NDg1NCIsIFwKLSAgICAgICAgICAiMC4xNDUwODMsIDAuMjAwMjIxLCAwLjI1NTA2NywgMC4yOTQxODgsIDAuMzU2ODg0LCAwLjQxMTcyNCwgMC40OTAwNjIiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjUyNzUsIDAuMTM3NzAzLCAwLjI1MjkwMywgMC4zMzU2MjIsIDAuNDY3NzYxLCAwLjU4NDM2OCwgMC43NDk3OTciLCBcCi0gICAgICAgICAgIjAuMDI1MjczLCAwLjEzNzg1OSwgMC4yNTI5NDMsIDAuMzM2MTQ4LCAwLjQ2ODU4MSwgMC41ODM3NzgsIDAuNzQ5NzcyIiwgXAotICAgICAgICAgICIwLjAyNTI2OSwgMC4xMzc3LCAwLjI1MjczOCwgMC4zMzYxNTksIDAuNDY3NTQ3LCAwLjU4NDM5LCAwLjc0OTgxNCIsIFwKLSAgICAgICAgICAiMC4wMjUyNzUsIDAuMTM3NywgMC4yNTI5MDYsIDAuMzM1Mjc4LCAwLjQ2NzU1NiwgMC41ODQzNjcsIDAuNzQ5ODA3IiwgXAotICAgICAgICAgICIwLjAyNTI3NCwgMC4xMzc4NDYsIDAuMjUzMDUzLCAwLjMzNjE0OCwgMC40Njg1NDksIDAuNTgzMzE0LCAwLjc0OTgyMiIsIFwKLSAgICAgICAgICAiMC4wMjUyNjQsIDAuMTM3ODg5LCAwLjI1MjkxMiwgMC4zMzYxMjksIDAuNDY3NjUxLCAwLjU4NDM3OSwgMC43NDk3NDYiLCBcCi0gICAgICAgICAgIjAuMDI1MjcyLCAwLjEzNzY5NSwgMC4yNTI5MDksIDAuMzM1NzE4LCAwLjQ2NzcxNSwgMC41ODM0NzIsIDAuNzQ4NTgiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTkxMTgsIDAuMTUzNjY1LCAwLjIwNzcxMywgMC4yNDYzMzIsIDAuMzA4MTI2LCAwLjM2MjI1NCwgMC40Mzk0NDUiLCBcCi0gICAgICAgICAgIjAuMTA3MjA1LCAwLjE2MTc0OSwgMC4yMTU4LCAwLjI1NDQyNywgMC4zMTYyMTYsIDAuMzcwMzI2LCAwLjQ0NzUzMiIsIFwKLSAgICAgICAgICAiMC4xMTU2NTUsIDAuMTcwMTU5LCAwLjIyNDIzMiwgMC4yNjI4NDMsIDAuMzI0NjI4LCAwLjM3ODc0NSwgMC40NTU5NCIsIFwKLSAgICAgICAgICAiMC4xMjE5MjUsIDAuMTc2NDQ1LCAwLjIzMDUwMSwgMC4yNjkxMzYsIDAuMzMwOTA1LCAwLjM4NTAzMywgMC40NjIyMiIsIFwKLSAgICAgICAgICAiMC4xMjcwMzEsIDAuMTgxNTQsIDAuMjM1NTkxLCAwLjI3NDIyOCwgMC4zMzYsIDAuMzkwMTI5LCAwLjQ2NzMxNSIsIFwKLSAgICAgICAgICAiMC4xMzQwMDYsIDAuMTg4NjQzLCAwLjI0MjcsIDAuMjgxMzIxLCAwLjM0MzEsIDAuMzk3MjMyLCAwLjQ3NDQxNCIsIFwKLSAgICAgICAgICAiMC4xMzkyMTcsIDAuMTkzNzQzLCAwLjI0Nzc3LCAwLjI4NjM5NCwgMC4zNDgyMDIsIDAuNDAyMjQ2LCAwLjQ3OTU1MSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyNDM5MywgMC4xMzM4NTIsIDAuMjQ1OTcsIDAuMzI1OTUsIDAuNDU0NDQyLCAwLjU2NjM1NiwgMC43MjgyMTkiLCBcCi0gICAgICAgICAgIjAuMDI0MzkxLCAwLjEzMzc2MSwgMC4yNDU3NDgsIDAuMzI2MzU1LCAwLjQ1NDUxLCAwLjU2NjQ0NywgMC43MjgyMDgiLCBcCi0gICAgICAgICAgIjAuMDI0Mzk2LCAwLjEzMzczOSwgMC4yNDU3MTYsIDAuMzI2MzYxLCAwLjQ1NDQ5MSwgMC41NjYzOTYsIDAuNzI4MjAzIiwgXAotICAgICAgICAgICIwLjAyNDM5NSwgMC4xMzM4NTMsIDAuMjQ2MDMyLCAwLjMyNTgyNywgMC40NTQ0MzMsIDAuNTY2MzU5LCAwLjcyODE5MyIsIFwKLSAgICAgICAgICAiMC4wMjQzODksIDAuMTMzODUxLCAwLjI0NTc4NCwgMC4zMjU4MjIsIDAuNDU0NDM4LCAwLjU2NjM1OSwgMC43MjgxODYiLCBcCi0gICAgICAgICAgIjAuMDI0NDE2LCAwLjEzMzczOSwgMC4yNDU3NzEsIDAuMzI2MzE1LCAwLjQ1NDM2MSwgMC41NjYzMzMsIDAuNzI4MDY4IiwgXAotICAgICAgICAgICIwLjAyNDM5OSwgMC4xMzM4LCAwLjI0NTc1OSwgMC4zMjYyOTksIDAuNDU0ODc1LCAwLjU2NzM0LCAwLjcyNzAyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEwNTYxLCAwLjAxMDcwMSwgMC4wMTA3MjUsIDAuMDEwNzMyLCAwLjAxMDczOSwgMC4wMTA3MzcsIDAuMDEwNzQ1IiwgXAotICAgICAgICAgICIwLjAxMDU1OSwgMC4wMTA3MDQsIDAuMDEwNzI4LCAwLjAxMDczNiwgMC4wMTA3NDIsIDAuMDEwNzQ2LCAwLjAxMDc0OSIsIFwKLSAgICAgICAgICAiMC4wMTA2MDksIDAuMDEwNzUxLCAwLjAxMDc3NSwgMC4wMTA3ODIsIDAuMDEwNzg5LCAwLjAxMDc5MiwgMC4wMTA3OTUiLCBcCi0gICAgICAgICAgIjAuMDEwNjczLCAwLjAxMDgxNiwgMC4wMTA4NCwgMC4wMTA4NDcsIDAuMDEwODU0LCAwLjAxMDg1MiwgMC4wMTA4NTciLCBcCi0gICAgICAgICAgIjAuMDEwNzUsIDAuMDEwODk0LCAwLjAxMDkxOCwgMC4wMTA5MjYsIDAuMDEwOTMyLCAwLjAxMDkzNSwgMC4wMTA5MzkiLCBcCi0gICAgICAgICAgIjAuMDEwODU4LCAwLjAxMTAwOSwgMC4wMTEwMzcsIDAuMDExMDM2LCAwLjAxMTA0MywgMC4wMTEwNDYsIDAuMDExMDQ5IiwgXAotICAgICAgICAgICIwLjAxMDk3MywgMC4wMTExMTEsIDAuMDExMTM1LCAwLjAxMTEzNywgMC4wMTExNDksIDAuMDExMTUzLCAwLjAxMTE1NSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA5ODE3LCAwLjAwOTk5NSwgMC4wMTAwMjUsIDAuMDEwMDM0LCAwLjAxMDA0MiwgMC4wMTAwNDYsIDAuMDEwMDQ2IiwgXAotICAgICAgICAgICIwLjAwOTgxNSwgMC4wMDk5OTIsIDAuMDEwMDIyLCAwLjAxMDAzMSwgMC4wMTAwMzksIDAuMDEwMDQyLCAwLjAxMDA1IiwgXAotICAgICAgICAgICIwLjAwOTg1MSwgMC4wMTAwMjYsIDAuMDEwMDU1LCAwLjAxMDA2NSwgMC4wMTAwNzMsIDAuMDEwMDc3LCAwLjAxMDA4IiwgXAotICAgICAgICAgICIwLjAwOTkwNCwgMC4wMTAwODQsIDAuMDEwMTE0LCAwLjAxMDEyMywgMC4wMTAxMzQsIDAuMDEwMTM2LCAwLjAxMDE0IiwgXAotICAgICAgICAgICIwLjAwOTk3MiwgMC4wMTAxNTEsIDAuMDEwMTgyLCAwLjAxMDE5MSwgMC4wMTAyMDIsIDAuMDEwMjAzLCAwLjAxMDIwNyIsIFwKLSAgICAgICAgICAiMC4wMTAwODYsIDAuMDEwMjU1LCAwLjAxMDI4NCwgMC4wMTAyOTMsIDAuMDEwMywgMC4wMTAzMDUsIDAuMDEwMzA3IiwgXAotICAgICAgICAgICIwLjAxMDE4MiwgMC4wMTAzNTMsIDAuMDEwMzgyLCAwLjAxMDM5MywgMC4wMTA0LCAwLjAxMDQwMiwgMC4wMTA0MDciKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IEhPTERYMSAqCi0gKiAtLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKEhPTERYMSkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjIzMjA3ODsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbm91dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMzE3NTM7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAzMTc1MzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDI1ODgzMTsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDE4OCwgMC4wMDAyNDgsIDAuMDAwOCwgMC4wMDE1MzcsIDAuMDAyMzY1LCAwLjAwMzc2NCwgMC4wMDUwNTEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDM2MzUsIDAuMDA0NDMzLCAwLjAwNTQ5OSwgMC4wMDY1NTUsIDAuMDA3NjM4LCAwLjAwOTM1LCAwLjAxMDgzNiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBkb250X3VzZSA6IHRydWU7Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IElOVlgxICoKLSAqIC0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChJTlZYMSkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjA5MTAzODE7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDkxNTU1MTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA5MTU0MTc7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwOTE1NTUxOwotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMzQxNzQxOwotICAgIGZ1bmN0aW9uIDogIighQSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzNTk3NywgMC4wNTQ2MTQsIDAuMTYwMjIxLCAwLjI1MzM3NywgMC4zNzc1NjUsIDAuNjI2MjA5LCAwLjc4MDk5MyIsIFwKLSAgICAgICAgICAiMC4wNDQxNDYsIDAuMDYyNzksIDAuMTY4MTksIDAuMjYxMzM4LCAwLjM4NTU2NCwgMC42MzM5MzQsIDAuNzg5MDc0IiwgXAotICAgICAgICAgICIwLjA1NDY5LCAwLjA3MzI2MywgMC4xNzg3MTIsIDAuMjcxODI0LCAwLjM5NTg2NywgMC42NDQ2NTMsIDAuNzk5MDc0IiwgXAotICAgICAgICAgICIwLjA2NDYzNiwgMC4wODM4LCAwLjE4OTA5MiwgMC4yODIxOTIsIDAuNDA2Mjc4LCAwLjY1NDQ5NSwgMC44MDk0NjUiLCBcCi0gICAgICAgICAgIjAuMDcyNTk0LCAwLjA5NDI3NywgMC4xOTk1NTQsIDAuMjkyNTYsIDAuNDE2NjkxLCAwLjY2NDc0OSwgMC44MTk3NjciLCBcCi0gICAgICAgICAgIjAuMDgzMDIyLCAwLjEwODI1NCwgMC4yMTYyOTYsIDAuMzA5MjAzLCAwLjQzMzM2MiwgMC42ODE0MzIsIDAuODM2NjgiLCBcCi0gICAgICAgICAgIjAuMDkxMzU1LCAwLjExODYxNywgMC4yMzExMjcsIDAuMzIzODk1LCAwLjQ0NzkzMywgMC42OTYwODIsIDAuODUxMTI0Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2OTYzMywgMC4xMDg3NzMsIDAuMzMwNzU3LCAwLjUyNjM3OSwgMC43ODc0MTIsIDEuMzEwMjYsIDEuNjM2MTkiLCBcCi0gICAgICAgICAgIjAuMDcxMjE1LCAwLjEwOTIwOCwgMC4zMzA1NzYsIDAuNTI3MDcyLCAwLjc4ODE3MywgMS4zMTA0OCwgMS42MzczOSIsIFwKLSAgICAgICAgICAiMC4wNzc5MTksIDAuMTEzOTQ2LCAwLjMzMDU2NywgMC41MjY3MywgMC43ODc1MTUsIDEuMzEwMjIsIDEuNjM3ODEiLCBcCi0gICAgICAgICAgIjAuMDg2NjE5LCAwLjEyMDkyOCwgMC4zMzIxMjEsIDAuNTI2NzI0LCAwLjc4Nzc2NiwgMS4zMTA1LCAxLjYzNTI1IiwgXAotICAgICAgICAgICIwLjA5NjIwOSwgMC4xMjkzNzEsIDAuMzM1MzczLCAwLjUyNzg5OCwgMC43ODcxNDEsIDEuMzA5NjQsIDEuNjM4NDUiLCBcCi0gICAgICAgICAgIjAuMTExODEzLCAwLjE0NDc1NCwgMC4zNDM2NDEsIDAuNTMxMjA2LCAwLjc4NzUzMiwgMS4zMTEwOCwgMS42MzYxNSIsIFwKLSAgICAgICAgICAiMC4xMjI5MDEsIDAuMTU3NjMsIDAuMzUyNjA4LCAwLjUzNjcxMSwgMC43OTA2NjYsIDEuMzEwMDYsIDEuNjM3OTIiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM1MTg4LCAwLjA1MzMyMywgMC4xNTU5MDUsIDAuMjQ2NDI5LCAwLjM2NzMxNiwgMC42MDg0NzIsIDAuNzU5NDc4IiwgXAotICAgICAgICAgICIwLjA0MzQ5NiwgMC4wNjE2MjgsIDAuMTY0MTk4LCAwLjI1NDc2MSwgMC4zNzUyNzksIDAuNjE2NjQ3LCAwLjc2NzMzNyIsIFwKLSAgICAgICAgICAiMC4wNTQyMTksIDAuMDcyMjc2LCAwLjE3NDczNCwgMC4yNjUzMzUsIDAuMzg1OTE3LCAwLjYyNzA2NiwgMC43Nzg0NDQiLCBcCi0gICAgICAgICAgIjAuMDY0MzY4LCAwLjA4MzAxOCwgMC4xODUzMzEsIDAuMjc1ODE2LCAwLjM5NjY2LCAwLjYzNzgxNCwgMC43ODg3NjIiLCBcCi0gICAgICAgICAgIjAuMDcyNjg5LCAwLjA5MzY4NiwgMC4xOTU5NjUsIDAuMjg2MzcsIDAuNDA3MjE2LCAwLjY0ODU3LCAwLjc5OTc1NyIsIFwKLSAgICAgICAgICAiMC4wODM5NDIsIDAuMTA4MzQyLCAwLjIxMzEzMywgMC4zMDMzNDcsIDAuNDIzOTgyLCAwLjY2NTM1NiwgMC44MTYwMiIsIFwKLSAgICAgICAgICAiMC4wOTIxMzYsIDAuMTE5MDUxLCAwLjIyODIyNywgMC4zMTgyNzIsIDAuNDM4Nzc2LCAwLjY4MDA2NywgMC44MzEyNTEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY2MDkxLCAwLjEwMzE4OCwgMC4zMTQxNTcsIDAuNTAwMzE5LCAwLjc0ODczNSwgMS4yNDU4NywgMS41NTQ5MSIsIFwKLSAgICAgICAgICAiMC4wNjc2NDEsIDAuMTAzNTcyLCAwLjMxNDYzLCAwLjUwMDMwNCwgMC43NDgzNTYsIDEuMjQ1NjcsIDEuNTU4MDMiLCBcCi0gICAgICAgICAgIjAuMDc0MDg1LCAwLjEwODI1NSwgMC4zMTQ1NjksIDAuNTAwMzAzLCAwLjc0ODE4OCwgMS4yNDQ0MSwgMS41NTU3OSIsIFwKLSAgICAgICAgICAiMC4wODI1NTMsIDAuMTE1MTI2LCAwLjMxNTcxLCAwLjUwMTEyNCwgMC43NDgzNzMsIDEuMjQ1MDMsIDEuNTU1NTQiLCBcCi0gICAgICAgICAgIjAuMDkyMTMzLCAwLjEyMzMzOSwgMC4zMTkxMDcsIDAuNTAxNzU1LCAwLjc0ODQyMiwgMS4yNDQ3NywgMS41NTU3NSIsIFwKLSAgICAgICAgICAiMC4xMDczOTksIDAuMTM3OTM1LCAwLjMyNzI1OSwgMC41MDU4ODMsIDAuNzQ4ODMzLCAxLjI0NTA5LCAxLjU1NDM1IiwgXAotICAgICAgICAgICIwLjEyMDI5OSwgMC4xNTEzODEsIDAuMzM2Mjc1LCAwLjUxMDc2LCAwLjc1MjcyMywgMS4yNDQ0LCAxLjU1NDgzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxNDg0LCAwLjAwMTQ5LCAwLjAwMTQ5NiwgMC4wMDE0OTcsIDAuMDAxNDk3LCAwLjAwMTQ5OCwgMC4wMDE0OTgiLCBcCi0gICAgICAgICAgIjAuMDAxNDc3LCAwLjAwMTQ4MiwgMC4wMDE0OTEsIDAuMDAxNDkzLCAwLjAwMTQ5NSwgMC4wMDE0OTUsIDAuMDAxNDk3IiwgXAotICAgICAgICAgICIwLjAwMTQ5OCwgMC4wMDE0OTMsIDAuMDAxNDk1LCAwLjAwMTQ5NiwgMC4wMDE0OTYsIDAuMDAxNDk3LCAwLjAwMTQ5NiIsIFwKLSAgICAgICAgICAiMC4wMDE1NjYsIDAuMDAxNTM5LCAwLjAwMTUxMSwgMC4wMDE1MDcsIDAuMDAxNTA1LCAwLjAwMTUwMSwgMC4wMDE1MDEiLCBcCi0gICAgICAgICAgIjAuMDAxNjU3LCAwLjAwMTYwNSwgMC4wMDE1MzcsIDAuMDAxNTI0LCAwLjAwMTUxNywgMC4wMDE1MDksIDAuMDAxNTA3IiwgXAotICAgICAgICAgICIwLjAwMTg0MiwgMC4wMDE3NDQsIDAuMDAxNTk3LCAwLjAwMTU2NSwgMC4wMDE1NDYsIDAuMDAxNTI4LCAwLjAwMTUyMiIsIFwKLSAgICAgICAgICAiMC4wMDE5NjEsIDAuMDAxODg1LCAwLjAwMTY2MSwgMC4wMDE2MDksIDAuMDAxNTc4LCAwLjAwMTU1LCAwLjAwMTU0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwMDU4LCAwLjAwMDA1MywgMC4wMDAwNDUsIDAuMDAwMDQ0LCAwLjAwMDA0MywgMC4wMDAwNDMsIDAuMDAwMDQzIiwgXAotICAgICAgICAgICIwLjAwMDA4MywgMC4wMDAwNzIsIDAuMDAwMDU0LCAwLjAwMDA0OSwgMC4wMDAwNDcsIDAuMDAwMDQ1LCAwLjAwMDA0NCIsIFwKLSAgICAgICAgICAiMC4wMDAwNTcsIDAuMDAwMDU4LCAwLjAwMDA1LCAwLjAwMDA0OCwgMC4wMDAwNDYsIDAuMDAwMDQ1LCAwLjAwMDA0NCIsIFwKLSAgICAgICAgICAiMC4wMDAwMTIsIDAuMDAwMDEyLCAwLjAwMDAzNiwgMC4wMDAwMzgsIDAuMDAwMDM5LCAwLjAwMDA0LCAwLjAwMDA0MSIsIFwKLSAgICAgICAgICAiMC4wMDAxMSwgMC4wMDAwNTYsIDAuMDAwMDA5LCAwLjAwMDAyMSwgMC4wMDAwMjcsIDAuMDAwMDMzLCAwLjAwMDAzNSIsIFwKLSAgICAgICAgICAiMC4wMDAzMTQsIDAuMDAwMjAzLCAwLjAwMDA1MywgMC4wMDAwMjEsIDAuMDAwMDAzLCAwLjAwMDAxNCwgMC4wMDAwMTkiLCBcCi0gICAgICAgICAgIjAuMDAwNTA5LCAwLjAwMDM1OSwgMC4wMDAxMjEsIDAuMDAwMDY2LCAwLjAwMDAzNSwgMC4wMDAwMDcsIDAuMDAwMDAyIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBJTlZYMTIgKgotICogLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChJTlZYMTIpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMS4xNjc4MTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDA5NDc4NTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDk0NzcxNjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDk0Nzg1OwotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDMuOTYxNDI7Ci0gICAgZnVuY3Rpb24gOiAiKCFBKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA3NDM1LCAwLjAwOTA3NSwgMC4wMTgyMzYsIDAuMDI2MjU4LCAwLjAzNjk1MSwgMC4wNTgzMjgsIDAuMDcxNjI4IiwgXAotICAgICAgICAgICIwLjAxMzI5NywgMC4wMTU4NDcsIDAuMDI2NTYzLCAwLjAzNDU4NywgMC4wNDUyNSwgMC4wNjY2MDQsIDAuMDc5OTU3IiwgXAotICAgICAgICAgICIwLjAxNzE3OSwgMC4wMjA2MjYsIDAuMDM1MzQyLCAwLjA0NDg1LCAwLjA1NTc0NiwgMC4wNzcwNTcsIDAuMDkwMzM1IiwgXAotICAgICAgICAgICIwLjAxOTYwNiwgMC4wMjM5NTcsIDAuMDQxMzg4LCAwLjA1MzE0MSwgMC4wNjYwMDEsIDAuMDg3Nzc0LCAwLjEwMTAxNSIsIFwKLSAgICAgICAgICAiMC4wMjE2MSwgMC4wMjYzMjMsIDAuMDQ2Mzk4LCAwLjA1OTI3OCwgMC4wNzQxNDgsIDAuMDk4MzQ0LCAwLjExMTU5OSIsIFwKLSAgICAgICAgICAiMC4wMjM3NzEsIDAuMDI5NTUxLCAwLjA1Mjg4NywgMC4wNjgyMjEsIDAuMDg0ODc0LCAwLjExMzE4MSwgMC4xMjgyNzQiLCBcCi0gICAgICAgICAgIjAuMDI1NTc5LCAwLjAzMTgyMywgMC4wNTc0NzEsIDAuMDc0MzY5LCAwLjA5MzQxNSwgMC4xMjM5OTYsIDAuMTQwOTA5Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMDA3MywgMC4wMTMzMDgsIDAuMDMyMjI1LCAwLjA0OTEzNCwgMC4wNzE3NjksIDAuMTE2ODA4LCAwLjE0NTExNiIsIFwKLSAgICAgICAgICAiMC4wMTcxOTIsIDAuMDIwMzI3LCAwLjAzNjQ2OCwgMC4wNTE4ODksIDAuMDczMjU3LCAwLjExNzI2OSwgMC4xNDQ5NjkiLCBcCi0gICAgICAgICAgIjAuMDIzODAxLCAwLjAyNzkxOCwgMC4wNDU1NTUsIDAuMDU5OTY0LCAwLjA3OTc5NywgMC4xMjEzNDUsIDAuMTQ4MTg2IiwgXAotICAgICAgICAgICIwLjAyOTU3NSwgMC4wMzQwNzYsIDAuMDU0ODgyLCAwLjA2OTMwNSwgMC4wODgyNDMsIDAuMTI4MTcyLCAwLjE1MzkwNSIsIFwKLSAgICAgICAgICAiMC4wMzQ4OTYsIDAuMDQwMDIyLCAwLjA2MjcyOSwgMC4wNzkzMSwgMC4wOTc4NTIsIDAuMTM2MzU0LCAwLjE2MTMxMSIsIFwKLSAgICAgICAgICAiMC4wNDI0OTUsIDAuMDQ4MDE1LCAwLjA3MzYzMSwgMC4wOTE4NTgsIDAuMTEzNTk2LCAwLjE1MTE2NywgMC4xNzQ3NTMiLCBcCi0gICAgICAgICAgIjAuMDQ4MDM5LCAwLjA1NDU5OCwgMC4wODI1MDEsIDAuMTAyMzgsIDAuMTI0OTUzLCAwLjE2NDMzNiwgMC4xODgyNyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDc1NzksIDAuMDA5MjE2LCAwLjAxODQyOCwgMC4wMjY0ODcsIDAuMDM3MjEyLCAwLjA1ODY1NywgMC4wNzIwMDIiLCBcCi0gICAgICAgICAgIjAuMDEzODQ1LCAwLjAxNjM2OCwgMC4wMjY5MDcsIDAuMDM0OTU0LCAwLjA0NTY1NiwgMC4wNjcwODEsIDAuMDgwNDgxIiwgXAotICAgICAgICAgICIwLjAxODI1NywgMC4wMjE3MjgsIDAuMDM1OTU4LCAwLjA0NTYzNCwgMC4wNTY0NTYsIDAuMDc3NzY5LCAwLjA5MTE0IiwgXAotICAgICAgICAgICIwLjAyMTQ2LCAwLjAyNTUzOCwgMC4wNDI4NjksIDAuMDU0NDYyLCAwLjA2Njc5NSwgMC4wODg0NzcsIDAuMTAxODQ4IiwgXAotICAgICAgICAgICIwLjAyMzkxMywgMC4wMjg2NjksIDAuMDQ4NDgsIDAuMDYxNDY5LCAwLjA3NjE0MywgMC4wOTk4NTQsIDAuMTEzMTEiLCBcCi0gICAgICAgICAgIjAuMDI3NTgyLCAwLjAzMjkxNCwgMC4wNTU2NjgsIDAuMDcwODYyLCAwLjA4NzQ0NSwgMC4xMTUyMzMsIDAuMTI5OTY5IiwgXAotICAgICAgICAgICIwLjAzMDE3NCwgMC4wMzYwNTYsIDAuMDYxMTMzLCAwLjA3NzYyNSwgMC4wOTYxOTQsIDAuMTI2OTQ4LCAwLjE0MzQ3NyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDk2MjMsIDAuMDEyNzk5LCAwLjAzMTQwMywgMC4wNDc5NjksIDAuMDcwMTc0LCAwLjExNDI2MSwgMC4xNDIwNzIiLCBcCi0gICAgICAgICAgIjAuMDE2NTMsIDAuMDE5NDU0LCAwLjAzNTM0OSwgMC4wNTA0NTgsIDAuMDcxNDgyLCAwLjExNDYyLCAwLjE0MTc5NyIsIFwKLSAgICAgICAgICAiMC4wMjM0ODMsIDAuMDI3Mjg4LCAwLjA0NDQwMywgMC4wNTgxOTQsIDAuMDc3NjIzLCAwLjExODU2OSwgMC4xNDQ4OTMiLCBcCi0gICAgICAgICAgIjAuMDI5MjM3LCAwLjAzMzc0MSwgMC4wNTM0ODgsIDAuMDY3MjE2LCAwLjA4NjA0MiwgMC4xMjUxMTQsIDAuMTUwNDA5IiwgXAotICAgICAgICAgICIwLjAzNDYyNywgMC4wMzk2NjIsIDAuMDYxNjA5LCAwLjA3NjU0MiwgMC4wOTQ3NTIsIDAuMTMyNTQ3LCAwLjE1NzE1MSIsIFwKLSAgICAgICAgICAiMC4wNDIwNzMsIDAuMDQ3ODMzLCAwLjA3MzE2OCwgMC4wOTAyNTQsIDAuMTEwNTQsIDAuMTQ2ODA3LCAwLjE3MDMxMyIsIFwKLSAgICAgICAgICAiMC4wNDgyNjksIDAuMDU0MzIxLCAwLjA4MjAyLCAwLjEwMTUxMiwgMC4xMjI4MzYsIDAuMTU5NjU5LCAwLjE4MjE5MSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxNTY5NCwgMC4wMTU4MzEsIDAuMDE2MTY2LCAwLjAxNjI1OSwgMC4wMTYzMzUsIDAuMDE2Mzg1LCAwLjAxNjQwNCIsIFwKLSAgICAgICAgICAiMC4wMTU4NjgsIDAuMDE1ODAyLCAwLjAxNTg1OCwgMC4wMTU5NjgsIDAuMDE2MDY1LCAwLjAxNjE2OCwgMC4wMTYyMzUiLCBcCi0gICAgICAgICAgIjAuMDE3MTcsIDAuMDE2OTU3LCAwLjAxNjQ0MiwgMC4wMTY0ODEsIDAuMDE2Mzk1LCAwLjAxNjM3NSwgMC4wMTYzNzQiLCBcCi0gICAgICAgICAgIjAuMDE4ODM1LCAwLjAxODQ0NiwgMC4wMTc1MzcsIDAuMDE3MDk2LCAwLjAxNzQzLCAwLjAxNzA4NCwgMC4wMTY5NjYiLCBcCi0gICAgICAgICAgIjAuMDIxMDIxLCAwLjAyMDQ2MywgMC4wMTg4MjgsIDAuMDE4NjgsIDAuMDE4MDU3LCAwLjAxNzQ5NCwgMC4wMTczMDgiLCBcCi0gICAgICAgICAgIjAuMDI0NDYzLCAwLjAyMzQ1LCAwLjAyMTE0NCwgMC4wMjAyMDksIDAuMDIwMDM2LCAwLjAxODkxOCwgMC4wMTg1NDkiLCBcCi0gICAgICAgICAgIjAuMDI3MTk3LCAwLjAyNjM2LCAwLjAyMzYzMSwgMC4wMjIyNzYsIDAuMDIxMzMsIDAuMDIwNDEzLCAwLjAxOTgwOSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTIyMSwgMC4wMDEwNjcsIDAuMDAwNjU2LCAwLjAwMDUzMSwgMC4wMDA0NSwgMC4wMDAzNzgsIDAuMDAwMzU1IiwgXAotICAgICAgICAgICIwLjAwMTE5MSwgMC4wMDEyMTUsIDAuMDAxMTEzLCAwLjAwMDk1OCwgMC4wMDA4MjEsIDAuMDAwNjUzLCAwLjAwMDU5MSIsIFwKLSAgICAgICAgICAiMC4wMDAxNTQsIDAuMDAwMDc0LCAwLjAwMDQzOCwgMC4wMDA1NTUsIDAuMDAwNTk3LCAwLjAwMDU1OCwgMC4wMDA1MzUiLCBcCi0gICAgICAgICAgIjAuMDAyMDEyLCAwLjAwMTUwMSwgMC4wMDA0NjMsIDAuMDAwMDgyLCAwLjAwMDM1MSwgMC4wMDAwNTMsIDAuMDAwMDE4IiwgXAotICAgICAgICAgICIwLjAwNDYxOSwgMC4wMDQxMTksIDAuMDAyNTcsIDAuMDAxODM0LCAwLjAwMTI3MSwgMC4wMDA2MzksIDAuMDAwNDk5IiwgXAotICAgICAgICAgICIwLjAwNzU5MSwgMC4wMDY4MzcsIDAuMDA0NTUsIDAuMDAzNzQsIDAuMDAzMzA4LCAwLjAwMjA2MywgMC4wMDE2NzEiLCBcCi0gICAgICAgICAgIjAuMDEwNjIyLCAwLjAwOTczNSwgMC4wMDY5MzQsIDAuMDA2MTg5LCAwLjAwNDgxNCwgMC4wMDMxNTksIDAuMDAyNjIzIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IElOVlgyICoKLSAqIC0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChJTlZYMikgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjE4MjA5NDsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNzE2Njk7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNzE2Njk7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNzE2Mzk7Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC42OTI0OTk7Ci0gICAgZnVuY3Rpb24gOiAiKCFBKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE5OTk5LCAwLjA5NjYsIDAuMTU3ODI3LCAwLjIzNDMxNiwgMC4zMTA3MzgsIDAuMzg3NjUsIDAuNDYzOTQyIiwgXAotICAgICAgICAgICIwLjAyODI2NywgMC4xMDQ4MTQsIDAuMTY2MDQ1LCAwLjI0MjYwMiwgMC4zMTk0MTIsIDAuMzk1NTk4LCAwLjQ3MjE1MSIsIFwKLSAgICAgICAgICAiMC4wMzc1NDIsIDAuMTE1MDc0LCAwLjE3NjMwOSwgMC4yNTI4NTUsIDAuMzI5MjA5LCAwLjQwNTk1NCwgMC40ODIxNTkiLCBcCi0gICAgICAgICAgIjAuMDQ0MDUyLCAwLjEyNTc3LCAwLjE4Njk1MSwgMC4yNjI5NTUsIDAuMzM5OTYxLCAwLjQxNjU0OCwgMC40OTI4MjYiLCBcCi0gICAgICAgICAgIjAuMDQ5MjkxLCAwLjEzNjA4OCwgMC4xOTcxNTUsIDAuMjczNjUxLCAwLjM0OTc2OCwgMC40MjY1OTMsIDAuNTAzMDQyIiwgXAotICAgICAgICAgICIwLjA1NjIzLCAwLjE1MzA3NiwgMC4yMTM5MjcsIDAuMjkwMjkzLCAwLjM2NjY5MiwgMC40NDM0MTMsIDAuNTIwMDE5IiwgXAotICAgICAgICAgICIwLjA2MDk0NCwgMC4xNjc4MDYsIDAuMjI4NzY1LCAwLjMwNDk2NSwgMC4zODEzNzksIDAuNDU3Nzk3LCAwLjUzNDMyMSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzU5OTQsIDAuMTk3MTU0LCAwLjMyNjI4MywgMC40ODcyNzIsIDAuNjQ4MTI3LCAwLjgwOTkzLCAwLjk3MDgzNSIsIFwKLSAgICAgICAgICAiMC4wMzk4NjIsIDAuMTk3MjExLCAwLjMyNjA3NSwgMC40ODcyNiwgMC42NDg3MzYsIDAuODA5NTg1LCAwLjk3MTM1NCIsIFwKLSAgICAgICAgICAiMC4wNDg3MjYsIDAuMTk4NTEzLCAwLjMyNjA4MSwgMC40ODcyMTEsIDAuNjQ5MDQ3LCAwLjgwOTU1LCAwLjk3MDMwMyIsIFwKLSAgICAgICAgICAiMC4wNTgyMiwgMC4yMDI4NDYsIDAuMzI3NDE4LCAwLjQ4NzI0MSwgMC42NDgwODcsIDAuODA5OTUxLCAwLjk3MDU1NSIsIFwKLSAgICAgICAgICAiMC4wNjY2MDgsIDAuMjA4ODkzLCAwLjMzMTU1NywgMC40ODgwNTIsIDAuNjQ4NDE0LCAwLjgwOTIzLCAwLjk3MDQzMiIsIFwKLSAgICAgICAgICAiMC4wNzc5OTEsIDAuMjIwNzU5LCAwLjMzOTM5MywgMC40OTM5MTIsIDAuNjUwNTcyLCAwLjgwOTkxOSwgMC45NzA2MDciLCBcCi0gICAgICAgICAgIjAuMDg3Njc5LCAwLjIzMjQ0MywgMC4zNDg0NTEsIDAuNTAwMjQxLCAwLjY1NTU1OCwgMC44MTM0MzIsIDAuOTcxMTciKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE5OTY4LCAwLjA5NTg4MSwgMC4xNTY1ODUsIDAuMjMyMjQzLCAwLjMwODIzMiwgMC4zODM4NjIsIDAuNDU5NDg1IiwgXAotICAgICAgICAgICIwLjAyODM3NSwgMC4xMDQxOTQsIDAuMTY0ODQ3LCAwLjI0MDU4OCwgMC4zMTYzNCwgMC4zOTIyNSwgMC40Njc4ODgiLCBcCi0gICAgICAgICAgIjAuMDM3ODEzLCAwLjExNDcwOCwgMC4xNzUyNzksIDAuMjUxMTM3LCAwLjMyNjgyOCwgMC40MDI3MzYsIDAuNDc4NDYyIiwgXAotICAgICAgICAgICIwLjA0NDg4MSwgMC4xMjUzOCwgMC4xODU5MDMsIDAuMjYwNDc4LCAwLjMzNzQ0OCwgMC40MTI5MTEsIDAuNDg4NzE1IiwgXAotICAgICAgICAgICIwLjA1MDUyNSwgMC4xMzYzMTQsIDAuMTk2NjU0LCAwLjI3MjQyOCwgMC4zNDc5NDUsIDAuNDIzOTY3LCAwLjQ5OTY2MyIsIFwKLSAgICAgICAgICAiMC4wNTg0MTgsIDAuMTUzMzE5LCAwLjIxMzY1MywgMC4yODkyMywgMC4zNjQ4NzUsIDAuNDQwNzI3LCAwLjUxNjUyNCIsIFwKLSAgICAgICAgICAiMC4wNjM5NDYsIDAuMTY4Mzg3LCAwLjIyODcyMywgMC4zMDQxNjQsIDAuMzc5NzY3LCAwLjQ1NTQ0NiwgMC41MzEzMDUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM0OTY0LCAwLjE5MjM0NCwgMC4zMTgyNSwgMC40NzU0MzMsIDAuNjMyOTY0LCAwLjc5MDA5NiwgMC45NDcyMjEiLCBcCi0gICAgICAgICAgIjAuMDM4NjMxLCAwLjE5MjYzNSwgMC4zMTgxMzksIDAuNDc1MzU4LCAwLjYzMzk0NywgMC43OTAwNjgsIDAuOTQ3ODk4IiwgXAotICAgICAgICAgICIwLjA0NzUzMSwgMC4xOTM5MDcsIDAuMzE4NTQ5LCAwLjQ3NTQ1MSwgMC42MzM2NzgsIDAuNzkwMDYzLCAwLjk0Nzg0NyIsIFwKLSAgICAgICAgICAiMC4wNTY3NCwgMC4xOTc3NjEsIDAuMzIwMDQzLCAwLjQ3NjIwNSwgMC42MzI4MDMsIDAuNzkwMiwgMC45NDc0MzQiLCBcCi0gICAgICAgICAgIjAuMDY1NTYxLCAwLjIwMzg4MywgMC4zMjMzNTIsIDAuNDc2NDE1LCAwLjYzMjk4NiwgMC43OTAxNzMsIDAuOTQ4ODI2IiwgXAotICAgICAgICAgICIwLjA3Njg3NywgMC4yMTUxOTMsIDAuMzMxMzcyLCAwLjQ4MjExOCwgMC42MzQ1MzksIDAuNzkwMzYsIDAuOTQ3MzgzIiwgXAotICAgICAgICAgICIwLjA4NjU2MiwgMC4yMjY0MTYsIDAuMzQwMTE1LCAwLjQ4ODEzMiwgMC42Mzk3NjYsIDAuNzkzOTUxLCAwLjk0Nzk2NCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjY3NCwgMC4wMDI3MDksIDAuMDAyNzEyLCAwLjAwMjcxNCwgMC4wMDI3MTUsIDAuMDAyNzE2LCAwLjAwMjcxNiIsIFwKLSAgICAgICAgICAiMC4wMDI2MywgMC4wMDI2ODksIDAuMDAyNywgMC4wMDI3MDYsIDAuMDAyNzA5LCAwLjAwMjcxLCAwLjAwMjcxMiIsIFwKLSAgICAgICAgICAiMC4wMDI3MTgsIDAuMDAyNzE2LCAwLjAwMjcxLCAwLjAwMjcxNywgMC4wMDI3MTUsIDAuMDAyNzE3LCAwLjAwMjcxNiIsIFwKLSAgICAgICAgICAiMC4wMDI5NzUsIDAuMDAyNzYsIDAuMDAyNzQ1LCAwLjAwMjczMywgMC4wMDI3MzUsIDAuMDAyNzMxLCAwLjAwMjczMSIsIFwKLSAgICAgICAgICAiMC4wMDMxNCwgMC4wMDI4NDUsIDAuMDAyNzk3LCAwLjAwMjc3NiwgMC4wMDI3NTcsIDAuMDAyNzU1LCAwLjAwMjc0OSIsIFwKLSAgICAgICAgICAiMC4wMDM1NzIsIDAuMDAzMDI4LCAwLjAwMjkyLCAwLjAwMjg2NCwgMC4wMDI4MzEsIDAuMDAyODEzLCAwLjAwMjc5OSIsIFwKLSAgICAgICAgICAiMC4wMDM5OSwgMC4wMDMyMTYsIDAuMDAzMDQ5LCAwLjAwMjk2LCAwLjAwMjkwOCwgMC4wMDI4NzQsIDAuMDAyODU0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwMTM3LCAwLjAwMDA5LCAwLjAwMDA4NSwgMC4wMDAwODMsIDAuMDAwMDgxLCAwLjAwMDA4MSwgMC4wMDAwOCIsIFwKLSAgICAgICAgICAiMC4wMDAxOTksIDAuMDAwMTE3LCAwLjAwMDEwMywgMC4wMDAwOTUsIDAuMDAwMDkxLCAwLjAwMDA4OCwgMC4wMDAwODYiLCBcCi0gICAgICAgICAgIjAuMDAwMDcsIDAuMDAwMTAxLCAwLjAwMDA5NCwgMC4wMDAwOTEsIDAuMDAwMDg4LCAwLjAwMDA4NiwgMC4wMDAwODUiLCBcCi0gICAgICAgICAgIjAuMDAwMDg0LCAwLjAwMDAwMSwgMC4wMDAwMjksIDAuMDAwMDQ4LCAwLjAwMDA1MywgMC4wMDAwNjEsIDAuMDAwMDY0IiwgXAotICAgICAgICAgICIwLjAwMDQwOCwgMC4wMDAwMTUsIDAuMDAwMDI2LCAwLjAwMDA0MiwgMC4wMDAwNSwgMC4wMDAwNTYsIDAuMDAwMDYiLCBcCi0gICAgICAgICAgIjAuMDAwODAxLCAwLjAwMDIyNCwgMC4wMDAxMTgsIDAuMDAwMDYyLCAwLjAwMDAyOCwgMC4wMDAwMDgsIDAuMDAwMDA0IiwgXAotICAgICAgICAgICIwLjAwMTI0NywgMC4wMDA0MjIsIDAuMDAwMjU1LCAwLjAwMDE1NywgMC4wMDAxMDgsIDAuMDAwMDc0LCAwLjAwMDA1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IElOVlgzICoKLSAqIC0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChJTlZYMykgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjI3MzE0OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDI0NDAwOTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDI0Mzk5ODsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDI0NDAwOTsKLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAxLjAxOTI3OwotICAgIGZ1bmN0aW9uIDogIighQSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE1MzI0LCAwLjA4ODc4NywgMC4xNjIxMDksIDAuMjE0NDM4LCAwLjI5ODE4MywgMC4zNzE2OTEsIDAuNDc2MTgzIiwgXAotICAgICAgICAgICIwLjAyMzUyOCwgMC4wOTY4NDcsIDAuMTcwMTU0LCAwLjIyMjQ4MSwgMC4zMDY1NDUsIDAuMzc5NTk4LCAwLjQ4NDY0NyIsIFwKLSAgICAgICAgICAiMC4wMzA5NzMsIDAuMTA3MzcxLCAwLjE4MDY4OCwgMC4yMzI5OTIsIDAuMzE2OTE0LCAwLjM5MDEyMiwgMC40OTQ5NDgiLCBcCi0gICAgICAgICAgIjAuMDM2MzAyLCAwLjExNzc1NywgMC4xOTA5NzUsIDAuMjQzMTY2LCAwLjMyNzE0NiwgMC40MDAzMDQsIDAuNTA0OTc4IiwgXAotICAgICAgICAgICIwLjA0MDU2MiwgMC4xMjgwOTIsIDAuMjAxMTY5LCAwLjI1MzUzMSwgMC4zMzY3NDEsIDAuNDEwNDYyLCAwLjUxNTExNSIsIFwKLSAgICAgICAgICAiMC4wNDU1NDMsIDAuMTQ1NzA4LCAwLjIxODUyNiwgMC4yNzA3NjIsIDAuMzU0NDMzLCAwLjQyNzc3NiwgMC41MzIzNjciLCBcCi0gICAgICAgICAgIjAuMDQ5NTkyLCAwLjE1OTQ4NCwgMC4yMzI4NjgsIDAuMjg1MDIyLCAwLjM2ODY2NSwgMC40NDE4NDgsIDAuNTQ2ODEiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjYwMzksIDAuMTgwNjksIDAuMzM1MTI5LCAwLjQ0NTYxNiwgMC42MjIyNywgMC43NzY2OTcsIDAuOTk3NjQ0IiwgXAotICAgICAgICAgICIwLjAzMTE1NywgMC4xODA1MiwgMC4zMzUzMDIsIDAuNDQ1NTcyLCAwLjYyMjUxOCwgMC43NzcxNDYsIDAuOTk3OTg1IiwgXAotICAgICAgICAgICIwLjA0MDY5OCwgMC4xODI2NDQsIDAuMzM1MzY0LCAwLjQ0NTQ5NywgMC42MjIyNzIsIDAuNzc2Nzg1LCAwLjk5NzY3MiIsIFwKLSAgICAgICAgICAiMC4wNDg5NTEsIDAuMTg3MzMsIDAuMzM2MzYzLCAwLjQ0NTc2NywgMC42MjI0OTMsIDAuNzc2NjQ5LCAwLjk5NzM4MSIsIFwKLSAgICAgICAgICAiMC4wNTYyNzEsIDAuMTkzOTk0LCAwLjM0MDAzNSwgMC40NDcxMjksIDAuNjIyMzg2LCAwLjc3Njk4NCwgMC45OTczMjciLCBcCi0gICAgICAgICAgIjAuMDY2ODcxLCAwLjIwNTc5NywgMC4zNDgwOTYsIDAuNDUzNTY0LCAwLjYyNTYyMywgMC43NzcwNzEsIDAuOTk4MDA2IiwgXAotICAgICAgICAgICIwLjA3NDkyNCwgMC4yMTgxNywgMC4zNTY4ODIsIDAuNDYwMTY1LCAwLjYyOTA1NSwgMC43ODExNzUsIDAuOTk4MTMyIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE1MjQsIDAuMDg3MzM4LCAwLjE1OTMyMiwgMC4yMTA4NTUsIDAuMjkzMDE2LCAwLjM2NTE5OSwgMC40Njc3OTUiLCBcCi0gICAgICAgICAgIjAuMDIzNTY0LCAwLjA5NTU4NCwgMC4xNjc1OTUsIDAuMjE4OTU4LCAwLjMwMTM0MywgMC4zNzMxNjUsIDAuNDc1OTU2IiwgXAotICAgICAgICAgICIwLjAzMTQ1NCwgMC4xMDYyNzYsIDAuMTc4Mjk0LCAwLjIyOTYyNywgMC4zMTE4MzcsIDAuMzgzOSwgMC40ODY1NDgiLCBcCi0gICAgICAgICAgIjAuMDM3MjU5LCAwLjExNjkzMSwgMC4xODg3OTcsIDAuMjQwMTY1LCAwLjMyMjQ4NSwgMC4zOTQzMjIsIDAuNDk3MDcxIiwgXAotICAgICAgICAgICIwLjA0MTg4NiwgMC4xMjc1NiwgMC4xOTkyNjYsIDAuMjUwNjU2LCAwLjMzMjgzOSwgMC40MDQ4MiwgMC41MDc1NDgiLCBcCi0gICAgICAgICAgIjAuMDQ4MDY2LCAwLjE0NTIyMywgMC4yMTY2MjcsIDAuMjY3ODk1LCAwLjM0OTk5NSwgMC40MjIwODksIDAuNTI0NjU1IiwgXAotICAgICAgICAgICIwLjA1MjUzMiwgMC4xNTk4MTIsIDAuMjMxODMxLCAwLjI4Mjk2LCAwLjM2NDk3OCwgMC40MzY5MDEsIDAuNTM5NzA2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDI0OTU3LCAwLjE3NDExLCAwLjMyMzI2NywgMC40Mjk5NDUsIDAuNjAwMjM2LCAwLjc0OTY2OCwgMC45NjI1MSIsIFwKLSAgICAgICAgICAiMC4wMjk4NzYsIDAuMTc0NDI4LCAwLjMyMzI2MSwgMC40MzA0NDMsIDAuNjAwMjM0LCAwLjc0OTExNywgMC45NjIyMzEiLCBcCi0gICAgICAgICAgIjAuMDM5Mzk4LCAwLjE3NjEyMSwgMC4zMjMyNDcsIDAuNDMwNTM4LCAwLjYwMTE5OSwgMC43NDkzNzIsIDAuOTY0MDA3IiwgXAotICAgICAgICAgICIwLjA0NzQ2LCAwLjE4MDQ2MSwgMC4zMjQ2NDcsIDAuNDMwNDY1LCAwLjYwMDI1MywgMC43NTA4MTQsIDAuOTY0MjY5IiwgXAotICAgICAgICAgICIwLjA1NTA2NywgMC4xODY5NDIsIDAuMzI3OTAxLCAwLjQzMTQ2NSwgMC42MDA2NjcsIDAuNzQ5MzQ2LCAwLjk2MjIzIiwgXAotICAgICAgICAgICIwLjA2NTQxOSwgMC4xOTg3NzYsIDAuMzM2MDczLCAwLjQzNzY5MSwgMC42MDM3NzksIDAuNzQ5OTMzLCAwLjk2MjI5NSIsIFwKLSAgICAgICAgICAiMC4wNzM2OTgsIDAuMjEwMzIyLCAwLjM0NDY3MSwgMC40NDQ0NzgsIDAuNjA2ODgzLCAwLjc1MzU2MiwgMC45NjI5MTUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDAzOSwgMC4wMDQxMjEsIDAuMDA0MTI5LCAwLjAwNDEzLCAwLjAwNDEzMSwgMC4wMDQxMzMsIDAuMDA0MTMzIiwgXAotICAgICAgICAgICIwLjAwNDAzNiwgMC4wMDQwOTksIDAuMDA0MTEzLCAwLjAwNDExOSwgMC4wMDQxMjMsIDAuMDA0MTI3LCAwLjAwNDEyNyIsIFwKLSAgICAgICAgICAiMC4wMDQyMDQsIDAuMDA0MTA5LCAwLjAwNDExNywgMC4wMDQxMjEsIDAuMDA0MTI2LCAwLjAwNDEyOCwgMC4wMDQxMjgiLCBcCi0gICAgICAgICAgIjAuMDA0NTAyLCAwLjAwNDE5NywgMC4wMDQxNjksIDAuMDA0MTYyLCAwLjAwNDE1MiwgMC4wMDQxNSwgMC4wMDQxNDgiLCBcCi0gICAgICAgICAgIjAuMDA0OTA3LCAwLjAwNDM3OSwgMC4wMDQyODIsIDAuMDA0MjQ4LCAwLjAwNDIxOSwgMC4wMDQyMDQsIDAuMDA0MTkiLCBcCi0gICAgICAgICAgIjAuMDA1ODc5LCAwLjAwNDYyNywgMC4wMDQ0NDEsIDAuMDA0Mzc4LCAwLjAwNDMxOCwgMC4wMDQyODUsIDAuMDA0MjY1IiwgXAotICAgICAgICAgICIwLjAwNjI5MywgMC4wMDQ5MzksIDAuMDA0NjIxLCAwLjAwNDUyNSwgMC4wMDQ0MjUsIDAuMDA0MzgxLCAwLjAwNDMzNCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwMjE0LCAwLjAwMDExNCwgMC4wMDAxMDUsIDAuMDAwMTAyLCAwLjAwMDA5OSwgMC4wMDAwOTgsIDAuMDAwMDk3IiwgXAotICAgICAgICAgICIwLjAwMDI3NSwgMC4wMDAxNTIsIDAuMDAwMTI3LCAwLjAwMDExOSwgMC4wMDAxMTIsIDAuMDAwMTA4LCAwLjAwMDEwNSIsIFwKLSAgICAgICAgICAiMC4wMDAwODQsIDAuMDAwMTQ5LCAwLjAwMDEyOSwgMC4wMDAxMjIsIDAuMDAwMTE1LCAwLjAwMDExMSwgMC4wMDAxMDciLCBcCi0gICAgICAgICAgIjAuMDAwMjE5LCAwLjAwMDA2NSwgMC4wMDAwODUsIDAuMDAwMDg5LCAwLjAwMDA5MSwgMC4wMDAwOTMsIDAuMDAwMDkzIiwgXAotICAgICAgICAgICIwLjAwMDY2MSwgMC4wMDAxLCAwLjAwMDAxNCwgMC4wMDAwMTIsIDAuMDAwMDM2LCAwLjAwMDA0NywgMC4wMDAwNTciLCBcCi0gICAgICAgICAgIjAuMDAxMzcxLCAwLjAwMDU0NywgMC4wMDAzMSwgMC4wMDAyMjQsIDAuMDAwMTQzLCAwLjAwMDEsIDAuMDAwMDYxIiwgXAotICAgICAgICAgICIwLjAwMjA5NywgMC4wMDA2MzgsIDAuMDAwMzQ2LCAwLjAwMDI0OSwgMC4wMDAxNTYsIDAuMDAwMTE2LCAwLjAwMDA3MiIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBNREZGSFFYOCAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoTURGRkhRWDgpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMS45Njg2OTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBmZiAoTjMwLFFCSU5UKSB7Ci0gICAgbmV4dF9zdGF0ZSA6ICIoKFMwIEQxKSArICghUzAgRDApKSI7Ci0gICAgY2xvY2tlZF9vbiA6ICJDSyI7Ci0gIH0KLSAgcGluKENLKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2MTc2NDY7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjE3NjQ2OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDYxNzU1ODsKLSAgICBjbG9jayA6IHRydWU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA0MjI1LCAwLjAwNDIxNSwgMC4wMDQyOTYsIDAuMDA0Mzc4LCAwLjAwNDQ5NiwgMC4wMDQ3MzcsIDAuMDA0OTE5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA5NDk3LCAwLjAwOTQ4NCwgMC4wMDk1NzUsIDAuMDA5NywgMC4wMDk4NjMsIDAuMDEwMDMxLCAwLjAxMDI0NCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQwJiFEMSYhUzAiOwotICAgICAgc2RmX2NvbmQgOiAiRDBfRVFfMF9BTl9EMV9FUV8wX0FOX1MwX0VRXzAgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wODgzMTQsIDAuMDk2NjE3LCAwLjEwNjA0LCAwLjExMzg2NCwgMC4xMTk5OTksIDAuMTI4MTM3LCAwLjEzNDQxOSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDY1MjU0LCAwLjA3MzM1OSwgMC4wODI4MTcsIDAuMDkwMTM4LCAwLjA5NjEwNiwgMC4xMDM5MzQsIDAuMTA5NTkyIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihEMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwOTYzMTE1OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDk2MTAzOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDk2MzExNTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDQzMzUsIDAuMDA0MjkxLCAwLjAwNDMxMywgMC4wMDQzNzIsIDAuMDA0NDYxLCAwLjAwNDYxOCwgMC4wMDQ3ODUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDcwMjEsIDAuMDA2OTkxLCAwLjAwNzAyMSwgMC4wMDcwODIsIDAuMDA3MTQ1LCAwLjAwNzMwMywgMC4wMDc0NzEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIVMwIjsKLSAgICAgIHNkZl9jb25kIDogIlMwID09IDEnYjAiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAyNSwgLTAuMDIsIC0wLjAxMzc1LCAtMC4wMDc1LCAtMC4wMDc1LCAtMC4wMDM3NSwgLTAuMDAxMjUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA4NzUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDMxMjUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTUsIC0wLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzNzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMzEyNSwgLTAuMDIxMjUsIC0wLjAxODc1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDQzNzUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDI3NSwgLTAuMDI1IiwgXAotICAgICAgICAgICItMC4wNTg3NSwgLTAuMDUzNzUsIC0wLjA0NzUsIC0wLjA0NzUsIC0wLjA0MTI1LCAtMC4wMzc1LCAtMC4wMzUiLCBcCi0gICAgICAgICAgIi0wLjA2MTI1LCAtMC4wNTYyNSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNSwgLTAuMDQ2MjUsIC0wLjA0Mzc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMCwgMC4wMDUsIDAuMDE3NSwgMC4wMjM3NSwgMC4wMjM3NSwgMC4wMzM3NSwgMC4wMzYyNSIsIFwKLSAgICAgICAgICAiLTAuMDA1LCAwLCAwLjAxMjUsIDAuMDE4NzUsIDAuMDE4NzUsIDAuMDI4NzUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjAxMTI1LCAtMC4wMDYyNSwgMC4wMDYyNSwgMC4wMTI1LCAwLjAxMjUsIDAuMDIyNSwgMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjAxNzUsIC0wLjAxMjUsIDAsIDAuMDA2MjUsIDAuMDA2MjUsIDAuMDE2MjUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMCwgMC4wMDYyNSwgMC4wMSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDI3NSwgLTAuMDE2MjUsIC0wLjAxLCAtMC4wMDM3NSwgLTAuMDAzNzUsIDAuMDA2MjUsIDAuMDA4NzUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMjUsIC0wLjAxMjUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLjAwMzc1LCAwLjAwNjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhUzAiOwotICAgICAgc2RmX2NvbmQgOiAiUzAgPT0gMSdiMCI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQzNzUsIDAuMDM4NzUsIDAuMDMyNSwgMC4wMjYyNSwgMC4wMjYyNSwgMC4wMjI1LCAwLjAxMzc1IiwgXAotICAgICAgICAgICIwLjA1NSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAzMTI1LCAwLjAyNzUsIDAuMDI1IiwgXAotICAgICAgICAgICIwLjA2MTI1LCAwLjA1LCAwLjA0Mzc1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDMzNzUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMDY3NSwgMC4wNjI1LCAwLjA1LCAwLjA1LCAwLjA0Mzc1LCAwLjA0LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIjAuMDczNzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNTYyNSwgMC4wNSwgMC4wNDYyNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4wODM3NSwgMC4wNzI1LCAwLjA2NjI1LCAwLjA2NjI1LCAwLjA2LCAwLjA1NjI1LCAwLjA1Mzc1IiwgXAotICAgICAgICAgICIwLjA4NjI1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjg3NSwgMC4wNTg3NSwgMC4wNTYyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzMTI1LCAwLjAyLCAwLjAxMzc1LCAwLjAwNzUsIDAuMDAxMjUsIC0wLjAwODc1LCAtMC4wMTc1IiwgXAotICAgICAgICAgICIwLjAzNjI1LCAwLjAyNSwgMC4wMTg3NSwgMC4wMTI1LCAwLjAwNjI1LCAtMC4wMDM3NSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMDQyNSwgMC4wMzEyNSwgMC4wMjUsIDAuMDE4NzUsIDAuMDEyNSwgMC4wMDI1LCAwIiwgXAotICAgICAgICAgICIwLjA0ODc1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDI1LCAwLjAxODc1LCAwLjAwODc1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICIwLjA1NSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMTUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4wNTg3NSwgMC4wNTM3NSwgMC4wNDEyNSwgMC4wMzUsIDAuMDI4NzUsIDAuMDI1LCAwLjAxNjI1IiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDU2MjUsIDAuMDUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMjc1LCAwLjAxODc1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihEMSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwOTMzODM3OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDkzMTM2NDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA5MzM4Mzc7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA0MDM0LCAwLjAwMzk5MSwgMC4wMDQwMTUsIDAuMDA0MDc5LCAwLjAwNDE2LCAwLjAwNDMyMiwgMC4wMDQ1MTMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDczODcsIDAuMDA3MzU5LCAwLjAwNzM4MSwgMC4wMDc0MjYsIDAuMDA3NTA3LCAwLjAwNzY0NSwgMC4wMDc4MTQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiUzAiOwotICAgICAgc2RmX2NvbmQgOiAiUzAgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDI1LCAtMC4wMiwgLTAuMDEzNzUsIC0wLjAwNzUsIC0wLjAwNzUsIC0wLjAwMzc1LCAtMC4wMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDg3NSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTUsIC0wLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzNzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMzEyNSwgLTAuMDIxMjUsIC0wLjAxODc1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMjc1LCAtMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjA1ODc1LCAtMC4wNTM3NSwgLTAuMDQ3NSwgLTAuMDQ3NSwgLTAuMDQxMjUsIC0wLjAzNzUsIC0wLjAzNSIsIFwKLSAgICAgICAgICAiLTAuMDY3NSwgLTAuMDU2MjUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDUsIC0wLjA0NjI1LCAtMC4wNDM3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAsIDAuMDA1LCAwLjAxNzUsIDAuMDE3NSwgMC4wMjM3NSwgMC4wMzM3NSwgMC4wMzYyNSIsIFwKLSAgICAgICAgICAiLTAuMDA1LCAwLCAwLjAwNjI1LCAwLjAxMjUsIDAuMDE4NzUsIDAuMDI4NzUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjAxMTI1LCAtMC4wMDYyNSwgMCwgMC4wMDYyNSwgMC4wMTI1LCAwLjAyMjUsIDAuMDI1IiwgXAotICAgICAgICAgICItMC4wMTc1LCAtMC4wMTI1LCAwLCAwLjAwNjI1LCAwLjAwNjI1LCAwLjAxNjI1LCAwLjAxODc1IiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAsIDAuMDA2MjUsIDAuMDEsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDI3NSwgLTAuMDE2MjUsIC0wLjAxLCAtMC4wMDM3NSwgLTAuMDAzNzUsIDAuMDA2MjUsIDAuMDA4NzUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMjUsIC0wLjAxMjUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLjAwMzc1LCAwLjAwNjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJTMCI7Ci0gICAgICBzZGZfY29uZCA6ICJTMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDM3NSwgMC4wMzg3NSwgMC4wMzI1LCAwLjAyNjI1LCAwLjAyNjI1LCAwLjAyMjUsIDAuMDEzNzUiLCBcCi0gICAgICAgICAgIjAuMDU1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDMxMjUsIDAuMDI3NSwgMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMDYxMjUsIDAuMDUsIDAuMDQzNzUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzM3NSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4wNjc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDUsIDAuMDQzNzUsIDAuMDQsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiMC4wNzM3NSwgMC4wNjg3NSwgMC4wNTYyNSwgMC4wNTYyNSwgMC4wNSwgMC4wNDYyNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4wODM3NSwgMC4wNzI1LCAwLjA2NjI1LCAwLjA2NjI1LCAwLjA2LCAwLjA1NjI1LCAwLjA1Mzc1IiwgXAotICAgICAgICAgICIwLjA4NjI1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjg3NSwgMC4wNjUsIDAuMDU2MjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzEyNSwgMC4wMiwgMC4wMTM3NSwgMC4wMDc1LCAwLjAwMTI1LCAtMC4wMDg3NSwgLTAuMDExMjUiLCBcCi0gICAgICAgICAgIjAuMDM2MjUsIDAuMDI1LCAwLjAxODc1LCAwLjAxMjUsIDAuMDA2MjUsIC0wLjAwMzc1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiMC4wNDI1LCAwLjAzNzUsIDAuMDI1LCAwLjAxODc1LCAwLjAxMjUsIDAuMDAyNSwgMCIsIFwKLSAgICAgICAgICAiMC4wNDg3NSwgMC4wNDM3NSwgMC4wMzEyNSwgMC4wMjUsIDAuMDE4NzUsIDAuMDA4NzUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMDU1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDI1LCAwLjAxNSwgMC4wMTI1IiwgXAotICAgICAgICAgICIwLjA1ODc1LCAwLjA1Mzc1LCAwLjA0MTI1LCAwLjAzNSwgMC4wMjg3NSwgMC4wMjUsIDAuMDE2MjUiLCBcCi0gICAgICAgICAgIjAuMDY3NSwgMC4wNTYyNSwgMC4wNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAyNzUsIDAuMDI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihRKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDIuNjY5MzM7Ci0gICAgZnVuY3Rpb24gOiAiTjMwIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBub25fdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJpc2luZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4MTczNCwgMC4xMTA2MDUsIDAuMTM3OTEyLCAwLjE1NzM4NSwgMC4xODg1MDYsIDAuMjE1NzQ2LCAwLjI1NDY1OSIsIFwKLSAgICAgICAgICAiMC4wOTAwMDgsIDAuMTE4ODc0LCAwLjE0NjE3OSwgMC4xNjU2MzgsIDAuMTk2Nzc3LCAwLjIyNDAyNiwgMC4yNjI5MzMiLCBcCi0gICAgICAgICAgIjAuMDk5MzksIDAuMTI4MjY2LCAwLjE1NTU3LCAwLjE3NTA0MywgMC4yMDYxNzEsIDAuMjMzNDI0LCAwLjI3MjMyNyIsIFwKLSAgICAgICAgICAiMC4xMDcwOSwgMC4xMzU5NjcsIDAuMTYzMjcsIDAuMTgyNzQ1LCAwLjIxMzg2NiwgMC4yNDExMDUsIDAuMjgwMDI0IiwgXAotICAgICAgICAgICIwLjExMzI4NSwgMC4xNDIxNjMsIDAuMTY5NDYxLCAwLjE4ODkzNSwgMC4yMjAwNjgsIDAuMjQ3MzE0LCAwLjI4NjIyMSIsIFwKLSAgICAgICAgICAiMC4xMjE0MTMsIDAuMTUwMzAzLCAwLjE3NzYsIDAuMTk3MDY4LCAwLjIyODE5NCwgMC4yNTU0MzEsIDAuMjk0MzU3IiwgXAotICAgICAgICAgICIwLjEyNzg4OCwgMC4xNTY3NjcsIDAuMTg0MDY5LCAwLjIwMzUyNywgMC4yMzQ2NjIsIDAuMjYxOTEzLCAwLjMwMDgyNSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxNzI3OCwgMC4wNzE2MTUsIDAuMTI4MjYsIDAuMTY5MDgxLCAwLjIzNDYyOCwgMC4yOTIwOCwgMC4zNzQxNjQiLCBcCi0gICAgICAgICAgIjAuMDE3Mjg5LCAwLjA3MTYyMSwgMC4xMjgyNjYsIDAuMTY5MDgsIDAuMjM0NTEsIDAuMjkyMjI5LCAwLjM3NDQzNyIsIFwKLSAgICAgICAgICAiMC4wMTcyNTgsIDAuMDcxNjIsIDAuMTI4MjYsIDAuMTY5MDgyLCAwLjIzNDUxNSwgMC4yOTE4NDYsIDAuMzc0NDQ2IiwgXAotICAgICAgICAgICIwLjAxNzI4NiwgMC4wNzE2MjEsIDAuMTI4MjU5LCAwLjE2ODk2OCwgMC4yMzQ2NDEsIDAuMjkyMDEsIDAuMzc0Mzk1IiwgXAotICAgICAgICAgICIwLjAxNzI5NSwgMC4wNzE2MjQsIDAuMTI4MjU0LCAwLjE2OTA3NiwgMC4yMzQ0MzksIDAuMjkyMjE3LCAwLjM3NDQxNSIsIFwKLSAgICAgICAgICAiMC4wMTcyOTIsIDAuMDcxNjQxLCAwLjEyODI2NCwgMC4xNjkwNzgsIDAuMjM0NTU2LCAwLjI5MTk1OSwgMC4zNzQ0NCIsIFwKLSAgICAgICAgICAiMC4wMTczLCAwLjA3MTcwOSwgMC4xMjgxODksIDAuMTY5MDg1LCAwLjIzNDYwNSwgMC4yOTE4NzgsIDAuMzczODMxIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg4MzE0LCAwLjExODAxOCwgMC4xNDYyNzUsIDAuMTY2NDE4LCAwLjE5ODYzNiwgMC4yMjY4MTQsIDAuMjY3MDY5IiwgXAotICAgICAgICAgICIwLjA5NjYxNywgMC4xMjYzMTUsIDAuMTU0NTcyLCAwLjE3NDcxOCwgMC4yMDY5MzIsIDAuMjM1MTEsIDAuMjc1MzY1IiwgXAotICAgICAgICAgICIwLjEwNjA0LCAwLjEzNTc0MSwgMC4xNjM5OTYsIDAuMTg0MTQyLCAwLjIxNjM1OCwgMC4yNDQ1MzcsIDAuMjg0ODA3IiwgXAotICAgICAgICAgICIwLjExMzg2NCwgMC4xNDM1NjYsIDAuMTcxODI2LCAwLjE5MTk3MywgMC4yMjQxODMsIDAuMjUyMzY0LCAwLjI5MjYzMiIsIFwKLSAgICAgICAgICAiMC4xMiwgMC4xNDk3MDQsIDAuMTc3OTYyLCAwLjE5ODEwOCwgMC4yMzAzMiwgMC4yNTg1MTQsIDAuMjk4NzU0IiwgXAotICAgICAgICAgICIwLjEyODE0MSwgMC4xNTc4NTUsIDAuMTg2MTA3LCAwLjIwNjI0OSwgMC4yMzg0NjEsIDAuMjY2NjQ0LCAwLjMwNjkxNiIsIFwKLSAgICAgICAgICAiMC4xMzQ0MTksIDAuMTY0MTI2LCAwLjE5MjM4NiwgMC4yMTI1MjcsIDAuMjQ0NzQ5LCAwLjI3MjkyNSwgMC4zMTMxODEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTY3MzksIDAuMDcyNjIzLCAwLjEzMDU0NywgMC4xNzIxNDgsIDAuMjM5MzE2LCAwLjI5NzkwOSwgMC4zODE3MTEiLCBcCi0gICAgICAgICAgIjAuMDE2NzM0LCAwLjA3MjY3MiwgMC4xMzA1MTQsIDAuMTcyMTU3LCAwLjIzOTMyLCAwLjI5NzkwNiwgMC4zODE3MjIiLCBcCi0gICAgICAgICAgIjAuMDE2NzI4LCAwLjA3MjY2NCwgMC4xMzA1MTksIDAuMTcyMTYsIDAuMjM5MzQyLCAwLjI5NzkyNCwgMC4zODE4MDMiLCBcCi0gICAgICAgICAgIjAuMDE2NzM2LCAwLjA3MjY3NCwgMC4xMzA1MTcsIDAuMTcyMTYsIDAuMjM5Mjc1LCAwLjI5NzkyOSwgMC4zODE4IiwgXAotICAgICAgICAgICIwLjAxNjczNiwgMC4wNzI2NTYsIDAuMTMwNTE5LCAwLjE3MjE2MSwgMC4yMzkzMDcsIDAuMjk3OTA2LCAwLjM4MTczMiIsIFwKLSAgICAgICAgICAiMC4wMTY3MjUsIDAuMDcyNjc2LCAwLjEzMDUxOCwgMC4xNzIxMzQsIDAuMjM4OTQzLCAwLjI5NzkzNiwgMC4zODE4IiwgXAotICAgICAgICAgICIwLjAxNjcxNiwgMC4wNzI2MTUsIDAuMTMwNTYxLCAwLjE3MjIsIDAuMjM5MzI3LCAwLjI5Nzg2LCAwLjM4MTciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjAzODYsIDAuMDIwNjg5LCAwLjAyMDc3MywgMC4wMjA4LCAwLjAyMDgyNiwgMC4wMjA4NCwgMC4wMjA4NTciLCBcCi0gICAgICAgICAgIjAuMDIwNDA2LCAwLjAyMDY4OSwgMC4wMjA3NjksIDAuMDIwNzk1LCAwLjAyMDgyMSwgMC4wMjA4MzYsIDAuMDIwODU0IiwgXAotICAgICAgICAgICIwLjAyMDQ0NCwgMC4wMjA3NDksIDAuMDIwODMzLCAwLjAyMDg2MiwgMC4wMjA4ODgsIDAuMDIwOTAxLCAwLjAyMDkxMyIsIFwKLSAgICAgICAgICAiMC4wMjA1NTYsIDAuMDIwODU3LCAwLjAyMDk0LCAwLjAyMDk2OSwgMC4wMjA5OTQsIDAuMDIxMDA5LCAwLjAyMTAyMSIsIFwKLSAgICAgICAgICAiMC4wMjA2ODMsIDAuMDIwOTgyLCAwLjAyMTA2NSwgMC4wMjEwOTUsIDAuMDIxMTIxLCAwLjAyMTEzNSwgMC4wMjExNDgiLCBcCi0gICAgICAgICAgIjAuMDIwOTE2LCAwLjAyMTIwOCwgMC4wMjEyOTMsIDAuMDIxMzIxLCAwLjAyMTM0NywgMC4wMjEzNTcsIDAuMDIxMzgiLCBcCi0gICAgICAgICAgIjAuMDIxMTA4LCAwLjAyMTQxNiwgMC4wMjE0OTIsIDAuMDIxNTIyLCAwLjAyMTU0NSwgMC4wMjE1NjUsIDAuMDIxNTU5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjA2MTksIDAuMDIxMDc1LCAwLjAyMTIwMiwgMC4wMjEyNDUsIDAuMDIxMjg3LCAwLjAyMTMwNiwgMC4wMjEzMjciLCBcCi0gICAgICAgICAgIjAuMDIwNjM1LCAwLjAyMTA4MSwgMC4wMjEyMDUsIDAuMDIxMjQ4LCAwLjAyMTI4OCwgMC4wMjEzMDksIDAuMDIxMzI4IiwgXAotICAgICAgICAgICIwLjAyMDcyMywgMC4wMjExNzYsIDAuMDIxMzAyLCAwLjAyMTM0NSwgMC4wMjEzODUsIDAuMDIxNDA2LCAwLjAyMTQyNSIsIFwKLSAgICAgICAgICAiMC4wMjA4MzUsIDAuMDIxMjg4LCAwLjAyMTQxMiwgMC4wMjE0NTUsIDAuMDIxNDk1LCAwLjAyMTUxNiwgMC4wMjE1MzciLCBcCi0gICAgICAgICAgIjAuMDIwOTY4LCAwLjAyMTQxOSwgMC4wMjE1NDQsIDAuMDIxNTg5LCAwLjAyMTYyOCwgMC4wMjE2NDgsIDAuMDIxNjY5IiwgXAotICAgICAgICAgICIwLjAyMTI0NCwgMC4wMjE2OTUsIDAuMDIxODE2LCAwLjAyMTg2MiwgMC4wMjE5MDIsIDAuMDIxOTI0LCAwLjAyMTk0MyIsIFwKLSAgICAgICAgICAiMC4wMjE0NDIsIDAuMDIxODk5LCAwLjAyMTk4OSwgMC4wMjIwNjgsIDAuMDIyMTA1LCAwLjAyMjEyOCwgMC4wMjIxNDciKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFMwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE3MzM1MjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE3MzI5MjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE3MzM1MjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDY1OTUsIDAuMDA2NTkyLCAwLjAwNjY2OSwgMC4wMDY3NjgsIDAuMDA2ODk0LCAwLjAwNzEwMSwgMC4wMDcyOTkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDgzMDksIDAuMDA4MzI0LCAwLjAwODQ0OSwgMC4wMDg2NTIsIDAuMDA4OTA3LCAwLjAwOTMyMSwgMC4wMDk3MTEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUQwJkQxIjsKLSAgICAgIHNkZl9jb25kIDogIkQwX0VRXzBfQU5fRDFfRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMTg3NSwgLTAuMDEzNzUsIC0wLjAwNzUsIC0wLjAwNzUsIC0wLjAwMTI1LCAwLjAwMjUsIDAuMDA1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDEyNSwgLTAuMDA4NzUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDE1LCAtMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDIxMjUsIC0wLjAxODc1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMjc1LCAtMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjA1ODc1LCAtMC4wNTM3NSwgLTAuMDQ3NSwgLTAuMDQ3NSwgLTAuMDQxMjUsIC0wLjAzNzUsIC0wLjAzNSIsIFwKLSAgICAgICAgICAiLTAuMDY3NSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNSwgLTAuMDQ2MjUsIC0wLjA0Mzc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDYyNSwgMC4wMTEyNSwgMC4wMTc1LCAwLjAyMzc1LCAwLjAzLCAwLjA0LCAwLjA0MjUiLCBcCi0gICAgICAgICAgIi0wLjAwNSwgMC4wMDYyNSwgMC4wMTI1LCAwLjAxODc1LCAwLjAyNSwgMC4wMjg3NSwgMC4wMzc1IiwgXAotICAgICAgICAgICItMC4wMTEyNSwgLTAuMDA2MjUsIDAuMDA2MjUsIDAuMDEyNSwgMC4wMTg3NSwgMC4wMjI1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDE3NSwgLTAuMDA2MjUsIDAsIDAuMDA2MjUsIDAuMDEyNSwgMC4wMTYyNSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLCAwLjAwNjI1LCAwLjAxLCAwLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjAyNzUsIC0wLjAyMjUsIC0wLjAxLCAtMC4wMSwgLTAuMDAzNzUsIDAuMDA2MjUsIDAuMDA4NzUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgLTAuMDAyNSwgMC4wMDYyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJEMCYhRDEiOwotICAgICAgc2RmX2NvbmQgOiAiRDBfRVFfMV9BTl9EMV9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAwNjI1LCAtMC4wMDEyNSwgMC4wMDUsIDAuMDExMjUsIDAuMDE3NSwgMC4wMjc1LCAwLjAzIiwgXAotICAgICAgICAgICItMC4wMTc1LCAtMC4wMDYyNSwgMCwgMC4wMDYyNSwgMC4wMTI1LCAwLjAxNjI1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLCAwLjAwNjI1LCAwLjAxLCAwLjAxODc1IiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLCAwLjAwMzc1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMjUsIC0wLjAxMjUsIC0wLjAwNjI1LCAtMC4wMDYyNSwgMC4wMDM3NSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDMzNzUsIC0wLjAyODc1LCAtMC4wMjI1LCAtMC4wMTYyNSwgLTAuMDEsIDAsIDAuMDAyNSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwODc1LCAwIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDMxMjUsIC0wLjAyNjI1LCAtMC4wMiwgLTAuMDIsIC0wLjAxMzc1LCAtMC4wMSwgLTAuMDA3NSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDI1LCAtMC4wMjEyNSwgLTAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAzMTI1LCAtMC4wMjc1LCAtMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjA1NSwgLTAuMDQzNzUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzc1LCAtMC4wMjc1LCAtMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjA1NSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDMzNzUsIC0wLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wNTg3NSwgLTAuMDUzNzUsIC0wLjA0NzUsIC0wLjA0NzUsIC0wLjA0MTI1LCAtMC4wMzc1LCAtMC4wMzUiLCBcCi0gICAgICAgICAgIi0wLjA2NzUsIC0wLjA1NjI1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wNCwgLTAuMDM3NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUQwJkQxIjsKLSAgICAgIHNkZl9jb25kIDogIkQwX0VRXzBfQU5fRDFfRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDM3NSwgMC4wMzI1LCAwLjAyNjI1LCAwLjAyNjI1LCAwLjAyLCAwLjAxNjI1LCAwLjAxMzc1IiwgXAotICAgICAgICAgICIwLjA0ODc1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDI1LCAwLjAyMTI1LCAwLjAxODc1IiwgXAotICAgICAgICAgICIwLjA2MTI1LCAwLjA1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDM3NSwgMC4wMzM3NSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4wNjc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDUsIDAuMDQzNzUsIDAuMDQsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiMC4wNzM3NSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1LCAwLjA0NjI1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjA4Mzc1LCAwLjA3ODc1LCAwLjA3MjUsIDAuMDY2MjUsIDAuMDYsIDAuMDU2MjUsIDAuMDUzNzUiLCBcCi0gICAgICAgICAgIjAuMDkyNSwgMC4wODEyNSwgMC4wNzUsIDAuMDc1LCAwLjA2ODc1LCAwLjA2NSwgMC4wNjI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDI1LCAwLjAxMzc1LCAwLjAwNzUsIDAuMDAxMjUsIC0wLjAwNSwgLTAuMDE1LCAtMC4wMTc1IiwgXAotICAgICAgICAgICIwLjAzLCAwLjAyNSwgMC4wMTI1LCAwLjAwNjI1LCAwLCAtMC4wMDM3NSwgLTAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4wNDI1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMTg3NSwgMC4wMTI1LCAwLjAwMjUsIDAiLCBcCi0gICAgICAgICAgIjAuMDQ4NzUsIDAuMDQzNzUsIDAuMDMxMjUsIDAuMDI1LCAwLjAxODc1LCAwLjAwODc1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICIwLjA1NSwgMC4wNSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMTUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4wNjUsIDAuMDUzNzUsIDAuMDQ3NSwgMC4wNDEyNSwgMC4wMzUsIDAuMDI1LCAwLjAyMjUiLCBcCi0gICAgICAgICAgIjAuMDczNzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzMzc1LCAwLjAyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiRDAmIUQxIjsKLSAgICAgIHNkZl9jb25kIDogIkQwX0VRXzFfQU5fRDFfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzc1LCAwLjAyNjI1LCAwLjAyLCAwLjAxMzc1LCAwLjAwNzUsIC0wLjAwMjUsIC0wLjAwNSIsIFwKLSAgICAgICAgICAiMC4wNDI1LCAwLjAzNzUsIDAuMDI1LCAwLjAxODc1LCAwLjAxMjUsIDAuMDA4NzUsIDAiLCBcCi0gICAgICAgICAgIjAuMDQ4NzUsIDAuMDQzNzUsIDAuMDMxMjUsIDAuMDI1LCAwLjAxODc1LCAwLjAxNSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiMC4wNTUsIDAuMDUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMjUsIDAuMDE1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMDYxMjUsIDAuMDUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMjEyNSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4wNjUsIDAuMDUzNzUsIDAuMDQ3NSwgMC4wNDEyNSwgMC4wMzUsIDAuMDI1LCAwLjAyMjUiLCBcCi0gICAgICAgICAgIjAuMDY3NSwgMC4wNjI1LCAwLjA1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDMzNzUsIDAuMDI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU2MjUsIDAuMDQ1LCAwLjAzODc1LCAwLjAzODc1LCAwLjAzMjUsIDAuMDI4NzUsIDAuMDI2MjUiLCBcCi0gICAgICAgICAgIjAuMDYxMjUsIDAuMDU2MjUsIDAuMDUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzM3NSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4wNjc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDUsIDAuMDUsIDAuMDQsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiMC4wNzM3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1NjI1LCAwLjA1LCAwLjA0NjI1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjA4LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDU2MjUsIDAuMDUyNSwgMC4wNSIsIFwKLSAgICAgICAgICAiMC4wODM3NSwgMC4wNzI1LCAwLjA2NjI1LCAwLjA2NjI1LCAwLjA2LCAwLjA1NjI1LCAwLjA1Mzc1IiwgXAotICAgICAgICAgICIwLjA4NjI1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1ODc1LCAwLjA1NjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IE1YMlgxICoKLSAqIC0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChNWDJYMSkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjM1NTk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY4ODQ5OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDY4NzQ3ODsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2ODg0OTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyODEsIDAuMDAwMjg0LCAwLjAwMDI4NSwgMC4wMDAyODYsIDAuMDAwMjg3LCAwLjAwMDI4NywgMC4wMDAyODgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAzMTYsIDAuMDAwMzA1LCAwLjAwMDMwMywgMC4wMDAzMDIsIDAuMDAwMzAxLCAwLjAwMDMwMSwgMC4wMDAzIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA3MjI0NDc7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNzIxNjUyOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDcyMjQ0NzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyODksIDAuMDAwMjksIDAuMDAwMjkxLCAwLjAwMDI5MSwgMC4wMDAyOTEsIDAuMDAwMjkxLCAwLjAwMDI5MiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDMxNSwgMC4wMDAzMDQsIDAuMDAwMzAyLCAwLjAwMDMwMSwgMC4wMDAzLCAwLjAwMDMsIDAuMDAwMjk5Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxMzc3MTY7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxMzc3MTY7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxMzc2NDk7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMTg3LCAwLjAwMDIwNywgMC4wMDAyODUsIDAuMDAwMzk5LCAwLjAwMDUyNSwgMC4wMDA3ODcsIDAuMDAwOTg5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyNTMxLCAwLjAwMjU0OSwgMC4wMDI2MzEsIDAuMDAyNzMxLCAwLjAwMjg1NSwgMC4wMDMwNzQsIDAuMDAzMjY1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMzQwOTM2OwotICAgIGZ1bmN0aW9uIDogIigoUzAgQikgKyAoIVMwIEEpKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY2ODQxLCAwLjA4NTYzOCwgMC4xOTEyNzcsIDAuMjg0Mzg2LCAwLjQwODQ5MSwgMC42NTY3MjYsIDAuODExODUxIiwgXAotICAgICAgICAgICIwLjA3MjkxOCwgMC4wOTE3MiwgMC4xOTczNzksIDAuMjkwNTA4LCAwLjQxNDYsIDAuNjYyODcxLCAwLjgxNzkyNCIsIFwKLSAgICAgICAgICAiMC4wNzk5NDEsIDAuMDk4NzY1LCAwLjIwNDQyNSwgMC4yOTc1NzQsIDAuNDIxNjQ1LCAwLjY2OTg1LCAwLjgyNTA4MyIsIFwKLSAgICAgICAgICAiMC4wODYwMzUsIDAuMTA0ODYsIDAuMjEwNTIsIDAuMzAzNjQzLCAwLjQyNzczMywgMC42NzU5MDYsIDAuODMxMDIyIiwgXAotICAgICAgICAgICIwLjA5MTIxMywgMC4xMTAwNzEsIDAuMjE1NzU0LCAwLjMwODgxNiwgMC40MzI5NzksIDAuNjgxMjQ3LCAwLjgzNjIzMiIsIFwKLSAgICAgICAgICAiMC4wOTgyODgsIDAuMTE3MjA1LCAwLjIyMjkxNiwgMC4zMTYwMjUsIDAuNDQwMTQxLCAwLjY4ODM5MiwgMC44NDM0ODUiLCBcCi0gICAgICAgICAgIjAuMTAzNTg1LCAwLjEyMjUsIDAuMjI4MTk1LCAwLjMyMTQ5OSwgMC40NDU1ODgsIDAuNjkzNzY3LCAwLjg0ODg3MSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzM2NjYsIDAuMTExODA3LCAwLjMzMjY2OSwgMC41MjgwNDMsIDAuNzg5MTIxLCAxLjMxMDc1LCAxLjYzNjkyIiwgXAotICAgICAgICAgICIwLjA3MzYxNywgMC4xMTE3ODcsIDAuMzMyMjYxLCAwLjUyODUyNiwgMC43ODkyODUsIDEuMzEyODcsIDEuNjM4MDgiLCBcCi0gICAgICAgICAgIjAuMDczOTMsIDAuMTExOTQ2LCAwLjMzMjYwMywgMC41Mjg0ODksIDAuNzg5MTcxLCAxLjMxMTY3LCAxLjYzOTU4IiwgXAotICAgICAgICAgICIwLjA3NDUxMiwgMC4xMTIzMjEsIDAuMzMyNjQxLCAwLjUyODQ3NywgMC43ODk4NTgsIDEuMzExNTQsIDEuNjM4MTgiLCBcCi0gICAgICAgICAgIjAuMDc0OTcyLCAwLjExMjY3MiwgMC4zMzIyNzgsIDAuNTI4MDM0LCAwLjc4OTg1MywgMS4zMTI3MywgMS42Mzk1MiIsIFwKLSAgICAgICAgICAiMC4wNzU4MjksIDAuMTEzMjI4LCAwLjMzMjUyMywgMC41Mjg0NDksIDAuNzg5Nzc2LCAxLjMxMjY1LCAxLjYzOTQxIiwgXAotICAgICAgICAgICIwLjA3NjcwOCwgMC4xMTQwNDIsIDAuMzMyNjQ3LCAwLjUyODAzLCAwLjc4OTI5NCwgMS4zMTE2NSwgMS42Mzc5Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2OTQzNywgMC4wODc4ODEsIDAuMTkwNjQ1LCAwLjI4MTE3LCAwLjQwMTgzNCwgMC42NDMxMDcsIDAuNzkzOSIsIFwKLSAgICAgICAgICAiMC4wNzUzMDQsIDAuMDkzNzM0LCAwLjE5NjUxNywgMC4yODcwNDIsIDAuNDA3NzAyLCAwLjY0ODk4MiwgMC43OTk3NzUiLCBcCi0gICAgICAgICAgIjAuMDgxNzYxLCAwLjEwMDIwNSwgMC4yMDI5NzMsIDAuMjkzNTA1LCAwLjQxNDE2MiwgMC42NTU0MzksIDAuODA2MjMzIiwgXAotICAgICAgICAgICIwLjA4NzI4OCwgMC4xMDU3NzMsIDAuMjA4NTY2LCAwLjI5OTA5MiwgMC40MTk3ODUsIDAuNjYxMDI5LCAwLjgxMTgzMSIsIFwKLSAgICAgICAgICAiMC4wOTE5MzYsIDAuMTEwNDYzLCAwLjIxMzI1OCwgMC4zMDM3NywgMC40MjQ0OTIsIDAuNjY1NzI5LCAwLjgxNjUyMiIsIFwKLSAgICAgICAgICAiMC4wOTgyMzEsIDAuMTE2ODA0LCAwLjIxOTcxNywgMC4zMTAyNTEsIDAuNDMwODg4LCAwLjY3MjI1NiwgMC44MjMwMjgiLCBcCi0gICAgICAgICAgIjAuMTAyOTUyLCAwLjEyMTYyNiwgMC4yMjQ0ODgsIDAuMzE1MDAyLCAwLjQzNTY3MiwgMC42NzY5OTUsIDAuODI3NzIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDcxMjI0LCAwLjEwNzI3MiwgMC4zMTY2MTEsIDAuNTAyMTY4LCAwLjc1MTQyMywgMS4yNDcxNiwgMS41NTc1IiwgXAotICAgICAgICAgICIwLjA3MTE5MSwgMC4xMDcyMzksIDAuMzE2MTM3LCAwLjUwMjE2MSwgMC43NTEzOTIsIDEuMjQ3MjQsIDEuNTU3NiIsIFwKLSAgICAgICAgICAiMC4wNzE0NjIsIDAuMTA3NDM5LCAwLjMxNjYyOCwgMC41MDIyMiwgMC43NTE0MSwgMS4yNDcwNSwgMS41NTk0NSIsIFwKLSAgICAgICAgICAiMC4wNzIwNDEsIDAuMTA3ODM0LCAwLjMxNjY3MSwgMC41MDIxNTgsIDAuNzUxNDM5LCAxLjI0ODY0LCAxLjU1OTM5IiwgXAotICAgICAgICAgICIwLjA3MjY0NSwgMC4xMDgzMjksIDAuMzE2ODEyLCAwLjUwMjgxNywgMC43NTAwMjIsIDEuMjQ4NzUsIDEuNTU5NTUiLCBcCi0gICAgICAgICAgIjAuMDczNDksIDAuMTA4ODYsIDAuMzE2Nzc2LCAwLjUwMjUzNywgMC43NTEzMjgsIDEuMjQ4NTYsIDEuNTU5NzciLCBcCi0gICAgICAgICAgIjAuMDc0Mzc4LCAwLjEwOTU3LCAwLjMxNjgxLCAwLjUwMjIwMSwgMC43NTAyNjIsIDEuMjQ4MzEsIDEuNTU5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2NjQ0MiwgMC4wODUxOTksIDAuMTkwNzkzLCAwLjI4MzkyLCAwLjQwODAwMSwgMC42NTYyMDUsIDAuODExNTE4IiwgXAotICAgICAgICAgICIwLjA3MjY3MywgMC4wOTE0NDMsIDAuMTk3MDQ1LCAwLjI5MDE2MywgMC40MTQyNSwgMC42NjI0NjcsIDAuODE3NTY4IiwgXAotICAgICAgICAgICIwLjA3OTgzOSwgMC4wOTg2MDQsIDAuMjA0MTk3LCAwLjI5NzMyMSwgMC40MjEzOTQsIDAuNjY5NTg1LCAwLjgyNDY5NyIsIFwKLSAgICAgICAgICAiMC4wODU5NjcsIDAuMTA0NzYyLCAwLjIxMDQxMSwgMC4zMDM1MDQsIDAuNDI3NTgsIDAuNjc1NzYsIDAuODMwODYyIiwgXAotICAgICAgICAgICIwLjA5MTEzNCwgMC4xMDk5OTIsIDAuMjE1NjA2LCAwLjMwODY0NywgMC40MzI3NjcsIDAuNjgwOTM1LCAwLjgzNjAyMyIsIFwKLSAgICAgICAgICAiMC4wOTgyNTUsIDAuMTE3MDg4LCAwLjIyMjcxNywgMC4zMTU3OTQsIDAuNDM5OTAyLCAwLjY4ODE0NCwgMC44NDMyMyIsIFwKLSAgICAgICAgICAiMC4xMDM0NDgsIDAuMTIyMzE2LCAwLjIyNzkwMiwgMC4zMjA5NzIsIDAuNDQ1MTE5LCAwLjY5MzIxMywgMC44NDgzMDkiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDczNjg5LCAwLjExMTgxLCAwLjMzMjA2NywgMC41Mjg1NzksIDAuNzg5MzI2LCAxLjMxMTM4LCAxLjYzNzM0IiwgXAotICAgICAgICAgICIwLjA3MzY0NiwgMC4xMTE4MDcsIDAuMzMyMjMyLCAwLjUyODUzNiwgMC43ODkzMzUsIDEuMzEyODYsIDEuNjM3OTMiLCBcCi0gICAgICAgICAgIjAuMDczOTQsIDAuMTEyMDA2LCAwLjMzMjYsIDAuNTI4NDg0LCAwLjc4OTIyNywgMS4zMTE3NSwgMS42MzgzIiwgXAotICAgICAgICAgICIwLjA3NDU1MiwgMC4xMTIzNzgsIDAuMzMyNjM4LCAwLjUyNzg5NywgMC43ODk4NjMsIDEuMzExNjcsIDEuNjM4MSIsIFwKLSAgICAgICAgICAiMC4wNzQ5NzgsIDAuMTEyNzA1LCAwLjMzMjEzOCwgMC41Mjg0MTMsIDAuNzg5ODIzLCAxLjMxMjY4LCAxLjYzOTQ2IiwgXAotICAgICAgICAgICIwLjA3NTk0NiwgMC4xMTMzMTEsIDAuMzMyNTE2LCAwLjUyODQyNSwgMC43ODk3NjUsIDEuMzEyNjUsIDEuNjM5NCIsIFwKLSAgICAgICAgICAiMC4wNzY5MjgsIDAuMTE0MTIzLCAwLjMzMjY1OSwgMC41Mjg0MTUsIDAuNzg4ODU4LCAxLjMxMjQ3LCAxLjYzOTE5Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2OTg2MSwgMC4wODgyOTEsIDAuMTkxMDM3LCAwLjI4MTU1MSwgMC40MDIyMjYsIDAuNjQzNDg4LCAwLjc5NDI4NiIsIFwKLSAgICAgICAgICAiMC4wNzU2MTYsIDAuMDk0MDMyLCAwLjE5Njc3OSwgMC4yODczMTYsIDAuNDA3OTk2LCAwLjY0OTIzOCwgMC44MDAwMzYiLCBcCi0gICAgICAgICAgIjAuMDgxOTk5LCAwLjEwMDQyOSwgMC4yMDMxNjYsIDAuMjkzNjg4LCAwLjQxNDM2NiwgMC42NTU2MywgMC44MDY0MzEiLCBcCi0gICAgICAgICAgIjAuMDg3NTE2LCAwLjEwNTk5MywgMC4yMDg3NywgMC4yOTkyOTYsIDAuNDE5OTc1LCAwLjY2MTI4LCAwLjgxMjAwOSIsIFwKLSAgICAgICAgICAiMC4wOTIxNzQsIDAuMTEwNjg4LCAwLjIxMzQ0LCAwLjMwMzk0OSwgMC40MjQ2NSwgMC42NjU4OTIsIDAuODE2Njg0IiwgXAotICAgICAgICAgICIwLjA5ODQ2MiwgMC4xMTcwNzQsIDAuMjE5OTAzLCAwLjMxMDQwMywgMC40MzEwNTEsIDAuNjcyNDE3LCAwLjgyMzE4MSIsIFwKLSAgICAgICAgICAiMC4xMDMxMTQsIDAuMTIxNzI5LCAwLjIyNDU3MiwgMC4zMTUwODUsIDAuNDM1NzU2LCAwLjY3NzAzNSwgMC44Mjc4MDQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDcxMzMyLCAwLjEwNzM2NiwgMC4zMTYxMTgsIDAuNTAyMTg1LCAwLjc1MTQ3MiwgMS4yNDg1MSwgMS41NTc1MyIsIFwKLSAgICAgICAgICAiMC4wNzEzMTQsIDAuMTA3MzQ3LCAwLjMxNjYzNCwgMC41MDE5MjgsIDAuNzUxNTM0LCAxLjI0ODU4LCAxLjU1OTI3IiwgXAotICAgICAgICAgICIwLjA3MTU3NiwgMC4xMDc1MjQsIDAuMzE2NjMyLCAwLjUwMjc0NywgMC43NTE0NjYsIDEuMjQ4NjIsIDEuNTU3NTciLCBcCi0gICAgICAgICAgIjAuMDcyMTM1LCAwLjEwNzkyMSwgMC4zMTY3NjksIDAuNTAyODIzLCAwLjc1MTQyMSwgMS4yNDg5NSwgMS41NTkzOSIsIFwKLSAgICAgICAgICAiMC4wNzI3MTgsIDAuMTA4Mzc5LCAwLjMxNjg2MSwgMC41MDIyMTQsIDAuNzUxMzQsIDEuMjQ4NzQsIDEuNTU5NTciLCBcCi0gICAgICAgICAgIjAuMDczNTQ0LCAwLjEwODkxLCAwLjMxNjg2NywgMC41MDI3ODIsIDAuNzUxMzg5LCAxLjI0NjE4LCAxLjU1OTgyIiwgXAotICAgICAgICAgICIwLjA3NDQ3MiwgMC4xMDk3MDksIDAuMzE2OTI1LCAwLjUwMjYyOCwgMC43NTA5NjUsIDEuMjQ4NDIsIDEuNTU3NzgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUzAiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2MjA0MSwgMC4wODA4MTYsIDAuMTg2NDI5LCAwLjI3OTU1MiwgMC40MDM2NDcsIDAuNjUxODQ3LCAwLjgwNjk1OCIsIFwKLSAgICAgICAgICAiMC4wNjk0NjcsIDAuMDg4MjU1LCAwLjE5Mzg3OSwgMC4yODY5OTgsIDAuNDExMDg4LCAwLjY1OTM0NCwgMC44MTQ0MTkiLCBcCi0gICAgICAgICAgIjAuMDc4MjY2LCAwLjA5NzA1NSwgMC4yMDI2NzEsIDAuMjk1ODAzLCAwLjQxOTg3NywgMC42NjgwNzMsIDAuODIzMzA0IiwgXAotICAgICAgICAgICIwLjA4NTI3NCwgMC4xMDQwNzYsIDAuMjA5Njc4LCAwLjMwMjg0MiwgMC40MjY4NzUsIDAuNjc1MDY5LCAwLjgzMDE2OCIsIFwKLSAgICAgICAgICAiMC4wOTEwOTQsIDAuMTA5OTU0LCAwLjIxNTU0MywgMC4zMDg2MzcsIDAuNDMyNzk0LCAwLjY4MDg5NSwgMC44MzYwMTgiLCBcCi0gICAgICAgICAgIjAuMDk4ODIyLCAwLjExNzY5NiwgMC4yMjMzOTYsIDAuMzE2NDM5LCAwLjQ0MDUwNiwgMC42ODg3NDksIDAuODQzOCIsIFwKLSAgICAgICAgICAiMC4xMDQ2NCwgMC4xMjM1MjIsIDAuMjI5MjY2LCAwLjMyMjI1NiwgMC40NDY0NjgsIDAuNjk0NTIzLCAwLjg0OTY5Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3MzY3NCwgMC4xMTE4MTUsIDAuMzMyMjM3LCAwLjUyODU1OSwgMC43ODkyMSwgMS4zMTE0NywgMS42MzgzIiwgXAotICAgICAgICAgICIwLjA3MzYzOCwgMC4xMTE4MTUsIDAuMzMyMjYsIDAuNTI4NDg2LCAwLjc4OTMxMywgMS4zMTExNCwgMS42Mzc5IiwgXAotICAgICAgICAgICIwLjA3NDA1NywgMC4xMTIwMzUsIDAuMzMyNjE1LCAwLjUyODQ5MiwgMC43ODkyNDcsIDEuMzExNiwgMS42Mzk1NiIsIFwKLSAgICAgICAgICAiMC4wNzQ4MTksIDAuMTEyNTM3LCAwLjMzMjMyMSwgMC41Mjc3NjUsIDAuNzg5MTA5LCAxLjMxMTcyLCAxLjYzNzkzIiwgXAotICAgICAgICAgICIwLjA3NTUzMiwgMC4xMTMwMDcsIDAuMzMyNDgzLCAwLjUyODUzOCwgMC43ODk5MDcsIDEuMzExNjQsIDEuNjM5NTciLCBcCi0gICAgICAgICAgIjAuMDc2ODc2LCAwLjExMzg2NCwgMC4zMzI0NTMsIDAuNTI4NzE2LCAwLjc4OTkyMSwgMS4zMTI3MywgMS42MzgwMyIsIFwKLSAgICAgICAgICAiMC4wNzc3ODIsIDAuMTE0NzMsIDAuMzMyODE4LCAwLjUyODYxMSwgMC43ODg5NDMsIDEuMzEyNjYsIDEuNjM5NTUiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY0ODEzLCAwLjA4MzI0MSwgMC4xODYwMDgsIDAuMjc2NTQ2LCAwLjM5NzE5MywgMC42Mzg0NjcsIDAuNzg5Mjc1IiwgXAotICAgICAgICAgICIwLjA3MjEwNywgMC4wOTA1NDIsIDAuMTkzMzI0LCAwLjI4Mzg2NiwgMC40MDQ1NDQsIDAuNjQ1Nzc5LCAwLjc5NjYwNCIsIFwKLSAgICAgICAgICAiMC4wODA5MDIsIDAuMDk5MzUxLCAwLjIwMjEzOCwgMC4yOTI2NzIsIDAuNDEzMzMxLCAwLjY1NDYwNywgMC44MDU0MDIiLCBcCi0gICAgICAgICAgIjAuMDg3OTc0LCAwLjEwNjQ1NywgMC4yMDkyNDIsIDAuMjk5Nzc4LCAwLjQyMDQyMywgMC42NjE3MjgsIDAuODEyNTA3IiwgXAotICAgICAgICAgICIwLjA5Mzc1NSwgMC4xMTIzMzIsIDAuMjE1MTIyLCAwLjMwNTY1OCwgMC40MjYzNTQsIDAuNjY3NTg2LCAwLjgxODM5NyIsIFwKLSAgICAgICAgICAiMC4xMDE1NzYsIDAuMTIwMTEyLCAwLjIyMzEwNSwgMC4zMTM2MTgsIDAuNDM0Mjk4LCAwLjY3NTU4NywgMC44MjY0MiIsIFwKLSAgICAgICAgICAiMC4xMDczMzYsIDAuMTI1OTYxLCAwLjIyODk5NCwgMC4zMTk1MDYsIDAuNDQwMTgsIDAuNjgxNDYsIDAuODMyMzY1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3MTIwMiwgMC4xMDcyNTgsIDAuMzE2NTkyLCAwLjUwMTkxNCwgMC43NTEzODcsIDEuMjQ4NTksIDEuNTU3NyIsIFwKLSAgICAgICAgICAiMC4wNzEyMjEsIDAuMTA3MjcsIDAuMzE2NTk0LCAwLjUwMTk2NiwgMC43NTE0OTQsIDEuMjQ4NjEsIDEuNTU5NTYiLCBcCi0gICAgICAgICAgIjAuMDcxNTE1LCAwLjEwNzQ1LCAwLjMxNjYyOCwgMC41MDIxNjksIDAuNzUxMzk1LCAxLjI0ODU1LCAxLjU1OTM3IiwgXAotICAgICAgICAgICIwLjA3MjI2MiwgMC4xMDgwMTcsIDAuMzE2MzQxLCAwLjUwMjg0MSwgMC43NTEzMjcsIDEuMjQ3MTgsIDEuNTU5MyIsIFwKLSAgICAgICAgICAiMC4wNzI5MTUsIDAuMTA4NTI1LCAwLjMxNjU2LCAwLjUwMjI1MywgMC43NTE0NTcsIDEuMjQ4NjEsIDEuNTU3NjciLCBcCi0gICAgICAgICAgIjAuMDc0MTM2LCAwLjEwOTE4MywgMC4zMTcxMzksIDAuNTAyOTYzLCAwLjc1MDI1MywgMS4yNDg3NCwgMS41NTk3OCIsIFwKLSAgICAgICAgICAiMC4wNzQ4NTMsIDAuMTA5OTU3LCAwLjMxNzAxNSwgMC41MDIzNywgMC43NTA2OSwgMS4yNDcyMiwgMS41NTk2OCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc1NzY4LCAwLjA5NDU2NiwgMC4yMDAyMjYsIDAuMjkzMzY3LCAwLjQxNzQ1MywgMC42NjU2NTQsIDAuODIwNzczIiwgXAotICAgICAgICAgICIwLjA4MzEzNSwgMC4xMDE5MjgsIDAuMjA3NTg1LCAwLjMwMDcyNSwgMC40MjQ4MTYsIDAuNjczMDE3LCAwLjgyODEzMSIsIFwKLSAgICAgICAgICAiMC4wODkzMTIsIDAuMTA4MTE1LCAwLjIxMzc3OCwgMC4zMDY5MDYsIDAuNDMxMDY2LCAwLjY3OTI3MSwgMC44MzQzMzgiLCBcCi0gICAgICAgICAgIjAuMDkzNjY3LCAwLjExMjUsIDAuMjE4MTY1LCAwLjMxMTI4MywgMC40MzU0MTgsIDAuNjgzNTc2LCAwLjgzODY4MiIsIFwKLSAgICAgICAgICAiMC4wOTcwNzEsIDAuMTE1OTQsIDAuMjIxNjY1LCAwLjMxNDc2NywgMC40Mzg4ODIsIDAuNjg3MjAzLCAwLjg0MjI1NSIsIFwKLSAgICAgICAgICAiMC4xMDE3ODUsIDAuMTIwNjA3LCAwLjIyNjM5OCwgMC4zMTk1MiwgMC40NDM2ODgsIDAuNjkxOTU5LCAwLjg0Njk1NSIsIFwKLSAgICAgICAgICAiMC4xMDUyMDksIDAuMTI0MDM2LCAwLjIyOTg0MywgMC4zMjI5NzcsIDAuNDQ3MDg5LCAwLjY5NTM0NiwgMC44NTA0MiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzM2NDQsIDAuMTExNzI2LCAwLjMzMjU5NywgMC41Mjg1NTIsIDAuNzg5MjQ3LCAxLjMxMTc0LCAxLjYzODIzIiwgXAotICAgICAgICAgICIwLjA3MzY0LCAwLjExMTc0MSwgMC4zMzI1OTQsIDAuNTI4NTUzLCAwLjc4OTMxOSwgMS4zMTE2NCwgMS42MzgzIiwgXAotICAgICAgICAgICIwLjA3MzY4LCAwLjExMTgzMSwgMC4zMzIyNjcsIDAuNTI4NTM2LCAwLjc4OTk4NCwgMS4zMTI4NSwgMS42Mzc4NyIsIFwKLSAgICAgICAgICAiMC4wNzM3NjYsIDAuMTExOTIxLCAwLjMzMjMwOSwgMC41Mjc5NywgMC43ODkwMywgMS4zMTI3OCwgMS42Mzc4OSIsIFwKLSAgICAgICAgICAiMC4wNzM2OTcsIDAuMTExOTE1LCAwLjMzMjI2MywgMC41Mjg0NDUsIDAuNzg5Nzk3LCAxLjMxMjcyLCAxLjYzOTQ1IiwgXAotICAgICAgICAgICIwLjA3Mzc4LCAwLjExMTg1NiwgMC4zMzI0NDMsIDAuNTI4MDgzLCAwLjc4OTcwNywgMS4zMTA5OCwgMS42MzkyNyIsIFwKLSAgICAgICAgICAiMC4wNzM3MDYsIDAuMTEyMDE2LCAwLjMzMjMzNiwgMC41MjgwMDgsIDAuNzg5MTY1LCAxLjMxMjQ5LCAxLjYzOTE0Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3Njk1NCwgMC4wOTUzODQsIDAuMTk4MTU3LCAwLjI4ODY4NCwgMC40MDkzNTUsIDAuNjUwNjMyLCAwLjgwMTQyNiIsIFwKLSAgICAgICAgICAiMC4wODQ0MzQsIDAuMTAyODQyLCAwLjIwNTYzOSwgMC4yOTYxODMsIDAuNDE2ODIzLCAwLjY1ODE1MiwgMC44MDg5MTEiLCBcCi0gICAgICAgICAgIjAuMDkwNzEsIDAuMTA5MTM5LCAwLjIxMTkxLCAwLjMwMjQ0NCwgMC40MjMxMDEsIDAuNjY0MzgxLCAwLjgxNTIyNiIsIFwKLSAgICAgICAgICAiMC4wOTUyODgsIDAuMTEzNzQsIDAuMjE2NTMyLCAwLjMwNzA2NiwgMC40Mjc3NjEsIDAuNjY5MDE0LCAwLjgxOTgwMSIsIFwKLSAgICAgICAgICAiMC4wOTkwNTUsIDAuMTE3NTIxLCAwLjIyMDM1NCwgMC4zMTA4ODcsIDAuNDMxNTM2LCAwLjY3Mjg3OCwgMC44MjM3MDIiLCBcCi0gICAgICAgICAgIjAuMTA0MTY0LCAwLjEyMjU3OCwgMC4yMjU0NTMsIDAuMzE2MDI0LCAwLjQzNjY5MywgMC42NzgwMDgsIDAuODI4ODA3IiwgXAotICAgICAgICAgICIwLjEwNzkwNiwgMC4xMjYzNDksIDAuMjI5MjM2LCAwLjMxOTc3OCwgMC40NDA1NjEsIDAuNjgxODQ0LCAwLjgzMjYzNSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzEzMTcsIDAuMTA3MzQ3LCAwLjMxNjY2NSwgMC41MDIyMjMsIDAuNzUxNDg0LCAxLjI0NzIxLCAxLjU1NzU0IiwgXAotICAgICAgICAgICIwLjA3MTMwOCwgMC4xMDczMzQsIDAuMzE2NjM3LCAwLjUwMjAwNCwgMC43NTEzNjgsIDEuMjQ2NzEsIDEuNTU3NTciLCBcCi0gICAgICAgICAgIjAuMDcxMzM1LCAwLjEwNzM2NiwgMC4zMTY2MzcsIDAuNTAyMzExLCAwLjc1MTQyMSwgMS4yNDg2MSwgMS41NTk3MiIsIFwKLSAgICAgICAgICAiMC4wNzEzNzIsIDAuMTA3NDE2LCAwLjMxNjYzNywgMC41MDI3MzcsIDAuNzUxMjcxLCAxLjI0ODUzLCAxLjU1OTI2IiwgXAotICAgICAgICAgICIwLjA3MTMxNSwgMC4xMDczODUsIDAuMzE2NSwgMC41MDE5NjUsIDAuNzUxMjQ4LCAxLjI0Njk5LCAxLjU1OTczIiwgXAotICAgICAgICAgICIwLjA3MTQ2MSwgMC4xMDczMTUsIDAuMzE2MzA1LCAwLjUwMjM3OCwgMC43NTA4NjEsIDEuMjQ2NjcsIDEuNTU5MiIsIFwKLSAgICAgICAgICAiMC4wNzEzNzYsIDAuMTA3NTMxLCAwLjMxNjA3LCAwLjUwMjE4MSwgMC43NTAzMTIsIDEuMjQ2NDMsIDEuNTU4OTQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDIyMDMsIDAuMDAyMjEyLCAwLjAwMjIyNSwgMC4wMDIyMjcsIDAuMDAyMjMzLCAwLjAwMjIzLCAwLjAwMjIzIiwgXAotICAgICAgICAgICIwLjAwMjE3MSwgMC4wMDIxODIsIDAuMDAyMTk4LCAwLjAwMjIwMiwgMC4wMDIyMDMsIDAuMDAyMjA1LCAwLjAwMjIwNSIsIFwKLSAgICAgICAgICAiMC4wMDIxODksIDAuMDAyMTk3LCAwLjAwMjIxNCwgMC4wMDIyMTgsIDAuMDAyMjIsIDAuMDAyMjIxLCAwLjAwMjIyMyIsIFwKLSAgICAgICAgICAiMC4wMDIyNDEsIDAuMDAyMjQ3LCAwLjAwMjI2LCAwLjAwMjI2NCwgMC4wMDIyNjcsIDAuMDAyMjY4LCAwLjAwMjI2OSIsIFwKLSAgICAgICAgICAiMC4wMDIzMDcsIDAuMDAyMzExLCAwLjAwMjMyMywgMC4wMDIzMjcsIDAuMDAyMzMsIDAuMDAyMzMyLCAwLjAwMjMzMiIsIFwKLSAgICAgICAgICAiMC4wMDI0MjUsIDAuMDAyNDMsIDAuMDAyNDQ3LCAwLjAwMjQ1MiwgMC4wMDI0NTcsIDAuMDAyNDU5LCAwLjAwMjQ1OSIsIFwKLSAgICAgICAgICAiMC4wMDI1NzYsIDAuMDAyNTc0LCAwLjAwMjU4MSwgMC4wMDI1ODMsIDAuMDAyNTg2LCAwLjAwMjU4OSwgMC4wMDI1OSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzQxNCwgMC4wMDM0MjUsIDAuMDAzNDQyLCAwLjAwMzQ0NSwgMC4wMDM0NDcsIDAuMDAzNDQ5LCAwLjAwMzQ0OSIsIFwKLSAgICAgICAgICAiMC4wMDMzOTIsIDAuMDAzNDA0LCAwLjAwMzQyNCwgMC4wMDM0MjksIDAuMDAzNDMxLCAwLjAwMzQzMywgMC4wMDM0MzQiLCBcCi0gICAgICAgICAgIjAuMDAzNDA1LCAwLjAwMzQxOCwgMC4wMDM0MzgsIDAuMDAzNDQyLCAwLjAwMzQ0NSwgMC4wMDM0NDcsIDAuMDAzNDQ4IiwgXAotICAgICAgICAgICIwLjAwMzQ0MiwgMC4wMDM0NTIsIDAuMDAzNDcyLCAwLjAwMzQ3OCwgMC4wMDM0ODEsIDAuMDAzNDgzLCAwLjAwMzQ4NCIsIFwKLSAgICAgICAgICAiMC4wMDM1MDMsIDAuMDAzNTEyLCAwLjAwMzUzMiwgMC4wMDM1MzYsIDAuMDAzNTM5LCAwLjAwMzU0MiwgMC4wMDM1NDIiLCBcCi0gICAgICAgICAgIjAuMDAzNjE0LCAwLjAwMzYyMywgMC4wMDM2NDQsIDAuMDAzNjUxLCAwLjAwMzY1NSwgMC4wMDM2NTgsIDAuMDAzNjU5IiwgXAotICAgICAgICAgICIwLjAwMzc1NiwgMC4wMDM3NTgsIDAuMDAzNzcyLCAwLjAwMzc3NywgMC4wMDM3OCwgMC4wMDM3ODIsIDAuMDAzNzg0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxOTA2LCAwLjAwMTkwNSwgMC4wMDE5MDMsIDAuMDAxOTAyLCAwLjAwMTkwMywgMC4wMDE5MDIsIDAuMDAxOTAyIiwgXAotICAgICAgICAgICIwLjAwMTg3OSwgMC4wMDE4OCwgMC4wMDE4ODEsIDAuMDAxODgxLCAwLjAwMTg4MSwgMC4wMDE4OCwgMC4wMDE4OCIsIFwKLSAgICAgICAgICAiMC4wMDE5LCAwLjAwMTksIDAuMDAxOSwgMC4wMDE4OTksIDAuMDAxODk5LCAwLjAwMTg5OSwgMC4wMDE4OTgiLCBcCi0gICAgICAgICAgIjAuMDAxOTUxLCAwLjAwMTk0OSwgMC4wMDE5NDQsIDAuMDAxOTQ0LCAwLjAwMTk0NCwgMC4wMDE5NDMsIDAuMDAxOTQzIiwgXAotICAgICAgICAgICIwLjAwMjAxOCwgMC4wMDIwMTQsIDAuMDAyMDA3LCAwLjAwMjAwNSwgMC4wMDIwMDUsIDAuMDAyMDA0LCAwLjAwMjAwMyIsIFwKLSAgICAgICAgICAiMC4wMDIxMzgsIDAuMDAyMTM0LCAwLjAwMjEyOCwgMC4wMDIxMjYsIDAuMDAyMTI2LCAwLjAwMjEyNCwgMC4wMDIxMjQiLCBcCi0gICAgICAgICAgIjAuMDAyMjg3LCAwLjAwMjI3NiwgMC4wMDIyNTgsIDAuMDAyMjU0LCAwLjAwMjI1MiwgMC4wMDIyNSwgMC4wMDIyNDciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDM2MzksIDAuMDAzNjQzLCAwLjAwMzY0OCwgMC4wMDM2NDksIDAuMDAzNjQ5LCAwLjAwMzY1LCAwLjAwMzY0OSIsIFwKLSAgICAgICAgICAiMC4wMDM2MjEsIDAuMDAzNjI2LCAwLjAwMzYzMywgMC4wMDM2MzQsIDAuMDAzNjM1LCAwLjAwMzYzNiwgMC4wMDM2MzYiLCBcCi0gICAgICAgICAgIjAuMDAzNjM5LCAwLjAwMzY0NCwgMC4wMDM2NSwgMC4wMDM2NTEsIDAuMDAzNjUyLCAwLjAwMzY1MiwgMC4wMDM2NTMiLCBcCi0gICAgICAgICAgIjAuMDAzNjc4LCAwLjAwMzY4MiwgMC4wMDM2ODYsIDAuMDAzNjg3LCAwLjAwMzY4OCwgMC4wMDM2ODksIDAuMDAzNjg5IiwgXAotICAgICAgICAgICIwLjAwMzc0MSwgMC4wMDM3NDMsIDAuMDAzNzQ1LCAwLjAwMzc0NiwgMC4wMDM3NDYsIDAuMDAzNzQ3LCAwLjAwMzc0NyIsIFwKLSAgICAgICAgICAiMC4wMDM4NjUsIDAuMDAzODY0LCAwLjAwMzg2MiwgMC4wMDM4NjMsIDAuMDAzODYyLCAwLjAwMzg2MiwgMC4wMDM4NjIiLCBcCi0gICAgICAgICAgIjAuMDA0MDAzLCAwLjAwMzk5MywgMC4wMDM5ODQsIDAuMDAzOTg0LCAwLjAwMzk4MiwgMC4wMDM5ODIsIDAuMDAzOTgxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUzAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDcxNywgMC4wMDQ3MjcsIDAuMDA0NzQzLCAwLjAwNDc0NywgMC4wMDQ3NDksIDAuMDA0NzUxLCAwLjAwNDc1MSIsIFwKLSAgICAgICAgICAiMC4wMDQ3MjMsIDAuMDA0NzMzLCAwLjAwNDc0OSwgMC4wMDQ3NTIsIDAuMDA0NzU0LCAwLjAwNDc1NiwgMC4wMDQ3NTQiLCBcCi0gICAgICAgICAgIjAuMDA0ODA4LCAwLjAwNDgxOCwgMC4wMDQ4MzMsIDAuMDA0ODM3LCAwLjAwNDgzOSwgMC4wMDQ4NCwgMC4wMDQ4NDEiLCBcCi0gICAgICAgICAgIjAuMDA0OTEyLCAwLjAwNDkyMSwgMC4wMDQ5MzcsIDAuMDA0OTQsIDAuMDA0OTQyLCAwLjAwNDk0NCwgMC4wMDQ5NDQiLCBcCi0gICAgICAgICAgIjAuMDA1MDM1LCAwLjAwNTA0NCwgMC4wMDUwNTgsIDAuMDA1MDYxLCAwLjAwNTA2MywgMC4wMDUwNjYsIDAuMDA1MDY0IiwgXAotICAgICAgICAgICIwLjAwNTI4MywgMC4wMDUyOTMsIDAuMDA1MzA4LCAwLjAwNTMxMiwgMC4wMDUzMTQsIDAuMDA1MzE1LCAwLjAwNTMxNSIsIFwKLSAgICAgICAgICAiMC4wMDU0NzcsIDAuMDA1NDg3LCAwLjAwNTUwMiwgMC4wMDU1MDYsIDAuMDA1NTA4LCAwLjAwNTUxLCAwLjAwNTUwOSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzE1LCAwLjAwMzE1OCwgMC4wMDMxNzEsIDAuMDAzMTc0LCAwLjAwMzE3NiwgMC4wMDMxNzcsIDAuMDAzMTc4IiwgXAotICAgICAgICAgICIwLjAwMzE0OSwgMC4wMDMxNTYsIDAuMDAzMTY5LCAwLjAwMzE3MiwgMC4wMDMxNzQsIDAuMDAzMTc1LCAwLjAwMzE3NiIsIFwKLSAgICAgICAgICAiMC4wMDMyMzUsIDAuMDAzMjQzLCAwLjAwMzI1NSwgMC4wMDMyNTgsIDAuMDAzMjYsIDAuMDAzMjYxLCAwLjAwMzI2MSIsIFwKLSAgICAgICAgICAiMC4wMDMzNTMsIDAuMDAzMzYsIDAuMDAzMzcxLCAwLjAwMzM3NCwgMC4wMDMzNzYsIDAuMDAzMzc3LCAwLjAwMzM3OCIsIFwKLSAgICAgICAgICAiMC4wMDM1MSwgMC4wMDM1MTcsIDAuMDAzNTI5LCAwLjAwMzUzMiwgMC4wMDM1MzQsIDAuMDAzNTM1LCAwLjAwMzUzNSIsIFwKLSAgICAgICAgICAiMC4wMDM3MjcsIDAuMDAzNzM1LCAwLjAwMzc0NywgMC4wMDM3NTEsIDAuMDAzNzUzLCAwLjAwMzc1NCwgMC4wMDM3NTQiLCBcCi0gICAgICAgICAgIjAuMDAzODk3LCAwLjAwMzkwNCwgMC4wMDM5MTcsIDAuMDAzOTE5LCAwLjAwMzkxNiwgMC4wMDM5MTksIDAuMDAzOTE4Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IE1YMlgyICoKLSAqIC0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChNWDJYMikgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjQ0Njk5ODsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNzA5MzU1OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDcwODAzODsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA3MDkzNTU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjgxLCAwLjAwMDI4NCwgMC4wMDAyODUsIDAuMDAwMjg2LCAwLjAwMDI4NiwgMC4wMDAyODcsIDAuMDAwMjg3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzE3LCAwLjAwMDMwNiwgMC4wMDAzMDMsIDAuMDAwMzAyLCAwLjAwMDMwMSwgMC4wMDAzMDEsIDAuMDAwMzAxIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA3MTIzNjI7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNzExMzA4OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDcxMjM2MjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyODksIDAuMDAwMjksIDAuMDAwMjksIDAuMDAwMjkxLCAwLjAwMDI5MSwgMC4wMDAyOTEsIDAuMDAwMjkxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzE0LCAwLjAwMDMwMywgMC4wMDAzMDEsIDAuMDAwMywgMC4wMDAzLCAwLjAwMDI5OSwgMC4wMDAyOTkiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFMwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDEzNjA3NTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDEzNjA3NTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDEzNjA3OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDIxMiwgMC4wMDAyMywgMC4wMDAzMDksIDAuMDAwNDI0LCAwLjAwMDU1MiwgMC4wMDA4MTgsIDAuMDAxMDE4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyNDg5LCAwLjAwMjUwNywgMC4wMDI1ODQsIDAuMDAyNjg5LCAwLjAwMjgxMywgMC4wMDMwMzMsIDAuMDAzMjI0Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuNjg1NDM2OwotICAgIGZ1bmN0aW9uIDogIigoUzAgQikgKyAoIVMwIEEpKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU4NDg4LCAwLjEzNzQ4NiwgMC4xOTkyMzQsIDAuMjc2MzU5LCAwLjM1MzUzNiwgMC40MzA1NzQsIDAuNTA3NjQxIiwgXAotICAgICAgICAgICIwLjA2NDYxLCAwLjE0MzY4LCAwLjIwNTQ1NCwgMC4yODI1NjcsIDAuMzU5NzMxLCAwLjQzNjc3NywgMC41MTM4NDUiLCBcCi0gICAgICAgICAgIjAuMDcyMDY2LCAwLjE1MTA1LCAwLjIxMjgwOSwgMC4yODk5NjcsIDAuMzY3MDgsIDAuNDQ0MTMyLCAwLjUyMTI3NyIsIFwKLSAgICAgICAgICAiMC4wNzg2MjEsIDAuMTU3Nzg1LCAwLjIxOTUzNSwgMC4yOTY2NDUsIDAuMzczODM3LCAwLjQ1MDg2OCwgMC41Mjc5MTUiLCBcCi0gICAgICAgICAgIjAuMDg0NDY3LCAwLjE2Mzc5MiwgMC4yMjU1MzksIDAuMzAyNjM1LCAwLjM3OTc2MSwgMC40NTY4NjMsIDAuNTMzOTA5IiwgXAotICAgICAgICAgICIwLjA5MjM5MiwgMC4xNzIwNTIsIDAuMjMzNzc0LCAwLjMxMDkwNywgMC4zODc5ODUsIDAuNDY1MTI4LCAwLjU0MjE1MiIsIFwKLSAgICAgICAgICAiMC4wOTgzNjMsIDAuMTc4Mjg3LCAwLjI0MDAxOSwgMC4zMTcxMzgsIDAuMzk0MjE0LCAwLjQ3MTMxNywgMC41NDg0MjIiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQ0ODU0LCAwLjIwMjEzMiwgMC4zMzE3NjgsIDAuNDkzNjM5LCAwLjY1NTgyMSwgMC44MTk0NjIsIDAuOTgxMjc0IiwgXAotICAgICAgICAgICIwLjA0NDc0OSwgMC4yMDIyMjgsIDAuMzMxNzM5LCAwLjQ5MzY5MSwgMC42NTY4MSwgMC44MTk0NSwgMC45ODEzMDQiLCBcCi0gICAgICAgICAgIjAuMDQ1MDcsIDAuMjAyMjY2LCAwLjMzMTc2NSwgMC40OTQxNTUsIDAuNjU2Nzg0LCAwLjgxOTQ1OSwgMC45ODIyMjkiLCBcCi0gICAgICAgICAgIjAuMDQ1ODcxLCAwLjIwMjQ0MSwgMC4zMzE3OTQsIDAuNDkzNTk3LCAwLjY1NTg1LCAwLjgxOTM4OSwgMC45ODIwNjkiLCBcCi0gICAgICAgICAgIjAuMDQ2NzY4LCAwLjIwMjcyNSwgMC4zMzE4NTgsIDAuNDkzNjY0LCAwLjY1NTg5OSwgMC44MTkzNzEsIDAuOTgyMDg1IiwgXAotICAgICAgICAgICIwLjA0Nzk5OSwgMC4yMDMxNTQsIDAuMzMxNzc2LCAwLjQ5NDEyMSwgMC42NTY2NDUsIDAuODE5MzcxLCAwLjk4MTQ0NiIsIFwKLSAgICAgICAgICAiMC4wNDkyNDgsIDAuMjAzNDU3LCAwLjMzMjE4NywgMC40OTM3NzYsIDAuNjU2NjE0LCAwLjgxODc5OCwgMC45ODIwMTgiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDYyNjU1LCAwLjE0MTIwNywgMC4yMDE5MiwgMC4yNzc3NDcsIDAuMzUzNTk1LCAwLjQyOTM2NiwgMC41MDUxNTEiLCBcCi0gICAgICAgICAgIjAuMDY4NjAzLCAwLjE0NzEwMiwgMC4yMDc4MjMsIDAuMjgzNjY1LCAwLjM1OTQ3MSwgMC40MzUyNDYsIDAuNTExMDY3IiwgXAotICAgICAgICAgICIwLjA3NTMwMywgMC4xNTM4NjYsIDAuMjE0NTc2LCAwLjI5MDQwOCwgMC4zNjYyMjMsIDAuNDQyMDY1LCAwLjUxNzgwOSIsIFwKLSAgICAgICAgICAiMC4wODE0NjMsIDAuMTYwMDg4LCAwLjIyMDc5NSwgMC4yOTY2NDYsIDAuMzcyNDI0LCAwLjQ0ODI2OSwgMC41MjQwMjgiLCBcCi0gICAgICAgICAgIjAuMDg2NjEyLCAwLjE2NTU0NSwgMC4yMjYyNCwgMC4zMDIwOTcsIDAuMzc3ODY0LCAwLjQ1MzY0NiwgMC41Mjk1MDUiLCBcCi0gICAgICAgICAgIjAuMDkzNjYxLCAwLjE3MzAwOCwgMC4yMzM3MDUsIDAuMzA5NTE0LCAwLjM4NTMxMSwgMC40NjExMjIsIDAuNTM2ODY5IiwgXAotICAgICAgICAgICIwLjA5OTE2NCwgMC4xNzg3NDgsIDAuMjM5NDQxLCAwLjMxNTI0OCwgMC4zOTEwMzcsIDAuNDY2ODIyLCAwLjU0MjYzNiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDQ5NjYsIDAuMTk2ODQyLCAwLjMyMTgyMiwgMC40Nzg4MTUsIDAuNjM1MDY2LCAwLjc5Mzc5NywgMC45NTEzNzkiLCBcCi0gICAgICAgICAgIjAuMDQ0ODk2LCAwLjE5NjgxOCwgMC4zMjE4MjIsIDAuNDc4ODY1LCAwLjYzNjIzOSwgMC43OTM3MTEsIDAuOTUxMzk2IiwgXAotICAgICAgICAgICIwLjA0NTExOCwgMC4xOTY4NzksIDAuMzIxNzgyLCAwLjQ3ODgwNywgMC42MzU1MDcsIDAuNzkzODg3LCAwLjk1MTMzNiIsIFwKLSAgICAgICAgICAiMC4wNDU3OCwgMC4xOTcwMjEsIDAuMzIxOTI5LCAwLjQ3ODk1NSwgMC42MzU1NjMsIDAuNzkzODc2LCAwLjk0OTg3OCIsIFwKLSAgICAgICAgICAiMC4wNDY3NCwgMC4xOTczNDMsIDAuMzIxNzA5LCAwLjQ3ODk3NCwgMC42MzYyMzIsIDAuNzkyNzU3LCAwLjk0OTgyNCIsIFwKLSAgICAgICAgICAiMC4wNDgyMDEsIDAuMTk3ODg0LCAwLjMyMTg0NywgMC40Nzg5MjEsIDAuNjM2MTg0LCAwLjc5MjgxLCAwLjk1MTE3OCIsIFwKLSAgICAgICAgICAiMC4wNDg5MTcsIDAuMTk4MjQyLCAwLjMyMjE1MywgMC40Nzg4MTIsIDAuNjM1Njk0LCAwLjc5Mjg3NCwgMC45NTEwNzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU4MzMzLCAwLjEzNzMwNSwgMC4xOTkwMjcsIDAuMjc2MTU0LCAwLjM1MzMyOSwgMC40MzAzNjUsIDAuNTA3NDI3IiwgXAotICAgICAgICAgICIwLjA2NDY1LCAwLjE0MzY1MSwgMC4yMDUzNzcsIDAuMjgyNTEzLCAwLjM1OTY3OCwgMC40MzY3MTgsIDAuNTEzNzgiLCBcCi0gICAgICAgICAgIjAuMDcyMjEyLCAwLjE1MTE0NiwgMC4yMTI4ODYsIDAuMjkwMDI2LCAwLjM2NzEzOSwgMC40NDQxODcsIDAuNTIxNDAzIiwgXAotICAgICAgICAgICIwLjA3ODg1MSwgMC4xNTc5MjUsIDAuMjE5NjQ2LCAwLjI5Njc4NCwgMC4zNzM5MTQsIDAuNDUwOTQ2LCAwLjUyODEwMiIsIFwKLSAgICAgICAgICAiMC4wODQ1ODksIDAuMTYzODc2LCAwLjIyNTU2NywgMC4zMDI3MDIsIDAuMzc5NzkxLCAwLjQ1NjkxOCwgMC41MzM5NTYiLCBcCi0gICAgICAgICAgIjAuMDkyNDg5LCAwLjE3MjE1MywgMC4yMzM4ODcsIDAuMzExMDE2LCAwLjM4ODA4NywgMC40NjUyMjEsIDAuNTQyMjQzIiwgXAotICAgICAgICAgICIwLjA5ODU0NSwgMC4xNzg0MDcsIDAuMjQwMTE2LCAwLjMxNzI0NSwgMC4zOTQyODMsIDAuNDcxMzU1LCAwLjU0ODQ4OSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDQ5MDEsIDAuMjAyMTM5LCAwLjMzMTQyNiwgMC40OTM2MDksIDAuNjU1ODA0LCAwLjgxOTUxMSwgMC45ODEyMzYiLCBcCi0gICAgICAgICAgIjAuMDQ0NzkxLCAwLjIwMjIzNCwgMC4zMzE0MTQsIDAuNDkzNjY4LCAwLjY1NTgwNSwgMC44MTk0NjMsIDAuOTgxMjc4IiwgXAotICAgICAgICAgICIwLjA0NTEwMSwgMC4yMDIxNzcsIDAuMzMxNzk0LCAwLjQ5MzQyNiwgMC42NTY3ODEsIDAuODE5NDU4LCAwLjk4MDg1IiwgXAotICAgICAgICAgICIwLjA0NTg1MywgMC4yMDI1OSwgMC4zMzE4MDEsIDAuNDkzNTAzLCAwLjY1NjcyMywgMC44MTkzOTMsIDAuOTgyMTQxIiwgXAotICAgICAgICAgICIwLjA0NzAwNywgMC4yMDI2NjUsIDAuMzMxODI1LCAwLjQ5NDEwMiwgMC42NTU2NzIsIDAuODE5Mzc4LCAwLjk4MjEwMiIsIFwKLSAgICAgICAgICAiMC4wNDgxNDksIDAuMjAzMjI1LCAwLjMzMjAyMSwgMC40OTQxMjksIDAuNjU2NjMxLCAwLjgxOTM1NiwgMC45ODE0MzgiLCBcCi0gICAgICAgICAgIjAuMDQ5Mzg0LCAwLjIwMzUwMiwgMC4zMzE5ODEsIDAuNDkzNTIyLCAwLjY1NjU5OSwgMC44MTkyNTQsIDAuOTgyMDE1Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2MzQ1OSwgMC4xNDIwMDcsIDAuMjAyNzMyLCAwLjI3ODU1OSwgMC4zNTQzNywgMC40MzAxNywgMC41MDU5NTkiLCBcCi0gICAgICAgICAgIjAuMDY5MTcsIDAuMTQ3NzM3LCAwLjIwODQ2NiwgMC4yODQzMTIsIDAuMzYwMTA3LCAwLjQzNTkwMSwgMC41MTE3MTMiLCBcCi0gICAgICAgICAgIjAuMDc1ODkzLCAwLjE1NDQ1MSwgMC4yMTUxNjksIDAuMjkxLCAwLjM2NjgxMiwgMC40NDI2NzIsIDAuNTE4NDEyIiwgXAotICAgICAgICAgICIwLjA4MjAzMywgMC4xNjA2NzcsIDAuMjIxMzkxLCAwLjI5NzI1MSwgMC4zNzMwMjQsIDAuNDQ4ODcsIDAuNTI0NjI1IiwgXAotICAgICAgICAgICIwLjA4NzI3NCwgMC4xNjYxNiwgMC4yMjY4NzMsIDAuMzAyNzAyLCAwLjM3ODQ5OCwgMC40NTQyNzcsIDAuNTMwMDY1IiwgXAotICAgICAgICAgICIwLjA5NDMxMiwgMC4xNzM1ODYsIDAuMjM0MjksIDAuMzEwMTA5LCAwLjM4NTkzNCwgMC40NjE3MTEsIDAuNTM3NTA2IiwgXAotICAgICAgICAgICIwLjA5OTgwMiwgMC4xNzkzNjcsIDAuMjQwMDQ3LCAwLjMxNTg3MiwgMC4zOTE2NjUsIDAuNDY3NDYsIDAuNTQzMjQ3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0NTEzNywgMC4xOTY4OTYsIDAuMzIxOTAzLCAwLjQ3ODg3OSwgMC42MzU2MzMsIDAuNzkyODU4LCAwLjk1MTM2NyIsIFwKLSAgICAgICAgICAiMC4wNDUwMzQsIDAuMTk2OTYzLCAwLjMyMTkwMiwgMC40NzgxNzUsIDAuNjM2MjU3LCAwLjc5Mjg2NCwgMC45NTA1MDUiLCBcCi0gICAgICAgICAgIjAuMDQ1MjMyLCAwLjE5Njk3LCAwLjMyMTQwNSwgMC40Nzg4ODEsIDAuNjM1NTkxLCAwLjc5MjEyOSwgMC45NTE0IiwgXAotICAgICAgICAgICIwLjA0NjAxNywgMC4xOTcxMDgsIDAuMzIyMDAyLCAwLjQ3OTA0MywgMC42MzU2MjgsIDAuNzkzOTAyLCAwLjk0OTg0NiIsIFwKLSAgICAgICAgICAiMC4wNDY5MSwgMC4xOTczODksIDAuMzIyMTkzLCAwLjQ3OTAzLCAwLjYzNjMxNCwgMC43OTM3MzksIDAuOTUxMjE1IiwgXAotICAgICAgICAgICIwLjA0ODE2MSwgMC4xOTc5OTEsIDAuMzIyMzM5LCAwLjQ3OTA2NCwgMC42MzYyMSwgMC43OTMwMTQsIDAuOTQ5OTU1IiwgXAotICAgICAgICAgICIwLjA0OTA4MywgMC4xOTgzMTksIDAuMzIyMzUxLCAwLjQ3ODc1MiwgMC42MzYyMjcsIDAuNzkyNjgyLCAwLjk1MTIzOCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDUzODkzLCAwLjEzMjgzNiwgMC4xOTQ1NzYsIDAuMjcxNzA5LCAwLjM0ODgxLCAwLjQyNTkwNSwgMC41MDI5NzYiLCBcCi0gICAgICAgICAgIjAuMDYxMzUzLCAwLjE0MDMwOSwgMC4yMDIwNTQsIDAuMjc5MTg2LCAwLjM1NjI3NiwgMC40MzMzNzUsIDAuNTEwNDU1IiwgXAotICAgICAgICAgICIwLjA3MDc1NCwgMC4xNDk3NTQsIDAuMjExNDk1LCAwLjI4ODYyMiwgMC4zNjU3NTMsIDAuNDQyODA1LCAwLjUxOTkyMSIsIFwKLSAgICAgICAgICAiMC4wNzg5MjMsIDAuMTU4MDEzLCAwLjIxOTczNiwgMC4yOTY4NjIsIDAuMzc0MDQzLCAwLjQ1MTA1NiwgMC41MjgxMjgiLCBcCi0gICAgICAgICAgIjAuMDg1NzY2LCAwLjE2NTAyMiwgMC4yMjY3MzYsIDAuMzAzODUzLCAwLjM4MDk3NSwgMC40NTgwNjYsIDAuNTM1MTAyIiwgXAotICAgICAgICAgICIwLjA5NDcxLCAwLjE3NDM4MSwgMC4yMzYwNiwgMC4zMTMxNTMsIDAuMzkwMjQ0LCAwLjQ2NzM2OSwgMC41NDQ0NTMiLCBcCi0gICAgICAgICAgIjAuMTAxNTk0LCAwLjE4MTQzOSwgMC4yNDMxMjMsIDAuMzIwMjA0LCAwLjM5NzQxMSwgMC40NzQ0MjMsIDAuNTUxNTQzIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0NDc2NywgMC4yMDIyMjUsIDAuMzMxNzIxLCAwLjQ5MzcwNiwgMC42NTY3NzcsIDAuODE5NTA4LCAwLjk4MTMyNiIsIFwKLSAgICAgICAgICAiMC4wNDQ3MzcsIDAuMjAyMjE2LCAwLjMzMTc0NywgMC40OTM3MDcsIDAuNjU2Njg2LCAwLjgxOTM5OCwgMC45ODEzMjEiLCBcCi0gICAgICAgICAgIjAuMDQ1MjEyLCAwLjIwMjI1NSwgMC4zMzE3ODEsIDAuNDkzNjYyLCAwLjY1Njc0OCwgMC44MTk0NiwgMC45ODExNDEiLCBcCi0gICAgICAgICAgIjAuMDQ2MjU0LCAwLjIwMjQ4LCAwLjMzMTc1MSwgMC40OTM1ODgsIDAuNjU1ODQxLCAwLjgxOTQwNCwgMC45ODExMzIiLCBcCi0gICAgICAgICAgIjAuMDQ3NzI1LCAwLjIwMjc2NiwgMC4zMzEzMzQsIDAuNDk0MTgzLCAwLjY1NTk1MywgMC44MTkzOTksIDAuOTgyMTQ5IiwgXAotICAgICAgICAgICIwLjA0OTU4NiwgMC4yMDM0NzIsIDAuMzMyMTkzLCAwLjQ5Mzg1OSwgMC42NTY4MjYsIDAuODE5NDUxLCAwLjk4MjE0MiIsIFwKLSAgICAgICAgICAiMC4wNTEyMDUsIDAuMjAzOTQxLCAwLjMzMjEzMSwgMC40OTQyNjcsIDAuNjU2MDEsIDAuODE4MjE0LCAwLjk4MjIzNCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTgwNDksIDAuMTM2NTk4LCAwLjE5NzMwNSwgMC4yNzMxMzIsIDAuMzQ4OTUyLCAwLjQyNDc5MywgMC41MDA1MzQiLCBcCi0gICAgICAgICAgIjAuMDY1MzcsIDAuMTQzOTMxLCAwLjIwNDY0NywgMC4yODA0ODMsIDAuMzU2MjgxLCAwLjQzMjA3MywgMC41MDc4NjIiLCBcCi0gICAgICAgICAgIjAuMDc0NzIsIDAuMTUzMjkyLCAwLjIxNDAwNywgMC4yODk4NDEsIDAuMzY1Njk5LCAwLjQ0MTQ3MSwgMC41MTcyNTMiLCBcCi0gICAgICAgICAgIjAuMDgyOTkzLCAwLjE2MTYzOCwgMC4yMjIzNTMsIDAuMjk4MTc0LCAwLjM3Mzk4MiwgMC40NDk4MywgMC41MjU1NzIiLCBcCi0gICAgICAgICAgIjAuMDg5OTA3LCAwLjE2ODc1NCwgMC4yMjk0NjEsIDAuMzA1Mjk3LCAwLjM4MTA3OCwgMC40NTY4OTIsIDAuNTMyNzA4IiwgXAotICAgICAgICAgICIwLjA5OTAyMiwgMC4xNzgzMiwgMC4yMzkwNjIsIDAuMzE0OCwgMC4zOTA2MjIsIDAuNDY2NDA0LCAwLjU0MjI1OCIsIFwKLSAgICAgICAgICAiMC4xMDU5NDksIDAuMTg1NDE2LCAwLjI0NjEzNCwgMC4zMjE5MzgsIDAuMzk3ODU4LCAwLjQ3MzUxLCAwLjU0OTMzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0NDgyNywgMC4xOTY4MzMsIDAuMzIxODEsIDAuNDc4OCwgMC42MzYyMzcsIDAuNzkyMzIsIDAuOTUxMzQzIiwgXAotICAgICAgICAgICIwLjA0NDgyOCwgMC4xOTY3OCwgMC4zMjE4MDgsIDAuNDc4MjU0LCAwLjYzNjE4NywgMC43OTI4MjksIDAuOTUxMjg2IiwgXAotICAgICAgICAgICIwLjA0NTA4MSwgMC4xOTY4MDcsIDAuMzIxODI2LCAwLjQ3ODgxNCwgMC42MzUwNzIsIDAuNzkzODA3LCAwLjk1MTM3IiwgXAotICAgICAgICAgICIwLjA0NjAzNCwgMC4xOTcwMzIsIDAuMzIxODc4LCAwLjQ3ODc3NiwgMC42MzU1MDcsIDAuNzkzODUxLCAwLjk1MTE3NCIsIFwKLSAgICAgICAgICAiMC4wNDcxODYsIDAuMTk3NDc4LCAwLjMyMTYwNCwgMC40Nzg5OTIsIDAuNjM2MTQsIDAuNzkzNjMzLCAwLjk1MTQ2MyIsIFwKLSAgICAgICAgICAiMC4wNDg4NjgsIDAuMTk4MDc4LCAwLjMyMjQzMiwgMC40NzkwMTcsIDAuNjM1Njc2LCAwLjc5MzY3NCwgMC45NDk3NTUiLCBcCi0gICAgICAgICAgIjAuMDUwNDU2LCAwLjE5ODU1OCwgMC4zMjI2NiwgMC40Nzk0MDgsIDAuNjM1NDgzLCAwLjc5Mzk1MSwgMC45NTE1ODUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUzAiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2NzMzNCwgMC4xNDY0MDQsIDAuMjA4MTc2LCAwLjI4NTI4NywgMC4zNjI0MTUsIDAuNDM5NTQ2LCAwLjUxNjcwMiIsIFwKLSAgICAgICAgICAiMC4wNzQ3MzUsIDAuMTUzNzU3LCAwLjIxNTUxOCwgMC4yOTI2NDQsIDAuMzY5NzUxLCAwLjQ0NjgzOSwgMC41MjM5MiIsIFwKLSAgICAgICAgICAiMC4wODEwNzMsIDAuMTYwMDgsIDAuMjIxODM5LCAwLjI5ODk3MiwgMC4zNzYxMjYsIDAuNDUzMTk3LCAwLjUzMDI2NyIsIFwKLSAgICAgICAgICAiMC4wODUzMjgsIDAuMTY0NDY3LCAwLjIyNjIyMiwgMC4zMDMzNDUsIDAuMzgwNTIsIDAuNDU3NTYzLCAwLjUzNDYxOSIsIFwKLSAgICAgICAgICAiMC4wODg3ODEsIDAuMTY3OTU2LCAwLjIyOTcxNSwgMC4zMDY4NSwgMC4zODM5NTQsIDAuNDYxMTI5LCAwLjUzODE4OCIsIFwKLSAgICAgICAgICAiMC4wOTM0MTMsIDAuMTcyNTg3LCAwLjIzNDM2NSwgMC4zMTE1MDMsIDAuMzg4NjMyLCAwLjQ2NTcyMiwgMC41NDI3ODkiLCBcCi0gICAgICAgICAgIjAuMDk2OTM3LCAwLjE3NjU3MiwgMC4yMzc5MDYsIDAuMzE1MDY3LCAwLjM5MjE2NywgMC40NjkyNTgsIDAuNTQ2MzUzIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0NDc1NywgMC4yMDIyMjYsIDAuMzMxNzc1LCAwLjQ5MzY0NywgMC42NTU4NDQsIDAuODE5NTE1LCAwLjk4MDg3IiwgXAotICAgICAgICAgICIwLjA0NDgwNSwgMC4yMDIyMzQsIDAuMzMxNzY4LCAwLjQ5MzY5MiwgMC42NTY3NTMsIDAuODE5NDM5LCAwLjk4MTI0NSIsIFwKLSAgICAgICAgICAiMC4wNDQ3OTIsIDAuMjAyMjM0LCAwLjMzMTc3NywgMC40OTM3MzMsIDAuNjU2ODAzLCAwLjgxOTQ4NSwgMC45ODIyMjgiLCBcCi0gICAgICAgICAgIjAuMDQ0NzgsIDAuMjAyNDQ4LCAwLjMzMTc2MSwgMC40OTM2NjgsIDAuNjU1ODI5LCAwLjgxOTQ0NCwgMC45ODIxMiIsIFwKLSAgICAgICAgICAiMC4wNDQ3OTEsIDAuMjAyMzUyLCAwLjMzMTQyNSwgMC40OTQwNTgsIDAuNjU2MTQ4LCAwLjgxNzk4LCAwLjk4MjExMSIsIFwKLSAgICAgICAgICAiMC4wNDQ3NzUsIDAuMjAyMzA2LCAwLjMzMTU4OSwgMC40OTM2ODQsIDAuNjU1Nzc0LCAwLjgxOTI3MSwgMC45ODEzNjEiLCBcCi0gICAgICAgICAgIjAuMDQ0NzY5LCAwLjIwMjc0NSwgMC4zMzE0OTYsIDAuNDkzODA1LCAwLjY1NjA3OCwgMC44MTkxOTcsIDAuOTgxOTA0Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3MDI2NywgMC4xNDg4NTIsIDAuMjA5NTc5LCAwLjI4NTQxNywgMC4zNjEyODEsIDAuNDM3MDc3LCAwLjUxMjgzOCIsIFwKLSAgICAgICAgICAiMC4wNzc4NTUsIDAuMTU2NDEyLCAwLjIxNzEzNCwgMC4yOTI5NjcsIDAuMzY4Nzg2LCAwLjQ0NDYzMywgMC41MjAzODEiLCBcCi0gICAgICAgICAgIjAuMDg0MTgxLCAwLjE2Mjc3MiwgMC4yMjM0OTYsIDAuMjk5MzMzLCAwLjM3NTE2NywgMC40NTA5OTUsIDAuNTI2NzU1IiwgXAotICAgICAgICAgICIwLjA4ODY3NSwgMC4xNjczNCwgMC4yMjgwNjEsIDAuMzAzODk3LCAwLjM3OTcwOSwgMC40NTU1MzgsIDAuNTMxMzE3IiwgXAotICAgICAgICAgICIwLjA5MjQ0LCAwLjE3MTE4NSwgMC4yMzE5MiwgMC4zMDc3NTMsIDAuMzgzNTU4LCAwLjQ1OTM2MSwgMC41MzUyMTEiLCBcCi0gICAgICAgICAgIjAuMDk3NjMyLCAwLjE3NjMyMSwgMC4yMzY5NjQsIDAuMzEyOCwgMC4zODg3NDgsIDAuNDY0NTY5LCAwLjU0MDMzMiIsIFwKLSAgICAgICAgICAiMC4xMDEzOTgsIDAuMTgwMDIzLCAwLjI0MDg0OSwgMC4zMTY2NjYsIDAuMzkyNSwgMC40NjgyODUsIDAuNTQ0MDY0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0NTA0MSwgMC4xOTY5MjcsIDAuMzIxOTExLCAwLjQ3ODg5OSwgMC42MzUxMDgsIDAuNzkzOTgxLCAwLjk1MTQ2MiIsIFwKLSAgICAgICAgICAiMC4wNDUwNjEsIDAuMTk2OTIzLCAwLjMyMTMwNSwgMC40Nzg4NzEsIDAuNjM1NjE3LCAwLjc5MzkxOCwgMC45NTEzODciLCBcCi0gICAgICAgICAgIjAuMDQ0OTkzLCAwLjE5Njg1NiwgMC4zMjE4OTksIDAuNDc4ODc1LCAwLjYzNTMzMiwgMC43OTM5MjksIDAuOTUxNDE3IiwgXAotICAgICAgICAgICIwLjA0NTAxLCAwLjE5NzAyNSwgMC4zMjE4NzksIDAuNDc4ODEyLCAwLjYzNTUyNSwgMC43OTI3MzgsIDAuOTUxMjYiLCBcCi0gICAgICAgICAgIjAuMDQ0OTU4LCAwLjE5Njk4NSwgMC4zMjE5MiwgMC40Nzg4NTIsIDAuNjM2MDg5LCAwLjc5MjgzNCwgMC45NDk2OTEiLCBcCi0gICAgICAgICAgIjAuMDQ0OTI1LCAwLjE5NzAxLCAwLjMyMTcwNiwgMC40NzgyNjcsIDAuNjM1Mzg3LCAwLjc5MzM2OCwgMC45NTAzMjUiLCBcCi0gICAgICAgICAgIjAuMDQ1MDA3LCAwLjE5Njg2OCwgMC4zMjE1OTYsIDAuNDc4Mzg1LCAwLjYzNTI2NCwgMC43OTI2NzgsIDAuOTUwODI3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzMzY4LCAwLjAwMzQyNSwgMC4wMDM0MywgMC4wMDM0MzQsIDAuMDAzNDM3LCAwLjAwMzQ0NCwgMC4wMDM0MzkiLCBcCi0gICAgICAgICAgIjAuMDAzMzI1LCAwLjAwMzM5MiwgMC4wMDM0MDMsIDAuMDAzNDA5LCAwLjAwMzQxMiwgMC4wMDM0MTYsIDAuMDAzNDE1IiwgXAotICAgICAgICAgICIwLjAwMzM1NiwgMC4wMDM0MDUsIDAuMDAzNDE2LCAwLjAwMzQyMywgMC4wMDM0MjYsIDAuMDAzNDI4LCAwLjAwMzQzIiwgXAotICAgICAgICAgICIwLjAwMzQyOSwgMC4wMDM0NSwgMC4wMDM0NTcsIDAuMDAzNDY0LCAwLjAwMzQ2NywgMC4wMDM0NjksIDAuMDAzNDciLCBcCi0gICAgICAgICAgIjAuMDAzNTAxLCAwLjAwMzUwNywgMC4wMDM1MTQsIDAuMDAzNTIsIDAuMDAzNTIzLCAwLjAwMzUyNiwgMC4wMDM1MjUiLCBcCi0gICAgICAgICAgIjAuMDAzNjI2LCAwLjAwMzYxOSwgMC4wMDM2MjcsIDAuMDAzNjM0LCAwLjAwMzYzOSwgMC4wMDM2NDMsIDAuMDAzNjQyIiwgXAotICAgICAgICAgICIwLjAwMzgwMywgMC4wMDM3NTIsIDAuMDAzNzU0LCAwLjAwMzc1OCwgMC4wMDM3NiwgMC4wMDM3NjIsIDAuMDAzNzYzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0NjI0LCAwLjAwNDY5NCwgMC4wMDQ3MDYsIDAuMDA0NzEyLCAwLjAwNDcxNiwgMC4wMDQ3MTgsIDAuMDA0NzE5IiwgXAotICAgICAgICAgICIwLjAwNDU5LCAwLjAwNDY3MiwgMC4wMDQ2ODcsIDAuMDA0Njk1LCAwLjAwNDY5OSwgMC4wMDQ3MDIsIDAuMDA0NzA0IiwgXAotICAgICAgICAgICIwLjAwNDYxLCAwLjAwNDY4MiwgMC4wMDQ2OTYsIDAuMDA0NzA1LCAwLjAwNDcwOSwgMC4wMDQ3MTIsIDAuMDA0NzE0IiwgXAotICAgICAgICAgICIwLjAwNDY3LCAwLjAwNDcxNCwgMC4wMDQ3MjgsIDAuMDA0NzM3LCAwLjAwNDc0MSwgMC4wMDQ3NDQsIDAuMDA0NzQ2IiwgXAotICAgICAgICAgICIwLjAwNDcyNiwgMC4wMDQ3NjMsIDAuMDA0Nzc0LCAwLjAwNDc4NSwgMC4wMDQ3ODksIDAuMDA0NzkyLCAwLjAwNDc5NCIsIFwKLSAgICAgICAgICAiMC4wMDQ4OCwgMC4wMDQ4OCwgMC4wMDQ4ODgsIDAuMDA0ODk0LCAwLjAwNDg5OCwgMC4wMDQ4OTksIDAuMDA0OSIsIFwKLSAgICAgICAgICAiMC4wMDQ5OTIsIDAuMDA0OTc2LCAwLjAwNDk4NywgMC4wMDQ5OTcsIDAuMDA1MDAxLCAwLjAwNTAwNSwgMC4wMDUwMDciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDMwNzIsIDAuMDAzMDg0LCAwLjAwMzA4NSwgMC4wMDMwODYsIDAuMDAzMDg2LCAwLjAwMzA4MiwgMC4wMDMwODciLCBcCi0gICAgICAgICAgIjAuMDAzMDMyLCAwLjAwMzA1OSwgMC4wMDMwNjEsIDAuMDAzMDYzLCAwLjAwMzA2MywgMC4wMDMwNjYsIDAuMDAzMDYyIiwgXAotICAgICAgICAgICIwLjAwMzA2NSwgMC4wMDMwNzMsIDAuMDAzMDc2LCAwLjAwMzA3NywgMC4wMDMwNzgsIDAuMDAzMDc5LCAwLjAwMzA3OCIsIFwKLSAgICAgICAgICAiMC4wMDMxMjgsIDAuMDAzMTE0LCAwLjAwMzExNSwgMC4wMDMxMTYsIDAuMDAzMTE2LCAwLjAwMzExNiwgMC4wMDMxMTYiLCBcCi0gICAgICAgICAgIjAuMDAzMjA2LCAwLjAwMzE3MywgMC4wMDMxNywgMC4wMDMxNywgMC4wMDMxNywgMC4wMDMxNzIsIDAuMDAzMTY4IiwgXAotICAgICAgICAgICIwLjAwMzMwMiwgMC4wMDMyNzQsIDAuMDAzMjc0LCAwLjAwMzI3NCwgMC4wMDMyNzUsIDAuMDAzMjc3LCAwLjAwMzI3NCIsIFwKLSAgICAgICAgICAiMC4wMDM1MTIsIDAuMDAzNDE1LCAwLjAwMzQwNCwgMC4wMDMzOTgsIDAuMDAzMzk3LCAwLjAwMzM5NSwgMC4wMDMzOTEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQ5MDQsIDAuMDA0OTQsIDAuMDA0OTQ2LCAwLjAwNDk0OSwgMC4wMDQ5NTEsIDAuMDA0OTUyLCAwLjAwNDk1MiIsIFwKLSAgICAgICAgICAiMC4wMDQ4NzQsIDAuMDA0OTIsIDAuMDA0OTI5LCAwLjAwNDkzMywgMC4wMDQ5MzYsIDAuMDA0OTM3LCAwLjAwNDkzOCIsIFwKLSAgICAgICAgICAiMC4wMDQ4OTksIDAuMDA0OTM0LCAwLjAwNDk0MiwgMC4wMDQ5NDYsIDAuMDA0OTQ5LCAwLjAwNDk1LCAwLjAwNDk1MSIsIFwKLSAgICAgICAgICAiMC4wMDQ5NTQsIDAuMDA0OTcsIDAuMDA0OTc2LCAwLjAwNDk4LCAwLjAwNDk4MiwgMC4wMDQ5ODQsIDAuMDA0OTg0IiwgXAotICAgICAgICAgICIwLjAwNTAyNSwgMC4wMDUwMjIsIDAuMDA1MDI5LCAwLjAwNTAzMSwgMC4wMDUwMzIsIDAuMDA1MDM0LCAwLjAwNTAzNCIsIFwKLSAgICAgICAgICAiMC4wMDUxNTQsIDAuMDA1MTI0LCAwLjAwNTEyOSwgMC4wMDUxMzIsIDAuMDA1MTM0LCAwLjAwNTEzNSwgMC4wMDUxMzYiLCBcCi0gICAgICAgICAgIjAuMDA1MzMxLCAwLjAwNTI0NiwgMC4wMDUyNDUsIDAuMDA1MjQ1LCAwLjAwNTI0NSwgMC4wMDUyNDUsIDAuMDA1MjQ2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUzAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNTgzNywgMC4wMDU4OTksIDAuMDA1OTEsIDAuMDA1OTE3LCAwLjAwNTkxNywgMC4wMDU5MjMsIDAuMDA1OTIzIiwgXAotICAgICAgICAgICIwLjAwNTg0OCwgMC4wMDU5MSwgMC4wMDU5MjEsIDAuMDA1OTI1LCAwLjAwNTkzLCAwLjAwNTkzMSwgMC4wMDU5MzIiLCBcCi0gICAgICAgICAgIjAuMDA1OTMzLCAwLjAwNTk5NywgMC4wMDYwMDIsIDAuMDA2MDE0LCAwLjAwNjAxNywgMC4wMDYwMTQsIDAuMDA2MDE2IiwgXAotICAgICAgICAgICIwLjAwNjA0MywgMC4wMDYxMDMsIDAuMDA2MTE0LCAwLjAwNjEyMSwgMC4wMDYxMjQsIDAuMDA2MTI2LCAwLjAwNjEyNyIsIFwKLSAgICAgICAgICAiMC4wMDYxNjksIDAuMDA2MjMxLCAwLjAwNjIzOSwgMC4wMDYyNDMsIDAuMDA2MjQ3LCAwLjAwNjI0OSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiMC4wMDY0MjcsIDAuMDA2NDg3LCAwLjAwNjQ5NSwgMC4wMDY1MDIsIDAuMDA2NTA4LCAwLjAwNjUwOSwgMC4wMDY1MDkiLCBcCi0gICAgICAgICAgIjAuMDA2NjE0LCAwLjAwNjY3NiwgMC4wMDY2ODEsIDAuMDA2Njg5LCAwLjAwNjY5NCwgMC4wMDY2OTUsIDAuMDA2Njk2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0MzgzLCAwLjAwNDQzOCwgMC4wMDQ0NDksIDAuMDA0NDU2LCAwLjAwNDQ1OSwgMC4wMDQ0NjEsIDAuMDA0NDYyIiwgXAotICAgICAgICAgICIwLjAwNDM4OSwgMC4wMDQ0NDQsIDAuMDA0NDU1LCAwLjAwNDQ2MSwgMC4wMDQ0NjQsIDAuMDA0NDY2LCAwLjAwNDQ2OCIsIFwKLSAgICAgICAgICAiMC4wMDQ0ODEsIDAuMDA0NTM0LCAwLjAwNDU0NCwgMC4wMDQ1NSwgMC4wMDQ1NTMsIDAuMDA0NTU1LCAwLjAwNDU1NyIsIFwKLSAgICAgICAgICAiMC4wMDQ1OTcsIDAuMDA0NjUxLCAwLjAwNDY2MSwgMC4wMDQ2NjcsIDAuMDA0NjcxLCAwLjAwNDY3MywgMC4wMDQ2NzQiLCBcCi0gICAgICAgICAgIjAuMDA0NzIzLCAwLjAwNDc3OCwgMC4wMDQ3ODksIDAuMDA0Nzk1LCAwLjAwNDc5OCwgMC4wMDQ4LCAwLjAwNDgwMSIsIFwKLSAgICAgICAgICAiMC4wMDQ5ODUsIDAuMDA1MDM1LCAwLjAwNTA0NSwgMC4wMDUwNTEsIDAuMDA1MDU0LCAwLjAwNTA1NSwgMC4wMDUwNTciLCBcCi0gICAgICAgICAgIjAuMDA1MTg1LCAwLjAwNTIzOCwgMC4wMDUyNDksIDAuMDA1MjU2LCAwLjAwNTI2LCAwLjAwNTI2MSwgMC4wMDUyNjMiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogTVgyWDQgKgotICogLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKE1YMlg0KSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuNjcxNjEzOwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA4MzA2MTg7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwODI4ODE2OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDgzMDYxODsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAzOTgsIDAuMDAwNDAxLCAwLjAwMDQwNCwgMC4wMDA0MDUsIDAuMDAwNDA1LCAwLjAwMDQwNiwgMC4wMDA0MDciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA0NDQsIDAuMDAwNDI5LCAwLjAwMDQyNywgMC4wMDA0MjUsIDAuMDAwNDI1LCAwLjAwMDQyNCwgMC4wMDA0MjQiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDgzNTQ1OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDgzMzU2OTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA4MzU0NTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA0MDgsIDAuMDAwNDExLCAwLjAwMDQxMiwgMC4wMDA0MTIsIDAuMDAwNDEyLCAwLjAwMDQxMywgMC4wMDA0MTMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA0NDUsIDAuMDAwNDMsIDAuMDAwNDI4LCAwLjAwMDQyNiwgMC4wMDA0MjYsIDAuMDAwNDI0LCAwLjAwMDQyNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUzApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTU3OTc3OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTU3OTQ2OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTU3OTc3OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDIyMiwgMC4wMDAyMzIsIDAuMDAwMzE2LCAwLjAwMDQyNCwgMC4wMDA1NTEsIDAuMDAwNzc1LCAwLjAwMDk3NCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjY3NCwgMC4wMDI2OTIsIDAuMDAyNzYzLCAwLjAwMjg2NSwgMC4wMDI5OTEsIDAuMDAzMjExLCAwLjAwMzM5OSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAxLjM3OTY5OwotICAgIGZ1bmN0aW9uIDogIigoUzAgQikgKyAoIVMwIEEpKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU2MDU0LCAwLjA5OTY5OSwgMC4xMzA5NCwgMC4xNjk2NDcsIDAuMjA4MzE0LCAwLjI0Njk0NSwgMC4yODU1NiIsIFwKLSAgICAgICAgICAiMC4wNjIzNzUsIDAuMTA2MDc4LCAwLjEzNzMyNywgMC4xNzYwMzYsIDAuMjE0Njg1LCAwLjI1MzMzOSwgMC4yOTE5NSIsIFwKLSAgICAgICAgICAiMC4wNzAyNDUsIDAuMTEzODU2LCAwLjE0NTEwMywgMC4xODM4MDQsIDAuMjIyNDYzLCAwLjI2MTA5NywgMC4yOTk3MTUiLCBcCi0gICAgICAgICAgIjAuMDc3NDMxLCAwLjEyMTEwOSwgMC4xNTIzNTgsIDAuMTkxMDYsIDAuMjI5NzA4LCAwLjI2ODMzNCwgMC4zMDY5NzIiLCBcCi0gICAgICAgICAgIjAuMDgzNzQ2LCAwLjEyNzY4MSwgMC4xNTg5NTgsIDAuMTk3NzI5LCAwLjIzNjM1NCwgMC4yNzUwMDcsIDAuMzEzNjExIiwgXAotICAgICAgICAgICIwLjA5MjQ4NiwgMC4xMzcxMTMsIDAuMTY4NDM0LCAwLjIwNzE2NCwgMC4yNDU4MSwgMC4yODQ0MjIsIDAuMzIzMDU1IiwgXAotICAgICAgICAgICIwLjA5OTEwMywgMC4xNDQzMTUsIDAuMTc1ODg4LCAwLjIxNDMxNSwgMC4yNTI5NzksIDAuMjkxNTgyLCAwLjMzMDIyIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzMjM2NywgMC4xMDkyMTcsIDAuMTcyMzM0LCAwLjI1MjYxNiwgMC4zMzM0NzEsIDAuNDE0NjIxLCAwLjQ5NTkwNiIsIFwKLSAgICAgICAgICAiMC4wMzIyMDcsIDAuMTA5MjA3LCAwLjE3MjI3NCwgMC4yNTI0MTQsIDAuMzMzMzMsIDAuNDE0NjY0LCAwLjQ5NTg4OSIsIFwKLSAgICAgICAgICAiMC4wMzIzMzMsIDAuMTA5MjYyLCAwLjE3MjM4NywgMC4yNTI1NjksIDAuMzMzNDY1LCAwLjQxNDYyLCAwLjQ5NTgxNyIsIFwKLSAgICAgICAgICAiMC4wMzMwNCwgMC4xMDk1MTYsIDAuMTcyNjE3LCAwLjI1MjcwNiwgMC4zMzI5NzQsIDAuNDE0MTkyLCAwLjQ5NTg2MSIsIFwKLSAgICAgICAgICAiMC4wMzQwNCwgMC4xMTAwODgsIDAuMTcyOTMsIDAuMjUyODgyLCAwLjMzMzUwNSwgMC40MTQ2NjcsIDAuNDk1ODc1IiwgXAotICAgICAgICAgICIwLjAzNTUwOSwgMC4xMTA5OTQsIDAuMTczNTMyLCAwLjI1MzA0NiwgMC4zMzM4MjIsIDAuNDE0NjU3LCAwLjQ5NTg3NyIsIFwKLSAgICAgICAgICAiMC4wMzY5OTYsIDAuMTExOTk0LCAwLjE3NDMzOCwgMC4yNTM1MjMsIDAuMzM0MDQxLCAwLjQxNDY3OSwgMC40OTU5NTgiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDYwMDYsIDAuMTA0MzcsIDAuMTM1Njk2LCAwLjE3NDMwMywgMC4yMTI4MjMsIDAuMjUxMzE1LCAwLjI4OTc4NyIsIFwKLSAgICAgICAgICAiMC4wNjYxMDYsIDAuMTEwMzg4LCAwLjE0MTczNywgMC4xODAzNTEsIDAuMjE4ODcsIDAuMjU3MzU2LCAwLjI5NTg0NCIsIFwKLSAgICAgICAgICAiMC4wNzMyMzUsIDAuMTE3NDU3LCAwLjE0ODc3NiwgMC4xODczOTUsIDAuMjI1OTEzLCAwLjI2NDQwMiwgMC4zMDI4NjciLCBcCi0gICAgICAgICAgIjAuMDc5ODIzLCAwLjEyNDEyOSwgMC4xNTU0NDksIDAuMTk0MDYsIDAuMjMyNTcsIDAuMjcxMDU4LCAwLjMwOTUyMiIsIFwKLSAgICAgICAgICAiMC4wODU1NDIsIDAuMTMwMTMxLCAwLjE2MTQ2MywgMC4yMDAwNzUsIDAuMjM4NTc5LCAwLjI3NzA4NSwgMC4zMTU1NTEiLCBcCi0gICAgICAgICAgIjAuMDkzMzI4LCAwLjEzODQyOCwgMC4xNjk3OTQsIDAuMjA4NDIzLCAwLjI0NjkwOSwgMC4yODUzODQsIDAuMzIzODU4IiwgXAotICAgICAgICAgICIwLjA5OTIxMiwgMC4xNDQ3NDEsIDAuMTc2MjMyLCAwLjIxNDg3NSwgMC4yNTMzNTksIDAuMjkxODMyLCAwLjMzMDMwNyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzI4NDgsIDAuMTA4NjcxLCAwLjE3MDQ3MiwgMC4yNDkwNTEsIDAuMzI4MjYsIDAuNDA3ODMsIDAuNDg3NTU1IiwgXAotICAgICAgICAgICIwLjAzMjcyMywgMC4xMDg2MDksIDAuMTcwNDMzLCAwLjI0ODc5MSwgMC4zMjgyNjIsIDAuNDA3MDQ4LCAwLjQ4NzU2MSIsIFwKLSAgICAgICAgICAiMC4wMzI4NCwgMC4xMDg2OSwgMC4xNzA0NzYsIDAuMjQ4OTIzLCAwLjMyODI3MiwgMC40MDc4NDgsIDAuNDg3NDcyIiwgXAotICAgICAgICAgICIwLjAzMzU5NCwgMC4xMDg5NjEsIDAuMTcwNjY0LCAwLjI0OTAzOSwgMC4zMjgzNTIsIDAuNDA3ODkyLCAwLjQ4NzQ4NyIsIFwKLSAgICAgICAgICAiMC4wMzQ1NzYsIDAuMTA5NTE0LCAwLjE3MDkxNCwgMC4yNDkxNDgsIDAuMzI4MTgsIDAuNDA4MDIzLCAwLjQ4NzY2OCIsIFwKLSAgICAgICAgICAiMC4wMzU3MDYsIDAuMTEwNDgxLCAwLjE3MTcxNywgMC4yNDk2NTIsIDAuMzI4NTM2LCAwLjQwODE1NiwgMC40ODcwNTciLCBcCi0gICAgICAgICAgIjAuMDM2OTA0LCAwLjExMTIxNywgMC4xNzIxNzksIDAuMjUwMDYsIDAuMzI4OTU5LCAwLjQwODE5NiwgMC40ODc0MjIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU1NTYsIDAuMDk5MTk0LCAwLjEzMDQzMywgMC4xNjkxMzIsIDAuMjA3NzkyLCAwLjI0NjQyLCAwLjI4NTA2OSIsIFwKLSAgICAgICAgICAiMC4wNjIwMDksIDAuMTA1NjQ5LCAwLjEzNjg3NywgMC4xNzU1NzcsIDAuMjE0MjE5LCAwLjI1Mjg3NSwgMC4yOTE0ODQiLCBcCi0gICAgICAgICAgIjAuMDY5OTYzLCAwLjExMzQ5NCwgMC4xNDQ3MjIsIDAuMTgzNDE1LCAwLjIyMjA2OSwgMC4yNjA3LCAwLjI5OTMyNiIsIFwKLSAgICAgICAgICAiMC4wNzcyMzYsIDAuMTIwNzkzLCAwLjE1MjA2NiwgMC4xOTA3NjUsIDAuMjI5NDE3LCAwLjI2ODAzOSwgMC4zMDY2NjkiLCBcCi0gICAgICAgICAgIjAuMDgzNTczLCAwLjEyNzQ1NSwgMC4xNTg3MTMsIDAuMTk3NDIxLCAwLjIzNjExMywgMC4yNzQ3NTgsIDAuMzEzMzUzIiwgXAotICAgICAgICAgICIwLjA5MjM4OSwgMC4xMzY5NTQsIDAuMTY4MjUsIDAuMjA2OTcsIDAuMjQ1NTk0LCAwLjI4NDIxOSwgMC4zMjI4NDYiLCBcCi0gICAgICAgICAgIjAuMDk5MDg3LCAwLjE0NDE5NiwgMC4xNzU3MDgsIDAuMjE0MjM3LCAwLjI1Mjg2NywgMC4yOTE0NTQsIDAuMzMwMDY4Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzMjMzNCwgMC4xMDkyMjgsIDAuMTcyMjY4LCAwLjI1MjQ4NCwgMC4zMzM0NzIsIDAuNDE0NjkyLCAwLjQ5NTk1OSIsIFwKLSAgICAgICAgICAiMC4wMzIyMiwgMC4xMDkxMTYsIDAuMTcyMjc3LCAwLjI1MjQxNSwgMC4zMzMwNzMsIDAuNDE0NjkyLCAwLjQ5NTkwMSIsIFwKLSAgICAgICAgICAiMC4wMzI0NjgsIDAuMTA5Mjk0LCAwLjE3MjQxLCAwLjI1MjYwMSwgMC4zMzM0OTMsIDAuNDE0NTgsIDAuNDk1OTMxIiwgXAotICAgICAgICAgICIwLjAzMzAyNywgMC4xMDk3MjEsIDAuMTcyNTg2LCAwLjI1MjcwNSwgMC4zMzM1MzksIDAuNDE0NTY3LCAwLjQ5NTg4OCIsIFwKLSAgICAgICAgICAiMC4wMzM5NTcsIDAuMTEwMTQ3LCAwLjE3Mjk0MiwgMC4yNTI3MzIsIDAuMzMzMzEyLCAwLjQxMzk0NCwgMC40OTU0MTYiLCBcCi0gICAgICAgICAgIjAuMDM1NTMzLCAwLjExMTAwMSwgMC4xNzM1MzQsIDAuMjUzMDA3LCAwLjMzMzgxOSwgMC40MTQ0MzYsIDAuNDk1ODkyIiwgXAotICAgICAgICAgICIwLjAzNjg3MiwgMC4xMTE5NDUsIDAuMTc0MjA3LCAwLjI1MzUyOSwgMC4zMzQwODcsIDAuNDE0ODk1LCAwLjQ5NTcxNiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjAzMTQsIDAuMTA0NTkzLCAwLjEzNTg5MiwgMC4xNzQ0OTUsIDAuMjEzMDE0LCAwLjI1MTUwMSwgMC4yODk5NzEiLCBcCi0gICAgICAgICAgIjAuMDY2MjMxLCAwLjExMDQ5LCAwLjE0MTgwOCwgMC4xODA0MTQsIDAuMjE4OTI3LCAwLjI1NzQwNSwgMC4yOTU4OTUiLCBcCi0gICAgICAgICAgIjAuMDczMjcxLCAwLjExNzQ2NCwgMC4xNDg3NzQsIDAuMTg3Mzc3LCAwLjIyNTg4NywgMC4yNjQzNzEsIDAuMzAyODM4IiwgXAotICAgICAgICAgICIwLjA3OTc4OSwgMC4xMjQwODcsIDAuMTU1MzkzLCAwLjE5Mzk5MywgMC4yMzI0OTgsIDAuMjcwOTc3LCAwLjMwOTQ2IiwgXAotICAgICAgICAgICIwLjA4NTQ1LCAwLjEyOTk2NiwgMC4xNjEyOTksIDAuMTk5OTA4LCAwLjIzODQxMSwgMC4yNzY5MDEsIDAuMzE1MzciLCBcCi0gICAgICAgICAgIjAuMDkzMTQyLCAwLjEzODIwNSwgMC4xNjk1NzgsIDAuMjA4MTgyLCAwLjI0NjY3MSwgMC4yODUxNzIsIDAuMzIzNjU3IiwgXAotICAgICAgICAgICIwLjA5ODksIDAuMTQ0NDQxLCAwLjE3NTkwNSwgMC4yMTQ1NTksIDAuMjUzMDQ1LCAwLjI5MTUxOSwgMC4zMjk5NyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzI3NjUsIDAuMTA4NTQ5LCAwLjE3MDQzNCwgMC4yNDkwNDMsIDAuMzI3Nzc3LCAwLjQwNzgwNCwgMC40ODc1MDgiLCBcCi0gICAgICAgICAgIjAuMDMyNzQ4LCAwLjEwODU4NywgMC4xNzA0MDIsIDAuMjQ4NzU4LCAwLjMyODIzMSwgMC40MDczMzUsIDAuNDg3NTI0IiwgXAotICAgICAgICAgICIwLjAzMjgyLCAwLjEwODY1LCAwLjE3MDQ0LCAwLjI0ODg4NiwgMC4zMjgyNDIsIDAuNDA3ODE2LCAwLjQ4NjkwNiIsIFwKLSAgICAgICAgICAiMC4wMzM1NCwgMC4xMDg5MTUsIDAuMTcwNjI1LCAwLjI0OTAwNywgMC4zMjgzMTcsIDAuNDA3MzYzLCAwLjQ4NzU0NCIsIFwKLSAgICAgICAgICAiMC4wMzQzMjQsIDAuMTA5NDY1LCAwLjE3MDksIDAuMjQ5MjA0LCAwLjMyODEyNSwgMC40MDc5NDcsIDAuNDg3NjA4IiwgXAotICAgICAgICAgICIwLjAzNTY1NSwgMC4xMTA0MTMsIDAuMTcxNjksIDAuMjQ5NTk1LCAwLjMyODQ4LCAwLjQwODEzOSwgMC40ODY5OTQiLCBcCi0gICAgICAgICAgIjAuMDM2Nzk4LCAwLjExMTE5NywgMC4xNzIxMDIsIDAuMjUwMDM2LCAwLjMyODkwOCwgMC40MDgwODgsIDAuNDg3Mzg5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlMwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTEzMTksIDAuMDk0OTExLCAwLjEyNjE0MiwgMC4xNjQ4MzgsIDAuMjAzNDksIDAuMjQyMTI4LCAwLjI4MDc0NyIsIFwKLSAgICAgICAgICAiMC4wNTg4NDQsIDAuMTAyNDQ0LCAwLjEzMzY3OCwgMC4xNzIzNzQsIDAuMjExMDMsIDAuMjQ5NjczLCAwLjI4ODI4NyIsIFwKLSAgICAgICAgICAiMC4wNjg2LCAwLjExMjE0MiwgMC4xNDMzODEsIDAuMTgyMDc3LCAwLjIyMDczMiwgMC4yNTkzOCwgMC4yOTc5OTIiLCBcCi0gICAgICAgICAgIjAuMDc3NTQ0LCAwLjEyMTI2NSwgMC4xNTI0OTgsIDAuMTkxMTgxLCAwLjIyOTgyNywgMC4yNjg0OCwgMC4zMDcwOSIsIFwKLSAgICAgICAgICAiMC4wODUyMDEsIDAuMTI5MjY2LCAwLjE2MDQ5NiwgMC4xOTkxNTYsIDAuMjM3ODA3LCAwLjI3NjQ3LCAwLjMxNTA2OSIsIFwKLSAgICAgICAgICAiMC4wOTUxMzMsIDAuMTQwMTc1LCAwLjE3MTQwNCwgMC4yMTAxMDMsIDAuMjQ4NzI5LCAwLjI4NzMzLCAwLjMyNTk3MiIsIFwKLSAgICAgICAgICAiMC4xMDI2MDUsIDAuMTQ4MzA5LCAwLjE3OTU3NSwgMC4yMTgzNDksIDAuMjU2ODQ5LCAwLjI5NTQ2NywgMC4zMzQxMzQiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDMyMTQ4LCAwLjEwOTE5LCAwLjE3MjM1OSwgMC4yNTI1NzUsIDAuMzMyOTM2LCAwLjQxMzg2MywgMC40OTU4OTQiLCBcCi0gICAgICAgICAgIjAuMDMyMSwgMC4xMDkxODcsIDAuMTcyMzUzLCAwLjI1MjU2OSwgMC4zMzI5NzUsIDAuNDE0NjM5LCAwLjQ5NTg5MiIsIFwKLSAgICAgICAgICAiMC4wMzIzOTYsIDAuMTA5MjU5LCAwLjE3MjM5NCwgMC4yNTI1ODIsIDAuMzMzMzYyLCAwLjQxNDY2NCwgMC40OTU4NjIiLCBcCi0gICAgICAgICAgIjAuMDMzNTM5LCAwLjEwOTYzMSwgMC4xNzI1ODYsIDAuMjUyNTM1LCAwLjMzMzI2LCAwLjQxNDcxMywgMC40OTU5MjgiLCBcCi0gICAgICAgICAgIjAuMDM1Mzk3LCAwLjExMDM5MywgMC4xNzMwNTksIDAuMjUyODY5LCAwLjMzMzQwNiwgMC40MTQ3NjIsIDAuNDk1OTc1IiwgXAotICAgICAgICAgICIwLjAzNzY3LCAwLjExMTc4OCwgMC4xNzM5NTMsIDAuMjUzNDExLCAwLjMzMzkxNywgMC40MTQ1NiwgMC40OTU0NjYiLCBcCi0gICAgICAgICAgIjAuMDM5Njk3LCAwLjExMzEyMSwgMC4xNzQ2NjQsIDAuMjUzODg1LCAwLjMzMzkyLCAwLjQxNTEwMywgMC40OTYzNCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTU3OTUsIDAuMTAwMDQ5LCAwLjEzMTM3MywgMC4xNjk5ODgsIDAuMjA4NSwgMC4yNDY5ODgsIDAuMjg1NDcxIiwgXAotICAgICAgICAgICIwLjA2MzE0MSwgMC4xMDc0MDQsIDAuMTM4NzI3LCAwLjE3NzM0OSwgMC4yMTU4NywgMC4yNTQzNTgsIDAuMjkyODQ2IiwgXAotICAgICAgICAgICIwLjA3Mjg1OSwgMC4xMTcwODksIDAuMTQ4NDA4LCAwLjE4NzAyNiwgMC4yMjU1NDQsIDAuMjY0MDQxLCAwLjMwMjUxOSIsIFwKLSAgICAgICAgICAiMC4wODE4NTYsIDAuMTI2MTg2LCAwLjE1NzUwOCwgMC4xOTYxMzEsIDAuMjM0NjQ1LCAwLjI3MzEzNCwgMC4zMTE2MDciLCBcCi0gICAgICAgICAgIjAuMDg5NjE2LCAwLjEzNDE0NCwgMC4xNjU0OTQsIDAuMjA0MTA4LCAwLjI0MjU1NywgMC4yODEwMzYsIDAuMzE5NTI1IiwgXAotICAgICAgICAgICIwLjA5OTcwOCwgMC4xNDQ5NSwgMC4xNzYzNzQsIDAuMjE0OTgzLCAwLjI1MzQ1NCwgMC4yOTE4OTYsIDAuMzMwMzQ1IiwgXAotICAgICAgICAgICIwLjEwNzIwNywgMC4xNTI5NzcsIDAuMTg0NDY0LCAwLjIyMzA2NSwgMC4yNjE1NDYsIDAuMzAwMDIyLCAwLjMzODQ1OSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzI2OTksIDAuMTA4NjA0LCAwLjE3MDQzNSwgMC4yNDg5MTQsIDAuMzI4MjY2LCAwLjQwNzc2MSwgMC40ODc1MzciLCBcCi0gICAgICAgICAgIjAuMDMyNjI5LCAwLjEwODYxLCAwLjE3MDQ0NSwgMC4yNDg4NjUsIDAuMzI4MjYzLCAwLjQwNzgzOSwgMC40ODY4NjQiLCBcCi0gICAgICAgICAgIjAuMDMyNzU5LCAwLjEwODY1MiwgMC4xNzA0NTYsIDAuMjQ4OTIzLCAwLjMyODI2OSwgMC40MDcxOTYsIDAuNDg3NTQ0IiwgXAotICAgICAgICAgICIwLjAzMzYzOSwgMC4xMDg5NjYsIDAuMTcwNjYxLCAwLjI0ODkwOCwgMC4zMjgzMzksIDAuNDA3ODgyLCAwLjQ4Njk2MyIsIFwKLSAgICAgICAgICAiMC4wMzUxMiwgMC4xMDk1OTYsIDAuMTcxMDMyLCAwLjI0OTM5MywgMC4zMjgyMTQsIDAuNDA3ODk3LCAwLjQ4NzY0NyIsIFwKLSAgICAgICAgICAiMC4wMzcyNSwgMC4xMTA4NDUsIDAuMTcxODg5LCAwLjI0OTc4NywgMC4zMjg4ODIsIDAuNDA3NjU5LCAwLjQ4NzcxOCIsIFwKLSAgICAgICAgICAiMC4wMzkxMDUsIDAuMTExODU4LCAwLjE3MjYyNiwgMC4yNTAyNjMsIDAuMzI5MTc2LCAwLjQwODQ3MSwgMC40ODc0NTYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUzAiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2NTE0NywgMC4xMDg4MjMsIDAuMTQwMDY0LCAwLjE3ODc2NSwgMC4yMTc0MTYsIDAuMjU2MDY5LCAwLjI5NDY4MiIsIFwKLSAgICAgICAgICAiMC4wNzI2NzYsIDAuMTE2MzY0LCAwLjE0NzYzNywgMC4xODYzMzYsIDAuMjI0OTkzLCAwLjI2MzYyMSwgMC4zMDIyNSIsIFwKLSAgICAgICAgICAiMC4wNzkzNDksIDAuMTIyOTkyLCAwLjE1NDI0MSwgMC4xOTI5NDQsIDAuMjMxNjAyLCAwLjI3MDIzNywgMC4zMDg4NDIiLCBcCi0gICAgICAgICAgIjAuMDgzODk0LCAwLjEyNzYxLCAwLjE1ODg0LCAwLjE5NzU1NywgMC4yMzYyMjQsIDAuMjc0ODU5LCAwLjMxMzQ5OSIsIFwKLSAgICAgICAgICAiMC4wODc1NSwgMC4xMzEyMjcsIDAuMTYyNTExLCAwLjIwMTIzMywgMC4yMzk5LCAwLjI3ODUzMywgMC4zMTcxNTMiLCBcCi0gICAgICAgICAgIjAuMDkyNDIzLCAwLjEzNjEyMywgMC4xNjc0MiwgMC4yMDYxNzcsIDAuMjQ0ODM4LCAwLjI4MzQ3MiwgMC4zMjIwOTYiLCBcCi0gICAgICAgICAgIjAuMDk2MDgsIDAuMTM5NzM4LCAwLjE3MTAzOCwgMC4yMDk4MDMsIDAuMjQ4NDczLCAwLjI4NzExNSwgMC4zMjU3MzkiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDMyMjI3LCAwLjEwOTE4MywgMC4xNzIzODUsIDAuMjUyNTg2LCAwLjMzMzMzOSwgMC40MTQ2NDksIDAuNDk1ODg5IiwgXAotICAgICAgICAgICIwLjAzMjIyMiwgMC4xMDkyMTYsIDAuMTcyMzc5LCAwLjI1MjQxMiwgMC4zMzM1MDMsIDAuNDE0MDg4LCAwLjQ5NTg2NiIsIFwKLSAgICAgICAgICAiMC4wMzIwOTgsIDAuMTA5MTk4LCAwLjE3MjM2MywgMC4yNTI0MDEsIDAuMzMzNDk2LCAwLjQxNDYzOCwgMC40OTU3MDQiLCBcCi0gICAgICAgICAgIjAuMDMyMDg5LCAwLjEwOTI3LCAwLjE3MjM5NSwgMC4yNTI0NjcsIDAuMzMzNTA0LCAwLjQxNDYzNiwgMC40OTU4ODMiLCBcCi0gICAgICAgICAgIjAuMDMyMTE5LCAwLjEwOTI3NSwgMC4xNzI0NjUsIDAuMjUyNDczLCAwLjMzMzAyNCwgMC40MTQ1NjYsIDAuNDk1NzgxIiwgXAotICAgICAgICAgICIwLjAzMjA3NCwgMC4xMDkxODEsIDAuMTcyNDU0LCAwLjI1MjU4NSwgMC4zMzMyMTksIDAuNDE0NDczLCAwLjQ5NTczNiIsIFwKLSAgICAgICAgICAiMC4wMzIxMjUsIDAuMTA5MzE2LCAwLjE3MjM3MywgMC4yNTI0MDcsIDAuMzMzMjYsIDAuNDE0LCAwLjQ5NTQ2Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2NzUzMSwgMC4xMTE3NSwgMC4xNDMwOTEsIDAuMTgxNjk4LCAwLjIyMDIxMiwgMC4yNTg2ODksIDAuMjk3MTgzIiwgXAotICAgICAgICAgICIwLjA3NTI0OCwgMC4xMTk0NjgsIDAuMTUwNzk3LCAwLjE4OTQwNywgMC4yMjc5MiwgMC4yNjY0MSwgMC4zMDQ4NyIsIFwKLSAgICAgICAgICAiMC4wODE5MjMsIDAuMTI2MTIzLCAwLjE1NzQzNiwgMC4xOTYwNDYsIDAuMjM0NTU3LCAwLjI3MzA0NCwgMC4zMTE1MjYiLCBcCi0gICAgICAgICAgIjAuMDg2NjgxLCAwLjEzMDk0MSwgMC4xNjIyNTcsIDAuMjAwODcyLCAwLjIzOTM4MiwgMC4yNzc4NjcsIDAuMzE2MzUiLCBcCi0gICAgICAgICAgIjAuMDkwNjc4LCAwLjEzNDg2NSwgMC4xNjYyMDEsIDAuMjA0ODM1LCAwLjI0MzM0MywgMC4yODE4MjksIDAuMzIwMzA2IiwgXAotICAgICAgICAgICIwLjA5NTk0NywgMC4xNDAzMzYsIDAuMTcxNTYzLCAwLjIxMDE5NCwgMC4yNDg3MTgsIDAuMjg3MjAzLCAwLjMyNTY4NCIsIFwKLSAgICAgICAgICAiMC4wOTk5NTksIDAuMTQ0MjI3LCAwLjE3NTYxOSwgMC4yMTQyMTMsIDAuMjUyNzUzLCAwLjI5MTI0NCwgMC4zMjk3MjYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDMyNzIzLCAwLjEwODU4MSwgMC4xNzA0MDYsIDAuMjQ4NzcyLCAwLjMyODI2NCwgMC40MDczMDgsIDAuNDg3NTQ4IiwgXAotICAgICAgICAgICIwLjAzMjcwNywgMC4xMDg1NjcsIDAuMTcwNDA2LCAwLjI0ODc3MSwgMC4zMjgyMjgsIDAuNDA3ODA5LCAwLjQ4NzQyOCIsIFwKLSAgICAgICAgICAiMC4wMzI3MDYsIDAuMTA4NTY2LCAwLjE3MDM4MywgMC4yNDg4NTgsIDAuMzI4MTgxLCAwLjQwNzc4NCwgMC40ODc1MTMiLCBcCi0gICAgICAgICAgIjAuMDMyNTk2LCAwLjEwODYyNSwgMC4xNzA0MzIsIDAuMjQ4ODksIDAuMzI4MjUsIDAuNDA3MzQ2LCAwLjQ4NzUwMyIsIFwKLSAgICAgICAgICAiMC4wMzI2NDEsIDAuMTA4NjA3LCAwLjE3MDQwMywgMC4yNDg4MjYsIDAuMzI4MzEsIDAuNDA3NzU2LCAwLjQ4NzQzMyIsIFwKLSAgICAgICAgICAiMC4wMzI1NTYsIDAuMTA4Njg3LCAwLjE3MDQ0LCAwLjI0ODkxNSwgMC4zMjc4NjYsIDAuNDA3NTQ3LCAwLjQ4NzIwMiIsIFwKLSAgICAgICAgICAiMC4wMzI2MTgsIDAuMTA4NTUzLCAwLjE3MDM1OSwgMC4yNDg3NTgsIDAuMzI3OTA0LCAwLjQwNzI5OSwgMC40ODY4OTciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDYwODksIDAuMDA2MTMxLCAwLjAwNjE1NCwgMC4wMDYxNjksIDAuMDA2MTc3LCAwLjAwNjE4OCwgMC4wMDYxODUiLCBcCi0gICAgICAgICAgIjAuMDA2MDEyLCAwLjAwNjA3NiwgMC4wMDYxMDYsIDAuMDA2MTI2LCAwLjAwNjEzNiwgMC4wMDYxNDMsIDAuMDA2MTQ4IiwgXAotICAgICAgICAgICIwLjAwNjA2OCwgMC4wMDYwODIsIDAuMDA2MTExLCAwLjAwNjEyNywgMC4wMDYxMzksIDAuMDA2MTUsIDAuMDA2MTUyIiwgXAotICAgICAgICAgICIwLjAwNjE4LCAwLjAwNjEzNCwgMC4wMDYxNTUsIDAuMDA2MTcsIDAuMDA2MTgsIDAuMDA2MTg2LCAwLjAwNjE5NCIsIFwKLSAgICAgICAgICAiMC4wMDY0MSwgMC4wMDYyMjEsIDAuMDA2MjMxLCAwLjAwNjI0MiwgMC4wMDYyNDksIDAuMDA2MjU0LCAwLjAwNjI1OCIsIFwKLSAgICAgICAgICAiMC4wMDY0OTIsIDAuMDA2MzEyLCAwLjAwNjMyNCwgMC4wMDYzMzcsIDAuMDA2MzUsIDAuMDA2MzU3LCAwLjAwNjM1OSIsIFwKLSAgICAgICAgICAiMC4wMDY2OTcsIDAuMDA2NDU4LCAwLjAwNjQ2NSwgMC4wMDY0NjQsIDAuMDA2NDc2LCAwLjAwNjQ4LCAwLjAwNjQ4NCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNzgyOSwgMC4wMDc4NzQsIDAuMDA3OTA3LCAwLjAwNzkyNywgMC4wMDc5MzksIDAuMDA3OTQ3LCAwLjAwNzk1MiIsIFwKLSAgICAgICAgICAiMC4wMDc3NTUsIDAuMDA3ODI3LCAwLjAwNzg2OCwgMC4wMDc4OTQsIDAuMDA3OTA5LCAwLjAwNzkxOSwgMC4wMDc5MjYiLCBcCi0gICAgICAgICAgIjAuMDA3ODMyLCAwLjAwNzg0MSwgMC4wMDc4NzcsIDAuMDA3OTAxLCAwLjAwNzkxNiwgMC4wMDc5MjYsIDAuMDA3OTMyIiwgXAotICAgICAgICAgICIwLjAwNzkyMSwgMC4wMDc4ODIsIDAuMDA3OTExLCAwLjAwNzkzMywgMC4wMDc5NDcsIDAuMDA3OTU2LCAwLjAwNzk2MyIsIFwKLSAgICAgICAgICAiMC4wMDgwOSwgMC4wMDc5NDIsIDAuMDA3OTY1LCAwLjAwNzk4MiwgMC4wMDc5OTgsIDAuMDA4MDA3LCAwLjAwODAxNCIsIFwKLSAgICAgICAgICAiMC4wMDgyNDksIDAuMDA4MDkxLCAwLjAwODA5OCwgMC4wMDgxMDYsIDAuMDA4MTE2LCAwLjAwODEyMiwgMC4wMDgxMjYiLCBcCi0gICAgICAgICAgIjAuMDA4NDM1LCAwLjAwODE5LCAwLjAwODE4OSwgMC4wMDgyMDQsIDAuMDA4MjE3LCAwLjAwODIyNiwgMC4wMDgyMzEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDU3NDUsIDAuMDA1NzI3LCAwLjAwNTczMywgMC4wMDU3MzgsIDAuMDA1NzM3LCAwLjAwNTc0MSwgMC4wMDU3NDIiLCBcCi0gICAgICAgICAgIjAuMDA1Njc1LCAwLjAwNTY3NiwgMC4wMDU2OSwgMC4wMDU2OTcsIDAuMDA1NzAzLCAwLjAwNTcwNSwgMC4wMDU3MDgiLCBcCi0gICAgICAgICAgIjAuMDA1NzMsIDAuMDA1NjkyLCAwLjAwNTcwMiwgMC4wMDU3MDksIDAuMDA1NzEzLCAwLjAwNTcxNiwgMC4wMDU3MTgiLCBcCi0gICAgICAgICAgIjAuMDA1ODcxLCAwLjAwNTc1MSwgMC4wMDU3NSwgMC4wMDU3NTMsIDAuMDA1NzU1LCAwLjAwNTc2LCAwLjAwNTc2MyIsIFwKLSAgICAgICAgICAiMC4wMDU5NTIsIDAuMDA1ODU0LCAwLjAwNTg0LCAwLjAwNTgzNCwgMC4wMDU4MzUsIDAuMDA1ODM1LCAwLjAwNTgzMiIsIFwKLSAgICAgICAgICAiMC4wMDYxNjIsIDAuMDA1OTQsIDAuMDA1OTMzLCAwLjAwNTkzMiwgMC4wMDU5MzUsIDAuMDA1OTMzLCAwLjAwNTkzMiIsIFwKLSAgICAgICAgICAiMC4wMDY0MzIsIDAuMDA2MTE5LCAwLjAwNjA5OCwgMC4wMDYwOCwgMC4wMDYwNzgsIDAuMDA2MDczLCAwLjAwNjA3MSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwODA4NCwgMC4wMDgxMjgsIDAuMDA4MTU1LCAwLjAwODE3MiwgMC4wMDgxODMsIDAuMDA4MTg5LCAwLjAwODE5NCIsIFwKLSAgICAgICAgICAiMC4wMDgwNDcsIDAuMDA4MDk0LCAwLjAwODEyNiwgMC4wMDgxNDcsIDAuMDA4MTU5LCAwLjAwODE2NiwgMC4wMDgxNzIiLCBcCi0gICAgICAgICAgIjAuMDA4MTE3LCAwLjAwODEwNywgMC4wMDgxMzUsIDAuMDA4MTU1LCAwLjAwODE2NiwgMC4wMDgxNzQsIDAuMDA4MTc4IiwgXAotICAgICAgICAgICIwLjAwODIzLCAwLjAwODE1OSwgMC4wMDgxNzgsIDAuMDA4MTkzLCAwLjAwODIwMywgMC4wMDgyMSwgMC4wMDgyMTQiLCBcCi0gICAgICAgICAgIjAuMDA4MzU5LCAwLjAwODIxLCAwLjAwODIyOCwgMC4wMDgyNSwgMC4wMDgyNDgsIDAuMDA4MjU2LCAwLjAwODI2MSIsIFwKLSAgICAgICAgICAiMC4wMDg1ODEsIDAuMDA4MzYyLCAwLjAwODM2NCwgMC4wMDgzNjMsIDAuMDA4MzcxLCAwLjAwODM3MSwgMC4wMDgzNzUiLCBcCi0gICAgICAgICAgIjAuMDA4NzE0LCAwLjAwODQ1LCAwLjAwODQ0NiwgMC4wMDg0NTYsIDAuMDA4NDY1LCAwLjAwODQ3MiwgMC4wMDg0NzYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTMCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA4Njg2LCAwLjAwODc0LCAwLjAwODc3LCAwLjAwODc4OSwgMC4wMDg4MDEsIDAuMDA4ODA4LCAwLjAwODgxNCIsIFwKLSAgICAgICAgICAiMC4wMDg3LCAwLjAwODc1NCwgMC4wMDg3ODMsIDAuMDA4ODAyLCAwLjAwODgxMywgMC4wMDg4MiwgMC4wMDg4MjYiLCBcCi0gICAgICAgICAgIjAuMDA4Nzc4LCAwLjAwODgzMywgMC4wMDg4NjEsIDAuMDA4ODgsIDAuMDA4ODkxLCAwLjAwODksIDAuMDA4OTAyIiwgXAotICAgICAgICAgICIwLjAwODg3OCwgMC4wMDg5NDIsIDAuMDA4OTczLCAwLjAwODk5MSwgMC4wMDkwMDEsIDAuMDA5MDA5LCAwLjAwOTAxNCIsIFwKLSAgICAgICAgICAiMC4wMDkwMDksIDAuMDA5MDY0LCAwLjAwOTA5NCwgMC4wMDkxMTEsIDAuMDA5MTIzLCAwLjAwOTEzNCwgMC4wMDkxMzYiLCBcCi0gICAgICAgICAgIjAuMDA5MjYxLCAwLjAwOTMyLCAwLjAwOTM0NCwgMC4wMDkzNjQsIDAuMDA5Mzc3LCAwLjAwOTM4NSwgMC4wMDkzODkiLCBcCi0gICAgICAgICAgIjAuMDA5NDQ1LCAwLjAwOTQ5NSwgMC4wMDk1MjMsIDAuMDA5NTQ0LCAwLjAwOTU1NSwgMC4wMDk1NiwgMC4wMDk1NjciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDczNzQsIDAuMDA3NDIyLCAwLjAwNzQ1NywgMC4wMDc0OCwgMC4wMDc0OTQsIDAuMDA3NTAyLCAwLjAwNzUwOCIsIFwKLSAgICAgICAgICAiMC4wMDczODYsIDAuMDA3NDM0LCAwLjAwNzQ3LCAwLjAwNzQ5MywgMC4wMDc1MDYsIDAuMDA3NTE1LCAwLjAwNzUyMSIsIFwKLSAgICAgICAgICAiMC4wMDc0NjYsIDAuMDA3NTE2LCAwLjAwNzU1MSwgMC4wMDc1NzQsIDAuMDA3NTg3LCAwLjAwNzU5NSwgMC4wMDc2MDIiLCBcCi0gICAgICAgICAgIjAuMDA3NTc1LCAwLjAwNzYyNCwgMC4wMDc2NTksIDAuMDA3NjgyLCAwLjAwNzY5NiwgMC4wMDc3MDUsIDAuMDA3NzExIiwgXAotICAgICAgICAgICIwLjAwNzY5NywgMC4wMDc3NDYsIDAuMDA3NzgxLCAwLjAwNzgwMywgMC4wMDc4MTcsIDAuMDA3ODI2LCAwLjAwNzgzMiIsIFwKLSAgICAgICAgICAiMC4wMDc5MjcsIDAuMDA3OTg2LCAwLjAwODAwOCwgMC4wMDgwMzEsIDAuMDA4MDQ0LCAwLjAwODA1MiwgMC4wMDgwNiIsIFwKLSAgICAgICAgICAiMC4wMDgxMzcsIDAuMDA4MTc0LCAwLjAwODIxMiwgMC4wMDgyMjcsIDAuMDA4MjQ4LCAwLjAwODI1NywgMC4wMDgyNTMiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogTVgyWDYgKgotICogLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKE1YMlg2KSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuODM3ODU0OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA4MjgzODk7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwODI2Njc0OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDgyODM4OTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAzOTgsIDAuMDAwNDAyLCAwLjAwMDQwNCwgMC4wMDA0MDUsIDAuMDAwNDA2LCAwLjAwMDQwNywgMC4wMDA0MDciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA0NDUsIDAuMDAwNDMsIDAuMDAwNDI4LCAwLjAwMDQyNywgMC4wMDA0MjYsIDAuMDAwNDI1LCAwLjAwMDQyNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNzgxOTMyOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDc4MDIzNDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA3ODE5MzI7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNDA4LCAwLjAwMDQxMSwgMC4wMDA0MTIsIDAuMDAwNDEyLCAwLjAwMDQxMywgMC4wMDA0MTMsIDAuMDAwNDEzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNDQyLCAwLjAwMDQyOCwgMC4wMDA0MjYsIDAuMDAwNDI1LCAwLjAwMDQyNCwgMC4wMDA0MjMsIDAuMDAwNDIzIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNDcwNjU7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNDcwNjU7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNDcwNjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAzMjQsIDAuMDAwMzM3LCAwLjAwMDQxNywgMC4wMDA1MjUsIDAuMDAwNjU0LCAwLjAwMDg4MiwgMC4wMDEwOCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjU4NiwgMC4wMDI2MTIsIDAuMDAyNjczLCAwLjAwMjc4LCAwLjAwMjkwNCwgMC4wMDMxMjYsIDAuMDAzMzE2Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDIuMTU4MDU7Ci0gICAgZnVuY3Rpb24gOiAiKChTMCBCKSArICghUzAgQSkpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjI0MTYsIDAuMDk2NDMyLCAwLjExODU5MywgMC4xNDUxNDQsIDAuMTcxMjk3LCAwLjE5NzM4LCAwLjIyMzM5MyIsIFwKLSAgICAgICAgICAiMC4wNjg3MDQsIDAuMTAyNzQ2LCAwLjEyNDkzOCwgMC4xNTE1MDcsIDAuMTc3NjY4LCAwLjIwMzc0NiwgMC4yMjk3NjgiLCBcCi0gICAgICAgICAgIjAuMDc2Njk2LCAwLjExMDY4MSwgMC4xMzI4NTcsIDAuMTU5MzgsIDAuMTg1NTM1LCAwLjIxMTYxOCwgMC4yMzc2NCIsIFwKLSAgICAgICAgICAiMC4wODQ0MTQsIDAuMTE4NDA2LCAwLjE0MDU1MSwgMC4xNjcxMDYsIDAuMTkzMjYzLCAwLjIxOTM0MywgMC4yNDUzNiIsIFwKLSAgICAgICAgICAiMC4wOTE0LCAwLjEyNTQ2NiwgMC4xNDc2OTgsIDAuMTc0MjYyLCAwLjIwMDQzNCwgMC4yMjY0OTUsIDAuMjUyNTE2IiwgXAotICAgICAgICAgICIwLjEwMTAwMiwgMC4xMzU5MTMsIDAuMTU4MTUyLCAwLjE4NDc4NSwgMC4yMTA5OSwgMC4yMzcwMzcsIDAuMjYzMDY3IiwgXAotICAgICAgICAgICIwLjEwODQzOCwgMC4xNDM4NjIsIDAuMTY2MzM5LCAwLjE5Mjk1MywgMC4yMTkwODksIDAuMjQ1MTUzLCAwLjI3MTE4Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzMTE5OSwgMC4wODM0ODQsIDAuMTI0ODc3LCAwLjE3NzU2MSwgMC4yMzA4LCAwLjI4NDc1OSwgMC4zMzkxNDciLCBcCi0gICAgICAgICAgIjAuMDMxMDE1LCAwLjA4MzQ2NiwgMC4xMjQ3NjYsIDAuMTc3NDU0LCAwLjIzMDg2MSwgMC4yODQ3NzEsIDAuMzM5MTEyIiwgXAotICAgICAgICAgICIwLjAzMTA1OCwgMC4wODM0MjUsIDAuMTI0ODcsIDAuMTc3NTI3LCAwLjIzMDk0OSwgMC4yODQ2MjIsIDAuMzM5MTM3IiwgXAotICAgICAgICAgICIwLjAzMTQzMywgMC4wODM3MSwgMC4xMjQ5NjgsIDAuMTc3NjYxLCAwLjIzMDk2MiwgMC4yODQ2OTIsIDAuMzM5MTY5IiwgXAotICAgICAgICAgICIwLjAzMjM2OSwgMC4wODQzNjYsIDAuMTI1NDY4LCAwLjE3Nzk5NSwgMC4yMzEyNywgMC4yODUwMDMsIDAuMzM5MDI4IiwgXAotICAgICAgICAgICIwLjAzMzc1NiwgMC4wODU1MDgsIDAuMTI2NDA0LCAwLjE3ODU5OCwgMC4yMzE3NjQsIDAuMjg1MzczLCAwLjMzOTMxIiwgXAotICAgICAgICAgICIwLjAzNTMyNiwgMC4wODY3NiwgMC4xMjcyMzUsIDAuMTc5MjY4LCAwLjIzMjI1OSwgMC4yODU3OSwgMC4zMzk2MzgiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY4NDIsIDAuMTAzMDg4LCAwLjEyNTcxNiwgMC4xNTI3MDIsIDAuMTc5MTUsIDAuMjA1NDQ5LCAwLjIzMTY5MSIsIFwKLSAgICAgICAgICAiMC4wNzQ0NjQsIDAuMTA5MTg4LCAwLjEzMTg0NSwgMC4xNTg4MDQsIDAuMTg1MjQ5LCAwLjIxMTU0LCAwLjIzNzc3MSIsIFwKLSAgICAgICAgICAiMC4wODE3OTMsIDAuMTE2NDU1LCAwLjEzOTExMiwgMC4xNjYwNDQsIDAuMTkyNDk0LCAwLjIxODgwMSwgMC4yNDUwNDIiLCBcCi0gICAgICAgICAgIjAuMDg4Njk0LCAwLjEyMzM1LCAwLjE0NTk4OSwgMC4xNzI5MTgsIDAuMTk5MzQ5LCAwLjIyNTY1NywgMC4yNTE4ODgiLCBcCi0gICAgICAgICAgIjAuMDk1MDgyLCAwLjEyOTg2MiwgMC4xNTI0MDQsIDAuMTc5NDksIDAuMjA1OTMsIDAuMjMyMjIxLCAwLjI1ODQ1MSIsIFwKLSAgICAgICAgICAiMC4xMDM4MzYsIDAuMTM5MTc2LCAwLjE2MTgzLCAwLjE4ODg0OSwgMC4yMTUzNDksIDAuMjQxNjE0LCAwLjI2Nzg0OCIsIFwKLSAgICAgICAgICAiMC4xMTA1MjcsIDAuMTQ2MjEzLCAwLjE2OTEzMywgMC4xOTYxNjQsIDAuMjIyNjU5LCAwLjI0ODkxMiwgMC4yNzUxNjkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDMxOTMyLCAwLjA4NDA0NiwgMC4xMjQ4ODgsIDAuMTc2NzI0LCAwLjIyOTIxNiwgMC4yODIxMTksIDAuMzM1NjYzIiwgXAotICAgICAgICAgICIwLjAzMTk2LCAwLjA4NDA4OCwgMC4xMjQ4NTIsIDAuMTc2NTg3LCAwLjIyOTIxMiwgMC4yODIxMTUsIDAuMzM1NzU1IiwgXAotICAgICAgICAgICIwLjAzMTk0NywgMC4wODM5NjMsIDAuMTI0ODEsIDAuMTc2Njc0LCAwLjIyOTIwOSwgMC4yODIwNTcsIDAuMzM1NzI2IiwgXAotICAgICAgICAgICIwLjAzMjIwMywgMC4wODQyOCwgMC4xMjQ5MzgsIDAuMTc2ODM2LCAwLjIyOTMxMSwgMC4yODIxNTcsIDAuMzM1NDU0IiwgXAotICAgICAgICAgICIwLjAzMjkwOCwgMC4wODQ3MjMsIDAuMTI1NTU4LCAwLjE3NzA0OSwgMC4yMjk1NjgsIDAuMjgyNDEzLCAwLjMzNTkyMSIsIFwKLSAgICAgICAgICAiMC4wMzQzMywgMC4wODU5OTcsIDAuMTI2Mjc2LCAwLjE3Nzc0MywgMC4yMzAwMzQsIDAuMjgyNzc1LCAwLjMzNjEyMSIsIFwKLSAgICAgICAgICAiMC4wMzU1OTEsIDAuMDg3MTk1LCAwLjEyNzI0NywgMC4xNzg1MywgMC4yMzA2MTcsIDAuMjgzMzEsIDAuMzM2MjMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDYyMzcsIDAuMDk2MzM5LCAwLjExODUyNSwgMC4xNDUwNDYsIDAuMTcxMjE0LCAwLjE5NzI1NSwgMC4yMjMyOTIiLCBcCi0gICAgICAgICAgIjAuMDY4ODI3LCAwLjEwMjgwNywgMC4xMjQ5ODksIDAuMTUxNTE3LCAwLjE3NzcxMSwgMC4yMDM3NTMsIDAuMjI5NzkyIiwgXAotICAgICAgICAgICIwLjA3Njk0MiwgMC4xMTA4OTMsIDAuMTMzMDU1LCAwLjE1OTU3MiwgMC4xODU3MiwgMC4yMTE3OTksIDAuMjM3ODIxIiwgXAotICAgICAgICAgICIwLjA4NDU5OCwgMC4xMTg1NiwgMC4xNDA2OTYsIDAuMTY3MjQxLCAwLjE5MzM5OCwgMC4yMTk0NCwgMC4yNDU0NzkiLCBcCi0gICAgICAgICAgIjAuMDkxNjA0LCAwLjEyNTc0NCwgMC4xNDc5NDcsIDAuMTc0NDg4LCAwLjIwMDY0MSwgMC4yMjY3MDUsIDAuMjUyNzI0IiwgXAotICAgICAgICAgICIwLjEwMTM5MSwgMC4xMzYxMjMsIDAuMTU4MzQ3LCAwLjE4NTAwNSwgMC4yMTExMzQsIDAuMjM3MzE5LCAwLjI2MzMyMSIsIFwKLSAgICAgICAgICAiMC4xMDg4NSwgMC4xNDQyMDEsIDAuMTY2NjY5LCAwLjE5MzI5NCwgMC4yMTk0MjcsIDAuMjQ1NDgyLCAwLjI3MTQ4OSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzEwOTQsIDAuMDgzNTcsIDAuMTI0OTM5LCAwLjE3NzYwMSwgMC4yMzEwMzUsIDAuMjg0ODE4LCAwLjMzODg5NiIsIFwKLSAgICAgICAgICAiMC4wMzExMDksIDAuMDgzNDUsIDAuMTI0OTIyLCAwLjE3NzYxOCwgMC4yMzEwMjEsIDAuMjg0ODA2LCAwLjMzODg4NyIsIFwKLSAgICAgICAgICAiMC4wMzEwNzEsIDAuMDgzNDU4LCAwLjEyNDkxMiwgMC4xNzc1NDgsIDAuMjMwOTM4LCAwLjI4NDgwNCwgMC4zMzkxNTciLCBcCi0gICAgICAgICAgIjAuMDMxNjA4LCAwLjA4Mzc5NiwgMC4xMjUxMDUsIDAuMTc3Njk3LCAwLjIzMTEwOCwgMC4yODQ4NDYsIDAuMzM5MTkxIiwgXAotICAgICAgICAgICIwLjAzMjUwMSwgMC4wODQzMzQsIDAuMTI1NDU1LCAwLjE3ODAwMiwgMC4yMzEyOTQsIDAuMjg0OTA3LCAwLjMzOTI5MiIsIFwKLSAgICAgICAgICAiMC4wMzM4OTgsIDAuMDg1NzAxLCAwLjEyNjU0NCwgMC4xNzg3NDUsIDAuMjMxODc1LCAwLjI4NTQsIDAuMzM5NTUzIiwgXAotICAgICAgICAgICIwLjAzNTQwNCwgMC4wODY4MDIsIDAuMTI3MjY5LCAwLjE3OTMyOCwgMC4yMzIyNjcsIDAuMjg1ODE1LCAwLjMzOTc2MSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjk0MjMsIDAuMTA0MTQ2LCAwLjEyNjc5MywgMC4xNTM3OTQsIDAuMTgwMjMyLCAwLjIwNjU0LCAwLjIzMjc4IiwgXAotICAgICAgICAgICIwLjA3NTMwNiwgMC4xMTAwODcsIDAuMTMyNzM2LCAwLjE1OTY4LCAwLjE4NjEyOCwgMC4yMTI0MjUsIDAuMjM4NjUzIiwgXAotICAgICAgICAgICIwLjA4MjUsIDAuMTE3MjUzLCAwLjEzOTkyNSwgMC4xNjY4NjMsIDAuMTkzMzM5LCAwLjIxOTYyNywgMC4yNDU4NjgiLCBcCi0gICAgICAgICAgIjAuMDg5NDA5LCAwLjEyNDE0LCAwLjE0Njc3LCAwLjE3MzczNywgMC4yMDAxNjksIDAuMjI2NDc5LCAwLjI1MjY5OCIsIFwKLSAgICAgICAgICAiMC4wOTU4NTMsIDAuMTMwNjAzLCAwLjE1MzI4OCwgMC4xODAyNTQsIDAuMjA2Njk3LCAwLjIzMjk5NCwgMC4yNTkyMjEiLCBcCi0gICAgICAgICAgIjAuMTA0NjMyLCAwLjEzOTk2NCwgMC4xNjI2NjIsIDAuMTg5Njg4LCAwLjIxNjE3MiwgMC4yNDI0NTcsIDAuMjY4Njk1IiwgXAotICAgICAgICAgICIwLjExMTMwOCwgMC4xNDcwNDMsIDAuMTY5OTM4LCAwLjE5NjkzOSwgMC4yMjM0NjcsIDAuMjQ5NzEzLCAwLjI3NTk2OSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzIwNDQsIDAuMDg0MjQyLCAwLjEyNDk3OCwgMC4xNzY3MTksIDAuMjI5MTY5LCAwLjI4MjE3OCwgMC4zMzUyOTEiLCBcCi0gICAgICAgICAgIjAuMDMyMjA4LCAwLjA4NDE2NywgMC4xMjUwMTcsIDAuMTc2Nzc3LCAwLjIyOTM1MiwgMC4yODIxMzUsIDAuMzM1OCIsIFwKLSAgICAgICAgICAiMC4wMzIwNTEsIDAuMDg0MTMxLCAwLjEyNDk2OCwgMC4xNzY4MDMsIDAuMjI5MzA4LCAwLjI4MjI3NSwgMC4zMzU3NzQiLCBcCi0gICAgICAgICAgIjAuMDMyNDkxLCAwLjA4NDQxMywgMC4xMjUxNTMsIDAuMTc2OTUzLCAwLjIyOTQxNCwgMC4yODIyNDYsIDAuMzM1ODczIiwgXAotICAgICAgICAgICIwLjAzMzA5NSwgMC4wODQ4NDksIDAuMTI1NDQ3LCAwLjE3NzE2OCwgMC4yMjk1NTgsIDAuMjgyNDUzLCAwLjMzNTk5NSIsIFwKLSAgICAgICAgICAiMC4wMzQ1MDcsIDAuMDg2MTgyLCAwLjEyNjQ1LCAwLjE3NzgzMiwgMC4yMzAxMjYsIDAuMjgyODMsIDAuMzM1ODc5IiwgXAotICAgICAgICAgICIwLjAzNTkxOSwgMC4wODc0NTQsIDAuMTI3MzM1LCAwLjE3ODU4NSwgMC4yMzA2NzgsIDAuMjgzMjY3LCAwLjMzNjI5NiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU3ODcxLCAwLjA5MTgxNywgMC4xMTQwMSwgMC4xNDA1MzYsIDAuMTY2NzI2LCAwLjE5Mjc3LCAwLjIxODgxMiIsIFwKLSAgICAgICAgICAiMC4wNjUzOTksIDAuMDk5NDAzLCAwLjEyMTU2NSwgMC4xNDgxMTMsIDAuMTc0Mjc5LCAwLjIwMDMzMiwgMC4yMjYzNjciLCBcCi0gICAgICAgICAgIjAuMDc1MjExLCAwLjEwOTE5OCwgMC4xMzEzNTUsIDAuMTU3ODc2LCAwLjE4NDAzOCwgMC4yMTAxMTYsIDAuMjM2MTQ2IiwgXAotICAgICAgICAgICIwLjA4NDgyOSwgMC4xMTg4NzUsIDAuMTQwOTgyLCAwLjE2NzUzLCAwLjE5MzY5MSwgMC4yMTk3NiwgMC4yNDU3NzUiLCBcCi0gICAgICAgICAgIjAuMDkzNTQ0LCAwLjEyNzc5OCwgMC4xNTAwNDYsIDAuMTc2NTk3LCAwLjIwMjc0NiwgMC4yMjg4MDgsIDAuMjU0ODM3IiwgXAotICAgICAgICAgICIwLjEwNTAxNywgMC4xNDAyMzUsIDAuMTYyNDY3LCAwLjE4OTA2OCwgMC4yMTUyMzMsIDAuMjQxMzgsIDAuMjY3NDAxIiwgXAotICAgICAgICAgICIwLjExMzUwMiwgMC4xNDk2MDMsIDAuMTcyMDczLCAwLjE5ODcyMywgMC4yMjQ4NTIsIDAuMjUwOTA1LCAwLjI3Njg3NiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzEwNTksIDAuMDgzNDE3LCAwLjEyNDg2LCAwLjE3NzU4NiwgMC4yMzA5OTEsIDAuMjg0Nzg3LCAwLjMzODg2NyIsIFwKLSAgICAgICAgICAiMC4wMzA5MzUsIDAuMDgzNDM2LCAwLjEyNDg1NCwgMC4xNzc0NjMsIDAuMjMwOTkzLCAwLjI4NDc3LCAwLjMzOTExNSIsIFwKLSAgICAgICAgICAiMC4wMzEwMDQsIDAuMDgzNDU4LCAwLjEyNDg3MiwgMC4xNzc1ODksIDAuMjMwODQ3LCAwLjI4NDc5NSwgMC4zMzkxMDIiLCBcCi0gICAgICAgICAgIjAuMDMxNzA2LCAwLjA4MzgxNSwgMC4xMjUwOTksIDAuMTc3NjgzLCAwLjIzMTA5MSwgMC4yODQ3MTIsIDAuMzM5MTYzIiwgXAotICAgICAgICAgICIwLjAzMzMyNSwgMC4wODQ1MTgsIDAuMTI1NTUzLCAwLjE3ODA3MSwgMC4yMzEzMDgsIDAuMjg1MDI5LCAwLjMzOTMyNCIsIFwKLSAgICAgICAgICAiMC4wMzYxNDQsIDAuMDg2NTg4LCAwLjEyNzAxNCwgMC4xNzkwMjcsIDAuMjMxOTMzLCAwLjI4NTU1OCwgMC4zMzk2NTMiLCBcCi0gICAgICAgICAgIjAuMDM4Mzc1LCAwLjA4ODM5MSwgMC4xMjgzOTIsIDAuMTgwMDIzLCAwLjIzMjgwNywgMC4yODYwNDgsIDAuMzM5ODk4Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2Mzk0NCwgMC4wOTg2MzgsIDAuMTIxMjkyLCAwLjE0ODIzNywgMC4xNzQ2ODQsIDAuMjAwOTgxLCAwLjIyNzIwNyIsIFwKLSAgICAgICAgICAiMC4wNzEzNDUsIDAuMTA2MTEsIDAuMTI4NzYxLCAwLjE1NTY4NSwgMC4xODIxNjQsIDAuMjA4NDQ5LCAwLjIzNDY5MiIsIFwKLSAgICAgICAgICAiMC4wODEwMzUsIDAuMTE1NzM0LCAwLjEzODQwNywgMC4xNjUzNTMsIDAuMTkxODAzLCAwLjIxODEwMywgMC4yNDQzMzMiLCBcCi0gICAgICAgICAgIjAuMDkwNjYsIDAuMTI1MzU5LCAwLjE0ODAxNSwgMC4xNzQ5NSwgMC4yMDEzODYsIDAuMjI3Njk0LCAwLjI1MzkzMiIsIFwKLSAgICAgICAgICAiMC4wOTk1MywgMC4xMzQyOTgsIDAuMTU2OTIsIDAuMTgzODYsIDAuMjEwMzAxLCAwLjIzNjY5MSwgMC4yNjI5MyIsIFwKLSAgICAgICAgICAiMC4xMTEzNzksIDAuMTQ2NzYyLCAwLjE2OTQ1NCwgMC4xOTY0NTYsIDAuMjIyODk4LCAwLjI0OTE3OSwgMC4yNzU0MDUiLCBcCi0gICAgICAgICAgIjAuMTIwMTU2LCAwLjE1NjEzMywgMC4xNzkwMiwgMC4yMDYwNjQsIDAuMjMyNDksIDAuMjU4NzczLCAwLjI4NTAyNSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzE5NDIsIDAuMDgzOTM2LCAwLjEyNDgsIDAuMTc2NTY2LCAwLjIyOTIxMSwgMC4yODIwNzUsIDAuMzM1NzQ2IiwgXAotICAgICAgICAgICIwLjAzMTg2NiwgMC4wODM5NiwgMC4xMjQ4MDUsIDAuMTc2NjY4LCAwLjIyOTE5LCAwLjI4MjIwOCwgMC4zMzU3NDciLCBcCi0gICAgICAgICAgIjAuMDMxODc2LCAwLjA4Mzk1MywgMC4xMjQ4MDQsIDAuMTc2NTU2LCAwLjIyOTIxLCAwLjI4MjA4LCAwLjMzNTczMyIsIFwKLSAgICAgICAgICAiMC4wMzIyNzYsIDAuMDg0MTc3LCAwLjEyNDk2MSwgMC4xNzY3OTMsIDAuMjI5MjYzLCAwLjI4MjEyNSwgMC4zMzU1NDEiLCBcCi0gICAgICAgICAgIjAuMDMzNTcyLCAwLjA4NDc2NiwgMC4xMjUzMzcsIDAuMTc3MDQxLCAwLjIyOTQ1NSwgMC4yODI0NzMsIDAuMzM1MzAzIiwgXAotICAgICAgICAgICIwLjAzNjEwNiwgMC4wODYzODQsIDAuMTI2NDg2LCAwLjE3Nzg0NywgMC4yMzAwOTMsIDAuMjgyODU1LCAwLjMzNjI4IiwgXAotICAgICAgICAgICIwLjAzNzk0MiwgMC4wODc5NTYsIDAuMTI3NjU0LCAwLjE3ODc1LCAwLjIzMDc4OCwgMC4yODMzMjMsIDAuMzM2MjcyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlMwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzE1NiwgMC4xMDU1NjksIDAuMTI3NzQxLCAwLjE1NDMyMywgMC4xODA0NDMsIDAuMjA2NSwgMC4yMzI1MzUiLCBcCi0gICAgICAgICAgIjAuMDc5MDYsIDAuMTEzMSwgMC4xMzUyNzIsIDAuMTYxODY3LCAwLjE4Nzk2NCwgMC4yMTQwMzUsIDAuMjQwMDYxIiwgXAotICAgICAgICAgICIwLjA4NTc2NCwgMC4xMTk3NzksIDAuMTQxOTgsIDAuMTY4NDY0LCAwLjE5NDY2MiwgMC4yMjA3MSwgMC4yNDY3NTQiLCBcCi0gICAgICAgICAgIjAuMDkwNDQ1LCAwLjEyNDQ3MywgMC4xNDY1OTksIDAuMTczMTU4LCAwLjE5OTMyNywgMC4yMjUzODIsIDAuMjUxNDE4IiwgXAotICAgICAgICAgICIwLjA5NDA1NCwgMC4xMjgwNiwgMC4xNTAyODgsIDAuMTc2ODc2LCAwLjIwMzA0LCAwLjIyOTEwNywgMC4yNTUxNDYiLCBcCi0gICAgICAgICAgIjAuMDk4OTAyLCAwLjEzMjk2OSwgMC4xNTUxMTgsIDAuMTgxNzU2LCAwLjIwNzk1MywgMC4yMzQwNjcsIDAuMjYwMDgxIiwgXAotICAgICAgICAgICIwLjEwMjU0NywgMC4xMzY2NTYsIDAuMTU4NzYyLCAwLjE4NTM3MSwgMC4yMTE2MDEsIDAuMjM3NzAzLCAwLjI2Mzc1MyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzEsIDAuMDgzNDU5LCAwLjEyNDgxNCwgMC4xNzc1MDUsIDAuMjMwOTg5LCAwLjI4NDY2NywgMC4zMzkxMjIiLCBcCi0gICAgICAgICAgIjAuMDMxMDQ3LCAwLjA4MzQ1NiwgMC4xMjQ4NDEsIDAuMTc3NTI5LCAwLjIzMDk2NywgMC4yODQ4MDcsIDAuMzM4ODg3IiwgXAotICAgICAgICAgICIwLjAzMTAyMywgMC4wODM0MjcsIDAuMTI0NzM0LCAwLjE3NzU2OSwgMC4yMzA5NzEsIDAuMjg0ODYzLCAwLjMzOTEwMyIsIFwKLSAgICAgICAgICAiMC4wMzA5NjEsIDAuMDgzNDQ4LCAwLjEyNDgzMSwgMC4xNzc1NDEsIDAuMjMwOTksIDAuMjg0NjU1LCAwLjMzOTExNCIsIFwKLSAgICAgICAgICAiMC4wMzA4MSwgMC4wODM0MDcsIDAuMTI0ODY5LCAwLjE3NzYzNCwgMC4yMzEwNjMsIDAuMjg0ODQzLCAwLjMzOTE2OSIsIFwKLSAgICAgICAgICAiMC4wMzA4NTIsIDAuMDgzNDAyLCAwLjEyNDg5MiwgMC4xNzc1ODcsIDAuMjMxMTAxLCAwLjI4NDkyOSwgMC4zMzg4MTkiLCBcCi0gICAgICAgICAgIjAuMDMwODI2LCAwLjA4MzYwMiwgMC4xMjQ4MDIsIDAuMTc3NTE1LCAwLjIzMTA1NiwgMC4yODQ5MTgsIDAuMzM5MDYzIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3NjE1MywgMC4xMTEwMTYsIDAuMTMzNjI3LCAwLjE2MDU2MiwgMC4xODcwNTcsIDAuMjEzMzQxLCAwLjIzOTU4NiIsIFwKLSAgICAgICAgICAiMC4wODM5MDUsIDAuMTE4NjY4LCAwLjE0MTMyOCwgMC4xNjgzMDUsIDAuMTk0NzQ5LCAwLjIyMTAzMiwgMC4yNDcyNzYiLCBcCi0gICAgICAgICAgIjAuMDkwNjQ2LCAwLjEyNTM5MywgMC4xNDgwNTksIDAuMTc0OTk1LCAwLjIwMTQ3NSwgMC4yMjc3NjEsIDAuMjU0MDA0IiwgXAotICAgICAgICAgICIwLjA5NTQ3OSwgMC4xMzAyMzEsIDAuMTUyODg1LCAwLjE3OTgwOCwgMC4yMDYyODgsIDAuMjMyNTY5LCAwLjI1ODgxNCIsIFwKLSAgICAgICAgICAiMC4wOTk0MDksIDAuMTM0MTIyLCAwLjE1NjgzLCAwLjE4Mzc1NiwgMC4yMTAyMzIsIDAuMjM2NTIzLCAwLjI2Mjc2NyIsIFwKLSAgICAgICAgICAiMC4xMDQ2OTcsIDAuMTM5NTA2LCAwLjE2MjE4NCwgMC4xODkwNjQsIDAuMjE1NzI5LCAwLjI0MjAyMiwgMC4yNjgyNzMiLCBcCi0gICAgICAgICAgIjAuMTA4Njg4LCAwLjE0MzQwNywgMC4xNjYwNjQsIDAuMTkzMTQ0LCAwLjIxOTY0NCwgMC4yNDU5ODYsIDAuMjcyMjIxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzMjA4LCAwLjA4NDE5NiwgMC4xMjUwMTMsIDAuMTc2ODMsIDAuMjI5MzIsIDAuMjgyMzMzLCAwLjMzNTgxMSIsIFwKLSAgICAgICAgICAiMC4wMzIwNzIsIDAuMDg0MjE2LCAwLjEyNDk4LCAwLjE3Njc4MSwgMC4yMjkzMDUsIDAuMjgyMzE5LCAwLjMzNTgzMiIsIFwKLSAgICAgICAgICAiMC4wMzIxMjMsIDAuMDg0MTQ4LCAwLjEyNDk0OSwgMC4xNzY3ODMsIDAuMjI5Mjg2LCAwLjI4MjI2NiwgMC4zMzU3OTUiLCBcCi0gICAgICAgICAgIjAuMDMyMTA4LCAwLjA4NDE0NCwgMC4xMjQ5NzcsIDAuMTc2ODExLCAwLjIyOTI5MywgMC4yODIyOTEsIDAuMzM1ODMxIiwgXAotICAgICAgICAgICIwLjAzMTk2MywgMC4wODQxMzEsIDAuMTI1MDEsIDAuMTc2ODQ4LCAwLjIyOTM3NSwgMC4yODIzNTQsIDAuMzM1ODY4IiwgXAotICAgICAgICAgICIwLjAzMTg3NywgMC4wODQwMjIsIDAuMTI0ODg3LCAwLjE3Njc2NSwgMC4yMjkzOTIsIDAuMjgyMzA4LCAwLjMzNTgyNyIsIFwKLSAgICAgICAgICAiMC4wMzE5NTIsIDAuMDg0MTY5LCAwLjEyNDgyLCAwLjE3NjcyMiwgMC4yMjkzMTMsIDAuMjgyMzI1LCAwLjMzNTU4MSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwOTI1NCwgMC4wMDkwNTksIDAuMDA5MDgxLCAwLjAwOTExLCAwLjAwOTEyNiwgMC4wMDkxMzMsIDAuMDA5MTMiLCBcCi0gICAgICAgICAgIjAuMDA5MTY1LCAwLjAwODk4NSwgMC4wMDkwMiwgMC4wMDkwNTEsIDAuMDA5MDY3LCAwLjAwOTA4MSwgMC4wMDkwOTEiLCBcCi0gICAgICAgICAgIjAuMDA5MjY0LCAwLjAwOTAxMywgMC4wMDkwMzgsIDAuMDA5MDU4LCAwLjAwOTA3MiwgMC4wMDkwODUsIDAuMDA5MDkyIiwgXAotICAgICAgICAgICIwLjAwOTQxOCwgMC4wMDkwNiwgMC4wMDkwNjksIDAuMDA5MDg3LCAwLjAwOTEwMiwgMC4wMDkxMTMsIDAuMDA5MTIyIiwgXAotICAgICAgICAgICIwLjAwOTY2LCAwLjAwOTE3NywgMC4wMDkxNjQsIDAuMDA5MTcxLCAwLjAwOTE3LCAwLjAwOTE3NywgMC4wMDkxODUiLCBcCi0gICAgICAgICAgIjAuMDA5ODAyLCAwLjAwOTI3NSwgMC4wMDkyNDksIDAuMDA5MjUyLCAwLjAwOTI1OSwgMC4wMDkyNzIsIDAuMDA5Mjc1IiwgXAotICAgICAgICAgICIwLjAxMDExNiwgMC4wMDk0NDIsIDAuMDA5NCwgMC4wMDkzODYsIDAuMDA5MzgzLCAwLjAwOTM4NiwgMC4wMDkzOTQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTA0MzEsIDAuMDEwMTYyLCAwLjAxMDE4OSwgMC4wMTAyMTcsIDAuMDEwMjM1LCAwLjAxMDI0OCwgMC4wMTAyNTYiLCBcCi0gICAgICAgICAgIjAuMDEwMjk0LCAwLjAxMDA4NCwgMC4wMTAxMjksIDAuMDEwMTY2LCAwLjAxMDE5MSwgMC4wMTAyMDgsIDAuMDEwMjIxIiwgXAotICAgICAgICAgICIwLjAxMDMyNSwgMC4wMTAwOCwgMC4wMTAxMiwgMC4wMTAxNTcsIDAuMDEwMTgyLCAwLjAxMDIwMSwgMC4wMTAyMTQiLCBcCi0gICAgICAgICAgIjAuMDEwNTIzLCAwLjAxMDE0MSwgMC4wMTAxNiwgMC4wMTAxODksIDAuMDEwMjEyLCAwLjAxMDIzLCAwLjAxMDI0MiIsIFwKLSAgICAgICAgICAiMC4wMTA2NjYsIDAuMDEwMjUzLCAwLjAxMDI1NSwgMC4wMTAyNTcsIDAuMDEwMjczLCAwLjAxMDI4NSwgMC4wMTAyOTYiLCBcCi0gICAgICAgICAgIjAuMDEwOTY5LCAwLjAxMDQxOCwgMC4wMTAzNjcsIDAuMDEwMzcsIDAuMDEwMzgsIDAuMDEwMzgzLCAwLjAxMDM5NSIsIFwKLSAgICAgICAgICAiMC4wMTEzMzcsIDAuMDEwNjM2LCAwLjAxMDU1MiwgMC4wMTA1MjYsIDAuMDEwNTIsIDAuMDEwNTI2LCAwLjAxMDUyOCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwODkwOCwgMC4wMDg2NDksIDAuMDA4NjQ3LCAwLjAwODY0NSwgMC4wMDg2MzcsIDAuMDA4NjUsIDAuMDA4NjUxIiwgXAotICAgICAgICAgICIwLjAwODgyLCAwLjAwODU4NSwgMC4wMDg1OTEsIDAuMDA4NTk3LCAwLjAwODYwMSwgMC4wMDg2MDksIDAuMDA4NjAzIiwgXAotICAgICAgICAgICIwLjAwODkyNSwgMC4wMDg2MTcsIDAuMDA4NjA3LCAwLjAwODYwNywgMC4wMDg2MSwgMC4wMDg2MTIsIDAuMDA4NjE1IiwgXAotICAgICAgICAgICIwLjAwOTA3MiwgMC4wMDg2NTksIDAuMDA4NjQxLCAwLjAwODYzOSwgMC4wMDg2NDEsIDAuMDA4NjQzLCAwLjAwODY0NCIsIFwKLSAgICAgICAgICAiMC4wMDkyNywgMC4wMDg3NDcsIDAuMDA4NzA5LCAwLjAwODcwMiwgMC4wMDg2OTksIDAuMDA4NywgMC4wMDg3MDMiLCBcCi0gICAgICAgICAgIjAuMDA5NTk5LCAwLjAwODk4NywgMC4wMDg4OTksIDAuMDA4ODY5LCAwLjAwODg1MSwgMC4wMDg4MzUsIDAuMDA4ODI5IiwgXAotICAgICAgICAgICIwLjAwOTk0LCAwLjAwOTE2NiwgMC4wMDkwNjcsIDAuMDA5MDA3LCAwLjAwODk4NiwgMC4wMDg5NjUsIDAuMDA4OTU1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEwNzI5LCAwLjAxMDQ0MiwgMC4wMTA0NTMsIDAuMDEwNDcsIDAuMDEwNDc5LCAwLjAxMDQ4NywgMC4wMTA0OTIiLCBcCi0gICAgICAgICAgIjAuMDEwNzA1LCAwLjAxMDQxNSwgMC4wMTA0MjQsIDAuMDEwNDQyLCAwLjAxMDQ1NSwgMC4wMTA0NjMsIDAuMDEwNDciLCBcCi0gICAgICAgICAgIjAuMDEwNzE3LCAwLjAxMDQwOSwgMC4wMTA0MjIsIDAuMDEwNDQsIDAuMDEwNDUyLCAwLjAxMDQ2MiwgMC4wMTA0NjkiLCBcCi0gICAgICAgICAgIjAuMDEwOTIsIDAuMDEwNDc2LCAwLjAxMDQ2OSwgMC4wMTA0NzgsIDAuMDEwNDg4LCAwLjAxMDQ5NiwgMC4wMTA1MDEiLCBcCi0gICAgICAgICAgIjAuMDExMDcxLCAwLjAxMDUyNiwgMC4wMTA1MTQsIDAuMDEwNTE4LCAwLjAxMDUyNiwgMC4wMTA1MzQsIDAuMDEwNTQiLCBcCi0gICAgICAgICAgIjAuMDExNDUzLCAwLjAxMDc1NSwgMC4wMTA2ODMsIDAuMDEwNjYxLCAwLjAxMDY1NCwgMC4wMTA2NTYsIDAuMDEwNjU0IiwgXAotICAgICAgICAgICIwLjAxMTgxMiwgMC4wMTA5MjIsIDAuMDEwODQ2LCAwLjAxMDgwMSwgMC4wMTA3ODQsIDAuMDEwNzgyLCAwLjAxMDc3NSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlMwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTE3NSwgMC4wMTE1NzcsIDAuMDExNjEsIDAuMDExNjM5LCAwLjAxMTY1NSwgMC4wMTE2NjgsIDAuMDExNjc1IiwgXAotICAgICAgICAgICIwLjAxMTc2OSwgMC4wMTE1OTEsIDAuMDExNjI3LCAwLjAxMTY1NiwgMC4wMTE2NzEsIDAuMDExNjg0LCAwLjAxMTY5IiwgXAotICAgICAgICAgICIwLjAxMTgyNywgMC4wMTE2NzQsIDAuMDExNzExLCAwLjAxMTczOSwgMC4wMTE3NTcsIDAuMDExNzcsIDAuMDExNzgiLCBcCi0gICAgICAgICAgIjAuMDExOTI5LCAwLjAxMTc4MSwgMC4wMTE4MTcsIDAuMDExODQ3LCAwLjAxMTg2NiwgMC4wMTE4NzksIDAuMDExODg4IiwgXAotICAgICAgICAgICIwLjAxMjA2OSwgMC4wMTE5MSwgMC4wMTE5MzksIDAuMDExOTY5LCAwLjAxMTk5MSwgMC4wMTE5OTksIDAuMDEyMDExIiwgXAotICAgICAgICAgICIwLjAxMjMxNywgMC4wMTIxNjMsIDAuMDEyMjAxLCAwLjAxMjIyOSwgMC4wMTIyNDcsIDAuMDEyMjYxLCAwLjAxMjI2OSIsIFwKLSAgICAgICAgICAiMC4wMTI1MTQsIDAuMDEyMzU1LCAwLjAxMjM4MywgMC4wMTI0MTEsIDAuMDEyNDMyLCAwLjAxMjQ0OCwgMC4wMTI0NTQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTAwMjcsIDAuMDA5NzUyLCAwLjAwOTc3MiwgMC4wMDk3OTgsIDAuMDA5ODE1LCAwLjAwOTgyOCwgMC4wMDk4MzciLCBcCi0gICAgICAgICAgIjAuMDEwMDQyLCAwLjAwOTc2NiwgMC4wMDk3OSwgMC4wMDk4MTMsIDAuMDA5ODMsIDAuMDA5ODQyLCAwLjAwOTg1MSIsIFwKLSAgICAgICAgICAiMC4wMTAxMDYsIDAuMDA5ODQzLCAwLjAwOTg3MSwgMC4wMDk4OTgsIDAuMDA5OTE1LCAwLjAwOTkyOCwgMC4wMDk5MzciLCBcCi0gICAgICAgICAgIjAuMDEwMjIyLCAwLjAwOTk3MiwgMC4wMDk5OTIsIDAuMDEwMDE2LCAwLjAxMDAzMiwgMC4wMTAwNDQsIDAuMDEwMDUzIiwgXAotICAgICAgICAgICIwLjAxMDM0MiwgMC4wMTAwODYsIDAuMDEwMTE5LCAwLjAxMDE0NCwgMC4wMTAxNjIsIDAuMDEwMTc0LCAwLjAxMDE4NSIsIFwKLSAgICAgICAgICAiMC4wMTA2MDcsIDAuMDEwMzQ3LCAwLjAxMDM3LCAwLjAxMDM5NSwgMC4wMTA0MTQsIDAuMDEwNDMxLCAwLjAxMDQzNyIsIFwKLSAgICAgICAgICAiMC4wMTA3ODQsIDAuMDEwNTU0LCAwLjAxMDU2NywgMC4wMTA2MDYsIDAuMDEwNjE2LCAwLjAxMDYzMywgMC4wMTA2MzkiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogTVgyWEwgKgotICogLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKE1YMlhMKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMzIzNTMyOwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA3MTgxOTQ7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNzE2OTQzOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDcxODE5NDsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyODEsIDAuMDAwMjg0LCAwLjAwMDI4NSwgMC4wMDAyODYsIDAuMDAwMjg2LCAwLjAwMDI4NywgMC4wMDAyODciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAzMTcsIDAuMDAwMzA2LCAwLjAwMDMwMywgMC4wMDAzMDIsIDAuMDAwMzAyLCAwLjAwMDMwMSwgMC4wMDAyOTkiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDcxODQxMzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA3MTc4MDg7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNzE4NDEzOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDI4OSwgMC4wMDAyODksIDAuMDAwMjksIDAuMDAwMjkxLCAwLjAwMDI5MSwgMC4wMDAyOTEsIDAuMDAwMjkxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzE1LCAwLjAwMDMwNCwgMC4wMDAzMDIsIDAuMDAwMywgMC4wMDAzLCAwLjAwMDI5OSwgMC4wMDAyOTkiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFMwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDEzODAxODsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDEzODAxMzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDEzODAxODsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxOTQsIDAuMDAwMjEyLCAwLjAwMDI5MiwgMC4wMDA0MDMsIDAuMDAwNTI1LCAwLjAwMDc4OSwgMC4wMDA5ODkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDI1NzgsIDAuMDAyNTk5LCAwLjAwMjY2OSwgMC4wMDI3NzUsIDAuMDAyODk4LCAwLjAwMzExNiwgMC4wMDMzMDgiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4xOTA2NDI7Ci0gICAgZnVuY3Rpb24gOiAiKChTMCBCKSArICghUzAgQSkpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODU2NzMsIDAuMzQ4ODg2LCAwLjU1OTM2NSwgMC44MjIzNTcsIDEuMDg1NCwgMS4zNDg0OSwgMS42MTE0NiIsIFwKLSAgICAgICAgICAiMC4wOTE3MjksIDAuMzU0OTQ4LCAwLjU2NTUyMywgMC44Mjg0NTMsIDEuMDkxNDYsIDEuMzU0NDksIDEuNjE3NTkiLCBcCi0gICAgICAgICAgIjAuMDk4NTgsIDAuMzYxNzkyLCAwLjU3MjIzOSwgMC44MzUyNzcsIDEuMDk4MzIsIDEuMzYxMzQsIDEuNjI0MzQiLCBcCi0gICAgICAgICAgIjAuMTA0Mzk1LCAwLjM2NzY0LCAwLjU3ODA1MiwgMC44NDEyMTcsIDEuMTA0MSwgMS4zNjcxNCwgMS42MzAxNiIsIFwKLSAgICAgICAgICAiMC4xMDkxNjcsIDAuMzcyMzIxLCAwLjU4Mjc1NCwgMC44NDU3NzMsIDEuMTA4NzYsIDEuMzcxOTYsIDEuNjM0ODIiLCBcCi0gICAgICAgICAgIjAuMTE1ODY0LCAwLjM3OTEwMSwgMC41ODk1NTIsIDAuODUyNjczLCAxLjExNTY0LCAxLjM3ODYyLCAxLjY0MTg2IiwgXAotICAgICAgICAgICIwLjEyMTA1MSwgMC4zODQzMDksIDAuNTk0Nzc0LCAwLjg1Nzc4OSwgMS4xMjA5OCwgMS4zODM5MywgMS42NDY4NiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTgyMDMsIDAuNjcxMzM5LCAxLjExMjkyLCAxLjY2NzE2LCAyLjIyMTQxLCAyLjc3Mjg3LCAzLjMzMjE1IiwgXAotICAgICAgICAgICIwLjExODE1NCwgMC42NzA3MDMsIDEuMTEzMTMsIDEuNjY3MTcsIDIuMjIzMzgsIDIuNzc1MjUsIDMuMzI2MTQiLCBcCi0gICAgICAgICAgIjAuMTE4Mzc2LCAwLjY3MDYxNiwgMS4xMTM3NywgMS42Njc2MiwgMi4yMjEwOCwgMi43NzQ2MywgMy4zMjg5MSIsIFwKLSAgICAgICAgICAiMC4xMTg2MTYsIDAuNjcxMjMzLCAxLjExMzU0LCAxLjY2ODc3LCAyLjIyMDc5LCAyLjc3NDk5LCAzLjMyODk5IiwgXAotICAgICAgICAgICIwLjExOTAzOSwgMC42NzA1ODYsIDEuMTE0NTIsIDEuNjY4NzgsIDIuMjIyNjYsIDIuNzc3MjIsIDMuMzI4MjEiLCBcCi0gICAgICAgICAgIjAuMTE5NTMsIDAuNjcxMTUxLCAxLjExNDQ1LCAxLjY2ODY4LCAyLjIyMjg5LCAyLjc3NzIzLCAzLjMzMTM1IiwgXAotICAgICAgICAgICIwLjEyMDE0NywgMC42NzExLCAxLjExMzMzLCAxLjY2ODU2LCAyLjIyMjg1LCAyLjc3NzA0LCAzLjMyODE1Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4NDIzNSwgMC4zMjU1OTYsIDAuNTE4NTA3LCAwLjc1OTY1NywgMS4wMDA4LCAxLjI0MTk1LCAxLjQ4MzA5IiwgXAotICAgICAgICAgICIwLjA5MDAzMywgMC4zMzE0MDUsIDAuNTI0MzE2LCAwLjc2NTUwNiwgMS4wMDY2MSwgMS4yNDc3NiwgMS40ODg5MSIsIFwKLSAgICAgICAgICAiMC4wOTYzMjgsIDAuMzM3NzA3LCAwLjUzMDY0MiwgMC43NzE3NTUsIDEuMDEyOTEsIDEuMjU0MTgsIDEuNDk1MTkiLCBcCi0gICAgICAgICAgIjAuMTAxNTg3LCAwLjM0Mjk5NywgMC41MzU4ODUsIDAuNzc3MDIyLCAxLjAxODI1LCAxLjI1OTMsIDEuNTAwNDUiLCBcCi0gICAgICAgICAgIjAuMTA1ODgzLCAwLjM0NzMwNiwgMC41NDAyMzcsIDAuNzgxMzYsIDEuMDIyNDksIDEuMjYzNzksIDEuNTA0NzYiLCBcCi0gICAgICAgICAgIjAuMTExODQ5LCAwLjM1MzM0MiwgMC41NDYyNDksIDAuNzg3NTA0LCAxLjAyODY0LCAxLjI2OTc0LCAxLjUxMTA2IiwgXAotICAgICAgICAgICIwLjExNjE5NCwgMC4zNTc2ODksIDAuNTUwNjM0LCAwLjc5MTc5OSwgMS4wMzI5LCAxLjI3NDExLCAxLjUxNTM1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwNjcyLCAwLjYwMDYyOSwgMC45OTU4NjMsIDEuNDkxMDYsIDEuOTg2MTksIDIuNDgxNjQsIDIuOTc2NDciLCBcCi0gICAgICAgICAgIjAuMTA2NzU3LCAwLjYwMDYzMiwgMC45OTY5MjUsIDEuNDkzMDUsIDEuOTg4NDMsIDIuNDgxMywgMi45NzY5NSIsIFwKLSAgICAgICAgICAiMC4xMDY5NzgsIDAuNjAwNjMsIDAuOTk3Mjg3LCAxLjQ5MjczLCAxLjk4ODczLCAyLjQ4NTAzLCAyLjk3NjY1IiwgXAotICAgICAgICAgICIwLjEwNzM4MiwgMC41OTk1NzgsIDAuOTk3MTQsIDEuNDkyODcsIDEuOTg5MDIsIDIuNDg0NDcsIDIuOTc5OSIsIFwKLSAgICAgICAgICAiMC4xMDc4MzIsIDAuNjAwNDc0LCAwLjk5NzIxOCwgMS40OTI5NCwgMS45ODg2NiwgMi40ODUxNywgMi45ODAyOSIsIFwKLSAgICAgICAgICAiMC4xMDgzNiwgMC42MDAyNCwgMC45OTU5MTcsIDEuNDkyODgsIDEuOTg4NzgsIDIuNDg0MjYsIDIuOTc0MTIiLCBcCi0gICAgICAgICAgIjAuMTA5MTg3LCAwLjYwMDAwNiwgMC45OTU4NiwgMS40OTI2NiwgMS45ODYyNiwgMi40ODQzMywgMi45ODA5OCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODUzNTYsIDAuMzQ4NTI1LCAwLjU1ODk2OSwgMC44MjE5OTgsIDEuMDg1MDMsIDEuMzQ4MDUsIDEuNjExMTciLCBcCi0gICAgICAgICAgIjAuMDkxNTI5LCAwLjM1NDcxNSwgMC41NjUxMzUsIDAuODI4MjExLCAxLjA5MTE3LCAxLjM1NDI0LCAxLjYxNzE1IiwgXAotICAgICAgICAgICIwLjA5ODUyNSwgMC4zNjE2NDYsIDAuNTcyMDk1LCAwLjgzNTExOSwgMS4wOTgxNiwgMS4zNjEyMSwgMS42MjQyOCIsIFwKLSAgICAgICAgICAiMC4xMDQzNjgsIDAuMzY3NTE5LCAwLjU3NzkxNSwgMC44NDA5NDksIDEuMTA0MjEsIDEuMzY2OTgsIDEuNjMwMDIiLCBcCi0gICAgICAgICAgIjAuMTA5MjU3LCAwLjM3MjM5LCAwLjU4MjgxNiwgMC44NDU4NDUsIDEuMTA4ODMsIDEuMzcxODUsIDEuNjM1MDkiLCBcCi0gICAgICAgICAgIjAuMTE1OTA4LCAwLjM3OTA2MiwgMC41ODk0NjIsIDAuODUyNjM3LCAxLjExNTYxLCAxLjM3ODU4LCAxLjY0MTUyIiwgXAotICAgICAgICAgICIwLjEyMDk3NSwgMC4zODQxNDQsIDAuNTk0NTUzLCAwLjg1NzU5MywgMS4xMjA4MSwgMS4zODM3NCwgMS42NDY2MSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTgxNDksIDAuNjcxMzU3LCAxLjExMzIyLCAxLjY2NjIyLCAyLjIyMzQ1LCAyLjc3NDUxLCAzLjMyNzc1IiwgXAotICAgICAgICAgICIwLjExODIxOCwgMC42NzEzMDQsIDEuMTEyODcsIDEuNjY2NjUsIDIuMjIxMzMsIDIuNzc0MzMsIDMuMzMxNTgiLCBcCi0gICAgICAgICAgIjAuMTE4Mzc4LCAwLjY3MTE5MywgMS4xMTM3LCAxLjY2NzU5LCAyLjIyMTA5LCAyLjc3NDI0LCAzLjMzMTU0IiwgXAotICAgICAgICAgICIwLjExODY5OSwgMC42NzEyMTgsIDEuMTEzNTIsIDEuNjY4ODIsIDIuMjIzMDMsIDIuNzc0OTYsIDMuMzI4NzMiLCBcCi0gICAgICAgICAgIjAuMTE5MDIxLCAwLjY3MTE3OSwgMS4xMTM3NSwgMS42Njg3NywgMi4yMjI3MiwgMi43NzQ1MywgMy4zMzE0MyIsIFwKLSAgICAgICAgICAiMC4xMTk1NjcsIDAuNjcxMTI4LCAxLjExNDMzLCAxLjY2ODY5LCAyLjIyMjg2LCAyLjc3NzE4LCAzLjMzMTI0IiwgXAotICAgICAgICAgICIwLjEyMDE5NywgMC42NzEwNywgMS4xMTQyOSwgMS42Njg1NCwgMi4yMjI4OCwgMi43NzcwMywgMy4zMjg3NyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODQ3MzEsIDAuMzI2MDg1LCAwLjUxOTAwMiwgMC43NjAyMzksIDEuMDAxMywgMS4yNDI0NSwgMS40ODM3MiIsIFwKLSAgICAgICAgICAiMC4wOTAzNzEsIDAuMzMxNzQzLCAwLjUyNDY1NiwgMC43NjU4NDksIDEuMDA2OTcsIDEuMjQ4MSwgMS40ODkyNSIsIFwKLSAgICAgICAgICAiMC4wOTY2NTgsIDAuMzM4MDMzLCAwLjUzMTAxOCwgMC43NzIwOTUsIDEuMDEzMjQsIDEuMjU0NDgsIDEuNDk1NTIiLCBcCi0gICAgICAgICAgIjAuMTAxODgyLCAwLjM0MzI1LCAwLjUzNjE4MSwgMC43NzczMzIsIDEuMDE4NDgsIDEuMjU5NjYsIDEuNTAwNzQiLCBcCi0gICAgICAgICAgIjAuMTA2MjI0LCAwLjM0NzU5OSwgMC41NDA1MzgsIDAuNzgxNjgxLCAxLjAyMjgyLCAxLjI2Mzk1LCAxLjUwNTE5IiwgXAotICAgICAgICAgICIwLjExMjI3NSwgMC4zNTM2OTksIDAuNTQ2NjcyLCAwLjc4Nzg1NSwgMS4wMjkwNiwgMS4yNzAxMywgMS41MTEyMyIsIFwKLSAgICAgICAgICAiMC4xMTY3NiwgMC4zNTgyMzksIDAuNTUxMTY1LCAwLjc5MjM0NSwgMS4wMzM1MiwgMS4yNzQ3MSwgMS41MTU5NiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDY4ODQsIDAuNjAwNjczLCAwLjk5NTg5LCAxLjQ5MzMxLCAxLjk4ODQ2LCAyLjQ4MTM5LCAyLjk4MDc5IiwgXAotICAgICAgICAgICIwLjEwNjg2NywgMC42MDA2OCwgMC45OTcwMjcsIDEuNDkzMDUsIDEuOTg2NDQsIDIuNDg0MTYsIDIuOTc2NzMiLCBcCi0gICAgICAgICAgIjAuMTA3MDYxLCAwLjYwMDY2MiwgMC45OTUxNzEsIDEuNDkxMDgsIDEuOTg2MjIsIDIuNDg0ODMsIDIuOTc5ODkiLCBcCi0gICAgICAgICAgIjAuMTA3NDc0LCAwLjU5OTg5OSwgMC45OTcxNDQsIDEuNDkyNzMsIDEuOTg4NDQsIDIuNDg0NTksIDIuOTgwMTgiLCBcCi0gICAgICAgICAgIjAuMTA3OTA4LCAwLjYwMDYzMSwgMC45OTcwNzIsIDEuNDkyNzEsIDEuOTg4MzksIDIuNDg0MDQsIDIuOTc0NjUiLCBcCi0gICAgICAgICAgIjAuMTA4NDE0LCAwLjU5OTg5LCAwLjk5Njk1NCwgMS40OTMwNywgMS45ODkxMywgMi40ODQ2NywgMi45ODAzMyIsIFwKLSAgICAgICAgICAiMC4xMDkwMjUsIDAuNjAwMjg1LCAwLjk5Njk1MywgMS40OTI3NiwgMS45ODU3OSwgMi40ODQ1NSwgMi45NzM4MyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDgwODQ2LCAwLjM0NDAzOCwgMC41NTQ2MDYsIDAuODE3NDU5LCAxLjA4MDUzLCAxLjM0MzU0LCAxLjYwNjciLCBcCi0gICAgICAgICAgIjAuMDg4MjUxLCAwLjM1MTQyMSwgMC41NjE4NjMsIDAuODI0OTIyLCAxLjA4Nzk3LCAxLjM1MDk5LCAxLjYxNDAxIiwgXAotICAgICAgICAgICIwLjA5NjU4LCAwLjM1OTczNCwgMC41NzAxNzcsIDAuODMzMjI4LCAxLjA5NjI3LCAxLjM1OTI2LCAxLjYyMjI5IiwgXAotICAgICAgICAgICIwLjEwMzAyNywgMC4zNjYxNywgMC41NzY1OTMsIDAuODM5NjQsIDEuMTAyNjgsIDEuMzY1NywgMS42Mjg3IiwgXAotICAgICAgICAgICIwLjEwODQxOCwgMC4zNzE1NTksIDAuNTgxOTYxLCAwLjg0NDkyNywgMS4xMDgyLCAxLjM3MTA4LCAxLjYzNDA2IiwgXAotICAgICAgICAgICIwLjExNTQ5MywgMC4zNzg3NjEsIDAuNTg5MTIzLCAwLjg1MjE4OSwgMS4xMTUyNCwgMS4zNzgxOCwgMS42NDEyMSIsIFwKLSAgICAgICAgICAiMC4xMjA5NjIsIDAuMzg0MDY4LCAwLjU5NDUzNiwgMC44NTc3MjgsIDEuMTIwNjUsIDEuMzgzNTYsIDEuNjQ2NyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTgxNDgsIDAuNjcxMzI1LCAxLjExMzE1LCAxLjY2NzIyLCAyLjIyMzM0LCAyLjc3NTA5LCAzLjMyNzMxIiwgXAotICAgICAgICAgICIwLjExODI1MiwgMC42NzA2OTUsIDEuMTEzODMsIDEuNjY3MTMsIDIuMjIwNjksIDIuNzc3NjQsIDMuMzI4MjIiLCBcCi0gICAgICAgICAgIjAuMTE4NDU3LCAwLjY3MTE4NywgMS4xMTM3NCwgMS42NjcyNiwgMi4yMjA4MiwgMi43Nzc2OCwgMy4zMjg1OCIsIFwKLSAgICAgICAgICAiMC4xMTg5NjIsIDAuNjcxMjU3LCAxLjExMzY3LCAxLjY2NzQzLCAyLjIyMDk4LCAyLjc3NDUxLCAzLjMyOTA0IiwgXAotICAgICAgICAgICIwLjExOTM3NiwgMC42NzA2MjksIDEuMTEzNTcsIDEuNjY3NDYsIDIuMjIwMDEsIDIuNzc0MzcsIDMuMzI4ODUiLCBcCi0gICAgICAgICAgIjAuMTIwMDk2LCAwLjY3MDc5NywgMS4xMTM2MiwgMS42Njc0MSwgMi4yMjA3NywgMi43NzQ4NSwgMy4zMjg3NyIsIFwKLSAgICAgICAgICAiMC4xMjA4NjEsIDAuNjcwODY1LCAxLjExMjksIDEuNjY4NzksIDIuMjIxMTEsIDIuNzc0ODcsIDMuMzI4ODUiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc5NTYsIDAuMzIwOTA0LCAwLjUxMzgyOSwgMC43NTQ5NzYsIDAuOTk2MTIzLCAxLjIzNzI3LCAxLjQ3ODQxIiwgXAotICAgICAgICAgICIwLjA4Njg0NywgMC4zMjgyMDIsIDAuNTIxMTMzLCAwLjc2MjI4MiwgMS4wMDM0MywgMS4yNDQ1OSwgMS40ODU3MSIsIFwKLSAgICAgICAgICAiMC4wOTUxNjIsIDAuMzM2NTUxLCAwLjUyOTQ0OCwgMC43NzA2MzIsIDEuMDExOSwgMS4yNTI4NiwgMS40OTQwNCIsIFwKLSAgICAgICAgICAiMC4xMDE3MDIsIDAuMzQzMDgxLCAwLjUzNjAwMiwgMC43NzcxMjUsIDEuMDE4MjgsIDEuMjU5NDMsIDEuNTAwNTciLCBcCi0gICAgICAgICAgIjAuMTA3MDY5LCAwLjM0ODQ3OSwgMC41NDE0MTEsIDAuNzgyNTY3LCAxLjAyMzY2LCAxLjI2NDg0LCAxLjUwNTk5IiwgXAotICAgICAgICAgICIwLjExNDIyMywgMC4zNTU3NzIsIDAuNTQ4NzM4LCAwLjc4OTgzMywgMS4wMzA5NywgMS4yNzIxMiwgMS41MTM0NiIsIFwKLSAgICAgICAgICAiMC4xMTk2NjYsIDAuMzYxMjEyLCAwLjU1NDI1OSwgMC43OTUyNzUsIDEuMDM2NDksIDEuMjc3NjMsIDEuNTE4ODEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTA2NzY1LCAwLjU5OTg0OSwgMC45OTU4NTQsIDEuNDkyNTUsIDEuOTg2MiwgMi40ODE1MywgMi45NzY0NSIsIFwKLSAgICAgICAgICAiMC4xMDY3OTQsIDAuNjAwNCwgMC45OTcwMiwgMS40OTI3NCwgMS45ODYxNywgMi40ODE3NywgMi45Nzk1OCIsIFwKLSAgICAgICAgICAiMC4xMDcwNzMsIDAuNjAwNjEyLCAwLjk5NzA3MSwgMS40OTI5OCwgMS45ODkzMiwgMi40ODQzMSwgMi45NzY2NSIsIFwKLSAgICAgICAgICAiMC4xMDc2MDIsIDAuNTk5NTI4LCAwLjk5NTk1MSwgMS40OTI4LCAxLjk4ODQsIDIuNDg0MTIsIDIuOTc5ODQiLCBcCi0gICAgICAgICAgIjAuMTA4MDc5LCAwLjYwMDYyNSwgMC45OTcxNTQsIDEuNDkyOTEsIDEuOTg4NCwgMi40ODQxMywgMi45ODAzIiwgXAotICAgICAgICAgICIwLjEwODc0OSwgMC42MDA2NzEsIDAuOTk3MTgxLCAxLjQ5MjY3LCAxLjk4ODQsIDIuNDgxMTcsIDIuOTgxMDgiLCBcCi0gICAgICAgICAgIjAuMTA5NDQzLCAwLjYwMDg3LCAwLjk5NTkyMSwgMS40OTI2OSwgMS45ODgzMiwgMi40ODQxMSwgMi45ODAxMSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk1MTY0LCAwLjM1ODM4NywgMC41Njg4NjUsIDAuODMxODc2LCAxLjA5NDkxLCAxLjM1Nzk5LCAxLjYyMSIsIFwKLSAgICAgICAgICAiMC4xMDI1NSwgMC4zNjU3OTMsIDAuNTc2MjcyLCAwLjgzOTI3MywgMS4xMDIzNiwgMS4zNjUzMywgMS42Mjg0IiwgXAotICAgICAgICAgICIwLjEwODg0OSwgMC4zNzIxLCAwLjU4MjU0OCwgMC44NDU1NjksIDEuMTA4NzksIDEuMzcxNjEsIDEuNjM0NyIsIFwKLSAgICAgICAgICAiMC4xMTMyOTcsIDAuMzc2NTk5LCAwLjU4NzAxNiwgMC44NDk5NzYsIDEuMTEzMDEsIDEuMzc2MDQsIDEuNjM5MDkiLCBcCi0gICAgICAgICAgIjAuMTE2Nzc3LCAwLjM4MDA5OSwgMC41OTA1MTUsIDAuODUzNTkyLCAxLjExNjU4LCAxLjM3OTU2LCAxLjY0MjYyIiwgXAotICAgICAgICAgICIwLjEyMTQ3OCwgMC4zODQ4MzcsIDAuNTk1MzAyLCAwLjg1ODMzNywgMS4xMjEzNiwgMS4zODQzMiwgMS42NDc1NiIsIFwKLSAgICAgICAgICAiMC4xMjQ5NDIsIDAuMzg4MzM1LCAwLjU5ODg0NiwgMC44NjE4MzMsIDEuMTI0OTIsIDEuMzg3ODEsIDEuNjUwOTciKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTE4MTM5LCAwLjY3MDY0MiwgMS4xMTI4OCwgMS42Njc2NywgMi4yMjEzLCAyLjc3Mjg2LCAzLjMyODMxIiwgXAotICAgICAgICAgICIwLjExODI0MiwgMC42NzAyMzksIDEuMTE0NjcsIDEuNjY4OTMsIDIuMjIwMDcsIDIuNzc0ODksIDMuMzI2MTgiLCBcCi0gICAgICAgICAgIjAuMTE4MjAxLCAwLjY3MDQ5NiwgMS4xMTQ2OCwgMS42Njg5NywgMi4yMjMyOSwgMi43NzUzMSwgMy4zMjYxOCIsIFwKLSAgICAgICAgICAiMC4xMTgzNDQsIDAuNjcwNDA0LCAxLjExNDY0LCAxLjY2ODc0LCAyLjIyMSwgMi43NzUwNCwgMy4zMzE4MSIsIFwKLSAgICAgICAgICAiMC4xMTgzMzQsIDAuNjcxMjU0LCAxLjExMzUyLCAxLjY2ODgsIDIuMjIzMTEsIDIuNzc3MjgsIDMuMzI4NSIsIFwKLSAgICAgICAgICAiMC4xMTgzNDksIDAuNjcxMTIsIDEuMTE0MzUsIDEuNjY4NSwgMi4yMjI3NiwgMi43NzY2OSwgMy4zMzEyNyIsIFwKLSAgICAgICAgICAiMC4xMTg0NiwgMC42NzA2OTcsIDEuMTE0MjgsIDEuNjY4MzcsIDIuMjIyNTksIDIuNzc2NDYsIDMuMzI2NzQiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDkyMzU4LCAwLjMzMzc1NiwgMC41MjY2NjUsIDAuNzY3ODUxLCAxLjAwODk5LCAxLjI1MDEyLCAxLjQ5MTI3IiwgXAotICAgICAgICAgICIwLjA5OTg2NCwgMC4zNDEyNTMsIDAuNTM0MTY5LCAwLjc3NTM2MiwgMS4wMTY0OCwgMS4yNTc2MiwgMS40OTg3NyIsIFwKLSAgICAgICAgICAiMC4xMDYyMzQsIDAuMzQ3NjI3LCAwLjU0MDUzNSwgMC43ODE3MDMsIDEuMDIyODUsIDEuMjY0LCAxLjUwNTEiLCBcCi0gICAgICAgICAgIjAuMTEwOTEzLCAwLjM1MjMxNSwgMC41NDUyNTYsIDAuNzg2NDYsIDEuMDI3NjQsIDEuMjY4NzMsIDEuNTA5OCIsIFwKLSAgICAgICAgICAiMC4xMTQ3MzMsIDAuMzU2MTc3LCAwLjU0OTEyNSwgMC43OTAzNjMsIDEuMDMxNDcsIDEuMjcyNjEsIDEuNTEzNzEiLCBcCi0gICAgICAgICAgIjAuMTE5ODAxLCAwLjM2MTMxLCAwLjU1NDI4MiwgMC43OTU1MzksIDEuMDM2NjEsIDEuMjc3ODMsIDEuNTE5MDMiLCBcCi0gICAgICAgICAgIjAuMTIzNzM5LCAwLjM2NTI1NCwgMC41NTgyLCAwLjc5OTM5NCwgMS4wNDA1NCwgMS4yODE3NCwgMS41MjI4OSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDY4NjIsIDAuNjAwNzIyLCAwLjk5NzAzOSwgMS40OTMxMSwgMS45ODY1NCwgMi40ODQyNSwgMi45NzY5NSIsIFwKLSAgICAgICAgICAiMC4xMDY4NTksIDAuNjAwNjg5LCAwLjk5NzAyLCAxLjQ5MzExLCAxLjk4ODQzLCAyLjQ4NDIyLCAyLjk3Njc4IiwgXAotICAgICAgICAgICIwLjEwNjg5NywgMC41OTk1MiwgMC45OTcxMDYsIDEuNDkxMDgsIDEuOTg2MTgsIDIuNDgxNDUsIDIuOTgwMTMiLCBcCi0gICAgICAgICAgIjAuMTA2OTYsIDAuNTk5NjU5LCAwLjk5NzA4LCAxLjQ5Mjk3LCAxLjk4ODgsIDIuNDgxNjIsIDIuOTc5NjgiLCBcCi0gICAgICAgICAgIjAuMTA2OTQzLCAwLjYwMDQ0LCAwLjk5NjAzLCAxLjQ5MjgyLCAxLjk4ODU3LCAyLjQ4NDIsIDIuOTc2MjgiLCBcCi0gICAgICAgICAgIjAuMTA2ODU4LCAwLjU5OTc1NSwgMC45OTY1NjQsIDEuNDkyNDQsIDEuOTg2MDgsIDIuNDgwNDUsIDIuOTgxMTMiLCBcCi0gICAgICAgICAgIjAuMTA3MDM3LCAwLjU5OTc5NSwgMC45OTY0NjcsIDEuNDkyMTUsIDEuOTg2ODIsIDIuNDgwOTYsIDIuOTc1NjkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDE2OTksIDAuMDAxNzA3LCAwLjAwMTcwOCwgMC4wMDE3MDgsIDAuMDAxNzEsIDAuMDAxNzEsIDAuMDAxNzA5IiwgXAotICAgICAgICAgICIwLjAwMTY3MiwgMC4wMDE2ODIsIDAuMDAxNjg0LCAwLjAwMTY4NCwgMC4wMDE2ODQsIDAuMDAxNjg2LCAwLjAwMTY4NiIsIFwKLSAgICAgICAgICAiMC4wMDE2OTIsIDAuMDAxNzAzLCAwLjAwMTcwNCwgMC4wMDE3MDQsIDAuMDAxNzA1LCAwLjAwMTcwNSwgMC4wMDE3MDUiLCBcCi0gICAgICAgICAgIjAuMDAxNzQxLCAwLjAwMTc1MiwgMC4wMDE3NTMsIDAuMDAxNzU0LCAwLjAwMTc1NCwgMC4wMDE3NTQsIDAuMDAxNzU0IiwgXAotICAgICAgICAgICIwLjAwMTgxNSwgMC4wMDE4MjIsIDAuMDAxODIyLCAwLjAwMTgyMywgMC4wMDE4MjMsIDAuMDAxODIzLCAwLjAwMTgyNCIsIFwKLSAgICAgICAgICAiMC4wMDE5NTEsIDAuMDAxOTU3LCAwLjAwMTk1OCwgMC4wMDE5NTgsIDAuMDAxOTU5LCAwLjAwMTk1OSwgMC4wMDE5NiIsIFwKLSAgICAgICAgICAiMC4wMDIwODMsIDAuMDAyMDksIDAuMDAyMDkyLCAwLjAwMjA5MSwgMC4wMDIwOTEsIDAuMDAyMDkzLCAwLjAwMjA5MyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzAxMSwgMC4wMDMwMiwgMC4wMDMwMjEsIDAuMDAzMDIxLCAwLjAwMzAyMSwgMC4wMDMwMjIsIDAuMDAzMDIyIiwgXAotICAgICAgICAgICIwLjAwMjk5MiwgMC4wMDMwMDQsIDAuMDAzMDA1LCAwLjAwMzAwNiwgMC4wMDMwMDYsIDAuMDAzMDA2LCAwLjAwMzAwNiIsIFwKLSAgICAgICAgICAiMC4wMDMwMDksIDAuMDAzMDIsIDAuMDAzMDIxLCAwLjAwMzAyMiwgMC4wMDMwMjIsIDAuMDAzMDIyLCAwLjAwMzAyMiIsIFwKLSAgICAgICAgICAiMC4wMDMwNDksIDAuMDAzMDYsIDAuMDAzMDYxLCAwLjAwMzA2MiwgMC4wMDMwNjIsIDAuMDAzMDYyLCAwLjAwMzA2MiIsIFwKLSAgICAgICAgICAiMC4wMDMxMTIsIDAuMDAzMTIyLCAwLjAwMzEyMywgMC4wMDMxMjMsIDAuMDAzMTI0LCAwLjAwMzEyNCwgMC4wMDMxMjQiLCBcCi0gICAgICAgICAgIjAuMDAzMjMzLCAwLjAwMzI0NSwgMC4wMDMyNDYsIDAuMDAzMjQ3LCAwLjAwMzI0OCwgMC4wMDMyNDgsIDAuMDAzMjQ4IiwgXAotICAgICAgICAgICIwLjAwMzM3MywgMC4wMDMzNzYsIDAuMDAzMzc3LCAwLjAwMzM3OCwgMC4wMDMzNzgsIDAuMDAzMzc4LCAwLjAwMzM3OCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTM5NSwgMC4wMDEzOTIsIDAuMDAxMzkyLCAwLjAwMTM5MiwgMC4wMDEzOTEsIDAuMDAxMzkxLCAwLjAwMTM5MSIsIFwKLSAgICAgICAgICAiMC4wMDEzNzEsIDAuMDAxMzcsIDAuMDAxMzcsIDAuMDAxMzY5LCAwLjAwMTM2OSwgMC4wMDEzNjksIDAuMDAxMzY5IiwgXAotICAgICAgICAgICIwLjAwMTM5MSwgMC4wMDEzODcsIDAuMDAxMzg3LCAwLjAwMTM4NywgMC4wMDEzODYsIDAuMDAxMzg3LCAwLjAwMTM4NiIsIFwKLSAgICAgICAgICAiMC4wMDE0NCwgMC4wMDE0MzUsIDAuMDAxNDM0LCAwLjAwMTQzMywgMC4wMDE0MzMsIDAuMDAxNDMzLCAwLjAwMTQzMyIsIFwKLSAgICAgICAgICAiMC4wMDE1MDEsIDAuMDAxNDk3LCAwLjAwMTQ5NiwgMC4wMDE0OTUsIDAuMDAxNDk1LCAwLjAwMTQ5NSwgMC4wMDE0OTUiLCBcCi0gICAgICAgICAgIjAuMDAxNjM0LCAwLjAwMTYyNywgMC4wMDE2MjUsIDAuMDAxNjI0LCAwLjAwMTYyNCwgMC4wMDE2MjQsIDAuMDAxNjI0IiwgXAotICAgICAgICAgICIwLjAwMTc2NywgMC4wMDE3NTYsIDAuMDAxNzU0LCAwLjAwMTc1MywgMC4wMDE3NTIsIDAuMDAxNzUzLCAwLjAwMTc1MiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzI4MywgMC4wMDMyODUsIDAuMDAzMjg1LCAwLjAwMzI4NSwgMC4wMDMyODUsIDAuMDAzMjg1LCAwLjAwMzI4NSIsIFwKLSAgICAgICAgICAiMC4wMDMyNjYsIDAuMDAzMjcsIDAuMDAzMjcxLCAwLjAwMzI3MSwgMC4wMDMyNzEsIDAuMDAzMjcxLCAwLjAwMzI3MSIsIFwKLSAgICAgICAgICAiMC4wMDMyODUsIDAuMDAzMjg5LCAwLjAwMzI4OSwgMC4wMDMyODksIDAuMDAzMjg5LCAwLjAwMzI4OSwgMC4wMDMyODkiLCBcCi0gICAgICAgICAgIjAuMDAzMzMsIDAuMDAzMzMsIDAuMDAzMzMsIDAuMDAzMzMsIDAuMDAzMzMsIDAuMDAzMzMsIDAuMDAzMzMiLCBcCi0gICAgICAgICAgIjAuMDAzMzk0LCAwLjAwMzM5MiwgMC4wMDMzOTIsIDAuMDAzMzkyLCAwLjAwMzM5MiwgMC4wMDMzOTEsIDAuMDAzMzkyIiwgXAotICAgICAgICAgICIwLjAwMzUxNSwgMC4wMDM1MTQsIDAuMDAzNTE1LCAwLjAwMzUxMywgMC4wMDM1MTMsIDAuMDAzNTEzLCAwLjAwMzUxMyIsIFwKLSAgICAgICAgICAiMC4wMDM2NDQsIDAuMDAzNjQxLCAwLjAwMzY0LCAwLjAwMzY0LCAwLjAwMzY0LCAwLjAwMzY0LCAwLjAwMzY0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUzAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDI5NSwgMC4wMDQzMDcsIDAuMDA0MzA3LCAwLjAwNDMwNywgMC4wMDQzMDgsIDAuMDA0MzA4LCAwLjAwNDMwOCIsIFwKLSAgICAgICAgICAiMC4wMDQyOTgsIDAuMDA0MzA4LCAwLjAwNDMxLCAwLjAwNDMxLCAwLjAwNDMxLCAwLjAwNDMwOSwgMC4wMDQzMTEiLCBcCi0gICAgICAgICAgIjAuMDA0Mzc5LCAwLjAwNDM5LCAwLjAwNDM5MSwgMC4wMDQzOTEsIDAuMDA0MzkyLCAwLjAwNDM5MiwgMC4wMDQzOTIiLCBcCi0gICAgICAgICAgIjAuMDA0NDgxLCAwLjAwNDQ5LCAwLjAwNDQ5MSwgMC4wMDQ0OTIsIDAuMDA0NDkyLCAwLjAwNDQ5MiwgMC4wMDQ0OTIiLCBcCi0gICAgICAgICAgIjAuMDA0NjAzLCAwLjAwNDYxLCAwLjAwNDYxMiwgMC4wMDQ2MTIsIDAuMDA0NjEyLCAwLjAwNDYxMiwgMC4wMDQ2MTIiLCBcCi0gICAgICAgICAgIjAuMDA0ODQ5LCAwLjAwNDg2LCAwLjAwNDg2LCAwLjAwNDg2LCAwLjAwNDg2LCAwLjAwNDg2MSwgMC4wMDQ4NjEiLCBcCi0gICAgICAgICAgIjAuMDA1MDQyLCAwLjAwNTA1MywgMC4wMDUwNTMsIDAuMDA1MDU1LCAwLjAwNTA1NSwgMC4wMDUwNTUsIDAuMDA1MDU1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyOCwgMC4wMDI4MDgsIDAuMDAyODA5LCAwLjAwMjgwOSwgMC4wMDI4MDksIDAuMDAyODA5LCAwLjAwMjgxIiwgXAotICAgICAgICAgICIwLjAwMjc5NiwgMC4wMDI4MDMsIDAuMDAyODA0LCAwLjAwMjgwNCwgMC4wMDI4MDUsIDAuMDAyODA1LCAwLjAwMjgwNSIsIFwKLSAgICAgICAgICAiMC4wMDI4NzgsIDAuMDAyODg2LCAwLjAwMjg4NiwgMC4wMDI4ODcsIDAuMDAyODg3LCAwLjAwMjg4NywgMC4wMDI4ODciLCBcCi0gICAgICAgICAgIjAuMDAyOTk1LCAwLjAwMzAwMSwgMC4wMDMwMDIsIDAuMDAzMDAyLCAwLjAwMzAwMiwgMC4wMDMwMDIsIDAuMDAzMDAyIiwgXAotICAgICAgICAgICIwLjAwMzE1MywgMC4wMDMxNTksIDAuMDAzMTYsIDAuMDAzMTYsIDAuMDAzMTYsIDAuMDAzMTYsIDAuMDAzMTYiLCBcCi0gICAgICAgICAgIjAuMDAzMzcxLCAwLjAwMzM3OCwgMC4wMDMzNzksIDAuMDAzMzc2LCAwLjAwMzM3NiwgMC4wMDMzNzYsIDAuMDAzMzgiLCBcCi0gICAgICAgICAgIjAuMDAzNTI5LCAwLjAwMzUzNiwgMC4wMDM1NDEsIDAuMDAzNTM3LCAwLjAwMzU0MSwgMC4wMDM1NDEsIDAuMDAzNTM3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IE1YM1gxICoKLSAqIC0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChNWDNYMSkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjU1Mjc4MTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNzIxOTA2OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDcyMDc2MjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA3MjE5MDY7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNzY4LCAwLjAwMDc0NSwgMC4wMDA3NjYsIDAuMDAwODE1LCAwLjAwMDg4MywgMC4wMDEwMTgsIDAuMDAxMTUyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyNzIsIDAuMDAyNzA1LCAwLjAwMjcyNCwgMC4wMDI3NjYsIDAuMDAyODMyLCAwLjAwMjk1OCwgMC4wMDMwODYiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY2NTgzNzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2NjQ1OTU7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjY1ODM3OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDI4OCwgMC4wMDAyODksIDAuMDAwMjksIDAuMDAwMjksIDAuMDAwMjksIDAuMDAwMjkxLCAwLjAwMDI5MSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDMxNSwgMC4wMDAzMDQsIDAuMDAwMzAyLCAwLjAwMDMwMSwgMC4wMDAzLCAwLjAwMDMsIDAuMDAwMjk5Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihDKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2NjQyOTc7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjYzMTIyOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDY2NDI5NzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyODksIDAuMDAwMjksIDAuMDAwMjkxLCAwLjAwMDI5MSwgMC4wMDAyOTEsIDAuMDAwMjkyLCAwLjAwMDI5MiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDMxNiwgMC4wMDAzMDQsIDAuMDAwMzAyLCAwLjAwMDMwMSwgMC4wMDAzMDEsIDAuMDAwMywgMC4wMDAyOTkiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFMwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDEyODIwOTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDEyODE5MTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDEyODIwOTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxOTgsIDAuMDAwMjE4LCAwLjAwMDI5NywgMC4wMDA0MDksIDAuMDAwNTQxLCAwLjAwMDgwOSwgMC4wMDEwMTIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDI0NDQsIDAuMDAyNDczLCAwLjAwMjUzOCwgMC4wMDI2NDYsIDAuMDAyNzcyLCAwLjAwMjk5NCwgMC4wMDMxODciKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFMxKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDEzMTkzODsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDEzMTkzODsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDEzMTkzMjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyMDcsIDAuMDAwMjE4LCAwLjAwMDMwMiwgMC4wMDA0MTEsIDAuMDAwNTM0LCAwLjAwMDgwNSwgMC4wMDEwMDMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDI0ODksIDAuMDAyNDk2LCAwLjAwMjU3OCwgMC4wMDI2NzgsIDAuMDAyNzk3LCAwLjAwMzAxMywgMC4wMDMxOTkiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4zMzcxNDY7Ci0gICAgZnVuY3Rpb24gOiAiKChTMSBDKSArICghUzEgKChTMCBCKSArICghUzAgQSkpKSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5MzYwNCwgMC4xMTMyNDgsIDAuMjE5MzY3LCAwLjMxMjQ4MiwgMC40MzY2NTEsIDAuNjg0NzcxLCAwLjgzOTg2OCIsIFwKLSAgICAgICAgICAiMC4wOTk3NjMsIDAuMTE5MzY1LCAwLjIyNTQ5NywgMC4zMTg2MTIsIDAuNDQyNzg1LCAwLjY5MDg4NywgMC44NDYwMzQiLCBcCi0gICAgICAgICAgIjAuMTA3NDMxLCAwLjEyNzAzMywgMC4yMzMxOTEsIDAuMzI2Mjk5LCAwLjQ1MDQyNSwgMC42OTg1ODUsIDAuODUzNzE1IiwgXAotICAgICAgICAgICIwLjExNDQ5NiwgMC4xMzQxMTksIDAuMjQwMjU2LCAwLjMzMzM4MiwgMC40NTc1NDIsIDAuNzA1NjUxLCAwLjg2MDc4NCIsIFwKLSAgICAgICAgICAiMC4xMjA4ODEsIDAuMTQwNTgxLCAwLjI0Njc1NywgMC4zMzk4NzEsIDAuNDYzOTk0LCAwLjcxMjE0NCwgMC44NjcyMTkiLCBcCi0gICAgICAgICAgIjAuMTI5OTcyLCAwLjE0OTc2MywgMC4yNTYwMDEsIDAuMzQ5MTU4LCAwLjQ3MzI3NywgMC43MjE0NzIsIDAuODc2NjMyIiwgXAotICAgICAgICAgICIwLjEzNjk3MSwgMC4xNTY4NTgsIDAuMjYzMTU2LCAwLjM1NjI3MSwgMC40ODA0NDUsIDAuNzI4NDkyLCAwLjg4MzU4NyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzkyMzcsIDAuMTE2NTYxLCAwLjMzNDIzNCwgMC41Mjg3MDQsIDAuNzg5MzQ5LCAxLjMxMzAzLCAxLjYzODEzIiwgXAotICAgICAgICAgICIwLjA3OTI1NCwgMC4xMTY1NjYsIDAuMzMzNzU3LCAwLjUyOTMzLCAwLjc4OTI1NSwgMS4zMTE2NiwgMS42MzczOSIsIFwKLSAgICAgICAgICAiMC4wNzkyNzEsIDAuMTE2NTc5LCAwLjMzNDIxMSwgMC41MjkzMDYsIDAuNzg5NTcsIDEuMzExODEsIDEuNjM3MTciLCBcCi0gICAgICAgICAgIjAuMDc5NDkxLCAwLjExNjc1MywgMC4zMzQyMDksIDAuNTI5MzY3LCAwLjc4OTM0OSwgMS4zMTE1OSwgMS42MzY5NSIsIFwKLSAgICAgICAgICAiMC4wNzk5OTUsIDAuMTE3MTEzLCAwLjMzNDM3MiwgMC41Mjg4MDYsIDAuNzg5NDY4LCAxLjMxMjg2LCAxLjYzODE0IiwgXAotICAgICAgICAgICIwLjA4MDkyNiwgMC4xMTc4OTQsIDAuMzM0NjAyLCAwLjUyODcwOSwgMC43OTAyNTYsIDEuMzEyODMsIDEuNjM2NjQiLCBcCi0gICAgICAgICAgIjAuMDgyMDA2LCAwLjExODUzNywgMC4zMzQ4OTcsIDAuNTI5NDY2LCAwLjc4OTI0OCwgMS4zMTE3MywgMS42MzgyNSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTg4MDMsIDAuMTE4NDc1LCAwLjIyMjM0OSwgMC4zMTI4OTMsIDAuNDMzNTE2LCAwLjY3NDgzLCAwLjgyNTU0NiIsIFwKLSAgICAgICAgICAiMC4xMDQ2MSwgMC4xMjQyOTMsIDAuMjI4MTQ0LCAwLjMxODY2MywgMC40MzkzMjQsIDAuNjgwNTc3LCAwLjgzMTM1MyIsIFwKLSAgICAgICAgICAiMC4xMTE1NiwgMC4xMzEyNDYsIDAuMjM1MDk4LCAwLjMyNTYyMywgMC40NDYyNzEsIDAuNjg3NTc3LCAwLjgzODM4MSIsIFwKLSAgICAgICAgICAiMC4xMTc5OTMsIDAuMTM3Njg2LCAwLjI0MTU4LCAwLjMzMjExNywgMC40NTI3NzksIDAuNjk0MDYzLCAwLjg0NDc3OCIsIFwKLSAgICAgICAgICAiMC4xMjM3ODgsIDAuMTQzNTM5LCAwLjI0NzQ1OCwgMC4zMzc5ODQsIDAuNDU4NjMxLCAwLjY5OTk3LCAwLjg1MDY3OSIsIFwKLSAgICAgICAgICAiMC4xMzE5OCwgMC4xNTE4NzcsIDAuMjU1OTEzLCAwLjM0NjQ0LCAwLjQ2NzA5OSwgMC43MDg0MzUsIDAuODU5MTI5IiwgXAotICAgICAgICAgICIwLjEzODIsIDAuMTU4MjMxLCAwLjI2MjMxOCwgMC4zNTI4NDYsIDAuNDczNTIxLCAwLjcxNDc2MSwgMC44NjU1OTgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc4NTE4LCAwLjExMzgzMywgMC4zMTkyMjIsIDAuNTA0MzYzLCAwLjc1MTk4NiwgMS4yNDksIDEuNTU5NTMiLCBcCi0gICAgICAgICAgIjAuMDc4NTE1LCAwLjExMzgxNSwgMC4zMTkxMDQsIDAuNTA0Mjg4LCAwLjc1MTE1NiwgMS4yNDczOCwgMS41NTc2MyIsIFwKLSAgICAgICAgICAiMC4wNzg1MzcsIDAuMTEzODUsIDAuMzE5NDc3LCAwLjUwNDI5MywgMC43NTE5OTksIDEuMjQ4OTcsIDEuNTU5ODYiLCBcCi0gICAgICAgICAgIjAuMDc4ODA2LCAwLjExNDAzNywgMC4zMTkyOTcsIDAuNTA0MzMyLCAwLjc1MjA5NywgMS4yNDg5NiwgMS41NTk0NyIsIFwKLSAgICAgICAgICAiMC4wNzkyNjEsIDAuMTE0MzkyLCAwLjMxOTQyMiwgMC41MDM0NzYsIDAuNzUyMDM3LCAxLjI0OTE1LCAxLjU1OTU4IiwgXAotICAgICAgICAgICIwLjA4MDExOCwgMC4xMTUyNTksIDAuMzE5Njk4LCAwLjUwNDAyNCwgMC43NTIxMjgsIDEuMjQ5MDIsIDEuNTU5NTUiLCBcCi0gICAgICAgICAgIjAuMDgxMjg3LCAwLjExNTg4NywgMC4zMTk4NjQsIDAuNTA0MTExLCAwLjc1MTQwNywgMS4yNDc2MiwgMS41NTk4MiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTM5NDYsIDAuMTEzNTUzLCAwLjIxOTcxMiwgMC4zMTI4MTgsIDAuNDM2OTUsIDAuNjg1MTI0LCAwLjg0MDI2NiIsIFwKLSAgICAgICAgICAiMC4xMDAxODMsIDAuMTE5NzksIDAuMjI1OTQyLCAwLjMxOTA1OSwgMC40NDMxODksIDAuNjkxMzUzLCAwLjg0NjQ5IiwgXAotICAgICAgICAgICIwLjEwNzk0NCwgMC4xMjc1NjMsIDAuMjMzNywgMC4zMjY4MjQsIDAuNDUwOTk3LCAwLjY5OTEwMSwgMC44NTQyNDMiLCBcCi0gICAgICAgICAgIjAuMTE1MDU0LCAwLjEzNDcxNiwgMC4yNDA4NjksIDAuMzMzOTg0LCAwLjQ1ODEyLCAwLjcwNjI3LCAwLjg2MTM5MiIsIFwKLSAgICAgICAgICAiMC4xMjE1MzksIDAuMTQxMjQ0LCAwLjI0NzQzLCAwLjM0MDU0MiwgMC40NjQ2NTQsIDAuNzEyODA2LCAwLjg2NzkyMyIsIFwKLSAgICAgICAgICAiMC4xMzA2MTEsIDAuMTUwNDI1LCAwLjI1NjY2NSwgMC4zNDk3ODUsIDAuNDczODkxLCAwLjcyMjA2OCwgMC44NzcxMjQiLCBcCi0gICAgICAgICAgIjAuMTM3NjM1LCAwLjE1NzUyMywgMC4yNjM4MiwgMC4zNTY5NjUsIDAuNDgxMDU1LCAwLjcyOTIxMSwgMC44ODQ0MDUiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc5Mjc0LCAwLjExNjU4OCwgMC4zMzQyNDIsIDAuNTI5MzAzLCAwLjc4OTUzOCwgMS4zMTE4NywgMS42Mzc3OCIsIFwKLSAgICAgICAgICAiMC4wNzkyODIsIDAuMTE2NTkyLCAwLjMzMzk3NywgMC41MjkzMjcsIDAuNzg5NjEzLCAxLjMxMTg1LCAxLjYzNzQ0IiwgXAotICAgICAgICAgICIwLjA3OTI5NiwgMC4xMTY1OTksIDAuMzM0MjU3LCAwLjUyOTM2NCwgMC43ODkyOTUsIDEuMzExNTcsIDEuNjM2OTkiLCBcCi0gICAgICAgICAgIjAuMDc5NTMxLCAwLjExNjc4MiwgMC4zMzQyODQsIDAuNTI5MzU5LCAwLjc5MDQwNiwgMS4zMTE3MywgMS42Mzc4NyIsIFwKLSAgICAgICAgICAiMC4wODAwMzQsIDAuMTE3MTQ3LCAwLjMzNDQsIDAuNTI5NDA3LCAwLjc4OTQ4NiwgMS4zMTE0OSwgMS42Mzc5OSIsIFwKLSAgICAgICAgICAiMC4wODA5MDIsIDAuMTE3ODQ5LCAwLjMzNDM1NSwgMC41Mjg2OTEsIDAuNzg5NjM0LCAxLjMxMjgyLCAxLjYzOCIsIFwKLSAgICAgICAgICAiMC4wODE4OTgsIDAuMTE4NjMyLCAwLjMzNDU2NCwgMC41Mjk1MTUsIDAuNzkwMjE5LCAxLjMxMTQzLCAxLjYzOTUzIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5OTk0OCwgMC4xMTk2MjYsIDAuMjIzNTM0LCAwLjMxNDA4NiwgMC40MzQ3MjUsIDAuNjc2MDQ1LCAwLjgyNjc2MyIsIFwKLSAgICAgICAgICAiMC4xMDU1NzUsIDAuMTI1MzUzLCAwLjIyOTI1NywgMC4zMTk4MDQsIDAuNDQwNDQ2LCAwLjY4MTc2NiwgMC44MzI0ODUiLCBcCi0gICAgICAgICAgIjAuMTEyNTUsIDAuMTMyMjUsIDAuMjM2MTIzLCAwLjMyNjY2NSwgMC40NDczMzEsIDAuNjg4NjE0LCAwLjgzOTUiLCBcCi0gICAgICAgICAgIjAuMTE5MDE1LCAwLjEzODcwNCwgMC4yNDI2MTMsIDAuMzMzMTYxLCAwLjQ1MzksIDAuNjk1MTIyLCAwLjg0NTg5MiIsIFwKLSAgICAgICAgICAiMC4xMjQ4MjUsIDAuMTQ0NTg5LCAwLjI0ODUxOSwgMC4zMzkwNjMsIDAuNDU5NzA2LCAwLjcwMTAzMywgMC44NTE3NDgiLCBcCi0gICAgICAgICAgIjAuMTMzMDc1LCAwLjE1MjkwOCwgMC4yNTY5OTYsIDAuMzQ3NTExLCAwLjQ2ODE3OSwgMC43MDk1MjYsIDAuODYwMjI0IiwgXAotICAgICAgICAgICIwLjEzOTIzNiwgMC4xNTkyNjMsIDAuMjYzMzcyLCAwLjM1MzkyNywgMC40NzQ1ODEsIDAuNzE1ODc3LCAwLjg2NjY3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3ODYxNCwgMC4xMTM5MTUsIDAuMzE5MzA1LCAwLjUwNDM3MiwgMC43NTIwMzMsIDEuMjQ5MDIsIDEuNTU5NTUiLCBcCi0gICAgICAgICAgIjAuMDc4NTM0LCAwLjExMzkxNCwgMC4zMTkzMTgsIDAuNTA0MzY4LCAwLjc1MjAyNSwgMS4yNDkwMiwgMS41NTk1MiIsIFwKLSAgICAgICAgICAiMC4wNzg2MTMsIDAuMTEzOTI1LCAwLjMxOTUzOCwgMC41MDQzNTUsIDAuNzUyMTAzLCAxLjI0NzUsIDEuNTU2NTkiLCBcCi0gICAgICAgICAgIjAuMDc4ODg5LCAwLjExNDExNywgMC4zMTk1ODUsIDAuNTA0Mzc3LCAwLjc1MTAxMSwgMS4yNDg5OSwgMS41NTk2OSIsIFwKLSAgICAgICAgICAiMC4wNzkzOTEsIDAuMTE0NDk1LCAwLjMxOTcxOCwgMC41MDQ0NTgsIDAuNzUyMDc5LCAxLjI0OTA5LCAxLjU1OTUzIiwgXAotICAgICAgICAgICIwLjA4MDIyMSwgMC4xMTUyNzEsIDAuMzE5NjUzLCAwLjUwNDQ4MSwgMC43NTIxNjcsIDEuMjQ4OTcsIDEuNTU5NTgiLCBcCi0gICAgICAgICAgIjAuMDgxMzUsIDAuMTE1OTQ2LCAwLjMyMDAyLCAwLjUwNDEzMywgMC43NTIxLCAxLjI0Njc5LCAxLjU1OTgzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2NTMxMSwgMC4wODQwNTUsIDAuMTg5NjM4LCAwLjI4Mjc0LCAwLjQwNjgxNywgMC42NTQ5NjUsIDAuODEwMDg2IiwgXAotICAgICAgICAgICIwLjA3MTUwNywgMC4wOTAyNSwgMC4xOTU4MzksIDAuMjg4OTI0LCAwLjQxMzAxOCwgMC42NjExODYsIDAuODE2MzE3IiwgXAotICAgICAgICAgICIwLjA3ODU5NywgMC4wOTczNSwgMC4yMDI5MzksIDAuMjk2MDIsIDAuNDIwMDk4LCAwLjY2ODI4MywgMC44MjMzNTIiLCBcCi0gICAgICAgICAgIjAuMDg0NjQyLCAwLjEwMzQyNSwgMC4yMDkwNDEsIDAuMzAyMTAzLCAwLjQyNjE5LCAwLjY3NDMyNiwgMC44Mjk0MTQiLCBcCi0gICAgICAgICAgIjAuMDg5NzUzLCAwLjEwODU1NiwgMC4yMTQxNDcsIDAuMzA3MjQxLCAwLjQzMTMzOSwgMC42Nzk0NDksIDAuODM0NTExIiwgXAotICAgICAgICAgICIwLjA5NjcxMywgMC4xMTU1MjIsIDAuMjIxMTMyLCAwLjMxNDE5OSwgMC40MzgyNjYsIDAuNjg2NDk5LCAwLjg0MTU1OSIsIFwKLSAgICAgICAgICAiMC4xMDE5MjUsIDAuMTIwNzg0LCAwLjIyNjQxOSwgMC4zMTk0NTcsIDAuNDQzNTczLCAwLjY5MTcwNywgMC44NDY3NjkiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDczMzM1LCAwLjExMTUzNCwgMC4zMzIwMzIsIDAuNTI4MzU3LCAwLjc4ODExMiwgMS4zMTI2NSwgMS42Mzc0OSIsIFwKLSAgICAgICAgICAiMC4wNzMzMjMsIDAuMTExNDQ4LCAwLjMzMjAzMiwgMC41Mjc3ODcsIDAuNzg4OTUyLCAxLjMxMTA3LCAxLjYzNzE3IiwgXAotICAgICAgICAgICIwLjA3MzU5NiwgMC4xMTE2NjEsIDAuMzMyMDkxLCAwLjUyNzg2NiwgMC43ODg4OTIsIDEuMzEwMzEsIDEuNjM3NjgiLCBcCi0gICAgICAgICAgIjAuMDc0MTA1LCAwLjExMjAxNiwgMC4zMzI0MjEsIDAuNTI4MjQ4LCAwLjc4OTYxNywgMS4zMTEyNywgMS42Mzc4MyIsIFwKLSAgICAgICAgICAiMC4wNzQ2MDcsIDAuMTEyMzc1LCAwLjMzMjQ0NCwgMC41MjgyNjEsIDAuNzg5NTkzLCAxLjMxMjM3LCAxLjYzOTEzIiwgXAotICAgICAgICAgICIwLjA3NTUyNCwgMC4xMTI5NjcsIDAuMzMyNTA3LCAwLjUyNzkxOSwgMC43ODk0NzEsIDEuMzEyMzQsIDEuNjM5MDUiLCBcCi0gICAgICAgICAgIjAuMDc2MjY5LCAwLjExMzYyNSwgMC4zMzI0NDEsIDAuNTI4MjA4LCAwLjc4OTU0LCAxLjMxMjIxLCAxLjYzODkiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY4NTU2LCAwLjA4NjkzNCwgMC4xODk2MzEsIDAuMjgwMTM2LCAwLjQwMDc4LCAwLjY0MjA3LCAwLjc5Mjc1NSIsIFwKLSAgICAgICAgICAiMC4wNzQyNywgMC4wOTI2NDcsIDAuMTk1MzYsIDAuMjg1ODc1LCAwLjQwNjU0NywgMC42NDc3MDksIDAuNzk4NTc2IiwgXAotICAgICAgICAgICIwLjA4MDU4NSwgMC4wOTg5ODIsIDAuMjAxNjksIDAuMjkyMiwgMC40MTI4MiwgMC42NTQwNDYsIDAuODA0OTExIiwgXAotICAgICAgICAgICIwLjA4NjA1MiwgMC4xMDQ0OSwgMC4yMDcxOTIsIDAuMjk3Njk1LCAwLjQxODM0MSwgMC42NTk1NTIsIDAuODEwMzIxIiwgXAotICAgICAgICAgICIwLjA5MDU2NiwgMC4xMDkwNjIsIDAuMjExNzk4LCAwLjMwMjI5NSwgMC40MjI5NTksIDAuNjY0MTkxLCAwLjgxNDk5NiIsIFwKLSAgICAgICAgICAiMC4wOTY3MjIsIDAuMTE1MjU3LCAwLjIxODA3OSwgMC4zMDg1NzksIDAuNDI5MTk1LCAwLjY3MDQzNiwgMC44MjEyODkiLCBcCi0gICAgICAgICAgIjAuMTAxMjk5LCAwLjExOTg5LCAwLjIyMjY5NywgMC4zMTMyMDIsIDAuNDMzODIsIDAuNjc1MDM3LCAwLjgyNTc4OCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzA5MDQsIDAuMTA2OTksIDAuMzE1OTgsIDAuNTAyNTU0LCAwLjc1MTE3MiwgMS4yNDg1MiwgMS41NTcwMyIsIFwKLSAgICAgICAgICAiMC4wNzA5MDMsIDAuMTA2OTgzLCAwLjMxNjM2LCAwLjUwMTY5NiwgMC43NTExNDUsIDEuMjQ4MTksIDEuNTU5NDYiLCBcCi0gICAgICAgICAgIjAuMDcxMTY2LCAwLjEwNzE2MiwgMC4zMTYzODksIDAuNTAxNTk4LCAwLjc1MTA2NywgMS4yNDgxMiwgMS41NTk0NyIsIFwKLSAgICAgICAgICAiMC4wNzE3NDYsIDAuMTA3NTQxLCAwLjMxNjQ0NCwgMC41MDE5NTgsIDAuNzQ5ODU1LCAxLjI0ODIsIDEuNTU3MDciLCBcCi0gICAgICAgICAgIjAuMDcyMzA1LCAwLjEwODAxNSwgMC4zMTYyNDksIDAuNTAyNDY3LCAwLjc1MDAxMiwgMS4yNDg0NSwgMS41NTkwNiIsIFwKLSAgICAgICAgICAiMC4wNzMxNzUsIDAuMTA4NTMsIDAuMzE2NTQ2LCAwLjUwMjEwMiwgMC43NTAwMzgsIDEuMjQ4MDYsIDEuNTU4ODkiLCBcCi0gICAgICAgICAgIjAuMDczOTc2LCAwLjEwOTI5OCwgMC4zMTY2MDIsIDAuNTAyMjgsIDAuNzUwNjY5LCAxLjI0ODA1LCAxLjU1Njc5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlMwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODk1NjEsIDAuMTA5MjE1LCAwLjIxNTM1MywgMC4zMDg0NjEsIDAuNDMyNjM0LCAwLjY4MDgxNCwgMC44MzU4NTkiLCBcCi0gICAgICAgICAgIjAuMDk3MDU2LCAwLjExNjY3OSwgMC4yMjI4MTcsIDAuMzE1OTI4LCAwLjQ0MDA1OCwgMC42ODgyMTksIDAuODQzMzUxIiwgXAotICAgICAgICAgICIwLjEwNjYzNCwgMC4xMjYyNDMsIDAuMjMyNDA1LCAwLjMyNTUyNCwgMC40NDk2NjIsIDAuNjk3ODE5LCAwLjg1Mjk2MSIsIFwKLSAgICAgICAgICAiMC4xMTU1NDEsIDAuMTM1MTczLCAwLjI0MTMyMiwgMC4zMzQ0NTEsIDAuNDU4NjA2LCAwLjcwNjcxOSwgMC44NjE4NiIsIFwKLSAgICAgICAgICAiMC4xMjMzODMsIDAuMTQzMDgzLCAwLjI0OTI3LCAwLjM0MjM5MiwgMC40NjY1NDMsIDAuNzE0NjYyLCAwLjg2OTgwMSIsIFwKLSAgICAgICAgICAiMC4xMzQyNDMsIDAuMTU0MDc5LCAwLjI2MDI4NywgMC4zNTM0MzMsIDAuNDc3NTIzLCAwLjcyNTcwOCwgMC44ODA4MDYiLCBcCi0gICAgICAgICAgIjAuMTQyMjg2LCAwLjE2MjM0NCwgMC4yNjg1OSwgMC4zNjE2ODUsIDAuNDg1ODk4LCAwLjczNDA5MywgMC44ODkxNTQiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc5MjE5LCAwLjExNjU2LCAwLjMzNDI1NywgMC41Mjg3NjIsIDAuNzg5Mjg0LCAxLjMxMzA4LCAxLjYzODExIiwgXAotICAgICAgICAgICIwLjA3OTE5MywgMC4xMTY1NjcsIDAuMzMzOTMxLCAwLjUyOTMzMywgMC43OTA0NDUsIDEuMzExODEsIDEuNjM3MDUiLCBcCi0gICAgICAgICAgIjAuMDc5MzA4LCAwLjExNjYxMSwgMC4zMzM5NjUsIDAuNTI5MzMsIDAuNzg5NjU1LCAxLjMxMTgyLCAxLjYzNzQxIiwgXAotICAgICAgICAgICIwLjA3OTYzNiwgMC4xMTY4NDksIDAuMzM0MzAyLCAwLjUyOTQxOCwgMC43ODkzNDMsIDEuMzExNTIsIDEuNjM3ODQiLCBcCi0gICAgICAgICAgIjAuMDgwMzMxLCAwLjExNzI1NSwgMC4zMzQ0MDksIDAuNTI5NDc5LCAwLjc4OTA2LCAxLjMxMTQ2LCAxLjYzNjk0IiwgXAotICAgICAgICAgICIwLjA4MTY1OSwgMC4xMTg0NTMsIDAuMzM0MzUsIDAuNTI5NjQxLCAwLjc5MDQyOCwgMS4zMTI5MiwgMS42Mzc4NCIsIFwKLSAgICAgICAgICAiMC4wODMwNTEsIDAuMTE5MzExLCAwLjMzNDg1MywgMC41Mjk1MDEsIDAuNzg5NDk3LCAxLjMxMjkzLCAxLjYzODMzIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5NDUwMSwgMC4xMTQxNjgsIDAuMjE4MDQ1LCAwLjMwODU4OCwgMC40MjkyMiwgMC42NzA1MjksIDAuODIxMjQ0IiwgXAotICAgICAgICAgICIwLjEwMTg2NywgMC4xMjE1MywgMC4yMjU0MDUsIDAuMzE1OTUxLCAwLjQzNjU4NSwgMC42Nzc4OTIsIDAuODI4NjA3IiwgXAotICAgICAgICAgICIwLjExMTMyLCAwLjEzMDk5MywgMC4yMzQ4OCwgMC4zMjU0MTYsIDAuNDQ2MDU3LCAwLjY4NzM3NCwgMC44MzgwOTEiLCBcCi0gICAgICAgICAgIjAuMTIwMTc0LCAwLjEzOTg0OCwgMC4yNDM3MzgsIDAuMzM0Mjk0LCAwLjQ1NDkzMiwgMC42OTYyNDMsIDAuODQ2OTU3IiwgXAotICAgICAgICAgICIwLjEyNzk5NywgMC4xNDc3NzYsIDAuMjUxNjE5LCAwLjM0MjE4OSwgMC40NjI4MzksIDAuNzA0MTE0LCAwLjg1NDgyNSIsIFwKLSAgICAgICAgICAiMC4xMzg3NTksIDAuMTU4NjQsIDAuMjYyNjc2LCAwLjM1MzE3OSwgMC40NzM4MzYsIDAuNzE1MTY1LCAwLjg2NTg2MiIsIFwKLSAgICAgICAgICAiMC4xNDY4NTYsIDAuMTY2ODczLCAwLjI3MTA4NSwgMC4zNjE1OTQsIDAuNDgyMjgyLCAwLjcyMzYwNCwgMC44NzQyNTEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc4NDkzLCAwLjExMzgwMSwgMC4zMTkyMzEsIDAuNTA0MywgMC43NTE5NjYsIDEuMjQ4OTcsIDEuNTU5NDkiLCBcCi0gICAgICAgICAgIjAuMDc4NDk4LCAwLjExMzgwOSwgMC4zMTkyMzksIDAuNTA0Mjk0LCAwLjc1MTk1OCwgMS4yNDg5NSwgMS41NTk0NiIsIFwKLSAgICAgICAgICAiMC4wNzg1NCwgMC4xMTM4NTQsIDAuMzE5MjI2LCAwLjUwMzQwNSwgMC43NTE5NywgMS4yNDg5OSwgMS41NTk0OSIsIFwKLSAgICAgICAgICAiMC4wNzg4ODIsIDAuMTE0MDgzLCAwLjMxOTU0OSwgMC41MDQyNDUsIDAuNzUxODQ1LCAxLjI0ODk2LCAxLjU1OTIiLCBcCi0gICAgICAgICAgIjAuMDc5NDg0LCAwLjExNDQ4NCwgMC4zMTk2NzUsIDAuNTA0NDA5LCAwLjc1MjA1LCAxLjI0ODk1LCAxLjU1OTQ4IiwgXAotICAgICAgICAgICIwLjA4MDc3OSwgMC4xMTU2NDEsIDAuMzE5Njk1LCAwLjUwMzkyOSwgMC43NTIxNCwgMS4yNDkxMiwgMS41NTk1MSIsIFwKLSAgICAgICAgICAiMC4wODIwNiwgMC4xMTY0NywgMC4zMjAyNTQsIDAuNTA0NzI0LCAwLjc1MjQwMSwgMS4yNDY5NiwgMS41NTk2OSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTAyMjE1LCAwLjEyMTg0NywgMC4yMjc5OCwgMC4zMjEwODksIDAuNDQ1MjE4LCAwLjY5MzQxMSwgMC44NDg2MTciLCBcCi0gICAgICAgICAgIjAuMTA5NTU4LCAwLjEyOTE2NywgMC4yMzUyOTQsIDAuMzI4NDAxLCAwLjQ1MjUyMiwgMC43MDA2ODMsIDAuODU1ODE2IiwgXAotICAgICAgICAgICIwLjExNTg3NSwgMC4xMzU0OTUsIDAuMjQxNjUyLCAwLjMzNDgwNywgMC40NTg5MTYsIDAuNzA3MTAxLCAwLjg2MjEzNCIsIFwKLSAgICAgICAgICAiMC4xMjAyMjIsIDAuMTM5ODUyLCAwLjI0NTk4NiwgMC4zMzkwOTgsIDAuNDYzMjU4LCAwLjcxMTM2OCwgMC44NjY0NzciLCBcCi0gICAgICAgICAgIjAuMTIzNjU1LCAwLjE0MzM4NSwgMC4yNDk1NjksIDAuMzQyNjg3LCAwLjQ2NjgxNSwgMC43MTQ5NDQsIDAuODcwMDMiLCBcCi0gICAgICAgICAgIjAuMTI4MzMsIDAuMTQ3OTYsIDAuMjU0MjEzLCAwLjM0NzMyOCwgMC40NzE0MywgMC43MTk2MDQsIDAuODc0NzMiLCBcCi0gICAgICAgICAgIjAuMTMxODA5LCAwLjE1MTQzNywgMC4yNTc3MjksIDAuMzUwODUsIDAuNDc1LCAwLjcyMzIxOCwgMC44NzgyMTEiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc5MjI0LCAwLjExNjUwNSwgMC4zMzQyMjcsIDAuNTI5MzExLCAwLjc5MDQxMSwgMS4zMTMwNCwgMS42Mzk4NiIsIFwKLSAgICAgICAgICAiMC4wNzkyNTQsIDAuMTE2NTU3LCAwLjMzNDIyMiwgMC41MjkzMjEsIDAuNzg5NDI0LCAxLjMxMTc5LCAxLjYzNzA2IiwgXAotICAgICAgICAgICIwLjA3OTIxLCAwLjExNjUyNiwgMC4zMzQyMjYsIDAuNTI5NDY2LCAwLjc4OTA1NiwgMS4zMTEzMSwgMS42Mzk4IiwgXAotICAgICAgICAgICIwLjA3OTI5LCAwLjExNjYwOSwgMC4zMzQyNDcsIDAuNTI4ODcsIDAuNzg5MiwgMS4zMTI5OSwgMS42MzgyNSIsIFwKLSAgICAgICAgICAiMC4wNzkyNjYsIDAuMTE2NjI5LCAwLjMzMzkyLCAwLjUyOTMxOCwgMC43ODg5MzksIDEuMzEyODIsIDEuNjM4MTEiLCBcCi0gICAgICAgICAgIjAuMDc5MjU0LCAwLjExNjYwNSwgMC4zMzQwOTEsIDAuNTI4MzQ2LCAwLjc5MDA5MSwgMS4zMTI2OSwgMS42Mzk0MyIsIFwKLSAgICAgICAgICAiMC4wNzkxODYsIDAuMTE2NjExLCAwLjMzNDE0MSwgMC41Mjg4MDMsIDAuNzkwMDA5LCAxLjMxMjcsIDEuNjM5MjkiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTA2NDI2LCAwLjEyNjExOSwgMC4yMzAwMTUsIDAuMzIwNTU2LCAwLjQ0MTE5NywgMC42ODI1MzQsIDAuODMzMjUxIiwgXAotICAgICAgICAgICIwLjExMzg3NCwgMC4xMzM1NTYsIDAuMjM3NDYxLCAwLjMyODAxNywgMC40NDg2NTgsIDAuNjg5OTc2LCAwLjg0MDY5NSIsIFwKLSAgICAgICAgICAiMC4xMjAyNjMsIDAuMTM5OTM0LCAwLjI0Mzg0LCAwLjMzNDM4OSwgMC40NTUwMzMsIDAuNjk2MzUxLCAwLjg0NzA3IiwgXAotICAgICAgICAgICIwLjEyNDgwOSwgMC4xNDQ1MTMsIDAuMjQ4NDA3LCAwLjMzODk0OSwgMC40NTk1OTQsIDAuNzAwOTMzLCAwLjg1MTY1IiwgXAotICAgICAgICAgICIwLjEyODUwOSwgMC4xNDgyMywgMC4yNTIxODIsIDAuMzQyNzA3LCAwLjQ2MzQxNywgMC43MDQ2MjcsIDAuODU1NDAyIiwgXAotICAgICAgICAgICIwLjEzMzU4OSwgMC4xNTMyNTEsIDAuMjU3MjY3LCAwLjM0NzgyLCAwLjQ2ODQ3OSwgMC43MDk3NCwgMC44NjA1NDEiLCBcCi0gICAgICAgICAgIjAuMTM3NDMzLCAwLjE1NzE2NywgMC4yNjExNTUsIDAuMzUxNzE4LCAwLjQ3MjM3MywgMC43MTM2NjMsIDAuODY0Mzg1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3ODYwNywgMC4xMTM5MTIsIDAuMzE5MzAzLCAwLjUwMzMyOCwgMC43NTIwNjUsIDEuMjQ5MTYsIDEuNTU5NjYiLCBcCi0gICAgICAgICAgIjAuMDc4NTk5LCAwLjExMzg5NiwgMC4zMTkzMTIsIDAuNTA0MzY1LCAwLjc1MjAyMiwgMS4yNDksIDEuNTU5NTEiLCBcCi0gICAgICAgICAgIjAuMDc4NTgxLCAwLjExMzg4NywgMC4zMTkzMDksIDAuNTA0MzU0LCAwLjc1MjAxNywgMS4yNDksIDEuNTU5NSIsIFwKLSAgICAgICAgICAiMC4wNzg2NDMsIDAuMTEzODk1LCAwLjMxOTI3NSwgMC41MDM1NDUsIDAuNzUxOTEzLCAxLjI0OTEyLCAxLjU1OTU5IiwgXAotICAgICAgICAgICIwLjA3ODYwOCwgMC4xMTM5NDcsIDAuMzE5MTM5LCAwLjUwNDMyMywgMC43NTIyNzcsIDEuMjQ3MjYsIDEuNTU3NjMiLCBcCi0gICAgICAgICAgIjAuMDc4NTUsIDAuMTEzOTYxLCAwLjMxOTU4NiwgMC41MDQyNjcsIDAuNzUxOTIxLCAxLjI0NzIxLCAxLjU1Njk2IiwgXAotICAgICAgICAgICIwLjA3ODcyMiwgMC4xMTM4MzgsIDAuMzE5Mzc3LCAwLjUwMzY4OCwgMC43NTEyNzgsIDEuMjQ4MywgMS41NTkyMSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTMSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDYwOTU0LCAwLjA3OTcxOCwgMC4xODUzMTksIDAuMjc4NDA4LCAwLjQwMjUwMiwgMC42NTA2NjEsIDAuODA1Nzg1IiwgXAotICAgICAgICAgICIwLjA2ODU1OCwgMC4wODczMjQsIDAuMTkyOTM0LCAwLjI4NjAyOSwgMC40MTAxNzksIDAuNjU4MjcyLCAwLjgxMzM4MiIsIFwKLSAgICAgICAgICAiMC4wNzcxOTEsIDAuMDk1OTY4LCAwLjIwMTU5MiwgMC4yOTQ2NzMsIDAuNDE4NzU1LCAwLjY2NjkxNywgMC44MjIwMTIiLCBcCi0gICAgICAgICAgIjAuMDgzOTM3LCAwLjEwMjczMiwgMC4yMDgzMzMsIDAuMzAxNDU0LCAwLjQyNTQ3MSwgMC42NzM2MjUsIDAuODI4NzAyIiwgXAotICAgICAgICAgICIwLjA4OTM0MSwgMC4xMDgyMSwgMC4yMTM3ODgsIDAuMzA2OTExLCAwLjQzMDk0OSwgMC42NzkxMzksIDAuODM0MTc1IiwgXAotICAgICAgICAgICIwLjA5NjQ2OSwgMC4xMTUzODEsIDAuMjIxMDA0LCAwLjMxNDAzNywgMC40MzgxNDcsIDAuNjg2MjU1LCAwLjg0MTM0MiIsIFwKLSAgICAgICAgICAiMC4xMDE3MTIsIDAuMTIwNjU3LCAwLjIyNjI2OCwgMC4zMTkzNTUsIDAuNDQzNDY5LCAwLjY5MTYwNSwgMC44NDY3NDYiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDczMzE3LCAwLjExMTUyNSwgMC4zMzIxMywgMC41MjgzMzksIDAuNzg5MDgxLCAxLjMxMTE3LCAxLjYzNjc1IiwgXAotICAgICAgICAgICIwLjA3MzM0LCAwLjExMTQ5NCwgMC4zMzIwOTYsIDAuNTI4MzE5LCAwLjc4OTc1NCwgMS4zMTEzMiwgMS42Mzc1IiwgXAotICAgICAgICAgICIwLjA3Mzc1OSwgMC4xMTE2ODEsIDAuMzMyNDExLCAwLjUyODI2OSwgMC43ODk2MzcsIDEuMzExMjMsIDEuNjM3NTgiLCBcCi0gICAgICAgICAgIjAuMDc0NTIzLCAwLjExMjI4OCwgMC4zMzI0NzgsIDAuNTI3NTcyLCAwLjc4ODg1NiwgMS4zMTE0MiwgMS42Mzc0OSIsIFwKLSAgICAgICAgICAiMC4wNzUyNzEsIDAuMTEyODE4LCAwLjMzMjYyNywgMC41Mjc2MTEsIDAuNzg5NjI1LCAxLjMxMDgyLCAxLjYzNzgiLCBcCi0gICAgICAgICAgIjAuMDc2NTI1LCAwLjExMzY0OSwgMC4zMzIzOTMsIDAuNTI4NTAyLCAwLjc4ODg4NywgMS4zMTI0NiwgMS42Mzc5NiIsIFwKLSAgICAgICAgICAiMC4wNzc2MjEsIDAuMTE0NTM1LCAwLjMzMjY0NCwgMC41Mjg2NSwgMC43ODk4NjEsIDEuMzExMDUsIDEuNjM5MTkiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDcwMzc4LCAwLjA4OTk0NywgMC4xOTM2ODQsIDAuMjg0MTc1LCAwLjQwNDg0LCAwLjY0NjEwNSwgMC43OTc0MjgiLCBcCi0gICAgICAgICAgIjAuMDc3NjQzLCAwLjA5NzIyOCwgMC4yMDA5NSwgMC4yOTE0NjcsIDAuNDEyMDcxLCAwLjY1MzM4LCAwLjgwNDM5MiIsIFwKLSAgICAgICAgICAiMC4wODY1ODYsIDAuMTA2MTU1LCAwLjIwOTg4MywgMC4zMDAzODUsIDAuNDIxMDE2LCAwLjY2MjM0OCwgMC44MTMyNTciLCBcCi0gICAgICAgICAgIjAuMDk0MDQ2LCAwLjExMzY2NCwgMC4yMTc0MTMsIDAuMzA3OTE0LCAwLjQyODU2OSwgMC42Njk5OTksIDAuODIwNzg1IiwgXAotICAgICAgICAgICIwLjEwMDM0MywgMC4xMTk5NzEsIDAuMjIzODE5LCAwLjMxNDMxOSwgMC40MzQ5NCwgMC42NzYyNTQsIDAuODI3MjQ4IiwgXAotICAgICAgICAgICIwLjEwODk0NywgMC4xMjg2NTUsIDAuMjMyNywgMC4zMjMxODMsIDAuNDQzODkzLCAwLjY4NTA5LCAwLjgzNjM4NiIsIFwKLSAgICAgICAgICAiMC4xMTU1NDksIDAuMTM1MTUxLCAwLjIzOTQ3OSwgMC4zMjk5NzUsIDAuNDUwNTA2LCAwLjY5MTgwMiwgMC44NDI3MTciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc3MzExLCAwLjExMjk4MiwgMC4zMTkwOTcsIDAuNTA0MDcyLCAwLjc1MDY0MywgMS4yNDg5OCwgMS41NjI0NSIsIFwKLSAgICAgICAgICAiMC4wNzcxNDEsIDAuMTEyNzk2LCAwLjMxODg0NiwgMC41MDQxNDksIDAuNzUxNzQ5LCAxLjI0ODYzLCAxLjU1NjgyIiwgXAotICAgICAgICAgICIwLjA3NzAxLCAwLjExMjY5MSwgMC4zMTg4MzMsIDAuNTA0MDM1LCAwLjc1MTY0MiwgMS4yNDg2OCwgMS41NTU5NCIsIFwKLSAgICAgICAgICAiMC4wNzczMjgsIDAuMTEyOTg1LCAwLjMxOTIwMywgMC41MDQwNzgsIDAuNzUyMDcsIDEuMjQ4NjMsIDEuNTU2ODUiLCBcCi0gICAgICAgICAgIjAuMDc3ODM0LCAwLjExMzM0OSwgMC4zMTkxNDksIDAuNTA0Mjg1LCAwLjc1MTg2OSwgMS4yNDksIDEuNTU3NzYiLCBcCi0gICAgICAgICAgIjAuMDc4NjA2LCAwLjExMzgyNywgMC4zMTk0MTMsIDAuNTA0NDY2LCAwLjc1MTM2MywgMS4yNDkwMSwgMS41NTczNyIsIFwKLSAgICAgICAgICAiMC4wNzkyMzIsIDAuMTE0NDU1LCAwLjMxOTgzNSwgMC41MDQ3MDYsIDAuNzUyMjI1LCAxLjI0ODY3LCAxLjU1OTM5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlMxIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzI5NjUsIDAuMDkyNTM1LCAwLjE5ODU0NywgMC4yOTE2NTQsIDAuNDE1ODUzLCAwLjY2NDEyNywgMC44MTk0NjYiLCBcCi0gICAgICAgICAgIjAuMDgxMjAyLCAwLjEwMDc4LCAwLjIwNjc5MywgMC4yOTk4OCwgMC40MjQwODYsIDAuNjcyMzA5LCAwLjgyODE2OCIsIFwKLSAgICAgICAgICAiMC4wODk2NTUsIDAuMTA5MjA4LCAwLjIxNTIyNywgMC4zMDgzMzUsIDAuNDMyNTUxLCAwLjY4MDk5MSwgMC44MzY1MiIsIFwKLSAgICAgICAgICAiMC4wOTUxNzgsIDAuMTE0NzEyLCAwLjIyMDczMywgMC4zMTM4NDEsIDAuNDM4MDEyLCAwLjY4NjI4OSwgMC44NDIxNiIsIFwKLSAgICAgICAgICAiMC4wOTk0NTMsIDAuMTE4ODczLCAwLjIyNDkxMiwgMC4zMTc5NzcsIDAuNDQyMTM0LCAwLjY5MDM4NiwgMC44NDYyMTgiLCBcCi0gICAgICAgICAgIjAuMTA0OTQ2LCAwLjEyNDM4NSwgMC4yMzAyNzgsIDAuMzIzMzUsIDAuNDQ3NjIyLCAwLjY5NTc0MywgMC44NTE1MiIsIFwKLSAgICAgICAgICAiMC4xMDg4ODksIDAuMTI4MywgMC4yMzQxNjIsIDAuMzI3MzEsIDAuNDUxNTIsIDAuNjk5ODgsIDAuODU0ODIyIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3ODQxMywgMC4xMTU5NjIsIDAuMzMzOTU2LCAwLjUyOTI3OSwgMC43ODg3NTksIDEuMzEwNTQsIDEuNjM4MzIiLCBcCi0gICAgICAgICAgIjAuMDc4MzY3LCAwLjExNTkxMiwgMC4zMzM5MDUsIDAuNTI5MDg5LCAwLjc4ODg3LCAxLjMxMDg3LCAxLjYzNzMiLCBcCi0gICAgICAgICAgIjAuMDc4MTY0LCAwLjExNTc4OSwgMC4zMzM5MDgsIDAuNTI5MjU4LCAwLjc4ODczMSwgMS4zMTEyMSwgMS42Mzc5NiIsIFwKLSAgICAgICAgICAiMC4wNzc5ODIsIDAuMTE1NjI2LCAwLjMzMzkzLCAwLjUyOTE3NCwgMC43ODg5MTcsIDEuMzEwODksIDEuNjM4MDUiLCBcCi0gICAgICAgICAgIjAuMDc3ODUyLCAwLjExNTUxNywgMC4zMzM4MjksIDAuNTI5MDA4LCAwLjc5MDMyNiwgMS4zMTA5MSwgMS42MzcyOCIsIFwKLSAgICAgICAgICAiMC4wNzc5NDYsIDAuMTE1MzUsIDAuMzMzNjkzLCAwLjUyOTA2NCwgMC43ODkyMjUsIDEuMzEyNjEsIDEuNjM3NTQiLCBcCi0gICAgICAgICAgIjAuMDc4LCAwLjExNTU1NiwgMC4zMzM2MDUsIDAuNTI4MDg4LCAwLjc5MDE2OCwgMS4zMTE5OCwgMS42MzcxNiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzYxMjEsIDAuMDk0NDk0LCAwLjE5NzIyNywgMC4yODc3NzUsIDAuNDA4NDM4LCAwLjY0OTYyNSwgMC44MDA0MTEiLCBcCi0gICAgICAgICAgIjAuMDgzNzU0LCAwLjEwMjE0MiwgMC4yMDQ4NywgMC4yOTUzOTYsIDAuNDE2MDIzLCAwLjY1NzI0NSwgMC44MDgwMTUiLCBcCi0gICAgICAgICAgIjAuMDkwNDAyLCAwLjEwODc5NSwgMC4yMTE1MjgsIDAuMzAyMDQ4LCAwLjQyMjY2OSwgMC42NjM4OTksIDAuODE0Njk5IiwgXAotICAgICAgICAgICIwLjA5NTMxLCAwLjExMzcyNiwgMC4yMTY0NywgMC4zMDY5NzEsIDAuNDI3NjYzLCAwLjY2ODg1LCAwLjgxOTYxNCIsIFwKLSAgICAgICAgICAiMC4wOTkyMjcsIDAuMTE3NjQ0LCAwLjIyMDQ0NywgMC4zMTA5MzcsIDAuNDMxNTYsIDAuNjcyODk2LCAwLjgyMzYyOSIsIFwKLSAgICAgICAgICAiMC4xMDQ0MzMsIDAuMTIyODUsIDAuMjI1Njc4LCAwLjMxNjE3NiwgMC40MzY4NTMsIDAuNjc4MDg2LCAwLjgyODg1NSIsIFwKLSAgICAgICAgICAiMC4xMDg1NDIsIDAuMTI2ODgxLCAwLjIyOTc2LCAwLjMyMDI3OSwgMC40NDA4NjQsIDAuNjgyMjI0LCAwLjgzMjkzMSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzA4OTksIDAuMTA2OTc3LCAwLjMxNjM3OSwgMC41MDIwMDUsIDAuNzUxMjA4LCAxLjI0ODI0LCAxLjU1OTE0IiwgXAotICAgICAgICAgICIwLjA3MDg4OSwgMC4xMDY5NjMsIDAuMzE1OTg5LCAwLjUwMjU1MywgMC43NTExMDQsIDEuMjQ3OTUsIDEuNTU3MTgiLCBcCi0gICAgICAgICAgIjAuMDcwOTIsIDAuMTA2OTgxLCAwLjMxNjM2NCwgMC41MDE2OTMsIDAuNzUxMDczLCAxLjI0ODEzLCAxLjU1OTE1IiwgXAotICAgICAgICAgICIwLjA3MDk1NiwgMC4xMDcwNTIsIDAuMzE2MzUyLCAwLjUwMjQ3NiwgMC43NDk4MiwgMS4yNDgwNywgMS41NTg3MyIsIFwKLSAgICAgICAgICAiMC4wNzA4OTgsIDAuMTA3MDU1LCAwLjMxNTk0NiwgMC41MDIwMywgMC43NTA4OTYsIDEuMjQ1ODMsIDEuNTU5MjMiLCBcCi0gICAgICAgICAgIjAuMDcxMDM2LCAwLjEwNjkxOCwgMC4zMTYwMjIsIDAuNTAxNzg2LCAwLjc1MDM3OCwgMS4yNDYyMiwgMS41NTg3NSIsIFwKLSAgICAgICAgICAiMC4wNzA5NTUsIDAuMTA3MTU2LCAwLjMxNTg3NCwgMC41MDE4NywgMC43NTAzNDQsIDEuMjQ3NTYsIDEuNTU4NDQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI4ODMsIDAuMDAyODksIDAuMDAyOTA0LCAwLjAwMjkwOCwgMC4wMDI5MTEsIDAuMDAyOTEyLCAwLjAwMjkxMyIsIFwKLSAgICAgICAgICAiMC4wMDI4NjQsIDAuMDAyODcsIDAuMDAyODg1LCAwLjAwMjg4OSwgMC4wMDI4OTIsIDAuMDAyODk1LCAwLjAwMjg5NCIsIFwKLSAgICAgICAgICAiMC4wMDI4NzQsIDAuMDAyODgxLCAwLjAwMjg5OCwgMC4wMDI5MDMsIDAuMDAyOTA1LCAwLjAwMjkwOCwgMC4wMDI5MDkiLCBcCi0gICAgICAgICAgIjAuMDAyOTEzLCAwLjAwMjkxOCwgMC4wMDI5MzQsIDAuMDAyOTM5LCAwLjAwMjk0MiwgMC4wMDI5NDUsIDAuMDAyOTQ1IiwgXAotICAgICAgICAgICIwLjAwMjk2OSwgMC4wMDI5NzEsIDAuMDAyOTg1LCAwLjAwMjk4OSwgMC4wMDI5OTMsIDAuMDAyOTk2LCAwLjAwMjk5NyIsIFwKLSAgICAgICAgICAiMC4wMDMwODEsIDAuMDAzMDgsIDAuMDAzMDg5LCAwLjAwMzA5MywgMC4wMDMwOTgsIDAuMDAzMTAxLCAwLjAwMzEwMSIsIFwKLSAgICAgICAgICAiMC4wMDMyLCAwLjAwMzE5NCwgMC4wMDMxOTgsIDAuMDAzMjAyLCAwLjAwMzIwNiwgMC4wMDMyMDcsIDAuMDAzMjA5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1MjM3LCAwLjAwNTI0NSwgMC4wMDUyNjIsIDAuMDA1MjY2LCAwLjAwNTI2OSwgMC4wMDUyNzEsIDAuMDA1MjcyIiwgXAotICAgICAgICAgICIwLjAwNTIyNCwgMC4wMDUyMzIsIDAuMDA1MjQ5LCAwLjAwNTI1NCwgMC4wMDUyNTcsIDAuMDA1MjYsIDAuMDA1MjYiLCBcCi0gICAgICAgICAgIjAuMDA1MjM1LCAwLjAwNTI0MiwgMC4wMDUyNjEsIDAuMDA1MjY2LCAwLjAwNTI2OSwgMC4wMDUyNzIsIDAuMDA1MjczIiwgXAotICAgICAgICAgICIwLjAwNTI3MywgMC4wMDUyNzcsIDAuMDA1MjkzLCAwLjAwNTI5OCwgMC4wMDUzMDIsIDAuMDA1MzA0LCAwLjAwNTMwNSIsIFwKLSAgICAgICAgICAiMC4wMDUzMjEsIDAuMDA1MzIzLCAwLjAwNTMzOSwgMC4wMDUzNDQsIDAuMDA1MzQ4LCAwLjAwNTM1MSwgMC4wMDUzNTIiLCBcCi0gICAgICAgICAgIjAuMDA1NDI4LCAwLjAwNTQyNiwgMC4wMDU0MzgsIDAuMDA1NDQyLCAwLjAwNTQ0NywgMC4wMDU0NSwgMC4wMDU0NTEiLCBcCi0gICAgICAgICAgIjAuMDA1NTQsIDAuMDA1NTMzLCAwLjAwNTU0LCAwLjAwNTU0NCwgMC4wMDU1NTUsIDAuMDA1NTUxLCAwLjAwNTU1MiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjY3NSwgMC4wMDI2ODEsIDAuMDAyNjk2LCAwLjAwMjY5OSwgMC4wMDI3MDIsIDAuMDAyNzA0LCAwLjAwMjcwNCIsIFwKLSAgICAgICAgICAiMC4wMDI2NTQsIDAuMDAyNjYxLCAwLjAwMjY3NywgMC4wMDI2OCwgMC4wMDI2ODIsIDAuMDAyNjg0LCAwLjAwMjY4NSIsIFwKLSAgICAgICAgICAiMC4wMDI2NjEsIDAuMDAyNjY4LCAwLjAwMjY4NCwgMC4wMDI2OSwgMC4wMDI2OTIsIDAuMDAyNjk0LCAwLjAwMjY5NiIsIFwKLSAgICAgICAgICAiMC4wMDI2OTYsIDAuMDAyNzAxLCAwLjAwMjcxNywgMC4wMDI3MjIsIDAuMDAyNzI1LCAwLjAwMjcyOCwgMC4wMDI3MjkiLCBcCi0gICAgICAgICAgIjAuMDAyNzU3LCAwLjAwMjc1NywgMC4wMDI3NjgsIDAuMDAyNzcyLCAwLjAwMjc3NCwgMC4wMDI3NzcsIDAuMDAyNzc4IiwgXAotICAgICAgICAgICIwLjAwMjg1NywgMC4wMDI4NTYsIDAuMDAyODY1LCAwLjAwMjg3LCAwLjAwMjg3MywgMC4wMDI4NzcsIDAuMDAyODc3IiwgXAotICAgICAgICAgICIwLjAwMjk3MSwgMC4wMDI5NjYsIDAuMDAyOTcsIDAuMDAyOTc0LCAwLjAwMjk3OCwgMC4wMDI5OCwgMC4wMDI5OCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNTU1MSwgMC4wMDU1NTgsIDAuMDA1NTc0LCAwLjAwNTU3OCwgMC4wMDU1ODEsIDAuMDA1NTgzLCAwLjAwNTU4NCIsIFwKLSAgICAgICAgICAiMC4wMDU1MzUsIDAuMDA1NTQyLCAwLjAwNTU2MSwgMC4wMDU1NjYsIDAuMDA1NTY5LCAwLjAwNTU3MSwgMC4wMDU1NzIiLCBcCi0gICAgICAgICAgIjAuMDA1NTQ0LCAwLjAwNTU1MSwgMC4wMDU1NywgMC4wMDU1NzUsIDAuMDA1NTc4LCAwLjAwNTU4MSwgMC4wMDU1ODIiLCBcCi0gICAgICAgICAgIjAuMDA1NTgsIDAuMDA1NTg0LCAwLjAwNTYsIDAuMDA1NjA1LCAwLjAwNTYwOCwgMC4wMDU2MTEsIDAuMDA1NjEyIiwgXAotICAgICAgICAgICIwLjAwNTYzNSwgMC4wMDU2MzUsIDAuMDA1NjQ3LCAwLjAwNTY1MSwgMC4wMDU2NTQsIDAuMDA1NjU3LCAwLjAwNTY1OCIsIFwKLSAgICAgICAgICAiMC4wMDU3MzEsIDAuMDA1NzI5LCAwLjAwNTc0LCAwLjAwNTc0NSwgMC4wMDU3NDgsIDAuMDA1NzUxLCAwLjAwNTc1MiIsIFwKLSAgICAgICAgICAiMC4wMDU4MzcsIDAuMDA1ODMzLCAwLjAwNTgzOCwgMC4wMDU4NDMsIDAuMDA1ODQ2LCAwLjAwNTg1LCAwLjAwNTg1MSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTkwMywgMC4wMDE5MDMsIDAuMDAxOTAyLCAwLjAwMTkwMSwgMC4wMDE5MDIsIDAuMDAxOTAxLCAwLjAwMTkwMSIsIFwKLSAgICAgICAgICAiMC4wMDE4NzgsIDAuMDAxODc5LCAwLjAwMTg3OSwgMC4wMDE4NzksIDAuMDAxODgxLCAwLjAwMTg3OSwgMC4wMDE4NzkiLCBcCi0gICAgICAgICAgIjAuMDAxODk4LCAwLjAwMTg5OSwgMC4wMDE5LCAwLjAwMTg5OSwgMC4wMDE4OTksIDAuMDAxODk5LCAwLjAwMTg5OCIsIFwKLSAgICAgICAgICAiMC4wMDE5NDQsIDAuMDAxOTQ0LCAwLjAwMTk0NCwgMC4wMDE5NDMsIDAuMDAxOTQ0LCAwLjAwMTk0MywgMC4wMDE5NDMiLCBcCi0gICAgICAgICAgIjAuMDAyMDEzLCAwLjAwMjAxLCAwLjAwMjAwOSwgMC4wMDIwMDcsIDAuMDAyMDA4LCAwLjAwMjAwNywgMC4wMDIwMDYiLCBcCi0gICAgICAgICAgIjAuMDAyMTQ0LCAwLjAwMjE0LCAwLjAwMjEzNSwgMC4wMDIxMzMsIDAuMDAyMTMyLCAwLjAwMjEzMiwgMC4wMDIxMzEiLCBcCi0gICAgICAgICAgIjAuMDAyMjczLCAwLjAwMjI2NywgMC4wMDIyNTgsIDAuMDAyMjU2LCAwLjAwMjI1NywgMC4wMDIyNTUsIDAuMDAyMjUzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzNDcyLCAwLjAwMzQ3NywgMC4wMDM0ODIsIDAuMDAzNDgzLCAwLjAwMzQ4MywgMC4wMDM0ODQsIDAuMDAzNDg0IiwgXAotICAgICAgICAgICIwLjAwMzQ1MywgMC4wMDM0NTksIDAuMDAzNDY2LCAwLjAwMzQ2OCwgMC4wMDM0NjksIDAuMDAzNDY5LCAwLjAwMzQ3IiwgXAotICAgICAgICAgICIwLjAwMzQ2OSwgMC4wMDM0NzcsIDAuMDAzNDg0LCAwLjAwMzQ4NiwgMC4wMDM0ODcsIDAuMDAzNDg3LCAwLjAwMzQ4NyIsIFwKLSAgICAgICAgICAiMC4wMDM1MTIsIDAuMDAzNTE1LCAwLjAwMzUyMiwgMC4wMDM1MjMsIDAuMDAzNTI0LCAwLjAwMzUyNCwgMC4wMDM1MjUiLCBcCi0gICAgICAgICAgIjAuMDAzNTczLCAwLjAwMzU3OCwgMC4wMDM1OCwgMC4wMDM1ODEsIDAuMDAzNTgxLCAwLjAwMzU4MiwgMC4wMDM1ODIiLCBcCi0gICAgICAgICAgIjAuMDAzNjgzLCAwLjAwMzY4NywgMC4wMDM2OTMsIDAuMDAzNjk0LCAwLjAwMzY5NSwgMC4wMDM2OTUsIDAuMDAzNjk2IiwgXAotICAgICAgICAgICIwLjAwMzgzMSwgMC4wMDM4MjUsIDAuMDAzODE5LCAwLjAwMzgxOCwgMC4wMDM4MTgsIDAuMDAzODE3LCAwLjAwMzgxNyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlMwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDUzMTQsIDAuMDA1MzIsIDAuMDA1MzM4LCAwLjAwNTMzOCwgMC4wMDUzNDUsIDAuMDA1MzQ3LCAwLjAwNTM0NyIsIFwKLSAgICAgICAgICAiMC4wMDUzMjMsIDAuMDA1MzMsIDAuMDA1MzQ2LCAwLjAwNTM1LCAwLjAwNTM1MSwgMC4wMDUzNTUsIDAuMDA1MzU1IiwgXAotICAgICAgICAgICIwLjAwNTQwNywgMC4wMDU0MTQsIDAuMDA1NDMsIDAuMDA1NDM1LCAwLjAwNTQzNywgMC4wMDU0NCwgMC4wMDU0NCIsIFwKLSAgICAgICAgICAiMC4wMDU1MjMsIDAuMDA1NTMsIDAuMDA1NTQ2LCAwLjAwNTU1LCAwLjAwNTU1MiwgMC4wMDU1NTUsIDAuMDA1NTU1IiwgXAotICAgICAgICAgICIwLjAwNTY4MiwgMC4wMDU2NTMsIDAuMDA1NjcsIDAuMDA1Njc0LCAwLjAwNTY3NywgMC4wMDU2OCwgMC4wMDU2OCIsIFwKLSAgICAgICAgICAiMC4wMDU5LCAwLjAwNTkwNiwgMC4wMDU5MiwgMC4wMDU5MjMsIDAuMDA1OTI4LCAwLjAwNTkzLCAwLjAwNTkyOSIsIFwKLSAgICAgICAgICAiMC4wMDYwMzYsIDAuMDA2MDc3LCAwLjAwNjA4MywgMC4wMDYwODYsIDAuMDA2MDksIDAuMDA2MDkzLCAwLjAwNjA5MiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNTAzMSwgMC4wMDUwMzgsIDAuMDA1MDU2LCAwLjAwNTA2MSwgMC4wMDUwNjQsIDAuMDA1MDY3LCAwLjAwNTA2NyIsIFwKLSAgICAgICAgICAiMC4wMDUwNSwgMC4wMDUwNTcsIDAuMDA1MDc2LCAwLjAwNTA4LCAwLjAwNTA4NCwgMC4wMDUwODYsIDAuMDA1MDg3IiwgXAotICAgICAgICAgICIwLjAwNTEyNiwgMC4wMDUxMzQsIDAuMDA1MTUzLCAwLjAwNTE1OCwgMC4wMDUxNjEsIDAuMDA1MTY0LCAwLjAwNTE2NSIsIFwKLSAgICAgICAgICAiMC4wMDUyNDgsIDAuMDA1MjU2LCAwLjAwNTI3NCwgMC4wMDUyNzgsIDAuMDA1MjgxLCAwLjAwNTI4NCwgMC4wMDUyODUiLCBcCi0gICAgICAgICAgIjAuMDA1NDA1LCAwLjAwNTQxNCwgMC4wMDU0MzIsIDAuMDA1NDM3LCAwLjAwNTQ0MSwgMC4wMDU0NDMsIDAuMDA1NDQ0IiwgXAotICAgICAgICAgICIwLjAwNTYyMywgMC4wMDU2MzYsIDAuMDA1NjU1LCAwLjAwNTY1NSwgMC4wMDU2NjMsIDAuMDA1NjY2LCAwLjAwNTY2MiIsIFwKLSAgICAgICAgICAiMC4wMDU3OTgsIDAuMDA1ODA0LCAwLjAwNTgyMywgMC4wMDU4MjksIDAuMDA1ODMzLCAwLjAwNTgzNSwgMC4wMDU4MzYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTMSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0Nzc5LCAwLjAwNDc4OCwgMC4wMDQ4MDMsIDAuMDA0ODA4LCAwLjAwNDgwOSwgMC4wMDQ4MTEsIDAuMDA0ODEyIiwgXAotICAgICAgICAgICIwLjAwNDg3MywgMC4wMDQ4ODIsIDAuMDA0ODk5LCAwLjAwNDkwMywgMC4wMDQ5MDUsIDAuMDA0OTA3LCAwLjAwNDkwOCIsIFwKLSAgICAgICAgICAiMC4wMDUwMzQsIDAuMDA1MDQzLCAwLjAwNTA2MSwgMC4wMDUwNjYsIDAuMDA1MDY5LCAwLjAwNTA3MSwgMC4wMDUwNzIiLCBcCi0gICAgICAgICAgIjAuMDA1MjI0LCAwLjAwNTIzMywgMC4wMDUyNTIsIDAuMDA1MjU1LCAwLjAwNTI2LCAwLjAwNTI2LCAwLjAwNTI2MSIsIFwKLSAgICAgICAgICAiMC4wMDU0MjIsIDAuMDA1NDMxLCAwLjAwNTQ0OSwgMC4wMDU0NSwgMC4wMDU0NTcsIDAuMDA1NDYsIDAuMDA1NDYxIiwgXAotICAgICAgICAgICIwLjAwNTc1OSwgMC4wMDU3NjYsIDAuMDA1Nzg0LCAwLjAwNTc4MywgMC4wMDU3OTQsIDAuMDA1Nzg4LCAwLjAwNTc5NyIsIFwKLSAgICAgICAgICAiMC4wMDYwNTIsIDAuMDA2MDQ5LCAwLjAwNjA3NywgMC4wMDYwOCwgMC4wMDYwODUsIDAuMDA2MDg5LCAwLjAwNjA5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzMDE3LCAwLjAwMzAyNiwgMC4wMDMwNCwgMC4wMDMwNDMsIDAuMDAzMDQ1LCAwLjAwMzA0NywgMC4wMDMwNDciLCBcCi0gICAgICAgICAgIjAuMDAzMDI0LCAwLjAwMzAzMiwgMC4wMDMwNDYsIDAuMDAzMDQ5LCAwLjAwMzA1MSwgMC4wMDMwNTMsIDAuMDAzMDUzIiwgXAotICAgICAgICAgICIwLjAwMzExMSwgMC4wMDMxMTksIDAuMDAzMTMzLCAwLjAwMzEzNiwgMC4wMDMxMzgsIDAuMDAzMTM5LCAwLjAwMzE0IiwgXAotICAgICAgICAgICIwLjAwMzI0LCAwLjAwMzI0OSwgMC4wMDMyNjEsIDAuMDAzMjY0LCAwLjAwMzI2NSwgMC4wMDMyNjcsIDAuMDAzMjY4IiwgXAotICAgICAgICAgICIwLjAwMzM4OCwgMC4wMDMzOTUsIDAuMDAzNDA3LCAwLjAwMzQxLCAwLjAwMzQxMiwgMC4wMDM0MTMsIDAuMDAzNDE0IiwgXAotICAgICAgICAgICIwLjAwMzU3MywgMC4wMDM1ODIsIDAuMDAzNTk0LCAwLjAwMzU5NywgMC4wMDM1OTksIDAuMDAzNjAyLCAwLjAwMzYwMiIsIFwKLSAgICAgICAgICAiMC4wMDM3NzMsIDAuMDAzNzg3LCAwLjAwMzgsIDAuMDAzODA0LCAwLjAwMzgwNCwgMC4wMDM4MDcsIDAuMDAzOCIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBNWDNYMiAqCi0gKiAtLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoTVgzWDIpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC42NDM5NTY7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDcwMTQ3MzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA3MDA0ODk7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNzAxNDczOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDc5NCwgMC4wMDA3NzEsIDAuMDAwNzkxLCAwLjAwMDg0LCAwLjAwMDkwOCwgMC4wMDEwNDIsIDAuMDAxMTc2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyNzEzLCAwLjAwMjY5NywgMC4wMDI3MTQsIDAuMDAyNzU1LCAwLjAwMjgxOSwgMC4wMDI5NDMsIDAuMDAzMDcxIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2Njg2NzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2Njc3MTY7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjY4Njc7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjg3LCAwLjAwMDI4OSwgMC4wMDAyODksIDAuMDAwMjksIDAuMDAwMjksIDAuMDAwMjkxLCAwLjAwMDI5MSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDMxNCwgMC4wMDAzMDMsIDAuMDAwMzAxLCAwLjAwMDMsIDAuMDAwMywgMC4wMDAyOTksIDAuMDAwMjk5Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihDKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2MjU5NTk7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjI0NjMxOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDYyNTk1OTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyODgsIDAuMDAwMjksIDAuMDAwMjksIDAuMDAwMjksIDAuMDAwMjkxLCAwLjAwMDI5MSwgMC4wMDAyOTEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAzMTUsIDAuMDAwMzAzLCAwLjAwMDMwMiwgMC4wMDAzMDEsIDAuMDAwMywgMC4wMDAyOTksIDAuMDAwMjk5Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxMjgzODI7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxMjgzNTc7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxMjgzODI7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjE0LCAwLjAwMDIzNSwgMC4wMDAzMTQsIDAuMDAwNDI5LCAwLjAwMDU1OSwgMC4wMDA4MjksIDAuMDAxMDM3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyNDA5LCAwLjAwMjQzMSwgMC4wMDI1MTEsIDAuMDAyNjEyLCAwLjAwMjczOSwgMC4wMDI5NTgsIDAuMDAzMTUyIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTMSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxMjY3MzY7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxMjY3MzY7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxMjY3MzY7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjMsIDAuMDAwMjQ5LCAwLjAwMDM1NSwgMC4wMDA0NDQsIDAuMDAwNTc1LCAwLjAwMDg1MywgMC4wMDEwNTgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDIxOTUsIDAuMDAyMjA4LCAwLjAwMjI5NCwgMC4wMDIzOTksIDAuMDAyNTIyLCAwLjAwMjczOSwgMC4wMDI5MzciKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC42NTg0MzU7Ci0gICAgZnVuY3Rpb24gOiAiKChTMSBDKSArICghUzEgKChTMCBCKSArICghUzAgQSkpKSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4NTYyMSwgMC4xNjg3NywgMC4yMzA2NzIsIDAuMzA3ODA4LCAwLjM4NDg5NCwgMC40NjE5NywgMC41MzkyMDIiLCBcCi0gICAgICAgICAgIjAuMDkxNzM2LCAwLjE3NDg5LCAwLjIzNjc4NSwgMC4zMTM5MjUsIDAuMzkxMDE0LCAwLjQ2ODA4NSwgMC41NDUzMzIiLCBcCi0gICAgICAgICAgIjAuMDk5NDM4LCAwLjE4MjU4OCwgMC4yNDQ0OTksIDAuMzIxNjQ2LCAwLjM5ODczNCwgMC40NzU4MDgsIDAuNTUzMDUiLCBcCi0gICAgICAgICAgIjAuMTA2NzE1LCAwLjE4OTg4NCwgMC4yNTE3OTQsIDAuMzI4OTEsIDAuNDA2MDAxLCAwLjQ4MzA5MiwgMC41NjAxOTIiLCBcCi0gICAgICAgICAgIjAuMTEzNTE2LCAwLjE5Njc3NiwgMC4yNTg2NTksIDAuMzM1NzkyLCAwLjQxMjg4LCAwLjQ4OTk5NiwgMC41NjcwNDgiLCBcCi0gICAgICAgICAgIjAuMTIyOTcyLCAwLjIwNjU0MiwgMC4yNjg0MjYsIDAuMzQ1NTQ4LCAwLjQyMjY1LCAwLjQ5OTcxMywgMC41NzY4MDIiLCBcCi0gICAgICAgICAgIjAuMTMwMjMyLCAwLjIxNDI2MywgMC4yNzYxNDgsIDAuMzUzMzA5LCAwLjQzMDQ1NSwgMC41MDc0NywgMC41ODQ1MyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTE4NDksIDAuMjA3MjY3LCAwLjMzNDc0MSwgMC40OTYxMDgsIDAuNjU4MDkzLCAwLjgxOTU0OSwgMC45ODE1MjgiLCBcCi0gICAgICAgICAgIjAuMDUxODM3LCAwLjIwNzI2OSwgMC4zMzQ2NDcsIDAuNDk2MTE2LCAwLjY1ODExMiwgMC44MTk1MTUsIDAuOTgxNTA5IiwgXAotICAgICAgICAgICIwLjA1MTc3MywgMC4yMDcyNjcsIDAuMzM0NjMyLCAwLjQ5NjEzOCwgMC42NTgwOTIsIDAuODE5NTIyLCAwLjk4MTUwMSIsIFwKLSAgICAgICAgICAiMC4wNTIwOTcsIDAuMjA3MzE4LCAwLjMzNDcwNCwgMC40OTYxMzUsIDAuNjU4MDk4LCAwLjgyMDU2NywgMC45ODE3NTMiLCBcCi0gICAgICAgICAgIjAuMDUyNTk0LCAwLjIwNzU0NywgMC4zMzQ2NiwgMC40OTYxNzUsIDAuNjU4MTA2LCAwLjgyMDQ1NCwgMC45ODI4OTEiLCBcCi0gICAgICAgICAgIjAuMDUzODA3LCAwLjIwNzk2LCAwLjMzNTExNSwgMC40OTU3OSwgMC42NTgxOTUsIDAuODIwMzY3LCAwLjk4MjAwMiIsIFwKLSAgICAgICAgICAiMC4wNTQ2NzQsIDAuMjA4NTI1LCAwLjMzNTM2NCwgMC40OTYzODcsIDAuNjU3MzEzLCAwLjgyMDM4LCAwLjk4Mjc4NSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTIyOTcsIDAuMTc2Mjc1LCAwLjIzNzQxNCwgMC4zMTMyNzMsIDAuMzg5MDU4LCAwLjQ2NDg0NywgMC41NDA1OTgiLCBcCi0gICAgICAgICAgIjAuMDk4MTg1LCAwLjE4MjEyOCwgMC4yNDMyMywgMC4zMTkwOTIsIDAuMzk0ODg3LCAwLjQ3MDY1NywgMC41NDY1MDUiLCBcCi0gICAgICAgICAgIjAuMTA1MTA1LCAwLjE4OTEyMiwgMC4yNTAyMjUsIDAuMzI2MDksIDAuNDAxODg5LCAwLjQ3NzY1NywgMC41NTM0MSIsIFwKLSAgICAgICAgICAiMC4xMTE4MjIsIDAuMTk1Nzc0LCAwLjI1Njg4MiwgMC4zMzI3NDQsIDAuNDA4NTQsIDAuNDg0MzQ1LCAwLjU2MDExMiIsIFwKLSAgICAgICAgICAiMC4xMTc5NjgsIDAuMjAxOTg4LCAwLjI2MzEwOCwgMC4zMzg5NjMsIDAuNDE0NzYsIDAuNDkwNTQ2LCAwLjU2NjI5NyIsIFwKLSAgICAgICAgICAiMC4xMjY0NjksIDAuMjEwODYsIDAuMjcxOTczLCAwLjM0Nzg3LCAwLjQyMzY1MiwgMC40OTk0MjUsIDAuNTc1MjQ0IiwgXAotICAgICAgICAgICIwLjEzMjk3NiwgMC4yMTc4MjEsIDAuMjc4OTc0LCAwLjM1NDgzMSwgMC40MzA2MywgMC41MDY0NDcsIDAuNTgyMTgzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1MzM2MiwgMC4yMDM2NjcsIDAuMzI2MTkxLCAwLjQ4MTk5NCwgMC42MzgzNDgsIDAuNzk1MzE2LCAwLjk1MjQyNCIsIFwKLSAgICAgICAgICAiMC4wNTM0MzEsIDAuMjAzNjc3LCAwLjMyNjA0NSwgMC40ODE5OSwgMC42Mzg0MjcsIDAuNzk1MzExLCAwLjk1MDc3IiwgXAotICAgICAgICAgICIwLjA1MzMzLCAwLjIwMzY2MSwgMC4zMjYyMSwgMC40ODE5NzcsIDAuNjM4NDQ3LCAwLjc5NTMxMiwgMC45NTI0IiwgXAotICAgICAgICAgICIwLjA1MzU5MywgMC4yMDM3NDMsIDAuMzI2MDkxLCAwLjQ4MjAwNywgMC42Mzg0MjEsIDAuNzk1NDE0LCAwLjk1MjU1OSIsIFwKLSAgICAgICAgICAiMC4wNTQxMDcsIDAuMjAzODg3LCAwLjMyNjM4MSwgMC40ODIwMDEsIDAuNjM3NzUyLCAwLjc5NTIxNywgMC45NTIyOTEiLCBcCi0gICAgICAgICAgIjAuMDU1MDU1LCAwLjIwNDM1MSwgMC4zMjY5MjIsIDAuNDgyMzI0LCAwLjYzODQ4OCwgMC43OTUyODksIDAuOTUyNjk3IiwgXAotICAgICAgICAgICIwLjA1NjA2LCAwLjIwNDk3NywgMC4zMjcwOTksIDAuNDgyNDU3LCAwLjYzNzk3NCwgMC43OTU2MDEsIDAuOTUxNTQ5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4NTk0NCwgMC4xNjkxMSwgMC4yMzEwMTEsIDAuMzA4MTMzLCAwLjM4NTIxNywgMC40NjI0MDcsIDAuNTM5NDYxIiwgXAotICAgICAgICAgICIwLjA5MjIzNCwgMC4xNzUzODIsIDAuMjM3Mjg4LCAwLjMxNDQyOCwgMC4zOTE1MTgsIDAuNDY4NTg5LCAwLjU0NTg0IiwgXAotICAgICAgICAgICIwLjEwMDA1NiwgMC4xODMyMTIsIDAuMjQ1MTE2LCAwLjMyMjI2MiwgMC4zOTkzNTQsIDAuNDc2NDI2LCAwLjU1MzU4OSIsIFwKLSAgICAgICAgICAiMC4xMDczNTEsIDAuMTkwNTM1LCAwLjI1MjQ0MSwgMC4zMjk1NzMsIDAuNDA2NjYzLCAwLjQ4Mzc1NiwgMC41NjA4NDIiLCBcCi0gICAgICAgICAgIjAuMTE0MSwgMC4xOTc0MDQsIDAuMjU5MjkyLCAwLjMzNjQzOCwgMC40MTM1MzEsIDAuNDkwNTk4LCAwLjU2NzY4NiIsIFwKLSAgICAgICAgICAiMC4xMjM2ODcsIDAuMjA3MzM2LCAwLjI2OTIzNywgMC4zNDYzNzgsIDAuNDIzNDczLCAwLjUwMDUzNSwgMC41Nzc2MjgiLCBcCi0gICAgICAgICAgIjAuMTMwODU3LCAwLjIxNDk1NCwgMC4yNzY4NTUsIDAuMzUzOTc4LCAwLjQzMTA3MywgMC41MDgxOCwgMC41ODUyMiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTE4ODEsIDAuMjA3Mjk1LCAwLjMzNDY0OSwgMC40OTU1NzgsIDAuNjU3Mzg5LCAwLjgxOTE3NiwgMC45ODE2ODUiLCBcCi0gICAgICAgICAgIjAuMDUxODU2LCAwLjIwNzI5MiwgMC4zMzQ3MzYsIDAuNDk2MTI0LCAwLjY1ODA4NCwgMC44MTk0OTcsIDAuOTgxNTE5IiwgXAotICAgICAgICAgICIwLjA1MTgzMywgMC4yMDcyODksIDAuMzM0NjYsIDAuNDk2MTM4LCAwLjY1ODExOCwgMC44MTk0OTcsIDAuOTgxNjEyIiwgXAotICAgICAgICAgICIwLjA1MjE0NCwgMC4yMDcyNCwgMC4zMzQ2MzYsIDAuNDk2MTU4LCAwLjY1ODEyMiwgMC44MjA2MDcsIDAuOTgyMDM0IiwgXAotICAgICAgICAgICIwLjA1MjUxLCAwLjIwNzUyLCAwLjMzNDc4MSwgMC40OTYxNzYsIDAuNjU4MTMzLCAwLjgxOTQ3NSwgMC45ODE5MTMiLCBcCi0gICAgICAgICAgIjAuMDUzNjQ5LCAwLjIwNzk2NCwgMC4zMzUwMzYsIDAuNDk1NzE2LCAwLjY1ODIxNywgMC44MjAzODcsIDAuOTgyIiwgXAotICAgICAgICAgICIwLjA1NDc0NSwgMC4yMDg1NjMsIDAuMzM1MzY3LCAwLjQ5NTk1MSwgMC42NTgyMjksIDAuODIwNDI5LCAwLjk4MjEyNCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTM2MDYsIDAuMTc3NTk2LCAwLjIzODc2OCwgMC4zMTQ2MzQsIDAuMzkwNDE3LCAwLjQ2NjIxMywgMC41NDE5NjgiLCBcCi0gICAgICAgICAgIjAuMDk5MzY2LCAwLjE4MzM2MywgMC4yNDQ0ODEsIDAuMzIwMzU0LCAwLjM5NjE1NywgMC40NzE5MzIsIDAuNTQ3Njk4IiwgXAotICAgICAgICAgICIwLjEwNjIwNCwgMC4xOTAyNzIsIDAuMjUxMzkyLCAwLjMyNzI1NywgMC40MDMwNzMsIDAuNDc4ODQ3LCAwLjU1NDYwNCIsIFwKLSAgICAgICAgICAiMC4xMTI5OTksIDAuMTk3MDAxLCAwLjI1ODExOCwgMC4zMzM5OTMsIDAuNDA5Nzk4LCAwLjQ4NTU3MywgMC41NjEzNTQiLCBcCi0gICAgICAgICAgIjAuMTE5MDY3LCAwLjIwMzE5MSwgMC4yNjQzMTIsIDAuMzQwMTg3LCAwLjQxNTk5MiwgMC40OTE3NjUsIDAuNTY3NTI1IiwgXAotICAgICAgICAgICIwLjEyNzY1NCwgMC4yMTIwNjIsIDAuMjczMjM4LCAwLjM0OTE0LCAwLjQyNDkyMywgMC41MDA3MjEsIDAuNTc2NDczIiwgXAotICAgICAgICAgICIwLjEzNDEzLCAwLjIxOTAxMiwgMC4yODAyMTQsIDAuMzU2MDczLCAwLjQzMTg2NywgMC41MDc2OTIsIDAuNTgzNDMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDUzNDc4LCAwLjIwMzc0NiwgMC4zMjYzNjUsIDAuNDgxNDkyLCAwLjYzODQwNCwgMC43OTUzNzIsIDAuOTUyNDg4IiwgXAotICAgICAgICAgICIwLjA1MzQ2LCAwLjIwMzc2OSwgMC4zMjYxNDYsIDAuNDgyMDY2LCAwLjYzODUsIDAuNzk1Mzc5LCAwLjk1MjQwNSIsIFwKLSAgICAgICAgICAiMC4wNTM0MzMsIDAuMjAzNzQ2LCAwLjMyNjMwNCwgMC40ODE2MjMsIDAuNjM4NTA4LCAwLjc5NTM4NCwgMC45NTI0NzMiLCBcCi0gICAgICAgICAgIjAuMDUzNjQ5LCAwLjIwMzgyOCwgMC4zMjYzMzMsIDAuNDgyMDgzLCAwLjYzODUyNywgMC43OTUzODMsIDAuOTUyNTU1IiwgXAotICAgICAgICAgICIwLjA1NDA4OSwgMC4yMDM5OTQsIDAuMzI2NDE2LCAwLjQ4MjEyOCwgMC42Mzg1NjUsIDAuNzk1NDA5LCAwLjk1MjQ4NCIsIFwKLSAgICAgICAgICAiMC4wNTUwOTEsIDAuMjA0NDIxLCAwLjMyNjgsIDAuNDgyNDE5LCAwLjYzODU1NSwgMC43OTQyNDUsIDAuOTUyNDMiLCBcCi0gICAgICAgICAgIjAuMDU2MDgzLCAwLjIwNTAyLCAwLjMyNzAyNiwgMC40ODI1NDksIDAuNjM4NjUxLCAwLjc5NTY1NSwgMC45NTI2MzEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU3NTkyLCAwLjEzNjQ0NCwgMC4xOTgxNDYsIDAuMjc1MjQ1LCAwLjM1MjM4MSwgMC40MjkzOTIsIDAuNTA2NDE4IiwgXAotICAgICAgICAgICIwLjA2MzkxMywgMC4xNDI3NywgMC4yMDQ0OSwgMC4yODE1ODIsIDAuMzU4NjkzLCAwLjQzNTcxLCAwLjUxMjc1OCIsIFwKLSAgICAgICAgICAiMC4wNzEzNzYsIDAuMTUwMTk4LCAwLjIxMTkxMSwgMC4yODkwMDcsIDAuMzY2MDk4LCAwLjQ0MzEyLCAwLjUyMDE3OCIsIFwKLSAgICAgICAgICAiMC4wNzgwMDMsIDAuMTU2OTgyLCAwLjIxODY5MSwgMC4yOTU3OTcsIDAuMzcyODkxLCAwLjQ0OTg5NSwgMC41MjY5ODUiLCBcCi0gICAgICAgICAgIjAuMDgzNzgsIDAuMTYyOTEyLCAwLjIyNDYwOCwgMC4zMDE3MTksIDAuMzc4Nzk1LCAwLjQ1NTg2NSwgMC41MzI4ODIiLCBcCi0gICAgICAgICAgIjAuMDkxNTczLCAwLjE3MTA5MiwgMC4yMzI3NzQsIDAuMzA5ODczLCAwLjM4NjkyMiwgMC40NjM5ODgsIDAuNTQwOTkzIiwgXAotICAgICAgICAgICIwLjA5NzUyNywgMC4xNzcyMzYsIDAuMjM4OTE1LCAwLjMxNTk3LCAwLjM5MzAyMSwgMC40NzAxMiwgMC41NDcxMzIiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQ0NzQyLCAwLjIwMjA4MSwgMC4zMzE1OTQsIDAuNDkzNTE3LCAwLjY1NTU4NSwgMC44MTkxNjgsIDAuOTgwODk2IiwgXAotICAgICAgICAgICIwLjA0NDY3MSwgMC4yMDIxMzksIDAuMzMxNjcyLCAwLjQ5MzU0MiwgMC42NTY1NjgsIDAuODE4MDg2LCAwLjk4MTAxNCIsIFwKLSAgICAgICAgICAiMC4wNDQ5NjUsIDAuMjAyMzEsIDAuMzMxNjY5LCAwLjQ5Mzk4MiwgMC42NTY1NTUsIDAuODE5MTU5LCAwLjk4MDg0NyIsIFwKLSAgICAgICAgICAiMC4wNDU3OCwgMC4yMDI0MjcsIDAuMzMxNjk0LCAwLjQ5Mzk0MSwgMC42NTY0OTIsIDAuODE5MDk4LCAwLjk4MTc1IiwgXAotICAgICAgICAgICIwLjA0NjY5OSwgMC4yMDI2MTYsIDAuMzMxNDc0LCAwLjQ5MzkzMywgMC42NTU3NDgsIDAuODE5MDcsIDAuOTgxNzM1IiwgXAotICAgICAgICAgICIwLjA0ODAzOCwgMC4yMDMwODIsIDAuMzMxNjk1LCAwLjQ5Mzk4NywgMC42NTU3MzgsIDAuODE3NzMsIDAuOTgwOTA0IiwgXAotICAgICAgICAgICIwLjA0OTIxMiwgMC4yMDMzMzYsIDAuMzMyMDY3LCAwLjQ5Mzk3OSwgMC42NTYzNzMsIDAuODE5MDI5LCAwLjk4MTYxMSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjI2MTgsIDAuMTQwOTg4LCAwLjIwMTY4NSwgMC4yNzc0OTUsIDAuMzUzMjU0LCAwLjQyOTA3MiwgMC41MDQ3OSIsIFwKLSAgICAgICAgICAiMC4wNjg0MzcsIDAuMTQ2ODA1LCAwLjIwNzQ4OSwgMC4yODMyOTMsIDAuMzU5MDc2LCAwLjQzNDksIDAuNTEwNjEzIiwgXAotICAgICAgICAgICIwLjA3NTAwMiwgMC4xNTM0MDgsIDAuMjE0MDk5LCAwLjI4OTg5NywgMC4zNjU2ODksIDAuNDQxNDg4LCAwLjUxNzIxIiwgXAotICAgICAgICAgICIwLjA4MTEzOCwgMC4xNTk2MTUsIDAuMjIwMjkyLCAwLjI5NjA5NywgMC4zNzE4NjYsIDAuNDQ3NjcxLCAwLjUyMzM4MSIsIFwKLSAgICAgICAgICAiMC4wODYzMjMsIDAuMTY1MDM2LCAwLjIyNTcwNSwgMC4zMDE1MDEsIDAuMzc3MjY4LCAwLjQ1MzAzNCwgMC41Mjg3ODUiLCBcCi0gICAgICAgICAgIjAuMDkzMzE5LCAwLjE3MjM5NiwgMC4yMzMwMywgMC4zMDg4MDksIDAuMzg0NTc3LCAwLjQ2MDM1MSwgMC41MzYxMDIiLCBcCi0gICAgICAgICAgIjAuMDk4NzMzLCAwLjE3ODA3MiwgMC4yMzg3MiwgMC4zMTQ1MTgsIDAuMzkwMzE5LCAwLjQ2NjA0MSwgMC41NDE3ODYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQ0ODk3LCAwLjE5Njc0MywgMC4zMjE3NjMsIDAuNDc4NzcyLCAwLjYzNTM5MywgMC43OTM2NTIsIDAuOTUxMDQ0IiwgXAotICAgICAgICAgICIwLjA0NDg1NCwgMC4xOTY3NjksIDAuMzIxNjk3LCAwLjQ3ODY5MSwgMC42MzUzNywgMC43OTIwOTEsIDAuOTUxMDM0IiwgXAotICAgICAgICAgICIwLjA0NTA1LCAwLjE5NjgyLCAwLjMyMTY5LCAwLjQ3ODY5NCwgMC42MzUyOTIsIDAuNzkzNjQ0LCAwLjk1MTAwOCIsIFwKLSAgICAgICAgICAiMC4wNDU2ODMsIDAuMTk2OTczLCAwLjMyMTg2MiwgMC40NzgyMjksIDAuNjM1MzU5LCAwLjc5MzYyNSwgMC45NDk5ODYiLCBcCi0gICAgICAgICAgIjAuMDQ2NzUxLCAwLjE5NzE5OCwgMC4zMjE2NTQsIDAuNDc4Mjk0LCAwLjYzNTk1LCAwLjc5MjY3OSwgMC45NTA5NTciLCBcCi0gICAgICAgICAgIjAuMDQ4MTE0LCAwLjE5NzcyOCwgMC4zMjIxNzksIDAuNDc4ODIsIDAuNjM1OTc2LCAwLjc5Mjc3MSwgMC45NDk5NzYiLCBcCi0gICAgICAgICAgIjAuMDQ4ODEyLCAwLjE5ODE0MSwgMC4zMjIwODcsIDAuNDc4NTE2LCAwLjYzNTI2MSwgMC43OTMzNDYsIDAuOTUwODk4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlMwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODE0NTIsIDAuMTY0NjQsIDAuMjI2NTMyLCAwLjMwMzY3MSwgMC4zODA4MDEsIDAuNDU3OTI5LCAwLjUzNDk4NyIsIFwKLSAgICAgICAgICAiMC4wODg5NTUsIDAuMTcyMTI2LCAwLjIzNDA0MywgMC4zMTExODMsIDAuMzg4MjcyLCAwLjQ2NTM0MywgMC41NDI1OTQiLCBcCi0gICAgICAgICAgIjAuMDk4NTU3LCAwLjE4MTcyNSwgMC4yNDM2MzQsIDAuMzIwNzY0LCAwLjM5Nzg1MSwgMC40NzQ5NjYsIDAuNTUyMDg0IiwgXAotICAgICAgICAgICIwLjEwNzc4MiwgMC4xOTA5NDgsIDAuMjUyODU4LCAwLjMyOTk3OSwgMC40MDcxMTcsIDAuNDg0MjE2LCAwLjU2MTI0NiIsIFwKLSAgICAgICAgICAiMC4xMTYwOSwgMC4xOTk0MDksIDAuMjYxMzAzLCAwLjMzODQ0OCwgMC40MTU1MzUsIDAuNDkyNjEyLCAwLjU2OTc0OSIsIFwKLSAgICAgICAgICAiMC4xMjc2NCwgMC4yMTEzMTYsIDAuMjczMjk1LCAwLjM1MDQzNCwgMC40MjczODUsIDAuNTA0NDc2LCAwLjU4MTU4NCIsIFwKLSAgICAgICAgICAiMC4xMzYyOTEsIDAuMjIwNTM4LCAwLjI4MjM4NywgMC4zNTk2MDQsIDAuNDM2NzUsIDAuNTEzODA4LCAwLjU5MDczMyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTE4MjYsIDAuMjA3Mjc0LCAwLjMzNDY0MiwgMC40OTU0NjEsIDAuNjU4MzEyLCAwLjgxOTE4MSwgMC45ODE2MTEiLCBcCi0gICAgICAgICAgIjAuMDUxNzkzLCAwLjIwNzI4NSwgMC4zMzQ3MzksIDAuNDk2MTU0LCAwLjY1ODExNywgMC44MTk1MTQsIDAuOTgxNDI0IiwgXAotICAgICAgICAgICIwLjA1MTgwNSwgMC4yMDcyOTEsIDAuMzM0NjUxLCAwLjQ5NjAwNCwgMC42NTc0NzksIDAuODIwNjA1LCAwLjk4MTU4OSIsIFwKLSAgICAgICAgICAiMC4wNTIxNjcsIDAuMjA3Mzc1LCAwLjMzNDY5OSwgMC40OTU3MzUsIDAuNjU4MTMsIDAuODE5NTQzLCAwLjk4MTg2OSIsIFwKLSAgICAgICAgICAiMC4wNTI4NzQsIDAuMjA3NTcxLCAwLjMzNDc1NSwgMC40OTYxNzksIDAuNjU3OTY1LCAwLjgyMDI5MSwgMC45ODE3MiIsIFwKLSAgICAgICAgICAiMC4wNTQ1OTMsIDAuMjA4MTc2LCAwLjMzNTE0MiwgMC40OTYzMDgsIDAuNjU3OTg5LCAwLjgxOTY2NywgMC45ODIwMjUiLCBcCi0gICAgICAgICAgIjAuMDU1OTc5LCAwLjIwODg2LCAwLjMzNTYwMywgMC40OTY1MDgsIDAuNjU4NDc5LCAwLjgyMDY2MiwgMC45ODIwNDEiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg3ODQ4LCAwLjE3MTc4OSwgMC4yMzI5MSwgMC4zMDg3NjksIDAuMzg0NTY0LCAwLjQ2MDM5MSwgMC41MzYxMDEiLCBcCi0gICAgICAgICAgIjAuMDk1MTY3LCAwLjE3OTE4NywgMC4yNDAyODgsIDAuMzE2MTUxLCAwLjM5MTk0NywgMC40Njc3MTUsIDAuNTQzNDY3IiwgXAotICAgICAgICAgICIwLjEwNDYzOCwgMC4xODg2NDcsIDAuMjQ5NzUzLCAwLjMyNTYyMiwgMC40MDE0MjEsIDAuNDc3MTkyLCAwLjU1MzA0NSIsIFwKLSAgICAgICAgICAiMC4xMTM4OSwgMC4xOTc4MDUsIDAuMjU4OTYsIDAuMzM0ODMxLCAwLjQxMDYyOCwgMC40ODY0MDUsIDAuNTYyMTU3IiwgXAotICAgICAgICAgICIwLjEyMjE0MywgMC4yMDYyNDQsIDAuMjY3MzMzLCAwLjM0MzIwMiwgMC40MTkwMTgsIDAuNDk0Nzg1LCAwLjU3MDU0MiIsIFwKLSAgICAgICAgICAiMC4xMzM2OTIsIDAuMjE4MjAyLCAwLjI3OTMzNSwgMC4zNTUxODYsIDAuNDMwOTgsIDAuNTA2Njk4LCAwLjU4MjUzIiwgXAotICAgICAgICAgICIwLjE0MjQyOCwgMC4yMjcyOTMsIDAuMjg4NTE2LCAwLjM2NDM4NiwgMC40NDAxNTUsIDAuNTE1OTQ2LCAwLjU5MTY5NyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTM0NTIsIDAuMjAzNTk4LCAwLjMyNjE2NCwgMC40ODE5ODMsIDAuNjM4NDA0LCAwLjc5NTQ2NCwgMC45NTI0NSIsIFwKLSAgICAgICAgICAiMC4wNTMzNTMsIDAuMjAzNjYsIDAuMzI2MiwgMC40ODE5NzgsIDAuNjM4NDQzLCAwLjc5NTMwOCwgMC45NTIzOTkiLCBcCi0gICAgICAgICAgIjAuMDUzMzk5LCAwLjIwMzY1OSwgMC4zMjYyMjYsIDAuNDgxOTc2LCAwLjYzODQyOCwgMC43OTUzMDIsIDAuOTUwNzcyIiwgXAotICAgICAgICAgICIwLjA1MzUzNywgMC4yMDM3MTMsIDAuMzI2Mjk1LCAwLjQ4MTkxOSwgMC42MzgzMjEsIDAuNzk1MTgxLCAwLjk1MjI2NCIsIFwKLSAgICAgICAgICAiMC4wNTQxODEsIDAuMjAzOTM4LCAwLjMyNjM0NiwgMC40ODIwNTYsIDAuNjM4NDAzLCAwLjc5NTIxOSwgMC45NTI0MjEiLCBcCi0gICAgICAgICAgIjAuMDU1NTg5LCAwLjIwNDQ5NCwgMC4zMjY2NywgMC40ODIyMTYsIDAuNjM4NTE5LCAwLjc5NTMxMiwgMC45NTE0MjIiLCBcCi0gICAgICAgICAgIjAuMDU3MDQ4LCAwLjIwNTE5NywgMC4zMjcyNTIsIDAuNDgxODcxLCAwLjYzODU4NCwgMC43OTU0MTksIDAuOTUyNDM3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlMwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTM5MTksIDAuMTc3MDcsIDAuMjM4OTY2LCAwLjMxNjEwNywgMC4zOTMxOTYsIDAuNDcwMjY4LCAwLjU0NzUxMiIsIFwKLSAgICAgICAgICAiMC4xMDEyMTUsIDAuMTg0Mzc0LCAwLjI0NjI3MSwgMC4zMjM0MTIsIDAuNDAwNTAyLCAwLjQ3NzU3NSwgMC41NTQ2NzEiLCBcCi0gICAgICAgICAgIjAuMTA3NDIzLCAwLjE5MDY0OCwgMC4yNTI1NDgsIDAuMzI5NjksIDAuNDA2Nzc4LCAwLjQ4Mzg1LCAwLjU2MTA5NiIsIFwKLSAgICAgICAgICAiMC4xMTE4ODksIDAuMTk1MDE5LCAwLjI1NjkxOCwgMC4zMzQwNjIsIDAuNDExMTUxLCAwLjQ4ODIyNCwgMC41NjUzMTQiLCBcCi0gICAgICAgICAgIjAuMTE1MTY2LCAwLjE5ODQ0NSwgMC4yNjAzNDYsIDAuMzM3NDg3LCAwLjQxNDU4LCAwLjQ5MTY0NywgMC41Njg3NTgiLCBcCi0gICAgICAgICAgIjAuMTE5NzQ1LCAwLjIwMzAzOSwgMC4yNjQ5NjksIDAuMzQyMTAxLCAwLjQxOTI2NCwgMC40OTYyNjEsIDAuNTczMzI2IiwgXAotICAgICAgICAgICIwLjEyMzI1MywgMC4yMDY1MTUsIDAuMjY4NTA0LCAwLjM0NTY1LCAwLjQyMjczNCwgMC40OTk4MDcsIDAuNTc2ODg1Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1MTgyOSwgMC4yMDcyNjcsIDAuMzM0NjQ3LCAwLjQ5NjEwMSwgMC42NTgxMDYsIDAuODE5NTI1LCAwLjk4MTQ5OSIsIFwKLSAgICAgICAgICAiMC4wNTE4MSwgMC4yMDcxMTMsIDAuMzM0NjQ1LCAwLjQ5NjEwOCwgMC42NTgxMDIsIDAuODE5NTQyLCAwLjk4MzAzOCIsIFwKLSAgICAgICAgICAiMC4wNTE3ODYsIDAuMjA3MjYyLCAwLjMzNDYzNiwgMC40OTYxMjksIDAuNjU4MTA4LCAwLjgxOTQ5MSwgMC45ODE0NjgiLCBcCi0gICAgICAgICAgIjAuMDUxODQ1LCAwLjIwNzI4MiwgMC4zMzQ2NTMsIDAuNDk2MTE3LCAwLjY1ODEsIDAuODE5NTQ3LCAwLjk4MjA0MyIsIFwKLSAgICAgICAgICAiMC4wNTE4NTEsIDAuMjA3Mzc0LCAwLjMzNDgxOSwgMC40OTYxNDcsIDAuNjU4MTIxLCAwLjgxOTQ2OSwgMC45ODEzMDgiLCBcCi0gICAgICAgICAgIjAuMDUxOTg4LCAwLjIwNzQyMywgMC4zMzQ2NjEsIDAuNDk2MDk5LCAwLjY1NjkyMywgMC44MjAyMjYsIDAuOTgyMDA2IiwgXAotICAgICAgICAgICIwLjA1MTgyMiwgMC4yMDczODQsIDAuMzM0ODM5LCAwLjQ5NTc3MiwgMC42NTc4NywgMC44MTk3MjksIDAuOTgxNzg0Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5OTcyOCwgMC4xODM3MTUsIDAuMjQ0ODU3LCAwLjMyMDc0NiwgMC4zOTY1NDIsIDAuNDcyMzM1LCAwLjU0ODA5MiIsIFwKLSAgICAgICAgICAiMC4xMDcxNjMsIDAuMTkxMTY0LCAwLjI1MjI5LCAwLjMyODE2LCAwLjQwMzk2MiwgMC40Nzk3NzcsIDAuNTU1NTI5IiwgXAotICAgICAgICAgICIwLjExMzQ0OSwgMC4xOTc0MjcsIDAuMjU4NTk3LCAwLjMzNDQ2NywgMC40MTAyNzksIDAuNDg2MDU2LCAwLjU2MTgxMiIsIFwKLSAgICAgICAgICAiMC4xMTgwMDQsIDAuMjAyMDI0LCAwLjI2MzE2NCwgMC4zMzkwNSwgMC40MTQ4NzMsIDAuNDkwNjMzLCAwLjU2NjM4OSIsIFwKLSAgICAgICAgICAiMC4xMjE2MDYsIDAuMjA1NzQ1LCAwLjI2Njg4OCwgMC4zNDI3NTIsIDAuNDE4NTU2LCAwLjQ5NDM3MiwgMC41NzAxODkiLCBcCi0gICAgICAgICAgIjAuMTI2NTE1LCAwLjIxMDY2NCwgMC4yNzE4NjUsIDAuMzQ3NzY1LCAwLjQyMzU0OCwgMC40OTkzMjQsIDAuNTc1MDkyIiwgXAotICAgICAgICAgICIwLjEzMDI4LCAwLjIxNDQ0MiwgMC4yNzU2MywgMC4zNTE1ODgsIDAuNDI3MzU5LCAwLjUwMzE4MywgMC41Nzg5ODMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDUzNTc1LCAwLjIwMzU5NSwgMC4zMjYzOTcsIDAuNDgyMDg1LCAwLjYzODQzNywgMC43OTUzOTIsIDAuOTUyNTE0IiwgXAotICAgICAgICAgICIwLjA1MzU1OCwgMC4yMDM3NDYsIDAuMzI2MjIyLCAwLjQ4MjA2LCAwLjYzODQ2OCwgMC43OTU0ODIsIDAuOTUxNDM3IiwgXAotICAgICAgICAgICIwLjA1MzQ3NCwgMC4yMDM3MjYsIDAuMzI2MjkzLCAwLjQ4MTYyMywgMC42Mzc1MDksIDAuNzk1MzY0LCAwLjk1MjQ3MSIsIFwKLSAgICAgICAgICAiMC4wNTM0NDcsIDAuMjAzNjc2LCAwLjMyNjI5MywgMC40ODE5OTUsIDAuNjM4NTU4LCAwLjc5NTI0NiwgMC45NTIzMzUiLCBcCi0gICAgICAgICAgIjAuMDUzNTc5LCAwLjIwMzc3NiwgMC4zMjY0NTMsIDAuNDgyMDQ3LCAwLjYzODQzMywgMC43OTU1MDUsIDAuOTUwODQ3IiwgXAotICAgICAgICAgICIwLjA1MzUwMSwgMC4yMDM4MTMsIDAuMzI2NTE0LCAwLjQ4MjIxOCwgMC42Mzg0ODMsIDAuNzk1Mjg3LCAwLjk1MjM3IiwgXAotICAgICAgICAgICIwLjA1MzM1MywgMC4yMDM3ODUsIDAuMzI2NjA1LCAwLjQ4MjAwNCwgMC42MzgyODksIDAuNzk0NjU1LCAwLjk1MjI0MyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTMSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDUzMjY2LCAwLjEzMjA4NywgMC4xOTM4MDMsIDAuMjcwOTA3LCAwLjM0Nzk3MiwgMC40MjUwMjksIDAuNTAyMDc4IiwgXAotICAgICAgICAgICIwLjA2MDkwMSwgMC4xMzk3MjMsIDAuMjAxNDM1LCAwLjI3ODU0OSwgMC4zNTU2ODMsIDAuNDMyNzY5LCAwLjUwOTcxOSIsIFwKLSAgICAgICAgICAiMC4wNzAyOTMsIDAuMTQ5MTUxLCAwLjIxMDg3MywgMC4yODc5NjIsIDAuMzY1MDY2LCAwLjQ0MjA4NiwgMC41MTkxNDgiLCBcCi0gICAgICAgICAgIjAuMDc4MzQ3LCAwLjE1NzMwNiwgMC4yMTg5NCwgMC4yOTYwNCwgMC4zNzMxODgsIDAuNDUwMTc2LCAwLjUyNzIxMyIsIFwKLSAgICAgICAgICAiMC4wODQ5MTMsIDAuMTY0MDQzLCAwLjIyNTcyOCwgMC4zMDI4MTcsIDAuMzc5ODc3LCAwLjQ1NzAwNywgMC41MzQwNDciLCBcCi0gICAgICAgICAgIjAuMDkzNDQ5LCAwLjE3MzAzNCwgMC4yMzQ2OTYsIDAuMzExODIsIDAuMzg4NzQ3LCAwLjQ2NTkwNCwgMC41NDI4NDIiLCBcCi0gICAgICAgICAgIjAuMDk5ODI4LCAwLjE3OTU0LCAwLjI0MTI4LCAwLjMxODMxLCAwLjM5NTQyMiwgMC40NzI0OTMsIDAuNTQ5NSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDQ2MTMsIDAuMjAyMjY2LCAwLjMzMTA2LCAwLjQ5MzQ4OCwgMC42NTY1NCwgMC44MTkyMDYsIDAuOTgwOTQxIiwgXAotICAgICAgICAgICIwLjA0NDU4LCAwLjIwMjI1MiwgMC4zMzE1MzUsIDAuNDkzNDc5LCAwLjY1NTU4NywgMC44MTc3NTcsIDAuOTgwOTQ5IiwgXAotICAgICAgICAgICIwLjA0NTAzLCAwLjIwMjMwMiwgMC4zMzE2NjYsIDAuNDkzOTcsIDAuNjU2NTE5LCAwLjgxOTE3MSwgMC45ODEwMjEiLCBcCi0gICAgICAgICAgIjAuMDQ2MTUsIDAuMjAyNTM3LCAwLjMzMTM5OSwgMC40OTM0NTcsIDAuNjU1NTg0LCAwLjgxODUzNywgMC45ODA4MyIsIFwKLSAgICAgICAgICAiMC4wNDc1ODIsIDAuMjAyNzA2LCAwLjMzMTc4LCAwLjQ5NDAyMywgMC42NTU5MjIsIDAuODE5MTMyLCAwLjk4MTc2NCIsIFwKLSAgICAgICAgICAiMC4wNDk0NywgMC4yMDMzNjksIDAuMzMyMDg4LCAwLjQ5Mzc0MSwgMC42NTYwOTUsIDAuODE5MTU0LCAwLjk4MTc3NyIsIFwKLSAgICAgICAgICAiMC4wNTExODYsIDAuMjAzODIsIDAuMzMyMjUsIDAuNDk0MzM5LCAwLjY1NjAwNCwgMC44MTg0MTUsIDAuOTgxODMzIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2NDYxNCwgMC4xNDg0MjYsIDAuMjA5NDg4LCAwLjI4NTMyMiwgMC4zNjEwOTksIDAuNDM2ODU3LCAwLjUxMjYxMyIsIFwKLSAgICAgICAgICAiMC4wNzE2ODEsIDAuMTU1NDU2LCAwLjIxNjU0MiwgMC4yOTIzNzksIDAuMzY4MTU5LCAwLjQ0MzkxNywgMC41MTk2NzYiLCBcCi0gICAgICAgICAgIjAuMDgwNDIsIDAuMTY0MTEyLCAwLjIyNTE5MywgMC4zMDEwMywgMC4zNzY4MTEsIDAuNDUyNTcyLCAwLjUyODM0IiwgXAotICAgICAgICAgICIwLjA4ODQyNiwgMC4xNzIxMTUsIDAuMjMzMTgzLCAwLjMwOTAyMSwgMC4zODQ4MDEsIDAuNDYwNTc5LCAwLjUzNjMyMSIsIFwKLSAgICAgICAgICAiMC4wOTUzOTYsIDAuMTc5MTA1LCAwLjI0MDE4NiwgMC4zMTYwMTksIDAuMzkxNzkzLCAwLjQ2NzUzNSwgMC41NDMzMDUiLCBcCi0gICAgICAgICAgIjAuMTA0OTE5LCAwLjE4ODgwNSwgMC4yNDk4OCwgMC4zMjU3NzEsIDAuNDAxNTMyLCAwLjQ3NzIzOCwgMC41NTMwNTIiLCBcCi0gICAgICAgICAgIjAuMTEyMDU0LCAwLjE5NjIwMiwgMC4yNTc0MzksIDAuMzMzMTc4LCAwLjQwODkxOCwgMC40ODQ3NTUsIDAuNTYwNDk1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1MjQ1MiwgMC4yMDMyODksIDAuMzI1OTc5LCAwLjQ4MTc3MSwgMC42MzgyNDEsIDAuNzk1MTQyLCAwLjk1MjE5MyIsIFwKLSAgICAgICAgICAiMC4wNTIyNDQsIDAuMjAzMjQ3LCAwLjMyNTk0NCwgMC40ODE3NjgsIDAuNjM4MjE5LCAwLjc5NTAyMiwgMC45NTIyNzgiLCBcCi0gICAgICAgICAgIjAuMDUyMDIsIDAuMjAzMTEzLCAwLjMyNTg1NCwgMC40ODE3MzgsIDAuNjM4MzIxLCAwLjc5NTI0NiwgMC45NTI0MzMiLCBcCi0gICAgICAgICAgIjAuMDUyMjg3LCAwLjIwMzIzMywgMC4zMjU5NjIsIDAuNDgxNzc0LCAwLjYzODIxOSwgMC43OTQ0MSwgMC45NTIyODkiLCBcCi0gICAgICAgICAgIjAuMDUzMTE5LCAwLjIwMzQ4OCwgMC4zMjYxNjgsIDAuNDgxODk3LCAwLjYzODI3OCwgMC43OTUxNDQsIDAuOTUyMzMiLCBcCi0gICAgICAgICAgIjAuMDU0NzI4LCAwLjIwNDA3OSwgMC4zMjY2MjYsIDAuNDgyMTU3LCAwLjYzODU0LCAwLjc5NTMzMSwgMC45NTI0MDgiLCBcCi0gICAgICAgICAgIjAuMDU2MjIyLCAwLjIwNDY0NiwgMC4zMjcwMTcsIDAuNDgyNTAzLCAwLjYzODY2NSwgMC43OTUzNDQsIDAuOTUyNDQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUzEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2MzExMywgMC4xNDYwMzksIDAuMjA3ODksIDAuMjg1MDAxLCAwLjM2MjA4LCAwLjQzOTEyMywgMC41MTYzNyIsIFwKLSAgICAgICAgICAiMC4wNzExMzgsIDAuMTU0MDUzLCAwLjIxNTkwOSwgMC4yOTI5OTgsIDAuMzcwMDczLCAwLjQ0NzE1NCwgMC41MjQ0MDgiLCBcCi0gICAgICAgICAgIjAuMDc5NDUsIDAuMTYyMzI2LCAwLjIyNDE3NiwgMC4zMDEyODcsIDAuMzc4Mzg0LCAwLjQ1NTQ1NCwgMC41MzI2NTMiLCBcCi0gICAgICAgICAgIjAuMDg0ODE2LCAwLjE2NzY4OSwgMC4yMjk1MzksIDAuMzA2NjE4LCAwLjM4MzcxMSwgMC40NjA3NzEsIDAuNTM4MDMyIiwgXAotICAgICAgICAgICIwLjA4ODg5MSwgMC4xNzE1MTMsIDAuMjMzNDA2LCAwLjMxMDQ2OSwgMC4zODc2MTEsIDAuNDY0NzU5LCAwLjU0MTg5MyIsIFwKLSAgICAgICAgICAiMC4wOTQxMjIsIDAuMTc2NzU1LCAwLjIzODU2MSwgMC4zMTU3MjQsIDAuMzkyNzg2LCAwLjQ2OTkyOCwgMC41NDcwOTQiLCBcCi0gICAgICAgICAgIjAuMDk3ODIzLCAwLjE4MDUwNiwgMC4yNDIzLCAwLjMxOTMwNiwgMC4zOTY1LCAwLjQ3MzY3OSwgMC41NTA2NTgiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDUxMDQ3LCAwLjIwNjkzNywgMC4zMzQzOSwgMC40OTU5MTYsIDAuNjU4MDgxLCAwLjgxOTMyOSwgMC45ODA5NjEiLCBcCi0gICAgICAgICAgIjAuMDUwOTc5LCAwLjIwNjkyMSwgMC4zMzQzNzYsIDAuNDk1NzE1LCAwLjY1NzMxNywgMC44MjA0MDgsIDAuOTgwOTQ2IiwgXAotICAgICAgICAgICIwLjA1MDcxMSwgMC4yMDY4NjQsIDAuMzM0NDQ2LCAwLjQ5NTg3NCwgMC42NTgwNjksIDAuODIwNDQyLCAwLjk4MTAzIiwgXAotICAgICAgICAgICIwLjA1MDQyMiwgMC4yMDY3OTIsIDAuMzM0NDI0LCAwLjQ5NTY4MywgMC42NTc3MDcsIDAuODIwMjkxLCAwLjk4MDk1NiIsIFwKLSAgICAgICAgICAiMC4wNTAzNjYsIDAuMjA2NjE1LCAwLjMzNDMwNywgMC40OTU3MzcsIDAuNjU3ODAyLCAwLjgxOTQ5NCwgMC45ODEwMDgiLCBcCi0gICAgICAgICAgIjAuMDUwNDQ0LCAwLjIwNjUzOSwgMC4zMzQwNjksIDAuNDk1NzI0LCAwLjY1NzY5OCwgMC44MjAzOTEsIDAuOTgwOTgiLCBcCi0gICAgICAgICAgIjAuMDUwNSwgMC4yMDYzOTMsIDAuMzM0MjcsIDAuNDk1NjYzLCAwLjY1Njk4NiwgMC44MjAyMzIsIDAuOTgxNTg4Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2ODY2MiwgMC4xNDcwMzksIDAuMjA3NzM3LCAwLjI4MzUzNCwgMC4zNTkzMjUsIDAuNDM1MTM0LCAwLjUxMDg1NSIsIFwKLSAgICAgICAgICAiMC4wNzYwODYsIDAuMTU0NTM3LCAwLjIxNTIyMywgMC4yOTEwMywgMC4zNjY4MSwgMC40NDI1NywgMC41MTgzNTciLCBcCi0gICAgICAgICAgIjAuMDgyMzg3LCAwLjE2MDc2NywgMC4yMjE0NjgsIDAuMjk3MjcyLCAwLjM3MzA0OSwgMC40NDg4MzgsIDAuNTI0NjMiLCBcCi0gICAgICAgICAgIjAuMDg2Nzk2LCAwLjE2NTI2NywgMC4yMjU5NjcsIDAuMzAxNzksIDAuMzc3NTU0LCAwLjQ1MzM1NCwgMC41MjkwNTkiLCBcCi0gICAgICAgICAgIjAuMDkwNTY1LCAwLjE2OTA1NSwgMC4yMjk3NTcsIDAuMzA1NTYxLCAwLjM4MTMzNCwgMC40NTcxLCAwLjUzMjg3NiIsIFwKLSAgICAgICAgICAiMC4wOTU2MTksIDAuMTc0MDc0LCAwLjIzNDgwNCwgMC4zMTA2MDcsIDAuMzg2NDEyLCAwLjQ2MjE2OCwgMC41Mzc5MTEiLCBcCi0gICAgICAgICAgIjAuMDk5MjIzLCAwLjE3NzY5MywgMC4yMzg0NjcsIDAuMzE0Mjg1LCAwLjM5MDA4NywgMC40NjU4NTMsIDAuNTQxNTk1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0NDg0NiwgMC4xOTY3NzYsIDAuMzIxNzYyLCAwLjQ3ODcxNiwgMC42MzUzMjEsIDAuNzkzNjg5LCAwLjk1MTExMiIsIFwKLSAgICAgICAgICAiMC4wNDQ4MzYsIDAuMTk2NzA5LCAwLjMyMTc0NywgMC40Nzg3MDEsIDAuNjM2MDQzLCAwLjc5MzM2MSwgMC45NTEwOTEiLCBcCi0gICAgICAgICAgIjAuMDQ0Nzk2LCAwLjE5Njc5OSwgMC4zMjE2OTksIDAuNDc4NjI0LCAwLjYzNTg1OSwgMC43OTI2MzUsIDAuOTUxMjY4IiwgXAotICAgICAgICAgICIwLjA0NDgsIDAuMTk2OTY3LCAwLjMyMTczNywgMC40NzgwMTQsIDAuNjM1Mjc0LCAwLjc5MzYzMiwgMC45NTA3OSIsIFwKLSAgICAgICAgICAiMC4wNDQ3OTcsIDAuMTk2ODgyLCAwLjMyMTc1LCAwLjQ3ODY2NCwgMC42MzUzMTUsIDAuNzkzMzM4LCAwLjk1MDE4NCIsIFwKLSAgICAgICAgICAiMC4wNDQ3ODYsIDAuMTk2ODUsIDAuMzIxNDUxLCAwLjQ3ODEzMSwgMC42MzUxNjcsIDAuNzkzMDkzLCAwLjk1MDY0MyIsIFwKLSAgICAgICAgICAiMC4wNDQ3NzksIDAuMTk2NzA5LCAwLjMyMTM5NywgMC40NzgxOTIsIDAuNjM1MjYzLCAwLjc5MjQ0NywgMC45NTAwMjgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQxNDIsIDAuMDA0MTQ5LCAwLjAwNDE1OCwgMC4wMDQxNjEsIDAuMDA0MTY0LCAwLjAwNDE2NiwgMC4wMDQxNjYiLCBcCi0gICAgICAgICAgIjAuMDA0MTE4LCAwLjAwNDEyOCwgMC4wMDQxMzcsIDAuMDA0MTQyLCAwLjAwNDE0NSwgMC4wMDQxNDcsIDAuMDA0MTQ5IiwgXAotICAgICAgICAgICIwLjAwNDEyMywgMC4wMDQxMzUsIDAuMDA0MTQ1LCAwLjAwNDE1MiwgMC4wMDQxNTYsIDAuMDA0MTU4LCAwLjAwNDE2IiwgXAotICAgICAgICAgICIwLjAwNDE4MSwgMC4wMDQxNzEsIDAuMDA0MTgsIDAuMDA0MTg3LCAwLjAwNDE5MSwgMC4wMDQxOTMsIDAuMDA0MTk1IiwgXAotICAgICAgICAgICIwLjAwNDI4NSwgMC4wMDQyMzIsIDAuMDA0MjM3LCAwLjAwNDI0MywgMC4wMDQyNDQsIDAuMDA0MjQ3LCAwLjAwNDI0NyIsIFwKLSAgICAgICAgICAiMC4wMDQzODUsIDAuMDA0MzIxLCAwLjAwNDMyOCwgMC4wMDQzMzUsIDAuMDA0MzM3LCAwLjAwNDM0MSwgMC4wMDQzNDEiLCBcCi0gICAgICAgICAgIjAuMDA0NTIsIDAuMDA0NDI5LCAwLjAwNDQzMywgMC4wMDQ0MzcsIDAuMDA0NDM5LCAwLjAwNDQ0MywgMC4wMDQ0NDMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDY2MTgsIDAuMDA2NjIsIDAuMDA2NjMsIDAuMDA2NjM3LCAwLjAwNjY0LCAwLjAwNjY0MiwgMC4wMDY2NDQiLCBcCi0gICAgICAgICAgIjAuMDA2NjExLCAwLjAwNjYwOSwgMC4wMDY2MTksIDAuMDA2NjI2LCAwLjAwNjYyOSwgMC4wMDY2MzIsIDAuMDA2NjMzIiwgXAotICAgICAgICAgICIwLjAwNjYxNCwgMC4wMDY2MTMsIDAuMDA2NjI1LCAwLjAwNjYzMywgMC4wMDY2MzgsIDAuMDA2NjQxLCAwLjAwNjY0MyIsIFwKLSAgICAgICAgICAiMC4wMDY2NzksIDAuMDA2NjQ3LCAwLjAwNjY1NywgMC4wMDY2NjQsIDAuMDA2NjY4LCAwLjAwNjY3LCAwLjAwNjY3MiIsIFwKLSAgICAgICAgICAiMC4wMDY3NTEsIDAuMDA2NjkyLCAwLjAwNjcsIDAuMDA2NzA2LCAwLjAwNjcxLCAwLjAwNjcxMiwgMC4wMDY3MTQiLCBcCi0gICAgICAgICAgIjAuMDA2ODU0LCAwLjAwNjc4MSwgMC4wMDY4MDQsIDAuMDA2Nzk1LCAwLjAwNjc5OSwgMC4wMDY4MDIsIDAuMDA2ODA1IiwgXAotICAgICAgICAgICIwLjAwNjk4OCwgMC4wMDY4ODIsIDAuMDA2ODg2LCAwLjAwNjg5MiwgMC4wMDY4OTUsIDAuMDA2ODk4LCAwLjAwNjkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDM5MjcsIDAuMDAzOTMyLCAwLjAwMzk0LCAwLjAwMzk0NCwgMC4wMDM5NDcsIDAuMDAzOTQ4LCAwLjAwMzk0OSIsIFwKLSAgICAgICAgICAiMC4wMDM4OTksIDAuMDAzOTA5LCAwLjAwMzkxOCwgMC4wMDM5MjQsIDAuMDAzOTI2LCAwLjAwMzkyOCwgMC4wMDM5MyIsIFwKLSAgICAgICAgICAiMC4wMDM5LCAwLjAwMzkxMiwgMC4wMDM5MjMsIDAuMDAzOTMsIDAuMDAzOTM0LCAwLjAwMzkzNSwgMC4wMDM5MzgiLCBcCi0gICAgICAgICAgIjAuMDAzOTY5LCAwLjAwMzk0OSwgMC4wMDM5NTcsIDAuMDAzOTY0LCAwLjAwMzk2NiwgMC4wMDM5NjksIDAuMDAzOTY5IiwgXAotICAgICAgICAgICIwLjAwNDAxOCwgMC4wMDM5OTEsIDAuMDA0LCAwLjAwNDAwOCwgMC4wMDQwMDksIDAuMDA0MDEyLCAwLjAwNDAxNCIsIFwKLSAgICAgICAgICAiMC4wMDQxNjMsIDAuMDA0MDk1LCAwLjAwNDEsIDAuMDA0MTAzLCAwLjAwNDEwNiwgMC4wMDQxMDksIDAuMDA0MTA5IiwgXAotICAgICAgICAgICIwLjAwNDI3NywgMC4wMDQxOSwgMC4wMDQxOTQsIDAuMDA0MTk3LCAwLjAwNDIsIDAuMDA0MjA0LCAwLjAwNDIwNCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjk1OSwgMC4wMDY5NTUsIDAuMDA2OTY0LCAwLjAwNjk3MSwgMC4wMDY5NzQsIDAuMDA2OTc2LCAwLjAwNjk3OCIsIFwKLSAgICAgICAgICAiMC4wMDY5NDksIDAuMDA2OTQyLCAwLjAwNjk1MiwgMC4wMDY5NTksIDAuMDA2OTYyLCAwLjAwNjk2NCwgMC4wMDY5NjYiLCBcCi0gICAgICAgICAgIjAuMDA2OTQ0LCAwLjAwNjk0NCwgMC4wMDY5NTYsIDAuMDA2OTY0LCAwLjAwNjk2OSwgMC4wMDY5NzIsIDAuMDA2OTc0IiwgXAotICAgICAgICAgICIwLjAwNzAxNywgMC4wMDY5NzksIDAuMDA2OTg4LCAwLjAwNjk5NCwgMC4wMDY5OTgsIDAuMDA3LCAwLjAwNzAwMiIsIFwKLSAgICAgICAgICAiMC4wMDcwNzIsIDAuMDA3MDIsIDAuMDA3MDI4LCAwLjAwNzAzNSwgMC4wMDcwMzksIDAuMDA3MDQxLCAwLjAwNzA0MyIsIFwKLSAgICAgICAgICAiMC4wMDcxNzgsIDAuMDA3MTA1LCAwLjAwNzExMSwgMC4wMDcxMiwgMC4wMDcxMjQsIDAuMDA3MTI3LCAwLjAwNzEzIiwgXAotICAgICAgICAgICIwLjAwNzMxMiwgMC4wMDcyMDYsIDAuMDA3MjA4LCAwLjAwNzIxMywgMC4wMDcyMTYsIDAuMDA3MjE5LCAwLjAwNzIyMSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzA4OSwgMC4wMDMxMDMsIDAuMDAzMTA5LCAwLjAwMzEwNSwgMC4wMDMxMDYsIDAuMDAzMTEyLCAwLjAwMzEwNiIsIFwKLSAgICAgICAgICAiMC4wMDMwNSwgMC4wMDMwNzYsIDAuMDAzMDgxLCAwLjAwMzA4NCwgMC4wMDMwODQsIDAuMDAzMDgzLCAwLjAwMzA4NSIsIFwKLSAgICAgICAgICAiMC4wMDMwNzksIDAuMDAzMDkyLCAwLjAwMzA5NCwgMC4wMDMwOTcsIDAuMDAzMDk3LCAwLjAwMzA5OCwgMC4wMDMwOTgiLCBcCi0gICAgICAgICAgIjAuMDAzMTQ4LCAwLjAwMzEzNywgMC4wMDMxMzcsIDAuMDAzMTQsIDAuMDAzMTM3LCAwLjAwMzEzOSwgMC4wMDMxMzgiLCBcCi0gICAgICAgICAgIjAuMDAzMTk5LCAwLjAwMzE4NywgMC4wMDMxODgsIDAuMDAzMTg4LCAwLjAwMzE5LCAwLjAwMzE5MSwgMC4wMDMxOSIsIFwKLSAgICAgICAgICAiMC4wMDMzMjgsIDAuMDAzMywgMC4wMDMyOTgsIDAuMDAzMjk5LCAwLjAwMzI5OSwgMC4wMDMyOTksIDAuMDAzMyIsIFwKLSAgICAgICAgICAiMC4wMDM1MjUsIDAuMDAzNDM0LCAwLjAwMzQyNywgMC4wMDM0MjIsIDAuMDAzNDIxLCAwLjAwMzQyMiwgMC4wMDM0MTgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQ4MywgMC4wMDQ4NjksIDAuMDA0ODc1LCAwLjAwNDg3OSwgMC4wMDQ4ODEsIDAuMDA0ODgyLCAwLjAwNDg4MiIsIFwKLSAgICAgICAgICAiMC4wMDQ4LCAwLjAwNDg1LCAwLjAwNDg1OCwgMC4wMDQ4NjMsIDAuMDA0ODY1LCAwLjAwNDg2NywgMC4wMDQ4NjgiLCBcCi0gICAgICAgICAgIjAuMDA0ODIxLCAwLjAwNDg2MiwgMC4wMDQ4NzEsIDAuMDA0ODc2LCAwLjAwNDg3OCwgMC4wMDQ4OCwgMC4wMDQ4ODEiLCBcCi0gICAgICAgICAgIjAuMDA0ODg0LCAwLjAwNDg5OCwgMC4wMDQ5MDUsIDAuMDA0OTA5LCAwLjAwNDkxMSwgMC4wMDQ5MTMsIDAuMDA0OTE0IiwgXAotICAgICAgICAgICIwLjAwNDk1MSwgMC4wMDQ5NSwgMC4wMDQ5NTYsIDAuMDA0OTU5LCAwLjAwNDk2MiwgMC4wMDQ5NjMsIDAuMDA0OTY0IiwgXAotICAgICAgICAgICIwLjAwNTEwMiwgMC4wMDUwNjMsIDAuMDA1MDY4LCAwLjAwNTA2OCwgMC4wMDUwNjgsIDAuMDA1MDY4LCAwLjAwNTA2OCIsIFwKLSAgICAgICAgICAiMC4wMDUyMjgsIDAuMDA1MTY5LCAwLjAwNTE2OSwgMC4wMDUxNywgMC4wMDUxNzEsIDAuMDA1MTcyLCAwLjAwNTE3MyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlMwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDY1MjcsIDAuMDA2NTM3LCAwLjAwNjU0NiwgMC4wMDY1NSwgMC4wMDY1NTUsIDAuMDA2NTU3LCAwLjAwNjU1OCIsIFwKLSAgICAgICAgICAiMC4wMDY1MzgsIDAuMDA2NTQ3LCAwLjAwNjU1NSwgMC4wMDY1NjIsIDAuMDA2NTY0LCAwLjAwNjU2NiwgMC4wMDY1NjciLCBcCi0gICAgICAgICAgIjAuMDA2NjI0LCAwLjAwNjYzMSwgMC4wMDY2NDEsIDAuMDA2NjQ3LCAwLjAwNjY1LCAwLjAwNjY1MiwgMC4wMDY2NTMiLCBcCi0gICAgICAgICAgIjAuMDA2NzQzLCAwLjAwNjc1LCAwLjAwNjc1OSwgMC4wMDY3NjQsIDAuMDA2NzY3LCAwLjAwNjc2OSwgMC4wMDY3NyIsIFwKLSAgICAgICAgICAiMC4wMDY4NTksIDAuMDA2ODczLCAwLjAwNjg4NCwgMC4wMDY4ODgsIDAuMDA2ODkyLCAwLjAwNjg5NCwgMC4wMDY4OTUiLCBcCi0gICAgICAgICAgIjAuMDA3MTIxLCAwLjAwNzEzLCAwLjAwNzE0LCAwLjAwNzE0NiwgMC4wMDcxNSwgMC4wMDcxNTMsIDAuMDA3MTUzIiwgXAotICAgICAgICAgICIwLjAwNzI3OCwgMC4wMDcyOSwgMC4wMDczLCAwLjAwNzMwNSwgMC4wMDczMDksIDAuMDA3MzEsIDAuMDA3MzExIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2NDE4LCAwLjAwNjQxNywgMC4wMDY0MjgsIDAuMDA2NDM1LCAwLjAwNjQzOCwgMC4wMDY0NDEsIDAuMDA2NDQzIiwgXAotICAgICAgICAgICIwLjAwNjQyNCwgMC4wMDY0MjEsIDAuMDA2NDMyLCAwLjAwNjQzOSwgMC4wMDY0NDMsIDAuMDA2NDQ1LCAwLjAwNjQ0NyIsIFwKLSAgICAgICAgICAiMC4wMDY1MTMsIDAuMDA2NTE0LCAwLjAwNjUyNSwgMC4wMDY1MzMsIDAuMDA2NTM2LCAwLjAwNjUzOSwgMC4wMDY1NDEiLCBcCi0gICAgICAgICAgIjAuMDA2NjQsIDAuMDA2NjM3LCAwLjAwNjY0NywgMC4wMDY2NTUsIDAuMDA2NjU5LCAwLjAwNjY2MSwgMC4wMDY2NjMiLCBcCi0gICAgICAgICAgIjAuMDA2NzU4LCAwLjAwNjc2NCwgMC4wMDY3NzYsIDAuMDA2NzgzLCAwLjAwNjc4OCwgMC4wMDY3OSwgMC4wMDY3OTIiLCBcCi0gICAgICAgICAgIjAuMDA3MDE5LCAwLjAwNzAyNSwgMC4wMDcwMzUsIDAuMDA3MDQzLCAwLjAwNzA0NywgMC4wMDcwNSwgMC4wMDcwNTIiLCBcCi0gICAgICAgICAgIjAuMDA3MjMxLCAwLjAwNzIzMiwgMC4wMDcyNDQsIDAuMDA3MjUsIDAuMDA3MjU2LCAwLjAwNzI1OCwgMC4wMDcyNiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlMxIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDU2MjcsIDAuMDA1NjYyLCAwLjAwNTY3LCAwLjAwNTY3NCwgMC4wMDU2NzYsIDAuMDA1Njc3LCAwLjAwNTY3OCIsIFwKLSAgICAgICAgICAiMC4wMDU3MjEsIDAuMDA1NzU4LCAwLjAwNTc2NiwgMC4wMDU3NzEsIDAuMDA1Nzc0LCAwLjAwNTc3NiwgMC4wMDU3NzciLCBcCi0gICAgICAgICAgIjAuMDA1ODgyLCAwLjAwNTkyMiwgMC4wMDU5MzEsIDAuMDA1OTQsIDAuMDA1OTQzLCAwLjAwNTk0NCwgMC4wMDU5NDYiLCBcCi0gICAgICAgICAgIjAuMDA2MDYsIDAuMDA2MTAxLCAwLjAwNjExMywgMC4wMDYxMiwgMC4wMDYxMjMsIDAuMDA2MTI3LCAwLjAwNjEyOCIsIFwKLSAgICAgICAgICAiMC4wMDYyNDcsIDAuMDA2MjkxLCAwLjAwNjMwMiwgMC4wMDYzMSwgMC4wMDYzMTQsIDAuMDA2MzE3LCAwLjAwNjMxOSIsIFwKLSAgICAgICAgICAiMC4wMDY1OTYsIDAuMDA2NjM4LCAwLjAwNjY0MSwgMC4wMDY2NTgsIDAuMDA2NjYxLCAwLjAwNjY2NCwgMC4wMDY2NjciLCBcCi0gICAgICAgICAgIjAuMDA2ODg4LCAwLjAwNjkyNCwgMC4wMDY5MjcsIDAuMDA2OTQ2LCAwLjAwNjk1MSwgMC4wMDY5NTMsIDAuMDA2OTQ0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0MzI3LCAwLjAwNDM4NSwgMC4wMDQzOTYsIDAuMDA0NDAzLCAwLjAwNDQwNiwgMC4wMDQ0MDgsIDAuMDA0NDEiLCBcCi0gICAgICAgICAgIjAuMDA0MzQ2LCAwLjAwNDQwNCwgMC4wMDQ0MTUsIDAuMDA0NDIxLCAwLjAwNDQyNCwgMC4wMDQ0MjcsIDAuMDA0NDI4IiwgXAotICAgICAgICAgICIwLjAwNDQ0NywgMC4wMDQ1LCAwLjAwNDUxMSwgMC4wMDQ1MTcsIDAuMDA0NTIsIDAuMDA0NTIyLCAwLjAwNDUyNCIsIFwKLSAgICAgICAgICAiMC4wMDQ1ODUsIDAuMDA0NjQsIDAuMDA0NjUxLCAwLjAwNDY1NywgMC4wMDQ2NjEsIDAuMDA0NjYzLCAwLjAwNDY2NCIsIFwKLSAgICAgICAgICAiMC4wMDQ2OTcsIDAuMDA0NzUyLCAwLjAwNDc2MywgMC4wMDQ3NjksIDAuMDA0NzcyLCAwLjAwNDc3NCwgMC4wMDQ3NzYiLCBcCi0gICAgICAgICAgIjAuMDA0OTY3LCAwLjAwNTAxNywgMC4wMDUwMjgsIDAuMDA1MDM0LCAwLjAwNTAzOCwgMC4wMDUwNCwgMC4wMDUwNDIiLCBcCi0gICAgICAgICAgIjAuMDA1MTIzLCAwLjAwNTE4MiwgMC4wMDUxOTIsIDAuMDA1MTk4LCAwLjAwNTIwMSwgMC4wMDUyMDMsIDAuMDA1MjA1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IE1YM1g0ICoKLSAqIC0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChNWDNYNCkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjg5MTUyNTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjg1NzY5OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDY4NDQ5OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDY4NTc2OTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA5NDYsIDAuMDAwOTIyLCAwLjAwMDkzOSwgMC4wMDA5ODQsIDAuMDAxMDQ3LCAwLjAwMTE3NSwgMC4wMDEzMDQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDI5MTMsIDAuMDAyODk3LCAwLjAwMjkxMSwgMC4wMDI5NDgsIDAuMDAzMDA0LCAwLjAwMzEyLCAwLjAwMzI0MiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjc3NTc5OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDY3NjYxOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDY3NzU3OTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyODgsIDAuMDAwMjg5LCAwLjAwMDI5LCAwLjAwMDI5LCAwLjAwMDI5LCAwLjAwMDI5MSwgMC4wMDAyOTEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAzMTQsIDAuMDAwMzAzLCAwLjAwMDMwMSwgMC4wMDAzLCAwLjAwMDMsIDAuMDAwMjk5LCAwLjAwMDI5OCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQykgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwODk0NDgyOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDg5MjMzMjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA4OTQ0ODI7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNTA5LCAwLjAwMDUxMiwgMC4wMDA1MTMsIDAuMDAwNTE0LCAwLjAwMDUxNCwgMC4wMDA1MTQsIDAuMDAwNTE1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNTQ5LCAwLjAwMDUzMiwgMC4wMDA1MywgMC4wMDA1MjksIDAuMDAwNTI4LCAwLjAwMDUyOCwgMC4wMDA1MjgiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFMwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDEyNDM3OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTI0Mzc7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxMjQzNzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyNDcsIDAuMDAwMjY4LCAwLjAwMDM0NiwgMC4wMDA0NjIsIDAuMDAwNTkyLCAwLjAwMDg2MSwgMC4wMDEwNyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjM5LCAwLjAwMjQxNSwgMC4wMDI0ODgsIDAuMDAyNTk0LCAwLjAwMjcyMSwgMC4wMDI5NDEsIDAuMDAzMTM1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTMSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNTU2Njg7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNTU2Njg7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNTU2NTY7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzgxLCAwLjAwMDM4OSwgMC4wMDA0NzQsIDAuMDAwNTc4LCAwLjAwMDY5MywgMC4wMDA5MSwgMC4wMDExMTEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDI2MDIsIDAuMDAyNjE0LCAwLjAwMjcwNywgMC4wMDI3ODUsIDAuMDAyOTAxLCAwLjAwMzExNCwgMC4wMDMyOTYiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMS4xMzc3NDsKLSAgICBmdW5jdGlvbiA6ICIoKFMxIEMpICsgKCFTMSAoKFMwIEIpICsgKCFTMCBBKSkpKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTU3NDksIDAuMTY1NDIsIDAuMjIyMTc0LCAwLjI2MTY3OSwgMC4zMjQ0NDEsIDAuMzc5MjY3LCAwLjQ1NzU3MSIsIFwKLSAgICAgICAgICAiMC4xMDE5MDYsIDAuMTcxNTgsIDAuMjI4MzU1LCAwLjI2Nzc4OCwgMC4zMzA1ODQsIDAuMzg1NDMyLCAwLjQ2MzczNyIsIFwKLSAgICAgICAgICAiMC4xMDk3MjksIDAuMTc5NDY2LCAwLjIzNjIxNCwgMC4yNzU2NzksIDAuMzM4NDQ0LCAwLjM5MzMwMywgMC40NzE2MDYiLCBcCi0gICAgICAgICAgIjAuMTE3NjIyLCAwLjE4NzI2OSwgMC4yNDQwMDcsIDAuMjgzNDc5LCAwLjM0NjIzOSwgMC40MDEwOTUsIDAuNDc5Mzk5IiwgXAotICAgICAgICAgICIwLjEyNDk1NSwgMC4xOTQ2NzMsIDAuMjUxMzk4LCAwLjI5MDg5MywgMC4zNTM2NTMsIDAuNDA4NDkxLCAwLjQ4NjgxNSIsIFwKLSAgICAgICAgICAiMC4xMzYwNTUsIDAuMjA1OTAzLCAwLjI2MjY2MywgMC4zMDIxNDMsIDAuMzY0OTEsIDAuNDE5NzUzLCAwLjQ5ODA1OSIsIFwKLSAgICAgICAgICAiMC4xNDQzMzQsIDAuMjE0ODM2LCAwLjI3MTU3NywgMC4zMTEwNTksIDAuMzczODU0LCAwLjQyODY1OSwgMC41MDY5OTEiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDMxMTQsIDAuMTU0OTUyLCAwLjI2NTQ0LCAwLjM0NTg3MSwgMC40NzU2NDYsIDAuNTkwMTg1LCAwLjc1MzE5OCIsIFwKLSAgICAgICAgICAiMC4wNDMwNjgsIDAuMTU0ODY1LCAwLjI2NTQ5NSwgMC4zNDU4NTMsIDAuNDc1NDg5LCAwLjU5MDE4MSwgMC43NTQ2MTciLCBcCi0gICAgICAgICAgIjAuMDQzMDQzLCAwLjE1NDk1OSwgMC4yNjU1MTMsIDAuMzQ1ODY2LCAwLjQ3NTYyNCwgMC41OTAxNDMsIDAuNzU0NjA4IiwgXAotICAgICAgICAgICIwLjA0MzA1MSwgMC4xNTUwMTQsIDAuMjY1NTQ4LCAwLjM0NTg4NCwgMC40NzU0OTYsIDAuNTkwMTI4LCAwLjc1NDU5MiIsIFwKLSAgICAgICAgICAiMC4wNDM0MzYsIDAuMTU1MTUxLCAwLjI2NTU1NiwgMC4zNDU5MzUsIDAuNDc1NTQ0LCAwLjU4OTc4MywgMC43NTQ2NDIiLCBcCi0gICAgICAgICAgIjAuMDQ0MTQsIDAuMTU1NDE5LCAwLjI2NTk0NywgMC4zNDU5NDIsIDAuNDc1NjQ3LCAwLjU5MDI1MiwgMC43NTQ2MzQiLCBcCi0gICAgICAgICAgIjAuMDQ1MzQ1LCAwLjE1NjIyMiwgMC4yNjYzMjMsIDAuMzQ2MzQ1LCAwLjQ3NTc2NCwgMC41OTAxMzcsIDAuNzU0NyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwNTIxNiwgMC4xNzYzNDYsIDAuMjMzMiwgMC4yNzIyOCwgMC4zMzQxNjcsIDAuMzg4MDIyLCAwLjQ2NDkzOCIsIFwKLSAgICAgICAgICAiMC4xMTExMzEsIDAuMTgyMzE5LCAwLjIzOTEzOSwgMC4yNzgyNTUsIDAuMzQwMDk1LCAwLjM5Mzk5NiwgMC40NzA5MDciLCBcCi0gICAgICAgICAgIjAuMTE4MTE1LCAwLjE4OTI5LCAwLjI0NjE2MSwgMC4yODUyNjYsIDAuMzQ3MTI1LCAwLjQwMDk4NCwgMC40Nzc5MjUiLCBcCi0gICAgICAgICAgIjAuMTI1MjIsIDAuMTk2MzY0LCAwLjI1MzE5MywgMC4yOTIyOTgsIDAuMzU0MTY3LCAwLjQwODAyMiwgMC40ODQ5NTIiLCBcCi0gICAgICAgICAgIjAuMTMyMTA4LCAwLjIwMzE5NSwgMC4yNjAwMjUsIDAuMjk5MSwgMC4zNjA5OTcsIDAuNDE0ODUzLCAwLjQ5MTc2OSIsIFwKLSAgICAgICAgICAiMC4xNDIwNSwgMC4yMTMyNDcsIDAuMjcwMTUxLCAwLjMwOTIyOSwgMC4zNzEwNjksIDAuNDI0OTY2LCAwLjUwMTg3NyIsIFwKLSAgICAgICAgICAiMC4xNDk3OTcsIDAuMjIxNDAzLCAwLjI3ODM4NiwgMC4zMTc0NzcsIDAuMzc5MzI0LCAwLjQzMzIxOSwgMC41MTAxMiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0NTQwNSwgMC4xNTQ1MTcsIDAuMjYxMjg5LCAwLjMzODM0MiwgMC40NjMxNzUsIDAuNTczNzI2LCAwLjczMTE4MSIsIFwKLSAgICAgICAgICAiMC4wNDUzNzIsIDAuMTU0ODI0LCAwLjI2MTIzNywgMC4zMzg0NTUsIDAuNDYzMDAzLCAwLjU3MzY4OCwgMC43MzE5NSIsIFwKLSAgICAgICAgICAiMC4wNDUzNzMsIDAuMTU0NzY3LCAwLjI2MTI3LCAwLjMzODQyMiwgMC40NjMxNjYsIDAuNTczNzEsIDAuNzMxOTkxIiwgXAotICAgICAgICAgICIwLjA0NTM5NSwgMC4xNTQ4MTMsIDAuMjYxMjgsIDAuMzM4Mzg5LCAwLjQ2MzE2MywgMC41NzM3MTMsIDAuNzMwOTY0IiwgXAotICAgICAgICAgICIwLjA0NTQ2OSwgMC4xNTQ5MTksIDAuMjYxMzQ3LCAwLjMzODQyNywgMC40NjMxOTgsIDAuNTczNzMxLCAwLjczMTg4OSIsIFwKLSAgICAgICAgICAiMC4wNDY0MDcsIDAuMTU1MzE0LCAwLjI2MTYyMSwgMC4zMzg3MTMsIDAuNDYzMjIzLCAwLjU3Mzc5MywgMC43MzIwMTEiLCBcCi0gICAgICAgICAgIjAuMDQ3MzQ3LCAwLjE1NTg1MSwgMC4yNjE5MjIsIDAuMzM4OTI0LCAwLjQ2MzQ3NiwgMC41NzM4NjcsIDAuNzMxNTQxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk1NTQyLCAwLjE2NTIxNSwgMC4yMjE5ODksIDAuMjYxNDU1LCAwLjMyNDIxNSwgMC4zNzkwNTUsIDAuNDU3MzU1IiwgXAotICAgICAgICAgICIwLjEwMTg4MSwgMC4xNzE1NDQsIDAuMjI4MzA0LCAwLjI2NzgxMiwgMC4zMzA1NzEsIDAuMzg1NCwgMC40NjM3NDciLCBcCi0gICAgICAgICAgIjAuMTA5ODQ2LCAwLjE3OTUxOCwgMC4yMzYyNywgMC4yNzU3MzgsIDAuMzM4NDk4LCAwLjM5MzM1NCwgMC40NzE2NTUiLCBcCi0gICAgICAgICAgIjAuMTE3NTMsIDAuMTg3MjA5LCAwLjI0MzkzOSwgMC4yODM0MzMsIDAuMzQ2MTk1LCAwLjQwMTAyNiwgMC40NzkzNTYiLCBcCi0gICAgICAgICAgIjAuMTI1MTA1LCAwLjE5NDY5OCwgMC4yNTE0NjMsIDAuMjkwOTQ4LCAwLjM1MzcxOCwgMC40MDg1NDMsIDAuNDg2ODQzIiwgXAotICAgICAgICAgICIwLjEzNjA4MSwgMC4yMDU4OTEsIDAuMjYyNjc1LCAwLjMwMjE1NSwgMC4zNjQ5MDQsIDAuNDE5NzQ1LCAwLjQ5ODA1IiwgXAotICAgICAgICAgICIwLjE0NDU2LCAwLjIxNDg3MiwgMC4yNzE3NjcsIDAuMzExMjQ0LCAwLjM3NDAyNywgMC40Mjg4NDksIDAuNTA3MTUxIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQzMDA0LCAwLjE1NDgyLCAwLjI2NTQxMSwgMC4zNDU4NzMsIDAuNDc1NjI5LCAwLjU5MDE2OCwgMC43NTQ1MzEiLCBcCi0gICAgICAgICAgIjAuMDQyOTc0LCAwLjE1NDkwMiwgMC4yNjU0MSwgMC4zNDU4NDksIDAuNDc1NjIyLCAwLjU5MDE2NCwgMC43NTQ1MzciLCBcCi0gICAgICAgICAgIjAuMDQyODY4LCAwLjE1NDg0NiwgMC4yNjU1MTMsIDAuMzQ1ODQ1LCAwLjQ3NTQ2MSwgMC41OTAxMDEsIDAuNzU0NTQ5IiwgXAotICAgICAgICAgICIwLjA0MjkwNywgMC4xNTQ5NTIsIDAuMjY1NTM3LCAwLjM0NTg1MiwgMC40NzU2MjcsIDAuNTg5Njc1LCAwLjc1NDU4OSIsIFwKLSAgICAgICAgICAiMC4wNDM1MywgMC4xNTUxMDksIDAuMjY1NTI4LCAwLjM0NTkzOSwgMC40NzU2NiwgMC41OTAxOTIsIDAuNzUzNTM3IiwgXAotICAgICAgICAgICIwLjA0NDA5MywgMC4xNTU0NDIsIDAuMjY1OTIzLCAwLjM0NjEzNSwgMC40NzU3NzYsIDAuNTkwMjM2LCAwLjc1NDYyNCIsIFwKLSAgICAgICAgICAiMC4wNDUyODMsIDAuMTU2MjA0LCAwLjI2NjMxMywgMC4zNDYyNjMsIDAuNDc1NTI5LCAwLjU5MDQsIDAuNzU0Njk0Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTA2MDE0LCAwLjE3NzE1MSwgMC4yMzQsIDAuMjczMDczLCAwLjMzNDk1NCwgMC4zODg4NCwgMC40NjU3NTciLCBcCi0gICAgICAgICAgIjAuMTExNjc2LCAwLjE4MjksIDAuMjM5NzQxLCAwLjI3ODg0MiwgMC4zNDA3MzMsIDAuMzk0NTkyLCAwLjQ3MTUwMSIsIFwKLSAgICAgICAgICAiMC4xMTg3MjYsIDAuMTg5OTA0LCAwLjI0Njc4OCwgMC4yODU5LCAwLjM0Nzc2NSwgMC40MDE2NjUsIDAuNDc4NTcxIiwgXAotICAgICAgICAgICIwLjEyNTc2NSwgMC4xOTY5NTIsIDAuMjUzNzksIDAuMjkyODg5LCAwLjM1NDc3NiwgMC40MDg2MzksIDAuNDg1NTk4IiwgXAotICAgICAgICAgICIwLjEzMjYxNywgMC4yMDM3NTEsIDAuMjYwNjExLCAwLjI5OTY4NSwgMC4zNjE1NzQsIDAuNDE1NDU0LCAwLjQ5MjQxNSIsIFwKLSAgICAgICAgICAiMC4xNDI2MTYsIDAuMjEzODYxLCAwLjI3MDcyNSwgMC4zMDk3OTMsIDAuMzcxNjY5LCAwLjQyNTU1NSwgMC41MDI0NzQiLCBcCi0gICAgICAgICAgIjAuMTUwNDk3LCAwLjIyMjExMSwgMC4yNzkwMTcsIDAuMzE4MTM4LCAwLjM4MDAwOCwgMC40MzM5MDQsIDAuNTEwODEzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQ1NTM5LCAwLjE1NDg5OCwgMC4yNjEzNTEsIDAuMzM4NDksIDAuNDYzMjA4LCAwLjU3Mzc2MywgMC43MzE5OTciLCBcCi0gICAgICAgICAgIjAuMDQ1NTExLCAwLjE1NDg5NiwgMC4yNjEzNSwgMC4zMzg0MzksIDAuNDYzMjE4LCAwLjU3Mzc3LCAwLjczMTkyOSIsIFwKLSAgICAgICAgICAiMC4wNDU0MSwgMC4xNTQ4NDUsIDAuMjYxMzMyLCAwLjMzODQ5MSwgMC40NjMyMywgMC41NzMxMTQsIDAuNzMxOTgyIiwgXAotICAgICAgICAgICIwLjA0NTMyLCAwLjE1NDg1NiwgMC4yNjEzMjMsIDAuMzM4NDMxLCAwLjQ2MzIxMSwgMC41NzM3NTEsIDAuNzMyMTQiLCBcCi0gICAgICAgICAgIjAuMDQ1NTA0LCAwLjE1NDkxOCwgMC4yNjEzNzEsIDAuMzM4NTAxLCAwLjQ2MzIyNiwgMC41NzM3NjIsIDAuNzMyMDAzIiwgXAotICAgICAgICAgICIwLjA0NjQ0LCAwLjE1NTMzNiwgMC4yNjE2NTIsIDAuMzM4NzAzLCAwLjQ2MzMzMSwgMC41NzM4NTksIDAuNzMyMDgxIiwgXAotICAgICAgICAgICIwLjA0NzQ2NSwgMC4xNTYwMTcsIDAuMjYyMDI4LCAwLjMzOTAzOCwgMC40NjM1NjksIDAuNTczODgsIDAuNzMyMTA4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDUwODUyLCAwLjEwOTY2OCwgMC4xNjQ1NjIsIDAuMjAzNzI5LCAwLjI2NjM0MywgMC4zMjExNzgsIDAuMzk5NDIxIiwgXAotICAgICAgICAgICIwLjA1NzQ1NCwgMC4xMTYyNjgsIDAuMTcxMTcyLCAwLjIxMDM0MywgMC4yNzI5NTgsIDAuMzI3ODAxLCAwLjQwNjAzNiIsIFwKLSAgICAgICAgICAiMC4wNjUzNjUsIDAuMTI0MTA0LCAwLjE3OTAxNiwgMC4yMTgxOCwgMC4yODA4LCAwLjMzNTYyOSwgMC40MTM4ODEiLCBcCi0gICAgICAgICAgIjAuMDcyNDY2LCAwLjEzMTMyOSwgMC4xODYyNjQsIDAuMjI1NDI0LCAwLjI4ODEwNiwgMC4zNDI4NSwgMC40MjExNTgiLCBcCi0gICAgICAgICAgIjAuMDc4NjI3LCAwLjEzNzgyMywgMC4xOTI3MSwgMC4yMzE4OCwgMC4yOTQ0OSwgMC4zNDkyNjQsIDAuNDI3NTkiLCBcCi0gICAgICAgICAgIjAuMDg3MDcxLCAwLjE0Njg0LCAwLjIwMTcwMywgMC4yNDA4NzksIDAuMzAzNDgsIDAuMzU4MjU0LCAwLjQzNjQ4NSIsIFwKLSAgICAgICAgICAiMC4wOTM0NTksIDAuMTUzNjk0LCAwLjIwODU5MywgMC4yNDc3MzgsIDAuMzEwMzc2LCAwLjM2NTEzLCAwLjQ0MzM2OSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzMDYzNywgMC4xNDEwMzcsIDAuMjU1MTk3LCAwLjMzNjk4NCwgMC40NjkzNzYsIDAuNTg0MjU0LCAwLjc1MDM5NSIsIFwKLSAgICAgICAgICAiMC4wMzA0OTEsIDAuMTQxMDIzLCAwLjI1NTE4NCwgMC4zMzY5NDcsIDAuNDY5MzU0LCAwLjU4Mzk0MSwgMC43NTAzNzciLCBcCi0gICAgICAgICAgIjAuMDMwOTM2LCAwLjE0MTEwOCwgMC4yNTUyMDksIDAuMzM3NTMxLCAwLjQ2OTM4NSwgMC41ODQzMjgsIDAuNzUwMzYiLCBcCi0gICAgICAgICAgIjAuMDMxNjMxLCAwLjE0MTMwMSwgMC4yNTUyODgsIDAuMzM3NTE2LCAwLjQ2ODY0NSwgMC41ODQ5ODksIDAuNzQ5MjU5IiwgXAotICAgICAgICAgICIwLjAzMjUzNywgMC4xNDE3MTUsIDAuMjU1NDQsIDAuMzM3NTU2LCAwLjQ2OTM4OSwgMC41ODQ1NjgsIDAuNzQ5MjY5IiwgXAotICAgICAgICAgICIwLjAzNDE4NCwgMC4xNDI0MTQsIDAuMjU1NzY4LCAwLjMzNzMyNiwgMC40Njg5MzgsIDAuNTg0OTQsIDAuNzQ5NTE1IiwgXAotICAgICAgICAgICIwLjAzNTIzNCwgMC4xNDI5MzMsIDAuMjU1OTk2LCAwLjMzNzY1MSwgMC40NjkxMzgsIDAuNTg0MTg4LCAwLjc0OTU1OCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1NDUzOSwgMC4xMTMxMjcsIDAuMTY3MTI2LCAwLjIwNTU5NSwgMC4yNjcxMjUsIDAuMzIwOTQ5LCAwLjM5Nzc4NSIsIFwKLSAgICAgICAgICAiMC4wNjA1MDgsIDAuMTE5MDg4LCAwLjE3MzA5MSwgMC4yMTE1NjQsIDAuMjczMDgxLCAwLjMyNjg5OCwgMC40MDM3OTIiLCBcCi0gICAgICAgICAgIjAuMDY3NTQxLCAwLjEyNjA3OCwgMC4xODAwODEsIDAuMjE4NTUsIDAuMjgwMDcyLCAwLjMzMzg5MywgMC40MTA4MTMiLCBcCi0gICAgICAgICAgIjAuMDczODg3LCAwLjEzMjU3NCwgMC4xODY1NjcsIDAuMjI1MDI2LCAwLjI4NjU3MSwgMC4zNDA0MTMsIDAuNDE3MjE0IiwgXAotICAgICAgICAgICIwLjA3OTI2MSwgMC4xMzgzLCAwLjE5MjMzNiwgMC4yMzA4MDQsIDAuMjkyMzMyLCAwLjM0NjEyNCwgMC40MjI5OTEiLCBcCi0gICAgICAgICAgIjAuMDg2NTU4LCAwLjE0NjA4NCwgMC4yMDAwOTksIDAuMjM4NTYsIDAuMzAwMDU1LCAwLjM1Mzg2NywgMC40MzA3MTkiLCBcCi0gICAgICAgICAgIjAuMDkxOTYzLCAwLjE1MjAxOSwgMC4yMDYwOTQsIDAuMjQ0NTM2LCAwLjMwNjA1MiwgMC4zNTk4ODEsIDAuNDM2NzExIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDMwNTM2LCAwLjEzNzM3MiwgMC4yNDc0NDEsIDAuMzI2ODE0LCAwLjQ1MzU3NywgMC41NjUxNzIsIDAuNzI1ODY1IiwgXAotICAgICAgICAgICIwLjAzMDUwOSwgMC4xMzczNDgsIDAuMjQ3NDg5LCAwLjMyNjg2MiwgMC40NTQzMDQsIDAuNTY1OTc1LCAwLjcyNDg2MSIsIFwKLSAgICAgICAgICAiMC4wMzA2NjQsIDAuMTM3NDE1LCAwLjI0NzUxNywgMC4zMjY4MTQsIDAuNDU0MzA0LCAwLjU2NjA4OCwgMC43MjQ2NSIsIFwKLSAgICAgICAgICAiMC4wMzEzOTcsIDAuMTM3NjcsIDAuMjQ3NjQ4LCAwLjMyNjg5MywgMC40NTQ0MTgsIDAuNTY1MzAxLCAwLjcyNTg2NyIsIFwKLSAgICAgICAgICAiMC4wMzIyNzEsIDAuMTM4MDk5LCAwLjI0Nzg0MSwgMC4zMjcwMTcsIDAuNDU0NDk4LCAwLjU2NjA5MiwgMC43MjUwODgiLCBcCi0gICAgICAgICAgIjAuMDMzNjU2LCAwLjEzODc2OCwgMC4yNDgwMzYsIDAuMzI2OTk3LCAwLjQ1NDA5NCwgMC41NjU1NzQsIDAuNzI1OTU2IiwgXAotICAgICAgICAgICIwLjAzNDkyMSwgMC4xMzkyODcsIDAuMjQ4NDAyLCAwLjMyNzQ3MSwgMC40NTQwNDksIDAuNTY1MzMyLCAwLjcyNTgwMiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTEwNzIsIDAuMTYwNzg4LCAwLjIxNzUwNCwgMC4yNTcwMDMsIDAuMzE5NzY0LCAwLjM3NDYxNSwgMC40NTI5MTEiLCBcCi0gICAgICAgICAgIjAuMDk4NjU3LCAwLjE2ODI5NSwgMC4yMjUwNjQsIDAuMjY0NTUsIDAuMzI3MzI1LCAwLjM4MjE0OSwgMC40NjA0NTIiLCBcCi0gICAgICAgICAgIjAuMTA4MjYzLCAwLjE3Nzk5NywgMC4yMzQ3MTUsIDAuMjc0MjE4LCAwLjMzNjk3OCwgMC4zOTE4MDgsIDAuNDcwMTM5IiwgXAotICAgICAgICAgICIwLjExNzk4MywgMC4xODc2ODQsIDAuMjQ0NDMyLCAwLjI4Mzg5NiwgMC4zNDY2NiwgMC40MDE0OTgsIDAuNDc5ODE4IiwgXAotICAgICAgICAgICIwLjEyNzQ1LCAwLjE5NzA2NywgMC4yNTM4NTMsIDAuMjkzMzI5LCAwLjM1NjA5NiwgMC40MTA5MjgsIDAuNDg5MjQ3IiwgXAotICAgICAgICAgICIwLjE0MTIwOSwgMC4yMTExMjcsIDAuMjY3ODcxLCAwLjMwNzMyOSwgMC4zNzAwNzksIDAuNDI0OTM1LCAwLjUwMzIzNSIsIFwKLSAgICAgICAgICAiMC4xNTE2ODEsIDAuMjIyMTc3LCAwLjI3OTAzMywgMC4zMTg0ODksIDAuMzgxMjkyLCAwLjQzNjA5LCAwLjUxNDQxMiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0MjkwNCwgMC4xNTQ5NDcsIDAuMjY1NTE1LCAwLjM0NTg0NCwgMC40NzU2MTQsIDAuNTkwMTU1LCAwLjc1NDUyMyIsIFwKLSAgICAgICAgICAiMC4wNDI5NzEsIDAuMTU0ODg2LCAwLjI2NTQxNSwgMC4zNDU4NzQsIDAuNDc1NjAzLCAwLjU5MDE0OSwgMC43NTQ2MDQiLCBcCi0gICAgICAgICAgIjAuMDQzMDI5LCAwLjE1NDk0OSwgMC4yNjU1MjgsIDAuMzQ1ODQ3LCAwLjQ3NTYyLCAwLjU4OTY3MSwgMC43NTQ1NjUiLCBcCi0gICAgICAgICAgIjAuMDQzMDAxLCAwLjE1NDk3MSwgMC4yNjU1MjksIDAuMzQ1ODU4LCAwLjQ3NTYzOSwgMC41ODk3NDMsIDAuNzU0NjEyIiwgXAotICAgICAgICAgICIwLjA0MzMwOSwgMC4xNTQ5NjEsIDAuMjY1NjAyLCAwLjM0NTkxMiwgMC40NzUzODIsIDAuNTkwMTc3LCAwLjc1NDYyNyIsIFwKLSAgICAgICAgICAiMC4wNDQ3LCAwLjE1NTY2NCwgMC4yNjU3OTgsIDAuMzQ2MTYxLCAwLjQ3NTc5MSwgMC41OTAyMjgsIDAuNzU0NTY3IiwgXAotICAgICAgICAgICIwLjA0NjQ0OSwgMC4xNTY1NDEsIDAuMjY2NDk4LCAwLjM0NjU1NSwgMC40NzU5NjQsIDAuNTkwNDQ3LCAwLjc1NDY1OSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwMDM0MSwgMC4xNzE1NzUsIDAuMjI4NDE2LCAwLjI2NzQ4NiwgMC4zMjkzNiwgMC4zODMyNTUsIDAuNDYwMTc1IiwgXAotICAgICAgICAgICIwLjEwNzc2NSwgMC4xNzkwMDIsIDAuMjM1ODM5LCAwLjI3NDkwOSwgMC4zMzY4MjIsIDAuMzkwNjc5LCAwLjQ2NzU5NiIsIFwKLSAgICAgICAgICAiMC4xMTcyOTQsIDAuMTg4NDU5LCAwLjI0NTMyNCwgMC4yODQ0MzIsIDAuMzQ2Mjg5LCAwLjQwMDE2NywgMC40NzcwODYiLCBcCi0gICAgICAgICAgIjAuMTI2OTMxLCAwLjE5ODA4NCwgMC4yNTQ5MjgsIDAuMjk0MDIzLCAwLjM1NTkxNSwgMC40MDk3NiwgMC40ODY2ODYiLCBcCi0gICAgICAgICAgIjAuMTM2MzY4LCAwLjIwNzQ2NiwgMC4yNjQzMTcsIDAuMzAzNDI5LCAwLjM2NTI5MSwgMC40MTkxNSwgMC40OTYwOSIsIFwKLSAgICAgICAgICAiMC4xNTAyODcsIDAuMjIxNDI5LCAwLjI3ODM3OSwgMC4zMTc0MDEsIDAuMzc5MzMyLCAwLjQzMzE3NiwgMC41MTAxMzQiLCBcCi0gICAgICAgICAgIjAuMTYxMDU3LCAwLjIzMjY0MiwgMC4yODk1OTcsIDAuMzI4NTk1LCAwLjM5MDU1MywgMC40NDQzMzksIDAuNTIxMzE2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQ1NDMsIDAuMTU0ODA2LCAwLjI2MTI4LCAwLjMzODQyMywgMC40NjMxMjEsIDAuNTczMjY2LCAwLjczMDk5MSIsIFwKLSAgICAgICAgICAiMC4wNDU0NDUsIDAuMTU0ODA5LCAwLjI2MTI4MywgMC4zMzg0MjUsIDAuNDYzMTU3LCAwLjU3MzI3MiwgMC43MzA4MTciLCBcCi0gICAgICAgICAgIjAuMDQ1MzcsIDAuMTU0NzcyLCAwLjI2MTI5LCAwLjMzODQ1MiwgMC40NjMxODMsIDAuNTczMTY0LCAwLjczMTkzOCIsIFwKLSAgICAgICAgICAiMC4wNDUzMzIsIDAuMTU0ODAxLCAwLjI2MTI4NCwgMC4zMzg0MDcsIDAuNDYzMTUzLCAwLjU3MzY5NiwgMC43MzE4NzMiLCBcCi0gICAgICAgICAgIjAuMDQ1NDY1LCAwLjE1NDg4MywgMC4yNjEzMDgsIDAuMzM4NDYxLCAwLjQ2MzI3OCwgMC41NzM3MjMsIDAuNzMxOTM4IiwgXAotICAgICAgICAgICIwLjA0NjUwMSwgMC4xNTUzNDIsIDAuMjYxNjQ3LCAwLjMzODY2OSwgMC40NjMyLCAwLjU3Mzc5LCAwLjczMTI4OSIsIFwKLSAgICAgICAgICAiMC4wNDc5OTUsIDAuMTU2MDk3LCAwLjI2MTk3MywgMC4zMzkwNCwgMC40NjMzMzMsIDAuNTczMzQ3LCAwLjczMjA0OCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDM4MzcsIDAuMTczNTMsIDAuMjMwMjcxLCAwLjI2OTc0LCAwLjMzMjUsIDAuMzg3MzU1LCAwLjQ2NTY1OCIsIFwKLSAgICAgICAgICAiMC4xMTExNTEsIDAuMTgwODIyLCAwLjIzNzYsIDAuMjc3MDcyLCAwLjMzOTgzNCwgMC4zOTQ2NzgsIDAuNDcyOTg0IiwgXAotICAgICAgICAgICIwLjExNzM3NCwgMC4xODcxMDksIDAuMjQzODgyLCAwLjI4MzM4LCAwLjM0NjE0NCwgMC40MDA5NzgsIDAuNDc5Mjc5IiwgXAotICAgICAgICAgICIwLjEyMTkwMSwgMC4xOTE1NywgMC4yNDgzNDIsIDAuMjg3ODMsIDAuMzUwNjA4LCAwLjQwNTQzNSwgMC40ODM3NDIiLCBcCi0gICAgICAgICAgIjAuMTI1MjI4LCAwLjE5NDk1NSwgMC4yNTE3MzUsIDAuMjkxMjEsIDAuMzU0MDA0LCAwLjQwODgzMywgMC40ODcxMyIsIFwKLSAgICAgICAgICAiMC4xMjk3NzMsIDAuMTk5NTI4LCAwLjI1NjM1MSwgMC4yOTU4NjcsIDAuMzU4NjIxLCAwLjQxMzQ2LCAwLjQ5MTc2MSIsIFwKLSAgICAgICAgICAiMC4xMzMyNDQsIDAuMjAyOTU0LCAwLjI1OTg2NywgMC4yOTkzNzcsIDAuMzYyMTg2LCAwLjQxNzAxMSwgMC40OTUzNTciKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDI5MjgsIDAuMTU0OTg4LCAwLjI2NTQ5MSwgMC4zNDU4NzksIDAuNDc1NTAyLCAwLjU5MDE2NSwgMC43NTQ2MDMiLCBcCi0gICAgICAgICAgIjAuMDQzMDM3LCAwLjE1NDg1NywgMC4yNjUzODIsIDAuMzQ1ODk0LCAwLjQ3NTY0NiwgMC41OTAxODEsIDAuNzU0NjA4IiwgXAotICAgICAgICAgICIwLjA0MzAwMiwgMC4xNTQ5MDUsIDAuMjY1NDcsIDAuMzQ1ODYyLCAwLjQ3NTYzOSwgMC41OTAxNjQsIDAuNzU0NjE5IiwgXAotICAgICAgICAgICIwLjA0MjkwNCwgMC4xNTQ4ODUsIDAuMjY1NDMzLCAwLjM0NTg4MywgMC40NzU2MTMsIDAuNTkwMTU4LCAwLjc1NDYyMyIsIFwKLSAgICAgICAgICAiMC4wNDMwNjMsIDAuMTU0OTUzLCAwLjI2NTQ1MywgMC4zNDU2ODYsIDAuNDc1NjU2LCAwLjU5MDE5NiwgMC43NTMyMDYiLCBcCi0gICAgICAgICAgIjAuMDQyOTUyLCAwLjE1NDkzNywgMC4yNjU3MTcsIDAuMzQ2MDMzLCAwLjQ3NTYwNCwgMC41OTAyNDMsIDAuNzUzMzk0IiwgXAotICAgICAgICAgICIwLjA0Mjk1MSwgMC4xNTUwNjQsIDAuMjY1NzY1LCAwLjM0NjA1MSwgMC40NzU4ODIsIDAuNTkwMzI3LCAwLjc1NDUyNyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExMjA0MSwgMC4xODMyNywgMC4yNDAwNzYsIDAuMjc5MjIyLCAwLjM0MTA2OSwgMC4zOTQ5NzUsIDAuNDcxODkyIiwgXAotICAgICAgICAgICIwLjExOTUxNywgMC4xOTA2NTUsIDAuMjQ3NTMsIDAuMjg2NjM4LCAwLjM0ODUwMSwgMC40MDIzOTUsIDAuNDc5MzA0IiwgXAotICAgICAgICAgICIwLjEyNTgsIDAuMTk2OTk0LCAwLjI1Mzg1NywgMC4yOTI5MzEsIDAuMzU0Nzk1LCAwLjQwODcsIDAuNDg1NjE4IiwgXAotICAgICAgICAgICIwLjEzMDM5LCAwLjIwMTYwNiwgMC4yNTg0NjksIDAuMjk3NTU5LCAwLjM1OTQ1MSwgMC40MTMzMTQsIDAuNDkwMjQzIiwgXAotICAgICAgICAgICIwLjEzNDM0NiwgMC4yMDU0ODUsIDAuMjYyMzU0LCAwLjMwMTQ2MywgMC4zNjMzMywgMC40MTcxOTYsIDAuNDk0MTM1IiwgXAotICAgICAgICAgICIwLjEzOTIwNywgMC4yMTAzMjksIDAuMjY3MjY5LCAwLjMwNjM3NywgMC4zNjgyNjgsIDAuNDIyMTM4LCAwLjQ5OTA2NCIsIFwKLSAgICAgICAgICAiMC4xNDI5MTUsIDAuMjE0MDg2LCAwLjI3MTA4LCAwLjMxMDIxNiwgMC4zNzIwOTYsIDAuNDI1OTg2LCAwLjUwMjkxNCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0NTM1MiwgMC4xNTQ4NTksIDAuMjYxMjU0LCAwLjMzODUsIDAuNDYzMDUsIDAuNTczNzU2LCAwLjczMjAxNSIsIFwKLSAgICAgICAgICAiMC4wNDU1MjUsIDAuMTU0ODczLCAwLjI2MTM0NywgMC4zMzg1LCAwLjQ2MzIzNiwgMC41NzMxMzUsIDAuNzMyMDAzIiwgXAotICAgICAgICAgICIwLjA0NTQwNCwgMC4xNTQ4NDUsIDAuMjYxMzEyLCAwLjMzODQ1NSwgMC40NjMzMzUsIDAuNTczNzQ4LCAwLjczMTk5MyIsIFwKLSAgICAgICAgICAiMC4wNDUzODQsIDAuMTU0NzgyLCAwLjI2MTI5MSwgMC4zMzgzNzEsIDAuNDYzMjAzLCAwLjU3Mzc0MywgMC43MzEyNzIiLCBcCi0gICAgICAgICAgIjAuMDQ1NDA2LCAwLjE1NDgwNywgMC4yNjEzLCAwLjMzODQ1NywgMC40NjMxODEsIDAuNTczNzQ3LCAwLjczMTk2NSIsIFwKLSAgICAgICAgICAiMC4wNDU0MzEsIDAuMTU0ODU5LCAwLjI2MTI2NywgMC4zMzg1NjIsIDAuNDYzMjksIDAuNTczNzg1LCAwLjczMTM3NCIsIFwKLSAgICAgICAgICAiMC4wNDUyNjksIDAuMTU0OTI1LCAwLjI2MTQyNCwgMC4zMzg1MSwgMC40NjMzMzMsIDAuNTczNDcsIDAuNzMyMDQ4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlMxIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0NjM5LCAwLjEwNTEyNCwgMC4xNjAwMjcsIDAuMTk5MjExLCAwLjI2MTgyMiwgMC4zMTY2OTYsIDAuMzk0ODg4IiwgXAotICAgICAgICAgICIwLjA1NDIzMywgMC4xMTI5NTMsIDAuMTY3ODcyLCAwLjIwNzAzNywgMC4yNjk2NjcsIDAuMzI0NTA0LCAwLjQwMjc0NiIsIFwKLSAgICAgICAgICAiMC4wNjM5MiwgMC4xMjI2OCwgMC4xNzc1ODgsIDAuMjE2NzU5LCAwLjI3OTM4NSwgMC4zMzQyMjQsIDAuNDEyNDYiLCBcCi0gICAgICAgICAgIjAuMDcyMjczLCAwLjEzMTI1NCwgMC4xODYxNjUsIDAuMjI1MzI5LCAwLjI4Nzk0OCwgMC4zNDI3NTYsIDAuNDIxMDM3IiwgXAotICAgICAgICAgICIwLjA3OTEwMSwgMC4xMzg0NzEsIDAuMTkzMzY4LCAwLjIzMjUyLCAwLjI5NTE0NywgMC4zNDk5MjksIDAuNDI4MTkyIiwgXAotICAgICAgICAgICIwLjA4Nzk0NSwgMC4xNDgwNjIsIDAuMjAyOTI4LCAwLjI0MjA1LCAwLjMwNDY1NywgMC4zNTk1MjYsIDAuNDM3NzM2IiwgXAotICAgICAgICAgICIwLjA5NDIwNiwgMC4xNTUwMTksIDAuMjA5ODk4LCAwLjI0OTAzMiwgMC4zMTE2MjQsIDAuMzY2NDEzLCAwLjQ0NDY4OCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzMDQ2NSwgMC4xNDA5OTksIDAuMjU1MTY4LCAwLjMzNzUyMSwgMC40Njg4ODMsIDAuNTg0MDk3LCAwLjc1MDQwNSIsIFwKLSAgICAgICAgICAiMC4wMzA0NjgsIDAuMTQwOTkyLCAwLjI1NTE1MiwgMC4zMzc0NjEsIDAuNDY4ODE4LCAwLjU4NDIzNSwgMC43NTAzMDEiLCBcCi0gICAgICAgICAgIjAuMDMwNzc2LCAwLjE0MTA3MywgMC4yNTUyMDIsIDAuMzM2OTQxLCAwLjQ2ODg1LCAwLjU4Mzk0OCwgMC43NTAzNzMiLCBcCi0gICAgICAgICAgIjAuMDMyMjE0LCAwLjE0MTQzOCwgMC4yNTQ5MjcsIDAuMzM3NTcsIDAuNDY5NDM1LCAwLjU4NDM4OSwgMC43NTAzMDIiLCBcCi0gICAgICAgICAgIjAuMDMzODU1LCAwLjE0MTk4MSwgMC4yNTU1MjIsIDAuMzM3NjY4LCAwLjQ2OTUsIDAuNTg0NDcxLCAwLjc1MDMyMiIsIFwKLSAgICAgICAgICAiMC4wMzYyNDYsIDAuMTQyOTY2LCAwLjI1NTgyMywgMC4zMzc4MTYsIDAuNDY5MTg1LCAwLjU4NDI2MiwgMC43NTAzODIiLCBcCi0gICAgICAgICAgIjAuMDM4MDg3LCAwLjE0Mzc5OSwgMC4yNTYzNDcsIDAuMzM4MTEsIDAuNDY5MTY2LCAwLjU4NTM0MywgMC43NTA1MDgiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzI5NjksIDAuMTQ0MTUsIDAuMjAwOTMzLCAwLjI0MDAxMiwgMC4zMDE4NTIsIDAuMzU1NjkzLCAwLjQzMjYwMSIsIFwKLSAgICAgICAgICAiMC4wNzk2ODksIDAuMTUwNzYsIDAuMjA3NTYzLCAwLjI0NjYwOSwgMC4zMDg0NTIsIDAuMzYyMzM0LCAwLjQzOTIzMSIsIFwKLSAgICAgICAgICAiMC4wODc3NTUsIDAuMTU4ODAzLCAwLjIxNTYxNCwgMC4yNTQ2OTMsIDAuMzE2NTM0LCAwLjM3MDQxNCwgMC40NDczIiwgXAotICAgICAgICAgICIwLjA5NTczMSwgMC4xNjY2NzUsIDAuMjIzNDUsIDAuMjYyNTA1LCAwLjMyNDMzMiwgMC4zNzgyMjEsIDAuNDU1MTIyIiwgXAotICAgICAgICAgICIwLjEwMzM5MSwgMC4xNzQxOTcsIDAuMjMwOTcyLCAwLjI3MDAxMSwgMC4zMzE4ODEsIDAuMzg1NzMsIDAuNDYyNjQyIiwgXAotICAgICAgICAgICIwLjExNDEzNiwgMC4xODQ5MTQsIDAuMjQxNzc4LCAwLjI4MDg2NywgMC4zNDI2ODMsIDAuMzk2NTUyLCAwLjQ3MzQ0MSIsIFwKLSAgICAgICAgICAiMC4xMjIxNzEsIDAuMTkzMTA3LCAwLjI1MDEwNSwgMC4yODkyMDcsIDAuMzUxMDA0LCAwLjQwNDg3OCwgMC40ODE3NDIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDQ3NjEsIDAuMTU0Mzg3LCAwLjI2MDk0NywgMC4zMzgxMjYsIDAuNDYyOTMyLCAwLjU3MzQ5OSwgMC43MzE3NCIsIFwKLSAgICAgICAgICAiMC4wNDQ3MywgMC4xNTQzNTgsIDAuMjYwOTMyLCAwLjMzODEyLCAwLjQ2Mjk0NywgMC41NzM0ODMsIDAuNzMxNzQ1IiwgXAotICAgICAgICAgICIwLjA0NDQ1MiwgMC4xNTQyMTksIDAuMjYwODkxLCAwLjMzODA5NCwgMC40NjI5MDUsIDAuNTcyODQ1LCAwLjczMTcyNiIsIFwKLSAgICAgICAgICAiMC4wNDQwMjgsIDAuMTU0MTUyLCAwLjI2MDg2MywgMC4zMzgxMDcsIDAuNDYyODA3LCAwLjU3MzQ1MywgMC43MzE3MjQiLCBcCi0gICAgICAgICAgIjAuMDQ0NTk5LCAwLjE1NDIyLCAwLjI2MDc5OSwgMC4zMzgxMywgMC40NjI5NDIsIDAuNTczMDc5LCAwLjczMTA3MyIsIFwKLSAgICAgICAgICAiMC4wNDYzNDksIDAuMTU0OTM1LCAwLjI2MTQxOCwgMC4zMzg1MDksIDAuNDYzMTg4LCAwLjU3MzcwOCwgMC43MzE5OTMiLCBcCi0gICAgICAgICAgIjAuMDQ4MjYyLCAwLjE1NTY1OSwgMC4yNjE5ODMsIDAuMzM5MDM0LCAwLjQ2MzU5NCwgMC41NzQwMzcsIDAuNzMyMDkyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlMxIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2OTMwMiwgMC4xMzg4ODksIDAuMTk1NTcxLCAwLjIzNTAyMywgMC4yOTc3NTQsIDAuMzUyNTg5LCAwLjQzMDg3MyIsIFwKLSAgICAgICAgICAiMC4wNzcxNjEsIDAuMTQ2NzM3LCAwLjIwMzQxNywgMC4yNDI4NzcsIDAuMzA1NjI5LCAwLjM2MDQ0LCAwLjQzODczNSIsIFwKLSAgICAgICAgICAiMC4wODU5ODMsIDAuMTU1NTE3LCAwLjIxMjE3MiwgMC4yNTE2NjMsIDAuMzE0NDAzLCAwLjM2OTIxNywgMC40NDc1MTQiLCBcCi0gICAgICAgICAgIjAuMDkyODYsIDAuMTYyMjY5LCAwLjIxODk1NCwgMC4yNTg0MTksIDAuMzIxMTQyLCAwLjM3NTk3MywgMC40NTQyNzQiLCBcCi0gICAgICAgICAgIjAuMDk3ODg1LCAwLjE2NzAyNCwgMC4yMjM3NjIsIDAuMjYzMjEzLCAwLjMyNTk1NiwgMC4zODA3OTQsIDAuNDU5MDgiLCBcCi0gICAgICAgICAgIjAuMTAzOTE3LCAwLjE3MjgxNiwgMC4yMjk1NzEsIDAuMjY4OTk4LCAwLjMzMTc4NSwgMC4zODY1NjQsIDAuNDY0ODU5IiwgXAotICAgICAgICAgICIwLjEwODI4LCAwLjE3NzQxMiwgMC4yMzM4NDQsIDAuMjczNDEsIDAuMzM2MTg5LCAwLjM5MTAyMywgMC40NjkxIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQyNDc3LCAwLjE1NDU5OCwgMC4yNjUyMjcsIDAuMzQ1NjA2LCAwLjQ3NTI1OCwgMC41ODk5NDYsIDAuNzU0NDA3IiwgXAotICAgICAgICAgICIwLjA0MjQxNSwgMC4xNTQ1NjQsIDAuMjY1MjAzLCAwLjM0NTU4OCwgMC40NzUzNjcsIDAuNTg5OTQzLCAwLjc1NDM5OSIsIFwKLSAgICAgICAgICAiMC4wNDIxNDYsIDAuMTU0NDU0LCAwLjI2NTE5OCwgMC4zNDU1NDMsIDAuNDc1Mzc5LCAwLjU4OTk0MywgMC43NTQzOTIiLCBcCi0gICAgICAgICAgIjAuMDQxNTA5LCAwLjE1NDI1MywgMC4yNjUxMTcsIDAuMzQ1NTEyLCAwLjQ3NTM1NywgMC41ODk5MTEsIDAuNzU0Mzk4IiwgXAotICAgICAgICAgICIwLjA0MTE5OSwgMC4xNTQzMTMsIDAuMjY0OTIsIDAuMzQ1NDUxLCAwLjQ3NTMyNywgMC41ODk4OTEsIDAuNzU0MzI1IiwgXAotICAgICAgICAgICIwLjA0MTM5NiwgMC4xNTM4MSwgMC4yNjQ3OTIsIDAuMzQ1MjE0LCAwLjQ3NTA4NSwgMC41ODk4NjcsIDAuNzU0MzMiLCBcCi0gICAgICAgICAgIjAuMDQxNDk5LCAwLjE1MzY2NSwgMC4yNjQ2MzIsIDAuMzQ1MDg0LCAwLjQ3NDkzMSwgMC41ODk2MzcsIDAuNzUzOSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2MjQzLCAwLjEyMTAyMiwgMC4xNzUwMywgMC4yMTM1MDgsIDAuMjc1MDI1LCAwLjMyODg0NywgMC40MDU3NzQiLCBcCi0gICAgICAgICAgIjAuMDcwMjY1LCAwLjEyODg3MiwgMC4xODI4ODEsIDAuMjIxMzU2LCAwLjI4MjkxLCAwLjMzNjcxOCwgMC40MTM1NDciLCBcCi0gICAgICAgICAgIjAuMDc3NDg4LCAwLjEzNjA4NywgMC4xOTAxLCAwLjIyODU2OCwgMC4yOTAxMjQsIDAuMzQzOTQ2LCAwLjQyMDc3NiIsIFwKLSAgICAgICAgICAiMC4wODI1NDYsIDAuMTQxMTkzLCAwLjE5NTIwMywgMC4yMzM2NzUsIDAuMjk1MjE1LCAwLjM0OTAyOSwgMC40MjU4ODYiLCBcCi0gICAgICAgICAgIjAuMDg2NzUyLCAwLjE0NTQwNCwgMC4xOTk0MywgMC4yMzc5MDQsIDAuMjk5NDIsIDAuMzUzMjI4LCAwLjQzMDEwMiIsIFwKLSAgICAgICAgICAiMC4wOTI0MzksIDAuMTUxMDYyLCAwLjIwNTEzMywgMC4yNDM2MTYsIDAuMzA1MTYsIDAuMzU4OTUzLCAwLjQzNTg0MyIsIFwKLSAgICAgICAgICAiMC4wOTY2NjksIDAuMTU1MjUzLCAwLjIwOTMyOCwgMC4yNDc4MjIsIDAuMzA5MzUzLCAwLjM2MzE2NiwgMC40NDAwNDIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzA1MzYsIDAuMTM3MzU4LCAwLjI0NzUwMiwgMC4zMjYzNTQsIDAuNDU0MzE3LCAwLjU2NTQ0NywgMC43MjQ1MjciLCBcCi0gICAgICAgICAgIjAuMDMwNDc0LCAwLjEzNzM3OSwgMC4yNDcyNjYsIDAuMzI2ODY5LCAwLjQ1NDQxNiwgMC41NjUyNDQsIDAuNzI1ODU3IiwgXAotICAgICAgICAgICIwLjAzMDQxMiwgMC4xMzczNSwgMC4yNDc0ODIsIDAuMzI2NTE0LCAwLjQ1NDM4NiwgMC41NjYyMDcsIDAuNzI1MDQ2IiwgXAotICAgICAgICAgICIwLjAzMDM2NywgMC4xMzc0MjEsIDAuMjQ3NTMzLCAwLjMyNjgzMiwgMC40NTQzNTUsIDAuNTY2MTA0LCAwLjcyNTE0OSIsIFwKLSAgICAgICAgICAiMC4wMzA1NDQsIDAuMTM3NDQxLCAwLjI0NzUyLCAwLjMyNjQ3MywgMC40NTQyNTUsIDAuNTY1OTU0LCAwLjcyNTA4IiwgXAotICAgICAgICAgICIwLjAzMDQ2LCAwLjEzNzM5MywgMC4yNDczMjcsIDAuMzI2NDksIDAuNDUzNzQyLCAwLjU2NTgwNywgMC43MjU1NzIiLCBcCi0gICAgICAgICAgIjAuMDMwNDc5LCAwLjEzNzI5NCwgMC4yNDcxNDMsIDAuMzI2NTIsIDAuNDUzNzkxLCAwLjU2NTU1NywgMC43MjQ4NzciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNzc1LCAwLjAwNzM0NCwgMC4wMDczMjksIDAuMDA3MzI3LCAwLjAwNzMyNiwgMC4wMDczMjcsIDAuMDA3MzI2IiwgXAotICAgICAgICAgICIwLjAwNzczLCAwLjAwNzMyMSwgMC4wMDczMSwgMC4wMDczMDgsIDAuMDA3MzA4LCAwLjAwNzMwOCwgMC4wMDczMDgiLCBcCi0gICAgICAgICAgIjAuMDA3NjgyLCAwLjAwNzMwNiwgMC4wMDczMDMsIDAuMDA3MzA0LCAwLjAwNzMwNiwgMC4wMDczMDksIDAuMDA3MzExIiwgXAotICAgICAgICAgICIwLjAwNzgwOSwgMC4wMDczNTcsIDAuMDA3MzQsIDAuMDA3MzQsIDAuMDA3MzM5LCAwLjAwNzM0LCAwLjAwNzM0NCIsIFwKLSAgICAgICAgICAiMC4wMDc5MDQsIDAuMDA3NDA5LCAwLjAwNzM4MywgMC4wMDczODEsIDAuMDA3MzgsIDAuMDA3MzgsIDAuMDA3MzgyIiwgXAotICAgICAgICAgICIwLjAwODEzMiwgMC4wMDc1MjksIDAuMDA3NDgzLCAwLjAwNzQ3NSwgMC4wMDc0NzMsIDAuMDA3NDY4LCAwLjAwNzQ3IiwgXAotICAgICAgICAgICIwLjAwODI3OCwgMC4wMDc2MzcsIDAuMDA3NTY1LCAwLjAwNzU1NywgMC4wMDc1NTIsIDAuMDA3NTQ5LCAwLjAwNzU1MSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEwNDM2LCAwLjAwOTkwMSwgMC4wMDk4OCwgMC4wMDk4NzYsIDAuMDA5ODc1LCAwLjAwOTg3NSwgMC4wMDk4NzUiLCBcCi0gICAgICAgICAgIjAuMDEwNDEzLCAwLjAwOTg3NiwgMC4wMDk4NiwgMC4wMDk4NiwgMC4wMDk4NiwgMC4wMDk4NjEsIDAuMDA5ODYzIiwgXAotICAgICAgICAgICIwLjAxMDM3OSwgMC4wMDk4NjcsIDAuMDA5ODU2LCAwLjAwOTg1NywgMC4wMDk4NiwgMC4wMDk4NjIsIDAuMDA5ODY0IiwgXAotICAgICAgICAgICIwLjAxMDQ1LCAwLjAwOTg5OCwgMC4wMDk4OCwgMC4wMDk4OCwgMC4wMDk4ODIsIDAuMDA5ODg1LCAwLjAwOTg4NiIsIFwKLSAgICAgICAgICAiMC4wMTA1OTQsIDAuMDA5OTYzLCAwLjAwOTkzLCAwLjAwOTkyNiwgMC4wMDk5MjQsIDAuMDA5OTI1LCAwLjAwOTkyNSIsIFwKLSAgICAgICAgICAiMC4wMTA4MTgsIDAuMDEwMDc0LCAwLjAxMDAyMSwgMC4wMTAwMTEsIDAuMDEwMDA1LCAwLjAxMDAwNCwgMC4wMTAwMDMiLCBcCi0gICAgICAgICAgIjAuMDEwOTY3LCAwLjAxMDE2LCAwLjAxMDA5NywgMC4wMTAwODUsIDAuMDEwMDgyLCAwLjAxMDA4MSwgMC4wMTAwNzkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNzQ1MSwgMC4wMDcwNiwgMC4wMDcwNTEsIDAuMDA3MDUsIDAuMDA3MDUxLCAwLjAwNzA1MSwgMC4wMDcwNTIiLCBcCi0gICAgICAgICAgIjAuMDA3NDI3LCAwLjAwNzA0MSwgMC4wMDcwMzIsIDAuMDA3MDMzLCAwLjAwNzAzMywgMC4wMDcwMzQsIDAuMDA3MDM1IiwgXAotICAgICAgICAgICIwLjAwNzQxMywgMC4wMDcwMzIsIDAuMDA3MDI5LCAwLjAwNzAzMiwgMC4wMDcwMzMsIDAuMDA3MDM1LCAwLjAwNzA0MSIsIFwKLSAgICAgICAgICAiMC4wMDc0NiwgMC4wMDcwNTYsIDAuMDA3MDUsIDAuMDA3MDUxLCAwLjAwNzA1NSwgMC4wMDcwNTgsIDAuMDA3MDYiLCBcCi0gICAgICAgICAgIjAuMDA3NjgxLCAwLjAwNzE1MSwgMC4wMDcxMiwgMC4wMDcxMTUsIDAuMDA3MTEsIDAuMDA3MTA5LCAwLjAwNzEwOSIsIFwKLSAgICAgICAgICAiMC4wMDc4NjMsIDAuMDA3MjUxLCAwLjAwNzIwNSwgMC4wMDcxOTcsIDAuMDA3MTksIDAuMDA3MTg4LCAwLjAwNzE5IiwgXAotICAgICAgICAgICIwLjAwODA0NiwgMC4wMDczNjIsIDAuMDA3MzAzLCAwLjAwNzI5LCAwLjAwNzI4LCAwLjAwNzI3NiwgMC4wMDcyNzciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMDc3NSwgMC4wMTAyMTYsIDAuMDEwMTkxLCAwLjAxMDE4NywgMC4wMTAxODQsIDAuMDEwMTg0LCAwLjAxMDE4NCIsIFwKLSAgICAgICAgICAiMC4wMTA3MzksIDAuMDEwMTk4LCAwLjAxMDE3NiwgMC4wMTAxNzMsIDAuMDEwMTcyLCAwLjAxMDE3MiwgMC4wMTAxNzIiLCBcCi0gICAgICAgICAgIjAuMDEwNzEyLCAwLjAxMDE3NiwgMC4wMTAxNjQsIDAuMDEwMTY1LCAwLjAxMDE2OCwgMC4wMTAxNywgMC4wMTAxNzIiLCBcCi0gICAgICAgICAgIjAuMDEwNzUzLCAwLjAxMDIwNCwgMC4wMTAxODYsIDAuMDEwMTg2LCAwLjAxMDE4OSwgMC4wMTAxOTEsIDAuMDEwMTkzIiwgXAotICAgICAgICAgICIwLjAxMDg5LCAwLjAxMDI2NiwgMC4wMTAyMzQsIDAuMDEwMjMsIDAuMDEwMjI5LCAwLjAxMDIzLCAwLjAxMDIzMSIsIFwKLSAgICAgICAgICAiMC4wMTExMjksIDAuMDEwMzgzLCAwLjAxMDMzMSwgMC4wMTAzMiwgMC4wMTAzMTUsIDAuMDEwMzEzLCAwLjAxMDMxMyIsIFwKLSAgICAgICAgICAiMC4wMTEzODQsIDAuMDEwNTI1LCAwLjAxMDQ0MywgMC4wMTA0MjYsIDAuMDEwNDEyLCAwLjAxMDQwOCwgMC4wMTA0MDMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNTc5NywgMC4wMDU4MjYsIDAuMDA1ODM0LCAwLjAwNTgzNywgMC4wMDU4MzUsIDAuMDA1ODQ1LCAwLjAwNTg0NCIsIFwKLSAgICAgICAgICAiMC4wMDU3MTcsIDAuMDA1NzY2LCAwLjAwNTc4MSwgMC4wMDU3ODgsIDAuMDA1NzksIDAuMDA1Nzk2LCAwLjAwNTc5OCIsIFwKLSAgICAgICAgICAiMC4wMDU4MDQsIDAuMDA1Nzg3LCAwLjAwNTc5NywgMC4wMDU4LCAwLjAwNTgwMywgMC4wMDU4MDYsIDAuMDA1ODA3IiwgXAotICAgICAgICAgICIwLjAwNTkwOCwgMC4wMDU4MzYsIDAuMDA1ODM5LCAwLjAwNTg0MiwgMC4wMDU4NDUsIDAuMDA1ODQ2LCAwLjAwNTg0OCIsIFwKLSAgICAgICAgICAiMC4wMDYxMTksIDAuMDA1OTMyLCAwLjAwNTkyNSwgMC4wMDU5MjYsIDAuMDA1OTI2LCAwLjAwNTkyMSwgMC4wMDU5MiIsIFwKLSAgICAgICAgICAiMC4wMDYzNjUsIDAuMDA2MDk0LCAwLjAwNjA3MiwgMC4wMDYwNjcsIDAuMDA2MDYxLCAwLjAwNjA1OSwgMC4wMDYwNiIsIFwKLSAgICAgICAgICAiMC4wMDY0MDUsIDAuMDA2MTk1LCAwLjAwNjE5LCAwLjAwNjE4OSwgMC4wMDYxODcsIDAuMDA2MTg5LCAwLjAwNjE5MSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA4NDEyLCAwLjAwODQ5NywgMC4wMDg1MjEsIDAuMDA4NTI4LCAwLjAwODUzNSwgMC4wMDg1MzksIDAuMDA4NTQyIiwgXAotICAgICAgICAgICIwLjAwODM2MywgMC4wMDg0NTksIDAuMDA4NDg4LCAwLjAwODQ5OCwgMC4wMDg1MDcsIDAuMDA4NTEyLCAwLjAwODUxNiIsIFwKLSAgICAgICAgICAiMC4wMDg0MjUsIDAuMDA4NDcyLCAwLjAwODUsIDAuMDA4NTEsIDAuMDA4NTE4LCAwLjAwODUyMywgMC4wMDg1MjciLCBcCi0gICAgICAgICAgIjAuMDA4NTQyLCAwLjAwODUxMSwgMC4wMDg1MzksIDAuMDA4NTQ4LCAwLjAwODU1NiwgMC4wMDg1NiwgMC4wMDg1NjQiLCBcCi0gICAgICAgICAgIjAuMDA4Njg2LCAwLjAwODU4LCAwLjAwODYwMywgMC4wMDg2MDYsIDAuMDA4NjEzLCAwLjAwODYxNywgMC4wMDg2MjEiLCBcCi0gICAgICAgICAgIjAuMDA4OTczLCAwLjAwODc0LCAwLjAwODc0LCAwLjAwODc0MiwgMC4wMDg3NDQsIDAuMDA4NzQ3LCAwLjAwODc0OSIsIFwKLSAgICAgICAgICAiMC4wMDg5OTEsIDAuMDA4ODI1LCAwLjAwODg0LCAwLjAwODg0OCwgMC4wMDg4NTMsIDAuMDA4ODU5LCAwLjAwODg2NSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlMwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMDA2OSwgMC4wMDk2NzMsIDAuMDA5NjY0LCAwLjAwOTY2NCwgMC4wMDk2NjUsIDAuMDA5NjY1LCAwLjAwOTY2NiIsIFwKLSAgICAgICAgICAiMC4wMTAwODMsIDAuMDA5Njg0LCAwLjAwOTY3NCwgMC4wMDk2NzQsIDAuMDA5Njc1LCAwLjAwOTY3NiwgMC4wMDk2NzgiLCBcCi0gICAgICAgICAgIjAuMDEwMTQ3LCAwLjAwOTc3LCAwLjAwOTc2MywgMC4wMDk3NiwgMC4wMDk3NjEsIDAuMDA5NzY3LCAwLjAwOTc3IiwgXAotICAgICAgICAgICIwLjAxMDI1MSwgMC4wMDk4NzcsIDAuMDA5ODcxLCAwLjAwOTg3MiwgMC4wMDk4NzUsIDAuMDA5ODc3LCAwLjAwOTg3OSIsIFwKLSAgICAgICAgICAiMC4wMTAzNjksIDAuMDEwMDA4LCAwLjAxMDAwMiwgMC4wMTAwMDMsIDAuMDEwMDA1LCAwLjAxMDAwNiwgMC4wMTAwMDgiLCBcCi0gICAgICAgICAgIjAuMDEwNjYsIDAuMDEwMjc1LCAwLjAxMDI3MSwgMC4wMTAyNzIsIDAuMDEwMjc0LCAwLjAxMDI3NSwgMC4wMTAyNzciLCBcCi0gICAgICAgICAgIjAuMDEwODQzLCAwLjAxMDQ2OSwgMC4wMTA0NjIsIDAuMDEwNDYzLCAwLjAxMDQ3MywgMC4wMTA0NjMsIDAuMDEwNDcyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTAyMDksIDAuMDA5Njc5LCAwLjAwOTY2MiwgMC4wMDk2NjEsIDAuMDA5NjYyLCAwLjAwOTY2MywgMC4wMDk2NjQiLCBcCi0gICAgICAgICAgIjAuMDEwMjU0LCAwLjAwOTY5NywgMC4wMDk2NzYsIDAuMDA5NjczLCAwLjAwOTY3MywgMC4wMDk2NzMsIDAuMDA5Njc0IiwgXAotICAgICAgICAgICIwLjAxMDMwMSwgMC4wMDk3NzksIDAuMDA5NzYyLCAwLjAwOTc2MSwgMC4wMDk3NjMsIDAuMDA5NzYzLCAwLjAwOTc2NSIsIFwKLSAgICAgICAgICAiMC4wMTAzOTYsIDAuMDA5ODkzLCAwLjAwOTg3OSwgMC4wMDk4OCwgMC4wMDk4ODIsIDAuMDA5ODg0LCAwLjAwOTg4NSIsIFwKLSAgICAgICAgICAiMC4wMTA1NzEsIDAuMDEwMDM0LCAwLjAxMDAxNywgMC4wMTAwMTYsIDAuMDEwMDE2LCAwLjAxMDAxOCwgMC4wMTAwMTgiLCBcCi0gICAgICAgICAgIjAuMDEwODEsIDAuMDEwMjkxLCAwLjAxMDI3NCwgMC4wMTAyNzMsIDAuMDEwMjc1LCAwLjAxMDI3NywgMC4wMTAyNzkiLCBcCi0gICAgICAgICAgIjAuMDExMDE1LCAwLjAxMDQ4NCwgMC4wMTA0OCwgMC4wMTA0ODEsIDAuMDEwNDgzLCAwLjAxMDQ4NSwgMC4wMTA0ODciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTMSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDk0OTUsIDAuMDA5MjI5LCAwLjAwOTIyNywgMC4wMDkyMjgsIDAuMDA5MjI2LCAwLjAwOTIyNywgMC4wMDkyMjYiLCBcCi0gICAgICAgICAgIjAuMDA5NjEsIDAuMDA5MzU2LCAwLjAwOTM1NywgMC4wMDkzNTksIDAuMDA5MzU5LCAwLjAwOTM2MSwgMC4wMDkzNiIsIFwKLSAgICAgICAgICAiMC4wMDk3ODksIDAuMDA5NTYxLCAwLjAwOTU2OCwgMC4wMDk1NzEsIDAuMDA5NTc1LCAwLjAwOTU3OCwgMC4wMDk1OCIsIFwKLSAgICAgICAgICAiMC4wMDk5NzMsIDAuMDA5NzY0LCAwLjAwOTc3NiwgMC4wMDk3ODMsIDAuMDA5NzksIDAuMDA5Nzk0LCAwLjAwOTc5OSIsIFwKLSAgICAgICAgICAiMC4wMTAxOTgsIDAuMDA5OTksIDAuMDEwMDAzLCAwLjAxMDAwOSwgMC4wMTAwMTcsIDAuMDEwMDIyLCAwLjAxMDAyNSIsIFwKLSAgICAgICAgICAiMC4wMTA1NzQsIDAuMDEwMzUzLCAwLjAxMDM2MywgMC4wMTAzNjksIDAuMDEwMzc2LCAwLjAxMDM4MywgMC4wMTAzODYiLCBcCi0gICAgICAgICAgIjAuMDEwOTA0LCAwLjAxMDcxOCwgMC4wMTA3MTEsIDAuMDEwNzM1LCAwLjAxMDc0MSwgMC4wMTA3NDUsIDAuMDEwNzE4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDk4NDQsIDAuMDA5NTIsIDAuMDA5NTEsIDAuMDA5NTA3LCAwLjAwOTUwNSwgMC4wMDk1MDQsIDAuMDA5NTAzIiwgXAotICAgICAgICAgICIwLjAwOTgwOCwgMC4wMDk0ODYsIDAuMDA5NDc5LCAwLjAwOTQ3OCwgMC4wMDk0NzcsIDAuMDA5NDc2LCAwLjAwOTQ3NiIsIFwKLSAgICAgICAgICAiMC4wMDk4NzgsIDAuMDA5NTY3LCAwLjAwOTU2OSwgMC4wMDk1NzIsIDAuMDA5NTc2LCAwLjAwOTU3NywgMC4wMDk1NzkiLCBcCi0gICAgICAgICAgIjAuMDEwMDczLCAwLjAwOTcxOSwgMC4wMDk3MjEsIDAuMDA5NzI2LCAwLjAwOTczMSwgMC4wMDk3MzQsIDAuMDA5NzM3IiwgXAotICAgICAgICAgICIwLjAxMDM5NSwgMC4wMDk5MzIsIDAuMDA5OTIxLCAwLjAwOTkyMiwgMC4wMDk5MjUsIDAuMDA5OTI4LCAwLjAwOTkzIiwgXAotICAgICAgICAgICIwLjAxMDk2MiwgMC4wMTAzMzMsIDAuMDEwMywgMC4wMTAyOTIsIDAuMDEwMjkzLCAwLjAxMDI5LCAwLjAxMDI5MyIsIFwKLSAgICAgICAgICAiMC4wMTE0NjcsIDAuMDEwNjg5LCAwLjAxMDYzNiwgMC4wMTA2MjMsIDAuMDEwNjE2LCAwLjAxMDYxMiwgMC4wMTA2MTMiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogTVg0WDQgKgotICogLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKE1YNFg0KSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuOTk4ODczOwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2MTgxMTk7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjE3MDI3OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDYxODExOTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA5NTUsIDAuMDAwOTMsIDAuMDAwOTM1LCAwLjAwMDk3LCAwLjAwMTAyMSwgMC4wMDExMzEsIDAuMDAxMjQ1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzNTg5LCAwLjAwMzU3MiwgMC4wMDM1ODIsIDAuMDAzNjE0LCAwLjAwMzY2NiwgMC4wMDM3NjgsIDAuMDAzODgiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY2MzcxNTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2NjI2MzI7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjYzNzE1OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDI4OCwgMC4wMDAyODksIDAuMDAwMjksIDAuMDAwMjksIDAuMDAwMjksIDAuMDAwMjkxLCAwLjAwMDI5MSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDMxNiwgMC4wMDAzMDQsIDAuMDAwMzAyLCAwLjAwMDMwMiwgMC4wMDAzLCAwLjAwMDMsIDAuMDAwMjk5Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihDKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2MzY4NzI7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjM1NjUxOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDYzNjg3MjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDExOTMsIDAuMDAxMTY4LCAwLjAwMTE3NCwgMC4wMDEyMDksIDAuMDAxMjYsIDAuMDAxMzY2LCAwLjAwMTQ4MSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzY4LCAwLjAwMzY2MywgMC4wMDM2NywgMC4wMDM2OTcsIDAuMDAzNzQyLCAwLjAwMzgzOSwgMC4wMDM5NDQiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEQpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY0NTMwMjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2NDQzMDI7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjQ1MzAyOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDI4OSwgMC4wMDAyOSwgMC4wMDAyOTEsIDAuMDAwMjkxLCAwLjAwMDI5MSwgMC4wMDAyOTIsIDAuMDAwMjkyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzEzLCAwLjAwMDMwMiwgMC4wMDAzMDEsIDAuMDAwMywgMC4wMDAyOTksIDAuMDAwMjk5LCAwLjAwMDI5OCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUzApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMjI1OTc1OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMjI1OTc1OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMjI1OTUzOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDQ4MywgMC4wMDA0ODQsIDAuMDAwNTU5LCAwLjAwMDY2NSwgMC4wMDA3NzYsIDAuMDAwOTU4LCAwLjAwMTEzOSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNDE5NCwgMC4wMDQxOTQsIDAuMDA0MjU4LCAwLjAwNDM1LCAwLjAwNDUwMywgMC4wMDQ2MjgsIDAuMDA0OCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUzEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTQ5MDQ7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNDkwNDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE0OTAwNjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAwNywgMC4wMDAwNzEsIDAuMDAwMTQ2LCAwLjAwMDI2NywgMC4wMDAzNjcsIDAuMDAwNTc1LCAwLjAwMDc2NyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjkxNCwgMC4wMDI5MTksIDAuMDAyOTkyLCAwLjAwMzA4NiwgMC4wMDMxOTQsIDAuMDAzMzk0LCAwLjAwMzU4MyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAxLjMyNDExOwotICAgIGZ1bmN0aW9uIDogIigoUzEgKChTMCBEKSArICghUzAgQykpKSArICghUzEgKChTMCBCKSArICghUzAgQSkpKSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk5NzY2LCAwLjE3MDQ0MSwgMC4yMjc4MTUsIDAuMjY3NjczLCAwLjMzMTAzOSwgMC4zODY0MzYsIDAuNDY1NDUxIiwgXAotICAgICAgICAgICIwLjEwNjA0MywgMC4xNzY1ODIsIDAuMjM0MDY3LCAwLjI3Mzg5NiwgMC4zMzczMDMsIDAuMzkyNjU5LCAwLjQ3MTcwNCIsIFwKLSAgICAgICAgICAiMC4xMTQwMDMsIDAuMTg0NjIzLCAwLjI0MTk2NSwgMC4yODE4NjYsIDAuMzQ1MjMyLCAwLjQwMDU4NSwgMC40Nzk2NTQiLCBcCi0gICAgICAgICAgIjAuMTIxNzE5LCAwLjE5MjMzMSwgMC4yNDk3MzMsIDAuMjg5NjA3LCAwLjM1MywgMC40MDgzNDYsIDAuNDg3Mzc3IiwgXAotICAgICAgICAgICIwLjEyOTI1MSwgMC4xOTk4NywgMC4yNTcyNTIsIDAuMjk3MTE3LCAwLjM2MDQ4OSwgMC40MTU4NTksIDAuNDk0OTAzIiwgXAotICAgICAgICAgICIwLjE0MDIxLCAwLjIxMTExOCwgMC4yNjg1NCwgMC4zMDgzOTUsIDAuMzcxNzcyLCAwLjQyNzEzLCAwLjUwNjE4IiwgXAotICAgICAgICAgICIwLjE0OTEyMiwgMC4yMjAyNiwgMC4yNzc3ODcsIDAuMzE3Njk4LCAwLjM4MTA4MiwgMC40MzY0MTgsIDAuNTE1NDYyIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQzNzk0LCAwLjE1ODI2LCAwLjI3MTA3LCAwLjM1Mjk5OSwgMC40ODUzMzcsIDAuNjAyMDU5LCAwLjc2OTc5MSIsIFwKLSAgICAgICAgICAiMC4wNDM4MzgsIDAuMTU4MjAxLCAwLjI3MDkwOCwgMC4zNTI5OTYsIDAuNDg1MDM5LCAwLjYwMTczMSwgMC43Njk4NDQiLCBcCi0gICAgICAgICAgIjAuMDQzNzE5LCAwLjE1ODI0MywgMC4yNzEwNzQsIDAuMzUyOTk2LCAwLjQ4NTM2NCwgMC42MDE5MDEsIDAuNzY5NzQ0IiwgXAotICAgICAgICAgICIwLjA0MzczOCwgMC4xNTgxNjQsIDAuMjcwOTM3LCAwLjM1Mjg2MSwgMC40ODUzNTIsIDAuNjAxNzI3LCAwLjc2ODk4NCIsIFwKLSAgICAgICAgICAiMC4wNDQwNjcsIDAuMTU4MzY2LCAwLjI3MDk2MSwgMC4zNTMwNDQsIDAuNDg1MjQ4LCAwLjYwMTczNCwgMC43Njk4MjMiLCBcCi0gICAgICAgICAgIjAuMDQ0NzIxLCAwLjE1ODY0OSwgMC4yNzEyMTIsIDAuMzUzMjIyLCAwLjQ4NTA0NSwgMC42MDE3OTksIDAuNzY5ODA1IiwgXAotICAgICAgICAgICIwLjA0NTg0OSwgMC4xNTkzMzMsIDAuMjcxNzczLCAwLjM1MzQ5NSwgMC40ODU2MDcsIDAuNjAxOTc1LCAwLjc2OTg3MyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwOTY1MiwgMC4xODEzOTksIDAuMjM4NDc4LCAwLjI3NzY4MiwgMC4zMzk2MjQsIDAuMzkzNTM0LCAwLjQ3MDUzNSIsIFwKLSAgICAgICAgICAiMC4xMTU2MjQsIDAuMTg3MzU2LCAwLjI0NDQ0LCAwLjI4MzYyNywgMC4zNDU1OSwgMC4zOTk1LCAwLjQ3NjQ4NSIsIFwKLSAgICAgICAgICAiMC4xMjI2MzcsIDAuMTk0MzkzLCAwLjI1MTQ2MSwgMC4yOTA2NDQsIDAuMzUyNjE3LCAwLjQwNjUzLCAwLjQ4MzUzIiwgXAotICAgICAgICAgICIwLjEyOTc3NiwgMC4yMDE0NzMsIDAuMjU4NTI5LCAwLjI5NzcyNCwgMC4zNTk2NjgsIDAuNDEzNjEzLCAwLjQ5MDU4IiwgXAotICAgICAgICAgICIwLjEzNjY4OCwgMC4yMDgzNjYsIDAuMjY1NDM4LCAwLjMwNDU5NiwgMC4zNjY1OTMsIDAuNDIwNTA1LCAwLjQ5NzQ4NCIsIFwKLSAgICAgICAgICAiMC4xNDY4NDUsIDAuMjE4NjEyLCAwLjI3NTcxNiwgMC4zMTQ4NzYsIDAuMzc2ODM5LCAwLjQzMDc4MSwgMC41MDc3NTgiLCBcCi0gICAgICAgICAgIjAuMTU1MDYsIDAuMjI2OTk4LCAwLjI4NDIzMiwgMC4zMjMzODgsIDAuMzg1MzIxLCAwLjQzOTI1NCwgMC41MTYyMjIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDYwMTYsIDAuMTU1NDE1LCAwLjI2MjE4NSwgMC4zMzkyODQsIDAuNDY0MDIxLCAwLjU3NDU3MSwgMC43MzI4MjEiLCBcCi0gICAgICAgICAgIjAuMDQ2MDY4LCAwLjE1NTYwNCwgMC4yNjIyMDQsIDAuMzM5MjI3LCAwLjQ2NDAyOCwgMC41NzQ1NzQsIDAuNzMyNzk5IiwgXAotICAgICAgICAgICIwLjA0NTkyOCwgMC4xNTU1ODIsIDAuMjYyMTczLCAwLjMzOTI1MywgMC40NjQwMDYsIDAuNTc0NTUsIDAuNzMyODc3IiwgXAotICAgICAgICAgICIwLjA0NTg5NCwgMC4xNTU2ODEsIDAuMjYyMTc5LCAwLjMzOTEyNCwgMC40NjQwMzMsIDAuNTczOTE1LCAwLjczMjgwMyIsIFwKLSAgICAgICAgICAiMC4wNDU5NDQsIDAuMTU1NzM1LCAwLjI2MjE4MSwgMC4zMzkyOTQsIDAuNDYzOTg5LCAwLjU3NDE4MSwgMC43MzIxMTciLCBcCi0gICAgICAgICAgIjAuMDQ2NzgxLCAwLjE1NjExMiwgMC4yNjI0NDEsIDAuMzM5NDE5LCAwLjQ2NDEzMSwgMC41NzM5MjIsIDAuNzMyODcxIiwgXAotICAgICAgICAgICIwLjA0ODIxMSwgMC4xNTY4MDYsIDAuMjYyNjg5LCAwLjMzOTg1MywgMC40NjQ0NzIsIDAuNTc0NzU1LCAwLjczMjUwNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5ODQxMSwgMC4xNjkwOTgsIDAuMjI2NDQ0LCAwLjI2NjMzOCwgMC4zMjk3MTEsIDAuMzg1MDcsIDAuNDY0MTM1IiwgXAotICAgICAgICAgICIwLjEwNDcxLCAwLjE3NTM2NCwgMC4yMzI3MjksIDAuMjcyNjE5LCAwLjMzNTk4OCwgMC4zOTEzNjksIDAuNDcwNDE3IiwgXAotICAgICAgICAgICIwLjExMjU1NywgMC4xODMyMjksIDAuMjQwNjA4LCAwLjI4MDQ4LCAwLjM0Mzg1MiwgMC4zOTkyMzIsIDAuNDc4MjgyIiwgXAotICAgICAgICAgICIwLjEyMDQ4MSwgMC4xOTEwMzIsIDAuMjQ4NDM1LCAwLjI4ODM0NCwgMC4zNTE3MTcsIDAuNDA3MDY5LCAwLjQ4NjEwNiIsIFwKLSAgICAgICAgICAiMC4xMjgwNSwgMC4xOTg2NzYsIDAuMjU2MDYxLCAwLjI5NTkzMiwgMC4zNTkzMDksIDAuNDE0NjgzLCAwLjQ5MzczMyIsIFwKLSAgICAgICAgICAiMC4xMzkxMzIsIDAuMjA5ODQ1LCAwLjI2NzI5NiwgMC4zMDcxNzEsIDAuMzcwNTQ1LCAwLjQyNTkxMywgMC41MDQ5NjgiLCBcCi0gICAgICAgICAgIjAuMTQ3OTc1LCAwLjIxODkzOCwgMC4yNzY0MTIsIDAuMzE2MzE0LCAwLjM3OTY5MywgMC40MzUwNDgsIDAuNTE0MTA3Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQzNjUzLCAwLjE1ODA3NSwgMC4yNzA5MTksIDAuMzUyODczLCAwLjQ4NTIwNCwgMC42MDE4MjMsIDAuNzY5NzIyIiwgXAotICAgICAgICAgICIwLjA0MzYzNCwgMC4xNTgwNzcsIDAuMjcwOTE2LCAwLjM1Mjg3NCwgMC40ODUxMjMsIDAuNjAxNjIsIDAuNzY5NzMzIiwgXAotICAgICAgICAgICIwLjA0MzYxOCwgMC4xNTgwNjUsIDAuMjcwODY2LCAwLjM1Mjg3LCAwLjQ4NTEwOSwgMC42MDE2MTUsIDAuNzY5NzY3IiwgXAotICAgICAgICAgICIwLjA0MzQ5OSwgMC4xNTc5OTYsIDAuMjcwNzk0LCAwLjM1Mjg2MywgMC40ODUyNiwgMC42MDE2NTEsIDAuNzY5Mzg3IiwgXAotICAgICAgICAgICIwLjA0Mzg2LCAwLjE1ODE5OCwgMC4yNzA5MzMsIDAuMzUyOTI5LCAwLjQ4NTE1NSwgMC42MDE2NTcsIDAuNzY5OCIsIFwKLSAgICAgICAgICAiMC4wNDQ2OTcsIDAuMTU4NTMxLCAwLjI3MTIwMywgMC4zNTMxMTUsIDAuNDg1MzY1LCAwLjYwMTcyOCwgMC43Njk3NjgiLCBcCi0gICAgICAgICAgIjAuMDQ1ODYzLCAwLjE1OTI4NiwgMC4yNzE2NTMsIDAuMzUzMTU4LCAwLjQ4NTMyOSwgMC42MDE5MTgsIDAuNzY5ODIxIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTA4NzQxLCAwLjE4MDQyNiwgMC4yMzc1MDcsIDAuMjc2Njk0LCAwLjMzODYyOCwgMC4zOTI1MzQsIDAuNDY5NTI5IiwgXAotICAgICAgICAgICIwLjExNDQ4NSwgMC4xODYxNywgMC4yNDMyOTcsIDAuMjgyNDg1LCAwLjM0NDQyLCAwLjM5ODM0MywgMC40NzUzMiIsIFwKLSAgICAgICAgICAiMC4xMjE1MDEsIDAuMTkzMjQ3LCAwLjI1MDMwMywgMC4yODk0NTcsIDAuMzUxNDA5LCAwLjQwNTM1NiwgMC40ODIzMzUiLCBcCi0gICAgICAgICAgIjAuMTI4NTYxLCAwLjIwMDI0MSwgMC4yNTczMTYsIDAuMjk2NTExLCAwLjM1ODQ1LCAwLjQxMjM2MSwgMC40ODkzNTgiLCBcCi0gICAgICAgICAgIjAuMTM1NDU5LCAwLjIwNzExMywgMC4yNjQxODIsIDAuMzAzMzQ1LCAwLjM2NTI3MSwgMC40MTkyMjEsIDAuNDk2MTg4IiwgXAotICAgICAgICAgICIwLjE0NTU5OCwgMC4yMTczNzMsIDAuMjc0NDgxLCAwLjMxMzY1NSwgMC4zNzU1NzgsIDAuNDI5NTE0LCAwLjUwNjQ4IiwgXAotICAgICAgICAgICIwLjE1MzY2LCAwLjIyNTY4LCAwLjI4MjkwMywgMC4zMjIwNSwgMC4zODM5ODksIDAuNDM3OTExLCAwLjUxNDg2NyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0NTgxOSwgMC4xNTU1MzIsIDAuMjYyMDI0LCAwLjMzOTE0MiwgMC40NjM4OTIsIDAuNTc0NDM4LCAwLjczMjcwNyIsIFwKLSAgICAgICAgICAiMC4wNDU4NDcsIDAuMTU1NTIzLCAwLjI2MjA0MywgMC4zMzg5MjksIDAuNDYzOTA0LCAwLjU3Mzc0NCwgMC43MzI3MjUiLCBcCi0gICAgICAgICAgIjAuMDQ1ODE3LCAwLjE1NTU0LCAwLjI2MjAyLCAwLjMzOTE0OCwgMC40NjM4MzgsIDAuNTc0MDQzLCAwLjczMTY5NCIsIFwKLSAgICAgICAgICAiMC4wNDU4MzksIDAuMTU1NTA2LCAwLjI2MjAxNiwgMC4zMzkxNDEsIDAuNDYzODgyLCAwLjU3NDQyOSwgMC43MzI2ODIiLCBcCi0gICAgICAgICAgIjAuMDQ1ODUxLCAwLjE1NTU5LCAwLjI2MjAzOCwgMC4zMzkxODIsIDAuNDYzODE0LCAwLjU3Mzk5LCAwLjczMjcwMyIsIFwKLSAgICAgICAgICAiMC4wNDY3MzksIDAuMTU2MDQyLCAwLjI2MjM2NCwgMC4zMzkzNTEsIDAuNDY0MDQ2LCAwLjU3NDA2NywgMC43MzI2OTEiLCBcCi0gICAgICAgICAgIjAuMDQ4MDYxLCAwLjE1NjcwNywgMC4yNjI3NjMsIDAuMzM5NzQyLCAwLjQ2NDMwOCwgMC41NzQzMjgsIDAuNzMyODM3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTAxNzA5LCAwLjE3MjgzNCwgMC4yMzAzNDksIDAuMjcwMjQ1LCAwLjMzMzYzOSwgMC4zODkwMjMsIDAuNDY4MDc3IiwgXAotICAgICAgICAgICIwLjEwNzk3NSwgMC4xNzg5OTYsIDAuMjM2NTI5LCAwLjI3NjUwNSwgMC4zMzk5MDEsIDAuMzk1MjU3LCAwLjQ3NDMxMiIsIFwKLSAgICAgICAgICAiMC4xMTU4NDQsIDAuMTg2OTEzLCAwLjI0NDQ5LCAwLjI4NDM2OSwgMC4zNDc4MDgsIDAuNDAzMTU5LCAwLjQ4MjIyMyIsIFwKLSAgICAgICAgICAiMC4xMjM3MTIsIDAuMTk0Nzk0LCAwLjI1MjI3OSwgMC4yOTIyMjEsIDAuMzU1NjIzLCAwLjQxMDk4NiwgMC40OTAwNjUiLCBcCi0gICAgICAgICAgIjAuMTMxMzgyLCAwLjIwMjM5LCAwLjI1OTkzMywgMC4yOTk4NjgsIDAuMzYzMjY4LCAwLjQxODYyNCwgMC40OTc2OTciLCBcCi0gICAgICAgICAgIjAuMTQyNjMzLCAwLjIxMzg3MiwgMC4yNzEzNjEsIDAuMzExMjk5LCAwLjM3NDY5NywgMC40MzAwODMsIDAuNTA5MTQxIiwgXAotICAgICAgICAgICIwLjE1MTQyMywgMC4yMjMwMjYsIDAuMjgwNjgxLCAwLjMyMDU4NiwgMC4zODQwMTksIDAuNDM5MzU0LCAwLjUxODQzNyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0NDM0NSwgMC4xNTg3MywgMC4yNzE0MDcsIDAuMzUzMzI5LCAwLjQ4NTQ3MSwgMC42MDE5MDUsIDAuNzY5OTE2IiwgXAotICAgICAgICAgICIwLjA0NDE4MiwgMC4xNTg2NiwgMC4yNzE0NjYsIDAuMzUzMzE3LCAwLjQ4NTUxNywgMC42MDE5NDEsIDAuNzY5NzY4IiwgXAotICAgICAgICAgICIwLjA0NDExNywgMC4xNTg1OTYsIDAuMjcxNDg0LCAwLjM1MzI4LCAwLjQ4NTQ3LCAwLjYwMTkyNSwgMC43NjkwMDQiLCBcCi0gICAgICAgICAgIjAuMDQ0MTI5LCAwLjE1ODY3NCwgMC4yNzEyNjMsIDAuMzUzMzEzLCAwLjQ4NTUzMiwgMC42MDIwNDEsIDAuNzY5ODYiLCBcCi0gICAgICAgICAgIjAuMDQ0MjYxLCAwLjE1ODY3NSwgMC4yNzE0MzgsIDAuMzUzMzMxLCAwLjQ4NTUyMSwgMC42MDE5NDYsIDAuNzY5OTU5IiwgXAotICAgICAgICAgICIwLjA0NTAwMiwgMC4xNTkxNTcsIDAuMjcxNzE3LCAwLjM1MzUyNSwgMC40ODU2NTIsIDAuNjAxOTc1LCAwLjc2OTg4MyIsIFwKLSAgICAgICAgICAiMC4wNDYxOTQsIDAuMTU5NjgzLCAwLjI3MjA5NiwgMC4zNTM4LCAwLjQ4NTgzNCwgMC42MDIxNTgsIDAuNzY5OTY0Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTEyMzE4LCAwLjE4NDQ3NSwgMC4yNDE3ODUsIDAuMjgxMDM4LCAwLjM0MzAyMiwgMC4zOTY5NjksIDAuNDczOTUxIiwgXAotICAgICAgICAgICIwLjExODQzOSwgMC4xOTA2MjgsIDAuMjQ3ODk3LCAwLjI4NzE2OSwgMC4zNDkxNTMsIDAuNDAzMDc4LCAwLjQ4MDA2NSIsIFwKLSAgICAgICAgICAiMC4xMjU0NjksIDAuMTk3NjcxLCAwLjI1NDkxLCAwLjI5NDE0MSwgMC4zNTYxNzIsIDAuNDEwMTA0LCAwLjQ4NzA4NCIsIFwKLSAgICAgICAgICAiMC4xMzI2NDYsIDAuMjA0ODE1LCAwLjI2MjA3MSwgMC4zMDEzMDIsIDAuMzYzMzExLCAwLjQxNzI2MSwgMC40OTQyMzkiLCBcCi0gICAgICAgICAgIjAuMTM5NTExLCAwLjIxMTU4NSwgMC4yNjg4NjIsIDAuMzA4MTE0LCAwLjM3MDA5OCwgMC40MjQwNiwgMC41MDEwMzUiLCBcCi0gICAgICAgICAgIjAuMTQ5NjksIDAuMjIxOTMsIDAuMjc5MjQ1LCAwLjMxODQ2OSwgMC4zODA0NzUsIDAuNDM0NDI4LCAwLjUxMTQwMyIsIFwKLSAgICAgICAgICAiMC4xNTc5OTQsIDAuMjMwNDgxLCAwLjI4NzcwMywgMC4zMjcwMzgsIDAuMzg4OTkxLCAwLjQ0MjkyNCwgMC41MTk4OTMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDY0MiwgMC4xNTYyOTgsIDAuMjYyNzgsIDAuMzM5NjA1LCAwLjQ2NDQ4NSwgMC41NzQ4NzksIDAuNzMzMTI0IiwgXAotICAgICAgICAgICIwLjA0NjQwMywgMC4xNTYxOTgsIDAuMjYyNzc2LCAwLjMzOTgxNCwgMC40NjQ0NywgMC41NzQ5MjksIDAuNzMyOTg0IiwgXAotICAgICAgICAgICIwLjA0NjMwMSwgMC4xNTYyODUsIDAuMjYyNzQ5LCAwLjMzOTgyLCAwLjQ2NDQ1LCAwLjU3NDQ4OSwgMC43MzI0MjMiLCBcCi0gICAgICAgICAgIjAuMDQ2MjEyLCAwLjE1NjI4LCAwLjI2MjczOSwgMC4zMzk4MDgsIDAuNDY0NDU5LCAwLjU3NDUxNCwgMC43MzMxMTgiLCBcCi0gICAgICAgICAgIjAuMDQ2MzE3LCAwLjE1NjI5MywgMC4yNjI3NjIsIDAuMzM5NjE0LCAwLjQ2NDQ0NCwgMC41NzQyOTksIDAuNzMzMTExIiwgXAotICAgICAgICAgICIwLjA0NzAyMSwgMC4xNTY2NzEsIDAuMjYzMDExLCAwLjM0MDAyLCAwLjQ2NDUzMywgMC41NzQ1NTQsIDAuNzMzMDkyIiwgXAotICAgICAgICAgICIwLjA0ODQ0NSwgMC4xNTc0MDcsIDAuMjYzNTkzLCAwLjM0MDE5NiwgMC40NjQ1ODcsIDAuNTc1MTAxLCAwLjczMzIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDAzOSwgMC4xNzE0MDIsIDAuMjI4OTI0LCAwLjI2ODc4OCwgMC4zMzIxNzksIDAuMzg3NTU2LCAwLjQ2NjYwMSIsIFwKLSAgICAgICAgICAiMC4xMDY2OTUsIDAuMTc3NzQsIDAuMjM1MjUsIDAuMjc1MTQzLCAwLjMzODUzNiwgMC4zOTM5MTMsIDAuNDcyOTY0IiwgXAotICAgICAgICAgICIwLjExNDU4NCwgMC4xODU1ODUsIDAuMjQzMTM0LCAwLjI4MzAwOSwgMC4zNDY0MTUsIDAuNDAxNzc5LCAwLjQ4MDgzIiwgXAotICAgICAgICAgICIwLjEyMjUwOSwgMC4xOTM1MSwgMC4yNTA5NjcsIDAuMjkwOTAxLCAwLjM1NDI5MiwgMC40MDk2NjMsIDAuNDg4NzI0IiwgXAotICAgICAgICAgICIwLjEzMDEyLCAwLjIwMTA3NiwgMC4yNTg1ODYsIDAuMjk4NTAxLCAwLjM2MTkwNSwgMC40MTcyNTMsIDAuNDk2Mjk1IiwgXAotICAgICAgICAgICIwLjE0MTMxMywgMC4yMTI0NDMsIDAuMjY5OTg1LCAwLjMwOTg1OCwgMC4zNzMyNDMsIDAuNDI4NjI3LCAwLjUwNzY4MyIsIFwKLSAgICAgICAgICAiMC4xNTAyMywgMC4yMjE3OSwgMC4yNzkzNTksIDAuMzE5Mjk5LCAwLjM4MjcwNiwgMC40MzgwNDMsIDAuNTE3MDk2Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQ0MDUxLCAwLjE1ODU2MSwgMC4yNzEyNDUsIDAuMzUzMjExLCAwLjQ4NTQ5LCAwLjYwMTc5NiwgMC43Njk4MjQiLCBcCi0gICAgICAgICAgIjAuMDQ0MDU0LCAwLjE1ODM4NiwgMC4yNzExOTcsIDAuMzUzMjExLCAwLjQ4NTM3OCwgMC42MDE4MzYsIDAuNzY5ODE2IiwgXAotICAgICAgICAgICIwLjA0NDAxMiwgMC4xNTg0MTcsIDAuMjcxMzc0LCAwLjM1MzIxNiwgMC40ODUzNjgsIDAuNjAxODQyLCAwLjc2OTg2NCIsIFwKLSAgICAgICAgICAiMC4wNDQsIDAuMTU4NTUyLCAwLjI3MTMzLCAwLjM1MzIxMiwgMC40ODU0NSwgMC42MDE4MjksIDAuNzY5NzkyIiwgXAotICAgICAgICAgICIwLjA0NDIzNiwgMC4xNTg1NiwgMC4yNzEzNTUsIDAuMzUzMjI2LCAwLjQ4NTQzLCAwLjYwMTg2NSwgMC43Njg1ODciLCBcCi0gICAgICAgICAgIjAuMDQ0OTY2LCAwLjE1OTAxMywgMC4yNzE2OTMsIDAuMzUzNDQ0LCAwLjQ4NTY1MSwgMC42MDE5MTMsIDAuNzY5ODM4IiwgXAotICAgICAgICAgICIwLjA0NjA1MywgMC4xNTk2ODIsIDAuMjcyMDE3LCAwLjM1Mzc0MiwgMC40ODU3ODEsIDAuNjAyMTA4LCAwLjc2OTkwNCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExMTgzMywgMC4xODM5NjMsIDAuMjQxMjA1LCAwLjI4MDQzNSwgMC4zNDI0NDUsIDAuMzk2MzcyLCAwLjQ3MzM0NiIsIFwKLSAgICAgICAgICAiMC4xMTc1OTcsIDAuMTg5NzM5LCAwLjI0Njk4NCwgMC4yODYyMSwgMC4zNDgyMjYsIDAuNDAyMTU0LCAwLjQ3OTEzNiIsIFwKLSAgICAgICAgICAiMC4xMjQ2MjMsIDAuMTk2Nzc5LCAwLjI1NDAxNiwgMC4yOTMyMzksIDAuMzU1MjI2LCAwLjQwOTE5LCAwLjQ4NjIwNiIsIFwKLSAgICAgICAgICAiMC4xMzE3MDQsIDAuMjAzODIzLCAwLjI2MTA2NSwgMC4zMDAyODksIDAuMzYyMjg0LCAwLjQxNjI0LCAwLjQ5MzIxNyIsIFwKLSAgICAgICAgICAiMC4xMzg1OTMsIDAuMjEwNjYsIDAuMjY3ODYsIDAuMzA3MTM4LCAwLjM2OTA5NCwgMC40MjMwNTgsIDAuNTAwMDM1IiwgXAotICAgICAgICAgICIwLjE0ODgyMSwgMC4yMjEwMDUsIDAuMjc4MjM0LCAwLjMxNzUwOSwgMC4zNzk0NjIsIDAuNDMzNDM1LCAwLjUxMDQwNSIsIFwKLSAgICAgICAgICAiMC4xNTcwODEsIDAuMjI5NSwgMC4yODY3NDgsIDAuMzI2MDIyLCAwLjM4ODAwMSwgMC40NDE5MzcsIDAuNTE4OTI5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQ2MjE3LCAwLjE1NjA3NSwgMC4yNjI2OTMsIDAuMzM5NzIxLCAwLjQ2NDQxLCAwLjU3NDQ3MSwgMC43MzMwMTgiLCBcCi0gICAgICAgICAgIjAuMDQ2MzMsIDAuMTU2MTgxLCAwLjI2MjcxLCAwLjMzOTcyMSwgMC40NjQ0MTUsIDAuNTc0NDg1LCAwLjczMjQxNCIsIFwKLSAgICAgICAgICAiMC4wNDYyNDEsIDAuMTU2MjA3LCAwLjI2MjY3NSwgMC4zMzk3NDgsIDAuNDY0MjksIDAuNTc0NDcyLCAwLjczMTgyNyIsIFwKLSAgICAgICAgICAiMC4wNDYyMzMsIDAuMTU2MjI1LCAwLjI2MjY3NiwgMC4zMzk3NTEsIDAuNDY0Mzg4LCAwLjU3NDQ5NywgMC43MzMwNzciLCBcCi0gICAgICAgICAgIjAuMDQ2MjU5LCAwLjE1NjMwNCwgMC4yNjI2OCwgMC4zMzk3NDQsIDAuNDY0MTkxLCAwLjU3NDQ5MywgMC43MzMwODkiLCBcCi0gICAgICAgICAgIjAuMDQ3MTA5LCAwLjE1NjcyOCwgMC4yNjI5NTIsIDAuMzM5OTUzLCAwLjQ2NDQ3LCAwLjU3NDU3LCAwLjczMzA1OCIsIFwKLSAgICAgICAgICAiMC4wNDg1NzIsIDAuMTU3MzIzLCAwLjI2MzQ5OSwgMC4zNDAyNzgsIDAuNDY0NzEsIDAuNTc1MDIxLCAwLjczMzE2OSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTYzNjIsIDAuMTY3Mzk5LCAwLjIyNDg5OSwgMC4yNjQ4LCAwLjMyODE5OCwgMC4zODM1NDcsIDAuNDYyNjE2IiwgXAotICAgICAgICAgICIwLjEwMzk0NiwgMC4xNzQ5NDUsIDAuMjMyNDU4LCAwLjI3MjM1LCAwLjMzNTc0MiwgMC4zOTEwOTgsIDAuNDcwMTciLCBcCi0gICAgICAgICAgIjAuMTEzNTM0LCAwLjE4NDU3OCwgMC4yNDIwNzcsIDAuMjgxOTY2LCAwLjM0NTM1NywgMC40MDA3MjIsIDAuNDc5Nzg4IiwgXAotICAgICAgICAgICIwLjEyMzI1NSwgMC4xOTQyODgsIDAuMjUxNzY0LCAwLjI5MTY4MiwgMC4zNTUwNzYsIDAuNDEwNDQ1LCAwLjQ4OTUwOSIsIFwKLSAgICAgICAgICAiMC4xMzI5NDEsIDAuMjAzODUxLCAwLjI2MTM3NCwgMC4zMDEyNjMsIDAuMzY0NjgzLCAwLjQyMDAzMywgMC40OTkwNzQiLCBcCi0gICAgICAgICAgIjAuMTQ3MjI0LCAwLjIxODM0OCwgMC4yNzU4OSwgMC4zMTU3NTksIDAuMzc5MTcsIDAuNDM0NTI0LCAwLjUxMzU5NSIsIFwKLSAgICAgICAgICAiMC4xNTgyNDEsIDAuMjI5OTA0LCAwLjI4NzQ3NCwgMC4zMjc0MywgMC4zOTA4MjMsIDAuNDQ2MTgsIDAuNTI1MjM1Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQ0MDIsIDAuMTU4NTMxLCAwLjI3MTM1MywgMC4zNTMxOTYsIDAuNDg1NTE0LCAwLjYwMjE4MywgMC43Njk4NjkiLCBcCi0gICAgICAgICAgIjAuMDQ0MDQxLCAwLjE1ODUzMiwgMC4yNzEzNTksIDAuMzUzMjAyLCAwLjQ4NTUxOCwgMC42MDE5OTksIDAuNzY5ODI5IiwgXAotICAgICAgICAgICIwLjA0NDA1MywgMC4xNTg1MzksIDAuMjcxMjQsIDAuMzUzMjAyLCAwLjQ4NTUsIDAuNjAxODI3LCAwLjc2OTgyNCIsIFwKLSAgICAgICAgICAiMC4wNDQwMzMsIDAuMTU4NTQ2LCAwLjI3MTMyNSwgMC4zNTMyMDksIDAuNDg1NDM4LCAwLjYwMTk4OSwgMC43Njk4MDQiLCBcCi0gICAgICAgICAgIjAuMDQ0MjA4LCAwLjE1ODY0OSwgMC4yNzEzNjcsIDAuMzUzMjM1LCAwLjQ4NTQ0LCAwLjYwMTg1LCAwLjc2OTgxNyIsIFwKLSAgICAgICAgICAiMC4wNDU0ODgsIDAuMTU5MTM2LCAwLjI3MTY4NywgMC4zNTM0NTUsIDAuNDg1NjQsIDAuNjAxOTMxLCAwLjc2OTgyNyIsIFwKLSAgICAgICAgICAiMC4wNDc0MjMsIDAuMTU5OTcyLCAwLjI3MjE1MiwgMC4zNTM4MTksIDAuNDg1ODY1LCAwLjYwMjEyLCAwLjc2OTk0NSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwNjgzNiwgMC4xNzkwNCwgMC4yMzYyOTUsIDAuMjc1NTUxLCAwLjMzNzUzMSwgMC4zOTE0NzIsIDAuNDY4NDciLCBcCi0gICAgICAgICAgIjAuMTE0MjYyLCAwLjE4NjQzOCwgMC4yNDM2OSwgMC4yODI5NTEsIDAuMzQ0OTI3LCAwLjM5ODg4NSwgMC40NzU4NjQiLCBcCi0gICAgICAgICAgIjAuMTIzNjU4LCAwLjE5NTgyNywgMC4yNTMwNjMsIDAuMjkyMzQsIDAuMzU0MzI2LCAwLjQwODI3NiwgMC40ODUyNTMiLCBcCi0gICAgICAgICAgIjAuMTMzMzU1LCAwLjIwNTQ3NSwgMC4yNjI3MzUsIDAuMzAyLCAwLjM2Mzk4LCAwLjQxNzkyNSwgMC40OTQ5MTgiLCBcCi0gICAgICAgICAgIjAuMTQyOTE4LCAwLjIxNTAxMiwgMC4yNzIyNjUsIDAuMzExNDk5LCAwLjM3MzUwNSwgMC40Mjc0NDQsIDAuNTA0NDQiLCBcCi0gICAgICAgICAgIjAuMTU3MTE0LCAwLjIyOTM0NywgMC4yODY1OTIsIDAuMzI1ODY2LCAwLjM4Nzg0LCAwLjQ0MTc5NiwgMC41MTg3NzYiLCBcCi0gICAgICAgICAgIjAuMTY4NDI0LCAwLjI0MDg0OSwgMC4yOTgxNzksIDAuMzM3NDA5LCAwLjM5OTQxNCwgMC40NTMzMzQsIDAuNTMwMzA5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQ2MzE4LCAwLjE1NjMxNSwgMC4yNjI3NjQsIDAuMzM5NzgyLCAwLjQ2NDQ2MiwgMC41NzQ1NDUsIDAuNzMzMTk4IiwgXAotICAgICAgICAgICIwLjA0NjMwNCwgMC4xNTYzLCAwLjI2Mjc0NywgMC4zMzk4NCwgMC40NjQ0NTQsIDAuNTc0NTUxLCAwLjczMzEyIiwgXAotICAgICAgICAgICIwLjA0NjI3LCAwLjE1NjMxNSwgMC4yNjI3NjgsIDAuMzM5ODAzLCAwLjQ2NDQ5MywgMC41NzQ1NDQsIDAuNzMzMTExIiwgXAotICAgICAgICAgICIwLjA0NjIzMywgMC4xNTYzMDUsIDAuMjYyNzcsIDAuMzM5NzksIDAuNDY0NDgxLCAwLjU3NDc4NCwgMC43MzMxMjEiLCBcCi0gICAgICAgICAgIjAuMDQ2MjkyLCAwLjE1NjM0NiwgMC4yNjI3ODMsIDAuMzM5ODUxLCAwLjQ2NDUwMSwgMC41NzQ1NDksIDAuNzMzMTI3IiwgXAotICAgICAgICAgICIwLjA0NzEzOSwgMC4xNTY3NDgsIDAuMjYzMDAyLCAwLjM0MDAyLCAwLjQ2NDU4NCwgMC41NzQ2MzMsIDAuNzMzMTgiLCBcCi0gICAgICAgICAgIjAuMDQ4NTQxLCAwLjE1NzM0MiwgMC4yNjM0NTQsIDAuMzQwMzc2LCAwLjQ2NDgxNiwgMC41NzUxNTMsIDAuNzMzMjg4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlMwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExNzAwMSwgMC4xODgwMjQsIDAuMjQ1NDgxLCAwLjI4NTQxNSwgMC4zNDg4MDgsIDAuNDA0MTU5LCAwLjQ4MzI0NSIsIFwKLSAgICAgICAgICAiMC4xMjQ5NzYsIDAuMTk1OTgxLCAwLjI1MzUxMywgMC4yOTM0NDEsIDAuMzU2ODMyLCAwLjQxMjE4NCwgMC40OTEyMiIsIFwKLSAgICAgICAgICAiMC4xMzMxODksIDAuMjA0MjI4LCAwLjI2MTc3NCwgMC4zMDE2NTMsIDAuMzY1MDgxLCAwLjQyMDQyOSwgMC40OTk0ODciLCBcCi0gICAgICAgICAgIjAuMTM5NTk3LCAwLjIxMDU4MiwgMC4yNjgxNDEsIDAuMzA4MDE3LCAwLjM3MTQzOCwgMC40MjY3ODcsIDAuNTA1ODM3IiwgXAotICAgICAgICAgICIwLjE0NDYxNywgMC4yMTU2NywgMC4yNzMxNzIsIDAuMzEzMTAyLCAwLjM3NjQ5NiwgMC40MzE4NDksIDAuNTEwODc5IiwgXAotICAgICAgICAgICIwLjE1MDk3OSwgMC4yMjIxMTQsIDAuMjc5NjQ1LCAwLjMxOTU2NywgMC4zODI5NjcsIDAuNDM4MzIyLCAwLjUxNzQwMiIsIFwKLSAgICAgICAgICAiMC4xNTU0OTIsIDAuMjI2NTgzLCAwLjI4NDI2NCwgMC4zMjQyMDYsIDAuMzg3NjE4LCAwLjQ0Mjk4NywgMC41MjIwMzkiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDQxNzEsIDAuMTU4Njk5LCAwLjI3MTQ5MywgMC4zNTMzMywgMC40ODU1NTYsIDAuNjAxOTMyLCAwLjc2OTg1NSIsIFwKLSAgICAgICAgICAiMC4wNDQxMzgsIDAuMTU4Njc4LCAwLjI3MTQxMywgMC4zNTMzMTQsIDAuNDg1NjE0LCAwLjYwMTkzOCwgMC43Njk4NzEiLCBcCi0gICAgICAgICAgIjAuMDQ0MTgyLCAwLjE1ODY2NiwgMC4yNzE1MDQsIDAuMzUzMzA2LCAwLjQ4NTUwNywgMC42MDE5MzYsIDAuNzY5ODY2IiwgXAotICAgICAgICAgICIwLjA0NDEzNCwgMC4xNTg2NTgsIDAuMjcxNTA2LCAwLjM1MzMwNywgMC40ODU1OTIsIDAuNjAxOTM2LCAwLjc2OTkyNSIsIFwKLSAgICAgICAgICAiMC4wNDQwNDUsIDAuMTU4NjM3LCAwLjI3MTQ2NywgMC4zNTMzMTcsIDAuNDg1NTI4LCAwLjYwMTk0NCwgMC43Njk5MTMiLCBcCi0gICAgICAgICAgIjAuMDQ0MDkxLCAwLjE1ODgwMSwgMC4yNzE2MjIsIDAuMzUzNDI4LCAwLjQ4NTUzOSwgMC42MDIxMTYsIDAuNzY5OTc3IiwgXAotICAgICAgICAgICIwLjA0NDE5NiwgMC4xNTg4MjYsIDAuMjcxODksIDAuMzUzNTM5LCAwLjQ4NTY3NiwgMC42MDIxMDIsIDAuNzcwMDAzIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTI0NzkzLCAwLjE5Njk0OCwgMC4yNTQxOTEsIDAuMjkzNDA4LCAwLjM1NTM5OCwgMC40MDkzNjQsIDAuNDg2MzM2IiwgXAotICAgICAgICAgICIwLjEzMjg4NiwgMC4yMDUwMzEsIDAuMjYyMjk2LCAwLjMwMTU1LCAwLjM2MzUyNiwgMC40MTc0NTUsIDAuNDk0NDU3IiwgXAotICAgICAgICAgICIwLjE0MTI0NCwgMC4yMTM0NDMsIDAuMjcwNjYsIDAuMzA5OTAxLCAwLjM3MTkwOCwgMC40MjU4NDEsIDAuNTAyODI5IiwgXAotICAgICAgICAgICIwLjE0Nzc3NCwgMC4yMTk5MTYsIDAuMjc3MTYsIDAuMzE2Mzg3LCAwLjM3ODM1NSwgMC40MzIzMTgsIDAuNTA5Mjk2IiwgXAotICAgICAgICAgICIwLjE1Mjc2OSwgMC4yMjQ5MDUsIDAuMjgyMTMyLCAwLjMyMTM4NCwgMC4zODMzNTYsIDAuNDM3MzE4LCAwLjUxNDI4OSIsIFwKLSAgICAgICAgICAiMC4xNTk3MzcsIDAuMjMxOTA4LCAwLjI4OTE5OSwgMC4zMjg0NjIsIDAuMzkwNDMxLCAwLjQ0NDM4MSwgMC41MjEzNjkiLCBcCi0gICAgICAgICAgIjAuMTY0NzEyLCAwLjIzNjkwNywgMC4yOTQyMiwgMC4zMzM0NDQsIDAuMzk1NDczLCAwLjQ0OTQwNywgMC41MjYzODIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDYyOTcsIDAuMTU2MjM0LCAwLjI2MjcwMiwgMC4zMzk3MzUsIDAuNDY0NDA1LCAwLjU3NDQ5NCwgMC43MzMxMTYiLCBcCi0gICAgICAgICAgIjAuMDQ2MzA0LCAwLjE1NjI0OSwgMC4yNjI2OTUsIDAuMzM5NzY2LCAwLjQ2NDQwNywgMC41NzQ1MDYsIDAuNzMzMTExIiwgXAotICAgICAgICAgICIwLjA0NjI1NSwgMC4xNTYyNCwgMC4yNjI2OTUsIDAuMzM5NzUsIDAuNDY0NDE4LCAwLjU3NDg3MywgMC43MzMwOTkiLCBcCi0gICAgICAgICAgIjAuMDQ2Mjc1LCAwLjE1NjE5OCwgMC4yNjI2NTQsIDAuMzM5NzUzLCAwLjQ2NDM1NywgMC41NzQ0ODcsIDAuNzMzMDYxIiwgXAotICAgICAgICAgICIwLjA0NjIxNSwgMC4xNTYxNzMsIDAuMjYyNjQ5LCAwLjMzOTcxLCAwLjQ2NDM3OCwgMC41NzQ4NSwgMC43MzMwNjIiLCBcCi0gICAgICAgICAgIjAuMDQ2MTQzLCAwLjE1NjMsIDAuMjYyNzI3LCAwLjMzOTcyNywgMC40NjQ0MzUsIDAuNTc0NDc3LCAwLjczMzA4MSIsIFwKLSAgICAgICAgICAiMC4wNDYxMjQsIDAuMTU2MjM2LCAwLjI2Mjc1OSwgMC4zMzk4NjQsIDAuNDY0NDg3LCAwLjU3NDU2NywgMC43MzMwNjgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUzEiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDYyNTksIDAuMTMzMzU3LCAwLjE5MDc5OSwgMC4yMzA2OTcsIDAuMjk0MDYzLCAwLjM0OTM5NSwgMC40Mjg0MzUiLCBcCi0gICAgICAgICAgIjAuMDcwMDIzLCAwLjE0MDgxOCwgMC4xOTgyNDcsIDAuMjM4MTAxLCAwLjMwMTQ2MSwgMC4zNTY4MTksIDAuNDM1ODQ0IiwgXAotICAgICAgICAgICIwLjA3ODcxNCwgMC4xNDkzNDMsIDAuMjA2Nzg0LCAwLjI0NjY1MiwgMC4zMTAwMzgsIDAuMzY1MzY0LCAwLjQ0NDQwMiIsIFwKLSAgICAgICAgICAiMC4wODc0MzYsIDAuMTU3NzUyLCAwLjIxNTE5LCAwLjI1NTA3NywgMC4zMTg0NCwgMC4zNzM3NjksIDAuNDUyNzg5IiwgXAotICAgICAgICAgICIwLjA5NTM2MywgMC4xNjU0NjUsIDAuMjIyOTAyLCAwLjI2Mjc4NiwgMC4zMjYxMzksIDAuMzgxNDgxLCAwLjQ2MDUxOCIsIFwKLSAgICAgICAgICAiMC4xMDYwMzIsIDAuMTc2Mzc0LCAwLjIzMzgzMywgMC4yNzM3MjEsIDAuMzM3MDgsIDAuMzkyNDI1LCAwLjQ3MTQzMyIsIFwKLSAgICAgICAgICAiMC4xMTM5NzksIDAuMTg0NjAzLCAwLjI0MjE2MywgMC4yODIwODUsIDAuMzQ1NDM4LCAwLjQwMDc0NywgMC40Nzk3NzEiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDI2MTgsIDAuMTU3ODA5LCAwLjI3MDg3NywgMC4zNTI4MzcsIDAuNDg0ODAyLCAwLjYwMTYwOCwgMC43Njk1NSIsIFwKLSAgICAgICAgICAiMC4wNDI1NjEsIDAuMTU3ODc0LCAwLjI3MDc5OSwgMC4zNTI4MjMsIDAuNDg1MjIzLCAwLjYwMTUyNCwgMC43Njk1MSIsIFwKLSAgICAgICAgICAiMC4wNDE5MDQsIDAuMTU3NjM1LCAwLjI3MDczMSwgMC4zNTI3ODMsIDAuNDg1MDA2LCAwLjYwMTU0MiwgMC43Njg2MjIiLCBcCi0gICAgICAgICAgIjAuMDQxNzAzLCAwLjE1NzUxMywgMC4yNzA1NzcsIDAuMzUyNzA2LCAwLjQ4NDk4LCAwLjYwMTUxMiwgMC43Njg4NTUiLCBcCi0gICAgICAgICAgIjAuMDQyNjQyLCAwLjE1NzYyMywgMC4yNzA4MjcsIDAuMzUyNzkxLCAwLjQ4NTE5MywgMC42MDEyNzEsIDAuNzY5NTQxIiwgXAotICAgICAgICAgICIwLjA0NDkxNywgMC4xNTgyNzgsIDAuMjcxMjQ4LCAwLjM1MzExNiwgMC40ODUzNjUsIDAuNjAxNzU5LCAwLjc2OTY4NCIsIFwKLSAgICAgICAgICAiMC4wNDY5NDQsIDAuMTU5MDYzLCAwLjI3MTc0MiwgMC4zNTM1MjgsIDAuNDg1Njc2LCAwLjYwMTgzOCwgMC43Njk4MiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3MTMwMywgMC4xNDI5MTIsIDAuMTk5OTIyLCAwLjIzOTA1MSwgMC4zMDA5OCwgMC4zNTQ5MDQsIDAuNDMxODUyIiwgXAotICAgICAgICAgICIwLjA3ODQxLCAwLjE1MDA2NywgMC4yMDcwNzksIDAuMjQ2MjA3LCAwLjMwODExOCwgMC4zNjIwNTgsIDAuNDM5MDA3IiwgXAotICAgICAgICAgICIwLjA4NjgzOCwgMC4xNTg0MzksIDAuMjE1NDQxLCAwLjI1NDU4MSwgMC4zMTY0ODQsIDAuMzcwNDIyLCAwLjQ0NzM3MiIsIFwKLSAgICAgICAgICAiMC4wOTUwNTEsIDAuMTY2NDM5LCAwLjIyMzQxNiwgMC4yNjI1NTMsIDAuMzI0NDYsIDAuMzc4Mzk5LCAwLjQ1NTM1IiwgXAotICAgICAgICAgICIwLjEwMzA0OCwgMC4xNzQxMTksIDAuMjMxMDk5LCAwLjI3MDIyNSwgMC4zMzIxMjcsIDAuMzg2MDY2LCAwLjQ2MzAxNiIsIFwKLSAgICAgICAgICAiMC4xMTM3NjYsIDAuMTg0NzcyLCAwLjI0MTgyNSwgMC4yODA5NzYsIDAuMzQyOTA3LCAwLjM5NjgxNCwgMC40NzM3NTkiLCBcCi0gICAgICAgICAgIjAuMTIxOTM3LCAwLjE5MzAyMywgMC4yNTAyMDksIDAuMjg5Mzc4LCAwLjM1MTI1OSwgMC40MDUxODIsIDAuNDgyMTI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQ0ODQ1LCAwLjE1NTAwOSwgMC4yNjE2MzEsIDAuMzM4ODE2LCAwLjQ2MzYsIDAuNTczOCwgMC43MzI1MSIsIFwKLSAgICAgICAgICAiMC4wNDQ3MDksIDAuMTU0OTcsIDAuMjYxNjExLCAwLjMzODgsIDAuNDYzNDYxLCAwLjU3Mzc5MSwgMC43MzI1MDIiLCBcCi0gICAgICAgICAgIjAuMDQ0MzQ1LCAwLjE1NDg1NiwgMC4yNjE1NDYsIDAuMzM4Nzc1LCAwLjQ2MzQ2MSwgMC41NzM3NiwgMC43MzI0ODEiLCBcCi0gICAgICAgICAgIjAuMDQzODE0LCAwLjE1NDY1MywgMC4yNjE0ODUsIDAuMzM4NzIzLCAwLjQ2MzQ5NiwgMC41NzM3NTYsIDAuNzMyNDU5IiwgXAotICAgICAgICAgICIwLjA0NDMzNywgMC4xNTQ3MDksIDAuMjYxNTI0LCAwLjMzODc1MSwgMC40NjM0ODYsIDAuNTczNzc3LCAwLjczMjQ4IiwgXAotICAgICAgICAgICIwLjA0NTk3MywgMC4xNTUyMTgsIDAuMjYxODkxLCAwLjMzOTAzNiwgMC40NjM4MywgMC41NzM5MywgMC43MzI2MDciLCBcCi0gICAgICAgICAgIjAuMDQ3NzY3LCAwLjE1NTc3NywgMC4yNjIyNjgsIDAuMzM5NTIsIDAuNDY0MTYxLCAwLjU3NDYzNCwgMC43MzE3NjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUzEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY4NzcxLCAwLjEzOTIyLCAwLjE5NjU3NCwgMC4yMzY0MTksIDAuMjk5Nzk4LCAwLjM1NTEzMiwgMC40MzQxNTYiLCBcCi0gICAgICAgICAgIjAuMDc2NTgsIDAuMTQ3MDUzLCAwLjIwNDM1NywgMC4yNDQyMjUsIDAuMzA3NTc1LCAwLjM2MjkxNCwgMC40NDE5NjQiLCBcCi0gICAgICAgICAgIjAuMDg1ODAzLCAwLjE1NjE5MywgMC4yMTM1MjcsIDAuMjUzNDA3LCAwLjMxNjc1NywgMC4zNzIwOTQsIDAuNDUxMTIiLCBcCi0gICAgICAgICAgIjAuMDkzMDA0LCAwLjE2MzI4NiwgMC4yMjA2MzEsIDAuMjYwNDc3LCAwLjMyMzgzNSwgMC4zNzkxODUsIDAuNDU4MjIiLCBcCi0gICAgICAgICAgIjAuMDk4NDIxLCAwLjE2ODQzNywgMC4yMjU3NzgsIDAuMjY1NjY4LCAwLjMyOTAyMywgMC4zODQzNTcsIDAuNDYzNDIiLCBcCi0gICAgICAgICAgIjAuMTA0ODc4LCAwLjE3NDY0MywgMC4yMzE5ODYsIDAuMjcxODA0LCAwLjMzNTE4MSwgMC4zOTA1NDMsIDAuNDY5NTQ5IiwgXAotICAgICAgICAgICIwLjEwOTU4MywgMC4xNzkyOTksIDAuMjM2NjE5LCAwLjI3NjQ2NSwgMC4zMzk4NSwgMC4zOTUxODQsIDAuNDc0MjI3Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQyOTA0LCAwLjE1NzYxLCAwLjI3MDUzMywgMC4zNTI2MTMsIDAuNDg1MDA3LCAwLjYwMTQ0NCwgMC43Njg4MyIsIFwKLSAgICAgICAgICAiMC4wNDI3MzUsIDAuMTU3NjQsIDAuMjcwNTA2LCAwLjM1MjYwNywgMC40ODQ5ODksIDAuNjAxNDE1LCAwLjc2OTU5OCIsIFwKLSAgICAgICAgICAiMC4wNDI0MTgsIDAuMTU3NDI2LCAwLjI3MDU3NywgMC4zNTI1NywgMC40ODQ5NTgsIDAuNjAxNTYzLCAwLjc2OTU3OCIsIFwKLSAgICAgICAgICAiMC4wNDE3MDEsIDAuMTU3MjE3LCAwLjI3MDM1NSwgMC4zNTI0OTEsIDAuNDg0OTEyLCAwLjYwMTM5NywgMC43Njk0NyIsIFwKLSAgICAgICAgICAiMC4wNDE0MywgMC4xNTcwNzUsIDAuMjcwNDE0LCAwLjM1MjQ3MiwgMC40ODQ5MiwgMC42MDEzNiwgMC43Njk0ODIiLCBcCi0gICAgICAgICAgIjAuMDQxNjA0LCAwLjE1Njg1LCAwLjI3MDE2NywgMC4zNTIyMzQsIDAuNDg0ODMxLCAwLjYwMTY5NiwgMC43Njk0NzEiLCBcCi0gICAgICAgICAgIjAuMDQxNjcyLCAwLjE1NjcyNiwgMC4yNzAwNTcsIDAuMzUyMTAzLCAwLjQ4NDU2MywgMC42MDE1MywgMC43NjkwODQiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzQ2ODgsIDAuMTQ2NzQ3LCAwLjIwMzkyMiwgMC4yNDMxNTEsIDAuMzA1MTA3LCAwLjM1OTAxMywgMC40MzU5OTYiLCBcCi0gICAgICAgICAgIjAuMDgyODU3LCAwLjE1NDkzNCwgMC4yMTIxNiwgMC4yNTEzNzIsIDAuMzEzMzM0LCAwLjM2NzI2NywgMC40NDQyMjEiLCBcCi0gICAgICAgICAgIjAuMDkyMjIzLCAwLjE2NDIyOCwgMC4yMjE0NjQsIDAuMjYwNjU0LCAwLjMyMjY1NSwgMC4zNzY1NzQsIDAuNDUzNTI3IiwgXAotICAgICAgICAgICIwLjA5OTU5NiwgMC4xNzE1MzcsIDAuMjI4NzAyLCAwLjI2NzkwMywgMC4zMjk4NTcsIDAuMzgzODA4LCAwLjQ2MDc3IiwgXAotICAgICAgICAgICIwLjEwNTAyLCAwLjE3NjczMSwgMC4yMzM5MDcsIDAuMjczMTEsIDAuMzM1MDg2LCAwLjM4OTAxMSwgMC40NjYiLCBcCi0gICAgICAgICAgIjAuMTExOTE3LCAwLjE4MzI3MSwgMC4yNDA0OCwgMC4yNzk2NzgsIDAuMzQxNjE3LCAwLjM5NTU3NCwgMC40NzI1MyIsIFwKLSAgICAgICAgICAiMC4xMTY5MDUsIDAuMTg4MjQ5LCAwLjI0NTMzNSwgMC4yODQ1MjQsIDAuMzQ2NDg5LCAwLjQwMDQzNSwgMC40NzczOTgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDU0NDIsIDAuMTU1NzM4LCAwLjI2MjMwNSwgMC4zMzk0MjMsIDAuNDY0MTE4LCAwLjU3NDU1NiwgMC43MzI4NjYiLCBcCi0gICAgICAgICAgIjAuMDQ1MzczLCAwLjE1NTY4NiwgMC4yNjIyODksIDAuMzM5NDI4LCAwLjQ2Mzg3MSwgMC41NzQyMDIsIDAuNzMyODQzIiwgXAotICAgICAgICAgICIwLjA0NTEwNywgMC4xNTU1NzMsIDAuMjYyMTk3LCAwLjMzOTM0MywgMC40NjQwNTksIDAuNTc0MjA4LCAwLjczMjc3MSIsIFwKLSAgICAgICAgICAiMC4wNDQzNjcsIDAuMTU1MzksIDAuMjYyMSwgMC4zMzkyODYsIDAuNDYzOTUzLCAwLjU3NDExNSwgMC43MzI3OTkiLCBcCi0gICAgICAgICAgIjAuMDQzOTQ4LCAwLjE1NTE4LCAwLjI2MjAxNywgMC4zMzkxMTMsIDAuNDYzOTQ5LCAwLjU3NDAxOSwgMC43MzI2NjEiLCBcCi0gICAgICAgICAgIjAuMDQzOTA2LCAwLjE1NDg2NywgMC4yNjE3NTYsIDAuMzM5MDM3LCAwLjQ2Mzg0NCwgMC41NzM4NCwgMC43MzI2NTgiLCBcCi0gICAgICAgICAgIjAuMDQzOTYzLCAwLjE1NDY3NCwgMC4yNjE1MywgMC4zMzg4NTQsIDAuNDYzNzUxLCAwLjU3MzY5NiwgMC43MzI2NDkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNzQ3OSwgMC4wMDY5NDksIDAuMDA2ODk2LCAwLjAwNjg3NiwgMC4wMDY4NiwgMC4wMDY4NSwgMC4wMDY4NDMiLCBcCi0gICAgICAgICAgIjAuMDA3NDk0LCAwLjAwNjk0MywgMC4wMDY4ODMsIDAuMDA2ODY0LCAwLjAwNjg0NiwgMC4wMDY4MzcsIDAuMDA2ODMiLCBcCi0gICAgICAgICAgIjAuMDA3NDQ4LCAwLjAwNjkyNCwgMC4wMDY4NzIsIDAuMDA2ODU3LCAwLjAwNjg0MywgMC4wMDY4MzYsIDAuMDA2ODI5IiwgXAotICAgICAgICAgICIwLjAwNzQ2OCwgMC4wMDY5MzksIDAuMDA2ODg5LCAwLjAwNjg3MywgMC4wMDY4NiwgMC4wMDY4NTMsIDAuMDA2ODQ4IiwgXAotICAgICAgICAgICIwLjAwNzYwOSwgMC4wMDcwMDgsIDAuMDA2OTQyLCAwLjAwNjkyMywgMC4wMDY5MDUsIDAuMDA2ODk4LCAwLjAwNjg4OSIsIFwKLSAgICAgICAgICAiMC4wMDc3ODMsIDAuMDA3MTAzLCAwLjAwNzAyNywgMC4wMDcwMDQsIDAuMDA2OTg0LCAwLjAwNjk3MywgMC4wMDY5NjgiLCBcCi0gICAgICAgICAgIjAuMDA4MDIxLCAwLjAwNzI0MSwgMC4wMDcxNCwgMC4wMDcxMSwgMC4wMDcwODMsIDAuMDA3MDY5LCAwLjAwNzA2MiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDExMjI4LCAwLjAxMDU4NCwgMC4wMTA1MjQsIDAuMDEwNTA2LCAwLjAxMDQ5LCAwLjAxMDQ4MiwgMC4wMTA0NzUiLCBcCi0gICAgICAgICAgIjAuMDExMjM4LCAwLjAxMDU3OCwgMC4wMTA1MTYsIDAuMDEwNDk3LCAwLjAxMDQ4MiwgMC4wMTA0NzQsIDAuMDEwNDY3IiwgXAotICAgICAgICAgICIwLjAxMTE3NywgMC4wMTA1NTYsIDAuMDEwNTA0LCAwLjAxMDQ4OSwgMC4wMTA0NzcsIDAuMDEwNDcxLCAwLjAxMDQ2NSIsIFwKLSAgICAgICAgICAiMC4wMTEyMzQsIDAuMDEwNTgzLCAwLjAxMDUyNCwgMC4wMTA1MSwgMC4wMTA0OTYsIDAuMDEwNDksIDAuMDEwNDg0IiwgXAotICAgICAgICAgICIwLjAxMTM0MiwgMC4wMTA2MzIsIDAuMDEwNTY1LCAwLjAxMDU0NywgMC4wMTA1MzMsIDAuMDEwNTI2LCAwLjAxMDUyIiwgXAotICAgICAgICAgICIwLjAxMTU0NywgMC4wMTA3MzksIDAuMDEwNjU1LCAwLjAxMDYzMiwgMC4wMTA2MTMsIDAuMDEwNjA0LCAwLjAxMDU5NiIsIFwKLSAgICAgICAgICAiMC4wMTE5NDEsIDAuMDEwOTI1LCAwLjAxMDgwMSwgMC4wMTA3NjIsIDAuMDEwNzI5LCAwLjAxMDcxMiwgMC4wMTA2OTciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNzIyOCwgMC4wMDY3OTYsIDAuMDA2NzgyLCAwLjAwNjc4LCAwLjAwNjc4LCAwLjAwNjc3OSwgMC4wMDY3NzgiLCBcCi0gICAgICAgICAgIjAuMDA3MjA0LCAwLjAwNjc3OSwgMC4wMDY3NjQsIDAuMDA2NzYxLCAwLjAwNjc2MSwgMC4wMDY3NjEsIDAuMDA2NzYiLCBcCi0gICAgICAgICAgIjAuMDA3MTk1LCAwLjAwNjc3MSwgMC4wMDY3NjQsIDAuMDA2NzYyLCAwLjAwNjc2MSwgMC4wMDY3NjMsIDAuMDA2NzY1IiwgXAotICAgICAgICAgICIwLjAwNzIzNSwgMC4wMDY3OTUsIDAuMDA2Nzc5LCAwLjAwNjc4LCAwLjAwNjc4MywgMC4wMDY3ODQsIDAuMDA2Nzg2IiwgXAotICAgICAgICAgICIwLjAwNzM4NSwgMC4wMDY4NjIsIDAuMDA2ODM0LCAwLjAwNjgzMSwgMC4wMDY4MjgsIDAuMDA2ODMsIDAuMDA2ODMiLCBcCi0gICAgICAgICAgIjAuMDA3NTY2LCAwLjAwNjk1NSwgMC4wMDY5MTgsIDAuMDA2OTExLCAwLjAwNjkwOSwgMC4wMDY5MDgsIDAuMDA2OTEyIiwgXAotICAgICAgICAgICIwLjAwNzkzOSwgMC4wMDcwNywgMC4wMDcwMTYsIDAuMDA3MDA2LCAwLjAwNjk5NywgMC4wMDY5OTUsIDAuMDA2OTk5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTEzNDEsIDAuMDEwNzU3LCAwLjAxMDcyNywgMC4wMTA3MjEsIDAuMDEwNzE3LCAwLjAxMDcxNiwgMC4wMTA3MTUiLCBcCi0gICAgICAgICAgIjAuMDExMzM3LCAwLjAxMDc1MSwgMC4wMTA3MiwgMC4wMTA3MTMsIDAuMDEwNzA5LCAwLjAxMDcwOCwgMC4wMTA3MDYiLCBcCi0gICAgICAgICAgIjAuMDExMywgMC4wMTA3MzIsIDAuMDEwNzA5LCAwLjAxMDcwNiwgMC4wMTA3MDQsIDAuMDEwNzA1LCAwLjAxMDcwNSIsIFwKLSAgICAgICAgICAiMC4wMTEzNDQsIDAuMDEwNzUxLCAwLjAxMDcyNSwgMC4wMTA3MjMsIDAuMDEwNzIyLCAwLjAxMDcyMiwgMC4wMTA3MjQiLCBcCi0gICAgICAgICAgIjAuMDExNDY5LCAwLjAxMDgwOCwgMC4wMTA3NywgMC4wMTA3NjQsIDAuMDEwNzYxLCAwLjAxMDc2LCAwLjAxMDc2IiwgXAotICAgICAgICAgICIwLjAxMTc1NCwgMC4wMTA5NDcsIDAuMDEwODc4LCAwLjAxMDg2MywgMC4wMTA4NTIsIDAuMDEwODQ4LCAwLjAxMDg0NSIsIFwKLSAgICAgICAgICAiMC4wMTIwNDMsIDAuMDExMDk4LCAwLjAxMDk5NywgMC4wMTA5NzQsIDAuMDEwOTU0LCAwLjAxMDk0NCwgMC4wMTA5MzciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNzI3MiwgMC4wMDY3OTQsIDAuMDA2NzY4LCAwLjAwNjc2MywgMC4wMDY3NiwgMC4wMDY3NTksIDAuMDA2NzU2IiwgXAotICAgICAgICAgICIwLjAwNzI2MywgMC4wMDY3NzEsIDAuMDA2NzQ4LCAwLjAwNjc0MywgMC4wMDY3NDEsIDAuMDA2NzM4LCAwLjAwNjczOCIsIFwKLSAgICAgICAgICAiMC4wMDcyMTcsIDAuMDA2NzQ5LCAwLjAwNjczMywgMC4wMDY3MzMsIDAuMDA2NzM0LCAwLjAwNjczNCwgMC4wMDY3MzQiLCBcCi0gICAgICAgICAgIjAuMDA3MjU2LCAwLjAwNjc3MywgMC4wMDY3NTMsIDAuMDA2NzUyLCAwLjAwNjc1MywgMC4wMDY3NTQsIDAuMDA2NzU0IiwgXAotICAgICAgICAgICIwLjAwNzM2NCwgMC4wMDY4MTksIDAuMDA2NzkxLCAwLjAwNjc4OCwgMC4wMDY3ODgsIDAuMDA2Nzg3LCAwLjAwNjc4OCIsIFwKLSAgICAgICAgICAiMC4wMDc1NjYsIDAuMDA2OTI0LCAwLjAwNjg3OSwgMC4wMDY4NzEsIDAuMDA2ODY2LCAwLjAwNjg2NCwgMC4wMDY4NjciLCBcCi0gICAgICAgICAgIjAuMDA3Nzc0LCAwLjAwNzA0MywgMC4wMDY5NzcsIDAuMDA2OTYzLCAwLjAwNjk1NCwgMC4wMDY5NTIsIDAuMDA2OTU0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTE5NjYsIDAuMDExMzM0LCAwLjAxMTI5MiwgMC4wMTEyODIsIDAuMDExMjc1LCAwLjAxMTI3MiwgMC4wMTEyNjkiLCBcCi0gICAgICAgICAgIjAuMDExOTQxLCAwLjAxMTMxMiwgMC4wMTEyNzUsIDAuMDExMjY3LCAwLjAxMTI2LCAwLjAxMTI1OCwgMC4wMTEyNTYiLCBcCi0gICAgICAgICAgIjAuMDExOTA4LCAwLjAxMTI5MywgMC4wMTEyNjIsIDAuMDExMjU3LCAwLjAxMTI1NCwgMC4wMTEyNTMsIDAuMDExMjUzIiwgXAotICAgICAgICAgICIwLjAxMTkyOCwgMC4wMTEzMDUsIDAuMDExMjc0LCAwLjAxMTI2OSwgMC4wMTEyNjYsIDAuMDExMjY2LCAwLjAxMTI2NyIsIFwKLSAgICAgICAgICAiMC4wMTIwMzYsIDAuMDExMzQ3LCAwLjAxMTMwNywgMC4wMTEzMDEsIDAuMDExMjk3LCAwLjAxMTI5NiwgMC4wMTEyOTYiLCBcCi0gICAgICAgICAgIjAuMDEyMjEzLCAwLjAxMTQ0MSwgMC4wMTEzODQsIDAuMDExMzczLCAwLjAxMTM2NywgMC4wMTEzNjUsIDAuMDExMzY0IiwgXAotICAgICAgICAgICIwLjAxMjU2OSwgMC4wMTE2MDgsIDAuMDExNTIsIDAuMDExNDkxLCAwLjAxMTQ3MywgMC4wMTE0NjUsIDAuMDExNDU4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDY4OTEsIDAuMDA2NDQxLCAwLjAwNjQyMywgMC4wMDY0MjEsIDAuMDA2NDIsIDAuMDA2NDE4LCAwLjAwNjQxOSIsIFwKLSAgICAgICAgICAiMC4wMDY5MTMsIDAuMDA2NDE5LCAwLjAwNjQwMywgMC4wMDY0MDEsIDAuMDA2NCwgMC4wMDY0LCAwLjAwNjQiLCBcCi0gICAgICAgICAgIjAuMDA2ODY5LCAwLjAwNjQxMywgMC4wMDY0MDEsIDAuMDA2Mzk5LCAwLjAwNjM5OSwgMC4wMDY0MDEsIDAuMDA2NDAyIiwgXAotICAgICAgICAgICIwLjAwNjkyMSwgMC4wMDY0NDIsIDAuMDA2NDI1LCAwLjAwNjQyMSwgMC4wMDY0MjMsIDAuMDA2NDI0LCAwLjAwNjQyNCIsIFwKLSAgICAgICAgICAiMC4wMDcwNDUsIDAuMDA2NDk3LCAwLjAwNjQ2NywgMC4wMDY0NjIsIDAuMDA2NDYzLCAwLjAwNjQ2MSwgMC4wMDY0NjEiLCBcCi0gICAgICAgICAgIjAuMDA3MjI2LCAwLjAwNjU4NiwgMC4wMDY1NDYsIDAuMDA2NTM5LCAwLjAwNjUzNiwgMC4wMDY1MzQsIDAuMDA2NTM4IiwgXAotICAgICAgICAgICIwLjAwNzQ2OSwgMC4wMDY3MjgsIDAuMDA2NjYzLCAwLjAwNjY0NSwgMC4wMDY2MzQsIDAuMDA2NjMxLCAwLjAwNjYzMyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEyMTEzLCAwLjAxMTQ5NywgMC4wMTE0NjIsIDAuMDExNDU0LCAwLjAxMTQ0OCwgMC4wMTE0NDYsIDAuMDExNDQ0IiwgXAotICAgICAgICAgICIwLjAxMjExOSwgMC4wMTE0OSwgMC4wMTE0NTMsIDAuMDExNDQ1LCAwLjAxMTQ0LCAwLjAxMTQzNywgMC4wMTE0MzYiLCBcCi0gICAgICAgICAgIjAuMDEyMDcyLCAwLjAxMTQ2OSwgMC4wMTE0NCwgMC4wMTE0MzYsIDAuMDExNDM0LCAwLjAxMTQzMywgMC4wMTE0MzMiLCBcCi0gICAgICAgICAgIjAuMDEyMTE0LCAwLjAxMTQ4NywgMC4wMTE0NTYsIDAuMDExNDUyLCAwLjAxMTQ1MSwgMC4wMTE0NTEsIDAuMDExNDUxIiwgXAotICAgICAgICAgICIwLjAxMjI3MSwgMC4wMTE1NTksIDAuMDExNTEsIDAuMDExNSwgMC4wMTE0OTQsIDAuMDExNDkyLCAwLjAxMTQ5MSIsIFwKLSAgICAgICAgICAiMC4wMTI1MDUsIDAuMDExNjc4LCAwLjAxMTYwNiwgMC4wMTE1ODksIDAuMDExNTc4LCAwLjAxMTU3MywgMC4wMTE1NjkiLCBcCi0gICAgICAgICAgIjAuMDEyODI5LCAwLjAxMTgyNywgMC4wMTE3MzMsIDAuMDExNjk4LCAwLjAxMTY3NywgMC4wMTE2NjcsIDAuMDExNjU5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUzAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE0MjY0LCAwLjAxMzc0OSwgMC4wMTM3MDEsIDAuMDEzNjg3LCAwLjAxMzY3NywgMC4wMTM2NywgMC4wMTM2NjUiLCBcCi0gICAgICAgICAgIjAuMDE0MjU3LCAwLjAxMzczMywgMC4wMTM2ODYsIDAuMDEzNjczLCAwLjAxMzY2LCAwLjAxMzY1NSwgMC4wMTM2NDgiLCBcCi0gICAgICAgICAgIjAuMDE0Mzc1LCAwLjAxMzg2NCwgMC4wMTM4MTQsIDAuMDEzODAyLCAwLjAxMzc5LCAwLjAxMzc4NCwgMC4wMTM3OCIsIFwKLSAgICAgICAgICAiMC4wMTQ1MjMsIDAuMDE0MDIxLCAwLjAxMzk3NSwgMC4wMTM5NjMsIDAuMDEzOTUxLCAwLjAxMzk0NiwgMC4wMTM5NDEiLCBcCi0gICAgICAgICAgIjAuMDE0NzM0LCAwLjAxNDIxOCwgMC4wMTQxNzIsIDAuMDE0MTYsIDAuMDE0MTQ3LCAwLjAxNDE0MSwgMC4wMTQxMzYiLCBcCi0gICAgICAgICAgIjAuMDE1MDYsIDAuMDE0NTM5LCAwLjAxNDQ5MywgMC4wMTQ0NzksIDAuMDE0NDY2LCAwLjAxNDQ2LCAwLjAxNDQ1NiIsIFwKLSAgICAgICAgICAiMC4wMTUzODEsIDAuMDE0ODcyLCAwLjAxNDgyNSwgMC4wMTQ4MDgsIDAuMDE0Nzk0LCAwLjAxNDc5NCwgMC4wMTQ3ODkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxNDg4MiwgMC4wMTQyNzksIDAuMDE0MjQ4LCAwLjAxNDI0MywgMC4wMTQyNDEsIDAuMDE0MjQxLCAwLjAxNDI0IiwgXAotICAgICAgICAgICIwLjAxNDg3MywgMC4wMTQyNjcsIDAuMDE0MjM4LCAwLjAxNDIzMywgMC4wMTQyMywgMC4wMTQyMjksIDAuMDE0MjI5IiwgXAotICAgICAgICAgICIwLjAxNDk0NiwgMC4wMTQzNTIsIDAuMDE0MzIyLCAwLjAxNDMxNiwgMC4wMTQzMTQsIDAuMDE0MzEzLCAwLjAxNDMxMyIsIFwKLSAgICAgICAgICAiMC4wMTUwNDMsIDAuMDE0NDMsIDAuMDE0NCwgMC4wMTQzOTUsIDAuMDE0MzkyLCAwLjAxNDM5MiwgMC4wMTQzOTIiLCBcCi0gICAgICAgICAgIjAuMDE1MTM2LCAwLjAxNDUzNSwgMC4wMTQ1MDYsIDAuMDE0NTAyLCAwLjAxNDUsIDAuMDE0NSwgMC4wMTQ1MDEiLCBcCi0gICAgICAgICAgIjAuMDE1MzMsIDAuMDE0NzMzLCAwLjAxNDcwOSwgMC4wMTQ3MDYsIDAuMDE0NzA1LCAwLjAxNDcwNSwgMC4wMTQ3MDUiLCBcCi0gICAgICAgICAgIjAuMDE1NDk5LCAwLjAxNDkxNCwgMC4wMTQ4ODQsIDAuMDE0ODgsIDAuMDE0ODc4LCAwLjAxNDg3OCwgMC4wMTQ4NzgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTMSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDk1MTgsIDAuMDA5MjUyLCAwLjAwOTI1MSwgMC4wMDkyNTEsIDAuMDA5MjUyLCAwLjAwOTI1MiwgMC4wMDkyNTEiLCBcCi0gICAgICAgICAgIjAuMDA5NTYyLCAwLjAwOTMxMiwgMC4wMDkzMTMsIDAuMDA5MzE3LCAwLjAwOTMyLCAwLjAwOTMxNywgMC4wMDkzMjEiLCBcCi0gICAgICAgICAgIjAuMDA5Njc2LCAwLjAwOTQ1NywgMC4wMDk0NjYsIDAuMDA5NDcyLCAwLjAwOTQ3OCwgMC4wMDk0ODEsIDAuMDA5NDg0IiwgXAotICAgICAgICAgICIwLjAwOTgxMiwgMC4wMDk2MTMsIDAuMDA5NjI3LCAwLjAwOTYzNSwgMC4wMDk2NDEsIDAuMDA5NjQ2LCAwLjAwOTY1MiIsIFwKLSAgICAgICAgICAiMC4wMTAwMDUsIDAuMDA5Nzk1LCAwLjAwOTgwOCwgMC4wMDk4MTcsIDAuMDA5ODI1LCAwLjAwOTgyOCwgMC4wMDk4MzciLCBcCi0gICAgICAgICAgIjAuMDEwMzIsIDAuMDEwMTAzLCAwLjAxMDExLCAwLjAxMDExNCwgMC4wMTAxMjIsIDAuMDEwMTI5LCAwLjAxMDEzNiIsIFwKLSAgICAgICAgICAiMC4wMTA2MzcsIDAuMDEwMzc4LCAwLjAxMDQxMywgMC4wMTA0MTUsIDAuMDEwNDIzLCAwLjAxMDQyOCwgMC4wMTA0MzEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwODMyMSwgMC4wMDc5MTgsIDAuMDA3OTAxLCAwLjAwNzg5NywgMC4wMDc4OTQsIDAuMDA3ODkyLCAwLjAwNzg5MSIsIFwKLSAgICAgICAgICAiMC4wMDgzNzcsIDAuMDA3OTkxLCAwLjAwNzk4MSwgMC4wMDc5NzksIDAuMDA3OTc3LCAwLjAwNzk3NywgMC4wMDc5NzciLCBcCi0gICAgICAgICAgIjAuMDA4NTExLCAwLjAwODE1NywgMC4wMDgxNTcsIDAuMDA4MTU5LCAwLjAwODE2MSwgMC4wMDgxNjMsIDAuMDA4MTY1IiwgXAotICAgICAgICAgICIwLjAwODYzNywgMC4wMDgzMjQsIDAuMDA4MzI5LCAwLjAwODMzNCwgMC4wMDgzNCwgMC4wMDgzNDQsIDAuMDA4MzQ4IiwgXAotICAgICAgICAgICIwLjAwODgzMywgMC4wMDg1MTgsIDAuMDA4NTIzLCAwLjAwODUyOSwgMC4wMDg1MzYsIDAuMDA4NTQsIDAuMDA4NTQ1IiwgXAotICAgICAgICAgICIwLjAwOTE4NCwgMC4wMDg4NTcsIDAuMDA4ODYxLCAwLjAwODg2OSwgMC4wMDg4NzMsIDAuMDA4ODc4LCAwLjAwODg4MyIsIFwKLSAgICAgICAgICAiMC4wMDk0OTgsIDAuMDA5MTY4LCAwLjAwOTE2OCwgMC4wMDkxNzMsIDAuMDA5MTgsIDAuMDA5MTg1LCAwLjAwOTE4OSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogTVhJMlgxICoKLSAqIC0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoTVhJMlgxKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMzQ4NDA1OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA4NzE3NzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA4Njk2NzI7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwODcxNzc7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNDk0LCAwLjAwMDUsIDAuMDAwNTAyLCAwLjAwMDUwNCwgMC4wMDA1MDUsIDAuMDAwNTA2LCAwLjAwMDUwNiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDU0OSwgMC4wMDA1MzIsIDAuMDAwNTMsIDAuMDAwNTI5LCAwLjAwMDUyOCwgMC4wMDA1MjgsIDAuMDAwNTI4Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA5NTgwMjg7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwOTU1NzE2OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDk1ODAyODsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA1MDgsIDAuMDAwNTExLCAwLjAwMDUxMiwgMC4wMDA1MTMsIDAuMDAwNTE0LCAwLjAwMDUxNCwgMC4wMDA1MTQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA1NTMsIDAuMDAwNTM2LCAwLjAwMDUzMiwgMC4wMDA1MzEsIDAuMDAwNTMsIDAuMDAwNTI5LCAwLjAwMDUyOSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUzApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTgyNTk7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxODI1OTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE4MjU2MTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyNDYsIDAuMDAwMjYsIDAuMDAwMzUyLCAwLjAwMDQ4MSwgMC4wMDA1ODksIDAuMDAwODAxLCAwLjAwMTAwMyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjY1NSwgMC4wMDI2ODIsIDAuMDAyNzUsIDAuMDAyODU1LCAwLjAwMjk3NiwgMC4wMDMxOTMsIDAuMDAzMzgzIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMTg2MDYxOwotICAgIGZ1bmN0aW9uIDogIighKChTMCBCKSArICghUzAgQSkpKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDcwODQ0LCAwLjEwNDc4OSwgMC4yOTY2NDksIDAuNDY1NTQxLCAwLjY5MTc1NCwgMS4xNDE5NCwgMS40MjQ4NiIsIFwKLSAgICAgICAgICAiMC4wNzcwNzcsIDAuMTExMDAyLCAwLjMwMjY0OCwgMC40NzE3MDYsIDAuNjk3MjAzLCAxLjE0ODM2LCAxLjQyOTc4IiwgXAotICAgICAgICAgICIwLjA4NDQ0NSwgMC4xMTgzMTUsIDAuMzEwMTY5LCAwLjQ3OTIxLCAwLjcwNDY3NSwgMS4xNTYwNSwgMS40Mzc5OCIsIFwKLSAgICAgICAgICAiMC4wOTE4OTcsIDAuMTI1NzI0LCAwLjMxNzc1OCwgMC40ODY5NzUsIDAuNzEyMzc0LCAxLjE2MzU5LCAxLjQ0NTciLCBcCi0gICAgICAgICAgIjAuMDk5MzA1LCAwLjEzMzIwMiwgMC4zMjUyMTMsIDAuNDk0NzUyLCAwLjcxOTg1OCwgMS4xNzA2OCwgMS40NTM0NSIsIFwKLSAgICAgICAgICAiMC4xMDk3ODIsIDAuMTQ1MTc4LCAwLjMzNjkxNCwgMC41MDY3NzUsIDAuNzMxOTQyLCAxLjE4MzA1LCAxLjQ2NDc5IiwgXAotICAgICAgICAgICIwLjExNzg0MiwgMC4xNTQ4ODYsIDAuMzQ3NTYzLCAwLjUxNjYsIDAuNzQyNDMxLCAxLjE5MzUsIDEuNDc0MzQiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTM3Mzc2LCAwLjIwODc5MywgMC42MTI5MDMsIDAuOTY5MjM4LCAxLjQ0NTI4LCAyLjM5NDYxLCAyLjk5MDQ5IiwgXAotICAgICAgICAgICIwLjEzNzQzMiwgMC4yMDg3NDQsIDAuNjEyODQzLCAwLjk2OTg0NywgMS40NDUxMSwgMi4zOTU0NCwgMi45ODg3NSIsIFwKLSAgICAgICAgICAiMC4xMzk1MDgsIDAuMjA5NDgyLCAwLjYxMjY1NCwgMC45Njk0NTQsIDEuNDQ0ODQsIDIuMzk1MzEsIDIuOTkwMzMiLCBcCi0gICAgICAgICAgIjAuMTQzNDE4LCAwLjIxMjA2NCwgMC42MTI4OTIsIDAuOTY5MTcxLCAxLjQ0NTQyLCAyLjM5NTA1LCAyLjk5MDE2IiwgXAotICAgICAgICAgICIwLjE0ODMxMSwgMC4yMTU4MjcsIDAuNjEzMjMsIDAuOTY5NTY0LCAxLjQ0NDUxLCAyLjM5NDkxLCAyLjk5MDEiLCBcCi0gICAgICAgICAgIjAuMTU3NDg3LCAwLjIyMzYwOSwgMC42MTUyNTcsIDAuOTY5NjM0LCAxLjQ0NTUyLCAyLjM5NjkzLCAyLjk4OTMzIiwgXAotICAgICAgICAgICIwLjE2NjU3MSwgMC4yMzEwMjMsIDAuNjE4NDE1LCAwLjk3MDM2NywgMS40NDUyMSwgMi4zOTYwNCwgMi45OTE2NiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjgwNDEsIDAuMDk5ODI5LCAwLjI3OTY2OCwgMC40Mzg0MjMsIDAuNjQ5Nzc3LCAxLjA3Mjc1LCAxLjMzNzMiLCBcCi0gICAgICAgICAgIjAuMDc0NTM3LCAwLjEwNjMzMywgMC4yODYxODUsIDAuNDQ0Njg2LCAwLjY1NjA3MywgMS4wNzg3MywgMS4zNDQwNyIsIFwKLSAgICAgICAgICAiMC4wODI3NjQsIDAuMTE0NTUsIDAuMjk0NjAyLCAwLjQ1MzA4NywgMC42NjQ4MTYsIDEuMDg3MiwgMS4zNTIwNyIsIFwKLSAgICAgICAgICAiMC4wOTA5NSwgMC4xMjI5MDgsIDAuMzAyNzc4LCAwLjQ2MTYyMSwgMC42NzI3NDgsIDEuMDk1OCwgMS4zNjEyNCIsIFwKLSAgICAgICAgICAiMC4wOTkzMjQsIDAuMTMxMDY0LCAwLjMxMDk4OSwgMC40Njk2NDEsIDAuNjgxMTYxLCAxLjEwMzg2LCAxLjM2Nzk3IiwgXAotICAgICAgICAgICIwLjExMTA2NSwgMC4xNDQyOTMsIDAuMzI0MjA5LCAwLjQ4MzE3NCwgMC42OTQ3NywgMS4xMTc2NywgMS4zODE5NCIsIFwKLSAgICAgICAgICAiMC4xMjAyLCAwLjE1NTE4NCwgMC4zMzU5OTQsIDAuNDk0OTYsIDAuNzA2NjE3LCAxLjEyOTU0LCAxLjM5NDAyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEyNjA2OCwgMC4xOTEyMjIsIDAuNTYwNDM2LCAwLjg4NjAyOCwgMS4zMjAyMSwgMi4xODg0OCwgMi43MzA4IiwgXAotICAgICAgICAgICIwLjEyNjE1LCAwLjE5MTIwOCwgMC41NjAzNzUsIDAuODg1NjM0LCAxLjMxOTY2LCAyLjE4NzU5LCAyLjczMTM5IiwgXAotICAgICAgICAgICIwLjEyODQyNywgMC4xOTIxNCwgMC41NjAzOTQsIDAuODg1NjY0LCAxLjMyMDE2LCAyLjE4ODcxLCAyLjczMTI5IiwgXAotICAgICAgICAgICIwLjEzMjYwOSwgMC4xOTUwMjgsIDAuNTYwMzE2LCAwLjg4NTk4OCwgMS4zMjAwMywgMi4xODgyNywgMi43MzEyIiwgXAotICAgICAgICAgICIwLjEzNzk0NCwgMC4xOTg5NiwgMC41NjA1OTQsIDAuODg1OTE2LCAxLjMxOTc0LCAyLjE4Nzc4LCAyLjczMDIiLCBcCi0gICAgICAgICAgIjAuMTQ3NTY3LCAwLjIwNzAxNSwgMC41NjI4NDUsIDAuODg1NzI3LCAxLjMxOTU4LCAyLjE4ODI4LCAyLjczMDAyIiwgXAotICAgICAgICAgICIwLjE1NjY1NiwgMC4yMTQ5NTgsIDAuNTY2NDgzLCAwLjg4NzA5NSwgMS4zMTk1OCwgMi4xODgyNSwgMi43MzA2OCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzEwNzUsIDAuMTA0OTg4LCAwLjI5NjU5OSwgMC40NjYwMzcsIDAuNjkxNjI1LCAxLjE0MzM5LCAxLjQyNDQyIiwgXAotICAgICAgICAgICIwLjA3NzA5NiwgMC4xMTA5ODYsIDAuMzAyNzE2LCAwLjQ3MjIyNCwgMC42OTc0NzQsIDEuMTQ4NywgMS40MzE1NSIsIFwKLSAgICAgICAgICAiMC4wODQzODMsIDAuMTE4Mjc3LCAwLjMxMDIzMSwgMC40NzkxODIsIDAuNzA0NzM5LCAxLjE1NjIyLCAxLjQzODQ4IiwgXAotICAgICAgICAgICIwLjA5MTgzNiwgMC4xMjU3NzQsIDAuMzE3NTI1LCAwLjQ4NjczOCwgMC43MTIwOTMsIDEuMTYzMTcsIDEuNDQ1NTkiLCBcCi0gICAgICAgICAgIjAuMDk5MTkxLCAwLjEzMzExNywgMC4zMjUwMTUsIDAuNDk0NjIxLCAwLjcyMDQwOSwgMS4xNzA3NCwgMS40NTI2NyIsIFwKLSAgICAgICAgICAiMC4xMDk3NTksIDAuMTQ0OTk4LCAwLjMzNjg0MSwgMC41MDY3MjMsIDAuNzMxNzc3LCAxLjE4MzExLCAxLjQ2NDY4IiwgXAotICAgICAgICAgICIwLjExNzYxMiwgMC4xNTQ3MTcsIDAuMzQ3Mzc3LCAwLjUxNjYzNSwgMC43NDI2NDEsIDEuMTk0MiwgMS40NzU5MSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMzczMTUsIDAuMjA4Njg5LCAwLjYxMjk4MiwgMC45Njk1NCwgMS40NDQ5NywgMi4zOTU2NiwgMi45ODkzMSIsIFwKLSAgICAgICAgICAiMC4xMzczMywgMC4yMDg2OTQsIDAuNjEyODYzLCAwLjk2OTU2OSwgMS40NDU0NSwgMi4zOTUxMSwgMi45OTA5NCIsIFwKLSAgICAgICAgICAiMC4xMzk0NTUsIDAuMjA5NDQ0LCAwLjYxMjc3MiwgMC45Njk2NjMsIDEuNDQ0MjMsIDIuMzk1NzcsIDIuOTkwMzgiLCBcCi0gICAgICAgICAgIjAuMTQzMzgyLCAwLjIxMjE2NSwgMC42MTI4MDQsIDAuOTY5MjExLCAxLjQ0NTQ1LCAyLjM5NTI5LCAyLjk5MDc0IiwgXAotICAgICAgICAgICIwLjE0ODI3OSwgMC4yMTU4NywgMC42MTMwODIsIDAuOTY5NTc2LCAxLjQ0NDg3LCAyLjM5NzMsIDIuOTkwMyIsIFwKLSAgICAgICAgICAiMC4xNTc1NTEsIDAuMjIzNDk3LCAwLjYxNTE0MSwgMC45Njk1NzMsIDEuNDQ1NDIsIDIuMzk2ODgsIDIuOTg5NSIsIFwKLSAgICAgICAgICAiMC4xNjY1MDUsIDAuMjMwOTc3LCAwLjYxODM4OSwgMC45NzA3NzEsIDEuNDQ1NDEsIDIuMzk1MTksIDIuOTkxNjEiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY3MTgxLCAwLjA5OSwgMC4yNzg4MzcsIDAuNDM3MzA1LCAwLjY0ODkwOCwgMS4wNzIwMSwgMS4zMzU4MyIsIFwKLSAgICAgICAgICAiMC4wNzM3NzEsIDAuMTA1NTc3LCAwLjI4NTQ0NywgMC40NDM5NjUsIDAuNjU1NCwgMS4wNzgxMiwgMS4zNDI3MSIsIFwKLSAgICAgICAgICAiMC4wODE5OTgsIDAuMTEzODA5LCAwLjI5Mzk3NCwgMC40NTI0NzQsIDAuNjY0MDk4LCAxLjA4NjUsIDEuMzUxNSIsIFwKLSAgICAgICAgICAiMC4wOTAzMjgsIDAuMTIyMTAzLCAwLjMwMjE1OCwgMC40NjA4MzMsIDAuNjcyMzYxLCAxLjA5NTAzLCAxLjM2MDUxIiwgXAotICAgICAgICAgICIwLjA5ODYzMiwgMC4xMzA0OTgsIDAuMzEwNDMxLCAwLjQ2OTA4NiwgMC42ODA2NjUsIDEuMTAzNCwgMS4zNjc1NiIsIFwKLSAgICAgICAgICAiMC4xMTA1OTUsIDAuMTQzODMyLCAwLjMyMzU1LCAwLjQ4MjUwNiwgMC42OTQyNzUsIDEuMTE3MDIsIDEuMzgwODUiLCBcCi0gICAgICAgICAgIjAuMTE5NjM5LCAwLjE1NDYyNCwgMC4zMzUzNzMsIDAuNDk0MTU1LCAwLjcwNTc5MywgMS4xMjg3NywgMS4zOTMxNSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMjU1NjUsIDAuMTkwNjQ2LCAwLjU1OTk0MiwgMC44ODU1NjEsIDEuMzE5NDMsIDIuMTg3NzYsIDIuNzMxMDgiLCBcCi0gICAgICAgICAgIjAuMTI1NjEzLCAwLjE5MDcxLCAwLjU1OTgzMywgMC44ODU1MTIsIDEuMzE5MzksIDIuMTg4MjgsIDIuNzMwNyIsIFwKLSAgICAgICAgICAiMC4xMjc4NzYsIDAuMTkxNTcyLCAwLjU2MDAxNCwgMC44ODUzNSwgMS4zMTk5MiwgMi4xODczNywgMi43MzA4NyIsIFwKLSAgICAgICAgICAiMC4xMzIxOTMsIDAuMTk0NDU3LCAwLjU1OTc0NywgMC44ODU1MDcsIDEuMzE5MzQsIDIuMTg3NSwgMi43MzA5IiwgXAotICAgICAgICAgICIwLjEzNzUxOSwgMC4xOTg1OTcsIDAuNTYwMDQzLCAwLjg4NTQwNywgMS4zMTk0LCAyLjE4NzUsIDIuNzI5OTkiLCBcCi0gICAgICAgICAgIjAuMTQ3MjM1LCAwLjIwNjgxMywgMC41NjIzMDcsIDAuODg1NTksIDEuMzE5NywgMi4xODc2MiwgMi43MzEyNCIsIFwKLSAgICAgICAgICAiMC4xNTYzNzksIDAuMjE0NTk1LCAwLjU2NTk3LCAwLjg4Njc1MiwgMS4zMTkxMSwgMi4xODc5NiwgMi43Mjk4MSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc3NjA3LCAwLjExMTMzLCAwLjMwMjgyNiwgMC40NzIyMzYsIDAuNjk4MTMzLCAxLjE0OTE5LCAxLjQyOTgzIiwgXAotICAgICAgICAgICIwLjA4NTMwMywgMC4xMTkwMTUsIDAuMzEwNTc4LCAwLjQ4MDAxOCwgMC43MDU1OTcsIDEuMTU3MjQsIDEuNDM4MjgiLCBcCi0gICAgICAgICAgIjAuMDkxODg3LCAwLjEyNTU4MywgMC4zMTcwNTMsIDAuNDg2MTgyLCAwLjcxMjAyNywgMS4xNjMxMywgMS40NDQxNSIsIFwKLSAgICAgICAgICAiMC4wOTY3MTEsIDAuMTMwNDU5LCAwLjMyMjExOCwgMC40OTA5MzIsIDAuNzE2NTk5LCAxLjE2NzEzLCAxLjQ1MDQxIiwgXAotICAgICAgICAgICIwLjEwMDk1MiwgMC4xMzQ0NTksIDAuMzI1ODg5LCAwLjQ5NTE0LCAwLjcyMDk4NCwgMS4xNzE5NywgMS40NTQ2OSIsIFwKLSAgICAgICAgICAiMC4xMDU5ODcsIDAuMTM5NjM1LCAwLjMzMDgzNywgMC40OTk4OTEsIDAuNzI1NzgxLCAxLjE3NjQxLCAxLjQ1ODIzIiwgXAotICAgICAgICAgICIwLjExMDIwMSwgMC4xNDM5MjIsIDAuMzM1MDE5LCAwLjUwNDAxNiwgMC43Mjk1OTIsIDEuMTgwMzIsIDEuNDYzMTUiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTM3MzIzLCAwLjIwODY5LCAwLjYxMjg0MSwgMC45Njk0NzMsIDEuNDQ3ODksIDIuMzk2MTYsIDIuOTkzNjEiLCBcCi0gICAgICAgICAgIjAuMTM3MzQzLCAwLjIwODcxLCAwLjYxMjk3MywgMC45Njk2MjEsIDEuNDQ0ODMsIDIuMzk1ODksIDIuOTg5NiIsIFwKLSAgICAgICAgICAiMC4xMzcwODQsIDAuMjA4NTE1LCAwLjYxMjkwNSwgMC45Njk0MTQsIDEuNDQ0NjcsIDIuMzk1OTYsIDIuOTkxNDYiLCBcCi0gICAgICAgICAgIjAuMTM2ODcsIDAuMjA4MTc2LCAwLjYxMjc5MywgMC45NjkyMSwgMS40NDQ1OCwgMi4zOTgxOCwgMi45OTA4NSIsIFwKLSAgICAgICAgICAiMC4xMzcsIDAuMjA3OTk0LCAwLjYxMjc5MywgMC45NjkxODgsIDEuNDQ0NzgsIDIuMzk2MzUsIDIuOTkxMDUiLCBcCi0gICAgICAgICAgIjAuMTM3MDAyLCAwLjIwNzg2MywgMC42MTI0MzUsIDAuOTY5MDU3LCAxLjQ0NDksIDIuMzk0NDUsIDIuOTg5NjEiLCBcCi0gICAgICAgICAgIjAuMTM3MzA1LCAwLjIwNzgxOSwgMC42MTIwOCwgMC45Njg5MjYsIDEuNDQ0NTQsIDIuMzk2NDQsIDIuOTkwMzIiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc2MDg5LCAwLjEwNzcwNCwgMC4yODczODIsIDAuNDQ1OTA5LCAwLjY1NzE0MSwgMS4wNzk2NiwgMS4zNDM0MyIsIFwKLSAgICAgICAgICAiMC4wODM2MTQsIDAuMTE1MjIsIDAuMjk0Nzk0LCAwLjQ1MzE5NywgMC42NjQ2NDQsIDEuMDg4MDUsIDEuMzUyMSIsIFwKLSAgICAgICAgICAiMC4wOTAyNjEsIDAuMTIxODY0LCAwLjMwMTM1LCAwLjQ1OTg4MiwgMC42NzEyNDEsIDEuMDk0MTEsIDEuMzU5MTIiLCBcCi0gICAgICAgICAgIjAuMDk0OTU0LCAwLjEyNjU1NiwgMC4zMDYwNjcsIDAuNDY0NjAyLCAwLjY3NTkyOCwgMS4wOTg3MSwgMS4zNjM0IiwgXAotICAgICAgICAgICIwLjA5ODYxNywgMC4xMzAyMDcsIDAuMzA5NjIyLCAwLjQ2ODE1LCAwLjY3OTU5MSwgMS4xMDIzOSwgMS4zNjYzMSIsIFwKLSAgICAgICAgICAiMC4xMDM1ODcsIDAuMTM1MjE4LCAwLjMxNDUzLCAwLjQ3Mjk3NywgMC42ODQ3MjEsIDEuMTA3NywgMS4zNzI3OCIsIFwKLSAgICAgICAgICAiMC4xMDc0NjYsIDAuMTM5MjI0LCAwLjMxODQ3NSwgMC40NzY4MTUsIDAuNjg4MzM1LCAxLjExMDg3LCAxLjM3NiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMjYyMDcsIDAuMTkxMjM2LCAwLjU2MDM3MSwgMC44ODYwMSwgMS4zMTk3NCwgMi4xODY3NiwgMi43Mjk0MyIsIFwKLSAgICAgICAgICAiMC4xMjYyODMsIDAuMTkxMjQ5LCAwLjU2MDM0NiwgMC44ODU2MjYsIDEuMzIwMTMsIDIuMTg4MzUsIDIuNzMxMyIsIFwKLSAgICAgICAgICAiMC4xMjU5NjMsIDAuMTkxMTczLCAwLjU2MDMzOCwgMC44ODU2OTksIDEuMzIwNjgsIDIuMTg5LCAyLjczMTA1IiwgXAotICAgICAgICAgICIwLjEyNTcwNywgMC4xOTA2ODcsIDAuNTYwMzIyLCAwLjg4NTg5NywgMS4zMTk2OSwgMi4xODk1OSwgMi43MzA2NyIsIFwKLSAgICAgICAgICAiMC4xMjU2MjMsIDAuMTkwNTExLCAwLjU2MDA2NCwgMC44ODU4OTQsIDEuMzE5OTgsIDIuMTg4OTUsIDIuNzMwMzMiLCBcCi0gICAgICAgICAgIjAuMTI1ODM0LCAwLjE5MDM3MiwgMC41NTk2MjMsIDAuODg1NzAyLCAxLjMyMDE2LCAyLjE4ODIzLCAyLjczMTEyIiwgXAotICAgICAgICAgICIwLjEyNjEyMywgMC4xOTA0MjUsIDAuNTU5NDQxLCAwLjg4NTI3NywgMS4zMTk3NSwgMi4xODg4OCwgMi43MzA4OSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY2MjAxLCAwLjEwMDA4NCwgMC4yOTE4ODcsIDAuNDYxMTM2LCAwLjY4NjM3NSwgMS4xMzgxLCAxLjQyMDQ5IiwgXAotICAgICAgICAgICIwLjA3Mzc4MywgMC4xMDc3MTIsIDAuMjk5NTQ2LCAwLjQ2ODkzMywgMC42OTM5ODcsIDEuMTQ2MjYsIDEuNDI3NyIsIFwKLSAgICAgICAgICAiMC4wODM0ODMsIDAuMTE3Mzg0LCAwLjMwOTIxNywgMC40NzgzNDYsIDAuNzAzODQ2LCAxLjE1NDk3LCAxLjQzNzEyIiwgXAotICAgICAgICAgICIwLjA5MzM1MSwgMC4xMjcxNTEsIDAuMzE4OTA1LCAwLjQ4ODI5MywgMC43MTM1ODksIDEuMTY2MTIsIDEuNDQ2MjYiLCBcCi0gICAgICAgICAgIjAuMTAzMzA0LCAwLjEzNzAzNywgMC4zMjg1NjksIDAuNDk3ODI1LCAwLjcyMzYyMSwgMS4xNzU2MiwgMS40NTU3MSIsIFwKLSAgICAgICAgICAiMC4xMTc5NjksIDAuMTUyOTQzLCAwLjM0NDE1OCwgMC41MTMyMTYsIDAuNzM4NjA2LCAxLjE4OTUzLCAxLjQ3MTM0IiwgXAotICAgICAgICAgICIwLjEyODY1NSwgMC4xNjY3NjEsIDAuMzU4MDMyLCAwLjUyNzA0OCwgMC43NTIyMTUsIDEuMjAzMzgsIDEuNDg0NTIiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTM2NTQ2LCAwLjIwODM2MiwgMC42MTI4MTYsIDAuOTY5NDI4LCAxLjQ0NTQ4LCAyLjM5NTgyLCAyLjk5MDY1IiwgXAotICAgICAgICAgICIwLjEzNjcxNiwgMC4yMDg0MjEsIDAuNjEyOTczLCAwLjk2OTUyOCwgMS40NDUxNCwgMi4zOTU3NCwgMi45OTAwOSIsIFwKLSAgICAgICAgICAiMC4xNDA2OTEsIDAuMjEwMDkzLCAwLjYxMjg2LCAwLjk2OTE5OSwgMS40NDQ0OSwgMi4zOTY3MiwgMi45ODk1NSIsIFwKLSAgICAgICAgICAiMC4xNDY5NjIsIDAuMjE0NjczLCAwLjYxMjg1MywgMC45Njk1NDMsIDEuNDQ0NTIsIDIuMzk2NjgsIDIuOTkxOCIsIFwKLSAgICAgICAgICAiMC4xNTQ0NjQsIDAuMjIwNjc3LCAwLjYxMzEwNCwgMC45NjkxNiwgMS40NDUwMSwgMi4zOTYzMywgMi45OTIyMyIsIFwKLSAgICAgICAgICAiMC4xNjc2MDUsIDAuMjMyMTkyLCAwLjYxNjE1NiwgMC45NjkzMTksIDEuNDQ1MzYsIDIuMzk1MTQsIDIuOTg5MjkiLCBcCi0gICAgICAgICAgIjAuMTgwMDYyLCAwLjI0MzQxLCAwLjYyMTE4MiwgMC45NzAyMSwgMS40NDUzNCwgMi4zOTYxMiwgMi45OTI5MSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjMyMjEsIDAuMDk1MDI4LCAwLjI3NDg1NCwgMC40MzM0MzQsIDAuNjQ0OTg5LCAxLjA2NzEzLCAxLjMzMTEyIiwgXAotICAgICAgICAgICIwLjA3MDkwMSwgMC4xMDI3NjgsIDAuMjgyNzIyLCAwLjQ0MTUzNCwgMC42NTI2MDIsIDEuMDc1ODksIDEuMzQwMTQiLCBcCi0gICAgICAgICAgIjAuMDgwNjc1LCAwLjExMjUyNywgMC4yOTI0MjYsIDAuNDUxMDU4LCAwLjY2Mjk4LCAxLjA4NTg2LCAxLjM1MDA4IiwgXAotICAgICAgICAgICIwLjA5MDY2NSwgMC4xMjI0MDEsIDAuMzAyMzQ1LCAwLjQ2MTA0NywgMC42NzI2NzMsIDEuMDk1NzIsIDEuMzU5NzMiLCBcCi0gICAgICAgICAgIjAuMTAwNjIyLCAwLjEzMjM5NCwgMC4zMTIxMjUsIDAuNDcwNTg0LCAwLjY4MjMyNiwgMS4xMDQ4NywgMS4zNjkyMSIsIFwKLSAgICAgICAgICAiMC4xMTUzOTgsIDAuMTQ4NTg3LCAwLjMyNzg0MiwgMC40ODY0NjMsIDAuNjk3Nzg4LCAxLjEyMTcyLCAxLjM4NDc5IiwgXAotICAgICAgICAgICIwLjEyNjI0NywgMC4xNjI1NDIsIDAuMzQxNzQ4LCAwLjUwMDEzMywgMC43MTE1NTEsIDEuMTM1MTcsIDEuMzk4NSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMjQ2LCAwLjE5MDM5MSwgMC41NTk3NzEsIDAuODg1MTIsIDEuMzE5NiwgMi4xODc2LCAyLjcyOTIzIiwgXAotICAgICAgICAgICIwLjEyNDc0OCwgMC4xOTAyOTgsIDAuNTYwMDQxLCAwLjg4NTUwMywgMS4zMTkxMywgMi4xODczMywgMi43MzEzOSIsIFwKLSAgICAgICAgICAiMC4xMjg2ODQsIDAuMTkyMTM4LCAwLjU1OTc1NiwgMC44ODUxMjUsIDEuMzE5NjcsIDIuMTg3ODMsIDIuNzMwMDkiLCBcCi0gICAgICAgICAgIjAuMTM0ODkyLCAwLjE5Njc4LCAwLjU1OTkzOCwgMC44ODUzNDMsIDEuMzE5NzYsIDIuMTg3OTksIDIuNzMxMzIiLCBcCi0gICAgICAgICAgIjAuMTQyMTYsIDAuMjAyODQ0LCAwLjU2MDE5OSwgMC44ODU0NTMsIDEuMzE5NzIsIDIuMTg3NTMsIDIuNzMyMDEiLCBcCi0gICAgICAgICAgIjAuMTU1NTA1LCAwLjIxNDM4OCwgMC41NjM2NDYsIDAuODg1MTkzLCAxLjMxOTI0LCAyLjE4ODE3LCAyLjczMDE2IiwgXAotICAgICAgICAgICIwLjE2Nzk5OSwgMC4yMjU0NjMsIDAuNTY4ODU1LCAwLjg4Njk0NCwgMS4zMTkyMywgMi4xODgwOCwgMi43MzE5NSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjcyLCAwLjAwMjcyMSwgMC4wMDI3MjIsIDAuMDAyNzIyLCAwLjAwMjcyMiwgMC4wMDI3MjIsIDAuMDAyNzIyIiwgXAotICAgICAgICAgICIwLjAwMjcwNSwgMC4wMDI3MDksIDAuMDAyNzE1LCAwLjAwMjcxMSwgMC4wMDI3MTYsIDAuMDAyNzE2LCAwLjAwMjcxNiIsIFwKLSAgICAgICAgICAiMC4wMDI3MDUsIDAuMDAyNzA4LCAwLjAwMjcxNCwgMC4wMDI3MTcsIDAuMDAyNzE2LCAwLjAwMjcxNiwgMC4wMDI3MTgiLCBcCi0gICAgICAgICAgIjAuMDAyNzIsIDAuMDAyNzE5LCAwLjAwMjcxOCwgMC4wMDI3MTgsIDAuMDAyNzE5LCAwLjAwMjcxNywgMC4wMDI3MTciLCBcCi0gICAgICAgICAgIjAuMDAyNzQ5LCAwLjAwMjc0LCAwLjAwMjcyOCwgMC4wMDI3MjUsIDAuMDAyNzIyLCAwLjAwMjcyMSwgMC4wMDI3MTkiLCBcCi0gICAgICAgICAgIjAuMDAyODE5LCAwLjAwMjc5MywgMC4wMDI3NTMsIDAuMDAyNzQyLCAwLjAwMjczNCwgMC4wMDI3MjcsIDAuMDAyNzI0IiwgXAotICAgICAgICAgICIwLjAwMjkwMSwgMC4wMDI4NTMsIDAuMDAyNzg0LCAwLjAwMjc2MiwgMC4wMDI3NDksIDAuMDAyNzM2LCAwLjAwMjczMiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDk5OSwgMC4wMDEsIDAuMDAxMDAyLCAwLjAwMTAwMiwgMC4wMDEwMDIsIDAuMDAxMDAyLCAwLjAwMTAwMSIsIFwKLSAgICAgICAgICAiMC4wMDA5NzIsIDAuMDAwOTc3LCAwLjAwMDk4NSwgMC4wMDA5ODcsIDAuMDAwOTg4LCAwLjAwMDk4OCwgMC4wMDA5ODgiLCBcCi0gICAgICAgICAgIjAuMDAwOTY3LCAwLjAwMDk3MywgMC4wMDA5ODIsIDAuMDAwOTg0LCAwLjAwMDk4NSwgMC4wMDA5ODYsIDAuMDAwOTg2IiwgXAotICAgICAgICAgICIwLjAwMDk4MiwgMC4wMDA5ODMsIDAuMDAwOTg1LCAwLjAwMDk4NiwgMC4wMDA5ODcsIDAuMDAwOTg3LCAwLjAwMDk4NiIsIFwKLSAgICAgICAgICAiMC4wMDEwMTYsIDAuMDAxMDA1LCAwLjAwMDk5NCwgMC4wMDA5OTIsIDAuMDAwOTksIDAuMDAwOTg5LCAwLjAwMDk4OCIsIFwKLSAgICAgICAgICAiMC4wMDEwOTQsIDAuMDAxMDYxLCAwLjAwMTAyLCAwLjAwMTAwOSwgMC4wMDEwMDIsIDAuMDAwOTk2LCAwLjAwMDk5NCIsIFwKLSAgICAgICAgICAiMC4wMDExNzksIDAuMDAxMTI5LCAwLjAwMTA1MSwgMC4wMDEwMzEsIDAuMDAxMDE4LCAwLjAwMTAwNiwgMC4wMDEwMDEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDMwMzksIDAuMDAzMDQsIDAuMDAzMDQxLCAwLjAwMzA0MSwgMC4wMDMwNDEsIDAuMDAzMDQxLCAwLjAwMzA0MSIsIFwKLSAgICAgICAgICAiMC4wMDMwMjQsIDAuMDAzMDI4LCAwLjAwMzAzMywgMC4wMDMwMzUsIDAuMDAzMDM1LCAwLjAwMzAzNSwgMC4wMDMwMzUiLCBcCi0gICAgICAgICAgIjAuMDAzMDIzLCAwLjAwMzAyNywgMC4wMDMwMzIsIDAuMDAzMDM1LCAwLjAwMzAzNCwgMC4wMDMwMzQsIDAuMDAzMDM1IiwgXAotICAgICAgICAgICIwLjAwMzAzOSwgMC4wMDMwMzcsIDAuMDAzMDM2LCAwLjAwMzAzNiwgMC4wMDMwMzYsIDAuMDAzMDM1LCAwLjAwMzAzNSIsIFwKLSAgICAgICAgICAiMC4wMDMwNjgsIDAuMDAzMDU4LCAwLjAwMzA0NSwgMC4wMDMwNDIsIDAuMDAzMDQsIDAuMDAzMDM3LCAwLjAwMzAzNiIsIFwKLSAgICAgICAgICAiMC4wMDMxNCwgMC4wMDMxMTIsIDAuMDAzMDcsIDAuMDAzMDYsIDAuMDAzMDUxLCAwLjAwMzA0NSwgMC4wMDMwNDIiLCBcCi0gICAgICAgICAgIjAuMDAzMjE5LCAwLjAwMzE3NCwgMC4wMDMxMDEsIDAuMDAzMDgsIDAuMDAzMDY3LCAwLjAwMzA1NSwgMC4wMDMwNSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDU4OCwgMC4wMDA1ODksIDAuMDAwNTkxLCAwLjAwMDU5MSwgMC4wMDA1OTEsIDAuMDAwNTkxLCAwLjAwMDU5MSIsIFwKLSAgICAgICAgICAiMC4wMDA1NjEsIDAuMDAwNTY3LCAwLjAwMDU3NSwgMC4wMDA1NzYsIDAuMDAwNTc3LCAwLjAwMDU3OCwgMC4wMDA1NzgiLCBcCi0gICAgICAgICAgIjAuMDAwNTU5LCAwLjAwMDU2MywgMC4wMDA1NzIsIDAuMDAwNTc0LCAwLjAwMDU3NSwgMC4wMDA1NzUsIDAuMDAwNTc1IiwgXAotICAgICAgICAgICIwLjAwMDU3NiwgMC4wMDA1NzUsIDAuMDAwNTc2LCAwLjAwMDU3NiwgMC4wMDA1NzYsIDAuMDAwNTc2LCAwLjAwMDU3NiIsIFwKLSAgICAgICAgICAiMC4wMDA2MDgsIDAuMDAwNTk4LCAwLjAwMDU4NSwgMC4wMDA1ODIsIDAuMDAwNTgsIDAuMDAwNTc4LCAwLjAwMDU3OCIsIFwKLSAgICAgICAgICAiMC4wMDA2ODksIDAuMDAwNjU4LCAwLjAwMDYxMiwgMC4wMDA2LCAwLjAwMDU5MywgMC4wMDA1ODYsIDAuMDAwNTgzIiwgXAotICAgICAgICAgICIwLjAwMDc4LCAwLjAwMDcyOCwgMC4wMDA2NDQsIDAuMDAwNjIzLCAwLjAwMDYwOSwgMC4wMDA1OTYsIDAuMDAwNTkyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUzAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjE1MiwgMC4wMDIxMzMsIDAuMDAyMTA2LCAwLjAwMjEsIDAuMDAyMDk5LCAwLjAwMjA5NCwgMC4wMDIwOTMiLCBcCi0gICAgICAgICAgIjAuMDAyMTY5LCAwLjAwMjE0OSwgMC4wMDIxMTQsIDAuMDAyMTA2LCAwLjAwMjEwMSwgMC4wMDIwOTcsIDAuMDAyMDk2IiwgXAotICAgICAgICAgICIwLjAwMjI2NywgMC4wMDIyNDYsIDAuMDAyMjA3LCAwLjAwMjE5NiwgMC4wMDIxOSwgMC4wMDIxODQsIDAuMDAyMTgyIiwgXAotICAgICAgICAgICIwLjAwMjM5LCAwLjAwMjM3MSwgMC4wMDIzMjksIDAuMDAyMzE3LCAwLjAwMjMwOCwgMC4wMDIzMDEsIDAuMDAyMjk5IiwgXAotICAgICAgICAgICIwLjAwMjUyMiwgMC4wMDI1MDEsIDAuMDAyNDU4LCAwLjAwMjQ0NCwgMC4wMDI0MzMsIDAuMDAyNDI2LCAwLjAwMjQyMiIsIFwKLSAgICAgICAgICAiMC4wMDI3NDEsIDAuMDAyNzMsIDAuMDAyNjg0LCAwLjAwMjY2NywgMC4wMDI2NTYsIDAuMDAyNjQ2LCAwLjAwMjY0MiIsIFwKLSAgICAgICAgICAiMC4wMDI5NCwgMC4wMDI5MzEsIDAuMDAyODksIDAuMDAyODcyLCAwLjAwMjg2MSwgMC4wMDI4NDcsIDAuMDAyODQ0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzNDk2LCAwLjAwMzQ3NCwgMC4wMDM0NDEsIDAuMDAzNDM0LCAwLjAwMzQzLCAwLjAwMzQyNywgMC4wMDM0MjUiLCBcCi0gICAgICAgICAgIjAuMDAzNTIsIDAuMDAzNDk3LCAwLjAwMzQ1OCwgMC4wMDM0NDksIDAuMDAzNDQ0LCAwLjAwMzQzOSwgMC4wMDM0MzgiLCBcCi0gICAgICAgICAgIjAuMDAzNjE4LCAwLjAwMzU5NiwgMC4wMDM1NSwgMC4wMDM1MzQsIDAuMDAzNTI3LCAwLjAwMzUyMSwgMC4wMDM1MTkiLCBcCi0gICAgICAgICAgIjAuMDAzNzMzLCAwLjAwMzcxLCAwLjAwMzY2MiwgMC4wMDM2NTEsIDAuMDAzNjQxLCAwLjAwMzYzNCwgMC4wMDM2MzEiLCBcCi0gICAgICAgICAgIjAuMDAzODYyLCAwLjAwMzgzOSwgMC4wMDM3ODcsIDAuMDAzNzcxLCAwLjAwMzc2MiwgMC4wMDM3NTMsIDAuMDAzNzUiLCBcCi0gICAgICAgICAgIjAuMDA0MTI4LCAwLjAwNDEwOSwgMC4wMDQwNSwgMC4wMDQwMzEsIDAuMDA0MDE5LCAwLjAwNDAwNywgMC4wMDQwMDMiLCBcCi0gICAgICAgICAgIjAuMDA0MzI0LCAwLjAwNDMwNiwgMC4wMDQyNDksIDAuMDA0MTcsIDAuMDA0MTU3LCAwLjAwNDE0NCwgMC4wMDQxNCIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogTVhJMlg2ICoKLSAqIC0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoTVhJMlg2KSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDEuMDU0OTI7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY4NzExMTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2ODYwNzg7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjg3MTExOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDI4LCAwLjAwMDI4NCwgMC4wMDAyODUsIDAuMDAwMjg2LCAwLjAwMDI4NiwgMC4wMDAyODcsIDAuMDAwMjg3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzE2LCAwLjAwMDMwNiwgMC4wMDAzMDMsIDAuMDAwMzAyLCAwLjAwMDMwMSwgMC4wMDAzLCAwLjAwMDMiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY3ODU4ODsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2NzczNDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2Nzg1ODg7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjg4LCAwLjAwMDI5LCAwLjAwMDI5LCAwLjAwMDI5MSwgMC4wMDAyOTEsIDAuMDAwMjkxLCAwLjAwMDI5MSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDMxMywgMC4wMDAzMDMsIDAuMDAwMzAxLCAwLjAwMDMsIDAuMDAwMjk5LCAwLjAwMDI5OCwgMC4wMDAyOTgiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFMwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDEzNTYzMzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDEzNTYzOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTM1NjMzOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDI0NCwgMC4wMDAyNjMsIDAuMDAwMzQyLCAwLjAwMDQ1NCwgMC4wMDA1ODYsIDAuMDAwODU0LCAwLjAwMTA1NCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjQzNCwgMC4wMDI0NTIsIDAuMDAyNTM1LCAwLjAwMjYzNSwgMC4wMDI3NiwgMC4wMDI5OCwgMC4wMDMxNzEiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMi4wNTU4MTsKLSAgICBmdW5jdGlvbiA6ICIoISgoUzAgQikgKyAoIVMwIEEpKSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY1OTQ4LCAwLjEwMzQzNCwgMC4xMzk2MzIsIDAuMTY1NTU3LCAwLjIwNzAxLCAwLjI0MzI2MiwgMC4yOTUwNzEiLCBcCi0gICAgICAgICAgIjAuMDcxODU1LCAwLjEwOTI2MywgMC4xNDU1NTMsIDAuMTcxNDU4LCAwLjIxMjkxMywgMC4yNDkxNjUsIDAuMzAxMDA5IiwgXAotICAgICAgICAgICIwLjA3ODY4NCwgMC4xMTYxMTEsIDAuMTUyMzk3LCAwLjE3ODMwMywgMC4yMTk3NTUsIDAuMjU2MDEsIDAuMzA3ODQzIiwgXAotICAgICAgICAgICIwLjA4NDgzMSwgMC4xMjIyMjUsIDAuMTU4NTIyLCAwLjE4NDQyOCwgMC4yMjU4OSwgMC4yNjIxMzMsIDAuMzEzOTc5IiwgXAotICAgICAgICAgICIwLjA4OTk5NSwgMC4xMjc0MTgsIDAuMTYzNzA5LCAwLjE4OTYxMSwgMC4yMzEwNjUsIDAuMjY3MzIyLCAwLjMxOTEzIiwgXAotICAgICAgICAgICIwLjA5NzA4OSwgMC4xMzQ1NzYsIDAuMTcwODU4LCAwLjE5Njc2MiwgMC4yMzgyMDEsIDAuMjc0NDYyLCAwLjMyNjI4NCIsIFwKLSAgICAgICAgICAiMC4xMDIzMjMsIDAuMTM5ODU1LCAwLjE3NjEzMywgMC4yMDIwMzQsIDAuMjQzNDk0LCAwLjI3OTc1MiwgMC4zMzE1NTEiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTk4ODgsIDAuMDkzMDU2LCAwLjE2ODg3LCAwLjIyMzI1NSwgMC4zMTExNzQsIDAuMzg3Nzg5LCAwLjQ5Njc5NiIsIFwKLSAgICAgICAgICAiMC4wMTk4ODQsIDAuMDkzMTQ2LCAwLjE2OTA1NCwgMC4yMjMyOCwgMC4zMTExOTYsIDAuMzg3NzgxLCAwLjQ5NzI2OCIsIFwKLSAgICAgICAgICAiMC4wMTk4NDEsIDAuMDkzMTQyLCAwLjE2OTA0NiwgMC4yMjM0OTMsIDAuMzExMjA0LCAwLjM4Nzc2NSwgMC40OTcyNjgiLCBcCi0gICAgICAgICAgIjAuMDE5OTQxLCAwLjA5MzE2NCwgMC4xNjg5NTIsIDAuMjIzNTE0LCAwLjMxMTIxMiwgMC4zODc3MzMsIDAuNDk3MjUyIiwgXAotICAgICAgICAgICIwLjAyMDE1LCAwLjA5MzE2NSwgMC4xNjkwNywgMC4yMjM1NTgsIDAuMzExMTgyLCAwLjM4NzgwOSwgMC40OTY3MjUiLCBcCi0gICAgICAgICAgIjAuMDIwMzMyLCAwLjA5MzE3NSwgMC4xNjkwNzcsIDAuMjIzNjQzLCAwLjMxMDk2MiwgMC4zODc0OSwgMC40OTY0ODEiLCBcCi0gICAgICAgICAgIjAuMDIwNTM5LCAwLjA5MzM5LCAwLjE2ODk4OCwgMC4yMjM1ODksIDAuMzExMTQ2LCAwLjM4NzY2MywgMC40OTY5ODEiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjI2ODgsIDAuMTAwNDQxLCAwLjEzNzA3NCwgMC4xNjMyMiwgMC4yMDUwMzgsIDAuMjQxNjI2LCAwLjI5Mzk2NSIsIFwKLSAgICAgICAgICAiMC4wNjg4MDksIDAuMTA2NjM3LCAwLjE0MzMyLCAwLjE2OTQ2NiwgMC4yMTEzMDcsIDAuMjQ3ODg2LCAwLjMwMDEwOCIsIFwKLSAgICAgICAgICAiMC4wNzYzMTEsIDAuMTE0MDg5LCAwLjE1MDc3MSwgMC4xNzY5NDgsIDAuMjE4NjYzLCAwLjI1NTI1MywgMC4zMDc1NzciLCBcCi0gICAgICAgICAgIjAuMDgyOTYxLCAwLjEyMDcwNywgMC4xNTczNDUsIDAuMTgzNDg3LCAwLjIyNTMxMSwgMC4yNjE5MDUsIDAuMzE0MjMzIiwgXAotICAgICAgICAgICIwLjA4ODcyMiwgMC4xMjY1MzIsIDAuMTYzMTQ4LCAwLjE4OTI5LCAwLjIzMTExNCwgMC4yNjc3MSwgMC4zMTk5ODMiLCBcCi0gICAgICAgICAgIjAuMDk2NTMsIDAuMTM0Mzg5LCAwLjE3MTAxOSwgMC4xOTcxNjgsIDAuMjM5MDA1LCAwLjI3NTU5LCAwLjMyNzg0NyIsIFwKLSAgICAgICAgICAiMC4xMDI1MDUsIDAuMTQwNDE2LCAwLjE3Njk1NCwgMC4yMDMwODgsIDAuMjQ0OTA4LCAwLjI4MTQ5NiwgMC4zMzM3NzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTkwMzgsIDAuMDkxNTEsIDAuMTY2MTMsIDAuMjIwMzAzLCAwLjMwNjI5OCwgMC4zODE1NjUsIDAuNDg4MzQ2IiwgXAotICAgICAgICAgICIwLjAxOTAwNSwgMC4wOTE0NDMsIDAuMTY2MjYyLCAwLjIxOTkzNiwgMC4zMDYyNzMsIDAuMzgxNjMzLCAwLjQ4ODMwMSIsIFwKLSAgICAgICAgICAiMC4wMTkwNTUsIDAuMDkxNTI1LCAwLjE2NjM4MiwgMC4yMTk2NDgsIDAuMzA2Mjc2LCAwLjM4MTE1MiwgMC40ODgzOTciLCBcCi0gICAgICAgICAgIjAuMDE5MTExLCAwLjA5MTU1LCAwLjE2NjIyMiwgMC4yMTk5ODksIDAuMzA2Mjc0LCAwLjM4MTEzLCAwLjQ4ODM5MyIsIFwKLSAgICAgICAgICAiMC4wMTkyNzUsIDAuMDkxNTgyLCAwLjE2NjM2OSwgMC4yMTk5NDksIDAuMzA1ODg5LCAwLjM4MTY3MiwgMC40ODkzNjEiLCBcCi0gICAgICAgICAgIjAuMDE5NDYsIDAuMDkxNTc2LCAwLjE2NjM5NCwgMC4yMjAyMTUsIDAuMzA2MzI0LCAwLjM4MTcsIDAuNDg5MzI1IiwgXAotICAgICAgICAgICIwLjAxOTU2MiwgMC4wOTE2NzksIDAuMTY2MTI1LCAwLjIxOTk0OSwgMC4zMDYxNjMsIDAuMzgxNDk2LCAwLjQ4OTE0MSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2Njg0MiwgMC4xMDQzMDEsIDAuMTQwNTgsIDAuMTY2NSwgMC4yMDc5NSwgMC4yNDQyMDEsIDAuMjk2MDAyIiwgXAotICAgICAgICAgICIwLjA3MjU4NywgMC4xMTAwNiwgMC4xNDYzNCwgMC4xNzIyMzQsIDAuMjEzNzIsIDAuMjQ5OTcxLCAwLjMwMTc3MyIsIFwKLSAgICAgICAgICAiMC4wNzkzMjEsIDAuMTE2Nzk3LCAwLjE1MzAyMiwgMC4xNzg5MjgsIDAuMjIwMzc3LCAwLjI1NjYzLCAwLjMwODQ0MiIsIFwKLSAgICAgICAgICAiMC4wODU1MTksIDAuMTIyODk3LCAwLjE1OTE4OSwgMC4xODUwOTYsIDAuMjI2NTM2LCAwLjI2MjgxMSwgMC4zMTQ2MTciLCBcCi0gICAgICAgICAgIjAuMDkwNzU1LCAwLjEyODMwMiwgMC4xNjQ1MjYsIDAuMTkwNDIyLCAwLjIzMTg3NCwgMC4yNjgxMzIsIDAuMzE5OTM2IiwgXAotICAgICAgICAgICIwLjA5Nzg1NiwgMC4xMzUzNTEsIDAuMTcxNjQsIDAuMTk3NTU2LCAwLjIzODk1NywgMC4yNzUyMiwgMC4zMjcwMjQiLCBcCi0gICAgICAgICAgIjAuMTAzMjIzLCAwLjE0MDczOSwgMC4xNzY5ODUsIDAuMjAyODg1LCAwLjI0NDMzOCwgMC4yODA1OTYsIDAuMzMyNDA4Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE5OTU0LCAwLjA5MzE2MSwgMC4xNjkwMzksIDAuMjIzNTc4LCAwLjMxMTIwMSwgMC4zODc3NDksIDAuNDk2NzI4IiwgXAotICAgICAgICAgICIwLjAxOTg4MSwgMC4wOTMxNTYsIDAuMTY4ODc4LCAwLjIyMzUzNywgMC4zMTExNTksIDAuMzg3ODA0LCAwLjQ5Njc1MyIsIFwKLSAgICAgICAgICAiMC4wMTk5MTksIDAuMDkzMDYxLCAwLjE2OTAwNSwgMC4yMjM3MjcsIDAuMzExMTgsIDAuMzg3Nzc0LCAwLjQ5NjgxNiIsIFwKLSAgICAgICAgICAiMC4wMTk5NTcsIDAuMDkzMTc3LCAwLjE2ODg5NCwgMC4yMjMzMjQsIDAuMzExMTQsIDAuMzg3MjkzLCAwLjQ5NjczNSIsIFwKLSAgICAgICAgICAiMC4wMjAxNjYsIDAuMDkzMTk2LCAwLjE2OTA3MSwgMC4yMjM1NDcsIDAuMzExMjA0LCAwLjM4Nzc1NCwgMC40OTY2ODYiLCBcCi0gICAgICAgICAgIjAuMDIwMzQyLCAwLjA5MzE4MiwgMC4xNjkwNzMsIDAuMjIzNTg2LCAwLjMxMTEzMywgMC4zODc2ODgsIDAuNDk2Nzk0IiwgXAotICAgICAgICAgICIwLjAyMDQ4MSwgMC4wOTM0NDUsIDAuMTY4OTU2LCAwLjIyMzYwMiwgMC4zMTExNjEsIDAuMzg3NTA1LCAwLjQ5NzA0NSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2MjY1MSwgMC4xMDA1MDcsIDAuMTM3MDY4LCAwLjE2MzIxMywgMC4yMDUwMjYsIDAuMjQxNjE2LCAwLjI5Mzg5NiIsIFwKLSAgICAgICAgICAiMC4wNjkwNDMsIDAuMTA2ODYzLCAwLjE0MzUwMSwgMC4xNjk2NDcsIDAuMjExNDgsIDAuMjQ4MDYzLCAwLjMwMDQwMSIsIFwKLSAgICAgICAgICAiMC4wNzY1NDcsIDAuMTE0MzY0LCAwLjE1MDk0MSwgMC4xNzcwODYsIDAuMjE4ODk2LCAwLjI1NTQ4NiwgMC4zMDc4MDUiLCBcCi0gICAgICAgICAgIjAuMDgzMjM3LCAwLjEyMDk4NiwgMC4xNTc2MjUsIDAuMTgzNzY5LCAwLjIyNTU5MywgMC4yNjIxODcsIDAuMzE0NTE2IiwgXAotICAgICAgICAgICIwLjA4ODk3MSwgMC4xMjY3MjcsIDAuMTYzMzU2LCAwLjE4OTQ5OSwgMC4yMzEzMzksIDAuMjY3OTEzLCAwLjMyMDE4OCIsIFwKLSAgICAgICAgICAiMC4wOTY4MzgsIDAuMTM0NjU1LCAwLjE3MTI4NywgMC4xOTc0MjQsIDAuMjM5MjYsIDAuMjc1ODQsIDAuMzI4MTE1IiwgXAotICAgICAgICAgICIwLjEwMjc0NCwgMC4xNDA2MjQsIDAuMTc3MjUyLCAwLjIwMzM5NCwgMC4yNDUyMTksIDAuMjgxODEyLCAwLjMzNDA4NCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxOTA0MSwgMC4wOTE1MTMsIDAuMTY2MTY2LCAwLjIyMDI4MiwgMC4zMDYyNSwgMC4zODE2NjEsIDAuNDg5NDI2IiwgXAotICAgICAgICAgICIwLjAxOTA0NSwgMC4wOTE1MTgsIDAuMTY2MjQyLCAwLjIyMDE0MSwgMC4zMDYyNywgMC4zODE2MjQsIDAuNDg4MzEiLCBcCi0gICAgICAgICAgIjAuMDE5MDc2LCAwLjA5MTUxNCwgMC4xNjYxNDQsIDAuMjE5NzQ4LCAwLjMwNjI3NSwgMC4zODExNjYsIDAuNDg4Mzk2IiwgXAotICAgICAgICAgICIwLjAxOTExOSwgMC4wOTE1NTIsIDAuMTY2Mzc0LCAwLjIxOTk3NSwgMC4zMDYyNzMsIDAuMzgxMTIxLCAwLjQ4ODM4MSIsIFwKLSAgICAgICAgICAiMC4wMTkzMjgsIDAuMDkxNTg4LCAwLjE2NjMxOCwgMC4yMTk4MzUsIDAuMzA2MzYsIDAuMzgxNTc2LCAwLjQ4OTM2MSIsIFwKLSAgICAgICAgICAiMC4wMTk0OTcsIDAuMDkxNTM0LCAwLjE2NjI1NSwgMC4yMjAxNzksIDAuMzA2MzMyLCAwLjM4MTY1OCwgMC40ODg3IiwgXAotICAgICAgICAgICIwLjAxOTY3MywgMC4wOTE3NjEsIDAuMTY2MTE3LCAwLjIxOTk1MywgMC4zMDYxNTMsIDAuMzgxMSwgMC40ODg2NTYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUzAiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDczMzI0LCAwLjExMDgxNCwgMC4xNDcwNTIsIDAuMTcyOTI3LCAwLjIxNDM3OCwgMC4yNTA2MzQsIDAuMzAyNDUiLCBcCi0gICAgICAgICAgIjAuMDgwODIzLCAwLjExODMwOCwgMC4xNTQ1NDgsIDAuMTgwNDI1LCAwLjIyMTg3NywgMC4yNTgxMzIsIDAuMzA5OTQ4IiwgXAotICAgICAgICAgICIwLjA4NzEzNywgMC4xMjQ1NzQsIDAuMTYwODc0LCAwLjE4Njc1OSwgMC4yMjgxNzYsIDAuMjY0NDc4LCAwLjMxNjI5IiwgXAotICAgICAgICAgICIwLjA5MTY2OSwgMC4xMjkwOTcsIDAuMTY1Mzg1LCAwLjE5MTI5NCwgMC4yMzI3NDYsIDAuMjY5LCAwLjMyMDgyMyIsIFwKLSAgICAgICAgICAiMC4wOTUzMTIsIDAuMTMyNzI5LCAwLjE2OTAxOCwgMC4xOTQ5MzMsIDAuMjM2Mzg0LCAwLjI3MjY1NSwgMC4zMjQ0MzUiLCBcCi0gICAgICAgICAgIjAuMTAwMjQ2LCAwLjEzNzcxNCwgMC4xNzQwMjMsIDAuMTk5OTI4LCAwLjI0MTM2NywgMC4yNzc2MjksIDAuMzI5NDI2IiwgXAotICAgICAgICAgICIwLjEwNDA5MiwgMC4xNDE1NDcsIDAuMTc3NzgxLCAwLjIwMzY4MywgMC4yNDUxMTUsIDAuMjgxMzkzLCAwLjMzMzE5NSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxOTg4NiwgMC4wOTMxNTYsIDAuMTY5MDQzLCAwLjIyMzU2OCwgMC4zMTA1ODcsIDAuMzg3NzU2LCAwLjQ5Njc5MSIsIFwKLSAgICAgICAgICAiMC4wMTk4ODMsIDAuMDkzMDM4LCAwLjE2OTE0MywgMC4yMjM0NzQsIDAuMzEwNTg3LCAwLjM4Nzc1NSwgMC40OTY3NjQiLCBcCi0gICAgICAgICAgIjAuMDE5ODg0LCAwLjA5MzE1NCwgMC4xNjkwNjUsIDAuMjIzNDExLCAwLjMxMDUwOCwgMC4zODc3NjcsIDAuNDk2ODE3IiwgXAotICAgICAgICAgICIwLjAxOTg0OCwgMC4wOTMxNDYsIDAuMTY5MDUyLCAwLjIyMzMyNCwgMC4zMTExOTUsIDAuMzg3Nzc2LCAwLjQ5NjM2OCIsIFwKLSAgICAgICAgICAiMC4wMTk5MDksIDAuMDkzMTI4LCAwLjE2OTA1MSwgMC4yMjM1NjUsIDAuMzExMTg0LCAwLjM4Nzc1NCwgMC40OTY3MzEiLCBcCi0gICAgICAgICAgIjAuMDE5ODkxLCAwLjA5MzA5NCwgMC4xNjg5MTUsIDAuMjIzNTU5LCAwLjMxMDcwNywgMC4zODcxMzUsIDAuNDk2NzY1IiwgXAotICAgICAgICAgICIwLjAxOTg2NiwgMC4wOTMxNjgsIDAuMTY4ODksIDAuMjIzMzksIDAuMzEwODQ1LCAwLjM4NzQsIDAuNDk2NTAzIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDcxMzAyLCAwLjEwOTA3MSwgMC4xNDU3MDYsIDAuMTcxODQ1LCAwLjIxMzY2NiwgMC4yNTAyNjEsIDAuMzAyNTgzIiwgXAotICAgICAgICAgICIwLjA3ODY2LCAwLjExNjQyMywgMC4xNTMwNTksIDAuMTc5MTk3LCAwLjIyMTAxOSwgMC4yNTc2MTYsIDAuMzA5OTI5IiwgXAotICAgICAgICAgICIwLjA4NDk1LCAwLjEyMjcwNSwgMC4xNTkzNDEsIDAuMTg1NDg2LCAwLjIyNzMwMiwgMC4yNjM4OTUsIDAuMzE2MjE0IiwgXAotICAgICAgICAgICIwLjA4OTEyOCwgMC4xMjY4NTIsIDAuMTYzNDg5LCAwLjE4OTYzNCwgMC4yMzE0NDgsIDAuMjY4MDQ2LCAwLjMyMDM2NSIsIFwKLSAgICAgICAgICAiMC4wOTI1NDcsIDAuMTMwMjY3LCAwLjE2NjksIDAuMTkzMDQ5LCAwLjIzNDg1OSwgMC4yNzE0NTgsIDAuMzIzNzMzIiwgXAotICAgICAgICAgICIwLjA5NzA3MywgMC4xMzQ4MzgsIDAuMTcxNDYzLCAwLjE5NzYwNiwgMC4yMzk0MjEsIDAuMjc2MDA3LCAwLjMyODI3NSIsIFwKLSAgICAgICAgICAiMC4xMDA1NzgsIDAuMTM4MzQ2LCAwLjE3NDk3NiwgMC4yMDExMTYsIDAuMjQyOTMyLCAwLjI3OTUxNiwgMC4zMzE3NzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTkwMTcsIDAuMDkxNTEyLCAwLjE2NjI0NiwgMC4yMTk4MzcsIDAuMzA2MjY4LCAwLjM4MTE5MSwgMC40ODgzOTkiLCBcCi0gICAgICAgICAgIjAuMDE5MDA4LCAwLjA5MTUxNSwgMC4xNjYyNDQsIDAuMjE5OCwgMC4zMDYyNjgsIDAuMzgxMjIsIDAuNDg4Mzk4IiwgXAotICAgICAgICAgICIwLjAxOTA0OCwgMC4wOTE1MDIsIDAuMTY2MTQxLCAwLjIyMDI1NywgMC4zMDYyNTcsIDAuMzgxMTU5LCAwLjQ4ODM5NiIsIFwKLSAgICAgICAgICAiMC4wMTkwMTQsIDAuMDkxNTEyLCAwLjE2NjIyMiwgMC4yMjAyNDYsIDAuMzA2MjY0LCAwLjM4MTE4NCwgMC40ODgzOTYiLCBcCi0gICAgICAgICAgIjAuMDE5MDU5LCAwLjA5MTUxNywgMC4xNjYyMTMsIDAuMjE5NzU0LCAwLjMwNjIxNywgMC4zODExOTIsIDAuNDg4ODAzIiwgXAotICAgICAgICAgICIwLjAxOTAxNCwgMC4wOTE0NDMsIDAuMTY2MjI4LCAwLjIxOTgzOSwgMC4zMDU5OTUsIDAuMzgxMTczLCAwLjQ4ODY2MiIsIFwKLSAgICAgICAgICAiMC4wMTkwMDksIDAuMDkxNTI0LCAwLjE2NjA0OCwgMC4yMTk2OTYsIDAuMzA1NzY2LCAwLjM4MDgzMSwgMC40ODg2NjIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUzAiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDYxMjIsIDAuMDk4Njk5LCAwLjEzNDkyNiwgMC4xNjA4NTcsIDAuMjAyMzA2LCAwLjIzODU1NiwgMC4yOTAzMTIiLCBcCi0gICAgICAgICAgIjAuMDY4NTYyLCAwLjEwNjA0NCwgMC4xNDIzMzksIDAuMTY4MjUyLCAwLjIwOTcwNiwgMC4yNDU5NDcsIDAuMjk3NzU3IiwgXAotICAgICAgICAgICIwLjA3Nzk3MSwgMC4xMTU0NDMsIDAuMTUxNzE4LCAwLjE3NzY0MywgMC4yMTkxMDIsIDAuMjU1MzU1LCAwLjMwNzE2NSIsIFwKLSAgICAgICAgICAiMC4wODYyNjEsIDAuMTIzNjQyLCAwLjE1OTkzOSwgMC4xODU4NDEsIDAuMjI3MjkxLCAwLjI2MzU0NiwgMC4zMTUzNTgiLCBcCi0gICAgICAgICAgIjAuMDkzMTU1LCAwLjEzMDYsIDAuMTY2ODc5LCAwLjE5Mjc4MywgMC4yMzQyNDQsIDAuMjcwNTExLCAwLjMyMjMwNCIsIFwKLSAgICAgICAgICAiMC4xMDIzMTEsIDAuMTM5ODY4LCAwLjE3NjE0NiwgMC4yMDE5OTIsIDAuMjQzNDk1LCAwLjI3OTY4NiwgMC4zMzE1MTMiLCBcCi0gICAgICAgICAgIjAuMTA5MTE5LCAwLjE0NjYxMywgMC4xODMwMTEsIDAuMjA4Nzg3LCAwLjI1MDM0OCwgMC4yODY0OTcsIDAuMzM4Mjk3Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE5ODUsIDAuMDkzMDUxLCAwLjE2ODg0MywgMC4yMjM1NTgsIDAuMzExMjA3LCAwLjM4Nzc3OCwgMC40OTY2NTMiLCBcCi0gICAgICAgICAgIjAuMDE5ODcxLCAwLjA5MzA3MSwgMC4xNjg5OTEsIDAuMjIzNDQ3LCAwLjMxMDcyOCwgMC4zODcwMTYsIDAuNDk2NzU5IiwgXAotICAgICAgICAgICIwLjAxOTg0MSwgMC4wOTMxNTEsIDAuMTY4OTU1LCAwLjIyMzQ1MSwgMC4zMTExNjgsIDAuMzg3Nzc5LCAwLjQ5Njc5MiIsIFwKLSAgICAgICAgICAiMC4wMjAwODIsIDAuMDkzMTgxLCAwLjE2ODg3NywgMC4yMjM1MzEsIDAuMzExMjE3LCAwLjM4Nzc0NywgMC40OTY3OTIiLCBcCi0gICAgICAgICAgIjAuMDIwMzUxLCAwLjA5MzIyOSwgMC4xNjkxMDgsIDAuMjIzNTUxLCAwLjMxMTE3OCwgMC4zODc4NDMsIDAuNDk3MTE3IiwgXAotICAgICAgICAgICIwLjAyMDUyMiwgMC4wOTMyMiwgMC4xNjkwOTUsIDAuMjIzNTgsIDAuMzExMTMyLCAwLjM4NzQ0NywgMC40OTcyMTEiLCBcCi0gICAgICAgICAgIjAuMDIwNjg1LCAwLjA5MzQ0NiwgMC4xNjkwODIsIDAuMjIzNDQzLCAwLjMxMDg1NiwgMC4zODc2NzUsIDAuNDk3MDY4Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU4MTE5LCAwLjA5NTkwNiwgMC4xMzI1NDEsIDAuMTU4Njg4LCAwLjIwMDUwNCwgMC4yMzcxMjIsIDAuMjg5NDMxIiwgXAotICAgICAgICAgICIwLjA2NTU3NiwgMC4xMDMzODEsIDAuMTQwMDE2LCAwLjE2NjE2MywgMC4yMDc5ODMsIDAuMjQ0NTg1LCAwLjI5Njg2NyIsIFwKLSAgICAgICAgICAiMC4wNzUwNSwgMC4xMTI4NDcsIDAuMTQ5NDgsIDAuMTc1NjI4LCAwLjIxNzQ0MywgMC4yNTQwNCwgMC4zMDYzNjIiLCBcCi0gICAgICAgICAgIjAuMDgzMjA0LCAwLjEyMDk2MSwgMC4xNTc1OTgsIDAuMTgzNzM5LCAwLjIyNTU2MywgMC4yNjIxNTQsIDAuMzE0NDg5IiwgXAotICAgICAgICAgICIwLjA4OTk2NSwgMC4xMjc3MywgMC4xNjQzNjksIDAuMTkwNDk1LCAwLjIzMjMyNCwgMC4yNjg5MjMsIDAuMzIxMjQxIiwgXAotICAgICAgICAgICIwLjA5ODk1MSwgMC4xMzY3NDEsIDAuMTczMzY5LCAwLjE5OTUwNCwgMC4yNDEzMzUsIDAuMjc3OTE5LCAwLjMzMDI5NiIsIFwKLSAgICAgICAgICAiMC4xMDU2ODQsIDAuMTQzNjcyLCAwLjE4MDA5NCwgMC4yMDYyODYsIDAuMjQ4MDE4LCAwLjI4NDYwMywgMC4zMzY4ODgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTg5OTgsIDAuMDkxNTIxLCAwLjE2NjE3NCwgMC4yMTk3MjMsIDAuMzA2MTcxLCAwLjM4MDgyOCwgMC40ODgzOTQiLCBcCi0gICAgICAgICAgIjAuMDE5MDA2LCAwLjA5MTUyMywgMC4xNjYxNDUsIDAuMjE5NjQyLCAwLjMwNjE5OSwgMC4zODA4MDcsIDAuNDg4NzA3IiwgXAotICAgICAgICAgICIwLjAxOTAyOSwgMC4wOTE1NDIsIDAuMTY2MjQyLCAwLjIyMDI1NSwgMC4zMDYyNjQsIDAuMzgxNjY4LCAwLjQ4ODM5NyIsIFwKLSAgICAgICAgICAiMC4wMTkyMiwgMC4wOTE1NzIsIDAuMTY2MjI4LCAwLjIxOTk0OSwgMC4zMDYyOCwgMC4zODE1NjIsIDAuNDg4MzQ2IiwgXAotICAgICAgICAgICIwLjAxOTQzMSwgMC4wOTE2MTQsIDAuMTY2MjU1LCAwLjIyMDE3NCwgMC4zMDYzMzUsIDAuMzgxNjM0LCAwLjQ4ODU2NiIsIFwKLSAgICAgICAgICAiMC4wMTk2MTgsIDAuMDkxNjMzLCAwLjE2NjI4NCwgMC4yMjAxOSwgMC4zMDYzMDUsIDAuMzgxNTgxLCAwLjQ4ODY4MSIsIFwKLSAgICAgICAgICAiMC4wMjAwMzcsIDAuMDkxNzgxLCAwLjE2NjMzNywgMC4yMTk5ODUsIDAuMzA2MjMsIDAuMzgxNTYxLCAwLjQ4ODcxMyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEyNzI1LCAwLjAxMjk0MiwgMC4wMTMwMDUsIDAuMDEzMDEyLCAwLjAxMzAxOSwgMC4wMTMwNywgMC4wMTMwMzIiLCBcCi0gICAgICAgICAgIjAuMDEyNzA3LCAwLjAxMjkwOSwgMC4wMTI5NTUsIDAuMDEyOTcsIDAuMDEyOTgsIDAuMDEyOTksIDAuMDEzMDAyIiwgXAotICAgICAgICAgICIwLjAxMjcxOCwgMC4wMTI5MzcsIDAuMDEyOTg3LCAwLjAxMzAwNywgMC4wMTMwMTksIDAuMDEzMDI3LCAwLjAxMzAzNCIsIFwKLSAgICAgICAgICAiMC4wMTI3ODksIDAuMDEzMDA5LCAwLjAxMzA2MywgMC4wMTMwODIsIDAuMDEzMDk3LCAwLjAxMzEwOCwgMC4wMTMxMTciLCBcCi0gICAgICAgICAgIjAuMDEyOTAzLCAwLjAxMzExLCAwLjAxMzE2NiwgMC4wMTMxNzcsIDAuMDEzMTg1LCAwLjAxMzIwMywgMC4wMTMyMTMiLCBcCi0gICAgICAgICAgIjAuMDEzMDY4LCAwLjAxMzI4NSwgMC4wMTMzMjMsIDAuMDEzMzQsIDAuMDEzMzY4LCAwLjAxMzM3MiwgMC4wMTMzNzgiLCBcCi0gICAgICAgICAgIjAuMDEzMTY4LCAwLjAxMzM1NywgMC4wMTM0MDMsIDAuMDEzNDE5LCAwLjAxMzQzNSwgMC4wMTM0NDgsIDAuMDEzNDUyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTA5ODcsIDAuMDExMzE4LCAwLjAxMTM5MSwgMC4wMTE0MTUsIDAuMDExNDM3LCAwLjAxMTQ0OSwgMC4wMTE0NTkiLCBcCi0gICAgICAgICAgIjAuMDEwOTM1LCAwLjAxMTI3NCwgMC4wMTEzNDcsIDAuMDExMzcxLCAwLjAxMTM5MywgMC4wMTE0MDQsIDAuMDExNDE0IiwgXAotICAgICAgICAgICIwLjAxMDk4NywgMC4wMTEzMzIsIDAuMDExNDA5LCAwLjAxMTQzNCwgMC4wMTE0NTgsIDAuMDExNDcsIDAuMDExNDgxIiwgXAotICAgICAgICAgICIwLjAxMTAzNCwgMC4wMTEzOTEsIDAuMDExNDczLCAwLjAxMTUwMSwgMC4wMTE1MjYsIDAuMDExNTM5LCAwLjAxMTU1MSIsIFwKLSAgICAgICAgICAiMC4wMTExNjIsIDAuMDExNDczLCAwLjAxMTU1MSwgMC4wMTE1NzYsIDAuMDExNiwgMC4wMTE2MTIsIDAuMDExNjI0IiwgXAotICAgICAgICAgICIwLjAxMTMzMSwgMC4wMTE2MjUsIDAuMDExNywgMC4wMTE3MjcsIDAuMDExNzUsIDAuMDExNzYxLCAwLjAxMTc3NyIsIFwKLSAgICAgICAgICAiMC4wMTE1MjEsIDAuMDExODE3LCAwLjAxMTg5OCwgMC4wMTE5MjYsIDAuMDExOTU0LCAwLjAxMTk2OCwgMC4wMTE5NzkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMzA0NywgMC4wMTMyNSwgMC4wMTMyOTcsIDAuMDEzMzEzLCAwLjAxMzM1OCwgMC4wMTMzNzYsIDAuMDEzMzQyIiwgXAotICAgICAgICAgICIwLjAxMjk5NSwgMC4wMTMyMTMsIDAuMDEzMjgsIDAuMDEzMjg0LCAwLjAxMzI5MiwgMC4wMTMzLCAwLjAxMzMwNyIsIFwKLSAgICAgICAgICAiMC4wMTMwMTIsIDAuMDEzMjM2LCAwLjAxMzI4NywgMC4wMTMzMDQsIDAuMDEzMzIsIDAuMDEzMzU2LCAwLjAxMzMzNSIsIFwKLSAgICAgICAgICAiMC4wMTMwOTIsIDAuMDEzMzE4LCAwLjAxMzM2OCwgMC4wMTMzOTYsIDAuMDEzNDA5LCAwLjAxMzQxOCwgMC4wMTM0MjkiLCBcCi0gICAgICAgICAgIjAuMDEzMjE2LCAwLjAxMzQwOCwgMC4wMTM0NTYsIDAuMDEzNDc5LCAwLjAxMzQ5NCwgMC4wMTM1MDQsIDAuMDEzNTEiLCBcCi0gICAgICAgICAgIjAuMDEzMzUxLCAwLjAxMzU0NSwgMC4wMTM1OTksIDAuMDEzNjE4LCAwLjAxMzYzMSwgMC4wMTM2NDUsIDAuMDEzNjU3IiwgXAotICAgICAgICAgICIwLjAxMzUxMSwgMC4wMTM3MTcsIDAuMDEzNzcxLCAwLjAxMzc4MiwgMC4wMTM4MDksIDAuMDEzODE3LCAwLjAxMzgyNCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEwNzA4LCAwLjAxMTA0NCwgMC4wMTExMTYsIDAuMDExMTQxLCAwLjAxMTE2MywgMC4wMTExNzUsIDAuMDExMTg2IiwgXAotICAgICAgICAgICIwLjAxMDY2NSwgMC4wMTEwMDIsIDAuMDExMDc0LCAwLjAxMTA5OCwgMC4wMTExMiwgMC4wMTExMzEsIDAuMDExMTQxIiwgXAotICAgICAgICAgICIwLjAxMDY3OCwgMC4wMTEwMjksIDAuMDExMTA4LCAwLjAxMTEzMywgMC4wMTExNTgsIDAuMDExMTcsIDAuMDExMTgyIiwgXAotICAgICAgICAgICIwLjAxMDc3LCAwLjAxMTExOSwgMC4wMTEyMDIsIDAuMDExMjI5LCAwLjAxMTI1NCwgMC4wMTEyNjgsIDAuMDExMjc5IiwgXAotICAgICAgICAgICIwLjAxMDkyMSwgMC4wMTEyMywgMC4wMTEzMDgsIDAuMDExMzMyLCAwLjAxMTM1NiwgMC4wMTEzNjgsIDAuMDExMzgiLCBcCi0gICAgICAgICAgIjAuMDExMDIzLCAwLjAxMTMxMSwgMC4wMTEzODksIDAuMDExNDE2LCAwLjAxMTQ0MiwgMC4wMTE0NTQsIDAuMDExNDY2IiwgXAotICAgICAgICAgICIwLjAxMTE2OSwgMC4wMTE0NjQsIDAuMDExNTQxLCAwLjAxMTU2NywgMC4wMTE1OTUsIDAuMDExNjA5LCAwLjAxMTYyMiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlMwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMjUwMSwgMC4wMTI3MjksIDAuMDEyNzc4LCAwLjAxMjc5NSwgMC4wMTI4MjMsIDAuMDEyODE4LCAwLjAxMjg0MSIsIFwKLSAgICAgICAgICAiMC4wMTI1MDcsIDAuMDEyNzQ0LCAwLjAxMjc4NCwgMC4wMTI4MDYsIDAuMDEyODMsIDAuMDEyODEzLCAwLjAxMjg1IiwgXAotICAgICAgICAgICIwLjAxMjYyNCwgMC4wMTI4MzcsIDAuMDEyODg0LCAwLjAxMjksIDAuMDEyOTI0LCAwLjAxMjkwOSwgMC4wMTI5NDMiLCBcCi0gICAgICAgICAgIjAuMDEyNzE1LCAwLjAxMjk0MiwgMC4wMTI5OTIsIDAuMDEzMDA4LCAwLjAxMzAyMywgMC4wMTMwMjYsIDAuMDEzMDM3IiwgXAotICAgICAgICAgICIwLjAxMjg5OSwgMC4wMTMwODQsIDAuMDEzMTI2LCAwLjAxMzE0MSwgMC4wMTMxNTUsIDAuMDEzMTY4LCAwLjAxMzE2NyIsIFwKLSAgICAgICAgICAiMC4wMTMxMiwgMC4wMTMzMzgsIDAuMDEzMzgzLCAwLjAxMzM5OSwgMC4wMTM0MTIsIDAuMDEzNDE4LCAwLjAxMzQzNyIsIFwKLSAgICAgICAgICAiMC4wMTMzMTgsIDAuMDEzNTQxLCAwLjAxMzU5LCAwLjAxMzYxLCAwLjAxMzYyMSwgMC4wMTM2MzksIDAuMDEzNjQ4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTMzOTMsIDAuMDEzNzI0LCAwLjAxMzc5NiwgMC4wMTM4MiwgMC4wMTM4NDEsIDAuMDEzODUyLCAwLjAxMzg2MiIsIFwKLSAgICAgICAgICAiMC4wMTM0MDQsIDAuMDEzNzM1LCAwLjAxMzgwNiwgMC4wMTM4MywgMC4wMTM4NTIsIDAuMDEzODY0LCAwLjAxMzg3MyIsIFwKLSAgICAgICAgICAiMC4wMTM0ODQsIDAuMDEzODE3LCAwLjAxMzg5OSwgMC4wMTM5MjMsIDAuMDEzOTQ0LCAwLjAxMzk1NiwgMC4wMTM5NjUiLCBcCi0gICAgICAgICAgIjAuMDEzNTgyLCAwLjAxMzkyNiwgMC4wMTM5OTksIDAuMDE0MDI0LCAwLjAxNDA0NiwgMC4wMTQwNTcsIDAuMDE0MDY3IiwgXAotICAgICAgICAgICIwLjAxMzczLCAwLjAxNDA2LCAwLjAxNDEyNiwgMC4wMTQxNTEsIDAuMDE0MTczLCAwLjAxNDE4NCwgMC4wMTQxOTUiLCBcCi0gICAgICAgICAgIjAuMDEzOTg3LCAwLjAxNDMyLCAwLjAxNDM5MywgMC4wMTQ0MTcsIDAuMDE0NDQxLCAwLjAxNDQ1MiwgMC4wMTQ0NiIsIFwKLSAgICAgICAgICAiMC4wMTQxNzYsIDAuMDE0NTA5LCAwLjAxNDU3OSwgMC4wMTQ2MDcsIDAuMDE0NjI4LCAwLjAxNDYzOSwgMC4wMTQ2NDUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IE1YSTJYTCAqCi0gKiAtLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKE1YSTJYTCkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjI2NjA5NjsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjQxODAxOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDY0MDY2ODsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2NDE4MDE7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjgxLCAwLjAwMDI4MywgMC4wMDAyODUsIDAuMDAwMjg2LCAwLjAwMDI4NiwgMC4wMDAyODcsIDAuMDAwMjg3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzE1LCAwLjAwMDMwNCwgMC4wMDAzMDIsIDAuMDAwMzAxLCAwLjAwMDMsIDAuMDAwMywgMC4wMDAzIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2NjcwMzE7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjY1ODc3OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDY2NzAzMTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyODgsIDAuMDAwMjg5LCAwLjAwMDI5LCAwLjAwMDI5LCAwLjAwMDI5MSwgMC4wMDAyOTEsIDAuMDAwMjkxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzE2LCAwLjAwMDMwNSwgMC4wMDAzMDMsIDAuMDAwMzAyLCAwLjAwMDMwMSwgMC4wMDAzLCAwLjAwMDMiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFMwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDEzMjM5MzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDEzMjM5MzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDEzMjM1OTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxNzMsIDAuMDAwMTg3LCAwLjAwMDI3OCwgMC4wMDA0MDcsIDAuMDAwNTA5LCAwLjAwMDcyNywgMC4wMDA5MTgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDI1ODksIDAuMDAyNjE2LCAwLjAwMjY4MSwgMC4wMDI3ODgsIDAuMDAyOTA5LCAwLjAwMzEyNywgMC4wMDMzMjIiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4xMTE1OTE7Ci0gICAgZnVuY3Rpb24gOiAiKCEoKFMwIEIpICsgKCFTMCBBKSkpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTA0NTgsIDAuMTI5MzgzLCAwLjI5OTk4LCAwLjU4Mzk5LCAwLjg2ODk2MiwgMS41MzIwNSwgMS45MTEwNSIsIFwKLSAgICAgICAgICAiMC4xMTYyOTMsIDAuMTM1MjEzLCAwLjMwNTYyOSwgMC41OTAwNSwgMC44NzQ0MzksIDEuNTM3NDMsIDEuOTE0MzEiLCBcCi0gICAgICAgICAgIjAuMTIzNCwgMC4xNDIyNTksIDAuMzEyOTIzLCAwLjU5Njc5MSwgMC44ODA3NzksIDEuNTQzOTIsIDEuOTIzNzIiLCBcCi0gICAgICAgICAgIjAuMTMwNTA0LCAwLjE0OTM4NCwgMC4zMjAxNDcsIDAuNjAzOTcyLCAwLjg4Nzc0MSwgMS41NTI2NSwgMS45Mjk2OSIsIFwKLSAgICAgICAgICAiMC4xMzc1MDUsIDAuMTU2NDA4LCAwLjMyNjkyNSwgMC42MTE1NTUsIDAuODk1MTEzLCAxLjU1ODMzLCAxLjkzNjU1IiwgXAotICAgICAgICAgICIwLjE0ODk0LCAwLjE2NzkwOCwgMC4zMzgzMTYsIDAuNjIyNzkzLCAwLjkwNjU2NCwgMS41Njg4OSwgMS45NDg4NCIsIFwKLSAgICAgICAgICAiMC4xNTgyOSwgMC4xNzc2ODMsIDAuMzQ4MTYyLCAwLjYzMjg3NSwgMC45MTY3MzQsIDEuNTgxODEsIDEuOTU3NzkiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjIyMDIyLCAwLjI2MjE5MSwgMC42MjM1NzUsIDEuMjI1MTYsIDEuODI4MywgMy4yMzMxMiwgNC4wMzY0OCIsIFwKLSAgICAgICAgICAiMC4yMjIwNjUsIDAuMjYyMTk0LCAwLjYyMzQ1NywgMS4yMjU0MSwgMS44MjczLCAzLjIzODQzLCA0LjAzODg4IiwgXAotICAgICAgICAgICIwLjIyMjcwMywgMC4yNjI1NjMsIDAuNjIzMzMxLCAxLjIyNTk4LCAxLjgyODkyLCAzLjIzMzMyLCA0LjAzNDMiLCBcCi0gICAgICAgICAgIjAuMjI1MzgyLCAwLjI2NDcxMSwgMC42MjM1OCwgMS4yMjUxNCwgMS44Mjg1NCwgMy4yMzIzNCwgNC4wMzI4NCIsIFwKLSAgICAgICAgICAiMC4yMjkwNTgsIDAuMjY3NzY2LCAwLjYyMzc5NCwgMS4yMjU1OCwgMS44Mjg0NSwgMy4yMzI2NiwgNC4wMzY0NyIsIFwKLSAgICAgICAgICAiMC4yMzY1ODUsIDAuMjc0NTM5LCAwLjYyNTg0OCwgMS4yMjU3NywgMS44MjY4MywgMy4yMzAzLCA0LjAzNDQ0IiwgXAotICAgICAgICAgICIwLjI0MzgxMSwgMC4yODEzODcsIDAuNjI5MTI5LCAxLjIyNTE3LCAxLjgyNjQxLCAzLjIzMjgsIDQuMDMyNTEiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTAwMDczLCAwLjExNzAyMywgMC4yNjk0MTksIDAuNTIzNjg2LCAwLjc3NzQxOCwgMS4zNjk5OSwgMS43MDk0NyIsIFwKLSAgICAgICAgICAiMC4xMDYzNDYsIDAuMTIzMzI2LCAwLjI3NTgxOCwgMC41Mjk2ODcsIDAuNzgzNTEzLCAxLjM3NjA1LCAxLjcxNTUxIiwgXAotICAgICAgICAgICIwLjExNDIzLCAwLjEzMTE3NywgMC4yODM3MTgsIDAuNTM3NjU0LCAwLjc5MTU4OSwgMS4zODQ2NiwgMS43MjMxNiIsIFwKLSAgICAgICAgICAiMC4xMjIwNTYsIDAuMTM5MDMsIDAuMjkxNzYyLCAwLjU0NTc4MiwgMC43OTk1MjUsIDEuMzkyOTQsIDEuNzMxMzUiLCBcCi0gICAgICAgICAgIjAuMTI5OTU4LCAwLjE0Njk1NSwgMC4yOTk3MSwgMC41NTM5NTEsIDAuODA4MDIxLCAxLjQwMDA1LCAxLjczOTA0IiwgXAotICAgICAgICAgICIwLjE0Mjc5LCAwLjE1OTgxMiwgMC4zMTIwMjYsIDAuNTY2NDY4LCAwLjgyMDMyOCwgMS40MTMwOCwgMS43NTEwNiIsIFwKLSAgICAgICAgICAiMC4xNTMxNjYsIDAuMTcwOTU0LCAwLjMyMzM5NywgMC41Nzc5MjYsIDAuODMyMTA4LCAxLjQyNDY2LCAxLjc2Mjc2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE5MzExNSwgMC4yMjc5NTQsIDAuNTQxNDY0LCAxLjA2Mzg1LCAxLjU4NjMzLCAyLjgwMzYzLCAzLjUwMDc3IiwgXAotICAgICAgICAgICIwLjE5MzIyNywgMC4yMjc5NTYsIDAuNTQxNDM4LCAxLjA2Mzc0LCAxLjU4NjgxLCAyLjgwNTQ0LCAzLjUwMDQ3IiwgXAotICAgICAgICAgICIwLjE5NDEyMywgMC4yMjg2NjUsIDAuNTQxNDA0LCAxLjA2MzM5LCAxLjU4NzAzLCAyLjgwNTE5LCAzLjQ5OTk1IiwgXAotICAgICAgICAgICIwLjE5NzA5OCwgMC4yMzA4NTQsIDAuNTQxMzA4LCAxLjA2MzU5LCAxLjU4NTU5LCAyLjgwNDQ0LCAzLjUwMDMiLCBcCi0gICAgICAgICAgIjAuMjAxMjEsIDAuMjM0NDkxLCAwLjU0MTg2LCAxLjA2MzI2LCAxLjU4NTUsIDIuODAzNTQsIDMuNTAxOTgiLCBcCi0gICAgICAgICAgIjAuMjA5Nzc4LCAwLjI0MjI4MiwgMC41NDQ1MjQsIDEuMDYzMzUsIDEuNTg1NTEsIDIuODAzNTQsIDMuNDk5NTMiLCBcCi0gICAgICAgICAgIjAuMjE3NzY3LCAwLjI0OTk1MSwgMC41NDg3MTIsIDEuMDYzOTUsIDEuNTg1NzEsIDIuODAzOTksIDMuNTAzMzgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTEwNDU0LCAwLjEyOTM1NiwgMC4zMDAwNzEsIDAuNTgzOTU0LCAwLjg2ODU4NywgMS41MzIyNCwgMS45MDk1NCIsIFwKLSAgICAgICAgICAiMC4xMTYyLCAwLjEzNTEzOCwgMC4zMDU5MTIsIDAuNTkwMDUzLCAwLjg3NDI4MywgMS41Mzg1MywgMS45MTU2OCIsIFwKLSAgICAgICAgICAiMC4xMjMyNDEsIDAuMTQyMTU2LCAwLjMxMjczOSwgMC41OTY2MTksIDAuODgwNjIzLCAxLjU0Mzg1LCAxLjkyMzQ5IiwgXAotICAgICAgICAgICIwLjEzMDM0MiwgMC4xNDkxMzcsIDAuMzIwMDI5LCAwLjYwMzgzNCwgMC44ODc2MzQsIDEuNTUyNDUsIDEuOTI5NjEiLCBcCi0gICAgICAgICAgIjAuMTM3MzI1LCAwLjE1NjMyOSwgMC4zMjY3NzgsIDAuNjExNjM3LCAwLjg5NTQyLCAxLjU1NzIsIDEuOTM3NDkiLCBcCi0gICAgICAgICAgIjAuMTQ4Njk3LCAwLjE2Nzc0NCwgMC4zMzgwNjUsIDAuNjIyMjIzLCAwLjkwNjQ1MywgMS41Njg3MiwgMS45NDY5OCIsIFwKLSAgICAgICAgICAiMC4xNTgxMDEsIDAuMTc3NDgzLCAwLjM0NzkzNywgMC42MzI3NTcsIDAuOTE2NjQ2LCAxLjU4MDgzLCAxLjk1NzY3Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIyMTk2LCAwLjI2MjAxMSwgMC42MjM1ODUsIDEuMjI1MDksIDEuODI3MjcsIDMuMjMzNjksIDQuMDM0NzgiLCBcCi0gICAgICAgICAgIjAuMjIxOTgsIDAuMjYyMTQ0LCAwLjYyMzU5MiwgMS4yMjUyOSwgMS44Mjc1MywgMy4yMzI0OSwgNC4wMzQxOSIsIFwKLSAgICAgICAgICAiMC4yMjI2ODksIDAuMjYyNTI5LCAwLjYyMzI1NCwgMS4yMjY1MywgMS44Mjg4OCwgMy4yMzM1NCwgNC4wMzQzNSIsIFwKLSAgICAgICAgICAiMC4yMjUzNDUsIDAuMjY0NTIyLCAwLjYyMzUwMSwgMS4yMjUwNiwgMS44MjkxMSwgMy4yMzM1NywgNC4wMzI3MyIsIFwKLSAgICAgICAgICAiMC4yMjg5OTEsIDAuMjY3NzQ0LCAwLjYyMzYyOCwgMS4yMjU3LCAxLjgyODIxLCAzLjIzNjYyLCA0LjAzNDY3IiwgXAotICAgICAgICAgICIwLjIzNjQ5NiwgMC4yNzQ0ODEsIDAuNjI1NzIsIDEuMjI2MTEsIDEuODI2NTksIDMuMjM0ODUsIDQuMDM4NTkiLCBcCi0gICAgICAgICAgIjAuMjQzNzk3LCAwLjI4MTMyNywgMC42MjkxLCAxLjIyNTA0LCAxLjgyNjQsIDMuMjM4MjMsIDQuMDMyODciKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk5NTM2LCAwLjExNjUwNSwgMC4yNjg5NzksIDAuNTIzMTYyLCAwLjc3Njg4NSwgMS4zNjk1NywgMS43MDc4NiIsIFwKLSAgICAgICAgICAiMC4xMDU4NDcsIDAuMTIyODUsIDAuMjc1Mjg5LCAwLjUyOTE1NCwgMC43ODMwMSwgMS4zNzU1MywgMS43MTUxOCIsIFwKLSAgICAgICAgICAiMC4xMTM3MDQsIDAuMTMwNzU1LCAwLjI4MzIwMiwgMC41MzcxNTgsIDAuNzkxMTA3LCAxLjM4NDIyLCAxLjcyMjc5IiwgXAotICAgICAgICAgICIwLjEyMTc1MywgMC4xMzg1NDcsIDAuMjkxMzA3LCAwLjU0NTI3NiwgMC43OTkxNTgsIDEuMzkyNzYsIDEuNzMiLCBcCi0gICAgICAgICAgIjAuMTI5NTUzLCAwLjE0NjUwMSwgMC4yOTkyMDIsIDAuNTUzNTAyLCAwLjgwNzY1OSwgMS4zOTk2OSwgMS43Mzg0NCIsIFwKLSAgICAgICAgICAiMC4xNDIzNCwgMC4xNTkzOCwgMC4zMTE1NjgsIDAuNTY2MDI0LCAwLjgxOTk4NSwgMS40MTIyLCAxLjc1MDcyIiwgXAotICAgICAgICAgICIwLjE1Mjc3NSwgMC4xNzA0NTMsIDAuMzIyOTYxLCAwLjU3NzI5OSwgMC44MzE3MTgsIDEuNDIzNiwgMS43NjI0OSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xOTI4MTgsIDAuMjI3Njk1LCAwLjU0MTA0NCwgMS4wNjM0OCwgMS41ODUxLCAyLjgwMzQzLCAzLjUwMTc0IiwgXAotICAgICAgICAgICIwLjE5MjgxNiwgMC4yMjc1OTIsIDAuNTQxMDU3LCAxLjA2MzU2LCAxLjU4NTg4LCAyLjgwNTMzLCAzLjUwMDQxIiwgXAotICAgICAgICAgICIwLjE5MzcyNSwgMC4yMjgyNTIsIDAuNTQxMDIzLCAxLjA2MzA1LCAxLjU4NTk2LCAyLjgwNDkxLCAzLjQ5OTk2IiwgXAotICAgICAgICAgICIwLjE5Njg3OCwgMC4yMzA0MjIsIDAuNTQwOTYyLCAxLjA2MzI5LCAxLjU4NTI5LCAyLjgwMzg5LCAzLjQ5OTMiLCBcCi0gICAgICAgICAgIjAuMjAwOTEzLCAwLjIzNDE0MywgMC41NDE0OTIsIDEuMDYzMTEsIDEuNTg1MjksIDIuODAzNDgsIDMuNTAxOTEiLCBcCi0gICAgICAgICAgIjAuMjA5MzQyLCAwLjI0MTk3MywgMC41NDQxMzQsIDEuMDYyOTMsIDEuNTg1MDcsIDIuODA0NzEsIDMuNDk5NDkiLCBcCi0gICAgICAgICAgIjAuMjE3NTUyLCAwLjI0OTU2OCwgMC41NDgyNTIsIDEuMDYzMzcsIDEuNTg1NDEsIDIuODAzNTEsIDMuNTAyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlMwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTcxMTMsIDAuMTM2MDc2LCAwLjMwNjE0MywgMC41OTAyMTEsIDAuODc0MTAzLCAxLjUzNjg0LCAxLjkxNzE2IiwgXAotICAgICAgICAgICIwLjEyNDc1NCwgMC4xNDM3MTEsIDAuMzEzODU5LCAwLjU5NzczNiwgMC44ODE4MDgsIDEuNTQ0LCAxLjkyMzU0IiwgXAotICAgICAgICAgICIwLjEzMTMzNywgMC4xNTAyOTksIDAuMzIwNDg2LCAwLjYwNDQ2MiwgMC44ODgzMTksIDEuNTUxNTUsIDEuOTMwOTciLCBcCi0gICAgICAgICAgIjAuMTM2MTcyLCAwLjE1NTA0NSwgMC4zMjU1NTEsIDAuNjA5NDcsIDAuODk0Mzc2LCAxLjU1NjQyLCAxLjkzNDgyIiwgXAotICAgICAgICAgICIwLjE0MDA2MywgMC4xNTg5NDEsIDAuMzI5MTA2LCAwLjYxMzMsIDAuODk3MzYxLCAxLjU1OTM1LCAxLjk0MDA5IiwgXAotICAgICAgICAgICIwLjE0NTMxMywgMC4xNjQxMzksIDAuMzM0MjEyLCAwLjYxODIxNCwgMC45MDIwMzgsIDEuNTY0NDYsIDEuOTQzMDUiLCBcCi0gICAgICAgICAgIjAuMTQ5NTg3LCAwLjE2ODE5NiwgMC4zMzgxOTgsIDAuNjIyMzk5LCAwLjkwNjIyOCwgMS41NjkxMywgMS45NDc1NyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMjE5NSwgMC4yNjIwODIsIDAuNjIzMTM5LCAxLjIyNjIyLCAxLjgyNzc5LCAzLjIzMzM3LCA0LjAzNDQ5IiwgXAotICAgICAgICAgICIwLjIyMTk2NCwgMC4yNjIwOTEsIDAuNjIzNTczLCAxLjIyNjA5LCAxLjgyNjY2LCAzLjIzNjU4LCA0LjAzNjk0IiwgXAotICAgICAgICAgICIwLjIyMTkyNCwgMC4yNjIwOTUsIDAuNjIzMjM3LCAxLjIyNjA2LCAxLjgyODcxLCAzLjIzMzY5LCA0LjAzNDQ5IiwgXAotICAgICAgICAgICIwLjIyMTU3NCwgMC4yNjE2NTYsIDAuNjIzNTE5LCAxLjIyNTY0LCAxLjgyODMyLCAzLjIzMzI5LCA0LjAzNjA5IiwgXAotICAgICAgICAgICIwLjIyMTM0NCwgMC4yNjE1MjEsIDAuNjIzMjg2LCAxLjIyNTA3LCAxLjgyNzEsIDMuMjM2NDksIDQuMDM0NiIsIFwKLSAgICAgICAgICAiMC4yMjExNzEsIDAuMjYxMjM2LCAwLjYyMjczNCwgMS4yMjU3NywgMS44MjgzNSwgMy4yMzAzMywgNC4wMzkxMSIsIFwKLSAgICAgICAgICAiMC4yMjEwOTMsIDAuMjYxMjE1LCAwLjYyMjUwNCwgMS4yMjUzNywgMS44MjgxOSwgMy4yMzEyNCwgNC4wMzQzNyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDgyMjIsIDAuMTI1MTM0LCAwLjI3NzQ1NywgMC41MzEyNDgsIDAuNzg1MDg4LCAxLjM3NzczLCAxLjcxNjg4IiwgXAotICAgICAgICAgICIwLjExNTcxMiwgMC4xMzI1OTUsIDAuMjg0OTgsIDAuNTM4MzE5LCAwLjc5MjQ2NywgMS4zODU1LCAxLjcyMzI4IiwgXAotICAgICAgICAgICIwLjEyMjI1OCwgMC4xMzkxNjIsIDAuMjkxNDIxLCAwLjU0NTE1MSwgMC43OTkzOTIsIDEuMzkxMzksIDEuNzMyMDIiLCBcCi0gICAgICAgICAgIjAuMTI2OTA3LCAwLjE0Mzc5MiwgMC4yOTYwMDUsIDAuNTUwMDg2LCAwLjgwMzYxNSwgMS4zOTcwMywgMS43MzQ1NyIsIFwKLSAgICAgICAgICAiMC4xMzA1OTEsIDAuMTQ3NDc2LCAwLjI5OTYzOSwgMC41NTM0NDYsIDAuODA3MjQ3LCAxLjM5OTcsIDEuNzM5MjIiLCBcCi0gICAgICAgICAgIjAuMTM1NDY5LCAwLjE1MjMxOSwgMC4zMDQzODQsIDAuNTU4NDA4LCAwLjgxMjA4NywgMS40MDQ2MSwgMS43NDQ1MiIsIFwKLSAgICAgICAgICAiMC4xMzkzNTgsIDAuMTU2MjI0LCAwLjMwODMxMiwgMC41NjIwNzIsIDAuODE2MjExLCAxLjQwODk1LCAxLjc0NzI5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE5MzIyLCAwLjIyODEwMywgMC41NDEzMjQsIDEuMDYzODEsIDEuNTg1ODQsIDIuODA1MjMsIDMuNTAwMSIsIFwKLSAgICAgICAgICAiMC4xOTMyMzQsIDAuMjI4MDI3LCAwLjU0MTQ0MiwgMS4wNjMxMywgMS41ODUzOSwgMi44MDQ3MywgMy40OTk5IiwgXAotICAgICAgICAgICIwLjE5MzAzOSwgMC4yMjgwMjgsIDAuNTQxMzQ4LCAxLjA2MzM2LCAxLjU4NTU0LCAyLjgwMzIzLCAzLjUwMTUxIiwgXAotICAgICAgICAgICIwLjE5MjcyMiwgMC4yMjc1NjIsIDAuNTQxMzgxLCAxLjA2MzY4LCAxLjU4NjAzLCAyLjgwNDQsIDMuNTAyMDgiLCBcCi0gICAgICAgICAgIjAuMTkyNTU2LCAwLjIyNzMzNywgMC41NDEwNSwgMS4wNjM1MSwgMS41ODY2OSwgMi44MDMyNCwgMy41MDA0MyIsIFwKLSAgICAgICAgICAiMC4xOTI0NDIsIDAuMjI3MTc2LCAwLjU0MDkxMiwgMS4wNjMzOSwgMS41ODU1MiwgMi44MDI5NSwgMy41MDAwOSIsIFwKLSAgICAgICAgICAiMC4xOTI1MjgsIDAuMjI3MDg0LCAwLjU0MDY4OSwgMS4wNjM1LCAxLjU4NTMzLCAyLjgwMzc2LCAzLjQ5OTQ4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlMwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDU3ODQsIDAuMTI0NzMyLCAwLjI5NTEzOSwgMC41NzkxMDYsIDAuODYzNDY2LCAxLjUyNjkzLCAxLjkwNTciLCBcCi0gICAgICAgICAgIjAuMTEzMjE4LCAwLjEzMjIwOCwgMC4zMDI1OTYsIDAuNTg2ODU0LCAwLjg3MDU3NSwgMS41MzMwMiwgMS45MTEzMSIsIFwKLSAgICAgICAgICAiMC4xMjI2MjUsIDAuMTQxNTQyLCAwLjMxMjI0NCwgMC41OTYwMiwgMC44ODAzLCAxLjU0MzE2LCAxLjkyMjE5IiwgXAotICAgICAgICAgICIwLjEzMjEyMywgMC4xNTEwOCwgMC4zMjE3MTIsIDAuNjA1NDI3LCAwLjg4OTIsIDEuNTUxOSwgMS45MzIzOCIsIFwKLSAgICAgICAgICAiMC4xNDE3NzEsIDAuMTYwNjE3LCAwLjMzMDgyMSwgMC42MTUzMjksIDAuODk4NTg1LCAxLjU2MjI5LCAxLjk0MDM5IiwgXAotICAgICAgICAgICIwLjE1NzM1NywgMC4xNzYxMTIsIDAuMzQ1OTkxLCAwLjYyOTg2NiwgMC45MTQ2MjUsIDEuNTc2NzIsIDEuOTU3NTQiLCBcCi0gICAgICAgICAgIjAuMTcwOTY2LCAwLjE4OTc4MywgMC4zNTkzNjMsIDAuNjQzNDEsIDAuOTI2OTc0LCAxLjU4OTg2LCAxLjk2Nzk3Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIyMTg0NCwgMC4yNjIxNDksIDAuNjIzMzkxLCAxLjIyNTk0LCAxLjgyODIzLCAzLjIzMTYyLCA0LjAzNDA5IiwgXAotICAgICAgICAgICIwLjIyMTgzNSwgMC4yNjIyMTIsIDAuNjIzMzY3LCAxLjIyNTE1LCAxLjgyNjQyLCAzLjIzMjMxLCA0LjA0MDgyIiwgXAotICAgICAgICAgICIwLjIyMzI4OCwgMC4yNjI4MjcsIDAuNjIzNTI5LCAxLjIyNTg1LCAxLjgyODE3LCAzLjIzMzMyLCA0LjAzNDgyIiwgXAotICAgICAgICAgICIwLjIyNzYxNSwgMC4yNjYxNzgsIDAuNjIzNTY1LCAxLjIyNTAzLCAxLjgyODM5LCAzLjIzNDk2LCA0LjAzNDMyIiwgXAotICAgICAgICAgICIwLjIzMzQ2NywgMC4yNzEzODgsIDAuNjIzNTkzLCAxLjIyNTQ3LCAxLjgyODYxLCAzLjIzMTUzLCA0LjAzMjYyIiwgXAotICAgICAgICAgICIwLjI0NDcxOCwgMC4yODE2OSwgMC42MjY4OTUsIDEuMjI1NDksIDEuODI3MjcsIDMuMjMzMTEsIDQuMDM2NjEiLCBcCi0gICAgICAgICAgIjAuMjU1NjY3LCAwLjI5MTk2NiwgMC42MzE3MDcsIDEuMjI1MTEsIDEuODI2NDEsIDMuMjMzMTIsIDQuMDMyNTIiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk1NzQyLCAwLjExMjY5LCAwLjI2NTI0LCAwLjUxOTE0MSwgMC43NzMwMDUsIDEuMzY1ODUsIDEuNzA1MjIiLCBcCi0gICAgICAgICAgIjAuMTAzMzA1LCAwLjEyMDI2LCAwLjI3MjczNywgMC41MjY3NjgsIDAuNzgwNjg3LCAxLjM3Mzk4LCAxLjcxMzEzIiwgXAotICAgICAgICAgICIwLjExMjg1MywgMC4xMjk4MDUsIDAuMjgyMjc5LCAwLjUzNjM2NywgMC43OTAxOSwgMS4zODI5OCwgMS43MjIyOCIsIFwKLSAgICAgICAgICAiMC4xMjI1MjUsIDAuMTM5NDQ2LCAwLjI5MTk5LCAwLjU0NjE5NCwgMC43OTk4MDEsIDEuMzkyOTYsIDEuNzMxMzQiLCBcCi0gICAgICAgICAgIjAuMTMyMzMyLCAwLjE0OTI0NywgMC4zMDE1MjgsIDAuNTU1MzM0LCAwLjgwOTMxMiwgMS40MDI2NiwgMS43NDAzNCIsIFwKLSAgICAgICAgICAiMC4xNDgyMjYsIDAuMTY1MDQsIDAuMzE3MDQ5LCAwLjU3MTE1NCwgMC44MjQ2OTMsIDEuNDE2OTksIDEuNzU1NTYiLCBcCi0gICAgICAgICAgIjAuMTYxODEyLCAwLjE3OTE3LCAwLjMzMDU0MiwgMC41ODQyNTMsIDAuODM4MTQzLCAxLjQzMTM3LCAxLjc3MDI0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE5MjQ4OCwgMC4yMjc0NjQsIDAuNTQxMDMyLCAxLjA2MzA5LCAxLjU4NTI0LCAyLjgwNTMxLCAzLjUwMDUiLCBcCi0gICAgICAgICAgIjAuMTkyNDE3LCAwLjIyNzQyMiwgMC41NDA5NjIsIDEuMDYzMDcsIDEuNTg1OTUsIDIuODA0MDgsIDMuNTAwNzciLCBcCi0gICAgICAgICAgIjAuMTk0MjksIDAuMjI4NDM1LCAwLjU0MDk5NCwgMS4wNjI5MywgMS41ODUyNiwgMi44MDUyOCwgMy41MDAzOSIsIFwKLSAgICAgICAgICAiMC4xOTg5NTksIDAuMjMyMzA5LCAwLjU0MTA1NywgMS4wNjMzNiwgMS41ODUzMSwgMi44MDUxNiwgMy40OTk2MiIsIFwKLSAgICAgICAgICAiMC4yMDUwNSwgMC4yMzc3NDMsIDAuNTQxNjY3LCAxLjA2MywgMS41ODUzMSwgMi44MDQxNiwgMy41MDIwNiIsIFwKLSAgICAgICAgICAiMC4yMTY1NzQsIDAuMjQ4NDY1LCAwLjU0NTcyMSwgMS4wNjM0NiwgMS41ODUxMywgMi44MDM0NCwgMy40OTk2MSIsIFwKLSAgICAgICAgICAiMC4yMjc3ODksIDAuMjU5MTgzLCAwLjU1MTQwNiwgMS4wNjM1MiwgMS41ODUxOSwgMi44MDQxNiwgMy41MDA1OSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTg2LCAwLjAwMTg2LCAwLjAwMTg2LCAwLjAwMTg2LCAwLjAwMTg2LCAwLjAwMTg2LCAwLjAwMTg2IiwgXAotICAgICAgICAgICIwLjAwMTg1MywgMC4wMDE4NTQsIDAuMDAxODU2LCAwLjAwMTg1NywgMC4wMDE4NTcsIDAuMDAxODU3LCAwLjAwMTg1MyIsIFwKLSAgICAgICAgICAiMC4wMDE4NTUsIDAuMDAxODU1LCAwLjAwMTg1NywgMC4wMDE4NTcsIDAuMDAxODU4LCAwLjAwMTg1NywgMC4wMDE4NTYiLCBcCi0gICAgICAgICAgIjAuMDAxODY2LCAwLjAwMTg2NSwgMC4wMDE4NjEsIDAuMDAxODU5LCAwLjAwMTg1OSwgMC4wMDE4NTgsIDAuMDAxODU3IiwgXAotICAgICAgICAgICIwLjAwMTg4NiwgMC4wMDE4ODMsIDAuMDAxODY5LCAwLjAwMTg2NCwgMC4wMDE4NjIsIDAuMDAxODYsIDAuMDAxODU5IiwgXAotICAgICAgICAgICIwLjAwMTkzMSwgMC4wMDE5MjIsIDAuMDAxODkzLCAwLjAwMTg3OCwgMC4wMDE4NzEsIDAuMDAxODY1LCAwLjAwMTg2MiIsIFwKLSAgICAgICAgICAiMC4wMDE5ODEsIDAuMDAxOTY4LCAwLjAwMTkxNywgMC4wMDE4OTUsIDAuMDAxODgzLCAwLjAwMTg3MiwgMC4wMDE4NjkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDA2MDIsIDAuMDAwNjAyLCAwLjAwMDYwMywgMC4wMDA2MDMsIDAuMDAwNjAyLCAwLjAwMDYwMiwgMC4wMDA2MDIiLCBcCi0gICAgICAgICAgIjAuMDAwNTksIDAuMDAwNTksIDAuMDAwNTk0LCAwLjAwMDU5NSwgMC4wMDA1OTUsIDAuMDAwNTk1LCAwLjAwMDU5NSIsIFwKLSAgICAgICAgICAiMC4wMDA1OSwgMC4wMDA1OTEsIDAuMDAwNTkzLCAwLjAwMDU5NCwgMC4wMDA1OTQsIDAuMDAwNTk0LCAwLjAwMDU5NCIsIFwKLSAgICAgICAgICAiMC4wMDA2MDIsIDAuMDAwNjAxLCAwLjAwMDU5OCwgMC4wMDA1OTYsIDAuMDAwNTk2LCAwLjAwMDU5NSwgMC4wMDA1OTQiLCBcCi0gICAgICAgICAgIjAuMDAwNjIyLCAwLjAwMDYxOSwgMC4wMDA2MDcsIDAuMDAwNjAxLCAwLjAwMDU5OSwgMC4wMDA1OTYsIDAuMDAwNTk2IiwgXAotICAgICAgICAgICIwLjAwMDY3LCAwLjAwMDY2MSwgMC4wMDA2MjksIDAuMDAwNjE0LCAwLjAwMDYwOCwgMC4wMDA2MDEsIDAuMDAwNiIsIFwKLSAgICAgICAgICAiMC4wMDA3MjUsIDAuMDAwNzEyLCAwLjAwMDY1NSwgMC4wMDA2MywgMC4wMDA2MTksIDAuMDAwNjA4LCAwLjAwMDYwNSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjA2MSwgMC4wMDIwNjEsIDAuMDAyMDYxLCAwLjAwMjA2MSwgMC4wMDIwNjEsIDAuMDAyMDYxLCAwLjAwMjA2MSIsIFwKLSAgICAgICAgICAiMC4wMDIwNTQsIDAuMDAyMDU1LCAwLjAwMjA1NywgMC4wMDIwNTgsIDAuMDAyMDU4LCAwLjAwMjA1OCwgMC4wMDIwNTgiLCBcCi0gICAgICAgICAgIjAuMDAyMDU2LCAwLjAwMjA1NiwgMC4wMDIwNTcsIDAuMDAyMDU4LCAwLjAwMjA1OCwgMC4wMDIwNTgsIDAuMDAyMDU3IiwgXAotICAgICAgICAgICIwLjAwMjA2OCwgMC4wMDIwNjYsIDAuMDAyMDYyLCAwLjAwMjA2LCAwLjAwMjA1OSwgMC4wMDIwNTgsIDAuMDAyMDU4IiwgXAotICAgICAgICAgICIwLjAwMjA4NywgMC4wMDIwODQsIDAuMDAyMDcyLCAwLjAwMjA2NiwgMC4wMDIwNjMsIDAuMDAyMDYxLCAwLjAwMjA2IiwgXAotICAgICAgICAgICIwLjAwMjEzMiwgMC4wMDIxMjQsIDAuMDAyMDk1LCAwLjAwMjA3OCwgMC4wMDIwNzIsIDAuMDAyMDY2LCAwLjAwMjA2NCIsIFwKLSAgICAgICAgICAiMC4wMDIxODQsIDAuMDAyMTcsIDAuMDAyMTE5LCAwLjAwMjA5NiwgMC4wMDIwODQsIDAuMDAyMDczLCAwLjAwMjA3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwMzUzLCAwLjAwMDM1MywgMC4wMDAzNTMsIDAuMDAwMzU0LCAwLjAwMDM1MywgMC4wMDAzNTMsIDAuMDAwMzUzIiwgXAotICAgICAgICAgICIwLjAwMDM0MSwgMC4wMDAzNDIsIDAuMDAwMzQ1LCAwLjAwMDM0NiwgMC4wMDAzNDYsIDAuMDAwMzQ2LCAwLjAwMDM0NiIsIFwKLSAgICAgICAgICAiMC4wMDAzNDIsIDAuMDAwMzQzLCAwLjAwMDM0NSwgMC4wMDAzNDUsIDAuMDAwMzQ1LCAwLjAwMDM0NSwgMC4wMDAzNDUiLCBcCi0gICAgICAgICAgIjAuMDAwMzU1LCAwLjAwMDM1NCwgMC4wMDAzNSwgMC4wMDAzNDgsIDAuMDAwMzQ3LCAwLjAwMDM0NiwgMC4wMDAzNDYiLCBcCi0gICAgICAgICAgIjAuMDAwMzc1LCAwLjAwMDM3MiwgMC4wMDAzNTksIDAuMDAwMzUzLCAwLjAwMDM1LCAwLjAwMDM0OCwgMC4wMDAzNDciLCBcCi0gICAgICAgICAgIjAuMDAwNDI0LCAwLjAwMDQxNSwgMC4wMDAzODIsIDAuMDAwMzY2LCAwLjAwMDM1OSwgMC4wMDAzNTMsIDAuMDAwMzUxIiwgXAotICAgICAgICAgICIwLjAwMDQ4LCAwLjAwMDQ2NywgMC4wMDA0MDksIDAuMDAwMzgzLCAwLjAwMDM3MSwgMC4wMDAzNiwgMC4wMDAzNTciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTMCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxNTI5LCAwLjAwMTUyNSwgMC4wMDE1MTQsIDAuMDAxNTEsIDAuMDAxNTA5LCAwLjAwMTUwNSwgMC4wMDE1MDQiLCBcCi0gICAgICAgICAgIjAuMDAxNTQsIDAuMDAxNTM2LCAwLjAwMTUyLCAwLjAwMTUxMywgMC4wMDE1MTEsIDAuMDAxNTA4LCAwLjAwMTUwNyIsIFwKLSAgICAgICAgICAiMC4wMDE2MzIsIDAuMDAxNjI2LCAwLjAwMTYwOCwgMC4wMDE1OTksIDAuMDAxNTk2LCAwLjAwMTU5MiwgMC4wMDE1OTEiLCBcCi0gICAgICAgICAgIjAuMDAxNzQ4LCAwLjAwMTc0NCwgMC4wMDE3MjksIDAuMDAxNzE2LCAwLjAwMTcxMywgMC4wMDE3MDgsIDAuMDAxNzA3IiwgXAotICAgICAgICAgICIwLjAwMTkwNSwgMC4wMDE5LCAwLjAwMTg3OCwgMC4wMDE4NSwgMC4wMDE4NDUsIDAuMDAxODQsIDAuMDAxODM4IiwgXAotICAgICAgICAgICIwLjAwMjEwNSwgMC4wMDIxMDEsIDAuMDAyMDc3LCAwLjAwMjA2NiwgMC4wMDIwNiwgMC4wMDIwNTQsIDAuMDAyMDUyIiwgXAotICAgICAgICAgICIwLjAwMjMwNywgMC4wMDIzMDMsIDAuMDAyMjgsIDAuMDAyMjY2LCAwLjAwMjI1OSwgMC4wMDIyNTEsIDAuMDAyMjQ5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzMDYyLCAwLjAwMzA1OSwgMC4wMDMwNDYsIDAuMDAzMDQsIDAuMDAzMDM5LCAwLjAwMzAzNywgMC4wMDMwMzUiLCBcCi0gICAgICAgICAgIjAuMDAzMDc5LCAwLjAwMzA3NSwgMC4wMDMwNTksIDAuMDAzMDUyLCAwLjAwMzA1LCAwLjAwMzA0NywgMC4wMDMwNDYiLCBcCi0gICAgICAgICAgIjAuMDAzMTY4LCAwLjAwMzE2MywgMC4wMDMxNDQsIDAuMDAzMTM1LCAwLjAwMzEzMiwgMC4wMDMxMjksIDAuMDAzMTI4IiwgXAotICAgICAgICAgICIwLjAwMzI4NCwgMC4wMDMyNzksIDAuMDAzMjU2LCAwLjAwMzI0NSwgMC4wMDMyNDEsIDAuMDAzMjM3LCAwLjAwMzIzNiIsIFwKLSAgICAgICAgICAiMC4wMDM0NDcsIDAuMDAzNDQyLCAwLjAwMzQxOCwgMC4wMDM0MDQsIDAuMDAzMzk5LCAwLjAwMzM5NCwgMC4wMDMzOTIiLCBcCi0gICAgICAgICAgIjAuMDAzNjY4LCAwLjAwMzY2MiwgMC4wMDM2MzQsIDAuMDAzNjE4LCAwLjAwMzYxMiwgMC4wMDM2MDYsIDAuMDAzNjA0IiwgXAotICAgICAgICAgICIwLjAwMzg0MywgMC4wMDM4MzgsIDAuMDAzODEyLCAwLjAwMzc5NiwgMC4wMDM3OSwgMC4wMDM3ODMsIDAuMDAzNzgxIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBNWEkzWDEgKgotICogLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChNWEkzWDEpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC42NzE2MTk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY0NzIxNzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2NDU5MjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2NDcyMTc7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxMDk5LCAwLjAwMTA3MSwgMC4wMDEwODYsIDAuMDAxMTI5LCAwLjAwMTE5MiwgMC4wMDEzMTgsIDAuMDAxNDQ4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyNjE3LCAwLjAwMjU5OSwgMC4wMDI2MDksIDAuMDAyNjQsIDAuMDAyNjk2LCAwLjAwMjgwNywgMC4wMDI5MjgiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY0NTQ3ODsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2NDQ0ODc7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjQ1NDc4OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDI4OCwgMC4wMDAyODksIDAuMDAwMjksIDAuMDAwMjksIDAuMDAwMjksIDAuMDAwMjkxLCAwLjAwMDI5MSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDMxMywgMC4wMDAzMDIsIDAuMDAwMywgMC4wMDAzLCAwLjAwMDI5OSwgMC4wMDAyOTksIDAuMDAwMjk4Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihDKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2Mjg5Nzg7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjI4OTc4OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDYyODkxODsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAzMzksIDAuMDAwMzQ5LCAwLjAwMDQzNCwgMC4wMDA1NDYsIDAuMDAwNjczLCAwLjAwMDkwMywgMC4wMDExIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxOTI0LCAwLjAwMTkzMywgMC4wMDIwMTQsIDAuMDAyMTIzLCAwLjAwMjI1NywgMC4wMDI0ODYsIDAuMDAyNjY3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxMjg0MzE7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxMjg0MzE7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxMjgzOTY7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjMxLCAwLjAwMDI0NCwgMC4wMDAzMzMsIDAuMDAwNDQ3LCAwLjAwMDU3NywgMC4wMDA4NDEsIDAuMDAxMDQ2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyNDQ0LCAwLjAwMjQ2MSwgMC4wMDI1MzksIDAuMDAyNjUxLCAwLjAwMjc3OSwgMC4wMDMsIDAuMDAzMTkyIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTMSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxMzAxNDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDEzMDE0OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTMwMTM0OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDMwOSwgMC4wMDAzMjUsIDAuMDAwMzkyLCAwLjAwMDQ5OCwgMC4wMDA2MTksIDAuMDAwODQxLCAwLjAwMTAzNSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjY5NSwgMC4wMDI3MTgsIDAuMDAyNzg5LCAwLjAwMjg5NCwgMC4wMDMwMTMsIDAuMDAzMjIsIDAuMDAzNDE3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMzM2NzY4OwotICAgIGZ1bmN0aW9uIDogIighKChTMSBDKSArICghUzEgKChTMCBCKSArICghUzAgQSkpKSkpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTcxMzIsIDAuMTE2MDA5LCAwLjIyMTcxMiwgMC4zMTQ4NTEsIDAuNDM5MDEsIDAuNjg3MzEyLCAwLjg0MjQ5MSIsIFwKLSAgICAgICAgICAiMC4xMDMxNTMsIDAuMTIyMDMsIDAuMjI3NzM0LCAwLjMyMDg3MywgMC40NDUwMzQsIDAuNjkzMzM0LCAwLjg0ODUxNSIsIFwKLSAgICAgICAgICAiMC4xMDkzMTcsIDAuMTI4MTc3LCAwLjIzMzg4MSwgMC4zMjcwNywgMC40NTExNzYsIDAuNjk5NDYxLCAwLjg1NDYzNSIsIFwKLSAgICAgICAgICAiMC4xMTQyNTgsIDAuMTMzMDk2LCAwLjIzODgwNCwgMC4zMzIsIDAuNDU2MDk4LCAwLjcwNDM4OSwgMC44NTk2MDkiLCBcCi0gICAgICAgICAgIjAuMTE4MzA4LCAwLjEzNzE4MiwgMC4yNDI4OTEsIDAuMzM2MDYxLCAwLjQ2MDIxOCwgMC43MDg0ODcsIDAuODYzNjciLCBcCi0gICAgICAgICAgIjAuMTIzNzAyLCAwLjE0MjU2MywgMC4yNDgyODUsIDAuMzQxNDU4LCAwLjQ2NTYsIDAuNzEzODQxLCAwLjg2OTAwNyIsIFwKLSAgICAgICAgICAiMC4xMjc3NiwgMC4xNDY2MzUsIDAuMjUyMzI3LCAwLjM0NTQ4MiwgMC40Njk2NDIsIDAuNzE3OTYsIDAuODczMDg5Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3Mzk5NywgMC4xMTIwNDQsIDAuMzMyMDk2LCAwLjUyNzk5MSwgMC43ODkzMDYsIDEuMzExNjYsIDEuNjM4MjEiLCBcCi0gICAgICAgICAgIjAuMDczOTkzLCAwLjExMjA0NCwgMC4zMzIxNjUsIDAuNTI3OTkyLCAwLjc4OTM1MSwgMS4zMTE2NiwgMS42MzczIiwgXAotICAgICAgICAgICIwLjA3NDA2MSwgMC4xMTIwNTgsIDAuMzMyNTg4LCAwLjUyODU0NiwgMC43ODkyMDksIDEuMzEyMDUsIDEuNjM4NzUiLCBcCi0gICAgICAgICAgIjAuMDc0MDk5LCAwLjExMjA5LCAwLjMzMjU5NiwgMC41Mjg1NTQsIDAuNzg5MjA1LCAxLjMxMTk2LCAxLjY0MDEiLCBcCi0gICAgICAgICAgIjAuMDc0MDg3LCAwLjExMjA3NywgMC4zMzI1ODgsIDAuNTI3ODc4LCAwLjc4OTkxNiwgMS4zMTE4LCAxLjYzODI1IiwgXAotICAgICAgICAgICIwLjA3NDE1MSwgMC4xMTE5ODIsIDAuMzMyNTY2LCAwLjUyODQzNSwgMC43ODk4OTIsIDEuMzExODQsIDEuNjM4NDEiLCBcCi0gICAgICAgICAgIjAuMDc0MTE5LCAwLjExMjEwMSwgMC4zMzIyMjcsIDAuNTI4MzUsIDAuNzg5Nzg0LCAxLjMxMjg2LCAxLjYzOTc1Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5NzkzMiwgMC4xMTY0NzcsIDAuMjE5MzM2LCAwLjMwOTkwOSwgMC40MzA2MzEsIDAuNjcyMDA4LCAwLjgyMjkxNiIsIFwKLSAgICAgICAgICAiMC4xMDQwMjIsIDAuMTIyNTc1LCAwLjIyNTQzNCwgMC4zMTYwMDMsIDAuNDM2NzI3LCAwLjY3ODEwMywgMC44Mjg5NiIsIFwKLSAgICAgICAgICAiMC4xMTA4MDcsIDAuMTI5MzM3LCAwLjIzMjE5OSwgMC4zMjI3NjksIDAuNDQzNDk0LCAwLjY4NDg3LCAwLjgzNTcyNyIsIFwKLSAgICAgICAgICAiMC4xMTYyNjMsIDAuMTM0NzkzLCAwLjIzNzY2MSwgMC4zMjgyNCwgMC40NDg5NjcsIDAuNjkwMzQxLCAwLjg0MTIwMyIsIFwKLSAgICAgICAgICAiMC4xMjA4OTksIDAuMTM5NDMxLCAwLjI0MjMwMSwgMC4zMzI4NzUsIDAuNDUzNTk0LCAwLjY5NDk3MiwgMC44NDU4MyIsIFwKLSAgICAgICAgICAiMC4xMjcxNzMsIDAuMTQ1NzQxLCAwLjI0ODYwMSwgMC4zMzkxOTQsIDAuNDU5ODg2LCAwLjcwMTI3MywgMC44NTIxMzgiLCBcCi0gICAgICAgICAgIjAuMTMxOTc1LCAwLjE1MDUwMywgMC4yNTMzNjEsIDAuMzQzOTkxLCAwLjQ2NDY2OCwgMC43MDYwNjMsIDAuODU2ODk3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3MTcyMiwgMC4xMDc2NzMsIDAuMzE2Njk1LCAwLjUwMjI1NiwgMC43NTE1ODIsIDEuMjQ3NCwgMS41NjAyMyIsIFwKLSAgICAgICAgICAiMC4wNzE3NCwgMC4xMDc2NTMsIDAuMzE2NjksIDAuNTAyMjYzLCAwLjc1MTU1LCAxLjI0NzQxLCAxLjU1OTYxIiwgXAotICAgICAgICAgICIwLjA3MTcyNywgMC4xMDc2NiwgMC4zMTY2OTMsIDAuNTAyMjUzLCAwLjc1MTU2LCAxLjI0NzQ0LCAxLjU1NzkxIiwgXAotICAgICAgICAgICIwLjA3MTc4MSwgMC4xMDc2NzgsIDAuMzE2MjYyLCAwLjUwMjI0MSwgMC43NTE1NzEsIDEuMjQ3NDIsIDEuNTU4MDIiLCBcCi0gICAgICAgICAgIjAuMDcxNzY4LCAwLjEwNzY2OSwgMC4zMTY2MzMsIDAuNTAyMjEzLCAwLjc1MTUyNSwgMS4yNDcyNSwgMS41NTk2OSIsIFwKLSAgICAgICAgICAiMC4wNzE3MjEsIDAuMTA3NjYyLCAwLjMxNjMzNiwgMC41MDI5MzksIDAuNzUxNDgyLCAxLjI0NzIyLCAxLjU1NzkyIiwgXAotICAgICAgICAgICIwLjA3MTc1OCwgMC4xMDc2MjYsIDAuMzE2Mjc4LCAwLjUwMjA1NSwgMC43NTE1NCwgMS4yNDkwNSwgMS41NTk2NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTY4MjQsIDAuMTE1Njk5LCAwLjIyMTQwNywgMC4zMTQ1NDMsIDAuNDM4Njk4LCAwLjY4NzAwMiwgMC44NDIxNzgiLCBcCi0gICAgICAgICAgIjAuMTAyNDg0LCAwLjEyMTM0MiwgMC4yMjcwOTIsIDAuMzIwMTU3LCAwLjQ0NDI2MiwgMC42OTI2NTksIDAuODQ3ODQyIiwgXAotICAgICAgICAgICIwLjEwODU0MSwgMC4xMjc0LCAwLjIzMzExLCAwLjMyNjI1OCwgMC40NTA0MDIsIDAuNjk4NzE1LCAwLjg1Mzg2OSIsIFwKLSAgICAgICAgICAiMC4xMTM0NTIsIDAuMTMyMzAzLCAwLjIzODAxNiwgMC4zMzExOTcsIDAuNDU1MzUyLCAwLjcwMzU5NCwgMC44NTg3ODciLCBcCi0gICAgICAgICAgIjAuMTE3NDksIDAuMTM2MzUxLCAwLjI0MjA1NSwgMC4zMzUyNiwgMC40NTkzNTIsIDAuNzA3NjQzLCAwLjg2Mjg2NCIsIFwKLSAgICAgICAgICAiMC4xMjI5NjUsIDAuMTQxODI5LCAwLjI0NzU1NSwgMC4zNDA3MDEsIDAuNDY0ODU4LCAwLjcxMzEwNCwgMC44NjgyNjgiLCBcCi0gICAgICAgICAgIjAuMTI3MDY2LCAwLjE0NTk0MSwgMC4yNTE2NDQsIDAuMzQ0ODQxLCAwLjQ2ODk0LCAwLjcxNzIwMSwgMC44NzI0MjciKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc0MDEzLCAwLjExMjA0NSwgMC4zMzIwMzIsIDAuNTI4MDAyLCAwLjc4OTE5OSwgMS4zMTE2NiwgMS42MzgyNCIsIFwKLSAgICAgICAgICAiMC4wNzQwMjcsIDAuMTEyMDM1LCAwLjMzMjA3OCwgMC41MjgyOTksIDAuNzg4NTg1LCAxLjMxMTY4LCAxLjYzNzMiLCBcCi0gICAgICAgICAgIjAuMDc0MDYsIDAuMTEyMDUxLCAwLjMzMjU4NSwgMC41Mjg0ODcsIDAuNzg5MTY2LCAxLjMxMDksIDEuNjM4NDkiLCBcCi0gICAgICAgICAgIjAuMDc0MTAzLCAwLjExMjA4LCAwLjMzMjU4OCwgMC41Mjg1MjksIDAuNzg5MDcxLCAxLjMxMTc5LCAxLjYzODM3IiwgXAotICAgICAgICAgICIwLjA3NDEyMSwgMC4xMTIwODgsIDAuMzMyNTU5LCAwLjUyNzc0OSwgMC43ODkxNzcsIDEuMzExOTksIDEuNjM5ODkiLCBcCi0gICAgICAgICAgIjAuMDc0MTI4LCAwLjExMjA0MiwgMC4zMzIyNDYsIDAuNTI4NDI4LCAwLjc4OTg5OCwgMS4zMTE5NCwgMS42Mzg1IiwgXAotICAgICAgICAgICIwLjA3NDExMywgMC4xMTIxMDksIDAuMzMyNTI4LCAwLjUyODQ2MSwgMC43ODk3ODgsIDEuMzEyODIsIDEuNjM4MDMiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk2ODg2LCAwLjExNTQzOSwgMC4yMTgyOTksIDAuMzA4ODcyLCAwLjQyOTU5MywgMC42NzA5NzIsIDAuODIxNzE3IiwgXAotICAgICAgICAgICIwLjEwMzEzMywgMC4xMjE2NjcsIDAuMjI0NTI4LCAwLjMxNTA5NywgMC40MzU4MjMsIDAuNjc3MTk4LCAwLjgyODA1NSIsIFwKLSAgICAgICAgICAiMC4xMDk5MzEsIDAuMTI4NDYyLCAwLjIzMTMyNiwgMC4zMjE5MDMsIDAuNDQyNjEsIDAuNjg0MDQ3LCAwLjgzNDk4MyIsIFwKLSAgICAgICAgICAiMC4xMTUzNTEsIDAuMTMzODc4LCAwLjIzNjczNywgMC4zMjczMTcsIDAuNDQ4MDIzLCAwLjY4OTQ2OSwgMC44NDA0MDUiLCBcCi0gICAgICAgICAgIjAuMTE5ODY1LCAwLjEzODQxNywgMC4yNDEyODMsIDAuMzMxODU3LCAwLjQ1MjU3NywgMC42OTM5NTUsIDAuODQ0ODEzIiwgXAotICAgICAgICAgICIwLjEyNjA2LCAwLjE0NDU5OCwgMC4yNDc0NjUsIDAuMzM4MDQ2LCAwLjQ1ODc1NSwgMC43MDAxNCwgMC44NTEiLCBcCi0gICAgICAgICAgIjAuMTMwNzIxLCAwLjE0OTI1NSwgMC4yNTIxMTYsIDAuMzQyNjg3LCAwLjQ2MzQwOCwgMC43MDQ4ODMsIDAuODU1NjYzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3MTcyMiwgMC4xMDc0NzksIDAuMzE2Njk3LCAwLjUwMTUzMSwgMC43NTE1ODMsIDEuMjQ3NCwgMS41NTk5OSIsIFwKLSAgICAgICAgICAiMC4wNzE3MjQsIDAuMTA3NjU1LCAwLjMxNjY5NSwgMC41MDIyNTMsIDAuNzUxNTY2LCAxLjI0NzQyLCAxLjU1OTUyIiwgXAotICAgICAgICAgICIwLjA3MTczNywgMC4xMDc2NTksIDAuMzE2NjgxLCAwLjUwMjIyMiwgMC43NTE0MDQsIDEuMjQ5MTksIDEuNTYwNDUiLCBcCi0gICAgICAgICAgIjAuMDcxNzc0LCAwLjEwNzY2OSwgMC4zMTY2ODEsIDAuNTAyMjQsIDAuNzUxNDExLCAxLjI0OTI0LCAxLjU2MDQ1IiwgXAotICAgICAgICAgICIwLjA3MTc2NiwgMC4xMDc2NjMsIDAuMzE2NjMxLCAwLjUwMjE5OSwgMC43NTE1MjUsIDEuMjQ3MjYsIDEuNTU5NjIiLCBcCi0gICAgICAgICAgIjAuMDcxNzMzLCAwLjEwNzY4NCwgMC4zMTY2MjQsIDAuNTAyMzQ2LCAwLjc1MTUwNCwgMS4yNDczMiwgMS41NTc4NCIsIFwKLSAgICAgICAgICAiMC4wNzE3NiwgMC4xMDc2NDgsIDAuMzE2NjA5LCAwLjUwMjIsIDAuNzUxNCwgMS4yNDYyNiwgMS41NiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzk5NDgsIDAuMDk4ODE3LCAwLjIwNDUzMiwgMC4yOTc2OTgsIDAuNDIxODQzLCAwLjY3MDE5NSwgMC44MjUzMzkiLCBcCi0gICAgICAgICAgIjAuMDg3MTk0LCAwLjEwNjA2MSwgMC4yMTE4MDUsIDAuMzA0OTY4LCAwLjQyOTE0NSwgMC42Nzc0MjgsIDAuODMyNjEzIiwgXAotICAgICAgICAgICIwLjA5MjkwNiwgMC4xMTE3NTksIDAuMjE3NDkxLCAwLjMxMDY0OCwgMC40MzQ3NzksIDAuNjgzMTIzLCAwLjgzODI2NyIsIFwKLSAgICAgICAgICAiMC4wOTcwNzQsIDAuMTE1OTQ1LCAwLjIyMTY1NywgMC4zMTQ4MjEsIDAuNDM5MDE4LCAwLjY4NzI4NywgMC44NDI0MzYiLCBcCi0gICAgICAgICAgIjAuMTAwNTgzLCAwLjExOTMwNywgMC4yMjUwMjEsIDAuMzE4MjE5LCAwLjQ0MjMwNiwgMC42OTA2MzEsIDAuODQ1NzgyIiwgXAotICAgICAgICAgICIwLjEwNDgzNSwgMC4xMjM2ODEsIDAuMjI5MzY4LCAwLjMyMjUzMiwgMC40NDY3MDcsIDAuNjk1MDY0LCAwLjg1MDE2OSIsIFwKLSAgICAgICAgICAiMC4xMDgxNDQsIDAuMTI2OTk2LCAwLjIzMjY0OCwgMC4zMjU3OTcsIDAuNDUwMDI5LCAwLjY5ODI2OCwgMC44NTMzOTQiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDczOTYxLCAwLjExMjAwMSwgMC4zMzI1ODMsIDAuNTI4NTYsIDAuNzg5MjI4LCAxLjMxMTQ5LCAxLjYzNzMyIiwgXAotICAgICAgICAgICIwLjA3Mzk1MSwgMC4xMTE5NTYsIDAuMzMyNjM4LCAwLjUyNzg3MSwgMC43OTAwNjIsIDEuMzExMjEsIDEuNjM3ODQiLCBcCi0gICAgICAgICAgIjAuMDczOTk0LCAwLjExMjAxMiwgMC4zMzI2MjYsIDAuNTI4NTUsIDAuNzg5MjI0LCAxLjMxMTUyLCAxLjYzODI2IiwgXAotICAgICAgICAgICIwLjA3Mzk5MywgMC4xMTIwMDksIDAuMzMyNjM1LCAwLjUyODU2OCwgMC43OTAwNzcsIDEuMzExNzIsIDEuNjM4MzEiLCBcCi0gICAgICAgICAgIjAuMDc0MTE0LCAwLjExMjAxLCAwLjMzMjE2NywgMC41Mjc2MzYsIDAuNzg5MTU2LCAxLjMxMTE0LCAxLjYzODMiLCBcCi0gICAgICAgICAgIjAuMDc0MTU5LCAwLjExMTk0NywgMC4zMzI1OTksIDAuNTI4NTU0LCAwLjc4ODgyLCAxLjMxMzA2LCAxLjYzOTk1IiwgXAotICAgICAgICAgICIwLjA3NDA1NiwgMC4xMTIxOTcsIDAuMzMxOTg1LCAwLjUyODU4NywgMC43ODkzNTEsIDEuMzEzMDIsIDEuNjM4NDMiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDgyNzg2LCAwLjEwMTM0NiwgMC4yMDQyMTksIDAuMjk0NzkxLCAwLjQxNTUxOSwgMC42NTY4OTUsIDAuODA3NzUzIiwgXAotICAgICAgICAgICIwLjA5MDA4OCwgMC4xMDg2MjQsIDAuMjExNTAxLCAwLjMwMjA3MiwgMC40MjI3OTEsIDAuNjY0MTgxLCAwLjgxNTA0OCIsIFwKLSAgICAgICAgICAiMC4wOTU5ODYsIDAuMTE0NTE5LCAwLjIxNzM4OSwgMC4zMDc5NjQsIDAuNDI4Njg3LCAwLjY3MDA2MywgMC44MjA5OTYiLCBcCi0gICAgICAgICAgIjAuMTAwMzIxLCAwLjExODg2MiwgMC4yMjE3MzMsIDAuMzEyMjk4LCAwLjQzMzAzMSwgMC42NzQ0NTQsIDAuODI1Mjc0IiwgXAotICAgICAgICAgICIwLjEwMzkxNiwgMC4xMjI0NzIsIDAuMjI1MzQ4LCAwLjMxNTkwNywgMC40MzY2NTEsIDAuNjc4MDEyLCAwLjgyODg4NiIsIFwKLSAgICAgICAgICAiMC4xMDg1MDksIDAuMTI3MDcsIDAuMjI5OTM0LCAwLjMyMDUyLCAwLjQ0MTE5OSwgMC42ODI1NzQsIDAuODMzNDc2IiwgXAotICAgICAgICAgICIwLjExMjE0NCwgMC4xMzA2ODgsIDAuMjMzNTE5LCAwLjMyNDA4NSwgMC40NDQ4MzksIDAuNjg2MTk4LCAwLjgzNzA2NSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzE3NDEsIDAuMTA3NjkxLCAwLjMxNjcyLCAwLjUwMjI3NSwgMC43NTE1ODgsIDEuMjQ3NDIsIDEuNTU5NTQiLCBcCi0gICAgICAgICAgIjAuMDcxNzU5LCAwLjEwNzY3MSwgMC4zMTY3MDIsIDAuNTAyODU1LCAwLjc1MTM4MSwgMS4yNDg5LCAxLjU1ODExIiwgXAotICAgICAgICAgICIwLjA3MTc1MiwgMC4xMDc3MDMsIDAuMzE2Njk3LCAwLjUwMjIzOCwgMC43NTE1NTEsIDEuMjQ4ODYsIDEuNTYwMzEiLCBcCi0gICAgICAgICAgIjAuMDcxNzYyLCAwLjEwNzY4MSwgMC4zMTY2NDgsIDAuNTAyNzQ0LCAwLjc1MTUzNywgMS4yNDY5NiwgMS41NTc4NSIsIFwKLSAgICAgICAgICAiMC4wNzE3NTIsIDAuMTA3NjgxLCAwLjMxNjQxMSwgMC41MDIyMTIsIDAuNzUxNjA4LCAxLjI0ODc2LCAxLjU1ODA4IiwgXAotICAgICAgICAgICIwLjA3MTg2OCwgMC4xMDc1ODQsIDAuMzE2NjM4LCAwLjUwMjg2OSwgMC43NTEzNTQsIDEuMjQ4NzMsIDEuNTYwMDUiLCBcCi0gICAgICAgICAgIjAuMDcxNzc3LCAwLjEwNzgyNywgMC4zMTY2MjcsIDAuNTAyOTg2LCAwLjc1MTU3NCwgMS4yNDg3NywgMS41NjAwNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTAzMzIxLCAwLjEyMjE3OCwgMC4yMjc4NzUsIDAuMzIxMDIsIDAuNDQ1MTcxLCAwLjY5MzQ5NSwgMC44NDg2NiIsIFwKLSAgICAgICAgICAiMC4xMTA1OSwgMC4xMjk0NTcsIDAuMjM1MTU1LCAwLjMyODI5OCwgMC40NTI0NTUsIDAuNzAwNzYzLCAwLjg1NTkzNCIsIFwKLSAgICAgICAgICAiMC4xMTY2NSwgMC4xMzU1MDgsIDAuMjQxMjEyLCAwLjMzNDQwNCwgMC40NTg1MDgsIDAuNzA2Nzk2LCAwLjg2MjAyIiwgXAotICAgICAgICAgICIwLjEyMTAwNCwgMC4xMzk4NTUsIDAuMjQ1NTU4LCAwLjMzODY5NiwgMC40NjI4NDcsIDAuNzExMTYyLCAwLjg2NjMyNiIsIFwKLSAgICAgICAgICAiMC4xMjQ1MSwgMC4xNDMzNjYsIDAuMjQ5MDY1LCAwLjM0MjI2LCAwLjQ2NjM1MiwgMC43MTQ2MjIsIDAuODY5Nzg2IiwgXAotICAgICAgICAgICIwLjEyOTM1MiwgMC4xNDgyMTQsIDAuMjUzOTAyLCAwLjM0NzA1NywgMC40NzEyMDEsIDAuNzE5NDc3LCAwLjg3NDc4NCIsIFwKLSAgICAgICAgICAiMC4xMzMxMTYsIDAuMTUxOTczLCAwLjI1NzY1OCwgMC4zNTA4LCAwLjQ3NDk0MSwgMC43MjMyMjcsIDAuODc4MzUxIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3NDAzNywgMC4xMTIwNDYsIDAuMzMyMjQ2LCAwLjUyODUxNCwgMC43OTAwMjIsIDEuMzEwOSwgMS42MzgyNSIsIFwKLSAgICAgICAgICAiMC4wNzQwMzUsIDAuMTEyMDQ3LCAwLjMzMjI0OCwgMC41Mjg0OTgsIDAuNzkwMDEsIDEuMzExNjEsIDEuNjM4MjYiLCBcCi0gICAgICAgICAgIjAuMDc0MDYxLCAwLjExMjA1MiwgMC4zMzI1ODksIDAuNTI4NTQ4LCAwLjc4OTI0LCAxLjMxMTk2LCAxLjYzNzk1IiwgXAotICAgICAgICAgICIwLjA3NDA2NywgMC4xMTIwNTUsIDAuMzMyMjg5LCAwLjUyNzk3NiwgMC43ODk5OTksIDEuMzEwOSwgMS42MzgyOSIsIFwKLSAgICAgICAgICAiMC4wNzQwMzcsIDAuMTEyMDE0LCAwLjMzMjU0NCwgMC41Mjg0NzQsIDAuNzg5ODcxLCAxLjMxMTY5LCAxLjYzODI1IiwgXAotICAgICAgICAgICIwLjA3NDAyOSwgMC4xMTE5NzUsIDAuMzMxOTgsIDAuNTI3NTgzLCAwLjc4OTczNCwgMS4zMTE2MSwgMS42Mzc2IiwgXAotICAgICAgICAgICIwLjA3NDA2MiwgMC4xMTE5ODksIDAuMzMyMTY1LCAwLjUyNzk0NywgMC43ODk1NjUsIDEuMzExMzksIDEuNjM5NTIiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTA1OTA0LCAwLjEyNDQ0NSwgMC4yMjczMDYsIDAuMzE3ODc1LCAwLjQzODYwMSwgMC42Nzk5NzUsIDAuODMwODMyIiwgXAotICAgICAgICAgICIwLjExMzEwMSwgMC4xMzE2NDIsIDAuMjM0NTAyLCAwLjMyNTA3MSwgMC40NDU3OTcsIDAuNjg3MTcxLCAwLjgzODAyOCIsIFwKLSAgICAgICAgICAiMC4xMTkxMTgsIDAuMTM3NjQsIDAuMjQwNTI0LCAwLjMzMTA5OSwgMC40NTE4MTQsIDAuNjkzMTksIDAuODQ0MDU2IiwgXAotICAgICAgICAgICIwLjEyMzAzNCwgMC4xNDE1NTgsIDAuMjQ0NDE5LCAwLjMzNDk5NiwgMC40NTU3MDgsIDAuNjk3MTMxLCAwLjg0Nzk4NSIsIFwKLSAgICAgICAgICAiMC4xMjYyODQsIDAuMTQ0ODEzLCAwLjI0NzY2NSwgMC4zMzgyNDEsIDAuNDU4OTk4LCAwLjcwMDMzMiwgMC44NTEyMjQiLCBcCi0gICAgICAgICAgIjAuMTMwNzM4LCAwLjE0OTI5NywgMC4yNTIxNjUsIDAuMzQyNzIsIDAuNDYzNDM1LCAwLjcwNDgxNywgMC44NTU2OTkiLCBcCi0gICAgICAgICAgIjAuMTMzOTM1LCAwLjE1MjQ2NywgMC4yNTUzMTcsIDAuMzQ1ODcxLCAwLjQ2NjU5NSwgMC43MDgwMDEsIDAuODU4OTI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3MTcyOCwgMC4xMDc2NjEsIDAuMzE2NjkyLCAwLjUwMjI0NiwgMC43NTE1NjMsIDEuMjQ3NCwgMS41NTk2MyIsIFwKLSAgICAgICAgICAiMC4wNzE3MjYsIDAuMTA3NjYsIDAuMzE2NjksIDAuNTAyMjUxLCAwLjc1MTU2NywgMS4yNDczOSwgMS41NTk3IiwgXAotICAgICAgICAgICIwLjA3MTc0NSwgMC4xMDc2NTcsIDAuMzE2NzQzLCAwLjUwMjk0MSwgMC43NTE1OTUsIDEuMjQ3NDgsIDEuNTU4MTQiLCBcCi0gICAgICAgICAgIjAuMDcxNzQsIDAuMTA3NjY4LCAwLjMxNjY3OCwgMC41MDIyMzIsIDAuNzUwNjE3LCAxLjI0OTE2LCAxLjU2MDEiLCBcCi0gICAgICAgICAgIjAuMDcxNzI2LCAwLjEwNzY1MywgMC4zMTY2MzIsIDAuNTAyMjI1LCAwLjc1MTYyMSwgMS4yNDg4NywgMS41NTgxNyIsIFwKLSAgICAgICAgICAiMC4wNzE2NjYsIDAuMTA3NjE1LCAwLjMxNjE0MywgMC41MDI1ODUsIDAuNzUxMzQxLCAxLjI0ODcyLCAxLjU1OTczIiwgXAotICAgICAgICAgICIwLjA3MTY1MywgMC4xMDc1NTQsIDAuMzE2Mjc5LCAwLjUwMTk0NiwgMC43NTA5NDIsIDEuMjQ2OSwgMS41NTk2OSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDkxNTY2LCAwLjExMDQyNSwgMC4yMTYxMzEsIDAuMzA5MTgzLCAwLjQzMzQyMiwgMC42ODE3MywgMC44MzY4ODUiLCBcCi0gICAgICAgICAgIjAuMDk4ODM3LCAwLjExNzcxNCwgMC4yMjM0MTgsIDAuMzE2NTU2LCAwLjQ0MDcxMywgMC42ODkwMTgsIDAuODQ0MTk0IiwgXAotICAgICAgICAgICIwLjEwNjk3NywgMC4xMjU4MzcsIDAuMjMxNTQ0LCAwLjMyNDczOCwgMC40NDg4NDEsIDAuNjk3MTMsIDAuODUyNDY0IiwgXAotICAgICAgICAgICIwLjExMzA3MSwgMC4xMzE5MjEsIDAuMjM3NjM1LCAwLjMzMDgxNSwgMC40NTQ5NjIsIDAuNzAzMjEsIDAuODU4NDA1IiwgXAotICAgICAgICAgICIwLjExODA3NywgMC4xMzY5MzQsIDAuMjQyNzQ1LCAwLjMzNTk0NCwgMC40NjAwNDIsIDAuNzA4MzM3LCAwLjg2MzUyNiIsIFwKLSAgICAgICAgICAiMC4xMjQ5NTIsIDAuMTQzNzU0LCAwLjI0OTUzOSwgMC4zNDI2MTUsIDAuNDY2ODQ4LCAwLjcxNTExNSwgMC44NzAzMDEiLCBcCi0gICAgICAgICAgIjAuMTMwMDY0LCAwLjE0ODkwNywgMC4yNTQ2MTEsIDAuMzQ3ODI2LCAwLjQ3MTk0LCAwLjcyMDIyOSwgMC44NzUzNjMiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc0MDU5LCAwLjExMjA1MSwgMC4zMzI1ODQsIDAuNTI3MjM5LCAwLjc4OTE3MywgMS4zMTE2LCAxLjYzODUxIiwgXAotICAgICAgICAgICIwLjA3NDAwOSwgMC4xMTIwNDYsIDAuMzMyMDgxLCAwLjUyNzk4OSwgMC43ODkyMzYsIDEuMzExNjUsIDEuNjM4MjIiLCBcCi0gICAgICAgICAgIjAuMDc0MDY1LCAwLjExMjA1NSwgMC4zMzI1ODgsIDAuNTI4NTUsIDAuNzg5MjM3LCAxLjMxMTk2LCAxLjYzNzY3IiwgXAotICAgICAgICAgICIwLjA3NDExNiwgMC4xMTIwODYsIDAuMzMyNTYzLCAwLjUyODQ4NiwgMC43ODg3ODUsIDEuMzExNjUsIDEuNjM4MzkiLCBcCi0gICAgICAgICAgIjAuMDc0MTI1LCAwLjExMjA1OSwgMC4zMzI1NDksIDAuNTI4NDksIDAuNzg5MTY0LCAxLjMxMzAzLCAxLjYzOTk2IiwgXAotICAgICAgICAgICIwLjA3NDEzNywgMC4xMTIwMjYsIDAuMzMyNTc5LCAwLjUyODQ1NiwgMC43ODk5MTksIDEuMzExOTYsIDEuNjM4MzkiLCBcCi0gICAgICAgICAgIjAuMDc0MTQ3LCAwLjExMjE1MSwgMC4zMzIyNzcsIDAuNTI4NTE4LCAwLjc4OTMxOCwgMS4zMTMsIDEuNjM4NDMiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDkyMSwgMC4xMTA2NDUsIDAuMjEzNTA0LCAwLjMwNDA3OCwgMC40MjQ3OTYsIDAuNjY2MTc5LCAwLjgxNzAzNiIsIFwKLSAgICAgICAgICAiMC4wOTk0NywgMC4xMTgwMTMsIDAuMjIwODc0LCAwLjMxMTQ0NSwgMC40MzIxNjksIDAuNjczNTQzLCAwLjgyNDQ0OSIsIFwKLSAgICAgICAgICAiMC4xMDc0ODMsIDAuMTI2MDE2LCAwLjIyODg4LCAwLjMxOTQ1LCAwLjQ0MDE3NywgMC42ODE1NTIsIDAuODMyNDA5IiwgXAotICAgICAgICAgICIwLjExMzQ0LCAwLjEzMTk3MywgMC4yMzQ4NDMsIDAuMzI1NDIxLCAwLjQ0NjE0NiwgMC42ODc1MjEsIDAuODM4MzgxIiwgXAotICAgICAgICAgICIwLjExODQzMSwgMC4xMzY5MywgMC4yMzk4MTcsIDAuMzMwNDE4LCAwLjQ1MTEzNiwgMC42OTI1MTQsIDAuODQzNDEzIiwgXAotICAgICAgICAgICIwLjEyNTA0NSwgMC4xNDM2MDQsIDAuMjQ2NDcxLCAwLjMzNzA0MywgMC40NTc3NTcsIDAuNjk5MTQsIDAuODUwMDA5IiwgXAotICAgICAgICAgICIwLjEzMDAwNCwgMC4xNDg1NSwgMC4yNTE0MTksIDAuMzQyMDU1LCAwLjQ2MjcxOCwgMC43MDQwOTMsIDAuODU0OTM2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3MTczOSwgMC4xMDc2NTksIDAuMzE2NjkzLCAwLjUwMjIzNCwgMC43NTE1NzUsIDEuMjQ3NTEsIDEuNTU3OTciLCBcCi0gICAgICAgICAgIjAuMDcxNjk1LCAwLjEwNzY2OSwgMC4zMTY2OTIsIDAuNTAyMjYsIDAuNzUxNTYsIDEuMjQ3MzMsIDEuNTYwMTciLCBcCi0gICAgICAgICAgIjAuMDcxNjk3LCAwLjEwNzY1OSwgMC4zMTY2OTMsIDAuNTAyMjQsIDAuNzUxNTY0LCAxLjI0NzQzLCAxLjU1NzkiLCBcCi0gICAgICAgICAgIjAuMDcxNzkzLCAwLjEwNzYyLCAwLjMxNjI3NSwgMC41MDIyMTUsIDAuNzUxNTYsIDEuMjQ3MzIsIDEuNTU4IiwgXAotICAgICAgICAgICIwLjA3MTc5NCwgMC4xMDc2ODQsIDAuMzE2MDI4LCAwLjUwMjE5MywgMC43NTE1MjEsIDEuMjQ4NjIsIDEuNTYwMTEiLCBcCi0gICAgICAgICAgIjAuMDcxNzYzLCAwLjEwNzY2NiwgMC4zMTY2ODUsIDAuNTAyMTUzLCAwLjc1MTQ5NywgMS4yNDg0OCwgMS41NTc5NiIsIFwKLSAgICAgICAgICAiMC4wNzE4NjEsIDAuMTA3Njc2LCAwLjMxNjY4NiwgMC41MDE5MjcsIDAuNzUxNTU3LCAxLjI0OTA2LCAxLjU1OTY1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlMxIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjQ5NzQsIDAuMDgzODI3LCAwLjE4OTUzNSwgMC4yODI3MTksIDAuNDA2ODQzLCAwLjY1NTEzNiwgMC44MTAzMTgiLCBcCi0gICAgICAgICAgIjAuMDcyMzI3LCAwLjA5MTE4NSwgMC4xOTY5MjgsIDAuMjkwMTM0LCAwLjQxNDI4NCwgMC42NjI1NDMsIDAuODE3NzE0IiwgXAotICAgICAgICAgICIwLjA4MTQyNywgMC4xMDAyOTcsIDAuMjA2MDIyLCAwLjI5OTE3LCAwLjQyMzMyOCwgMC42NzE2MzksIDAuODI2ODEzIiwgXAotICAgICAgICAgICIwLjA4ODk1NSwgMC4xMDc4NjEsIDAuMjEzNTg2LCAwLjMwNjczNiwgMC40MzA4NTQsIDAuNjc5MTUxLCAwLjgzNDM0NSIsIFwKLSAgICAgICAgICAiMC4wOTUxMzcsIDAuMTE0MDc5LCAwLjIxOTgwMywgMC4zMTI5NDgsIDAuNDM3MTE4LCAwLjY4NTM4OSwgMC44NDA1OTQiLCBcCi0gICAgICAgICAgIjAuMTAzNDkzLCAwLjEyMjUzOCwgMC4yMjgyOTIsIDAuMzIxNDY1LCAwLjQ0NTY3MywgMC42OTM4MzksIDAuODQ5MDU2IiwgXAotICAgICAgICAgICIwLjEwOTgxMSwgMC4xMjg4NCwgMC4yMzQ1MjcsIDAuMzI3NzcsIDAuNDUxODQxLCAwLjcwMDIyMSwgMC44NTUzNjEiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDczOTg1LCAwLjExMjAxNSwgMC4zMzI1OTcsIDAuNTI4NTg3LCAwLjc4OTMyNCwgMS4zMTAyNSwgMS42Mzg0NSIsIFwKLSAgICAgICAgICAiMC4wNzM5OTEsIDAuMTEyMDEzLCAwLjMzMjU5MywgMC41Mjc3OTIsIDAuNzkwMDM5LCAxLjMxMTY3LCAxLjYzNzMyIiwgXAotICAgICAgICAgICIwLjA3NDIyOCwgMC4xMTIxNjksIDAuMzMyMzM0LCAwLjUyODAyNywgMC43ODk5NjQsIDEuMzExNjksIDEuNjM4MjYiLCBcCi0gICAgICAgICAgIjAuMDc0OTk5LCAwLjExMjcwOSwgMC4zMzI2NzksIDAuNTI3ODgzLCAwLjc4OTkwOCwgMS4zMTIwNSwgMS42MzgyOSIsIFwKLSAgICAgICAgICAiMC4wNzU4MDgsIDAuMTEzMjE2LCAwLjMzMjIzOCwgMC41Mjc5ODUsIDAuNzg5OTY3LCAxLjMxMjAxLCAxLjYzOTk3IiwgXAotICAgICAgICAgICIwLjA3NzI0NiwgMC4xMTQwNzUsIDAuMzMyNzQ3LCAwLjUyODcwNywgMC43OTAwNDMsIDEuMzEyMDYsIDEuNjM4NTYiLCBcCi0gICAgICAgICAgIjAuMDc4MjEsIDAuMTE0OTk0LCAwLjMzMjc1MSwgMC41Mjg3NzMsIDAuNzg5MjcxLCAxLjMxMywgMS42Mzk5OSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjc0MjEsIDAuMDg1OTQ1LCAwLjE4ODgwMSwgMC4yNzkzNzQsIDAuNDAwMDkxLCAwLjY0MTQ2NSwgMC43OTI0MTQiLCBcCi0gICAgICAgICAgIjAuMDc0NzM4LCAwLjA5MzI3NSwgMC4xOTYxNTcsIDAuMjg2NzIyLCAwLjQwNzQ1LCAwLjY0ODgyMiwgMC43OTk2ODQiLCBcCi0gICAgICAgICAgIjAuMDgzNzY3LCAwLjEwMjMxMywgMC4yMDUxOTQsIDAuMjk1NzY3LCAwLjQxNjQ5MywgMC42NTc4NjgsIDAuODA4NzYzIiwgXAotICAgICAgICAgICIwLjA5MTIxMiwgMC4xMDk3NzcsIDAuMjEyNjc0LCAwLjMwMzIzLCAwLjQyMzk3MSwgMC42NjUzMjIsIDAuODE2MjAxIiwgXAotICAgICAgICAgICIwLjA5NzMzOCwgMC4xMTU5OTIsIDAuMjE4ODksIDAuMzA5NDY1LCAwLjQzMDIzOSwgMC42NzE2MDcsIDAuODIyNDE0IiwgXAotICAgICAgICAgICIwLjEwNTYsIDAuMTI0MjE2LCAwLjIyNzMyMiwgMC4zMTc5MDMsIDAuNDM4NjEyLCAwLjY3OTk4NSwgMC44MzA5MDQiLCBcCi0gICAgICAgICAgIjAuMTExNjQ1LCAwLjEzMDM5LCAwLjIzMzU0NCwgMC4zMjQxNzQsIDAuNDQ0OTAyLCAwLjY4NjMxNywgMC44MzcxNjIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDcxNjY4LCAwLjEwNzYxNiwgMC4zMTY2NjUsIDAuNTAyMjE1LCAwLjc1MTUyOSwgMS4yNDg4NSwgMS41NjAzNiIsIFwKLSAgICAgICAgICAiMC4wNzE2ODUsIDAuMTA3NjE2LCAwLjMxNjcwNiwgMC41MDIyNDIsIDAuNzUxNTUxLCAxLjI0NzMzLCAxLjU1NzkxIiwgXAotICAgICAgICAgICIwLjA3MTk0MywgMC4xMDc4MDQsIDAuMzE2NzA1LCAwLjUwMjI2OCwgMC43NTE1MjgsIDEuMjQ4ODIsIDEuNTYwMDYiLCBcCi0gICAgICAgICAgIjAuMDcyNjY2LCAwLjEwODI5OCwgMC4zMTY3NTYsIDAuNTAyODYxLCAwLjc1MTU3LCAxLjI0ODk0LCAxLjU1ODAxIiwgXAotICAgICAgICAgICIwLjA3MzM2MywgMC4xMDg4NjMsIDAuMzE3MDA4LCAwLjUwMjk1NCwgMC43NTAxMDQsIDEuMjQ3NywgMS41NTc4OSIsIFwKLSAgICAgICAgICAiMC4wNzQ2NTEsIDAuMTA5NjExLCAwLjMxNzI3MSwgMC41MDI2NzcsIDAuNzUxNjE5LCAxLjI0ODc5LCAxLjU2MDIiLCBcCi0gICAgICAgICAgIjAuMDc1NDQ1LCAwLjExMDQ3MSwgMC4zMTcwNjUsIDAuNTAyNDAxLCAwLjc1MDcyNSwgMS4yNDkxOSwgMS41NjAwMiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTMSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc4ODc2LCAwLjA5NzczLCAwLjIwMzQ0NCwgMC4yOTY2MjksIDAuNDIwNzY2LCAwLjY2OTAyMSwgMC44MjQyMjkiLCBcCi0gICAgICAgICAgIjAuMDg2MzcyLCAwLjEwNTIyNiwgMC4yMTA5MzMsIDAuMzA0MTMzLCAwLjQyODIyOSwgMC42NzY1MzIsIDAuODMxNjk4IiwgXAotICAgICAgICAgICIwLjA5MzAxOSwgMC4xMTE4NjksIDAuMjE3NTc2LCAwLjMxMDc1NywgMC40MzQ5NTIsIDAuNjgzMTgzLCAwLjgzODM1OCIsIFwKLSAgICAgICAgICAiMC4wOTc1ODksIDAuMTE2NDgsIDAuMjIyMTk3LCAwLjMxNTM0MSwgMC40Mzk1MywgMC42ODc3NiwgMC44NDI5NDIiLCBcCi0gICAgICAgICAgIjAuMTAxMjIzLCAwLjEyMDE0OCwgMC4yMjU5MTMsIDAuMzE5MDk0LCAwLjQ0MzI0LCAwLjY5MTU1NCwgMC44NDY3MDEiLCBcCi0gICAgICAgICAgIjAuMTA2MTA2LCAwLjEyNDk5MywgMC4yMzA4MjYsIDAuMzI0MDEyLCAwLjQ0ODE4OSwgMC42OTY0OTUsIDAuODUxNTgzIiwgXAotICAgICAgICAgICIwLjEwOTg0NSwgMC4xMjg3MjksIDAuMjM0NTc5LCAwLjMyNzczNiwgMC40NTE5NDEsIDAuNzAwMjA4LCAwLjg1NTM0MyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzM5MzksIDAuMTExOTQ0LCAwLjMzMjU3NCwgMC41Mjg1MzcsIDAuNzg5MTYzLCAxLjMxMzEsIDEuNjM4MTkiLCBcCi0gICAgICAgICAgIjAuMDczOTY3LCAwLjExMTk4OSwgMC4zMzI1ODIsIDAuNTI3NzM3LCAwLjc4OTIwMiwgMS4zMTE2MSwgMS42Mzg0NSIsIFwKLSAgICAgICAgICAiMC4wNzM5ODQsIDAuMTEyMDA2LCAwLjMzMjU2MSwgMC41Mjg1MzIsIDAuNzkwMDQzLCAxLjMxMTc1LCAxLjYzODI3IiwgXAotICAgICAgICAgICIwLjA3NDA1NCwgMC4xMTIwNjUsIDAuMzMyNTYxLCAwLjUyODAwOCwgMC43ODkwNTgsIDEuMzEyOTEsIDEuNjM4NDQiLCBcCi0gICAgICAgICAgIjAuMDc0MDMzLCAwLjExMjA4NywgMC4zMzIzMjUsIDAuNTI4NDU1LCAwLjc4OTg1NiwgMS4zMTI5MSwgMS42Mzc0NCIsIFwKLSAgICAgICAgICAiMC4wNzQwOTgsIDAuMTEyMDQxLCAwLjMzMjM5MiwgMC41Mjc4NjgsIDAuNzg5ODA2LCAxLjMxMjgsIDEuNjM5NjYiLCBcCi0gICAgICAgICAgIjAuMDc0MDQ3LCAwLjExMjI3MSwgMC4zMzIyMzEsIDAuNTI4MTE1LCAwLjc4OTI4MywgMS4zMTEwNiwgMS42MzgzOCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODA1ODYsIDAuMDk5MTQxLCAwLjIwMjAwNCwgMC4yOTI1ODIsIDAuNDEzMzE3LCAwLjY1NDY4MiwgMC44MDU1NTIiLCBcCi0gICAgICAgICAgIjAuMDg4MjM4LCAwLjEwNjc3NCwgMC4yMDk2NDksIDAuMzAwMjIsIDAuNDIwOTUsIDAuNjYyMzI0LCAwLjgxMzE4MyIsIFwKLSAgICAgICAgICAiMC4wOTQ4ODMsIDAuMTEzNDE2LCAwLjIxNjI5MSwgMC4zMDY4NjcsIDAuNDI3NTksIDAuNjY4OTY1LCAwLjgxOTkwOSIsIFwKLSAgICAgICAgICAiMC4wOTk2NjMsIDAuMTE4MjIsIDAuMjIxMTIsIDAuMzExNjk0LCAwLjQzMjQyNiwgMC42NzM3OCwgMC44MjQ2MzkiLCBcCi0gICAgICAgICAgIjAuMTAzNjg0LCAwLjEyMjI2NCwgMC4yMjUyMDgsIDAuMzE1Nzc0LCAwLjQzNjQ5NywgMC42Nzc5MjgsIDAuODI4Nzc5IiwgXAotICAgICAgICAgICIwLjEwOTA5MiwgMC4xMjc2MzcsIDAuMjMwNjM0LCAwLjMyMTIwOSwgMC40NDE5MjgsIDAuNjgzMzg1LCAwLjgzNDI4MiIsIFwKLSAgICAgICAgICAiMC4xMTMwNTUsIDAuMTMxNjE0LCAwLjIzNDYwNiwgMC4zMjUxOTMsIDAuNDQ1OTI4LCAwLjY4NzMyOCwgMC44MzgxNjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDcxNzIzLCAwLjEwNzY4NiwgMC4zMTYzMjQsIDAuNTAyMTk2LCAwLjc1MTY0LCAxLjI0ODk1LCAxLjU1ODA4IiwgXAotICAgICAgICAgICIwLjA3MTc0MSwgMC4xMDc2ODYsIDAuMzE2NzE1LCAwLjUwMjI0NSwgMC43NTE1NzQsIDEuMjQ3NDMsIDEuNTU5NTIiLCBcCi0gICAgICAgICAgIjAuMDcxNzU2LCAwLjEwNzY5NiwgMC4zMTY2OTgsIDAuNTAyMjM3LCAwLjc1MTU1MSwgMS4yNDg4NSwgMS41NjAzNyIsIFwKLSAgICAgICAgICAiMC4wNzE3ODUsIDAuMTA3NzMzLCAwLjMxNjc5LCAwLjUwMjE4NiwgMC43NTE0LCAxLjI0ODc2LCAxLjU1OTY1IiwgXAotICAgICAgICAgICIwLjA3MTc5MywgMC4xMDc3NzEsIDAuMzE2MjMsIDAuNTAyNzIsIDAuNzUwNjMyLCAxLjI0ODg4LCAxLjU2MDEiLCBcCi0gICAgICAgICAgIjAuMDcxODgyLCAwLjEwNzY4MywgMC4zMTY0NDMsIDAuNTAyMTE2LCAwLjc1MDY0OCwgMS4yNDg0NSwgMS41NTk3NSIsIFwKLSAgICAgICAgICAiMC4wNzE3NTgsIDAuMTA3ODY2LCAwLjMxNjI3NCwgMC41MDIzMzksIDAuNzUwMzU1LCAxLjI0ODQ0LCAxLjU1OTU4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1MDY5LCAwLjAwNTA3OSwgMC4wMDUwOTQsIDAuMDA1MDk3LCAwLjAwNTEsIDAuMDA1MTAyLCAwLjAwNTEwMiIsIFwKLSAgICAgICAgICAiMC4wMDUwNTEsIDAuMDA1MDYsIDAuMDA1MDc1LCAwLjAwNTA3OCwgMC4wMDUwODEsIDAuMDA1MDgzLCAwLjAwNTA4MiIsIFwKLSAgICAgICAgICAiMC4wMDUwNTgsIDAuMDA1MDY4LCAwLjAwNTA4MywgMC4wMDUwODYsIDAuMDA1MDg4LCAwLjAwNTA5LCAwLjAwNTA5IiwgXAotICAgICAgICAgICIwLjAwNTA4OCwgMC4wMDUwOTksIDAuMDA1MTE1LCAwLjAwNTExOCwgMC4wMDUxMiwgMC4wMDUxMjEsIDAuMDA1MTIyIiwgXAotICAgICAgICAgICIwLjAwNTE0MiwgMC4wMDUxNTEsIDAuMDA1MTY2LCAwLjAwNTE3LCAwLjAwNTE3MywgMC4wMDUxNzQsIDAuMDA1MTc0IiwgXAotICAgICAgICAgICIwLjAwNTI1NSwgMC4wMDUyNjIsIDAuMDA1Mjc5LCAwLjAwNTI4MiwgMC4wMDUyODYsIDAuMDA1Mjg2LCAwLjAwNTI4NyIsIFwKLSAgICAgICAgICAiMC4wMDUzNzgsIDAuMDA1Mzg4LCAwLjAwNTQwMywgMC4wMDU0MDUsIDAuMDA1NDEsIDAuMDA1NDEyLCAwLjAwNTQxMSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDU1OCwgMC4wMDQ1NzEsIDAuMDA0NTksIDAuMDA0NTk0LCAwLjAwNDU5NiwgMC4wMDQ1OTgsIDAuMDA0NTk5IiwgXAotICAgICAgICAgICIwLjAwNDUzLCAwLjAwNDU0MiwgMC4wMDQ1NjEsIDAuMDA0NTY1LCAwLjAwNDU2OCwgMC4wMDQ1NjksIDAuMDA0NTciLCBcCi0gICAgICAgICAgIjAuMDA0NTQyLCAwLjAwNDU1NCwgMC4wMDQ1NzQsIDAuMDA0NTc4LCAwLjAwNDU4LCAwLjAwNDU4MiwgMC4wMDQ1ODMiLCBcCi0gICAgICAgICAgIjAuMDA0NTg0LCAwLjAwNDU5NiwgMC4wMDQ2MTYsIDAuMDA0NjIsIDAuMDA0NjIyLCAwLjAwNDYyNCwgMC4wMDQ2MjUiLCBcCi0gICAgICAgICAgIjAuMDA0NjQ4LCAwLjAwNDY2LCAwLjAwNDY3OSwgMC4wMDQ2ODMsIDAuMDA0Njg2LCAwLjAwNDY4OCwgMC4wMDQ2ODgiLCBcCi0gICAgICAgICAgIjAuMDA0Nzc1LCAwLjAwNDc4NywgMC4wMDQ4MDcsIDAuMDA0ODExLCAwLjAwNDgxNCwgMC4wMDQ4MTYsIDAuMDA0ODE3IiwgXAotICAgICAgICAgICIwLjAwNDkwNiwgMC4wMDQ5MTcsIDAuMDA0OTM2LCAwLjAwNDk0MSwgMC4wMDQ5NDMsIDAuMDA0OTQ3LCAwLjAwNDk0OCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNTMwNSwgMC4wMDUzMTUsIDAuMDA1MzI5LCAwLjAwNTMzMywgMC4wMDUzMzUsIDAuMDA1MzM3LCAwLjAwNTMzOCIsIFwKLSAgICAgICAgICAiMC4wMDUyODgsIDAuMDA1Mjk4LCAwLjAwNTMxMiwgMC4wMDUzMTUsIDAuMDA1MzE4LCAwLjAwNTMyLCAwLjAwNTMxOSIsIFwKLSAgICAgICAgICAiMC4wMDUzMDEsIDAuMDA1MzEsIDAuMDA1MzI2LCAwLjAwNTMyOSwgMC4wMDUzMzIsIDAuMDA1MzM0LCAwLjAwNTMzNCIsIFwKLSAgICAgICAgICAiMC4wMDUzMzgsIDAuMDA1MzQ3LCAwLjAwNTM2MywgMC4wMDUzNjYsIDAuMDA1MzY4LCAwLjAwNTM3LCAwLjAwNTM3IiwgXAotICAgICAgICAgICIwLjAwNTM5OCwgMC4wMDU0MDgsIDAuMDA1NDI0LCAwLjAwNTQyNiwgMC4wMDU0MjksIDAuMDA1NDMsIDAuMDA1NDMxIiwgXAotICAgICAgICAgICIwLjAwNTUyMiwgMC4wMDU1MywgMC4wMDU1NDUsIDAuMDA1NTQ5LCAwLjAwNTU1MiwgMC4wMDU1NTMsIDAuMDA1NTU0IiwgXAotICAgICAgICAgICIwLjAwNTY0OCwgMC4wMDU2NTksIDAuMDA1Njc1LCAwLjAwNTY3OCwgMC4wMDU2OCwgMC4wMDU2ODMsIDAuMDA1NjgzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0MTkzLCAwLjAwNDIwNSwgMC4wMDQyMjQsIDAuMDA0MjI5LCAwLjAwNDIzMSwgMC4wMDQyMzMsIDAuMDA0MjM0IiwgXAotICAgICAgICAgICIwLjAwNDE2NiwgMC4wMDQxNzksIDAuMDA0MTk4LCAwLjAwNDIwMiwgMC4wMDQyMDQsIDAuMDA0MjA2LCAwLjAwNDIwNyIsIFwKLSAgICAgICAgICAiMC4wMDQxOCwgMC4wMDQxOTIsIDAuMDA0MjEyLCAwLjAwNDIxNiwgMC4wMDQyMTgsIDAuMDA0MjIsIDAuMDA0MjIxIiwgXAotICAgICAgICAgICIwLjAwNDIyMywgMC4wMDQyMzUsIDAuMDA0MjU1LCAwLjAwNDI2LCAwLjAwNDI2MiwgMC4wMDQyNjUsIDAuMDA0MjY1IiwgXAotICAgICAgICAgICIwLjAwNDI4OCwgMC4wMDQyOTksIDAuMDA0MzE5LCAwLjAwNDMyNCwgMC4wMDQzMjYsIDAuMDA0MzI4LCAwLjAwNDMyOSIsIFwKLSAgICAgICAgICAiMC4wMDQ0MTYsIDAuMDA0NDI3LCAwLjAwNDQ0NiwgMC4wMDQ0NTEsIDAuMDA0NDU0LCAwLjAwNDQ1NiwgMC4wMDQ0NTYiLCBcCi0gICAgICAgICAgIjAuMDA0NTQ2LCAwLjAwNDU1NywgMC4wMDQ1NzcsIDAuMDA0NTgyLCAwLjAwNDU4NSwgMC4wMDQ1ODYsIDAuMDA0NTg3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0MTk3LCAwLjAwNDIwNywgMC4wMDQyMjQsIDAuMDA0MjI3LCAwLjAwNDIyOSwgMC4wMDQyMzIsIDAuMDA0MjMzIiwgXAotICAgICAgICAgICIwLjAwNDIwMSwgMC4wMDQyMTEsIDAuMDA0MjI4LCAwLjAwNDIzMSwgMC4wMDQyMzMsIDAuMDA0MjM1LCAwLjAwNDIzNSIsIFwKLSAgICAgICAgICAiMC4wMDQyODEsIDAuMDA0MjksIDAuMDA0MzA1LCAwLjAwNDMwOSwgMC4wMDQzMTEsIDAuMDA0MzEzLCAwLjAwNDMxMyIsIFwKLSAgICAgICAgICAiMC4wMDQzODgsIDAuMDA0Mzk3LCAwLjAwNDQxLCAwLjAwNDQxMiwgMC4wMDQ0MTQsIDAuMDA0NDE1LCAwLjAwNDQxNSIsIFwKLSAgICAgICAgICAiMC4wMDQ1MTUsIDAuMDA0NTE5LCAwLjAwNDUyOSwgMC4wMDQ1MzEsIDAuMDA0NTMyLCAwLjAwNDUzNCwgMC4wMDQ1MzMiLCBcCi0gICAgICAgICAgIjAuMDA0NzI3LCAwLjAwNDczMywgMC4wMDQ3NCwgMC4wMDQ3NDEsIDAuMDA0NzQyLCAwLjAwNDc0MywgMC4wMDQ3NDIiLCBcCi0gICAgICAgICAgIjAuMDA0OTIzLCAwLjAwNDkzMSwgMC4wMDQ5MzYsIDAuMDA0OTM0LCAwLjAwNDkzNSwgMC4wMDQ5MzUsIDAuMDA0OTMzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0MDUsIDAuMDA0MDYzLCAwLjAwNDA4NCwgMC4wMDQwODgsIDAuMDA0MDksIDAuMDA0MDkzLCAwLjAwNDA5MyIsIFwKLSAgICAgICAgICAiMC4wMDQwNTQsIDAuMDA0MDY2LCAwLjAwNDA4NywgMC4wMDQwOTEsIDAuMDA0MDk0LCAwLjAwNDA5NiwgMC4wMDQwOTciLCBcCi0gICAgICAgICAgIjAuMDA0MTM3LCAwLjAwNDE0OSwgMC4wMDQxNjgsIDAuMDA0MTcyLCAwLjAwNDE3NSwgMC4wMDQxNzcsIDAuMDA0MTc3IiwgXAotICAgICAgICAgICIwLjAwNDI0MSwgMC4wMDQyNTMsIDAuMDA0MjcxLCAwLjAwNDI3NSwgMC4wMDQyNzgsIDAuMDA0MjgsIDAuMDA0MjgxIiwgXAotICAgICAgICAgICIwLjAwNDM3NSwgMC4wMDQzODcsIDAuMDA0NDA1LCAwLjAwNDQwNiwgMC4wMDQ0MDgsIDAuMDA0NDEsIDAuMDA0NDEiLCBcCi0gICAgICAgICAgIjAuMDA0NTk0LCAwLjAwNDYwNSwgMC4wMDQ2MTksIDAuMDA0NjIsIDAuMDA0NjIzLCAwLjAwNDYyMywgMC4wMDQ2MjMiLCBcCi0gICAgICAgICAgIjAuMDA0Nzk4LCAwLjAwNDgwNywgMC4wMDQ4MTksIDAuMDA0ODIxLCAwLjAwNDgyMSwgMC4wMDQ4MjMsIDAuMDA0ODIzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUzAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDgwMSwgMC4wMDQ4MSwgMC4wMDQ4MjUsIDAuMDA0ODI4LCAwLjAwNDgzLCAwLjAwNDgzMiwgMC4wMDQ4MzMiLCBcCi0gICAgICAgICAgIjAuMDA0ODAzLCAwLjAwNDgxMywgMC4wMDQ4MjcsIDAuMDA0ODMsIDAuMDA0ODMyLCAwLjAwNDgzNiwgMC4wMDQ4MzYiLCBcCi0gICAgICAgICAgIjAuMDA0ODg4LCAwLjAwNDg5OCwgMC4wMDQ5MTIsIDAuMDA0OTE1LCAwLjAwNDkxNywgMC4wMDQ5MTksIDAuMDA0OTE5IiwgXAotICAgICAgICAgICIwLjAwNDk5OSwgMC4wMDUwMDgsIDAuMDA1MDIyLCAwLjAwNTAyNSwgMC4wMDUwMjcsIDAuMDA1MDI5LCAwLjAwNTAyOSIsIFwKLSAgICAgICAgICAiMC4wMDUxMjksIDAuMDA1MTM4LCAwLjAwNTE1MiwgMC4wMDUxNTUsIDAuMDA1MTU4LCAwLjAwNTE1OCwgMC4wMDUxNiIsIFwKLSAgICAgICAgICAiMC4wMDU0MDEsIDAuMDA1NDA4LCAwLjAwNTQyNSwgMC4wMDU0MjcsIDAuMDA1NDMsIDAuMDA1NDMxLCAwLjAwNTQzMiIsIFwKLSAgICAgICAgICAiMC4wMDU2MTEsIDAuMDA1NjIxLCAwLjAwNTYyNSwgMC4wMDU2MzcsIDAuMDA1NjQxLCAwLjAwNTY0LCAwLjAwNTY0MSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjk0MiwgMC4wMDY5NTUsIDAuMDA2OTc0LCAwLjAwNjk3OCwgMC4wMDY5OCwgMC4wMDY5ODIsIDAuMDA2OTgzIiwgXAotICAgICAgICAgICIwLjAwNjk0OSwgMC4wMDY5NjEsIDAuMDA2OTc5LCAwLjAwNjk4NCwgMC4wMDY5ODYsIDAuMDA2OTg4LCAwLjAwNjk4OCIsIFwKLSAgICAgICAgICAiMC4wMDcwMzcsIDAuMDA3MDQ5LCAwLjAwNzA2NywgMC4wMDcwNzEsIDAuMDA3MDc0LCAwLjAwNzA3NiwgMC4wMDcwNzYiLCBcCi0gICAgICAgICAgIjAuMDA3MTQyLCAwLjAwNzE1NCwgMC4wMDcxNzIsIDAuMDA3MTc3LCAwLjAwNzE3OSwgMC4wMDcxODEsIDAuMDA3MTgyIiwgXAotICAgICAgICAgICIwLjAwNzI3MywgMC4wMDcyOCwgMC4wMDczMDIsIDAuMDA3MzA3LCAwLjAwNzMwOSwgMC4wMDczMTEsIDAuMDA3MzExIiwgXAotICAgICAgICAgICIwLjAwNzQ3NiwgMC4wMDc0ODksIDAuMDA3NTA3LCAwLjAwNzUxLCAwLjAwNzUxMywgMC4wMDc1MTUsIDAuMDA3NTE1IiwgXAotICAgICAgICAgICIwLjAwNzY3MywgMC4wMDc2ODcsIDAuMDA3NzA1LCAwLjAwNzcxLCAwLjAwNzcxMywgMC4wMDc3MTIsIDAuMDA3NzEzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUzEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDc5OSwgMC4wMDQ4MDksIDAuMDA0ODI1LCAwLjAwNDgyOSwgMC4wMDQ4MzEsIDAuMDA0ODMzLCAwLjAwNDgzNCIsIFwKLSAgICAgICAgICAiMC4wMDQ4MDYsIDAuMDA0ODE1LCAwLjAwNDgzMSwgMC4wMDQ4MzUsIDAuMDA0ODQsIDAuMDA0ODQxLCAwLjAwNDg0MSIsIFwKLSAgICAgICAgICAiMC4wMDQ4ODgsIDAuMDA0ODk3LCAwLjAwNDkxMywgMC4wMDQ5MTcsIDAuMDA0OTE5LCAwLjAwNDkyMSwgMC4wMDQ5MjIiLCBcCi0gICAgICAgICAgIjAuMDA0OTksIDAuMDA0OTk5LCAwLjAwNTAxNCwgMC4wMDUwMTgsIDAuMDA1MDIsIDAuMDA1MDIzLCAwLjAwNTAyMyIsIFwKLSAgICAgICAgICAiMC4wMDUxMTEsIDAuMDA1MTIsIDAuMDA1MTM2LCAwLjAwNTE0LCAwLjAwNTE0MywgMC4wMDUxNDUsIDAuMDA1MTQ1IiwgXAotICAgICAgICAgICIwLjAwNTM2OCwgMC4wMDUzNzYsIDAuMDA1MzkxLCAwLjAwNTM5NSwgMC4wMDUzOTgsIDAuMDA1NCwgMC4wMDUzOTkiLCBcCi0gICAgICAgICAgIjAuMDA1NTU0LCAwLjAwNTU2MywgMC4wMDU1NzgsIDAuMDA1NTgyLCAwLjAwNTU4NSwgMC4wMDU1ODcsIDAuMDA1NTg4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzNTg0LCAwLjAwMzU5NiwgMC4wMDM2MTYsIDAuMDAzNjIsIDAuMDAzNjIzLCAwLjAwMzYyNSwgMC4wMDM2MjYiLCBcCi0gICAgICAgICAgIjAuMDAzNTc5LCAwLjAwMzU5MSwgMC4wMDM2MTEsIDAuMDAzNjE2LCAwLjAwMzYxOSwgMC4wMDM2MjEsIDAuMDAzNjIyIiwgXAotICAgICAgICAgICIwLjAwMzY2LCAwLjAwMzY3MiwgMC4wMDM2OTIsIDAuMDAzNjk2LCAwLjAwMzY5OSwgMC4wMDM3MDEsIDAuMDAzNzAyIiwgXAotICAgICAgICAgICIwLjAwMzc3LCAwLjAwMzc4MywgMC4wMDM4MDMsIDAuMDAzODA3LCAwLjAwMzgxLCAwLjAwMzgxMiwgMC4wMDM4MTMiLCBcCi0gICAgICAgICAgIjAuMDAzOTI0LCAwLjAwMzkzNiwgMC4wMDM5NTcsIDAuMDAzOTYyLCAwLjAwMzk2NSwgMC4wMDM5NjcsIDAuMDAzOTY4IiwgXAotICAgICAgICAgICIwLjAwNDEzNywgMC4wMDQxNSwgMC4wMDQxNjksIDAuMDA0MTc0LCAwLjAwNDE3NiwgMC4wMDQxNzksIDAuMDA0MTgiLCBcCi0gICAgICAgICAgIjAuMDA0MzQzLCAwLjAwNDM1NiwgMC4wMDQzNzYsIDAuMDA0MzgxLCAwLjAwNDM4MywgMC4wMDQzODYsIDAuMDA0Mzg3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBNWEkzWDQgKgotICogLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChNWEkzWDQpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMS4wMzc2OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2Njk2MDg7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjY4NDgyOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDY2OTYwODsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDEwNDksIDAuMDAxMDI0LCAwLjAwMTAzNywgMC4wMDEwNzgsIDAuMDAxMTM4LCAwLjAwMTI1OCwgMC4wMDEzODUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDMwMDgsIDAuMDAyOTkyLCAwLjAwMzAwNiwgMC4wMDMwNDMsIDAuMDAzMSwgMC4wMDMyMTUsIDAuMDAzMzM0Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2OTM5MTU7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjkyNDAyOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDY5MzkxNTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyODcsIDAuMDAwMjg5LCAwLjAwMDI5LCAwLjAwMDI5LCAwLjAwMDI5LCAwLjAwMDI5MSwgMC4wMDAyOTEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAzMTcsIDAuMDAwMzA1LCAwLjAwMDMwMywgMC4wMDAzMDIsIDAuMDAwMzAxLCAwLjAwMDMsIDAuMDAwMyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQykgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNTk3MTc2OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDU5NzE3NjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA1OTcxMzY7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzc5LCAwLjAwMDM4NSwgMC4wMDA0NjYsIDAuMDAwNTc2LCAwLjAwMDcsIDAuMDAwOTMxLCAwLjAwMTExOCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjE0MiwgMC4wMDIxNDksIDAuMDAyMjI1LCAwLjAwMjMyOSwgMC4wMDI0NTcsIDAuMDAyNjg2LCAwLjAwMjg2NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUzApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTM5MzE5OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTM5MzE5OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTM5Mjk1OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDExOCwgMC4wMDAxNDQsIDAuMDAwMjMzLCAwLjAwMDM1MSwgMC4wMDA0ODYsIDAuMDAwNzE0LCAwLjAwMDk3OCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjE3LCAwLjAwMjIwNCwgMC4wMDIyNzksIDAuMDAyMzksIDAuMDAyNTIzLCAwLjAwMjc0NiwgMC4wMDI5NDgiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFMxKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE1NTIwOTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE1NTE0MTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE1NTIwOTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyNjksIDAuMDAwMjgsIDAuMDAwMzYzLCAwLjAwMDQ3MywgMC4wMDA2MDEsIDAuMDAwODI5LCAwLjAwMTAyNyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjQ1MywgMC4wMDI0ODQsIDAuMDAyNTYzLCAwLjAwMjY3LCAwLjAwMjgwMiwgMC4wMDMwMiwgMC4wMDMyMiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAxLjM2NzE2OwotICAgIGZ1bmN0aW9uIDogIighKChTMSBDKSArICghUzEgKChTMCBCKSArICghUzAgQSkpKSkpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4NzEzNywgMC4xNDY0ODYsIDAuMjAwOTA1LCAwLjIzOTY4MywgMC4zMDE2ODgsIDAuMzU1OTMxLCAwLjQzMzQ5IiwgXAotICAgICAgICAgICIwLjA5Mjk1MywgMC4xNTIzMDMsIDAuMjA2NzI0LCAwLjI0NTUsIDAuMzA3NTA3LCAwLjM2MTc0OSwgMC40MzkyOTgiLCBcCi0gICAgICAgICAgIjAuMDk5Mjc1LCAwLjE1ODY1OSwgMC4yMTMwNjIsIDAuMjUxODM4LCAwLjMxMzg3MiwgMC4zNjgxNzQsIDAuNDQ1NTczIiwgXAotICAgICAgICAgICIwLjEwNDc0OCwgMC4xNjQxMDksIDAuMjE4NTI3LCAwLjI1NzMwNywgMC4zMTkzMTIsIDAuMzczNTUzLCAwLjQ1MTExOSIsIFwKLSAgICAgICAgICAiMC4xMDkxMDgsIDAuMTY4NDY4LCAwLjIyMjg4NSwgMC4yNjE2NjMsIDAuMzIzNjcyLCAwLjM3NzkxMywgMC40NTU0NzMiLCBcCi0gICAgICAgICAgIjAuMTE1MTQ3LCAwLjE3NDU0NiwgMC4yMjg5NTIsIDAuMjY3NzEzLCAwLjMyOTc1MSwgMC4zODQwNDMsIDAuNDYxNDUiLCBcCi0gICAgICAgICAgIjAuMTE5Njg2LCAwLjE3OTExNCwgMC4yMzM1MDQsIDAuMjcyMjgyLCAwLjMzNDI3NSwgMC4zODg1MjIsIDAuNDY1OTkzIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDMyNTM1LCAwLjE0MTIzOCwgMC4yNTM0MSwgMC4zMzQ4MDcsIDAuNDY1MTU0LCAwLjU3ODgzNiwgMC43NDE3NTQiLCBcCi0gICAgICAgICAgIjAuMDMyNTIyLCAwLjE0MTI0LCAwLjI1MzQxNCwgMC4zMzQ4MjIsIDAuNDY1MTUzLCAwLjU3ODg0OSwgMC43NDE3NjUiLCBcCi0gICAgICAgICAgIjAuMDMyNTQ0LCAwLjE0MTIzNSwgMC4yNTM1OTEsIDAuMzM0NjgsIDAuNDY0MjMzLCAwLjU3ODM3NiwgMC43NDIxNzgiLCBcCi0gICAgICAgICAgIjAuMDMyNDg5LCAwLjE0MTIzLCAwLjI1MzQxLCAwLjMzNDgsIDAuNDY1MTQ4LCAwLjU3ODgxMiwgMC43NDE1MTIiLCBcCi0gICAgICAgICAgIjAuMDMyNDkzLCAwLjE0MTI4OSwgMC4yNTM2MDgsIDAuMzM0ODAxLCAwLjQ2NTE1OSwgMC41Nzg4MzIsIDAuNzQxNzU1IiwgXAotICAgICAgICAgICIwLjAzMjU4NywgMC4xNDEyOSwgMC4yNTM1MTYsIDAuMzM0NjM4LCAwLjQ2NTEyNiwgMC41Nzg1NTEsIDAuNzQyMTc0IiwgXAotICAgICAgICAgICIwLjAzMjY4NiwgMC4xNDEyNTUsIDAuMjUzMzI2LCAwLjMzNDc2NSwgMC40NjUwMTUsIDAuNTc5MzY3LCAwLjc0MjE3MiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4Nzk3OCwgMC4xNDc3MTcsIDAuMjAxOTI1LCAwLjI0MDQ0NiwgMC4zMDIwNTQsIDAuMzU1OTM2LCAwLjQzMjg3OSIsIFwKLSAgICAgICAgICAiMC4wOTQxMDYsIDAuMTUzODg0LCAwLjIwODA0NSwgMC4yNDY1ODQsIDAuMzA4MTY1LCAwLjM2MjExMywgMC40MzkwMjciLCBcCi0gICAgICAgICAgIjAuMTAxMDYyLCAwLjE2MDg3NiwgMC4yMTUwNjEsIDAuMjUzNTg4LCAwLjMxNTE5MSwgMC4zNjkwNjIsIDAuNDQ2MDMxIiwgXAotICAgICAgICAgICIwLjEwNjk0MywgMC4xNjY3MzcsIDAuMjIwOTE3LCAwLjI1OTQ0LCAwLjMyMTA0MSwgMC4zNzQ5MTQsIDAuNDUxODc4IiwgXAotICAgICAgICAgICIwLjExMTc3NSwgMC4xNzE1OTEsIDAuMjI1Nzc0LCAwLjI2NDMwMSwgMC4zMjU5MzEsIDAuMzc5Nzk2LCAwLjQ1Njc0MiIsIFwKLSAgICAgICAgICAiMC4xMTg0ODcsIDAuMTc4MjgzLCAwLjIzMjQ3MiwgMC4yNzA5OTIsIDAuMzMyNTg4LCAwLjM4NjQ1OSwgMC40NjM0MzYiLCBcCi0gICAgICAgICAgIjAuMTIzNTc1LCAwLjE4MzM5MywgMC4yMzc1NTcsIDAuMjc2MTAxLCAwLjMzNzY3OSwgMC4zOTE1NzEsIDAuNDY4NTI5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDMyODIsIDAuMTM5Mzc4LCAwLjI0OTIzNiwgMC4zMjc5ODcsIDAuNDU1MjYsIDAuNTY3ODI2LCAwLjcyNzc2OCIsIFwKLSAgICAgICAgICAiMC4wMzI4MDgsIDAuMTM5MzYxLCAwLjI0OTIyLCAwLjMyODUxOSwgMC40NTUzNjIsIDAuNTY2NzQxLCAwLjcyNjk1MiIsIFwKLSAgICAgICAgICAiMC4wMzI3NDYsIDAuMTM5Mzg0LCAwLjI0OTE2NiwgMC4zMjg0NiwgMC40NTU5NDMsIDAuNTY3NzI3LCAwLjcyNjkyMiIsIFwKLSAgICAgICAgICAiMC4wMzI3MjYsIDAuMTM5MzUyLCAwLjI0ODkyNywgMC4zMjg0NjIsIDAuNDU1MzY0LCAwLjU2NzczNCwgMC43MjY5NjgiLCBcCi0gICAgICAgICAgIjAuMDMyNzY2LCAwLjEzOTQ0NSwgMC4yNDkwNTYsIDAuMzI4MTcsIDAuNDU2MDE2LCAwLjU2NzEyNSwgMC43Mjc3MyIsIFwKLSAgICAgICAgICAiMC4wMzI3NzYsIDAuMTM5NDIyLCAwLjI0ODk1NCwgMC4zMjg1MDcsIDAuNDU1OTU3LCAwLjU2NzU5NywgMC43MjY4NjMiLCBcCi0gICAgICAgICAgIjAuMDMyODYsIDAuMTM5NDAxLCAwLjI0OTE4MywgMC4zMjg1NTgsIDAuNDU1NDEsIDAuNTY3NzcxLCAwLjcyNzc1MyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4Njg5NCwgMC4xNDYyMjMsIDAuMjAwNjQxLCAwLjIzOTQxNywgMC4zMDE0MjIsIDAuMzU1NjYyLCAwLjQzMzIxNCIsIFwKLSAgICAgICAgICAiMC4wOTI2MTIsIDAuMTUxOTU2LCAwLjIwNjM2OCwgMC4yNDUxNDYsIDAuMzA3MTUsIDAuMzYxMzg5LCAwLjQzODk1MSIsIFwKLSAgICAgICAgICAiMC4wOTg4ODQsIDAuMTU4MjM3LCAwLjIxMjYzNywgMC4yNTE0MDQsIDAuMzEzNDE5LCAwLjM2NzY2NywgMC40NDUyMDgiLCBcCi0gICAgICAgICAgIjAuMTA0MjE4LCAwLjE2MzU0NSwgMC4yMTc5NjIsIDAuMjU2NzQxLCAwLjMxODc0NSwgMC4zNzI5ODUsIDAuNDUwNTUyIiwgXAotICAgICAgICAgICIwLjEwODQ5NywgMC4xNjc4MywgMC4yMjIyNDgsIDAuMjYxMDI2LCAwLjMyMzAzNSwgMC4zNzcyNzYsIDAuNDU0ODI5IiwgXAotICAgICAgICAgICIwLjExNDQyMiwgMC4xNzM3OTEsIDAuMjI4MTg2LCAwLjI2Njk2MywgMC4zMjg5ODcsIDAuMzgzMjE4LCAwLjQ2MDcwMyIsIFwKLSAgICAgICAgICAiMC4xMTg4ODcsIDAuMTc4MjQyLCAwLjIzMjY1OSwgMC4yNzE0MzIsIDAuMzMzNDI3LCAwLjM4NzY3OCwgMC40NjUyMDgiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzI1MTIsIDAuMTQxMjE3LCAwLjI1MzM5NSwgMC4zMzQ4MDcsIDAuNDY1MTMyLCAwLjU3ODgyOSwgMC43NDE3NTMiLCBcCi0gICAgICAgICAgIjAuMDMyNTExLCAwLjE0MTIxMywgMC4yNTMzODgsIDAuMzM0Nzg5LCAwLjQ2NTEzMywgMC41Nzg4MTUsIDAuNzQxNzM4IiwgXAotICAgICAgICAgICIwLjAzMjUzMSwgMC4xNDEyMDksIDAuMjUzMzk5LCAwLjMzNDQzNiwgMC40NjUxNDMsIDAuNTc5NDE5LCAwLjc0MTc1NCIsIFwKLSAgICAgICAgICAiMC4wMzI0MDcsIDAuMTQxMjA5LCAwLjI1MzM5MywgMC4zMzQ3ODgsIDAuNDY1MTI0LCAwLjU3ODIyNCwgMC43NDE0NDQiLCBcCi0gICAgICAgICAgIjAuMDMyNTAxLCAwLjE0MTI2NiwgMC4yNTM1ODEsIDAuMzM0ODA3LCAwLjQ2NTEwNywgMC41Nzg4MTQsIDAuNzQxNzUyIiwgXAotICAgICAgICAgICIwLjAzMjYwNSwgMC4xNDEyNjgsIDAuMjUzNTcsIDAuMzM0NzEsIDAuNDY1MTA4LCAwLjU3OTM2NCwgMC43NDE2MjgiLCBcCi0gICAgICAgICAgIjAuMDMyNjM5LCAwLjE0MTE3LCAwLjI1MzYzMywgMC4zMzQ3NzQsIDAuNDY0OTU3LCAwLjU3OTIzMiwgMC43NDE1ODEiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODcxNCwgMC4xNDY4OTYsIDAuMjAxMDk5LCAwLjIzOTYyMSwgMC4zMDEyNDYsIDAuMzU1MTAyLCAwLjQzMjA0NSIsIFwKLSAgICAgICAgICAiMC4wOTMzNjQsIDAuMTUzMTI1LCAwLjIwNzI3NiwgMC4yNDU4MDUsIDAuMzA3NDAxLCAwLjM2MTMxMSwgMC40MzgzMTIiLCBcCi0gICAgICAgICAgIjAuMTAwMzkzLCAwLjE2MDE1NywgMC4yMTQzMSwgMC4yNTI4NTQsIDAuMzE0NDM3LCAwLjM2ODMyNywgMC40NDUzMjMiLCBcCi0gICAgICAgICAgIjAuMTA2MjY4LCAwLjE2NjAxLCAwLjIyMDE3LCAwLjI1ODcwMSwgMC4zMjAyOSwgMC4zNzQxNzMsIDAuNDUxMTM2IiwgXAotICAgICAgICAgICIwLjExMTExNywgMC4xNzA4OTEsIDAuMjI1MDY3LCAwLjI2MzYxMiwgMC4zMjUxOSwgMC4zNzkxLCAwLjQ1NjEiLCBcCi0gICAgICAgICAgIjAuMTE3ODY4LCAwLjE3NzYzNSwgMC4yMzE4MzcsIDAuMjcwMzYzLCAwLjMzMTk0NiwgMC4zODU4MjUsIDAuNDYyOCIsIFwKLSAgICAgICAgICAiMC4xMjMwMzQsIDAuMTgyODQzLCAwLjIzNjk3LCAwLjI3NTUwNiwgMC4zMzcwOSwgMC4zOTA5NzEsIDAuNDY3OTY2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDMyNzcyLCAwLjEzOTM0NCwgMC4yNDkyMDgsIDAuMzI4MDU1LCAwLjQ1NTE3OCwgMC41Njc3OTMsIDAuNzI3NzQyIiwgXAotICAgICAgICAgICIwLjAzMjc5MiwgMC4xMzkzMjgsIDAuMjQ5MTYzLCAwLjMyODQyMiwgMC40NTU0MTQsIDAuNTY3ODA3LCAwLjcyNjQyMyIsIFwKLSAgICAgICAgICAiMC4wMzI4MDcsIDAuMTM5MzQxLCAwLjI0OTE5NywgMC4zMjg1MDUsIDAuNDU1MzYzLCAwLjU2Nzc1MiwgMC43MjYzOTkiLCBcCi0gICAgICAgICAgIjAuMDMyNzI1LCAwLjEzOTMyOSwgMC4yNDkxMzksIDAuMzI4NDM4LCAwLjQ1NTQyLCAwLjU2NzcxMywgMC43MjY5NDEiLCBcCi0gICAgICAgICAgIjAuMDMyNzU3LCAwLjEzOTQwNiwgMC4yNDkwMjYsIDAuMzI4NTA3LCAwLjQ1NTQwNywgMC41Njc3OTUsIDAuNzI2NTA4IiwgXAotICAgICAgICAgICIwLjAzMjc3MiwgMC4xMzkzNzUsIDAuMjQ5MTM3LCAwLjMyODAxMSwgMC40NTU3OTIsIDAuNTY3NTk5LCAwLjcyNjgxMiIsIFwKLSAgICAgICAgICAiMC4wMzI4MjEsIDAuMTM5MzYsIDAuMjQ5MTgyLCAwLjMyODQ1NSwgMC40NTUzMzgsIDAuNTY3NzI4LCAwLjcyNzg0NiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2Njk5MSwgMC4xMjYyOTIsIDAuMTgwNzA1LCAwLjIxOTQ5OCwgMC4yODE0OTIsIDAuMzM1NzQsIDAuNDEzMjE1IiwgXAotICAgICAgICAgICIwLjA3NDUzMSwgMC4xMzM3OTcsIDAuMTg4MjEsIDAuMjI2OTkzLCAwLjI4OTAwMSwgMC4zNDMyNTUsIDAuNDIwNzgzIiwgXAotICAgICAgICAgICIwLjA4MDgwNCwgMC4xNDAwNjUsIDAuMTk0NDg0LCAwLjIzMzI3NiwgMC4yOTUyNjYsIDAuMzQ5NTM1LCAwLjQyNjk4NyIsIFwKLSAgICAgICAgICAiMC4wODUyODMsIDAuMTQ0NTI1LCAwLjE5ODk1NywgMC4yMzc3NCwgMC4yOTk3NTEsIDAuMzU0MDA4LCAwLjQzMTUyOCIsIFwKLSAgICAgICAgICAiMC4wODg5MTUsIDAuMTQ4MTg4LCAwLjIwMjYxMiwgMC4yNDE0MDEsIDAuMzAzNDEzLCAwLjM1NzY0MSwgMC40MzUxMjQiLCBcCi0gICAgICAgICAgIjAuMDkzNzIzLCAwLjE1MzAxMSwgMC4yMDc0NjQsIDAuMjQ2MjE3LCAwLjMwODI1MiwgMC4zNjI0NzMsIDAuNDM5OTM4IiwgXAotICAgICAgICAgICIwLjA5NzI4MiwgMC4xNTY1NSwgMC4yMTA5NzEsIDAuMjQ5NzQsIDAuMzExNzU1LCAwLjM2NjA0NSwgMC40NDM1MjIiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzIxNDUsIDAuMTQxMDUzLCAwLjI1MzUwOSwgMC4zMzQ3MjYsIDAuNDY0NjA2LCAwLjU3ODczNCwgMC43NDIwODIiLCBcCi0gICAgICAgICAgIjAuMDMyMjQ0LCAwLjE0MTA1MywgMC4yNTM0OTYsIDAuMzM0Njc5LCAwLjQ2NTA5NCwgMC41Nzk0MjUsIDAuNzQyOTAzIiwgXAotICAgICAgICAgICIwLjAzMjIwMiwgMC4xNDEwNDcsIDAuMjUzNTA1LCAwLjMzNDczOSwgMC40NjQ5MjksIDAuNTc5NDEzLCAwLjc0MjgyOSIsIFwKLSAgICAgICAgICAiMC4wMzIxMzksIDAuMTQxMDg0LCAwLjI1MzQ5MywgMC4zMzQxMzIsIDAuNDY1MDY1LCAwLjU3OTM5NCwgMC43NDI4NzQiLCBcCi0gICAgICAgICAgIjAuMDMyMzEsIDAuMTQxMDYsIDAuMjUzNTI1LCAwLjMzNDcyOSwgMC40NjUwODksIDAuNTc5MzMxLCAwLjc0Mjc3MSIsIFwKLSAgICAgICAgICAiMC4wMzIyNDUsIDAuMTQxMDYsIDAuMjUzNTI0LCAwLjMzNDY0NCwgMC40NjQzNzgsIDAuNTc5MzUxLCAwLjc0MTk5NCIsIFwKLSAgICAgICAgICAiMC4wMzIyODEsIDAuMTQxMDAzLCAwLjI1MzM4NywgMC4zMzQ1MzQsIDAuNDY1MDM2LCAwLjU3ODg1OCwgMC43NDI3NjkiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzA4MDMsIDAuMTMwNjUxLCAwLjE4NDgzNSwgMC4yMjMzNTksIDAuMjg0OTU3LCAwLjMzODgyNSwgMC40MTU3ODYiLCBcCi0gICAgICAgICAgIjAuMDc4MzkyLCAwLjEzODE3MiwgMC4xOTIzNTgsIDAuMjMwODg3LCAwLjI5MjQ3OCwgMC4zNDY0MDQsIDAuNDIzMjk4IiwgXAotICAgICAgICAgICIwLjA4NDczMywgMC4xNDQ2NSwgMC4xOTg4MDIsIDAuMjM3MzMyLCAwLjI5ODkzMSwgMC4zNTI3OTMsIDAuNDI5Nzc2IiwgXAotICAgICAgICAgICIwLjA4OTM3MSwgMC4xNDkxOTgsIDAuMjAzMzg0LCAwLjI0MTkxNywgMC4zMDM1MDYsIDAuMzU3NDA0LCAwLjQzNDMzMSIsIFwKLSAgICAgICAgICAiMC4wOTMyMDUsIDAuMTUzMDA5LCAwLjIwNzE5MywgMC4yNDU3MTIsIDAuMzA3MzM0LCAwLjM2MTE3OCwgMC40MzgxMzUiLCBcCi0gICAgICAgICAgIjAuMDk4MjY3LCAwLjE1ODA5NiwgMC4yMTIzMDEsIDAuMjUwODE5LCAwLjMxMjQxNSwgMC4zNjYzMjcsIDAuNDQzMjMxIiwgXAotICAgICAgICAgICIwLjEwMjE0MywgMC4xNjIwMjksIDAuMjE2MTkzLCAwLjI1NDc0NSwgMC4zMTYzMjUsIDAuMzcwMjE0LCAwLjQ0NzIyNiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzMjc2MSwgMC4xMzk0MSwgMC4yNDkxNzIsIDAuMzI4NDc1LCAwLjQ1NTk0MywgMC41Njc3MjMsIDAuNzI2OTc2IiwgXAotICAgICAgICAgICIwLjAzMjc4NiwgMC4xMzk0MTEsIDAuMjQ5MDQ2LCAwLjMyNzk0NywgMC40NTU5MTIsIDAuNTY2NzEzLCAwLjcyNzY2MiIsIFwKLSAgICAgICAgICAiMC4wMzI2ODEsIDAuMTM5MzQxLCAwLjI0OTIxMSwgMC4zMjg0NSwgMC40NTUxOTEsIDAuNTY3Njc5LCAwLjcyNzc1NCIsIFwKLSAgICAgICAgICAiMC4wMzI2NDIsIDAuMTM5NDI4LCAwLjI0OTAzMywgMC4zMjgwOTgsIDAuNDU1OTEyLCAwLjU2Nzc3MywgMC43Mjc1NjIiLCBcCi0gICAgICAgICAgIjAuMDMyNjYyLCAwLjEzOTM4NiwgMC4yNDkyMzMsIDAuMzI4NDM1LCAwLjQ1NjAwMywgMC41Njc3LCAwLjcyNjg4MSIsIFwKLSAgICAgICAgICAiMC4wMzI3NzcsIDAuMTM5NDE0LCAwLjI0OTEyOSwgMC4zMjg0MzIsIDAuNDU1OTMsIDAuNTY3ODcxLCAwLjcyNzY3MSIsIFwKLSAgICAgICAgICAiMC4wMzI4MDMsIDAuMTM5Mjg5LCAwLjI0OTIwNSwgMC4zMjg1MjksIDAuNDU1OTg2LCAwLjU2NzA4NiwgMC43MjY0NDMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUzAiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDkxODgxLCAwLjE1MTIxNCwgMC4yMDU2MjYsIDAuMjQ0NDAyLCAwLjMwNjQwNiwgMC4zNjA2NSwgMC40MzgyMDEiLCBcCi0gICAgICAgICAgIjAuMDk4OTA0LCAwLjE1ODI0NSwgMC4yMTI2NTYsIDAuMjUxNDM0LCAwLjMxMzQzOCwgMC4zNjc2NzgsIDAuNDQ1MjM5IiwgXAotICAgICAgICAgICIwLjEwNDU0NywgMC4xNjM4NDMsIDAuMjE4MjQyLCAwLjI1NzAxMiwgMC4zMTkwMjIsIDAuMzczMjY5LCAwLjQ1MDgwOCIsIFwKLSAgICAgICAgICAiMC4xMDg2NzYsIDAuMTY3OTk2LCAwLjIyMjQwOSwgMC4yNjExODksIDAuMzIzMTkxLCAwLjM3NzQzMSwgMC40NTQ5OTciLCBcCi0gICAgICAgICAgIjAuMTExODU4LCAwLjE3MTIxMiwgMC4yMjU2MTgsIDAuMjY0NDAxLCAwLjMyNjQsIDAuMzgwNzE0LCAwLjQ1ODEwOSIsIFwKLSAgICAgICAgICAiMC4xMTY0NjYsIDAuMTc1Nzk5LCAwLjIzMDE4MywgMC4yNjg5NjMsIDAuMzMwOTY5LCAwLjM4NTE4NCwgMC40NjI2NjEiLCBcCi0gICAgICAgICAgIjAuMTE5OTg2LCAwLjE3OTMxNSwgMC4yMzM3MjUsIDAuMjcyNDg4LCAwLjMzNDQ3NywgMC4zODg3MjIsIDAuNDY2MTgiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzI1MjgsIDAuMTQxMjE0LCAwLjI1MzM4NiwgMC4zMzQ4MDYsIDAuNDY1MTUyLCAwLjU3ODg0MiwgMC43NDE3NDYiLCBcCi0gICAgICAgICAgIjAuMDMyNTEzLCAwLjE0MTIwOCwgMC4yNTMzODcsIDAuMzM0Nzg5LCAwLjQ2NTEyOCwgMC41Nzg4MTUsIDAuNzQxNzM4IiwgXAotICAgICAgICAgICIwLjAzMjU2LCAwLjE0MTIsIDAuMjUzMzk2LCAwLjMzNDM3LCAwLjQ2NTEzNiwgMC41Nzg4NjIsIDAuNzQxNzUyIiwgXAotICAgICAgICAgICIwLjAzMjQyMSwgMC4xNDEyLCAwLjI1MzM4NiwgMC4zMzQ3ODUsIDAuNDY1MTI2LCAwLjU3ODYzNSwgMC43NDE0NzYiLCBcCi0gICAgICAgICAgIjAuMDMyNDg3LCAwLjE0MTE1NSwgMC4yNTMzNzMsIDAuMzM0NzYxLCAwLjQ2NTEwMSwgMC41Nzg1MDksIDAuNzQyNzk3IiwgXAotICAgICAgICAgICIwLjAzMjUzLCAwLjE0MTIyNiwgMC4yNTM1NjUsIDAuMzM0MjcsIDAuNDY0OTQyLCAwLjU3OTE2OSwgMC43NDIxNzQiLCBcCi0gICAgICAgICAgIjAuMDMyNTEzLCAwLjE0MTE1OSwgMC4yNTM0MDMsIDAuMzM0NDA3LCAwLjQ2NDY0NiwgMC41Nzg1NzQsIDAuNzQyNDc2Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk0MjAxLCAwLjE1Mzk3NSwgMC4yMDgxNjcsIDAuMjQ2NzA5LCAwLjMwODI5MiwgMC4zNjIxNzksIDAuNDM5MTU1IiwgXAotICAgICAgICAgICIwLjEwMTIwNywgMC4xNjA5OTEsIDAuMjE1MjAxLCAwLjI1MzcyNywgMC4zMTUzMjksIDAuMzY5MTk4LCAwLjQ0NjE2NiIsIFwKLSAgICAgICAgICAiMC4xMDY2NjksIDAuMTY2NDc3LCAwLjIyMDY1OSwgMC4yNTkxODUsIDAuMzIwNzg2LCAwLjM3NDY3OCwgMC40NTE2MjkiLCBcCi0gICAgICAgICAgIjAuMTEwNDU2LCAwLjE3MDE5MSwgMC4yMjQzODEsIDAuMjYyOTA4LCAwLjMyNDUwOCwgMC4zNzg0MDYsIDAuNDU1MzQxIiwgXAotICAgICAgICAgICIwLjExMzQ3MSwgMC4xNzMyNzcsIDAuMjI3NDU4LCAwLjI2NTk4MywgMC4zMjc1ODMsIDAuMzgxNDU0LCAwLjQ1ODQzMyIsIFwKLSAgICAgICAgICAiMC4xMTc1NywgMC4xNzc0MDQsIDAuMjMxNTgxLCAwLjI3MDExOCwgMC4zMzE3MjgsIDAuMzg1NTc0LCAwLjQ2MjUxOSIsIFwKLSAgICAgICAgICAiMC4xMjA3MTgsIDAuMTgwNTE5LCAwLjIzNDY2MiwgMC4yNzMxODQsIDAuMzM0NzczLCAwLjM4ODY1NSwgMC40NjU2MDkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzI3MzQsIDAuMTM5MzUyLCAwLjI0OTE1MiwgMC4zMjg0ODEsIDAuNDU1NDUzLCAwLjU2Nzc0MSwgMC43Mjc2MDYiLCBcCi0gICAgICAgICAgIjAuMDMyNzQxLCAwLjEzOTM3MywgMC4yNDkxODEsIDAuMzI4NDczLCAwLjQ1NTk0OSwgMC41Njc3MzQsIDAuNzI1OTcxIiwgXAotICAgICAgICAgICIwLjAzMjczNiwgMC4xMzk0LCAwLjI0OTIxMiwgMC4zMjg0NjksIDAuNDU1OTQzLCAwLjU2Nzc4MiwgMC43MjY4MzciLCBcCi0gICAgICAgICAgIjAuMDMyNzQyLCAwLjEzOTM5NiwgMC4yNDkwMzgsIDAuMzI4MTQ5LCAwLjQ1NTkyNywgMC41NjcxNTcsIDAuNzI3NzE4IiwgXAotICAgICAgICAgICIwLjAzMjc2LCAwLjEzOTQ0NiwgMC4yNDkwNTcsIDAuMzI4NDg4LCAwLjQ1NTkzNywgMC41Njc3MTUsIDAuNzI2OTM2IiwgXAotICAgICAgICAgICIwLjAzMjc3NCwgMC4xMzkzODgsIDAuMjQ5MTg1LCAwLjMyODUxLCAwLjQ1NjAxOCwgMC41Njc2MjQsIDAuNzI3NTQ1IiwgXAotICAgICAgICAgICIwLjAzMjc0OSwgMC4xMzkyNTksIDAuMjQ4OTU4LCAwLjMyODAxMSwgMC40NTU1ODYsIDAuNTY3NDAyLCAwLjcyNjU3OSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODI0MDUsIDAuMTQxNzQsIDAuMTk2MTQsIDAuMjM0OTMsIDAuMjk2OTM1LCAwLjM1MTE2OSwgMC40Mjg2NCIsIFwKLSAgICAgICAgICAiMC4wODk2NTgsIDAuMTQ5MDA5LCAwLjIwMzQyNiwgMC4yNDIyMDQsIDAuMzA0MjA5LCAwLjM1ODQ1LCAwLjQzNjAxMiIsIFwKLSAgICAgICAgICAiMC4wOTgzOTMsIDAuMTU3NzE4LCAwLjIxMjEyMiwgMC4yNTA4OTUsIDAuMzEyOTA5LCAwLjM2NzE0OSwgMC40NDQ2NDUiLCBcCi0gICAgICAgICAgIjAuMTA1MzEyLCAwLjE2NDY2NiwgMC4yMTkwODksIDAuMjU3ODcsIDAuMzE5ODc1LCAwLjM3NDExNiwgMC40NTE2NzYiLCBcCi0gICAgICAgICAgIjAuMTEwODAzLCAwLjE3MDIwMywgMC4yMjQ2MjcsIDAuMjYzNDA3LCAwLjMyNTQxNiwgMC4zNzk2OCwgMC40NTcyMDIiLCBcCi0gICAgICAgICAgIjAuMTE4NDQ4LCAwLjE3Nzc5NCwgMC4yMzIyMDgsIDAuMjcwOTkyLCAwLjMzMjk4NiwgMC4zODcyNCwgMC40NjQ3OTkiLCBcCi0gICAgICAgICAgIjAuMTI0MTE0LCAwLjE4MzQ5MiwgMC4yMzc4OTgsIDAuMjc2NjY2LCAwLjMzODY2NSwgMC4zOTI5MzYsIDAuNDcwNDM2Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDMyNTIyLCAwLjE0MTE1NywgMC4yNTM0MDYsIDAuMzM0NzgzLCAwLjQ2NTE0OSwgMC41Nzg3NjMsIDAuNzQyMTU0IiwgXAotICAgICAgICAgICIwLjAzMjQ5OCwgMC4xNDEyMzUsIDAuMjUzNDA3LCAwLjMzNDgsIDAuNDY1MTU5LCAwLjU3ODgyNywgMC43NDE3NTYiLCBcCi0gICAgICAgICAgIjAuMDMyNTI0LCAwLjE0MTE1NiwgMC4yNTMyNzQsIDAuMzM0Njc0LCAwLjQ2NTE0OCwgMC41Nzg3NDgsIDAuNzQxNjEzIiwgXAotICAgICAgICAgICIwLjAzMjQ0NiwgMC4xNDEyMzUsIDAuMjUzNDE1LCAwLjMzNDgwMywgMC40NjUxNDcsIDAuNTc4ODE4LCAwLjc0MTc1NiIsIFwKLSAgICAgICAgICAiMC4wMzI0NzEsIDAuMTQxMjg0LCAwLjI1MzYxNSwgMC4zMzQ4MzMsIDAuNDY1MTU3LCAwLjU3ODU0MSwgMC43NDE3NjMiLCBcCi0gICAgICAgICAgIjAuMDMyNjEsIDAuMTQxMjk3LCAwLjI1MzI5NCwgMC4zMzQ3OTIsIDAuNDY1MDU3LCAwLjU3ODg5OSwgMC43NDE2MDgiLCBcCi0gICAgICAgICAgIjAuMDMyNjg3LCAwLjE0MTI3MSwgMC4yNTM2NDQsIDAuMzM0NzkxLCAwLjQ2NTEyOCwgMC41NzkzNjksIDAuNzQyNzgiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODMyODUsIDAuMTQzMDM1LCAwLjE5NzI1LCAwLjIzNTc1NSwgMC4yOTczNDMsIDAuMzUxMjM4LCAwLjQyODE4OSIsIFwKLSAgICAgICAgICAiMC4wOTA3MjQsIDAuMTUwNTI2LCAwLjIwNDcwNiwgMC4yNDMyMzgsIDAuMzA0ODU2LCAwLjM1ODczNiwgMC40MzU2NzgiLCBcCi0gICAgICAgICAgIjAuMDk5Mzk4LCAwLjE1OTIwMywgMC4yMTMzNTcsIDAuMjUxODk2LCAwLjMxMzQ4NiwgMC4zNjczNjgsIDAuNDQ0MzYyIiwgXAotICAgICAgICAgICIwLjEwNjI3OSwgMC4xNjYwODksIDAuMjIwMjYzLCAwLjI1ODc4NSwgMC4zMjA0MiwgMC4zNzQyNzMsIDAuNDUxMjI1IiwgXAotICAgICAgICAgICIwLjExMTc4MywgMC4xNzE1NzUsIDAuMjI1NzA5LCAwLjI2NDIzNiwgMC4zMjU4OTUsIDAuMzc5Nzg2LCAwLjQ1NjY3MSIsIFwKLSAgICAgICAgICAiMC4xMTkzMzQsIDAuMTc5MDk5LCAwLjIzMzI3OCwgMC4yNzE3OSwgMC4zMzM0MTUsIDAuMzg3MjgzLCAwLjQ2NDI0NSIsIFwKLSAgICAgICAgICAiMC4xMjQ5NywgMC4xODQ3NiwgMC4yMzg5NDUsIDAuMjc3NDczLCAwLjMzOTA1NywgMC4zOTI5NzQsIDAuNDY5OTI5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDMyNzU3LCAwLjEzOTEzMSwgMC4yNDkyMDYsIDAuMzI4MTcxLCAwLjQ1NTg2NiwgMC41Njc3ODEsIDAuNzI2ODY1IiwgXAotICAgICAgICAgICIwLjAzMjY3NiwgMC4xMzkzNjcsIDAuMjQ5MTk4LCAwLjMyNzk5OSwgMC40NTU5ODQsIDAuNTY3Nzk5LCAwLjcyNjgzNyIsIFwKLSAgICAgICAgICAiMC4wMzI3NywgMC4xMzkzMzUsIDAuMjQ5MTk2LCAwLjMyODQ3NywgMC40NTUzODUsIDAuNTY3NzMxLCAwLjcyNzgzNiIsIFwKLSAgICAgICAgICAiMC4wMzI2OTEsIDAuMTM5MjM5LCAwLjI0ODk5MSwgMC4zMjg0MDcsIDAuNDU1OTk3LCAwLjU2NzAyOCwgMC43Mjc3MTIiLCBcCi0gICAgICAgICAgIjAuMDMyNzY0LCAwLjEzOTQxNiwgMC4yNDkwMjcsIDAuMzI4MTE1LCAwLjQ1NTk4OSwgMC41NjY4ODksIDAuNzI3Njk5IiwgXAotICAgICAgICAgICIwLjAzMjgxMSwgMC4xMzk0MDUsIDAuMjQ4OTE5LCAwLjMyODQzNCwgMC40NTU5OTIsIDAuNTY3MDQ3LCAwLjcyNjgzMSIsIFwKLSAgICAgICAgICAiMC4wMzI4MjQsIDAuMTM5MzU1LCAwLjI0OTE4OCwgMC4zMjgwMTEsIDAuNDU1Nzk2LCAwLjU2Nzg1MywgMC43Mjc4MzkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUzEiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDUxMDY3LCAwLjExMDI4NywgMC4xNjQ3MTQsIDAuMjAzNDk0LCAwLjI2NTUwMywgMC4zMTk3NjEsIDAuMzk3Mjg0IiwgXAotICAgICAgICAgICIwLjA1ODUyMSwgMC4xMTc3NTYsIDAuMTcyMTg4LCAwLjIxMDk3OCwgMC4yNzI5ODIsIDAuMzI3MjM4LCAwLjQwNDc2MyIsIFwKLSAgICAgICAgICAiMC4wNjgyNzYsIDAuMTI3NDg3LCAwLjE4MTkyNCwgMC4yMjA3MDgsIDAuMjgyNzIxLCAwLjMzNjk3NCwgMC40MTQ1MDgiLCBcCi0gICAgICAgICAgIjAuMDc3MjAzLCAwLjEzNjU2OSwgMC4xOTEwMiwgMC4yMjk4MSwgMC4yOTE3OTgsIDAuMzQ2MDY3LCAwLjQyMzYwNCIsIFwKLSAgICAgICAgICAiMC4wODQ3OTEsIDAuMTQ0NTQ0LCAwLjE5ODk0MiwgMC4yMzc3MDcsIDAuMjk5NzMzLCAwLjM1Mzk1NSwgMC40MzE0NzYiLCBcCi0gICAgICAgICAgIjAuMDk0ODYzLCAwLjE1NTMzOCwgMC4yMDk4MzQsIDAuMjQ4NTAzLCAwLjMxMDU1MSwgMC4zNjQ3MjgsIDAuNDQyMjczIiwgXAotICAgICAgICAgICIwLjEwMjI0MywgMC4xNjM1NDMsIDAuMjE4MDM0LCAwLjI1Njc3MiwgMC4zMTg3NjcsIDAuMzcyOTM2LCAwLjQ1MDM5MyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzMjE1MSwgMC4xNDEwNDcsIDAuMjUzNDg4LCAwLjMzNDczMiwgMC40NjUwOTQsIDAuNTc4OTAzLCAwLjc0MjkxOCIsIFwKLSAgICAgICAgICAiMC4wMzIwODksIDAuMTQxMDM0LCAwLjI1MzQ4MiwgMC4zMzQyNDYsIDAuNDY1MDksIDAuNTc4OTA0LCAwLjc0MjgzMyIsIFwKLSAgICAgICAgICAiMC4wMzIzNiwgMC4xNDEwOTcsIDAuMjUzNDk1LCAwLjMzNDc1NywgMC40NjUwNzMsIDAuNTc4ODcsIDAuNzQyNzk3IiwgXAotICAgICAgICAgICIwLjAzMzU5LCAwLjE0MTMxLCAwLjI1MzYxNiwgMC4zMzQ3OCwgMC40NjQ1NTksIDAuNTc4NzU0LCAwLjc0MTc0NiIsIFwKLSAgICAgICAgICAiMC4wMzUzNzcsIDAuMTQxOTQsIDAuMjUzNzczLCAwLjMzNDc0OSwgMC40NjUxNywgMC41NzkzOTUsIDAuNzQxOTI5IiwgXAotICAgICAgICAgICIwLjAzNzc1NSwgMC4xNDMwMzYsIDAuMjU0MjQsIDAuMzM0OTU5LCAwLjQ2NTM3OCwgMC41Nzk1MjksIDAuNzQyODY3IiwgXAotICAgICAgICAgICIwLjAzOTYzNCwgMC4xNDM5MTIsIDAuMjU0NzY0LCAwLjMzNTQ2OCwgMC40NjU1NzUsIDAuNTc5NjY3LCAwLjc0Mjk1NiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1NDg3NSwgMC4xMTQ2MywgMC4xNjg4MSwgMC4yMDczMzUsIDAuMjY4OTM2LCAwLjMyMjgwNiwgMC4zOTk3ODgiLCBcCi0gICAgICAgICAgIjAuMDYyMjk5LCAwLjEyMjA0OSwgMC4xNzYyMywgMC4yMTQ3NTYsIDAuMjc2MzU3LCAwLjMzMDIyNywgMC40MDcyMDIiLCBcCi0gICAgICAgICAgIjAuMDcxOTcyLCAwLjEzMTY5LCAwLjE4NTg0OCwgMC4yMjQzODUsIDAuMjg1OTk2LCAwLjMzOTg3NCwgMC40MTY4NCIsIFwKLSAgICAgICAgICAiMC4wODA5MTcsIDAuMTQwNzU5LCAwLjE5NDkyNCwgMC4yMzM0NDksIDAuMjk1MDg0LCAwLjM0ODk0MywgMC40MjU4OTQiLCBcCi0gICAgICAgICAgIjAuMDg4NTI2LCAwLjE0ODU4LCAwLjIwMjc2OSwgMC4yNDEyOTUsIDAuMzAyODczLCAwLjM1Njc1NSwgMC40MzM2OSIsIFwKLSAgICAgICAgICAiMC4wOTg1ODYsIDAuMTU5Mjk2LCAwLjIxMzU2MywgMC4yNTIwOTIsIDAuMzEzNjQxLCAwLjM2NzUzMiwgMC40NDQ0NSIsIFwKLSAgICAgICAgICAiMC4xMDYwMiwgMC4xNjcyNTcsIDAuMjIxNDkxLCAwLjI1OTk3NCwgMC4zMjE1MjUsIDAuMzc1MzYzLCAwLjQ1MjM1OSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzMjYxMywgMC4xMzkzNTEsIDAuMjQ5MDEsIDAuMzI4NDU0LCAwLjQ1NTkxNiwgMC41Njc2OTYsIDAuNzI2OTYiLCBcCi0gICAgICAgICAgIjAuMDMyNjE3LCAwLjEzOTI2OSwgMC4yNDg5OTgsIDAuMzI4NDU2LCAwLjQ1NTkyNiwgMC41Njc3MTcsIDAuNzI2ODU5IiwgXAotICAgICAgICAgICIwLjAzMjY3OCwgMC4xMzkzNjksIDAuMjQ5MjE0LCAwLjMyODM5NiwgMC40NTU5MjcsIDAuNTY3NzI4LCAwLjcyNzc1MiIsIFwKLSAgICAgICAgICAiMC4wMzM2NjgsIDAuMTM5NjE1LCAwLjI0OTMzMSwgMC4zMjg0NzUsIDAuNDU1MDA5LCAwLjU2NzA4NiwgMC43Mjc3MjYiLCBcCi0gICAgICAgICAgIjAuMDM1MTM0LCAwLjE0MDE0MywgMC4yNDkzNjMsIDAuMzI4NzQ4LCAwLjQ1NjA2MiwgMC41Njc3OTksIDAuNzI2ODQ5IiwgXAotICAgICAgICAgICIwLjAzNzMxLCAwLjE0MTEzOSwgMC4yNDk4NTgsIDAuMzI5MTU4LCAwLjQ1NjI1MSwgMC41Njc3OTYsIDAuNzI3Nzc2IiwgXAotICAgICAgICAgICIwLjAzOTEyNiwgMC4xNDE5MDQsIDAuMjUwNDE0LCAwLjMyOTE1NSwgMC40NTY0NTYsIDAuNTY3NDg4LCAwLjcyNjg0MiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTMSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjM2NTQsIDAuMTIyOTUxLCAwLjE3NzM3MSwgMC4yMTYxNTcsIDAuMjc4MTQzLCAwLjMzMjM5NSwgMC40MDk5MTMiLCBcCi0gICAgICAgICAgIjAuMDcxMDI2LCAwLjEzMDM4NywgMC4xODQ4LCAwLjIyMzU5MSwgMC4yODU1ODYsIDAuMzM5ODMyLCAwLjQxNzMzMSIsIFwKLSAgICAgICAgICAiMC4wNzczMDksIDAuMTM2NjMxLCAwLjE5MTAzMywgMC4yMjk4MzksIDAuMjkxODQ1LCAwLjM0NjA5MSwgMC40MjM2NDIiLCBcCi0gICAgICAgICAgIjAuMDgxNTU0LCAwLjE0MDkyOSwgMC4xOTUzNTQsIDAuMjM0MTM1LCAwLjI5NjE0NSwgMC4zNTAzODIsIDAuNDI3OTU4IiwgXAotICAgICAgICAgICIwLjA4NDk5OCwgMC4xNDQzNywgMC4xOTg4MTksIDAuMjM3NTk0LCAwLjI5OTYwNCwgMC4zNTM4MzQsIDAuNDMxMzI0IiwgXAotICAgICAgICAgICIwLjA4OTU3NiwgMC4xNDg5NjgsIDAuMjAzNDcyLCAwLjI0MjI2MiwgMC4zMDQzLCAwLjM1ODUwOSwgMC40MzU5NzgiLCBcCi0gICAgICAgICAgIjAuMDkzMDcsIDAuMTUyNDEyLCAwLjIwNjkzOCwgMC4yNDU3MzksIDAuMzA3NzU0LCAwLjM2MjAwMiwgMC40Mzk0NzQiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzIzOTQsIDAuMTQxMTY1LCAwLjI1MzM4NSwgMC4zMzQ3MzcsIDAuNDY0OTczLCAwLjU3ODczMSwgMC43NDE5MzYiLCBcCi0gICAgICAgICAgIjAuMDMyMzU2LCAwLjE0MTE2NCwgMC4yNTM1NDUsIDAuMzM0NzUxLCAwLjQ2NTA3MSwgMC41Nzg3NCwgMC43NDE1OTYiLCBcCi0gICAgICAgICAgIjAuMDMyMjg5LCAwLjE0MTE2MywgMC4yNTMzNzcsIDAuMzM0Nzg4LCAwLjQ2NTE0NywgMC41Nzg4NDMsIDAuNzQyODg1IiwgXAotICAgICAgICAgICIwLjAzMjIyNCwgMC4xNDEyNDMsIDAuMjUzNTg5LCAwLjMzNDgyNiwgMC40NjUxMjQsIDAuNTc4Nzk4LCAwLjc0MTc5MSIsIFwKLSAgICAgICAgICAiMC4wMzIyMTgsIDAuMTQxMjY3LCAwLjI1MzU5NSwgMC4zMzQ0ODQsIDAuNDY1MDcxLCAwLjU3OTI5MiwgMC43NDIwNTYiLCBcCi0gICAgICAgICAgIjAuMDMyMTgsIDAuMTQxMTc4LCAwLjI1MzU4MSwgMC4zMzQ1MywgMC40NjQ1MTUsIDAuNTc5MjIzLCAwLjc0MjYyOCIsIFwKLSAgICAgICAgICAiMC4wMzIyMjYsIDAuMTQxMjE1LCAwLjI1MzQwNiwgMC4zMzQ0ODEsIDAuNDY0NTEyLCAwLjU3ODg2NSwgMC43NDE3MjMiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjYyNjgsIDAuMTI2MTIxLCAwLjE4MDMwNiwgMC4yMTg4MywgMC4yODA0MzEsIDAuMzM0Mjk4LCAwLjQxMTI1OSIsIFwKLSAgICAgICAgICAiMC4wNzM3NDksIDAuMTMzNTgsIDAuMTg3NzYxLCAwLjIyNjI4NiwgMC4yODc4ODQsIDAuMzQxNzUyLCAwLjQxODcwOCIsIFwKLSAgICAgICAgICAiMC4wODAwODgsIDAuMTM5OTA2LCAwLjE5NDA2OCwgMC4yMzI1OTMsIDAuMjk0MTgxLCAwLjM0ODA3MywgMC40MjUwMjYiLCBcCi0gICAgICAgICAgIjAuMDg0NTc5LCAwLjE0NDQ3OSwgMC4xOTg2NTIsIDAuMjM3MTc4LCAwLjI5ODc2NiwgMC4zNTI2NDksIDAuNDI5NjA1IiwgXAotICAgICAgICAgICIwLjA4ODM1LCAwLjE0ODI0NSwgMC4yMDI0NTgsIDAuMjQwOTgzLCAwLjMwMjU3LCAwLjM1NjQ1MSwgMC40MzM0MTQiLCBcCi0gICAgICAgICAgIjAuMDkzMzcyLCAwLjE1MzIxNywgMC4yMDc0NTUsIDAuMjQ1OTkxLCAwLjMwNzU4NywgMC4zNjE0NjUsIDAuNDM4NDAxIiwgXAotICAgICAgICAgICIwLjA5NzE1MSwgMC4xNTY5NzQsIDAuMjExMjAxLCAwLjI0OTczNywgMC4zMTEzNDIsIDAuMzY1MjA3LCAwLjQ0MjE4MiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzMjcsIDAuMTM5NDAzLCAwLjI0ODkzMywgMC4zMjg0NzksIDAuNDU1OTQ5LCAwLjU2NzcxNSwgMC43MjY5MjgiLCBcCi0gICAgICAgICAgIjAuMDMyNzU4LCAwLjEzOTM4NSwgMC4yNDkxNSwgMC4zMjg0NSwgMC40NTU5MjQsIDAuNTY3NzA3LCAwLjcyNjkwNSIsIFwKLSAgICAgICAgICAiMC4wMzI2MTEsIDAuMTM5MzU3LCAwLjI0OTIwNCwgMC4zMjg0MTgsIDAuNDU1ODI4LCAwLjU2NzA5NSwgMC43MjY5NTkiLCBcCi0gICAgICAgICAgIjAuMDMyNTc1LCAwLjEzOTM5NCwgMC4yNDkwOCwgMC4zMjg0NzEsIDAuNDU1ODI0LCAwLjU2NzY5NywgMC43MjY4ODUiLCBcCi0gICAgICAgICAgIjAuMDMyNTYsIDAuMTM5NDA3LCAwLjI0OTIxOSwgMC4zMjg1NDksIDAuNDU1ODUzLCAwLjU2NzAzOCwgMC43MjY2MDUiLCBcCi0gICAgICAgICAgIjAuMDMyNTUyLCAwLjEzOTI5MywgMC4yNDkwMiwgMC4zMjgxLCAwLjQ1NTI3MywgMC41NjY5NDYsIDAuNzI3NDY0IiwgXAotICAgICAgICAgICIwLjAzMjU4OSwgMC4xMzkyMzMsIDAuMjQ4ODEyLCAwLjMyODExNiwgMC40NTUzMzYsIDAuNTY2OTEzLCAwLjcyNjY1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDk3NDgsIDAuMDA5NzM2LCAwLjAwOTc0OCwgMC4wMDk3NTIsIDAuMDA5NzU4LCAwLjAwOTc1OSwgMC4wMDk3NjEiLCBcCi0gICAgICAgICAgIjAuMDA5NzM1LCAwLjAwOTcyMSwgMC4wMDk3MzEsIDAuMDA5NzM1LCAwLjAwOTc0LCAwLjAwOTc0MiwgMC4wMDk3NDIiLCBcCi0gICAgICAgICAgIjAuMDA5NzM5LCAwLjAwOTczLCAwLjAwOTc0MywgMC4wMDk3NDQsIDAuMDA5NzQ4LCAwLjAwOTc1MSwgMC4wMDk3NTIiLCBcCi0gICAgICAgICAgIjAuMDA5NzY2LCAwLjAwOTc1OSwgMC4wMDk3NzEsIDAuMDA5Nzc3LCAwLjAwOTc4NCwgMC4wMDk3ODUsIDAuMDA5Nzg0IiwgXAotICAgICAgICAgICIwLjAwOTgzNSwgMC4wMDk4MTgsIDAuMDA5ODI4LCAwLjAwOTgzMiwgMC4wMDk4MzcsIDAuMDA5ODM4LCAwLjAwOTg0MSIsIFwKLSAgICAgICAgICAiMC4wMDk5NjEsIDAuMDA5OTM1LCAwLjAwOTk0NCwgMC4wMDk5NDUsIDAuMDA5OTQ5LCAwLjAwOTk1MiwgMC4wMDk5NTIiLCBcCi0gICAgICAgICAgIjAuMDEwMDg2LCAwLjAxMDA1NywgMC4wMTAwNjIsIDAuMDEwMDY0LCAwLjAxMDA3LCAwLjAxMDA2OCwgMC4wMTAwNyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA4MjkxLCAwLjAwODM3LCAwLjAwODQwNywgMC4wMDg0MiwgMC4wMDg0MzIsIDAuMDA4NDM4LCAwLjAwODQ0NCIsIFwKLSAgICAgICAgICAiMC4wMDgyNjUsIDAuMDA4MzQzLCAwLjAwODM4LCAwLjAwODM5MywgMC4wMDg0MDUsIDAuMDA4NDExLCAwLjAwODQxOCIsIFwKLSAgICAgICAgICAiMC4wMDgyOCwgMC4wMDgzNTMsIDAuMDA4Mzg5LCAwLjAwODQwMywgMC4wMDg0MTUsIDAuMDA4NDIxLCAwLjAwODQyNyIsIFwKLSAgICAgICAgICAiMC4wMDgyOTUsIDAuMDA4MzgxLCAwLjAwODQyMSwgMC4wMDg0MzUsIDAuMDA4NDQ4LCAwLjAwODQ1NSwgMC4wMDg0NjIiLCBcCi0gICAgICAgICAgIjAuMDA4Mzc4LCAwLjAwODQ0OCwgMC4wMDg0ODUsIDAuMDA4NDk5LCAwLjAwODUxMSwgMC4wMDg1MTgsIDAuMDA4NTI1IiwgXAotICAgICAgICAgICIwLjAwODUwNiwgMC4wMDg1NywgMC4wMDg2MDcsIDAuMDA4NjE4LCAwLjAwODYzLCAwLjAwODYzNiwgMC4wMDg2NDEiLCBcCi0gICAgICAgICAgIjAuMDA4NjMxLCAwLjAwODY5LCAwLjAwODcyNywgMC4wMDg3MzksIDAuMDA4NzUsIDAuMDA4NzU2LCAwLjAwODc2MiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA5OTAxLCAwLjAwOTg4NiwgMC4wMDk4OTUsIDAuMDA5ODk4LCAwLjAwOTkwMiwgMC4wMDk5MDMsIDAuMDA5OTA0IiwgXAotICAgICAgICAgICIwLjAwOTg3OCwgMC4wMDk4NjcsIDAuMDA5ODc4LCAwLjAwOTg4MSwgMC4wMDk4ODQsIDAuMDA5ODg3LCAwLjAwOTg4OSIsIFwKLSAgICAgICAgICAiMC4wMDk4OTMsIDAuMDA5ODc4LCAwLjAwOTg5MSwgMC4wMDk4OTUsIDAuMDA5ODk0LCAwLjAwOTg5NiwgMC4wMDk4OTciLCBcCi0gICAgICAgICAgIjAuMDA5OTE5LCAwLjAwOTkwOSwgMC4wMDk5MjEsIDAuMDA5OTI2LCAwLjAwOTkzMiwgMC4wMDk5MzIsIDAuMDA5OTMyIiwgXAotICAgICAgICAgICIwLjAwOTk4LCAwLjAwOTk2NCwgMC4wMDk5NzUsIDAuMDA5OTc5LCAwLjAwOTk4OCwgMC4wMDk5ODcsIDAuMDA5OTg3IiwgXAotICAgICAgICAgICIwLjAxMDExLCAwLjAxMDA4NiwgMC4wMTAwOTQsIDAuMDEwMDk3LCAwLjAxMDEwNSwgMC4wMTAxMDEsIDAuMDEwMTAyIiwgXAotICAgICAgICAgICIwLjAxMDIzNCwgMC4wMTAyMDYsIDAuMDEwMjE2LCAwLjAxMDIxOSwgMC4wMTAyMjIsIDAuMDEwMjIzLCAwLjAxMDIyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA4MDYsIDAuMDA4MTQxLCAwLjAwODE3NywgMC4wMDgxODksIDAuMDA4MiwgMC4wMDgyMDcsIDAuMDA4MjEyIiwgXAotICAgICAgICAgICIwLjAwODAzOCwgMC4wMDgxMTUsIDAuMDA4MTUxLCAwLjAwODE2NCwgMC4wMDgxNzUsIDAuMDA4MTgxLCAwLjAwODE4NiIsIFwKLSAgICAgICAgICAiMC4wMDgwNTYsIDAuMDA4MTMyLCAwLjAwODE2OCwgMC4wMDgxOCwgMC4wMDgxOTEsIDAuMDA4MTk3LCAwLjAwODIwMyIsIFwKLSAgICAgICAgICAiMC4wMDgxMDQsIDAuMDA4MTcyLCAwLjAwODIwOSwgMC4wMDgyMjIsIDAuMDA4MjMzLCAwLjAwODI0LCAwLjAwODI0NiIsIFwKLSAgICAgICAgICAiMC4wMDgxNywgMC4wMDgyMzgsIDAuMDA4Mjc2LCAwLjAwODI5LCAwLjAwODMwMSwgMC4wMDgzMDgsIDAuMDA4MzE0IiwgXAotICAgICAgICAgICIwLjAwODMxLCAwLjAwODM2OCwgMC4wMDg0MDUsIDAuMDA4NDE2LCAwLjAwODQyOCwgMC4wMDg0MzQsIDAuMDA4NDM5IiwgXAotICAgICAgICAgICIwLjAwODQzMiwgMC4wMDg0OTcsIDAuMDA4NTM3LCAwLjAwODU0NywgMC4wMDg1NTgsIDAuMDA4NTY1LCAwLjAwODU3MSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA4NTczLCAwLjAwODY1NiwgMC4wMDg2ODQsIDAuMDA4Njk0LCAwLjAwODcwMywgMC4wMDg3MDgsIDAuMDA4NzEzIiwgXAotICAgICAgICAgICIwLjAwODU3NywgMC4wMDg2NTYsIDAuMDA4Njg1LCAwLjAwODY5NSwgMC4wMDg3MDUsIDAuMDA4NzA4LCAwLjAwODcxMiIsIFwKLSAgICAgICAgICAiMC4wMDg2MzksIDAuMDA4NzI1LCAwLjAwODc1NiwgMC4wMDg3NjYsIDAuMDA4Nzc3LCAwLjAwODc4LCAwLjAwODc4NiIsIFwKLSAgICAgICAgICAiMC4wMDg3NDEsIDAuMDA4ODI5LCAwLjAwODg2LCAwLjAwODg3LCAwLjAwODg4NCwgMC4wMDg4ODUsIDAuMDA4ODg5IiwgXAotICAgICAgICAgICIwLjAwODg4MiwgMC4wMDg5NDksIDAuMDA4OTgsIDAuMDA4OTkxLCAwLjAwOTAwNSwgMC4wMDkwMDcsIDAuMDA5MDA5IiwgXAotICAgICAgICAgICIwLjAwOTA5MSwgMC4wMDkxNjMsIDAuMDA5MTkyLCAwLjAwOTIwMiwgMC4wMDkyMTEsIDAuMDA5MjE0LCAwLjAwOTIyMSIsIFwKLSAgICAgICAgICAiMC4wMDkyOTQsIDAuMDA5MzU0LCAwLjAwOTM4NywgMC4wMDkzOTgsIDAuMDA5NDA1LCAwLjAwOTQxMSwgMC4wMDk0MTYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNzg5NSwgMC4wMDgsIDAuMDA4MDQsIDAuMDA4MDU0LCAwLjAwODA2NywgMC4wMDgwNzQsIDAuMDA4MDgiLCBcCi0gICAgICAgICAgIjAuMDA3ODk5LCAwLjAwNzk5OSwgMC4wMDgwNCwgMC4wMDgwNTQsIDAuMDA4MDY3LCAwLjAwODA3MywgMC4wMDgwOCIsIFwKLSAgICAgICAgICAiMC4wMDc5NTcsIDAuMDA4MDc1LCAwLjAwODExNywgMC4wMDgxMzEsIDAuMDA4MTQ0LCAwLjAwODE1MiwgMC4wMDgxNTgiLCBcCi0gICAgICAgICAgIjAuMDA4MDY3LCAwLjAwODE4MSwgMC4wMDgyMjUsIDAuMDA4MjQsIDAuMDA4MjU0LCAwLjAwODI2MSwgMC4wMDgyNjgiLCBcCi0gICAgICAgICAgIjAuMDA4MjA3LCAwLjAwODMwNiwgMC4wMDgzNTMsIDAuMDA4MzY3LCAwLjAwODM4LCAwLjAwODM4NywgMC4wMDgzOTMiLCBcCi0gICAgICAgICAgIjAuMDA4NDIzLCAwLjAwODUyMSwgMC4wMDg1NjQsIDAuMDA4NTc5LCAwLjAwODU5NSwgMC4wMDg2MDIsIDAuMDA4NjA2IiwgXAotICAgICAgICAgICIwLjAwODY0NywgMC4wMDg3MjMsIDAuMDA4NzY3LCAwLjAwODc4MiwgMC4wMDg3OTQsIDAuMDA4ODAxLCAwLjAwODgwOCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlMwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwOTM4MiwgMC4wMDkzNjksIDAuMDA5Mzc4LCAwLjAwOTM4LCAwLjAwOTM4NSwgMC4wMDkzODYsIDAuMDA5Mzg1IiwgXAotICAgICAgICAgICIwLjAwOTM4OSwgMC4wMDkzNzgsIDAuMDA5Mzg3LCAwLjAwOTM4OSwgMC4wMDkzOTMsIDAuMDA5Mzk1LCAwLjAwOTM5NSIsIFwKLSAgICAgICAgICAiMC4wMDk0ODksIDAuMDA5NDY5LCAwLjAwOTQ3OSwgMC4wMDk0OCwgMC4wMDk0ODIsIDAuMDA5NDgzLCAwLjAwOTQ4NCIsIFwKLSAgICAgICAgICAiMC4wMDk1ODIsIDAuMDA5NTgzLCAwLjAwOTU5OCwgMC4wMDk2MDEsIDAuMDA5NjA2LCAwLjAwOTYwNiwgMC4wMDk2MDgiLCBcCi0gICAgICAgICAgIjAuMDA5NzI2LCAwLjAwOTcxOSwgMC4wMDk3MywgMC4wMDk3MjksIDAuMDA5NzM1LCAwLjAwOTczNywgMC4wMDk3MzciLCBcCi0gICAgICAgICAgIjAuMDA5OTU2LCAwLjAwOTk0NCwgMC4wMDk5NTIsIDAuMDA5OTU1LCAwLjAwOTk1NywgMC4wMDk5NTgsIDAuMDA5OTU5IiwgXAotICAgICAgICAgICIwLjAxMDE2MSwgMC4wMTAxNDgsIDAuMDEwMTU3LCAwLjAxMDE1OCwgMC4wMTAxNjIsIDAuMDEwMTY1LCAwLjAxMDE2OCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEwMzYxLCAwLjAxMDQzNywgMC4wMTA0NzEsIDAuMDEwNDgzLCAwLjAxMDQ5NCwgMC4wMTA1LCAwLjAxMDUwNSIsIFwKLSAgICAgICAgICAiMC4wMTAzODQsIDAuMDEwNDU0LCAwLjAxMDQ4OSwgMC4wMTA1MDEsIDAuMDEwNTEyLCAwLjAxMDUxNywgMC4wMTA1MjMiLCBcCi0gICAgICAgICAgIjAuMDEwNDY2LCAwLjAxMDU0NCwgMC4wMTA1NzgsIDAuMDEwNTksIDAuMDEwNiwgMC4wMTA2MDYsIDAuMDEwNjExIiwgXAotICAgICAgICAgICIwLjAxMDU3NSwgMC4wMTA2NTUsIDAuMDEwNjkzLCAwLjAxMDcwNiwgMC4wMTA3MTcsIDAuMDEwNzIzLCAwLjAxMDcyOCIsIFwKLSAgICAgICAgICAiMC4wMTA3MTEsIDAuMDEwNzkyLCAwLjAxMDgyOSwgMC4wMTA4NDEsIDAuMDEwODUyLCAwLjAxMDg1OCwgMC4wMTA4NjMiLCBcCi0gICAgICAgICAgIjAuMDEwOTc0LCAwLjAxMTA0OCwgMC4wMTEwODksIDAuMDExMDk0LCAwLjAxMTEwOSwgMC4wMTExMTQsIDAuMDExMTE5IiwgXAotICAgICAgICAgICIwLjAxMTE0MywgMC4wMTEyMTYsIDAuMDExMjUzLCAwLjAxMTI2MiwgMC4wMTEyNzQsIDAuMDExMjc5LCAwLjAxMTI4OCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlMxIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwODY4OSwgMC4wMDg3MDQsIDAuMDA4NzI0LCAwLjAwODczMywgMC4wMDg3MzgsIDAuMDA4NzQxLCAwLjAwODc0OCIsIFwKLSAgICAgICAgICAiMC4wMDg3MTQsIDAuMDA4NzM2LCAwLjAwODc1MywgMC4wMDg3NiwgMC4wMDg3NjcsIDAuMDA4NzcsIDAuMDA4NzczIiwgXAotICAgICAgICAgICIwLjAwODgwMywgMC4wMDg4MTksIDAuMDA4ODM2LCAwLjAwODg0MywgMC4wMDg4NTEsIDAuMDA4ODU0LCAwLjAwODg1NSIsIFwKLSAgICAgICAgICAiMC4wMDg5MDUsIDAuMDA4OTI2LCAwLjAwODk0NCwgMC4wMDg5NSwgMC4wMDg5NTcsIDAuMDA4OTYsIDAuMDA4OTYzIiwgXAotICAgICAgICAgICIwLjAwOTAyOSwgMC4wMDkwNDksIDAuMDA5MDY5LCAwLjAwOTA3NSwgMC4wMDkwODEsIDAuMDA5MDg0LCAwLjAwOTA4OCIsIFwKLSAgICAgICAgICAiMC4wMDkzLCAwLjAwOTMxOSwgMC4wMDkzMzQsIDAuMDA5MzQyLCAwLjAwOTM0NiwgMC4wMDkzNDksIDAuMDA5MzU1IiwgXAotICAgICAgICAgICIwLjAwOTQ4NywgMC4wMDk1LCAwLjAwOTUyMSwgMC4wMDk1MjcsIDAuMDA5NTMyLCAwLjAwOTUzNSwgMC4wMDk1MzgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNzI0NywgMC4wMDczNDksIDAuMDA3MzkyLCAwLjAwNzQwNywgMC4wMDc0MjEsIDAuMDA3NDI5LCAwLjAwNzQzNiIsIFwKLSAgICAgICAgICAiMC4wMDcyNTYsIDAuMDA3MzU5LCAwLjAwNzQwNCwgMC4wMDc0MTksIDAuMDA3NDMzLCAwLjAwNzQ0MSwgMC4wMDc0NDciLCBcCi0gICAgICAgICAgIjAuMDA3MzQxLCAwLjAwNzQ0OCwgMC4wMDc0OTEsIDAuMDA3NTA1LCAwLjAwNzUyLCAwLjAwNzUyNywgMC4wMDc1MzQiLCBcCi0gICAgICAgICAgIjAuMDA3NDUsIDAuMDA3NTYzLCAwLjAwNzYwOSwgMC4wMDc2MjQsIDAuMDA3NjM4LCAwLjAwNzY0NiwgMC4wMDc2NTMiLCBcCi0gICAgICAgICAgIjAuMDA3NTczLCAwLjAwNzY4NCwgMC4wMDc3MjksIDAuMDA3NzQ0LCAwLjAwNzc1OCwgMC4wMDc3NjYsIDAuMDA3NzczIiwgXAotICAgICAgICAgICIwLjAwNzc5MiwgMC4wMDc5MDcsIDAuMDA3OTQ5LCAwLjAwNzk2NSwgMC4wMDc5OCwgMC4wMDc5ODcsIDAuMDA3OTk1IiwgXAotICAgICAgICAgICIwLjAwODAwMywgMC4wMDgwOTgsIDAuMDA4MTQ3LCAwLjAwODE2MiwgMC4wMDgxNzYsIDAuMDA4MTgsIDAuMDA4MTg4Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBNWEk0WDIgKgotICogLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChNWEk0WDIpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC44NjUwNzg7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY5ODQyMTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2OTczMjU7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjk4NDIxOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDk2NCwgMC4wMDA5MzksIDAuMDAwOTUyLCAwLjAwMDk5NCwgMC4wMDEwNTMsIDAuMDAxMTczLCAwLjAwMTMwMSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzE0NiwgMC4wMDMxMzEsIDAuMDAzMTQ1LCAwLjAwMzE4MywgMC4wMDMyNDEsIDAuMDAzMzU3LCAwLjAwMzQ3NyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjQ1NDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2NDQwMDE7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjQ1NDsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyODgsIDAuMDAwMjksIDAuMDAwMjkxLCAwLjAwMDI5MSwgMC4wMDAyOTEsIDAuMDAwMjkyLCAwLjAwMDI5MiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDMxMiwgMC4wMDAzMDIsIDAuMDAwMywgMC4wMDAyOTksIDAuMDAwMjk5LCAwLjAwMDI5OCwgMC4wMDAyOTgiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEMpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYyMjE5OTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MjEwOTE7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjIyMTk5OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTMwNSwgMC4wMDEyNzgsIDAuMDAxMjg1LCAwLjAwMTMyLCAwLjAwMTM3NCwgMC4wMDE0ODMsIDAuMDAxNjAyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzMTk0LCAwLjAwMzE3NywgMC4wMDMxODIsIDAuMDAzMjA3LCAwLjAwMzI1MywgMC4wMDMzNSwgMC4wMDM0NTkiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEQpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYyMzU5NTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MjI0MTM7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjIzNTk1OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDI4NywgMC4wMDAyOSwgMC4wMDAyOTEsIDAuMDAwMjkxLCAwLjAwMDI5MSwgMC4wMDAyOTIsIDAuMDAwMjkyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzA5LCAwLjAwMDMsIDAuMDAwMjk5LCAwLjAwMDI5OSwgMC4wMDAyOTgsIDAuMDAwMjk4LCAwLjAwMDI5OCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUzApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMjIzNjY0OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMjIzNjY0OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMjIzNjU0OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDYxNiwgMC4wMDA2MTMsIDAuMDAwNjg2LCAwLjAwMDc4NiwgMC4wMDA4OTMsIDAuMDAxMDksIDAuMDAxMjc0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA0NTYyLCAwLjAwNDU2LCAwLjAwNDYxNywgMC4wMDQ3MzQsIDAuMDA0ODAyLCAwLjAwNDk4MywgMC4wMDUxNTgiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFMxKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE1MjI2NTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE1MjE5OTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE1MjI2NTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA0NzYsIDAuMDAwNDc1LCAwLjAwMDU1MiwgMC4wMDA2NTQsIDAuMDAwNzcsIDAuMDAwOTk2LCAwLjAwMTE4NyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzA3NywgMC4wMDMwODYsIDAuMDAzMTU5LCAwLjAwMzI2LCAwLjAwMzM4MiwgMC4wMDM1OSwgMC4wMDM3ODQiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC42NzE0MDI7Ci0gICAgZnVuY3Rpb24gOiAiKCEoKFMxICgoUzAgRCkgKyAoIVMwIEMpKSkgKyAoIVMxICgoUzAgQikgKyAoIVMwIEEpKSkpKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk0MjM5LCAwLjE3NDc4NywgMC4yMzc0LCAwLjMxNTYsIDAuMzkzODIsIDAuNDcxOTA1LCAwLjU1MDA3MSIsIFwKLSAgICAgICAgICAiMC4xMDAwMjYsIDAuMTgwNTc2LCAwLjI0MzE4NywgMC4zMjEzNjQsIDAuMzk5NjA1LCAwLjQ3NzY5LCAwLjU1NTgzNyIsIFwKLSAgICAgICAgICAiMC4xMDY0NDIsIDAuMTg3MDAxLCAwLjI0OTU5MSwgMC4zMjc3ODMsIDAuNDA1OTkyLCAwLjQ4NDEyOSwgMC41NjIyMjQiLCBcCi0gICAgICAgICAgIjAuMTExODEzLCAwLjE5MjM2MiwgMC4yNTQ5OCwgMC4zMzMxNDcsIDAuNDExNDA5LCAwLjQ4OTQ4NywgMC41Njc1OTUiLCBcCi0gICAgICAgICAgIjAuMTE2MjM4LCAwLjE5Njc5NSwgMC4yNTk0MSwgMC4zMzc1OTMsIDAuNDE1NzUzLCAwLjQ5NCwgMC41NzIwNjMiLCBcCi0gICAgICAgICAgIjAuMTIyMjI2LCAwLjIwMjgzMSwgMC4yNjU0NDgsIDAuMzQzNjU5LCAwLjQyMTg1NCwgMC40OTk5NCwgMC41NzgwNTgiLCBcCi0gICAgICAgICAgIjAuMTI2ODE5LCAwLjIwNzM2NiwgMC4yNzAwMDEsIDAuMzQ4MTcyLCAwLjQyNjMzNiwgMC41MDQ0ODMsIDAuNTgyNjIxIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0NzAxOCwgMC4yMDc4NjYsIDAuMzQwNDA3LCAwLjUwNjIxNiwgMC42NzIzOTksIDAuODQwMDE4LCAxLjAwNTY0IiwgXAotICAgICAgICAgICIwLjA0NzAxMiwgMC4yMDc3MjksIDAuMzQwNDA1LCAwLjUwNjY4NCwgMC42NzIzOTYsIDAuODQwMDIsIDEuMDA1NzkiLCBcCi0gICAgICAgICAgIjAuMDQ3MDI4LCAwLjIwNzg1NSwgMC4zNDAyMDcsIDAuNTA2NjgzLCAwLjY3MTk4MSwgMC44NCwgMS4wMDY4NCIsIFwKLSAgICAgICAgICAiMC4wNDY5NzMsIDAuMjA3ODY1LCAwLjM0MDM5NywgMC41MDY2NDIsIDAuNjcyNDMsIDAuODQwMDAzLCAxLjAwNTg5IiwgXAotICAgICAgICAgICIwLjA0NzA1LCAwLjIwNzg3NywgMC4zNDAzODYsIDAuNTA2NjM3LCAwLjY3MjcxMSwgMC44Mzg4NTMsIDEuMDA1OTYiLCBcCi0gICAgICAgICAgIjAuMDQ3MjY2LCAwLjIwNzkxNiwgMC4zNDAzNzQsIDAuNTA2NjQ2LCAwLjY3MjQwMSwgMC44Mzk5MzMsIDEuMDA1OTMiLCBcCi0gICAgICAgICAgIjAuMDQ3MTY4LCAwLjIwNzkzNiwgMC4zNDAzOSwgMC41MDYxNDcsIDAuNjczMTQyLCAwLjgzOTg3NSwgMS4wMDY2NiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTU1ODgsIDAuMTc0MjY1LCAwLjIzNDQ2NiwgMC4zMDk2NTIsIDAuMzg0ODE3LCAwLjQ2MDAzMiwgMC41MzUxMjEiLCBcCi0gICAgICAgICAgIjAuMTAxNzk3LCAwLjE4MDQwNiwgMC4yNDA2MDYsIDAuMzE1NzkzLCAwLjM5MDk1NSwgMC40NjYxMzIsIDAuNTQxMjYzIiwgXAotICAgICAgICAgICIwLjEwODg1MywgMC4xODc0MjgsIDAuMjQ3NjM0LCAwLjMyMjg0OCwgMC4zOTc5NzksIDAuNDczMTkxLCAwLjU0ODMzOCIsIFwKLSAgICAgICAgICAiMC4xMTQ2NTYsIDAuMTkzMjMyLCAwLjI1MzQ1NCwgMC4zMjg2NDYsIDAuNDAzODU5LCAwLjQ3ODk3NywgMC41NTQxMjMiLCBcCi0gICAgICAgICAgIjAuMTE5NDU0LCAwLjE5ODA2MiwgMC4yNTgyNzgsIDAuMzMzNDU3LCAwLjQwODYyNywgMC40ODM3NjksIDAuNTU4OTE4IiwgXAotICAgICAgICAgICIwLjEyNjE5NiwgMC4yMDQ3ODksIDAuMjY0OTk4LCAwLjM0MDE4MywgMC40MTUzNDQsIDAuNDkwNTAyLCAwLjU2NTY3NSIsIFwKLSAgICAgICAgICAiMC4xMzEyNTIsIDAuMjA5ODM1LCAwLjI3MDA3MSwgMC4zNDUyODIsIDAuNDIwNDQ0LCAwLjQ5NTU4OCwgMC41NzA3MzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQ1OTI2LCAwLjE5NTk2NiwgMC4zMTkwMDksIDAuNDc0ODc1LCAwLjYyOTk2MywgMC43ODUzNjIsIDAuOTQyOTMxIiwgXAotICAgICAgICAgICIwLjA0NjAzNiwgMC4xOTU5NywgMC4zMTk0NzIsIDAuNDc0ODU4LCAwLjYyOTkxOCwgMC43ODU1ODksIDAuOTQyODk0IiwgXAotICAgICAgICAgICIwLjA0NjA3MSwgMC4xOTU5NzQsIDAuMzE5NDg2LCAwLjQ3NDk2NCwgMC42Mjk5NTUsIDAuNzg1NDcsIDAuOTQxODMyIiwgXAotICAgICAgICAgICIwLjA0NjAyNCwgMC4xOTU4ODMsIDAuMzE5NDQsIDAuNDc0NzcsIDAuNjI5NTQ0LCAwLjc4NTQ3MiwgMC45NDI5MDEiLCBcCi0gICAgICAgICAgIjAuMDQ2MDkyLCAwLjE5NTk5NiwgMC4zMTk1MDIsIDAuNDc0MjksIDAuNjI5OTU0LCAwLjc4NTgxNiwgMC45NDI4MTQiLCBcCi0gICAgICAgICAgIjAuMDQ2MTcxLCAwLjE5NTk0LCAwLjMxOTQzOSwgMC40NzQyOTgsIDAuNjMwNjk0LCAwLjc4NjczNCwgMC45NDI5NzciLCBcCi0gICAgICAgICAgIjAuMDQ2MTAzLCAwLjE5NTk2NCwgMC4zMTk0NjksIDAuNDc0OTU1LCAwLjYzMDc5NCwgMC43ODY3ODIsIDAuOTQyOTE1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5NTUyOCwgMC4xNzYwODMsIDAuMjM4NzAxLCAwLjMxNjg2OCwgMC4zOTUxMzEsIDAuNDczMDM2LCAwLjU1MTMxNSIsIFwKLSAgICAgICAgICAiMC4xMDE0NCwgMC4xODE5OTIsIDAuMjQ0NjAxLCAwLjMyMjc4NCwgMC40MDEwMjEsIDAuNDc5MTA0LCAwLjU1NzI3IiwgXAotICAgICAgICAgICIwLjEwNzc4NywgMC4xODgzNDYsIDAuMjUwOTQ1LCAwLjMyOTEyNywgMC40MDcyODgsIDAuNDg1NDYsIDAuNTYzNTkxIiwgXAotICAgICAgICAgICIwLjExMzI4MywgMC4xOTM4MDIsIDAuMjU2NDE5LCAwLjMzNDY4MiwgMC40MTI3LCAwLjQ5MDkyNSwgMC41NjkxIiwgXAotICAgICAgICAgICIwLjExNzY2NiwgMC4xOTgyMjUsIDAuMjYwODQyLCAwLjMzOTAzNiwgMC40MTcyNjIsIDAuNDk1MzQ3LCAwLjU3MzUyOCIsIFwKLSAgICAgICAgICAiMC4xMjM2NjYsIDAuMjA0MjQ5LCAwLjI2Njg1MywgMC4zNDUwMjgsIDAuNDIzMjc0LCAwLjUwMTM2NSwgMC41Nzk0NjEiLCBcCi0gICAgICAgICAgIjAuMTI4MjIzLCAwLjIwODc2LCAwLjI3MTM3LCAwLjM0OTU2NSwgMC40Mjc3NTIsIDAuNTA1ODU1LCAwLjU4Mzk5MiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDY5OTQsIDAuMjA3ODY0LCAwLjM0MDM5NSwgMC41MDY2NCwgMC42NzI0MzgsIDAuODM4ODg5LCAxLjAwNTg4IiwgXAotICAgICAgICAgICIwLjA0NzAyMiwgMC4yMDc4NywgMC4zNDA0MDYsIDAuNTA2MjMyLCAwLjY3MjM5NCwgMC44NDAwMTcsIDEuMDA1NjYiLCBcCi0gICAgICAgICAgIjAuMDQ3MDMsIDAuMjA3ODgsIDAuMzQwNDA2LCAwLjUwNjY4NCwgMC42NzMyOTUsIDAuODM4NzQsIDEuMDA2MTEiLCBcCi0gICAgICAgICAgIjAuMDQ2OTg4LCAwLjIwNzg2NywgMC4zNDA0MDQsIDAuNTA2MDA5LCAwLjY3MjY5OCwgMC44NDAwMTEsIDEuMDA2OCIsIFwKLSAgICAgICAgICAiMC4wNDcwMSwgMC4yMDc4ODYsIDAuMzQwMzk2LCAwLjUwNjI5NiwgMC42NzI0MDEsIDAuODM5OTg4LCAxLjAwNTciLCBcCi0gICAgICAgICAgIjAuMDQ3MjY0LCAwLjIwNzkwOSwgMC4zNDAzODMsIDAuNTA2NjYyLCAwLjY3MjM0MSwgMC44Mzk5MzcsIDEuMDA2NzciLCBcCi0gICAgICAgICAgIjAuMDQ3MTc0LCAwLjIwNzg5NywgMC4zNDAwODcsIDAuNTA2NTk0LCAwLjY3MzE4OCwgMC44Mzk5MDgsIDEuMDA1ODgiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk2NTE4LCAwLjE3NTA0NiwgMC4yMzUyNzUsIDAuMzEwNDYyLCAwLjM4NTYyLCAwLjQ2MDc2NywgMC41MzU5MzciLCBcCi0gICAgICAgICAgIjAuMTAyODQ1LCAwLjE4MTM4NCwgMC4yNDE2MjQsIDAuMzE2ODQyLCAwLjM5MTk2OSwgMC40NjcxODIsIDAuNTQyMjY1IiwgXAotICAgICAgICAgICIwLjEwOTk1NywgMC4xODg1MTQsIDAuMjQ4NzM0LCAwLjMyMzk1NywgMC4zOTkxMDMsIDAuNDc0MjU4LCAwLjU0OTQyMyIsIFwKLSAgICAgICAgICAiMC4xMTU5NDMsIDAuMTk0NTE4LCAwLjI1NDc0MSwgMC4zMjk5MzIsIDAuNDA1MDk0LCAwLjQ4MDI2MywgMC41NTU0MDkiLCBcCi0gICAgICAgICAgIjAuMTIwOTQsIDAuMTk5NTIzLCAwLjI1OTczOCwgMC4zMzQ5MjEsIDAuNDEwMDg3LCAwLjQ4NTMsIDAuNTYwNDQiLCBcCi0gICAgICAgICAgIjAuMTI3NzQ2LCAwLjIwNjM0OSwgMC4yNjY1NjIsIDAuMzQxNzY2LCAwLjQxNjkxNCwgMC40OTIwNTUsIDAuNTY3MjE2IiwgXAotICAgICAgICAgICIwLjEzMjk4OSwgMC4yMTE1NzcsIDAuMjcxNzk4LCAwLjM0Njk4MywgMC40MjIxMzIsIDAuNDk3Mjg2LCAwLjU3MjQ2NSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDYwMDMsIDAuMTk1OTYyLCAwLjMxOTU4OCwgMC40NzQ5MjcsIDAuNjI5OTU5LCAwLjc4Njc2OSwgMC45NDI5OTMiLCBcCi0gICAgICAgICAgIjAuMDQ2MDc1LCAwLjE5NTk2NSwgMC4zMTk0ODQsIDAuNDc0Nzc0LCAwLjYyOTk0MywgMC43ODU0MTksIDAuOTQyOTEzIiwgXAotICAgICAgICAgICIwLjA0NjA4NCwgMC4xOTU5OTEsIDAuMzE5NDg3LCAwLjQ3NDAwOSwgMC42Mjk3MjcsIDAuNzg2ODA1LCAwLjk0MzAwMyIsIFwKLSAgICAgICAgICAiMC4wNDYwMzcsIDAuMTk1ODU2LCAwLjMxOTQ0NCwgMC40NzQ3NzEsIDAuNjMwNTYxLCAwLjc4NTQ2NCwgMC45NDI5IiwgXAotICAgICAgICAgICIwLjA0NjAwNiwgMC4xOTU5ODIsIDAuMzE5NDQ3LCAwLjQ3NDg1OCwgMC42Mjk5MTgsIDAuNzg1MzcxLCAwLjk0MTEwNCIsIFwKLSAgICAgICAgICAiMC4wNDYxNjcsIDAuMTk2MDIsIDAuMzE5NTAyLCAwLjQ3NDk0NCwgMC42MzAwMDksIDAuNzg1ODM3LCAwLjk0Mjg1OSIsIFwKLSAgICAgICAgICAiMC4wNDYxMzUsIDAuMTk1OTUxLCAwLjMxOTQ3NiwgMC40NzQxMywgMC42MzA1NzIsIDAuNzg2NTc5LCAwLjk0Mjk2MiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTc4MTIsIDAuMTc4MzgxLCAwLjI0MDk5MiwgMC4zMTkxNTgsIDAuMzk3MzcyLCAwLjQ3NTUwNSwgMC41NTM2MDEiLCBcCi0gICAgICAgICAgIjAuMTAzOTUyLCAwLjE4NDUzNSwgMC4yNDcxMjIsIDAuMzI1MzEyLCAwLjQwMzUxMiwgMC40ODE2NjUsIDAuNTU5NzY1IiwgXAotICAgICAgICAgICIwLjExMDUzLCAwLjE5MTEsIDAuMjUzNzA3LCAwLjMzMTk2MSwgMC40MTAxMTMsIDAuNDg4MjI4LCAwLjU2NjM4NiIsIFwKLSAgICAgICAgICAiMC4xMTYxMjQsIDAuMTk2NjUsIDAuMjU5MjYyLCAwLjMzNzUwOSwgMC40MTU2ODcsIDAuNDkzNzY5LCAwLjU3MTkyNiIsIFwKLSAgICAgICAgICAiMC4xMjA2MzcsIDAuMjAxMTY5LCAwLjI2Mzc4NiwgMC4zNDE5NzYsIDAuNDIwMjAzLCAwLjQ5ODI5LCAwLjU3NjQ1NyIsIFwKLSAgICAgICAgICAiMC4xMjY4NDIsIDAuMjA3MzkzLCAwLjI2OTk5NiwgMC4zNDgxNjksIDAuNDI2MzM5LCAwLjUwNDU4MywgMC41ODI2MTYiLCBcCi0gICAgICAgICAgIjAuMTMxNDc4LCAwLjIxMjAwNywgMC4yNzQ2NDMsIDAuMzUyNzk0LCAwLjQzMDk2OSwgMC41MDkxNTEsIDAuNTg3MjU4Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0NzIxNiwgMC4yMDgwMzEsIDAuMzQwNDgxLCAwLjUwNjczOSwgMC42NzI1NDcsIDAuODQwMDY4LCAxLjAwNjg3IiwgXAotICAgICAgICAgICIwLjA0NzIyMywgMC4yMDc5OTgsIDAuMzQwMTA1LCAwLjUwNjc1NywgMC42NzI2NTksIDAuODQwMDQ1LCAxLjAwNjg2IiwgXAotICAgICAgICAgICIwLjA0NzI1MSwgMC4yMDc5ODIsIDAuMzQwNDk3LCAwLjUwNjc1NywgMC42NzI0MzgsIDAuODQwMDY1LCAxLjAwNjg3IiwgXAotICAgICAgICAgICIwLjA0NzE5NSwgMC4yMDc5NzcsIDAuMzQwNDk3LCAwLjUwNTk3OSwgMC42NzI0MTEsIDAuODQwMDYyLCAxLjAwNjg1IiwgXAotICAgICAgICAgICIwLjA0NzI3MywgMC4yMDgwMDEsIDAuMzQwNDgsIDAuNTA2NzI0LCAwLjY3MjQ0OSwgMC44NDAwNTQsIDEuMDA1NTgiLCBcCi0gICAgICAgICAgIjAuMDQ3NDY4LCAwLjIwOCwgMC4zNDA0NywgMC41MDYyNzIsIDAuNjcyODI5LCAwLjgzOTAwOSwgMS4wMDY3OCIsIFwKLSAgICAgICAgICAiMC4wNDczNzksIDAuMjA4MDIyLCAwLjMzOTg0OSwgMC41MDY2NzMsIDAuNjcyNjM4LCAwLjgzOTk2MSwgMS4wMDU4MiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTk3MDQsIDAuMTc4MzI0LCAwLjIzODU3MSwgMC4zMTM3NjUsIDAuMzg4OTQyLCAwLjQ2NDA5NywgMC41MzkyNjkiLCBcCi0gICAgICAgICAgIjAuMTA1OTI0LCAwLjE4NDU1NSwgMC4yNDQ3ODMsIDAuMzE5OTc5LCAwLjM5NTE0LCAwLjQ3MDI5MywgMC41NDU0ODUiLCBcCi0gICAgICAgICAgIjAuMTEzMDg4LCAwLjE5MTY5OSwgMC4yNTE5MDUsIDAuMzI3MDk5LCAwLjQwMjI2MiwgMC40Nzc0MzUsIDAuNTUyNTg3IiwgXAotICAgICAgICAgICIwLjExOTIzNSwgMC4xOTc4NDMsIDAuMjU4MDcsIDAuMzMzMjY4LCAwLjQwODQzMiwgMC40ODM2NDcsIDAuNTU4NzgiLCBcCi0gICAgICAgICAgIjAuMTI0MjgzLCAwLjIwMjg5NiwgMC4yNjMxMjIsIDAuMzM4MzIsIDAuNDEzNTM4LCAwLjQ4ODY0NiwgMC41NjM4MTgiLCBcCi0gICAgICAgICAgIjAuMTMxMzAxLCAwLjIwOTk1NiwgMC4yNzAxNjMsIDAuMzQ1MzUyLCAwLjQyMDUxOCwgMC40OTU2ODQsIDAuNTcwODUiLCBcCi0gICAgICAgICAgIjAuMTM2NTk3LCAwLjIxNTI1MiwgMC4yNzU0NzMsIDAuMzUwNjYsIDAuNDI1ODQ5LCAwLjUwMDk5OSwgMC41NzYxMTYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQ2MzE2LCAwLjE5NjE2NCwgMC4zMTk2MzksIDAuNDc1MDc2LCAwLjYzMDg1MywgMC43ODY4ODgsIDAuOTQzMDgiLCBcCi0gICAgICAgICAgIjAuMDQ2MjEyLCAwLjE5NTc4NCwgMC4zMTk2MjMsIDAuNDc0OTc2LCAwLjYzMDY2NywgMC43ODY2NzksIDAuOTQzMDQ1IiwgXAotICAgICAgICAgICIwLjA0NjMsIDAuMTk2MTU5LCAwLjMxOTMxMiwgMC40NzQ5NjYsIDAuNjMwNjI0LCAwLjc4NTYyOSwgMC45NDI5ODQiLCBcCi0gICAgICAgICAgIjAuMDQ2MzQ2LCAwLjE5NjE1OCwgMC4zMTk2MDgsIDAuNDc0OTY0LCAwLjYzMDA0NiwgMC43ODU1NTgsIDAuOTQxMTY5IiwgXAotICAgICAgICAgICIwLjA0NjQyNywgMC4xOTYxMjQsIDAuMzE5NjI5LCAwLjQ3NDg4OSwgMC42Mjk1MDIsIDAuNzg1ODcxLCAwLjk0Mjk4NyIsIFwKLSAgICAgICAgICAiMC4wNDYzOSwgMC4xOTYxNiwgMC4zMTk2MDIsIDAuNDc0ODg2LCAwLjYzMDYxNSwgMC43ODU5OSwgMC45NDMwMDgiLCBcCi0gICAgICAgICAgIjAuMDQ2Mzg0LCAwLjE5NjE4OCwgMC4zMTkzMzUsIDAuNDc0OSwgMC42Mjk4MDUsIDAuNzg1NTkxLCAwLjk0MjcwNiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJEIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTgzMDQsIDAuMTc4ODUzLCAwLjI0MTQ2LCAwLjMxOTY5MywgMC4zOTc4NzMsIDAuNDc1OTY0LCAwLjU1NDExNiIsIFwKLSAgICAgICAgICAiMC4xMDQyNSwgMC4xODQ4MzIsIDAuMjQ3NDE4LCAwLjMyNTYwOCwgMC40MDM3OTYsIDAuNDgxOTU3LCAwLjU2MDA2IiwgXAotICAgICAgICAgICIwLjExMDY5OCwgMC4xOTEyNjEsIDAuMjUzODcxLCAwLjMzMjA1NSwgMC40MTAyOTksIDAuNDg4Mzc4LCAwLjU2NjM1NSIsIFwKLSAgICAgICAgICAiMC4xMTYzMzEsIDAuMTk2ODc0LCAwLjI1OTQ4NiwgMC4zMzc2NjcsIDAuNDE1OTA5LCAwLjQ5Mzk5MiwgMC41NzIyMTciLCBcCi0gICAgICAgICAgIjAuMTIwOTA0LCAwLjIwMTQyLCAwLjI2NDAzMywgMC4zNDIyMzIsIDAuNDIwNDU5LCAwLjQ5ODU0MSwgMC41NzY2NTQiLCBcCi0gICAgICAgICAgIjAuMTI3MDg0LCAwLjIwNzY3NCwgMC4yNzAyNTUsIDAuMzQ4NDU3LCAwLjQyNjYwMywgMC41MDQ3NTQsIDAuNTgyOTA3IiwgXAotICAgICAgICAgICIwLjEzMTgwMSwgMC4yMTIzMzMsIDAuMjc0OTQ2LCAwLjM1MzIwNiwgMC40MzEzMTQsIDAuNTA5NDU2LCAwLjU4NzU1Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0NzI0MiwgMC4yMDgwMywgMC4zNDA1MDIsIDAuNTA2NzQ3LCAwLjY3MjczNywgMC44NDAwNjMsIDEuMDA2MDUiLCBcCi0gICAgICAgICAgIjAuMDQ3MjI3LCAwLjIwNzk5MSwgMC4zNDAwNjIsIDAuNTA2NzU1LCAwLjY3MjI4OSwgMC44NDAwNDEsIDEuMDA2ODYiLCBcCi0gICAgICAgICAgIjAuMDQ3MjQsIDAuMjA3OTgsIDAuMzQwNDk0LCAwLjUwNjc1OCwgMC42NzIzNzIsIDAuODQwMDY3LCAxLjAwNTgiLCBcCi0gICAgICAgICAgIjAuMDQ3MjA2LCAwLjIwNzk4LCAwLjM0MDQ5OSwgMC41MDYzMjYsIDAuNjcyNDIyLCAwLjg0MDA2MywgMS4wMDU1NiIsIFwKLSAgICAgICAgICAiMC4wNDcyNTQsIDAuMjA4MDY4LCAwLjM0MDQ5NCwgMC41MDY3NTQsIDAuNjcyNDEzLCAwLjg0MDA1OCwgMS4wMDU5MyIsIFwKLSAgICAgICAgICAiMC4wNDc0MzEsIDAuMjA4MDQ5LCAwLjM0MDE2MywgMC41MDY3MjcsIDAuNjczMzEzLCAwLjgzOTM1NywgMS4wMDY4IiwgXAotICAgICAgICAgICIwLjA0NzM3OSwgMC4yMDc5ODUsIDAuMzQwMDI0LCAwLjUwNjA3OSwgMC42NzMzNDIsIDAuODM5MTMxLCAxLjAwNTkiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk5MjI3LCAwLjE3Nzg2LCAwLjIzODA4NSwgMC4zMTMyNzksIDAuMzg4NDM4LCAwLjQ2MzU5MSwgMC41Mzg3ODQiLCBcCi0gICAgICAgICAgIjAuMTA1NjE4LCAwLjE4NDI0LCAwLjI0NDQ2NiwgMC4zMTk2NjEsIDAuMzk0ODEsIDAuNDY5OTYxLCAwLjU0NTE3MiIsIFwKLSAgICAgICAgICAiMC4xMTI4MzYsIDAuMTkxNDczLCAwLjI1MTY5NSwgMC4zMjY4ODMsIDAuNDAyMDU2LCAwLjQ3NzE4NywgMC41NTIzNDIiLCBcCi0gICAgICAgICAgIjAuMTE4OTQ5LCAwLjE5NzY0NywgMC4yNTc4NjMsIDAuMzMzMDU3LCAwLjQwODIxNSwgMC40ODM0MzQsIDAuNTU4NDk5IiwgXAotICAgICAgICAgICIwLjEyNDAyNiwgMC4yMDI2MzIsIDAuMjYyODU5LCAwLjMzODA1NiwgMC40MTMyMTcsIDAuNDg4MzgzLCAwLjU2MzU1MiIsIFwKLSAgICAgICAgICAiMC4xMzA5NDgsIDAuMjA5NjMyLCAwLjI2OTg1OSwgMC4zNDUwNDUsIDAuNDIwMjA1LCAwLjQ5NTM3OSwgMC41NzA0ODIiLCBcCi0gICAgICAgICAgIjAuMTM2MjIsIDAuMjE0ODgyLCAwLjI3NTExNSwgMC4zNTAyODYsIDAuNDI1NDUzLCAwLjUwMDYyMSwgMC41NzU3NDQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQ2MjY5LCAwLjE5NjE3LCAwLjMxOTYzNywgMC40NzQ5NjksIDAuNjMwNzkyLCAwLjc4NjgyNiwgMC45NDMwODEiLCBcCi0gICAgICAgICAgIjAuMDQ2MzMxLCAwLjE5NjE2NCwgMC4zMTk2MjksIDAuNDc0OTY3LCAwLjYzMDc0NSwgMC43ODY1NzEsIDAuOTQxMTcyIiwgXAotICAgICAgICAgICIwLjA0NjMxNywgMC4xOTYxOTUsIDAuMzE5NjE5LCAwLjQ3NDk0NywgMC42MzA3NzcsIDAuNzg2NzUsIDAuOTQxODMiLCBcCi0gICAgICAgICAgIjAuMDQ2MjkyLCAwLjE5NjEzNCwgMC4zMTk2MTMsIDAuNDc0MTY3LCAwLjYzMDAyNiwgMC43ODU0MDEsIDAuOTQyNzk1IiwgXAotICAgICAgICAgICIwLjA0NjM4MSwgMC4xOTYxMzksIDAuMzE5NjMsIDAuNDc0OTY0LCAwLjYzMDY1MiwgMC43ODU4ODYsIDAuOTQyOTg5IiwgXAotICAgICAgICAgICIwLjA0NjM0OSwgMC4xOTYxNTMsIDAuMzE5NjIsIDAuNDc0OTksIDAuNjI5OTk5LCAwLjc4NTU1MywgMC45NDI2NTYiLCBcCi0gICAgICAgICAgIjAuMDQ2MzQ1LCAwLjE5NjE4NywgMC4zMTk2NTQsIDAuNDc0ODc4LCAwLjYzMDY3LCAwLjc4NjgyNywgMC45NDI2OTkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUzAiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExMjI5NCwgMC4xOTI4NTUsIDAuMjU1NDU5LCAwLjMzMzY2NCwgMC40MTE3NDQsIDAuNDg5OTY0LCAwLjU2ODEyNCIsIFwKLSAgICAgICAgICAiMC4xMjAzNSwgMC4yMDA5MjcsIDAuMjYzNTMzLCAwLjM0MTY2NiwgMC40MTk5NjMsIDAuNDk4MDQ1LCAwLjU3NjE1OCIsIFwKLSAgICAgICAgICAiMC4xMjg4MjUsIDAuMjA5MzkyLCAwLjI3MTk5NiwgMC4zNTAxNjUsIDAuNDI4NDI4LCAwLjUwNjUwNywgMC41ODQ2MiIsIFwKLSAgICAgICAgICAiMC4xMzUzOTEsIDAuMjE1OTYsIDAuMjc4NTY0LCAwLjM1NjczMywgMC40MzQ5OTQsIDAuNTEzMDc1LCAwLjU5MTE4OSIsIFwKLSAgICAgICAgICAiMC4xNDA2MSwgMC4yMjExODgsIDAuMjgzNzg4LCAwLjM2MTk1NSwgMC40NDAwMjQsIDAuNTE4Mjk4LCAwLjU5NjQxMiIsIFwKLSAgICAgICAgICAiMC4xNDczODYsIDAuMjI4MDAxLCAwLjI5MDU4OCwgMC4zNjg3NzMsIDAuNDQ2OTM2LCAwLjUyNTExMiwgMC42MDMyMTYiLCBcCi0gICAgICAgICAgIjAuMTUyMzk1LCAwLjIzMzAxNiwgMC4yOTU2MTMsIDAuMzczNzcxLCAwLjQ1MTkyNCwgMC41MzAxMDEsIDAuNjA4MzA3Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0NzI0NSwgMC4yMDc5NzUsIDAuMzQwNTE0LCAwLjUwNjc5OSwgMC42NzI3NSwgMC44NDAxMzEsIDEuMDA2OTMiLCBcCi0gICAgICAgICAgIjAuMDQ3MjUsIDAuMjA3OTgxLCAwLjM0MDUyNCwgMC41MDY3NTksIDAuNjcyNjk2LCAwLjg0MDEzMywgMS4wMDY4OSIsIFwKLSAgICAgICAgICAiMC4wNDcyNDUsIDAuMjA3OTk1LCAwLjM0MDUyMSwgMC41MDY3NTcsIDAuNjczMzExLCAwLjg0MDEzMiwgMS4wMDY5MSIsIFwKLSAgICAgICAgICAiMC4wNDcyNDksIDAuMjA4MDMsIDAuMzQwNTIzLCAwLjUwNjc1OSwgMC42NzI0NTEsIDAuODQwMTM2LCAxLjAwNjg3IiwgXAotICAgICAgICAgICIwLjA0NzIxMiwgMC4yMDc5ODEsIDAuMzQwNTEsIDAuNTA2NzI5LCAwLjY3MjQzNSwgMC44NDAxMzYsIDEuMDA2ODYiLCBcCi0gICAgICAgICAgIjAuMDQ3MiwgMC4yMDgwMTYsIDAuMzQwNDQ2LCAwLjUwNjY2OCwgMC42NzMyODEsIDAuODM5OTM4LCAxLjAwNjgyIiwgXAotICAgICAgICAgICIwLjA0NzM3MywgMC4yMDgwNDYsIDAuMzQwMjc1LCAwLjUwNjUyNywgMC42NzMwODQsIDAuODM5NzI5LCAxLjAwNjciKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTE2OTUyLCAwLjE5NTU3NCwgMC4yNTU4MDEsIDAuMzMwOTk4LCAwLjQwNjE0NCwgMC40ODEyOTksIDAuNTU2NTEyIiwgXAotICAgICAgICAgICIwLjEyNDk1NywgMC4yMDM1NzEsIDAuMjYzNzc2LCAwLjMzODk3MiwgMC40MTQxMzMsIDAuNDg5MzA2LCAwLjU2NDQ2MSIsIFwKLSAgICAgICAgICAiMC4xMzM1MjYsIDAuMjEyMTY1LCAwLjI3MjM4NywgMC4zNDc1NzUsIDAuNDIyNzQ4LCAwLjQ5Nzg3OSwgMC41NzMwMjkiLCBcCi0gICAgICAgICAgIjAuMTM5NzcsIDAuMjE4Mzg3LCAwLjI3ODU5NCwgMC4zNTM3ODksIDAuNDI4OTQ4LCAwLjUwNDEyLCAwLjU3OTI3OSIsIFwKLSAgICAgICAgICAiMC4xNDQ3NzYsIDAuMjIzNDgsIDAuMjgzNjg0LCAwLjM1ODg3OSwgMC40MzQwNDMsIDAuNTA5MjE1LCAwLjU4NDM3MSIsIFwKLSAgICAgICAgICAiMC4xNTExMjMsIDAuMjI5ODExLCAwLjI5MDAzNCwgMC4zNjUyNDEsIDAuNDQwNDA5LCAwLjUxNTUzOCwgMC41OTA3MzciLCBcCi0gICAgICAgICAgIjAuMTU1ODgyLCAwLjIzNDU3MiwgMC4yOTQ3NzksIDAuMzY5OTc4LCAwLjQ0NTEyMywgMC41MjAyOCwgMC41OTU0NDUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQ2MzMzLCAwLjE5NjE2NSwgMC4zMTk2NDUsIDAuNDc0OTg4LCAwLjYzMDcyOCwgMC43ODY4NTQsIDAuOTQzMDk5IiwgXAotICAgICAgICAgICIwLjA0NjM3MSwgMC4xOTYxODQsIDAuMzE5NjUxLCAwLjQ3NDk4NywgMC42MzA4MTksIDAuNzg2NzMsIDAuOTQzMTI1IiwgXAotICAgICAgICAgICIwLjA0NjMzNCwgMC4xOTYxODksIDAuMzE5NjUxLCAwLjQ3NTAxMSwgMC42MzA3OTEsIDAuNzg2NzYsIDAuOTQzMTA2IiwgXAotICAgICAgICAgICIwLjA0NjM2MiwgMC4xOTYxODcsIDAuMzE5NjQzLCAwLjQ3NDk4LCAwLjYzMDczOCwgMC43ODY3ODYsIDAuOTQzMDk1IiwgXAotICAgICAgICAgICIwLjA0NjI5NSwgMC4xOTYxNjEsIDAuMzE5NjM4LCAwLjQ3NTAwNiwgMC42MzA4LCAwLjc4Njg0NiwgMC45NDMwNzMiLCBcCi0gICAgICAgICAgIjAuMDQ2MzI5LCAwLjE5NjIyNiwgMC4zMTk2OCwgMC40NzUwMjYsIDAuNjMwOTI1LCAwLjc4Njg1OSwgMC45NDMwMjgiLCBcCi0gICAgICAgICAgIjAuMDQ2NTY3LCAwLjE5NjE2MywgMC4zMTk1OTQsIDAuNDc0OTI5LCAwLjYzMDcwNywgMC43ODU5NDQsIDAuOTQyODg0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlMwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTE2MjMsIDAuMTcyMTMsIDAuMjM0NzMsIDAuMzEyODk5LCAwLjM5MTE2LCAwLjQ2OTI0OCwgMC41NDczNTUiLCBcCi0gICAgICAgICAgIjAuMDk4ODUyLCAwLjE3OTQyNSwgMC4yNDIwMjIsIDAuMzIwMTk1LCAwLjM5ODQ2LCAwLjQ3NjU0LCAwLjU1NDY1OSIsIFwKLSAgICAgICAgICAiMC4xMDc1ODMsIDAuMTg4MDk2LCAwLjI1MDY5NiwgMC4zMjg4ODQsIDAuNDA3MTA2LCAwLjQ4NTIwOCwgMC41NjM0MyIsIFwKLSAgICAgICAgICAiMC4xMTQ2ODUsIDAuMTk1MjI5LCAwLjI1NzgzNiwgMC4zMzYwMjIsIDAuNDE0MjA2LCAwLjQ5MjM0NSwgMC41NzA1MjQiLCBcCi0gICAgICAgICAgIjAuMTIwMzc3LCAwLjIwMDk2NiwgMC4yNjM1NjIsIDAuMzQxNzQ3LCAwLjQxOTk5OSwgMC40OTgwODIsIDAuNTc2MTk3IiwgXAotICAgICAgICAgICIwLjEyODA0OSwgMC4yMDg2MDgsIDAuMjcxMjE3LCAwLjM0OTM5NywgMC40Mjc2MjksIDAuNTA1NzI4LCAwLjU4Mzg4IiwgXAotICAgICAgICAgICIwLjEzMzkwNywgMC4yMTQ0ODUsIDAuMjc3MDc2LCAwLjM1NTI4NSwgMC40MzM0NzIsIDAuNTExNjA3LCAwLjU4OTcwOSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDcyNTQsIDAuMjA3OTgzLCAwLjM0MDUxNiwgMC41MDY3NTksIDAuNjczMzM5LCAwLjg0MDEyOSwgMS4wMDY4NyIsIFwKLSAgICAgICAgICAiMC4wNDcyNTQsIDAuMjA3OTg5LCAwLjM0MDUwMSwgMC41MDY3NTksIDAuNjczMzUsIDAuODQwMTI1LCAxLjAwNjg3IiwgXAotICAgICAgICAgICIwLjA0NzI2NSwgMC4yMDc5OCwgMC4zNDA1MTgsIDAuNTA2NzQ3LCAwLjY3MzI4MywgMC44NDAxMjksIDEuMDA2ODgiLCBcCi0gICAgICAgICAgIjAuMDQ3MjQsIDAuMjA3OTg0LCAwLjM0MDUsIDAuNTA2ODAyLCAwLjY3MzM1MSwgMC44NDAxMzIsIDEuMDA3MDgiLCBcCi0gICAgICAgICAgIjAuMDQ3MzAzLCAwLjIwODA0LCAwLjM0MDUwNSwgMC41MDY3NDgsIDAuNjczMzQ1LCAwLjg0MDEwOCwgMS4wMDY4MiIsIFwKLSAgICAgICAgICAiMC4wNDc0NzUsIDAuMjA4MDY3LCAwLjM0MDUzNiwgMC41MDY3NjcsIDAuNjczMTk5LCAwLjg0MDA0OCwgMS4wMDY4MyIsIFwKLSAgICAgICAgICAiMC4wNDc0MTgsIDAuMjA4MTUsIDAuMzQwNDQ2LCAwLjUwNjc3LCAwLjY3MzM5NCwgMC44NDAwNywgMS4wMDY4Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5MzY5MywgMC4xNzIzMDgsIDAuMjMyNTE3LCAwLjMwNzcwOCwgMC4zODI4NzQsIDAuNDU4MDUyLCAwLjUzMzE3NyIsIFwKLSAgICAgICAgICAiMC4xMDEwOTYsIDAuMTc5NzE3LCAwLjIzOTk2NCwgMC4zMTUxNTksIDAuMzkwMzEyLCAwLjQ2NTQ3OCwgMC41NDA2NjkiLCBcCi0gICAgICAgICAgIjAuMTA5NzQ0LCAwLjE4ODM2NCwgMC4yNDg1OSwgMC4zMjM3ODYsIDAuMzk4OTQ3LCAwLjQ3NDE2MiwgMC41NDkyOTciLCBcCi0gICAgICAgICAgIjAuMTE2Nzc5LCAwLjE5NTM4NywgMC4yNTU2MTUsIDAuMzMwODEyLCAwLjQwNTk3MywgMC40ODExMywgMC41NTYzMjIiLCBcCi0gICAgICAgICAgIjAuMTIyMzgzLCAwLjIwMTAzMSwgMC4yNjEyNTksIDAuMzM2NDU4LCAwLjQxMTYyNiwgMC40ODY3ODcsIDAuNTYxOTU2IiwgXAotICAgICAgICAgICIwLjEyOTk0OSwgMC4yMDg1OTksIDAuMjY4ODIyLCAwLjM0NDAyNywgMC40MTkxODMsIDAuNDk0MzI3LCAwLjU2OTQ5NSIsIFwKLSAgICAgICAgICAiMC4xMzU2LCAwLjIxNDI4MywgMC4yNzQ1MTcsIDAuMzQ5NywgMC40MjQ4ODcsIDAuNTAwMDEzLCAwLjU3NTE0NyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDYzMjMsIDAuMTk2MTY0LCAwLjMxOTY0MywgMC40NzQ5NzgsIDAuNjMwODMzLCAwLjc4NTYwMiwgMC45NDMwOTQiLCBcCi0gICAgICAgICAgIjAuMDQ2MzYzLCAwLjE5NjE2OCwgMC4zMTk2NDMsIDAuNDc0OTgxLCAwLjYzMDgxNSwgMC43ODY4NDMsIDAuOTQzMTExIiwgXAotICAgICAgICAgICIwLjA0NjM3MiwgMC4xOTYxNjcsIDAuMzE5NjQxLCAwLjQ3NDk3MiwgMC42MzA3NDEsIDAuNzg2NTc5LCAwLjk0MzAzNSIsIFwKLSAgICAgICAgICAiMC4wNDYzNDksIDAuMTk2MTc2LCAwLjMxOTY0MywgMC40NzQ5ODUsIDAuNjMwNzUsIDAuNzg2NzUxLCAwLjk0MzA0NiIsIFwKLSAgICAgICAgICAiMC4wNDY1OTIsIDAuMTk2MTcxLCAwLjMxOTU4NywgMC40NzQ5NzUsIDAuNjMwNzc2LCAwLjc4NjgxNCwgMC45NDMwMjIiLCBcCi0gICAgICAgICAgIjAuMDQ2NDUxLCAwLjE5NjE3NSwgMC4zMTk1OTEsIDAuNDc1MDEzLCAwLjYzMDY4LCAwLjc4Njc2LCAwLjk0Mjk5NiIsIFwKLSAgICAgICAgICAiMC4wNDY0NjcsIDAuMTk2MTcyLCAwLjMxOTUwMSwgMC40NzQ3ODEsIDAuNjMwOTE4LCAwLjc4NjYyOCwgMC45NDMwNDIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUzEiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1ODUxNCwgMC4xMzg5OTEsIDAuMjAxNjAyLCAwLjI3OTc5OSwgMC4zNTgwMTcsIDAuNDM2MTA1LCAwLjUxNDI3NCIsIFwKLSAgICAgICAgICAiMC4wNjU5NDksIDAuMTQ2NDQsIDAuMjA5MDUsIDAuMjg3MjI0LCAwLjM2NTQ3NiwgMC40NDM1NiwgMC41MjE2NzUiLCBcCi0gICAgICAgICAgIjAuMDc1NTg0LCAwLjE1NjA1MSwgMC4yMTg2NjUsIDAuMjk2ODcyLCAwLjM3NTA4MiwgMC40NTMxNywgMC41MzEzMzgiLCBcCi0gICAgICAgICAgIjAuMDg0MjczLCAwLjE2NDg2OCwgMC4yMjc0NDMsIDAuMzA1NjMsIDAuMzgzODI2LCAwLjQ2MTk3OSwgMC41NDAwNyIsIFwKLSAgICAgICAgICAiMC4wOTE2NSwgMC4xNzIzODYsIDAuMjM0OTg4LCAwLjMxMzE0MiwgMC4zOTEzMjksIDAuNDY5NDksIDAuNTQ3NzE2IiwgXAotICAgICAgICAgICIwLjEwMTQ3OSwgMC4xODI2NDYsIDAuMjQ1MTU3LCAwLjMyMzMyMiwgMC40MDE1NSwgMC40Nzk2NjQsIDAuNTU3ODkiLCBcCi0gICAgICAgICAgIjAuMTA4ODcyLCAwLjE5MDMzNSwgMC4yNTI5MDIsIDAuMzMxMDU4LCAwLjQwOTI3MiwgMC40ODczNzgsIDAuNTY1NjAzIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0Njk3NSwgMC4yMDc5MzYsIDAuMzQwNDY5LCAwLjUwNjc2NCwgMC42NzI0NDQsIDAuODQwMDg4LCAxLjAwNjg2IiwgXAotICAgICAgICAgICIwLjA0Njk3OCwgMC4yMDc5MzcsIDAuMzQwNDQ4LCAwLjUwNjE5MiwgMC42NzIzOTUsIDAuODQwMDQxLCAxLjAwNTk5IiwgXAotICAgICAgICAgICIwLjA0NzIxNCwgMC4yMDc5NTksIDAuMzQwNDY0LCAwLjUwNjcyMywgMC42NzI0NSwgMC44NDAwMzMsIDEuMDA2MTUiLCBcCi0gICAgICAgICAgIjAuMDQ4MTgsIDAuMjA4MTU0LCAwLjMzOTkxOCwgMC41MDY3MzUsIDAuNjcyNDk2LCAwLjgzOTk5LCAxLjAwNjgyIiwgXAotICAgICAgICAgICIwLjA0OTQ1MywgMC4yMDg0NzMsIDAuMzQwNjMzLCAwLjUwNjcyOCwgMC42NzIzMDcsIDAuODQwMDE2LCAxLjAwNTYiLCBcCi0gICAgICAgICAgIjAuMDUxNDczLCAwLjIwOTEzMywgMC4zNDA1NTcsIDAuNTA2NDY3LCAwLjY3MjUyMywgMC44NDAwNDksIDEuMDA2NzYiLCBcCi0gICAgICAgICAgIjAuMDUzMTYzLCAwLjIwOTU5MSwgMC4zNDEwNzksIDAuNTA2NjU5LCAwLjY3MjYxMSwgMC44NDAxNDEsIDEuMDA1NjMiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDYxNjQsIDAuMTQwMTIxLCAwLjIwMDMzNCwgMC4yNzU1MDgsIDAuMzUwNjY4LCAwLjQyNTgzOSwgMC41MDA5NzMiLCBcCi0gICAgICAgICAgIjAuMDY4OTU0LCAwLjE0NzQ3OCwgMC4yMDc2ODEsIDAuMjgyODkxLCAwLjM1ODAxOSwgMC40MzMyMjYsIDAuNTA4MjkxIiwgXAotICAgICAgICAgICIwLjA3ODQxOCwgMC4xNTY5MzYsIDAuMjE3MTQsIDAuMjkyMzE0LCAwLjM2NzQ3NCwgMC40NDI2MjIsIDAuNTE3NzciLCBcCi0gICAgICAgICAgIjAuMDg3MDc1LCAwLjE2NTY0OSwgMC4yMjU4NTIsIDAuMzAxMDM0LCAwLjM3NjE4NywgMC40NTEzNTgsIDAuNTI2NDk2IiwgXAotICAgICAgICAgICIwLjA5NDQxMywgMC4xNzMxNzEsIDAuMjMzMzYxLCAwLjMwODU0NSwgMC4zODM2NzgsIDAuNDU4ODQsIDAuNTM0MDA2IiwgXAotICAgICAgICAgICIwLjEwNDE3NCwgMC4xODMzNDgsIDAuMjQzNTA5LCAwLjMxODY1NCwgMC4zOTM4MzEsIDAuNDY4OTQ5LCAwLjU0NDEwNyIsIFwKLSAgICAgICAgICAiMC4xMTEzNzYsIDAuMTkwOTMsIDAuMjUxMTA1LCAwLjMyNjI1OCwgMC40MDEzNzgsIDAuNDc2NTI2LCAwLjU1MTY1OSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDU5NTksIDAuMTk1OTQ1LCAwLjMxOTA1NiwgMC40NzQ4NDcsIDAuNjMwNTksIDAuNzg1NDk3LCAwLjk0Mjg2MSIsIFwKLSAgICAgICAgICAiMC4wNDU5NTUsIDAuMTk1OTcyLCAwLjMxOTQ4NywgMC40NzQ5NTksIDAuNjI5OTc0LCAwLjc4NTEzMiwgMC45NDE2NDYiLCBcCi0gICAgICAgICAgIjAuMDQ2MTE5LCAwLjE5NjAwNSwgMC4zMTk0OTgsIDAuNDc0MzM4LCAwLjYzMDY2MywgMC43ODU4NzYsIDAuOTQyODAyIiwgXAotICAgICAgICAgICIwLjA0Njg3LCAwLjE5NjE5NiwgMC4zMTkyNjIsIDAuNDc0ODE4LCAwLjYzMDU4LCAwLjc4NTUwNSwgMC45NDI4NTciLCBcCi0gICAgICAgICAgIjAuMDQ4MDYxLCAwLjE5NjU0MywgMC4zMTk3MzIsIDAuNDc1MDAyLCAwLjYzMDU5OSwgMC43ODU4NDEsIDAuOTQyOTc0IiwgXAotICAgICAgICAgICIwLjA0OTg3NywgMC4xOTcxOTIsIDAuMzE5ODk1LCAwLjQ3NDYyNSwgMC42MzA4OTgsIDAuNzg2NjMyLCAwLjk0Mjg5NiIsIFwKLSAgICAgICAgICAiMC4wNTE0MTMsIDAuMTk3NzA3LCAwLjMyMDM3MiwgMC40NzU0NDMsIDAuNjMwODU2LCAwLjc4NTkyLCAwLjk0MjczOSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTMSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc0MDQ1LCAwLjE1NDU4NiwgMC4yMTcxOTQsIDAuMjk1MzcxLCAwLjM3MzY0MSwgMC40NTE3MTcsIDAuNTI5ODE0IiwgXAotICAgICAgICAgICIwLjA4MTY3OSwgMC4xNjIyMjIsIDAuMjI0ODI0LCAwLjMwMzAwNiwgMC4zODEyNzEsIDAuNDU5MzUxLCAwLjUzNzQ1NiIsIFwKLSAgICAgICAgICAiMC4wODkwMjYsIDAuMTY5NTkyLCAwLjIzMjE4NiwgMC4zMTAzNzcsIDAuMzg4NTUsIDAuNDY2Nzg0LCAwLjU0NDgyNiIsIFwKLSAgICAgICAgICAiMC4wOTQwMSwgMC4xNzQ1NDEsIDAuMjM3MTYxLCAwLjMxNTM0LCAwLjM5MzU5NiwgMC40NzE2NzUsIDAuNTQ5NzczIiwgXAotICAgICAgICAgICIwLjA5NzkyNywgMC4xNzg1OCwgMC4yNDEyMTQsIDAuMzE5MzczLCAwLjM5NzUzNiwgMC40NzU2NzYsIDAuNTUzODE1IiwgXAotICAgICAgICAgICIwLjEwMzI2MSwgMC4xODM5NTcsIDAuMjQ2NTk5LCAwLjMyNDc4MywgMC40MDI5NTUsIDAuNDgxMDkyLCAwLjU1OTI5NyIsIFwKLSAgICAgICAgICAiMC4xMDcyMDMsIDAuMTg3OTQyLCAwLjI1MDYyNSwgMC4zMjg4MjIsIDAuNDA2OTgyLCAwLjQ4NTE1MSwgMC41NjMyNjUiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQ2ODA3LCAwLjIwNzg2MiwgMC4zNDAzOSwgMC41MDY2NDQsIDAuNjcyNDM3LCAwLjg0MDAwNiwgMS4wMDY4MSIsIFwKLSAgICAgICAgICAiMC4wNDY4MDksIDAuMjA3ODQ0LCAwLjMzOTg2OCwgMC41MDY2NCwgMC42NzI0NDgsIDAuODM5OTk1LCAxLjAwNTg3IiwgXAotICAgICAgICAgICIwLjA0NjgxOSwgMC4yMDc4MjYsIDAuMzQwMDYzLCAwLjUwNjY2MSwgMC42NzI4MjksIDAuODM4OTQ3LCAxLjAwNjgzIiwgXAotICAgICAgICAgICIwLjA0Njg4NiwgMC4yMDc4NzgsIDAuMzQwMzYzLCAwLjUwNjE4LCAwLjY3MjQzNiwgMC44Mzk5ODgsIDEuMDA2NzQiLCBcCi0gICAgICAgICAgIjAuMDQ2ODQsIDAuMjA3ODM3LCAwLjM0MDM4OCwgMC41MDY1OSwgMC42NzMxNiwgMC44MzkzMTIsIDEuMDA2NjYiLCBcCi0gICAgICAgICAgIjAuMDQ2ODI3LCAwLjIwODA4NiwgMC4zNDAxMzYsIDAuNTA2MjkyLCAwLjY3MzE0MiwgMC44Mzk1MSwgMS4wMDY2IiwgXAotICAgICAgICAgICIwLjA0NjgyOCwgMC4yMDc5NjcsIDAuMzQwMjYxLCAwLjUwNjM5OSwgMC42NzI4MDMsIDAuODM5MzY3LCAxLjAwNTg5Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3NjU5MywgMC4xNTUyMTMsIDAuMjE1NDMzLCAwLjI5MDYyNiwgMC4zNjU3OTMsIDAuNDQwOTc1LCAwLjUxNjExNyIsIFwKLSAgICAgICAgICAiMC4wODQzNjUsIDAuMTYzMDI3LCAwLjIyMzI2NiwgMC4yOTg0NTcsIDAuMzczNjI0LCAwLjQ0ODgwMiwgMC41MjM5NTEiLCBcCi0gICAgICAgICAgIjAuMDkxNjQ5LCAwLjE3MDMwMSwgMC4yMzA1MjgsIDAuMzA1NzI5LCAwLjM4MDg5NiwgMC40NTYwNywgMC41MzEyMjUiLCBcCi0gICAgICAgICAgIjAuMDk2ODEyLCAwLjE3NTQ3NiwgMC4yMzU2OTksIDAuMzEwODk5LCAwLjM4NjA2LCAwLjQ2MTIxLCAwLjUzNjM1NCIsIFwKLSAgICAgICAgICAiMC4xMDA5NzMsIDAuMTc5NzA1LCAwLjIzOTkzNCwgMC4zMTUxMjgsIDAuMzkwMjg2LCAwLjQ2NTQ0NCwgMC41NDA2NCIsIFwKLSAgICAgICAgICAiMC4xMDY2NDEsIDAuMTg1NDE4LCAwLjI0NTY4OSwgMC4zMjA4ODcsIDAuMzk2MDQ2LCAwLjQ3MTE5NCwgMC41NDYzMzUiLCBcCi0gICAgICAgICAgIjAuMTEwOTk0LCAwLjE4OTc0OCwgMC4yNTAwNTcsIDAuMzI1Mjc4LCAwLjQwMDQzNiwgMC40NzU1NzksIDAuNTUwNzY3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0NjIxNywgMC4xOTYxMjMsIDAuMzE5NjE4LCAwLjQ3NDk2MywgMC42MzA2MzIsIDAuNzg1NTg2LCAwLjk0Mjk4NCIsIFwKLSAgICAgICAgICAiMC4wNDYyMDUsIDAuMTk2MTM4LCAwLjMxOTIxLCAwLjQ3NDk0MywgMC42MzA2NTEsIDAuNzg1NjEzLCAwLjk0Mjk3NSIsIFwKLSAgICAgICAgICAiMC4wNDYxNTMsIDAuMTk2MDg2LCAwLjMxOTU2LCAwLjQ3NDg2NCwgMC42MzA2NDIsIDAuNzg1NDY3LCAwLjk0Mjk3NSIsIFwKLSAgICAgICAgICAiMC4wNDYyNDYsIDAuMTk2MTYyLCAwLjMxOTU4LCAwLjQ3NDQ4LCAwLjYyOTk3MywgMC43ODU4OCwgMC45NDI2ODciLCBcCi0gICAgICAgICAgIjAuMDQ2MjM2LCAwLjE5NjA0MSwgMC4zMTk2NzMsIDAuNDc0OTIsIDAuNjMwNjQ2LCAwLjc4NTg1MiwgMC45NDI3NDUiLCBcCi0gICAgICAgICAgIjAuMDQ2MTIyLCAwLjE5NjMxNSwgMC4zMTk0MDMsIDAuNDc0NzYzLCAwLjYzMDEzNywgMC43ODY1NzIsIDAuOTQyNjc3IiwgXAotICAgICAgICAgICIwLjA0NjIyNSwgMC4xOTYxNzEsIDAuMzE5NDY5LCAwLjQ3NDUzMiwgMC42Mjk5ODIsIDAuNzg2MzU0LCAwLjk0MjQ4MSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjg4MywgMC4wMDY5MzUsIDAuMDA2OTQzLCAwLjAwNjk1MSwgMC4wMDY5NTMsIDAuMDA2OTUzLCAwLjAwNjk1NiIsIFwKLSAgICAgICAgICAiMC4wMDY4NjcsIDAuMDA2OTE3LCAwLjAwNjkyNywgMC4wMDY5MzMsIDAuMDA2OTM2LCAwLjAwNjkzNywgMC4wMDY5MzgiLCBcCi0gICAgICAgICAgIjAuMDA2ODc4LCAwLjAwNjkyOSwgMC4wMDY5MzgsIDAuMDA2OTQ2LCAwLjAwNjk1LCAwLjAwNjk1NCwgMC4wMDY5NTMiLCBcCi0gICAgICAgICAgIjAuMDA2OTE2LCAwLjAwNjk2NSwgMC4wMDY5NzUsIDAuMDA2OTgsIDAuMDA2OTg0LCAwLjAwNjk4NiwgMC4wMDY5ODYiLCBcCi0gICAgICAgICAgIjAuMDA2OTcxLCAwLjAwNzAxOSwgMC4wMDcwMjksIDAuMDA3MDM0LCAwLjAwNzAzOCwgMC4wMDcwMzksIDAuMDA3MDQiLCBcCi0gICAgICAgICAgIjAuMDA3MDkzLCAwLjAwNzEzOSwgMC4wMDcxNDgsIDAuMDA3MTU1LCAwLjAwNzE1OSwgMC4wMDcxNjMsIDAuMDA3MTYyIiwgXAotICAgICAgICAgICIwLjAwNzIxNiwgMC4wMDcyNjIsIDAuMDA3MjczLCAwLjAwNzI3NiwgMC4wMDcyODEsIDAuMDA3MjgxLCAwLjAwNzI4MiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNTk2NSwgMC4wMDYwMjksIDAuMDA2MDQyLCAwLjAwNjA0OSwgMC4wMDYwNTIsIDAuMDA2MDU0LCAwLjAwNjA1NiIsIFwKLSAgICAgICAgICAiMC4wMDU5MzksIDAuMDA2MDA0LCAwLjAwNjAxNiwgMC4wMDYwMjIsIDAuMDA2MDI2LCAwLjAwNjAyOSwgMC4wMDYwMyIsIFwKLSAgICAgICAgICAiMC4wMDU5NTEsIDAuMDA2MDE1LCAwLjAwNjAyOCwgMC4wMDYwMzQsIDAuMDA2MDM4LCAwLjAwNjA0LCAwLjAwNjA0MSIsIFwKLSAgICAgICAgICAiMC4wMDU5ODQsIDAuMDA2MDUyLCAwLjAwNjA2NSwgMC4wMDYwNzIsIDAuMDA2MDc2LCAwLjAwNjA3OSwgMC4wMDYwOCIsIFwKLSAgICAgICAgICAiMC4wMDYwNDMsIDAuMDA2MTEyLCAwLjAwNjEyNSwgMC4wMDYxMzMsIDAuMDA2MTM2LCAwLjAwNjEzOSwgMC4wMDYxNCIsIFwKLSAgICAgICAgICAiMC4wMDYxNzUsIDAuMDA2MjM3LCAwLjAwNjI0OSwgMC4wMDYyNTYsIDAuMDA2MjYsIDAuMDA2MjYyLCAwLjAwNjI2NCIsIFwKLSAgICAgICAgICAiMC4wMDYzMDEsIDAuMDA2MzYyLCAwLjAwNjM3NSwgMC4wMDYzODIsIDAuMDA2Mzg2LCAwLjAwNjM4NywgMC4wMDYzODkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDcxNiwgMC4wMDcyMTEsIDAuMDA3MjIxLCAwLjAwNzIyNiwgMC4wMDcyMjksIDAuMDA3MjMxLCAwLjAwNzIzMyIsIFwKLSAgICAgICAgICAiMC4wMDcxNDQsIDAuMDA3MTk1LCAwLjAwNzIwNCwgMC4wMDcyMDksIDAuMDA3MjEzLCAwLjAwNzIxNCwgMC4wMDcyMTYiLCBcCi0gICAgICAgICAgIjAuMDA3MTUyLCAwLjAwNzIwNCwgMC4wMDcyMTEsIDAuMDA3MjE2LCAwLjAwNzIxOSwgMC4wMDcyMjMsIDAuMDA3MjI0IiwgXAotICAgICAgICAgICIwLjAwNzE3NSwgMC4wMDcyMjgsIDAuMDA3MjM4LCAwLjAwNzI0NCwgMC4wMDcyNDgsIDAuMDA3MjUsIDAuMDA3MjUiLCBcCi0gICAgICAgICAgIjAuMDA3MjI1LCAwLjAwNzI3NywgMC4wMDcyODcsIDAuMDA3Mjk0LCAwLjAwNzI5OCwgMC4wMDcyOTgsIDAuMDA3Mjk5IiwgXAotICAgICAgICAgICIwLjAwNzM0MiwgMC4wMDczODYsIDAuMDA3Mzk3LCAwLjAwNzQwMSwgMC4wMDc0MDUsIDAuMDA3NDA2LCAwLjAwNzQwNyIsIFwKLSAgICAgICAgICAiMC4wMDc0NTksIDAuMDA3NTAzLCAwLjAwNzUxMSwgMC4wMDc1MTcsIDAuMDA3NTIyLCAwLjAwNzUyMiwgMC4wMDc1MjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDU4NDgsIDAuMDA1OTEzLCAwLjAwNTkyNSwgMC4wMDU5MzIsIDAuMDA1OTM2LCAwLjAwNTkzOCwgMC4wMDU5NCIsIFwKLSAgICAgICAgICAiMC4wMDU4MDksIDAuMDA1ODgyLCAwLjAwNTg5NiwgMC4wMDU5MDMsIDAuMDA1OTA3LCAwLjAwNTkwOSwgMC4wMDU5MTIiLCBcCi0gICAgICAgICAgIjAuMDA1ODI2LCAwLjAwNTg5MiwgMC4wMDU5MDUsIDAuMDA1OTExLCAwLjAwNTkxNSwgMC4wMDU5MTgsIDAuMDA1OTE5IiwgXAotICAgICAgICAgICIwLjAwNTg2LCAwLjAwNTkyOSwgMC4wMDU5NDIsIDAuMDA1OTQ5LCAwLjAwNTk1MywgMC4wMDU5NTYsIDAuMDA1OTU3IiwgXAotICAgICAgICAgICIwLjAwNTkxNSwgMC4wMDU5ODQsIDAuMDA1OTk4LCAwLjAwNjAwNiwgMC4wMDYwMSwgMC4wMDYwMTMsIDAuMDA2MDE0IiwgXAotICAgICAgICAgICIwLjAwNjA0NiwgMC4wMDYxMDMsIDAuMDA2MTE2LCAwLjAwNjEyMiwgMC4wMDYxMjYsIDAuMDA2MTI5LCAwLjAwNjEzIiwgXAotICAgICAgICAgICIwLjAwNjE2NCwgMC4wMDYyMjQsIDAuMDA2MjM4LCAwLjAwNjI0NSwgMC4wMDYyNSwgMC4wMDYyNTEsIDAuMDA2MjUzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2NzQzLCAwLjAwNjc0NCwgMC4wMDY3NDUsIDAuMDA2NzQ1LCAwLjAwNjc0NSwgMC4wMDY3NDksIDAuMDA2NzQ3IiwgXAotICAgICAgICAgICIwLjAwNjcyOCwgMC4wMDY3MjYsIDAuMDA2NzI3LCAwLjAwNjcyOSwgMC4wMDY3MywgMC4wMDY3MzEsIDAuMDA2NzMiLCBcCi0gICAgICAgICAgIjAuMDA2NzI5LCAwLjAwNjcyOCwgMC4wMDY3MjksIDAuMDA2NzI5LCAwLjAwNjczLCAwLjAwNjczNCwgMC4wMDY3MzIiLCBcCi0gICAgICAgICAgIjAuMDA2NzQ1LCAwLjAwNjc1MSwgMC4wMDY3NTMsIDAuMDA2NzU0LCAwLjAwNjc1NCwgMC4wMDY3NTcsIDAuMDA2NzU1IiwgXAotICAgICAgICAgICIwLjAwNjgsIDAuMDA2Nzk3LCAwLjAwNjc5OCwgMC4wMDY3OTgsIDAuMDA2Nzk5LCAwLjAwNjc5OSwgMC4wMDY3OTgiLCBcCi0gICAgICAgICAgIjAuMDA2OTAzLCAwLjAwNjg5OCwgMC4wMDY4OTgsIDAuMDA2ODk4LCAwLjAwNjg5NywgMC4wMDY4OTksIDAuMDA2ODk3IiwgXAotICAgICAgICAgICIwLjAwNzAxMiwgMC4wMDcwMDYsIDAuMDA3MDA3LCAwLjAwNzAwNywgMC4wMDcwMDcsIDAuMDA3MDA3LCAwLjAwNzAwNyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjYwMSwgMC4wMDY2MjMsIDAuMDA2NjI4LCAwLjAwNjYzMSwgMC4wMDY2MzIsIDAuMDA2NjMzLCAwLjAwNjYzMyIsIFwKLSAgICAgICAgICAiMC4wMDY1NjUsIDAuMDA2NTkyLCAwLjAwNjU5OCwgMC4wMDY2MDIsIDAuMDA2NjAzLCAwLjAwNjYwNCwgMC4wMDY2MDUiLCBcCi0gICAgICAgICAgIjAuMDA2NTc5LCAwLjAwNjYsIDAuMDA2NjA1LCAwLjAwNjYwNywgMC4wMDY2MDgsIDAuMDA2NjA5LCAwLjAwNjYwOSIsIFwKLSAgICAgICAgICAiMC4wMDY2MDQsIDAuMDA2NjMzLCAwLjAwNjYzOCwgMC4wMDY2NDEsIDAuMDA2NjQyLCAwLjAwNjY0MywgMC4wMDY2NDQiLCBcCi0gICAgICAgICAgIjAuMDA2NjYzLCAwLjAwNjY4OCwgMC4wMDY2OTQsIDAuMDA2Njk2LCAwLjAwNjY5OCwgMC4wMDY2OTksIDAuMDA2Njk5IiwgXAotICAgICAgICAgICIwLjAwNjc4MSwgMC4wMDY4MDEsIDAuMDA2ODA1LCAwLjAwNjgwOCwgMC4wMDY4MSwgMC4wMDY4MTEsIDAuMDA2ODExIiwgXAotICAgICAgICAgICIwLjAwNjksIDAuMDA2OTE4LCAwLjAwNjkyNCwgMC4wMDY5MjUsIDAuMDA2OTI2LCAwLjAwNjkyOCwgMC4wMDY5MjkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJEIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDcwNCwgMC4wMDcwNDEsIDAuMDA3MDQxLCAwLjAwNzA0MSwgMC4wMDcwNDIsIDAuMDA3MDQxLCAwLjAwNzA0MyIsIFwKLSAgICAgICAgICAiMC4wMDcwMjQsIDAuMDA3MDIzLCAwLjAwNzAyMywgMC4wMDcwMjMsIDAuMDA3MDI0LCAwLjAwNzAyNywgMC4wMDcwMjUiLCBcCi0gICAgICAgICAgIjAuMDA3MDI2LCAwLjAwNzAyNywgMC4wMDcwMjgsIDAuMDA3MDI4LCAwLjAwNzAyOCwgMC4wMDcwMjksIDAuMDA3MDI4IiwgXAotICAgICAgICAgICIwLjAwNzA0MywgMC4wMDcwNSwgMC4wMDcwNTIsIDAuMDA3MDUyLCAwLjAwNzA1MywgMC4wMDcwNTUsIDAuMDA3MDU0IiwgXAotICAgICAgICAgICIwLjAwNzA5MywgMC4wMDcwOTgsIDAuMDA3MDk5LCAwLjAwNzA5OSwgMC4wMDcxMDEsIDAuMDA3MTAyLCAwLjAwNzEwMSIsIFwKLSAgICAgICAgICAiMC4wMDcyMDgsIDAuMDA3MiwgMC4wMDcyLCAwLjAwNzIsIDAuMDA3MjAyLCAwLjAwNzIsIDAuMDA3MiIsIFwKLSAgICAgICAgICAiMC4wMDczMTcsIDAuMDA3MzExLCAwLjAwNzMxLCAwLjAwNzMxMiwgMC4wMDczMTEsIDAuMDA3MzEyLCAwLjAwNzMxMiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjMxMiwgMC4wMDYzMzcsIDAuMDA2MzQxLCAwLjAwNjM0NCwgMC4wMDYzNDUsIDAuMDA2MzQ2LCAwLjAwNjM0NiIsIFwKLSAgICAgICAgICAiMC4wMDYyODQsIDAuMDA2MzA4LCAwLjAwNjMxMywgMC4wMDYzMTUsIDAuMDA2MzE3LCAwLjAwNjMxOCwgMC4wMDYzMTgiLCBcCi0gICAgICAgICAgIjAuMDA2MjksIDAuMDA2MzEyLCAwLjAwNjMxNiwgMC4wMDYzMTksIDAuMDA2MzIsIDAuMDA2MzIxLCAwLjAwNjMyMSIsIFwKLSAgICAgICAgICAiMC4wMDYzMSwgMC4wMDYzNCwgMC4wMDYzNDUsIDAuMDA2MzQ4LCAwLjAwNjM1LCAwLjAwNjM1MSwgMC4wMDYzNTIiLCBcCi0gICAgICAgICAgIjAuMDA2MzY3LCAwLjAwNjM5MiwgMC4wMDYzOTgsIDAuMDA2NDAxLCAwLjAwNjQwMiwgMC4wMDY0MDMsIDAuMDA2NDA0IiwgXAotICAgICAgICAgICIwLjAwNjQ4MSwgMC4wMDY1MDUsIDAuMDA2NTA3LCAwLjAwNjUxLCAwLjAwNjUxMiwgMC4wMDY1MTMsIDAuMDA2NTEzIiwgXAotICAgICAgICAgICIwLjAwNjU5OSwgMC4wMDY2MTgsIDAuMDA2NjI2LCAwLjAwNjYyNiwgMC4wMDY2MjgsIDAuMDA2NjI5LCAwLjAwNjYzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUzAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwOTc0MiwgMC4wMDk3ODgsIDAuMDA5Nzk2LCAwLjAwOTgsIDAuMDA5ODAzLCAwLjAwOTgwNCwgMC4wMDk4MDYiLCBcCi0gICAgICAgICAgIjAuMDA5NzM5LCAwLjAwOTc4NCwgMC4wMDk3OTIsIDAuMDA5Nzk3LCAwLjAwOTgsIDAuMDA5ODA2LCAwLjAwOTgwNSIsIFwKLSAgICAgICAgICAiMC4wMDk3NzQsIDAuMDA5ODE4LCAwLjAwOTgyNywgMC4wMDk4MzIsIDAuMDA5ODM0LCAwLjAwOTgzNiwgMC4wMDk4MzYiLCBcCi0gICAgICAgICAgIjAuMDA5ODgsIDAuMDA5OTI0LCAwLjAwOTkzMywgMC4wMDk5MzQsIDAuMDA5OTQsIDAuMDA5OTQyLCAwLjAwOTk0NiIsIFwKLSAgICAgICAgICAiMC4wMDk5ODMsIDAuMDEwMDMsIDAuMDEwMDM4LCAwLjAxMDA0MiwgMC4wMTAwNDUsIDAuMDEwMDQ2LCAwLjAxMDA0NiIsIFwKLSAgICAgICAgICAiMC4wMTAxOTEsIDAuMDEwMjM0LCAwLjAxMDI0MywgMC4wMTAyNDgsIDAuMDEwMjUsIDAuMDEwMjUyLCAwLjAxMDI1IiwgXAotICAgICAgICAgICIwLjAxMDM1NywgMC4wMTAzOTksIDAuMDEwNDA3LCAwLjAxMDQxMywgMC4wMTA0MTYsIDAuMDEwNDE4LCAwLjAxMDQxOCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMzM4NCwgMC4wMTM0MDcsIDAuMDEzNDExLCAwLjAxMzQxMywgMC4wMTM0MTUsIDAuMDEzNDE1LCAwLjAxMzQxNiIsIFwKLSAgICAgICAgICAiMC4wMTMzODUsIDAuMDEzNDA4LCAwLjAxMzQxMywgMC4wMTM0MTUsIDAuMDEzNDE2LCAwLjAxMzQxNiwgMC4wMTM0MTciLCBcCi0gICAgICAgICAgIjAuMDEzNDczLCAwLjAxMzQ5NywgMC4wMTM1MDIsIDAuMDEzNTA0LCAwLjAxMzUwNSwgMC4wMTM1MDYsIDAuMDEzNTA3IiwgXAotICAgICAgICAgICIwLjAxMzYxMiwgMC4wMTM2MzYsIDAuMDEzNjQsIDAuMDEzNjQyLCAwLjAxMzY0MywgMC4wMTM2NDQsIDAuMDEzNjQ1IiwgXAotICAgICAgICAgICIwLjAxMzc4NiwgMC4wMTM4MTQsIDAuMDEzODIsIDAuMDEzODIzLCAwLjAxMzgyNCwgMC4wMTM4MjUsIDAuMDEzODI2IiwgXAotICAgICAgICAgICIwLjAxNDE3NCwgMC4wMTQxOTgsIDAuMDE0MjA0LCAwLjAxNDIwNywgMC4wMTQyMDgsIDAuMDE0MjA5LCAwLjAxNDIxIiwgXAotICAgICAgICAgICIwLjAxNDUxNCwgMC4wMTQ1MzQsIDAuMDE0NTM5LCAwLjAxNDU0MiwgMC4wMTQ1NDIsIDAuMDE0NTQzLCAwLjAxNDU0MyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlMxIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDYzNzQsIDAuMDA2NDMsIDAuMDA2NDQyLCAwLjAwNjQ0OCwgMC4wMDY0NTIsIDAuMDA2NDU2LCAwLjAwNjQ1NiIsIFwKLSAgICAgICAgICAiMC4wMDYzOTEsIDAuMDA2NDQ3LCAwLjAwNjQ1OCwgMC4wMDY0NjUsIDAuMDA2NDY5LCAwLjAwNjQ3MSwgMC4wMDY0NzIiLCBcCi0gICAgICAgICAgIjAuMDA2NDU2LCAwLjAwNjUxMiwgMC4wMDY1MjMsIDAuMDA2NTMsIDAuMDA2NTMzLCAwLjAwNjUzNiwgMC4wMDY1MzciLCBcCi0gICAgICAgICAgIjAuMDA2NTYyLCAwLjAwNjYxNiwgMC4wMDY2MjUsIDAuMDA2NjMyLCAwLjAwNjYzNSwgMC4wMDY2MzgsIDAuMDA2NjM5IiwgXAotICAgICAgICAgICIwLjAwNjY4MSwgMC4wMDY3MzQsIDAuMDA2NzQzLCAwLjAwNjc0OSwgMC4wMDY3NTUsIDAuMDA2NzU0LCAwLjAwNjc1NiIsIFwKLSAgICAgICAgICAiMC4wMDY4ODUsIDAuMDA2OTM1LCAwLjAwNjk0NCwgMC4wMDY5NSwgMC4wMDY5NTMsIDAuMDA2OTUzLCAwLjAwNjk1NCIsIFwKLSAgICAgICAgICAiMC4wMDcxMjgsIDAuMDA3MTc4LCAwLjAwNzE4NSwgMC4wMDcxOTEsIDAuMDA3MTkyLCAwLjAwNzE5MywgMC4wMDcxOTUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDUyMDcsIDAuMDA1MjUsIDAuMDA1MjYsIDAuMDA1MjY2LCAwLjAwNTI3LCAwLjAwNTI3MSwgMC4wMDUyNzMiLCBcCi0gICAgICAgICAgIjAuMDA1MjE1LCAwLjAwNTI1OCwgMC4wMDUyNjgsIDAuMDA1Mjc0LCAwLjAwNTI3NywgMC4wMDUyNzksIDAuMDA1MjgxIiwgXAotICAgICAgICAgICIwLjAwNTI3NywgMC4wMDUzMjEsIDAuMDA1MzMxLCAwLjAwNTMzNywgMC4wMDUzNCwgMC4wMDUzNDIsIDAuMDA1MzQ0IiwgXAotICAgICAgICAgICIwLjAwNTM4NiwgMC4wMDU0MjgsIDAuMDA1NDM3LCAwLjAwNTQ0MywgMC4wMDU0NDYsIDAuMDA1NDQ4LCAwLjAwNTQ0OSIsIFwKLSAgICAgICAgICAiMC4wMDU1MDksIDAuMDA1NTQ4LCAwLjAwNTU1NiwgMC4wMDU1NiwgMC4wMDU1NjMsIDAuMDA1NTY0LCAwLjAwNTU2NiIsIFwKLSAgICAgICAgICAiMC4wMDU3MjUsIDAuMDA1NzU5LCAwLjAwNTc2NSwgMC4wMDU3NjksIDAuMDA1NzcxLCAwLjAwNTc3MiwgMC4wMDU3NzMiLCBcCi0gICAgICAgICAgIjAuMDA1OTI5LCAwLjAwNTk1OSwgMC4wMDU5NjQsIDAuMDA1OTY3LCAwLjAwNTk2OCwgMC4wMDU5NjksIDAuMDA1OTcyIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBNWEk0WEwgKgotICogLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChNWEk0WEwpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC43NDE5NTI7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY5MzEzNzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2OTIxNDM7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjkzMTM3OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDk2OCwgMC4wMDA5NDEsIDAuMDAwOTU0LCAwLjAwMDk5NSwgMC4wMDEwNTYsIDAuMDAxMTc3LCAwLjAwMTMwNCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjkxOCwgMC4wMDI5MDIsIDAuMDAyOTE3LCAwLjAwMjk1NSwgMC4wMDMwMTUsIDAuMDAzMTMzLCAwLjAwMzI1NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjM2ODMxOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYzNTM2OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDYzNjgzMTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyODcsIDAuMDAwMjg5LCAwLjAwMDI5LCAwLjAwMDI5LCAwLjAwMDI5MSwgMC4wMDAyOTEsIDAuMDAwMjkyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzEzLCAwLjAwMDMwMywgMC4wMDAzMDEsIDAuMDAwMywgMC4wMDAyOTgsIDAuMDAwMjk5LCAwLjAwMDI5OCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQykgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjY1NzA1OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDY2NDQ3NTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2NjU3MDU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxMDEyLCAwLjAwMDk4NiwgMC4wMDEwMDMsIDAuMDAxMDQ4LCAwLjAwMTExMiwgMC4wMDEyMzksIDAuMDAxMzciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDI3NDYsIDAuMDAyNzI5LCAwLjAwMjc0MiwgMC4wMDI3NzksIDAuMDAyODM2LCAwLjAwMjk1MiwgMC4wMDMwNzQiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEQpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYxNDA1NjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MTMwNzU7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjE0MDU2OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDI4OSwgMC4wMDAyOSwgMC4wMDAyOTEsIDAuMDAwMjkxLCAwLjAwMDI5MSwgMC4wMDAyOTIsIDAuMDAwMjkyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzEyLCAwLjAwMDMwMSwgMC4wMDAzLCAwLjAwMDI5OSwgMC4wMDAyOTksIDAuMDAwMjk4LCAwLjAwMDI5OCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUzApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTk3Nzk4OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTk3Nzk4OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTk3NzY3OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDU2MSwgMC4wMDA1NTksIDAuMDAwNjM3LCAwLjAwMDczOCwgMC4wMDA4NDksIDAuMDAxMDQ5LCAwLjAwMTIzNCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNDE4LCAwLjAwNDE3OCwgMC4wMDQyNDEsIDAuMDA0MzQ1LCAwLjAwNDQzMiwgMC4wMDQ2MTEsIDAuMDA0Nzg0Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTMSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNDQ1Njk7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNDQ1NDI7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNDQ1Njk7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjM1LCAwLjAwMDI2NSwgMC4wMDAzNTEsIDAuMDAwNDU4LCAwLjAwMDU5MywgMC4wMDA4MjMsIDAuMDAxMDI3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyMDg2LCAwLjAwMjEyNCwgMC4wMDIyMDMsIDAuMDAyMzMyLCAwLjAwMjQ1MiwgMC4wMDI2NzYsIDAuMDAyODgxIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMTk3MzI4OwotICAgIGZ1bmN0aW9uIDogIighKChTMSAoKFMwIEQpICsgKCFTMCBDKSkpICsgKCFTMSAoKFMwIEIpICsgKCFTMCBBKSkpKSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExNDIyNCwgMC4xMjQ3NzEsIDAuMjE5NTgxLCAwLjM3NzQ1OSwgMC41MzUyNzksIDAuOTAzNTAyLCAxLjExMzkxIiwgXAotICAgICAgICAgICIwLjEyMDAwMywgMC4xMzA1NTcsIDAuMjI1MzMsIDAuMzgzMjUzLCAwLjU0MTA1OCwgMC45MDkyODksIDEuMTE5OTIiLCBcCi0gICAgICAgICAgIjAuMTI2Mjc1LCAwLjEzNjgzLCAwLjIzMTU5MywgMC4zODk1NDIsIDAuNTQ3MzM5LCAwLjkxNTU2MywgMS4xMjYwNCIsIFwKLSAgICAgICAgICAiMC4xMzEzODYsIDAuMTQxOTQyLCAwLjIzNjc1MSwgMC4zOTQ2MDcsIDAuNTUyNDM1LCAwLjkyMDY2OSwgMS4xMzEwNSIsIFwKLSAgICAgICAgICAiMC4xMzU2NDYsIDAuMTQ2MTk2LCAwLjI0MTAxLCAwLjM5ODg1NywgMC41NTY2OSwgMC45MjQ5MTEsIDEuMTM1MzMiLCBcCi0gICAgICAgICAgIjAuMTQxMzkyLCAwLjE1MTkzNiwgMC4yNDY3NjksIDAuNDA0NjI5LCAwLjU2MjQ3OSwgMC45MzA2MjUsIDEuMTQxMDIiLCBcCi0gICAgICAgICAgIjAuMTQ1NjY2LCAwLjE1NjIyLCAwLjI1MTAxNSwgMC40MDg4ODIsIDAuNTY2NzE1LCAwLjkzNDkwMywgMS4xNDUzIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExNzg0OSwgMC4xMzk2ODcsIDAuMzM4NjQ4LCAwLjY3MTAzNSwgMS4wMDI0OCwgMS43Nzc3OCwgMi4yMjI4NCIsIFwKLSAgICAgICAgICAiMC4xMTc5NTEsIDAuMTM5NzIzLCAwLjMzODQ3NywgMC42NzAyMzUsIDEuMDAyNTIsIDEuNzc3NjQsIDIuMjE5NjIiLCBcCi0gICAgICAgICAgIjAuMTE3OTEzLCAwLjEzOTg2OCwgMC4zMzgyNzYsIDAuNjcxMDU0LCAxLjAwMjQ2LCAxLjc3NzY3LCAyLjIyMjg0IiwgXAotICAgICAgICAgICIwLjExNzk2NSwgMC4xMzk4ODcsIDAuMzM4MzQ3LCAwLjY3MTAyMSwgMS4wMDI3OSwgMS43Nzc4MSwgMi4yMjI3NyIsIFwKLSAgICAgICAgICAiMC4xMTc5NTksIDAuMTM5NzIzLCAwLjMzODM1NSwgMC42NzA0MTEsIDEuMDAyNjgsIDEuNzc4MDEsIDIuMjIwNjgiLCBcCi0gICAgICAgICAgIjAuMTE3ODc5LCAwLjEzOTgzOCwgMC4zMzgyNDUsIDAuNjcwMTE2LCAxLjAwMzM4LCAxLjc3NzU4LCAyLjIyMDYiLCBcCi0gICAgICAgICAgIjAuMTE4MDIyLCAwLjEzOTczMSwgMC4zMzgwNjEsIDAuNjcwMzkzLCAxLjAwMzI5LCAxLjc3OTEsIDIuMjIyNDMiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTEwMTg0LCAwLjExOTg4NSwgMC4yMDY4MTgsIDAuMzUxNTQxLCAwLjQ5NjI1NCwgMC44MzM4MjUsIDEuMDI2NjgiLCBcCi0gICAgICAgICAgIjAuMTE2MzY5LCAwLjEyNjA2LCAwLjIxMjk4NCwgMC4zNTc3MjUsIDAuNTAyNDA0LCAwLjgzOTk5NywgMS4wMzI4NSIsIFwKLSAgICAgICAgICAiMC4xMjMyNTcsIDAuMTMyOTQ0LCAwLjIxOTg4MywgMC4zNjQ2MTQsIDAuNTA5MjgsIDAuODQ2ODUyLCAxLjAzOTc1IiwgXAotICAgICAgICAgICIwLjEyODgzNCwgMC4xMzg1MjQsIDAuMjI1NDQ5LCAwLjM3MDE4OSwgMC41MTQ4OTMsIDAuODUyNDcsIDEuMDQ1MzIiLCBcCi0gICAgICAgICAgIjAuMTMzNTczLCAwLjE0MzI2MSwgMC4yMzAxODIsIDAuMzc0OTI2LCAwLjUxOTY2MSwgMC44NTcyNzUsIDEuMDUwMDUiLCBcCi0gICAgICAgICAgIjAuMTM5OTQ0LCAwLjE0OTYyMSwgMC4yMzY1NzEsIDAuMzgxMjgsIDAuNTI1OTY4LCAwLjg2MzUzOCwgMS4wNTY0MyIsIFwKLSAgICAgICAgICAiMC4xNDQ3NTEsIDAuMTU0NDUzLCAwLjI0MTM3NCwgMC4zODYxMDYsIDAuNTMwODI3LCAwLjg2ODM3NSwgMS4wNjEyNSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDY0MjEsIDAuMTI1NzcxLCAwLjMwMzE5NiwgMC42MDAzMTcsIDAuODk3ODE3LCAxLjU5MTgxLCAxLjk4ODA1IiwgXAotICAgICAgICAgICIwLjEwNjM1NywgMC4xMjU4OTEsIDAuMzAzMTQsIDAuNjAwMzIzLCAwLjg5NjY0NiwgMS41OSwgMS45ODU1NiIsIFwKLSAgICAgICAgICAiMC4xMDY0MTEsIDAuMTI1ODE3LCAwLjMwMzE5MSwgMC41OTk3MjEsIDAuODk3NDg2LCAxLjU4OTYxLCAxLjk4NTkiLCBcCi0gICAgICAgICAgIjAuMTA2NDQ2LCAwLjEyNTgyNCwgMC4zMDMxNDEsIDAuNjAwMzA5LCAwLjg5Nzc1NSwgMS41OTE3NCwgMS45ODc5IiwgXAotICAgICAgICAgICIwLjEwNjQ0NCwgMC4xMjU4NzksIDAuMzAzMDc5LCAwLjYwMDIxMywgMC44OTc4NywgMS41OTIwNywgMS45ODc5MSIsIFwKLSAgICAgICAgICAiMC4xMDY0MTUsIDAuMTI1OTE4LCAwLjMwMzExOCwgMC42MDAxNDYsIDAuODk3NDY0LCAxLjU5MTI5LCAxLjk4NTQ1IiwgXAotICAgICAgICAgICIwLjEwNjQyNSwgMC4xMjU3MjYsIDAuMzAzMDA0LCAwLjYwMDEyNSwgMC44OTYyNDEsIDEuNTkxNCwgMS45ODc4OCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTUxMDUsIDAuMTI1NjUxLCAwLjIyMDQ2NCwgMC4zNzgzMTMsIDAuNTM2MTU2LCAwLjkwNDM4LCAxLjExNDc4IiwgXAotICAgICAgICAgICIwLjEyMDk1NywgMC4xMzE1MTIsIDAuMjI2Mjc5LCAwLjM4NDIyMywgMC41NDIwMTUsIDAuOTEwMjM5LCAxLjEyMDcyIiwgXAotICAgICAgICAgICIwLjEyNzE4MSwgMC4xMzc3MzQsIDAuMjMyNTQ5LCAwLjM5MDM5NywgMC41NDgyNjQsIDAuOTE2NTAyLCAxLjEyNjg3IiwgXAotICAgICAgICAgICIwLjEzMjMwNCwgMC4xNDI4NTksIDAuMjM3NjY5LCAwLjM5NTU1MSwgMC41NTMzNjksIDAuOTIxNTkxLCAxLjEzMjAxIiwgXAotICAgICAgICAgICIwLjEzNjUzOSwgMC4xNDcwOTIsIDAuMjQxOTAyLCAwLjM5OTgxNCwgMC41NTc1OTMsIDAuOTI1ODExLCAxLjEzNjI1IiwgXAotICAgICAgICAgICIwLjE0MjE4OSwgMC4xNTI3MzksIDAuMjQ3NjAyLCAwLjQwNTQ0NiwgMC41NjMyMjcsIDAuOTMxNTA3LCAxLjE0MTgiLCBcCi0gICAgICAgICAgIjAuMTQ2NDI3LCAwLjE1Njk3OSwgMC4yNTE3ODgsIDAuNDA5NjQxLCAwLjU2NzU0NywgMC45MzU3MDUsIDEuMTQ2MSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTc4NDgsIDAuMTM5ODc1LCAwLjMzODY0NCwgMC42NzA0MDEsIDEuMDAyNjMsIDEuNzc3ODksIDIuMjIyNzkiLCBcCi0gICAgICAgICAgIjAuMTE3OTIsIDAuMTM5ODcxLCAwLjMzODI0NSwgMC42NzEwNTksIDEuMDAyNDYsIDEuNzc3NjgsIDIuMjIyODYiLCBcCi0gICAgICAgICAgIjAuMTE3OTE2LCAwLjEzOTc3OCwgMC4zMzgzNywgMC42NzAzOTUsIDEuMDAzNTQsIDEuNzc2NSwgMi4yMjA5NSIsIFwKLSAgICAgICAgICAiMC4xMTc5NTMsIDAuMTM5ODg2LCAwLjMzODY0NywgMC42NzEwMjksIDEuMDAyNTcsIDEuNzc3ODksIDIuMjIyOCIsIFwKLSAgICAgICAgICAiMC4xMTc5NDksIDAuMTM5Nzk0LCAwLjMzODM3MiwgMC42NzA5ODIsIDEuMDAyNTMsIDEuNzc3ODYsIDIuMjIyNTMiLCBcCi0gICAgICAgICAgIjAuMTE3ODU0LCAwLjEzOTg0NiwgMC4zMzgxNzYsIDAuNjcwOTI4LCAxLjAwMzQsIDEuNzc3MTgsIDIuMjIyMjkiLCBcCi0gICAgICAgICAgIjAuMTE3OTgzLCAwLjEzOTY5MiwgMC4zMzg1ODMsIDAuNjcwNDYxLCAxLjAwMzM2LCAxLjc3OTA4LCAyLjIyMjQiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTEwNDk5LCAwLjEyMDIxMiwgMC4yMDcxMzMsIDAuMzUxODc0LCAwLjQ5NjQ0NiwgMC44MzQxMTQsIDEuMDI3IiwgXAotICAgICAgICAgICIwLjExNjczNSwgMC4xMjY0MjEsIDAuMjEzMzQ2LCAwLjM1ODA4NywgMC41MDI4MTksIDAuODQwMzcsIDEuMDMzMjEiLCBcCi0gICAgICAgICAgIjAuMTIzNzM0LCAwLjEzMzQyNSwgMC4yMjAzNDksIDAuMzY1MDg4LCAwLjUwOTc4NSwgMC44NDczMywgMS4wNDAyMyIsIFwKLSAgICAgICAgICAiMC4xMjk0NSwgMC4xMzkxMzcsIDAuMjI2MDY3LCAwLjM3MDgwOSwgMC41MTU0NzgsIDAuODUzMDQ5LCAxLjA0NjAzIiwgXAotICAgICAgICAgICIwLjEzNDI4NiwgMC4xNDM5NzgsIDAuMjMwOTA2LCAwLjM3NTY1MywgMC41MjAzMTYsIDAuODU3ODkxLCAxLjA1MDgyIiwgXAotICAgICAgICAgICIwLjE0MDc3MywgMC4xNTA0NjksIDAuMjM3NDA4LCAwLjM4MjE0NiwgMC41MjY4MiwgMC44NjQzNzQsIDEuMDU3MjYiLCBcCi0gICAgICAgICAgIjAuMTQ1NzI4LCAwLjE1NTQyNCwgMC4yNDIzMzcsIDAuMzg3MDc5LCAwLjUzMTc4MywgMC44NjkzMjksIDEuMDYyMzEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTA2MzcsIDAuMTI1NjIxLCAwLjMwMzE0NywgMC42MDAzNDgsIDAuODk3Mjc1LCAxLjU4OTU5LCAxLjk4MzczIiwgXAotICAgICAgICAgICIwLjEwNjQyNSwgMC4xMjU4ODcsIDAuMzAzMTQsIDAuNjAwMzM5LCAwLjg5Nzg2MiwgMS41OTE3NywgMS45ODc5NiIsIFwKLSAgICAgICAgICAiMC4xMDYzNDIsIDAuMTI1ODAyLCAwLjMwMzEzLCAwLjYwMDMwMiwgMC44OTY1NTcsIDEuNTkxMzIsIDEuOTg1OCIsIFwKLSAgICAgICAgICAiMC4xMDY0NDQsIDAuMTI1ODMyLCAwLjMwMzE0NCwgMC42MDAzMTgsIDAuODk3NDQzLCAxLjU4OTYsIDEuOTg4NSIsIFwKLSAgICAgICAgICAiMC4xMDY0MDQsIDAuMTI1ODQyLCAwLjMwMzExMiwgMC42MDAyNjMsIDAuODk2NDY3LCAxLjU4OTY2LCAxLjk4Nzk5IiwgXAotICAgICAgICAgICIwLjEwNjM5NCwgMC4xMjU4MzUsIDAuMzAzMTkzLCAwLjU5OTI5NiwgMC44OTY1MzEsIDEuNTkxMjksIDEuOTg1NDIiLCBcCi0gICAgICAgICAgIjAuMTA2NDQ1LCAwLjEyNTczNSwgMC4zMDMwNjIsIDAuNjAwMjAzLCAwLjg5NjIxLCAxLjU5MTM2LCAxLjk4ODUxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExMjQ3NSwgMC4xMjMwMTksIDAuMjE3ODI5LCAwLjM3NTY2NSwgMC41MzM1LCAwLjkwMTcyNCwgMS4xMTIxNSIsIFwKLSAgICAgICAgICAiMC4xMTgzNTksIDAuMTI4OTExLCAwLjIyMzY3MSwgMC4zODE2NCwgMC41MzkzOTUsIDAuOTA3NjI0LCAxLjExODAyIiwgXAotICAgICAgICAgICIwLjEyNDUzLCAwLjEzNTA3NywgMC4yMjk4NzYsIDAuMzg3NzUyLCAwLjU0NTU3OSwgMC45MTM4MDEsIDEuMTI0MzIiLCBcCi0gICAgICAgICAgIjAuMTI5NTc1LCAwLjE0MDEyMywgMC4yMzQ5MzUsIDAuMzkyNzczLCAwLjU1MDYwOCwgMC45MTg4MywgMS4xMjkyNSIsIFwKLSAgICAgICAgICAiMC4xMzM2ODgsIDAuMTQ0MjM5LCAwLjIzOTA1NCwgMC4zOTY5MjgsIDAuNTU0NzA0LCAwLjkyMjg5MiwgMS4xMzM1MiIsIFwKLSAgICAgICAgICAiMC4xMzkyMDQsIDAuMTQ5NzUxLCAwLjI0NDU4MSwgMC40MDI0MTgsIDAuNTYwMjIyLCAwLjkyODQ0NCwgMS4xMzg4NSIsIFwKLSAgICAgICAgICAiMC4xNDMzMzEsIDAuMTUzODk0LCAwLjI0ODY3NywgMC40MDY1NzMsIDAuNTY0MzYyLCAwLjkzMjU3NSwgMS4xNDI5NiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTc4MjgsIDAuMTM5Nzk0LCAwLjMzODIzMiwgMC42NzA0MzgsIDEuMDAyNTUsIDEuNzc3NzUsIDIuMjIwMzciLCBcCi0gICAgICAgICAgIjAuMTE3ODU5LCAwLjEzOTY0NSwgMC4zMzg0MTcsIDAuNjcwMDk3LCAxLjAwMjM5LCAxLjc3NzQ0LCAyLjIyMDY5IiwgXAotICAgICAgICAgICIwLjExNzc2NCwgMC4xMzk3ODYsIDAuMzM4NjE1LCAwLjY3MTAxNSwgMS4wMDE5OCwgMS43Nzc0NCwgMi4yMjI4NiIsIFwKLSAgICAgICAgICAiMC4xMTc4ODQsIDAuMTM5ODIsIDAuMzM4MDU5LCAwLjY3MDQ2MywgMS4wMDI1MywgMS43Nzc3NSwgMi4yMjA0MSIsIFwKLSAgICAgICAgICAiMC4xMTc4NjIsIDAuMTM5ODIsIDAuMzM4MjAxLCAwLjY3MDk1NSwgMS4wMDI3MywgMS43NzkyNSwgMi4yMjI1OCIsIFwKLSAgICAgICAgICAiMC4xMTc4MywgMC4xMzk3MDgsIDAuMzM4NTg3LCAwLjY3MDg2MSwgMS4wMDMzNCwgMS43NzkxNSwgMi4yMjI0OCIsIFwKLSAgICAgICAgICAiMC4xMTc4MzUsIDAuMTM5NjYsIDAuMzM4NTAxLCAwLjY3MDg0LCAxLjAwMzIyLCAxLjc3OTA0LCAyLjIyMjM4Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwOTAyMiwgMC4xMTg3MTEsIDAuMjA1NjI0LCAwLjM1MDM1OSwgMC40OTUwMjMsIDAuODMyNTg5LCAxLjAyNTQ3IiwgXAotICAgICAgICAgICIwLjExNTEsIDAuMTI0Nzg2LCAwLjIxMTcwMiwgMC4zNTY0MzksIDAuNTAxMDkyLCAwLjgzODY2MywgMS4wMzE2OSIsIFwKLSAgICAgICAgICAiMC4xMjE5MTcsIDAuMTMxNjA0LCAwLjIxODUxOSwgMC4zNjMyNTgsIDAuNTA3OTE4LCAwLjg0NTQ4NCwgMS4wMzg0MyIsIFwKLSAgICAgICAgICAiMC4xMjc0NDMsIDAuMTM3MTI1LCAwLjIyNDA1OCwgMC4zNjg3ODEsIDAuNTEzNDQ5LCAwLjg1MTAxOSwgMS4wNDM5MSIsIFwKLSAgICAgICAgICAiMC4xMzIwNzUsIDAuMTQxNzU4LCAwLjIyODY5MiwgMC4zNzM0MTgsIDAuNTE4MDY5LCAwLjg1NTY0MSwgMS4wNDg1MyIsIFwKLSAgICAgICAgICAiMC4xMzg0MTQsIDAuMTQ4MTA1LCAwLjIzNTAzNSwgMC4zNzk3NjYsIDAuNTI0NDQ0LCAwLjg2MTk4LCAxLjA1NDg3IiwgXAotICAgICAgICAgICIwLjE0MzEzMSwgMC4xNTI4MjEsIDAuMjM5NzI2LCAwLjM4NDQ2OSwgMC41MjkxNDUsIDAuODY2NzQ2LCAxLjA1OTc2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwNjM5MSwgMC4xMjU1OTMsIDAuMzAzMTMzLCAwLjYwMDM0NSwgMC44OTc2MDIsIDEuNTg4MTEsIDEuOTg4MDgiLCBcCi0gICAgICAgICAgIjAuMTA2Mzk2LCAwLjEyNTg1MSwgMC4zMDMxMjUsIDAuNjAwMzM5LCAwLjg5NzU4NywgMS41OTE0MywgMS45ODg3NSIsIFwKLSAgICAgICAgICAiMC4xMDYzOSwgMC4xMjU4NjcsIDAuMzAzMTIxLCAwLjYwMDMyMywgMC44OTc1MDcsIDEuNTg5NTQsIDEuOTg2MjMiLCBcCi0gICAgICAgICAgIjAuMTA2NDA5LCAwLjEyNTg2NCwgMC4zMDMxMDMsIDAuNjAwMjY3LCAwLjg5NzQ5LCAxLjU4OTYyLCAxLjk4ODE0IiwgXAotICAgICAgICAgICIwLjEwNjQxNCwgMC4xMjU4MzMsIDAuMzAzMTgxLCAwLjYwMDIyNiwgMC44OTc0NDIsIDEuNTkxMjQsIDEuOTg1NDciLCBcCi0gICAgICAgICAgIjAuMTA2NDA4LCAwLjEyNTgxOSwgMC4zMDI3NjUsIDAuNjAwMjM2LCAwLjg5Njc4LCAxLjU5MTIyLCAxLjk4NzciLCBcCi0gICAgICAgICAgIjAuMTA2NDI0LCAwLjEyNTY5NCwgMC4zMDI3MzIsIDAuNjAwMDYzLCAwLjg5NzQ5NiwgMS41OTEzOCwgMS45ODc4NCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJEIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTMzNzEsIDAuMTIzOTE5LCAwLjIxODcyNiwgMC4zNzY1NjMsIDAuNTM0NDA0LCAwLjkwMjYzNywgMS4xMTMwMyIsIFwKLSAgICAgICAgICAiMC4xMTkxNiwgMC4xMjk3MDQsIDAuMjI0NTEyLCAwLjM4MjM1MSwgMC41NDAyMTYsIDAuOTA4MzkyLCAxLjExODgyIiwgXAotICAgICAgICAgICIwLjEyNTMwNiwgMC4xMzU4NSwgMC4yMzA2NjIsIDAuMzg4NTAxLCAwLjU0NjQxNCwgMC45MTQ1NTcsIDEuMTI0OTkiLCBcCi0gICAgICAgICAgIjAuMTMwMzgsIDAuMTQwOTMzLCAwLjIzNTc0MiwgMC4zOTM1ODEsIDAuNTUxNDA3LCAwLjkxOTc4NCwgMS4xMzAwMyIsIFwKLSAgICAgICAgICAiMC4xMzQ1NDIsIDAuMTQ1MDg3LCAwLjIzOTksIDAuMzk3NzI3LCAwLjU1NTU1NCwgMC45MjM3ODcsIDEuMTM0MTYiLCBcCi0gICAgICAgICAgIjAuMTQwMTQxLCAwLjE1MDY4NiwgMC4yNDU0ODgsIDAuNDAzMzM3LCAwLjU2MTE2MywgMC45MjkzNDMsIDEuMTM5NzQiLCBcCi0gICAgICAgICAgIjAuMTQ0MzM4LCAwLjE1NDkwNiwgMC4yNDk2ODUsIDAuNDA3NTc3LCAwLjU2NTM4NywgMC45MzM1NDMsIDEuMTQzOTMiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTE3ODI5LCAwLjEzOTc5OSwgMC4zMzgyNywgMC42NzA0MTUsIDEuMDAyNzMsIDEuNzc5NDIsIDIuMjIyNzkiLCBcCi0gICAgICAgICAgIjAuMTE3ODMsIDAuMTM5NzkxLCAwLjMzODI1MiwgMC42NzA0NTEsIDEuMDAyNDMsIDEuNzc3OTYsIDIuMjIwNSIsIFwKLSAgICAgICAgICAiMC4xMTc4MzMsIDAuMTM5Nzk5LCAwLjMzODI0LCAwLjY3MDQ1MiwgMS4wMDM1NSwgMS43Nzc4MSwgMi4yMjAyNSIsIFwKLSAgICAgICAgICAiMC4xMTc4NTIsIDAuMTM5ODEyLCAwLjMzODMwOCwgMC42NzAzNDIsIDEuMDAyNzUsIDEuNzc5NDMsIDIuMjIwOTUiLCBcCi0gICAgICAgICAgIjAuMTE3ODY0LCAwLjEzOTcyNywgMC4zMzg2MjQsIDAuNjcwOTk5LCAxLjAwMjc2LCAxLjc3OTMyLCAyLjIyMDcyIiwgXAotICAgICAgICAgICIwLjExNzc5OSwgMC4xMzk3MzMsIDAuMzM4NTk4LCAwLjY3MDQ3MywgMS4wMDI0MywgMS43Nzc0NCwgMi4yMjA0NyIsIFwKLSAgICAgICAgICAiMC4xMTc4NSwgMC4xMzk3MDksIDAuMzM4NTU0LCAwLjY2OTgzMiwgMS4wMDIyMywgMS43NzkwNiwgMi4yMjIzNyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDkyNTQsIDAuMTE4OTQsIDAuMjA1ODU1LCAwLjM1MDU5MSwgMC40OTUyNDYsIDAuODMyODE4LCAxLjAyNTcxIiwgXAotICAgICAgICAgICIwLjExNTUwOSwgMC4xMjUxOTcsIDAuMjEyMTEsIDAuMzU2ODQ3LCAwLjUwMTUwNywgMC44MzkwNzIsIDEuMDMxOTUiLCBcCi0gICAgICAgICAgIjAuMTIyNDMsIDAuMTMyMTE0LCAwLjIxOTAzNCwgMC4zNjM3NzMsIDAuNTA4NDMyLCAwLjg0NTk5OSwgMS4wMzkwMSIsIFwKLSAgICAgICAgICAiMC4xMjc5ODksIDAuMTM3Njc0LCAwLjIyNDU5MSwgMC4zNjkzMjQsIDAuNTEzOTk1LCAwLjg1MTU3NiwgMS4wNDQ0NCIsIFwKLSAgICAgICAgICAiMC4xMzI2NzEsIDAuMTQyMzY3LCAwLjIyOTI3NywgMC4zNzQwMjQsIDAuNTE4NjcsIDAuODU2MjQ0LCAxLjA0OTI2IiwgXAotICAgICAgICAgICIwLjEzOTAwMSwgMC4xNDg2OSwgMC4yMzU2MDksIDAuMzgwMzIxLCAwLjUyNTAwMywgMC44NjI1NjUsIDEuMDU1NDUiLCBcCi0gICAgICAgICAgIjAuMTQzNzM5LCAwLjE1MzQyNywgMC4yNDAzNDQsIDAuMzg1MDk4LCAwLjUyOTc4NiwgMC44NjczMjksIDEuMDYwMjYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTA2Mzk0LCAwLjEyNTU5OCwgMC4zMDMxMzQsIDAuNjAwMzQ3LCAwLjg5NzYzNywgMS41ODgwOCwgMS45ODgwNyIsIFwKLSAgICAgICAgICAiMC4xMDYzOSwgMC4xMjU4NzEsIDAuMzAzMTI1LCAwLjYwMDM0MywgMC44OTc1NTQsIDEuNTkxMywgMS45ODgxIiwgXAotICAgICAgICAgICIwLjEwNjM5LCAwLjEyNTg2MiwgMC4zMDMxMiwgMC42MDAzMTYsIDAuODk3NTA5LCAxLjU4OTU3LCAxLjk4ODYyIiwgXAotICAgICAgICAgICIwLjEwNjQzLCAwLjEyNTc5MiwgMC4zMDMxMiwgMC42MDAyOTksIDAuODk3NjE4LCAxLjU5MTYxLCAxLjk4Nzg1IiwgXAotICAgICAgICAgICIwLjEwNjQ1MywgMC4xMjU4MzgsIDAuMzAzMDcsIDAuNjAwMjQ0LCAwLjg5NzQzNiwgMS41ODkzNywgMS45ODg2MyIsIFwKLSAgICAgICAgICAiMC4xMDYzNzQsIDAuMTI1ODk3LCAwLjMwMzA2LCAwLjYwMDE0OCwgMC44OTY0NTMsIDEuNTkxMjMsIDEuOTg3NjEiLCBcCi0gICAgICAgICAgIjAuMTA2NDI1LCAwLjEyNTcwNSwgMC4zMDI2NTIsIDAuNjAwMDUxLCAwLjg5NzYyOCwgMS41OTEzNSwgMS45ODc5NyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTI4MDE4LCAwLjEzODU2MiwgMC4yMzM0MDcsIDAuMzkxMjM3LCAwLjU0OTA3NSwgMC45MTczMjYsIDEuMTI3NzIiLCBcCi0gICAgICAgICAgIjAuMTM2MDExLCAwLjE0NjU1NiwgMC4yNDE0MDMsIDAuMzk5MjM0LCAwLjU1NzA2OSwgMC45MjUzMjIsIDEuMTM1NjciLCBcCi0gICAgICAgICAgIjAuMTQ0MzQ3LCAwLjE1NDkwMSwgMC4yNDk3MTksIDAuNDA3NTY0LCAwLjU2NTQwNCwgMC45MzM2ODUsIDEuMTQ0MDUiLCBcCi0gICAgICAgICAgIjAuMTUwNTY2LCAwLjE2MTExNSwgMC4yNTU5MjgsIDAuNDEzODM1LCAwLjU3MTY0NCwgMC45Mzk4OTYsIDEuMTUwMjYiLCBcCi0gICAgICAgICAgIjAuMTU1NTQxLCAwLjE2NjA4NiwgMC4yNjA5MTQsIDAuNDE4NzU5LCAwLjU3NjYwNSwgMC45NDQ4MzYsIDEuMTU1MjUiLCBcCi0gICAgICAgICAgIjAuMTYyMTY5LCAwLjE3MjcxNiwgMC4yNjc1MjUsIDAuNDI1Mzc5LCAwLjU4MzIyMSwgMC45NTE0MTMsIDEuMTYxOCIsIFwKLSAgICAgICAgICAiMC4xNjcyNzIsIDAuMTc3NzkyLCAwLjI3MjU5NCwgMC40MzA0NDUsIDAuNTg4MjcxLCAwLjk1NjQ1NywgMS4xNjY4NiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTc5MTgsIDAuMTM5ODc3LCAwLjMzODcwOCwgMC42NzExMDEsIDEuMDAzNTcsIDEuNzc3OTUsIDIuMjIzMDQiLCBcCi0gICAgICAgICAgIjAuMTE3OTM4LCAwLjEzOTg3NywgMC4zMzg0MjgsIDAuNjcxMTA1LCAxLjAwMzU0LCAxLjc3OTMsIDIuMjIzMDYiLCBcCi0gICAgICAgICAgIjAuMTE3OTQ0LCAwLjEzOTc4NiwgMC4zMzgzNTUsIDAuNjcwNjc3LCAxLjAwMzU1LCAxLjc3OTYzLCAyLjIyMjc5IiwgXAotICAgICAgICAgICIwLjExNzkxNCwgMC4xMzk4NzQsIDAuMzM4NjksIDAuNjcxMTIxLCAxLjAwMzUzLCAxLjc3OTE2LCAyLjIyMjgzIiwgXAotICAgICAgICAgICIwLjExNzk2NywgMC4xMzk5MDIsIDAuMzM4MzE4LCAwLjY3MDUzNSwgMS4wMDI3MiwgMS43NzkyLCAyLjIyMjgyIiwgXAotICAgICAgICAgICIwLjExNzkzNSwgMC4xMzk3OTEsIDAuMzM4NTUxLCAwLjY3MDc3OCwgMS4wMDMzMywgMS43NzkyOCwgMi4yMjI1OSIsIFwKLSAgICAgICAgICAiMC4xMTc4NjQsIDAuMTM5NzA4LCAwLjMzODI3NCwgMC42NzA0NjgsIDEuMDAzMDgsIDEuNzc5MDEsIDIuMjIyMjciKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTI2MjgzLCAwLjEzNTk3NCwgMC4yMjI4OTYsIDAuMzY3NjM5LCAwLjUxMjMwNiwgMC44NDk4NzgsIDEuMDQyNzYiLCBcCi0gICAgICAgICAgIjAuMTM0MTYzLCAwLjE0Mzg1LCAwLjIzMDc3NSwgMC4zNzU1MTcsIDAuNTIwMjQzLCAwLjg1NzgwNCwgMS4wNTA2NSIsIFwKLSAgICAgICAgICAiMC4xNDIzNjEsIDAuMTUyMDQyLCAwLjIzODk4MywgMC4zODM3MTMsIDAuNTI4NDQzLCAwLjg2NTk4OSwgMS4wNTg4NCIsIFwKLSAgICAgICAgICAiMC4xNDgzMjYsIDAuMTU4MDE2LCAwLjI0NDk1MiwgMC4zODk2OTcsIDAuNTM0MzQ3LCAwLjg3MTkyNiwgMS4wNjQ4MyIsIFwKLSAgICAgICAgICAiMC4xNTMyMDgsIDAuMTYyODk0LCAwLjI0OTgzMywgMC4zOTQ1OTEsIDAuNTM5MjMzLCAwLjg3NjgwNSwgMS4wNjk3IiwgXAotICAgICAgICAgICIwLjE1OTQ2OCwgMC4xNjkxNjYsIDAuMjU2MDk3LCAwLjQwMDgwNiwgMC41NDU1NDksIDAuODgzMDYzLCAxLjA3NTk2IiwgXAotICAgICAgICAgICIwLjE2NDAwOCwgMC4xNzM3MDEsIDAuMjYwNjEyLCAwLjQwNTMzMywgMC41NTAwMTksIDAuODg3NTk0LCAxLjA4MDY1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwNjQxNiwgMC4xMjU4NjUsIDAuMzAzMjIyLCAwLjYwMDM5NCwgMC44OTc2NzIsIDEuNTkxNzUsIDEuOTg4ODUiLCBcCi0gICAgICAgICAgIjAuMTA2NDI1LCAwLjEyNTg4OCwgMC4zMDMxNTksIDAuNjAwMzg1LCAwLjg5Nzg1MywgMS41OTIxNCwgMS45ODg2NyIsIFwKLSAgICAgICAgICAiMC4xMDY0MjUsIDAuMTI1ODY4LCAwLjMwMzE4MywgMC42MDAzNjksIDAuODk3ODUyLCAxLjU5MTc0LCAxLjk4ODE1IiwgXAotICAgICAgICAgICIwLjEwNjQxMywgMC4xMjU4ODUsIDAuMzAzMTkzLCAwLjYwMDM5MSwgMC44OTc2MDgsIDEuNTkxMzEsIDEuOTg4NzYiLCBcCi0gICAgICAgICAgIjAuMTA2NDQ1LCAwLjEyNTksIDAuMzAzMTg4LCAwLjYwMDQwNSwgMC44OTc3NDYsIDEuNTkxNzIsIDEuOTg4MDMiLCBcCi0gICAgICAgICAgIjAuMTA2NDM0LCAwLjEyNTgyNywgMC4zMDI5ODksIDAuNjAwMjMyLCAwLjg5Nzg5OCwgMS41OTE1NywgMS45ODgyIiwgXAotICAgICAgICAgICIwLjEwNjMyOCwgMC4xMjU3NDYsIDAuMzAyNzg3LCAwLjU5OTk1LCAwLjg5NzQ4OCwgMS41OTEzLCAxLjk4ODcyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlMwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDk1NjksIDAuMTIwMTExLCAwLjIxNDkzOSwgMC4zNzI3ODIsIDAuNTMwNjMsIDAuODk4ODgxLCAxLjEwOTMiLCBcCi0gICAgICAgICAgIjAuMTE2ODE0LCAwLjEyNzM1NywgMC4yMjIxODQsIDAuMzgwMDI4LCAwLjUzNzg3MywgMC45MDYxMiwgMS4xMTY1NSIsIFwKLSAgICAgICAgICAiMC4xMjUxMTQsIDAuMTM1NjcsIDAuMjMwNDkzLCAwLjM4ODM0LCAwLjU0NjE3NiwgMC45MTQ1ODQsIDEuMTI0ODgiLCBcCi0gICAgICAgICAgIjAuMTMxNjA1LCAwLjE0MjE2LCAwLjIzNjk4NSwgMC4zOTQ4MywgMC41NTI2OCwgMC45MjA4ODcsIDEuMTMxMzMiLCBcCi0gICAgICAgICAgIjAuMTM3LCAwLjE0NzU2MSwgMC4yNDIzNzMsIDAuNDAwMjQxLCAwLjU1ODA2OSwgMC45MjYzMTMsIDEuMTM2NjciLCBcCi0gICAgICAgICAgIjAuMTQ0MTU0LCAwLjE1NDY5NiwgMC4yNDk1MjMsIDAuNDA3NDY2LCAwLjU2NTIyMiwgMC45MzM0NTQsIDEuMTQzODYiLCBcCi0gICAgICAgICAgIjAuMTQ5NDkxLCAwLjE2MDAzMiwgMC4yNTQ4MzUsIDAuNDEyNzE0LCAwLjU3MDY2OSwgMC45Mzg3NTgsIDEuMTQ5MTUiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTE3OTE1LCAwLjEzOTg3MywgMC4zMzg0MjEsIDAuNjcxMDE4LCAxLjAwMzU0LCAxLjc3OTUzLCAyLjIyMjc5IiwgXAotICAgICAgICAgICIwLjExNzkyLCAwLjEzOTg3NCwgMC4zMzgyOSwgMC42NzA1MDksIDEuMDAzNTMsIDEuNzc5NCwgMi4yMjI5NSIsIFwKLSAgICAgICAgICAiMC4xMTc5NiwgMC4xMzk3NzgsIDAuMzM4NjQzLCAwLjY3MTEsIDEuMDAyNzksIDEuNzc5NjcsIDIuMjIyNzQiLCBcCi0gICAgICAgICAgIjAuMTE4MDAxLCAwLjEzOTkxNiwgMC4zMzg2NTgsIDAuNjcwNDQ2LCAxLjAwMzYzLCAxLjc3OTQ0LCAyLjIyMjcyIiwgXAotICAgICAgICAgICIwLjExNzk5OCwgMC4xMzk5MjMsIDAuMzM4NjQ0LCAwLjY3MTA5MiwgMS4wMDM0OSwgMS43NzkyNCwgMi4yMjI5IiwgXAotICAgICAgICAgICIwLjExNzk3MywgMC4xMzk4MjksIDAuMzM4NjU5LCAwLjY3MTAwOCwgMS4wMDM1MiwgMS43NzkxNiwgMi4yMjI0NSIsIFwKLSAgICAgICAgICAiMC4xMTgwMjcsIDAuMTM5NzksIDAuMzM4NTMzLCAwLjY3MTA1NSwgMS4wMDM1MywgMS43Nzg5LCAyLjIyMjI5Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwNTc0NiwgMC4xMTU0NjIsIDAuMjAyMzgzLCAwLjM0NzEyMiwgMC40OTE3MzIsIDAuODI5MjI4LCAxLjAyMjI3IiwgXAotICAgICAgICAgICIwLjExMzA3LCAwLjEyMjc1MywgMC4yMDk2ODQsIDAuMzU0NDI0LCAwLjQ5OTEwMywgMC44MzY2NzgsIDEuMDI5NTYiLCBcCi0gICAgICAgICAgIjAuMTIxMjE4LCAwLjEzMDkxLCAwLjIxNzgzNCwgMC4zNjI1NzQsIDAuNTA3MjYxLCAwLjg0NDgzNywgMS4wMzc3MyIsIFwKLSAgICAgICAgICAiMC4xMjc1NjIsIDAuMTM3MjYzLCAwLjIyNDE4MiwgMC4zNjg5NjEsIDAuNTEzNjAxLCAwLjg1MTE4MywgMS4wNDQwOSIsIFwKLSAgICAgICAgICAiMC4xMzI3MzksIDAuMTQyNDM2LCAwLjIyOTM3MSwgMC4zNzQwODgsIDAuNTE4Nzg5LCAwLjg1NjM0NywgMS4wNDkyMSIsIFwKLSAgICAgICAgICAiMC4xMzk2MjYsIDAuMTQ5MzIzLCAwLjIzNjI0NiwgMC4zODA5OTksIDAuNTI1Njc3LCAwLjg2MzI3NCwgMS4wNTYxNCIsIFwKLSAgICAgICAgICAiMC4xNDQ4NTksIDAuMTU0NTU1LCAwLjI0MTQ3NywgMC4zODYyMzYsIDAuNTMwOTIyLCAwLjg2ODUwNywgMS4wNjEzNSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDY0MzIsIDAuMTI1ODY2LCAwLjMwMzE3OSwgMC42MDAzOTIsIDAuODk3ODg5LCAxLjU5MjA0LCAxLjk4ODExIiwgXAotICAgICAgICAgICIwLjEwNjQ1MywgMC4xMjU4OTYsIDAuMzAzMTcyLCAwLjYwMDM4NywgMC44OTc4ODEsIDEuNTkxNzgsIDEuOTg4NDUiLCBcCi0gICAgICAgICAgIjAuMTA2NDYxLCAwLjEyNTg4LCAwLjMwMzE2NSwgMC42MDAzNzEsIDAuODk3NTE4LCAxLjU5MTE4LCAxLjk4ODQ3IiwgXAotICAgICAgICAgICIwLjEwNjUwMSwgMC4xMjU5MTYsIDAuMzAzMTc0LCAwLjYwMDQwNSwgMC44OTc1NTksIDEuNTkxNTIsIDEuOTg4MzYiLCBcCi0gICAgICAgICAgIjAuMTA2NTAyLCAwLjEyNTg3NSwgMC4zMDMxOTUsIDAuNjAwMjQyLCAwLjg5NzYyOCwgMS41OTE1LCAxLjk4Nzk1IiwgXAotICAgICAgICAgICIwLjEwNjQ1MiwgMC4xMjU5MDMsIDAuMzAzMjM2LCAwLjYwMDI1NSwgMC44OTc1OTEsIDEuNTkxMjksIDEuOTg4NTciLCBcCi0gICAgICAgICAgIjAuMTA2NTM3LCAwLjEyNTgxLCAwLjMwMzEzMSwgMC42MDAxNzIsIDAuODk3NjU0LCAxLjU5MTQ4LCAxLjk4ODAyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlMxIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzk0MywgMC4wODk5NjQsIDAuMTg0NzQ5LCAwLjM0MjU3NSwgMC41MDA0MzQsIDAuODY4NjMsIDEuMDc5MDgiLCBcCi0gICAgICAgICAgIjAuMDg2ODE4LCAwLjA5NzM1NSwgMC4xOTIxNDEsIDAuMzQ5OTY2LCAwLjUwNzgwNywgMC44NzYwMjYsIDEuMDg2NDQiLCBcCi0gICAgICAgICAgIjAuMDk1MDM3LCAwLjEwNTU3OCwgMC4yMDAzMzcsIDAuMzU4MTY5LCAwLjUxNjAwNiwgMC44ODQyMjYsIDEuMDk0NjQiLCBcCi0gICAgICAgICAgIjAuMTAxMzc1LCAwLjExMTkxNSwgMC4yMDY2NjYsIDAuMzY0NDkzLCAwLjUyMjMsIDAuODkwNTM4LCAxLjEwMDk4IiwgXAotICAgICAgICAgICIwLjEwNjYsIDAuMTE3MTMsIDAuMjExODg4LCAwLjM2OTcwMiwgMC41Mjc0OTEsIDAuODk1NzQzLCAxLjEwNjI0IiwgXAotICAgICAgICAgICIwLjExMzU1LCAwLjEyNDExNSwgMC4yMTg5MDcsIDAuMzc2ODI5LCAwLjUzNDUzMywgMC45MDI3NDYsIDEuMTEzMTgiLCBcCi0gICAgICAgICAgIjAuMTE4ODA2LCAwLjEyOTM3NiwgMC4yMjQxODQsIDAuMzgyMDExLCAwLjUzOTg0NiwgMC45MDgwMDUsIDEuMTE4NDQiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTE3NzksIDAuMTM5NzYyLCAwLjMzODE0NSwgMC42NzAzOTUsIDEuMDAzNTUsIDEuNzc3NTUsIDIuMjE5NDEiLCBcCi0gICAgICAgICAgIjAuMTE3ODE2LCAwLjEzOTc2OSwgMC4zMzgxMzYsIDAuNjcwNTIxLCAxLjAwMTg4LCAxLjc3NzUxLCAyLjIyMDMzIiwgXAotICAgICAgICAgICIwLjExODAzNiwgMC4xMzk5NDYsIDAuMzM4NjA1LCAwLjY3MDQwNCwgMS4wMDI0MywgMS43Nzc1NSwgMi4yMjAzMiIsIFwKLSAgICAgICAgICAiMC4xMTg0NzQsIDAuMTQwMjE4LCAwLjMzODM5NiwgMC42NzA5NjYsIDEuMDAyNzMsIDEuNzc5MTQsIDIuMjIyNjkiLCBcCi0gICAgICAgICAgIjAuMTE4ODgxLCAwLjE0MDU4MiwgMC4zMzg4MjMsIDAuNjcwOTQ5LCAxLjAwMjUyLCAxLjc3NzU3LCAyLjIyMjYyIiwgXAotICAgICAgICAgICIwLjExOTUwMywgMC4xNDA5OTQsIDAuMzM4ODY2LCAwLjY3MDUxNCwgMS4wMDI2LCAxLjc3NzYzLCAyLjIxOTA0IiwgXAotICAgICAgICAgICIwLjEyMDIxLCAwLjE0MTY5NywgMC4zMzg3NDIsIDAuNjcxMjQ4LCAxLjAwMzUyLCAxLjc3OTI5LCAyLjIyMDM2Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3Nzk5MywgMC4wODc2NzUsIDAuMTc0NTc3LCAwLjMxOTMwOCwgMC40NjM5NzQsIDAuODAxNTYxLCAwLjk5NDQyNSIsIFwKLSAgICAgICAgICAiMC4wODUyODMsIDAuMDk0OTczLCAwLjE4MTg5MiwgMC4zMjY2NTUsIDAuNDcxMjc4LCAwLjgwODg1MywgMS4wMDE3NSIsIFwKLSAgICAgICAgICAiMC4wOTM1MjEsIDAuMTAzMjExLCAwLjE5MDExNiwgMC4zMzQ4NTIsIDAuNDc5NTExLCAwLjgxNzA3OSwgMS4wMDk5OCIsIFwKLSAgICAgICAgICAiMC4wOTk4ODEsIDAuMTA5NTY4LCAwLjE5NjQ2NCwgMC4zNDEyMjgsIDAuNDg1ODkzLCAwLjgyMzQ4NiwgMS4wMTYzMiIsIFwKLSAgICAgICAgICAiMC4xMDUxNzksIDAuMTE0OTAyLCAwLjIwMTc4OSwgMC4zNDY1NDIsIDAuNDkxMjEsIDAuODI4ODM4LCAxLjAyMTYzIiwgXAotICAgICAgICAgICIwLjExMjE0MywgMC4xMjE4ODYsIDAuMjA4OTIyLCAwLjM1MzYzMywgMC40OTgzNjcsIDAuODM1ODc3LCAxLjAyODcyIiwgXAotICAgICAgICAgICIwLjExNzQzOSwgMC4xMjcxODQsIDAuMjE0MzExLCAwLjM1OTAxNywgMC41MDM3MjMsIDAuODQxMzY3LCAxLjAzNDExIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwNjM5NCwgMC4xMjU3NTYsIDAuMzAzMTI0LCAwLjYwMDMxMiwgMC44OTc1MzQsIDEuNTkxNjMsIDEuOTg3OTEiLCBcCi0gICAgICAgICAgIjAuMTA2MzkzLCAwLjEyNTc3NywgMC4zMDMxNTksIDAuNTk5MDM3LCAwLjg5NzU4OSwgMS41OTEzOCwgMS45ODU3MiIsIFwKLSAgICAgICAgICAiMC4xMDY2OTksIDAuMTI2MDQ2LCAwLjMwMzE3NywgMC42MDAzNDIsIDAuODk3NTA4LCAxLjU4OTU1LCAxLjk4NTg2IiwgXAotICAgICAgICAgICIwLjEwNzIxMiwgMC4xMjY1MSwgMC4zMDMwMTcsIDAuNjAwMTk3LCAwLjg5NzU3MywgMS41OTEyOSwgMS45ODc4NSIsIFwKLSAgICAgICAgICAiMC4xMDc2MTUsIDAuMTI2OTE1LCAwLjMwMzQ3NSwgMC42MDAyNjUsIDAuODk3NzUxLCAxLjU5MjEzLCAxLjk4Nzg0IiwgXAotICAgICAgICAgICIwLjEwODI0MSwgMC4xMjczMzYsIDAuMzAzMjY1LCAwLjYwMDQzNywgMC44OTc2NDYsIDEuNTkxMzUsIDEuOTg3NzEiLCBcCi0gICAgICAgICAgIjAuMTA4OTg0LCAwLjEyNzk2MSwgMC4zMDM1NzcsIDAuNjAwNzg0LCAwLjg5Nzc3OCwgMS41OTE2LCAxLjk4NzcyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlMxIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTEyNjYsIDAuMTAxODE1LCAwLjE5NjY0LCAwLjM1NDQ5MywgMC41MTIzMjEsIDAuODgwNTQ1LCAxLjA5MDk5IiwgXAotICAgICAgICAgICIwLjA5ODIxNiwgMC4xMDg3NjcsIDAuMjAzNTk2LCAwLjM2MTQ0MSwgMC41MTkyOTUsIDAuODg3NTI2LCAxLjA5Nzg4IiwgXAotICAgICAgICAgICIwLjEwMzU4NCwgMC4xMTQxMzMsIDAuMjA4OTUxLCAwLjM2Njc5OSwgMC41MjQ2MzEsIDAuODkyODYxLCAxLjEwMzI4IiwgXAotICAgICAgICAgICIwLjEwNzE5NiwgMC4xMTc3NTksIDAuMjEyNTc2LCAwLjM3MDQ0OSwgMC41MjgyOTQsIDAuODk2NDc4LCAxLjEwNjg1IiwgXAotICAgICAgICAgICIwLjExMDIwMiwgMC4xMjA3ODIsIDAuMjE1NjUzLCAwLjM3MzUwMSwgMC41MzEzMzQsIDAuODk5NjYsIDEuMTEwMDEiLCBcCi0gICAgICAgICAgIjAuMTE0MjQ1LCAwLjEyNDgzMywgMC4yMTk3NywgMC4zNzc2MzgsIDAuNTM1NDcxLCAwLjkwMzcyOCwgMS4xMTQwOSIsIFwKLSAgICAgICAgICAiMC4xMTcxNTEsIDAuMTI3NzI0LCAwLjIyMjY4NSwgMC4zODA1NzEsIDAuNTM4Mzk4LCAwLjkwNjY0OCwgMS4xMTcxOSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTc4NTQsIDAuMTM5ODA4LCAwLjMzODMzMywgMC42NzA0NDgsIDEuMDAzNTEsIDEuNzc4MDEsIDIuMjE3OSIsIFwKLSAgICAgICAgICAiMC4xMTc4NDgsIDAuMTM5Njc1LCAwLjMzODE1OSwgMC42NzA0NzMsIDEuMDAxOTEsIDEuNzc3NTYsIDIuMjIyODUiLCBcCi0gICAgICAgICAgIjAuMTE3OTA2LCAwLjEzOTg2OSwgMC4zMzgzMDUsIDAuNjcwMzY1LCAxLjAwMjc0LCAxLjc3ODAzLCAyLjIyMDcyIiwgXAotICAgICAgICAgICIwLjExODAyMywgMC4xMzk5MDgsIDAuMzM4NDExLCAwLjY2OTk2NCwgMS4wMDM0NiwgMS43NzkzMSwgMi4yMjI0MiIsIFwKLSAgICAgICAgICAiMC4xMTgwMDgsIDAuMTM5ODU0LCAwLjMzODQ5MSwgMC42NzA4ODcsIDEuMDAzMywgMS43NzkxNSwgMi4yMjI0OSIsIFwKLSAgICAgICAgICAiMC4xMTc5NywgMC4xMzk5MDUsIDAuMzM4NTI5LCAwLjY3MDQ5NSwgMS4wMDIyMSwgMS43Nzg5NCwgMi4yMjIyOCIsIFwKLSAgICAgICAgICAiMC4xMTgxMDQsIDAuMTQwMTIyLCAwLjMzODM2OSwgMC42NzA2MDUsIDEuMDAyNiwgMS43Nzg4MywgMi4yMjIzIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4ODE3NCwgMC4wOTc4NTcsIDAuMTg0Nzg0LCAwLjMyOTUyNywgMC40NzQxOTEsIDAuODExNzY1LCAxLjAwNDc0IiwgXAotICAgICAgICAgICIwLjA5NTE3OCwgMC4xMDQ4NjEsIDAuMTkxNzg2LCAwLjMzNjU0NywgMC40ODExOTIsIDAuODE4NzY0LCAxLjAxMTY1IiwgXAotICAgICAgICAgICIwLjEwMDU4NiwgMC4xMTAyODEsIDAuMTk3MiwgMC4zNDE5MzcsIDAuNDg2NjAyLCAwLjgyNDE1OSwgMS4wMTcwNiIsIFwKLSAgICAgICAgICAiMC4xMDQ1ODQsIDAuMTE0Mjg3LCAwLjIwMTIyMywgMC4zNDU5NTUsIDAuNDkwNjM0LCAwLjgyODE3MywgMS4wMjExMSIsIFwKLSAgICAgICAgICAiMC4xMDc4ODQsIDAuMTE3NTk1LCAwLjIwNDU2NywgMC4zNDkyODEsIDAuNDkzOTk4LCAwLjgzMTU4OCwgMS4wMjQ1MSIsIFwKLSAgICAgICAgICAiMC4xMTIzNjMsIDAuMTIyMDQ3LCAwLjIwOTA0NSwgMC4zNTM3NzEsIDAuNDk4NDUsIDAuODM2MDQyLCAxLjAyODk4IiwgXAotICAgICAgICAgICIwLjExNTY5MywgMC4xMjUzODgsIDAuMjEyMzcsIDAuMzU3MTE2LCAwLjUwMTgwOCwgMC44Mzk0MDgsIDEuMDMyMjQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTA2MzM1LCAwLjEyNTgwNSwgMC4zMDMxMjUsIDAuNjAwMzM5LCAwLjg5NjQ5NSwgMS41ODk3NiwgMS45ODg2NCIsIFwKLSAgICAgICAgICAiMC4xMDYzMTcsIDAuMTI1NzksIDAuMzAyNzYzLCAwLjYwMDMyMSwgMC44OTc0MjQsIDEuNTg5NjksIDEuOTg1NjkiLCBcCi0gICAgICAgICAgIjAuMTA2MzY2LCAwLjEyNTgxOSwgMC4zMDMxMTIsIDAuNjAwMzAyLCAwLjg5NzQ0MywgMS41OTEyNiwgMS45ODc4NSIsIFwKLSAgICAgICAgICAiMC4xMDY0MTIsIDAuMTI1ODcsIDAuMzAyODE4LCAwLjU5OTI3NSwgMC44OTc1MDcsIDEuNTkxMjIsIDEuOTg3ODciLCBcCi0gICAgICAgICAgIjAuMTA2MzgzLCAwLjEyNTc3MSwgMC4zMDI3NDYsIDAuNTk5OTk4LCAwLjg5NzMxMSwgMS41ODkxNSwgMS45ODgxNyIsIFwKLSAgICAgICAgICAiMC4xMDYzNzgsIDAuMTI1NzcxLCAwLjMwMjc1NCwgMC41OTk2MzIsIDAuODk3MTI5LCAxLjU5MTI2LCAxLjk4NTM1IiwgXAotICAgICAgICAgICIwLjEwNjUyNSwgMC4xMjU4MTQsIDAuMzAyNjA0LCAwLjU5OTQwMywgMC44OTYxNjMsIDEuNTg5NTIsIDEuOTg1NDYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQ5MDcsIDAuMDA0OTA5LCAwLjAwNDkxNSwgMC4wMDQ5MTcsIDAuMDA0OTE3LCAwLjAwNDkxOCwgMC4wMDQ5MTgiLCBcCi0gICAgICAgICAgIjAuMDA0ODksIDAuMDA0ODkyLCAwLjAwNDg5NywgMC4wMDQ4OTksIDAuMDA0OSwgMC4wMDQ5MDEsIDAuMDA0OTAxIiwgXAotICAgICAgICAgICIwLjAwNDkwMSwgMC4wMDQ5MDMsIDAuMDA0OTA5LCAwLjAwNDkxMSwgMC4wMDQ5MTIsIDAuMDA0OTEzLCAwLjAwNDkxMyIsIFwKLSAgICAgICAgICAiMC4wMDQ5NCwgMC4wMDQ5NDEsIDAuMDA0OTQ3LCAwLjAwNDk1LCAwLjAwNDk1LCAwLjAwNDk1MSwgMC4wMDQ5NTEiLCBcCi0gICAgICAgICAgIjAuMDA0OTk3LCAwLjAwNDk5OSwgMC4wMDUwMDQsIDAuMDA1MDA3LCAwLjAwNTAwOCwgMC4wMDUwMDgsIDAuMDA1MDA5IiwgXAotICAgICAgICAgICIwLjAwNTExOCwgMC4wMDUxMiwgMC4wMDUxMjUsIDAuMDA1MTI4LCAwLjAwNTEyOSwgMC4wMDUxMywgMC4wMDUxMyIsIFwKLSAgICAgICAgICAiMC4wMDUyNDQsIDAuMDA1MjQ2LCAwLjAwNTI1MSwgMC4wMDUyNTQsIDAuMDA1MjU1LCAwLjAwNTI1NywgMC4wMDUyNTYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDM2MjgsIDAuMDAzNjMsIDAuMDAzNjM3LCAwLjAwMzYzOSwgMC4wMDM2NCwgMC4wMDM2NDEsIDAuMDAzNjQxIiwgXAotICAgICAgICAgICIwLjAwMzYwMSwgMC4wMDM2MDMsIDAuMDAzNjEsIDAuMDAzNjEyLCAwLjAwMzYxMiwgMC4wMDM2MTMsIDAuMDAzNjEzIiwgXAotICAgICAgICAgICIwLjAwMzYxMSwgMC4wMDM2MTMsIDAuMDAzNjIsIDAuMDAzNjIzLCAwLjAwMzYyMywgMC4wMDM2MjQsIDAuMDAzNjI0IiwgXAotICAgICAgICAgICIwLjAwMzY1MywgMC4wMDM2NTUsIDAuMDAzNjYyLCAwLjAwMzY2NSwgMC4wMDM2NjYsIDAuMDAzNjY3LCAwLjAwMzY2NyIsIFwKLSAgICAgICAgICAiMC4wMDM3MTIsIDAuMDAzNzE0LCAwLjAwMzcyLCAwLjAwMzcyMywgMC4wMDM3MjQsIDAuMDAzNzI1LCAwLjAwMzcyNSIsIFwKLSAgICAgICAgICAiMC4wMDM4MzYsIDAuMDAzODM4LCAwLjAwMzg0NCwgMC4wMDM4NDgsIDAuMDAzODQ3LCAwLjAwMzg0OCwgMC4wMDM4NDgiLCBcCi0gICAgICAgICAgIjAuMDAzOTYzLCAwLjAwMzk2NSwgMC4wMDM5NzIsIDAuMDAzOTc0LCAwLjAwMzk3OCwgMC4wMDM5NzYsIDAuMDAzOTc2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1MTQsIDAuMDA1MTQxLCAwLjAwNTE0NywgMC4wMDUxNDksIDAuMDA1MTUyLCAwLjAwNTE1MSwgMC4wMDUxNTEiLCBcCi0gICAgICAgICAgIjAuMDA1MTIyLCAwLjAwNTEyNCwgMC4wMDUxMjksIDAuMDA1MTMxLCAwLjAwNTEzMiwgMC4wMDUxMzMsIDAuMDA1MTMzIiwgXAotICAgICAgICAgICIwLjAwNTEzLCAwLjAwNTEzMSwgMC4wMDUxMzcsIDAuMDA1MTQsIDAuMDA1MTQsIDAuMDA1MTQxLCAwLjAwNTE0MSIsIFwKLSAgICAgICAgICAiMC4wMDUxNiwgMC4wMDUxNjIsIDAuMDA1MTY4LCAwLjAwNTE3MSwgMC4wMDUxNzIsIDAuMDA1MTcyLCAwLjAwNTE3MyIsIFwKLSAgICAgICAgICAiMC4wMDUyMTIsIDAuMDA1MjEzLCAwLjAwNTIyLCAwLjAwNTIyMiwgMC4wMDUyMjMsIDAuMDA1MjI0LCAwLjAwNTIyMyIsIFwKLSAgICAgICAgICAiMC4wMDUzMjMsIDAuMDA1MzI2LCAwLjAwNTMzMiwgMC4wMDUzMzUsIDAuMDA1MzM1LCAwLjAwNTMzNiwgMC4wMDUzMzYiLCBcCi0gICAgICAgICAgIjAuMDA1NDQ1LCAwLjAwNTQ0NiwgMC4wMDU0NTIsIDAuMDA1NDU1LCAwLjAwNTQ1NiwgMC4wMDU0NTcsIDAuMDA1NDU2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzNDkzLCAwLjAwMzQ5NSwgMC4wMDM1MDEsIDAuMDAzNTA0LCAwLjAwMzUwNSwgMC4wMDM1MDYsIDAuMDAzNTA2IiwgXAotICAgICAgICAgICIwLjAwMzQ2NSwgMC4wMDM0NjcsIDAuMDAzNDczLCAwLjAwMzQ3NiwgMC4wMDM0NzcsIDAuMDAzNDc4LCAwLjAwMzQ3OCIsIFwKLSAgICAgICAgICAiMC4wMDM0NzYsIDAuMDAzNDc3LCAwLjAwMzQ4NCwgMC4wMDM0ODcsIDAuMDAzNDg4LCAwLjAwMzQ4OSwgMC4wMDM0ODkiLCBcCi0gICAgICAgICAgIjAuMDAzNTE3LCAwLjAwMzUxOSwgMC4wMDM1MjYsIDAuMDAzNTI5LCAwLjAwMzUyOSwgMC4wMDM1MywgMC4wMDM1MyIsIFwKLSAgICAgICAgICAiMC4wMDM1NzYsIDAuMDAzNTc3LCAwLjAwMzU4NCwgMC4wMDM1ODcsIDAuMDAzNTg4LCAwLjAwMzU4OSwgMC4wMDM1ODkiLCBcCi0gICAgICAgICAgIjAuMDAzNywgMC4wMDM3MDEsIDAuMDAzNzA4LCAwLjAwMzcxLCAwLjAwMzcxMSwgMC4wMDM3MTIsIDAuMDAzNzEyIiwgXAotICAgICAgICAgICIwLjAwMzgyNywgMC4wMDM4MjgsIDAuMDAzODM2LCAwLjAwMzgzOCwgMC4wMDM4MzksIDAuMDAzODQsIDAuMDAzODQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQ0NDksIDAuMDA0NDUsIDAuMDA0NDU2LCAwLjAwNDQ1OCwgMC4wMDQ0NjIsIDAuMDA0NDYsIDAuMDA0NDYyIiwgXAotICAgICAgICAgICIwLjAwNDQzMSwgMC4wMDQ0MzMsIDAuMDA0NDM5LCAwLjAwNDQ0LCAwLjAwNDQ0MSwgMC4wMDQ0NDMsIDAuMDA0NDQ0IiwgXAotICAgICAgICAgICIwLjAwNDQ0MSwgMC4wMDQ0NDMsIDAuMDA0NDQ5LCAwLjAwNDQ1MiwgMC4wMDQ0NTQsIDAuMDA0NDUzLCAwLjAwNDQ1NCIsIFwKLSAgICAgICAgICAiMC4wMDQ0NzYsIDAuMDA0NDc5LCAwLjAwNDQ4NSwgMC4wMDQ0ODcsIDAuMDA0NDg4LCAwLjAwNDQ4OSwgMC4wMDQ0OSIsIFwKLSAgICAgICAgICAiMC4wMDQ1MzMsIDAuMDA0NTM0LCAwLjAwNDUzOSwgMC4wMDQ1NDIsIDAuMDA0NTQzLCAwLjAwNDU0MywgMC4wMDQ1NDQiLCBcCi0gICAgICAgICAgIjAuMDA0NjUyLCAwLjAwNDY1MywgMC4wMDQ2NiwgMC4wMDQ2NjIsIDAuMDA0NjYzLCAwLjAwNDY2NCwgMC4wMDQ2NjQiLCBcCi0gICAgICAgICAgIjAuMDA0Nzc4LCAwLjAwNDc4LCAwLjAwNDc4NSwgMC4wMDQ3OSwgMC4wMDQ3ODgsIDAuMDA0NzksIDAuMDA0Nzg5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzODc5LCAwLjAwMzg4MSwgMC4wMDM4ODcsIDAuMDAzODg5LCAwLjAwMzg5LCAwLjAwMzg5MSwgMC4wMDM4OTEiLCBcCi0gICAgICAgICAgIjAuMDAzODUyLCAwLjAwMzg1NCwgMC4wMDM4NiwgMC4wMDM4NjMsIDAuMDAzODY0LCAwLjAwMzg2NSwgMC4wMDM4NjUiLCBcCi0gICAgICAgICAgIjAuMDAzODY3LCAwLjAwMzg2OSwgMC4wMDM4NzUsIDAuMDAzODc4LCAwLjAwMzg3OSwgMC4wMDM4NzksIDAuMDAzODgiLCBcCi0gICAgICAgICAgIjAuMDAzOTEzLCAwLjAwMzkxNCwgMC4wMDM5MjEsIDAuMDAzOTI0LCAwLjAwMzkyNSwgMC4wMDM5MjYsIDAuMDAzOTI2IiwgXAotICAgICAgICAgICIwLjAwMzk3NCwgMC4wMDM5NzcsIDAuMDAzOTgyLCAwLjAwMzk4NSwgMC4wMDM5ODYsIDAuMDAzOTg2LCAwLjAwMzk4NyIsIFwKLSAgICAgICAgICAiMC4wMDQxMDUsIDAuMDA0MTA3LCAwLjAwNDExNCwgMC4wMDQxMTcsIDAuMDA0MTE4LCAwLjAwNDExOCwgMC4wMDQxMTgiLCBcCi0gICAgICAgICAgIjAuMDA0MjM3LCAwLjAwNDIzNywgMC4wMDQyNDQsIDAuMDA0MjQ3LCAwLjAwNDI0OCwgMC4wMDQyNDksIDAuMDA0MjQ5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0NzcsIDAuMDA0NzcxLCAwLjAwNDc3NywgMC4wMDQ3NzksIDAuMDA0NzgsIDAuMDA0NzgyLCAwLjAwNDc4MSIsIFwKLSAgICAgICAgICAiMC4wMDQ3NTIsIDAuMDA0NzUzLCAwLjAwNDc1OSwgMC4wMDQ3NjEsIDAuMDA0NzYzLCAwLjAwNDc2NSwgMC4wMDQ3NjQiLCBcCi0gICAgICAgICAgIjAuMDA0NzYxLCAwLjAwNDc2MywgMC4wMDQ3NjksIDAuMDA0NzcyLCAwLjAwNDc3MiwgMC4wMDQ3NzMsIDAuMDA0Nzc0IiwgXAotICAgICAgICAgICIwLjAwNDc5NiwgMC4wMDQ3OTcsIDAuMDA0ODA0LCAwLjAwNDgwNiwgMC4wMDQ4MDcsIDAuMDA0ODA4LCAwLjAwNDgwOCIsIFwKLSAgICAgICAgICAiMC4wMDQ4NDgsIDAuMDA0ODUyLCAwLjAwNDg1NiwgMC4wMDQ4NTksIDAuMDA0ODYsIDAuMDA0ODYsIDAuMDA0ODYxIiwgXAotICAgICAgICAgICIwLjAwNDk2NiwgMC4wMDQ5NjksIDAuMDA0OTc1LCAwLjAwNDk3NywgMC4wMDQ5NzgsIDAuMDA0OTc5LCAwLjAwNDk3OSIsIFwKLSAgICAgICAgICAiMC4wMDUwOSwgMC4wMDUwOTQsIDAuMDA1MDk5LCAwLjAwNTEwMiwgMC4wMDUxMDMsIDAuMDA1MTA0LCAwLjAwNTEwMyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzY0OCwgMC4wMDM2NSwgMC4wMDM2NTYsIDAuMDAzNjU5LCAwLjAwMzY2LCAwLjAwMzY2MSwgMC4wMDM2NiIsIFwKLSAgICAgICAgICAiMC4wMDM2MiwgMC4wMDM2MjIsIDAuMDAzNjI4LCAwLjAwMzYzMSwgMC4wMDM2MzEsIDAuMDAzNjMyLCAwLjAwMzYzMiIsIFwKLSAgICAgICAgICAiMC4wMDM2MjgsIDAuMDAzNjMsIDAuMDAzNjM3LCAwLjAwMzYzOSwgMC4wMDM2NCwgMC4wMDM2NDEsIDAuMDAzNjQxIiwgXAotICAgICAgICAgICIwLjAwMzY3LCAwLjAwMzY3MiwgMC4wMDM2NzksIDAuMDAzNjgxLCAwLjAwMzY4MiwgMC4wMDM2ODMsIDAuMDAzNjgzIiwgXAotICAgICAgICAgICIwLjAwMzcyOCwgMC4wMDM3MzEsIDAuMDAzNzM3LCAwLjAwMzc0LCAwLjAwMzc0MSwgMC4wMDM3NDIsIDAuMDAzNzQyIiwgXAotICAgICAgICAgICIwLjAwMzg1MSwgMC4wMDM4NTMsIDAuMDAzODYsIDAuMDAzODYxLCAwLjAwMzg2NCwgMC4wMDM4NjUsIDAuMDAzODY1IiwgXAotICAgICAgICAgICIwLjAwMzk3OCwgMC4wMDM5ODIsIDAuMDAzOTg5LCAwLjAwMzk5MSwgMC4wMDM5OTIsIDAuMDAzOTksIDAuMDAzOTkxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUzAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNzM0OCwgMC4wMDczNDksIDAuMDA3MzU1LCAwLjAwNzM1NywgMC4wMDczNTgsIDAuMDA3MzYsIDAuMDA3MzYiLCBcCi0gICAgICAgICAgIjAuMDA3MzM5LCAwLjAwNzM0MSwgMC4wMDczNDYsIDAuMDA3MzQ5LCAwLjAwNzM0OSwgMC4wMDczNTEsIDAuMDA3MzUiLCBcCi0gICAgICAgICAgIjAuMDA3MzgzLCAwLjAwNzM4NCwgMC4wMDczOTEsIDAuMDA3MzkzLCAwLjAwNzM5MywgMC4wMDczOTMsIDAuMDA3Mzk0IiwgXAotICAgICAgICAgICIwLjAwNzQ4MiwgMC4wMDc0ODMsIDAuMDA3NDg5LCAwLjAwNzQ5MSwgMC4wMDc0OTIsIDAuMDA3NDkyLCAwLjAwNzQ5MyIsIFwKLSAgICAgICAgICAiMC4wMDc1ODQsIDAuMDA3NTg1LCAwLjAwNzU5MSwgMC4wMDc1OTMsIDAuMDA3NTk1LCAwLjAwNzU5NSwgMC4wMDc1OTUiLCBcCi0gICAgICAgICAgIjAuMDA3NzgsIDAuMDA3NzgyLCAwLjAwNzc4OCwgMC4wMDc3ODksIDAuMDA3NzkxLCAwLjAwNzc5MSwgMC4wMDc3OTIiLCBcCi0gICAgICAgICAgIjAuMDA3OTc4LCAwLjAwNzk3OCwgMC4wMDc5ODIsIDAuMDA3OTg3LCAwLjAwNzk4NiwgMC4wMDc5ODUsIDAuMDA3OTkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTAxMTgsIDAuMDEwMTIsIDAuMDEwMTI2LCAwLjAxMDEyOSwgMC4wMTAxMjksIDAuMDEwMTMsIDAuMDEwMTMiLCBcCi0gICAgICAgICAgIjAuMDEwMDk3LCAwLjAxMDA5OSwgMC4wMTAxMDUsIDAuMDEwMTA3LCAwLjAxMDEwOCwgMC4wMTAxMDksIDAuMDEwMTA5IiwgXAotICAgICAgICAgICIwLjAxMDIyMSwgMC4wMTAyMjMsIDAuMDEwMjI5LCAwLjAxMDIzMSwgMC4wMTAyMzIsIDAuMDEwMjMzLCAwLjAxMDIzMyIsIFwKLSAgICAgICAgICAiMC4wMTAzODcsIDAuMDEwMzg5LCAwLjAxMDM5NiwgMC4wMTAzOTksIDAuMDEwMzk5LCAwLjAxMDQsIDAuMDEwNCIsIFwKLSAgICAgICAgICAiMC4wMTA1ODcsIDAuMDEwNTg5LCAwLjAxMDU5NiwgMC4wMTA1OTgsIDAuMDEwNTk5LCAwLjAxMDYsIDAuMDEwNiIsIFwKLSAgICAgICAgICAiMC4wMTA5MTMsIDAuMDEwOTE1LCAwLjAxMDkyMSwgMC4wMTA5MjQsIDAuMDEwOTI0LCAwLjAxMDkyNSwgMC4wMTA5MjUiLCBcCi0gICAgICAgICAgIjAuMDExMTg4LCAwLjAxMTE4OSwgMC4wMTExOTUsIDAuMDExMTk3LCAwLjAxMTE5OCwgMC4wMTExOTksIDAuMDExMTk5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUzEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzY4OSwgMC4wMDM2OTEsIDAuMDAzNjk4LCAwLjAwMzcwMSwgMC4wMDM3MDQsIDAuMDAzNzA2LCAwLjAwMzcwNiIsIFwKLSAgICAgICAgICAiMC4wMDM3MDMsIDAuMDAzNzA1LCAwLjAwMzcxMiwgMC4wMDM3MTYsIDAuMDAzNzE3LCAwLjAwMzcxOCwgMC4wMDM3MTgiLCBcCi0gICAgICAgICAgIjAuMDAzNzkyLCAwLjAwMzc5MywgMC4wMDM3OTksIDAuMDAzODAyLCAwLjAwMzgwMywgMC4wMDM4MDQsIDAuMDAzODA0IiwgXAotICAgICAgICAgICIwLjAwMzkwNywgMC4wMDM5MDcsIDAuMDAzOTEzLCAwLjAwMzkxNSwgMC4wMDM5MTYsIDAuMDAzOTE3LCAwLjAwMzkxNyIsIFwKLSAgICAgICAgICAiMC4wMDQwMjksIDAuMDA0MDMsIDAuMDA0MDM0LCAwLjAwNDAzNSwgMC4wMDQwMzUsIDAuMDA0MDM3LCAwLjAwNDAzNiIsIFwKLSAgICAgICAgICAiMC4wMDQyNTcsIDAuMDA0MjU3LCAwLjAwNDI2LCAwLjAwNDI2LCAwLjAwNDI2MSwgMC4wMDQyNiwgMC4wMDQyNTkiLCBcCi0gICAgICAgICAgIjAuMDA0NTExLCAwLjAwNDUxMSwgMC4wMDQ1MTEsIDAuMDA0NTEsIDAuMDA0NTA5LCAwLjAwNDUxLCAwLjAwNDUwOSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjczLCAwLjAwMjczMiwgMC4wMDI3MzksIDAuMDAyNzQyLCAwLjAwMjc0MywgMC4wMDI3NDQsIDAuMDAyNzQ1IiwgXAotICAgICAgICAgICIwLjAwMjczNSwgMC4wMDI3MzcsIDAuMDAyNzQ1LCAwLjAwMjc0OCwgMC4wMDI3NDksIDAuMDAyNzUsIDAuMDAyNzUiLCBcCi0gICAgICAgICAgIjAuMDAyODIsIDAuMDAyODIyLCAwLjAwMjgyOSwgMC4wMDI4MzIsIDAuMDAyODMzLCAwLjAwMjgzNCwgMC4wMDI4MzQiLCBcCi0gICAgICAgICAgIjAuMDAyOTM0LCAwLjAwMjkzNywgMC4wMDI5NDMsIDAuMDAyOTQ2LCAwLjAwMjk0NywgMC4wMDI5NDgsIDAuMDAyOTQ4IiwgXAotICAgICAgICAgICIwLjAwMzA2NCwgMC4wMDMwNjUsIDAuMDAzMDcxLCAwLjAwMzA3NCwgMC4wMDMwNzUsIDAuMDAzMDc2LCAwLjAwMzA3NiIsIFwKLSAgICAgICAgICAiMC4wMDMyOTYsIDAuMDAzMjk5LCAwLjAwMzMwMywgMC4wMDMzMDQsIDAuMDAzMzA0LCAwLjAwMzMwNSwgMC4wMDMzMDUiLCBcCi0gICAgICAgICAgIjAuMDAzNTA3LCAwLjAwMzUwOSwgMC4wMDM1MTIsIDAuMDAzNTEzLCAwLjAwMzUxNCwgMC4wMDM1MTQsIDAuMDAzNTE0Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IE5BTkQyQlgxICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChOQU5EMkJYMSkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjI1ODMyMzsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQU4pICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY5NDYzODsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2OTQ2Mzg7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjk0NjIzOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDUyOSwgMC4wMDA1NDUsIDAuMDAwNjEyLCAwLjAwMDcxOCwgMC4wMDA4NDIsIDAuMDAxMDY1LCAwLjAwMTI1OCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTk2MSwgMC4wMDE5NzQsIDAuMDAyMDUsIDAuMDAyMTU4LCAwLjAwMjI4MSwgMC4wMDI1MTEsIDAuMDAyNjk3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA5NTc4NjQ7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwOTU3NTMzOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDk1Nzg2NDsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAzMjksIDAuMDAwMzI4LCAwLjAwMDMyOCwgMC4wMDAzMjgsIDAuMDAwMzI4LCAwLjAwMDMyOCwgMC4wMDAzMjgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA1OTUsIDAuMDAwNTk2LCAwLjAwMDU5NiwgMC4wMDA1OTYsIDAuMDAwNTk2LCAwLjAwMDU5NiwgMC4wMDA1OTYiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4xOTQ5MzE7Ci0gICAgZnVuY3Rpb24gOiAiKCEoKCFBTikgQikpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQ5NTQ5LCAwLjA2ODE4NiwgMC4xNzM2OTgsIDAuMjY2NzY1LCAwLjM5MTExNywgMC42Mzk4NjUsIDAuNzk0MjczIiwgXAotICAgICAgICAgICIwLjA1NzIwNCwgMC4wNzU4NTMsIDAuMTgxNDg5LCAwLjI3NDY5NSwgMC4zOTg3NzMsIDAuNjQ3NDU1LCAwLjgwMzMzNyIsIFwKLSAgICAgICAgICAiMC4wNjM5NjksIDAuMDgyNjE0LCAwLjE4ODI1NCwgMC4yODE0NzEsIDAuNDA1NjcxLCAwLjY1NDE1MiwgMC44MDkzMzEiLCBcCi0gICAgICAgICAgIjAuMDY4OTY5LCAwLjA4NzYxOSwgMC4xOTMxNjcsIDAuMjg2NDU4LCAwLjQxMDg0OSwgMC42NTkzMTQsIDAuODE0MTc3IiwgXAotICAgICAgICAgICIwLjA3Mjk3NywgMC4wOTE1NTcsIDAuMTk3MDU5LCAwLjI5MDE5MywgMC40MTQ0NTUsIDAuNjYyODcyLCAwLjgxODEzMSIsIFwKLSAgICAgICAgICAiMC4wNzgzMjIsIDAuMDk2OTQyLCAwLjIwMjQ1OCwgMC4yOTU1ODYsIDAuNDE5NzMxLCAwLjY2ODEzMSwgMC44MjMzODQiLCBcCi0gICAgICAgICAgIjAuMDgyNDM4LCAwLjEwMTA5MywgMC4yMDY1NDMsIDAuMjk5NjAzLCAwLjQyMzc5NiwgMC42NzIxODgsIDAuODI4MDA2Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3Mzg2OCwgMC4xMTI5MSwgMC4zMzUxNzEsIDAuNTMxMjQ4LCAwLjc5Mjg1NiwgMS4zMTU4LCAxLjY0MzU3IiwgXAotICAgICAgICAgICIwLjA3MzkyOCwgMC4xMTI5NTgsIDAuMzM1MjQ5LCAwLjUzMTQ1MSwgMC43OTMwNzMsIDEuMzE2NDQsIDEuNjQzOTYiLCBcCi0gICAgICAgICAgIjAuMDc0Mzc3LCAwLjExMzE4MiwgMC4zMzUyODQsIDAuNTMxNDMzLCAwLjc5MzM0LCAxLjMxNjEyLCAxLjY0NDAxIiwgXAotICAgICAgICAgICIwLjA3NDgyNCwgMC4xMTM0MzgsIDAuMzM1MzA0LCAwLjUzMTQzMiwgMC43OTMzMDcsIDEuMzE2NjMsIDEuNjQyOTEiLCBcCi0gICAgICAgICAgIjAuMDc1NDEsIDAuMTEzNjUzLCAwLjMzNTM4MiwgMC41MzE0MjYsIDAuNzkzMDI3LCAxLjMxNjA5LCAxLjY0MzE0IiwgXAotICAgICAgICAgICIwLjA3NjE1LCAwLjExNDI0NywgMC4zMzUzNDksIDAuNTMxNTQzLCAwLjc5MzA4NCwgMS4zMTU4NiwgMS42NDI3OCIsIFwKLSAgICAgICAgICAiMC4wNzY5MjYsIDAuMTE0NjU4LCAwLjMzNTM3MywgMC41MzE2NDksIDAuNzkyOTM4LCAxLjMxNTg4LCAxLjY0MzM3Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3NDY1NiwgMC4xMDY0MDIsIDAuMjg2MjMyLCAwLjQ0NDczLCAwLjY1NTYxMSwgMS4wNzgxOSwgMS4zNDIzIiwgXAotICAgICAgICAgICIwLjA4MjE1NywgMC4xMTM5MjYsIDAuMjkzNjk0LCAwLjQ1MjIwNCwgMC42NjM2NDEsIDEuMDg2NzMsIDEuMzUxMTkiLCBcCi0gICAgICAgICAgIjAuMDg4NDUxLCAwLjEyMDIxMywgMC4zMDAxMDgsIDAuNDU4NTk4LCAwLjY3MDY3OSwgMS4wOTM1MywgMS4zNTcwMiIsIFwKLSAgICAgICAgICAiMC4wOTMwMTgsIDAuMTI0NzgxLCAwLjMwNDc2NiwgMC40NjMyNiwgMC42NzQ2NjcsIDEuMDk3NCwgMS4zNjIxNyIsIFwKLSAgICAgICAgICAiMC4wOTY2MSwgMC4xMjgzNzQsIDAuMzA4MjA4LCAwLjQ2NjgyMSwgMC42NzgyMDQsIDEuMTAwOTYsIDEuMzY1OTIiLCBcCi0gICAgICAgICAgIjAuMTAxMzcsIDAuMTMzMTQ1LCAwLjMxMjg3MSwgMC40NzE0OTMsIDAuNjgzMDQyLCAxLjEwNjM2LCAxLjM2OTkzIiwgXAotICAgICAgICAgICIwLjEwNDk1OCwgMC4xMzY3NTUsIDAuMzE2NDc5LCAwLjQ3NDk4LCAwLjY4NjcyNywgMS4xMDkzMSwgMS4zNzQzOCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTk5MTgsIDAuMTg1MTk5LCAwLjU1MzgxNiwgMC44NzkzNSwgMS4zMTI0NSwgMi4xODIzLCAyLjcyMTE4IiwgXAotICAgICAgICAgICIwLjExOTkxMiwgMC4xODUyMTMsIDAuNTU2NTEsIDAuODgzNTkzLCAxLjMxOTk0LCAyLjE4MTM4LCAyLjcyNjQ0IiwgXAotICAgICAgICAgICIwLjExOTk5OSwgMC4xODQ5NjMsIDAuNTUzNTgsIDAuODgwNjE0LCAxLjMxMzksIDIuMTgyMSwgMi43MjM4NiIsIFwKLSAgICAgICAgICAiMC4xMTk5NywgMC4xODQ5NjksIDAuNTUzNzIsIDAuODc5MTcyLCAxLjMxMzQsIDIuMTg0ODIsIDIuNzIzNjMiLCBcCi0gICAgICAgICAgIjAuMTIwMDA0LCAwLjE4NTAyNCwgMC41NTM5MTYsIDAuODc5MzE3LCAxLjMxMzI3LCAyLjE5MjU5LCAyLjcyMzc4IiwgXAotICAgICAgICAgICIwLjEyMDQzNCwgMC4xODQ5MTcsIDAuNTU0MTU0LCAwLjg4MTI5NywgMS4zMTQ2LCAyLjE4MTgxLCAyLjcyNzg3IiwgXAotICAgICAgICAgICIwLjEyMDYzNCwgMC4xODUwNTMsIDAuNTU0OTg0LCAwLjg4MTE2MywgMS4zMTMxMiwgMi4xODI3OCwgMi43MjQzMSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzcwNjMsIDAuMDU1NzE3LCAwLjE2MTI5MywgMC4yNTQzODksIDAuMzc4ODE5LCAwLjYyNzYyNCwgMC43ODI0NTUiLCBcCi0gICAgICAgICAgIjAuMDQ1MjUyLCAwLjA2MzkwMSwgMC4xNjk1MzYsIDAuMjYyNzczLCAwLjM4Njg2LCAwLjYzNTY0OCwgMC43OTA5MSIsIFwKLSAgICAgICAgICAiMC4wNTU2MTIsIDAuMDc0MTgxLCAwLjE3OTcxNywgMC4yNzMwNTUsIDAuMzk3MjQzLCAwLjY0NTY5MiwgMC44MDA1MTYiLCBcCi0gICAgICAgICAgIjAuMDY1Njc3LCAwLjA4NDgxNSwgMC4xOTAyMTcsIDAuMjgzMzczLCAwLjQwNzQ3NCwgMC42NTYwMDgsIDAuODEwODk1IiwgXAotICAgICAgICAgICIwLjA3Mzk3NiwgMC4wOTUyOSwgMC4yMDA2NTUsIDAuMjkzNzc1LCAwLjQxNzk0OSwgMC42NjYxMTQsIDAuODIxMzMxIiwgXAotICAgICAgICAgICIwLjA4NDI5NiwgMC4xMDk2MDQsIDAuMjE3Mzg2LCAwLjMxMDM5LCAwLjQzNDYzNywgMC42ODI4NjYsIDAuODM4MjM2IiwgXAotICAgICAgICAgICIwLjA5MjYzNCwgMC4xMTk3ODUsIDAuMjMyMTcxLCAwLjMyNTA0NiwgMC40NDkxMTMsIDAuNjk3NTQ4LCAwLjg1MjYzNCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzE3MjQsIDAuMTExMDY3LCAwLjMzMzQ2NCwgMC41Mjk2NjUsIDAuNzkxMDM1LCAxLjMxNDgyLCAxLjY0MTM0IiwgXAotICAgICAgICAgICIwLjA3MzIzOCwgMC4xMTE1MjYsIDAuMzMzMjg3LCAwLjUyOTc0MywgMC43OTEwNzIsIDEuMzE0MDUsIDEuNjQxNiIsIFwKLSAgICAgICAgICAiMC4wNzk5MjUsIDAuMTE2MDAzLCAwLjMzMzIxNywgMC41Mjk2NzQsIDAuNzkwOTgzLCAxLjMxNDA5LCAxLjY0MzA2IiwgXAotICAgICAgICAgICIwLjA4ODUyLCAwLjEyMzAwMSwgMC4zMzQ2MTgsIDAuNTI5NTEzLCAwLjc5MTM2OSwgMS4zMTUsIDEuNjQwNDIiLCBcCi0gICAgICAgICAgIjAuMDk4MDIsIDAuMTMxMjY2LCAwLjMzODQ2NCwgMC41Mjk5NjIsIDAuNzkwNzk0LCAxLjMxMzY0LCAxLjY0MDQ0IiwgXAotICAgICAgICAgICIwLjExNDA0OCwgMC4xNDYxODYsIDAuMzQ2Mzk1LCAwLjUzNDI4NCwgMC43OTEwNjMsIDEuMzE1NTYsIDEuNjQxMjEiLCBcCi0gICAgICAgICAgIjAuMTI1Njk2LCAwLjE1OTg2NiwgMC4zNTUxMTUsIDAuNTM5ODQ4LCAwLjc5NDEyNCwgMS4zMTQ5OSwgMS42NDI5Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2MTU2NCwgMC4wOTMzMDUsIDAuMjcyOTg0LCAwLjQzMTQ4NiwgMC42NDM0NjUsIDEuMDY2MTcsIDEuMzI5NjciLCBcCi0gICAgICAgICAgIjAuMDY5MTE3LCAwLjEwMDk0LCAwLjI4MDgzMiwgMC40MzkyODgsIDAuNjUwNjgxLCAxLjA3MzM5LCAxLjMzNzgxIiwgXAotICAgICAgICAgICIwLjA3ODkzMywgMC4xMTA1OTksIDAuMjkwNDc5LCAwLjQ0OTAzOCwgMC42NjA2ODksIDEuMDgzNTUsIDEuMzQ4NDEiLCBcCi0gICAgICAgICAgIjAuMDg4NzM4LCAwLjEyMDM0OSwgMC4zMDAwMDYsIDAuNDU4NzYsIDAuNjY5OTg1LCAxLjA5MjkxLCAxLjM1NzQ0IiwgXAotICAgICAgICAgICIwLjA5ODkxOSwgMC4xMzAzNjksIDAuMzA5ODUxLCAwLjQ2ODMxOSwgMC42Nzk3NTcsIDEuMTAzNDYsIDEuMzY3MTEiLCBcCi0gICAgICAgICAgIjAuMTEzMzU3LCAwLjE0NjU2MSwgMC4zMjU0ODUsIDAuNDgzNDU2LCAwLjY5NTE1NCwgMS4xMTg0NSwgMS4zODIxMyIsIFwKLSAgICAgICAgICAiMC4xMjQxMzYsIDAuMTYwMjY5LCAwLjMzOTMxOSwgMC40OTc2MjQsIDAuNzA5MDg3LCAxLjEzMTY5LCAxLjM5NjIxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExOTkzOSwgMC4xODUyMDUsIDAuNTU1MDA4LCAwLjg3OTc1OCwgMS4zMTM3OSwgMi4xODIzNSwgMi43Mjc2NSIsIFwKLSAgICAgICAgICAiMC4xMjAwOTEsIDAuMTg0NzQ1LCAwLjU1MzYzNSwgMC44NzkyMDgsIDEuMzE2NTgsIDIuMTkyNTcsIDIuNzI2NjgiLCBcCi0gICAgICAgICAgIjAuMTIzODU2LCAwLjE4NjMzLCAwLjU1MzYyOSwgMC44NzkwODksIDEuMzEzNTEsIDIuMTgxMTEsIDIuNzI1MDkiLCBcCi0gICAgICAgICAgIjAuMTMwMDE2LCAwLjE5MDg1NCwgMC41NTQ5NzYsIDAuODc5NjYzLCAxLjMyMDA4LCAyLjE4MzAxLCAyLjcyMzU4IiwgXAotICAgICAgICAgICIwLjEzNzU4OCwgMC4xOTY3NzEsIDAuNTU0MDQ3LCAwLjg3OTgwOCwgMS4zMTM0NCwgMi4xODI0OSwgMi43MjQ5NiIsIFwKLSAgICAgICAgICAiMC4xNTE0NDUsIDAuMjA4MDc3LCAwLjU1ODcwMSwgMC44NzkzMTMsIDEuMzE1NDEsIDIuMTgxOTMsIDIuNzM3OTkiLCBcCi0gICAgICAgICAgIjAuMTYzMTI0LCAwLjIxOTE2OSwgMC41NjIyMjksIDAuODgyNTgsIDEuMzEzMzgsIDIuMTgxNTUsIDIuNzI2NzkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyMjQ1LCAwLjAwMjI0NywgMC4wMDIyNDgsIDAuMDAyMjQ2LCAwLjAwMjI0OCwgMC4wMDIyNDUsIDAuMDAyMjUyIiwgXAotICAgICAgICAgICIwLjAwMjI0NywgMC4wMDIyNSwgMC4wMDIyNTMsIDAuMDAyMjUzLCAwLjAwMjI1MywgMC4wMDIyNTMsIDAuMDAyMjUzIiwgXAotICAgICAgICAgICIwLjAwMjMzMywgMC4wMDIzMzYsIDAuMDAyMzM4LCAwLjAwMjMzOSwgMC4wMDIzNCwgMC4wMDIzMzksIDAuMDAyMzM5IiwgXAotICAgICAgICAgICIwLjAwMjQzNywgMC4wMDI0MzksIDAuMDAyNDQyLCAwLjAwMjQ0MiwgMC4wMDI0NDIsIDAuMDAyNDQxLCAwLjAwMjQ0MiIsIFwKLSAgICAgICAgICAiMC4wMDI1NjEsIDAuMDAyNTcyLCAwLjAwMjU2MiwgMC4wMDI1NzIsIDAuMDAyNTcxLCAwLjAwMjU2MiwgMC4wMDI1NzEiLCBcCi0gICAgICAgICAgIjAuMDAyNzg1LCAwLjAwMjc4MywgMC4wMDI3NywgMC4wMDI3ODIsIDAuMDAyNzcsIDAuMDAyNzgyLCAwLjAwMjc2OSIsIFwKLSAgICAgICAgICAiMC4wMDI5NzgsIDAuMDAyOTc2LCAwLjAwMjk2NywgMC4wMDI5NjYsIDAuMDAyOTY0LCAwLjAwMjk2NCwgMC4wMDI5NjMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI4MTYsIDAuMDAyODIsIDAuMDAyODI2LCAwLjAwMjgyNywgMC4wMDI4MjcsIDAuMDAyODI4LCAwLjAwMjgyOCIsIFwKLSAgICAgICAgICAiMC4wMDI4MjksIDAuMDAyODM3LCAwLjAwMjg0OCwgMC4wMDI4NSwgMC4wMDI4NTEsIDAuMDAyODUyLCAwLjAwMjg1MiIsIFwKLSAgICAgICAgICAiMC4wMDI4ODksIDAuMDAyODk5LCAwLjAwMjkxNCwgMC4wMDI5MTcsIDAuMDAyOTE4LCAwLjAwMjkyLCAwLjAwMjkyIiwgXAotICAgICAgICAgICIwLjAwMjk4NSwgMC4wMDI5OTYsIDAuMDAzMDEyLCAwLjAwMzAxNSwgMC4wMDMwMTcsIDAuMDAzMDE5LCAwLjAwMzAyIiwgXAotICAgICAgICAgICIwLjAwMzA5OCwgMC4wMDMxMDksIDAuMDAzMTI2LCAwLjAwMzEzNywgMC4wMDMxMzksIDAuMDAzMTQxLCAwLjAwMzE0MSIsIFwKLSAgICAgICAgICAiMC4wMDMzLCAwLjAwMzMxLCAwLjAwMzMyOCwgMC4wMDMzMzIsIDAuMDAzMzQ0LCAwLjAwMzMzNywgMC4wMDMzNDYiLCBcCi0gICAgICAgICAgIjAuMDAzNDk2LCAwLjAwMzUwNywgMC4wMDM1MjQsIDAuMDAzNTI4LCAwLjAwMzUxNywgMC4wMDM1MzIsIDAuMDAzNTMzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxNzA0LCAwLjAwMTcwOCwgMC4wMDE3MTMsIDAuMDAxNzEzLCAwLjAwMTcxNCwgMC4wMDE3MTQsIDAuMDAxNzE0IiwgXAotICAgICAgICAgICIwLjAwMTY5MSwgMC4wMDE2OTksIDAuMDAxNzEyLCAwLjAwMTcxNiwgMC4wMDE3MTcsIDAuMDAxNzE4LCAwLjAwMTcxOSIsIFwKLSAgICAgICAgICAiMC4wMDE3MTksIDAuMDAxNzE3LCAwLjAwMTcxOSwgMC4wMDE3MiwgMC4wMDE3MjEsIDAuMDAxNzIyLCAwLjAwMTcyMiIsIFwKLSAgICAgICAgICAiMC4wMDE3NjIsIDAuMDAxNzQ4LCAwLjAwMTczLCAwLjAwMTcyOSwgMC4wMDE3MjgsIDAuMDAxNzI2LCAwLjAwMTcyNSIsIFwKLSAgICAgICAgICAiMC4wMDE4MzEsIDAuMDAxNzk0LCAwLjAwMTc0OSwgMC4wMDE3NDEsIDAuMDAxNzM1LCAwLjAwMTcyOSwgMC4wMDE3MjgiLCBcCi0gICAgICAgICAgIjAuMDAxOTg1LCAwLjAwMTkwNywgMC4wMDE3OTUsIDAuMDAxNzczLCAwLjAwMTc1OSwgMC4wMDE3NDYsIDAuMDAxNzQxIiwgXAotICAgICAgICAgICIwLjAwMjA4MSwgMC4wMDIwMjYsIDAuMDAxODQ3LCAwLjAwMTgwOCwgMC4wMDE3ODQsIDAuMDAxNzYzLCAwLjAwMTc1NiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDMxLCAwLjAwMDMxNSwgMC4wMDAzMjIsIDAuMDAwMzIzLCAwLjAwMDMyNCwgMC4wMDAzMjUsIDAuMDAwMzI1IiwgXAotICAgICAgICAgICIwLjAwMDI3OSwgMC4wMDAyOTIsIDAuMDAwMzEzLCAwLjAwMDMxNywgMC4wMDAzMiwgMC4wMDAzMjIsIDAuMDAwMzIzIiwgXAotICAgICAgICAgICIwLjAwMDMwMiwgMC4wMDAzMDQsIDAuMDAwMzE0LCAwLjAwMDMxOCwgMC4wMDAzMiwgMC4wMDAzMjMsIDAuMDAwMzIzIiwgXAotICAgICAgICAgICIwLjAwMDM0LCAwLjAwMDMzLCAwLjAwMDMyMywgMC4wMDAzMjQsIDAuMDAwMzI0LCAwLjAwMDMyNSwgMC4wMDAzMjUiLCBcCi0gICAgICAgICAgIjAuMDAwNDEyLCAwLjAwMDM4LCAwLjAwMDM0NCwgMC4wMDAzMzcsIDAuMDAwMzMzLCAwLjAwMDMzLCAwLjAwMDMyOSIsIFwKLSAgICAgICAgICAiMC4wMDA1NjEsIDAuMDAwNDg5LCAwLjAwMDM4OCwgMC4wMDAzNjgsIDAuMDAwMzU1LCAwLjAwMDM0NCwgMC4wMDAzNCIsIFwKLSAgICAgICAgICAiMC4wMDA3MTYsIDAuMDAwNjA0LCAwLjAwMDQ0MiwgMC4wMDA0MDgsIDAuMDAwMzgzLCAwLjAwMDM2MSwgMC4wMDAzNTQiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogTkFORDJCWDIgKgotICogLS0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKE5BTkQyQlgyKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuNDM5OTcxOwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBTikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjE4NjE4OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYxODYxODsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2MTg2MDI7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxMSwgMC4wMDEwOTYsIDAuMDAxMTYxLCAwLjAwMTI1NSwgMC4wMDEzNywgMC4wMDE1ODgsIDAuMDAxNzU4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyNjY3LCAwLjAwMjY2OSwgMC4wMDI3MzgsIDAuMDAyODMxLCAwLjAwMjk1MSwgMC4wMDMxOTEsIDAuMDAzMzU4Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE3NTMyOTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE3NTI4MTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE3NTMyOTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA2NTUsIDAuMDAwNjU0LCAwLjAwMDY1NSwgMC4wMDA2NTQsIDAuMDAwNjU0LCAwLjAwMDY1NCwgMC4wMDA2NTQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDExOTEsIDAuMDAxMTkyLCAwLjAwMTE5MiwgMC4wMDExOTIsIDAuMDAxMTkyLCAwLjAwMTE5MiwgMC4wMDExOTIiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC40MDcyMTQ7Ci0gICAgZnVuY3Rpb24gOiAiKCEoKCFBTikgQikpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM5NTY2LCAwLjExNzQwMSwgMC4xNzk0ODIsIDAuMjU3MDI2LCAwLjMzNDkzMiwgMC40MTI2NjUsIDAuNDkwMDE4IiwgXAotICAgICAgICAgICIwLjA0NzYzNywgMC4xMjU0NDcsIDAuMTg3NjA4LCAwLjI2NTM2NiwgMC4zNDMwMTUsIDAuNDIwNDMyLCAwLjQ5ODEyNiIsIFwKLSAgICAgICAgICAiMC4wNTYxNjMsIDAuMTM0MDU2LCAwLjE5NjE0MSwgMC4yNzM4MDQsIDAuMzUxNDc0LCAwLjQyOTA5NywgMC41MDY5MSIsIFwKLSAgICAgICAgICAiMC4wNjI0MTEsIDAuMTQwMzgyLCAwLjIwMjQ5LCAwLjI4MDA5NCwgMC4zNTc4NTQsIDAuNDM1MzQ0LCAwLjUxMzAyOCIsIFwKLSAgICAgICAgICAiMC4wNjc1NzcsIDAuMTQ1NDE3LCAwLjIwNzQ4LCAwLjI4NTE2NSwgMC4zNjI4NTksIDAuNDQwMzUyLCAwLjUxODQwNyIsIFwKLSAgICAgICAgICAiMC4wNzQ2MTUsIDAuMTUyNjU4LCAwLjIxNDY4NCwgMC4yOTIyODYsIDAuMzY5ODY4LCAwLjQ0NzQ5LCAwLjUyNTM4OSIsIFwKLSAgICAgICAgICAiMC4wNzk3LCAwLjE1NzkxMywgMC4yMTk2NjksIDAuMjk3MjE3LCAwLjM3NDgwNiwgMC40NTI0MDcsIDAuNTMwMjA4Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0Mjc1NCwgMC4yMDQ2MjcsIDAuMzM1Mzk0LCAwLjQ5ODc3MywgMC42NjI0NjcsIDAuODI2MDA3LCAwLjk4OTI0MiIsIFwKLSAgICAgICAgICAiMC4wNDI4NjYsIDAuMjA0NjMzLCAwLjMzNTQyMSwgMC40OTkwODEsIDAuNjYyNDU3LCAwLjgyNjM1MiwgMC45ODkzNDQiLCBcCi0gICAgICAgICAgIjAuMDQzNzc3LCAwLjIwNDcyMSwgMC4zMzU0MzMsIDAuNDk5MDMsIDAuNjYyNDgsIDAuODI1OTYzLCAwLjk4OTU0NCIsIFwKLSAgICAgICAgICAiMC4wNDUwMTEsIDAuMjA0ODc5LCAwLjMzNTQ1NiwgMC40OTg5NDksIDAuNjYyNTE1LCAwLjgyNTc2NCwgMC45ODkzMTUiLCBcCi0gICAgICAgICAgIjAuMDQ2MTI0LCAwLjIwNTAwMSwgMC4zMzU1NTksIDAuNDk4OTk3LCAwLjY2MjQ1OCwgMC44MjY0OTcsIDAuOTg5NjgzIiwgXAotICAgICAgICAgICIwLjA0NzY2NywgMC4yMDUyNzksIDAuMzM1NTc5LCAwLjQ5OTAwMiwgMC42NjI2MzIsIDAuODI2MDIzLCAwLjk4OTQ3NSIsIFwKLSAgICAgICAgICAiMC4wNDkyNTksIDAuMjA1NTM5LCAwLjMzNTY2NiwgMC40OTkxOCwgMC42NjI1MDMsIDAuODI1OTUzLCAwLjk4OTUxMyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTQwMiwgMC4xODY1OTgsIDAuMjkyNTQ1LCAwLjQyNTAxOSwgMC41NTczNTQsIDAuNjg5OTA0LCAwLjgyMjExMiIsIFwKLSAgICAgICAgICAiMC4wNjE5NCwgMC4xOTQ1NjgsIDAuMzAwNjU3LCAwLjQzMjk5MywgMC41NjU1MzksIDAuNjk3Nzg2LCAwLjgzMDk2MSIsIFwKLSAgICAgICAgICAiMC4wNzAxNSwgMC4yMDI4OSwgMC4zMDg4MTEsIDAuNDQxNDcyLCAwLjU3Mzg0MiwgMC43MDYwMzQsIDAuODM5MTIxIiwgXAotICAgICAgICAgICIwLjA3NjExOSwgMC4yMDg4MSwgMC4zMTQ3NjcsIDAuNDQ3NTE3LCAwLjU3OTc5LCAwLjcxMjE0LCAwLjg0NDQyNSIsIFwKLSAgICAgICAgICAiMC4wODA5OTcsIDAuMjEzNjQ2LCAwLjMxOTc3MywgMC40NTIwNDYsIDAuNTg0NTU4LCAwLjcxNjkxNCwgMC44NDkxODYiLCBcCi0gICAgICAgICAgIjAuMDg3MzIyLCAwLjIxOTk4NywgMC4zMjU5MzEsIDAuNDU4NTE2LCAwLjU5MSwgMC43MjM0ODgsIDAuODU1NzQ3IiwgXAotICAgICAgICAgICIwLjA5MjA0MiwgMC4yMjQ2NTgsIDAuMzMwNjA3LCAwLjQ2Mjk2OSwgMC41OTUzOTcsIDAuNzI4MDA2LCAwLjg2MDM2OCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjYzNzEsIDAuMzM5ODY0LCAwLjU1ODMwNywgMC44MzE1MjMsIDEuMTEwNTIsIDEuMzc4NDYsIDEuNjU0NDEiLCBcCi0gICAgICAgICAgIjAuMDY2Mzk0LCAwLjMzOTg3MiwgMC41NTgxMzYsIDAuODMxNDU2LCAxLjEwNjEsIDEuMzgxODYsIDEuNjUyODIiLCBcCi0gICAgICAgICAgIjAuMDY2NjY3LCAwLjMzOTE3NiwgMC41NTgzNDcsIDAuODMxNjQxLCAxLjEwNjA5LCAxLjM4MTg2LCAxLjY1Mjg2IiwgXAotICAgICAgICAgICIwLjA2NzA3MSwgMC4zMzk5NDEsIDAuNTU5MjQ2LCAwLjgzMTU3NywgMS4xMDQ4NywgMS4zNzg1MSwgMS42NTQ2NyIsIFwKLSAgICAgICAgICAiMC4wNjc1MzcsIDAuMzM5ODExLCAwLjU1Nzk5NywgMC44MzI2NjMsIDEuMTA1MDgsIDEuMzgxNzIsIDEuNjU1NzIiLCBcCi0gICAgICAgICAgIjAuMDY4MTcsIDAuMzM5MjI0LCAwLjU1OTEyMiwgMC44MzE0NTcsIDEuMTA1NDIsIDEuMzc4MzYsIDEuNjUyMjMiLCBcCi0gICAgICAgICAgIjAuMDY4ODEsIDAuMzM5NDMzLCAwLjU1OTE1MSwgMC44MzMyMDUsIDEuMTA2NDQsIDEuMzc4NTgsIDEuNjUyMTIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDIxODU2LCAwLjEwMTQ1LCAwLjE2NDk0MSwgMC4yNDQzNDEsIDAuMzI0MDc4LCAwLjQwMzI2NSwgMC40ODI2MzMiLCBcCi0gICAgICAgICAgIjAuMDMwMDgzLCAwLjEwOTY2MiwgMC4xNzMxMzMsIDAuMjUyNTA3LCAwLjMzMjI0NiwgMC40MTEzNjcsIDAuNDkwOTY1IiwgXAotICAgICAgICAgICIwLjAzOTYxNiwgMC4xMjAwMDIsIDAuMTgzNTg3LCAwLjI2MjkzNywgMC4zNDIzOCwgMC40MjE4NjksIDAuNTAxMTY2IiwgXAotICAgICAgICAgICIwLjA0NjcwMywgMC4xMzAxNzIsIDAuMTkzNjgzLCAwLjI3MzIwMSwgMC4zNTI0NjQsIDAuNDMyMDc2LCAwLjUxMTE3NSIsIFwKLSAgICAgICAgICAiMC4wNTIxMjYsIDAuMTQwNzQxLCAwLjIwNDE5NSwgMC4yODM1NzgsIDAuMzYzMTUyLCAwLjQ0MjcxLCAwLjUyMTcxOCIsIFwKLSAgICAgICAgICAiMC4wNTkzNDEsIDAuMTU3Njg2LCAwLjIyMDk0NCwgMC4zMDAyNzQsIDAuMzc5NTgzLCAwLjQ1ODQyNywgMC41Mzg0ODkiLCBcCi0gICAgICAgICAgIjAuMDY0MjgxLCAwLjE3MjU3NSwgMC4yMzU3MjMsIDAuMzE0OTY1LCAwLjM5NDE4MywgMC40NzM1NDksIDAuNTUzMjQ3Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzOTc4MiwgMC4yMDczODksIDAuMzQxNTgxLCAwLjUwODk5NywgMC42NzY3NzgsIDAuODQ0MTcyLCAxLjAxMTcxIiwgXAotICAgICAgICAgICIwLjA0MzIyNywgMC4yMDczMiwgMC4zNDEyMjcsIDAuNTA4ODU0LCAwLjY3Njc3MywgMC44NDQ0NjMsIDEuMDEyMzYiLCBcCi0gICAgICAgICAgIjAuMDUyMTEzLCAwLjIwODc2MSwgMC4zNDE0MDcsIDAuNTA4NzgzLCAwLjY3Njk4NiwgMC44NDQ2NzQsIDEuMDExMTYiLCBcCi0gICAgICAgICAgIjAuMDYxNDI4LCAwLjIxMjk1LCAwLjM0MzEwNywgMC41MDkwMDEsIDAuNjc3MjU2LCAwLjg0NDEzNCwgMS4wMTExNiIsIFwKLSAgICAgICAgICAiMC4wNzA0OTIsIDAuMjE4NDg2LCAwLjM0NjM1OSwgMC41MTA1NzgsIDAuNjc2NTYyLCAwLjg0Mzk2OSwgMS4wMTI1OSIsIFwKLSAgICAgICAgICAiMC4wODI1ODMsIDAuMjI5OTQxLCAwLjM1NDA3NCwgMC41MTQwOTcsIDAuNjc5MTk3LCAwLjg0NDQ5MywgMS4wMTE2MSIsIFwKLSAgICAgICAgICAiMC4wOTI5NzEsIDAuMjQxNTQsIDAuMzYyNjAyLCAwLjUyMDIxMywgMC42ODE3MjksIDAuODQ3NDI2LCAxLjAxMjA4Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzNTAyLCAwLjE2NzYwNSwgMC4yNzM0NzgsIDAuNDA1OTIxLCAwLjUzODcwMiwgMC42NzExOTksIDAuODAzNTQiLCBcCi0gICAgICAgICAgIjAuMDQyNTIyLCAwLjE3NTIxMywgMC4yODEyNTQsIDAuNDEzNTkyLCAwLjU0NjEwNCwgMC42NzgzMTYsIDAuODEwNjE0IiwgXAotICAgICAgICAgICIwLjA1MjI4NiwgMC4xODQ3MiwgMC4yOTA2MTMsIDAuNDIzMDUsIDAuNTU1NDY5LCAwLjY4ODUwMywgMC44MjAyMSIsIFwKLSAgICAgICAgICAiMC4wNjE2MTEsIDAuMTk0NjA1LCAwLjMwMDYyNSwgMC40MzMwNDcsIDAuNTY1NjM3LCAwLjY5Nzk4OCwgMC44MzAxNjUiLCBcCi0gICAgICAgICAgIjAuMDY5MDYsIDAuMjA0MzE0LCAwLjMxMDMzNCwgMC40NDI3NDgsIDAuNTc1MDc4LCAwLjcwNzM2MywgMC44Mzk4ODEiLCBcCi0gICAgICAgICAgIjAuMDc5MjA3LCAwLjIyMDI2MywgMC4zMjU5MzUsIDAuNDU4MjY3LCAwLjU5MDQ3MSwgMC43MjI4NTUsIDAuODU1NzI0IiwgXAotICAgICAgICAgICIwLjA4NjY2OCwgMC4yMzQyNzcsIDAuMzM5NzA5LCAwLjQ3MjAxOSwgMC42MDM3NjQsIDAuNzM2NTQ0LCAwLjg2ODkxNSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjU3MjksIDAuMzM5MTEyLCAwLjU1ODc0NCwgMC44MzIxMDcsIDEuMTA1NDIsIDEuMzc5MDYsIDEuNjUyNyIsIFwKLSAgICAgICAgICAiMC4wNjcwOTQsIDAuMzM5MzY5LCAwLjU1NzkyLCAwLjgzNTU0NCwgMS4xMDQ5OSwgMS4zODE3MSwgMS42NTU3NyIsIFwKLSAgICAgICAgICAiMC4wNzM4MDcsIDAuMzM5MTIzLCAwLjU1ODc3NiwgMC44MzM0NjEsIDEuMTEwNjEsIDEuMzc5MTksIDEuNjU1OTkiLCBcCi0gICAgICAgICAgIjAuMDgxODY3LCAwLjM0MDMzOSwgMC41NTkxOTEsIDAuODMxOTk4LCAxLjEwNDg3LCAxLjM3OTYzLCAxLjY1NTc5IiwgXAotICAgICAgICAgICIwLjA5MDgzNCwgMC4zNDQwMTYsIDAuNTU4MTc2LCAwLjgzMTM2LCAxLjEwNDk4LCAxLjM4MTEzLCAxLjY1MjExIiwgXAotICAgICAgICAgICIwLjEwNDE0NSwgMC4zNTExMDUsIDAuNTYyOTA3LCAwLjgzMjE5NiwgMS4xMDc0MiwgMS4zODE1OSwgMS42NTIwOSIsIFwKLSAgICAgICAgICAiMC4xMTUzMzMsIDAuMzU5NDM0LCAwLjU2NjU3LCAwLjgzMzcxNiwgMS4xMDUyNiwgMS4zODE1NywgMS42NTQxOSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkFOIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQzNzksIDAuMDA0MzkzLCAwLjAwNDM5NiwgMC4wMDQzOTcsIDAuMDA0Mzk3LCAwLjAwNDM5NywgMC4wMDQzOTciLCBcCi0gICAgICAgICAgIjAuMDA0Mzc0LCAwLjAwNDM5NSwgMC4wMDQzOTgsIDAuMDA0NCwgMC4wMDQ0LCAwLjAwNDQwMiwgMC4wMDQ0IiwgXAotICAgICAgICAgICIwLjAwNDQ0LCAwLjAwNDQ2MywgMC4wMDQ0NjUsIDAuMDA0NDY2LCAwLjAwNDQ2NywgMC4wMDQ0NjcsIDAuMDA0NDY3IiwgXAotICAgICAgICAgICIwLjAwNDU0MywgMC4wMDQ1NTEsIDAuMDA0NTU0LCAwLjAwNDU1NCwgMC4wMDQ1NTUsIDAuMDA0NTU1LCAwLjAwNDU1NSIsIFwKLSAgICAgICAgICAiMC4wMDQ2NzIsIDAuMDA0NjY0LCAwLjAwNDY2NSwgMC4wMDQ2NjUsIDAuMDA0NjY1LCAwLjAwNDY2NiwgMC4wMDQ2NjUiLCBcCi0gICAgICAgICAgIjAuMDA0ODg1LCAwLjAwNDg1NCwgMC4wMDQ4NTMsIDAuMDA0ODUyLCAwLjAwNDg1MiwgMC4wMDQ4NTEsIDAuMDA0ODUxIiwgXAotICAgICAgICAgICIwLjAwNTEwOSwgMC4wMDUwNTQsIDAuMDA1MDQ3LCAwLjAwNTA0NSwgMC4wMDUwNDIsIDAuMDA1MDQyLCAwLjAwNTA0MSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDM3OCwgMC4wMDQ0MzksIDAuMDA0NDQ2LCAwLjAwNDQ0OSwgMC4wMDQ0NTEsIDAuMDA0NDUyLCAwLjAwNDQ1MyIsIFwKLSAgICAgICAgICAiMC4wMDQzNTUsIDAuMDA0NDM0LCAwLjAwNDQ0NCwgMC4wMDQ0NDksIDAuMDA0NDUyLCAwLjAwNDQ1NCwgMC4wMDQ0NTUiLCBcCi0gICAgICAgICAgIjAuMDA0Mzk2LCAwLjAwNDQ4NywgMC4wMDQ1MDEsIDAuMDA0NTA4LCAwLjAwNDUxMiwgMC4wMDQ1MTQsIDAuMDA0NTE2IiwgXAotICAgICAgICAgICIwLjAwNDQ3NiwgMC4wMDQ1NjksIDAuMDA0NTg1LCAwLjAwNDU5MywgMC4wMDQ1OTcsIDAuMDA0NiwgMC4wMDQ2MDIiLCBcCi0gICAgICAgICAgIjAuMDA0NTcsIDAuMDA0NjY3LCAwLjAwNDY4NCwgMC4wMDQ2OTQsIDAuMDA0Njk0LCAwLjAwNDcwMiwgMC4wMDQ3MDQiLCBcCi0gICAgICAgICAgIjAuMDA0NzYyLCAwLjAwNDg0OCwgMC4wMDQ4NjUsIDAuMDA0ODc2LCAwLjAwNDg4MiwgMC4wMDQ4ODYsIDAuMDA0ODg4IiwgXAotICAgICAgICAgICIwLjAwNDkyOSwgMC4wMDUwMDgsIDAuMDA1MDI2LCAwLjAwNTAzNywgMC4wMDUwNDMsIDAuMDA1MDQ3LCAwLjAwNTA0OSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzIxOSwgMC4wMDMyNTEsIDAuMDAzMjU0LCAwLjAwMzI1NSwgMC4wMDMyNTYsIDAuMDAzMjU2LCAwLjAwMzI1NyIsIFwKLSAgICAgICAgICAiMC4wMDMxNzQsIDAuMDAzMjQxLCAwLjAwMzI1MywgMC4wMDMyNTcsIDAuMDAzMjU5LCAwLjAwMzI2MSwgMC4wMDMyNjMiLCBcCi0gICAgICAgICAgIjAuMDAzMjc4LCAwLjAwMzI2NiwgMC4wMDMyNjcsIDAuMDAzMjY3LCAwLjAwMzI2NywgMC4wMDMyNjYsIDAuMDAzMjY4IiwgXAotICAgICAgICAgICIwLjAwMzM2NywgMC4wMDMzMSwgMC4wMDMyOTQsIDAuMDAzMjg2LCAwLjAwMzI4NSwgMC4wMDMyODEsIDAuMDAzMjc5IiwgXAotICAgICAgICAgICIwLjAwMzU0MywgMC4wMDMzNTQsIDAuMDAzMzIzLCAwLjAwMzMxMiwgMC4wMDMzMDMsIDAuMDAzMjk3LCAwLjAwMzI5IiwgXAotICAgICAgICAgICIwLjAwMzg5OSwgMC4wMDM0OTUsIDAuMDAzNDE1LCAwLjAwMzM3NywgMC4wMDMzNTUsIDAuMDAzMzQsIDAuMDAzMzMxIiwgXAotICAgICAgICAgICIwLjAwNDIzNSwgMC4wMDM2NDIsIDAuMDAzNTE4LCAwLjAwMzQ1LCAwLjAwMzQwOSwgMC4wMDMzODgsIDAuMDAzMzc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwNjM2LCAwLjAwMDY4LCAwLjAwMDY4NCwgMC4wMDA2ODcsIDAuMDAwNjg4LCAwLjAwMDY4OSwgMC4wMDA2ODkiLCBcCi0gICAgICAgICAgIjAuMDAwNTUzLCAwLjAwMDY1LCAwLjAwMDY2NSwgMC4wMDA2NzMsIDAuMDAwNjc4LCAwLjAwMDY4MSwgMC4wMDA2ODIiLCBcCi0gICAgICAgICAgIjAuMDAwNjUxLCAwLjAwMDY2LCAwLjAwMDY2OSwgMC4wMDA2NzYsIDAuMDAwNjc5LCAwLjAwMDY4MSwgMC4wMDA2ODMiLCBcCi0gICAgICAgICAgIjAuMDAwNzY3LCAwLjAwMDY3NiwgMC4wMDA2ODEsIDAuMDAwNjgzLCAwLjAwMDY4NSwgMC4wMDA2ODYsIDAuMDAwNjg3IiwgXAotICAgICAgICAgICIwLjAwMTAwNiwgMC4wMDA3NDMsIDAuMDAwNzI1LCAwLjAwMDcxMywgMC4wMDA3MDcsIDAuMDAwNzA0LCAwLjAwMDcwMiIsIFwKLSAgICAgICAgICAiMC4wMDE0MjQsIDAuMDAwODg2LCAwLjAwMDgxMywgMC4wMDA3ODIsIDAuMDAwNzYsIDAuMDAwNzQ3LCAwLjAwMDczOCIsIFwKLSAgICAgICAgICAiMC4wMDE4MjksIDAuMDAxMDM0LCAwLjAwMDkxOCwgMC4wMDA4NjEsIDAuMDAwODIxLCAwLjAwMDc5OSwgMC4wMDA3ODIiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogTkFORDJCWEwgKgotICogLS0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKE5BTkQyQlhMKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMTkzODU3OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBTikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjQwNDc3OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDY0MDQ2OTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2NDA0Nzc7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzMxLCAwLjAwMDM0NSwgMC4wMDA0MzQsIDAuMDAwNTQ4LCAwLjAwMDY4NCwgMC4wMDA5MTMsIDAuMDAxMTE4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxNTU2LCAwLjAwMTU3OSwgMC4wMDE2NjcsIDAuMDAxNzg0LCAwLjAwMTkxNywgMC4wMDIxNDYsIDAuMDAyMzQ2Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2NDA2OTk7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjQwNTI3OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDY0MDY5OTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxNDEsIDAuMDAwMTQxLCAwLjAwMDE0LCAwLjAwMDE0MSwgMC4wMDAxNCwgMC4wMDAxNDEsIDAuMDAwMTQxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzM3LCAwLjAwMDMzOCwgMC4wMDAzMzgsIDAuMDAwMzM4LCAwLjAwMDMzOCwgMC4wMDAzMzgsIDAuMDAwMzM4Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMTIzMTQxOwotICAgIGZ1bmN0aW9uIDogIighKCghQU4pIEIpKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQU4iOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2ODk3MiwgMC4wNzk0OTUsIDAuMTc0MjE4LCAwLjMzMjI0OCwgMC40ODk5NzUsIDAuODU4MjgzLCAxLjA2ODk2IiwgXAotICAgICAgICAgICIwLjA3NjA4OSwgMC4wODY2MzcsIDAuMTgxMzg2LCAwLjMzOTI2MywgMC40OTczNTksIDAuODY1Nzc0LCAxLjA3NjQyIiwgXAotICAgICAgICAgICIwLjA4MTc0NSwgMC4wOTIyNjYsIDAuMTg3MDY2LCAwLjM0NDkxMywgMC41MDMwNjksIDAuODcxMDk4LCAxLjA4MyIsIFwKLSAgICAgICAgICAiMC4wODU3OTQsIDAuMDk2MzA3LCAwLjE5MTAxMiwgMC4zNDg5MDcsIDAuNTA3MTc1LCAwLjg3NTEzLCAxLjA4NjE4IiwgXAotICAgICAgICAgICIwLjA4OTM2NiwgMC4wOTk4OTQsIDAuMTk0NTU2LCAwLjM1MjQzOCwgMC41MTAzNTgsIDAuODc4ODcxLCAxLjA4OTQiLCBcCi0gICAgICAgICAgIjAuMDkzODY5LCAwLjEwNDM2OCwgMC4xOTkwNywgMC4zNTY4MDgsIDAuNTE0Nzc4LCAwLjg4MzE1MiwgMS4wOTQ3NSIsIFwKLSAgICAgICAgICAiMC4wOTczMDcsIDAuMTA3OTE5LCAwLjIwMjQ0LCAwLjM2MDI5MSwgMC41MTgyMjksIDAuODg2NjA4LCAxLjA5NzAxIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEyMDA2OSwgMC4xNDIyOTIsIDAuMzQxNTk2LCAwLjY3MzY2MiwgMS4wMDU2MSwgMS43Nzk4MiwgMi4yMjM4IiwgXAotICAgICAgICAgICIwLjEyMDA5MiwgMC4xNDIyMDgsIDAuMzQxNDg5LCAwLjY3MzU0LCAxLjAwNTc4LCAxLjc4MDc5LCAyLjIyNDY1IiwgXAotICAgICAgICAgICIwLjEyMDIzNiwgMC4xNDIzMjEsIDAuMzQxNTM2LCAwLjY3MzUzNCwgMS4wMDU4NiwgMS43ODE2MywgMi4yMjQ1OSIsIFwKLSAgICAgICAgICAiMC4xMjAzOTQsIDAuMTQyNDExLCAwLjM0MTU4MywgMC42NzM4NTYsIDEuMDA1ODQsIDEuNzgyMjYsIDIuMjIzNzQiLCBcCi0gICAgICAgICAgIjAuMTIwNTEyLCAwLjE0MjU2NSwgMC4zNDE3MjEsIDAuNjczODUxLCAxLjAwNTU1LCAxLjc4MDY1LCAyLjIyMzg2IiwgXAotICAgICAgICAgICIwLjEyMDk2NiwgMC4xNDI3ODIsIDAuMzQxNDk1LCAwLjY3MzcwNywgMS4wMDYxNCwgMS43ODAzNiwgMi4yMjQyNCIsIFwKLSAgICAgICAgICAiMC4xMjEyNTIsIDAuMTQzMjQ4LCAwLjM0MTU4NCwgMC42NzM3ODcsIDEuMDA1NSwgMS43ODAzNSwgMi4yMjUxNSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDQxNTgsIDAuMTIxMTIyLCAwLjI3MzQ3OCwgMC41MjczNDYsIDAuNzgwNzIxLCAxLjM3MjcxLCAxLjcxMDk3IiwgXAotICAgICAgICAgICIwLjExMTAwNSwgMC4xMjc5NDcsIDAuMjgwMzg2LCAwLjUzNDQ5OSwgMC43ODg3MzIsIDEuMzgxNTIsIDEuNzE5NiIsIFwKLSAgICAgICAgICAiMC4xMTYyMTcsIDAuMTMzMTQsIDAuMjg1ODA4LCAwLjUzOTY0NSwgMC43OTM3NzYsIDEuMzg1OCwgMS43MjU0IiwgXAotICAgICAgICAgICIwLjExOTg0MSwgMC4xMzY3OSwgMC4yODkxOTYsIDAuNTQzMjU3LCAwLjc5NzYxMiwgMS4zODk3LCAxLjcyODYzIiwgXAotICAgICAgICAgICIwLjEyMjc3MSwgMC4xMzk3NDcsIDAuMjkyMTY4LCAwLjU0NjEzMywgMC44MDAyNjYsIDEuMzkzMzYsIDEuNzMxMiIsIFwKLSAgICAgICAgICAiMC4xMjY3ODMsIDAuMTQzNzE0LCAwLjI5NjA3MiwgMC41NDk5NjcsIDAuODA0MTcyLCAxLjM5Njg0LCAxLjczNDc5IiwgXAotICAgICAgICAgICIwLjEyOTY4OSwgMC4xNDY1ODMsIDAuMjk4ODg4LCAwLjU1Mjg3MywgMC44MDY4NDYsIDEuNDAwNDIsIDEuNzM5OTkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTg2ODU1LCAwLjIyMTI1MywgMC41MzQ0OSwgMS4wNTkxNSwgMS41NzcwNSwgMi43OTQzMiwgMy40ODk2MiIsIFwKLSAgICAgICAgICAiMC4xODY1NDksIDAuMjIxNzQ3LCAwLjUzNDU2MSwgMS4wNTY1NiwgMS41NzkxNCwgMi43OTc1OSwgMy40OTM2MiIsIFwKLSAgICAgICAgICAiMC4xODY4OTksIDAuMjIxMzgzLCAwLjUzNDU3NywgMS4wNTY1MywgMS41Nzg2NSwgMi44MDM4LCAzLjQ5NDQzIiwgXAotICAgICAgICAgICIwLjE4NjU5NiwgMC4yMjEyMzksIDAuNTM1Njk0LCAxLjA1NjczLCAxLjU3OTgsIDIuNzk3MzUsIDMuNDk2NzIiLCBcCi0gICAgICAgICAgIjAuMTg2NjMsIDAuMjIxMzI2LCAwLjUzNTc2OCwgMS4wNTgwMywgMS41Nzg2OSwgMi43OTcxMSwgMy40OTgxOSIsIFwKLSAgICAgICAgICAiMC4xODY1MSwgMC4yMjEyODgsIDAuNTM0Nzk5LCAxLjA1ODk1LCAxLjU3ODg1LCAyLjc5Njk3LCAzLjQ5ODE1IiwgXAotICAgICAgICAgICIwLjE4NjY1NiwgMC4yMjEzMDgsIDAuNTM0NzcxLCAxLjA1NzQ5LCAxLjU3OTc3LCAyLjc5OCwgMy40OTUzNCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTkwNjMsIDAuMDY5NjA0LCAwLjE2NDM4OSwgMC4zMjI1MzIsIDAuNDgwNDg4LCAwLjg0ODYyNiwgMS4wNjAxNiIsIFwKLSAgICAgICAgICAiMC4wNjY5NDQsIDAuMDc3NDUsIDAuMTcyMjk3LCAwLjMzMDI4LCAwLjQ4ODQ0OCwgMC44NTcxNDEsIDEuMDY3MSIsIFwKLSAgICAgICAgICAiMC4wNzcwMjUsIDAuMDg3NTI5LCAwLjE4MjM3NSwgMC4zNDAxMTQsIDAuNDk3OTIzLCAwLjg2NjI1NiwgMS4wNzc3IiwgXAotICAgICAgICAgICIwLjA4NzM5MiwgMC4wOTc4MzUsIDAuMTkyNDA5LCAwLjM1MDQ1MSwgMC41MDgwNzQsIDAuODc2MzI4LCAxLjA4NzQiLCBcCi0gICAgICAgICAgIjAuMDk3NjQzLCAwLjEwODE1OSwgMC4yMDI1NTgsIDAuMzU5NTg4LCAwLjUxODE5MSwgMC44ODY5NjIsIDEuMDk2ODgiLCBcCi0gICAgICAgICAgIjAuMTExNzYyLCAwLjEyMzgwMywgMC4yMTg3ODMsIDAuMzc2NTE3LCAwLjUzNDI3OCwgMC45MDI2MTgsIDEuMTEzMDEiLCBcCi0gICAgICAgICAgIjAuMTIyMTIxLCAwLjEzNTI4NywgMC4yMzMxOTYsIDAuMzkwNzEzLCAwLjU0ODU5NSwgMC45MTY3MDQsIDEuMTI3MjMiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTE4MjIyLCAwLjE0MDM5MiwgMC4zMzk4NywgMC42NzIwMDEsIDEuMDAzNzQsIDEuNzc4ODMsIDIuMjIyNjgiLCBcCi0gICAgICAgICAgIjAuMTE4NDk5LCAwLjE0MDM3NywgMC4zMzk1NjEsIDAuNjcxNjYxLCAxLjAwNDI3LCAxLjc3OTQ5LCAyLjIyMTciLCBcCi0gICAgICAgICAgIjAuMTIyOTIyLCAwLjE0NDA2MywgMC4zMzk2OTIsIDAuNjcyMDA5LCAxLjAwMzM0LCAxLjc4MDcxLCAyLjIyMTQiLCBcCi0gICAgICAgICAgIjAuMTI5ODM0LCAwLjE1MDA0MSwgMC4zNDEwMiwgMC42NzE3NDMsIDEuMDA0MTIsIDEuNzgxMDcsIDIuMjIxNzQiLCBcCi0gICAgICAgICAgIjAuMTM4MDI4LCAwLjE1NzYxNywgMC4zNDQ0NDEsIDAuNjcyMDM1LCAxLjAwMzUyLCAxLjc3OTE1LCAyLjIyMDYxIiwgXAotICAgICAgICAgICIwLjE1MzExOSwgMC4xNzE0OTUsIDAuMzUyOTY5LCAwLjY3MzcxNCwgMS4wMDQ5NCwgMS43NzgwNywgMi4yMjA1MiIsIFwKLSAgICAgICAgICAiMC4xNjY0NTIsIDAuMTg1NDcsIDAuMzYxNjE3LCAwLjY3ODYzOCwgMS4wMDM4NCwgMS43ODA3MSwgMi4yMjA2OCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTM3MTQsIDAuMTEwNjY1LCAwLjI2MzAwOSwgMC41MTY4NzQsIDAuNzcwNzI5LCAxLjM2MzE2LCAxLjcwMjE5IiwgXAotICAgICAgICAgICIwLjEwMTE5NCwgMC4xMTgxNzcsIDAuMjcwNTk0LCAwLjUyNDY4LCAwLjc3OTA4NiwgMS4zNzIyNCwgMS43MDk5MSIsIFwKLSAgICAgICAgICAiMC4xMTA1OTksIDAuMTI3NTUxLCAwLjI4MDA3MywgMC41MzM4NTEsIDAuNzg3ODYxLCAxLjM4MTg2LCAxLjcxOTIyIiwgXAotICAgICAgICAgICIwLjEyMDIyOSwgMC4xMzcxMDYsIDAuMjg5NTQ4LCAwLjU0MzQ1OCwgMC43OTc3MzksIDEuMzg5ODksIDEuNzI5MjEiLCBcCi0gICAgICAgICAgIjAuMTMwMDc1LCAwLjE0Njk1NiwgMC4yOTg5OTMsIDAuNTUyOTcxLCAwLjgwNjg3NCwgMS4zOTkxOSwgMS43Mzg1OSIsIFwKLSAgICAgICAgICAiMC4xNDU5NDYsIDAuMTYyNzIxLCAwLjMxNDI5LCAwLjU2ODEwOSwgMC44MjE5ODIsIDEuNDE0MjUsIDEuNzUzNzYiLCBcCi0gICAgICAgICAgIjAuMTU5NDY0LCAwLjE3NTgxMywgMC4zMjc4NzksIDAuNTgxNTMyLCAwLjgzNTM0MSwgMS40Mjc3OCwgMS43Njc0MiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xODY3NDgsIDAuMjIxMjM3LCAwLjUzNTc5LCAxLjA1OTEyLCAxLjU3OTc1LCAyLjgwMzcxLCAzLjQ5NTQ4IiwgXAotICAgICAgICAgICIwLjE4NjgzNSwgMC4yMjEyNDQsIDAuNTM0ODg5LCAxLjA1NjU4LCAxLjU3OTQ2LCAyLjc5ODU4LCAzLjQ5MzM3IiwgXAotICAgICAgICAgICIwLjE4ODQxOCwgMC4yMjI1MTksIDAuNTM0ODI0LCAxLjA1OTA5LCAxLjU3OTg2LCAyLjc5NzkzLCAzLjQ5MzUiLCBcCi0gICAgICAgICAgIjAuMTkyNzYyLCAwLjIyNTk5MSwgMC41MzQ3MDIsIDEuMDU2ODgsIDEuNTc5LCAyLjc5NzE2LCAzLjQ5NDYyIiwgXAotICAgICAgICAgICIwLjE5ODc0OSwgMC4yMzExMTYsIDAuNTM2MjU1LCAxLjA1NjY3LCAxLjU3ODcyLCAyLjgwMTE1LCAzLjQ5MzIxIiwgXAotICAgICAgICAgICIwLjIxMDI4NiwgMC4yNDE3NDgsIDAuNTQwMTQxLCAxLjA1OTA2LCAxLjU4NjY4LCAyLjgxMDc5LCAzLjQ5MzI1IiwgXAotICAgICAgICAgICIwLjIyMTQ1MywgMC4yNTEzOTQsIDAuNTQ0NDgzLCAxLjA1NzU5LCAxLjU4MjM4LCAyLjc5NzEsIDMuNDk0MjYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxNDg1LCAwLjAwMTQ4NSwgMC4wMDE0ODQsIDAuMDAxNDg2LCAwLjAwMTQ4NiwgMC4wMDE0ODYsIDAuMDAxNDg3IiwgXAotICAgICAgICAgICIwLjAwMTUwMSwgMC4wMDE1MDEsIDAuMDAxNTAyLCAwLjAwMTUwMiwgMC4wMDE1MDIsIDAuMDAxNTAzLCAwLjAwMTUwMiIsIFwKLSAgICAgICAgICAiMC4wMDE1OTEsIDAuMDAxNTkxLCAwLjAwMTU5MiwgMC4wMDE1OTIsIDAuMDAxNTkzLCAwLjAwMTU5MiwgMC4wMDE1OTIiLCBcCi0gICAgICAgICAgIjAuMDAxNzA5LCAwLjAwMTcwOSwgMC4wMDE3MSwgMC4wMDE3MSwgMC4wMDE3MSwgMC4wMDE3MDksIDAuMDAxNzEiLCBcCi0gICAgICAgICAgIjAuMDAxODQsIDAuMDAxODUzLCAwLjAwMTg1MywgMC4wMDE4NTMsIDAuMDAxODUzLCAwLjAwMTg0MSwgMC4wMDE4NTMiLCBcCi0gICAgICAgICAgIjAuMDAyMDc0LCAwLjAwMjA2MywgMC4wMDIwNzMsIDAuMDAyMDYzLCAwLjAwMjA3MywgMC4wMDIwNzMsIDAuMDAyMDczIiwgXAotICAgICAgICAgICIwLjAwMjI4NSwgMC4wMDIyODQsIDAuMDAyMjYyLCAwLjAwMjI3OSwgMC4wMDIyOCwgMC4wMDIyNTksIDAuMDAyMjc5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyMTM1LCAwLjAwMjEzNSwgMC4wMDIxMzcsIDAuMDAyMTM4LCAwLjAwMjEzOCwgMC4wMDIxMzgsIDAuMDAyMTM4IiwgXAotICAgICAgICAgICIwLjAwMjE1NSwgMC4wMDIxNTYsIDAuMDAyMTYsIDAuMDAyMTYyLCAwLjAwMjE2MiwgMC4wMDIxNjIsIDAuMDAyMTYzIiwgXAotICAgICAgICAgICIwLjAwMjIzOSwgMC4wMDIyNCwgMC4wMDIyNDYsIDAuMDAyMjQ4LCAwLjAwMjI0OSwgMC4wMDIyNDksIDAuMDAyMjQ5IiwgXAotICAgICAgICAgICIwLjAwMjM1OSwgMC4wMDIzNiwgMC4wMDIzNjcsIDAuMDAyMzYyLCAwLjAwMjM3LCAwLjAwMjM3MSwgMC4wMDIzNzEiLCBcCi0gICAgICAgICAgIjAuMDAyNDc2LCAwLjAwMjQ4NywgMC4wMDI0OTQsIDAuMDAyNDk2LCAwLjAwMjQ5NywgMC4wMDI0OTgsIDAuMDAyNDk4IiwgXAotICAgICAgICAgICIwLjAwMjY5MiwgMC4wMDI3MDMsIDAuMDAyNzAxLCAwLjAwMjcxNCwgMC4wMDI3MDUsIDAuMDAyNzA1LCAwLjAwMjcxNiIsIFwKLSAgICAgICAgICAiMC4wMDI4ODgsIDAuMDAyOTAzLCAwLjAwMjkxLCAwLjAwMjkxMywgMC4wMDI5MTUsIDAuMDAyOTE1LCAwLjAwMjkxNiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTEwMywgMC4wMDExMDQsIDAuMDAxMTA2LCAwLjAwMTEwNywgMC4wMDExMDcsIDAuMDAxMTA3LCAwLjAwMTEwNyIsIFwKLSAgICAgICAgICAiMC4wMDExMDMsIDAuMDAxMTA0LCAwLjAwMTEwNywgMC4wMDExMDksIDAuMDAxMTA5LCAwLjAwMTEwOSwgMC4wMDExMSIsIFwKLSAgICAgICAgICAiMC4wMDExMTYsIDAuMDAxMTE1LCAwLjAwMTExMywgMC4wMDExMTIsIDAuMDAxMTEyLCAwLjAwMTExMiwgMC4wMDExMTIiLCBcCi0gICAgICAgICAgIjAuMDAxMTQsIDAuMDAxMTM2LCAwLjAwMTEyNCwgMC4wMDExMTgsIDAuMDAxMTE2LCAwLjAwMTExNCwgMC4wMDExMTMiLCBcCi0gICAgICAgICAgIjAuMDAxMTgsIDAuMDAxMTcxLCAwLjAwMTE0LCAwLjAwMTEyNSwgMC4wMDExMjIsIDAuMDAxMTE3LCAwLjAwMTExNiIsIFwKLSAgICAgICAgICAiMC4wMDEyNjYsIDAuMDAxMjQ2LCAwLjAwMTE3OCwgMC4wMDExNSwgMC4wMDExMzYsIDAuMDAxMTI4LCAwLjAwMTEyMyIsIFwKLSAgICAgICAgICAiMC4wMDEzNTksIDAuMDAxMzI3LCAwLjAwMTIxOSwgMC4wMDExNzQsIDAuMDAxMTU3LCAwLjAwMTEzOSwgMC4wMDExMzMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDAyNjYsIDAuMDAwMjY3LCAwLjAwMDI3LCAwLjAwMDI3MSwgMC4wMDAyNzEsIDAuMDAwMjcyLCAwLjAwMDI3MiIsIFwKLSAgICAgICAgICAiMC4wMDAyNTYsIDAuMDAwMjU4LCAwLjAwMDI2NiwgMC4wMDAyNjksIDAuMDAwMjcsIDAuMDAwMjcxLCAwLjAwMDI3MSIsIFwKLSAgICAgICAgICAiMC4wMDAyNjYsIDAuMDAwMjY3LCAwLjAwMDI2OSwgMC4wMDAyNywgMC4wMDAyNzEsIDAuMDAwMjcyLCAwLjAwMDI3MiIsIFwKLSAgICAgICAgICAiMC4wMDAyOTMsIDAuMDAwMjg5LCAwLjAwMDI4LCAwLjAwMDI3NiwgMC4wMDAyNzUsIDAuMDAwMjczLCAwLjAwMDI3MyIsIFwKLSAgICAgICAgICAiMC4wMDAzMzIsIDAuMDAwMzI0LCAwLjAwMDI5NywgMC4wMDAyODYsIDAuMDAwMjgxLCAwLjAwMDI3NywgMC4wMDAyNzYiLCBcCi0gICAgICAgICAgIjAuMDAwNDEzLCAwLjAwMDM5NSwgMC4wMDAzMzQsIDAuMDAwMzA5LCAwLjAwMDI5OCwgMC4wMDAyODcsIDAuMDAwMjg0IiwgXAotICAgICAgICAgICIwLjAwMDQ5OCwgMC4wMDA0NjksIDAuMDAwMzc3LCAwLjAwMDMzNSwgMC4wMDAzMTcsIDAuMDAwMjk4LCAwLjAwMDI5MyIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IE5BTkQyWDYgKgotICogLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoTkFORDJYNikgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAxLjA3Mjc1OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDUyNDQ5NzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDUyNDQ5NzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDUyMzY1MjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDMxNDYsIDAuMDAzMTQzLCAwLjAwMzE0MiwgMC4wMDMxNDIsIDAuMDAzMTQxLCAwLjAwMzE0LCAwLjAwMzE0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzMzA4LCAwLjAwMzE5NiwgMC4wMDMxODIsIDAuMDAzMTYsIDAuMDAzMTYxLCAwLjAwMzE1NiwgMC4wMDMxNTUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwNTAyODg7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDA1MDI3Mzc7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDA1MDI4ODsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDE4ODcsIDAuMDAxODgzLCAwLjAwMTg4MiwgMC4wMDE4ODEsIDAuMDAxODgsIDAuMDAxODgxLCAwLjAwMTg4MSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzU2NywgMC4wMDM1NzIsIDAuMDAzNTcxLCAwLjAwMzU3MiwgMC4wMDM1NzEsIDAuMDAzNTcxLCAwLjAwMzU3MSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAxLjE2Njc3OwotICAgIGZ1bmN0aW9uIDogIighKEEgQikpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMjEyLCAwLjA0OTAxNiwgMC4wODU4MTUsIDAuMTExOTk4LCAwLjE1Mzk5MiwgMC4xOTA3NSwgMC4yNDMyODEiLCBcCi0gICAgICAgICAgIjAuMDE5OTE0LCAwLjA1NzI5NCwgMC4wOTQwMjQsIDAuMTIwMjg2LCAwLjE2MjIxOCwgMC4xOTg5NjMsIDAuMjUxMzg1IiwgXAotICAgICAgICAgICIwLjAyNjAzNCwgMC4wNjc1MTksIDAuMTA0MTk3LCAwLjEzMDQzMSwgMC4xNzIxNywgMC4yMDkwODYsIDAuMjYxNTUzIiwgXAotICAgICAgICAgICIwLjAzMDI4NCwgMC4wNzgzNjUsIDAuMTE0ODcyLCAwLjE0MTA1MiwgMC4xODMwMTksIDAuMjE5NzU0LCAwLjI3MjE0OSIsIFwKLSAgICAgICAgICAiMC4wMzM0NjcsIDAuMDg4MDk4LCAwLjEyNTMwNSwgMC4xNTEzOTIsIDAuMTkzMjM2LCAwLjIyOTk2MiwgMC4yODIzODgiLCBcCi0gICAgICAgICAgIjAuMDM3NDYyLCAwLjEwMDk5NywgMC4xNDIzMzYsIDAuMTY4Mzc4LCAwLjIxMDE3OCwgMC4yNDY3MDIsIDAuMjk5MDkxIiwgXAotICAgICAgICAgICIwLjA0MDM0MSwgMC4xMTA2ODMsIDAuMTU2MTQ5LCAwLjE4MzMsIDAuMjI0OTI3LCAwLjI2MTQ3NywgMC4zMTM3NzciKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTg3NDYsIDAuMDk2MTQ1LCAwLjE3MzcxMSwgMC4yMjkwNjMsIDAuMzE3NTg4LCAwLjM5NTA3NiwgMC41MDU4MTUiLCBcCi0gICAgICAgICAgIjAuMDI0Njg0LCAwLjA5NjgxNywgMC4xNzM1OTcsIDAuMjI4OTk0LCAwLjMxNzM3NiwgMC4zOTUwMSwgMC41MDU2OTgiLCBcCi0gICAgICAgICAgIjAuMDMzNjg1LCAwLjEwMjIwNSwgMC4xNzU2NywgMC4yMjk3MDgsIDAuMzE3NDM5LCAwLjM5NDg2LCAwLjUwNTgxMyIsIFwKLSAgICAgICAgICAiMC4wNDA5MzIsIDAuMTA5NzMyLCAwLjE4MDY2OSwgMC4yMzMyMzYsIDAuMzE5MTIzLCAwLjM5NTQxOSwgMC41MDU0NzQiLCBcCi0gICAgICAgICAgIjAuMDQ3NDI5LCAwLjExODU2NCwgMC4xODc0NzksIDAuMjM4NzA4LCAwLjMyMjgzOCwgMC4zOTc4MSwgMC41MDY1MDYiLCBcCi0gICAgICAgICAgIjAuMDU2OTAxLCAwLjEzMzk0MywgMC4yMDAwNDksIDAuMjQ5NjEzLCAwLjMzMTQwMywgMC40MDQ1OCwgMC41MTA4NDciLCBcCi0gICAgICAgICAgIjAuMDY0NDksIDAuMTQ3NTQ2LCAwLjIxMjEyOCwgMC4yNjA3MDEsIDAuMzQwNjAzLCAwLjQxMjQ1LCAwLjUxNzAzNyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxOTQ1MiwgMC4wODQ2MzksIDAuMTQ5NzE0LCAwLjE5NTkyNSwgMC4yNzAzOTYsIDAuMzM1MTY5LCAwLjQyNzg2NSIsIFwKLSAgICAgICAgICAiMC4wMjU4NjMsIDAuMDkxMjg4LCAwLjE1NjMwNCwgMC4yMDI3NTcsIDAuMjc2OTkzLCAwLjM0MTk5NywgMC40MzQ2NzIiLCBcCi0gICAgICAgICAgIjAuMDMyNSwgMC4wOTk1NzUsIDAuMTY0NzIyLCAwLjIxMTE1OCwgMC4yODUzOTksIDAuMzUwMzYyLCAwLjQ0MzI1MyIsIFwKLSAgICAgICAgICAiMC4wMzc2MzEsIDAuMTA4MTc3LCAwLjE3MzE3OCwgMC4yMTk1OTksIDAuMjkzODc4LCAwLjM1ODk2MSwgMC40NTE4MDEiLCBcCi0gICAgICAgICAgIjAuMDQxODY0LCAwLjExNjU4LCAwLjE4MTQ5OCwgMC4yMjc5NjQsIDAuMzAyMzI1LCAwLjM2NzAzMSwgMC40NjAxNzQiLCBcCi0gICAgICAgICAgIjAuMDQ3NTEyLCAwLjEyOTYxMSwgMC4xOTU0ODIsIDAuMjQxMzIxLCAwLjMxNTU0MywgMC4zODA5MzQsIDAuNDczNTkiLCBcCi0gICAgICAgICAgIjAuMDUyMDE0LCAwLjE0MDI1NiwgMC4yMDczMjgsIDAuMjUzMDYyLCAwLjMyNzQ4LCAwLjM5MjM1OCwgMC40ODUyODQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzAyODYsIDAuMTY0NjIsIDAuMjk4ODUzLCAwLjM5NTQ4NCwgMC41NDgyNTUsIDAuNjgyMjAxLCAwLjg3NDAxNCIsIFwKLSAgICAgICAgICAiMC4wMzI2OTEsIDAuMTY0NzAyLCAwLjI5OTM3LCAwLjM5NDY0MiwgMC41NDgwMTQsIDAuNjgyMTQyLCAwLjg3Mzk0NCIsIFwKLSAgICAgICAgICAiMC4wMzkxMTUsIDAuMTY2MDE1LCAwLjI5ODk0MiwgMC4zOTU0MjgsIDAuNTQ5MjI2LCAwLjY4MjY2MywgMC44NzQxNjYiLCBcCi0gICAgICAgICAgIjAuMDQ1NTE5LCAwLjE2OTU2OSwgMC4zMDA3NjgsIDAuMzk0OTcsIDAuNTQ5MTc4LCAwLjY4MjI3OSwgMC44NzQwNjkiLCBcCi0gICAgICAgICAgIjAuMDUxMzcxLCAwLjE3NDE3MiwgMC4zMDMxMDQsIDAuMzk2NTI5LCAwLjU0OTU0NCwgMC42ODM3NDMsIDAuODc1ODQyIiwgXAotICAgICAgICAgICIwLjA2MDE0NywgMC4xODI0NDIsIDAuMzA5MDg3LCAwLjQwMTA1NCwgMC41NTE3NTUsIDAuNjg1MDAxLCAwLjg3NjAxMSIsIFwKLSAgICAgICAgICAiMC4wNjcxNTUsIDAuMTkwOTk0LCAwLjMxNTQ4OSwgMC40MDYxMTksIDAuNTU1MjEyLCAwLjY4NjA3NCwgMC44NzcxMDciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTExNzMsIDAuMDQ4Mzg1LCAwLjA4NTQ4NiwgMC4xMTIwMzYsIDAuMTU0NTYyLCAwLjE5MTU0NywgMC4yNDQ2MTciLCBcCi0gICAgICAgICAgIjAuMDE4NjExLCAwLjA1NjY2MSwgMC4wOTM3NTksIDAuMTIwMzExLCAwLjE2MjY1NSwgMC4xOTk3ODYsIDAuMjUyNzUxIiwgXAotICAgICAgICAgICIwLjAyNDE0OCwgMC4wNjY5MjksIDAuMTAzOTg0LCAwLjEzMDU2MywgMC4xNzI2NjEsIDAuMjA5OTk0LCAwLjI2MzAxIiwgXAotICAgICAgICAgICIwLjAyNzc1NywgMC4wNzc3NTYsIDAuMTE0NjYzLCAwLjE0MTE2MSwgMC4xODM1NTYsIDAuMjIwNzY4LCAwLjI3MzgyNCIsIFwKLSAgICAgICAgICAiMC4wMzA2MzYsIDAuMDg3Mjg5LCAwLjEyNDkwOCwgMC4xNTEzNDksIDAuMTkzNjU0LCAwLjIzMDY5MywgMC4yODM3NDYiLCBcCi0gICAgICAgICAgIjAuMDMzODYzLCAwLjA5OTk5OSwgMC4xNDE5NzgsIDAuMTY4MzE1LCAwLjIxMDQ5NSwgMC4yNDc0NzQsIDAuMzAwNDc3IiwgXAotICAgICAgICAgICIwLjAzNjUxLCAwLjEwOTQ5MywgMC4xNTU3NDQsIDAuMTgzMjA5LCAwLjIyNTI4OSwgMC4yNjIyMzMsIDAuMzE1MTE3Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE3NDYsIDAuMDk1NywgMC4xNzM5NCwgMC4yMjk5NzcsIDAuMzE5NjA0LCAwLjM5Nzc5MywgMC41MDk2NSIsIFwKLSAgICAgICAgICAiMC4wMjM2OTYsIDAuMDk2MzIsIDAuMTczOTgzLCAwLjIyOTk2MiwgMC4zMTk4MTQsIDAuMzk3NTc3LCAwLjUwOTU0IiwgXAotICAgICAgICAgICIwLjAzMjYzOSwgMC4xMDE3NDYsIDAuMTc2MjgxLCAwLjIzMDY2NywgMC4zMTkzMzMsIDAuMzk4MTY0LCAwLjUwOTQwOCIsIFwKLSAgICAgICAgICAiMC4wNDAxMzcsIDAuMTA5MTg4LCAwLjE4MDk2MSwgMC4yMzQ0MDUsIDAuMzIxNDcsIDAuMzk4MjEsIDAuNTA5NzciLCBcCi0gICAgICAgICAgIjAuMDQ2NjM2LCAwLjExODI1OSwgMC4xODc4MDgsIDAuMjM5NjQ2LCAwLjMyNTE1MSwgMC40MDA3MjMsIDAuNTEwMzI5IiwgXAotICAgICAgICAgICIwLjA1NjExNSwgMC4xMzM2OTksIDAuMjAwNDAxLCAwLjI1MDU5MiwgMC4zMzMyMywgMC40MDczMDYsIDAuNTE0NzY4IiwgXAotICAgICAgICAgICIwLjA2MzIyMSwgMC4xNDcyODcsIDAuMjEyNTc3LCAwLjI2MTUxLCAwLjM0MjUxMiwgMC40MTUxMjQsIDAuNTIwOTg0Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE3ODUzLCAwLjA4MzEwNCwgMC4xNDgwMDIsIDAuMTk0NjEsIDAuMjY4NjU3LCAwLjMzMzg5NywgMC40MjY0MTkiLCBcCi0gICAgICAgICAgIjAuMDI1NDczLCAwLjA5MDcyNCwgMC4xNTU3MDksIDAuMjAyMTIxLCAwLjI3NjMwNSwgMC4zNDEzNDEsIDAuNDM0MDgiLCBcCi0gICAgICAgICAgIjAuMDMzNjg0LCAwLjEwMDM3MiwgMC4xNjUxOTQsIDAuMjExNzg2LCAwLjI4NTk4NiwgMC4zNTA4OTEsIDAuNDQzNzc0IiwgXAotICAgICAgICAgICIwLjAzOTYyMSwgMC4xMTA1MTgsIDAuMTc1MjczLCAwLjIyMTYxNiwgMC4yOTU5MDIsIDAuMzYwODcxLCAwLjQ1MzcyNCIsIFwKLSAgICAgICAgICAiMC4wNDQ0NDgsIDAuMTIwNDc1LCAwLjE4NTE0NSwgMC4yMzE1MTQsIDAuMzA1NywgMC4zNzA2MSwgMC40NjMzMDYiLCBcCi0gICAgICAgICAgIjAuMDUxMzQ4LCAwLjEzNjc5NSwgMC4yMDEzNDksIDAuMjQ3Mzg4LCAwLjMyMTU0NSwgMC4zODYzMjcsIDAuNDc4NzcxIiwgXAotICAgICAgICAgICIwLjA1NjMzMSwgMC4xNDk5NDYsIDAuMjE1NDU0LCAwLjI2MTY3MiwgMC4zMzU0NTcsIDAuNDAwNDA4LCAwLjQ5MjkzNyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzMDMyMywgMC4xNjQ1MTQsIDAuMzAwMTY4LCAwLjM5NDcwNiwgMC41NDgwMDgsIDAuNjgyNDI1LCAwLjg3MzkxNCIsIFwKLSAgICAgICAgICAiMC4wMzQyNTUsIDAuMTY0NTEyLCAwLjI5OTM4NCwgMC4zOTU1MDQsIDAuNTQ4MzY3LCAwLjY4MjIxMywgMC44NzQwMjQiLCBcCi0gICAgICAgICAgIjAuMDQyNzMsIDAuMTY2NzUzLCAwLjI5ODk0OSwgMC4zOTU0ODEsIDAuNTQ5MjM4LCAwLjY4MjYxMywgMC44NzM5NDQiLCBcCi0gICAgICAgICAgIjAuMDUwNTE0LCAwLjE3MTU0MSwgMC4zMDA2ODMsIDAuMzk1ODE2LCAwLjU0NzkzMywgMC42ODIxNTksIDAuODc0MDIyIiwgXAotICAgICAgICAgICIwLjA1NzMzNSwgMC4xNzc4MiwgMC4zMDQ2NDYsIDAuMzk3NDgxLCAwLjU0ODM2MSwgMC42ODM3MzQsIDAuODc1ODkzIiwgXAotICAgICAgICAgICIwLjA2Njk0MiwgMC4xODk5NjcsIDAuMzEyNzM0LCAwLjQwMzkyMSwgMC41NTE3NjYsIDAuNjgzODk1LCAwLjg3Mzk5NCIsIFwKLSAgICAgICAgICAiMC4wNzQ3NzgsIDAuMjAxMzk5LCAwLjMyMTQxNiwgMC40MTEwNDIsIDAuNTU3MjMyLCAwLjY4ODY4NywgMC44NzcyNzciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMzEzNywgMC4wMTMyMTIsIDAuMDEzMjIsIDAuMDEzMjIzLCAwLjAxMzIyNiwgMC4wMTMyMjcsIDAuMDEzMjI4IiwgXAotICAgICAgICAgICIwLjAxMzA3MSwgMC4wMTMxNDUsIDAuMDEzMTY2LCAwLjAxMzE3NiwgMC4wMTMxODEsIDAuMDEzMTg0LCAwLjAxMzE4NyIsIFwKLSAgICAgICAgICAiMC4wMTM0NjIsIDAuMDEzMzMyLCAwLjAxMzI3NiwgMC4wMTMyNiwgMC4wMTMyMzUsIDAuMDEzMjM3LCAwLjAxMzIyOSIsIFwKLSAgICAgICAgICAiMC4wMTQxMDksIDAuMDEzNTA4LCAwLjAxMzM4LCAwLjAxMzM0MSwgMC4wMTMzMDYsIDAuMDEzMjgzLCAwLjAxMzI2NyIsIFwKLSAgICAgICAgICAiMC4wMTQ4OTQsIDAuMDEzOTIxLCAwLjAxMzY1MiwgMC4wMTM1NTQsIDAuMDEzNDc2LCAwLjAxMzQzLCAwLjAxMzM4IiwgXAotICAgICAgICAgICIwLjAxNjI3LCAwLjAxNDY1NCwgMC4wMTQxMjQsIDAuMDEzOTQsIDAuMDEzNzY5LCAwLjAxMzY3NywgMC4wMTM1NzYiLCBcCi0gICAgICAgICAgIjAuMDE3NTk5LCAwLjAxNTQ1NywgMC4wMTQ2NCwgMC4wMTQzNywgMC4wMTQwOTMsIDAuMDEzOTQ4LCAwLjAxMzgxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDA5OTQsIDAuMDAxMjIzLCAwLjAwMTI1MiwgMC4wMDEyNjEsIDAuMDAxMjY5LCAwLjAwMTI3MiwgMC4wMDEyNzYiLCBcCi0gICAgICAgICAgIjAuMDAwNTg1LCAwLjAwMTAyMiwgMC4wMDExMjcsIDAuMDAxMTYzLCAwLjAwMTE5NiwgMC4wMDEyMTMsIDAuMDAxMjI5IiwgXAotICAgICAgICAgICIwLjAwMDY5NywgMC4wMDA5MjYsIDAuMDAxMDQ2LCAwLjAwMTA5NCwgMC4wMDExNDEsIDAuMDAxMTY3LCAwLjAwMTE5MSIsIFwKLSAgICAgICAgICAiMC4wMDEwODcsIDAuMDAwOTc5LCAwLjAwMTA1MiwgMC4wMDEwOTIsIDAuMDAxMTMyLCAwLjAwMTE1NiwgMC4wMDExODEiLCBcCi0gICAgICAgICAgIjAuMDAxNjMyLCAwLjAwMTEzNywgMC4wMDExMzEsIDAuMDAxMTQ2LCAwLjAwMTE2NywgMC4wMDExODgsIDAuMDAxMiIsIFwKLSAgICAgICAgICAiMC4wMDI3MzUsIDAuMDAxNTUsIDAuMDAxMzgsIDAuMDAxMzMzLCAwLjAwMTMwNiwgMC4wMDEyOTMsIDAuMDAxMjgzIiwgXAotICAgICAgICAgICIwLjAwMzg1MSwgMC4wMDIwMzEsIDAuMDAxNzA3LCAwLjAwMTU4NSwgMC4wMDE1MTIsIDAuMDAxNDYyLCAwLjAwMTQxNyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEwMTY2LCAwLjAxMDM1MSwgMC4wMTAzNzMsIDAuMDEwMzc1LCAwLjAxMDM4NCwgMC4wMTAzODgsIDAuMDEwMzkiLCBcCi0gICAgICAgICAgIjAuMDEwMDE5LCAwLjAxMDI3NiwgMC4wMTAzNDEsIDAuMDEwMzYzLCAwLjAxMDM4MSwgMC4wMTAzOTEsIDAuMDEwMzk3IiwgXAotICAgICAgICAgICIwLjAxMDM1LCAwLjAxMDM4MywgMC4wMTA0MDQsIDAuMDEwNDA4LCAwLjAxMDM5NiwgMC4wMTA0MTgsIDAuMDEwNDIyIiwgXAotICAgICAgICAgICIwLjAxMTI2NywgMC4wMTA1NzgsIDAuMDEwNTI4LCAwLjAxMDUxMywgMC4wMTA0NzYsIDAuMDEwNDg1LCAwLjAxMDQ3NCIsIFwKLSAgICAgICAgICAiMC4wMTE3MTUsIDAuMDEwOTIsIDAuMDEwNzI5LCAwLjAxMDY2NCwgMC4wMTA1OTgsIDAuMDEwNTY4LCAwLjAxMDU2MSIsIFwKLSAgICAgICAgICAiMC4wMTMxNTQsIDAuMDExNjA4LCAwLjAxMTE1NywgMC4wMTEwMTQsIDAuMDEwODczLCAwLjAxMDgsIDAuMDEwNzM3IiwgXAotICAgICAgICAgICIwLjAxNDI5LCAwLjAxMjMxNywgMC4wMTE2MzEsIDAuMDExNDA4LCAwLjAxMTE3MiwgMC4wMTEwNDcsIDAuMDEwOTQxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDA5NjUsIDAuMDAxMjI0LCAwLjAwMTI1NywgMC4wMDEyNjcsIDAuMDAxMjc2LCAwLjAwMTI4LCAwLjAwMTI4NCIsIFwKLSAgICAgICAgICAiMC4wMDA3MTgsIDAuMDAxMDU0LCAwLjAwMTE0OSwgMC4wMDExODIsIDAuMDAxMjEyLCAwLjAwMTIyOCwgMC4wMDEyNDQiLCBcCi0gICAgICAgICAgIjAuMDAxMTgzLCAwLjAwMTA5MSwgMC4wMDExNTEsIDAuMDAxMTc4LCAwLjAwMTIwNSwgMC4wMDEyMTgsIDAuMDAxMjM2IiwgXAotICAgICAgICAgICIwLjAwMTgzNCwgMC4wMDEzOSwgMC4wMDEzMTEsIDAuMDAxMjk1LCAwLjAwMTI4NywgMC4wMDEyODYsIDAuMDAxMjg2IiwgXAotICAgICAgICAgICIwLjAwMjU3NSwgMC4wMDE1ODIsIDAuMDAxNDM3LCAwLjAwMTM4OSwgMC4wMDEzNjcsIDAuMDAxMzUsIDAuMDAxMzM1IiwgXAotICAgICAgICAgICIwLjAwMzk1OSwgMC4wMDIyNjYsIDAuMDAxODgsIDAuMDAxNzU0LCAwLjAwMTYyNywgMC4wMDE1ODQsIDAuMDAxNTE1IiwgXAotICAgICAgICAgICIwLjAwNTIyLCAwLjAwMjk3NiwgMC4wMDIzMywgMC4wMDIxNDYsIDAuMDAxOTMzLCAwLjAwMTgyLCAwLjAwMTc0MSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBOQU5EM0JYNCAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoTkFORDNCWDQpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMS4xOTE4NjsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQU4pICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDk2NDI2OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDk2NDIzODsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA5NjQyNjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDIwMTksIDAuMDAxOTkxLCAwLjAwMjA2NCwgMC4wMDIxNzMsIDAuMDAyMzE0LCAwLjAwMjU3NywgMC4wMDI4MjEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDUzMTgsIDAuMDA1MzEsIDAuMDA1MzcxLCAwLjAwNTQ4MiwgMC4wMDU2MTUsIDAuMDA1ODkzLCAwLjAwNjE1MiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAzNzA2NzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDM3MDY3OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMzcwMTI1OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjA5NywgMC4wMDIwOTUsIDAuMDAyMDk1LCAwLjAwMjA5NCwgMC4wMDIwOTQsIDAuMDAyMDk0LCAwLjAwMjA5NCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjI0OSwgMC4wMDIxMzgsIDAuMDAyMTIyLCAwLjAwMjExOCwgMC4wMDIxMTIsIDAuMDAyMTA1LCAwLjAwMjEwNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQykgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAzNDIyMDE7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAzNDIwOTY7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAzNDIyMDE7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxMTgzLCAwLjAwMTE4LCAwLjAwMTE4LCAwLjAwMTE3OCwgMC4wMDExNzgsIDAuMDAxMTc4LCAwLjAwMTE3OCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjM4MiwgMC4wMDIzODMsIDAuMDAyMzgzLCAwLjAwMjM4NSwgMC4wMDIzODQsIDAuMDAyMzg0LCAwLjAwMjM4NCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjU2MDI4NTsKLSAgICBmdW5jdGlvbiA6ICIoISgoKCFBTikgQikgQykpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzc1NjgsIDAuMDkzMywgMC4xNDgyMDgsIDAuMTg3MjYsIDAuMjQ5ODUsIDAuMzA0NzE3LCAwLjM4MzAwOCIsIFwKLSAgICAgICAgICAiMC4wNDU5MSwgMC4xMDE1OCwgMC4xNTY0MTgsIDAuMTk1NTc1LCAwLjI1ODI4MywgMC4zMTI5NTgsIDAuMzkxMTkzIiwgXAotICAgICAgICAgICIwLjA1NTM4NiwgMC4xMTExNDgsIDAuMTY1OTc0LCAwLjIwNTEzOSwgMC4yNjc3ODksIDAuMzIyNjExLCAwLjQwMDg4NiIsIFwKLSAgICAgICAgICAiMC4wNjI3MzUsIDAuMTE4NTkxLCAwLjE3MzM0NiwgMC4yMTI0ODcsIDAuMjc1MSwgMC4zMjk5MDYsIDAuNDA4MzY0IiwgXAotICAgICAgICAgICIwLjA2ODcxLCAwLjEyNDgxNywgMC4xNzk2MDMsIDAuMjE4NzMxLCAwLjI4MTM2OCwgMC4zMzYxNTQsIDAuNDE0MzY0IiwgXAotICAgICAgICAgICIwLjA3NjYwNywgMC4xMzMxNCwgMC4xODc3NTksIDAuMjI2ODU1LCAwLjI4OTQyMSwgMC4zNDQyMTksIDAuNDIyNTM4IiwgXAotICAgICAgICAgICIwLjA4MjY3MiwgMC4xMzk0OTYsIDAuMTk0MjY5LCAwLjIzMzM2NCwgMC4yOTU5MiwgMC4zNTA2NDIsIDAuNDI4OTYxIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDMyMTU0LCAwLjE0NDkyMSwgMC4yNTk5NDgsIDAuMzQyMzY0LCAwLjQ3NDMwNSwgMC41OTAwMDYsIDAuNzU0NzYzIiwgXAotICAgICAgICAgICIwLjAzMjIzOCwgMC4xNDQ5MzEsIDAuMjU5OTc1LCAwLjM0MjQ1OCwgMC40NzQ0NjUsIDAuNTg5OTIzLCAwLjc1NTE1MyIsIFwKLSAgICAgICAgICAiMC4wMzMyMzUsIDAuMTQ1MDQ2LCAwLjI1OTk5NywgMC4zNDI0MTUsIDAuNDc0NDUyLCAwLjU5MDAzOSwgMC43NTQ4NjgiLCBcCi0gICAgICAgICAgIjAuMDM0NzU3LCAwLjE0NTQsIDAuMjYwMDgxLCAwLjM0MjQ3NywgMC40NzQ0MzEsIDAuNTg5OTIzLCAwLjc1NTExMSIsIFwKLSAgICAgICAgICAiMC4wMzYxMjYsIDAuMTQ1Nzk3LCAwLjI2MDIxNiwgMC4zNDI1MSwgMC40NzQzODksIDAuNTg5OTA4LCAwLjc1NDU5OSIsIFwKLSAgICAgICAgICAiMC4wMzgzODQsIDAuMTQ2NDc5LCAwLjI2MDQ3NSwgMC4zNDI3MjksIDAuNDc0NDQxLCAwLjU4OTk4MiwgMC43NTQ3MyIsIFwKLSAgICAgICAgICAiMC4wMzk5MjQsIDAuMTQ3MTQ0LCAwLjI2MDczOCwgMC4zNDI3NjIsIDAuNDc0NTMyLCAwLjU4OTkxOCwgMC43NTQ4MzciKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTYxMTcsIDAuMTg5Njc5LCAwLjMyMjk0NCwgMC40MTgwMjUsIDAuNTY5OTY5LCAwLjcwMzM4MSwgMC44OTMxOTIiLCBcCi0gICAgICAgICAgIjAuMDY0MjAyLCAwLjE5NzgyMywgMC4zMzEyNTYsIDAuNDI2MjcxLCAwLjU3ODI3OCwgMC43MTE5MzIsIDAuOTAyMSIsIFwKLSAgICAgICAgICAiMC4wNzI4ODUsIDAuMjA2NTc3LCAwLjMzOTg1NiwgMC40MzQ5OTEsIDAuNTg3MDMyLCAwLjcyMDA4OSwgMC45MTEyMzUiLCBcCi0gICAgICAgICAgIjAuMDc5NTU3LCAwLjIxMzIyNywgMC4zNDY0ODYsIDAuNDQxNTkxLCAwLjU5Mzk3NywgMC43MjcyMzgsIDAuOTE2OSIsIFwKLSAgICAgICAgICAiMC4wODQ3NTMsIDAuMjE4NDg3LCAwLjM1MTY1MSwgMC40NDY3NTgsIDAuNTk5MjQxLCAwLjczMjAzMSwgMC45MjIxMzIiLCBcCi0gICAgICAgICAgIjAuMDkxNjE1LCAwLjIyNTI4NiwgMC4zNTg1NDUsIDAuNDUzNiwgMC42MDU3NzcsIDAuNzM5MDM1LCAwLjkyOTAyNiIsIFwKLSAgICAgICAgICAiMC4wOTY1NjIsIDAuMjMwMTksIDAuMzYzMzg2LCAwLjQ1ODUwOSwgMC42MTA2NCwgMC43NDQxOTYsIDAuOTM0NTQ5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDYxODEzLCAwLjMzNTg3NCwgMC42MDk1ODIsIDAuODA1MzYzLCAxLjEyMDU5LCAxLjM5MzYxLCAxLjc4NzY2IiwgXAotICAgICAgICAgICIwLjA2MTgwNiwgMC4zMzU4NzcsIDAuNjA5NTcyLCAwLjgwNTQ5NCwgMS4xMjEyOCwgMS4zOTMyNSwgMS43ODQ4NCIsIFwKLSAgICAgICAgICAiMC4wNjE5NzcsIDAuMzM1OTA3LCAwLjYwOTgwMSwgMC44MDU0NDksIDEuMTIxMjQsIDEuMzk2LCAxLjc4NTI2IiwgXAotICAgICAgICAgICIwLjA2MjI2NCwgMC4zMzU4MDUsIDAuNjEwNTU0LCAwLjgwNjc0OCwgMS4xMTg4NSwgMS4zOTMyOCwgMS43ODc2NiIsIFwKLSAgICAgICAgICAiMC4wNjI2NTYsIDAuMzM1Mjk4LCAwLjYwOTk0MiwgMC44MDYwNzgsIDEuMTE4NzcsIDEuMzk0NDEsIDEuNzg2ODkiLCBcCi0gICAgICAgICAgIjAuMDYzMTkxLCAwLjMzNTY5LCAwLjYwOTU5MywgMC44MDU4NzYsIDEuMTE5MywgMS4zOTMzNiwgMS43ODc2MiIsIFwKLSAgICAgICAgICAiMC4wNjM2ODEsIDAuMzM1NTAyLCAwLjYxMDMyLCAwLjgwNjY0NywgMS4xMTkzOCwgMS4zOTMwNSwgMS43ODQ3NiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxNTc4NywgMC4wNzAzNDEsIDAuMTI0NzIyLCAwLjE2MzU5NiwgMC4yMjU3NzksIDAuMjgwMTc5LCAwLjM1Nzk2OSIsIFwKLSAgICAgICAgICAiMC4wMjQwMTUsIDAuMDc4NTI1LCAwLjEzMjkzLCAwLjE3MTgxNiwgMC4yMzQwMTEsIDAuMjg4NDYyLCAwLjM2NTkzNiIsIFwKLSAgICAgICAgICAiMC4wMzE3MzYsIDAuMDg4NjQ2LCAwLjE0MzA3MSwgMC4xODE4NDgsIDAuMjQ0MDEyLCAwLjI5ODQzMSwgMC4zNzU5NjUiLCBcCi0gICAgICAgICAgIjAuMDM3MDIzLCAwLjA5OTEwMywgMC4xNTMzODMsIDAuMTkyMTU2LCAwLjI1NDA5LCAwLjMwODY4NywgMC4zODY0MjEiLCBcCi0gICAgICAgICAgIjAuMDQxMjUxLCAwLjEwOTY5OSwgMC4xNjM4MjEsIDAuMjAyNTk4LCAwLjI2NDcxMywgMC4zMTkxOTEsIDAuMzk2NzE4IiwgXAotICAgICAgICAgICIwLjA0NjI4OSwgMC4xMjYwMTMsIDAuMTgwNzUzLCAwLjIxOTQyNCwgMC4yODE0NTIsIDAuMzM1NzQ5LCAwLjQxMzQzMiIsIFwKLSAgICAgICAgICAiMC4wNDk4MTEsIDAuMTM4NDU4LCAwLjE5NTY0NywgMC4yMzQyNTgsIDAuMjk2MTY0LCAwLjM1MDQ5NiwgMC40MjgwNTgiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjYyNTUsIDAuMTQwOTA3LCAwLjI1NTQ3MiwgMC4zMzczNjYsIDAuNDY4MjExLCAwLjU4Mjg2NSwgMC43NDY1MTEiLCBcCi0gICAgICAgICAgIjAuMDMxMDgsIDAuMTQwOTIxLCAwLjI1NTQ3LCAwLjMzNzMyNSwgMC40NjgzODMsIDAuNTgzMDUyLCAwLjc0NjgwNiIsIFwKLSAgICAgICAgICAiMC4wNDA1MDYsIDAuMTQ0MjI0LCAwLjI1NTg2MiwgMC4zMzcxNzcsIDAuNDY4MjM1LCAwLjU4Mjc2MiwgMC43NDY0NzUiLCBcCi0gICAgICAgICAgIjAuMDQ5MTQ2LCAwLjE1MDM5LCAwLjI1ODgyNSwgMC4zMzg2MzQsIDAuNDY4MzgyLCAwLjU4MjgxNCwgMC43NDY0MTgiLCBcCi0gICAgICAgICAgIjAuMDU2NDg5LCAwLjE1ODAxNCwgMC4yNjM3MjEsIDAuMzQxOTY4LCAwLjQ2OTU5MywgMC41ODI5MTEsIDAuNzQ2MjEiLCBcCi0gICAgICAgICAgIjAuMDY3NDQ1LCAwLjE3MTYsIDAuMjczODc3LCAwLjM1MDAwNCwgMC40NzQ5NzQsIDAuNTg2MTU2LCAwLjc0NzE4MiIsIFwKLSAgICAgICAgICAiMC4wNzYwOSwgMC4xODQ4NzEsIDAuMjg0MjMzLCAwLjM1ODgxMSwgMC40ODE1NTcsIDAuNTkxMTU2LCAwLjc1MDE2MSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzNTI0MSwgMC4xNjg1ODksIDAuMzAyMDYzLCAwLjM5NzA4OSwgMC41NDkxMSwgMC42ODE5OTQsIDAuODcxOTIyIiwgXAotICAgICAgICAgICIwLjA0MTM2NiwgMC4xNzUxNDYsIDAuMzA4Mjc5LCAwLjQwMzM4NywgMC41NTU0MjYsIDAuNjg4NTI3LCAwLjg3ODY5NCIsIFwKLSAgICAgICAgICAiMC4wNDk0NTksIDAuMTgzMzQ4LCAwLjMxNjU2NiwgMC40MTE4ODUsIDAuNTY0NTExLCAwLjY5Njg4NCwgMC44ODc5NSIsIFwKLSAgICAgICAgICAiMC4wNTY1MTksIDAuMTkxNTkzLCAwLjMyNDk1OCwgMC40MTk5NjYsIDAuNTcyMTkzLCAwLjcwNTIxOSwgMC44OTYzODIiLCBcCi0gICAgICAgICAgIjAuMDYyNTQ1LCAwLjE5OTgxNSwgMC4zMzMyNDEsIDAuNDI4Mjk2LCAwLjU4MDQzOCwgMC43MTQxNTgsIDAuOTAzODk3IiwgXAotICAgICAgICAgICIwLjA3MDk0NSwgMC4yMTM0NTUsIDAuMzQ2NDQ2LCAwLjQ0MTU1NywgMC41OTM1ODUsIDAuNzI2ODc2LCAwLjkxNzM1MiIsIFwKLSAgICAgICAgICAiMC4wNzc1MTgsIDAuMjI0OTY4LCAwLjM1NzkzMiwgMC40NTMzNCwgMC42MDU2MjMsIDAuNzM4NTA4LCAwLjkyODcxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDYxMjg2LCAwLjMzNTcwOCwgMC42MDk3MzIsIDAuODA1NDksIDEuMTE4ODgsIDEuMzkzOTEsIDEuNzg3NiIsIFwKLSAgICAgICAgICAiMC4wNjIyNTEsIDAuMzM1MzMyLCAwLjYxMDUxNSwgMC44MDY3MTcsIDEuMTIwNTUsIDEuMzkzOSwgMS43ODc2NSIsIFwKLSAgICAgICAgICAiMC4wNjcwNjQsIDAuMzM1ODk0LCAwLjYwOTkwNSwgMC44MDU4NjksIDEuMTE5MywgMS4zOTM5NCwgMS43ODUxNiIsIFwKLSAgICAgICAgICAiMC4wNzM0NjUsIDAuMzM2ODMyLCAwLjYwOTYyMiwgMC44MDY3MDMsIDEuMTIxMTgsIDEuMzk1MjUsIDEuNzg1NCIsIFwKLSAgICAgICAgICAiMC4wODAzMjEsIDAuMzM5MTA0LCAwLjYxMTAxNywgMC44MDY2NjcsIDEuMTIwNTYsIDEuMzkzMDksIDEuNzg1NTEiLCBcCi0gICAgICAgICAgIjAuMDkwNjY0LCAwLjM0NDY0NywgMC42MTI2ODcsIDAuODA3NTcyLCAxLjEyMDU0LCAxLjM5NTkzLCAxLjc4NDg1IiwgXAotICAgICAgICAgICIwLjA5ODMxMSwgMC4zNTAzOTUsIDAuNjE1NDE4LCAwLjgwOTE5NSwgMS4xMjE0LCAxLjM5NTE4LCAxLjc4NTU0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE0NzQ0LCAwLjA2OTMyMSwgMC4xMjM3OTEsIDAuMTYyNzAzLCAwLjIyNTAzNSwgMC4yNzk1NTYsIDAuMzU3NDAzIiwgXAotICAgICAgICAgICIwLjAyMjkxMiwgMC4wNzc2MSwgMC4xMzIxOTMsIDAuMTcxMDE4LCAwLjIzMzI2NiwgMC4yODc3NzUsIDAuMzY1ODU2IiwgXAotICAgICAgICAgICIwLjAzMDA0OSwgMC4wODc4ODksIDAuMTQyMzYzLCAwLjE4MTQyLCAwLjI0MzU1OCwgMC4yOTgyNCwgMC4zNzU5OTQiLCBcCi0gICAgICAgICAgIjAuMDM0NzQ4LCAwLjA5ODU0MSwgMC4xNTI5MTcsIDAuMTkxODA3LCAwLjI1Mzc2NiwgMC4zMDg2ODQsIDAuMzg2NzE5IiwgXAotICAgICAgICAgICIwLjAzODczOSwgMC4xMDg4NDIsIDAuMTYzMTE1LCAwLjIwMTk5MiwgMC4yNjQyMTQsIDAuMzE4Njc4LCAwLjM5NjUxNiIsIFwKLSAgICAgICAgICAiMC4wNDMyNjIsIDAuMTI0OTgsIDAuMTgwMDA4LCAwLjIxODc4NSwgMC4yODA5NzIsIDAuMzM1Mzc3LCAwLjQxMzI2IiwgXAotICAgICAgICAgICIwLjA0NjE1OSwgMC4xMzY4OTYsIDAuMTk0Nzk4LCAwLjIzMzUxOCwgMC4yOTU1NjUsIDAuMzUwMDI5LCAwLjQyNzc3OSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyNDkwNywgMC4xNDAxODksIDAuMjU1MzQ1LCAwLjMzNzkzMSwgMC40Njk4OTcsIDAuNTg0OTEyLCAwLjc1MDEzOSIsIFwKLSAgICAgICAgICAiMC4wMjk4ODMsIDAuMTQwMiwgMC4yNTU0MjYsIDAuMzM3OTE3LCAwLjQ2OTQ1NiwgMC41ODU1NDIsIDAuNzQ5NDI5IiwgXAotICAgICAgICAgICIwLjAzOTQ0MSwgMC4xNDM2OTIsIDAuMjU2MDE4LCAwLjMzNzkwMSwgMC40Njk3NywgMC41ODQ3NjEsIDAuNzQ5NjAxIiwgXAotICAgICAgICAgICIwLjA0ODIzMSwgMC4xNDk0NzYsIDAuMjU4NzU5LCAwLjMzOTA2LCAwLjQ2OTY4LCAwLjU4NDg4NywgMC43NDk0NTUiLCBcCi0gICAgICAgICAgIjAuMDU1MjI2LCAwLjE1NzE4NSwgMC4yNjQwMTMsIDAuMzQyOTUzLCAwLjQ3MDc1OSwgMC41ODQ5MTYsIDAuNzQ5MTciLCBcCi0gICAgICAgICAgIjAuMDY2MTY5LCAwLjE3MDgxMywgMC4yNzM4OTcsIDAuMzUwNzgzLCAwLjQ3NjgzMiwgMC41ODgzMDIsIDAuNzQ5OTg4IiwgXAotICAgICAgICAgICIwLjA3NTI3LCAwLjE4NDgyNywgMC4yODQxNDcsIDAuMzU5MzYzLCAwLjQ4MzE5MywgMC41OTM5ODEsIDAuNzUzNjMzIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDMyMTY0LCAwLjE2NTU3NCwgMC4yOTg2NDQsIDAuMzkzNjczLCAwLjU0NjI5OSwgMC42Nzg4NDIsIDAuODY5NjI3IiwgXAotICAgICAgICAgICIwLjAzOTA2NywgMC4xNzI2OTQsIDAuMzA1NzYsIDAuNDAwODIyLCAwLjU1MjgzMywgMC42ODYwNjYsIDAuODc2MDU0IiwgXAotICAgICAgICAgICIwLjA0ODU3NCwgMC4xODEwNjQsIDAuMzE0ODA2LCAwLjQwOTg2NiwgMC41NjIxNDksIDAuNjk1MDQ3LCAwLjg4NTMyNCIsIFwKLSAgICAgICAgICAiMC4wNTcwMjIsIDAuMTkwNzczLCAwLjMyMzkwNywgMC40MTg5MTksIDAuNTcxMDI5LCAwLjcwNDI1NSwgMC44OTQwNTQiLCBcCi0gICAgICAgICAgIjAuMDYzODY0LCAwLjIwMDA0OCwgMC4zMzMwNDUsIDAuNDI3OTE1LCAwLjU3OTk5LCAwLjcxMzU2NCwgMC45MDMwNTEiLCBcCi0gICAgICAgICAgIjAuMDczMzcsIDAuMjE1MDg5LCAwLjM0Nzc2NSwgMC40NDI3NDMsIDAuNTk0NzQxLCAwLjcyNzcyOCwgMC45MTc5NzgiLCBcCi0gICAgICAgICAgIjAuMDgwMjI4LCAwLjIyODg2MSwgMC4zNjEwMzcsIDAuNDU2MDI0LCAwLjYwODA4MiwgMC43NDA3NzIsIDAuOTMxMjU4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDYxMTMyLCAwLjMzNjA5MiwgMC42MTAyOTgsIDAuODA1ODc0LCAxLjExODk3LCAxLjM5NTI4LCAxLjc4NDc4IiwgXAotICAgICAgICAgICIwLjA2Mjc1MSwgMC4zMzUzNywgMC42MDk3MiwgMC44MDU2MTgsIDEuMTIwNDcsIDEuMzk1MjQsIDEuNzg3NTEiLCBcCi0gICAgICAgICAgIjAuMDY5MzMsIDAuMzM2MDU5LCAwLjYwOTY2NSwgMC44MDU2NTgsIDEuMTE4NzYsIDEuMzk1MjMsIDEuNzg4NjciLCBcCi0gICAgICAgICAgIjAuMDc3MjE2LCAwLjMzNzAwNiwgMC42MDk2NzgsIDAuODA3MTYzLCAxLjEyMTI2LCAxLjM5MzExLCAxLjc4NTI5IiwgXAotICAgICAgICAgICIwLjA4NTY3MywgMC4zMzk1OTQsIDAuNjEwOTc5LCAwLjgwNjA3LCAxLjExOTQ0LCAxLjM5MzAxLCAxLjc4NTY0IiwgXAotICAgICAgICAgICIwLjA5NjcxLCAwLjM0NzA4NywgMC42MTMxMiwgMC44MDY5OTEsIDEuMTIwNTgsIDEuMzk1MjEsIDEuNzg2NyIsIFwKLSAgICAgICAgICAiMC4xMDYzOTMsIDAuMzU1MzE4LCAwLjYxNzE5MSwgMC44MDkzNDEsIDEuMTE5LCAxLjM5NTIzLCAxLjc4NDY4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQU4iOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEyNDAxLCAwLjAxMjQxOCwgMC4wMTI0MTksIDAuMDEyNDIsIDAuMDEyNDIsIDAuMDEyNDEyLCAwLjAxMjQxMyIsIFwKLSAgICAgICAgICAiMC4wMTIzNjIsIDAuMDEyMzk2LCAwLjAxMjQwMSwgMC4wMTI0MDMsIDAuMDEyNDAzLCAwLjAxMjQwNiwgMC4wMTI0MDMiLCBcCi0gICAgICAgICAgIjAuMDEyNDY3LCAwLjAxMjQ5LCAwLjAxMjQ5NCwgMC4wMTI0OTUsIDAuMDEyNDk3LCAwLjAxMjQ5NywgMC4wMTI0OTciLCBcCi0gICAgICAgICAgIjAuMDEyNTgzLCAwLjAxMjU3OCwgMC4wMTI1OCwgMC4wMTI1ODMsIDAuMDEyNTgsIDAuMDEyNTgsIDAuMDEyNTgiLCBcCi0gICAgICAgICAgIjAuMDEyNzc1LCAwLjAxMjcyNCwgMC4wMTI3MTksIDAuMDEyNzIsIDAuMDEyNzIsIDAuMDEyNzE3LCAwLjAxMjcxNiIsIFwKLSAgICAgICAgICAiMC4wMTMwOTcsIDAuMDEyOTk2LCAwLjAxMjk4MSwgMC4wMTI5NzgsIDAuMDEyOTc2LCAwLjAxMjk3MywgMC4wMTI5NjkiLCBcCi0gICAgICAgICAgIjAuMDEzNDEsIDAuMDEzMjI1LCAwLjAxMzIxMiwgMC4wMTMyMiwgMC4wMTMyLCAwLjAxMzE5OCwgMC4wMTMyMDkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwOTY0OCwgMC4wMDk4NjUsIDAuMDA5ODk1LCAwLjAwOTkwNSwgMC4wMDk5MTMsIDAuMDA5OTE3LCAwLjAwOTkyMSIsIFwKLSAgICAgICAgICAiMC4wMDk1ODYsIDAuMDA5ODI4LCAwLjAwOTg2OSwgMC4wMDk4ODIsIDAuMDA5ODkzLCAwLjAwOTg5OSwgMC4wMDk5MDUiLCBcCi0gICAgICAgICAgIjAuMDA5NjA4LCAwLjAwOTg3NCwgMC4wMDk5MjksIDAuMDA5OTQ3LCAwLjAwOTk2MywgMC4wMDk5NzIsIDAuMDA5OTgiLCBcCi0gICAgICAgICAgIjAuMDA5NjU4LCAwLjAwOTkzMywgMC4wMDk5OTcsIDAuMDEwMDE4LCAwLjAxMDAzOCwgMC4wMTAwNDgsIDAuMDEwMDU3IiwgXAotICAgICAgICAgICIwLjAwOTc3MiwgMC4wMTAwNDMsIDAuMDEwMTExLCAwLjAxMDEzNSwgMC4wMTAxNTcsIDAuMDEwMTY5LCAwLjAxMDE4IiwgXAotICAgICAgICAgICIwLjAwOTk3OCwgMC4wMTAyNTQsIDAuMDEwMzI5LCAwLjAxMDM1NSwgMC4wMTAzNzksIDAuMDEwMzkzLCAwLjAxMDQwNiIsIFwKLSAgICAgICAgICAiMC4wMTAxOSwgMC4wMTA0NDgsIDAuMDEwNTI2LCAwLjAxMDU1MywgMC4wMTA1ODEsIDAuMDEwNTk1LCAwLjAxMDYwOSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEwMDAxLCAwLjAxMDA0LCAwLjAxMDA0NCwgMC4wMTAwNDYsIDAuMDEwMDQ2LCAwLjAxMDA0NiwgMC4wMTAwNDYiLCBcCi0gICAgICAgICAgIjAuMDA5OTUzLCAwLjAxMDAyMiwgMC4wMTAwMzQsIDAuMDEwMDM3LCAwLjAxMDA0LCAwLjAxMDA0LCAwLjAxMDA0MyIsIFwKLSAgICAgICAgICAiMC4wMTAwOCwgMC4wMTAxMTEsIDAuMDEwMDg5LCAwLjAxMDA4MiwgMC4wMTAwNzUsIDAuMDEwMDY2LCAwLjAxMDA2MyIsIFwKLSAgICAgICAgICAiMC4wMTA0MzEsIDAuMDEwMjQzLCAwLjAxMDE3MSwgMC4wMTAxNDcsIDAuMDEwMTExLCAwLjAxMDExMywgMC4wMTAxIiwgXAotICAgICAgICAgICIwLjAxMDgxOSwgMC4wMTA0MTIsIDAuMDEwMjcxLCAwLjAxMDIyOSwgMC4wMTAxOTEsIDAuMDEwMTY2LCAwLjAxMDE0NSIsIFwKLSAgICAgICAgICAiMC4wMTE1OCwgMC4wMTA3MzMsIDAuMDEwNDc5LCAwLjAxMDM5MSwgMC4wMTAzMTYsIDAuMDEwMjcxLCAwLjAxMDIzMSIsIFwKLSAgICAgICAgICAiMC4wMTIzNDEsIDAuMDExMDg2LCAwLjAxMDcwOSwgMC4wMTA1NzQsIDAuMDEwNDU0LCAwLjAxMDM4OSwgMC4wMTAzMjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjE3OSwgMC4wMDIyOTEsIDAuMDAyMzA0LCAwLjAwMjMwOCwgMC4wMDIzMTIsIDAuMDAyMzEzLCAwLjAwMjMxNSIsIFwKLSAgICAgICAgICAiMC4wMDE5MDksIDAuMDAyMTkxLCAwLjAwMjI0NSwgMC4wMDIyNjIsIDAuMDAyMjc4LCAwLjAwMjI4NiwgMC4wMDIyOTQiLCBcCi0gICAgICAgICAgIjAuMDAxODk1LCAwLjAwMjEyMSwgMC4wMDIxOTUsIDAuMDAyMjIyLCAwLjAwMjI0NiwgMC4wMDIyNiwgMC4wMDIyNzMiLCBcCi0gICAgICAgICAgIjAuMDAyMDYyLCAwLjAwMjExNiwgMC4wMDIxOCwgMC4wMDIyMDcsIDAuMDAyMjMzLCAwLjAwMjI0OCwgMC4wMDIyNjIiLCBcCi0gICAgICAgICAgIjAuMDAyMzI4LCAwLjAwMjE2NiwgMC4wMDIxOTgsIDAuMDAyMjE3LCAwLjAwMjIzOSwgMC4wMDIyNTEsIDAuMDAyMjY0IiwgXAotICAgICAgICAgICIwLjAwMjkwOSwgMC4wMDIzMzksIDAuMDAyMjg4LCAwLjAwMjI4MSwgMC4wMDIyODEsIDAuMDAyMjg0LCAwLjAwMjI4OCIsIFwKLSAgICAgICAgICAiMC4wMDM0OTYsIDAuMDAyNTY0LCAwLjAwMjQyMywgMC4wMDIzODYsIDAuMDAyMzU3LCAwLjAwMjM0NCwgMC4wMDIzMzQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNzg3LCAwLjAwNzk1OSwgMC4wMDc5NjYsIDAuMDA3OTcxLCAwLjAwNzk3MywgMC4wMDc5NzUsIDAuMDA3OTc2IiwgXAotICAgICAgICAgICIwLjAwNzc5NCwgMC4wMDc5NjEsIDAuMDA3OTg1LCAwLjAwNzk5NywgMC4wMDgwMDMsIDAuMDA4MDA3LCAwLjAwODAxMyIsIFwKLSAgICAgICAgICAiMC4wMDc5MDksIDAuMDA4MDA1LCAwLjAwODAxNiwgMC4wMDgwMTcsIDAuMDA4MDIzLCAwLjAwODAyMiwgMC4wMDgwMjUiLCBcCi0gICAgICAgICAgIjAuMDA4MjgzLCAwLjAwODEzNiwgMC4wMDgwOTgsIDAuMDA4MDgxLCAwLjAwODA2NywgMC4wMDgwNjQsIDAuMDA4MDU4IiwgXAotICAgICAgICAgICIwLjAwODY2MywgMC4wMDgyNjQsIDAuMDA4MTc4LCAwLjAwODE0OSwgMC4wMDgxMjEsIDAuMDA4MTA5LCAwLjAwODA5NSIsIFwKLSAgICAgICAgICAiMC4wMDk0MDgsIDAuMDA4NTY1LCAwLjAwODM2LCAwLjAwODI5MiwgMC4wMDgyNDgsIDAuMDA4MjA2LCAwLjAwODE3NSIsIFwKLSAgICAgICAgICAiMC4wMTAxMzQsIDAuMDA4OTE0LCAwLjAwODU5MiwgMC4wMDg0NzEsIDAuMDA4MzcsIDAuMDA4MzI0LCAwLjAwODI2OSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyMTUxLCAwLjAwMjI3OCwgMC4wMDIyOTIsIDAuMDAyMjk3LCAwLjAwMjMsIDAuMDAyMzAzLCAwLjAwMjMwNCIsIFwKLSAgICAgICAgICAiMC4wMDE5NzcsIDAuMDAyMTk0LCAwLjAwMjI0MSwgMC4wMDIyNTcsIDAuMDAyMjcxLCAwLjAwMjI3OSwgMC4wMDIyODUiLCBcCi0gICAgICAgICAgIjAuMDAyMTYxLCAwLjAwMjE4NSwgMC4wMDIyMjgsIDAuMDAyMjQ0LCAwLjAwMjI2MSwgMC4wMDIyNywgMC4wMDIyNzgiLCBcCi0gICAgICAgICAgIjAuMDAyNjI2LCAwLjAwMjI5NSwgMC4wMDIyODYsIDAuMDAyMjg1LCAwLjAwMjI4OCwgMC4wMDIyOTEsIDAuMDAyMjk0IiwgXAotICAgICAgICAgICIwLjAwMzA3MywgMC4wMDI0NzMsIDAuMDAyMzg4LCAwLjAwMjM2MywgMC4wMDIzNDQsIDAuMDAyMzM1LCAwLjAwMjMyOSIsIFwKLSAgICAgICAgICAiMC4wMDM2ODIsIDAuMDAyNzQ1LCAwLjAwMjU1NCwgMC4wMDI1MTIsIDAuMDAyNDUzLCAwLjAwMjQyNSwgMC4wMDIzOTkiLCBcCi0gICAgICAgICAgIjAuMDA0NjgsIDAuMDAzMDM5LCAwLjAwMjc1MSwgMC4wMDI2NDcsIDAuMDAyNTc3LCAwLjAwMjUwMywgMC4wMDI0NiIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBOQU5EM0JYTCAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoTkFORDNCWEwpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4yNTE5NjU7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEFOKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA3MDg2NDI7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNzA4NjQyOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDcwODYwNTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyNTMsIDAuMDAwMjc4LCAwLjAwMDM1NCwgMC4wMDA0NzMsIDAuMDAwNjA2LCAwLjAwMDgzNCwgMC4wMDEwMzgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDE3MjksIDAuMDAxNzUsIDAuMDAxODM3LCAwLjAwMTk1LCAwLjAwMjA4MiwgMC4wMDIzMDgsIDAuMDAyNTA3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2NTk4NTg7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjU5ODU4OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDY1OTIxNjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyOTYsIDAuMDAwMjk2LCAwLjAwMDI5NiwgMC4wMDAyOTYsIDAuMDAwMjk2LCAwLjAwMDI5NiwgMC4wMDAyOTYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAzMjMsIDAuMDAwMzA1LCAwLjAwMDMwMiwgMC4wMDAzMDEsIDAuMDAwMywgMC4wMDAyOTgsIDAuMDAwMjk4Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihDKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2ODExMDk7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjgxMDI1OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDY4MTEwOTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxMzksIDAuMDAwMTM5LCAwLjAwMDEzOSwgMC4wMDAxMzksIDAuMDAwMTM5LCAwLjAwMDEzOSwgMC4wMDAxMzkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAzMzcsIDAuMDAwMzM4LCAwLjAwMDMzOCwgMC4wMDAzMzgsIDAuMDAwMzM4LCAwLjAwMDMzOCwgMC4wMDAzMzgiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4wODkwNTc4OwotICAgIGZ1bmN0aW9uIDogIighKCgoIUFOKSBCKSBDKSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkFOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzE5NTIsIDAuMDgyNTEsIDAuMTc3Mzc5LCAwLjMzNTMwNywgMC40OTMyNywgMC44NjE3MjcsIDEuMDcyMzciLCBcCi0gICAgICAgICAgIjAuMDc5MTU1LCAwLjA4OTcwNywgMC4xODQ1NTEsIDAuMzQyNzIzLCAwLjUwMDYxOCwgMC44NjkzNDEsIDEuMDc5NTYiLCBcCi0gICAgICAgICAgIjAuMDg1MDg0LCAwLjA5NTYyOCwgMC4xOTA0MjMsIDAuMzQ4Mzc0LCAwLjUwNjM5OSwgMC44NzQ2NTcsIDEuMDg2MDIiLCBcCi0gICAgICAgICAgIjAuMDg5MzY4LCAwLjA5OTkxLCAwLjE5NDYyMywgMC4zNTI1NTQsIDAuNTEwNjY4LCAwLjg3ODgsIDEuMDg5OSIsIFwKLSAgICAgICAgICAiMC4wOTI3OTgsIDAuMTAzMzUxLCAwLjE5ODA4NSwgMC4zNTYyMDIsIDAuNTE0MDE2LCAwLjg4MjM3MSwgMS4wOTI4OSIsIFwKLSAgICAgICAgICAiMC4wOTc2MSwgMC4xMDgxNTIsIDAuMjAyODk4LCAwLjM2MDczMSwgMC41MTg2NTcsIDAuODg3MzM3LCAxLjA5ODU5IiwgXAotICAgICAgICAgICIwLjEwMTE5MSwgMC4xMTE4NjUsIDAuMjA2NSwgMC4zNjQzMTEsIDAuNTIyMzA4LCAwLjg5MDU5NCwgMS4xMDExIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEyNDMyNSwgMC4xNDY0OTcsIDAuMzQ1ODkyLCAwLjY3ODAzOCwgMS4wMTAxNSwgMS43ODUxOCwgMi4yMjg2MSIsIFwKLSAgICAgICAgICAiMC4xMjQzMjIsIDAuMTQ2NDgsIDAuMzQ1ODE1LCAwLjY3ODI4MiwgMS4wMTA1LCAxLjc4NTg2LCAyLjIyNzcxIiwgXAotICAgICAgICAgICIwLjEyNDQ1MSwgMC4xNDY1NDUsIDAuMzQ1OTM0LCAwLjY3Nzk3NCwgMS4wMTAxNywgMS43ODU3MiwgMi4yMjkyMSIsIFwKLSAgICAgICAgICAiMC4xMjQ2MTQsIDAuMTQ2NjMsIDAuMzQ1OTczLCAwLjY3ODA4MywgMS4wMTAzMSwgMS43ODQ3OSwgMi4yMjgxMiIsIFwKLSAgICAgICAgICAiMC4xMjQ3NCwgMC4xNDY3NjMsIDAuMzQ1ODk1LCAwLjY3ODQwOCwgMS4wMTAyMywgMS43ODU3NywgMi4yMjc4NCIsIFwKLSAgICAgICAgICAiMC4xMjUyMDYsIDAuMTQ2OTc5LCAwLjM0NTgxLCAwLjY3ODI4NCwgMS4wMTA0LCAxLjc4NTQ1LCAyLjIyODcyIiwgXAotICAgICAgICAgICIwLjEyNTQ0LCAwLjE0NzM5OSwgMC4zNDU5MjIsIDAuNjc4MTk0LCAxLjAxMDAxLCAxLjc4NDYzLCAyLjIyODk4Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE0ODczOSwgMC4xNzI3ODcsIDAuMzg5OTE2LCAwLjc1MjE2MywgMS4xMTMwNSwgMS45NTY3NCwgMi40Mzk0MyIsIFwKLSAgICAgICAgICAiMC4xNTU2MTIsIDAuMTc5Nzc4LCAwLjM5NzIyNywgMC43NTg2MjgsIDEuMTIwOTYsIDEuOTY1NzEsIDIuNDQ3ODciLCBcCi0gICAgICAgICAgIjAuMTYwNzU4LCAwLjE4NDk5MywgMC40MDIyMzUsIDAuNzY0MDM3LCAxLjEyNjQ0LCAxLjk3MDY4LCAyLjQ1Mzc3IiwgXAotICAgICAgICAgICIwLjE2NDI3NywgMC4xODg0NTEsIDAuNDA1ODM3LCAwLjc2NzU1NywgMS4xMjkzNCwgMS45NzQ0OCwgMi40NTcyNCIsIFwKLSAgICAgICAgICAiMC4xNjcxNjksIDAuMTkxMzMsIDAuNDA4NTg2LCAwLjc3MDQyMywgMS4xMzMxNSwgMS45NzY3OSwgMi40NTk5MyIsIFwKLSAgICAgICAgICAiMC4xNzA5ODQsIDAuMTk1MDYyLCAwLjQxMjMxNSwgMC43NzQyMjgsIDEuMTM2MDksIDEuOTgwMzIsIDIuNDYzOTEiLCBcCi0gICAgICAgICAgIjAuMTczNzEzLCAwLjE5Nzg3NSwgMC40MTQ5MiwgMC43NzcwMiwgMS4xMzk4NSwgMS45ODMxNywgMi40NjcyMyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yNzI5NzEsIDAuMzIyNzc4LCAwLjc3MDQ5NiwgMS41MTUwNSwgMi4yNjIxNSwgNC4wMDIyNSwgNC45OTk1OSIsIFwKLSAgICAgICAgICAiMC4yNzMwMTgsIDAuMzIyNjcxLCAwLjc2OTg5NywgMS41MTczOCwgMi4yNjAzOSwgMy45OTk0NSwgNC45OTM3MiIsIFwKLSAgICAgICAgICAiMC4yNzI5NzQsIDAuMzIyNjgxLCAwLjc3MDIyMywgMS41MTU3NywgMi4yNjAyNCwgNC4wMDAwMywgNC45OTQwNCIsIFwKLSAgICAgICAgICAiMC4yNzI5OTYsIDAuMzIzMTQ1LCAwLjc2OTgyOSwgMS41MTc0NCwgMi4yNjI0NiwgNC4wMDE1NSwgNC45OTMxMiIsIFwKLSAgICAgICAgICAiMC4yNzMyMywgMC4zMjMxMjUsIDAuNzY5OTYxLCAxLjUxNjE2LCAyLjI2MDM4LCA0LjAwMDg5LCA0Ljk5NTEyIiwgXAotICAgICAgICAgICIwLjI3Mjg5OSwgMC4zMjI1OTgsIDAuNzcwOTY1LCAxLjUxNzQyLCAyLjI2MjUzLCA0LjAwMjI2LCA0Ljk5MzE1IiwgXAotICAgICAgICAgICIwLjI3MjkzNywgMC4zMjI1NDgsIDAuNzcwNjExLCAxLjUxNzQ2LCAyLjI2MDczLCA0LjAwNTYxLCA0Ljk5NDMzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2MTU3NiwgMC4wNzIxNjQsIDAuMTY2OTE3LCAwLjMyNTA0LCAwLjQ4Mjk0NCwgMC44NTE2MjYsIDEuMDYyNjQiLCBcCi0gICAgICAgICAgIjAuMDY5NTQsIDAuMDgwMDU4LCAwLjE3NDgyMywgMC4zMzI2NDksIDAuNDkwNTI0LCAwLjg1ODk2NywgMS4wNzAyNSIsIFwKLSAgICAgICAgICAiMC4wNzk0MjMsIDAuMDg5OTI0LCAwLjE4NDcwMSwgMC4zNDI2OSwgMC41MDAzMDIsIDAuODY4NzQ0LCAxLjA3OTY1IiwgXAotICAgICAgICAgICIwLjA4OTY1LCAwLjEwMDA5NywgMC4xOTQ2NDMsIDAuMzUyNDcxLCAwLjUxMDE5OSwgMC44Nzg1NDMsIDEuMDg5NjMiLCBcCi0gICAgICAgICAgIjAuMDk5NjQzLCAwLjExMDQ0NiwgMC4yMDQ4MjcsIDAuMzYyMTMxLCAwLjUyMDQ4MiwgMC44ODkxODQsIDEuMDk5MTMiLCBcCi0gICAgICAgICAgIjAuMTE0NTg1LCAwLjEyNjQzMSwgMC4yMjExNzksIDAuMzc4ODYyLCAwLjUzNjcwOSwgMC45MDU2OTgsIDEuMTE2MTciLCBcCi0gICAgICAgICAgIjAuMTI1MTczLCAwLjEzODM4LCAwLjIzNTYyMSwgMC4zOTMwODQsIDAuNTUxMDcsIDAuOTE5MTcsIDEuMTMwNjIiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTIyNDk2LCAwLjE0NDcxMiwgMC4zNDQwMDEsIDAuNjc2MjQxLCAxLjAwODM3LCAxLjc4MzQ5LCAyLjIyNjYxIiwgXAotICAgICAgICAgICIwLjEyMjcxLCAwLjE0NDczMSwgMC4zNDM5NDUsIDAuNjc1OTIsIDEuMDA4NTksIDEuNzg0MTQsIDIuMjI2MDgiLCBcCi0gICAgICAgICAgIjAuMTI3MDIsIDAuMTQ4MDM5LCAwLjM0Mzk4LCAwLjY3NjI4OCwgMS4wMDgxMiwgMS43ODQxLCAyLjIyNjIxIiwgXAotICAgICAgICAgICIwLjEzMzkyOSwgMC4xNTQxNjksIDAuMzQ1MjIzLCAwLjY3NjE5NCwgMS4wMDg3MywgMS43ODQ2NCwgMi4yMjYyMiIsIFwKLSAgICAgICAgICAiMC4xNDE3NDIsIDAuMTYxNzExLCAwLjM0ODc3OSwgMC42NzU5OTIsIDEuMDA4NjMsIDEuNzgzMTUsIDIuMjI1MSIsIFwKLSAgICAgICAgICAiMC4xNTY0NDUsIDAuMTc1Mzc2LCAwLjM1NjY1MSwgMC42Nzc4NDIsIDEuMDA4NjUsIDEuNzgzNDIsIDIuMjI2MzYiLCBcCi0gICAgICAgICAgIjAuMTcwMDksIDAuMTg4NTYxLCAwLjM2NTYzNiwgMC42ODE5OTcsIDEuMDA4NjIsIDEuNzg0NzIsIDIuMjI2MjMiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTM4MDIxLCAwLjE2MjE4NiwgMC4zNzk1NDgsIDAuNzQxMzMxLCAxLjEwMzIyLCAxLjk0ODA0LCAyLjQzMDE3IiwgXAotICAgICAgICAgICIwLjE0NDE1NCwgMC4xNjgzNzYsIDAuMzg1NTg2LCAwLjc0NzQ1MSwgMS4xMDkxLCAxLjk1MzMyLCAyLjQzNzciLCBcCi0gICAgICAgICAgIjAuMTUxOTIyLCAwLjE3NTczMywgMC4zOTM0MzgsIDAuNzU1MzMxLCAxLjExNzI0LCAxLjk2MjAxLCAyLjQ0NDk1IiwgXAotICAgICAgICAgICIwLjE1OTc1LCAwLjE4NDA5NiwgMC40MDEzODIsIDAuNzYzNDAzLCAxLjEyNTEsIDEuOTcxMTQsIDIuNDUzMjciLCBcCi0gICAgICAgICAgIjAuMTY3ODk0LCAwLjE5MTgzMiwgMC40MDk0NzEsIDAuNzcxMzU1LCAxLjEzNDIzLCAxLjk3ODA0LCAyLjQ2MDU0IiwgXAotICAgICAgICAgICIwLjE4MDg2OCwgMC4yMDUyMzQsIDAuNDIyMDQ4LCAwLjc4NDE1OCwgMS4xNDYxMywgMS45ODk5MiwgMi40NzI1NSIsIFwKLSAgICAgICAgICAiMC4xOTIzNjEsIDAuMjE2NDA2LCAwLjQzMzE1NSwgMC43OTUxMTEsIDEuMTU3NTUsIDIuMDAxMjgsIDIuNDg0MDciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjczMTAzLCAwLjMyMjY2MywgMC43Njk4MzQsIDEuNTE1MTMsIDIuMjY1MzYsIDMuOTk5NDgsIDUuMDAzNTQiLCBcCi0gICAgICAgICAgIjAuMjczMzc4LCAwLjMyMjYyNywgMC43NzEzNTgsIDEuNTE1NDIsIDIuMjYzNzIsIDQuMDAxNDQsIDQuOTkzMTEiLCBcCi0gICAgICAgICAgIjAuMjczNTczLCAwLjMyMzE1MSwgMC43NzAzODUsIDEuNTE2MzMsIDIuMjYzODgsIDQuMDA3ODMsIDQuOTk0NzQiLCBcCi0gICAgICAgICAgIjAuMjc1MzA3LCAwLjMyNDM3LCAwLjc3MDk0OSwgMS41MTgxNCwgMi4yNjE1OSwgMy45OTk0NCwgNC45OTMxMiIsIFwKLSAgICAgICAgICAiMC4yNzgyODYsIDAuMzI2Mjc2LCAwLjc2OTc3MywgMS41MTU3MSwgMi4yNjA3MiwgMy45OTkwMywgNC45OTUzMSIsIFwKLSAgICAgICAgICAiMC4yODUzNTIsIDAuMzMyOTAxLCAwLjc3MTczOSwgMS41MTUyMiwgMi4yNjAxMiwgNC4wMDA0NCwgNC45OTU4NCIsIFwKLSAgICAgICAgICAiMC4yOTI1OCwgMC4zMzkyMiwgMC43NzM2NjcsIDEuNTE1NzksIDIuMjYwMjgsIDQuMDA3MzYsIDQuOTkyNDEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDYwMjk5LCAwLjA3MDgyNCwgMC4xNjU2NzIsIDAuMzIzNDc1LCAwLjQ4MTQzOCwgMC44NDk5MywgMS4wNjA1MSIsIFwKLSAgICAgICAgICAiMC4wNjgyMjksIDAuMDc4NzU3LCAwLjE3MzU1OCwgMC4zMzEzNTEsIDAuNDg5MTg3LCAwLjg1NzY4OCwgMS4wNjkzMiIsIFwKLSAgICAgICAgICAiMC4wNzgyNTEsIDAuMDg4NzQsIDAuMTgzNTg5LCAwLjM0MTI5NCwgMC40OTkxMzksIDAuODY3NTM5LCAxLjA3ODYzIiwgXAotICAgICAgICAgICIwLjA4ODU1MSwgMC4wOTg5OTMsIDAuMTkzNTg5LCAwLjM1MTM4NiwgMC41MDkxNTQsIDAuODc3NDg3LCAxLjA4ODU2IiwgXAotICAgICAgICAgICIwLjA5ODg5NywgMC4xMDkzMjUsIDAuMjAzNzksIDAuMzYxNDc2LCAwLjUxOTQ1NywgMC44ODgyMTEsIDEuMDk4MTIiLCBcCi0gICAgICAgICAgIjAuMTEzMjU2LCAwLjEyNTA4MSwgMC4yMTk5OTEsIDAuMzc3ODMsIDAuNTM1NTQzLCAwLjkwNDU1NiwgMS4xMTQyNSIsIFwKLSAgICAgICAgICAiMC4xMjM0MTYsIDAuMTM2NzY1LCAwLjIzNDM3MywgMC4zOTE5MjIsIDAuNTQ5ODM3LCAwLjkxNzk0OCwgMS4xMjk0MyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMjA4MjEsIDAuMTQyODkyLCAwLjM0MjE4NCwgMC42NzQ2NjMsIDEuMDA2NDksIDEuNzgxNDgsIDIuMjI0MDMiLCBcCi0gICAgICAgICAgIjAuMTIxMjUsIDAuMTQzMjM3LCAwLjM0MjI0MiwgMC42NzQwNTQsIDEuMDA3NDMsIDEuNzgyNTksIDIuMjI1MjEiLCBcCi0gICAgICAgICAgIjAuMTI1NTI2LCAwLjE0NjUwMSwgMC4zNDIxNTMsIDAuNjc0MzA0LCAxLjAwNjk2LCAxLjc4MjA5LCAyLjIyNCIsIFwKLSAgICAgICAgICAiMC4xMzIyODQsIDAuMTUyNDg0LCAwLjM0Mzc0LCAwLjY3NDIwNCwgMS4wMDY3MSwgMS43ODM3NywgMi4yMjQzMiIsIFwKLSAgICAgICAgICAiMC4xNDAzNTEsIDAuMTU5OTM0LCAwLjM0NzM0OCwgMC42NzQwMzMsIDEuMDA2NzUsIDEuNzgxODEsIDIuMjIzMTgiLCBcCi0gICAgICAgICAgIjAuMTU1MDIsIDAuMTczNzQxLCAwLjM1NTM0MiwgMC42NzU3ODMsIDEuMDA2NjYsIDEuNzgxMTUsIDIuMjIzMDkiLCBcCi0gICAgICAgICAgIjAuMTY4OTM3LCAwLjE4Nzk4MiwgMC4zNjQwNjQsIDAuNjgxMTYsIDEuMDA2NDIsIDEuNzgzMzEsIDIuMjIzOTQiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTM1MTIsIDAuMTU5MDk5LCAwLjM3NjQ1MSwgMC43MzgzMTMsIDEuMTAwOTcsIDEuOTQ2MiwgMi40MjczNiIsIFwKLSAgICAgICAgICAiMC4xNDE4NzMsIDAuMTY2MTM0LCAwLjM4MzIzNywgMC43NDUzMywgMS4xMDY4LCAxLjk1MTIxLCAyLjQzNTI1IiwgXAotICAgICAgICAgICIwLjE1MDc3MSwgMC4xNzQ4MywgMC4zOTIxNzIsIDAuNzUzOTE2LCAxLjExNTg2LCAxLjk2MDYxLCAyLjQ0MzYxIiwgXAotICAgICAgICAgICIwLjE1OTY4NCwgMC4xODM4NTIsIDAuNDAxMTUyLCAwLjc2MjY5MywgMS4xMjQ0MywgMS45NjkzMSwgMi40NTI2OCIsIFwKLSAgICAgICAgICAiMC4xNjg5MjgsIDAuMTkyOTksIDAuNDEwMDY1LCAwLjc3MTU4NSwgMS4xMzM1MywgMS45Nzg3OSwgMi40NjAwNCIsIFwKLSAgICAgICAgICAiMC4xODQwMDcsIDAuMjA3OTE1LCAwLjQyNDI4NSwgMC43ODU4NTUsIDEuMTQ3NDgsIDEuOTkxNjQsIDIuNDc1NDkiLCBcCi0gICAgICAgICAgIjAuMTk3MzIyLCAwLjIyMTIwMSwgMC40MzcwMSwgMC43OTgzMTksIDEuMTYwNTUsIDIuMDA0LCAyLjQ4NjQyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI3MzAyLCAwLjMyMzE0NCwgMC43Njk4MDgsIDEuNTE4NDYsIDIuMjYwNjEsIDQuMDAwNzMsIDUuMDAzNzkiLCBcCi0gICAgICAgICAgIjAuMjczMzkzLCAwLjMyMjY4OCwgMC43NzEwMjQsIDEuNTE1MzUsIDIuMjYxNiwgNC4wMDA1NiwgNC45OTI2MiIsIFwKLSAgICAgICAgICAiMC4yNzM1NDgsIDAuMzIyNjMsIDAuNzcwMTQ4LCAxLjUxNjIyLCAyLjI2NDkyLCA0LjAwNzksIDQuOTk0MTUiLCBcCi0gICAgICAgICAgIjAuMjc1ODg5LCAwLjMyNDY0NSwgMC43Njk4MywgMS41MTc0NiwgMi4yNjI5NCwgNC4wMDEyNywgNC45OTI3OSIsIFwKLSAgICAgICAgICAiMC4yNzk5NDksIDAuMzI4MDUyLCAwLjc2OTk3LCAxLjUxODE1LCAyLjI2MTA3LCAzLjk5OTE3LCA0Ljk5NDI2IiwgXAotICAgICAgICAgICIwLjI4ODkzLCAwLjMzNTgwNCwgMC43NzA2MzQsIDEuNTE4MTQsIDIuMjY0ODMsIDQuMDA3MjgsIDQuOTkzMTgiLCBcCi0gICAgICAgICAgIjAuMjk4MjUyLCAwLjM0NDI0NCwgMC43NzQzNzksIDEuNTE3MzQsIDIuMjYwMjksIDQuMDAxODYsIDUuMDAwMzIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyMDgzLCAwLjAwMjA4MywgMC4wMDIwODQsIDAuMDAyMDg0LCAwLjAwMjA4MywgMC4wMDIwODMsIDAuMDAyMDgxIiwgXAotICAgICAgICAgICIwLjAwMjA5NCwgMC4wMDIwOTQsIDAuMDAyMDk0LCAwLjAwMjA5NCwgMC4wMDIwOTQsIDAuMDAyMDk0LCAwLjAwMjA5NCIsIFwKLSAgICAgICAgICAiMC4wMDIxODUsIDAuMDAyMTg1LCAwLjAwMjE4NiwgMC4wMDIxODYsIDAuMDAyMTg2LCAwLjAwMjE4NSwgMC4wMDIxODUiLCBcCi0gICAgICAgICAgIjAuMDAyMywgMC4wMDIzMDEsIDAuMDAyMywgMC4wMDIzLCAwLjAwMjMsIDAuMDAyMywgMC4wMDIzIiwgXAotICAgICAgICAgICIwLjAwMjQ0MiwgMC4wMDI0NDEsIDAuMDAyNDQxLCAwLjAwMjQzLCAwLjAwMjQ0LCAwLjAwMjQzOSwgMC4wMDI0MzkiLCBcCi0gICAgICAgICAgIjAuMDAyNjUxLCAwLjAwMjY2MywgMC4wMDI2NjIsIDAuMDAyNjQ5LCAwLjAwMjY2MSwgMC4wMDI2NjEsIDAuMDAyNjYiLCBcCi0gICAgICAgICAgIjAuMDAyODcxLCAwLjAwMjg2OSwgMC4wMDI4NjYsIDAuMDAyODY1LCAwLjAwMjg2NiwgMC4wMDI4NDgsIDAuMDAyODQ4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyMzkxLCAwLjAwMjM5MiwgMC4wMDIzOTQsIDAuMDAyMzk0LCAwLjAwMjM5NSwgMC4wMDIzOTUsIDAuMDAyMzk1IiwgXAotICAgICAgICAgICIwLjAwMjQyMSwgMC4wMDI0MjMsIDAuMDAyNDI3LCAwLjAwMjQyOCwgMC4wMDI0MjksIDAuMDAyNDI5LCAwLjAwMjQyOSIsIFwKLSAgICAgICAgICAiMC4wMDI0OTEsIDAuMDAyNDkyLCAwLjAwMjQ5OCwgMC4wMDI1LCAwLjAwMjUwMSwgMC4wMDI1MDEsIDAuMDAyNTAxIiwgXAotICAgICAgICAgICIwLjAwMjYwMSwgMC4wMDI2MDMsIDAuMDAyNjE2LCAwLjAwMjYxOSwgMC4wMDI2MTIsIDAuMDAyNjIsIDAuMDAyNjIxIiwgXAotICAgICAgICAgICIwLjAwMjczMywgMC4wMDI3MzUsIDAuMDAyNzMzLCAwLjAwMjczNiwgMC4wMDI3MzcsIDAuMDAyNzQ2LCAwLjAwMjczOCIsIFwKLSAgICAgICAgICAiMC4wMDI5MzgsIDAuMDAyOTUsIDAuMDAyOTU3LCAwLjAwMjk2LCAwLjAwMjk1MiwgMC4wMDI5NjIsIDAuMDAyOTYyIiwgXAotICAgICAgICAgICIwLjAwMzE0NiwgMC4wMDMxMzUsIDAuMDAzMTU2LCAwLjAwMzE1OSwgMC4wMDMxNiwgMC4wMDMxNjEsIDAuMDAzMTYxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxNzU3LCAwLjAwMTc1NywgMC4wMDE3NTgsIDAuMDAxNzU4LCAwLjAwMTc1OCwgMC4wMDE3NTgsIDAuMDAxNzU4IiwgXAotICAgICAgICAgICIwLjAwMTc1NiwgMC4wMDE3NTYsIDAuMDAxNzU3LCAwLjAwMTc1OCwgMC4wMDE3NTgsIDAuMDAxNzU4LCAwLjAwMTc1OCIsIFwKLSAgICAgICAgICAiMC4wMDE3NzUsIDAuMDAxNzczLCAwLjAwMTc2NiwgMC4wMDE3NjIsIDAuMDAxNzYxLCAwLjAwMTc2LCAwLjAwMTc1OSIsIFwKLSAgICAgICAgICAiMC4wMDE4MDUsIDAuMDAxNzk4LCAwLjAwMTc3OSwgMC4wMDE3NywgMC4wMDE3NjUsIDAuMDAxNzYzLCAwLjAwMTc2MSIsIFwKLSAgICAgICAgICAiMC4wMDE4MzUsIDAuMDAxODMsIDAuMDAxNzk1LCAwLjAwMTc3NCwgMC4wMDE3NzMsIDAuMDAxNzY2LCAwLjAwMTc2NCIsIFwKLSAgICAgICAgICAiMC4wMDE5MDksIDAuMDAxODkyLCAwLjAwMTgyNiwgMC4wMDE3OTgsIDAuMDAxNzg3LCAwLjAwMTc3NSwgMC4wMDE3NyIsIFwKLSAgICAgICAgICAiMC4wMDE5OTQsIDAuMDAxOTYzLCAwLjAwMTg2MiwgMC4wMDE4MTcsIDAuMDAxODAzLCAwLjAwMTc4NSwgMC4wMDE3OCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDM1MiwgMC4wMDAzNTMsIDAuMDAwMzU1LCAwLjAwMDM1NiwgMC4wMDAzNTYsIDAuMDAwMzU2LCAwLjAwMDM1NiIsIFwKLSAgICAgICAgICAiMC4wMDAzMzYsIDAuMDAwMzM5LCAwLjAwMDM0OSwgMC4wMDAzNTMsIDAuMDAwMzU0LCAwLjAwMDM1NSwgMC4wMDAzNTYiLCBcCi0gICAgICAgICAgIjAuMDAwMzI5LCAwLjAwMDMzLCAwLjAwMDM0NCwgMC4wMDAzNSwgMC4wMDAzNTIsIDAuMDAwMzU0LCAwLjAwMDM1NSIsIFwKLSAgICAgICAgICAiMC4wMDAzMzUsIDAuMDAwMzM3LCAwLjAwMDM0NSwgMC4wMDAzNSwgMC4wMDAzNTIsIDAuMDAwMzU0LCAwLjAwMDM1NCIsIFwKLSAgICAgICAgICAiMC4wMDAzNTIsIDAuMDAwMzUxLCAwLjAwMDM1LCAwLjAwMDM1MiwgMC4wMDAzNTQsIDAuMDAwMzU1LCAwLjAwMDM1NSIsIFwKLSAgICAgICAgICAiMC4wMDAzOTYsIDAuMDAwMzksIDAuMDAwMzY3LCAwLjAwMDM2MSwgMC4wMDAzNTksIDAuMDAwMzU4LCAwLjAwMDM1OCIsIFwKLSAgICAgICAgICAiMC4wMDA0NTEsIDAuMDAwNDM4LCAwLjAwMDM5MiwgMC4wMDAzNzQsIDAuMDAwMzY4LCAwLjAwMDM2MywgMC4wMDAzNjIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDE0MzIsIDAuMDAxNDMzLCAwLjAwMTQzNSwgMC4wMDE0MzUsIDAuMDAxNDM1LCAwLjAwMTQzNSwgMC4wMDE0MzUiLCBcCi0gICAgICAgICAgIjAuMDAxNDM0LCAwLjAwMTQzNiwgMC4wMDE0MzksIDAuMDAxNDQxLCAwLjAwMTQ0MSwgMC4wMDE0NDEsIDAuMDAxNDQxIiwgXAotICAgICAgICAgICIwLjAwMTQ0OCwgMC4wMDE0NDcsIDAuMDAxNDQ1LCAwLjAwMTQ0NCwgMC4wMDE0NDQsIDAuMDAxNDQ1LCAwLjAwMTQ0NSIsIFwKLSAgICAgICAgICAiMC4wMDE0NzEsIDAuMDAxNDY2LCAwLjAwMTQ1NiwgMC4wMDE0NSwgMC4wMDE0NDcsIDAuMDAxNDQ2LCAwLjAwMTQ0NiIsIFwKLSAgICAgICAgICAiMC4wMDE1MDEsIDAuMDAxNDk0LCAwLjAwMTQ2NywgMC4wMDE0NTIsIDAuMDAxNDUzLCAwLjAwMTQ0OSwgMC4wMDE0NDgiLCBcCi0gICAgICAgICAgIjAuMDAxNTc0LCAwLjAwMTU1OCwgMC4wMDE1MDEsIDAuMDAxNDc3LCAwLjAwMTQ2NywgMC4wMDE0NTgsIDAuMDAxNDU0IiwgXAotICAgICAgICAgICIwLjAwMTY1NSwgMC4wMDE2MjgsIDAuMDAxNTM2LCAwLjAwMTQ5OCwgMC4wMDE0ODMsIDAuMDAxNDY3LCAwLjAwMTQ2MiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDM1MSwgMC4wMDAzNTIsIDAuMDAwMzU1LCAwLjAwMDM1NiwgMC4wMDAzNTYsIDAuMDAwMzU2LCAwLjAwMDM1NiIsIFwKLSAgICAgICAgICAiMC4wMDAzNDEsIDAuMDAwMzQzLCAwLjAwMDM1LCAwLjAwMDM1MywgMC4wMDAzNTQsIDAuMDAwMzU1LCAwLjAwMDM1NiIsIFwKLSAgICAgICAgICAiMC4wMDAzNDQsIDAuMDAwMzQ2LCAwLjAwMDM1LCAwLjAwMDM1MywgMC4wMDAzNTQsIDAuMDAwMzU1LCAwLjAwMDM1NiIsIFwKLSAgICAgICAgICAiMC4wMDAzNjgsIDAuMDAwMzY2LCAwLjAwMDM1OSwgMC4wMDAzNTcsIDAuMDAwMzU3LCAwLjAwMDM1NywgMC4wMDAzNTciLCBcCi0gICAgICAgICAgIjAuMDAwNDAyLCAwLjAwMDM5NSwgMC4wMDAzNzIsIDAuMDAwMzY0LCAwLjAwMDM2MiwgMC4wMDAzNiwgMC4wMDAzNTkiLCBcCi0gICAgICAgICAgIjAuMDAwNDcsIDAuMDAwNDU4LCAwLjAwMDQwOCwgMC4wMDAzODIsIDAuMDAwMzc0LCAwLjAwMDM2NiwgMC4wMDAzNjUiLCBcCi0gICAgICAgICAgIjAuMDAwNTQxLCAwLjAwMDUyMiwgMC4wMDA0NDEsIDAuMDAwNDAyLCAwLjAwMDM4OCwgMC4wMDAzNzUsIDAuMDAwMzcxIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogTkFORDNYMSAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChOQU5EM1gxKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMjcxMzYxOwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA5MDg1Njk7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwOTA4NTY5OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDkwNjk0MTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA1MjQsIDAuMDAwNTI0LCAwLjAwMDUyNCwgMC4wMDA1MjQsIDAuMDAwNTIzLCAwLjAwMDUyMywgMC4wMDA1MjMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA1MjUsIDAuMDAwNTI2LCAwLjAwMDUyNSwgMC4wMDA1MjUsIDAuMDAwNTI2LCAwLjAwMDUyNSwgMC4wMDA1MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDk0MTMyMzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA5NDEzMjM7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwOTQwMTI3OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDUyNCwgMC4wMDA1MjQsIDAuMDAwNTIzLCAwLjAwMDUyMywgMC4wMDA1MjMsIDAuMDAwNTIzLCAwLjAwMDUyMyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDUyNSwgMC4wMDA1MjUsIDAuMDAwNTI2LCAwLjAwMDUyNiwgMC4wMDA1MjYsIDAuMDAwNTI2LCAwLjAwMDUyNiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQykgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwOTYzOTk1OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDk2MzUyODsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA5NjM5OTU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzM4LCAwLjAwMDMzNywgMC4wMDAzMzcsIDAuMDAwMzM3LCAwLjAwMDMzNywgMC4wMDAzMzcsIDAuMDAwMzM3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNTk1LCAwLjAwMDU5NiwgMC4wMDA1OTYsIDAuMDAwNTk2LCAwLjAwMDU5NiwgMC4wMDA1OTYsIDAuMDAwNTk2Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMTQ0ODkzOwotICAgIGZ1bmN0aW9uIDogIighKChBIEIpIEMpKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM5ODI4LCAwLjA1ODI5NywgMC4xNjI4MzQsIDAuMjU0ODYzLCAwLjM3NzgwNSwgMC42MjM1NDcsIDAuNzc3MjE0IiwgXAotICAgICAgICAgICIwLjA0ODAwNCwgMC4wNjY0ODQsIDAuMTcwOTg5LCAwLjI2MzAxNSwgMC4zODYwMzIsIDAuNjMxNjcyLCAwLjc4NDg1OSIsIFwKLSAgICAgICAgICAiMC4wNTgzNjUsIDAuMDc2NzQ3LCAwLjE4MTE1MSwgMC4yNzMyODgsIDAuMzk1OTI3LCAwLjY0MTcyMywgMC43OTQ5MSIsIFwKLSAgICAgICAgICAiMC4wNjg2NDUsIDAuMDg3MzQyLCAwLjE5MTU0NywgMC4yODM2NjEsIDAuNDA2NDA5LCAwLjY1MjA1NSwgMC44MDUyNzQiLCBcCi0gICAgICAgICAgIjAuMDc3MzU1LCAwLjA5Nzk0NiwgMC4yMDIwNzQsIDAuMjk0MTI5LCAwLjQxNjk2LCAwLjY2MjQyOSwgMC44MTU3MzgiLCBcCi0gICAgICAgICAgIjAuMDg4NzE1LCAwLjExMjU4NywgMC4yMTg4NiwgMC4zMTA3NTUsIDAuNDMzNjA2LCAwLjY3OTA1LCAwLjgzMjc2OCIsIFwKLSAgICAgICAgICAiMC4wOTcyNTcsIDAuMTIzMTc5LCAwLjIzMzYzOCwgMC4zMjU0NjcsIDAuNDQ4MjU5LCAwLjY5MzY5OCwgMC44NDcwODUiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc1OTQ1LCAwLjExNDY2OCwgMC4zMzQ0NjYsIDAuNTI4MTU4LCAwLjc4NjkxOSwgMS4zMDM2OSwgMS42MjY4NiIsIFwKLSAgICAgICAgICAiMC4wNzcyMjEsIDAuMTE0OTkxLCAwLjMzNDUzOCwgMC41MjgyMzcsIDAuNzg2OTMyLCAxLjMwMzYyLCAxLjYyNjE3IiwgXAotICAgICAgICAgICIwLjA4MzY4MiwgMC4xMTk0NTUsIDAuMzM0MzMzLCAwLjUyODM5OCwgMC43ODY3NDIsIDEuMzAzNjQsIDEuNjI2NTUiLCBcCi0gICAgICAgICAgIjAuMDkyMDg5LCAwLjEyNjM5MiwgMC4zMzU3MDksIDAuNTI4Mjg4LCAwLjc4NjkwNiwgMS4zMDM2NSwgMS42MjYyOSIsIFwKLSAgICAgICAgICAiMC4xMDEzNDEsIDAuMTM0NTU0LCAwLjMzOTAxMywgMC41Mjg2MTMsIDAuNzg2Njk0LCAxLjMwMzMyLCAxLjYyNjMiLCBcCi0gICAgICAgICAgIjAuMTE3MDIxLCAwLjE0OTA0LCAwLjM0NzEwNiwgMC41MzI4OTUsIDAuNzg3MTQ1LCAxLjMwMzExLCAxLjYyNjQ2IiwgXAotICAgICAgICAgICIwLjEyODc1MywgMC4xNjI4NywgMC4zNTU5NzYsIDAuNTM4NjA1LCAwLjc4OTc0MywgMS4zMDMxNSwgMS42MjYwMyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTMxODYsIDAuMTM4NjE1LCAwLjM5NTM2MSwgMC42MjEyLCAwLjkyMzIxNSwgMS41Mjc1MiwgMS45MDM4IiwgXAotICAgICAgICAgICIwLjA5ODQ5NiwgMC4xNDM5MTUsIDAuNDAwNTQ0LCAwLjYyNjg2NiwgMC45MjgzNjgsIDEuNTMyNjUsIDEuOTEwMzgiLCBcCi0gICAgICAgICAgIjAuMTA0NDcyLCAwLjE0OTg2LCAwLjQwNjY3NywgMC42MzMzOTUsIDAuOTM1NTU2LCAxLjUzOTcyLCAxLjkxNTY0IiwgXAotICAgICAgICAgICIwLjExMDQ2OSwgMC4xNTU5MTMsIDAuNDEyNzE2LCAwLjYzOTI0LCAwLjk0MTY3OSwgMS41NDUxOCwgMS45MjEyNCIsIFwKLSAgICAgICAgICAiMC4xMTY1NTUsIDAuMTYyMDA1LCAwLjQxOTAwOCwgMC42NDU3MjIsIDAuOTQ3MTcsIDEuNTUxNTUsIDEuOTI5MiIsIFwKLSAgICAgICAgICAiMC4xMjYzMDIsIDAuMTcyMDUxLCAwLjQyODg3NiwgMC42NTUxMDYsIDAuOTU3MDk4LCAxLjU2MDMyLCAxLjkzODgzIiwgXAotICAgICAgICAgICIwLjEzNDU5LCAwLjE4MDc1NywgMC40MzcwOTksIDAuNjYzODc3LCAwLjk2NTE5NCwgMS41Njg5NCwgMS45NDc3OCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNzY5MDEsIDAuMjY5MzUsIDAuNzk1MzE1LCAxLjI2MTg1LCAxLjg3NzU5LCAzLjExNTE4LCAzLjg5NzQzIiwgXAotICAgICAgICAgICIwLjE3NjU1LCAwLjI2OTI4MywgMC43OTU1NTMsIDEuMjU5NzgsIDEuODc4OTgsIDMuMTE0ODMsIDMuODg4MjgiLCBcCi0gICAgICAgICAgIjAuMTc3NzY5LCAwLjI2OTk0NCwgMC43OTU1ODMsIDEuMjU5MTIsIDEuODc4LCAzLjExNTgsIDMuODk3NDEiLCBcCi0gICAgICAgICAgIjAuMTc5NzYyLCAwLjI3MTI1MiwgMC43OTY4NTUsIDEuMjU5NzksIDEuODc4MDEsIDMuMTE0OTUsIDMuODk2NzQiLCBcCi0gICAgICAgICAgIjAuMTgyNzkxLCAwLjI3MzQ0NiwgMC43OTUwNTcsIDEuMjU5MjYsIDEuODc3MzYsIDMuMTE1MTksIDMuODg4NzYiLCBcCi0gICAgICAgICAgIjAuMTg5MTA3LCAwLjI3Nzk3OSwgMC43OTc1MTcsIDEuMjYxMDYsIDEuODgyMDUsIDMuMTIxODQsIDMuODg4NDIiLCBcCi0gICAgICAgICAgIjAuMTk2MDQsIDAuMjgzMDIsIDAuNzk3MzIyLCAxLjI1OTAyLCAxLjg4MTczLCAzLjEyMjE4LCAzLjg4OTI4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzOTIyNSwgMC4wNTc4NTIsIDAuMTYzNDgsIDAuMjU2NjcsIDAuMzgwOTk2LCAwLjYyOTgzOSwgMC43ODQ2OTMiLCBcCi0gICAgICAgICAgIjAuMDQ3NDM1LCAwLjA2NjA5NCwgMC4xNzE3MzQsIDAuMjY1MDEzLCAwLjM4OTA3NiwgMC42Mzc1NTIsIDAuNzkzMjIiLCBcCi0gICAgICAgICAgIjAuMDU3NzAxLCAwLjA3NjI1LCAwLjE4MTc3LCAwLjI3NDkxMSwgMC4zOTkwNTgsIDAuNjQ3Nzg3LCAwLjgwMjY0NyIsIFwKLSAgICAgICAgICAiMC4wNjgzOTMsIDAuMDg2NzY4LCAwLjE5MjA4OSwgMC4yODUzNTIsIDAuNDA5NDMxLCAwLjY1Nzk3MSwgMC44MTI4NzciLCBcCi0gICAgICAgICAgIjAuMDc2OTMsIDAuMDk3MjgyLCAwLjIwMjU0NSwgMC4yOTU2NjYsIDAuNDE5OTk1LCAwLjY2ODAxNCwgMC44MjMyMTMiLCBcCi0gICAgICAgICAgIjAuMDg4MjEzLCAwLjExMTkyNiwgMC4yMTkzOCwgMC4zMTIzNjUsIDAuNDM2NjUzLCAwLjY4NDg5NiwgMC44NDAwNzUiLCBcCi0gICAgICAgICAgIjAuMDk2MzE1LCAwLjEyMjYyNywgMC4yMzQyMzYsIDAuMzI3MTI0LCAwLjQ1MTE4NCwgMC42OTk3MDQsIDAuODU0Nzc0Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3NTQxNywgMC4xMTQ2NTcsIDAuMzM3MTU3LCAwLjUzMzI5LCAwLjc5NDkzMiwgMS4zMTg2MiwgMS42NDUyIiwgXAotICAgICAgICAgICIwLjA3NjY5OSwgMC4xMTQ5NzEsIDAuMzM3MTIsIDAuNTMzNTg4LCAwLjc5NDg4NywgMS4zMTc4MywgMS42NDUzOCIsIFwKLSAgICAgICAgICAiMC4wODMzMywgMC4xMTk0NjMsIDAuMzM2OTc0LCAwLjUzMzE5NCwgMC43OTUxNzQsIDEuMzE4MjIsIDEuNjQ2MTQiLCBcCi0gICAgICAgICAgIjAuMDkxMTI5LCAwLjEyNjU2NCwgMC4zMzgzNDksIDAuNTMzNDI2LCAwLjc5NTA1MiwgMS4zMTg1MywgMS42NDQ4MiIsIFwKLSAgICAgICAgICAiMC4xMDAzNzEsIDAuMTM0ODksIDAuMzQxNzgsIDAuNTMzNzA4LCAwLjc5NDkxOSwgMS4zMTc3OCwgMS42NDU4OSIsIFwKLSAgICAgICAgICAiMC4xMTU2ODgsIDAuMTQ5NDQ1LCAwLjM0OTc5NSwgMC41Mzc3MDksIDAuNzk1MjUyLCAxLjMxODM0LCAxLjY0NTA4IiwgXAotICAgICAgICAgICIwLjEyODQxMiwgMC4xNjI5ODQsIDAuMzU4NTczLCAwLjU0MzQ4NSwgMC43OTc2NjksIDEuMzE4NTMsIDEuNjQ1NSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTE3NDgsIDAuMTM3MDYzLCAwLjM5MzU3MSwgMC42MTk4OSwgMC45MjIxOTYsIDEuNTI1MjMsIDEuOTAzMjQiLCBcCi0gICAgICAgICAgIjAuMDk4MTU1LCAwLjE0MzQ4MiwgMC40MDAxMDIsIDAuNjI2MzQzLCAwLjkyNzg3NywgMS41MzEwNiwgMS45MDg0MiIsIFwKLSAgICAgICAgICAiMC4xMDYyMzMsIDAuMTUxNjc3LCAwLjQwODYwMywgMC42MzUxMzEsIDAuOTM3MDYyLCAxLjU0MTA0LCAxLjkxNzM3IiwgXAotICAgICAgICAgICIwLjExNDU5LCAwLjE1OTk4MiwgMC40MTY2OTEsIDAuNjQzNDAyLCAwLjk0NTQ1NywgMS41NDg4NSwgMS45MjY4MyIsIFwKLSAgICAgICAgICAiMC4xMjI3NzMsIDAuMTY4MjY3LCAwLjQyNDk2NiwgMC42NTE3MzYsIDAuOTUzMDYxLCAxLjU1Nzg2LCAxLjkzMzg2IiwgXAotICAgICAgICAgICIwLjEzNjU3MywgMC4xODE4MiwgMC40MzgzNDMsIDAuNjY1MDQ1LCAwLjk2NzE4MSwgMS41Njk4OCwgMS45NDY2MSIsIFwKLSAgICAgICAgICAiMC4xNDczNTMsIDAuMTkzMzg2LCAwLjQ1MDE4NywgMC42NzY0NjYsIDAuOTc4NDE1LCAxLjU4MTQ4LCAxLjk1OTA0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE3NjYzOSwgMC4yNjk0NzYsIDAuNzk1NTEzLCAxLjI2MDY3LCAxLjg3Nzg0LCAzLjExNDc1LCAzLjg4ODM5IiwgXAotICAgICAgICAgICIwLjE3NjUxOCwgMC4yNjk3NDQsIDAuNzk2ODU3LCAxLjI2MTc4LCAxLjg3ODc2LCAzLjExNjk4LCAzLjg5MDEyIiwgXAotICAgICAgICAgICIwLjE3ODE1OSwgMC4yNjk5MjEsIDAuNzk1NTE3LCAxLjI1OTA4LCAxLjg3NzcxLCAzLjExNTAyLCAzLjg5NzM0IiwgXAotICAgICAgICAgICIwLjE4MTQxNSwgMC4yNzEyNywgMC43OTY4NDIsIDEuMjU5MzUsIDEuODc3ODEsIDMuMTE0ODYsIDMuODg4NzkiLCBcCi0gICAgICAgICAgIjAuMTg1NjA0LCAwLjI3NDU0NCwgMC43OTU2MTksIDEuMjU5MDgsIDEuODc5MDksIDMuMTE1MzUsIDMuODk3MTMiLCBcCi0gICAgICAgICAgIjAuMTk0OTI1LCAwLjI4MTMxNCwgMC43OTU4NjksIDEuMjU5MDQsIDEuODc4MDksIDMuMTE2NTcsIDMuODk2MTQiLCBcCi0gICAgICAgICAgIjAuMjAzMjM1LCAwLjI4ODIxOCwgMC43OTcyOTcsIDEuMjU5NTUsIDEuODc3NjUsIDMuMTIxNzUsIDMuODg4MzkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM4MDYsIDAuMDU2NzIyLCAwLjE2MjI4NSwgMC4yNTU2MDksIDAuMzc5ODQyLCAwLjYyODE1NiwgMC43ODM5MTciLCBcCi0gICAgICAgICAgIjAuMDQ2Mjc1LCAwLjA2NDkyNCwgMC4xNzA2MTgsIDAuMjYzNjQ1LCAwLjM4ODIyMywgMC42MzY0MzEsIDAuNzkxOTY5IiwgXAotICAgICAgICAgICIwLjA1NjYzNCwgMC4wNzUxODEsIDAuMTgwNzA0LCAwLjI3Mzg0NCwgMC4zOTgyNDQsIDAuNjQ2NzE0LCAwLjgwMTU3NSIsIFwKLSAgICAgICAgICAiMC4wNjY3MTYsIDAuMDg1NzY2LCAwLjE5MTExNywgMC4yODQ0NTUsIDAuNDA4NDU4LCAwLjY1NzAxNiwgMC44MTE5MDEiLCBcCi0gICAgICAgICAgIjAuMDc1MDUxLCAwLjA5NjI5NCwgMC4yMDE2MzIsIDAuMjk0Nzc3LCAwLjQxODkyMSwgMC42NjcxMDIsIDAuODIyMzQ1IiwgXAotICAgICAgICAgICIwLjA4NTg1NiwgMC4xMTA3NjMsIDAuMjE4Mzg5LCAwLjMxMTQxNywgMC40MzU3MDEsIDAuNjgzOTQ1LCAwLjgzOTMwMSIsIFwKLSAgICAgICAgICAiMC4wOTQwNTQsIDAuMTIxMDMyLCAwLjIzMzE0OSwgMC4zMjYwNTgsIDAuNDUwMTQsIDAuNjk4NTQ2LCAwLjg1MzcxNyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzQwNjksIDAuMTEzMTk5LCAwLjMzNTM5NiwgMC41MzE2NTYsIDAuNzkzMzI4LCAxLjMxNjUzLCAxLjY0OTQzIiwgXAotICAgICAgICAgICIwLjA3NTMzOSwgMC4xMTM2NzcsIDAuMzM1NTEzLCAwLjUzMTQ3NSwgMC43OTM1ODksIDEuMzE2NTcsIDEuNjQzNzciLCBcCi0gICAgICAgICAgIjAuMDgxOTA1LCAwLjExODEyMSwgMC4zMzU0ODIsIDAuNTMxNTc1LCAwLjc5MzIwNywgMS4zMTYzNCwgMS42NDUyOSIsIFwKLSAgICAgICAgICAiMC4wOTA0LCAwLjEyNTA1OCwgMC4zMzczMzksIDAuNTMxNjY1LCAwLjc5MzYyNiwgMS4zMTcyNSwgMS42NDI2OSIsIFwKLSAgICAgICAgICAiMC4wOTk4NTMsIDAuMTMzMjI1LCAwLjM0MDYzOSwgMC41MzIxMDUsIDAuNzkzMTA3LCAxLjMxNTk4LCAxLjY0MjcyIiwgXAotICAgICAgICAgICIwLjExNjE1LCAwLjE0ODA4NywgMC4zNDg0NzMsIDAuNTM2NDgsIDAuNzkzNjY2LCAxLjMxNjksIDEuNjQzNDciLCBcCi0gICAgICAgICAgIjAuMTI3Nzg4LCAwLjE2MTYyNywgMC4zNTcxNTIsIDAuNTQyMDMsIDAuNzk2MzE0LCAxLjMxNjk3LCAxLjY0NTA4Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4ODkzMiwgMC4xMzQyODcsIDAuMzkxMDM1LCAwLjYxNzI0NywgMC45MTg4MjIsIDEuNTIyNDUsIDEuOTAwMjMiLCBcCi0gICAgICAgICAgIjAuMDk1ODk2LCAwLjE0MTIzNiwgMC4zOTc4NDMsIDAuNjI0MDY2LCAwLjkyNTczMywgMS41Mjg5OCwgMS45MDY1MSIsIFwKLSAgICAgICAgICAiMC4xMDQ5OTUsIDAuMTUwMjYsIDAuNDA2ODQ2LCAwLjYzMzIzNCwgMC45MzQ5MjEsIDEuNTM4NTUsIDEuOTE2NiIsIFwKLSAgICAgICAgICAiMC4xMTQzMDMsIDAuMTU5NDI3LCAwLjQxNTkwNywgMC42NDIzODMsIDAuOTQ0NTk5LCAxLjU0Nzk0LCAxLjkyNDYzIiwgXAotICAgICAgICAgICIwLjEyMzkyMiwgMC4xNjg4NDYsIDAuNDI0OTkyLCAwLjY1MTI3MSwgMC45NTM0NywgMS41NTYxOCwgMS45MzUzNiIsIFwKLSAgICAgICAgICAiMC4xMzk1MzIsIDAuMTg0MTcsIDAuNDM5Nzc1LCAwLjY2NTg3OSwgMC45Njc1NDYsIDEuNTcwNzEsIDEuOTQ4OTgiLCBcCi0gICAgICAgICAgIjAuMTUyMTc5LCAwLjE5NzYyNiwgMC40NTI4MDksIDAuNjc4NzAxLCAwLjk4MDM5NCwgMS41ODM1MiwgMS45NjA2MiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNzY2NDQsIDAuMjY5Mzg2LCAwLjc5NTIwNywgMS4yNTkzNywgMS44ODIxLCAzLjExNDQ3LCAzLjg4Nzk5IiwgXAotICAgICAgICAgICIwLjE3Njg5MiwgMC4yNjk3NCwgMC43OTY4NywgMS4yNjE3OCwgMS44ODE3MiwgMy4xMjE1NiwgMy44OTAyNSIsIFwKLSAgICAgICAgICAiMC4xNzgyMzQsIDAuMjY5ODkzLCAwLjc5NjkxNCwgMS4yNTk3MiwgMS44Nzg3NCwgMy4xMTQ0NCwgMy44ODgzNCIsIFwKLSAgICAgICAgICAiMC4xODI5NzksIDAuMjcyMjc5LCAwLjc5Njg3MywgMS4yNTk4OSwgMS44Nzc4MSwgMy4xMTQ4NCwgMy44ODk3NyIsIFwKLSAgICAgICAgICAiMC4xODg3ODUsIDAuMjc2MTUyLCAwLjc5NjM4MywgMS4yNjE4NSwgMS44Nzc2NywgMy4xMTYzLCAzLjg4OTI4IiwgXAotICAgICAgICAgICIwLjIwMDEzNCwgMC4yODUyNDEsIDAuNzk1ODIzLCAxLjI2MTY2LCAxLjg4MTg4LCAzLjExNzYxLCAzLjg4ODE1IiwgXAotICAgICAgICAgICIwLjIxMDg0MiwgMC4yOTQxOTUsIDAuNzk5NDIyLCAxLjI1OTY2LCAxLjg3OTY3LCAzLjExNjc4LCAzLjg5NjcyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzMTQyLCAwLjAwMzE0MywgMC4wMDMxNDQsIDAuMDAzMTQ0LCAwLjAwMzE0NCwgMC4wMDMxNDMsIDAuMDAzMTQzIiwgXAotICAgICAgICAgICIwLjAwMzEzMywgMC4wMDMxMzIsIDAuMDAzMTMzLCAwLjAwMzEzMSwgMC4wMDMxMzUsIDAuMDAzMTMzLCAwLjAwMzEzMyIsIFwKLSAgICAgICAgICAiMC4wMDMxNjcsIDAuMDAzMTU3LCAwLjAwMzE0MiwgMC4wMDMxMzksIDAuMDAzMTM0LCAwLjAwMzEzMiwgMC4wMDMxMyIsIFwKLSAgICAgICAgICAiMC4wMDMyMTYsIDAuMDAzMTkzLCAwLjAwMzE1NiwgMC4wMDMxNDksIDAuMDAzMTQ0LCAwLjAwMzEzNywgMC4wMDMxMzMiLCBcCi0gICAgICAgICAgIjAuMDAzMjc2LCAwLjAwMzIzNywgMC4wMDMxNzYsIDAuMDAzMTYyLCAwLjAwMzE1MywgMC4wMDMxNDEsIDAuMDAzMTM4IiwgXAotICAgICAgICAgICIwLjAwMzQyMSwgMC4wMDMzNCwgMC4wMDMyMiwgMC4wMDMxOSwgMC4wMDMxNzUsIDAuMDAzMTU5LCAwLjAwMzE1NCIsIFwKLSAgICAgICAgICAiMC4wMDM1MDgsIDAuMDAzNDU3LCAwLjAwMzI2OSwgMC4wMDMyMjYsIDAuMDAzMTk5LCAwLjAwMzE3NSwgMC4wMDMxNjciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDA0MzUsIDAuMDAwNDQsIDAuMDAwNDQ1LCAwLjAwMDQ0NywgMC4wMDA0NDcsIDAuMDAwNDQ4LCAwLjAwMDQ0OCIsIFwKLSAgICAgICAgICAiMC4wMDAzOTQsIDAuMDAwNDEsIDAuMDAwNDM0LCAwLjAwMDQzOSwgMC4wMDA0NDIsIDAuMDAwNDQ1LCAwLjAwMDQ0NiIsIFwKLSAgICAgICAgICAiMC4wMDAzNjksIDAuMDAwMzg4LCAwLjAwMDQyMiwgMC4wMDA0MzEsIDAuMDAwNDM3LCAwLjAwMDQ0MSwgMC4wMDA0NDMiLCBcCi0gICAgICAgICAgIjAuMDAwMzY4LCAwLjAwMDM4MiwgMC4wMDA0MTYsIDAuMDAwNDI3LCAwLjAwMDQzMywgMC4wMDA0MzksIDAuMDAwNDQxIiwgXAotICAgICAgICAgICIwLjAwMDM4NywgMC4wMDAzOTIsIDAuMDAwNDE3LCAwLjAwMDQyNiwgMC4wMDA0MzMsIDAuMDAwNDM4LCAwLjAwMDQ0IiwgXAotICAgICAgICAgICIwLjAwMDQ1LCAwLjAwMDQzNSwgMC4wMDA0MzEsIDAuMDAwNDM0LCAwLjAwMDQzNywgMC4wMDA0NDEsIDAuMDAwNDQyIiwgXAotICAgICAgICAgICIwLjAwMDUzNSwgMC4wMDA0OTUsIDAuMDAwNDUyLCAwLjAwMDQ0OCwgMC4wMDA0NDcsIDAuMDAwNDQ3LCAwLjAwMDQ0NyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjY1MiwgMC4wMDI2NTMsIDAuMDAyNjU1LCAwLjAwMjY1NiwgMC4wMDI2NTYsIDAuMDAyNjU2LCAwLjAwMjY1NSIsIFwKLSAgICAgICAgICAiMC4wMDI2NDQsIDAuMDAyNjQ4LCAwLjAwMjY1NCwgMC4wMDI2NTQsIDAuMDAyNjU1LCAwLjAwMjY1NiwgMC4wMDI2NTYiLCBcCi0gICAgICAgICAgIjAuMDAyNjgyLCAwLjAwMjY3NCwgMC4wMDI2NjUsIDAuMDAyNjYyLCAwLjAwMjY2LCAwLjAwMjY1OCwgMC4wMDI2NTkiLCBcCi0gICAgICAgICAgIjAuMDAyNjkxLCAwLjAwMjcxNCwgMC4wMDI2ODIsIDAuMDAyNjczLCAwLjAwMjY2OCwgMC4wMDI2NjQsIDAuMDAyNjYyIiwgXAotICAgICAgICAgICIwLjAwMjc0MiwgMC4wMDI3NjEsIDAuMDAyNzAyLCAwLjAwMjY4OCwgMC4wMDI2NzgsIDAuMDAyNjY5LCAwLjAwMjY2NiIsIFwKLSAgICAgICAgICAiMC4wMDI4NTEsIDAuMDAyODU0LCAwLjAwMjc0MSwgMC4wMDI3MTQsIDAuMDAyNywgMC4wMDI2ODQsIDAuMDAyNjc2IiwgXAotICAgICAgICAgICIwLjAwMjk4MywgMC4wMDI5NTgsIDAuMDAyNzg2LCAwLjAwMjc0NiwgMC4wMDI3MjEsIDAuMDAyNywgMC4wMDI2OTIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDA0MzcsIDAuMDAwNDQyLCAwLjAwMDQ0NywgMC4wMDA0NDksIDAuMDAwNDQ5LCAwLjAwMDQ1LCAwLjAwMDQ1IiwgXAotICAgICAgICAgICIwLjAwMDM5NywgMC4wMDA0MTIsIDAuMDAwNDM2LCAwLjAwMDQ0MSwgMC4wMDA0NDQsIDAuMDAwNDQ3LCAwLjAwMDQ0OCIsIFwKLSAgICAgICAgICAiMC4wMDAzNzgsIDAuMDAwMzk0LCAwLjAwMDQyNiwgMC4wMDA0MzQsIDAuMDAwNDQsIDAuMDAwNDQ0LCAwLjAwMDQ0NSIsIFwKLSAgICAgICAgICAiMC4wMDAzODcsIDAuMDAwMzk3LCAwLjAwMDQyMywgMC4wMDA0MzIsIDAuMDAwNDM3LCAwLjAwMDQ0MiwgMC4wMDA0NDQiLCBcCi0gICAgICAgICAgIjAuMDAwNDE2LCAwLjAwMDQxNCwgMC4wMDA0MjYsIDAuMDAwNDMzLCAwLjAwMDQzOCwgMC4wMDA0NDIsIDAuMDAwNDQ0IiwgXAotICAgICAgICAgICIwLjAwMDQ5MiwgMC4wMDA0NjksIDAuMDAwNDQ0LCAwLjAwMDQ0MywgMC4wMDA0NDQsIDAuMDAwNDQ2LCAwLjAwMDQ0NyIsIFwKLSAgICAgICAgICAiMC4wMDA1ODgsIDAuMDAwNTM1LCAwLjAwMDQ3LCAwLjAwMDQ1OSwgMC4wMDA0NTUsIDAuMDAwNDUyLCAwLjAwMDQ1MiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjE2NSwgMC4wMDIxNjgsIDAuMDAyMTcyLCAwLjAwMjE3MywgMC4wMDIxNzQsIDAuMDAyMTc0LCAwLjAwMjE3NCIsIFwKLSAgICAgICAgICAiMC4wMDIxNiwgMC4wMDIxNjgsIDAuMDAyMTc5LCAwLjAwMjE4MywgMC4wMDIxODMsIDAuMDAyMTg0LCAwLjAwMjE4NCIsIFwKLSAgICAgICAgICAiMC4wMDIxODcsIDAuMDAyMTg1LCAwLjAwMjE4NywgMC4wMDIxODcsIDAuMDAyMTg5LCAwLjAwMjE4OSwgMC4wMDIxOTIiLCBcCi0gICAgICAgICAgIjAuMDAyMjI1LCAwLjAwMjIxNCwgMC4wMDIxOTksIDAuMDAyMTk2LCAwLjAwMjE5MiwgMC4wMDIxOTMsIDAuMDAyMTkyIiwgXAotICAgICAgICAgICIwLjAwMjI3OCwgMC4wMDIyNSwgMC4wMDIyMTEsIDAuMDAyMjA2LCAwLjAwMjIwMSwgMC4wMDIxOTYsIDAuMDAyMTk1IiwgXAotICAgICAgICAgICIwLjAwMjQxLCAwLjAwMjM0NCwgMC4wMDIyNTEsIDAuMDAyMjMzLCAwLjAwMjIyMSwgMC4wMDIyMDksIDAuMDAyMjA1IiwgXAotICAgICAgICAgICIwLjAwMjQ4OSwgMC4wMDI0NDksIDAuMDAyMjk3LCAwLjAwMjI2MywgMC4wMDIyNDIsIDAuMDAyMjI1LCAwLjAwMjIxOCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDQzNSwgMC4wMDA0NCwgMC4wMDA0NDcsIDAuMDAwNDQ4LCAwLjAwMDQ0OSwgMC4wMDA0NSwgMC4wMDA0NSIsIFwKLSAgICAgICAgICAiMC4wMDA0MDIsIDAuMDAwNDE1LCAwLjAwMDQzNywgMC4wMDA0NDIsIDAuMDAwNDQ1LCAwLjAwMDQ0NywgMC4wMDA0NDgiLCBcCi0gICAgICAgICAgIjAuMDAwNDE2LCAwLjAwMDQyMSwgMC4wMDA0MzYsIDAuMDAwNDQxLCAwLjAwMDQ0NCwgMC4wMDA0NDYsIDAuMDAwNDQ3IiwgXAotICAgICAgICAgICIwLjAwMDQ1LCAwLjAwMDQ0MiwgMC4wMDA0NDIsIDAuMDAwNDQ0LCAwLjAwMDQ0NiwgMC4wMDA0NDgsIDAuMDAwNDQ4IiwgXAotICAgICAgICAgICIwLjAwMDUwOCwgMC4wMDA0ODYsIDAuMDAwNDU4LCAwLjAwMDQ1NCwgMC4wMDA0NTIsIDAuMDAwNDUyLCAwLjAwMDQ1MSIsIFwKLSAgICAgICAgICAiMC4wMDA2MywgMC4wMDA1NzgsIDAuMDAwNSwgMC4wMDA0ODEsIDAuMDAwNDcxLCAwLjAwMDQ2MywgMC4wMDA0NiIsIFwKLSAgICAgICAgICAiMC4wMDA3NTMsIDAuMDAwNjcxLCAwLjAwMDU0MSwgMC4wMDA1MDksIDAuMDAwNDksIDAuMDAwNDc3LCAwLjAwMDQ3MiIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IE5BTkQzWDQgKgotICogLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoTkFORDNYNCkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAxLjA4NTI3OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDM4MjA0MTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDM4MjA0MTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDM4MTMwNTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDIwOTcsIDAuMDAyMDk1LCAwLjAwMjA5NSwgMC4wMDIwOTQsIDAuMDAyMDk0LCAwLjAwMjA5NCwgMC4wMDIwOTQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDIwOTksIDAuMDAyMTAxLCAwLjAwMjEwMywgMC4wMDIxMDEsIDAuMDAyMTAyLCAwLjAwMjEwMiwgMC4wMDIxMDIiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMzc2MzIzOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMzc2MzIzOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMzc1NzczOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjA5OCwgMC4wMDIwOTYsIDAuMDAyMDk0LCAwLjAwMjA5NCwgMC4wMDIwOTQsIDAuMDAyMDk0LCAwLjAwMjA5MyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjA5OSwgMC4wMDIxLCAwLjAwMjEwMiwgMC4wMDIxMDMsIDAuMDAyMTAzLCAwLjAwMjEwNCwgMC4wMDIxMDQiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEMpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMzQyNDE7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAzNDIzMjI7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAzNDI0MTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDEyMjEsIDAuMDAxMjE5LCAwLjAwMTIxOCwgMC4wMDEyMTcsIDAuMDAxMjE3LCAwLjAwMTIxOCwgMC4wMDEyMTgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDIzODEsIDAuMDAyMzgzLCAwLjAwMjM4MywgMC4wMDIzODUsIDAuMDAyMzg0LCAwLjAwMjM4NCwgMC4wMDIzODMiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC41Njc5NzE7Ci0gICAgZnVuY3Rpb24gOiAiKCEoKEEgQikgQykpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxNjgzNSwgMC4wNzE5OTMsIDAuMTI2ODk4LCAwLjE2NjA2NCwgMC4yMjg2NTgsIDAuMjgzMzk0LCAwLjM2MTc0MyIsIFwKLSAgICAgICAgICAiMC4wMjUwOTEsIDAuMDgwMjY0LCAwLjEzNTA3LCAwLjE3NDIxMiwgMC4yMzY4NzMsIDAuMjkxNjQ4LCAwLjM2OTc4OSIsIFwKLSAgICAgICAgICAiMC4wMzMzOTcsIDAuMDkwNDcyLCAwLjE0NTI5MSwgMC4xODQ0NTEsIDAuMjQ3MDA2LCAwLjMwMTgwOCwgMC4zODAwNDUiLCBcCi0gICAgICAgICAgIjAuMDM4OTgzLCAwLjEwMTIwMywgMC4xNTU5MzksIDAuMTk1MDQyLCAwLjI1NzYyNCwgMC4zMTI0ODgsIDAuMzkwNjk3IiwgXAotICAgICAgICAgICIwLjA0MzYwOCwgMC4xMTE1MiwgMC4xNjYxMDMsIDAuMjA1MjEyLCAwLjI2Nzc5MywgMC4zMjI1MzgsIDAuNDAwNzc4IiwgXAotICAgICAgICAgICIwLjA0OTA5NSwgMC4xMjgwMTgsIDAuMTgzMDY2LCAwLjIyMjAzOSwgMC4yODQ1MzcsIDAuMzM5MjM5LCAwLjQxNzQ3NCIsIFwKLSAgICAgICAgICAiMC4wNTMzMTMsIDAuMTQwNTA5LCAwLjE5Nzk4NSwgMC4yMzY3OTksIDAuMjk5MTc1LCAwLjM1Mzg4NCwgMC40MzIwMDUiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjgxMjIsIDAuMTQzNDU0LCAwLjI1ODk5OCwgMC4zNDE0MzksIDAuNDczMzg2LCAwLjU4ODY1NSwgMC43NTM2OTQiLCBcCi0gICAgICAgICAgIjAuMDMyNTQsIDAuMTQzNTA3LCAwLjI1ODg2MiwgMC4zNDEyOTMsIDAuNDczMjkxLCAwLjU4ODc0OSwgMC43NTM3NTMiLCBcCi0gICAgICAgICAgIjAuMDQxODMxLCAwLjE0NjY2NywgMC4yNTkyNywgMC4zNDEzMTcsIDAuNDczMTY1LCAwLjU4ODY0NiwgMC43NTMzNTIiLCBcCi0gICAgICAgICAgIjAuMDUwOTE2LCAwLjE1MjMzMSwgMC4yNjE5NTIsIDAuMzQyMzkxLCAwLjQ3MzI0NywgMC41ODg2NywgMC43NTM1NzkiLCBcCi0gICAgICAgICAgIjAuMDU4MzQzLCAwLjE2MDA3MSwgMC4yNjY4MTMsIDAuMzQ1NzYxLCAwLjQ3NDU2MiwgMC41ODg4NTcsIDAuNzUzMzAzIiwgXAotICAgICAgICAgICIwLjA2OTQ2MSwgMC4xNzM1NjMsIDAuMjc2ODExLCAwLjM1MzY0OCwgMC40Nzk1NzYsIDAuNTkxODU4LCAwLjc1NDAzMSIsIFwKLSAgICAgICAgICAiMC4wNzgyMDMsIDAuMTg2NjA2LCAwLjI4NzMyNSwgMC4zNjI0MTgsIDAuNDg2MTIyLCAwLjU5NjY5MywgMC43NTcwMzUiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzY5NDEsIDAuMTcwMjc3LCAwLjMwMzM4LCAwLjM5ODgyMSwgMC41NTA2NzUsIDAuNjg0MzQ5LCAwLjg3NDAzNyIsIFwKLSAgICAgICAgICAiMC4wNDIwMywgMC4xNzU3NjQsIDAuMzA4OTUxLCAwLjQwMzk5LCAwLjU1NjMyNCwgMC42ODkxNzMsIDAuODc5NDQ0IiwgXAotICAgICAgICAgICIwLjA0Nzk5LCAwLjE4MTgyNCwgMC4zMTUwNDksIDAuNDEwMzAxLCAwLjU2Mjk4MSwgMC42OTU1NTgsIDAuODg2MzkxIiwgXAotICAgICAgICAgICIwLjA1MzA5LCAwLjE4Nzg2NiwgMC4zMjExNTUsIDAuNDE2MzAyLCAwLjU2ODY3NCwgMC43MDIyNzcsIDAuODkxNzYiLCBcCi0gICAgICAgICAgIjAuMDU3NzA2LCAwLjE5MzkzLCAwLjMyNzIwOCwgMC40MjIzMDksIDAuNTc0NTQyLCAwLjcwNzY3NiwgMC44OTc5ODciLCBcCi0gICAgICAgICAgIjAuMDY0MDcxLCAwLjIwMzcyNiwgMC4zMzY5NTgsIDAuNDMyMDksIDAuNTg0NDQ4LCAwLjcxNzY1NSwgMC45MDc4NzciLCBcCi0gICAgICAgICAgIjAuMDY4OTc5LCAwLjIxMjg1NSwgMC4zNDU3NzcsIDAuNDQwNzE5LCAwLjU5MzI0MSwgMC43MjYzNzUsIDAuOTE2NTY5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDYxMzM2LCAwLjMzNiwgMC42MTA2OTUsIDAuODA1NzQsIDEuMTE5MzEsIDEuMzkzNjksIDEuNzg1MTEiLCBcCi0gICAgICAgICAgIjAuMDYxODg4LCAwLjMzNjEzOSwgMC42MTA2OTcsIDAuODA1ODI1LCAxLjExOTU2LCAxLjM5MzcxLCAxLjc4NTc5IiwgXAotICAgICAgICAgICIwLjA2NDkwNSwgMC4zMzYxNzgsIDAuNjEwNjgsIDAuODA2MDQ3LCAxLjExOTMxLCAxLjM5Mzk4LCAxLjc4NTM4IiwgXAotICAgICAgICAgICIwLjA2OTUzNywgMC4zMzY4MjQsIDAuNjEwNywgMC44MDU4OTMsIDEuMTE5MTYsIDEuMzkzNjYsIDEuNzg2MzUiLCBcCi0gICAgICAgICAgIjAuMDc1MDI5LCAwLjMzODQ3NywgMC42MTAwMzQsIDAuODA1OTU4LCAxLjEyMDg0LCAxLjM5NTU2LCAxLjc4NTk3IiwgXAotICAgICAgICAgICIwLjA4MzI4OSwgMC4zNDE3OTQsIDAuNjExNjQ2LCAwLjgwNjM4MiwgMS4xMjE1MywgMS4zOTMzNCwgMS43ODUyIiwgXAotICAgICAgICAgICIwLjA5MDYzMywgMC4zNDY0NiwgMC42MTQ5ODEsIDAuODA4ODM1LCAxLjExOTUsIDEuMzkzMjQsIDEuNzg1MTgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTU4MzIsIDAuMDcwMzUsIDAuMTI0NzQzLCAwLjE2MzYxNCwgMC4yMjU3ODQsIDAuMjgwMTg2LCAwLjM1Nzk0IiwgXAotICAgICAgICAgICIwLjAyNDA2LCAwLjA3ODU2LCAwLjEzMjk1NywgMC4xNzE4MzMsIDAuMjM0MDE5LCAwLjI4ODI0MiwgMC4zNjU5MiIsIFwKLSAgICAgICAgICAiMC4wMzE3NjMsIDAuMDg4Njc1LCAwLjE0MzA4NywgMC4xODE4NjEsIDAuMjQ0MDc4LCAwLjI5ODQyMywgMC4zNzYwMDUiLCBcCi0gICAgICAgICAgIjAuMDM3MTAyLCAwLjA5OTEzNSwgMC4xNTM0MDQsIDAuMTkyMTcsIDAuMjU0MDkzLCAwLjMwODY4MywgMC4zODY0MDQiLCBcCi0gICAgICAgICAgIjAuMDQxMjc1LCAwLjEwOTczMiwgMC4xNjM4NDQsIDAuMjAyNjE0LCAwLjI2NDcxOCwgMC4zMTkxOSwgMC4zOTY3MDUiLCBcCi0gICAgICAgICAgIjAuMDQ2NDk3LCAwLjEyNjA1MSwgMC4xODA3NzYsIDAuMjE5NDM4LCAwLjI4MTQ1NCwgMC4zMzU3NDYsIDAuNDEzNDExIiwgXAotICAgICAgICAgICIwLjA0OTkyNywgMC4xMzg1MDcsIDAuMTk1NjcsIDAuMjM0Mjc0LCAwLjI5NjIwOSwgMC4zNTA0OTMsIDAuNDI4MDQzIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDI2MzMsIDAuMTQwODgzLCAwLjI1NTM4NSwgMC4zMzcyMjQsIDAuNDY3OTc4LCAwLjU4MjU1NCwgMC43NDU5OTUiLCBcCi0gICAgICAgICAgIjAuMDMxMTM0LCAwLjE0MDkxNiwgMC4yNTUzODYsIDAuMzM3MTcxLCAwLjQ2ODE0MSwgMC41ODI0ODQsIDAuNzQ2NDAxIiwgXAotICAgICAgICAgICIwLjA0MDUzNSwgMC4xNDQyMTcsIDAuMjU1NzU0LCAwLjMzNzAzNSwgMC40Njc5NTEsIDAuNTgyNDQxLCAwLjc0NTk5IiwgXAotICAgICAgICAgICIwLjA0OTIyMiwgMC4xNTAzOCwgMC4yNTg3MzYsIDAuMzM4NDkyLCAwLjQ2ODE0NiwgMC41ODI0OTQsIDAuNzQ1OTg4IiwgXAotICAgICAgICAgICIwLjA1NjU3NSwgMC4xNTgwMDMsIDAuMjYzNjMzLCAwLjM0MTg2NiwgMC40NjkzNTYsIDAuNTgyNTkyLCAwLjc0NTc4MSIsIFwKLSAgICAgICAgICAiMC4wNjc0ODksIDAuMTcxNTc3LCAwLjI3Mzc5MSwgMC4zNDk4NTcsIDAuNDc0NzM3LCAwLjU4NTc5NywgMC43NDY3NSIsIFwKLSAgICAgICAgICAiMC4wNzYxOTgsIDAuMTg0ODU2LCAwLjI4NDE0NiwgMC4zNTg2NzUsIDAuNDgxNDEyLCAwLjU5MDgzMywgMC43NDk3MjkiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzUzMzgsIDAuMTY4NzI2LCAwLjMwMTg2NywgMC4zOTczLCAwLjU0OTEsIDAuNjgyNDUzLCAwLjg3MjgxNCIsIFwKLSAgICAgICAgICAiMC4wNDE0NzEsIDAuMTc1MjU5LCAwLjMwODM1NCwgMC40MDM0NjgsIDAuNTU1NTA2LCAwLjY4ODY0MiwgMC44Nzg3NDkiLCBcCi0gICAgICAgICAgIjAuMDQ5NjYsIDAuMTgzMzc1LCAwLjMxNjYyMywgMC40MTE5MDgsIDAuNTY0NTQ2LCAwLjY5NzAxNiwgMC44ODc5ODMiLCBcCi0gICAgICAgICAgIjAuMDU2NjI0LCAwLjE5MTY2NCwgMC4zMjUwMzQsIDAuNDIwMDQ3LCAwLjU3MjI4NiwgMC43MDUzMjMsIDAuODk2NTAyIiwgXAotICAgICAgICAgICIwLjA2MjcyNiwgMC4xOTk4OTcsIDAuMzMzMzMsIDAuNDI4Mzg4LCAwLjU4MDUzNCwgMC43MTQyNjMsIDAuOTA0MDQ5IiwgXAotICAgICAgICAgICIwLjA3MTA4NSwgMC4yMTM1NjgsIDAuMzQ2NjAxLCAwLjQ0MTYyMSwgMC41OTM3OTUsIDAuNzI3MDg2LCAwLjkxNzU4OSIsIFwKLSAgICAgICAgICAiMC4wNzc0MDUsIDAuMjI1MjU5LCAwLjM1ODIzNCwgMC40NTM0NTIsIDAuNjA1NzUxLCAwLjczODcwMiwgMC45Mjg4OCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2MTMzNywgMC4zMzU2NTEsIDAuNjExMTEzLCAwLjgwNTg5NywgMS4xMjE2NCwgMS4zOTMzMSwgMS43ODUxNyIsIFwKLSAgICAgICAgICAiMC4wNjIzNDksIDAuMzM1NDksIDAuNjEwNjY4LCAwLjgwNjkwNywgMS4xMjA3OCwgMS4zOTQxNCwgMS43ODc5NyIsIFwKLSAgICAgICAgICAiMC4wNjcyMTcsIDAuMzM1OTk5LCAwLjYwOTkxNCwgMC44MDYwOTksIDEuMTE5MzYsIDEuMzkzODgsIDEuNzg1NDUiLCBcCi0gICAgICAgICAgIjAuMDczNTIsIDAuMzM2OTM2LCAwLjYwOTc3MSwgMC44MDY4OTIsIDEuMTIxNDIsIDEuMzk1NTUsIDEuNzg1NzciLCBcCi0gICAgICAgICAgIjAuMDgwNDM3LCAwLjMzOTIwNiwgMC42MTExNzQsIDAuODA2MTgzLCAxLjEyMDgxLCAxLjM5MzQyLCAxLjc4NTI4IiwgXAotICAgICAgICAgICIwLjA5MDQ0MiwgMC4zNDQ3MzgsIDAuNjEyODI4LCAwLjgwNjM5MiwgMS4xMTk3LCAxLjM5NjIzLCAxLjc4NTIiLCBcCi0gICAgICAgICAgIjAuMDk4OTI5LCAwLjM1MDczNSwgMC42MTYwMSwgMC44MDkwMjYsIDEuMTIxNjcsIDEuMzkzNzQsIDEuNzg3OTUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTQ4MDEsIDAuMDY5Mzc5LCAwLjEyMzg1LCAwLjE2Mjc1OSwgMC4yMjUxNDksIDAuMjc5NjAyLCAwLjM1NzU4NyIsIFwKLSAgICAgICAgICAiMC4wMjI5NzksIDAuMDc3NjY2LCAwLjEzMjIwNSwgMC4xNzEwNzMsIDAuMjMzMzEsIDAuMjg3ODI4LCAwLjM2NTc4NiIsIFwKLSAgICAgICAgICAiMC4wMzAxNywgMC4wODc5ODMsIDAuMTQyNDQ4LCAwLjE4MTQ4NCwgMC4yNDM3NDksIDAuMjk4MzIyLCAwLjM3NjA4IiwgXAotICAgICAgICAgICIwLjAzNDk5MSwgMC4wOTg0MjYsIDAuMTUyNzkzLCAwLjE5MTc4OSwgMC4yNTM2MjksIDAuMzA4NTk5LCAwLjM4NjEyOCIsIFwKLSAgICAgICAgICAiMC4wMzg3NzIsIDAuMTA5MDE0LCAwLjE2MzM5MywgMC4yMDIyNDMsIDAuMjY0NTM5LCAwLjMxODk5NSwgMC4zOTY5MzYiLCBcCi0gICAgICAgICAgIjAuMDQzMjQ3LCAwLjEyNTAzOSwgMC4xODAwNTksIDAuMjE4ODM3LCAwLjI4MTAyNiwgMC4zMzU0MTksIDAuNDEzMzQ0IiwgXAotICAgICAgICAgICIwLjA0NjI5OCwgMC4xMzY5NjMsIDAuMTk0ODUsIDAuMjMzNTcsIDAuMjk1NjE3LCAwLjM1MDA4MiwgMC40Mjc4MTQiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjQ5OCwgMC4xNDAyNSwgMC4yNTU3NTEsIDAuMzM3NjYzLCAwLjQ2OTUyMiwgMC41ODQ4NzMsIDAuNzQ5MzYyIiwgXAotICAgICAgICAgICIwLjAyOTk1MywgMC4xNDAyNCwgMC4yNTU1MTcsIDAuMzM3OTQ3LCAwLjQ2OTQ2NiwgMC41ODU0ODMsIDAuNzQ5NTI0IiwgXAotICAgICAgICAgICIwLjAzOTQ2NywgMC4xNDM3MzksIDAuMjU2MjIyLCAwLjMzNzgwNCwgMC40Njk1ODEsIDAuNTg0NzIzLCAwLjc0OTUzIiwgXAotICAgICAgICAgICIwLjA0Nzk1MywgMC4xNDk2NTEsIDAuMjU4ODg1LCAwLjMzOTA1NiwgMC40NzAzMTgsIDAuNTg0ODI1LCAwLjc0OTgwMiIsIFwKLSAgICAgICAgICAiMC4wNTU0NDEsIDAuMTU2OTM3LCAwLjI2MzUyNywgMC4zNDIzNzgsIDAuNDcwODMzLCAwLjU4NDc2MywgMC43NDk1MjMiLCBcCi0gICAgICAgICAgIjAuMDY2NTA5LCAwLjE3MDg1NywgMC4yNzM5MTcsIDAuMzUwODIzLCAwLjQ3NjgyMiwgMC41ODgyNTUsIDAuNzQ5ODI3IiwgXAotICAgICAgICAgICIwLjA3NTM4OSwgMC4xODQ4NywgMC4yODQxNzQsIDAuMzU5MzY5LCAwLjQ4MzE4LCAwLjU5Mzk4MSwgMC43NTM0NTkiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzIyNSwgMC4xNjU2MTYsIDAuMjk4OTgyLCAwLjM5NDA1NiwgMC41NDYzNDQsIDAuNjc5NjI3LCAwLjg2OTMxOCIsIFwKLSAgICAgICAgICAiMC4wMzkxNDcsIDAuMTcyNjgyLCAwLjMwNTc4NCwgMC40MDA4NTgsIDAuNTUyODYzLCAwLjY4NjA3NywgMC44NzYxMDIiLCBcCi0gICAgICAgICAgIjAuMDQ4NzEsIDAuMTgxNzgzLCAwLjMxNTAxOSwgMC40MDk5NDYsIDAuNTYyMDgyLCAwLjY5NTE5LCAwLjg4NTQ2NiIsIFwKLSAgICAgICAgICAiMC4wNTcxNTYsIDAuMTkwOTE5LCAwLjMyMzg4NSwgMC40MTkwMzksIDAuNTcxMTc0LCAwLjcwNDQwNSwgMC44OTQyMTMiLCBcCi0gICAgICAgICAgIjAuMDYzOTMyLCAwLjIwMDQwMiwgMC4zMzM1MTEsIDAuNDI4MzM5LCAwLjU4MDY3OCwgMC43MTM1OTYsIDAuOTAzNzQ4IiwgXAotICAgICAgICAgICIwLjA3MzM3OCwgMC4yMTUzNjIsIDAuMzQ3OTkyLCAwLjQ0Mjk2MSwgMC41OTUxNzMsIDAuNzI3ODk0LCAwLjkxNzg4MyIsIFwKLSAgICAgICAgICAiMC4wODA1ODksIDAuMjI4ODE4LCAwLjM2MTE5MSwgMC40NTYwMjcsIDAuNjA3NTQxLCAwLjc0MDg4NCwgMC45MzA2NzgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjEyMDMsIDAuMzM2MTY4LCAwLjYwOTgyNiwgMC44MDU2MzIsIDEuMTE5MTQsIDEuMzkzNTgsIDEuNzg5MjIiLCBcCi0gICAgICAgICAgIjAuMDYyNzg3LCAwLjMzNjE5NSwgMC42MDk5MjYsIDAuODA1ODgzLCAxLjExOTQ3LCAxLjM5NTUzLCAxLjc4Nzg4IiwgXAotICAgICAgICAgICIwLjA2OTQ1NSwgMC4zMzYxNDYsIDAuNjA5NjE2LCAwLjgwNjg2MSwgMS4xMTk0NSwgMS4zOTU1NSwgMS43ODkwNCIsIFwKLSAgICAgICAgICAiMC4wNzczMzIsIDAuMzM2NTI5LCAwLjYxMDY0MSwgMC44MDczNjgsIDEuMTIxNTMsIDEuMzkzNDUsIDEuNzg3OTQiLCBcCi0gICAgICAgICAgIjAuMDg1NzA1LCAwLjMzOTU3NSwgMC42MDk4MjEsIDAuODA2MTY1LCAxLjExOTE1LCAxLjM5NjI4LCAxLjc4ODkzIiwgXAotICAgICAgICAgICIwLjA5Njk3NCwgMC4zNDc0MTgsIDAuNjEzMjQ5LCAwLjgwNzE3NywgMS4xMTkxMiwgMS4zOTU1MywgMS43ODYwMiIsIFwKLSAgICAgICAgICAiMC4xMDU3NTMsIDAuMzU1MjYyLCAwLjYxNzUzNiwgMC44MDgwMTMsIDEuMTE5MTUsIDEuMzkzNzcsIDEuNzg3OTQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMjYzMSwgMC4wMTI2NDYsIDAuMDEyNjQ3LCAwLjAxMjY0NywgMC4wMTI2NDYsIDAuMDEyNjQ3LCAwLjAxMjY0NiIsIFwKLSAgICAgICAgICAiMC4wMTI1NzQsIDAuMDEyNTkzLCAwLjAxMjU5OSwgMC4wMTI2MDEsIDAuMDEyNjAyLCAwLjAxMjYwNCwgMC4wMTI2MDIiLCBcCi0gICAgICAgICAgIjAuMDEyNzM1LCAwLjAxMjY3MiwgMC4wMTI2NDMsIDAuMDEyNjM0LCAwLjAxMjYyNSwgMC4wMTI2MjIsIDAuMDEyNjE2IiwgXAotICAgICAgICAgICIwLjAxMzE1LCAwLjAxMjc0MiwgMC4wMTI2ODMsIDAuMDEyNjY2LCAwLjAxMjY0NywgMC4wMTI2MzgsIDAuMDEyNjMiLCBcCi0gICAgICAgICAgIjAuMDEzNDk5LCAwLjAxMjk2NywgMC4wMTI4MjMsIDAuMDEyNzc5LCAwLjAxMjczMywgMC4wMTI3MTEsIDAuMDEyNjg5IiwgXAotICAgICAgICAgICIwLjAxNDMxNywgMC4wMTMyOTEsIDAuMDEzMDI5LCAwLjAxMjk0MiwgMC4wMTI4NTksIDAuMDEyODE0LCAwLjAxMjc3MiIsIFwKLSAgICAgICAgICAiMC4wMTUwMjEsIDAuMDEzNjY0LCAwLjAxMzI4MSwgMC4wMTMxMzcsIDAuMDEzMDEyLCAwLjAxMjk0NiwgMC4wMTI4NzYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTY3MiwgMC4wMDE3ODYsIDAuMDAxNzk5LCAwLjAwMTgwMywgMC4wMDE4MDYsIDAuMDAxODA4LCAwLjAwMTgxIiwgXAotICAgICAgICAgICIwLjAwMTM4OCwgMC4wMDE2ODMsIDAuMDAxNzM4LCAwLjAwMTc1NiwgMC4wMDE3NzIsIDAuMDAxNzgsIDAuMDAxNzg4IiwgXAotICAgICAgICAgICIwLjAwMTMxOCwgMC4wMDE1OTYsIDAuMDAxNjgsIDAuMDAxNzA5LCAwLjAwMTczNiwgMC4wMDE3NTEsIDAuMDAxNzY0IiwgXAotICAgICAgICAgICIwLjAwMTQwMiwgMC4wMDE1NjgsIDAuMDAxNjUsIDAuMDAxNjgyLCAwLjAwMTcxNCwgMC4wMDE3MzIsIDAuMDAxNzQ5IiwgXAotICAgICAgICAgICIwLjAwMTU5OCwgMC4wMDE1OTEsIDAuMDAxNjUzLCAwLjAwMTY4MSwgMC4wMDE3MTEsIDAuMDAxNzI4LCAwLjAwMTc0NSIsIFwKLSAgICAgICAgICAiMC4wMDIwNzEsIDAuMDAxNzIzLCAwLjAwMTcxOCwgMC4wMDE3MjcsIDAuMDAxNzQxLCAwLjAwMTc1MSwgMC4wMDE3NjEiLCBcCi0gICAgICAgICAgIjAuMDAyNjA2LCAwLjAwMTkyNywgMC4wMDE4MzYsIDAuMDAxODE2LCAwLjAwMTgwNCwgMC4wMDE4MDEsIDAuMDAxNzk5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTA2MDcsIDAuMDEwNjQ3LCAwLjAxMDY1LCAwLjAxMDY1MiwgMC4wMTA2NTQsIDAuMDEwNjUzLCAwLjAxMDY1NSIsIFwKLSAgICAgICAgICAiMC4wMTA1NTksIDAuMDEwNjI4LCAwLjAxMDY0LCAwLjAxMDY0NCwgMC4wMTA2NDYsIDAuMDEwNjQ4LCAwLjAxMDY0OCIsIFwKLSAgICAgICAgICAiMC4wMTA2ODYsIDAuMDEwNzE4LCAwLjAxMDY5NywgMC4wMTA2ODgsIDAuMDEwNjgyLCAwLjAxMDY3MywgMC4wMTA2NjkiLCBcCi0gICAgICAgICAgIjAuMDExMDM3LCAwLjAxMDg1LCAwLjAxMDc3OCwgMC4wMTA3NTQsIDAuMDEwNzE3LCAwLjAxMDcxOSwgMC4wMTA3MDYiLCBcCi0gICAgICAgICAgIjAuMDExMzgyLCAwLjAxMTAxOCwgMC4wMTA4NzgsIDAuMDEwODMzLCAwLjAxMDc5NCwgMC4wMTA3NzIsIDAuMDEwNzUiLCBcCi0gICAgICAgICAgIjAuMDEyMTgzLCAwLjAxMTMzOSwgMC4wMTEwODYsIDAuMDEwOTk4LCAwLjAxMDkyMywgMC4wMTA4OCwgMC4wMTA4MzgiLCBcCi0gICAgICAgICAgIjAuMDEyOTQzLCAwLjAxMTY5MywgMC4wMTEzMTYsIDAuMDExMTc5LCAwLjAxMTA2MiwgMC4wMTA5OTUsIDAuMDEwOTMyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDE2NjksIDAuMDAxNzgxLCAwLjAwMTc5NCwgMC4wMDE3OTgsIDAuMDAxODAxLCAwLjAwMTgwMywgMC4wMDE4MDUiLCBcCi0gICAgICAgICAgIjAuMDAxMzk4LCAwLjAwMTY4MSwgMC4wMDE3MzQsIDAuMDAxNzUyLCAwLjAwMTc2OCwgMC4wMDE3NzYsIDAuMDAxNzg0IiwgXAotICAgICAgICAgICIwLjAwMTM4NywgMC4wMDE2MTEsIDAuMDAxNjg1LCAwLjAwMTcxMSwgMC4wMDE3MzYsIDAuMDAxNzUsIDAuMDAxNzYzIiwgXAotICAgICAgICAgICIwLjAwMTU0OSwgMC4wMDE2MDUsIDAuMDAxNjY5LCAwLjAwMTY5NiwgMC4wMDE3MjMsIDAuMDAxNzM4LCAwLjAwMTc1MiIsIFwKLSAgICAgICAgICAiMC4wMDE4MjMsIDAuMDAxNjU2LCAwLjAwMTY4OSwgMC4wMDE3MDcsIDAuMDAxNzI5LCAwLjAwMTc0MSwgMC4wMDE3NTQiLCBcCi0gICAgICAgICAgIjAuMDAyMzg3LCAwLjAwMTgzMSwgMC4wMDE3ODIsIDAuMDAxNzc0LCAwLjAwMTc3MywgMC4wMDE3NzYsIDAuMDAxNzgiLCBcCi0gICAgICAgICAgIjAuMDAyOTcyLCAwLjAwMjA0NCwgMC4wMDE5MSwgMC4wMDE4NzMsIDAuMDAxODQ0LCAwLjAwMTgzMiwgMC4wMDE4MjMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwODQ2OCwgMC4wMDg1NTcsIDAuMDA4NTY2LCAwLjAwODU2OSwgMC4wMDg1NzIsIDAuMDA4NTczLCAwLjAwODU3NiIsIFwKLSAgICAgICAgICAiMC4wMDgzOTIsIDAuMDA4NTYsIDAuMDA4NTg2LCAwLjAwODU5NSwgMC4wMDg2MDIsIDAuMDA4NjAzLCAwLjAwODYwOSIsIFwKLSAgICAgICAgICAiMC4wMDg1MTksIDAuMDA4NTk3LCAwLjAwODYxMSwgMC4wMDg2MTUsIDAuMDA4NjE5LCAwLjAwODYyMSwgMC4wMDg2MjUiLCBcCi0gICAgICAgICAgIjAuMDA4ODEzLCAwLjAwODc3OCwgMC4wMDg3MjgsIDAuMDA4NywgMC4wMDg2NzUsIDAuMDA4NjcyLCAwLjAwODY2NSIsIFwKLSAgICAgICAgICAiMC4wMDkyMSwgMC4wMDg4MTYsIDAuMDA4NzM4LCAwLjAwODcxNCwgMC4wMDg3LCAwLjAwODY4OSwgMC4wMDg2NzciLCBcCi0gICAgICAgICAgIjAuMDEwMDAzLCAwLjAwOTE2MiwgMC4wMDg5NTYsIDAuMDA4ODkxLCAwLjAwODgzNiwgMC4wMDg4MDcsIDAuMDA4NzczIiwgXAotICAgICAgICAgICIwLjAxMDcyOSwgMC4wMDk1MTIsIDAuMDA5MTksIDAuMDA5MDY5LCAwLjAwODk3MywgMC4wMDg5MjIsIDAuMDA4ODYzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDE2NDEsIDAuMDAxNzY3LCAwLjAwMTc4MiwgMC4wMDE3ODYsIDAuMDAxNzksIDAuMDAxNzkyLCAwLjAwMTc5NCIsIFwKLSAgICAgICAgICAiMC4wMDE0OTQsIDAuMDAxNjkxLCAwLjAwMTczNiwgMC4wMDE3NSwgMC4wMDE3NjQsIDAuMDAxNzcxLCAwLjAwMTc3NyIsIFwKLSAgICAgICAgICAiMC4wMDE2NDUsIDAuMDAxNjc5LCAwLjAwMTcxOSwgMC4wMDE3MzUsIDAuMDAxNzUxLCAwLjAwMTc2LCAwLjAwMTc2OCIsIFwKLSAgICAgICAgICAiMC4wMDIxMDEsIDAuMDAxNzc4LCAwLjAwMTc2OCwgMC4wMDE3NywgMC4wMDE3NzUsIDAuMDAxNzc4LCAwLjAwMTc4MiIsIFwKLSAgICAgICAgICAiMC4wMDIzNTYsIDAuMDAxODUxLCAwLjAwMTgwMywgMC4wMDE3OTIsIDAuMDAxNzg4LCAwLjAwMTc4OCwgMC4wMDE3ODkiLCBcCi0gICAgICAgICAgIjAuMDAzMTE3LCAwLjAwMjIwNSwgMC4wMDIwMTksIDAuMDAxOTc5LCAwLjAwMTkxMSwgMC4wMDE4ODYsIDAuMDAxODY2IiwgXAotICAgICAgICAgICIwLjAwNDEyNSwgMC4wMDI2MDEsIDAuMDAyMzA1LCAwLjAwMjE5MiwgMC4wMDIwODMsIDAuMDAyMDUsIDAuMDAxOTgiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBOQU5EM1g2ICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKE5BTkQzWDYpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMS42MDA5NTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDA1NjQ3NzU7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDA1NjQ3NzU7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDA1NjM3MDM7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzMTQ2LCAwLjAwMzE0MywgMC4wMDMxNDEsIDAuMDAzMTQxLCAwLjAwMzE0MSwgMC4wMDMxNCwgMC4wMDMxNDEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDMxNDgsIDAuMDAzMTUxLCAwLjAwMzE1NCwgMC4wMDMxNTQsIDAuMDAzMTUyLCAwLjAwMzE1MywgMC4wMDMxNTMiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwNTUzOTg3OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwNTUzOTg3OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwNTUzMjI7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzMTQ2LCAwLjAwMzE0NCwgMC4wMDMxNCwgMC4wMDMxNDEsIDAuMDAzMTQxLCAwLjAwMzE0LCAwLjAwMzE0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzMTQ5LCAwLjAwMzE1LCAwLjAwMzE1MywgMC4wMDMxNTQsIDAuMDAzMTU1LCAwLjAwMzE1NiwgMC4wMDMxNTYiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEMpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwNTIyNjk3OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwNTIyNTQ1OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwNTIyNjk3OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTgyNiwgMC4wMDE4MjEsIDAuMDAxODIsIDAuMDAxODIxLCAwLjAwMTgyLCAwLjAwMTgxOSwgMC4wMDE4MTkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDM1NjcsIDAuMDAzNTcxLCAwLjAwMzU3LCAwLjAwMzU3MiwgMC4wMDM1NzEsIDAuMDAzNTcsIDAuMDAzNTciKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC44MjQ5MjY7Ci0gICAgZnVuY3Rpb24gOiAiKCEoKEEgQikgQykpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxNDA5NiwgMC4wNTEzNjgsIDAuMDg4MTk4LCAwLjExNDU0NCwgMC4xNTY2NzIsIDAuMTkzMzU3LCAwLjI0NjAwMyIsIFwKLSAgICAgICAgICAiMC4wMjIyODQsIDAuMDU5NjE3LCAwLjA5NjQ1LCAwLjEyMjc4NCwgMC4xNjQ4MzgsIDAuMjAxNiwgMC4yNTQxNjciLCBcCi0gICAgICAgICAgIjAuMDI5MzQ0LCAwLjA2OTkyNSwgMC4xMDY3NDUsIDAuMTMzMDI0LCAwLjE3NDgsIDAuMjExODk1LCAwLjI2NDUwMyIsIFwKLSAgICAgICAgICAiMC4wMzQyMjksIDAuMDgwNTkxLCAwLjExNzM3NSwgMC4xNDM1OTMsIDAuMTg1NjMyLCAwLjIyMjUwMiwgMC4yNzUwNDgiLCBcCi0gICAgICAgICAgIjAuMDM4MDIzLCAwLjA5MDQ2MywgMC4xMjc1NzgsIDAuMTUzNzYzLCAwLjE5NTc0OSwgMC4yMzI0OTMsIDAuMjg1MDIyIiwgXAotICAgICAgICAgICIwLjA0Mjc4NywgMC4xMDM4NjIsIDAuMTQ0NjgyLCAwLjE3MDc4OCwgMC4yMTI2MzIsIDAuMjQ5MzI3LCAwLjMwMTgzMiIsIFwKLSAgICAgICAgICAiMC4wNDU4MDEsIDAuMTEzNjI3LCAwLjE1ODY0LCAwLjE4NTUyLCAwLjIyNzM4MSwgMC4yNjQwMzQsIDAuMzE2NDg1Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDIyNTY2LCAwLjEwMDMyLCAwLjE3ODEwNCwgMC4yMzM3NjMsIDAuMzIyNzg4LCAwLjQwMDU2NiwgMC41MTE3MzMiLCBcCi0gICAgICAgICAgIjAuMDI3NzQxLCAwLjEwMDg1NywgMC4xNzgxMTUsIDAuMjMzNzM2LCAwLjMyMjYwNCwgMC40MDA0NjIsIDAuNTExNTk2IiwgXAotICAgICAgICAgICIwLjAzNzAyMSwgMC4xMDU5MDYsIDAuMTgwMDI5LCAwLjIzNDM0NSwgMC4zMjI1OTgsIDAuNDAwNTMyLCAwLjUxMTg0OSIsIFwKLSAgICAgICAgICAiMC4wNDQ5MzIsIDAuMTEzMTgyLCAwLjE4NDg2LCAwLjIzNzc1OSwgMC4zMjQxMDcsIDAuNDAwOTQ0LCAwLjUxMTc4MiIsIFwKLSAgICAgICAgICAiMC4wNTIxOTUsIDAuMTIyMTksIDAuMTkxNTc4LCAwLjI0MzIwNCwgMC4zMjc4MTQsIDAuNDAzMjk3LCAwLjUxMjMwNiIsIFwKLSAgICAgICAgICAiMC4wNjIyOCwgMC4xMzcyOTYsIDAuMjA0MDU3LCAwLjI1MzkzMywgMC4zMzYxOCwgMC40MDk4MjQsIDAuNTE2Nzk4IiwgXAotICAgICAgICAgICIwLjA3MDU4LCAwLjE1MDk2NSwgMC4yMTYxNjEsIDAuMjY0ODI4LCAwLjM0NTM2MSwgMC40MTc2MTgsIDAuNTIyODc3Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDMxMzM2LCAwLjEyMzcyMSwgMC4yMTU5NCwgMC4yODE2NTksIDAuMzg3MjAxLCAwLjQ3OTAxMiwgMC42MTA0NzIiLCBcCi0gICAgICAgICAgIjAuMDM2NTMzLCAwLjEyOTM0NSwgMC4yMjE0NjUsIDAuMjg3Mjg3LCAwLjM5MjUyOSwgMC40ODQ1OCwgMC42MTY1MzIiLCBcCi0gICAgICAgICAgIjAuMDQyMzc2LCAwLjEzNTQxMSwgMC4yMjc3MjMsIDAuMjkzNDkxLCAwLjM5ODg4MywgMC40OTA4NzMsIDAuNjIyNDI4IiwgXAotICAgICAgICAgICIwLjA0NzIyMiwgMC4xNDE1NTMsIDAuMjMzOTAxLCAwLjI5OTY5OCwgMC40MDUxMDMsIDAuNDk3MDc4LCAwLjYyODcxMiIsIFwKLSAgICAgICAgICAiMC4wNTE0NjgsIDAuMTQ3NzE4LCAwLjIzOTk3MiwgMC4zMDU4NzUsIDAuNDExMTkzLCAwLjUwMzUxNCwgMC42MzUxNTEiLCBcCi0gICAgICAgICAgIjAuMDU3NTk3LCAwLjE1ODExNSwgMC4yNTAwNzYsIDAuMzE1OTI4LCAwLjQyMTI3NSwgMC41MTM2NzIsIDAuNjQ0OTc1IiwgXAotICAgICAgICAgICIwLjA2MjAxNSwgMC4xNjcyMTMsIDAuMjU4OTQ3LCAwLjMyNDg1MSwgMC40MzAwOTIsIDAuNTIyMzQ5LCAwLjY1NDE5MSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0OTE5MiwgMC4yMzgwMzUsIDAuNDI2NzAxLCAwLjU2MjE2NiwgMC43NzczODEsIDAuOTY3MjA1LCAxLjIzNjM1IiwgXAotICAgICAgICAgICIwLjA0OTk1LCAwLjIzNzg5MSwgMC40MjczMSwgMC41NjI2ODQsIDAuNzc3NTAzLCAwLjk2Njg4MiwgMS4yMzU2NCIsIFwKLSAgICAgICAgICAiMC4wNTMyNzYsIDAuMjM4NzE0LCAwLjQyNjcyOCwgMC41NjIzNTIsIDAuNzc4OTkzLCAwLjk2NzUzMywgMS4yMzgzMiIsIFwKLSAgICAgICAgICAiMC4wNTgzMzIsIDAuMjQwMTIxLCAwLjQyNzg2MiwgMC41NjI2NiwgMC43Nzg5OSwgMC45Njc1MTcsIDEuMjM2NTciLCBcCi0gICAgICAgICAgIjAuMDYzNTM1LCAwLjI0MjE2MiwgMC40Mjg1NzMsIDAuNTYyNzU3LCAwLjc3ODQzOCwgMC45NjU5ODMsIDEuMjM1NTMiLCBcCi0gICAgICAgICAgIjAuMDcxOTYyLCAwLjI0NzQyMiwgMC40MzEyMDQsIDAuNTY0NjY3LCAwLjc3OTA3OCwgMC45NjYwNDgsIDEuMjM3NjIiLCBcCi0gICAgICAgICAgIjAuMDc4ODM4LCAwLjI1MzEwNSwgMC40MzQ0OTksIDAuNTY2ODg3LCAwLjc4MDUzMSwgMC45Njg5OTIsIDEuMjM1NzEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTMxMDksIDAuMDQ5NjAxLCAwLjA4NTk2NywgMC4xMTIwMDEsIDAuMTUzNDU5LCAwLjE4OTg2OCwgMC4yNDE2NzIiLCBcCi0gICAgICAgICAgIjAuMDIxMDIxLCAwLjA1NzgzNCwgMC4wOTQyMiwgMC4xMjAxNjMsIDAuMTYxNjcsIDAuMTk4MDEsIDAuMjQ5ODk2IiwgXAotICAgICAgICAgICIwLjAyNzQ5MywgMC4wNjc5ODUsIDAuMTA0Mjc5LCAwLjEzMDIzLCAwLjE3MTUzOCwgMC4yMDgxMTYsIDAuMjU5OTQiLCBcCi0gICAgICAgICAgIjAuMDMyMDY1LCAwLjA3ODk0NCwgMC4xMTQ2NTEsIDAuMTQwNTU1LCAwLjE4MjAyOCwgMC4yMTgzNzcsIDAuMjcwMjY4IiwgXAotICAgICAgICAgICIwLjAzNTMxOSwgMC4wODkwNzYsIDAuMTI1MjEyLCAwLjE1MTAyNSwgMC4xOTI0NDgsIDAuMjI4NzY3LCAwLjI4MDYzNyIsIFwKLSAgICAgICAgICAiMC4wMzkzNzIsIDAuMTAyMTY4LCAwLjE0MjIzNywgMC4xNjgwMDQsIDAuMjA5MzAyLCAwLjI0NTUxNCwgMC4yOTczODciLCBcCi0gICAgICAgICAgIjAuMDQyMDYyLCAwLjExMTc4NiwgMC4xNTYwNjEsIDAuMTgyODgxLCAwLjIyNDE0MSwgMC4yNjAzMjEsIDAuMzEyMDQ4Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDIwNjk0LCAwLjA5NzQ2OSwgMC4xNzQzNDcsIDAuMjI5MjQzLCAwLjMxNjk2OCwgMC4zOTM4MzksIDAuNTAzNDAxIiwgXAotICAgICAgICAgICIwLjAyNjI3OSwgMC4wOTgwOTgsIDAuMTc0MzM0LCAwLjIyOTE1MywgMC4zMTY5MzIsIDAuMzkzNzA0LCAwLjUwMzM5OCIsIFwKLSAgICAgICAgICAiMC4wMzU1NiwgMC4xMDM0OCwgMC4xNzYzOTUsIDAuMjI5OTI5LCAwLjMxNjc4OCwgMC4zOTM3MDcsIDAuNTAzMjI5IiwgXAotICAgICAgICAgICIwLjA0MzEwOSwgMC4xMTA1MzYsIDAuMTgxNTExLCAwLjIzMzU3OCwgMC4zMTg2MiwgMC4zOTQwNDcsIDAuNTAzMzU2IiwgXAotICAgICAgICAgICIwLjA1MDIwMiwgMC4xMTkwODcsIDAuMTg4MjcsIDAuMjM5MDA5LCAwLjMyMjM4MSwgMC4zOTY2NTQsIDAuNTA0MzA1IiwgXAotICAgICAgICAgICIwLjA2MDQxOCwgMC4xMzQxMzksIDAuMjAwOTEzLCAwLjI0OTk4LCAwLjMzMDk2MiwgMC40MDM0NzMsIDAuNTA5MDM2IiwgXAotICAgICAgICAgICIwLjA2ODU3NiwgMC4xNDc1OTIsIDAuMjEzMTE0LCAwLjI2MTAyOSwgMC4zNDAyMTMsIDAuNDExMzIzLCAwLjUxNTA0NiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyOTYyNSwgMC4xMjIwMzgsIDAuMjE0MDkyLCAwLjI4MDEsIDAuMzg1MDM2LCAwLjQ3NzYwNCwgMC42MDg4MTYiLCBcCi0gICAgICAgICAgIjAuMDM1Nzk1LCAwLjEyODUzMywgMC4yMjA3NDcsIDAuMjg2NTI5LCAwLjM5MTc5NCwgMC40ODM4OTgsIDAuNjE1MzY4IiwgXAotICAgICAgICAgICIwLjA0MzY2NiwgMC4xMzY3MjksIDAuMjI5MTcxLCAwLjI5NDk1OSwgMC40MDAzMTIsIDAuNDkyMzE1LCAwLjYyNDI1NSIsIFwKLSAgICAgICAgICAiMC4wNTAyMTQsIDAuMTQ1MDQxLCAwLjIzNzQwNiwgMC4zMDMyOTYsIDAuNDA4NjE2LCAwLjUwMDkzOSwgMC42MzI1NyIsIFwKLSAgICAgICAgICAiMC4wNTU4MDUsIDAuMTUzNzAyLCAwLjI0NTg0NiwgMC4zMTE2MDYsIDAuNDE2OTk2LCAwLjUwOTEzLCAwLjY0MDgzMyIsIFwKLSAgICAgICAgICAiMC4wNjMzNDYsIDAuMTY3MTU0LCAwLjI1OTE5NSwgMC4zMjQ5ODcsIDAuNDMwNDgsIDAuNTIyNjM5LCAwLjY1NDQyNCIsIFwKLSAgICAgICAgICAiMC4wNjk0NzcsIDAuMTc5MzEyLCAwLjI3MTY2MSwgMC4zMzcxMzMsIDAuNDQyNTA4LCAwLjUzNDY1NywgMC42NjYzNDIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDkyMTIsIDAuMjM3ODYyLCAwLjQyNzU1NywgMC41NjE1MDgsIDAuNzc4NDY0LCAwLjk2NjE0NCwgMS4yMzcxOSIsIFwKLSAgICAgICAgICAiMC4wNTA1MjgsIDAuMjM4MzYxLCAwLjQyNzU0OSwgMC41NjI2NiwgMC43Nzg4NzksIDAuOTY2NDA0LCAxLjIzNzY1IiwgXAotICAgICAgICAgICIwLjA1NTg4NiwgMC4yMzgzMjQsIDAuNDI2NTgsIDAuNTYyNzMyLCAwLjc3NzY0MiwgMC45NjgxMDMsIDEuMjM1NjYiLCBcCi0gICAgICAgICAgIjAuMDYyNzA2LCAwLjI0MDcxMywgMC40Mjc0NjcsIDAuNTYxNjg0LCAwLjc3ODg5NiwgMC45NjU5NDgsIDEuMjM2MTIiLCBcCi0gICAgICAgICAgIjAuMDY5MzM5LCAwLjI0NDIyNywgMC40Mjg4MjUsIDAuNTYyNjE4LCAwLjc3NzU0NiwgMC45NjgwOCwgMS4yMzg1MyIsIFwKLSAgICAgICAgICAiMC4wNzg5NjksIDAuMjUxMzM4LCAwLjQzMjY2MywgMC41NjQ5MSwgMC43Nzc4NTIsIDAuOTY2NjA3LCAxLjIzNTU1IiwgXAotICAgICAgICAgICIwLjA4NjEyNSwgMC4yNTkwMjMsIDAuNDM3NzcxLCAwLjU2ODY0NiwgMC43ODA4MjEsIDAuOTY2NTE0LCAxLjIzNTgzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEyMDY2LCAwLjA0ODY0MywgMC4wODUxNiwgMC4xMTEyMjksIDAuMTUyOTM2LCAwLjE4OTQzMSwgMC4yNDE1NTkiLCBcCi0gICAgICAgICAgIjAuMDE5Nzg0LCAwLjA1Njk0MSwgMC4wOTM0NzMsIDAuMTE5NTY0LCAwLjE2MTI3NCwgMC4xOTc3MzcsIDAuMjQ5ODg0IiwgXAotICAgICAgICAgICIwLjAyNTY4MiwgMC4wNjcyOTksIDAuMTAzNzU5LCAwLjEyOTgwOSwgMC4xNzE1OSwgMC4yMDgwMjksIDAuMjYwMTM4IiwgXAotICAgICAgICAgICIwLjAyOTYsIDAuMDc3NzcsIDAuMTE0MTAxLCAwLjE0MDE0MiwgMC4xODE4NDcsIDAuMjE4MzQ3LCAwLjI3MDYwNyIsIFwKLSAgICAgICAgICAiMC4wMzI0MTgsIDAuMDg3NjUzLCAwLjEyNDc2LCAwLjE1MDc1NywgMC4xOTI0MDQsIDAuMjI4ODkxLCAwLjI4MTAzMSIsIFwKLSAgICAgICAgICAiMC4wMzU2ODgsIDAuMTAwMzcsIDAuMTQxNTY0LCAwLjE2NzMzMiwgMC4yMDg5NTcsIDAuMjQ1MzczLCAwLjI5NzQ2MyIsIFwKLSAgICAgICAgICAiMC4wMzc5ODQsIDAuMTA5NTYxLCAwLjE1NTExNywgMC4xODIxODcsIDAuMjIzNjkxLCAwLjI2MDA0OCwgMC4zMTIwNjUiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTk0NiwgMC4wOTczNTYsIDAuMTc1MTIzLCAwLjIzMDczMSwgMC4zMTk3MDcsIDAuMzk3NzExLCAwLjUwOTExNSIsIFwKLSAgICAgICAgICAiMC4wMjU0MSwgMC4wOTc5MzgsIDAuMTc1MDg0LCAwLjIzMDc1NSwgMC4zMTk3MzYsIDAuMzk3MzgsIDAuNTA4Nzk2IiwgXAotICAgICAgICAgICIwLjAzNDQ1MSwgMC4xMDMxMTcsIDAuMTc3Mzc5LCAwLjIzMTc3MiwgMC4zMTk3MjcsIDAuMzk3MzU2LCAwLjUwODUyNiIsIFwKLSAgICAgICAgICAiMC4wNDIxMjMsIDAuMTEwODY1LCAwLjE4MjE4NSwgMC4yMzU0MDIsIDAuMzIxMjEyLCAwLjM5ODI0LCAwLjUwODcxOCIsIFwKLSAgICAgICAgICAiMC4wNDkxMTQsIDAuMTE5MzM2LCAwLjE4ODc4LCAwLjI0MDM2MywgMC4zMjU0NjEsIDAuNDAwMzA5LCAwLjUwOTM2NSIsIFwKLSAgICAgICAgICAiMC4wNTkzNTUsIDAuMTM1MTQ1LCAwLjIwMTUzNCwgMC4yNTEzMDIsIDAuMzMzNjg0LCAwLjQwNzMyMiwgMC41MTM5NjMiLCBcCi0gICAgICAgICAgIjAuMDY3MTEzLCAwLjE0ODk1NSwgMC4yMTM3ODIsIDAuMjYyMzQ0LCAwLjM0MzAzNCwgMC40MTUyMjQsIDAuNTIwNDU0Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDI2MzcsIDAuMTE4OTA1LCAwLjIxMDg2NywgMC4yNzY4MDIsIDAuMzgyMTI3LCAwLjQ3NDQ1OCwgMC42MDU2MjYiLCBcCi0gICAgICAgICAgIjAuMDMzMzk1LCAwLjEyNTg3NSwgMC4yMTgwMzUsIDAuMjgzODMsIDAuMzg5MTIyLCAwLjQ4MTE3NSwgMC42MTI4MjQiLCBcCi0gICAgICAgICAgIjAuMDQyNzA0LCAwLjEzNTAxMSwgMC4yMjcyOTEsIDAuMjkyOTgsIDAuMzk4MTg0LCAwLjQ5MDM5NiwgMC42MjE4OTciLCBcCi0gICAgICAgICAgIjAuMDUwMzkxLCAwLjE0NDM0NCwgMC4yMzY0MTgsIDAuMzAyMDg5LCAwLjQwNzQ2OCwgMC40OTkzNjEsIDAuNjMwOTc4IiwgXAotICAgICAgICAgICIwLjA1NjU5OCwgMC4xNTQwMjksIDAuMjQ1OTI4LCAwLjMxMTYzLCAwLjQxNjgyNSwgMC41MDkwOTIsIDAuNjQwNzciLCBcCi0gICAgICAgICAgIjAuMDY1MjM2LCAwLjE2OTQxNywgMC4yNjA4MjgsIDAuMzI2Mzg1LCAwLjQzMTM4NSwgMC41MjM0MTQsIDAuNjU1MTEyIiwgXAotICAgICAgICAgICIwLjA3MTc3OCwgMC4xODM1NzIsIDAuMjc0NTE5LCAwLjM0MDEzMiwgMC40NDUwNTcsIDAuNTM2OTQxLCAwLjY2ODI5OCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0OTE1MywgMC4yMzc5MjMsIDAuNDI3NTQ0LCAwLjU2MTU1OSwgMC43NzcyMTcsIDAuOTY2MzgzLCAxLjIzNzIzIiwgXAotICAgICAgICAgICIwLjA1MTMxMSwgMC4yMzgyMjEsIDAuNDI3Mjc4LCAwLjU2MTY2LCAwLjc3NzM3LCAwLjk2NzU0NSwgMS4yMzciLCBcCi0gICAgICAgICAgIjAuMDU4NDg5LCAwLjIzODY1OCwgMC40MjY1ODksIDAuNTYyNjYxLCAwLjc3ODQzMSwgMC45NjcwNSwgMS4yMzg0MSIsIFwKLSAgICAgICAgICAiMC4wNjY1NzEsIDAuMjQxMjg2LCAwLjQyNzY5OCwgMC41NjIzMzMsIDAuNzc3MTI1LCAwLjk2NjUxMSwgMS4yMzU4NyIsIFwKLSAgICAgICAgICAiMC4wNzQwNzYsIDAuMjQ1OTE0LCAwLjQyOTA3MiwgMC41NjI1ODQsIDAuNzc4ODgxLCAwLjk2NTk0NywgMS4yMzU2NSIsIFwKLSAgICAgICAgICAiMC4wODQxNDMsIDAuMjU1NjI3LCAwLjQzNDUzNiwgMC41NjU4MDQsIDAuNzc4ODczLCAwLjk2NzQ5NywgMS4yMzU2OCIsIFwKLSAgICAgICAgICAiMC4wOTIyNywgMC4yNjQ5ODIsIDAuNDQxMjU5LCAwLjU3MDMwOSwgMC43ODEyNjcsIDAuOTY4MDc4LCAxLjIzNzYzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTgzNiwgMC4wMTgzOSwgMC4wMTgzOTQsIDAuMDE4MzkzLCAwLjAxODM5NCwgMC4wMTgzOTYsIDAuMDE4Mzk0IiwgXAotICAgICAgICAgICIwLjAxODI3LCAwLjAxODMwNiwgMC4wMTgzMTEsIDAuMDE4MzE4LCAwLjAxODMyMSwgMC4wMTgzMjMsIDAuMDE4MzI0IiwgXAotICAgICAgICAgICIwLjAxODUyOCwgMC4wMTg0MjYsIDAuMDE4MzksIDAuMDE4MzcyLCAwLjAxODMzLCAwLjAxODM1MSwgMC4wMTgzNDQiLCBcCi0gICAgICAgICAgIjAuMDE5MDI4LCAwLjAxODcxMiwgMC4wMTg1NzUsIDAuMDE4NTI1LCAwLjAxODQ4LCAwLjAxODQ1MywgMC4wMTg0MjciLCBcCi0gICAgICAgICAgIjAuMDE5NzU0LCAwLjAxOTAxMiwgMC4wMTg3NiwgMC4wMTg2NzEsIDAuMDE4NTk0LCAwLjAxODU0NiwgMC4wMTg0OTkiLCBcCi0gICAgICAgICAgIjAuMDIwOTYyLCAwLjAxOTYyNCwgMC4wMTkxNTYsIDAuMDE4OTksIDAuMDE4ODI5LCAwLjAxODc0NSwgMC4wMTg2NzYiLCBcCi0gICAgICAgICAgIjAuMDIyMTUsIDAuMDIwMzU0LCAwLjAxOTYxOSwgMC4wMTkzNzgsIDAuMDE5MTMxLCAwLjAxODk5OSwgMC4wMTg4NzQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjU4NCwgMC4wMDI3ODIsIDAuMDAyODA4LCAwLjAwMjgxNywgMC4wMDI4MjQsIDAuMDAyODI4LCAwLjAwMjgzMSIsIFwKLSAgICAgICAgICAiMC4wMDIxMzYsIDAuMDAyNTc2LCAwLjAwMjY4MSwgMC4wMDI3MTcsIDAuMDAyNzUsIDAuMDAyNzY4LCAwLjAwMjc4NCIsIFwKLSAgICAgICAgICAiMC4wMDIwNDksIDAuMDAyNDIxLCAwLjAwMjU2NSwgMC4wMDI2MiwgMC4wMDI2NzUsIDAuMDAyNzA4LCAwLjAwMjczMiIsIFwKLSAgICAgICAgICAiMC4wMDIxODgsIDAuMDAyMzc4LCAwLjAwMjUxMiwgMC4wMDI1NywgMC4wMDI2MywgMC4wMDI2NjUsIDAuMDAyNjk5IiwgXAotICAgICAgICAgICIwLjAwMjQ4LCAwLjAwMjQyOSwgMC4wMDI1MiwgMC4wMDI1NjcsIDAuMDAyNjIyLCAwLjAwMjY1NSwgMC4wMDI2ODgiLCBcCi0gICAgICAgICAgIjAuMDAzMjE3LCAwLjAwMjY4NiwgMC4wMDI2NTEsIDAuMDAyNjU5LCAwLjAwMjY4MiwgMC4wMDI2OTksIDAuMDAyNzE5IiwgXAotICAgICAgICAgICIwLjAwNDAzOCwgMC4wMDMwNSwgMC4wMDI4NjQsIDAuMDAyODM0LCAwLjAwMjgwNiwgMC4wMDI3OTgsIDAuMDAyNzk2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTUzMDgsIDAuMDE1MzgsIDAuMDE1Mzg4LCAwLjAxNTM5MSwgMC4wMTUzOTMsIDAuMDE1MzkzLCAwLjAxNTM5NCIsIFwKLSAgICAgICAgICAiMC4wMTUyMjksIDAuMDE1MzQ0LCAwLjAxNTM2NiwgMC4wMTUzNzUsIDAuMDE1MzgyLCAwLjAxNTM4NiwgMC4wMTUzOSIsIFwKLSAgICAgICAgICAiMC4wMTU0OTEsIDAuMDE1NTE2LCAwLjAxNTQ3NiwgMC4wMTU0NjMsIDAuMDE1NDMsIDAuMDE1NDQsIDAuMDE1NDM0IiwgXAotICAgICAgICAgICIwLjAxNTkzLCAwLjAxNTU3NCwgMC4wMTU2MzIsIDAuMDE1NTg4LCAwLjAxNTU0NCwgMC4wMTU1MjQsIDAuMDE1NTAyIiwgXAotICAgICAgICAgICIwLjAxNjYzNSwgMC4wMTU3ODcsIDAuMDE1ODQsIDAuMDE1NzQ4LCAwLjAxNTY2OCwgMC4wMTU2MjEsIDAuMDE1NTk0IiwgXAotICAgICAgICAgICIwLjAxNzcxNCwgMC4wMTYzMTIsIDAuMDE2MjM2LCAwLjAxNjA3NiwgMC4wMTU5MiwgMC4wMTU4NDMsIDAuMDE1NzYzIiwgXAotICAgICAgICAgICIwLjAxODk0NSwgMC4wMTY5NzUsIDAuMDE2NjYsIDAuMDE2NDM1LCAwLjAxNjE5MSwgMC4wMTYwNjQsIDAuMDE1OTQ3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI1NzYsIDAuMDAyNzY5LCAwLjAwMjc5NiwgMC4wMDI4MDQsIDAuMDAyODExLCAwLjAwMjgxNSwgMC4wMDI4MTgiLCBcCi0gICAgICAgICAgIjAuMDAyMTUxLCAwLjAwMjU3LCAwLjAwMjY3MiwgMC4wMDI3MDYsIDAuMDAyNzM4LCAwLjAwMjc1NiwgMC4wMDI3NzIiLCBcCi0gICAgICAgICAgIjAuMDAyMTU3LCAwLjAwMjQ0NSwgMC4wMDI1NzMsIDAuMDAyNjI0LCAwLjAwMjY3MywgMC4wMDI3MDEsIDAuMDAyNzI2IiwgXAotICAgICAgICAgICIwLjAwMjQzNSwgMC4wMDI0NDgsIDAuMDAyNTQ4LCAwLjAwMjU5NSwgMC4wMDI2NDUsIDAuMDAyNjc1LCAwLjAwMjcwNCIsIFwKLSAgICAgICAgICAiMC4wMDI4NTksIDAuMDAyNTUzLCAwLjAwMjU4OSwgMC4wMDI2MTgsIDAuMDAyNjU1LCAwLjAwMjY4LCAwLjAwMjcwNSIsIFwKLSAgICAgICAgICAiMC4wMDM3NDQsIDAuMDAyODgxLCAwLjAwMjc3NywgMC4wMDI3NTMsIDAuMDAyNzUsIDAuMDAyNzUyLCAwLjAwMjc1OCIsIFwKLSAgICAgICAgICAiMC4wMDQ2NDgsIDAuMDAzMjc5LCAwLjAwMzAzMiwgMC4wMDI5NTIsIDAuMDAyODkyLCAwLjAwMjg2MywgMC4wMDI4NDUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMjA5OCwgMC4wMTIyNTMsIDAuMDEyMjc0LCAwLjAxMjI3NiwgMC4wMTIyODUsIDAuMDEyMjg4LCAwLjAxMjI5IiwgXAotICAgICAgICAgICIwLjAxMTk4LCAwLjAxMjI0LCAwLjAxMjI5MSwgMC4wMTIzMDksIDAuMDEyMzI0LCAwLjAxMjMzNywgMC4wMTIzNDQiLCBcCi0gICAgICAgICAgIjAuMDEyMTk2LCAwLjAxMjMxNSwgMC4wMTIzMzksIDAuMDEyMzM1LCAwLjAxMjM1NiwgMC4wMTIzNTYsIDAuMDEyMzYzIiwgXAotICAgICAgICAgICIwLjAxMjcyMiwgMC4wMTI2MzYsIDAuMDEyNTUyLCAwLjAxMjUzNywgMC4wMTI0ODQsIDAuMDEyNDY4LCAwLjAxMjQ0NiIsIFwKLSAgICAgICAgICAiMC4wMTMzNzgsIDAuMDEyNzE5LCAwLjAxMjU3OSwgMC4wMTI1NDMsIDAuMDEyNDk0LCAwLjAxMjQ5MywgMC4wMTI0NjMiLCBcCi0gICAgICAgICAgIjAuMDE0NTcxLCAwLjAxMzM5MSwgMC4wMTMwMTIsIDAuMDEyODg2LCAwLjAxMjc3NCwgMC4wMTI3MTIsIDAuMDEyNjQzIiwgXAotICAgICAgICAgICIwLjAxNTU5NywgMC4wMTQwMzQsIDAuMDEzNDM5LCAwLjAxMzIzOSwgMC4wMTMwNDEsIDAuMDEyOTMxLCAwLjAxMjg0MSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyNTIxLCAwLjAwMjczNCwgMC4wMDI3NjMsIDAuMDAyNzcyLCAwLjAwMjc3OSwgMC4wMDI3ODQsIDAuMDAyNzg3IiwgXAotICAgICAgICAgICIwLjAwMjI2NiwgMC4wMDI1NywgMC4wMDI2NTcsIDAuMDAyNjg4LCAwLjAwMjcxNywgMC4wMDI3MzIsIDAuMDAyNzQ3IiwgXAotICAgICAgICAgICIwLjAwMjU4NiwgMC4wMDI1NzEsIDAuMDAyNjM1LCAwLjAwMjY2NCwgMC4wMDI2OTUsIDAuMDAyNzEzLCAwLjAwMjczIiwgXAotICAgICAgICAgICIwLjAwMzM1MywgMC4wMDI3ODksIDAuMDAyNzUsIDAuMDAyNzQ4LCAwLjAwMjc1MiwgMC4wMDI3NTcsIDAuMDAyNzYzIiwgXAotICAgICAgICAgICIwLjAwNDA3OCwgMC4wMDI5MjcsIDAuMDAyODI1LCAwLjAwMjc5NywgMC4wMDI3OCwgMC4wMDI3NzYsIDAuMDAyNzc1IiwgXAotICAgICAgICAgICIwLjAwNDk1MiwgMC4wMDM1OSwgMC4wMDMyNzMsIDAuMDAzMTU4LCAwLjAwMzA1MiwgMC4wMDMwMDEsIDAuMDAyOTU0IiwgXAotICAgICAgICAgICIwLjAwNjU0MSwgMC4wMDQ0OSwgMC4wMDM4OTQsIDAuMDAzMzk3LCAwLjAwMzIzMSwgMC4wMDMxNDQsIDAuMDAzMDYxIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogTkFORDNYTCAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChOQU5EM1hMKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMTc1MDcxOwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2MDg2MzE7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjA4NjMxOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDYwNzc1NTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyOTYsIDAuMDAwMjk2LCAwLjAwMDI5NiwgMC4wMDAyOTYsIDAuMDAwMjk2LCAwLjAwMDI5NiwgMC4wMDAyOTYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyOTcsIDAuMDAwMjk3LCAwLjAwMDI5NywgMC4wMDAyOTcsIDAuMDAwMjk3LCAwLjAwMDI5NywgMC4wMDAyOTciKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYzOTg4NzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2Mzk4ODc7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjM5MzIyOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDI5NiwgMC4wMDAyOTYsIDAuMDAwMjk2LCAwLjAwMDI5NiwgMC4wMDAyOTYsIDAuMDAwMjk2LCAwLjAwMDI5NiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDI5NywgMC4wMDAyOTgsIDAuMDAwMjk3LCAwLjAwMDI5OCwgMC4wMDAyOTgsIDAuMDAwMjk4LCAwLjAwMDI5OCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQykgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjM4Mjg1OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYzODE4MzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2MzgyODU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMTU0LCAwLjAwMDE1NCwgMC4wMDAxNTQsIDAuMDAwMTU0LCAwLjAwMDE1NCwgMC4wMDAxNTQsIDAuMDAwMTU0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzM3LCAwLjAwMDMzOCwgMC4wMDAzMzcsIDAuMDAwMzM4LCAwLjAwMDMzOCwgMC4wMDAzMzgsIDAuMDAwMzM4Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMDg5NTgzMjsKLSAgICBmdW5jdGlvbiA6ICIoISgoQSBCKSBDKSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2MjQxMywgMC4wNzI5MzQsIDAuMTY3ODQ1LCAwLjMyNTYyOSwgMC40ODM3MjEsIDAuODUyMzAzLCAxLjA2MjY3IiwgXAotICAgICAgICAgICIwLjA3MDI0NywgMC4wODA4MDQsIDAuMTc1NTY3LCAwLjMzMzUyMSwgMC40OTE2ODcsIDAuODYwMTUsIDEuMDcwMDciLCBcCi0gICAgICAgICAgIjAuMDgwMywgMC4wOTA4MjMsIDAuMTg1NjI5LCAwLjM0MzM5MSwgMC41MDEzOTQsIDAuODcwMDAxLCAxLjA4MTMyIiwgXAotICAgICAgICAgICIwLjA5MDYxMSwgMC4xMDEwNjgsIDAuMTk1NjY4LCAwLjM1MzY3NiwgMC41MTE1MDcsIDAuODc5NjQ0LCAxLjA5MDgyIiwgXAotICAgICAgICAgICIwLjEwMTA0OCwgMC4xMTE0MiwgMC4yMDU4OTUsIDAuMzYzNzQyLCAwLjUyMTcsIDAuODkwMzk1LCAxLjEwMDMiLCBcCi0gICAgICAgICAgIjAuMTE1Njk1LCAwLjEyNzQyNCwgMC4yMjIxNSwgMC4zNzk4MzgsIDAuNTM3NzI5LCAwLjkwNjA1NCwgMS4xMTY0NiIsIFwKLSAgICAgICAgICAiMC4xMjYyODIsIDAuMTM5MzczLCAwLjIzNjU0NSwgMC4zOTQwNjcsIDAuNTUyMDU4LCAwLjkyMDEyNSwgMS4xMzA2NyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMjM0NzMsIDAuMTQ1NjA3LCAwLjM0NTE1MSwgMC42NzcwNzMsIDEuMDA5MzYsIDEuNzg0MzYsIDIuMjI3MjEiLCBcCi0gICAgICAgICAgIjAuMTIzNzMyLCAwLjE0NTcsIDAuMzQ1MDA1LCAwLjY3NzIxNSwgMS4wMDk1MSwgMS43ODQzOCwgMi4yMjY0OCIsIFwKLSAgICAgICAgICAiMC4xMjc4OTYsIDAuMTQ4OTY1LCAwLjM0NTAzOCwgMC42NzcwOTgsIDEuMDA5NTQsIDEuNzg0NjEsIDIuMjI4MTciLCBcCi0gICAgICAgICAgIjAuMTM0NjU1LCAwLjE1NDkzMSwgMC4zNDYyOSwgMC42NzcyMDUsIDEuMDA5NSwgMS43ODQ5MywgMi4yMjczNiIsIFwKLSAgICAgICAgICAiMC4xNDI2ODksIDAuMTYyMzE4LCAwLjM0OTU3MywgMC42NzcwNjQsIDEuMDA5MzgsIDEuNzg0OTEsIDIuMjI2OCIsIFwKLSAgICAgICAgICAiMC4xNTcxMzEsIDAuMTc2MDg4LCAwLjM1NzYxMywgMC42NzkyODMsIDEuMDA5NSwgMS43ODQsIDIuMjI3MDIiLCBcCi0gICAgICAgICAgIjAuMTcwODIsIDAuMTg5MTM3LCAwLjM2NjU2MywgMC42ODI4NzIsIDEuMDA5ODMsIDEuNzg1MjMsIDIuMjI2NzciKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTM4ODE5LCAwLjE2MjkxNywgMC4zODAzNjQsIDAuNzQyNjg5LCAxLjEwMzk0LCAxLjk0ODU2LCAyLjQzMDUiLCBcCi0gICAgICAgICAgIjAuMTQzOTQ2LCAwLjE2ODE1OSwgMC4zODUzMDIsIDAuNzQ4MDAxLCAxLjExMDAzLCAxLjk1NDg4LCAyLjQzNjkzIiwgXAotICAgICAgICAgICIwLjE0OTQ3NSwgMC4xNzM2NTMsIDAuMzkwOTg3LCAwLjc1MzU4MSwgMS4xMTUwOCwgMS45NTk1NywgMi40NDE5MSIsIFwKLSAgICAgICAgICAiMC4xNTUwOTcsIDAuMTc5MjM4LCAwLjM5Njc5NCwgMC43NTg0ODgsIDEuMTIwMjksIDEuOTY2MjIsIDIuNDQ4MTUiLCBcCi0gICAgICAgICAgIjAuMTYwODYsIDAuMTg1MDQ2LCAwLjQwMjMwMiwgMC43NjQ1NDUsIDEuMTI2MjUsIDEuOTcxMDMsIDIuNDUzNzMiLCBcCi0gICAgICAgICAgIjAuMTcwNDAxLCAwLjE5NDQ1MSwgMC40MTE0OSwgMC43NzM3MTEsIDEuMTM1NjIsIDEuOTgxNDQsIDIuNDYxODUiLCBcCi0gICAgICAgICAgIjAuMTc4NDU5LCAwLjIwMjUwNywgMC40MTk3NDYsIDAuNzgxNjgzLCAxLjE0MzYxLCAxLjk4NzczLCAyLjQ3MTQ2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI3MTc5NSwgMC4zMjE0MjgsIDAuNzY4NTA1LCAxLjUxNDA4LCAyLjI2Mzg5LCAzLjk5NzUxLCA0Ljk5OTIiLCBcCi0gICAgICAgICAgIjAuMjcxNjgzLCAwLjMyMTMyNywgMC43Njg5MTEsIDEuNTE0MTYsIDIuMjU5MTQsIDMuOTk4MTgsIDQuOTkxNTgiLCBcCi0gICAgICAgICAgIjAuMjcxOTU4LCAwLjMyMTQ4NCwgMC43Njk2OTUsIDEuNTEzODQsIDIuMjU4NzgsIDQuMDA2NDcsIDUuMDAxNjEiLCBcCi0gICAgICAgICAgIjAuMjczMjM4LCAwLjMyMjg2NywgMC43Njg2MTksIDEuNTE2MDIsIDIuMjYyMzksIDMuOTk4NSwgNC45OTI5NyIsIFwKLSAgICAgICAgICAiMC4yNzYwMTYsIDAuMzI0MjQ2LCAwLjc2ODA1NCwgMS41MTM3MiwgMi4yNjM1NSwgMy45OTk3OCwgNC45OTE1NSIsIFwKLSAgICAgICAgICAiMC4yODA3MTIsIDAuMzI4NjksIDAuNzcwNTUsIDEuNTEzNzgsIDIuMjU5MDcsIDMuOTk4NTYsIDQuOTkzMjIiLCBcCi0gICAgICAgICAgIjAuMjg1ODk2LCAwLjMzMzM5OSwgMC43NzEwMjYsIDEuNTE0MSwgMi4yNTk3MSwgNC4wMDU5OSwgNC45OTE3NiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjEyNjEsIDAuMDcxNzk0LCAwLjE2NjU3NSwgMC4zMjQ3MDYsIDAuNDgyODAzLCAwLjg1MDg1MSwgMS4wNjI0NSIsIFwKLSAgICAgICAgICAiMC4wNjkyNzQsIDAuMDc5NzgxLCAwLjE3NDU2NywgMC4zMzIzNjQsIDAuNDkwNjQsIDAuODU5MiwgMS4wNjg5NSIsIFwKLSAgICAgICAgICAiMC4wNzkwODYsIDAuMDg5NTc3LCAwLjE4NDM4LCAwLjM0MjIwNCwgMC40OTk5NDEsIDAuODY4MjgyLCAxLjA3OTczIiwgXAotICAgICAgICAgICIwLjA4OTMyLCAwLjA5OTc2NCwgMC4xOTQzMDMsIDAuMzUyMzU2LCAwLjUwOTg2NiwgMC44NzgyMDQsIDEuMDg5MjkiLCBcCi0gICAgICAgICAgIjAuMDk5NywgMC4xMTAxMTksIDAuMjA0NDU5LCAwLjM2MTU1OCwgMC41MjAxMDMsIDAuODg4ODU3LCAxLjA5ODc5IiwgXAotICAgICAgICAgICIwLjExNDM1NSwgMC4xMjYwODEsIDAuMjIwODQ0LCAwLjM3ODUyOCwgMC41MzYzNiwgMC45MDQ2ODQsIDEuMTE1MDciLCBcCi0gICAgICAgICAgIjAuMTI0ODQzLCAwLjEzNzkzNiwgMC4yMzUyOSwgMC4zOTI3NTIsIDAuNTUwNzMyLCAwLjkxODgzMywgMS4xMjkzNiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMjE5MzYsIDAuMTQ0MDY0LCAwLjM0MzQyMywgMC42NzU2MjMsIDEuMDA4MDQsIDEuNzgyNTYsIDIuMjI1OTkiLCBcCi0gICAgICAgICAgIjAuMTIyMTcyLCAwLjE0NDEwNywgMC4zNDMzNjEsIDAuNjc1MzM0LCAxLjAwNzgzLCAxLjc4MjU1LCAyLjIyNjIzIiwgXAotICAgICAgICAgICIwLjEyNjQ2NywgMC4xNDc0NDYsIDAuMzQzMzU3LCAwLjY3NTU1NCwgMS4wMDc0NywgMS43ODMzNCwgMi4yMjU4OSIsIFwKLSAgICAgICAgICAiMC4xMzM0MTEsIDAuMTUzNjMyLCAwLjM0NDYzNSwgMC42NzU1MDYsIDEuMDA4MSwgMS43ODQwNCwgMi4yMjU2MSIsIFwKLSAgICAgICAgICAiMC4xNDE2MTksIDAuMTYxMjMsIDAuMzQ4MTkyLCAwLjY3NTYyNywgMS4wMDczNCwgMS43ODI0OSwgMi4yMjQxOSIsIFwKLSAgICAgICAgICAiMC4xNTYwOTEsIDAuMTc0ODk0LCAwLjM1NjA5OCwgMC42Nzc0NiwgMS4wMDc3OSwgMS43ODE5MywgMi4yMjQ3NyIsIFwKLSAgICAgICAgICAiMC4xNjk0MzcsIDAuMTg4MDQyLCAwLjM2NTA4OSwgMC42ODE0MTQsIDEuMDA4LCAxLjc4NDE1LCAyLjIyNDk1Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEzNzMwMSwgMC4xNjE0MzMsIDAuMzc4NTM2LCAwLjc0MDMwMywgMS4xMDIsIDEuOTQ2MjksIDIuNDI4NzgiLCBcCi0gICAgICAgICAgIjAuMTQzNTIzLCAwLjE2NzY3NSwgMC4zODUxMTUsIDAuNzQ2OTc4LCAxLjEwODk2LCAxLjk1MzYzLCAyLjQzNjExIiwgXAotICAgICAgICAgICIwLjE1MTI2OSwgMC4xNzUwODMsIDAuMzkyNzczLCAwLjc1NTE0NywgMS4xMTY4NiwgMS45NjEzNCwgMi40NDQyIiwgXAotICAgICAgICAgICIwLjE1OTA5OSwgMC4xODM0MDcsIDAuNDAxMDA5LCAwLjc2MjY5LCAxLjEyNDMzLCAxLjk3MDY1LCAyLjQ1MjQ0IiwgXAotICAgICAgICAgICIwLjE2NzIzOSwgMC4xOTEzMjEsIDAuNDA4NjMsIDAuNzcwNjI0LCAxLjEzMjcsIDEuOTc3ODIsIDIuNDYwNDgiLCBcCi0gICAgICAgICAgIjAuMTgwMjA1LCAwLjIwNDU4MSwgMC40MjEzMjksIDAuNzgzMzU1LCAxLjE0NTQ0LCAxLjk4OTUyLCAyLjQ3Mjc1IiwgXAotICAgICAgICAgICIwLjE5MTY1MywgMC4yMTU1OCwgMC40MzIzNjQsIDAuNzk0NzcyLCAxLjE1NjY4LCAyLjAwMTc3LCAyLjQ4MjY1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI3MjA3NiwgMC4zMjE1MjMsIDAuNzY5NjUsIDEuNTE0NjksIDIuMjU5MjIsIDMuOTk4OTcsIDQuOTkzMzQiLCBcCi0gICAgICAgICAgIjAuMjcxNzQ2LCAwLjMyMTg0NywgMC43Njg0ODQsIDEuNTE0MDUsIDIuMjU4NzksIDMuOTk4MDQsIDQuOTkxNjUiLCBcCi0gICAgICAgICAgIjAuMjcyMjc4LCAwLjMyMTg0MywgMC43Njk2NzQsIDEuNTEzNjgsIDIuMjYzODUsIDQuMDA2NDMsIDQuOTkzNjIiLCBcCi0gICAgICAgICAgIjAuMjc0MDY5LCAwLjMyMzA5NCwgMC43Njg0NjQsIDEuNTE2ODEsIDIuMjYyMzcsIDMuOTk4NTEsIDQuOTkxNyIsIFwKLSAgICAgICAgICAiMC4yNzcwNDEsIDAuMzI1NjM2LCAwLjc2ODg3OCwgMS41MTYxMiwgMi4yNTk5MywgMy45OTc2NiwgNC45OTIxMSIsIFwKLSAgICAgICAgICAiMC4yODQxMDksIDAuMzMxNjcxLCAwLjc3MDM5NSwgMS41MTQxMywgMi4yNTg4NiwgNC4wMDU5MiwgNC45OTM1MiIsIFwKLSAgICAgICAgICAiMC4yOTEzMDgsIDAuMzM3NzU5LCAwLjc3MjM5MiwgMS41MTM1MywgMi4yNTg5OSwgMy45OTgxMSwgNC45OTQ2NyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjAwMTEsIDAuMDcwNTQ5LCAwLjE2NTI1NywgMC4zMjMyMDEsIDAuNDgxMTYyLCAwLjg0OTY1MywgMS4wNjAxNiIsIFwKLSAgICAgICAgICAiMC4wNjc4OTIsIDAuMDc4NDUxLCAwLjE3MzE5NSwgMC4zMzExNjIsIDAuNDg5MTUsIDAuODU3NTY4LCAxLjA2ODY3IiwgXAotICAgICAgICAgICIwLjA3Nzk1LCAwLjA4ODQ0NSwgMC4xODMyMiwgMC4zNDA5NjgsIDAuNDk4ODIxLCAwLjg2NzE3LCAxLjA3ODYxIiwgXAotICAgICAgICAgICIwLjA4ODI1NiwgMC4wOTg2OTYsIDAuMTkzMzEsIDAuMzUxMzA3LCAwLjUwODg2MSwgMC44NzcxODgsIDEuMDg4MjYiLCBcCi0gICAgICAgICAgIjAuMDk4NTkyLCAwLjEwOTAxNywgMC4yMDM0OSwgMC4zNjA3OSwgMC41MTkwOTksIDAuODg3OTI1LCAxLjA5NzgzIiwgXAotICAgICAgICAgICIwLjExMjkzOCwgMC4xMjQ3NDcsIDAuMjE5Njk3LCAwLjM3NzQ2MywgMC41MzUyMzksIDAuOTAzNTY1LCAxLjExMzk2IiwgXAotICAgICAgICAgICIwLjEyMzA0NywgMC4xMzYzNTksIDAuMjM0MDgsIDAuMzkxNjMsIDAuNTQ5NTM3LCAwLjkxNzY1LCAxLjEyODE3Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEyMDM5OCwgMC4xNDIzNDgsIDAuMzQxNTg4LCAwLjY3NDE0MSwgMS4wMDU5NSwgMS43ODA5MywgMi4yMjQ2NSIsIFwKLSAgICAgICAgICAiMC4xMjA1OTYsIDAuMTQyNDcxLCAwLjM0MTY5OSwgMC42NzM4NDEsIDEuMDA1OTYsIDEuNzgwOTYsIDIuMjIzMzkiLCBcCi0gICAgICAgICAgIjAuMTI0OTczLCAwLjE0NTkwMywgMC4zNDE3ODEsIDAuNjczNDY5LCAxLjAwNTQxLCAxLjc4MjcyLCAyLjIyMzQiLCBcCi0gICAgICAgICAgIjAuMTMxNzkxLCAwLjE1MjAwMSwgMC4zNDI4NzEsIDAuNjczODI1LCAxLjAwNjE5LCAxLjc4MzA5LCAyLjIyMzc2IiwgXAotICAgICAgICAgICIwLjEzOTg2OSwgMC4xNTk0MiwgMC4zNDY3NjEsIDAuNjc0NjYzLCAxLjAwNTcsIDEuNzgxMzMsIDIuMjIyNjMiLCBcCi0gICAgICAgICAgIjAuMTU0NjQyLCAwLjE3MzM4LCAwLjM1NDgxNywgMC42NzY2MTEsIDEuMDA2NzYsIDEuNzgwMTEsIDIuMjIyNTMiLCBcCi0gICAgICAgICAgIjAuMTY4NDg4LCAwLjE4NzQ5MSwgMC4zNjM1NjIsIDAuNjgwNjMsIDEuMDA1ODgsIDEuNzgyNjksIDIuMjIyNyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMzQ0MTIsIDAuMTU4NTQzLCAwLjM3NTgxNywgMC43Mzc0MDIsIDEuMTAwMzIsIDEuOTQzMTgsIDIuNDI1NTkiLCBcCi0gICAgICAgICAgIjAuMTQxMzQxLCAwLjE2NTU0NCwgMC4zODI5MzYsIDAuNzQ0Nzc4LCAxLjEwNjY4LCAxLjk1MTE5LCAyLjQzNDcxIiwgXAotICAgICAgICAgICIwLjE1MDEzNSwgMC4xNzQxNjYsIDAuMzkxNDQxLCAwLjc1MzI0MywgMS4xMTQ5NSwgMS45NTk4NSwgMi40NDI4MSIsIFwKLSAgICAgICAgICAiMC4xNTkxMzgsIDAuMTgzMjk2LCAwLjQwMDM3MSwgMC43NjIxMjUsIDEuMTIzODQsIDEuOTY4NjgsIDIuNDUyMTEiLCBcCi0gICAgICAgICAgIjAuMTY4MzgzLCAwLjE5MjQzNSwgMC40MDk1MDIsIDAuNzcxMDIsIDEuMTMyOTEsIDEuOTc4MjQsIDIuNDU5MTUiLCBcCi0gICAgICAgICAgIjAuMTgzNDYyLCAwLjIwNzM2MiwgMC40MjM3MjgsIDAuNzg1MjkzLCAxLjE0Njg3LCAxLjk5MTA0LCAyLjQ3NDg4IiwgXAotICAgICAgICAgICIwLjE5Njc4LCAwLjIyMDY1NCwgMC40MzY0NDUsIDAuNzk3NzQ1LCAxLjE2MDIsIDIuMDAzMzgsIDIuNDg1ODIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjcyMDczLCAwLjMyMTQxMywgMC43Njg2NDcsIDEuNTE0MTEsIDIuMjU5MTIsIDQuMDAzODcsIDQuOTk1NjEiLCBcCi0gICAgICAgICAgIjAuMjcxNzI2LCAwLjMyMTM2NywgMC43Njg0NDUsIDEuNTE0NTIsIDIuMjYzOTcsIDQuMDA2NzgsIDQuOTkyMTUiLCBcCi0gICAgICAgICAgIjAuMjcxOTcsIDAuMzIxMjkxLCAwLjc2OTY5LCAxLjUxNTQzLCAyLjI2MjM3LCA0LjAwNjM5LCA0Ljk5Mjk2IiwgXAotICAgICAgICAgICIwLjI3NDY4MywgMC4zMjMzNjcsIDAuNzY4NTgyLCAxLjUxNjEyLCAyLjI2MjQ1LCAzLjk5OTY0LCA0Ljk5MTM2IiwgXAotICAgICAgICAgICIwLjI3ODcxNiwgMC4zMjY3OTQsIDAuNzY4NjMsIDEuNTE2ODEsIDIuMjU5ODMsIDMuOTk3NTksIDQuOTkzOTIiLCBcCi0gICAgICAgICAgIjAuMjg3ODM3LCAwLjMzNDU2NCwgMC43NjkzNTcsIDEuNTE2ODEsIDIuMjYyNDUsIDQuMDA1ODYsIDQuOTkxNjkiLCBcCi0gICAgICAgICAgIjAuMjk3MDcxLCAwLjM0MzA0NiwgMC43NzMwODQsIDEuNTE1OTksIDIuMjU4ODEsIDQuMDAwNTYsIDQuOTk4ODgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDE5MTIsIDAuMDAxOTEyLCAwLjAwMTkxMiwgMC4wMDE5MTIsIDAuMDAxOTEyLCAwLjAwMTkxMSwgMC4wMDE5MTIiLCBcCi0gICAgICAgICAgIjAuMDAxOTA5LCAwLjAwMTkwOSwgMC4wMDE5MDcsIDAuMDAxOTA3LCAwLjAwMTkwNywgMC4wMDE5MDYsIDAuMDAxOTA2IiwgXAotICAgICAgICAgICIwLjAwMTkyNiwgMC4wMDE5MjQsIDAuMDAxOTE1LCAwLjAwMTkwOSwgMC4wMDE5MDcsIDAuMDAxOTA1LCAwLjAwMTkwNSIsIFwKLSAgICAgICAgICAiMC4wMDE5NTMsIDAuMDAxOTQ3LCAwLjAwMTkyNiwgMC4wMDE5MTcsIDAuMDAxOTExLCAwLjAwMTkwNywgMC4wMDE5MDYiLCBcCi0gICAgICAgICAgIjAuMDAxOTg3LCAwLjAwMTk3OCwgMC4wMDE5NCwgMC4wMDE5MjQsIDAuMDAxOTIsIDAuMDAxOTExLCAwLjAwMTkwOSIsIFwKLSAgICAgICAgICAiMC4wMDIwNjcsIDAuMDAyMDQ4LCAwLjAwMTk3NywgMC4wMDE5NDYsIDAuMDAxOTM1LCAwLjAwMTkyMywgMC4wMDE5MTYiLCBcCi0gICAgICAgICAgIjAuMDAyMTU3LCAwLjAwMjEyMywgMC4wMDIwMTYsIDAuMDAxOTY5LCAwLjAwMTk0OSwgMC4wMDE5MzIsIDAuMDAxOTI3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwNDEsIDAuMDAwNDExLCAwLjAwMDQxMywgMC4wMDA0MTQsIDAuMDAwNDE0LCAwLjAwMDQxNCwgMC4wMDA0MTUiLCBcCi0gICAgICAgICAgIjAuMDAwMzk0LCAwLjAwMDM5NiwgMC4wMDA0MDcsIDAuMDAwNDExLCAwLjAwMDQxMiwgMC4wMDA0MTMsIDAuMDAwNDE0IiwgXAotICAgICAgICAgICIwLjAwMDM4MywgMC4wMDAzODYsIDAuMDAwNDAxLCAwLjAwMDQwNywgMC4wMDA0MSwgMC4wMDA0MTIsIDAuMDAwNDEyIiwgXAotICAgICAgICAgICIwLjAwMDM4NSwgMC4wMDAzODcsIDAuMDAwMzk5LCAwLjAwMDQwNiwgMC4wMDA0MDksIDAuMDAwNDExLCAwLjAwMDQxMiIsIFwKLSAgICAgICAgICAiMC4wMDAzOTcsIDAuMDAwMzk4LCAwLjAwMDQwNCwgMC4wMDA0MDgsIDAuMDAwNDEsIDAuMDAwNDEyLCAwLjAwMDQxMiIsIFwKLSAgICAgICAgICAiMC4wMDA0MzgsIDAuMDAwNDMzLCAwLjAwMDQxOSwgMC4wMDA0MTYsIDAuMDAwNDE1LCAwLjAwMDQxNSwgMC4wMDA0MTUiLCBcCi0gICAgICAgICAgIjAuMDAwNDg2LCAwLjAwMDQ3NiwgMC4wMDA0NDIsIDAuMDAwNDI4LCAwLjAwMDQyNCwgMC4wMDA0MiwgMC4wMDA0MTkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDE2MDUsIDAuMDAxNjA1LCAwLjAwMTYwNiwgMC4wMDE2MDYsIDAuMDAxNjA2LCAwLjAwMTYwNiwgMC4wMDE2MDYiLCBcCi0gICAgICAgICAgIjAuMDAxNjAzLCAwLjAwMTYwMywgMC4wMDE2MDUsIDAuMDAxNjA2LCAwLjAwMTYwNiwgMC4wMDE2MDYsIDAuMDAxNjA3IiwgXAotICAgICAgICAgICIwLjAwMTYyMywgMC4wMDE2MjEsIDAuMDAxNjE0LCAwLjAwMTYxLCAwLjAwMTYwOSwgMC4wMDE2MDcsIDAuMDAxNjA3IiwgXAotICAgICAgICAgICIwLjAwMTY1MywgMC4wMDE2NDcsIDAuMDAxNjI3LCAwLjAwMTYxOCwgMC4wMDE2MTQsIDAuMDAxNjEsIDAuMDAxNjA5IiwgXAotICAgICAgICAgICIwLjAwMTY4OCwgMC4wMDE2NzgsIDAuMDAxNjQyLCAwLjAwMTYyNCwgMC4wMDE2MjEsIDAuMDAxNjE0LCAwLjAwMTYxMiIsIFwKLSAgICAgICAgICAiMC4wMDE3NTgsIDAuMDAxNzQsIDAuMDAxNjc0LCAwLjAwMTY0NiwgMC4wMDE2MzUsIDAuMDAxNjIzLCAwLjAwMTYxOCIsIFwKLSAgICAgICAgICAiMC4wMDE4NDMsIDAuMDAxODEyLCAwLjAwMTcxLCAwLjAwMTY2NSwgMC4wMDE2NSwgMC4wMDE2MzMsIDAuMDAxNjI4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwNDEsIDAuMDAwNDExLCAwLjAwMDQxMywgMC4wMDA0MTQsIDAuMDAwNDE0LCAwLjAwMDQxNCwgMC4wMDA0MTUiLCBcCi0gICAgICAgICAgIjAuMDAwMzk0LCAwLjAwMDM5NywgMC4wMDA0MDcsIDAuMDAwNDExLCAwLjAwMDQxMiwgMC4wMDA0MTMsIDAuMDAwNDE0IiwgXAotICAgICAgICAgICIwLjAwMDM4NywgMC4wMDAzODksIDAuMDAwNDAyLCAwLjAwMDQwOCwgMC4wMDA0MSwgMC4wMDA0MTIsIDAuMDAwNDEzIiwgXAotICAgICAgICAgICIwLjAwMDM5NCwgMC4wMDAzOTUsIDAuMDAwNDAzLCAwLjAwMDQwOCwgMC4wMDA0MSwgMC4wMDA0MTIsIDAuMDAwNDEzIiwgXAotICAgICAgICAgICIwLjAwMDQxMSwgMC4wMDA0MSwgMC4wMDA0MDksIDAuMDAwNDExLCAwLjAwMDQxMiwgMC4wMDA0MTMsIDAuMDAwNDEzIiwgXAotICAgICAgICAgICIwLjAwMDQ1NiwgMC4wMDA0NDksIDAuMDAwNDI2LCAwLjAwMDQxOSwgMC4wMDA0MTgsIDAuMDAwNDE2LCAwLjAwMDQxNiIsIFwKLSAgICAgICAgICAiMC4wMDA1MTQsIDAuMDAwNDk4LCAwLjAwMDQ1MSwgMC4wMDA0MzMsIDAuMDAwNDI3LCAwLjAwMDQyMSwgMC4wMDA0MiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTI5LCAwLjAwMTI5LCAwLjAwMTI5MiwgMC4wMDEyOTMsIDAuMDAxMjkzLCAwLjAwMTI5MywgMC4wMDEyOTMiLCBcCi0gICAgICAgICAgIjAuMDAxMjkzLCAwLjAwMTI5NCwgMC4wMDEyOTcsIDAuMDAxMjk4LCAwLjAwMTI5OCwgMC4wMDEyOTgsIDAuMDAxMjk4IiwgXAotICAgICAgICAgICIwLjAwMTMwNiwgMC4wMDEzMDYsIDAuMDAxMzAzLCAwLjAwMTMwMiwgMC4wMDEzMDIsIDAuMDAxMzAyLCAwLjAwMTMwMiIsIFwKLSAgICAgICAgICAiMC4wMDEzMjksIDAuMDAxMzI1LCAwLjAwMTMxMywgMC4wMDEzMDgsIDAuMDAxMzA1LCAwLjAwMTMwNCwgMC4wMDEzMDQiLCBcCi0gICAgICAgICAgIjAuMDAxMzYsIDAuMDAxMzUzLCAwLjAwMTMyNiwgMC4wMDEzMTYsIDAuMDAxMzExLCAwLjAwMTMwNiwgMC4wMDEzMDUiLCBcCi0gICAgICAgICAgIjAuMDAxNDMzLCAwLjAwMTQxNiwgMC4wMDEzNTksIDAuMDAxMzM1LCAwLjAwMTMyNSwgMC4wMDEzMTUsIDAuMDAxMzEyIiwgXAotICAgICAgICAgICIwLjAwMTUxNCwgMC4wMDE0ODYsIDAuMDAxMzk0LCAwLjAwMTM1NiwgMC4wMDEzNDEsIDAuMDAxMzI1LCAwLjAwMTMyMSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDQwOSwgMC4wMDA0MSwgMC4wMDA0MTMsIDAuMDAwNDE0LCAwLjAwMDQxNCwgMC4wMDA0MTQsIDAuMDAwNDE0IiwgXAotICAgICAgICAgICIwLjAwMDM5OCwgMC4wMDA0LCAwLjAwMDQwOCwgMC4wMDA0MTEsIDAuMDAwNDEyLCAwLjAwMDQxMywgMC4wMDA0MTQiLCBcCi0gICAgICAgICAgIjAuMDAwNDA2LCAwLjAwMDQwNSwgMC4wMDA0MSwgMC4wMDA0MTIsIDAuMDAwNDEzLCAwLjAwMDQxNCwgMC4wMDA0MTQiLCBcCi0gICAgICAgICAgIjAuMDAwNDI2LCAwLjAwMDQyNCwgMC4wMDA0MTcsIDAuMDAwNDE1LCAwLjAwMDQxNSwgMC4wMDA0MTUsIDAuMDAwNDE1IiwgXAotICAgICAgICAgICIwLjAwMDQ2LCAwLjAwMDQ1MywgMC4wMDA0MywgMC4wMDA0MjIsIDAuMDAwNDIsIDAuMDAwNDE4LCAwLjAwMDQxNyIsIFwKLSAgICAgICAgICAiMC4wMDA1MjksIDAuMDAwNTE2LCAwLjAwMDQ2NiwgMC4wMDA0NCwgMC4wMDA0MzIsIDAuMDAwNDI0LCAwLjAwMDQyMyIsIFwKLSAgICAgICAgICAiMC4wMDA1OTksIDAuMDAwNTgsIDAuMDAwNDk5LCAwLjAwMDQ2LCAwLjAwMDQ0NiwgMC4wMDA0MzMsIDAuMDAwNDI5Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBOQU5ENEJCWDIgKgotICogLS0tLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChOQU5ENEJCWDIpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC44NzM0NjY7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEFOKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2NzA5MTc7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjcwOTE3OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDY3MDg0MzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDEwNDUsIDAuMDAxMDQsIDAuMDAxMTA0LCAwLjAwMTE5OSwgMC4wMDEzMTIsIDAuMDAxNTE4LCAwLjAwMTcxMSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjkzOCwgMC4wMDI5NCwgMC4wMDMwMDksIDAuMDAzMTAzLCAwLjAwMzIyMiwgMC4wMDM0NjIsIDAuMDAzNjMxIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCTikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjczNzkyOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDY3Mzc5MjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2NzM3NjM7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxMDIyLCAwLjAwMTAyNywgMC4wMDEwODMsIDAuMDAxMTc2LCAwLjAwMTI4NiwgMC4wMDE0OTUsIDAuMDAxNjg0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzMDQyLCAwLjAwMzA0MiwgMC4wMDMxMDgsIDAuMDAzMTk3LCAwLjAwMzMyLCAwLjAwMzU1MSwgMC4wMDM3NDEiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEMpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTY4MzExOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTY4MzExOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTY3OTY7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxMDQ4LCAwLjAwMTA0OCwgMC4wMDEwNDcsIDAuMDAxMDQ3LCAwLjAwMTA0NywgMC4wMDEwNDcsIDAuMDAxMDQ3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxMTI4LCAwLjAwMTA2NCwgMC4wMDEwNTYsIDAuMDAxMDU1LCAwLjAwMTA1MywgMC4wMDEwNTIsIDAuMDAxMDUxIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihEKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE3Mjg5NDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE3MjgzMzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE3Mjg5NDsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxNDgsIDAuMDAwMTQ2LCAwLjAwMDE0NywgMC4wMDAxNDYsIDAuMDAwMTQ2LCAwLjAwMDE0NiwgMC4wMDAxNDYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDExOTEsIDAuMDAxMTkyLCAwLjAwMTE5MiwgMC4wMDExOTIsIDAuMDAxMTkyLCAwLjAwMTE5MiwgMC4wMDExOTIiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4yMDY5MjsKLSAgICBmdW5jdGlvbiA6ICIoISgoKCghQk4pICghQU4pKSBDKSBEKSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkFOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDM5MzUsIDAuMTIyMTksIDAuMTg0MTE0LCAwLjI2MTE1NCwgMC4zMzg2LCAwLjQxNTUyOSwgMC40OTI0MzkiLCBcCi0gICAgICAgICAgIjAuMDUxOTg5LCAwLjEzMDIyMiwgMC4xOTIxNzMsIDAuMjY5NDY2LCAwLjM0NjU5LCAwLjQyMzgyNSwgMC41MDA3ODMiLCBcCi0gICAgICAgICAgIjAuMDYwNDU2LCAwLjEzODcyMywgMC4yMDA2MTcsIDAuMjc3ODM3LCAwLjM1NTAzNywgMC40MzIxMzksIDAuNTA5MzYzIiwgXAotICAgICAgICAgICIwLjA2NjcwNywgMC4xNDUwMjcsIDAuMjA2OTIzLCAwLjI4NDIwOCwgMC4zNjE1MDEsIDAuNDM4NTY5LCAwLjUxNTU2OSIsIFwKLSAgICAgICAgICAiMC4wNzE4NDksIDAuMTUwMDMsIDAuMjExODk3LCAwLjI4OTEzMiwgMC4zNjYzMTYsIDAuNDQzNDE1LCAwLjUyMDgwOSIsIFwKLSAgICAgICAgICAiMC4wNzg3OTUsIDAuMTU3MDQ4LCAwLjIxODc5MiwgMC4yOTYyODksIDAuMzczNDMsIDAuNDUwMzk2LCAwLjUyNzYxMiIsIFwKLSAgICAgICAgICAiMC4wODM5ODcsIDAuMTYyMTU1LCAwLjIyMzkyNCwgMC4zMDEwNiwgMC4zNzgzNTEsIDAuNDU1NDMzLCAwLjUzMjYyNiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTA5OTQsIDAuMjEyMjYsIDAuMzQyMzcsIDAuNTA0NzQ1LCAwLjY2NzQ3MiwgMC44MzAwMjQsIDAuOTkyNTM5IiwgXAotICAgICAgICAgICIwLjA1MTA1NSwgMC4yMTIyMzksIDAuMzQyMzU4LCAwLjUwNTAxNCwgMC42Njc0NDcsIDAuODMwMTM5LCAwLjk5MjU0NSIsIFwKLSAgICAgICAgICAiMC4wNTE3ODMsIDAuMjEyMzU3LCAwLjM0MjI0NiwgMC41MDUwMjEsIDAuNjY3MzksIDAuODI5OTgxLCAwLjk5MjYxNSIsIFwKLSAgICAgICAgICAiMC4wNTI3MjUsIDAuMjEyNDc1LCAwLjM0MjI3NywgMC41MDQ4OTUsIDAuNjY3NzM5LCAwLjgzMDA4NiwgMC45OTI1NCIsIFwKLSAgICAgICAgICAiMC4wNTM3NzgsIDAuMjEyNjA5LCAwLjM0MjMyNCwgMC41MDQ4NDEsIDAuNjY3Mzk3LCAwLjgzMDI2NSwgMC45OTI5MTgiLCBcCi0gICAgICAgICAgIjAuMDU1MjIxLCAwLjIxMjg5NSwgMC4zNDI0NTcsIDAuNTA0ODkyLCAwLjY2NzQ3NiwgMC44Mjk5OTYsIDAuOTkyODI5IiwgXAotICAgICAgICAgICIwLjA1NjQ0MiwgMC4yMTMwMTUsIDAuMzQyNDcsIDAuNTA0OTQ2LCAwLjY2NzQ5NCwgMC44MzAxMywgMC45OTI1OTYiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTAxODQ2LCAwLjM2MjI1MSwgMC41NzAyMjUsIDAuODMwNjY5LCAxLjA5MDMyLCAxLjM1MDc0LCAxLjYxMTI1IiwgXAotICAgICAgICAgICIwLjEwOTY2MSwgMC4zNzAxNjUsIDAuNTc4NjY2LCAwLjgzODY2MSwgMS4wOTgyNSwgMS4zNTg3OSwgMS42MTc3NyIsIFwKLSAgICAgICAgICAiMC4xMTczODQsIDAuMzc4MDMsIDAuNTg2NjU2LCAwLjg0NjgzLCAxLjEwNjk3LCAxLjM2NzI5LCAxLjYyNjMxIiwgXAotICAgICAgICAgICIwLjEyMjkwOCwgMC4zODM2NTUsIDAuNTkyMDEzLCAwLjg1MjE3MSwgMS4xMTE3NSwgMS4zNzIwOCwgMS42MzE1NiIsIFwKLSAgICAgICAgICAiMC4xMjczMTcsIDAuMzg4MDA3LCAwLjU5NjIzOCwgMC44NTYxMjEsIDEuMTE1OSwgMS4zNzYxNywgMS42MzY3NyIsIFwKLSAgICAgICAgICAiMC4xMzMxMzksIDAuMzkzODExLCAwLjYwMTk5NSwgMC44NjE4NjMsIDEuMTIzMjUsIDEuMzgxOSwgMS42NDMwNyIsIFwKLSAgICAgICAgICAiMC4xMzczODcsIDAuMzk4MDA4LCAwLjYwNjE0MiwgMC44NjYwOSwgMS4xMjY5NywgMS4zODc3NywgMS42NDYxNyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNDY5NzUsIDAuNjg0NDQ0LCAxLjExNTY4LCAxLjY1MTIsIDIuMTg4NDksIDIuNzI1NzYsIDMuMjYyNzIiLCBcCi0gICAgICAgICAgIjAuMTQ3MDEsIDAuNjg0NzEzLCAxLjExMzg0LCAxLjY1MTIxLCAyLjE4ODYxLCAyLjcyNTksIDMuMjY4NzUiLCBcCi0gICAgICAgICAgIjAuMTQ2NzU4LCAwLjY4NTA1NCwgMS4xMTM4NCwgMS42NTExNCwgMi4xODgxMywgMi43MjU3NiwgMy4yNjg3NCIsIFwKLSAgICAgICAgICAiMC4xNDY5NjMsIDAuNjg1MDksIDEuMTEzODcsIDEuNjUxMjIsIDIuMTg4OTMsIDIuNzMwNjIsIDMuMjYyNzUiLCBcCi0gICAgICAgICAgIjAuMTQ2OTcyLCAwLjY4NDE2NSwgMS4xMTU3LCAxLjY1Mzg3LCAyLjE4ODgyLCAyLjcyNjM0LCAzLjI2MzEiLCBcCi0gICAgICAgICAgIjAuMTQ2ODk5LCAwLjY4NCwgMS4xMTU2MywgMS42NTIwMywgMi4xODg4NSwgMi43MzAzNiwgMy4yNjMyMiIsIFwKLSAgICAgICAgICAiMC4xNDcwNTQsIDAuNjgzOTc3LCAxLjExMzkxLCAxLjY1Mzk5LCAyLjE4ODU1LCAyLjcyNjU2LCAzLjI2ODU3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkJOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDUwMTYsIDAuMTIzNDM5LCAwLjE4NTc4NCwgMC4yNjM3MzksIDAuMzQxNDU1LCAwLjQxOTM1NSwgMC40OTcxMzkiLCBcCi0gICAgICAgICAgIjAuMDUzMTczLCAwLjEzMTU0NiwgMC4xOTM4ODIsIDAuMjcxODExLCAwLjM0OTYyNywgMC40Mjc0NjMsIDAuNTA1MzIzIiwgXAotICAgICAgICAgICIwLjA2MTgxOSwgMC4xNDAxNjQsIDAuMjAyNDksIDAuMjgwMzg1LCAwLjM1ODM5NiwgMC40MzYwMjYsIDAuNTEzOTA4IiwgXAotICAgICAgICAgICIwLjA2ODU2OSwgMC4xNDcwNDcsIDAuMjA5Mzk5LCAwLjI4NzI4MywgMC4zNjUxMDQsIDAuNDQyOTU4LCAwLjUyMDcyOSIsIFwKLSAgICAgICAgICAiMC4wNzQwNjcsIDAuMTUyNjI3LCAwLjIxNDkzNSwgMC4yOTI3NjEsIDAuMzcwNjEzLCAwLjQ0ODU0OSwgMC41MjY1NSIsIFwKLSAgICAgICAgICAiMC4wODEzNTcsIDAuMTYwMDc2LCAwLjIyMjMyNywgMC4zMDAxMzQsIDAuMzc4MDIyLCAwLjQ1NTgwMSwgMC41MzM4NDQiLCBcCi0gICAgICAgICAgIjAuMDg2NzU4LCAwLjE2NTI5OCwgMC4yMjc1OTUsIDAuMzA1Mzc3LCAwLjM4MzE4NCwgMC40NjA5ODYsIDAuNTM4NzY0Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0OTc2LCAwLjIxMjczOSwgMC4zNDQ0MTUsIDAuNTA5MDkxLCAwLjY3MzY4NSwgMC44MzgyNTksIDEuMDAyOTMiLCBcCi0gICAgICAgICAgIjAuMDQ5ODI0LCAwLjIxMjc3MSwgMC4zNDQ0MTksIDAuNTA5MTA3LCAwLjY3MzYxMywgMC44MzgxNTIsIDEuMDAyODciLCBcCi0gICAgICAgICAgIjAuMDUwNjE1LCAwLjIxMjgzLCAwLjM0NDQwOSwgMC41MDkwNDgsIDAuNjczODcsIDAuODM4MjkzLCAxLjAwMjkiLCBcCi0gICAgICAgICAgIjAuMDUxNjE2LCAwLjIxMjk4NCwgMC4zNDQzNywgMC41MDg5OTEsIDAuNjczNzI0LCAwLjgzODI5MiwgMS4wMDI5NiIsIFwKLSAgICAgICAgICAiMC4wNTI3OTEsIDAuMjEzMDQxLCAwLjM0NDQzMywgMC41MDkwMjcsIDAuNjczNjYyLCAwLjgzODQ5LCAxLjAwMzI3IiwgXAotICAgICAgICAgICIwLjA1NDM1NiwgMC4yMTM0NTUsIDAuMzQ0NTM3LCAwLjUwOTAzMiwgMC42NzM3NzIsIDAuODM4MzQ5LCAxLjAwMzE2IiwgXAotICAgICAgICAgICIwLjA1NTcyOCwgMC4yMTM2OTEsIDAuMzQ0NjIzLCAwLjUwOTExMiwgMC42NzM2NzUsIDAuODM4MzAyLCAxLjAwMzEyIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwMDI4MywgMC4zNjA5MDgsIDAuNTY4NzAzLCAwLjgyODY0LCAxLjA4ODk0LCAxLjM0ODgzLCAxLjYwOTU5IiwgXAotICAgICAgICAgICIwLjEwODEyNSwgMC4zNjg2ODQsIDAuNTc2NzEzLCAwLjgzNjU4NSwgMS4wOTc1MSwgMS4zNTY5MywgMS42MTcxMSIsIFwKLSAgICAgICAgICAiMC4xMTYxMDksIDAuMzc2Nzc5LCAwLjU4NTQyOSwgMC44NDUzNDUsIDEuMTA0ODMsIDEuMzY1MzMsIDEuNjI0NzUiLCBcCi0gICAgICAgICAgIjAuMTIyMjA4LCAwLjM4MzA0MywgMC41OTEyOTEsIDAuODUxNDc0LCAxLjExMTA2LCAxLjM3MTMsIDEuNjMxNjQiLCBcCi0gICAgICAgICAgIjAuMTI2OTY2LCAwLjM4NzYyOCwgMC41OTU2OTcsIDAuODU1NjU3LCAxLjExNjYyLCAxLjM3NTU4LCAxLjYzNzM1IiwgXAotICAgICAgICAgICIwLjEzMzEyMywgMC4zOTM3OTYsIDAuNjAxOTg1LCAwLjg2MjA2NywgMS4xMjIwMSwgMS4zODIxMiwgMS42NDE3MiIsIFwKLSAgICAgICAgICAiMC4xMzc4MDQsIDAuMzk4NDgzLCAwLjYwNjYwMiwgMC44NjY2MzcsIDEuMTI3MjgsIDEuMzg2MzgsIDEuNjQ2NTQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTQ3MDI3LCAwLjY4Mzk2MywgMS4xMTU2OSwgMS42NTIyMSwgMi4xOTIzMywgMi43MjU4LCAzLjI2MzI0IiwgXAotICAgICAgICAgICIwLjE0NjgyLCAwLjY4NTA1OCwgMS4xMTM3MywgMS42NTM5NiwgMi4xODg0NiwgMi43MzA1OSwgMy4yNjM5NyIsIFwKLSAgICAgICAgICAiMC4xNDcwMDQsIDAuNjg1MDY0LCAxLjExNDA1LCAxLjY1MTIyLCAyLjE4ODk2LCAyLjcyNTczLCAzLjI2ODQzIiwgXAotICAgICAgICAgICIwLjE0Njk0NywgMC42ODUxNzcsIDEuMTEzODYsIDEuNjUxMjIsIDIuMTg4OTQsIDIuNzMwNTQsIDMuMjYzMTkiLCBcCi0gICAgICAgICAgIjAuMTQ3MTIsIDAuNjg1MDg0LCAxLjExNTY2LCAxLjY1Mzk3LCAyLjE4ODQ4LCAyLjcyOTAyLCAzLjI2Mjk4IiwgXAotICAgICAgICAgICIwLjE0NzEyLCAwLjY4NTEzLCAxLjExMzc3LCAxLjY1MzgzLCAyLjE5MjA4LCAyLjczMDMyLCAzLjI2NzU4IiwgXAotICAgICAgICAgICIwLjE0NzM4LCAwLjY4NTA2MiwgMS4xMTU2NSwgMS42NTM4OCwgMi4xODg1MywgMi43MzA1MSwgMy4yNjg1OSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjQ5NjUsIDAuMTAyOTU2LCAwLjE2NTIzLCAwLjI0MzAyNywgMC4zMjExMDEsIDAuMzk4OTksIDAuNDc2NjU2IiwgXAotICAgICAgICAgICIwLjAzMzI3NiwgMC4xMTEyNzQsIDAuMTczNTQ2LCAwLjI1MTM5NiwgMC4zMjkyNzQsIDAuNDA3MDMyLCAwLjQ4NDc1MiIsIFwKLSAgICAgICAgICAiMC4wNDMzMTksIDAuMTIxNjMzLCAwLjE4MzkxOSwgMC4yNjE3NTQsIDAuMzM5NTM0LCAwLjQxNzQ0NSwgMC40OTUyNDIiLCBcCi0gICAgICAgICAgIjAuMDUxMDYzLCAwLjEzMTYwNCwgMC4xOTM4NSwgMC4yNzE2NzEsIDAuMzQ5NTA5LCAwLjQyNzU0MiwgMC41MDUxOTIiLCBcCi0gICAgICAgICAgIjAuMDU3MDczLCAwLjE0MTk4NiwgMC4yMDQxODQsIDAuMjgxOTk0LCAwLjM1OTY2MywgMC40Mzc1OSwgMC41MTU2MTEiLCBcCi0gICAgICAgICAgIjAuMDY0ODE2LCAwLjE1ODkyOCwgMC4yMjA4NDcsIDAuMjk4NjU2LCAwLjM3NjMwNSwgMC40NTM1ODcsIDAuNTMxOTc0IiwgXAotICAgICAgICAgICIwLjA3MDE5OSwgMC4xNzM2NjIsIDAuMjM1NTA4LCAwLjMxMzA1MSwgMC4zOTA4NzUsIDAuNDY4NTk3LCAwLjU0NjU3MyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDUyNywgMC4yMDk5NzMsIDAuMzQxNzQ0LCAwLjUwNjMxNywgMC42NzExNzYsIDAuODM1ODk4LCAxLjAwMDQ2IiwgXAotICAgICAgICAgICIwLjA0ODEyOCwgMC4yMDk5NzUsIDAuMzQxNzIyLCAwLjUwNjM4NCwgMC42NzA5NzYsIDAuODM1NzIyLCAwLjk5OTkzMSIsIFwKLSAgICAgICAgICAiMC4wNTYyOTgsIDAuMjEwOTk0LCAwLjM0MTU5MywgMC41MDY0MjIsIDAuNjcwODI1LCAwLjgzNTk0MywgMS4wMDAyNyIsIFwKLSAgICAgICAgICAiMC4wNjU3MTYsIDAuMjE1MTc2LCAwLjM0MjkxNywgMC41MDYzMTksIDAuNjcxMDM0LCAwLjgzNTg5MywgMS4wMDAzMiIsIFwKLSAgICAgICAgICAiMC4wNzUwMzcsIDAuMjIxMDk1LCAwLjM0NjI2OSwgMC41MDcxMDcsIDAuNjcxMTA2LCAwLjgzNTgwNSwgMS4wMDAyNCIsIFwKLSAgICAgICAgICAiMC4wODgzODUsIDAuMjMyODc4LCAwLjM1NDM1OCwgMC41MTE5MTgsIDAuNjcyNzg5LCAwLjgzNTU3NCwgMS4wMDA0IiwgXAotICAgICAgICAgICIwLjA5OTAzLCAwLjI0NDYyNCwgMC4zNjMyOTUsIDAuNTE4MDU5LCAwLjY3NjgyLCAwLjgzNzg1LCAxLjAwMDc4Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3NzQ2LCAwLjMzODAzOCwgMC41NDU1NDksIDAuODA1ODAxLCAxLjA2NTk2LCAxLjMyNTk3LCAxLjU4NTA4IiwgXAotICAgICAgICAgICIwLjA4MzU0NSwgMC4zNDQyMjYsIDAuNTUyMTU2LCAwLjgxMjEyLCAxLjA3MjEsIDEuMzMxOSwgMS41OTE5MiIsIFwKLSAgICAgICAgICAiMC4wOTEzMDYsIDAuMzUyMjk5LCAwLjU2MDI3OSwgMC44MjA0MjYsIDEuMDgwMTMsIDEuMzQxMzMsIDEuNTk5NzEiLCBcCi0gICAgICAgICAgIjAuMDk5NDE4LCAwLjM2MDI5NiwgMC41Njg0ODMsIDAuODI4NDE3LCAxLjA4ODg0LCAxLjM0ODc3LCAxLjYwOTA2IiwgXAotICAgICAgICAgICIwLjEwNzY4LCAwLjM2ODU4MiwgMC41NzY1OTMsIDAuODM2NjUzLCAxLjA5NjY1LCAxLjM1NzU3LCAxLjYxNjQ5IiwgXAotICAgICAgICAgICIwLjEyMDE2NCwgMC4zODEyOTYsIDAuNTg5NjQ0LCAwLjg0OTkyMiwgMS4xMTAwNiwgMS4zNzEyMiwgMS42Mjk2NiIsIFwKLSAgICAgICAgICAiMC4xMzAxNTEsIDAuMzkyNzM5LCAwLjYwMTIzOSwgMC44NjEyMzksIDEuMTIxODEsIDEuMzgxNjQsIDEuNjQxNDEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTQ2ODk5LCAwLjY4NDE3MywgMS4xMTQxNiwgMS42NTQwMywgMi4xODkxMywgMi43MzA3LCAzLjI2ODczIiwgXAotICAgICAgICAgICIwLjE0NjYwOSwgMC42ODUwODgsIDEuMTE1NjksIDEuNjUzOTMsIDIuMTkxOSwgMi43MzA0OSwgMy4yNjI5OCIsIFwKLSAgICAgICAgICAiMC4xNDgyMTYsIDAuNjgzODk0LCAxLjExMzc2LCAxLjY1MTI1LCAyLjE5MjI2LCAyLjcyNTc5LCAzLjI2MzU0IiwgXAotICAgICAgICAgICIwLjE1MjE0LCAwLjY4NTA1NSwgMS4xMTU2MiwgMS42NTM0NSwgMi4xOTIyOSwgMi43MjU4MSwgMy4yNjg5NSIsIFwKLSAgICAgICAgICAiMC4xNTcyNjIsIDAuNjg1MTE4LCAxLjExMzk3LCAxLjY1MjE4LCAyLjE5MjEsIDIuNzI1OSwgMy4yNjM1MiIsIFwKLSAgICAgICAgICAiMC4xNjY3MDUsIDAuNjg0OTcsIDEuMTE1NjYsIDEuNjUxMTQsIDIuMTkyMTgsIDIuNzI1NjYsIDMuMjY4NTYiLCBcCi0gICAgICAgICAgIjAuMTc1OTk2LCAwLjY4NzYxNiwgMS4xMTU4LCAxLjY1MzgsIDIuMTg4NTQsIDIuNzI1MzksIDMuMjYzMDkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDIzMTQ0LCAwLjEwMDQxOSwgMC4xNjIyODYsIDAuMjM5NjQyLCAwLjMxNjc1NCwgMC4zOTQzODUsIDAuNDcxMzA1IiwgXAotICAgICAgICAgICIwLjAzMTQ5OCwgMC4xMDg3NjksIDAuMTcwNjcxLCAwLjI0NzgxOCwgMC4zMjUzMSwgMC40MDIzMjMsIDAuNDc5ODkxIiwgXAotICAgICAgICAgICIwLjA0MTM4NywgMC4xMTg5OCwgMC4xODA3NzMsIDAuMjU4MDQzLCAwLjMzNTI3MSwgMC40MTI1LCAwLjQ4OTUxMyIsIFwKLSAgICAgICAgICAiMC4wNDg0MTYsIDAuMTI5NjY0LCAwLjE5MTQ0MiwgMC4yNjg3MzksIDAuMzQ1ODk3LCAwLjQyMzIxMywgMC41MDA2NCIsIFwKLSAgICAgICAgICAiMC4wNTQzMzYsIDAuMTM5ODM0LCAwLjIwMTU3MiwgMC4yNzg3NjksIDAuMzU1OTIyLCAwLjQzMzIxNiwgMC41MTA3MDIiLCBcCi0gICAgICAgICAgIjAuMDYxMjQ1LCAwLjE1Njc3NiwgMC4yMTgzNDUsIDAuMjk1NTIzLCAwLjM3MjY1OCwgMC40NTAwNTQsIDAuNTI3MTM3IiwgXAotICAgICAgICAgICIwLjA2NjE1LCAwLjE3MTUyNiwgMC4yMzMwNDYsIDAuMzEwMTIzLCAwLjM4NzI2OCwgMC40NjQ0NDksIDAuNTQxODA0Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0Mjc4NywgMC4yMDYxNjMsIDAuMzM2NzU5LCAwLjQ5OTk1OSwgMC42NjMwMzIsIDAuODI3MDIsIDAuOTkwNzAzIiwgXAotICAgICAgICAgICIwLjA0NTg5NywgMC4yMDY0MDMsIDAuMzM2NzQzLCAwLjQ5OTkxNCwgMC42NjMyNTgsIDAuODI3ODMsIDAuOTg5ODIzIiwgXAotICAgICAgICAgICIwLjA1NDE0MSwgMC4yMDczNDUsIDAuMzM2NjgsIDAuNTAwMzM2LCAwLjY2MzAzOCwgMC44MjYyNzksIDAuOTkwODAxIiwgXAotICAgICAgICAgICIwLjA2NDA0NCwgMC4yMTEzMTgsIDAuMzM3ODEsIDAuNTAwMDQ0LCAwLjY2MzE5MywgMC44MjY2NTMsIDAuOTg5OTQxIiwgXAotICAgICAgICAgICIwLjA3Mjg2NywgMC4yMTczMjksIDAuMzQxODc5LCAwLjUwMTcwOCwgMC42NjI4OTksIDAuODI2NDgzLCAwLjk5MDAwNSIsIFwKLSAgICAgICAgICAiMC4wODY0MDYsIDAuMjI4ODUxLCAwLjM0OTY5OCwgMC41MDYzNDUsIDAuNjY2MTgsIDAuODI2NjgyLCAwLjk5MTAyNSIsIFwKLSAgICAgICAgICAiMC4wOTY5NTQsIDAuMjQwNTczLCAwLjM1ODM2OCwgMC41MTE4MTEsIDAuNjY4ODQ4LCAwLjgzMDIyOCwgMC45ODk5NzYiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDcwMjU3LCAwLjMzMDQ0MywgMC41Mzg0MTksIDAuNzk4Mzc1LCAxLjA1ODY1LCAxLjMxODU0LCAxLjU3OTM1IiwgXAotICAgICAgICAgICIwLjA3NjgxOCwgMC4zMzc0NzksIDAuNTQ1NjQ2LCAwLjgwNTU3MywgMS4wNjUxMiwgMS4zMjUyNCwgMS41ODQ4NiIsIFwKLSAgICAgICAgICAiMC4wODU2ODIsIDAuMzQ1OTA0LCAwLjU1NDE5NSwgMC44MTM5NzcsIDEuMDc0MzEsIDEuMzMzNjYsIDEuNTk1MTkiLCBcCi0gICAgICAgICAgIjAuMDk0OTU4LCAwLjM1NDUzNiwgMC41NjI1NDcsIDAuODIyNDA3LCAxLjA4MjU0LCAxLjM0MjQ3LCAxLjYwMjI0IiwgXAotICAgICAgICAgICIwLjEwNDY5MiwgMC4zNjM0MTYsIDAuNTcxMjksIDAuODMxMTYsIDEuMDkxNzgsIDEuMzUxMDUsIDEuNjEyOTEiLCBcCi0gICAgICAgICAgIjAuMTE4OTQ3LCAwLjM3NzQwNSwgMC41ODUwMjYsIDAuODQ1MjUzLCAxLjEwNDU5LCAxLjM2NDU4LCAxLjYyNTcxIiwgXAotICAgICAgICAgICIwLjEzMDA4NSwgMC4zOTAwODksIDAuNTk3NDUsIDAuODU3MzI1LCAxLjExNzIxLCAxLjM3Njc5LCAxLjYzNjYxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE0NjgxLCAwLjY4NDM4LCAxLjExNTIyLCAxLjY1MTk4LCAyLjE5MjI5LCAyLjcyNTc4LCAzLjI2MzE5IiwgXAotICAgICAgICAgICIwLjE0NjMwMywgMC42ODUxNTEsIDEuMTEzNzcsIDEuNjUzOTYsIDIuMTkyMzEsIDIuNzMwMjksIDMuMjY0OSIsIFwKLSAgICAgICAgICAiMC4xNDg2MjcsIDAuNjgzODY1LCAxLjExMzY2LCAxLjY1Mzc5LCAyLjE4NzY0LCAyLjczMDU3LCAzLjI2MzY5IiwgXAotICAgICAgICAgICIwLjE1MzgxMiwgMC42ODUwNTUsIDEuMTE1NjMsIDEuNjUwODYsIDIuMTg4MzEsIDIuNzMwMjMsIDMuMjYzNyIsIFwKLSAgICAgICAgICAiMC4xNjAyMTEsIDAuNjgzNzEsIDEuMTE1NjcsIDEuNjUzODksIDIuMTg4NzIsIDIuNzMwMzcsIDMuMjYzMTIiLCBcCi0gICAgICAgICAgIjAuMTcxOTAyLCAwLjY4NTMyMywgMS4xMTM5NiwgMS42NTA5OSwgMi4xOTIyMywgMi43Mjc0OSwgMy4yNjMwNCIsIFwKLSAgICAgICAgICAiMC4xODI2MDcsIDAuNjg4ODE5LCAxLjExMzk0LCAxLjY1MTMxLCAyLjE4ODcyLCAyLjczMDM0LCAzLjI2NTA4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQU4iOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwODI3NiwgMC4wMDgyNzksIDAuMDA4MjgxLCAwLjAwODI4MSwgMC4wMDgyOCwgMC4wMDgyOCwgMC4wMDgyNzkiLCBcCi0gICAgICAgICAgIjAuMDA4Mjc5LCAwLjAwODI4OCwgMC4wMDgyODgsIDAuMDA4Mjg5LCAwLjAwODI4NywgMC4wMDgyODcsIDAuMDA4Mjg5IiwgXAotICAgICAgICAgICIwLjAwODMyNSwgMC4wMDgzMzIsIDAuMDA4MzMzLCAwLjAwODMzNCwgMC4wMDgzMzMsIDAuMDA4MzMzLCAwLjAwODMzMSIsIFwKLSAgICAgICAgICAiMC4wMDg0MjUsIDAuMDA4NDI4LCAwLjAwODQyOSwgMC4wMDg0MywgMC4wMDg0MjgsIDAuMDA4NDI5LCAwLjAwODQyOCIsIFwKLSAgICAgICAgICAiMC4wMDg1NCwgMC4wMDg1NDIsIDAuMDA4NTQxLCAwLjAwODU0MSwgMC4wMDg1NDIsIDAuMDA4NTM5LCAwLjAwODUzOSIsIFwKLSAgICAgICAgICAiMC4wMDg3NTEsIDAuMDA4NzQyLCAwLjAwODc0LCAwLjAwODczMSwgMC4wMDg3MjgsIDAuMDA4NzM3LCAwLjAwODczNyIsIFwKLSAgICAgICAgICAiMC4wMDg5MzcsIDAuMDA4OTM2LCAwLjAwODkzMiwgMC4wMDg5MjksIDAuMDA4OTE4LCAwLjAwODkxNiwgMC4wMDg5MjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDYxOTMsIDAuMDA2MjYsIDAuMDA2MjY5LCAwLjAwNjI3MywgMC4wMDYyNzUsIDAuMDA2Mjc2LCAwLjAwNjI3NyIsIFwKLSAgICAgICAgICAiMC4wMDYxNjQsIDAuMDA2MjUyLCAwLjAwNjI2NCwgMC4wMDYyNzEsIDAuMDA2Mjc0LCAwLjAwNjI3NiwgMC4wMDYyNzciLCBcCi0gICAgICAgICAgIjAuMDA2MTk5LCAwLjAwNjMwMiwgMC4wMDYzMTksIDAuMDA2MzI4LCAwLjAwNjMzMywgMC4wMDYzMzYsIDAuMDA2MzM4IiwgXAotICAgICAgICAgICIwLjAwNjI3LCAwLjAwNjM4NSwgMC4wMDY0MDUsIDAuMDA2NDE2LCAwLjAwNjQyMiwgMC4wMDY0MjYsIDAuMDA2NDI4IiwgXAotICAgICAgICAgICIwLjAwNjM2MywgMC4wMDY0ODMsIDAuMDA2NTA1LCAwLjAwNjUxOCwgMC4wMDY1MjUsIDAuMDA2NTMsIDAuMDA2NTMzIiwgXAotICAgICAgICAgICIwLjAwNjUzMSwgMC4wMDY2NjQsIDAuMDA2Njg5LCAwLjAwNjcwNCwgMC4wMDY3MTMsIDAuMDA2NzE4LCAwLjAwNjcyMSIsIFwKLSAgICAgICAgICAiMC4wMDY3MDgsIDAuMDA2ODM1LCAwLjAwNjg2MywgMC4wMDY4NywgMC4wMDY4NzksIDAuMDA2ODk0LCAwLjAwNjg5OCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkJOIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDczMTMsIDAuMDA3MzIyLCAwLjAwNzMyMiwgMC4wMDczMjIsIDAuMDA3MzIyLCAwLjAwNzMyMiwgMC4wMDczMjEiLCBcCi0gICAgICAgICAgIjAuMDA3Mjk4LCAwLjAwNzMxNCwgMC4wMDczMTQsIDAuMDA3MzE2LCAwLjAwNzMxNiwgMC4wMDczMTUsIDAuMDA3MzE2IiwgXAotICAgICAgICAgICIwLjAwNzM4LCAwLjAwNzM5NSwgMC4wMDczOTcsIDAuMDA3Mzk5LCAwLjAwNzM5OSwgMC4wMDc0LCAwLjAwNzM5OSIsIFwKLSAgICAgICAgICAiMC4wMDc0NTIsIDAuMDA3NDY2LCAwLjAwNzQ3LCAwLjAwNzQ3LCAwLjAwNzQ3LCAwLjAwNzQ3LCAwLjAwNzQ3MSIsIFwKLSAgICAgICAgICAiMC4wMDc1NjQsIDAuMDA3NTc1LCAwLjAwNzU3OCwgMC4wMDc1NzksIDAuMDA3NTc5LCAwLjAwNzU3OSwgMC4wMDc1NzkiLCBcCi0gICAgICAgICAgIjAuMDA3NzcsIDAuMDA3NzYzLCAwLjAwNzc3NCwgMC4wMDc3NzMsIDAuMDA3NzY0LCAwLjAwNzc3MiwgMC4wMDc3NzIiLCBcCi0gICAgICAgICAgIjAuMDA3OTcyLCAwLjAwNzk2MSwgMC4wMDc5NDksIDAuMDA3OTQ5LCAwLjAwNzk1OCwgMC4wMDc5NDgsIDAuMDA3OTU4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2MDIyLCAwLjAwNjA5MywgMC4wMDYxMDIsIDAuMDA2MTA3LCAwLjAwNjEwOSwgMC4wMDYxMTEsIDAuMDA2MTEyIiwgXAotICAgICAgICAgICIwLjAwNTk5OCwgMC4wMDYwODcsIDAuMDA2MSwgMC4wMDYxMDYsIDAuMDA2MTEsIDAuMDA2MTEyLCAwLjAwNjExMyIsIFwKLSAgICAgICAgICAiMC4wMDYwMzgsIDAuMDA2MTQ2LCAwLjAwNjE2MywgMC4wMDYxNzMsIDAuMDA2MTc4LCAwLjAwNjE4MSwgMC4wMDYxODMiLCBcCi0gICAgICAgICAgIjAuMDA2MDkzLCAwLjAwNjIwOSwgMC4wMDYyMjksIDAuMDA2MjQxLCAwLjAwNjI0NywgMC4wMDYyNTEsIDAuMDA2MjUzIiwgXAotICAgICAgICAgICIwLjAwNjE4MywgMC4wMDYzMDQsIDAuMDA2MzI3LCAwLjAwNjM0LCAwLjAwNjM0NywgMC4wMDYzNTIsIDAuMDA2MzU1IiwgXAotICAgICAgICAgICIwLjAwNjM1MiwgMC4wMDY0NzcsIDAuMDA2NTAzLCAwLjAwNjUxOSwgMC4wMDY1MjcsIDAuMDA2NTMyLCAwLjAwNjUzNiIsIFwKLSAgICAgICAgICAiMC4wMDY1MDksIDAuMDA2NjM2LCAwLjAwNjY2NCwgMC4wMDY2ODEsIDAuMDA2NjksIDAuMDA2Njk2LCAwLjAwNjciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDU2OTIsIDAuMDA1NzAyLCAwLjAwNTcwMiwgMC4wMDU3MDMsIDAuMDA1NzAzLCAwLjAwNTcwNCwgMC4wMDU3MDIiLCBcCi0gICAgICAgICAgIjAuMDA1Njg1LCAwLjAwNTcxNCwgMC4wMDU3MTcsIDAuMDA1NzE5LCAwLjAwNTcyMSwgMC4wMDU3MiwgMC4wMDU3MjEiLCBcCi0gICAgICAgICAgIjAuMDA1NzYzLCAwLjAwNTczOSwgMC4wMDU3MzUsIDAuMDA1NzMzLCAwLjAwNTczMSwgMC4wMDU3MywgMC4wMDU3MjkiLCBcCi0gICAgICAgICAgIjAuMDA1ODAxLCAwLjAwNTc4NSwgMC4wMDU3NjYsIDAuMDA1NzU2LCAwLjAwNTc1MSwgMC4wMDU3NDgsIDAuMDA1NzQzIiwgXAotICAgICAgICAgICIwLjAwNTkzNCwgMC4wMDU4NDQsIDAuMDA1ODA4LCAwLjAwNTc4NywgMC4wMDU3NTksIDAuMDA1NzY4LCAwLjAwNTc2IiwgXAotICAgICAgICAgICIwLjAwNjE4NSwgMC4wMDU5NjYsIDAuMDA1ODg4LCAwLjAwNTg0MiwgMC4wMDU4MjIsIDAuMDA1ODAxLCAwLjAwNTc5NyIsIFwKLSAgICAgICAgICAiMC4wMDY0MjcsIDAuMDA2MDk5LCAwLjAwNTk4LCAwLjAwNTkxMywgMC4wMDU4NzIsIDAuMDA1ODQ2LCAwLjAwNTgzNiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTg2NywgMC4wMDE5LCAwLjAwMTkwNCwgMC4wMDE5MDYsIDAuMDAxOTA3LCAwLjAwMTkwOCwgMC4wMDE5MDgiLCBcCi0gICAgICAgICAgIjAuMDAxNzU1LCAwLjAwMTg2NSwgMC4wMDE4ODIsIDAuMDAxODksIDAuMDAxODk1LCAwLjAwMTg5OCwgMC4wMDE5IiwgXAotICAgICAgICAgICIwLjAwMTcwMiwgMC4wMDE4MzEsIDAuMDAxODU4LCAwLjAwMTg3MywgMC4wMDE4ODIsIDAuMDAxODg3LCAwLjAwMTg5MSIsIFwKLSAgICAgICAgICAiMC4wMDE3MDgsIDAuMDAxODEyLCAwLjAwMTg0MywgMC4wMDE4NjIsIDAuMDAxODcyLCAwLjAwMTg3OSwgMC4wMDE4ODQiLCBcCi0gICAgICAgICAgIjAuMDAxNzYxLCAwLjAwMTgxLCAwLjAwMTgzOCwgMC4wMDE4NTYsIDAuMDAxODY4LCAwLjAwMTg3NSwgMC4wMDE4OCIsIFwKLSAgICAgICAgICAiMC4wMDE5MTEsIDAuMDAxODM5LCAwLjAwMTg1MSwgMC4wMDE4NjMsIDAuMDAxODcxLCAwLjAwMTg3NywgMC4wMDE4ODIiLCBcCi0gICAgICAgICAgIjAuMDAyMDkyLCAwLjAwMTg5LCAwLjAwMTg3OSwgMC4wMDE4ODEsIDAuMDAxODg0LCAwLjAwMTg4NywgMC4wMDE4ODkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJEIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQxNCwgMC4wMDQxNjUsIDAuMDA0MTY2LCAwLjAwNDE2OSwgMC4wMDQxNywgMC4wMDQxNzEsIDAuMDA0MTcxIiwgXAotICAgICAgICAgICIwLjAwNDE0NSwgMC4wMDQxOTUsIDAuMDA0MjAyLCAwLjAwNDIwNiwgMC4wMDQyMDgsIDAuMDA0MjA5LCAwLjAwNDIwOSIsIFwKLSAgICAgICAgICAiMC4wMDQxOCwgMC4wMDQyMjIsIDAuMDA0MjIzLCAwLjAwNDIyMSwgMC4wMDQyMjIsIDAuMDA0MjIxLCAwLjAwNDIyMSIsIFwKLSAgICAgICAgICAiMC4wMDQyOTMsIDAuMDA0MjM3LCAwLjAwNDIzNSwgMC4wMDQyMzIsIDAuMDA0MjMxLCAwLjAwNDIyOSwgMC4wMDQyMjEiLCBcCi0gICAgICAgICAgIjAuMDA0Mzg4LCAwLjAwNDMwMSwgMC4wMDQyOCwgMC4wMDQyNjYsIDAuMDA0MjUyLCAwLjAwNDI1MSwgMC4wMDQyNDgiLCBcCi0gICAgICAgICAgIjAuMDA0NjU4LCAwLjAwNDQwNSwgMC4wMDQzNDUsIDAuMDA0MzIsIDAuMDA0Mjk4LCAwLjAwNDI4NiwgMC4wMDQyNzkiLCBcCi0gICAgICAgICAgIjAuMDA0OTA1LCAwLjAwNDUyMiwgMC4wMDQ0MjUsIDAuMDA0MzcyLCAwLjAwNDM0MSwgMC4wMDQzMjgsIDAuMDA0MzEyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxODU3LCAwLjAwMTg5NiwgMC4wMDE5LCAwLjAwMTkwMiwgMC4wMDE5MDMsIDAuMDAxOTA0LCAwLjAwMTkwNCIsIFwKLSAgICAgICAgICAiMC4wMDE3NzIsIDAuMDAxODY1LCAwLjAwMTg4LCAwLjAwMTg4OCwgMC4wMDE4OTMsIDAuMDAxODk2LCAwLjAwMTg5OCIsIFwKLSAgICAgICAgICAiMC4wMDE4MTYsIDAuMDAxODU3LCAwLjAwMTg3MywgMC4wMDE4ODMsIDAuMDAxODg4LCAwLjAwMTg5MiwgMC4wMDE4OTQiLCBcCi0gICAgICAgICAgIjAuMDAxOTM5LCAwLjAwMTg3OCwgMC4wMDE4ODMsIDAuMDAxODg5LCAwLjAwMTg5MiwgMC4wMDE4OTUsIDAuMDAxODk3IiwgXAotICAgICAgICAgICIwLjAwMjA4MywgMC4wMDE5MTMsIDAuMDAxOTAzLCAwLjAwMTkwMSwgMC4wMDE5MDEsIDAuMDAxOTAxLCAwLjAwMTkwMiIsIFwKLSAgICAgICAgICAiMC4wMDIzNDgsIDAuMDAyMDE4LCAwLjAwMTk2OCwgMC4wMDE5NDUsIDAuMDAxOTM0LCAwLjAwMTkyOCwgMC4wMDE5MjQiLCBcCi0gICAgICAgICAgIjAuMDAyNjI0LCAwLjAwMjEzNSwgMC4wMDIwNDQsIDAuMDAxOTk3LCAwLjAwMTk3NCwgMC4wMDE5NiwgMC4wMDE5NTIiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IE5BTkQ0QkJYTCAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKE5BTkQ0QkJYTCkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjM4NjE4MTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQU4pICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY4NDIzNTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2ODQyMzU7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjg0MjIxOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDI3OSwgMC4wMDAzMDEsIDAuMDAwMzgxLCAwLjAwMDUwMywgMC4wMDA2MzMsIDAuMDAwODYxLCAwLjAwMTA2NSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTcyNCwgMC4wMDE3NiwgMC4wMDE4MzQsIDAuMDAxOTQ2LCAwLjAwMjA3OSwgMC4wMDIzMDMsIDAuMDAyNTA3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCTikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjQ3MDAzOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDY0NzAwMzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2NDY5NDI7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjQ0LCAwLjAwMDI3MSwgMC4wMDAzNDQsIDAuMDAwNDU3LCAwLjAwMDU4NywgMC4wMDA4MTYsIDAuMDAxMDE4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxODY2LCAwLjAwMTg4NCwgMC4wMDE5NywgMC4wMDIwODIsIDAuMDAyMjE3LCAwLjAwMjQ0MiwgMC4wMDI2MzEiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEMpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDczMzA4NjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA3MzMwODY7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNzMyNDkyOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDI5NywgMC4wMDAyOTYsIDAuMDAwMjk2LCAwLjAwMDI5NiwgMC4wMDAyOTYsIDAuMDAwMjk2LCAwLjAwMDI5NiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDMyNywgMC4wMDAzMDgsIDAuMDAwMzAzLCAwLjAwMDMwMiwgMC4wMDAzMDIsIDAuMDAwMjk5LCAwLjAwMDMwMSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNzM3MjQxOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDczNzAyMzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA3MzcyNDE7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMTY4LCAwLjAwMDE2OCwgMC4wMDAxNjgsIDAuMDAwMTY4LCAwLjAwMDE2OCwgMC4wMDAxNjgsIDAuMDAwMTY4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzM3LCAwLjAwMDMzOCwgMC4wMDAzMzgsIDAuMDAwMzM4LCAwLjAwMDMzNywgMC4wMDAzMzgsIDAuMDAwMzM4Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMDYwNDY1NjsKLSAgICBmdW5jdGlvbiA6ICIoISgoKCghQU4pICghQk4pKSBDKSBEKSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkFOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzQyMjcsIDAuMDg0ODExLCAwLjE3OTczNCwgMC4zMzc3OTUsIDAuNDk1NjU1LCAwLjg2NDAyMiwgMS4wNzQ4IiwgXAotICAgICAgICAgICIwLjA4MTM3NSwgMC4wOTE5NjYsIDAuMTg2OTM0LCAwLjM0NDg3NiwgMC41MDMwMjQsIDAuODcxNDk0LCAxLjA4MjQzIiwgXAotICAgICAgICAgICIwLjA4NzIxMywgMC4wOTc3ODUsIDAuMTkyNzA5LCAwLjM1MDcyLCAwLjUwODc1MSwgMC44NzcwNTcsIDEuMDg4NDIiLCBcCi0gICAgICAgICAgIjAuMDkxMzU4LCAwLjEwMTkyMiwgMC4xOTY4MzMsIDAuMzU0OTIxLCAwLjUxMjgxNiwgMC44ODExNjQsIDEuMDkyMjYiLCBcCi0gICAgICAgICAgIjAuMDk1MDAzLCAwLjEwNTU2OCwgMC4yMDA0MzMsIDAuMzU4NDE0LCAwLjUxNjM2MSwgMC44ODQ4NDIsIDEuMDk1NjgiLCBcCi0gICAgICAgICAgIjAuMDk5NTYzLCAwLjExMDA3NywgMC4yMDUwMDcsIDAuMzYyOTcyLCAwLjUyMDc5LCAwLjg4OTMwOSwgMS4xMDA1NyIsIFwKLSAgICAgICAgICAiMC4xMDMwOTgsIDAuMTEzNjkzLCAwLjIwODU2NSwgMC4zNjY0NTEsIDAuNTI0NDg1LCAwLjg5MjczLCAxLjEwMzU1Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEyODc2NCwgMC4xNTA5MjcsIDAuMzUwMjU4LCAwLjY4MjQ1MywgMS4wMTQ2NiwgMS43ODk0LCAyLjIzMjc4IiwgXAotICAgICAgICAgICIwLjEyODc3OSwgMC4xNTA4NDksIDAuMzUwMzA2LCAwLjY4MjQ1NywgMS4wMTQ4OCwgMS43ODk5OCwgMi4yMzMzNSIsIFwKLSAgICAgICAgICAiMC4xMjg4NTksIDAuMTUwOTUzLCAwLjM1MDI5LCAwLjY4MjQ5NSwgMS4wMTQ2MiwgMS43OTAwNywgMi4yMzM4OSIsIFwKLSAgICAgICAgICAiMC4xMjkwMTcsIDAuMTUxMDUyLCAwLjM1MDI2OCwgMC42ODI1NzcsIDEuMDE0NjEsIDEuNzg5OTQsIDIuMjMyNzkiLCBcCi0gICAgICAgICAgIjAuMTI5MDg0LCAwLjE1MTE2LCAwLjM1MDI4NSwgMC42ODI3ODcsIDEuMDE0NDIsIDEuNzg5NTUsIDIuMjMzMzgiLCBcCi0gICAgICAgICAgIjAuMTI5NTEsIDAuMTUxMzcxLCAwLjM1MDMyLCAwLjY4Mjc0NSwgMS4wMTUwMSwgMS43ODkzMywgMi4yMzMyNCIsIFwKLSAgICAgICAgICAiMC4xMjk4MzYsIDAuMTUxNzY1LCAwLjM1MDMzMywgMC42ODI2MTEsIDEuMDE0NTcsIDEuNzg5MzEsIDIuMjMzMjYiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTk1NjkzLCAwLjIyNzEwOCwgMC41MDkzNjQsIDAuOTc4OTU2LCAxLjQ0NzM4LCAyLjU0Mjc1LCAzLjE2OTU5IiwgXAotICAgICAgICAgICIwLjIwMjUyNywgMC4yMzM4NzQsIDAuNTE1NzMxLCAwLjk4NTkzNCwgMS40NTU2NywgMi41NTIxMywgMy4xNzc0NCIsIFwKLSAgICAgICAgICAiMC4yMDc1ODcsIDAuMjM4OTI1LCAwLjUyMDg3LCAwLjk5MTUyNSwgMS40NjEwMiwgMi41NTcyNSwgMy4xODIyIiwgXAotICAgICAgICAgICIwLjIxMTA2LCAwLjI0MjM2LCAwLjUyNDUxNiwgMC45OTQwNCwgMS40NjQ0MiwgMi41NjA3NCwgMy4xODU3MiIsIFwKLSAgICAgICAgICAiMC4yMTM3NTksIDAuMjQ1MDY4LCAwLjUyNzA1NSwgMC45OTcsIDEuNDY2NzMsIDIuNTYzMjMsIDMuMTg5NCIsIFwKLSAgICAgICAgICAiMC4yMTc0MDksIDAuMjQ4NjgzLCAwLjUzMDY3NywgMS4wMDExNiwgMS40NzA3MiwgMi41NjcxNSwgMy4xOTE5NSIsIFwKLSAgICAgICAgICAiMC4yMjAwMTUsIDAuMjUxMjU4LCAwLjUzMzQyOSwgMS4wMDMwNiwgMS40NzMxMiwgMi41NzAyMiwgMy4xOTUwMSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zNjQ2NjcsIDAuNDI4NywgMS4wMDk0NCwgMS45ODExOCwgMi45NDY2MSwgNS4yMDY2NywgNi40OTg1MSIsIFwKLSAgICAgICAgICAiMC4zNjQxOTYsIDAuNDI4NTQsIDEuMDExMjQsIDEuOTc3ODgsIDIuOTUwOTgsIDUuMjEyMjksIDYuNDk5NjQiLCBcCi0gICAgICAgICAgIjAuMzY0MDA3LCAwLjQyOTMwNSwgMS4wMTEyNCwgMS45Nzc1MywgMi45NDYzLCA1LjIxMjIyLCA2LjQ5NDEzIiwgXAotICAgICAgICAgICIwLjM2NDYyNiwgMC40Mjg1MSwgMS4wMTExNiwgMS45ODExLCAyLjk1MDk1LCA1LjIxMjI5LCA2LjQ5NDMxIiwgXAotICAgICAgICAgICIwLjM2MzkxNywgMC40MjkyNjUsIDEuMDExMjQsIDEuOTgxMTMsIDIuOTQ2MTksIDUuMjA0MTMsIDYuNDk0MSIsIFwKLSAgICAgICAgICAiMC4zNjQzMDYsIDAuNDI4NzkxLCAxLjAwOTQ4LCAxLjk3NzY1LCAyLjk1MDcyLCA1LjIwNTIsIDYuNDk4NTIiLCBcCi0gICAgICAgICAgIjAuMzYzODkzLCAwLjQyODUzNSwgMS4wMTExNCwgMS45NzgxNSwgMi45NTA5LCA1LjIwNDYxLCA2LjQ5OTM0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkJOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzM5MDYsIDAuMDg0NDYxLCAwLjE3OTMyNiwgMC4zMzY5MjcsIDAuNDk1MDQ0LCAwLjg2MzM2OCwgMS4wNzQ3MyIsIFwKLSAgICAgICAgICAiMC4wODEyMjksIDAuMDkxNzc1LCAwLjE4NjY0NiwgMC4zNDQ3OTgsIDAuNTAyODA1LCAwLjg3MTUwMSwgMS4wODExMSIsIFwKLSAgICAgICAgICAiMC4wODczOTUsIDAuMDk3OTM5LCAwLjE5Mjc4LCAwLjM1MDc0NSwgMC41MDg1NywgMC44Nzc4MjcsIDEuMDg3ODMiLCBcCi0gICAgICAgICAgIjAuMDkxODcyLCAwLjEwMjMxOSwgMC4xOTcyMDMsIDAuMzU1MTA3LCAwLjUxMzE5MywgMC44ODEzMDMsIDEuMDkyNTQiLCBcCi0gICAgICAgICAgIjAuMDk1Njc0LCAwLjEwNTk5NywgMC4yMDA5NjgsIDAuMzU4NzEsIDAuNTE2NzA4LCAwLjg4NTU1MSwgMS4wOTU4IiwgXAotICAgICAgICAgICIwLjEwMDQzNSwgMC4xMTA5ODUsIDAuMjA1NzQ4LCAwLjM2MzYwMSwgMC41MjE0OTQsIDAuODg5ODUyLCAxLjEwMDUzIiwgXAotICAgICAgICAgICIwLjEwNDI0MiwgMC4xMTQ4ODYsIDAuMjA5NTc1LCAwLjM2NzQ2OCwgMC41MjU0MTUsIDAuODk0NDk0LCAxLjEwNDU3Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEyNzAwNiwgMC4xNDkxNDEsIDAuMzQ4NTM4LCAwLjY4MDQ1NiwgMS4wMTI3MywgMS43ODg1MywgMi4yMzExIiwgXAotICAgICAgICAgICIwLjEyNzAyNywgMC4xNDkxNywgMC4zNDg1NDMsIDAuNjgwOTYzLCAxLjAxMzE3LCAxLjc4ODM2LCAyLjIzMTQ0IiwgXAotICAgICAgICAgICIwLjEyNzE3MywgMC4xNDkyMzUsIDAuMzQ4NTcxLCAwLjY4MDY4NiwgMS4wMTI3MSwgMS43ODgyNSwgMi4yMzA0OSIsIFwKLSAgICAgICAgICAiMC4xMjczMTUsIDAuMTQ5MzQ5LCAwLjM0ODY1MSwgMC42ODA1MzksIDEuMDEyODYsIDEuNzg3NDYsIDIuMjMwOCIsIFwKLSAgICAgICAgICAiMC4xMjc0NDgsIDAuMTQ5NDQ3LCAwLjM0ODUzNiwgMC42ODA2MTUsIDEuMDEyODgsIDEuNzg4NDQsIDIuMjMwMTQiLCBcCi0gICAgICAgICAgIjAuMTI3OTA0LCAwLjE0OTczNSwgMC4zNDg1MDksIDAuNjgwNjY1LCAxLjAxMjksIDEuNzg3MzYsIDIuMjMwMzUiLCBcCi0gICAgICAgICAgIjAuMTI4MzIsIDAuMTUwMTg5LCAwLjM0ODYwOCwgMC42ODA4ODYsIDEuMDEyNjIsIDEuNzg4MDUsIDIuMjMwOTMiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTk0OTM2LCAwLjIyNjI0NCwgMC41MDg1MiwgMC45NzkxNzMsIDEuNDQ4MDYsIDIuNTQ0MzIsIDMuMTcwMjkiLCBcCi0gICAgICAgICAgIjAuMjAxOTQ1LCAwLjIzMzI1LCAwLjUxNTQzOCwgMC45ODUwNCwgMS40NTUzNCwgMi41NTIzOCwgMy4xNzc2NyIsIFwKLSAgICAgICAgICAiMC4yMDcyNTIsIDAuMjM4NzkxLCAwLjUyMDYzOCwgMC45OTE2MzYsIDEuNDYwNzIsIDIuNTU2MjYsIDMuMTgxODciLCBcCi0gICAgICAgICAgIjAuMjEwOTQ2LCAwLjI0MjMxOSwgMC41MjQzNzcsIDAuOTk0MTI4LCAxLjQ2Mzg4LCAyLjU1OTYsIDMuMTg1NjIiLCBcCi0gICAgICAgICAgIjAuMjEzOTE5LCAwLjI0NTI4MywgMC41Mjc3NzcsIDAuOTk3MTgxLCAxLjQ2Njk0LCAyLjU2MzUzLCAzLjE4OTc5IiwgXAotICAgICAgICAgICIwLjIxNzgyNSwgMC4yNDkxOTMsIDAuNTMxMjU5LCAxLjAwMTg4LCAxLjQ3MDc4LCAyLjU2NzE3LCAzLjE5MzA3IiwgXAotICAgICAgICAgICIwLjIyMDczNCwgMC4yNTIwNTIsIDAuNTM0NDM0LCAxLjAwNDc5LCAxLjQ3Mzk5LCAyLjU3MTUyLCAzLjE5NTg5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjM2NDY1MiwgMC40MjkzMTksIDEuMDA5NDcsIDEuOTc3NTUsIDIuOTQ2MDEsIDUuMjEyNDUsIDYuNTAwMzkiLCBcCi0gICAgICAgICAgIjAuMzY0NjU1LCAwLjQyOTAxOCwgMS4wMTEyMSwgMS45ODEwOCwgMi45NTA5LCA1LjIwNDA3LCA2LjQ5NDEiLCBcCi0gICAgICAgICAgIjAuMzY0NjYxLCAwLjQyODYwNSwgMS4wMDkzMiwgMS45Nzc4MiwgMi45NTA3NSwgNS4yMDQ3LCA2LjQ5NjEzIiwgXAotICAgICAgICAgICIwLjM2Mzk1NSwgMC40Mjg0OTYsIDEuMDExMjQsIDEuOTc5MTksIDIuOTQ2MDMsIDUuMjEyMiwgNi40OTY4MyIsIFwKLSAgICAgICAgICAiMC4zNjQ1MjYsIDAuNDI5MjQzLCAxLjAwOTQ4LCAxLjk4MTExLCAyLjk0NzMsIDUuMjA0MjQsIDYuNDk1MDQiLCBcCi0gICAgICAgICAgIjAuMzYzOTQyLCAwLjQyODg0MiwgMS4wMTEyMywgMS45Nzc2LCAyLjk0NTk2LCA1LjIwNTUxLCA2LjQ5NDk0IiwgXAotICAgICAgICAgICIwLjM2MzkxOSwgMC40Mjg1NzMsIDEuMDExMTMsIDEuOTc3NiwgMi45NTA5LCA1LjIwNDk1LCA2LjQ5OTIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDYyNzcyLCAwLjA3MzMwMiwgMC4xNjgwMTIsIDAuMzI2MDQ2LCAwLjQ4Mzg3OCwgMC44NTI0MDIsIDEuMDY0MDMiLCBcCi0gICAgICAgICAgIjAuMDcwNzIxLCAwLjA4MTIzNSwgMC4xNzYwNzcsIDAuMzMzODM3LCAwLjQ5MTg1OCwgMC44NjA2OTIsIDEuMDcxMDciLCBcCi0gICAgICAgICAgIjAuMDgwNjA4LCAwLjA5MTEwOCwgMC4xODU5MDQsIDAuMzQzNjQ5LCAwLjUwMTQ3NiwgMC44Njk4NTksIDEuMDgxMyIsIFwKLSAgICAgICAgICAiMC4wOTA3NCwgMC4xMDExODQsIDAuMTk1NzcxLCAwLjM1MzYyMywgMC41MTEzNjUsIDAuODc5Njg1LCAxLjA5MDc3IiwgXAotICAgICAgICAgICIwLjEwMTU5NywgMC4xMTEzODcsIDAuMjA1ODIyLCAwLjM2MzE5NywgMC41MjE0MjMsIDAuODkwMjI4LCAxLjEwMDE2IiwgXAotICAgICAgICAgICIwLjExNjUxNSwgMC4xMjgxMSwgMC4yMjIwNywgMC4zNzk3ODgsIDAuNTM3NjAyLCAwLjkwNTk0NCwgMS4xMTYzMyIsIFwKLSAgICAgICAgICAiMC4xMjc1MDksIDAuMTQwMjY1LCAwLjIzNjQzNCwgMC4zOTM5NzEsIDAuNTUxODk2LCAwLjkyMDAxMSwgMS4xMzE1OCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMjUxNjgsIDAuMTQ3MzI1LCAwLjM0NjU0MywgMC42NzkwNiwgMS4wMTA5LCAxLjc4NTkzLCAyLjIyOTgxIiwgXAotICAgICAgICAgICIwLjEyNTM0OSwgMC4xNDczNDcsIDAuMzQ2NzMzLCAwLjY3ODY0NywgMS4wMTEwMSwgMS43ODU2OSwgMi4yMjkxIiwgXAotICAgICAgICAgICIwLjEyOTU0NSwgMC4xNTA1NjEsIDAuMzQ2NjkxLCAwLjY3ODczMywgMS4wMTA3MiwgMS43ODY2OSwgMi4yMjkwNiIsIFwKLSAgICAgICAgICAiMC4xMzY0NDcsIDAuMTU2NzA4LCAwLjM0Nzg3MiwgMC42Nzg2MzEsIDEuMDExMjgsIDEuNzg3MzcsIDIuMjI5IiwgXAotICAgICAgICAgICIwLjE0Mzc1MiwgMC4xNjQzMDksIDAuMzUxNDY3LCAwLjY3ODU4MiwgMS4wMTA1OSwgMS43ODY1MiwgMi4yMjc1OCIsIFwKLSAgICAgICAgICAiMC4xNTc3OTgsIDAuMTc3MDQ3LCAwLjM1OTM3NSwgMC42ODA1NTUsIDEuMDExMSwgMS43ODUwMiwgMi4yMjgwMiIsIFwKLSAgICAgICAgICAiMC4xNzE0MTksIDAuMTkwMDIyLCAwLjM2ODQyOSwgMC42ODQ3ODMsIDEuMDExMzIsIDEuNzg3NTksIDIuMjI5MjYiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTgyMTk5LCAwLjIxMzMyMSwgMC40OTU1MTIsIDAuOTY1MjY4LCAxLjQzNjI4LCAyLjUzMTIzLCAzLjE1NjU1IiwgXAotICAgICAgICAgICIwLjE4ODAyNCwgMC4yMTkzMDMsIDAuNTAxMjQ2LCAwLjk3MTc4NiwgMS40NDA5MywgMi41MzcyMywgMy4xNjMwNyIsIFwKLSAgICAgICAgICAiMC4xOTU2MTcsIDAuMjI3MDk0LCAwLjUwOTA0NywgMC45NzkyMjksIDEuNDUwMzIsIDIuNTQ1NDksIDMuMTcxNTkiLCBcCi0gICAgICAgICAgIjAuMjAzNDA5LCAwLjIzNDYzLCAwLjUxNjc5NywgMC45ODc1MTMsIDEuNDU3OTQsIDIuNTUzOTcsIDMuMTc5MzkiLCBcCi0gICAgICAgICAgIjAuMjEwOTkzLCAwLjI0MjM1OSwgMC41MjQ2MzcsIDAuOTk1MzY5LCAxLjQ2NTUzLCAyLjU2MTY5LCAzLjE4NjUxIiwgXAotICAgICAgICAgICIwLjIyNDE2NywgMC4yNTUyNzcsIDAuNTM3MDE2LCAxLjAwNzAxLCAxLjQ3NjQ1LCAyLjU3MjU2LCAzLjE5ODYyIiwgXAotICAgICAgICAgICIwLjIzNTM3MiwgMC4yNjYzMDcsIDAuNTQ4MDksIDEuMDE4MTksIDEuNDg3MzUsIDIuNTgzNCwgMy4yMDkyNyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zNjQwNDksIDAuNDI5MzAxLCAxLjAwOTUyLCAxLjk4MTA5LCAyLjk0NTUyLCA1LjIxMjE5LCA2LjQ5MzgiLCBcCi0gICAgICAgICAgIjAuMzY0NjcsIDAuNDI5MzA4LCAxLjAxMDA3LCAxLjk3NzYzLCAyLjk0NTMyLCA1LjIwNDE0LCA2LjQ5NTQ1IiwgXAotICAgICAgICAgICIwLjM2NDY2MSwgMC40Mjg1NTQsIDEuMDA5NjMsIDEuOTgxMDUsIDIuOTQ1NTQsIDUuMjEyMjMsIDYuNDkzODgiLCBcCi0gICAgICAgICAgIjAuMzY0NzMzLCAwLjQyOTU4NywgMS4wMDkzOSwgMS45Nzc1MywgMi45NDU2MSwgNS4yMDM2NywgNi40OTM4NiIsIFwKLSAgICAgICAgICAiMC4zNjczMjMsIDAuNDMwODc0LCAxLjAwOTQ4LCAxLjk3NzUyLCAyLjk0NTYxLCA1LjIwNDkxLCA2LjQ5OTcxIiwgXAotICAgICAgICAgICIwLjM3MjY2NywgMC40MzUwNCwgMS4wMTEyMiwgMS45ODA5NywgMi45NTEsIDUuMjA2MjIsIDYuNDk0NDQiLCBcCi0gICAgICAgICAgIjAuMzc4NTQxLCAwLjQ0MDAzLCAxLjAxMTg2LCAxLjk4MDksIDIuOTQ1ODksIDUuMjEyMDEsIDYuNDk4ODgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDYxNTU0LCAwLjA3MjExNCwgMC4xNjY4NDMsIDAuMzI1MDYsIDAuNDgyNzM1LCAwLjg1MTk5LCAxLjA2MTg5IiwgXAotICAgICAgICAgICIwLjA2OTU1MywgMC4wODAwNjksIDAuMTc0OTksIDAuMzMzMDQxLCAwLjQ5MDU1NiwgMC44NTkwNDQsIDEuMDcwMTUiLCBcCi0gICAgICAgICAgIjAuMDc5NTI1LCAwLjA5MDAzLCAwLjE4NDc0NywgMC4zNDI1ODEsIDAuNTAwNDUxLCAwLjg2ODgzMSwgMS4wNzk4MiIsIFwKLSAgICAgICAgICAiMC4wODk3OTYsIDAuMTAwMjQyLCAwLjE5NDg2MywgMC4zNTI4MzcsIDAuNTEwNzk4LCAwLjg3ODgzNywgMS4wODk4MyIsIFwKLSAgICAgICAgICAiMC4wOTk3OTgsIDAuMTEwNTY1LCAwLjIwNTAzNywgMC4zNjI3NTMsIDAuNTIwNjU4LCAwLjg4OTUwNCwgMS4wOTkzOCIsIFwKLSAgICAgICAgICAiMC4xMTQ1MzIsIDAuMTI2Mzg0LCAwLjIyMTI3OCwgMC4zNzg5OTgsIDAuNTM2ODYxLCAwLjkwNTE0NywgMS4xMTU1NCIsIFwKLSAgICAgICAgICAiMC4xMjQ5MzcsIDAuMTM4MDg4LCAwLjIzNTYwMywgMC4zOTMxNzUsIDAuNTUxMTI0LCAwLjkxOTIzNywgMS4xMjk3NSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMjM3OSwgMC4xNDU4MTEsIDAuMzQ1MzU5LCAwLjY3NzQ0NywgMS4wMTAwMiwgMS43ODUxNCwgMi4yMjcyOSIsIFwKLSAgICAgICAgICAiMC4xMjQwMDcsIDAuMTQ2MDA3LCAwLjM0NTE1MSwgMC42Nzc0NTQsIDEuMDA4ODYsIDEuNzg1MDgsIDIuMjI2OCIsIFwKLSAgICAgICAgICAiMC4xMjgxNCwgMC4xNDkwODUsIDAuMzQ1MjA2LCAwLjY3NzEyNCwgMS4wMDk5MywgMS43ODQ5NiwgMi4yMjcxMiIsIFwKLSAgICAgICAgICAiMC4xMzQ4MTksIDAuMTU1MDYxLCAwLjM0NjE1NywgMC42NzcyLCAxLjAwOTE0LCAxLjc4NjAzLCAyLjIyNzIxIiwgXAotICAgICAgICAgICIwLjE0MjQ1NCwgMC4xNjI0MDUsIDAuMzUwMDI3LCAwLjY3Nzk0LCAxLjAwOTUxLCAxLjc4NDk0LCAyLjIyNjA2IiwgXAotICAgICAgICAgICIwLjE1NzMzNywgMC4xNzYyMzUsIDAuMzU3NjkxLCAwLjY3OTg4NywgMS4wMDk2NiwgMS43ODM1NCwgMi4yMjU5NiIsIFwKLSAgICAgICAgICAiMC4xNzEzMDQsIDAuMTkwMTgxLCAwLjM2NjY2OCwgMC42ODM4OSwgMS4wMDk2OSwgMS43ODYwMywgMi4yMjYxNiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNzc5NDgsIDAuMjA5MzAzLCAwLjQ5MTI4NCwgMC45NjA5NzksIDEuNDMwNDMsIDIuNTI2NDcsIDMuMTUyMzciLCBcCi0gICAgICAgICAgIjAuMTg0NDY2LCAwLjIxNTc5MywgMC40OTc4MTIsIDAuOTY3ODQ0LCAxLjQzNzE3LCAyLjUzMzI2LCAzLjE1OTQ0IiwgXAotICAgICAgICAgICIwLjE5MjgyNywgMC4yMjQxNzQsIDAuNTA2Mzc2LCAwLjk3NjY0OCwgMS40NDYwOCwgMi41NDI0NywgMy4xNjcyNCIsIFwKLSAgICAgICAgICAiMC4yMDE1NTUsIDAuMjMyNjc5LCAwLjUxNDYwMywgMC45ODQ5MTIsIDEuNDU0NjksIDIuNTUwODQsIDMuMTc1NjIiLCBcCi0gICAgICAgICAgIjAuMjEwMTI4LCAwLjI0MTM1MSwgMC41MjI4MzEsIDAuOTkyNTE0LCAxLjQ2MjE3LCAyLjU1ODc0LCAzLjE4NDk3IiwgXAotICAgICAgICAgICIwLjIyNDQ1OSwgMC4yNTU1ODUsIDAuNTM2Njk1LCAxLjAwNjI3LCAxLjQ3NTg1LCAyLjU3Mjg3LCAzLjE5NzQ5IiwgXAotICAgICAgICAgICIwLjIzNzM1MSwgMC4yNjgxNDMsIDAuNTQ4NzY5LCAxLjAxODksIDEuNDg3MjgsIDIuNTgzMTMsIDMuMjA5MTgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzY0NjYyLCAwLjQyOTMyMSwgMS4wMDk1OSwgMS45Nzc3LCAyLjk1MDk2LCA1LjIxMjIxLCA2LjQ5NyIsIFwKLSAgICAgICAgICAiMC4zNjQ2NjQsIDAuNDI4NTksIDEuMDExMjQsIDEuOTc3NjksIDIuOTQ2NjgsIDUuMjA1MjcsIDYuNDk0NzUiLCBcCi0gICAgICAgICAgIjAuMzY0MDE2LCAwLjQyOTMxNSwgMS4wMDk3MywgMS45Nzc1NSwgMi45NTA5NSwgNS4yMTIyNSwgNi40OTU2OCIsIFwKLSAgICAgICAgICAiMC4zNjUzODksIDAuNDI5NDcsIDEuMDA5MzksIDEuOTc3NiwgMi45NDUzOSwgNS4yMTIyNiwgNi40OTM2MyIsIFwKLSAgICAgICAgICAiMC4zNjc0ODIsIDAuNDMwNTQxLCAxLjAwOTUxLCAxLjk4MTExLCAyLjk0Nzc0LCA1LjIwNDI1LCA2LjQ5NTAyIiwgXAotICAgICAgICAgICIwLjM3NDE5MywgMC40MzY2MDMsIDEuMDExMTQsIDEuOTgwOTcsIDIuOTQ2MDEsIDUuMjA0MjgsIDYuNDk1MTciLCBcCi0gICAgICAgICAgIjAuMzgyMDU3LCAwLjQ0MjcwNCwgMS4wMTE3OCwgMS45NzczNywgMi45NDU4OSwgNS4yMDk1MywgNi40OTQxMyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkFOIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI0NjksIDAuMDAyNDY5LCAwLjAwMjQ2OSwgMC4wMDI0NjksIDAuMDAyNDY5LCAwLjAwMjQ2OCwgMC4wMDI0NjYiLCBcCi0gICAgICAgICAgIjAuMDAyNDc5LCAwLjAwMjQ4LCAwLjAwMjQ4LCAwLjAwMjQ4LCAwLjAwMjQ3OSwgMC4wMDI0NzksIDAuMDAyNDc5IiwgXAotICAgICAgICAgICIwLjAwMjU3MSwgMC4wMDI1NzEsIDAuMDAyNTcxLCAwLjAwMjU3MSwgMC4wMDI1NzEsIDAuMDAyNTcsIDAuMDAyNTY5IiwgXAotICAgICAgICAgICIwLjAwMjY4NywgMC4wMDI2ODcsIDAuMDAyNjg3LCAwLjAwMjY4NywgMC4wMDI2ODYsIDAuMDAyNjg2LCAwLjAwMjY4NSIsIFwKLSAgICAgICAgICAiMC4wMDI4MjksIDAuMDAyODMsIDAuMDAyODMsIDAuMDAyODI5LCAwLjAwMjgyOSwgMC4wMDI4MjksIDAuMDAyODI4IiwgXAotICAgICAgICAgICIwLjAwMzA1MSwgMC4wMDMwNCwgMC4wMDMwMzcsIDAuMDAzMDM2LCAwLjAwMzAzNywgMC4wMDMwNDgsIDAuMDAzMDQ3IiwgXAotICAgICAgICAgICIwLjAwMzI1OCwgMC4wMDMyNTcsIDAuMDAzMjU0LCAwLjAwMzI1MywgMC4wMDMyNTUsIDAuMDAzMjM2LCAwLjAwMzIzNCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjc0MiwgMC4wMDI3NDMsIDAuMDAyNzQ1LCAwLjAwMjc0NSwgMC4wMDI3NDYsIDAuMDAyNzQ2LCAwLjAwMjc0NiIsIFwKLSAgICAgICAgICAiMC4wMDI3NTgsIDAuMDAyNzU5LCAwLjAwMjc2MywgMC4wMDI3NjUsIDAuMDAyNzY1LCAwLjAwMjc2NSwgMC4wMDI3NjUiLCBcCi0gICAgICAgICAgIjAuMDAyODQzLCAwLjAwMjg0NCwgMC4wMDI4NSwgMC4wMDI4NTIsIDAuMDAyODUyLCAwLjAwMjg1MywgMC4wMDI4NTMiLCBcCi0gICAgICAgICAgIjAuMDAyOTU0LCAwLjAwMjk1NSwgMC4wMDI5NjksIDAuMDAyOTY0LCAwLjAwMjk3MiwgMC4wMDI5NzMsIDAuMDAyOTczIiwgXAotICAgICAgICAgICIwLjAwMzA4NiwgMC4wMDMwOCwgMC4wMDMwODYsIDAuMDAzMDk4LCAwLjAwMzA5LCAwLjAwMzA5OSwgMC4wMDMxIiwgXAotICAgICAgICAgICIwLjAwMzI5MywgMC4wMDMzMDQsIDAuMDAzMzEyLCAwLjAwMzMwNSwgMC4wMDMzMTYsIDAuMDAzMzA3LCAwLjAwMzMwNyIsIFwKLSAgICAgICAgICAiMC4wMDM0ODksIDAuMDAzNTA0LCAwLjAwMzUxMiwgMC4wMDM1MDIsIDAuMDAzNTAzLCAwLjAwMzUxNywgMC4wMDM1MTciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyMjY5LCAwLjAwMjI2OSwgMC4wMDIyNjksIDAuMDAyMjY5LCAwLjAwMjI2OSwgMC4wMDIyNjksIDAuMDAyMjY5IiwgXAotICAgICAgICAgICIwLjAwMjI5MSwgMC4wMDIyOTEsIDAuMDAyMjkyLCAwLjAwMjI5MiwgMC4wMDIyOTIsIDAuMDAyMjkyLCAwLjAwMjI5MiIsIFwKLSAgICAgICAgICAiMC4wMDIzNjUsIDAuMDAyMzY2LCAwLjAwMjM2NiwgMC4wMDIzNjcsIDAuMDAyMzY3LCAwLjAwMjM2NywgMC4wMDIzNjYiLCBcCi0gICAgICAgICAgIjAuMDAyNDgxLCAwLjAwMjQ4OCwgMC4wMDI0ODMsIDAuMDAyNDgzLCAwLjAwMjQ4MywgMC4wMDI0OSwgMC4wMDI0ODMiLCBcCi0gICAgICAgICAgIjAuMDAyNjA5LCAwLjAwMjYyLCAwLjAwMjYxMiwgMC4wMDI2MjEsIDAuMDAyNjEyLCAwLjAwMjYyMSwgMC4wMDI2MTEiLCBcCi0gICAgICAgICAgIjAuMDAyODQ0LCAwLjAwMjgzNywgMC4wMDI4NDUsIDAuMDAyODM2LCAwLjAwMjg0NiwgMC4wMDI4MzYsIDAuMDAyODQ1IiwgXAotICAgICAgICAgICIwLjAwMzAzNiwgMC4wMDMwNTEsIDAuMDAzMDM4LCAwLjAwMzA1MywgMC4wMDMwNTMsIDAuMDAzMDUzLCAwLjAwMzA1MyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjc5OCwgMC4wMDI3OTksIDAuMDAyODAxLCAwLjAwMjgwMiwgMC4wMDI4MDMsIDAuMDAyODAzLCAwLjAwMjgwMyIsIFwKLSAgICAgICAgICAiMC4wMDI4MDgsIDAuMDAyODEsIDAuMDAyODE2LCAwLjAwMjgxOCwgMC4wMDI4MTgsIDAuMDAyODE4LCAwLjAwMjgxNyIsIFwKLSAgICAgICAgICAiMC4wMDI4OSwgMC4wMDI4OTIsIDAuMDAyOSwgMC4wMDI5MDMsIDAuMDAyOTA0LCAwLjAwMjkwNSwgMC4wMDI5MDUiLCBcCi0gICAgICAgICAgIjAuMDAzMDA0LCAwLjAwMzAwNywgMC4wMDMwMTYsIDAuMDAzMDIsIDAuMDAzMDE1LCAwLjAwMzAyMywgMC4wMDMwMTYiLCBcCi0gICAgICAgICAgIjAuMDAzMTI5LCAwLjAwMzEzMiwgMC4wMDMxMzQsIDAuMDAzMTQ3LCAwLjAwMzE0OCwgMC4wMDMxNDEsIDAuMDAzMTUiLCBcCi0gICAgICAgICAgIjAuMDAzMzQ1LCAwLjAwMzM0OCwgMC4wMDMzNDgsIDAuMDAzMzY2LCAwLjAwMzM1NiwgMC4wMDMzNTcsIDAuMDAzMzU4IiwgXAotICAgICAgICAgICIwLjAwMzUzMywgMC4wMDM1NDgsIDAuMDAzNTQ5LCAwLjAwMzU2NywgMC4wMDM1NywgMC4wMDM1NTksIDAuMDAzNTcyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxOTI0LCAwLjAwMTkyNCwgMC4wMDE5MjUsIDAuMDAxOTI2LCAwLjAwMTkyNSwgMC4wMDE5MjUsIDAuMDAxOTI1IiwgXAotICAgICAgICAgICIwLjAwMTkyOSwgMC4wMDE5MjgsIDAuMDAxOTMsIDAuMDAxOTMsIDAuMDAxOTMsIDAuMDAxOTMsIDAuMDAxOTI5IiwgXAotICAgICAgICAgICIwLjAwMTk0NSwgMC4wMDE5NDQsIDAuMDAxOTM4LCAwLjAwMTkzNCwgMC4wMDE5MzQsIDAuMDAxOTMzLCAwLjAwMTkzMyIsIFwKLSAgICAgICAgICAiMC4wMDE5NzQsIDAuMDAxOTY4LCAwLjAwMTk1MSwgMC4wMDE5NDMsIDAuMDAxOTM4LCAwLjAwMTkzNSwgMC4wMDE5MzUiLCBcCi0gICAgICAgICAgIjAuMDAxOTg1LCAwLjAwMjAwMSwgMC4wMDE5NjcsIDAuMDAxOTQ5LCAwLjAwMTk0NiwgMC4wMDE5MzksIDAuMDAxOTM4IiwgXAotICAgICAgICAgICIwLjAwMjAzOCwgMC4wMDIwMzMsIDAuMDAxOTk3LCAwLjAwMTk3LCAwLjAwMTk1OSwgMC4wMDE5NDgsIDAuMDAxOTQzIiwgXAotICAgICAgICAgICIwLjAwMjA5OSwgMC4wMDIwODksIDAuMDAyMDMxLCAwLjAwMTk5MSwgMC4wMDE5NzUsIDAuMDAxOTU4LCAwLjAwMTk1MyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDYwMywgMC4wMDA2MDMsIDAuMDAwNjA2LCAwLjAwMDYwNiwgMC4wMDA2MDYsIDAuMDAwNjA3LCAwLjAwMDYwNyIsIFwKLSAgICAgICAgICAiMC4wMDA1ODcsIDAuMDAwNTksIDAuMDAwNTk5LCAwLjAwMDYwMywgMC4wMDA2MDQsIDAuMDAwNjA1LCAwLjAwMDYwNiIsIFwKLSAgICAgICAgICAiMC4wMDA1NzgsIDAuMDAwNTgxLCAwLjAwMDU5NCwgMC4wMDA2LCAwLjAwMDYwMiwgMC4wMDA2MDUsIDAuMDAwNjA0IiwgXAotICAgICAgICAgICIwLjAwMDU4MiwgMC4wMDA1ODQsIDAuMDAwNTkzLCAwLjAwMDU5OSwgMC4wMDA2MDIsIDAuMDAwNjAzLCAwLjAwMDYwNCIsIFwKLSAgICAgICAgICAiMC4wMDA1OTUsIDAuMDAwNTk1LCAwLjAwMDU5NywgMC4wMDA2MDEsIDAuMDAwNjAyLCAwLjAwMDYwNCwgMC4wMDA2MDUiLCBcCi0gICAgICAgICAgIjAuMDAwNjM0LCAwLjAwMDYyOCwgMC4wMDA2MTEsIDAuMDAwNjA3LCAwLjAwMDYwNywgMC4wMDA2MDcsIDAuMDAwNjA2IiwgXAotICAgICAgICAgICIwLjAwMDY4LCAwLjAwMDY2OCwgMC4wMDA2MzEsIDAuMDAwNjE4LCAwLjAwMDYxMywgMC4wMDA2MSwgMC4wMDA2MSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkQiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTYyNCwgMC4wMDE2MjUsIDAuMDAxNjI2LCAwLjAwMTYyNywgMC4wMDE2MjcsIDAuMDAxNjI3LCAwLjAwMTYyNyIsIFwKLSAgICAgICAgICAiMC4wMDE2MywgMC4wMDE2MzEsIDAuMDAxNjM0LCAwLjAwMTYzNiwgMC4wMDE2MzYsIDAuMDAxNjM2LCAwLjAwMTYzNiIsIFwKLSAgICAgICAgICAiMC4wMDE2NDQsIDAuMDAxNjQzLCAwLjAwMTY0MSwgMC4wMDE2NCwgMC4wMDE2NDEsIDAuMDAxNjQxLCAwLjAwMTY0MSIsIFwKLSAgICAgICAgICAiMC4wMDE2NjUsIDAuMDAxNjYxLCAwLjAwMTY1MSwgMC4wMDE2NDYsIDAuMDAxNjQzLCAwLjAwMTYzOSwgMC4wMDE2NDIiLCBcCi0gICAgICAgICAgIjAuMDAxNjg4LCAwLjAwMTY4NSwgMC4wMDE2NjMsIDAuMDAxNjQ4LCAwLjAwMTY0OSwgMC4wMDE2NDMsIDAuMDAxNjQ0IiwgXAotICAgICAgICAgICIwLjAwMTc1NSwgMC4wMDE3NDIsIDAuMDAxNjkxLCAwLjAwMTY3LCAwLjAwMTY2MiwgMC4wMDE2NTIsIDAuMDAxNjQ5IiwgXAotICAgICAgICAgICIwLjAwMTgyOCwgMC4wMDE4MDMsIDAuMDAxNzIzLCAwLjAwMTY4OSwgMC4wMDE2NzUsIDAuMDAxNjYxLCAwLjAwMTY1NyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDYwMiwgMC4wMDA2MDMsIDAuMDAwNjA1LCAwLjAwMDYwNiwgMC4wMDA2MDYsIDAuMDAwNjA3LCAwLjAwMDYwNyIsIFwKLSAgICAgICAgICAiMC4wMDA1OSwgMC4wMDA1OTIsIDAuMDAwNiwgMC4wMDA2MDQsIDAuMDAwNjA1LCAwLjAwMDYwNiwgMC4wMDA2MDYiLCBcCi0gICAgICAgICAgIjAuMDAwNTk1LCAwLjAwMDU5NiwgMC4wMDA2MDEsIDAuMDAwNjAzLCAwLjAwMDYwNSwgMC4wMDA2MDUsIDAuMDAwNjA2IiwgXAotICAgICAgICAgICIwLjAwMDYxNCwgMC4wMDA2MTEsIDAuMDAwNjA3LCAwLjAwMDYwNiwgMC4wMDA2MDYsIDAuMDAwNjA2LCAwLjAwMDYwNyIsIFwKLSAgICAgICAgICAiMC4wMDA2NCwgMC4wMDA2MzUsIDAuMDAwNjE2LCAwLjAwMDYxMSwgMC4wMDA2MSwgMC4wMDA2MDgsIDAuMDAwNjA4IiwgXAotICAgICAgICAgICIwLjAwMDcwMywgMC4wMDA2OTEsIDAuMDAwNjQ0LCAwLjAwMDYyNiwgMC4wMDA2MTksIDAuMDAwNjE0LCAwLjAwMDYxMyIsIFwKLSAgICAgICAgICAiMC4wMDA3NjUsIDAuMDAwNzQ4LCAwLjAwMDY3NiwgMC4wMDA2NDMsIDAuMDAwNjMxLCAwLjAwMDYyMSwgMC4wMDA2MTgiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBOQU5ENFgyICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKE5BTkQ0WDIpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC43MTk4MzM7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMjEwNzQ0OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMjEwNzQ0OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMjEwMzM4OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTA0OSwgMC4wMDEwNDgsIDAuMDAxMDQ3LCAwLjAwMTA0NywgMC4wMDEwNDcsIDAuMDAxMDQ3LCAwLjAwMTA0NyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTA1LCAwLjAwMTA1LCAwLjAwMTA1MSwgMC4wMDEwNTEsIDAuMDAxMDUxLCAwLjAwMTA0OSwgMC4wMDEwNTEiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTkwNDg0OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTkwNDg0OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTkwMTY3OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTA0OCwgMC4wMDEwNDgsIDAuMDAxMDQ1LCAwLjAwMTA0NywgMC4wMDEwNDcsIDAuMDAxMDQ3LCAwLjAwMTA0NyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTA0OSwgMC4wMDEwNSwgMC4wMDEwNTEsIDAuMDAxMDUyLCAwLjAwMTA1MiwgMC4wMDEwNTIsIDAuMDAxMDUyIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihDKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE3Nzg1OTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE3Nzg1OTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE3NzY0MTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDEwNDksIDAuMDAxMDQ4LCAwLjAwMTA0NywgMC4wMDEwNDcsIDAuMDAxMDQ3LCAwLjAwMTA0NywgMC4wMDEwNDciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDEwNDksIDAuMDAxMDUsIDAuMDAxMDUxLCAwLjAwMTA1MSwgMC4wMDEwNTIsIDAuMDAxMDUyLCAwLjAwMTA1MiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNjU0MTY7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNjUzNjU7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNjU0MTY7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNTY5LCAwLjAwMDU2OCwgMC4wMDA1NjgsIDAuMDAwNTY3LCAwLjAwMDU2NywgMC4wMDA1NjcsIDAuMDAwNTY3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxMTkxLCAwLjAwMTE5MiwgMC4wMDExOTIsIDAuMDAxMTkyLCAwLjAwMTE5MiwgMC4wMDExOTIsIDAuMDAxMTkyIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMjE5MDIzOwotICAgIGZ1bmN0aW9uIDogIighKCgoQSBCKSBDKSBEKSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyNjQ5OCwgMC4xMDQzMiwgMC4xNjYyMDIsIDAuMjQzNTgsIDAuMzIwNzQxLCAwLjM5Nzk3OCwgMC40NzUyNTgiLCBcCi0gICAgICAgICAgIjAuMDM0NzI2LCAwLjExMjU1MywgMC4xNzQzNDksIDAuMjUxNjA5LCAwLjMyOTAwMiwgMC40MDYxODgsIDAuNDgzMTU3IiwgXAotICAgICAgICAgICIwLjA0NTEyNCwgMC4xMjI5NjIsIDAuMTg0NzkzLCAwLjI2MjAwMywgMC4zMzkyMDYsIDAuNDE2NDUxLCAwLjQ5Mzc2OSIsIFwKLSAgICAgICAgICAiMC4wNTM0MzEsIDAuMTMzMDY4LCAwLjE5NDg2OSwgMC4yNzIwOTQsIDAuMzQ5MzEzLCAwLjQyNjcxNSwgMC41MDM2NDEiLCBcCi0gICAgICAgICAgIjAuMDU5NzgyLCAwLjE0MzYwNiwgMC4yMDUzNCwgMC4yODI1NDgsIDAuMzU5NjM4LCAwLjQzNzAzNywgMC41MTQzMTciLCBcCi0gICAgICAgICAgIjAuMDY4MjE2LCAwLjE2MDYzOCwgMC4yMjIxNTgsIDAuMjk5Mjg1LCAwLjM3NjQxLCAwLjQ1MzY5MiwgMC41MzA4NDYiLCBcCi0gICAgICAgICAgIjAuMDc0MDU2LCAwLjE3NTUwMSwgMC4yMzY4OTMsIDAuMzEzOTQ0LCAwLjM5MTAyOCwgMC40NjgxMzUsIDAuNTQ1NDAxIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0ODEyOCwgMC4yMTEzMjEsIDAuMzQxODgzLCAwLjUwNTIxMiwgMC42Njg0NDcsIDAuODMxNTUsIDAuOTk0ODYzIiwgXAotICAgICAgICAgICIwLjA1MDc3OCwgMC4yMTEyOSwgMC4zNDE3NDgsIDAuNTA1MTU4LCAwLjY2ODI3OSwgMC44MzE1OTgsIDAuOTk0ODgiLCBcCi0gICAgICAgICAgIjAuMDU4NjI4LCAwLjIxMjI0OCwgMC4zNDE3NTIsIDAuNTA0OTcyLCAwLjY2ODEyLCAwLjgzMTU3OSwgMC45OTQ4NDQiLCBcCi0gICAgICAgICAgIjAuMDY3OTY0LCAwLjIxNjI2NiwgMC4zNDI5ODUsIDAuNTA0OTY5LCAwLjY2ODA5NiwgMC44MzE1MzYsIDAuOTk0MjYiLCBcCi0gICAgICAgICAgIjAuMDc3NDU4LCAwLjIyMjAyNCwgMC4zNDYxNzMsIDAuNTA1ODEzLCAwLjY2ODE0NywgMC44MzEzNDIsIDAuOTk0NzM3IiwgXAotICAgICAgICAgICIwLjA5MTA2NSwgMC4yMzM1MDYsIDAuMzU0MTA5LCAwLjUxMDI5OCwgMC42Njk5MzksIDAuODMxNzU3LCAwLjk5NDc0OSIsIFwKLSAgICAgICAgICAiMC4xMDE3OTMsIDAuMjQ0OTI1LCAwLjM2Mjg3MywgMC41MTY0MzgsIDAuNjczODU5LCAwLjgzMzY2MiwgMC45OTQ4ODkiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc3ODE5LCAwLjMyMzI1MiwgMC41MTk2NTcsIDAuNzY1NDc4LCAxLjAxMDI5LCAxLjI1NjczLCAxLjUwMTciLCBcCi0gICAgICAgICAgIjAuMDgyNjk1LCAwLjMyODUzMSwgMC41MjQ4NTMsIDAuNzcwMDcxLCAxLjAxNjA5LCAxLjI2MTQzLCAxLjUwNjMiLCBcCi0gICAgICAgICAgIjAuMDg3NTAyLCAwLjMzMzc5OCwgMC41Mjk5ODIsIDAuNzc1MzYsIDEuMDIwOTMsIDEuMjY2MjYsIDEuNTEyNDgiLCBcCi0gICAgICAgICAgIjAuMDkyMTYxLCAwLjMzODMyNywgMC41MzQ5NzUsIDAuNzgwMDIxLCAxLjAyNTg5LCAxLjI3MDY3LCAxLjUxNzIiLCBcCi0gICAgICAgICAgIjAuMDk2ODIsIDAuMzQyNzEzLCAwLjUzOTQ4OCwgMC43ODQ4MDYsIDEuMDI5ODYsIDEuMjc1ODksIDEuNTIxMDUiLCBcCi0gICAgICAgICAgIjAuMTAzNTcyLCAwLjM1MDA4MiwgMC41NDY0OTIsIDAuNzkxOTU0LCAxLjAzODI0LCAxLjI4MzEyLCAxLjUyODAzIiwgXAotICAgICAgICAgICIwLjEwOTE5NywgMC4zNTY2ODMsIDAuNTUzMDY3LCAwLjc5ODM1NSwgMS4wNDQwNSwgMS4yOTAwMiwgMS41MzQ0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEzODAyMSwgMC42NDMxMzcsIDEuMDQ3MzQsIDEuNTQ5ODMsIDIuMDU3NTgsIDIuNTU4MiwgMy4wNjI3MiIsIFwKLSAgICAgICAgICAiMC4xMzgxODIsIDAuNjQyMzU5LCAxLjA0NTcyLCAxLjU1MTE5LCAyLjA1NDE4LCAyLjU1ODQsIDMuMDYyNjUiLCBcCi0gICAgICAgICAgIjAuMTM5MTUxLCAwLjY0MjIwNywgMS4wNDU3NSwgMS41NTAxLCAyLjA1NzYyLCAyLjU1ODM1LCAzLjA2MjYiLCBcCi0gICAgICAgICAgIjAuMTQwOTA3LCAwLjY0MzI5OCwgMS4wNDU2MiwgMS41NTIzLCAyLjA1NDE3LCAyLjU1OTA1LCAzLjA2MjYxIiwgXAotICAgICAgICAgICIwLjE0MzU4MiwgMC42NDMzMjUsIDEuMDQ1NjEsIDEuNTUyNDYsIDIuMDU3MjQsIDIuNTU4OTksIDMuMDY3OSIsIFwKLSAgICAgICAgICAiMC4xNDkxODksIDAuNjQzNjA0LCAxLjA0NzI1LCAxLjU0OTc4LCAyLjA1NDA4LCAyLjU1ODY2LCAzLjA2NzQ5IiwgXAotICAgICAgICAgICIwLjE1NTM1OCwgMC42NDU0MjcsIDEuMDQ2MDksIDEuNTUwOTMsIDIuMDU0MzMsIDIuNTU4NDMsIDMuMDY0MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDI1OTM0LCAwLjEwNDA0MywgMC4xNjYzNzMsIDAuMjQ0MjE1LCAwLjMyMTk0MiwgMC4zOTk4NDksIDAuNDc3NDU3IiwgXAotICAgICAgICAgICIwLjAzNDEzNywgMC4xMTIyNDksIDAuMTc0NTQ3LCAwLjI1MjI5NCwgMC4zMzAwNDUsIDAuNDA3OTI5LCAwLjQ4NTczNCIsIFwKLSAgICAgICAgICAiMC4wNDQ0OTQsIDAuMTIyMzg2LCAwLjE4NDY3OSwgMC4yNjI0NSwgMC4zNDAwOTgsIDAuNDE4MDE0LCAwLjQ5NTY2IiwgXAotICAgICAgICAgICIwLjA1MjQzNSwgMC4xMzI1NzMsIDAuMTk0Nzg5LCAwLjI3MjU3OCwgMC4zNTAzODksIDAuNDI4Mzg2LCAwLjUwNjEwMyIsIFwKLSAgICAgICAgICAiMC4wNTg2NjgsIDAuMTQyOTY3LCAwLjIwNTE3MiwgMC4yODI4ODksIDAuMzYwNTU5LCAwLjQzODUxMSwgMC41MTYzMjIiLCBcCi0gICAgICAgICAgIjAuMDY2NjY2LCAwLjE1OTk1MSwgMC4yMjE4NTIsIDAuMjk5NjIxLCAwLjM3NzIzNCwgMC40NTQ0NzYsIDAuNTMyODI4IiwgXAotICAgICAgICAgICIwLjA3MjUwOCwgMC4xNzQ3OTcsIDAuMjM2NTcxLCAwLjMxNDEzMiwgMC4zOTE4MDYsIDAuNDY5NTQ5LCAwLjU0NzQ3MyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDY5ODEsIDAuMjExNTYxLCAwLjM0MzI2NSwgMC41MDc4ODMsIDAuNjcyNDU2LCAwLjgzNzA1NywgMS4wMDEzNiIsIFwKLSAgICAgICAgICAiMC4wNDk3MjIsIDAuMjExNTQxLCAwLjM0MzIyOCwgMC41MDc3MDcsIDAuNjcyMjc1LCAwLjgzNjg3NiwgMS4wMDE0OSIsIFwKLSAgICAgICAgICAiMC4wNTc1NDUsIDAuMjEyNTY2LCAwLjM0MzEzOSwgMC41MDc4NzYsIDAuNjcyMywgMC44MzcwOTEsIDEuMDAxMzQiLCBcCi0gICAgICAgICAgIjAuMDY3MTA1LCAwLjIxNjY5NSwgMC4zNDQzNTcsIDAuNTA3NjksIDAuNjcyMjg1LCAwLjgzNzE2NSwgMS4wMDE0NCIsIFwKLSAgICAgICAgICAiMC4wNzY1NDcsIDAuMjIyNTg3LCAwLjM0NzY4MSwgMC41MDg2NTksIDAuNjcxNzgsIDAuODM2NjY4LCAxLjAwMTIxIiwgXAotICAgICAgICAgICIwLjA5MDA3NSwgMC4yMzQyMTksIDAuMzU1NzE4LCAwLjUxMzE2OCwgMC42NzQwMjcsIDAuODM2NzQ5LCAxLjAwMTQyIiwgXAotICAgICAgICAgICIwLjEwMDU1OCwgMC4yNDU4NzMsIDAuMzY0NTg0LCAwLjUxOTMwNywgMC42Nzc5NDcsIDAuODM5MDg0LCAxLjAwMTg0Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3NjMzNywgMC4zMjIxODgsIDAuNTE4MTE5LCAwLjc2MzUyOSwgMS4wMDk3MywgMS4yNTQ1NCwgMS40OTk1IiwgXAotICAgICAgICAgICIwLjA4MTY4OCwgMC4zMjc2MTcsIDAuNTIzODM5LCAwLjc2OTAyNiwgMS4wMTUzOCwgMS4yNTk1NywgMS41MDQ4NCIsIFwKLSAgICAgICAgICAiMC4wODc4NTcsIDAuMzMzOTkxLCAwLjUzMDY5NiwgMC43NzYyNzYsIDEuMDIxNDcsIDEuMjY3MzYsIDEuNTExOTciLCBcCi0gICAgICAgICAgIjAuMDk0MTcxLCAwLjM0MDE4NCwgMC41MzY4MzcsIDAuNzgxOTgyLCAxLjAyNzIxLCAxLjI3NDE1LCAxLjUxODQzIiwgXAotICAgICAgICAgICIwLjEwMDY0LCAwLjM0NjYyLCAwLjU0MzA5NiwgMC43ODg0NzcsIDEuMDMzODEsIDEuMjgwMTIsIDEuNTI1NzMiLCBcCi0gICAgICAgICAgIjAuMTEwMjMxLCAwLjM1NjkxMSwgMC41NTM0NSwgMC43OTg3NTMsIDEuMDQ0OTMsIDEuMjg5NTksIDEuNTM0ODUiLCBcCi0gICAgICAgICAgIjAuMTE3OTgyLCAwLjM2NTk0MiwgMC41NjIzMTQsIDAuODA4Mjc5LCAxLjA1MzE5LCAxLjI5ODg4LCAxLjU0Mzc3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEzODAxLCAwLjY0MjI3MywgMS4wNDczMSwgMS41NTI1LCAyLjA1Mzk4LCAyLjU1ODIzLCAzLjA2Nzg2IiwgXAotICAgICAgICAgICIwLjEzODE3MiwgMC42NDIxMzcsIDEuMDQ3MTcsIDEuNTUwNTMsIDIuMDUzNjUsIDIuNTYyNDUsIDMuMDY0MTkiLCBcCi0gICAgICAgICAgIjAuMTM5NjEzLCAwLjY0MzI0OSwgMS4wNDU2MSwgMS41NDk4NSwgMi4wNTM5OCwgMi41NTgzNCwgMy4wNjc4MyIsIFwKLSAgICAgICAgICAiMC4xNDIzMzMsIDAuNjQyMzQxLCAxLjA0NzQxLCAxLjU1MTUxLCAyLjA1NTgyLCAyLjU1ODY1LCAzLjA2Nzg4IiwgXAotICAgICAgICAgICIwLjE0NjI1NCwgMC42NDIzNSwgMS4wNDcyOSwgMS41NTIzMywgMi4wNTczNywgMi41NTgzNSwgMy4wNjI1MyIsIFwKLSAgICAgICAgICAiMC4xNTQwNzQsIDAuNjQ0NzEyLCAxLjA0NTYyLCAxLjU1MjI2LCAyLjA1NDE2LCAyLjU1ODE3LCAzLjA2NzQzIiwgXAotICAgICAgICAgICIwLjE2MjA3NSwgMC42NDU4MDMsIDEuMDQ2MTQsIDEuNTQ5NywgMi4wNTQzLCAyLjU2MjcsIDMuMDY3MzQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDI0ODM3LCAwLjEwMjczNiwgMC4xNjQ5NDcsIDAuMjQyODQ0LCAwLjMyMDU3NSwgMC4zOTg1OTUsIDAuNDc2MjI3IiwgXAotICAgICAgICAgICIwLjAzMzA4NSwgMC4xMTEwMTQsIDAuMTczMjMsIDAuMjUxMDE0LCAwLjMyODY1OCwgMC40MDY3NDIsIDAuNDg0NjA4IiwgXAotICAgICAgICAgICIwLjA0MzI4NSwgMC4xMjExNjIsIDAuMTgzNDAxLCAwLjI2MTA4NCwgMC4zMzg4MTcsIDAuNDE2MzIsIDAuNDk0MzE1IiwgXAotICAgICAgICAgICIwLjA1MDkzNSwgMC4xMzEzNTMsIDAuMTkzNTgzLCAwLjI3MTM3MiwgMC4zNDkxMDgsIDAuNDI3MDcxLCAwLjUwNDc4NSIsIFwKLSAgICAgICAgICAiMC4wNTY4ODEsIDAuMTQxNzQsIDAuMjAzODg4LCAwLjI4MTYzNCwgMC4zNTkyNDcsIDAuNDM3MTE4LCAwLjUxNTE3NSIsIFwKLSAgICAgICAgICAiMC4wNjQ2MjUsIDAuMTU4NzI5LCAwLjIyMDU5NiwgMC4yOTgyNzQsIDAuMzc1OTU4LCAwLjQ1MzE4NSwgMC41MzE1MTMiLCBcCi0gICAgICAgICAgIjAuMDcwMDEzLCAwLjE3MzQ5MiwgMC4yMzUyOTQsIDAuMzEyNzkyLCAwLjM5MDU2OSwgMC40NjgyNzMsIDAuNTQ2MTYxIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0NTMyMiwgMC4yMDk5NTEsIDAuMzQxNTg5LCAwLjUwNjIyMSwgMC42NzA3OTUsIDAuODM1MzgyLCAwLjk5OTcxIiwgXAotICAgICAgICAgICIwLjA0ODI1MywgMC4yMDk5OTcsIDAuMzQxNTUyLCAwLjUwNjEyOCwgMC42NzA2MjMsIDAuODM1MTY0LCAwLjk5OTgyOCIsIFwKLSAgICAgICAgICAiMC4wNTYyMjQsIDAuMjExMDM4LCAwLjM0MTU5NywgMC41MDYxNDEsIDAuNjcwNTczLCAwLjgzNTAyNSwgMC45OTk2MiIsIFwKLSAgICAgICAgICAiMC4wNjU4NDksIDAuMjE1MTg3LCAwLjM0Mjc1LCAwLjUwNjA3NCwgMC42NzA1NzQsIDAuODM1MzA1LCAwLjk5OTc0NSIsIFwKLSAgICAgICAgICAiMC4wNzUyMiwgMC4yMjEwOTIsIDAuMzQ2MTc0LCAwLjUwNzAzLCAwLjY3MDcxMSwgMC44MzUxMzUsIDAuOTk5NzA5IiwgXAotICAgICAgICAgICIwLjA4ODM3NCwgMC4yMzI4NzIsIDAuMzU0MjQsIDAuNTExODA3LCAwLjY3MjYwOSwgMC44MzUxNzQsIDAuOTk5ODU3IiwgXAotICAgICAgICAgICIwLjA5ODk2OCwgMC4yNDQ1MzMsIDAuMzYzMTQyLCAwLjUxNzg4NiwgMC42NzY0MzEsIDAuODM3MjIyLCAxLjAwMDA5Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3MzE3LCAwLjMxODcwNSwgMC41MTUxNTQsIDAuNzYwMjUzLCAxLjAwNTg0LCAxLjI1MDkxLCAxLjQ5NjA0IiwgXAotICAgICAgICAgICIwLjA3OTExMiwgMC4zMjQ5ODgsIDAuNTIxNDI0LCAwLjc2NjYxOSwgMS4wMTE2OSwgMS4yNTcxOSwgMS41MDM2OCIsIFwKLSAgICAgICAgICAiMC4wODY5OSwgMC4zMzMwMTMsIDAuNTI5NDM1LCAwLjc3NDg0MSwgMS4wMjAyLCAxLjI2NTgxLCAxLjUxMTg4IiwgXAotICAgICAgICAgICIwLjA5NTIyNywgMC4zNDExNDgsIDAuNTM3NTcxLCAwLjc4Mjg2NCwgMS4wMjgxNSwgMS4yNzQ5MywgMS41MTkyNiIsIFwKLSAgICAgICAgICAiMC4xMDM1NjksIDAuMzQ5MjU4LCAwLjU0NTYyMSwgMC43OTEwOSwgMS4wMzYzMSwgMS4yODE5NCwgMS41Mjc2MSIsIFwKLSAgICAgICAgICAiMC4xMTU5NDQsIDAuMzYyMzY0LCAwLjU1OTEzNywgMC44MDQyNTgsIDEuMDQ5NTIsIDEuMjk1MTMsIDEuNTQwMiIsIFwKLSAgICAgICAgICAiMC4xMjU0MjIsIDAuMzc0MTIsIDAuNTcwMTY2LCAwLjgxNTg4MiwgMS4wNjA4MSwgMS4zMDY0NCwgMS41NTE0OSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMzc5NzIsIDAuNjQzMjksIDEuMDQ1NjIsIDEuNTUyNDQsIDIuMDU3ODEsIDIuNTYyNjcsIDMuMDY3NTgiLCBcCi0gICAgICAgICAgIjAuMTM4MTU3LCAwLjY0MjI5MiwgMS4wNDU2NiwgMS41NTAxMiwgMi4wNTc0MiwgMi41NTg3OSwgMy4wNjI2NSIsIFwKLSAgICAgICAgICAiMC4xNDAxNDYsIDAuNjQzMTcyLCAxLjA0NTc2LCAxLjU1MDEyLCAyLjA1NDUyLCAyLjU2MjgyLCAzLjA2MjYyIiwgXAotICAgICAgICAgICIwLjE0NDM0MywgMC42NDMyMDgsIDEuMDQ3MjksIDEuNTUwNzIsIDIuMDU0MzEsIDIuNTU4MiwgMy4wNjc4OCIsIFwKLSAgICAgICAgICAiMC4xNDk2OTgsIDAuNjQyMTU5LCAxLjA0NTgzLCAxLjU1MjMyLCAyLjA1NzI1LCAyLjU1ODYzLCAzLjA2ODA1IiwgXAotICAgICAgICAgICIwLjE1OTM4NCwgMC42NDM4NCwgMS4wNDU2MywgMS41NDk3LCAyLjA1NzMsIDIuNTU4NCwgMy4wNjc0OCIsIFwKLSAgICAgICAgICAiMC4xNjgzNzQsIDAuNjQ3ODI2LCAxLjA0NTkxLCAxLjU1MjQ3LCAyLjA1NTM4LCAyLjU1ODUzLCAzLjA2NzM5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkQiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyNDEyOSwgMC4xMDM3MzcsIDAuMTY3Mzg1LCAwLjI0Njk1OCwgMC4zMjY3OCwgMC40MDYwNTIsIDAuNDg2MTY0IiwgXAotICAgICAgICAgICIwLjAzMjQ3LCAwLjExMjExMiwgMC4xNzU4MjEsIDAuMjU1MzA4LCAwLjMzNDg3MSwgMC40MTQ1MTYsIDAuNDkzOTA5IiwgXAotICAgICAgICAgICIwLjA0MjQ2LCAwLjEyMjI3NCwgMC4xODU4OTYsIDAuMjY1NDUsIDAuMzQ1MjgsIDAuNDI0NjIyLCAwLjUwNDEyMSIsIFwKLSAgICAgICAgICAiMC4wNDk3MjcsIDAuMTMyOTIxLCAwLjE5NjUyNCwgMC4yNzYxODIsIDAuMzU1NzMzLCAwLjQzNTI4NywgMC41MTQ5MTMiLCBcCi0gICAgICAgICAgIjAuMDU1ODE1LCAwLjE0MzA4MiwgMC4yMDY2NzYsIDAuMjg2MjM4LCAwLjM2NTkyMiwgMC40NDU1NjQsIDAuNTI0ODE5IiwgXAotICAgICAgICAgICIwLjA2MzAyMiwgMC4xNjAxMTEsIDAuMjIzNDYyLCAwLjMwMjkxOCwgMC4zODI0NDQsIDAuNDYxNDU0LCAwLjU0MTYzOSIsIFwKLSAgICAgICAgICAiMC4wNjgxNjgsIDAuMTc0OTQ2LCAwLjIzODExNiwgMC4zMTc1NSwgMC4zOTcwODksIDAuNDc2NTAzLCAwLjU1NjM5NCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDQ4NDksIDAuMjEzNDI0LCAwLjM0Nzk5NSwgMC41MTY0NTYsIDAuNjg1MTc4LCAwLjg1NDg4OSwgMS4wMjI4NCIsIFwKLSAgICAgICAgICAiMC4wNDc3NTksIDAuMjEzMzQzLCAwLjM0ODEzNiwgMC41MTY0NTgsIDAuNjg1MjMxLCAwLjg1NDM4LCAxLjAyMjY3IiwgXAotICAgICAgICAgICIwLjA1NTgzMiwgMC4yMTQzMTksIDAuMzQ4MjI5LCAwLjUxNzMyMiwgMC42ODUxNiwgMC44NTQxMTQsIDEuMDIxODkiLCBcCi0gICAgICAgICAgIjAuMDY1NzU0LCAwLjIxODM5NiwgMC4zNDkyNTQsIDAuNTE2NzIzLCAwLjY4NTQyNCwgMC44NTQzODgsIDEuMDIyNDIiLCBcCi0gICAgICAgICAgIjAuMDc0NzU1LCAwLjIyNDMzNywgMC4zNTI5OTQsIDAuNTE3MTY2LCAwLjY4NTIzNSwgMC44NTM2NDksIDEuMDIyODIiLCBcCi0gICAgICAgICAgIjAuMDg4NDAzLCAwLjIzNTU2NSwgMC4zNjA2OTYsIDAuNTIxNTUxLCAwLjY4NjYzMiwgMC44NTM1MTgsIDEuMDIyMzMiLCBcCi0gICAgICAgICAgIjAuMDk5MDI3LCAwLjI0NzAyMiwgMC4zNjg5NzcsIDAuNTI4NTc2LCAwLjY5MDUzNSwgMC44NTcwOTYsIDEuMDIyNzMiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY4MzI2LCAwLjMxMzg1NiwgMC41MTAxOTksIDAuNzU1NTU5LCAxLjAwMTc5LCAxLjI0NjQ1LCAxLjQ5MTUiLCBcCi0gICAgICAgICAgIjAuMDc0ODAzLCAwLjMyMDcyMiwgMC41MTY4ODEsIDAuNzYyMTM2LCAxLjAwNzQ4LCAxLjI1MjQsIDEuNDk4MDgiLCBcCi0gICAgICAgICAgIjAuMDgzNTkyLCAwLjMyOTEwMiwgMC41MjUzMDcsIDAuNzcwODAyLCAxLjAxNjA1LCAxLjI2MTA3LCAxLjUwNjQyIiwgXAotICAgICAgICAgICIwLjA5Mjg1MywgMC4zMzc3MDMsIDAuNTM0MjQ4LCAwLjc3OTIxMSwgMS4wMjQ1MywgMS4yNzA3OCwgMS41MTQ5NiIsIFwKLSAgICAgICAgICAiMC4xMDIzNjQsIDAuMzQ2NTczLCAwLjU0Mjc0NCwgMC43ODgxMDQsIDEuMDMzNDIsIDEuMjc5NywgMS41MjQ1MyIsIFwKLSAgICAgICAgICAiMC4xMTYzODQsIDAuMzYwNjA5LCAwLjU1NjUzMiwgMC44MDE3LCAxLjA0Njg3LCAxLjI5MjI0LCAxLjUzOTA2IiwgXAotICAgICAgICAgICIwLjEyNzA5NSwgMC4zNzMwOTcsIDAuNTY5MTY4LCAwLjgxNDA3NCwgMS4wNTkyLCAxLjMwNDIzLCAxLjU0OTg0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEzODE0NSwgMC42NDIzMzgsIDEuMDQ3MzcsIDEuNTUyNTIsIDIuMDU0MDUsIDIuNTYyOTcsIDMuMDY3ODIiLCBcCi0gICAgICAgICAgIjAuMTM3NjkxLCAwLjY0MzI3MywgMS4wNDcxOCwgMS41NTIyNCwgMi4wNTcyOCwgMi41NjI2MSwgMy4wNjc0NSIsIFwKLSAgICAgICAgICAiMC4xNDA2NjksIDAuNjQzMTM1LCAxLjA0NTgyLCAxLjU0OTY1LCAyLjA1NDM3LCAyLjU2MjQzLCAzLjA2NDM4IiwgXAotICAgICAgICAgICIwLjE0NTkzMiwgMC42NDMxMzcsIDEuMDQ1NTUsIDEuNTUwNzgsIDIuMDU3MjksIDIuNTU4NDIsIDMuMDYyOTEiLCBcCi0gICAgICAgICAgIjAuMTUyNjMxLCAwLjY0MjE0MywgMS4wNDcxNywgMS41NTIzMiwgMi4wNTQ0NSwgMi41NTg3MywgMy4wNjMzNiIsIFwKLSAgICAgICAgICAiMC4xNjQ1NjgsIDAuNjQ1MTQzLCAxLjA0NzIyLCAxLjU0OTgxLCAyLjA1NzMzLCAyLjU2MjUyLCAzLjA2MzYxIiwgXAotICAgICAgICAgICIwLjE3NTIxNSwgMC42NDg5ODEsIDEuMDQ3NywgMS41NTI0MiwgMi4wNTc0OCwgMi41NjIzOCwgMy4wNjc4MyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNzc5NCwgMC4wMDc3OTcsIDAuMDA3Nzk3LCAwLjAwNzc5NywgMC4wMDc3OTYsIDAuMDA3Nzk2LCAwLjAwNzc5NiIsIFwKLSAgICAgICAgICAiMC4wMDc3NjMsIDAuMDA3NzYzLCAwLjAwNzc2NCwgMC4wMDc3NjMsIDAuMDA3NzY0LCAwLjAwNzc1OCwgMC4wMDc3NTkiLCBcCi0gICAgICAgICAgIjAuMDA3ODEzLCAwLjAwNzc3NSwgMC4wMDc3NjgsIDAuMDA3NzY1LCAwLjAwNzc2MywgMC4wMDc3NjIsIDAuMDA3NzYzIiwgXAotICAgICAgICAgICIwLjAwNzg5OSwgMC4wMDc4MjQsIDAuMDA3ODAxLCAwLjAwNzc5MSwgMC4wMDc3ODIsIDAuMDA3Nzc3LCAwLjAwNzc3MyIsIFwKLSAgICAgICAgICAiMC4wMDgwMzYsIDAuMDA3ODczLCAwLjAwNzgzNCwgMC4wMDc4MTUsIDAuMDA3Nzk2LCAwLjAwNzc5MiwgMC4wMDc3ODciLCBcCi0gICAgICAgICAgIjAuMDA4MzMsIDAuMDA3OTg4LCAwLjAwNzkwOSwgMC4wMDc4NjcsIDAuMDA3ODQzLCAwLjAwNzgyOSwgMC4wMDc4MTciLCBcCi0gICAgICAgICAgIjAuMDA4NjM2LCAwLjAwODExMiwgMC4wMDc5OTgsIDAuMDA3OTMxLCAwLjAwNzg5NSwgMC4wMDc4NjksIDAuMDA3ODUzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxNzk5LCAwLjAwMTgzMSwgMC4wMDE4MzQsIDAuMDAxODM2LCAwLjAwMTgzNywgMC4wMDE4MzgsIDAuMDAxODM4IiwgXAotICAgICAgICAgICIwLjAwMTY4NywgMC4wMDE3OTUsIDAuMDAxODExLCAwLjAwMTgyLCAwLjAwMTgyNSwgMC4wMDE4MjgsIDAuMDAxODMiLCBcCi0gICAgICAgICAgIjAuMDAxNjIyLCAwLjAwMTc1OCwgMC4wMDE3ODYsIDAuMDAxODAyLCAwLjAwMTgxMSwgMC4wMDE4MTYsIDAuMDAxODIiLCBcCi0gICAgICAgICAgIjAuMDAxNjA4LCAwLjAwMTczMywgMC4wMDE3NjcsIDAuMDAxNzg4LCAwLjAwMTc5OSwgMC4wMDE4MDcsIDAuMDAxODEyIiwgXAotICAgICAgICAgICIwLjAwMTYzMSwgMC4wMDE3MjMsIDAuMDAxNzU3LCAwLjAwMTc3OSwgMC4wMDE3OTIsIDAuMDAxODAxLCAwLjAwMTgwNiIsIFwKLSAgICAgICAgICAiMC4wMDE3MzIsIDAuMDAxNzM3LCAwLjAwMTc2MSwgMC4wMDE3NzksIDAuMDAxNzkxLCAwLjAwMTc5OSwgMC4wMDE4MDUiLCBcCi0gICAgICAgICAgIjAuMDAxODgxLCAwLjAwMTc3OCwgMC4wMDE3ODUsIDAuMDAxNzk1LCAwLjAwMTgwMiwgMC4wMDE4MDcsIDAuMDAxODExIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2ODAzLCAwLjAwNjgwNywgMC4wMDY4MDcsIDAuMDA2ODA4LCAwLjAwNjgwNywgMC4wMDY4MDcsIDAuMDA2ODA3IiwgXAotICAgICAgICAgICIwLjAwNjc3NiwgMC4wMDY3ODcsIDAuMDA2Nzg5LCAwLjAwNjc4OSwgMC4wMDY3ODgsIDAuMDA2Nzg3LCAwLjAwNjc4NyIsIFwKLSAgICAgICAgICAiMC4wMDY4MSwgMC4wMDY4MjMsIDAuMDA2ODExLCAwLjAwNjgwMiwgMC4wMDY3OTksIDAuMDA2Nzk0LCAwLjAwNjc5MyIsIFwKLSAgICAgICAgICAiMC4wMDY4OTcsIDAuMDA2ODYyLCAwLjAwNjgzOCwgMC4wMDY4MjQsIDAuMDA2ODE2LCAwLjAwNjgxMSwgMC4wMDY4MDciLCBcCi0gICAgICAgICAgIjAuMDA3MDQ0LCAwLjAwNjkyNSwgMC4wMDY4ODIsIDAuMDA2ODU2LCAwLjAwNjgzNiwgMC4wMDY4MzIsIDAuMDA2ODI2IiwgXAotICAgICAgICAgICIwLjAwNzMzMywgMC4wMDcwNTEsIDAuMDA2OTY0LCAwLjAwNjkxMywgMC4wMDY4OSwgMC4wMDY4NjYsIDAuMDA2ODYiLCBcCi0gICAgICAgICAgIjAuMDA3NTk2LCAwLjAwNzE4NiwgMC4wMDcwNTYsIDAuMDA2OTgyLCAwLjAwNjk0LCAwLjAwNjkxOCwgMC4wMDY5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxODAxLCAwLjAwMTgzMywgMC4wMDE4MzcsIDAuMDAxODM5LCAwLjAwMTgzOSwgMC4wMDE4NCwgMC4wMDE4NDEiLCBcCi0gICAgICAgICAgIjAuMDAxNjg5LCAwLjAwMTc5NywgMC4wMDE4MTQsIDAuMDAxODIzLCAwLjAwMTgyNywgMC4wMDE4MzEsIDAuMDAxODMzIiwgXAotICAgICAgICAgICIwLjAwMTYyOSwgMC4wMDE3NjIsIDAuMDAxNzksIDAuMDAxODA2LCAwLjAwMTgxNSwgMC4wMDE4MiwgMC4wMDE4MjQiLCBcCi0gICAgICAgICAgIjAuMDAxNjIzLCAwLjAwMTc0LCAwLjAwMTc3MiwgMC4wMDE3OTIsIDAuMDAxODAzLCAwLjAwMTgxMSwgMC4wMDE4MTYiLCBcCi0gICAgICAgICAgIjAuMDAxNjYxLCAwLjAwMTczMywgMC4wMDE3NjQsIDAuMDAxNzg1LCAwLjAwMTc5NywgMC4wMDE4MDUsIDAuMDAxODExIiwgXAotICAgICAgICAgICIwLjAwMTc5LCAwLjAwMTc1NiwgMC4wMDE3NzQsIDAuMDAxNzg5LCAwLjAwMTc5OSwgMC4wMDE4MDYsIDAuMDAxODExIiwgXAotICAgICAgICAgICIwLjAwMTk2MiwgMC4wMDE4MDUsIDAuMDAxODAyLCAwLjAwMTgwNiwgMC4wMDE4MTEsIDAuMDAxODE1LCAwLjAwMTgxOSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNTY5NCwgMC4wMDU3MDUsIDAuMDA1NzA2LCAwLjAwNTcwNiwgMC4wMDU3MDcsIDAuMDA1NzA4LCAwLjAwNTcwNiIsIFwKLSAgICAgICAgICAiMC4wMDU2ODksIDAuMDA1NzE1LCAwLjAwNTcxOCwgMC4wMDU3MiwgMC4wMDU3MjIsIDAuMDA1NzIyLCAwLjAwNTcyMyIsIFwKLSAgICAgICAgICAiMC4wMDU3MTgsIDAuMDA1NzUyLCAwLjAwNTc0MiwgMC4wMDU3MzcsIDAuMDA1NzM0LCAwLjAwNTczMywgMC4wMDU3MzEiLCBcCi0gICAgICAgICAgIjAuMDA1ODA5LCAwLjAwNTc5LCAwLjAwNTc3LCAwLjAwNTc1OSwgMC4wMDU3NTIsIDAuMDA1NzQ3LCAwLjAwNTc0MyIsIFwKLSAgICAgICAgICAiMC4wMDU5NDcsIDAuMDA1ODUyLCAwLjAwNTgxNSwgMC4wMDU3OSwgMC4wMDU3OTEsIDAuMDA1NzY3LCAwLjAwNTc2MSIsIFwKLSAgICAgICAgICAiMC4wMDYyMDcsIDAuMDA1OTc0LCAwLjAwNTg5MiwgMC4wMDU4NTEsIDAuMDA1ODI2LCAwLjAwNTgwMywgMC4wMDU3OTgiLCBcCi0gICAgICAgICAgIjAuMDA2NDU4LCAwLjAwNjEwNywgMC4wMDU5ODYsIDAuMDA1OTE2LCAwLjAwNTg3NCwgMC4wMDU4NDksIDAuMDA1ODM3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxODAxLCAwLjAwMTgzMywgMC4wMDE4MzcsIDAuMDAxODM5LCAwLjAwMTg0LCAwLjAwMTg0LCAwLjAwMTg0IiwgXAotICAgICAgICAgICIwLjAwMTY5MSwgMC4wMDE3OTgsIDAuMDAxODE0LCAwLjAwMTgyMywgMC4wMDE4MjgsIDAuMDAxODMxLCAwLjAwMTgzMiIsIFwKLSAgICAgICAgICAiMC4wMDE2NDksIDAuMDAxNzY3LCAwLjAwMTc5MiwgMC4wMDE4MDcsIDAuMDAxODE2LCAwLjAwMTgyMSwgMC4wMDE4MjUiLCBcCi0gICAgICAgICAgIjAuMDAxNjc3LCAwLjAwMTc1NSwgMC4wMDE3ODEsIDAuMDAxNzk4LCAwLjAwMTgwOCwgMC4wMDE4MTQsIDAuMDAxODE5IiwgXAotICAgICAgICAgICIwLjAwMTc0OSwgMC4wMDE3NiwgMC4wMDE3ODIsIDAuMDAxNzk4LCAwLjAwMTgwNywgMC4wMDE4MTMsIDAuMDAxODE4IiwgXAotICAgICAgICAgICIwLjAwMTkzLCAwLjAwMTgwMywgMC4wMDE4MDQsIDAuMDAxODEsIDAuMDAxODE1LCAwLjAwMTgxOSwgMC4wMDE4MjIiLCBcCi0gICAgICAgICAgIjAuMDAyMTI1LCAwLjAwMTg2NywgMC4wMDE4NDEsIDAuMDAxODM0LCAwLjAwMTgzMiwgMC4wMDE4MzIsIDAuMDAxODMzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0NTQ2LCAwLjAwNDU3MSwgMC4wMDQ1NzUsIDAuMDA0NTc1LCAwLjAwNDU3NywgMC4wMDQ1NzUsIDAuMDA0NTc2IiwgXAotICAgICAgICAgICIwLjAwNDU0LCAwLjAwNDU5MywgMC4wMDQ2LCAwLjAwNDYwMywgMC4wMDQ2MDYsIDAuMDA0NjA3LCAwLjAwNDYwOSIsIFwKLSAgICAgICAgICAiMC4wMDQ1NzEsIDAuMDA0NjE2LCAwLjAwNDYxNywgMC4wMDQ2MTcsIDAuMDA0NjE3LCAwLjAwNDYxNywgMC4wMDQ2MTciLCBcCi0gICAgICAgICAgIjAuMDA0NjgxLCAwLjAwNDYzMywgMC4wMDQ2MjksIDAuMDA0NjI3LCAwLjAwNDYyNiwgMC4wMDQ2MjUsIDAuMDA0NjI0IiwgXAotICAgICAgICAgICIwLjAwNDc4NCwgMC4wMDQ2OTYsIDAuMDA0NjY5LCAwLjAwNDY1OSwgMC4wMDQ2NTIsIDAuMDA0NjQ3LCAwLjAwNDY0MyIsIFwKLSAgICAgICAgICAiMC4wMDUwNTMsIDAuMDA0Nzk2LCAwLjAwNDczNywgMC4wMDQ3MDUsIDAuMDA0NjkxLCAwLjAwNDY3NywgMC4wMDQ2NzEiLCBcCi0gICAgICAgICAgIjAuMDA1MzA2LCAwLjAwNDkxNSwgMC4wMDQ4MTgsIDAuMDA0NzYzLCAwLjAwNDczNCwgMC4wMDQ3MTksIDAuMDA0NzA3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxODAyLCAwLjAwMTgzOSwgMC4wMDE4NDQsIDAuMDAxODQ2LCAwLjAwMTg0NywgMC4wMDE4NDgsIDAuMDAxODQ4IiwgXAotICAgICAgICAgICIwLjAwMTcxNCwgMC4wMDE4MDgsIDAuMDAxODI3LCAwLjAwMTgzMiwgMC4wMDE4MzYsIDAuMDAxODM5LCAwLjAwMTg0MSIsIFwKLSAgICAgICAgICAiMC4wMDE3NTQsIDAuMDAxNzk5LCAwLjAwMTgxNSwgMC4wMDE4MjYsIDAuMDAxODMxLCAwLjAwMTgzNSwgMC4wMDE4MzciLCBcCi0gICAgICAgICAgIjAuMDAxODc3LCAwLjAwMTgyLCAwLjAwMTgyNiwgMC4wMDE4MzEsIDAuMDAxODM1LCAwLjAwMTgzOCwgMC4wMDE4NCIsIFwKLSAgICAgICAgICAiMC4wMDE5NzYsIDAuMDAxODQ0LCAwLjAwMTgzNywgMC4wMDE4MzgsIDAuMDAxODM5LCAwLjAwMTg0MSwgMC4wMDE4NDIiLCBcCi0gICAgICAgICAgIjAuMDAyMjg5LCAwLjAwMTk2MiwgMC4wMDE5MTIsIDAuMDAxODg5LCAwLjAwMTg3OSwgMC4wMDE4NzMsIDAuMDAxODY4IiwgXAotICAgICAgICAgICIwLjAwMjU3NiwgMC4wMDIwODEsIDAuMDAxOTkxLCAwLjAwMTk0MywgMC4wMDE5MiwgMC4wMDE5MDYsIDAuMDAxODk2Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogTkFORDRYNiAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChOQU5ENFg2KSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDIuMDg3MTk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwNDY0Nzk3OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwNDY0Nzk3OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwNDYzMzEyOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzEzOSwgMC4wMDMxMzYsIDAuMDAzMTM1LCAwLjAwMzEzNSwgMC4wMDMxMzQsIDAuMDAzMTM0LCAwLjAwMzEzMyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzE0MSwgMC4wMDMxNDMsIDAuMDAzMTQ1LCAwLjAwMzE0NywgMC4wMDMxNDMsIDAuMDAzMTQ4LCAwLjAwMzE0NyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDA0NDY0MTc7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDA0NDY0MTc7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDA0NDUxODM7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzMTQsIDAuMDAzMTM4LCAwLjAwMzEzNiwgMC4wMDMxMzMsIDAuMDAzMTM2LCAwLjAwMzEzNCwgMC4wMDMxMzQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDMxNDEsIDAuMDAzMTQ0LCAwLjAwMzE0NiwgMC4wMDMxNDcsIDAuMDAzMTQ1LCAwLjAwMzE0NywgMC4wMDMxNDgiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEMpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwNDU0ODgxOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwNDU0ODgxOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwNDUzOTY7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzMTM5LCAwLjAwMzEzOCwgMC4wMDMxMzYsIDAuMDAzMTM2LCAwLjAwMzEyOCwgMC4wMDMxMzUsIDAuMDAzMTMzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzMTQxLCAwLjAwMzE0MywgMC4wMDMxNDQsIDAuMDAzMTQ3LCAwLjAwMzE0NywgMC4wMDMxNDYsIDAuMDAzMTQ3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihEKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDQ1ODQwMzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDQ1ODIwNzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDQ1ODQwMzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDEwODUsIDAuMDAxMDgxLCAwLjAwMTA3OSwgMC4wMDEwOCwgMC4wMDEwNzksIDAuMDAxMDc3LCAwLjAwMTA3NyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzU2LCAwLjAwMzU2MywgMC4wMDM1NjUsIDAuMDAzNTYzLCAwLjAwMzU2NCwgMC4wMDM1NjUsIDAuMDAzNTY0Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuNTg4NDY7Ci0gICAgZnVuY3Rpb24gOiAiKCEoKChBIEIpIEMpIEQpKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTYxMzUsIDAuMDU0Nzc3LCAwLjA5MjM2NywgMC4xMTkxMzEsIDAuMTYxODc5LCAwLjE5OTIxMiwgMC4yNTI2OTIiLCBcCi0gICAgICAgICAgIjAuMDI0NjkyLCAwLjA2MzA3LCAwLjEwMDY1OCwgMC4xMjc0MjcsIDAuMTcwMTY3LCAwLjIwNzU1MiwgMC4yNjEwNjgiLCBcCi0gICAgICAgICAgIjAuMDMzMDQ5LCAwLjA3MzYzOSwgMC4xMTExNzYsIDAuMTM3OTA3LCAwLjE4MDY0NywgMC4yMTc5ODksIDAuMjcxNDYxIiwgXAotICAgICAgICAgICIwLjAzODg4OSwgMC4wODQxMzYsIDAuMTIxNjA4LCAwLjE0ODMxNywgMC4xOTEwMzcsIDAuMjI4MzY3LCAwLjI4MTc3OCIsIFwKLSAgICAgICAgICAiMC4wNDM2NTgsIDAuMDk0OTMsIDAuMTMxOTQ5LCAwLjE1ODYzMywgMC4yMDEzLCAwLjIzODYxNiwgMC4yOTE5MzciLCBcCi0gICAgICAgICAgIjAuMDQ5MTI4LCAwLjEwODkzNCwgMC4xNDkzMjQsIDAuMTc2MDMyLCAwLjIxODYxMSwgMC4yNTU5MzIsIDAuMzA5MjAyIiwgXAotICAgICAgICAgICIwLjA1MjkwOSwgMC4xMTkxNjIsIDAuMTYzNzY5LCAwLjE5MDc3NywgMC4yMzMyNDMsIDAuMjcwNTQ3LCAwLjMyMzczNSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyNzQ2NywgMC4xMDY0NTQsIDAuMTg1MzE1LCAwLjI0MTgyOSwgMC4zMzE5NDIsIDAuNDEwODczLCAwLjUyMzk2MyIsIFwKLSAgICAgICAgICAiMC4wMzE5NjUsIDAuMTA2Nzc5LCAwLjE4NTMyOCwgMC4yNDE3NTYsIDAuMzMxOTI5LCAwLjQxMDkyLCAwLjUyMzk5NSIsIFwKLSAgICAgICAgICAiMC4wNDEzMDgsIDAuMTExMjU3LCAwLjE4Njg0MywgMC4yNDIyMjEsIDAuMzMyMDczLCAwLjQxMDkxOCwgMC41MjM4MjMiLCBcCi0gICAgICAgICAgIjAuMDQ5NzkyLCAwLjExODM3OCwgMC4xOTE0NDcsIDAuMjQ1MzUyLCAwLjMzMzE4MSwgMC40MTExNjQsIDAuNTIzODk1IiwgXAotICAgICAgICAgICIwLjA1NzMzNiwgMC4xMjY0MzEsIDAuMTk3ODg5LCAwLjI1MDUxNiwgMC4zMzY2NjMsIDAuNDEzMjg2LCAwLjUyNDQxOCIsIFwKLSAgICAgICAgICAiMC4wNjg4MTEsIDAuMTQxNTQxLCAwLjIwOTY0NSwgMC4yNjA1NzIsIDAuMzQ0NDcsIDAuNDE5NDkyLCAwLjUyODI4OSIsIFwKLSAgICAgICAgICAiMC4wNzgyODEsIDAuMTU1NjE5LCAwLjIyMTgzOSwgMC4yNzE0OTMsIDAuMzUzNDgsIDAuNDI3MDc5LCAwLjUzNDE1NSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1MDc3OSwgMC4xODAyMzQsIDAuMzA5MTI1LCAwLjQwMTU4NywgMC41NDg1NiwgMC42NzgxMSwgMC44NjE3ODMiLCBcCi0gICAgICAgICAgIjAuMDU1ODMyLCAwLjE4NTYzNCwgMC4zMTQ3NjgsIDAuNDA2ODUsIDAuNTU0MjEsIDAuNjgzMzE3LCAwLjg2NzI0NyIsIFwKLSAgICAgICAgICAiMC4wNjA4ODIsIDAuMTkwNzAyLCAwLjMxOTgzNywgMC40MTIxMTYsIDAuNTU5NTIyLCAwLjY4ODM1MywgMC44NzI2NzIiLCBcCi0gICAgICAgICAgIjAuMDY1MjAyLCAwLjE5NTE2OCwgMC4zMjQ0MjcsIDAuNDE2ODYxLCAwLjU2NDEyLCAwLjY5MzA5NywgMC44Nzc4NDUiLCBcCi0gICAgICAgICAgIjAuMDY4ODE2LCAwLjE5OTUwNCwgMC4zMjg4NjksIDAuNDIxMTU1LCAwLjU2ODQzLCAwLjY5NzUwNiwgMC44ODE4NjEiLCBcCi0gICAgICAgICAgIjAuMDczODcxLCAwLjIwNjQzMSwgMC4zMzU1OCwgMC40Mjc3NCwgMC41NzU2OTgsIDAuNzA0ODI4LCAwLjg4ODc2MiIsIFwKLSAgICAgICAgICAiMC4wNzc5NjQsIDAuMjEyNjk5LCAwLjM0MTgsIDAuNDM0MTM2LCAwLjU4MTQ1MSwgMC43MTAzNzYsIDAuODk1NDA0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc4MjEsIDAuMzQ1MzM5LCAwLjYxMzY3NywgMC44MDM1MTIsIDEuMTEwOTMsIDEuMzc2NjEsIDEuNzYxMzMiLCBcCi0gICAgICAgICAgIjAuMDc4MTU2LCAwLjM0NTgzNiwgMC42MTI1MDUsIDAuODAzNjg0LCAxLjExMDgxLCAxLjM3NjUxLCAxLjc1Nzg4IiwgXAotICAgICAgICAgICIwLjA3OTUxMSwgMC4zNDU4NjIsIDAuNjEyNjk3LCAwLjgwMzU4OCwgMS4xMTA4LCAxLjM3ODU5LCAxLjc2MSIsIFwKLSAgICAgICAgICAiMC4wODE3MywgMC4zNDU4NCwgMC42MTM1NjIsIDAuODAzNDk2LCAxLjEwOTI5LCAxLjM3ODUxLCAxLjc1ODIxIiwgXAotICAgICAgICAgICIwLjA4NDk0MSwgMC4zNDcwMjksIDAuNjEyNjQsIDAuODA0OTE4LCAxLjExMDgyLCAxLjM3ODUxLCAxLjc1ODE1IiwgXAotICAgICAgICAgICIwLjA5MTEzOSwgMC4zNDk0MzUsIDAuNjE0MDk1LCAwLjgwNDA4NCwgMS4xMDkwNCwgMS4zNzYxMSwgMS43NTg0MyIsIFwKLSAgICAgICAgICAiMC4wOTY1MDMsIDAuMzUyMjksIDAuNjE2NDY3LCAwLjgwNjQ3NywgMS4xMDk2MywgMS4zNzYzNiwgMS43NTgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTU2ODYsIDAuMDUzODI3LCAwLjA5MTQ4MywgMC4xMTgzMTQsIDAuMTYxMjAyLCAwLjE5ODcwMSwgMC4yNTI0OTciLCBcCi0gICAgICAgICAgIjAuMDI0MDQ1LCAwLjA2MjE0MiwgMC4wOTk3ODksIDAuMTI2NjUzLCAwLjE2OTUwMywgMC4yMDcwNjgsIDAuMjYwODE3IiwgXAotICAgICAgICAgICIwLjAzMTgyNiwgMC4wNzI2NzgsIDAuMTEwMjY0LCAwLjEzNzA5MywgMC4xNzk5ODIsIDAuMjE3NTUyLCAwLjI3MTIxOSIsIFwKLSAgICAgICAgICAiMC4wMzczNTQsIDAuMDgzMTIyLCAwLjEyMDY0MiwgMC4xNDc0MjYsIDAuMTkwMzc0LCAwLjIyNzgxNywgMC4yODE0NzYiLCBcCi0gICAgICAgICAgIjAuMDQxNTY4LCAwLjA5Mzg2NCwgMC4xMzA5MTcsIDAuMTU3NjU1LCAwLjIwMDQ2MSwgMC4yMzc5NjMsIDAuMjkxNTQ5IiwgXAotICAgICAgICAgICIwLjA0NjgwMSwgMC4xMDc2MDIsIDAuMTQ4NDI0LCAwLjE3NTE4MSwgMC4yMTc5NTUsIDAuMjU1MzczLCAwLjMwODkiLCBcCi0gICAgICAgICAgIjAuMDUwMTA5LCAwLjExODE5LCAwLjE2MzMxNSwgMC4xODk0MDIsIDAuMjMyMDc5LCAwLjI2OTQ3NiwgMC4zMjI5MDIiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjU2NCwgMC4xMDQ5ODgsIDAuMTg0NDgxLCAwLjI0MTMyOSwgMC4zMzIxOTUsIDAuNDExNjUsIDAuNTI1MjkxIiwgXAotICAgICAgICAgICIwLjAzMDIyNiwgMC4xMDU0LCAwLjE4NDQ1LCAwLjI0MTI2NywgMC4zMzIwMjksIDAuNDExNTE0LCAwLjUyNTI5MyIsIFwKLSAgICAgICAgICAiMC4wMzk2NzEsIDAuMTEwMDMyLCAwLjE4NjA5MSwgMC4yNDE2OTgsIDAuMzMyMDE4LCAwLjQxMTQ5OSwgMC41MjUxOCIsIFwKLSAgICAgICAgICAiMC4wNDc5MzgsIDAuMTE3MzAyLCAwLjE5MDczOCwgMC4yNDQ5MzEsIDAuMzMzNDA3LCAwLjQxMTgzMywgMC41MjUyNDIiLCBcCi0gICAgICAgICAgIjAuMDU1NDM3LCAwLjEyNTI2MiwgMC4xOTczNTQsIDAuMjUwMjA5LCAwLjMzNjg3NiwgMC40MTQwMDMsIDAuNTI1NzI5IiwgXAotICAgICAgICAgICIwLjA2NjM0MSwgMC4xNDA0MTQsIDAuMjA4OTEyLCAwLjI2MDI1NywgMC4zNDQ2NDEsIDAuNDIwMDY5LCAwLjUyOTYzOSIsIFwKLSAgICAgICAgICAiMC4wNzU1MTcsIDAuMTUzNDU4LCAwLjIyMDQxOCwgMC4yNzE3NTcsIDAuMzU0MTIzLCAwLjQyODA5OSwgMC41MzU3NCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0ODQ0MSwgMC4xNzc3MjgsIDAuMzA2Njc0LCAwLjM5OTA5OSwgMC41NDYxMSwgMC42NzU2NTgsIDAuODU5MzQ0IiwgXAotICAgICAgICAgICIwLjA1MzgsIDAuMTgzNjE0LCAwLjMxMjY2NywgMC40MDUyMjksIDAuNTUyMjE3LCAwLjY4MTQ4MiwgMC44NjUyNTEiLCBcCi0gICAgICAgICAgIjAuMDU5OTE4LCAwLjE4OTc1MSwgMC4zMTg5MjIsIDAuNDExMzQ3LCAwLjU1ODQ1NCwgMC42ODc0MTIsIDAuODcxNzQ3IiwgXAotICAgICAgICAgICIwLjA2NTYwNywgMC4xOTU2OTUsIDAuMzI0OTc1LCAwLjQxNzE1OSwgMC41NjQ3OTQsIDAuNjkzNjE3LCAwLjg3Nzc1IiwgXAotICAgICAgICAgICIwLjA3MDY1LCAwLjIwMTgyOSwgMC4zMzExMTksIDAuNDIzMzU5LCAwLjU3MDc5OCwgMC42OTk3MjgsIDAuODg0NTk0IiwgXAotICAgICAgICAgICIwLjA3NzkzNSwgMC4yMTE2OSwgMC4zNDExNjIsIDAuNDMzMjQsIDAuNTgwODYsIDAuNzEwMTMxLCAwLjg5NDMxOCIsIFwKLSAgICAgICAgICAiMC4wODM2NzgsIDAuMjIxMTUzLCAwLjM0OTg1NSwgMC40NDIyMDUsIDAuNTg5NjI3LCAwLjcxODYwMSwgMC45MDMzNzIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzgxMDMsIDAuMzQ1NDksIDAuNjEyNzc0LCAwLjgwMzU1MywgMS4xMDg5MywgMS4zNzYzLCAxLjc2MTI0IiwgXAotICAgICAgICAgICIwLjA3ODI1NiwgMC4zNDU4NDcsIDAuNjEzNTkxLCAwLjgwMzQyMSwgMS4xMDkxNywgMS4zNzYyOSwgMS43NTg0MiIsIFwKLSAgICAgICAgICAiMC4wODA1MDUsIDAuMzQ1MzI3LCAwLjYxMjUzNiwgMC44MDM1MDgsIDEuMTA4OCwgMS4zNzg1OCwgMS43NjEwMyIsIFwKLSAgICAgICAgICAiMC4wODQyMzIsIDAuMzQ2MDA3LCAwLjYxMzU4NywgMC44MDM2NzQsIDEuMTA4NzEsIDEuMzc4NDYsIDEuNzYxMDgiLCBcCi0gICAgICAgICAgIjAuMDg5MTU4LCAwLjM0NzQzNywgMC42MTI3OTUsIDAuODA0Nzk2LCAxLjExMDc5LCAxLjM3NjQsIDEuNzU4MiIsIFwKLSAgICAgICAgICAiMC4wOTc4MzksIDAuMzUxMzU3LCAwLjYxNTI1OCwgMC44MDQxNDYsIDEuMTEwOCwgMS4zNzYyOCwgMS43NTgyNiIsIFwKLSAgICAgICAgICAiMC4xMDQ5NzQsIDAuMzU1ODEzLCAwLjYxNzQ3MSwgMC44MDU0ODQsIDEuMTA5NTQsIDEuMzc4NTgsIDEuNzU4MDkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTQ2NjcsIDAuMDUyMzY4LCAwLjA4OTkzNSwgMC4xMTY3MzIsIDAuMTU5NTk4LCAwLjE5NzE4NywgMC4yNTA4MzgiLCBcCi0gICAgICAgICAgIjAuMDIyOTQzLCAwLjA2MDc2NSwgMC4wOTgzMjQsIDAuMTI1MTI0LCAwLjE2ODA0NSwgMC4yMDU1MjgsIDAuMjU5MTI2IiwgXAotICAgICAgICAgICIwLjAzMDA4MiwgMC4wNzEzMTYsIDAuMTA4ODE5LCAwLjEzNTYxOCwgMC4xNzg0OSwgMC4yMTYwNTUsIDAuMjY5NzI0IiwgXAotICAgICAgICAgICIwLjAzNTE3MiwgMC4wODE3NzEsIDAuMTE5MjM1LCAwLjE0NTk4MSwgMC4xODg5MDEsIDAuMjI2MzMzLCAwLjI3OTk1OCIsIFwKLSAgICAgICAgICAiMC4wMzg4NzcsIDAuMDkyNDE3LCAwLjEyOTU0NiwgMC4xNTYyNTcsIDAuMTk5MDM3LCAwLjIzNjUxMSwgMC4yOTAwOTUiLCBcCi0gICAgICAgICAgIjAuMDQzNDU2LCAwLjEwNTk1OSwgMC4xNDcxNDgsIDAuMTczNzg0LCAwLjIxNjUzMywgMC4yNTM5MzksIDAuMzA3NDUzIiwgXAotICAgICAgICAgICIwLjA0NjM2MiwgMC4xMTYyMzgsIDAuMTYwOTg0LCAwLjE4ODE5NCwgMC4yMzA4MTcsIDAuMjY4MjUxLCAwLjMyMTY3MiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyMzU3MywgMC4xMDI5MDgsIDAuMTgyMjY0LCAwLjIzODg4OCwgMC4zMjk1OSwgMC40MDkwNDgsIDAuNTIyNDQzIiwgXAotICAgICAgICAgICIwLjAyODQ3NywgMC4xMDMzNjQsIDAuMTgyMTkxLCAwLjIzODc5NSwgMC4zMjk2OTIsIDAuNDA4OTUyLCAwLjUyMjI1IiwgXAotICAgICAgICAgICIwLjAzNzk3NiwgMC4xMDgwNjIsIDAuMTgzODcyLCAwLjIzOTQ0NiwgMC4zMjk0MjIsIDAuNDA4ODM4LCAwLjUyMjQzIiwgXAotICAgICAgICAgICIwLjA0NTkzNCwgMC4xMTUzNjMsIDAuMTg4NTg3LCAwLjI0MjY1LCAwLjMzMDkyOCwgMC40MDkyOTgsIDAuNTIyMyIsIFwKLSAgICAgICAgICAiMC4wNTMzOTQsIDAuMTIzNDQxLCAwLjE5NTIxOCwgMC4yNDc5MDIsIDAuMzM0NDIsIDAuNDExMzQ1LCAwLjUyMjY5IiwgXAotICAgICAgICAgICIwLjA2NDA2OSwgMC4xMzg2MSwgMC4yMDY5NjMsIDAuMjU4MDczLCAwLjM0MjIyOSwgMC40MTc0ODcsIDAuNTI2OTIyIiwgXAotICAgICAgICAgICIwLjA3MzA2NiwgMC4xNTE3OTEsIDAuMjE5NzYsIDAuMjY5MzYxLCAwLjM1MTUyNCwgMC40MjU0MDEsIDAuNTMyODU1Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQ0MTI0LCAwLjE3MzUyMSwgMC4zMDI0NzEsIDAuMzk0OTA5LCAwLjU0MTkxNCwgMC42NzE0NzcsIDAuODU1MTc0IiwgXAotICAgICAgICAgICIwLjA0OTkzNiwgMC4xNzk3MzgsIDAuMzA4ODU2LCAwLjQwMTAyMSwgMC41NDgyNTgsIDAuNjc3MTk1LCAwLjg2MTI2NiIsIFwKLSAgICAgICAgICAiMC4wNTc3NjMsIDAuMTg3NTgxLCAwLjMxNjc4NywgMC40MDg4NjgsIDAuNTU2NDA0LCAwLjY4NTE5NCwgMC44NjkzOTIiLCBcCi0gICAgICAgICAgIjAuMDY1MzEyLCAwLjE5NTUzOCwgMC4zMjQ4NTcsIDAuNDE3MDkxLCAwLjU2NDQ4MywgMC42OTM3NTIsIDAuODc3Njg0IiwgXAotICAgICAgICAgICIwLjA3MjAxMywgMC4yMDM1NjMsIDAuMzMzMDA2LCAwLjQyNTE1NSwgMC41NzI1OTgsIDAuNzAxNTEyLCAwLjg4NTgyNyIsIFwKLSAgICAgICAgICAiMC4wODEzMzIsIDAuMjE2ODA1LCAwLjM0NTk1LCAwLjQzODM5MiwgMC41ODU2MDIsIDAuNzE0NjQ1LCAwLjg5OTA0OCIsIFwKLSAgICAgICAgICAiMC4wODg3MjUsIDAuMjI4NDQsIDAuMzU3MzA1LCAwLjQ0OTYxNiwgMC41OTcxNTQsIDAuNzI1OTQyLCAwLjkxMDE1NCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3ODEyNCwgMC4zNDU5MzEsIDAuNjEzNjQ5LCAwLjgwMzU0NSwgMS4xMTA4OSwgMS4zNzkyMiwgMS43NjEzNiIsIFwKLSAgICAgICAgICAiMC4wNzg1OTEsIDAuMzQ1NDYzLCAwLjYxMzU3NSwgMC44MDQ4MDYsIDEuMTA5MTgsIDEuMzc3MDMsIDEuNzU4MzkiLCBcCi0gICAgICAgICAgIjAuMDgyMjY0LCAwLjM0NTM3MiwgMC42MTM1NTMsIDAuODAzNjI1LCAxLjEwODQsIDEuMzc1OTksIDEuNzYwOTgiLCBcCi0gICAgICAgICAgIjAuMDg3ODM0LCAwLjM0NjA4OSwgMC42MTM1NjQsIDAuODA0ODM0LCAxLjEwOTA1LCAxLjM3NjIxLCAxLjc1ODI0IiwgXAotICAgICAgICAgICIwLjA5NDI3OSwgMC4zNDgxMzIsIDAuNjEyNjk4LCAwLjgwMzU2MiwgMS4xMTA4MiwgMS4zNzY0MSwgMS43NTgyMiIsIFwKLSAgICAgICAgICAiMC4xMDUxMSwgMC4zNTM2NjUsIDAuNjE0NjE1LCAwLjgwNTM0MSwgMS4xMDk0LCAxLjM3ODU3LCAxLjc2MTA2IiwgXAotICAgICAgICAgICIwLjExMzQxMSwgMC4zNTk1MzQsIDAuNjE3NjQ2LCAwLjgwNjc4NywgMS4xMTA5NiwgMS4zNzc0NSwgMS43NjEwNyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJEIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMzE1NywgMC4wNTA2MTgsIDAuMDg4MDE5LCAwLjExNDc1MSwgMC4xNTc1NTcsIDAuMTk0OTA4LCAwLjI0ODMxNCIsIFwKLSAgICAgICAgICAiMC4wMjExOTMsIDAuMDU5MDI2LCAwLjA5NjMyLCAwLjEyMzA2NywgMC4xNjU3ODMsIDAuMjAzMjM2LCAwLjI1NjY0NCIsIFwKLSAgICAgICAgICAiMC4wMjc2MTIsIDAuMDY5NjAzLCAwLjEwNjk4NCwgMC4xMzM2ODUsIDAuMTc2NTAzLCAwLjIxMzg2MiwgMC4yNjczNjQiLCBcCi0gICAgICAgICAgIjAuMDMyMTE0LCAwLjA4MDA5NCwgMC4xMTc0MzIsIDAuMTQ0MTAzLCAwLjE4Njg1LCAwLjIyNDE4OSwgMC4yNzc2NiIsIFwKLSAgICAgICAgICAiMC4wMzUyNzEsIDAuMDkwNTUzLCAwLjEyNzgyNCwgMC4xNTQ0NTUsIDAuMTk3MTQxLCAwLjIzNDUzNCwgMC4yODc5MjgiLCBcCi0gICAgICAgICAgIjAuMDM5MDc5LCAwLjEwMzgzMiwgMC4xNDUxMzEsIDAuMTcxNzExLCAwLjIxNDM0NywgMC4yNTE1ODQsIDAuMzA0OTQ1IiwgXAotICAgICAgICAgICIwLjA0MTM0MywgMC4xMTMzNjksIDAuMTU5MzU4LCAwLjE4NjYyMiwgMC4yMjkxMjYsIDAuMjY2NDcsIDAuMzE5NzQ0Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDIxNTE1LCAwLjEwMDY2LCAwLjE3OTc5OCwgMC4yMzYwNzgsIDAuMzI2MzA2LCAwLjQwNTA5NywgMC41MTc5NzQiLCBcCi0gICAgICAgICAgIjAuMDI2ODg3LCAwLjEwMTE4OCwgMC4xNzk0NjgsIDAuMjM1OTY0LCAwLjMyNjIwMSwgMC40MDUzMDQsIDAuNTE3OTIyIiwgXAotICAgICAgICAgICIwLjAzNjQ3NSwgMC4xMDU5MzUsIDAuMTgxMjI3LCAwLjIzNjQzOCwgMC4zMjYzMDUsIDAuNDA1NDc0LCAwLjUxODM5MiIsIFwKLSAgICAgICAgICAiMC4wNDQzODcsIDAuMTEzMjEzLCAwLjE4NjAyLCAwLjIzOTg2MiwgMC4zMjgxMjgsIDAuNDA2MjE4LCAwLjUxODA0MSIsIFwKLSAgICAgICAgICAiMC4wNTE2MTksIDAuMTIxNDk3LCAwLjE5MjcyMiwgMC4yNDUwOTMsIDAuMzMxMjg2LCAwLjQwNzczMywgMC41MTg5NzYiLCBcCi0gICAgICAgICAgIjAuMDYyMTU2LCAwLjEzNjgzMSwgMC4yMDQ4MDMsIDAuMjU1NjM0LCAwLjMzOTYyNywgMC40MTQ2NjQsIDAuNTIzNTU3IiwgXAotICAgICAgICAgICIwLjA3MDk4OCwgMC4xNTA5MjcsIDAuMjE2Nzc3LCAwLjI2NjM0LCAwLjM0ODIwNCwgMC40MjIxMTUsIDAuNTI5MzkyIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM3NDUxLCAwLjE2Njg0NywgMC4yOTU3OTQsIDAuMzg4MjU3LCAwLjUzNTM2MSwgMC42NjQ2MjUsIDAuODQ4MTEiLCBcCi0gICAgICAgICAgIjAuMDQzOTgxLCAwLjE3MzYxLCAwLjMwMjcyLCAwLjM5NDgsIDAuNTQyMTkzLCAwLjY3MDg4MSwgMC44NTUxNzIiLCBcCi0gICAgICAgICAgIjAuMDUzMzQsIDAuMTgyMjUxLCAwLjMxMTM0MiwgMC40MDM0NDcsIDAuNTUxMDMxLCAwLjY4MDA5MSwgMC44NjM5MzEiLCBcCi0gICAgICAgICAgIjAuMDYyNjk4LCAwLjE5MTIsIDAuMzIwMzIxLCAwLjQxMjM5LCAwLjU1OTc1NiwgMC42ODg4MDQsIDAuODcyNjY0IiwgXAotICAgICAgICAgICIwLjA3MDc0LCAwLjIwMDQ1OCwgMC4zMjkxMTMsIDAuNDIxMTk4LCAwLjU2ODU4NCwgMC42OTczMjQsIDAuODgxNzA0IiwgXAotICAgICAgICAgICIwLjA4MTQ0NiwgMC4yMTU1NzEsIDAuMzQzNjI4LCAwLjQzNTczMSwgMC41ODI2MzIsIDAuNzExNjk5LCAwLjg5NTUiLCBcCi0gICAgICAgICAgIjAuMDg5NDEzLCAwLjIyODY2MSwgMC4zNTY2NTIsIDAuNDQ4MzU1LCAwLjU5NTc4OCwgMC43MjQzNDMsIDAuOTA4Mjg1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc3ODU4LCAwLjM0NTg1OSwgMC42MTM1NjQsIDAuODAzNTQxLCAxLjExMDkzLCAxLjM3NjMzLCAxLjc1ODUiLCBcCi0gICAgICAgICAgIjAuMDc4MjE3LCAwLjM0NTg2MywgMC42MTM2MDQsIDAuODA0ODE0LCAxLjExMDc4LCAxLjM3NjQ1LCAxLjc2MTE1IiwgXAotICAgICAgICAgICIwLjA4Mzc4OSwgMC4zNDUxMDIsIDAuNjEyNTE0LCAwLjgwMzYwOCwgMS4xMTA4OCwgMS4zNzg3MiwgMS43NTgwMSIsIFwKLSAgICAgICAgICAiMC4wOTEwNiwgMC4zNDU5MzQsIDAuNjEzNjg1LCAwLjgwNDg4NiwgMS4xMTA4NywgMS4zNzg3MywgMS43NTc5IiwgXAotICAgICAgICAgICIwLjA5ODIzMSwgMC4zNDg5MjcsIDAuNjEyNjEzLCAwLjgwNDgxMywgMS4xMTA3OSwgMS4zNzY0MywgMS43NTgwMSIsIFwKLSAgICAgICAgICAiMC4xMDk4MTIsIDAuMzU1OTYxLCAwLjYxNDgwMiwgMC44MDM2NTIsIDEuMTA5MTgsIDEuMzc4NTgsIDEuNzU4NDciLCBcCi0gICAgICAgICAgIjAuMTE4MzQ4LCAwLjM2MzU2OCwgMC42MTkwNDksIDAuODA2MTYsIDEuMTA4OTQsIDEuMzc4NjEsIDEuNzYxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjUzNTEsIDAuMDI1MzYxLCAwLjAyNTM2NSwgMC4wMjUzNjMsIDAuMDI1MzYsIDAuMDI1MzU3LCAwLjAyNTM2IiwgXAotICAgICAgICAgICIwLjAyNTI0MSwgMC4wMjUyNDksIDAuMDI1MjUyLCAwLjAyNTI1MiwgMC4wMjUyNTIsIDAuMDI1MjUsIDAuMDI1MjQ4IiwgXAotICAgICAgICAgICIwLjAyNTQxNCwgMC4wMjUyODYsIDAuMDI1MjYxLCAwLjAyNTI1MSwgMC4wMjUyNDEsIDAuMDI1MjM2LCAwLjAyNTIzMiIsIFwKLSAgICAgICAgICAiMC4wMjU3MTEsIDAuMDI1NDUsIDAuMDI1MzY3LCAwLjAyNTMzNSwgMC4wMjUzMDcsIDAuMDI1MjksIDAuMDI1MjcxIiwgXAotICAgICAgICAgICIwLjAyNjE1MywgMC4wMjU2MTIsIDAuMDI1NTY0LCAwLjAyNTQ5OSwgMC4wMjU0MzEsIDAuMDI1Mzk2LCAwLjAyNTM1OCIsIFwKLSAgICAgICAgICAiMC4wMjcxMSwgMC4wMjYyNDIsIDAuMDI1OTE5LCAwLjAyNTgwMiwgMC4wMjU2NjMsIDAuMDI1NTk3LCAwLjAyNTUyNiIsIFwKLSAgICAgICAgICAiMC4wMjgxNTMsIDAuMDI2NzI0LCAwLjAyNjE5OCwgMC4wMjYwMTQsIDAuMDI1ODIsIDAuMDI1NzIyLCAwLjAyNTYyNiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0MTMxLCAwLjAwNDMwNywgMC4wMDQzMzIsIDAuMDA0MzQsIDAuMDA0MzQ3LCAwLjAwNDM1LCAwLjAwNDM1NCIsIFwKLSAgICAgICAgICAiMC4wMDM2ODMsIDAuMDA0MTA1LCAwLjAwNDIwNywgMC4wMDQyNDIsIDAuMDA0Mjc0LCAwLjAwNDI5MSwgMC4wMDQzMDciLCBcCi0gICAgICAgICAgIjAuMDAzNTExLCAwLjAwMzkyOCwgMC4wMDQwNzksIDAuMDA0MTM2LCAwLjAwNDE5MiwgMC4wMDQyMjMsIDAuMDA0MjUyIiwgXAotICAgICAgICAgICIwLjAwMzQ3MSwgMC4wMDM4MiwgMC4wMDM5ODQsIDAuMDA0MDUzLCAwLjAwNDEyNCwgMC4wMDQxNjQsIDAuMDA0MjAzIiwgXAotICAgICAgICAgICIwLjAwMzUyMiwgMC4wMDM3NywgMC4wMDM5MjYsIDAuMDAzOTk3LCAwLjAwNDA3NSwgMC4wMDQxMiwgMC4wMDQxNjUiLCBcCi0gICAgICAgICAgIjAuMDAzNzgxLCAwLjAwMzgwOCwgMC4wMDM5MTQsIDAuMDAzOTczLCAwLjAwNDA0NCwgMC4wMDQwODksIDAuMDA0MTM1IiwgXAotICAgICAgICAgICIwLjAwNDE1OSwgMC4wMDM5MzksIDAuMDAzOTc4LCAwLjAwNDAxNiwgMC4wMDQwNjgsIDAuMDA0MTA0LCAwLjAwNDE0MSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDIxMzc3LCAwLjAyMTM5NiwgMC4wMjEzOTcsIDAuMDIxMzk2LCAwLjAyMTM5NywgMC4wMjEzOTksIDAuMDIxMzk3IiwgXAotICAgICAgICAgICIwLjAyMTI3OCwgMC4wMjEzMjIsIDAuMDIxMzMyLCAwLjAyMTMzOCwgMC4wMjEzMzUsIDAuMDIxMzM5LCAwLjAyMTMzOSIsIFwKLSAgICAgICAgICAiMC4wMjE0NCwgMC4wMjEzNjEsIDAuMDIxMzUsIDAuMDIxMzQ3LCAwLjAyMTM0MSwgMC4wMjEzMzYsIDAuMDIxMzM3IiwgXAotICAgICAgICAgICIwLjAyMTc0MiwgMC4wMjE1NDEsIDAuMDIxNDY1LCAwLjAyMTQzNywgMC4wMjE0MSwgMC4wMjEzOTMsIDAuMDIxMzg0IiwgXAotICAgICAgICAgICIwLjAyMjE5MywgMC4wMjE2NTQsIDAuMDIxNjkzLCAwLjAyMTYyMiwgMC4wMjE1NTMsIDAuMDIxNTEyLCAwLjAyMTQ3OCIsIFwKLSAgICAgICAgICAiMC4wMjMxODMsIDAuMDIyMTU4LCAwLjAyMTg2NCwgMC4wMjE3NiwgMC4wMjE2NjMsIDAuMDIxNjAzLCAwLjAyMTU1IiwgXAotICAgICAgICAgICIwLjAyNDAyLCAwLjAyMjUyMywgMC4wMjIxMzYsIDAuMDIyMjczLCAwLjAyMjA1LCAwLjAyMTkzMiwgMC4wMjE4MzQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDEzNCwgMC4wMDQzMSwgMC4wMDQzMzUsIDAuMDA0MzQzLCAwLjAwNDM1LCAwLjAwNDM1NCwgMC4wMDQzNTciLCBcCi0gICAgICAgICAgIjAuMDAzNjg1LCAwLjAwNDEwOCwgMC4wMDQyMSwgMC4wMDQyNDUsIDAuMDA0Mjc4LCAwLjAwNDI5NSwgMC4wMDQzMTEiLCBcCi0gICAgICAgICAgIjAuMDAzNTIzLCAwLjAwMzkzNSwgMC4wMDQwODUsIDAuMDA0MTQyLCAwLjAwNDE5NywgMC4wMDQyMjgsIDAuMDA0MjU3IiwgXAotICAgICAgICAgICIwLjAwMzUxNywgMC4wMDM4MzYsIDAuMDAzOTk3LCAwLjAwNDA2NCwgMC4wMDQxMzMsIDAuMDA0MTcyLCAwLjAwNDIxIiwgXAotICAgICAgICAgICIwLjAwMzYyMywgMC4wMDM4MDcsIDAuMDAzOTUsIDAuMDA0MDE4LCAwLjAwNDA5MSwgMC4wMDQxMzQsIDAuMDA0MTc3IiwgXAotICAgICAgICAgICIwLjAwNDAwNywgMC4wMDM4OTEsIDAuMDAzOTcsIDAuMDA0MDE4LCAwLjAwNDA3OCwgMC4wMDQxMTcsIDAuMDA0MTU5IiwgXAotICAgICAgICAgICIwLjAwNDUwNSwgMC4wMDQwODMsIDAuMDA0MDY0LCAwLjAwNDA4NSwgMC4wMDQxMTksIDAuMDA0MTQ1LCAwLjAwNDE3NiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE3MzczLCAwLjAxNzQyNywgMC4wMTc0MzMsIDAuMDE3NDM1LCAwLjAxNzQzNiwgMC4wMTc0MzgsIDAuMDE3NDM2IiwgXAotICAgICAgICAgICIwLjAxNzM0NCwgMC4wMTc0NTMsIDAuMDE3NDc1LCAwLjAxNzQ4MiwgMC4wMTc0ODcsIDAuMDE3NDg4LCAwLjAxNzQ4OSIsIFwKLSAgICAgICAgICAiMC4wMTc1MTYsIDAuMDE3NDkzLCAwLjAxNzQ5OSwgMC4wMTc1MDUsIDAuMDE3NTA3LCAwLjAxNzUwOSwgMC4wMTc1MDkiLCBcCi0gICAgICAgICAgIjAuMDE3NzgzLCAwLjAxNzY2MywgMC4wMTc2MTMsIDAuMDE3NTksIDAuMDE3NTc5LCAwLjAxNzU2NSwgMC4wMTc1NTYiLCBcCi0gICAgICAgICAgIjAuMDE4MjY5LCAwLjAxNzc3NCwgMC4wMTc4MjQsIDAuMDE3NzY0LCAwLjAxNzcwNSwgMC4wMTc2OCwgMC4wMTc2NDciLCBcCi0gICAgICAgICAgIjAuMDE5MjQ0LCAwLjAxODI0OCwgMC4wMTc5ODcsIDAuMDE3ODk1LCAwLjAxNzgxLCAwLjAxNzc2NiwgMC4wMTc3MiIsIFwKLSAgICAgICAgICAiMC4wMjAwNTEsIDAuMDE4NjE1LCAwLjAxODUwMiwgMC4wMTgzMjMsIDAuMDE4MTMzLCAwLjAxODAzNSwgMC4wMTc5NDMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDEzOCwgMC4wMDQzMTYsIDAuMDA0MzQyLCAwLjAwNDM1LCAwLjAwNDM1NywgMC4wMDQzNjEsIDAuMDA0MzY0IiwgXAotICAgICAgICAgICIwLjAwMzY5MywgMC4wMDQxMTQsIDAuMDA0MjE2LCAwLjAwNDI1MSwgMC4wMDQyODQsIDAuMDA0MzAxLCAwLjAwNDMxNyIsIFwKLSAgICAgICAgICAiMC4wMDM1OTcsIDAuMDAzOTU4LCAwLjAwNDA5OSwgMC4wMDQxNTQsIDAuMDA0MjA4LCAwLjAwNDIzNywgMC4wMDQyNjYiLCBcCi0gICAgICAgICAgIjAuMDAzNzAxLCAwLjAwMzksIDAuMDA0MDM2LCAwLjAwNDA5NiwgMC4wMDQxNTgsIDAuMDA0MTk0LCAwLjAwNDIyOCIsIFwKLSAgICAgICAgICAiMC4wMDM5NjcsIDAuMDAzOTMzLCAwLjAwNDAyOSwgMC4wMDQwODEsIDAuMDA0MTM5LCAwLjAwNDE3NSwgMC4wMDQyMSIsIFwKLSAgICAgICAgICAiMC4wMDQ1NzgsIDAuMDA0MTIzLCAwLjAwNDEyMSwgMC4wMDQxMzYsIDAuMDA0MTY4LCAwLjAwNDE5MiwgMC4wMDQyMTkiLCBcCi0gICAgICAgICAgIjAuMDA1MjY4LCAwLjAwNDM5NywgMC4wMDQyNzEsIDAuMDA0MjUxLCAwLjAwNDI0NCwgMC4wMDQyNDgsIDAuMDA0MjYxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTMyMjMsIDAuMDEzMzU5LCAwLjAxMzM5MiwgMC4wMTMzODYsIDAuMDEzMzkzLCAwLjAxMzM5NiwgMC4wMTMzOTgiLCBcCi0gICAgICAgICAgIjAuMDEzMjQ1LCAwLjAxMzQyNywgMC4wMTM0NjksIDAuMDEzNDc3LCAwLjAxMzQ5MSwgMC4wMTM0OTUsIDAuMDEzNSIsIFwKLSAgICAgICAgICAiMC4wMTM0MTYsIDAuMDEzNDY0LCAwLjAxMzQ5NywgMC4wMTM1LCAwLjAxMzUxNCwgMC4wMTM1MjIsIDAuMDEzNTI2IiwgXAotICAgICAgICAgICIwLjAxMzcxNCwgMC4wMTM2MTksIDAuMDEzNTk2LCAwLjAxMzU3OSwgMC4wMTM1NzIsIDAuMDEzNTc0LCAwLjAxMzU2OSIsIFwKLSAgICAgICAgICAiMC4wMTQyMzgsIDAuMDEzNzgxLCAwLjAxMzc3OCwgMC4wMTM3NDksIDAuMDEzNzAyLCAwLjAxMzY3OSwgMC4wMTM2NDgiLCBcCi0gICAgICAgICAgIjAuMDE1MDU4LCAwLjAxNDE2OSwgMC4wMTQyMTgsIDAuMDE0MTA0LCAwLjAxMzk5MiwgMC4wMTM5MjcsIDAuMDEzODUyIiwgXAotICAgICAgICAgICIwLjAxNjA0OSwgMC4wMTQ3NzMsIDAuMDE0MzQ3LCAwLjAxNDIsIDAuMDE0MDQyLCAwLjAxMzk2NSwgMC4wMTM4ODgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDA5NywgMC4wMDQzMDQsIDAuMDA0MzM1LCAwLjAwNDM0NCwgMC4wMDQzNTMsIDAuMDA0MzU3LCAwLjAwNDM2MSIsIFwKLSAgICAgICAgICAiMC4wMDM4MTcsIDAuMDA0MTM0LCAwLjAwNDIyNiwgMC4wMDQyNTgsIDAuMDA0Mjg4LCAwLjAwNDMwNSwgMC4wMDQzMTkiLCBcCi0gICAgICAgICAgIjAuMDA0MDA1LCAwLjAwNDA4NCwgMC4wMDQxNjgsIDAuMDA0MjA2LCAwLjAwNDI0NSwgMC4wMDQyNjcsIDAuMDA0Mjg5IiwgXAotICAgICAgICAgICIwLjAwNDQ0LCAwLjAwNDE4LCAwLjAwNDIsIDAuMDA0MjIyLCAwLjAwNDI1MSwgMC4wMDQyNjksIDAuMDA0Mjg4IiwgXAotICAgICAgICAgICIwLjAwNTA4NywgMC4wMDQ0MDUsIDAuMDA0MzIzLCAwLjAwNDMxMSwgMC4wMDQzMTEsIDAuMDA0MzE1LCAwLjAwNDMyMiIsIFwKLSAgICAgICAgICAiMC4wMDYxMjgsIDAuMDA0OTI1LCAwLjAwNDY1MiwgMC4wMDQ1NjIsIDAuMDA0NDksIDAuMDA0NDU3LCAwLjAwNDQzIiwgXAotICAgICAgICAgICIwLjAwNjk1NSwgMC4wMDUyODQsIDAuMDA0OTE2LCAwLjAwNDc3MywgMC4wMDQ2NDYsIDAuMDA0NTczLCAwLjAwNDUyMyIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IE5PUjJCWDEgKgotICogLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoTk9SMkJYMSkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjIyMzQ5NjsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQU4pICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYyMzI2NTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MjMyNjU7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjIzMjM0OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDU1LCAwLjAwMDU1OSwgMC4wMDA2NDMsIDAuMDAwNzU0LCAwLjAwMDg4MSwgMC4wMDExMTEsIDAuMDAxMzA1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxODQyLCAwLjAwMTg1MSwgMC4wMDE5MjQsIDAuMDAyMDM0LCAwLjAwMjE2MSwgMC4wMDIzODUsIDAuMDAyNTcyIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA5NzMyNjE7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwOTczMjYxOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDk3MjkyNzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxNDgsIDAuMDAwMTQ4LCAwLjAwMDE0OCwgMC4wMDAxNDgsIDAuMDAwMTQ4LCAwLjAwMDE0OCwgMC4wMDAxNDgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA0NDcsIDAuMDAwNDQ3LCAwLjAwMDQ0NywgMC4wMDA0NDcsIDAuMDAwNDQ3LCAwLjAwMDQ0NywgMC4wMDA0NDYiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4xODYzMTQ7Ci0gICAgZnVuY3Rpb24gOiAiKCEoKCFBTikrQikpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc2NjE4LCAwLjExMDUzMSwgMC4zMDIwNiwgMC40NzEzNTUsIDAuNjk3NDA1LCAxLjE0OTIsIDEuNDMyNyIsIFwKLSAgICAgICAgICAiMC4wODQxMDMsIDAuMTE3OTM5LCAwLjMwOTgwNiwgMC40NzkwODgsIDAuNzA0NzA0LCAxLjE1NjYzLCAxLjQzODg3IiwgXAotICAgICAgICAgICIwLjA5MDI4MSwgMC4xMjQxNDcsIDAuMzE2MTA2LCAwLjQ4NTc0NiwgMC43MTE2NiwgMS4xNjMyMiwgMS40NDQyNyIsIFwKLSAgICAgICAgICAiMC4wOTQ4NTQsIDAuMTI4NzE4LCAwLjMyMDY3NywgMC40ODk5MTcsIDAuNzE2MDgxLCAxLjE2NzQ1LCAxLjQ0OTYyIiwgXAotICAgICAgICAgICIwLjA5ODUxNCwgMC4xMzIzNjksIDAuMzI0NTI4LCAwLjQ5MzY1OSwgMC43MTk5MzUsIDEuMTcwNiwgMS40NTM1NCIsIFwKLSAgICAgICAgICAiMC4xMDM0NjcsIDAuMTM3Mzc1LCAwLjMyOTIzLCAwLjQ5ODQ1OCwgMC43MjQ2MjgsIDEuMTc1OTIsIDEuNDU3ODYiLCBcCi0gICAgICAgICAgIjAuMTA3MjMyLCAwLjE0MTE5NSwgMC4zMzI4NjksIDAuNTAyMTUsIDAuNzI4NTA3LCAxLjE4MDQ0LCAxLjQ2MjM5Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEzMTE1NSwgMC4yMDI0OTksIDAuNjA4MjgzLCAwLjk2NzU3OCwgMS40NDQ0NCwgMi4zOTg4OCwgMi45OTYzIiwgXAotICAgICAgICAgICIwLjEzMDkxMSwgMC4yMDI4MDUsIDAuNjA4NTA5LCAwLjk2NTk3MywgMS40NDYwNCwgMi4zOTgxOCwgMi45OTQ4MyIsIFwKLSAgICAgICAgICAiMC4xMzEwOTIsIDAuMjAyNTc3LCAwLjYwODE5NiwgMC45NjY0NTMsIDEuNDQzOTUsIDIuMzk4NDUsIDIuOTk2NDMiLCBcCi0gICAgICAgICAgIjAuMTMxMDk5LCAwLjIwMjU1MiwgMC42MDgxODcsIDAuOTY1OTk3LCAxLjQ0MzY1LCAyLjM5ODkyLCAyLjk5NzM2IiwgXAotICAgICAgICAgICIwLjEzMTA5OSwgMC4yMDI2MjUsIDAuNjA4MzA3LCAwLjk2NjE1MywgMS40NDM5OCwgMi4zOTk3NCwgMi45OTUiLCBcCi0gICAgICAgICAgIjAuMTMxMzYsIDAuMjAyNTcxLCAwLjYwOTI0LCAwLjk2NjY3OCwgMS40NDM1MSwgMi4zOTgxMSwgMi45OTQ2NCIsIFwKLSAgICAgICAgICAiMC4xMzE3MDgsIDAuMjAyNjY2LCAwLjYwODMwMSwgMC45NjY1MzcsIDEuNDQzNjgsIDIuMzk4ODcsIDIuOTk0OTMiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQ5NjIzLCAwLjA2Nzc3NSwgMC4xNzA0MSwgMC4yNjA5MTgsIDAuMzgxNTkxLCAwLjYyMjY3MSwgMC43NzM0MiIsIFwKLSAgICAgICAgICAiMC4wNTcxMDksIDAuMDc1MjUxLCAwLjE3Nzk0MiwgMC4yNjgzNzYsIDAuMzg5MDU5LCAwLjYzMDM4NCwgMC43ODE3MTkiLCBcCi0gICAgICAgICAgIjAuMDYzNTkzLCAwLjA4MTYzMiwgMC4xODQyNDEsIDAuMjc0ODM4LCAwLjM5NTUsIDAuNjM2NzcyLCAwLjc4ODA2MSIsIFwKLSAgICAgICAgICAiMC4wNjgyMzEsIDAuMDg2MzIyLCAwLjE4ODg4MSwgMC4yNzk0NTQsIDAuNDAwMDQyLCAwLjY0MTQxNCwgMC43OTIyNDgiLCBcCi0gICAgICAgICAgIjAuMDcxNzQ5LCAwLjA4OTk2LCAwLjE5MjQ2NiwgMC4yODMwMDYsIDAuNDAzNjM1LCAwLjY0NDk4OSwgMC43OTU4ODMiLCBcCi0gICAgICAgICAgIjAuMDc2NjI0LCAwLjA5NTAyLCAwLjE5NzU0OCwgMC4yODc5NzQsIDAuNDA4NzE5LCAwLjY0OTk5LCAwLjgwMTAyNCIsIFwKLSAgICAgICAgICAiMC4wODA1OCwgMC4wOTg2NzQsIDAuMjAxMzc4LCAwLjI5MTgwOCwgMC40MTIzMTcsIDAuNjUzNzkyLCAwLjgwNDg0OCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzAwMzUsIDAuMTA2OTg2LCAwLjMxNzgwNywgMC41MDM5ODIsIDAuNzUxODQyLCAxLjI0ODMsIDEuNTU4MDUiLCBcCi0gICAgICAgICAgIjAuMDcwMTI0LCAwLjEwNzAzMSwgMC4zMTc4NzMsIDAuNTAzODkxLCAwLjc1MTk1OCwgMS4yNDc5MiwgMS41NTg1MyIsIFwKLSAgICAgICAgICAiMC4wNzA1NDMsIDAuMTA3MzEzLCAwLjMxNzgxLCAwLjUwNDA5MiwgMC43NTE5MTUsIDEuMjQ4MDQsIDEuNTU4NTEiLCBcCi0gICAgICAgICAgIjAuMDcwOTUyLCAwLjEwNzU3MywgMC4zMTc4ODQsIDAuNTAzOTQ4LCAwLjc1MjAwOSwgMS4yNDg3MywgMS41NTgwOCIsIFwKLSAgICAgICAgICAiMC4wNzE1MDEsIDAuMTA3Nzk0LCAwLjMxNzk4MSwgMC41MDM5NzUsIDAuNzUyMzE5LCAxLjI0NzcsIDEuNTU4MDMiLCBcCi0gICAgICAgICAgIjAuMDcyMTUsIDAuMTA4MzExLCAwLjMxOCwgMC41MDM5OTIsIDAuNzUxODY4LCAxLjI0NzcsIDEuNTU4MzYiLCBcCi0gICAgICAgICAgIjAuMDcyNjE5LCAwLjEwODYyNiwgMC4zMTgwMzcsIDAuNTAzOTQ4LCAwLjc1MjA3LCAxLjI0Nzc3LCAxLjU1ODAzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2NDUwNSwgMC4wOTgzODksIDAuMjkwMzI3LCAwLjQ1OTcxMiwgMC42ODU5NzMsIDEuMTM4MzMsIDEuNDE5NCIsIFwKLSAgICAgICAgICAiMC4wNzE5MiwgMC4xMDU4MzMsIDAuMjk3OTEyLCAwLjQ2NzA0OCwgMC42OTI3MjUsIDEuMTQ0MDEsIDEuNDI2NjMiLCBcCi0gICAgICAgICAgIjAuMDgxNTEzLCAwLjExNTM1NiwgMC4zMDczMTMsIDAuNDc3MjYxLCAwLjcwMjY2LCAxLjE1NDEyLCAxLjQzNjIiLCBcCi0gICAgICAgICAgIjAuMDkxMzc4LCAwLjEyNTA4OSwgMC4zMTY5MTMsIDAuNDg2MTk0LCAwLjcxMTcxMSwgMS4xNjM5NiwgMS40NDU5OSIsIFwKLSAgICAgICAgICAiMC4xMDEzNTksIDAuMTM0OTA5LCAwLjMyNjU0NCwgMC40OTU4NzEsIDAuNzIxOTQ1LCAxLjE3Mjc2LCAxLjQ1NTg1IiwgXAotICAgICAgICAgICIwLjExNTg1NiwgMC4xNTA5MzEsIDAuMzQyMjQzLCAwLjUwOTI0NSwgMC43MzcyMjIsIDEuMTg4MzIsIDEuNDcwMzMiLCBcCi0gICAgICAgICAgIjAuMTI2Mjg1LCAwLjE2NDc2NSwgMC4zNTU3MSwgMC41MjQ3OTcsIDAuNzUwNDE0LCAxLjIwMjczLCAxLjQ4Mzg1Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEzMDg5MiwgMC4yMDI0OCwgMC42MDg2MjEsIDAuOTY2OTg5LCAxLjQ0NDE3LCAyLjM5OTUxLCAyLjk5NDk0IiwgXAotICAgICAgICAgICIwLjEzMTAzOSwgMC4yMDI4MTEsIDAuNjA4MjMzLCAwLjk2NTk5MiwgMS40NDYyNSwgMi40MDI1OCwgMi45OTU3NSIsIFwKLSAgICAgICAgICAiMC4xMzUwODUsIDAuMjAzOTcsIDAuNjA4MTk4LCAwLjk2Njc0OCwgMS40NDM2NSwgMi4zOTgyMSwgMi45OTcwOSIsIFwKLSAgICAgICAgICAiMC4xNDExOCwgMC4yMDgxMzksIDAuNjA4NDgsIDAuOTY1OTk1LCAxLjQ0NDQyLCAyLjM5ODI1LCAyLjk5Njk0IiwgXAotICAgICAgICAgICIwLjE0ODc3NiwgMC4yMTQyMjYsIDAuNjA4NjAyLCAwLjk2Njc0OSwgMS40NDM2MiwgMi4zOTk4NywgMi45OTQ5MiIsIFwKLSAgICAgICAgICAiMC4xNjIyMDQsIDAuMjI1NTM5LCAwLjYxMTMzNiwgMC45Njc4LCAxLjQ0MzU4LCAyLjM5OTU4LCAyLjk5NDU1IiwgXAotICAgICAgICAgICIwLjE3NDUyMywgMC4yMzY5MTMsIDAuNjE2MzkxLCAwLjk2ODY1MSwgMS40NDQzOSwgMi4zOTg5NCwgMi45OTY1MSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzU5MDgsIDAuMDU0MDI5LCAwLjE1NjcwMywgMC4yNDcxOTgsIDAuMzY3ODc1LCAwLjYwOTE4LCAwLjc2MDA4MiIsIFwKLSAgICAgICAgICAiMC4wNDQyODQsIDAuMDYyNDA4LCAwLjE2NDk5MywgMC4yNTU1MTEsIDAuMzc2MTI3LCAwLjYxNzQxMSwgMC43NjgxNDQiLCBcCi0gICAgICAgICAgIjAuMDU1MDExLCAwLjA3MzEzMSwgMC4xNzU2OTIsIDAuMjY2MTY0LCAwLjM4Njg1NiwgMC42MjgyNDMsIDAuNzc4ODQyIiwgXAotICAgICAgICAgICIwLjA2NTM2LCAwLjA4MzQ5LCAwLjE4NjA3OSwgMC4yNzY2MjgsIDAuMzk3MzU4LCAwLjYzODQ5NCwgMC43ODk1ODIiLCBcCi0gICAgICAgICAgIjAuMDczNzc5LCAwLjA5NDE2MSwgMC4xOTY0MzYsIDAuMjg2OTI3LCAwLjQwNzUyNywgMC42NDg4OSwgMC43OTkyOTUiLCBcCi0gICAgICAgICAgIjAuMDg0NTA2LCAwLjEwODYzMSwgMC4yMTM2NiwgMC4zMDM5LCAwLjQyNDYxMSwgMC42NjU3NDcsIDAuODE2NTA0IiwgXAotICAgICAgICAgICIwLjA5MzI2NiwgMC4xMTk1OCwgMC4yMjg3NzgsIDAuMzE4ODY0LCAwLjQzOTM4NCwgMC42ODA2NTksIDAuODMxNDc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2NzI3MywgMC4xMDQ0MzQsIDAuMzE1NDk2LCAwLjUwMTQzNiwgMC43NDk3MzMsIDEuMjQ3MTYsIDEuNTU2MzciLCBcCi0gICAgICAgICAgIjAuMDY4Njc2LCAwLjEwNDkyMSwgMC4zMTUyNzQsIDAuNTAxNjE3LCAwLjc0OTUyNCwgMS4yNDYyNiwgMS41NTYwMiIsIFwKLSAgICAgICAgICAiMC4wNzQ4NDEsIDAuMTA5MjQ0LCAwLjMxNTYwNSwgMC41MDE2MTUsIDAuNzQ5NzEyLCAxLjI0NzAyLCAxLjU1NTg3IiwgXAotICAgICAgICAgICIwLjA4MzE0NiwgMC4xMTYzMjQsIDAuMzE2NTI2LCAwLjUwMTYzMywgMC43NDk2MjgsIDEuMjQ1NDgsIDEuNTU2MiIsIFwKLSAgICAgICAgICAiMC4wOTI0NTYsIDAuMTI0NTY1LCAwLjMyMDY3NSwgMC41MDIwMTgsIDAuNzUwOTI4LCAxLjI0NjE0LCAxLjU1ODk1IiwgXAotICAgICAgICAgICIwLjEwODg1OSwgMC4xMzk1NTQsIDAuMzI4NjU2LCAwLjUwNzE0NywgMC43NTAyNzcsIDEuMjQ1ODMsIDEuNTU4OTEiLCBcCi0gICAgICAgICAgIjAuMTIwNjY1LCAwLjE1MjcwMSwgMC4zMzczNzksIDAuNTExOTIsIDAuNzUzODQ2LCAxLjI0ODEzLCAxLjU1ODk1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQU4iOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjI2MywgMC4wMDIyNjQsIDAuMDAyMjY1LCAwLjAwMjI2NSwgMC4wMDIyNjYsIDAuMDAyMjY1LCAwLjAwMjI2NSIsIFwKLSAgICAgICAgICAiMC4wMDIyNzIsIDAuMDAyMjc1LCAwLjAwMjI3OCwgMC4wMDIyOCwgMC4wMDIyNzksIDAuMDAyMjgsIDAuMDAyMjc5IiwgXAotICAgICAgICAgICIwLjAwMjM1MiwgMC4wMDIzNTYsIDAuMDAyMzYxLCAwLjAwMjM2MSwgMC4wMDIzNjIsIDAuMDAyMzYyLCAwLjAwMjM2MiIsIFwKLSAgICAgICAgICAiMC4wMDI0NTQsIDAuMDAyNDU4LCAwLjAwMjQ2MywgMC4wMDI0NjQsIDAuMDAyNDY0LCAwLjAwMjQ2NSwgMC4wMDI0NjUiLCBcCi0gICAgICAgICAgIjAuMDAyNTc2LCAwLjAwMjU3OSwgMC4wMDI1OTIsIDAuMDAyNTg1LCAwLjAwMjU5NCwgMC4wMDI1OTQsIDAuMDAyNTk0IiwgXAotICAgICAgICAgICIwLjAwMjc5OSwgMC4wMDI4MDIsIDAuMDAyODAyLCAwLjAwMjgwNiwgMC4wMDI4MDIsIDAuMDAyNzk0LCAwLjAwMjc5NCIsIFwKLSAgICAgICAgICAiMC4wMDI5OTYsIDAuMDAyOTg1LCAwLjAwMjk4NywgMC4wMDI5ODUsIDAuMDAyOTg2LCAwLjAwMjk4NSwgMC4wMDI5ODQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI2OTksIDAuMDAyNywgMC4wMDI3MDIsIDAuMDAyNzAyLCAwLjAwMjcwMiwgMC4wMDI3MDIsIDAuMDAyNzAyIiwgXAotICAgICAgICAgICIwLjAwMjcxNywgMC4wMDI3MTksIDAuMDAyNzIyLCAwLjAwMjcyMywgMC4wMDI3MjMsIDAuMDAyNzIzLCAwLjAwMjcyMyIsIFwKLSAgICAgICAgICAiMC4wMDI3ODgsIDAuMDAyNzkxLCAwLjAwMjc5NCwgMC4wMDI3OTUsIDAuMDAyNzk1LCAwLjAwMjc5NSwgMC4wMDI3OTUiLCBcCi0gICAgICAgICAgIjAuMDAyODkxLCAwLjAwMjg5MywgMC4wMDI4OTYsIDAuMDAyODk3LCAwLjAwMjg5NiwgMC4wMDI4OTYsIDAuMDAyODk2IiwgXAotICAgICAgICAgICIwLjAwMzAyNSwgMC4wMDMwMTQsIDAuMDAzMDI1LCAwLjAwMzAyNCwgMC4wMDMwMjQsIDAuMDAzMDE1LCAwLjAwMzAxNSIsIFwKLSAgICAgICAgICAiMC4wMDMyMiwgMC4wMDMyMjYsIDAuMDAzMjI4LCAwLjAwMzIyLCAwLjAwMzIyOSwgMC4wMDMyMjcsIDAuMDAzMjI3IiwgXAotICAgICAgICAgICIwLjAwMzQwNiwgMC4wMDM0MTYsIDAuMDAzNDE1LCAwLjAwMzQxNSwgMC4wMDM0MDUsIDAuMDAzNDE1LCAwLjAwMzQwNSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTg0NywgMC4wMDE4NTEsIDAuMDAxODU3LCAwLjAwMTg1OCwgMC4wMDE4NTgsIDAuMDAxODU5LCAwLjAwMTg1OSIsIFwKLSAgICAgICAgICAiMC4wMDE4MjQsIDAuMDAxODM0LCAwLjAwMTg1LCAwLjAwMTg1MywgMC4wMDE4NTUsIDAuMDAxODU4LCAwLjAwMTg1NyIsIFwKLSAgICAgICAgICAiMC4wMDE4NDQsIDAuMDAxODQzLCAwLjAwMTg1MSwgMC4wMDE4NTMsIDAuMDAxODU1LCAwLjAwMTg1NywgMC4wMDE4NTciLCBcCi0gICAgICAgICAgIjAuMDAxODg3LCAwLjAwMTg3NCwgMC4wMDE4NjEsIDAuMDAxODYxLCAwLjAwMTg2LCAwLjAwMTg1OSwgMC4wMDE4NTkiLCBcCi0gICAgICAgICAgIjAuMDAxOTU0LCAwLjAwMTkxOSwgMC4wMDE4ODIsIDAuMDAxODczLCAwLjAwMTg2OSwgMC4wMDE4NjUsIDAuMDAxODYzIiwgXAotICAgICAgICAgICIwLjAwMjA4NywgMC4wMDIwMTksIDAuMDAxOTIyLCAwLjAwMTksIDAuMDAxODg2LCAwLjAwMTg3NiwgMC4wMDE4NzMiLCBcCi0gICAgICAgICAgIjAuMDAyMjI4LCAwLjAwMjEyNywgMC4wMDE5NzMsIDAuMDAxOTM5LCAwLjAwMTkxLCAwLjAwMTg5MSwgMC4wMDE4ODUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDAwMzEsIDAuMDAwMDI2LCAwLjAwMDAyLCAwLjAwMDAxOSwgMC4wMDAwMTgsIDAuMDAwMDE3LCAwLjAwMDAxNyIsIFwKLSAgICAgICAgICAiMC4wMDAwNDgsIDAuMDAwMDM1LCAwLjAwMDAxNiwgMC4wMDAwMTIsIDAuMDAwMDA5LCAwLjAwMDAwNSwgMC4wMDAwMDUiLCBcCi0gICAgICAgICAgIjAuMDAwMDQzLCAwLjAwMDAzNCwgMC4wMDAwMTYsIDAuMDAwMDExLCAwLjAwMDAwOSwgMC4wMDAwMDYsIDAuMDAwMDA2IiwgXAotICAgICAgICAgICIwLjAwMDAwNSwgMC4wMDAwMjMsIDAuMDAwMDAzLCAwLjAwMDAwMiwgMC4wMDAwMDIsIDAuMDAwMDAyLCAwLjAwMDAwMiIsIFwKLSAgICAgICAgICAiMC4wMDAwNTUsIDAuMDAwMDcyLCAwLjAwMDAyNiwgMC4wMDAwMTcsIDAuMDAwMDExLCAwLjAwMDAwNiwgMC4wMDAwMDYiLCBcCi0gICAgICAgICAgIjAuMDAwMjUzLCAwLjAwMDE3NCwgMC4wMDAwNjgsIDAuMDAwMDQ2LCAwLjAwMDAzMiwgMC4wMDAwMiwgMC4wMDAwMTYiLCBcCi0gICAgICAgICAgIjAuMDAwMzM5LCAwLjAwMDI5MywgMC4wMDAxMTYsIDAuMDAwMDc2LCAwLjAwMDA1NSwgMC4wMDAwMzUsIDAuMDAwMDI4Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogTk9SMkJYMiAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChOT1IyQlgyKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMzc4NTAxOwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBTikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjMzMDk7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjMzMDk7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjMzMDM3OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTA5NSwgMC4wMDEwOTMsIDAuMDAxMTYyLCAwLjAwMTI1OSwgMC4wMDEzNzQsIDAuMDAxNTkxLCAwLjAwMTc2NSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjc1MSwgMC4wMDI3NTMsIDAuMDAyODExLCAwLjAwMjkwMiwgMC4wMDMwMjEsIDAuMDAzMjU3LCAwLjAwMzQyOCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNzQzNjM7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNzQzNjM7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNzQzMzg7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjk3LCAwLjAwMDI5NywgMC4wMDAyOTcsIDAuMDAwMjk3LCAwLjAwMDI5NywgMC4wMDAyOTcsIDAuMDAwMjk3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwOTQsIDAuMDAwOTQsIDAuMDAwOTQxLCAwLjAwMDk0LCAwLjAwMDk0LCAwLjAwMDk0LCAwLjAwMDk0Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMzc3Njc3OwotICAgIGZ1bmN0aW9uIDogIighKCghQU4pK0IpKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQU4iOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1NDI4OCwgMC4xOTQ5MzQsIDAuMzA3NDcyLCAwLjQ0Nzk1NCwgMC41ODgyMzIsIDAuNzI5MDc5LCAwLjg2OTI1MyIsIFwKLSAgICAgICAgICAiMC4wNjIzNTcsIDAuMjAzMDQxLCAwLjMxNTExNywgMC40NTU3MjgsIDAuNTk2Mzg2LCAwLjczNzQzNywgMC44NzczMDMiLCBcCi0gICAgICAgICAgIjAuMDcwNjQyLCAwLjIxMTI3NywgMC4zMjM2NTYsIDAuNDY0MzY1LCAwLjYwNDU4LCAwLjc0NTE3OCwgMC44ODYzMTYiLCBcCi0gICAgICAgICAgIjAuMDc2NzM4LCAwLjIxNzQ3MSwgMC4zMjk3NTksIDAuNDcwMzI5LCAwLjYxMDc3NywgMC43NTEzMDMsIDAuODkyMjQ3IiwgXAotICAgICAgICAgICIwLjA4MTY4LCAwLjIyMjMwNywgMC4zMzUwMTYsIDAuNDc1NzM4LCAwLjYxNjAxNiwgMC43NTYyODUsIDAuODk2NzM3IiwgXAotICAgICAgICAgICIwLjA4ODQ3OSwgMC4yMjg5NDEsIDAuMzQxNDc1LCAwLjQ4MjIwMywgMC42MjI2NzIsIDAuNzYzMjc2LCAwLjkwMzU2MyIsIFwKLSAgICAgICAgICAiMC4wOTMzOTUsIDAuMjM0LCAwLjM0NjQ0NywgMC40ODcwNTIsIDAuNjI3NDc1LCAwLjc2Nzg5NiwgMC45MDg4NjQiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDcxNjIsIDAuMzY3Njg0LCAwLjYwNTAwNywgMC45MDI0NCwgMS4xOTkxOSwgMS40OTQ4NiwgMS43OTI1NiIsIFwKLSAgICAgICAgICAiMC4wNzE2NDIsIDAuMzY3Njg3LCAwLjYwNDk5NywgMC45MDMxNjIsIDEuMTk3OTksIDEuNDk1MDgsIDEuNzkyODQiLCBcCi0gICAgICAgICAgIjAuMDcxODU5LCAwLjM2Nzg3NSwgMC42MDU5ODksIDAuOTAxNTk4LCAxLjE5ODg3LCAxLjQ5NTc4LCAxLjc5MTczIiwgXAotICAgICAgICAgICIwLjA3MjI2LCAwLjM2NzcxMywgMC42MDU5OTYsIDAuOTAxNTIzLCAxLjIwMDMxLCAxLjQ5NDYxLCAxLjc5MjI1IiwgXAotICAgICAgICAgICIwLjA3Mjc1NywgMC4zNjc3NywgMC42MDUxMDgsIDAuOTAxOTgxLCAxLjE5ODI0LCAxLjQ5NDY0LCAxLjc5MjU4IiwgXAotICAgICAgICAgICIwLjA3MzQ2NiwgMC4zNjc5MTMsIDAuNjA1MDI2LCAwLjkwMTY3NCwgMS4xOTgxOCwgMS40OTQ4OCwgMS43OTE0MyIsIFwKLSAgICAgICAgICAiMC4wNzM5OTcsIDAuMzY3ODYzLCAwLjYwNiwgMC45MDE1NDUsIDEuMjAwMjgsIDEuNDk3MzUsIDEuNzkxOTIiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQxODI3LCAwLjExNzY5OCwgMC4xNzgwNzIsIDAuMjUzNTIyLCAwLjMyODkyNywgMC40MDQzMzgsIDAuNDc5NzMiLCBcCi0gICAgICAgICAgIjAuMDQ5ODE1LCAwLjEyNTYyNSwgMC4xODU5OTUsIDAuMjYxNTA0LCAwLjMzNywgMC40MTI0MjgsIDAuNDg3NzUyIiwgXAotICAgICAgICAgICIwLjA1ODMyLCAwLjEzNDE3NywgMC4xOTQ1MjQsIDAuMjcwMDQ0LCAwLjM0NTUxMSwgMC40MjA5NCwgMC40OTYzMTkiLCBcCi0gICAgICAgICAgIjAuMDY0NDUyLCAwLjE0MDU3NSwgMC4yMDA5MDksIDAuMjc2MzI2LCAwLjM1MTc2LCAwLjQyNzQyNSwgMC41MDI3MzYiLCBcCi0gICAgICAgICAgIjAuMDY5NjIzLCAwLjE0NTQzNywgMC4yMDU3OTYsIDAuMjgxMTQ1LCAwLjM1NjU1NSwgMC40MzIwNjgsIDAuNTA3NjIyIiwgXAotICAgICAgICAgICIwLjA3NjI4OSwgMC4xNTIwODYsIDAuMjEyMzU2LCAwLjI4NzcyNCwgMC4zNjMxMjMsIDAuNDM4NTQ0LCAwLjUxNDEyMyIsIFwKLSAgICAgICAgICAiMC4wODExNDUsIDAuMTU3MDksIDAuMjE3Mzc1LCAwLjI5MjcyNCwgMC4zNjgxMjksIDAuNDQzNTQ1LCAwLjUxODk5NCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDEzMzUsIDAuMTk0NDEyLCAwLjMxODQxMywgMC40NzM1NzYsIDAuNjI4NTI0LCAwLjc4MzY5NSwgMC45Mzg3NjQiLCBcCi0gICAgICAgICAgIjAuMDQxNDQ1LCAwLjE5NDQxMiwgMC4zMTg0MDYsIDAuNDczNjE2LCAwLjYyODgyNCwgMC43ODM2ODgsIDAuOTM4Nzc1IiwgXAotICAgICAgICAgICIwLjA0MjI0LCAwLjE5NDQ5NiwgMC4zMTgzNzcsIDAuNDczNTIsIDAuNjI4ODY5LCAwLjc4MzY2LCAwLjkzODg4NSIsIFwKLSAgICAgICAgICAiMC4wNDMzMzUsIDAuMTk0Njg3LCAwLjMxODQ1NCwgMC40NzM0NjcsIDAuNjI4NTM1LCAwLjc4NDAxOSwgMC45Mzg2NTkiLCBcCi0gICAgICAgICAgIjAuMDQ0MTYzLCAwLjE5NDg3NCwgMC4zMTg0OTIsIDAuNDczNDUzLCAwLjYyODU3OCwgMC43ODM1OTksIDAuOTM4ODQzIiwgXAotICAgICAgICAgICIwLjA0NTUzMSwgMC4xOTUzLCAwLjMxODYxOCwgMC40NzM2MDUsIDAuNjI4NjM3LCAwLjc4MzgyMiwgMC45Mzg2ODMiLCBcCi0gICAgICAgICAgIjAuMDQ2NzM1LCAwLjE5NTQ3OSwgMC4zMTg3NzksIDAuNDczNjAyLCAwLjYyODYzNSwgMC43ODM3NTgsIDAuOTM4NjkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM2MTQsIDAuMTc2ODQ2LCAwLjI4OTEyNSwgMC40Mjk2MywgMC41NzA1NTEsIDAuNzEwOTI4LCAwLjg1MTMxOCIsIFwKLSAgICAgICAgICAiMC4wNDM2MjIsIDAuMTg0MzU1LCAwLjI5NjcyNCwgMC40Mzc3OTYsIDAuNTc3ODA3LCAwLjcxODk3NywgMC44NTg2ODEiLCBcCi0gICAgICAgICAgIjAuMDUzNDg4LCAwLjE5Mzk3NiwgMC4zMDY0MTMsIDAuNDQ2ODk0LCAwLjU4NzkyNSwgMC43Mjc4ODgsIDAuODY5MTM4IiwgXAotICAgICAgICAgICIwLjA2MjU3OSwgMC4yMDM2NzYsIDAuMzE2MDg3LCAwLjQ1NjY5OSwgMC41OTcwMzIsIDAuNzM3NDQyLCAwLjg3ODA3NCIsIFwKLSAgICAgICAgICAiMC4wNjk4MDIsIDAuMjEzMDczLCAwLjMyNTQ2OSwgMC40NjYzNzYsIDAuNjA2NjQ4LCAwLjc0NzE2MSwgMC44ODc1NDIiLCBcCi0gICAgICAgICAgIjAuMDc5NDg3LCAwLjIyODgxOSwgMC4zNDEwOTMsIDAuNDgxMDA2LCAwLjYyMjI1MiwgMC43NjIyNTIsIDAuOTAyNzQ4IiwgXAotICAgICAgICAgICIwLjA4NzExNSwgMC4yNDI2OTgsIDAuMzU0NjM0LCAwLjQ5NDk5MSwgMC42MzQyOTMsIDAuNzc2MzgxLCAwLjkxNjMyMyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzExNTgsIDAuMzY3Nzk1LCAwLjYwNTI4MSwgMC45MDMyMjksIDEuMTk4NzEsIDEuNDk0ODcsIDEuNzkyNjkiLCBcCi0gICAgICAgICAgIjAuMDcyNjUsIDAuMzY3OTAyLCAwLjYwNjA3MSwgMC45MDIwMTQsIDEuMTk3OTUsIDEuNDk1MzEsIDEuNzk0ODEiLCBcCi0gICAgICAgICAgIjAuMDc5MTEsIDAuMzY4MzIzLCAwLjYwNTMxNiwgMC45MDIyMDcsIDEuMTk4ODYsIDEuNDk2MSwgMS43OTE3OSIsIFwKLSAgICAgICAgICAiMC4wODc0NDksIDAuMzY4NTE5LCAwLjYwNjA5MywgMC45MDE1OTgsIDEuMTk3OTgsIDEuNDk3NCwgMS43OTI0OSIsIFwKLSAgICAgICAgICAiMC4wOTY1OTcsIDAuMzcxNjM1LCAwLjYwNjE3LCAwLjkwMTc4NSwgMS4xOTgyLCAxLjQ5NDgxLCAxLjc5MTk0IiwgXAotICAgICAgICAgICIwLjExMDMwNiwgMC4zNzk0MjgsIDAuNjA4MjIyLCAwLjkwMTU2MywgMS4xOTgyOCwgMS40OTc0LCAxLjc5NDU5IiwgXAotICAgICAgICAgICIwLjExOTkwNiwgMC4zODc0MTIsIDAuNjEzMTg2LCAwLjkwNDYyNiwgMS4xOTgxNywgMS40OTUwNCwgMS43OTI3NCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjE0NTMsIDAuMDk5MTMsIDAuMTYxMzM2LCAwLjIzODk1OSwgMC4zMTY1MDksIDAuMzk0MjgxLCAwLjQ3MTY2NSIsIFwKLSAgICAgICAgICAiMC4wMjk4NTcsIDAuMTA3NTc2LCAwLjE2OTYzNCwgMC4yNDcyMjEsIDAuMzI0NzkzLCAwLjQwMjUwMiwgMC40ODAwMzkiLCBcCi0gICAgICAgICAgIjAuMDM5NzE1LCAwLjExNzk3NywgMC4xODAwNDksIDAuMjU3NzE0LCAwLjMzNTI1NywgMC40MTI4ODIsIDAuNDkwNjM4IiwgXAotICAgICAgICAgICIwLjA0Njc5NywgMC4xMjg4MTYsIDAuMTkwODg3LCAwLjI2ODYxMSwgMC4zNDYxMiwgMC40MjM2MzgsIDAuNTAxMjkiLCBcCi0gICAgICAgICAgIjAuMDUyNzcxLCAwLjEzOTE5OSwgMC4yMDEwNTQsIDAuMjc4Njg3LCAwLjM1NjEyLCAwLjQzMzkzNiwgMC41MTE0ODciLCBcCi0gICAgICAgICAgIjAuMDYwNDQ1LCAwLjE1NjQzMiwgMC4yMTgyNSwgMC4yOTU2NzEsIDAuMzczMTY2LCAwLjQ1MDIzMSwgMC41Mjg0NjgiLCBcCi0gICAgICAgICAgIjAuMDY2MDY2LCAwLjE3MTY0LCAwLjIzMzM3OCwgMC4zMTA2NjcsIDAuMzg4MTk1LCAwLjQ2NTYzNywgMC41NDM0MjciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM3MzYsIDAuMTk3NDg0LCAwLjMyNTQ5MSwgMC40ODU2MjUsIDAuNjQ1Mzk0LCAwLjgwNTc2NSwgMC45NjYxNCIsIFwKLSAgICAgICAgICAiMC4wNDA2LCAwLjE5NzM0OSwgMC4zMjUyOTUsIDAuNDg2MzI4LCAwLjY0NjM5OCwgMC44MDU0NDIsIDAuOTY1MDQ0IiwgXAotICAgICAgICAgICIwLjA0OTE0NCwgMC4xOTg0MTgsIDAuMzI1OTg5LCAwLjQ4NTc0MiwgMC42NDUxOCwgMC44MDUwMTMsIDAuOTY1NDIyIiwgXAotICAgICAgICAgICIwLjA1ODg1OCwgMC4yMDI0MjcsIDAuMzI2MzA3LCAwLjQ4NTMyMiwgMC42NDU0MjksIDAuODA1MjMzLCAwLjk2NDkyNyIsIFwKLSAgICAgICAgICAiMC4wNjc3MjcsIDAuMjA4NTgxLCAwLjMzMDQyNywgMC40ODY2MzUsIDAuNjQ2NDI3LCAwLjgwNTM5MiwgMC45NjYxMDEiLCBcCi0gICAgICAgICAgIjAuMDgwNDYzLCAwLjIxOTYsIDAuMzM4MTMzLCAwLjQ5MDUyNiwgMC42NDgyNzUsIDAuODA1NDIxLCAwLjk2NTk5MiIsIFwKLSAgICAgICAgICAiMC4wOTA1MTUsIDAuMjMwODcyLCAwLjM0NjQyLCAwLjQ5NjYzNCwgMC42NTEwMTEsIDAuODA4OTk5LCAwLjk2NTgzMSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkFOIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQ1MSwgMC4wMDQ1MzUsIDAuMDA0NTM3LCAwLjAwNDUzOSwgMC4wMDQ1NCwgMC4wMDQ1NCwgMC4wMDQ1NCIsIFwKLSAgICAgICAgICAiMC4wMDQ0OTcsIDAuMDA0NTM0LCAwLjAwNDUzOCwgMC4wMDQ1NDEsIDAuMDA0NTQyLCAwLjAwNDU0MywgMC4wMDQ1NDIiLCBcCi0gICAgICAgICAgIjAuMDA0NTQ3LCAwLjAwNDU4OSwgMC4wMDQ1OTUsIDAuMDA0NTk4LCAwLjAwNDYsIDAuMDA0NjAxLCAwLjAwNDYiLCBcCi0gICAgICAgICAgIjAuMDA0NjM4LCAwLjAwNDY3OSwgMC4wMDQ2ODUsIDAuMDA0NjkxLCAwLjAwNDY5MiwgMC4wMDQ2OTQsIDAuMDA0NjkzIiwgXAotICAgICAgICAgICIwLjAwNDc0NSwgMC4wMDQ3ODcsIDAuMDA0NzkyLCAwLjAwNDc5NCwgMC4wMDQ3OTcsIDAuMDA0Nzk5LCAwLjAwNDc5OSIsIFwKLSAgICAgICAgICAiMC4wMDQ5NDEsIDAuMDA0OTY4LCAwLjAwNDk4MiwgMC4wMDQ5NzgsIDAuMDA0OTg2LCAwLjAwNDk4OSwgMC4wMDQ5ODkiLCBcCi0gICAgICAgICAgIjAuMDA1MTI3LCAwLjAwNTE1OCwgMC4wMDUxNTMsIDAuMDA1MTY3LCAwLjAwNTE2OCwgMC4wMDUxNjgsIDAuMDA1MTY4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0NTg3LCAwLjAwNDYsIDAuMDA0NjAxLCAwLjAwNDYwMSwgMC4wMDQ2MDEsIDAuMDA0NjAxLCAwLjAwNDYwMSIsIFwKLSAgICAgICAgICAiMC4wMDQ1OCwgMC4wMDQ2MDQsIDAuMDA0NjA2LCAwLjAwNDYwOCwgMC4wMDQ2MDgsIDAuMDA0NjA5LCAwLjAwNDYwOSIsIFwKLSAgICAgICAgICAiMC4wMDQ2NTgsIDAuMDA0NjcxLCAwLjAwNDY3MywgMC4wMDQ2NzQsIDAuMDA0Njc0LCAwLjAwNDY3NSwgMC4wMDQ2NzQiLCBcCi0gICAgICAgICAgIjAuMDA0NzQyLCAwLjAwNDc1NiwgMC4wMDQ3NTgsIDAuMDA0NzU3LCAwLjAwNDc1NywgMC4wMDQ3NTcsIDAuMDA0NzU3IiwgXAotICAgICAgICAgICIwLjAwNDg2NiwgMC4wMDQ4NjUsIDAuMDA0ODU2LCAwLjAwNDg2NCwgMC4wMDQ4NjQsIDAuMDA0ODYzLCAwLjAwNDg2MyIsIFwKLSAgICAgICAgICAiMC4wMDUwNTIsIDAuMDA1MDY1LCAwLjAwNTA1OSwgMC4wMDUwNTUsIDAuMDA1MDU0LCAwLjAwNTA1MiwgMC4wMDUwNTIiLCBcCi0gICAgICAgICAgIjAuMDA1MjQsIDAuMDA1MjI1LCAwLjAwNTIxOSwgMC4wMDUyMTUsIDAuMDA1MjEzLCAwLjAwNTIxMiwgMC4wMDUyMTEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDM2NjIsIDAuMDAzNjk5LCAwLjAwMzcwMywgMC4wMDM3MDQsIDAuMDAzNzA2LCAwLjAwMzcwNiwgMC4wMDM3MDciLCBcCi0gICAgICAgICAgIjAuMDAzNTk5LCAwLjAwMzY3NCwgMC4wMDM2ODYsIDAuMDAzNjkyLCAwLjAwMzY5NywgMC4wMDM3LCAwLjAwMzciLCBcCi0gICAgICAgICAgIjAuMDAzNjYyLCAwLjAwMzY3NSwgMC4wMDM2ODYsIDAuMDAzNjkyLCAwLjAwMzY5NSwgMC4wMDM2OTYsIDAuMDAzNjk5IiwgXAotICAgICAgICAgICIwLjAwMzgwMSwgMC4wMDM3MDMsIDAuMDAzNzA1LCAwLjAwMzcwMSwgMC4wMDM3MDIsIDAuMDAzNzAyLCAwLjAwMzcwNCIsIFwKLSAgICAgICAgICAiMC4wMDQwMzYsIDAuMDAzNzcxLCAwLjAwMzc1MSwgMC4wMDM3MzcsIDAuMDAzNzI5LCAwLjAwMzcyNCwgMC4wMDM3MjEiLCBcCi0gICAgICAgICAgIjAuMDA0NDA1LCAwLjAwMzksIDAuMDAzODMsIDAuMDAzOCwgMC4wMDM3NzIsIDAuMDAzNzU4LCAwLjAwMzc1IiwgXAotICAgICAgICAgICIwLjAwNDY0MSwgMC4wMDQwMzUsIDAuMDAzOTMxLCAwLjAwMzg3NCwgMC4wMDM4MzMsIDAuMDAzODA3LCAwLjAwMzc5MSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDAyNSwgMC4wMDAwMTgsIDAuMDAwMDIyLCAwLjAwMDAyNCwgMC4wMDAwMjUsIDAuMDAwMDI2LCAwLjAwMDAyNiIsIFwKLSAgICAgICAgICAiMC4wMDAwODgsIDAuMDAwMDE1LCAwLjAwMDAyOSwgMC4wMDAwMzcsIDAuMDAwMDQxLCAwLjAwMDA0MywgMC4wMDAwNDUiLCBcCi0gICAgICAgICAgIjAuMDAwMDU3LCAwLjAwMDAyNywgMC4wMDAwMzcsIDAuMDAwMDQzLCAwLjAwMDA0NiwgMC4wMDAwNDgsIDAuMDAwMDUiLCBcCi0gICAgICAgICAgIjAuMDAwMDk0LCAwLjAwMDAzOCwgMC4wMDAwNDMsIDAuMDAwMDQ4LCAwLjAwMDA1LCAwLjAwMDA1MSwgMC4wMDAwNTIiLCBcCi0gICAgICAgICAgIjAuMDAwMjYxLCAwLjAwMDEzOSwgMC4wMDAxMSwgMC4wMDAwOTcsIDAuMDAwMDg5LCAwLjAwMDA4MiwgMC4wMDAwNzgiLCBcCi0gICAgICAgICAgIjAuMDAwNjMzLCAwLjAwMDI2NSwgMC4wMDAxOTMsIDAuMDAwMTU1LCAwLjAwMDEzNCwgMC4wMDAxMjIsIDAuMDAwMTEyIiwgXAotICAgICAgICAgICIwLjAwMDk2OSwgMC4wMDA0MDQsIDAuMDAwMjg5LCAwLjAwMDIyLCAwLjAwMDE4OCwgMC4wMDAxNjUsIDAuMDAwMTUxIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogTk9SMkJYNCAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChOT1IyQlg0KSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuNjk4MTg2OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBTikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjQyMzM7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjQyMzM7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjQyMzM7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyMTcyLCAwLjAwMjE2MiwgMC4wMDIyMTYsIDAuMDAyMzE0LCAwLjAwMjQyNCwgMC4wMDI1NCwgMC4wMDI4MDMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDQzNTUsIDAuMDA0MzU0LCAwLjAwNDM5OCwgMC4wMDQ0NzQsIDAuMDA0NTk0LCAwLjAwNDY4LCAwLjAwNDgyIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDM0MjM2NDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDM0MjM2NDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDM0MjI2NDsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA1OTMsIDAuMDAwNTkzLCAwLjAwMDU5MywgMC4wMDA1OTMsIDAuMDAwNTkzLCAwLjAwMDU5MywgMC4wMDA1OTMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDE4NzYsIDAuMDAxODc2LCAwLjAwMTg3NywgMC4wMDE4NzYsIDAuMDAxODc2LCAwLjAwMTg3NSwgMC4wMDE4NzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC43NTY1MTsKLSAgICBmdW5jdGlvbiA6ICIoISgoIUFOKStCKSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkFOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1MDYzOSwgMC4xNTA2MTcsIDAuMjUwMTM4LCAwLjMyMDkzNywgMC40MzQzNjgsIDAuNTM0NDQ3LCAwLjY3NjQ3NSIsIFwKLSAgICAgICAgICAiMC4wNTg5LCAwLjE1ODg4OCwgMC4yNTgzNTYsIDAuMzI5MiwgMC40NDI4MzMsIDAuNTQyMTE4LCAwLjY4NDQ5NCIsIFwKLSAgICAgICAgICAiMC4wNjg3ODksIDAuMTY4Nzc0LCAwLjI2ODM0NCwgMC4zMzk0MDksIDAuNDUzMDgxLCAwLjU1MjY3NiwgMC42OTQ3MDciLCBcCi0gICAgICAgICAgIjAuMDc3MDMzLCAwLjE3NzA3OCwgMC4yNzY1MzQsIDAuMzQ3NTU1LCAwLjQ2MTE3NywgMC41NjA4ODMsIDAuNzAyNzgzIiwgXAotICAgICAgICAgICIwLjA4NDA5NywgMC4xODQyOTMsIDAuMjgzNzIxLCAwLjM1NDc4NCwgMC40Njg3MiwgMC41NjgxOTcsIDAuNzEwMDgyIiwgXAotICAgICAgICAgICIwLjA5MzEzOCwgMC4xOTM1NTEsIDAuMjkzMDczLCAwLjM2NDA5NSwgMC40Nzc2NTQsIDAuNTc3MDY1LCAwLjcxOTA2OSIsIFwKLSAgICAgICAgICAiMC4wOTk3NjgsIDAuMjAwMzk1LCAwLjI5OTgzMiwgMC4zNzA4ODIsIDAuNDg0NDc1LCAwLjU4Mzk2MSwgMC43MjY1MTQiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDQyMjMsIDAuMjUyMTQxLCAwLjQ2MTQ2NCwgMC42MTE3ODgsIDAuODUwMzA5LCAxLjA2MTQ0LCAxLjM2MTM1IiwgXAotICAgICAgICAgICIwLjA0NDE5NCwgMC4yNTIxNDIsIDAuNDYxNDk2LCAwLjYxMTYxNiwgMC44NTI4LCAxLjA2Mjc2LCAxLjM2MTEzIiwgXAotICAgICAgICAgICIwLjA0NDUwNCwgMC4yNTE4NjUsIDAuNDYxNDY3LCAwLjYxMTQyMiwgMC44NTE2MzksIDEuMDYxNDcsIDEuMzYxMzgiLCBcCi0gICAgICAgICAgIjAuMDQ1NDE4LCAwLjI1MTk2NCwgMC40NjE3MTIsIDAuNjEyNDI2LCAwLjg1MTg3NywgMS4wNjEzOCwgMS4zNjEzIiwgXAotICAgICAgICAgICIwLjA0NjQ4MSwgMC4yNTE4ODQsIDAuNDYxNjQ4LCAwLjYxMjQzNCwgMC44NTE0NzgsIDEuMDYxNDcsIDEuMzYxMjciLCBcCi0gICAgICAgICAgIjAuMDQ3OTk5LCAwLjI1MjI0OSwgMC40NjIzNDcsIDAuNjEyNTA1LCAwLjg1Mjc5NiwgMS4wNjMxMywgMS4zNjE5NSIsIFwKLSAgICAgICAgICAiMC4wNDkyMTMsIDAuMjUyMzQ4LCAwLjQ2MTk0LCAwLjYxMjQ0OSwgMC44NTI3NjQsIDEuMDYxODksIDEuMzYxNDgiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDYyMDgsIDAuMTAyMTY3LCAwLjE1NTgxMywgMC4xOTQwOTIsIDAuMjU1MzU4LCAwLjMwODg5NSwgMC4zODU1NDciLCBcCi0gICAgICAgICAgIjAuMDU0MzYxLCAwLjExMDI4OSwgMC4xNjM5NDIsIDAuMjAyMjE3LCAwLjI2MzQ5NCwgMC4zMTcwMzIsIDAuMzkzNjEyIiwgXAotICAgICAgICAgICIwLjA2NDE1MiwgMC4xMjAwNzgsIDAuMTczNjkzLCAwLjIxMTk2OSwgMC4yNzMyMSwgMC4zMjY3NTgsIDAuNDAzNDMxIiwgXAotICAgICAgICAgICIwLjA3MjU1NywgMC4xMjg0OTQsIDAuMTgyMDgzLCAwLjIyMDM0NiwgMC4yODE1NjEsIDAuMzM1MTI0LCAwLjQxMTc5NSIsIFwKLSAgICAgICAgICAiMC4wNzk3OCwgMC4xMzYxNTUsIDAuMTg5Nzc2LCAwLjIyODA2MSwgMC4yODkyNDgsIDAuMzQyODgzLCAwLjQxOTM0OSIsIFwKLSAgICAgICAgICAiMC4wODg2NDQsIDAuMTQ1NjI1LCAwLjE5OTMyNiwgMC4yMzcyMDIsIDAuMjk4MzU3LCAwLjM1MTg5NCwgMC40Mjg0MTQiLCBcCi0gICAgICAgICAgIjAuMDk1MjUsIDAuMTUyNjE4LCAwLjIwNjM5NywgMC4yNDQyODUsIDAuMzA1MzkxLCAwLjM1ODkyLCAwLjQzNTQwOCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzMDczMiwgMC4xMzY2ODgsIDAuMjQ1Nzk4LCAwLjMyNDE0NywgMC40NTAxMDMsIDAuNTYwMjU4LCAwLjcxNzc4NCIsIFwKLSAgICAgICAgICAiMC4wMzA2NjIsIDAuMTM2NjYxLCAwLjI0NTcwOCwgMC4zMjQxNTYsIDAuNDUwMTEyLCAwLjU2MDI2MywgMC43MTc4MDEiLCBcCi0gICAgICAgICAgIjAuMDMxMjkxLCAwLjEzNjc5NSwgMC4yNDU3NTksIDAuMzI0MzA2LCAwLjQ1MDEwNywgMC41NjAyNjcsIDAuNzE3ODU0IiwgXAotICAgICAgICAgICIwLjAzMjY5LCAwLjEzNzExNywgMC4yNDU5NDcsIDAuMzI0MjgsIDAuNDUwMTI2LCAwLjU2MDMwNCwgMC43MTc4NjQiLCBcCi0gICAgICAgICAgIjAuMDM0MjM4LCAwLjEzNzc0MywgMC4yNDYxOTYsIDAuMzI0NDE1LCAwLjQ1MDExNywgMC41NjAzNDcsIDAuNzE3ODgxIiwgXAotICAgICAgICAgICIwLjAzNjUzNiwgMC4xMzg3MjksIDAuMjQ2NTc2LCAwLjMyNDcwOSwgMC40NTAyMjksIDAuNTYwMzM2LCAwLjcxNzgyMyIsIFwKLSAgICAgICAgICAiMC4wMzgzMjMsIDAuMTM5NjAzLCAwLjI0Njk5NSwgMC4zMjQ5NTcsIDAuNDUwMzM2LCAwLjU2MDQyNywgMC43MTc4NDQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjE4OTQsIDAuMTIxNDk1LCAwLjIyMTA3MSwgMC4yOTIxNiwgMC40MDU2ODEsIDAuNTA1MDE0LCAwLjY0NjkzMSIsIFwKLSAgICAgICAgICAiMC4wMjk0MiwgMC4xMjkwOSwgMC4yMjg1MDIsIDAuMjk5NTgsIDAuNDEzNDEzLCAwLjUxMjkwMywgMC42NTQ3MDYiLCBcCi0gICAgICAgICAgIjAuMDM4Mjc3LCAwLjEzODUzMywgMC4yMzgwMDQsIDAuMzA5MDA2LCAwLjQyMjg5NiwgMC41MjI3MDYsIDAuNjY0MTYyIiwgXAotICAgICAgICAgICIwLjA0NDY0MSwgMC4xNDg0NzgsIDAuMjQ3ODI4LCAwLjMxOTAwMiwgMC40MzI0ODcsIDAuNTMyMjM1LCAwLjY3MzkxOSIsIFwKLSAgICAgICAgICAiMC4wNTAwMDYsIDAuMTU4MDI0LCAwLjI1NzMyNiwgMC4zMjg0MTUsIDAuNDQxODkyLCAwLjU0MTMyMiwgMC42ODQwMTQiLCBcCi0gICAgICAgICAgIjAuMDU2Njg3LCAwLjE3Mzg4NSwgMC4yNzI4OTMsIDAuMzQzODE5LCAwLjQ1NzM3MiwgMC41NTY4MzEsIDAuNjk4Njc0IiwgXAotICAgICAgICAgICIwLjA2MTkwMywgMC4xODc4NzQsIDAuMjg2NTg1LCAwLjM1NzQyNywgMC40NzA4OTIsIDAuNTcwMjM3LCAwLjcxMjI4NiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0MTM0NCwgMC4yNTE4NTYsIDAuNDYxNDY4LCAwLjYxMTQ5MSwgMC44NTE2MzgsIDEuMDYxMTQsIDEuMzYyMTQiLCBcCi0gICAgICAgICAgIjAuMDQ0NzcyLCAwLjI1MTg0NCwgMC40NjIxODgsIDAuNjExMjI5LCAwLjg1MTM5MywgMS4wNjEzOSwgMS4zNjExMiIsIFwKLSAgICAgICAgICAiMC4wNTI5NDgsIDAuMjUyMTM4LCAwLjQ2MTUwNywgMC42MTE3NTgsIDAuODUxNDUxLCAxLjA2MTc4LCAxLjM2MTE4IiwgXAotICAgICAgICAgICIwLjA2MjAwNCwgMC4yNTU0MjMsIDAuNDYxNjkzLCAwLjYxMTM5OSwgMC44NTE4MDEsIDEuMDYxNDUsIDEuMzYzNzUiLCBcCi0gICAgICAgICAgIjAuMDY4ODI0LCAwLjI2MDE0NSwgMC40NjM4MTQsIDAuNjExNTE0LCAwLjg1MTc1OCwgMS4wNjMxNywgMS4zNjE4IiwgXAotICAgICAgICAgICIwLjA3OTQ1NiwgMC4yNzAxNjUsIDAuNDY4ODkyLCAwLjYxNDY3NywgMC44NTI5NTYsIDEuMDYzMTgsIDEuMzYxOTkiLCBcCi0gICAgICAgICAgIjAuMDg3NzM0LCAwLjI4MDUwNywgMC40NzUyODEsIDAuNjE5NjY4LCAwLjg1Mzg5OCwgMS4wNjMzLCAxLjM2MzU5Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEzNTA4LCAwLjA2Nzk2MiwgMC4xMjIzMDQsIDAuMTYxMTE3LCAwLjIyMzQxOCwgMC4yNzc1MzUsIDAuMzU1MzY1IiwgXAotICAgICAgICAgICIwLjAyMTY3OCwgMC4wNzYzNzYsIDAuMTMwNzE1LCAwLjE2OTU1OCwgMC4yMzE2MjYsIDAuMjg2MDEsIDAuMzYzNjIxIiwgXAotICAgICAgICAgICIwLjAyODY4NiwgMC4wODY5MDQsIDAuMTQxMjQyLCAwLjE3OTg4OSwgMC4yNDIwODgsIDAuMjk2MzEzLCAwLjM3Mzk5NiIsIFwKLSAgICAgICAgICAiMC4wMzM2NzcsIDAuMDk3MzQxLCAwLjE1MTU1MiwgMC4xOTAzMzksIDAuMjUyMTg0LCAwLjMwNjg5NywgMC4zODQ0MDIiLCBcCi0gICAgICAgICAgIjAuMDM3NzA2LCAwLjEwODE0NywgMC4xNjIyNDksIDAuMjAwOTYzLCAwLjI2MzAwNiwgMC4zMTczNTksIDAuMzk0OTc5IiwgXAotICAgICAgICAgICIwLjA0Mjc1NiwgMC4xMjQ3MjgsIDAuMTc5NDUyLCAwLjIxODE1MiwgMC4yODAwNjcsIDAuMzM0MzA2LCAwLjQxMjAwOSIsIFwKLSAgICAgICAgICAiMC4wNDY0OTUsIDAuMTM3NDUsIDAuMTk0NjYxLCAwLjIzMzI5LCAwLjI5NTA0NywgMC4zNDkzMjYsIDAuNDI2ODU5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDIxMTAyLCAwLjEzMzA2OSwgMC4yNDUxMDksIDAuMzI1ODAyLCAwLjQ1MzQ3NywgMC41NjY0MTgsIDAuNzI1NjUzIiwgXAotICAgICAgICAgICIwLjAyNjI0MiwgMC4xMzM0MzUsIDAuMjQ1NjUzLCAwLjMyNTgwMiwgMC40NTQyMSwgMC41NjUyOTUsIDAuNzI1MTk2IiwgXAotICAgICAgICAgICIwLjAzNTY1LCAwLjEzNjU1OCwgMC4yNDU5NjgsIDAuMzI1ODY3LCAwLjQ1MzIyNywgMC41NjYzNDgsIDAuNzI2MDIyIiwgXAotICAgICAgICAgICIwLjA0MzkxMiwgMC4xNDI0NjEsIDAuMjQ4OTQ5LCAwLjMyNjYyLCAwLjQ1MzY4OCwgMC41NjUzNDcsIDAuNzI2NjQiLCBcCi0gICAgICAgICAgIjAuMDUxMTM3LCAwLjE0OTg0NSwgMC4yNTM3MDEsIDAuMzMwMzEzLCAwLjQ1NTQ2OCwgMC41NjY0MTcsIDAuNzI1MjUyIiwgXAotICAgICAgICAgICIwLjA2MTcwMywgMC4xNjMxNzgsIDAuMjYzMTQ4LCAwLjMzODAyNSwgMC40NjA0NjcsIDAuNTY5MzE2LCAwLjcyNTg4NyIsIFwKLSAgICAgICAgICAiMC4wNzAyODEsIDAuMTc2MTk2LCAwLjI3MzI5MSwgMC4zNDY2MjksIDAuNDY2ODg5LCAwLjU3NDMyLCAwLjcyOTMwNiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkFOIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwODY1NiwgMC4wMDg3NzgsIDAuMDA4NzkzLCAwLjAwODc5OSwgMC4wMDg4MDUsIDAuMDA4ODA3LCAwLjAwODgwOSIsIFwKLSAgICAgICAgICAiMC4wMDg2MzMsIDAuMDA4NzYsIDAuMDA4NzgxLCAwLjAwODc4NiwgMC4wMDg3OTEsIDAuMDA4Nzk2LCAwLjAwODc5NiIsIFwKLSAgICAgICAgICAiMC4wMDg2NzEsIDAuMDA4Nzk4LCAwLjAwODgyNSwgMC4wMDg4MzQsIDAuMDA4ODQyLCAwLjAwODg0NiwgMC4wMDg4NSIsIFwKLSAgICAgICAgICAiMC4wMDg3NjcsIDAuMDA4ODczLCAwLjAwODkwMywgMC4wMDg5MTMsIDAuMDA4OTIyLCAwLjAwODkyOCwgMC4wMDg5MzEiLCBcCi0gICAgICAgICAgIjAuMDA4ODUsIDAuMDA4OTM3LCAwLjAwODk2NSwgMC4wMDg5NzQsIDAuMDA4OTg0LCAwLjAwODk4OSwgMC4wMDg5OTEiLCBcCi0gICAgICAgICAgIjAuMDA5MDQ4LCAwLjAwOTEwMiwgMC4wMDkxMjYsIDAuMDA5MTM1LCAwLjAwOTE0NiwgMC4wMDkxNTEsIDAuMDA5MTU2IiwgXAotICAgICAgICAgICIwLjAwOTI0LCAwLjAwOTI2NSwgMC4wMDkyODgsIDAuMDA5MjkzLCAwLjAwOTMwMiwgMC4wMDkzMDYsIDAuMDA5MzEyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDgwMzIsIDAuMDA4MDYsIDAuMDA4MDYzLCAwLjAwODA2NCwgMC4wMDgwNjUsIDAuMDA4MDY2LCAwLjAwODA2NiIsIFwKLSAgICAgICAgICAiMC4wMDc5ODksIDAuMDA4MDUsIDAuMDA4MDYyLCAwLjAwODA2NiwgMC4wMDgwNjksIDAuMDA4MDcsIDAuMDA4MDcyIiwgXAotICAgICAgICAgICIwLjAwODA4OSwgMC4wMDgxMDIsIDAuMDA4MTEzLCAwLjAwODExNiwgMC4wMDgxMTgsIDAuMDA4MTIsIDAuMDA4MTIxIiwgXAotICAgICAgICAgICIwLjAwODI4LCAwLjAwODE5OSwgMC4wMDgyMDIsIDAuMDA4MjAzLCAwLjAwODIwNSwgMC4wMDgyMDYsIDAuMDA4MjA2IiwgXAotICAgICAgICAgICIwLjAwODM5NCwgMC4wMDgyODYsIDAuMDA4Mjc4LCAwLjAwODI3NSwgMC4wMDgyNzYsIDAuMDA4Mjc2LCAwLjAwODI3NCIsIFwKLSAgICAgICAgICAiMC4wMDg3MzIsIDAuMDA4NDY0LCAwLjAwODQ0NywgMC4wMDg0NCwgMC4wMDg0MzQsIDAuMDA4NDMyLCAwLjAwODQzMiIsIFwKLSAgICAgICAgICAiMC4wMDg5NzksIDAuMDA4NjIzLCAwLjAwODYwMSwgMC4wMDg1ODgsIDAuMDA4NTgxLCAwLjAwODU3OCwgMC4wMDg1NzYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjk4MSwgMC4wMDcxMDMsIDAuMDA3MTE2LCAwLjAwNzEyLCAwLjAwNzEyNCwgMC4wMDcxMjQsIDAuMDA3MTI2IiwgXAotICAgICAgICAgICIwLjAwNjg2MSwgMC4wMDcwMzUsIDAuMDA3MDcsIDAuMDA3MDg3LCAwLjAwNzA5OCwgMC4wMDcxMDYsIDAuMDA3MTA2IiwgXAotICAgICAgICAgICIwLjAwNzA3NywgMC4wMDcwNzMsIDAuMDA3MDg5LCAwLjAwNzA5NywgMC4wMDcwOTYsIDAuMDA3MTA4LCAwLjAwNzExMiIsIFwKLSAgICAgICAgICAiMC4wMDc0OTgsIDAuMDA3MTMsIDAuMDA3MTE1LCAwLjAwNzEyMSwgMC4wMDcxMTQsIDAuMDA3MTE2LCAwLjAwNzExNiIsIFwKLSAgICAgICAgICAiMC4wMDc5MzEsIDAuMDA3MzI1LCAwLjAwNzIzOSwgMC4wMDcyMTYsIDAuMDA3MTkxLCAwLjAwNzE3NywgMC4wMDcxNjQiLCBcCi0gICAgICAgICAgIjAuMDA4NzY3LCAwLjAwNzY0OCwgMC4wMDc0NDIsIDAuMDA3Mzc0LCAwLjAwNzMyNiwgMC4wMDcyODksIDAuMDA3MjQzIiwgXAotICAgICAgICAgICIwLjAwOTU3NSwgMC4wMDgwMjYsIDAuMDA3Njk3LCAwLjAwNzU3NCwgMC4wMDc0NywgMC4wMDc0MjIsIDAuMDA3MzY3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDAxMzMsIDAuMDAwMDEsIDAuMDAwMDI0LCAwLjAwMDAyOCwgMC4wMDAwMzIsIDAuMDAwMDM0LCAwLjAwMDAzNSIsIFwKLSAgICAgICAgICAiMC4wMDAyODMsIDAuMDAwMDE3LCAwLjAwMDAyOSwgMC4wMDAwNDMsIDAuMDAwMDU2LCAwLjAwMDA2MywgMC4wMDAwNjkiLCBcCi0gICAgICAgICAgIjAuMDAwMTE1LCAwLjAwMDA1OSwgMC4wMDAwNzIsIDAuMDAwMDY4LCAwLjAwMDA3NSwgMC4wMDAwNzksIDAuMDAwMDgzIiwgXAotICAgICAgICAgICIwLjAwMDMwNCwgMC4wMDAxNzIsIDAuMDAwMTQsIDAuMDAwMTMyLCAwLjAwMDEyNCwgMC4wMDAxMTksIDAuMDAwMTE1IiwgXAotICAgICAgICAgICIwLjAwMDcyNSwgMC4wMDAzMzIsIDAuMDAwMjM1LCAwLjAwMDIwNiwgMC4wMDAxODEsIDAuMDAwMTY4LCAwLjAwMDE1NCIsIFwKLSAgICAgICAgICAiMC4wMDE2MSwgMC4wMDA2NzIsIDAuMDAwNDQyLCAwLjAwMDM3MywgMC4wMDAzMDgsIDAuMDAwMjcyLCAwLjAwMDI0MSIsIFwKLSAgICAgICAgICAiMC4wMDI0MjYsIDAuMDAxMDQ2LCAwLjAwMDY4MywgMC4wMDA1NjIsIDAuMDAwNDQ2LCAwLjAwMDM5MSwgMC4wMDAzMzQiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBOT1IyQlhMICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKE5PUjJCWEwpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4xNjU1ODk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEFOKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA3MDUxODc7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNzA1MTg3OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDcwNTE1OTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyNTUsIDAuMDAwMjgsIDAuMDAwMzY2LCAwLjAwMDQ3MiwgMC4wMDA2MDUsIDAuMDAwODMzLCAwLjAwMTAzNSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTc4OSwgMC4wMDE4MTksIDAuMDAxODg4LCAwLjAwMTk5OSwgMC4wMDIxMywgMC4wMDIzNTIsIDAuMDAyNTQ5Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA3MjEzOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDcyMTM7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNzIxMDQ4OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDA4MywgMC4wMDAwODMsIDAuMDAwMDgzLCAwLjAwMDA4MywgMC4wMDAwODMsIDAuMDAwMDgzLCAwLjAwMDA4MyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDI2NCwgMC4wMDAyNjUsIDAuMDAwMjY1LCAwLjAwMDI2NSwgMC4wMDAyNjQsIDAuMDAwMjY0LCAwLjAwMDI2NCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjEwMTg1NjsKLSAgICBmdW5jdGlvbiA6ICIoISgoIUFOKStCKSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkFOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTQ2NDcsIDAuMTMzNTM2LCAwLjMwNDAzMywgMC41ODg2NTUsIDAuODcxNDAxLCAxLjUzMzI4LCAxLjkxMjM3IiwgXAotICAgICAgICAgICIwLjEyMTg1MSwgMC4xNDA4NDIsIDAuMzExMTg4LCAwLjU5NTc0MSwgMC44NzkzOTgsIDEuNTQyNDIsIDEuOTIxNDMiLCBcCi0gICAgICAgICAgIjAuMTI3MzgyLCAwLjE0NjMyLCAwLjMxNjg0MSwgMC42MDA2ODgsIDAuODg1NzI4LCAxLjU0ODk0LCAxLjkyODQ0IiwgXAotICAgICAgICAgICIwLjEzMTM0NywgMC4xNTAzMTgsIDAuMzIxMDAyLCAwLjYwNDczMiwgMC44ODg2OTMsIDEuNTUzMDgsIDEuOTI5NTYiLCBcCi0gICAgICAgICAgIjAuMTM0NjQzLCAwLjE1MzY1MiwgMC4zMjM5NiwgMC42MDgyODMsIDAuODkyMDgzLCAxLjU1NDM4LCAxLjkzMzk5IiwgXAotICAgICAgICAgICIwLjEzOTE1MSwgMC4xNTgwNzcsIDAuMzI4MzM0LCAwLjYxMjMsIDAuODk2NDYzLCAxLjU1ODkzLCAxLjk0MDY0IiwgXAotICAgICAgICAgICIwLjE0MjQ4NCwgMC4xNjE0NzMsIDAuMzMxNjk3LCAwLjYxNTY3LCAwLjkwMDM1OSwgMS41NjM2OSwgMS45NDIyMyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMTU0MjUsIDAuMjU1MjU1LCAwLjYxNjIzLCAxLjIxODU4LCAxLjgyMjAzLCAzLjIyNTExLCA0LjAzMjk5IiwgXAotICAgICAgICAgICIwLjIxNTA1OCwgMC4yNTUyODcsIDAuNjE2MjIyLCAxLjIxODU2LCAxLjgyMTAxLCAzLjIyNTI1LCA0LjAyNjQiLCBcCi0gICAgICAgICAgIjAuMjE1NDIyLCAwLjI1NTMyNywgMC42MTYyNTMsIDEuMjE3NzUsIDEuODIwNTUsIDMuMjI1MzQsIDQuMDI4MyIsIFwKLSAgICAgICAgICAiMC4yMTUyMDcsIDAuMjU1NjI3LCAwLjYxNjM5NiwgMS4yMTc5MiwgMS44MjA3OCwgMy4yMjU0LCA0LjAyNzk4IiwgXAotICAgICAgICAgICIwLjIxNTE4NSwgMC4yNTUyOTQsIDAuNjE3MjEsIDEuMjE4MzIsIDEuODIwODEsIDMuMjIzMTEsIDQuMDI2MzIiLCBcCi0gICAgICAgICAgIjAuMjE1MTU0LCAwLjI1NTE5LCAwLjYxNjQ4NSwgMS4yMTk5MiwgMS44MjA3MSwgMy4yMjU0MiwgNC4wMjg2MiIsIFwKLSAgICAgICAgICAiMC4yMTUxMTcsIDAuMjU1MTU3LCAwLjYxNjQxOCwgMS4yMTk4OCwgMS44MTk4OCwgMy4yMjQ3MywgNC4wMjc5NiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjYzMTUsIDAuMDc1OTgsIDAuMTYyODc3LCAwLjMwNzcsIDAuNDUyMzM5LCAwLjc5MDAyNCwgMC45ODI0ODYiLCBcCi0gICAgICAgICAgIjAuMDczNTE5LCAwLjA4MzE3MywgMC4xNzAwNDksIDAuMzE0OTEsIDAuNDU5NzM5LCAwLjc5NzQzOSwgMC45OTEwNzIiLCBcCi0gICAgICAgICAgIjAuMDc5Mzg2LCAwLjA4ODkzMSwgMC4xNzU3ODQsIDAuMzIwNjgsIDAuNDY1MjkyLCAwLjgwMzMxNiwgMC45OTYwMzIiLCBcCi0gICAgICAgICAgIjAuMDgzMzY0LCAwLjA5Mjk4MiwgMC4xNzk4NjcsIDAuMzI0NTkyLCAwLjQ2OTUyNCwgMC44MDcwMzMsIDEuMDAwMDQiLCBcCi0gICAgICAgICAgIjAuMDg2NjU5LCAwLjA5NjM4NSwgMC4xODMyMTYsIDAuMzI3OTE4LCAwLjQ3Mjc1NCwgMC44MTA0MzIsIDEuMDAzMzIiLCBcCi0gICAgICAgICAgIjAuMDkxMjM1LCAwLjEwMDg4NywgMC4xODc4MTksIDAuMzMyNDE2LCAwLjQ3NzM0MSwgMC44MTUzNDksIDEuMDA3NzciLCBcCi0gICAgICAgICAgIjAuMDk0MzY3LCAwLjEwNDA0LCAwLjE5MTE4OCwgMC4zMzU0MDQsIDAuNDgwNDM1LCAwLjgxODIxNCwgMS4wMTEwNCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDc1NzEsIDAuMTI3MzQ3LCAwLjMwNTM4MSwgMC42MDIyNTcsIDAuODk5MjA1LCAxLjU5MjIyLCAxLjk4NzIyIiwgXAotICAgICAgICAgICIwLjEwNzYyMSwgMC4xMjczNDksIDAuMzA1NDI5LCAwLjYwMjQzNSwgMC44OTkwNTcsIDEuNTkxOTksIDEuOTg3OCIsIFwKLSAgICAgICAgICAiMC4xMDc4NDQsIDAuMTI3NTMxLCAwLjMwNTQxNywgMC42MDIzNjgsIDAuODk5MDEzLCAxLjU5MTYzLCAxLjk4NzgyIiwgXAotICAgICAgICAgICIwLjEwODEwNCwgMC4xMjc3MDksIDAuMzA1NTY3LCAwLjYwMjI5LCAwLjg5ODkyMywgMS41OTEyMywgMS45ODY5MyIsIFwKLSAgICAgICAgICAiMC4xMDgzLCAwLjEyNzg1OSwgMC4zMDU1MjEsIDAuNjAyMjg0LCAwLjg5OTAzNywgMS41OTEzNCwgMS45ODc2MyIsIFwKLSAgICAgICAgICAiMC4xMDg4MDQsIDAuMTI4MjI5LCAwLjMwNTYzMiwgMC42MDIyOTksIDAuODk5MDY4LCAxLjU5MTczLCAxLjk4NjgxIiwgXAotICAgICAgICAgICIwLjEwOTE2LCAwLjEyODYyOSwgMC4zMDU2NTgsIDAuNjAyMzQ3LCAwLjg5ODc5OSwgMS41OTE3NSwgMS45ODY4OCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDQwMjEsIDAuMTIyOTUxLCAwLjI5MzQ3OCwgMC41Nzc4MjksIDAuODYyMjcsIDEuNTI1NDgsIDEuOTAxNzgiLCBcCi0gICAgICAgICAgIjAuMTExMzk3LCAwLjEzMDM0NCwgMC4zMDA3NzcsIDAuNTg0NzY3LCAwLjg2ODUxNywgMS41MzEyMSwgMS45MDk5MSIsIFwKLSAgICAgICAgICAiMC4xMjA1OTUsIDAuMTM5NDk3LCAwLjMwOTkwOCwgMC41OTQzMjQsIDAuODc4NjY2LCAxLjU0MTQ1LCAxLjkxOTM1IiwgXAotICAgICAgICAgICIwLjEzMDA4NSwgMC4xNDg5NSwgMC4zMTk0MTksIDAuNjAzMTY3LCAwLjg4NzAyOCwgMS41NTE4MiwgMS45Mjg5MiIsIFwKLSAgICAgICAgICAiMC4xMzk2NTIsIDAuMTU4NTA0LCAwLjMyODY3NSwgMC42MTI1MjgsIDAuODk3NzkyLCAxLjU1OTg3LCAxLjkzODMxIiwgXAotICAgICAgICAgICIwLjE1NTMxNCwgMC4xNzQwNTEsIDAuMzQzOTUyLCAwLjYyNzg4NywgMC45MTIwOTksIDEuNTczNzEsIDEuOTU0MDQiLCBcCi0gICAgICAgICAgIjAuMTY5MDMsIDAuMTg3ODEsIDAuMzU3MTI0LCAwLjY0MDA5NCwgMC45MjQzMTksIDEuNTg5MTksIDEuOTY1MzEiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjE1MDY4LCAwLjI1NTM1NywgMC42MTY0NjYsIDEuMjE4MzcsIDEuODIwNjIsIDMuMjI1MzEsIDQuMDMzMDEiLCBcCi0gICAgICAgICAgIjAuMjE1MjEyLCAwLjI1NTE3NSwgMC42MTYxNDUsIDEuMjE4NywgMS44MjEwMiwgMy4yMjU1NywgNC4wMjYyOCIsIFwKLSAgICAgICAgICAiMC4yMTYzNzMsIDAuMjU1ODM3LCAwLjYxNjI1MSwgMS4yMTgyNiwgMS44MjA0NiwgMy4yMjQyNiwgNC4wMjYwMyIsIFwKLSAgICAgICAgICAiMC4yMjAzOTcsIDAuMjU5MTQ5LCAwLjYxNjQxOSwgMS4yMTc5MSwgMS44MjA5OCwgMy4yMjU2MywgNC4wMjYyNiIsIFwKLSAgICAgICAgICAiMC4yMjYxMzcsIDAuMjY0MDM3LCAwLjYxNjcyNywgMS4yMTg3MywgMS44MjA4NiwgMy4yMjQxMiwgNC4wMjkxNCIsIFwKLSAgICAgICAgICAiMC4yMzczNjIsIDAuMjc0MDI2LCAwLjYxOTUyNCwgMS4yMTgxMiwgMS44MjAyOCwgMy4yMjMyNywgNC4wMjczNiIsIFwKLSAgICAgICAgICAiMC4yNDg0NzksIDAuMjg0NDI0LCAwLjYyNDM5MiwgMS4yMTgzNSwgMS44MjA3LCAzLjIyNTc0LCA0LjAyNTQ3Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1NDQ1NSwgMC4wNjQxMDksIDAuMTUwOTM5LCAwLjI5NTY0MSwgMC40NDA1NTgsIDAuNzc4MjIzLCAwLjk3MTA4NSIsIFwKLSAgICAgICAgICAiMC4wNjI2MTksIDAuMDcyMjU5LCAwLjE1OTEwOCwgMC4zMDM3NTcsIDAuNDQ4NjAxLCAwLjc4NjI2NSwgMC45NzkxMTIiLCBcCi0gICAgICAgICAgIjAuMDcyODM3LCAwLjA4MjQ0MiwgMC4xNjkwMTksIDAuMzEzOTAzLCAwLjQ1ODY2OCwgMC43OTY0MjYsIDAuOTg5Mjc0IiwgXAotICAgICAgICAgICIwLjA4MzMyLCAwLjA5MjkxOCwgMC4xNzk1NzQsIDAuMzI0MzY4LCAwLjQ2OTExOSwgMC44MDYyOTgsIDAuOTk5MzQ2IiwgXAotICAgICAgICAgICIwLjA5MzcyNywgMC4xMDM1MDYsIDAuMTg5ODc2LCAwLjMzNDI0NSwgMC40Nzk1MzIsIDAuODE2ODYyLCAxLjAxMDExIiwgXAotICAgICAgICAgICIwLjEwNzg0NiwgMC4xMTkyNDUsIDAuMjA2ODYyLCAwLjM1MTIyOSwgMC40OTM3OTYsIDAuODMzNTY3LCAxLjAyNjE4IiwgXAotICAgICAgICAgICIwLjExODM0NiwgMC4xMzEwODUsIDAuMjIxNTEzLCAwLjM2NTgzOCwgMC41MTA0ODUsIDAuODQ4MDEyLCAxLjA0MDk5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwNTI2NSwgMC4xMjUxMzMsIDAuMzAzNDk1LCAwLjYwMDEyNCwgMC44OTc0ODYsIDEuNTkwMDcsIDEuOTg5MTYiLCBcCi0gICAgICAgICAgIjAuMTA1ODc2LCAwLjEyNTQ0NSwgMC4zMDMyMjQsIDAuNjAxMjU5LCAwLjg5NzkxLCAxLjU5MDM1LCAxLjk4OTYxIiwgXAotICAgICAgICAgICIwLjExMDYxMywgMC4xMjkwNTMsIDAuMzAzNzczLCAwLjYwMDIzOSwgMC44OTc5MDYsIDEuNTkwMTEsIDEuOTg5NzIiLCBcCi0gICAgICAgICAgIjAuMTE3NTY1LCAwLjEzNTUxOCwgMC4zMDUxMiwgMC42MDAxODksIDAuODk3MTE2LCAxLjU4OTcsIDEuOTg5MzYiLCBcCi0gICAgICAgICAgIjAuMTI1OTQ2LCAwLjE0MzI3MSwgMC4zMDkyNjUsIDAuNjAwMzExLCAwLjg5NzM0LCAxLjU5MDA3LCAxLjk4NjQxIiwgXAotICAgICAgICAgICIwLjE0MTMxNywgMC4xNTcyMDEsIDAuMzE3NjE3LCAwLjYwMzE1OSwgMC44OTcyNTUsIDEuNTkwOTMsIDEuOTg5MzgiLCBcCi0gICAgICAgICAgIjAuMTU0ODM5LCAwLjE3MDkwNiwgMC4zMjY2NzEsIDAuNjA4MzQ3LCAwLjkwMDAzNiwgMS41ODk3NCwgMS45ODUyNyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkFOIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDE1MywgMC4wMDE1MywgMC4wMDE1MywgMC4wMDE1MywgMC4wMDE1MywgMC4wMDE1MywgMC4wMDE1MzEiLCBcCi0gICAgICAgICAgIjAuMDAxNTQxLCAwLjAwMTU0MSwgMC4wMDE1NDMsIDAuMDAxNTQzLCAwLjAwMTU0MiwgMC4wMDE1NDMsIDAuMDAxNTQzIiwgXAotICAgICAgICAgICIwLjAwMTYyOSwgMC4wMDE2MzEsIDAuMDAxNjMzLCAwLjAwMTYzMywgMC4wMDE2MzMsIDAuMDAxNjMzLCAwLjAwMTYzNCIsIFwKLSAgICAgICAgICAiMC4wMDE3NDQsIDAuMDAxNzQ0LCAwLjAwMTc0NywgMC4wMDE3NDcsIDAuMDAxNzQ4LCAwLjAwMTc0OCwgMC4wMDE3NDciLCBcCi0gICAgICAgICAgIjAuMDAxODgyLCAwLjAwMTg3MSwgMC4wMDE4ODUsIDAuMDAxODczLCAwLjAwMTg4NSwgMC4wMDE4ODUsIDAuMDAxODczIiwgXAotICAgICAgICAgICIwLjAwMjEwMywgMC4wMDIwOTQsIDAuMDAyMTA1LCAwLjAwMjEwNCwgMC4wMDIwOTQsIDAuMDAyMDkzLCAwLjAwMjA5NCIsIFwKLSAgICAgICAgICAiMC4wMDIzMDgsIDAuMDAyMjkyLCAwLjAwMjI5MiwgMC4wMDIyOTEsIDAuMDAyMjkxLCAwLjAwMjI5LCAwLjAwMjI5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyMjg4LCAwLjAwMjI4OCwgMC4wMDIyODksIDAuMDAyMjg5LCAwLjAwMjI4OSwgMC4wMDIyODksIDAuMDAyMjg5IiwgXAotICAgICAgICAgICIwLjAwMjMwNCwgMC4wMDIzMDUsIDAuMDAyMzA2LCAwLjAwMjMwNiwgMC4wMDIzMDYsIDAuMDAyMzA2LCAwLjAwMjMwNiIsIFwKLSAgICAgICAgICAiMC4wMDIzOTIsIDAuMDAyMzkyLCAwLjAwMjM5MiwgMC4wMDIzOTMsIDAuMDAyMzkzLCAwLjAwMjM5MywgMC4wMDIzOTMiLCBcCi0gICAgICAgICAgIjAuMDAyNTAzLCAwLjAwMjUxMiwgMC4wMDI1MDMsIDAuMDAyNTA0LCAwLjAwMjUwMywgMC4wMDI1MTIsIDAuMDAyNTAzIiwgXAotICAgICAgICAgICIwLjAwMjYzOCwgMC4wMDI2MjksIDAuMDAyNjI4LCAwLjAwMjYzOSwgMC4wMDI2MzksIDAuMDAyNjM4LCAwLjAwMjYzOCIsIFwKLSAgICAgICAgICAiMC4wMDI4NTEsIDAuMDAyODQyLCAwLjAwMjg1MSwgMC4wMDI4NDEsIDAuMDAyODUsIDAuMDAyODQxLCAwLjAwMjg0MSIsIFwKLSAgICAgICAgICAiMC4wMDMwNTIsIDAuMDAzMDUxLCAwLjAwMzAzNSwgMC4wMDMwMzUsIDAuMDAzMDQ2LCAwLjAwMzA0NiwgMC4wMDMwNDYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDEzNDcsIDAuMDAxMzQ4LCAwLjAwMTM1MSwgMC4wMDEzNTEsIDAuMDAxMzUxLCAwLjAwMTM1MiwgMC4wMDEzNTIiLCBcCi0gICAgICAgICAgIjAuMDAxMzM4LCAwLjAwMTMzOSwgMC4wMDEzNDYsIDAuMDAxMzQ5LCAwLjAwMTM1LCAwLjAwMTM1MSwgMC4wMDEzNSIsIFwKLSAgICAgICAgICAiMC4wMDEzNTEsIDAuMDAxMzUxLCAwLjAwMTM1LCAwLjAwMTM1MSwgMC4wMDEzNTEsIDAuMDAxMzUxLCAwLjAwMTM1MiIsIFwKLSAgICAgICAgICAiMC4wMDEzNzYsIDAuMDAxMzcyLCAwLjAwMTM2MSwgMC4wMDEzNTUsIDAuMDAxMzU0LCAwLjAwMTM1MywgMC4wMDEzNTMiLCBcCi0gICAgICAgICAgIjAuMDAxNDExLCAwLjAwMTQwNCwgMC4wMDEzNzgsIDAuMDAxMzY0LCAwLjAwMTM2LCAwLjAwMTM1NiwgMC4wMDEzNTUiLCBcCi0gICAgICAgICAgIjAuMDAxNDg4LCAwLjAwMTQ3LCAwLjAwMTQxMiwgMC4wMDEzODQsIDAuMDAxMzc0LCAwLjAwMTM2NCwgMC4wMDEzNjIiLCBcCi0gICAgICAgICAgIjAuMDAxNTY3LCAwLjAwMTU0MywgMC4wMDE0NTMsIDAuMDAxNDEsIDAuMDAxMzksIDAuMDAxMzc0LCAwLjAwMTM3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwMDA2LCAwLjAwMDAwNiwgMC4wMDAwMDMsIDAuMDAwMDAyLCAwLjAwMDAwMiwgMC4wMDAwMDIsIDAuMDAwMDAyIiwgXAotICAgICAgICAgICIwLjAwMDAwOCwgMC4wMDAwMDYsIDAsIDAuMDAwMDA0LCAwLjAwMDAwNSwgMC4wMDAwMDQsIDAuMDAwMDA0IiwgXAotICAgICAgICAgICIwLjAwMDAxLCAwLjAwMDAxLCAwLjAwMDAwOCwgMC4wMDAwMDgsIDAuMDAwMDA4LCAwLjAwMDAwOSwgMC4wMDAwMDkiLCBcCi0gICAgICAgICAgIjAuMDAwMDQsIDAuMDAwMDM1LCAwLjAwMDAyLCAwLjAwMDAxNCwgMC4wMDAwMTIsIDAuMDAwMDExLCAwLjAwMDAxMSIsIFwKLSAgICAgICAgICAiMC4wMDAwNzgsIDAuMDAwMDY4LCAwLjAwMDAzNSwgMC4wMDAwMjQsIDAuMDAwMDE5LCAwLjAwMDAxNCwgMC4wMDAwMTMiLCBcCi0gICAgICAgICAgIjAuMDAwMTU2LCAwLjAwMDEzNSwgMC4wMDAwNywgMC4wMDAwNDMsIDAuMDAwMDMzLCAwLjAwMDAyMiwgMC4wMDAwMTkiLCBcCi0gICAgICAgICAgIjAuMDAwMjUsIDAuMDAwMjE3LCAwLjAwMDEwOSwgMC4wMDAwNjYsIDAuMDAwMDQ5LCAwLjAwMDAzMiwgMC4wMDAwMjgiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IE5PUjJYMSAqCi0gKiAtLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKE5PUjJYMSkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjE1OTg0MjsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwOTA0MjkyOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDkwMDYzNzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA5MDQyOTI7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNDYyLCAwLjAwMDQ5NSwgMC4wMDA1LCAwLjAwMDUwNiwgMC4wMDA1MTEsIDAuMDAwNTE1LCAwLjAwMDUxNSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDUzOCwgMC4wMDA1MzksIDAuMDAwNTM5LCAwLjAwMDUzNywgMC4wMDA1MzksIDAuMDAwNTM5LCAwLjAwMDUzOSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwOTQ4MzY3OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDk0ODM2NzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA5NDgxNDI7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMTI0LCAwLjAwMDEyNCwgMC4wMDAxMjQsIDAuMDAwMTI0LCAwLjAwMDEyNCwgMC4wMDAxMjQsIDAuMDAwMTI0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzY2LCAwLjAwMDM2NiwgMC4wMDAzNjYsIDAuMDAwMzY2LCAwLjAwMDM2NiwgMC4wMDAzNjYsIDAuMDAwMzY2Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMTg3ODE2OwotICAgIGZ1bmN0aW9uIDogIighKEErQikpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjY0MjgsIDAuMTAwMjYxLCAwLjI5MjEyLCAwLjQ2MTA4OSwgMC42ODY5MDMsIDEuMTM4NzgsIDEuNDE5NzIiLCBcCi0gICAgICAgICAgIjAuMDcyNTYxLCAwLjEwNjQyMiwgMC4yOTgxNzIsIDAuNDY3Nzg0LCAwLjY5Mjk5OSwgMS4xNDQyNywgMS40MjYwNSIsIFwKLSAgICAgICAgICAiMC4wNzk5NCwgMC4xMTM3OTcsIDAuMzA1NzI4LCAwLjQ3NDczOCwgMC43MDA3NDQsIDEuMTUxOCwgMS40MzMzNiIsIFwKLSAgICAgICAgICAiMC4wODczMzksIDAuMTIxMTU2LCAwLjMxMzUzNSwgMC40ODI0NTksIDAuNzA3ODY3LCAxLjE1ODk1LCAxLjQ0MTIxIiwgXAotICAgICAgICAgICIwLjA5NDY0NywgMC4xMjg5MTYsIDAuMzIwNjg3LCAwLjQ5MDQ4MSwgMC43MTYyMTgsIDEuMTY2NCwgMS40NDgwNiIsIFwKLSAgICAgICAgICAiMC4xMDQ5MTQsIDAuMTQwNTA1LCAwLjMzMjMwMiwgMC41MDE5NTQsIDAuNzI2OTcyLCAxLjE3ODI2LCAxLjQ2MDA1IiwgXAotICAgICAgICAgICIwLjExMjY4OCwgMC4xNTAxNzMsIDAuMzQyOSwgMC41MTI0ODUsIDAuNzM3NzU0LCAxLjE4OTA3LCAxLjQ3MDcyIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEzMDE3LCAwLjIwMTYsIDAuNjA1NjA5LCAwLjk2MjA1MiwgMS40MzcwNywgMi4zODg1MywgMi45ODE0MSIsIFwKLSAgICAgICAgICAiMC4xMzAzMjgsIDAuMjAxNTU3LCAwLjYwNTI2OCwgMC45NjIyNzIsIDEuNDM2OTgsIDIuMzg3NTQsIDIuOTgxNCIsIFwKLSAgICAgICAgICAiMC4xMzI3MDIsIDAuMjAyMzg4LCAwLjYwNTM2NCwgMC45NjE1ODIsIDEuNDM3MjMsIDIuMzg3NTcsIDIuOTgyMyIsIFwKLSAgICAgICAgICAiMC4xMzY3OTIsIDAuMjA1MTQ5LCAwLjYwNTUxMSwgMC45NjE2NTksIDEuNDM5NzgsIDIuMzg3MjgsIDIuOTgzNzEiLCBcCi0gICAgICAgICAgIjAuMTQxODkzLCAwLjIwOTQ3MywgMC42MDY3MzMsIDAuOTYyMDUyLCAxLjQzNzUzLCAyLjM4ODg5LCAyLjk4NzA5IiwgXAotICAgICAgICAgICIwLjE1MTQwNiwgMC4yMTY4OTIsIDAuNjA4ODQ4LCAwLjk2MTg1OCwgMS40Mzc4LCAyLjM4ODgsIDIuOTgxMDgiLCBcCi0gICAgICAgICAgIjAuMTYwNjExLCAwLjIyNDUyOSwgMC42MTIxNjYsIDAuOTYzMzQxLCAxLjQzNzY3LCAyLjM4ODAyLCAyLjk4MzE0Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzNzQ2OCwgMC4wNTU2MDcsIDAuMTU4MjkyLCAwLjI0ODgwNiwgMC4zNjk0MDUsIDAuNjExMDQ1LCAwLjc2MTc3OSIsIFwKLSAgICAgICAgICAiMC4wNDU4MDksIDAuMDYzOTI4LCAwLjE2NjU2NiwgMC4yNTcwMjYsIDAuMzc3Nzc2LCAwLjYxODgyNywgMC43NzAxNjYiLCBcCi0gICAgICAgICAgIjAuMDU2NDgyLCAwLjA3NDU4NSwgMC4xNzY4MzUsIDAuMjY3NDU1LCAwLjM4Nzk4OCwgMC42MjkxNTcsIDAuNzgwMzEiLCBcCi0gICAgICAgICAgIjAuMDY3MTksIDAuMDg1MTQ0LCAwLjE4NzY1NywgMC4yNzgxMzIsIDAuMzk4OTc5LCAwLjY0MDA5LCAwLjc5MDg0OSIsIFwKLSAgICAgICAgICAiMC4wNzU5ODksIDAuMDk1ODQxLCAwLjE5ODA0NiwgMC4yODg0NzQsIDAuNDA5MTE1LCAwLjY1MDUzLCAwLjgwMDg3MyIsIFwKLSAgICAgICAgICAiMC4wODc2OTQsIDAuMTEwNzQsIDAuMjE1Mjk4LCAwLjMwNTUxOSwgMC40MjYwNzgsIDAuNjY3Mzg3LCAwLjgxODE0OCIsIFwKLSAgICAgICAgICAiMC4wOTY0MTMsIDAuMTIyMTgsIDAuMjMwNDM4LCAwLjMyMDUsIDAuNDQxMDI3LCAwLjY4MjI5NCwgMC44MzMwNTQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY5MTc2LCAwLjEwNjQyNSwgMC4zMTc0MjQsIDAuNTAzNTg2LCAwLjc1MTYyNywgMS4yNDc5MSwgMS41NTc1IiwgXAotICAgICAgICAgICIwLjA3MDU3MiwgMC4xMDY3NjQsIDAuMzE3MzYsIDAuNTAzMzc4LCAwLjc1MTUzMSwgMS4yNDcyLCAxLjU1Nzk3IiwgXAotICAgICAgICAgICIwLjA3Njg1NywgMC4xMTExNDEsIDAuMzE3MjEzLCAwLjUwMzQyMywgMC43NTE1MjgsIDEuMjQ3NDYsIDEuNTU3NTQiLCBcCi0gICAgICAgICAgIjAuMDg0NzI3LCAwLjExODIxNCwgMC4zMTg3ODksIDAuNTAzMywgMC43NTE3OTUsIDEuMjQ3NTUsIDEuNTU3OTIiLCBcCi0gICAgICAgICAgIjAuMDkzOTMyLCAwLjEyNjQsIDAuMzIyMDA5LCAwLjUwNDE0NSwgMC43NTE0OTgsIDEuMjQ3NDUsIDEuNTU3MTYiLCBcCi0gICAgICAgICAgIjAuMTA4OTEsIDAuMTQwNzkyLCAwLjMzMDAyNiwgMC41MDgxNjcsIDAuNzUxOTUyLCAxLjI0NzM3LCAxLjU1NzEzIiwgXAotICAgICAgICAgICIwLjEyMTQ2OCwgMC4xNTQyNCwgMC4zMzg3NDQsIDAuNTEzNzM3LCAwLjc1NDI4OCwgMS4yNDc4MSwgMS41NTcxNiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjQzNzgsIDAuMDk4MTg4LCAwLjI4OTgyOCwgMC40NTkxMzcsIDAuNjg1MzQsIDEuMTM1NDMsIDEuNDE4NzUiLCBcCi0gICAgICAgICAgIjAuMDcxODYsIDAuMTA1NzU5LCAwLjI5NzQ4NywgMC40NjYxODYsIDAuNjkyMzA4LCAxLjE0MzU4LCAxLjQyNTYiLCBcCi0gICAgICAgICAgIjAuMDgxMzU0LCAwLjExNTE2NiwgMC4zMDY4OCwgMC40NzYwMjUsIDAuNzAyMDE5LCAxLjE1Mjk3LCAxLjQzNDU1IiwgXAotICAgICAgICAgICIwLjA5MTIzOCwgMC4xMjQ5MDUsIDAuMzE2ODQ0LCAwLjQ4NTU5MywgMC43MTE1NzEsIDEuMTYxNzcsIDEuNDQ0MjUiLCBcCi0gICAgICAgICAgIjAuMTAxMjQ2LCAwLjEzNDc0OSwgMC4zMjYxNTQsIDAuNDk1MjIxLCAwLjcyMTEzNiwgMS4xNzE0NywgMS40NTQyMyIsIFwKLSAgICAgICAgICAiMC4xMTU1ODcsIDAuMTUwNzUyLCAwLjM0MTgzNSwgMC41MDg5MzMsIDAuNzM2NDI2LCAxLjE4Njk4LCAxLjQ2ODciLCBcCi0gICAgICAgICAgIjAuMTI2MTI3LCAwLjE2NDU4NCwgMC4zNTU0NzMsIDAuNTI0MjA5LCAwLjc0OTQ2NSwgMS4yMDE0MSwgMS40ODIyMSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMzAxOTEsIDAuMjAxODA0LCAwLjYwNTY3OSwgMC45NjE3OSwgMS40Mzc3MiwgMi4zODkxMiwgMi45ODI3NiIsIFwKLSAgICAgICAgICAiMC4xMzA1NDYsIDAuMjAxNTg4LCAwLjYwNTI2MiwgMC45NjE5MjYsIDEuNDM2OTgsIDIuMzg3NTMsIDIuOTgxNjEiLCBcCi0gICAgICAgICAgIjAuMTM0Mzg5LCAwLjIwMjk2NCwgMC42MDUyOCwgMC45NjE3MzYsIDEuNDM3MzQsIDIuMzg3NTUsIDIuOTgyMzEiLCBcCi0gICAgICAgICAgIjAuMTQwNDcyLCAwLjIwNzExNiwgMC42MDU1NywgMC45NjI1MjIsIDEuNDM3MiwgMi4zOTE2NywgMi45ODQwMSIsIFwKLSAgICAgICAgICAiMC4xNDgwODQsIDAuMjEzMTg3LCAwLjYwNTc3NSwgMC45NjIzMSwgMS40MzcwNSwgMi4zODkxNSwgMi45ODE2NSIsIFwKLSAgICAgICAgICAiMC4xNjE0ODcsIDAuMjI0NTU3LCAwLjYwODUxNywgMC45NjE3OTEsIDEuNDM3MDYsIDIuMzg4OCwgMi45ODEwNCIsIFwKLSAgICAgICAgICAiMC4xNzM5MzEsIDAuMjM1OTM2LCAwLjYxMzI1OSwgMC45NjQyOCwgMS40Mzk0MywgMi4zODgxMywgMi45ODMxMiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzU5MDYsIDAuMDU0MDM2LCAwLjE1NjYwMSwgMC4yNDcwODUsIDAuMzY3OTUzLCAwLjYwOTMyNSwgMC43NjAzMDEiLCBcCi0gICAgICAgICAgIjAuMDQ0MjM5LCAwLjA2MjQ1MSwgMC4xNjQ5MjEsIDAuMjU1NDcxLCAwLjM3NjAyNiwgMC42MTc0NDksIDAuNzY4NzUzIiwgXAotICAgICAgICAgICIwLjA1NDg4NCwgMC4wNzI5OSwgMC4xNzUyODIsIDAuMjY1ODI5LCAwLjM4NjQ0NywgMC42Mjc2NzksIDAuNzc4NzUyIiwgXAotICAgICAgICAgICIwLjA2NTMzNiwgMC4wODM2NTYsIDAuMTg2MDc4LCAwLjI3NjY5NywgMC4zOTc0MDcsIDAuNjM4MTUsIDAuNzg5MzQyIiwgXAotICAgICAgICAgICIwLjA3Mzc1NCwgMC4wOTQxNjMsIDAuMTk2NDY2LCAwLjI4Njk2MSwgMC40MDc1ODYsIDAuNjQ5MDExLCAwLjc5OTM4OCIsIFwKLSAgICAgICAgICAiMC4wODQ1NjIsIDAuMTA4NjY1LCAwLjIxMzY5NywgMC4zMDM5NDksIDAuNDI0Njc4LCAwLjY2NjE1NiwgMC44MTY2NjciLCBcCi0gICAgICAgICAgIjAuMDkzMjI4LCAwLjExOTU2OCwgMC4yMjg4MDEsIDAuMzE4OTA0LCAwLjQzOTQ0MSwgMC42ODA4MjUsIDAuODMxNTg1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2NzIwMSwgMC4xMDQzMjEsIDAuMzE1MjA5LCAwLjUwMjM2MywgMC43NDk1NiwgMS4yNDYxMiwgMS41NTcwOSIsIFwKLSAgICAgICAgICAiMC4wNjg2MzMsIDAuMTA0NzA3LCAwLjMxNTg4NywgMC41MDE1MzgsIDAuNzQ5NTY4LCAxLjI0NzA5LCAxLjU1NzE1IiwgXAotICAgICAgICAgICIwLjA3NDkxMSwgMC4xMDkyODUsIDAuMzE1NzUyLCAwLjUwMTI4MywgMC43NDk2OTUsIDEuMjQ4NDksIDEuNTU2NDciLCBcCi0gICAgICAgICAgIjAuMDgzMDk5LCAwLjExNjA0OSwgMC4zMTY1MTcsIDAuNTAxNDMzLCAwLjc0OTYxOSwgMS4yNDY0MywgMS41NTcxNSIsIFwKLSAgICAgICAgICAiMC4wOTI0MDksIDAuMTI0NDgxLCAwLjMyMDYzMywgMC41MDIwMTIsIDAuNzUwOTY0LCAxLjI0NjE2LCAxLjU1NjEiLCBcCi0gICAgICAgICAgIjAuMTA4NzUxLCAwLjEzOTQ2NCwgMC4zMjg2MDMsIDAuNTA3MTM5LCAwLjc1MDI5NiwgMS4yNDYwNSwgMS41NTU5MyIsIFwKLSAgICAgICAgICAiMC4xMjA2MDMsIDAuMTUyNjM5LCAwLjMzNzMzNCwgMC41MTE5LCAwLjc1Mzg2LCAxLjI0NjkzLCAxLjU1OTA2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyMjQyLCAwLjAwMjI0NSwgMC4wMDIyNDksIDAuMDAyMjUsIDAuMDAyMjUsIDAuMDAyMjUsIDAuMDAyMjUiLCBcCi0gICAgICAgICAgIjAuMDAyMjE3LCAwLjAwMjIzLCAwLjAwMjI0MiwgMC4wMDIyNDUsIDAuMDAyMjQ3LCAwLjAwMjI0OCwgMC4wMDIyNDkiLCBcCi0gICAgICAgICAgIjAuMDAyMjEsIDAuMDAyMjE5LCAwLjAwMjIzNywgMC4wMDIyNDIsIDAuMDAyMjQ1LCAwLjAwMjI0NywgMC4wMDIyNDkiLCBcCi0gICAgICAgICAgIjAuMDAyMjI1LCAwLjAwMjIyOCwgMC4wMDIyMzksIDAuMDAyMjQzLCAwLjAwMjI0NSwgMC4wMDIyNDcsIDAuMDAyMjQ4IiwgXAotICAgICAgICAgICIwLjAwMjI2LCAwLjAwMjI1MywgMC4wMDIyNDcsIDAuMDAyMjQ4LCAwLjAwMjI0OCwgMC4wMDIyNDksIDAuMDAyMjUiLCBcCi0gICAgICAgICAgIjAuMDAyMzQsIDAuMDAyMzEyLCAwLjAwMjI3MiwgMC4wMDIyNjQsIDAuMDAyMjU5LCAwLjAwMjI1NywgMC4wMDIyNTYiLCBcCi0gICAgICAgICAgIjAuMDAyNDM3LCAwLjAwMjM4MiwgMC4wMDIzMDcsIDAuMDAyMjg3LCAwLjAwMjI3NSwgMC4wMDIyNjUsIDAuMDAyMjYzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwMjcyLCAwLjAwMDI3NCwgMC4wMDAyNzYsIDAuMDAwMjc2LCAwLjAwMDI3NiwgMC4wMDAyNzYsIDAuMDAwMjc2IiwgXAotICAgICAgICAgICIwLjAwMDI1NiwgMC4wMDAyNTgsIDAuMDAwMjYyLCAwLjAwMDI2NCwgMC4wMDAyNjMsIDAuMDAwMjYxLCAwLjAwMDI2MSIsIFwKLSAgICAgICAgICAiMC4wMDAyODQsIDAuMDAwMjc3LCAwLjAwMDI3NSwgMC4wMDAyNywgMC4wMDAyNjUsIDAuMDAwMjYzLCAwLjAwMDI2MiIsIFwKLSAgICAgICAgICAiMC4wMDAzMzcsIDAuMDAwMzM3LCAwLjAwMDI4NCwgMC4wMDAyNzcsIDAuMDAwMjcyLCAwLjAwMDI2OSwgMC4wMDAyNjciLCBcCi0gICAgICAgICAgIjAuMDAwNDEzLCAwLjAwMDM5NiwgMC4wMDAzMTcsIDAuMDAwMjk5LCAwLjAwMDI4OCwgMC4wMDAyNzgsIDAuMDAwMjcyIiwgXAotICAgICAgICAgICIwLjAwMDU2MSwgMC4wMDA1MTEsIDAuMDAwMzY3LCAwLjAwMDMzMywgMC4wMDAzMTIsIDAuMDAwMjk0LCAwLjAwMDI4OCIsIFwKLSAgICAgICAgICAiMC4wMDA3MjIsIDAuMDAwNjU5LCAwLjAwMDQyMywgMC4wMDAzNywgMC4wMDAzMzksIDAuMDAwMzEyLCAwLjAwMDMwMiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTc5NSwgMC4wMDE4LCAwLjAwMTgwNiwgMC4wMDE4MDcsIDAuMDAxODA3LCAwLjAwMTgwOCwgMC4wMDE4MDgiLCBcCi0gICAgICAgICAgIjAuMDAxNzcsIDAuMDAxNzgxLCAwLjAwMTc5OCwgMC4wMDE4MDIsIDAuMDAxODA0LCAwLjAwMTgwNiwgMC4wMDE4MDYiLCBcCi0gICAgICAgICAgIjAuMDAxNzkyLCAwLjAwMTc5MiwgMC4wMDE4LCAwLjAwMTgwMiwgMC4wMDE4MDQsIDAuMDAxODA2LCAwLjAwMTgwNiIsIFwKLSAgICAgICAgICAiMC4wMDE4MzUsIDAuMDAxODIzLCAwLjAwMTgxLCAwLjAwMTgwOSwgMC4wMDE4MDgsIDAuMDAxODA5LCAwLjAwMTgwOCIsIFwKLSAgICAgICAgICAiMC4wMDE5MDEsIDAuMDAxODY3LCAwLjAwMTgzLCAwLjAwMTgxOSwgMC4wMDE4MTcsIDAuMDAxODEzLCAwLjAwMTgxMiIsIFwKLSAgICAgICAgICAiMC4wMDIwMzYsIDAuMDAxOTY4LCAwLjAwMTg3MSwgMC4wMDE4NDgsIDAuMDAxODM1LCAwLjAwMTgyNCwgMC4wMDE4MjEiLCBcCi0gICAgICAgICAgIjAuMDAyMTc4LCAwLjAwMjA3NywgMC4wMDE5MjIsIDAuMDAxODg4LCAwLjAwMTg2LCAwLjAwMTg0LCAwLjAwMTgzNCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDAwNCwgMC4wMDAwMDksIDAuMDAwMDE1LCAwLjAwMDAxNiwgMC4wMDAwMTcsIDAuMDAwMDE4LCAwLjAwMDAxOCIsIFwKLSAgICAgICAgICAiMC4wMDAwMTIsIDAuMDAwMDA0LCAwLjAwMDAyMSwgMC4wMDAwMjUsIDAuMDAwMDI5LCAwLjAwMDAzMSwgMC4wMDAwMzIiLCBcCi0gICAgICAgICAgIjAsIDAuMDAwMDEsIDAuMDAwMDI5LCAwLjAwMDAzLCAwLjAwMDAzMiwgMC4wMDAwMzQsIDAuMDAwMDM1IiwgXAotICAgICAgICAgICIwLjAwMDAzMSwgMC4wMDAwMzcsIDAuMDAwMDMzLCAwLjAwMDAzNCwgMC4wMDAwMzQsIDAuMDAwMDM4LCAwLjAwMDAzOCIsIFwKLSAgICAgICAgICAiMC4wMDAwOTEsIDAuMDAwMTA1LCAwLjAwMDA2LCAwLjAwMDA1MiwgMC4wMDAwNDcsIDAuMDAwMDQyLCAwLjAwMDA0MiIsIFwKLSAgICAgICAgICAiMC4wMDAyODUsIDAuMDAwMjA1LCAwLjAwMDEwMiwgMC4wMDAwOCwgMC4wMDAwNjcsIDAuMDAwMDU1LCAwLjAwMDA1MSIsIFwKLSAgICAgICAgICAiMC4wMDAzNzQsIDAuMDAwMzI4LCAwLjAwMDE1MSwgMC4wMDAxMTEsIDAuMDAwMDksIDAuMDAwMDcsIDAuMDAwMDY0Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBOT1IyWDIgKgotICogLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChOT1IyWDIpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4zMTk2ODc7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTg3NDU3OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTg2NzA5OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTg3NDU3OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDkyNSwgMC4wMDA5OTMsIDAuMDAxMDAyLCAwLjAwMTAxMSwgMC4wMDEwMjEsIDAuMDAxMDMxLCAwLjAwMTAyOCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTA3NywgMC4wMDEwNzgsIDAuMDAxMDc5LCAwLjAwMTA3OSwgMC4wMDEwNzksIDAuMDAxMDc5LCAwLjAwMTA3OSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNzUzNDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE3NTM0OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTc1MzIyOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDI0OSwgMC4wMDAyNDksIDAuMDAwMjQ5LCAwLjAwMDI0OSwgMC4wMDAyNDksIDAuMDAwMjQ5LCAwLjAwMDI0OSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDc1NywgMC4wMDA3NTcsIDAuMDAwNzU3LCAwLjAwMDc1NywgMC4wMDA3NTcsIDAuMDAwNzU3LCAwLjAwMDc1NyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjM4NDUwNDsKLSAgICBmdW5jdGlvbiA6ICIoIShBK0IpKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM4MDI3LCAwLjE3NzgyOSwgMC4yODk1NywgMC40Mjk2NSwgMC41Njg5MjMsIDAuNzA5NDcxLCAwLjg0ODkwNSIsIFwKLSAgICAgICAgICAiMC4wNDQwMjgsIDAuMTgzOTA2LCAwLjI5NTY5NCwgMC40MzUzLCAwLjU3NDk1MywgMC43MTQ1OSwgMC44NTU0MSIsIFwKLSAgICAgICAgICAiMC4wNTEzNzQsIDAuMTkxNTI5LCAwLjMwMzI0NSwgMC40NDI5MTEsIDAuNTgyODYxLCAwLjcyMjEzLCAwLjg2MTk4NyIsIFwKLSAgICAgICAgICAiMC4wNTc5MiwgMC4xOTg3NjUsIDAuMzEwNjU5LCAwLjQ1MDMxOSwgMC41OTA1NjYsIDAuNzI5Nzk4LCAwLjg2OTU1MyIsIFwKLSAgICAgICAgICAiMC4wNjMzNTEsIDAuMjA2MTEzLCAwLjMxODE1NSwgMC40NTgwNSwgMC41OTc3NjIsIDAuNzM3ODIxLCAwLjg3NzIzNCIsIFwKLSAgICAgICAgICAiMC4wNzA1MTIsIDAuMjE3OTU2LCAwLjMyOTgzNCwgMC40Njk3NDcsIDAuNjA5NTI1LCAwLjc0OTE1NiwgMC44ODkzNDkiLCBcCi0gICAgICAgICAgIjAuMDc1OTgsIDAuMjI4MjkyLCAwLjM0MDM2NywgMC40ODA3NTUsIDAuNjIwNTAyLCAwLjc2MDU4MiwgMC44OTk4NjMiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDcwMzY4LCAwLjM2NTE2NiwgMC42MDA5ODEsIDAuODk2MTk4LCAxLjE5MDU0LCAxLjQ4NjE3LCAxLjc4MDg2IiwgXAotICAgICAgICAgICIwLjA3MTI2OCwgMC4zNjU3OTYsIDAuNjAwODQ4LCAwLjg5NzQ0LCAxLjE5MjgxLCAxLjQ4NjI2LCAxLjc4MDk5IiwgXAotICAgICAgICAgICIwLjA3NTMzLCAwLjM2NTE2OSwgMC42MDA5NTcsIDAuODk1NzIsIDEuMTkxMDUsIDEuNDg1MDEsIDEuNzgxMzciLCBcCi0gICAgICAgICAgIjAuMDgxMDQsIDAuMzY2NjI5LCAwLjYwMTMxNywgMC44OTYyNjEsIDEuMTkwODYsIDEuNDg2MjcsIDEuNzgwMDUiLCBcCi0gICAgICAgICAgIjAuMDg3NTY5LCAwLjM2ODU3LCAwLjYwMjM3OSwgMC44OTU5MiwgMS4xOTEsIDEuNDg1NjEsIDEuNzgxNyIsIFwKLSAgICAgICAgICAiMC4wOTc4MDUsIDAuMzcyODYxLCAwLjYwNDY1NiwgMC44OTc1NzEsIDEuMTkwNjEsIDEuNDg1MzQsIDEuNzgwNzciLCBcCi0gICAgICAgICAgIjAuMTA2Mzg3LCAwLjM3ODM3LCAwLjYwODA0NSwgMC44OTczNDMsIDEuMTkyODYsIDEuNDg1NDQsIDEuNzc5NzgiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDIyMzU3LCAwLjA5Nzk0OCwgMC4xNTgzNSwgMC4yMzM4MjUsIDAuMzA5MTY1LCAwLjM4NDc2NiwgMC40NjAxIiwgXAotICAgICAgICAgICIwLjAzMDc3NSwgMC4xMDYyOTcsIDAuMTY2NjQ4LCAwLjI0MjE5NiwgMC4zMTc2MDEsIDAuMzkyODkzLCAwLjQ2ODQzMSIsIFwKLSAgICAgICAgICAiMC4wNDA3NzgsIDAuMTE3MDQ2LCAwLjE3NzM2MSwgMC4yNTI4MjUsIDAuMzI4MiwgMC40MDM2NTIsIDAuNDc5MjkxIiwgXAotICAgICAgICAgICIwLjA0ODQ4OSwgMC4xMjc0MjQsIDAuMTg3NzM1LCAwLjI2MTc4NSwgMC4zMzgzMzQsIDAuNDEzNzEyLCAwLjQ4OTE1MSIsIFwKLSAgICAgICAgICAiMC4wNTQ3NCwgMC4xMzgwNzIsIDAuMTk4MTMsIDAuMjczNzE1LCAwLjM0NzYxMiwgMC40MjQ1NjUsIDAuNDk5OTEiLCBcCi0gICAgICAgICAgIjAuMDYyODA5LCAwLjE1NTM1MSwgMC4yMTUzODgsIDAuMjkwNTc1LCAwLjM2NTg2LCAwLjQ0MTM1NywgMC41MTY4NTQiLCBcCi0gICAgICAgICAgIjAuMDY4OTQyLCAwLjE3MDUsIDAuMjMwNTI1LCAwLjMwNTUwNiwgMC4zODA4NzMsIDAuNDU2MTg4LCAwLjUzMTU0NSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzgyNjcsIDAuMTkzNDI1LCAwLjMxNzU4MywgMC40NzI2NTQsIDAuNjI3NzkyLCAwLjc4MjgyNiwgMC45Mzc3MjgiLCBcCi0gICAgICAgICAgIjAuMDQxNDkxLCAwLjE5MzQwOSwgMC4zMTczNzMsIDAuNDcyNTg2LCAwLjYyNzU3MiwgMC43ODI2NiwgMC45Mzc2OTciLCBcCi0gICAgICAgICAgIjAuMDUwMDA2LCAwLjE5NDU2NiwgMC4zMTc0NTksIDAuNDcyNzA0LCAwLjYyNzc3MSwgMC43ODI2NTgsIDAuOTM4MiIsIFwKLSAgICAgICAgICAiMC4wNTkyNDUsIDAuMTk4NzA4LCAwLjMxODkxLCAwLjQ3Mjg0MiwgMC42Mjc3NDYsIDAuNzgyNzY5LCAwLjkzNzkyOCIsIFwKLSAgICAgICAgICAiMC4wNjgxNDIsIDAuMjA0NzY1LCAwLjMyMjE3NywgMC40NzM3NDEsIDAuNjI3NzcsIDAuNzgyNjQ3LCAwLjkzNzczNiIsIFwKLSAgICAgICAgICAiMC4wODA3ODUsIDAuMjE2MDgzLCAwLjMzMDE4NCwgMC40NzgyNSwgMC42Mjk1NTIsIDAuNzgyOTE1LCAwLjkzNzY4OCIsIFwKLSAgICAgICAgICAiMC4wOTA4NDYsIDAuMjI3NDA4LCAwLjMzODksIDAuNDg0Mjc0LCAwLjYzMzgyMSwgMC43ODQ5NzgsIDAuOTM4NDA5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzNTkyNiwgMC4xNzU3ODIsIDAuMjg3NjMxLCAwLjQyNzczNCwgMC41NjY5NDMsIDAuNzA2MzI4LCAwLjg0NzE2OSIsIFwKLSAgICAgICAgICAiMC4wNDMzODUsIDAuMTgzMjcxLCAwLjI5NDc1NSwgMC40MzQ5NTQsIDAuNTc0NDgyLCAwLjcxNDAwOCwgMC44NTM0ODMiLCBcCi0gICAgICAgICAgIjAuMDUzMTI3LCAwLjE5MjgxOSwgMC4zMDQ4MSwgMC40NDQzMTcsIDAuNTg0NDY5LCAwLjcyMzM3NCwgMC44NjM4NTEiLCBcCi0gICAgICAgICAgIjAuMDYyMzE4LCAwLjIwMjM5MSwgMC4zMTQxMjcsIDAuNDUzNzUsIDAuNTkzMjc0LCAwLjczMjgzOSwgMC44NzI1MTQiLCBcCi0gICAgICAgICAgIjAuMDY5NTA3LCAwLjIxMjAxNiwgMC4zMjM3MjEsIDAuNDYzODQsIDAuNjAzMjU4LCAwLjc0Mjk2OSwgMC44ODM2NDIiLCBcCi0gICAgICAgICAgIjAuMDc5MTI3LCAwLjIyNzc0NywgMC4zMzkyNDEsIDAuNDc4OTYzLCAwLjYxODg0NSwgMC43NTg3NDUsIDAuODk3NjE2IiwgXAotICAgICAgICAgICIwLjA4NjcxMSwgMC4yNDE1MDgsIDAuMzUyODc2LCAwLjQ5MjM2NCwgMC42MzA3ODUsIDAuNzcyMTgzLCAwLjkxMDk5OCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzA0MTEsIDAuMzY1MTcyLCAwLjYwMTA4NiwgMC44OTYzNjQsIDEuMTkwNTcsIDEuNDg1MDYsIDEuNzgxMDUiLCBcCi0gICAgICAgICAgIjAuMDcyMDA1LCAwLjM2NTMyNCwgMC42MDA2NTQsIDAuODk1OTE0LCAxLjE5MDQ5LCAxLjQ4NTE2LCAxLjc4MzQxIiwgXAotICAgICAgICAgICIwLjA3ODY3LCAwLjM2NTEyNywgMC42MDExODQsIDAuODk1NzQxLCAxLjE5MTA5LCAxLjQ4NjYsIDEuNzgwNTciLCBcCi0gICAgICAgICAgIjAuMDg2ODg5LCAwLjM2NjAxOSwgMC42MDA5NDUsIDAuODk1NzQ0LCAxLjE5MjE2LCAxLjQ4Nzg1LCAxLjc4MjU2IiwgXAotICAgICAgICAgICIwLjA5NTk5MSwgMC4zNjkxNjEsIDAuNjAxNDE4LCAwLjg5NjA0LCAxLjE5MDU0LCAxLjQ4NTM1LCAxLjc4MTM2IiwgXAotICAgICAgICAgICIwLjEwOTcyMiwgMC4zNzcwMjIsIDAuNjA1MTc2LCAwLjg5NTc4LCAxLjE5MDcyLCAxLjQ4NTgxLCAxLjc3OTc1IiwgXAotICAgICAgICAgICIwLjExOTEwMywgMC4zODQ4NzUsIDAuNjA5NTc4LCAwLjg5ODg0MSwgMS4xOTAzOCwgMS40ODU3MSwgMS43ODMxMyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjE0MjUsIDAuMDk5MTMxLCAwLjE2MTI1NSwgMC4yMzg5MDUsIDAuMzE2NDQ5LCAwLjM5NDI3NSwgMC40NzE2NzciLCBcCi0gICAgICAgICAgIjAuMDI5ODM4LCAwLjEwNzUzOCwgMC4xNjk0NzYsIDAuMjQ3MTc2LCAwLjMyNDc3NCwgMC40MDIzNjIsIDAuNDgwMTUzIiwgXAotICAgICAgICAgICIwLjAzOTY5OSwgMC4xMTgwMDMsIDAuMTgwMTE1LCAwLjI1NzgwMywgMC4zMzUyNDgsIDAuNDEyODI5LCAwLjQ5MDY4IiwgXAotICAgICAgICAgICIwLjA0Njg4NywgMC4xMjg3MzksIDAuMTkwODE0LCAwLjI2ODUzMiwgMC4zNDU5NTYsIDAuNDIzNTQsIDAuNTAxMjM2IiwgXAotICAgICAgICAgICIwLjA1MjczMSwgMC4xMzk0MzgsIDAuMjAxMjYxLCAwLjI3ODgwMiwgMC4zNTYzNTcsIDAuNDM0MTEyLCAwLjUxMTY4MiIsIFwKLSAgICAgICAgICAiMC4wNjA0MDgsIDAuMTU2NDA5LCAwLjIxODIyMywgMC4yOTU2MzYsIDAuMzczMTI5LCAwLjQ1MDE4NiwgMC41Mjg0MTgiLCBcCi0gICAgICAgICAgIjAuMDY1ODA2LCAwLjE3MTYwNywgMC4yMzMzNDIsIDAuMzEwNTk5LCAwLjM4ODE0MSwgMC40NjU1ODIsIDAuNTQzMzY3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzNzI1NCwgMC4xOTc0NDUsIDAuMzI1MTkyLCAwLjQ4NTQ3MywgMC42NDUzNTMsIDAuODA1NTU1LCAwLjk2NTI1NiIsIFwKLSAgICAgICAgICAiMC4wNDA1MTgsIDAuMTk3Mjg5LCAwLjMyNTc5NiwgMC40ODYxNzgsIDAuNjQ2Mzc5LCAwLjgwNTUxNSwgMC45NjUwMDkiLCBcCi0gICAgICAgICAgIjAuMDQ5MDg0LCAwLjE5ODYzOSwgMC4zMjU3OTIsIDAuNDg1MjQ3LCAwLjY0NjM0MywgMC44MDY4NTMsIDAuOTY1NDE3IiwgXAotICAgICAgICAgICIwLjA1ODcwOSwgMC4yMDI1NTEsIDAuMzI2NTkyLCAwLjQ4NTE5NiwgMC42NDYzNTcsIDAuODA1MDc1LCAwLjk2NTIzMiIsIFwKLSAgICAgICAgICAiMC4wNjc2NTMsIDAuMjA4MjYsIDAuMzMwMjY2LCAwLjQ4NjEzNSwgMC42NDY1MzQsIDAuODA1MjM3LCAwLjk2NTk0IiwgXAotICAgICAgICAgICIwLjA4MDM3MSwgMC4yMTk1MTEsIDAuMzM4MDMyLCAwLjQ5MDQwNCwgMC42NDgxNCwgMC44MDUyNjEsIDAuOTY1ODE3IiwgXAotICAgICAgICAgICIwLjA5MDI5OSwgMC4yMzA4MDYsIDAuMzQ2NjQyLCAwLjQ5NjU3NCwgMC42NTA4NywgMC44MDg4NDgsIDAuOTY1NjUyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0NTA1LCAwLjAwNDUzLCAwLjAwNDUzMiwgMC4wMDQ1MzQsIDAuMDA0NTM0LCAwLjAwNDUzNCwgMC4wMDQ1MzUiLCBcCi0gICAgICAgICAgIjAuMDA0NDM2LCAwLjAwNDUwOCwgMC4wMDQ1MTgsIDAuMDA0NTEyLCAwLjAwNDUyNywgMC4wMDQ1MjksIDAuMDA0NTMiLCBcCi0gICAgICAgICAgIjAuMDA0NDMzLCAwLjAwNDQ5NSwgMC4wMDQ1MDksIDAuMDA0NTE4LCAwLjAwNDUyMiwgMC4wMDQ1MjUsIDAuMDA0NTI0IiwgXAotICAgICAgICAgICIwLjAwNDQ5NywgMC4wMDQ1MDMsIDAuMDA0NTEzLCAwLjAwNDUyMiwgMC4wMDQ1MjMsIDAuMDA0NTI2LCAwLjAwNDUyNyIsIFwKLSAgICAgICAgICAiMC4wMDQ1OTksIDAuMDA0NTI4LCAwLjAwNDUzLCAwLjAwNDUzMSwgMC4wMDQ1MzMsIDAuMDA0NTMzLCAwLjAwNDUzMiIsIFwKLSAgICAgICAgICAiMC4wMDQ4MzcsIDAuMDA0NjA0LCAwLjAwNDU3OSwgMC4wMDQ1NjUsIDAuMDA0NTU3LCAwLjAwNDU1MywgMC4wMDQ1NDkiLCBcCi0gICAgICAgICAgIjAuMDA1MTA0LCAwLjAwNDY5NywgMC4wMDQ2NDQsIDAuMDA0NjEzLCAwLjAwNDU5OSwgMC4wMDQ1ODYsIDAuMDA0NTc3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwNTcsIDAuMDAwNTgyLCAwLjAwMDU4MywgMC4wMDA1ODQsIDAuMDAwNTg0LCAwLjAwMDU4NCwgMC4wMDA1ODQiLCBcCi0gICAgICAgICAgIjAuMDAwNTM1LCAwLjAwMDU1MSwgMC4wMDA1NTQsIDAuMDAwNTU4LCAwLjAwMDU1OSwgMC4wMDA1NTgsIDAuMDAwNTU4IiwgXAotICAgICAgICAgICIwLjAwMDYzNSwgMC4wMDA1ODEsIDAuMDAwNTc0LCAwLjAwMDU2OSwgMC4wMDA1NjcsIDAuMDAwNTY1LCAwLjAwMDU2NCIsIFwKLSAgICAgICAgICAiMC4wMDA3NTEsIDAuMDAwNjI0LCAwLjAwMDU5OSwgMC4wMDA1OTcsIDAuMDAwNTg5LCAwLjAwMDU4MywgMC4wMDA1NzkiLCBcCi0gICAgICAgICAgIjAuMDAwOTU5LCAwLjAwMDcyNCwgMC4wMDA2NjYsIDAuMDAwNjIsIDAuMDAwNjAxLCAwLjAwMDU5NywgMC4wMDA1OSIsIFwKLSAgICAgICAgICAiMC4wMDEzNjEsIDAuMDAwODcyLCAwLjAwMDc2NywgMC4wMDA3MDYsIDAuMDAwNjcyLCAwLjAwMDY1MiwgMC4wMDA2MzgiLCBcCi0gICAgICAgICAgIjAuMDAxNzUyLCAwLjAwMTAzNSwgMC4wMDA4NzgsIDAuMDAwNzg1LCAwLjAwMDczNywgMC4wMDA3MDQsIDAuMDAwNjgzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzNjAzLCAwLjAwMzYzOSwgMC4wMDM2NDUsIDAuMDAzNjQ2LCAwLjAwMzY0OCwgMC4wMDM2NDgsIDAuMDAzNjQ5IiwgXAotICAgICAgICAgICIwLjAwMzU0MSwgMC4wMDM2MTgsIDAuMDAzNjI4LCAwLjAwMzYzNiwgMC4wMDM2MzksIDAuMDAzNjQxLCAwLjAwMzY0NiIsIFwKLSAgICAgICAgICAiMC4wMDM2MTksIDAuMDAzNjI0LCAwLjAwMzYzMSwgMC4wMDM2MzYsIDAuMDAzNjQsIDAuMDAzNjQxLCAwLjAwMzY0MyIsIFwKLSAgICAgICAgICAiMC4wMDM4MjQsIDAuMDAzNjcxLCAwLjAwMzY2LCAwLjAwMzY1NSwgMC4wMDM2NTMsIDAuMDAzNjUyLCAwLjAwMzY1MSIsIFwKLSAgICAgICAgICAiMC4wMDM5NzYsIDAuMDAzNzE0LCAwLjAwMzY5MywgMC4wMDM2NzksIDAuMDAzNjcxLCAwLjAwMzY2NywgMC4wMDM2NjQiLCBcCi0gICAgICAgICAgIjAuMDA0MzUsIDAuMDAzODQzLCAwLjAwMzc3MywgMC4wMDM3NDMsIDAuMDAzNzEzLCAwLjAwMzcsIDAuMDAzNjkyIiwgXAotICAgICAgICAgICIwLjAwNDU4OSwgMC4wMDM5NzksIDAuMDAzODc0LCAwLjAwMzgxNywgMC4wMDM3NzYsIDAuMDAzNzQ4LCAwLjAwMzczMiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDAxMSwgMC4wMDAwMzIsIDAuMDAwMDM2LCAwLjAwMDAzOSwgMC4wMDAwNCwgMC4wMDAwNCwgMC4wMDAwNDEiLCBcCi0gICAgICAgICAgIjAuMDAwMDczLCAwLjAwMDAyOSwgMC4wMDAwNDYsIDAuMDAwMDUyLCAwLjAwMDA1NiwgMC4wMDAwNTgsIDAuMDAwMDYiLCBcCi0gICAgICAgICAgIjAuMDAwMDA5LCAwLjAwMDAzNiwgMC4wMDAwNDksIDAuMDAwMDU2LCAwLjAwMDA1OSwgMC4wMDAwNjEsIDAuMDAwMDYzIiwgXAotICAgICAgICAgICIwLjAwMDA5MSwgMC4wMDAwOTgsIDAuMDAwMDksIDAuMDAwMDg1LCAwLjAwMDA4MSwgMC4wMDAwNzksIDAuMDAwMDc3IiwgXAotICAgICAgICAgICIwLjAwMDI3OCwgMC4wMDAxMjMsIDAuMDAwMTA4LCAwLjAwMDA5OCwgMC4wMDAwOTIsIDAuMDAwMDg4LCAwLjAwMDA4NiIsIFwKLSAgICAgICAgICAiMC4wMDA2NTEsIDAuMDAwMjgsIDAuMDAwMjA4LCAwLjAwMDE3LCAwLjAwMDE0OSwgMC4wMDAxMzcsIDAuMDAwMTI3IiwgXAotICAgICAgICAgICIwLjAwMTAxLCAwLjAwMDQyMiwgMC4wMDAzMDYsIDAuMDAwMjM3LCAwLjAwMDIwNCwgMC4wMDAxODEsIDAuMDAwMTY3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBOT1IyWDQgKgotICogLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChOT1IyWDQpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC42MzkzNTU7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMzUwMTM5OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMzQ4NzAxOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMzUwMTM5OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTg0NSwgMC4wMDE5ODIsIDAuMDAyMDA0LCAwLjAwMjAxMSwgMC4wMDIwMzcsIDAuMDAyMDU0LCAwLjAwMjA1MiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjE1NSwgMC4wMDIxNTcsIDAuMDAyMTU3LCAwLjAwMjE1NywgMC4wMDIxNTgsIDAuMDAyMTU4LCAwLjAwMjE1OCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAzMzcyMTg7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAzMzcyMTg7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAzMzcxNDE7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNDk2LCAwLjAwMDQ5NiwgMC4wMDA0OTYsIDAuMDAwNDk2LCAwLjAwMDQ5NywgMC4wMDA0OTYsIDAuMDAwNDk2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxNDk5LCAwLjAwMTQ5OSwgMC4wMDE0OTksIDAuMDAxNDk4LCAwLjAwMTQ5OCwgMC4wMDE0OTgsIDAuMDAxNDk4Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuNzQ2MzM4OwotICAgIGZ1bmN0aW9uIDogIighKEErQikpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyNDE1OCwgMC4xMjM2NDEsIDAuMjIyNzYyLCAwLjI5MzkxLCAwLjQwNzgxOSwgMC41MDY3NzIsIDAuNjQ4NTk2IiwgXAotICAgICAgICAgICIwLjAzMDE2NywgMC4xMjk4ODEsIDAuMjI5MDk0LCAwLjMwMDA2LCAwLjQxMzQ1LCAwLjUxMjgyMSwgMC42NTQ1OTYiLCBcCi0gICAgICAgICAgIjAuMDM2NTQsIDAuMTM3MTgyLCAwLjIzNjc5OCwgMC4zMDc2NDUsIDAuNDIxNDY3LCAwLjUyMDM0NiwgMC42NjIzNzciLCBcCi0gICAgICAgICAgIjAuMDQxNDI4LCAwLjE0NDQ5LCAwLjI0NDE4MywgMC4zMTUyNDYsIDAuNDI4NjUyLCAwLjUyODE2OCwgMC42Njk5MTMiLCBcCi0gICAgICAgICAgIjAuMDQ1MjksIDAuMTUyMDksIDAuMjUxNDYzLCAwLjMyMjUzNiwgMC40MzYzMDEsIDAuNTM1MzcsIDAuNjc3MjQ0IiwgXAotICAgICAgICAgICIwLjA1MDQ0MiwgMC4xNjQyMTQsIDAuMjYzMjUzLCAwLjMzNDM0MiwgMC40NDgxNjEsIDAuNTQ3MTIsIDAuNjg5MDM0IiwgXAotICAgICAgICAgICIwLjA1NDEzNSwgMC4xNzQyNTcsIDAuMjczNjc2LCAwLjM0NDgsIDAuNDU4NzMsIDAuNTU4MTE0LCAwLjcwMDMzNSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0MTE2MSwgMC4yNTEyMDQsIDAuNDYxMzY1LCAwLjYxMTI4NCwgMC44NTE3NjYsIDEuMDYxNDEsIDEuMzYxNDQiLCBcCi0gICAgICAgICAgIjAuMDQyOTQ3LCAwLjI1MTIzNSwgMC40NjE0OCwgMC42MTExNTUsIDAuODUyODMxLCAxLjA2MzM3LCAxLjM2Mzk0IiwgXAotICAgICAgICAgICIwLjA0ODM1NiwgMC4yNTE1NDgsIDAuNDYxMzcyLCAwLjYxMTI3NiwgMC44NTE2MTYsIDEuMDYyMDEsIDEuMzYyMDMiLCBcCi0gICAgICAgICAgIjAuMDU0OTk5LCAwLjI1MzcwMywgMC40NjEzMzUsIDAuNjExNDkxLCAwLjg1MTgyNSwgMS4wNjE0MiwgMS4zNjE0NSIsIFwKLSAgICAgICAgICAiMC4wNjEwOTIsIDAuMjU3MDYyLCAwLjQ2MjYzLCAwLjYxMjY1NSwgMC44NTEzODUsIDEuMDYzMzIsIDEuMzY0IiwgXAotICAgICAgICAgICIwLjA3MDA2OCwgMC4yNjQwODMsIDAuNDY2NjA3LCAwLjYxNDc0MSwgMC44NTE5NzUsIDEuMDYyMTEsIDEuMzYxMzkiLCBcCi0gICAgICAgICAgIjAuMDc3NTUsIDAuMjcwNzczLCAwLjQ3MDg3NSwgMC42MTcwMDcsIDAuODUzNDU4LCAxLjA2Mzc5LCAxLjM2MjA5Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE0Nzg3LCAwLjA2ODYxMSwgMC4xMjIyMTQsIDAuMTYwNTEyLCAwLjIyMTgwNiwgMC4yNzUyNjcsIDAuMzUxOTc5IiwgXAotICAgICAgICAgICIwLjAyMzE3NSwgMC4wNzcwMzEsIDAuMTMwNjE2LCAwLjE2ODg4NywgMC4yMzAxMTQsIDAuMjgzNjc0LCAwLjM2MDI2MyIsIFwKLSAgICAgICAgICAiMC4wMzA5OTcsIDAuMDg3NDcsIDAuMTQxMDMyLCAwLjE3OTI5NiwgMC4yNDA1NzMsIDAuMjk0MDY0LCAwLjM3MDY3NCIsIFwKLSAgICAgICAgICAiMC4wMzY2MTYsIDAuMDk4MjU3LCAwLjE1MTY4NywgMC4xODk5MDQsIDAuMjUxMTYsIDAuMzA1MDEyLCAwLjM4MTU2MyIsIFwKLSAgICAgICAgICAiMC4wNDEwMzYsIDAuMTA4ODQyLCAwLjE2MjEzLCAwLjIwMDI3OCwgMC4yNjE0MjIsIDAuMzE1MDU0LCAwLjM5MTU3NCIsIFwKLSAgICAgICAgICAiMC4wNDY5NDUsIDAuMTI1NTMyLCAwLjE3OTM1OSwgMC4yMTc0OTYsIDAuMjc4NTA3LCAwLjMzMTk5NSwgMC40MDg0OTgiLCBcCi0gICAgICAgICAgIjAuMDUxMzc0LCAwLjEzODI1OCwgMC4xOTQ1ODYsIDAuMjMyNjIxLCAwLjI5MzUzMSwgMC4zNDY5ODIsIDAuNDIzMzQ4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDIyOSwgMC4xMzMxOTgsIDAuMjQzNTE4LCAwLjMyMjQ2MiwgMC40NDg1NSwgMC41NTg4NTMsIDAuNzE2NDk2IiwgXAotICAgICAgICAgICIwLjAyNzcyMSwgMC4xMzMyMzUsIDAuMjQzNDg3LCAwLjMyMjM4MSwgMC40NDg0NCwgMC41NTg3MjUsIDAuNzE2MjkyIiwgXAotICAgICAgICAgICIwLjAzNjk4NSwgMC4xMzY0NCwgMC4yNDQwMDcsIDAuMzIyMzYxLCAwLjQ0ODU2MSwgMC41NTg3MSwgMC43MTYyNzgiLCBcCi0gICAgICAgICAgIjAuMDQ1Mjg3LCAwLjE0MjM3MywgMC4yNDY3MjgsIDAuMzIzNTU1LCAwLjQ0ODYxNCwgMC41NTg4MSwgMC43MTYzNzciLCBcCi0gICAgICAgICAgIjAuMDUyNjkzLCAwLjE1MDAzOSwgMC4yNTE2NTYsIDAuMzI2ODk3LCAwLjQ0OTc2NiwgMC41NTg5NjksIDAuNzE2MTg0IiwgXAotICAgICAgICAgICIwLjA2MzI2LCAwLjE2MzM3NywgMC4yNjE1MzksIDAuMzM0ODE5LCAwLjQ1NDkyNSwgMC41NjIwMTIsIDAuNzE3MDg3IiwgXAotICAgICAgICAgICIwLjA3MTgzNCwgMC4xNzYzODMsIDAuMjcxODI1LCAwLjM0MzQ5MywgMC40NjE0MzQsIDAuNTY3MDE3LCAwLjcxOTk2NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyMTkxMywgMC4xMjE0MDksIDAuMjIwODMsIDAuMjkxNzg3LCAwLjQwNTc4NiwgMC41MDQ3NzgsIDAuNjQ3MjAzIiwgXAotICAgICAgICAgICIwLjAyOTM4NywgMC4xMjkwMTEsIDAuMjI4MjEzLCAwLjI5OTI5NCwgMC40MTI3MjYsIDAuNTEyMjQ4LCAwLjY1Mzc5MyIsIFwKLSAgICAgICAgICAiMC4wMzgxOTgsIDAuMTM4MzYyLCAwLjIzNzc0LCAwLjMwODYxLCAwLjQyMjE0NiwgMC41MjE0NzEsIDAuNjYyNjg2IiwgXAotICAgICAgICAgICIwLjA0NDUzMiwgMC4xNDgyNzQsIDAuMjQ3NTgsIDAuMzE4NDk2LCAwLjQzMjI2NywgMC41MzE1NjIsIDAuNjczOTI3IiwgXAotICAgICAgICAgICIwLjA0OTg4MywgMC4xNTc4MzgsIDAuMjU3MDQsIDAuMzI3OTA1LCAwLjQ0MTY4NCwgMC41NDA2NjQsIDAuNjgzMjA5IiwgXAotICAgICAgICAgICIwLjA1NjUyOCwgMC4xNzM2OTgsIDAuMjcyNTcyLCAwLjM0MzQ5NiwgMC40NTY4NTMsIDAuNTU2MjYsIDAuNjk3OTYxIiwgXAotICAgICAgICAgICIwLjA2MTczOSwgMC4xODc2ODksIDAuMjg2MjkxLCAwLjM1NzAwOCwgMC40NzA1MTEsIDAuNTY5ODcyLCAwLjcxMTQ2OSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0MTIwNSwgMC4yNTE0MDksIDAuNDYxNTMsIDAuNjExMzA3LCAwLjg1MTg4MiwgMS4wNjE0OCwgMS4zNjIyMSIsIFwKLSAgICAgICAgICAiMC4wNDQ1ODEsIDAuMjUxMTgzLCAwLjQ2MTk4MiwgMC42MTEyNTksIDAuODUyOTE3LCAxLjA2MTQxLCAxLjM2Mzk0IiwgXAotICAgICAgICAgICIwLjA1Mjc4OCwgMC4yNTE3NjQsIDAuNDYxNTIyLCAwLjYxMjI4MiwgMC44NTE4NDUsIDEuMDYxMzQsIDEuMzYxNjEiLCBcCi0gICAgICAgICAgIjAuMDYxODM2LCAwLjI1NTE4NywgMC40NjIxMTcsIDAuNjExNTc1LCAwLjg1MTQyLCAxLjA2MTQ5LCAxLjM2MjEzIiwgXAotICAgICAgICAgICIwLjA2ODYzMiwgMC4yNTk4OTYsIDAuNDYzNjYsIDAuNjEyNDM3LCAwLjg1MTQyNCwgMS4wNjMxNywgMS4zNjE5MiIsIFwKLSAgICAgICAgICAiMC4wNzkyNTYsIDAuMjY5OTYsIDAuNDY4NjA0LCAwLjYxNDQzNSwgMC44NTE5MjMsIDEuMDYxMzQsIDEuMzYyMzEiLCBcCi0gICAgICAgICAgIjAuMDg3NTIzLCAwLjI4MDMzNCwgMC40NzU4NDEsIDAuNjE5NTcxLCAwLjg1MzUyMSwgMS4wNjIsIDEuMzYyMSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMzQ3NywgMC4wNjc5NTcsIDAuMTIyMzAxLCAwLjE2MTE1MiwgMC4yMjMzMDYsIDAuMjc3NjksIDAuMzU1NDEiLCBcCi0gICAgICAgICAgIjAuMDIxNjQ0LCAwLjA3NjM0NywgMC4xMzA3NTIsIDAuMTY5NTU4LCAwLjIzMTY1NiwgMC4yODU5OTMsIDAuMzYzNjg2IiwgXAotICAgICAgICAgICIwLjAyODY4NSwgMC4wODY4NiwgMC4xNDEyMzMsIDAuMTc5ODUxLCAwLjI0MjA1NywgMC4yOTYyODcsIDAuMzczOTc4IiwgXAotICAgICAgICAgICIwLjAzMzY4MSwgMC4wOTc1NDksIDAuMTUxNTM0LCAwLjE5MDM2OSwgMC4yNTIxNzYsIDAuMzA2ODk5LCAwLjM4NDQxMyIsIFwKLSAgICAgICAgICAiMC4wMzc3MTQsIDAuMTA4MTIxLCAwLjE2MjIyNiwgMC4yMDA5NDQsIDAuMjYyOTkzLCAwLjMxNzE2MiwgMC4zOTUyMDEiLCBcCi0gICAgICAgICAgIjAuMDQyODI5LCAwLjEyNDcwNCwgMC4xNzk0MzQsIDAuMjE4MTM4LCAwLjI4MDA1OSwgMC4zMzQzMDUsIDAuNDEyMDE2IiwgXAotICAgICAgICAgICIwLjA0NjUwNiwgMC4xMzc0NTIsIDAuMTk0NjM2LCAwLjIzMzI2NiwgMC4yOTUwMjgsIDAuMzQ5MzEzLCAwLjQyNjg1NSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyMTA1LCAwLjEzMzA4OCwgMC4yNDU2MzIsIDAuMzI1MjAxLCAwLjQ1MzI4OSwgMC41NjUyODUsIDAuNzI1ODQ1IiwgXAotICAgICAgICAgICIwLjAyNjIsIDAuMTMzMzksIDAuMjQ1MjMzLCAwLjMyNTg1OCwgMC40NTQwNDUsIDAuNTY2NTEyLCAwLjcyNTYxMyIsIFwKLSAgICAgICAgICAiMC4wMzU2NSwgMC4xMzY1MTUsIDAuMjQ1OTMyLCAwLjMyNTg0NywgMC40NTMyNjIsIDAuNTY2MzUyLCAwLjcyNjAzOCIsIFwKLSAgICAgICAgICAiMC4wNDM3NTEsIDAuMTQyNDcyLCAwLjI0ODkxOCwgMC4zMjY0MDEsIDAuNDUzNjg2LCAwLjU2NTM0MywgMC43MjU4MzMiLCBcCi0gICAgICAgICAgIjAuMDUwOTYyLCAwLjE0OTgxLCAwLjI1MzY3NCwgMC4zMzAyOTIsIDAuNDU1NDYsIDAuNTY1NDIyLCAwLjcyNTMyOCIsIFwKLSAgICAgICAgICAiMC4wNjE0MzcsIDAuMTYzMTc4LCAwLjI2MzExOSwgMC4zMzgwMDUsIDAuNDYwNDYsIDAuNTY5MzI1LCAwLjcyNTkxNiIsIFwKLSAgICAgICAgICAiMC4wNzAwMTgsIDAuMTc2MzI4LCAwLjI3MzI3NiwgMC4zNDY2MTcsIDAuNDY1ODEzLCAwLjU3NDMzMiwgMC43MjkzMzMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwODc1MSwgMC4wMDg4MzQsIDAuMDA4ODM5LCAwLjAwODg0NSwgMC4wMDg4NDcsIDAuMDA4ODQ4LCAwLjAwODg0OCIsIFwKLSAgICAgICAgICAiMC4wMDg1ODUsIDAuMDA4NzcxLCAwLjAwODgwNiwgMC4wMDg4MTcsIDAuMDA4ODI3LCAwLjAwODgxNCwgMC4wMDg4MjkiLCBcCi0gICAgICAgICAgIjAuMDA4NjI0LCAwLjAwODc0LCAwLjAwODc4MywgMC4wMDg3OTgsIDAuMDA4ODExLCAwLjAwODgxMywgMC4wMDg4MjciLCBcCi0gICAgICAgICAgIjAuMDA4ODEsIDAuMDA4NzY2LCAwLjAwODc5NCwgMC4wMDg4MDUsIDAuMDA4ODA5LCAwLjAwODgyNCwgMC4wMDg4MjkiLCBcCi0gICAgICAgICAgIjAuMDA5MDk3LCAwLjAwODg0LCAwLjAwODgzNCwgMC4wMDg4MzcsIDAuMDA4ODM5LCAwLjAwODg0NiwgMC4wMDg4MzkiLCBcCi0gICAgICAgICAgIjAuMDA5NzIsIDAuMDA5MDQsIDAuMDA4OTYsIDAuMDA4OTM0LCAwLjAwODkxLCAwLjAwODg5NCwgMC4wMDg4ODYiLCBcCi0gICAgICAgICAgIjAuMDEwMzY2LCAwLjAwOTI2NSwgMC4wMDkxMTQsIDAuMDA5MDU5LCAwLjAwOTAxMSwgMC4wMDg5OCwgMC4wMDg5NTYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTA2NCwgMC4wMDExMDQsIDAuMDAxMTA4LCAwLjAwMTEwOSwgMC4wMDExMSwgMC4wMDExMSwgMC4wMDExMTEiLCBcCi0gICAgICAgICAgIjAuMDAwOTgzLCAwLjAwMTA0OSwgMC4wMDEwNTksIDAuMDAxMDYyLCAwLjAwMTA2MywgMC4wMDEwNjQsIDAuMDAxMDY1IiwgXAotICAgICAgICAgICIwLjAwMTE5OCwgMC4wMDExMTIsIDAuMDAxMDg3LCAwLjAwMTA4MSwgMC4wMDEwNzQsIDAuMDAxMDcxLCAwLjAwMTA2OCIsIFwKLSAgICAgICAgICAiMC4wMDE3NCwgMC4wMDEyMzgsIDAuMDAxMTYyLCAwLjAwMTEzNiwgMC4wMDExMTUsIDAuMDAxMTA3LCAwLjAwMTA5OCIsIFwKLSAgICAgICAgICAiMC4wMDIxNzcsIDAuMDAxNTE2LCAwLjAwMTMzNiwgMC4wMDEyNzYsIDAuMDAxMjIxLCAwLjAwMTE5MywgMC4wMDExNjQiLCBcCi0gICAgICAgICAgIjAuMDAzMTIsIDAuMDAxOTE4LCAwLjAwMTU4OCwgMC4wMDE0ODIsIDAuMDAxMzc4LCAwLjAwMTMxOSwgMC4wMDEyNjgiLCBcCi0gICAgICAgICAgIjAuMDA0MDIsIDAuMDAyMzQ4LCAwLjAwMTg3LCAwLjAwMTcwNSwgMC4wMDE1NDYsIDAuMDAxNDY1LCAwLjAwMTM4MiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2OTE4LCAwLjAwNzAzOCwgMC4wMDcwNTMsIDAuMDA3MDU3LCAwLjAwNzA2LCAwLjAwNzA2MSwgMC4wMDcwNjIiLCBcCi0gICAgICAgICAgIjAuMDA2Nzk3LCAwLjAwNjk3MywgMC4wMDcwMTUsIDAuMDA3MDI1LCAwLjAwNzAzMSwgMC4wMDcwNDIsIDAuMDA3MDQ3IiwgXAotICAgICAgICAgICIwLjAwNzAxNCwgMC4wMDcwMSwgMC4wMDcwMjUsIDAuMDA3MDMyLCAwLjAwNzA0LCAwLjAwNzA0NSwgMC4wMDcwNDkiLCBcCi0gICAgICAgICAgIjAuMDA3NDQ3LCAwLjAwNzA2NywgMC4wMDcwNTgsIDAuMDA3MDU2LCAwLjAwNzA1MSwgMC4wMDcwNTIsIDAuMDA3MDU0IiwgXAotICAgICAgICAgICIwLjAwNzg2OSwgMC4wMDcyNTksIDAuMDA3MTc1LCAwLjAwNzE1MSwgMC4wMDcxMjcsIDAuMDA3MTE0LCAwLjAwNzEwMiIsIFwKLSAgICAgICAgICAiMC4wMDg3MDcsIDAuMDA3NTg0LCAwLjAwNzM4MiwgMC4wMDczMDgsIDAuMDA3MjYxLCAwLjAwNzIyOCwgMC4wMDcxNzYiLCBcCi0gICAgICAgICAgIjAuMDA5NTE2LCAwLjAwNzk2MywgMC4wMDc2MjgsIDAuMDA3NTExLCAwLjAwNzQxNSwgMC4wMDczNTgsIDAuMDA3MzAzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDAxNCwgMC4wMDAwMDEsIDAuMDAwMDEzLCAwLjAwMDAxNywgMC4wMDAwMjEsIDAuMDAwMDIzLCAwLjAwMDAyMyIsIFwKLSAgICAgICAgICAiMC4wMDAyODYsIDAuMDAwMDIyLCAwLjAwMDAyNiwgMC4wMDAwMzgsIDAuMDAwMDQ5LCAwLjAwMDA1NSwgMC4wMDAwNiIsIFwKLSAgICAgICAgICAiMC4wMDAxMTQsIDAuMDAwMDA0LCAwLjAwMDA2MiwgMC4wMDAwNjQsIDAuMDAwMDcsIDAuMDAwMDc0LCAwLjAwMDA3NyIsIFwKLSAgICAgICAgICAiMC4wMDAyNDgsIDAuMDAwMDk2LCAwLjAwMDEzMywgMC4wMDAxMjYsIDAuMDAwMTE3LCAwLjAwMDExMywgMC4wMDAxMDgiLCBcCi0gICAgICAgICAgIjAuMDAwNzU1LCAwLjAwMDMyNywgMC4wMDAyMjksIDAuMDAwMjAxLCAwLjAwMDE3NSwgMC4wMDAxMzcsIDAuMDAwMTI4IiwgXAotICAgICAgICAgICIwLjAwMTY2OSwgMC4wMDA2NjUsIDAuMDAwNDM1LCAwLjAwMDM2NiwgMC4wMDAzMDEsIDAuMDAwMjY1LCAwLjAwMDIzNSIsIFwKLSAgICAgICAgICAiMC4wMDI1MjksIDAuMDAxMDQ2LCAwLjAwMDY3OSwgMC4wMDA1NTgsIDAuMDAwNDQxLCAwLjAwMDM4NiwgMC4wMDAzMjkiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IE5PUjJYNiAqCi0gKiAtLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKE5PUjJYNikgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjk1MDk1NDsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDA1MTMyNTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDUxMTA1OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwNTEzMjU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyNzY1LCAwLjAwMjk2MywgMC4wMDMwMDcsIDAuMDAzMDE2LCAwLjAwMzA1NSwgMC4wMDMwNzcsIDAuMDAzMDc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzMjMxLCAwLjAwMzIzNCwgMC4wMDMyMzUsIDAuMDAzMjM1LCAwLjAwMzIzNiwgMC4wMDMyMzcsIDAuMDAzMjM3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDUwNDk2NzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDUwNDk2NzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDUwNDg5OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDc0MSwgMC4wMDA3NDEsIDAuMDAwNzQxLCAwLjAwMDc0MSwgMC4wMDA3NDEsIDAuMDAwNzQxLCAwLjAwMDc0MSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjE5OSwgMC4wMDIyLCAwLjAwMjE5OSwgMC4wMDIxOTksIDAuMDAyMTk5LCAwLjAwMjE5OSwgMC4wMDIxOTgiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMS4xMjQ0NDsKLSAgICBmdW5jdGlvbiA6ICIoIShBK0IpKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTkyMDEsIDAuMDg1Nzc0LCAwLjE1MjIyOCwgMC4xOTk4NDIsIDAuMjc1ODAxLCAwLjM0MjM4OSwgMC40MzY5NjQiLCBcCi0gICAgICAgICAgIjAuMDI1MTYzLCAwLjA5MTk0NSwgMC4xNTg1NzEsIDAuMjA1OTMyLCAwLjI4MTgwOCwgMC4zNDg2NjcsIDAuNDQzMjY0IiwgXAotICAgICAgICAgICIwLjAzMDY3MSwgMC4wOTkyNjQsIDAuMTY1NzkxLCAwLjIxMzI3MywgMC4yODk1MDEsIDAuMzU1Nzk2LCAwLjQ1MDY5OCIsIFwKLSAgICAgICAgICAiMC4wMzQ2OCwgMC4xMDY2NTEsIDAuMTczMjE0LCAwLjIyMDc4MywgMC4yOTY5MDgsIDAuMzYzNDg0LCAwLjQ1ODIxOSIsIFwKLSAgICAgICAgICAiMC4wMzc3MjIsIDAuMTE0MDI4LCAwLjE4MDcxOCwgMC4yMjgwODgsIDAuMzA0MjI4LCAwLjM3MDcxLCAwLjQ2NTkwMyIsIFwKLSAgICAgICAgICAiMC4wNDE3NjQsIDAuMTI1NTkxLCAwLjE5MjM2OSwgMC4yMzk5NTksIDAuMzE1OTg2LCAwLjM4MjMxNywgMC40NzcyNjEiLCBcCi0gICAgICAgICAgIjAuMDQ0Njg1LCAwLjEzNDY2NSwgMC4yMDI4NjQsIDAuMjUwNDk5LCAwLjMyNjU0NiwgMC4zOTI2OTQsIDAuNDg4Njk3Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDMwODYxLCAwLjE3MTYyOSwgMC4zMTIwNTMsIDAuNDEyMzU0LCAwLjU3Mjk2MSwgMC43MTM2MzMsIDAuOTE0MDA4IiwgXAotICAgICAgICAgICIwLjAzMzE1OSwgMC4xNzEzMjMsIDAuMzExOTUzLCAwLjQxMjE4NiwgMC41NzI3MjUsIDAuNzEzNjQ0LCAwLjkxNDI2IiwgXAotICAgICAgICAgICIwLjAzOTI2NiwgMC4xNzI4NjMsIDAuMzEyNDMxLCAwLjQxMjM5OSwgMC41NzI4ODgsIDAuNzEzMjY0LCAwLjkxMzk3OSIsIFwKLSAgICAgICAgICAiMC4wNDUyNjUsIDAuMTc2MTU2LCAwLjMxMzE4MSwgMC40MTMzNTEsIDAuNTcyNzY4LCAwLjcxMzQ5OCwgMC45MTQwMTIiLCBcCi0gICAgICAgICAgIjAuMDUxMTI5LCAwLjE4MDQ5MywgMC4zMTYxNTgsIDAuNDE0ODIsIDAuNTc0MjQ3LCAwLjcxNDU3MywgMC45MTQwNjkiLCBcCi0gICAgICAgICAgIjAuMDU5NTE3LCAwLjE4ODk2LCAwLjMyMTY0OSwgMC40MTg3MjUsIDAuNTc2Nzc2LCAwLjcxNDkzNywgMC45MTU4MDkiLCBcCi0gICAgICAgICAgIjAuMDY2NTA3LCAwLjE5NzM1LCAwLjMyNzg0LCAwLjQyMzg4OSwgMC41ODA1MDEsIDAuNzE3NjkxLCAwLjkxNjk1NSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMjU2NiwgMC4wNTAyNzgsIDAuMDg3NzI3LCAwLjExNDQ2OSwgMC4xNTcyMzcsIDAuMTk0NjQ0LCAwLjI0ODA3MyIsIFwKLSAgICAgICAgICAiMC4wMjA3NjYsIDAuMDU4NzgyLCAwLjA5NjIzMywgMC4xMjI5NTgsIDAuMTY1NTQ0LCAwLjIwMjk2NCwgMC4yNTY0NzEiLCBcCi0gICAgICAgICAgIjAuMDI3ODI0LCAwLjA2OTQ1NiwgMC4xMDY5NTIsIDAuMTMzNjQzLCAwLjE3NjI0NywgMC4yMTM2NSwgMC4yNjcxNTEiLCBcCi0gICAgICAgICAgIjAuMDMyODc3LCAwLjA4MDI1OCwgMC4xMTc1OTUsIDAuMTQ0MjE1LCAwLjE4Njk0OSwgMC4yMjQzNjUsIDAuMjc3ODUzIiwgXAotICAgICAgICAgICIwLjAzNjc5MiwgMC4wOTA2MTgsIDAuMTI4MTY3LCAwLjE1NDgwNywgMC4xOTc0MTksIDAuMjM0NzQ5LCAwLjI4ODIyMSIsIFwKLSAgICAgICAgICAiMC4wNDI0NDQsIDAuMTA1MDQxLCAwLjE0NTc5MywgMC4xNzIyMzQsIDAuMjE0ODA4LCAwLjI1MTk5OCwgMC4zMDUzODkiLCBcCi0gICAgICAgICAgIjAuMDQ2NTk4LCAwLjExNTU4OCwgMC4xNjA2OTgsIDAuMTg3NjIxLCAwLjIzMDA2NCwgMC4yNjczMzIsIDAuMzIwNTE3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE4Mjc5LCAwLjA5NTM2MiwgMC4xNzI1MTEsIDAuMjI3NjIxLCAwLjMxNTc5MiwgMC4zOTI5NDYsIDAuNTAzMjk4IiwgXAotICAgICAgICAgICIwLjAyMzY3LCAwLjA5NTg3MywgMC4xNzI1MTIsIDAuMjI3NjQyLCAwLjMxNTg0MiwgMC4zOTI5NDUsIDAuNTAzMTQ2IiwgXAotICAgICAgICAgICIwLjAzMjU5LCAwLjEwMDc5NSwgMC4xNzQxODIsIDAuMjI4MTQ3LCAwLjMxNTg1MywgMC4zOTI5NDEsIDAuNTAzMjY4IiwgXAotICAgICAgICAgICIwLjA0MDE3NywgMC4xMDc5MjcsIDAuMTc4ODc2LCAwLjIzMTM1NCwgMC4zMTcxNjQsIDAuMzkzMzI2LCAwLjUwMzM3IiwgXAotICAgICAgICAgICIwLjA0Njk5OSwgMC4xMTY2NzIsIDAuMTg1MzI2LCAwLjIzNjU0MywgMC4zMjA1MDksIDAuMzk1MzAxLCAwLjUwMzgzMyIsIFwKLSAgICAgICAgICAiMC4wNTYxMDcsIDAuMTMxNTkxLCAwLjE5NzM5NSwgMC4yNDY3OTMsIDAuMzI4NDg5LCAwLjQwMTU5OSwgMC41MDc4ODciLCBcCi0gICAgICAgICAgIjAuMDYzNzI3LCAwLjE0NDc1NCwgMC4yMDkxMTksIDAuMjU3MzgsIDAuMzM3MTk2LCAwLjQwODkyOCwgMC41MTM0MzYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTY5NjksIDAuMDgzNzM4LCAwLjE1MDA1NywgMC4xOTc1OSwgMC4yNzM2MjcsIDAuMzM5NzMxLCAwLjQzNTMxNyIsIFwKLSAgICAgICAgICAiMC4wMjQ1MTQsIDAuMDkxMTcxLCAwLjE1NzcxMiwgMC4yMDUxODQsIDAuMjgwODE1LCAwLjM0NzQ4MywgMC40NDI1NDQiLCBcCi0gICAgICAgICAgIjAuMDMxODEyLCAwLjEwMDU4MywgMC4xNjcwNjQsIDAuMjE0NzEsIDAuMjkwMzk5LCAwLjM1Njg2OCwgMC40NTE5MjkiLCBcCi0gICAgICAgICAgIjAuMDM3MDUxLCAwLjExMDQ3NiwgMC4xNzY3NzUsIDAuMjI0MTg2LCAwLjMwMDEyNiwgMC4zNjY4NywgMC40NjEzOTEiLCBcCi0gICAgICAgICAgIjAuMDQxMTc3LCAwLjEyMDIyOSwgMC4xODYzNzgsIDAuMjMzODA3LCAwLjMwOTc1OSwgMC4zNzYwNzYsIDAuNDcxMjE3IiwgXAotICAgICAgICAgICIwLjA0NjY5OCwgMC4xMzYxNDIsIDAuMjAyMDksIDAuMjQ5MzYyLCAwLjMyNTMyMSwgMC4zOTE1MzEsIDAuNDg1OTI5IiwgXAotICAgICAgICAgICIwLjA1MDkzNywgMC4xNDg1NTksIDAuMjE1OTYyLCAwLjI2MzA4NCwgMC4zMzg3NSwgMC40MDUyNTksIDAuNDk5ODQzIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDMwODU1LCAwLjE3MTQxOCwgMC4zMTE3NjIsIDAuNDEyMjEzLCAwLjU3Mjg4LCAwLjcxMzY3NywgMC45MTQ1MDYiLCBcCi0gICAgICAgICAgIjAuMDM1Mzc2LCAwLjE3MTM1OSwgMC4zMTE5MjIsIDAuNDEyMzE4LCAwLjU3MjkxOCwgMC43MTMyNDYsIDAuOTE0MDc4IiwgXAotICAgICAgICAgICIwLjA0NDE5OSwgMC4xNzM3MDEsIDAuMzEyMDAyLCAwLjQxMjI2NywgMC41NzM2OTIsIDAuNzEzMTM0LCAwLjkxNDAyOCIsIFwKLSAgICAgICAgICAiMC4wNTE1MjUsIDAuMTc4NzMsIDAuMzE0MjQ4LCAwLjQxMzI2MSwgMC41NzI3NDUsIDAuNzEzNTg5LCAwLjkxMzkzNyIsIFwKLSAgICAgICAgICAiMC4wNTgxMjIsIDAuMTg1MzkxLCAwLjMxNzg0NiwgMC40MTQ5MzksIDAuNTczMjg5LCAwLjcxNDUxOSwgMC45MTQwOSIsIFwKLSAgICAgICAgICAiMC4wNjcxMiwgMC4xOTc5MDcsIDAuMzI2MzMyLCAwLjQyMTM1NywgMC41NzY2NzQsIDAuNzE1Nzk4LCAwLjkxNDI0MiIsIFwKLSAgICAgICAgICAiMC4wNzQ4NjEsIDAuMjA5NDk5LCAwLjMzNTU1NCwgMC40MjkxMTEsIDAuNTgyMTg5LCAwLjcxODI4NCwgMC45MTY4OTMiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTEwNzUsIDAuMDQ4Nzk2LCAwLjA4NjMzNCwgMC4xMTMxMzgsIDAuMTU2MDc3LCAwLjE5Mzc0OSwgMC4yNDcyIiwgXAotICAgICAgICAgICIwLjAxODc2NCwgMC4wNTcyODIsIDAuMDk0ODQ5LCAwLjEyMTY3LCAwLjE2NDU3OSwgMC4yMDIxMDIsIDAuMjU1NzU5IiwgXAotICAgICAgICAgICIwLjAyNDgyLCAwLjA2ODA3NiwgMC4xMDU0MjQsIDAuMTMyMjI0LCAwLjE3NTE5LCAwLjIxMjY4MywgMC4yNjYzMjEiLCBcCi0gICAgICAgICAgIjAuMDI5MDcsIDAuMDc4ODk2LCAwLjExNjE2OCwgMC4xNDI5MjcsIDAuMTg1Nzk4LCAwLjIyMzI5OSwgMC4yNzY5NTMiLCBcCi0gICAgICAgICAgIjAuMDMyNzE3LCAwLjA4ODg0LCAwLjEyNjk2LCAwLjE1Mzc2MiwgMC4xOTY1MTgsIDAuMjM0MDMyLCAwLjI4NzYyMyIsIFwKLSAgICAgICAgICAiMC4wMzcwMjMsIDAuMTAyNzUzLCAwLjE0NDMzNywgMC4xNzA4OTcsIDAuMjEzNjM5LCAwLjI1MDk4NSwgMC4zMDQ1NjkiLCBcCi0gICAgICAgICAgIjAuMDQwMzAxLCAwLjExMzIwMSwgMC4xNTg5MjEsIDAuMTg2MjYxLCAwLjIyODg3NCwgMC4yNjYyODYsIDAuMzE5NjY2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE2MDc0LCAwLjA5MzQ5NiwgMC4xNzEyNTQsIDAuMjI2MTkyLCAwLjMxNTExNywgMC4zOTI0MzEsIDAuNTAyNzI2IiwgXAotICAgICAgICAgICIwLjAyMTk3MywgMC4wOTQxODEsIDAuMTcxMjI2LCAwLjIyNjcxLCAwLjMxNTQzOSwgMC4zOTMwMzIsIDAuNTAyODYiLCBcCi0gICAgICAgICAgIjAuMDMwNzU1LCAwLjA5ODg1OSwgMC4xNzI5OTQsIDAuMjI3MjQ3LCAwLjMxNDgwNSwgMC4zOTMwNTMsIDAuNTAyNzkiLCBcCi0gICAgICAgICAgIjAuMDM4MzU0LCAwLjEwNjAzNywgMC4xNzc2NCwgMC4yMzA0NDYsIDAuMzE2MjYyLCAwLjM5MzE0NSwgMC41MDM4IiwgXAotICAgICAgICAgICIwLjA0NDU4NCwgMC4xMTQ4NzksIDAuMTgzOTM1LCAwLjIzNTM1NywgMC4zMjAwNDMsIDAuMzk0NjYzLCAwLjUwMzYxNyIsIFwKLSAgICAgICAgICAiMC4wNTQ1NDUsIDAuMTMwMDc1LCAwLjE5NTg4OSwgMC4yNDU1NjgsIDAuMzI3OTcxLCAwLjQwMDkwMywgMC41MDgzMjQiLCBcCi0gICAgICAgICAgIjAuMDYyMDE5LCAwLjE0NDA2MiwgMC4yMDc0NjEsIDAuMjU2MDQ1LCAwLjMzNjY4MywgMC40MDg4MzgsIDAuNTEzMDQzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTI3NDYsIDAuMDEyODkzLCAwLjAxMjkxLCAwLjAxMjkxNSwgMC4wMTI5MjEsIDAuMDEyOTIyLCAwLjAxMjkyNCIsIFwKLSAgICAgICAgICAiMC4wMTI0ODIsIDAuMDEyNzcsIDAuMDEyODM0LCAwLjAxMjg1NiwgMC4wMTI4NzYsIDAuMDEyODg2LCAwLjAxMjg5OCIsIFwKLSAgICAgICAgICAiMC4wMTI1ODQsIDAuMDEyNzIsIDAuMDEyODEyLCAwLjAxMjgyMSwgMC4wMTI4NDYsIDAuMDEyODYzLCAwLjAxMjg3NiIsIFwKLSAgICAgICAgICAiMC4wMTI4OTcsIDAuMDEyNzc1LCAwLjAxMjgxMiwgMC4wMTI4NDUsIDAuMDEyODU4LCAwLjAxMjg2OCwgMC4wMTI4NzkiLCBcCi0gICAgICAgICAgIjAuMDEzMzY0LCAwLjAxMjkxNSwgMC4wMTI4OTQsIDAuMDEyOTAyLCAwLjAxMjkwOSwgMC4wMTI4OTksIDAuMDEyOTExIiwgXAotICAgICAgICAgICIwLjAxNDM0NCwgMC4wMTMyOTEsIDAuMDEzMTI0LCAwLjAxMzA4NSwgMC4wMTMwNDgsIDAuMDEzMDI2LCAwLjAxMjk5OSIsIFwKLSAgICAgICAgICAiMC4wMTUzODEsIDAuMDEzNzI4LCAwLjAxMzQxMywgMC4wMTMzMiwgMC4wMTMyMjcsIDAuMDEzMTY3LCAwLjAxMzEzNCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxNDg5LCAwLjAwMTU2MywgMC4wMDE1NzIsIDAuMDAxNTc1LCAwLjAwMTU3NywgMC4wMDE1NzgsIDAuMDAxNTc5IiwgXAotICAgICAgICAgICIwLjAwMTM1OCwgMC4wMDE0NzEsIDAuMDAxNDksIDAuMDAxNDkzLCAwLjAwMTQ5OSwgMC4wMDE0OTgsIDAuMDAxNDk1IiwgXAotICAgICAgICAgICIwLjAwMTcxMSwgMC4wMDE1NzcsIDAuMDAxNTgyLCAwLjAwMTUwNiwgMC4wMDE1MjMsIDAuMDAxNTE5LCAwLjAwMTUxNSIsIFwKLSAgICAgICAgICAiMC4wMDI1LCAwLjAwMTgxNiwgMC4wMDE2OTEsIDAuMDAxNjQzLCAwLjAwMTYwNywgMC4wMDE1ODUsIDAuMDAxNTY5IiwgXAotICAgICAgICAgICIwLjAwMzI4MiwgMC4wMDIzMjksIDAuMDAyMDEyLCAwLjAwMTkxLCAwLjAwMTgxLCAwLjAwMTc1NCwgMC4wMDE3MDQiLCBcCi0gICAgICAgICAgIjAuMDA0NTg5LCAwLjAwMzA3NCwgMC4wMDI0OTYsIDAuMDAyMjg4LCAwLjAwMjEwNywgMC4wMDE5OTcsIDAuMDAxOTA3IiwgXAotICAgICAgICAgICIwLjAwNTg2NywgMC4wMDM5NTEsIDAuMDAzMDAxLCAwLjAwMjcxMSwgMC4wMDI0MzEsIDAuMDAyMjc1LCAwLjAwMjEyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDk5ODUsIDAuMDEwMiwgMC4wMTAyMjUsIDAuMDEwMjM1LCAwLjAxMDI0LCAwLjAxMDI0NCwgMC4wMTAyNDYiLCBcCi0gICAgICAgICAgIjAuMDA5ODM0LCAwLjAxMDA3MiwgMC4wMTAxNDEsIDAuMDEwMTY4LCAwLjAxMDE4MywgMC4wMTAyMDMsIDAuMDEwMjE0IiwgXAotICAgICAgICAgICIwLjAxMDIzLCAwLjAxMDEzNSwgMC4wMTAxNzEsIDAuMDEwMTgzLCAwLjAxMDE5NiwgMC4wMTAyMDUsIDAuMDEwMjE2IiwgXAotICAgICAgICAgICIwLjAxMTEyNSwgMC4wMTAzODgsIDAuMDEwMzA3LCAwLjAxMDI5MSwgMC4wMTAyNywgMC4wMTAyNjQsIDAuMDEwMjU4IiwgXAotICAgICAgICAgICIwLjAxMTYwNiwgMC4wMTA2MjYsIDAuMDEwNDYxLCAwLjAxMDQwOCwgMC4wMTAzNzYsIDAuMDEwMzUzLCAwLjAxMDMyOSIsIFwKLSAgICAgICAgICAiMC4wMTI5MSwgMC4wMTEyNTQsIDAuMDEwODU1LCAwLjAxMDc0MiwgMC4wMTA2MTQsIDAuMDEwNTY3LCAwLjAxMDUwNiIsIFwKLSAgICAgICAgICAiMC4wMTQwNzQsIDAuMDExOTQ1LCAwLjAxMTMwOSwgMC4wMTExLCAwLjAxMDkxMywgMC4wMTA3OTgsIDAuMDEwNzE2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDAzMiwgMC4wMDAwNTcsIDAuMDAwMDI4LCAwLjAwMDAxOSwgMC4wMDAwMDgsIDAuMDAwMDA0LCAwIiwgXAotICAgICAgICAgICIwLjAwMDU2OCwgMC4wMDAxMTksIDAuMDAwMDM1LCAwLjAwMDAwOSwgMC4wMDAwMTUsIDAuMDAwMDI3LCAwLjAwMDAzOSIsIFwKLSAgICAgICAgICAiMC4wMDAyNDMsIDAuMDAwMDk0LCAwLjAwMDAzMSwgMC4wMDAwMDYsIDAuMDAwMDIxLCAwLjAwMDAzNSwgMC4wMDAwNDgiLCBcCi0gICAgICAgICAgIjAuMDAwNTE2LCAwLjAwMDIwMSwgMC4wMDAwNzEsIDAuMDAwMDc1LCAwLjAwMDA3NiwgMC4wMDAwODEsIDAuMDAwMDg2IiwgXAotICAgICAgICAgICIwLjAwMTExOSwgMC4wMDA1MjEsIDAuMDAwMjUzLCAwLjAwMDIwNiwgMC4wMDAxODYsIDAuMDAwMTY3LCAwLjAwMDE1MyIsIFwKLSAgICAgICAgICAiMC4wMDI1MjUsIDAuMDAxMTcyLCAwLjAwMDc0LCAwLjAwMDU5NSwgMC4wMDA0OCwgMC4wMDA0MDksIDAuMDAwMzU4IiwgXAotICAgICAgICAgICIwLjAwMzk1NywgMC4wMDE5MTIsIDAuMDAxMTg2LCAwLjAwMDk2NiwgMC4wMDA3NjIsIDAuMDAwNjQ5LCAwLjAwMDUzNyIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogTk9SMlhMICoKLSAqIC0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoTk9SMlhMKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMDk2MTUwNjsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjQ3OTUzOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDY0NjMxMzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2NDc5NTM7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjU5LCAwLjAwMDI3OSwgMC4wMDAyODIsIDAuMDAwMjg2LCAwLjAwMDI5LCAwLjAwMDI5MSwgMC4wMDAyOTEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAzMDQsIDAuMDAwMzA0LCAwLjAwMDMwNCwgMC4wMDAzMDQsIDAuMDAwMzA0LCAwLjAwMDMwNCwgMC4wMDAzMDQiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY4MTU5NzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2ODE1OTc7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjgxMzE7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMDY5LCAwLjAwMDA2OSwgMC4wMDAwNjksIDAuMDAwMDY5LCAwLjAwMDA2OSwgMC4wMDAwNjksIDAuMDAwMDY5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjA4LCAwLjAwMDIwOCwgMC4wMDAyMDgsIDAuMDAwMjA4LCAwLjAwMDIwOCwgMC4wMDAyMDgsIDAuMDAwMjA4Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMTEyMjQ1OwotICAgIGZ1bmN0aW9uIDogIighKEErQikpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDU4MzgsIDAuMTI0ODAyLCAwLjI5NTA4NywgMC41NzkwODYsIDAuODYzMzY0LCAxLjUyNjg3LCAxLjkwNDciLCBcCi0gICAgICAgICAgIjAuMTExNTUyLCAwLjEzMDU0OSwgMC4zMDA5MTcsIDAuNTg0ODk3LCAwLjg2OTI5MywgMS41MzEwMSwgMS45MTAwMSIsIFwKLSAgICAgICAgICAiMC4xMTg2MjQsIDAuMTM3NzI0LCAwLjMwODAxLCAwLjU5MTk5NiwgMC44NzU5NDYsIDEuNTM4NzcsIDEuOTE4ODgiLCBcCi0gICAgICAgICAgIjAuMTI1NTkxLCAwLjE0NDYxNCwgMC4zMTUyMTUsIDAuNTk5MjA2LCAwLjg4NDM3MywgMS41NDY0MSwgMS45MjUwNiIsIFwKLSAgICAgICAgICAiMC4xMzI2NjMsIDAuMTUxNjUyLCAwLjMyMjUyMywgMC42MDczODMsIDAuODkxMjE5LCAxLjU1MzAzLCAxLjkzNDc3IiwgXAotICAgICAgICAgICIwLjE0NDA4MSwgMC4xNjMwMjYsIDAuMzMzNDQyLCAwLjYxNzg5OCwgMC45MDIxMzgsIDEuNTY0MzYsIDEuOTQyNTgiLCBcCi0gICAgICAgICAgIjAuMTUzNTAyLCAwLjE3MzA1MSwgMC4zNDM0OTgsIDAuNjI4NzExLCAwLjkxMjYzNSwgMS41NzU3OCwgMS45NTM0NSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMTQ1MzgsIDAuMjU0Njk0LCAwLjYxNTU5NSwgMS4yMTgyLCAxLjgxOTIzLCAzLjIyNDEyLCA0LjAyNTU0IiwgXAotICAgICAgICAgICIwLjIxNDYyNSwgMC4yNTQ2MzEsIDAuNjE2NzksIDEuMjE3MiwgMS44MTkyOSwgMy4yMjQ1NSwgNC4wMjc5MSIsIFwKLSAgICAgICAgICAiMC4yMTU0MzgsIDAuMjU1MDg4LCAwLjYxNjAzOCwgMS4yMTczMSwgMS44MjAyMywgMy4yMjMwNywgNC4wMjY4OSIsIFwKLSAgICAgICAgICAiMC4yMTgyMjUsIDAuMjU3NzA2LCAwLjYxNTkzOSwgMS4yMTgzMywgMS44MjAxLCAzLjIyMzMzLCA0LjAyODc1IiwgXAotICAgICAgICAgICIwLjIyMTkxOSwgMC4yNjA3NDYsIDAuNjE1OTg0LCAxLjIxNzgzLCAxLjgxOTk3LCAzLjIyNDc5LCA0LjAyNzk3IiwgXAotICAgICAgICAgICIwLjIyOTU0OSwgMC4yNjc0NDIsIDAuNjE5MzIzLCAxLjIxOTMxLCAxLjgxOTExLCAzLjIyNTg0LCA0LjAyNzk2IiwgXAotICAgICAgICAgICIwLjIzNzAyOSwgMC4yNzQ0OTQsIDAuNjIxNTE0LCAxLjIxNzI3LCAxLjgxODk4LCAzLjIyNDY3LCA0LjAyNzgxIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1NTc0NCwgMC4wNjU0MDQsIDAuMTUyMjcxLCAwLjI5NzA1OCwgMC40NDE4MTUsIDAuNzc5Mjg2LCAwLjk3MzE0OCIsIFwKLSAgICAgICAgICAiMC4wNjM4ODksIDAuMDczNTMyLCAwLjE2MDQ4MiwgMC4zMDQ5OTEsIDAuNDQ5ODI0LCAwLjc4NzUwNiwgMC45ODAzMjEiLCBcCi0gICAgICAgICAgIjAuMDc0MTIyLCAwLjA4MzczLCAwLjE3MDI4NywgMC4zMTUxNzEsIDAuNDU5ODM5LCAwLjc5NzY4OSwgMC45OTA0MjMiLCBcCi0gICAgICAgICAgIjAuMDg0Njc0LCAwLjA5NDIyMiwgMC4xODA3NzMsIDAuMzI1ODY2LCAwLjQ3MDYwOSwgMC44MDc3NzYsIDEuMDAwODQiLCBcCi0gICAgICAgICAgIjAuMDk1MTk1LCAwLjEwNDgzOSwgMC4xOTExNjksIDAuMzM1NTEzLCAwLjQ4MDY0MywgMC44MTgwNzQsIDEuMDExNzQiLCBcCi0gICAgICAgICAgIjAuMTA5NjE0LCAwLjEyMDgsIDAuMjA4MTc1LCAwLjM1MjQ1NSwgMC40OTUwODUsIDAuODM1MjE3LCAxLjAyNzM0IiwgXAotICAgICAgICAgICIwLjEyMDM0NywgMC4xMzI5MjcsIDAuMjIyODUsIDAuMzY3MTMyLCAwLjUxMTY4LCAwLjg0OTI0MSwgMS4wNDIyNCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDcwMDYsIDAuMTI2NzY0LCAwLjMwNDg3MiwgMC42MDE4LCAwLjg5ODUwNywgMS41OTEyNSwgMS45ODcwNCIsIFwKLSAgICAgICAgICAiMC4xMDczNTIsIDAuMTI2OTAzLCAwLjMwNDg5LCAwLjYwMTY5NiwgMC44OTg1NywgMS41OTA2MiwgMS45ODYwOCIsIFwKLSAgICAgICAgICAiMC4xMTIwNjUsIDAuMTMwNjgsIDAuMzA0ODcyLCAwLjYwMTcwNCwgMC44OTg2ODYsIDEuNTkwOTYsIDEuOTg3MzgiLCBcCi0gICAgICAgICAgIjAuMTE5MjcyLCAwLjEzNzA5OCwgMC4zMDY1NzgsIDAuNjAxNzY4LCAwLjg5ODQzNCwgMS41OTE2MiwgMS45ODczMSIsIFwKLSAgICAgICAgICAiMC4xMjc2NjYsIDAuMTQ0ODU0LCAwLjMxMDQxNCwgMC42MDE2NzIsIDAuODk4NTU0LCAxLjU5MDgyLCAxLjk4NzE0IiwgXAotICAgICAgICAgICIwLjE0MjQsIDAuMTU4NzkzLCAwLjMxOTA1NCwgMC42MDQyNzEsIDAuODk4NDc4LCAxLjU5MDk0LCAxLjk4NjE3IiwgXAotICAgICAgICAgICIwLjE1NjE2OCwgMC4xNzIyNDMsIDAuMzI4MDY4LCAwLjYwODgzNSwgMC44OTkyNjQsIDEuNTkwNTYsIDEuOTg2OTgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTAzNzcxLCAwLjEyMjg3MSwgMC4yOTMxMjQsIDAuNTc3NjY4LCAwLjg2MTAzMiwgMS41MjQ0OSwgMS45MDQxOCIsIFwKLSAgICAgICAgICAiMC4xMTExNDMsIDAuMTI5OTY5LCAwLjMwMDQ4NCwgMC41ODQyOTIsIDAuODY4MTkyLCAxLjUzMDQ0LCAxLjkxMDEiLCBcCi0gICAgICAgICAgIjAuMTIwMzUyLCAwLjEzOTI2NCwgMC4zMDk2NTcsIDAuNTk0MDY4LCAwLjg3ODQwOCwgMS41NDExOCwgMS45MTkxMyIsIFwKLSAgICAgICAgICAiMC4xMjk4NjUsIDAuMTQ4NzA2LCAwLjMxOTE3MSwgMC42MDI5MTUsIDAuODg2NzY5LCAxLjU1MTU1LCAxLjkyODY0IiwgXAotICAgICAgICAgICIwLjEzOTQwNCwgMC4xNTgyNiwgMC4zMjg0MzQsIDAuNjEyNDE4LCAwLjg5NzUzNCwgMS41NTk2MSwgMS45MzgwMyIsIFwKLSAgICAgICAgICAiMC4xNTUwNzQsIDAuMTczODEsIDAuMzQzNjksIDAuNjI3NjQ0LCAwLjkxMTkwMywgMS41NzM0NCwgMS45NTM3NiIsIFwKLSAgICAgICAgICAiMC4xNjg3ODQsIDAuMTg3NTcxLCAwLjM1NzAwMiwgMC42MzkzMzgsIDAuOTI0MDM2LCAxLjU4ODkyLCAxLjk2NTAzIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIxNDQ4MywgMC4yNTQ3NzMsIDAuNjE2MDUyLCAxLjIxNzk2LCAxLjgyMDIsIDMuMjIzNDEsIDQuMDI3MzQiLCBcCi0gICAgICAgICAgIjAuMjE0NTcyLCAwLjI1NDc1MSwgMC42MTYxMjEsIDEuMjE5NTcsIDEuODIyMzgsIDMuMjI0ODcsIDQuMDI3MDciLCBcCi0gICAgICAgICAgIjAuMjE1Nzk1LCAwLjI1NTMxNywgMC42MTU2NjgsIDEuMjE3NjcsIDEuODE5ODYsIDMuMjIzNjQsIDQuMDI1MzkiLCBcCi0gICAgICAgICAgIjAuMjE5ODM5LCAwLjI1ODU4NiwgMC42MTU2NzMsIDEuMjE3MzEsIDEuODIwMzcsIDMuMjI0OTksIDQuMDI1NiIsIFwKLSAgICAgICAgICAiMC4yMjU2NDEsIDAuMjYzNDg3LCAwLjYxNjE3LCAxLjIxNzQxLCAxLjgyMDI1LCAzLjIyMzUsIDQuMDI4NDkiLCBcCi0gICAgICAgICAgIjAuMjM2ODQ2LCAwLjI3MzQ5MywgMC42MTg5NSwgMS4yMTc1NSwgMS44MTk4MSwgMy4yMjI2MywgNC4wMjY3IiwgXAotICAgICAgICAgICIwLjI0Nzk2MiwgMC4yODM5MDUsIDAuNjIzODQ5LCAxLjIxNzM1LCAxLjgyMDE5LCAzLjIyNTEsIDQuMDI0ODIiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU0MzMsIDAuMDYzOTY3LCAwLjE1MDgxMywgMC4yOTU2MjEsIDAuNDQwMjUzLCAwLjc3Nzk1NywgMC45NzEzOTUiLCBcCi0gICAgICAgICAgIjAuMDYyNDQ4LCAwLjA3MjA4NywgMC4xNTg5ODIsIDAuMzAzNTg2LCAwLjQ0ODQ2MSwgMC43ODY1MjksIDAuOTc4OTM4IiwgXAotICAgICAgICAgICIwLjA3MjcwMiwgMC4wODIzMDcsIDAuMTY4ODg0LCAwLjMxMzc4NCwgMC40NTg1MDksIDAuNzk2MzA3LCAwLjk4OTEyNyIsIFwKLSAgICAgICAgICAiMC4wODMxODUsIDAuMDkyOTU5LCAwLjE3OTYwNywgMC4zMjQyMzYsIDAuNDY5MDIzLCAwLjgwNjMxNCwgMC45OTkyMDQiLCBcCi0gICAgICAgICAgIjAuMDkzNTgyLCAwLjEwMzM2OSwgMC4xODk3NDIsIDAuMzM0MTEsIDAuNDc5MDk0LCAwLjgxNjQ3MywgMS4wMDk5MSIsIFwKLSAgICAgICAgICAiMC4xMDc2NzcsIDAuMTE5MDk4LCAwLjIwNjcyOSwgMC4zNTEwOTcsIDAuNDkzNjUzLCAwLjgzMzMyNiwgMS4wMjYwMyIsIFwKLSAgICAgICAgICAiMC4xMTgxNjMsIDAuMTMwODYyLCAwLjIyMTM3NCwgMC4zNjU3MDEsIDAuNTEwMzQ5LCAwLjg0Nzg4NiwgMS4wNDA4NiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDUwNjMsIDAuMTI0ODI5LCAwLjMwMjkzMSwgMC42MDA0NDgsIDAuODk4NTI2LCAxLjU5Mjc0LCAxLjk4NTQ0IiwgXAotICAgICAgICAgICIwLjEwNTUxMSwgMC4xMjUxNywgMC4zMDMwMjgsIDAuNjAwOTQ3LCAwLjg5NzU3NCwgMS41ODk0NiwgMS45ODkwMyIsIFwKLSAgICAgICAgICAiMC4xMTAzNzEsIDAuMTI4ODUyLCAwLjMwMzUxMiwgMC41OTk5NzEsIDAuODk3NTcsIDEuNTg5ODQsIDEuOTg5NDIiLCBcCi0gICAgICAgICAgIjAuMTE3MzQ5LCAwLjEzNTA0MiwgMC4zMDUzMDgsIDAuNTk5OTE3LCAwLjg5Njc0OSwgMS41ODk4OCwgMS45ODkwOCIsIFwKLSAgICAgICAgICAiMC4xMjU3MTUsIDAuMTQzMDM4LCAwLjMwOTAxMiwgMC42MDAwNDksIDAuODk4MzUsIDEuNTkyNCwgMS45ODc1NSIsIFwKLSAgICAgICAgICAiMC4xNDExLCAwLjE1Njk3OCwgMC4zMTc0MDEsIDAuNjAyOTA1LCAwLjg5NzAxNCwgMS41OTIzNSwgMS45ODkyNCIsIFwKLSAgICAgICAgICAiMC4xNTQ2MzMsIDAuMTcwNzE0LCAwLjMyNjQzLCAwLjYwODA5MSwgMC44OTk3NjksIDEuNTg5NDYsIDEuOTg0OTEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDE1NiwgMC4wMDE1NiwgMC4wMDE1NjIsIDAuMDAxNTYyLCAwLjAwMTU2MywgMC4wMDE1NjIsIDAuMDAxNTYzIiwgXAotICAgICAgICAgICIwLjAwMTU0OSwgMC4wMDE1NTEsIDAuMDAxNTU1LCAwLjAwMTU2LCAwLjAwMTU2MSwgMC4wMDE1NjIsIDAuMDAxNTU5IiwgXAotICAgICAgICAgICIwLjAwMTU0OSwgMC4wMDE1NSwgMC4wMDE1NTcsIDAuMDAxNTU5LCAwLjAwMTU2MSwgMC4wMDE1NjEsIDAuMDAxNTYyIiwgXAotICAgICAgICAgICIwLjAwMTU2MSwgMC4wMDE1NiwgMC4wMDE1NjEsIDAuMDAxNTYxLCAwLjAwMTU2MiwgMC4wMDE1NjIsIDAuMDAxNTYyIiwgXAotICAgICAgICAgICIwLjAwMTU4MiwgMC4wMDE1NzksIDAuMDAxNTcsIDAuMDAxNTY2LCAwLjAwMTU2NSwgMC4wMDE1NjQsIDAuMDAxNTY0IiwgXAotICAgICAgICAgICIwLjAwMTYzNCwgMC4wMDE2MjUsIDAuMDAxNTkzLCAwLjAwMTU4MSwgMC4wMDE1NzQsIDAuMDAxNTcsIDAuMDAxNTY4IiwgXAotICAgICAgICAgICIwLjAwMTY5NiwgMC4wMDE2ODEsIDAuMDAxNjIyLCAwLjAwMTYsIDAuMDAxNTg5LCAwLjAwMTU3OCwgMC4wMDE1NzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDAxNDEsIDAuMDAwMTQxLCAwLjAwMDE0MSwgMC4wMDAxNDIsIDAuMDAwMTQyLCAwLjAwMDE0MiwgMC4wMDAxNDIiLCBcCi0gICAgICAgICAgIjAuMDAwMTM1LCAwLjAwMDEzNSwgMC4wMDAxMzQsIDAuMDAwMTMzLCAwLjAwMDEzMywgMC4wMDAxMzUsIDAuMDAwMTM1IiwgXAotICAgICAgICAgICIwLjAwMDE2LCAwLjAwMDE1NiwgMC4wMDAxNDUsIDAuMDAwMTM4LCAwLjAwMDEzNiwgMC4wMDAxMzQsIDAuMDAwMTM0IiwgXAotICAgICAgICAgICIwLjAwMDE5NiwgMC4wMDAxODgsIDAuMDAwMTYsIDAuMDAwMTQ1LCAwLjAwMDE0MiwgMC4wMDAxMzcsIDAuMDAwMTM2IiwgXAotICAgICAgICAgICIwLjAwMDI0LCAwLjAwMDIyNywgMC4wMDAxNzksIDAuMDAwMTYsIDAuMDAwMTUyLCAwLjAwMDE0MiwgMC4wMDAxNCIsIFwKLSAgICAgICAgICAiMC4wMDAzMjcsIDAuMDAwMzAyLCAwLjAwMDIxOSwgMC4wMDAxODEsIDAuMDAwMTY3LCAwLjAwMDE1NCwgMC4wMDAxNDciLCBcCi0gICAgICAgICAgIjAuMDAwNDMsIDAuMDAwMzkxLCAwLjAwMDI2MSwgMC4wMDAyMDcsIDAuMDAwMTg1LCAwLjAwMDE2NSwgMC4wMDAxNTkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDEzMDIsIDAuMDAxMzAzLCAwLjAwMTMwNSwgMC4wMDEzMDYsIDAuMDAxMzA3LCAwLjAwMTMwNywgMC4wMDEzMDciLCBcCi0gICAgICAgICAgIjAuMDAxMjk1LCAwLjAwMTI5NiwgMC4wMDEzMDIsIDAuMDAxMzA0LCAwLjAwMTMwNSwgMC4wMDEzMDYsIDAuMDAxMzA2IiwgXAotICAgICAgICAgICIwLjAwMTMwNiwgMC4wMDEzMDYsIDAuMDAxMzA1LCAwLjAwMTMwNiwgMC4wMDEzMDYsIDAuMDAxMzA3LCAwLjAwMTMwNiIsIFwKLSAgICAgICAgICAiMC4wMDEzMzEsIDAuMDAxMzI3LCAwLjAwMTMxNCwgMC4wMDEzMSwgMC4wMDEzMDksIDAuMDAxMzA4LCAwLjAwMTMwOCIsIFwKLSAgICAgICAgICAiMC4wMDEzNjYsIDAuMDAxMzU5LCAwLjAwMTMzMywgMC4wMDEzMTksIDAuMDAxMzE1LCAwLjAwMTMxMSwgMC4wMDEzMSIsIFwKLSAgICAgICAgICAiMC4wMDE0NDMsIDAuMDAxNDI1LCAwLjAwMTM2NywgMC4wMDEzMzksIDAuMDAxMzI5LCAwLjAwMTMxOSwgMC4wMDEzMTciLCBcCi0gICAgICAgICAgIjAuMDAxNTIyLCAwLjAwMTQ5OCwgMC4wMDE0MDgsIDAuMDAxMzY1LCAwLjAwMTM0NSwgMC4wMDEzMjksIDAuMDAxMzI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwMDA2LCAwLjAwMDAwNSwgMC4wMDAwMDMsIDAuMDAwMDAyLCAwLjAwMDAwMiwgMC4wMDAwMDIsIDAuMDAwMDAyIiwgXAotICAgICAgICAgICIwLjAwMDAwNywgMC4wMDAwMDYsIDAuMDAwMDAxLCAwLjAwMDAwNCwgMC4wMDAwMDQsIDAuMDAwMDA0LCAwLjAwMDAwNCIsIFwKLSAgICAgICAgICAiMC4wMDAwMSwgMC4wMDAwMDksIDAuMDAwMDA4LCAwLjAwMDAwOCwgMC4wMDAwMDgsIDAuMDAwMDA5LCAwLjAwMDAwOSIsIFwKLSAgICAgICAgICAiMC4wMDAwNCwgMC4wMDAwMjQsIDAuMDAwMDE1LCAwLjAwMDAxNCwgMC4wMDAwMTIsIDAuMDAwMDExLCAwLjAwMDAxMSIsIFwKLSAgICAgICAgICAiMC4wMDAwNzgsIDAuMDAwMDY4LCAwLjAwMDAzNSwgMC4wMDAwMjQsIDAuMDAwMDE5LCAwLjAwMDAxNCwgMC4wMDAwMTMiLCBcCi0gICAgICAgICAgIjAuMDAwMTU2LCAwLjAwMDEzNSwgMC4wMDAwNywgMC4wMDAwNDMsIDAuMDAwMDMzLCAwLjAwMDAyMiwgMC4wMDAwMTkiLCBcCi0gICAgICAgICAgIjAuMDAwMjUsIDAuMDAwMjE4LCAwLjAwMDEwOSwgMC4wMDAwNjYsIDAuMDAwMDQ5LCAwLjAwMDAzMiwgMC4wMDAwMjgiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBOT1IzQlgxICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKE5PUjNCWDEpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4yODczMTk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEFOKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2NTg2NTc7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjU4NDY0OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDY1ODY1NzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA5NjMsIDAuMDAwOTcyLCAwLjAwMTA1NCwgMC4wMDExNjUsIDAuMDAxMjksIDAuMDAxNTE3LCAwLjAwMTcxMyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTg3MywgMC4wMDE4ODEsIDAuMDAxOTU2LCAwLjAwMjA2NCwgMC4wMDIxOTIsIDAuMDAyNDE2LCAwLjAwMjU5OCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwOTU0MTg2OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDk1MTExMjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA5NTQxODY7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMTY5LCAwLjAwMDE2OSwgMC4wMDAxNjksIDAuMDAwMTY5LCAwLjAwMDE2OSwgMC4wMDAxNywgMC4wMDAxNyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDQxMSwgMC4wMDA0MTEsIDAuMDAwNDExLCAwLjAwMDQxLCAwLjAwMDQxLCAwLjAwMDQxLCAwLjAwMDQxIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihDKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA5Nzc1MTE7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwOTc3NTExOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDk3Njg2MzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxMywgMC4wMDAxMywgMC4wMDAxMywgMC4wMDAxMywgMC4wMDAxMywgMC4wMDAxMywgMC4wMDAxMyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDMwOSwgMC4wMDAzMSwgMC4wMDAzMDksIDAuMDAwMzA5LCAwLjAwMDMwOSwgMC4wMDAzMDksIDAuMDAwMzA5Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMTMwMTExOwotICAgIGZ1bmN0aW9uIDogIighKCgoIUFOKStCKStDKSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkFOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDk4NjksIDAuMTU5MTc1LCAwLjQzODU2NywgMC42ODUwNzUsIDEuMDE0NjcsIDEuNjcyMTksIDIuMDgyMDkiLCBcCi0gICAgICAgICAgIjAuMTE3MzkxLCAwLjE2Njc4NCwgMC40NDY0NTEsIDAuNjkzMjYsIDEuMDIxMjQsIDEuNjc4NTIsIDIuMDkxNDYiLCBcCi0gICAgICAgICAgIjAuMTIzMzUxLCAwLjE3MjczNiwgMC40NTI1MzMsIDAuNjk4ODA3LCAxLjAyODA5LCAxLjY4NTcxLCAyLjA5NTI1IiwgXAotICAgICAgICAgICIwLjEyNzc4MSwgMC4xNzcxNTcsIDAuNDU2NzYxLCAwLjcwMjY4NCwgMS4wMzExNiwgMS42ODk1NCwgMi4xMDE1OSIsIFwKLSAgICAgICAgICAiMC4xMzEyNDksIDAuMTgwNTM5LCAwLjQ2MDEyNiwgMC43MDYyNjgsIDEuMDM0ODMsIDEuNjkzNDMsIDIuMTA1MTgiLCBcCi0gICAgICAgICAgIjAuMTM1OTUxLCAwLjE4NTIzOSwgMC40NjQ4MjksIDAuNzEwODQ4LCAxLjA0MDIxLCAxLjY5ODAyLCAyLjEwNjg0IiwgXAotICAgICAgICAgICIwLjEzOTUxNiwgMC4xODg4MDcsIDAuNDY4MTE5LCAwLjcxNDM3NCwgMS4wNDI4NCwgMS43MDA3MSwgMi4xMTEwNyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xOTU3MDQsIDAuMjk5NzQ5LCAwLjg4ODA5MSwgMS40MDcxLCAyLjEwMDM5LCAzLjQ4NjAyLCA0LjM0OTI0IiwgXAotICAgICAgICAgICIwLjE5NTc1NiwgMC4yOTkzMTMsIDAuODg4MSwgMS40MDc3NCwgMi4xMDAyMywgMy40ODM5OCwgNC4zNTE4IiwgXAotICAgICAgICAgICIwLjE5NTY1MywgMC4yOTkzMDQsIDAuODg4MTg3LCAxLjQwNjk2LCAyLjEwMDE4LCAzLjQ4NTk2LCA0LjM0OTcxIiwgXAotICAgICAgICAgICIwLjE5NTU5OCwgMC4yOTk3MDksIDAuODg3ODM5LCAxLjQwODU3LCAyLjEwMDY3LCAzLjQ4NDA3LCA0LjM1MTMyIiwgXAotICAgICAgICAgICIwLjE5NTUxNiwgMC4yOTk0NjIsIDAuODg3NzgzLCAxLjQwOTA3LCAyLjA5OTg1LCAzLjQ4NDY4LCA0LjM1MTQ2IiwgXAotICAgICAgICAgICIwLjE5NTUxNiwgMC4yOTkzMzQsIDAuODg3Nzc3LCAxLjQwODg0LCAyLjA5OTM2LCAzLjQ4NDY0LCA0LjM0OTk2IiwgXAotICAgICAgICAgICIwLjE5NTU2OCwgMC4yOTkyMjYsIDAuODg4ODg5LCAxLjQwODcsIDIuMTAwMDcsIDMuNDg0MDEsIDQuMzUwNzIiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDUxODcyLCAwLjA3MDExNiwgMC4xNzI4ODMsIDAuMjYzNDIxLCAwLjM4NDEsIDAuNjI1MjYyLCAwLjc3NjA0MyIsIFwKLSAgICAgICAgICAiMC4wNTkzNDcsIDAuMDc3NiwgMC4xODAzOSwgMC4yNzA5NzUsIDAuMzkxNjg3LCAwLjYzMzA2NywgMC43ODQwOTgiLCBcCi0gICAgICAgICAgIjAuMDY1ODQ5LCAwLjA4Mzk4LCAwLjE4Njc0MywgMC4yNzczODIsIDAuMzk3OTg4LCAwLjYzOTM3NSwgMC43OTA0NyIsIFwKLSAgICAgICAgICAiMC4wNzA1MTYsIDAuMDg4NjkyLCAwLjE5MTM5OSwgMC4yODE5MzksIDAuNDAyNjcxLCAwLjY0NDAyNiwgMC43OTQ4MDYiLCBcCi0gICAgICAgICAgIjAuMDc0MDM0LCAwLjA5MjM0MiwgMC4xOTUwMTEsIDAuMjg1NTU3LCAwLjQwNjI4MywgMC42NDc2MTEsIDAuNzk4NDcxIiwgXAotICAgICAgICAgICIwLjA3ODkzNSwgMC4wOTc0MTcsIDAuMjAwMTEyLCAwLjI5MDYxNCwgMC40MTEzMTMsIDAuNjUyODA2LCAwLjgwMzcwNiIsIFwKLSAgICAgICAgICAiMC4wODI4ODUsIDAuMTAxMDksIDAuMjAzOTU1LCAwLjI5NDQzNywgMC40MTUxMDYsIDAuNjU2NTE1LCAwLjgwNzM2NSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzM0MDYsIDAuMTEwMzU3LCAwLjMyMTA0MiwgMC41MDcxNjgsIDAuNzU1NTA2LCAxLjI1MTM1LCAxLjU2MTc5IiwgXAotICAgICAgICAgICIwLjA3MzQ4MSwgMC4xMTAzOSwgMC4zMjEwNzIsIDAuNTA3MTg0LCAwLjc1NTI4MSwgMS4yNTE5NiwgMS41NjE4NCIsIFwKLSAgICAgICAgICAiMC4wNzM4NjgsIDAuMTEwNjU4LCAwLjMyMTA2NiwgMC41MDc0MDIsIDAuNzU1MzYzLCAxLjI1MTgxLCAxLjU2MTk2IiwgXAotICAgICAgICAgICIwLjA3NDIxMSwgMC4xMTA4NSwgMC4zMjExMDMsIDAuNTA3MjMyLCAwLjc1NTMwMiwgMS4yNTE4LCAxLjU2MTc2IiwgXAotICAgICAgICAgICIwLjA3NDc0NSwgMC4xMTEwNTEsIDAuMzIxMjc1LCAwLjUwNzI1LCAwLjc1NTI5NSwgMS4yNTE3MywgMS41NjE3MyIsIFwKLSAgICAgICAgICAiMC4wNzUzNSwgMC4xMTE1MzgsIDAuMzIxMjYxLCAwLjUwNzE3OCwgMC43NTU2NTgsIDEuMjUxNTgsIDEuNTYxOTIiLCBcCi0gICAgICAgICAgIjAuMDc1NzkxLCAwLjExMTg3OSwgMC4zMjEzMzksIDAuNTA3MjI3LCAwLjc1NTM1MSwgMS4yNTE2MiwgMS41NjE2OCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTgwMzMsIDAuMTQ3NDQ4LCAwLjQyNjkwNSwgMC42NzI3NiwgMS4wMDIyMywgMS42NjA3NSwgMi4wNjk5NSIsIFwKLSAgICAgICAgICAiMC4xMDQxNDQsIDAuMTUzNTksIDAuNDMyOTc3LCAwLjY3OTU5MSwgMS4wMDg4OCwgMS42NjY0OSwgMi4wNzcwNyIsIFwKLSAgICAgICAgICAiMC4xMTE1MDIsIDAuMTYwODk3LCAwLjQ0MDQ1MiwgMC42ODY3NTksIDEuMDE1OTgsIDEuNjcxOTEsIDIuMDg2MDUiLCBcCi0gICAgICAgICAgIjAuMTE5MjA2LCAwLjE2ODQ4OSwgMC40NDc4MjUsIDAuNjk0NzY2LCAxLjAyMzc0LCAxLjY4MDQ0LCAyLjA5Mjc1IiwgXAotICAgICAgICAgICIwLjEyNjc3MiwgMC4xNzYwMjcsIDAuNDU1OTQ4LCAwLjcwMjM5LCAxLjAzMDYxLCAxLjY4OTIsIDIuMTAxMDEiLCBcCi0gICAgICAgICAgIjAuMTM5MzcxLCAwLjE4ODQxNCwgMC40Njc4NzQsIDAuNzE0Mjc4LCAxLjA0MzY1LCAxLjY5OTk1LCAyLjExMDg4IiwgXAotICAgICAgICAgICIwLjE0OTI2LCAwLjE5OTE4MywgMC40Nzg4MjEsIDAuNzI1MDIxLCAxLjA1NDQ5LCAxLjcxMTk2LCAyLjEyMTQ2Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE5NTc3MSwgMC4yOTkzMzcsIDAuODg4MjMyLCAxLjQwODAzLCAyLjA5OTM4LCAzLjQ4NTc1LCA0LjM0OTY5IiwgXAotICAgICAgICAgICIwLjE5NTQ4OSwgMC4yOTk0LCAwLjg4ODA2MiwgMS40MDcxLCAyLjEwMDU1LCAzLjQ4NTMsIDQuMzQ5NiIsIFwKLSAgICAgICAgICAiMC4xOTY1NDgsIDAuMjk5NDgsIDAuODg5Mjg4LCAxLjQwNzc5LCAyLjA5OTI0LCAzLjQ4NjM0LCA0LjM1MTg2IiwgXAotICAgICAgICAgICIwLjE5OTY5OSwgMC4zMDEyOSwgMC44ODc5OTQsIDEuNDA2OSwgMi4wOTk1OSwgMy40ODQ2OSwgNC4zNTE5NSIsIFwKLSAgICAgICAgICAiMC4yMDM4NjUsIDAuMzAzNjE1LCAwLjg4Nzc5MSwgMS40MDcwOSwgMi4wOTk2NCwgMy40ODQzOSwgNC4zNTEyNiIsIFwKLSAgICAgICAgICAiMC4yMTI0MTIsIDAuMzEwMDc2LCAwLjg4OTEzOCwgMS40MDc3MiwgMi4wOTkxNSwgMy40ODQ5NywgNC4zNDg5NyIsIFwKLSAgICAgICAgICAiMC4yMjA2MTYsIDAuMzE2NzczLCAwLjg5MDYxMywgMS40MDcxMSwgMi4xMDAwNSwgMy40ODQxMywgNC4zNTAxNiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzgyMjMsIDAuMDU2MzUzLCAwLjE1OTAyNywgMC4yNDk0NTksIDAuMzcwMjI5LCAwLjYxMTY2NSwgMC43NjIyMzgiLCBcCi0gICAgICAgICAgIjAuMDQ2NTc0LCAwLjA2NDcxLCAwLjE2NzMwNywgMC4yNTc5MDcsIDAuMzc4NDEyLCAwLjYxOTk3LCAwLjc3MDY1MyIsIFwKLSAgICAgICAgICAiMC4wNTcyODUsIDAuMDc1MzI4LCAwLjE3Nzg1MSwgMC4yNjgzNzcsIDAuMzg5MDc4LCAwLjYzMDI0MSwgMC43ODEyNSIsIFwKLSAgICAgICAgICAiMC4wNjc2NDUsIDAuMDg1OTczLCAwLjE4ODAwNiwgMC4yNzg1MSwgMC4zOTkzMTEsIDAuNjQwMjY4LCAwLjc5MTE4NCIsIFwKLSAgICAgICAgICAiMC4wNzYyNiwgMC4wOTY3NTEsIDAuMTk5MDE2LCAwLjI4OTAxLCAwLjQwOTU5OSwgMC42NTA5NzMsIDAuODAxMzU2IiwgXAotICAgICAgICAgICIwLjA4ODM1MSwgMC4xMTIzMzEsIDAuMjE1NTg1LCAwLjMwNjc4MywgMC40Mjc0MzQsIDAuNjY4NSwgMC44MTkzOTEiLCBcCi0gICAgICAgICAgIjAuMDk2ODA2LCAwLjEyMzEzMSwgMC4yMzA0OTMsIDAuMzIwNTc1LCAwLjQ0MTE0LCAwLjY4MjQ1NywgMC44MzMxNzQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDcwNDg5LCAwLjEwNzcyLCAwLjMxODczLCAwLjUwNDcxOCwgMC43NTI4NDcsIDEuMjQ4NzksIDEuNTU4OTkiLCBcCi0gICAgICAgICAgIjAuMDcxNzMsIDAuMTA4LCAwLjMxODczNCwgMC41MDQ3NTUsIDAuNzUyODQyLCAxLjI0OTA3LCAxLjU1ODQ5IiwgXAotICAgICAgICAgICIwLjA3NzkwNSwgMC4xMTIyMjgsIDAuMzE4NjcsIDAuNTA0NzQ3LCAwLjc1MjcxMSwgMS4yNDk0MywgMS41NTg4OSIsIFwKLSAgICAgICAgICAiMC4wODYyMjksIDAuMTE4OTYsIDAuMzE5OTQ4LCAwLjUwNDgzMywgMC43NTI5NTQsIDEuMjQ4ODgsIDEuNTU5IiwgXAotICAgICAgICAgICIwLjA5NTcwNywgMC4xMjcxMDEsIDAuMzIzMjE2LCAwLjUwNTQ3MiwgMC43NTI4MDksIDEuMjQ5MDEsIDEuNTU4OCIsIFwKLSAgICAgICAgICAiMC4xMTA2MjcsIDAuMTQxMDk3LCAwLjMzMTQ2MSwgMC41MDk0MTEsIDAuNzUzMTYyLCAxLjI0ODU0LCAxLjU1ODgzIiwgXAotICAgICAgICAgICIwLjEyMzMwNSwgMC4xNTQ2MTIsIDAuMzQwMjg5LCAwLjUxNTI1OSwgMC43NTU5MDcsIDEuMjQ4NzgsIDEuNTU4NTQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDkzODM0LCAwLjE0MzIwMywgMC40MjIzNDgsIDAuNjY4NzI5LCAwLjk5NzY2NywgMS42NTQ5NSwgMi4wNjQ0NyIsIFwKLSAgICAgICAgICAiMC4xMDA2NzUsIDAuMTUwMDg4LCAwLjQyOTE2NCwgMC42NzYxMTUsIDEuMDA1MjUsIDEuNjYzNzUsIDIuMDc0MzMiLCBcCi0gICAgICAgICAgIjAuMTA5ODM1LCAwLjE1OTI4OCwgMC40MzgxMTIsIDAuNjg1NTEzLCAxLjAxMzY4LCAxLjY3MTExLCAyLjA4MzEzIiwgXAotICAgICAgICAgICIwLjExOTIwNSwgMC4xNjgzNzgsIDAuNDQ3ODAyLCAwLjY5NDIyOCwgMS4wMjI0MSwgMS42ODAxNywgMi4wOTIzOSIsIFwKLSAgICAgICAgICAiMC4xMjgzMiwgMC4xNzczNDcsIDAuNDU2OTExLCAwLjcwMjk4LCAxLjAzMjcxLCAxLjY4OTI4LCAyLjA5OTUxIiwgXAotICAgICAgICAgICIwLjE0NDAxMSwgMC4xOTI1MTksIDAuNDcxMDY5LCAwLjcxNzA1MiwgMS4wNDU4NCwgMS43MDQ1NywgMi4xMTI4OSIsIFwKLSAgICAgICAgICAiMC4xNTY2NjEsIDAuMjA1ODg1LCAwLjQ4Mzc4LCAwLjcyOTc2MiwgMS4wNTg5OSwgMS43MTUyNiwgMi4xMjc5Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE5NTQ3OCwgMC4yOTkzMDMsIDAuODg4MDA0LCAxLjQwNzI5LCAyLjA5OTUsIDMuNDg0MjIsIDQuMzQ5OTQiLCBcCi0gICAgICAgICAgIjAuMTk1Njg0LCAwLjI5OTM2NCwgMC44ODgyODMsIDEuNDA3MTQsIDIuMDk5NiwgMy40ODU4NywgNC4zNTE5NSIsIFwKLSAgICAgICAgICAiMC4xOTcwNDIsIDAuMjk5MzU1LCAwLjg4NzQxNiwgMS40MDc4NCwgMi4wOTk5OCwgMy40ODU1MSwgNC4zNTAyIiwgXAotICAgICAgICAgICIwLjIwMTIxNCwgMC4zMDE2MzcsIDAuODg4MDQyLCAxLjQwNzA3LCAyLjEwMDgxLCAzLjQ4NTUyLCA0LjM1MDU2IiwgXAotICAgICAgICAgICIwLjIwNzM2MywgMC4zMDU2NzYsIDAuODg3Nzk2LCAxLjQwNzksIDIuMTAwMDgsIDMuNDg0MTYsIDQuMzUwODUiLCBcCi0gICAgICAgICAgIjAuMjE4NzgxLCAwLjMxNDMzMywgMC44ODkyMDYsIDEuNDA3NzUsIDIuMDk5MjcsIDMuNDg1MzksIDQuMzUxNjYiLCBcCi0gICAgICAgICAgIjAuMjI5NDY4LCAwLjMyMzUyNywgMC44ODk3MzIsIDEuNDA4NzcsIDIuMDk5NCwgMy40ODk4NiwgNC4zNTE4Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzNjU3MSwgMC4wNTQ2NzQsIDAuMTU3Mjc3LCAwLjI0NzczNiwgMC4zNjgzNzIsIDAuNjA5NzAxLCAwLjc2MDkxMiIsIFwKLSAgICAgICAgICAiMC4wNDQ5OTIsIDAuMDYzMTE4LCAwLjE2NTc3OSwgMC4yNTYyMzcsIDAuMzc2OTMxLCAwLjYxODMzMiwgMC43Njg5NTMiLCBcCi0gICAgICAgICAgIjAuMDU1NjE2LCAwLjA3MzcxNiwgMC4xNzYzNTQsIDAuMjY2ODI5LCAwLjM4NzU3OCwgMC42MjkzNDUsIDAuNzc5NjIyIiwgXAotICAgICAgICAgICIwLjA2NjEyOSwgMC4wODQzNTQsIDAuMTg2NDc3LCAwLjI3NzA1LCAwLjM5NzgxNCwgMC42Mzg3MjIsIDAuNzg5ODMiLCBcCi0gICAgICAgICAgIjAuMDc0NzcxLCAwLjA5NDk5LCAwLjE5NzA1NSwgMC4yODc1NTksIDAuNDA4MTI3LCAwLjY0OTQ3OSwgMC44MDAxNDQiLCBcCi0gICAgICAgICAgIjAuMDg1ODMzLCAwLjEwOTMyMiwgMC4yMTQyMTgsIDAuMzA0NDY4LCAwLjQyNTI0NCwgMC42NjY4NzIsIDAuODE3ODg0IiwgXAotICAgICAgICAgICIwLjA5MzkzOCwgMC4xMjAxNjgsIDAuMjI5MjQ1LCAwLjMxOTMzMSwgMC40Mzk4NzgsIDAuNjgxMTQ3LCAwLjgzMTk4OCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjg0NzUsIDAuMTA1OTMxLCAwLjMxNjcyLCAwLjUwMjcwNiwgMC43NTA4NzgsIDEuMjQ5OTEsIDEuNTU3MzUiLCBcCi0gICAgICAgICAgIjAuMDY5OTQyLCAwLjEwNjI1NiwgMC4zMTY2MjksIDAuNTAzNjY3LCAwLjc1MTA3NiwgMS4yNDc0NCwgMS41NTc0MSIsIFwKLSAgICAgICAgICAiMC4wNzYxMDksIDAuMTEwNTMxLCAwLjMxNjU4NCwgMC41MDI3NDEsIDAuNzUxMDQzLCAxLjI0Nzk1LCAxLjU2MDUxIiwgXAotICAgICAgICAgICIwLjA4NDEzNSwgMC4xMTcyNDcsIDAuMzE4NjI2LCAwLjUwMjgzNiwgMC43NTA4OTMsIDEuMjQ3NjMsIDEuNTU3NTIiLCBcCi0gICAgICAgICAgIjAuMDkzNTE3LCAwLjEyNTMxLCAwLjMyMjAxMiwgMC41MDMyMjMsIDAuNzUwODkzLCAxLjI0NzY3LCAxLjU1NzY5IiwgXAotICAgICAgICAgICIwLjEwOTA2NywgMC4xNDA5NTYsIDAuMzI5OTcxLCAwLjUwODQ5LCAwLjc1MTUwNiwgMS4yNDcxOSwgMS41NTkyMSIsIFwKLSAgICAgICAgICAiMC4xMjIxNDksIDAuMTU0MjI4LCAwLjMzODc0NCwgMC41MTM1NDQsIDAuNzU1NDc1LCAxLjI0OTQ5LCAxLjU1NzE4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQU4iOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzA3NCwgMC4wMDMwNzUsIDAuMDAzMDc2LCAwLjAwMzA3NiwgMC4wMDMwNzcsIDAuMDAzMDc2LCAwLjAwMzA3NyIsIFwKLSAgICAgICAgICAiMC4wMDMwOSwgMC4wMDMwOTMsIDAuMDAzMDk2LCAwLjAwMzA5NiwgMC4wMDMwOTYsIDAuMDAzMDk3LCAwLjAwMzA5NyIsIFwKLSAgICAgICAgICAiMC4wMDMxNjMsIDAuMDAzMTY2LCAwLjAwMzE3MSwgMC4wMDMxNzEsIDAuMDAzMTcyLCAwLjAwMzE3MywgMC4wMDMxNzIiLCBcCi0gICAgICAgICAgIjAuMDAzMjY1LCAwLjAwMzI2OCwgMC4wMDMyNzQsIDAuMDAzMjc1LCAwLjAwMzI3NiwgMC4wMDMyNzUsIDAuMDAzMjc1IiwgXAotICAgICAgICAgICIwLjAwMzM4NiwgMC4wMDMzOSwgMC4wMDM0MDMsIDAuMDAzNDA0LCAwLjAwMzQwNSwgMC4wMDM0MDQsIDAuMDAzNDA0IiwgXAotICAgICAgICAgICIwLjAwMzU5NiwgMC4wMDM2MTEsIDAuMDAzNjE0LCAwLjAwMzYxNSwgMC4wMDM2MTQsIDAuMDAzNjA0LCAwLjAwMzYxNCIsIFwKLSAgICAgICAgICAiMC4wMDM4MDUsIDAuMDAzNzkzLCAwLjAwMzgxLCAwLjAwMzgxOCwgMC4wMDM3OTYsIDAuMDAzNzk1LCAwLjAwMzc5NiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzAyLCAwLjAwMzAyMSwgMC4wMDMwMjEsIDAuMDAzMDIxLCAwLjAwMzAyMSwgMC4wMDMwMjEsIDAuMDAzMDIxIiwgXAotICAgICAgICAgICIwLjAwMzAzNywgMC4wMDMwMzcsIDAuMDAzMDM5LCAwLjAwMzAzOSwgMC4wMDMwMzgsIDAuMDAzMDM5LCAwLjAwMzAzOCIsIFwKLSAgICAgICAgICAiMC4wMDMxMDksIDAuMDAzMTEsIDAuMDAzMTExLCAwLjAwMzExMiwgMC4wMDMxMTEsIDAuMDAzMTExLCAwLjAwMzExMSIsIFwKLSAgICAgICAgICAiMC4wMDMyMTEsIDAuMDAzMjExLCAwLjAwMzIxMiwgMC4wMDMyMTIsIDAuMDAzMjEyLCAwLjAwMzIxMSwgMC4wMDMyMTIiLCBcCi0gICAgICAgICAgIjAuMDAzMzQzLCAwLjAwMzMzLCAwLjAwMzM0LCAwLjAwMzMzOSwgMC4wMDMzMzgsIDAuMDAzMzM5LCAwLjAwMzMzOCIsIFwKLSAgICAgICAgICAiMC4wMDM1NCwgMC4wMDM1NDIsIDAuMDAzNTQyLCAwLjAwMzU0MiwgMC4wMDM1MzUsIDAuMDAzNTQxLCAwLjAwMzU0MSIsIFwKLSAgICAgICAgICAiMC4wMDM3MjMsIDAuMDAzNzI5LCAwLjAwMzczLCAwLjAwMzcyOSwgMC4wMDM3MywgMC4wMDM3MjksIDAuMDAzNzE5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyNjYyLCAwLjAwMjY2NSwgMC4wMDI2NjksIDAuMDAyNjcxLCAwLjAwMjY3LCAwLjAwMjY3LCAwLjAwMjY3IiwgXAotICAgICAgICAgICIwLjAwMjYzNiwgMC4wMDI2NDYsIDAuMDAyNjYyLCAwLjAwMjY2NSwgMC4wMDI2NjcsIDAuMDAyNjY4LCAwLjAwMjY2OCIsIFwKLSAgICAgICAgICAiMC4wMDI2MjUsIDAuMDAyNjM1LCAwLjAwMjY1NCwgMC4wMDI2NTksIDAuMDAyNjYzLCAwLjAwMjY2NCwgMC4wMDI2NjYiLCBcCi0gICAgICAgICAgIjAuMDAyNjMyLCAwLjAwMjYzNywgMC4wMDI2NTMsIDAuMDAyNjU5LCAwLjAwMjY2MiwgMC4wMDI2NjYsIDAuMDAyNjY3IiwgXAotICAgICAgICAgICIwLjAwMjY1NSwgMC4wMDI2NTIsIDAuMDAyNjU3LCAwLjAwMjY2MiwgMC4wMDI2NjQsIDAuMDAyNjY2LCAwLjAwMjY2NyIsIFwKLSAgICAgICAgICAiMC4wMDI3MiwgMC4wMDI2OTcsIDAuMDAyNjc0LCAwLjAwMjY3MSwgMC4wMDI2NywgMC4wMDI2NywgMC4wMDI2NyIsIFwKLSAgICAgICAgICAiMC4wMDI3OTUsIDAuMDAyNzUyLCAwLjAwMjY5OCwgMC4wMDI2ODcsIDAuMDAyNjgyLCAwLjAwMjY3NywgMC4wMDI2NzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDAyNiwgMC4wMDAyNjIsIDAuMDAwMjY0LCAwLjAwMDI2NCwgMC4wMDAyNjQsIDAuMDAwMjY0LCAwLjAwMDI2NCIsIFwKLSAgICAgICAgICAiMC4wMDAyNDksIDAuMDAwMjU0LCAwLjAwMDI2MSwgMC4wMDAyNjIsIDAuMDAwMjYzLCAwLjAwMDI2NCwgMC4wMDAyNjQiLCBcCi0gICAgICAgICAgIjAuMDAwMjYzLCAwLjAwMDI2NCwgMC4wMDAyNjUsIDAuMDAwMjY1LCAwLjAwMDI2NSwgMC4wMDAyNjQsIDAuMDAwMjY0IiwgXAotICAgICAgICAgICIwLjAwMDMwOCwgMC4wMDAyOTMsIDAuMDAwMjg4LCAwLjAwMDI4MSwgMC4wMDAyNzYsIDAuMDAwMjcxLCAwLjAwMDI3IiwgXAotICAgICAgICAgICIwLjAwMDM3LCAwLjAwMDM0LCAwLjAwMDI5NSwgMC4wMDAyOTcsIDAuMDAwMjg4LCAwLjAwMDI3OSwgMC4wMDAyNzUiLCBcCi0gICAgICAgICAgIjAuMDAwNDU0LCAwLjAwMDQwMywgMC4wMDAzNjIsIDAuMDAwMzMzLCAwLjAwMDMxNCwgMC4wMDAyOTUsIDAuMDAwMjg5IiwgXAotICAgICAgICAgICIwLjAwMDU4NiwgMC4wMDA0OTMsIDAuMDAwNDE2LCAwLjAwMDM2OCwgMC4wMDAzMzksIDAuMDAwMzEzLCAwLjAwMDMwNCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjIxNiwgMC4wMDIyMiwgMC4wMDIyMjYsIDAuMDAyMjI2LCAwLjAwMjIyNywgMC4wMDIyMjgsIDAuMDAyMjI4IiwgXAotICAgICAgICAgICIwLjAwMjE5MSwgMC4wMDIyMDEsIDAuMDAyMjE3LCAwLjAwMjIyMSwgMC4wMDIyMjMsIDAuMDAyMjI1LCAwLjAwMjIyNSIsIFwKLSAgICAgICAgICAiMC4wMDIxOTMsIDAuMDAyMTk4LCAwLjAwMjIxMywgMC4wMDIyMTgsIDAuMDAyMjIxLCAwLjAwMjIyNCwgMC4wMDIyMjQiLCBcCi0gICAgICAgICAgIjAuMDAyMjI2LCAwLjAwMjIxOCwgMC4wMDIyMTcsIDAuMDAyMjIsIDAuMDAyMjIxLCAwLjAwMjIyMywgMC4wMDIyMjQiLCBcCi0gICAgICAgICAgIjAuMDAyMjkyLCAwLjAwMjI3LCAwLjAwMjIzMSwgMC4wMDIyMjksIDAuMDAyMjI4LCAwLjAwMjIyNywgMC4wMDIyMjciLCBcCi0gICAgICAgICAgIjAuMDAyNDA0LCAwLjAwMjM0OSwgMC4wMDIyNzEsIDAuMDAyMjU0LCAwLjAwMjI0NSwgMC4wMDIyMzgsIDAuMDAyMjM1IiwgXAotICAgICAgICAgICIwLjAwMjUyMywgMC4wMDI0NDMsIDAuMDAyMzE2LCAwLjAwMjI4MywgMC4wMDIyNjUsIDAuMDAyMjUsIDAuMDAyMjQ1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwMDE1LCAwLjAwMDAxLCAwLjAwMDAwNCwgMC4wMDAwMDMsIDAuMDAwMDAyLCAwLjAwMDAwMiwgMC4wMDAwMDIiLCBcCi0gICAgICAgICAgIjAuMDAwMDE1LCAwLjAwMDAwMywgMC4wMDAwMTQsIDAuMDAwMDE3LCAwLjAwMDAxOCwgMC4wMDAwMiwgMC4wMDAwMiIsIFwKLSAgICAgICAgICAiMC4wMDAwMDMsIDAuMDAwMDA1LCAwLjAwMDAxNiwgMC4wMDAwMiwgMC4wMDAwMjIsIDAuMDAwMDI0LCAwLjAwMDAyNCIsIFwKLSAgICAgICAgICAiMC4wMDAwMTYsIDAuMDAwMDI5LCAwLjAwMDAzNywgMC4wMDAwMzQsIDAuMDAwMDMyLCAwLjAwMDAzMywgMC4wMDAwMzMiLCBcCi0gICAgICAgICAgIjAuMDAwMDYxLCAwLjAwMDA3MSwgMC4wMDAwNTUsIDAuMDAwMDQ3LCAwLjAwMDA0MiwgMC4wMDAwMzcsIDAuMDAwMDM3IiwgXAotICAgICAgICAgICIwLjAwMDE2MiwgMC4wMDAxODMsIDAuMDAwMDkzLCAwLjAwMDA3MywgMC4wMDAwNjEsIDAuMDAwMDUzLCAwLjAwMDA0OCIsIFwKLSAgICAgICAgICAiMC4wMDAyODUsIDAuMDAwMjksIDAuMDAwMTM4LCAwLjAwMDEwMiwgMC4wMDAwODIsIDAuMDAwMDY0LCAwLjAwMDA1NyIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IE5PUjNCWDIgKgotICogLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoTk9SM0JYMikgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjUxNTg2MzsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQU4pICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY1NzU1MjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2NTc1NTI7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjU3NTI0OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTkxNywgMC4wMDE5MTEsIDAuMDAxOTc4LCAwLjAwMjA2OCwgMC4wMDIxODMsIDAuMDAyMzksIDAuMDAyNTY5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzMjIxLCAwLjAwMzIxOSwgMC4wMDMyNzcsIDAuMDAzMzY2LCAwLjAwMzQ4MSwgMC4wMDM3MTEsIDAuMDAzOSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxODU0NDY7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxODQ3NDU7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxODU0NDY7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzU2LCAwLjAwMDM1NiwgMC4wMDAzNTYsIDAuMDAwMzU3LCAwLjAwMDM1NywgMC4wMDAzNTYsIDAuMDAwMzU2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwODA3LCAwLjAwMDgwNywgMC4wMDA4MDYsIDAuMDAwODA2LCAwLjAwMDgwNiwgMC4wMDA4MDYsIDAuMDAwODA2Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihDKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE2NjM3MTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE2NjM3MTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE2NjMzOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDI2NCwgMC4wMDAyNjQsIDAuMDAwMjY0LCAwLjAwMDI2NCwgMC4wMDAyNjQsIDAuMDAwMjY0LCAwLjAwMDI2NCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDY3OCwgMC4wMDA2NzgsIDAuMDAwNjc4LCAwLjAwMDY3OCwgMC4wMDA2NzgsIDAuMDAwNjc3LCAwLjAwMDY3NyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjI1MzczOTsKLSAgICBmdW5jdGlvbiA6ICIoISgoKCFBTikrQikrQykpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc2OTU0LCAwLjI4MjA2MywgMC40NDU3NjIsIDAuNjUwOTQ3LCAwLjg1NTQ5NCwgMS4wNTk3LCAxLjI2NDc1IiwgXAotICAgICAgICAgICIwLjA4NTE0NSwgMC4yODk5MTIsIDAuNDUzODgsIDAuNjU4NzkyLCAwLjg2Mzg4NywgMS4wNjk1NywgMS4yNzMzNiIsIFwKLSAgICAgICAgICAiMC4wOTM0NjYsIDAuMjk4NzM5LCAwLjQ2MjI2MSwgMC42Njc3ODcsIDAuODcxNzA0LCAxLjA3NzA2LCAxLjI4MjI2IiwgXAotICAgICAgICAgICIwLjA5OTgwMywgMC4zMDQ3ODgsIDAuNDY4NTk0LCAwLjY3MzUwOSwgMC44Nzg5NiwgMS4wODI3LCAxLjI4OTE0IiwgXAotICAgICAgICAgICIwLjEwNDgzNywgMC4zMDk4NjUsIDAuNDczODgxLCAwLjY3ODQ1MywgMC44ODMyMDQsIDEuMDg5MiwgMS4yOTIyNyIsIFwKLSAgICAgICAgICAiMC4xMTE2MjUsIDAuMzE2NDYxLCAwLjQ4MDY1NSwgMC42ODUzNzEsIDAuODkwMTQzLCAxLjA5NDQyLCAxLjI5OTQ2IiwgXAotICAgICAgICAgICIwLjExNjU3MSwgMC4zMjEzNywgMC40ODUyNCwgMC42OTA0ODIsIDAuODk1MzIxLCAxLjEwMDUsIDEuMzA0MzkiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTEwNjk2LCAwLjU0MTQwMywgMC44ODYxMzYsIDEuMzE3MjYsIDEuNzQ4ODgsIDIuMTgyMTMsIDIuNjEwNjUiLCBcCi0gICAgICAgICAgIjAuMTEwNjY1LCAwLjU0MTM2MiwgMC44ODc1MjUsIDEuMzE3NjksIDEuNzQ4NzUsIDIuMTgwMiwgMi42MTAyNSIsIFwKLSAgICAgICAgICAiMC4xMTA3MjEsIDAuNTQxNDYzLCAwLjg4NjQzOCwgMS4zMTc2NywgMS43NDg4MSwgMi4xNzkxLCAyLjYxMDI1IiwgXAotICAgICAgICAgICIwLjExMDg3OCwgMC41NDIxNzIsIDAuODg3NDU2LCAxLjMxNzA4LCAxLjc0ODUsIDIuMTgwNjQsIDIuNjExMTMiLCBcCi0gICAgICAgICAgIjAuMTExMDMyLCAwLjU0MjE5NiwgMC44ODY1NDEsIDEuMzE5MywgMS43NTA5OCwgMi4xNzk5OSwgMi42MTI0OCIsIFwKLSAgICAgICAgICAiMC4xMTE0NDksIDAuNTQxMzU5LCAwLjg4NjE2LCAxLjMxNzMsIDEuNzQ4MTgsIDIuMTc5OTEsIDIuNjEwNTMiLCBcCi0gICAgICAgICAgIjAuMTExODA4LCAwLjU0MTMyMiwgMC44ODcwNzMsIDEuMzE3MTEsIDEuNzQ4MDgsIDIuMTc5MjksIDIuNjE0MzIiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQ2Mjg3LCAwLjEyMjU1OCwgMC4xODMwMDEsIDAuMjU4NDczLCAwLjMzMzkwNiwgMC40MDkzNDMsIDAuNDg0Nzk0IiwgXAotICAgICAgICAgICIwLjA1NDMzOSwgMC4xMzA1NTYsIDAuMTkxMDA0LCAwLjI2NjUxNCwgMC4zNDIwMDIsIDAuNDE3NDYzLCAwLjQ5Mjk0MiIsIFwKLSAgICAgICAgICAiMC4wNjI5NzUsIDAuMTM5MTg1LCAwLjE5OTYzMywgMC4yNzUwOTYsIDAuMzUwNjA3LCAwLjQyNjEzMiwgMC41MDE0MTQiLCBcCi0gICAgICAgICAgIjAuMDY5OTEsIDAuMTQ2MTc2LCAwLjIwNjYwNSwgMC4yODIwNDcsIDAuMzU3NTE4LCAwLjQzMzAzMywgMC41MDg0NjMiLCBcCi0gICAgICAgICAgIjAuMDc1MjAzLCAwLjE1MTUzOSwgMC4yMTE5MDYsIDAuMjg3MzY3LCAwLjM2MjgzMSwgMC40MzgyNzgsIDAuNTEzODA5IiwgXAotICAgICAgICAgICIwLjA4MjQ0MywgMC4xNTg3MDgsIDAuMjE5MDQ3LCAwLjI5NDQ3LCAwLjM2OTkwNSwgMC40NDUzMjQsIDAuNTIwOTAzIiwgXAotICAgICAgICAgICIwLjA4NzQzMywgMC4xNjQwMywgMC4yMjQzOTYsIDAuMjk5ODA2LCAwLjM3NTIyLCAwLjQ1MDY3NiwgMC41MjYwNzQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQ1NjY3LCAwLjE5ODQ1OCwgMC4zMjIzMjUsIDAuNDc3NDY2LCAwLjYzMjYwNCwgMC43ODc2NjIsIDAuOTQyODI4IiwgXAotICAgICAgICAgICIwLjA0NTY3LCAwLjE5ODQ3MywgMC4zMjIzMjEsIDAuNDc3Mzg5LCAwLjYzMjc1NCwgMC43ODc4MjcsIDAuOTQzMDU2IiwgXAotICAgICAgICAgICIwLjA0NjQxOCwgMC4xOTg1NTksIDAuMzIyMzkxLCAwLjQ3NzQ2OCwgMC42MzI3MTUsIDAuNzg3ODUyLCAwLjk0Mjg2MSIsIFwKLSAgICAgICAgICAiMC4wNDczMzIsIDAuMTk4Nzg5LCAwLjMyMjM5MiwgMC40Nzc0NDMsIDAuNjMyNTk4LCAwLjc4NzgxNywgMC45NDI3OTkiLCBcCi0gICAgICAgICAgIjAuMDQ4MzU3LCAwLjE5ODk3OSwgMC4zMjI0NzEsIDAuNDc3NDg5LCAwLjYzMjU3MSwgMC43ODc2NTcsIDAuOTQzMTIzIiwgXAotICAgICAgICAgICIwLjA0OTY5NSwgMC4xOTkzNjMsIDAuMzIyNjEsIDAuNDc3NTY2LCAwLjYzMjY5LCAwLjc4NzgxMiwgMC45NDMyNDYiLCBcCi0gICAgICAgICAgIjAuMDUxMjc3LCAwLjE5OTYsIDAuMzIyODEzLCAwLjQ3NzU0OSwgMC42MzI3MDksIDAuNzg3OSwgMC45NDMwODMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU3OTU0LCAwLjI2Mjc4MiwgMC40MjY2ODMsIDAuNjMyMDA1LCAwLjgzNjM2MywgMS4wNDE3NywgMS4yNDY3MiIsIFwKLSAgICAgICAgICAiMC4wNjQwNDQsIDAuMjY5MTM4LCAwLjQzMzQ4MSwgMC42Mzc3OTksIDAuODQzNjIsIDEuMDQ3NTgsIDEuMjUyNzYiLCBcCi0gICAgICAgICAgIjAuMDcxMzk2LCAwLjI3NjU1MSwgMC40NDA0OTgsIDAuNjQ1NzM2LCAwLjg0OTk1OCwgMS4wNTQ5NSwgMS4yNjA1NiIsIFwKLSAgICAgICAgICAiMC4wNzkwMjgsIDAuMjg0MjE1LCAwLjQ0ODA3OSwgMC42NTMwMTMsIDAuODU3NTQyLCAxLjA2MzU4LCAxLjI2Nzc1IiwgXAotICAgICAgICAgICIwLjA4NTk4OCwgMC4yOTE4MDQsIDAuNDU1OTI1LCAwLjY2MTE5NSwgMC44NjU2MDMsIDEuMDcwMTUsIDEuMjc2MyIsIFwKLSAgICAgICAgICAiMC4wOTU4ODUsIDAuMzAzODEzLCAwLjQ2ODQ5OCwgMC42NzMzNjcsIDAuODc3NjEsIDEuMDgyNTQsIDEuMjg4MjMiLCBcCi0gICAgICAgICAgIjAuMTAzMzY3LCAwLjMxNDk2OCwgMC40Nzg3MiwgMC42ODM0OSwgMC44ODgzMDIsIDEuMDkyNzksIDEuMjk4MDIiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTEwNjA2LCAwLjU0MjExNywgMC44ODc2MzksIDEuMzE3MTcsIDEuNzQ4MjEsIDIuMTgwNCwgMi42MTA0NSIsIFwKLSAgICAgICAgICAiMC4xMTA4NDEsIDAuNTQyMTgzLCAwLjg4NjY4NiwgMS4zMTkyNiwgMS43NDg5NiwgMi4xNzkyMywgMi42MDk5NSIsIFwKLSAgICAgICAgICAiMC4xMTM2MjksIDAuNTQyMTc5LCAwLjg4NzYyNywgMS4zMTcyNCwgMS43NDg3MiwgMi4xNzk4NCwgMi42MTAzNiIsIFwKLSAgICAgICAgICAiMC4xMTgzNCwgMC41NDE2MjIsIDAuODg2NzM1LCAxLjMxOTMxLCAxLjc0ODg3LCAyLjE3OTY2LCAyLjYxMDI2IiwgXAotICAgICAgICAgICIwLjEyNDAyNywgMC41NDI1OSwgMC44ODYyNTcsIDEuMzE3MzMsIDEuNzQ4ODEsIDIuMTgyNTksIDIuNjExNjEiLCBcCi0gICAgICAgICAgIjAuMTM0NTcyLCAwLjU0NDc4OSwgMC44ODY2MDcsIDEuMzE3MDQsIDEuNzQ4MTcsIDIuMTc5MTcsIDIuNjExNTUiLCBcCi0gICAgICAgICAgIjAuMTQ0MDQsIDAuNTQ5MzQyLCAwLjg4ODg1LCAxLjMxNzQ2LCAxLjc1MDQ0LCAyLjE4MDcsIDIuNjE0NCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjM1MjIsIDAuMDk5MTM0LCAwLjE1OTQ5MywgMC4yMzQ5MiwgMC4zMTA1MDgsIDAuMzg1Nzg0LCAwLjQ2MTM0NSIsIFwKLSAgICAgICAgICAiMC4wMzE5MTEsIDAuMTA3NDc5LCAwLjE2Nzg0NiwgMC4yNDMzNDYsIDAuMzE4Nzc3LCAwLjM5NDE5OSwgMC40Njk1NTUiLCBcCi0gICAgICAgICAgIjAuMDQyMTA4LCAwLjExODAxNiwgMC4xNzg0OTIsIDAuMjU0MDI3LCAwLjMyOTM2NSwgMC40MDQ4MDEsIDAuNDgwNDMiLCBcCi0gICAgICAgICAgIjAuMDQ5OTE3LCAwLjEyODYyMiwgMC4xODg5MTEsIDAuMjY0MzAxLCAwLjMzOTQyOCwgMC40MTQ4MjQsIDAuNDkwMjc4IiwgXAotICAgICAgICAgICIwLjA1NjE2NCwgMC4xMzkzOTUsIDAuMTk5NTQ5LCAwLjI3NDg4MSwgMC4zNDg4NTEsIDAuNDI1OTMzLCAwLjUwMTE4MSIsIFwKLSAgICAgICAgICAiMC4wNjQzNjIsIDAuMTU2MDY2LCAwLjIxNjEyMSwgMC4yOTEzMywgMC4zNjY3MzcsIDAuNDQyMjM2LCAwLjUxODQwNCIsIFwKLSAgICAgICAgICAiMC4wNzA2LCAwLjE3MTA4OSwgMC4yMzEwMzMsIDAuMzA2MTEsIDAuMzgxNDYsIDAuNDU2ODc3LCAwLjUzMjM2NCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDAyODcsIDAuMTk1NDk1LCAwLjMxOTU4OCwgMC40NzQ3MTcsIDAuNjMwMDUyLCAwLjc4NDk1NywgMC45NDAyMzEiLCBcCi0gICAgICAgICAgIjAuMDQzMjA3LCAwLjE5NTQyOCwgMC4zMTk2MTEsIDAuNDc0Nzc0LCAwLjYyOTg0MywgMC43ODQ3NjksIDAuOTQwMTMiLCBcCi0gICAgICAgICAgIjAuMDUxMjk5LCAwLjE5NjUzNCwgMC4zMTk1MzksIDAuNDc0OTIzLCAwLjYyOTg4NywgMC43ODUwNDIsIDAuOTQwMjY0IiwgXAotICAgICAgICAgICIwLjA2MDc4NywgMC4yMDA2MzQsIDAuMzIwNzkyLCAwLjQ3NDYxNSwgMC42Mjk5MTQsIDAuNzg1MDA0LCAwLjk0MDE3NSIsIFwKLSAgICAgICAgICAiMC4wNzAwMzQsIDAuMjA2Mzk5LCAwLjMyNDExMSwgMC40NzU1NzgsIDAuNjI5OTQxLCAwLjc4NTEzNCwgMC45Mzk5NDEiLCBcCi0gICAgICAgICAgIjAuMDgzNTI0LCAwLjIxODIwMiwgMC4zMzIzMjQsIDAuNDgwMzkyLCAwLjYzMTg1LCAwLjc4NTEzNSwgMC45NDAwNjciLCBcCi0gICAgICAgICAgIjAuMDkzNDc5LCAwLjIyOTg5MywgMC4zNDEwOTEsIDAuNDg2NjA4LCAwLjYzNTc4OSwgMC43ODc0MzQsIDAuOTQwNzQ3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1MzAyMiwgMC4yNTc5NDMsIDAuNDIyMzY1LCAwLjYyNzEzNiwgMC44MzEyODIsIDEuMDM2ODYsIDEuMjQwNDIiLCBcCi0gICAgICAgICAgIjAuMDU5OTQxLCAwLjI2NTA3MSwgMC40MjkyOTMsIDAuNjMzNjEzLCAwLjgzODQ4MSwgMS4wNDM1MiwgMS4yNDg5MSIsIFwKLSAgICAgICAgICAiMC4wNjkyNjMsIDAuMjc0MDgsIDAuNDM3OTcsIDAuNjQyNzQzLCAwLjg0NzE2NCwgMS4wNTI4NywgMS4yNTgwOSIsIFwKLSAgICAgICAgICAiMC4wNzg3MjYsIDAuMjgzMTgsIDAuNDQ3MjQyLCAwLjY1MTk0MywgMC44NTY2NjUsIDEuMDYxMDgsIDEuMjY3MTgiLCBcCi0gICAgICAgICAgIjAuMDg4MTIzLCAwLjI5MjYwMywgMC40NTYwODMsIDAuNjYwOTg3LCAwLjg2NTY1MSwgMS4wNzAxNCwgMS4yNzQ4MSIsIFwKLSAgICAgICAgICAiMC4xMDAwMTgsIDAuMzA2ODE3LCAwLjQ3MDU5MiwgMC42NzUzNzYsIDAuODc5OTM4LCAxLjA4NDIxLCAxLjI4OTM3IiwgXAotICAgICAgICAgICIwLjEwOTA3NiwgMC4zMTk4NzgsIDAuNDgzMTc3LCAwLjY4NzY5MywgMC44OTIxMjMsIDEuMDk3MywgMS4zMDE4OSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTA0MjEsIDAuNTQyMTk3LCAwLjg4NjY0NCwgMS4zMTc0MiwgMS43NDg0NSwgMi4xNzkyOSwgMi42MTMzNSIsIFwKLSAgICAgICAgICAiMC4xMTA3MTcsIDAuNTQyMjU3LCAwLjg4NjY3MywgMS4zMTc4MywgMS43NTEsIDIuMTc5OTUsIDIuNjEwMjEiLCBcCi0gICAgICAgICAgIjAuMTE1MTY3LCAwLjU0MTk4NywgMC44ODY1NTMsIDEuMzE5MjMsIDEuNzQ5NjgsIDIuMTc5MDYsIDIuNjEwMzciLCBcCi0gICAgICAgICAgIjAuMTIxOTU3LCAwLjU0MTUwMywgMC44ODYxLCAxLjMxNzE2LCAxLjc0ODIxLCAyLjE4MjUyLCAyLjYxMDczIiwgXAotICAgICAgICAgICIwLjEyOTYwMiwgMC41NDE5NDgsIDAuODg3MjkyLCAxLjMxNzA2LCAxLjc1MTAxLCAyLjE4MjAyLCAyLjYxMjkzIiwgXAotICAgICAgICAgICIwLjE0MzAzNCwgMC41NDY0MDYsIDAuODg2Mjk3LCAxLjMxNzEzLCAxLjc0ODE4LCAyLjE4MTYyLCAyLjYwOTk2IiwgXAotICAgICAgICAgICIwLjE1NDkyOCwgMC41NTE4NjksIDAuODg4MDIyLCAxLjMxODk3LCAxLjc0OTY1LCAyLjE3OTE4LCAyLjYwOTg0Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyMTkwMiwgMC4wOTc3OTcsIDAuMTU4NDA2LCAwLjIzNDE5LCAwLjMwOTk4NCwgMC4zODU5NDQsIDAuNDYxNzA5IiwgXAotICAgICAgICAgICIwLjAzMDM2MiwgMC4xMDYyMzMsIDAuMTY2ODU1LCAwLjI0MjY3LCAwLjMxODQ2OSwgMC4zOTQyNywgMC40NzAyMTYiLCBcCi0gICAgICAgICAgIjAuMDQwMzEzLCAwLjExNjYyMywgMC4xNzc0OTIsIDAuMjUzMDU2LCAwLjMyODg0MSwgMC40MDQ2NjgsIDAuNDgwNjMxIiwgXAotICAgICAgICAgICIwLjA0NzM4NiwgMC4xMjc0NjUsIDAuMTg4MDc1LCAwLjI2MzgyMSwgMC4zMzk2ODUsIDAuNDE1NTU2LCAwLjQ5MTI0MyIsIFwKLSAgICAgICAgICAiMC4wNTMzMTUsIDAuMTM3NzYsIDAuMTk4MTc1LCAwLjI3Mzg3NywgMC4zNDgxNzMsIDAuNDI1NDg2LCAwLjUwMTIyMSIsIFwKLSAgICAgICAgICAiMC4wNjA5ODEsIDAuMTU0ODg5LCAwLjIxNTI5NSwgMC4yOTE1MywgMC4zNjcxMjUsIDAuNDQyOTQ0LCAwLjUxODcyMSIsIFwKLSAgICAgICAgICAiMC4wNjY1NzgsIDAuMTY5OTA5LCAwLjIzMDI4NiwgMC4zMDU3NjIsIDAuMzgxNDIyLCAwLjQ1NzIwMiwgMC41MzMwNjEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM4NjMyLCAwLjE5NTkyNiwgMC4zMjE4OTMsIDAuNDgwMTExLCAwLjYzNjc0NywgMC43OTQ4MzEsIDAuOTUxNDU2IiwgXAotICAgICAgICAgICIwLjA0MTY0NSwgMC4xOTU5NzYsIDAuMzIxODAzLCAwLjQ3OTkyOSwgMC42MzcwMjUsIDAuNzkzNzM0LCAwLjk1MTQzNSIsIFwKLSAgICAgICAgICAiMC4wNDk5OTgsIDAuMTk3MzgyLCAwLjMyMTg0NiwgMC40NzkxMTcsIDAuNjM3MDQzLCAwLjc5NDA0NCwgMC45NTEyODYiLCBcCi0gICAgICAgICAgIjAuMDU5OTM0LCAwLjIwMTI3NCwgMC4zMjM2MzcsIDAuNDc5MjQ5LCAwLjYzNjM5OCwgMC43OTQzMDIsIDAuOTUxNTM1IiwgXAotICAgICAgICAgICIwLjA2ODgzNSwgMC4yMDcyNDQsIDAuMzI3MDg1LCAwLjQ4MDQ2NywgMC42MzcwNTUsIDAuNzkzNjYyLCAwLjk1MTE4OSIsIFwKLSAgICAgICAgICAiMC4wODE3NDgsIDAuMjE4NTMsIDAuMzM0OTQ0LCAwLjQ4NTY0MiwgMC42Mzk1NTUsIDAuNzk1NDgzLCAwLjk1MTA1OCIsIFwKLSAgICAgICAgICAiMC4wOTE4NzcsIDAuMjMwMDQ3LCAwLjM0MzY5MywgMC40OTExODMsIDAuNjQzMjk1LCAwLjc5NjA4OSwgMC45NTE5NjgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2MzE5LCAwLjAwNjM0MywgMC4wMDYzNDYsIDAuMDA2MzQ3LCAwLjAwNjM0NiwgMC4wMDYzNSwgMC4wMDYzNDgiLCBcCi0gICAgICAgICAgIjAuMDA2MzA4LCAwLjAwNjM0MiwgMC4wMDYzNDUsIDAuMDA2MzQ4LCAwLjAwNjM0OSwgMC4wMDYzNDksIDAuMDA2MzQ4IiwgXAotICAgICAgICAgICIwLjAwNjM3MywgMC4wMDY0MTMsIDAuMDA2NDE5LCAwLjAwNjQyMywgMC4wMDY0MjUsIDAuMDA2NDI2LCAwLjAwNjQyNiIsIFwKLSAgICAgICAgICAiMC4wMDY0MzMsIDAuMDA2NDc4LCAwLjAwNjQ4NSwgMC4wMDY0ODgsIDAuMDA2NDksIDAuMDA2NDg5LCAwLjAwNjQ5MSIsIFwKLSAgICAgICAgICAiMC4wMDY1MzUsIDAuMDA2NTc5LCAwLjAwNjU4NiwgMC4wMDY1OSwgMC4wMDY1OSwgMC4wMDY1OTMsIDAuMDA2NTkxIiwgXAotICAgICAgICAgICIwLjAwNjcxOCwgMC4wMDY3NiwgMC4wMDY3NjEsIDAuMDA2NzczLCAwLjAwNjc3NSwgMC4wMDY3NjYsIDAuMDA2Nzc3IiwgXAotICAgICAgICAgICIwLjAwNjg5LCAwLjAwNjkyOCwgMC4wMDY5NDQsIDAuMDA2OTM3LCAwLjAwNjk0OSwgMC4wMDY5NDMsIDAuMDA2OTUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDU4MzEsIDAuMDA1ODMzLCAwLjAwNTgzMSwgMC4wMDU4MzQsIDAuMDA1ODM0LCAwLjAwNTgzMywgMC4wMDU4MzMiLCBcCi0gICAgICAgICAgIjAuMDA1ODIyLCAwLjAwNTgzMiwgMC4wMDU4MzMsIDAuMDA1ODM0LCAwLjAwNTgzNCwgMC4wMDU4MzQsIDAuMDA1ODM0IiwgXAotICAgICAgICAgICIwLjAwNTg5OCwgMC4wMDU5MDMsIDAuMDA1OTA1LCAwLjAwNTkwNSwgMC4wMDU5MDUsIDAuMDA1OTA1LCAwLjAwNTkwNSIsIFwKLSAgICAgICAgICAiMC4wMDU5OCwgMC4wMDU5NzUsIDAuMDA1OTc3LCAwLjAwNTk3NSwgMC4wMDU5NzUsIDAuMDA1OTc0LCAwLjAwNTk3NCIsIFwKLSAgICAgICAgICAiMC4wMDYwOTgsIDAuMDA2MDc3LCAwLjAwNjA3NSwgMC4wMDYwNzUsIDAuMDA2MDczLCAwLjAwNjA3MywgMC4wMDYwNzMiLCBcCi0gICAgICAgICAgIjAuMDA2MjczLCAwLjAwNjI2OSwgMC4wMDYyNjEsIDAuMDA2MjU4LCAwLjAwNjI1NiwgMC4wMDYyNTUsIDAuMDA2MjUzIiwgXAotICAgICAgICAgICIwLjAwNjQ4NCwgMC4wMDY0MjcsIDAuMDA2NDE4LCAwLjAwNjQxNSwgMC4wMDY0MTQsIDAuMDA2NDEzLCAwLjAwNjQxMSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNTUyMSwgMC4wMDU1NDQsIDAuMDA1NTQ3LCAwLjAwNTU0OCwgMC4wMDU1NDgsIDAuMDA1NTQ5LCAwLjAwNTU0OSIsIFwKLSAgICAgICAgICAiMC4wMDU0NDgsIDAuMDA1NTIxLCAwLjAwNTUzMiwgMC4wMDU1MzgsIDAuMDA1NTQsIDAuMDA1NTQyLCAwLjAwNTU0MyIsIFwKLSAgICAgICAgICAiMC4wMDU0MjksIDAuMDA1NTAyLCAwLjAwNTUxOSwgMC4wMDU1MjgsIDAuMDA1NTMzLCAwLjAwNTUzNiwgMC4wMDU1MzkiLCBcCi0gICAgICAgICAgIjAuMDA1NDU5LCAwLjAwNTQ5OSwgMC4wMDU1MTQsIDAuMDA1NTI0LCAwLjAwNTUzLCAwLjAwNTUzNSwgMC4wMDU1MzYiLCBcCi0gICAgICAgICAgIjAuMDA1NTI4LCAwLjAwNTUxMiwgMC4wMDU1MiwgMC4wMDU1MjgsIDAuMDA1NTMyLCAwLjAwNTUzNywgMC4wMDU1MzYiLCBcCi0gICAgICAgICAgIjAuMDA1NzA5LCAwLjAwNTU2LCAwLjAwNTU1MSwgMC4wMDU1NDgsIDAuMDA1NTQ1LCAwLjAwNTU0NywgMC4wMDU1NDciLCBcCi0gICAgICAgICAgIjAuMDA1OTEsIDAuMDA1NjI4LCAwLjAwNTU5NSwgMC4wMDU1NzgsIDAuMDA1NTY5LCAwLjAwNTU2NSwgMC4wMDU1NjMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDA4MiwgMC4wMDA4MzMsIDAuMDAwODM0LCAwLjAwMDgzNCwgMC4wMDA4MzUsIDAuMDAwODM1LCAwLjAwMDgzNSIsIFwKLSAgICAgICAgICAiMC4wMDA3ODUsIDAuMDAwODIsIDAuMDAwODI1LCAwLjAwMDgyOCwgMC4wMDA4MjksIDAuMDAwODMsIDAuMDAwODMiLCBcCi0gICAgICAgICAgIjAuMDAwODI4LCAwLjAwMDgzMiwgMC4wMDA4MywgMC4wMDA4MzEsIDAuMDAwODMyLCAwLjAwMDgzMiwgMC4wMDA4MzIiLCBcCi0gICAgICAgICAgIjAuMDAwOTIzLCAwLjAwMDg2NywgMC4wMDA4NTUsIDAuMDAwODUxLCAwLjAwMDg1OSwgMC4wMDA4NTQsIDAuMDAwODUxIiwgXAotICAgICAgICAgICIwLjAwMTA5NSwgMC4wMDA5MjQsIDAuMDAwODk0LCAwLjAwMDg3NCwgMC4wMDA4NjEsIDAuMDAwODYsIDAuMDAwODU2IiwgXAotICAgICAgICAgICIwLjAwMTQyNCwgMC4wMDExMiwgMC4wMDEwMjYsIDAuMDAwOTcxLCAwLjAwMDk0MiwgMC4wMDA5MjQsIDAuMDAwOTEzIiwgXAotICAgICAgICAgICIwLjAwMTY3NSwgMC4wMDEyODEsIDAuMDAxMTM0LCAwLjAwMTA1MSwgMC4wMDEwMDUsIDAuMDAwOTc2LCAwLjAwMDk1NyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDU4NiwgMC4wMDQ2MiwgMC4wMDQ2MjMsIDAuMDA0NjI0LCAwLjAwNDYyNSwgMC4wMDQ2MjYsIDAuMDA0NjI2IiwgXAotICAgICAgICAgICIwLjAwNDUyMiwgMC4wMDQ1OTQsIDAuMDA0NjA2LCAwLjAwNDYxMywgMC4wMDQ2MTYsIDAuMDA0NjE5LCAwLjAwNDYxOSIsIFwKLSAgICAgICAgICAiMC4wMDQ1NjIsIDAuMDA0NTg3LCAwLjAwNDU5OSwgMC4wMDQ2MDcsIDAuMDA0NjEyLCAwLjAwNDYxNSwgMC4wMDQ2MTYiLCBcCi0gICAgICAgICAgIjAuMDA0NjgzLCAwLjAwNDYxMiwgMC4wMDQ2MTMsIDAuMDA0NjE1LCAwLjAwNDYxNiwgMC4wMDQ2MTgsIDAuMDA0NjE5IiwgXAotICAgICAgICAgICIwLjAwNDgzNywgMC4wMDQ2NTUsIDAuMDA0NjM4LCAwLjAwNDYzMiwgMC4wMDQ2MjksIDAuMDA0NjMsIDAuMDA0NjMxIiwgXAotICAgICAgICAgICIwLjAwNTE3NCwgMC4wMDQ3NzYsIDAuMDA0NzE3LCAwLjAwNDY4NiwgMC4wMDQ2NjksIDAuMDA0NjYxLCAwLjAwNDY1NSIsIFwKLSAgICAgICAgICAiMC4wMDU0OTUsIDAuMDA0OTA3LCAwLjAwNDgwNiwgMC4wMDQ3NDksIDAuMDA0NzE2LCAwLjAwNDcwMSwgMC4wMDQ2ODciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDAwOTQsIDAuMDAwMTMxLCAwLjAwMDEzNSwgMC4wMDAxMzcsIDAuMDAwMTM4LCAwLjAwMDEzOCwgMC4wMDAxMzkiLCBcCi0gICAgICAgICAgIjAuMDAwMDcyLCAwLjAwMDE2LCAwLjAwMDE3MiwgMC4wMDAxNzksIDAuMDAwMTgyLCAwLjAwMDE4NCwgMC4wMDAxODUiLCBcCi0gICAgICAgICAgIjAuMDAwMDk0LCAwLjAwMDE3OCwgMC4wMDAxNzksIDAuMDAwMTksIDAuMDAwMTkzLCAwLjAwMDE5NCwgMC4wMDAxOTUiLCBcCi0gICAgICAgICAgIjAuMDAwMjEyLCAwLjAwMDE5MSwgMC4wMDAxOTYsIDAuMDAwMTk4LCAwLjAwMDE5OSwgMC4wMDAyLCAwLjAwMDIiLCBcCi0gICAgICAgICAgIjAuMDAwMzQzLCAwLjAwMDI4NSwgMC4wMDAyNTksIDAuMDAwMjQzLCAwLjAwMDIzNCwgMC4wMDAyMjksIDAuMDAwMjI2IiwgXAotICAgICAgICAgICIwLjAwMDYxNiwgMC4wMDAzOTksIDAuMDAwMzM2LCAwLjAwMDMyMSwgMC4wMDAyOTgsIDAuMDAwMjgxLCAwLjAwMDI2OSIsIFwKLSAgICAgICAgICAiMC4wMDA5NDQsIDAuMDAwNTI5LCAwLjAwMDQyNiwgMC4wMDAzNjMsIDAuMDAwMzMzLCAwLjAwMDMxLCAwLjAwMDI5NCIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IE5PUjNCWEwgKgotICogLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoTk9SM0JYTCkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjIwMjAwMjsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQU4pICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY3MTc1MzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2NzE3NTM7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjcxNjg3OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDQ1OSwgMC4wMDA0ODcsIDAuMDAwNTczLCAwLjAwMDY4MywgMC4wMDA4MTUsIDAuMDAxMDQzLCAwLjAwMTI0NyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTczMSwgMC4wMDE3NjEsIDAuMDAxODM0LCAwLjAwMTk0NSwgMC4wMDIwNzYsIDAuMDAyMjk4LCAwLjAwMjUwMiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjk1MDU4OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDY5MzQ5MjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2OTUwNTg7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMDk1LCAwLjAwMDA5NSwgMC4wMDAwOTUsIDAuMDAwMDk1LCAwLjAwMDA5NSwgMC4wMDAwOTUsIDAuMDAwMDk2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjYsIDAuMDAwMjYsIDAuMDAwMjU5LCAwLjAwMDI1OSwgMC4wMDAyNiwgMC4wMDAyNTksIDAuMDAwMjU5Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihDKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA3MjEwNDg7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNzIxMDQ4OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDcyMDc3MTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAwNzQsIDAuMDAwMDc0LCAwLjAwMDA3NCwgMC4wMDAwNzQsIDAuMDAwMDc0LCAwLjAwMDA3NCwgMC4wMDAwNzQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyNDEsIDAuMDAwMjQxLCAwLjAwMDI0MSwgMC4wMDAyNDEsIDAuMDAwMjQxLCAwLjAwMDI0MSwgMC4wMDAyNDEiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4wNzgxMDI0OwotICAgIGZ1bmN0aW9uIDogIighKCgoIUFOKStCKStDKSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkFOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNjYzMSwgMC4xOTM5MzUsIDAuNDQxMTMxLCAwLjg1MjYxNiwgMS4yNjU2LCAyLjIyODM5LCAyLjc3NTUiLCBcCi0gICAgICAgICAgIjAuMTczMzEsIDAuMjAwNzk4LCAwLjQ0NzgzNiwgMC44NjA0OSwgMS4yNzE0LCAyLjIzNDQ3LCAyLjc4MTUiLCBcCi0gICAgICAgICAgIjAuMTc4NzA0LCAwLjIwNjEyNCwgMC40NTMyMjksIDAuODY1NTQ0LCAxLjI3NzgxLCAyLjIzOTcxLCAyLjc4NzY4IiwgXAotICAgICAgICAgICIwLjE4MjM5MiwgMC4yMDk4OTcsIDAuNDU3MDQ2LCAwLjg2ODkwMiwgMS4yODA2OSwgMi4yNDI4NCwgMi43OTE3NyIsIFwKLSAgICAgICAgICAiMC4xODU1MTQsIDAuMjEzMDM2LCAwLjQ2MDIxOSwgMC44NzE5MzksIDEuMjgzNjEsIDIuMjQ3MjUsIDIuNzk0ODMiLCBcCi0gICAgICAgICAgIjAuMTg5NDksIDAuMjE2OTMsIDAuNDY0MTc5LCAwLjg3NjAxOSwgMS4yODg5MSwgMi4yNDg2NCwgMi43OTc0OSIsIFwKLSAgICAgICAgICAiMC4xOTI2NjMsIDAuMjE5OTUxLCAwLjQ2NzI1MywgMC44Nzk3MzYsIDEuMjkwNTMsIDIuMjUxNzcsIDIuODAwNTciKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzE5ODQ4LCAwLjM3NzYxOCwgMC45MDA4NDYsIDEuNzc1OCwgMi42NDYxOCwgNC42ODM2OSwgNS44NDQ2IiwgXAotICAgICAgICAgICIwLjMxOTgsIDAuMzc3NDksIDAuOTAxNDM3LCAxLjc3NDE1LCAyLjY0NjI5LCA0LjY4MjI1LCA1Ljg0NjA1IiwgXAotICAgICAgICAgICIwLjMxOTM2NSwgMC4zNzc2MTUsIDAuOTAyMTg0LCAxLjc3MzI3LCAyLjY0NTgzLCA0LjY4MjEsIDUuODQ0ODEiLCBcCi0gICAgICAgICAgIjAuMzE5Mzc3LCAwLjM3NzQ4OCwgMC45MDIyOTgsIDEuNzczODYsIDIuNjQ2NTMsIDQuNjgzMDgsIDUuODQ0OCIsIFwKLSAgICAgICAgICAiMC4zMTk1NjcsIDAuMzc3NDk0LCAwLjkwMDkwOSwgMS43NzU4MiwgMi42NDg5NCwgNC42ODQwNSwgNS44NDQ2NiIsIFwKLSAgICAgICAgICAiMC4zMTkyOTksIDAuMzc3NDY4LCAwLjkwMjA1NCwgMS43NzM3LCAyLjY0NzI2LCA0LjY4NzY5LCA1Ljg0NzI4IiwgXAotICAgICAgICAgICIwLjMxOTMyOSwgMC4zNzczODQsIDAuOTAxMDM3LCAxLjc3MzEyLCAyLjY0NzgzLCA0LjY4NzkxLCA1Ljg0NTgiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY4NSwgMC4wNzgxOTMsIDAuMTY1MTk4LCAwLjMxMDAyNSwgMC40NTQ2ODUsIDAuNzkyNDA3LCAwLjk4NTU5NyIsIFwKLSAgICAgICAgICAiMC4wNzU2MSwgMC4wODUyOTYsIDAuMTcyMzE4LCAwLjMxNzEwNywgMC40NjIwMjcsIDAuNzk5NDgsIDAuOTkyODkxIiwgXAotICAgICAgICAgICIwLjA4MTIzOSwgMC4wOTA5MjIsIDAuMTc3OTEyLCAwLjMyMjcxOSwgMC40Njc1MDIsIDAuODA1MTgzLCAwLjk5ODQ3MSIsIFwKLSAgICAgICAgICAiMC4wODUyNDIsIDAuMDk0ODg5LCAwLjE4MTg2MywgMC4zMjY2NywgMC40NzEzNjcsIDAuODA5NDY0LCAxLjAwMjE4IiwgXAotICAgICAgICAgICIwLjA4ODU1OSwgMC4wOTgyMjcsIDAuMTg1MTQ0LCAwLjMzMDA0MywgMC40NzQ3MjQsIDAuODEyNDksIDEuMDA1NTMiLCBcCi0gICAgICAgICAgIjAuMDkyOTQ5LCAwLjEwMjY4LCAwLjE4OTUwMiwgMC4zMzQyODcsIDAuNDc5MzIxLCAwLjgxNjY4MSwgMS4wMDk4MSIsIFwKLSAgICAgICAgICAiMC4wOTYwMzEsIDAuMTA1NzQsIDAuMTkyODM1LCAwLjMzNzcxLCAwLjQ4MjQ1NywgMC44MjAzNCwgMS4wMTMwMiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTE1MywgMC4xMzEyODksIDAuMzA5MzkzLCAwLjYwNjM3LCAwLjkwMzUxNSwgMS41OTUzNCwgMS45OTE2NyIsIFwKLSAgICAgICAgICAiMC4xMTE1NDQsIDAuMTMxMjk0LCAwLjMwOTMyMSwgMC42MDYyMTgsIDAuOTAzMzUxLCAxLjU5NTM0LCAxLjk5MTc1IiwgXAotICAgICAgICAgICIwLjExMTc3LCAwLjEzMTQ1NSwgMC4zMDkyOSwgMC42MDYyNTMsIDAuOTAzMTU2LCAxLjU5NTQzLCAxLjk5MTc0IiwgXAotICAgICAgICAgICIwLjExMTk4MSwgMC4xMzE1OTUsIDAuMzA5Mzc3LCAwLjYwNjQ5OSwgMC45MDI5MzgsIDEuNTk1OTUsIDEuOTkxMTIiLCBcCi0gICAgICAgICAgIjAuMTEyMTA3LCAwLjEzMTc2MiwgMC4zMDk0MiwgMC42MDY0MiwgMC45MDI5NzUsIDEuNTk1NDYsIDEuOTkxMzEiLCBcCi0gICAgICAgICAgIjAuMTEyNTY4LCAwLjEzMjA3MiwgMC4zMDk0OTgsIDAuNjA2NDAzLCAwLjkwMzA3OSwgMS41OTUzOSwgMS45OTExNCIsIFwKLSAgICAgICAgICAiMC4xMTI5MywgMC4xMzI0NzcsIDAuMzA5NTgsIDAuNjA2Mzg2LCAwLjkwMzEwMSwgMS41OTU2NSwgMS45OTA5NyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNTU5MjcsIDAuMTgzNjUyLCAwLjQzMDc4NiwgMC44NDMzODcsIDEuMjU0NTYsIDIuMjE1OTgsIDIuNzYzNyIsIFwKLSAgICAgICAgICAiMC4xNjE5NjksIDAuMTg5Mzc4LCAwLjQzNjQ3NCwgMC44NDg3MTEsIDEuMjYwODIsIDIuMjIzMjEsIDIuNzY5MzMiLCBcCi0gICAgICAgICAgIjAuMTY4OTY5LCAwLjE5NjQwNywgMC40NDM2MjIsIDAuODU2NzIzLCAxLjI2ODE3LCAyLjIzMDY4LCAyLjc3OTA5IiwgXAotICAgICAgICAgICIwLjE3NjE4MiwgMC4yMDM4MzYsIDAuNDUxMjg5LCAwLjg2MjkzNCwgMS4yNzU1LCAyLjIzNjU5LCAyLjc4NDQ5IiwgXAotICAgICAgICAgICIwLjE4MzUxMiwgMC4yMTA4MiwgMC40NTg2OTUsIDAuODcwMzY5LCAxLjI4MjAxLCAyLjI0Mzc4LCAyLjc5MzY0IiwgXAotICAgICAgICAgICIwLjE5NTY0NywgMC4yMjMxNTYsIDAuNDY5OTU0LCAwLjg4MjQzLCAxLjI5NTIsIDIuMjU0OTMsIDIuODAzNDEiLCBcCi0gICAgICAgICAgIjAuMjA2MzA2LCAwLjIzMzE3NSwgMC40ODA1MjcsIDAuODkyMzk3LCAxLjMwMzg2LCAyLjI2NDcsIDIuODE0NDUiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzE5NjUsIDAuMzc3NzI0LCAwLjkwMTI2MSwgMS43NzQ0MiwgMi42NDU4OCwgNC42ODE0MSwgNS44NDk4NyIsIFwKLSAgICAgICAgICAiMC4zMTk0NjMsIDAuMzc3NTE5LCAwLjkwMTIwNiwgMS43NzMyNywgMi42NDU3LCA0LjY4MjM4LCA1Ljg0OTQ5IiwgXAotICAgICAgICAgICIwLjMxOTgzMiwgMC4zNzc2NTksIDAuOTAxNDE2LCAxLjc3NDI1LCAyLjY0NjgyLCA0LjY4MzkyLCA1Ljg0NTE1IiwgXAotICAgICAgICAgICIwLjMyMDg3MywgMC4zNzg3NTgsIDAuOTAxMjYzLCAxLjc3NTgxLCAyLjY0NTYyLCA0LjY4MTM2LCA1Ljg0NTc5IiwgXAotICAgICAgICAgICIwLjMyMzczMSwgMC4zODA0ODEsIDAuOTAwODQzLCAxLjc3MzIxLCAyLjY0OTMzLCA0LjY4MzQ4LCA1Ljg0NTU1IiwgXAotICAgICAgICAgICIwLjMyOTg4LCAwLjM4NTcyNCwgMC45MDIxMjEsIDEuNzczMjIsIDIuNjQ2NzMsIDQuNjgxLCA1Ljg0NTg1IiwgXAotICAgICAgICAgICIwLjMzNjQ2MywgMC4zOTExNzIsIDAuOTAyNzU0LCAxLjc3MzM4LCAyLjY0NzExLCA0LjY4Nzc4LCA1Ljg0NTY3Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1Njk2NCwgMC4wNjY2MjYsIDAuMTUzNDY1LCAwLjI5ODIwMywgMC40NDMxMDMsIDAuNzgwNjYsIDAuOTczNjA0IiwgXAotICAgICAgICAgICIwLjA2NTEyNSwgMC4wNzQ3OCwgMC4xNjE2NDYsIDAuMzA2NDA3LCAwLjQ1MTA2LCAwLjc4ODc0OSwgMC45ODE2OTkiLCBcCi0gICAgICAgICAgIjAuMDc1NTE5LCAwLjA4NTE0NywgMC4xNzE3NjcsIDAuMzE2NzYsIDAuNDYxNjU0LCAwLjc5OTE1NiwgMC45OTIyNTUiLCBcCi0gICAgICAgICAgIjAuMDg2MjY5LCAwLjA5NTI5OSwgMC4xODE5MTksIDAuMzI2NzU2LCAwLjQ3MTQwMSwgMC44MDg3NTEsIDEuMDAxNzMiLCBcCi0gICAgICAgICAgIjAuMDk2ODcsIDAuMTA2NDM0LCAwLjE5MjYzNiwgMC4zMzY1MTIsIDAuNDgxNjU2LCAwLjgxOTA5NCwgMS4wMTI3OSIsIFwKLSAgICAgICAgICAiMC4xMTE0NzMsIDAuMTIyNTgsIDAuMjA4OTUsIDAuMzUzMjkyLCAwLjQ5NTkxMywgMC44MzYwNTYsIDEuMDI4MjYiLCBcCi0gICAgICAgICAgIjAuMTIyMTExLCAwLjEzNDM3LCAwLjIyMzYyNSwgMC4zNjc3ODMsIDAuNTEyNDMyLCAwLjg0OTk2NSwgMS4wNDMwNSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDkyMDIsIDAuMTI4OTIxLCAwLjMwNzA5MiwgMC42MDM3OTksIDAuOTAwNjQ2LCAxLjU5MjkyLCAxLjk4OTQyIiwgXAotICAgICAgICAgICIwLjEwOTQ5OSwgMC4xMjkxMDEsIDAuMzA3MTE1LCAwLjYwMzkwOCwgMC45MDAzNTQsIDEuNTkyNzIsIDEuOTg5MiIsIFwKLSAgICAgICAgICAiMC4xMTM4MjcsIDAuMTMyNDc4LCAwLjMwNzA0MywgMC42MDM4MjQsIDAuOTAwODk5LCAxLjU5MzM3LCAxLjk4OTQ1IiwgXAotICAgICAgICAgICIwLjEyMDY2OCwgMC4xMzkxLCAwLjMwODk0LCAwLjYwMzk4OSwgMC45MDA4MjgsIDEuNTkyNzksIDEuOTg5NjciLCBcCi0gICAgICAgICAgIjAuMTI4NjUxLCAwLjE0NjE2OSwgMC4zMTIzNDQsIDAuNjAzODgxLCAwLjkwMDU0NiwgMS41OTMwOCwgMS45ODk0OCIsIFwKLSAgICAgICAgICAiMC4xNDMyODcsIDAuMTU5NzY2LCAwLjMyMTI3NywgMC42MDY1MjYsIDAuOTAwNjk5LCAxLjU5MzIxLCAxLjk4OTY5IiwgXAotICAgICAgICAgICIwLjE1NzIwNCwgMC4xNzMxNzUsIDAuMzMwNjU1LCAwLjYxMTEyMSwgMC45MDE0ODcsIDEuNTkyODQsIDEuOTg5MTUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTUxNjExLCAwLjE3OTA4NiwgMC40MjYzNzUsIDAuODM4NjY0LCAxLjI1MDQ5LCAyLjIxMTYzLCAyLjc2MTUyIiwgXAotICAgICAgICAgICIwLjE1ODM0NSwgMC4xODU5ODIsIDAuNDMzNTQsIDAuODQ1MzMyLCAxLjI1NzksIDIuMjIwMTIsIDIuNzY3NzciLCBcCi0gICAgICAgICAgIjAuMTY3MDczLCAwLjE5NDU3MywgMC40NDE5NTMsIDAuODU0NjA3LCAxLjI2NjM3LCAyLjIyODk1LCAyLjc3NjU3IiwgXAotICAgICAgICAgICIwLjE3NjIyNiwgMC4yMDM3ODEsIDAuNDUxMDE5LCAwLjg2MzQ2MiwgMS4yNzU4NywgMi4yMzc4OCwgMi43ODUyNSIsIFwKLSAgICAgICAgICAiMC4xODUwNTQsIDAuMjEyMzU5LCAwLjQ1OTE3NCwgMC44NzExMTYsIDEuMjgyMzUsIDIuMjQzMjEsIDIuNzkyMzkiLCBcCi0gICAgICAgICAgIjAuMTk5ODcxLCAwLjIyNzE0LCAwLjQ3MzU5NSwgMC44ODUxNTIsIDEuMjk3MSwgMi4yNTc2MywgMi44MDc3OCIsIFwKLSAgICAgICAgICAiMC4yMTMwODIsIDAuMjQwMDc5LCAwLjQ4NjA4OCwgMC44OTcyMTUsIDEuMzA5MzMsIDIuMjcxNDUsIDIuODE4MjYiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzE5MzY5LCAwLjM3NzY1NywgMC45MDEyOCwgMS43NzM0OSwgMi42NDY4OCwgNC42ODI3MywgNS44NDQxNSIsIFwKLSAgICAgICAgICAiMC4zMTk1OCwgMC4zNzc0ODMsIDAuOTAxNTE3LCAxLjc3MzMzLCAyLjY0NjI4LCA0LjY4Mjk5LCA1Ljg0NDciLCBcCi0gICAgICAgICAgIjAuMzE5Mzc0LCAwLjM3NzUzNiwgMC45MDA4ODQsIDEuNzc0MTgsIDIuNjQ3MTgsIDQuNjg0MTksIDUuODQ0NTgiLCBcCi0gICAgICAgICAgIjAuMzIxMTg5LCAwLjM3ODM3NywgMC45MDA4NDUsIDEuNzc0MzcsIDIuNjQ3MzcsIDQuNjgzMjQsIDUuODQ0NzgiLCBcCi0gICAgICAgICAgIjAuMzI0OTk0LCAwLjM4MTQ1NSwgMC45MDExNDMsIDEuNzczMzksIDIuNjQ4NjcsIDQuNjg3MTUsIDUuODQ1ODYiLCBcCi0gICAgICAgICAgIjAuMzMzNDMzLCAwLjM4ODM5NSwgMC45MDA5NzUsIDEuNzczNiwgMi42NDU3NSwgNC42ODI2NCwgNS44NDQ1NiIsIFwKLSAgICAgICAgICAiMC4zNDIyNDksIDAuMzk2NDk3LCAwLjkwMzkzOCwgMS43NzU2LCAyLjY0NTc2LCA0LjY4MTg1LCA1Ljg0Nzc3Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1NTM1NSwgMC4wNjUwMDksIDAuMTUxODkzLCAwLjI5NjY2MSwgMC40NDE2NCwgMC43Nzg4NjcsIDAuOTcxODc4IiwgXAotICAgICAgICAgICIwLjA2MzU3LCAwLjA3MzIxNSwgMC4xNjAwNjQsIDAuMzA0ODQ0LCAwLjQ0OTY0MywgMC43ODcwNzcsIDAuOTgwMjA0IiwgXAotICAgICAgICAgICIwLjA3Mzk4MywgMC4wODM1NzMsIDAuMTY5OTY4LCAwLjMxNDkxNywgMC40NTk2NzgsIDAuNzk3MDc0LCAwLjk5MDQ1MSIsIFwKLSAgICAgICAgICAiMC4wODQ0MzEsIDAuMDk0MDMyLCAwLjE4MDQ2MSwgMC4zMjUyNjYsIDAuNDcwMDIyLCAwLjgwNzU5OSwgMS4wMDAzNSIsIFwKLSAgICAgICAgICAiMC4wOTQ2MTQsIDAuMTA0Mzc0LCAwLjE5MDcyNywgMC4zMzUxNjYsIDAuNDgwMzc5LCAwLjgxNzY4NiwgMS4wMTEyOCIsIFwKLSAgICAgICAgICAiMC4xMDg3ODksIDAuMTIwMDc1LCAwLjIwNzYzNiwgMC4zNTIwMDIsIDAuNDk0NjkxLCAwLjgzNDI4LCAxLjAyNzA1IiwgXAotICAgICAgICAgICIwLjExOTI1OSwgMC4xMzE5OTcsIDAuMjIyMjQxLCAwLjM2NjU5MSwgMC41MTEyNzcsIDAuODQ5MTczLCAxLjA0MTc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwNzQwOSwgMC4xMjcyNiwgMC4zMDUxNzIsIDAuNjAyMTA3LCAwLjg5OTQ4NywgMS41OTI3MSwgMS45OTE0NiIsIFwKLSAgICAgICAgICAiMC4xMDc3NDMsIDAuMTI3MTExLCAwLjMwNTcsIDAuNjAyMTAzLCAwLjg5OTA0LCAxLjU5NTE3LCAxLjk5MTU2IiwgXAotICAgICAgICAgICIwLjExMjE4MSwgMC4xMzA4MzgsIDAuMzA1Nzc5LCAwLjYwMjA4OSwgMC44OTk4NDUsIDEuNTkxNDksIDEuOTg5NDMiLCBcCi0gICAgICAgICAgIjAuMTE5MDgzLCAwLjEzNzAyMiwgMC4zMDY4MjYsIDAuNjAyMDY5LCAwLjg5OSwgMS41OTE4MiwgMS45OTE0NiIsIFwKLSAgICAgICAgICAiMC4xMjc2MjcsIDAuMTQ1MDI3LCAwLjMxMTA5NCwgMC42MDIxNzQsIDAuODk5Mzg1LCAxLjU5MTkyLCAxLjk4ODY4IiwgXAotICAgICAgICAgICIwLjE0MzIxMywgMC4xNTkwMzYsIDAuMzE5NzUxLCAwLjYwNTU2OCwgMC44OTkwNDgsIDEuNTk0NTMsIDEuOTkxMjEiLCBcCi0gICAgICAgICAgIjAuMTU2Nzc0LCAwLjE3Mjc0MSwgMC4zMjg1MiwgMC42MTAyNjQsIDAuODk5OTE4LCAxLjU5MTg2LCAxLjk5MTEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyMTExLCAwLjAwMjExMSwgMC4wMDIxMTEsIDAuMDAyMTExLCAwLjAwMjExMSwgMC4wMDIxMTEsIDAuMDAyMTExIiwgXAotICAgICAgICAgICIwLjAwMjEyNSwgMC4wMDIxMjUsIDAuMDAyMTI3LCAwLjAwMjEyNywgMC4wMDIxMjcsIDAuMDAyMTI3LCAwLjAwMjEyNiIsIFwKLSAgICAgICAgICAiMC4wMDIyMTMsIDAuMDAyMjE0LCAwLjAwMjIxNSwgMC4wMDIyMTYsIDAuMDAyMjE3LCAwLjAwMjIxNywgMC4wMDIyMTYiLCBcCi0gICAgICAgICAgIjAuMDAyMzI4LCAwLjAwMjMyOCwgMC4wMDIzMywgMC4wMDIzMzIsIDAuMDAyMzMxLCAwLjAwMjMzMSwgMC4wMDIzMyIsIFwKLSAgICAgICAgICAiMC4wMDI0NjksIDAuMDAyNDcsIDAuMDAyNDcyLCAwLjAwMjQ3MywgMC4wMDI0NTksIDAuMDAyNDczLCAwLjAwMjQ3MiIsIFwKLSAgICAgICAgICAiMC4wMDI2ODksIDAuMDAyNjksIDAuMDAyNjkxLCAwLjAwMjY4MSwgMC4wMDI2OTEsIDAuMDAyNjkxLCAwLjAwMjY4MSIsIFwKLSAgICAgICAgICAiMC4wMDI4NzcsIDAuMDAyODk3LCAwLjAwMjg3OCwgMC4wMDI4ODEsIDAuMDAyODc4LCAwLjAwMjg4MSwgMC4wMDI4OTciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI0NTQsIDAuMDAyNDU0LCAwLjAwMjQ1NCwgMC4wMDI0NTQsIDAuMDAyNDU0LCAwLjAwMjQ1MywgMC4wMDI0NTMiLCBcCi0gICAgICAgICAgIjAuMDAyNDY4LCAwLjAwMjQ2OCwgMC4wMDI0NjgsIDAuMDAyNDY4LCAwLjAwMjQ2OCwgMC4wMDI0NjgsIDAuMDAyNDY4IiwgXAotICAgICAgICAgICIwLjAwMjU1NiwgMC4wMDI1NTYsIDAuMDAyNTU2LCAwLjAwMjU1NiwgMC4wMDI1NTYsIDAuMDAyNTU2LCAwLjAwMjU1NiIsIFwKLSAgICAgICAgICAiMC4wMDI2NjgsIDAuMDAyNjc3LCAwLjAwMjY3NywgMC4wMDI2NjgsIDAuMDAyNjc2LCAwLjAwMjY3NiwgMC4wMDI2NjciLCBcCi0gICAgICAgICAgIjAuMDAyNzk1LCAwLjAwMjgwNiwgMC4wMDI4MDQsIDAuMDAyNzkzLCAwLjAwMjc5MywgMC4wMDI3OTMsIDAuMDAyODA0IiwgXAotICAgICAgICAgICIwLjAwMzAxOCwgMC4wMDMwMTcsIDAuMDAzMDExLCAwLjAwMzAwOSwgMC4wMDMwMTYsIDAuMDAzMDA5LCAwLjAwMzAwOSIsIFwKLSAgICAgICAgICAiMC4wMDMyMTgsIDAuMDAzMjE4LCAwLjAwMzIxNiwgMC4wMDMyLCAwLjAwMzIsIDAuMDAzMjEzLCAwLjAwMzIxMiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTkyNywgMC4wMDE5MjcsIDAuMDAxOTI5LCAwLjAwMTkzLCAwLjAwMTkzLCAwLjAwMTkzLCAwLjAwMTkzIiwgXAotICAgICAgICAgICIwLjAwMTkxNiwgMC4wMDE5MTgsIDAuMDAxOTI1LCAwLjAwMTkyNywgMC4wMDE5MjgsIDAuMDAxOTI5LCAwLjAwMTkyOCIsIFwKLSAgICAgICAgICAiMC4wMDE5MTEsIDAuMDAxOTEzLCAwLjAwMTkyMiwgMC4wMDE5MjUsIDAuMDAxOTI2LCAwLjAwMTkyOCwgMC4wMDE5MjkiLCBcCi0gICAgICAgICAgIjAuMDAxOTE2LCAwLjAwMTkxNywgMC4wMDE5MjEsIDAuMDAxOTI1LCAwLjAwMTkyNywgMC4wMDE5MjgsIDAuMDAxOTI4IiwgXAotICAgICAgICAgICIwLjAwMTkzMSwgMC4wMDE5MywgMC4wMDE5MjcsIDAuMDAxOTI4LCAwLjAwMTkyOSwgMC4wMDE5MjksIDAuMDAxOTI5IiwgXAotICAgICAgICAgICIwLjAwMTk3MSwgMC4wMDE5NjUsIDAuMDAxOTQzLCAwLjAwMTkzNiwgMC4wMDE5MzQsIDAuMDAxOTMyLCAwLjAwMTkzMSIsIFwKLSAgICAgICAgICAiMC4wMDIwMjIsIDAuMDAyMDA3LCAwLjAwMTk2NSwgMC4wMDE5NDgsIDAuMDAxOTQyLCAwLjAwMTkzNywgMC4wMDE5MzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDAxOSwgMC4wMDAxOSwgMC4wMDAxOTEsIDAuMDAwMTkxLCAwLjAwMDE5MSwgMC4wMDAxOTEsIDAuMDAwMTkxIiwgXAotICAgICAgICAgICIwLjAwMDE4OCwgMC4wMDAxODgsIDAuMDAwMTksIDAuMDAwMTkxLCAwLjAwMDE5MSwgMC4wMDAxOTEsIDAuMDAwMTkxIiwgXAotICAgICAgICAgICIwLjAwMDIwOCwgMC4wMDAxOTcsIDAuMDAwMTk4LCAwLjAwMDE5NSwgMC4wMDAxOTQsIDAuMDAwMTkzLCAwLjAwMDE5MyIsIFwKLSAgICAgICAgICAiMC4wMDAyMTgsIDAuMDAwMjMzLCAwLjAwMDIxMiwgMC4wMDAyMDMsIDAuMDAwMTk4LCAwLjAwMDE5NiwgMC4wMDAxOTUiLCBcCi0gICAgICAgICAgIjAuMDAwMjQ2LCAwLjAwMDI0MiwgMC4wMDAyMTksIDAuMDAwMjE0LCAwLjAwMDIwNywgMC4wMDAyLCAwLjAwMDE5OCIsIFwKLSAgICAgICAgICAiMC4wMDAzMDksIDAuMDAwMjk2LCAwLjAwMDI2OCwgMC4wMDAyMzUsIDAuMDAwMjIyLCAwLjAwMDIxLCAwLjAwMDIwNSIsIFwKLSAgICAgICAgICAiMC4wMDAzNzcsIDAuMDAwMzU3LCAwLjAwMDMxLCAwLjAwMDI1OSwgMC4wMDAyNCwgMC4wMDAyMjEsIDAuMDAwMjE1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxNjY3LCAwLjAwMTY2OCwgMC4wMDE2NywgMC4wMDE2NzEsIDAuMDAxNjcxLCAwLjAwMTY3MSwgMC4wMDE2NzIiLCBcCi0gICAgICAgICAgIjAuMDAxNjU4LCAwLjAwMTY1OSwgMC4wMDE2NjUsIDAuMDAxNjY4LCAwLjAwMTY2OSwgMC4wMDE2NywgMC4wMDE2NyIsIFwKLSAgICAgICAgICAiMC4wMDE2NjUsIDAuMDAxNjY1LCAwLjAwMTY2NywgMC4wMDE2NjksIDAuMDAxNjcsIDAuMDAxNjcsIDAuMDAxNjciLCBcCi0gICAgICAgICAgIjAuMDAxNjc4LCAwLjAwMTY3NSwgMC4wMDE2NzEsIDAuMDAxNjcxLCAwLjAwMTY3LCAwLjAwMTY3MSwgMC4wMDE2NzEiLCBcCi0gICAgICAgICAgIjAuMDAxNzE4LCAwLjAwMTcxLCAwLjAwMTY4NiwgMC4wMDE2NzgsIDAuMDAxNjc2LCAwLjAwMTY3NCwgMC4wMDE2NzMiLCBcCi0gICAgICAgICAgIjAuMDAxNzc5LCAwLjAwMTc2OSwgMC4wMDE3MTYsIDAuMDAxNjk0LCAwLjAwMTY4NywgMC4wMDE2OCwgMC4wMDE2NzgiLCBcCi0gICAgICAgICAgIjAuMDAxODQ3LCAwLjAwMTgyNywgMC4wMDE3NTEsIDAuMDAxNzE0LCAwLjAwMTcsIDAuMDAxNjg4LCAwLjAwMTY4NCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDAwOSwgMC4wMDAwMDksIDAuMDAwMDEyLCAwLjAwMDAxMiwgMC4wMDAwMTMsIDAuMDAwMDEzLCAwLjAwMDAxMyIsIFwKLSAgICAgICAgICAiMC4wMDAwMTYsIDAuMDAwMDE3LCAwLjAwMDAyMywgMC4wMDAwMjcsIDAuMDAwMDI1LCAwLjAwMDAyNiwgMC4wMDAwMjYiLCBcCi0gICAgICAgICAgIjAuMDAwMDI1LCAwLjAwMDAyNSwgMC4wMDAwMzEsIDAuMDAwMDMxLCAwLjAwMDAzMiwgMC4wMDAwMzIsIDAuMDAwMDMzIiwgXAotICAgICAgICAgICIwLjAwMDA0NywgMC4wMDAwNDQsIDAuMDAwMDQyLCAwLjAwMDAzNywgMC4wMDAwMzUsIDAuMDAwMDM1LCAwLjAwMDAzNSIsIFwKLSAgICAgICAgICAiMC4wMDAwOTIsIDAuMDAwMDg1LCAwLjAwMDA1NiwgMC4wMDAwNDYsIDAuMDAwMDQxLCAwLjAwMDAzOCwgMC4wMDAwMzciLCBcCi0gICAgICAgICAgIjAuMDAwMTYsIDAuMDAwMTQzLCAwLjAwMDA4OCwgMC4wMDAwNjMsIDAuMDAwMDU0LCAwLjAwMDA0NSwgMC4wMDAwNDIiLCBcCi0gICAgICAgICAgIjAuMDAwMjQsIDAuMDAwMjEzLCAwLjAwMDEyMSwgMC4wMDAwODMsIDAuMDAwMDY5LCAwLjAwMDA1NCwgMC4wMDAwNDkiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IE5PUjNYMSAqCi0gKiAtLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKE5PUjNYMSkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjIyODUxNTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwODg5NDAyOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDg4NTE0MjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA4ODk0MDI7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNDUsIDAuMDAwNDgxLCAwLjAwMDQ4OSwgMC4wMDA0OTYsIDAuMDAwNTAzLCAwLjAwMDUwNywgMC4wMDA1MDMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA5NDksIDAuMDAwOTUsIDAuMDAwOTUsIDAuMDAwOTUsIDAuMDAwOTUsIDAuMDAwOTUsIDAuMDAwOTUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDkyMTAzNjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA5MTc1OTU7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwOTIxMDM2OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDQ0LCAwLjAwMDQ5MSwgMC4wMDA1MDIsIDAuMDAwNTA2LCAwLjAwMDUwNSwgMC4wMDA1MDgsIDAuMDAwNTA2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNTM5LCAwLjAwMDUzOSwgMC4wMDA1MzksIDAuMDAwNTM5LCAwLjAwMDUzOSwgMC4wMDA1MzksIDAuMDAwNTM5Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihDKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA5MjcwNjU7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwOTI3MDY1OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDkyNjcyNDsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxMjUsIDAuMDAwMTI1LCAwLjAwMDEyNSwgMC4wMDAxMjUsIDAuMDAwMTI1LCAwLjAwMDEyNSwgMC4wMDAxMjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAzODUsIDAuMDAwMzg1LCAwLjAwMDM4NSwgMC4wMDAzODUsIDAuMDAwMzg1LCAwLjAwMDM4NSwgMC4wMDAzODUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4xMjk5NDsKLSAgICBmdW5jdGlvbiA6ICIoISgoQStCKStDKSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwMDU0LCAwLjE0OTkzOCwgMC40MjkwNTUsIDAuNjc1OTY2LCAxLjAwMzEsIDEuNjYwNDUsIDIuMDcxNTQiLCBcCi0gICAgICAgICAgIjAuMTA1ODIzLCAwLjE1NTE0NSwgMC40MzQ3OTgsIDAuNjgwNzc3LCAxLjAwODczLCAxLjY2NiwgMi4wNzczMSIsIFwKLSAgICAgICAgICAiMC4xMTA5NDIsIDAuMTYwNDM5LCAwLjQzOTU2OCwgMC42ODY3MTIsIDEuMDE0NzgsIDEuNjcxODYsIDIuMDgyNTUiLCBcCi0gICAgICAgICAgIjAuMTE2MDMzLCAwLjE2NTM3MywgMC40NDQ2MzEsIDAuNjkxMDY3LCAxLjAxOTc0LCAxLjY3NjMyLCAyLjA4ODc3IiwgXAotICAgICAgICAgICIwLjEyMTE3MywgMC4xNzA0NjEsIDAuNDQ5NzE3LCAwLjY5NTk0NywgMS4wMjQ3NCwgMS42ODEyNSwgMi4wOTM2NiIsIFwKLSAgICAgICAgICAiMC4xMjkzMjEsIDAuMTc4NTUzLCAwLjQ1NzkyMywgMC43MDQ1MTUsIDEuMDMzMTUsIDEuNjg5MTUsIDIuMTAxNzUiLCBcCi0gICAgICAgICAgIjAuMTM1ODk0LCAwLjE4NTk1NCwgMC40NjUyNTksIDAuNzExNDU0LCAxLjA0MDQ4LCAxLjY5NjU2LCAyLjEwNjciKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTk1NzU1LCAwLjI5OTMzNSwgMC44ODU5MDYsIDEuNDA0MTYsIDIuMDk1MTcsIDMuNDc0MDcsIDQuMzM2NjciLCBcCi0gICAgICAgICAgIjAuMTk1Njk2LCAwLjI5OTE5MiwgMC44ODYzOTYsIDEuNDAzNTksIDIuMDk2NjYsIDMuNDc0MjcsIDQuMzM2NDMiLCBcCi0gICAgICAgICAgIjAuMTk2NDIsIDAuMjk5MzUzLCAwLjg4NjU4LCAxLjQwNDA0LCAyLjA5NDM3LCAzLjQ3NTUsIDQuMzM2NjgiLCBcCi0gICAgICAgICAgIjAuMTk4MzQxLCAwLjMwMDY0NywgMC44ODY2MDEsIDEuNDA1OCwgMi4wOTQzNywgMy40NzUzMSwgNC4zMzgzIiwgXAotICAgICAgICAgICIwLjIwMTA5MSwgMC4zMDI1MTMsIDAuODg3MjUzLCAxLjQwNTIzLCAyLjA5Mzc4LCAzLjQ3NTA3LCA0LjMzOTI2IiwgXAotICAgICAgICAgICIwLjIwNjc0OCwgMC4zMDY1MDIsIDAuODg3Mzg3LCAxLjQwNDAzLCAyLjA5MzYzLCAzLjQ3OTYsIDQuMzM3OSIsIFwKLSAgICAgICAgICAiMC4yMTI3NTksIDAuMzExMTM5LCAwLjg4NzUzMiwgMS40MDM3NSwgMi4wOTM1MiwgMy40NzQ5MywgNC4zNDM3MiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzk4NDIsIDAuMDU4MDcyLCAwLjE2MDg1MiwgMC4yNTEzOTMsIDAuMzcyMTI3LCAwLjYxMzU3NSwgMC43NjQ1NDMiLCBcCi0gICAgICAgICAgIjAuMDQ4MTQ3LCAwLjA2NjM3NiwgMC4xNjkxMjgsIDAuMjU5NjkzLCAwLjM4MDMxLCAwLjYyMTgxNSwgMC43NzIzMjkiLCBcCi0gICAgICAgICAgIjAuMDU4OTE3LCAwLjA3NzAwNCwgMC4xNzk1MTMsIDAuMjcwMDkyLCAwLjM5MDYwOSwgMC42MzE5OTksIDAuNzgyODQiLCBcCi0gICAgICAgICAgIjAuMDY5NjYsIDAuMDg3NDc4LCAwLjE4OTkyNSwgMC4yODA0NjksIDAuNDAxMjcxLCAwLjY0MjI5MywgMC43OTI5NjgiLCBcCi0gICAgICAgICAgIjAuMDc4MzY2LCAwLjA5ODQ4NCwgMC4yMDA4NDYsIDAuMjkwOTk3LCAwLjQxMTY3NywgMC42NTMwOTUsIDAuODAzNzUiLCBcCi0gICAgICAgICAgIjAuMDkwODYzLCAwLjExMzUyOCwgMC4yMTc2OTMsIDAuMzA4NTcsIDAuNDI5MjgyLCAwLjY3MDYzMiwgMC44MjEyMDciLCBcCi0gICAgICAgICAgIjAuMDk5Nzc1LCAwLjEyNDkzNSwgMC4yMzI3NDUsIDAuMzIyODY4LCAwLjQ0MzQ1OCwgMC42ODQ4NDksIDAuODM1NTg0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3Mjk4NywgMC4xMTAxMzUsIDAuMzIxMDE2LCAwLjUwNzExNywgMC43NTU0MTgsIDEuMjUxODUsIDEuNTYxODgiLCBcCi0gICAgICAgICAgIjAuMDc0MTM0LCAwLjExMDQ0NSwgMC4zMjEwMDEsIDAuNTA3MTQsIDAuNzU1MzIyLCAxLjI1MTkzLCAxLjU2MTYxIiwgXAotICAgICAgICAgICIwLjA4MDA1MywgMC4xMTQ2MjksIDAuMzIxMTA1LCAwLjUwNzM4OCwgMC43NTU0MTYsIDEuMjUxODksIDEuNTYxNiIsIFwKLSAgICAgICAgICAiMC4wODc5NzYsIDAuMTIxNTQ5LCAwLjMyMjMwNiwgMC41MDcwNSwgMC43NTU0NTEsIDEuMjUxNjIsIDEuNTYxNjgiLCBcCi0gICAgICAgICAgIjAuMDk3Njk0LCAwLjEyOTI4MiwgMC4zMjU2MDYsIDAuNTA3NjQ3LCAwLjc1NTMxNiwgMS4yNTE1NywgMS41NjE3OCIsIFwKLSAgICAgICAgICAiMC4xMTIzNzgsIDAuMTQ0MDc1LCAwLjMzMzU5MSwgMC41MTE2MTEsIDAuNzU1ODMxLCAxLjI1MTcxLCAxLjU2MTI4IiwgXAotICAgICAgICAgICIwLjEyNTIsIDAuMTU3NTc3LCAwLjM0MjI4NiwgMC41MTc2MzUsIDAuNzU4MjA3LCAxLjI1MTU3LCAxLjU2MTcyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5ODQ4MywgMC4xNDc4MTksIDAuNDI3MzMzLCAwLjY3MzgwMywgMS4wMDE2NSwgMS42NTg3MiwgMi4wNjc2NyIsIFwKLSAgICAgICAgICAiMC4xMDQ2MjksIDAuMTU0MDk3LCAwLjQzMzM3NCwgMC42Nzk5LCAxLjAwODg2LCAxLjY2NTUxLCAyLjA3NzE3IiwgXAotICAgICAgICAgICIwLjExMTk4NCwgMC4xNjEzNTksIDAuNDQwNzI0LCAwLjY4NzU0OCwgMS4wMTY2MiwgMS42NzM3MywgMi4wODI5NCIsIFwKLSAgICAgICAgICAiMC4xMTk3MTQsIDAuMTY4OTcyLCAwLjQ0ODI2OCwgMC42OTQ1NzMsIDEuMDIyOTcsIDEuNjgwNDgsIDIuMDkwODEiLCBcCi0gICAgICAgICAgIjAuMTI3MzI4LCAwLjE3NjY1MiwgMC40NTYwMjcsIDAuNzAyMzA4LCAxLjAzMTIzLCAxLjY4ODc0LCAyLjA5Nzg0IiwgXAotICAgICAgICAgICIwLjEzOTcwMiwgMC4xODg3NDUsIDAuNDY3OTU5LCAwLjcxNDY4MiwgMS4wNDM2MiwgMS42OTk1NywgMi4xMTAxIiwgXAotICAgICAgICAgICIwLjE0OTUzNCwgMC4xOTk4NTYsIDAuNDc5MTQ4LCAwLjcyNTQ4NywgMS4wNTQzMiwgMS43MTAwMSwgMi4xMjA0NSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xOTU4ODMsIDAuMjk5Mjk0LCAwLjg4NjE0MiwgMS40MDQwNSwgMi4wOTM2NSwgMy40NzQyNSwgNC4zMzg5NiIsIFwKLSAgICAgICAgICAiMC4xOTU4MDgsIDAuMjk5MjA5LCAwLjg4NjE2MSwgMS40MDM0NiwgMi4wOTQ3MiwgMy40NzM3OCwgNC4zMzgzNCIsIFwKLSAgICAgICAgICAiMC4xOTY5MzMsIDAuMjk5NjYxLCAwLjg4NjEzNCwgMS40MDM3MywgMi4wOTQ3NCwgMy40NzYxNiwgNC4zMzcxMyIsIFwKLSAgICAgICAgICAiMC4xOTk3NzEsIDAuMzAxMTU3LCAwLjg4NjYxOCwgMS40MDQ0NSwgMi4wOTQzNywgMy40NzUxOCwgNC4zMzcxOSIsIFwKLSAgICAgICAgICAiMC4yMDQwMTYsIDAuMzAzODE1LCAwLjg4NjAwOCwgMS40MDU4LCAyLjA5NDU3LCAzLjQ3NDU2LCA0LjMzODA2IiwgXAotICAgICAgICAgICIwLjIxMjMxOSwgMC4zMDk3NTMsIDAuODg3MjA3LCAxLjQwMzQ4LCAyLjA5MzYxLCAzLjQ3NDkyLCA0LjM0Mzg2IiwgXAotICAgICAgICAgICIwLjIyMDM4MSwgMC4zMTY3NjIsIDAuODg4NjU0LCAxLjQwMzQsIDIuMDk0MDQsIDMuNDc0NTIsIDQuMzM4NDQiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM4NDQ2LCAwLjA1NjU5OSwgMC4xNTkyMTYsIDAuMjQ5NzY0LCAwLjM3MDQ2LCAwLjYxMjAzLCAwLjc2MjUyOCIsIFwKLSAgICAgICAgICAiMC4wNDY4NzQsIDAuMDY1MDI4LCAwLjE2NzUzNiwgMC4yNTgxMDgsIDAuMzc4NjgzLCAwLjYyMDAyNCwgMC43NzEzNzciLCBcCi0gICAgICAgICAgIjAuMDU3NDc3LCAwLjA3NTU2NywgMC4xNzgxMTYsIDAuMjY4NzE1LCAwLjM4OTQ3LCAwLjYzMDc1NywgMC43ODE4MDgiLCBcCi0gICAgICAgICAgIjAuMDY4MTg5LCAwLjA4NTk2NiwgMC4xODg2NDgsIDAuMjc4Nzk3LCAwLjM5OTU4NSwgMC42NDA2MDMsIDAuNzkxODI0IiwgXAotICAgICAgICAgICIwLjA3NjU2MywgMC4wOTY5OTgsIDAuMTk5MjczLCAwLjI4OTY5MiwgMC40MDk5MTMsIDAuNjUxMzc5LCAwLjgwMTc1MiIsIFwKLSAgICAgICAgICAiMC4wODg2MTUsIDAuMTEyNjA2LCAwLjIxNTg2MywgMC4zMDYxMDMsIDAuNDI2ODUxLCAwLjY2ODAyLCAwLjgxODk5NSIsIFwKLSAgICAgICAgICAiMC4wOTcxNzksIDAuMTIzNzM1LCAwLjIzMDc2NywgMC4zMjA4NzksIDAuNDQxNDQ2LCAwLjY4Mjc4NywgMC44MzM1NTQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDcwODgxLCAwLjEwODA4OSwgMC4zMTkwODMsIDAuNTA1MzEzLCAwLjc1MzIyNiwgMS4yNDk2NiwgMS41NjAzMiIsIFwKLSAgICAgICAgICAiMC4wNzIwMzEsIDAuMTA4Mzg5LCAwLjMxOTAwNywgMC41MDUxNzcsIDAuNzUzMjIsIDEuMjQ5ODksIDEuNTU5OTYiLCBcCi0gICAgICAgICAgIjAuMDc4MjQxLCAwLjExMjU3MSwgMC4zMTkwNDQsIDAuNTA1MTAzLCAwLjc1MzIzNCwgMS4yNTAwNSwgMS41NTk0NCIsIFwKLSAgICAgICAgICAiMC4wODYxODksIDAuMTE5NzAxLCAwLjMyMDIxNSwgMC41MDUyNzcsIDAuNzUzNDg1LCAxLjI0OTUxLCAxLjU1OTkxIiwgXAotICAgICAgICAgICIwLjA5NTk0LCAwLjEyNzQwNiwgMC4zMjM1OTEsIDAuNTA1NjI0LCAwLjc1MzQyMiwgMS4yNDkzNCwgMS41NTkzNSIsIFwKLSAgICAgICAgICAiMC4xMTA4ODIsIDAuMTQxMzQyLCAwLjMzMTgxNiwgMC41MDk4NDksIDAuNzUzNjYzLCAxLjI0OTA1LCAxLjU1OTY0IiwgXAotICAgICAgICAgICIwLjEyMzU2MiwgMC4xNTQ3ODgsIDAuMzQwNTk4LCAwLjUxNTYwNCwgMC43NTYzNTksIDEuMjQ5MzUsIDEuNTU5NzkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDkzODMxLCAwLjE0MzE4NSwgMC40MjIzMTIsIDAuNjY4ODc0LCAwLjk5ODIwOSwgMS42NTQ3MSwgMi4wNjYxNCIsIFwKLSAgICAgICAgICAiMC4xMDA3MzIsIDAuMTUwMDc0LCAwLjQyOTIyOCwgMC42NzY0NjcsIDEuMDA0MjMsIDEuNjYwMjcsIDIuMDczNyIsIFwKLSAgICAgICAgICAiMC4xMDk5MjgsIDAuMTU5MjQ4LCAwLjQzODQxNSwgMC42ODQ5ODIsIDEuMDEzMzYsIDEuNjcwNzIsIDIuMDgxMTciLCBcCi0gICAgICAgICAgIjAuMTE5Mjg1LCAwLjE2ODQ0MiwgMC40NDc0NjEsIDAuNjkzODA3LCAxLjAyMzA2LCAxLjY3ODkyLCAyLjA5MTIzIiwgXAotICAgICAgICAgICIwLjEyODQxNSwgMC4xNzc0MDgsIDAuNDU2NDA1LCAwLjcwMjUyNSwgMS4wMzE1OCwgMS42ODg1OSwgMi4xMDAxNSIsIFwKLSAgICAgICAgICAiMC4xNDQxMTIsIDAuMTkyNTk0LCAwLjQ3MDk5MywgMC43MTY4LCAxLjA0NTI0LCAxLjcwMzM1LCAyLjExMTY2IiwgXAotICAgICAgICAgICIwLjE1NjgyNywgMC4yMDU4NTcsIDAuNDgzNjc1LCAwLjcyOTk5LCAxLjA1ODMxLCAxLjcxNDM1LCAyLjEyNjk4Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE5NTcxMSwgMC4yOTkyMjksIDAuODg2MTU2LCAxLjQwMzQ2LCAyLjA5NDgzLCAzLjQ3NDI5LCA0LjMzODMiLCBcCi0gICAgICAgICAgIjAuMTk1ODgsIDAuMjk5NjA5LCAwLjg4NjU1OCwgMS40MDQyMSwgMi4wOTQ1MywgMy40NzkxMiwgNC4zMzkwMSIsIFwKLSAgICAgICAgICAiMC4xOTcyMzYsIDAuMjk5MjY4LCAwLjg4NzIwOSwgMS40MDM1MywgMi4wOTQ1NCwgMy40NzU2NywgNC4zMzY4IiwgXAotICAgICAgICAgICIwLjIwMTM3MSwgMC4zMDE1NjEsIDAuODg3MDY5LCAxLjQwNTc5LCAyLjA5NDEsIDMuNDc1MDcsIDQuMzM5MjgiLCBcCi0gICAgICAgICAgIjAuMjA3NTA2LCAwLjMwNTUyMywgMC44ODU4NzIsIDEuNDAzMzYsIDIuMDk0ODIsIDMuNDc0MjcsIDQuMzM4NDkiLCBcCi0gICAgICAgICAgIjAuMjE4ODc3LCAwLjMxNDE0MSwgMC44ODU4ODQsIDEuNDA0MTUsIDIuMDk3MTIsIDMuNDc0ODUsIDQuMzQwMDUiLCBcCi0gICAgICAgICAgIjAuMjI5NTc1LCAwLjMyMzE4OCwgMC44ODc2OTMsIDEuNDAzNTMsIDIuMDkzNjgsIDMuNDc5OCwgNC4zMzgzMSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzY2ODgsIDAuMDU0Nzk3LCAwLjE1NzM4OSwgMC4yNDc5MiwgMC4zNjg2MzMsIDAuNjEwMDk2LCAwLjc2MDg3MSIsIFwKLSAgICAgICAgICAiMC4wNDUwNDUsIDAuMDYzMTU1LCAwLjE2NTg4NywgMC4yNTYyODYsIDAuMzc2OTQ5LCAwLjYxODQ2NCwgMC43NjkwNTYiLCBcCi0gICAgICAgICAgIjAuMDU1NTc0LCAwLjA3MzgzMiwgMC4xNzY0MjgsIDAuMjY2NzAxLCAwLjM4NzMyLCAwLjYyODczNywgMC43NzkyOCIsIFwKLSAgICAgICAgICAiMC4wNjYyNCwgMC4wODQ0NzIsIDAuMTg2NjMsIDAuMjc3MTc2LCAwLjM5Nzk4NSwgMC42Mzg5NCwgMC43ODk3ODQiLCBcCi0gICAgICAgICAgIjAuMDc0OTY0LCAwLjA5NDkyNCwgMC4xOTcyMTUsIDAuMjg3NzIyLCAwLjQwODMyMiwgMC42NDk3MzcsIDAuODAwMzk5IiwgXAotICAgICAgICAgICIwLjA4NTk2NSwgMC4xMDk2MjEsIDAuMjE0MzgyLCAwLjMwNDY0MiwgMC40MjU0MjEsIDAuNjY2NTg2LCAwLjgxNzM1OSIsIFwKLSAgICAgICAgICAiMC4wOTQyMTksIDAuMTIwMzcxLCAwLjIyOTQxMywgMC4zMTk1MTQsIDAuNDQwMDY4LCAwLjY4MTQ2OCwgMC44MzIyMTIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY4NzI3LCAwLjEwNjAwOCwgMC4zMTc1ODEsIDAuNTAzNDUyLCAwLjc1MTk4NCwgMS4yNDc4MywgMS41NTkyOSIsIFwKLSAgICAgICAgICAiMC4wNzAxNjgsIDAuMTA2NDQ2LCAwLjMxNjg5NywgMC41MDMwMTIsIDAuNzUyODI2LCAxLjI0Nzc4LCAxLjU1NzM5IiwgXAotICAgICAgICAgICIwLjA3NjQ3MywgMC4xMTA3MzksIDAuMzE2OTQyLCAwLjUwMzQ2MiwgMC43NTEzNDYsIDEuMjQ4OTEsIDEuNTU3NTYiLCBcCi0gICAgICAgICAgIjAuMDg0MzM1LCAwLjExNzQ0MSwgMC4zMTg4NTQsIDAuNTAzMTQ4LCAwLjc1MTIwOSwgMS4yNDgxMywgMS41NTkzIiwgXAotICAgICAgICAgICIwLjA5MzY0OSwgMC4xMjU4MjUsIDAuMzIyMjE0LCAwLjUwMzU0OSwgMC43NTI1NzgsIDEuMjQ3ODIsIDEuNTU4MDgiLCBcCi0gICAgICAgICAgIjAuMTA5MjY5LCAwLjE0MDU4OCwgMC4zMzAxNzMsIDAuNTA4NzIzLCAwLjc1MTc5OSwgMS4yNDczNCwgMS41NjA3MSIsIFwKLSAgICAgICAgICAiMC4xMjIzOSwgMC4xNTQzMTYsIDAuMzM4OTMzLCAwLjUxMzksIDAuNzU1NzU4LCAxLjI0ODYzLCAxLjU1NzYxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzMTE3LCAwLjAwMzExOSwgMC4wMDMxMjMsIDAuMDAzMTI0LCAwLjAwMzEyNCwgMC4wMDMxMjQsIDAuMDAzMTI1IiwgXAotICAgICAgICAgICIwLjAwMzA5LCAwLjAwMzEsIDAuMDAzMTE2LCAwLjAwMzExOSwgMC4wMDMxMjIsIDAuMDAzMTIyLCAwLjAwMzEyNCIsIFwKLSAgICAgICAgICAiMC4wMDMwNzMsIDAuMDAzMDg2LCAwLjAwMzEwOSwgMC4wMDMxMTQsIDAuMDAzMTE3LCAwLjAwMzEyLCAwLjAwMzEyMiIsIFwKLSAgICAgICAgICAiMC4wMDMwNzMsIDAuMDAzMDgyLCAwLjAwMzEwNCwgMC4wMDMxMTEsIDAuMDAzMTE2LCAwLjAwMzExOCwgMC4wMDMxMiIsIFwKLSAgICAgICAgICAiMC4wMDMwODUsIDAuMDAzMDksIDAuMDAzMTA1LCAwLjAwMzExMywgMC4wMDMxMTYsIDAuMDAzMTIsIDAuMDAzMTIxIiwgXAotICAgICAgICAgICIwLjAwMzEzNSwgMC4wMDMxMjMsIDAuMDAzMTE5LCAwLjAwMzExOSwgMC4wMDMxMiwgMC4wMDMxMjIsIDAuMDAzMTIyIiwgXAotICAgICAgICAgICIwLjAwMzIsIDAuMDAzMTcxLCAwLjAwMzEzOCwgMC4wMDMxMzEsIDAuMDAzMTI4LCAwLjAwMzEyNywgMC4wMDMxMjciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDA2NDksIDAuMDAwNjUsIDAuMDAwNjUsIDAuMDAwNjUsIDAuMDAwNjUsIDAuMDAwNjUsIDAuMDAwNjUiLCBcCi0gICAgICAgICAgIjAuMDAwNjI1LCAwLjAwMDYyNSwgMC4wMDA2MjUsIDAuMDAwNjI2LCAwLjAwMDYyMiwgMC4wMDA2MjEsIDAuMDAwNjIxIiwgXAotICAgICAgICAgICIwLjAwMDY1NiwgMC4wMDA2NCwgMC4wMDA2MzMsIDAuMDAwNjI5LCAwLjAwMDYyMywgMC4wMDA2MiwgMC4wMDA2MTkiLCBcCi0gICAgICAgICAgIjAuMDAwNjc5LCAwLjAwMDY5MSwgMC4wMDA2NDksIDAuMDAwNjQsIDAuMDAwNjM0LCAwLjAwMDYyNSwgMC4wMDA2MjMiLCBcCi0gICAgICAgICAgIjAuMDAwNzYxLCAwLjAwMDcyNCwgMC4wMDA2NjMsIDAuMDAwNjU1LCAwLjAwMDY0NSwgMC4wMDA2MzUsIDAuMDAwNjI4IiwgXAotICAgICAgICAgICIwLjAwMDg0OSwgMC4wMDA4NDksIDAuMDAwNzE4LCAwLjAwMDY5OCwgMC4wMDA2NzYsIDAuMDAwNjU1LCAwLjAwMDY0OCIsIFwKLSAgICAgICAgICAiMC4wMDA5ODMsIDAuMDAwOTc1LCAwLjAwMDc2OSwgMC4wMDA3MTksIDAuMDAwNjksIDAuMDAwNjY2LCAwLjAwMDY1NyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjY3OCwgMC4wMDI2ODEsIDAuMDAyNjg1LCAwLjAwMjY4NSwgMC4wMDI2ODUsIDAuMDAyNjg1LCAwLjAwMjY4NiIsIFwKLSAgICAgICAgICAiMC4wMDI2NTIsIDAuMDAyNjYxLCAwLjAwMjY3NywgMC4wMDI2NzksIDAuMDAyNjgyLCAwLjAwMjY4NSwgMC4wMDI2ODQiLCBcCi0gICAgICAgICAgIjAuMDAyNjM5LCAwLjAwMjY1LCAwLjAwMjY3LCAwLjAwMjY3NiwgMC4wMDI2NzksIDAuMDAyNjgyLCAwLjAwMjY4MiIsIFwKLSAgICAgICAgICAiMC4wMDI2NDUsIDAuMDAyNjUyLCAwLjAwMjY2OSwgMC4wMDI2NzUsIDAuMDAyNjc3LCAwLjAwMjY3OSwgMC4wMDI2ODEiLCBcCi0gICAgICAgICAgIjAuMDAyNjY4LCAwLjAwMjY2NSwgMC4wMDI2NzIsIDAuMDAyNjc1LCAwLjAwMjY3OCwgMC4wMDI2ODEsIDAuMDAyNjgiLCBcCi0gICAgICAgICAgIjAuMDAyNzI4LCAwLjAwMjcwNiwgMC4wMDI2ODcsIDAuMDAyNjg0LCAwLjAwMjY4NCwgMC4wMDI2ODUsIDAuMDAyNjg1IiwgXAotICAgICAgICAgICIwLjAwMjc5OSwgMC4wMDI3NjMsIDAuMDAyNzEsIDAuMDAyNjk5LCAwLjAwMjY5NSwgMC4wMDI2OSwgMC4wMDI2OSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDM2NywgMC4wMDAzNjksIDAuMDAwMzcxLCAwLjAwMDM3MSwgMC4wMDAzNzEsIDAuMDAwMzcxLCAwLjAwMDM3MSIsIFwKLSAgICAgICAgICAiMC4wMDAzNTgsIDAuMDAwMzYyLCAwLjAwMDM2OCwgMC4wMDAzNjksIDAuMDAwMzY5LCAwLjAwMDM3LCAwLjAwMDM3IiwgXAotICAgICAgICAgICIwLjAwMDM3MSwgMC4wMDAzNzEsIDAuMDAwMzcxLCAwLjAwMDM3NCwgMC4wMDAzNzMsIDAuMDAwMzczLCAwLjAwMDM3MiIsIFwKLSAgICAgICAgICAiMC4wMDAzOTgsIDAuMDAwNDI2LCAwLjAwMDM4MiwgMC4wMDAzODcsIDAuMDAwMzgyLCAwLjAwMDM3NywgMC4wMDAzNzYiLCBcCi0gICAgICAgICAgIjAuMDAwNDc2LCAwLjAwMDQ0NiwgMC4wMDA0MDIsIDAuMDAwMzkxLCAwLjAwMDM5NCwgMC4wMDAzODYsIDAuMDAwMzgyIiwgXAotICAgICAgICAgICIwLjAwMDU1OCwgMC4wMDA1MDgsIDAuMDAwNDY3LCAwLjAwMDQzNiwgMC4wMDA0MTgsIDAuMDAwNDAxLCAwLjAwMDM5NiIsIFwKLSAgICAgICAgICAiMC4wMDA2ODksIDAuMDAwNTk5LCAwLjAwMDUyMiwgMC4wMDA0NzQsIDAuMDAwNDQ1LCAwLjAwMDQxOSwgMC4wMDA0MTEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDIyMjUsIDAuMDAyMjMsIDAuMDAyMjM2LCAwLjAwMjIzNywgMC4wMDIyMzcsIDAuMDAyMjM3LCAwLjAwMjIzNyIsIFwKLSAgICAgICAgICAiMC4wMDIyMDEsIDAuMDAyMjExLCAwLjAwMjIyNywgMC4wMDIyMzEsIDAuMDAyMjMzLCAwLjAwMjIzNiwgMC4wMDIyMzUiLCBcCi0gICAgICAgICAgIjAuMDAyMjAzLCAwLjAwMjIwOCwgMC4wMDIyMjMsIDAuMDAyMjI3LCAwLjAwMjIzLCAwLjAwMjIzMywgMC4wMDIyMzQiLCBcCi0gICAgICAgICAgIjAuMDAyMjM2LCAwLjAwMjIyOCwgMC4wMDIyMjcsIDAuMDAyMjMsIDAuMDAyMjMyLCAwLjAwMjIzMywgMC4wMDIyMzQiLCBcCi0gICAgICAgICAgIjAuMDAyMzAyLCAwLjAwMjI3OSwgMC4wMDIyNDYsIDAuMDAyMjQyLCAwLjAwMjI0LCAwLjAwMjIzOCwgMC4wMDIyMzgiLCBcCi0gICAgICAgICAgIjAuMDAyNDEyLCAwLjAwMjM1OSwgMC4wMDIyODEsIDAuMDAyMjYzLCAwLjAwMjI1NiwgMC4wMDIyNDcsIDAuMDAyMjQ1IiwgXAotICAgICAgICAgICIwLjAwMjUzMSwgMC4wMDI0NSwgMC4wMDIzMjUsIDAuMDAyMjkzLCAwLjAwMjI3NSwgMC4wMDIyNTgsIDAuMDAyMjU1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwMDM3LCAwLjAwMDA0MiwgMC4wMDAwNDgsIDAuMDAwMDQ5LCAwLjAwMDA0OSwgMC4wMDAwNSwgMC4wMDAwNSIsIFwKLSAgICAgICAgICAiMC4wMDAwNDIsIDAuMDAwMDUyLCAwLjAwMDA2NywgMC4wMDAwNywgMC4wMDAwNzUsIDAuMDAwMDc3LCAwLjAwMDA3OCIsIFwKLSAgICAgICAgICAiMC4wMDAwNjIsIDAuMDAwMDU3LCAwLjAwMDA3MSwgMC4wMDAwNzcsIDAuMDAwMDgsIDAuMDAwMDgyLCAwLjAwMDA4MyIsIFwKLSAgICAgICAgICAiMC4wMDAwNzIsIDAuMDAwMDgyLCAwLjAwMDA4OSwgMC4wMDAwODcsIDAuMDAwMDg1LCAwLjAwMDA4NiwgMC4wMDAwODYiLCBcCi0gICAgICAgICAgIjAuMDAwMTE0LCAwLjAwMDE0MywgMC4wMDAxMDcsIDAuMDAwMSwgMC4wMDAwOTQsIDAuMDAwMDksIDAuMDAwMDkiLCBcCi0gICAgICAgICAgIjAuMDAwMjE2LCAwLjAwMDIzMSwgMC4wMDAxNDQsIDAuMDAwMTI1LCAwLjAwMDExMywgMC4wMDAxMDIsIDAuMDAwMDk5IiwgXAotICAgICAgICAgICIwLjAwMDMzNywgMC4wMDAzMzgsIDAuMDAwMTg5LCAwLjAwMDE1NCwgMC4wMDAxMzUsIDAuMDAwMTE3LCAwLjAwMDExMSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBOT1I0QkJYMiAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoTk9SNEJCWDIpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC43MTE3MDM7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEFOKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2Mjc1OTE7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjI3NTkxOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDYyNzUzNDsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDExMDIsIDAuMDAxMTAyLCAwLjAwMTE3MywgMC4wMDEyNzMsIDAuMDAxMzg4LCAwLjAwMTYwOSwgMC4wMDE3OTQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDI1NTEsIDAuMDAyNTUyLCAwLjAwMjYxNiwgMC4wMDI3MSwgMC4wMDI4MjYsIDAuMDAzMDc5LCAwLjAwMzIzMiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQk4pICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY1MTc3MTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2NTE3NzE7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjUxNDk3OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDc1NCwgMC4wMDA3NTEsIDAuMDAwODE2LCAwLjAwMDkxLCAwLjAwMTAyNCwgMC4wMDEyMywgMC4wMDE0MjEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDMxMzcsIDAuMDAzMTQyLCAwLjAwMzIxMSwgMC4wMDMzMTEsIDAuMDAzNDMsIDAuMDAzNjc2LCAwLjAwMzgzMSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQykgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNjc0NzY7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNjY2NzI7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNjc0NzY7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzA0LCAwLjAwMDMwNCwgMC4wMDAzMDQsIDAuMDAwMzA0LCAwLjAwMDMwNCwgMC4wMDAzMDQsIDAuMDAwMzA0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwODE4LCAwLjAwMDgxOSwgMC4wMDA4MTgsIDAuMDAwODE5LCAwLjAwMDgxOSwgMC4wMDA4MTgsIDAuMDAwODE4Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihEKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE3MTQ5OTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE3MTQ5OTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE3MTQ1OTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyMDMsIDAuMDAwMjAzLCAwLjAwMDIwMywgMC4wMDAyMDMsIDAuMDAwMjAzLCAwLjAwMDIwMywgMC4wMDAyMDMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA2MDksIDAuMDAwNjA5LCAwLjAwMDYwOSwgMC4wMDA2MDksIDAuMDAwNjA5LCAwLjAwMDYwOSwgMC4wMDA2MDkiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4xOTAyODM7Ci0gICAgZnVuY3Rpb24gOiAiKCEoKCgoIUJOKSsoIUFOKSkrQykrRCkpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTA1NDE5LCAwLjM4NzM0NiwgMC42MTI2ODMsIDAuODk0MzIxLCAxLjE3NjM0LCAxLjQ1Nzk3LCAxLjczOTcyIiwgXAotICAgICAgICAgICIwLjExMzM0NiwgMC4zOTU3NjYsIDAuNjIxMzgyLCAwLjkwMzI3NiwgMS4xODU4OCwgMS40Njg0MSwgMS43NTExOCIsIFwKLSAgICAgICAgICAiMC4xMjEwNDcsIDAuNDAzNDgxLCAwLjYyOTAwMywgMC45MTEwNjUsIDEuMTk0MjEsIDEuNDc1NDksIDEuNzU3MyIsIFwKLSAgICAgICAgICAiMC4xMjY2MjksIDAuNDA5MDg5LCAwLjYzNDY0NiwgMC45MTc1NDIsIDEuMTk4ODMsIDEuNDgxOTcsIDEuNzYzMTQiLCBcCi0gICAgICAgICAgIjAuMTMxMDcsIDAuNDEzOTA0LCAwLjYzOTkyMywgMC45MjE5OTQsIDEuMjAzMTQsIDEuNDg2MzIsIDEuNzY3NjQiLCBcCi0gICAgICAgICAgIjAuMTM3MTc4LCAwLjQxOTY4NywgMC42NDU2NTksIDAuOTI3OTMyLCAxLjIwOTQ0LCAxLjQ5MTY0LCAxLjc3MzE3IiwgXAotICAgICAgICAgICIwLjE0MTYyNCwgMC40MjQxNjgsIDAuNjQ5NzU4LCAwLjkzMTkzNCwgMS4yMTQzNSwgMS40OTczMSwgMS43Nzc3MiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNTg1MzEsIDAuNzUzNjgzLCAxLjIzMDA0LCAxLjgyNTcsIDIuNDIzMTEsIDMuMDE3MDYsIDMuNjEyNjYiLCBcCi0gICAgICAgICAgIjAuMTU4NjQ1LCAwLjc1NDk1MiwgMS4yMzA4LCAxLjgyNzExLCAyLjQyMjA4LCAzLjAxNzcyLCAzLjYxNTUxIiwgXAotICAgICAgICAgICIwLjE1ODY1MywgMC43NTQ3NzYsIDEuMjMyMDgsIDEuODI4MzYsIDIuNDIyNSwgMy4wMjI4MywgMy42MTg2OCIsIFwKLSAgICAgICAgICAiMC4xNTg2NjUsIDAuNzU0NzMxLCAxLjIzMjA2LCAxLjgyNjYyLCAyLjQyMjI3LCAzLjAxODI1LCAzLjYxOTQ4IiwgXAotICAgICAgICAgICIwLjE1ODU4NCwgMC43NTQxMDQsIDEuMjMxMTEsIDEuODI2MjYsIDIuNDIzMDgsIDMuMDE4MDUsIDMuNjE4NzciLCBcCi0gICAgICAgICAgIjAuMTU4NTcsIDAuNzU0NjYsIDEuMjMwODIsIDEuODI3MTEsIDIuNDIyMzQsIDMuMDIxOTgsIDMuNjE0OSIsIFwKLSAgICAgICAgICAiMC4xNTg2MDcsIDAuNzUzOTA5LCAxLjIzMDY3LCAxLjgyNjI4LCAyLjQyMTk5LCAzLjAxODM3LCAzLjYxNzY5Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0NDk0LCAwLjEyMjg3MywgMC4xODM4ODIsIDAuMjU5OTIxLCAwLjMzNTgxNywgMC40MTE4MDksIDAuNDg3NTciLCBcCi0gICAgICAgICAgIjAuMDUyODczLCAwLjEzMDc5MiwgMC4xOTE3ODgsIDAuMjY3OTEsIDAuMzQzODksIDAuNDE5NjU0LCAwLjQ5NTUzIiwgXAotICAgICAgICAgICIwLjA2MTEwNiwgMC4xMzkwNSwgMC4yMDAwNDMsIDAuMjc2MDc4LCAwLjM1MTk5NiwgMC40Mjc5MDEsIDAuNTAzODU0IiwgXAotICAgICAgICAgICIwLjA2NzA3NSwgMC4xNDQ5ODYsIDAuMjA1OTU4LCAwLjI4MTk3OSwgMC4zNTc5MTYsIDAuNDMzOTAzLCAwLjUwOTYzOCIsIFwKLSAgICAgICAgICAiMC4wNzE5MjMsIDAuMTQ5ODM4LCAwLjIxMDg1NSwgMC4yODY3OTUsIDAuMzYyNjk5LCAwLjQzODY0NiwgMC41MTQ0OTgiLCBcCi0gICAgICAgICAgIjAuMDc4NTE1LCAwLjE1NjIwMSwgMC4yMTcxMTYsIDAuMjkzMTA2LCAwLjM2OTAwMiwgMC40NDQ4OTIsIDAuNTIwNzM5IiwgXAotICAgICAgICAgICIwLjA4MzMwNywgMC4xNjExNzksIDAuMjIyMDA3LCAwLjI5Nzk1MSwgMC4zNzM5NTEsIDAuNDQ5Nzc2LCAwLjUyNTgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQ5ODE1LCAwLjIwNTgzNywgMC4zMzE1MTEsIDAuNDg4NzUyLCAwLjY0NjI3MywgMC44MDM2NSwgMC45NjEwOTMiLCBcCi0gICAgICAgICAgIjAuMDQ5ODU4LCAwLjIwNTc3OSwgMC4zMzE1MTksIDAuNDg4OTIyLCAwLjY0NjM4OSwgMC44MDM0OTMsIDAuOTYwODc3IiwgXAotICAgICAgICAgICIwLjA1MDUxNSwgMC4yMDU3NTgsIDAuMzMxNDU4LCAwLjQ4ODc4OSwgMC42NDYzNTMsIDAuODAzNTE2LCAwLjk2MDk4NiIsIFwKLSAgICAgICAgICAiMC4wNTEyOTUsIDAuMjA1OTczLCAwLjMzMTU0NywgMC40ODg5MjYsIDAuNjQ2MzY2LCAwLjgwMzY5MSwgMC45NjA4OSIsIFwKLSAgICAgICAgICAiMC4wNTIxNDcsIDAuMjA2MTM5LCAwLjMzMTYzOSwgMC40ODg5MjcsIDAuNjQ2MTg5LCAwLjgwMzUxNywgMC45NjExNzIiLCBcCi0gICAgICAgICAgIjAuMDUzMTYxLCAwLjIwNjQxMSwgMC4zMzE3MjgsIDAuNDg4OTIyLCAwLjY0NjMwNiwgMC44MDM3MzUsIDAuOTYwOTcxIiwgXAotICAgICAgICAgICIwLjA1NDEzNywgMC4yMDY1NDEsIDAuMzMxODUsIDAuNDg4OTk0LCAwLjY0NjM4NiwgMC44MDM4ODcsIDAuOTYxMTgxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkJOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDI0NzUsIDAuMzg0NzgzLCAwLjYxMDg0NywgMC44OTMwMywgMS4xNzQzMSwgMS40NTczNywgMS43Mzg3OCIsIFwKLSAgICAgICAgICAiMC4xMTA1MjUsIDAuMzkyNzIxLCAwLjYxOTA2OCwgMC45MDAzOTIsIDEuMTgzMjMsIDEuNDYzOTcsIDEuNzQ4NDYiLCBcCi0gICAgICAgICAgIjAuMTE4NzE0LCAwLjQwMTIzNiwgMC42MjY3NywgMC45MDg3MDksIDEuMTkxNDQsIDEuNDcyNzcsIDEuNzU2NzQiLCBcCi0gICAgICAgICAgIjAuMTI0NjIsIDAuNDA3MzAxLCAwLjYzMzI5OCwgMC45MTUzOCwgMS4xOTY3MywgMS40Nzk4MywgMS43NjExOCIsIFwKLSAgICAgICAgICAiMC4xMjk0MjMsIDAuNDEyMjQ2LCAwLjYzNzc0LCAwLjkxOTYyMSwgMS4yMDI2LCAxLjQ4NDMxLCAxLjc2NjE5IiwgXAotICAgICAgICAgICIwLjEzNjAwMiwgMC40MTg0MywgMC42NDQwNywgMC45MjYyMjMsIDEuMjA3OTIsIDEuNDg5OCwgMS43NzE4MiIsIFwKLSAgICAgICAgICAiMC4xNDA3NzUsIDAuNDIzMTI2LCAwLjY0ODg5MywgMC45MzA2NzgsIDEuMjEyODEsIDEuNDk0NTgsIDEuNzc2ODEiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTU4NTUxLCAwLjc1NDYxNCwgMS4yMzA1NSwgMS44MjYyMiwgMi40MjI5MiwgMy4wMTc2MywgMy42MTk3NCIsIFwKLSAgICAgICAgICAiMC4xNTg2NDMsIDAuNzU0NTUsIDEuMjMwODEsIDEuODI3NCwgMi40MjIxOSwgMy4wMTk1NywgMy42MTU1NiIsIFwKLSAgICAgICAgICAiMC4xNTg1MjcsIDAuNzU1MDE2LCAxLjIzMTE1LCAxLjgyNzE3LCAyLjQyMjE0LCAzLjAxNzc5LCAzLjYxNTQ5IiwgXAotICAgICAgICAgICIwLjE1ODY5NywgMC43NTM5OTYsIDEuMjMwNzgsIDEuODI2MjQsIDIuNDIyNDUsIDMuMDE4MTksIDMuNjE0NDQiLCBcCi0gICAgICAgICAgIjAuMTU4Njk0LCAwLjc1NDA3MSwgMS4yMzIzLCAxLjgyODQ5LCAyLjQyMjQzLCAzLjAxNzcxLCAzLjYxMzQzIiwgXAotICAgICAgICAgICIwLjE1ODczNywgMC43NTQzNzQsIDEuMjMxNDcsIDEuODI2NzMsIDIuNDI0ODMsIDMuMDIwMzYsIDMuNjE1OTMiLCBcCi0gICAgICAgICAgIjAuMTU5MDM1LCAwLjc1Mzk3MywgMS4yMzE2OSwgMS44Mjc4NSwgMi40MjQ0OCwgMy4wMjA5MiwgMy42MTc1NSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDYxODcsIDAuMTIzMTEzLCAwLjE4MzkxLCAwLjI1OTg2MywgMC4zMzU2ODUsIDAuNDExNjA1LCAwLjQ4NzQ2NyIsIFwKLSAgICAgICAgICAiMC4wNTQxNjEsIDAuMTMxMDU0LCAwLjE5MTg2NCwgMC4yNjc3ODcsIDAuMzQzNzc4LCAwLjQxOTU2OCwgMC40OTU0MzMiLCBcCi0gICAgICAgICAgIjAuMDYyODQyLCAwLjEzOTc1NywgMC4yMDA1NzcsIDAuMjc2NDk3LCAwLjM1MjQ4NiwgMC40MjgzMDgsIDAuNTA0MTg2IiwgXAotICAgICAgICAgICIwLjA2OTI4NCwgMC4xNDYzMDMsIDAuMjA3MDksIDAuMjgzMDAyLCAwLjM1ODg4MywgMC40MzQ4NzMsIDAuNTEwNjI3IiwgXAotICAgICAgICAgICIwLjA3NDQzMywgMC4xNTE3MTYsIDAuMjEyMTczLCAwLjI4ODA5MSwgMC4zNjM5NCwgMC40Mzk4NTQsIDAuNTE1Nzc4IiwgXAotICAgICAgICAgICIwLjA4MTQyNSwgMC4xNTgyNjcsIDAuMjE4OTksIDAuMjk0ODQzLCAwLjM3MDc0NCwgMC40NDY1NTEsIDAuNTIyMzk0IiwgXAotICAgICAgICAgICIwLjA4NjQ0MywgMC4xNjM0NTUsIDAuMjI0MTk1LCAwLjMwMDAyMiwgMC4zNzU4NDksIDAuNDUxNzIzLCAwLjUyNzU5NSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDczNDIsIDAuMjAyNzIsIDAuMzI4NDkyLCAwLjQ4NTc4OCwgMC42NDMxMjIsIDAuODAwNjI4LCAwLjk1ODA0OSIsIFwKLSAgICAgICAgICAiMC4wNDczNzMsIDAuMjAyNzg1LCAwLjMyODQ2MiwgMC40ODU4MSwgMC42NDMzOTUsIDAuODAwNzM3LCAwLjk1ODIwMiIsIFwKLSAgICAgICAgICAiMC4wNDgwMjksIDAuMjAyODU2LCAwLjMyODQ2OCwgMC40ODU4MTUsIDAuNjQzMzU4LCAwLjgwMDgzNSwgMC45NTgyMyIsIFwKLSAgICAgICAgICAiMC4wNDkwMTMsIDAuMjAyOTk5LCAwLjMyODU2OSwgMC40ODU5NDUsIDAuNjQzNDEzLCAwLjgwMDg1NiwgMC45NTgwOTciLCBcCi0gICAgICAgICAgIjAuMDQ5OTYsIDAuMjAzMjE2LCAwLjMyODYxNCwgMC40ODU4NDMsIDAuNjQzMjE0LCAwLjgwMDUyMywgMC45NTgyOTYiLCBcCi0gICAgICAgICAgIjAuMDUxMDM4LCAwLjIwMzU0MiwgMC4zMjg5MjEsIDAuNDg1OTg0LCAwLjY0MzI1MiwgMC44MDA3NTcsIDAuOTU3OTM5IiwgXAotICAgICAgICAgICIwLjA1MjE1NywgMC4yMDM3OTEsIDAuMzI4OTE4LCAwLjQ4NTk4LCAwLjY0MzI4OCwgMC44MDA3MjUsIDAuOTU4NDczIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4MDA0NywgMC4zNjIxMjMsIDAuNTg4MDMzLCAwLjg3MDI2OCwgMS4xNTI1NiwgMS40MzUwMywgMS43MTYxNyIsIFwKLSAgICAgICAgICAiMC4wODYxNTcsIDAuMzY4NjQzLCAwLjU5NDg1NSwgMC44NzY2MzQsIDEuMTU5NDksIDEuNDQwNjcsIDEuNzIyOTciLCBcCi0gICAgICAgICAgIjAuMDkzNDI2LCAwLjM3NjA3MSwgMC42MDE3NzgsIDAuODgzNjM1LCAxLjE2NjY0LCAxLjQ0ODAyLCAxLjczMDQ5IiwgXAotICAgICAgICAgICIwLjEwMDk5NSwgMC4zODM5MTYsIDAuNjA5NTE0LCAwLjg5MjE2MSwgMS4xNzMyLCAxLjQ1NjM5LCAxLjczNjk3IiwgXAotICAgICAgICAgICIwLjEwODQ3MSwgMC4zOTEwOSwgMC42MTcxMjYsIDAuODk5NzE3LCAxLjE4MDY5LCAxLjQ2MzQyLCAxLjc0NDU2IiwgXAotICAgICAgICAgICIwLjExOTg4NywgMC40MDMzMDEsIDAuNjI5MzMxLCAwLjkxMDc3NywgMS4xOTI4MSwgMS40NzQ5NiwgMS43NTg3MiIsIFwKLSAgICAgICAgICAiMC4xMjkwMzMsIDAuNDEzODA0LCAwLjYzOTIwOCwgMC45MjE5MjgsIDEuMjAzODEsIDEuNDg1NTMsIDEuNzY3MzYiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTU4MzkxLCAwLjc1NDEzOSwgMS4yMzA1OSwgMS44MjY0MiwgMi40MjIwMiwgMy4wMTgzMywgMy42MTM0MSIsIFwKLSAgICAgICAgICAiMC4xNTg1MTgsIDAuNzU0Mzc0LCAxLjIzMDgyLCAxLjgyNjI4LCAyLjQyMjYxLCAzLjAyMjkyLCAzLjYxMzQ0IiwgXAotICAgICAgICAgICIwLjE1OTc5NywgMC43NTQ3NzEsIDEuMjMyMSwgMS44MjY0NSwgMi40MjE5NiwgMy4wMjE4OSwgMy42MTUwMSIsIFwKLSAgICAgICAgICAiMC4xNjMxNzEsIDAuNzU0MTA3LCAxLjIzMDg2LCAxLjgyNTk0LCAyLjQyMzUyLCAzLjAxODAyLCAzLjYxNzA4IiwgXAotICAgICAgICAgICIwLjE2Nzk4OCwgMC43NTUwMDIsIDEuMjMwNjMsIDEuODI2NTMsIDIuNDIzMTcsIDMuMDE3NzcsIDMuNjE1MTMiLCBcCi0gICAgICAgICAgIjAuMTc2ODIzLCAwLjc1NTQ5MSwgMS4yMzA2NCwgMS44MjgzLCAyLjQyMjU5LCAzLjAyMTQ1LCAzLjYxNDgyIiwgXAotICAgICAgICAgICIwLjE4NTg4NiwgMC43NTc2LCAxLjIzMTczLCAxLjgyODY4LCAyLjQyMjMxLCAzLjAxOTQ0LCAzLjYxNzA3Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyNDIyMSwgMC4xMDAzMSwgMC4xNjEwMzksIDAuMjM2ODc4LCAwLjMxMjcyNiwgMC4zODg3NjYsIDAuNDY0MzQ4IiwgXAotICAgICAgICAgICIwLjAzMjcwMSwgMC4xMDg3OTQsIDAuMTY5NDc0LCAwLjI0NTMwNCwgMC4zMjExMjIsIDAuMzk3MDYyLCAwLjQ3MjgwOSIsIFwKLSAgICAgICAgICAiMC4wNDMwNDMsIDAuMTE5MTkzLCAwLjE3OTg4NywgMC4yNTU3NzcsIDAuMzMxNjA4LCAwLjQwNzQ4LCAwLjQ4MzQwMSIsIFwKLSAgICAgICAgICAiMC4wNTA4NjIsIDAuMTI5ODMxLCAwLjE5MDQ5MSwgMC4yNjYyNzcsIDAuMzQyMzc2LCAwLjQxODI1NiwgMC40OTQwMjQiLCBcCi0gICAgICAgICAgIjAuMDU3MjA5LCAwLjE0MDU4MywgMC4yMDEwNjksIDAuMjc2MzQ2LCAwLjM1MDczMiwgMC40MjgxOTksIDAuNTAzODI1IiwgXAotICAgICAgICAgICIwLjA2NTYwNiwgMC4xNTcxMDIsIDAuMjE4MzgzLCAwLjI5NDE4MiwgMC4zNjg5NDIsIDAuNDQ0ODQsIDAuNTIwNjI1IiwgXAotICAgICAgICAgICIwLjA3MTQ1NiwgMC4xNzMyMTEsIDAuMjMyMzI1LCAwLjMwNzc4NSwgMC4zODM2MDEsIDAuNDU5MzE2LCAwLjUzNjEyMiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDE3NDcsIDAuMTk5MTQ4LCAwLjMyNTE1MywgMC40ODI0OTUsIDAuNjM5OTAyLCAwLjc5NzU5MiwgMC45NTQ4MjQiLCBcCi0gICAgICAgICAgIjAuMDQ0MzgyLCAwLjE5OTE0OCwgMC4zMjUwNzIsIDAuNDgyNTcyLCAwLjYzOTg5LCAwLjc5NzI5MiwgMC45NTQ5OTEiLCBcCi0gICAgICAgICAgIjAuMDUyMDkzLCAwLjIwMDE3NSwgMC4zMjUwNjksIDAuNDgyMzI3LCAwLjY0MDAyNiwgMC43OTczMjQsIDAuOTU0ODg4IiwgXAotICAgICAgICAgICIwLjA2MTg3OCwgMC4yMDQwNCwgMC4zMjYyNDcsIDAuNDgyMzE5LCAwLjYzOTg5LCAwLjc5NzQ5OCwgMC45NTQ1ODkiLCBcCi0gICAgICAgICAgIjAuMDcwOTU0LCAwLjIwOTkxLCAwLjMyOTM4MywgMC40ODMzOTQsIDAuNjQwMDY3LCAwLjc5NzQzNywgMC45NTQ3ODQiLCBcCi0gICAgICAgICAgIjAuMDg0MTg3LCAwLjIyMTcyMSwgMC4zMzcwODIsIDAuNDg3ODc3LCAwLjY0MTcxNCwgMC43OTc3MjUsIDAuOTU0ODEyIiwgXAotICAgICAgICAgICIwLjA5NTExMiwgMC4yMzE2NTcsIDAuMzQ2NjczLCAwLjQ5NDE0MSwgMC42NDU4NTMsIDAuNzk5NzIzLCAwLjk1NTMzMiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJEIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjkwMjQsIDAuMzUwOTEyLCAwLjU3NzU4OSwgMC44NTk3ODYsIDEuMTQxNjgsIDEuNDI0MTYsIDEuNzA1MyIsIFwKLSAgICAgICAgICAiMC4wNzU2LCAwLjM1ODEyNSwgMC41ODQ0OTUsIDAuODY1NTkyLCAxLjE0NzY1LCAxLjQzMDA5LCAxLjcxMzA5IiwgXAotICAgICAgICAgICIwLjA4NDU4NywgMC4zNjY3ODksIDAuNTkyMTk3LCAwLjg3NDkxMiwgMS4xNTY2NCwgMS40Mzg3OCwgMS43MjEzNCIsIFwKLSAgICAgICAgICAiMC4wOTM3NDUsIDAuMzc1NDAxLCAwLjYwMTIyMywgMC44ODMwMDgsIDEuMTY0NzcsIDEuNDQ4NjYsIDEuNzI5NjciLCBcCi0gICAgICAgICAgIjAuMTAzMzM1LCAwLjM4Mzk1NiwgMC42MDk3NDEsIDAuODkxNDcsIDEuMTczMDQsIDEuNDU1NiwgMS43MzY5IiwgXAotICAgICAgICAgICIwLjExNzc5LCAwLjM5ODAyOCwgMC42MjM2MDYsIDAuOTA1MjQ3LCAxLjE4Njc4LCAxLjQ2ODczLCAxLjc1MTg4IiwgXAotICAgICAgICAgICIwLjEyODczMywgMC40MTA3MzEsIDAuNjM1OTQ0LCAwLjkxNzQxNywgMS4xOTkyNCwgMS40ODEyNiwgMS43NjMxIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE1Nzk2NywgMC43NTM4MDIsIDEuMjMxMDUsIDEuODI2NTQsIDIuNDIyMDIsIDMuMDE4MjMsIDMuNjEzNDEiLCBcCi0gICAgICAgICAgIjAuMTU2OTcyLCAwLjc1NDc1OCwgMS4yMzA4MywgMS44Mjg0NCwgMi40MjQ2OCwgMy4wMTgyMiwgMy42MTQwNSIsIFwKLSAgICAgICAgICAiMC4xNTk2OTQsIDAuNzU0NzEsIDEuMjMwNDIsIDEuODI2MzEsIDIuNDI1MjgsIDMuMDE4MTcsIDMuNjEzNjEiLCBcCi0gICAgICAgICAgIjAuMTY1MDk3LCAwLjc1NDc0NiwgMS4yMzA5OCwgMS44Mjg1OSwgMi40MjIyNSwgMy4wMTkzOSwgMy42MTM1MSIsIFwKLSAgICAgICAgICAiMC4xNzE4MjEsIDAuNzUzNzg2LCAxLjIzMDM4LCAxLjgyODc1LCAyLjQyNDgyLCAzLjAyMjExLCAzLjYxNiIsIFwKLSAgICAgICAgICAiMC4xODMzMjIsIDAuNzU0NTI5LCAxLjIzMDUyLCAxLjgyODQ2LCAyLjQyMjMxLCAzLjAxOTg4LCAzLjYxMzUxIiwgXAotICAgICAgICAgICIwLjE5Mzc3NCwgMC43NTgzMTgsIDEuMjMxOTIsIDEuODI4MzMsIDIuNDIxOTMsIDMuMDIxNzksIDMuNjE4MTYiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDIxODczLCAwLjA5NzczOSwgMC4xNTg0MDMsIDAuMjM0MzEyLCAwLjMxMDEzMiwgMC4zODU5MDYsIDAuNDYxODMxIiwgXAotICAgICAgICAgICIwLjAzMDQyMSwgMC4xMDYyOTYsIDAuMTY2OTczLCAwLjI0Mjc4NCwgMC4zMTg1NzksIDAuMzk0NTQ0LCAwLjQ3MDI0MyIsIFwKLSAgICAgICAgICAiMC4wNDAyMjEsIDAuMTE2ODA2LCAwLjE3NzYxOCwgMC4yNTM0NzksIDAuMzI5MjU2LCAwLjQwNTI5NSwgMC40ODEwOCIsIFwKLSAgICAgICAgICAiMC4wNDc1NywgMC4xMjczOCwgMC4xODgxNzUsIDAuMjYzOTQxLCAwLjMzOTY0NywgMC40MTU2OSwgMC40OTE2ODIiLCBcCi0gICAgICAgICAgIjAuMDUzNDI2LCAwLjEzODEzLCAwLjE5ODYxLCAwLjI3NDM4NywgMC4zNDk3MjgsIDAuNDI2MDg0LCAwLjUwMTg4OSIsIFwKLSAgICAgICAgICAiMC4wNjA5MjksIDAuMTU0OTgyLCAwLjIxNTg5NiwgMC4yOTExMDksIDAuMzY2NzcxLCAwLjQ0MjY0MywgMC41MTg0OTIiLCBcCi0gICAgICAgICAgIjAuMDY2MjMzLCAwLjE2OTkzMSwgMC4yMzAzNTIsIDAuMzA1OTA3LCAwLjM4MTkzOCwgMC40NTc3NSwgMC41MzM2ODciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM4NzI2LCAwLjE5NjM3MywgMC4zMjI2NTcsIDAuNDc5NTA3LCAwLjYzNjk5NiwgMC43OTU4MiwgMC45NTM0NjciLCBcCi0gICAgICAgICAgIjAuMDQxNjczLCAwLjE5NjA3NiwgMC4zMjE5NjksIDAuNDc5NDMsIDAuNjM3ODM2LCAwLjc5NDQsIDAuOTUzMTk4IiwgXAotICAgICAgICAgICIwLjA1MDI4OCwgMC4xOTc1MDQsIDAuMzIxOTQyLCAwLjQ3OTU1NSwgMC42Mzc5MTQsIDAuNzk0MzgsIDAuOTUxODUzIiwgXAotICAgICAgICAgICIwLjA1OTcxNiwgMC4yMDEzNTEsIDAuMzIzODM0LCAwLjQ3OTUzNywgMC42MzY5NjYsIDAuNzk1NjMsIDAuOTUxODk5IiwgXAotICAgICAgICAgICIwLjA2ODY5NSwgMC4yMDcxMjcsIDAuMzI3MTE2LCAwLjQ4MTI3NSwgMC42MzgxNDMsIDAuNzk1NjUzLCAwLjk1MzM3NSIsIFwKLSAgICAgICAgICAiMC4wODE3ODEsIDAuMjE4NjI0LCAwLjMzNDc3MiwgMC40ODYwNTUsIDAuNjM5OTUsIDAuNzk1ODgxLCAwLjk1MTk2NSIsIFwKLSAgICAgICAgICAiMC4wOTIzMzksIDAuMjMwMjMxLCAwLjM0Mzg5OCwgMC40OTExNSwgMC42NDM2MTIsIDAuNzk3MDgxLCAwLjk1MjM3OCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkFOIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDkxMzksIDAuMDA5MTc3LCAwLjAwOTE4MSwgMC4wMDkxOCwgMC4wMDkxODQsIDAuMDA5MTg0LCAwLjAwOTE4NSIsIFwKLSAgICAgICAgICAiMC4wMDkxMTgsIDAuMDA5MTcxLCAwLjAwOTE3OCwgMC4wMDkxOCwgMC4wMDkxODQsIDAuMDA5MTg1LCAwLjAwOTE4NCIsIFwKLSAgICAgICAgICAiMC4wMDkxNjcsIDAuMDA5MjMxLCAwLjAwOTI0MiwgMC4wMDkyNDgsIDAuMDA5MjUsIDAuMDA5MjUxLCAwLjAwOTI1NSIsIFwKLSAgICAgICAgICAiMC4wMDkyNTEsIDAuMDA5MzE5LCAwLjAwOTMzMywgMC4wMDkzNCwgMC4wMDkzNDIsIDAuMDA5MzQ2LCAwLjAwOTM0NyIsIFwKLSAgICAgICAgICAiMC4wMDkzNTYsIDAuMDA5NDMsIDAuMDA5NDQ0LCAwLjAwOTQ1MSwgMC4wMDk0NTUsIDAuMDA5NDU3LCAwLjAwOTQ2IiwgXAotICAgICAgICAgICIwLjAwOTUzNywgMC4wMDk2MjMsIDAuMDA5NjI2LCAwLjAwOTY1LCAwLjAwOTY1MiwgMC4wMDk2NDYsIDAuMDA5NjQ2IiwgXAotICAgICAgICAgICIwLjAwOTcyMiwgMC4wMDk3OTksIDAuMDA5ODI2LCAwLjAwOTgzNiwgMC4wMDk4MzIsIDAuMDA5ODQ0LCAwLjAwOTg0NSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNTkxNSwgMC4wMDU5MTQsIDAuMDA1OTE0LCAwLjAwNTkxNCwgMC4wMDU5MTQsIDAuMDA1OTE0LCAwLjAwNTkxMyIsIFwKLSAgICAgICAgICAiMC4wMDU5MDUsIDAuMDA1OTExLCAwLjAwNTkxMSwgMC4wMDU5MTEsIDAuMDA1OTExLCAwLjAwNTkxLCAwLjAwNTkxMSIsIFwKLSAgICAgICAgICAiMC4wMDU5NjIsIDAuMDA1OTYyLCAwLjAwNTk2MywgMC4wMDU5NjMsIDAuMDA1OTYyLCAwLjAwNTk2MywgMC4wMDU5NjIiLCBcCi0gICAgICAgICAgIjAuMDA2MDUzLCAwLjAwNjA1MiwgMC4wMDYwNTIsIDAuMDA2MDUyLCAwLjAwNjA1MywgMC4wMDYwNTIsIDAuMDA2MDUyIiwgXAotICAgICAgICAgICIwLjAwNjE2NywgMC4wMDYxNiwgMC4wMDYxNTIsIDAuMDA2MTU5LCAwLjAwNjE1OCwgMC4wMDYxNTgsIDAuMDA2MTU3IiwgXAotICAgICAgICAgICIwLjAwNjM0NSwgMC4wMDYzNTgsIDAuMDA2MzU0LCAwLjAwNjM1MiwgMC4wMDYzNTMsIDAuMDA2MzUxLCAwLjAwNjM1IiwgXAotICAgICAgICAgICIwLjAwNjUyNiwgMC4wMDY1MjYsIDAuMDA2NTIsIDAuMDA2NTIxLCAwLjAwNjUyNCwgMC4wMDY1MTksIDAuMDA2NTI0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQk4iOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNzU2OSwgMC4wMDc2MDksIDAuMDA3NjEsIDAuMDA3NjIxLCAwLjAwNzYxNywgMC4wMDc2MSwgMC4wMDc2MTgiLCBcCi0gICAgICAgICAgIjAuMDA3NTU2LCAwLjAwNzYxMSwgMC4wMDc2MTcsIDAuMDA3NjIxLCAwLjAwNzYyMywgMC4wMDc2MjQsIDAuMDA3NjI1IiwgXAotICAgICAgICAgICIwLjAwNzU5OCwgMC4wMDc2NjQsIDAuMDA3Njc0LCAwLjAwNzY3OCwgMC4wMDc2ODIsIDAuMDA3NjgzLCAwLjAwNzY4NCIsIFwKLSAgICAgICAgICAiMC4wMDc2NywgMC4wMDc3NDEsIDAuMDA3NzUzLCAwLjAwNzc1OSwgMC4wMDc3NjMsIDAuMDA3NzY3LCAwLjAwNzc2NyIsIFwKLSAgICAgICAgICAiMC4wMDc3NywgMC4wMDc4NDUsIDAuMDA3ODYsIDAuMDA3ODY4LCAwLjAwNzg3LCAwLjAwNzg3NSwgMC4wMDc4NzUiLCBcCi0gICAgICAgICAgIjAuMDA3OTU0LCAwLjAwODAzMiwgMC4wMDgwNDcsIDAuMDA4MDU2LCAwLjAwODA2MSwgMC4wMDgwNjQsIDAuMDA4MDY2IiwgXAotICAgICAgICAgICIwLjAwODEzNiwgMC4wMDgyMDUsIDAuMDA4MjMsIDAuMDA4MjQsIDAuMDA4MjM3LCAwLjAwODIzMywgMC4wMDgyNDMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDU3MSwgMC4wMDU3MTYsIDAuMDA1NzE2LCAwLjAwNTcxNywgMC4wMDU3MTYsIDAuMDA1NzE3LCAwLjAwNTcxNyIsIFwKLSAgICAgICAgICAiMC4wMDU2OTgsIDAuMDA1NzEyLCAwLjAwNTcxMywgMC4wMDU3MTQsIDAuMDA1NzE0LCAwLjAwNTcxNCwgMC4wMDU3MTUiLCBcCi0gICAgICAgICAgIjAuMDA1NzU5LCAwLjAwNTc3MiwgMC4wMDU3NzQsIDAuMDA1Nzc1LCAwLjAwNTc3NSwgMC4wMDU3NzYsIDAuMDA1Nzc1IiwgXAotICAgICAgICAgICIwLjAwNTgzOCwgMC4wMDU4NTQsIDAuMDA1ODU2LCAwLjAwNTg1NywgMC4wMDU4NTgsIDAuMDA1ODU3LCAwLjAwNTg1OCIsIFwKLSAgICAgICAgICAiMC4wMDU5NTEsIDAuMDA1OTUyLCAwLjAwNTk2MiwgMC4wMDU5NjEsIDAuMDA1OTYyLCAwLjAwNTk1NywgMC4wMDU5NjIiLCBcCi0gICAgICAgICAgIjAuMDA2MTIxLCAwLjAwNjE1NCwgMC4wMDYxNTIsIDAuMDA2MTUxLCAwLjAwNjE1MSwgMC4wMDYxNSwgMC4wMDYxNSIsIFwKLSAgICAgICAgICAiMC4wMDYyOTcsIDAuMDA2MzE4LCAwLjAwNjMxNSwgMC4wMDYzMTUsIDAuMDA2MzE1LCAwLjAwNjMxNSwgMC4wMDYzMTUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDYyNTcsIDAuMDA2Mjc5LCAwLjAwNjI3OCwgMC4wMDYyODIsIDAuMDA2Mjg1LCAwLjAwNjI4MiwgMC4wMDYyODIiLCBcCi0gICAgICAgICAgIjAuMDA2MTg2LCAwLjAwNjI1NiwgMC4wMDYyNjcsIDAuMDA2MjcyLCAwLjAwNjI3NSwgMC4wMDYyNzYsIDAuMDA2Mjc1IiwgXAotICAgICAgICAgICIwLjAwNjE1MywgMC4wMDYyMzUsIDAuMDA2MjUyLCAwLjAwNjI2MSwgMC4wMDYyNjUsIDAuMDA2MjcsIDAuMDA2MjciLCBcCi0gICAgICAgICAgIjAuMDA2MTU2LCAwLjAwNjIyMiwgMC4wMDYyNDIsIDAuMDA2MjUzLCAwLjAwNjI2MSwgMC4wMDYyNjUsIDAuMDA2MjY4IiwgXAotICAgICAgICAgICIwLjAwNjE5NCwgMC4wMDYyMjQsIDAuMDA2MjQxLCAwLjAwNjI1NSwgMC4wMDYyNTksIDAuMDA2MjYzLCAwLjAwNjI2NiIsIFwKLSAgICAgICAgICAiMC4wMDYyOTUsIDAuMDA2MjQ1LCAwLjAwNjI1LCAwLjAwNjI1NiwgMC4wMDYyNjEsIDAuMDA2MjYzLCAwLjAwNjI2NyIsIFwKLSAgICAgICAgICAiMC4wMDY0MzUsIDAuMDA2Mjg1LCAwLjAwNjI3MywgMC4wMDYyNzMsIDAuMDA2MjczLCAwLjAwNjI3MiwgMC4wMDYyNzQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDA3NjIsIDAuMDAwNzcyLCAwLjAwMDc3MywgMC4wMDA3NzMsIDAuMDAwNzczLCAwLjAwMDc3NCwgMC4wMDA3NzQiLCBcCi0gICAgICAgICAgIjAuMDAwNzYsIDAuMDAwNzk2LCAwLjAwMDgwMSwgMC4wMDA4MDQsIDAuMDAwODA1LCAwLjAwMDgwNiwgMC4wMDA4MDciLCBcCi0gICAgICAgICAgIjAuMDAwNzgzLCAwLjAwMDgxNywgMC4wMDA4MTcsIDAuMDAwODE2LCAwLjAwMDgxNiwgMC4wMDA4MTYsIDAuMDAwODE2IiwgXAotICAgICAgICAgICIwLjAwMDg3NywgMC4wMDA4NDQsIDAuMDAwODM2LCAwLjAwMDgzMiwgMC4wMDA4MjUsIDAuMDAwODI0LCAwLjAwMDgyMyIsIFwKLSAgICAgICAgICAiMC4wMDA5OTQsIDAuMDAwODkyLCAwLjAwMDg2OCwgMC4wMDA4NzQsIDAuMDAwODU5LCAwLjAwMDg1NSwgMC4wMDA4NSIsIFwKLSAgICAgICAgICAiMC4wMDEyMjQsIDAuMDAxMDU5LCAwLjAwMDk3OCwgMC4wMDA5MzYsIDAuMDAwOTExLCAwLjAwMDg5NywgMC4wMDA4ODYiLCBcCi0gICAgICAgICAgIjAuMDAxNDc2LCAwLjAwMTA1NywgMC4wMDEwODgsIDAuMDAxMDEyLCAwLjAwMDk3NiwgMC4wMDA5NDcsIDAuMDAwOTQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJEIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQ2ODksIDAuMDA0NzIxLCAwLjAwNDcyNSwgMC4wMDQ3MjYsIDAuMDA0NzMxLCAwLjAwNDcyNSwgMC4wMDQ3MjciLCBcCi0gICAgICAgICAgIjAuMDA0NjIxLCAwLjAwNDY5MywgMC4wMDQ3MDcsIDAuMDA0NzEyLCAwLjAwNDcxOCwgMC4wMDQ3MTgsIDAuMDA0NzIiLCBcCi0gICAgICAgICAgIjAuMDA0NjU0LCAwLjAwNDY4NSwgMC4wMDQ2OTgsIDAuMDA0NzA3LCAwLjAwNDcxMSwgMC4wMDQ3MTUsIDAuMDA0NzE2IiwgXAotICAgICAgICAgICIwLjAwNDc1OCwgMC4wMDQ3LCAwLjAwNDcwNywgMC4wMDQ3MTEsIDAuMDA0NzE0LCAwLjAwNDcxNiwgMC4wMDQ3MTciLCBcCi0gICAgICAgICAgIjAuMDA0OTE1LCAwLjAwNDc0NSwgMC4wMDQ3MzQsIDAuMDA0NzI5LCAwLjAwNDcyNywgMC4wMDQ3MjYsIDAuMDA0NzI1IiwgXAotICAgICAgICAgICIwLjAwNTE3OCwgMC4wMDQ4NDEsIDAuMDA0NzksIDAuMDA0NzY3LCAwLjAwNDc1NSwgMC4wMDQ3NDgsIDAuMDA0NzQyIiwgXAotICAgICAgICAgICIwLjAwNTQzMywgMC4wMDQ5NDYsIDAuMDA0ODU4LCAwLjAwNDgxMywgMC4wMDQ3OSwgMC4wMDQ3NzcsIDAuMDA0NzY4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwMDE2LCAwLjAwMDA1MiwgMC4wMDAwNTUsIDAuMDAwMDU3LCAwLjAwMDA1OCwgMC4wMDAwNTksIDAuMDAwMDU5IiwgXAotICAgICAgICAgICIwLjAwMDAzOSwgMC4wMDAxMTUsIDAuMDAwMTI2LCAwLjAwMDEzMSwgMC4wMDAxMzQsIDAuMDAwMTM2LCAwLjAwMDEzNyIsIFwKLSAgICAgICAgICAiMC4wMDAxMDQsIDAuMDAwMTQxLCAwLjAwMDE0NywgMC4wMDAxNTMsIDAuMDAwMTU1LCAwLjAwMDE1NywgMC4wMDAxNTgiLCBcCi0gICAgICAgICAgIjAuMDAwMTY0LCAwLjAwMDE3MywgMC4wMDAxODMsIDAuMDAwMTc5LCAwLjAwMDE3MSwgMC4wMDAxNzMsIDAuMDAwMTcyIiwgXAotICAgICAgICAgICIwLjAwMDI4NSwgMC4wMDAyMjIsIDAuMDAwMiwgMC4wMDAxOTMsIDAuMDAwMTg4LCAwLjAwMDE4NCwgMC4wMDAxODIiLCBcCi0gICAgICAgICAgIjAuMDAwNTM1LCAwLjAwMDM0NSwgMC4wMDAzMTQsIDAuMDAwMjYsIDAuMDAwMjM5LCAwLjAwMDIyOCwgMC4wMDAyMiIsIFwKLSAgICAgICAgICAiMC4wMDA3ODIsIDAuMDAwNDY1LCAwLjAwMDM3NCwgMC4wMDAzMTcsIDAuMDAwMzM1LCAwLjAwMDMwOCwgMC4wMDAyODkiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogTk9SNEJCWDQgKgotICogLS0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKE5PUjRCQlg0KSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDEuMzcwNDM7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEFOKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA5NDExMjM7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwOTQxMDcxOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDk0MTEyMzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDIxMTIsIDAuMDAyMDksIDAuMDAyMTY5LCAwLjAwMjI4NywgMC4wMDI0MjksIDAuMDAyNjk1LCAwLjAwMjk1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA0NDk3LCAwLjAwNDQ5NywgMC4wMDQ1MzksIDAuMDA0NjUyLCAwLjAwNDc4NywgMC4wMDUwNywgMC4wMDUzNDUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEJOKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA5NjM4MTY7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwOTYzNzAyOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDk2MzgxNjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDE0MzQsIDAuMDAxNDA4LCAwLjAwMTQ4NywgMC4wMDE2MDQsIDAuMDAxNzQ2LCAwLjAwMjAxMiwgMC4wMDIyNiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNTE1NCwgMC4wMDUxNjQsIDAuMDA1MjI3LCAwLjAwNTM1MywgMC4wMDU1MDYsIDAuMDA1NzkyLCAwLjAwNjA0Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihDKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDMxNjA4MzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDMxNDQ5NDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDMxNjA4MzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA2MjYsIDAuMDAwNjI3LCAwLjAwMDYyNywgMC4wMDA2MjcsIDAuMDAwNjI3LCAwLjAwMDYyNywgMC4wMDA2MjciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDE2NDksIDAuMDAxNjQ5LCAwLjAwMTY1LCAwLjAwMTY1LCAwLjAwMTY1LCAwLjAwMTY1LCAwLjAwMTY0OSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAzMzA5OTc7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAzMzA5OTc7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAzMzA4OTM7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNDIyLCAwLjAwMDQyMiwgMC4wMDA0MjIsIDAuMDAwNDIyLCAwLjAwMDQyMiwgMC4wMDA0MjIsIDAuMDAwNDIyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxMjI5LCAwLjAwMTIyOSwgMC4wMDEyMywgMC4wMDEyMjksIDAuMDAxMjI5LCAwLjAwMTIyOCwgMC4wMDEyMjgiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4zNjUyNzM7Ci0gICAgZnVuY3Rpb24gOiAiKCEoKCgoIUJOKSsoIUFOKSkrQykrRCkpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzkyMzMsIDAuMjc5MzkzLCAwLjQ3ODE2NCwgMC42MjA5NzUsIDAuODQ5MjM1LCAxLjA0ODI0LCAxLjMzMzYiLCBcCi0gICAgICAgICAgIjAuMDg3MzUxLCAwLjI4NzQ0NiwgMC40ODcwNTcsIDAuNjI4ODEsIDAuODU2ODgxLCAxLjA1NzA5LCAxLjM0MTIzIiwgXAotICAgICAgICAgICIwLjA5NTc0OCwgMC4yOTU5MzcsIDAuNDk1MjQ3LCAwLjYzNzcwMiwgMC44NjYwNDMsIDEuMDY0ODUsIDEuMzUwNjYiLCBcCi0gICAgICAgICAgIjAuMTAyMTQsIDAuMzAyMjIsIDAuNTAyMDM1LCAwLjY0NDE0OCwgMC44NzE3ODIsIDEuMDcyMiwgMS4zNTU4NyIsIFwKLSAgICAgICAgICAiMC4xMDcyMDksIDAuMzA3NDgxLCAwLjUwNjgwOSwgMC42NDkxNiwgMC44NzY5MDMsIDEuMDc3MjMsIDEuMzYxMjciLCBcCi0gICAgICAgICAgIjAuMTE0MjMyLCAwLjMxNDI1NywgMC41MTQyMiwgMC42NTY1NTMsIDAuODg0MDIyLCAxLjA4MzU3LCAxLjM2OTQ5IiwgXAotICAgICAgICAgICIwLjExOTM4OCwgMC4zMTkyMywgMC41MTg5NjYsIDAuNjYxNDE0LCAwLjg4OTUyOCwgMS4wODg2MiwgMS4zNzM1MSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwMDE0NywgMC41MjE1MDMsIDAuOTQzMzY4LCAxLjI0NTk5LCAxLjcyNjU2LCAyLjE0ODU2LCAyLjc1MDk0IiwgXAotICAgICAgICAgICIwLjEwMDEyMywgMC41MjEzMDYsIDAuOTQzMjI4LCAxLjI0NTE0LCAxLjcyODA1LCAyLjE0ODQ4LCAyLjc1MTI2IiwgXAotICAgICAgICAgICIwLjEwMDIxMiwgMC41MjE0MDUsIDAuOTQ0MjMxLCAxLjI0NiwgMS43MjY2MiwgMi4xNDg4OCwgMi43NTExNiIsIFwKLSAgICAgICAgICAiMC4xMDAyODIsIDAuNTIxOTY5LCAwLjk0MzUwMSwgMS4yNDQ2NiwgMS43Mjg0OSwgMi4xNDg0MSwgMi43NTM0OSIsIFwKLSAgICAgICAgICAiMC4xMDAyOTEsIDAuNTIxNDQ0LCAwLjk0NDI1MiwgMS4yNDUzOCwgMS43Mjg1NCwgMi4xNDg1MiwgMi43NTEzMyIsIFwKLSAgICAgICAgICAiMC4xMDA0OTYsIDAuNTIxOTIsIDAuOTQzMTYsIDEuMjQ0NDUsIDEuNzI3NzYsIDIuMTUxMDMsIDIuNzUxMzgiLCBcCi0gICAgICAgICAgIjAuMTAwNjg4LCAwLjUyMTY2MiwgMC45NDQyOSwgMS4yNDQ2NCwgMS43MjY0NCwgMi4xNTA4OCwgMi43NTQ0NSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzODA5NywgMC4wOTQ2OTUsIDAuMTQ5MDYyLCAwLjE4NzcxOSwgMC4yNDk0NTcsIDAuMzAzNDEsIDAuMzgwNDEiLCBcCi0gICAgICAgICAgIjAuMDQ2MzE0LCAwLjEwMjkwMiwgMC4xNTcyNzYsIDAuMTk1OTIyLCAwLjI1NzY3OCwgMC4zMTE2NDQsIDAuMzg4Nzc1IiwgXAotICAgICAgICAgICIwLjA1NTA2NSwgMC4xMTE2NTEsIDAuMTY2MDc0LCAwLjIwNDczOSwgMC4yNjY0NTQsIDAuMzIwNDMxLCAwLjM5NzQ4OCIsIFwKLSAgICAgICAgICAiMC4wNjE1ODUsIDAuMTE4MzI4LCAwLjE3MjcxLCAwLjIxMTMzMywgMC4yNzMwNTUsIDAuMzI3MDM0LCAwLjQwNDIyNyIsIFwKLSAgICAgICAgICAiMC4wNjY4NTUsIDAuMTIzNzE1LCAwLjE3Nzg2NCwgMC4yMTY0NzMsIDAuMjc4MjM5LCAwLjMzMjE0NSwgMC40MDkyOCIsIFwKLSAgICAgICAgICAiMC4wNzM4MDgsIDAuMTMwNjY4LCAwLjE4NDgwMSwgMC4yMjM0LCAwLjI4NDk4MiwgMC4zMzkwNTYsIDAuNDE1OTI4IiwgXAotICAgICAgICAgICIwLjA3ODgwMywgMC4xMzU1OSwgMC4xODk5MDMsIDAuMjI4NDQyLCAwLjI5MDA5NSwgMC4zNDQwNiwgMC40MjEwMjMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzUxNDMsIDAuMTQ1MzEyLCAwLjI1NzEwNiwgMC4zMzY5MzMsIDAuNDY0ODY0LCAwLjU3Njc3MywgMC43MzY2MDciLCBcCi0gICAgICAgICAgIjAuMDM1MjI2LCAwLjE0NTQ1MSwgMC4yNTY5NDEsIDAuMzM2OTMyLCAwLjQ2NDc4OSwgMC41NzY5NDEsIDAuNzM2ODQ1IiwgXAotICAgICAgICAgICIwLjAzNjA2MSwgMC4xNDU1MjMsIDAuMjU3MTMxLCAwLjMzNjg0NiwgMC40NjQ4MTcsIDAuNTc2NzkyLCAwLjczNjc3OCIsIFwKLSAgICAgICAgICAiMC4wMzcxMjIsIDAuMTQ1ODQ2LCAwLjI1NzA2OCwgMC4zMzY5NCwgMC40NjQ4NzgsIDAuNTc2NzkxLCAwLjczNjk2MSIsIFwKLSAgICAgICAgICAiMC4wMzgxMDMsIDAuMTQ2MTA4LCAwLjI1NzIyNSwgMC4zMzcwMjgsIDAuNDY0OTQ5LCAwLjU3NjkxMywgMC43MzY5NCIsIFwKLSAgICAgICAgICAiMC4wMzk1MiwgMC4xNDY1MjMsIDAuMjU3NDI4LCAwLjMzNzE2MSwgMC40NjUwOTcsIDAuNTc2ODY5LCAwLjczNjk2NyIsIFwKLSAgICAgICAgICAiMC4wNDA4MzEsIDAuMTQ3MDMxLCAwLjI1NzYzMSwgMC4zMzcyMTcsIDAuNDY1MDQ4LCAwLjU3Njk2OSwgMC43MzY5MTkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQk4iOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc1MzM2LCAwLjI3NTQwMSwgMC40NzQ2NjksIDAuNjE2OTU3LCAwLjg0NTM4LCAxLjA0Mzk4LCAxLjMzMDE4IiwgXAotICAgICAgICAgICIwLjA4MzQ3MiwgMC4yODM2MDUsIDAuNDgyNTM4LCAwLjYyNDY0MiwgMC44NTM3NDYsIDEuMDUyNCwgMS4zMzg0MyIsIFwKLSAgICAgICAgICAiMC4wOTIwNTYsIDAuMjkyMDkzLCAwLjQ5MTYwNCwgMC42MzQ3MjYsIDAuODYxNzExLCAxLjA2MTk0LCAxLjM0Njc0IiwgXAotICAgICAgICAgICIwLjA5ODYxMywgMC4yOTg4ODIsIDAuNDk4MzIzLCAwLjY0MTA2MywgMC44Njg1MzYsIDEuMDY4NDIsIDEuMzUyNzYiLCBcCi0gICAgICAgICAgIjAuMTAzODgzLCAwLjMwMzk1OSwgMC41MDM1NSwgMC42NDU5NTcsIDAuODczNzg3LCAxLjA3NDA2LCAxLjM1ODYzIiwgXAotICAgICAgICAgICIwLjExMDkyLCAwLjMxMDkxLCAwLjUxMDQ1NCwgMC42NTMzNDcsIDAuODgwNjksIDEuMDgwMjUsIDEuMzY2MDciLCBcCi0gICAgICAgICAgIjAuMTE2MzExLCAwLjMxNjI0MSwgMC41MTU4NDQsIDAuNjU4NjQ2LCAwLjg4Njk2MywgMS4wODU4MywgMS4zNzA2NCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwMDE2NiwgMC41MjE0MTMsIDAuOTQ0MzI2LCAxLjI0NDU5LCAxLjcyNjU0LCAyLjE1MDIzLCAyLjc1MTMzIiwgXAotICAgICAgICAgICIwLjEwMDE3MSwgMC41MjE0MTMsIDAuOTQzNTExLCAxLjI0MzgzLCAxLjcyNjY3LCAyLjE0OTQsIDIuNzUxMzgiLCBcCi0gICAgICAgICAgIjAuMTAwMjU1LCAwLjUyMTk2NCwgMC45NDMzNTQsIDEuMjQ0ODMsIDEuNzI3NTYsIDIuMTQ4NTIsIDIuNzUxMDIiLCBcCi0gICAgICAgICAgIjAuMTAwMzIxLCAwLjUyMTQ2OSwgMC45NDMwNDIsIDEuMjQ0NTYsIDEuNzI2NywgMi4xNDg0MiwgMi43NTEiLCBcCi0gICAgICAgICAgIjAuMTAwNDMzLCAwLjUyMTkwNCwgMC45NDQ0NDEsIDEuMjQ2MDIsIDEuNzI4NiwgMi4xNDg2OSwgMi43NTA4OSIsIFwKLSAgICAgICAgICAiMC4xMDA3OTIsIDAuNTIxODA3LCAwLjk0MzA3OSwgMS4yNDQ1MSwgMS43Mjc4NSwgMi4xNTEwMSwgMi43NTEzMyIsIFwKLSAgICAgICAgICAiMC4xMDA5NDIsIDAuNTIxMjQ4LCAwLjk0NDA0NSwgMS4yNDQzMywgMS43MjY4MSwgMi4xNTEzOCwgMi43NTQ3NyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzODQ5LCAwLjA5NDAwOSwgMC4xNDgxMTUsIDAuMTg2Njg2LCAwLjI0ODMwNiwgMC4zMDIyNzMsIDAuMzc5MjI5IiwgXAotICAgICAgICAgICIwLjA0NjcwNSwgMC4xMDIyMiwgMC4xNTYzMiwgMC4xOTQ4NzgsIDAuMjU2NTg1LCAwLjMxMDQ1NCwgMC4zODc1MTIiLCBcCi0gICAgICAgICAgIjAuMDU1NTg3LCAwLjExMTIwNSwgMC4xNjUyOTMsIDAuMjAzODY2LCAwLjI2NTU4OSwgMC4zMTk0NDksIDAuMzk2NTYxIiwgXAotICAgICAgICAgICIwLjA2MjI2MiwgMC4xMTgwNTMsIDAuMTcyMDksIDAuMjEwNjM3LCAwLjI3MjI5LCAwLjMyNjI1NSwgMC40MDMzNzMiLCBcCi0gICAgICAgICAgIjAuMDY3NzM4LCAwLjEyMzYsIDAuMTc3NzYsIDAuMjE2MDMsIDAuMjc3OTg4LCAwLjMzMTkxNywgMC40MDg2MDkiLCBcCi0gICAgICAgICAgIjAuMDc0Nzc5LCAwLjEzMDU0MSwgMC4xODQ1NDIsIDAuMjIzMDYyLCAwLjI4NDY3MSwgMC4zMzg1ODUsIDAuNDE1NTQ4IiwgXAotICAgICAgICAgICIwLjA3OTg0MSwgMC4xMzU5NDMsIDAuMTg5OTQ3LCAwLjIyODM5LCAwLjI4OTk2NCwgMC4zNDM5LCAwLjQyMDg0NSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzMjc4NywgMC4xNDI0MzEsIDAuMjU0MDE5LCAwLjMzMzk1NCwgMC40NjIwMjgsIDAuNTczOTYyLCAwLjczNDEzNSIsIFwKLSAgICAgICAgICAiMC4wMzI4NTIsIDAuMTQyNTA4LCAwLjI1NDA0NiwgMC4zMzQsIDAuNDYxOTMyLCAwLjU3NDA3LCAwLjczNDE4NyIsIFwKLSAgICAgICAgICAiMC4wMzM2NjUsIDAuMTQyNjUxLCAwLjI1NDA3LCAwLjMzMzk3MywgMC40NjIwNzgsIDAuNTc0MDg3LCAwLjczNDE3MiIsIFwKLSAgICAgICAgICAiMC4wMzQ4MTksIDAuMTQyOTU5LCAwLjI1NDE2OSwgMC4zMzQwMDgsIDAuNDYyMDA4LCAwLjU3Mzk2LCAwLjczNDQzMyIsIFwKLSAgICAgICAgICAiMC4wMzU5NTYsIDAuMTQzMjUyLCAwLjI1NDMyMSwgMC4zMzQyLCAwLjQ2MjAzNSwgMC41NzQwNzEsIDAuNzM0MDE3IiwgXAotICAgICAgICAgICIwLjAzNzQxMywgMC4xNDM3NiwgMC4yNTQ1NjYsIDAuMzM0Mjc2LCAwLjQ2MjIwMywgMC41NzQxMDYsIDAuNzM0MDg1IiwgXAotICAgICAgICAgICIwLjAzODc0MiwgMC4xNDQzMTIsIDAuMjU0Nzg0LCAwLjMzNDM5NiwgMC40NjIxMzUsIDAuNTc0MTQ0LCAwLjczNDEwOCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1MjA3NiwgMC4yNTE3MzgsIDAuNDUxMTI0LCAwLjU5Mzg4NCwgMC44MjIzOCwgMS4wMjExNCwgMS4zMDY0IiwgXAotICAgICAgICAgICIwLjA1ODEyMSwgMC4yNTgzMzMsIDAuNDU4MDc2LCAwLjU5OTk0NywgMC44MjgyNjEsIDEuMDI3NjEsIDEuMzEyNjkiLCBcCi0gICAgICAgICAgIjAuMDY1Mzc0LCAwLjI2NTQ1MSwgMC40NjUwODcsIDAuNjA3MzYxLCAwLjgzNjA3MiwgMS4wMzQ1MywgMS4zMjA2MiIsIFwKLSAgICAgICAgICAiMC4wNzI4MjUsIDAuMjczMDA3LCAwLjQ3Mjg4NSwgMC42MTUyMjMsIDAuODQyOTc2LCAxLjA0MzMyLCAxLjMyODA5IiwgXAotICAgICAgICAgICIwLjA3OTMzMSwgMC4yODA1LCAwLjQ4MDE0NCwgMC42MjIzOTUsIDAuODUwODgsIDEuMDUwNDIsIDEuMzM0NDgiLCBcCi0gICAgICAgICAgIjAuMDg4MTY1LCAwLjI5MjUyLCAwLjQ5MjA2MiwgMC42MzQ5NzEsIDAuODYyMzA5LCAxLjA2MTkzLCAxLjM0Njg2IiwgXAotICAgICAgICAgICIwLjA5NTE0MiwgMC4zMDM0NiwgMC41MDI3NjcsIDAuNjQ1MjQyLCAwLjg3MzA1NywgMS4wNzI3NCwgMS4zNTczMSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5OTc1NCwgMC41MjE5MiwgMC45NDM5ODEsIDEuMjQ0NDksIDEuNzI3NDYsIDIuMTQ4MjcsIDIuNzUyMDYiLCBcCi0gICAgICAgICAgIjAuMDk5OTUzLCAwLjUyMTQsIDAuOTQzMjUxLCAxLjI0NTk0LCAxLjcyNjQ5LCAyLjE0ODc5LCAyLjc1MDkxIiwgXAotICAgICAgICAgICIwLjEwMjY3LCAwLjUyMTYyNiwgMC45NDQ0NCwgMS4yNDU2NSwgMS43MjY4NCwgMi4xNDk4NiwgMi43NTEzNiIsIFwKLSAgICAgICAgICAiMC4xMDc0NDUsIDAuNTIxMzY2LCAwLjk0MzIzNCwgMS4yNDYyNiwgMS43Mjg3LCAyLjE0ODU1LCAyLjc1MDg5IiwgXAotICAgICAgICAgICIwLjExMzQ2MiwgMC41MjI2ODksIDAuOTQ0MjcyLCAxLjI0NTE4LCAxLjcyNjU0LCAyLjE0OTE1LCAyLjc1Mzg0IiwgXAotICAgICAgICAgICIwLjEyMzk0MiwgMC41MjU0NjEsIDAuOTQzNjY3LCAxLjI0NDQzLCAxLjcyNzQsIDIuMTUwOCwgMi43NTQzNCIsIFwKLSAgICAgICAgICAiMC4xMzMxMjcsIDAuNTI5NjY4LCAwLjk0NTIxOCwgMS4yNDU2OSwgMS43MjgxOSwgMi4xNTEzNCwgMi43NTQyNSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxNjc4OCwgMC4wNzEwNjksIDAuMTI1MDMsIDAuMTYzNTg2LCAwLjIyNTE4NCwgMC4yNzkxMDgsIDAuMzU2MTciLCBcCi0gICAgICAgICAgIjAuMDI1Mjc5LCAwLjA3OTU4NCwgMC4xMzM1NzUsIDAuMTcyMTMsIDAuMjMzNzQzLCAwLjI4NzY0NCwgMC4zNjQ3MzciLCBcCi0gICAgICAgICAgIjAuMDMzNjg5LCAwLjA5MDE3NiwgMC4xNDQxMDIsIDAuMTgyNjM3LCAwLjI0NDI4OCwgMC4yOTgxMDIsIDAuMzc1MjI2IiwgXAotICAgICAgICAgICIwLjAzOTU2NCwgMC4xMDA5NDYsIDAuMTU0NjcsIDAuMTkzMjMxLCAwLjI1NDgxNCwgMC4zMDg2ODIsIDAuMzg1Njg0IiwgXAotICAgICAgICAgICIwLjA0NDM4NSwgMC4xMTE2MSwgMC4xNjUyNTgsIDAuMjAzNjY1LCAwLjI2NTI4NCwgMC4zMTkxNTIsIDAuMzk2MjEiLCBcCi0gICAgICAgICAgIjAuMDUwMzk0LCAwLjEyODY3NCwgMC4xODIxMDYsIDAuMjIwMzk4LCAwLjI4MTkzLCAwLjMzNTg0NiwgMC40MTI3MzIiLCBcCi0gICAgICAgICAgIjAuMDU0NTcxLCAwLjE0MTIzNSwgMC4xOTc2NDEsIDAuMjM2MTk5LCAwLjI5NzQyOSwgMC4zNTExODgsIDAuNDI4MTU1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDI2Mzg2LCAwLjEzODM5NCwgMC4yNTA0NjcsIDAuMzMwNTU2LCAwLjQ1ODU2MSwgMC41NzA2MTMsIDAuNzMwNzM5IiwgXAotICAgICAgICAgICIwLjAzMDM0MSwgMC4xMzgzOCwgMC4yNTA0NTYsIDAuMzMwNDc2LCAwLjQ1ODUzLCAwLjU3MDU3LCAwLjczMDk0MyIsIFwKLSAgICAgICAgICAiMC4wMzk0OTYsIDAuMTQxMjAxLCAwLjI1MDY5MSwgMC4zMzA0NjUsIDAuNDU4NDUzLCAwLjU3MDU4LCAwLjczMDY3NiIsIFwKLSAgICAgICAgICAiMC4wNDg0NDMsIDAuMTQ2ODg1LCAwLjI1MzQxMywgMC4zMzE1NDksIDAuNDU4NTI3LCAwLjU3MDU4NiwgMC43MzA2ODEiLCBcCi0gICAgICAgICAgIjAuMDU2MDQ2LCAwLjE1MzkxNiwgMC4yNTc4NjksIDAuMzM0NTUyLCAwLjQ1OTc3NSwgMC41NzA2NTMsIDAuNzMwNzgiLCBcCi0gICAgICAgICAgIjAuMDY3NjAyLCAwLjE2Njg0OCwgMC4yNjc5MjcsIDAuMzQyMzI5LCAwLjQ2NDY0NSwgMC41NzM5NDIsIDAuNzMxMjkyIiwgXAotICAgICAgICAgICIwLjA3Njk3NCwgMC4xNzk5NTIsIDAuMjc3NTg4LCAwLjM1MDg3OCwgMC40NzA5OSwgMC41NzgzMjQsIDAuNzM0MTAxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkQiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQxMzI3LCAwLjI0MTMzNiwgMC40NDA0OTksIDAuNTgzNTEyLCAwLjgxMDg1OSwgMS4wMTA0MiwgMS4yOTUzNiIsIFwKLSAgICAgICAgICAiMC4wNDc5MTksIDAuMjQ4MTIsIDAuNDQ3NTc3LCAwLjU5MDAwNiwgMC44MTcsIDEuMDE2MzYsIDEuMzAyMDQiLCBcCi0gICAgICAgICAgIjAuMDU3MjM1LCAwLjI1Njc5OCwgMC40NTY1MDEsIDAuNTk4NTg0LCAwLjgyNzEyMiwgMS4wMjY2MiwgMS4zMTA0MSIsIFwKLSAgICAgICAgICAiMC4wNjY4OTUsIDAuMjY1Mjg2LCAwLjQ2NDcyNywgMC42MDc1MTcsIDAuODM0OTM1LCAxLjAzNDQ0LCAxLjMyMDE3IiwgXAotICAgICAgICAgICIwLjA3NTM5MiwgMC4yNzQ0NDQsIDAuNDczNDQ5LCAwLjYxNTc1NSwgMC44NDQyMjgsIDEuMDQzNiwgMS4zMjg4MyIsIFwKLSAgICAgICAgICAiMC4wODY1MjgsIDAuMjg4NjgxLCAwLjQ4NzUzNiwgMC42MzAyNjgsIDAuODU3NTEzLCAxLjA1Njg4LCAxLjM0MTUiLCBcCi0gICAgICAgICAgIjAuMDk0OTYyLCAwLjMwMTY3MSwgMC41MDAzNzYsIDAuNjQyMTU0LCAwLjg2OTgxMSwgMS4wNjkzNSwgMS4zNTQ4MSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5ODI2NCwgMC41MjE0MTMsIDAuOTQ0MDYxLCAxLjI0NDYsIDEuNzI2NzUsIDIuMTUxMywgMi43NTE1OSIsIFwKLSAgICAgICAgICAiMC4wOTg0ODIsIDAuNTIxNDMxLCAwLjk0NDU3NywgMS4yNDYyMywgMS43MjY5MywgMi4xNDkzMiwgMi43NTQ1MyIsIFwKLSAgICAgICAgICAiMC4xMDM3MDIsIDAuNTIxMzI0LCAwLjk0MzI0NSwgMS4yNDU4MywgMS43MjcxMywgMi4xNDgyOCwgMi43NTI4IiwgXAotICAgICAgICAgICIwLjExMDcxLCAwLjUyMTI3NiwgMC45NDQxNTMsIDEuMjQ0NTIsIDEuNzI4NDMsIDIuMTUxMSwgMi43NTA5NiIsIFwKLSAgICAgICAgICAiMC4xMTc5MDUsIDAuNTIxNjE4LCAwLjk0NDA2NCwgMS4yNDU0MywgMS43MjY1NiwgMi4xNDgzMywgMi43NTE0NiIsIFwKLSAgICAgICAgICAiMC4xMjk1MzMsIDAuNTI2MzgsIDAuOTQzNzMyLCAxLjI0NDUsIDEuNzI4MiwgMi4xNTA4OSwgMi43NTM5MiIsIFwKLSAgICAgICAgICAiMC4xMzkxMTYsIDAuNTMxOTI1LCAwLjk0NTA2MiwgMS4yNDQyOCwgMS43MjcyMywgMi4xNDg1NSwgMi43NTA5MiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxNDYzMywgMC4wNjg2NDcsIDAuMTIyNTc3LCAwLjE2MTEwNCwgMC4yMjI3MjgsIDAuMjc2ODE0LCAwLjM1MzczOCIsIFwKLSAgICAgICAgICAiMC4wMjMwNjUsIDAuMDc3MjEyLCAwLjEzMTEzOCwgMC4xNjk2NjYsIDAuMjMxMzU5LCAwLjI4NTI2NCwgMC4zNjIzMTgiLCBcCi0gICAgICAgICAgIjAuMDMwNDM4LCAwLjA4NzgzOCwgMC4xNDE3NTEsIDAuMTgwMjczLCAwLjI0MTgzNywgMC4yOTU3NTUsIDAuMzcyOTM2IiwgXAotICAgICAgICAgICIwLjAzNTUyNiwgMC4wOTg2MjEsIDAuMTUyMzIyLCAwLjE5MDg2MywgMC4yNTI0OTcsIDAuMzA2NDU1LCAwLjM4MzQwMiIsIFwKLSAgICAgICAgICAiMC4wMzk3NTgsIDAuMTA5MjAxLCAwLjE2MjkwOCwgMC4yMDEzNjksIDAuMjYzMDA5LCAwLjMxNjg3NiwgMC4zOTQwNDEiLCBcCi0gICAgICAgICAgIjAuMDQ0NjQ1LCAwLjEyNTc5OCwgMC4xNzk4MzksIDAuMjE4MjExLCAwLjI3OTY4NCwgMC4zMzM1OTQsIDAuNDEwNTQiLCBcCi0gICAgICAgICAgIjAuMDQ4MTU3LCAwLjEzODMxMiwgMC4xOTUyNTQsIDAuMjMzNzM0LCAwLjI5NTExNywgMC4zNDg4OTcsIDAuNDI1OTQ2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDIzNDA5LCAwLjEzNTcxMSwgMC4yNDgwMzcsIDAuMzI3NjE0LCAwLjQ1NTcyMywgMC41Njc4MzMsIDAuNzI4MjE3IiwgXAotICAgICAgICAgICIwLjAyNzkxNSwgMC4xMzU1MDksIDAuMjQ3OTIsIDAuMzI4MjcsIDAuNDU2MTA3LCAwLjU2ODIxMSwgMC43MjgxNTMiLCBcCi0gICAgICAgICAgIjAuMDM3MzgxLCAwLjEzODY2MSwgMC4yNDgzMjgsIDAuMzI3NjA5LCAwLjQ1NTg1NSwgMC41Njg3NDQsIDAuNzI4MDU2IiwgXAotICAgICAgICAgICIwLjA0NjA3MiwgMC4xNDQyNTYsIDAuMjUwNywgMC4zMjg3MjQsIDAuNDU2MDQ0LCAwLjU2NzgyNSwgMC43MjkzODEiLCBcCi0gICAgICAgICAgIjAuMDUzNDUsIDAuMTUxMzMzLCAwLjI1NTUwOSwgMC4zMzI0NjcsIDAuNDU2OTAxLCAwLjU2OTA0MSwgMC43MjgwODUiLCBcCi0gICAgICAgICAgIjAuMDY0ODE1LCAwLjE2NDc0MiwgMC4yNjUyMTMsIDAuMzM5Njk3LCAwLjQ2MjYzLCAwLjU3MTM0NSwgMC43MzAwNjciLCBcCi0gICAgICAgICAgIjAuMDczNTg1LCAwLjE3ODExLCAwLjI3NDg0NCwgMC4zNDgyMjcsIDAuNDY4NDU4LCAwLjU3NTY1NiwgMC43MzI4MiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkFOIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxNzYwOSwgMC4wMTc3MzEsIDAuMDE3NzUsIDAuMDE3NzU2LCAwLjAxNzc1OCwgMC4wMTc3NjEsIDAuMDE3NzYxIiwgXAotICAgICAgICAgICIwLjAxNzU0NiwgMC4wMTc2OTYsIDAuMDE3NzE5LCAwLjAxNzcyNywgMC4wMTc3MzMsIDAuMDE3NzM2LCAwLjAxNzczOSIsIFwKLSAgICAgICAgICAiMC4wMTc1OTgsIDAuMDE3NzY4LCAwLjAxNzgwMywgMC4wMTc4MTQsIDAuMDE3ODIyLCAwLjAxNzgyOCwgMC4wMTc4MzIiLCBcCi0gICAgICAgICAgIjAuMDE3NjgxLCAwLjAxNzg1NCwgMC4wMTc4OTUsIDAuMDE3OTA3LCAwLjAxNzkxOSwgMC4wMTc5MjIsIDAuMDE3OTI3IiwgXAotICAgICAgICAgICIwLjAxNzgxMywgMC4wMTc5OTEsIDAuMDE4MDM1LCAwLjAxODA0OCwgMC4wMTgwNjUsIDAuMDE4MDY5LCAwLjAxODA3NiIsIFwKLSAgICAgICAgICAiMC4wMTgwNTMsIDAuMDE4MjI5LCAwLjAxODI3NiwgMC4wMTgyOTIsIDAuMDE4MzA4LCAwLjAxODMxNywgMC4wMTgzMjQiLCBcCi0gICAgICAgICAgIjAuMDE4Mjk2LCAwLjAxODQ1MywgMC4wMTg1MDEsIDAuMDE4NTQsIDAuMDE4NTU4LCAwLjAxODU2MywgMC4wMTg1NzMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMTI4NCwgMC4wMTEyODYsIDAuMDExMjg4LCAwLjAxMTI4OCwgMC4wMTEyODYsIDAuMDExMjg2LCAwLjAxMTI4NSIsIFwKLSAgICAgICAgICAiMC4wMTEyNDcsIDAuMDExMjYsIDAuMDExMjYxLCAwLjAxMTI2MywgMC4wMTEyNjIsIDAuMDExMjYzLCAwLjAxMTI2MiIsIFwKLSAgICAgICAgICAiMC4wMTEzMDIsIDAuMDExMzA1LCAwLjAxMTMwMiwgMC4wMTEzMDMsIDAuMDExMzAyLCAwLjAxMTMwMywgMC4wMTEzMDIiLCBcCi0gICAgICAgICAgIjAuMDExNDEyLCAwLjAxMTQxNywgMC4wMTE0MTgsIDAuMDExNDE4LCAwLjAxMTQxMywgMC4wMTE0MTIsIDAuMDExNDEyIiwgXAotICAgICAgICAgICIwLjAxMTU4MiwgMC4wMTE1NTEsIDAuMDExNTUxLCAwLjAxMTU0OSwgMC4wMTE1NCwgMC4wMTE1NDcsIDAuMDExNTQ5IiwgXAotICAgICAgICAgICIwLjAxMTc5MSwgMC4wMTE3ODYsIDAuMDExNzc4LCAwLjAxMTc3NiwgMC4wMTE3OTMsIDAuMDExNzc3LCAwLjAxMTc5MSIsIFwKLSAgICAgICAgICAiMC4wMTIwMywgMC4wMTIwMjUsIDAuMDEyMDE0LCAwLjAxMjAwOSwgMC4wMTIwMDcsIDAuMDEyMDA1LCAwLjAxMjAwNCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkJOIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxNDYzNiwgMC4wMTQ3NiwgMC4wMTQ3NzksIDAuMDE0NzgzLCAwLjAxNDc3NiwgMC4wMTQ3ODcsIDAuMDE0NzkiLCBcCi0gICAgICAgICAgIjAuMDE0NTc0LCAwLjAxNDcyMSwgMC4wMTQ3NDgsIDAuMDE0NzQ4LCAwLjAxNDc2MSwgMC4wMTQ3NjUsIDAuMDE0NzY3IiwgXAotICAgICAgICAgICIwLjAxNDYxNiwgMC4wMTQ3ODcsIDAuMDE0ODE4LCAwLjAxNDgzLCAwLjAxNDgzNywgMC4wMTQ4NDMsIDAuMDE0ODQ4IiwgXAotICAgICAgICAgICIwLjAxNDcwMiwgMC4wMTQ4NzcsIDAuMDE0OTE1LCAwLjAxNDkyOCwgMC4wMTQ5MzksIDAuMDE0OTQ1LCAwLjAxNDk1MiIsIFwKLSAgICAgICAgICAiMC4wMTQ4MjksIDAuMDE1MDA3LCAwLjAxNTA1MSwgMC4wMTUwNjUsIDAuMDE1MDc4LCAwLjAxNTA4NSwgMC4wMTUwODciLCBcCi0gICAgICAgICAgIjAuMDE1MDc3LCAwLjAxNTI1MSwgMC4wMTUyOTQsIDAuMDE1MzEyLCAwLjAxNTMyOSwgMC4wMTUzNCwgMC4wMTUzNDciLCBcCi0gICAgICAgICAgIjAuMDE1MzE3LCAwLjAxNTQ5MiwgMC4wMTU1NDIsIDAuMDE1NTYzLCAwLjAxNTU3OCwgMC4wMTU1ODgsIDAuMDE1NTk2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTAzNDgsIDAuMDEwMzY4LCAwLjAxMDM2OSwgMC4wMTAzNzIsIDAuMDEwMzcyLCAwLjAxMDM3MiwgMC4wMTAzNzIiLCBcCi0gICAgICAgICAgIjAuMDEwMzAzLCAwLjAxMDM0MywgMC4wMTAzNDcsIDAuMDEwMzQ5LCAwLjAxMDM1LCAwLjAxMDM1MSwgMC4wMTAzNTEiLCBcCi0gICAgICAgICAgIjAuMDEwMzU5LCAwLjAxMDM5OCwgMC4wMTA0MDQsIDAuMDEwNDA3LCAwLjAxMDQwOCwgMC4wMTA0MSwgMC4wMTA0MTEiLCBcCi0gICAgICAgICAgIjAuMDEwNDY1LCAwLjAxMDUxMiwgMC4wMTA1MTQsIDAuMDEwNTE5LCAwLjAxMDUxOCwgMC4wMTA1MTgsIDAuMDEwNTE5IiwgXAotICAgICAgICAgICIwLjAxMDYzOSwgMC4wMTA2MzgsIDAuMDEwNjQzLCAwLjAxMDY1MSwgMC4wMTA2NDIsIDAuMDEwNjQsIDAuMDEwNjU0IiwgXAotICAgICAgICAgICIwLjAxMDgzMSwgMC4wMTA5MDksIDAuMDEwOTA0LCAwLjAxMDkwMywgMC4wMTA5MDMsIDAuMDEwOTAxLCAwLjAxMDkiLCBcCi0gICAgICAgICAgIjAuMDExMDY2LCAwLjAxMTExOCwgMC4wMTExMTYsIDAuMDExMTE1LCAwLjAxMTExMywgMC4wMTExMTMsIDAuMDExMTEzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTIzMTEsIDAuMDEyMzgxLCAwLjAxMjM4OSwgMC4wMTIzODUsIDAuMDEyMzkzLCAwLjAxMjM5MiwgMC4wMTIzOTEiLCBcCi0gICAgICAgICAgIjAuMDEyMTM3LCAwLjAxMjMxNiwgMC4wMTIzNTEsIDAuMDEyMzY1LCAwLjAxMjM3MSwgMC4wMTIzNzksIDAuMDEyMzc5IiwgXAotICAgICAgICAgICIwLjAxMjA4NywgMC4wMTIyNjIsIDAuMDEyMzE0LCAwLjAxMjMzMiwgMC4wMTIzNDgsIDAuMDEyMzU5LCAwLjAxMjM2NyIsIFwKLSAgICAgICAgICAiMC4wMTIxMjEsIDAuMDEyMjM5LCAwLjAxMjI5LCAwLjAxMjMxNywgMC4wMTIzMzIsIDAuMDEyMzQ0LCAwLjAxMjM1MiIsIFwKLSAgICAgICAgICAiMC4wMTIyMjgsIDAuMDEyMjQyLCAwLjAxMjI4OCwgMC4wMTIzMDgsIDAuMDEyMzI3LCAwLjAxMjMzOCwgMC4wMTIzNTEiLCBcCi0gICAgICAgICAgIjAuMDEyNTI1LCAwLjAxMjMxNiwgMC4wMTIzMjIsIDAuMDEyMzI5LCAwLjAxMjM0LCAwLjAxMjM0NywgMC4wMTIzNTEiLCBcCi0gICAgICAgICAgIjAuMDEyODg0LCAwLjAxMjQzNywgMC4wMTIzODksIDAuMDEyMzc4LCAwLjAxMjM3NCwgMC4wMTIzNzQsIDAuMDEyMzc0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDE1MjksIDAuMDAxNTU4LCAwLjAwMTU2LCAwLjAwMTU2MSwgMC4wMDE1NjIsIDAuMDAxNTYyLCAwLjAwMTU2MiIsIFwKLSAgICAgICAgICAiMC4wMDE1MDksIDAuMDAxNjAyLCAwLjAwMTYxOCwgMC4wMDE2MjMsIDAuMDAxNjI2LCAwLjAwMTYyNywgMC4wMDE2MjkiLCBcCi0gICAgICAgICAgIjAuMDAxNTkzLCAwLjAwMTYyNywgMC4wMDE2MzYsIDAuMDAxNjM4LCAwLjAwMTY0MSwgMC4wMDE2NDMsIDAuMDAxNjUzIiwgXAotICAgICAgICAgICIwLjAwMTg2OSwgMC4wMDE3MTYsIDAuMDAxNjc5LCAwLjAwMTY3NSwgMC4wMDE2NywgMC4wMDE2NjcsIDAuMDAxNjY0IiwgXAotICAgICAgICAgICIwLjAwMjA5OCwgMC4wMDE4MiwgMC4wMDE3NjQsIDAuMDAxNzM4LCAwLjAwMTcyLCAwLjAwMTcwOSwgMC4wMDE2OTgiLCBcCi0gICAgICAgICAgIjAuMDAyNzEsIDAuMDAyMDMzLCAwLjAwMTk4NiwgMC4wMDE5MiwgMC4wMDE4NTksIDAuMDAxODIzLCAwLjAwMTc4OSIsIFwKLSAgICAgICAgICAiMC4wMDMzMSwgMC4wMDIzMiwgMC4wMDIwODMsIDAuMDAyMDA2LCAwLjAwMTkyMSwgMC4wMDE4NzIsIDAuMDAxODI2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDkzMjUsIDAuMDA5NDI5LCAwLjAwOTQ0MywgMC4wMDk0NDcsIDAuMDA5NDUyLCAwLjAwOTQ0OSwgMC4wMDk0NTMiLCBcCi0gICAgICAgICAgIjAuMDA5MTk3LCAwLjAwOTM2MywgMC4wMDk0MDEsIDAuMDA5NDEzLCAwLjAwOTQyNCwgMC4wMDk0MjksIDAuMDA5NDM2IiwgXAotICAgICAgICAgICIwLjAwOTMyMywgMC4wMDkzNDEsIDAuMDA5Mzc4LCAwLjAwOTM5NCwgMC4wMDk0MDYsIDAuMDA5NDE2LCAwLjAwOTQyMyIsIFwKLSAgICAgICAgICAiMC4wMDk2MTksIDAuMDA5NDAxLCAwLjAwOTQwMywgMC4wMDk0MDksIDAuMDA5NDE3LCAwLjAwOTQyMiwgMC4wMDk0MjciLCBcCi0gICAgICAgICAgIjAuMDEwMDE1LCAwLjAwOTUxNCwgMC4wMDk0NjQsIDAuMDA5NDUyLCAwLjAwOTQ0OSwgMC4wMDk0NDMsIDAuMDA5NDQ3IiwgXAotICAgICAgICAgICIwLjAxMDY3OSwgMC4wMDk3NjQsIDAuMDA5NjEsIDAuMDA5NTY0LCAwLjAwOTUzLCAwLjAwOTUwOCwgMC4wMDk0OTEiLCBcCi0gICAgICAgICAgIjAuMDExMjIyLCAwLjAxMDAxNCwgMC4wMDk3NywgMC4wMDk2ODQsIDAuMDA5NjE4LCAwLjAwOTU4MiwgMC4wMDk1NDYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDAwNiwgMC4wMDAxMDksIDAuMDAwMTIyLCAwLjAwMDEyNiwgMC4wMDAxMjksIDAuMDAwMTMsIDAuMDAwMTMyIiwgXAotICAgICAgICAgICIwLjAwMDAzOSwgMC4wMDAyMywgMC4wMDAyNTksIDAuMDAwMjY3LCAwLjAwMDI3NSwgMC4wMDAyNzksIDAuMDAwMjgyIiwgXAotICAgICAgICAgICIwLjAwMDE0NSwgMC4wMDAyNTksIDAuMDAwMjg5LCAwLjAwMDI5OCwgMC4wMDAzMjIsIDAuMDAwMzIzLCAwLjAwMDMyMyIsIFwKLSAgICAgICAgICAiMC4wMDA0NSwgMC4wMDAzNjUsIDAuMDAwMzM0LCAwLjAwMDMzOSwgMC4wMDAzNCwgMC4wMDAzNDEsIDAuMDAwMzQxIiwgXAotICAgICAgICAgICIwLjAwMDY2MSwgMC4wMDA0NTEsIDAuMDAwNDE3LCAwLjAwMDM5OCwgMC4wMDAzOSwgMC4wMDAzODIsIDAuMDAwMzc3IiwgXAotICAgICAgICAgICIwLjAwMTI5OSwgMC4wMDA3MzUsIDAuMDAwNjI4LCAwLjAwMDU3MywgMC4wMDA1MjMsIDAuMDAwNDkyLCAwLjAwMDQ2NCIsIFwKLSAgICAgICAgICAiMC4wMDE5MDgsIDAuMDAwOTQsIDAuMDAwNzIyLCAwLjAwMDY2MywgMC4wMDA1ODgsIDAuMDAwNTQ0LCAwLjAwMDUxNCIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBOT1I0QkJYTCAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoTk9SNEJCWEwpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4zMTU3ODg7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEFOKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2OTQzMTc7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjk0MzA4OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDY5NDMxNzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyNTEsIDAuMDAwMjc2LCAwLjAwMDM2MSwgMC4wMDA0NjksIDAuMDAwNjAyLCAwLjAwMDgyOSwgMC4wMDEwMzIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDE3NjQsIDAuMDAxNzg2LCAwLjAwMTg3NSwgMC4wMDE5ODEsIDAuMDAyMTExLCAwLjAwMjMzMSwgMC4wMDI1MzMiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEJOKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2MDkxNTI7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjA5MTUyOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDYwOTEwOTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyMDYsIDAuMDAwMjE4LCAwLjAwMDMwNiwgMC4wMDA0MiwgMC4wMDA1NTIsIDAuMDAwNzg0LCAwLjAwMDk4MSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTkyNywgMC4wMDE5NDYsIDAuMDAyMDM3LCAwLjAwMjE1NSwgMC4wMDIyOTEsIDAuMDAyNTIsIDAuMDAyNzExIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihDKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA3MjEyMjI7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNzE5NzIzOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDcyMTIyMjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAwOTUsIDAuMDAwMDk1LCAwLjAwMDA5NSwgMC4wMDAwOTUsIDAuMDAwMDk1LCAwLjAwMDA5NiwgMC4wMDAwOTYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyNDEsIDAuMDAwMjQyLCAwLjAwMDI0MiwgMC4wMDAyNDEsIDAuMDAwMjQxLCAwLjAwMDI0MSwgMC4wMDAyNDEiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEQpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDczMDg3NTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA3MzA4NzU7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNzMwNjE7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMDczLCAwLjAwMDA3MywgMC4wMDAwNzMsIDAuMDAwMDczLCAwLjAwMDA3MywgMC4wMDAwNzMsIDAuMDAwMDczIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMTk3LCAwLjAwMDE5NywgMC4wMDAxOTcsIDAuMDAwMTk3LCAwLjAwMDE5NywgMC4wMDAxOTcsIDAuMDAwMTk3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMDU1MjY3OTsKLSAgICBmdW5jdGlvbiA6ICIoISgoKCghQU4pKyghQk4pKStDKStEKSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkFOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMjIyMDQsIDAuMjU4NTAyLCAwLjU4MzAzOCwgMS4xMjM4LCAxLjY2NTcsIDIuOTI1MTIsIDMuNjQ0ODgiLCBcCi0gICAgICAgICAgIjAuMjI5MzE2LCAwLjI2NTYwOSwgMC41OTAzMjQsIDEuMTMwOTksIDEuNjcyMTIsIDIuOTMzOSwgMy42NTIzNiIsIFwKLSAgICAgICAgICAiMC4yMzQ3MSwgMC4yNzA4NTcsIDAuNTk1MDQyLCAxLjEzNjkxLCAxLjY3NjI3LCAyLjkzODEsIDMuNjU3NjIiLCBcCi0gICAgICAgICAgIjAuMjM4NDQ0LCAwLjI3NDc2NSwgMC41OTk3ODcsIDEuMTQwNjksIDEuNjgyMTcsIDIuOTQxMjgsIDMuNjYxMTUiLCBcCi0gICAgICAgICAgIjAuMjQxNTksIDAuMjc3NjY2LCAwLjYwMjY2NCwgMS4xNDM4MiwgMS42ODM3NCwgMi45NDQzMSwgMy42NjQ0OCIsIFwKLSAgICAgICAgICAiMC4yNDU1MTUsIDAuMjgxNTg0LCAwLjYwNjA0OSwgMS4xNDczNCwgMS42ODgxMSwgMi45NDgyNywgMy42NjgxMyIsIFwKLSAgICAgICAgICAiMC4yNDg1MzgsIDAuMjg0NTkxLCAwLjYwOTE2MywgMS4xNTAzOCwgMS42OTA2NCwgMi45NTEzMywgMy42NzIxOCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC40MjkxNDIsIDAuNTA0OTk2LCAxLjE5MTA2LCAyLjMzNDUxLCAzLjQ3OTQ1LCA2LjE0NjU1LCA3LjY3MDU5IiwgXAotICAgICAgICAgICIwLjQyOTEyMSwgMC41MDQ5NjgsIDEuMTkxNTEsIDIuMzM0NTMsIDMuNDc4MTIsIDYuMTQ2MTcsIDcuNjc0NzciLCBcCi0gICAgICAgICAgIjAuNDI5MTQ2LCAwLjUwNDg4OCwgMS4xOTIwOSwgMi4zMzUxMSwgMy40NzkyNywgNi4xNDcwOCwgNy42NzQxOCIsIFwKLSAgICAgICAgICAiMC40MjkwMDUsIDAuNTA0OTU1LCAxLjE5MTY1LCAyLjMzNDkyLCAzLjQ3ODU5LCA2LjE0ODEyLCA3LjY3MDUxIiwgXAotICAgICAgICAgICIwLjQyODk1OCwgMC41MDUzODMsIDEuMTkxNDksIDIuMzM0OCwgMy40Nzg2OSwgNi4xNDg4OSwgNy42NzAxOSIsIFwKLSAgICAgICAgICAiMC40Mjg1MywgMC41MDUxOTgsIDEuMTkyLCAyLjMzNDUxLCAzLjQ3OTE0LCA2LjE1MjAxLCA3LjY3MjgzIiwgXAotICAgICAgICAgICIwLjQyODQxNSwgMC41MDQ2MDUsIDEuMTkxMDYsIDIuMzM1MTYsIDMuNDgxOTksIDYuMTUxOTYsIDcuNjc0NjQiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDcxMTM3LCAwLjA4MDg5LCAwLjE2ODE0OCwgMC4zMTMwMiwgMC40NTc4NjcsIDAuNzk1NzIxLCAwLjk4ODQwMSIsIFwKLSAgICAgICAgICAiMC4wNzgyODIsIDAuMDg4MDI1LCAwLjE3NTI1NSwgMC4zMjAxNjIsIDAuNDY0OTY0LCAwLjgwMzE0LCAwLjk5NTY2IiwgXAotICAgICAgICAgICIwLjA4NDAwMywgMC4wOTM3NSwgMC4xODA5NzYsIDAuMzI1OTQ1LCAwLjQ3MDczNywgMC44MDg4NTQsIDEuMDAxOTMiLCBcCi0gICAgICAgICAgIjAuMDg4MDYyLCAwLjA5Nzg0NywgMC4xODQ5OTgsIDAuMzI5OTYzLCAwLjQ3NDgyMywgMC44MTI5MSwgMS4wMDU1NCIsIFwKLSAgICAgICAgICAiMC4wOTE0OTUsIDAuMTAxMjE5LCAwLjE4ODM0NCwgMC4zMzMyODMsIDAuNDc4MTExLCAwLjgxNTk4NiwgMS4wMDg5OCIsIFwKLSAgICAgICAgICAiMC4wOTU5MzgsIDAuMTA1NzMxLCAwLjE5Mjk3NywgMC4zMzc4MzYsIDAuNDgyNzAzLCAwLjgyMDQ0OCwgMS4wMTM0NSIsIFwKLSAgICAgICAgICAiMC4wOTkyNTksIDAuMTA5MDI2LCAwLjE5NjE1NCwgMC4zNDA5NzQsIDAuNDg1ODI5LCAwLjgyMzkxMywgMS4wMTY2MiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTU2NDcsIDAuMTM1MzgyLCAwLjMxMzQ2OCwgMC42MTAzMDYsIDAuOTA3MTQ3LCAxLjYwMDMsIDEuOTk2MiIsIFwKLSAgICAgICAgICAiMC4xMTU2NzgsIDAuMTM1Mzk3LCAwLjMxMzQzOSwgMC42MTAxNjIsIDAuOTA3Mzc3LCAxLjYwMDEyLCAxLjk5NTU0IiwgXAotICAgICAgICAgICIwLjExNTg1OSwgMC4xMzU1NjIsIDAuMzEzNDQ1LCAwLjYxMDMwOSwgMC45MDcwNywgMS42MDAyLCAxLjk5NTk0IiwgXAotICAgICAgICAgICIwLjExNjAzOSwgMC4xMzU2ODYsIDAuMzEzNiwgMC42MTAyOTcsIDAuOTA3MjMyLCAxLjYwMDI0LCAxLjk5NTQ1IiwgXAotICAgICAgICAgICIwLjExNjE3MiwgMC4xMzU4MzEsIDAuMzEzNDYxLCAwLjYxMDMzMSwgMC45MDcyMTUsIDEuNTk5NywgMS45OTU2NiIsIFwKLSAgICAgICAgICAiMC4xMTY1NzUsIDAuMTM2MDQ2LCAwLjMxMzY0NiwgMC42MTAyNDUsIDAuOTA3Mjc3LCAxLjYwMDI2LCAxLjk5NTI1IiwgXAotICAgICAgICAgICIwLjExNjkxNiwgMC4xMzY1MSwgMC4zMTM3NTIsIDAuNjEwMzI4LCAwLjkwNzI0NiwgMS41OTk5NywgMS45OTU2MSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjIwNDY3LCAwLjI1NjQ1NCwgMC41ODE2MiwgMS4xMjA5OSwgMS42NjE3NSwgMi45MjI5LCAzLjY0MSIsIFwKLSAgICAgICAgICAiMC4yMjc2OTgsIDAuMjYzODg2LCAwLjU4ODY1OCwgMS4xMjk0MSwgMS42NzEzOCwgMi45MzA3MywgMy42NTA0OCIsIFwKLSAgICAgICAgICAiMC4yMzMzNDEsIDAuMjY5MzE1LCAwLjU5MzczNiwgMS4xMzUzMywgMS42NzU4OSwgMi45MzgwNSwgMy42NTU3NCIsIFwKLSAgICAgICAgICAiMC4yMzcyNSwgMC4yNzMyOCwgMC41OTc3OTEsIDEuMTM4NiwgMS42ODA0MywgMi45NDEyLCAzLjY2MDQ2IiwgXAotICAgICAgICAgICIwLjI0MDYzNCwgMC4yNzY1NzMsIDAuNjAxMzksIDEuMTQzNSwgMS42ODM2NywgMi45NDU1NywgMy42NjM4NyIsIFwKLSAgICAgICAgICAiMC4yNDQ3MDcsIDAuMjgwNzg1LCAwLjYwNTU1MSwgMS4xNDY1MSwgMS42ODY4NiwgMi45NDc3NSwgMy42Njc3NyIsIFwKLSAgICAgICAgICAiMC4yNDc5NDgsIDAuMjgzOTQyLCAwLjYwODY2MSwgMS4xNDkzMiwgMS42OTA0LCAyLjk1MTE5LCAzLjY3MTM0Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjQyODk2MywgMC41MDUwNjksIDEuMTkxMTYsIDIuMzM1NjIsIDMuNDgwMTgsIDYuMTQ5ODUsIDcuNjcxMjMiLCBcCi0gICAgICAgICAgIjAuNDI4ODU5LCAwLjUwNDg5NiwgMS4xOTEwOSwgMi4zMzQ1MSwgMy40Nzk3MywgNi4xNDY1NSwgNy42NzA2IiwgXAotICAgICAgICAgICIwLjQyOTIyMiwgMC41MDUwOTUsIDEuMTkyMDQsIDIuMzM1NiwgMy40ODMzNywgNi4xNDYyNiwgNy42NzI2NyIsIFwKLSAgICAgICAgICAiMC40MjkwNTIsIDAuNTA1MzgyLCAxLjE5MjMzLCAyLjMzNjg5LCAzLjQ3NzcxLCA2LjE0NjkxLCA3LjY3MDYzIiwgXAotICAgICAgICAgICIwLjQyOTA2NiwgMC41MDUzMjEsIDEuMTkxMDksIDIuMzM1MTYsIDMuNDc4MTcsIDYuMTQ2MzEsIDcuNjcwNjIiLCBcCi0gICAgICAgICAgIjAuNDI4OTA5LCAwLjUwNTIzMiwgMS4xOTIzNywgMi4zMzc2MywgMy40ODE2MywgNi4xNDk5NiwgNy42NzAzNyIsIFwKLSAgICAgICAgICAiMC40Mjg3MiwgMC41MDQ3ODksIDEuMTkxODgsIDIuMzM2NTIsIDMuNDgyMjIsIDYuMTQ2MzQsIDcuNjc0MTYiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDcwNDc2LCAwLjA4MDE3MywgMC4xNjcxNTUsIDAuMzExOTcxLCAwLjQ1NjY1NiwgMC43OTQxNTIsIDAuOTg3NjY2IiwgXAotICAgICAgICAgICIwLjA3Nzc3LCAwLjA4NzQ1NSwgMC4xNzQ0NTYsIDAuMzE5Mjk0LCAwLjQ2NDAxNywgMC44MDIyMzYsIDAuOTk1IiwgXAotICAgICAgICAgICIwLjA4Mzg1LCAwLjA5MzUzMywgMC4xODA1MzYsIDAuMzI1NDUxLCAwLjQ3MDEzNiwgMC44MDgyMzcsIDEuMDAwNzYiLCBcCi0gICAgICAgICAgIjAuMDg3OTU5LCAwLjA5NzY5NCwgMC4xODQ2NzYsIDAuMzI5NDgyLCAwLjQ3NDM0NCwgMC44MTIzNSwgMS4wMDQ5NCIsIFwKLSAgICAgICAgICAiMC4wOTE0MjEsIDAuMTAxMTM5LCAwLjE4ODEyLCAwLjMzMjg2NSwgMC40Nzc3NzcsIDAuODE1MzcyLCAxLjAwODUxIiwgXAotICAgICAgICAgICIwLjA5NjIsIDAuMTA1OTYzLCAwLjE5MjkxLCAwLjMzNzY4LCAwLjQ4MjQ1NywgMC44MjAxNzcsIDEuMDEzMDciLCBcCi0gICAgICAgICAgIjAuMDk5NDg0LCAwLjEwOTE5LCAwLjE5NjQyNCwgMC4zNDEyOTYsIDAuNDg1ODQzLCAwLjgyMzc0MiwgMS4wMTY2MSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTMzOTksIDAuMTMzMDg1LCAwLjMxMTI2MiwgMC42MDgwNjksIDAuOTA1MzAxLCAxLjU5Nzg5LCAxLjk5MzQ0IiwgXAotICAgICAgICAgICIwLjExMzQzNiwgMC4xMzMxNTksIDAuMzExMTc2LCAwLjYwODAzOSwgMC45MDUwMDYsIDEuNTk4MDYsIDEuOTkzMzUiLCBcCi0gICAgICAgICAgIjAuMTEzNjQ0LCAwLjEzMzMyNiwgMC4zMTEyNjQsIDAuNjA4MjQ2LCAwLjkwNDk3MSwgMS41OTc4OSwgMS45OTM5IiwgXAotICAgICAgICAgICIwLjExMzkxMSwgMC4xMzM0OTMsIDAuMzExMjM1LCAwLjYwODEzNCwgMC45MDUxNTMsIDEuNTk3OTQsIDEuOTkyOTYiLCBcCi0gICAgICAgICAgIjAuMTE0MDM3LCAwLjEzMzY3MSwgMC4zMTEyNDcsIDAuNjA4Mzg2LCAwLjkwNTAyOSwgMS41OTcyMiwgMS45OTMxNCIsIFwKLSAgICAgICAgICAiMC4xMTQ1NTYsIDAuMTMzOTUsIDAuMzExMzg5LCAwLjYwODI0OCwgMC45MDUwMjcsIDEuNTk4MDIsIDEuOTkyODMiLCBcCi0gICAgICAgICAgIjAuMTE0OTE5LCAwLjEzNDQ2MSwgMC4zMTE0NDEsIDAuNjA4Mjg2LCAwLjkwNTEyMywgMS41OTc1MSwgMS45OTM0NiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMDcwODUsIDAuMjQzMTQyLCAwLjU2Nzg1MSwgMS4xMDg3MSwgMS42NTA5LCAyLjkxMDI0LCAzLjYyOTQyIiwgXAotICAgICAgICAgICIwLjIxMjgsIDAuMjQ4Nzc3LCAwLjU3MzY5MSwgMS4xMTUzLCAxLjY1NTM0LCAyLjkxNzYsIDMuNjM1OTgiLCBcCi0gICAgICAgICAgIjAuMjE5OTIzLCAwLjI1NTgzMiwgMC41ODA0ODIsIDEuMTIyMjksIDEuNjYzMTMsIDIuOTI0NjcsIDMuNjQyNTkiLCBcCi0gICAgICAgICAgIjAuMjI2OTUzLCAwLjI2Mjk1MiwgMC41ODc1OCwgMS4xMjkwNSwgMS42NjkzMiwgMi45MzE5MSwgMy42NDk3NSIsIFwKLSAgICAgICAgICAiMC4yMzQxNDksIDAuMjcwNDEsIDAuNTk1MDU4LCAxLjEzNjk1LCAxLjY3ODYsIDIuOTM3NzgsIDMuNjU3NDciLCBcCi0gICAgICAgICAgIjAuMjQ2MTExLCAwLjI4MjI5NywgMC42MDY2OTIsIDEuMTQ3MjUsIDEuNjg5ODYsIDIuOTUwNDEsIDMuNjY4MyIsIFwKLSAgICAgICAgICAiMC4yNTY4ODIsIDAuMjkyNjcxLCAwLjYxNjk1NCwgMS4xNTczOSwgMS42OTg2MywgMi45NTkwMSwgMy42NzkiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuNDI4Njk1LCAwLjUwNDg5OCwgMS4xOTEwOSwgMi4zMzQ1NywgMy40ODAyLCA2LjE0Njc4LCA3LjY3NDA5IiwgXAotICAgICAgICAgICIwLjQyODY4MSwgMC41MDU0NiwgMS4xOTA5NCwgMi4zMzUxLCAzLjQ4MzQsIDYuMTQ2MjcsIDcuNjc0OCIsIFwKLSAgICAgICAgICAiMC40Mjg2ODMsIDAuNTA1MzQyLCAxLjE5MjI5LCAyLjMzNTM5LCAzLjQ3OTc2LCA2LjE0NjI5LCA3LjY3NDA5IiwgXAotICAgICAgICAgICIwLjQyOTA5NiwgMC41MDUzNzksIDEuMTkyMTQsIDIuMzM1NDgsIDMuNDc4OTQsIDYuMTQ2MTcsIDcuNjczOTEiLCBcCi0gICAgICAgICAgIjAuNDMwOTU1LCAwLjUwNjQ2NCwgMS4xOTI1LCAyLjMzNTY1LCAzLjQ4MDI2LCA2LjE0NTczLCA3LjY3MDUxIiwgXAotICAgICAgICAgICIwLjQzNTMyOSwgMC41MDk5MTIsIDEuMTkyLCAyLjMzNzQxLCAzLjQ3OTc2LCA2LjE0NDY2LCA3LjY3MDQ4IiwgXAotICAgICAgICAgICIwLjQ0MDY5MiwgMC41MTM5MzMsIDEuMTkxOTQsIDIuMzM2MzgsIDMuNDgyNDMsIDYuMTUyMDcsIDcuNjcwNDIiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU3ODgsIDAuMDY3NTM4LCAwLjE1NDQ0OSwgMC4yOTkxMTcsIDAuNDQzOTIxLCAwLjc4MTU5NSwgMC45NzQ1NDEiLCBcCi0gICAgICAgICAgIjAuMDY2MTA2LCAwLjA3NTc0NywgMC4xNjI2MDksIDAuMzA3MzUsIDAuNDUyMTc5LCAwLjc4OTc0NywgMC45ODI4MDEiLCBcCi0gICAgICAgICAgIjAuMDc2NTg5LCAwLjA4NjI0MiwgMC4xNzIxODIsIDAuMzE3NzM1LCAwLjQ2MjUxMSwgMC43OTk5NzcsIDAuOTkzNDE0IiwgXAotICAgICAgICAgICIwLjA4NjgxMSwgMC4wOTY0MzUsIDAuMTgzMjUxLCAwLjMyODA5OCwgMC40NzI4MzgsIDAuODEwMjgzLCAxLjAwMzQyIiwgXAotICAgICAgICAgICIwLjA5NzQxNCwgMC4xMDczMzEsIDAuMTkzMDM2LCAwLjMzNzk0MiwgMC40ODI5ODIsIDAuODIwMDExLCAxLjAxMzU5IiwgXAotICAgICAgICAgICIwLjExMjU1LCAwLjEyMzUzMywgMC4yMDk3MDYsIDAuMzU0MDc2LCAwLjQ5NjgwMywgMC44MzY0MTYsIDEuMDI5MjIiLCBcCi0gICAgICAgICAgIjAuMTIzMDYyLCAwLjEzNTM5MSwgMC4yMjQyMzYsIDAuMzY4NDM1LCAwLjUxMzEyNywgMC44NTA2NjQsIDEuMDQ0MjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTExMDMxLCAwLjEzMDg3OCwgMC4zMDkwMDksIDAuNjA1ODk3LCAwLjkwMjc0MywgMS41OTQ4LCAxLjk5MTMzIiwgXAotICAgICAgICAgICIwLjExMTMzOSwgMC4xMzA5MDcsIDAuMzA4OTk0LCAwLjYwNTg1OSwgMC45MDI1MTUsIDEuNTk0OTEsIDEuOTkwNzEiLCBcCi0gICAgICAgICAgIjAuMTE1NDcsIDAuMTM0MTk4LCAwLjMwODk0NiwgMC42MDU4NzEsIDAuOTAyNzY3LCAxLjU5NTUzLCAxLjk5MTQxIiwgXAotICAgICAgICAgICIwLjEyMjU4NiwgMC4xNDA1NTYsIDAuMzEwNTk3LCAwLjYwNTc0NiwgMC45MDI1MjgsIDEuNTk0OTQsIDEuOTkxNTIiLCBcCi0gICAgICAgICAgIjAuMTMwNzExLCAwLjE0NzU5NSwgMC4zMTQ0MTYsIDAuNjA1ODgyLCAwLjkwMjMzMiwgMS41OTUwNywgMS45OTEzMiIsIFwKLSAgICAgICAgICAiMC4xNDQ4ODMsIDAuMTYxNDA3LCAwLjMyMzE1NCwgMC42MDg1MiwgMC45MDI1MjcsIDEuNTk1OCwgMS45OTE2MyIsIFwKLSAgICAgICAgICAiMC4xNTg5MTQsIDAuMTc0OTUsIDAuMzMyNjY0LCAwLjYxMzExOCwgMC45MDM0MzQsIDEuNTk1NDMsIDEuOTkxMTQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjAwNDk5LCAwLjIzNjU3LCAwLjU2MTYxNSwgMS4xMDIyOCwgMS42NDQ0MSwgMi45MDM0MiwgMy42MjMyIiwgXAotICAgICAgICAgICIwLjIwNzAxMywgMC4yNDMwNzYsIDAuNTY3NTIsIDEuMTA5NDksIDEuNjUwMSwgMi45MTAwNywgMy42Mjk5OCIsIFwKLSAgICAgICAgICAiMC4yMTU0NjQsIDAuMjUxMzc2LCAwLjU3NiwgMS4xMTcyNSwgMS42NTg2OCwgMi45MTg5OSwgMy42Mzg0NiIsIFwKLSAgICAgICAgICAiMC4yMjM4NTgsIDAuMjU5ODM0LCAwLjU4NDIxNSwgMS4xMjQ2NywgMS42NjYxNSwgMi45MjY0MSwgMy42NDYzNiIsIFwKLSAgICAgICAgICAiMC4yMzI1MjQsIDAuMjY4NjYsIDAuNTkyNTgxLCAxLjEzMzk5LCAxLjY3NDY4LCAyLjkzNDg3LCAzLjY1NDcxIiwgXAotICAgICAgICAgICIwLjI0Njg3NiwgMC4yODI2ODQsIDAuNjA2NjI3LCAxLjE0NjU4LCAxLjY4OTI1LCAyLjk0ODI2LCAzLjY2ODc4IiwgXAotICAgICAgICAgICIwLjI1OTg3MSwgMC4yOTUyMTQsIDAuNjE4NTY1LCAxLjE1ODUzLCAxLjY5ODcxLCAyLjk2MDU0LCAzLjY3OTE2Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjQyOTA1MiwgMC41MDUyNjgsIDEuMTkxMTMsIDIuMzM0NTUsIDMuNDgwMDMsIDYuMTQ3NzMsIDcuNjcwNjEiLCBcCi0gICAgICAgICAgIjAuNDI4NzM5LCAwLjUwNTQxNiwgMS4xOTIzNSwgMi4zMzU1MiwgMy40Nzk2MywgNi4xNDYzLCA3LjY3NDQ3IiwgXAotICAgICAgICAgICIwLjQyODYyOSwgMC41MDUzMDQsIDEuMTkyNDgsIDIuMzM0NTksIDMuNDc4NDIsIDYuMTQ3MTMsIDcuNjcwODMiLCBcCi0gICAgICAgICAgIjAuNDI5MTk1LCAwLjUwNTE1MSwgMS4xOTIzNiwgMi4zMzY4LCAzLjQ3ODY4LCA2LjE0ODM0LCA3LjY3MDMyIiwgXAotICAgICAgICAgICIwLjQzMTI0OCwgMC41MDU5MzcsIDEuMTkyMiwgMi4zMzU2NywgMy40NzkyOCwgNi4xNDYyNywgNy42NzA0NCIsIFwKLSAgICAgICAgICAiMC40MzcxMDIsIDAuNTEwNTg1LCAxLjE5MDk3LCAyLjMzNjg3LCAzLjQ3ODk4LCA2LjE0NTY3LCA3LjY3NDg1IiwgXAotICAgICAgICAgICIwLjQ0NDIzNCwgMC41MTY3NzEsIDEuMTkwNTksIDIuMzM0ODIsIDMuNDc4MDQsIDYuMTQ1MjksIDcuNjczOCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTYzMDYsIDAuMDY1OTU1LCAwLjE1Mjc5LCAwLjI5NzUxOSwgMC40NDIyOCwgMC43Nzk4ODMsIDAuOTczMTY1IiwgXAotICAgICAgICAgICIwLjA2NDU1MywgMC4wNzQxODEsIDAuMTYxMDMxLCAwLjMwNTc0NCwgMC40NTA1OTgsIDAuNzg4MDcyLCAwLjk4MDk1NSIsIFwKLSAgICAgICAgICAiMC4wNzQ3OSwgMC4wODQzODQsIDAuMTcxMjI0LCAwLjMxNjI5MywgMC40NjA3NDcsIDAuNzk4MTM0LCAwLjk5MTYxNCIsIFwKLSAgICAgICAgICAiMC4wODUyNCwgMC4wOTQ3OTMsIDAuMTgxNjg4LCAwLjMyNjQ2NCwgMC40NzEwMTIsIDAuODA4MzgsIDEuMDAyMTUiLCBcCi0gICAgICAgICAgIjAuMDk1NjQ4LCAwLjEwNTI5OCwgMC4xOTIwMzEsIDAuMzM2MTAzLCAwLjQ4MTEzMiwgMC44MTg2ODksIDEuMDEyMjgiLCBcCi0gICAgICAgICAgIjAuMTEwMTUxLCAwLjEyMTIxLCAwLjIwODYsIDAuMzUyOTgyLCAwLjQ5NTY4NCwgMC44MzUzMDIsIDEuMDI4MTIiLCBcCi0gICAgICAgICAgIjAuMTIwNDI0LCAwLjEzMjc3MSwgMC4yMjMxNDgsIDAuMzY3NTQ0LCAwLjUxMjIyNywgMC44NDk4MzYsIDEuMDQzMjQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTA5MzU5LCAwLjEyOTE5MSwgMC4zMDcwNDcsIDAuNjA0NDcsIDAuOTAxMTYyLCAxLjU5MzU2LCAxLjk5MDg2IiwgXAotICAgICAgICAgICIwLjEwOTQyMywgMC4xMjkyNjEsIDAuMzA3MDI5LCAwLjYwNDE3MiwgMC45MDEwMTYsIDEuNTkzNjEsIDEuOTkzOTUiLCBcCi0gICAgICAgICAgIjAuMTE0MDg2LCAwLjEzMjY0MSwgMC4zMDcxNTgsIDAuNjAzOTQ3LCAwLjkwMDYwNiwgMS41OTMzNiwgMS45ODk1OCIsIFwKLSAgICAgICAgICAiMC4xMjEwMDMsIDAuMTM4OTYyLCAwLjMwOTI2LCAwLjYwNDQ4MywgMC45MDEwMTQsIDEuNTk0MjEsIDEuOTkwNyIsIFwKLSAgICAgICAgICAiMC4xMjkzNDEsIDAuMTQ2NjI4LCAwLjMxMjgyMywgMC42MDQxMjMsIDAuOTAwNzEyLCAxLjU5Mzk0LCAxLjk5MDcyIiwgXAotICAgICAgICAgICIwLjE0NDMzOSwgMC4xNjA4MjEsIDAuMzIxNTU3LCAwLjYwNzQ5LCAwLjkwMTAyNCwgMS41OTY1MSwgMS45OTMzNSIsIFwKLSAgICAgICAgICAiMC4xNTg1MTIsIDAuMTc0MzEsIDAuMzMwMjI5LCAwLjYxMjI5MywgMC45MDE4NzMsIDEuNTk0NzMsIDEuOTg5NTkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyNzE2LCAwLjAwMjcxNiwgMC4wMDI3MTcsIDAuMDAyNzE3LCAwLjAwMjcxNywgMC4wMDI3MTYsIDAuMDAyNzE2IiwgXAotICAgICAgICAgICIwLjAwMjcyNywgMC4wMDI3MjgsIDAuMDAyNzI5LCAwLjAwMjcyOSwgMC4wMDI3MjksIDAuMDAyNzI5LCAwLjAwMjcyOSIsIFwKLSAgICAgICAgICAiMC4wMDI4MTUsIDAuMDAyODE1LCAwLjAwMjgxNywgMC4wMDI4MTcsIDAuMDAyODE3LCAwLjAwMjgxOSwgMC4wMDI4MTgiLCBcCi0gICAgICAgICAgIjAuMDAyOTI4LCAwLjAwMjkyOSwgMC4wMDI5MywgMC4wMDI5MzIsIDAuMDAyOTMyLCAwLjAwMjkzMSwgMC4wMDI5MyIsIFwKLSAgICAgICAgICAiMC4wMDMwNTcsIDAuMDAzMDY3LCAwLjAwMzA3LCAwLjAwMzA2LCAwLjAwMzA3MSwgMC4wMDMwNzIsIDAuMDAzMDU4IiwgXAotICAgICAgICAgICIwLjAwMzI4OCwgMC4wMDMyODksIDAuMDAzMjg5LCAwLjAwMzI5LCAwLjAwMzI5LCAwLjAwMzI5LCAwLjAwMzI5MSIsIFwKLSAgICAgICAgICAiMC4wMDM0OTQsIDAuMDAzNDkxLCAwLjAwMzQ5MiwgMC4wMDM0OTMsIDAuMDAzNDk0LCAwLjAwMzQ5MiwgMC4wMDM0NzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI3MjYsIDAuMDAyNzI2LCAwLjAwMjcyNiwgMC4wMDI3MjYsIDAuMDAyNzI2LCAwLjAwMjcyNSwgMC4wMDI3MjUiLCBcCi0gICAgICAgICAgIjAuMDAyNzM5LCAwLjAwMjczOSwgMC4wMDI3MzksIDAuMDAyNzM5LCAwLjAwMjczOSwgMC4wMDI3MzgsIDAuMDAyNzM4IiwgXAotICAgICAgICAgICIwLjAwMjgzLCAwLjAwMjgzMSwgMC4wMDI4MywgMC4wMDI4MywgMC4wMDI4MjksIDAuMDAyODI5LCAwLjAwMjgyOSIsIFwKLSAgICAgICAgICAiMC4wMDI5NDUsIDAuMDAyOTM2LCAwLjAwMjk0NCwgMC4wMDI5MzUsIDAuMDAyOTQzLCAwLjAwMjk0MywgMC4wMDI5NDMiLCBcCi0gICAgICAgICAgIjAuMDAzMDYsIDAuMDAzMDcxLCAwLjAwMzA3MSwgMC4wMDMwNiwgMC4wMDMwNzEsIDAuMDAzMDU4LCAwLjAwMzA3IiwgXAotICAgICAgICAgICIwLjAwMzI4NCwgMC4wMDMyODQsIDAuMDAzMjgyLCAwLjAwMzI4MiwgMC4wMDMyODIsIDAuMDAzMjgyLCAwLjAwMzI4MSIsIFwKLSAgICAgICAgICAiMC4wMDM0NzksIDAuMDAzNDc5LCAwLjAwMzQ4LCAwLjAwMzQ3OCwgMC4wMDM0NzksIDAuMDAzNDc3LCAwLjAwMzQ3NyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkJOIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI0NzUsIDAuMDAyNDc1LCAwLjAwMjQ3NywgMC4wMDI0NzUsIDAuMDAyNDc4LCAwLjAwMjQ3NywgMC4wMDI0NzkiLCBcCi0gICAgICAgICAgIjAuMDAyNDgxLCAwLjAwMjQ4MiwgMC4wMDI0ODUsIDAuMDAyNDg3LCAwLjAwMjQ4NywgMC4wMDI0ODcsIDAuMDAyNDg2IiwgXAotICAgICAgICAgICIwLjAwMjU2NywgMC4wMDI1NjksIDAuMDAyNTc0LCAwLjAwMjU3NywgMC4wMDI1NzgsIDAuMDAyNTc3LCAwLjAwMjU3OSIsIFwKLSAgICAgICAgICAiMC4wMDI2NzgsIDAuMDAyNjgsIDAuMDAyNjg2LCAwLjAwMjY4OCwgMC4wMDI2OSwgMC4wMDI2OSwgMC4wMDI2OSIsIFwKLSAgICAgICAgICAiMC4wMDI4MDYsIDAuMDAyODE3LCAwLjAwMjgyNCwgMC4wMDI4MTgsIDAuMDAyODE5LCAwLjAwMjgxOSwgMC4wMDI4MiIsIFwKLSAgICAgICAgICAiMC4wMDMwMzcsIDAuMDAzMDM5LCAwLjAwMzA0NywgMC4wMDMwNSwgMC4wMDMwNTMsIDAuMDAzMDUyLCAwLjAwMzA1MyIsIFwKLSAgICAgICAgICAiMC4wMDMyMjcsIDAuMDAzMjQzLCAwLjAwMzIzNywgMC4wMDMyNTYsIDAuMDAzMjU3LCAwLjAwMzI2MSwgMC4wMDMyNDYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI2NSwgMC4wMDI2NSwgMC4wMDI2NSwgMC4wMDI2NSwgMC4wMDI2NSwgMC4wMDI2NSwgMC4wMDI2NSIsIFwKLSAgICAgICAgICAiMC4wMDI2NjIsIDAuMDAyNjYyLCAwLjAwMjY2MywgMC4wMDI2NjMsIDAuMDAyNjYzLCAwLjAwMjY2MywgMC4wMDI2NjMiLCBcCi0gICAgICAgICAgIjAuMDAyNzQ3LCAwLjAwMjc0OSwgMC4wMDI3NDksIDAuMDAyNzUsIDAuMDAyNzUsIDAuMDAyNzUsIDAuMDAyNzUiLCBcCi0gICAgICAgICAgIjAuMDAyODY2LCAwLjAwMjg1OCwgMC4wMDI4NTksIDAuMDAyODU5LCAwLjAwMjg2NiwgMC4wMDI4NjYsIDAuMDAyODU5IiwgXAotICAgICAgICAgICIwLjAwMjk5MywgMC4wMDI5OTQsIDAuMDAyOTg0LCAwLjAwMjk5NCwgMC4wMDI5ODUsIDAuMDAyOTk0LCAwLjAwMjk4NCIsIFwKLSAgICAgICAgICAiMC4wMDMyMDksIDAuMDAzMjEsIDAuMDAzMjExLCAwLjAwMzIxMSwgMC4wMDMyLCAwLjAwMzIxMSwgMC4wMDMxOTkiLCBcCi0gICAgICAgICAgIjAuMDAzNDE0LCAwLjAwMzQxNCwgMC4wMDM0MDEsIDAuMDAzNDEyLCAwLjAwMzQwMiwgMC4wMDM0MTMsIDAuMDAzNDEzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyMjcyLCAwLjAwMjI3MiwgMC4wMDIyNzQsIDAuMDAyMjc0LCAwLjAwMjI3NCwgMC4wMDIyNzQsIDAuMDAyMjc0IiwgXAotICAgICAgICAgICIwLjAwMjI2MSwgMC4wMDIyNjMsIDAuMDAyMjY5LCAwLjAwMjI3MiwgMC4wMDIyNzMsIDAuMDAyMjczLCAwLjAwMjI3MyIsIFwKLSAgICAgICAgICAiMC4wMDIyNTQsIDAuMDAyMjU3LCAwLjAwMjI2NiwgMC4wMDIyNywgMC4wMDIyNzEsIDAuMDAyMjcyLCAwLjAwMjI3MiIsIFwKLSAgICAgICAgICAiMC4wMDIyNTgsIDAuMDAyMjU4LCAwLjAwMjI2NSwgMC4wMDIyNjksIDAuMDAyMjcxLCAwLjAwMjI3MiwgMC4wMDIyNzIiLCBcCi0gICAgICAgICAgIjAuMDAyMjY4LCAwLjAwMjI2OCwgMC4wMDIyNjksIDAuMDAyMjcsIDAuMDAyMjcxLCAwLjAwMjI3MiwgMC4wMDIyNzMiLCBcCi0gICAgICAgICAgIjAuMDAyMywgMC4wMDIyOTUsIDAuMDAyMjgxLCAwLjAwMjI3NiwgMC4wMDIyNzUsIDAuMDAyMjc1LCAwLjAwMjI3NCIsIFwKLSAgICAgICAgICAiMC4wMDIzMzksIDAuMDAyMzMsIDAuMDAyMjk3LCAwLjAwMjI4NSwgMC4wMDIyODEsIDAuMDAyMjc4LCAwLjAwMjI3NyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDE3OSwgMC4wMDAxNzksIDAuMDAwMTgsIDAuMDAwMTgsIDAuMDAwMTgsIDAuMDAwMTgsIDAuMDAwMTgiLCBcCi0gICAgICAgICAgIjAuMDAwMTg2LCAwLjAwMDE4NywgMC4wMDAxODksIDAuMDAwMTksIDAuMDAwMTkxLCAwLjAwMDE5LCAwLjAwMDE5IiwgXAotICAgICAgICAgICIwLjAwMDIsIDAuMDAwMTk5LCAwLjAwMDE5MywgMC4wMDAxOTMsIDAuMDAwMTkzLCAwLjAwMDE5MywgMC4wMDAxOTMiLCBcCi0gICAgICAgICAgIjAuMDAwMjM4LCAwLjAwMDIzMywgMC4wMDAyMDMsIDAuMDAwMTk4LCAwLjAwMDE5NywgMC4wMDAxOTUsIDAuMDAwMTk1IiwgXAotICAgICAgICAgICIwLjAwMDI0NywgMC4wMDAyMywgMC4wMDAyMjYsIDAuMDAwMjA2LCAwLjAwMDIwMiwgMC4wMDAyLCAwLjAwMDE5OSIsIFwKLSAgICAgICAgICAiMC4wMDAyOTEsIDAuMDAwMjgsIDAuMDAwMjYyLCAwLjAwMDIzMywgMC4wMDAyMjEsIDAuMDAwMjEsIDAuMDAwMjA2IiwgXAotICAgICAgICAgICIwLjAwMDM1LCAwLjAwMDMzMywgMC4wMDAzMDQsIDAuMDAwMjU2LCAwLjAwMDIzOSwgMC4wMDAyMjEsIDAuMDAwMjE1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyMDE1LCAwLjAwMjAxNSwgMC4wMDIwMTgsIDAuMDAyMDE4LCAwLjAwMjAxOSwgMC4wMDIwMTgsIDAuMDAyMDE4IiwgXAotICAgICAgICAgICIwLjAwMjAwNSwgMC4wMDIwMDYsIDAuMDAyMDEzLCAwLjAwMjAxNiwgMC4wMDIwMTcsIDAuMDAyMDE4LCAwLjAwMjAxNyIsIFwKLSAgICAgICAgICAiMC4wMDIwMDgsIDAuMDAyMDA4LCAwLjAwMjAxMywgMC4wMDIwMTUsIDAuMDAyMDE3LCAwLjAwMjAxNywgMC4wMDIwMTciLCBcCi0gICAgICAgICAgIjAuMDAyMDI3LCAwLjAwMjAyNCwgMC4wMDIwMTksIDAuMDAyMDE4LCAwLjAwMjAxOCwgMC4wMDIwMTgsIDAuMDAyMDE3IiwgXAotICAgICAgICAgICIwLjAwMjA1NCwgMC4wMDIwNDgsIDAuMDAyMDI5LCAwLjAwMjAyMywgMC4wMDIwMjEsIDAuMDAyMDIsIDAuMDAyMDE5IiwgXAotICAgICAgICAgICIwLjAwMjExNSwgMC4wMDIxMDIsIDAuMDAyMDU2LCAwLjAwMjAzNywgMC4wMDIwMzEsIDAuMDAyMDI1LCAwLjAwMjAyNCIsIFwKLSAgICAgICAgICAiMC4wMDIxOCwgMC4wMDIxNTksIDAuMDAyMDg2LCAwLjAwMjA1NCwgMC4wMDIwNDIsIDAuMDAyMDMyLCAwLjAwMjAzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwMDA1LCAwLjAwMDAwNiwgMC4wMDAwMDgsIDAuMDAwMDA5LCAwLjAwMDAwOSwgMC4wMDAwMDksIDAuMDAwMDEiLCBcCi0gICAgICAgICAgIjAuMDAwMDE5LCAwLjAwMDAyMSwgMC4wMDAwMjUsIDAuMDAwMDI5LCAwLjAwMDAyNywgMC4wMDAwMjgsIDAuMDAwMDI4IiwgXAotICAgICAgICAgICIwLjAwMDAzNSwgMC4wMDAwMzQsIDAuMDAwMDMyLCAwLjAwMDAzMiwgMC4wMDAwMzMsIDAuMDAwMDM2LCAwLjAwMDAzNiIsIFwKLSAgICAgICAgICAiMC4wMDAwNTgsIDAuMDAwMDU1LCAwLjAwMDA0LCAwLjAwMDAzNywgMC4wMDAwMzgsIDAuMDAwMDM4LCAwLjAwMDAzOCIsIFwKLSAgICAgICAgICAiMC4wMDAwODgsIDAuMDAwMDgyLCAwLjAwMDA1MiwgMC4wMDAwNDgsIDAuMDAwMDQ0LCAwLjAwMDA0MSwgMC4wMDAwNDEiLCBcCi0gICAgICAgICAgIjAuMDAwMTQ4LCAwLjAwMDEzNCwgMC4wMDAwODYsIDAuMDAwMDY0LCAwLjAwMDA1NiwgMC4wMDAwNDcsIDAuMDAwMDQ1IiwgXAotICAgICAgICAgICIwLjAwMDIxOCwgMC4wMDAxOTUsIDAuMDAwMTE2LCAwLjAwMDA4MiwgMC4wMDAwNjksIDAuMDAwMDU2LCAwLjAwMDA1MiIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogTk9SNFgyICoKLSAqIC0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoTk9SNFgyKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuNTk0Mzg0OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDIwMzI3OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMjAyMzAyOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMjAzMjc7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwODg2LCAwLjAwMDk0NiwgMC4wMDA5NjUsIDAuMDAwOTgzLCAwLjAwMDk5MiwgMC4wMDA5OTgsIDAuMDAwOTk4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyNzA3LCAwLjAwMjcwOCwgMC4wMDI3MDksIDAuMDAyNzA5LCAwLjAwMjcwOCwgMC4wMDI3MDksIDAuMDAyNzA5Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE5NjU3OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTk1NzUxOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTk2NTc7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwODU0LCAwLjAwMDk0LCAwLjAwMDk3MSwgMC4wMDA5NzksIDAuMDAwOTgxLCAwLjAwMTAwMiwgMC4wMDA5ODciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDE5MDksIDAuMDAxOTA5LCAwLjAwMTkwOSwgMC4wMDE5MSwgMC4wMDE5MSwgMC4wMDE5MSwgMC4wMDE5MSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQykgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxODUwMTU7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxODQzMjQ7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxODUwMTU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwODU4LCAwLjAwMDk3MywgMC4wMDA5OTcsIDAuMDAxMDExLCAwLjAwMTAxLCAwLjAwMTAxNiwgMC4wMDEwMTUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDEwNzgsIDAuMDAxMDc4LCAwLjAwMTA3OCwgMC4wMDEwNzksIDAuMDAxMDc5LCAwLjAwMTA3OSwgMC4wMDEwNzkiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEQpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTY5NDIxOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTY5NDIxOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTY5Mjg0OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDI1MywgMC4wMDAyNTMsIDAuMDAwMjUzLCAwLjAwMDI1MywgMC4wMDAyNTMsIDAuMDAwMjUzLCAwLjAwMDI1MyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDgyMSwgMC4wMDA4MjEsIDAuMDAwODIxLCAwLjAwMDgyMSwgMC4wMDA4MjEsIDAuMDAwODIxLCAwLjAwMDgyMSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjE4NjgzOwotICAgIGZ1bmN0aW9uIDogIighKCgoQStCKStDKStEKSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4MzAwOCwgMC4zNTMxODYsIDAuNTY5MjEzLCAwLjg0MDQ5LCAxLjExMTMyLCAxLjM4MDkxLCAxLjY1MDEiLCBcCi0gICAgICAgICAgIjAuMDg3OTE3LCAwLjM1ODY2LCAwLjU3NDgzMSwgMC44NDU4NzUsIDEuMTE2MDYsIDEuMzg1MzUsIDEuNjU3ODYiLCBcCi0gICAgICAgICAgIjAuMDkyMzU0LCAwLjM2MzE2MiwgMC41NzkzNzksIDAuODUwMjU1LCAxLjEyMDg0LCAxLjM5MTAyLCAxLjY2MTk5IiwgXAotICAgICAgICAgICIwLjA5NjI2OCwgMC4zNjcxMTUsIDAuNTgzNDcxLCAwLjg1NDc0NSwgMS4xMjM4OCwgMS4zOTU0MSwgMS42NjU0MSIsIFwKLSAgICAgICAgICAiMC4xMDAwNTgsIDAuMzcwNzQ0LCAwLjU4NzM0MSwgMC44NTcyNTEsIDEuMTI4MDQsIDEuMzk3ODIsIDEuNjY4MzciLCBcCi0gICAgICAgICAgIjAuMTA1MDExLCAwLjM3NjUwNCwgMC41OTMyMTQsIDAuODYyOTQ4LCAxLjEzNDA3LCAxLjQwMzY5LCAxLjY3Mzk3IiwgXAotICAgICAgICAgICIwLjEwOTA1OCwgMC4zODEzMiwgMC41OTgwMjksIDAuODY4MTM3LCAxLjEzOTM4LCAxLjQwOTc1LCAxLjY4MDY0Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE1MTI3OSwgMC43MjA5OTMsIDEuMTc2NTgsIDEuNzQ1MjcsIDIuMzE1NjgsIDIuODg5MTIsIDMuNDU3MDEiLCBcCi0gICAgICAgICAgIjAuMTUxNDM1LCAwLjcyMTQwMywgMS4xNzYwNSwgMS43NDU1NSwgMi4zMTU0NCwgMi44ODYwMiwgMy40NTQiLCBcCi0gICAgICAgICAgIjAuMTUyMDIyLCAwLjcyMTIyOCwgMS4xNzcxOCwgMS43NDUzNSwgMi4zMTU2OSwgMi44ODQwMywgMy40NTQxNCIsIFwKLSAgICAgICAgICAiMC4xNTM2NzgsIDAuNzIxMzM1LCAxLjE3NzQ0LCAxLjc0NjA2LCAyLjMxNzM3LCAyLjg4Mzc5LCAzLjQ1MzMxIiwgXAotICAgICAgICAgICIwLjE1NTk0NCwgMC43MjEzMTIsIDEuMTc2MzMsIDEuNzQ2OTQsIDIuMzE0ODksIDIuODg2OTksIDMuNDU0NTciLCBcCi0gICAgICAgICAgIjAuMTYwNjMxLCAwLjcyMjMzNywgMS4xNzYzNiwgMS43NDY2OCwgMi4zMTQ2OCwgMi44ODM3NiwgMy40NTc0MyIsIFwKLSAgICAgICAgICAiMC4xNjYwOTIsIDAuNzIzMTM5LCAxLjE3NjYyLCAxLjc0NzYzLCAyLjMxNDY3LCAyLjg4NDIsIDMuNDU0MzMiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDI2MDUyLCAwLjEwMjY5MywgMC4xNjMyMDQsIDAuMjM4NzM5LCAwLjMxNDI2MywgMC4zODk3NjUsIDAuNDY1MTciLCBcCi0gICAgICAgICAgIjAuMDM0NDAyLCAwLjExMDk1MiwgMC4xNzE0NywgMC4yNDcwNTgsIDAuMzIyNTY1LCAwLjM5Nzk2NywgMC40NzMzMjkiLCBcCi0gICAgICAgICAgIjAuMDQ1MDM5LCAwLjEyMTQ4MywgMC4xODIwNTcsIDAuMjU3NTY4LCAwLjMzMzA2MiwgMC40MDg1MjEsIDAuNDg0MDIyIiwgXAotICAgICAgICAgICIwLjA1Mzc4MiwgMC4xMzE3NzIsIDAuMTkyMjc0LCAwLjI2NzczNiwgMC4zNDMyNzksIDAuNDE4ODI4LCAwLjQ5NDE5NyIsIFwKLSAgICAgICAgICAiMC4wNjA5MzYsIDAuMTQyODMxLCAwLjIwMjgzMSwgMC4yNzgzMjEsIDAuMzUyMzA3LCAwLjQyOTQzMywgMC41MDQ3MDEiLCBcCi0gICAgICAgICAgIjAuMDY5OTM1LCAwLjE2MDIwMSwgMC4yMjA0OTQsIDAuMjk1ODc3LCAwLjM3MDY2NywgMC40NDYyNDcsIDAuNTIxNjE2IiwgXAotICAgICAgICAgICIwLjA3Njc2NSwgMC4xNzQ5MTIsIDAuMjM0OTI5LCAwLjMxMDA2OCwgMC4zODU1NTgsIDAuNDYwOTAyLCAwLjUzNjMxOSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDU1MSwgMC4yMDA0ODMsIDAuMzI0NDU5LCAwLjQ3OTU4OSwgMC42MzQ2NDcsIDAuNzg5OTg3LCAwLjk0NDkxNSIsIFwKLSAgICAgICAgICAiMC4wNDgwMTYsIDAuMjAwNDM1LCAwLjMyNDQyMSwgMC40Nzk1MjIsIDAuNjM0NjA4LCAwLjc4OTczNywgMC45NDQ3MzQiLCBcCi0gICAgICAgICAgIjAuMDU1NzU2LCAwLjIwMTM4LCAwLjMyNDQ5NSwgMC40Nzk2NSwgMC42MzQ2MzEsIDAuNzg5NzE5LCAwLjk0NTI2MiIsIFwKLSAgICAgICAgICAiMC4wNjQ4NzMsIDAuMjA1MzcsIDAuMzI1NTg0LCAwLjQ3OTQ2MywgMC42MzQ2MjMsIDAuNzg5ODc1LCAwLjk0NDg1NyIsIFwKLSAgICAgICAgICAiMC4wNzQzMDIsIDAuMjEwOTI1LCAwLjMyODg2OCwgMC40ODA1MSwgMC42MzQ2NzksIDAuNzg5OTc3LCAwLjk0NDc1IiwgXAotICAgICAgICAgICIwLjA4ODM0MSwgMC4yMjE3MzMsIDAuMzM2NDExLCAwLjQ4NDc2LCAwLjYzNjQ1NywgMC43OTAyOTksIDAuOTQ0OTY0IiwgXAotICAgICAgICAgICIwLjA5OTYzNSwgMC4yMzM3MzQsIDAuMzQ1MzU2LCAwLjQ5MDkwNSwgMC42NDA2OTgsIDAuNzkyMjU2LCAwLjk0NTYzNiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODEwMzcsIDAuMzUxNDU3LCAwLjU2NzgyNCwgMC44MzgyNDUsIDEuMTA5NTYsIDEuMzc5MTcsIDEuNjQ5MTYiLCBcCi0gICAgICAgICAgIjAuMDg2NDY0LCAwLjM1NzUxOCwgMC41NzM5NTgsIDAuODQ0NDgsIDEuMTE0NDksIDEuMzg1LCAxLjY1NTk5IiwgXAotICAgICAgICAgICIwLjA5MjA4NCwgMC4zNjI5NTcsIDAuNTc5NjI5LCAwLjg1MDE4MywgMS4xMjAyOCwgMS4zOTA5OSwgMS42NjAzOSIsIFwKLSAgICAgICAgICAiMC4wOTc1NTksIDAuMzY4NzEyLCAwLjU4NDc5NSwgMC44NTQ5MDQsIDEuMTI2MzgsIDEuMzk2OTIsIDEuNjY3NDIiLCBcCi0gICAgICAgICAgIjAuMTAzMTksIDAuMzc0MDA1LCAwLjU5MDI1MiwgMC44NjEyNDQsIDEuMTMyMiwgMS40MDIyNSwgMS42NzEyOSIsIFwKLSAgICAgICAgICAiMC4xMTExOTMsIDAuMzgyNjU0LCAwLjU5OTQwOCwgMC44Njk1MDUsIDEuMTQwNiwgMS40MTAzMywgMS42ODA0MiIsIFwKLSAgICAgICAgICAiMC4xMTc1NjYsIDAuMzkwNjMsIDAuNjA2NzgxLCAwLjg3NzYxOSwgMS4xNDc4MywgMS40MTg0MSwgMS42ODgwOCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNTEyNjEsIDAuNzIwODcxLCAxLjE3NjEyLCAxLjc0ODM3LCAyLjMxNTE4LCAyLjg4NDA2LCAzLjQ1OTA2IiwgXAotICAgICAgICAgICIwLjE1MTQwOCwgMC43MjA1NDksIDEuMTc2MTUsIDEuNzQ1OTksIDIuMzE4NzYsIDIuODg1MDksIDMuNDUzNTkiLCBcCi0gICAgICAgICAgIjAuMTUyNTIxLCAwLjcyMTMxNiwgMS4xNzYwMiwgMS43NDU0MiwgMi4zMTUwNywgMi44ODQwOSwgMy40NTc0MyIsIFwKLSAgICAgICAgICAiMC4xNTQ5MTQsIDAuNzIwNTc4LCAxLjE3NzU0LCAxLjc0Njc3LCAyLjMxNTAxLCAyLjg4NDQsIDMuNDU1MTUiLCBcCi0gICAgICAgICAgIjAuMTU4NCwgMC43MjE1OTMsIDEuMTc3MTUsIDEuNzQ2MTYsIDIuMzE1OTIsIDIuODgzODksIDMuNDU1MzQiLCBcCi0gICAgICAgICAgIjAuMTY1NTM3LCAwLjcyMjIwMywgMS4xNzYyMSwgMS43NDUyNSwgMi4zMTQ3NCwgMi44ODQ0NCwgMy40NTc0MyIsIFwKLSAgICAgICAgICAiMC4xNzI3ODQsIDAuNzI0MjQ2LCAxLjE3NzIxLCAxLjc0NTc0LCAyLjMxNzk5LCAyLjg4Mzk2LCAzLjQ1NzkzIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyNTI2NywgMC4xMDEyNjYsIDAuMTYxNjc5LCAwLjIzNzE2NywgMC4zMTI2MiwgMC4zODgyMjMsIDAuNDYzNDkiLCBcCi0gICAgICAgICAgIjAuMDMzNTk1LCAwLjEwOTYzNywgMC4xNzAwNjgsIDAuMjQ1NTYzLCAwLjMyMTA5MywgMC4zOTY1MDIsIDAuNDcxODg3IiwgXAotICAgICAgICAgICIwLjA0NDA0MSwgMC4xMjAwOTYsIDAuMTgwNjY5LCAwLjI1NjIxMiwgMC4zMzE2MzcsIDAuNDA3MDg2LCAwLjQ4MjQ4NyIsIFwKLSAgICAgICAgICAiMC4wNTIzOTIsIDAuMTMwNjg3LCAwLjE5MTA0LCAwLjI2NjU0NiwgMC4zNDIxMTEsIDAuNDE3NTM2LCAwLjQ5MzAzIiwgXAotICAgICAgICAgICIwLjA1OTIzNCwgMC4xNDA5NTUsIDAuMjAxMTI2LCAwLjI3NjU1OSwgMC4zNTA1MjIsIDAuNDI3NDgsIDAuNTAyODc5IiwgXAotICAgICAgICAgICIwLjA2NzkwMiwgMC4xNTg1MDgsIDAuMjE4NzI3LCAwLjI5NCwgMC4zNjkzMzYsIDAuNDQ0ODIsIDAuNTIwMjk3IiwgXAotICAgICAgICAgICIwLjA3NDIzNywgMC4xNzQyMDYsIDAuMjMyODY3LCAwLjMwNzk4OCwgMC4zODMzNTksIDAuNDU4Nzg4LCAwLjUzNDMwOCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDMzNTIsIDAuMTk4Mjg2LCAwLjMyMjM4NywgMC40Nzc2NDQsIDAuNjMyNjcyLCAwLjc4ODMzOSwgMC45NDMxMjgiLCBcCi0gICAgICAgICAgIjAuMDQ1OTI2LCAwLjE5ODM2NiwgMC4zMjI1MTUsIDAuNDc3NTM0LCAwLjYzMjkzLCAwLjc4Nzk2LCAwLjk0MzA4OCIsIFwKLSAgICAgICAgICAiMC4wNTM3NzYsIDAuMTk5MzQyLCAwLjMyMjQ2MSwgMC40Nzc3NTcsIDAuNjMyNjk3LCAwLjc4Nzg0NSwgMC45NDMwOTkiLCBcCi0gICAgICAgICAgIjAuMDYzMDM5LCAwLjIwMzI3NSwgMC4zMjM2LCAwLjQ3NzQ3MiwgMC42MzI3MzksIDAuNzg3ODQ1LCAwLjk0Mjk5OCIsIFwKLSAgICAgICAgICAiMC4wNzIyOTgsIDAuMjA5NDg2LCAwLjMyNjk3LCAwLjQ3ODU1NywgMC42MzI3ODcsIDAuNzg3OTgzLCAwLjk0MzAzOCIsIFwKLSAgICAgICAgICAiMC4wODU5MjcsIDAuMjIwMTQyLCAwLjMzNDYzLCAwLjQ4Mjg4NCwgMC42MzQ1ODksIDAuNzg4MzE0LCAwLjk0MyIsIFwKLSAgICAgICAgICAiMC4wOTY3MjMsIDAuMjMwODMxLCAwLjM0Mzk2MSwgMC40ODk0MTYsIDAuNjM4NzM2LCAwLjc5MDQ1NiwgMC45NDM3MzQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc2NTY5LCAwLjM0NzE2OSwgMC41NjM1MTgsIDAuODM0NDgyLCAxLjEwNDE1LCAxLjM3NDU2LCAxLjY0NTg2IiwgXAotICAgICAgICAgICIwLjA4MjQ0MiwgMC4zNTM0ODMsIDAuNTY5NzQ2LCAwLjg0MDYyOCwgMS4xMDk3OCwgMS4zODIwMywgMS42NTE5NSIsIFwKLSAgICAgICAgICAiMC4wODk3MjgsIDAuMzYwODI2LCAwLjU3NzMyOCwgMC44NDc5MDksIDEuMTE4MjMsIDEuMzg5MDEsIDEuNjU4NjciLCBcCi0gICAgICAgICAgIjAuMDk3Mjc1LCAwLjM2ODAyNSwgMC41ODQ0NTcsIDAuODU0NzE1LCAxLjEyNTY4LCAxLjM5NTQyLCAxLjY2NjI5IiwgXAotICAgICAgICAgICIwLjEwNTEwOCwgMC4zNzU2MjMsIDAuNTkxODUzLCAwLjg2MjE4LCAxLjEzMzU3LCAxLjQwMjY1LCAxLjY3NDc3IiwgXAotICAgICAgICAgICIwLjExNjM5NSwgMC4zODc5NzEsIDAuNjA0MjgxLCAwLjg3NDg3OCwgMS4xNDU2MiwgMS40MTUxOSwgMS42ODY5MSIsIFwKLSAgICAgICAgICAiMC4xMjUyMzYsIDAuMzk4NjU3LCAwLjYxNDkyNywgMC44ODU1ODcsIDEuMTU2NDIsIDEuNDI1MzMsIDEuNjk2MDkiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTUxMjgzLCAwLjcyMDU0MiwgMS4xNzYwMiwgMS43NDU5MywgMi4zMTg2OSwgMi44ODM5NywgMy40NTQ2MiIsIFwKLSAgICAgICAgICAiMC4xNTEzMjUsIDAuNzIwNjI2LCAxLjE3NjAxLCAxLjc0NTY1LCAyLjMxNjcyLCAyLjg4NTYzLCAzLjQ2MDczIiwgXAotICAgICAgICAgICIwLjE1MzI0MSwgMC43MjA1NzcsIDEuMTc1OTksIDEuNzQ1MzcsIDIuMzE0NzYsIDIuODg0NTcsIDMuNDU5NSIsIFwKLSAgICAgICAgICAiMC4xNTcwMzQsIDAuNzIwODgxLCAxLjE3NzUyLCAxLjc0NzM3LCAyLjMxNDczLCAyLjg4NDU0LCAzLjQ1MzM2IiwgXAotICAgICAgICAgICIwLjE2MjEzNywgMC43MjExMjksIDEuMTc2NTQsIDEuNzQ2MSwgMi4zMTQ5MywgMi44ODcxMSwgMy40NTQxMiIsIFwKLSAgICAgICAgICAiMC4xNzE1MTIsIDAuNzIyNDc1LCAxLjE3NzMxLCAxLjc0Nzg5LCAyLjMxNTcxLCAyLjg4NzU0LCAzLjQ1Mzk1IiwgXAotICAgICAgICAgICIwLjE4MDM4OCwgMC43MjQ4MDMsIDEuMTc3MTcsIDEuNzQ3OTcsIDIuMzE0NTUsIDIuODg2NTYsIDMuNDU3NTgiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDIzOTAxLCAwLjA5OTUzNywgMC4xNTk4ODgsIDAuMjM1MzA1LCAwLjMxMDgzLCAwLjM4NjI4NCwgMC40NjE2NDgiLCBcCi0gICAgICAgICAgIjAuMDMyMzU0LCAwLjEwNzkzOSwgMC4xNjgyOTcsIDAuMjQzODA2LCAwLjMxOTMwMSwgMC4zOTQ2MDQsIDAuNDY5OTg2IiwgXAotICAgICAgICAgICIwLjA0MjYyLCAwLjExODU4OSwgMC4xNzg5NjcsIDAuMjU0NDUxLCAwLjMyOTkwMywgMC40MDUzMywgMC40ODA4MDYiLCBcCi0gICAgICAgICAgIjAuMDUwNjAxLCAwLjEyOTA1MSwgMC4xODk1NDMsIDAuMjY0ODU1LCAwLjM0MDQxMywgMC40MTU3OSwgMC40OTEyNjEiLCBcCi0gICAgICAgICAgIjAuMDU2ODQ3LCAwLjEzOTgxLCAwLjE5OTk4OSwgMC4yNzQ4NDcsIDAuMzQ4NzcsIDAuNDI1NzQ1LCAwLjUwMTExNCIsIFwKLSAgICAgICAgICAiMC4wNjUyMTIsIDAuMTU3MzgsIDAuMjE3MzIzLCAwLjI5MjcwNywgMC4zNjcwNTMsIDAuNDQyNDY1LCAwLjUxNzk1OCIsIFwKLSAgICAgICAgICAiMC4wNzA5MDMsIDAuMTcyNDg4LCAwLjIzMTE2LCAwLjMwNjI5NCwgMC4zODE2MDgsIDAuNDU3ODc2LCAwLjUzMzQ4OSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDEwNDQsIDAuMTk2MzA2LCAwLjMyMDMzLCAwLjQ3NTYwMywgMC42MzA4MTMsIDAuNzg1ODE5LCAwLjk0MTIxNCIsIFwKLSAgICAgICAgICAiMC4wNDM4MTUsIDAuMTk2MTgsIDAuMzIwMzg4LCAwLjQ3NTU5LCAwLjYzMDgyNCwgMC43ODU2OTcsIDAuOTQwNzc4IiwgXAotICAgICAgICAgICIwLjA1MTczOCwgMC4xOTcxOTgsIDAuMzIwMzYxLCAwLjQ3NTQ3NiwgMC42MzA2OTIsIDAuNzg1ODgzLCAwLjk0MDgwNiIsIFwKLSAgICAgICAgICAiMC4wNjEwMzIsIDAuMjAxMjY4LCAwLjMyMTQ2MSwgMC40NzU0NDEsIDAuNjMwNzEyLCAwLjc4NTc5NSwgMC45NDA5OTYiLCBcCi0gICAgICAgICAgIjAuMDcwNDA4LCAwLjIwNzAwOSwgMC4zMjQ4NDcsIDAuNDc2NTMsIDAuNjMwNzc4LCAwLjc4NTY4NCwgMC45NDA4NDMiLCBcCi0gICAgICAgICAgIjAuMDgzNzg5LCAwLjIxODAyNiwgMC4zMzI0NSwgMC40ODA5NzIsIDAuNjMyNTksIDAuNzg2MDc2LCAwLjk0MDg2MSIsIFwKLSAgICAgICAgICAiMC4wOTQ4MjgsIDAuMjI5MDI3LCAwLjM0MjAwMywgMC40ODc0NDksIDAuNjM2NjgsIDAuNzg4MDc4LCAwLjk0MTQ0NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJEIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjkxMDEsIDAuMzM5OTM4LCAwLjU1NjM0NCwgMC44MjY1NzksIDEuMDk2ODMsIDEuMzY3NTksIDEuNjM4NjgiLCBcCi0gICAgICAgICAgIjAuMDc1NTcsIDAuMzQ2NDA4LCAwLjU2Mjc3MiwgMC44MzI5NSwgMS4xMDQyNiwgMS4zNzM5NiwgMS42NDQ2OCIsIFwKLSAgICAgICAgICAiMC4wODQ0NDcsIDAuMzU0ODk2LCAwLjU3MTQwNSwgMC44NDE0MDgsIDEuMTExNjYsIDEuMzgzMzUsIDEuNjUzMDIiLCBcCi0gICAgICAgICAgIjAuMDkzNTE3LCAwLjM2MzQ2NCwgMC41Nzk2MjYsIDAuODUwMjcyLCAxLjEyMTIyLCAxLjM5MDI5LCAxLjY2MjcxIiwgXAotICAgICAgICAgICIwLjEwMzA0OCwgMC4zNzE5NDYsIDAuNTg5MDY3LCAwLjg1OTQ5MywgMS4xMjkzOSwgMS4zOTkzMiwgMS42NzA1MyIsIFwKLSAgICAgICAgICAiMC4xMTczNSwgMC4zODY1MTYsIDAuNjAyNDA3LCAwLjg3MjQ4LCAxLjE0MjYxLCAxLjQxMjgzLCAxLjY4MzA3IiwgXAotICAgICAgICAgICIwLjEyNzU4NSwgMC4zOTg1ODcsIDAuNjE0MzQ1LCAwLjg4NDEwMywgMS4xNTQ2MiwgMS40MjQ4NCwgMS42OTQ5NyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNTEyOTMsIDAuNzIwNTk1LCAxLjE3NjA3LCAxLjc0NjA4LCAyLjMxNDY4LCAyLjg4Mzg0LCAzLjQ1NTA0IiwgXAotICAgICAgICAgICIwLjE1MDcwMywgMC43MjE1MDEsIDEuMTc3NzEsIDEuNzQ3MzYsIDIuMzE1MTIsIDIuODg4OTIsIDMuNDU0NzMiLCBcCi0gICAgICAgICAgIjAuMTUzNjI1LCAwLjcyMTE0LCAxLjE3NjA1LCAxLjc0NzQyLCAyLjMxNjkzLCAyLjg4NDM3LCAzLjQ1OTM2IiwgXAotICAgICAgICAgICIwLjE1OTAwNiwgMC43MjEyMzUsIDEuMTc3MDMsIDEuNzQ1MiwgMi4zMTQ4NywgMi44ODczNywgMy40NTUwOSIsIFwKLSAgICAgICAgICAiMC4xNjU0NSwgMC43MjA5NjYsIDEuMTc1OTYsIDEuNzQ1MjcsIDIuMzE4MDcsIDIuODg3NDksIDMuNDU0NzMiLCBcCi0gICAgICAgICAgIjAuMTc3MTM0LCAwLjcyMjE5MSwgMS4xNzYzNCwgMS43NDY4NiwgMi4zMTY3MSwgMi44ODY4NiwgMy40NTY5IiwgXAotICAgICAgICAgICIwLjE4ODMyNSwgMC43MjU2OTUsIDEuMTc1OTgsIDEuNzQ2OTksIDIuMzE0ODgsIDIuODg0MjUsIDMuNDU3OTgiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDIyNjg1LCAwLjEwMDM0OSwgMC4xNjI0MjMsIDAuMjQwMDU5LCAwLjMxNzYyNywgMC4zOTUyNzIsIDAuNDcyOTYxIiwgXAotICAgICAgICAgICIwLjAzMTI0NCwgMC4xMDg4NjksIDAuMTcwOTgzLCAwLjI0ODU2NCwgMC4zMjYxNjcsIDAuNDAzODcyLCAwLjQ4MTM3OCIsIFwKLSAgICAgICAgICAiMC4wNDExNywgMC4xMTk1MzIsIDAuMTgxNjU5LCAwLjI1OTM1MiwgMC4zMzY5MDEsIDAuNDE0NjA2LCAwLjQ5MjE0OSIsIFwKLSAgICAgICAgICAiMC4wNDg3OTksIDAuMTMwMDA2LCAwLjE5MjA1NywgMC4yNjk2NzUsIDAuMzQ3MDQ1LCAwLjQyNDU1LCAwLjUwMjI3OSIsIFwKLSAgICAgICAgICAiMC4wNTQ2NTYsIDAuMTQwNzEyLCAwLjIwMjc3OSwgMC4yODA0MTgsIDAuMzU3OTc4LCAwLjQzNTc2NywgMC41MTMyNjIiLCBcCi0gICAgICAgICAgIjAuMDYyNDYsIDAuMTU3NTI5LCAwLjIxOTk1OCwgMC4yOTc1MTQsIDAuMzc0OTgyLCAwLjQ1MTQ1NiwgMC41Mjk1NDMiLCBcCi0gICAgICAgICAgIjAuMDY3OTc4LCAwLjE3MjY0LCAwLjIzNDM2MSwgMC4zMTE2MjEsIDAuMzg5NjExLCAwLjQ2NzIxMSwgMC41NDQ5OSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzk5NjcsIDAuMTk5OTQzLCAwLjMyODY0NywgMC40ODc4NzgsIDAuNjQ4MDQyLCAwLjgwOTc2LCAwLjk2ODI3OCIsIFwKLSAgICAgICAgICAiMC4wNDI5MDksIDAuMjAwMzk2LCAwLjMyODYwMywgMC40ODkwNzksIDAuNjQ4NTksIDAuODA4MjUzLCAwLjk2ODc4MiIsIFwKLSAgICAgICAgICAiMC4wNTExNTYsIDAuMjAwOTIxLCAwLjMyODA3MSwgMC40ODgxMTQsIDAuNjQ4MjIyLCAwLjgwODIyMSwgMC45NjgzOTEiLCBcCi0gICAgICAgICAgIjAuMDYwNTc0LCAwLjIwNTIwMSwgMC4zMjk3NjEsIDAuNDg4MzI0LCAwLjY0ODE2MywgMC44MDgwNiwgMC45NjgyNjgiLCBcCi0gICAgICAgICAgIjAuMDcwMTEyLCAwLjIxMDc4OCwgMC4zMzIyMiwgMC40ODg5NTQsIDAuNjQ5NDYyLCAwLjgwODIzMiwgMC45Njg5NTUiLCBcCi0gICAgICAgICAgIjAuMDgzMzY1LCAwLjIyMjMwNCwgMC4zMzk3NTQsIDAuNDk0MTg4LCAwLjY1MDk2MSwgMC44MDg1MTQsIDAuOTY5OTMyIiwgXAotICAgICAgICAgICIwLjA5NDAyOSwgMC4yMzM1ODEsIDAuMzQ5NDI1LCAwLjQ5OTUwMSwgMC42NTM3MjgsIDAuODA5OTQ5LCAwLjk2ODY2NyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNzcwNiwgMC4wMDc3MjksIDAuMDA3NzMxLCAwLjAwNzczMSwgMC4wMDc3MzIsIDAuMDA3NzMzLCAwLjAwNzczMiIsIFwKLSAgICAgICAgICAiMC4wMDc2MzIsIDAuMDA3NzA1LCAwLjAwNzcxNSwgMC4wMDc3MiwgMC4wMDc3MjYsIDAuMDA3NzIyLCAwLjAwNzcyNyIsIFwKLSAgICAgICAgICAiMC4wMDc1OTIsIDAuMDA3NjgsIDAuMDA3Njk5LCAwLjAwNzcwOSwgMC4wMDc3MTUsIDAuMDA3NzE4LCAwLjAwNzcyMiIsIFwKLSAgICAgICAgICAiMC4wMDc1ODMsIDAuMDA3NjY1LCAwLjAwNzY4NiwgMC4wMDc2OTksIDAuMDA3NzA5LCAwLjAwNzcxNCwgMC4wMDc3MTUiLCBcCi0gICAgICAgICAgIjAuMDA3NTkzLCAwLjAwNzY1OCwgMC4wMDc2OCwgMC4wMDc2OTMsIDAuMDA3NzA0LCAwLjAwNzcxMSwgMC4wMDc3MTEiLCBcCi0gICAgICAgICAgIjAuMDA3NjcyLCAwLjAwNzY3MSwgMC4wMDc2ODUsIDAuMDA3Njk2LCAwLjAwNzcwMywgMC4wMDc3MDgsIDAuMDA3NzEyIiwgXAotICAgICAgICAgICIwLjAwNzc4LCAwLjAwNzcwNSwgMC4wMDc3MDksIDAuMDA3NzEsIDAuMDA3NzE2LCAwLjAwNzcxNywgMC4wMDc3MTciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDIwNSwgMC4wMDIwNTEsIDAuMDAyMDUxLCAwLjAwMjA1MSwgMC4wMDIwNTEsIDAuMDAyMDUxLCAwLjAwMjA1MSIsIFwKLSAgICAgICAgICAiMC4wMDE5ODksIDAuMDAxOTg0LCAwLjAwMTk4NSwgMC4wMDE5ODQsIDAuMDAxOTgzLCAwLjAwMTk3NSwgMC4wMDE5NzUiLCBcCi0gICAgICAgICAgIjAuMDAyMDM5LCAwLjAwMTk4OCwgMC4wMDE5ODEsIDAuMDAxOTc4LCAwLjAwMTk3NiwgMC4wMDE5NzUsIDAuMDAxOTc0IiwgXAotICAgICAgICAgICIwLjAwMjExMywgMC4wMDIwMzcsIDAuMDAyMDEyLCAwLjAwMjAwMSwgMC4wMDE5OTIsIDAuMDAxOTg2LCAwLjAwMTk4MyIsIFwKLSAgICAgICAgICAiMC4wMDIyMzQsIDAuMDAyMDczLCAwLjAwMjA0OSwgMC4wMDIwMjUsIDAuMDAyMDAyLCAwLjAwMjAwMiwgMC4wMDE5OTciLCBcCi0gICAgICAgICAgIjAuMDAyNTM4LCAwLjAwMjIzNywgMC4wMDIxNTEsIDAuMDAyMDk5LCAwLjAwMjA1MywgMC4wMDIwMzgsIDAuMDAyMDI3IiwgXAotICAgICAgICAgICIwLjAwMjg0NiwgMC4wMDIzNDQsIDAuMDAyMjE4LCAwLjAwMjE0MiwgMC4wMDIxMDMsIDAuMDAyMDc4LCAwLjAwMjA2MSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjg0OCwgMC4wMDY4NjksIDAuMDA2ODcsIDAuMDA2ODc0LCAwLjAwNjg3NCwgMC4wMDY4NzQsIDAuMDA2ODc1IiwgXAotICAgICAgICAgICIwLjAwNjc3NCwgMC4wMDY4NDcsIDAuMDA2ODU3LCAwLjAwNjg2MywgMC4wMDY4NjYsIDAuMDA2ODcsIDAuMDA2ODY5IiwgXAotICAgICAgICAgICIwLjAwNjczNiwgMC4wMDY4MjMsIDAuMDA2ODQsIDAuMDA2ODUxLCAwLjAwNjg1NywgMC4wMDY4NTksIDAuMDA2ODYyIiwgXAotICAgICAgICAgICIwLjAwNjczMiwgMC4wMDY4MDgsIDAuMDA2ODI3LCAwLjAwNjg0MiwgMC4wMDY4NDgsIDAuMDA2ODU0LCAwLjAwNjg1OSIsIFwKLSAgICAgICAgICAiMC4wMDY3NTYsIDAuMDA2ODAzLCAwLjAwNjgyMiwgMC4wMDY4MzgsIDAuMDA2ODQ3LCAwLjAwNjg1MiwgMC4wMDY4NTQiLCBcCi0gICAgICAgICAgIjAuMDA2ODQ3LCAwLjAwNjgyMSwgMC4wMDY4MzMsIDAuMDA2ODQzLCAwLjAwNjg0OSwgMC4wMDY4NTMsIDAuMDA2ODU2IiwgXAotICAgICAgICAgICIwLjAwNjk3MSwgMC4wMDY4NTksIDAuMDA2ODUzLCAwLjAwNjg1NywgMC4wMDY4NiwgMC4wMDY4NjEsIDAuMDA2ODY0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxNDgzLCAwLjAwMTQ4NSwgMC4wMDE0ODUsIDAuMDAxNDg1LCAwLjAwMTQ4NCwgMC4wMDE0ODUsIDAuMDAxNDg0IiwgXAotICAgICAgICAgICIwLjAwMTQzNiwgMC4wMDE0NDQsIDAuMDAxNDQ2LCAwLjAwMTQ0NywgMC4wMDE0NDgsIDAuMDAxNDQ5LCAwLjAwMTQ0OSIsIFwKLSAgICAgICAgICAiMC4wMDE0NzYsIDAuMDAxNDUxLCAwLjAwMTQ1NCwgMC4wMDE0NTEsIDAuMDAxNDQ5LCAwLjAwMTQ0OCwgMC4wMDE0NDciLCBcCi0gICAgICAgICAgIjAuMDAxNTQzLCAwLjAwMTQ4MSwgMC4wMDE0NjcsIDAuMDAxNDczLCAwLjAwMTQ2NCwgMC4wMDE0NiwgMC4wMDE0NTciLCBcCi0gICAgICAgICAgIjAuMDAxNjU4LCAwLjAwMTU3NiwgMC4wMDE1MywgMC4wMDE1MDYsIDAuMDAxNDg0LCAwLjAwMTQ4MiwgMC4wMDE0NzYiLCBcCi0gICAgICAgICAgIjAuMDAxOTE0LCAwLjAwMTY0MiwgMC4wMDE1NzcsIDAuMDAxNTM3LCAwLjAwMTUxMywgMC4wMDE1LCAwLjAwMTQ5MiIsIFwKLSAgICAgICAgICAiMC4wMDIxOTYsIDAuMDAxNzEzLCAwLjAwMTczNSwgMC4wMDE2NTIsIDAuMDAxNjA3LCAwLjAwMTU3OSwgMC4wMDE1NiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNTk2NSwgMC4wMDU5ODUsIDAuMDA1OTg5LCAwLjAwNTk5LCAwLjAwNTk5LCAwLjAwNTk5LCAwLjAwNTk5IiwgXAotICAgICAgICAgICIwLjAwNTg5MSwgMC4wMDU5NjMsIDAuMDA1OTcxLCAwLjAwNTk3OSwgMC4wMDU5ODEsIDAuMDA1OTg2LCAwLjAwNTk4NSIsIFwKLSAgICAgICAgICAiMC4wMDU4NjQsIDAuMDA1OTQyLCAwLjAwNTk1OSwgMC4wMDU5NzIsIDAuMDA1OTc0LCAwLjAwNTk3OCwgMC4wMDU5OCIsIFwKLSAgICAgICAgICAiMC4wMDU4ODIsIDAuMDA1OTMzLCAwLjAwNTk1MiwgMC4wMDU5NjMsIDAuMDA1OTY5LCAwLjAwNTk3MywgMC4wMDU5NzYiLCBcCi0gICAgICAgICAgIjAuMDA1OTM0LCAwLjAwNTkzNywgMC4wMDU5NTIsIDAuMDA1OTYyLCAwLjAwNTk2OCwgMC4wMDU5NjcsIDAuMDA1OTc1IiwgXAotICAgICAgICAgICIwLjAwNjA3NCwgMC4wMDU5NzYsIDAuMDA1OTcyLCAwLjAwNTk3NiwgMC4wMDU5NzgsIDAuMDA1OTc5LCAwLjAwNTk4IiwgXAotICAgICAgICAgICIwLjAwNjI0OCwgMC4wMDYwMjgsIDAuMDA2MDA1LCAwLjAwNTk5NiwgMC4wMDU5OTIsIDAuMDA1OTg2LCAwLjAwNTk5MiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDgxNCwgMC4wMDA4MjUsIDAuMDAwODI2LCAwLjAwMDgyNywgMC4wMDA4MjcsIDAuMDAwODI3LCAwLjAwMDgyNyIsIFwKLSAgICAgICAgICAiMC4wMDA4MTEsIDAuMDAwODQ3LCAwLjAwMDg1MywgMC4wMDA4NTUsIDAuMDAwODU2LCAwLjAwMDg1NywgMC4wMDA4NTkiLCBcCi0gICAgICAgICAgIjAuMDAwODQsIDAuMDAwODY5LCAwLjAwMDg2OCwgMC4wMDA4NjksIDAuMDAwODY4LCAwLjAwMDg2OCwgMC4wMDA4NjgiLCBcCi0gICAgICAgICAgIjAuMDAwOTMzLCAwLjAwMDg5MiwgMC4wMDA4OTgsIDAuMDAwODkzLCAwLjAwMDg4NiwgMC4wMDA4ODIsIDAuMDAwODgiLCBcCi0gICAgICAgICAgIjAuMDAxMDMyLCAwLjAwMDk0MSwgMC4wMDA5MTcsIDAuMDAwOTI2LCAwLjAwMDkxLCAwLjAwMDkwNiwgMC4wMDA5IiwgXAotICAgICAgICAgICIwLjAwMTI3OSwgMC4wMDEwMjUsIDAuMDAxMDMyLCAwLjAwMDk5LCAwLjAwMDk2OCwgMC4wMDA5NTIsIDAuMDAwOTQiLCBcCi0gICAgICAgICAgIjAuMDAxNTU4LCAwLjAwMTExMiwgMC4wMDExNSwgMC4wMDEwNzMsIDAuMDAxMDMxLCAwLjAwMTAxLCAwLjAwMDk5MyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkQiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNTA0OCwgMC4wMDUwODIsIDAuMDA1MDg1LCAwLjAwNTA4NywgMC4wMDUwODgsIDAuMDA1MDg3LCAwLjAwNTA4OCIsIFwKLSAgICAgICAgICAiMC4wMDQ5NzUsIDAuMDA1MDU0LCAwLjAwNTA2NywgMC4wMDUwNzIsIDAuMDA1MDc4LCAwLjAwNTA4MywgMC4wMDUwODEiLCBcCi0gICAgICAgICAgIjAuMDA1MDA1LCAwLjAwNTA0MiwgMC4wMDUwNTcsIDAuMDA1MDY5LCAwLjAwNTA3MSwgMC4wMDUwNzQsIDAuMDA1MDc5IiwgXAotICAgICAgICAgICIwLjAwNTEwOCwgMC4wMDUwNTksIDAuMDA1MDY2LCAwLjAwNTA2NywgMC4wMDUwNzYsIDAuMDA1MDc2LCAwLjAwNTA3OCIsIFwKLSAgICAgICAgICAiMC4wMDUyMTksIDAuMDA1MDgzLCAwLjAwNTA3OCwgMC4wMDUwNzcsIDAuMDA1MDc5LCAwLjAwNTA3OSwgMC4wMDUwOCIsIFwKLSAgICAgICAgICAiMC4wMDU0ODcsIDAuMDA1MTc0LCAwLjAwNTEzNiwgMC4wMDUxMTcsIDAuMDA1MTA5LCAwLjAwNTEwMiwgMC4wMDUxIiwgXAotICAgICAgICAgICIwLjAwNTc5NiwgMC4wMDUzMDYsIDAuMDA1MjE5LCAwLjAwNTE3NCwgMC4wMDUxNTIsIDAuMDA1MTQsIDAuMDA1MTMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDAwNTEsIDAuMDAwMDg2LCAwLjAwMDA5LCAwLjAwMDA5MSwgMC4wMDAwOTIsIDAuMDAwMDkzLCAwLjAwMDA5MyIsIFwKLSAgICAgICAgICAiMC4wMDAwNjIsIDAuMDAwMTQsIDAuMDAwMTUsIDAuMDAwMTU1LCAwLjAwMDE1OCwgMC4wMDAxNiwgMC4wMDAxNjEiLCBcCi0gICAgICAgICAgIjAuMDAwMTE0LCAwLjAwMDE2MSwgMC4wMDAxNjcsIDAuMDAwMTczLCAwLjAwMDE3NiwgMC4wMDAxNzcsIDAuMDAwMTc4IiwgXAotICAgICAgICAgICIwLjAwMDE3MSwgMC4wMDAyMTUsIDAuMDAwMjA1LCAwLjAwMDE5NywgMC4wMDAxOTMsIDAuMDAwMTkyLCAwLjAwMDE5MSIsIFwKLSAgICAgICAgICAiMC4wMDAzNDMsIDAuMDAwMjMzLCAwLjAwMDIwNSwgMC4wMDAyMDEsIDAuMDAwMTk5LCAwLjAwMDE5NywgMC4wMDAxOTYiLCBcCi0gICAgICAgICAgIjAuMDAwNTQyLCAwLjAwMDM2NSwgMC4wMDAzMjksIDAuMDAwMjkzLCAwLjAwMDI3MiwgMC4wMDAyNDcsIDAuMDAwMjM4IiwgXAotICAgICAgICAgICIwLjAwMDgxLCAwLjAwMDQ4NCwgMC4wMDAzOTEsIDAuMDAwMzMzLCAwLjAwMDM1MSwgMC4wMDAzMjQsIDAuMDAwMzA1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBOT1I0WDYgKgotICogLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChOT1I0WDYpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMS43NzMzNTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDA0NTY0MDM7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDA0NTMwNjI7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDA0NTY0MDM7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyNTU0LCAwLjAwMjczOCwgMC4wMDI4NDUsIDAuMDAyODUxLCAwLjAwMjg3NSwgMC4wMDI5NTEsIDAuMDAyOTg4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDEwNDI1LCAwLjAxMDQyOSwgMC4wMTA0MywgMC4wMTA0MywgMC4wMTA0MzEsIDAuMDEwNDMxLCAwLjAxMDQzIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDQ0ODcxNDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDQ0NTkwNzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDQ0ODcxNDsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDI0NDYsIDAuMDAyNzA4LCAwLjAwMjgzNCwgMC4wMDI4OTIsIDAuMDAyOTE5LCAwLjAwMjkwNiwgMC4wMDI5MjgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDY5NzMsIDAuMDA2OTc1LCAwLjAwNjk3NiwgMC4wMDY5NzYsIDAuMDA2OTc3LCAwLjAwNjk3NywgMC4wMDY5NzgiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEMpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwNDU3NjcxOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwNDU1Mjg3OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwNDU3NjcxOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjQ3LCAwLjAwMjgzMywgMC4wMDI5MjEsIDAuMDAyOTY2LCAwLjAwMjk4OCwgMC4wMDI5NjYsIDAuMDAyOTY2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzMjg4LCAwLjAwMzI4OCwgMC4wMDMyOSwgMC4wMDMyOSwgMC4wMDMyOSwgMC4wMDMyOTEsIDAuMDAzMjkxIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihEKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDQ1NzM1MTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDQ1NzM1MTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDQ1NzE5MTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA2NDEsIDAuMDAwNjQxLCAwLjAwMDY0MiwgMC4wMDA2NDEsIDAuMDAwNjQxLCAwLjAwMDY0MSwgMC4wMDA2NDEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDI0NDcsIDAuMDAyNDQ4LCAwLjAwMjQ0OSwgMC4wMDI0NDgsIDAuMDAyNDQ4LCAwLjAwMjQ0OCwgMC4wMDI0NDgiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC41Mzk1NDsKLSAgICBmdW5jdGlvbiA6ICIoISgoKEErQikrQykrRCkpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1MjU2MSwgMC4xODgwMTYsIDAuMzIzMjU5LCAwLjQxOTE1MSwgMC41NzM1MzEsIDAuNzA5NDM3LCAwLjkwMTYyOSIsIFwKLSAgICAgICAgICAiMC4wNTc5NjksIDAuMTkzODQ2LCAwLjMyODkxNiwgMC40MjUzNzgsIDAuNTgwMjk1LCAwLjcxNDk2NywgMC45MDg3NDkiLCBcCi0gICAgICAgICAgIjAuMDYyODU0LCAwLjE5ODczNCwgMC4zMzM4NCwgMC40MzA0OTYsIDAuNTg1MDg1LCAwLjcxOTY0NywgMC45MTI3NzEiLCBcCi0gICAgICAgICAgIjAuMDY2NjgsIDAuMjAyNzA0LCAwLjMzNzk5NiwgMC40MzQzNzYsIDAuNTg5MDQ1LCAwLjcyNDQxLCAwLjkxNjY3IiwgXAotICAgICAgICAgICIwLjA2OTc2LCAwLjIwNjQzMiwgMC4zNDE2MjQsIDAuNDM4MTU4LCAwLjU5MjU4NSwgMC43Mjc5MywgMC45MjA3MzkiLCBcCi0gICAgICAgICAgIjAuMDczNjUyLCAwLjIxMjEyLCAwLjM0NzM1MiwgMC40NDM4NTksIDAuNTk4MjMzLCAwLjczMzQ0LCAwLjkyNzE4NSIsIFwKLSAgICAgICAgICAiMC4wNzYzNzksIDAuMjE3MDg2LCAwLjM1MjE0MiwgMC40NDg2OTEsIDAuNjAzNTkzLCAwLjczODgxNiwgMC45MzEyNCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4MTgxMiwgMC4zNjYxMjQsIDAuNjUwNjQxLCAwLjg1Mzc3MiwgMS4xNzk4NiwgMS40NjM3OSwgMS44NzIxNCIsIFwKLSAgICAgICAgICAiMC4wODE5MzcsIDAuMzY2MTI2LCAwLjY1MDcxNywgMC44NTQ5MDIsIDEuMTc5MzIsIDEuNDY1ODcsIDEuODcwNjQiLCBcCi0gICAgICAgICAgIjAuMDgyOTcyLCAwLjM2NjExMywgMC42NTA3MzksIDAuODUzODg3LCAxLjE3OTEzLCAxLjQ2NDQ1LCAxLjg3MjU5IiwgXAotICAgICAgICAgICIwLjA4NDg2MywgMC4zNjY4NDMsIDAuNjUwNzI2LCAwLjg1NDY1MiwgMS4xODA5MiwgMS40NjM3MywgMS44NzE1MiIsIFwKLSAgICAgICAgICAiMC4wODc1OTIsIDAuMzY3NjE1LCAwLjY1MTA3NCwgMC44NTQ1MjEsIDEuMTc4OTMsIDEuNDY1NjgsIDEuODcyNDIiLCBcCi0gICAgICAgICAgIjAuMDkyODE2LCAwLjM2OTU0MiwgMC42NTE4MjUsIDAuODU0MTksIDEuMTc5NTUsIDEuNDY1MzQsIDEuODcwMjkiLCBcCi0gICAgICAgICAgIjAuMDk3NjYxLCAwLjM3MjEzNCwgMC42NTMzMjEsIDAuODU1MjcxLCAxLjE3OTQ3LCAxLjQ2MzczLCAxLjg3MjM1Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE2MjMxLCAwLjA1NjAyNywgMC4wOTM5NjYsIDAuMTIwOTI2LCAwLjE2Mzc5NSwgMC4yMDEzMDksIDAuMjU0ODI1IiwgXAotICAgICAgICAgICIwLjAyNTA0NSwgMC4wNjQ0MzgsIDAuMTAyMzQ4LCAwLjEyOTI1NSwgMC4xNzIxOTMsIDAuMjA5NjY4LCAwLjI2MzIwNyIsIFwKLSAgICAgICAgICAiMC4wMzQzNiwgMC4wNzUxNjgsIDAuMTEzMDk1LCAwLjEzOTk2NCwgMC4xODI5MTQsIDAuMjIwNDAyLCAwLjI3Mzg5IiwgXAotICAgICAgICAgICIwLjA0MTA5LCAwLjA4NTk1LCAwLjEyMzg5NCwgMC4xNTA3NDYsIDAuMTkzNDM0LCAwLjIzMDk0MSwgMC4yODQ0NDIiLCBcCi0gICAgICAgICAgIjAuMDQ2MjY3LCAwLjA5Njk1NiwgMC4xMzQyOTEsIDAuMTYxMDk1LCAwLjIwMzkyOCwgMC4yNDEzOTksIDAuMjk0OTQ2IiwgXAotICAgICAgICAgICIwLjA1Mzc0NiwgMC4xMTI0MjgsIDAuMTUyMTI2LCAwLjE3ODg5NywgMC4yMjE2NzgsIDAuMjU5MTUxLCAwLjMxMjczIiwgXAotICAgICAgICAgICIwLjA1ODY4OSwgMC4xMjM1NDYsIDAuMTY2OTQzLCAwLjE5Mzc4NSwgMC4yMzY1NzQsIDAuMjc0MDA1LCAwLjMyNzI5NSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyNzQ2MywgMC4xMDQ5MzIsIDAuMTgxODk2LCAwLjIzNjk3NSwgMC4zMjQ5NTUsIDAuNDAyMDkxLCAwLjUxMjIzOSIsIFwKLSAgICAgICAgICAiMC4wMzEzNzMsIDAuMTA1MDY4LCAwLjE4MTkxLCAwLjIzNjg1MiwgMC4zMjUwNjksIDAuNDAyMDg0LCAwLjUxMjIyOSIsIFwKLSAgICAgICAgICAiMC4wNDA0NzYsIDAuMTA5MTUsIDAuMTgzMTA5LCAwLjIzNzI1MiwgMC4zMjUwMTksIDAuNDAyMDgzLCAwLjUxMjI1NyIsIFwKLSAgICAgICAgICAiMC4wNDk0MjksIDAuMTE1OTEzLCAwLjE4NzI4NiwgMC4yNDAwMzIsIDAuMzI2MDQ0LCAwLjQwMjMzMSwgMC41MTIyNTkiLCBcCi0gICAgICAgICAgIjAuMDU3NTExLCAwLjEyMzkxNCwgMC4xOTM0ODUsIDAuMjQ0ODUzLCAwLjMyOTE0NSwgMC40MDQxNjcsIDAuNTEyNzI2IiwgXAotICAgICAgICAgICIwLjA2ODkxMSwgMC4xMzc5NzQsIDAuMjA0Njg4LCAwLjI1NDQxMywgMC4zMzYzOTcsIDAuNDA5OTEsIDAuNTE2Mzg4IiwgXAotICAgICAgICAgICIwLjA3ODY2OSwgMC4xNTE2OCwgMC4yMTY1MzQsIDAuMjY0OTQ1LCAwLjM0NTI5MywgMC40MTcyMDgsIDAuNTIxOTI5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQ5NTk2LCAwLjE4NDk4LCAwLjMxOTg2NCwgMC40MTYxNzgsIDAuNTcwNTQxLCAwLjcwNjIyLCAwLjg5OTIwNSIsIFwKLSAgICAgICAgICAiMC4wNTUzNTcsIDAuMTkxMTIyLCAwLjMyNjI4MSwgMC40MjI2NjksIDAuNTc3NjcyLCAwLjcxMjA4MiwgMC45MDYwNDMiLCBcCi0gICAgICAgICAgIjAuMDYxMTg4LCAwLjE5NzA4NSwgMC4zMzIzMDcsIDAuNDI4Nzg1LCAwLjU4MzU5NiwgMC43MTgwMjksIDAuOTExNzUxIiwgXAotICAgICAgICAgICIwLjA2NjE2MSwgMC4yMDIzMywgMC4zMzc2NTEsIDAuNDM0MzM2LCAwLjU4ODYwMSwgMC43MjM3ODEsIDAuOTE3MTk3IiwgXAotICAgICAgICAgICIwLjA3MDUyNiwgMC4yMDc4NzIsIDAuMzQzMjEzLCAwLjQzOTU4NywgMC41OTQ1ODQsIDAuNzI5NDU5LCAwLjkyMTg1OSIsIFwKLSAgICAgICAgICAiMC4wNzY0NDUsIDAuMjE2NTQyLCAwLjM1MTgxNiwgMC40NDgzNzksIDAuNjAzMTM5LCAwLjczNzg5OSwgMC45MzEwMDkiLCBcCi0gICAgICAgICAgIjAuMDgwODA4LCAwLjIyNDM4OSwgMC4zNTk0MTUsIDAuNDU2MDM1LCAwLjYxMDczNiwgMC43NDYxMjQsIDAuOTM4NDQ1Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDgxODAxLCAwLjM2NjEyMiwgMC42NTA4MDYsIDAuODUzNzQ0LCAxLjE3OTczLCAxLjQ2NjQzLCAxLjg2OTIyIiwgXAotICAgICAgICAgICIwLjA4MjAzOSwgMC4zNjY1NTEsIDAuNjUxNDExLCAwLjg1NDI4MSwgMS4xNzkyLCAxLjQ2NTE4LCAxLjg3MDkyIiwgXAotICAgICAgICAgICIwLjA4Mzg1OSwgMC4zNjYxMjEsIDAuNjUxNjksIDAuODU1MTM0LCAxLjE3OTE3LCAxLjQ2NTUyLCAxLjg3MDMxIiwgXAotICAgICAgICAgICIwLjA4NjkzLCAwLjM2NjY3NiwgMC42NTEzOTgsIDAuODU0MTU2LCAxLjE4MDU3LCAxLjQ2NTgyLCAxLjg3MTA1IiwgXAotICAgICAgICAgICIwLjA5MTI5LCAwLjM2ODIzNiwgMC42NTE1NjgsIDAuODU0NTcxLCAxLjE3OTE5LCAxLjQ2NDAyLCAxLjg3MTIiLCBcCi0gICAgICAgICAgIjAuMDk5NDkyLCAwLjM3MTIyNSwgMC42NTI2ODcsIDAuODU1MTM3LCAxLjE3OTA3LCAxLjQ2MzksIDEuODcyNTgiLCBcCi0gICAgICAgICAgIjAuMTA2MjM2LCAwLjM3NTI4NywgMC42NTQyMTksIDAuODU2MjUzLCAxLjE4MTAxLCAxLjQ2MzcyLCAxLjg3MTk3Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE1OTQ0LCAwLjA1NDcxOCwgMC4wOTI1MjYsIDAuMTE5NDI5LCAwLjE2MjQyMSwgMC4yMDAwNDYsIDAuMjUzODA1IiwgXAotICAgICAgICAgICIwLjAyNDU1NSwgMC4wNjMxNjcsIDAuMTAwOTcsIDAuMTI3ODUxLCAwLjE3MDg4OCwgMC4yMDg0NTQsIDAuMjYyMjI2IiwgXAotICAgICAgICAgICIwLjAzMzE0MywgMC4wNzM5MTgsIDAuMTExNzA0LCAwLjEzODU4OSwgMC4xODE2MywgMC4yMTkyMiwgMC4yNzI4ODUiLCBcCi0gICAgICAgICAgIjAuMDM5MzE4LCAwLjA4NDY1NSwgMC4xMjI0NSwgMC4xNDkzMTcsIDAuMTkyMDg2LCAwLjIyOTY5NywgMC4yODMzODYiLCBcCi0gICAgICAgICAgIjAuMDQ0MzMsIDAuMDk1NTk1LCAwLjEzMzE5NiwgMC4xNjAwMTEsIDAuMjAyNTQxLCAwLjI0MDEyLCAwLjI5Mzc1MyIsIFwKLSAgICAgICAgICAiMC4wNTA3ODcsIDAuMTEwNDE0LCAwLjE1MDY1MywgMC4xNzc0OTgsIDAuMjIwMjk0LCAwLjI1Nzg0NSwgMC4zMTE1NDYiLCBcCi0gICAgICAgICAgIjAuMDU1MzMyLCAwLjEyMTgzNCwgMC4xNjUyMDUsIDAuMTkyMTY0LCAwLjIzNTA3OSwgMC4yNzI1OCwgMC4zMjYwMzciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjUwMzYsIDAuMTAyMzE2LCAwLjE3OTcyNywgMC4yMzUwMzIsIDAuMzIzNDg2LCAwLjQwMTA3NiwgMC41MTE2NiIsIFwKLSAgICAgICAgICAiMC4wMjkwMzQsIDAuMTAyNTg5LCAwLjE3OTY4MywgMC4yMzUwMzksIDAuMzIzNDc0LCAwLjQwMTAxMiwgMC41MTE1NiIsIFwKLSAgICAgICAgICAiMC4wMzgxNDksIDAuMTA2Nzk5LCAwLjE4MTA4MiwgMC4yMzUzNzcsIDAuMzIzNTk1LCAwLjQwMTA2NSwgMC41MTE2NzMiLCBcCi0gICAgICAgICAgIjAuMDQ2NTkyLCAwLjExMzcxNSwgMC4xODUyODgsIDAuMjM4MjIyLCAwLjMyNDU5MywgMC40MDEyMjYsIDAuNTExNjgiLCBcCi0gICAgICAgICAgIjAuMDU0MTg3LCAwLjEyMTQxLCAwLjE5MTM3MiwgMC4yNDI5NjksIDAuMzI3Nzc5LCAwLjQwMzA5MiwgMC41MTIwNzkiLCBcCi0gICAgICAgICAgIjAuMDY1Mzc0LCAwLjEzNjE3MywgMC4yMDI3MDQsIDAuMjUyODM3LCAwLjMzNTEzLCAwLjQwODc4NCwgMC41MTU3NzYiLCBcCi0gICAgICAgICAgIjAuMDc0NDc4LCAwLjE0OTMzNCwgMC4yMTUwMzMsIDAuMjYzNTMsIDAuMzQ0MTAxLCAwLjQxNjI0MSwgMC41MjEzMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDM0NzgsIDAuMTc4ODksIDAuMzE0MTksIDAuNDEwODk3LCAwLjU2NTQyNSwgMC43MDAwMSwgMC44OTM2NzQiLCBcCi0gICAgICAgICAgIjAuMDQ5NDAzLCAwLjE4NTIxNywgMC4zMjA2ODEsIDAuNDE3MTgyLCAwLjU3MTU1NiwgMC43MDYwNzMsIDAuOTAwMDgyIiwgXAotICAgICAgICAgICIwLjA1NjcxMSwgMC4xOTI0OTgsIDAuMzI3OTc3LCAwLjQyNDI5LCAwLjU3OTI0MSwgMC43MTM2MjcsIDAuOTA2NjU4IiwgXAotICAgICAgICAgICIwLjA2MzYxMiwgMC4yMDAwMzQsIDAuMzM1NTAyLCAwLjQzMjE0MSwgMC41ODYyNDksIDAuNzIxMzYsIDAuOTE1MTI4IiwgXAotICAgICAgICAgICIwLjA2OTM5OSwgMC4yMDc0NDQsIDAuMzQyODY2LCAwLjQzOTYxNywgMC41OTQyNTYsIDAuNzI4OTExLCAwLjkyMTk0OSIsIFwKLSAgICAgICAgICAiMC4wNzc2ODksIDAuMjE5NzU0LCAwLjM1NTEwMSwgMC40NTE2NDQsIDAuNjA2MTYyLCAwLjc0MDgxNSwgMC45MzQ0MDIiLCBcCi0gICAgICAgICAgIjAuMDgzNzIxLCAwLjIzMDcyOCwgMC4zNjU3MjksIDAuNDYyNDExLCAwLjYxNzE2MywgMC43NTE4MDYsIDAuOTQ0MjYxIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDgxNzExLCAwLjM2NjE3NywgMC42NTA2NzYsIDAuODU0MDI3LCAxLjE3OTMxLCAxLjQ2NjMsIDEuODcxMSIsIFwKLSAgICAgICAgICAiMC4wODIxMzYsIDAuMzY2NjQ1LCAwLjY1MDY5NSwgMC44NTM5NjIsIDEuMTc5MTUsIDEuNDY0MzcsIDEuODcwNCIsIFwKLSAgICAgICAgICAiMC4wODUzNiwgMC4zNjY0NjEsIDAuNjUwNjYyLCAwLjg1NDkxNCwgMS4xNzkzMywgMS40NjQ5NCwgMS44NzAyNCIsIFwKLSAgICAgICAgICAiMC4wOTA3NDUsIDAuMzY3MTc4LCAwLjY1MDY4OCwgMC44NTM5MjgsIDEuMTgwNTYsIDEuNDYzNzIsIDEuODcwMzIiLCBcCi0gICAgICAgICAgIjAuMDk3MDY3LCAwLjM2ODg2MiwgMC42NTEzNjEsIDAuODUzODYzLCAxLjE3OTE2LCAxLjQ2NTQyLCAxLjg3Mjc2IiwgXAotICAgICAgICAgICIwLjEwODA1OCwgMC4zNzM3NDksIDAuNjUyODUzLCAwLjg1NDM5OCwgMS4xNzkxNCwgMS40NjUyOSwgMS44NzAxOSIsIFwKLSAgICAgICAgICAiMC4xMTU3ODcsIDAuMzc5NjE5LCAwLjY1NTI1NiwgMC44NTY1NjYsIDEuMTc5MTIsIDEuNDY1MzUsIDEuODcxNjciKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTQ3MTUsIDAuMDUyNjgyLCAwLjA5MDMzMiwgMC4xMTcyMTMsIDAuMTYwMjAzLCAwLjE5NzgyMywgMC4yNTE0ODIiLCBcCi0gICAgICAgICAgIjAuMDIzMjE3LCAwLjA2MTI1LCAwLjA5ODg5MSwgMC4xMjU3NjgsIDAuMTY4NzQ1LCAwLjIwNjMzLCAwLjI2MDA2NCIsIFwKLSAgICAgICAgICAiMC4wMzEwNDcsIDAuMDcxOTc4LCAwLjEwOTU0LCAwLjEzNjM5OCwgMC4xNzk1MDEsIDAuMjE3MTEsIDAuMjcwODUxIiwgXAotICAgICAgICAgICIwLjAzNjQ3MSwgMC4wODI2NDgsIDAuMTIwNDE1LCAwLjE0NzI1LCAwLjE4OTgzMiwgMC4yMjc0MTgsIDAuMjgxNDAxIiwgXAotICAgICAgICAgICIwLjA0MDYwOSwgMC4wOTM3MzEsIDAuMTMxMDI5LCAwLjE1Nzc0NywgMC4yMDEwMDksIDAuMjM4NjIxLCAwLjI5MjM0NSIsIFwKLSAgICAgICAgICAiMC4wNDYzLCAwLjEwODQsIDAuMTQ4NzQ2LCAwLjE3NTQwMiwgMC4yMTgyNDUsIDAuMjU1Njc0LCAwLjMwODQxMSIsIFwKLSAgICAgICAgICAiMC4wNTAxODQsIDAuMTE4NTczLCAwLjE2MzUxNiwgMC4xOTA1MzMsIDAuMjMzNTgsIDAuMjcwNDkyLCAwLjMyNDE1OSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyMjA3MiwgMC4wOTk0NiwgMC4xNzY5NzUsIDAuMjMyMzEyLCAwLjMyMDkyNSwgMC4zOTgyODIsIDAuNTA4ODI5IiwgXAotICAgICAgICAgICIwLjAyNjQ1NSwgMC4wOTk4NDUsIDAuMTc2OTQxLCAwLjIzMjMwNiwgMC4zMjA4MDYsIDAuMzk4MzAxLCAwLjUwOTEzMiIsIFwKLSAgICAgICAgICAiMC4wMzU1MTksIDAuMTA0MzEzLCAwLjE3ODQwOCwgMC4yMzI2OTIsIDAuMzIwODQyLCAwLjM5ODM0NywgMC41MDkxNTciLCBcCi0gICAgICAgICAgIjAuMDQzODc5LCAwLjExMTI4NCwgMC4xODI3MjksIDAuMjM1NzEsIDAuMzIxOTQzLCAwLjM5ODUyNCwgMC41MDg5ODgiLCBcCi0gICAgICAgICAgIjAuMDUxNTU2LCAwLjExOTIxMywgMC4xODg5NjIsIDAuMjQwNDYyLCAwLjMyNDk3NCwgMC40MDAzNTEsIDAuNTA5MzM5IiwgXAotICAgICAgICAgICIwLjA2MjA4NywgMC4xMzM4NTIsIDAuMjAwMzk5LCAwLjI1MDQ3OSwgMC4zMzI2OTMsIDAuNDA2MTc2LCAwLjUxMzM5MyIsIFwKLSAgICAgICAgICAiMC4wNzA3OTcsIDAuMTQ3NzI5LCAwLjIxMjExNiwgMC4yNjA3MSwgMC4zNDEzNzMsIDAuNDEzNDc5LCAwLjUxODY1NiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJEIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzMzM3OSwgMC4xNjkwNzMsIDAuMzA0MTA3LCAwLjQwMDQzMiwgMC41NTQyMjUsIDAuNjg5MjExLCAwLjg4MzQ1OCIsIFwKLSAgICAgICAgICAiMC4wNDAwMjIsIDAuMTc1NjY3LCAwLjMxMTA3NiwgMC40MDc2MDcsIDAuNTYxNjksIDAuNjk3MzczLCAwLjg5MDI3NSIsIFwKLSAgICAgICAgICAiMC4wNDk3MTYsIDAuMTg0Mzg0LCAwLjMxOTU5NywgMC40MTYyOTQsIDAuNTcwNTU4LCAwLjcwNTYxLCAwLjg5ODMzMyIsIFwKLSAgICAgICAgICAiMC4wNTg4MDksIDAuMTkzMjYyLCAwLjMyODI4NywgMC40MjQ3MzIsIDAuNTc4NzAzLCAwLjcxMzUzMiwgMC45MDcyNDYiLCBcCi0gICAgICAgICAgIjAuMDY2MDgzLCAwLjIwMjU0NCwgMC4zMzczNzEsIDAuNDMzNzgzLCAwLjU4ODU4NSwgMC43MjMyMDUsIDAuOTE2NDMiLCBcCi0gICAgICAgICAgIjAuMDc2MDE0LCAwLjIxNzI0NywgMC4zNTE2NzUsIDAuNDQ4MTYzLCAwLjYwMjY2NywgMC43MzcyNDIsIDAuOTMwMTgiLCBcCi0gICAgICAgICAgIjAuMDgzNjQ5LCAwLjIzMDU1MSwgMC4zNjQzOTEsIDAuNDYwNTI2LCAwLjYxNDUzLCAwLjc0OTc3OCwgMC45NDI2ODYiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzk5NzcsIDAuMzY2MTAzLCAwLjY1MTU2NCwgMC44NTQzNCwgMS4xNzc4NCwgMS40NjMzNSwgMS44NzAzMiIsIFwKLSAgICAgICAgICAiMC4wODEwMDUsIDAuMzY2Mzk0LCAwLjY1MDY2LCAwLjg1NDA0OSwgMS4xODAwNiwgMS40NjM3NiwgMS44NzAyMiIsIFwKLSAgICAgICAgICAiMC4wODcwNjEsIDAuMzY1NTU3LCAwLjY1MTM2NywgMC44NTM4NjgsIDEuMTgwNzgsIDEuNDY1NjQsIDEuODcyMTMiLCBcCi0gICAgICAgICAgIjAuMDk0MzAzLCAwLjM2NjM0MSwgMC42NTA5NDUsIDAuODUzNzg2LCAxLjE3OTI4LCAxLjQ2MzMyLCAxLjg3MjgyIiwgXAotICAgICAgICAgICIwLjEwMTk5MSwgMC4zNjk0NSwgMC42NTA4ODUsIDAuODU0NjEyLCAxLjE3OTE3LCAxLjQ2NTQyLCAxLjg3MzMiLCBcCi0gICAgICAgICAgIjAuMTEzMzE0LCAwLjM3NjIyNCwgMC42NTIzNDQsIDAuODU0ODE4LCAxLjE3OTE2LCAxLjQ2NTUxLCAxLjg3Mjg5IiwgXAotICAgICAgICAgICIwLjEyMDQ5MiwgMC4zODQwNzgsIDAuNjU3MDEyLCAwLjg1NjQ1NywgMS4xNzkzNSwgMS40NjU4LCAxLjg3MzA5Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEyNTkyLCAwLjA1MDE5MywgMC4wODc2ODksIDAuMTE0NDYxLCAwLjE1NzMxNCwgMC4xOTQ3OTksIDAuMjQ4NDc0IiwgXAotICAgICAgICAgICIwLjAyMDg1NiwgMC4wNTg4NDcsIDAuMDk2MzUsIDAuMTIzMTI4LCAwLjE2NiwgMC4yMDM0NjksIDAuMjU3MDMyIiwgXAotICAgICAgICAgICIwLjAyNzQ5NCwgMC4wNjk2MzIsIDAuMTA3MDQ5LCAwLjEzMzgzLCAwLjE3NjcxNiwgMC4yMTQyMDUsIDAuMjY3NzYiLCBcCi0gICAgICAgICAgIjAuMDMyMjEzLCAwLjA4MDM1OCwgMC4xMTc4NywgMC4xNDQ2MTQsIDAuMTg3MzIzLCAwLjIyNDgwNywgMC4yNzg2NDUiLCBcCi0gICAgICAgICAgIjAuMDM1ODI0LCAwLjA5MDY4NiwgMC4xMjgzOTIsIDAuMTU1MDkyLCAwLjE5Nzg5MiwgMC4yMzUzOTEsIDAuMjg5MTY4IiwgXAotICAgICAgICAgICIwLjAzOTk0OCwgMC4xMDUyODcsIDAuMTQ2MTk1LCAwLjE3Mjc0NywgMC4yMTUyMjIsIDAuMjUyNjMsIDAuMzA2MTk1IiwgXAotICAgICAgICAgICIwLjA0MzEwMSwgMC4xMTUxOTUsIDAuMTYwNzE1LCAwLjE4Nzg2NCwgMC4yMzAzNDEsIDAuMjY4MDE4LCAwLjMyMTM0NCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxOTExOSwgMC4wOTY0ODgsIDAuMTczODksIDAuMjI5MTI1LCAwLjMxNzYzNywgMC4zOTQ5NDQsIDAuNTA0NTc4IiwgXAotICAgICAgICAgICIwLjAyNDE1MSwgMC4wOTY3NCwgMC4xNzM4NTcsIDAuMjI5MTQ1LCAwLjMxNjg3MiwgMC4zOTUwMTMsIDAuNTA0NDY1IiwgXAotICAgICAgICAgICIwLjAzMzQzMSwgMC4xMDEzOTcsIDAuMTc1MzkzLCAwLjIyOTIwMiwgMC4zMTcwOTgsIDAuMzk0OTY4LCAwLjUwNTUyIiwgXAotICAgICAgICAgICIwLjA0MTI1OSwgMC4xMDgzODcsIDAuMTc5NTc3LCAwLjIzMjYsIDAuMzE4NzY0LCAwLjM5NDM2MSwgMC41MDQ1NjIiLCBcCi0gICAgICAgICAgIjAuMDQ4NTAxLCAwLjExNjg4MSwgMC4xODYwMTYsIDAuMjM3NTE3LCAwLjMyMTg1NCwgMC4zOTYzODgsIDAuNTA2MDEiLCBcCi0gICAgICAgICAgIjAuMDU5NDAzLCAwLjEzMTI4OCwgMC4xOTc3MzYsIDAuMjQ3MjQ4LCAwLjMyOTY3OSwgMC40MDMxNjIsIDAuNTA5MTA2IiwgXAotICAgICAgICAgICIwLjA2NzY3MSwgMC4xNDU0OTIsIDAuMjA5MTg0LCAwLjI1NzU2NiwgMC4zMzg0NTQsIDAuNDEwMjc5LCAwLjUxNTE3NiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDI2MDE0LCAwLjAyNjEzNSwgMC4wMjYxNDYsIDAuMDI2MTU3LCAwLjAyNjE2MSwgMC4wMjYxNjMsIDAuMDI2MTY0IiwgXAotICAgICAgICAgICIwLjAyNTczOSwgMC4wMjYwMTEsIDAuMDI2MDc1LCAwLjAyNjA5OCwgMC4wMjYxMTQsIDAuMDI2MTI5LCAwLjAyNjEzOCIsIFwKLSAgICAgICAgICAiMC4wMjU2MzksIDAuMDI1ODk4LCAwLjAyNTk5MywgMC4wMjYwMjksIDAuMDI2MDYyLCAwLjAyNjA3NCwgMC4wMjYxMjIiLCBcCi0gICAgICAgICAgIjAuMDI1NjE0LCAwLjAyNTgzNCwgMC4wMjU5MzUsIDAuMDI1OTc5LCAwLjAyNjAzNSwgMC4wMjYwNDksIDAuMDI2MDcxIiwgXAotICAgICAgICAgICIwLjAyNTY0NywgMC4wMjU4MDMsIDAuMDI1OSwgMC4wMjU5NDUsIDAuMDI1OTkyLCAwLjAyNjAyOSwgMC4wMjYwNDIiLCBcCi0gICAgICAgICAgIjAuMDI1ODEzLCAwLjAyNTgyNywgMC4wMjU5MDEsIDAuMDI1OTMsIDAuMDI1OTczLCAwLjAyNjAxNSwgMC4wMjYwMzEiLCBcCi0gICAgICAgICAgIjAuMDI2MDg5LCAwLjAyNTkzMSwgMC4wMjU5NSwgMC4wMjU5OCwgMC4wMjU5OTksIDAuMDI2MDE4LCAwLjAyNjA0MyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2NTk5LCAwLjAwNjYsIDAuMDA2NjAxLCAwLjAwNjU5OSwgMC4wMDY2MDIsIDAuMDA2NTk5LCAwLjAwNjU5OSIsIFwKLSAgICAgICAgICAiMC4wMDYzNzQsIDAuMDA2MzYzLCAwLjAwNjM2MiwgMC4wMDYzNjQsIDAuMDA2MzY0LCAwLjAwNjM2MywgMC4wMDYzNjQiLCBcCi0gICAgICAgICAgIjAuMDA2NTM0LCAwLjAwNjQwNiwgMC4wMDYzNzksIDAuMDA2MzY3LCAwLjAwNjM1NiwgMC4wMDYzNTMsIDAuMDA2MzQ4IiwgXAotICAgICAgICAgICIwLjAwNjk1NiwgMC4wMDY1MjQsIDAuMDA2NDM2LCAwLjAwNjQxMSwgMC4wMDYzODUsIDAuMDA2MzY0LCAwLjAwNjM1MyIsIFwKLSAgICAgICAgICAiMC4wMDcyNjEsIDAuMDA2NzA0LCAwLjAwNjYzMywgMC4wMDY1NjIsIDAuMDA2NTAxLCAwLjAwNjQ2MiwgMC4wMDY0MjciLCBcCi0gICAgICAgICAgIjAuMDA4MTcyLCAwLjAwNzI5NiwgMC4wMDY5MzIsIDAuMDA2ODIsIDAuMDA2NzA0LCAwLjAwNjY0MiwgMC4wMDY1NzkiLCBcCi0gICAgICAgICAgIjAuMDA5MTc2LCAwLjAwNzYsIDAuMDA3MjQ4LCAwLjAwNzA0NywgMC4wMDY4ODEsIDAuMDA2NzgzLCAwLjAwNjY3OCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDIyMTk5LCAwLjAyMjMyMywgMC4wMjIzNCwgMC4wMjIzNDQsIDAuMDIyMzQ5LCAwLjAyMjM1MSwgMC4wMjIzNTkiLCBcCi0gICAgICAgICAgIjAuMDIxOTIyLCAwLjAyMjE5NiwgMC4wMjIyNjEsIDAuMDIyMjc3LCAwLjAyMjMwMywgMC4wMjIzMTQsIDAuMDIyMzI0IiwgXAotICAgICAgICAgICIwLjAyMTgyNSwgMC4wMjIwODYsIDAuMDIyMTgyLCAwLjAyMjIxNiwgMC4wMjIyNTIsIDAuMDIyMjYsIDAuMDIyMjg3IiwgXAotICAgICAgICAgICIwLjAyMTgxOCwgMC4wMjIwMjQsIDAuMDIyMTI1LCAwLjAyMjE2OCwgMC4wMjIyMTUsIDAuMDIyMjM0LCAwLjAyMjI2MiIsIFwKLSAgICAgICAgICAiMC4wMjE4NzcsIDAuMDIyMDA0LCAwLjAyMjA5NSwgMC4wMjIxMzcsIDAuMDIyMTgzLCAwLjAyMjIxLCAwLjAyMjIzNyIsIFwKLSAgICAgICAgICAiMC4wMjIxMTUsIDAuMDIyMDUzLCAwLjAyMjEwNywgMC4wMjIxMzIsIDAuMDIyMTc1LCAwLjAyMjE5LCAwLjAyMjIyMSIsIFwKLSAgICAgICAgICAiMC4wMjI0NiwgMC4wMjIxODUsIDAuMDIyMTg0LCAwLjAyMjE5MywgMC4wMjIyMTMsIDAuMDIyMjMzLCAwLjAyMjI1MSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0NjQzLCAwLjAwNDY1NywgMC4wMDQ2NTcsIDAuMDA0NjU3LCAwLjAwNDY1OSwgMC4wMDQ2NTgsIDAuMDA0NjU5IiwgXAotICAgICAgICAgICIwLjAwNDQ0MSwgMC4wMDQ1MDgsIDAuMDA0NTIxLCAwLjAwNDUyNiwgMC4wMDQ1MywgMC4wMDQ1MzMsIDAuMDA0NTM0IiwgXAotICAgICAgICAgICIwLjAwNDU5NywgMC4wMDQ1NDYsIDAuMDA0NTQsIDAuMDA0NTM3LCAwLjAwNDUzNSwgMC4wMDQ1MzEsIDAuMDA0NTMiLCBcCi0gICAgICAgICAgIjAuMDA0ODQsIDAuMDA0NzgxLCAwLjAwNDYxOSwgMC4wMDQ2MDIsIDAuMDA0NTcsIDAuMDA0NTU5LCAwLjAwNDU0OSIsIFwKLSAgICAgICAgICAiMC4wMDUyNzgsIDAuMDA0Nzk2LCAwLjAwNDcyMywgMC4wMDQ2OCwgMC4wMDQ2OTMsIDAuMDA0NjU5LCAwLjAwNDYyNiIsIFwKLSAgICAgICAgICAiMC4wMDYyMzIsIDAuMDA1MjM5LCAwLjAwNDk3MiwgMC4wMDQ4OSwgMC4wMDQ3OTgsIDAuMDA0NzQzLCAwLjAwNDY5IiwgXAotICAgICAgICAgICIwLjAwNzAzLCAwLjAwNTYyNSwgMC4wMDU0NjEsIDAuMDA1MjY1LCAwLjAwNTEsIDAuMDA1MDAxLCAwLjAwNDg5OCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE4NTQ0LCAwLjAxODY2OCwgMC4wMTg2ODQsIDAuMDE4NjksIDAuMDE4NjkzLCAwLjAxODY5NiwgMC4wMTg2OTYiLCBcCi0gICAgICAgICAgIjAuMDE4MjY2LCAwLjAxODUzOSwgMC4wMTg2MDQsIDAuMDE4NjI2LCAwLjAxODY0NSwgMC4wMTg2NTYsIDAuMDE4Njc0IiwgXAotICAgICAgICAgICIwLjAxODIwMywgMC4wMTg0MzcsIDAuMDE4NTMsIDAuMDE4NTY4LCAwLjAxODU5OSwgMC4wMTg2MDgsIDAuMDE4NjM1IiwgXAotICAgICAgICAgICIwLjAxODI2OSwgMC4wMTg0MDIsIDAuMDE4NDg5LCAwLjAxODUyNywgMC4wMTg1NjcsIDAuMDE4NTksIDAuMDE4NjEiLCBcCi0gICAgICAgICAgIjAuMDE4NDM5LCAwLjAxODQxOSwgMC4wMTg0ODgsIDAuMDE4NTE1LCAwLjAxODU1NCwgMC4wMTg1NzcsIDAuMDE4NiIsIFwKLSAgICAgICAgICAiMC4wMTg5MDgsIDAuMDE4NTcyLCAwLjAxODU2MiwgMC4wMTg1NjYsIDAuMDE4NTgyLCAwLjAxODU5NiwgMC4wMTg2MTMiLCBcCi0gICAgICAgICAgIjAuMDE5NDQsIDAuMDE4NzgyLCAwLjAxODY4NiwgMC4wMTg2NjMsIDAuMDE4NjUxLCAwLjAxODY0OSwgMC4wMTg2NDEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjM4OCwgMC4wMDI0NDMsIDAuMDAyNDUxLCAwLjAwMjQ1MiwgMC4wMDI0NTQsIDAuMDAyNDU1LCAwLjAwMjQ1NSIsIFwKLSAgICAgICAgICAiMC4wMDIzMjEsIDAuMDAyNDk3LCAwLjAwMjUzLCAwLjAwMjU0MSwgMC4wMDI1NTIsIDAuMDAyNTU3LCAwLjAwMjU2MiIsIFwKLSAgICAgICAgICAiMC4wMDI0MzQsIDAuMDAyNTUyLCAwLjAwMjU2OSwgMC4wMDI1NzYsIDAuMDAyNTg4LCAwLjAwMjU5NiwgMC4wMDI1OTgiLCBcCi0gICAgICAgICAgIjAuMDAyOCwgMC4wMDI2OTYsIDAuMDAyNzEzLCAwLjAwMjY5NSwgMC4wMDI2NjMsIDAuMDAyNjU0LCAwLjAwMjYyMiIsIFwKLSAgICAgICAgICAiMC4wMDM0MzUsIDAuMDAyOTE0LCAwLjAwMjc5NCwgMC4wMDI3NTcsIDAuMDAyNzEsIDAuMDAyNjk3LCAwLjAwMjY4MSIsIFwKLSAgICAgICAgICAiMC4wMDQxNzEsIDAuMDAzMTk1LCAwLjAwMzAzLCAwLjAwMzEzOSwgMC4wMDMwMjksIDAuMDAyOTY1LCAwLjAwMjkwNyIsIFwKLSAgICAgICAgICAiMC4wMDUwMTgsIDAuMDAzNzIzLCAwLjAwMzM0LCAwLjAwMzE4OCwgMC4wMDMwNzIsIDAuMDAzMjU4LCAwLjAwMzE0NyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkQiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE0NjE1LCAwLjAxNDgwMywgMC4wMTQ4MywgMC4wMTQ4MzcsIDAuMDE0ODQyLCAwLjAxNDg0OSwgMC4wMTQ4NSIsIFwKLSAgICAgICAgICAiMC4wMTQ0MzQsIDAuMDE0NjcsIDAuMDE0NzQ0LCAwLjAxNDc2LCAwLjAxNDc4NSwgMC4wMTQ4MDIsIDAuMDE0ODEzIiwgXAotICAgICAgICAgICIwLjAxNDY1NywgMC4wMTQ2NDQsIDAuMDE0NzA0LCAwLjAxNDcyNiwgMC4wMTQ3NiwgMC4wMTQ3NzYsIDAuMDE0NzkyIiwgXAotICAgICAgICAgICIwLjAxNTE3OSwgMC4wMTQ3NjUsIDAuMDE0NzU1LCAwLjAxNDc2LCAwLjAxNDc4LCAwLjAxNDc4OSwgMC4wMTQ4MDEiLCBcCi0gICAgICAgICAgIjAuMDE1NTM0LCAwLjAxNDg5NiwgMC4wMTQ4MTcsIDAuMDE0ODAyLCAwLjAxNDgsIDAuMDE0ODAzLCAwLjAxNDgwOSIsIFwKLSAgICAgICAgICAiMC4wMTY1MTQsIDAuMDE1MzI2LCAwLjAxNTA4NSwgMC4wMTUwMDksIDAuMDE0OTQ1LCAwLjAxNDkxOCwgMC4wMTQ4OTYiLCBcCi0gICAgICAgICAgIjAuMDE3NTU5LCAwLjAxNTkwMSwgMC4wMTU0NiwgMC4wMTUzMTEsIDAuMDE1MTc5LCAwLjAxNTEwNiwgMC4wMTUwNDYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDAyMiwgMC4wMDAyMzMsIDAuMDAwMjYsIDAuMDAwMjY4LCAwLjAwMDI3NSwgMC4wMDAyNzgsIDAuMDAwMjgyIiwgXAotICAgICAgICAgICIwLjAwMDA0NywgMC4wMDAzNjksIDAuMDAwNDMsIDAuMDAwNDQ4LCAwLjAwMDQ2NiwgMC4wMDA0NzUsIDAuMDAwNDgzIiwgXAotICAgICAgICAgICIwLjAwMDIyMywgMC4wMDA0MDQsIDAuMDAwNDY1LCAwLjAwMDQ4OSwgMC4wMDA1MTcsIDAuMDAwNTMzLCAwLjAwMDU0MiIsIFwKLSAgICAgICAgICAiMC4wMDA1MzcsIDAuMDAwNTI4LCAwLjAwMDU2NCwgMC4wMDA1NzEsIDAuMDAwNTY0LCAwLjAwMDU2OCwgMC4wMDA1ODYiLCBcCi0gICAgICAgICAgIjAuMDAxMDIxLCAwLjAwMDc5MSwgMC4wMDA3MjUsIDAuMDAwNjg3LCAwLjAwMDY2NywgMC4wMDA2NTMsIDAuMDAwNjE0IiwgXAotICAgICAgICAgICIwLjAwMTkyMiwgMC4wMDEwNDEsIDAuMDAxMTEsIDAuMDAxMDI0LCAwLjAwMTAyNCwgMC4wMDA5NTYsIDAuMDAwODg5IiwgXAotICAgICAgICAgICIwLjAwMjgxNSwgMC4wMDE2MDYsIDAuMDAxMjM2LCAwLjAwMTEwMywgMC4wMDEzMTMsIDAuMDAwOTM3LCAwLjAwMDg2NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogT0EyMVgxICoKLSAqIC0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoT0EyMVgxKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMjQyNDIzOwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjExMTMyOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYxMDIwMTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2MTExMzI7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjk2LCAwLjAwMDI5NiwgMC4wMDAyOTYsIDAuMDAwMjk2LCAwLjAwMDI5NiwgMC4wMDAyOTYsIDAuMDAwMjk2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzAyLCAwLjAwMDI5OCwgMC4wMDAyOTgsIDAuMDAwMjk4LCAwLjAwMDI5OCwgMC4wMDAyOTcsIDAuMDAwMjk3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihBMSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjMyNzc1OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYzMjc3NTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2MzE3NjE7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjk2LCAwLjAwMDI5NiwgMC4wMDAyOTYsIDAuMDAwMjk2LCAwLjAwMDI5NiwgMC4wMDAyOTYsIDAuMDAwMjk2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzAyLCAwLjAwMDI5OCwgMC4wMDAyOTcsIDAuMDAwMjk3LCAwLjAwMDI5NywgMC4wMDAyOTcsIDAuMDAwMjk3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjg2MDE7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjg2MDE7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjg1OTg5OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDM3LCAwLjAwMDM3MSwgMC4wMDAzNzEsIDAuMDAwMzcxLCAwLjAwMDM3MSwgMC4wMDAzNzEsIDAuMDAwMzcxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzM3LCAwLjAwMDMzOCwgMC4wMDAzMzgsIDAuMDAwMzM4LCAwLjAwMDMzOCwgMC4wMDAzMzgsIDAuMDAwMzM4Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMzQ5OTc2OwotICAgIGZ1bmN0aW9uIDogIigoQTArQTEpIEIwKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTAiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2NjM2OSwgMC4wODQ4NjgsIDAuMTg4OTA1LCAwLjI4MDYwMywgMC40MDI4MzksIDAuNjQ3MjQ2LCAwLjgwMDAyMyIsIFwKLSAgICAgICAgICAiMC4wNzMwODQsIDAuMDkxNTg0LCAwLjE5NTYzOCwgMC4yODczNDYsIDAuNDA5NTQ4LCAwLjY1Mzk2OCwgMC44MDY2ODUiLCBcCi0gICAgICAgICAgIjAuMDgwMjUzLCAwLjA5ODc1OCwgMC4yMDI4MDksIDAuMjk0NTI2LCAwLjQxNjcxOCwgMC42NjExMzgsIDAuODEzOTI5IiwgXAotICAgICAgICAgICIwLjA4NjEzMywgMC4xMDQ2NjQsIDAuMjA4NzI5LCAwLjMwMDQ2NSwgMC40MjI2MjEsIDAuNjY3MDMsIDAuODE5OTU3IiwgXAotICAgICAgICAgICIwLjA5MTA0LCAwLjEwOTYyLCAwLjIxMzcwMSwgMC4zMDUzNjMsIDAuNDI3NTk3LCAwLjY3MjAwNCwgMC44MjQ3MjciLCBcCi0gICAgICAgICAgIjAuMDk3OTIsIDAuMTE2NTEzLCAwLjIyMDYyLCAwLjMxMjMyMSwgMC40MzQ1MTksIDAuNjc5MDY1LCAwLjgzMTc0NyIsIFwKLSAgICAgICAgICAiMC4xMDI5NjMsIDAuMTIxNjA1LCAwLjIyNTcxOSwgMC4zMTc0MTIsIDAuNDM5Njc0LCAwLjY4NDA0OCwgMC44MzY3NyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzIyMTksIDAuMTA5ODE1LCAwLjMyNjcyMiwgMC41MTk5MSwgMC43NzU4OTUsIDEuMjg5MiwgMS42MTA0NSIsIFwKLSAgICAgICAgICAiMC4wNzIyNiwgMC4xMDk4MiwgMC4zMjY4NDksIDAuNTE5ODksIDAuNzc2NDI2LCAxLjI5MDA2LCAxLjYxMjc1IiwgXAotICAgICAgICAgICIwLjA3MjQwMywgMC4xMDk5ODcsIDAuMzI2ODAyLCAwLjUxOTg1MywgMC43NzYzMjMsIDEuMjkwMTQsIDEuNjEwMzgiLCBcCi0gICAgICAgICAgIjAuMDczMDY5LCAwLjExMDM3MSwgMC4zMjcxOTcsIDAuNTE5MTM3LCAwLjc3NjkzOSwgMS4yOTAwNCwgMS42MTAzNiIsIFwKLSAgICAgICAgICAiMC4wNzM2NDUsIDAuMTEwNzgsIDAuMzI3MjYsIDAuNTE5ODI5LCAwLjc3NTczLCAxLjI5MTE2LCAxLjYxMjYzIiwgXAotICAgICAgICAgICIwLjA3NDU4MSwgMC4xMTE0MzEsIDAuMzI3MzAyLCAwLjUxOTg0NywgMC43NzY4NTksIDEuMjg5NSwgMS42MTI1OCIsIFwKLSAgICAgICAgICAiMC4wNzU0MTIsIDAuMTEyMSwgMC4zMjcyNzIsIDAuNTE5ODA0LCAwLjc3Njg2MiwgMS4yOTEwNCwgMS42MTI0NyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjk4MzcsIDAuMDg4Mjg4LCAwLjE5MTIwMSwgMC4yODE4MDIsIDAuNDAyNTA4LCAwLjY0MzgyNiwgMC43OTQ2MzgiLCBcCi0gICAgICAgICAgIjAuMDc1NjQxLCAwLjA5NDA4NSwgMC4xOTcwMTUsIDAuMjg3NjQ3LCAwLjQwODMxNSwgMC42NDk2NTgsIDAuODAwNDUiLCBcCi0gICAgICAgICAgIjAuMDgyMTcxLCAwLjEwMDYxNCwgMC4yMDM1MzksIDAuMjk0MTQzLCAwLjQxNDgzMiwgMC42NTYxNjQsIDAuODA2OTY5IiwgXAotICAgICAgICAgICIwLjA4Nzc0MSwgMC4xMDYyNSwgMC4yMDkyMDIsIDAuMjk5NzgxLCAwLjQyMDUyNCwgMC42NjE3OTIsIDAuODEyNjMiLCBcCi0gICAgICAgICAgIjAuMDkyNDM4LCAwLjExMDk2LCAwLjIxMzkyNSwgMC4zMDQ1MDUsIDAuNDI1MjIzLCAwLjY2NjUxOSwgMC44MTczNzUiLCBcCi0gICAgICAgICAgIjAuMDk4ODA2LCAwLjExNzMxNywgMC4yMjA0MjgsIDAuMzExMDA3LCAwLjQzMTcxMywgMC42NzMwNTMsIDAuODIzODQzIiwgXAotICAgICAgICAgICIwLjEwMzU3NiwgMC4xMjIxOTIsIDAuMjI1MjMyLCAwLjMxNTgxNywgMC40MzY1MzcsIDAuNjc3ODYsIDAuODI4Njk1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3MTA3OSwgMC4xMDcyNTgsIDAuMzE2ODI3LCAwLjUwMjQzLCAwLjc1MTY4MiwgMS4yNDcyNSwgMS41NTc3NCIsIFwKLSAgICAgICAgICAiMC4wNzEwNDcsIDAuMTA3MjUxLCAwLjMxNjg0NywgMC41MDIwOTksIDAuNzUwNzIxLCAxLjI0NzM1LCAxLjU1NzU4IiwgXAotICAgICAgICAgICIwLjA3MTI4MywgMC4xMDczODUsIDAuMzE2ODc2LCAwLjUwMjI4NiwgMC43NTE2MTcsIDEuMjQ3MjgsIDEuNTU5NDQiLCBcCi0gICAgICAgICAgIjAuMDcxNzk5LCAwLjEwNzcyNiwgMC4zMTcwMzEsIDAuNTAyMTQ5LCAwLjc1MTcxMywgMS4yNDg3OSwgMS41NTk3MSIsIFwKLSAgICAgICAgICAiMC4wNzIzMjgsIDAuMTA4MTY2LCAwLjMxNzEyOCwgMC41MDI2NjUsIDAuNzUxNjg4LCAxLjI0ODgyLCAxLjU1NjkxIiwgXAotICAgICAgICAgICIwLjA3MzMxNCwgMC4xMDg2MywgMC4zMTcyOCwgMC41MDMwMzUsIDAuNzUwNjg2LCAxLjI0ODkxLCAxLjU1OTYxIiwgXAotICAgICAgICAgICIwLjA3Mzc5NSwgMC4xMDkzNDMsIDAuMzE3MzUxLCAwLjUwMzI4MiwgMC43NTE0NzcsIDEuMjQ3MTgsIDEuNTU5NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDYyMzU3LCAwLjA4MDgwMywgMC4xODQ2OSwgMC4yNzY1ODMsIDAuMzk4NjUsIDAuNjQzNDMzLCAwLjc5NTk3NiIsIFwKLSAgICAgICAgICAiMC4wNjg5MzEsIDAuMDg3MzcsIDAuMTkxMzE0LCAwLjI4MzEwMSwgMC40MDU2MTEsIDAuNjQ5ODcsIDAuODAyNTQ2IiwgXAotICAgICAgICAgICIwLjA3NTc2NCwgMC4wOTQyMDksIDAuMTk4MTU2LCAwLjI4OTkyOSwgMC40MTI0MTQsIDAuNjU2ODc1LCAwLjgwOTU4NSIsIFwKLSAgICAgICAgICAiMC4wODEyNCwgMC4wOTk3MTYsIDAuMjAzNjY3LCAwLjI5NTM1NSwgMC40MTc3OTMsIDAuNjYyMTEsIDAuODE1MzIxIiwgXAotICAgICAgICAgICIwLjA4NTY1MSwgMC4xMDQyMjIsIDAuMjA4MTQ0LCAwLjI5OTgzOSwgMC40MjIxMjksIDAuNjY2Njc4LCAwLjgxOTUyNCIsIFwKLSAgICAgICAgICAiMC4wOTE2MzEsIDAuMTEwMjE2LCAwLjIxNDIxMSwgMC4zMDU4ODEsIDAuNDI4MzI2LCAwLjY3MjYsIDAuODI1NzU5IiwgXAotICAgICAgICAgICIwLjA5NTg3LCAwLjExNDU2NiwgMC4yMTg1NDgsIDAuMzEwMTc3LCAwLjQzMjQzMywgMC42NzY5NSwgMC44Mjk5OTEiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDcxNzMxLCAwLjEwOTM3NCwgMC4zMjYxMywgMC41MTkxMTUsIDAuNzc2NzA4LCAxLjI4OTY1LCAxLjYwOTkxIiwgXAotICAgICAgICAgICIwLjA3MTc0NiwgMC4xMDkzOTcsIDAuMzI2NjI3LCAwLjUxOTAzNiwgMC43NzU3NjcsIDEuMjg5NTYsIDEuNjExMTQiLCBcCi0gICAgICAgICAgIjAuMDcyMTE1LCAwLjEwOTYzMiwgMC4zMjY2NTQsIDAuNTE5MDgyLCAwLjc3NTc2MywgMS4yODk2NCwgMS42MTEzOSIsIFwKLSAgICAgICAgICAiMC4wNzI3NDMsIDAuMTEwMDc2LCAwLjMyNzA0NiwgMC41MTk0NzcsIDAuNzc1ODAzLCAxLjI4OTE2LCAxLjYxMTU5IiwgXAotICAgICAgICAgICIwLjA3MzQ3MywgMC4xMTA1NDIsIDAuMzI2NzY3LCAwLjUxOTg4MiwgMC43NzU2MDYsIDEuMjg4OTMsIDEuNjEwNiIsIFwKLSAgICAgICAgICAiMC4wNzQ1NiwgMC4xMTEzMzksIDAuMzI3MTE3LCAwLjUxOTkyNiwgMC43NzU5NDYsIDEuMjg5MzIsIDEuNjEwNzEiLCBcCi0gICAgICAgICAgIjAuMDc1NzIyLCAwLjExMjI4NiwgMC4zMjY5MDEsIDAuNTE5NjIxLCAwLjc3NzEzOCwgMS4yODk5MSwgMS42MTA2MSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjczNjIsIDAuMDg1Nzk0LCAwLjE4ODcxNSwgMC4yNzkzMTYsIDAuNDAwMDEsIDAuNjQxMzMxLCAwLjc5MjE3MSIsIFwKLSAgICAgICAgICAiMC4wNzQ3MTYsIDAuMDkzMTU3LCAwLjE5NjA4OSwgMC4yODY3MjQsIDAuNDA3NDM5LCAwLjY0ODc2NCwgMC43OTk1MjYiLCBcCi0gICAgICAgICAgIjAuMDgzNjgyLCAwLjEwMjExNSwgMC4yMDUwNDksIDAuMjk1NjgsIDAuNDE2MzUzLCAwLjY1NzY4NywgMC44MDg0OTIiLCBcCi0gICAgICAgICAgIjAuMDkxMjYxLCAwLjEwOTcxNiwgMC4yMTI2MzUsIDAuMzAzMjI2LCAwLjQyMzkzLCAwLjY2NTI1NCwgMC44MTYwOTQiLCBcCi0gICAgICAgICAgIjAuMDk3Nzg2LCAwLjExNjM0LCAwLjIxOTI2LCAwLjMwOTg1NiwgMC40MzA1NzMsIDAuNjcxODc3LCAwLjgyMjY3MiIsIFwKLSAgICAgICAgICAiMC4xMDYwNDgsIDAuMTI0NjM2LCAwLjIyNzYyOSwgMC4zMTgyNDksIDAuNDM4OTEzLCAwLjY4MDI1OCwgMC44MzEwNDUiLCBcCi0gICAgICAgICAgIjAuMTEyNjIyLCAwLjEzMTE2NCwgMC4yMzQyOTksIDAuMzI0ODgzLCAwLjQ0NTU4MSwgMC42ODY5MjEsIDAuODM3Nzg3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3MTA4OCwgMC4xMDcyNywgMC4zMTY4NjIsIDAuNTAyMjM3LCAwLjc1MTY3LCAxLjI0ODY1LCAxLjU1NzkiLCBcCi0gICAgICAgICAgIjAuMDcxMDEsIDAuMTA3MjU2LCAwLjMxNjg1MiwgMC41MDIzMDEsIDAuNzUxNzIzLCAxLjI0OTA2LCAxLjU1OTQ2IiwgXAotICAgICAgICAgICIwLjA3MTM2NCwgMC4xMDc0MTcsIDAuMzE2ODc2LCAwLjUwMzEyOSwgMC43NTE2MzksIDEuMjQ4ODcsIDEuNTU3NjYiLCBcCi0gICAgICAgICAgIjAuMDcxOTMzLCAwLjEwNzgyOSwgMC4zMTY5NTgsIDAuNTAyNDgzLCAwLjc1MTY1MSwgMS4yNDg3MSwgMS41NTk3NyIsIFwKLSAgICAgICAgICAiMC4wNzI0NDUsIDAuMTA4MjE4LCAwLjMxNzA4MiwgMC41MDMxNzcsIDAuNzUxNzE0LCAxLjI0ODczLCAxLjU1OTU1IiwgXAotICAgICAgICAgICIwLjA3MzUxMSwgMC4xMDg3ODIsIDAuMzE2OTc0LCAwLjUwMzI2NiwgMC43NTE2MDIsIDEuMjQ4NzMsIDEuNTU5MzkiLCBcCi0gICAgICAgICAgIjAuMDczOTEsIDAuMTA5MzQsIDAuMzE3MzYyLCAwLjUwMzM4OCwgMC43NTE3MjUsIDEuMjQ4NzIsIDEuNTU5NTMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjAiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2MTg5LCAwLjA4MDM5LCAwLjE4NDQ1MiwgMC4yNzYxMzEsIDAuMzk4MjM2LCAwLjY0Mjc3LCAwLjc5NTUzMiIsIFwKLSAgICAgICAgICAiMC4wNjkzNTcsIDAuMDg3ODU5LCAwLjE5MTkxNSwgMC4yODM2MjksIDAuNDA1ODMsIDAuNjUwMjUyLCAwLjgwMzAxOSIsIFwKLSAgICAgICAgICAiMC4wNzgzNjEsIDAuMDk2ODY2LCAwLjIwMDkwNSwgMC4yOTI2MDIsIDAuNDE0ODE1LCAwLjY1OTI2NSwgMC44MTE5OTciLCBcCi0gICAgICAgICAgIjAuMDg1ODY0LCAwLjEwNDM4OCwgMC4yMDg0NCwgMC4zMDAxNzEsIDAuNDIyMzI4LCAwLjY2Njc3OSwgMC44MTk1MDgiLCBcCi0gICAgICAgICAgIjAuMDkxOTAxLCAwLjExMDUxNCwgMC4yMTQ1MDIsIDAuMzA2MTY0LCAwLjQyODM4NSwgMC42NzI4MTYsIDAuODI1NTUiLCBcCi0gICAgICAgICAgIjAuMTAwMzM1LCAwLjExODk5OCwgMC4yMjMxMTMsIDAuMzE0ODE0LCAwLjQzNzAzNywgMC42ODE0MTEsIDAuODM0MTcyIiwgXAotICAgICAgICAgICIwLjEwNjc4NiwgMC4xMjUzMiwgMC4yMjk1MTksIDAuMzIxMTkzLCAwLjQ0MzQ5NSwgMC42ODc4NjUsIDAuODQwNjA0Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3MjI0NCwgMC4xMDk3OTYsIDAuMzI2NzU0LCAwLjUxOTg5OCwgMC43NzcxODEsIDEuMjg5NjUsIDEuNjEwMTYiLCBcCi0gICAgICAgICAgIjAuMDcyMjI4LCAwLjEwOTgyMywgMC4zMjY4MywgMC41MTk5MDEsIDAuNzc2NDE0LCAxLjI5MTEyLCAxLjYxMTA1IiwgXAotICAgICAgICAgICIwLjA3MjU0NSwgMC4xMTAwMjMsIDAuMzI3MTc5LCAwLjUxOTQ1OSwgMC43NzYyMzksIDEuMjg5NzQsIDEuNjExNTUiLCBcCi0gICAgICAgICAgIjAuMDczMTEyLCAwLjExMDQwOCwgMC4zMjcyNDMsIDAuNTE5ODU2LCAwLjc3NjcyNSwgMS4yODkzNywgMS42MTExMSIsIFwKLSAgICAgICAgICAiMC4wNzM2OTcsIDAuMTEwNzY5LCAwLjMyNzM4MSwgMC41MTk0MTMsIDAuNzc2OTc1LCAxLjI4OTU1LCAxLjYxMTE2IiwgXAotICAgICAgICAgICIwLjA3NDYzOSwgMC4xMTEzNDUsIDAuMzI3NDY2LCAwLjUyMDA5MSwgMC43NzcxNTgsIDEuMjg5OTMsIDEuNjExNDgiLCBcCi0gICAgICAgICAgIjAuMDc1Mzc1LCAwLjExMjAyLCAwLjMyNzI3MiwgMC41MjAwNDcsIDAuNzc3MjE3LCAxLjI5MTI0LCAxLjYxMjcyIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1MTUyMSwgMC4wNjk2NjQsIDAuMTcyMjUxLCAwLjI2Mjc1LCAwLjM4MzUzOSwgMC42MjQ3NzEsIDAuNzc1NDkyIiwgXAotICAgICAgICAgICIwLjA1OTMwMiwgMC4wNzc0NSwgMC4xODAwNDksIDAuMjcwNTYsIDAuMzkxMjIxLCAwLjYzMjU3NSwgMC43ODM4MzciLCBcCi0gICAgICAgICAgIjAuMDY2NzExLCAwLjA4NDg0NiwgMC4xODc0MzIsIDAuMjc4LCAwLjM5ODg3OSwgMC42NDAyMjYsIDAuNzkwNzcxIiwgXAotICAgICAgICAgICIwLjA3MjIwNywgMC4wOTAzNjYsIDAuMTkyOTQ4LCAwLjI4MzQ1NiwgMC40MDQxMDksIDAuNjQ1MzkyLCAwLjc5NjMxMSIsIFwKLSAgICAgICAgICAiMC4wNzY1MzcsIDAuMDk0NzI2LCAwLjE5NzI5NywgMC4yODc4NDcsIDAuNDA4NDcsIDAuNjQ5OTA1LCAwLjgwMDY4IiwgXAotICAgICAgICAgICIwLjA4MjI3OCwgMC4xMDA0NjcsIDAuMjAyOTMyLCAwLjI5MzU1OSwgMC40MTQxODEsIDAuNjU1NzY2LCAwLjgwNjgwMiIsIFwKLSAgICAgICAgICAiMC4wODYzODYsIDAuMTA0NjA4LCAwLjIwNzE4LCAwLjI5NzYxNSwgMC40MTgyOTEsIDAuNjU5NTc1LCAwLjgxMDQyMyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjgyNDQsIDAuMTA0OTQ5LCAwLjMxNTMxNiwgMC41MDEwNzQsIDAuNzUwODM1LCAxLjI0NjA4LCAxLjU1ODk3IiwgXAotICAgICAgICAgICIwLjA2ODMxNSwgMC4xMDQ4OCwgMC4zMTU1NiwgMC41MDExNjUsIDAuNzUwNzMyLCAxLjI0ODEzLCAxLjU1NzEiLCBcCi0gICAgICAgICAgIjAuMDY4OTQ5LCAwLjEwNTI0NCwgMC4zMTU2NiwgMC41MDEzNDcsIDAuNzQ5NTk5LCAxLjI0NzIxLCAxLjU1Njc1IiwgXAotICAgICAgICAgICIwLjA2OTY2OSwgMC4xMDU3NDYsIDAuMzE1NjAzLCAwLjUwMTE3NSwgMC43NTA3NjYsIDEuMjQ4MDksIDEuNTU5MDUiLCBcCi0gICAgICAgICAgIjAuMDcwNDcxLCAwLjEwNjEzMSwgMC4zMTU4NjQsIDAuNTAyMjA3LCAwLjc0OTkxNywgMS4yNDU4NywgMS41NTY0NyIsIFwKLSAgICAgICAgICAiMC4wNzE1NjUsIDAuMTA2OTg1LCAwLjMxNTg4MywgMC41MDIxMzYsIDAuNzUwOTE0LCAxLjI0NjY5LCAxLjU1NjM3IiwgXAotICAgICAgICAgICIwLjA3MjYzMiwgMC4xMDc2NSwgMC4zMTU1NDksIDAuNTAyMTQyLCAwLjc1MDkxLCAxLjI0ODAzLCAxLjU1NjYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyMDQyLCAwLjAwMjA1LCAwLjAwMjA2MiwgMC4wMDIwNjYsIDAuMDAyMDY2LCAwLjAwMjA2OSwgMC4wMDIwNjgiLCBcCi0gICAgICAgICAgIjAuMDAyMDA2LCAwLjAwMjAxNiwgMC4wMDIwMzEsIDAuMDAyMDM0LCAwLjAwMjAzNiwgMC4wMDIwMzgsIDAuMDAyMDM4IiwgXAotICAgICAgICAgICIwLjAwMjAwMiwgMC4wMDIwMTIsIDAuMDAyMDI5LCAwLjAwMjAzMiwgMC4wMDIwMzQsIDAuMDAyMDM2LCAwLjAwMjAzNiIsIFwKLSAgICAgICAgICAiMC4wMDIwMjcsIDAuMDAyMDM1LCAwLjAwMjA1MiwgMC4wMDIwNTYsIDAuMDAyMDU4LCAwLjAwMjA2LCAwLjAwMjA2IiwgXAotICAgICAgICAgICIwLjAwMjA2OSwgMC4wMDIwNzUsIDAuMDAyMDkxLCAwLjAwMjA5NSwgMC4wMDIwOTgsIDAuMDAyMDk5LCAwLjAwMjEiLCBcCi0gICAgICAgICAgIjAuMDAyMTY1LCAwLjAwMjE3MSwgMC4wMDIxODcsIDAuMDAyMTkxLCAwLjAwMjE5NSwgMC4wMDIxOTcsIDAuMDAyMTk3IiwgXAotICAgICAgICAgICIwLjAwMjI3NCwgMC4wMDIyNzgsIDAuMDAyMjkzLCAwLjAwMjI5NywgMC4wMDIzMDEsIDAuMDAyMzA0LCAwLjAwMjMwNCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzcyNiwgMC4wMDM3MzgsIDAuMDAzNzU2LCAwLjAwMzc1OSwgMC4wMDM3NjEsIDAuMDAzNzYzLCAwLjAwMzc2NCIsIFwKLSAgICAgICAgICAiMC4wMDM3MDIsIDAuMDAzNzE1LCAwLjAwMzczNSwgMC4wMDM3MzksIDAuMDAzNzQyLCAwLjAwMzc0NCwgMC4wMDM3NDUiLCBcCi0gICAgICAgICAgIjAuMDAzNzE0LCAwLjAwMzcyNSwgMC4wMDM3NDYsIDAuMDAzNzUsIDAuMDAzNzUzLCAwLjAwMzc1NSwgMC4wMDM3NTYiLCBcCi0gICAgICAgICAgIjAuMDAzNzQ4LCAwLjAwMzc1OSwgMC4wMDM3OCwgMC4wMDM3ODQsIDAuMDAzNzg4LCAwLjAwMzc5LCAwLjAwMzc5MSIsIFwKLSAgICAgICAgICAiMC4wMDM4MDgsIDAuMDAzODE2LCAwLjAwMzgzNCwgMC4wMDM4MzksIDAuMDAzODQyLCAwLjAwMzg0NCwgMC4wMDM4NDUiLCBcCi0gICAgICAgICAgIjAuMDAzOTI3LCAwLjAwMzkzNywgMC4wMDM5NDIsIDAuMDAzOTQ5LCAwLjAwMzk1MywgMC4wMDM5NTYsIDAuMDAzOTU3IiwgXAotICAgICAgICAgICIwLjAwNDA1MSwgMC4wMDQwNTEsIDAuMDA0MDY1LCAwLjAwNDA3LCAwLjAwNDA3NCwgMC4wMDQwNzYsIDAuMDA0MDc4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTgxNSwgMC4wMDE4MjMsIDAuMDAxODMzLCAwLjAwMTgzNCwgMC4wMDE4MzcsIDAuMDAxODM2LCAwLjAwMTgzNyIsIFwKLSAgICAgICAgICAiMC4wMDE3NiwgMC4wMDE3NjksIDAuMDAxNzgyLCAwLjAwMTc4NCwgMC4wMDE3ODUsIDAuMDAxNzg2LCAwLjAwMTc4NSIsIFwKLSAgICAgICAgICAiMC4wMDE3NDgsIDAuMDAxNzU4LCAwLjAwMTc3MiwgMC4wMDE3NzUsIDAuMDAxNzc3LCAwLjAwMTc3OCwgMC4wMDE3NzgiLCBcCi0gICAgICAgICAgIjAuMDAxNzcyLCAwLjAwMTc4MSwgMC4wMDE3OTcsIDAuMDAxOCwgMC4wMDE4MDMsIDAuMDAxODA0LCAwLjAwMTgwNCIsIFwKLSAgICAgICAgICAiMC4wMDE4MTYsIDAuMDAxODI0LCAwLjAwMTgzOCwgMC4wMDE4NDEsIDAuMDAxODQ0LCAwLjAwMTg0NSwgMC4wMDE4NDYiLCBcCi0gICAgICAgICAgIjAuMDAxOTEsIDAuMDAxOTE3LCAwLjAwMTkzNiwgMC4wMDE5MzksIDAuMDAxOTQsIDAuMDAxOTQyLCAwLjAwMTk0MyIsIFwKLSAgICAgICAgICAiMC4wMDIwMzYsIDAuMDAyMDM3LCAwLjAwMjA0NSwgMC4wMDIwNDgsIDAuMDAyMDUsIDAuMDAyMDUxLCAwLjAwMjA1MiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzQ2LCAwLjAwMzQ3MSwgMC4wMDM0ODksIDAuMDAzNDkzLCAwLjAwMzQ5NSwgMC4wMDM0OTYsIDAuMDAzNDk3IiwgXAotICAgICAgICAgICIwLjAwMzQ0NCwgMC4wMDM0NTcsIDAuMDAzNDc5LCAwLjAwMzQ4MywgMC4wMDM0ODYsIDAuMDAzNDg5LCAwLjAwMzQ4OSIsIFwKLSAgICAgICAgICAiMC4wMDM0OTMsIDAuMDAzNTAzLCAwLjAwMzUyNSwgMC4wMDM1MzEsIDAuMDAzNTM0LCAwLjAwMzUzNywgMC4wMDM1MzgiLCBcCi0gICAgICAgICAgIjAuMDAzNTY4LCAwLjAwMzU3NiwgMC4wMDM1OTUsIDAuMDAzNiwgMC4wMDM2MDQsIDAuMDAzNjA3LCAwLjAwMzYwOCIsIFwKLSAgICAgICAgICAiMC4wMDM2MzMsIDAuMDAzNjQxLCAwLjAwMzY1NywgMC4wMDM2NjMsIDAuMDAzNjY3LCAwLjAwMzY3LCAwLjAwMzY3MiIsIFwKLSAgICAgICAgICAiMC4wMDM3OTcsIDAuMDAzNzk1LCAwLjAwMzgwNSwgMC4wMDM4MSwgMC4wMDM4MTMsIDAuMDAzODE2LCAwLjAwMzgxNyIsIFwKLSAgICAgICAgICAiMC4wMDM5MzQsIDAuMDAzOTM0LCAwLjAwMzk0NywgMC4wMDM5NTMsIDAuMDAzOTU3LCAwLjAwMzk2LCAwLjAwMzk2MiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDIwNTIsIDAuMDAyMDYxLCAwLjAwMjA3MywgMC4wMDIwNzUsIDAuMDAyMDc4LCAwLjAwMjA3OSwgMC4wMDIwOCIsIFwKLSAgICAgICAgICAiMC4wMDIwMzcsIDAuMDAyMDQ3LCAwLjAwMjA2NCwgMC4wMDIwNjcsIDAuMDAyMDY5LCAwLjAwMjA3MSwgMC4wMDIwNzMiLCBcCi0gICAgICAgICAgIjAuMDAyMTAyLCAwLjAwMjEwOSwgMC4wMDIxMjUsIDAuMDAyMTMsIDAuMDAyMTMyLCAwLjAwMjEzNCwgMC4wMDIxMzUiLCBcCi0gICAgICAgICAgIjAuMDAyMTY4LCAwLjAwMjE3NSwgMC4wMDIxOTIsIDAuMDAyMTk2LCAwLjAwMjE5OSwgMC4wMDIyMDEsIDAuMDAyMjAyIiwgXAotICAgICAgICAgICIwLjAwMjI3LCAwLjAwMjI3NCwgMC4wMDIyODUsIDAuMDAyMjksIDAuMDAyMjkzLCAwLjAwMjI5NSwgMC4wMDIyOTYiLCBcCi0gICAgICAgICAgIjAuMDAyNDQyLCAwLjAwMjQ0NCwgMC4wMDI0NTcsIDAuMDAyNDYyLCAwLjAwMjQ2NiwgMC4wMDI0NjgsIDAuMDAyNDY5IiwgXAotICAgICAgICAgICIwLjAwMjYwOCwgMC4wMDI2MDcsIDAuMDAyNjE2LCAwLjAwMjYyLCAwLjAwMjYyNCwgMC4wMDI2MjcsIDAuMDAyNjI3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyODcxLCAwLjAwMjg3OCwgMC4wMDI4ODYsIDAuMDAyODg4LCAwLjAwMjg4OSwgMC4wMDI4OSwgMC4wMDI4OSIsIFwKLSAgICAgICAgICAiMC4wMDI4NTgsIDAuMDAyODY5LCAwLjAwMjg4MywgMC4wMDI4ODYsIDAuMDAyODg3LCAwLjAwMjg4OSwgMC4wMDI4ODkiLCBcCi0gICAgICAgICAgIjAuMDAyOTIsIDAuMDAyOTI5LCAwLjAwMjk0NCwgMC4wMDI5NDcsIDAuMDAyOTQ5LCAwLjAwMjk1MSwgMC4wMDI5NTEiLCBcCi0gICAgICAgICAgIjAuMDAyOTk4LCAwLjAwMzAwOCwgMC4wMDMwMjIsIDAuMDAzMDI3LCAwLjAwMzAyOSwgMC4wMDMwMzYsIDAuMDAzMDM3IiwgXAotICAgICAgICAgICIwLjAwMzEwMiwgMC4wMDMxMTEsIDAuMDAzMTI5LCAwLjAwMzEzNCwgMC4wMDMxMzYsIDAuMDAzMTM5LCAwLjAwMzE0IiwgXAotICAgICAgICAgICIwLjAwMzI3NiwgMC4wMDMyODIsIDAuMDAzMzA5LCAwLjAwMzMwMiwgMC4wMDMzMTYsIDAuMDAzMzA3LCAwLjAwMzMwOCIsIFwKLSAgICAgICAgICAiMC4wMDM0NDUsIDAuMDAzNDQ3LCAwLjAwMzQ2MiwgMC4wMDM0NjYsIDAuMDAzNDY4LCAwLjAwMzQ2NywgMC4wMDM0NjciKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IE9BMjJYMSAqCi0gKiAtLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKE9BMjJYMSkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjMxOTEzNTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQTApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYzMTEwNzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MzAzNTU7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjMxMTA3OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDI5NiwgMC4wMDAyOTYsIDAuMDAwMjk2LCAwLjAwMDI5NiwgMC4wMDAyOTYsIDAuMDAwMjk2LCAwLjAwMDI5NiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDMwMSwgMC4wMDAyOTgsIDAuMDAwMjk4LCAwLjAwMDI5OCwgMC4wMDAyOTcsIDAuMDAwMjk4LCAwLjAwMDI5OCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQTEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY2MzY0MTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2NjM2NDE7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjYyNTIxOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDI5NiwgMC4wMDAyOTYsIDAuMDAwMjk2LCAwLjAwMDI5NiwgMC4wMDAyOTYsIDAuMDAwMjk2LCAwLjAwMDI5NiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDMwMSwgMC4wMDAyOTgsIDAuMDAwMjk4LCAwLjAwMDI5NywgMC4wMDAyOTcsIDAuMDAwMjk3LCAwLjAwMDI5NyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQjApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYyNDMxNDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MjIzNzg7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjI0MzE0OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDY2NCwgMC4wMDA2NjQsIDAuMDAwNjY0LCAwLjAwMDY2NCwgMC4wMDA2NjQsIDAuMDAwNjY0LCAwLjAwMDY2NCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDMzNywgMC4wMDAzMzgsIDAuMDAwMzM4LCAwLjAwMDMzNywgMC4wMDAzMzgsIDAuMDAwMzM4LCAwLjAwMDMzOCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQjEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY4OTQwNTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2ODk0MDU7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjg5Mjk0OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDY2NCwgMC4wMDA2NjQsIDAuMDAwNjY0LCAwLjAwMDY2NCwgMC4wMDA2NjMsIDAuMDAwNjY0LCAwLjAwMDY2MyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDMzNywgMC4wMDAzMzcsIDAuMDAwMzM3LCAwLjAwMDMzNywgMC4wMDAzMzcsIDAuMDAwMzM3LCAwLjAwMDMzNyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjM0MTYxNzsKLSAgICBmdW5jdGlvbiA6ICIoKEEwK0ExKSAoQjArQjEpKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTAiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3NDU2NywgMC4wOTM0NTcsIDAuMTk5MjM2LCAwLjI5MjQ0MywgMC40MTY1MzYsIDAuNjY0ODAxLCAwLjgxOTkyMyIsIFwKLSAgICAgICAgICAiMC4wODE3MTIsIDAuMTAwNjEyLCAwLjIwNjM5NSwgMC4yOTk1ODksIDAuNDIzNzMzLCAwLjY3MjA0OCwgMC44MjcwOTIiLCBcCi0gICAgICAgICAgIjAuMDg5Mjc0LCAwLjEwODE4MSwgMC4yMTM5NzksIDAuMzA3MTU1LCAwLjQzMTI3NywgMC42Nzk1MjUsIDAuODM0Njc1IiwgXAotICAgICAgICAgICIwLjA5NjAwNSwgMC4xMTQ5MDcsIDAuMjIwNzE3LCAwLjMxMzg1NywgMC40MzgwMDcsIDAuNjg2MjU4LCAwLjg0MTM4MiIsIFwKLSAgICAgICAgICAiMC4xMDE2OCwgMC4xMjA1OTYsIDAuMjI2NDA0LCAwLjMxOTU1OCwgMC40NDM3MzksIDAuNjkxOTIxLCAwLjg0NzA1OSIsIFwKLSAgICAgICAgICAiMC4xMDk0MjIsIDAuMTI4NDM4LCAwLjIzNDIxNSwgMC4zMjczNjMsIDAuNDUxNTA0LCAwLjY5OTgwMiwgMC44NTQ5MTkiLCBcCi0gICAgICAgICAgIjAuMTE1MTQ3LCAwLjEzNDE4OSwgMC4yMzk5ODEsIDAuMzMzMTQ4LCAwLjQ1NzI5NywgMC43MDU1MzIsIDAuODYwNzc2Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3NDIwNiwgMC4xMTIyNjIsIDAuMzMyODE1LCAwLjUyODc0NCwgMC43ODkyOTgsIDEuMzEyODUsIDEuNjM4MTMiLCBcCi0gICAgICAgICAgIjAuMDc0MTYzLCAwLjExMjI1MSwgMC4zMzI4MDEsIDAuNTI4NzA4LCAwLjc5MDA4LCAxLjMxMzA0LCAxLjYzOTc0IiwgXAotICAgICAgICAgICIwLjA3NDMwMiwgMC4xMTIzMTgsIDAuMzMyODQ1LCAwLjUyODcwNSwgMC43OTAwNTMsIDEuMzExNTksIDEuNjM3NzciLCBcCi0gICAgICAgICAgIjAuMDc0NzI3LCAwLjExMjU2NywgMC4zMzI4MjMsIDAuNTI4NjA2LCAwLjc5MDAwMSwgMS4zMTI2NCwgMS42MzgzNCIsIFwKLSAgICAgICAgICAiMC4wNzUyOCwgMC4xMTI5MzksIDAuMzMyNTg3LCAwLjUyODM0OCwgMC43ODk5NjQsIDEuMzEyNywgMS42MzkyNyIsIFwKLSAgICAgICAgICAiMC4wNzYzOTksIDAuMTEzNjYzLCAwLjMzMjk2MSwgMC41MjgzNywgMC43ODk5MDcsIDEuMzEyNzUsIDEuNjM5NTYiLCBcCi0gICAgICAgICAgIjAuMDc3MTUsIDAuMTE0NTE0LCAwLjMzMjg4MSwgMC41Mjg1OSwgMC43ODkzNzIsIDEuMzEyNjgsIDEuNjM5NTkiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc4NSwgMC4wOTczNDUsIDAuMjAwNTcyLCAwLjI5MTIwNCwgMC40MTE5OSwgMC42NTMzNjMsIDAuODA0MjYiLCBcCi0gICAgICAgICAgIjAuMDg0Mjc4LCAwLjEwMzEyNiwgMC4yMDYzNDksIDAuMjk3MDQ2LCAwLjQxNzc4NywgMC42NTkxOTcsIDAuODA5OTg0IiwgXAotICAgICAgICAgICIwLjA5MTAxNiwgMC4xMDk4NzQsIDAuMjEzMTE4LCAwLjMwMzc1MSwgMC40MjQ1OCwgMC42NjU4OTcsIDAuODE2NzQxIiwgXAotICAgICAgICAgICIwLjA5NzA5NSwgMC4xMTU5NzksIDAuMjE5MjEsIDAuMzA5ODY1LCAwLjQzMDY0OSwgMC42NzIwMDEsIDAuODIyODQ4IiwgXAotICAgICAgICAgICIwLjEwMjQ0LCAwLjEyMTM0NCwgMC4yMjQ1OTYsIDAuMzE1MjcsIDAuNDM2MDA4LCAwLjY3NzM4OSwgMC44MjgyMTUiLCBcCi0gICAgICAgICAgIjAuMTA5NzQ4LCAwLjEyODczNywgMC4yMzIwNDgsIDAuMzIyNjk4LCAwLjQ0MzQ1OCwgMC42ODQ4NjEsIDAuODM1NjY5IiwgXAotICAgICAgICAgICIwLjExNTIyNSwgMC4xMzQzMDgsIDAuMjM3NjczLCAwLjMyODMwNywgMC40NDkwNywgMC42OTA0MzksIDAuODQxMjk1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3NDA2NiwgMC4xMDk2NzEsIDAuMzE3NzA1LCAwLjUwMjc5NSwgMC43NTE4NDEsIDEuMjQ4ODYsIDEuNTU5NSIsIFwKLSAgICAgICAgICAiMC4wNzQxMDEsIDAuMTA5NjYzLCAwLjMxNzI5LCAwLjUwMjYwNSwgMC43NTE4MDcsIDEuMjQ5MjEsIDEuNTU5NjEiLCBcCi0gICAgICAgICAgIjAuMDc0MjA0LCAwLjEwOTcyMSwgMC4zMTc3MiwgMC41MDM0NSwgMC43NTE3NjIsIDEuMjQ4OTYsIDEuNTU5NjIiLCBcCi0gICAgICAgICAgIjAuMDc0NjIyLCAwLjEwOTk5OCwgMC4zMTc2OTcsIDAuNTAzNDgsIDAuNzUxODE1LCAxLjI0ODk1LCAxLjU1OTg2IiwgXAotICAgICAgICAgICIwLjA3NTI0NywgMC4xMTA0NzksIDAuMzE3MzU5LCAwLjUwMzY0MSwgMC43NTE4NTgsIDEuMjQ5MSwgMS41NjAwOSIsIFwKLSAgICAgICAgICAiMC4wNzYzNjEsIDAuMTExMTg5LCAwLjMxNzY0NCwgMC41MDM1NDYsIDAuNzUxNzkzLCAxLjI0OTAxLCAxLjU1OTc0IiwgXAotICAgICAgICAgICIwLjA3NzIyNSwgMC4xMTIwMjUsIDAuMzE4Mzc5LCAwLjUwMzY3MiwgMC43NTE4NzMsIDEuMjQ4NzcsIDEuNTU5OTYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTEiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3MTExNiwgMC4wODk5NjgsIDAuMTk1NTk1LCAwLjI4ODc5NiwgMC40MTI4NzksIDAuNjYxMTQxLCAwLjgxNjI0IiwgXAotICAgICAgICAgICIwLjA3ODEwMywgMC4wOTY5NDIsIDAuMjAyNjMxLCAwLjI5NTc3LCAwLjQxOTg4NCwgMC42NjgwOTUsIDAuODIzMjMzIiwgXAotICAgICAgICAgICIwLjA4NTQ4NCwgMC4xMDQzMywgMC4yMTAwMTcsIDAuMzAzMTc3LCAwLjQyNzI1OSwgMC42NzU0NzIsIDAuODMwNTk2IiwgXAotICAgICAgICAgICIwLjA5MTgzOSwgMC4xMTA3MDMsIDAuMjE2Mzk4LCAwLjMwOTU4OCwgMC40MzM2MzEsIDAuNjgxODc1LCAwLjgzNjk3MyIsIFwKLSAgICAgICAgICAiMC4wOTcwOTQsIDAuMTE2MDIxLCAwLjIyMTY5OCwgMC4zMTQ4MzgsIDAuNDM4OTQ0LCAwLjY4NzE3NywgMC44NDIyNzkiLCBcCi0gICAgICAgICAgIjAuMTA0MDQzLCAwLjEyMzAxNCwgMC4yMjg3MzIsIDAuMzIxOTQ0LCAwLjQ0NTk4NCwgMC42OTQxNDUsIDAuODQ5MzQ0IiwgXAotICAgICAgICAgICIwLjEwOTQxNywgMC4xMjg0NjIsIDAuMjM0MjE2LCAwLjMyNzMzMywgMC40NTE1MDYsIDAuNjk5NzQ3LCAwLjg1NDc4MiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzM4MDUsIDAuMTExOTQzLCAwLjMzMTk3NywgMC41Mjg1NDUsIDAuNzg5NjYxLCAxLjMxMjg5LCAxLjYzNzgzIiwgXAotICAgICAgICAgICIwLjA3MzgyNiwgMC4xMTE5MzksIDAuMzMyNjM5LCAwLjUyODUwOCwgMC43ODk5MDYsIDEuMzExNzgsIDEuNjM3OSIsIFwKLSAgICAgICAgICAiMC4wNzM5NTksIDAuMTEyMDIzLCAwLjMzMjU4NywgMC41Mjg1MTUsIDAuNzg5MjA2LCAxLjMxMjU0LCAxLjYzODE0IiwgXAotICAgICAgICAgICIwLjA3NDUwMiwgMC4xMTIzNzQsIDAuMzMyNjUxLCAwLjUyODM5OSwgMC43ODkwNDMsIDEuMzExMDQsIDEuNjM3OSIsIFwKLSAgICAgICAgICAiMC4wNzUxMzMsIDAuMTEyODU0LCAwLjMzMjQ0MSwgMC41Mjc5ODEsIDAuNzg5ODQ0LCAxLjMxMDg2LCAxLjYzOTY2IiwgXAotICAgICAgICAgICIwLjA3NjM5NCwgMC4xMTM2MSwgMC4zMzI2MzIsIDAuNTI3ODIxLCAwLjc4OTA3MywgMS4zMTI2MiwgMS42MzczOSIsIFwKLSAgICAgICAgICAiMC4wNzczMTYsIDAuMTE0Mzg1LCAwLjMzMjYyOSwgMC41Mjg1NTUsIDAuNzg5OTU1LCAxLjMxMjY5LCAxLjYzOTU2Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3NjEwOSwgMC4wOTQ5NTUsIDAuMTk4MTg4LCAwLjI4ODg1LCAwLjQwOTU3OCwgMC42NTEwMjMsIDAuODAxODI2IiwgXAotICAgICAgICAgICIwLjA4MzQwOCwgMC4xMDIyNjYsIDAuMjA1NDkyLCAwLjI5NjE0LCAwLjQxNjkzNCwgMC42NTgzMzMsIDAuODA5MTMyIiwgXAotICAgICAgICAgICIwLjA5MjcxNSwgMC4xMTE1NjUsIDAuMjE0Nzg5LCAwLjMwNTQ0MywgMC40MjYyMzYsIDAuNjY3NTk2LCAwLjgxODQzNiIsIFwKLSAgICAgICAgICAiMC4xMDEyNywgMC4xMjAxMDgsIDAuMjIzMzMxLCAwLjMxMzk2MywgMC40MzQ3MTcsIDAuNjc2MTAyLCAwLjgyNjk0NiIsIFwKLSAgICAgICAgICAiMC4xMDg4NDMsIDAuMTI3NzQxLCAwLjIzMDk1NCwgMC4zMjE1NjksIDAuNDQyMzIsIDAuNjgzNzA3LCAwLjgzNDU0NyIsIFwKLSAgICAgICAgICAiMC4xMTg2MzksIDAuMTM3NjU5LCAwLjI0MDkxOSwgMC4zMzE1NzQsIDAuNDUyMzAyLCAwLjY5MzY3NSwgMC44NDQ2MTkiLCBcCi0gICAgICAgICAgIjAuMTI2MTA2LCAwLjE0NTE1LCAwLjI0ODU2NCwgMC4zMzkxNzQsIDAuNDU5OTQsIDAuNzAxNDI4LCAwLjg1MjE3NyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzQxMjIsIDAuMTA5NjY5LCAwLjMxNzcxMSwgMC41MDM1NzQsIDAuNzUxODQxLCAxLjI0OTI0LCAxLjU1OTk1IiwgXAotICAgICAgICAgICIwLjA3NDEwNywgMC4xMDk2NjgsIDAuMzE3NjI1LCAwLjUwMzQzMiwgMC43NTE4MDYsIDEuMjQ4ODMsIDEuNTYwMDMiLCBcCi0gICAgICAgICAgIjAuMDc0MjI0LCAwLjEwOTczNywgMC4zMTczMTcsIDAuNTAzNDU5LCAwLjc1MTg1MiwgMS4yNDksIDEuNTU3OSIsIFwKLSAgICAgICAgICAiMC4wNzQ3NDMsIDAuMTA5OTk3LCAwLjMxNzc5MywgMC41MDM0NzcsIDAuNzUxODIsIDEuMjQ4OTYsIDEuNTU5NjEiLCBcCi0gICAgICAgICAgIjAuMDc1NDY0LCAwLjExMDU3NCwgMC4zMTczMzcsIDAuNTAzNTI4LCAwLjc1MTg3MiwgMS4yNDg5NSwgMS41NTk2MyIsIFwKLSAgICAgICAgICAiMC4wNzY3ODMsIDAuMTExNTAxLCAwLjMxODIxNSwgMC41MDM4MTgsIDAuNzUxOTIyLCAxLjI0ODgsIDEuNTU5NzEiLCBcCi0gICAgICAgICAgIjAuMDc3NjA3LCAwLjExMjI2LCAwLjMxODMzOSwgMC41MDM3MjgsIDAuNzUxODk3LCAxLjI0NzQ5LCAxLjU1OTY2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjgxMTUsIDAuMDg3MDEsIDAuMTkyNzkzLCAwLjI4NTk4OSwgMC40MTAxOTYsIDAuNjU4MzY3LCAwLjgxMzUwMSIsIFwKLSAgICAgICAgICAiMC4wNzU2ODMsIDAuMDk0NTc3LCAwLjIwMDM3MiwgMC4yOTM1NjcsIDAuNDE3NzI4LCAwLjY2NTk4OSwgMC44MjEwNzQiLCBcCi0gICAgICAgICAgIjAuMDg1MTMyLCAwLjEwNDAyMywgMC4yMDk4MzIsIDAuMzAyOTc1LCAwLjQyNzE4NSwgMC42NzUzNTgsIDAuODMwNTEzIiwgXAotICAgICAgICAgICIwLjA5MzI1OCwgMC4xMTIxNTcsIDAuMjE3OTI5LCAwLjMxMTExOSwgMC40MzUyMzksIDAuNjgzNDc1LCAwLjgzODYxMSIsIFwKLSAgICAgICAgICAiMC4xMDAxNDQsIDAuMTE5MDM5LCAwLjIyNDg1MywgMC4zMTc5ODQsIDAuNDQyMTQyLCAwLjY5MDM0NSwgMC44NDU0NyIsIFwKLSAgICAgICAgICAiMC4xMDkzNjMsIDAuMTI4MzQ1LCAwLjIzNDI2MSwgMC4zMjczODUsIDAuNDUxNTE0LCAwLjY5OTc3NywgMC44NTQ4ODMiLCBcCi0gICAgICAgICAgIjAuMTE2MzM4LCAwLjEzNTM0NywgMC4yNDEyMzgsIDAuMzM0NDEzLCAwLjQ1ODU1LCAwLjcwNjc0NCwgMC44NjE5NTkiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc0MTg0LCAwLjExMjIxNCwgMC4zMzI4MDUsIDAuNTI4NzMyLCAwLjc4ODg3LCAxLjMxMjYsIDEuNjM4MDkiLCBcCi0gICAgICAgICAgIjAuMDc0MTQzLCAwLjExMjIzNiwgMC4zMzI3OTgsIDAuNTI4Njk1LCAwLjc5MDA3MSwgMS4zMTE0OSwgMS42Mzk2MyIsIFwKLSAgICAgICAgICAiMC4wNzQ0MzQsIDAuMTEyNDA0LCAwLjMzMjg1NSwgMC41Mjg0NjQsIDAuNzkwMDg2LCAxLjMxMTcxLCAxLjYzOTI3IiwgXAotICAgICAgICAgICIwLjA3NDg5NywgMC4xMTI2MDQsIDAuMzMyNjQyLCAwLjUyODYzMSwgMC43ODk5ODUsIDEuMzEyMzYsIDEuNjM4MjEiLCBcCi0gICAgICAgICAgIjAuMDc1Mzc4LCAwLjExMzAzMiwgMC4zMzI5MTUsIDAuNTI4NDMsIDAuNzg5OTY4LCAxLjMxMjY3LCAxLjYzOTIzIiwgXAotICAgICAgICAgICIwLjA3NjQ0MywgMC4xMTM1OTMsIDAuMzMyODY5LCAwLjUyODY2NiwgMC43ODk5MTMsIDEuMzEyNzYsIDEuNjM5NTgiLCBcCi0gICAgICAgICAgIjAuMDc2OTk1LCAwLjExNDI2OCwgMC4zMzI4NjYsIDAuNTI4NzMsIDAuNzg5OTM1LCAxLjMxMjUzLCAxLjYzOTUyIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2OTQzMiwgMC4wODgwMDMsIDAuMTkwNzM5LCAwLjI4MTIwOCwgMC40MDE5NzksIDAuNjQzNjksIDAuNzk0MjQzIiwgXAotICAgICAgICAgICIwLjA3NTI2NCwgMC4wOTM4MzYsIDAuMTk2NTg0LCAwLjI4NzA0OSwgMC40MDc3MjMsIDAuNjQ5NTQ5LCAwLjgwMDI1MiIsIFwKLSAgICAgICAgICAiMC4wODE1OTQsIDAuMTAwMTkxLCAwLjIwMjkxNSwgMC4yOTM0MzMsIDAuNDE0MDcxLCAwLjY1NTQ2NiwgMC44MDYyNDgiLCBcCi0gICAgICAgICAgIjAuMDg2OTQ0LCAwLjEwNTU5LCAwLjIwODM0NCwgMC4yOTg4NDYsIDAuNDE5NDc0LCAwLjY2MTMyMywgMC44MTIxMTIiLCBcCi0gICAgICAgICAgIjAuMDkxNDI2LCAwLjExMDE0OCwgMC4yMTI5MTIsIDAuMzAzMzk3LCAwLjQyNDE4NiwgMC42NjU1MjMsIDAuODE2NzI4IiwgXAotICAgICAgICAgICIwLjA5NzUxNiwgMC4xMTYzNiwgMC4yMTkyMjksIDAuMzA5NjkyLCAwLjQzMDMyMSwgMC42NzE3MzMsIDAuODIyNjk4IiwgXAotICAgICAgICAgICIwLjEwMjA2NSwgMC4xMjEwMTgsIDAuMjIzOTIxLCAwLjMxNDQxNCwgMC40MzUwNDgsIDAuNjc2NDQsIDAuODI3Mjg3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3MjUzMSwgMC4xMDgyNTUsIDAuMzE2NjkzLCAwLjUwMjUzOCwgMC43NDk4NTgsIDEuMjQ2ODMsIDEuNTU2NzkiLCBcCi0gICAgICAgICAgIjAuMDcyNTM3LCAwLjEwODI0NCwgMC4zMTY2OTEsIDAuNTAyNTg0LCAwLjc1MTAzMywgMS4yNDY0NCwgMS41NTkyOCIsIFwKLSAgICAgICAgICAiMC4wNzI4NDIsIDAuMTA4NDM2LCAwLjMxNjMyNSwgMC41MDIzOTcsIDAuNzUxMjUsIDEuMjQ4NDQsIDEuNTU2MSIsIFwKLSAgICAgICAgICAiMC4wNzM0NjcsIDAuMTA4OTI0LCAwLjMxNjQzMywgMC41MDI3NjksIDAuNzUxMjI1LCAxLjI0NjQ0LCAxLjU1NjQ3IiwgXAotICAgICAgICAgICIwLjA3NDIyOCwgMC4xMDk0NzYsIDAuMzE3MDA2LCAwLjUwMjc5NSwgMC43NDk3NDIsIDEuMjQ3MTIsIDEuNTU3MjQiLCBcCi0gICAgICAgICAgIjAuMDc1NDIzLCAwLjExMDM0NywgMC4zMTY2NiwgMC41MDI4NTcsIDAuNzUxMjMzLCAxLjI0NTgxLCAxLjU1NzUzIiwgXAotICAgICAgICAgICIwLjA3NjUwNSwgMC4xMTEzMTUsIDAuMzE3MTUxLCAwLjUwMjU4MSwgMC43NTEzNDMsIDEuMjQ4NzEsIDEuNTU2NDUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjEiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2NDAxMiwgMC4wODI4NDgsIDAuMTg4NTAxLCAwLjI4MTY0NCwgMC40MDU3NTksIDAuNjU0MDg3LCAwLjgwOTA2OCIsIFwKLSAgICAgICAgICAiMC4wNzE0NjcsIDAuMDkwMywgMC4xOTU5NjMsIDAuMjg5MTEsIDAuNDEzMTkxLCAwLjY2MTM5MiwgMC44MTY1MTUiLCBcCi0gICAgICAgICAgIjAuMDgwNjQ1LCAwLjA5OTQ4OCwgMC4yMDUxNTcsIDAuMjk4MzExLCAwLjQyMjM4NSwgMC42NzA1OSwgMC44MjU2ODgiLCBcCi0gICAgICAgICAgIjAuMDg3OTQ1LCAwLjEwNjgwMSwgMC4yMTI0NywgMC4zMDU2MjgsIDAuNDI5NjcxLCAwLjY3Nzg3NiwgMC44MzI5NzgiLCBcCi0gICAgICAgICAgIjAuMDkzODgyLCAwLjExMjgxMywgMC4yMTg0MTYsIDAuMzExNTQ2LCAwLjQzNTY0NywgMC42ODM4MzMsIDAuODM5MTQ2IiwgXAotICAgICAgICAgICIwLjEwMTk0OSwgMC4xMjA5LCAwLjIyNjU1NCwgMC4zMTk3MTEsIDAuNDQzNzUzLCAwLjY5MjEwNywgMC44NDcxMjciLCBcCi0gICAgICAgICAgIjAuMTA4MzY2LCAwLjEyNjg4NSwgMC4yMzMwNjIsIDAuMzI2MTUxLCAwLjQ1MDM2NSwgMC42OTg0OCwgMC44NTM1NzgiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDczNzEzLCAwLjExMTg2OSwgMC4zMzI1MywgMC41Mjg0NjksIDAuNzg5ODcxLCAxLjMxMDkzLCAxLjYzNzc5IiwgXAotICAgICAgICAgICIwLjA3MzY5LCAwLjExMTg3OCwgMC4zMzI1MjgsIDAuNTI4NDY3LCAwLjc4OTEzMiwgMS4zMTI4LCAxLjYzODA2IiwgXAotICAgICAgICAgICIwLjA3Mzk2MSwgMC4xMTIwMTIsIDAuMzMyNTQ2LCAwLjUyODQyMywgMC43ODkxNjEsIDEuMzExNDcsIDEuNjM4MSIsIFwKLSAgICAgICAgICAiMC4wNzQ1NjIsIDAuMTEyNCwgMC4zMzI2MjYsIDAuNTI4NDE0LCAwLjc4OTA0MywgMS4zMTE1NiwgMS42Mzc5MSIsIFwKLSAgICAgICAgICAiMC4wNzUyMDMsIDAuMTEyODYzLCAwLjMzMjYxOSwgMC41Mjg0NiwgMC43ODk4MDEsIDEuMzExNzEsIDEuNjM3MjMiLCBcCi0gICAgICAgICAgIjAuMDc2Mzc3LCAwLjExMzQ2NSwgMC4zMzI4ODEsIDAuNTI4NjMzLCAwLjc4OTk4OSwgMS4zMTA5MSwgMS42MzgyMSIsIFwKLSAgICAgICAgICAiMC4wNzcwMzEsIDAuMTE0NDAxLCAwLjMzMjY3OCwgMC41Mjg1NzcsIDAuNzkwMDAyLCAxLjMxMjY2LCAxLjYzOTU0Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2NjUxOSwgMC4wODUxMDcsIDAuMTg3ODQ3LCAwLjI3ODM1NiwgMC4zOTkwMDUsIDAuNjQwMzU2LCAwLjc5MTQzNCIsIFwKLSAgICAgICAgICAiMC4wNzM4NjcsIDAuMDkyNDU2LCAwLjE5NTIwNCwgMC4yODU2ODgsIDAuNDA2MzU2LCAwLjY0Nzk1MywgMC43OTg4MjMiLCBcCi0gICAgICAgICAgIjAuMDgyNywgMC4xMDEzMDEsIDAuMjA0MDU4LCAwLjI5NDUyMywgMC40MTUxODksIDAuNjU3MDI4LCAwLjgwNzcyIiwgXAotICAgICAgICAgICIwLjA4OTk0NiwgMC4xMDg1ODEsIDAuMjExMzI2LCAwLjMwMTgzMiwgMC40MjI0ODgsIDAuNjYzOTI0LCAwLjgxNDg5NiIsIFwKLSAgICAgICAgICAiMC4wOTU5NDYsIDAuMTE0NjkyLCAwLjIxNzQ1NSwgMC4zMDc5MjMsIDAuNDI4NjM0LCAwLjY2OTk3OSwgMC44MjEwMTIiLCBcCi0gICAgICAgICAgIjAuMTA0MTY0LCAwLjEyMjg5NSwgMC4yMjU4NDgsIDAuMzE2MjkyLCAwLjQzNjk1NSwgMC42Nzg0NzQsIDAuODI5MTAyIiwgXAotICAgICAgICAgICIwLjExMDI2NiwgMC4xMjkwMzMsIDAuMjMyMDUzLCAwLjMyMjQ5MSwgMC40NDMyMTIsIDAuNjg0NDYsIDAuODM1NDc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3MjUxNiwgMC4xMDgyMywgMC4zMTYyNzEsIDAuNTAyMTI4LCAwLjc1MTI1NiwgMS4yNDU5NCwgMS41NTY1OCIsIFwKLSAgICAgICAgICAiMC4wNzI1MzQsIDAuMTA4MjQzLCAwLjMxNjY5MSwgMC41MDI1NjQsIDAuNzUxMjE0LCAxLjI0NzQ0LCAxLjU1NjUxIiwgXAotICAgICAgICAgICIwLjA3Mjg5NSwgMC4xMDg0NzUsIDAuMzE2NzM4LCAwLjUwMjU4MywgMC43NTEyMTksIDEuMjQ2NDMsIDEuNTU5NTIiLCBcCi0gICAgICAgICAgIjAuMDczNzYyLCAwLjEwOTA4LCAwLjMxNjMyMywgMC41MDI3NjksIDAuNzUxMjkxLCAxLjI0NzA2LCAxLjU1Njk2IiwgXAotICAgICAgICAgICIwLjA3NDU0MSwgMC4xMDk3MiwgMC4zMTcwMjcsIDAuNTAyNjksIDAuNzUxMjgxLCAxLjI0ODQzLCAxLjU1NjQ3IiwgXAotICAgICAgICAgICIwLjA3NjA4NiwgMC4xMTA2MjMsIDAuMzE3Mzc4LCAwLjUwMjc5OSwgMC43NTEzMjcsIDEuMjQ2MTcsIDEuNTU5MjgiLCBcCi0gICAgICAgICAgIjAuMDc3MDMyLCAwLjExMTU0MSwgMC4zMTcyMjQsIDAuNTAyNzU5LCAwLjc1MDMwOCwgMS4yNDgyMSwgMS41NTY1NCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDIyMjUsIDAuMDAyMjM0LCAwLjAwMjI0OSwgMC4wMDIyNTEsIDAuMDAyMjUzLCAwLjAwMjI1NSwgMC4wMDIyNTUiLCBcCi0gICAgICAgICAgIjAuMDAyMTk0LCAwLjAwMjIwNCwgMC4wMDIyMiwgMC4wMDIyMjQsIDAuMDAyMjI2LCAwLjAwMjIyOSwgMC4wMDIyMjkiLCBcCi0gICAgICAgICAgIjAuMDAyMTg1LCAwLjAwMjE5NSwgMC4wMDIyMTIsIDAuMDAyMjE2LCAwLjAwMjIxOCwgMC4wMDIyMiwgMC4wMDIyMjEiLCBcCi0gICAgICAgICAgIjAuMDAyMTk1LCAwLjAwMjIwMywgMC4wMDIyMiwgMC4wMDIyMjQsIDAuMDAyMjI4LCAwLjAwMjIyOSwgMC4wMDIyMyIsIFwKLSAgICAgICAgICAiMC4wMDIyMjcsIDAuMDAyMjMzLCAwLjAwMjI0OCwgMC4wMDIyNTMsIDAuMDAyMjU1LCAwLjAwMjI1NywgMC4wMDIyNTgiLCBcCi0gICAgICAgICAgIjAuMDAyMzAxLCAwLjAwMjMwMywgMC4wMDIzMTMsIDAuMDAyMzE3LCAwLjAwMjMyLCAwLjAwMjMyMSwgMC4wMDIzMjEiLCBcCi0gICAgICAgICAgIjAuMDAyMzk5LCAwLjAwMjM5NiwgMC4wMDI0MDEsIDAuMDAyNDA0LCAwLjAwMjQwNiwgMC4wMDI0MDgsIDAuMDAyNDA3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0NjI3LCAwLjAwNDYzNywgMC4wMDQ2NTMsIDAuMDA0NjU2LCAwLjAwNDY1OCwgMC4wMDQ2NiwgMC4wMDQ2NiIsIFwKLSAgICAgICAgICAiMC4wMDQ2MDMsIDAuMDA0NjE0LCAwLjAwNDYzMywgMC4wMDQ2MzYsIDAuMDA0NjM5LCAwLjAwNDY0MSwgMC4wMDQ2NDIiLCBcCi0gICAgICAgICAgIjAuMDA0NjA5LCAwLjAwNDYxOSwgMC4wMDQ2MzgsIDAuMDA0NjQzLCAwLjAwNDY0NiwgMC4wMDQ2NDgsIDAuMDA0NjQ5IiwgXAotICAgICAgICAgICIwLjAwNDY0MywgMC4wMDQ2NTIsIDAuMDA0NjY5LCAwLjAwNDY3NCwgMC4wMDQ2NzYsIDAuMDA0NjgxLCAwLjAwNDY4MiIsIFwKLSAgICAgICAgICAiMC4wMDQ2OTYsIDAuMDA0NzAzLCAwLjAwNDcyLCAwLjAwNDcyNSwgMC4wMDQ3MjgsIDAuMDA0NzMsIDAuMDA0NzMxIiwgXAotICAgICAgICAgICIwLjAwNDgwOCwgMC4wMDQ4MDksIDAuMDA0ODI1LCAwLjAwNDgzLCAwLjAwNDgzMywgMC4wMDQ4MzYsIDAuMDA0ODM3IiwgXAotICAgICAgICAgICIwLjAwNDk0MiwgMC4wMDQ5MzcsIDAuMDA0OTQxLCAwLjAwNDk0NiwgMC4wMDQ5NDgsIDAuMDA0OTUxLCAwLjAwNDk1MSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkExIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDIwMjEsIDAuMDAyMDMsIDAuMDAyMDQyLCAwLjAwMjA0OSwgMC4wMDIwNDcsIDAuMDAyMDQ4LCAwLjAwMjA1IiwgXAotICAgICAgICAgICIwLjAwMTk3NCwgMC4wMDE5ODMsIDAuMDAxOTk4LCAwLjAwMjAwMSwgMC4wMDIwMDIsIDAuMDAyMDA0LCAwLjAwMjAwNCIsIFwKLSAgICAgICAgICAiMC4wMDE5NTMsIDAuMDAxOTYzLCAwLjAwMTk3OCwgMC4wMDE5ODEsIDAuMDAxOTg0LCAwLjAwMTk4NSwgMC4wMDE5ODUiLCBcCi0gICAgICAgICAgIjAuMDAxOTU4LCAwLjAwMTk2OCwgMC4wMDE5ODMsIDAuMDAxOTg4LCAwLjAwMTk5LCAwLjAwMTk5MiwgMC4wMDE5OTIiLCBcCi0gICAgICAgICAgIjAuMDAxOTg2LCAwLjAwMTk5NSwgMC4wMDIwMTIsIDAuMDAyMDE1LCAwLjAwMjAxOSwgMC4wMDIwMiwgMC4wMDIwMiIsIFwKLSAgICAgICAgICAiMC4wMDIwNjMsIDAuMDAyMDY2LCAwLjAwMjA3OSwgMC4wMDIwODMsIDAuMDAyMDg2LCAwLjAwMjA4NywgMC4wMDIwODciLCBcCi0gICAgICAgICAgIjAuMDAyMTM2LCAwLjAwMjE0MSwgMC4wMDIxNTcsIDAuMDAyMTYyLCAwLjAwMjE2NSwgMC4wMDIxNjgsIDAuMDAyMTY4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0MzYxLCAwLjAwNDM3LCAwLjAwNDM4NSwgMC4wMDQzODgsIDAuMDA0MzksIDAuMDA0MzkyLCAwLjAwNDM5MiIsIFwKLSAgICAgICAgICAiMC4wMDQzNDEsIDAuMDA0MzUzLCAwLjAwNDM3MiwgMC4wMDQzNzcsIDAuMDA0MzgsIDAuMDA0MzgyLCAwLjAwNDM4MyIsIFwKLSAgICAgICAgICAiMC4wMDQzODIsIDAuMDA0MzkxLCAwLjAwNDQxLCAwLjAwNDQxNiwgMC4wMDQ0MTksIDAuMDA0NDIyLCAwLjAwNDQyMiIsIFwKLSAgICAgICAgICAiMC4wMDQ0NTksIDAuMDA0NDYyLCAwLjAwNDQ3NywgMC4wMDQ0ODEsIDAuMDA0NDg0LCAwLjAwNDQ4NywgMC4wMDQ0ODgiLCBcCi0gICAgICAgICAgIjAuMDA0NTIxLCAwLjAwNDUyMywgMC4wMDQ1MzcsIDAuMDA0NTQ3LCAwLjAwNDU1LCAwLjAwNDU1MywgMC4wMDQ1NTQiLCBcCi0gICAgICAgICAgIjAuMDA0Njg0LCAwLjAwNDY3NiwgMC4wMDQ2NzcsIDAuMDA0NjgsIDAuMDA0NjgzLCAwLjAwNDY4NSwgMC4wMDQ2ODYiLCBcCi0gICAgICAgICAgIjAuMDA0ODAzLCAwLjAwNDc5OCwgMC4wMDQ4MDMsIDAuMDA0ODA3LCAwLjAwNDgxMSwgMC4wMDQ4MTQsIDAuMDA0ODE1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjIyNCwgMC4wMDIyMzQsIDAuMDAyMjQ5LCAwLjAwMjI1MiwgMC4wMDIyNTQsIDAuMDAyMjU2LCAwLjAwMjI1NyIsIFwKLSAgICAgICAgICAiMC4wMDIyMDcsIDAuMDAyMjE4LCAwLjAwMjIzNSwgMC4wMDIyMzksIDAuMDAyMjQyLCAwLjAwMjI0NCwgMC4wMDIyNDQiLCBcCi0gICAgICAgICAgIjAuMDAyMjQ5LCAwLjAwMjI1NiwgMC4wMDIyNzIsIDAuMDAyMjc2LCAwLjAwMjI3OSwgMC4wMDIyODEsIDAuMDAyMjgxIiwgXAotICAgICAgICAgICIwLjAwMjMxMywgMC4wMDIzMTgsIDAuMDAyMzMzLCAwLjAwMjMzOCwgMC4wMDIzNDEsIDAuMDAyMzQzLCAwLjAwMjM0NCIsIFwKLSAgICAgICAgICAiMC4wMDIzOTQsIDAuMDAyMzk2LCAwLjAwMjQxLCAwLjAwMjQxNSwgMC4wMDI0MTgsIDAuMDAyNDIxLCAwLjAwMjQyMiIsIFwKLSAgICAgICAgICAiMC4wMDI1NDgsIDAuMDAyNTQ4LCAwLjAwMjU2MywgMC4wMDI1NjgsIDAuMDAyNTczLCAwLjAwMjU3NSwgMC4wMDI1NzciLCBcCi0gICAgICAgICAgIjAuMDAyNjk5LCAwLjAwMjY5NiwgMC4wMDI3MDQsIDAuMDAyNzA5LCAwLjAwMjcxMywgMC4wMDI3MTcsIDAuMDAyNzE3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzNDEsIDAuMDAzNDE0LCAwLjAwMzQxNywgMC4wMDM0MTcsIDAuMDAzNDE3LCAwLjAwMzQxOCwgMC4wMDM0MTgiLCBcCi0gICAgICAgICAgIjAuMDAzMzgyLCAwLjAwMzM4NywgMC4wMDMzOTIsIDAuMDAzMzkzLCAwLjAwMzM5MywgMC4wMDMzOTQsIDAuMDAzMzk0IiwgXAotICAgICAgICAgICIwLjAwMzM5NCwgMC4wMDMzOTksIDAuMDAzNDAzLCAwLjAwMzQwNCwgMC4wMDM0MDQsIDAuMDAzNDA1LCAwLjAwMzQwNSIsIFwKLSAgICAgICAgICAiMC4wMDM0MjksIDAuMDAzNDMzLCAwLjAwMzQzOSwgMC4wMDM0NCwgMC4wMDM0NDEsIDAuMDAzNDQxLCAwLjAwMzQ0MSIsIFwKLSAgICAgICAgICAiMC4wMDM0OTQsIDAuMDAzNDk0LCAwLjAwMzQ5NSwgMC4wMDM0OTUsIDAuMDAzNDk1LCAwLjAwMzQ5NSwgMC4wMDM0OTUiLCBcCi0gICAgICAgICAgIjAuMDAzNiwgMC4wMDM2MDIsIDAuMDAzNjA1LCAwLjAwMzYwNSwgMC4wMDM2MDYsIDAuMDAzNjA2LCAwLjAwMzYwNiIsIFwKLSAgICAgICAgICAiMC4wMDM3MjUsIDAuMDAzNzIzLCAwLjAwMzcyMywgMC4wMDM3MjMsIDAuMDAzNzIzLCAwLjAwMzcyMywgMC4wMDM3MjMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxOTM4LCAwLjAwMTk0OCwgMC4wMDE5NjEsIDAuMDAxOTYzLCAwLjAwMTk2NiwgMC4wMDE5NjUsIDAuMDAxOTY2IiwgXAotICAgICAgICAgICIwLjAwMTkxOSwgMC4wMDE5MjksIDAuMDAxOTQ3LCAwLjAwMTk1MSwgMC4wMDE5NTEsIDAuMDAxOTUzLCAwLjAwMTk1MiIsIFwKLSAgICAgICAgICAiMC4wMDE5NDMsIDAuMDAxOTUzLCAwLjAwMTk3MSwgMC4wMDE5NzQsIDAuMDAxOTc3LCAwLjAwMTk3OSwgMC4wMDE5ODEiLCBcCi0gICAgICAgICAgIjAuMDAyMDA5LCAwLjAwMjAxNiwgMC4wMDIwMzEsIDAuMDAyMDM2LCAwLjAwMjAzOCwgMC4wMDIwNDEsIDAuMDAyMDQxIiwgXAotICAgICAgICAgICIwLjAwMjA5NywgMC4wMDIwOTgsIDAuMDAyMTEsIDAuMDAyMTEyLCAwLjAwMjExNSwgMC4wMDIxMTgsIDAuMDAyMTE4IiwgXAotICAgICAgICAgICIwLjAwMjI1LCAwLjAwMjIzNSwgMC4wMDIyNDksIDAuMDAyMjQ0LCAwLjAwMjI1NSwgMC4wMDIyNTYsIDAuMDAyMjQ5IiwgXAotICAgICAgICAgICIwLjAwMjM3OSwgMC4wMDIzNywgMC4wMDIzODQsIDAuMDAyMzg3LCAwLjAwMjM5MSwgMC4wMDIzOTQsIDAuMDAyMzk0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzMTQsIDAuMDAzMTQ2LCAwLjAwMzE1NSwgMC4wMDMxNTYsIDAuMDAzMTU3LCAwLjAwMzE1OCwgMC4wMDMxNTgiLCBcCi0gICAgICAgICAgIjAuMDAzMTM0LCAwLjAwMzE0MSwgMC4wMDMxNTMsIDAuMDAzMTU1LCAwLjAwMzE1NywgMC4wMDMxNTgsIDAuMDAzMTU4IiwgXAotICAgICAgICAgICIwLjAwMzE3NCwgMC4wMDMxOCwgMC4wMDMxOSwgMC4wMDMxOTMsIDAuMDAzMTk0LCAwLjAwMzE5NSwgMC4wMDMxOTYiLCBcCi0gICAgICAgICAgIjAuMDAzMjQ3LCAwLjAwMzI0NywgMC4wMDMyNTUsIDAuMDAzMjU3LCAwLjAwMzI1OCwgMC4wMDMyNTksIDAuMDAzMjU5IiwgXAotICAgICAgICAgICIwLjAwMzMyNCwgMC4wMDMzMjUsIDAuMDAzMzMyLCAwLjAwMzMzNCwgMC4wMDMzMzUsIDAuMDAzMzM2LCAwLjAwMzMzNyIsIFwKLSAgICAgICAgICAiMC4wMDM0OSwgMC4wMDM0NjcsIDAuMDAzNDgsIDAuMDAzNDY5LCAwLjAwMzQ2OSwgMC4wMDM0NzEsIDAuMDAzNDcxIiwgXAotICAgICAgICAgICIwLjAwMzY0NCwgMC4wMDM2MSwgMC4wMDM2MDQsIDAuMDAzNjA1LCAwLjAwMzYwNSwgMC4wMDM2MTYsIDAuMDAzNjA1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBPQTIyWDIgKgotICogLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChPQTIyWDIpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC40MTAyODk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2NTU3NDU7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjU1MDE4OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDY1NTc0NTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyOTYsIDAuMDAwMjk2LCAwLjAwMDI5NiwgMC4wMDAyOTYsIDAuMDAwMjk2LCAwLjAwMDI5NiwgMC4wMDAyOTYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAzMDEsIDAuMDAwMjk4LCAwLjAwMDI5OCwgMC4wMDAyOTgsIDAuMDAwMjk3LCAwLjAwMDI5NywgMC4wMDAyOTgiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEExKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA3MDU5NjU7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNzA1OTY1OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDcwNDgxNzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyOTcsIDAuMDAwMjk2LCAwLjAwMDI5NiwgMC4wMDAyOTYsIDAuMDAwMjk2LCAwLjAwMDI5NiwgMC4wMDAyOTYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAzMDEsIDAuMDAwMjk4LCAwLjAwMDI5NywgMC4wMDAyOTcsIDAuMDAwMjk3LCAwLjAwMDI5NywgMC4wMDAyOTciKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2NTc0MTE7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjU1NDYzOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDY1NzQxMTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA3MDcsIDAuMDAwNzA3LCAwLjAwMDcwNywgMC4wMDA3MDcsIDAuMDAwNzA3LCAwLjAwMDcwNywgMC4wMDA3MDYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAzMzcsIDAuMDAwMzM4LCAwLjAwMDMzOCwgMC4wMDAzMzcsIDAuMDAwMzM3LCAwLjAwMDMzOCwgMC4wMDAzMzgiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIxKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA3MDAyODc7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNzAwMjg3OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDcwMDIzNDsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA3MDYsIDAuMDAwNzA3LCAwLjAwMDcwNiwgMC4wMDA3MDYsIDAuMDAwNzA2LCAwLjAwMDcwNiwgMC4wMDA3MDYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAzMzcsIDAuMDAwMzM3LCAwLjAwMDMzNywgMC4wMDAzMzcsIDAuMDAwMzM3LCAwLjAwMDMzNywgMC4wMDAzMzciKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC42Nzc0NDY7Ci0gICAgZnVuY3Rpb24gOiAiKChBMCtBMSkgKEIwK0IxKSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjY4OTYsIDAuMTQ2NDcxLCAwLjIwODI2NiwgMC4yODU0MTQsIDAuMzYyNjQzLCAwLjQzOTY4NCwgMC41MTY3NCIsIFwKLSAgICAgICAgICAiMC4wNzQxMTUsIDAuMTUzNjk3LCAwLjIxNTQ5NiwgMC4yOTI2NDcsIDAuMzY5ODA2LCAwLjQ0Njg3NiwgMC41MjM5ODMiLCBcCi0gICAgICAgICAgIjAuMDgxOTE2LCAwLjE2MTQzNywgMC4yMjMyMzgsIDAuMzAwMzk3LCAwLjM3NzU5LCAwLjQ1NDY1OCwgMC41MzE3MjMiLCBcCi0gICAgICAgICAgIjAuMDg5MDA5LCAwLjE2ODYxLCAwLjIzMDQxNSwgMC4zMDc2NCwgMC4zODQ3NywgMC40NjE4MTYsIDAuNTM4OTUzIiwgXAotICAgICAgICAgICIwLjA5NTE5MSwgMC4xNzQ5NCwgMC4yMzY3MjIsIDAuMzEzODg1LCAwLjM5MTAxMSwgMC40NjgxNzQsIDAuNTQ1MjI1IiwgXAotICAgICAgICAgICIwLjEwMzc4NCwgMC4xODM4NjIsIDAuMjQ1NjU2LCAwLjMyMjc5MSwgMC4zOTk5MTcsIDAuNDc3MDM5LCAwLjU1NDE3MiIsIFwKLSAgICAgICAgICAiMC4xMTAwMDgsIDAuMTkwNTE3LCAwLjI1MjI5NywgMC4zMjk0NTIsIDAuNDA2NTM0LCAwLjQ4MzY1NywgMC41NjA3NjYiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQ1Njc4LCAwLjIwMjg1LCAwLjMzMTY2MSwgMC40OTQzMjYsIDAuNjU1OTkyLCAwLjgxOTYsIDAuOTgyMzA3IiwgXAotICAgICAgICAgICIwLjA0NTY2NSwgMC4yMDI4NDMsIDAuMzMxODY0LCAwLjQ5NDM0OCwgMC42NTY5MzksIDAuODE5NTQyLCAwLjk4MjI5OCIsIFwKLSAgICAgICAgICAiMC4wNDU2OTgsIDAuMjAyODY1LCAwLjMzMTg3OSwgMC40OTM3ODMsIDAuNjU2OTQ4LCAwLjgxOTUwMywgMC45ODIyNzIiLCBcCi0gICAgICAgICAgIjAuMDQ2MjQ3LCAwLjIwMjkwNiwgMC4zMzIxNDgsIDAuNDkzNTU1LCAwLjY1NjE2LCAwLjgxOTQ5NiwgMC45ODIyMDUiLCBcCi0gICAgICAgICAgIjAuMDQ3MTUxLCAwLjIwMzEyMywgMC4zMzIxMzcsIDAuNDk0MzMyLCAwLjY1NjMwMSwgMC44MTk0OTIsIDAuOTgyMTg4IiwgXAotICAgICAgICAgICIwLjA0ODUzNCwgMC4yMDM2MTEsIDAuMzMyMzg0LCAwLjQ5NDM0LCAwLjY1NjU4NCwgMC44MTg4MjEsIDAuOTgyMTU4IiwgXAotICAgICAgICAgICIwLjA1MDA2MSwgMC4yMDQwMTcsIDAuMzMyMzU5LCAwLjQ5NDQzLCAwLjY1Njc3OCwgMC44MTk0MDUsIDAuOTgyMDkiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDcxODIxLCAwLjE1MjE1OCwgMC4yMTMwNTcsIDAuMjg5MDE1LCAwLjM2NDkwNiwgMC40NDA3NDcsIDAuNTE2NjA4IiwgXAotICAgICAgICAgICIwLjA3NzU4OSwgMC4xNTc5MzIsIDAuMjE4ODM2LCAwLjI5NDc2MiwgMC4zNzA3MywgMC40NDY1NDksIDAuNTIyMzg0IiwgXAotICAgICAgICAgICIwLjA4NDUwOCwgMC4xNjQ4MzcsIDAuMjI1NzQzLCAwLjMwMTY3NSwgMC4zNzc1OTQsIDAuNDUzNDcxLCAwLjUyOTI5MyIsIFwKLSAgICAgICAgICAiMC4wOTEwMjIsIDAuMTcxMzc5LCAwLjIzMjI4MywgMC4zMDgyNDQsIDAuMzg0MDk3LCAwLjQ1OTk2MywgMC41MzU4MyIsIFwKLSAgICAgICAgICAiMC4wOTY5MDEsIDAuMTc3Mzg1LCAwLjIzODI3NSwgMC4zMTQyMywgMC4zOTAxMDQsIDAuNDY1OTU0LCAwLjU0MTgzIiwgXAotICAgICAgICAgICIwLjEwNDgyNywgMC4xODU3NTYsIDAuMjQ2NjI4LCAwLjMyMjU2MSwgMC4zOTg0ODUsIDAuNDc0MzEzLCAwLjU1MDE2OSIsIFwKLSAgICAgICAgICAiMC4xMTA5ODksIDAuMTkyMTk4LCAwLjI1MzA5NSwgMC4zMjkwMTUsIDAuNDA0OTEsIDAuNDgwNzU4LCAwLjU1NjU3NCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDg0NzgsIDAuMTk4OTY4LCAwLjMyMzI4OCwgMC40Nzk5MjYsIDAuNjM3MDk5LCAwLjc5NDQ1MSwgMC45NTE4OCIsIFwKLSAgICAgICAgICAiMC4wNDg0NTYsIDAuMTk4OTUxLCAwLjMyMzI4MywgMC40Nzk3NzMsIDAuNjM2MTA1LCAwLjc5NDUyMSwgMC45NTE4OSIsIFwKLSAgICAgICAgICAiMC4wNDg1NDcsIDAuMTk4OTYzLCAwLjMyMzI5MSwgMC40Nzk4MTIsIDAuNjM2MDYxLCAwLjc5NDU4MSwgMC45NTE5MTYiLCBcCi0gICAgICAgICAgIjAuMDQ4OTY4LCAwLjE5OTA2LCAwLjMyMzM0LCAwLjQ3OTk1LCAwLjYzNjk5OSwgMC43OTQzNjIsIDAuOTUxOTM5IiwgXAotICAgICAgICAgICIwLjA0OTcwMiwgMC4xOTkyMzQsIDAuMzIzNDA4LCAwLjQ3OTk5NiwgMC42MzcwNywgMC43OTQyODgsIDAuOTUxOTk1IiwgXAotICAgICAgICAgICIwLjA1MTA3OSwgMC4xOTk2ODksIDAuMzIzNzE3LCAwLjQ3OTU2LCAwLjYzNzIwNywgMC43OTQzNDEsIDAuOTUxNjc2IiwgXAotICAgICAgICAgICIwLjA1MjE5MSwgMC4yMDAzOTYsIDAuMzIzOTYyLCAwLjQ4MDE3NCwgMC42MzcxMTgsIDAuNzk0MjY0LCAwLjk1MTc4MSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDYzNTg5LCAwLjE0Mjk0NSwgMC4yMDQ2ODgsIDAuMjgxODI3LCAwLjM1ODgzLCAwLjQzNjA0NSwgMC41MTMwOTkiLCBcCi0gICAgICAgICAgIjAuMDcwNzIyLCAwLjE1MDA4LCAwLjIxMTgzNCwgMC4yODg5NjUsIDAuMzY2MDY3LCAwLjQ0MzE3NiwgMC41MjAyNDQiLCBcCi0gICAgICAgICAgIjAuMDc4Mjg4LCAwLjE1NzYwOSwgMC4yMTkzNzksIDAuMjk2NTEyLCAwLjM3MzY3NiwgMC40NTA3MTUsIDAuNTI3NzgyIiwgXAotICAgICAgICAgICIwLjA4NTE3MSwgMC4xNjQ1NTUsIDAuMjI2MzExLCAwLjMwMzQ1MywgMC4zODA2MDMsIDAuNDU3NjQzLCAwLjUzNDcyMyIsIFwKLSAgICAgICAgICAiMC4wOTA5ODQsIDAuMTcwNjQ2LCAwLjIzMjQxNCwgMC4zMDk1MTEsIDAuMzg2NjU5LCAwLjQ2Mzc0NiwgMC41NDA3ODIiLCBcCi0gICAgICAgICAgIjAuMDk4OTk4LCAwLjE3OTA3OCwgMC4yNDA4MjcsIDAuMzE3OTQ0LCAwLjM5NTA2NCwgMC40NzIyNCwgMC41NDkyMzIiLCBcCi0gICAgICAgICAgIjAuMTA0ODY0LCAwLjE4NTM3MSwgMC4yNDcwOTYsIDAuMzI0MjE2LCAwLjQwMTMwOCwgMC40Nzg0MjcsIDAuNTU1NTciKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQ1MjI4LCAwLjIwMjUxNSwgMC4zMzE3MzcsIDAuNDkzOTk2LCAwLjY1NjcyMywgMC44MTk0MjQsIDAuOTgyMTQxIiwgXAotICAgICAgICAgICIwLjA0NTIxOCwgMC4yMDI1NjIsIDAuMzMxOTE5LCAwLjQ5MzYwOCwgMC42NTY3MzgsIDAuODE4NTkyLCAwLjk4MjEyNCIsIFwKLSAgICAgICAgICAiMC4wNDUzMywgMC4yMDI1MzQsIDAuMzMxOTMsIDAuNDkzNzE0LCAwLjY1NTgzNCwgMC44MTkzNDYsIDAuOTgxMTQ0IiwgXAotICAgICAgICAgICIwLjA0NjAwOSwgMC4yMDI2NTIsIDAuMzMxOTUxLCAwLjQ5NDE1MSwgMC42NTY3MjQsIDAuODE5MzQsIDAuOTgxMzAxIiwgXAotICAgICAgICAgICIwLjA0Njk0NCwgMC4yMDI5MjMsIDAuMzMxNzcsIDAuNDk0MTYyLCAwLjY1NjI2MSwgMC44MTkzMzcsIDAuOTgyMDE1IiwgXAotICAgICAgICAgICIwLjA0ODQ1MiwgMC4yMDM0NjYsIDAuMzMxOTU3LCAwLjQ5NDI4LCAwLjY1NjExMSwgMC44MTk0MzcsIDAuOTgyMDUzIiwgXAotICAgICAgICAgICIwLjA0OTc4NSwgMC4yMDM4MzUsIDAuMzMyNDY5LCAwLjQ5NDQ4NiwgMC42NTY3ODgsIDAuODE4MTQ2LCAwLjk4MDc1NiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjk1MjMsIDAuMTQ5ODU1LCAwLjIxMDc0NywgMC4yODY3MDMsIDAuMzYyNTY4LCAwLjQzODQzLCAwLjUxNDI5MyIsIFwKLSAgICAgICAgICAiMC4wNzY3MjksIDAuMTU3MDY5LCAwLjIxNzk3NSwgMC4yOTM5MiwgMC4zNjk4NTIsIDAuNDQ1NjcxLCAwLjUyMTUxMyIsIFwKLSAgICAgICAgICAiMC4wODYyMzEsIDAuMTY2NTcsIDAuMjI3NDY1LCAwLjMwMzQyNCwgMC4zNzkyOTgsIDAuNDU1MTU1LCAwLjUzMTA3NCIsIFwKLSAgICAgICAgICAiMC4wOTU0NzYsIDAuMTc1Nzk0LCAwLjIzNjY4MiwgMC4zMTI2NDQsIDAuMzg4NTE3LCAwLjQ2NDM3NywgMC41NDAyODIiLCBcCi0gICAgICAgICAgIjAuMTAzNjczLCAwLjE4NDAyNSwgMC4yNDQ5MDUsIDAuMzIwODU5LCAwLjM5NjcyNSwgMC40NzI1NywgMC41NDg0NDMiLCBcCi0gICAgICAgICAgIjAuMTE1MDk0LCAwLjE5NTg0OSwgMC4yNTY3MjYsIDAuMzMyNjQsIDAuNDA4NTM5LCAwLjQ4NDM2MSwgMC41NjAyMTciLCBcCi0gICAgICAgICAgIjAuMTIzNDUyLCAwLjIwNDUxOSwgMC4yNjUzNzgsIDAuMzQxMjg2LCAwLjQxNzE0OSwgMC40OTI5ODIsIDAuNTY4Nzk2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0ODQ5MSwgMC4xOTg5MzcsIDAuMzIzMjk1LCAwLjQ3OTkyOCwgMC42MzYyOTksIDAuNzk0NDQ5LCAwLjk1MTgxMSIsIFwKLSAgICAgICAgICAiMC4wNDg0ODUsIDAuMTk4OTg5LCAwLjMyMzI4OSwgMC40Nzk0MTYsIDAuNjM2MTI3LCAwLjc5NDQ2NSwgMC45NTE5NzkiLCBcCi0gICAgICAgICAgIjAuMDQ4NTAyLCAwLjE5ODg5MiwgMC4zMjMyOTIsIDAuNDc5OTIyLCAwLjYzNzAyNiwgMC43OTQ0MywgMC45NTE2NzIiLCBcCi0gICAgICAgICAgIjAuMDQ4OTk5LCAwLjE5ODk3LCAwLjMyMzAxNywgMC40Nzk5MzgsIDAuNjM2OTMyLCAwLjc5NDQxOSwgMC45NTE3MjYiLCBcCi0gICAgICAgICAgIjAuMDUwMTEyLCAwLjE5OTI4NiwgMC4zMjMwMTYsIDAuNDgwMDExLCAwLjYzNjk2OCwgMC43OTQyODMsIDAuOTUxNzgiLCBcCi0gICAgICAgICAgIjAuMDUxOTEyLCAwLjE5OTkwNSwgMC4zMjMyNTgsIDAuNDgwMDA1LCAwLjYzNzE5NCwgMC43OTQzMTcsIDAuOTUxOTc0IiwgXAotICAgICAgICAgICIwLjA1MzQ4NSwgMC4yMDA1NTIsIDAuMzIzNzQsIDAuNDgwMzg1LCAwLjYzNzAzNSwgMC43OTQ0NTIsIDAuOTUyMDM3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjAxMjcsIDAuMTM5NzQzLCAwLjIwMTU0LCAwLjI3ODY5LCAwLjM1NTg2NCwgMC40MzI5NjEsIDAuNTEwMDE4IiwgXAotICAgICAgICAgICIwLjA2NzcxMywgMC4xNDcyOCwgMC4yMDkwNzYsIDAuMjg2MjMzLCAwLjM2MzM1NywgMC40NDA0ODYsIDAuNTE3NTgxIiwgXAotICAgICAgICAgICIwLjA3NzU3NSwgMC4xNTcwNTcsIDAuMjE4ODY4LCAwLjI5NjEwNCwgMC4zNzMyMjEsIDAuNDUwMjczLCAwLjUyNzQ0IiwgXAotICAgICAgICAgICIwLjA4NjQ4OCwgMC4xNjYxMzksIDAuMjI3OTI5LCAwLjMwNTA5MiwgMC4zODIyODgsIDAuNDU5MzM3LCAwLjUzNjQyNiIsIFwKLSAgICAgICAgICAiMC4wOTQzMiwgMC4xNzM4NjcsIDAuMjM1NjMzLCAwLjMxMjc5NywgMC4zODk5MTgsIDAuNDY3MDMyLCAwLjU0NDEzMSIsIFwKLSAgICAgICAgICAiMC4xMDQ3OTEsIDAuMTg0NzcsIDAuMjQ2NTMyLCAwLjMyMzY3MywgMC40MDA4MDYsIDAuNDc3OTkyLCAwLjU1NTAyOSIsIFwKLSAgICAgICAgICAiMC4xMTI3LCAwLjE5Mjk5NSwgMC4yNTQ3NjMsIDAuMzMxOTE5LCAwLjQwOTAzNiwgMC40ODYxLCAwLjU2MzIxNSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDU2NzYsIDAuMjAyODQ2LCAwLjMzMTk0NSwgMC40OTQzMzYsIDAuNjU2MjcxLCAwLjgxOTU4MiwgMC45ODIzNDIiLCBcCi0gICAgICAgICAgIjAuMDQ1NjM0LCAwLjIwMjg0MywgMC4zMzIxNTIsIDAuNDk0MzUxLCAwLjY1Njg5NywgMC44MTg3OTMsIDAuOTgyMjYxIiwgXAotICAgICAgICAgICIwLjA0NTc1OSwgMC4yMDI4MTQsIDAuMzMyMTU0LCAwLjQ5MzY1NSwgMC42NTU5NjUsIDAuODE5NTYzLCAwLjk4MjMxNCIsIFwKLSAgICAgICAgICAiMC4wNDY1MDEsIDAuMjAyOTQsIDAuMzMxOTQ3LCAwLjQ5NDMzNSwgMC42NTYxNDgsIDAuODE5NDg2LCAwLjk4MjIwOCIsIFwKLSAgICAgICAgICAiMC4wNDc1NywgMC4yMDMxNTIsIDAuMzMyMDQ5LCAwLjQ5NDM1MiwgMC42NTY4MzksIDAuODE5MzE0LCAwLjk4MjE4MyIsIFwKLSAgICAgICAgICAiMC4wNDkxODcsIDAuMjAzNjk2LCAwLjMzMjMyNCwgMC40OTQ0MDYsIDAuNjU2ODQ4LCAwLjgxODc5NSwgMC45ODIxNTEiLCBcCi0gICAgICAgICAgIjAuMDUwNzE3LCAwLjIwNDAyNywgMC4zMzI1NjMsIDAuNDk0MDYsIDAuNjU2NzU0LCAwLjgxOTI5LCAwLjk4MTk1OSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjI4NzksIDAuMTQyMjA3LCAwLjIwMjkwNCwgMC4yNzg2OTcsIDAuMzU0NDc3LCAwLjQzMDM2MiwgMC41MDYxMDIiLCBcCi0gICAgICAgICAgIjAuMDY4NzU3LCAwLjE0ODA5MiwgMC4yMDg3OTEsIDAuMjg0NTg2LCAwLjM2MDM2NSwgMC40MzYyNSwgMC41MTIwMDIiLCBcCi0gICAgICAgICAgIjAuMDc1NDM5LCAwLjE1NDc4NywgMC4yMTU0ODcsIDAuMjkxMjg1LCAwLjM2NzA2NCwgMC40NDI5NDYsIDAuNTE4NzYzIiwgXAotICAgICAgICAgICIwLjA4MTQyMywgMC4xNjA4NjksIDAuMjIxNTUzLCAwLjI5NzMzOCwgMC4zNzMxMiwgMC40NDkwMjIsIDAuNTI0ODM1IiwgXAotICAgICAgICAgICIwLjA4NjUxNywgMC4xNjYyNDgsIDAuMjI2OTI3LCAwLjMwMjc0NSwgMC4zNzg1MTEsIDAuNDU0MzEsIDAuNTMwMDk5IiwgXAotICAgICAgICAgICIwLjA5MzQ0OCwgMC4xNzM2MDcsIDAuMjM0MjgsIDAuMzEwMDc1LCAwLjM4NTg2OCwgMC40NjE2NjksIDAuNTM3NDQ5IiwgXAotICAgICAgICAgICIwLjA5ODYwMSwgMC4xNzkyMzEsIDAuMjM5OTE0LCAwLjMxNTcxMSwgMC4zOTE0ODYsIDAuNDY3MjQ2LCAwLjU0MzExNiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDY2MjEsIDAuMTk3NjU5LCAwLjMyMjE5NywgMC40Nzg5NjYsIDAuNjM2MDQyLCAwLjc5MzY5NywgMC45NTEzOTMiLCBcCi0gICAgICAgICAgIjAuMDQ2NjI5LCAwLjE5NzY0OSwgMC4zMjIxOSwgMC40Nzg5NjQsIDAuNjM2MDQxLCAwLjc5MzY4NSwgMC45NDk2MTUiLCBcCi0gICAgICAgICAgIjAuMDQ2ODQxLCAwLjE5NzY3NSwgMC4zMjIyMSwgMC40Nzg2NzYsIDAuNjM2MDQ5LCAwLjc5MjEwMSwgMC45NTEwNzUiLCBcCi0gICAgICAgICAgIjAuMDQ3NjI1LCAwLjE5Nzg2MiwgMC4zMjIzMSwgMC40Nzg2MzUsIDAuNjM2MTYxLCAwLjc5MzY1OSwgMC45NDk3MTMiLCBcCi0gICAgICAgICAgIjAuMDQ4NTY4LCAwLjE5ODIwNCwgMC4zMjIwMSwgMC40NzkxNDYsIDAuNjM1NDY1LCAwLjc5Mzc3NSwgMC45NTEwMzciLCBcCi0gICAgICAgICAgIjAuMDUwMDQxLCAwLjE5ODg2MiwgMC4zMjI4MjIsIDAuNDc5MTM0LCAwLjYzNjM5NiwgMC43OTM4NCwgMC45NTEzNzEiLCBcCi0gICAgICAgICAgIjAuMDUxMzAxLCAwLjE5OTM3MiwgMC4zMjMwODIsIDAuNDc5MzI0LCAwLjYzNjM1MSwgMC43OTM2MjUsIDAuOTUxMzY5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIxIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTYyMjUsIDAuMTM1NTM5LCAwLjE5NzI3NCwgMC4yNzQ0MDUsIDAuMzUxNTQxLCAwLjQyODU2NiwgMC41MDU2NjUiLCBcCi0gICAgICAgICAgIjAuMDYzNzExLCAwLjE0MzAyOSwgMC4yMDQ3MzQsIDAuMjgxODc2LCAwLjM1ODk5NywgMC40MzYwNzYsIDAuNTEzMTM3IiwgXAotICAgICAgICAgICIwLjA3MzI1NSwgMC4xNTI1MDEsIDAuMjE0MjU4LCAwLjI5MTM4NSwgMC4zNjg1NDMsIDAuNDQ1NTc4LCAwLjUyMjY0MiIsIFwKLSAgICAgICAgICAiMC4wODE4MTUsIDAuMTYxMTU0LCAwLjIyMjg5OCwgMC4zMDAwMjEsIDAuMzc3MTg5LCAwLjQ1NDIxMywgMC41MzEyNzIiLCBcCi0gICAgICAgICAgIjAuMDg4OTY0LCAwLjE2ODUzNSwgMC4yMzAyNjMsIDAuMzA3Mzc1LCAwLjM4NDQ1MywgMC40NjE1ODUsIDAuNTM4Njk5IiwgXAotICAgICAgICAgICIwLjA5ODQxNiwgMC4xNzgwOTUsIDAuMjM5Nzk1LCAwLjMxNjkxNCwgMC4zOTM5NzgsIDAuNDcxMDU4LCAwLjU0ODE3NSIsIFwKLSAgICAgICAgICAiMC4xMDU1MiwgMC4xODU0NjUsIDAuMjQ3MjE1LCAwLjMyNDIyLCAwLjQwMTM4NCwgMC40NzgzOCwgMC41NTU0OTgiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQ1MTAyLCAwLjIwMjQ1MywgMC4zMzE2ODIsIDAuNDkzNTE0LCAwLjY1NjcxOCwgMC44MTgxOTcsIDAuOTgyMTEyIiwgXAotICAgICAgICAgICIwLjA0NTEwNywgMC4yMDI0NTMsIDAuMzMxNjY4LCAwLjQ5MzYyOCwgMC42NTY3MTUsIDAuODE5MzU3LCAwLjk4MTA1NCIsIFwKLSAgICAgICAgICAiMC4wNDU0NjQsIDAuMjAyNTEzLCAwLjMzMTg4MywgMC40OTQxMzMsIDAuNjU2NjUzLCAwLjgxOTM2MywgMC45ODE4ODIiLCBcCi0gICAgICAgICAgIjAuMDQ2MjA1LCAwLjIwMjY1MSwgMC4zMzE5MTMsIDAuNDk0MTE1LCAwLjY1NjY2NCwgMC44MTkyOTQsIDAuOTgxMDQzIiwgXAotICAgICAgICAgICIwLjA0NzM4OSwgMC4yMDI5ODEsIDAuMzMxOTg1LCAwLjQ5NDAyMiwgMC42NTU5NjMsIDAuODE4MzQ0LCAwLjk4MjAxIiwgXAotICAgICAgICAgICIwLjA0OTQ5NiwgMC4yMDM1MDMsIDAuMzMyMjAyLCAwLjQ5NDMyNCwgMC42NTY3NTUsIDAuODE5MzM4LCAwLjk4MjAwNiIsIFwKLSAgICAgICAgICAiMC4wNTEwNTYsIDAuMjA0MDEyLCAwLjMzMjQwOCwgMC40OTQ0OCwgMC42NTYzMjYsIDAuODE5NDYxLCAwLjk4MTg5MyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTk5ODMsIDAuMTM5MzIzLCAwLjIwMDAxOSwgMC4yNzU4MTYsIDAuMzUxNTk3LCAwLjQyNzQ4NSwgMC41MDMxOTQiLCBcCi0gICAgICAgICAgIjAuMDY3MzIzLCAwLjE0NjY3OCwgMC4yMDczNzIsIDAuMjgzMTgxLCAwLjM1OTAzLCAwLjQzNDg3NiwgMC41MTA1NjciLCBcCi0gICAgICAgICAgIjAuMDc2NTc0LCAwLjE1NTkwOSwgMC4yMTY2MDQsIDAuMjkyNDEyLCAwLjM2ODE4NywgMC40NDQxMDcsIDAuNTE5Nzk4IiwgXAotICAgICAgICAgICIwLjA4NDkzLCAwLjE2NDMyNywgMC4yMjUwMSwgMC4zMDA4MTcsIDAuMzc2NTg1LCAwLjQ1MjUxOSwgMC41MjgxOTQiLCBcCi0gICAgICAgICAgIjAuMDkyMjUzLCAwLjE3MTg1OSwgMC4yMzI1MzUsIDAuMzA4MzA5LCAwLjM4NDEsIDAuNDYwMDM4LCAwLjUzNTg3MyIsIFwKLSAgICAgICAgICAiMC4xMDE2MzYsIDAuMTgxNzU4LCAwLjI0MjQyOCwgMC4zMTgyMTMsIDAuMzk0MDAxLCAwLjQ2OTc3MiwgMC41NDU2MzkiLCBcCi0gICAgICAgICAgIjAuMTA4ODA0LCAwLjE4OTI4NCwgMC4yNDk5NTQsIDAuMzI1NzEzLCAwLjQwMTQ4MiwgMC40NzczNTksIDAuNTUzMDMyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0NjYyOCwgMC4xOTc1NTcsIDAuMzIyMTg4LCAwLjQ3ODk3MywgMC42MzYwMTksIDAuNzkzNzE0LCAwLjk1MTMzNyIsIFwKLSAgICAgICAgICAiMC4wNDY2MDQsIDAuMTk3NjU5LCAwLjMyMjE4NCwgMC40Nzg5NzgsIDAuNjM0OTY3LCAwLjc5MzY5OSwgMC45NTEzNTgiLCBcCi0gICAgICAgICAgIjAuMDQ2OTI2LCAwLjE5NzY5NCwgMC4zMjIyMTksIDAuNDc4OTg3LCAwLjYzNjE0NiwgMC43OTIzNzUsIDAuOTUxMzUxIiwgXAotICAgICAgICAgICIwLjA0NzkwMywgMC4xOTc5MzIsIDAuMzIyMzMyLCAwLjQ3OTA0OSwgMC42MzYyLCAwLjc5MzcwNSwgMC45NTEzNzYiLCBcCi0gICAgICAgICAgIjAuMDQ5MTY2LCAwLjE5ODMwMSwgMC4zMjI0ODEsIDAuNDc4NzcxLCAwLjYzNjI0OSwgMC43OTIzMzksIDAuOTUwMjQxIiwgXAotICAgICAgICAgICIwLjA1MTA4NSwgMC4xOTg5OTIsIDAuMzIyOTA4LCAwLjQ3OTIxMSwgMC42MzYyMDMsIDAuNzkzNzIyLCAwLjk1MTM2MyIsIFwKLSAgICAgICAgICAiMC4wNTI3MTgsIDAuMTk5NjMzLCAwLjMyMjg3MiwgMC40Nzk0MTQsIDAuNjM2NDIsIDAuNzkzNTcxLCAwLjk1MTM5NiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDMzNjYsIDAuMDAzNDIsIDAuMDAzNDMxLCAwLjAwMzQzNCwgMC4wMDM0MzYsIDAuMDAzNDQxLCAwLjAwMzQ0MSIsIFwKLSAgICAgICAgICAiMC4wMDMzMzQsIDAuMDAzMzkyLCAwLjAwMzQwMiwgMC4wMDM0MDgsIDAuMDAzNDEsIDAuMDAzNDEyLCAwLjAwMzQxNCIsIFwKLSAgICAgICAgICAiMC4wMDMzMjUsIDAuMDAzMzc5LCAwLjAwMzM5LCAwLjAwMzM5NiwgMC4wMDM0LCAwLjAwMzQwMiwgMC4wMDM0MDQiLCBcCi0gICAgICAgICAgIjAuMDAzMzQ4LCAwLjAwMzM4NSwgMC4wMDMzOTUsIDAuMDAzNDAzLCAwLjAwMzQwNywgMC4wMDM0MSwgMC4wMDM0MDkiLCBcCi0gICAgICAgICAgIjAuMDAzMzkyLCAwLjAwMzQxMiwgMC4wMDM0MTgsIDAuMDAzNDI2LCAwLjAwMzQyOSwgMC4wMDM0MzIsIDAuMDAzNDMyIiwgXAotICAgICAgICAgICIwLjAwMzQ5MSwgMC4wMDM0NywgMC4wMDM0NzksIDAuMDAzNDgsIDAuMDAzNDg0LCAwLjAwMzQ4NiwgMC4wMDM0ODYiLCBcCi0gICAgICAgICAgIjAuMDAzNjAyLCAwLjAwMzU1MiwgMC4wMDM1NTcsIDAuMDAzNTU5LCAwLjAwMzU2NCwgMC4wMDM1NjYsIDAuMDAzNTY0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2MDE4LCAwLjAwNjA2NSwgMC4wMDYwNzUsIDAuMDA2MDgxLCAwLjAwNjA4NCwgMC4wMDYwODYsIDAuMDA2MDg4IiwgXAotICAgICAgICAgICIwLjAwNTk5MSwgMC4wMDYwNDMsIDAuMDA2MDU1LCAwLjAwNjA2MiwgMC4wMDYwNjUsIDAuMDA2MDY4LCAwLjAwNjA3IiwgXAotICAgICAgICAgICIwLjAwNjAwNCwgMC4wMDYwNDUsIDAuMDA2MDU4LCAwLjAwNjA2NiwgMC4wMDYwNywgMC4wMDYwNzMsIDAuMDA2MDc1IiwgXAotICAgICAgICAgICIwLjAwNjA2MywgMC4wMDYwNzYsIDAuMDA2MDg3LCAwLjAwNjA5NCwgMC4wMDYwOTgsIDAuMDA2MTAxLCAwLjAwNjEwMyIsIFwKLSAgICAgICAgICAiMC4wMDYxMTQsIDAuMDA2MTE2LCAwLjAwNjEyOSwgMC4wMDYxMzYsIDAuMDA2MTQsIDAuMDA2MTQzLCAwLjAwNjE0NSIsIFwKLSAgICAgICAgICAiMC4wMDYyMjMsIDAuMDA2MjAzLCAwLjAwNjIxNSwgMC4wMDYyMjQsIDAuMDA2MjI5LCAwLjAwNjIzMiwgMC4wMDYyMzQiLCBcCi0gICAgICAgICAgIjAuMDA2NDEsIDAuMDA2MzI3LCAwLjAwNjMyOSwgMC4wMDYzMzQsIDAuMDA2MzM3LCAwLjAwNjMzOSwgMC4wMDYzNDEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzMTY2LCAwLjAwMzIyNSwgMC4wMDMyMzMsIDAuMDAzMjM0LCAwLjAwMzI0LCAwLjAwMzIzOSwgMC4wMDMyNDIiLCBcCi0gICAgICAgICAgIjAuMDAzMTIxLCAwLjAwMzE4NCwgMC4wMDMxOTMsIDAuMDAzMTk3LCAwLjAwMzIwMSwgMC4wMDMyMDIsIDAuMDAzMjA0IiwgXAotICAgICAgICAgICIwLjAwMzEwNywgMC4wMDMxNiwgMC4wMDMxNywgMC4wMDMxNzUsIDAuMDAzMTc4LCAwLjAwMzE4LCAwLjAwMzE4MSIsIFwKLSAgICAgICAgICAiMC4wMDMxMjEsIDAuMDAzMTYxLCAwLjAwMzE3MiwgMC4wMDMxNzksIDAuMDAzMTc4LCAwLjAwMzE4MiwgMC4wMDMxODMiLCBcCi0gICAgICAgICAgIjAuMDAzMTYyLCAwLjAwMzE4NSwgMC4wMDMxOTQsIDAuMDAzMTk5LCAwLjAwMzIwMiwgMC4wMDMyMDQsIDAuMDAzMjA1IiwgXAotICAgICAgICAgICIwLjAwMzIxNCwgMC4wMDMyMzIsIDAuMDAzMjQ0LCAwLjAwMzI1MiwgMC4wMDMyNTMsIDAuMDAzMjU2LCAwLjAwMzI1NyIsIFwKLSAgICAgICAgICAiMC4wMDMzMjMsIDAuMDAzMzExLCAwLjAwMzMxNywgMC4wMDMzMjMsIDAuMDAzMzI2LCAwLjAwMzMyOSwgMC4wMDMzMyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNTc1NywgMC4wMDU3OTksIDAuMDA1ODA5LCAwLjAwNTgxNSwgMC4wMDU4MTgsIDAuMDA1ODIsIDAuMDA1ODIxIiwgXAotICAgICAgICAgICIwLjAwNTczLCAwLjAwNTc4LCAwLjAwNTc5MywgMC4wMDU4MDEsIDAuMDA1ODA0LCAwLjAwNTgwNywgMC4wMDU4MDkiLCBcCi0gICAgICAgICAgIjAuMDA1NzY2LCAwLjAwNTgwNSwgMC4wMDU4MTksIDAuMDA1ODI5LCAwLjAwNTgzMywgMC4wMDU4MzcsIDAuMDA1ODM5IiwgXAotICAgICAgICAgICIwLjAwNTg1MSwgMC4wMDU4NTgsIDAuMDA1ODcyLCAwLjAwNTg4MSwgMC4wMDU4ODcsIDAuMDA1ODksIDAuMDA1ODkyIiwgXAotICAgICAgICAgICIwLjAwNjAxLCAwLjAwNTk1LCAwLjAwNTk1NSwgMC4wMDU5NiwgMC4wMDU5NjQsIDAuMDA1OTY2LCAwLjAwNTk2OCIsIFwKLSAgICAgICAgICAiMC4wMDYxNTgsIDAuMDA2MDYsIDAuMDA2MDYzLCAwLjAwNjA2NiwgMC4wMDYwNywgMC4wMDYwNzIsIDAuMDA2MDc0IiwgXAotICAgICAgICAgICIwLjAwNjM3LCAwLjAwNjIwNCwgMC4wMDYxOTYsIDAuMDA2MTk2LCAwLjAwNjE5NywgMC4wMDYxOTgsIDAuMDA2MTk4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzM2MiwgMC4wMDM0MTksIDAuMDAzNDMsIDAuMDAzNDM0LCAwLjAwMzQzOCwgMC4wMDM0MzksIDAuMDAzNDQiLCBcCi0gICAgICAgICAgIjAuMDAzMzQ3LCAwLjAwMzQwNywgMC4wMDM0MTksIDAuMDAzNDI2LCAwLjAwMzQyOSwgMC4wMDM0MywgMC4wMDM0MzMiLCBcCi0gICAgICAgICAgIjAuMDAzMzk3LCAwLjAwMzQzNiwgMC4wMDM0NDgsIDAuMDAzNDU1LCAwLjAwMzQ1OSwgMC4wMDM0NjEsIDAuMDAzNDYzIiwgXAotICAgICAgICAgICIwLjAwMzQ1NywgMC4wMDM0ODIsIDAuMDAzNDkzLCAwLjAwMzUwMiwgMC4wMDM1MDUsIDAuMDAzNTA3LCAwLjAwMzUwOCIsIFwKLSAgICAgICAgICAiMC4wMDM1NjcsIDAuMDAzNTU4LCAwLjAwMzU2NywgMC4wMDM1NzUsIDAuMDAzNTc2LCAwLjAwMzU4LCAwLjAwMzU3OSIsIFwKLSAgICAgICAgICAiMC4wMDM3NTcsIDAuMDAzNzAxLCAwLjAwMzcwNiwgMC4wMDM3MDksIDAuMDAzNzEzLCAwLjAwMzcxNSwgMC4wMDM3MTUiLCBcCi0gICAgICAgICAgIjAuMDAzODk4LCAwLjAwMzgzNSwgMC4wMDM4NDIsIDAuMDAzODQ2LCAwLjAwMzg0OSwgMC4wMDM4NTEsIDAuMDAzODU0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0NzQ5LCAwLjAwNDc4MSwgMC4wMDQ3ODUsIDAuMDA0Nzg4LCAwLjAwNDc4OSwgMC4wMDQ3OSwgMC4wMDQ3OSIsIFwKLSAgICAgICAgICAiMC4wMDQ3MTgsIDAuMDA0NzU3LCAwLjAwNDc2MywgMC4wMDQ3NjYsIDAuMDA0NzY3LCAwLjAwNDc2OCwgMC4wMDQ3NjkiLCBcCi0gICAgICAgICAgIjAuMDA0NzI2LCAwLjAwNDc1OSwgMC4wMDQ3NjUsIDAuMDA0NzY5LCAwLjAwNDc3MSwgMC4wMDQ3NzIsIDAuMDA0NzczIiwgXAotICAgICAgICAgICIwLjAwNDc4OSwgMC4wMDQ3OTUsIDAuMDA0Nzk5LCAwLjAwNDgwMiwgMC4wMDQ4MDMsIDAuMDA0ODA0LCAwLjAwNDgwNSIsIFwKLSAgICAgICAgICAiMC4wMDQ4MzMsIDAuMDA0ODM1LCAwLjAwNDg0LCAwLjAwNDg0MiwgMC4wMDQ4NDQsIDAuMDA0ODQ1LCAwLjAwNDg0NiIsIFwKLSAgICAgICAgICAiMC4wMDQ5OTEsIDAuMDA0OTQ0LCAwLjAwNDk0NSwgMC4wMDQ5NDYsIDAuMDA0OTQ3LCAwLjAwNDk0NywgMC4wMDQ5NDgiLCBcCi0gICAgICAgICAgIjAuMDA1MDk2LCAwLjAwNTA0MiwgMC4wMDUwNDQsIDAuMDA1MDQ2LCAwLjAwNTA0NiwgMC4wMDUwNDcsIDAuMDA1MDQ3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzA3NywgMC4wMDMxMzcsIDAuMDAzMTQ3LCAwLjAwMzE1MiwgMC4wMDMxNTYsIDAuMDAzMTU3LCAwLjAwMzE1NyIsIFwKLSAgICAgICAgICAiMC4wMDMwNTQsIDAuMDAzMTIsIDAuMDAzMTMsIDAuMDAzMTM1LCAwLjAwMzE0LCAwLjAwMzE0MSwgMC4wMDMxNDIiLCBcCi0gICAgICAgICAgIjAuMDAzMDk0LCAwLjAwMzEzOSwgMC4wMDMxNTEsIDAuMDAzMTU3LCAwLjAwMzE2MSwgMC4wMDMxNjMsIDAuMDAzMTY1IiwgXAotICAgICAgICAgICIwLjAwMzE1OSwgMC4wMDMxODUsIDAuMDAzMTk1LCAwLjAwMzIwNSwgMC4wMDMyMDgsIDAuMDAzMjEsIDAuMDAzMjEiLCBcCi0gICAgICAgICAgIjAuMDAzMjY5LCAwLjAwMzI2LCAwLjAwMzI3MiwgMC4wMDMyNzQsIDAuMDAzMjc3LCAwLjAwMzI3OSwgMC4wMDMyODEiLCBcCi0gICAgICAgICAgIjAuMDAzNDc2LCAwLjAwMzQwMSwgMC4wMDM0MDQsIDAuMDAzNDA4LCAwLjAwMzQwNiwgMC4wMDM0MDksIDAuMDAzNDA5IiwgXAotICAgICAgICAgICIwLjAwMzY2LCAwLjAwMzUzNywgMC4wMDM1MjMsIDAuMDAzNTMyLCAwLjAwMzUzMywgMC4wMDM1MzQsIDAuMDAzNTM0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0NDgsIDAuMDA0NTIsIDAuMDA0NTI2LCAwLjAwNDUzLCAwLjAwNDUzMiwgMC4wMDQ1MzMsIDAuMDA0NTM0IiwgXAotICAgICAgICAgICIwLjAwNDQ1OCwgMC4wMDQ1MDksIDAuMDA0NTE5LCAwLjAwNDUyNCwgMC4wMDQ1MjYsIDAuMDA0NTI4LCAwLjAwNDUyOSIsIFwKLSAgICAgICAgICAiMC4wMDQ1MTgsIDAuMDA0NTQyLCAwLjAwNDU1MSwgMC4wMDQ1NTYsIDAuMDA0NTU5LCAwLjAwNDU2MSwgMC4wMDQ1NjIiLCBcCi0gICAgICAgICAgIjAuMDA0NjM2LCAwLjAwNDYxMiwgMC4wMDQ2MTcsIDAuMDA0NjIsIDAuMDA0NjIyLCAwLjAwNDYyMywgMC4wMDQ2MjQiLCBcCi0gICAgICAgICAgIjAuMDA0NzE3LCAwLjAwNDY3MiwgMC4wMDQ2NzUsIDAuMDA0Njc3LCAwLjAwNDY3OSwgMC4wMDQ2OCwgMC4wMDQ2ODEiLCBcCi0gICAgICAgICAgIjAuMDA0ODYxLCAwLjAwNDc5MywgMC4wMDQ3OTYsIDAuMDA0Nzk5LCAwLjAwNDgwMSwgMC4wMDQ4MDIsIDAuMDA0ODAzIiwgXAotICAgICAgICAgICIwLjAwNTAyNCwgMC4wMDQ5MjIsIDAuMDA0OTE3LCAwLjAwNDkyMSwgMC4wMDQ5MjMsIDAuMDA0OTIsIDAuMDA0OTIiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogT0FJMjExWDIgKgotICogLS0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKE9BSTIxMVgyKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuNjc5OTA4OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxODE5NDQ7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxODE2MjY7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxODE5NDQ7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxMDQ5LCAwLjAwMTA0OCwgMC4wMDEwNDcsIDAuMDAxMDQ3LCAwLjAwMTA0NywgMC4wMDEwNDcsIDAuMDAxMDQ2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxMDUsIDAuMDAxMDUsIDAuMDAxMDUxLCAwLjAwMTA1MSwgMC4wMDEwNTIsIDAuMDAxMDUyLCAwLjAwMTA0OSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQTEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTcyNjEzOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTcyNjEzOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTcyMTY2OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTA0OSwgMC4wMDEwNDgsIDAuMDAxMDQ4LCAwLjAwMTA0OCwgMC4wMDEwNDcsIDAuMDAxMDQ3LCAwLjAwMTA0NyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTA0OSwgMC4wMDEwNSwgMC4wMDEwNSwgMC4wMDEwNSwgMC4wMDEwNTEsIDAuMDAxMDUxLCAwLjAwMTA1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNzE4MTQ7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNzE4MTQ7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNzE0NzE7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxMDQ5LCAwLjAwMTA0OCwgMC4wMDEwNDcsIDAuMDAxMDQ3LCAwLjAwMTA0NywgMC4wMDEwNDcsIDAuMDAxMDQ3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxMDUsIDAuMDAxMDUsIDAuMDAxMDUxLCAwLjAwMTA1MSwgMC4wMDEwNTIsIDAuMDAxMDUyLCAwLjAwMTA1MiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQzApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTY5NTU2OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTY5NTE5OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTY5NTU2OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDE1MiwgMC4wMDAxNTEsIDAuMDAwMTUsIDAuMDAwMTUsIDAuMDAwMTUsIDAuMDAwMTUsIDAuMDAwMTUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDExOTEsIDAuMDAxMTkyLCAwLjAwMTE5MSwgMC4wMDExOTMsIDAuMDAxMTkyLCAwLjAwMTE5MiwgMC4wMDExOTIiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4yNzMyMTE7Ci0gICAgZnVuY3Rpb24gOiAiKCEoKChBMCtBMSkgQjApIEMwKSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDczNDYsIDAuMTg4OTAzLCAwLjMwMTUzNywgMC40NDIzNjcsIDAuNTgyODM4LCAwLjcyMzgyOSwgMC44NjQxMDQiLCBcCi0gICAgICAgICAgIjAuMDUzNDQ3LCAwLjE5NDkxMSwgMC4zMDc0NTEsIDAuNDQ4MDk3LCAwLjU4OTAzNCwgMC43Mjk3NjcsIDAuODcwNDczIiwgXAotICAgICAgICAgICIwLjA2MDc5OCwgMC4yMDIzNzQsIDAuMzE1MDE3LCAwLjQ1NTc2OSwgMC41OTY4NjIsIDAuNzM2Nzg0LCAwLjg3NzY3OCIsIFwKLSAgICAgICAgICAiMC4wNjc5NTQsIDAuMjA5ODc5LCAwLjMyMjUyNCwgMC40NjMzNzEsIDAuNjAzODg5LCAwLjc0NDUzNSwgMC44ODQ5MjkiLCBcCi0gICAgICAgICAgIjAuMDc0MTE5LCAwLjIxNzI5OSwgMC4zMzAwMTQsIDAuNDcwODMyLCAwLjYxMTY5NSwgMC43NTIyMjksIDAuODkzMTYzIiwgXAotICAgICAgICAgICIwLjA4MjQyMSwgMC4yMjg5NiwgMC4zNDE3NzIsIDAuNDgyMjc5LCAwLjYyMzA1MSwgMC43NjQxNjYsIDAuOTA0NjkzIiwgXAotICAgICAgICAgICIwLjA4ODY2NSwgMC4yMzkzMzIsIDAuMzUyMTYyLCAwLjQ5MzYwMywgMC42MzQ1OTgsIDAuNzc1MDg3LCAwLjkxNTQ5Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4NTQxNCwgMC4zODMyNTQsIDAuNjIxMTcsIDAuOTE4OTY0LCAxLjIxNjI2LCAxLjUxMzg5LCAxLjgxMTMyIiwgXAotICAgICAgICAgICIwLjA4NTg0OSwgMC4zODMwODMsIDAuNjIxMjE3LCAwLjkxODk2NywgMS4yMTYxOSwgMS41MTM2OSwgMS44MTEyOSIsIFwKLSAgICAgICAgICAiMC4wODkyNjEsIDAuMzgzMTM5LCAwLjYyMTA5OSwgMC45MTg4OCwgMS4yMTY4NCwgMS41MTQ1OCwgMS44MTE3IiwgXAotICAgICAgICAgICIwLjA5NDIwMSwgMC4zODM1MzUsIDAuNjIxMDY0LCAwLjkxODY4NSwgMS4yMTU4NywgMS41MTM2LCAxLjgxMTQ1IiwgXAotICAgICAgICAgICIwLjEwMDI3NywgMC4zODUzNzEsIDAuNjIxMjk3LCAwLjkxODcwMiwgMS4yMTYxNywgMS41MTM2MiwgMS44MTE0NCIsIFwKLSAgICAgICAgICAiMC4xMTA2MTMsIDAuMzkwMDEzLCAwLjYyMzIwNywgMC45MTkxMDksIDEuMjE2MTYsIDEuNTEzNTMsIDEuODEwNjMiLCBcCi0gICAgICAgICAgIjAuMTE5ODY1LCAwLjM5NTQwMywgMC42MjY1NjUsIDAuOTIwMTA3LCAxLjIxNjI3LCAxLjUxMzE2LCAxLjgxMTM0Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2NTU1OSwgMC4yNjI5NjcsIDAuNDIwNTgsIDAuNjE3OTE1LCAwLjgxNDk5LCAxLjAxMjYzLCAxLjIwOTE3IiwgXAotICAgICAgICAgICIwLjA3MTcwOCwgMC4yNjkwOTcsIDAuNDI2Nzc1LCAwLjYyMzczNSwgMC44MjA4NTUsIDEuMDE4NDIsIDEuMjE1OTYiLCBcCi0gICAgICAgICAgIjAuMDc3NzUyLCAwLjI3NTM1NiwgMC40MzMwMjQsIDAuNjMwMDk0LCAwLjgyNzIzOSwgMS4wMjQ1NSwgMS4yMjE2NyIsIFwKLSAgICAgICAgICAiMC4wODM1OTEsIDAuMjgxMjg0LCAwLjQzOTEyMSwgMC42MzYzODUsIDAuODMzMTU3LCAxLjAzMDM3LCAxLjIyNzIyIiwgXAotICAgICAgICAgICIwLjA4OTE3MiwgMC4yODcxNzksIDAuNDQ0ODUyLCAwLjY0MjIwNywgMC44MzkxMjMsIDEuMDM1OTMsIDEuMjMzMDYiLCBcCi0gICAgICAgICAgIjAuMDk3MTQ4LCAwLjI5NjM3OCwgMC40NTQxOTIsIDAuNjUxMjgyLCAwLjg0ODI2LCAxLjA0NTY3LCAxLjI0MjUyIiwgXAotICAgICAgICAgICIwLjEwMzMwNywgMC4zMDQ2NDIsIDAuNDYyMzc3LCAwLjY1OTg5NiwgMC44NTY2NSwgMS4wNTQwMywgMS4yNTExNyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTExMjUsIDAuNTE5MjU2LCAwLjg0NTE5LCAxLjI1MzA5LCAxLjY2MTAzLCAyLjA2ODk0LCAyLjQ3NTc2IiwgXAotICAgICAgICAgICIwLjExMTE1NCwgMC41MTkxNTEsIDAuODQ1NDcxLCAxLjI1MjY4LCAxLjY2MTExLCAyLjA2ODA4LCAyLjQ3NjM1IiwgXAotICAgICAgICAgICIwLjExMjQ4NiwgMC41MTkxMjEsIDAuODQ1MTAxLCAxLjI1MzQ4LCAxLjY2MDcyLCAyLjA2ODcsIDIuNDc1ODIiLCBcCi0gICAgICAgICAgIjAuMTE1MTAzLCAwLjUxOTA2MSwgMC44NDUyOTgsIDEuMjUzNDMsIDEuNjYxMDMsIDIuMDY4MDksIDIuNDc2ODEiLCBcCi0gICAgICAgICAgIjAuMTE4NjQ4LCAwLjUxOTU5OCwgMC44NDUzNDQsIDEuMjUyNzQsIDEuNjYwNjMsIDIuMDY4MTQsIDIuNDc1OTciLCBcCi0gICAgICAgICAgIjAuMTI1ODk1LCAwLjUyMTY1NSwgMC44NDU0MjksIDEuMjUzMDgsIDEuNjYwNDQsIDIuMDY4NTgsIDIuNDc1NzkiLCBcCi0gICAgICAgICAgIjAuMTMyODI0LCAwLjUyMzg5NiwgMC44NDY4MTMsIDEuMjUyODgsIDEuNjYwNzUsIDIuMDY4NzEsIDIuNDc2NDIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0NTI0OCwgMC4xODY4NzEsIDAuMjk5Mzk3LCAwLjQ0MDEyNSwgMC41ODA2NzYsIDAuNzIxNDU1LCAwLjg2MTYxNiIsIFwKLSAgICAgICAgICAiMC4wNTI3MjYsIDAuMTk0MjU0LCAwLjMwNjY1NSwgMC40NDczNzksIDAuNTg3OTczLCAwLjcyODU4NywgMC44NjkxMzEiLCBcCi0gICAgICAgICAgIjAuMDYyNDk5LCAwLjIwMzg3MiwgMC4zMTY2MSwgMC40NTcxOTMsIDAuNTk3NzA3LCAwLjczODI2OSwgMC44Nzk3MzUiLCBcCi0gICAgICAgICAgIjAuMDcyMDk5LCAwLjIxMzI2NywgMC4zMjU5OTksIDAuNDY2NDE1LCAwLjYwNjk3NiwgMC43NDc1NTgsIDAuODg4MDY1IiwgXAotICAgICAgICAgICIwLjA4MDcyNSwgMC4yMjI5MTEsIDAuMzM1NDQ0LCAwLjQ3NjE3MSwgMC42MTY3NDYsIDAuNzU3NDAzLCAwLjg5ODY5IiwgXAotICAgICAgICAgICIwLjA5MTk2LCAwLjIzODQ2OCwgMC4zNTA5MjMsIDAuNDkxMjI0LCAwLjYzMjE5NCwgMC43NzI1MiwgMC45MTMxMTMiLCBcCi0gICAgICAgICAgIjAuMTAwNDg3LCAwLjI1MjEyNSwgMC4zNjQ0OTgsIDAuNTA1MDgzLCAwLjY0NTUzMiwgMC43ODYzMzYsIDAuOTI2ODAzIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4NTQ1MSwgMC4zODMxOTMsIDAuNjIxMDk1LCAwLjkxODc0NywgMS4yMTY1OSwgMS41MTM2MywgMS44MTE2MSIsIFwKLSAgICAgICAgICAiMC4wODYyNTEsIDAuMzgzMDY2LCAwLjYyMTEwNywgMC45MTg1NCwgMS4yMTY4LCAxLjUxNDYzLCAxLjgxMjUyIiwgXAotICAgICAgICAgICIwLjA5MTYzNCwgMC4zODI5NTUsIDAuNjIxMzU2LCAwLjkxODY5NiwgMS4yMTcwMiwgMS41MTQ3LCAxLjgxMTQzIiwgXAotICAgICAgICAgICIwLjA5OTY3OCwgMC4zODM3NDMsIDAuNjIxMTY2LCAwLjkxODUzMywgMS4yMTcwNCwgMS41MTMyOSwgMS44MTE0NCIsIFwKLSAgICAgICAgICAiMC4xMDgzODQsIDAuMzg2Mjc3LCAwLjYyMTM4MywgMC45MTg2OTMsIDEuMjE1OTcsIDEuNTEzNjUsIDEuODExNDciLCBcCi0gICAgICAgICAgIjAuMTIyNjA3LCAwLjM5MzMyOSwgMC42MjM5MjEsIDAuOTE4NzMxLCAxLjIxNjEzLCAxLjUxNDUsIDEuODExNDQiLCBcCi0gICAgICAgICAgIjAuMTMzNjM0LCAwLjQwMTIyNCwgMC42MjgzNTcsIDAuOTIwMDYsIDEuMjE2NjIsIDEuNTEzNiwgMS44MTE1MyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjIxMTQsIDAuMjYyMDMsIDAuNDIxOTMzLCAwLjYyMTM4NSwgMC44MjEyMzIsIDEuMDIwNjYsIDEuMjIxNDgiLCBcCi0gICAgICAgICAgIjAuMDY4MTQ5LCAwLjI2ODM1MiwgMC40MjgwOTcsIDAuNjI3ODUsIDAuODI3MjU3LCAxLjAyNjc0LCAxLjIyNjUiLCBcCi0gICAgICAgICAgIjAuMDc0MDIxLCAwLjI3NDQ1MiwgMC40MzQyNzEsIDAuNjM0MDQzLCAwLjgzMzU3OSwgMS4wMzQxOCwgMS4yMzI2NSIsIFwKLSAgICAgICAgICAiMC4wNzk4MzIsIDAuMjgwMzY1LCAwLjQ0MDI3MywgMC42Mzk5MzIsIDAuODM5NjIzLCAxLjA0MDIzLCAxLjIzOTcyIiwgXAotICAgICAgICAgICIwLjA4NTEzOCwgMC4yODYyODQsIDAuNDQ2MTQyLCAwLjY0NTk1LCAwLjg0NTU3NiwgMS4wNDUyNiwgMS4yNDU2MiIsIFwKLSAgICAgICAgICAiMC4wOTI4NTgsIDAuMjk1NDg5LCAwLjQ1NTUyNCwgMC42NTUzOSwgMC44NTQ5NjQsIDEuMDU0OCwgMS4yNTQyIiwgXAotICAgICAgICAgICIwLjA5ODkwMiwgMC4zMDM2MjcsIDAuNDYzNjIyLCAwLjY2MzQ1NywgMC44NjMxMDMsIDEuMDYyNjcsIDEuMjYyNCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDcwNzMsIDAuNTIwMDAxLCAwLjg1MDQ2NywgMS4yNjM1MSwgMS42NzY3MywgMi4wOTQzMiwgMi41MDM4IiwgXAotICAgICAgICAgICIwLjEwNjkxNiwgMC41MjA3OTksIDAuODUxNzc1LCAxLjI2NTYyLCAxLjY3OTIxLCAyLjA5Mjg0LCAyLjUwNjc1IiwgXAotICAgICAgICAgICIwLjEwODI5NywgMC41MjAwOTEsIDAuODUxMTY0LCAxLjI2Mzk0LCAxLjY3OTMsIDIuMDksIDIuNTA2NjMiLCBcCi0gICAgICAgICAgIjAuMTExMDMyLCAwLjUyMDg0OCwgMC44NTA3ODYsIDEuMjY1NTIsIDEuNjc5MjksIDIuMDkwMSwgMi41MDI2OSIsIFwKLSAgICAgICAgICAiMC4xMTQ3MzUsIDAuNTIxMzM3LCAwLjg1MDczLCAxLjI2NTU4LCAxLjY3Nzg4LCAyLjA5MzA2LCAyLjUwMzAxIiwgXAotICAgICAgICAgICIwLjEyMjI5NSwgMC41MjMxNzUsIDAuODUyMTgyLCAxLjI2MzQ2LCAxLjY3NzAxLCAyLjA4OTU3LCAyLjUwNTI2IiwgXAotICAgICAgICAgICIwLjEyOTYzNywgMC41MjUyNDUsIDAuODUzMTU1LCAxLjI2Mzk2LCAxLjY3OTIzLCAyLjA5MTc3LCAyLjUwNTY5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjQzNDEsIDAuMTAyNDQ1LCAwLjE2NDgyLCAwLjI0MjcyMSwgMC4zMjA2NDUsIDAuMzk4Mzg0LCAwLjQ3NjE2IiwgXAotICAgICAgICAgICIwLjAzMjYwMSwgMC4xMTA3MTUsIDAuMTczMDg0LCAwLjI1MTAwNiwgMC4zMjg4NzksIDAuNDA2Njk2LCAwLjQ4NDM5OCIsIFwKLSAgICAgICAgICAiMC4wNDI3MDcsIDAuMTIxMDg0LCAwLjE4MzQyLCAwLjI2MTMxNiwgMC4zMzkxOTksIDAuNDE3LCAwLjQ5NDgwNyIsIFwKLSAgICAgICAgICAiMC4wNTAzMzIsIDAuMTMxMTg2LCAwLjE5MzUwNSwgMC4yNzE0MDYsIDAuMzQ5MjY4LCAwLjQyNzAyOSwgMC41MDQ3NzQiLCBcCi0gICAgICAgICAgIjAuMDU2MjgsIDAuMTQxNjUsIDAuMjAzOTMzLCAwLjI4MTc3OCwgMC4zNTk2MDksIDAuNDM3MzcxLCAwLjUxNTE0OSIsIFwKLSAgICAgICAgICAiMC4wNjM5MjUsIDAuMTU4NzM0LCAwLjIyMDc1NSwgMC4yOTg1MzQsIDAuMzc2MjkzLCAwLjQ1MzU3NiwgMC41MzE4NTEiLCBcCi0gICAgICAgICAgIjAuMDY5NjM1LCAwLjE3MzQwNCwgMC4yMzU1MTgsIDAuMzEzMjIsIDAuMzkwOTEyLCAwLjQ2ODcxNywgMC41NDY1MjIiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQ3NDYyLCAwLjIxMTc5MSwgMC4zNDMyODYsIDAuNTA3NzM4LCAwLjY3MjI5MiwgMC44MzY3MTMsIDEuMDAxMTkiLCBcCi0gICAgICAgICAgIjAuMDUwNDc0LCAwLjIxMTc4NSwgMC4zNDMyOTEsIDAuNTA3NzQxLCAwLjY3MjIzMywgMC44MzY4MzgsIDEuMDAxMDUiLCBcCi0gICAgICAgICAgIjAuMDU4NjA4LCAwLjIxMjg0OCwgMC4zNDMyNjcsIDAuNTA3NzgxLCAwLjY3MjE0NiwgMC44MzY3MjgsIDEuMDAxMzQiLCBcCi0gICAgICAgICAgIjAuMDY4MDg5LCAwLjIxNzA0OCwgMC4zNDQ1NjYsIDAuNTA3ODExLCAwLjY3MjI4NCwgMC44MzY3MDMsIDEuMDAxMTUiLCBcCi0gICAgICAgICAgIjAuMDc3NTQ2LCAwLjIyMjk5NCwgMC4zNDc4NjEsIDAuNTA4Njg1LCAwLjY3MjE3LCAwLjgzNjgwOCwgMS4wMDEwOCIsIFwKLSAgICAgICAgICAiMC4wOTExMzYsIDAuMjM0NjE2LCAwLjM1NTkzMywgMC41MTMyODEsIDAuNjc0MDA4LCAwLjgzNjg3MiwgMS4wMDEyNyIsIFwKLSAgICAgICAgICAiMC4xMDE3OCwgMC4yNDYwMTUsIDAuMzY0ODI0LCAwLjUxOTQzNywgMC42NzgwNjgsIDAuODM4OTYsIDEuMDAxODEiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDYyNTg5LCAwLjI2MDA2MSwgMC40MTc3MzgsIDAuNjE3NDA4LCAwLjgxNzc4OCwgMS4wMTY5NSwgMS4yMTYzNiIsIFwKLSAgICAgICAgICAiMC4wNjg4ODcsIDAuMjY2NzIxLCAwLjQyNDM2OSwgMC42MjM5NzYsIDAuODIzNzM5LCAxLjAyMzE0LCAxLjIyMzA4IiwgXAotICAgICAgICAgICIwLjA3NjkzNywgMC4yNzQ4MTEsIDAuNDMyNzMxLCAwLjYzMjMyMywgMC44MzIyMzUsIDEuMDMxNDcsIDEuMjMxMjEiLCBcCi0gICAgICAgICAgIjAuMDg1MTk4LCAwLjI4MzA1OCwgMC40NDExNzMsIDAuNjQwOTk2LCAwLjg0MDMwMywgMS4wMzk4NiwgMS4yMzk2MyIsIFwKLSAgICAgICAgICAiMC4wOTMyNDEsIDAuMjkxMzIsIDAuNDQ5NDE1LCAwLjY0ODg1MywgMC44NDg2MzgsIDEuMDQ4MTksIDEuMjQ5MTgiLCBcCi0gICAgICAgICAgIjAuMTA0NjYxLCAwLjMwNDMyNiwgMC40NjI1NzQsIDAuNjYyNTc4LCAwLjg2MjczMywgMS4wNjIyLCAxLjI2MTY4IiwgXAotICAgICAgICAgICIwLjExMzYsIDAuMzE2MjQ1LCAwLjQ3NDA5MSwgMC42NzM4ODUsIDAuODczNTQ0LCAxLjA3MzkzLCAxLjI3MzY3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExMTE0MiwgMC41MjAyNTcsIDAuODUwMzgyLCAxLjI2NTc0LCAxLjY3NzIzLCAyLjA4OTksIDIuNTA3MTIiLCBcCi0gICAgICAgICAgIjAuMTExMTkzLCAwLjUyMDAxOCwgMC44NTE3NTgsIDEuMjY1NDksIDEuNjc5MzksIDIuMDkyOTksIDIuNTA3MDIiLCBcCi0gICAgICAgICAgIjAuMTEzNzAxLCAwLjUyMDc1MiwgMC44NTAzOTEsIDEuMjY1NTQsIDEuNjc3MDQsIDIuMDkwMzQsIDIuNTAzNjMiLCBcCi0gICAgICAgICAgIjAuMTE4MjYyLCAwLjUyMDc1LCAwLjg1MDQ1NywgMS4yNjM3NCwgMS42Nzc3OCwgMi4wOTMwNSwgMi41MDQyMSIsIFwKLSAgICAgICAgICAiMC4xMjM4NDgsIDAuNTIwNjc2LCAwLjg1MDQ5NSwgMS4yNjU1MywgMS42NzcyMiwgMi4wOTMwNywgMi41MDM2OCIsIFwKLSAgICAgICAgICAiMC4xMzQwNTYsIDAuNTI0MDIyLCAwLjg1MTkxNCwgMS4yNjM2NCwgMS42NzY3NSwgMi4wODk3NywgMi41MDQiLCBcCi0gICAgICAgICAgIjAuMTQzNTcxLCAwLjUyNzgwNywgMC44NTMzNTEsIDEuMjY1NTIsIDEuNjc5MjgsIDIuMDg5NzEsIDIuNTAyNzYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQzAiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyMjYwOSwgMC4xMDAwMTMsIDAuMTYxODc4LCAwLjIzOTIyMSwgMC4zMTY1MzcsIDAuMzkzNzU0LCAwLjQ3MDk3NiIsIFwKLSAgICAgICAgICAiMC4wMzA5MTIsIDAuMTA4MzQ3LCAwLjE3MDIzMSwgMC4yNDc1NjEsIDAuMzI0ODc3LCAwLjQwMjA3MSwgMC40NzkzMDUiLCBcCi0gICAgICAgICAgIjAuMDQwNTIxLCAwLjExODY4MywgMC4xODA1NywgMC4yNTc4OSwgMC4zMzUxNjQsIDAuNDEyNDQsIDAuNDg5NTcxIiwgXAotICAgICAgICAgICIwLjA0NzY2LCAwLjEyOTAyNSwgMC4xOTA4NDEsIDAuMjY4MTUzLCAwLjM0NTE4OCwgMC40MjIzODksIDAuNDk5NTkyIiwgXAotICAgICAgICAgICIwLjA1MzA0NiwgMC4xMzk3NTgsIDAuMjAxNTIyLCAwLjI3ODgxLCAwLjM1NjA4MywgMC40MzMyODcsIDAuNTEwNTM5IiwgXAotICAgICAgICAgICIwLjA2MDU3MiwgMC4xNTY0MTUsIDAuMjE4MDgxLCAwLjI5NTMyOSwgMC4zNzI1NDQsIDAuNDQ5NzYzLCAwLjUyNjkwOSIsIFwKLSAgICAgICAgICAiMC4wNjU0MzgsIDAuMTcxMTE3LCAwLjIzMjgxOCwgMC4zMDk5NjksIDAuMzg3MDgxLCAwLjQ2NDI5MywgMC41NDE1NDgiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQ0OTQzLCAwLjIwNzc3OCwgMC4zMzgxNzEsIDAuNTAxMzUxLCAwLjY2NDQ3LCAwLjgyNzY4NSwgMC45OTA3OTQiLCBcCi0gICAgICAgICAgIjAuMDQ4MjAxLCAwLjIwNzgyMiwgMC4zMzgyMTcsIDAuNTAxMzQxLCAwLjY2NDM1LCAwLjgyNzQwNSwgMC45OTA3MTYiLCBcCi0gICAgICAgICAgIjAuMDU2ODUsIDAuMjA4OTksIDAuMzM4Mjg3LCAwLjUwMTI2NCwgMC42NjQ0MzYsIDAuODI3ODA4LCAwLjk5MDc5MiIsIFwKLSAgICAgICAgICAiMC4wNjYyNzcsIDAuMjEzMTg2LCAwLjMzOTU3OCwgMC41MDEzMTQsIDAuNjY0MzMsIDAuODI3Njk0LCAwLjk5MDgwOSIsIFwKLSAgICAgICAgICAiMC4wNzYwNjYsIDAuMjE4OTgyLCAwLjM0Mjc2MiwgMC41MDIyOTksIDAuNjY0NDY5LCAwLjgyNzczOSwgMC45OTA2NjQiLCBcCi0gICAgICAgICAgIjAuMDg4ODM5LCAwLjIzMDgwNiwgMC4zNTEwMTgsIDAuNTA2ODgzLCAwLjY2NjMwNSwgMC44Mjc5NzIsIDAuOTkwNzg4IiwgXAotICAgICAgICAgICIwLjA5OTUyNywgMC4yNDIzNjQsIDAuMzU5OTA5LCAwLjUxMzE0NywgMC42NzAxOTUsIDAuODI5OTk0LCAwLjk5MTM0MSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTc2NzMsIDAuMjU1MTg5LCAwLjQxMjk5NiwgMC42MTMwMjIsIDAuODEyMTMsIDEuMDExOTUsIDEuMjEyMyIsIFwKLSAgICAgICAgICAiMC4wNjQ2MzcsIDAuMjYyMjU3LCAwLjQyMDA1MSwgMC42MTk1NTksIDAuODE5MDMzLCAxLjAxODY0LCAxLjIxODIiLCBcCi0gICAgICAgICAgIjAuMDczOTQyLCAwLjI3MTI2NiwgMC40Mjg5OSwgMC42Mjg1OTUsIDAuODI4MzIyLCAxLjAyNzU3LCAxLjIyNzQ0IiwgXAotICAgICAgICAgICIwLjA4MzYyOCwgMC4yODA1MzksIDAuNDM4MDMxLCAwLjYzNzgzNSwgMC44MzcwOCwgMS4wMzY4NywgMS4yMzY1NyIsIFwKLSAgICAgICAgICAiMC4wOTM0NDEsIDAuMjg5OTYsIDAuNDQ3NDM3LCAwLjY0NzIxMiwgMC44NDY3NTEsIDEuMDQ3MTYsIDEuMjQ1NzYiLCBcCi0gICAgICAgICAgIjAuMTA2NzM5LCAwLjMwNDY4MSwgMC40NjIyNjUsIDAuNjYxNzk1LCAwLjg2MTA1NiwgMS4wNjA1OSwgMS4yNjAxOSIsIFwKLSAgICAgICAgICAiMC4xMTY4MzksIDAuMzE3ODY3LCAwLjQ3NTEwMSwgMC42NzQ1NDgsIDAuODczODU3LCAxLjA3MzU1LCAxLjI3MzQzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExMTE1LCAwLjUxOTk3OSwgMC44NTA0NzIsIDEuMjYzOTMsIDEuNjc2NTYsIDIuMDg5ODUsIDIuNTAzMzEiLCBcCi0gICAgICAgICAgIjAuMTExMTI5LCAwLjUyMDA0NCwgMC44NTA1MiwgMS4yNjU2MSwgMS42NzkyNCwgMi4wOTI5NywgMi41MDQyNSIsIFwKLSAgICAgICAgICAiMC4xMTQ5MTYsIDAuNTIwNzE4LCAwLjg1MDY3MiwgMS4yNjU1NCwgMS42NzkzNywgMi4wOTI4NCwgMi41MDY3OCIsIFwKLSAgICAgICAgICAiMC4xMjEwOTEsIDAuNTE5ODc0LCAwLjg1MTc2NiwgMS4yNjM2MiwgMS42NzkyNCwgMi4wOTAzMSwgMi41MDY5NSIsIFwKLSAgICAgICAgICAiMC4xMjg0MjcsIDAuNTIxMzQsIDAuODUxNzI0LCAxLjI2MzYsIDEuNjc2NTQsIDIuMDkwMTQsIDIuNTA2NzciLCBcCi0gICAgICAgICAgIjAuMTQxMzEzLCAwLjUyNTIyLCAwLjg1MTk0MSwgMS4yNjM1OSwgMS42NzcwNCwgMi4wOTAzLCAyLjUwNjc3IiwgXAotICAgICAgICAgICIwLjE1MjM4OCwgMC41MzA1NjcsIDAuODUyMjE5LCAxLjI2MzYsIDEuNjc5NDMsIDIuMDg5OTQsIDIuNTAyODMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA4Njc1LCAwLjAwODY3NSwgMC4wMDg2NzMsIDAuMDA4Njc0LCAwLjAwODY3MiwgMC4wMDg2NzIsIDAuMDA4NjcxIiwgXAotICAgICAgICAgICIwLjAwODYyOSwgMC4wMDg2NCwgMC4wMDg2NCwgMC4wMDg2NCwgMC4wMDg2NDQsIDAuMDA4NjM5LCAwLjAwODYzOCIsIFwKLSAgICAgICAgICAiMC4wMDg2MjksIDAuMDA4NjM3LCAwLjAwODYzOCwgMC4wMDg2MzcsIDAuMDA4NjQxLCAwLjAwODYzNSwgMC4wMDg2MzQiLCBcCi0gICAgICAgICAgIjAuMDA4NjY0LCAwLjAwODY0NywgMC4wMDg2NDIsIDAuMDA4NjM5LCAwLjAwODYzNywgMC4wMDg2MzcsIDAuMDA4NjM1IiwgXAotICAgICAgICAgICIwLjAwODczNCwgMC4wMDg2NzIsIDAuMDA4NjYsIDAuMDA4NjUxLCAwLjAwODY0NywgMC4wMDg2NDQsIDAuMDA4NjQxIiwgXAotICAgICAgICAgICIwLjAwODg5MywgMC4wMDg3MzMsIDAuMDA4NzAyLCAwLjAwODY4LCAwLjAwODY2OCwgMC4wMDg2NjUsIDAuMDA4NjU5IiwgXAotICAgICAgICAgICIwLjAwOTA5MywgMC4wMDg4MDUsIDAuMDA4NzUzLCAwLjAwODcyNCwgMC4wMDg3MDQsIDAuMDA4NjkxLCAwLjAwODY4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxNTY3LCAwLjAwMTU3NSwgMC4wMDE1NzYsIDAuMDAxNTc2LCAwLjAwMTU3NiwgMC4wMDE1NzYsIDAuMDAxNTc2IiwgXAotICAgICAgICAgICIwLjAwMTQ5MiwgMC4wMDE1MzgsIDAuMDAxNTQzLCAwLjAwMTU0NiwgMC4wMDE1NDgsIDAuMDAxNTQ4LCAwLjAwMTU0OSIsIFwKLSAgICAgICAgICAiMC4wMDE0NTIsIDAuMDAxNTIsIDAuMDAxNTMxLCAwLjAwMTUzNywgMC4wMDE1NCwgMC4wMDE1NDEsIDAuMDAxNTQyIiwgXAotICAgICAgICAgICIwLjAwMTQ0MywgMC4wMDE1MTEsIDAuMDAxNTI0LCAwLjAwMTUzMSwgMC4wMDE1MzUsIDAuMDAxNTM3LCAwLjAwMTUzOSIsIFwKLSAgICAgICAgICAiMC4wMDE0NjMsIDAuMDAxNTEyLCAwLjAwMTUyMywgMC4wMDE1MywgMC4wMDE1MzQsIDAuMDAxNTM3LCAwLjAwMTUzOCIsIFwKLSAgICAgICAgICAiMC4wMDE1NSwgMC4wMDE1MzUsIDAuMDAxNTM4LCAwLjAwMTU0LCAwLjAwMTU0MiwgMC4wMDE1NDIsIDAuMDAxNTQzIiwgXAotICAgICAgICAgICIwLjAwMTY3OSwgMC4wMDE1NzksIDAuMDAxNTY4LCAwLjAwMTU2MSwgMC4wMDE1NTgsIDAuMDAxNTU2LCAwLjAwMTU1NCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkExIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDc3OSwgMC4wMDc3OTMsIDAuMDA3Nzk0LCAwLjAwNzc5MywgMC4wMDc3OTIsIDAuMDA3NzksIDAuMDA3Nzg4IiwgXAotICAgICAgICAgICIwLjAwNzc0MiwgMC4wMDc3NTUsIDAuMDA3NzU3LCAwLjAwNzc1NiwgMC4wMDc3NTUsIDAuMDA3NzU1LCAwLjAwNzc1NCIsIFwKLSAgICAgICAgICAiMC4wMDc3NjUsIDAuMDA3NzU4LCAwLjAwNzc1NiwgMC4wMDc3NTUsIDAuMDA3NzUzLCAwLjAwNzc1NCwgMC4wMDc3NSIsIFwKLSAgICAgICAgICAiMC4wMDc4ODIsIDAuMDA3Nzk2LCAwLjAwNzc4MSwgMC4wMDc3NzIsIDAuMDA3NzY2LCAwLjAwNzc2MywgMC4wMDc3NTkiLCBcCi0gICAgICAgICAgIjAuMDA4MDA3LCAwLjAwNzgzOCwgMC4wMDc4MTEsIDAuMDA3NzkzLCAwLjAwNzc4MywgMC4wMDc3NzUsIDAuMDA3NzciLCBcCi0gICAgICAgICAgIjAuMDA4Mjg3LCAwLjAwNzkzMiwgMC4wMDc4NzMsIDAuMDA3ODM1LCAwLjAwNzgyMiwgMC4wMDc4MDMsIDAuMDA3NzkzIiwgXAotICAgICAgICAgICIwLjAwODQ5NiwgMC4wMDgwMzQsIDAuMDA3OTUxLCAwLjAwNzg5MywgMC4wMDc4NjcsIDAuMDA3ODQ3LCAwLjAwNzgzMiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDk4LCAwLjAwMTAxNCwgMC4wMDEwMTgsIDAuMDAxMDIsIDAuMDAxMDIxLCAwLjAwMTAyMSwgMC4wMDEwMjEiLCBcCi0gICAgICAgICAgIjAuMDAwODc0LCAwLjAwMTAwMywgMC4wMDEwMiwgMC4wMDEwMjksIDAuMDAxMDM0LCAwLjAwMTAzNiwgMC4wMDEwMzgiLCBcCi0gICAgICAgICAgIjAuMDAwNzg0LCAwLjAwMDk2OCwgMC4wMDA5OTgsIDAuMDAxMDE0LCAwLjAwMTAyMywgMC4wMDEwMjgsIDAuMDAxMDMyIiwgXAotICAgICAgICAgICIwLjAwMDc0OCwgMC4wMDA5NDEsIDAuMDAwOTc5LCAwLjAwMTAwMSwgMC4wMDEwMTMsIDAuMDAxMDIsIDAuMDAxMDI1IiwgXAotICAgICAgICAgICIwLjAwMDc1NiwgMC4wMDA5MjcsIDAuMDAwOTY2LCAwLjAwMDk5MiwgMC4wMDEwMDUsIDAuMDAxMDE0LCAwLjAwMTAyIiwgXAotICAgICAgICAgICIwLjAwMDgzMiwgMC4wMDA5MjYsIDAuMDAwOTY0LCAwLjAwMDk4OCwgMC4wMDEwMDMsIDAuMDAxMDEyLCAwLjAwMTAxOCIsIFwKLSAgICAgICAgICAiMC4wMDA5NTMsIDAuMDAwOTU0LCAwLjAwMDk4LCAwLjAwMDk5OSwgMC4wMDEwMSwgMC4wMDEwMTgsIDAuMDAxMDIzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjY1NywgMC4wMDY2NjcsIDAuMDA2NjY5LCAwLjAwNjY2OSwgMC4wMDY2NjksIDAuMDA2NjY5LCAwLjAwNjY2OCIsIFwKLSAgICAgICAgICAiMC4wMDY2MzQsIDAuMDA2NjYzLCAwLjAwNjY2NywgMC4wMDY2NjksIDAuMDA2NjcxLCAwLjAwNjY3LCAwLjAwNjY3IiwgXAotICAgICAgICAgICIwLjAwNjY3NiwgMC4wMDY2OTMsIDAuMDA2Njg2LCAwLjAwNjY4NSwgMC4wMDY2ODEsIDAuMDA2Njc5LCAwLjAwNjY3NiIsIFwKLSAgICAgICAgICAiMC4wMDY3NzQsIDAuMDA2NzM5LCAwLjAwNjcxOCwgMC4wMDY3MDUsIDAuMDA2Njk4LCAwLjAwNjY5NCwgMC4wMDY2OTEiLCBcCi0gICAgICAgICAgIjAuMDA2OTMzLCAwLjAwNjc5OCwgMC4wMDY3NiwgMC4wMDY3MzYsIDAuMDA2NzE4LCAwLjAwNjcxNiwgMC4wMDY3MDgiLCBcCi0gICAgICAgICAgIjAuMDA3MjQxLCAwLjAwNjkyMSwgMC4wMDY4MzksIDAuMDA2NzkyLCAwLjAwNjc3LCAwLjAwNjc1LCAwLjAwNjc0MyIsIFwKLSAgICAgICAgICAiMC4wMDc1NDQsIDAuMDA3MDUyLCAwLjAwNjkzMiwgMC4wMDY4NjQsIDAuMDA2ODIsIDAuMDA2Nzk4LCAwLjAwNjc4MiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTY0OCwgMC4wMDE2NzksIDAuMDAxNjgzLCAwLjAwMTY4NCwgMC4wMDE2ODUsIDAuMDAxNjg2LCAwLjAwMTY4NiIsIFwKLSAgICAgICAgICAiMC4wMDE1MzksIDAuMDAxNjQ0LCAwLjAwMTY2LCAwLjAwMTY2OSwgMC4wMDE2NzQsIDAuMDAxNjc2LCAwLjAwMTY3OCIsIFwKLSAgICAgICAgICAiMC4wMDE0OTYsIDAuMDAxNjEzLCAwLjAwMTYzOCwgMC4wMDE2NTMsIDAuMDAxNjYxLCAwLjAwMTY2NiwgMC4wMDE2NjkiLCBcCi0gICAgICAgICAgIjAuMDAxNTExLCAwLjAwMTU5OCwgMC4wMDE2MjYsIDAuMDAxNjQzLCAwLjAwMTY1MywgMC4wMDE2NTksIDAuMDAxNjY0IiwgXAotICAgICAgICAgICIwLjAwMTU3NiwgMC4wMDE2MDMsIDAuMDAxNjI2LCAwLjAwMTY0MiwgMC4wMDE2NTEsIDAuMDAxNjU3LCAwLjAwMTY2MiIsIFwKLSAgICAgICAgICAiMC4wMDE3NTQsIDAuMDAxNjQ0LCAwLjAwMTY0OCwgMC4wMDE2NTQsIDAuMDAxNjYsIDAuMDAxNjY0LCAwLjAwMTY2NyIsIFwKLSAgICAgICAgICAiMC4wMDE5NTgsIDAuMDAxNzExLCAwLjAwMTY4OSwgMC4wMDE2ODEsIDAuMDAxNjgsIDAuMDAxNjc5LCAwLjAwMTY4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQzAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNTEwOSwgMC4wMDUxMzcsIDAuMDA1MTQsIDAuMDA1MTQxLCAwLjAwNTE0MiwgMC4wMDUxNDIsIDAuMDA1MTQyIiwgXAotICAgICAgICAgICIwLjAwNTA5MiwgMC4wMDUxNTIsIDAuMDA1MTYsIDAuMDA1MTY0LCAwLjAwNTE2NiwgMC4wMDUxNjgsIDAuMDA1MTY4IiwgXAotICAgICAgICAgICIwLjAwNTE1OCwgMC4wMDUxNjgsIDAuMDA1MTcyLCAwLjAwNTE3NCwgMC4wMDUxNzUsIDAuMDA1MTc1LCAwLjAwNTE3NiIsIFwKLSAgICAgICAgICAiMC4wMDUyMzUsIDAuMDA1MjM4LCAwLjAwNTIxNywgMC4wMDUyMDUsIDAuMDA1MTk3LCAwLjAwNTE5NCwgMC4wMDUxOTIiLCBcCi0gICAgICAgICAgIjAuMDA1NDMyLCAwLjAwNTI0MSwgMC4wMDUyMiwgMC4wMDUyMTIsIDAuMDA1MTk1LCAwLjAwNTIsIDAuMDA1MTk1IiwgXAotICAgICAgICAgICIwLjAwNTY4MSwgMC4wMDUzNzYsIDAuMDA1MzEsIDAuMDA1Mjc4LCAwLjAwNTI1OCwgMC4wMDUyNDMsIDAuMDA1MjM1IiwgXAotICAgICAgICAgICIwLjAwNTk4MSwgMC4wMDU1MDQsIDAuMDA1Mzk5LCAwLjAwNTM0MSwgMC4wMDUzMDYsIDAuMDA1Mjg4LCAwLjAwNTI3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTYzOCwgMC4wMDE2NzUsIDAuMDAxNjc5LCAwLjAwMTY4MSwgMC4wMDE2ODEsIDAuMDAxNjgyLCAwLjAwMTY4MiIsIFwKLSAgICAgICAgICAiMC4wMDE1NywgMC4wMDE2NDgsIDAuMDAxNjYxLCAwLjAwMTY2OSwgMC4wMDE2NzMsIDAuMDAxNjc1LCAwLjAwMTY3NiIsIFwKLSAgICAgICAgICAiMC4wMDE1OTksIDAuMDAxNjM3LCAwLjAwMTY1MiwgMC4wMDE2NjIsIDAuMDAxNjY3LCAwLjAwMTY3LCAwLjAwMTY3MiIsIFwKLSAgICAgICAgICAiMC4wMDE3NDgsIDAuMDAxNjY5LCAwLjAwMTY3LCAwLjAwMTY3MywgMC4wMDE2NzUsIDAuMDAxNjc2LCAwLjAwMTY3NyIsIFwKLSAgICAgICAgICAiMC4wMDE4MzEsIDAuMDAxNjkxLCAwLjAwMTY4LCAwLjAwMTY3OCwgMC4wMDE2NzksIDAuMDAxNjc5LCAwLjAwMTY3OSIsIFwKLSAgICAgICAgICAiMC4wMDIxNDUsIDAuMDAxODEsIDAuMDAxNzU4LCAwLjAwMTczLCAwLjAwMTcxNywgMC4wMDE3MSwgMC4wMDE3MDUiLCBcCi0gICAgICAgICAgIjAuMDAyMzk2LCAwLjAwMiwgMC4wMDE4ODcsIDAuMDAxODIzLCAwLjAwMTc5LCAwLjAwMTc2OSwgMC4wMDE3NTUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogT0FJMjExWDQgKgotICogLS0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKE9BSTIxMVg0KSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDEuMzU5MTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQTApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMzQ2MDgzOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMzQ1NDE2OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMzQ2MDgzOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjA5NywgMC4wMDIwOTQsIDAuMDAyMDk0LCAwLjAwMjA5NCwgMC4wMDIwOTMsIDAuMDAyMDk0LCAwLjAwMjA5NCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjA5OSwgMC4wMDIxMDEsIDAuMDAyMTAxLCAwLjAwMjEwMiwgMC4wMDIxMDMsIDAuMDAyMTAzLCAwLjAwMjEwMSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQTEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMzM1MjE3OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMzM1MjE3OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMzM0MzA5OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjA5OCwgMC4wMDIwOTYsIDAuMDAyMDk1LCAwLjAwMjA5NSwgMC4wMDIwOTUsIDAuMDAyMDk0LCAwLjAwMjA5NCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjA5OSwgMC4wMDIxLCAwLjAwMjEsIDAuMDAyMTAxLCAwLjAwMjEwMSwgMC4wMDIxMDIsIDAuMDAyMSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQjApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMzIwNjQ4OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMzIwNjQ4OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMzE5OTg7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyMDk3LCAwLjAwMjA5NSwgMC4wMDIwOTQsIDAuMDAyMDk1LCAwLjAwMjA5NCwgMC4wMDIwOTQsIDAuMDAyMDkzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyMDk5LCAwLjAwMjEwMSwgMC4wMDIxMDEsIDAuMDAyMTAyLCAwLjAwMjEwMywgMC4wMDIxMDQsIDAuMDAyMTA0Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihDMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAzMjE5MjQ7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAzMjE3ODI7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAzMjE5MjQ7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNDI3LCAwLjAwMDQyNSwgMC4wMDA0MjUsIDAuMDAwNDIzLCAwLjAwMDQyMywgMC4wMDA0MjQsIDAuMDAwNDIzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyMzgyLCAwLjAwMjM4NSwgMC4wMDIzODQsIDAuMDAyMzgzLCAwLjAwMjM4MywgMC4wMDIzODMsIDAuMDAyMzgzIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuNTM4MDc5OwotICAgIGZ1bmN0aW9uIDogIighKCgoQTArQTEpIEIwKSBDMCkpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzI5MSwgMC4xMzMzMjgsIDAuMjMyOTUyLCAwLjMwMzc3MiwgMC40MTc0OTcsIDAuNTE2ODA5LCAwLjY1ODg4IiwgXAotICAgICAgICAgICIwLjAzOTAyNiwgMC4xMzk1MjcsIDAuMjM5MDQ1LCAwLjMxMDA5MywgMC40MjM2MTksIDAuNTIyODE5LCAwLjY2NDY0IiwgXAotICAgICAgICAgICIwLjA0NjI3MSwgMC4xNDY5MjksIDAuMjQ2NTI5LCAwLjMxNzc0NCwgMC40MzEwODYsIDAuNTMwNTM3LCAwLjY3MjMyMyIsIFwKLSAgICAgICAgICAiMC4wNTIyMTcsIDAuMTU0MzQ3LCAwLjI1NDA0OSwgMC4zMjUwNzgsIDAuNDM4NzQ3LCAwLjUzODIyMywgMC42Nzk2OTYiLCBcCi0gICAgICAgICAgIjAuMDU3MjU2LCAwLjE2MTczNSwgMC4yNjE0OTIsIDAuMzMyNTU5LCAwLjQ0NjA2MiwgMC41NDU0NjUsIDAuNjg3NjUiLCBcCi0gICAgICAgICAgIjAuMDYzNjIyLCAwLjE3MzY4NSwgMC4yNzMxNjcsIDAuMzQ0Mjg0LCAwLjQ1ODA3MSwgMC41NTczOTgsIDAuNjk5NzQ2IiwgXAotICAgICAgICAgICIwLjA2ODQ4NywgMC4xODQwNzEsIDAuMjgzNTgyLCAwLjM1NDY2LCAwLjQ2ODYyMywgMC41NjgwMDksIDAuNzEwMDg4Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU1NjY4LCAwLjI2NjAzLCAwLjQ3NjQwNiwgMC42MjY1NzIsIDAuODY2NjkzLCAxLjA3Njg5LCAxLjM3NzE4IiwgXAotICAgICAgICAgICIwLjA1NjY5MywgMC4yNjU3NzEsIDAuNDc2MzQyLCAwLjYyNjQ2NSwgMC44NjY3MzQsIDEuMDc3NDEsIDEuMzc3ODgiLCBcCi0gICAgICAgICAgIjAuMDYxMDgyLCAwLjI2NjI0NSwgMC40NzYxMzcsIDAuNjI2NDE0LCAwLjg2NjY1NSwgMS4wNzcyNCwgMS4zNzY4NyIsIFwKLSAgICAgICAgICAiMC4wNjcwNCwgMC4yNjgwMDUsIDAuNDc2MTcsIDAuNjI2NDY4LCAwLjg2NjkzMSwgMS4wNzY5LCAxLjM3Nzg5IiwgXAotICAgICAgICAgICIwLjA3MzQ1OCwgMC4yNzA5MDcsIDAuNDc3NDI4LCAwLjYyNjY4NSwgMC44NjY5ODMsIDEuMDc3NTEsIDEuMzc3NDQiLCBcCi0gICAgICAgICAgIjAuMDgzNDYsIDAuMjc3NTEzLCAwLjQ4MDYyOSwgMC42Mjg2MTMsIDAuODY3MDQ0LCAxLjA3NzI3LCAxLjM3NzIxIiwgXAotICAgICAgICAgICIwLjA5MTQ4OSwgMC4yODQzNTksIDAuNDg1MjY5LCAwLjYzMTcyOSwgMC44Njg1OTcsIDEuMDc3MzUsIDEuMzc3MTIiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDYxNTIsIDAuMTg3MTk4LCAwLjMyNzc3OCwgMC40Mjc5NTIsIDAuNTg4OTgyLCAwLjcyOTMxNiwgMC45MzA5MjciLCBcCi0gICAgICAgICAgIjAuMDUyMTE3LCAwLjE5MzI4MSwgMC4zMzM5NzIsIDAuNDM0MjIyLCAwLjU5NDc5OCwgMC43MzUzNTIsIDAuOTM2NzQ4IiwgXAotICAgICAgICAgICIwLjA1ODEyNiwgMC4xOTkzODQsIDAuMzQwMDM3LCAwLjQ0MDM5MiwgMC42MDA5ODIsIDAuNzQxNDQ4LCAwLjk0MjMwMyIsIFwKLSAgICAgICAgICAiMC4wNjM1NjIsIDAuMjA1MTY0LCAwLjM0NjA2MSwgMC40NDYzNzgsIDAuNjA3MjEyLCAwLjc0NzY1NywgMC45NDkwMjYiLCBcCi0gICAgICAgICAgIjAuMDY4MTgyLCAwLjIxMDg1OCwgMC4zNTE3MTUsIDAuNDUyMDE5LCAwLjYxMjg2NCwgMC43NTM2NTUsIDAuOTU0NjA4IiwgXAotICAgICAgICAgICIwLjA3NDc2MiwgMC4yMjAxNjUsIDAuMzYwODc2LCAwLjQ2MTQ0OSwgMC42MjIwMDEsIDAuNzYyNjc3LCAwLjk2MzQ2OCIsIFwKLSAgICAgICAgICAiMC4wNzk5MjIsIDAuMjI4MzA1LCAwLjM2OTExMywgMC40Njk1ODMsIDAuNjMwMjUxLCAwLjc3MDgzOSwgMC45NzE1NzkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzE0MDksIDAuMzYzMzM4LCAwLjY1NTA2NCwgMC44NjMxNTEsIDEuMTk2ODMsIDEuNDg4NDcsIDEuOTA1NjkiLCBcCi0gICAgICAgICAgIjAuMDcxNjIsIDAuMzYzMzcxLCAwLjY1NTAwMSwgMC44NjMxMzQsIDEuMTk2NSwgMS40ODg3MywgMS45MDQ4MSIsIFwKLSAgICAgICAgICAiMC4wNzM2MDYsIDAuMzYzMjY4LCAwLjY1NTIwNSwgMC44NjM1MywgMS4xOTY0OCwgMS40ODgxNSwgMS45MDYxNyIsIFwKLSAgICAgICAgICAiMC4wNzY5MDgsIDAuMzYzNzI1LCAwLjY1NTA2NywgMC44NjMyNTEsIDEuMTk2NDksIDEuNDg4OTQsIDEuOTA1MjIiLCBcCi0gICAgICAgICAgIjAuMDgxNDEzLCAwLjM2NDk1OSwgMC42NTUxOTUsIDAuODYzNDk0LCAxLjE5NzAyLCAxLjQ4ODE1LCAxLjkwNTI0IiwgXAotICAgICAgICAgICIwLjA4OTA0MSwgMC4zNjgxMTIsIDAuNjU2Mzg5LCAwLjg2MzU3NywgMS4xOTY0NiwgMS40ODg3OCwgMS45MDUwNiIsIFwKLSAgICAgICAgICAiMC4wOTU5NSwgMC4zNzE4NywgMC42NTgyMjUsIDAuODY0OTQ5LCAxLjE5NjYyLCAxLjQ4ODIyLCAxLjkwNDkzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkExIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzMDY0NCwgMC4xMzEwNjgsIDAuMjMwNTQ3LCAwLjMwMTYyNSwgMC40MTUzNTYsIDAuNTE0NTExLCAwLjY1NjgzIiwgXAotICAgICAgICAgICIwLjAzODEyMSwgMC4xMzg2MzIsIDAuMjM3OTc4LCAwLjMwOTEwMywgMC40MjI2MTYsIDAuNTIyNDMxLCAwLjY2NDE0IiwgXAotICAgICAgICAgICIwLjA0Nzk5NywgMC4xNDgyMTEsIDAuMjQ3ODIyLCAwLjMxODkwNCwgMC40MzIzMTIsIDAuNTMxNjUzLCAwLjY3MjgxNiIsIFwKLSAgICAgICAgICAiMC4wNTYxMywgMC4xNTc4MjIsIDAuMjU3MTcyLCAwLjMyODQ3NywgMC40NDE4NzIsIDAuNTQxMjUzLCAwLjY4MzQzNCIsIFwKLSAgICAgICAgICAiMC4wNjI3NDcsIDAuMTY3MzQ1LCAwLjI2Njc4MywgMC4zMzc3MDksIDAuNDUxMjIzLCAwLjU1MDQ3NiwgMC42OTIzMzkiLCBcCi0gICAgICAgICAgIjAuMDcxNCwgMC4xODMwNDksIDAuMjgyMjM0LCAwLjM1MzE2NSwgMC40NjY2MzEsIDAuNTY1OTYxLCAwLjcwODEzNSIsIFwKLSAgICAgICAgICAiMC4wNzc3ODgsIDAuMTk2ODg2LCAwLjI5NTg2NSwgMC4zNjY2OCwgMC40ODAxNTksIDAuNTc5NDA4LCAwLjcyMTI1OSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1NTcyLCAwLjI2NjAxNywgMC40NzYzNTUsIDAuNjI2NDI1LCAwLjg2Njg1NywgMS4wNzcxNywgMS4zNzczNiIsIFwKLSAgICAgICAgICAiMC4wNTc2MzksIDAuMjY1OTQ1LCAwLjQ3NjAxMSwgMC42MjY0MjcsIDAuODY2OTgxLCAxLjA3NzMzLCAxLjM3NzQxIiwgXAotICAgICAgICAgICIwLjA2NDcwMSwgMC4yNjYxNzYsIDAuNDc2MTg0LCAwLjYyNjUyOSwgMC44NjY5ODYsIDEuMDc2ODgsIDEuMzc2NyIsIFwKLSAgICAgICAgICAiMC4wNzM2MTIsIDAuMjY4ODMxLCAwLjQ3NjE5MywgMC42MjYzNjEsIDAuODY2NzI5LCAxLjA3NjksIDEuMzc3NTIiLCBcCi0gICAgICAgICAgIjAuMDgyMjcxLCAwLjI3MzUwNywgMC40Nzc1MTYsIDAuNjI2NDU5LCAwLjg2NjY1MSwgMS4wNzczOSwgMS4zNzc0OCIsIFwKLSAgICAgICAgICAiMC4wOTQzMDcsIDAuMjgzMjMyLCAwLjQ4MjcyOSwgMC42MjkwOTIsIDAuODY3MDAyLCAxLjA3NzQzLCAxLjM3NzIxIiwgXAotICAgICAgICAgICIwLjEwNDA2MywgMC4yOTMzNiwgMC40ODkyOTcsIDAuNjMzNDQ2LCAwLjg2ODY1NSwgMS4wNzcyNiwgMS4zNzgiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDE5NTYsIDAuMTgzODg4LCAwLjMyNTM4NSwgMC40MjYxNzcsIDAuNTg4MjM5LCAwLjcyOTQ2NiwgMC45MzIzOTYiLCBcCi0gICAgICAgICAgIjAuMDQ3Njk5LCAwLjE5MDAwNiwgMC4zMzE1NDUsIDAuNDMyNzIyLCAwLjU5NDMxNSwgMC43MzU3MjIsIDAuOTM4MzYyIiwgXAotICAgICAgICAgICIwLjA1MzUyNiwgMC4xOTU5NzksIDAuMzM3NzE1LCAwLjQzODc4MSwgMC42MDA0NTksIDAuNzQxOTksIDAuOTQzOTE3IiwgXAotICAgICAgICAgICIwLjA1ODU1NiwgMC4yMDE2NzMsIDAuMzQzNDg1LCAwLjQ0NDcwOCwgMC42MDY2NzEsIDAuNzQ3Nzk1LCAwLjk0OTg3MSIsIFwKLSAgICAgICAgICAiMC4wNjI4ODgsIDAuMjA3NDIsIDAuMzQ5MzQ4LCAwLjQ1MDM2MSwgMC42MTIzMjcsIDAuNzUzNzExLCAwLjk1NjkzMiIsIFwKLSAgICAgICAgICAiMC4wNjkwNTUsIDAuMjE2NTc1LCAwLjM1ODMyNCwgMC40NTk1NTUsIDAuNjIxMjk1LCAwLjc2Mjg3NCwgMC45NjUxMjIiLCBcCi0gICAgICAgICAgIjAuMDczODcsIDAuMjI0NjgzLCAwLjM2NjYxLCAwLjQ2Nzc4MywgMC42MzAwMTMsIDAuNzcxMzEsIDAuOTczODkyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY2MDY1LCAwLjM1OTYxMywgMC42NTMwMTksIDAuODY0MDQyLCAxLjE5ODE3LCAxLjQ5NDMsIDEuOTExODQiLCBcCi0gICAgICAgICAgIjAuMDY2MjUyLCAwLjM2MDA2OSwgMC42NTQwNDYsIDAuODYyNjc1LCAxLjIwMDEyLCAxLjQ5NDA5LCAxLjkxMTIiLCBcCi0gICAgICAgICAgIjAuMDY4MzU1LCAwLjM2MDAxOSwgMC42NTMwMjQsIDAuODY0MTM1LCAxLjIwMDEzLCAxLjQ5MjI5LCAxLjkxNDA4IiwgXAotICAgICAgICAgICIwLjA3MTk5MiwgMC4zNTk4NjMsIDAuNjU0MDY4LCAwLjg2MjY5OSwgMS4xOTgyNCwgMS40OTQxMSwgMS45MTQxMyIsIFwKLSAgICAgICAgICAiMC4wNzY4MTUsIDAuMzYxNzMzLCAwLjY1MzE4LCAwLjg2MzA0NywgMS4xOTg3NSwgMS40OTQxNSwgMS45MTE4MyIsIFwKLSAgICAgICAgICAiMC4wODQ2MzcsIDAuMzY0MjAxLCAwLjY1NTI0NCwgMC44NjMyNTUsIDEuMjAwMDEsIDEuNDkyMjcsIDEuOTE0MzEiLCBcCi0gICAgICAgICAgIjAuMDkxNTgxLCAwLjM2ODEyMSwgMC42NTcxODEsIDAuODY1NDA1LCAxLjE5ODM2LCAxLjQ5MTY3LCAxLjkxMTA4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxNjQ3MiwgMC4wNzIwMSwgMC4xMjcxOTQsIDAuMTY2NjUxLCAwLjIyOTc1LCAwLjI4NDk2NiwgMC4zNjM3NTYiLCBcCi0gICAgICAgICAgIjAuMDI0NzQzLCAwLjA4MDIxNSwgMC4xMzU0NzksIDAuMTc0OTM3LCAwLjIzODA0MywgMC4yOTMyMDYsIDAuMzcyMDg1IiwgXAotICAgICAgICAgICIwLjAzMjc2NSwgMC4wOTA0ODUsIDAuMTQ1NzUyLCAwLjE4NTA3NSwgMC4yNDgxNDEsIDAuMzAzMzYxLCAwLjM4MjE2MSIsIFwKLSAgICAgICAgICAiMC4wMzgyOTEsIDAuMTAwNzUsIDAuMTU1ODkyLCAwLjE5NTMwNiwgMC4yNTgwOTIsIDAuMzEzNTk1LCAwLjM5MjM0MyIsIFwKLSAgICAgICAgICAiMC4wNDI0NzEsIDAuMTExMjkyLCAwLjE2NjMxOCwgMC4yMDU3MzksIDAuMjY4Nzc2LCAwLjMyMzU1NSwgMC40MDI3NDYiLCBcCi0gICAgICAgICAgIjAuMDQ3OTU3LCAwLjEyNzc0MywgMC4xODMyMzUsIDAuMjIyNTUyLCAwLjI4NTU1OSwgMC4zNDA2NCwgMC40MTk0NzYiLCBcCi0gICAgICAgICAgIjAuMDUxNzksIDAuMTQwMDIzLCAwLjE5ODE4MywgMC4yMzczMDksIDAuMzAwMTk1LCAwLjM1NTM2NiwgMC40MzQwMjMiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzEzNjEsIDAuMTQ3ODEsIDAuMjY0MzU0LCAwLjM0NzYzLCAwLjQ4MTAxNCwgMC41OTc1OTYsIDAuNzY0MjgxIiwgXAotICAgICAgICAgICIwLjAzNTkzMiwgMC4xNDc3ODksIDAuMjY0MzU3LCAwLjM0NzcxMSwgMC40ODEwMTMsIDAuNTk3NTY3LCAwLjc2NDMxOSIsIFwKLSAgICAgICAgICAiMC4wNDUyMDYsIDAuMTUwOTIzLCAwLjI2NDY4OSwgMC4zNDc2MywgMC40ODA5MiwgMC41OTc1OTIsIDAuNzY0MzI2IiwgXAotICAgICAgICAgICIwLjA1NDQ1OSwgMC4xNTcwMzcsIDAuMjY3NTg2LCAwLjM0ODg2NywgMC40ODA5MTIsIDAuNTk3NTgzLCAwLjc2NDI5NSIsIFwKLSAgICAgICAgICAiMC4wNjI2OSwgMC4xNjQ1NjYsIDAuMjcyNDA5LCAwLjM1MjE3NywgMC40ODIxNywgMC41OTc3NDQsIDAuNzY0Mjc5IiwgXAotICAgICAgICAgICIwLjA3NDIwOSwgMC4xNzgyMzIsIDAuMjgyNTI0LCAwLjM2MDA5MywgMC40ODczMywgMC42MDA3MDYsIDAuNzY0ODkzIiwgXAotICAgICAgICAgICIwLjA4MzcyNCwgMC4xOTExMzQsIDAuMjkyOTc5LCAwLjM2ODk1NSwgMC40OTM5ODQsIDAuNjA1NzAyLCAwLjc2NzgyNyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0MzEyLCAwLjE4NDMxLCAwLjMyNDk3NiwgMC40MjUxMTEsIDAuNTg2MTQ1LCAwLjcyNjQ4LCAwLjkyODQ1NiIsIFwKLSAgICAgICAgICAiMC4wNDkyOTQsIDAuMTkwNzc4LCAwLjMzMTM4MywgMC40MzE3NzgsIDAuNTkyNjkyLCAwLjczMjk4MSwgMC45MzQwNjYiLCBcCi0gICAgICAgICAgIjAuMDU3MjEyLCAwLjE5ODc3OCwgMC4zMzk1NjksIDAuNDQwMjI3LCAwLjYwMDY2LCAwLjc0MTEzNiwgMC45NDI2MjUiLCBcCi0gICAgICAgICAgIjAuMDY0OTI5LCAwLjIwNjc5MSwgMC4zNDc3NjIsIDAuNDQ4MzUsIDAuNjA4ODgzLCAwLjc0OTQ4MiwgMC45NTEzODIiLCBcCi0gICAgICAgICAgIjAuMDcxNTEsIDAuMjE0ODY5LCAwLjM1NTYzNiwgMC40NTY1NTEsIDAuNjE3MTk1LCAwLjc1NzgzOSwgMC45NTkwMzUiLCBcCi0gICAgICAgICAgIjAuMDgwNjk2LCAwLjIyODA4LCAwLjM2OTA2MSwgMC40Njk1MDgsIDAuNjMwNTksIDAuNzcwNzU4LCAwLjk3MjM2NyIsIFwKLSAgICAgICAgICAiMC4wODc4NTYsIDAuMjM5NjI4LCAwLjM4MDM0MiwgMC40ODA5MjUsIDAuNjQxNjU5LCAwLjc4Mjc4MywgMC45ODM1MyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3MTQxLCAwLjM2MzM0NCwgMC42NTUyMDMsIDAuODYzMTQ3LCAxLjE5ODMsIDEuNDk0MDksIDEuOTExNzIiLCBcCi0gICAgICAgICAgIjAuMDcxOTI1LCAwLjM2MzMwNywgMC42NTUxNjgsIDAuODY0MDQsIDEuMjAwMDQsIDEuNDk0MjIsIDEuOTEyNDkiLCBcCi0gICAgICAgICAgIjAuMDc1NzIyLCAwLjM2MzMyNCwgMC42NTQ5OTcsIDAuODYzNDM4LCAxLjE5ODQ3LCAxLjQ5NDA2LCAxLjkxMTEiLCBcCi0gICAgICAgICAgIjAuMDgxMzc0LCAwLjM2MzkzNCwgMC42NTUyNDYsIDAuODYzMjA5LCAxLjE5OTA0LCAxLjQ5NDE5LCAxLjkxMTIzIiwgXAotICAgICAgICAgICIwLjA4Nzc5NSwgMC4zNjU1NzEsIDAuNjU1MDI5LCAwLjg2MzM3NCwgMS4xOTgzNSwgMS40OTE5NCwgMS45MTEyOCIsIFwKLSAgICAgICAgICAiMC4wOTgyMTYsIDAuMzcwNDcyLCAwLjY1NjU2NSwgMC44NjQyMTUsIDEuMTk4MjQsIDEuNDkyNzYsIDEuOTExMzMiLCBcCi0gICAgICAgICAgIjAuMTA2NDQsIDAuMzc2MTM3LCAwLjY1OTA4OCwgMC44NjUwMjQsIDEuMTk4NTYsIDEuNDkxODIsIDEuOTE0MTciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQzAiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE0ODU4LCAwLjA3MDAwNCwgMC4xMjUwNzgsIDAuMTY0Mzk1LCAwLjIyNzI4OCwgMC4yODIzMDIsIDAuMzYwODU2IiwgXAotICAgICAgICAgICIwLjAyMzA1MSwgMC4wNzgzMjMsIDAuMTMzMzk1LCAwLjE3MjcxNiwgMC4yMzU2MTYsIDAuMjkwNjM1LCAwLjM2OTIxOCIsIFwKLSAgICAgICAgICAiMC4wMzAyNTcsIDAuMDg4NTk4LCAwLjE0MzY2OSwgMC4xODI4NCwgMC4yNDU3MzYsIDAuMzAwNzU2LCAwLjM3OTMwMSIsIFwKLSAgICAgICAgICAiMC4wMzUyNzcsIDAuMDk4OTk2LCAwLjE1Mzk2LCAwLjE5MzI0NCwgMC4yNTU4NDEsIDAuMzExMTU4LCAwLjM4OTY1OCIsIFwKLSAgICAgICAgICAiMC4wMzg5ODQsIDAuMTA5NjEzLCAwLjE2NDUwMywgMC4yMDM3NjcsIDAuMjY2NjA2LCAwLjMyMTYxLCAwLjQwMDE1MiIsIFwKLSAgICAgICAgICAiMC4wNDM3NDYsIDAuMTI1ODI2LCAwLjE4MTM2NSwgMC4yMjA1NywgMC4yODMzOTQsIDAuMzM4MzE0LCAwLjQxNjg5NyIsIFwKLSAgICAgICAgICAiMC4wNDY3NywgMC4xMzc4NTQsIDAuMTk2MTQ3LCAwLjIzNTI5LCAwLjI5Nzk5NSwgMC4zNTMsIDAuNDMxNDIxIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDI5MTUxLCAwLjE0NTExNCwgMC4yNjExOTksIDAuMzQ0MzE5LCAwLjQ3NzAwNSwgMC41OTMxOTgsIDAuNzU5MjA3IiwgXAotICAgICAgICAgICIwLjAzNDExNCwgMC4xNDUxNTMsIDAuMjYxMjQ3LCAwLjM0NDE2NiwgMC40NzcwMTgsIDAuNTkzMjIyLCAwLjc1OTI3NCIsIFwKLSAgICAgICAgICAiMC4wNDM2MjYsIDAuMTQ4NDA3LCAwLjI2MTU5NiwgMC4zNDQzMDQsIDAuNDc3MDEyLCAwLjU5MzQ1MywgMC43NTkyNDMiLCBcCi0gICAgICAgICAgIjAuMDUyNTk0LCAwLjE1NDUwOCwgMC4yNjQ0NzQsIDAuMzQ1NDA3LCAwLjQ3NzAzNiwgMC41OTMyMTksIDAuNzU5MjAyIiwgXAotICAgICAgICAgICIwLjA2MDY0NywgMC4xNjE5ODYsIDAuMjY5MzM3LCAwLjM0ODgxNSwgMC40NzgzMDQsIDAuNTkzNTQyLCAwLjc1OTIzNCIsIFwKLSAgICAgICAgICAiMC4wNzIyMDQsIDAuMTc1NjQ1LCAwLjI3OTQ4OSwgMC4zNTY2NzEsIDAuNDgzNDY5LCAwLjU5NjM3NSwgMC43NjAyMTgiLCBcCi0gICAgICAgICAgIjAuMDgxNjQzLCAwLjE4ODY4OSwgMC4yODk4NDMsIDAuMzY1NTAxLCAwLjQ5MDA0NSwgMC42MDEzOTMsIDAuNzYyODE4Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM4NDE0LCAwLjE3OTU3MSwgMC4zMjAxMjYsIDAuNDIwNzM5LCAwLjU4MTM2NywgMC43MjIxMzksIDAuOTIyODE4IiwgXAotICAgICAgICAgICIwLjA0NTM3NywgMC4xODY2MzYsIDAuMzI3NDMyLCAwLjQyNzcwNCwgMC41ODgxOTYsIDAuNzI4OTEsIDAuOTI5OTIxIiwgXAotICAgICAgICAgICIwLjA1NDg4LCAwLjE5NTc0NiwgMC4zMzYzMjMsIDAuNDM2OTQ2LCAwLjU5NzQ5OCwgMC43MzgwODksIDAuOTM5MDA4IiwgXAotICAgICAgICAgICIwLjA2NDI3NCwgMC4yMDQ5NzIsIDAuMzQ1NTg2LCAwLjQ0NTk0NywgMC42MDY4MjQsIDAuNzQ3NTc0LCAwLjk0ODIyNCIsIFwKLSAgICAgICAgICAiMC4wNzE4NzQsIDAuMjE0MTk3LCAwLjM1NDM1NCwgMC40NTUxMDUsIDAuNjE1NzU5LCAwLjc1NjIxNywgMC45NTczNDIiLCBcCi0gICAgICAgICAgIjAuMDgzMDM3LCAwLjIyOTM5NywgMC4zNjk0NTksIDAuNDcwMDQ0LCAwLjYzMDQ5MSwgMC43NzA5NDcsIDAuOTcyNzMyIiwgXAotICAgICAgICAgICIwLjA5MDUwMSwgMC4yNDI5NDksIDAuMzgyNjQ3LCAwLjQ4MzA2NSwgMC42NDE1MjUsIDAuNzgzNzQsIDAuOTg0NjMxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDcxNDAyLCAwLjM2MzMyNiwgMC42NTUxNjMsIDAuODYzNDQsIDEuMTk4ODQsIDEuNDkxOCwgMS45MTE4OCIsIFwKLSAgICAgICAgICAiMC4wNzIxNjgsIDAuMzYzNDc1LCAwLjY1NTEyOCwgMC44NjQwMzcsIDEuMTk4MzYsIDEuNDk0MTEsIDEuOTE0MTEiLCBcCi0gICAgICAgICAgIjAuMDc3ODA5LCAwLjM2MzI2LCAwLjY1NTE2LCAwLjg2MzI0NiwgMS4yMDAyNSwgMS40OTI0NCwgMS45MTQxMiIsIFwKLSAgICAgICAgICAiMC4wODUzNjcsIDAuMzYzOTI5LCAwLjY1NTE4NSwgMC44NjQwMzQsIDEuMTk4MzUsIDEuNDkyMzIsIDEuOTE0MTUiLCBcCi0gICAgICAgICAgIjAuMDkzNjEyLCAwLjM2NjY0MywgMC42NTUxMzYsIDAuODYzNTQxLCAxLjIwMDIzLCAxLjQ5NDIsIDEuOTE0MjgiLCBcCi0gICAgICAgICAgIjAuMTA1MDcsIDAuMzczMjY4LCAwLjY1NjgwOSwgMC44NjMyNjgsIDEuMTk4NjMsIDEuNDk0MjEsIDEuOTExNiIsIFwKLSAgICAgICAgICAiMC4xMTQ4NjksIDAuMzgxMTM4LCAwLjY2MDU4OSwgMC44NjQ5MjUsIDEuMjAwMTgsIDEuNDkxODcsIDEuOTE0MSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxNjk4NywgMC4wMTY5ODgsIDAuMDE2OTg2LCAwLjAxNjk4NiwgMC4wMTY5ODUsIDAuMDE2OTg0LCAwLjAxNjk4NSIsIFwKLSAgICAgICAgICAiMC4wMTY4ODMsIDAuMDE2OTE3LCAwLjAxNjkxOCwgMC4wMTY5MTksIDAuMDE2OTIsIDAuMDE2OTE4LCAwLjAxNjkxOCIsIFwKLSAgICAgICAgICAiMC4wMTY4ODgsIDAuMDE2OTA1LCAwLjAxNjkxLCAwLjAxNjkxMSwgMC4wMTY5MDgsIDAuMDE2OTA5LCAwLjAxNjkwNSIsIFwKLSAgICAgICAgICAiMC4wMTY5ODMsIDAuMDE2OTM3LCAwLjAxNjkyNiwgMC4wMTY5MjMsIDAuMDE2OTE5LCAwLjAxNjkxNiwgMC4wMTY5MTIiLCBcCi0gICAgICAgICAgIjAuMDE3MTYsIDAuMDE3LCAwLjAxNjk2OCwgMC4wMTY5NTMsIDAuMDE2OTQxLCAwLjAxNjkzNSwgMC4wMTY5MjgiLCBcCi0gICAgICAgICAgIjAuMDE3NTcsIDAuMDE3MTUyLCAwLjAxNzA3NCwgMC4wMTcwMzYsIDAuMDE3MDA0LCAwLjAxNjk4MywgMC4wMTY5NjUiLCBcCi0gICAgICAgICAgIjAuMDE4MDM0LCAwLjAxNzMzOCwgMC4wMTcxOSwgMC4wMTcxMzksIDAuMDE3MDk0LCAwLjAxNzA2LCAwLjAxNzAzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDMxNDcsIDAuMDAzMTc0LCAwLjAwMzE3NiwgMC4wMDMxNzcsIDAuMDAzMTc3LCAwLjAwMzE3OCwgMC4wMDMxNzgiLCBcCi0gICAgICAgICAgIjAuMDAyOTU5LCAwLjAwMzA4NiwgMC4wMDMxMDUsIDAuMDAzMTExLCAwLjAwMzExNiwgMC4wMDMxMTksIDAuMDAzMTIiLCBcCi0gICAgICAgICAgIjAuMDAyODcxLCAwLjAwMzA0LCAwLjAwMzA3NCwgMC4wMDMwODYsIDAuMDAzMDk2LCAwLjAwMzEwMSwgMC4wMDMxMDUiLCBcCi0gICAgICAgICAgIjAuMDAyODY4LCAwLjAwMzAxOCwgMC4wMDMwNTcsIDAuMDAzMDcxLCAwLjAwMzA4NCwgMC4wMDMwOTEsIDAuMDAzMDk3IiwgXAotICAgICAgICAgICIwLjAwMjkzOSwgMC4wMDMwMjMsIDAuMDAzMDU4LCAwLjAwMzA3MSwgMC4wMDMwODMsIDAuMDAzMDg5LCAwLjAwMzA5NSIsIFwKLSAgICAgICAgICAiMC4wMDMxNzUsIDAuMDAzMDg5LCAwLjAwMzA5NywgMC4wMDMxMDEsIDAuMDAzMTA0LCAwLjAwMzEwNiwgMC4wMDMxMDkiLCBcCi0gICAgICAgICAgIjAuMDAzNTA2LCAwLjAwMzIwNywgMC4wMDMxNzMsIDAuMDAzMTYyLCAwLjAwMzE1LCAwLjAwMzE0NCwgMC4wMDMxMzkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTUxNzYsIDAuMDE1MTg1LCAwLjAxNTE4NSwgMC4wMTUxODUsIDAuMDE1MTg1LCAwLjAxNTE4NiwgMC4wMTUxOCIsIFwKLSAgICAgICAgICAiMC4wMTUwNjQsIDAuMDE1MTA1LCAwLjAxNTEwOCwgMC4wMTUxMTQsIDAuMDE1MTEsIDAuMDE1MTEyLCAwLjAxNTExMiIsIFwKLSAgICAgICAgICAiMC4wMTUxNDcsIDAuMDE1MTE5LCAwLjAxNTExMiwgMC4wMTUxMTEsIDAuMDE1MTA3LCAwLjAxNTEwOCwgMC4wMTUxMDIiLCBcCi0gICAgICAgICAgIjAuMDE1Mzk4LCAwLjAxNTE5MSwgMC4wMTUxNDUsIDAuMDE1MTQ2LCAwLjAxNTEzMywgMC4wMTUxMjQsIDAuMDE1MTE5IiwgXAotICAgICAgICAgICIwLjAxNTcwMSwgMC4wMTUzMzIsIDAuMDE1MjQsIDAuMDE1MjI0LCAwLjAxNTE5MywgMC4wMTUxNzIsIDAuMDE1MTU3IiwgXAotICAgICAgICAgICIwLjAxNjMxNCwgMC4wMTU1NTgsIDAuMDE1NDA1LCAwLjAxNTM0MywgMC4wMTUyOSwgMC4wMTUyNTcsIDAuMDE1MjI1IiwgXAotICAgICAgICAgICIwLjAxNjk1MSwgMC4wMTU4MzQsIDAuMDE1NTk0LCAwLjAxNTQ5NywgMC4wMTU0MDIsIDAuMDE1MzQ5LCAwLjAxNTMxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDE4NzQsIDAuMDAxOTg2LCAwLjAwMTk5OCwgMC4wMDIwMDIsIDAuMDAyMDA1LCAwLjAwMjAwNiwgMC4wMDIwMDgiLCBcCi0gICAgICAgICAgIjAuMDAxNTc3LCAwLjAwMTkzNiwgMC4wMDE5OTEsIDAuMDAyMDA4LCAwLjAwMjAyMywgMC4wMDIwMzEsIDAuMDAyMDM3IiwgXAotICAgICAgICAgICIwLjAwMTM5OCwgMC4wMDE4NCwgMC4wMDE5MzMsIDAuMDAxOTY0LCAwLjAwMTk5MiwgMC4wMDIwMDYsIDAuMDAyMDIiLCBcCi0gICAgICAgICAgIjAuMDAxMzY3LCAwLjAwMTc3MywgMC4wMDE4ODYsIDAuMDAxOTI2LCAwLjAwMTk2NCwgMC4wMDE5ODQsIDAuMDAyMDAyIiwgXAotICAgICAgICAgICIwLjAwMTQyNSwgMC4wMDE3NDEsIDAuMDAxODYsIDAuMDAxOTAzLCAwLjAwMTk0NSwgMC4wMDE5NjgsIDAuMDAxOTg5IiwgXAotICAgICAgICAgICIwLjAwMTY2NSwgMC4wMDE3NjIsIDAuMDAxODU5LCAwLjAwMTg5OSwgMC4wMDE5NCwgMC4wMDE5NjMsIDAuMDAxOTg1IiwgXAotICAgICAgICAgICIwLjAwMTk5NywgMC4wMDE4NDgsIDAuMDAxOTA4LCAwLjAwMTkzNSwgMC4wMDE5NjUsIDAuMDAxOTgzLCAwLjAwMTk5OSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMzAyMiwgMC4wMTMwNTUsIDAuMDEzMDU5LCAwLjAxMzA2LCAwLjAxMzA2MSwgMC4wMTMwNjIsIDAuMDEzMDYzIiwgXAotICAgICAgICAgICIwLjAxMjk1OSwgMC4wMTMwNDEsIDAuMDEzMDU0LCAwLjAxMzA1OCwgMC4wMTMwNjIsIDAuMDEzMDYyLCAwLjAxMzA2NCIsIFwKLSAgICAgICAgICAiMC4wMTMwOTYsIDAuMDEzMTMzLCAwLjAxMzExMiwgMC4wMTMwOTUsIDAuMDEzMDg5LCAwLjAxMzA4NywgMC4wMTMwODMiLCBcCi0gICAgICAgICAgIjAuMDEzNDEyLCAwLjAxMzI0NywgMC4wMTMxODQsIDAuMDEzMTYyLCAwLjAxMzEzMSwgMC4wMTMxMywgMC4wMTMxMTYiLCBcCi0gICAgICAgICAgIjAuMDEzODA0LCAwLjAxMzQxNCwgMC4wMTMyODMsIDAuMDEzMjQ1LCAwLjAxMzIwNywgMC4wMTMxNzIsIDAuMDEzMTYyIiwgXAotICAgICAgICAgICIwLjAxNDQ4MSwgMC4wMTM3MzQsIDAuMDEzNDksIDAuMDEzNDAyLCAwLjAxMzMzMSwgMC4wMTMyODcsIDAuMDEzMjQ5IiwgXAotICAgICAgICAgICIwLjAxNTI1MywgMC4wMTQwODEsIDAuMDEzNzE3LCAwLjAxMzU4NSwgMC4wMTM0NywgMC4wMTM0MDksIDAuMDEzMzQzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDMyNzgsIDAuMDAzMzc1LCAwLjAwMzM4NywgMC4wMDMzOSwgMC4wMDMzOTMsIDAuMDAzMzk0LCAwLjAwMzM5NiIsIFwKLSAgICAgICAgICAiMC4wMDMwMTksIDAuMDAzMjc5LCAwLjAwMzMyOSwgMC4wMDMzNDYsIDAuMDAzMzYsIDAuMDAzMzY4LCAwLjAwMzM3NSIsIFwKLSAgICAgICAgICAiMC4wMDI5NTQsIDAuMDAzMiwgMC4wMDMyNzUsIDAuMDAzMzAxLCAwLjAwMzMyNywgMC4wMDMzNCwgMC4wMDMzNTMiLCBcCi0gICAgICAgICAgIjAuMDAzMDM5LCAwLjAwMzE3MywgMC4wMDMyNDcsIDAuMDAzMjc3LCAwLjAwMzMwNywgMC4wMDMzMjMsIDAuMDAzMzM4IiwgXAotICAgICAgICAgICIwLjAwMzIyNywgMC4wMDMxOTksIDAuMDAzMjUzLCAwLjAwMzI3OCwgMC4wMDMzMDQsIDAuMDAzMzIsIDAuMDAzMzM1IiwgXAotICAgICAgICAgICIwLjAwMzY3MSwgMC4wMDMzMjQsIDAuMDAzMzE3LCAwLjAwMzMyMiwgMC4wMDMzMzIsIDAuMDAzMzQxLCAwLjAwMzM0OSIsIFwKLSAgICAgICAgICAiMC4wMDQxODMsIDAuMDAzNTA4LCAwLjAwMzQyMiwgMC4wMDM0MDMsIDAuMDAzMzksIDAuMDAzMzg2LCAwLjAwMzM4NSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMDA0OCwgMC4wMTAxMzYsIDAuMDEwMTQ1LCAwLjAxMDE0OCwgMC4wMTAxNDksIDAuMDEwMTUxLCAwLjAxMDE1MyIsIFwKLSAgICAgICAgICAiMC4wMDk5OTYsIDAuMDEwMTU2LCAwLjAxMDE4MSwgMC4wMTAxODksIDAuMDEwMTk3LCAwLjAxMDIsIDAuMDEwMjAzIiwgXAotICAgICAgICAgICIwLjAxMDEzNCwgMC4wMTAyNCwgMC4wMTAyMzUsIDAuMDEwMjI4LCAwLjAxMDIyNywgMC4wMTAyMjYsIDAuMDEwMjI2IiwgXAotICAgICAgICAgICIwLjAxMDQ0MiwgMC4wMTAzMTUsIDAuMDEwMjg2LCAwLjAxMDI3NSwgMC4wMTAyNTksIDAuMDEwMjU3LCAwLjAxMDI1MiIsIFwKLSAgICAgICAgICAiMC4wMTA4MzQsIDAuMDEwNDQ1LCAwLjAxMDM2MywgMC4wMTAzMzgsIDAuMDEwMzExLCAwLjAxMDMwMSwgMC4wMTAyODciLCBcCi0gICAgICAgICAgIjAuMDExNTQxLCAwLjAxMDc0OCwgMC4wMTA1NDYsIDAuMDEwNDg0LCAwLjAxMDQyOSwgMC4wMTAzOTIsIDAuMDEwMzY4IiwgXAotICAgICAgICAgICIwLjAxMjI0OSwgMC4wMTEwNzcsIDAuMDEwNzY2LCAwLjAxMDY1NSwgMC4wMTA1NTksIDAuMDEwNTEsIDAuMDEwNDYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzI1NiwgMC4wMDMzNjgsIDAuMDAzMzgxLCAwLjAwMzM4NSwgMC4wMDMzODksIDAuMDAzMzksIDAuMDAzMzkyIiwgXAotICAgICAgICAgICIwLjAwMzA4MywgMC4wMDMyODUsIDAuMDAzMzMyLCAwLjAwMzM0NiwgMC4wMDMzNiwgMC4wMDMzNjcsIDAuMDAzMzczIiwgXAotICAgICAgICAgICIwLjAwMzI4NywgMC4wMDMyOTEsIDAuMDAzMzI2LCAwLjAwMzM0LCAwLjAwMzM1NCwgMC4wMDMzNjIsIDAuMDAzMzY5IiwgXAotICAgICAgICAgICIwLjAwMzUwNSwgMC4wMDMzMzEsIDAuMDAzMzM4LCAwLjAwMzM0NiwgMC4wMDMzNTYsIDAuMDAzMzYyLCAwLjAwMzM2OSIsIFwKLSAgICAgICAgICAiMC4wMDM5NzgsIDAuMDAzNDg2LCAwLjAwMzQzMiwgMC4wMDM0MjQsIDAuMDAzNDEyLCAwLjAwMzQwNywgMC4wMDM0MDQiLCBcCi0gICAgICAgICAgIjAuMDA0NjcsIDAuMDAzNzk1LCAwLjAwMzYxOCwgMC4wMDM1NiwgMC4wMDM1MjgsIDAuMDAzNTAxLCAwLjAwMzQ3NyIsIFwKLSAgICAgICAgICAiMC4wMDU0OTEsIDAuMDA0MTE5LCAwLjAwMzgzNiwgMC4wMDM3MzUsIDAuMDAzNjI2LCAwLjAwMzU5MywgMC4wMDM1NTEiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBPQUkyMVg0ICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKE9BSTIxWDQpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMS4wMDA5NTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQTApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMzUxOTUyOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMzUxMTQ4OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMzUxOTUyOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjA5NywgMC4wMDIwOTUsIDAuMDAyMDk1LCAwLjAwMjA5NSwgMC4wMDIwOTQsIDAuMDAyMDk0LCAwLjAwMjA5MyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjEzLCAwLjAwMjEwNCwgMC4wMDIxMDMsIDAuMDAyMTAzLCAwLjAwMjEwNCwgMC4wMDIxMDQsIDAuMDAyMTAxIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihBMSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAzMzg1NzQ7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAzMzg1NzQ7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAzMzc4MTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDIwOTcsIDAuMDAyMDk3LCAwLjAwMjA5NiwgMC4wMDIwOTUsIDAuMDAyMDk1LCAwLjAwMjA5NSwgMC4wMDIwOTUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDIxMjksIDAuMDAyMTAzLCAwLjAwMjEwMiwgMC4wMDIxMDIsIDAuMDAyMTAyLCAwLjAwMjEwMywgMC4wMDIxMDEiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDMyMTkxMzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDMyMTgxOTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDMyMTkxMzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA4MTIsIDAuMDAwODE0LCAwLjAwMDgxNSwgMC4wMDA4MTUsIDAuMDAwODE1LCAwLjAwMDgxNSwgMC4wMDA4MTUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDIzODIsIDAuMDAyMzgzLCAwLjAwMjM4NCwgMC4wMDIzODYsIDAuMDAyMzg1LCAwLjAwMjM4NCwgMC4wMDIzODQiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC43NDI0NTE7Ci0gICAgZnVuY3Rpb24gOiAiKCEoKEEwK0ExKSBCMCkpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjg1NTcsIDAuMTI4MjU2LCAwLjIyNzU3MywgMC4yOTg0MjIsIDAuNDEyMDgyLCAwLjUxMTI2NCwgMC42NTM1MjYiLCBcCi0gICAgICAgICAgIjAuMDM0NjM2LCAwLjEzNDQ4NiwgMC4yMzM3ODUsIDAuMzA0NzYsIDAuNDE4MTYsIDAuNTE3Mjg4LCAwLjY1ODk4IiwgXAotICAgICAgICAgICIwLjA0MTU2NSwgMC4xNDE5MTgsIDAuMjQxMzM5LCAwLjMxMjE1NCwgMC40MjU3LCAwLjUyNDk0MywgMC42NjY2MzkiLCBcCi0gICAgICAgICAgIjAuMDQ3MDAzLCAwLjE0OTMwOSwgMC4yNDg3NjMsIDAuMzE5NjA5LCAwLjQzMzExNiwgMC41MzI2ODUsIDAuNjc0MDA0IiwgXAotICAgICAgICAgICIwLjA1MTQ0OSwgMC4xNTY3NTYsIDAuMjU2MTg5LCAwLjMyNzEsIDAuNDQwNjEsIDAuNTQwMTY0LCAwLjY4MTUxIiwgXAotICAgICAgICAgICIwLjA1NzIwMSwgMC4xNjg1MzEsIDAuMjY4MTA0LCAwLjMzOTEyMiwgMC40NTIyNTQsIDAuNTUwOTM2LCAwLjY5Mzc5NCIsIFwKLSAgICAgICAgICAiMC4wNjE2MTIsIDAuMTc5MjIsIDAuMjc4NDgsIDAuMzQ5MzQ1LCAwLjQ2MzE1OCwgMC41NjI4NjksIDAuNzA0OTU2Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQ3NTQ2LCAwLjI1Nzg3NiwgMC40Njc5NjQsIDAuNjE4MTMsIDAuODU3OTU3LCAxLjA2ODA2LCAxLjM2ODM1IiwgXAotICAgICAgICAgICIwLjA0ODg4NiwgMC4yNTc3NTMsIDAuNDY3OTcxLCAwLjYxNzk1NSwgMC44NTgwNDEsIDEuMDY4MzEsIDEuMzY4MDciLCBcCi0gICAgICAgICAgIjAuMDUzNzQ1LCAwLjI1ODA1OSwgMC40Njc5MDgsIDAuNjE4MTAzLCAwLjg1ODAwNSwgMS4wNjg0MSwgMS4zNjc3NCIsIFwKLSAgICAgICAgICAiMC4wNjAwODksIDAuMjU5OTQ3LCAwLjQ2ODA0MSwgMC42MTc5ODQsIDAuODU4MjA5LCAxLjA2ODA2LCAxLjM2ODQiLCBcCi0gICAgICAgICAgIjAuMDY2NDU0LCAwLjI2MzEzOSwgMC40NjkxNzIsIDAuNjE4Mjc1LCAwLjg1Nzc4MSwgMS4wNjgzMSwgMS4zNjg3NCIsIFwKLSAgICAgICAgICAiMC4wNzU4MTQsIDAuMjY5Nzg5LCAwLjQ3Mjk3MSwgMC42MjAzNTcsIDAuODU4NjI2LCAxLjA2ODE0LCAxLjM2ODQyIiwgXAotICAgICAgICAgICIwLjA4MzQzLCAwLjI3NjkyNCwgMC40NzcyODUsIDAuNjIzNTcsIDAuODU5Nzc1LCAxLjA2ODgyLCAxLjM2ODM2Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDI4NDUxLCAwLjEyNDY4MSwgMC4yMjA1OTQsIDAuMjg5MjM2LCAwLjM5ODY2MiwgMC40OTQ3ODQsIDAuNjMxNjEzIiwgXAotICAgICAgICAgICIwLjAzNTEyNCwgMC4xMzE1MDEsIDAuMjI3MzY0LCAwLjI5NTg0MSwgMC40MDU0NzcsIDAuNTAxNDk0LCAwLjYzODAxMSIsIFwKLSAgICAgICAgICAiMC4wNDI2ODIsIDAuMTM5NTA3LCAwLjIzNTQ2OCwgMC4zMDM5OTksIDAuNDEzNTQyLCAwLjUwOTQxNSwgMC42NDY0NTciLCBcCi0gICAgICAgICAgIjAuMDQ4NzYyLCAwLjE0NzUzLCAwLjI0MzU3NCwgMC4zMTIxMzUsIDAuNDIxNzY0LCAwLjUxNzc5NCwgMC42NTQ3MTIiLCBcCi0gICAgICAgICAgIjAuMDUzODQ0LCAwLjE1NTY0NSwgMC4yNTE3NDQsIDAuMzIwMzIxLCAwLjQyOTkyOCwgMC41MjU5NzcsIDAuNjYzMDE1IiwgXAotICAgICAgICAgICIwLjA2MDYzOCwgMC4xNjg0MjUsIDAuMjY0MzYyLCAwLjMzMjkwOCwgMC40NDI2NzYsIDAuNTM4NTk4LCAwLjY3NTk4IiwgXAotICAgICAgICAgICIwLjA2NTY1MiwgMC4xNzk4MzcsIDAuMjc1OTgzLCAwLjM0NDI3LCAwLjQ1NDE0LCAwLjU0OTk0NSwgMC42ODczIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQzNjUsIDAuMjQyOTIzLCAwLjQ0MjEyNiwgMC41ODQ1OTYsIDAuODExODQxLCAxLjAxMTUyLCAxLjI5NTUxIiwgXAotICAgICAgICAgICIwLjA0NDc2LCAwLjI0Mjc4MSwgMC40NDIwMDYsIDAuNTg0Mjk4LCAwLjgxMjA1OSwgMS4wMTEwOSwgMS4yOTQ5OSIsIFwKLSAgICAgICAgICAiMC4wNDk0NDksIDAuMjQzMTk3LCAwLjQ0MjA1NSwgMC41ODQzMjIsIDAuODEyMDIxLCAxLjAxMDgzLCAxLjI5NTAzIiwgXAotICAgICAgICAgICIwLjA1NTY2MSwgMC4yNDQ5NywgMC40NDIxODcsIDAuNTg0MzA5LCAwLjgxMTY5MywgMS4wMTA5LCAxLjI5NTYyIiwgXAotICAgICAgICAgICIwLjA2MjA0MywgMC4yNDgwOTYsIDAuNDQzMzk5LCAwLjU4NDQ0OCwgMC44MTE5NTgsIDEuMDExMDEsIDEuMjk1NDciLCBcCi0gICAgICAgICAgIjAuMDcxNTMzLCAwLjI1NDY2NiwgMC40NDY3NDgsIDAuNTg2NDUyLCAwLjgxMjE5NCwgMS4wMTEwNSwgMS4yOTU1OSIsIFwKLSAgICAgICAgICAiMC4wNzkyNjUsIDAuMjYxNzQ0LCAwLjQ1MTMxMiwgMC41ODk3MDMsIDAuODEzODk3LCAxLjAxMTMxLCAxLjI5NTM0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkExIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyNjMzMSwgMC4xMjYxNzYsIDAuMjI1NDQ2LCAwLjI5NjMzOSwgMC40MDk4OCwgMC41MDg4OTgsIDAuNjUxMjYxIiwgXAotICAgICAgICAgICIwLjAzMzgxOSwgMC4xMzM2MTYsIDAuMjMyNzg2LCAwLjMwMzcyOSwgMC40MTcyMywgMC41MTY2ODMsIDAuNjU4MTQ0IiwgXAotICAgICAgICAgICIwLjA0MzM1OSwgMC4xNDI5ODIsIDAuMjQyMzM3LCAwLjMxMzM4MSwgMC40MjY3MTMsIDAuNTI1OTA3LCAwLjY2ODA0MyIsIFwKLSAgICAgICAgICAiMC4wNTA1NzQsIDAuMTUyOTQ0LCAwLjI1MTk5NiwgMC4zMjMyODYsIDAuNDM2NjgyLCAwLjUzNTk3MiwgMC42Nzc3MiIsIFwKLSAgICAgICAgICAiMC4wNTY1NCwgMC4xNjI0NjQsIDAuMjYxNjUxLCAwLjMzMjUwNiwgMC40NDYxMjksIDAuNTQ1MTA5LCAwLjY4NzIxOSIsIFwKLSAgICAgICAgICAiMC4wNjQ0NTcsIDAuMTc4MjIyLCAwLjI3NzE1NywgMC4zNDc5NzcsIDAuNDYxMjgxLCAwLjU2MDU4MiwgMC43MDI1NDgiLCBcCi0gICAgICAgICAgIjAuMDcwMDIsIDAuMTkyMTQ5LCAwLjI5MDg3NywgMC4zNjE1MzMsIDAuNDc0OTQ5LCAwLjU3NDA5MSwgMC43MTU3MzgiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDc1MjIsIDAuMjU3ODM5LCAwLjQ2NzgyOSwgMC42MTc5MywgMC44NTgxNTcsIDEuMDY3NzYsIDEuMzY4MjYiLCBcCi0gICAgICAgICAgIjAuMDUwMTMyLCAwLjI1Nzg1OCwgMC40Njc4NDYsIDAuNjE4MDQ2LCAwLjg1ODIxMywgMS4wNjgxOCwgMS4zNjgwNyIsIFwKLSAgICAgICAgICAiMC4wNTc4MjYsIDAuMjU4MTMsIDAuNDY3OTg2LCAwLjYxNzk5NCwgMC44NTgyOTIsIDEuMDY3NzIsIDEuMzY3OTQiLCBcCi0gICAgICAgICAgIjAuMDY2ODc0LCAwLjI2MDk5OCwgMC40Njc5NjUsIDAuNjE4MTg1LCAwLjg1ODEyNywgMS4wNjgyLCAxLjM2ODIzIiwgXAotICAgICAgICAgICIwLjA3NDc4LCAwLjI2NTgyMiwgMC40Njk1ODEsIDAuNjE4MTAyLCAwLjg1ODEyMywgMS4wNjgzMSwgMS4zNjgyMSIsIFwKLSAgICAgICAgICAiMC4wODU3NzcsIDAuMjc1ODY4LCAwLjQ3NDgzNSwgMC42MjA5NzEsIDAuODU4MjM0LCAxLjA2Nzc2LCAxLjM2ODA5IiwgXAotICAgICAgICAgICIwLjA5NDgwNCwgMC4yODYyMDgsIDAuNDgxNTI3LCAwLjYyNTYxNywgMC44NjAwOTMsIDEuMDY4MzIsIDEuMzY4MTYiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjU4MzksIDAuMTIzMjU2LCAwLjIyMDM4LCAwLjI5MDEwOSwgMC40MDA5MzQsIDAuNDk4NTY5LCAwLjYzNzA1MiIsIFwKLSAgICAgICAgICAiMC4wMzIyOCwgMC4xMzAwNTIsIDAuMjI3MzA0LCAwLjI5NjczOCwgMC40MDc2OTYsIDAuNTA0OTI1LCAwLjY0MzY5NCIsIFwKLSAgICAgICAgICAiMC4wMzkzMzEsIDAuMTM3ODg4LCAwLjIzNTI1MSwgMC4zMDQ4NTksIDAuNDE1NzUzLCAwLjUxMjk3MywgMC42NTE4OTMiLCBcCi0gICAgICAgICAgIjAuMDQ0ODg1LCAwLjE0NTcsIDAuMjQzMTY1LCAwLjMxMjYyOCwgMC40MjM4MzUsIDAuNTIxMTcxLCAwLjY1OTkxMiIsIFwKLSAgICAgICAgICAiMC4wNDkzOTUsIDAuMTUzNywgMC4yNTExMTQsIDAuMzIwNjIsIDAuNDMxOTU4LCAwLjUyOTE3LCAwLjY2ODQzOSIsIFwKLSAgICAgICAgICAiMC4wNTUzMTcsIDAuMTY2MzA4LCAwLjI2Mzc0MiwgMC4zMzMxOCwgMC40NDQzODUsIDAuNTQxODQ0LCAwLjY4MDYwMSIsIFwKLSAgICAgICAgICAiMC4wNTk3NjIsIDAuMTc3NTM3LCAwLjI3NTM0NSwgMC4zNDQzNzYsIDAuNDU1Nzg5LCAwLjU1MzE0NiwgMC42OTE5ODciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDAzMDYsIDAuMjQyNDg2LCAwLjQ0NTczOCwgMC41ODkzNTksIDAuODIwMjIzLCAxLjAyMjg1LCAxLjMxMTMyIiwgXAotICAgICAgICAgICIwLjA0MTU1MiwgMC4yNDMwMzcsIDAuNDQ0NzE5LCAwLjU4OTE0MywgMC44MjA3MSwgMS4wMjQ4MiwgMS4zMTQzNCIsIFwKLSAgICAgICAgICAiMC4wNDY1ODQsIDAuMjQzMjgzLCAwLjQ0NDk3MSwgMC41ODkxNTEsIDAuODIwNzc3LCAxLjAyNDgzLCAxLjMxMTM1IiwgXAotICAgICAgICAgICIwLjA1MzEyNywgMC4yNDQ4OTksIDAuNDQ0NzgzLCAwLjU5MDUyMSwgMC44MjIxMywgMS4wMjI1NSwgMS4zMTE0MiIsIFwKLSAgICAgICAgICAiMC4wNTk0MDksIDAuMjQ3NjgsIDAuNDQ2ODUxLCAwLjU5MDU3MywgMC44MjA3MzksIDEuMDI0ODYsIDEuMzExNzEiLCBcCi0gICAgICAgICAgIjAuMDY4NDkzLCAwLjI1NDMzNSwgMC40NTAxNiwgMC41OTE2NjQsIDAuODIyMzA2LCAxLjAyMjY1LCAxLjMxNDM4IiwgXAotICAgICAgICAgICIwLjA3Njc5NiwgMC4yNjEyNDgsIDAuNDU0NDE3LCAwLjU5NTQ5NywgMC44MjM4NzUsIDEuMDIyODksIDEuMzExMiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTM3MTIsIDAuMDY4OTE0LCAwLjEyMzg2MiwgMC4xNjMxNTYsIDAuMjI2MDQ4LCAwLjI4MDk2MiwgMC4zNTk0OTkiLCBcCi0gICAgICAgICAgIjAuMDIxNzczLCAwLjA3NzE0NiwgMC4xMzIxNDYsIDAuMTcxNDU2LCAwLjIzNDI5LCAwLjI4OTI1MywgMC4zNjc4MSIsIFwKLSAgICAgICAgICAiMC4wMjg1OTYsIDAuMDg3MzI4LCAwLjE0MjMzMywgMC4xODE2MDUsIDAuMjQ0NDU4LCAwLjI5OTQzLCAwLjM3NzkwOSIsIFwKLSAgICAgICAgICAiMC4wMzMzNCwgMC4wOTgwMDEsIDAuMTUyOTU2LCAwLjE5MjI0MiwgMC4yNTQ3NzMsIDAuMzEwMDQ5LCAwLjM4ODQ4OCIsIFwKLSAgICAgICAgICAiMC4wMzY3MjksIDAuMTA4NTAyLCAwLjE2MzMyLCAwLjIwMjU5MiwgMC4yNjUzNzksIDAuMzIwMzM0LCAwLjM5ODgwNiIsIFwKLSAgICAgICAgICAiMC4wNDEzNjgsIDAuMTI0NjMsIDAuMTgwMTc2LCAwLjIxOTMzNywgMC4yODIwOTcsIDAuMzM2OTgxLCAwLjQxNTQ4IiwgXAotICAgICAgICAgICIwLjA0NDM2LCAwLjEzNjU3NiwgMC4xOTUwMDgsIDAuMjM0MDk2LCAwLjI5NjczNSwgMC4zNTE2ODgsIDAuNDMwMDM0Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDI2NjQ5LCAwLjE0MjQ1OSwgMC4yNTg0NTEsIDAuMzQxMzYyLCAwLjQ3NDA0NCwgMC41OTAyNDQsIDAuNzU2MjI0IiwgXAotICAgICAgICAgICIwLjAzMjAzOCwgMC4xNDI1NDIsIDAuMjU4NDY4LCAwLjM0MTQ1MiwgMC40NzM5OSwgMC41OTAyNDQsIDAuNzU2MjI1IiwgXAotICAgICAgICAgICIwLjA0MTU0OCwgMC4xNDU5NjIsIDAuMjU4ODQ2LCAwLjM0MTM5NSwgMC40NzQwMTQsIDAuNTkwMjY4LCAwLjc1NjE4OCIsIFwKLSAgICAgICAgICAiMC4wNTAwNzEsIDAuMTUxODc0LCAwLjI2MTczNSwgMC4zNDI1MzEsIDAuNDc0MTczLCAwLjU5MDI2NCwgMC43NTU4NTkiLCBcCi0gICAgICAgICAgIjAuMDU4MDA0LCAwLjE1OTUyMSwgMC4yNjY2NzIsIDAuMzQ1OTE4LCAwLjQ3NTMyMiwgMC41OTA0MjksIDAuNzU1ODk0IiwgXAotICAgICAgICAgICIwLjA2ODc4NCwgMC4xNzMzNTksIDAuMjc2ODkyLCAwLjM1Mzk4OCwgMC40ODA1NTgsIDAuNTkzNDgxLCAwLjc1Njg4MyIsIFwKLSAgICAgICAgICAiMC4wNzc4NzQsIDAuMTg2MzAxLCAwLjI4NzMyMywgMC4zNjI4MzEsIDAuNDg3MTQ5LCAwLjU5ODUzNCwgMC43NTk1MDgiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjUxOSwgMC4xMjE1MTIsIDAuMjE3NiwgMC4yODYwMiwgMC4zOTc1MjMsIDAuNDk0MzkzLCAwLjYzMzIxOSIsIFwKLSAgICAgICAgICAiMC4wMzI3ODYsIDAuMTI5MTc3LCAwLjIyNTA5OCwgMC4yOTM2ODUsIDAuNDA0ODE1LCAwLjUwMjA5NSwgMC42NDA2MjgiLCBcCi0gICAgICAgICAgIjAuMDQyNTUzLCAwLjEzODc1MSwgMC4yMzQ2NjMsIDAuMzAzMzIxLCAwLjQxNDMxMSwgMC41MTE1MjksIDAuNjUwNDA3IiwgXAotICAgICAgICAgICIwLjA0OTk5NSwgMC4xNDg3OSwgMC4yNDQ3ODMsIDAuMzEzMzY5LCAwLjQyNDQwMywgMC41MjE5NTIsIDAuNjYwNTU5IiwgXAotICAgICAgICAgICIwLjA1NjMyNSwgMC4xNTg2MiwgMC4yNTQ0MTYsIDAuMzIzMDYxLCAwLjQzNDE3OCwgMC41MzE1MTIsIDAuNjcwMDkiLCBcCi0gICAgICAgICAgIjAuMDY0NTc2LCAwLjE3NDcyLCAwLjI3MDIwNywgMC4zMzg4MDYsIDAuNDQ5NzgsIDAuNTQ2OTE3LCAwLjY4NTg0MiIsIFwKLSAgICAgICAgICAiMC4wNzExMDEsIDAuMTg5MDE0LCAwLjI4NDE1LCAwLjM1Mjc3MSwgMC40NjM3MjIsIDAuNTYwNzE3LCAwLjY5OTg1NiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0MzYyNywgMC4yNDI5OTgsIDAuNDQ0OTg3LCAwLjU4OTU4MywgMC44MjA1NjcsIDEuMDIyNDUsIDEuMzExNjEiLCBcCi0gICAgICAgICAgIjAuMDQ2MDc4LCAwLjI0MzAwMSwgMC40NDU2NjYsIDAuNTkwNDA3LCAwLjgyMjEzOCwgMS4wMjIzOCwgMS4zMTIxMSIsIFwKLSAgICAgICAgICAiMC4wNTM1OTYsIDAuMjQzMjMsIDAuNDQ1Njg4LCAwLjU4OTU0MywgMC44MjA3MjUsIDEuMDI0ODIsIDEuMzExNDMiLCBcCi0gICAgICAgICAgIjAuMDYyMjU0LCAwLjI0NjAyMSwgMC40NDQ3MjUsIDAuNTkwNDYxLCAwLjgyMDgwMSwgMS4wMjI4MSwgMS4zMTE2OSIsIFwKLSAgICAgICAgICAiMC4wNjk4MTEsIDAuMjUwODg2LCAwLjQ0NzMxOSwgMC41OTA2MzcsIDAuODIwMzg4LCAxLjAyMjY2LCAxLjMxMTU0IiwgXAotICAgICAgICAgICIwLjA4MDYyNCwgMC4yNjA4MDcsIDAuNDUyNjk1LCAwLjU5MzM4OSwgMC44MjIyMTcsIDEuMDIzMTYsIDEuMzExMjUiLCBcCi0gICAgICAgICAgIjAuMDg5MTUzLCAwLjI3MDk2NCwgMC40NTg2NDYsIDAuNTk4MTIxLCAwLjgyMjQ1MiwgMS4wMjQ5MSwgMS4zMTE0MiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMjYxOSwgMC4wMTI2MzQsIDAuMDEyNjM0LCAwLjAxMjYzNSwgMC4wMTI2MzUsIDAuMDEyNjM0LCAwLjAxMjYzMyIsIFwKLSAgICAgICAgICAiMC4wMTI1MDksIDAuMDEyNTg0LCAwLjAxMjU5MiwgMC4wMTI1OTUsIDAuMDEyNTk3LCAwLjAxMjU5OCwgMC4wMTI1OTgiLCBcCi0gICAgICAgICAgIjAuMDEyNTI4LCAwLjAxMjU3NiwgMC4wMTI1ODYsIDAuMDEyNTksIDAuMDEyNTkxLCAwLjAxMjU5MiwgMC4wMTI1OTEiLCBcCi0gICAgICAgICAgIjAuMDEyNjY0LCAwLjAxMjYxMSwgMC4wMTI2MDgsIDAuMDEyNjA1LCAwLjAxMjYsIDAuMDEyNjA4LCAwLjAxMjYwNiIsIFwKLSAgICAgICAgICAiMC4wMTI4OTcsIDAuMDEyNjg1LCAwLjAxMjY1MywgMC4wMTI2NDEsIDAuMDEyNjMxLCAwLjAxMjYyOCwgMC4wMTI2MjIiLCBcCi0gICAgICAgICAgIjAuMDEzNCwgMC4wMTI4NTgsIDAuMDEyNzY4LCAwLjAxMjc0MiwgMC4wMTI2OTksIDAuMDEyNjU1LCAwLjAxMjY2MyIsIFwKLSAgICAgICAgICAiMC4wMTM5NTUsIDAuMDEzMDksIDAuMDEyOTE2LCAwLjAxMjg1NCwgMC4wMTI3OTcsIDAuMDEyNzY4LCAwLjAxMjczNyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyMDc3LCAwLjAwMjEwNywgMC4wMDIxMTEsIDAuMDAyMTExLCAwLjAwMjExMiwgMC4wMDIxMTIsIDAuMDAyMTEyIiwgXAotICAgICAgICAgICIwLjAwMTg4OCwgMC4wMDIwMjEsIDAuMDAyMDQsIDAuMDAyMDQ2LCAwLjAwMjA1MiwgMC4wMDIwNTQsIDAuMDAyMDU3IiwgXAotICAgICAgICAgICIwLjAwMTg1MywgMC4wMDE5ODgsIDAuMDAyMDE4LCAwLjAwMjAyNywgMC4wMDIwMzUsIDAuMDAyMDQsIDAuMDAyMDQzIiwgXAotICAgICAgICAgICIwLjAwMTk0MSwgMC4wMDIsIDAuMDAyMDIyLCAwLjAwMjAyOCwgMC4wMDIwMzUsIDAuMDAyMDM5LCAwLjAwMjA0MyIsIFwKLSAgICAgICAgICAiMC4wMDIxNCwgMC4wMDIwNDgsIDAuMDAyMDUsIDAuMDAyMDU0LCAwLjAwMjA1MiwgMC4wMDIwNTMsIDAuMDAyMDUzIiwgXAotICAgICAgICAgICIwLjAwMjYxNCwgMC4wMDIyLCAwLjAwMjE0MywgMC4wMDIxMjYsIDAuMDAyMTA4LCAwLjAwMjEsIDAuMDAyMDkiLCBcCi0gICAgICAgICAgIjAuMDAzMTIyLCAwLjAwMjM5NSwgMC4wMDIyNzMsIDAuMDAyMjI5LCAwLjAwMjE4OSwgMC4wMDIxNjUsIDAuMDAyMTQzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEwNzk3LCAwLjAxMDgyOCwgMC4wMTA4MzIsIDAuMDEwODMyLCAwLjAxMDgzMSwgMC4wMTA4MywgMC4wMTA4MzIiLCBcCi0gICAgICAgICAgIjAuMDEwNywgMC4wMTA3NzMsIDAuMDEwNzg0LCAwLjAxMDc4OCwgMC4wMTA3ODksIDAuMDEwNzg5LCAwLjAxMDc4OCIsIFwKLSAgICAgICAgICAiMC4wMTA4MzYsIDAuMDEwODE5LCAwLjAxMDgxMSwgMC4wMTA4MDYsIDAuMDEwODAyLCAwLjAxMDgsIDAuMDEwOCIsIFwKLSAgICAgICAgICAiMC4wMTExNzEsIDAuMDEwODgxLCAwLjAxMDgzOCwgMC4wMTA4MzcsIDAuMDEwODIxLCAwLjAxMDgxNiwgMC4wMTA4MSIsIFwKLSAgICAgICAgICAiMC4wMTE1MjcsIDAuMDExMDQ1LCAwLjAxMDk0NywgMC4wMTA5MiwgMC4wMTA4ODksIDAuMDEwODczLCAwLjAxMDg1MyIsIFwKLSAgICAgICAgICAiMC4wMTIyNjUsIDAuMDExMzE3LCAwLjAxMTEzOCwgMC4wMTEwNjksIDAuMDExMDA5LCAwLjAxMDk3MywgMC4wMTA5MzciLCBcCi0gICAgICAgICAgIjAuMDEyOTg2LCAwLjAxMTY0MywgMC4wMTEzNSwgMC4wMTEyNDQsIDAuMDExMTM0LCAwLjAxMTA4OCwgMC4wMTEwMzIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDg0OSwgMC4wMDA5NzUsIDAuMDAwOTg3LCAwLjAwMDk5MSwgMC4wMDA5OTQsIDAuMDAwOTk2LCAwLjAwMDk5NyIsIFwKLSAgICAgICAgICAiMC4wMDA1NDUsIDAuMDAwOTI0LCAwLjAwMDk3OSwgMC4wMDA5OTYsIDAuMDAxMDEyLCAwLjAwMTAyLCAwLjAwMTAyNyIsIFwKLSAgICAgICAgICAiMC4wMDA0MzksIDAuMDAwODQ0LCAwLjAwMDkzMiwgMC4wMDA5NiwgMC4wMDA5ODYsIDAuMDAxLCAwLjAwMTAxMyIsIFwKLSAgICAgICAgICAiMC4wMDA1MjQsIDAuMDAwODE1LCAwLjAwMDkwNywgMC4wMDA5NDEsIDAuMDAwOTcxLCAwLjAwMDk4NywgMC4wMDEwMDMiLCBcCi0gICAgICAgICAgIjAuMDAwNzEzLCAwLjAwMDgyOSwgMC4wMDA5MSwgMC4wMDA5NDIsIDAuMDAwOTcxLCAwLjAwMDk4OCwgMC4wMDEwMDMiLCBcCi0gICAgICAgICAgIjAuMDAxMTc1LCAwLjAwMDkzNCwgMC4wMDA5NjksIDAuMDAwOTg0LCAwLjAwMTAwMiwgMC4wMDEwMTIsIDAuMDAxMDIyIiwgXAotICAgICAgICAgICIwLjAwMTY4MSwgMC4wMDEwOTgsIDAuMDAxMDY5LCAwLjAwMTA2MywgMC4wMDEwNjIsIDAuMDAxMDYxLCAwLjAwMTA2MSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwODQ4NiwgMC4wMDg1ODksIDAuMDA4NTk4LCAwLjAwODYwMiwgMC4wMDg2MDYsIDAuMDA4NjA2LCAwLjAwODYwNyIsIFwKLSAgICAgICAgICAiMC4wMDgzOTcsIDAuMDA4NTczLCAwLjAwODYwNCwgMC4wMDg2MTQsIDAuMDA4NjI0LCAwLjAwODYyNywgMC4wMDg2MzEiLCBcCi0gICAgICAgICAgIjAuMDA4NTc1LCAwLjAwODY0NCwgMC4wMDg2NDcsIDAuMDA4NjQ4LCAwLjAwODY0OSwgMC4wMDg2NSwgMC4wMDg2NDgiLCBcCi0gICAgICAgICAgIjAuMDA4OTQ4LCAwLjAwODcwNCwgMC4wMDg2ODMsIDAuMDA4Njc2LCAwLjAwODY2NiwgMC4wMDg2NjcsIDAuMDA4NjY0IiwgXAotICAgICAgICAgICIwLjAwOTQ1NSwgMC4wMDg4OTIsIDAuMDA4NzkyLCAwLjAwODc2NywgMC4wMDg3MzksIDAuMDA4NzI2LCAwLjAwODcxMyIsIFwKLSAgICAgICAgICAiMC4wMTAzMTcsIDAuMDA5MjY4LCAwLjAwOTAyMywgMC4wMDg5NDUsIDAuMDA4ODg0LCAwLjAwODg0MywgMC4wMDg4MSIsIFwKLSAgICAgICAgICAiMC4wMTEwNDMsIDAuMDA5NjUxLCAwLjAwOTI4MSwgMC4wMDkxNDcsIDAuMDA5MDM1LCAwLjAwODk3NywgMC4wMDg5MTUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjE4MSwgMC4wMDIzMDMsIDAuMDAyMzE3LCAwLjAwMjMyMSwgMC4wMDIzMjUsIDAuMDAyMzI3LCAwLjAwMjMyOCIsIFwKLSAgICAgICAgICAiMC4wMDIwMjQsIDAuMDAyMjI1LCAwLjAwMjI2OSwgMC4wMDIyODQsIDAuMDAyMjk3LCAwLjAwMjMwNCwgMC4wMDIzMTEiLCBcCi0gICAgICAgICAgIjAuMDAyMjEzLCAwLjAwMjI1NSwgMC4wMDIyOCwgMC4wMDIyOSwgMC4wMDIzMDEsIDAuMDAyMzA3LCAwLjAwMjMxMiIsIFwKLSAgICAgICAgICAiMC4wMDI1ODksIDAuMDAyMzA5LCAwLjAwMjMwOSwgMC4wMDIzMTMsIDAuMDAyMzEsIDAuMDAyMzEzLCAwLjAwMjMxNyIsIFwKLSAgICAgICAgICAiMC4wMDMwMDMsIDAuMDAyNTAxLCAwLjAwMjQyOCwgMC4wMDI0MDMsIDAuMDAyMzgyLCAwLjAwMjM3MiwgMC4wMDIzNjMiLCBcCi0gICAgICAgICAgIjAuMDAzODcyLCAwLjAwMjg0NSwgMC4wMDI2NDcsIDAuMDAyNTc2LCAwLjAwMjUyNiwgMC4wMDI0OSwgMC4wMDI0NTciLCBcCi0gICAgICAgICAgIjAuMDA0NjY2LCAwLjAwMzIzMiwgMC4wMDI5MDgsIDAuMDAyNzgzLCAwLjAwMjY4OCwgMC4wMDI2MywgMC4wMDI1NjkiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBPQUkyMVhMICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKE9BSTIxWEwpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4xNTQ1MDE7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2MjkwNDU7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjI4MTUzOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDYyOTA0NTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyOTYsIDAuMDAwMjk2LCAwLjAwMDI5NiwgMC4wMDAyOTYsIDAuMDAwMjk2LCAwLjAwMDI5NiwgMC4wMDAyOTYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAzMDIsIDAuMDAwMjk4LCAwLjAwMDI5OCwgMC4wMDAyOTgsIDAuMDAwMjk4LCAwLjAwMDI5NywgMC4wMDAyOTciKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEExKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2NjAxNTc7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjYwMTU3OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDY1OTAyMzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyOTYsIDAuMDAwMjk3LCAwLjAwMDI5NiwgMC4wMDAyOTYsIDAuMDAwMjk2LCAwLjAwMDI5NiwgMC4wMDAyOTYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAzMDIsIDAuMDAwMjk4LCAwLjAwMDI5OCwgMC4wMDAyOTgsIDAuMDAwMjk4LCAwLjAwMDI5NywgMC4wMDAyOTciKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA3MDU2NTc7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNzA1NjU3OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDcwNTY1NjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAzMjksIDAuMDAwMzMsIDAuMDAwMzMsIDAuMDAwMzMsIDAuMDAwMzI5LCAwLjAwMDMyOSwgMC4wMDAzMjkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAzMzcsIDAuMDAwMzM4LCAwLjAwMDMzOCwgMC4wMDAzMzgsIDAuMDAwMzM4LCAwLjAwMDMzOCwgMC4wMDAzMzgiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4xMTA5MDQ7Ci0gICAgZnVuY3Rpb24gOiAiKCEoKEEwK0ExKSBCMCkpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTEyMzE3LCAwLjEzMTIyLCAwLjMwMTkwNiwgMC41ODYwNzksIDAuODcwNjI2LCAxLjUzMjA5LCAxLjkxMzE4IiwgXAotICAgICAgICAgICIwLjExODE4NywgMC4xMzcyNDksIDAuMzA3NjQ0LCAwLjU5MjE1NywgMC44NzYzNywgMS41Mzk2MSwgMS45MTgyMiIsIFwKLSAgICAgICAgICAiMC4xMjUyMTcsIDAuMTQ0MjM1LCAwLjMxNDc2NSwgMC41OTkwMjEsIDAuODgzMjc1LCAxLjU0NTg5LCAxLjkyNTExIiwgXAotICAgICAgICAgICIwLjEzMjMxNiwgMC4xNTEyMzIsIDAuMzIxOTc1LCAwLjYwNjAxNCwgMC44ODk4MDksIDEuNTU0NzEsIDEuOTMxNzYiLCBcCi0gICAgICAgICAgIjAuMTM5MzExLCAwLjE1ODMyMywgMC4zMjg5NzcsIDAuNjEzMzU2LCAwLjg5NzI1NywgMS41NjAxOSwgMS45Mzg3IiwgXAotICAgICAgICAgICIwLjE1MDcyMywgMC4xNjk2NywgMC4zNDAxNzcsIDAuNjI0OTA0LCAwLjkwODY1NSwgMS41NzEwMSwgMS45NTEiLCBcCi0gICAgICAgICAgIjAuMTYwMzIzLCAwLjE3OTcyOCwgMC4zNTAxNjksIDAuNjM0ODE4LCAwLjkxODY0NiwgMS41ODI2NywgMS45NTk3MyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMjM1NTUsIDAuMjYzODEyLCAwLjYyNTI4MSwgMS4yMjc2NiwgMS44MzAyMSwgMy4yMzU2OSwgNC4wMzc5MSIsIFwKLSAgICAgICAgICAiMC4yMjM1NzUsIDAuMjYzODg0LCAwLjYyNTM5OSwgMS4yMjc2NiwgMS44Mjk4NiwgMy4yMzQ0NCwgNC4wMzYxMyIsIFwKLSAgICAgICAgICAiMC4yMjQyNywgMC4yNjQwOTEsIDAuNjI1Mzg1LCAxLjIyNzY0LCAxLjgyOTgxLCAzLjIzMzQ0LCA0LjAzODU0IiwgXAotICAgICAgICAgICIwLjIyNjc5MywgMC4yNjU5NTIsIDAuNjI1Mjg1LCAxLjIyNzIxLCAxLjgzMDE1LCAzLjIzNTMxLCA0LjAzNTgxIiwgXAotICAgICAgICAgICIwLjIzMDM3NCwgMC4yNjkxODIsIDAuNjI1NDYzLCAxLjIyNzY5LCAxLjgzMDI1LCAzLjIzMzU3LCA0LjAzODg2IiwgXAotICAgICAgICAgICIwLjIzNzgzNCwgMC4yNzU4OTEsIDAuNjI3NTcxLCAxLjIyNzQ4LCAxLjgyOTI1LCAzLjIzMjgsIDQuMDM2MDgiLCBcCi0gICAgICAgICAgIjAuMjQ1MjU0LCAwLjI4MjkyMiwgMC42MzA3NzUsIDEuMjI3MywgMS44Mjk1MiwgMy4yMzQzOSwgNC4wMzQ1OCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDI4NTgsIDAuMTIwMDA1LCAwLjI3NTAxNiwgMC41MzMwNjEsIDAuNzkxNjMsIDEuMzk0NzIsIDEuNzM4MTMiLCBcCi0gICAgICAgICAgIjAuMTA5NjAzLCAwLjEyNjgxNSwgMC4yODE3NzMsIDAuNTQwMDI1LCAwLjc5ODc0NiwgMS40MDEzOCwgMS43NDQzNCIsIFwKLSAgICAgICAgICAiMC4xMTc0MjEsIDAuMTM0NjcsIDAuMjg5NjYzLCAwLjU0Nzc5MSwgMC44MDYyNDIsIDEuNDA4MTIsIDEuNzU0NTQiLCBcCi0gICAgICAgICAgIjAuMTI1MDc5LCAwLjE0MjM2OSwgMC4yOTc1MywgMC41NTU1ODgsIDAuODEzNjU5LCAxLjQxNzA1LCAxLjc2MTgyIiwgXAotICAgICAgICAgICIwLjEzMjkxMSwgMC4xNTAyODUsIDAuMzA1MjA2LCAwLjU2MzQyNywgMC44MjE2NTgsIDEuNDI0NjUsIDEuNzY4MjkiLCBcCi0gICAgICAgICAgIjAuMTQ1NTA3LCAwLjE2Mjk0MSwgMC4zMTc2OTQsIDAuNTc2MjIyLCAwLjgzNDI3MiwgMS40MzY2NCwgMS43ODE0NCIsIFwKLSAgICAgICAgICAiMC4xNTYwNDEsIDAuMTczNzY0LCAwLjMyODY2MSwgMC41ODcxMDQsIDAuODQ1OCwgMS40NDgwNywgMS43OTIyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE5NTYyMiwgMC4yMzEwNDEsIDAuNTUwNjU1LCAxLjA4MzAzLCAxLjYxNTUzLCAyLjg1Nzc4LCAzLjU2Njg2IiwgXAotICAgICAgICAgICIwLjE5NTUxNSwgMC4yMzExNDgsIDAuNTUwNTI4LCAxLjA4MjcyLCAxLjYxNTcsIDIuODU3MzQsIDMuNTY5MzIiLCBcCi0gICAgICAgICAgIjAuMTk2MjYsIDAuMjMxMzcxLCAwLjU1MDc3NCwgMS4wODI4MiwgMS42MTUxMiwgMi44NTkzMywgMy41Njg4MyIsIFwKLSAgICAgICAgICAiMC4xOTg3ODYsIDAuMjMzNDU5LCAwLjU1MDYwNywgMS4wODMyNiwgMS42MTU4NiwgMi44NTcyOCwgMy41Njc1MyIsIFwKLSAgICAgICAgICAiMC4yMDI3MDIsIDAuMjM2ODk5LCAwLjU1MDk1NywgMS4wODI3OCwgMS42MTUyOCwgMi44NTc2MSwgMy41Njk5NyIsIFwKLSAgICAgICAgICAiMC4yMTA2MDYsIDAuMjQ0MTM1LCAwLjU1MzMyMywgMS4wODI5NiwgMS42MTUxNiwgMi44NTcyNiwgMy41Njk0NSIsIFwKLSAgICAgICAgICAiMC4yMTg2MzcsIDAuMjUxMzY2LCAwLjU1NzEyOSwgMS4wODMyLCAxLjYxNTI2LCAyLjg1NzE5LCAzLjU2NjczIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkExIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDk4NTQsIDAuMTI4OTE4LCAwLjI5OTUxLCAwLjU4MzE0MSwgMC44NjgwNjksIDEuNTMxMTksIDEuOTA4MzIiLCBcCi0gICAgICAgICAgIjAuMTE3MjEsIDAuMTM2MDg0LCAwLjMwNjU5MSwgMC41OTA2OTUsIDAuODc0NDI2LCAxLjUzNzAzLCAxLjkxNzE1IiwgXAotICAgICAgICAgICIwLjEyNjM3NywgMC4xNDU0MDksIDAuMzE1ODkzLCAwLjU5OTc1LCAwLjg4MzgwMiwgMS41NDY5OSwgMS45MjY0OSIsIFwKLSAgICAgICAgICAiMC4xMzU4ODQsIDAuMTU0ODMxLCAwLjMyNTM3MywgMC42MDkxMzcsIDAuODkzNzI0LCAxLjU1Nzc2LCAxLjkzNDg5IiwgXAotICAgICAgICAgICIwLjE0NTQwNywgMC4xNjQzMjQsIDAuMzM0NTY3LCAwLjYxODU4NSwgMC45MDMzMzEsIDEuNTY0OSwgMS45NDQ0OCIsIFwKLSAgICAgICAgICAiMC4xNjA5OTUsIDAuMTc5NjkzLCAwLjM0OTYyMywgMC42MzM4MzcsIDAuOTE3MTgsIDEuNTc5NjQsIDEuOTU5OTQiLCBcCi0gICAgICAgICAgIjAuMTc0NzI0LCAwLjE5MzM1OSwgMC4zNjI4NzMsIDAuNjQ1MjM1LCAwLjkzMDQyNiwgMS41OTUwNCwgMS45NzEyMSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMjM2MSwgMC4yNjM5MzIsIDAuNjI1MzAxLCAxLjIyNzM4LCAxLjgyOTk1LCAzLjIzNDI1LCA0LjAzNDcyIiwgXAotICAgICAgICAgICIwLjIyMzU4NiwgMC4yNjM3NDEsIDAuNjI1MzY3LCAxLjIyNzI5LCAxLjgzMDYsIDMuMjM1NzksIDQuMDM2MTIiLCBcCi0gICAgICAgICAgIjAuMjI0NTc2LCAwLjI2NDE1NiwgMC42MjUyNTEsIDEuMjI3MzksIDEuODI5ODksIDMuMjM1NywgNC4wMzYyNyIsIFwKLSAgICAgICAgICAiMC4yMjgzMzksIDAuMjY3MTIyLCAwLjYyNTIyMywgMS4yMjcxNSwgMS44MzAwNiwgMy4yMzUyNSwgNC4wMzU4MSIsIFwKLSAgICAgICAgICAiMC4yMzM4MzcsIDAuMjcxODE5LCAwLjYyNTQ0NSwgMS4yMjcyOCwgMS44MzAyMSwgMy4yMzMwNywgNC4wMzc1OCIsIFwKLSAgICAgICAgICAiMC4yNDUwMSwgMC4yODE3OTYsIDAuNjI4MjY5LCAxLjIyNzYxLCAxLjgzMDE1LCAzLjIzMjcsIDQuMDM2MyIsIFwKLSAgICAgICAgICAiMC4yNTU5ODcsIDAuMjkxOTc1LCAwLjYzMzAzMiwgMS4yMjczNSwgMS44Mjk4OSwgMy4yMzUzMiwgNC4wMzQ1NiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTgyNjksIDAuMTE1MTM3LCAwLjI2NzYxLCAwLjUyMTU2LCAwLjc3NjAyNCwgMS4zNjkxMywgMS43MDY4OCIsIFwKLSAgICAgICAgICAiMC4xMDUxNzQsIDAuMTIyMDkxLCAwLjI3NDU0MiwgMC41Mjg1MzYsIDAuNzgyODcxLCAxLjM3NTU3LCAxLjcxMzcyIiwgXAotICAgICAgICAgICIwLjExMzAwMSwgMC4xMjk5MzksIDAuMjgyNTQ0LCAwLjUzNjQzNCwgMC43OTAzNzEsIDEuMzgzMzgsIDEuNzIzNCIsIFwKLSAgICAgICAgICAiMC4xMjA3NDUsIDAuMTM3NzU1LCAwLjI5MDQ0OCwgMC41NDQ1NSwgMC43OTgyOTYsIDEuMzkyMTUsIDEuNzI5MTEiLCBcCi0gICAgICAgICAgIjAuMTI4NjI5LCAwLjE0NTc1LCAwLjI5ODE4NSwgMC41NTI0NzgsIDAuODA2MzI2LCAxLjM5OTUsIDEuNzM3NDUiLCBcCi0gICAgICAgICAgIjAuMTQxMjUsIDAuMTU4Mjk0LCAwLjMxMDgzLCAwLjU2NTE2MSwgMC44MTkxMjgsIDEuNDExOTgsIDEuNzUwNjUiLCBcCi0gICAgICAgICAgIjAuMTUxNjgsIDAuMTY5MzU0LCAwLjMyMTk0MywgMC41NzYyNzMsIDAuODMwNTYsIDEuNDIzMjUsIDEuNzYyMzQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTg3ODAyLCAwLjIyMjg0NiwgMC41MzU3MjMsIDEuMDU3OTYsIDEuNTgwNzcsIDIuNzk5NzgsIDMuNDk0MjgiLCBcCi0gICAgICAgICAgIjAuMTg3Njk0LCAwLjIyMjY0NiwgMC41MzYxMywgMS4wNTc5OSwgMS41ODAyOSwgMi43OTgyNSwgMy40OTQzMSIsIFwKLSAgICAgICAgICAiMC4xODg0OTksIDAuMjIzMzkyLCAwLjUzNTg0LCAxLjA2MDMyLCAxLjU4Nzc0LCAyLjc5Nzk4LCAzLjQ5NTU3IiwgXAotICAgICAgICAgICIwLjE5MTY1LCAwLjIyNTQ5NCwgMC41MzYyMTIsIDEuMDU3NzcsIDEuNTgzNjksIDIuNzk5OCwgMy41MDIzOSIsIFwKLSAgICAgICAgICAiMC4xOTU0NTUsIDAuMjI4ODc5LCAwLjUzNjQ3NywgMS4wNTc3OCwgMS41ODc5NiwgMi43OTgyNywgMy40OTY4NiIsIFwKLSAgICAgICAgICAiMC4yMDMzNzksIDAuMjM2MDA5LCAwLjUzODk2OSwgMS4wNTg2NiwgMS41ODM2NCwgMi43OTgwNSwgMy40OTc1MyIsIFwKLSAgICAgICAgICAiMC4yMTE2NiwgMC4yNDM3MDcsIDAuNTQzNTczLCAxLjA1ODc2LCAxLjU4MDM3LCAyLjc5Nzk5LCAzLjQ5NDQyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTk1OCwgMC4wNzAxNTYsIDAuMTY1MTg1LCAwLjMyMzI3OCwgMC40ODEwNTIsIDAuODQ5MzU3LCAxLjA2MDE0IiwgXAotICAgICAgICAgICIwLjA2NzUzLCAwLjA3ODEwMSwgMC4xNzMxNSwgMC4zMzEyMjUsIDAuNDg5MDEyLCAwLjg1NzA5MiwgMS4wNjgyNyIsIFwKLSAgICAgICAgICAiMC4wNzc3MDksIDAuMDg4MjM5LCAwLjE4MzI1NiwgMC4zNDEzMjYsIDAuNDk5MDA4LCAwLjg2NzA3MSwgMS4wNzc3OSIsIFwKLSAgICAgICAgICAiMC4wODc5ODksIDAuMDk4NDc3LCAwLjE5MzM3MiwgMC4zNTEzOTEsIDAuNTA5MTcsIDAuODc3MTMsIDEuMDg3NjkiLCBcCi0gICAgICAgICAgIjAuMDk4MjA3LCAwLjEwODc3OCwgMC4yMDM1MTUsIDAuMzYwNjk1LCAwLjUxOTI1LCAwLjg4NzIwMSwgMS4wOTc0MyIsIFwKLSAgICAgICAgICAiMC4xMTI0MjgsIDAuMTI0NTQ2LCAwLjIxOTc0MiwgMC4zNzc2NzcsIDAuNTM1MzcxLCAwLjkwMzU2NiwgMS4xMTM0OCIsIFwKLSAgICAgICAgICAiMC4xMjI4NDIsIDAuMTM2MTQ5LCAwLjIzNDE2NywgMC4zOTE4OTIsIDAuNTQ5NjQ5LCAwLjkxNzU1MSwgMS4xMjc3OCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMjI1NDcsIDAuMTQ0NjI3LCAwLjM0MzcxNSwgMC42NzU3MDQsIDEuMDA3NzQsIDEuNzgyNDksIDIuMjI1MTIiLCBcCi0gICAgICAgICAgIjAuMTIyODI3LCAwLjE0NDcwNywgMC4zNDM2NDksIDAuNjc1NzMyLCAxLjAwNzQ1LCAxLjc4MjQ4LCAyLjIyNTIiLCBcCi0gICAgICAgICAgIjAuMTI3MTcxLCAwLjE0ODA2MywgMC4zNDM3NTksIDAuNjc1NzExLCAxLjAwNzY1LCAxLjc4MjUyLCAyLjIyNTAxIiwgXAotICAgICAgICAgICIwLjEzNDA5MywgMC4xNTQyMzgsIDAuMzQ1MDMsIDAuNjc1NjUsIDEuMDA3NjQsIDEuNzgyMzUsIDIuMjI1MjIiLCBcCi0gICAgICAgICAgIjAuMTQyMjUsIDAuMTYxOTI5LCAwLjM0ODM2NSwgMC42NzU0OTMsIDEuMDA3NTgsIDEuNzgyNDMsIDIuMjI0NzIiLCBcCi0gICAgICAgICAgIjAuMTU2ODczLCAwLjE3NTc3LCAwLjM1NjU1LCAwLjY3NzQ1OCwgMS4wMDc0NSwgMS43ODI2MiwgMi4yMjUwOCIsIFwKLSAgICAgICAgICAiMC4xNzAzNTEsIDAuMTg4Nzg5LCAwLjM2NTY4NiwgMC42ODE1NTIsIDEuMDA4MTcsIDEuNzgyNjYsIDIuMjI1MTQiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk4NjU4LCAwLjExNTkwMSwgMC4yNzA4MzksIDAuNTI5MjE3LCAwLjc4NzYyNCwgMS4zODkxOSwgMS43MzUzOCIsIFwKLSAgICAgICAgICAiMC4xMDYxMzEsIDAuMTIzMzg4LCAwLjI3ODM2NiwgMC41MzY0MDgsIDAuNzk0NTQ3LCAxLjM5NjkzLCAxLjc0MTA0IiwgXAotICAgICAgICAgICIwLjExNTczMiwgMC4xMzI5MTMsIDAuMjg3OTQ3LCAwLjU0NjUyLCAwLjgwNDU1LCAxLjQwNzQyLCAxLjc1MTMyIiwgXAotICAgICAgICAgICIwLjEyNTI4OSwgMC4xNDI0OTQsIDAuMjk3MzgzLCAwLjU1NTY3NCwgMC44MTM1OTcsIDEuNDE2OTQsIDEuNzU5ODciLCBcCi0gICAgICAgICAgIjAuMTM1MTMxLCAwLjE1MjMxMiwgMC4zMDY4OTEsIDAuNTY1MDAzLCAwLjgyMzE4OSwgMS40MjUyMSwgMS43NzA0MyIsIFwKLSAgICAgICAgICAiMC4xNTEwNTksIDAuMTY4MDkxLCAwLjMyMjMzNSwgMC41ODA3NCwgMC44Mzg3MTYsIDEuNDQwODksIDEuNzg2NSIsIFwKLSAgICAgICAgICAiMC4xNjQ4NTMsIDAuMTgyMTQ1LCAwLjMzNTk0NSwgMC41OTQwNDYsIDAuODUxODk1LCAxLjQ1NDM0LCAxLjgwMDA5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE5NTYzOSwgMC4yMzEwNDQsIDAuNTUwNTY0LCAxLjA4MzA3LCAxLjYxNTYxLCAyLjg1ODkxLCAzLjU2OTUyIiwgXAotICAgICAgICAgICIwLjE5NTUzNSwgMC4yMzEwMDIsIDAuNTUwNjMzLCAxLjA4MjczLCAxLjYxNTEzLCAyLjg1NzI0LCAzLjU2OTYxIiwgXAotICAgICAgICAgICIwLjE5NjcxOCwgMC4yMzE1NzgsIDAuNTUwNTkxLCAxLjA4MzEsIDEuNjE1NzgsIDIuODU3OTEsIDMuNTY3MTkiLCBcCi0gICAgICAgICAgIjAuMjAwNzk0LCAwLjIzNDg3MywgMC41NTA1NzQsIDEuMDgzMDUsIDEuNjE2MDIsIDIuODU3NDUsIDMuNTY2NjciLCBcCi0gICAgICAgICAgIjAuMjA2Njk5LCAwLjIzOTk5NiwgMC41NTA5MDksIDEuMDgyODMsIDEuNjE1OTcsIDIuODU3MTIsIDMuNTY4OTQiLCBcCi0gICAgICAgICAgIjAuMjE3OTcxLCAwLjI1MDI5MywgMC41NTQ1MjUsIDEuMDgzMjEsIDEuNjE1MjMsIDIuODU4MzcsIDMuNTY4MDUiLCBcCi0gICAgICAgICAgIjAuMjI4OTQxLCAwLjI2MDY0NSwgMC41NTk3MjUsIDEuMDgzMTMsIDEuNjE1MjYsIDIuODU3MzksIDMuNTY4MzkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyMzEyLCAwLjAwMjMxMiwgMC4wMDIzMTIsIDAuMDAyMzEyLCAwLjAwMjMxMSwgMC4wMDIzMSwgMC4wMDIzMDkiLCBcCi0gICAgICAgICAgIjAuMDAyMzAzLCAwLjAwMjMwNCwgMC4wMDIzMDYsIDAuMDAyMzA2LCAwLjAwMjMwNiwgMC4wMDIzMDUsIDAuMDAyMzAzIiwgXAotICAgICAgICAgICIwLjAwMjMwNCwgMC4wMDIzMDQsIDAuMDAyMzA0LCAwLjAwMjMwNSwgMC4wMDIzMDQsIDAuMDAyMzAzLCAwLjAwMjMwMiIsIFwKLSAgICAgICAgICAiMC4wMDIzMTQsIDAuMDAyMzEzLCAwLjAwMjMxLCAwLjAwMjMwNywgMC4wMDIzMDYsIDAuMDAyMzA1LCAwLjAwMjMwNCIsIFwKLSAgICAgICAgICAiMC4wMDIzMzIsIDAuMDAyMzI5LCAwLjAwMjMxOCwgMC4wMDIzMTIsIDAuMDAyMzA5LCAwLjAwMjMwNiwgMC4wMDIzMDUiLCBcCi0gICAgICAgICAgIjAuMDAyMzc1LCAwLjAwMjM2NywgMC4wMDIzMzksIDAuMDAyMzI2LCAwLjAwMjMxOCwgMC4wMDIzMTIsIDAuMDAyMzEiLCBcCi0gICAgICAgICAgIjAuMDAyNDI0LCAwLjAwMjQxMSwgMC4wMDIzNjQsIDAuMDAyMzQxLCAwLjAwMjMzLCAwLjAwMjMxOCwgMC4wMDIzMTQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDA0MiwgMC4wMDA0MiwgMC4wMDA0MjEsIDAuMDAwNDIxLCAwLjAwMDQyMSwgMC4wMDA0MjEsIDAuMDAwNDIxIiwgXAotICAgICAgICAgICIwLjAwMDQwNywgMC4wMDA0MDgsIDAuMDAwNDEyLCAwLjAwMDQxMywgMC4wMDA0MTMsIDAuMDAwNDEzLCAwLjAwMDQxMyIsIFwKLSAgICAgICAgICAiMC4wMDA0MDMsIDAuMDAwNDA0LCAwLjAwMDQwOSwgMC4wMDA0MTEsIDAuMDAwNDEyLCAwLjAwMDQxMiwgMC4wMDA0MTIiLCBcCi0gICAgICAgICAgIjAuMDAwNDA3LCAwLjAwMDQwOCwgMC4wMDA0MTEsIDAuMDAwNDEyLCAwLjAwMDQxMiwgMC4wMDA0MTIsIDAuMDAwNDEyIiwgXAotICAgICAgICAgICIwLjAwMDQyLCAwLjAwMDQxOSwgMC4wMDA0MTYsIDAuMDAwNDE1LCAwLjAwMDQxNCwgMC4wMDA0MTMsIDAuMDAwNDEzIiwgXAotICAgICAgICAgICIwLjAwMDQ1NCwgMC4wMDA0NSwgMC4wMDA0MzIsIDAuMDAwNDI0LCAwLjAwMDQyLCAwLjAwMDQxNiwgMC4wMDA0MTYiLCBcCi0gICAgICAgICAgIjAuMDAwNTAyLCAwLjAwMDQ4OCwgMC4wMDA0NTMsIDAuMDAwNDM2LCAwLjAwMDQyOSwgMC4wMDA0MjIsIDAuMDAwNDIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyMDQ3LCAwLjAwMjA0NywgMC4wMDIwNDgsIDAuMDAyMDQ3LCAwLjAwMjA0NywgMC4wMDIwNDUsIDAuMDAyMDQ1IiwgXAotICAgICAgICAgICIwLjAwMjA0LCAwLjAwMjA0LCAwLjAwMjA0MiwgMC4wMDIwNDIsIDAuMDAyMDQyLCAwLjAwMjA0LCAwLjAwMjA0IiwgXAotICAgICAgICAgICIwLjAwMjA1MSwgMC4wMDIwNSwgMC4wMDIwNDYsIDAuMDAyMDQ0LCAwLjAwMjA0MiwgMC4wMDIwNCwgMC4wMDIwNCIsIFwKLSAgICAgICAgICAiMC4wMDIwNzIsIDAuMDAyMDY4LCAwLjAwMjA1NSwgMC4wMDIwNDgsIDAuMDAyMDQ1LCAwLjAwMjA0MiwgMC4wMDIwNDEiLCBcCi0gICAgICAgICAgIjAuMDAyMTAyLCAwLjAwMjA5NywgMC4wMDIwNywgMC4wMDIwNTYsIDAuMDAyMDUxLCAwLjAwMjA0NSwgMC4wMDIwNDMiLCBcCi0gICAgICAgICAgIjAuMDAyMTY2LCAwLjAwMjE1MSwgMC4wMDIxMDEsIDAuMDAyMDc2LCAwLjAwMjA2MywgMC4wMDIwNTIsIDAuMDAyMDQ5IiwgXAotICAgICAgICAgICIwLjAwMjIzNCwgMC4wMDIyMTQsIDAuMDAyMTM2LCAwLjAwMjA5NSwgMC4wMDIwODEsIDAuMDAyMDYxLCAwLjAwMjA1NiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDIxMSwgMC4wMDAyMTIsIDAuMDAwMjE0LCAwLjAwMDIxNSwgMC4wMDAyMTUsIDAuMDAwMjE1LCAwLjAwMDIxNSIsIFwKLSAgICAgICAgICAiMC4wMDAyMDEsIDAuMDAwMjA0LCAwLjAwMDIxNSwgMC4wMDAyMTgsIDAuMDAwMjIsIDAuMDAwMjIxLCAwLjAwMDIyMSIsIFwKLSAgICAgICAgICAiMC4wMDAxODksIDAuMDAwMTk0LCAwLjAwMDIxLCAwLjAwMDIxNiwgMC4wMDAyMTksIDAuMDAwMjIxLCAwLjAwMDIyMSIsIFwKLSAgICAgICAgICAiMC4wMDAxODcsIDAuMDAwMTkyLCAwLjAwMDIwOCwgMC4wMDAyMTUsIDAuMDAwMjE4LCAwLjAwMDIyMSwgMC4wMDAyMjEiLCBcCi0gICAgICAgICAgIjAuMDAwMTk1LCAwLjAwMDE5OCwgMC4wMDAyMSwgMC4wMDAyMTcsIDAuMDAwMjE5LCAwLjAwMDIyMSwgMC4wMDAyMjIiLCBcCi0gICAgICAgICAgIjAuMDAwMjIzLCAwLjAwMDIyMiwgMC4wMDAyMjMsIDAuMDAwMjIzLCAwLjAwMDIyNCwgMC4wMDAyMjQsIDAuMDAwMjI0IiwgXAotICAgICAgICAgICIwLjAwMDI2NCwgMC4wMDAyNTYsIDAuMDAwMjQsIDAuMDAwMjM0LCAwLjAwMDIzMSwgMC4wMDAyMjgsIDAuMDAwMjI3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTUxNSwgMC4wMDE1MTUsIDAuMDAxNTE4LCAwLjAwMTUxOSwgMC4wMDE1MTksIDAuMDAxNTE5LCAwLjAwMTUxOSIsIFwKLSAgICAgICAgICAiMC4wMDE1MTUsIDAuMDAxNTE2LCAwLjAwMTUyMSwgMC4wMDE1MjMsIDAuMDAxNTIzLCAwLjAwMTUyMywgMC4wMDE1MjMiLCBcCi0gICAgICAgICAgIjAuMDAxNTI3LCAwLjAwMTUyNiwgMC4wMDE1MjYsIDAuMDAxNTI2LCAwLjAwMTUyNiwgMC4wMDE1MjUsIDAuMDAxNTI3IiwgXAotICAgICAgICAgICIwLjAwMTU1NCwgMC4wMDE1NSwgMC4wMDE1MzcsIDAuMDAxNTMyLCAwLjAwMTUzLCAwLjAwMTUyOCwgMC4wMDE1MjciLCBcCi0gICAgICAgICAgIjAuMDAxNTk0LCAwLjAwMTU4NSwgMC4wMDE1NTQsIDAuMDAxNTQsIDAuMDAxNTM3LCAwLjAwMTUzMiwgMC4wMDE1MyIsIFwKLSAgICAgICAgICAiMC4wMDE2NzgsIDAuMDAxNjYsIDAuMDAxNTkyLCAwLjAwMTU2NSwgMC4wMDE1NTMsIDAuMDAxNTQyLCAwLjAwMTUzOCIsIFwKLSAgICAgICAgICAiMC4wMDE3NjksIDAuMDAxNzM5LCAwLjAwMTYzMiwgMC4wMDE1ODksIDAuMDAxNTcxLCAwLjAwMTU1MywgMC4wMDE1NDgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDA0NDgsIDAuMDAwNDQ5LCAwLjAwMDQ1MSwgMC4wMDA0NTIsIDAuMDAwNDUyLCAwLjAwMDQ1MiwgMC4wMDA0NTIiLCBcCi0gICAgICAgICAgIjAuMDAwNDM5LCAwLjAwMDQ0LCAwLjAwMDQ0NywgMC4wMDA0NSwgMC4wMDA0NTEsIDAuMDAwNDUxLCAwLjAwMDQ1MiIsIFwKLSAgICAgICAgICAiMC4wMDA0NDUsIDAuMDAwNDQ2LCAwLjAwMDQ0OSwgMC4wMDA0NTEsIDAuMDAwNDUxLCAwLjAwMDQ1MiwgMC4wMDA0NTIiLCBcCi0gICAgICAgICAgIjAuMDAwNDc0LCAwLjAwMDQ3LCAwLjAwMDQ2MSwgMC4wMDA0NTcsIDAuMDAwNDU1LCAwLjAwMDQ1NCwgMC4wMDA0NTQiLCBcCi0gICAgICAgICAgIjAuMDAwNTExLCAwLjAwMDUwNCwgMC4wMDA0NzgsIDAuMDAwNDY3LCAwLjAwMDQ2MiwgMC4wMDA0NTgsIDAuMDAwNDU3IiwgXAotICAgICAgICAgICIwLjAwMDU4OCwgMC4wMDA1NzIsIDAuMDAwNTE0LCAwLjAwMDQ5LCAwLjAwMDQ3OCwgMC4wMDA0NjcsIDAuMDAwNDY0IiwgXAotICAgICAgICAgICIwLjAwMDY3LCAwLjAwMDY0NiwgMC4wMDA1NTYsIDAuMDAwNTE1LCAwLjAwMDQ5NywgMC4wMDA0NzksIDAuMDAwNDczIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IE9BSTIyMVhMICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChPQUkyMjFYTCkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjI0OTU5OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjI0NzU5OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYyNDAzNTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2MjQ3NTk7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjk2LCAwLjAwMDI5NiwgMC4wMDAyOTYsIDAuMDAwMjk2LCAwLjAwMDI5NiwgMC4wMDAyOTYsIDAuMDAwMjk2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjk3LCAwLjAwMDI5NywgMC4wMDAyOTcsIDAuMDAwMjk3LCAwLjAwMDI5NywgMC4wMDAyOTcsIDAuMDAwMjk3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihBMSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjIxOTYxOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYyMTk2MTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2MjA1ODE7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjk2LCAwLjAwMDI5NiwgMC4wMDAyOTYsIDAuMDAwMjk2LCAwLjAwMDI5NiwgMC4wMDAyOTYsIDAuMDAwMjk2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjk3LCAwLjAwMDI5NywgMC4wMDAyOTcsIDAuMDAwMjk3LCAwLjAwMDI5NywgMC4wMDAyOTcsIDAuMDAwMjk3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjcwNjI3OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDY2OTUxNjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2NzA2Mjc7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjk2LCAwLjAwMDI5NiwgMC4wMDAyOTYsIDAuMDAwMjk2LCAwLjAwMDI5NiwgMC4wMDAyOTYsIDAuMDAwMjk2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjk3LCAwLjAwMDI5NywgMC4wMDAyOTcsIDAuMDAwMjk3LCAwLjAwMDI5NywgMC4wMDAyOTcsIDAuMDAwMjk3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCMSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjQ4ODk7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjQ4ODk7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjQ3NzA3OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDI5NiwgMC4wMDAyOTcsIDAuMDAwMjk2LCAwLjAwMDI5NiwgMC4wMDAyOTYsIDAuMDAwMjk2LCAwLjAwMDI5NiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDI5NywgMC4wMDAyOTcsIDAuMDAwMjk3LCAwLjAwMDI5NywgMC4wMDAyOTcsIDAuMDAwMjk3LCAwLjAwMDI5NyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQzApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDcyMTAyMjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA3MjEwMDU7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNzIxMDIyOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDM4NywgMC4wMDAzODcsIDAuMDAwMzg3LCAwLjAwMDM4NywgMC4wMDAzODcsIDAuMDAwMzg3LCAwLjAwMDM4NyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDMzNywgMC4wMDAzMzgsIDAuMDAwMzM4LCAwLjAwMDMzOCwgMC4wMDAzMzgsIDAuMDAwMzM4LCAwLjAwMDMzOCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjA4NzExODE7Ci0gICAgZnVuY3Rpb24gOiAiKCEoKChBMCtBMSkgKEIwK0IxKSkgQzApKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTAiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEyMzQxMiwgMC4xNDI2MTEsIDAuMzE0MjM5LCAwLjU5ODQ0NSwgMC44ODIxNzMsIDEuNTQ1MDQsIDEuOTI0MDciLCBcCi0gICAgICAgICAgIjAuMTI5MzE5LCAwLjE0ODUxOCwgMC4zMjAxNDUsIDAuNjA0Mzc0LCAwLjg4ODEwMiwgMS41NTEwNSwgMS45Mjg2MyIsIFwKLSAgICAgICAgICAiMC4xMzYzNzcsIDAuMTU1NjEsIDAuMzI3MzEzLCAwLjYxMTQ4OSwgMC44OTUyMzUsIDEuNTU4MTMsIDEuOTM3NzIiLCBcCi0gICAgICAgICAgIjAuMTQzMzg2LCAwLjE2MjU4MywgMC4zMzQ0MjIsIDAuNjE4NjMsIDAuOTAyNDE1LCAxLjU2NjA5LCAxLjk0MzkzIiwgXAotICAgICAgICAgICIwLjE1MDU1OCwgMC4xNjk2MzIsIDAuMzQxMTYsIDAuNjI1NDE1LCAwLjkwOTE3NCwgMS41NzEwNiwgMS45NTA0OCIsIFwKLSAgICAgICAgICAiMC4xNjE3NjEsIDAuMTgxMDI3LCAwLjM1Mjc2NCwgMC42MzcxMDYsIDAuOTIwOTA0LCAxLjU4MzAzLCAxLjk2MzA2IiwgXAotICAgICAgICAgICIwLjE3MTcxMiwgMC4xOTA5MTEsIDAuMzYyNjU3LCAwLjY0NzY2MiwgMC45MzE0MTcsIDEuNTk0NDksIDEuOTcyMDMiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjQ3NDE2LCAwLjI4NzUwOSwgMC42NDkwMDEsIDEuMjUxNCwgMS44NTMxMywgMy4yNTcwNCwgNC4wNTkyNSIsIFwKLSAgICAgICAgICAiMC4yNDczNDIsIDAuMjg3NTc3LCAwLjY0ODkzNSwgMS4yNTEwNiwgMS44NTMyMiwgMy4yNTcxNiwgNC4wNTk3MyIsIFwKLSAgICAgICAgICAiMC4yNDc4MywgMC4yODc3NjMsIDAuNjQ5MDEsIDEuMjUxNDIsIDEuODUzMjIsIDMuMjU3MSwgNC4wNjA1MSIsIFwKLSAgICAgICAgICAiMC4yNDk5MjEsIDAuMjg5MzQ4LCAwLjY0ODk3NywgMS4yNTEwMSwgMS44NTMzMywgMy4yNTcyMywgNC4wNjAxNiIsIFwKLSAgICAgICAgICAiMC4yNTMzOTMsIDAuMjkyMTc3LCAwLjY0OTE4NiwgMS4yNTE0LCAxLjg1MzAxLCAzLjI1NzQxLCA0LjA2MDEiLCBcCi0gICAgICAgICAgIjAuMjYwNDYsIDAuMjk4NzAyLCAwLjY1MTE1NiwgMS4yNTEwNywgMS44NTMyNywgMy4yNTcyLCA0LjA1OTczIiwgXAotICAgICAgICAgICIwLjI2Nzc5MywgMC4zMDUyNzgsIDAuNjU0MzQ4LCAxLjI1MTMzLCAxLjg1MzM2LCAzLjI1NzA0LCA0LjA2MDE0Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE2MTY5LCAwLjE4NjE2NCwgMC40MDY1NjksIDAuNzc2MjY5LCAxLjE0NjIyLCAyLjAxMDc0LCAyLjUwNjIyIiwgXAotICAgICAgICAgICIwLjE2ODU4MywgMC4xOTMwNjYsIDAuNDEzNzQxLCAwLjc4MjM4NywgMS4xNTM3NCwgMi4wMTk0MSwgMi41MTMwMSIsIFwKLSAgICAgICAgICAiMC4xNzUxNDcsIDAuMTk5NjgzLCAwLjQyMDIxOCwgMC43ODk1NTksIDEuMTU5OTcsIDIuMDI1MjgsIDIuNTIwMjYiLCBcCi0gICAgICAgICAgIjAuMTgxMDYxLCAwLjIwNTYyOSwgMC40MjYwNDgsIDAuNzk0NzY2LCAxLjE2NjI2LCAyLjAzMTIsIDIuNTI2MSIsIFwKLSAgICAgICAgICAiMC4xODY2NCwgMC4yMTExNSwgMC40MzE4MzUsIDAuODAwNzIsIDEuMTcxMjEsIDIuMDM2OSwgMi41MzE0MSIsIFwKLSAgICAgICAgICAiMC4xOTU3OTcsIDAuMjIwMjg1LCAwLjQ0MDgzNiwgMC44MDk0NzIsIDEuMTgwNDUsIDIuMDQ3NCwgMi41Mzk0NSIsIFwKLSAgICAgICAgICAiMC4yMDM3ODYsIDAuMjI4MTgsIDAuNDQ4NjU2LCAwLjgxNzc2NSwgMS4xODgyNiwgMi4wNTQ5NywgMi41NDgzOSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yOTYyMiwgMC4zNDY3MSwgMC44MDQ1MDUsIDEuNTcxMjksIDIuMzM3ODgsIDQuMTI0NDUsIDUuMTQ3NjMiLCBcCi0gICAgICAgICAgIjAuMjk2MjE4LCAwLjM0NjY3MSwgMC44MDQzMzQsIDEuNTcwNTgsIDIuMzM2OTYsIDQuMTI1NTYsIDUuMTQ2NzYiLCBcCi0gICAgICAgICAgIjAuMjk2MTQ3LCAwLjM0NjY4NiwgMC44MDQyNywgMS41NzEyMywgMi4zMzc3MSwgNC4xMjQxOCwgNS4xNDY2IiwgXAotICAgICAgICAgICIwLjI5Njg3NywgMC4zNDcwMzEsIDAuODA0MjcyLCAxLjU3MDQ1LCAyLjMzNjk2LCA0LjEyNTA5LCA1LjE0NzUyIiwgXAotICAgICAgICAgICIwLjI5ODEyOCwgMC4zNDgwNTEsIDAuODA0MjQ3LCAxLjU3MDQ5LCAyLjMzNjgxLCA0LjEyNzYxLCA1LjE0NTk5IiwgXAotICAgICAgICAgICIwLjMwMTU5OSwgMC4zNTEyMDEsIDAuODA0NSwgMS41NzA0MiwgMi4zMzY5OSwgNC4xMjY0OCwgNS4xNDYyMiIsIFwKLSAgICAgICAgICAiMC4zMDU5ODgsIDAuMzU0OTM2LCAwLjgwNTgyNywgMS41NzA1LCAyLjMzNjkxLCA0LjEyNjI0LCA1LjE0NzE3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkExIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMjA4MjcsIDAuMTQwMDM0LCAwLjMxMTY2MSwgMC41OTU5MTUsIDAuODc5NjQyLCAxLjU0MjksIDEuOTIyMDMiLCBcCi0gICAgICAgICAgIjAuMTI4MTA3LCAwLjE0NzI5OCwgMC4zMTg5NzcsIDAuNjAzMTY0LCAwLjg4NjkxNSwgMS41NDkxOCwgMS45MjkzNyIsIFwKLSAgICAgICAgICAiMC4xMzcyOTIsIDAuMTU2NDc5LCAwLjMyODA0NywgMC42MTIyNDQsIDAuODk2MDEzLCAxLjU1ODk1LCAxLjkzODUiLCBcCi0gICAgICAgICAgIjAuMTQ2Nzc2LCAwLjE2NTg2LCAwLjMzNzQ3MiwgMC42MjE1NTgsIDAuOTA1NzI0LCAxLjU2ODkyLCAxLjk0NjgxIiwgXAotICAgICAgICAgICIwLjE1NjI1OCwgMC4xNzU0MDUsIDAuMzQ2ODAyLCAwLjYzMDg3MiwgMC45MTUwMjUsIDEuNTc3MDQsIDEuOTU3NDEiLCBcCi0gICAgICAgICAgIjAuMTcxNjA0LCAwLjE5MDYwNiwgMC4zNjE4MzMsIDAuNjQ1OTgsIDAuOTI5NDU2LCAxLjU5MTQ5LCAxLjk3MTc5IiwgXAotICAgICAgICAgICIwLjE4NTA2NiwgMC4yMDQyOTksIDAuMzc1MDU2LCAwLjY1OTAxOCwgMC45NDI2OTcsIDEuNjA2MDksIDEuOTgzMDgiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjQ3NDE4LCAwLjI4NzQ5NSwgMC42NDkwMDIsIDEuMjUxNDUsIDEuODUzMzMsIDMuMjU3MTMsIDQuMDYwMDciLCBcCi0gICAgICAgICAgIjAuMjQ3NDA2LCAwLjI4NzQ5NCwgMC42NDkwMTcsIDEuMjUxLCAxLjg1MzI2LCAzLjI1NzAyLCA0LjA1OTU1IiwgXAotICAgICAgICAgICIwLjI0NzkzNywgMC4yODc2NDQsIDAuNjQ4OTEzLCAxLjI1MTMsIDEuODUzMDIsIDMuMjU3MTksIDQuMDU5NTEiLCBcCi0gICAgICAgICAgIjAuMjUxMzA3LCAwLjI5MDExNCwgMC42NDg5NzYsIDEuMjUxMzYsIDEuODUzMzUsIDMuMjU3NTgsIDQuMDYwMTkiLCBcCi0gICAgICAgICAgIjAuMjU2NDI5LCAwLjI5NDUxLCAwLjY0ODk0MiwgMS4yNTEzNywgMS44NTMzNSwgMy4yNTcxNCwgNC4wNTk2MSIsIFwKLSAgICAgICAgICAiMC4yNjY5OTEsIDAuMzA0MDA2LCAwLjY1MTQ5NCwgMS4yNTExLCAxLjg1Mjk4LCAzLjI1NzIyLCA0LjA1OTI3IiwgXAotICAgICAgICAgICIwLjI3NzQ4MSwgMC4zMTQwOTMsIDAuNjU2MDgsIDEuMjUxMjEsIDEuODUzMjQsIDMuMjU3MTksIDQuMDYwMTMiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTU3MDkyLCAwLjE4MTczLCAwLjQwMjE5MywgMC43NzEwMDksIDEuMTQyNzMsIDIuMDA4ODIsIDIuNTAyMTEiLCBcCi0gICAgICAgICAgIjAuMTY0MDc0LCAwLjE4ODYxNCwgMC40MDkyMzIsIDAuNzc4MDk0LCAxLjE0OTY3LCAyLjAxNTY0LCAyLjUwODU4IiwgXAotICAgICAgICAgICIwLjE3MDU1NywgMC4xOTUxMzIsIDAuNDE1NzA1LCAwLjc4NTMyNSwgMS4xNTU2MiwgMi4wMjA1NCwgMi41MTYwNSIsIFwKLSAgICAgICAgICAiMC4xNzYyNjgsIDAuMjAwODQ1LCAwLjQyMTY2OSwgMC43OTAyNzIsIDEuMTYxNzcsIDIuMDI2NzYsIDIuNTIxOCIsIFwKLSAgICAgICAgICAiMC4xODE4OTgsIDAuMjA2NDU4LCAwLjQyNzI0NiwgMC43OTYxODksIDEuMTY2NzIsIDIuMDMyNDksIDIuNTI2OTYiLCBcCi0gICAgICAgICAgIjAuMTkwOTUzLCAwLjIxNTQ2NCwgMC40MzYxMzgsIDAuODA0OTI3LCAxLjE3NTk0LCAyLjA0MjkyLCAyLjUzNTAyIiwgXAotICAgICAgICAgICIwLjE5ODg2NywgMC4yMjMzMTQsIDAuNDQzOTgyLCAwLjgxMzIsIDEuMTgzNzMsIDIuMDUwNDcsIDIuNTQzOTgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjkwMDAyLCAwLjM0MDY0NCwgMC43OTc5NzMsIDEuNTY0MjIsIDIuMzMxMiwgNC4xMjA1OSwgNS4xNDAxNSIsIFwKLSAgICAgICAgICAiMC4yODk5NzIsIDAuMzQwNTMxLCAwLjc5Nzc2OCwgMS41NjQwNCwgMi4zMzA4NSwgNC4xMTk1NywgNS4xNDAxMiIsIFwKLSAgICAgICAgICAiMC4yOTAxNCwgMC4zNDA0NzgsIDAuNzk5NDI4LCAxLjU2NDUxLCAyLjMzMTUzLCA0LjEyNTM1LCA1LjE0MDUyIiwgXAotICAgICAgICAgICIwLjI5MDU4NCwgMC4zNDA5NDIsIDAuNzk4MTU0LCAxLjU2NjUsIDIuMzMwNCwgNC4xMTg2OSwgNS4xNDAxMyIsIFwKLSAgICAgICAgICAiMC4yOTE5NzUsIDAuMzQxOTExLCAwLjc5Nzk4OCwgMS41NjQwNCwgMi4zMzQwOSwgNC4xMjA0NiwgNS4xNDA3MyIsIFwKLSAgICAgICAgICAiMC4yOTU2MDIsIDAuMzQ1MDc5LCAwLjc5OTQwMSwgMS41NjY0OSwgMi4zMzQyOCwgNC4xMTk2LCA1LjE0NzI1IiwgXAotICAgICAgICAgICIwLjI5OTk5NSwgMC4zNDg5MTksIDAuODAwNTg2LCAxLjU2NDE3LCAyLjMzNDE5LCA0LjExOTE0LCA1LjE0MTAzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTcxMzcsIDAuMTM2MjE2LCAwLjMwNzMyLCAwLjU5MTM0LCAwLjg3NDk3OCwgMS41MzcyNywgMS45MTU0NSIsIFwKLSAgICAgICAgICAiMC4xMjMxOTMsIDAuMTQyMjUzLCAwLjMxMzQ1MSwgMC41OTczODgsIDAuODgxMTQ3LCAxLjU0MzAzLCAxLjkyMjU2IiwgXAotICAgICAgICAgICIwLjEzMDIyMSwgMC4xNDkyNSwgMC4zMjA1NzUsIDAuNjA0NDc5LCAwLjg4ODE3OSwgMS41NTAyOCwgMS45Mjk4MyIsIFwKLSAgICAgICAgICAiMC4xMzczMzMsIDAuMTU2MzQyLCAwLjMyNzgwNCwgMC42MTE3NTksIDAuODk1NDc0LCAxLjU1OTEzLCAxLjkzNjE4IiwgXAotICAgICAgICAgICIwLjE0NDI5LCAwLjE2MzQ3OSwgMC4zMzQ4NjksIDAuNjE5MDAyLCAwLjkwMjYzOCwgMS41NjUyMywgMS45NDUyNyIsIFwKLSAgICAgICAgICAiMC4xNTU3MzgsIDAuMTc0NjI3LCAwLjM0NjA4NiwgMC42MzAzMjMsIDAuOTE0MDM5LCAxLjU3NTkxLCAxLjk1NTQ5IiwgXAotICAgICAgICAgICIwLjE2NTI2LCAwLjE4NDU1NywgMC4zNTU3OSwgMC42NDA3MjMsIDAuOTI0MzgxLCAxLjU4NjE5LCAxLjk2NjI5Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIzODQsIDAuMjc4NTI3LCAwLjYzOTg0NywgMS4yNDE3OCwgMS44NDM0NywgMy4yNDY4NSwgNC4wNDkwOSIsIFwKLSAgICAgICAgICAiMC4yMzg0LCAwLjI3ODU0LCAwLjYzOTg4MSwgMS4yNDE3NCwgMS44NDM1NCwgMy4yNDY1MiwgNC4wNDgzMyIsIFwKLSAgICAgICAgICAiMC4yMzg5NzEsIDAuMjc4NzcxLCAwLjYzOTkyNSwgMS4yNDE3MSwgMS44NDM0MiwgMy4yNDY2LCA0LjA0OTIyIiwgXAotICAgICAgICAgICIwLjI0MTI3NiwgMC4yODA1MzUsIDAuNjM5ODY0LCAxLjI0MTQ5LCAxLjg0MzUzLCAzLjI0NjY4LCA0LjA0ODg4IiwgXAotICAgICAgICAgICIwLjI0NDc2OCwgMC4yODM2ODYsIDAuNjQwMDY1LCAxLjI0MTk1LCAxLjg0MzUxLCAzLjI0NjgsIDQuMDQ4ODciLCBcCi0gICAgICAgICAgIjAuMjUyMjIsIDAuMjkwMTA5LCAwLjY0MjE0NywgMS4yNDE2NiwgMS44NDM0MywgMy4yNDY2NywgNC4wNDg0OCIsIFwKLSAgICAgICAgICAiMC4yNTk0MzUsIDAuMjk3MDI1LCAwLjY0NTI2OCwgMS4yNDE4MSwgMS44NDMyOCwgMy4yNDY5MSwgNC4wNDg2NCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNTU5NTgsIDAuMTgwNDksIDAuNDAwODc4LCAwLjc2ODMyOSwgMS4xMzUxLCAxLjk5MTY1LCAyLjQ4MTc1IiwgXAotICAgICAgICAgICIwLjE2Mjc5NiwgMC4xODcyNzksIDAuNDA3OTcxLCAwLjc3NDY0OCwgMS4xNDI0MywgMS45OTkzNiwgMi40ODY5MiIsIFwKLSAgICAgICAgICAiMC4xNzA2NSwgMC4xOTUxODYsIDAuNDE1NTUxLCAwLjc4MzE2LCAxLjE0OTY0LCAyLjAwNjY5LCAyLjQ5NjM1IiwgXAotICAgICAgICAgICIwLjE3ODQxMywgMC4yMDI5NTIsIDAuNDIzNDgsIDAuNzkwNTg1LCAxLjE1NzgxLCAyLjAxNDE4LCAyLjUwNDI2IiwgXAotICAgICAgICAgICIwLjE4NjI3NSwgMC4yMTA3OCwgMC40MzE3NSwgMC43OTg3NjMsIDEuMTY1NjIsIDIuMDIzMDMsIDIuNTEyMiIsIFwKLSAgICAgICAgICAiMC4xOTkxNzksIDAuMjIzNjA2LCAwLjQ0NDI4OCwgMC44MTE1MjksIDEuMTc4NjksIDIuMDM2NTUsIDIuNTI1NTYiLCBcCi0gICAgICAgICAgIjAuMjEwNDU2LCAwLjIzNDk1OCwgMC40NTU0MTEsIDAuODIyNzA4LCAxLjE4OTY1LCAyLjA0NTk0LCAyLjUzNjU1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI5NjE4NSwgMC4zNDY3MTMsIDAuODAxMTIyLCAxLjU1ODAyLCAyLjMxNTg3LCA0LjA4MjQyLCA1LjA4OTE3IiwgXAotICAgICAgICAgICIwLjI5NjE0NiwgMC4zNDY2NjksIDAuODAxMjg0LCAxLjU1ODI3LCAyLjMxNSwgNC4wODEwNSwgNS4wODg5IiwgXAotICAgICAgICAgICIwLjI5NjE1NSwgMC4zNDY2NzcsIDAuODAxMDM3LCAxLjU1ODQ4LCAyLjMxNDcyLCA0LjA4MTE0LCA1LjA5MzIiLCBcCi0gICAgICAgICAgIjAuMjk3MjYxLCAwLjM0NzIzLCAwLjgwMDk3OCwgMS41NTgwMSwgMi4zMTUwNywgNC4wODA4LCA1LjA5MjUxIiwgXAotICAgICAgICAgICIwLjI5OTY1NSwgMC4zNDkyLCAwLjgwMTEyNCwgMS41NTgxMywgMi4zMTQ4MiwgNC4wODMyMSwgNS4wOTAzOSIsIFwKLSAgICAgICAgICAiMC4zMDU1MzksIDAuMzU0MTAxLCAwLjgwMTQxMiwgMS41NTgyOCwgMi4zMTQ5NSwgNC4wODE2MiwgNS4wODk3MiIsIFwKLSAgICAgICAgICAiMC4zMTIyNzYsIDAuMzYwMTQ1LCAwLjgwMjk5LCAxLjU1ODExLCAyLjMxNDk2LCA0LjA4MDY2LCA1LjA5MDg5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIxIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTQzNSwgMC4xMzM0MTUsIDAuMzA0NTIyLCAwLjU4ODQ4MywgMC44NzIzMDQsIDEuNTM0NjEsIDEuOTEyMzQiLCBcCi0gICAgICAgICAgIjAuMTIxNjUzLCAwLjE0MDcyNiwgMC4zMTE4ODgsIDAuNTk1ODc0LCAwLjg3OTY2NiwgMS41NDIzOCwgMS45MjAxMiIsIFwKLSAgICAgICAgICAiMC4xMzA5MDksIDAuMTQ5OTc5LCAwLjMyMTA3LCAwLjYwNDk3NiwgMC44ODg2NjEsIDEuNTUxMTYsIDEuOTMwMzYiLCBcCi0gICAgICAgICAgIjAuMTQwMzUyLCAwLjE1OTM5OCwgMC4zMzA0NzMsIDAuNjE0MzEzLCAwLjg5ODAyNywgMS41NjE0NSwgMS45Mzg2NCIsIFwKLSAgICAgICAgICAiMC4xNDk4ODEsIDAuMTY4OTA2LCAwLjMzOTg1MywgMC42MjM2MTksIDAuOTA3Mjk4LCAxLjU2OTg3LCAxLjk0OTY0IiwgXAotICAgICAgICAgICIwLjE2NTMwOCwgMC4xODQxNTgsIDAuMzU0ODg1LCAwLjYzODcyOCwgMC45MjIyMDIsIDEuNTgzOTUsIDEuOTYzNyIsIFwKLSAgICAgICAgICAiMC4xNzg2OTMsIDAuMTk3Njg2LCAwLjM2ODA3OCwgMC42NDkyNjEsIDAuOTM1MjM0LCAxLjU5ODU4LCAxLjk3NTEzIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIzODM3LCAwLjI3ODQ5MiwgMC42Mzk4NTYsIDEuMjQxNjksIDEuODQzNSwgMy4yNDc4NSwgNC4wNDg2MSIsIFwKLSAgICAgICAgICAiMC4yMzgzNDMsIDAuMjc4NDg3LCAwLjYzOTg1OSwgMS4yNDE4OCwgMS44NDM1MywgMy4yNDcxMiwgNC4wNDg3NyIsIFwKLSAgICAgICAgICAiMC4yMzkxOTcsIDAuMjc4NzYyLCAwLjYzOTc2MSwgMS4yNDE3MSwgMS44NDM0MSwgMy4yNDY2NCwgNC4wNDkwNiIsIFwKLSAgICAgICAgICAiMC4yNDI3ODUsIDAuMjgxNTU3LCAwLjYzOTgyNiwgMS4yNDE4MywgMS44NDM1NiwgMy4yNDY2NSwgNC4wNDkxNiIsIFwKLSAgICAgICAgICAiMC4yNDgyMDUsIDAuMjg2MTk5LCAwLjYzOTk2NCwgMS4yNDE0NywgMS44NDM2NywgMy4yNDY4NiwgNC4wNDg4MSIsIFwKLSAgICAgICAgICAiMC4yNTkyMDYsIDAuMjk2MDQyLCAwLjY0MjY5NywgMS4yNDE4NCwgMS44NDM1MywgMy4yNDY4NSwgNC4wNDkyNSIsIFwKLSAgICAgICAgICAiMC4yNzAwMzgsIDAuMzA2MjU1LCAwLjY0NzM4LCAxLjI0MTY3LCAxLjg0MzU2LCAzLjI0NjQ1LCA0LjA0ODU3Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE1MjU1NywgMC4xNzczNjEsIDAuMzk5OTgsIDAuNzcwOTM2LCAxLjE0MTY4LCAyLjAwNjg0LCAyLjUwMTkxIiwgXAotICAgICAgICAgICIwLjE1OTQyNywgMC4xODQxODQsIDAuNDA3MDYsIDAuNzc3ODE4LCAxLjE0OTA5LCAyLjAxNTExLCAyLjUwODE2IiwgXAotICAgICAgICAgICIwLjE2NzExMywgMC4xOTE5MjksIDAuNDE0NTU4LCAwLjc4NjM2NSwgMS4xNTY1LCAyLjAyMTY5LCAyLjUxNTYyIiwgXAotICAgICAgICAgICIwLjE3NDY0MywgMC4xOTk1MywgMC40MjIzNjgsIDAuNzk0MDg4LCAxLjE2NDA2LCAyLjAzMDE0LCAyLjUyNDEzIiwgXAotICAgICAgICAgICIwLjE4MjQwNywgMC4yMDcxNjEsIDAuNDMwNDg2LCAwLjgwMTI3MSwgMS4xNzE4MywgMi4wMzc4NiwgMi41MzE5NSIsIFwKLSAgICAgICAgICAiMC4xOTUxNjQsIDAuMjE5Nzk0LCAwLjQ0MjkyOCwgMC44MTQ1NDksIDEuMTg0NzQsIDIuMDUxMTcsIDIuNTQ1MzQiLCBcCi0gICAgICAgICAgIjAuMjA2MjA5LCAwLjIzMDg5NSwgMC40NTM4MDgsIDAuODI0ODYxLCAxLjE5NTUsIDIuMDYwNDcsIDIuNTU2MTEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjkzMjMyLCAwLjM0NDQxOCwgMC44MDQzMjcsIDEuNTcwNTIsIDIuMzM3ODgsIDQuMTI3NDEsIDUuMTQ2OTIiLCBcCi0gICAgICAgICAgIjAuMjkzMjc3LCAwLjM0NDQyMywgMC44MDQ0NjMsIDEuNTcwNTQsIDIuMzM3MjEsIDQuMTI2MDMsIDUuMTQ4MDIiLCBcCi0gICAgICAgICAgIjAuMjkzMjEyLCAwLjM0NDM1NywgMC44MDQyNzksIDEuNTcxMTMsIDIuMzM3MTMsIDQuMTI3MjgsIDUuMTQ3NTYiLCBcCi0gICAgICAgICAgIjAuMjk0MzAzLCAwLjM0NDkyMywgMC44MDQ0MTgsIDEuNTcxMjMsIDIuMzM3NzYsIDQuMTI1NjcsIDUuMTQ1OTMiLCBcCi0gICAgICAgICAgIjAuMjk2NzMyLCAwLjM0NjYyOCwgMC44MDQyOTcsIDEuNTcwNjYsIDIuMzM2NzcsIDQuMTI3MzQsIDUuMTQ2NzkiLCBcCi0gICAgICAgICAgIjAuMzAyNzU5LCAwLjM1MTc4MywgMC44MDQ0MjYsIDEuNTcwOSwgMi4zMzY5MSwgNC4xMjU2NCwgNS4xNDcyIiwgXAotICAgICAgICAgICIwLjMwOTUyMywgMC4zNTc4MjUsIDAuODA2MTU2LCAxLjU3MDY0LCAyLjMzNjg2LCA0LjEyNTAyLCA1LjE0NjYxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjE1NDMsIDAuMDcyMTU0LCAwLjE2NzUwMywgMC4zMjYwMywgMC40ODQwODksIDAuODUyMzYsIDEuMDYyNDkiLCBcCi0gICAgICAgICAgIjAuMDY5NTY0LCAwLjA4MDE4MSwgMC4xNzU1MTQsIDAuMzM0MDUyLCAwLjQ5MjEsIDAuODYwMTY5LCAxLjA3MDcxIiwgXAotICAgICAgICAgICIwLjA3OTcyNSwgMC4wOTAzMTYsIDAuMTg1NjcyLCAwLjM0NDE4NiwgMC41MDIwNjYsIDAuODcwMTksIDEuMDgwNzIiLCBcCi0gICAgICAgICAgIjAuMDg5OTY2LCAwLjEwMDQ5OSwgMC4xOTU3MzksIDAuMzU0MjE5LCAwLjUxMjE4LCAwLjg4MDIxNCwgMS4wOTA3MiIsIFwKLSAgICAgICAgICAiMC4xMDAxOTYsIDAuMTEwNzM0LCAwLjIwNTg3MSwgMC4zNjQyODIsIDAuNTIyMjY2LCAwLjg5MDI0NSwgMS4xMDA1MiIsIFwKLSAgICAgICAgICAiMC4xMTQ3MTUsIDAuMTI2NzI5LCAwLjIyMjA4LCAwLjM4MDQ3LCAwLjUzODM4NywgMC45MDY0NjksIDEuMTE2NTYiLCBcCi0gICAgICAgICAgIjAuMTI1NTgzLCAwLjEzODUyNiwgMC4yMzY0NTYsIDAuMzk0NjU4LCAwLjU1MjYyMSwgMC45MjA2MTQsIDEuMTMwODYiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTMxMDQ4LCAwLjE1MzA5NywgMC4zNTIxODYsIDAuNjg0MDc1LCAxLjAxNjA1LCAxLjc5MTEyLCAyLjIzMzU5IiwgXAotICAgICAgICAgICIwLjEzMTI5NCwgMC4xNTMxOTksIDAuMzUyMTg0LCAwLjY4Mzk2OSwgMS4wMTYyMSwgMS43OTA4NiwgMi4yMzM2NiIsIFwKLSAgICAgICAgICAiMC4xMzU0MjMsIDAuMTU2Mzg1LCAwLjM1MjA5MSwgMC42ODM5NTgsIDEuMDE1NzEsIDEuNzkwOCwgMi4yMzM3MSIsIFwKLSAgICAgICAgICAiMC4xNDIyNDgsIDAuMTYyNDA5LCAwLjM1MzI2NSwgMC42ODM5MTksIDEuMDE1NywgMS43OTA3OSwgMi4yMzI3NSIsIFwKLSAgICAgICAgICAiMC4xNTAzLCAwLjE2OTkzMSwgMC4zNTY2NDEsIDAuNjgzODY0LCAxLjAxNTc5LCAxLjc5MDkxLCAyLjIzMzU4IiwgXAotICAgICAgICAgICIwLjE2NDg4NCwgMC4xODM3ODIsIDAuMzY0Nzc0LCAwLjY4NTg0LCAxLjAxNjE2LCAxLjc5MDksIDIuMjMzNTkiLCBcCi0gICAgICAgICAgIjAuMTc4NTE5LCAwLjE5NjgzNiwgMC4zNzM3NywgMC42ODk2NTgsIDEuMDE2MjksIDEuNzkwNzksIDIuMjMzNjkiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTQ3NTc1LCAwLjE3MjA5OCwgMC4zOTI0MTIsIDAuNzYxNjU2LCAxLjEzMzE2LCAxLjk5OTA2LCAyLjQ5MTkzIiwgXAotICAgICAgICAgICIwLjE1NDU3NiwgMC4xNzkxMDYsIDAuMzk5NjEzLCAwLjc2ODcxOSwgMS4xMzkzOCwgMi4wMDU3LCAyLjQ5NzgzIiwgXAotICAgICAgICAgICIwLjE2MzQ5MywgMC4xODczNjgsIDAuNDA4NywgMC43Nzc0MSwgMS4xNDg2MSwgMi4wMTM3MiwgMi41MDgyMyIsIFwKLSAgICAgICAgICAiMC4xNzI0MDEsIDAuMTk2OTM2LCAwLjQxNzQxOSwgMC43ODY1NDMsIDEuMTU4MTcsIDIuMDIyOTksIDIuNTE1NzUiLCBcCi0gICAgICAgICAgIjAuMTgxNjYsIDAuMjA2MDQzLCAwLjQyNjEzNywgMC43OTUxMDksIDEuMTY2NzUsIDIuMDMxMTIsIDIuNTI1NTkiLCBcCi0gICAgICAgICAgIjAuMTk2NjI2LCAwLjIyMDgzOCwgMC40NDA2NjQsIDAuODA5Mjk5LCAxLjE3OTgxLCAyLjA0NDc0LCAyLjU0MDUxIiwgXAotICAgICAgICAgICIwLjIwOTkzOCwgMC4yMzQyMDYsIDAuNDUzNDA3LCAwLjgyMTk1NywgMS4xOTI4OCwgMi4wNTg5MSwgMi41NTE0NCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yOTYxNjksIDAuMzQ2Njk5LCAwLjgwNDUxMSwgMS41NzA1NCwgMi4zMzc3OSwgNC4xMjYyOCwgNS4xNDY3MiIsIFwKLSAgICAgICAgICAiMC4yOTYxNDQsIDAuMzQ2Njc3LCAwLjgwNDEyMSwgMS41NzA4NiwgMi4zMzc2NywgNC4xMjU3MywgNS4xNDY4NiIsIFwKLSAgICAgICAgICAiMC4yOTU5OCwgMC4zNDY0MjYsIDAuODA0MzMyLCAxLjU3MDUxLCAyLjMzNjkyLCA0LjEyNTAyLCA1LjE0NTc0IiwgXAotICAgICAgICAgICIwLjI5NzQzNSwgMC4zNDcxNzcsIDAuODA0NDA1LCAxLjU3MTAyLCAyLjMzNzksIDQuMTI1MTgsIDUuMTQ3MDQiLCBcCi0gICAgICAgICAgIjAuMzAxMTMyLCAwLjM1MDAyNywgMC44MDQxLCAxLjU3MDkyLCAyLjMzNzQsIDQuMTI0ODcsIDUuMTQ5MDYiLCBcCi0gICAgICAgICAgIjAuMzA5MjI3LCAwLjM1Njk3OCwgMC44MDQ0NTQsIDEuNTcwODEsIDIuMzM4MzgsIDQuMTMwNTEsIDUuMTQ2OSIsIFwKLSAgICAgICAgICAiMC4zMTc5NTIsIDAuMzY1MTAzLCAwLjgwNjkzOSwgMS41NzA3OCwgMi4zMzc2NiwgNC4xMjU3MywgNS4xNTMxNiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDM5NzMsIDAuMDAzOTcyLCAwLjAwMzk3MiwgMC4wMDM5NzEsIDAuMDAzOTcsIDAuMDAzOTY2LCAwLjAwMzk2NSIsIFwKLSAgICAgICAgICAiMC4wMDM5NiwgMC4wMDM5NjEsIDAuMDAzOTYxLCAwLjAwMzk2LCAwLjAwMzk1OSwgMC4wMDM5NTUsIDAuMDAzOTU3IiwgXAotICAgICAgICAgICIwLjAwMzk1OSwgMC4wMDM5NiwgMC4wMDM5NTksIDAuMDAzOTU3LCAwLjAwMzk1NywgMC4wMDM5NTMsIDAuMDAzOTUxIiwgXAotICAgICAgICAgICIwLjAwMzk2NiwgMC4wMDM5NjUsIDAuMDAzOTYyLCAwLjAwMzk1OCwgMC4wMDM5NTcsIDAuMDAzOTUzLCAwLjAwMzk1MiIsIFwKLSAgICAgICAgICAiMC4wMDM5NzksIDAuMDAzOTc2LCAwLjAwMzk2NywgMC4wMDM5NjIsIDAuMDAzOTYsIDAuMDAzOTU1LCAwLjAwMzk1MSIsIFwKLSAgICAgICAgICAiMC4wMDQwMTMsIDAuMDA0MDA3LCAwLjAwMzk4NCwgMC4wMDM5NzIsIDAuMDAzOTY2LCAwLjAwMzk1OCwgMC4wMDM5NTQiLCBcCi0gICAgICAgICAgIjAuMDA0MDU2LCAwLjAwNDA0NSwgMC4wMDQwMDUsIDAuMDAzOTg1LCAwLjAwMzk3NSwgMC4wMDM5NjMsIDAuMDAzOTYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDEwNDksIDAuMDAxMDUsIDAuMDAxMDUsIDAuMDAxMDUsIDAuMDAxMDQ5LCAwLjAwMTA0OSwgMC4wMDEwNDgiLCBcCi0gICAgICAgICAgIjAuMDAxMDM2LCAwLjAwMTAzNywgMC4wMDEwNCwgMC4wMDEwNDEsIDAuMDAxMDQxLCAwLjAwMTA0LCAwLjAwMTA0IiwgXAotICAgICAgICAgICIwLjAwMTAyOSwgMC4wMDEwMzEsIDAuMDAxMDM2LCAwLjAwMTAzOSwgMC4wMDEwMzksIDAuMDAxMDM5LCAwLjAwMTAzOCIsIFwKLSAgICAgICAgICAiMC4wMDEwMjQsIDAuMDAxMDI2LCAwLjAwMTAzNCwgMC4wMDEwMzcsIDAuMDAxMDM4LCAwLjAwMTAzOCwgMC4wMDEwMzgiLCBcCi0gICAgICAgICAgIjAuMDAxMDIzLCAwLjAwMTAyNSwgMC4wMDEwMzMsIDAuMDAxMDM3LCAwLjAwMTAzOCwgMC4wMDEwMzgsIDAuMDAxMDM4IiwgXAotICAgICAgICAgICIwLjAwMTAzLCAwLjAwMTAzMSwgMC4wMDEwMzUsIDAuMDAxMDM4LCAwLjAwMTAzOCwgMC4wMDEwMzgsIDAuMDAxMDM4IiwgXAotICAgICAgICAgICIwLjAwMTA0NywgMC4wMDEwNDUsIDAuMDAxMDQzLCAwLjAwMTA0MiwgMC4wMDEwNDEsIDAuMDAxMDQsIDAuMDAxMDM5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzcxMywgMC4wMDM3MTMsIDAuMDAzNzEzLCAwLjAwMzcxMSwgMC4wMDM3MSwgMC4wMDM3MDgsIDAuMDAzNzA1IiwgXAotICAgICAgICAgICIwLjAwMzcsIDAuMDAzNywgMC4wMDM3LCAwLjAwMzY5OSwgMC4wMDM2OTgsIDAuMDAzNjk2LCAwLjAwMzY5MyIsIFwKLSAgICAgICAgICAiMC4wMDM3MDcsIDAuMDAzNzA2LCAwLjAwMzcwMiwgMC4wMDM2OTksIDAuMDAzNjk4LCAwLjAwMzY5NCwgMC4wMDM2OTIiLCBcCi0gICAgICAgICAgIjAuMDAzNzIzLCAwLjAwMzcyLCAwLjAwMzcwOSwgMC4wMDM3MDIsIDAuMDAzNywgMC4wMDM2OTYsIDAuMDAzNjkzIiwgXAotICAgICAgICAgICIwLjAwMzc0NywgMC4wMDM3NDIsIDAuMDAzNzIxLCAwLjAwMzcwOCwgMC4wMDM3MDMsIDAuMDAzNjk3LCAwLjAwMzY5NCIsIFwKLSAgICAgICAgICAiMC4wMDM3OTgsIDAuMDAzNzg4LCAwLjAwMzc0NiwgMC4wMDM3MjUsIDAuMDAzNzE0LCAwLjAwMzcwMywgMC4wMDM2OTkiLCBcCi0gICAgICAgICAgIjAuMDAzODUzLCAwLjAwMzg0LCAwLjAwMzc3NiwgMC4wMDM3NDMsIDAuMDAzNzI4LCAwLjAwMzcxMSwgMC4wMDM3MDQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDA4MDksIDAuMDAwODEsIDAuMDAwODEyLCAwLjAwMDgxMiwgMC4wMDA4MTIsIDAuMDAwODEyLCAwLjAwMDgxMiIsIFwKLSAgICAgICAgICAiMC4wMDA4MDEsIDAuMDAwODAzLCAwLjAwMDgxMywgMC4wMDA4MTcsIDAuMDAwODE4LCAwLjAwMDgxOCwgMC4wMDA4MTgiLCBcCi0gICAgICAgICAgIjAuMDAwNzg1LCAwLjAwMDc5LCAwLjAwMDgwNiwgMC4wMDA4MTMsIDAuMDAwODE2LCAwLjAwMDgxOCwgMC4wMDA4MTgiLCBcCi0gICAgICAgICAgIjAuMDAwNzc0LCAwLjAwMDc3OSwgMC4wMDA4LCAwLjAwMDgxLCAwLjAwMDgxNCwgMC4wMDA4MTYsIDAuMDAwODE3IiwgXAotICAgICAgICAgICIwLjAwMDc2NywgMC4wMDA3NzIsIDAuMDAwNzk2LCAwLjAwMDgwOCwgMC4wMDA4MTIsIDAuMDAwODE1LCAwLjAwMDgxNiIsIFwKLSAgICAgICAgICAiMC4wMDA3NjcsIDAuMDAwNzcyLCAwLjAwMDc5NCwgMC4wMDA4MDYsIDAuMDAwODExLCAwLjAwMDgxNSwgMC4wMDA4MTYiLCBcCi0gICAgICAgICAgIjAuMDAwNzgsIDAuMDAwNzgyLCAwLjAwMDc5OCwgMC4wMDA4MDgsIDAuMDAwODEyLCAwLjAwMDgxNiwgMC4wMDA4MTYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyOTU4LCAwLjAwMjk1OCwgMC4wMDI5NTgsIDAuMDAyOTU3LCAwLjAwMjk1NywgMC4wMDI5NTUsIDAuMDAyOTU0IiwgXAotICAgICAgICAgICIwLjAwMjk1MywgMC4wMDI5NTUsIDAuMDAyOTU3LCAwLjAwMjk1OCwgMC4wMDI5NTYsIDAuMDAyOTU1LCAwLjAwMjk1NCIsIFwKLSAgICAgICAgICAiMC4wMDI5NTIsIDAuMDAyOTUzLCAwLjAwMjk1NywgMC4wMDI5NTcsIDAuMDAyOTU3LCAwLjAwMjk1NywgMC4wMDI5NTUiLCBcCi0gICAgICAgICAgIjAuMDAyOTU4LCAwLjAwMjk1OCwgMC4wMDI5NTksIDAuMDAyOTU5LCAwLjAwMjk1OCwgMC4wMDI5NTYsIDAuMDAyOTU2IiwgXAotICAgICAgICAgICIwLjAwMjk3MSwgMC4wMDI5NywgMC4wMDI5NjYsIDAuMDAyOTYyLCAwLjAwMjk2MSwgMC4wMDI5NTgsIDAuMDAyOTU3IiwgXAotICAgICAgICAgICIwLjAwMzAwNiwgMC4wMDMsIDAuMDAyOTgyLCAwLjAwMjk3MywgMC4wMDI5NjgsIDAuMDAyOTYyLCAwLjAwMjk2IiwgXAotICAgICAgICAgICIwLjAwMzA0NywgMC4wMDMwMzcsIDAuMDAzMDAyLCAwLjAwMjk4NywgMC4wMDI5NzgsIDAuMDAyOTY4LCAwLjAwMjk2NCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTA1LCAwLjAwMTA1LCAwLjAwMTA1LCAwLjAwMTA1LCAwLjAwMTA1LCAwLjAwMTA0OSwgMC4wMDEwNDgiLCBcCi0gICAgICAgICAgIjAuMDAxMDM2LCAwLjAwMTAzNywgMC4wMDEwNCwgMC4wMDEwNDEsIDAuMDAxMDQxLCAwLjAwMTA0MSwgMC4wMDEwNCIsIFwKLSAgICAgICAgICAiMC4wMDEwMywgMC4wMDEwMzEsIDAuMDAxMDM3LCAwLjAwMTAzOSwgMC4wMDEwNCwgMC4wMDEwMzksIDAuMDAxMDM5IiwgXAotICAgICAgICAgICIwLjAwMTAzLCAwLjAwMTAzMSwgMC4wMDEwMzYsIDAuMDAxMDM5LCAwLjAwMTAzOSwgMC4wMDEwMzksIDAuMDAxMDM5IiwgXAotICAgICAgICAgICIwLjAwMTAzNiwgMC4wMDEwMzYsIDAuMDAxMDM4LCAwLjAwMTAzOSwgMC4wMDEwNCwgMC4wMDEwMzksIDAuMDAxMDM5IiwgXAotICAgICAgICAgICIwLjAwMTA1NywgMC4wMDEwNTQsIDAuMDAxMDQ3LCAwLjAwMTA0NCwgMC4wMDEwNDMsIDAuMDAxMDQxLCAwLjAwMTA0IiwgXAotICAgICAgICAgICIwLjAwMTA4OCwgMC4wMDEwODMsIDAuMDAxMDYyLCAwLjAwMTA1MiwgMC4wMDEwNDgsIDAuMDAxMDQ0LCAwLjAwMTA0MiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIxIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI2OTIsIDAuMDAyNjkyLCAwLjAwMjY5MiwgMC4wMDI2OTIsIDAuMDAyNjkxLCAwLjAwMjY4OSwgMC4wMDI2OTEiLCBcCi0gICAgICAgICAgIjAuMDAyNjg5LCAwLjAwMjY5LCAwLjAwMjY5MiwgMC4wMDI2OTIsIDAuMDAyNjkxLCAwLjAwMjY5MSwgMC4wMDI2OSIsIFwKLSAgICAgICAgICAiMC4wMDI2OTgsIDAuMDAyNjk4LCAwLjAwMjY5NiwgMC4wMDI2OTQsIDAuMDAyNjkzLCAwLjAwMjY5MSwgMC4wMDI2OSIsIFwKLSAgICAgICAgICAiMC4wMDI3MTMsIDAuMDAyNzExLCAwLjAwMjcwMywgMC4wMDI2OTcsIDAuMDAyNjk2LCAwLjAwMjY5MiwgMC4wMDI2OTEiLCBcCi0gICAgICAgICAgIjAuMDAyNzM3LCAwLjAwMjczNCwgMC4wMDI3MTUsIDAuMDAyNzA0LCAwLjAwMjcsIDAuMDAyNjk1LCAwLjAwMjY5MyIsIFwKLSAgICAgICAgICAiMC4wMDI3ODgsIDAuMDAyNzc3LCAwLjAwMjc0LCAwLjAwMjcyMSwgMC4wMDI3MSwgMC4wMDI3MDEsIDAuMDAyNjk5IiwgXAotICAgICAgICAgICIwLjAwMjg0NCwgMC4wMDI4MjksIDAuMDAyNzY5LCAwLjAwMjczMywgMC4wMDI3MjIsIDAuMDAyNzA4LCAwLjAwMjcwNSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDc4MSwgMC4wMDA3ODEsIDAuMDAwNzgzLCAwLjAwMDc4NCwgMC4wMDA3ODQsIDAuMDAwNzg0LCAwLjAwMDc4MyIsIFwKLSAgICAgICAgICAiMC4wMDA3NzIsIDAuMDAwNzc1LCAwLjAwMDc4NSwgMC4wMDA3ODgsIDAuMDAwNzg5LCAwLjAwMDc5LCAwLjAwMDc5IiwgXAotICAgICAgICAgICIwLjAwMDc1OSwgMC4wMDA3NjMsIDAuMDAwNzc5LCAwLjAwMDc4NSwgMC4wMDA3ODgsIDAuMDAwNzksIDAuMDAwNzkiLCBcCi0gICAgICAgICAgIjAuMDAwNzUyLCAwLjAwMDc1NiwgMC4wMDA3NzUsIDAuMDAwNzgzLCAwLjAwMDc4NiwgMC4wMDA3ODksIDAuMDAwNzg5IiwgXAotICAgICAgICAgICIwLjAwMDc1MywgMC4wMDA3NTYsIDAuMDAwNzc0LCAwLjAwMDc4MiwgMC4wMDA3ODYsIDAuMDAwNzg4LCAwLjAwMDc4OSIsIFwKLSAgICAgICAgICAiMC4wMDA3NjgsIDAuMDAwNzY4LCAwLjAwMDc3OSwgMC4wMDA3ODUsIDAuMDAwNzg3LCAwLjAwMDc4OSwgMC4wMDA3OSIsIFwKLSAgICAgICAgICAiMC4wMDA3OTQsIDAuMDAwNzkyLCAwLjAwMDc5LCAwLjAwMDc5MSwgMC4wMDA3OTEsIDAuMDAwNzkyLCAwLjAwMDc5MiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDIwNzEsIDAuMDAyMDcxLCAwLjAwMjA3MywgMC4wMDIwNzUsIDAuMDAyMDc1LCAwLjAwMjA3NSwgMC4wMDIwNzUiLCBcCi0gICAgICAgICAgIjAuMDAyMDc5LCAwLjAwMjA3OSwgMC4wMDIwODMsIDAuMDAyMDg1LCAwLjAwMjA4NSwgMC4wMDIwODQsIDAuMDAyMDg2IiwgXAotICAgICAgICAgICIwLjAwMjA5LCAwLjAwMjA5LCAwLjAwMjA4OSwgMC4wMDIwODksIDAuMDAyMDksIDAuMDAyMDg5LCAwLjAwMjA4OSIsIFwKLSAgICAgICAgICAiMC4wMDIxMTQsIDAuMDAyMTEsIDAuMDAyMSwgMC4wMDIwOTUsIDAuMDAyMDk0LCAwLjAwMjA5MiwgMC4wMDIwOTEiLCBcCi0gICAgICAgICAgIjAuMDAyMTQ3LCAwLjAwMjE0MSwgMC4wMDIxMTUsIDAuMDAyMDk4LCAwLjAwMjEsIDAuMDAyMDk1LCAwLjAwMjA5NCIsIFwKLSAgICAgICAgICAiMC4wMDIyMjEsIDAuMDAyMjA3LCAwLjAwMjE0OCwgMC4wMDIxMjQsIDAuMDAyMTE0LCAwLjAwMjEwNCwgMC4wMDIxIiwgXAotICAgICAgICAgICIwLjAwMjMwMSwgMC4wMDIyNzQsIDAuMDAyMTgzLCAwLjAwMjE0NiwgMC4wMDIxMywgMC4wMDIxMTQsIDAuMDAyMTA5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxMDc3LCAwLjAwMTA3OCwgMC4wMDEwOCwgMC4wMDEwOCwgMC4wMDEwOCwgMC4wMDEwOCwgMC4wMDEwNzkiLCBcCi0gICAgICAgICAgIjAuMDAxMDY3LCAwLjAwMTA2OSwgMC4wMDEwNzYsIDAuMDAxMDc4LCAwLjAwMTA3OSwgMC4wMDEwNzksIDAuMDAxMDc4IiwgXAotICAgICAgICAgICIwLjAwMTA3MSwgMC4wMDEwNjksIDAuMDAxMDc2LCAwLjAwMTA3OCwgMC4wMDEwNzksIDAuMDAxMDc5LCAwLjAwMTA3OSIsIFwKLSAgICAgICAgICAiMC4wMDEwOTQsIDAuMDAxMDkyLCAwLjAwMTA4NCwgMC4wMDEwODIsIDAuMDAxMDgxLCAwLjAwMTA4LCAwLjAwMTA4IiwgXAotICAgICAgICAgICIwLjAwMTEyNiwgMC4wMDExMTksIDAuMDAxMDk5LCAwLjAwMTA5LCAwLjAwMTA4NywgMC4wMDEwODMsIDAuMDAxMDgyIiwgXAotICAgICAgICAgICIwLjAwMTE5MSwgMC4wMDExNzksIDAuMDAxMTMzLCAwLjAwMTEwNiwgMC4wMDExLCAwLjAwMTA5MSwgMC4wMDEwODgiLCBcCi0gICAgICAgICAgIjAuMDAxMjU1LCAwLjAwMTI0LCAwLjAwMTE2NSwgMC4wMDExMjcsIDAuMDAxMTEyLCAwLjAwMTA5OCwgMC4wMDEwOTQiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogT0FJMjIyWDIgKgotICogLS0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKE9BSTIyMlgyKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuOTU0NjAyOwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNzMzNTU7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNzI5OTk7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNzMzNTU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxMDQ4LCAwLjAwMTA0NywgMC4wMDEwNDcsIDAuMDAxMDQ3LCAwLjAwMTA0NywgMC4wMDEwNDcsIDAuMDAxMDQ3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxMDUsIDAuMDAxMDUsIDAuMDAxMDUxLCAwLjAwMTA1MSwgMC4wMDEwNTIsIDAuMDAxMDUsIDAuMDAxMDUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEExKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE2NTQ4NTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE2NTQ4NTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE2NDk4MzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDEwNDksIDAuMDAxMDQ4LCAwLjAwMTA0OCwgMC4wMDEwNDgsIDAuMDAxMDQ4LCAwLjAwMTA0OCwgMC4wMDEwNDciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDEwNDksIDAuMDAxMDUsIDAuMDAxMDUsIDAuMDAxMDUsIDAuMDAxMDUsIDAuMDAxMDUxLCAwLjAwMTA1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNzY3ODY7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNzYzNDg7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNzY3ODY7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxMDQ4LCAwLjAwMTA0NywgMC4wMDEwNDcsIDAuMDAxMDQ3LCAwLjAwMTA0NywgMC4wMDEwNDcsIDAuMDAxMDQ3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxMDQ5LCAwLjAwMTA1LCAwLjAwMTA1MSwgMC4wMDEwNTEsIDAuMDAxMDUyLCAwLjAwMTA1LCAwLjAwMTA1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCMSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNjYyMzc7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNjYyMzc7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNjU4Mjk7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxMDQ5LCAwLjAwMTA0OCwgMC4wMDEwNDgsIDAuMDAxMDQ4LCAwLjAwMTA0OCwgMC4wMDEwNDgsIDAuMDAxMDQ4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxMDQ5LCAwLjAwMTA1LCAwLjAwMTA1LCAwLjAwMTA1LCAwLjAwMTA1MSwgMC4wMDEwNDcsIDAuMDAxMDUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEMwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE5MDAxODsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE4OTI1OTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE5MDAxODsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA4ODcsIDAuMDAwODg4LCAwLjAwMDg4OSwgMC4wMDA4ODgsIDAuMDAwODg5LCAwLjAwMDg4OCwgMC4wMDA4ODgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDExOTEsIDAuMDAxMTkyLCAwLjAwMTE5MiwgMC4wMDExOTIsIDAuMDAxMTkyLCAwLjAwMTE5MiwgMC4wMDExOTIiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEMxKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE3Mzc5MjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE3Mzc5MjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE3Mzc4OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDg4NywgMC4wMDA4ODgsIDAuMDAwODg4LCAwLjAwMDg4NywgMC4wMDA4ODgsIDAuMDAwODg3LCAwLjAwMDg4OCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTE5MSwgMC4wMDExOTEsIDAuMDAxMTkxLCAwLjAwMTE5MSwgMC4wMDExOTEsIDAuMDAxMTkxLCAwLjAwMTE5MSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjI2NzI2MjsKLSAgICBmdW5jdGlvbiA6ICIoISgoKEMwK0MxKSAoQTArQTEpKSAoQjArQjEpKSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTQwNSwgMC4xOTYzOTEsIDAuMzEwMjQyLCAwLjQ1MjExMSwgMC41OTM0NDQsIDAuNzM0ODUsIDAuODc1ODc2IiwgXAotICAgICAgICAgICIwLjA2MDI0LCAwLjIwMjcyMiwgMC4zMTY0MzgsIDAuNDU4MjU5LCAwLjU5OTc0OSwgMC43NDA4OTcsIDAuODgyMTI4IiwgXAotICAgICAgICAgICIwLjA2NzU4MSwgMC4yMTAwNzQsIDAuMzIzOTU3LCAwLjQ2NTcxMiwgMC42MDcxNTQsIDAuNzQ4MzY0LCAwLjg4OTU2IiwgXAotICAgICAgICAgICIwLjA3NDk3NSwgMC4yMTc1NiwgMC4zMzE0MzQsIDAuNDczMTY5LCAwLjYxNDY5NiwgMC43NTU4NDMsIDAuODk3MDE3IiwgXAotICAgICAgICAgICIwLjA4MTY0LCAwLjIyNDg4MSwgMC4zMzg5NDMsIDAuNDgwODA2LCAwLjYyMjI3NSwgMC43NjM1MzgsIDAuOTA0NzUzIiwgXAotICAgICAgICAgICIwLjA5MDU5MiwgMC4yMzY5NTMsIDAuMzUwNjIzLCAwLjQ5MjY4MywgMC42MzQwMjMsIDAuNzc1MzEsIDAuOTE2NTE1IiwgXAotICAgICAgICAgICIwLjA5NzM3OCwgMC4yNDcxOTksIDAuMzYxMDY5LCAwLjUwMzYzNiwgMC42NDQ5NjcsIDAuNzg2MTk3LCAwLjkyNzQxIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwNzA5LCAwLjQwNzIyNiwgMC42NDc2MDcsIDAuOTQ4Mjk5LCAxLjI0ODcyLCAxLjU0OTY1LCAxLjg1MDA2IiwgXAotICAgICAgICAgICIwLjEwNzM1NywgMC40MDczMDgsIDAuNjQ3NjQ4LCAwLjk0ODI3MiwgMS4yNDg4NywgMS41NDkzMywgMS44NTAwMiIsIFwKLSAgICAgICAgICAiMC4xMTAzNDksIDAuNDA3MzExLCAwLjY0NzcwNiwgMC45NDgyMDUsIDEuMjQ4OSwgMS41NDkxOCwgMS44NDk5OSIsIFwKLSAgICAgICAgICAiMC4xMTUwNDQsIDAuNDA3ODEzLCAwLjY0Nzc5NCwgMC45NDgzNDUsIDEuMjQ4ODgsIDEuNTQ5MjMsIDEuODQ5OTgiLCBcCi0gICAgICAgICAgIjAuMTIwNjE0LCAwLjQwOTM2NCwgMC42NDc4OTMsIDAuOTQ4MjgxLCAxLjI0ODkyLCAxLjU0OTM4LCAxLjg1MDA4IiwgXAotICAgICAgICAgICIwLjEzMDg1MiwgMC40MTM5NDIsIDAuNjQ5NzQsIDAuOTQ4NDQ2LCAxLjI0ODc5LCAxLjU0OTI3LCAxLjg0OTk5IiwgXAotICAgICAgICAgICIwLjE0MDA2NywgMC40MTkyNiwgMC42NTI4MDQsIDAuOTQ5NjcxLCAxLjI0ODk0LCAxLjU0OTM0LCAxLjg1MDAzIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4MDY0MSwgMC4yNzU3OTksIDAuNDMzNTA4LCAwLjYzMTI4NywgMC44Mjk5NTcsIDEuMDI5NCwgMS4yMjg1IiwgXAotICAgICAgICAgICIwLjA4NzI3LCAwLjI4MjU2MywgMC40NDAxMywgMC42MzgxODEsIDAuODM2NTY1LCAxLjAzNTk0LCAxLjIzNTUzIiwgXAotICAgICAgICAgICIwLjA5MzgyOCwgMC4yODk0MTksIDAuNDQ2ODQ3LCAwLjY0NTA4NSwgMC44NDMwNSwgMS4wNDI4NiwgMS4yNDIyIiwgXAotICAgICAgICAgICIwLjA5OTg2MSwgMC4yOTUyOTksIDAuNDUzMDExLCAwLjY1MDU3NSwgMC44NDg4OTksIDEuMDQ5MiwgMS4yNDgwMiIsIFwKLSAgICAgICAgICAiMC4xMDU3NywgMC4zMDEyMTksIDAuNDU4NjQ5LCAwLjY1NjU3MywgMC44NTQ4MjIsIDEuMDU0ODYsIDEuMjUzNDYiLCBcCi0gICAgICAgICAgIjAuMTE0NTgyLCAwLjMxMDcxNywgMC40NjgwMzYsIDAuNjY2MzQzLCAwLjg2NDc2MiwgMS4wNjM1MiwgMS4yNjMxNyIsIFwKLSAgICAgICAgICAiMC4xMjE0NTUsIDAuMzE5MjY5LCAwLjQ3NjM0NywgMC42NzQyNCwgMC44NzI1MzgsIDEuMDcxNzIsIDEuMjcxMiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMjYxMzgsIDAuNTMyMjA5LCAwLjg2MDg0MSwgMS4yNzM2NCwgMS42ODY2LCAyLjA5ODY0LCAyLjUxMTYxIiwgXAotICAgICAgICAgICIwLjEyNjIyOSwgMC41MzIyMSwgMC44NjA4OTcsIDEuMjczODcsIDEuNjg2MjgsIDIuMDk5MDEsIDIuNTExMzciLCBcCi0gICAgICAgICAgIjAuMTI2ODIxLCAwLjUzMjI1MSwgMC44NjA4OTgsIDEuMjc0MzIsIDEuNjg2MzcsIDIuMDk5MjgsIDIuNTExMzgiLCBcCi0gICAgICAgICAgIjAuMTI4NjY2LCAwLjUzMjE4OSwgMC44NjEyMjEsIDEuMjczNDIsIDEuNjg2MjMsIDIuMDk5MzgsIDIuNTExMzEiLCBcCi0gICAgICAgICAgIjAuMTMxNDI1LCAwLjUzMjM4LCAwLjg2MDYxMywgMS4yNzM1OCwgMS42ODYzLCAyLjA5ODgzLCAyLjUxMTU0IiwgXAotICAgICAgICAgICIwLjEzNzI3NCwgMC41MzQwMTMsIDAuODYxMDc1LCAxLjI3MzU3LCAxLjY4NjIsIDIuMDk4ODMsIDIuNTExODQiLCBcCi0gICAgICAgICAgIjAuMTQzODc0LCAwLjUzNjUwNiwgMC44NjE3MzMsIDEuMjczNDQsIDEuNjg2MTksIDIuMDk5NywgMi41MTM0MSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDUxNzE0LCAwLjE5NDIyLCAwLjMwNzkwNSwgMC40NDk2NjgsIDAuNTkxMDg4LCAwLjczMjUxNSwgMC44NzM1NDMiLCBcCi0gICAgICAgICAgIjAuMDU5MTYyLCAwLjIwMTcyOSwgMC4zMTUzNzYsIDAuNDU3MjYsIDAuNTk4NzExLCAwLjczOTk0OSwgMC44ODEwNjUiLCBcCi0gICAgICAgICAgIjAuMDY4OTI0LCAwLjIxMTM1NywgMC4zMjUxMDgsIDAuNDY2OTE3LCAwLjYwODI1LCAwLjc0OTUxMiwgMC44OTA4MiIsIFwKLSAgICAgICAgICAiMC4wNzg2MzQsIDAuMjIwNjcyLCAwLjMzNDQ2MywgMC40NzYyMiwgMC42MTc2NDEsIDAuNzU4ODk5LCAwLjkwMDAzOSIsIFwKLSAgICAgICAgICAiMC4wODgwMDEsIDAuMjMwNDI3LCAwLjM0NDExMiwgMC40ODU5NzgsIDAuNjI3MzksIDAuNzY4NjQzLCAwLjkwOTczMSIsIFwKLSAgICAgICAgICAiMC4xMDAxMiwgMC4yNDU5ODksIDAuMzU5NjI3LCAwLjUwMDgxNywgMC42NDI3NzIsIDAuNzgzODE4LCAwLjkyNDk0MSIsIFwKLSAgICAgICAgICAiMC4xMDkzNzYsIDAuMjU5NjI0LCAwLjM3MzE0MiwgMC41MTQ3MywgMC42NTYxOTEsIDAuNzk3NDU4LCAwLjkzODU1MyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDcxMTMsIDAuNDA3MjksIDAuNjQ3NzY5LCAwLjk0ODMwNiwgMS4yNDg4LCAxLjU0OTQ3LCAxLjg1IiwgXAotICAgICAgICAgICIwLjEwNzU4NiwgMC40MDcyMDIsIDAuNjQ3NzQ0LCAwLjk0ODM2NSwgMS4yNDg4NiwgMS41NDk1MSwgMS44NDk5MSIsIFwKLSAgICAgICAgICAiMC4xMTI0OTMsIDAuNDA3MzA2LCAwLjY0NzYzOCwgMC45NDg0MDYsIDEuMjQ4ODUsIDEuNTQ5NDYsIDEuODUwMSIsIFwKLSAgICAgICAgICAiMC4xMjAwMDIsIDAuNDA3Njg4LCAwLjY0NzY0OSwgMC45NDgyOTEsIDEuMjQ4ODksIDEuNTQ5MzUsIDEuODUiLCBcCi0gICAgICAgICAgIjAuMTI4NDM2LCAwLjQxMDI1LCAwLjY0NzY5NSwgMC45NDgzNTEsIDEuMjQ4OTksIDEuNTQ5MzksIDEuODUwMDQiLCBcCi0gICAgICAgICAgIjAuMTQyNzE4LCAwLjQxNzAyNiwgMC42NTAzMTcsIDAuOTQ4MjMsIDEuMjQ4OTYsIDEuNTQ5NDYsIDEuODQ5OTYiLCBcCi0gICAgICAgICAgIjAuMTU1MzI0LCAwLjQyNDgxMSwgMC42NTQ3NCwgMC45NDk0NzMsIDEuMjQ4ODksIDEuNTQ5MzMsIDEuODQ5OTgiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc3MDAyLCAwLjI3NDY5NCwgMC40MzQwNTgsIDAuNjM0NzE3LCAwLjgzNTc3OCwgMS4wMzgxNSwgMS4yMzk1IiwgXAotICAgICAgICAgICIwLjA4MzYxNSwgMC4yODE4NDgsIDAuNDQxMDUxLCAwLjY0MTcwMSwgMC44NDI2OTgsIDEuMDQ0NzcsIDEuMjQ2MTEiLCBcCi0gICAgICAgICAgIjAuMDg5OTk5LCAwLjI4ODM4MSwgMC40NDc3MTMsIDAuNjQ4MjA2LCAwLjg0OTE2OCwgMS4wNTE4NywgMS4yNTI2MyIsIFwKLSAgICAgICAgICAiMC4wOTU5NTIsIDAuMjk0MzUxLCAwLjQ1MzkyOSwgMC42NTQzMjUsIDAuODU0OTUzLCAxLjA1NzY2LCAxLjI1ODgyIiwgXAotICAgICAgICAgICIwLjEwMTgyOCwgMC4zMDAxODcsIDAuNDU5NTgxLCAwLjY2MDEyLCAwLjg2MDg0NiwgMS4wNjI4NiwgMS4yNjQ3NyIsIFwKLSAgICAgICAgICAiMC4xMTAzNTYsIDAuMzA5NzI5LCAwLjQ2ODk2NiwgMC42Njk3OTQsIDAuODcwOTE1LCAxLjA3MjE0LCAxLjI3NDM0IiwgXAotICAgICAgICAgICIwLjExNzAyNCwgMC4zMTgwMjgsIDAuNDc3MTUzLCAwLjY3NzcxNSwgMC44NzgzMDIsIDEuMDgwNDYsIDEuMjgyNzIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTIxNzksIDAuNTMyODMyLCAwLjg2Njg0NiwgMS4yODM3NSwgMS43MDE2MiwgMi4xMjAxLCAyLjUzNzc3IiwgXAotICAgICAgICAgICIwLjEyMTg2OCwgMC41MzI4MjcsIDAuODY2ODM4LCAxLjI4MzYzLCAxLjcwMjI0LCAyLjExOTg2LCAyLjU0MTc2IiwgXAotICAgICAgICAgICIwLjEyMjQ2OCwgMC41MzI4MzEsIDAuODY1OTgyLCAxLjI4NDA4LCAxLjcwMTcsIDIuMTE5OTYsIDIuNTQxNzQiLCBcCi0gICAgICAgICAgIjAuMTI0NDQ5LCAwLjUzMjgwNCwgMC44NjU0NzMsIDEuMjg0MiwgMS43MDQzNSwgMi4xMTk2NiwgMi41MzkxOCIsIFwKLSAgICAgICAgICAiMC4xMjczNSwgMC41MzMxMDcsIDAuODY1NTYzLCAxLjI4NTY3LCAxLjcwNDM5LCAyLjEyMDY3LCAyLjUzOTk1IiwgXAotICAgICAgICAgICIwLjEzMzQ1MiwgMC41MzQ3MiwgMC44NjY5NjksIDEuMjgzOTIsIDEuNzAxNzcsIDIuMTIzMDEsIDIuNTM5MDQiLCBcCi0gICAgICAgICAgIjAuMTQwMTIyLCAwLjUzNzAzNiwgMC44NjgwMTcsIDEuMjgzNTYsIDEuNzA0MzIsIDIuMTIzMjMsIDIuNTM4MTIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjAiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0OTE4LCAwLjE5MTMzMSwgMC4zMDUxOSwgMC40NDY3OTcsIDAuNTg4Mjg0LCAwLjcyOTM4MywgMC44NzA2MTQiLCBcCi0gICAgICAgICAgIjAuMDU1Mzk2LCAwLjE5NzcxOSwgMC4zMTE0NTMsIDAuNDUzMTc0LCAwLjU5NDYwNCwgMC43MzU3MzMsIDAuODc2OTUyIiwgXAotICAgICAgICAgICIwLjA2MjYwOCwgMC4yMDUxNDcsIDAuMzE5MDM5LCAwLjQ2MDY2MiwgMC42MDE5NzYsIDAuNzQzMjcxLCAwLjg4NDQwNyIsIFwKLSAgICAgICAgICAiMC4wNjk5MDQsIDAuMjEyNTc0LCAwLjMyNjQ0MSwgMC40NjgxNzIsIDAuNjA5NjEsIDAuNzUwNzMsIDAuODkxOTQiLCBcCi0gICAgICAgICAgIjAuMDc2MjEyLCAwLjIxOTk2NiwgMC4zMzM5NjgsIDAuNDc1Nzc1LCAwLjYxNzA5NSwgMC43NTgzNDUsIDAuODk5NDg5IiwgXAotICAgICAgICAgICIwLjA4NDY1NCwgMC4yMzIwODIsIDAuMzQ1NjAxLCAwLjQ4Nzg4OCwgMC42MjkzMTUsIDAuNzcwNTU5LCAwLjkxMTcyNyIsIFwKLSAgICAgICAgICAiMC4wOTA5NjMsIDAuMjQyNDA2LCAwLjM1NjEwNCwgMC40OTgyMDgsIDAuNjM5NTMyLCAwLjc4MDc2NCwgMC45MjE5NzgiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTAwMzMxLCAwLjQwMDYwMSwgMC42NDEwMjEsIDAuOTQxNDcxLCAxLjI0MTg2LCAxLjU0MjI5LCAxLjg0MzAxIiwgXAotICAgICAgICAgICIwLjEwMDc2MywgMC40MDA1NzIsIDAuNjQwODg3LCAwLjk0MTUzNCwgMS4yNDE4NCwgMS41NDI0NCwgMS44NDI5NyIsIFwKLSAgICAgICAgICAiMC4xMDQwNDEsIDAuNDAwNjU4LCAwLjY0MDk4NCwgMC45NDEzOTEsIDEuMjQyMTMsIDEuNTQyNjIsIDEuODQzMDQiLCBcCi0gICAgICAgICAgIjAuMTA4OTQzLCAwLjQwMTE0OSwgMC42NDEwMDIsIDAuOTQxNTc5LCAxLjI0MjI3LCAxLjU0MjM1LCAxLjg0Mjk2IiwgXAotICAgICAgICAgICIwLjExNDc2NywgMC40MDI5MywgMC42NDEyMSwgMC45NDE1ODQsIDEuMjQyMTYsIDEuNTQyMjIsIDEuODQzMDEiLCBcCi0gICAgICAgICAgIjAuMTI1MjgzLCAwLjQwNzY1MSwgMC42NDMxMTQsIDAuOTQxNjU2LCAxLjI0MTc0LCAxLjU0MjQxLCAxLjg0Mjk1IiwgXAotICAgICAgICAgICIwLjEzNDYxMiwgMC40MTMwNzMsIDAuNjQ2MTgzLCAwLjk0Mjk3NywgMS4yNDE4NCwgMS41NDIzNCwgMS44NDI5NSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzYzMywgMC4yNzE1NDEsIDAuNDI5MTA1LCAwLjYyOTUyMywgMC44Mjk5LCAxLjAzMDQzLCAxLjIzMDQ0IiwgXAotICAgICAgICAgICIwLjA4MzI0MywgMC4yNzg1NDMsIDAuNDM1OTg0LCAwLjYzNjExMSwgMC44MzY1NDYsIDEuMDM3MzIsIDEuMjM3ODMiLCBcCi0gICAgICAgICAgIjAuMDkxMzQzLCAwLjI4Njg0OSwgMC40NDQxNSwgMC42NDQyMDMsIDAuODQ1MTY0LCAxLjA0NTM1LCAxLjI0NTYyIiwgXAotICAgICAgICAgICIwLjA5OTQ2MiwgMC4yOTUwMzQsIDAuNDUyNDYyLCAwLjY1MjQ3NiwgMC44NTMwNzIsIDEuMDUzMTQsIDEuMjUzNjMiLCBcCi0gICAgICAgICAgIjAuMTA3NTA0LCAwLjMwMzIzMywgMC40NjA1MDcsIDAuNjYwNDc0LCAwLjg2MDk4OCwgMS4wNjEyNywgMS4yNjIzNCIsIFwKLSAgICAgICAgICAiMC4xMTk5NCwgMC4zMTY1MDEsIDAuNDczNjEyLCAwLjY3MzcyMSwgMC44NzQyMjYsIDEuMDc0NywgMS4yNzUyMSIsIFwKLSAgICAgICAgICAiMC4xMjk0MzksIDAuMzI3OTYsIDAuNDg0OTU0LCAwLjY4NTE0OSwgMC44ODU1ODUsIDEuMDg2MTcsIDEuMjg3MjIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTI2MTMzLCAwLjUzMjkwNCwgMC44NjQyNjIsIDEuMjc4MzgsIDEuNjkyMTEsIDIuMTA2MTMsIDIuNTIwNzUiLCBcCi0gICAgICAgICAgIjAuMTI2MTM2LCAwLjUzMjg1NCwgMC44NjM5NSwgMS4yNzgwNiwgMS42OTI3LCAyLjEwNTk3LCAyLjUxOTk3IiwgXAotICAgICAgICAgICIwLjEyNzQwNywgMC41MzI5MTMsIDAuODY0MTY3LCAxLjI3Nzg2LCAxLjY5MjYsIDIuMTA2MTUsIDIuNTIwOTMiLCBcCi0gICAgICAgICAgIjAuMTMwOTg1LCAwLjUzMjgzNSwgMC44NjQxNzIsIDEuMjc4MDUsIDEuNjkxOTUsIDIuMTA2MTMsIDIuNTIyMzciLCBcCi0gICAgICAgICAgIjAuMTM1NjkzLCAwLjUzMzIwNSwgMC44NjM5MTIsIDEuMjc4MDEsIDEuNjkyNjYsIDIuMTA2MzMsIDIuNTIxMDYiLCBcCi0gICAgICAgICAgIjAuMTQ0ODgzLCAwLjUzNTUxNCwgMC44NjQwMDksIDEuMjc4MDQsIDEuNjkyMzYsIDIuMTA2MDYsIDIuNTIwODgiLCBcCi0gICAgICAgICAgIjAuMTU0MTIzLCAwLjUzOTA5MywgMC44NjUwNywgMS4yNzc4NCwgMS42OTIxNywgMi4xMDY0MiwgMi41MjA0OCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQ2NjIyLCAwLjE4ODgxOSwgMC4zMDI2MjcsIDAuNDQ0MjQsIDAuNTg1Njg3LCAwLjcyNzAyNCwgMC44NjgyNTEiLCBcCi0gICAgICAgICAgIjAuMDU0MTY0LCAwLjE5NjQ1MiwgMC4zMTAxNDMsIDAuNDUxODk4LCAwLjU5MzM2MywgMC43MzQ1NjEsIDAuODc1NjgiLCBcCi0gICAgICAgICAgIjAuMDYzNzUxLCAwLjIwNTg1NCwgMC4zMTk2MTIsIDAuNDYxMzY5LCAwLjYwMjY5MSwgMC43NDM4NTQsIDAuODg1MTQyIiwgXAotICAgICAgICAgICIwLjA3MzQ2NSwgMC4yMTU0NDgsIDAuMzI5MjEyLCAwLjQ3MDg0NSwgMC42MTIyMDUsIDAuNzUzNDI3LCAwLjg5NDU3MiIsIFwKLSAgICAgICAgICAiMC4wODIxOTYsIDAuMjI1MDc1LCAwLjMzODgwNywgMC40ODA0OTMsIDAuNjIxODgyLCAwLjc2MzA5NiwgMC45MDQxNzkiLCBcCi0gICAgICAgICAgIjAuMDkzODE5LCAwLjI0MDgwMSwgMC4zNTQyNzMsIDAuNDk1MzUzLCAwLjYzNzMyMywgMC43Nzg0MDMsIDAuOTE5NTkzIiwgXAotICAgICAgICAgICIwLjEwMjAxMiwgMC4yNTQ0MTUsIDAuMzY3ODcxLCAwLjUwOTM1MywgMC42NTA3NTUsIDAuNzkxOTk1LCAwLjkzMjk0OSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDAzMSwgMC40MDA1NjQsIDAuNjQxMDM4LCAwLjk0MTU2MywgMS4yNDE4MSwgMS41NDIzMywgMS44NDMxOCIsIFwKLSAgICAgICAgICAiMC4xMDExMzQsIDAuNDAwNTY1LCAwLjY0MDg0MSwgMC45NDE1MiwgMS4yNDIxMywgMS41NDIzOCwgMS44NDI4NCIsIFwKLSAgICAgICAgICAiMC4xMDY2ODQsIDAuNDAwNjA0LCAwLjY0MDg1MiwgMC45NDE1ODQsIDEuMjQyMTgsIDEuNTQyMjEsIDEuODQzMDUiLCBcCi0gICAgICAgICAgIjAuMTE0NTI2LCAwLjQwMTE3NiwgMC42NDA4NjUsIDAuOTQxNTIyLCAxLjI0MTksIDEuNTQyMzEsIDEuODQzMDMiLCBcCi0gICAgICAgICAgIjAuMTIzMTk0LCAwLjQwMzgxOCwgMC42NDEwMDksIDAuOTQxNTMzLCAxLjI0MjI5LCAxLjU0MjQsIDEuODQzMDUiLCBcCi0gICAgICAgICAgIjAuMTM3NjM3LCAwLjQxMDc2MSwgMC42NDM3NTYsIDAuOTQxNTIsIDEuMjQyMjEsIDEuNTQyNTgsIDEuODQyOTQiLCBcCi0gICAgICAgICAgIjAuMTQ5NDcsIDAuNDE4NzMsIDAuNjQ4MjcyLCAwLjk0MjgyNCwgMS4yNDIwNCwgMS41NDIzNCwgMS44NDI2MiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzI0NzQsIDAuMjcwOTM0LCAwLjQyOTI3MSwgMC42MjkyOTcsIDAuODMxNTA0LCAxLjAzMywgMS4yMzU2MSIsIFwKLSAgICAgICAgICAiMC4wNzkzMTEsIDAuMjc3OTExLCAwLjQzNjIyNCwgMC42MzY1MTUsIDAuODM4NTIsIDEuMDM5ODEsIDEuMjQyMDkiLCBcCi0gICAgICAgICAgIjAuMDg3MTIxLCAwLjI4NjA5LCAwLjQ0NDQ2OSwgMC42NDQ1MzMsIDAuODQ2OTIsIDEuMDQ4MDIsIDEuMjUwNCIsIFwKLSAgICAgICAgICAiMC4wOTQ5NzQsIDAuMjkzODc1LCAwLjQ1MjQwNSwgMC42NTMwNzEsIDAuODU0MjI5LCAxLjA1NTk5LCAxLjI1ODE4IiwgXAotICAgICAgICAgICIwLjEwMjkzMSwgMC4zMDE5NjcsIDAuNDYwNjMzLCAwLjY2MDg1NywgMC44NjI1MjcsIDEuMDY0MTcsIDEuMjY3NDIiLCBcCi0gICAgICAgICAgIjAuMTE0ODI0LCAwLjMxNDkxNCwgMC40NzM2NzIsIDAuNjczNzU1LCAwLjg3NTQ4MSwgMS4wNzc1NywgMS4yODA2NCIsIFwKLSAgICAgICAgICAiMC4xMjM3MjMsIDAuMzI2MTY4LCAwLjQ4NDk1NSwgMC42ODUyNTcsIDAuODg2NjExLCAxLjA4OTQyLCAxLjI5MDgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTIyMjYsIDAuNTMxOTc4LCAwLjg2NTY2NywgMS4yODU2MSwgMS43MDE4NSwgMi4xMjQ1MSwgMi41Mzc4NSIsIFwKLSAgICAgICAgICAiMC4xMjIxNzYsIDAuNTMxOTU2LCAwLjg2NjA2MiwgMS4yODM2MSwgMS43MDE2OCwgMi4xMjA3NiwgMi41MzkwNiIsIFwKLSAgICAgICAgICAiMC4xMjM2MTQsIDAuNTMxODk0LCAwLjg2NTQ1MiwgMS4yODU2MywgMS43MDIzMiwgMi4xMjMwMSwgMi41Mzg3MiIsIFwKLSAgICAgICAgICAiMC4xMjcyMTQsIDAuNTMxOTIyLCAwLjg2NjkxLCAxLjI4NDA1LCAxLjcwMjM0LCAyLjEyMzAxLCAyLjUzOTA0IiwgXAotICAgICAgICAgICIwLjEzMjEzMiwgMC41MzIxMTMsIDAuODY1NDE1LCAxLjI4MzYzLCAxLjcwMjYxLCAyLjEyMzEyLCAyLjUzODU2IiwgXAotICAgICAgICAgICIwLjE0MTQ4NywgMC41MzQ0NDMsIDAuODY3MDQ3LCAxLjI4NTYxLCAxLjcwMTg1LCAyLjExOTk4LCAyLjUzODQ2IiwgXAotICAgICAgICAgICIwLjE1MDYzNiwgMC41MzgwOTUsIDAuODY4MDMxLCAxLjI4NDE2LCAxLjcwNDM0LCAyLjExOTgsIDIuNTQyMDUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQzAiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0MjU3LCAwLjE4NTIzNiwgMC4yOTkwNzgsIDAuNDQwOTM2LCAwLjU4MjM1NCwgMC43MjM3NzgsIDAuODY0ODM1IiwgXAotICAgICAgICAgICIwLjA0ODcxOSwgMC4xOTE1MzcsIDAuMzA1Mzk0LCAwLjQ0NzIwNSwgMC41ODg3MDYsIDAuNzI5OTgxLCAwLjg3MTMzNSIsIFwKLSAgICAgICAgICAiMC4wNTYwMjQsIDAuMTk5MDI2LCAwLjMxMjkxNSwgMC40NTQ4MDcsIDAuNTk2MjM1LCAwLjczNzQ5NCwgMC44Nzg3MjgiLCBcCi0gICAgICAgICAgIjAuMDYyOTcxLCAwLjIwNjUyOSwgMC4zMjAzODEsIDAuNDYyMzUsIDAuNjAzOSwgMC43NDUwNzQsIDAuODg2MzI0IiwgXAotICAgICAgICAgICIwLjA2ODgwOSwgMC4yMTM3NDQsIDAuMzI3OTMsIDAuNDY5OTA5LCAwLjYxMTQwNCwgMC43NTI3MDcsIDAuODkzOTAxIiwgXAotICAgICAgICAgICIwLjA3NjUxNywgMC4yMjU4MTQsIDAuMzM5NTY5LCAwLjQ4MTkzNSwgMC42MjM0NDMsIDAuNzY0NzQ0LCAwLjkwNTkyNCIsIFwKLSAgICAgICAgICAiMC4wODE4MzMsIDAuMjM1ODM5LCAwLjM1MDE2OCwgMC40OTIzOSwgMC42MzM5MzUsIDAuNzc1MTQ4LCAwLjkxNjQyNCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTQ1ODQsIDAuMzk0NDQxLCAwLjYzNDUyNiwgMC45MzQ5MDksIDEuMjM1MTcsIDEuNTM1NTIsIDEuODM1NzgiLCBcCi0gICAgICAgICAgIjAuMDk1MjY1LCAwLjM5NDQyOSwgMC42MzQ1ODEsIDAuOTM0Nzk5LCAxLjIzNTEyLCAxLjUzNTMzLCAxLjgzNTkiLCBcCi0gICAgICAgICAgIjAuMDk5MDM0LCAwLjM5NDM4LCAwLjYzNDY3NSwgMC45MzQ4ODcsIDEuMjM1MjMsIDEuNTM1NCwgMS44MzU3IiwgXAotICAgICAgICAgICIwLjEwNDM5OCwgMC4zOTUxMjksIDAuNjM0NjE5LCAwLjkzNDk2MSwgMS4yMzUzLCAxLjUzNTMyLCAxLjgzNTg2IiwgXAotICAgICAgICAgICIwLjExMDU1MywgMC4zOTY4NjYsIDAuNjM0ODgsIDAuOTM0ODU5LCAxLjIzNTI2LCAxLjUzNTMzLCAxLjgzNTgyIiwgXAotICAgICAgICAgICIwLjEyMTM2NiwgMC40MDE5NzMsIDAuNjM2OTcyLCAwLjkzNTA1NSwgMS4yMzUyOCwgMS41MzU0LCAxLjgzNTcyIiwgXAotICAgICAgICAgICIwLjEzMDc2LCAwLjQwNzE3LCAwLjY0MDIxMywgMC45MzY0MTUsIDEuMjM1MjgsIDEuNTM1NDYsIDEuODM1NzUiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY3NywgMC4yNjI4OCwgMC40MTk1NCwgMC42MTk2NjcsIDAuODIwMTk3LCAxLjAxOTk2LCAxLjIyMTA0IiwgXAotICAgICAgICAgICIwLjA3NDg2OCwgMC4yNzAxNDgsIDAuNDI2ODE1LCAwLjYyNjYzNCwgMC44MjY5MzgsIDEuMDI3MjIsIDEuMjI3OTYiLCBcCi0gICAgICAgICAgIjAuMDg0MDgsIDAuMjc5MzkxLCAwLjQzNTk3NiwgMC42MzYwNTMsIDAuODM2Mjc5LCAxLjAzNzU3LCAxLjIzNjgiLCBcCi0gICAgICAgICAgIjAuMDkzNzY2LCAwLjI4ODM4LCAwLjQ0NTMyNywgMC42NDUyMTcsIDAuODQ1MTUzLCAxLjA0NTYyLCAxLjI0NjY0IiwgXAotICAgICAgICAgICIwLjEwMzU1NCwgMC4yOTc5MDMsIDAuNDU0NjQ4LCAwLjY1NDUxNCwgMC44NTUwNzksIDEuMDU1MjksIDEuMjU1OTQiLCBcCi0gICAgICAgICAgIjAuMTE3OTIzLCAwLjMxMjI3OCwgMC40NjkyMTMsIDAuNjY4ODA4LCAwLjg2OTAyOCwgMS4wNjkyNCwgMS4yNjk4NCIsIFwKLSAgICAgICAgICAiMC4xMjkzNTgsIDAuMzI1NTI3LCAwLjQ4MjAzMywgMC42ODE5ODksIDAuODgyMTczLCAxLjA4MjQ0LCAxLjI4MjczIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEyNjA3NSwgMC41MzE5ODgsIDAuODYzNCwgMS4yNzY5OSwgMS42OTEwNSwgMi4xMDUxNCwgMi41MTk4OCIsIFwKLSAgICAgICAgICAiMC4xMjU3MTQsIDAuNTMxOTExLCAwLjg2MzA2LCAxLjI3NzA3LCAxLjY5MTAxLCAyLjEwNTE2LCAyLjUxOTY3IiwgXAotICAgICAgICAgICIwLjEyODM1OCwgMC41MzE5MDEsIDAuODYzNjQ0LCAxLjI3NzQxLCAxLjY5MTI1LCAyLjEwNTU5LCAyLjUyMTY1IiwgXAotICAgICAgICAgICIwLjEzMzczNSwgMC41MzE2MjgsIDAuODYzMTgxLCAxLjI3Njk5LCAxLjY5MTAzLCAyLjEwNTE3LCAyLjUxOTEzIiwgXAotICAgICAgICAgICIwLjE0MDY3OSwgMC41MzIxMzcsIDAuODYyODk3LCAxLjI3NzE5LCAxLjY5MTA3LCAyLjEwNTg4LCAyLjUxOTExIiwgXAotICAgICAgICAgICIwLjE1MzMzOSwgMC41MzYwMDgsIDAuODYyOTQ5LCAxLjI3NzIsIDEuNjkxMzUsIDIuMTA1MDMsIDIuNTE5MTMiLCBcCi0gICAgICAgICAgIjAuMTY0ODI2LCAwLjU0MTI0NSwgMC44NjQ2NjQsIDEuMjc3MTcsIDEuNjkxMywgMi4xMDU0NiwgMi41MTkyMyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDMSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQwNjIxLCAwLjE4MzI3MywgMC4yOTcxMjEsIDAuNDM4OTYyLCAwLjU4MDQyMSwgMC43MjE3MjYsIDAuODYzMDkxIiwgXAotICAgICAgICAgICIwLjA0ODE1OCwgMC4xOTA5NiwgMC4zMDQ4NDcsIDAuNDQ2NzU2LCAwLjU4ODIyOSwgMC43Mjk0NSwgMC44NzA2NiIsIFwKLSAgICAgICAgICAiMC4wNTc5LCAwLjIwMDYxMiwgMC4zMTQ1MDIsIDAuNDU2MzUxLCAwLjU5Nzc4MSwgMC43MzkwOTcsIDAuODgwMzEyIiwgXAotICAgICAgICAgICIwLjA2NzM1OSwgMC4yMTAyMSwgMC4zMjQxMTIsIDAuNDY1OTc2LCAwLjYwNzQzNSwgMC43NDg2MDgsIDAuODg5ODU1IiwgXAotICAgICAgICAgICIwLjA3NTAwMywgMC4yMTk2NzksIDAuMzMzNTU2LCAwLjQ3NTQsIDAuNjE2OTI4LCAwLjc1ODE2MiwgMC44OTkyOTkiLCBcCi0gICAgICAgICAgIjAuMDg1Mjk2LCAwLjIzNTI4MiwgMC4zNDg5NywgMC40OTAyNjcsIDAuNjMyMjE2LCAwLjc3MzM3NCwgMC45MTQ2IiwgXAotICAgICAgICAgICIwLjA5MzIsIDAuMjQ4OTYyLCAwLjM2MjUxMSwgMC41MDQzNTMsIDAuNjQ1ODM1LCAwLjc4NjkwMSwgMC45MjgxMzkiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk0NTk4LCAwLjM5NDQyNywgMC42MzQ1ODgsIDAuOTM0ODY3LCAxLjIzNTIyLCAxLjUzNTQyLCAxLjgzNjAzIiwgXAotICAgICAgICAgICIwLjA5NTczMiwgMC4zOTQzNzIsIDAuNjM1MDY5LCAwLjkzNDk0OSwgMS4yMzUwNywgMS41MzUzNywgMS44MzU1NSIsIFwKLSAgICAgICAgICAiMC4xMDE3OTEsIDAuMzk0NDA1LCAwLjYzNDQ5NCwgMC45MzQ4MzQsIDEuMjM1MjIsIDEuNTM1MjcsIDEuODM1ODEiLCBcCi0gICAgICAgICAgIjAuMTA5OTMzLCAwLjM5NTEzNSwgMC42MzQ2MTYsIDAuOTM0ODg5LCAxLjIzNTI5LCAxLjUzNTI5LCAxLjgzNTcyIiwgXAotICAgICAgICAgICIwLjExODk5OCwgMC4zOTc4NDUsIDAuNjM0Njg4LCAwLjkzNDg3LCAxLjIzNTIxLCAxLjUzNTQyLCAxLjgzNTczIiwgXAotICAgICAgICAgICIwLjEzMzg4NCwgMC40MDUwNDgsIDAuNjM3NTAxLCAwLjkzNDg0MSwgMS4yMzUyLCAxLjUzNTI3LCAxLjgzNTc4IiwgXAotICAgICAgICAgICIwLjE0NTQyOCwgMC40MTM0MjksIDAuNjQyMTA1LCAwLjkzNjI2NCwgMS4yMzUyMiwgMS41MzUzNSwgMS44MzU5Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2NDc0MywgMC4yNjMxMDMsIDAuNDIxMzg1LCAwLjYyMTIwMywgMC44MjI2NTcsIDEuMDIzOTcsIDEuMjI2NzIiLCBcCi0gICAgICAgICAgIjAuMDcxOTAyLCAwLjI3MDQzMiwgMC40Mjg4LCAwLjYyODcxNywgMC44Mjk2NjcsIDEuMDMxNDQsIDEuMjMzMzUiLCBcCi0gICAgICAgICAgIjAuMDgxMDI0LCAwLjI3OTgxNCwgMC40Mzc5ODUsIDAuNjM4MDQ2LCAwLjgzOTIyOSwgMS4wNDA3NiwgMS4yNDMxOSIsIFwKLSAgICAgICAgICAiMC4wOTA2NSwgMC4yODg2NzcsIDAuNDQ3MDQ0LCAwLjY0NzI2OCwgMC44NDgxMDgsIDEuMDUwOTQsIDEuMjUxODUiLCBcCi0gICAgICAgICAgIjAuMTAwNDg1LCAwLjI5ODI0NiwgMC40NTY2NSwgMC42NTY0NTgsIDAuODU3MzU0LCAxLjA1OTU4LCAxLjI2MTE5IiwgXAotICAgICAgICAgICIwLjExNDUwMiwgMC4zMTI2MDMsIDAuNDcwODg1LCAwLjY3MDY1NywgMC44NzE0NTksIDEuMDczMzMsIDEuMjc1NTQiLCBcCi0gICAgICAgICAgIjAuMTI1MjczLCAwLjMyNTg5LCAwLjQ4MzkyLCAwLjY4MzQ5NywgMC44ODQ1MzYsIDEuMDg2MTYsIDEuMjg4MzciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTIyOTM4LCAwLjUzMjg0OSwgMC44NjU5NTksIDEuMjgzNDgsIDEuNzAxNjYsIDIuMTIzMDYsIDIuNTM3OTYiLCBcCi0gICAgICAgICAgIjAuMTIyNTAxLCAwLjUzMjc5MSwgMC44NjY4NzQsIDEuMjg1NTUsIDEuNzA0NDQsIDIuMTIwOTgsIDIuNTQxNzIiLCBcCi0gICAgICAgICAgIjAuMTI1MzQ1LCAwLjUzMjc3LCAwLjg2NTc2NCwgMS4yODU2MSwgMS43MDE1OCwgMi4xMjMwNiwgMi41Mzg0NSIsIFwKLSAgICAgICAgICAiMC4xMzA5MTUsIDAuNTMyNzQ4LCAwLjg2NTUwOSwgMS4yODU2NSwgMS43MDQ0LCAyLjEyMDAzLCAyLjU0MTgzIiwgXAotICAgICAgICAgICIwLjEzODA2NywgMC41MzI5NjUsIDAuODY1ODA2LCAxLjI4NDEzLCAxLjcwNDQxLCAyLjEyMDk2LCAyLjU0MTg2IiwgXAotICAgICAgICAgICIwLjE1MTA1NSwgMC41MzY4MTMsIDAuODY1NTQsIDEuMjgzODEsIDEuNzAyMzIsIDIuMTIzMDksIDIuNTQyMTEiLCBcCi0gICAgICAgICAgIjAuMTYyMzg2LCAwLjU0MTU4OSwgMC44NjgyNzksIDEuMjgzNjcsIDEuNzA0MzcsIDIuMTIzLCAyLjU0MTk4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMjc5NywgMC4wMTI3OTQsIDAuMDEyNzkyLCAwLjAxMjc5MiwgMC4wMTI3ODksIDAuMDEyNzg3LCAwLjAxMjc4NyIsIFwKLSAgICAgICAgICAiMC4wMTI3NDgsIDAuMDEyNzU1LCAwLjAxMjc1NSwgMC4wMTI3NTYsIDAuMDEyNzUzLCAwLjAxMjc1MSwgMC4wMTI3NDkiLCBcCi0gICAgICAgICAgIjAuMDEyNzQyLCAwLjAxMjc1LCAwLjAxMjc1MSwgMC4wMTI3NDksIDAuMDEyNzQ3LCAwLjAxMjc0NCwgMC4wMTI3NDUiLCBcCi0gICAgICAgICAgIjAuMDEyNzY3LCAwLjAxMjc1NSwgMC4wMTI3NTQsIDAuMDEyNzUxLCAwLjAxMjc0NiwgMC4wMTI3NDYsIDAuMDEyNzQ0IiwgXAotICAgICAgICAgICIwLjAxMjgyMywgMC4wMTI3NzYsIDAuMDEyNzY4LCAwLjAxMjc2MSwgMC4wMTI3NTUsIDAuMDEyNzUzLCAwLjAxMjc1IiwgXAotICAgICAgICAgICIwLjAxMjk3MywgMC4wMTI4MzMsIDAuMDEyODA0LCAwLjAxMjc4NywgMC4wMTI3NzYsIDAuMDEyNzcsIDAuMDEyNzYzIiwgXAotICAgICAgICAgICIwLjAxMzE0MSwgMC4wMTI4OTgsIDAuMDEyODU1LCAwLjAxMjgzLCAwLjAxMjgwNywgMC4wMTI3OTUsIDAuMDEyNzg2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzMjgyLCAwLjAwMzI4NywgMC4wMDMyODcsIDAuMDAzMjg3LCAwLjAwMzI4NiwgMC4wMDMyODYsIDAuMDAzMjg1IiwgXAotICAgICAgICAgICIwLjAwMzIxMywgMC4wMDMyNDksIDAuMDAzMjUzLCAwLjAwMzI1NSwgMC4wMDMyNTYsIDAuMDAzMjU3LCAwLjAwMzI1NiIsIFwKLSAgICAgICAgICAiMC4wMDMxNzQsIDAuMDAzMjMxLCAwLjAwMzI0MSwgMC4wMDMyNDUsIDAuMDAzMjQ3LCAwLjAwMzI0OSwgMC4wMDMyNDkiLCBcCi0gICAgICAgICAgIjAuMDAzMTUzLCAwLjAwMzIxOSwgMC4wMDMyMzEsIDAuMDAzMjM5LCAwLjAwMzI0MSwgMC4wMDMyNDQsIDAuMDAzMjQ0IiwgXAotICAgICAgICAgICIwLjAwMzE1MiwgMC4wMDMyMTIsIDAuMDAzMjI3LCAwLjAwMzIzNCwgMC4wMDMyMzksIDAuMDAzMjQxLCAwLjAwMzI0MiIsIFwKLSAgICAgICAgICAiMC4wMDMxODksIDAuMDAzMjE5LCAwLjAwMzIzLCAwLjAwMzIzNywgMC4wMDMyNCwgMC4wMDMyNDIsIDAuMDAzMjQzIiwgXAotICAgICAgICAgICIwLjAwMzI2MywgMC4wMDMyNDUsIDAuMDAzMjQ3LCAwLjAwMzI0OSwgMC4wMDMyNDksIDAuMDAzMjQ5LCAwLjAwMzI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMTg5NywgMC4wMTE4OTcsIDAuMDExODk0LCAwLjAxMTg5NCwgMC4wMTE4OTMsIDAuMDExODkzLCAwLjAxMTg4OCIsIFwKLSAgICAgICAgICAiMC4wMTE4NDEsIDAuMDExODU1LCAwLjAxMTg1NCwgMC4wMTE4NTIsIDAuMDExODU0LCAwLjAxMTg1LCAwLjAxMTg1MSIsIFwKLSAgICAgICAgICAiMC4wMTE4NTcsIDAuMDExODUzLCAwLjAxMTg1LCAwLjAxMTg0OSwgMC4wMTE4NDcsIDAuMDExODQ4LCAwLjAxMTg0NCIsIFwKLSAgICAgICAgICAiMC4wMTE5NTQsIDAuMDExODg3LCAwLjAxMTg3NCwgMC4wMTE4NjMsIDAuMDExODU4LCAwLjAxMTg1NywgMC4wMTE4NSIsIFwKLSAgICAgICAgICAiMC4wMTIwNzQsIDAuMDExOTI1LCAwLjAxMTkwMiwgMC4wMTE4ODUsIDAuMDExODc2LCAwLjAxMTg2OCwgMC4wMTE4NjEiLCBcCi0gICAgICAgICAgIjAuMDEyMzQzLCAwLjAxMjAyLCAwLjAxMTk2MywgMC4wMTE5MjUsIDAuMDExOTEyLCAwLjAxMTg5NCwgMC4wMTE4ODQiLCBcCi0gICAgICAgICAgIjAuMDEyNjIyLCAwLjAxMjEyLCAwLjAxMjAzOSwgMC4wMTE5ODIsIDAuMDExOTU3LCAwLjAxMTkzNiwgMC4wMTE5MjEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI1NzQsIDAuMDAyNjAxLCAwLjAwMjYwMywgMC4wMDI2MDQsIDAuMDAyNjA1LCAwLjAwMjYwNSwgMC4wMDI2MDQiLCBcCi0gICAgICAgICAgIjAuMDAyNDkyLCAwLjAwMjU5NCwgMC4wMDI2MDgsIDAuMDAyNjE2LCAwLjAwMjYxOSwgMC4wMDI2MjIsIDAuMDAyNjIzIiwgXAotICAgICAgICAgICIwLjAwMjQwNywgMC4wMDI1NiwgMC4wMDI1ODcsIDAuMDAyNjAyLCAwLjAwMjYxLCAwLjAwMjYxNCwgMC4wMDI2MTgiLCBcCi0gICAgICAgICAgIjAuMDAyMzU4LCAwLjAwMjUzMSwgMC4wMDI1NjcsIDAuMDAyNTg4LCAwLjAwMjU5OSwgMC4wMDI2MDUsIDAuMDAyNjEiLCBcCi0gICAgICAgICAgIjAuMDAyMzM4LCAwLjAwMjUwOSwgMC4wMDI1NTEsIDAuMDAyNTc2LCAwLjAwMjU4OSwgMC4wMDI1OTcsIDAuMDAyNjAzIiwgXAotICAgICAgICAgICIwLjAwMjM1OSwgMC4wMDI0OTUsIDAuMDAyNTM4LCAwLjAwMjU2NSwgMC4wMDI1ODEsIDAuMDAyNTkxLCAwLjAwMjU5NyIsIFwKLSAgICAgICAgICAiMC4wMDI0MjUsIDAuMDAyNTA1LCAwLjAwMjU0MSwgMC4wMDI1NjcsIDAuMDAyNTgxLCAwLjAwMjU5MSwgMC4wMDI1OTciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEwMzIxLCAwLjAxMDMyNSwgMC4wMTAzMjUsIDAuMDEwMzI0LCAwLjAxMDMyMywgMC4wMTAzMjMsIDAuMDEwMzIyIiwgXAotICAgICAgICAgICIwLjAxMDI4LCAwLjAxMDMxNCwgMC4wMTAzMTksIDAuMDEwMzIxLCAwLjAxMDMyMSwgMC4wMTAzMiwgMC4wMTAzMTkiLCBcCi0gICAgICAgICAgIjAuMDEwMjY0LCAwLjAxMDMwOCwgMC4wMTAzMTUsIDAuMDEwMzE4LCAwLjAxMDMxOSwgMC4wMTAzMTksIDAuMDEwMzE5IiwgXAotICAgICAgICAgICIwLjAxMDI4NSwgMC4wMTAzMTUsIDAuMDEwMzE5LCAwLjAxMDMyMSwgMC4wMTAzMjIsIDAuMDEwMzIxLCAwLjAxMDMyMSIsIFwKLSAgICAgICAgICAiMC4wMTAzNDMsIDAuMDEwMzMxLCAwLjAxMDMzMSwgMC4wMTAzMywgMC4wMTAzMjgsIDAuMDEwMzI3LCAwLjAxMDMyNyIsIFwKLSAgICAgICAgICAiMC4wMTA0OTUsIDAuMDEwMzgzLCAwLjAxMDM2NywgMC4wMTAzNTgsIDAuMDEwMzUyLCAwLjAxMDM0NiwgMC4wMTAzNDEiLCBcCi0gICAgICAgICAgIjAuMDEwNjYyLCAwLjAxMDQ0NywgMC4wMTA0MTYsIDAuMDEwMzkxLCAwLjAxMDM3NiwgMC4wMTAzNjcsIDAuMDEwMzYxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzMjgzLCAwLjAwMzI4OSwgMC4wMDMyODksIDAuMDAzMjg4LCAwLjAwMzI4OCwgMC4wMDMyODcsIDAuMDAzMjg2IiwgXAotICAgICAgICAgICIwLjAwMzIxNSwgMC4wMDMyNDksIDAuMDAzMjU0LCAwLjAwMzI1NiwgMC4wMDMyNTYsIDAuMDAzMjU2LCAwLjAwMzI1NyIsIFwKLSAgICAgICAgICAiMC4wMDMxNzgsIDAuMDAzMjMzLCAwLjAwMzI0MiwgMC4wMDMyNDgsIDAuMDAzMjUsIDAuMDAzMjUxLCAwLjAwMzI1MSIsIFwKLSAgICAgICAgICAiMC4wMDMxNzMsIDAuMDAzMjI1LCAwLjAwMzIzNSwgMC4wMDMyNDEsIDAuMDAzMjQ1LCAwLjAwMzI0NiwgMC4wMDMyNDYiLCBcCi0gICAgICAgICAgIjAuMDAzMTk4LCAwLjAwMzIyOCwgMC4wMDMyMzYsIDAuMDAzMjQyLCAwLjAwMzI0NSwgMC4wMDMyNDYsIDAuMDAzMjQ3IiwgXAotICAgICAgICAgICIwLjAwMzI4NSwgMC4wMDMyNTQsIDAuMDAzMjUyLCAwLjAwMzI1MywgMC4wMDMyNTIsIDAuMDAzMjUyLCAwLjAwMzI1MSIsIFwKLSAgICAgICAgICAiMC4wMDM0MDksIDAuMDAzMjk4LCAwLjAwMzI4MywgMC4wMDMyNzMsIDAuMDAzMjY4LCAwLjAwMzI2NSwgMC4wMDMyNjIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA5Mzk2LCAwLjAwOTQwMiwgMC4wMDk0MDIsIDAuMDA5NDAyLCAwLjAwOTQwMSwgMC4wMDk0LCAwLjAwOTM5OSIsIFwKLSAgICAgICAgICAiMC4wMDkzNiwgMC4wMDkzOTIsIDAuMDA5Mzk2LCAwLjAwOTM5OCwgMC4wMDkzOTYsIDAuMDA5Mzk4LCAwLjAwOTM5NyIsIFwKLSAgICAgICAgICAiMC4wMDk0MTQsIDAuMDA5NDA2LCAwLjAwOTQwMywgMC4wMDk0MDEsIDAuMDA5NDAyLCAwLjAwOTQwMiwgMC4wMDkzOTkiLCBcCi0gICAgICAgICAgIjAuMDA5NDc5LCAwLjAwOTQyOCwgMC4wMDk0MjEsIDAuMDA5NDE0LCAwLjAwOTQxLCAwLjAwOTQwOCwgMC4wMDk0MDYiLCBcCi0gICAgICAgICAgIjAuMDA5NjA1LCAwLjAwOTQ3MSwgMC4wMDk0NTEsIDAuMDA5NDM3LCAwLjAwOTQyOCwgMC4wMDk0MjMsIDAuMDA5NDE4IiwgXAotICAgICAgICAgICIwLjAwOTg2OSwgMC4wMDk1NiwgMC4wMDk1MSwgMC4wMDk0NzksIDAuMDA5NDY4LCAwLjAwOTQ1NSwgMC4wMDk0NDUiLCBcCi0gICAgICAgICAgIjAuMDEwMDUzLCAwLjAwOTY1NiwgMC4wMDk1ODMsIDAuMDA5NTMxLCAwLjAwOTUxLCAwLjAwOTQ5MiwgMC4wMDk0NzEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI1MTMsIDAuMDAyNTM5LCAwLjAwMjU0MiwgMC4wMDI1NDMsIDAuMDAyNTQ0LCAwLjAwMjU0NCwgMC4wMDI1NDQiLCBcCi0gICAgICAgICAgIjAuMDAyNDMyLCAwLjAwMjUzMywgMC4wMDI1NDgsIDAuMDAyNTU2LCAwLjAwMjU1OSwgMC4wMDI1NjIsIDAuMDAyNTYzIiwgXAotICAgICAgICAgICIwLjAwMjM1MywgMC4wMDI1MDIsIDAuMDAyNTI4LCAwLjAwMjU0MywgMC4wMDI1NSwgMC4wMDI1NTUsIDAuMDAyNTU4IiwgXAotICAgICAgICAgICIwLjAwMjMyMywgMC4wMDI0NzksIDAuMDAyNTEyLCAwLjAwMjUzMSwgMC4wMDI1NDEsIDAuMDAyNTQ3LCAwLjAwMjU1MiIsIFwKLSAgICAgICAgICAiMC4wMDIzMzQsIDAuMDAyNDY3LCAwLjAwMjUwMiwgMC4wMDI1MjQsIDAuMDAyNTM1LCAwLjAwMjU0MiwgMC4wMDI1NDciLCBcCi0gICAgICAgICAgIjAuMDAyNDA4LCAwLjAwMjQ3MiwgMC4wMDI1MDIsIDAuMDAyNTIyLCAwLjAwMjUzNCwgMC4wMDI1NDEsIDAuMDAyNTQ2IiwgXAotICAgICAgICAgICIwLjAwMjUyNSwgMC4wMDI1MDIsIDAuMDAyNTIsIDAuMDAyNTM0LCAwLjAwMjU0MywgMC4wMDI1NDgsIDAuMDAyNTUyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQzAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNzU5OSwgMC4wMDc2MiwgMC4wMDc2MjMsIDAuMDA3NjIzLCAwLjAwNzYyNCwgMC4wMDc2MjQsIDAuMDA3NjI0IiwgXAotICAgICAgICAgICIwLjAwNzU2NywgMC4wMDc2MzgsIDAuMDA3NjQ3LCAwLjAwNzY1MiwgMC4wMDc2NDksIDAuMDA3NjU1LCAwLjAwNzY1NyIsIFwKLSAgICAgICAgICAiMC4wMDc1NDksIDAuMDA3NjM0LCAwLjAwNzY0NywgMC4wMDc2NTYsIDAuMDA3NjYsIDAuMDA3NjYzLCAwLjAwNzY2NSIsIFwKLSAgICAgICAgICAiMC4wMDc1ODIsIDAuMDA3NjQxLCAwLjAwNzY1MiwgMC4wMDc2NTgsIDAuMDA3NjYyLCAwLjAwNzY2NCwgMC4wMDc2NjUiLCBcCi0gICAgICAgICAgIjAuMDA3NjUyLCAwLjAwNzY2LCAwLjAwNzY2NiwgMC4wMDc2NjgsIDAuMDA3NjcsIDAuMDA3NjcsIDAuMDA3NjY5IiwgXAotICAgICAgICAgICIwLjAwNzgxNiwgMC4wMDc3MTEsIDAuMDA3NzAzLCAwLjAwNzY5OCwgMC4wMDc2OTMsIDAuMDA3NjksIDAuMDA3NjkiLCBcCi0gICAgICAgICAgIjAuMDA4MDAxLCAwLjAwNzc3NCwgMC4wMDc3NTIsIDAuMDA3NzMyLCAwLjAwNzcyMSwgMC4wMDc3MTQsIDAuMDA3NzA2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzMjc1LCAwLjAwMzI4MywgMC4wMDMyODQsIDAuMDAzMjgzLCAwLjAwMzI4MywgMC4wMDMyODMsIDAuMDAzMjgyIiwgXAotICAgICAgICAgICIwLjAwMzIzMywgMC4wMDMyNTEsIDAuMDAzMjU0LCAwLjAwMzI1NSwgMC4wMDMyNTYsIDAuMDAzMjU3LCAwLjAwMzI1NiIsIFwKLSAgICAgICAgICAiMC4wMDMyNzIsIDAuMDAzMjU1LCAwLjAwMzI1NiwgMC4wMDMyNTYsIDAuMDAzMjU1LCAwLjAwMzI1NSwgMC4wMDMyNTQiLCBcCi0gICAgICAgICAgIjAuMDAzMzMxLCAwLjAwMzI4NywgMC4wMDMyNzYsIDAuMDAzMjY5LCAwLjAwMzI2NSwgMC4wMDMyNjMsIDAuMDAzMjYxIiwgXAotICAgICAgICAgICIwLjAwMzQ1MiwgMC4wMDMzMTcsIDAuMDAzMjk1LCAwLjAwMzI4MSwgMC4wMDMyNzQsIDAuMDAzMjcsIDAuMDAzMjY2IiwgXAotICAgICAgICAgICIwLjAwMzczOSwgMC4wMDM0NDUsIDAuMDAzMzgxLCAwLjAwMzM0NCwgMC4wMDMzMjQsIDAuMDAzMzEsIDAuMDAzMzAxIiwgXAotICAgICAgICAgICIwLjAwNDAzOSwgMC4wMDM1NTUsIDAuMDAzNDU4LCAwLjAwMzQwMSwgMC4wMDMzNjgsIDAuMDAzMzQ3LCAwLjAwMzMzMSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMxIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDY3MSwgMC4wMDY3MzksIDAuMDA2NzQyLCAwLjAwNjc0MywgMC4wMDY3NDUsIDAuMDA2NzQ0LCAwLjAwNjc0NCIsIFwKLSAgICAgICAgICAiMC4wMDY2OTEsIDAuMDA2NzU4LCAwLjAwNjc2OSwgMC4wMDY3NzEsIDAuMDA2Nzc2LCAwLjAwNjc3OCwgMC4wMDY3NzgiLCBcCi0gICAgICAgICAgIjAuMDA2NzEsIDAuMDA2NzY2LCAwLjAwNjc3NCwgMC4wMDY3NzgsIDAuMDA2NzgsIDAuMDA2Nzg0LCAwLjAwNjc4MyIsIFwKLSAgICAgICAgICAiMC4wMDY3OTMsIDAuMDA2Nzg2LCAwLjAwNjc5MiwgMC4wMDY3ODgsIDAuMDA2Nzg5LCAwLjAwNjc5LCAwLjAwNjc4OCIsIFwKLSAgICAgICAgICAiMC4wMDY5NDksIDAuMDA2ODMxLCAwLjAwNjgyMywgMC4wMDY4MTQsIDAuMDA2ODA4LCAwLjAwNjgwNSwgMC4wMDY4MDMiLCBcCi0gICAgICAgICAgIjAuMDA3MjE3LCAwLjAwNjkxOSwgMC4wMDY4NzgsIDAuMDA2ODYsIDAuMDA2ODM5LCAwLjAwNjgzLCAwLjAwNjgyNCIsIFwKLSAgICAgICAgICAiMC4wMDczODEsIDAuMDA3MDA4LCAwLjAwNjk0OCwgMC4wMDY5MTUsIDAuMDA2ODkxLCAwLjAwNjg2NCwgMC4wMDY4NTMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI3NTgsIDAuMDAyNzg4LCAwLjAwMjc5MiwgMC4wMDI3OTMsIDAuMDAyNzk0LCAwLjAwMjc5MywgMC4wMDI3OTMiLCBcCi0gICAgICAgICAgIjAuMDAyNzA4LCAwLjAwMjc4NiwgMC4wMDI3OTgsIDAuMDAyODA0LCAwLjAwMjgwOCwgMC4wMDI4MDksIDAuMDAyODEiLCBcCi0gICAgICAgICAgIjAuMDAyNzExLCAwLjAwMjc3NCwgMC4wMDI3OSwgMC4wMDI3OTksIDAuMDAyODA1LCAwLjAwMjgwOCwgMC4wMDI4MDkiLCBcCi0gICAgICAgICAgIjAuMDAyNzQ0LCAwLjAwMjc5MiwgMC4wMDI4MDEsIDAuMDAyODAyLCAwLjAwMjgwNiwgMC4wMDI4MDksIDAuMDAyODEiLCBcCi0gICAgICAgICAgIjAuMDAyODQ5LCAwLjAwMjgwNiwgMC4wMDI4MDgsIDAuMDAyODExLCAwLjAwMjgxMywgMC4wMDI4MTUsIDAuMDAyODE1IiwgXAotICAgICAgICAgICIwLjAwMzExNSwgMC4wMDI5MTQsIDAuMDAyODgxLCAwLjAwMjg2MiwgMC4wMDI4NTMsIDAuMDAyODQ2LCAwLjAwMjg0MiIsIFwKLSAgICAgICAgICAiMC4wMDMzNjcsIDAuMDAzMDA4LCAwLjAwMjk1NywgMC4wMDI5MDgsIDAuMDAyODg4LCAwLjAwMjg3NSwgMC4wMDI4NjYiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogT0FJMjIyWDQgKgotICogLS0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKE9BSTIyMlg0KSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDEuOTA4NDY7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDM0OTYwMTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDM0OTAyMzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDM0OTYwMTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDIwOTcsIDAuMDAyMDk1LCAwLjAwMjA5MywgMC4wMDIwOTQsIDAuMDAyMDk0LCAwLjAwMjA5NCwgMC4wMDIwOTQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDIwOTksIDAuMDAyMTAxLCAwLjAwMjEwMSwgMC4wMDIxMDIsIDAuMDAyMTAzLCAwLjAwMjEwMywgMC4wMDIxMDEiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEExKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDMzOTMwNjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDMzOTMwNjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDMzODMzNDsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDIwOTgsIDAuMDAyMDk3LCAwLjAwMjA5NiwgMC4wMDIwOTYsIDAuMDAyMDk2LCAwLjAwMjA5NiwgMC4wMDIwOTUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDIwOTgsIDAuMDAyMDk5LCAwLjAwMjA5OSwgMC4wMDIxLCAwLjAwMjEwMSwgMC4wMDIxMDEsIDAuMDAyMSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQjApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMzQyMTc1OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMzQxMzYyOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMzQyMTc1OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjA5NywgMC4wMDIwOTUsIDAuMDAyMDk0LCAwLjAwMjA5NSwgMC4wMDIwOTQsIDAuMDAyMDkzLCAwLjAwMjA5MyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjA5OSwgMC4wMDIxMDEsIDAuMDAyMTAxLCAwLjAwMjEwMiwgMC4wMDIxMDMsIDAuMDAyMTAxLCAwLjAwMjA5OSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQjEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMzI2NDEyOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMzI2NDEyOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMzI1NjQxOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjA5NywgMC4wMDIwOTcsIDAuMDAyMDk3LCAwLjAwMjA5NiwgMC4wMDIwOTYsIDAuMDAyMDk1LCAwLjAwMjA5NSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjA5OCwgMC4wMDIwOTksIDAuMDAyMDk5LCAwLjAwMjEsIDAuMDAyMTAxLCAwLjAwMjEwMiwgMC4wMDIwOTkiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEMwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDM1Mjg3NDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDM1MTM2MzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDM1Mjg3NDsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDE1MzQsIDAuMDAxNTM3LCAwLjAwMTUzOCwgMC4wMDE1MzYsIDAuMDAxNTM3LCAwLjAwMTUzNywgMC4wMDE1MzciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDIzODIsIDAuMDAyMzg1LCAwLjAwMjM4NSwgMC4wMDIzODQsIDAuMDAyMzg0LCAwLjAwMjM4NCwgMC4wMDIzODQiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEMxKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDM0MDM3MTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDM0MDM3MTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDM0MDMyMzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDE1MzMsIDAuMDAxNTM2LCAwLjAwMTUzNiwgMC4wMDE1MzQsIDAuMDAxNTM2LCAwLjAwMTUzNSwgMC4wMDE1MzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDIzODEsIDAuMDAyMzgyLCAwLjAwMjM4MywgMC4wMDIzODMsIDAuMDAyMzgzLCAwLjAwMjM4MywgMC4wMDIzODMiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC41MzMyODM7Ci0gICAgZnVuY3Rpb24gOiAiKCEoKChDMCtDMSkgKEEwK0ExKSkgKEIwK0IxKSkpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzg3MzMsIDAuMTM5NzU5LCAwLjIzOTg3NCwgMC4zMTE1OCwgMC40MjU4NTEsIDAuNTI1NjAyLCAwLjY2ODAwNCIsIFwKLSAgICAgICAgICAiMC4wNDQ4MjEsIDAuMTQ1OTMyLCAwLjI0NjA0MiwgMC4zMTc2NiwgMC40MzIwNTUsIDAuNTMxODMzLCAwLjY3NDEyOCIsIFwKLSAgICAgICAgICAiMC4wNTIxOTUsIDAuMTUzMzIzLCAwLjI1MzUxOCwgMC4zMjUyMjIsIDAuNDM5NDY0LCAwLjUzOTI1OCwgMC42ODE2NjEiLCBcCi0gICAgICAgICAgIjAuMDU4NjgxLCAwLjE2MDczOCwgMC4yNjA5NzQsIDAuMzMyNjU3LCAwLjQ0NjkxNywgMC41NDY3NDksIDAuNjg5MSIsIFwKLSAgICAgICAgICAiMC4wNjQyMTgsIDAuMTY4MjUzLCAwLjI2ODUyOCwgMC4zNDAyMzQsIDAuNDU0NDgzLCAwLjU1NDMyNywgMC42OTY2NzYiLCBcCi0gICAgICAgICAgIjAuMDcxNzAxLCAwLjE3OTg4NiwgMC4yODAzODIsIDAuMzUyMDUxLCAwLjQ2NjQ3MSwgMC41NjYwMDYsIDAuNzA4NDEzIiwgXAotICAgICAgICAgICIwLjA3NzI3MywgMC4xOTAzNzMsIDAuMjkwNjYzLCAwLjM2MjM0MSwgMC40Nzc1MDIsIDAuNTc3MzQ2LCAwLjcxOTc1OCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3NjAzMSwgMC4yODc1OCwgMC40OTk2NTEsIDAuNjUxMjQxLCAwLjg5MzY4NCwgMS4xMDU2NiwgMS40MDg5OCIsIFwKLSAgICAgICAgICAiMC4wNzY4MzksIDAuMjg3NTY0LCAwLjQ5OTcxMSwgMC42NTExNDEsIDAuODkzNzExLCAxLjEwNTU5LCAxLjQwODkzIiwgXAotICAgICAgICAgICIwLjA4MDg2NSwgMC4yODc3MzMsIDAuNDk5NjI3LCAwLjY1MTIxOCwgMC44OTM2MzQsIDEuMTA1NjksIDEuNDA4OTEiLCBcCi0gICAgICAgICAgIjAuMDg2NDExLCAwLjI4OTQ4NCwgMC40OTk3OTUsIDAuNjUxMjYsIDAuODkzNTQxLCAxLjEwNTY2LCAxLjQwODg2IiwgXAotICAgICAgICAgICIwLjA5MjgxMSwgMC4yOTIzOSwgMC41MDA3NjIsIDAuNjUxMzgzLCAwLjg5MzQ4OCwgMS4xMDU2OCwgMS40MDg5MiIsIFwKLSAgICAgICAgICAiMC4xMDMzOTQsIDAuMjk4NzY3LCAwLjUwNDI1MSwgMC42NTMxOTcsIDAuODkzODQ2LCAxLjEwNTc3LCAxLjQwODgyIiwgXAotICAgICAgICAgICIwLjExMjMzMywgMC4zMDU1MzIsIDAuNTA4NTk3LCAwLjY1NjMyMywgMC44OTUzMTgsIDEuMTA2MDgsIDEuNDA4ODYiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjAyMiwgMC4xOTk5MzcsIDAuMzM4OTY0LCAwLjQzODEwOCwgMC41OTY4OTIsIDAuNzM2NjU3LCAwLjkzNjkwNCIsIFwKLSAgICAgICAgICAiMC4wNjY4MTEsIDAuMjA2NTc0LCAwLjM0NTc4MSwgMC40NDQ5OTcsIDAuNjAzNzYsIDAuNzQzMTMsIDAuOTQzNzM5IiwgXAotICAgICAgICAgICIwLjA3MzMxMiwgMC4yMTMxNTcsIDAuMzUyMTIsIDAuNDUxMzc0LCAwLjYxMDA4NSwgMC43NDk0NTgsIDAuOTQ5NDY0IiwgXAotICAgICAgICAgICIwLjA3OTI2LCAwLjIxOTEyNiwgMC4zNTgyMjcsIDAuNDU3Njk5LCAwLjYxNjIyOSwgMC43NTU0OTksIDAuOTU1NzMzIiwgXAotICAgICAgICAgICIwLjA4NDY1NiwgMC4yMjQ5ODEsIDAuMzYzOTI1LCAwLjQ2MzM1OSwgMC42MjI2MDcsIDAuNzYxNTc0LCAwLjk2MTk4MyIsIFwKLSAgICAgICAgICAiMC4wOTIyMywgMC4yMzQ0MTUsIDAuMzczNSwgMC40NzI4NDMsIDAuNjMxNzA3LCAwLjc3MTA4NCwgMC45NzA5OTEiLCBcCi0gICAgICAgICAgIjAuMDk4MDQ0LCAwLjI0MjY5LCAwLjM4MTc3NCwgMC40ODExODYsIDAuNjQwMjI4LCAwLjc3OTA2LCAwLjk3OTAyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg1NDU1LCAwLjM3Mjc5MiwgMC42NjAyNTgsIDAuODY3NDEzLCAxLjE5ODIxLCAxLjQ4ODM4LCAxLjkwNDciLCBcCi0gICAgICAgICAgIjAuMDg1NDY2LCAwLjM3MjcxNiwgMC42NjAyODQsIDAuODY3MjYzLCAxLjE5Nzk0LCAxLjQ4ODY3LCAxLjkwNDI0IiwgXAotICAgICAgICAgICIwLjA4NjUzMiwgMC4zNzI2OTcsIDAuNjYwMzE1LCAwLjg2Njg4NiwgMS4xOTc4NywgMS40ODgzNSwgMS45MDQwMiIsIFwKLSAgICAgICAgICAiMC4wODg5NCwgMC4zNzI4NDksIDAuNjYwMDY4LCAwLjg2NzExNywgMS4xOTgwNSwgMS40ODg0MiwgMS45MDQ5NiIsIFwKLSAgICAgICAgICAiMC4wOTIzMjQsIDAuMzczOTY3LCAwLjY2MDA4OCwgMC44NjcwMzQsIDEuMTk4MTksIDEuNDg4NDgsIDEuOTA0NSIsIFwKLSAgICAgICAgICAiMC4wOTkyOTEsIDAuMzc2NDE2LCAwLjY2MTM4LCAwLjg2NzQxMiwgMS4xOTgyLCAxLjQ4ODI1LCAxLjkwNDA5IiwgXAotICAgICAgICAgICIwLjEwNTc4NiwgMC4zNzk5NTgsIDAuNjYzLCAwLjg2ODM3MSwgMS4xOTc5OCwgMS40ODg0NywgMS45MDQxMyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzY2MTQsIDAuMTM3NjQ4LCAwLjIzNzc0NywgMC4zMDkzNzYsIDAuNDIzNjkzLCAwLjUyMzUwNCwgMC42NjU4MTMiLCBcCi0gICAgICAgICAgIjAuMDQ0MDY3LCAwLjE0NTE1NSwgMC4yNDUyMTEsIDAuMzE2ODcsIDAuNDMxMjE5LCAwLjUzMTA2MiwgMC42NzMzMzkiLCBcCi0gICAgICAgICAgIjAuMDUzNzQ0LCAwLjE1NDU2LCAwLjI1NDY2LCAwLjMyNjMzLCAwLjQ0MDY4MywgMC41NDAzOCwgMC42ODI4MDMiLCBcCi0gICAgICAgICAgIjAuMDYyOTMsIDAuMTY0MTksIDAuMjY0MDMzLCAwLjMzNTk3NSwgMC40NTAyNywgMC41NTAwNDIsIDAuNjkyMzYxIiwgXAotICAgICAgICAgICIwLjA3MDQ5OCwgMC4xNzM5NDEsIDAuMjczOTExLCAwLjM0NTIxMywgMC40NTk4OTIsIDAuNTU5NjA0LCAwLjcwMjA2OCIsIFwKLSAgICAgICAgICAiMC4wODA2NjEsIDAuMTg5NTg5LCAwLjI4OTQ4NSwgMC4zNjExMiwgMC40NzUzMzgsIDAuNTc0OTkyLCAwLjcxNzM0OCIsIFwKLSAgICAgICAgICAiMC4wODczODQsIDAuMjAzNTI0LCAwLjMwMzE0OSwgMC4zNzQ1NTMsIDAuNDg4NzQyLCAwLjU4ODQ5NywgMC43MzA3NzEiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzYwOTMsIDAuMjg3NTU0LCAwLjQ5OTcwNywgMC42NTExMzQsIDAuODkzNjMsIDEuMTA1NjcsIDEuNDA4ODgiLCBcCi0gICAgICAgICAgIjAuMDc3NTExLCAwLjI4NzUxNywgMC40OTk1OTUsIDAuNjUxMDUzLCAwLjg5MzQ1LCAxLjEwNTU5LCAxLjQwODgxIiwgXAotICAgICAgICAgICIwLjA4NDA0NywgMC4yODc3NjQsIDAuNDk5NjEsIDAuNjUxMTA1LCAwLjg5MzcxMiwgMS4xMDU1OCwgMS40MDkiLCBcCi0gICAgICAgICAgIjAuMDkyNjg5LCAwLjI5MDI1NywgMC40OTk2NjgsIDAuNjUxMTI5LCAwLjg5MzY1OSwgMS4xMDU2LCAxLjQwODkyIiwgXAotICAgICAgICAgICIwLjEwMTIzMSwgMC4yOTQ2MiwgMC41MDA3ODcsIDAuNjUxMTM5LCAwLjg5MzY2NiwgMS4xMDU1NiwgMS40MDg5IiwgXAotICAgICAgICAgICIwLjExNTE3MSwgMC4zMDQxMDMsIDAuNTA1ODQxLCAwLjY1Mzc1LCAwLjg5MzY5MiwgMS4xMDU1NSwgMS40MDg4MSIsIFwKLSAgICAgICAgICAiMC4xMjYxNDcsIDAuMzE0MTk4LCAwLjUxMjMzNSwgMC42NTgwMjgsIDAuODk1NTE0LCAxLjEwNTczLCAxLjQwODc5Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU2Mjg1LCAwLjE5Njg1NiwgMC4zMzY4MTMsIDAuNDM2NjA3LCAwLjU5NjQ0LCAwLjczNzA5OCwgMC45Mzg2MTYiLCBcCi0gICAgICAgICAgIjAuMDYyNzMyLCAwLjIwMzY3MywgMC4zNDM1NjMsIDAuNDQzNjU4LCAwLjYwMzQ1MiwgMC43NDQxNjYsIDAuOTQ1NjIxIiwgXAotICAgICAgICAgICIwLjA2OTAyNCwgMC4yMTAxMjUsIDAuMzUwMTksIDAuNDUwMDk0LCAwLjYwOTgyMywgMC43NTA4NzIsIDAuOTUxNDQ5IiwgXAotICAgICAgICAgICIwLjA3NDg5OCwgMC4yMTYwMjgsIDAuMzU2MTYxLCAwLjQ1NjM3OCwgMC42MTU5NiwgMC43NTYxMzQsIDAuOTU3Nzg0IiwgXAotICAgICAgICAgICIwLjA3OTk5NywgMC4yMjE3OTQsIDAuMzYxOTQzLCAwLjQ2MTkzNiwgMC42MjIyNSwgMC43NjIxMDgsIDAuOTY0MTE4IiwgXAotICAgICAgICAgICIwLjA4NzI0NiwgMC4yMzExNjcsIDAuMzcxMzU4LCAwLjQ3MTQwMywgMC42MzE2ODUsIDAuNzcxNTYzLCAwLjk3Mjg4NiIsIFwKLSAgICAgICAgICAiMC4wOTI3NjEsIDAuMjM5MzkxLCAwLjM3OTU1OCwgMC40Nzk2MTQsIDAuNjM5Njc3LCAwLjc3OTkwOSwgMC45ODA5MSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4MDM2OSwgMC4zNjk0MywgMC42NTg4MDksIDAuODY3MTQ2LCAxLjIwMDEsIDEuNDkyOTEsIDEuOTEwODgiLCBcCi0gICAgICAgICAgIjAuMDgwNDI2LCAwLjM2OTQxMSwgMC42NTg2OTYsIDAuODY2ODY2LCAxLjE5OTgyLCAxLjQ5MjQyLCAxLjkxMDc4IiwgXAotICAgICAgICAgICIwLjA4MTYyOSwgMC4zNjkzMzgsIDAuNjU4NjUsIDAuODY3MjQ4LCAxLjIwMTE0LCAxLjQ5MjQxLCAxLjkxMjA2IiwgXAotICAgICAgICAgICIwLjA4NDE0NiwgMC4zNjk1ODMsIDAuNjU4ODEzLCAwLjg2Njg4NiwgMS4yMDEyNSwgMS40OTQ0OSwgMS45MTEzMiIsIFwKLSAgICAgICAgICAiMC4wODc4NDEsIDAuMzcwNTY5LCAwLjY1ODc4MiwgMC44NjY3MzQsIDEuMjAwMzUsIDEuNDkyMTIsIDEuOTEwNzgiLCBcCi0gICAgICAgICAgIjAuMDk0OTc4LCAwLjM3MzIxMywgMC42NTk3MjUsIDAuODY3MTUzLCAxLjIwMDI0LCAxLjQ5MjMzLCAxLjkxMjciLCBcCi0gICAgICAgICAgIjAuMTAxNDkxLCAwLjM3NjY5MywgMC42NjEzODcsIDAuODY3NzQ1LCAxLjIwMDE0LCAxLjQ5MzI0LCAxLjkxMzY2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzNDEzNSwgMC4xMzQ2NywgMC4yMzQ5NDUsIDAuMzA2NjE4LCAwLjQyMDc4MywgMC41MjA2MjgsIDAuNjYyODk2IiwgXAotICAgICAgICAgICIwLjA0MDI4NSwgMC4xNDA5ODksIDAuMjQxMjY0LCAwLjMxMjg4OCwgMC40MjcwNzYsIDAuNTI2ODYsIDAuNjY5MzY4IiwgXAotICAgICAgICAgICIwLjA0NzQ1NiwgMC4xNDg0MjUsIDAuMjQ4NzkxLCAwLjMyMDM4NCwgMC40MzQ2NDYsIDAuNTM0NDA5LCAwLjY3NjcyOCIsIFwKLSAgICAgICAgICAiMC4wNTM1NDEsIDAuMTU1NzczLCAwLjI1NjIzNSwgMC4zMjc4NjUsIDAuNDQyMDE5LCAwLjU0MTgyNywgMC42ODQxNzEiLCBcCi0gICAgICAgICAgIjAuMDU4NDkxLCAwLjE2MzQ2MywgMC4yNjM3NTYsIDAuMzM1MzUsIDAuNDQ5NTksIDAuNTQ5NDY5LCAwLjY5MTc1OCIsIFwKLSAgICAgICAgICAiMC4wNjUxNzYsIDAuMTc1MDMxLCAwLjI3NTM1NSwgMC4zNDczNDYsIDAuNDYxNDUsIDAuNTYxMjUsIDAuNzAzOTE4IiwgXAotICAgICAgICAgICIwLjA2OTk1MywgMC4xODUzNzYsIDAuMjg2MDc4LCAwLjM1NzU2MywgMC40NzIzMDUsIDAuNTcyNTA4LCAwLjcxNDkwMyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2OTAwNywgMC4yODA3OTgsIDAuNDkyODI0LCAwLjY0NDQ0MSwgMC44ODY4MjcsIDEuMDk5MSwgMS40MDE3MiIsIFwKLSAgICAgICAgICAiMC4wNzAwMjYsIDAuMjgwODA1LCAwLjQ5Mjg0MiwgMC42NDQzODMsIDAuODg2NzYsIDEuMDk5MDYsIDEuNDAxODYiLCBcCi0gICAgICAgICAgIjAuMDc0NDIzLCAwLjI4MTA3NCwgMC40OTI4NjMsIDAuNjQ0MzkxLCAwLjg4Njg2MiwgMS4wOTg2OSwgMS40MDE2OCIsIFwKLSAgICAgICAgICAiMC4wODAyNzksIDAuMjgyODcsIDAuNDkyOTQyLCAwLjY0NDQyMywgMC44ODY4NDMsIDEuMDk4NjgsIDEuNDAxOTgiLCBcCi0gICAgICAgICAgIjAuMDg2OTA0LCAwLjI4NTg3OCwgMC40OTQxMzYsIDAuNjQ0NjA5LCAwLjg4Njc1MywgMS4wOTkwNywgMS40MDE4IiwgXAotICAgICAgICAgICIwLjA5NzQxNiwgMC4yOTIyODksIDAuNDk3NDE1LCAwLjY0NjU1MywgMC44ODcyMSwgMS4wOTksIDEuNDAxNzEiLCBcCi0gICAgICAgICAgIjAuMTA2MjExLCAwLjI5OTA5NiwgMC41MDIxMjEsIDAuNjQ5NjU4LCAwLjg4ODU5NSwgMS4wOTkxNCwgMS40MDE2OCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1NTg2NiwgMC4xOTU1NzYsIDAuMzM0NDc2LCAwLjQzMzk5NiwgMC41OTI1MSwgMC43MzI2MTksIDAuOTMyNzQ5IiwgXAotICAgICAgICAgICIwLjA2MjYzMywgMC4yMDI0NDYsIDAuMzQxNjgzLCAwLjQ0MDYyNiwgMC41OTkyMzUsIDAuNzM4ODY0LCAwLjkzOTk5NCIsIFwKLSAgICAgICAgICAiMC4wNzA2NDIsIDAuMjEwNTM0LCAwLjM0OTY3NCwgMC40NDg5MDgsIDAuNjA3NjUsIDAuNzQ2ODYxLCAwLjk0NzcxNSIsIFwKLSAgICAgICAgICAiMC4wNzg2ODUsIDAuMjE4NTg4LCAwLjM1NzY5MywgMC40NTY5NzUsIDAuNjE1NTkyLCAwLjc1NTQ0NywgMC45NTU2ODQiLCBcCi0gICAgICAgICAgIjAuMDg2MDEyLCAwLjIyNjU4MSwgMC4zNjU4MzMsIDAuNDY1MjA4LCAwLjYyMzg5LCAwLjc2MzMxLCAwLjk2NDMxNSIsIFwKLSAgICAgICAgICAiMC4wOTY0MjgsIDAuMjM5OTQzLCAwLjM3ODg4OCwgMC40Nzg0MywgMC42MzcyMTQsIDAuNzc2MjA5LCAwLjk3NjgyMiIsIFwKLSAgICAgICAgICAiMC4xMDQyOTcsIDAuMjUxMzQ2LCAwLjM5MDU5OSwgMC40ODk5MTQsIDAuNjQ4NTIyLCAwLjc4ODE2MiwgMC45ODg0NjYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODU0NzUsIDAuMzcyNzYyLCAwLjY2MDM1OCwgMC44NjcxODcsIDEuMjAwMjUsIDEuNDkxOTYsIDEuOTA4MiIsIFwKLSAgICAgICAgICAiMC4wODU1MjMsIDAuMzcyNzEsIDAuNjYwMjk5LCAwLjg2NzIzNCwgMS4yMDAwNCwgMS40OTE3NywgMS45MDc3IiwgXAotICAgICAgICAgICIwLjA4NzgzNCwgMC4zNzI2ODcsIDAuNjYwMTUsIDAuODY3MDU0LCAxLjE5OTc5LCAxLjQ5MTMzLCAxLjkwNzk2IiwgXAotICAgICAgICAgICIwLjA5MjMxOSwgMC4zNzI5NTgsIDAuNjYwNDE0LCAwLjg2Njk4MywgMS4yMDAwNywgMS40OTE3NCwgMS45MDc3NCIsIFwKLSAgICAgICAgICAiMC4wOTc5MzYsIDAuMzc0NTAyLCAwLjY2MDM0OCwgMC44NjY5NTcsIDEuMTk5OTksIDEuNDkxNjcsIDEuOTA3NjciLCBcCi0gICAgICAgICAgIjAuMTA4MjcyLCAwLjM3ODgxOSwgMC42NjE2MywgMC44NjcxMzIsIDEuMTk5NzgsIDEuNDkxNDYsIDEuOTA3NzQiLCBcCi0gICAgICAgICAgIjAuMTE3MDM5LCAwLjM4NDA2MywgMC42NjM4NSwgMC44NjgyNjcsIDEuMTk5NDksIDEuNDkxMjYsIDEuOTA3OSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzE4MDYsIDAuMTMyMzQzLCAwLjIzMjYyOCwgMC4zMDQyMzYsIDAuNDE4NDY5LCAwLjUxODI4MywgMC42NjA1NDMiLCBcCi0gICAgICAgICAgIjAuMDM5Mjg5LCAwLjEzOTk2NiwgMC4yNDAyNTEsIDAuMzExNzk5LCAwLjQyNjA1MiwgMC41MjU4NzgsIDAuNjY4MTkyIiwgXAotICAgICAgICAgICIwLjA0OTAxOSwgMC4xNDk2MTUsIDAuMjQ5ODc1LCAwLjMyMTUxLCAwLjQzNTY4MywgMC41MzU0NDUsIDAuNjc3OTE4IiwgXAotICAgICAgICAgICIwLjA1NzI0MSwgMC4xNTkxNzIsIDAuMjU5MTY3LCAwLjMzMTA1LCAwLjQ0NTI4NSwgMC41NDUwMzksIDAuNjg3MzYzIiwgXAotICAgICAgICAgICIwLjA2Mzc3LCAwLjE2ODY2MiwgMC4yNjg3MSwgMC4zNDAzNjYsIDAuNDU0NTM0LCAwLjU1NDI1MywgMC42OTY3MjIiLCBcCi0gICAgICAgICAgIjAuMDcyOTg1LCAwLjE4NDM2OSwgMC4yODQzMjYsIDAuMzU1ODg0LCAwLjQ3MDA0NSwgMC41Njk3NzMsIDAuNzEyMDU4IiwgXAotICAgICAgICAgICIwLjA3OTE3OSwgMC4xOTgyMjcsIDAuMjk3OTM3LCAwLjM2OTM0OCwgMC40ODM0NDksIDAuNTgzMjIsIDAuNzI1NTA3Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY5MDEzLCAwLjI4MDgsIDAuNDkyOTEzLCAwLjY0NDI2MywgMC44ODY3OCwgMS4wOTkwOCwgMS40MDE4MiIsIFwKLSAgICAgICAgICAiMC4wNzA5NjksIDAuMjgwNzk5LCAwLjQ5MjkwNSwgMC42NDQzNTksIDAuODg2OTI3LCAxLjA5ODgzLCAxLjQwMTc3IiwgXAotICAgICAgICAgICIwLjA3ODA4OCwgMC4yODEwNTQsIDAuNDkyNzksIDAuNjQ0MzQ2LCAwLjg4Njc0OSwgMS4wOTg3MSwgMS40MDE3NiIsIFwKLSAgICAgICAgICAiMC4wODY5MzQsIDAuMjgzNzEyLCAwLjQ5Mjc3MiwgMC42NDQzOSwgMC44ODY4NjQsIDEuMDk5MDQsIDEuNDAxNzMiLCBcCi0gICAgICAgICAgIjAuMDk1Nzk3LCAwLjI4ODQzMywgMC40OTQxMSwgMC42NDQ0NiwgMC44ODY3NDcsIDEuMDk4NjUsIDEuNDAxNzkiLCBcCi0gICAgICAgICAgIjAuMTA5NDM3LCAwLjI5ODI0OSwgMC40OTk0NDcsIDAuNjQ3MTI2LCAwLjg4Njk3OSwgMS4wOTkwNywgMS40MDE5OCIsIFwKLSAgICAgICAgICAiMC4xMjAxODYsIDAuMzA4NDA5LCAwLjUwNTkzNiwgMC42NTE1ODMsIDAuODg4NzE4LCAxLjA5ODg4LCAxLjQwMTc0Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDUxNjA3LCAwLjE5MjQwNywgMC4zMzI0NjMsIDAuNDMyNjI3LCAwLjU5MjUyNSwgMC43MzI4MDgsIDAuOTMzNDU1IiwgXAotICAgICAgICAgICIwLjA1ODIyOCwgMC4xOTkzMzEsIDAuMzM5NzI2LCAwLjQzOTUxNCwgMC41OTk1NSwgMC43Mzk2MTIsIDAuOTQwNjY5IiwgXAotICAgICAgICAgICIwLjA2NTk3OSwgMC4yMDczNTQsIDAuMzQ3NjU5LCAwLjQ0Nzc0OSwgMC42MDc1NzMsIDAuNzQ3NjM4LCAwLjk0ODI1MSIsIFwKLSAgICAgICAgICAiMC4wNzM2OTQsIDAuMjE1MTU0LCAwLjM1NTQ4MywgMC40NTU2MjQsIDAuNjE1NzA3LCAwLjc1NTcxMywgMC45NTcxMjUiLCBcCi0gICAgICAgICAgIjAuMDgwNzUzLCAwLjIyMzEwMiwgMC4zNjM0NzMsIDAuNDYzNjQxLCAwLjYyMzc4LCAwLjc2MzkxMSwgMC45NjQ3MTMiLCBcCi0gICAgICAgICAgIjAuMDkwNDkyLCAwLjIzNjE4NCwgMC4zNzYzODYsIDAuNDc2ODEzLCAwLjYzNjk1NiwgMC43NzY3NDgsIDAuOTc3NTI1IiwgXAotICAgICAgICAgICIwLjA5NzU5OSwgMC4yNDc0MjEsIDAuMzg3OTY2LCAwLjQ4ODAwNiwgMC42NDg0NzksIDAuNzg4NjkzLCAwLjk4OTAzMiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4MDE2OSwgMC4zNzAxNzEsIDAuNjU5NzI1LCAwLjg2NjgyMiwgMS4yMDE5NiwgMS40OTI4OSwgMS45MTA4MiIsIFwKLSAgICAgICAgICAiMC4wODAyNiwgMC4zNzAxMTksIDAuNjU5ODg5LCAwLjg2Njg0LCAxLjIwMTIyLCAxLjQ5MjgsIDEuOTEwNzYiLCBcCi0gICAgICAgICAgIjAuMDgyODYsIDAuMzcwMTE1LCAwLjY1OTcyMiwgMC44NjY2MywgMS4yMDExOCwgMS40OTI5MywgMS45MTM1NiIsIFwKLSAgICAgICAgICAiMC4wODc1OTcsIDAuMzcwMzgyLCAwLjY1OTk0MywgMC44NjY1MDMsIDEuMjAwMDcsIDEuNDk0NTgsIDEuOTEwNjkiLCBcCi0gICAgICAgICAgIjAuMDkzNTAyLCAwLjM3MTg5MywgMC42NTk5MzgsIDAuODY2NDYyLCAxLjIwMTI0LCAxLjQ5NDcsIDEuOTEwNzkiLCBcCi0gICAgICAgICAgIjAuMTAzODcsIDAuMzc2Mjg3LCAwLjY2MDkxNywgMC44NjY2MjksIDEuMTk5MzksIDEuNDk0NDcsIDEuOTExNDciLCBcCi0gICAgICAgICAgIjAuMTEyNTE3LCAwLjM4MTU3NCwgMC42NjM1MjQsIDAuODY3NTM5LCAxLjIwMDA2LCAxLjQ5MjI5LCAxLjkxMzU5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyODA1LCAwLjEyODgyNCwgMC4yMjkzNTMsIDAuMzAxMDMzLCAwLjQxNTMwOCwgMC41MTUxODcsIDAuNjU3Nzc0IiwgXAotICAgICAgICAgICIwLjAzNDA3OCwgMC4xMzUxMzUsIDAuMjM1NzEsIDAuMzA3Mzk5LCAwLjQyMTcyLCAwLjUyMTU1MiwgMC42NjQwNDIiLCBcCi0gICAgICAgICAgIjAuMDQxMDg5LCAwLjE0MjU2MSwgMC4yNDMyMDEsIDAuMzE0ODY2LCAwLjQyOTI5LCAwLjUyOTA1OSwgMC42NzE2NSIsIFwKLSAgICAgICAgICAiMC4wNDYyNzcsIDAuMTQ5OTY4LCAwLjI1MDcwOCwgMC4zMjI0NTEsIDAuNDM2Nzc0LCAwLjUzNjY1NywgMC42NzkxMTgiLCBcCi0gICAgICAgICAgIjAuMDUwNjQ2LCAwLjE1NzQ3OSwgMC4yNTgwNDYsIDAuMzI5NzQ5LCAwLjQ0NDIyLCAwLjU0NDA2OSwgMC42ODY0OTIiLCBcCi0gICAgICAgICAgIjAuMDU2MDk2LCAwLjE2OTE0MiwgMC4yNzAwNTUsIDAuMzQxNzYxLCAwLjQ1NjMxMSwgMC41NTU4NDgsIDAuNjk4MzEzIiwgXAotICAgICAgICAgICIwLjA2MDA4NiwgMC4xNzk0ODYsIDAuMjgwMzE2LCAwLjM1MTk0MywgMC40NjcyMiwgMC41NjcxOTksIDAuNzA5NjY4Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDYzMDEsIDAuMjc0NDk4LCAwLjQ4NjM0NywgMC42Mzc3NSwgMC44ODAwMTQsIDEuMDkxOTMsIDEuMzk1MDEiLCBcCi0gICAgICAgICAgIjAuMDY0NDE2LCAwLjI3NDUwNywgMC40ODYzNjUsIDAuNjM3NzI2LCAwLjg4MDAxNywgMS4wOTE5NSwgMS4zOTQ4NiIsIFwKLSAgICAgICAgICAiMC4wNjkzODcsIDAuMjc0ODM1LCAwLjQ4NjI0NCwgMC42Mzc3NSwgMC44ODAxMDEsIDEuMDkxOTgsIDEuMzk0OTciLCBcCi0gICAgICAgICAgIjAuMDc1NjQ4LCAwLjI3NjY5MywgMC40ODY1MDYsIDAuNjM3NzQsIDAuODgwMDY4LCAxLjA5MTk5LCAxLjM5NDk5IiwgXAotICAgICAgICAgICIwLjA4MjU5LCAwLjI3OTk4NywgMC40ODc2MjIsIDAuNjM3OTQ4LCAwLjg4MDEyNCwgMS4wOTE5NSwgMS4zOTQ4NCIsIFwKLSAgICAgICAgICAiMC4wOTMxMDUsIDAuMjg2NTIzLCAwLjQ5MTM0MSwgMC42NDAwMDMsIDAuODgwMzg0LCAxLjA5MTksIDEuMzk0ODIiLCBcCi0gICAgICAgICAgIjAuMTAxODg2LCAwLjI5MzU3MSwgMC40OTU3ODcsIDAuNjQzMTY0LCAwLjg4MTg4NiwgMS4wOTI0MiwgMS4zOTQ3OSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0NzYyNCwgMC4xODcyNjUsIDAuMzI2MjI1LCAwLjQyNTcwNiwgMC41ODQwNjUsIDAuNzIzNjI3LCAwLjkyNDE4MSIsIFwKLSAgICAgICAgICAiMC4wNTQ3OTksIDAuMTk0NDc3LCAwLjMzMzUyMiwgMC40MzI3NDQsIDAuNTkxNDk1LCAwLjczMDM1MywgMC45MzA5NjgiLCBcCi0gICAgICAgICAgIjAuMDY0MTcxLCAwLjIwMzc1NSwgMC4zNDI2ODYsIDAuNDQxODc4LCAwLjYwMDg0MSwgMC43Mzk3NTUsIDAuOTQxMDA0IiwgXAotICAgICAgICAgICIwLjA3NDA0OSwgMC4yMTI4MTIsIDAuMzUxNzM5LCAwLjQ1MTE3MiwgMC42MDk3ODQsIDAuNzQ4ODYyLCAwLjk0OTMwNSIsIFwKLSAgICAgICAgICAiMC4wODMyMjksIDAuMjIyNDY5LCAwLjM2MTE0MywgMC40NjA0MjUsIDAuNjE5NTI2LCAwLjc1ODMyOCwgMC45NTg4NTYiLCBcCi0gICAgICAgICAgIjAuMDk1MDk1LCAwLjIzNzA4NywgMC4zNzU3MSwgMC40NzQ4LCAwLjYzMzIzLCAwLjc3MjU5NCwgMC45NzM3MiIsIFwKLSAgICAgICAgICAiMC4xMDQyMjcsIDAuMjUwNTA2LCAwLjM4ODc3LCAwLjQ4Nzc5NCwgMC42NDQxMzcsIDAuNzg1NDI5LCAwLjk4NTkxNyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4NTI3OSwgMC4zNzI3MTMsIDAuNjU5ODk1LCAwLjg2NjQ1OSwgMS4xOTk1OCwgMS40OTEzOSwgMS45MDcyMSIsIFwKLSAgICAgICAgICAiMC4wODUxNSwgMC4zNzI2ODMsIDAuNjU5NjY1LCAwLjg2NjU3MSwgMS4xOTk1NCwgMS40OTE0MiwgMS45MDczNiIsIFwKLSAgICAgICAgICAiMC4wODk3NTgsIDAuMzcyNjEsIDAuNjU5ODUxLCAwLjg2NjQyMywgMS4xOTk2NiwgMS40OTA5LCAxLjkwNzM0IiwgXAotICAgICAgICAgICIwLjA5NjUzLCAwLjM3Mjg4OSwgMC42NTk5NiwgMC44NjY3ODksIDEuMTk5MzUsIDEuNDkxNCwgMS45MDc0MSIsIFwKLSAgICAgICAgICAiMC4xMDQxMzksIDAuMzc1MjMsIDAuNjU5NzIyLCAwLjg2NjQyOSwgMS4xOTk3NCwgMS40OTEwNywgMS45MDc0NyIsIFwKLSAgICAgICAgICAiMC4xMTc0MDMsIDAuMzgxNjkyLCAwLjY2MTMzNSwgMC44NjY5MSwgMS4xOTkyOSwgMS40OTExOSwgMS45MDc4OCIsIFwKLSAgICAgICAgICAiMC4xMjcyNCwgMC4zODkwNzYsIDAuNjY1MTA0LCAwLjg2ODI4MiwgMS4xOTk0OSwgMS40OTA5LCAxLjkwNzQ2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMxIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyNTg5MiwgMC4xMjY3NDksIDAuMjI3MjYxLCAwLjI5ODkzLCAwLjQxMzIyOCwgMC41MTMxMjgsIDAuNjU1NjEzIiwgXAotICAgICAgICAgICIwLjAzMzQ0NSwgMC4xMzQ0NDcsIDAuMjM0OTM5LCAwLjMwNjY2NCwgMC40MjEwNTIsIDAuNTIwODcsIDAuNjYzMzA3IiwgXAotICAgICAgICAgICIwLjA0Mjc4NywgMC4xNDQwOTMsIDAuMjQ0NjUsIDAuMzE2MzM4LCAwLjQzMDY1LCAwLjUzMDU4NiwgMC42NzI5NDUiLCBcCi0gICAgICAgICAgIjAuMDQ5NzY4LCAwLjE1MzQ4NiwgMC4yNTQwODEsIDAuMzI1Njk4LCAwLjQ0MDA1MSwgMC41Mzk4OTMsIDAuNjgyMzI0IiwgXAotICAgICAgICAgICIwLjA1NTYzNywgMC4xNjMyMzgsIDAuMjYzNzEzLCAwLjMzNTM1NSwgMC40NDk2OTMsIDAuNTQ5NTYsIDAuNjkxOTI4IiwgXAotICAgICAgICAgICIwLjA2MzI5NCwgMC4xNzg4NiwgMC4yNzkxOCwgMC4zNTA4MTQsIDAuNDY1MTAyLCAwLjU2NDk4MSwgMC43MDcyMjIiLCBcCi0gICAgICAgICAgIjAuMDY4MjA5LCAwLjE5MjY5NywgMC4yOTI4MSwgMC4zNjQyOTcsIDAuNDc4NTMzLCAwLjU3ODM5LCAwLjcyMDc1MSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2Mjk4OSwgMC4yNzQ0OCwgMC40ODYzNTQsIDAuNjM3Njg3LCAwLjg3OTk0NywgMS4wOTE5OSwgMS4zOTQ5NiIsIFwKLSAgICAgICAgICAiMC4wNjU2ODUsIDAuMjc0NTAxLCAwLjQ4NjM0MSwgMC42Mzc3MDMsIDAuODgwMDQ1LCAxLjA5MTk3LCAxLjM5NDg0IiwgXAotICAgICAgICAgICIwLjA3MzQ0NiwgMC4yNzQ3OTMsIDAuNDg2MzgyLCAwLjYzNzcwOSwgMC44Nzk5NDQsIDEuMDkyLCAxLjM5NDg0IiwgXAotICAgICAgICAgICIwLjA4MjgxOCwgMC4yNzc3ODEsIDAuNDg2NDA0LCAwLjYzNzcxMSwgMC44ODAwNjcsIDEuMDkxOTUsIDEuMzk0NzgiLCBcCi0gICAgICAgICAgIjAuMDkxNjIyLCAwLjI4MjU1LCAwLjQ4Nzg4MiwgMC42Mzc4MTUsIDAuODc5OTk2LCAxLjA5MTk2LCAxLjM5NDg4IiwgXAotICAgICAgICAgICIwLjEwNDg2OSwgMC4yOTI1ODYsIDAuNDkzMjI4LCAwLjY0MDUzNSwgMC44ODAxMjIsIDEuMDkxOTQsIDEuMzk0ODkiLCBcCi0gICAgICAgICAgIjAuMTE1Mzc3LCAwLjMwMzAyNCwgMC40OTk4OTQsIDAuNjQ1MTQxLCAwLjg4MjA4OCwgMS4wOTIxMSwgMS4zOTQ5NSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0MzcxOCwgMC4xODQ0OTEsIDAuMzI0Nzc0LCAwLjQyNDY1MiwgMC41ODQ3NTgsIDAuNzI0OTI2LCAwLjkyNTUyNSIsIFwKLSAgICAgICAgICAiMC4wNTA4MjEsIDAuMTkxNzgxLCAwLjMzMTk4NCwgMC40MzE5ODgsIDAuNTkyMTQxLCAwLjczMjA2NiwgMC45MzI2MjYiLCBcCi0gICAgICAgICAgIjAuMDYwMDcsIDAuMjAwOTU1LCAwLjM0MTE0LCAwLjQ0MTExNCwgMC42MDE0NTEsIDAuNzQxMTEzLCAwLjk0MTk3IiwgXAotICAgICAgICAgICIwLjA2OTc4MywgMC4yMTAwNDMsIDAuMzUwMTk2LCAwLjQ1MDIxNCwgMC42MTA2ODgsIDAuNzUwNDI2LCAwLjk1MTA1OSIsIFwKLSAgICAgICAgICAiMC4wNzgzNDksIDAuMjE5NjUyLCAwLjM1OTU3MSwgMC40NTk5MzMsIDAuNjE5NjU4LCAwLjc1OTQxOSwgMC45NjAwNTEiLCBcCi0gICAgICAgICAgIjAuMDg5NDQ5LCAwLjIzNDIyNiwgMC4zNzQxMjEsIDAuNDc0MDQsIDAuNjMzODgsIDAuNzczOTY1LCAwLjk3NTE1NiIsIFwKLSAgICAgICAgICAiMC4wOTg3MzcsIDAuMjQ3NjA0LCAwLjM4NzE0NSwgMC40ODcxMjcsIDAuNjQ0ODA4LCAwLjc4Njg0NiwgMC45ODczMzMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODAzNzUsIDAuMzcwNTU2LCAwLjY2MDQwMiwgMC44NjczMzUsIDEuMjAwMDYsIDEuNDkyODYsIDEuOTEwODkiLCBcCi0gICAgICAgICAgIjAuMDgwMzQ4LCAwLjM3MDUsIDAuNjYwMDU0LCAwLjg2NjkxLCAxLjIwMTI0LCAxLjQ5MzQxLCAxLjkxMzYiLCBcCi0gICAgICAgICAgIjAuMDg1MjcxLCAwLjM3MDQ2MiwgMC42NjAxMTIsIDAuODY3MzI4LCAxLjE5OTk5LCAxLjQ5NDUyLCAxLjkxMDczIiwgXAotICAgICAgICAgICIwLjA5MjMyNCwgMC4zNzA5MjUsIDAuNjYwMzUzLCAwLjg2Njk1LCAxLjE5OTc3LCAxLjQ5MjM1LCAxLjkxMTYxIiwgXAotICAgICAgICAgICIwLjEwMDI0OCwgMC4zNzI5MzEsIDAuNjYwMjMxLCAwLjg2NzM4NCwgMS4yMDEyOCwgMS40OTQ1NywgMS45MTM3MyIsIFwKLSAgICAgICAgICAiMC4xMTM0MjIsIDAuMzc5NTcsIDAuNjYxNTA2LCAwLjg2Njg1LCAxLjIwMTA4LCAxLjQ5NDY2LCAxLjkxMDczIiwgXAotICAgICAgICAgICIwLjEyMjY3NiwgMC4zODcxMDIsIDAuNjY1Mjk1LCAwLjg2ODU2NSwgMS4yMDExOCwgMS40OTM1LCAxLjkxMzYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjQ3NjIsIDAuMDI0NzYzLCAwLjAyNDc2NiwgMC4wMjQ3NjEsIDAuMDI0NzYyLCAwLjAyNDc1NiwgMC4wMjQ3NTMiLCBcCi0gICAgICAgICAgIjAuMDI0NjU0LCAwLjAyNDY3OSwgMC4wMjQ2ODQsIDAuMDI0Njg1LCAwLjAyNDY4MywgMC4wMjQ2ODIsIDAuMDI0Njc5IiwgXAotICAgICAgICAgICIwLjAyNDYzOSwgMC4wMjQ2NzEsIDAuMDI0NjcxLCAwLjAyNDY3MiwgMC4wMjQ2NywgMC4wMjQ2NjQsIDAuMDI0NjY3IiwgXAotICAgICAgICAgICIwLjAyNDc0LCAwLjAyNDY5MiwgMC4wMjQ2ODYsIDAuMDI0NjgsIDAuMDI0Njc2LCAwLjAyNDY3NiwgMC4wMjQ2NjkiLCBcCi0gICAgICAgICAgIjAuMDI0ODk4LCAwLjAyNDczOSwgMC4wMjQ3MjIsIDAuMDI0NzEzLCAwLjAyNDY5NSwgMC4wMjQ2ODksIDAuMDI0NjgyIiwgXAotICAgICAgICAgICIwLjAyNTI3MSwgMC4wMjQ4OTcsIDAuMDI0ODIyLCAwLjAyNDc5LCAwLjAyNDc2LCAwLjAyNDczNiwgMC4wMjQ3MiIsIFwKLSAgICAgICAgICAiMC4wMjU3MDYsIDAuMDI1MDgxLCAwLjAyNDk0LCAwLjAyNDg4NiwgMC4wMjQ4NDMsIDAuMDI0ODA2LCAwLjAyNDc3OCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1OTkxLCAwLjAwNjAxMSwgMC4wMDYwMTIsIDAuMDA2MDEyLCAwLjAwNjAxMSwgMC4wMDYwMTEsIDAuMDA2MDEiLCBcCi0gICAgICAgICAgIjAuMDA1ODMyLCAwLjAwNTkyNywgMC4wMDU5NDYsIDAuMDA1OTQ4LCAwLjAwNTk1MSwgMC4wMDU5NTQsIDAuMDA1OTU0IiwgXAotICAgICAgICAgICIwLjAwNTc0MywgMC4wMDU4ODEsIDAuMDA1OTEyLCAwLjAwNTkyMiwgMC4wMDU5MzIsIDAuMDA1OTM2LCAwLjAwNTkzOSIsIFwKLSAgICAgICAgICAiMC4wMDU3MDYsIDAuMDA1ODUxLCAwLjAwNTg5MSwgMC4wMDU5MDQsIDAuMDA1OTE3LCAwLjAwNTkyNCwgMC4wMDU5MjkiLCBcCi0gICAgICAgICAgIjAuMDA1NzE3LCAwLjAwNTgzOSwgMC4wMDU4ODQsIDAuMDA1ODk0LCAwLjAwNTkwOSwgMC4wMDU5MTcsIDAuMDA1OTIzIiwgXAotICAgICAgICAgICIwLjAwNTgyNSwgMC4wMDU4NjEsIDAuMDA1ODkyLCAwLjAwNTkwMywgMC4wMDU5MTUsIDAuMDA1OTIxLCAwLjAwNTkyNSIsIFwKLSAgICAgICAgICAiMC4wMDYwMTIsIDAuMDA1OTMsIDAuMDA1OTM0LCAwLjAwNTkzNiwgMC4wMDU5NCwgMC4wMDU5NDEsIDAuMDA1OTQxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDIyOTg2LCAwLjAyMjk5NSwgMC4wMjI5OTMsIDAuMDIyOTkxLCAwLjAyMjk4OCwgMC4wMjI5ODYsIDAuMDIyOTg2IiwgXAotICAgICAgICAgICIwLjAyMjg2NywgMC4wMjI5MDEsIDAuMDIyOTA0LCAwLjAyMjkwNSwgMC4wMjI5MDQsIDAuMDIyOTA3LCAwLjAyMjkwNSIsIFwKLSAgICAgICAgICAiMC4wMjI5MjQsIDAuMDIyOTM0LCAwLjAyMjkyMSwgMC4wMjI5MTQsIDAuMDIyOTEzLCAwLjAyMjkwNywgMC4wMjI5MDgiLCBcCi0gICAgICAgICAgIjAuMDIzMTksIDAuMDIyOTkzLCAwLjAyMjk0NywgMC4wMjI5NDYsIDAuMDIyOTMsIDAuMDIyOTIyLCAwLjAyMjkxMiIsIFwKLSAgICAgICAgICAiMC4wMjM0MjMsIDAuMDIzMTA1LCAwLjAyMzAyMywgMC4wMjI5ODYsIDAuMDIyOTc0LCAwLjAyMjk1NywgMC4wMjI5MzgiLCBcCi0gICAgICAgICAgIjAuMDIzOTg0LCAwLjAyMzMyOSwgMC4wMjMxODQsIDAuMDIzMTIzLCAwLjAyMzA3MywgMC4wMjMwMzgsIDAuMDIzMDA5IiwgXAotICAgICAgICAgICIwLjAyNDU4NCwgMC4wMjM1OTYsIDAuMDIzMzY2LCAwLjAyMzI3NSwgMC4wMjMxNzcsIDAuMDIzMTM5LCAwLjAyMzA4OSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0ODM2LCAwLjAwNDkxNiwgMC4wMDQ5MjYsIDAuMDA0OTMsIDAuMDA0OTMxLCAwLjAwNDkzMiwgMC4wMDQ5MzIiLCBcCi0gICAgICAgICAgIjAuMDA0NjA3LCAwLjAwNDg3NCwgMC4wMDQ5MjEsIDAuMDA0OTM2LCAwLjAwNDk0OSwgMC4wMDQ5NTYsIDAuMDA0OTYxIiwgXAotICAgICAgICAgICIwLjAwNDQyMiwgMC4wMDQ3ODIsIDAuMDA0ODY1LCAwLjAwNDg5NCwgMC4wMDQ5MTksIDAuMDA0OTMyLCAwLjAwNDk0NCIsIFwKLSAgICAgICAgICAiMC4wMDQzMzQsIDAuMDA0NzA5LCAwLjAwNDgxNiwgMC4wMDQ4NTMsIDAuMDA0ODg5LCAwLjAwNDkwOCwgMC4wMDQ5MjQiLCBcCi0gICAgICAgICAgIjAuMDA0MzIzLCAwLjAwNDY2MSwgMC4wMDQ3NzgsIDAuMDA0ODIxLCAwLjAwNDg2NCwgMC4wMDQ4ODcsIDAuMDA0OTA4IiwgXAotICAgICAgICAgICIwLjAwNDQxNSwgMC4wMDQ2MzYsIDAuMDA0NzUyLCAwLjAwNDc5OCwgMC4wMDQ4NDMsIDAuMDA0ODY5LCAwLjAwNDg5MyIsIFwKLSAgICAgICAgICAiMC4wMDQ1OTIsIDAuMDA0Njc1LCAwLjAwNDc2NywgMC4wMDQ4MDcsIDAuMDA0ODQ4LCAwLjAwNDg3MiwgMC4wMDQ4OTQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTk4MzMsIDAuMDE5ODQ3LCAwLjAxOTg0OCwgMC4wMTk4NDgsIDAuMDE5ODQ2LCAwLjAxOTg0NSwgMC4wMTk4NDIiLCBcCi0gICAgICAgICAgIjAuMDE5NzI1LCAwLjAxOTgxOCwgMC4wMTk4MzMsIDAuMDE5ODM1LCAwLjAxOTg0LCAwLjAxOTgzOSwgMC4wMTk4NDEiLCBcCi0gICAgICAgICAgIjAuMDE5NjkyLCAwLjAxOTgwMSwgMC4wMTk4MjIsIDAuMDE5ODI5LCAwLjAxOTgzMywgMC4wMTk4NDEsIDAuMDE5ODQ0IiwgXAotICAgICAgICAgICIwLjAxOTc4LCAwLjAxOTgxOSwgMC4wMTk4MzYsIDAuMDE5ODM3LCAwLjAxOTg0MSwgMC4wMTk4NDMsIDAuMDE5ODQzIiwgXAotICAgICAgICAgICIwLjAxOTk0MywgMC4wMTk4NzEsIDAuMDE5ODY4LCAwLjAxOTg2NSwgMC4wMTk4NjEsIDAuMDE5ODU1LCAwLjAxOTg1NSIsIFwKLSAgICAgICAgICAiMC4wMjAzMjgsIDAuMDIwMDA5LCAwLjAxOTk1NywgMC4wMTk5MzUsIDAuMDE5OTE4LCAwLjAxOTkwMiwgMC4wMTk4OTEiLCBcCi0gICAgICAgICAgIjAuMDIwNzYxLCAwLjAyMDE3MywgMC4wMjAwNjgsIDAuMDIwMDMxLCAwLjAxOTk5OCwgMC4wMTk5OCwgMC4wMTk5NTIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNTk5NywgMC4wMDYwMTUsIDAuMDA2MDE3LCAwLjAwNjAxNywgMC4wMDYwMTYsIDAuMDA2MDE1LCAwLjAwNjAxNCIsIFwKLSAgICAgICAgICAiMC4wMDU4MzYsIDAuMDA1OTI5LCAwLjAwNTk0NCwgMC4wMDU5NSwgMC4wMDU5NTQsIDAuMDA1OTU2LCAwLjAwNTk1NSIsIFwKLSAgICAgICAgICAiMC4wMDU3NTcsIDAuMDA1ODg4LCAwLjAwNTkxNiwgMC4wMDU5MjYsIDAuMDA1OTM1LCAwLjAwNTkzOSwgMC4wMDU5NDIiLCBcCi0gICAgICAgICAgIjAuMDA1NzYyLCAwLjAwNTg3MSwgMC4wMDU5MDQsIDAuMDA1OTE1LCAwLjAwNTkyMywgMC4wMDU5MywgMC4wMDU5MzQiLCBcCi0gICAgICAgICAgIjAuMDA1ODQyLCAwLjAwNTg4NCwgMC4wMDU5MDcsIDAuMDA1OTE5LCAwLjAwNTkyNywgMC4wMDU5MzEsIDAuMDA1OTM1IiwgXAotICAgICAgICAgICIwLjAwNjA3NCwgMC4wMDU5NTksIDAuMDA1OTUxLCAwLjAwNTk0OSwgMC4wMDU5NDksIDAuMDA1OTQ4LCAwLjAwNTk0OCIsIFwKLSAgICAgICAgICAiMC4wMDYzOTgsIDAuMDA2MDg1LCAwLjAwNjAzMywgMC4wMDYwMTYsIDAuMDA2MDAzLCAwLjAwNTk5LCAwLjAwNTk4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE4MDA3LCAwLjAxODAzMiwgMC4wMTgwMzMsIDAuMDE4MDMyLCAwLjAxODAzNCwgMC4wMTgwMzIsIDAuMDE4MDMiLCBcCi0gICAgICAgICAgIjAuMDE3OTE1LCAwLjAxODAwNiwgMC4wMTgwMTksIDAuMDE4MDIsIDAuMDE4MDIzLCAwLjAxODAzNCwgMC4wMTgwMjciLCBcCi0gICAgICAgICAgIjAuMDE3OTY3LCAwLjAxODAxMywgMC4wMTgwMjIsIDAuMDE4MDI3LCAwLjAxODAzMiwgMC4wMTgwMjYsIDAuMDE4MDMiLCBcCi0gICAgICAgICAgIjAuMDE4MjExLCAwLjAxODA4MSwgMC4wMTgwNTEsIDAuMDE4MDYxLCAwLjAxODA0OSwgMC4wMTgwNDUsIDAuMDE4MDQxIiwgXAotICAgICAgICAgICIwLjAxODQ2NiwgMC4wMTgyMTgsIDAuMDE4MTUxLCAwLjAxODEzNiwgMC4wMTgxMTEsIDAuMDE4MDk2LCAwLjAxODA3OCIsIFwKLSAgICAgICAgICAiMC4wMTkwNzIsIDAuMDE4NDM0LCAwLjAxODMwNCwgMC4wMTgyNTMsIDAuMDE4MjA5LCAwLjAxODE4MSwgMC4wMTgxNTMiLCBcCi0gICAgICAgICAgIjAuMDE5NjczLCAwLjAxODY5NiwgMC4wMTg0ODMsIDAuMDE4Mzk5LCAwLjAxODMxMSwgMC4wMTgyNzgsIDAuMDE4MjMzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQ2MzgsIDAuMDA0NzE5LCAwLjAwNDcyOCwgMC4wMDQ3MzEsIDAuMDA0NzMzLCAwLjAwNDczMywgMC4wMDQ3MzMiLCBcCi0gICAgICAgICAgIjAuMDA0NDEzLCAwLjAwNDY3OCwgMC4wMDQ3MjUsIDAuMDA0NzQxLCAwLjAwNDc1NCwgMC4wMDQ3NiwgMC4wMDQ3NjUiLCBcCi0gICAgICAgICAgIjAuMDA0MjQ1LCAwLjAwNDU5MSwgMC4wMDQ2NzMsIDAuMDA0NywgMC4wMDQ3MjYsIDAuMDA0NzM4LCAwLjAwNDc1IiwgXAotICAgICAgICAgICIwLjAwNDIxNiwgMC4wMDQ1MzYsIDAuMDA0NjM0LCAwLjAwNDY2OSwgMC4wMDQ3MDEsIDAuMDA0NzE5LCAwLjAwNDczNCIsIFwKLSAgICAgICAgICAiMC4wMDQyNzgsIDAuMDA0NTE3LCAwLjAwNDYxNCwgMC4wMDQ2NTEsIDAuMDA0Njg3LCAwLjAwNDcwNywgMC4wMDQ3MjUiLCBcCi0gICAgICAgICAgIjAuMDA0NDk0LCAwLjAwNDU0NiwgMC4wMDQ2MjEsIDAuMDA0NjUyLCAwLjAwNDY4NSwgMC4wMDQ3MDMsIDAuMDA0NzIyIiwgXAotICAgICAgICAgICIwLjAwNDgxNywgMC4wMDQ2NDMsIDAuMDA0Njc2LCAwLjAwNDY5NCwgMC4wMDQ3MTUsIDAuMDA0NzI3LCAwLjAwNDc0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQzAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE0NjM5LCAwLjAxNDcwOCwgMC4wMTQ3MTYsIDAuMDE0NzE2LCAwLjAxNDcyLCAwLjAxNDcxOSwgMC4wMTQ3MjEiLCBcCi0gICAgICAgICAgIjAuMDE0NTI0LCAwLjAxNDcyNywgMC4wMTQ3NTgsIDAuMDE0NzY3LCAwLjAxNDc3NCwgMC4wMTQ3OCwgMC4wMTQ3ODMiLCBcCi0gICAgICAgICAgIjAuMDE0NDk5LCAwLjAxNDcxLCAwLjAxNDc1MiwgMC4wMTQ3NjYsIDAuMDE0Nzc4LCAwLjAxNDc3OSwgMC4wMTQ3OSIsIFwKLSAgICAgICAgICAiMC4wMTQ2MDUsIDAuMDE0NzI2LCAwLjAxNDc2MywgMC4wMTQ3NzUsIDAuMDE0NzksIDAuMDE0NzkyLCAwLjAxNDc5MyIsIFwKLSAgICAgICAgICAiMC4wMTQ3ODgsIDAuMDE0NzczLCAwLjAxNDc5MywgMC4wMTQ3OTgsIDAuMDE0OCwgMC4wMTQ4MDgsIDAuMDE0ODExIiwgXAotICAgICAgICAgICIwLjAxNTIzNSwgMC4wMTQ5MDEsIDAuMDE0ODgzLCAwLjAxNDg3NywgMC4wMTQ4NiwgMC4wMTQ4NTUsIDAuMDE0ODQ5IiwgXAotICAgICAgICAgICIwLjAxNTcwMSwgMC4wMTUwNjcsIDAuMDE0OTk2LCAwLjAxNDk1NSwgMC4wMTQ5NDMsIDAuMDE0OTIyLCAwLjAxNDkwNCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1OTg0LCAwLjAwNjAwNywgMC4wMDYwMSwgMC4wMDYwMTEsIDAuMDA2MDExLCAwLjAwNjAxLCAwLjAwNjAwOSIsIFwKLSAgICAgICAgICAiMC4wMDU4NzYsIDAuMDA1OTQsIDAuMDA1OTUxLCAwLjAwNTk1NSwgMC4wMDU5NTcsIDAuMDA1OTU3LCAwLjAwNTk1NyIsIFwKLSAgICAgICAgICAiMC4wMDU5OTQsIDAuMDA1OTQ2LCAwLjAwNTk2NCwgMC4wMDU5NTIsIDAuMDA1OTUzLCAwLjAwNTk1NCwgMC4wMDU5NTQiLCBcCi0gICAgICAgICAgIjAuMDA2MTU4LCAwLjAwNjAzOSwgMC4wMDYwMDUsIDAuMDA1OTk0LCAwLjAwNTk4MywgMC4wMDU5NzgsIDAuMDA1OTcyIiwgXAotICAgICAgICAgICIwLjAwNjQyMywgMC4wMDYxMTUsIDAuMDA2MDUsIDAuMDA2MDMsIDAuMDA2MDA3LCAwLjAwNTk5NiwgMC4wMDU5ODYiLCBcCi0gICAgICAgICAgIjAuMDA3MjM2LCAwLjAwNjQ1MywgMC4wMDYyNywgMC4wMDYyMDUsIDAuMDA2MTQyLCAwLjAwNjEwOCwgMC4wMDYwNzUiLCBcCi0gICAgICAgICAgIjAuMDA3ODQxLCAwLjAwNjcxLCAwLjAwNjQ1OCwgMC4wMDYzNTcsIDAuMDA2MjM4LCAwLjAwNjIwNCwgMC4wMDYxNTMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDMSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTI4MzYsIDAuMDEyOTI5LCAwLjAxMjkzOSwgMC4wMTI5NDIsIDAuMDEyOTQ0LCAwLjAxMjk0NSwgMC4wMTI5NDciLCBcCi0gICAgICAgICAgIjAuMDEyNzc1LCAwLjAxMjk1OCwgMC4wMTI5ODQsIDAuMDEyOTk2LCAwLjAxMjk5OCwgMC4wMTMwMTEsIDAuMDEzMDExIiwgXAotICAgICAgICAgICIwLjAxMjg1LCAwLjAxMjk2NCwgMC4wMTI5OTIsIDAuMDEzMDAxLCAwLjAxMzAxMywgMC4wMTMwMTMsIDAuMDEzMDE5IiwgXAotICAgICAgICAgICIwLjAxMzE5LCAwLjAxMzA0NiwgMC4wMTMwNTMsIDAuMDEzMDQ5LCAwLjAxMzA0NSwgMC4wMTMwNDUsIDAuMDEzMDQzIiwgXAotICAgICAgICAgICIwLjAxMzQwMSwgMC4wMTMxNDksIDAuMDEzMTE2LCAwLjAxMzEwNCwgMC4wMTMwODksIDAuMDEzMDgxLCAwLjAxMzA3MiIsIFwKLSAgICAgICAgICAiMC4wMTM5OTEsIDAuMDEzMzU0LCAwLjAxMzI1NCwgMC4wMTMyMTIsIDAuMDEzMTg1LCAwLjAxMzE2NSwgMC4wMTMxMjQiLCBcCi0gICAgICAgICAgIjAuMDE0NTk3LCAwLjAxMzYxMSwgMC4wMTM0MjYsIDAuMDEzMzUxLCAwLjAxMzI5NywgMC4wMTMyNTksIDAuMDEzMiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0ODUxLCAwLjAwNDk0LCAwLjAwNDk1MiwgMC4wMDQ5NTYsIDAuMDA0OTU4LCAwLjAwNDk1OSwgMC4wMDQ5NTkiLCBcCi0gICAgICAgICAgIjAuMDA0NzI0LCAwLjAwNDkyLCAwLjAwNDk1OCwgMC4wMDQ5NywgMC4wMDQ5ODEsIDAuMDA0OTg3LCAwLjAwNDk5MiIsIFwKLSAgICAgICAgICAiMC4wMDQ3NTksIDAuMDA0OTEsIDAuMDA0OTUxLCAwLjAwNDk2NSwgMC4wMDQ5NzgsIDAuMDA0OTg0LCAwLjAwNDk5IiwgXAotICAgICAgICAgICIwLjAwNDg5OSwgMC4wMDQ5NDIsIDAuMDA0OTY2LCAwLjAwNDk3NywgMC4wMDQ5OCwgMC4wMDQ5ODcsIDAuMDA0OTkzIiwgXAotICAgICAgICAgICIwLjAwNTE1MywgMC4wMDQ5ODYsIDAuMDA0OTksIDAuMDA0OTksIDAuMDA0OTk1LCAwLjAwNTAxNSwgMC4wMDUwMTUiLCBcCi0gICAgICAgICAgIjAuMDA1ODksIDAuMDA1Mjc0LCAwLjAwNTE3MSwgMC4wMDUxMzYsIDAuMDA1MTA0LCAwLjAwNTA4OSwgMC4wMDUwNzMiLCBcCi0gICAgICAgICAgIjAuMDA2MzQxLCAwLjAwNTQ5NiwgMC4wMDUzMjgsIDAuMDA1Mjg4LCAwLjAwNTE5OSwgMC4wMDUxNjgsIDAuMDA1MTM3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogT0FJMjJYMSAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChPQUkyMlgxKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMzQ2MjA3OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwOTEwMDY4OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDkwODIwMzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA5MTAwNjg7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNTI0LCAwLjAwMDUyNCwgMC4wMDA1MjQsIDAuMDAwNTI0LCAwLjAwMDUyMywgMC4wMDA1MjMsIDAuMDAwNTIzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNTMyLCAwLjAwMDUyNiwgMC4wMDA1MjYsIDAuMDAwNTI2LCAwLjAwMDUyNiwgMC4wMDA1MjYsIDAuMDAwNTI2Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihBMSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwOTM2NjI4OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDkzNjYyODsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA5MzQzNDE7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNTI1LCAwLjAwMDUyNCwgMC4wMDA1MjQsIDAuMDAwNTI0LCAwLjAwMDUyNCwgMC4wMDA1MjQsIDAuMDAwNTI0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNTMxLCAwLjAwMDUyNiwgMC4wMDA1MjYsIDAuMDAwNTI2LCAwLjAwMDUyNiwgMC4wMDA1MjQsIDAuMDAwNTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwODc0MzM3OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDg3MDQ3NDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA4NzQzMzc7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNTc4LCAwLjAwMDU3OSwgMC4wMDA1NzksIDAuMDAwNTc5LCAwLjAwMDU3OSwgMC4wMDA1NzksIDAuMDAwNTc5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNTk2LCAwLjAwMDU5NiwgMC4wMDA1OTYsIDAuMDAwNTk2LCAwLjAwMDU5NiwgMC4wMDA1OTYsIDAuMDAwNTk2Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCMSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwOTQ1MTk4OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDk0NTE5ODsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA5NDUwMDI7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNTc4LCAwLjAwMDU3OSwgMC4wMDA1NzksIDAuMDAwNTc4LCAwLjAwMDU3OSwgMC4wMDA1NzksIDAuMDAwNTc4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNTk1LCAwLjAwMDU5NiwgMC4wMDA1OTYsIDAuMDAwNTk2LCAwLjAwMDU5NiwgMC4wMDA1OTYsIDAuMDAwNTk2Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMTg3NzY5OwotICAgIGZ1bmN0aW9uIDogIighKChCMCtCMSkgKEEwK0ExKSkpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc0OTkxLCAwLjEwODY5NywgMC4yOTkzMDUsIDAuNDY3MjMyLCAwLjY5MTEwMSwgMS4xMzk2OSwgMS40MTg3MSIsIFwKLSAgICAgICAgICAiMC4wODEwODUsIDAuMTE0ODM5LCAwLjMwNTM5OCwgMC40NzM1MDcsIDAuNjk3MzAxLCAxLjE0NDQsIDEuNDI0NTciLCBcCi0gICAgICAgICAgIjAuMDg4NDc1LCAwLjEyMjI4NSwgMC4zMTI5MzksIDAuNDgxMDQ4LCAwLjcwNTAwOCwgMS4xNTI3OCwgMS40MzI5IiwgXAotICAgICAgICAgICIwLjA5NTk0OCwgMC4xMjk1NDIsIDAuMzIwNDgsIDAuNDg4NjI0LCAwLjcxMjM4OSwgMS4xNjAyNCwgMS40NDAxNyIsIFwKLSAgICAgICAgICAiMC4xMDM0NDIsIDAuMTM3MDE4LCAwLjMyODE3NSwgMC40OTYzMTMsIDAuNzIwMDI2LCAxLjE2ODUsIDEuNDQ3MzUiLCBcCi0gICAgICAgICAgIjAuMTE0MDgzLCAwLjE0ODk0OSwgMC4zMzk2NTYsIDAuNTA3OTQ2LCAwLjczMTY4NywgMS4xNzkyOCwgMS40NTkxIiwgXAotICAgICAgICAgICIwLjEyMjQzNCwgMC4xNTg4MTYsIDAuMzUwMjg4LCAwLjUxODM2NCwgMC43NDIzNzQsIDEuMTg4OTcsIDEuNDY5Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE0NzYxMywgMC4yMTgzNTIsIDAuNjE5NDAxLCAwLjk3MzUyMSwgMS40NDUzMywgMi4zODgxNCwgMi45NzgwOSIsIFwKLSAgICAgICAgICAiMC4xNDc2NTEsIDAuMjE4MzY4LCAwLjYxOTQ1OCwgMC45NzMzNTEsIDEuNDQ1MTIsIDIuMzg4MywgMi45Nzc2OCIsIFwKLSAgICAgICAgICAiMC4xNDk2NDEsIDAuMjE5MDc0LCAwLjYxOTQzOSwgMC45NzM1ODUsIDEuNDQ1MjMsIDIuMzg4NDYsIDIuOTc4MTciLCBcCi0gICAgICAgICAgIjAuMTUzMzk3LCAwLjIyMTYzOCwgMC42MTk0MjgsIDAuOTczNTY0LCAxLjQ0NTQ0LCAyLjM4ODYzLCAyLjk3Nzc1IiwgXAotICAgICAgICAgICIwLjE1ODI0NSwgMC4yMjU0NDQsIDAuNjE5NzQ0LCAwLjk3MzUzMywgMS40NDUyLCAyLjM4ODc1LCAyLjk3Nzc0IiwgXAotICAgICAgICAgICIwLjE2NzIwNywgMC4yMzI3NjUsIDAuNjIxNzg1LCAwLjk3MzUxOSwgMS40NDUwOSwgMi4zODgwMiwgMi45NzgwMyIsIFwKLSAgICAgICAgICAiMC4xNzU5ODksIDAuMjQwNDYsIDAuNjI1MTM1LCAwLjk3NDM0MywgMS40NDUyLCAyLjM4ODQ5LCAyLjk3ODA0Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3NTc0MywgMC4xMDg0NDYsIDAuMjkzMjQ5LCAwLjQ1NjAwNCwgMC42NzM0NjYsIDEuMTA4NTUsIDEuMzc5NCIsIFwKLSAgICAgICAgICAiMC4wODI5MiwgMC4xMTU2MzMsIDAuMzAwMzg1LCAwLjQ2MzI1NiwgMC42ODA2MzgsIDEuMTE0OTIsIDEuMzg2MjYiLCBcCi0gICAgICAgICAgIjAuMDkxMDYsIDAuMTIzNzgxLCAwLjMwODYwNywgMC40NzE1NzksIDAuNjg5MjA1LCAxLjEyMzQ1LCAxLjM5NTkzIiwgXAotICAgICAgICAgICIwLjA5OTA3NywgMC4xMzE3NjksIDAuMzE2ODk0LCAwLjQ3OTgxMiwgMC42OTczMTcsIDEuMTMxMzQsIDEuNDA0NDUiLCBcCi0gICAgICAgICAgIjAuMTA3MDk2LCAwLjE0MDAyMywgMC4zMjQ5MTUsIDAuNDg4LCAwLjcwNTIwNSwgMS4xMzk1MSwgMS40MTIzNyIsIFwKLSAgICAgICAgICAiMC4xMTkyNTUsIDAuMTUyOTE4LCAwLjMzNzc4NywgMC41MDA3MDIsIDAuNzE4Mjg5LCAxLjE1MjcyLCAxLjQyNDE1IiwgXAotICAgICAgICAgICIwLjEyODczNiwgMC4xNjQsIDAuMzQ5Mjk2LCAwLjUxMjE1OCwgMC43Mjk3NTksIDEuMTY0MTcsIDEuNDM1OCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMzQ5ODgsIDAuMjAyMjIzLCAwLjU4MzMyOSwgMC45MTg5NDcsIDEuMzY3MTIsIDIuMjYzNDUsIDIuODIyNDkiLCBcCi0gICAgICAgICAgIjAuMTM0ODg4LCAwLjIwMjI1NiwgMC41ODMyMjMsIDAuOTE4OTQzLCAxLjM2NzAxLCAyLjI2MjU0LCAyLjgyNDIxIiwgXAotICAgICAgICAgICIwLjEzNjM2OCwgMC4yMDI2MTUsIDAuNTgzMTkxLCAwLjkxODk5OCwgMS4zNjczNCwgMi4yNjMxNSwgMi44MjM1NiIsIFwKLSAgICAgICAgICAiMC4xMzk2NzcsIDAuMjA0NzIzLCAwLjU4MzIyOCwgMC45MTg5NzEsIDEuMzY3MjYsIDIuMjYzNzcsIDIuODI0MjQiLCBcCi0gICAgICAgICAgIjAuMTQ0MjkzLCAwLjIwODM4NywgMC41ODMzMzMsIDAuOTE5MTE4LCAxLjM2NzUyLCAyLjI2Mzc0LCAyLjgyMzU2IiwgXAotICAgICAgICAgICIwLjE1Mjg5NiwgMC4yMTU0NzQsIDAuNTg1MDk0LCAwLjkxOTI0NSwgMS4zNjY5NCwgMi4yNjI2OCwgMi44MjIzNyIsIFwKLSAgICAgICAgICAiMC4xNjE4NzgsIDAuMjIyOTExLCAwLjU4ODMxOCwgMC45MjAwNDMsIDEuMzY2NzUsIDIuMjYyNjUsIDIuODIyMzMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3MjczMywgMC4xMDYzOTcsIDAuMjk3MDExLCAwLjQ2NTEyOCwgMC42ODkxNzgsIDEuMTM2NTEsIDEuNDE3NDEiLCBcCi0gICAgICAgICAgIjAuMDgwMjAxLCAwLjExMzk3NywgMC4zMDQ1ODQsIDAuNDcyNTAzLCAwLjY5NjQyNywgMS4xNDQ3MSwgMS40MjQwMiIsIFwKLSAgICAgICAgICAiMC4wODk3NDEsIDAuMTIzNDIsIDAuMzE0MDAxLCAwLjQ4MjAxLCAwLjcwNjIzNSwgMS4xNTQxNywgMS40MzMwNiIsIFwKLSAgICAgICAgICAiMC4wOTk1NjUsIDAuMTMzMTY5LCAwLjMyMzcyMywgMC40OTE3MDUsIDAuNzE1NDM5LCAxLjE2MzE1LCAxLjQ0MzI0IiwgXAotICAgICAgICAgICIwLjEwOTUyMiwgMC4xNDI5OTIsIDAuMzMzMzc5LCAwLjUwMTM2MiwgMC43MjUwMTQsIDEuMTczMDYsIDEuNDUyMTIiLCBcCi0gICAgICAgICAgIjAuMTI0ODc0LCAwLjE1ODkzNiwgMC4zNDg4NzYsIDAuNTE2ODM5LCAwLjc0MDY5OSwgMS4xODc4OCwgMS40Njc4IiwgXAotICAgICAgICAgICIwLjEzNjEyOCwgMC4xNzI4OTEsIDAuMzYyNDc4LCAwLjUzMDMxOSwgMC43NTM5ODgsIDEuMjAxMzMsIDEuNDgxMSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNDc2MDgsIDAuMjE4MzgzLCAwLjYxOTQ3NiwgMC45NzM1MjYsIDEuNDQ1MzUsIDIuMzg4NDUsIDIuOTc4MjgiLCBcCi0gICAgICAgICAgIjAuMTQ3NjI4LCAwLjIxODM1MiwgMC42MTk0NzcsIDAuOTczNDgsIDEuNDQ1MzQsIDIuMzg4NTEsIDIuOTc4MDkiLCBcCi0gICAgICAgICAgIjAuMTUwODM2LCAwLjIxOTQ3NSwgMC42MTk0OTUsIDAuOTczNDE5LCAxLjQ0NTIyLCAyLjM4ODc1LCAyLjk3NzgiLCBcCi0gICAgICAgICAgIjAuMTU2NjgyLCAwLjIyMzMzNSwgMC42MTk0NzMsIDAuOTczNDQzLCAxLjQ0NDk3LCAyLjM4ODE5LCAyLjk3ODA2IiwgXAotICAgICAgICAgICIwLjE2Mzk2NywgMC4yMjkwMSwgMC42MTk1MjUsIDAuOTczNDE4LCAxLjQ0NTI2LCAyLjM4ODIsIDIuOTc4MjEiLCBcCi0gICAgICAgICAgIjAuMTc3MTM0LCAwLjI0MDIzNCwgMC42MjIzODYsIDAuOTczNCwgMS40NDUyOCwgMi4zODgwMSwgMi45Nzc4MyIsIFwKLSAgICAgICAgICAiMC4xODkzMDksIDAuMjUxMjIzLCAwLjYyNzAyOCwgMC45NzQyMjksIDEuNDQ0ODYsIDIuMzg4NDksIDIuOTc4MDEiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDcyNzQsIDAuMTA1MzUzLCAwLjI5MDEyNywgMC40NTMwNjUsIDAuNjcwMzgsIDEuMTA1MzksIDEuMzc2MjEiLCBcCi0gICAgICAgICAgIjAuMDc5OTExLCAwLjExMjYwNCwgMC4yOTczODMsIDAuNDYwMjYxLCAwLjY3NzM3MSwgMS4xMTI2NywgMS4zODMyOSIsIFwKLSAgICAgICAgICAiMC4wODc5MjMsIDAuMTIwNjgxLCAwLjMwNTU5NSwgMC40Njg1NzEsIDAuNjg2MDM0LCAxLjEyMDA0LCAxLjM5MzAzIiwgXAotICAgICAgICAgICIwLjA5NTg2NSwgMC4xMjg1OTcsIDAuMzEzODcsIDAuNDc2NzQ4LCAwLjY5NDEyNCwgMS4xMjgxNCwgMS40MDA1MyIsIFwKLSAgICAgICAgICAiMC4xMDM4MjUsIDAuMTM2ODMsIDAuMzIxODIzLCAwLjQ4NDgxLCAwLjcwMjQ0MiwgMS4xMzYzOSwgMS40MDg0NSIsIFwKLSAgICAgICAgICAiMC4xMTU2NjQsIDAuMTQ5NzY0LCAwLjMzNDY1NSwgMC40OTc2MzMsIDAuNzE1MjMyLCAxLjE0OTY4LCAxLjQyMTIzIiwgXAotICAgICAgICAgICIwLjEyNDkxNywgMC4xNjA0NTcsIDAuMzQ2MTA3LCAwLjUwOTUyOCwgMC43MjcxNTEsIDEuMTYxNTksIDEuNDMzMjMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTMwODYxLCAwLjE5ODExMiwgMC41NzkwMDksIDAuOTE0OTM5LCAxLjM2MjgzLCAyLjI1ODg0LCAyLjgxNzc4IiwgXAotICAgICAgICAgICIwLjEzMDg1MiwgMC4xOTgwOTEsIDAuNTc4OTIzLCAwLjkxNDU1LCAxLjM2MjM5LCAyLjI1ODgsIDIuODE4MzIiLCBcCi0gICAgICAgICAgIjAuMTMyMjkxLCAwLjE5ODQ4LCAwLjU3ODkwNiwgMC45MTQ2MTEsIDEuMzYyOTgsIDIuMjU4OTIsIDIuODE4NzYiLCBcCi0gICAgICAgICAgIjAuMTM1NzY1LCAwLjIwMDY3MywgMC41Nzg5MzgsIDAuOTE0NTksIDEuMzYyNjgsIDIuMjU4MDQsIDIuODE4OTQiLCBcCi0gICAgICAgICAgIjAuMTQwNDc2LCAwLjIwNDM4NCwgMC41NzkwMiwgMC45MTQ1NjYsIDEuMzYyODksIDIuMjU4MjIsIDIuODE3NzMiLCBcCi0gICAgICAgICAgIjAuMTQ5MjI3LCAwLjIxMTc2NCwgMC41ODA4MDUsIDAuOTE0NzY3LCAxLjM2MjQ3LCAyLjI1ODAzLCAyLjgxNzYyIiwgXAotICAgICAgICAgICIwLjE1ODE5OSwgMC4yMTkwNDMsIDAuNTg0MDQ3LCAwLjkxNTY2NiwgMS4zNjIyNywgMi4yNTgwMywgMi44MTc3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjkxMjUsIDAuMTAzMTEsIDAuMjk1Mzg0LCAwLjQ2NDU1NSwgMC42OTAwMzIsIDEuMTQwNTYsIDEuNDIxOTMiLCBcCi0gICAgICAgICAgIjAuMDc1MzgyLCAwLjEwOTM5OCwgMC4zMDE3NDgsIDAuNDcwOTcsIDAuNjk2MjcsIDEuMTQ2NzMsIDEuNDI5MjIiLCBcCi0gICAgICAgICAgIjAuMDgyNjU5LCAwLjExNjc1NywgMC4zMDkzMTYsIDAuNDc4NDk5LCAwLjcwMzk1NywgMS4xNTQ1OCwgMS40MzY5IiwgXAotICAgICAgICAgICIwLjA5MDA5NCwgMC4xMjQxMSwgMC4zMTY3OTUsIDAuNDg2MTMzLCAwLjcxMTM2NSwgMS4xNjIwMiwgMS40NDM2IiwgXAotICAgICAgICAgICIwLjA5NzQ1NSwgMC4xMzE1NjQsIDAuMzI0MjcxLCAwLjQ5MzU0LCAwLjcxODg2MywgMS4xNjkzOSwgMS40NTEzNyIsIFwKLSAgICAgICAgICAiMC4xMDc2ODUsIDAuMTQzNTU5LCAwLjMzNjM1MywgMC41MDU3OTIsIDAuNzMxMTY2LCAxLjE4MTYzLCAxLjQ2MzE1IiwgXAotICAgICAgICAgICIwLjExNTYyMSwgMC4xNTMxMjEsIDAuMzQ2NTQ4LCAwLjUxNTg4MiwgMC43NDE0OTQsIDEuMTkyNTMsIDEuNDczNTkiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTQxMjcyLCAwLjIxMjQyOSwgMC42MTYwNzYsIDAuOTcyMzQ0LCAxLjQ0NzUzLCAyLjM5NzUxLCAyLjk5MTEzIiwgXAotICAgICAgICAgICIwLjE0MTM1LCAwLjIxMjQzMywgMC42MTYwNDksIDAuOTcyNDAzLCAxLjQ0NzMyLCAyLjM5NzEsIDIuOTkzMTUiLCBcCi0gICAgICAgICAgIjAuMTQzNTE3LCAwLjIxMzI3LCAwLjYxNjExNiwgMC45NzIyMDYsIDEuNDQ3NDksIDIuMzk3ODksIDIuOTkxMDIiLCBcCi0gICAgICAgICAgIjAuMTQ3NTQ5LCAwLjIxNTk4MywgMC42MTYwNjQsIDAuOTcyNDQ3LCAxLjQ0NzM5LCAyLjM5NzU4LCAyLjk5MTExIiwgXAotICAgICAgICAgICIwLjE1MjYzLCAwLjIxOTg2OCwgMC42MTYzNCwgMC45NzIyNjEsIDEuNDQ3NCwgMi4zOTc0MiwgMi45OTE1NSIsIFwKLSAgICAgICAgICAiMC4xNjE3NTUsIDAuMjI3NzcsIDAuNjE4Njk0LCAwLjk3MjM3OCwgMS40NDcyNywgMi4zOTczMywgMi45OTA5IiwgXAotICAgICAgICAgICIwLjE3MDc3NCwgMC4yMzUyODUsIDAuNjIxODQxLCAwLjk3MzQ1NywgMS40NDczMSwgMi4zOTcyNSwgMi45OTE0NCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzA3OCwgMC4xMDM0MTcsIDAuMjg4MzI0LCAwLjQ1MTE2NywgMC42NjgzNDgsIDEuMTAyOTcsIDEuMzc1MTMiLCBcCi0gICAgICAgICAgIjAuMDc4MzksIDAuMTExMDg0LCAwLjI5NTg3MywgMC40NTg5NjcsIDAuNjc2MTcsIDEuMTExMTUsIDEuMzgxNjYiLCBcCi0gICAgICAgICAgIjAuMDg4MTY1LCAwLjEyMDgzMSwgMC4zMDUzNywgMC40NjgyMjEsIDAuNjg1MzI2LCAxLjEyMDA0LCAxLjM5MjIxIiwgXAotICAgICAgICAgICIwLjA5NzkxMiwgMC4xMzA0MjEsIDAuMzE1MjUyLCAwLjQ3ODEyMywgMC42OTUyNDQsIDEuMTI5NjEsIDEuNDAyMDciLCBcCi0gICAgICAgICAgIjAuMTA3OTk5LCAwLjE0MDQ1OCwgMC4zMjQ4NzgsIDAuNDg3ODA3LCAwLjcwNTMwMywgMS4xMzk1LCAxLjQxMDM4IiwgXAotICAgICAgICAgICIwLjEyMzcxMywgMC4xNTY2NzEsIDAuMzQwNjg4LCAwLjUwMTQxNCwgMC43MjA1NDMsIDEuMTU0OSwgMS40MjYyOSIsIFwKLSAgICAgICAgICAiMC4xMzU0MzIsIDAuMTcwODk5LCAwLjM1NDY2NSwgMC41MTcyNDksIDAuNzM0MzU5LCAxLjE2ODUzLCAxLjQ0MDAxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEzNDk0LCAwLjIwMjI5NSwgMC41ODM0NCwgMC45MTkyMTUsIDEuMzY2NzUsIDIuMjYyODEsIDIuODIzNDciLCBcCi0gICAgICAgICAgIjAuMTM0ODE4LCAwLjIwMjE1MSwgMC41ODMyMDUsIDAuOTE5MTQxLCAxLjM2NzI5LCAyLjI2MzQyLCAyLjgyMjg2IiwgXAotICAgICAgICAgICIwLjEzNzc0LCAwLjIwMzA2NiwgMC41ODMyODQsIDAuOTE4OTYxLCAxLjM2Njk0LCAyLjI2MjUyLCAyLjgyMzQ2IiwgXAotICAgICAgICAgICIwLjE0MzU5NSwgMC4yMDY5MzMsIDAuNTgzMTg3LCAwLjkxOTM5MiwgMS4zNjY4NSwgMi4yNjI4MiwgMi44MjMzNCIsIFwKLSAgICAgICAgICAiMC4xNTA2ODQsIDAuMjEyNTk2LCAwLjU4MzM1NCwgMC45MTkyMjIsIDEuMzY3MzUsIDIuMjYzNDksIDIuODIyNTEiLCBcCi0gICAgICAgICAgIjAuMTYzNjA0LCAwLjIyMzQ2NCwgMC41ODYwOTksIDAuOTE4ODk0LCAxLjM2NzA2LCAyLjI2NDIxLCAyLjgyMjczIiwgXAotICAgICAgICAgICIwLjE3NTc2OSwgMC4yMzQ0MDEsIDAuNTkwNzc4LCAwLjkxOTgzMSwgMS4zNjY5LCAyLjI2MjcsIDIuODIyNzQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2Njg1MywgMC4xMDA4MywgMC4yOTMxMSwgMC40NjIzNCwgMC42ODc2NzQsIDEuMTM5MDUsIDEuNDIwMTYiLCBcCi0gICAgICAgICAgIjAuMDc0MzM3LCAwLjEwODM3NCwgMC4zMDA3MSwgMC40Njk5MDcsIDAuNjk1MzgyLCAxLjE0NTk5LCAxLjQyNzIzIiwgXAotICAgICAgICAgICIwLjA4Mzg4NSwgMC4xMTc5MDIsIDAuMzEwMTQ1LCAwLjQ3OTQ2MywgMC43MDQ3OTYsIDEuMTU1MzksIDEuNDM2ODYiLCBcCi0gICAgICAgICAgIjAuMDkzNzEzLCAwLjEyNzYyMSwgMC4zMTk4ODYsIDAuNDg5MDY4LCAwLjcxNDM2LCAxLjE2NDgsIDEuNDQ2NiIsIFwKLSAgICAgICAgICAiMC4xMDM2MTYsIDAuMTM3MzczLCAwLjMyOTU0NSwgMC40OTg2MzEsIDAuNzIzOTY5LCAxLjE3NDQ4LCAxLjQ1NjQxIiwgXAotICAgICAgICAgICIwLjExODA5NywgMC4xNTMyNDYsIDAuMzQ0OTkxLCAwLjUxNDIzOCwgMC43MzkzOSwgMS4xODk3MSwgMS40NzEyMSIsIFwKLSAgICAgICAgICAiMC4xMjg5MTgsIDAuMTY2OTIsIDAuMzU4NjIzLCAwLjUyNzY2OSwgMC43NTI4MzcsIDEuMjAzMzksIDEuNDg0NjciKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTQxMzEsIDAuMjEyNDg1LCAwLjYxNjAyLCAwLjk3MjQxLCAxLjQ0NzQ2LCAyLjM5NzQ2LCAyLjk5MTU4IiwgXAotICAgICAgICAgICIwLjE0MTM1OCwgMC4yMTI0MzMsIDAuNjE2MDE5LCAwLjk3MjM3NCwgMS40NDczNywgMi4zOTc4NCwgMi45OTEyOSIsIFwKLSAgICAgICAgICAiMC4xNDQ5NSwgMC4yMTM2NzQsIDAuNjE2MDgxLCAwLjk3MjM1NCwgMS40NDc0OSwgMi4zOTc0NiwgMi45OTEwMyIsIFwKLSAgICAgICAgICAiMC4xNTExOCwgMC4yMTc4MzQsIDAuNjE2MDQ1LCAwLjk3MjMzMywgMS40NDczNywgMi4zOTcyMiwgMi45OTA5NiIsIFwKLSAgICAgICAgICAiMC4xNTg3MzcsIDAuMjIzNzQ2LCAwLjYxNjE4NywgMC45NzIyMTYsIDEuNDQ3MjYsIDIuMzk3MjYsIDIuOTkxNjIiLCBcCi0gICAgICAgICAgIjAuMTcyMTksIDAuMjM1MjgsIDAuNjE5MDkyLCAwLjk3MjM2MywgMS40NDcxOSwgMi4zOTcyLCAyLjk5MDkxIiwgXAotICAgICAgICAgICIwLjE4NDY4NCwgMC4yNDY0NjcsIDAuNjIzODE0LCAwLjk3MzA1OCwgMS40NDczLCAyLjM5NzE4LCAyLjk5MTQzIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2NzY4NSwgMC4xMDAzMDUsIDAuMjg1MTExLCAwLjQ0NzkyLCAwLjY2NDk0OCwgMS4wOTkzOCwgMS4zNzEwNSIsIFwKLSAgICAgICAgICAiMC4wNzUyOTEsIDAuMTA4MDEyLCAwLjI5Mjc5MSwgMC40NTU2NjUsIDAuNjczMDQsIDEuMTA3ODcsIDEuMzc4MjkiLCBcCi0gICAgICAgICAgIjAuMDg0OTk4LCAwLjExNzUwNCwgMC4zMDIxODQsIDAuNDY1MTM2LCAwLjY4MjIzLCAxLjExNjcyLCAxLjM4ODkxIiwgXAotICAgICAgICAgICIwLjA5NDY5MiwgMC4xMjc0NTgsIDAuMzExODc5LCAwLjQ3NDcxNCwgMC42OTE4NDUsIDEuMTI2MiwgMS4zOTg2MSIsIFwKLSAgICAgICAgICAiMC4xMDQ3NTgsIDAuMTM3MjQxLCAwLjMyMTc0MiwgMC40ODQ2OTksIDAuNzAyMTg4LCAxLjEzNjQyLCAxLjQwNzI0IiwgXAotICAgICAgICAgICIwLjEyMDA3OSwgMC4xNTM0MDksIDAuMzM3NTksIDAuNDk4Mjg1LCAwLjcxNzQzNywgMS4xNTE4LCAxLjQyMzE3IiwgXAotICAgICAgICAgICIwLjEzMTM0MSwgMC4xNjc0NDcsIDAuMzUxNDM1LCAwLjUxNDEzNywgMC43MzEyMTMsIDEuMTY1MzgsIDEuNDM2NzYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTMwODI0LCAwLjE5ODEwOCwgMC41NzkwMjYsIDAuOTE0ODU0LCAxLjM2MzEyLCAyLjI1Nzg3LCAyLjgxODgzIiwgXAotICAgICAgICAgICIwLjEzMDcxNCwgMC4xOTc5ODksIDAuNTc4ODc4LCAwLjkxNDc3NSwgMS4zNjI4NSwgMi4yNTg3NCwgMi44MTg1NSIsIFwKLSAgICAgICAgICAiMC4xMzM3NCwgMC4xOTg5MjgsIDAuNTc4ODY2LCAwLjkxNDUzMywgMS4zNjI0MiwgMi4yNTg4MywgMi44MTg1MSIsIFwKLSAgICAgICAgICAiMC4xMzk3MjcsIDAuMjAyNzY3LCAwLjU3ODg2OCwgMC45MTQ1MDQsIDEuMzYyMzYsIDIuMjU4MTcsIDIuODE4NTgiLCBcCi0gICAgICAgICAgIjAuMTQ3MDExLCAwLjIwODU4NSwgMC41NzkwMDgsIDAuOTE0ODQsIDEuMzYyODIsIDIuMjU4ODEsIDIuODE3NzYiLCBcCi0gICAgICAgICAgIjAuMTYwMTA3LCAwLjIxOTY0NCwgMC41ODE3NzEsIDAuOTE0NDc2LCAxLjM2MzM3LCAyLjI1OTQ1LCAyLjgxNzY3IiwgXAotICAgICAgICAgICIwLjE3MjYsIDAuMjMwNSwgMC41ODY0MSwgMC45MTU2NTQsIDEuMzYyMzksIDIuMjU4MDUsIDIuODE3ODIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0NDk2LCAwLjAwNDQ5NiwgMC4wMDQ0OTYsIDAuMDA0NDk2LCAwLjAwNDQ5NSwgMC4wMDQ0OTQsIDAuMDA0NDkyIiwgXAotICAgICAgICAgICIwLjAwNDQ3NCwgMC4wMDQ0ODEsIDAuMDA0NDg0LCAwLjAwNDQ4NSwgMC4wMDQ0ODksIDAuMDA0NDgxLCAwLjAwNDQ4MyIsIFwKLSAgICAgICAgICAiMC4wMDQ0NzUsIDAuMDA0NDc4LCAwLjAwNDQ4MywgMC4wMDQ0ODMsIDAuMDA0NDg2LCAwLjAwNDQ4MiwgMC4wMDQ0ODQiLCBcCi0gICAgICAgICAgIjAuMDA0NDg4LCAwLjAwNDQ4NywgMC4wMDQ0ODYsIDAuMDA0NDg2LCAwLjAwNDQ4NCwgMC4wMDQ0ODIsIDAuMDA0NDgyIiwgXAotICAgICAgICAgICIwLjAwNDUxNCwgMC4wMDQ1MDYsIDAuMDA0NDk2LCAwLjAwNDQ5MiwgMC4wMDQ0ODksIDAuMDA0NDg1LCAwLjAwNDQ4MSIsIFwKLSAgICAgICAgICAiMC4wMDQ1ODQsIDAuMDA0NTU1LCAwLjAwNDUxOCwgMC4wMDQ1MDgsIDAuMDA0NSwgMC4wMDQ0OTIsIDAuMDA0NDg4IiwgXAotICAgICAgICAgICIwLjAwNDY1OSwgMC4wMDQ2MTYsIDAuMDA0NTQ5LCAwLjAwNDUyOCwgMC4wMDQ1MTQsIDAuMDA0NTAxLCAwLjAwNDQ5OCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDk4OSwgMC4wMDA5OSwgMC4wMDA5OTEsIDAuMDAwOTkyLCAwLjAwMDk5MSwgMC4wMDA5OTEsIDAuMDAwOTkxIiwgXAotICAgICAgICAgICIwLjAwMDk2MiwgMC4wMDA5NjcsIDAuMDAwOTc1LCAwLjAwMDk3NywgMC4wMDA5NzgsIDAuMDAwOTc4LCAwLjAwMDk3OCIsIFwKLSAgICAgICAgICAiMC4wMDA5NDgsIDAuMDAwOTU2LCAwLjAwMDk3LCAwLjAwMDk3MywgMC4wMDA5NzQsIDAuMDAwOTc1LCAwLjAwMDk3NSIsIFwKLSAgICAgICAgICAiMC4wMDA5NDksIDAuMDAwOTU2LCAwLjAwMDk2OCwgMC4wMDA5NzEsIDAuMDAwOTczLCAwLjAwMDk3NSwgMC4wMDA5NzUiLCBcCi0gICAgICAgICAgIjAuMDAwOTY0LCAwLjAwMDk2NiwgMC4wMDA5NzIsIDAuMDAwOTc0LCAwLjAwMDk3NSwgMC4wMDA5NzUsIDAuMDAwOTc1IiwgXAotICAgICAgICAgICIwLjAwMTAwNywgMC4wMDA5OTksIDAuMDAwOTg1LCAwLjAwMDk4MiwgMC4wMDA5ODEsIDAuMDAwOTc5LCAwLjAwMDk3OCIsIFwKLSAgICAgICAgICAiMC4wMDEwNzMsIDAuMDAxMDQ2LCAwLjAwMTAwOSwgMC4wMDA5OTgsIDAuMDAwOTkyLCAwLjAwMDk4NiwgMC4wMDA5ODMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0MDQ2LCAwLjAwNDA0NywgMC4wMDQwNDcsIDAuMDA0MDQ3LCAwLjAwNDA0NiwgMC4wMDQwNDUsIDAuMDA0MDQ1IiwgXAotICAgICAgICAgICIwLjAwNDAyNywgMC4wMDQwMzEsIDAuMDA0MDM1LCAwLjAwNDAzNSwgMC4wMDQwMzUsIDAuMDA0MDM0LCAwLjAwNDAzNCIsIFwKLSAgICAgICAgICAiMC4wMDQwNDUsIDAuMDA0MDQyLCAwLjAwNDAzOSwgMC4wMDQwMzcsIDAuMDA0MDM2LCAwLjAwNDAzNCwgMC4wMDQwMzMiLCBcCi0gICAgICAgICAgIjAuMDA0MDc2LCAwLjAwNDA2NywgMC4wMDQwNDksIDAuMDA0MDQ0LCAwLjAwNDA0MSwgMC4wMDQwMzYsIDAuMDA0MDM0IiwgXAotICAgICAgICAgICIwLjAwNDEyOSwgMC4wMDQxMDMsIDAuMDA0MDY2LCAwLjAwNDA1NiwgMC4wMDQwNDgsIDAuMDA0MDQsIDAuMDA0MDM3IiwgXAotICAgICAgICAgICIwLjAwNDIzOCwgMC4wMDQxODYsIDAuMDA0MTAzLCAwLjAwNDA4MywgMC4wMDQwNjYsIDAuMDA0MDUyLCAwLjAwNDA0NyIsIFwKLSAgICAgICAgICAiMC4wMDQzNTYsIDAuMDA0Mjc1LCAwLjAwNDE0NywgMC4wMDQxMSwgMC4wMDQwOTIsIDAuMDA0MDY1LCAwLjAwNDA1NyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDY5MiwgMC4wMDA2OTYsIDAuMDAwNzAxLCAwLjAwMDcwMiwgMC4wMDA3MDMsIDAuMDAwNzAzLCAwLjAwMDcwMyIsIFwKLSAgICAgICAgICAiMC4wMDA2NjMsIDAuMDAwNjc5LCAwLjAwMDcwMiwgMC4wMDA3MDcsIDAuMDAwNzEsIDAuMDAwNzEyLCAwLjAwMDcxMyIsIFwKLSAgICAgICAgICAiMC4wMDA2MywgMC4wMDA2NTMsIDAuMDAwNjkyLCAwLjAwMDcwMSwgMC4wMDA3MDYsIDAuMDAwNzEsIDAuMDAwNzEyIiwgXAotICAgICAgICAgICIwLjAwMDYxOCwgMC4wMDA2NCwgMC4wMDA2ODUsIDAuMDAwNjk2LCAwLjAwMDcwMywgMC4wMDA3MDksIDAuMDAwNzEiLCBcCi0gICAgICAgICAgIjAuMDAwNjI0LCAwLjAwMDY0MiwgMC4wMDA2ODMsIDAuMDAwNjk1LCAwLjAwMDcwMiwgMC4wMDA3MDgsIDAuMDAwNzEiLCBcCi0gICAgICAgICAgIjAuMDAwNjU2LCAwLjAwMDY2MywgMC4wMDA2ODgsIDAuMDAwNjk4LCAwLjAwMDcwNCwgMC4wMDA3MDksIDAuMDAwNzExIiwgXAotICAgICAgICAgICIwLjAwMDcxNiwgMC4wMDA3MDIsIDAuMDAwNzA1LCAwLjAwMDcwOSwgMC4wMDA3MTIsIDAuMDAwNzE0LCAwLjAwMDcxNSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDMwNiwgMC4wMDMwNjMsIDAuMDAzMDY2LCAwLjAwMzA2NywgMC4wMDMwNjcsIDAuMDAzMDY4LCAwLjAwMzA2OCIsIFwKLSAgICAgICAgICAiMC4wMDMwNDQsIDAuMDAzMDU0LCAwLjAwMzA3LCAwLjAwMzA3MywgMC4wMDMwNzQsIDAuMDAzMDc2LCAwLjAwMzA3NiIsIFwKLSAgICAgICAgICAiMC4wMDMwMzIsIDAuMDAzMDQ1LCAwLjAwMzA2NiwgMC4wMDMwNzEsIDAuMDAzMDc2LCAwLjAwMzA3OCwgMC4wMDMwNzUiLCBcCi0gICAgICAgICAgIjAuMDAzMDQsIDAuMDAzMDQ5LCAwLjAwMzA2NywgMC4wMDMwNzIsIDAuMDAzMDc0LCAwLjAwMzA3NiwgMC4wMDMwNzciLCBcCi0gICAgICAgICAgIjAuMDAzMDYyLCAwLjAwMzA2MywgMC4wMDMwNzMsIDAuMDAzMDc2LCAwLjAwMzA3NywgMC4wMDMwNzksIDAuMDAzMDc5IiwgXAotICAgICAgICAgICIwLjAwMzEyNSwgMC4wMDMxMDksIDAuMDAzMDkxLCAwLjAwMzA5LCAwLjAwMzA4NiwgMC4wMDMwODQsIDAuMDAzMDgzIiwgXAotICAgICAgICAgICIwLjAwMzIwMSwgMC4wMDMxNjUsIDAuMDAzMTE4LCAwLjAwMzEwNywgMC4wMDMwOTksIDAuMDAzMDkyLCAwLjAwMzA5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwOTksIDAuMDAwOTkxLCAwLjAwMDk5MiwgMC4wMDA5OTMsIDAuMDAwOTkzLCAwLjAwMDk5MiwgMC4wMDA5OTIiLCBcCi0gICAgICAgICAgIjAuMDAwOTcxLCAwLjAwMDk3NCwgMC4wMDA5NzgsIDAuMDAwOTc5LCAwLjAwMDk4LCAwLjAwMDk4LCAwLjAwMDk4IiwgXAotICAgICAgICAgICIwLjAwMDk4NywgMC4wMDA5ODQsIDAuMDAwOTg1LCAwLjAwMDk4MywgMC4wMDA5ODIsIDAuMDAwOTgxLCAwLjAwMDk4IiwgXAotICAgICAgICAgICIwLjAwMTAzOSwgMC4wMDEwMjQsIDAuMDAwOTk0LCAwLjAwMDk4OCwgMC4wMDA5ODYsIDAuMDAwOTgzLCAwLjAwMDk4MSIsIFwKLSAgICAgICAgICAiMC4wMDEwOTMsIDAuMDAxMDY1LCAwLjAwMTAxNywgMC4wMDEwMDUsIDAuMDAwOTk3LCAwLjAwMDk4OSwgMC4wMDA5ODciLCBcCi0gICAgICAgICAgIjAuMDAxMiwgMC4wMDExNDYsIDAuMDAxMDU1LCAwLjAwMTAyOCwgMC4wMDEwMTYsIDAuMDAxMDAyLCAwLjAwMDk5NyIsIFwKLSAgICAgICAgICAiMC4wMDEzMjQsIDAuMDAxMjM3LCAwLjAwMTEsIDAuMDAxMDYyLCAwLjAwMTA0LCAwLjAwMTAxNywgMC4wMDEwMDkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyNjA2LCAwLjAwMjYxLCAwLjAwMjYxNSwgMC4wMDI2MTYsIDAuMDAyNjE3LCAwLjAwMjYxNywgMC4wMDI2MTciLCBcCi0gICAgICAgICAgIjAuMDAyNTk2LCAwLjAwMjYwNSwgMC4wMDI2MTksIDAuMDAyNjIyLCAwLjAwMjYyNCwgMC4wMDI2MjYsIDAuMDAyNjI2IiwgXAotICAgICAgICAgICIwLjAwMjYwNSwgMC4wMDI2MTIsIDAuMDAyNjIxLCAwLjAwMjYyNCwgMC4wMDI2MjUsIDAuMDAyNjI2LCAwLjAwMjYyNyIsIFwKLSAgICAgICAgICAiMC4wMDI2MzMsIDAuMDAyNjMsIDAuMDAyNjMsIDAuMDAyNjI5LCAwLjAwMjYyOSwgMC4wMDI2MjksIDAuMDAyNjI5IiwgXAotICAgICAgICAgICIwLjAwMjY4MiwgMC4wMDI2NjMsIDAuMDAyNjQ1LCAwLjAwMjYzNywgMC4wMDI2MzUsIDAuMDAyNjMyLCAwLjAwMjYzMyIsIFwKLSAgICAgICAgICAiMC4wMDI3ODksIDAuMDAyNzQxLCAwLjAwMjY3NywgMC4wMDI2NjUsIDAuMDAyNjUxLCAwLjAwMjY0MiwgMC4wMDI2NCIsIFwKLSAgICAgICAgICAiMC4wMDI5MDcsIDAuMDAyODI2LCAwLjAwMjcxNiwgMC4wMDI2OTQsIDAuMDAyNjcxLCAwLjAwMjY1NSwgMC4wMDI2NSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDY4LCAwLjAwMDY4NSwgMC4wMDA2OTEsIDAuMDAwNjkyLCAwLjAwMDY5MiwgMC4wMDA2OTIsIDAuMDAwNjkyIiwgXAotICAgICAgICAgICIwLjAwMDY2NCwgMC4wMDA2NzYsIDAuMDAwNjk1LCAwLjAwMDY5OSwgMC4wMDA3MDEsIDAuMDAwNzAzLCAwLjAwMDcwMyIsIFwKLSAgICAgICAgICAiMC4wMDA2NjQsIDAuMDAwNjgzLCAwLjAwMDY5NywgMC4wMDA3MDEsIDAuMDAwNzAzLCAwLjAwMDcwNSwgMC4wMDA3MDUiLCBcCi0gICAgICAgICAgIjAuMDAwNzAzLCAwLjAwMDY5MywgMC4wMDA3MDYsIDAuMDAwNzA2LCAwLjAwMDcwNywgMC4wMDA3MDcsIDAuMDAwNzA3IiwgXAotICAgICAgICAgICIwLjAwMDc0OCwgMC4wMDA3MzUsIDAuMDAwNzIsIDAuMDAwNzE2LCAwLjAwMDcxMywgMC4wMDA3MTEsIDAuMDAwNzExIiwgXAotICAgICAgICAgICIwLjAwMDg0MywgMC4wMDA4MDMsIDAuMDAwNzUzLCAwLjAwMDczNSwgMC4wMDA3MjksIDAuMDAwNzIxLCAwLjAwMDcxOSIsIFwKLSAgICAgICAgICAiMC4wMDA5NjMsIDAuMDAwODg2LCAwLjAwMDc4NywgMC4wMDA3NjcsIDAuMDAwNzQ5LCAwLjAwMDczNCwgMC4wMDA3MjkiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBPQUkyMlgyICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKE9BSTIyWDIpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC42OTI4Mjk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE4NDI0ODsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE4Mzg4NzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE4NDI0ODsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDEwNDksIDAuMDAxMDQ4LCAwLjAwMTA0NywgMC4wMDEwNDcsIDAuMDAxMDQ3LCAwLjAwMTA0NywgMC4wMDEwNDciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDEwNjYsIDAuMDAxMDUzLCAwLjAwMTA1MiwgMC4wMDEwNTIsIDAuMDAxMDUyLCAwLjAwMTA1MywgMC4wMDEwNTIiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEExKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE3NjE3NzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE3NjE3NzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE3NTc1NzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDEwNDksIDAuMDAxMDQ4LCAwLjAwMTA0OCwgMC4wMDEwNDgsIDAuMDAxMDQ4LCAwLjAwMTA0OCwgMC4wMDEwNDgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDEwNjQsIDAuMDAxMDUzLCAwLjAwMTA1MiwgMC4wMDEwNTEsIDAuMDAxMDUxLCAwLjAwMTA1MiwgMC4wMDEwNDkiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE3OTc4OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTc5MDExOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTc5Nzg7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwOTY0LCAwLjAwMDk2NiwgMC4wMDA5NjUsIDAuMDAwOTY1LCAwLjAwMDk2NiwgMC4wMDA5NjYsIDAuMDAwOTY3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxMTkxLCAwLjAwMTE5MywgMC4wMDExOTMsIDAuMDAxMTkyLCAwLjAwMTE5MiwgMC4wMDExOTIsIDAuMDAxMTkyIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCMSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNzIyNjk7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNzIyNjk7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNzIyNTc7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwOTY0LCAwLjAwMDk2NSwgMC4wMDA5NjUsIDAuMDAwOTY0LCAwLjAwMDk2NSwgMC4wMDA5NjQsIDAuMDAwOTY2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxMTkxLCAwLjAwMTE5MSwgMC4wMDExOTEsIDAuMDAxMTkyLCAwLjAwMTE5MiwgMC4wMDExOTEsIDAuMDAxMTkyIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMzc1NjgzOwotICAgIGZ1bmN0aW9uIDogIighKChCMCtCMSkgKEEwK0ExKSkpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQ2MTQyLCAwLjE4NzUxNSwgMC4zMDA2MTYsIDAuNDQxOTY2LCAwLjU4Mjk3NSwgMC43MjQyMzgsIDAuODY1ODQzIiwgXAotICAgICAgICAgICIwLjA1MjE5OSwgMC4xOTM3MjksIDAuMzA2NzU5LCAwLjQ0Nzk4NiwgMC41ODkxMzEsIDAuNzMwMTA1LCAwLjg3MDkzIiwgXAotICAgICAgICAgICIwLjA1OTU0NiwgMC4yMDEyNjUsIDAuMzE0Mjc0LCAwLjQ1NTU2OSwgMC41OTY4MDgsIDAuNzM3NTE3LCAwLjg3OTY2MyIsIFwKLSAgICAgICAgICAiMC4wNjY3NSwgMC4yMDg4MTIsIDAuMzIxODI5LCAwLjQ2MzExOCwgMC42MDQyMzIsIDAuNzQ1MDc0LCAwLjg4NjA1NyIsIFwKLSAgICAgICAgICAiMC4wNzI4NTIsIDAuMjE1OTMxLCAwLjMyOTM2MSwgMC40NzA2OTQsIDAuNjExOTM3LCAwLjc1MzAwMiwgMC44OTQ0ODYiLCBcCi0gICAgICAgICAgIjAuMDgwOTk4LCAwLjIyODE1NywgMC4zNDEwMjgsIDAuNDgyNzI2LCAwLjYyMzc3NiwgMC43NjQ3OTQsIDAuOTA1NzU5IiwgXAotICAgICAgICAgICIwLjA4NzI2MSwgMC4yMzg1MDYsIDAuMzUxNjMxLCAwLjQ5MzI2NywgMC42MzQzMSwgMC43NzUzNzcsIDAuOTE2MTg5Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4ODIzMSwgMC4zODY1MDgsIDAuNjI1MzEzLCAwLjkyMzY5NiwgMS4yMjIzLCAxLjUyMDQ4LCAxLjgxODgzIiwgXAotICAgICAgICAgICIwLjA4ODgxNCwgMC4zODY1NjEsIDAuNjI1MjA1LCAwLjkyMzU5MSwgMS4yMjE5MiwgMS41MjAxNywgMS44MTg2MyIsIFwKLSAgICAgICAgICAiMC4wOTI0MTEsIDAuMzg2NTY4LCAwLjYyNTI4MiwgMC45MjM3MDIsIDEuMjIyMjEsIDEuNTIwMTQsIDEuODE4NzQiLCBcCi0gICAgICAgICAgIjAuMDk3NTM1LCAwLjM4NzE3NCwgMC42MjUyMjcsIDAuOTIzNjksIDEuMjIyMjUsIDEuNTIwMTUsIDEuODE4OTEiLCBcCi0gICAgICAgICAgIjAuMTAzNTksIDAuMzg4OTc4LCAwLjYyNTQ4NCwgMC45MjM3NDIsIDEuMjIyMTcsIDEuNTIwMiwgMS44MTg4MiIsIFwKLSAgICAgICAgICAiMC4xMTQwMzUsIDAuMzkzOTM5LCAwLjYyNzU0MSwgMC45MjM5NDEsIDEuMjIyMTgsIDEuNTIwMjEsIDEuODE4ODgiLCBcCi0gICAgICAgICAgIjAuMTIyOTUxLCAwLjM5OTQ4NCwgMC42MzA3NjEsIDAuOTI1MjE5LCAxLjIyMjM0LCAxLjUyMDI0LCAxLjgxODgzIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0Njg2OSwgMC4xODIxMDMsIDAuMjkyMjY3LCAwLjQyOTgzMiwgMC41Njc2NDEsIDAuNzA1MTYxLCAwLjg0MjU1NiIsIFwKLSAgICAgICAgICAiMC4wNTM5NjIsIDAuMTg5MjI4LCAwLjI5OTIzNywgMC40MzY3MjksIDAuNTc0MzQxLCAwLjcxMTc0OSwgMC44NDk0MzUiLCBcCi0gICAgICAgICAgIjAuMDYyMTM4LCAwLjE5NzI0OSwgMC4zMDc0MzMsIDAuNDQ0OTExLCAwLjU4MzA2NCwgMC43MjAwNDIsIDAuODU4MzU1IiwgXAotICAgICAgICAgICIwLjA3MDAyLCAwLjIwNTMwMiwgMC4zMTU0MzEsIDAuNDUzMjI4LCAwLjU5MDYzOCwgMC43MjgxNjgsIDAuODY1OTQ0IiwgXAotICAgICAgICAgICIwLjA3NzAxMiwgMC4yMTMyMTksIDAuMzIzMzY2LCAwLjQ2MTE2NiwgMC41OTg4MzUsIDAuNzM2Mjc2LCAwLjg3NDAxMSIsIFwKLSAgICAgICAgICAiMC4wODY1NTksIDAuMjI2MDk0LCAwLjMzNjQ1OCwgMC40NzQyNzMsIDAuNjExOTc2LCAwLjc0OTY2MywgMC44ODc1NjEiLCBcCi0gICAgICAgICAgIjAuMDkzNzE2LCAwLjIzNzY3MSwgMC4zNDc0NDcsIDAuNDg1MzE3LCAwLjYyMzM4MSwgMC43NjA5MjIsIDAuODk4NTQ3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3NjMxOSwgMC4zNTkwNSwgMC41ODY1ODMsIDAuODcwODM1LCAxLjE1NTUzLCAxLjQzOTYxLCAxLjcyMzQyIiwgXAotICAgICAgICAgICIwLjA3NjYwOSwgMC4zNTg5ODYsIDAuNTg2NTU3LCAwLjg3MDg0NSwgMS4xNTQ5NCwgMS40MzkxNCwgMS43MjM2IiwgXAotICAgICAgICAgICIwLjA3OTYyLCAwLjM1OTAxNiwgMC41ODY2MywgMC44NzA2MjIsIDEuMTU1MjksIDEuNDM5MjcsIDEuNzI0MDYiLCBcCi0gICAgICAgICAgIjAuMDg0NTIxLCAwLjM1OTQ3NCwgMC41ODY1NzcsIDAuODcwOTksIDEuMTU0OTksIDEuNDQsIDEuNzI0NDIiLCBcCi0gICAgICAgICAgIjAuMDkwNTY0LCAwLjM2MTI3LCAwLjU4NjcxNiwgMC44NzA2NTgsIDEuMTU1MDMsIDEuNDM5MzEsIDEuNzIzMzkiLCBcCi0gICAgICAgICAgIjAuMTAwNzM2LCAwLjM2NTY1MywgMC41ODg1MTMsIDAuODcwODA1LCAxLjE1NTA0LCAxLjQzOTg3LCAxLjcyMzgzIiwgXAotICAgICAgICAgICIwLjEwOTg1MywgMC4zNzEwNjcsIDAuNTkxNDY1LCAwLjg3MjE5LCAxLjE1NTIsIDEuNDM5MjYsIDEuNzIzNTQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0NDEsIDAuMTg1NjAxLCAwLjI5ODU4NiwgMC40Mzk4OTIsIDAuNTgwODM2LCAwLjcyMjM0MiwgMC44NjMyNDkiLCBcCi0gICAgICAgICAgIjAuMDUxNTc4LCAwLjE5MzE2OSwgMC4zMDYxMTcsIDAuNDQ3Mzg3LCAwLjU4ODUsIDAuNzI5NTYsIDAuODcwMjk3IiwgXAotICAgICAgICAgICIwLjA2MTM5MiwgMC4yMDI3ODMsIDAuMzE1ODM2LCAwLjQ1NzAyMiwgMC41OTg1NDksIDAuNzM5MDQ2LCAwLjg4MDg5OCIsIFwKLSAgICAgICAgICAiMC4wNzA5ODcsIDAuMjEyMTc1LCAwLjMyNTMxLCAwLjQ2NjUxLCAwLjYwNzU0NCwgMC43NDg0NiwgMC44ODkzMzgiLCBcCi0gICAgICAgICAgIjAuMDc5NTY1LCAwLjIyMTg5NSwgMC4zMzQ4OTcsIDAuNDc2MTEyLCAwLjYxNzIwNywgMC43NTgxMzcsIDAuODk5ODQ0IiwgXAotICAgICAgICAgICIwLjA5MDcsIDAuMjM3NTI0LCAwLjM1MDQ0MSwgMC40OTA5OSwgMC42MzI2MDQsIDAuNzczMzU4LCAwLjkxNDI4OSIsIFwKLSAgICAgICAgICAiMC4wOTg1NzQsIDAuMjUxMjY0LCAwLjM2Mzk4OCwgMC41MDUwNywgMC42NDYyMDQsIDAuNzg3MTM1LCAwLjkyNzg1NSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODgyNDYsIDAuMzg2NDc2LCAwLjYyNTIzNywgMC45MjM4NjYsIDEuMjIyMjEsIDEuNTIwMjYsIDEuODE4OTIiLCBcCi0gICAgICAgICAgIjAuMDg5MjUxLCAwLjM4NjQ2NywgMC42MjUxOTksIDAuOTIzNjczLCAxLjIyMjEzLCAxLjUyMDIzLCAxLjgxODM3IiwgXAotICAgICAgICAgICIwLjA5NDk3NiwgMC4zODY0NzMsIDAuNjI1MjgyLCAwLjkyMzYzNywgMS4yMjIyMSwgMS41MjAxNSwgMS44MTg3NiIsIFwKLSAgICAgICAgICAiMC4xMDMwMjEsIDAuMzg3MTQ0LCAwLjYyNTMxLCAwLjkyMzYyOCwgMS4yMjIyNSwgMS41MjAyMSwgMS44MTg3NyIsIFwKLSAgICAgICAgICAiMC4xMTE2NTcsIDAuMzg5ODkxLCAwLjYyNTM5LCAwLjkyMzY3OCwgMS4yMjIxOCwgMS41MjAyMywgMS44MTg3NCIsIFwKLSAgICAgICAgICAiMC4xMjU4NzYsIDAuMzk3MDI0LCAwLjYyODE4OSwgMC45MjM2LCAxLjIyMjEsIDEuNTIwMTEsIDEuODE4NzciLCBcCi0gICAgICAgICAgIjAuMTM2NzkxLCAwLjQwNTAzNywgMC42MzI3MDgsIDAuOTI1MTMsIDEuMjIyMDYsIDEuNTIwMjksIDEuODE4OTUiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQ1MTksIDAuMTgzMDYxLCAwLjI5MzE4NSwgMC40MzI1NTgsIDAuNTcyNDQ0LCAwLjcxMTQ1OSwgMC44NTA1MDgiLCBcCi0gICAgICAgICAgIjAuMDUyMDk0LCAwLjE5MDI2NiwgMC4zMDAzMDYsIDAuNDM5NiwgMC41NzkzNTYsIDAuNzE4MzgyLCAwLjg1Nzk1MSIsIFwKLSAgICAgICAgICAiMC4wNTk5NTksIDAuMTk4MjQ2LCAwLjMwODM0NiwgMC40NDc3ODUsIDAuNTg3MDYxLCAwLjcyNjM3NiwgMC44NjU4MDIiLCBcCi0gICAgICAgICAgIjAuMDY3NDcsIDAuMjA2MTM0LCAwLjMxNjQ0OCwgMC40NTU2OTgsIDAuNTk1MDAyLCAwLjczNDQ4NywgMC44NzQxMzIiLCBcCi0gICAgICAgICAgIjAuMDc0MTA3LCAwLjIxNDI1NCwgMC4zMjQ0MjMsIDAuNDYzNTg3LCAwLjYwMzE0LCAwLjc0MjM0NCwgMC44ODE4NjYiLCBcCi0gICAgICAgICAgIjAuMDgzMDc3LCAwLjIyNjg4MiwgMC4zMzc1NDUsIDAuNDc2NjUxLCAwLjYxNjA0LCAwLjc1NTc4NywgMC44OTUyNzEiLCBcCi0gICAgICAgICAgIjAuMDg5NzYsIDAuMjM4MzQzLCAwLjM0ODM0LCAwLjQ4NzU4NCwgMC42Mjc0ODcsIDAuNzY2NzY3LCAwLjkwNjM5NSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzQ5MjEsIDAuMzYwNzM0LCAwLjU5MTk2NywgMC44Nzk5OCwgMS4xNjkwOSwgMS40NTcwOCwgMS43NTAwNCIsIFwKLSAgICAgICAgICAiMC4wNzUyMSwgMC4zNjA1MjksIDAuNTkyNzA1LCAwLjg4MTk4MywgMS4xNjg3MSwgMS40NTk0OCwgMS43NDc2NCIsIFwKLSAgICAgICAgICAiMC4wNzgyNTUsIDAuMzYwNDM4LCAwLjU5MjcxOSwgMC44Nzk4NzYsIDEuMTY5MjgsIDEuNDYwNjcsIDEuNzQ2ODgiLCBcCi0gICAgICAgICAgIjAuMDgzMTI0LCAwLjM2MTE2NCwgMC41OTE4ODgsIDAuODc5OTQsIDEuMTcxMywgMS40NTczMSwgMS43NDc1MSIsIFwKLSAgICAgICAgICAiMC4wODkyMTgsIDAuMzYyNTc4LCAwLjU5MjgxNCwgMC44ODE5OTIsIDEuMTY5OCwgMS40NjA1LCAxLjc1NDU0IiwgXAotICAgICAgICAgICIwLjA5OTM3NSwgMC4zNjc2NjYsIDAuNTk0NTUsIDAuODgwMTUxLCAxLjE2OTMyLCAxLjQ1NzE2LCAxLjc0NTgiLCBcCi0gICAgICAgICAgIjAuMTA4Mjc1LCAwLjM3MjY3MywgMC41OTcyNTMsIDAuODgxMjU0LCAxLjE2OTY5LCAxLjQ2MDQ5LCAxLjc0NTg4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDAxNzEsIDAuMTgxMTU1LCAwLjI5Mzc5MSwgMC40MzQzMjIsIDAuNTc0NTgzLCAwLjcxNDk1LCAwLjg1NTMyOCIsIFwKLSAgICAgICAgICAiMC4wNDYyNjksIDAuMTg3NDY2LCAwLjMwMDExOCwgMC40NDA2MDUsIDAuNTgwOTY5LCAwLjcyMTE5NCwgMC44NjE0OTciLCBcCi0gICAgICAgICAgIjAuMDUzNjMxLCAwLjE5NDkwOSwgMC4zMDc1OTIsIDAuNDQ4MTQ3LCAwLjU4ODQ0OCwgMC43Mjg3MTgsIDAuODY4OTU1IiwgXAotICAgICAgICAgICIwLjA2MDE5MywgMC4yMDIyNDUsIDAuMzE0ODkxLCAwLjQ1NTQ0NCwgMC41OTU4OTEsIDAuNzM2MDg0LCAwLjg3NjMzNiIsIFwKLSAgICAgICAgICAiMC4wNjU4MTgsIDAuMjA5NzA3LCAwLjMyMjQ0MywgMC40NjMwNDIsIDAuNjAzNDA3LCAwLjc0MzcyOCwgMC44ODM5ODciLCBcCi0gICAgICAgICAgIjAuMDczMTY5LCAwLjIyMTcwNywgMC4zMzQwODIsIDAuNDc0NjczLCAwLjYxNTA1NSwgMC43NTUyNywgMC44OTU2MjQiLCBcCi0gICAgICAgICAgIjAuMDc4NjE1LCAwLjIzMTg1MywgMC4zNDQ2NzIsIDAuNDg1NjA0LCAwLjYyNjUyNSwgMC43NjY4MTcsIDAuOTA3MDgyIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4MDU2MywgMC4zNzcwNDYsIDAuNjE0NDYyLCAwLjkxMTM3LCAxLjIwNzg3LCAxLjUwNDg2LCAxLjgwMTczIiwgXAotICAgICAgICAgICIwLjA4MTI3NywgMC4zNzcwNDYsIDAuNjE0NDY2LCAwLjkxMTIwNSwgMS4yMDc5MiwgMS41MDQ2OSwgMS44MDEzOCIsIFwKLSAgICAgICAgICAiMC4wODUyODQsIDAuMzc3MDUsIDAuNjE0NDczLCAwLjkxMTI3NywgMS4yMDc5MSwgMS41MDQ4MSwgMS44MDE2NSIsIFwKLSAgICAgICAgICAiMC4wOTA2OTgsIDAuMzc3ODQ5LCAwLjYxNDQ0LCAwLjkxMTI0NSwgMS4yMDgwMiwgMS41MDQ4MiwgMS44MDE2IiwgXAotICAgICAgICAgICIwLjA5Njk4NCwgMC4zNzk3NTQsIDAuNjE0NzAxLCAwLjkxMTI4OSwgMS4yMDc5NywgMS41MDQ4LCAxLjgwMTMxIiwgXAotICAgICAgICAgICIwLjEwNzU4NiwgMC4zODQ4MjQsIDAuNjE2OTA0LCAwLjkxMTM1NCwgMS4yMDc4LCAxLjUwNDc1LCAxLjgwMTY4IiwgXAotICAgICAgICAgICIwLjExNjM4NSwgMC4zOTAwNTksIDAuNjIwMTE3LCAwLjkxMjgxMywgMS4yMDc5OCwgMS41MDQ3MywgMS44MDE1OSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDIyNDcsIDAuMTc3NzM1LCAwLjI4Nzg0NSwgMC40MjU1MzUsIDAuNTYzMTk2LCAwLjcwMDQ3OCwgMC44MzgzMjIiLCBcCi0gICAgICAgICAgIjAuMDQ5ODUzLCAwLjE4NTQwMSwgMC4yOTU0OTIsIDAuNDMzMDQ2LCAwLjU3MDUyMiwgMC43MDgyNzYsIDAuODQ1NjA5IiwgXAotICAgICAgICAgICIwLjA1OTcxNywgMC4xOTUyNTYsIDAuMzA1MzQzLCAwLjQ0MzAyNSwgMC41ODA4ODMsIDAuNzE4MDIzLCAwLjg1NjIwNiIsIFwKLSAgICAgICAgICAiMC4wNjk0MiwgMC4yMDQ4OTMsIDAuMzE0OTMxLCAwLjQ1MjQ1NiwgMC41ODk3MzUsIDAuNzI3MzQ5LCAwLjg2NTM4OSIsIFwKLSAgICAgICAgICAiMC4wNzg2NTUsIDAuMjE0NTA3LCAwLjMyNDU3MywgMC40NjIyMTEsIDAuNTk5OTI1LCAwLjczNzQsIDAuODc0OTciLCBcCi0gICAgICAgICAgIjAuMDg5ODY1LCAwLjIzMDUzMSwgMC4zNDA0MTksIDAuNDc3OTIzLCAwLjYxNTUzNiwgMC43NTMwNDIsIDAuODkwNDgzIiwgXAotICAgICAgICAgICIwLjA5ODI0NywgMC4yNDQ3ODQsIDAuMzU0NDI0LCAwLjQ5MTY0NywgMC42MjY2NTQsIDAuNzY2NzIzLCAwLjkwNDE0OSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzYyODQsIDAuMzU5NDE4LCAwLjU4NzA0NywgMC44NzEzNzYsIDEuMTU1NzYsIDEuNDM5NTgsIDEuNzI0MyIsIFwKLSAgICAgICAgICAiMC4wNzcwNzksIDAuMzU5MzgsIDAuNTg2OTk4LCAwLjg3MTM2MSwgMS4xNTUzOCwgMS40Mzk5NSwgMS43MjQwNSIsIFwKLSAgICAgICAgICAiMC4wODI2NzksIDAuMzU5Mzg5LCAwLjU4Njk4MywgMC44NzEzNTUsIDEuMTU1NzEsIDEuNDM5NzMsIDEuNzI0NDkiLCBcCi0gICAgICAgICAgIjAuMDkwNTk2LCAwLjM2MDA5NiwgMC41ODY5NiwgMC44NzEzNTksIDEuMTU1MzksIDEuNDM5NiwgMS43MjQ3NCIsIFwKLSAgICAgICAgICAiMC4wOTg1OTUsIDAuMzYyODg3LCAwLjU4NzEyNCwgMC44NzEzNzUsIDEuMTU1NzEsIDEuNDQwMDEsIDEuNzI0MjQiLCBcCi0gICAgICAgICAgIjAuMTEyOTEzLCAwLjM2OTg4LCAwLjU4OTkwMSwgMC44NzEzMDQsIDEuMTU1NSwgMS40Mzk1OCwgMS43MjM5IiwgXAotICAgICAgICAgICIwLjEyNDMxOSwgMC4zNzgwNjIsIDAuNTk0ODA0LCAwLjg3Mjk3MywgMS4xNTUzMiwgMS40NDAyNSwgMS43MjM5MiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM3OTU0LCAwLjE3ODk0NCwgMC4yOTE1NzUsIDAuNDMyMTAyLCAwLjU3MjM3NSwgMC43MTI2OTMsIDAuODUzMTI3IiwgXAotICAgICAgICAgICIwLjA0NTQ0MiwgMC4xODY2MDQsIDAuMjk5MjUsIDAuNDM5NzE5LCAwLjU4MDE1NCwgMC43MjAzNTQsIDAuODYwNjI2IiwgXAotICAgICAgICAgICIwLjA1NDk5NSwgMC4xOTYwMTcsIDAuMzA4NjQsIDAuNDQ5MDk2LCAwLjU4OTQxNywgMC43Mjk3MzQsIDAuODcwMDE5IiwgXAotICAgICAgICAgICIwLjA2NDQ0OSwgMC4yMDU4OCwgMC4zMTg1MjYsIDAuNDU5MDQzLCAwLjU5OTMyMSwgMC43Mzk1NzQsIDAuODc5ODc1IiwgXAotICAgICAgICAgICIwLjA3MTg4NywgMC4yMTUzMjcsIDAuMzI3OTk0LCAwLjQ2ODM4LCAwLjYwODg1LCAwLjc0OTExLCAwLjg4OTc4MiIsIFwKLSAgICAgICAgICAiMC4wODE3MjMsIDAuMjMxMDA3LCAwLjM0MzQ0MywgMC40ODMzMzcsIDAuNjI0MTEzLCAwLjc2NDM0MSwgMC45MDQ1ODMiLCBcCi0gICAgICAgICAgIjAuMDg5Mjc3LCAwLjI0NDc2MiwgMC4zNTcwMzgsIDAuNDk3NDY4LCAwLjYzNjQyMywgMC43Nzc4NTYsIDAuOTE4MTEyIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4MDU1NywgMC4zNzcwNDgsIDAuNjE0NDU0LCAwLjkxMTIxOSwgMS4yMDc5LCAxLjUwNDg3LCAxLjgwMTg3IiwgXAotICAgICAgICAgICIwLjA4MTkxNiwgMC4zNzcwNjUsIDAuNjE0MzQyLCAwLjkxMTMyOSwgMS4yMDgsIDEuNTA0NzMsIDEuODAxNSIsIFwKLSAgICAgICAgICAiMC4wODg0NTksIDAuMzc2OTkzLCAwLjYxNDM3NSwgMC45MTEyMDUsIDEuMjA3ODQsIDEuNTA0OTksIDEuODAxNDMiLCBcCi0gICAgICAgICAgIjAuMDk2NTM5LCAwLjM3NzgyMywgMC42MTQ0MDYsIDAuOTExMjgxLCAxLjIwNzgzLCAxLjUwNDcyLCAxLjgwMTYxIiwgXAotICAgICAgICAgICIwLjEwNTY1OSwgMC4zODA3NDUsIDAuNjE0NTc1LCAwLjkxMTI5OSwgMS4yMDc5NiwgMS41MDQ5NCwgMS44MDE3NSIsIFwKLSAgICAgICAgICAiMC4xMjAwNDYsIDAuMzg4MTA4LCAwLjYxNzUyNywgMC45MTEyOCwgMS4yMDc4NSwgMS41MDQ4MSwgMS44MDE0NSIsIFwKLSAgICAgICAgICAiMC4xMzA0MDUsIDAuMzk2NDQ0LCAwLjYyMjM0NSwgMC45MTI4MTQsIDEuMjA3ODksIDEuNTA0NjUsIDEuODAxNjMiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQwMzYsIDAuMTc4MiwgMC4yODg1NDYsIDAuNDI3ODMsIDAuNTY3NzQyLCAwLjcwNjc5LCAwLjg0NjY1MSIsIFwKLSAgICAgICAgICAiMC4wNDc5NjksIDAuMTg1OTMyLCAwLjI5NjI1NiwgMC40MzU2MjMsIDAuNTc1MDE2LCAwLjcxNDUxLCAwLjg1MzcyMSIsIFwKLSAgICAgICAgICAiMC4wNTc3NDMsIDAuMTk1NTg1LCAwLjMwNTkwNywgMC40NDU0OSwgMC41ODQ4NzEsIDAuNzI0MDg3LCAwLjg2MzMxOSIsIFwKLSAgICAgICAgICAiMC4wNjczNjYsIDAuMjA1MTYxLCAwLjMxNTQ0NiwgMC40NTQ5NDksIDAuNTk0MTg4LCAwLjczMzYxOCwgMC44NzM3OCIsIFwKLSAgICAgICAgICAiMC4wNzU1NjQsIDAuMjE1MDI1LCAwLjMyNTM1MywgMC40NjQ3MDksIDAuNjA0MjA5LCAwLjc0MzczOSwgMC44ODMyNzMiLCBcCi0gICAgICAgICAgIjAuMDg2NjQ0LCAwLjIzMDk2MSwgMC4zNDExOTksIDAuNDc5OTM1LCAwLjYxOTkzMSwgMC43NTkxMiwgMC44OTg0OTkiLCBcCi0gICAgICAgICAgIjAuMDk0Nzg0LCAwLjI0NTA3NCwgMC4zNTUwNzcsIDAuNDk0Mzk4LCAwLjYzMTE0LCAwLjc3MzAwOCwgMC45MTIyOTEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc0NTU1LCAwLjM2MDk3NiwgMC41OTIwMjcsIDAuODg0NjM3LCAxLjE2OTE3LCAxLjQ1NzIsIDEuNzQ2NTkiLCBcCi0gICAgICAgICAgIjAuMDc1MzM5LCAwLjM2MTI3NywgMC41OTEzODgsIDAuODgyMDUxLCAxLjE3MTM4LCAxLjQ1NzMyLCAxLjc0OTkzIiwgXAotICAgICAgICAgICIwLjA4MTE0MSwgMC4zNjA5NjcsIDAuNTkyNzcxLCAwLjg3OTkyNCwgMS4xNjg0NiwgMS40NTgyMywgMS43NDg1NiIsIFwKLSAgICAgICAgICAiMC4wODkyMiwgMC4zNjEzMywgMC41OTI3MDksIDAuODc5ODcsIDEuMTcwNzQsIDEuNDU3MjEsIDEuNzQ2NjgiLCBcCi0gICAgICAgICAgIjAuMDk3OTgzLCAwLjM2NDQ1MywgMC41OTE0MzksIDAuODgwMDQ2LCAxLjE2ODQ5LCAxLjQ1NzQxLCAxLjc0NjQ5IiwgXAotICAgICAgICAgICIwLjExMTk5MywgMC4zNzEyMjYsIDAuNTk1NDczLCAwLjg4MDYyNywgMS4xNjkzNSwgMS40NTkwOSwgMS43NTQ0OCIsIFwKLSAgICAgICAgICAiMC4xMjM2MDEsIDAuMzc5MzU0LCAwLjU5ODk0OCwgMC44ODMzMjgsIDEuMTcxMjgsIDEuNDU4MDksIDEuNzQ5NzkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA4NjE4LCAwLjAwODYyMSwgMC4wMDg2MjEsIDAuMDA4NjIxLCAwLjAwODYxOSwgMC4wMDg2MTksIDAuMDA4NjE4IiwgXAotICAgICAgICAgICIwLjAwODU3MSwgMC4wMDg1OTYsIDAuMDA4NTk4LCAwLjAwODYsIDAuMDA4NTk2LCAwLjAwODYwNywgMC4wMDg1OTkiLCBcCi0gICAgICAgICAgIjAuMDA4NTcsIDAuMDA4NTkyLCAwLjAwODU5NSwgMC4wMDg1OTYsIDAuMDA4NTk2LCAwLjAwODU5OSwgMC4wMDg1OTYiLCBcCi0gICAgICAgICAgIjAuMDA4NjE3LCAwLjAwODYwNCwgMC4wMDg2MDIsIDAuMDA4NjAxLCAwLjAwODYsIDAuMDA4NTk4LCAwLjAwODU5OCIsIFwKLSAgICAgICAgICAiMC4wMDg3MDIsIDAuMDA4NjMyLCAwLjAwODYyMSwgMC4wMDg2MTMsIDAuMDA4NjA5LCAwLjAwODYwNiwgMC4wMDg2MDMiLCBcCi0gICAgICAgICAgIjAuMDA4ODg1LCAwLjAwODY5NywgMC4wMDg2NjgsIDAuMDA4NjUxLCAwLjAwODYzNywgMC4wMDg2MzEsIDAuMDA4NjI1IiwgXAotICAgICAgICAgICIwLjAwOTExLCAwLjAwODc4NiwgMC4wMDg3MzEsIDAuMDA4NjkyLCAwLjAwODY3MywgMC4wMDg2NTksIDAuMDA4NjQ3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxNzM5LCAwLjAwMTc0NywgMC4wMDE3NDcsIDAuMDAxNzQ3LCAwLjAwMTc0OCwgMC4wMDE3NDcsIDAuMDAxNzQ3IiwgXAotICAgICAgICAgICIwLjAwMTY2NywgMC4wMDE3MSwgMC4wMDE3MTYsIDAuMDAxNzE5LCAwLjAwMTcyLCAwLjAwMTcyMSwgMC4wMDE3MjEiLCBcCi0gICAgICAgICAgIjAuMDAxNjM5LCAwLjAwMTY5NiwgMC4wMDE3MDUsIDAuMDAxNzEsIDAuMDAxNzEzLCAwLjAwMTcxNSwgMC4wMDE3MTYiLCBcCi0gICAgICAgICAgIjAuMDAxNjUyLCAwLjAwMTY5NSwgMC4wMDE3MDQsIDAuMDAxNzA5LCAwLjAwMTcxMiwgMC4wMDE3MTMsIDAuMDAxNzE0IiwgXAotICAgICAgICAgICIwLjAwMTcwMywgMC4wMDE3MDksIDAuMDAxNzEyLCAwLjAwMTcxNCwgMC4wMDE3MTUsIDAuMDAxNzE2LCAwLjAwMTcxNiIsIFwKLSAgICAgICAgICAiMC4wMDE4MzgsIDAuMDAxNzUyLCAwLjAwMTc0MiwgMC4wMDE3MzYsIDAuMDAxNzMyLCAwLjAwMTcyOSwgMC4wMDE3MjgiLCBcCi0gICAgICAgICAgIjAuMDAyMDIyLCAwLjAwMTgxOCwgMC4wMDE3ODgsIDAuMDAxNzY5LCAwLjAwMTc1OSwgMC4wMDE3NTEsIDAuMDAxNzQ2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNzcyLCAwLjAwNzcyOCwgMC4wMDc3MjksIDAuMDA3NzI3LCAwLjAwNzcyOCwgMC4wMDc3MjYsIDAuMDA3NzI2IiwgXAotICAgICAgICAgICIwLjAwNzY3NSwgMC4wMDc3LCAwLjAwNzcwNCwgMC4wMDc3MDUsIDAuMDA3NzA2LCAwLjAwNzcwNCwgMC4wMDc3MDUiLCBcCi0gICAgICAgICAgIjAuMDA3NzA3LCAwLjAwNzcwNCwgMC4wMDc3MDYsIDAuMDA3NzA0LCAwLjAwNzcwNCwgMC4wMDc3MDQsIDAuMDA3NzA0IiwgXAotICAgICAgICAgICIwLjAwNzgzOSwgMC4wMDc3NDQsIDAuMDA3NzM0LCAwLjAwNzcyNCwgMC4wMDc3MTksIDAuMDA3NzE1LCAwLjAwNzcxMiIsIFwKLSAgICAgICAgICAiMC4wMDgwMDEsIDAuMDA3Nzk1LCAwLjAwNzc2OCwgMC4wMDc3NDksIDAuMDA3NzQsIDAuMDA3NzMxLCAwLjAwNzcyOCIsIFwKLSAgICAgICAgICAiMC4wMDgzMiwgMC4wMDc5MDcsIDAuMDA3ODQsIDAuMDA3ODAyLCAwLjAwNzc4NCwgMC4wMDc3NjUsIDAuMDA3NzUzIiwgXAotICAgICAgICAgICIwLjAwODU0OCwgMC4wMDgwMjQsIDAuMDA3OTI4LCAwLjAwNzg2NSwgMC4wMDc4MzYsIDAuMDA3ODEzLCAwLjAwNzc4OCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTIyMiwgMC4wMDEyNTUsIDAuMDAxMjU4LCAwLjAwMTI2LCAwLjAwMTI2MSwgMC4wMDEyNjEsIDAuMDAxMjYxIiwgXAotICAgICAgICAgICIwLjAwMTEyNCwgMC4wMDEyNDQsIDAuMDAxMjYsIDAuMDAxMjY5LCAwLjAwMTI3MywgMC4wMDEyNzYsIDAuMDAxMjc3IiwgXAotICAgICAgICAgICIwLjAwMTA0OSwgMC4wMDEyMTIsIDAuMDAxMjQsIDAuMDAxMjU2LCAwLjAwMTI2NCwgMC4wMDEyNjgsIDAuMDAxMjcyIiwgXAotICAgICAgICAgICIwLjAwMTAzOCwgMC4wMDExOTUsIDAuMDAxMjI3LCAwLjAwMTI0NiwgMC4wMDEyNTcsIDAuMDAxMjYzLCAwLjAwMTI2NyIsIFwKLSAgICAgICAgICAiMC4wMDEwNzcsIDAuMDAxMTkzLCAwLjAwMTIyNCwgMC4wMDEyNDMsIDAuMDAxMjU0LCAwLjAwMTI2MSwgMC4wMDEyNjUiLCBcCi0gICAgICAgICAgIjAuMDAxMiwgMC4wMDEyMTYsIDAuMDAxMjM5LCAwLjAwMTI1MywgMC4wMDEyNjIsIDAuMDAxMjY3LCAwLjAwMTI3IiwgXAotICAgICAgICAgICIwLjAwMTM3MiwgMC4wMDEyNzEsIDAuMDAxMjcyLCAwLjAwMTI3NywgMC4wMDEyOCwgMC4wMDEyODMsIDAuMDAxMjg0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNTkzNywgMC4wMDU5NTksIDAuMDA1OTYzLCAwLjAwNTk2NCwgMC4wMDU5NjUsIDAuMDA1OTY1LCAwLjAwNTk2NSIsIFwKLSAgICAgICAgICAiMC4wMDU4NzYsIDAuMDA1OTU3LCAwLjAwNTk2NSwgMC4wMDU5NzMsIDAuMDA1OTc2LCAwLjAwNTk3OCwgMC4wMDU5NzkiLCBcCi0gICAgICAgICAgIjAuMDA1ODU0LCAwLjAwNTk0NSwgMC4wMDU5NiwgMC4wMDU5NjksIDAuMDA1OTczLCAwLjAwNTk3NiwgMC4wMDU5NzgiLCBcCi0gICAgICAgICAgIjAuMDA1ODk1LCAwLjAwNTk0OCwgMC4wMDU5NjEsIDAuMDA1OTY5LCAwLjAwNTk3NywgMC4wMDU5NzksIDAuMDA1OTgxIiwgXAotICAgICAgICAgICIwLjAwNTk3MywgMC4wMDU5NjUsIDAuMDA1OTczLCAwLjAwNTk3OSwgMC4wMDU5OCwgMC4wMDU5ODMsIDAuMDA1OTg1IiwgXAotICAgICAgICAgICIwLjAwNjE2NiwgMC4wMDYwMjUsIDAuMDA2MDA4LCAwLjAwNjAwNCwgMC4wMDYwMDEsIDAuMDA1OTk3LCAwLjAwNTk5OCIsIFwKLSAgICAgICAgICAiMC4wMDYzODQsIDAuMDA2MTAxLCAwLjAwNjA2MywgMC4wMDYwNDUsIDAuMDA2MDM2LCAwLjAwNjAyOCwgMC4wMDYwMjIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDE3MzQsIDAuMDAxNzQ0LCAwLjAwMTc0NSwgMC4wMDE3NDYsIDAuMDAxNzQ1LCAwLjAwMTc0NiwgMC4wMDE3NDUiLCBcCi0gICAgICAgICAgIjAuMDAxNjg5LCAwLjAwMTcxMywgMC4wMDE3MTYsIDAuMDAxNzE4LCAwLjAwMTcxOSwgMC4wMDE3MTksIDAuMDAxNzE5IiwgXAotICAgICAgICAgICIwLjAwMTc0MywgMC4wMDE3MiwgMC4wMDE3MiwgMC4wMDE3MiwgMC4wMDE3MTksIDAuMDAxNzE5LCAwLjAwMTcxOSIsIFwKLSAgICAgICAgICAiMC4wMDE5MDMsIDAuMDAxNzYzLCAwLjAwMTc0OSwgMC4wMDE3NDYsIDAuMDAxNzM5LCAwLjAwMTczNSwgMC4wMDE3MzMiLCBcCi0gICAgICAgICAgIjAuMDAyMDI2LCAwLjAwMTgzMiwgMC4wMDE3OTcsIDAuMDAxNzc0LCAwLjAwMTc2MSwgMC4wMDE3NTIsIDAuMDAxNzQ3IiwgXAotICAgICAgICAgICIwLjAwMjQwNCwgMC4wMDE5NDgsIDAuMDAxODczLCAwLjAwMTgzNCwgMC4wMDE4MDgsIDAuMDAxNzkxLCAwLjAwMTc4IiwgXAotICAgICAgICAgICIwLjAwMjczMiwgMC4wMDIwNzEsIDAuMDAxOTY0LCAwLjAwMTg5NSwgMC4wMDE4NjIsIDAuMDAxODM4LCAwLjAwMTgxOSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIxIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDUwMywgMC4wMDUwNjIsIDAuMDA1MDY1LCAwLjAwNTA2NiwgMC4wMDUwNjcsIDAuMDA1MDY4LCAwLjAwNTA2OCIsIFwKLSAgICAgICAgICAiMC4wMDQ5ODEsIDAuMDA1MDYxLCAwLjAwNTA2OSwgMC4wMDUwNzYsIDAuMDA1MDgxLCAwLjAwNTA4MSwgMC4wMDUwODIiLCBcCi0gICAgICAgICAgIjAuMDA1MDM1LCAwLjAwNTA2OSwgMC4wMDUwNzUsIDAuMDA1MDgsIDAuMDA1MDgyLCAwLjAwNTA4NCwgMC4wMDUwODQiLCBcCi0gICAgICAgICAgIjAuMDA1MTA4LCAwLjAwNTA4LCAwLjAwNTA4NiwgMC4wMDUwODMsIDAuMDA1MDg2LCAwLjAwNTA4NywgMC4wMDUwODciLCBcCi0gICAgICAgICAgIjAuMDA1Mjk3LCAwLjAwNTEzMSwgMC4wMDUxMjMsIDAuMDA1MTA4LCAwLjAwNTEwOCwgMC4wMDUxMDUsIDAuMDA1MTAzIiwgXAotICAgICAgICAgICIwLjAwNTYwNywgMC4wMDUyMzQsIDAuMDA1MTgzLCAwLjAwNTE2NCwgMC4wMDUxNDIsIDAuMDA1MTMyLCAwLjAwNTEyNiIsIFwKLSAgICAgICAgICAiMC4wMDU4MTIsIDAuMDA1MzM5LCAwLjAwNTI2MywgMC4wMDUyMjYsIDAuMDA1MTk1LCAwLjAwNTE3MSwgMC4wMDUxNTkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDExMDEsIDAuMDAxMTM3LCAwLjAwMTE0MSwgMC4wMDExNDMsIDAuMDAxMTQ0LCAwLjAwMTE0NCwgMC4wMDExNDUiLCBcCi0gICAgICAgICAgIjAuMDAxMDQ1LCAwLjAwMTEzNiwgMC4wMDExNDksIDAuMDAxMTU3LCAwLjAwMTE2LCAwLjAwMTE2MiwgMC4wMDExNjQiLCBcCi0gICAgICAgICAgIjAuMDAxMDYsIDAuMDAxMTQyLCAwLjAwMTE1MywgMC4wMDExNTksIDAuMDAxMTYyLCAwLjAwMTE2NCwgMC4wMDExNjYiLCBcCi0gICAgICAgICAgIjAuMDAxMTkzLCAwLjAwMTE3MSwgMC4wMDExNzIsIDAuMDAxMTczLCAwLjAwMTE3NCwgMC4wMDExNzQsIDAuMDAxMTc0IiwgXAotICAgICAgICAgICIwLjAwMTM0MSwgMC4wMDEyMTUsIDAuMDAxMiwgMC4wMDExOTMsIDAuMDAxMTg5LCAwLjAwMTE4MiwgMC4wMDExODIiLCBcCi0gICAgICAgICAgIjAuMDAxNjQzLCAwLjAwMTMwNCwgMC4wMDEyNjgsIDAuMDAxMjM5LCAwLjAwMTIyNywgMC4wMDEyMTcsIDAuMDAxMjExIiwgXAotICAgICAgICAgICIwLjAwMTk2NSwgMC4wMDE0MDksIDAuMDAxMzM2LCAwLjAwMTMwMSwgMC4wMDEyNjcsIDAuMDAxMjU2LCAwLjAwMTI0NCIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogT0FJMkJCMVgyICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoT0FJMkJCMVgyKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuNDc3MDI5OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBME4pICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDU5NDE4MzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA1OTQxODM7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNTkzNTM4OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDI5NiwgMC4wMDAyOTYsIDAuMDAwMjk2LCAwLjAwMDI5NiwgMC4wMDAyOTYsIDAuMDAwMjk2LCAwLjAwMDI5NiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDMxNCwgMC4wMDAzMDMsIDAuMDAwMywgMC4wMDAyOTksIDAuMDAwMjk4LCAwLjAwMDI5OCwgMC4wMDAyOTciKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEExTikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjA4NjA3OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYwODYwNzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2MDg0MzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAwODQsIDAuMDAwMDgzLCAwLjAwMDA4MywgMC4wMDAwODMsIDAuMDAwMDgzLCAwLjAwMDA4MywgMC4wMDAwODMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAzMzcsIDAuMDAwMzM4LCAwLjAwMDMzNywgMC4wMDAzMzgsIDAuMDAwMzM4LCAwLjAwMDMzOCwgMC4wMDAzMzgiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE4NDI5MzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE4NDI5MzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE4Mzk5OTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDEwNDksIDAuMDAxMDQ4LCAwLjAwMTA0NywgMC4wMDEwNDcsIDAuMDAxMDQ3LCAwLjAwMTA0NywgMC4wMDEwNDYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDExMDUsIDAuMDAxMDcsIDAuMDAxMDYsIDAuMDAxMDUzLCAwLjAwMTA1MywgMC4wMDEwNTIsIDAuMDAxMDU0Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuNDA4NjA4OwotICAgIGZ1bmN0aW9uIDogIighKCghKEEwTiBBMU4pKSBCMCkpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBME4iOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1NTM4MiwgMC4xMzYxNjUsIDAuMTk5NzIyLCAwLjI3OTA2OSwgMC4zNTg0MjYsIDAuNDM3ODk3LCAwLjUxNzE3NiIsIFwKLSAgICAgICAgICAiMC4wNjE1OCwgMC4xNDIyOSwgMC4yMDU3OTMsIDAuMjg1MjIsIDAuMzY0NTUyLCAwLjQ0MzkzMSwgMC41MjMzMTkiLCBcCi0gICAgICAgICAgIjAuMDY4ODM2LCAwLjE0OTUyMywgMC4yMTMwNDEsIDAuMjkyNDYzLCAwLjM3MTc0NiwgMC40NTExMiwgMC41MzA2MzYiLCBcCi0gICAgICAgICAgIjAuMDc1MjYxLCAwLjE1NjAxOSwgMC4yMTk1MDYsIDAuMjk4OTczLCAwLjM3ODIxNiwgMC40NTc2NzMsIDAuNTM3MTExIiwgXAotICAgICAgICAgICIwLjA4MDUzOCwgMC4xNjE3MTIsIDAuMjI1MTgzLCAwLjMwNDUzOCwgMC4zODM5LCAwLjQ2MzU1NSwgMC41NDI2MjYiLCBcCi0gICAgICAgICAgIjAuMDg4MDcsIDAuMTY5NTIzLCAwLjIzMjk4MywgMC4zMTIzNTksIDAuMzkxNzIsIDAuNDcxMDQ1LCAwLjU1MDQyOSIsIFwKLSAgICAgICAgICAiMC4wOTM2MzIsIDAuMTc1Mzc3LCAwLjIzODg0MywgMC4zMTgxNDcsIDAuMzk3NTQxLCAwLjQ3NjgyNCwgMC41NTYxOTQiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQ3MDMxLCAwLjIwOTcwMiwgMC4zNDMyMTksIDAuNTA5Nzc0LCAwLjY3NzM5OCwgMC44NDM1OTQsIDEuMDExOCIsIFwKLSAgICAgICAgICAiMC4wNDY5NywgMC4yMDk2ODcsIDAuMzQzMTgxLCAwLjUwOTQ1LCAwLjY3NzE3NSwgMC44NDM3NzUsIDEuMDExNzQiLCBcCi0gICAgICAgICAgIjAuMDQ3MzY0LCAwLjIwOTkyOCwgMC4zNDMyNDIsIDAuNTA5NCwgMC42Nzc4NjksIDAuODQ0OTE2LCAxLjAxMTg3IiwgXAotICAgICAgICAgICIwLjA0ODQzMSwgMC4yMDk4OTUsIDAuMzQzMjkyLCAwLjUwOTY2NiwgMC42NzczOTcsIDAuODQzNTk4LCAxLjAxMTgyIiwgXAotICAgICAgICAgICIwLjA0OTMyNywgMC4yMTAxMzcsIDAuMzQyODU3LCAwLjUxMDQ3NywgMC42Nzc4NzksIDAuODQ0MDYzLCAxLjAxMjIiLCBcCi0gICAgICAgICAgIjAuMDUwNTU5LCAwLjIxMDY5LCAwLjM0MzIwNywgMC41MTA2MSwgMC42NzY2MzksIDAuODQ1Mzc2LCAxLjAxMTU3IiwgXAotICAgICAgICAgICIwLjA1MTk4NCwgMC4yMTEwNTMsIDAuMzQzNjM3LCAwLjUxMDQ3MiwgMC42NzY5OTgsIDAuODQ1MzYzLCAxLjAxMjEzIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1NjY2NSwgMC4xODkzNjMsIDAuMjk1MjYyLCAwLjQyNzYyOCwgMC41NTk5NzQsIDAuNjkyMzI4LCAwLjgyNDY5MSIsIFwKLSAgICAgICAgICAiMC4wNjQ2MTksIDAuMTk3Mzg4LCAwLjMwMzI5MywgMC40MzU2NjcsIDAuNTY4MDEzLCAwLjcwMDM2OCwgMC44MzI3MDEiLCBcCi0gICAgICAgICAgIjAuMDczNDMyLCAwLjIwNjE1NCwgMC4zMTIwNzMsIDAuNDQ0NDY4LCAwLjU3NjgwMSwgMC43MDkxNTMsIDAuODQxNTc1IiwgXAotICAgICAgICAgICIwLjA4MDE5NiwgMC4yMTI4OCwgMC4zMTg4MDgsIDAuNDUxMjA1LCAwLjU4MzUxLCAwLjcxNTg5NywgMC44NDgyIiwgXAotICAgICAgICAgICIwLjA4NTUzNiwgMC4yMTgxNzQsIDAuMzI0MDg0LCAwLjQ1NjQ4NCwgMC41ODg4MDgsIDAuNzIxMTc1LCAwLjg1MzQ4OSIsIFwKLSAgICAgICAgICAiMC4wOTI1NjIsIDAuMjI1MDY2LCAwLjMzMTAxMSwgMC40NjMzMzgsIDAuNTk1Njg2LCAwLjcyNzk4NiwgMC44NjA0MTMiLCBcCi0gICAgICAgICAgIjAuMDk3NzM0LCAwLjIzMDA5OSwgMC4zMzYwMzcsIDAuNDY4MzM0LCAwLjYwMDcwNSwgMC43MzMwMTQsIDAuODY1Mzg4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2NzgzNywgMC4zNDA1NzYsIDAuNTU5NjcxLCAwLjgzMjkzMSwgMS4xMDY2MSwgMS4zNzg3NSwgMS42NTU1OSIsIFwKLSAgICAgICAgICAiMC4wNjc4NjYsIDAuMzQwNTY3LCAwLjU1OTE1MiwgMC44MzI5NTksIDEuMTA2NTcsIDEuMzgwNDQsIDEuNjUzODYiLCBcCi0gICAgICAgICAgIjAuMDY4MjQ2LCAwLjM0MDIzNSwgMC41NTk2MSwgMC44MzM2MTIsIDEuMTA2NDIsIDEuMzgwMiwgMS42NTU1OSIsIFwKLSAgICAgICAgICAiMC4wNjg4OTMsIDAuMzM5OTI0LCAwLjU1OTY0NiwgMC44MzM1OTYsIDEuMTA3NTcsIDEuMzc5MTYsIDEuNjUzNzMiLCBcCi0gICAgICAgICAgIjAuMDY5NjQ4LCAwLjM0MDU3OSwgMC41NTg4MDYsIDAuODMzNTQ1LCAxLjEwNzUxLCAxLjM4MTQ1LCAxLjY1NTU3IiwgXAotICAgICAgICAgICIwLjA3MDY4NiwgMC4zNDAxNzYsIDAuNTU5NjU5LCAwLjgzMjQ3MiwgMS4xMDczOSwgMS4zODExMSwgMS42NTUzNyIsIFwKLSAgICAgICAgICAiMC4wNzE3MDQsIDAuMzQwMzE4LCAwLjU1ODg5MywgMC44MzI3OTgsIDEuMTA3MzEsIDEuMzgwMjksIDEuNjUyNjYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTFOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTM1NDQsIDAuMTM0Mjk5LCAwLjE5Nzg1NCwgMC4yNzczMjMsIDAuMzU2NjE1LCAwLjQzNjA0NCwgMC41MTUzMyIsIFwKLSAgICAgICAgICAiMC4wNjEwMDcsIDAuMTQxNzE1LCAwLjIwNTIyMiwgMC4yODQ2NjQsIDAuMzYzOTUsIDAuNDQzNDAyLCAwLjUyMjczNCIsIFwKLSAgICAgICAgICAiMC4wNzAyODcsIDAuMTUwOTkyLCAwLjIxNDQ5MywgMC4yOTM4OTcsIDAuMzczMjYxLCAwLjQ1MjYxNiwgMC41MzI0MzUiLCBcCi0gICAgICAgICAgIjAuMDc4NDQ1LCAwLjE1OTQyLCAwLjIyMjkyNSwgMC4zMDIzMDcsIDAuMzgxNjI1LCAwLjQ2MTA0OCwgMC41NDAzNTciLCBcCi0gICAgICAgICAgIjAuMDg1MDU4LCAwLjE2NjA5NCwgMC4yMjk1NDYsIDAuMzA4ODkyLCAwLjM4ODM2OCwgMC40Njc2OCwgMC41NDY5NjkiLCBcCi0gICAgICAgICAgIjAuMDk0Mzk0LCAwLjE3NTc1NiwgMC4yMzkwMTIsIDAuMzE4NDA5LCAwLjM5NzcyNywgMC40NzcxNTQsIDAuNTU2NzY5IiwgXAotICAgICAgICAgICIwLjEwMTI1NSwgMC4xODI4ODMsIDAuMjQ2MDk0LCAwLjMyNTM0NiwgMC40MDQ2NTksIDAuNDg0MDI4LCAwLjU2MzM4NyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDcwMDEsIDAuMjA5ODQxLCAwLjM0MzIxLCAwLjUwOTM5OSwgMC42NzcwNDQsIDAuODQzNjM5LCAxLjAxMTQ4IiwgXAotICAgICAgICAgICIwLjA0Njk2OCwgMC4yMDk4NTMsIDAuMzQzMTk4LCAwLjUwOTM5OSwgMC42NzcwMTEsIDAuODQzNTk1LCAxLjAxMTY4IiwgXAotICAgICAgICAgICIwLjA0NzU1MSwgMC4yMDk3NTIsIDAuMzQzMjA1LCAwLjUwOTYxNCwgMC42NzcyMzEsIDAuODQzODY4LCAxLjAxMTEzIiwgXAotICAgICAgICAgICIwLjA0ODYyOSwgMC4yMTAwNDQsIDAuMzQzMzA3LCAwLjUwOTU4MiwgMC42Nzc4NjMsIDAuODQzNzM2LCAxLjAxMTA4IiwgXAotICAgICAgICAgICIwLjA0OTg3NCwgMC4yMTAzNTUsIDAuMzQzMjU4LCAwLjUwOTgyNSwgMC42NzY4LCAwLjg0NDQzNiwgMS4wMTEwNyIsIFwKLSAgICAgICAgICAiMC4wNTE2MzcsIDAuMjEwODYyLCAwLjM0MzQ4NiwgMC41MDk3MzcsIDAuNjc3MDI5LCAwLjg0Mzg5OCwgMS4wMTEyNyIsIFwKLSAgICAgICAgICAiMC4wNTMwOTEsIDAuMjExMjE5LCAwLjM0MzcxLCAwLjUxMDE4NywgMC42Nzc5MjUsIDAuODQ1NDIsIDEuMDEyODgiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU1MDY4LCAwLjE4NzY5MiwgMC4yOTM2MzcsIDAuNDI2MDA3LCAwLjU1ODM2OSwgMC42OTA4NjcsIDAuODIzMTgiLCBcCi0gICAgICAgICAgIjAuMDYyOTI3LCAwLjE5NTYxOSwgMC4zMDE2MjksIDAuNDM0MjI0LCAwLjU2NjU0OCwgMC42OTg5NzIsIDAuODMxMzg2IiwgXAotICAgICAgICAgICIwLjA3MTMwMSwgMC4yMDM5NzUsIDAuMzA5OTU2LCAwLjQ0MjM5NSwgMC41NzQ3OSwgMC43MDcxMDUsIDAuODM5NzQyIiwgXAotICAgICAgICAgICIwLjA3NzUyLCAwLjIxMDIwMywgMC4zMTYxNTUsIDAuNDQ4NzIxLCAwLjU4MDk4NCwgMC43MTM0NDUsIDAuODQ2NjU1IiwgXAotICAgICAgICAgICIwLjA4MjQyNCwgMC4yMTUwNDMsIDAuMzIwOTg3LCAwLjQ1MzQ4NCwgMC41ODYxNywgMC43MTg2NDYsIDAuODUwNjcyIiwgXAotICAgICAgICAgICIwLjA4ODk1NywgMC4yMjEyNDksIDAuMzI3NDk1LCAwLjQ1OTU4OSwgMC41OTI2MzgsIDAuNzI0Njg1LCAwLjg1NzIwOSIsIFwKLSAgICAgICAgICAiMC4wOTM2ODYsIDAuMjI2MTczLCAwLjMzMjA3NiwgMC40NjQ1MTgsIDAuNTk2OTMsIDAuNzI5MzI0LCAwLjg2MTc0MSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjc2NywgMC4zNDA2NjksIDAuNTYwMDAxLCAwLjgzMjc4MiwgMS4xMDgyOSwgMS4zODI2MiwgMS42NTY3MSIsIFwKLSAgICAgICAgICAiMC4wNjc3MTksIDAuMzQwNjYyLCAwLjU1OTE1NywgMC44MzIyMDgsIDEuMTA1NzMsIDEuMzgwNTMsIDEuNjUzMDQiLCBcCi0gICAgICAgICAgIjAuMDY4MjAzLCAwLjM0MDcwNSwgMC41NTkxMTgsIDAuODMyMjI3LCAxLjEwODQ2LCAxLjM4MjU0LCAxLjY1NDIxIiwgXAotICAgICAgICAgICIwLjA2ODk1MSwgMC4zNDA3NzEsIDAuNTYwMDU2LCAwLjgzMjE1MSwgMS4xMDg0NiwgMS4zNzkyOCwgMS42NTM1OSIsIFwKLSAgICAgICAgICAiMC4wNjk3NzYsIDAuMzQwNzAxLCAwLjU1OTA0MiwgMC44MzQxNjcsIDEuMTA1OTgsIDEuMzc5MjMsIDEuNjU2NzEiLCBcCi0gICAgICAgICAgIjAuMDcwNjg2LCAwLjM0MDA4OCwgMC41NTg3NzMsIDAuODM0MTEsIDEuMTA2LCAxLjM4MjQ3LCAxLjY1MzA1IiwgXAotICAgICAgICAgICIwLjA3MTc2NywgMC4zNDAyMzEsIDAuNTYwMDQ3LCAwLjgzMjI5MiwgMS4xMDY2NiwgMS4zODI0NiwgMS42NTY2NiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDIyNDM2LCAwLjEwMDE3NiwgMC4xNjIyODgsIDAuMjM5OTA0LCAwLjMxNzU5OSwgMC4zOTUwODEsIDAuNDcyODQyIiwgXAotICAgICAgICAgICIwLjAzMDY2NSwgMC4xMDgzMDcsIDAuMTcwNDE3LCAwLjI0Nzk4NiwgMC4zMjU1OTMsIDAuNDAzMzkzLCAwLjQ4MTA2NCIsIFwKLSAgICAgICAgICAiMC4wNDA2MzUsIDAuMTE4NTY5LCAwLjE4MDYzMSwgMC4yNTgzMDgsIDAuMzM1NjIxLCAwLjQxMzM3NiwgMC40OTA4MyIsIFwKLSAgICAgICAgICAiMC4wNDc3NzgsIDAuMTI5MDM3LCAwLjE5MTA3MiwgMC4yNjg1NjIsIDAuMzQ2MjQxLCAwLjQyMzgwNSwgMC41MDExNzQiLCBcCi0gICAgICAgICAgIjAuMDUzNDUxLCAwLjEzOTYyNywgMC4yMDE1OTQsIDAuMjc5MTAzLCAwLjM1NjU2NiwgMC40MzQ0ODcsIDAuNTEyMTc2IiwgXAotICAgICAgICAgICIwLjA2MDkwNiwgMC4xNTY1OTEsIDAuMjE4MzQ4LCAwLjI5NTc5NCwgMC4zNzMzNCwgMC40NTA5OTMsIDAuNTI4NDExIiwgXAotICAgICAgICAgICIwLjA2NTk4LCAwLjE3MTQ0MSwgMC4yMzMxNSwgMC4zMTA1MDIsIDAuMzg3ODcxLCAwLjQ2NTQyNCwgMC41NDMwNzciKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQwMzc2LCAwLjIwMzU5MywgMC4zMzQyMjIsIDAuNDk3NDcsIDAuNjYwNzg2LCAwLjgyMzc5MywgMC45ODcxNTMiLCBcCi0gICAgICAgICAgIjAuMDQzODExLCAwLjIwMzYyOSwgMC4zMzQxODksIDAuNDk3MzE0LCAwLjY2MDcyNywgMC44MjM4NjQsIDAuOTg3MTE3IiwgXAotICAgICAgICAgICIwLjA1MjI1NSwgMC4yMDQ4MTEsIDAuMzM0MTM3LCAwLjQ5NzQwNiwgMC42NjAzNTUsIDAuODIzOTgzLCAwLjk4Njc4OSIsIFwKLSAgICAgICAgICAiMC4wNjE3MjIsIDAuMjA5MDA4LCAwLjMzNTMwOSwgMC40OTc0ODQsIDAuNjYwNDk5LCAwLjgyMzg1NiwgMC45ODY2NDgiLCBcCi0gICAgICAgICAgIjAuMDcwNDgsIDAuMjE0ODUyLCAwLjMzODgzNywgMC40OTgzNTksIDAuNjYwMzk5LCAwLjgyMzcyNywgMC45ODY5NzQiLCBcCi0gICAgICAgICAgIjAuMDgzMDQ1LCAwLjIyNjQ5MSwgMC4zNDY5MTEsIDAuNTAzMDMzLCAwLjY2MjI4MSwgMC44MjM4ODUsIDAuOTg3MzgiLCBcCi0gICAgICAgICAgIjAuMDkyOTQ5LCAwLjIzODIwNiwgMC4zNTU3NjksIDAuNTA4OTk5LCAwLjY2NjM2MywgMC44MjU5NDIsIDAuOTg3MjA2Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzNzUxMiwgMC4xNzAxMTQsIDAuMjc2MDUyLCAwLjQwODkzNSwgMC41NDA4NTcsIDAuNjczNTM5LCAwLjgwNTcwNiIsIFwKLSAgICAgICAgICAiMC4wNDM1NTksIDAuMTc2NDYxLCAwLjI4MjUxLCAwLjQxNDg0MSwgMC41NDcyOTgsIDAuNjc5NjU3LCAwLjgxMjA0NiIsIFwKLSAgICAgICAgICAiMC4wNTE1MDUsIDAuMTg0NjI0LCAwLjI5MDY3NSwgMC40MjMxMDYsIDAuNTU1NzMyLCAwLjY4Nzk2OSwgMC44MjExNzQiLCBcCi0gICAgICAgICAgIjAuMDU4Njc3LCAwLjE5Mjc3NiwgMC4yOTg4ODEsIDAuNDMxMzMsIDAuNTY0MjA0LCAwLjY5NjIwOSwgMC44Mjg2NzQiLCBcCi0gICAgICAgICAgIjAuMDY0OTgyLCAwLjIwMDk3MSwgMC4zMDcyNywgMC40Mzk3NDEsIDAuNTcyMjQ3LCAwLjcwNTAyNCwgMC44MzcwNjUiLCBcCi0gICAgICAgICAgIjAuMDczNDc5LCAwLjIxNDQxNywgMC4zMjA0NDIsIDAuNDUyOTY4LCAwLjU4NTg0MiwgMC43MTgzOTEsIDAuODUwODUiLCBcCi0gICAgICAgICAgIjAuMDc5OTI1LCAwLjIyNTkwNSwgMC4zMzIwMzEsIDAuNDY1MDg3LCAwLjU5Nzc0NiwgMC43MzAyMzMsIDAuODYzMTkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY2NjA1LCAwLjM0MDE0NSwgMC41NjAwNjksIDAuODMyNzYxLCAxLjEwNzgsIDEuMzgwNTEsIDEuNjU1MTgiLCBcCi0gICAgICAgICAgIjAuMDY3NDM1LCAwLjM0MDcwNiwgMC41NTg2NzgsIDAuODM0MjE3LCAxLjEwNjAxLCAxLjM4MjExLCAxLjY1NjgiLCBcCi0gICAgICAgICAgIjAuMDcxNzY0LCAwLjM0MDY2OCwgMC41NTkyNDEsIDAuODMyODYyLCAxLjEwNzAxLCAxLjM4MjY3LCAxLjY1Mzc1IiwgXAotICAgICAgICAgICIwLjA3NzY4OCwgMC4zNDA4MzksIDAuNTU5OTU5LCAwLjgzNDA5LCAxLjEwNjIyLCAxLjM4MjQ3LCAxLjY1NjcxIiwgXAotICAgICAgICAgICIwLjA4NDQzMSwgMC4zNDM2NTIsIDAuNTYwMjc1LCAwLjgzMzcwNCwgMS4xMDc4NSwgMS4zNzk1MywgMS42NTUzNCIsIFwKLSAgICAgICAgICAiMC4wOTUwMDIsIDAuMzQ4ODUyLCAwLjU2MjU4MywgMC44MzQzMTksIDEuMTA1OTQsIDEuMzgyMDMsIDEuNjU2NTciLCBcCi0gICAgICAgICAgIjAuMTAzNTUyLCAwLjM1NDI1LCAwLjU2NTg2MiwgMC44MzU3ODYsIDEuMTA4MzgsIDEuMzgyNCwgMS42NTI5NyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEwTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzNjg5LCAwLjAwMzcyOCwgMC4wMDM3MzYsIDAuMDAzNzM5LCAwLjAwMzc0LCAwLjAwMzc0MSwgMC4wMDM3NDUiLCBcCi0gICAgICAgICAgIjAuMDAzNjM0LCAwLjAwMzY5MSwgMC4wMDM2OTgsIDAuMDAzNzAyLCAwLjAwMzcwNCwgMC4wMDM3MDUsIDAuMDAzNzA1IiwgXAotICAgICAgICAgICIwLjAwMzY2LCAwLjAwMzcwOSwgMC4wMDM3MTUsIDAuMDAzNzE5LCAwLjAwMzcxOSwgMC4wMDM3MjQsIDAuMDAzNzIzIiwgXAotICAgICAgICAgICIwLjAwMzcxOSwgMC4wMDM3NTcsIDAuMDAzNzYsIDAuMDAzNzY2LCAwLjAwMzc2OCwgMC4wMDM3NjksIDAuMDAzNzciLCBcCi0gICAgICAgICAgIjAuMDAzNzY2LCAwLjAwMzgxNSwgMC4wMDM4MjQsIDAuMDAzODMyLCAwLjAwMzgzLCAwLjAwMzgzMywgMC4wMDM4MzIiLCBcCi0gICAgICAgICAgIjAuMDAzOTE1LCAwLjAwMzk0OCwgMC4wMDM5NTcsIDAuMDAzOTYxLCAwLjAwMzk2NCwgMC4wMDM5NjUsIDAuMDAzOTY3IiwgXAotICAgICAgICAgICIwLjAwNDExLCAwLjAwNDA5NSwgMC4wMDQwOTgsIDAuMDA0MDk4LCAwLjAwNDEwMiwgMC4wMDQxMDMsIDAuMDA0MTAyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0OTIzLCAwLjAwNTAwNywgMC4wMDUwMTcsIDAuMDA1MDIzLCAwLjAwNTAyNiwgMC4wMDUwMjgsIDAuMDA1MDI5IiwgXAotICAgICAgICAgICIwLjAwNDg5NSwgMC4wMDQ5OTcsIDAuMDA1MDEyLCAwLjAwNTAyLCAwLjAwNTAyNCwgMC4wMDUwMjYsIDAuMDA1MDI4IiwgXAotICAgICAgICAgICIwLjAwNDkzNCwgMC4wMDUwMzMsIDAuMDA1MDUxLCAwLjAwNTA2MSwgMC4wMDUwNjYsIDAuMDA1MDcsIDAuMDA1MDcyIiwgXAotICAgICAgICAgICIwLjAwNTAxMywgMC4wMDUxMDMsIDAuMDA1MTIyLCAwLjAwNTEzMywgMC4wMDUxNCwgMC4wMDUxNDMsIDAuMDA1MTQ2IiwgXAotICAgICAgICAgICIwLjAwNTEyOSwgMC4wMDUxOTQsIDAuMDA1MjEzLCAwLjAwNTIyNCwgMC4wMDUyMywgMC4wMDUyMzQsIDAuMDA1MjM3IiwgXAotICAgICAgICAgICIwLjAwNTMyOSwgMC4wMDUzNjIsIDAuMDA1Mzc5LCAwLjAwNTM5LCAwLjAwNTM5NiwgMC4wMDU0LCAwLjAwNTQwMyIsIFwKLSAgICAgICAgICAiMC4wMDU0OTMsIDAuMDA1NTEsIDAuMDA1NTI2LCAwLjAwNTUzNywgMC4wMDU1NDQsIDAuMDA1NTQ4LCAwLjAwNTU1MSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkExTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzNjg0LCAwLjAwMzczNSwgMC4wMDM3NDEsIDAuMDAzNzQ1LCAwLjAwMzc0NiwgMC4wMDM3NDcsIDAuMDAzNzUiLCBcCi0gICAgICAgICAgIjAuMDAzNjYxLCAwLjAwMzcyNSwgMC4wMDM3MzIsIDAuMDAzNzM3LCAwLjAwMzczOSwgMC4wMDM3NDIsIDAuMDAzNzQzIiwgXAotICAgICAgICAgICIwLjAwMzcxNSwgMC4wMDM3NjksIDAuMDAzNzc3LCAwLjAwMzc4NCwgMC4wMDM3ODcsIDAuMDAzNzg4LCAwLjAwMzc4OSIsIFwKLSAgICAgICAgICAiMC4wMDM3OTUsIDAuMDAzODQ4LCAwLjAwMzg1NywgMC4wMDM4NjIsIDAuMDAzODYzLCAwLjAwMzg2NywgMC4wMDM4NjgiLCBcCi0gICAgICAgICAgIjAuMDAzOTA2LCAwLjAwMzkyMiwgMC4wMDM5MzQsIDAuMDAzOTM2LCAwLjAwMzkzOSwgMC4wMDM5NDIsIDAuMDAzOTQzIiwgXAotICAgICAgICAgICIwLjAwNDA4MiwgMC4wMDQwOTQsIDAuMDA0MDk2LCAwLjAwNDEsIDAuMDA0MTAzLCAwLjAwNDEwNCwgMC4wMDQxMDQiLCBcCi0gICAgICAgICAgIjAuMDA0MjYzLCAwLjAwNDI1MiwgMC4wMDQyNTksIDAuMDA0MjYxLCAwLjAwNDI2LCAwLjAwNDI2NiwgMC4wMDQyNjMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQ1NDgsIDAuMDA0NjI5LCAwLjAwNDYzOSwgMC4wMDQ2NDQsIDAuMDA0NjQ2LCAwLjAwNDY0OCwgMC4wMDQ2NDkiLCBcCi0gICAgICAgICAgIjAuMDA0NTIyLCAwLjAwNDYxOCwgMC4wMDQ2MzEsIDAuMDA0NjM4LCAwLjAwNDY0MiwgMC4wMDQ2NDQsIDAuMDA0NjQ2IiwgXAotICAgICAgICAgICIwLjAwNDU1MSwgMC4wMDQ2NDYsIDAuMDA0NjYyLCAwLjAwNDY3MSwgMC4wMDQ2NzYsIDAuMDA0Njc5LCAwLjAwNDY4MSIsIFwKLSAgICAgICAgICAiMC4wMDQ2MjksIDAuMDA0NzE2LCAwLjAwNDczNCwgMC4wMDQ3MzksIDAuMDA0NzQ5LCAwLjAwNDc0OCwgMC4wMDQ3NTUiLCBcCi0gICAgICAgICAgIjAuMDA0NzEyLCAwLjAwNDgwNiwgMC4wMDQ4MjIsIDAuMDA0ODIzLCAwLjAwNDgzNywgMC4wMDQ4MzIsIDAuMDA0ODQzIiwgXAotICAgICAgICAgICIwLjAwNDg4MywgMC4wMDQ5NDksIDAuMDA0OTY3LCAwLjAwNDk3NywgMC4wMDQ5ODgsIDAuMDA0OTkzLCAwLjAwNDk5NiIsIFwKLSAgICAgICAgICAiMC4wMDUwMzgsIDAuMDA1MDg2LCAwLjAwNTEwNywgMC4wMDUxMiwgMC4wMDUxMjcsIDAuMDA1MTQzLCAwLjAwNTE0NyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDM2MjYsIDAuMDAzNjQsIDAuMDAzNjQxLCAwLjAwMzY0MSwgMC4wMDM2NDEsIDAuMDAzNjQyLCAwLjAwMzY0MSIsIFwKLSAgICAgICAgICAiMC4wMDM2MTIsIDAuMDAzNjI3LCAwLjAwMzYyOCwgMC4wMDM2MjYsIDAuMDAzNjMsIDAuMDAzNjMxLCAwLjAwMzYzMSIsIFwKLSAgICAgICAgICAiMC4wMDM2NzUsIDAuMDAzNjYxLCAwLjAwMzY0OSwgMC4wMDM2NDUsIDAuMDAzNjM4LCAwLjAwMzYzNSwgMC4wMDM2MzQiLCBcCi0gICAgICAgICAgIjAuMDAzODU1LCAwLjAwMzcwNSwgMC4wMDM2OCwgMC4wMDM2NjIsIDAuMDAzNjU4LCAwLjAwMzY0OSwgMC4wMDM2NDYiLCBcCi0gICAgICAgICAgIjAuMDA0MDIyLCAwLjAwMzc2OCwgMC4wMDM3MjQsIDAuMDAzNjk2LCAwLjAwMzY5NiwgMC4wMDM2NzQsIDAuMDAzNjY3IiwgXAotICAgICAgICAgICIwLjAwNDQwOSwgMC4wMDM5MjUsIDAuMDAzODI2LCAwLjAwMzc3MywgMC4wMDM3NDIsIDAuMDAzNzI2LCAwLjAwMzcxMSIsIFwKLSAgICAgICAgICAiMC4wMDQ3NzgsIDAuMDA0MDksIDAuMDAzOTM5LCAwLjAwMzg1NCwgMC4wMDM4MDQsIDAuMDAzNzc4LCAwLjAwMzc1NyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTIyOCwgMC4wMDEyNjcsIDAuMDAxMjcxLCAwLjAwMTI3MywgMC4wMDEyNzQsIDAuMDAxMjc1LCAwLjAwMTI3NSIsIFwKLSAgICAgICAgICAiMC4wMDExMTgsIDAuMDAxMjMyLCAwLjAwMTI0OSwgMC4wMDEyNTgsIDAuMDAxMjYzLCAwLjAwMTI2NiwgMC4wMDEyNjgiLCBcCi0gICAgICAgICAgIjAuMDAxMTEyLCAwLjAwMTIxLCAwLjAwMTIzMywgMC4wMDEyNDYsIDAuMDAxMjU0LCAwLjAwMTI1OCwgMC4wMDEyNjEiLCBcCi0gICAgICAgICAgIjAuMDAxMTg2LCAwLjAwMTIxMywgMC4wMDEyMzIsIDAuMDAxMjQ0LCAwLjAwMTI1MiwgMC4wMDEyNTYsIDAuMDAxMjYiLCBcCi0gICAgICAgICAgIjAuMDAxMzE4LCAwLjAwMTIzOSwgMC4wMDEyNDcsIDAuMDAxMjUzLCAwLjAwMTI1OCwgMC4wMDEyNjEsIDAuMDAxMjYzIiwgXAotICAgICAgICAgICIwLjAwMTU5OSwgMC4wMDEzMjIsIDAuMDAxMywgMC4wMDEyOSwgMC4wMDEyODUsIDAuMDAxMjgzLCAwLjAwMTI4MiIsIFwKLSAgICAgICAgICAiMC4wMDE4ODMsIDAuMDAxNDI2LCAwLjAwMTM2NywgMC4wMDEzMzgsIDAuMDAxMzI0LCAwLjAwMTMxNSwgMC4wMDEzMDgiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IE9BSTJCQjJYMSAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKE9BSTJCQjJYMSkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjQ5MjM0NTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQTBOKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2NTcyMjE7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjU3MjIxOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDY1NzE0NjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA0NzksIDAuMDAwNDg4LCAwLjAwMDU3LCAwLjAwMDY3OSwgMC4wMDA4MDYsIDAuMDAxMDM1LCAwLjAwMTIyNiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTk0OCwgMC4wMDE5NjIsIDAuMDAyMDM4LCAwLjAwMjE0OCwgMC4wMDIyNzYsIDAuMDAyNTAxLCAwLjAwMjY5MSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQTFOKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2NjIwODI7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjYyMDgyOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDY2MjA0NjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA0OTEsIDAuMDAwNDk0LCAwLjAwMDU3LCAwLjAwMDY3NCwgMC4wMDA3OTYsIDAuMDAxMDE3LCAwLjAwMTIwOSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjM3LCAwLjAwMjM3OCwgMC4wMDI0NTIsIDAuMDAyNTU1LCAwLjAwMjY3NywgMC4wMDI5MDgsIDAuMDAzMDg3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwODkwNjc3OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDg4Njg4OTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA4OTA2Nzc7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNDY0LCAwLjAwMDQ5NywgMC4wMDA1MDIsIDAuMDAwNTA3LCAwLjAwMDUxMSwgMC4wMDA1MTUsIDAuMDAwNTE2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNTM5LCAwLjAwMDU0LCAwLjAwMDU0LCAwLjAwMDU0LCAwLjAwMDU0LCAwLjAwMDU0LCAwLjAwMDU0Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCMSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwOTM2MTA5OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDkzNjEwOTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA5MzU3OTg7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMTI3LCAwLjAwMDEyNywgMC4wMDAxMjcsIDAuMDAwMTI3LCAwLjAwMDEyNywgMC4wMDAxMjcsIDAuMDAwMTI3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNDEzLCAwLjAwMDQxMywgMC4wMDA0MTMsIDAuMDAwNDEzLCAwLjAwMDQxMywgMC4wMDA0MTMsIDAuMDAwNDEzIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMTg4MTc5OwotICAgIGZ1bmN0aW9uIDogIighKChCMCtCMSkgKCEoQTBOIEExTikpKSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEwTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg2MTk3LCAwLjExOTkxMSwgMC4zMTAyNzUsIDAuNDc4MTg5LCAwLjcwMTY2OSwgMS4xNDkyOSwgMS40Mjg3OSIsIFwKLSAgICAgICAgICAiMC4wOTM3NywgMC4xMjc0NzgsIDAuMzE3OTEsIDAuNDg1ODM5LCAwLjcwOTE5NiwgMS4xNTY2MSwgMS40MzY4NCIsIFwKLSAgICAgICAgICAiMC4xMDAwMjQsIDAuMTMzNzI2LCAwLjMyNDIyMywgMC40OTIwNzUsIDAuNzE1NjY1LCAxLjE2MjksIDEuNDQyMzgiLCBcCi0gICAgICAgICAgIjAuMTA0NjczLCAwLjEzODMzMiwgMC4zMjg4OTEsIDAuNDk2NzczLCAwLjcyMDU3MSwgMS4xNjc3MiwgMS40NDY3NyIsIFwKLSAgICAgICAgICAiMC4xMDg0MDgsIDAuMTQyMDU5LCAwLjMzMjYzNSwgMC41MDA0OTMsIDAuNzIzODksIDEuMTcwNzUsIDEuNDUxMzQiLCBcCi0gICAgICAgICAgIjAuMTEzNTA4LCAwLjE0NzE0NiwgMC4zMzc2OTMsIDAuNTA1NTUsIDAuNzI5MDA1LCAxLjE3NTg5LCAxLjQ1NTk4IiwgXAotICAgICAgICAgICIwLjExNzM4NywgMC4xNTA5MjksIDAuMzQxNjEyLCAwLjUwOTM4LCAwLjczMjkxMiwgMS4xODA1NSwgMS40NjA0Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE0ODQ2NiwgMC4yMTkzNDcsIDAuNjIxMjA3LCAwLjk3NjAwOSwgMS40NDg5LCAyLjM5NDEzLCAyLjk4NTEiLCBcCi0gICAgICAgICAgIjAuMTQ4NDU4LCAwLjIxOTMzMywgMC42MjEzMjksIDAuOTc2MDMyLCAxLjQ0ODc0LCAyLjM5NDEyLCAyLjk4NDk0IiwgXAotICAgICAgICAgICIwLjE0ODUxMSwgMC4yMTkzMjQsIDAuNjIxMTg1LCAwLjk3NjA1NSwgMS40NDkwNSwgMi4zOTQzNCwgMi45ODQ4MyIsIFwKLSAgICAgICAgICAiMC4xNDg1OTcsIDAuMjE5MzU2LCAwLjYyMTI0MSwgMC45NzYwNywgMS40NDg5MywgMi4zOTQyOCwgMi45ODQ3OCIsIFwKLSAgICAgICAgICAiMC4xNDg2NzMsIDAuMjE5Mzg5LCAwLjYyMTE2MSwgMC45NzU5NTQsIDEuNDQ4NzEsIDIuMzk0MDEsIDIuOTg0OTYiLCBcCi0gICAgICAgICAgIjAuMTQ4ODMzLCAwLjIxOTQ3NSwgMC42MjEyNTQsIDAuOTc2MDA2LCAxLjQ0ODg5LCAyLjM5NDE2LCAyLjk4NDgyIiwgXAotICAgICAgICAgICIwLjE0OTE3NywgMC4yMTk2MTksIDAuNjIxMjIsIDAuOTc1OTIsIDEuNDQ4ODcsIDIuMzk0MjIsIDIuOTg0ODkiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg3OTE5LCAwLjEyMDYzLCAwLjMwNTM5MywgMC40NjgzMjMsIDAuNjg1NzQzLCAxLjExOTY4LCAxLjM5MTQ3IiwgXAotICAgICAgICAgICIwLjA5NTQ1NywgMC4xMjgxOTEsIDAuMzEzMDE5LCAwLjQ3NTg4LCAwLjY5MzE3MywgMS4xMjgyMywgMS40MDA1NCIsIFwKLSAgICAgICAgICAiMC4xMDE3MzksIDAuMTM0NDQxLCAwLjMxOTM0NCwgMC40ODIyMTMsIDAuNjk5Mzg5LCAxLjEzNDMzLCAxLjQwNjQ1IiwgXAotICAgICAgICAgICIwLjEwNjI3NiwgMC4xMzg5NzgsIDAuMzIzNzk1LCAwLjQ4NzAxNCwgMC43MDQ0ODgsIDEuMTM4NTgsIDEuNDEwMjYiLCBcCi0gICAgICAgICAgIjAuMTA5ODcsIDAuMTQyNTk4LCAwLjMyNzQwMiwgMC40OTAzNDIsIDAuNzA3ODU4LCAxLjE0Mjk2LCAxLjQxMzQzIiwgXAotICAgICAgICAgICIwLjExNDY1OSwgMC4xNDczNzEsIDAuMzMyMTQzLCAwLjQ5NTMzMiwgMC43MTIzMjksIDEuMTQ2NzYsIDEuNDE4MzgiLCBcCi0gICAgICAgICAgIjAuMTE4MTU3LCAwLjE1MDc1OSwgMC4zMzU2NSwgMC40OTg2MSwgMC43MTYwODIsIDEuMTUwNTQsIDEuNDIyMTgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTM1MjUyLCAwLjIwMjQ3NSwgMC41ODM2MDYsIDAuOTE5NDA3LCAxLjM2NzY2LCAyLjI2NTA1LCAyLjgyNDgyIiwgXAotICAgICAgICAgICIwLjEzNTI3NCwgMC4yMDI0ODUsIDAuNTgzNjUzLCAwLjkxOTM5OCwgMS4zNjc5MywgMi4yNjQsIDIuODI0NjQiLCBcCi0gICAgICAgICAgIjAuMTM1MjcxLCAwLjIwMjU1OCwgMC41ODM1NjgsIDAuOTE5NDE2LCAxLjM2NzM5LCAyLjI2MzcxLCAyLjgyNDIiLCBcCi0gICAgICAgICAgIjAuMTM1MzUxLCAwLjIwMjU3MywgMC41ODM1ODEsIDAuOTE5NzIzLCAxLjM2NzcyLCAyLjI2NDU3LCAyLjgyMzIiLCBcCi0gICAgICAgICAgIjAuMTM1NDM1LCAwLjIwMjUyMywgMC41ODM1NTEsIDAuOTE5MzI2LCAxLjM2NzcxLCAyLjI2NDA4LCAyLjgyMzE2IiwgXAotICAgICAgICAgICIwLjEzNTQ3NywgMC4yMDI1NjUsIDAuNTgzNTE2LCAwLjkxOTc3MSwgMS4zNjczNywgMi4yNjM0MSwgMi44MjMyMSIsIFwKLSAgICAgICAgICAiMC4xMzU3ODEsIDAuMjAyNTIzLCAwLjU4MzY2NiwgMC45MTk3MTksIDEuMzY3NTYsIDIuMjYzMTcsIDIuODIzMDUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTFOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODU0MTMsIDAuMTE5MDU4LCAwLjMwOTU1NywgMC40Nzc0MzksIDAuNzAwNzk5LCAxLjE0ODE5LCAxLjQyODkiLCBcCi0gICAgICAgICAgIjAuMDkzMTUzLCAwLjEyNjg1MywgMC4zMTczMzgsIDAuNDg1MTQ4LCAwLjcwODY2MywgMS4xNTYwMSwgMS40MzU3OSIsIFwKLSAgICAgICAgICAiMC4xMDAyNDEsIDAuMTMzODk5LCAwLjMyNDQ0NCwgMC40OTIyNTQsIDAuNzE1NjMsIDEuMTYzMjEsIDEuNDQyOCIsIFwKLSAgICAgICAgICAiMC4xMDU0NzcsIDAuMTM5MTEzLCAwLjMyOTY1MiwgMC40OTc1NDEsIDAuNzIxMjIxLCAxLjE2ODg3LCAxLjQ0OTA0IiwgXAotICAgICAgICAgICIwLjEwOTc2NiwgMC4xNDMzNzksIDAuMzMzOTEyLCAwLjUwMTcxLCAwLjcyNTQ3MSwgMS4xNzIxLCAxLjQ1MjkxIiwgXAotICAgICAgICAgICIwLjExNTMyMSwgMC4xNDg5MjMsIDAuMzM5NDQsIDAuNTA3MjE2LCAwLjczMDY4NSwgMS4xNzc2LCAxLjQ1NzYzIiwgXAotICAgICAgICAgICIwLjExOTg4NiwgMC4xNTMzNzksIDAuMzQzODcsIDAuNTExNTM4LCAwLjczNTE5OCwgMS4xODMwMywgMS40NjEzIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE0ODQ4MiwgMC4yMTkzODYsIDAuNjIxMjMsIDAuOTc2MDYzLCAxLjQ0ODQyLCAyLjM5NDA2LCAyLjk4NDQ0IiwgXAotICAgICAgICAgICIwLjE0ODQ5MiwgMC4yMTkzNzIsIDAuNjIxMjA4LCAwLjk3NjAzOSwgMS40NDg3MiwgMi4zOTQ1MywgMi45ODUwNiIsIFwKLSAgICAgICAgICAiMC4xNDg2MDgsIDAuMjE5Mzg3LCAwLjYyMTE5MywgMC45NzYwMTMsIDEuNDQ4OTEsIDIuMzk0MTIsIDIuOTg1MDQiLCBcCi0gICAgICAgICAgIjAuMTQ4NzY5LCAwLjIxOTQxOSwgMC42MjEzMzUsIDAuOTc2MDYyLCAxLjQ0ODgzLCAyLjM5NDI5LCAyLjk4NDUiLCBcCi0gICAgICAgICAgIjAuMTQ4OTQ3LCAwLjIxOTUyOCwgMC42MjEyNjYsIDAuOTc1OTgsIDEuNDQ4NTksIDIuMzkzOTYsIDIuOTg1MSIsIFwKLSAgICAgICAgICAiMC4xNDkyNzcsIDAuMjE5NjY3LCAwLjYyMTMxOSwgMC45NzYwMDIsIDEuNDQ4ODEsIDIuMzk0MTcsIDIuOTg0OTIiLCBcCi0gICAgICAgICAgIjAuMTQ5Nzk3LCAwLjIxOTg1OCwgMC42MjEyMjksIDAuOTc2MDEsIDEuNDQ4OTQsIDIuMzk0MDEsIDIuOTg1MDIiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg2ODUxLCAwLjExOTUyOCwgMC4zMDQ0MTcsIDAuNDY3MTk5LCAwLjY4NDQ3NiwgMS4xMTg2NSwgMS4zOTE3NiIsIFwKLSAgICAgICAgICAiMC4wOTQ1ODYsIDAuMTI3Mjc5LCAwLjMxMjA0NCwgMC40NzQ5NzQsIDAuNjkyMTgyLCAxLjEyNjcyLCAxLjM5ODk5IiwgXAotICAgICAgICAgICIwLjEwMTQ4OCwgMC4xMzQyMDcsIDAuMzE4OTk0LCAwLjQ4MTk2NiwgMC42OTkxMDksIDEuMTMzNjMsIDEuNDA1OTgiLCBcCi0gICAgICAgICAgIjAuMTA2NTMsIDAuMTM5MjUyLCAwLjMyNDEwMSwgMC40ODcwNDksIDAuNzA0MjM2LCAxLjEzOTUzLCAxLjQwOTk3IiwgXAotICAgICAgICAgICIwLjExMDUxOSwgMC4xNDMyNDcsIDAuMzI4MDc0LCAwLjQ5MTA4OCwgMC43MDgzNDYsIDEuMTQyOTcsIDEuNDE0MjYiLCBcCi0gICAgICAgICAgIjAuMTE1NzcxLCAwLjE0ODUxOSwgMC4zMzMzNzcsIDAuNDk2Mjc1LCAwLjcxMzYwNiwgMS4xNDc5NCwgMS40MTk4OCIsIFwKLSAgICAgICAgICAiMC4xMTk2NCwgMC4xNTIzOSwgMC4zMzcxNzEsIDAuNTAwMzM1LCAwLjcxNzM3NSwgMS4xNTE5MSwgMS40MjMzNyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMzEwMzcsIDAuMTk4MjI1LCAwLjU3OTI2MywgMC45MTQ5MTIsIDEuMzYzMjMsIDIuMjU4NjYsIDIuODE5ODQiLCBcCi0gICAgICAgICAgIjAuMTMxMDQxLCAwLjE5ODIxMiwgMC41NzkxNiwgMC45MTQ5MTQsIDEuMzYzMSwgMi4yNTk5NywgMi44MTkzNCIsIFwKLSAgICAgICAgICAiMC4xMzEwNzMsIDAuMTk4MjI0LCAwLjU3OTE1OSwgMC45MTQ5NDYsIDEuMzYyODcsIDIuMjU5NjEsIDIuODE5MzYiLCBcCi0gICAgICAgICAgIjAuMTMxMTc3LCAwLjE5ODIyMywgMC41NzkyMTYsIDAuOTE0OTIzLCAxLjM2Mjg4LCAyLjI1OTMyLCAyLjgxODUyIiwgXAotICAgICAgICAgICIwLjEzMTI1OSwgMC4xOTgzMDEsIDAuNTc5MTI0LCAwLjkxNDg0OCwgMS4zNjI3NywgMi4yNTkyLCAyLjgxOTgxIiwgXAotICAgICAgICAgICIwLjEzMTM2MywgMC4xOTg0MSwgMC41NzkwNDIsIDAuOTE1MjA2LCAxLjM2Mjc3LCAyLjI1ODczLCAyLjgxOTY5IiwgXAotICAgICAgICAgICIwLjEzMTc0OSwgMC4xOTgzOTYsIDAuNTc5MzA1LCAwLjkxNTAyLCAxLjM2MjgzLCAyLjI1ODYzLCAyLjgxODY2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjg3NzMsIDAuMTAyNTQ4LCAwLjI5Mzc1NywgMC40NjE5NTIsIDAuNjg2MSwgMS4xMzQyMywgMS40MTM2MiIsIFwKLSAgICAgICAgICAiMC4wNzQ5ODIsIDAuMTA4ODYsIDAuMzAwMTE4LCAwLjQ2ODM1LCAwLjY5MjMxMywgMS4xNDAxLCAxLjQyMTM2IiwgXAotICAgICAgICAgICIwLjA4MjI5MywgMC4xMTYyNjIsIDAuMzA3NTY1LCAwLjQ3NTg3NiwgMC42OTk5MjYsIDEuMTQ3NjYsIDEuNDI3NTYiLCBcCi0gICAgICAgICAgIjAuMDg5NzEzLCAwLjEyMzU2MSwgMC4zMTUxNTIsIDAuNDgzNTE2LCAwLjcwNzQ2LCAxLjE1NTMsIDEuNDM1MTYiLCBcCi0gICAgICAgICAgIjAuMDk3MDUxLCAwLjEzMDk5NiwgMC4zMjI2NzEsIDAuNDkwOTUzLCAwLjcxNDkzOCwgMS4xNjI3NCwgMS40NDM3MiIsIFwKLSAgICAgICAgICAiMC4xMDcyNzgsIDAuMTQyNzIyLCAwLjMzNDIxNywgMC41MDMwMzYsIDAuNzI3MDY0LCAxLjE3NDg2LCAxLjQ1NDcxIiwgXAotICAgICAgICAgICIwLjExNTEyNSwgMC4xNTI0MTIsIDAuMzQ0Nzg1LCAwLjUxMzI0MywgMC43Mzc2OSwgMS4xODU1MywgMS40NjU0Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE0MTA1NCwgMC4yMTE5NTMsIDAuNjE0NDQzLCAwLjk2OTY5NSwgMS40NDM1NCwgMi4zOTA3MiwgMi45ODMzIiwgXAotICAgICAgICAgICIwLjE0MTA5MywgMC4yMTIwMDksIDAuNjE0NDI5LCAwLjk2OTcyMiwgMS40NDM0LCAyLjM5MSwgMi45ODMzMiIsIFwKLSAgICAgICAgICAiMC4xNDMyNzIsIDAuMjEyODQsIDAuNjE0NTA2LCAwLjk2OTgzNCwgMS40NDM1NCwgMi4zOTA3NCwgMi45ODMxIiwgXAotICAgICAgICAgICIwLjE0NzM0OCwgMC4yMTU1MTEsIDAuNjE0NDMyLCAwLjk2OTg0OSwgMS40NDM1LCAyLjM5MTE3LCAyLjk4MzIyIiwgXAotICAgICAgICAgICIwLjE1MjM4NywgMC4yMTk0NTgsIDAuNjE0NzczLCAwLjk2OTY5NywgMS40NDM0NiwgMi4zOTA3MSwgMi45ODMxIiwgXAotICAgICAgICAgICIwLjE2MTYyNiwgMC4yMjcwOTksIDAuNjE2OTM5LCAwLjk2OTc3OSwgMS40NDMzOSwgMi4zOTA2NywgMi45ODMyIiwgXAotICAgICAgICAgICIwLjE3MDU4NSwgMC4yMzQ4NDIsIDAuNjIwMzE3LCAwLjk3MDg5NiwgMS40NDMzOSwgMi4zOTExMiwgMi45ODMxNyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzA5MjMsIDAuMTAzNjM4LCAwLjI4ODQ5MSwgMC40NTE0NzMsIDAuNjY4NzQ4LCAxLjEwMzMzLCAxLjM3NTg2IiwgXAotICAgICAgICAgICIwLjA3ODYwNywgMC4xMTEzMjMsIDAuMjk2MDYxLCAwLjQ1ODk1OCwgMC42NzYzMjYsIDEuMTExMDQsIDEuMzgxODkiLCBcCi0gICAgICAgICAgIjAuMDg4MzM3LCAwLjEyMTE1OCwgMC4zMDU5OTcsIDAuNDY4ODYzLCAwLjY4NjAxNiwgMS4xMjA1NywgMS4zOTI3IiwgXAotICAgICAgICAgICIwLjA5ODA4NCwgMC4xMzA4NDMsIDAuMzE1NDc5LCAwLjQ3ODEwOCwgMC42OTUyMzksIDEuMTI5NjMsIDEuNDAyMDciLCBcCi0gICAgICAgICAgIjAuMTA4MTYsIDAuMTQwNjQzLCAwLjMyNTExMSwgMC40ODgwNTcsIDAuNzA1NTc0LCAxLjE0MDE5LCAxLjQxMDkzIiwgXAotICAgICAgICAgICIwLjEyMzkwNCwgMC4xNTY4NTIsIDAuMzQwOTIxLCAwLjUwMTY3LCAwLjcyMDgzLCAxLjE1NTI0LCAxLjQyNjY0IiwgXAotICAgICAgICAgICIwLjEzNTYxNSwgMC4xNzEwNzksIDAuMzU0ODkzLCAwLjUxNzUxNywgMC43MzQ2MywgMS4xNjg4MSwgMS40NDAzNyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMzUyNCwgMC4yMDI1MTgsIDAuNTgzNzAxLCAwLjkxOTY5NCwgMS4zNjc3LCAyLjI2MzUxLCAyLjgyNDMyIiwgXAotICAgICAgICAgICIwLjEzNTE0OCwgMC4yMDI0NywgMC41ODM2MDEsIDAuOTE5NjI1LCAxLjM2NzU4LCAyLjI2Mzk2LCAyLjgyMzIyIiwgXAotICAgICAgICAgICIwLjEzNzk4NywgMC4yMDMzMzEsIDAuNTgzNDY0LCAwLjkxOTQyMiwgMS4zNjczNywgMi4yNjQxMiwgMi44MjM4MyIsIFwKLSAgICAgICAgICAiMC4xNDM4NjUsIDAuMjA3MTE2LCAwLjU4MzU1NCwgMC45MTk2NTEsIDEuMzY3NTgsIDIuMjYzNSwgMi44MjQwMSIsIFwKLSAgICAgICAgICAiMC4xNTA5MzMsIDAuMjEyODg5LCAwLjU4MzcyMSwgMC45MTk2NTMsIDEuMzY3ODQsIDIuMjY0MDEsIDIuODIzMTYiLCBcCi0gICAgICAgICAgIjAuMTYzODQyLCAwLjIyMzcwMiwgMC41ODY0NTIsIDAuOTE5MzA5LCAxLjM2ODQsIDIuMjY0NzEsIDIuODIzNDMiLCBcCi0gICAgICAgICAgIjAuMTc2MDI2LCAwLjIzNDY1MSwgMC41OTEwNjEsIDAuOTIwMjU3LCAxLjM2NzM4LCAyLjI2MzI5LCAyLjgyMzQyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIxIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjY1MDgsIDAuMTAwMjQ3LCAwLjI5MTQ2NCwgMC40NTk2OTQsIDAuNjgzODE4LCAxLjEzMjMzLCAxLjQxMjY5IiwgXAotICAgICAgICAgICIwLjA3NDA4OSwgMC4xMDc5MDYsIDAuMjk5MTY2LCAwLjQ2NzQyNywgMC42OTEzNzcsIDEuMTM5NDEsIDEuNDE5MTkiLCBcCi0gICAgICAgICAgIjAuMDgzNTIsIDAuMTE3MzQ1LCAwLjMwODU0OSwgMC40NzY3NjMsIDAuNzAwODMzLCAxLjE0ODc0LCAxLjQyODM5IiwgXAotICAgICAgICAgICIwLjA5MzM1MywgMC4xMjcwNzEsIDAuMzE4MjUxLCAwLjQ4NjQ1MiwgMC43MTA0MDcsIDEuMTU4NTIsIDEuNDM4MTkiLCBcCi0gICAgICAgICAgIjAuMTAzMjU0LCAwLjEzNjgyLCAwLjMyNzkwOCwgMC40OTYwMzgsIDAuNzIwMDEzLCAxLjE2ODM4LCAxLjQ0OTA4IiwgXAotICAgICAgICAgICIwLjExNzY3NiwgMC4xNTI3MDIsIDAuMzQzMzU2LCAwLjUwOTUwNCwgMC43MzUzNzIsIDEuMTgzMDgsIDEuNDYyOSIsIFwKLSAgICAgICAgICAiMC4xMjg0NDQsIDAuMTY2MzE4LCAwLjM1Njk3OCwgMC41MjUwODUsIDAuNzQ4ODczLCAxLjE5NjU2LCAxLjQ3NjM4Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE0MTA1MywgMC4yMTE5NSwgMC42MTQ0NzgsIDAuOTY5NjY0LCAxLjQ0MzQ4LCAyLjM5MDYsIDIuOTgzMjgiLCBcCi0gICAgICAgICAgIjAuMTQxMTExLCAwLjIxMjAwNiwgMC42MTQ3MzgsIDAuOTY5ODEsIDEuNDQzMzgsIDIuMzkxMTYsIDIuOTgzMSIsIFwKLSAgICAgICAgICAiMC4xNDQ3NDQsIDAuMjEzMjg0LCAwLjYxNDQ3MywgMC45Njk3MDMsIDEuNDQzNTMsIDIuMzkwOTEsIDIuOTgyNzQiLCBcCi0gICAgICAgICAgIjAuMTUwOTg2LCAwLjIxNzQ3OSwgMC42MTQ0NjUsIDAuOTY5NzY4LCAxLjQ0MzM4LCAyLjM5MTAxLCAyLjk4Mjk0IiwgXAotICAgICAgICAgICIwLjE1ODU5MSwgMC4yMjMzMzEsIDAuNjE0NjEzLCAwLjk2OTczNiwgMS40NDMzLCAyLjM5MDY2LCAyLjk4MzMiLCBcCi0gICAgICAgICAgIjAuMTcyMDQ5LCAwLjIzNDkzMiwgMC42MTc1NCwgMC45Njk3MzMsIDEuNDQzNCwgMi4zOTA1NSwgMi45ODMzMSIsIFwKLSAgICAgICAgICAiMC4xODQ0NTksIDAuMjQ2MTQ2LCAwLjYyMjM5MiwgMC45NzA2MzQsIDEuNDQzMzgsIDIuMzkxMDgsIDIuOTgzMTciKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY3NzM3LCAwLjEwMDQwMywgMC4yODUzMiwgMC40NDgzMDQsIDAuNjY1MzUzLCAxLjEwMDM4LCAxLjM3MjI3IiwgXAotICAgICAgICAgICIwLjA3NTQzNCwgMC4xMDgxMjYsIDAuMjkyOTUzLCAwLjQ1NjAyOCwgMC42NzMyOCwgMS4xMDgyNCwgMS4zNzg5OCIsIFwKLSAgICAgICAgICAiMC4wODQ5MDYsIDAuMTE3NiwgMC4zMDI0MTksIDAuNDY1MjkyLCAwLjY4MjQxMSwgMS4xMTY5MSwgMS4zODkzIiwgXAotICAgICAgICAgICIwLjA5NDk3OCwgMC4xMjc1NTgsIDAuMzEyMDA4LCAwLjQ3NTAzNCwgMC42OTIwMjIsIDEuMTI2NDEsIDEuMzk4OSIsIFwKLSAgICAgICAgICAiMC4xMDQ4MjQsIDAuMTM3MzI1LCAwLjMyMTg1MywgMC40ODQ4NCwgMC43MDIzNjMsIDEuMTM2NTcsIDEuNDA3NTIiLCBcCi0gICAgICAgICAgIjAuMTIwMTI5LCAwLjE1MzQ4NSwgMC4zMzc3MDUsIDAuNDk4NDE3LCAwLjcxNzU4NCwgMS4xNTE5OCwgMS40MjM0IiwgXAotICAgICAgICAgICIwLjEzMTQyMiwgMC4xNjc1MzUsIDAuMzUxNTYyLCAwLjUxNDI4NSwgMC43MzEzNzQsIDEuMTY1NjIsIDEuNDM3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEzMTAzNywgMC4xOTgzODgsIDAuNTc5NDA0LCAwLjkxNTE2MiwgMS4zNjMwOCwgMi4yNTkxOCwgMi44MTkzOSIsIFwKLSAgICAgICAgICAiMC4xMzA5MjUsIDAuMTk4MjM0LCAwLjU3OTE2MSwgMC45MTUxOCwgMS4zNjMyLCAyLjI1OTMxLCAyLjgxODIxIiwgXAotICAgICAgICAgICIwLjEzNDA0LCAwLjE5OTE1NSwgMC41NzkyMjMsIDAuOTE0ODcxLCAxLjM2MjgzLCAyLjI1OTY0LCAyLjgxOTM2IiwgXAotICAgICAgICAgICIwLjEzOTgzNiwgMC4yMDI5ODIsIDAuNTc5MTYxLCAwLjkxNTE4NiwgMS4zNjI3OCwgMi4yNTg3MSwgMi44MTkzIiwgXAotICAgICAgICAgICIwLjE0NzIxNCwgMC4yMDg4MDUsIDAuNTc5MzAyLCAwLjkxNTIyNCwgMS4zNjMyMSwgMi4yNTk0MiwgMi44MTg0NCIsIFwKLSAgICAgICAgICAiMC4xNjAyNzgsIDAuMjE5ODY1LCAwLjU4MjA1MywgMC45MTQ4MTEsIDEuMzYzLCAyLjI2MDEzLCAyLjgxODMzIiwgXAotICAgICAgICAgICIwLjE3MjcyLCAwLjIzMDcwMSwgMC41ODY4MDMsIDAuOTE1OTU3LCAxLjM2Mjc5LCAyLjI1ODYzLCAyLjgxODQ2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTBOIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQ0ODQsIDAuMDA0NDg0LCAwLjAwNDQ4NCwgMC4wMDQ0ODMsIDAuMDA0NDgzLCAwLjAwNDQ4MiwgMC4wMDQ0ODIiLCBcCi0gICAgICAgICAgIjAuMDA0NDksIDAuMDA0NDkyLCAwLjAwNDQ5NCwgMC4wMDQ0OTMsIDAuMDA0NDk0LCAwLjAwNDQ5MywgMC4wMDQ0OSIsIFwKLSAgICAgICAgICAiMC4wMDQ1NjMsIDAuMDA0NTY3LCAwLjAwNDU2OSwgMC4wMDQ1NjksIDAuMDA0NTY5LCAwLjAwNDU2OCwgMC4wMDQ1NjgiLCBcCi0gICAgICAgICAgIjAuMDA0NjY3LCAwLjAwNDY2OSwgMC4wMDQ2NzMsIDAuMDA0Njc0LCAwLjAwNDY3NCwgMC4wMDQ2NzIsIDAuMDA0NjcyIiwgXAotICAgICAgICAgICIwLjAwNDc5LCAwLjAwNDc5MywgMC4wMDQ3OTYsIDAuMDA0Nzk2LCAwLjAwNDc5NiwgMC4wMDQ3OTUsIDAuMDA0Nzk0IiwgXAotICAgICAgICAgICIwLjAwNTAwNCwgMC4wMDUwMTgsIDAuMDA1MDI1LCAwLjAwNTAyNSwgMC4wMDUwMjYsIDAuMDA1MDE1LCAwLjAwNTAyNSIsIFwKLSAgICAgICAgICAiMC4wMDUyMDUsIDAuMDA1MjIsIDAuMDA1MjE1LCAwLjAwNTIyOCwgMC4wMDUyMTcsIDAuMDA1MjI4LCAwLjAwNTIyNiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzYyMywgMC4wMDM2MjQsIDAuMDAzNjI2LCAwLjAwMzYyNywgMC4wMDM2MjcsIDAuMDAzNjI2LCAwLjAwMzYyNiIsIFwKLSAgICAgICAgICAiMC4wMDM2MjYsIDAuMDAzNjI5LCAwLjAwMzYzMywgMC4wMDM2MzQsIDAuMDAzNjM0LCAwLjAwMzYzNCwgMC4wMDM2MzQiLCBcCi0gICAgICAgICAgIjAuMDAzNzAzLCAwLjAwMzcwNywgMC4wMDM3MTMsIDAuMDAzNzE1LCAwLjAwMzcxNSwgMC4wMDM3MTUsIDAuMDAzNzE1IiwgXAotICAgICAgICAgICIwLjAwMzgwMSwgMC4wMDM4MTIsIDAuMDAzODE5LCAwLjAwMzgyMSwgMC4wMDM4MTYsIDAuMDAzODIyLCAwLjAwMzgyMiIsIFwKLSAgICAgICAgICAiMC4wMDM5MTksIDAuMDAzOTMyLCAwLjAwMzk0MSwgMC4wMDM5NDMsIDAuMDAzOTQ0LCAwLjAwMzk0NCwgMC4wMDM5NDQiLCBcCi0gICAgICAgICAgIjAuMDA0MTM3LCAwLjAwNDE0NCwgMC4wMDQxNTQsIDAuMDA0MTU3LCAwLjAwNDE1OCwgMC4wMDQxNTgsIDAuMDA0MTU4IiwgXAotICAgICAgICAgICIwLjAwNDMzMSwgMC4wMDQzMjQsIDAuMDA0MzUsIDAuMDA0MzUyLCAwLjAwNDM1NSwgMC4wMDQzNTUsIDAuMDA0MzQxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTFOIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQwMzYsIDAuMDA0MDM3LCAwLjAwNDAzOSwgMC4wMDQwMzgsIDAuMDA0MDM4LCAwLjAwNDAzNywgMC4wMDQwMzYiLCBcCi0gICAgICAgICAgIjAuMDA0MDQxLCAwLjAwNDA0NCwgMC4wMDQwNDksIDAuMDA0MDQ4LCAwLjAwNDA0OSwgMC4wMDQwNDgsIDAuMDA0MDQ2IiwgXAotICAgICAgICAgICIwLjAwNDEwMywgMC4wMDQxMDcsIDAuMDA0MTEzLCAwLjAwNDExNCwgMC4wMDQxMTMsIDAuMDA0MTEyLCAwLjAwNDExMiIsIFwKLSAgICAgICAgICAiMC4wMDQyMDYsIDAuMDA0MjExLCAwLjAwNDIxNywgMC4wMDQyMTgsIDAuMDA0MjE4LCAwLjAwNDIxNywgMC4wMDQyMTciLCBcCi0gICAgICAgICAgIjAuMDA0MzIsIDAuMDA0MzI1LCAwLjAwNDMzMiwgMC4wMDQzMzMsIDAuMDA0MzMzLCAwLjAwNDMzMiwgMC4wMDQzMzIiLCBcCi0gICAgICAgICAgIjAuMDA0NTI5LCAwLjAwNDU0MywgMC4wMDQ1MzksIDAuMDA0NTUxLCAwLjAwNDU0MiwgMC4wMDQ1NTIsIDAuMDA0NTUxIiwgXAotICAgICAgICAgICIwLjAwNDcyNiwgMC4wMDQ3MywgMC4wMDQ3NDYsIDAuMDA0NzM4LCAwLjAwNDc0OSwgMC4wMDQ3NDksIDAuMDA0NzQ5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzNzU4LCAwLjAwMzc2NSwgMC4wMDM3NzQsIDAuMDAzNzc2LCAwLjAwMzc3NiwgMC4wMDM3NzcsIDAuMDAzNzc3IiwgXAotICAgICAgICAgICIwLjAwMzc1NywgMC4wMDM3NjcsIDAuMDAzNzgyLCAwLjAwMzc4NSwgMC4wMDM3ODYsIDAuMDAzNzg4LCAwLjAwMzc4OCIsIFwKLSAgICAgICAgICAiMC4wMDM4MjEsIDAuMDAzODM0LCAwLjAwMzg1NSwgMC4wMDM4NTksIDAuMDAzODYxLCAwLjAwMzg2MywgMC4wMDM4NjMiLCBcCi0gICAgICAgICAgIjAuMDAzOTA5LCAwLjAwMzkyNCwgMC4wMDM5NDksIDAuMDAzOTU0LCAwLjAwMzk2MiwgMC4wMDM5NTksIDAuMDAzOTY1IiwgXAotICAgICAgICAgICIwLjAwNDAxNiwgMC4wMDQwNDEsIDAuMDA0MDYxLCAwLjAwNDA2OCwgMC4wMDQwNzIsIDAuMDA0MDgxLCAwLjAwNDA4MiIsIFwKLSAgICAgICAgICAiMC4wMDQyMjEsIDAuMDA0MjQsIDAuMDA0MjcyLCAwLjAwNDI4LCAwLjAwNDI4NCwgMC4wMDQyODcsIDAuMDA0Mjg4IiwgXAotICAgICAgICAgICIwLjAwNDQwNSwgMC4wMDQ0MjUsIDAuMDA0NDQ4LCAwLjAwNDQ2OSwgMC4wMDQ0NjEsIDAuMDA0NDc3LCAwLjAwNDQ3OCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI5NzgsIDAuMDAyOTgxLCAwLjAwMjk4NCwgMC4wMDI5ODUsIDAuMDAyOTg1LCAwLjAwMjk4NiwgMC4wMDI5ODYiLCBcCi0gICAgICAgICAgIjAuMDAyOTYyLCAwLjAwMjk3MiwgMC4wMDI5ODgsIDAuMDAyOTkxLCAwLjAwMjk5MywgMC4wMDI5OTQsIDAuMDAyOTk1IiwgXAotICAgICAgICAgICIwLjAwMjk1LCAwLjAwMjk2MywgMC4wMDI5ODIsIDAuMDAyOTkxLCAwLjAwMjk5MSwgMC4wMDI5OTQsIDAuMDAyOTkzIiwgXAotICAgICAgICAgICIwLjAwMjk1NywgMC4wMDI5NjYsIDAuMDAyOTg1LCAwLjAwMjk5LCAwLjAwMjk5MiwgMC4wMDI5OTUsIDAuMDAyOTk1IiwgXAotICAgICAgICAgICIwLjAwMjk4MSwgMC4wMDI5ODIsIDAuMDAyOTkxLCAwLjAwMjk5MywgMC4wMDI5OTQsIDAuMDAyOTk1LCAwLjAwMjk5NSIsIFwKLSAgICAgICAgICAiMC4wMDMwNDYsIDAuMDAzMDI2LCAwLjAwMzAxLCAwLjAwMzAwOCwgMC4wMDMwMDYsIDAuMDAzMDAzLCAwLjAwMzAwMyIsIFwKLSAgICAgICAgICAiMC4wMDMxMiwgMC4wMDMwODMsIDAuMDAzMDM3LCAwLjAwMzAyNSwgMC4wMDMwMTcsIDAuMDAzMDEsIDAuMDAzMDA4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxMSwgMC4wMDExMDEsIDAuMDAxMTAyLCAwLjAwMTEwMiwgMC4wMDExMDIsIDAuMDAxMTAxLCAwLjAwMTEwMSIsIFwKLSAgICAgICAgICAiMC4wMDEwOCwgMC4wMDEwODMsIDAuMDAxMDg3LCAwLjAwMTA4OCwgMC4wMDEwODgsIDAuMDAxMDg4LCAwLjAwMTA4OCIsIFwKLSAgICAgICAgICAiMC4wMDEwOTYsIDAuMDAxMDksIDAuMDAxMDg5LCAwLjAwMTA4OSwgMC4wMDEwODgsIDAuMDAxMDg3LCAwLjAwMTA4NyIsIFwKLSAgICAgICAgICAiMC4wMDExNDgsIDAuMDAxMTIyLCAwLjAwMTEwMywgMC4wMDExMDEsIDAuMDAxMDk2LCAwLjAwMTA5MiwgMC4wMDEwOTEiLCBcCi0gICAgICAgICAgIjAuMDAxMjAyLCAwLjAwMTE3NCwgMC4wMDExMjYsIDAuMDAxMTEzLCAwLjAwMTEwNSwgMC4wMDEwOTYsIDAuMDAxMDk0IiwgXAotICAgICAgICAgICIwLjAwMTMwOSwgMC4wMDEyNTUsIDAuMDAxMTY0LCAwLjAwMTEzNiwgMC4wMDExMjUsIDAuMDAxMTEsIDAuMDAxMTA1IiwgXAotICAgICAgICAgICIwLjAwMTQzNCwgMC4wMDEzNDYsIDAuMDAxMjA5LCAwLjAwMTE3LCAwLjAwMTE0OCwgMC4wMDExMjUsIDAuMDAxMTE4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjUyMiwgMC4wMDI1MjYsIDAuMDAyNTMsIDAuMDAyNTMxLCAwLjAwMjUyOCwgMC4wMDI1MzIsIDAuMDAyNTMyIiwgXAotICAgICAgICAgICIwLjAwMjUwNywgMC4wMDI1MTksIDAuMDAyNTM0LCAwLjAwMjUzNywgMC4wMDI1MzksIDAuMDAyNTQxLCAwLjAwMjU0MSIsIFwKLSAgICAgICAgICAiMC4wMDI1MjEsIDAuMDAyNTI3LCAwLjAwMjUzNywgMC4wMDI1MzksIDAuMDAyNTQxLCAwLjAwMjU0MiwgMC4wMDI1NDIiLCBcCi0gICAgICAgICAgIjAuMDAyNTQ4LCAwLjAwMjU0NSwgMC4wMDI1NDQsIDAuMDAyNTQ1LCAwLjAwMjU0NSwgMC4wMDI1NDQsIDAuMDAyNTQ0IiwgXAotICAgICAgICAgICIwLjAwMjU5NywgMC4wMDI1NzgsIDAuMDAyNTYsIDAuMDAyNTUzLCAwLjAwMjU1LCAwLjAwMjU0OCwgMC4wMDI1NDciLCBcCi0gICAgICAgICAgIjAuMDAyNzA0LCAwLjAwMjY1NywgMC4wMDI1OTEsIDAuMDAyNTc1LCAwLjAwMjU2NiwgMC4wMDI1NTgsIDAuMDAyNTU1IiwgXAotICAgICAgICAgICIwLjAwMjgyMSwgMC4wMDI3NDIsIDAuMDAyNjMzLCAwLjAwMjYwOSwgMC4wMDI1ODYsIDAuMDAyNTcxLCAwLjAwMjU2NSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDc3OCwgMC4wMDA3ODIsIDAuMDAwNzg4LCAwLjAwMDc4OSwgMC4wMDA3ODksIDAuMDAwNzksIDAuMDAwNzg5IiwgXAotICAgICAgICAgICIwLjAwMDc2MiwgMC4wMDA3NzQsIDAuMDAwNzkyLCAwLjAwMDc5NiwgMC4wMDA3OTgsIDAuMDAwOCwgMC4wMDA4IiwgXAotICAgICAgICAgICIwLjAwMDc3MywgMC4wMDA3ODEsIDAuMDAwNzk1LCAwLjAwMDc5OCwgMC4wMDA4LCAwLjAwMDgwMSwgMC4wMDA4MDIiLCBcCi0gICAgICAgICAgIjAuMDAwNzg5LCAwLjAwMDc5MSwgMC4wMDA4MDQsIDAuMDAwODA0LCAwLjAwMDgwNCwgMC4wMDA4MDQsIDAuMDAwODA0IiwgXAotICAgICAgICAgICIwLjAwMDg0OCwgMC4wMDA4MzQsIDAuMDAwODE4LCAwLjAwMDgxMywgMC4wMDA4MTEsIDAuMDAwODA4LCAwLjAwMDgwNyIsIFwKLSAgICAgICAgICAiMC4wMDA5NDMsIDAuMDAwOTAzLCAwLjAwMDg1MSwgMC4wMDA4MzIsIDAuMDAwODI3LCAwLjAwMDgxOCwgMC4wMDA4MTYiLCBcCi0gICAgICAgICAgIjAuMDAxMDYzLCAwLjAwMDk4NiwgMC4wMDA4ODYsIDAuMDAwODY1LCAwLjAwMDg0NywgMC4wMDA4MzEsIDAuMDAwODI2Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBPQUkyQkIyWEwgKgotICogLS0tLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChPQUkyQkIyWEwpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4zODEyODg7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEwTikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjY4Nzg2OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDY2ODc4NjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2Njg2NDQ7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjczLCAwLjAwMDI5OSwgMC4wMDAzODMsIDAuMDAwNDg5LCAwLjAwMDYxOSwgMC4wMDA4NDcsIDAuMDAxMDUyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxNzcsIDAuMDAxNzksIDAuMDAxODc1LCAwLjAwMTk4NywgMC4wMDIxMjIsIDAuMDAyMzQ4LCAwLjAwMjU0MSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQTFOKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2ODUyNjk7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjg1MjY5OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDY4NTI0OTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyNTQsIDAuMDAwMjU5LCAwLjAwMDMzOCwgMC4wMDA0NDMsIDAuMDAwNTY3LCAwLjAwMDc5NCwgMC4wMDA5ODEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDI0MDcsIDAuMDAyNDE3LCAwLjAwMjQ5MywgMC4wMDI1OTcsIDAuMDAyNzE5LCAwLjAwMjk0MiwgMC4wMDMxMzMiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2Nzk5ODI7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjc4MjU4OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDY3OTk4MjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyNiwgMC4wMDAyNzgsIDAuMDAwMjgyLCAwLjAwMDI4NiwgMC4wMDAyOSwgMC4wMDAyOTIsIDAuMDAwMjkxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzA0LCAwLjAwMDMwNCwgMC4wMDAzMDQsIDAuMDAwMzA0LCAwLjAwMDMwNCwgMC4wMDAzMDQsIDAuMDAwMzA0Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCMSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNzIyNDQ7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNzIyNDQ7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNzIyMjQ1OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDA2OSwgMC4wMDAwNjksIDAuMDAwMDY5LCAwLjAwMDA2OSwgMC4wMDAwNjksIDAuMDAwMDY5LCAwLjAwMDA2OSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDIxMSwgMC4wMDAyMTEsIDAuMDAwMjExLCAwLjAwMDIxMSwgMC4wMDAyMTEsIDAuMDAwMjExLCAwLjAwMDIxMSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjEwODg1NTsKLSAgICBmdW5jdGlvbiA6ICIoISgoQjArQjEpICghKEEwTiBBMU4pKSkpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBME4iOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEyNzQzLCAwLjE0NjM1MSwgMC4zMTczMjUsIDAuNjAxMTk0LCAwLjg4NDg4MiwgMS41NDY3NiwgMS45MjUyOCIsIFwKLSAgICAgICAgICAiMC4xMzQ2MjUsIDAuMTUzNjU5LCAwLjMyNDQ4NSwgMC42MDg1NSwgMC44OTMzOSwgMS41NTcwNiwgMS45MzQyNyIsIFwKLSAgICAgICAgICAiMC4xNDAyNjIsIDAuMTU5MjMzLCAwLjMzMDE1NSwgMC42MTM5NzIsIDAuODk3NzU1LCAxLjU2MDMsIDEuOTQyMDkiLCBcCi0gICAgICAgICAgIjAuMTQ0MjA3LCAwLjE2MzIsIDAuMzM0MTY5LCAwLjYxODAxOSwgMC45MDIwODQsIDEuNTY2NDgsIDEuOTQyODEiLCBcCi0gICAgICAgICAgIjAuMTQ3NjAxLCAwLjE2NjUyOCwgMC4zMzc0NjIsIDAuNjIxNDkxLCAwLjkwNTQ0OSwgMS41NjgwMiwgMS45NDc2OCIsIFwKLSAgICAgICAgICAiMC4xNTIwMjEsIDAuMTcxMDE0LCAwLjM0MTk3LCAwLjYyNTk0LCAwLjkxMDU0OSwgMS41NzI4NSwgMS45NTM5OCIsIFwKLSAgICAgICAgICAiMC4xNTU0ODksIDAuMTc0NDUsIDAuMzQ1MzU4LCAwLjYyOTI0MywgMC45MTMwNTUsIDEuNTc3MTcsIDEuOTU1OSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMzY4NzYsIDAuMjc3MDIxLCAwLjYzODUzNSwgMS4yNDA0NCwgMS44NDE0NiwgMy4yNDU2NywgNC4wNDc1NiIsIFwKLSAgICAgICAgICAiMC4yMzY4MzIsIDAuMjc3MDczLCAwLjYzODU2MSwgMS4yNDA3MywgMS44NDI0OSwgMy4yNDY0NCwgNC4wNDgxNyIsIFwKLSAgICAgICAgICAiMC4yMzY4NTYsIDAuMjc3MDEsIDAuNjM4NjA1LCAxLjI0MDgzLCAxLjg0MjIxLCAzLjI0NjQ1LCA0LjA0ODM4IiwgXAotICAgICAgICAgICIwLjIzNjkyNiwgMC4yNzcwODgsIDAuNjM4NTY3LCAxLjI0MDgzLCAxLjg0MjUxLCAzLjI0Njc1LCA0LjA0ODY2IiwgXAotICAgICAgICAgICIwLjIzNjg4NCwgMC4yNzcwNjUsIDAuNjM4NTQ1LCAxLjI0MDQ2LCAxLjg0MjUyLCAzLjI0NjQ5LCA0LjA0OTI3IiwgXAotICAgICAgICAgICIwLjIzNjk4MywgMC4yNzcxMDMsIDAuNjM4NTY0LCAxLjI0MDc5LCAxLjg0MjQ1LCAzLjI0NjM2LCA0LjA0ODM0IiwgXAotICAgICAgICAgICIwLjIzNzAwNCwgMC4yNzcxMTksIDAuNjM4NTcxLCAxLjI0MDY3LCAxLjg0MjM4LCAzLjI0NjQ0LCA0LjA0Nzc3Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExOTczMywgMC4xMzcwMjcsIDAuMjkxOTc5LCAwLjU1MDI5OCwgMC44MDg5MDUsIDEuNDEwOTksIDEuNzU1MDUiLCBcCi0gICAgICAgICAgIjAuMTI2ODM3LCAwLjE0NDE2MSwgMC4yOTkyNDQsIDAuNTU3Mjk1LCAwLjgxNTM1OCwgMS40MTgzMiwgMS43NjI5MyIsIFwKLSAgICAgICAgICAiMC4xMzI1MDcsIDAuMTQ5NzYzLCAwLjMwNDg4MSwgMC41NjMwMTMsIDAuODIxMjg2LCAxLjQyMzM4LCAxLjc2OTc0IiwgXAotICAgICAgICAgICIwLjEzNjUzOCwgMC4xNTM3NzUsIDAuMzA4ODg4LCAwLjU2NzAzNSwgMC44MjUyNTEsIDEuNDI3OTksIDEuNzcyNjMiLCBcCi0gICAgICAgICAgIjAuMTM5NzMsIDAuMTU3MDE0LCAwLjMxMTk3NywgMC41NzA0NjIsIDAuODI4ODU0LCAxLjQzMDgsIDEuNzc1NDMiLCBcCi0gICAgICAgICAgIjAuMTQ0MDQ2LCAwLjE2MTMzMSwgMC4zMTYzMTcsIDAuNTc0NzYxLCAwLjgzMzEwOSwgMS40MzUzMywgMS43Nzk0MSIsIFwKLSAgICAgICAgICAiMC4xNDcyMzgsIDAuMTY0MzI4LCAwLjMxOTQzMywgMC41Nzc0OTMsIDAuODM1ODk3LCAxLjQzOTA0LCAxLjc4Mzc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIwMTQ1MSwgMC4yMzcwNTYsIDAuNTU2ODk2LCAxLjA4OTM2LCAxLjYyMTc4LCAyLjg2MzczLCAzLjU3NjQ3IiwgXAotICAgICAgICAgICIwLjIwMTU3OCwgMC4yMzcwOTUsIDAuNTU2NzI0LCAxLjA4OTI4LCAxLjYyMjg5LCAyLjg2Mzk2LCAzLjU3NTc3IiwgXAotICAgICAgICAgICIwLjIwMTQ3OSwgMC4yMzcwMDIsIDAuNTU2NzM5LCAxLjA4OTE0LCAxLjYyMTQyLCAyLjg2MzczLCAzLjU3NTAyIiwgXAotICAgICAgICAgICIwLjIwMTUxMiwgMC4yMzcwMDYsIDAuNTU2NTk1LCAxLjA4OTEyLCAxLjYyMTcsIDIuODY2MDEsIDMuNTc0MTMiLCBcCi0gICAgICAgICAgIjAuMjAxNDg0LCAwLjIzNzAxLCAwLjU1NjYzNSwgMS4wODk0NiwgMS42MjIzMywgMi44NjM4NiwgMy41NzY3MyIsIFwKLSAgICAgICAgICAiMC4yMDE1MzYsIDAuMjM3MDQ3LCAwLjU1NjU1OSwgMS4wODkwMSwgMS42MjE1NiwgMi44NjM1MSwgMy41NzQ1NyIsIFwKLSAgICAgICAgICAiMC4yMDE1MDMsIDAuMjM2OTQxLCAwLjU1NjU0OSwgMS4wODksIDEuNjIxNTksIDIuODY0MywgMy41NzQ4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkExTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTI4MTc2LCAwLjE0NzExNSwgMC4zMTgwNSwgMC42MDE4NzIsIDAuODg1NTk3LCAxLjU0ODEyLCAxLjkyOTMyIiwgXAotICAgICAgICAgICIwLjEzNTc5NCwgMC4xNTQ3MzYsIDAuMzI1NjAxLCAwLjYwOTUyNiwgMC44OTQxNCwgMS41NTU3NywgMS45Mzc0NiIsIFwKLSAgICAgICAgICAiMC4xNDI1NjcsIDAuMTYxNTc0LCAwLjMzMjQ0NywgMC42MTYyODcsIDAuOTAxMDAzLCAxLjU2NDExLCAxLjk0MzkzIiwgXAotICAgICAgICAgICIwLjE0NzQ4NywgMC4xNjY1MjQsIDAuMzM3NDIzLCAwLjYyMTY1NywgMC45MDUyODUsIDEuNTY4MDQsIDEuOTQ4MDciLCBcCi0gICAgICAgICAgIjAuMTUxNjA4LCAwLjE3MDU4MSwgMC4zNDE1NjcsIDAuNjI1ODE3LCAwLjkwOTcxOSwgMS41NzI3MSwgMS45NTEwNiIsIFwKLSAgICAgICAgICAiMC4xNTY5MDksIDAuMTc1ODc4LCAwLjM0Njg0NywgMC42MzA5ODcsIDAuOTE1NjE2LCAxLjU3ODI2LCAxLjk1Njg5IiwgXAotICAgICAgICAgICIwLjE2MTEyNywgMC4xODAxMTIsIDAuMzUxMDM5LCAwLjYzNDkxNywgMC45MTg5MDIsIDEuNTgyMzgsIDEuOTYxMzciKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjM2ODg3LCAwLjI3NzAyNiwgMC42MzgyNDMsIDEuMjQwNzYsIDEuODQyMzQsIDMuMjQ2MywgNC4wNDg3NyIsIFwKLSAgICAgICAgICAiMC4yMzY4OTgsIDAuMjc3MDA2LCAwLjYzODU1OSwgMS4yNDA1MywgMS44NDI0NiwgMy4yNDYzMywgNC4wNDgzIiwgXAotICAgICAgICAgICIwLjIzNjkxNCwgMC4yNzcwMzIsIDAuNjM4NTgsIDEuMjQwODMsIDEuODQyNjYsIDMuMjQ2ODEsIDQuMDQ5MTUiLCBcCi0gICAgICAgICAgIjAuMjM2OTIxLCAwLjI3NzA3MiwgMC42Mzg0NzEsIDEuMjQwODIsIDEuODQyMjEsIDMuMjQ2MzIsIDQuMDQ3OTIiLCBcCi0gICAgICAgICAgIjAuMjM3MDM2LCAwLjI3NzExNiwgMC42Mzg1OTYsIDEuMjQwNTcsIDEuODQyNjUsIDMuMjQ3MDEsIDQuMDQ4NjMiLCBcCi0gICAgICAgICAgIjAuMjM3MTA3LCAwLjI3NzIyMSwgMC42Mzg2NjksIDEuMjQwODEsIDEuODQyNDQsIDMuMjQ2MjgsIDQuMDQ5MjQiLCBcCi0gICAgICAgICAgIjAuMjM3MjY0LCAwLjI3NzI3NywgMC42Mzg2MjksIDEuMjQwODEsIDEuODQyNTUsIDMuMjQ2MzUsIDQuMDQ4MjYiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTIwMDQ2LCAwLjEzNzI2MSwgMC4yOTIyNDksIDAuNTUwODMsIDAuODA5NDc2LCAxLjQxMjM1LCAxLjc1NTU4IiwgXAotICAgICAgICAgICIwLjEyNzczMywgMC4xNDQ5ODEsIDAuMjk5OTk2LCAwLjU1ODU5MywgMC44MTY1MjksIDEuNDE5NTYsIDEuNzYzNTIiLCBcCi0gICAgICAgICAgIjAuMTM0MjYxLCAwLjE1MTUyOSwgMC4zMDY1MTgsIDAuNTY0NzIyLCAwLjgyMzIwMiwgMS40MjU2MywgMS43NzAyMiIsIFwKLSAgICAgICAgICAiMC4xMzkxMDEsIDAuMTU2MzM4LCAwLjMxMTM3MywgMC41Njk4MTMsIDAuODI4MDI2LCAxLjQzMTM2LCAxLjc3NjEiLCBcCi0gICAgICAgICAgIjAuMTQyODg5LCAwLjE2MDEzNCwgMC4zMTUxNzQsIDAuNTczNDkxLCAwLjgzMTgxNSwgMS40MzM5MSwgMS43Nzg5NCIsIFwKLSAgICAgICAgICAiMC4xNDc4ODksIDAuMTY1MTEsIDAuMzIwMTE4LCAwLjU3ODY5MywgMC44MzY4MSwgMS40Mzg4NSwgMS43ODMxNCIsIFwKLSAgICAgICAgICAiMC4xNTE1MzMsIDAuMTY4ODI1LCAwLjMyMzgwNiwgMC41ODE5MzcsIDAuODQwODc0LCAxLjQ0MjkyLCAxLjc4NjczIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE5NzkyNywgMC4yMzM0MTEsIDAuNTUyOTI5LCAxLjA4NTQ3LCAxLjYxODA2LCAyLjg2MDUyLCAzLjU2OTI5IiwgXAotICAgICAgICAgICIwLjE5NzkxNiwgMC4yMzM1MTMsIDAuNTUyNzQ1LCAxLjA4NTQ4LCAxLjYxODQyLCAyLjg2MSwgMy41Njk4NCIsIFwKLSAgICAgICAgICAiMC4xOTc4NywgMC4yMzM0OTIsIDAuNTUyODgxLCAxLjA4NTIsIDEuNjE3NTIsIDIuODU5NjMsIDMuNTcyMjkiLCBcCi0gICAgICAgICAgIjAuMTk3ODIsIDAuMjMzMzU2LCAwLjU1MjgsIDEuMDg1MzQsIDEuNjE3NDcsIDIuODYwNzMsIDMuNTcwMzQiLCBcCi0gICAgICAgICAgIjAuMTk3ODQ5LCAwLjIzMzMzNywgMC41NTI4MjQsIDEuMDg1MDcsIDEuNjE4NDIsIDIuODYwMDUsIDMuNTcyMjkiLCBcCi0gICAgICAgICAgIjAuMTk3OTUxLCAwLjIzMzM4NSwgMC41NTI3NTIsIDEuMDg1MzUsIDEuNjE3ODgsIDIuODU5NTEsIDMuNTczMTIiLCBcCi0gICAgICAgICAgIjAuMTk3ODQzLCAwLjIzMzM0MiwgMC41NTI4NDUsIDEuMDg1NiwgMS42MTc3NCwgMi44NTk1NiwgMy41NzI3OSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTA4MzUyLCAwLjEyNzQyMSwgMC4yOTgyMjUsIDAuNTgyMDcsIDAuODY1NjQ1LCAxLjUyODE1LCAxLjkwODU4IiwgXAotICAgICAgICAgICIwLjExNDI3MiwgMC4xMzMzMDUsIDAuMzA0MjI1LCAwLjU4ODA0NiwgMC44NzIyODgsIDEuNTM2MDcsIDEuOTEzNSIsIFwKLSAgICAgICAgICAiMC4xMjEyNzUsIDAuMTQwMjc3LCAwLjMxMTI1NSwgMC41OTQ5OTQsIDAuODc4Njg4LCAxLjU0MDY4LCAxLjkyMTg3IiwgXAotICAgICAgICAgICIwLjEyODMzNCwgMC4xNDc0MzEsIDAuMzE4NTA2LCAwLjYwMjMyMiwgMC44ODYyODgsIDEuNTQ4NDMsIDEuOTI3MiIsIFwKLSAgICAgICAgICAiMC4xMzUzNDYsIDAuMTU0NDI2LCAwLjMyNTczNywgMC42MDk3NTQsIDAuODkzNDM1LCAxLjU1NTI5LCAxLjkzNjkiLCBcCi0gICAgICAgICAgIjAuMTQ2Njc1LCAwLjE2NTc1LCAwLjMzNzE5NSwgMC42MjEyNywgMC45MDQ5MzYsIDEuNTY2ODEsIDEuOTQ0OTkiLCBcCi0gICAgICAgICAgIjAuMTU2MTA4LCAwLjE3NTcwNCwgMC4zNDY1OTEsIDAuNjMxNjg0LCAwLjkxNTM2NiwgMS41NzcxMywgMS45NTU3NiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMjQzOSwgMC4yNjQ0MjEsIDAuNjI1MjU4LCAxLjIyNjg2LCAxLjgyODM5LCAzLjIzMjMsIDQuMDMzNzkiLCBcCi0gICAgICAgICAgIjAuMjI0Mzk0LCAwLjI2NDQ3NSwgMC42MjUzMzIsIDEuMjI2ODgsIDEuODI4NDUsIDMuMjM1OSwgNC4wMzQzMiIsIFwKLSAgICAgICAgICAiMC4yMjUyMDksIDAuMjY0ODgyLCAwLjYyNTQwOCwgMS4yMjY4LCAxLjgyODQsIDMuMjMxODIsIDQuMDM0MzUiLCBcCi0gICAgICAgICAgIjAuMjI3ODQxLCAwLjI2NywgMC42MjUzNCwgMS4yMjY4MSwgMS44MjgzNCwgMy4yMzI1NywgNC4wMzQwNSIsIFwKLSAgICAgICAgICAiMC4yMzE2MywgMC4yNzAxNzIsIDAuNjI1NTgsIDEuMjI2OTMsIDEuODI4MTcsIDMuMjMxNzcsIDQuMDM0ODMiLCBcCi0gICAgICAgICAgIjAuMjM5Mjc3LCAwLjI3NzA5NywgMC42Mjc5OTYsIDEuMjI2ODIsIDEuODI4MjgsIDMuMjMyMzgsIDQuMDM1OTIiLCBcCi0gICAgICAgICAgIjAuMjQ2ODIxLCAwLjI4NDIyLCAwLjYzMTAyNCwgMS4yMjY3OCwgMS44Mjg2MywgMy4yMzIzNCwgNC4wMzQ2NSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDEzNzYsIDAuMTE4Njg3LCAwLjI3MzY0NCwgMC41MzE3ODQsIDAuNzkwMjI5LCAxLjM5MjgyLCAxLjczNzAzIiwgXAotICAgICAgICAgICIwLjEwODg3OCwgMC4xMjYxMSwgMC4yODExNDgsIDAuNTM5MjQyLCAwLjc5NzM2NywgMS4zOTk5LCAxLjc0NTEyIiwgXAotICAgICAgICAgICIwLjExODIwMiwgMC4xMzU0MzYsIDAuMjkwMzQ4LCAwLjU0ODk0LCAwLjgwNzEyNSwgMS40MDk1MSwgMS43NTQxNyIsIFwKLSAgICAgICAgICAiMC4xMjc4MTksIDAuMTQ0OTkyLCAwLjMwMDAxOCwgMC41NTgwNjksIDAuODE3MTE5LCAxLjQxODcsIDEuNzYzMjYiLCBcCi0gICAgICAgICAgIjAuMTM3Njc1LCAwLjE1NDczNywgMC4zMDk0NjksIDAuNTY3NjE3LCAwLjgyNTc3MiwgMS40MjgwMywgMS43NzM4OCIsIFwKLSAgICAgICAgICAiMC4xNTM2MjUsIDAuMTcwNjY4LCAwLjMyNDk2LCAwLjU4MzAxOSwgMC44NDE2ODksIDEuNDQzNDEsIDEuNzg3NzMiLCBcCi0gICAgICAgICAgIjAuMTY3NDU3LCAwLjE4NDU4MSwgMC4zMzg2NiwgMC41OTY1OTYsIDAuODU1MDE1LCAxLjQ1NzMsIDEuODAxMDUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjAxNDUzLCAwLjIzNzA3OSwgMC41NTY1MTMsIDEuMDg5MjcsIDEuNjIxNSwgMi44NjQxMSwgMy41NzU2MiIsIFwKLSAgICAgICAgICAiMC4yMDEzOTgsIDAuMjM2OTc4LCAwLjU1Njc5MywgMS4wODk1NywgMS42MjE1NywgMi44NjU4NCwgMy41NzQ2OSIsIFwKLSAgICAgICAgICAiMC4yMDIzNTcsIDAuMjM3NDE2LCAwLjU1NjY4NiwgMS4wODkzNiwgMS42MjE5LCAyLjg2MzkyLCAzLjU3NjU2IiwgXAotICAgICAgICAgICIwLjIwNjQwOCwgMC4yNDA1MDIsIDAuNTU2NzU0LCAxLjA4OTA4LCAxLjYyMjIsIDIuODYzNTMsIDMuNTc2NjQiLCBcCi0gICAgICAgICAgIjAuMjEyMjE0LCAwLjI0NTQyMiwgMC41NTY4NjksIDEuMDg5MTgsIDEuNjIyNywgMi44NjM5NSwgMy41NzUyOSIsIFwKLSAgICAgICAgICAiMC4yMjM0MDQsIDAuMjU1NzEzLCAwLjU2MDE2MywgMS4wODkxMywgMS42MjIwNiwgMi44NjM5NiwgMy41NzM4IiwgXAotICAgICAgICAgICIwLjIzNDQ2MiwgMC4yNjYxMzUsIDAuNTY1MzMxLCAxLjA4OTMzLCAxLjYyMTg1LCAyLjg2NTk1LCAzLjU3NDY2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIxIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDYzNzksIDAuMTI1Mzk2LCAwLjI5NjI1MSwgMC41ODAwMzcsIDAuODY0MTU5LCAxLjUyNzg1LCAxLjkwNTM1IiwgXAotICAgICAgICAgICIwLjExMzg0OSwgMC4xMzI4ODUsIDAuMzAzNzQxLCAwLjU4NzU1NiwgMC44NzEyMywgMS41MzMxNSwgMS45MTM0IiwgXAotICAgICAgICAgICIwLjEyMzAxMywgMC4xNDIwNTMsIDAuMzEyOTA3LCAwLjU5Njc1NCwgMC44ODA0MzUsIDEuNTQzMTcsIDEuOTIxMDciLCBcCi0gICAgICAgICAgIjAuMTMyNDg0LCAwLjE1MTQ4MiwgMC4zMjIxOTcsIDAuNjA1OTI4LCAwLjg4OTU4LCAxLjU1NDAxLCAxLjkzMDc0IiwgXAotICAgICAgICAgICIwLjE0MjAxOSwgMC4xNjA5NTksIDAuMzMxNjcyLCAwLjYxNTM2MSwgMC44OTk1MzcsIDEuNTYwNzIsIDEuOTM5OTUiLCBcCi0gICAgICAgICAgIjAuMTU3NDc5LCAwLjE3NjM2NCwgMC4zNDY3MjgsIDAuNjMwMjY2LCAwLjkxMzc5NiwgMS41NzU1OCwgMS45NTU5MyIsIFwKLSAgICAgICAgICAiMC4xNzEwMjMsIDAuMTg5OTk5LCAwLjM1OTk4NCwgMC42NDIyOTcsIDAuOTI2ODk3LCAxLjU5MDk2LCAxLjk2NzA3Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIyNDM1NCwgMC4yNjQ0MjgsIDAuNjI1MzA0LCAxLjIyNjY0LCAxLjgyODI1LCAzLjIzMjAxLCA0LjAzNDQ5IiwgXAotICAgICAgICAgICIwLjIyNDM5NiwgMC4yNjQ0NTMsIDAuNjI1MjM5LCAxLjIyNjgyLCAxLjgyODA4LCAzLjIzMTc4LCA0LjAzMzkzIiwgXAotICAgICAgICAgICIwLjIyNTQ3NSwgMC4yNjQ4NzUsIDAuNjI1MzY4LCAxLjIyNjg3LCAxLjgyODQzLCAzLjIzNDM1LCA0LjAzNDAyIiwgXAotICAgICAgICAgICIwLjIyOTUzLCAwLjI2ODAxOSwgMC42MjUyMTEsIDEuMjI2NzQsIDEuODI4NTksIDMuMjM1OTIsIDQuMDMzNDgiLCBcCi0gICAgICAgICAgIjAuMjM1MzEsIDAuMjcyOTQsIDAuNjI1NDMxLCAxLjIyNjczLCAxLjgyODMyLCAzLjIzMTkzLCA0LjAzNDE0IiwgXAotICAgICAgICAgICIwLjI0NjU0OSwgMC4yODMyMDUsIDAuNjI4NDk2LCAxLjIyNjc4LCAxLjgyODMxLCAzLjIzMjMxLCA0LjAzNDQyIiwgXAotICAgICAgICAgICIwLjI1NzU5MywgMC4yOTM2MjcsIDAuNjMzMjUyLCAxLjIyNjczLCAxLjgyODI3LCAzLjIzMTgsIDQuMDMzNDciKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk4NzUxLCAwLjExNjA0NSwgMC4yNzEwMTEsIDAuNTI5MTMxLCAwLjc4NzgxMywgMS4zOTAzOCwgMS43MzUyNiIsIFwKLSAgICAgICAgICAiMC4xMDYzMDIsIDAuMTIzNTUyLCAwLjI3ODUyLCAwLjUzNjY2NiwgMC43OTQ4MDMsIDEuMzk3MjcsIDEuNzQyMzciLCBcCi0gICAgICAgICAgIjAuMTE1NTgyLCAwLjEzMjgxNSwgMC4yODc3NywgMC41NDU5OTcsIDAuODA0NjE1LCAxLjQwNjkzLCAxLjc1MTMiLCBcCi0gICAgICAgICAgIjAuMTI1MTQsIDAuMTQyNTg1LCAwLjI5NzYzMSwgMC41NTU3NzIsIDAuODEzOTksIDEuNDE2NDMsIDEuNzYwNTIiLCBcCi0gICAgICAgICAgIjAuMTM0OTM4LCAwLjE1MjAxOCwgMC4zMDY4NDYsIDAuNTY1MDExLCAwLjgyMzIxNywgMS40MjYwMywgMS43NzE0NCIsIFwKLSAgICAgICAgICAiMC4xNTA3ODgsIDAuMTY3OSwgMC4zMjIzMywgMC41ODA1NTQsIDAuODM5MDg0LCAxLjQ0MDgsIDEuNzg1ODkiLCBcCi0gICAgICAgICAgIjAuMTY0NDY4LCAwLjE4MTgyNSwgMC4zMzU5MzIsIDAuNTk0MDIyLCAwLjg1MjM5OCwgMS40NTQ2MywgMS43OTg0MSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xOTc4MjcsIDAuMjMzMzg5LCAwLjU1Mjg4NCwgMS4wODU3OCwgMS42MTc4LCAyLjg2MDQsIDMuNTcwODgiLCBcCi0gICAgICAgICAgIjAuMTk3Nzc5LCAwLjIzMzMxNCwgMC41NTI5NTQsIDEuMDg1MjIsIDEuNjE3NjIsIDIuODYxOTYsIDMuNTcwNCIsIFwKLSAgICAgICAgICAiMC4xOTg3NzIsIDAuMjMzNzMyLCAwLjU1MjkzNiwgMS4wODUxNCwgMS42MTc3OSwgMi44NTk4OSwgMy41NzE1MyIsIFwKLSAgICAgICAgICAiMC4yMDI4NjYsIDAuMjM2ODIxLCAwLjU1MjkzNywgMS4wODUxOSwgMS42MTg0NywgMi44NjAwNSwgMy41NzIzOCIsIFwKLSAgICAgICAgICAiMC4yMDg3NTYsIDAuMjQxODQ0LCAwLjU1MzA5LCAxLjA4NTMsIDEuNjE4NzcsIDIuODYwODQsIDMuNTcwNiIsIFwKLSAgICAgICAgICAiMC4yMjAwMzMsIDAuMjUyMywgMC41NTY0ODYsIDEuMDg1MTMsIDEuNjE4MTIsIDIuODU5OCwgMy41NzA0MSIsIFwKLSAgICAgICAgICAiMC4yMzExODgsIDAuMjYyODQ4LCAwLjU2MTgyNCwgMS4wODUzNSwgMS42MTc2MywgMi44NjE4NSwgMy41NzA0OCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEwTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzNDE1LCAwLjAwMzQxNSwgMC4wMDM0MTUsIDAuMDAzNDE0LCAwLjAwMzQxMywgMC4wMDM0MTEsIDAuMDAzNDA4IiwgXAotICAgICAgICAgICIwLjAwMzQyMSwgMC4wMDM0MjEsIDAuMDAzNDIyLCAwLjAwMzQyLCAwLjAwMzQyLCAwLjAwMzQxOCwgMC4wMDM0MTYiLCBcCi0gICAgICAgICAgIjAuMDAzNTA5LCAwLjAwMzUwOCwgMC4wMDM1MSwgMC4wMDM1MSwgMC4wMDM1MSwgMC4wMDM1MDcsIDAuMDAzNTA1IiwgXAotICAgICAgICAgICIwLjAwMzYyMywgMC4wMDM2MjMsIDAuMDAzNjI2LCAwLjAwMzYyNiwgMC4wMDM2MjUsIDAuMDAzNjIyLCAwLjAwMzYyMiIsIFwKLSAgICAgICAgICAiMC4wMDM3NjMsIDAuMDAzNzY0LCAwLjAwMzc2NiwgMC4wMDM3NTYsIDAuMDAzNzY1LCAwLjAwMzc2MywgMC4wMDM3NTMiLCBcCi0gICAgICAgICAgIjAuMDAzOTg4LCAwLjAwMzk3OCwgMC4wMDM5OSwgMC4wMDM5ODEsIDAuMDAzOTksIDAuMDAzOTg3LCAwLjAwMzk4NyIsIFwKLSAgICAgICAgICAiMC4wMDQxOCwgMC4wMDQxODEsIDAuMDA0MTk4LCAwLjAwNDE5OCwgMC4wMDQxOTgsIDAuMDA0MTgxLCAwLjAwNDE3OSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjY0NCwgMC4wMDI2NDQsIDAuMDAyNjQ1LCAwLjAwMjY0NSwgMC4wMDI2NDQsIDAuMDAyNjQ0LCAwLjAwMjY0NCIsIFwKLSAgICAgICAgICAiMC4wMDI2NTgsIDAuMDAyNjU4LCAwLjAwMjY2LCAwLjAwMjY2MSwgMC4wMDI2NjEsIDAuMDAyNjYsIDAuMDAyNjYiLCBcCi0gICAgICAgICAgIjAuMDAyNzQsIDAuMDAyNzQxLCAwLjAwMjc0MywgMC4wMDI3NDQsIDAuMDAyNzQ0LCAwLjAwMjc0NCwgMC4wMDI3NDMiLCBcCi0gICAgICAgICAgIjAuMDAyODU4LCAwLjAwMjg1OCwgMC4wMDI4NjIsIDAuMDAyODU2LCAwLjAwMjg2MywgMC4wMDI4NjMsIDAuMDAyODYzIiwgXAotICAgICAgICAgICIwLjAwMjk3NiwgMC4wMDI5ODUsIDAuMDAyOTgxLCAwLjAwMjk4MiwgMC4wMDI5ODMsIDAuMDAyOTgyLCAwLjAwMjk5MSIsIFwKLSAgICAgICAgICAiMC4wMDMyMDQsIDAuMDAzMTk3LCAwLjAwMzIwMSwgMC4wMDMyMDMsIDAuMDAzMjAzLCAwLjAwMzIxMiwgMC4wMDMyMDMiLCBcCi0gICAgICAgICAgIjAuMDAzMzkzLCAwLjAwMzQwNiwgMC4wMDMzOTksIDAuMDAzNDEzLCAwLjAwMzQwMiwgMC4wMDM0MDIsIDAuMDAzNDAyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTFOIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDMxMzgsIDAuMDAzMTM4LCAwLjAwMzEzOCwgMC4wMDMxMzgsIDAuMDAzMTM3LCAwLjAwMzEzNCwgMC4wMDMxMzEiLCBcCi0gICAgICAgICAgIjAuMDAzMTM4LCAwLjAwMzEzOSwgMC4wMDMxNCwgMC4wMDMxMzksIDAuMDAzMTM5LCAwLjAwMzEzNywgMC4wMDMxMzQiLCBcCi0gICAgICAgICAgIjAuMDAzMjE2LCAwLjAwMzIxNywgMC4wMDMyMTksIDAuMDAzMjE5LCAwLjAwMzIxNywgMC4wMDMyMTYsIDAuMDAzMjE0IiwgXAotICAgICAgICAgICIwLjAwMzMxOSwgMC4wMDMzMTksIDAuMDAzMzIxLCAwLjAwMzMyMiwgMC4wMDMzMjEsIDAuMDAzMzE5LCAwLjAwMzMxNyIsIFwKLSAgICAgICAgICAiMC4wMDM0MzksIDAuMDAzNDM5LCAwLjAwMzQ0MSwgMC4wMDM0NDIsIDAuMDAzNDQxLCAwLjAwMzQzOSwgMC4wMDM0MzciLCBcCi0gICAgICAgICAgIjAuMDAzNjU4LCAwLjAwMzY1OSwgMC4wMDM2NTIsIDAuMDAzNjY0LCAwLjAwMzY2NCwgMC4wMDM2NjEsIDAuMDAzNjQ5IiwgXAotICAgICAgICAgICIwLjAwMzg0OCwgMC4wMDM4NTksIDAuMDAzODYyLCAwLjAwMzg2MiwgMC4wMDM4NjMsIDAuMDAzODYxLCAwLjAwMzg2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzMTQ2LCAwLjAwMzE0NywgMC4wMDMxNTEsIDAuMDAzMTUyLCAwLjAwMzE1MiwgMC4wMDMxNTMsIDAuMDAzMTUyIiwgXAotICAgICAgICAgICIwLjAwMzE1MSwgMC4wMDMxNTMsIDAuMDAzMTU5LCAwLjAwMzE2MSwgMC4wMDMxNjIsIDAuMDAzMTYyLCAwLjAwMzE2MiIsIFwKLSAgICAgICAgICAiMC4wMDMyMjYsIDAuMDAzMjI5LCAwLjAwMzIzNywgMC4wMDMyNCwgMC4wMDMyNDEsIDAuMDAzMjQyLCAwLjAwMzI0MiIsIFwKLSAgICAgICAgICAiMC4wMDMzMjcsIDAuMDAzMzMsIDAuMDAzMzQsIDAuMDAzMzQ0LCAwLjAwMzM0NSwgMC4wMDMzNDYsIDAuMDAzMzQ2IiwgXAotICAgICAgICAgICIwLjAwMzQ0NCwgMC4wMDM0NDcsIDAuMDAzNDU4LCAwLjAwMzQ1NSwgMC4wMDM0NjQsIDAuMDAzNDU4LCAwLjAwMzQ2NiIsIFwKLSAgICAgICAgICAiMC4wMDM2NSwgMC4wMDM2NDUsIDAuMDAzNjU4LCAwLjAwMzY3MywgMC4wMDM2NzUsIDAuMDAzNjY3LCAwLjAwMzY2OCIsIFwKLSAgICAgICAgICAiMC4wMDM4NCwgMC4wMDM4NDUsIDAuMDAzODYsIDAuMDAzODUzLCAwLjAwMzg2OCwgMC4wMDM4NTcsIDAuMDAzODciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxOTU0LCAwLjAwMTk1NCwgMC4wMDE5NTYsIDAuMDAxOTU2LCAwLjAwMTk1NiwgMC4wMDE5NTYsIDAuMDAxOTU2IiwgXAotICAgICAgICAgICIwLjAwMTk1MSwgMC4wMDE5NTIsIDAuMDAxOTU5LCAwLjAwMTk2MSwgMC4wMDE5NjIsIDAuMDAxOTYzLCAwLjAwMTk2MyIsIFwKLSAgICAgICAgICAiMC4wMDE5NDksIDAuMDAxOTUsIDAuMDAxOTU4LCAwLjAwMTk2MiwgMC4wMDE5NjEsIDAuMDAxOTYzLCAwLjAwMTk2NCIsIFwKLSAgICAgICAgICAiMC4wMDE5NTcsIDAuMDAxOTU4LCAwLjAwMTk2MiwgMC4wMDE5NjMsIDAuMDAxOTY0LCAwLjAwMTk2NSwgMC4wMDE5NjUiLCBcCi0gICAgICAgICAgIjAuMDAxOTc0LCAwLjAwMTk3MywgMC4wMDE5NywgMC4wMDE5NjgsIDAuMDAxOTY4LCAwLjAwMTk2NiwgMC4wMDE5NjYiLCBcCi0gICAgICAgICAgIjAuMDAyMDE2LCAwLjAwMjAwOCwgMC4wMDE5ODgsIDAuMDAxOTgsIDAuMDAxOTc1LCAwLjAwMTk3MiwgMC4wMDE5NyIsIFwKLSAgICAgICAgICAiMC4wMDIwNjQsIDAuMDAyMDUzLCAwLjAwMjAxMiwgMC4wMDE5OTYsIDAuMDAxOTg3LCAwLjAwMTk3OCwgMC4wMDE5NzYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDA1NDMsIDAuMDAwNTQ0LCAwLjAwMDU0NCwgMC4wMDA1NDQsIDAuMDAwNTQ0LCAwLjAwMDU0NCwgMC4wMDA1NDQiLCBcCi0gICAgICAgICAgIjAuMDAwNTM3LCAwLjAwMDUzNywgMC4wMDA1MzcsIDAuMDAwNTM4LCAwLjAwMDUzOCwgMC4wMDA1MzcsIDAuMDAwNTM3IiwgXAotICAgICAgICAgICIwLjAwMDU1MywgMC4wMDA1NTEsIDAuMDAwNTQ0LCAwLjAwMDU0MSwgMC4wMDA1NCwgMC4wMDA1MzgsIDAuMDAwNTM4IiwgXAotICAgICAgICAgICIwLjAwMDU3NywgMC4wMDA1NzMsIDAuMDAwNTU2LCAwLjAwMDU0NywgMC4wMDA1NDQsIDAuMDAwNTQsIDAuMDAwNTM5IiwgXAotICAgICAgICAgICIwLjAwMDYwOCwgMC4wMDA2LCAwLjAwMDU3MSwgMC4wMDA1NTYsIDAuMDAwNTUsIDAuMDAwNTQ0LCAwLjAwMDU0MiIsIFwKLSAgICAgICAgICAiMC4wMDA2NywgMC4wMDA2NTUsIDAuMDAwNjAxLCAwLjAwMDU3NSwgMC4wMDA1NjMsIDAuMDAwNTUxLCAwLjAwMDU0OCIsIFwKLSAgICAgICAgICAiMC4wMDA3MzgsIDAuMDAwNzE3LCAwLjAwMDYzNiwgMC4wMDA1OTcsIDAuMDAwNTgsIDAuMDAwNTYyLCAwLjAwMDU1NiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIxIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDE2OTcsIDAuMDAxNjk4LCAwLjAwMTcsIDAuMDAxNywgMC4wMDE3MDEsIDAuMDAxNzAxLCAwLjAwMTcwMSIsIFwKLSAgICAgICAgICAiMC4wMDE2OTYsIDAuMDAxNjk3LCAwLjAwMTcwNCwgMC4wMDE3MDYsIDAuMDAxNzA3LCAwLjAwMTcwNywgMC4wMDE3MDgiLCBcCi0gICAgICAgICAgIjAuMDAxNzA2LCAwLjAwMTcwNiwgMC4wMDE3MDcsIDAuMDAxNzA5LCAwLjAwMTcwOSwgMC4wMDE3MDksIDAuMDAxNzA5IiwgXAotICAgICAgICAgICIwLjAwMTcyNCwgMC4wMDE3MjIsIDAuMDAxNzE1LCAwLjAwMTcxMiwgMC4wMDE3MTEsIDAuMDAxNzExLCAwLjAwMTcxIiwgXAotICAgICAgICAgICIwLjAwMTc1MSwgMC4wMDE3NDcsIDAuMDAxNzMsIDAuMDAxNzE5LCAwLjAwMTcxNiwgMC4wMDE3MTMsIDAuMDAxNzEzIiwgXAotICAgICAgICAgICIwLjAwMTgxMiwgMC4wMDE3OTksIDAuMDAxNzU3LCAwLjAwMTczNiwgMC4wMDE3MjgsIDAuMDAxNzIsIDAuMDAxNzE4IiwgXAotICAgICAgICAgICIwLjAwMTg3NSwgMC4wMDE4NTcsIDAuMDAxNzg5LCAwLjAwMTc1OCwgMC4wMDE3NDEsIDAuMDAxNzI4LCAwLjAwMTcyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDM5MiwgMC4wMDAzOTMsIDAuMDAwMzk1LCAwLjAwMDM5NiwgMC4wMDAzOTYsIDAuMDAwMzk2LCAwLjAwMDM5NiIsIFwKLSAgICAgICAgICAiMC4wMDAzOSwgMC4wMDAzOTIsIDAuMDAwMzk4LCAwLjAwMDQwMSwgMC4wMDA0MDEsIDAuMDAwNDAyLCAwLjAwMDQwMiIsIFwKLSAgICAgICAgICAiMC4wMDA0LCAwLjAwMDQwMSwgMC4wMDA0MDIsIDAuMDAwNDAzLCAwLjAwMDQwMywgMC4wMDA0MDMsIDAuMDAwNDAzIiwgXAotICAgICAgICAgICIwLjAwMDQxOCwgMC4wMDA0MSwgMC4wMDA0MDgsIDAuMDAwNDA2LCAwLjAwMDQwNywgMC4wMDA0MDUsIDAuMDAwNDA1IiwgXAotICAgICAgICAgICIwLjAwMDQ0MywgMC4wMDA0MzgsIDAuMDAwNDI0LCAwLjAwMDQxNSwgMC4wMDA0MTIsIDAuMDAwNDA4LCAwLjAwMDQwOCIsIFwKLSAgICAgICAgICAiMC4wMDA0OTcsIDAuMDAwNDg2LCAwLjAwMDQ1MSwgMC4wMDA0MzIsIDAuMDAwNDI0LCAwLjAwMDQxNSwgMC4wMDA0MTMiLCBcCi0gICAgICAgICAgIjAuMDAwNTYsIDAuMDAwNTQzLCAwLjAwMDQ4LCAwLjAwMDQ1MiwgMC4wMDA0MzgsIDAuMDAwNDI0LCAwLjAwMDQyMSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IE9BSTMxWEwgKgotICogLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoT0FJMzFYTCkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjIxNDg3OTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQTApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYzNzg2OTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MzY2NzE7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjM3ODY5OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDI5NiwgMC4wMDAyOTYsIDAuMDAwMjk2LCAwLjAwMDI5NiwgMC4wMDAyOTYsIDAuMDAwMjk2LCAwLjAwMDI5NiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDMsIDAuMDAwMjk4LCAwLjAwMDI5OCwgMC4wMDAyOTgsIDAuMDAwMjk4LCAwLjAwMDI5NywgMC4wMDAyOTciKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEExKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2ODA0MDU7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjc5NTM7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjgwNDA1OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDI5NywgMC4wMDAyOTcsIDAuMDAwMjk2LCAwLjAwMDI5NiwgMC4wMDAyOTYsIDAuMDAwMjk2LCAwLjAwMDI5NiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDMsIDAuMDAwMjk4LCAwLjAwMDI5NywgMC4wMDAyOTcsIDAuMDAwMjk3LCAwLjAwMDI5NywgMC4wMDAyOTciKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEEyKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2OTUxNjk7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjk1MTY5OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDY5NDA4MTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyOTcsIDAuMDAwMjk3LCAwLjAwMDI5NiwgMC4wMDAyOTYsIDAuMDAwMjk2LCAwLjAwMDI5NiwgMC4wMDAyOTYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAzLCAwLjAwMDI5OCwgMC4wMDAyOTcsIDAuMDAwMjk3LCAwLjAwMDI5NywgMC4wMDAyOTcsIDAuMDAwMjk3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjg3NDA1OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDY4NzQwNTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2ODczNTc7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNTA3LCAwLjAwMDUwOCwgMC4wMDA1MDcsIDAuMDAwNTA3LCAwLjAwMDUwOCwgMC4wMDA1MDcsIDAuMDAwNTA4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzM3LCAwLjAwMDMzOCwgMC4wMDAzMzgsIDAuMDAwMzM4LCAwLjAwMDMzOCwgMC4wMDAzMzgsIDAuMDAwMzM4Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMDc2NDQ5OwotICAgIGZ1bmN0aW9uIDogIighKCgoQTArQTEpK0EyKSBCMCkpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTY2MTAyLCAwLjE5MzgzMywgMC40NDA4NTUsIDAuODUzMDA1LCAxLjI2NTA5LCAyLjIyNjQ4LCAyLjc3MzciLCBcCi0gICAgICAgICAgIjAuMTcxMTAzLCAwLjE5ODcyOSwgMC40NDU4NjQsIDAuODU4MDk3LCAxLjI2OTM0LCAyLjIzMDE0LCAyLjc4MDQiLCBcCi0gICAgICAgICAgIjAuMTc1OTk5LCAwLjIwMzQ0NSwgMC40NTEwMTQsIDAuODYzNywgMS4yNzU1OSwgMi4yMzgzMSwgMi43ODU5NCIsIFwKLSAgICAgICAgICAiMC4xODA2MzgsIDAuMjA4MTE1LCAwLjQ1NTUxMiwgMC44Njc0NjgsIDEuMjc5MjksIDIuMjQyMTQsIDIuNzkwNTYiLCBcCi0gICAgICAgICAgIjAuMTg1NDE4LCAwLjIxMjc4NywgMC40NjAyOCwgMC44NzIwNSwgMS4yODU0LCAyLjI0NjQsIDIuNzk1NTQiLCBcCi0gICAgICAgICAgIjAuMTkyOTM1LCAwLjIyMDQ2MiwgMC40Njc3OTQsIDAuODc5NTg2LCAxLjI5MTQyLCAyLjI1Mzk3LCAyLjgwMTE0IiwgXAotICAgICAgICAgICIwLjE5OTcwMSwgMC4yMjcyMjUsIDAuNDc0MTE4LCAwLjg4NjQ4MywgMS4yOTgzNiwgMi4yNjE4OCwgMi44MDgwNCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMjkxNTQsIDAuMzg3Mzk5LCAwLjkxMTQ4NCwgMS43ODQ2NSwgMi42NTY4NSwgNC42OTIzOSwgNS44NjExNSIsIFwKLSAgICAgICAgICAiMC4zMjg5MjQsIDAuMzg3MjYyLCAwLjkxMTU0NiwgMS43ODQzNCwgMi42NTgxNywgNC42OTQ0NiwgNS44NTc0NyIsIFwKLSAgICAgICAgICAiMC4zMjg5ODgsIDAuMzg3MzE3LCAwLjkxMTA5OSwgMS43ODQ4OSwgMi42NTc2NSwgNC42OTQxNCwgNS44NTU3NyIsIFwKLSAgICAgICAgICAiMC4zMzAwMzYsIDAuMzg3NzczLCAwLjkxMTUyNywgMS43ODQ2NSwgMi42NTc3OCwgNC42OTM5OSwgNS44NTU2MSIsIFwKLSAgICAgICAgICAiMC4zMzE2NTgsIDAuMzg5MTYxLCAwLjkxMTU2NSwgMS43ODQyOSwgMi42NTg0NywgNC42OTM1NSwgNS44NTYyNyIsIFwKLSAgICAgICAgICAiMC4zMzU2MTYsIDAuMzkyNjI5LCAwLjkxMTgyNiwgMS43ODQxOSwgMi42NTcxNiwgNC42OTM1MywgNS44NTk2IiwgXAotICAgICAgICAgICIwLjMzOTk2OCwgMC4zOTY1NzgsIDAuOTEzMDU2LCAxLjc4NDU5LCAyLjY1NzcxLCA0LjY5NDM3LCA1Ljg1ODMiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTA2NDE5LCAwLjEyMzY1OCwgMC4yNzg2OTIsIDAuNTM3MDE2LCAwLjc5NTI3NiwgMS4zOTc4LCAxLjc0MTY1IiwgXAotICAgICAgICAgICIwLjExMzM4NSwgMC4xMzA2NjEsIDAuMjg1NjcyLCAwLjU0NDA0MSwgMC44MDIwMTksIDEuNDA0NCwgMS43NDk1IiwgXAotICAgICAgICAgICIwLjEyMTE2MSwgMC4xMzg0NDQsIDAuMjkzNjI4LCAwLjU1MjI0MywgMC44MTAzMTksIDEuNDEzMjksIDEuNzU2ODkiLCBcCi0gICAgICAgICAgIjAuMTI5MDE4LCAwLjE0NjIzNiwgMC4zMDE0NTgsIDAuNTU5Nzk2LCAwLjgxNzgwNSwgMS40MjEyOCwgMS43NjQ3OSIsIFwKLSAgICAgICAgICAiMC4xMzY3MiwgMC4xNTQwNzYsIDAuMzA5MTk4LCAwLjU2NzQ5NSwgMC44MjU2MzcsIDEuNDI4NjQsIDEuNzcyMzMiLCBcCi0gICAgICAgICAgIjAuMTQ5Mjg4LCAwLjE2NjcxMywgMC4zMjE2MzIsIDAuNTgwMzYzLCAwLjgzODI5NCwgMS40NDA1NiwgMS43ODU3NiIsIFwKLSAgICAgICAgICAiMC4xNTk3MjgsIDAuMTc3NTQsIDAuMzMyNiwgMC41OTExMjYsIDAuODQ5NzA3LCAxLjQ1MTkzLCAxLjc5NjgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTk5Mzk2LCAwLjIzNDc2MywgMC41NTQ2MywgMS4wODY4NCwgMS42MTkxNSwgMi44NjEwMywgMy41NzA2MyIsIFwKLSAgICAgICAgICAiMC4xOTkzODUsIDAuMjM0Nzc5LCAwLjU1NDY5NiwgMS4wODcwNiwgMS42MTkzMSwgMi44NjE4NiwgMy41NzE2OSIsIFwKLSAgICAgICAgICAiMC4xOTk4NzgsIDAuMjM1MDM5LCAwLjU1NDM4OSwgMS4wODcxOSwgMS42MTk0NiwgMi44NjE4NywgMy41NzA3OCIsIFwKLSAgICAgICAgICAiMC4yMDIyNjIsIDAuMjM2OTAzLCAwLjU1NDQyNCwgMS4wODY4MywgMS42MTkxMywgMi44NjIwNSwgMy41NzA3OCIsIFwKLSAgICAgICAgICAiMC4yMDU5NjIsIDAuMjQwMTc3LCAwLjU1NDY3NiwgMS4wODcxMywgMS42MTkxLCAyLjg2MTk1LCAzLjU3MjQ2IiwgXAotICAgICAgICAgICIwLjIxMzYxNSwgMC4yNDcxODUsIDAuNTU2OTY5LCAxLjA4NzQzLCAxLjYxODkzLCAyLjg2MTExLCAzLjU3MjA4IiwgXAotICAgICAgICAgICIwLjIyMTI5OCwgMC4yNTQzMDEsIDAuNTYwNDE2LCAxLjA4NzIsIDEuNjE5MjgsIDIuODYxMDEsIDMuNTcxNiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTY0MzA1LCAwLjE5MTcwOSwgMC40MzkyMzcsIDAuODUxMzA3LCAxLjI2NDIxLCAyLjIyNTQzLCAyLjc3Mjk2IiwgXAotICAgICAgICAgICIwLjE3MDIwMiwgMC4xOTc2NDcsIDAuNDQ1MjksIDAuODU2ODQxLCAxLjI2OTgzLCAyLjIzMDQ2LCAyLjc3ODE2IiwgXAotICAgICAgICAgICIwLjE3NjkzNiwgMC4yMDQ3NzEsIDAuNDUyMjI4LCAwLjg2NDc2MywgMS4yNzc0NSwgMi4yMzkzNywgMi43ODcwMyIsIFwKLSAgICAgICAgICAiMC4xODQ1NjQsIDAuMjEyMTU0LCAwLjQ1OTc0NiwgMC44NzE2NDIsIDEuMjgzOTYsIDIuMjQ0OTEsIDIuNzk0MjciLCBcCi0gICAgICAgICAgIjAuMTkxNzI3LCAwLjIxOTMwNSwgMC40NjY5NTgsIDAuODc4OTA1LCAxLjI5MTE2LCAyLjI1MTU4LCAyLjgwMTEiLCBcCi0gICAgICAgICAgIjAuMjAzNzUyLCAwLjIzMTAwNywgMC40Nzg1NzYsIDAuODkxMDQzLCAxLjMwMjQxLCAyLjI2NDk3LCAyLjgxMzU2IiwgXAotICAgICAgICAgICIwLjIxMzkzNCwgMC4yNDE0MzcsIDAuNDg4NzQ3LCAwLjkwMDQ2MSwgMS4zMTM0NiwgMi4yNzU5NSwgMi44MjE5NCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMjkwMDQsIDAuMzg3MjUzLCAwLjkxMTQwNywgMS43ODQwMywgMi42NTgwOSwgNC42OTQ1OSwgNS44NTc5IiwgXAotICAgICAgICAgICIwLjMyODk0OCwgMC4zODc1MzQsIDAuOTExNjM3LCAxLjc4NDMyLCAyLjY1Nzc0LCA0LjY5MjIsIDUuODU4MzIiLCBcCi0gICAgICAgICAgIjAuMzI4OTc0LCAwLjM4NzIyOSwgMC45MTEwODQsIDEuNzg0NzMsIDIuNjU4MTcsIDQuNjkzODgsIDUuODU1MzEiLCBcCi0gICAgICAgICAgIjAuMzI5OTY0LCAwLjM4NzgyOCwgMC45MTEyNTksIDEuNzgzOTgsIDIuNjU3MjcsIDQuNjkyMjIsIDUuODU1NjIiLCBcCi0gICAgICAgICAgIjAuMzMyNDc3LCAwLjM4OTcwOSwgMC45MTEzMzcsIDEuNzgzOTksIDIuNjU3MDgsIDQuNjk0MjYsIDUuODU1ODkiLCBcCi0gICAgICAgICAgIjAuMzM4NDc4LCAwLjM5NDUyMywgMC45MTE3NDQsIDEuNzg0NDcsIDIuNjU3NDksIDQuNjk0MDIsIDUuODU3MDUiLCBcCi0gICAgICAgICAgIjAuMzQ0NzEsIDAuNDAwMTYzLCAwLjkxMzI5MSwgMS43ODQzNiwgMi42NTc3MywgNC42OTQyMywgNS44NjI4NyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDM4NDQsIDAuMTIxMDc4LCAwLjI3NjEwNCwgMC41MzQ3MTEsIDAuNzkyMjA2LCAxLjM5NDg2LCAxLjc0MDYzIiwgXAotICAgICAgICAgICIwLjExMDkzNywgMC4xMjgxOCwgMC4yODMxMzUsIDAuNTQxNTAyLCAwLjc5OTM5OCwgMS40MDE4MywgMS43NDY3MiIsIFwKLSAgICAgICAgICAiMC4xMTg3NTUsIDAuMTM1OTg4LCAwLjI5MTEzNywgMC41NDk4MjUsIDAuODA3ODgyLCAxLjQxMTAxLCAxLjc1NDM0IiwgXAotICAgICAgICAgICIwLjEyNjQ4OSwgMC4xNDM2NSwgMC4yOTg4ODgsIDAuNTU3MjI1LCAwLjgxNTE1NSwgMS40MTkwMiwgMS43NjIxNSIsIFwKLSAgICAgICAgICAiMC4xMzQyNDEsIDAuMTUxNjg4LCAwLjMwNjU4OCwgMC41NjQ5NTUsIDAuODIzMDksIDEuNDI2MDQsIDEuNzY5ODUiLCBcCi0gICAgICAgICAgIjAuMTQ2NzEsIDAuMTY0MDYsIDAuMzE5MTg4LCAwLjU3ODA5LCAwLjgzNTgyOCwgMS40MzgxLCAxLjc4MzMiLCBcCi0gICAgICAgICAgIjAuMTU3MDMxLCAwLjE3NDg1MiwgMC4zMzAwMzcsIDAuNTg4NjA0LCAwLjg0NzU1MiwgMS40NDk2NCwgMS43OTUyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE5NTk5NiwgMC4yMzEzOTcsIDAuNTUxMDI0LCAxLjA4MzU2LCAxLjYxNjgxLCAyLjg1NzM1LCAzLjU2ODUzIiwgXAotICAgICAgICAgICIwLjE5NjAwOSwgMC4yMzEzODIsIDAuNTUxMDAzLCAxLjA4MzQxLCAxLjYxNjQsIDIuODU5MjIsIDMuNTY3NzYiLCBcCi0gICAgICAgICAgIjAuMTk2NDQ2LCAwLjIzMTY1NiwgMC41NTA5MTIsIDEuMDgzNTcsIDEuNjE2MTMsIDIuODU4MjQsIDMuNTY3MTkiLCBcCi0gICAgICAgICAgIjAuMTk4OTI0LCAwLjIzMzUxMywgMC41NTA5OTgsIDEuMDgzMzksIDEuNjE1NTgsIDIuODU4NjUsIDMuNTY3MjQiLCBcCi0gICAgICAgICAgIjAuMjAyNjQ4LCAwLjIzNjk1NSwgMC41NTEyMzQsIDEuMDgzMjEsIDEuNjE1NTgsIDIuODU3ODQsIDMuNTcwMDgiLCBcCi0gICAgICAgICAgIjAuMjEwNDk1LCAwLjI0MzkxMSwgMC41NTM0MjYsIDEuMDgzMzYsIDEuNjE1NDgsIDIuODU3NTMsIDMuNTY5NTIiLCBcCi0gICAgICAgICAgIjAuMjE4MjksIDAuMjUxMTkzLCAwLjU1NzMzNiwgMS4wODMzMSwgMS42MTU4NywgMi44NTcyOSwgMy41Njc5NCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTU5NDM0LCAwLjE4NjkyOCwgMC40MzQ2MDYsIDAuODQ2MzczLCAxLjI1OTI3LCAyLjIyMTE0LCAyLjc2ODIyIiwgXAotICAgICAgICAgICIwLjE2NjIwOSwgMC4xOTM4MzksIDAuNDQxNDQyLCAwLjg1MzU3MiwgMS4yNjU3NiwgMi4yMjU4NCwgMi43NzQ4IiwgXAotICAgICAgICAgICIwLjE3NDk5NCwgMC4yMDI1NDcsIDAuNDQ5OTIxLCAwLjg2MjMwNywgMS4yNzQ4MSwgMi4yMzY3OCwgMi43ODQ0NyIsIFwKLSAgICAgICAgICAiMC4xODQxNDUsIDAuMjExNTM4LCAwLjQ1ODkzLCAwLjg3MTQ0NSwgMS4yODM3NywgMi4yNDU1OSwgMi43OTE4NSIsIFwKLSAgICAgICAgICAiMC4xOTI5LCAwLjIyMDE5OCwgMC40NjcxOTUsIDAuODc5MTIsIDEuMjkxNTYsIDIuMjUxNzMsIDIuODAwNTQiLCBcCi0gICAgICAgICAgIjAuMjA3NDg4LCAwLjIzNDg4NiwgMC40ODE3MjcsIDAuODkzMDkyLCAxLjMwNTA4LCAyLjI2NjIyLCAyLjgxNTg3IiwgXAotICAgICAgICAgICIwLjIyMDUwOSwgMC4yNDc2ODUsIDAuNDkzODcsIDAuOTA1MjE0LCAxLjMxNzE5LCAyLjI3NzE0LCAyLjgyNjM0Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMyOTEzLCAwLjM4NzQxNiwgMC45MTE1MDksIDEuNzgzOTcsIDIuNjU3OTIsIDQuNjk0NzYsIDUuODU1NzQiLCBcCi0gICAgICAgICAgIjAuMzI5MDcyLCAwLjM4NzI0NywgMC45MTE0NDcsIDEuNzg0NDEsIDIuNjU3MzksIDQuNjk1MjQsIDUuODU4MzciLCBcCi0gICAgICAgICAgIjAuMzI5MDcyLCAwLjM4NzIxOSwgMC45MTEyNywgMS43ODQ3LCAyLjY1ODA1LCA0LjY5Mzg0LCA1Ljg1NTEiLCBcCi0gICAgICAgICAgIjAuMzMwMzk2LCAwLjM4Nzg2NiwgMC45MTEwOSwgMS43ODQ3OSwgMi42NTgwMSwgNC42OTQ3NSwgNS44NTczMyIsIFwKLSAgICAgICAgICAiMC4zMzQxLCAwLjM5MDU1MSwgMC45MTE0NjUsIDEuNzg0MDEsIDIuNjU3MjMsIDQuNjk0ODEsIDUuODU4NjUiLCBcCi0gICAgICAgICAgIjAuMzQyMDMsIDAuMzk3MzkxLCAwLjkxMTQ2NiwgMS43ODQ1LCAyLjY1NjcxLCA0LjY5NTMxLCA1Ljg1NTU2IiwgXAotICAgICAgICAgICIwLjM1MDkxMiwgMC40MDUyMDgsIDAuOTEzMTEsIDEuNzg0MTksIDIuNjU3ODYsIDQuNjk0NDksIDUuODU5NzQiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk5MjAyLCAwLjExNjE0MiwgMC4yNjg2MzIsIDAuNTIzMDQyLCAwLjc3NjUwMywgMS4zNjkwOCwgMS43MDkyOCIsIFwKLSAgICAgICAgICAiMC4xMDY0MDcsIDAuMTIzMzY1LCAwLjI3NTg0OSwgMC41Mjk4NTUsIDAuNzgzODkxLCAxLjM3NjI1LCAxLjcxNjM0IiwgXAotICAgICAgICAgICIwLjExNDMxLCAwLjEzMTI1MSwgMC4yODM5NzUsIDAuNTM4MTQ4LCAwLjc5MTk1NywgMS4zODU3NiwgMS43MjMyMyIsIFwKLSAgICAgICAgICAiMC4xMjIxNDksIDAuMTM5MDM4LCAwLjI5MTc0MiwgMC41NDU5NiwgMC43OTk2MzEsIDEuMzkyODYsIDEuNzMxMTciLCBcCi0gICAgICAgICAgIjAuMTI5OTkyLCAwLjE0NjkxMSwgMC4yOTk1MjUsIDAuNTUzNTg3LCAwLjgwNzU5OCwgMS40MDA3NSwgMS43Mzg3NyIsIFwKLSAgICAgICAgICAiMC4xNDI2MDcsIDAuMTU5NjYsIDAuMzEyMTQ0LCAwLjU2NjgzNiwgMC44MjA0ODQsIDEuNDEzMDUsIDEuNzUyMTkiLCBcCi0gICAgICAgICAgIjAuMTUyNzYyLCAwLjE3MDU5MiwgMC4zMjMxOTgsIDAuNTc3NTc0LCAwLjgzMjAzLCAxLjQyNDUxLCAxLjc2MzE1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE4ODUzOCwgMC4yMjM1NzIsIDAuNTM2MjY4LCAxLjA1OTAyLCAxLjU4MDM4LCAyLjc5OTA4LCAzLjQ5NjM1IiwgXAotICAgICAgICAgICIwLjE4ODY0OSwgMC4yMjMxOTIsIDAuNTM2MjgxLCAxLjA1OTU0LCAxLjU4MDM1LCAyLjgwMTM5LCAzLjQ5Njg1IiwgXAotICAgICAgICAgICIwLjE4OTMwMSwgMC4yMjM1MDEsIDAuNTM2Mjc5LCAxLjA1OTA4LCAxLjU4MjA3LCAyLjgwMDE4LCAzLjQ5NTAzIiwgXAotICAgICAgICAgICIwLjE5MTU0LCAwLjIyNTgzMywgMC41MzYyNDIsIDEuMDU4MzksIDEuNTg4MzIsIDIuNzk5NzEsIDMuNDk0OTYiLCBcCi0gICAgICAgICAgIjAuMTk1NjE1LCAwLjIyODg5NCwgMC41Mzc5MzEsIDEuMDYwODMsIDEuNTg4NDEsIDIuNzk4NzYsIDMuNDk3NCIsIFwKLSAgICAgICAgICAiMC4yMDM0NDEsIDAuMjM2MTE2LCAwLjU0MDExNywgMS4wNTg0NCwgMS41ODQxNSwgMi44MTI3MSwgMy40OTg2NiIsIFwKLSAgICAgICAgICAiMC4yMTE0MzQsIDAuMjQzNjgsIDAuNTQzODU4LCAxLjA2MDk4LCAxLjU4MDM2LCAyLjc5ODc3LCAzLjQ5NTQ2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTk2NDgsIDAuMDcwMjA3LCAwLjE2NTI1MiwgMC4zMjM0MzQsIDAuNDgxNDQ0LCAwLjg0OTk5MSwgMS4wNjA1MyIsIFwKLSAgICAgICAgICAiMC4wNjc2ODcsIDAuMDc4MjU1LCAwLjE3MzI5OSwgMC4zMzE0OTEsIDAuNDg5NDgzLCAwLjg1ODAyNSwgMS4wNjg1IiwgXAotICAgICAgICAgICIwLjA3Nzc4NiwgMC4wODgzMTUsIDAuMTgzMzQ0LCAwLjM0MTUyNCwgMC40OTk0MiwgMC44Njc5NDIsIDEuMDc4NDUiLCBcCi0gICAgICAgICAgIjAuMDg4MDQ5LCAwLjA5ODUzOCwgMC4xOTM0MjUsIDAuMzUxNjA2LCAwLjUwOTUzOSwgMC44Nzc5NTIsIDEuMDg4NTUiLCBcCi0gICAgICAgICAgIjAuMDk4MjY5LCAwLjEwODgzOCwgMC4yMDM1ODEsIDAuMzYwODIsIDAuNTE5NjExLCAwLjg4ODAwOCwgMS4wOTgzNSIsIFwKLSAgICAgICAgICAiMC4xMTI1NSwgMC4xMjQ2MDcsIDAuMjE5ODAyLCAwLjM3NzgyMywgMC41MzU3NTIsIDAuOTA0MjAzLCAxLjExNDM5IiwgXAotICAgICAgICAgICIwLjEyMzAzMiwgMC4xMzYzMDksIDAuMjM0MjM4LCAwLjM5MjAzOSwgMC41NTAwMzUsIDAuOTE4MzY0LCAxLjEyODc4Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEyNjIzLCAwLjE0ODMwNywgMC4zNDcxNjEsIDAuNjc4ODcxLCAxLjAxMDkxLCAxLjc4NTQzLCAyLjIyODE1IiwgXAotICAgICAgICAgICIwLjEyNjUxNSwgMC4xNDgzNjIsIDAuMzQ3MTMsIDAuNjc4NzkyLCAxLjAxMDYsIDEuNzg1NTQsIDIuMjI4MDQiLCBcCi0gICAgICAgICAgIjAuMTMwODMzLCAwLjE1MTczOCwgMC4zNDcxNTksIDAuNjc4ODA5LCAxLjAxMDYsIDEuNzg1MTEsIDIuMjI3NjMiLCBcCi0gICAgICAgICAgIjAuMTM3NzgsIDAuMTU3OTI4LCAwLjM0ODQyMiwgMC42Nzg4ODIsIDEuMDEwNTksIDEuNzg1NDYsIDIuMjI3ODMiLCBcCi0gICAgICAgICAgIjAuMTQ1OTQ3LCAwLjE2NTU2OSwgMC4zNTE4MzYsIDAuNjc4ODIzLCAxLjAxMDkyLCAxLjc4NTQ3LCAyLjIyNzUzIiwgXAotICAgICAgICAgICIwLjE2MDQ5NCwgMC4xNzk0MTUsIDAuMzYwMDE4LCAwLjY4MDU5MywgMS4wMTA1OCwgMS43ODUwNiwgMi4yMjc2OSIsIFwKLSAgICAgICAgICAiMC4xNzM5LCAwLjE5MjM1NywgMC4zNjkwNzQsIDAuNjg0NzA3LCAxLjAxMTQ1LCAxLjc4NTQ0LCAyLjIyNzU1Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwMTQ1LCAwLjExODY2NSwgMC4yNzM5MzYsIDAuNTMyMjE1LCAwLjc5MDY2MSwgMS4zOTM1NiwgMS43MzcxNSIsIFwKLSAgICAgICAgICAiMC4xMDg4NCwgMC4xMjYxLCAwLjI4MTIwMSwgMC41Mzk0MTMsIDAuNzk3NDY2LCAxLjQwMDYsIDEuNzQ0MzYiLCBcCi0gICAgICAgICAgIjAuMTE4NDEyLCAwLjEzNTY3MSwgMC4yOTA3NzgsIDAuNTQ5MzcsIDAuODA3Njk2LCAxLjQxMDI4LCAxLjc1NDA2IiwgXAotICAgICAgICAgICIwLjEyODAyMSwgMC4xNDUyNzksIDAuMzAwMjc4LCAwLjU1ODU5NSwgMC44MTY2MzcsIDEuNDE5OCwgMS43NjI5OSIsIFwKLSAgICAgICAgICAiMC4xMzc4NzUsIDAuMTU1MDg0LCAwLjMwOTgyNCwgMC41Njc5NjcsIDAuODI2MjY0LCAxLjQyODY0LCAxLjc3NDM5IiwgXAotICAgICAgICAgICIwLjE1Mzc2NSwgMC4xNzA3MjQsIDAuMzI1MjQ0LCAwLjU4MzQwNywgMC44NDEzOTMsIDEuNDQzNDgsIDEuNzg4MjgiLCBcCi0gICAgICAgICAgIjAuMTY3NzQ5LCAwLjE4NDk0MiwgMC4zMzg4NzksIDAuNTk2OTI1LCAwLjg1NTE1OCwgMS40NTcwNywgMS44MDEwNyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xOTkyNzksIDAuMjM0OTA3LCAwLjU1NDU4MiwgMS4wODcxMSwgMS42MTk1OSwgMi44NjIzMiwgMy41NzA4NSIsIFwKLSAgICAgICAgICAiMC4xOTkyNiwgMC4yMzQ4NTIsIDAuNTU0NzQ0LCAxLjA4NzA4LCAxLjYxOTU4LCAyLjg2MTgxLCAzLjU3MjI3IiwgXAotICAgICAgICAgICIwLjIwMDIxMiwgMC4yMzUxNDksIDAuNTU0NDM5LCAxLjA4NzE1LCAxLjYxOTQyLCAyLjg2MTkzLCAzLjU3MDcxIiwgXAotICAgICAgICAgICIwLjIwNDEzMSwgMC4yMzgyNjEsIDAuNTU0NDE3LCAxLjA4Njk4LCAxLjYyMDI1LCAyLjg2MTk5LCAzLjU3MTg4IiwgXAotICAgICAgICAgICIwLjIwOTg2NiwgMC4yNDMyODYsIDAuNTU0ODQyLCAxLjA4NzA3LCAxLjYxOTU1LCAyLjg2MTcxLCAzLjU3MjI2IiwgXAotICAgICAgICAgICIwLjIyMDkwMiwgMC4yNTMyNTgsIDAuNTU4MTczLCAxLjA4NjksIDEuNjE5MTcsIDIuODYxMjIsIDMuNTcxMTQiLCBcCi0gICAgICAgICAgIjAuMjMxNzM2LCAwLjI2MzY2NiwgMC41NjMyODksIDEuMDg3MTEsIDEuNjE5MywgMi44NjEwNCwgMy41NzEwNyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI3ODcsIDAuMDAyNzg3LCAwLjAwMjc4NywgMC4wMDI3ODYsIDAuMDAyNzg1LCAwLjAwMjc4MywgMC4wMDI3ODEiLCBcCi0gICAgICAgICAgIjAuMDAyNzc3LCAwLjAwMjc3OCwgMC4wMDI3OCwgMC4wMDI3OCwgMC4wMDI3NzksIDAuMDAyNzc3LCAwLjAwMjc3OCIsIFwKLSAgICAgICAgICAiMC4wMDI3NzMsIDAuMDAyNzc0LCAwLjAwMjc3NywgMC4wMDI3NzgsIDAuMDAyNzc3LCAwLjAwMjc3NSwgMC4wMDI3NzQiLCBcCi0gICAgICAgICAgIjAuMDAyNzc3LCAwLjAwMjc3NywgMC4wMDI3NzksIDAuMDAyNzgsIDAuMDAyNzc4LCAwLjAwMjc3NywgMC4wMDI3NzUiLCBcCi0gICAgICAgICAgIjAuMDAyNzg2LCAwLjAwMjc4NSwgMC4wMDI3ODIsIDAuMDAyNzgsIDAuMDAyNzc5LCAwLjAwMjc3NywgMC4wMDI3NzUiLCBcCi0gICAgICAgICAgIjAuMDAyODEzLCAwLjAwMjgxLCAwLjAwMjc5NywgMC4wMDI3ODgsIDAuMDAyNzg2LCAwLjAwMjc4LCAwLjAwMjc3OSIsIFwKLSAgICAgICAgICAiMC4wMDI4NTEsIDAuMDAyODQ0LCAwLjAwMjgxMywgMC4wMDI4LCAwLjAwMjc5MywgMC4wMDI3ODUsIDAuMDAyNzgxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwNTY5LCAwLjAwMDU3LCAwLjAwMDU3LCAwLjAwMDU2OSwgMC4wMDA1NjksIDAuMDAwNTY5LCAwLjAwMDU2OSIsIFwKLSAgICAgICAgICAiMC4wMDA1NTQsIDAuMDAwNTU0LCAwLjAwMDU1NiwgMC4wMDA1NTYsIDAuMDAwNTU2LCAwLjAwMDU1NiwgMC4wMDA1NTYiLCBcCi0gICAgICAgICAgIjAuMDAwNTUsIDAuMDAwNTUsIDAuMDAwNTUzLCAwLjAwMDU1NCwgMC4wMDA1NTQsIDAuMDAwNTU0LCAwLjAwMDU1MyIsIFwKLSAgICAgICAgICAiMC4wMDA1NTIsIDAuMDAwNTUzLCAwLjAwMDU1MywgMC4wMDA1NTQsIDAuMDAwNTU0LCAwLjAwMDU1MywgMC4wMDA1NTMiLCBcCi0gICAgICAgICAgIjAuMDAwNTYxLCAwLjAwMDU2MSwgMC4wMDA1NTcsIDAuMDAwNTU2LCAwLjAwMDU1NSwgMC4wMDA1NTQsIDAuMDAwNTUzIiwgXAotICAgICAgICAgICIwLjAwMDU4OCwgMC4wMDA1ODQsIDAuMDAwNTcsIDAuMDAwNTYzLCAwLjAwMDU2LCAwLjAwMDU1NiwgMC4wMDA1NTUiLCBcCi0gICAgICAgICAgIjAuMDAwNjI2LCAwLjAwMDYxNywgMC4wMDA1ODgsIDAuMDAwNTczLCAwLjAwMDU2NywgMC4wMDA1NjEsIDAuMDAwNTU5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjUzNiwgMC4wMDI1MzYsIDAuMDAyNTM2LCAwLjAwMjUzNiwgMC4wMDI1MzQsIDAuMDAyNTMyLCAwLjAwMjUzMSIsIFwKLSAgICAgICAgICAiMC4wMDI1MjcsIDAuMDAyNTI3LCAwLjAwMjUyOSwgMC4wMDI1MjksIDAuMDAyNTI5LCAwLjAwMjUyNSwgMC4wMDI1MjQiLCBcCi0gICAgICAgICAgIjAuMDAyNTIsIDAuMDAyNTI1LCAwLjAwMjUyOCwgMC4wMDI1MjgsIDAuMDAyNTI3LCAwLjAwMjUyNSwgMC4wMDI1MjQiLCBcCi0gICAgICAgICAgIjAuMDAyNTMsIDAuMDAyNTMsIDAuMDAyNTI5LCAwLjAwMjUyOCwgMC4wMDI1MjgsIDAuMDAyNTI1LCAwLjAwMjUyNCIsIFwKLSAgICAgICAgICAiMC4wMDI1NDEsIDAuMDAyNTQsIDAuMDAyNTM0LCAwLjAwMjUzMSwgMC4wMDI1MjksIDAuMDAyNTI2LCAwLjAwMjUyNCIsIFwKLSAgICAgICAgICAiMC4wMDI1NzYsIDAuMDAyNTY5LCAwLjAwMjU0OSwgMC4wMDI1MzksIDAuMDAyNTM2LCAwLjAwMjUyOSwgMC4wMDI1MjYiLCBcCi0gICAgICAgICAgIjAuMDAyNjEzLCAwLjAwMjYwNCwgMC4wMDI1NjcsIDAuMDAyNTQ5LCAwLjAwMjU0MSwgMC4wMDI1MzMsIDAuMDAyNTMxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwNDA3LCAwLjAwMDQwNywgMC4wMDA0MDgsIDAuMDAwNDA4LCAwLjAwMDQwOCwgMC4wMDA0MDgsIDAuMDAwNDA4IiwgXAotICAgICAgICAgICIwLjAwMDM5OCwgMC4wMDAzOTksIDAuMDAwNDA0LCAwLjAwMDQwNiwgMC4wMDA0MDYsIDAuMDAwNDA3LCAwLjAwMDQwNyIsIFwKLSAgICAgICAgICAiMC4wMDAzOSwgMC4wMDAzOTMsIDAuMDAwNDAxLCAwLjAwMDQwNCwgMC4wMDA0MDUsIDAuMDAwNDA2LCAwLjAwMDQwNiIsIFwKLSAgICAgICAgICAiMC4wMDAzOSwgMC4wMDAzOTIsIDAuMDAwNDAxLCAwLjAwMDQwNCwgMC4wMDA0MDUsIDAuMDAwNDA2LCAwLjAwMDQwNiIsIFwKLSAgICAgICAgICAiMC4wMDAzOTYsIDAuMDAwMzk4LCAwLjAwMDQwMywgMC4wMDA0MDUsIDAuMDAwNDA2LCAwLjAwMDQwNiwgMC4wMDA0MDYiLCBcCi0gICAgICAgICAgIjAuMDAwNDIsIDAuMDAwNDE5LCAwLjAwMDQxNCwgMC4wMDA0MTIsIDAuMDAwNDEsIDAuMDAwNDA5LCAwLjAwMDQwOCIsIFwKLSAgICAgICAgICAiMC4wMDA0NTQsIDAuMDAwNDQ5LCAwLjAwMDQzLCAwLjAwMDQyMiwgMC4wMDA0MTgsIDAuMDAwNDEzLCAwLjAwMDQxMiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEyIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDIyNywgMC4wMDIyNywgMC4wMDIyNywgMC4wMDIyNjksIDAuMDAyMjY4LCAwLjAwMjI2NiwgMC4wMDIyNjUiLCBcCi0gICAgICAgICAgIjAuMDAyMjYsIDAuMDAyMjYxLCAwLjAwMjI2MywgMC4wMDIyNjIsIDAuMDAyMjYyLCAwLjAwMjI2LCAwLjAwMjI1OSIsIFwKLSAgICAgICAgICAiMC4wMDIyNjgsIDAuMDAyMjY3LCAwLjAwMjI2NSwgMC4wMDIyNjMsIDAuMDAyMjYyLCAwLjAwMjI2LCAwLjAwMjI1OCIsIFwKLSAgICAgICAgICAiMC4wMDIyNzksIDAuMDAyMjc2LCAwLjAwMjI2OSwgMC4wMDIyNjUsIDAuMDAyMjYzLCAwLjAwMjI2LCAwLjAwMjI1OCIsIFwKLSAgICAgICAgICAiMC4wMDIzMTMsIDAuMDAyMzA2LCAwLjAwMjI4MywgMC4wMDIyNzMsIDAuMDAyMjY4LCAwLjAwMjI2MiwgMC4wMDIyNiIsIFwKLSAgICAgICAgICAiMC4wMDIzNjYsIDAuMDAyMzU2LCAwLjAwMjMwOSwgMC4wMDIyODcsIDAuMDAyMjc4LCAwLjAwMjI2OCwgMC4wMDIyNjUiLCBcCi0gICAgICAgICAgIjAuMDAyNDIyLCAwLjAwMjQwNywgMC4wMDIzMzksIDAuMDAyMzA0LCAwLjAwMjI5LCAwLjAwMjI3NSwgMC4wMDIyNyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDE5OCwgMC4wMDAxOTksIDAuMDAwMjAxLCAwLjAwMDIwMiwgMC4wMDAyMDIsIDAuMDAwMjAyLCAwLjAwMDIwMyIsIFwKLSAgICAgICAgICAiMC4wMDAxOTcsIDAuMDAwMiwgMC4wMDAyMDksIDAuMDAwMjEzLCAwLjAwMDIxNCwgMC4wMDAyMTUsIDAuMDAwMjE1IiwgXAotICAgICAgICAgICIwLjAwMDE4NywgMC4wMDAxOTEsIDAuMDAwMjA2LCAwLjAwMDIxMiwgMC4wMDAyMTQsIDAuMDAwMjE2LCAwLjAwMDIxNiIsIFwKLSAgICAgICAgICAiMC4wMDAxODQsIDAuMDAwMTg4LCAwLjAwMDIwNSwgMC4wMDAyMTEsIDAuMDAwMjE0LCAwLjAwMDIxNiwgMC4wMDAyMTciLCBcCi0gICAgICAgICAgIjAuMDAwMTg3LCAwLjAwMDE5MSwgMC4wMDAyMDYsIDAuMDAwMjEzLCAwLjAwMDIxNSwgMC4wMDAyMTcsIDAuMDAwMjE3IiwgXAotICAgICAgICAgICIwLjAwMDIwOCwgMC4wMDAyMDksIDAuMDAwMjE1LCAwLjAwMDIxOCwgMC4wMDAyMTksIDAuMDAwMjE5LCAwLjAwMDIxOSIsIFwKLSAgICAgICAgICAiMC4wMDAyNCwgMC4wMDAyMzYsIDAuMDAwMjMsIDAuMDAwMjI3LCAwLjAwMDIyNSwgMC4wMDAyMjMsIDAuMDAwMjIyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTgxLCAwLjAwMTgxMSwgMC4wMDE4MTMsIDAuMDAxODE0LCAwLjAwMTgxNCwgMC4wMDE4MTQsIDAuMDAxODE0IiwgXAotICAgICAgICAgICIwLjAwMTgxMywgMC4wMDE4MTQsIDAuMDAxODE3LCAwLjAwMTgxOCwgMC4wMDE4MTksIDAuMDAxODIxLCAwLjAwMTgxOCIsIFwKLSAgICAgICAgICAiMC4wMDE4MjMsIDAuMDAxODIzLCAwLjAwMTgyMiwgMC4wMDE4MjIsIDAuMDAxODIyLCAwLjAwMTgyMiwgMC4wMDE4MjMiLCBcCi0gICAgICAgICAgIjAuMDAxODUxLCAwLjAwMTg0NywgMC4wMDE4MzQsIDAuMDAxODI5LCAwLjAwMTgyNywgMC4wMDE4MjUsIDAuMDAxODI0IiwgXAotICAgICAgICAgICIwLjAwMTg5MSwgMC4wMDE4ODIsIDAuMDAxODUxLCAwLjAwMTgzNywgMC4wMDE4MzQsIDAuMDAxODI4LCAwLjAwMTgyNyIsIFwKLSAgICAgICAgICAiMC4wMDE5NzUsIDAuMDAxOTU2LCAwLjAwMTg4OSwgMC4wMDE4NjIsIDAuMDAxODUsIDAuMDAxODM5LCAwLjAwMTgzNSIsIFwKLSAgICAgICAgICAiMC4wMDIwNjYsIDAuMDAyMDM2LCAwLjAwMTkyOSwgMC4wMDE4ODYsIDAuMDAxODY4LCAwLjAwMTg1LCAwLjAwMTg0NSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDYwNiwgMC4wMDA2MDcsIDAuMDAwNjA5LCAwLjAwMDYxLCAwLjAwMDYxLCAwLjAwMDYxLCAwLjAwMDYxIiwgXAotICAgICAgICAgICIwLjAwMDU5OCwgMC4wMDA2LCAwLjAwMDYwNiwgMC4wMDA2MDgsIDAuMDAwNjA5LCAwLjAwMDYwOSwgMC4wMDA2MDkiLCBcCi0gICAgICAgICAgIjAuMDAwNjA3LCAwLjAwMDYwNywgMC4wMDA2MDgsIDAuMDAwNjA5LCAwLjAwMDYxLCAwLjAwMDYxLCAwLjAwMDYxIiwgXAotICAgICAgICAgICIwLjAwMDYzMSwgMC4wMDA2MjgsIDAuMDAwNjE5LCAwLjAwMDYxNSwgMC4wMDA2MTMsIDAuMDAwNjEyLCAwLjAwMDYxMSIsIFwKLSAgICAgICAgICAiMC4wMDA2NjgsIDAuMDAwNjYxLCAwLjAwMDYzNiwgMC4wMDA2MjQsIDAuMDAwNjIsIDAuMDAwNjE2LCAwLjAwMDYxNCIsIFwKLSAgICAgICAgICAiMC4wMDA3NDQsIDAuMDAwNzI3LCAwLjAwMDY3MSwgMC4wMDA2NDcsIDAuMDAwNjM2LCAwLjAwMDYyNSwgMC4wMDA2MjIiLCBcCi0gICAgICAgICAgIjAuMDAwODI0LCAwLjAwMDgwMSwgMC4wMDA3MTMsIDAuMDAwNjczLCAwLjAwMDY1NSwgMC4wMDA2MzYsIDAuMDAwNjMxIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogT0FJMzJYTCAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChPQUkzMlhMKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMjY2NjI3OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjM3ODc7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjM2Njg4OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDYzNzg3OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDI5NiwgMC4wMDAyOTYsIDAuMDAwMjk2LCAwLjAwMDI5NiwgMC4wMDAyOTYsIDAuMDAwMjk2LCAwLjAwMDI5NiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDMsIDAuMDAwMjk4LCAwLjAwMDI5OCwgMC4wMDAyOTgsIDAuMDAwMjk4LCAwLjAwMDI5OCwgMC4wMDAyOTgiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEExKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2NDQ5OTc7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjQ0MTE2OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDY0NDk5NzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyOTYsIDAuMDAwMjk3LCAwLjAwMDI5NiwgMC4wMDAyOTYsIDAuMDAwMjk2LCAwLjAwMDI5NiwgMC4wMDAyOTYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAzLCAwLjAwMDI5OCwgMC4wMDAyOTgsIDAuMDAwMjk3LCAwLjAwMDI5NywgMC4wMDAyOTcsIDAuMDAwMjk3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihBMikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjM5Mjc0OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYzOTI3NDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2MzgxNzM7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjk3LCAwLjAwMDI5NywgMC4wMDAyOTYsIDAuMDAwMjk2LCAwLjAwMDI5NiwgMC4wMDAyOTYsIDAuMDAwMjk2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMywgMC4wMDAyOTgsIDAuMDAwMjk4LCAwLjAwMDI5NywgMC4wMDAyOTcsIDAuMDAwMjk3LCAwLjAwMDI5NyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQjApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY0MjkzMzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2NDEwNDM7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjQyOTMzOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDg0NCwgMC4wMDA4NDUsIDAuMDAwODQ0LCAwLjAwMDg0NSwgMC4wMDA4NDQsIDAuMDAwODQ0LCAwLjAwMDg0NSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDMzNywgMC4wMDAzMzgsIDAuMDAwMzM4LCAwLjAwMDMzOCwgMC4wMDAzMzgsIDAuMDAwMzM4LCAwLjAwMDMzOCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQjEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY1NjkxMzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2NTY5MTM7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjU2NzMxOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDg0NCwgMC4wMDA4NDQsIDAuMDAwODQ0LCAwLjAwMDg0NCwgMC4wMDA4NDUsIDAuMDAwODQ0LCAwLjAwMDg0NCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDMzNywgMC4wMDAzMzcsIDAuMDAwMzM4LCAwLjAwMDMzOCwgMC4wMDAzMzcsIDAuMDAwMzM3LCAwLjAwMDMzNyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjA3NzI5NTE7Ci0gICAgZnVuY3Rpb24gOiAiKCEoKEIwK0IxKSAoKEEwK0ExKStBMikpKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTAiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE3MzY4OCwgMC4yMDE0MywgMC40NDkzNzksIDAuODYxMjk0LCAxLjI3MjQ5LCAyLjIzMzg1LCAyLjc4MjE4IiwgXAotICAgICAgICAgICIwLjE3ODgyLCAwLjIwNjU2OCwgMC40NTQ1MjEsIDAuODY2NTgsIDEuMjc3NDQsIDIuMjM4MjQsIDIuNzg4MTMiLCBcCi0gICAgICAgICAgIjAuMTgzODM2LCAwLjIxMTU2LCAwLjQ1OTUzMywgMC44NzE2MSwgMS4yODI3NiwgMi4yNDQxNCwgMi43OTI4NiIsIFwKLSAgICAgICAgICAiMC4xODg0NTUsIDAuMjE2MjcsIDAuNDY0MjgyLCAwLjg3NTgxNywgMS4yODcxNiwgMi4yNTAwOSwgMi43OTgzNSIsIFwKLSAgICAgICAgICAiMC4xOTMyMDksIDAuMjIwOTk2LCAwLjQ2ODk4OCwgMC44ODA1MjcsIDEuMjkyNjMsIDIuMjU0NzEsIDIuODAxMjMiLCBcCi0gICAgICAgICAgIjAuMjAwODcsIDAuMjI4NjAzLCAwLjQ3NjU0NywgMC44ODc5ODQsIDEuMjk5MzEsIDIuMjYxNjUsIDIuODA4NzciLCBcCi0gICAgICAgICAgIjAuMjA3NzQ0LCAwLjIzNTI1MSwgMC40ODMxNSwgMC44OTQ2NjgsIDEuMzA2MDMsIDIuMjY2NjgsIDIuODE2OTYiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzQ3NjQzLCAwLjQwNTg0NCwgMC45Mjk3NjMsIDEuODAyMjEsIDIuNjc0NjQsIDQuNzA5NjQsIDUuODcyODkiLCBcCi0gICAgICAgICAgIjAuMzQ3NTI3LCAwLjQwNTg4MywgMC45Mjk3NzgsIDEuODAyMzIsIDIuNjc0MjgsIDQuNzA5NSwgNS44NzMxIiwgXAotICAgICAgICAgICIwLjM0NzY3NywgMC40MDU4OTIsIDAuOTI5Nzc3LCAxLjgwMjQzLCAyLjY3NDMsIDQuNzA5MzUsIDUuODcyNzEiLCBcCi0gICAgICAgICAgIjAuMzQ4NDgyLCAwLjQwNjM3NywgMC45Mjk3NjksIDEuODAxOTgsIDIuNjc0MjQsIDQuNzA5NTQsIDUuODcwOTkiLCBcCi0gICAgICAgICAgIjAuMzUwMDYyLCAwLjQwNzcwMSwgMC45Mjk3NTgsIDEuODAyMzMsIDIuNjc0MTgsIDQuNzA5NDIsIDUuODcyODUiLCBcCi0gICAgICAgICAgIjAuMzU0MDIsIDAuNDEwOTY2LCAwLjkzMDE0NSwgMS44MDI0NSwgMi42NzQ0NCwgNC43MDk5NSwgNS44NzE0NCIsIFwKLSAgICAgICAgICAiMC4zNTgzNDMsIDAuNDE0Nzc1LCAwLjkzMTMyNiwgMS44MDIzNCwgMi42NzQzOSwgNC43MTA1NywgNS44NzI4NiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTM0NDYsIDAuMTMwNzcxLCAwLjI4NjEyNCwgMC41NDQzNDgsIDAuODAyOTgsIDEuNDA1ODUsIDEuNzQ5ODUiLCBcCi0gICAgICAgICAgIjAuMTIwNzk2LCAwLjEzODExMiwgMC4yOTMyNDMsIDAuNTUxNzA3LCAwLjgxMDI1MSwgMS40MTMwMiwgMS43NTY3OCIsIFwKLSAgICAgICAgICAiMC4xMjg4MiwgMC4xNDYxNDEsIDAuMzAxMzEsIDAuNTU5OTMxLCAwLjgxODM3NSwgMS40MjEyMiwgMS43NjQ4IiwgXAotICAgICAgICAgICIwLjEzNjY0NSwgMC4xNTM4OTEsIDAuMzA5MTc1LCAwLjU2NzQ0MywgMC44MjYxNTIsIDEuNDI4NzcsIDEuNzczNjciLCBcCi0gICAgICAgICAgIjAuMTQ0MzQ4LCAwLjE2MTc0OSwgMC4zMTY4OTIsIDAuNTc1MjQsIDAuODMzNDcxLCAxLjQzNjQ4LCAxLjc4MDMzIiwgXAotICAgICAgICAgICIwLjE1NjY5LCAwLjE3NDIzNiwgMC4zMjkzMywgMC41ODc4OTMsIDAuODQ2MDI0LCAxLjQ0ODM3LCAxLjc5Mzk4IiwgXAotICAgICAgICAgICIwLjE2NzU5LCAwLjE4NTA1NiwgMC4zNDAyNjYsIDAuNTk4OTYyLCAwLjg1NzUyNCwgMS40NTk4MSwgMS44MDUyNCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMDY4ODEsIDAuMjQyNDU1LCAwLjU2MjM5MywgMS4wOTQ4NCwgMS42Mjc2MywgMi44NzA3LCAzLjU4MDQ1IiwgXAotICAgICAgICAgICIwLjIwNjkzNSwgMC4yNDI0MzgsIDAuNTYyNTA5LCAxLjA5NDgzLCAxLjYyNzUzLCAyLjg3MDMsIDMuNTc5MzMiLCBcCi0gICAgICAgICAgIjAuMjA3MTkxLCAwLjI0MjYwNSwgMC41NjI1MSwgMS4wOTQ4NCwgMS42Mjc1MywgMi44NzAzMywgMy41NzkzNyIsIFwKLSAgICAgICAgICAiMC4yMDkxODYsIDAuMjQ0MDAzLCAwLjU2MjI3NywgMS4wOTUxMywgMS42Mjc2NiwgMi44NzAwNSwgMy41ODA1NyIsIFwKLSAgICAgICAgICAiMC4yMTI0NjYsIDAuMjQ2OTM4LCAwLjU2MjYxMSwgMS4wOTUwOSwgMS42Mjc3MiwgMi44Njk4MiwgMy41ODA2NiIsIFwKLSAgICAgICAgICAiMC4yMTk1OTYsIDAuMjUzNDU3LCAwLjU2NDUzLCAxLjA5NDU5LCAxLjYyNzY1LCAyLjg3MTE4LCAzLjU4MTQ0IiwgXAotICAgICAgICAgICIwLjIyNzA0OSwgMC4yNjAxOTcsIDAuNTY3NTI4LCAxLjA5NTM0LCAxLjYyNzM4LCAyLjg2OTQ0LCAzLjU4MDUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE3MTQ3MSwgMC4xOTkxNzYsIDAuNDQ3MjUsIDAuODU4NjkzLCAxLjI3MTQsIDIuMjMzMTMsIDIuNzgxMTQiLCBcCi0gICAgICAgICAgIjAuMTc3NDkzLCAwLjIwNTIwNywgMC40NTMyMTQsIDAuODY0NjY5LCAxLjI3NjI3LCAyLjIzOTE4LCAyLjc4NzA2IiwgXAotICAgICAgICAgICIwLjE4NDY4OCwgMC4yMTI0MzQsIDAuNDYwNTA1LCAwLjg3MjE0OSwgMS4yODQ5MiwgMi4yNDYzNSwgMi43OTQyOCIsIFwKLSAgICAgICAgICAiMC4xOTE5NTQsIDAuMjE5NTg3LCAwLjQ2Nzc3NiwgMC44NzkyMzQsIDEuMjkxMTgsIDIuMjUyMzIsIDIuODAwMiIsIFwKLSAgICAgICAgICAiMC4xOTkyMTQsIDAuMjI2OTMsIDAuNDc1MDEyLCAwLjg4NjMzOCwgMS4yOTg2OCwgMi4yNTg4NywgMi44MDg0MSIsIFwKLSAgICAgICAgICAiMC4yMTEwMywgMC4yMzg4ODgsIDAuNDg2Njk0LCAwLjg5NzkxMywgMS4zMTA2NSwgMi4yNjk2NywgMi44MTg4OCIsIFwKLSAgICAgICAgICAiMC4yMjE0MywgMC4yNDkxNzcsIDAuNDk3MTc0LCAwLjkwODU0OCwgMS4zMjA4MSwgMi4yODMzOSwgMi44MjkzIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjM0NzY0MiwgMC40MDU4NjYsIDAuOTI5OTAxLCAxLjgwMjQ3LCAyLjY3NDUyLCA0LjcwODk0LCA1Ljg3MjUxIiwgXAotICAgICAgICAgICIwLjM0NzYwNSwgMC40MDU4NzUsIDAuOTI5ODAyLCAxLjgwMjQyLCAyLjY3NDMzLCA0LjcwODc2LCA1Ljg3MDU5IiwgXAotICAgICAgICAgICIwLjM0NzY2NSwgMC40MDU4OTEsIDAuOTI5OTI1LCAxLjgwMjU1LCAyLjY3NDU5LCA0LjcwOTgsIDUuODcxMzQiLCBcCi0gICAgICAgICAgIjAuMzQ4NzMxLCAwLjQwNjQxNiwgMC45Mjk5MjYsIDEuODAyMzcsIDIuNjc0NDYsIDQuNzA5NTgsIDUuODcxNjEiLCBcCi0gICAgICAgICAgIjAuMzUxMDE0LCAwLjQwODE3MSwgMC45Mjk3NzcsIDEuODAyMTgsIDIuNjc0NDcsIDQuNzA5MjUsIDUuODczMTUiLCBcCi0gICAgICAgICAgIjAuMzU2NzAyLCAwLjQxMjk4LCAwLjkyOTk5NywgMS44MDIxNywgMi42NzQ0NiwgNC43MDk4OSwgNS44NzE3NCIsIFwKLSAgICAgICAgICAiMC4zNjI5NTYsIDAuNDE4NDg5LCAwLjkzMTQ1NywgMS44MDIwNywgMi42NzQ1NywgNC43MDk2NywgNS44NzM0OCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTA2NTMsIDAuMTI3ODc1LCAwLjI4MzA3NSwgMC41NDEwMDIsIDAuNzk5NzEzLCAxLjQwMjMxLCAxLjc0NjUzIiwgXAotICAgICAgICAgICIwLjExODA3OSwgMC4xMzUzOTMsIDAuMjkwMzYzLCAwLjU0ODg5OCwgMC44MDcyNzUsIDEuNDEwNzgsIDEuNzU0MTYiLCBcCi0gICAgICAgICAgIjAuMTI2MDQzLCAwLjE0MzM2NiwgMC4yOTg1MzQsIDAuNTU2NzM4LCAwLjgxNTE5NywgMS40MTc2MywgMS43NjIwOSIsIFwKLSAgICAgICAgICAiMC4xMzM4NDgsIDAuMTUxMDU2LCAwLjMwNjMwMywgMC41NjQ2ODEsIDAuODIyNzY5LCAxLjQyNjQsIDEuNzY5NTQiLCBcCi0gICAgICAgICAgIjAuMTQxNTMxLCAwLjE1ODkyLCAwLjMxMzk3NSwgMC41NzIzMSwgMC44MzA1MDYsIDEuNDMzNTcsIDEuNzc3MzMiLCBcCi0gICAgICAgICAgIjAuMTUzODI4LCAwLjE3MTMxLCAwLjMyNjQ1NSwgMC41ODUxMDUsIDAuODQzMTY2LCAxLjQ0NTQ5LCAxLjc5MTkiLCBcCi0gICAgICAgICAgIjAuMTY0NjQzLCAwLjE4MjIzLCAwLjMzNzI5OCwgMC41OTYwMzgsIDAuODU0NzIzLCAxLjQ1Njc5LCAxLjgwMjI3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIwMzE0MSwgMC4yMzg5MTMsIDAuNTU4NDg3LCAxLjA5MDgsIDEuNjI0MDMsIDIuODY2MDgsIDMuNTc1NzciLCBcCi0gICAgICAgICAgIjAuMjAzMzQzLCAwLjIzODc4OCwgMC41NTg0NzMsIDEuMDkxMjEsIDEuNjIzNzYsIDIuODY2MzMsIDMuNTc1ODUiLCBcCi0gICAgICAgICAgIjAuMjAzNjA3LCAwLjIzODgzNCwgMC41NTg1MTIsIDEuMDkwNzQsIDEuNjIzNDYsIDIuODY1NTcsIDMuNTc3ODgiLCBcCi0gICAgICAgICAgIjAuMjA1NTI3LCAwLjI0MDMwNywgMC41NTg1MTYsIDEuMDkwNzUsIDEuNjI0MTEsIDIuODY2MjEsIDMuNTc2NTMiLCBcCi0gICAgICAgICAgIjAuMjA4ODkxLCAwLjI0MzM1OCwgMC41NTg2NCwgMS4wOTA4MiwgMS42MjMzNiwgMi44NjU4NywgMy41NzgyMiIsIFwKLSAgICAgICAgICAiMC4yMTYwMTQsIDAuMjQ5ODY1LCAwLjU2MDY3NCwgMS4wOTA4NSwgMS42MjQ2NiwgMi44Njc1MSwgMy41NzcyNSIsIFwKLSAgICAgICAgICAiMC4yMjM3MDQsIDAuMjU2OTA5LCAwLjU2MzgyNiwgMS4wOTEwMiwgMS42MjM3MiwgMi44NjUxNywgMy41NzU4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEyIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNjYwMzMsIDAuMTkzNzQzLCAwLjQ0MTcxOSwgMC44NTMyMjksIDEuMjY0NTUsIDIuMjI2MzUsIDIuNzc0MiIsIFwKLSAgICAgICAgICAiMC4xNzI4NjcsIDAuMjAwNjI5LCAwLjQ0ODU2OSwgMC44NjAxMjMsIDEuMjcyNzMsIDIuMjM0NTcsIDIuNzgyNDUiLCBcCi0gICAgICAgICAgIjAuMTgxNTc1LCAwLjIwOTIzOSwgMC40NTcyNTgsIDAuODY5MDksIDEuMjgwOTYsIDIuMjQyNCwgMi43OTA4MyIsIFwKLSAgICAgICAgICAiMC4xOTA2MDcsIDAuMjE4MzQyLCAwLjQ2NjE0OCwgMC44Nzc4MiwgMS4yOTAxOSwgMi4yNTExNiwgMi43OTg0NiIsIFwKLSAgICAgICAgICAiMC4xOTk0OTUsIDAuMjI3MDYxLCAwLjQ3NDc0MywgMC44ODYwMjQsIDEuMjk3MzMsIDIuMjYwMDQsIDIuODA3NDEiLCBcCi0gICAgICAgICAgIjAuMjE0MTY3LCAwLjI0MTc2NCwgMC40ODkwMzEsIDAuOTAwNTYsIDEuMzExNTIsIDIuMjc0NzksIDIuODIxODEiLCBcCi0gICAgICAgICAgIjAuMjI3MTE5LCAwLjI1NDU0MSwgMC41MDE1MDYsIDAuOTEyNDg1LCAxLjMyMzY2LCAyLjI4NDI5LCAyLjgzMjk4Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjM0NzU2NSwgMC40MDU3OTIsIDAuOTI5Nzk2LCAxLjgwMjQxLCAyLjY3NDMsIDQuNzA4OTgsIDUuODcxNDkiLCBcCi0gICAgICAgICAgIjAuMzQ3NTQ4LCAwLjQwNTg1MiwgMC45Mjk3NTgsIDEuODAyMTYsIDIuNjc0MzcsIDQuNzA4ODUsIDUuODcxOTMiLCBcCi0gICAgICAgICAgIjAuMzQ3NTcsIDAuNDA1ODIsIDAuOTI5OTI3LCAxLjgwMjE3LCAyLjY3NDkyLCA0LjcwOTkxLCA1Ljg3Mjk3IiwgXAotICAgICAgICAgICIwLjM0ODgsIDAuNDA2MzU3LCAwLjkyOTc2LCAxLjgwMjM2LCAyLjY3NDM3LCA0LjcwOTEzLCA1Ljg3MTcyIiwgXAotICAgICAgICAgICIwLjM1MjI1LCAwLjQwODg5NCwgMC45Mjk4MywgMS44MDIyNCwgMi42NzQ1MSwgNC43MDk3NCwgNS44NzEzOSIsIFwKLSAgICAgICAgICAiMC4zNjAyMDQsIDAuNDE1NTc3LCAwLjkyOTc5MSwgMS44MDIzNywgMi42NzQ0LCA0LjcwOTU4LCA1Ljg3Mjk3IiwgXAotICAgICAgICAgICIwLjM2ODgzNSwgMC40MjMyMzIsIDAuOTMxMzUyLCAxLjgwMjM0LCAyLjY3NDE3LCA0LjcwOTQ0LCA1Ljg3MzE1Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwNzEzOCwgMC4xMjQzNCwgMC4yNzk0ODUsIDAuNTM3MzgxLCAwLjc5NTksIDEuMzk4NDYsIDEuNzQxODgiLCBcCi0gICAgICAgICAgIjAuMTE0NzAxLCAwLjEzMTk5NSwgMC4yODY5NDMsIDAuNTQ1NDIxLCAwLjgwMzc2NSwgMS40MDcyMiwgMS43NTA0NyIsIFwKLSAgICAgICAgICAiMC4xMjI2LCAwLjEzOTkwOCwgMC4yOTUwNjQsIDAuNTUzNjk0LCAwLjgxMTUxOSwgMS40MTM3MywgMS43NjAwMyIsIFwKLSAgICAgICAgICAiMC4xMzAzOTMsIDAuMTQ3NjE3LCAwLjMwMjc5MiwgMC41NjExOTgsIDAuODE5MjI1LCAxLjQyMjAyLCAxLjc2NjQzIiwgXAotICAgICAgICAgICIwLjEzODEwOSwgMC4xNTU0MzgsIDAuMzEwNjA2LCAwLjU2ODk2NiwgMC44MjczMzMsIDEuNDI5NTksIDEuNzc0MjEiLCBcCi0gICAgICAgICAgIjAuMTUwMjg5LCAwLjE2NzcwOCwgMC4zMjI5NDIsIDAuNTgxNDMxLCAwLjgzOTU5NCwgMS40NDE5LCAxLjc4ODI5IiwgXAotICAgICAgICAgICIwLjE2MDk0OSwgMC4xNzg3OTYsIDAuMzMzODY4LCAwLjU5MjY1OCwgMC44NTEyODgsIDEuNDUzMzgsIDEuNzk4OCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xOTg3MzUsIDAuMjM0NDQsIDAuNTUzODgzLCAxLjA4NjI3LCAxLjYxODYxLCAyLjg2MDc4LCAzLjU2OTY1IiwgXAotICAgICAgICAgICIwLjE5ODczLCAwLjIzNDMxNiwgMC41NTM4NjEsIDEuMDg2NDUsIDEuNjE4OTgsIDIuODYxMzEsIDMuNTcwNjQiLCBcCi0gICAgICAgICAgIjAuMTk5MTQ1LCAwLjIzNDM3OCwgMC41NTM4ODUsIDEuMDg2NDIsIDEuNjE5NDMsIDIuODYwNjUsIDMuNTcxNTgiLCBcCi0gICAgICAgICAgIjAuMjAxMjA0LCAwLjIzNTk3OCwgMC41NTM4MzYsIDEuMDg2MjMsIDEuNjE5MjEsIDIuODYwNTksIDMuNTcyODMiLCBcCi0gICAgICAgICAgIjAuMjA0NjAzLCAwLjIzOTA1NywgMC41NTQwMzQsIDEuMDg2NDYsIDEuNjE5MzQsIDIuODYwMDMsIDMuNTcyNzkiLCBcCi0gICAgICAgICAgIjAuMjExOTEzLCAwLjI0NTYwMywgMC41NTYxMjYsIDEuMDg2NCwgMS42MTk4NywgMi44NjMwNywgMy41NzIxOSIsIFwKLSAgICAgICAgICAiMC4yMTk1MjUsIDAuMjUyNzM0LCAwLjU1OTMzNywgMS4wODYyNywgMS42MTg4MSwgMi44NjAwNywgMy41NzE1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDkxMTQsIDAuMTI4MTkyLCAwLjI5OTMzMywgMC41ODM5OTcsIDAuODY4Mjc3LCAxLjUzMDUxLCAxLjkwOTExIiwgXAotICAgICAgICAgICIwLjExNTEyMywgMC4xMzQyMDYsIDAuMzA1MzksIDAuNTg5OTg3LCAwLjg3NDM2OSwgMS41MzY2MSwgMS45MTUzOSIsIFwKLSAgICAgICAgICAiMC4xMjIxMjQsIDAuMTQxMjM0LCAwLjMxMjUyMiwgMC41OTcxNCwgMC44ODE2LCAxLjU0Mzk4LCAxLjkyMjAyIiwgXAotICAgICAgICAgICIwLjEyOTIsIDAuMTQ4MjcyLCAwLjMxOTM2NywgMC42MDQwNiwgMC44ODg0NzEsIDEuNTUwNjksIDEuOTI4OTYiLCBcCi0gICAgICAgICAgIjAuMTM2MzcxLCAwLjE1NTU2MywgMC4zMjYzNjcsIDAuNjExMDk1LCAwLjg5NTQ2NywgMS41NTc3NSwgMS45MzYwMiIsIFwKLSAgICAgICAgICAiMC4xNDc1NTksIDAuMTY2Nzg4LCAwLjMzNzkxNiwgMC42MjI3ODUsIDAuOTA3MTI4LCAxLjU2OTQsIDEuOTQ3NjgiLCBcCi0gICAgICAgICAgIjAuMTU2OTc5LCAwLjE3NjU1MSwgMC4zNDc4OTMsIDAuNjMyNzQsIDAuOTE3MTA5LCAxLjU3OTUxLCAxLjk1NzU3Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIzNDAxNywgMC4yNzQwMzQsIDAuNjM0NDU0LCAxLjIzNTgzLCAxLjgzNzI5LCAzLjI0MDc0LCA0LjA0MjUzIiwgXAotICAgICAgICAgICIwLjIzMzk5MywgMC4yNzM5NzgsIDAuNjM0NDU3LCAxLjIzNTc3LCAxLjgzNzMyLCAzLjI0MDYzLCA0LjA0Mjc3IiwgXAotICAgICAgICAgICIwLjIzNDgwMSwgMC4yNzQ0MjgsIDAuNjM0MzgsIDEuMjM1ODIsIDEuODM3MjcsIDMuMjQwNjgsIDQuMDQyNTEiLCBcCi0gICAgICAgICAgIjAuMjM3MzMyLCAwLjI3NjQ1LCAwLjYzNDM1OSwgMS4yMzU4MywgMS44MzczNSwgMy4yNDA3OCwgNC4wNDI1MiIsIFwKLSAgICAgICAgICAiMC4yNDEyNjYsIDAuMjc5Nzk5LCAwLjYzNDgxLCAxLjIzNTUsIDEuODM3MTgsIDMuMjQwNTIsIDQuMDQyMjQiLCBcCi0gICAgICAgICAgIjAuMjQ4NzY0LCAwLjI4NjY5NCwgMC42MzY5MzEsIDEuMjM1ODEsIDEuODM3LCAzLjI0MDQ1LCA0LjA0MjM5IiwgXAotICAgICAgICAgICIwLjI1NjE4NSwgMC4yOTM1NSwgMC42NDAyMDYsIDEuMjM1ODksIDEuODM3MDksIDMuMjQwNzksIDQuMDQyNDEiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTA2MDM5LCAwLjEyMzM3NCwgMC4yNzg1MzQsIDAuNTM2Njk4LCAwLjc5NDg0OSwgMS4zOTcwMywgMS43NDE3IiwgXAotICAgICAgICAgICIwLjExMzUzMSwgMC4xMzA4MDgsIDAuMjg1OTI4LCAwLjU0NDE2NSwgMC44MDIyOTksIDEuNDA0NzgsIDEuNzQ5OTQiLCBcCi0gICAgICAgICAgIjAuMTIzMDk5LCAwLjE0MDE1NSwgMC4yOTUyODIsIDAuNTUzNTYyLCAwLjgxMjE4NiwgMS40MTQ0NywgMS43NTg2IiwgXAotICAgICAgICAgICIwLjEzMjQ3MSwgMC4xNDk3MTgsIDAuMzA0NzQ0LCAwLjU2MzAwOCwgMC44MjE4MDEsIDEuNDI0MjYsIDEuNzY4MjQiLCBcCi0gICAgICAgICAgIjAuMTQyMzEsIDAuMTU5NTMzLCAwLjMxNDM0LCAwLjU3MjUxMSwgMC44MzA4MTUsIDEuNDM0MDMsIDEuNzc4ODYiLCBcCi0gICAgICAgICAgIjAuMTU4MjgsIDAuMTc1MjI4LCAwLjMyOTg5MiwgMC41ODc5NjEsIDAuODQ2Mzg2LCAxLjQ0ODMyLCAxLjc5Mjc1IiwgXAotICAgICAgICAgICIwLjE3MjIyLCAwLjE4OTIzNSwgMC4zNDM0NjIsIDAuNjAxNDI4LCAwLjg1OTgzNSwgMS40NjIxOCwgMS44MDU4OCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMDY5NTIsIDAuMjQyNDQzLCAwLjU2MjIwNCwgMS4wOTUwOSwgMS42MjcxNiwgMi44Njk2NCwgMy41ODAwOCIsIFwKLSAgICAgICAgICAiMC4yMDY5MywgMC4yNDI0OTQsIDAuNTYyMjI1LCAxLjA5NTAxLCAxLjYyNzIsIDIuODcwNjQsIDMuNTgwMDgiLCBcCi0gICAgICAgICAgIjAuMjA3NjQsIDAuMjQyNjQ2LCAwLjU2MjI3OCwgMS4wOTQ4LCAxLjYyNzY1LCAyLjg2OTQ3LCAzLjU3OTIxIiwgXAotICAgICAgICAgICIwLjIxMTM0NSwgMC4yNDU1NjIsIDAuNTYyMjQ1LCAxLjA5NTI0LCAxLjYyNzUxLCAyLjg2OTc2LCAzLjU4MTI1IiwgXAotICAgICAgICAgICIwLjIxNjkwNSwgMC4yNTA0NzcsIDAuNTYyNjE0LCAxLjA5NTE1LCAxLjYyNzk2LCAyLjg3MDM2LCAzLjU4MDc0IiwgXAotICAgICAgICAgICIwLjIyNzg0NywgMC4yNjAxNjQsIDAuNTY1Nzc2LCAxLjA5NTEyLCAxLjYyNzQyLCAyLjg2OTg0LCAzLjU3OTIiLCBcCi0gICAgICAgICAgIjAuMjM4ODU2LCAwLjI3MDQ1NSwgMC41NzA3LCAxLjA5NDg2LCAxLjYyNzI5LCAyLjg3MDMsIDMuNTc5ODEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwNjU2MiwgMC4xMjU2MzUsIDAuMjk2ODI5LCAwLjU4MTUxOSwgMC44NjU3NjQsIDEuNTI4MSwgMS45MDY4NiIsIFwKLSAgICAgICAgICAiMC4xMTQwMzEsIDAuMTMzMDg2LCAwLjMwNDI1MywgMC41ODksIDAuODczMjYzLCAxLjUzNTYxLCAxLjkxMzczIiwgXAotICAgICAgICAgICIwLjEyMzI1NiwgMC4xNDIyNjcsIDAuMzEzMzc1LCAwLjU5Nzk2NiwgMC44ODIzMjEsIDEuNTQ0NjUsIDEuOTIzMTIiLCBcCi0gICAgICAgICAgIjAuMTMyNjk1LCAwLjE1MTcxNCwgMC4zMjI4MDMsIDAuNjA3MzA0LCAwLjg5MTY3NCwgMS41NTQxOSwgMS45MzIxMiIsIFwKLSAgICAgICAgICAiMC4xNDIyNDIsIDAuMTYxMTk2LCAwLjMzMjIzLCAwLjYxNjgwMSwgMC45MDA5NjIsIDEuNTYzMywgMS45NDE0NCIsIFwKLSAgICAgICAgICAiMC4xNTc3MTUsIDAuMTc2NjAzLCAwLjM0NzI1MiwgMC42MzE1ODQsIDAuOTE1ODIxLCAxLjU3ODAxLCAxLjk1NjUyIiwgXAotICAgICAgICAgICIwLjE3MTM1MywgMC4xOTAyODUsIDAuMzYwNTAyLCAwLjY0MzU4LCAwLjkyODkyMywgMS41OTExNywgMS45NjkyMyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMzQwNTIsIDAuMjc0MDU3LCAwLjYzNDU3MiwgMS4yMzU4MSwgMS44MzcxLCAzLjI0MDY2LCA0LjA0MjA5IiwgXAotICAgICAgICAgICIwLjIzMzk5OCwgMC4yNzQwNTIsIDAuNjM0NTA5LCAxLjIzNTkyLCAxLjgzNzMyLCAzLjI0MTA0LCA0LjA0MjM3IiwgXAotICAgICAgICAgICIwLjIzNTEyOSwgMC4yNzQ0NzMsIDAuNjM0Mzg1LCAxLjIzNTU2LCAxLjgzNzI1LCAzLjI0MDY5LCA0LjA0MjU4IiwgXAotICAgICAgICAgICIwLjIzOTEyNiwgMC4yNzc1MDgsIDAuNjM0NTIxLCAxLjIzNTUyLCAxLjgzNzE1LCAzLjI0MDkxLCA0LjA0MjM5IiwgXAotICAgICAgICAgICIwLjI0NDg4MSwgMC4yODI0NDMsIDAuNjM0NjY3LCAxLjIzNTgyLCAxLjgzNzE0LCAzLjI0MDgzLCA0LjA0MjY4IiwgXAotICAgICAgICAgICIwLjI1NjA3MSwgMC4yOTI2OTUsIDAuNjM3NDk4LCAxLjIzNTUsIDEuODM3MTksIDMuMjQwNTEsIDQuMDQyMzkiLCBcCi0gICAgICAgICAgIjAuMjY3MTg5LCAwLjMwMzEsIDAuNjQyNDg4LCAxLjIzNTY3LCAxLjgzNzEsIDMuMjQwMywgNC4wNDI0NiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDI5MzIsIDAuMTIwMjM3LCAwLjI3NTI2NywgMC41MzM1MjYsIDAuNzkxNTk2LCAxLjM5Mzg5LCAxLjczOTU0IiwgXAotICAgICAgICAgICIwLjExMDQ4NCwgMC4xMjc3NjIsIDAuMjgyOTI2LCAwLjU0MTE3OSwgMC43OTkyNzgsIDEuNDAxNzIsIDEuNzQ2ODciLCBcCi0gICAgICAgICAgIjAuMTE5NzY4LCAwLjEzNzA1LCAwLjI5MjI0NCwgMC41NTAzMzYsIDAuODA5MDM2LCAxLjQxMTMyLCAxLjc1NTY0IiwgXAotICAgICAgICAgICIwLjEyOTMxMywgMC4xNDY1NzUsIDAuMzAxNjI1LCAwLjU2MDE1NCwgMC44MTg5MTEsIDEuNDIxMDgsIDEuNzY1MTYiLCBcCi0gICAgICAgICAgIjAuMTM5MTE0LCAwLjE1NjM1MiwgMC4zMTEyMzQsIDAuNTY5NDA3LCAwLjgyNzcyOSwgMS40MzA4MywgMS43NzU2OCIsIFwKLSAgICAgICAgICAiMC4xNTQ5NTYsIDAuMTcyMTQ2LCAwLjMyNjczNCwgMC41ODUwMDIsIDAuODQzMjU2LCAxLjQ0NTE4LCAxLjc4OTYyIiwgXAotICAgICAgICAgICIwLjE2ODY1NywgMC4xODU4OTgsIDAuMzQwMjU5LCAwLjU5ODM1LCAwLjg1NjQwOCwgMS40NTkwNCwgMS44MDI3MiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMDI2NzMsIDAuMjM4MTcxLCAwLjU1ODAyNCwgMS4wOTA3MywgMS42MjI0NywgMi44NjQ3NSwgMy41NzU0OSIsIFwKLSAgICAgICAgICAiMC4yMDI1OTcsIDAuMjM4MjY2LCAwLjU1NzgzLCAxLjA5MDQ2LCAxLjYyMjQ2LCAyLjg2NTU0LCAzLjU3NTMyIiwgXAotICAgICAgICAgICIwLjIwMzM5OSwgMC4yMzg0MTMsIDAuNTU3OTA2LCAxLjA5MDQ1LCAxLjYyMzA4LCAyLjg2NDU3LCAzLjU3NTg0IiwgXAotICAgICAgICAgICIwLjIwNzIzMywgMC4yNDE0MTMsIDAuNTU4LCAxLjA5MDU4LCAxLjYyMzY0LCAyLjg2NDk3LCAzLjU3NjE5IiwgXAotICAgICAgICAgICIwLjIxMjg4MSwgMC4yNDY0NDEsIDAuNTU4MTI2LCAxLjA5MDUyLCAxLjYyMzAyLCAyLjg2NTU1LCAzLjU3NTc1IiwgXAotICAgICAgICAgICIwLjIyMzk0MiwgMC4yNTYzMjEsIDAuNTYxMzE4LCAxLjA5MDQxLCAxLjYyMjc2LCAyLjg2NDgxLCAzLjU3NDIzIiwgXAotICAgICAgICAgICIwLjIzNDkxNywgMC4yNjY2MDksIDAuNTY2MzE3LCAxLjA5MDM5LCAxLjYyMzI3LCAyLjg2NTc1LCAzLjU3NDY0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzUxMiwgMC4wMDM1MTEsIDAuMDAzNTExLCAwLjAwMzUxLCAwLjAwMzUwOSwgMC4wMDM1MDUsIDAuMDAzNTAzIiwgXAotICAgICAgICAgICIwLjAwMzUsIDAuMDAzNTAxLCAwLjAwMzUwMywgMC4wMDM1MDIsIDAuMDAzNTAxLCAwLjAwMzQ5NywgMC4wMDM0OTUiLCBcCi0gICAgICAgICAgIjAuMDAzNDk3LCAwLjAwMzQ5NywgMC4wMDM1LCAwLjAwMzQ5OSwgMC4wMDM0OTksIDAuMDAzNDk1LCAwLjAwMzQ5NSIsIFwKLSAgICAgICAgICAiMC4wMDM0OTcsIDAuMDAzNDk4LCAwLjAwMzUsIDAuMDAzNSwgMC4wMDM0OTgsIDAuMDAzNDk2LCAwLjAwMzQ5MyIsIFwKLSAgICAgICAgICAiMC4wMDM1MDUsIDAuMDAzNTA0LCAwLjAwMzUwMywgMC4wMDM1MDIsIDAuMDAzNDk5LCAwLjAwMzQ5NywgMC4wMDM0OTMiLCBcCi0gICAgICAgICAgIjAuMDAzNTI5LCAwLjAwMzUyNywgMC4wMDM1MTUsIDAuMDAzNTA4LCAwLjAwMzUwNCwgMC4wMDM0OTksIDAuMDAzNDk2IiwgXAotICAgICAgICAgICIwLjAwMzU2MywgMC4wMDM1NTUsIDAuMDAzNTMxLCAwLjAwMzUxNywgMC4wMDM1MTEsIDAuMDAzNTAzLCAwLjAwMzQ5OCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTA2NiwgMC4wMDEwNjYsIDAuMDAxMDY2LCAwLjAwMTA2NiwgMC4wMDEwNjUsIDAuMDAxMDY1LCAwLjAwMTA2NCIsIFwKLSAgICAgICAgICAiMC4wMDEwNDksIDAuMDAxMDUsIDAuMDAxMDUxLCAwLjAwMTA1MSwgMC4wMDEwNTEsIDAuMDAxMDUsIDAuMDAxMDUiLCBcCi0gICAgICAgICAgIjAuMDAxMDQ0LCAwLjAwMTA0NSwgMC4wMDEwNDgsIDAuMDAxMDQ4LCAwLjAwMTA0OCwgMC4wMDEwNDgsIDAuMDAxMDQ4IiwgXAotICAgICAgICAgICIwLjAwMTA0NCwgMC4wMDEwNDQsIDAuMDAxMDQ3LCAwLjAwMTA0OCwgMC4wMDEwNDgsIDAuMDAxMDQ3LCAwLjAwMTA0NyIsIFwKLSAgICAgICAgICAiMC4wMDEwNSwgMC4wMDEwNDksIDAuMDAxMDQ5LCAwLjAwMTA0OSwgMC4wMDEwNDksIDAuMDAxMDQ4LCAwLjAwMTA0NyIsIFwKLSAgICAgICAgICAiMC4wMDEwNjksIDAuMDAxMDY3LCAwLjAwMTA1OSwgMC4wMDEwNTQsIDAuMDAxMDUyLCAwLjAwMTA1LCAwLjAwMTA0OCIsIFwKLSAgICAgICAgICAiMC4wMDEwOTYsIDAuMDAxMDkyLCAwLjAwMTA3MiwgMC4wMDEwNjIsIDAuMDAxMDU4LCAwLjAwMTA1MiwgMC4wMDEwNTEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzMjUzLCAwLjAwMzI1MywgMC4wMDMyNTIsIDAuMDAzMjUsIDAuMDAzMjQ5LCAwLjAwMzI0NiwgMC4wMDMyNDUiLCBcCi0gICAgICAgICAgIjAuMDAzMjQyLCAwLjAwMzI0MiwgMC4wMDMyNDMsIDAuMDAzMjQzLCAwLjAwMzI0MiwgMC4wMDMyMzgsIDAuMDAzMjM2IiwgXAotICAgICAgICAgICIwLjAwMzIzOSwgMC4wMDMyNCwgMC4wMDMyNDEsIDAuMDAzMjQxLCAwLjAwMzI0LCAwLjAwMzIzOCwgMC4wMDMyMzUiLCBcCi0gICAgICAgICAgIjAuMDAzMjQyLCAwLjAwMzI0MywgMC4wMDMyNDIsIDAuMDAzMjQxLCAwLjAwMzI0LCAwLjAwMzIzNywgMC4wMDMyMzUiLCBcCi0gICAgICAgICAgIjAuMDAzMjUzLCAwLjAwMzI1MiwgMC4wMDMyNDcsIDAuMDAzMjQ0LCAwLjAwMzI0MiwgMC4wMDMyMzgsIDAuMDAzMjM2IiwgXAotICAgICAgICAgICIwLjAwMzI4MiwgMC4wMDMyNzcsIDAuMDAzMjYsIDAuMDAzMjUxLCAwLjAwMzI0NywgMC4wMDMyNDEsIDAuMDAzMjM3IiwgXAotICAgICAgICAgICIwLjAwMzMxNywgMC4wMDMzMDksIDAuMDAzMjc3LCAwLjAwMzI2LCAwLjAwMzI1MywgMC4wMDMyNDQsIDAuMDAzMjQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDA4NjcsIDAuMDAwODY3LCAwLjAwMDg2NywgMC4wMDA4NjcsIDAuMDAwODY3LCAwLjAwMDg2NywgMC4wMDA4NjYiLCBcCi0gICAgICAgICAgIjAuMDAwODU4LCAwLjAwMDg1OSwgMC4wMDA4NjQsIDAuMDAwODY1LCAwLjAwMDg2NSwgMC4wMDA4NjYsIDAuMDAwODY1IiwgXAotICAgICAgICAgICIwLjAwMDg1LCAwLjAwMDg1MiwgMC4wMDA4NiwgMC4wMDA4NjMsIDAuMDAwODY0LCAwLjAwMDg2NSwgMC4wMDA4NjUiLCBcCi0gICAgICAgICAgIjAuMDAwODQ2LCAwLjAwMDg0OSwgMC4wMDA4NTgsIDAuMDAwODYyLCAwLjAwMDg2MywgMC4wMDA4NjQsIDAuMDAwODY0IiwgXAotICAgICAgICAgICIwLjAwMDg0OSwgMC4wMDA4NTIsIDAuMDAwODU5LCAwLjAwMDg2MywgMC4wMDA4NjQsIDAuMDAwODY0LCAwLjAwMDg2NSIsIFwKLSAgICAgICAgICAiMC4wMDA4NjUsIDAuMDAwODY2LCAwLjAwMDg2NywgMC4wMDA4NjcsIDAuMDAwODY3LCAwLjAwMDg2NiwgMC4wMDA4NjYiLCBcCi0gICAgICAgICAgIjAuMDAwODkyLCAwLjAwMDg4OSwgMC4wMDA4OCwgMC4wMDA4NzUsIDAuMDAwODcyLCAwLjAwMDg3LCAwLjAwMDg2OSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEyIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI5ODksIDAuMDAyOTg5LCAwLjAwMjk4OCwgMC4wMDI5ODcsIDAuMDAyOTg2LCAwLjAwMjk4NCwgMC4wMDI5OCIsIFwKLSAgICAgICAgICAiMC4wMDI5NzcsIDAuMDAyOTc3LCAwLjAwMjk3OSwgMC4wMDI5NzgsIDAuMDAyOTc3LCAwLjAwMjk3NSwgMC4wMDI5NzEiLCBcCi0gICAgICAgICAgIjAuMDAyOTg1LCAwLjAwMjk4MywgMC4wMDI5ODEsIDAuMDAyOTc5LCAwLjAwMjk3NywgMC4wMDI5NzUsIDAuMDAyOTcxIiwgXAotICAgICAgICAgICIwLjAwMjk5NywgMC4wMDI5OTQsIDAuMDAyOTg1LCAwLjAwMjk4MSwgMC4wMDI5NzksIDAuMDAyOTc0LCAwLjAwMjk3MSIsIFwKLSAgICAgICAgICAiMC4wMDMwMjcsIDAuMDAzMDIsIDAuMDAyOTk4LCAwLjAwMjk4OCwgMC4wMDI5ODMsIDAuMDAyOTc3LCAwLjAwMjk3MyIsIFwKLSAgICAgICAgICAiMC4wMDMwNzgsIDAuMDAzMDY5LCAwLjAwMzAyMywgMC4wMDMwMDEsIDAuMDAyOTkyLCAwLjAwMjk4MiwgMC4wMDI5NzciLCBcCi0gICAgICAgICAgIjAuMDAzMTMyLCAwLjAwMzExOSwgMC4wMDMwNTIsIDAuMDAzMDE4LCAwLjAwMzAwNCwgMC4wMDI5ODksIDAuMDAyOTgyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwNTkzLCAwLjAwMDU5MywgMC4wMDA1OTUsIDAuMDAwNTk2LCAwLjAwMDU5NiwgMC4wMDA1OTYsIDAuMDAwNTk2IiwgXAotICAgICAgICAgICIwLjAwMDU5NCwgMC4wMDA1OTYsIDAuMDAwNjA1LCAwLjAwMDYwOCwgMC4wMDA2MDksIDAuMDAwNjEsIDAuMDAwNjEiLCBcCi0gICAgICAgICAgIjAuMDAwNTgzLCAwLjAwMDU4NywgMC4wMDA2MDEsIDAuMDAwNjA3LCAwLjAwMDYwOSwgMC4wMDA2MTEsIDAuMDAwNjExIiwgXAotICAgICAgICAgICIwLjAwMDU3NiwgMC4wMDA1ODEsIDAuMDAwNTk4LCAwLjAwMDYwNiwgMC4wMDA2MDksIDAuMDAwNjExLCAwLjAwMDYxMSIsIFwKLSAgICAgICAgICAiMC4wMDA1NzYsIDAuMDAwNTgxLCAwLjAwMDU5OCwgMC4wMDA2MDYsIDAuMDAwNjA5LCAwLjAwMDYxMSwgMC4wMDA2MTIiLCBcCi0gICAgICAgICAgIjAuMDAwNTksIDAuMDAwNTkyLCAwLjAwMDYwNCwgMC4wMDA2MDksIDAuMDAwNjExLCAwLjAwMDYxMywgMC4wMDA2MTMiLCBcCi0gICAgICAgICAgIjAuMDAwNjEyLCAwLjAwMDYxMywgMC4wMDA2MTUsIDAuMDAwNjE2LCAwLjAwMDYxNiwgMC4wMDA2MTYsIDAuMDAwNjE1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjE2NywgMC4wMDIxNjcsIDAuMDAyMTY5LCAwLjAwMjE3LCAwLjAwMjE3LCAwLjAwMjE3LCAwLjAwMjE3IiwgXAotICAgICAgICAgICIwLjAwMjE2MywgMC4wMDIxNjUsIDAuMDAyMTc0LCAwLjAwMjE3NSwgMC4wMDIxNzUsIDAuMDAyMTc2LCAwLjAwMjE3NiIsIFwKLSAgICAgICAgICAiMC4wMDIxNjEsIDAuMDAyMTYzLCAwLjAwMjE3MSwgMC4wMDIxNzUsIDAuMDAyMTc2LCAwLjAwMjE3NywgMC4wMDIxNzciLCBcCi0gICAgICAgICAgIjAuMDAyMTY4LCAwLjAwMjE2OSwgMC4wMDIxNzMsIDAuMDAyMTc2LCAwLjAwMjE3NiwgMC4wMDIxNzcsIDAuMDAyMTc3IiwgXAotICAgICAgICAgICIwLjAwMjE4NCwgMC4wMDIxODMsIDAuMDAyMTc5LCAwLjAwMjE4LCAwLjAwMjE3OSwgMC4wMDIxNzksIDAuMDAyMTc5IiwgXAotICAgICAgICAgICIwLjAwMjIyMiwgMC4wMDIyMTcsIDAuMDAyMTk5LCAwLjAwMjE5MSwgMC4wMDIxODcsIDAuMDAyMTgzLCAwLjAwMjE4MiIsIFwKLSAgICAgICAgICAiMC4wMDIyNjcsIDAuMDAyMjU3LCAwLjAwMjIyMiwgMC4wMDIyMDQsIDAuMDAyMTk3LCAwLjAwMjE5LCAwLjAwMjE4NyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTA3NCwgMC4wMDEwNzQsIDAuMDAxMDc0LCAwLjAwMTA3NCwgMC4wMDEwNzQsIDAuMDAxMDczLCAwLjAwMTA3MyIsIFwKLSAgICAgICAgICAiMC4wMDEwNjUsIDAuMDAxMDY1LCAwLjAwMTA2NywgMC4wMDEwNjcsIDAuMDAxMDY2LCAwLjAwMTA2NiwgMC4wMDEwNjUiLCBcCi0gICAgICAgICAgIjAuMDAxMDc2LCAwLjAwMTA3OSwgMC4wMDEwNzIsIDAuMDAxMDY5LCAwLjAwMTA2OCwgMC4wMDEwNjYsIDAuMDAxMDY2IiwgXAotICAgICAgICAgICIwLjAwMTEwNCwgMC4wMDEwOTksIDAuMDAxMDg0LCAwLjAwMTA3NSwgMC4wMDEwNzEsIDAuMDAxMDY4LCAwLjAwMTA2NiIsIFwKLSAgICAgICAgICAiMC4wMDExMzQsIDAuMDAxMTI3LCAwLjAwMTA5OSwgMC4wMDEwODQsIDAuMDAxMDc4LCAwLjAwMTA3MiwgMC4wMDEwNyIsIFwKLSAgICAgICAgICAiMC4wMDExOTIsIDAuMDAxMTc4LCAwLjAwMTEyOCwgMC4wMDExMDMsIDAuMDAxMDkxLCAwLjAwMTA4LCAwLjAwMTA3NiIsIFwKLSAgICAgICAgICAiMC4wMDEyNTksIDAuMDAxMjQsIDAuMDAxMTYzLCAwLjAwMTEyNCwgMC4wMDExMDgsIDAuMDAxMDg5LCAwLjAwMTA4NCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIxIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDE5MDQsIDAuMDAxOTA1LCAwLjAwMTkwNywgMC4wMDE5MDgsIDAuMDAxOTA4LCAwLjAwMTkwOCwgMC4wMDE5MDgiLCBcCi0gICAgICAgICAgIjAuMDAxOTAzLCAwLjAwMTkwNSwgMC4wMDE5MTEsIDAuMDAxOTEzLCAwLjAwMTkxNCwgMC4wMDE5MTUsIDAuMDAxOTE1IiwgXAotICAgICAgICAgICIwLjAwMTkxMywgMC4wMDE5MTQsIDAuMDAxOTE0LCAwLjAwMTkxNSwgMC4wMDE5MTYsIDAuMDAxOTE2LCAwLjAwMTkxNiIsIFwKLSAgICAgICAgICAiMC4wMDE5MzEsIDAuMDAxOTI5LCAwLjAwMTkyMiwgMC4wMDE5MTksIDAuMDAxOTE4LCAwLjAwMTkxOCwgMC4wMDE5MTciLCBcCi0gICAgICAgICAgIjAuMDAxOTU4LCAwLjAwMTk1NCwgMC4wMDE5MzcsIDAuMDAxOTI2LCAwLjAwMTkyMywgMC4wMDE5MiwgMC4wMDE5MiIsIFwKLSAgICAgICAgICAiMC4wMDIwMTksIDAuMDAyMDA2LCAwLjAwMTk2NCwgMC4wMDE5NDMsIDAuMDAxOTM1LCAwLjAwMTkyNywgMC4wMDE5MjUiLCBcCi0gICAgICAgICAgIjAuMDAyMDgyLCAwLjAwMjA2NCwgMC4wMDE5OTYsIDAuMDAxOTY1LCAwLjAwMTk0OCwgMC4wMDE5MzUsIDAuMDAxOTMyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwODQ1LCAwLjAwMDg0NSwgMC4wMDA4NDgsIDAuMDAwODQ4LCAwLjAwMDg0OCwgMC4wMDA4NDgsIDAuMDAwODQ4IiwgXAotICAgICAgICAgICIwLjAwMDg0MywgMC4wMDA4NDYsIDAuMDAwODUxLCAwLjAwMDg1NCwgMC4wMDA4NTQsIDAuMDAwODU1LCAwLjAwMDg1NSIsIFwKLSAgICAgICAgICAiMC4wMDA4NTMsIDAuMDAwODUzLCAwLjAwMDg1NiwgMC4wMDA4NTYsIDAuMDAwODU2LCAwLjAwMDg1NiwgMC4wMDA4NTYiLCBcCi0gICAgICAgICAgIjAuMDAwODcsIDAuMDAwODY4LCAwLjAwMDg2NCwgMC4wMDA4NiwgMC4wMDA4NTksIDAuMDAwODU4LCAwLjAwMDg1OCIsIFwKLSAgICAgICAgICAiMC4wMDA4OTUsIDAuMDAwODkyLCAwLjAwMDg3NywgMC4wMDA4NjgsIDAuMDAwODY1LCAwLjAwMDg2MSwgMC4wMDA4NiIsIFwKLSAgICAgICAgICAiMC4wMDA5NDcsIDAuMDAwOTM4LCAwLjAwMDkwNCwgMC4wMDA4ODUsIDAuMDAwODc3LCAwLjAwMDg2OCwgMC4wMDA4NjYiLCBcCi0gICAgICAgICAgIjAuMDAxMDA5LCAwLjAwMDk5MywgMC4wMDA5MzIsIDAuMDAwOTA1LCAwLjAwMDg5MiwgMC4wMDA4NzcsIDAuMDAwODczIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogT0FJMzNYMSAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChPQUkzM1gxKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuNTIwNDk1OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwOTU0Nzc5OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDk1MjU1NjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA5NTQ3Nzk7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNTI0LCAwLjAwMDUyNCwgMC4wMDA1MjMsIDAuMDAwNTIzLCAwLjAwMDUyMywgMC4wMDA1MjMsIDAuMDAwNTIzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNTMsIDAuMDAwNTI2LCAwLjAwMDUyNiwgMC4wMDA1MjYsIDAuMDAwNTI2LCAwLjAwMDUyNiwgMC4wMDA1MjYiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEExKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA5ODA4NjY7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwOTc5MTk5OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDk4MDg2NjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA1MjQsIDAuMDAwNTI0LCAwLjAwMDUyNCwgMC4wMDA1MjQsIDAuMDAwNTI0LCAwLjAwMDUyNCwgMC4wMDA1MjQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA1MywgMC4wMDA1MjYsIDAuMDAwNTI2LCAwLjAwMDUyNiwgMC4wMDA1MjYsIDAuMDAwNTI1LCAwLjAwMDUyNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQTIpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDk1NDIxMTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA5NTQyMTE7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwOTUyMTk4OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDUyNCwgMC4wMDA1MjQsIDAuMDAwNTI0LCAwLjAwMDUyNCwgMC4wMDA1MjQsIDAuMDAwNTI0LCAwLjAwMDUyNCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDUzLCAwLjAwMDUyNiwgMC4wMDA1MjUsIDAuMDAwNTI1LCAwLjAwMDUyNSwgMC4wMDA1MjUsIDAuMDAwNTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwOTgxMjY7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwOTc2ODQ5OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDk4MTI2OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDk0NCwgMC4wMDA5NDQsIDAuMDAwOTQ0LCAwLjAwMDk0NCwgMC4wMDA5NDQsIDAuMDAwOTQ0LCAwLjAwMDk0NCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDU5NiwgMC4wMDA1OTYsIDAuMDAwNTk2LCAwLjAwMDU5NiwgMC4wMDA1OTYsIDAuMDAwNTk2LCAwLjAwMDU5NiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQjEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDk3OTI5ODsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA5NzU4NTI7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwOTc5Mjk4OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDk0MywgMC4wMDA5NDQsIDAuMDAwOTQzLCAwLjAwMDk0NCwgMC4wMDA5NDQsIDAuMDAwOTQzLCAwLjAwMDk0NCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDU5NSwgMC4wMDA1OTYsIDAuMDAwNTk2LCAwLjAwMDU5NiwgMC4wMDA1OTYsIDAuMDAwNTk2LCAwLjAwMDU5NiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQjIpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDk2ODEzMzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA5NjgxMzM7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwOTY3ODYzOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDk0MywgMC4wMDA5NDQsIDAuMDAwOTQzLCAwLjAwMDk0NCwgMC4wMDA5NDQsIDAuMDAwOTQzLCAwLjAwMDk0MyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDU5NSwgMC4wMDA1OTUsIDAuMDAwNTk2LCAwLjAwMDU5NiwgMC4wMDA1OTYsIDAuMDAwNTk2LCAwLjAwMDU5NiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjExODM1NjsKLSAgICBmdW5jdGlvbiA6ICIoISgoKEIwK0IxKStCMikgKChBMCtBMSkrQTIpKSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTcwNjksIDAuMTY2MzI3LCAwLjQ0NDY3MiwgMC42ODk4ODgsIDEuMDE2MDYsIDEuNjY5OTUsIDIuMDc4NDEiLCBcCi0gICAgICAgICAgIjAuMTIyMzk0LCAwLjE3MTU0OSwgMC40NTAwNzksIDAuNjk0OTI0LCAxLjAyMTMsIDEuNjc2MSwgMi4wODIzNyIsIFwKLSAgICAgICAgICAiMC4xMjc2NDIsIDAuMTc2NzU5LCAwLjQ1NTM5NSwgMC43MDAyNjcsIDEuMDI2NzIsIDEuNjc5NzksIDIuMDg5NjMiLCBcCi0gICAgICAgICAgIjAuMTMyNjU2LCAwLjE4MTg2OSwgMC40NjA0NzgsIDAuNzA1NTExLCAxLjAzMTgsIDEuNjg0OSwgMi4wOTUyMiIsIFwKLSAgICAgICAgICAiMC4xMzc3NTIsIDAuMTg2ODQ5LCAwLjQ2NTU5OSwgMC43MTA0NiwgMS4wMzY4OSwgMS42OTA2OSwgMi4xMDE0MSIsIFwKLSAgICAgICAgICAiMC4xNDU5NzgsIDAuMTk0OTUyLCAwLjQ3MzY3LCAwLjcxODY0NiwgMS4wNDUwNywgMS42OTgxNiwgMi4xMDYzIiwgXAotICAgICAgICAgICIwLjE1MzAyLCAwLjIwMjIzMiwgMC40ODEwMzMsIDAuNzI1NzgzLCAxLjA1MjMsIDEuNzA1NzksIDIuMTE2NTEiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjM0MTYxLCAwLjMzNzEzOSwgMC45MjA5NDYsIDEuNDM2NDIsIDIuMTIzNDMsIDMuNDk3NDcsIDQuMzU2MDUiLCBcCi0gICAgICAgICAgIjAuMjM0MjMxLCAwLjMzNzE0MSwgMC45MjA5NDMsIDEuNDM2NTQsIDIuMTIzNSwgMy40OTY4MywgNC4zNTUxNiIsIFwKLSAgICAgICAgICAiMC4yMzQ3MzksIDAuMzM3MjEzLCAwLjkyMDk3MywgMS40MzYzLCAyLjEyMzU2LCAzLjQ5Njg5LCA0LjM1NTM4IiwgXAotICAgICAgICAgICIwLjIzNjQwNSwgMC4zMzgxNzMsIDAuOTIwOTUsIDEuNDM2NTksIDIuMTIzNDYsIDMuNDk3MTIsIDQuMzU1MzgiLCBcCi0gICAgICAgICAgIjAuMjM4OSwgMC4zMzk4NTEsIDAuOTIwOTUyLCAxLjQzNjM5LCAyLjEyMzI2LCAzLjQ5NjksIDQuMzU1MzEiLCBcCi0gICAgICAgICAgIjAuMjQ0MTQ2LCAwLjM0MzcyMSwgMC45MjE0MzYsIDEuNDM2NDMsIDIuMTIzNjIsIDMuNDk2ODEsIDQuMzU1ODkiLCBcCi0gICAgICAgICAgIjAuMjQ5NzE0LCAwLjM0ODE5MiwgMC45MjI1MzcsIDEuNDM2NDMsIDIuMTIzMzcsIDMuNDk2ODEsIDQuMzU1OTEiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg0NDI5LCAwLjExNzI4NiwgMC4zMDI1NzksIDAuNDY1NTQzLCAwLjY4Mjc0LCAxLjExNzM1LCAxLjM4NzY3IiwgXAotICAgICAgICAgICIwLjA5MTgyOSwgMC4xMjQ3MDUsIDAuMzA5ODU4LCAwLjQ3Mjk1MiwgMC42ODk5ODIsIDEuMTI0MzUsIDEuMzk2NjIiLCBcCi0gICAgICAgICAgIjAuMTAwMDM2LCAwLjEzMjk1MiwgMC4zMTgyNTcsIDAuNDgxMDk2LCAwLjY5ODM1OSwgMS4xMzI5MywgMS40MDUwOSIsIFwKLSAgICAgICAgICAiMC4xMDgxNDcsIDAuMTQxMDQ0LCAwLjMyNjQyMiwgMC40ODkyNDcsIDAuNzA2NTI4LCAxLjE0MTMsIDEuNDEzNDIiLCBcCi0gICAgICAgICAgIjAuMTE2MjAzLCAwLjE0OTEzMiwgMC4zMzQ1MTEsIDAuNDk3NjYzLCAwLjcxNTAzMiwgMS4xNDkyOSwgMS40MjEyOCIsIFwKLSAgICAgICAgICAiMC4xMjg3NTMsIDAuMTYyMDM5LCAwLjM0NzUxMiwgMC41MTAzMzUsIDAuNzI3OTQ5LCAxLjE2MjI3LCAxLjQzMzU3IiwgXAotICAgICAgICAgICIwLjEzODYxMSwgMC4xNzMzMTIsIDAuMzU4NzA5LCAwLjUyMTgzMywgMC43MzkyODgsIDEuMTczODYsIDEuNDQ1MzgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTQ1Nzk3LCAwLjIxMjk3NywgMC41OTQyMjgsIDAuOTMwNTQ2LCAxLjM3ODE5LCAyLjI3NDMsIDIuODMzNjciLCBcCi0gICAgICAgICAgIjAuMTQ1NzI5LCAwLjIxMzA4MSwgMC41OTQxNDcsIDAuOTMwNTEsIDEuMzc4MzcsIDIuMjc0OTgsIDIuODM0NDQiLCBcCi0gICAgICAgICAgIjAuMTQ2NjE1LCAwLjIxMzMwMywgMC41OTQxNDcsIDAuOTMwOTYzLCAxLjM3ODQ0LCAyLjI3NDksIDIuODM0NDkiLCBcCi0gICAgICAgICAgIjAuMTQ5NTA0LCAwLjIxNDkzNywgMC41OTM5OTUsIDAuOTMwNjcyLCAxLjM3ODQzLCAyLjI3NDEyLCAyLjgzNDM4IiwgXAotICAgICAgICAgICIwLjE1MzU0NSwgMC4yMTgwMjcsIDAuNTk0MzU4LCAwLjkzMDQzOSwgMS4zNzgxNiwgMi4yNzM5OCwgMi44MzQyMyIsIFwKLSAgICAgICAgICAiMC4xNjE3MDUsIDAuMjI0NzkyLCAwLjU5NTgyMiwgMC45MzAzNTIsIDEuMzc4NCwgMi4yNzM4OSwgMi44MzM2MSIsIFwKLSAgICAgICAgICAiMC4xNzAwNjYsIDAuMjMxODA5LCAwLjU5ODUzNCwgMC45MzE1MjksIDEuMzc4MzUsIDIuMjc0MDEsIDIuODMzNTQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExNTIzOSwgMC4xNjQyNjksIDAuNDQyODA1LCAwLjY4Nzk1NCwgMS4wMTQzNywgMS42Njc4NCwgMi4wNzU4OSIsIFwKLSAgICAgICAgICAiMC4xMjE0MjgsIDAuMTcwNjE1LCAwLjQ0OTA5NCwgMC42OTM5ODYsIDEuMDIxMDIsIDEuNjc1ODYsIDIuMDgyNjQiLCBcCi0gICAgICAgICAgIjAuMTI4ODc5LCAwLjE3ODEyNywgMC40NTY2NTIsIDAuNzAxNTMxLCAxLjAyNzk3LCAxLjY4MTcyLCAyLjA5MDM1IiwgXAotICAgICAgICAgICIwLjEzNjM4OSwgMC4xODU2ODgsIDAuNDY0MzE3LCAwLjcwOTIzMiwgMS4wMzYyNywgMS42ODk4NCwgMi4wOTc0NSIsIFwKLSAgICAgICAgICAiMC4xNDQwMzEsIDAuMTkzMTY3LCAwLjQ3MTk3MywgMC43MTcwODMsIDEuMDQzMTcsIDEuNjk4MDUsIDIuMTA0NDIiLCBcCi0gICAgICAgICAgIjAuMTU2MzU0LCAwLjIwNTc5NSwgMC40ODM5NjcsIDAuNzI4OTIxLCAxLjA1NjEsIDEuNzA4OTgsIDIuMTE2OTYiLCBcCi0gICAgICAgICAgIjAuMTY2OTc0LCAwLjIxNjMyMiwgMC40OTUxODEsIDAuNzQwMDM0LCAxLjA2NzIsIDEuNzIwMjcsIDIuMTI3MyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMzQyMjgsIDAuMzM3MTUsIDAuOTIxMDA1LCAxLjQzNjQ4LCAyLjEyMzg0LCAzLjQ5NzIyLCA0LjM1NTczIiwgXAotICAgICAgICAgICIwLjIzNDIzNCwgMC4zMzcxMzEsIDAuOTIxMTM0LCAxLjQzNjQ1LCAyLjEyMzUyLCAzLjQ5NzAxLCA0LjM1NTE5IiwgXAotICAgICAgICAgICIwLjIzNDkzOCwgMC4zMzcxNjksIDAuOTIwOTE0LCAxLjQzNjQ5LCAyLjEyMzU2LCAzLjQ5NzA5LCA0LjM1NTM5IiwgXAotICAgICAgICAgICIwLjIzNzMzOSwgMC4zMzgzNTYsIDAuOTIwOTkyLCAxLjQzNjQxLCAyLjEyMzUyLCAzLjQ5NywgNC4zNTUyMiIsIFwKLSAgICAgICAgICAiMC4yNDEwODQsIDAuMzQwNjkxLCAwLjkyMDk0OCwgMS40MzYyNCwgMi4xMjM2LCAzLjQ5NzI2LCA0LjM1NTg1IiwgXAotICAgICAgICAgICIwLjI0ODkzMiwgMC4zNDY2NCwgMC45MjEzMjUsIDEuNDM2NDgsIDIuMTIzNiwgMy40OTc1MiwgNC4zNTUxNiIsIFwKLSAgICAgICAgICAiMC4yNTY3NTQsIDAuMzUzMDkyLCAwLjkyMjU0OSwgMS40MzY0NCwgMi4xMjM2MywgMy40OTY4NiwgNC4zNTUzNSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODE3MzQsIDAuMTE0NDk4LCAwLjI5OTU5MywgMC40NjI2NDcsIDAuNjc5Nzk1LCAxLjExNDIzLCAxLjM4NDciLCBcCi0gICAgICAgICAgIjAuMDg5MTczLCAwLjEyMTk5NCwgMC4zMDY5NzksIDAuNDY5OTU0LCAwLjY4NzA4NiwgMS4xMjE0MywgMS4zOTM4IiwgXAotICAgICAgICAgICIwLjA5NzMzNywgMC4xMzAyMDMsIDAuMzE1MzY3LCAwLjQ3ODI1OCwgMC42OTU0NzUsIDEuMTI5OTUsIDEuNDAyMjEiLCBcCi0gICAgICAgICAgIjAuMTA1NDEsIDAuMTM4MjgsIDAuMzIzNjIsIDAuNDg2NDQxLCAwLjcwMzY4NCwgMS4xMzg2MywgMS40MTA1NiIsIFwKLSAgICAgICAgICAiMC4xMTM0NDEsIDAuMTQ2NDMxLCAwLjMzMTcwNSwgMC40OTQ2NCwgMC43MTIxOTcsIDEuMTQ2MywgMS40MTgyOSIsIFwKLSAgICAgICAgICAiMC4xMjU3MywgMC4xNTkyNDEsIDAuMzQ0NTkyLCAwLjUwNzIsIDAuNzI0OTIsIDEuMTU5MzksIDEuNDMwNyIsIFwKLSAgICAgICAgICAiMC4xMzU0MjksIDAuMTcwNDU3LCAwLjM1NTYxOCwgMC41MTkxMjQsIDAuNzM2NDQyLCAxLjE3MTA0LCAxLjQ0MjY4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE0MjEzMywgMC4yMDkzNTgsIDAuNTkwNDQ5LCAwLjkyNjYzLCAxLjM3NDQ0LCAyLjI2OTg4LCAyLjgzMDAzIiwgXAotICAgICAgICAgICIwLjE0MjE3NiwgMC4yMDk0LCAwLjU5MDUxNSwgMC45MjY2NjMsIDEuMzc0NiwgMi4yNzE1NCwgMi44MzA1MyIsIFwKLSAgICAgICAgICAiMC4xNDMxMDMsIDAuMjA5NjIyLCAwLjU5MDQ1MywgMC45MjcyMzYsIDEuMzc0NjcsIDIuMjcxNDIsIDIuODMwNTciLCBcCi0gICAgICAgICAgIjAuMTQ2MDAzLCAwLjIxMTUwMywgMC41OTAzODMsIDAuOTI2NTQ2LCAxLjM3NDgsIDIuMjcwODYsIDIuODMwNjYiLCBcCi0gICAgICAgICAgIjAuMTUwMTcyLCAwLjIxNDYyNywgMC41OTA1ODcsIDAuOTI3MjEzLCAxLjM3NDQ3LCAyLjI3MDIzLCAyLjgyOTg2IiwgXAotICAgICAgICAgICIwLjE1ODQ2MSwgMC4yMjE1ODksIDAuNTkyMiwgMC45MjY0MTIsIDEuMzc0NzYsIDIuMjcwMjcsIDIuODMwMDMiLCBcCi0gICAgICAgICAgIjAuMTY2ODk0LCAwLjIyODY2NiwgMC41OTQ4MDMsIDAuOTI3NDg5LCAxLjM3NDU2LCAyLjI2OTk5LCAyLjgyOTY2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEyIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTA1NzIsIDAuMTU5NzYxLCAwLjQzODE2NiwgMC42ODMxNDYsIDEuMDEwMzksIDEuNjYyNTgsIDIuMDczNTMiLCBcCi0gICAgICAgICAgIjAuMTE3NTMzLCAwLjE2NjgzMiwgMC40NDUyNTcsIDAuNjkwNTU4LCAxLjAxNjc4LCAxLjY3MDI4LCAyLjA4MDk1IiwgXAotICAgICAgICAgICIwLjEyNjU1OSwgMC4xNzU3OTgsIDAuNDU0MjM5LCAwLjY5OTQ2MywgMS4wMjU3LCAxLjY3OTM0LCAyLjA4NzY1IiwgXAotICAgICAgICAgICIwLjEzNTkyOSwgMC4xODUwMTEsIDAuNDYzNDYzLCAwLjcwODQzNywgMS4wMzQ3OCwgMS42ODgyNCwgMi4wOTg0MyIsIFwKLSAgICAgICAgICAiMC4xNDQ5ODIsIDAuMTkzOTgzLCAwLjQ3MjEzNywgMC43MTcxNTcsIDEuMDQ0MzYsIDEuNjk3ODEsIDIuMTA3MyIsIFwKLSAgICAgICAgICAiMC4xNjAyNDcsIDAuMjA4OTk0LCAwLjQ4Njg5MiwgMC43MzE1NDYsIDEuMDU3ODIsIDEuNzEyNjEsIDIuMTE4ODUiLCBcCi0gICAgICAgICAgIjAuMTczODg0LCAwLjIyMjIxMSwgMC40OTk2MzMsIDAuNzQ0Mjk3LCAxLjA3MDY2LCAxLjcyMzYsIDIuMTM0MjMiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjM0MjQ3LCAwLjMzNzEzMiwgMC45MjEwMjQsIDEuNDM2NiwgMi4xMjM2NCwgMy40OTc1MiwgNC4zNTU4NCIsIFwKLSAgICAgICAgICAiMC4yMzQyMjksIDAuMzM3MTIyLCAwLjkyMTE0MywgMS40MzYzNCwgMi4xMjM2NSwgMy40OTcyNywgNC4zNTU1MSIsIFwKLSAgICAgICAgICAiMC4yMzQ5NiwgMC4zMzcwMTIsIDAuOTIxMTk3LCAxLjQzNjI0LCAyLjEyMzMyLCAzLjQ5NzY0LCA0LjM1NTk3IiwgXAotICAgICAgICAgICIwLjIzODY4NCwgMC4zMzg1ODQsIDAuOTIxMDEzLCAxLjQzNjQ4LCAyLjEyMzc1LCAzLjQ5NzI3LCA0LjM1NTY3IiwgXAotICAgICAgICAgICIwLjI0NDEyNSwgMC4zNDIyNjIsIDAuOTIwOTIyLCAxLjQzNjQ3LCAyLjEyMzcxLCAzLjQ5Nzc1LCA0LjM1NjA3IiwgXAotICAgICAgICAgICIwLjI1NDgyNywgMC4zNTAyODYsIDAuOTIxMTUzLCAxLjQzNjMsIDIuMTIzMzIsIDMuNDk3MTcsIDQuMzU2MTUiLCBcCi0gICAgICAgICAgIjAuMjY1MzkyLCAwLjM1OTI2NiwgMC45MjI2ODMsIDEuNDM2MjUsIDIuMTIzNjksIDMuNDk3MTksIDQuMzU1NTEiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc4NDY2LCAwLjExMTIwOCwgMC4yOTYyNTUsIDAuNDU5MTEzLCAwLjY3NjE4NiwgMS4xMTA4MywgMS4zODIyNiIsIFwKLSAgICAgICAgICAiMC4wODYwMDUsIDAuMTE4ODQzLCAwLjMwMzc2OSwgMC40NjY3MjcsIDAuNjgzODI3LCAxLjExODYyLCAxLjM5MDY3IiwgXAotICAgICAgICAgICIwLjA5NDA5NCwgMC4xMjY5OTIsIDAuMzEyMTU0LCAwLjQ3NTA0OSwgMC42OTIyMTcsIDEuMTI2NjUsIDEuMzk4NzkiLCBcCi0gICAgICAgICAgIjAuMTAyMTMzLCAwLjEzNTAyNSwgMC4zMjAyMzYsIDAuNDgzMzI3LCAwLjcwMDQxNiwgMS4xMzU1MiwgMS40MDY2MSIsIFwKLSAgICAgICAgICAiMC4xMTAxOCwgMC4xNDMwMzUsIDAuMzI4NDA4LCAwLjQ5MTM3LCAwLjcwODkyMiwgMS4xNDMsIDEuNDE0OTgiLCBcCi0gICAgICAgICAgIjAuMTIyMTg3LCAwLjE1NTk2NCwgMC4zNDE0MjgsIDAuNTA0MDA0LCAwLjcyMTY5MiwgMS4xNTYxNCwgMS40Mjc0MyIsIFwKLSAgICAgICAgICAiMC4xMzE3MDMsIDAuMTY3MTMxLCAwLjM1MjUzNywgMC41MTU4NjEsIDAuNzMzMTQyLCAxLjE2NzcxLCAxLjQzOTIzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEzODE0NywgMC4yMDUzNzQsIDAuNTg2MTQxLCAwLjkyMjM3NCwgMS4zNzAzLCAyLjI2NTY3LCAyLjgyNjA2IiwgXAotICAgICAgICAgICIwLjEzODEyMiwgMC4yMDUyOTIsIDAuNTg2MiwgMC45MjIyNDQsIDEuMzcwMiwgMi4yNjYxMywgMi44MjYxMSIsIFwKLSAgICAgICAgICAiMC4xMzkxMjksIDAuMjA1NjA3LCAwLjU4NjMwMSwgMC45MjI3ODksIDEuMzcwMjcsIDIuMjY2NzQsIDIuODI2MDUiLCBcCi0gICAgICAgICAgIjAuMTQyMTg0LCAwLjIwNzQ3OSwgMC41ODYwOTksIDAuOTIyMzM4LCAxLjM3MDI1LCAyLjI2NzYyLCAyLjgyNTEzIiwgXAotICAgICAgICAgICIwLjE0NjUwOCwgMC4yMTA2NiwgMC41ODYxNjQsIDAuOTIyNzgxLCAxLjM2OTk4LCAyLjI2NTYxLCAyLjgyNTg3IiwgXAotICAgICAgICAgICIwLjE1NDc2NSwgMC4yMTc3NDgsIDAuNTg3OTUyLCAwLjkyMjMxLCAxLjM3MDI2LCAyLjI2NTYzLCAyLjgyNTI2IiwgXAotICAgICAgICAgICIwLjE2MzMwMSwgMC4yMjQ4NjEsIDAuNTkwNzg3LCAwLjkyMjg4NywgMS4zNzAxOCwgMi4yNjU2NywgMi44MjUxNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTA0NTcxLCAwLjE1NDE2MSwgMC40MzQzNjcsIDAuNjgxMTEyLCAxLjAxMDE2LCAxLjY2Njc2LCAyLjA3NjQ3IiwgXAotICAgICAgICAgICIwLjEwOTg5OSwgMC4xNTk1NjcsIDAuNDM5ODc0LCAwLjY4NjYzNiwgMS4wMTU1NCwgMS42NzIwNiwgMi4wODIiLCBcCi0gICAgICAgICAgIjAuMTE1MTE0LCAwLjE2NDc5NSwgMC40NDUxODUsIDAuNjkyMDI4LCAxLjAyMDgzLCAxLjY3NzQxLCAyLjA4Nzc1IiwgXAotICAgICAgICAgICIwLjEyMDE4NSwgMC4xNjk4NjEsIDAuNDUwMjgxLCAwLjY5NzE4MSwgMS4wMjYxLCAxLjY4MjUzLCAyLjA5MjU2IiwgXAotICAgICAgICAgICIwLjEyNTI1MSwgMC4xNzQ5MjQsIDAuNDU1MzMzLCAwLjcwMjIwMSwgMS4wMzEwMywgMS42ODc2MSwgMi4wOTgxMSIsIFwKLSAgICAgICAgICAiMC4xMzMzNSwgMC4xODI5NjYsIDAuNDYzMzM0LCAwLjcxMDE0NywgMS4wMzkwMiwgMS42OTU1MywgMi4xMDU1IiwgXAotICAgICAgICAgICIwLjEzOTg2OCwgMC4xOTAyMSwgMC40NzA5NTIsIDAuNzE3NTI5LCAxLjA0NjUyLCAxLjcwMjk4LCAyLjExMzAxIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIyMTk0LCAwLjMyNTIyNiwgMC45MTE1MDMsIDEuNDI4ODUsIDIuMTE4OTksIDMuNDk5OTcsIDQuMzYyNTMiLCBcCi0gICAgICAgICAgIjAuMjIxOTYzLCAwLjMyNTE5NiwgMC45MTE0OTQsIDEuNDI4NzEsIDIuMTE5MDEsIDMuNDk5OCwgNC4zNjI2MSIsIFwKLSAgICAgICAgICAiMC4yMjI2MiwgMC4zMjUyNTksIDAuOTExNDgzLCAxLjQyOTExLCAyLjExOTI2LCAzLjUsIDQuMzYyOTgiLCBcCi0gICAgICAgICAgIjAuMjI0NDc2LCAwLjMyNjM3MiwgMC45MTE0NzksIDEuNDI5MTUsIDIuMTE5MjgsIDMuNDk5NzMsIDQuMzYyNiIsIFwKLSAgICAgICAgICAiMC4yMjcxOTMsIDAuMzI4MTkyLCAwLjkxMTQyNSwgMS40MjkwNiwgMi4xMTkyMSwgMy40OTk3NywgNC4zNjI0NyIsIFwKLSAgICAgICAgICAiMC4yMzI3NzMsIDAuMzMyMzA5LCAwLjkxMTk0MywgMS40Mjg5OSwgMi4xMTkzLCAzLjQ5OTY0LCA0LjM2MTk1IiwgXAotICAgICAgICAgICIwLjIzODYyMiwgMC4zMzY5OTQsIDAuOTEzMjE2LCAxLjQyODk5LCAyLjExOTMxLCAzLjQ5OTUsIDQuMzYyNTMiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc4MDUsIDAuMTEwOTMyLCAwLjI5NjE3OCwgMC40NTkyMjMsIDAuNjc2MzA1LCAxLjExMDYzLCAxLjM4Mjc5IiwgXAotICAgICAgICAgICIwLjA4NTU1MywgMC4xMTg1MjgsIDAuMzAzNjE2LCAwLjQ2NjY0MSwgMC42ODM3MDUsIDEuMTE3OTUsIDEuMzg5NTciLCBcCi0gICAgICAgICAgIjAuMDk1MTk1LCAwLjEyODA1MSwgMC4zMTMzMSwgMC40NzYwMDUsIDAuNjkzMjE5LCAxLjEyNzgyLCAxLjM5OTUxIiwgXAotICAgICAgICAgICIwLjEwNTA1OCwgMC4xMzc3NzEsIDAuMzIyNzI2LCAwLjQ4NTcsIDAuNzAyOTQ1LCAxLjEzNzI0LCAxLjQwOTMxIiwgXAotICAgICAgICAgICIwLjExNTM2OSwgMC4xNDgwODksIDAuMzMyNTg5LCAwLjQ5NTQ3OCwgMC43MTI5MDcsIDEuMTQ3NjUsIDEuNDE4NzEiLCBcCi0gICAgICAgICAgIjAuMTMwOTkyLCAwLjE2Mzg2NCwgMC4zNDg0NjksIDAuNTExMTg5LCAwLjcyODY2MiwgMS4xNjI5MSwgMS40MzQ1MiIsIFwKLSAgICAgICAgICAiMC4xNDM3NywgMC4xNzgwODMsIDAuMzYyMDcyLCAwLjUyNDg0OSwgMC43NDE5NCwgMS4xNzY2MywgMS40NDc4NyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNDU3OTgsIDAuMjEyOTczLCAwLjU5NDA3NiwgMC45MzA0MjIsIDEuMzc4NTMsIDIuMjc0ODEsIDIuODM0NDQiLCBcCi0gICAgICAgICAgIjAuMTQ1NjM5LCAwLjIxMjk2NiwgMC41OTQyOSwgMC45MzAyMTksIDEuMzc4MzUsIDIuMjc0MjUsIDIuODM0NTciLCBcCi0gICAgICAgICAgIjAuMTQ3OTI3LCAwLjIxMzUyNCwgMC41OTQzNzUsIDAuOTMwOTM0LCAxLjM3ODM3LCAyLjI3NDcxLCAyLjgzMzc1IiwgXAotICAgICAgICAgICIwLjE1MzIyNCwgMC4yMTY5NTksIDAuNTk0MDY3LCAwLjkzMDMwNywgMS4zNzc5OCwgMi4yNzM5OCwgMi44MzQzMSIsIFwKLSAgICAgICAgICAiMC4xNTk3NiwgMC4yMjIxNTIsIDAuNTk0MDg1LCAwLjkzMDI0MiwgMS4zNzgxOSwgMi4yNzU0LCAyLjgzMzk2IiwgXAotICAgICAgICAgICIwLjE3MjUwNiwgMC4yMzI5LCAwLjU5NjU3NiwgMC45MzAwNDcsIDEuMzc4MTQsIDIuMjczNTUsIDIuODM0MzgiLCBcCi0gICAgICAgICAgIjAuMTg0NjQ5LCAwLjI0MzU1NywgMC42MDExNDMsIDAuOTMxMDMyLCAxLjM3ODM3LCAyLjI3NDExLCAyLjgzNDczIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIxIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDI3MjgsIDAuMTUyMzExLCAwLjQzMjUxNCwgMC42NzkyNDUsIDEuMDA4MjgsIDEuNjY0NTcsIDIuMDc0NDkiLCBcCi0gICAgICAgICAgIjAuMTA4OTcsIDAuMTU4NjM2LCAwLjQzODkzMSwgMC42ODU2OTYsIDEuMDE0NjMsIDEuNjcxMTMsIDIuMDgxMDYiLCBcCi0gICAgICAgICAgIjAuMTE2MzA1LCAwLjE2NjAyNiwgMC40NDY1MTMsIDAuNjkzMjQ2LCAxLjAyMjE3LCAxLjY3ODUsIDIuMDg4NTIiLCBcCi0gICAgICAgICAgIjAuMTI0MDAzLCAwLjE3MzU5OSwgMC40NTQxMTEsIDAuNzAwOTI5LCAxLjAyOTkyLCAxLjY4NjY2LCAyLjA5NjM4IiwgXAotICAgICAgICAgICIwLjEzMTQ5NywgMC4xODExNTUsIDAuNDYxNzc4LCAwLjcwODUyOCwgMS4wMzczNywgMS42OTQwNCwgMi4xMDQxMSIsIFwKLSAgICAgICAgICAiMC4xNDM4MTcsIDAuMTkzMjc2LCAwLjQ3NDEzNywgMC43MjA1NTIsIDEuMDQ5NTIsIDEuNzA2LCAyLjExNjI3IiwgXAotICAgICAgICAgICIwLjE1NDE0OCwgMC4yMDQzMSwgMC40ODQ5MzcsIDAuNzMxNTQzLCAxLjA2MDQ1LCAxLjcxNjk2LCAyLjEyNjk4Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIyMTkwNywgMC4zMjUxOTcsIDAuOTExNTM5LCAxLjQyOTA2LCAyLjExOTMzLCAzLjQ5OTczLCA0LjM2MjQzIiwgXAotICAgICAgICAgICIwLjIyMTk0NiwgMC4zMjUyMDIsIDAuOTExNDU3LCAxLjQyODcsIDIuMTE5NDUsIDMuNDk5ODQsIDQuMzYyNSIsIFwKLSAgICAgICAgICAiMC4yMjI4OCwgMC4zMjUyNjYsIDAuOTExNDM4LCAxLjQyODc2LCAyLjExODk2LCAzLjUsIDQuMzYyMDMiLCBcCi0gICAgICAgICAgIjAuMjI1Nzk0LCAwLjMyNjY4NywgMC45MTEyNywgMS40MjkwMiwgMi4xMTkzMywgMy40OTk1MiwgNC4zNjIzOSIsIFwKLSAgICAgICAgICAiMC4yMjk4MiwgMC4zMjkyMjQsIDAuOTExNDkyLCAxLjQyOTAzLCAyLjExOTIsIDMuNTAwMDEsIDQuMzYyOCIsIFwKLSAgICAgICAgICAiMC4yMzgxMjQsIDAuMzM1Mzk2LCAwLjkxMTc1MywgMS40MjksIDIuMTE4ODgsIDMuNDk4ODcsIDQuMzYyMzgiLCBcCi0gICAgICAgICAgIjAuMjQ2NDQ4LCAwLjM0MjMzMSwgMC45MTMxNzcsIDEuNDI4NzUsIDIuMTE5MywgMy40OTk3MiwgNC4zNjIyNSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzUzNTgsIDAuMTA4MTE5LCAwLjI5MzAwOCwgMC40NTYwOTgsIDAuNjczNjA3LCAxLjEwODM2LCAxLjM3OTU2IiwgXAotICAgICAgICAgICIwLjA4MzEwOCwgMC4xMTU4OTQsIDAuMzAwNzg2LCAwLjQ2Mzc5NiwgMC42ODA4NDgsIDEuMTE1MTEsIDEuMzg2NyIsIFwKLSAgICAgICAgICAiMC4wOTI3NjEsIDAuMTI1NTUyLCAwLjMxMDUzNCwgMC40NzM0MzIsIDAuNjkxMTU1LCAxLjEyNTgxLCAxLjM5Njc1IiwgXAotICAgICAgICAgICIwLjEwMjgxOSwgMC4xMzUzMTQsIDAuMzIwNTAzLCAwLjQ4MzUyMSwgMC43MDA2MDQsIDEuMTM0OTMsIDEuNDA2OTMiLCBcCi0gICAgICAgICAgIjAuMTEyODIxLCAwLjE0NTQ2NiwgMC4zMzAzMDUsIDAuNDkzMjEsIDAuNzEwNjA5LCAxLjE0NTUxLCAxLjQxNjc0IiwgXAotICAgICAgICAgICIwLjEyODgwNCwgMC4xNjA4MDQsIDAuMzQ1MTA0LCAwLjUwNTgyNywgMC43MjU3NDksIDEuMTYwMDUsIDEuNDMxNTciLCBcCi0gICAgICAgICAgIjAuMTQxMTYyLCAwLjE3NDk4MiwgMC4zNTg3MjcsIDAuNTIxNDc1LCAwLjczODU1MywgMS4xNzI5NywgMS40NDQzNCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNDIxMSwgMC4yMDkzNDUsIDAuNTkwNzIxLCAwLjkyNjM3NCwgMS4zNzQ0NiwgMi4yNzA0OCwgMi44MzAwOSIsIFwKLSAgICAgICAgICAiMC4xNDE5NTYsIDAuMjA5NDI5LCAwLjU5MDMyNiwgMC45MjYzODksIDEuMzc0NjQsIDIuMjcxMDQsIDIuODMwODMiLCBcCi0gICAgICAgICAgIjAuMTQ0MzAzLCAwLjIwOTk1NywgMC41OTA1MiwgMC45MjY1ODUsIDEuMzc0NDYsIDIuMjcwNzEsIDIuODI5NTQiLCBcCi0gICAgICAgICAgIjAuMTQ5NDQ4LCAwLjIxMzMwNCwgMC41OTAzNTIsIDAuOTI2Njk1LCAxLjM3NDE2LCAyLjI3MDc3LCAyLjgyOTkiLCBcCi0gICAgICAgICAgIjAuMTU2MTk1LCAwLjIxODM4MywgMC41OTA0MjEsIDAuOTI3MjM2LCAxLjM3NDQxLCAyLjI3MDYxLCAyLjgzMDM2IiwgXAotICAgICAgICAgICIwLjE2ODU4OSwgMC4yMjk5MDMsIDAuNTkzMTY5LCAwLjkyNjk1MSwgMS4zNzQzNiwgMi4yNjk3MywgMi44MzA2NyIsIFwKLSAgICAgICAgICAiMC4xODA2MTMsIDAuMjQwODE0LCAwLjU5NzU1NSwgMC45Mjc0NDIsIDEuMzc0NzEsIDIuMjcwMDEsIDIuODMxNiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk4MDgyLCAwLjE0NzY0NSwgMC40Mjc4NTgsIDAuNjc0NTk5LCAxLjAwMzM1LCAxLjY2MDI4LCAyLjA2OTg5IiwgXAotICAgICAgICAgICIwLjEwNTA5NiwgMC4xNTQ3MTgsIDAuNDM1MDU5LCAwLjY4MTg0NSwgMS4wMTA2MywgMS42NjcxMSwgMi4wNzc1NiIsIFwKLSAgICAgICAgICAiMC4xMTQyNzUsIDAuMTYzODU3LCAwLjQ0NDIwNSwgMC42OTA5NDksIDEuMDE5OCwgMS42NzYzNywgMi4wODYzNyIsIFwKLSAgICAgICAgICAiMC4xMjM1MzIsIDAuMTczMDI0LCAwLjQ1MzMwOSwgMC43MDAxNjksIDEuMDI4ODUsIDEuNjg1MzYsIDIuMDk1NyIsIFwKLSAgICAgICAgICAiMC4xMzI0NjksIDAuMTgxOTMxLCAwLjQ2MTkzOSwgMC43MDg4MDYsIDEuMDM3NDQsIDEuNjk0MDUsIDIuMTA0MTEiLCBcCi0gICAgICAgICAgIjAuMTQ3ODQ3LCAwLjE5Njk1NiwgMC40NzY1NDMsIDAuNzIzMTU3LCAxLjA1MTg5LCAxLjcwODYsIDIuMTE4MzQiLCBcCi0gICAgICAgICAgIjAuMTYwOTQ5LCAwLjIxMDIzLCAwLjQ4OTMxOCwgMC43MzYwMDYsIDEuMDY0NjUsIDEuNzIwODYsIDIuMTMxMDUiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjIxOTYsIDAuMzI1MjIzLCAwLjkxMTQ3MywgMS40Mjg3NCwgMi4xMTg5MSwgMy41MDA1NCwgNC4zNjI0NiIsIFwKLSAgICAgICAgICAiMC4yMjE5MTQsIDAuMzI1MTE5LCAwLjkxMTQ5NSwgMS40MjkwOCwgMi4xMTg3NCwgMy41MDAwMiwgNC4zNjIyOSIsIFwKLSAgICAgICAgICAiMC4yMjMxMjIsIDAuMzI1MTM0LCAwLjkxMTI5MiwgMS40MjkxMSwgMi4xMTkxNSwgMy40OTk4NCwgNC4zNjI1MiIsIFwKLSAgICAgICAgICAiMC4yMjcyMjgsIDAuMzI3MDMzLCAwLjkxMTU0NCwgMS40MjkxNiwgMi4xMTkxOSwgMy40OTg5LCA0LjM2MjA3IiwgXAotICAgICAgICAgICIwLjIzMzI1MSwgMC4zMzExMTgsIDAuOTExNDMsIDEuNDI4ODMsIDIuMTE5MTUsIDMuNSwgNC4zNjI3NyIsIFwKLSAgICAgICAgICAiMC4yNDQ1OTUsIDAuMzM5NzMyLCAwLjkxMTU0NywgMS40Mjg5OSwgMi4xMTkyMywgMy41MDAyNSwgNC4zNjIyNCIsIFwKLSAgICAgICAgICAiMC4yNTU2MDIsIDAuMzQ5MTA3LCAwLjkxMzIwNywgMS40MjkxMiwgMi4xMTg4OSwgMy40OTk1NywgNC4zNjI3NyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzIwNjgsIDAuMTA0ODYsIDAuMjg5NzE4LCAwLjQ1Mjc0MSwgMC42NzAxMDgsIDEuMTA0NzEsIDEuMzc1ODIiLCBcCi0gICAgICAgICAgIjAuMDc5ODg3LCAwLjExMjcwMiwgMC4yOTc1NzMsIDAuNDYwNTc3LCAwLjY3NzY3MSwgMS4xMTE4LCAxLjM4MzQiLCBcCi0gICAgICAgICAgIjAuMDg5NTU1LCAwLjEyMjM3MSwgMC4zMDczMjYsIDAuNDcwMTMsIDAuNjg3MzMxLCAxLjEyMTk4LCAxLjM5MzU2IiwgXAotICAgICAgICAgICIwLjA5OTQwMiwgMC4xMzIwODgsIDAuMzE2NjQ5LCAwLjQ3OTUyOSwgMC42OTY4NTIsIDEuMTMxMDksIDEuNDAzMTkiLCBcCi0gICAgICAgICAgIjAuMTA5MTA5LCAwLjE0MjA2NiwgMC4zMjY0NzQsIDAuNDg5MzY0LCAwLjcwNjc4OSwgMS4xNDE0NiwgMS40MTIzOSIsIFwKLSAgICAgICAgICAiMC4xMjQ3OTMsIDAuMTU3NzQzLCAwLjM0MjIyNSwgMC41MDUwNzcsIDAuNzIyNTI2LCAxLjE1NjgyLCAxLjQyODMyIiwgXAotICAgICAgICAgICIwLjEzNjM3MywgMC4xNzE4MSwgMC4zNTU5MzUsIDAuNTE4NzI0LCAwLjczNTc5OSwgMS4xNzA1NiwgMS40NDE2NyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMzgwNjMsIDAuMjA1Mjc4LCAwLjU4NjE0LCAwLjkyMjI4NCwgMS4zNzAwMywgMi4yNjYyMiwgMi44MjUwOSIsIFwKLSAgICAgICAgICAiMC4xMzc5NjEsIDAuMjA1MjM5LCAwLjU4NjEyNywgMC45MjIwNTMsIDEuMzcwMjgsIDIuMjY1OTIsIDIuODI2MjYiLCBcCi0gICAgICAgICAgIjAuMTQwNDAzLCAwLjIwNTk4OCwgMC41ODYyOTksIDAuOTIyNzg3LCAxLjM3MDI3LCAyLjI2NjM1LCAyLjgyNTI1IiwgXAotICAgICAgICAgICIwLjE0NTg0OSwgMC4yMDkzNTksIDAuNTg2MzYxLCAwLjkyMjYxNSwgMS4zNjk5NiwgMi4yNjU2OCwgMi44MjYwMyIsIFwKLSAgICAgICAgICAiMC4xNTMwOCwgMC4yMTQ4NzgsIDAuNTg2MTc4LCAwLjkyMjE3MiwgMS4zNjk5OSwgMi4yNjY3NiwgMi44MjU2NyIsIFwKLSAgICAgICAgICAiMC4xNjU5MTksIDAuMjI1ODUyLCAwLjU4ODkwMywgMC45MjE5OSwgMS4zNjk5OSwgMi4yNjU2LCAyLjgyNjA2IiwgXAotICAgICAgICAgICIwLjE3ODUwMSwgMC4yMzY1NzcsIDAuNTkzNTQ4LCAwLjkyMjk2MywgMS4zNzAyNCwgMi4yNjU4NSwgMi44MjY0NyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDYyNywgMC4wMDYyNywgMC4wMDYyNjksIDAuMDA2MjY4LCAwLjAwNjI2NywgMC4wMDYyNjMsIDAuMDA2MjYyIiwgXAotICAgICAgICAgICIwLjAwNjI0OSwgMC4wMDYyNTIsIDAuMDA2MjU1LCAwLjAwNjI1NiwgMC4wMDYyNTUsIDAuMDA2MjUxLCAwLjAwNjI0NiIsIFwKLSAgICAgICAgICAiMC4wMDYyMzksIDAuMDA2MjQ0LCAwLjAwNjI1MSwgMC4wMDYyNTIsIDAuMDA2MjUyLCAwLjAwNjI0OSwgMC4wMDYyNDgiLCBcCi0gICAgICAgICAgIjAuMDA2MjQsIDAuMDA2MjQ0LCAwLjAwNjI0OCwgMC4wMDYyNDgsIDAuMDA2MjUyLCAwLjAwNjI0OCwgMC4wMDYyNDgiLCBcCi0gICAgICAgICAgIjAuMDA2MjUxLCAwLjAwNjI1MSwgMC4wMDYyNTMsIDAuMDA2MjU0LCAwLjAwNjI1MiwgMC4wMDYyNDksIDAuMDA2MjQ4IiwgXAotICAgICAgICAgICIwLjAwNjI4OSwgMC4wMDYyODEsIDAuMDA2MjY1LCAwLjAwNjI2MiwgMC4wMDYyNTgsIDAuMDA2MjUyLCAwLjAwNjI1IiwgXAotICAgICAgICAgICIwLjAwNjM0MywgMC4wMDYzMiwgMC4wMDYyODYsIDAuMDA2MjcyLCAwLjAwNjI2OCwgMC4wMDYyNiwgMC4wMDYyNTUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDE2MDcsIDAuMDAxNjA3LCAwLjAwMTYwOCwgMC4wMDE2MDcsIDAuMDAxNjA2LCAwLjAwMTYwNiwgMC4wMDE2MDUiLCBcCi0gICAgICAgICAgIjAuMDAxNTc3LCAwLjAwMTU3OSwgMC4wMDE1ODMsIDAuMDAxNTgzLCAwLjAwMTU4MywgMC4wMDE1ODIsIDAuMDAxNTgyIiwgXAotICAgICAgICAgICIwLjAwMTU2NywgMC4wMDE1NywgMC4wMDE1NzcsIDAuMDAxNTc4LCAwLjAwMTU3OSwgMC4wMDE1NzgsIDAuMDAxNTc4IiwgXAotICAgICAgICAgICIwLjAwMTU2NSwgMC4wMDE1NjksIDAuMDAxNTc1LCAwLjAwMTU3NywgMC4wMDE1NzcsIDAuMDAxNTc2LCAwLjAwMTU3NiIsIFwKLSAgICAgICAgICAiMC4wMDE1NzIsIDAuMDAxNTczLCAwLjAwMTU3NywgMC4wMDE1NzcsIDAuMDAxNTc4LCAwLjAwMTU3NywgMC4wMDE1NzYiLCBcCi0gICAgICAgICAgIjAuMDAxNjAyLCAwLjAwMTU5NiwgMC4wMDE1ODgsIDAuMDAxNTg1LCAwLjAwMTU4MywgMC4wMDE1OCwgMC4wMDE1NzkiLCBcCi0gICAgICAgICAgIjAuMDAxNjQ3LCAwLjAwMTYzMywgMC4wMDE2MDQsIDAuMDAxNTk2LCAwLjAwMTU5MSwgMC4wMDE1ODUsIDAuMDAxNTgzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNTgzNywgMC4wMDU4MzcsIDAuMDA1ODM2LCAwLjAwNTgzNSwgMC4wMDU4MzQsIDAuMDA1ODMxLCAwLjAwNTgyOSIsIFwKLSAgICAgICAgICAiMC4wMDU4MTUsIDAuMDA1ODE5LCAwLjAwNTgyMiwgMC4wMDU4MjIsIDAuMDA1ODIxLCAwLjAwNTgxOSwgMC4wMDU4MTYiLCBcCi0gICAgICAgICAgIjAuMDA1ODA5LCAwLjAwNTgxMiwgMC4wMDU4MTgsIDAuMDA1ODE5LCAwLjAwNTgxNywgMC4wMDU4MTUsIDAuMDA1ODE0IiwgXAotICAgICAgICAgICIwLjAwNTgxNSwgMC4wMDU4MTUsIDAuMDA1ODE4LCAwLjAwNTgxOCwgMC4wMDU4MTcsIDAuMDA1ODE1LCAwLjAwNTgxMyIsIFwKLSAgICAgICAgICAiMC4wMDU4MywgMC4wMDU4MjgsIDAuMDA1ODIzLCAwLjAwNTgyMiwgMC4wMDU4MTksIDAuMDA1ODE2LCAwLjAwNTgxMyIsIFwKLSAgICAgICAgICAiMC4wMDU4NzgsIDAuMDA1ODY1LCAwLjAwNTgzOCwgMC4wMDU4MzEsIDAuMDA1ODI3LCAwLjAwNTgyMSwgMC4wMDU4MTkiLCBcCi0gICAgICAgICAgIjAuMDA1OTM1LCAwLjAwNTkwNiwgMC4wMDU4NTksIDAuMDA1ODQ2LCAwLjAwNTgzNiwgMC4wMDU4MjYsIDAuMDA1ODIzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxMzQzLCAwLjAwMTM0NCwgMC4wMDEzNDUsIDAuMDAxMzQ1LCAwLjAwMTM0NSwgMC4wMDEzNDQsIDAuMDAxMzQ0IiwgXAotICAgICAgICAgICIwLjAwMTMyMiwgMC4wMDEzMjksIDAuMDAxMzM5LCAwLjAwMTM0MSwgMC4wMDEzNDIsIDAuMDAxMzQyLCAwLjAwMTM0MiIsIFwKLSAgICAgICAgICAiMC4wMDEzMDMsIDAuMDAxMzE0LCAwLjAwMTMzMywgMC4wMDEzMzcsIDAuMDAxMzM5LCAwLjAwMTM0MSwgMC4wMDEzNDEiLCBcCi0gICAgICAgICAgIjAuMDAxMjkzLCAwLjAwMTMwNiwgMC4wMDEzMjksIDAuMDAxMzM0LCAwLjAwMTMzNywgMC4wMDEzMzksIDAuMDAxMzM5IiwgXAotICAgICAgICAgICIwLjAwMTI5NSwgMC4wMDEzMDcsIDAuMDAxMzI4LCAwLjAwMTMzNCwgMC4wMDEzMzcsIDAuMDAxMzM5LCAwLjAwMTMzOSIsIFwKLSAgICAgICAgICAiMC4wMDEzMjIsIDAuMDAxMzI1LCAwLjAwMTMzNSwgMC4wMDEzMzgsIDAuMDAxMzQsIDAuMDAxMzQxLCAwLjAwMTM0MSIsIFwKLSAgICAgICAgICAiMC4wMDEzNiwgMC4wMDEzNTYsIDAuMDAxMzUsIDAuMDAxMzUsIDAuMDAxMzQ4LCAwLjAwMTM0NiwgMC4wMDEzNDUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1MzgzLCAwLjAwNTM4NCwgMC4wMDUzODMsIDAuMDA1MzgzLCAwLjAwNTM4MywgMC4wMDUzOCwgMC4wMDUzNzYiLCBcCi0gICAgICAgICAgIjAuMDA1MzYxLCAwLjAwNTM2NSwgMC4wMDUzNjksIDAuMDA1MzY5LCAwLjAwNTM2OSwgMC4wMDUzNjcsIDAuMDA1MzYzIiwgXAotICAgICAgICAgICIwLjAwNTM2NiwgMC4wMDUzNjYsIDAuMDA1MzY4LCAwLjAwNTM2OCwgMC4wMDUzNjYsIDAuMDA1MzY0LCAwLjAwNTM2MSIsIFwKLSAgICAgICAgICAiMC4wMDUzODgsIDAuMDA1MzgzLCAwLjAwNTM3MywgMC4wMDUzNywgMC4wMDUzNjgsIDAuMDA1MzY0LCAwLjAwNTM2MyIsIFwKLSAgICAgICAgICAiMC4wMDU0NDEsIDAuMDA1NDIzLCAwLjAwNTM5LCAwLjAwNTM4MSwgMC4wMDUzNzUsIDAuMDA1MzY5LCAwLjAwNTM2NSIsIFwKLSAgICAgICAgICAiMC4wMDU1MjUsIDAuMDA1NDksIDAuMDA1NDIsIDAuMDA1NDAxLCAwLjAwNTM4OSwgMC4wMDUzNzgsIDAuMDA1MzcxIiwgXAotICAgICAgICAgICIwLjAwNTYyMywgMC4wMDU1NjIsIDAuMDA1NDU4LCAwLjAwNTQyNiwgMC4wMDU0MDgsIDAuMDA1Mzg4LCAwLjAwNTM4MiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTAxMywgMC4wMDEwMTcsIDAuMDAxMDIyLCAwLjAwMTAyMiwgMC4wMDEwMjMsIDAuMDAxMDIyLCAwLjAwMTAyMyIsIFwKLSAgICAgICAgICAiMC4wMDEwMDMsIDAuMDAxMDE2LCAwLjAwMTAzNiwgMC4wMDEwNCwgMC4wMDEwNDMsIDAuMDAxMDQ0LCAwLjAwMTA0NCIsIFwKLSAgICAgICAgICAiMC4wMDA5NzUsIDAuMDAwOTk2LCAwLjAwMTAyOSwgMC4wMDEwMzcsIDAuMDAxMDQxLCAwLjAwMTA0NSwgMC4wMDEwNDYiLCBcCi0gICAgICAgICAgIjAuMDAwOTU5LCAwLjAwMDk4MiwgMC4wMDEwMjMsIDAuMDAxMDMzLCAwLjAwMTAzOSwgMC4wMDEwNDQsIDAuMDAxMDQ1IiwgXAotICAgICAgICAgICIwLjAwMDk1NywgMC4wMDA5NzgsIDAuMDAxMDIsIDAuMDAxMDMxLCAwLjAwMTAzOCwgMC4wMDEwNDMsIDAuMDAxMDQ1IiwgXAotICAgICAgICAgICIwLjAwMDk3NiwgMC4wMDA5ODksIDAuMDAxMDI0LCAwLjAwMTAzNCwgMC4wMDEwMzksIDAuMDAxMDQ0LCAwLjAwMTA0NiIsIFwKLSAgICAgICAgICAiMC4wMDEwMDksIDAuMDAxMDE0LCAwLjAwMTAzNCwgMC4wMDEwNDEsIDAuMDAxMDQ1LCAwLjAwMTA0OCwgMC4wMDEwNDkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0NDM5LCAwLjAwNDQ0MSwgMC4wMDQ0NDQsIDAuMDA0NDQ2LCAwLjAwNDQ0NiwgMC4wMDQ0NDYsIDAuMDA0NDQ1IiwgXAotICAgICAgICAgICIwLjAwNDQyNCwgMC4wMDQ0MzQsIDAuMDA0NDQ5LCAwLjAwNDQ1MywgMC4wMDQ0NTQsIDAuMDA0NDU2LCAwLjAwNDQ1NiIsIFwKLSAgICAgICAgICAiMC4wMDQ0MDQsIDAuMDA0NDE5LCAwLjAwNDQ0MywgMC4wMDQ0NDksIDAuMDA0NDUyLCAwLjAwNDQ1NSwgMC4wMDQ0NTYiLCBcCi0gICAgICAgICAgIjAuMDA0Mzk4LCAwLjAwNDQxMywgMC4wMDQ0NDEsIDAuMDA0NDQ4LCAwLjAwNDQ1MSwgMC4wMDQ0NTQsIDAuMDA0NDU3IiwgXAotICAgICAgICAgICIwLjAwNDQwNywgMC4wMDQ0MTYsIDAuMDA0NDQxLCAwLjAwNDQ0OCwgMC4wMDQ0NTIsIDAuMDA0NDU1LCAwLjAwNDQ1NiIsIFwKLSAgICAgICAgICAiMC4wMDQ0NDMsIDAuMDA0NDQxLCAwLjAwNDQ0OSwgMC4wMDQ0NTMsIDAuMDA0NDU1LCAwLjAwNDQ1NywgMC4wMDQ0NTgiLCBcCi0gICAgICAgICAgIjAuMDA0NDk4LCAwLjAwNDQ4LCAwLjAwNDQ2OCwgMC4wMDQ0NjQsIDAuMDA0NDY0LCAwLjAwNDQ2MywgMC4wMDQ0NjMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDE2MDgsIDAuMDAxNjA5LCAwLjAwMTYwOSwgMC4wMDE2MDksIDAuMDAxNjA4LCAwLjAwMTYwNywgMC4wMDE2MDYiLCBcCi0gICAgICAgICAgIjAuMDAxNTgxLCAwLjAwMTU4NCwgMC4wMDE1ODUsIDAuMDAxNTg0LCAwLjAwMTU4NCwgMC4wMDE1ODMsIDAuMDAxNTgzIiwgXAotICAgICAgICAgICIwLjAwMTYwMywgMC4wMDE1OTksIDAuMDAxNTg2LCAwLjAwMTU4NiwgMC4wMDE1ODUsIDAuMDAxNTgzLCAwLjAwMTU4MiIsIFwKLSAgICAgICAgICAiMC4wMDE2MzksIDAuMDAxNjI2LCAwLjAwMTYwMSwgMC4wMDE1OTQsIDAuMDAxNTg5LCAwLjAwMTU4NSwgMC4wMDE1ODMiLCBcCi0gICAgICAgICAgIjAuMDAxNjY5LCAwLjAwMTY1MSwgMC4wMDE2MTgsIDAuMDAxNjA2LCAwLjAwMTU5NywgMC4wMDE1OSwgMC4wMDE1ODciLCBcCi0gICAgICAgICAgIjAuMDAxNzgsIDAuMDAxNzMzLCAwLjAwMTY2LCAwLjAwMTYzNSwgMC4wMDE2MTcsIDAuMDAxNjAyLCAwLjAwMTU5NyIsIFwKLSAgICAgICAgICAiMC4wMDE4ODMsIDAuMDAxODExLCAwLjAwMTY5MiwgMC4wMDE2NiwgMC4wMDE2MzYsIDAuMDAxNjE0LCAwLjAwMTYwNyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIxIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQwMDYsIDAuMDA0MDA4LCAwLjAwNDAxMSwgMC4wMDQwMTIsIDAuMDA0MDEzLCAwLjAwNDAxMywgMC4wMDQwMTMiLCBcCi0gICAgICAgICAgIjAuMDAzOTkxLCAwLjAwNDAwMSwgMC4wMDQwMTcsIDAuMDA0MDE5LCAwLjAwNDAyMSwgMC4wMDQwMjIsIDAuMDA0MDIzIiwgXAotICAgICAgICAgICIwLjAwMzk3NSwgMC4wMDM5ODksIDAuMDA0MDEyLCAwLjAwNDAxNywgMC4wMDQwMjEsIDAuMDA0MDIyLCAwLjAwNDAyMSIsIFwKLSAgICAgICAgICAiMC4wMDM5NzUsIDAuMDAzOTg2LCAwLjAwNDAwOSwgMC4wMDQwMTUsIDAuMDA0MDE5LCAwLjAwNDAyMiwgMC4wMDQwMjQiLCBcCi0gICAgICAgICAgIjAuMDAzOTksIDAuMDAzOTk1LCAwLjAwNDAxLCAwLjAwNDAxNywgMC4wMDQwMiwgMC4wMDQwMjIsIDAuMDA0MDIzIiwgXAotICAgICAgICAgICIwLjAwNDAzNSwgMC4wMDQwMjYsIDAuMDA0MDIzLCAwLjAwNDAyNCwgMC4wMDQwMjUsIDAuMDA0MDI2LCAwLjAwNDAyNiIsIFwKLSAgICAgICAgICAiMC4wMDQwOTgsIDAuMDA0MDY4LCAwLjAwNDA0MiwgMC4wMDQwMzcsIDAuMDA0MDM0LCAwLjAwNDAzMiwgMC4wMDQwMzEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDEzNDQsIDAuMDAxMzQ1LCAwLjAwMTM0NywgMC4wMDEzNDcsIDAuMDAxMzQ2LCAwLjAwMTM0NiwgMC4wMDEzNDYiLCBcCi0gICAgICAgICAgIjAuMDAxMzMxLCAwLjAwMTMzNiwgMC4wMDEzNDMsIDAuMDAxMzQ0LCAwLjAwMTM0NSwgMC4wMDEzNDUsIDAuMDAxMzQ1IiwgXAotICAgICAgICAgICIwLjAwMTMzOCwgMC4wMDEzNCwgMC4wMDEzNDUsIDAuMDAxMzQ2LCAwLjAwMTM0NiwgMC4wMDEzNDUsIDAuMDAxMzQ1IiwgXAotICAgICAgICAgICIwLjAwMTM1OCwgMC4wMDEzNiwgMC4wMDEzNSwgMC4wMDEzNDksIDAuMDAxMzQ4LCAwLjAwMTM0NywgMC4wMDEzNDYiLCBcCi0gICAgICAgICAgIjAuMDAxMzkzLCAwLjAwMTM4MywgMC4wMDEzNjMsIDAuMDAxMzU5LCAwLjAwMTM1NCwgMC4wMDEzNTEsIDAuMDAxMzQ5IiwgXAotICAgICAgICAgICIwLjAwMTQ2MiwgMC4wMDE0ODYsIDAuMDAxNDE2LCAwLjAwMTM4OCwgMC4wMDEzNzgsIDAuMDAxMzY1LCAwLjAwMTM2MSIsIFwKLSAgICAgICAgICAiMC4wMDE1NSwgMC4wMDE1NywgMC4wMDE0NTQsIDAuMDAxNDI1LCAwLjAwMTQwMiwgMC4wMDEzODEsIDAuMDAxMzc0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjIiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzU1MiwgMC4wMDM1NTYsIDAuMDAzNTYxLCAwLjAwMzU2MiwgMC4wMDM1NjIsIDAuMDAzNTYyLCAwLjAwMzU2MiIsIFwKLSAgICAgICAgICAiMC4wMDM1NCwgMC4wMDM1NSwgMC4wMDM1NjYsIDAuMDAzNTY5LCAwLjAwMzU3LCAwLjAwMzU3MiwgMC4wMDM1NzIiLCBcCi0gICAgICAgICAgIjAuMDAzNTM3LCAwLjAwMzU0NiwgMC4wMDM1NjMsIDAuMDAzNTY4LCAwLjAwMzU3MSwgMC4wMDM1NzIsIDAuMDAzNTcyIiwgXAotICAgICAgICAgICIwLjAwMzU1NywgMC4wMDM1NTcsIDAuMDAzNTY2LCAwLjAwMzU2OSwgMC4wMDM1NzEsIDAuMDAzNTczLCAwLjAwMzU3MyIsIFwKLSAgICAgICAgICAiMC4wMDM2MDgsIDAuMDAzNTk4LCAwLjAwMzU4MSwgMC4wMDM1NzksIDAuMDAzNTc4LCAwLjAwMzU3NywgMC4wMDM1NzciLCBcCi0gICAgICAgICAgIjAuMDAzNjkzLCAwLjAwMzY1NywgMC4wMDM2MDgsIDAuMDAzNTk2LCAwLjAwMzU5LCAwLjAwMzU4NCwgMC4wMDM1ODIiLCBcCi0gICAgICAgICAgIjAuMDAzNzkxLCAwLjAwMzczMiwgMC4wMDM2NDMsIDAuMDAzNjE5LCAwLjAwMzYwNiwgMC4wMDM1OTUsIDAuMDAzNTkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDEwMTcsIDAuMDAxMDIxLCAwLjAwMTAyNiwgMC4wMDEwMjcsIDAuMDAxMDI3LCAwLjAwMTAyNywgMC4wMDEwMjciLCBcCi0gICAgICAgICAgIjAuMDAxMDE4LCAwLjAwMTAyNywgMC4wMDEwNDMsIDAuMDAxMDQ3LCAwLjAwMTA0OCwgMC4wMDEwNDksIDAuMDAxMDUiLCBcCi0gICAgICAgICAgIjAuMDAxMDIsIDAuMDAxMDMxLCAwLjAwMTA0NywgMC4wMDEwNSwgMC4wMDEwNTIsIDAuMDAxMDUzLCAwLjAwMTA1MyIsIFwKLSAgICAgICAgICAiMC4wMDEwNCwgMC4wMDEwNDQsIDAuMDAxMDU3LCAwLjAwMTA1NywgMC4wMDEwNTcsIDAuMDAxMDU3LCAwLjAwMTA1NiIsIFwKLSAgICAgICAgICAiMC4wMDEwOSwgMC4wMDEwNzEsIDAuMDAxMDcxLCAwLjAwMTA2NywgMC4wMDEwNjQsIDAuMDAxMDYxLCAwLjAwMTA2IiwgXAotICAgICAgICAgICIwLjAwMTE2OSwgMC4wMDExNCwgMC4wMDExMDEsIDAuMDAxMDkyLCAwLjAwMTA4MSwgMC4wMDEwNzIsIDAuMDAxMDY5IiwgXAotICAgICAgICAgICIwLjAwMTI2NCwgMC4wMDEyMDgsIDAuMDAxMTMxLCAwLjAwMTExMywgMC4wMDEwOTcsIDAuMDAxMDgyLCAwLjAwMTA3OCIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IE9BSTMzWDIgKgotICogLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoT0FJMzNYMikgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAxLjE2NjY3OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAyMDg0NzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDIwNzk3OTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDIwODQ3OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTA4LCAwLjAwMTA3OSwgMC4wMDEwNzgsIDAuMDAxMDc5LCAwLjAwMTA3OCwgMC4wMDEwNzgsIDAuMDAxMDc4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxMDk1LCAwLjAwMTA4NSwgMC4wMDEwODQsIDAuMDAxMDg1LCAwLjAwMTA4NCwgMC4wMDEwODQsIDAuMDAxMDg0Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihBMSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAyMTgyMTM7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAyMTc4NzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDIxODIxMzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDEwOCwgMC4wMDEwOCwgMC4wMDEwNzksIDAuMDAxMDc5LCAwLjAwMTA3OSwgMC4wMDEwNzksIDAuMDAxMDc5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxMDk1LCAwLjAwMTA4NiwgMC4wMDEwODMsIDAuMDAxMDg0LCAwLjAwMTA4MSwgMC4wMDEwODIsIDAuMDAxMDgyIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihBMikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAyMDgwNjE7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAyMDgwNjE7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAyMDc2NTE7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxMDgsIDAuMDAxMDgsIDAuMDAxMDgsIDAuMDAxMDgsIDAuMDAxMDgsIDAuMDAxMDc5LCAwLjAwMTA3OSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTA5NSwgMC4wMDEwODUsIDAuMDAxMDgzLCAwLjAwMTA4MiwgMC4wMDEwODIsIDAuMDAxMDgyLCAwLjAwMTA4MiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQjApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMjEwNDU5OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMjA5NjA0OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMjEwNDU5OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjgxOCwgMC4wMDI4MTgsIDAuMDAyODE5LCAwLjAwMjgxNywgMC4wMDI4MTgsIDAuMDAyODE3LCAwLjAwMjgxNyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTIyNSwgMC4wMDEyMjYsIDAuMDAxMjI2LCAwLjAwMTIyNSwgMC4wMDEyMjYsIDAuMDAxMjI2LCAwLjAwMTIyNiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQjEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMjI3OTU2OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMjI3MzA3OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMjI3OTU2OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjgxNywgMC4wMDI4MTgsIDAuMDAyODE2LCAwLjAwMjgxNiwgMC4wMDI4MTcsIDAuMDAyODE3LCAwLjAwMjgxNiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTIyNSwgMC4wMDEyMjYsIDAuMDAxMjI2LCAwLjAwMTIyNSwgMC4wMDEyMjUsIDAuMDAxMjI1LCAwLjAwMTIyNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQjIpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMjE3OTg2OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMjE3OTg2OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMjE3OTExOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjgxNSwgMC4wMDI4MTYsIDAuMDAyODE1LCAwLjAwMjgxNSwgMC4wMDI4MTYsIDAuMDAyODE1LCAwLjAwMjgxNSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTIyNCwgMC4wMDEyMjUsIDAuMDAxMjI1LCAwLjAwMTIyNSwgMC4wMDEyMjUsIDAuMDAxMjI1LCAwLjAwMTIyNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjI2OTQ3NDsKLSAgICBmdW5jdGlvbiA6ICIoISgoKEIwK0IxKStCMikgKChBMCtBMSkrQTIpKSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzg2NSwgMC4yNzQ5NiwgMC40MzE0NzIsIDAuNjI2NzEsIDAuODIxODYsIDEuMDE3NzYsIDEuMjEyNjkiLCBcCi0gICAgICAgICAgIjAuMDgzNzgyLCAwLjI4MDM1NiwgMC40MzY4MDcsIDAuNjMxOTY3LCAwLjgyNzM3NiwgMS4wMjI2NywgMS4yMTg2OSIsIFwKLSAgICAgICAgICAiMC4wODg3ODMsIDAuMjg1NDEzLCAwLjQ0MTk4OSwgMC42MzcxMTIsIDAuODMyMzA5LCAxLjAyNzg1LCAxLjIyMzEzIiwgXAotICAgICAgICAgICIwLjA5MzYyMiwgMC4yOTAyMDcsIDAuNDQ2NzM1LCAwLjY0MTk4NCwgMC44MzcxMSwgMS4wMzI2NSwgMS4yMjg1NCIsIFwKLSAgICAgICAgICAiMC4wOTg0NiwgMC4yOTQ5ODYsIDAuNDUxNjMzLCAwLjY0Njc5OCwgMC44NDE5MDcsIDEuMDM3NDUsIDEuMjMyNzkiLCBcCi0gICAgICAgICAgIjAuMTA1NDAxLCAwLjMwMjgzMSwgMC40NTkxMzYsIDAuNjU0MzA4LCAwLjg0OTY4LCAxLjA0NTE3LCAxLjI0MDMxIiwgXAotICAgICAgICAgICIwLjExMDc2LCAwLjMwOTY5MywgMC40NjYwNDQsIDAuNjYwOTY5LCAwLjg1NjUxNSwgMS4wNTE5NCwgMS4yNDcyMiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNTM0MDMsIDAuNTY3MjM5LCAwLjg5ODY0NywgMS4zMTI2LCAxLjcyNjk0LCAyLjE0MTI3LCAyLjU1NTQ1IiwgXAotICAgICAgICAgICIwLjE1MzQyMywgMC41NjcyOTEsIDAuODk4NDMsIDEuMzEyODMsIDEuNzI2OTksIDIuMTQxMTksIDIuNTU1NDYiLCBcCi0gICAgICAgICAgIjAuMTU0Njk2LCAwLjU2NzI3OCwgMC44OTg0NTksIDEuMzEyNzksIDEuNzI2NzUsIDIuMTQxMjUsIDIuNTU1MjUiLCBcCi0gICAgICAgICAgIjAuMTU3MTczLCAwLjU2NzMxNCwgMC44OTg1NDgsIDEuMzEyNzIsIDEuNzI3MDEsIDIuMTQxMjgsIDIuNTU1NSIsIFwKLSAgICAgICAgICAiMC4xNjA1MTYsIDAuNTY3ODIsIDAuODk4NDMzLCAxLjMxMjc0LCAxLjcyNjg3LCAyLjE0MTIsIDIuNTU1NDUiLCBcCi0gICAgICAgICAgIjAuMTY3MTYsIDAuNTcwMTE3LCAwLjg5ODk4NywgMS4zMTI3NSwgMS43MjcsIDIuMTQxMjUsIDIuNTU1NDYiLCBcCi0gICAgICAgICAgIjAuMTczOTQyLCAwLjU3Mjk1NywgMC45MDAzOTQsIDEuMzEyODYsIDEuNzI3MDgsIDIuMTQxMiwgMi41NTU0Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1NjkzOCwgMC4xODQ0NjEsIDAuMjg1NiwgMC40MTE5MjYsIDAuNTM4MjA3LCAwLjY2NDQ2MSwgMC43OTA5MjgiLCBcCi0gICAgICAgICAgIjAuMDY0MzI3LCAwLjE5MTc2MiwgMC4yOTMwMSwgMC40MTkzODEsIDAuNTQ1NDI5LCAwLjY3MjA5OCwgMC43OTc3OTUiLCBcCi0gICAgICAgICAgIjAuMDcyMzU1LCAwLjE5OTkyNSwgMC4zMDEyNzcsIDAuNDI3NDU2LCAwLjU1MzU2NiwgMC42Nzk4ODIsIDAuODA2NDQ3IiwgXAotICAgICAgICAgICIwLjA4MDIwNywgMC4yMDc3NjksIDAuMzA4OTksIDAuNDM1NDE0LCAwLjU2MTY1MSwgMC42ODc4MiwgMC44MTQ1MyIsIFwKLSAgICAgICAgICAiMC4wODc2NTgsIDAuMjE1NjQyLCAwLjMxNjk0NywgMC40NDM0OTcsIDAuNTY5NjAxLCAwLjY5NjIyNSwgMC44MjIxNDgiLCBcCi0gICAgICAgICAgIjAuMDk3NjI1LCAwLjIyODE4OSwgMC4zMjk1NDcsIDAuNDU1OTU2LCAwLjU4MjI5NCwgMC43MDg2NzcsIDAuODM0OTIxIiwgXAotICAgICAgICAgICIwLjEwNTA3NCwgMC4yMzkyOTIsIDAuMzQwNTAzLCAwLjQ2NzAyMywgMC41OTMzMDUsIDAuNzE5Nzc4LCAwLjg0NjEwMSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODg2NDIsIDAuMzQ5ODIsIDAuNTU4NjE3LCAwLjgxOTczNywgMS4wODA0NiwgMS4zNDE1OCwgMS42MDIxMiIsIFwKLSAgICAgICAgICAiMC4wODg3MjMsIDAuMzQ5NjU4LCAwLjU1ODU5NywgMC44MTk2NjQsIDEuMDgxMTgsIDEuMzQxMzIsIDEuNjAyMzQiLCBcCi0gICAgICAgICAgIjAuMDkwNzE2LCAwLjM0OTcxNCwgMC41NTg3MTIsIDAuODE5NTMxLCAxLjA4MTA1LCAxLjM0MTQ1LCAxLjYwMjA4IiwgXAotICAgICAgICAgICIwLjA5NDY4LCAwLjM1MDA0LCAwLjU1ODU2NiwgMC44MTk1MywgMS4wODA3MywgMS4zNDE2MSwgMS42MDIxNSIsIFwKLSAgICAgICAgICAiMC4wOTk4NzMsIDAuMzUxNTgsIDAuNTU4OTA3LCAwLjgxOTUzNywgMS4wODA1MiwgMS4zNDEyOSwgMS42MDI5OSIsIFwKLSAgICAgICAgICAiMC4xMDk4NDksIDAuMzU1OTg0LCAwLjU2MDcwNCwgMC44MjAwMDcsIDEuMDgxMywgMS4zNDExOSwgMS42MDIwMiIsIFwKLSAgICAgICAgICAiMC4xMTg5MzcsIDAuMzYxNDExLCAwLjU2MzkyOSwgMC44MjEzNjcsIDEuMDgxNDIsIDEuMzQxNjEsIDEuNjAyMDgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3NjE4NiwgMC4yNzI2LCAwLjQyOTA1MiwgMC42MjQzNTcsIDAuODE5OTA3LCAxLjAxNDk5LCAxLjIxMDc5IiwgXAotICAgICAgICAgICIwLjA4MjE2NCwgMC4yNzg2NjksIDAuNDM1MTU2LCAwLjYzMDQ3LCAwLjgyNjA3OCwgMS4wMjEwNiwgMS4yMTYzMyIsIFwKLSAgICAgICAgICAiMC4wODkyMzIsIDAuMjg1OTMxLCAwLjQ0MjQ1NiwgMC42Mzc4NDMsIDAuODMyODQyLCAxLjAyODQ3LCAxLjIyNDQzIiwgXAotICAgICAgICAgICIwLjA5NjcwOCwgMC4yOTMzMjgsIDAuNDQ5ODY2LCAwLjY0NTAzNiwgMC44NDAyMywgMS4wMzU3NywgMS4yMzEzNCIsIFwKLSAgICAgICAgICAiMC4xMDQyNjYsIDAuMzAwNzYzLCAwLjQ1NzMxOCwgMC42NTIyMjQsIDAuODQ3NTM1LCAxLjA0MzUyLCAxLjIzODIzIiwgXAotICAgICAgICAgICIwLjExNTAzMSwgMC4zMTIzODIsIDAuNDY4ODcxLCAwLjY2NDA4NCwgMC44NTk2MSwgMS4wNTUxMiwgMS4yNTA0IiwgXAotICAgICAgICAgICIwLjEyMzU2MiwgMC4zMjMxMzgsIDAuNDc5NjY2LCAwLjY3MzM1MywgMC44Njk1MzIsIDEuMDY0OSwgMS4yNjAyNSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNTMzOTksIDAuNTY3MjY4LCAwLjg5ODQxMSwgMS4zMTI3NSwgMS43MjY2MSwgMi4xNDEyNSwgMi41NTU0NSIsIFwKLSAgICAgICAgICAiMC4xNTM0NTQsIDAuNTY3MjY0LCAwLjg5ODUyOCwgMS4zMTI5MiwgMS43MjcwOCwgMi4xNDEyNCwgMi41NTU0MSIsIFwKLSAgICAgICAgICAiMC4xNTU0ODMsIDAuNTY3MjY3LCAwLjg5ODM5MiwgMS4zMTI2OCwgMS43MjcwNCwgMi4xNDEyOSwgMi41NTU0OCIsIFwKLSAgICAgICAgICAiMC4xNTk1MTEsIDAuNTY3MjcsIDAuODk4NjQ2LCAxLjMxMzAzLCAxLjcyNzExLCAyLjE0MTExLCAyLjU1NTY1IiwgXAotICAgICAgICAgICIwLjE2NDcwMSwgMC41Njc3MjYsIDAuODk4NTA0LCAxLjMxMjYzLCAxLjcyNjk3LCAyLjE0MTI1LCAyLjU1NTQiLCBcCi0gICAgICAgICAgIjAuMTc0MDAzLCAwLjU3MDYxNiwgMC44OTg5OTMsIDEuMzEyNjUsIDEuNzI2OTIsIDIuMTQxMjEsIDIuNTU1NCIsIFwKLSAgICAgICAgICAiMC4xODMyMzQsIDAuNTc0ODA1LCAwLjkwMDU0MiwgMS4zMTI5MywgMS43MjcxOSwgMi4xNDEyLCAyLjU1NTMxIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1MzYzLCAwLjE3OTU5OCwgMC4yNzk5MTUsIDAuNDA1MjAzLCAwLjUzMDA2MSwgMC42NTU1NDEsIDAuNzgwNzIyIiwgXAotICAgICAgICAgICIwLjA2MTA0MSwgMC4xODcxNDMsIDAuMjg3MzE0LCAwLjQxMjUsIDAuNTM3ODI3LCAwLjY2MjgxMywgMC43ODg0NTIiLCBcCi0gICAgICAgICAgIjAuMDY5MTEsIDAuMTk1MjUyLCAwLjI5NTUwMiwgMC40MjA3OTMsIDAuNTQ1ODY5LCAwLjY3MTUyOCwgMC43OTYyMDkiLCBcCi0gICAgICAgICAgIjAuMDc2OTI4LCAwLjIwMzExLCAwLjMwMzQ3NSwgMC40Mjg5NTIsIDAuNTU0MDA4LCAwLjY3OTEzNSwgMC44MDQyNTIiLCBcCi0gICAgICAgICAgIjAuMDg0MDM4LCAwLjIxMTA4LCAwLjMxMTI4NywgMC40MzY3NzksIDAuNTYxNzk1LCAwLjY4NzI3NSwgMC44MTIxNTEiLCBcCi0gICAgICAgICAgIjAuMDkzNDk5LCAwLjIyMzY2OSwgMC4zMjM3NTksIDAuNDQ5MTEsIDAuNTc0NDYzLCAwLjY5OTU4NSwgMC44MjQ3MjMiLCBcCi0gICAgICAgICAgIjAuMTAwODYyLCAwLjIzNDU4NywgMC4zMzQ4MDUsIDAuNDYwMjcyLCAwLjU4NTQ1MywgMC43MTA5MzIsIDAuODM2MTExIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4Mzc5NCwgMC4zNDI3MTIsIDAuNTQ5NTY4LCAwLjgwODE3OSwgMS4wNjY4NywgMS4zMjUzLCAxLjU4Mzc4IiwgXAotICAgICAgICAgICIwLjA4Mzg2NywgMC4zNDI2MjEsIDAuNTQ5Nzg3LCAwLjgwODc4MiwgMS4wNjY3NiwgMS4zMjU0NiwgMS41ODM5NiIsIFwKLSAgICAgICAgICAiMC4wODYwMzQsIDAuMzQyNjE3LCAwLjU0OTg0NywgMC44MDkwNDgsIDEuMDY2OTksIDEuMzI1NzEsIDEuNTgzNzQiLCBcCi0gICAgICAgICAgIjAuMDkwMTYsIDAuMzQzMDI1LCAwLjU0OTY0MSwgMC44MDgzMDEsIDEuMDY2NTgsIDEuMzI1MjMsIDEuNTgzNzQiLCBcCi0gICAgICAgICAgIjAuMDk1NDQ5LCAwLjM0NDU2NCwgMC41NDk4NzYsIDAuODA4MTI1LCAxLjA2NywgMS4zMjUzMywgMS41ODM3MyIsIFwKLSAgICAgICAgICAiMC4xMDU2OTcsIDAuMzQ5MzgxLCAwLjU1MTg1NiwgMC44MDg3MjgsIDEuMDY2NjUsIDEuMzI1NDEsIDEuNTgzNjYiLCBcCi0gICAgICAgICAgIjAuMTE0NTM3LCAwLjM1NDY0NSwgMC41NTQ3MzYsIDAuODEwMTUxLCAxLjA2NzE1LCAxLjMyNTMyLCAxLjU4Mzc2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEyIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzA5NzMsIDAuMjY3Mzc5LCAwLjQyMzk2OCwgMC42MTkxMTMsIDAuODE0MjczLCAxLjAwOTk5LCAxLjIwNTA5IiwgXAotICAgICAgICAgICIwLjA3Nzc0NiwgMC4yNzQzMTIsIDAuNDMwNzc5LCAwLjYyNTk1OCwgMC44MjExNjYsIDEuMDE2OTIsIDEuMjExOTkiLCBcCi0gICAgICAgICAgIjAuMDg2Njk3LCAwLjI4MzA2NiwgMC40Mzk1NjksIDAuNjM0NjY0LCAwLjgyOTkzOCwgMS4wMjUzNywgMS4yMjA5IiwgXAotICAgICAgICAgICIwLjA5NjA5MywgMC4yOTIxOTQsIDAuNDQ4NjExLCAwLjY0MzczNSwgMC44MzkyOTEsIDEuMDM0NDIsIDEuMjMwMjUiLCBcCi0gICAgICAgICAgIjAuMTA1MzI2LCAwLjMwMTE3MiwgMC40NTc1NDYsIDAuNjUyNjAyLCAwLjg0NzcxNiwgMS4wNDMyMiwgMS4yMzg5OCIsIFwKLSAgICAgICAgICAiMC4xMTk2NjYsIDAuMzE1Mzc2LCAwLjQ3MTYyMywgMC42NjY0ODIsIDAuODYxNTM2LCAxLjA1NywgMS4yNTIyNCIsIFwKLSAgICAgICAgICAiMC4xMzA1MDQsIDAuMzI4MjIyLCAwLjQ4NDE1MywgMC42NzkwMSwgMC44NzM5ODMsIDEuMDY5MzgsIDEuMjY0NTgiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTUzNDA3LCAwLjU2NzIzOCwgMC44OTg1NDEsIDEuMzEyNzIsIDEuNzI3MDQsIDIuMTQxNDYsIDIuNTU1NDEiLCBcCi0gICAgICAgICAgIjAuMTUzMjY5LCAwLjU2NzIyNywgMC44OTgzOTMsIDEuMzEyNjIsIDEuNzI3MDcsIDIuMTQxMzcsIDIuNTU1NDQiLCBcCi0gICAgICAgICAgIjAuMTU2NTM4LCAwLjU2NzI2OSwgMC44OTg1ODYsIDEuMzEyODYsIDEuNzI3MTMsIDIuMTQxMDEsIDIuNTU1NjUiLCBcCi0gICAgICAgICAgIjAuMTYyMzAzLCAwLjU2NzI1MiwgMC44OTg3MDIsIDEuMzEyODQsIDEuNzI3LCAyLjE0MTEzLCAyLjU1NTUxIiwgXAotICAgICAgICAgICIwLjE2OTY4MywgMC41Njc2OTQsIDAuODk4NTA0LCAxLjMxMjY0LCAxLjcyNjg1LCAyLjE0MTIyLCAyLjU1NTU5IiwgXAotICAgICAgICAgICIwLjE4MjIyOSwgMC41NzE3OTcsIDAuODk4NjA4LCAxLjMxMjkxLCAxLjcyNzAxLCAyLjE0MTIzLCAyLjU1NTQyIiwgXAotICAgICAgICAgICIwLjE5MzYxMSwgMC41Nzc0MjMsIDAuOTAwNzM1LCAxLjMxMjg3LCAxLjcyNjg2LCAyLjE0MTIzLCAyLjU1NTQxIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1MDUwNiwgMC4xNzcyMzEsIDAuMjc4MTQ1LCAwLjQwNDA2LCAwLjUyOTg0OSwgMC42NTU5NjYsIDAuNzgyMjc3IiwgXAotICAgICAgICAgICIwLjA1NzkzOSwgMC4xODQ4NzQsIDAuMjg1NzI3LCAwLjQxMTY4NSwgMC41Mzc4MDIsIDAuNjYzNjMxLCAwLjc4OTk2NSIsIFwKLSAgICAgICAgICAiMC4wNjU4ODYsIDAuMTkyODkzLCAwLjI5Mzg0MSwgMC40MTk4NzMsIDAuNTQ2MDM4LCAwLjY3MTg0MSwgMC43OTgxMDIiLCBcCi0gICAgICAgICAgIjAuMDczNTg2LCAwLjIwMDc3MSwgMC4zMDE3MjMsIDAuNDI4MDQ0LCAwLjU1MzgzMSwgMC42Nzk3MjYsIDAuODA1NzE1IiwgXAotICAgICAgICAgICIwLjA4MDMzLCAwLjIwODQwMSwgMC4zMDk0NjIsIDAuNDM1NzU1LCAwLjU2MTU3NiwgMC42ODc3NzMsIDAuODEzNTA3IiwgXAotICAgICAgICAgICIwLjA4OTM2OCwgMC4yMjA4NzYsIDAuMzIyMDY0LCAwLjQ0ODEzMiwgMC41NzQxNiwgMC43MDAyMjcsIDAuODI2MzgiLCBcCi0gICAgICAgICAgIjAuMDk2MjUsIDAuMjMxOTkzLCAwLjMzMjg3LCAwLjQ1OTI1OCwgMC41ODUzOTMsIDAuNzExNDk2LCAwLjgzNzE3NyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODAyNzgsIDAuMzQwODIzLCAwLjU0OTQyOCwgMC44MDk3OTYsIDEuMDcwMTcsIDEuMzMwODgsIDEuNTkxMjUiLCBcCi0gICAgICAgICAgIjAuMDgwMzYxLCAwLjM0MDczMSwgMC41NDkyNTUsIDAuODA5NzQsIDEuMDcwMDksIDEuMzMwOTEsIDEuNTkxMyIsIFwKLSAgICAgICAgICAiMC4wODI2NSwgMC4zNDA3NjMsIDAuNTQ5MTY0LCAwLjgxMDQ1MSwgMS4wNzAwNywgMS4zMzEwOCwgMS41OTEzMSIsIFwKLSAgICAgICAgICAiMC4wODY5MDgsIDAuMzQxMTcyLCAwLjU0OTIxMywgMC44MDk5OCwgMS4wNzAzOCwgMS4zMzA4NiwgMS41OTEyOCIsIFwKLSAgICAgICAgICAiMC4wOTIzMDIsIDAuMzQyNzI1LCAwLjU0OTQ2NiwgMC44MDk2ODMsIDEuMDcwMjIsIDEuMzMwNDgsIDEuNTkwNzUiLCBcCi0gICAgICAgICAgIjAuMTAyNTM1LCAwLjM0NzMwMSwgMC41NTE0MTksIDAuODEwMTYxLCAxLjA3MDE4LCAxLjMzMDg3LCAxLjU5MTA0IiwgXAotICAgICAgICAgICIwLjExMTMwOSwgMC4zNTI4MTMsIDAuNTU0NTYsIDAuODExNTQsIDEuMDcxMSwgMS4zMzA1NiwgMS41OTA3MSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDYyODc0LCAwLjI1OTY1OSwgMC40MTY1OTgsIDAuNjEyNDkzLCAwLjgwODEyNiwgMS4wMDM4MSwgMS4xOTkyMSIsIFwKLSAgICAgICAgICAiMC4wNjc5NzQsIDAuMjY1MDEyLCAwLjQyMTg5MiwgMC42MTc4MjksIDAuODEzNjc5LCAxLjAwOTI2LCAxLjIwNDY4IiwgXAotICAgICAgICAgICIwLjA3MjkxMSwgMC4yNzAwNjcsIDAuNDI3MDc3LCAwLjYyMjg5NCwgMC44MTg2NjQsIDEuMDE0MzMsIDEuMjA5NzgiLCBcCi0gICAgICAgICAgIjAuMDc3NzA0LCAwLjI3NDgwOCwgMC40MzE4OTgsIDAuNjI3NzIxLCAwLjgyMzQ4NCwgMS4wMTkxMywgMS4yMTQ4NyIsIFwKLSAgICAgICAgICAiMC4wODIwNywgMC4yNzk2NCwgMC40MzY2NzEsIDAuNjMyNTI2LCAwLjgyODQzMSwgMS4wMjM3OSwgMS4yMTkyNSIsIFwKLSAgICAgICAgICAiMC4wODgxOTYsIDAuMjg3MzU2LCAwLjQ0NDI1OCwgMC42NDAxNzYsIDAuODM1OTMzLCAxLjAzMTMsIDEuMjI2OTEiLCBcCi0gICAgICAgICAgIjAuMDkyOTU4LCAwLjI5NDMwOCwgMC40NTEwODIsIDAuNjQ3MDg4LCAwLjg0MjczLCAxLjAzODMzLCAxLjIzMzc3Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEzODUwOCwgMC41NTEyMTUsIDAuODgyMjk2LCAxLjI5NjE0LCAxLjcwOTg2LCAyLjEyMzczLCAyLjUzNzI0IiwgXAotICAgICAgICAgICIwLjEzODYxOCwgMC41NTEzMTMsIDAuODgyMjMxLCAxLjI5NjA3LCAxLjcwOTYyLCAyLjEyMzMyLCAyLjUzNzEiLCBcCi0gICAgICAgICAgIjAuMTQwMzU1LCAwLjU1MTI5MiwgMC44ODIyOTEsIDEuMjk2MDMsIDEuNzA5NTUsIDIuMTIzNywgMi41MzcxNSIsIFwKLSAgICAgICAgICAiMC4xNDMyNzIsIDAuNTUxMjc4LCAwLjg4MjI4NiwgMS4yOTYwMywgMS43MDk4NiwgMi4xMjM3NywgMi41Mzc0MiIsIFwKLSAgICAgICAgICAiMC4xNDcxMTEsIDAuNTUyMDAzLCAwLjg4MjI2OCwgMS4yOTYwMiwgMS43MDk4OSwgMi4xMjM3NiwgMi41MzczOCIsIFwKLSAgICAgICAgICAiMC4xNTQ1MDIsIDAuNTU0NDE0LCAwLjg4MjY2LCAxLjI5NTc4LCAxLjcwOTQ2LCAyLjEyMzYyLCAyLjUzNzc3IiwgXAotICAgICAgICAgICIwLjE2MTkxMywgMC41NTc2MjMsIDAuODg0MzMyLCAxLjI5NTk5LCAxLjcwOTcyLCAyLjEyMzY0LCAyLjUzNzAzIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0OTI2MywgMC4xNzY2MzIsIDAuMjc3Nzc0LCAwLjQwNDI2MiwgMC41MzAyODgsIDAuNjU2OTYsIDAuNzgyNjk0IiwgXAotICAgICAgICAgICIwLjA1NjcxNCwgMC4xODQyMDUsIDAuMjg1MjQ2LCAwLjQxMTQ3MywgMC41Mzc3NjYsIDAuNjYzOTEsIDAuNzkwMTQxIiwgXAotICAgICAgICAgICIwLjA2NjQ0MiwgMC4xOTM2ODQsIDAuMjk0OTEsIDAuNDIxMjcxLCAwLjU0NzI0NSwgMC42NzMzNTIsIDAuNzk5ODQ4IiwgXAotICAgICAgICAgICIwLjA3NjMzMiwgMC4yMDI5OTEsIDAuMzA0MDUxLCAwLjQzMDMxMiwgMC41NTY1OTksIDAuNjgyOTA3LCAwLjgwOTU5NyIsIFwKLSAgICAgICAgICAiMC4wODYwOTcsIDAuMjEyODc2LCAwLjMxMzk1OCwgMC40NDAyMzUsIDAuNTY2MTQxLCAwLjY5MjUzMiwgMC44MTg2MDUiLCBcCi0gICAgICAgICAgIjAuMDk4NjU3LCAwLjIyODMzOSwgMC4zMjkxOTksIDAuNDU1NCwgMC41ODE2MzMsIDAuNzA3Nzc2LCAwLjgzNDQwMiIsIFwKLSAgICAgICAgICAiMC4xMDc3MTcsIDAuMjQyMTEzLCAwLjM0MjgxOCwgMC40NjkwMzEsIDAuNTk1MjAyLCAwLjcyMTQzNCwgMC44NDc0MjgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg4NjUsIDAuMzQ5OTMzLCAwLjU1ODkwMiwgMC44MTk3MDMsIDEuMDgxMjQsIDEuMzQxMzMsIDEuNjAxODEiLCBcCi0gICAgICAgICAgIjAuMDg4ODA3LCAwLjM0OTY3NSwgMC41NTg0NTUsIDAuODE5NzU2LCAxLjA4MDUsIDEuMzQxMjksIDEuNjAxNzkiLCBcCi0gICAgICAgICAgIjAuMDkzNTQ1LCAwLjM0OTc0MiwgMC41NTg2ODQsIDAuODE5NTQyLCAxLjA4MDQ4LCAxLjM0MTQ4LCAxLjYwMjA3IiwgXAotICAgICAgICAgICIwLjEwMDcxLCAwLjM1MDM3OCwgMC41NTg4MTcsIDAuODIwMDIyLCAxLjA4MDY1LCAxLjM0MDk2LCAxLjYwMzAxIiwgXAotICAgICAgICAgICIwLjEwODYxMywgMC4zNTMxMDcsIDAuNTU4ODY5LCAwLjgxOTkyMSwgMS4wODEzOSwgMS4zNDEyNiwgMS42MDI3NiIsIFwKLSAgICAgICAgICAiMC4xMjI3MzgsIDAuMzYwNTgxLCAwLjU2MjEyMywgMC44MjAxMjEsIDEuMDgwNDksIDEuMzQxMDgsIDEuNjAyMiIsIFwKLSAgICAgICAgICAiMC4xMzQzMzEsIDAuMzY4ODM3LCAwLjU2NzA4NiwgMC44MjE3MTIsIDEuMDgwMzMsIDEuMzQxMywgMS42MDE4OSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDYwNzczLCAwLjI1NzU0LCAwLjQxNDM4LCAwLjYxMDIxNywgMC44MDYwNzQsIDEuMDAxNjQsIDEuMTk3MTMiLCBcCi0gICAgICAgICAgIjAuMDY2NjA4LCAwLjI2MzY4NywgMC40MjA2MjYsIDAuNjE2NDcsIDAuODEyMzEsIDEuMDA3ODgsIDEuMjAzNTYiLCBcCi0gICAgICAgICAgIjAuMDczODIsIDAuMjcwOTMsIDAuNDI3ODkxLCAwLjYyMzc0NSwgMC44MTk2MDYsIDEuMDE1MjIsIDEuMjEwNjUiLCBcCi0gICAgICAgICAgIjAuMDgxMDAxLCAwLjI3Nzc4NiwgMC40MzUyNjksIDAuNjMxMywgMC44MjY5NTgsIDEuMDIyNjEsIDEuMjE4MjgiLCBcCi0gICAgICAgICAgIjAuMDg4MDU5LCAwLjI4NTYxNSwgMC40NDI2NTEsIDAuNjM4NTIsIDAuODM0MzAyLCAxLjAyOTk2LCAxLjIyNTM4IiwgXAotICAgICAgICAgICIwLjA5ODA1LCAwLjI5NzM2MiwgMC40NTQ1NTMsIDAuNjUwNDQ4LCAwLjg0NjIyOCwgMS4wNDE4NSwgMS4yMzcyNyIsIFwKLSAgICAgICAgICAiMC4xMDUxOCwgMC4zMDgxMDcsIDAuNDY0ODYxLCAwLjY2MDM3NSwgMC44NTY0ODQsIDEuMDUyMDksIDEuMjQ3NiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMzg1MTYsIDAuNTUxMjE4LCAwLjg4MjE1NiwgMS4yOTYwNCwgMS43MDk4NSwgMi4xMjM2OCwgMi41MzcxMSIsIFwKLSAgICAgICAgICAiMC4xMzg3NjYsIDAuNTUxMzMsIDAuODgyMzM0LCAxLjI5NjA5LCAxLjcxLCAyLjEyMzY5LCAyLjUzNzQ5IiwgXAotICAgICAgICAgICIwLjE0MTcxNiwgMC41NTEyNjksIDAuODgyMjY5LCAxLjI5NjAzLCAxLjcwOTg2LCAyLjEyMzcxLCAyLjUzNzI0IiwgXAotICAgICAgICAgICIwLjE0NjI1NCwgMC41NTEyOTksIDAuODgyMTM2LCAxLjI5NTc5LCAxLjcwOTgxLCAyLjEyMzMsIDIuNTM3OSIsIFwKLSAgICAgICAgICAiMC4xNTIwNzEsIDAuNTUyMTIsIDAuODgyMjUyLCAxLjI5NjAxLCAxLjcwOTczLCAyLjEyMzY3LCAyLjUzNzA4IiwgXAotICAgICAgICAgICIwLjE2MjEyNCwgMC41NTUyNjQsIDAuODgyNDUyLCAxLjI5NiwgMS43MDk3MywgMi4xMjMyNywgMi41MzcwNiIsIFwKLSAgICAgICAgICAiMC4xNzE1OTIsIDAuNTU5NzMsIDAuODg0NDEzLCAxLjI5NjA3LCAxLjcwOTgyLCAyLjEyMzIyLCAyLjUzNzQ2Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0NjQ3MywgMC4xNzMzOTksIDAuMjc0MzY1LCAwLjQwMDQ0MSwgMC41MjY2NDcsIDAuNjUyNjU2LCAwLjc3ODY5NiIsIFwKLSAgICAgICAgICAiMC4wNTQwODYsIDAuMTgwOTE2LCAwLjI4MTk5MiwgMC40MDgxODUsIDAuNTM0MjY1LCAwLjY2MDMzOSwgMC43ODYzODYiLCBcCi0gICAgICAgICAgIjAuMDYzNzExLCAwLjE5MDU2MiwgMC4yOTE2MDMsIDAuNDE3Nzc5LCAwLjU0MzY4OSwgMC42Njk4NSwgMC43OTYyMTIiLCBcCi0gICAgICAgICAgIjAuMDczNTI3LCAwLjIwMDEwOCwgMC4zMDEyODMsIDAuNDI3NDM5LCAwLjU1MzU4MiwgMC42Nzk3NTgsIDAuODA2MjUyIiwgXAotICAgICAgICAgICIwLjA4MjY0LCAwLjIwOTc2NywgMC4zMTA3LCAwLjQzNjgxMSwgMC41NjMyLCAwLjY4OTQ5OSwgMC44MTU0NDQiLCBcCi0gICAgICAgICAgIjAuMDk0ODg3LCAwLjIyNDg4MSwgMC4zMjU1MzUsIDAuNDUxNjE4LCAwLjU3Nzc1MSwgMC43MDM3MzcsIDAuODMwMDg0IiwgXAotICAgICAgICAgICIwLjEwMzM1NSwgMC4yMzg1MjQsIDAuMzM5MDk0LCAwLjQ2NTE2NSwgMC41OTEyNDYsIDAuNzE3MTYsIDAuODQzMjQzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4NDQzMSwgMC4zNDQ1NTEsIDAuNTUyNzMsIDAuODEyNzc3LCAxLjA3MjQyLCAxLjMzMTY5LCAxLjU5MTkyIiwgXAotICAgICAgICAgICIwLjA4NDY3NCwgMC4zNDQ1NTcsIDAuNTUyNDkzLCAwLjgxMjI3NiwgMS4wNzIyNywgMS4zMzIyNiwgMS41OTE1OCIsIFwKLSAgICAgICAgICAiMC4wODk2NDgsIDAuMzQ0NTI5LCAwLjU1MjQ4OCwgMC44MTIzLCAxLjA3MjI0LCAxLjMzMjE4LCAxLjU5MTc2IiwgXAotICAgICAgICAgICIwLjA5NzAzMSwgMC4zNDUxNzcsIDAuNTUyNjQ0LCAwLjgxMjgzMSwgMS4wNzI1MSwgMS4zMzE2OSwgMS41OTIyNyIsIFwKLSAgICAgICAgICAiMC4xMDU0NzEsIDAuMzQ3OTg1LCAwLjU1Mjc2MywgMC44MTI2NzgsIDEuMDczMTEsIDEuMzMyMDMsIDEuNTkyMzciLCBcCi0gICAgICAgICAgIjAuMTE5MjMxLCAwLjM1NTgwNywgMC41NTU5NDEsIDAuODEyOTIyLCAxLjA3MjAzLCAxLjMzMjQsIDEuNTkyMDIiLCBcCi0gICAgICAgICAgIjAuMTMwOTY3LCAwLjM2NDIwMSwgMC41NjEyMTUsIDAuODE0NjAyLCAxLjA3MjM5LCAxLjMzMTc2LCAxLjU5MTU4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIyIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTYwNTEsIDAuMjUyODY3LCAwLjQwOTc2NCwgMC42MDU2MTcsIDAuODAxNDg4LCAwLjk5NzA0NiwgMS4xOTI1MSIsIFwKLSAgICAgICAgICAiMC4wNjI5MzYsIDAuMjU5OTI2LCAwLjQxNjc4NCwgMC42MTI2NjMsIDAuODA4NDQ0LCAxLjAwNDA1LCAxLjE5OTgyIiwgXAotICAgICAgICAgICIwLjA3MTkzOSwgMC4yNjg2NDUsIDAuNDI1NjMzLCAwLjYyMTM4MiwgMC44MTcyMzQsIDEuMDEyOCwgMS4yMDgyNyIsIFwKLSAgICAgICAgICAiMC4wODEyNDksIDAuMjc3NTQzLCAwLjQzNDYxNiwgMC42MzA0NTksIDAuODI2MjYsIDEuMDIxODcsIDEuMjE3MzQiLCBcCi0gICAgICAgICAgIjAuMDkwMTksIDAuMjg2NDAzLCAwLjQ0MzQ2NSwgMC42MzkyOSwgMC44MzUwMywgMS4wMzA2MiwgMS4yMjYxMyIsIFwKLSAgICAgICAgICAiMC4xMDI2NjMsIDAuMzAwODQ2LCAwLjQ1NzQ2MywgMC42NTMxNTcsIDAuODQ4OTc1LCAxLjA0NDM4LCAxLjIzOTc4IiwgXAotICAgICAgICAgICIwLjExMTksIDAuMzEzNjU5LCAwLjQ3MDAzNywgMC42NjU2NjUsIDAuODYxMzM0LCAxLjA1Njg5LCAxLjI1MjIxIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEzODUwNywgMC41NTEyMzUsIDAuODgyNDk1LCAxLjI5NjA0LCAxLjcxMDAyLCAyLjEyMzM4LCAyLjUzNjYzIiwgXAotICAgICAgICAgICIwLjEzODY2OSwgMC41NTEzNzYsIDAuODgyMjQsIDEuMjk1NzMsIDEuNzA5NzksIDIuMTIzNzYsIDIuNTM3NDgiLCBcCi0gICAgICAgICAgIjAuMTQzMTIyLCAwLjU1MTM2OCwgMC44ODIyNzIsIDEuMjk2MDEsIDEuNzA5ODcsIDIuMTIzNjcsIDIuNTM3MjciLCBcCi0gICAgICAgICAgIjAuMTQ5NjY3LCAwLjU1MTE2MywgMC44ODIwNDIsIDEuMjk2MDIsIDEuNzA5ODUsIDIuMTIzNjcsIDIuNTM3MjEiLCBcCi0gICAgICAgICAgIjAuMTU3NjY3LCAwLjU1MjAwMywgMC44ODIyNDMsIDEuMjk1OTksIDEuNzA5NDcsIDIuMTIzNjIsIDIuNTM3MjMiLCBcCi0gICAgICAgICAgIjAuMTcwNzAyLCAwLjU1NjQxNSwgMC44ODIyNzMsIDEuMjk1OTcsIDEuNzA5ODcsIDIuMTIzNiwgMi41MzcyIiwgXAotICAgICAgICAgICIwLjE4MjM3NCwgMC41NjI1NzEsIDAuODg0NzMzLCAxLjI5NjAzLCAxLjcwOTkyLCAyLjEyMzc0LCAyLjUzNzc2Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0MzYyNCwgMC4xNzEyNjgsIDAuMjcyODU3LCAwLjM5OTk3LCAwLjUyNjg5MiwgMC42NTM0NzYsIDAuNzgwODEzIiwgXAotICAgICAgICAgICIwLjA1MTI0NywgMC4xNzg5OTYsIDAuMjgwNjQzLCAwLjQwNzYsIDAuNTM0NDAzLCAwLjY2MTI5OCwgMC43ODgwNTEiLCBcCi0gICAgICAgICAgIjAuMDYwOTU3LCAwLjE4ODUzMywgMC4yOTAzODksIDAuNDE3MzE5LCAwLjU0NDAxMiwgMC42NzA5NzgsIDAuNzk4MDgzIiwgXAotICAgICAgICAgICIwLjA3MDg3MiwgMC4xOTc4NzcsIDAuMjk5NDE1LCAwLjQyNjI4NywgMC41NTMyMTIsIDAuNjgwMTYxLCAwLjgwNzI3NSIsIFwKLSAgICAgICAgICAiMC4wNzk2MywgMC4yMDc3NDQsIDAuMzA5MzQsIDAuNDM1ODUyLCAwLjU2MjczOCwgMC42ODk3ODksIDAuODE2NSIsIFwKLSAgICAgICAgICAiMC4wOTEwNDQsIDAuMjIzMTY2LCAwLjMyNDUzLCAwLjQ1MTM3LCAwLjU3ODEyNywgMC43MDUwMTQsIDAuODMyMjUyIiwgXAotICAgICAgICAgICIwLjA5OTA2NSwgMC4yMzY4OSwgMC4zMzgxMzcsIDAuNDY1MDQzLCAwLjU5MTg0OSwgMC43MTg3NDksIDAuODQ1Mjk4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4MTA5NywgMC4zNDI5NzIsIDAuNTUyNTg4LCAwLjgxNDEsIDEuMDc1NTYsIDEuMzM3NDcsIDEuNTk5MTIiLCBcCi0gICAgICAgICAgIjAuMDgxNDM1LCAwLjM0Mjg1NCwgMC41NTIyMDcsIDAuODEzODQ2LCAxLjA3NTY4LCAxLjMzNzUyLCAxLjU5ODU0IiwgXAotICAgICAgICAgICIwLjA4NjU3MSwgMC4zNDI3NzcsIDAuNTUyNTMsIDAuODEzOTU4LCAxLjA3NjE0LCAxLjMzNzQyLCAxLjU5ODgiLCBcCi0gICAgICAgICAgIjAuMDkzOTAyLCAwLjM0MzY5MywgMC41NTIxNjgsIDAuODE0NCwgMS4wNzU4NCwgMS4zMzcxNiwgMS41OTkwNCIsIFwKLSAgICAgICAgICAiMC4xMDIzODYsIDAuMzQ2MzQxLCAwLjU1MjUwNSwgMC44MTQxOCwgMS4wNzY1MSwgMS4zMzcyNSwgMS41OTk0IiwgXAotICAgICAgICAgICIwLjExNjM2MywgMC4zNTQxMDQsIDAuNTU1NzU3LCAwLjgxNDQ2NCwgMS4wNzYyOSwgMS4zMzc1MSwgMS41OTg5IiwgXAotICAgICAgICAgICIwLjEyNzk2NSwgMC4zNjIzOTQsIDAuNTYwODI0LCAwLjgxNjA3NywgMS4wNzU3MSwgMS4zMzc2MywgMS41OTg1NyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTQ2MTYsIDAuMDE0NjE4LCAwLjAxNDYxNSwgMC4wMTQ2MTMsIDAuMDE0NjEsIDAuMDE0NjEsIDAuMDE0NjA3IiwgXAotICAgICAgICAgICIwLjAxNDU2MSwgMC4wMTQ1ODIsIDAuMDE0NTg0LCAwLjAxNDU4MywgMC4wMTQ1ODIsIDAuMDE0NTgsIDAuMDE0NTgiLCBcCi0gICAgICAgICAgIjAuMDE0NTM3LCAwLjAxNDU3MSwgMC4wMTQ1NzUsIDAuMDE0NTc2LCAwLjAxNDU3NiwgMC4wMTQ1NzIsIDAuMDE0NTY4IiwgXAotICAgICAgICAgICIwLjAxNDU0NiwgMC4wMTQ1NjcsIDAuMDE0NTc0LCAwLjAxNDU3NCwgMC4wMTQ1NzUsIDAuMDE0NTczLCAwLjAxNDU3MSIsIFwKLSAgICAgICAgICAiMC4wMTQ1OSwgMC4wMTQ1ODIsIDAuMDE0NTgyLCAwLjAxNDU4MiwgMC4wMTQ1NzYsIDAuMDE0NTc3LCAwLjAxNDU3NiIsIFwKLSAgICAgICAgICAiMC4wMTQ3MjMsIDAuMDE0NjM1LCAwLjAxNDYxNiwgMC4wMTQ2MDYsIDAuMDE0NiwgMC4wMTQ1OTIsIDAuMDE0NTg2IiwgXAotICAgICAgICAgICIwLjAxNDkwNiwgMC4wMTQ3MDgsIDAuMDE0NjY4LCAwLjAxNDY0MiwgMC4wMTQ2MzEsIDAuMDE0NjIsIDAuMDE0NjEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDM5MTksIDAuMDAzOTE5LCAwLjAwMzkyLCAwLjAwMzkxOSwgMC4wMDM5MTksIDAuMDAzOTE3LCAwLjAwMzkxNiIsIFwKLSAgICAgICAgICAiMC4wMDM4NDUsIDAuMDAzODYxLCAwLjAwMzg2MywgMC4wMDM4NjUsIDAuMDAzODY0LCAwLjAwMzg2NCwgMC4wMDM4NjQiLCBcCi0gICAgICAgICAgIjAuMDAzODE2LCAwLjAwMzg0NSwgMC4wMDM4NTEsIDAuMDAzODUzLCAwLjAwMzg1NCwgMC4wMDM4NTQsIDAuMDAzODU0IiwgXAotICAgICAgICAgICIwLjAwMzgxNywgMC4wMDM4NDMsIDAuMDAzODQ4LCAwLjAwMzg1LCAwLjAwMzg1MSwgMC4wMDM4NTEsIDAuMDAzODUxIiwgXAotICAgICAgICAgICIwLjAwMzg0NywgMC4wMDM4NTEsIDAuMDAzODUzLCAwLjAwMzg1MiwgMC4wMDM4NTMsIDAuMDAzODUyLCAwLjAwMzg1MiIsIFwKLSAgICAgICAgICAiMC4wMDM5NDgsIDAuMDAzODg5LCAwLjAwMzg4MSwgMC4wMDM4NzMsIDAuMDAzODY4LCAwLjAwMzg2NSwgMC4wMDM4NjMiLCBcCi0gICAgICAgICAgIjAuMDA0MDksIDAuMDAzOTUzLCAwLjAwMzkyMywgMC4wMDM5MDUsIDAuMDAzODk1LCAwLjAwMzg4NSwgMC4wMDM4OCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkExIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTM2ODQsIDAuMDEzNjgzLCAwLjAxMzY4MSwgMC4wMTM2NzksIDAuMDEzNjc4LCAwLjAxMzY3NSwgMC4wMTM2NzIiLCBcCi0gICAgICAgICAgIjAuMDEzNjI3LCAwLjAxMzY1LCAwLjAxMzY1MiwgMC4wMTM2NTEsIDAuMDEzNjQ4LCAwLjAxMzY1LCAwLjAxMzY0NiIsIFwKLSAgICAgICAgICAiMC4wMTM2MTUsIDAuMDEzNjM5LCAwLjAxMzY0MiwgMC4wMTM2NDUsIDAuMDEzNjQyLCAwLjAxMzY0MywgMC4wMTM2NCIsIFwKLSAgICAgICAgICAiMC4wMTM2NDIsIDAuMDEzNjQ1LCAwLjAxMzY0NCwgMC4wMTM2NDQsIDAuMDEzNjQ0LCAwLjAxMzY0MiwgMC4wMTM2MzgiLCBcCi0gICAgICAgICAgIjAuMDEzNzA5LCAwLjAxMzY2OSwgMC4wMTM2NTcsIDAuMDEzNjUzLCAwLjAxMzY1LCAwLjAxMzY0NywgMC4wMTM2NDUiLCBcCi0gICAgICAgICAgIjAuMDEzODgyLCAwLjAxMzczMSwgMC4wMTM3LCAwLjAxMzY4NCwgMC4wMTM2NzMsIDAuMDEzNjY3LCAwLjAxMzY1OSIsIFwKLSAgICAgICAgICAiMC4wMTQwOTgsIDAuMDEzODExLCAwLjAxMzc2MywgMC4wMTM3MDksIDAuMDEzNzAzLCAwLjAxMzY5LCAwLjAxMzY4MSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzE0NiwgMC4wMDMxNTQsIDAuMDAzMTU1LCAwLjAwMzE1NSwgMC4wMDMxNTUsIDAuMDAzMTU0LCAwLjAwMzE1MyIsIFwKLSAgICAgICAgICAiMC4wMDMwODUsIDAuMDAzMTM1LCAwLjAwMzE0MywgMC4wMDMxNDcsIDAuMDAzMTQ5LCAwLjAwMzE0OSwgMC4wMDMxNSIsIFwKLSAgICAgICAgICAiMC4wMDMwMzEsIDAuMDAzMTE2LCAwLjAwMzEzLCAwLjAwMzEzOCwgMC4wMDMxNDEsIDAuMDAzMTQ1LCAwLjAwMzE0NiIsIFwKLSAgICAgICAgICAiMC4wMDMwMTQsIDAuMDAzMTA0LCAwLjAwMzEyMSwgMC4wMDMxMzEsIDAuMDAzMTM3LCAwLjAwMzEzOSwgMC4wMDMxNDIiLCBcCi0gICAgICAgICAgIjAuMDAzMDMyLCAwLjAwMzEwNiwgMC4wMDMxMjMsIDAuMDAzMTMyLCAwLjAwMzEzNywgMC4wMDMxNDEsIDAuMDAzMTQyIiwgXAotICAgICAgICAgICIwLjAwMzE0LCAwLjAwMzE0MiwgMC4wMDMxNDYsIDAuMDAzMTQ5LCAwLjAwMzE1LCAwLjAwMzE1MSwgMC4wMDMxNTIiLCBcCi0gICAgICAgICAgIjAuMDAzMjcsIDAuMDAzMTkxLCAwLjAwMzE4MywgMC4wMDMxNzYsIDAuMDAzMTcyLCAwLjAwMzE2OSwgMC4wMDMxNjYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEyNzA5LCAwLjAxMjcxNSwgMC4wMTI3MTQsIDAuMDEyNzEyLCAwLjAxMjcxLCAwLjAxMjcwNywgMC4wMTI3MDUiLCBcCi0gICAgICAgICAgIjAuMDEyNjYsIDAuMDEyNjc5LCAwLjAxMjY4MSwgMC4wMTI2ODEsIDAuMDEyNjgsIDAuMDEyNjc4LCAwLjAxMjY3NSIsIFwKLSAgICAgICAgICAiMC4wMTI3MTMsIDAuMDEyNjg5LCAwLjAxMjY4NiwgMC4wMTI2ODIsIDAuMDEyNjgsIDAuMDEyNjc4LCAwLjAxMjY3NSIsIFwKLSAgICAgICAgICAiMC4wMTI3OCwgMC4wMTI3MDcsIDAuMDEyNjk3LCAwLjAxMjY5LCAwLjAxMjY4MywgMC4wMTI2ODIsIDAuMDEyNjc2IiwgXAotICAgICAgICAgICIwLjAxMjk2OSwgMC4wMTI3NjIsIDAuMDEyNzMxLCAwLjAxMjcxMywgMC4wMTI3MDMsIDAuMDEyNjk1LCAwLjAxMjY4OSIsIFwKLSAgICAgICAgICAiMC4wMTMyNTQsIDAuMDEyODk4LCAwLjAxMjgyNCwgMC4wMTI3NzksIDAuMDEyNzU2LCAwLjAxMjczNiwgMC4wMTI3MjQiLCBcCi0gICAgICAgICAgIjAuMDEzNTg4LCAwLjAxMzA0LCAwLjAxMjkyNCwgMC4wMTI4NTEsIDAuMDEyODEsIDAuMDEyNzgzLCAwLjAxMjc2NSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjI5OCwgMC4wMDIzMjgsIDAuMDAyMzMxLCAwLjAwMjMzMiwgMC4wMDIzMzMsIDAuMDAyMzMzLCAwLjAwMjMzMiIsIFwKLSAgICAgICAgICAiMC4wMDIyNDQsIDAuMDAyMzQ4LCAwLjAwMjM2MywgMC4wMDIzNzEsIDAuMDAyMzc1LCAwLjAwMjM3NywgMC4wMDIzNzkiLCBcCi0gICAgICAgICAgIjAuMDAyMTczLCAwLjAwMjMyNCwgMC4wMDIzNSwgMC4wMDIzNjQsIDAuMDAyMzcxLCAwLjAwMjM3NiwgMC4wMDIzNzgiLCBcCi0gICAgICAgICAgIjAuMDAyMTQyLCAwLjAwMjMwNSwgMC4wMDIzMzcsIDAuMDAyMzU2LCAwLjAwMjM2NiwgMC4wMDIzNzIsIDAuMDAyMzc2IiwgXAotICAgICAgICAgICIwLjAwMjE1NSwgMC4wMDIzMDIsIDAuMDAyMzM0LCAwLjAwMjM1MywgMC4wMDIzNjQsIDAuMDAyMzcsIDAuMDAyMzc1IiwgXAotICAgICAgICAgICIwLjAwMjI0NCwgMC4wMDIzMjIsIDAuMDAyMzQ4LCAwLjAwMjM2NCwgMC4wMDIzNzIsIDAuMDAyMzc3LCAwLjAwMjM4MSIsIFwKLSAgICAgICAgICAiMC4wMDIzNzIsIDAuMDAyMzY2LCAwLjAwMjM3OSwgMC4wMDIzODgsIDAuMDAyMzkyLCAwLjAwMjM5NCwgMC4wMDIzOTciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA5OTIsIDAuMDA5OTQzLCAwLjAwOTk0NSwgMC4wMDk5NDcsIDAuMDA5OTQ3LCAwLjAwOTk0NywgMC4wMDk5NDgiLCBcCi0gICAgICAgICAgIjAuMDA5ODYxLCAwLjAwOTk0NSwgMC4wMDk5NTcsIDAuMDA5OTYzLCAwLjAwOTk2NiwgMC4wMDk5NjgsIDAuMDA5OTY5IiwgXAotICAgICAgICAgICIwLjAwOTgxOSwgMC4wMDk5MjUsIDAuMDA5OTQ2LCAwLjAwOTk1NiwgMC4wMDk5NjEsIDAuMDA5OTYzLCAwLjAwOTk2NyIsIFwKLSAgICAgICAgICAiMC4wMDk4MywgMC4wMDk5MTksIDAuMDA5OTM5LCAwLjAwOTk1MywgMC4wMDk5NTgsIDAuMDA5OTYyLCAwLjAwOTk2NiIsIFwKLSAgICAgICAgICAiMC4wMDk4ODQsIDAuMDA5OTI5LCAwLjAwOTk0NywgMC4wMDk5NTUsIDAuMDA5OTYzLCAwLjAwOTk2NCwgMC4wMDk5NjYiLCBcCi0gICAgICAgICAgIjAuMDEwMDQ5LCAwLjAwOTk4LCAwLjAwOTk3OSwgMC4wMDk5NzYsIDAuMDA5OTgsIDAuMDA5OTc5LCAwLjAwOTk4MSIsIFwKLSAgICAgICAgICAiMC4wMTAyNTEsIDAuMDEwMDUyLCAwLjAxMDAzMywgMC4wMTAwMTMsIDAuMDEwMDA3LCAwLjAxMDAwNCwgMC4wMTAwMDEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDM5MTYsIDAuMDAzOTE4LCAwLjAwMzkxOCwgMC4wMDM5MTgsIDAuMDAzOTE2LCAwLjAwMzkxNiwgMC4wMDM5MTYiLCBcCi0gICAgICAgICAgIjAuMDAzODY4LCAwLjAwMzg2MywgMC4wMDM4NjYsIDAuMDAzODY2LCAwLjAwMzg2NSwgMC4wMDM4NjQsIDAuMDAzODY0IiwgXAotICAgICAgICAgICIwLjAwMzkxNywgMC4wMDM4OCwgMC4wMDM4NzIsIDAuMDAzODY4LCAwLjAwMzg2OCwgMC4wMDM4NjUsIDAuMDAzODY0IiwgXAotICAgICAgICAgICIwLjAwNDAyNywgMC4wMDM5MzgsIDAuMDAzOTExLCAwLjAwMzg5NCwgMC4wMDM4ODUsIDAuMDAzODc5LCAwLjAwMzg3NSIsIFwKLSAgICAgICAgICAiMC4wMDQxMzcsIDAuMDAzOTgxLCAwLjAwMzk0LCAwLjAwMzkxOSwgMC4wMDM5MTIsIDAuMDAzOSwgMC4wMDM4OTMiLCBcCi0gICAgICAgICAgIjAuMDA0NDIyLCAwLjAwNDEzMiwgMC4wMDQwNDYsIDAuMDAzOTk5LCAwLjAwMzk2OCwgMC4wMDM5NDgsIDAuMDAzOTMxIiwgXAotICAgICAgICAgICIwLjAwNDc0NywgMC4wMDQyNjgsIDAuMDA0MTQ5LCAwLjAwNDA3LCAwLjAwNDAzMiwgMC4wMDQwMDIsIDAuMDAzOTc5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwODk5OCwgMC4wMDkwMiwgMC4wMDkwMjUsIDAuMDA5MDIxLCAwLjAwOTAyNSwgMC4wMDkwMjYsIDAuMDA5MDI2IiwgXAotICAgICAgICAgICIwLjAwODk0MSwgMC4wMDkwMjMsIDAuMDA5MDM1LCAwLjAwOTA0MSwgMC4wMDkwNDQsIDAuMDA5MDQ1LCAwLjAwOTA0OCIsIFwKLSAgICAgICAgICAiMC4wMDg5MTcsIDAuMDA5MDA5LCAwLjAwOTAyNywgMC4wMDkwMzYsIDAuMDA5MDQxLCAwLjAwOTA0NCwgMC4wMDkwNDYiLCBcCi0gICAgICAgICAgIjAuMDA4OTQ5LCAwLjAwODk5MywgMC4wMDkwMjYsIDAuMDA5MDM2LCAwLjAwOTA0MSwgMC4wMDkwNDUsIDAuMDA5MDQ3IiwgXAotICAgICAgICAgICIwLjAwOTAzMywgMC4wMDkwMjYsIDAuMDA5MDM1LCAwLjAwOTA0MywgMC4wMDkwNDcsIDAuMDA5MDQ4LCAwLjAwOTA1MSIsIFwKLSAgICAgICAgICAiMC4wMDkyMzIsIDAuMDA5MDg1LCAwLjAwOTA3NiwgMC4wMDkwNywgMC4wMDkwNjcsIDAuMDA5MDY1LCAwLjAwOTA2NSIsIFwKLSAgICAgICAgICAiMC4wMDk0NTksIDAuMDA5MTY3LCAwLjAwOTEyOCwgMC4wMDkxMSwgMC4wMDkwOTYsIDAuMDA5MDg5LCAwLjAwOTA4NCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzIyMiwgMC4wMDMyMzIsIDAuMDAzMjMyLCAwLjAwMzIzMywgMC4wMDMyMzIsIDAuMDAzMjMyLCAwLjAwMzIzMiIsIFwKLSAgICAgICAgICAiMC4wMDMxOSwgMC4wMDMyMjUsIDAuMDAzMjI5LCAwLjAwMzIyOCwgMC4wMDMyMywgMC4wMDMyMywgMC4wMDMyMyIsIFwKLSAgICAgICAgICAiMC4wMDMyMzIsIDAuMDAzMjM3LCAwLjAwMzIzOSwgMC4wMDMyMzYsIDAuMDAzMjM3LCAwLjAwMzIzNiwgMC4wMDMyMzUiLCBcCi0gICAgICAgICAgIjAuMDAzMzMyLCAwLjAwMzI3LCAwLjAwMzI1NCwgMC4wMDMyNSwgMC4wMDMyNDQsIDAuMDAzMjQyLCAwLjAwMzI0IiwgXAotICAgICAgICAgICIwLjAwMzQ3OCwgMC4wMDMzMjUsIDAuMDAzMzAxLCAwLjAwMzI4MywgMC4wMDMyNjgsIDAuMDAzMjU4LCAwLjAwMzI1NCIsIFwKLSAgICAgICAgICAiMC4wMDM3MDcsIDAuMDAzNDkzLCAwLjAwMzQxNSwgMC4wMDMzNzQsIDAuMDAzMzQzLCAwLjAwMzMyNCwgMC4wMDMzMDkiLCBcCi0gICAgICAgICAgIjAuMDA0MDI1LCAwLjAwMzYzNCwgMC4wMDM1MjIsIDAuMDAzNDU3LCAwLjAwMzQxMiwgMC4wMDMzODEsIDAuMDAzMzU4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjIiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwODA1NSwgMC4wMDgwODcsIDAuMDA4MDksIDAuMDA4MDkyLCAwLjAwODA5NiwgMC4wMDgwOTEsIDAuMDA4MDk2IiwgXAotICAgICAgICAgICIwLjAwODAyLCAwLjAwODA5LCAwLjAwODEwMiwgMC4wMDgxMDQsIDAuMDA4MTEyLCAwLjAwODExMywgMC4wMDgxMTMiLCBcCi0gICAgICAgICAgIjAuMDA4MDc4LCAwLjAwODA5OCwgMC4wMDgxMDcsIDAuMDA4MTEyLCAwLjAwODExNCwgMC4wMDgxMTcsIDAuMDA4MTE2IiwgXAotICAgICAgICAgICIwLjAwODEzOCwgMC4wMDgxMDYsIDAuMDA4MTE0LCAwLjAwODExNiwgMC4wMDgxMTgsIDAuMDA4MTIsIDAuMDA4MTE5IiwgXAotICAgICAgICAgICIwLjAwODMzOCwgMC4wMDgxODQsIDAuMDA4MTQ2LCAwLjAwODEzOSwgMC4wMDgxMzUsIDAuMDA4MTMzLCAwLjAwODEzMSIsIFwKLSAgICAgICAgICAiMC4wMDg2NTMsIDAuMDA4MjksIDAuMDA4MjMyLCAwLjAwODE5OCwgMC4wMDgxOCwgMC4wMDgxNzEsIDAuMDA4MTYzIiwgXAotICAgICAgICAgICIwLjAwOSwgMC4wMDg0MjYsIDAuMDA4MzI2LCAwLjAwODI2NiwgMC4wMDgyMzQsIDAuMDA4MjEzLCAwLjAwODE5OSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjUxMywgMC4wMDI1NDIsIDAuMDAyNTQ2LCAwLjAwMjU0OCwgMC4wMDI1NDksIDAuMDAyNTQ5LCAwLjAwMjU0OSIsIFwKLSAgICAgICAgICAiMC4wMDI1MDUsIDAuMDAyNTc0LCAwLjAwMjU4NSwgMC4wMDI1ODksIDAuMDAyNTkyLCAwLjAwMjU5NCwgMC4wMDI1OTQiLCBcCi0gICAgICAgICAgIjAuMDAyNTI5LCAwLjAwMjU5MiwgMC4wMDI1OTQsIDAuMDAyNTk5LCAwLjAwMjYwMSwgMC4wMDI2MDIsIDAuMDAyNjAzIiwgXAotICAgICAgICAgICIwLjAwMjYwMywgMC4wMDI2MzUsIDAuMDAyNjI3LCAwLjAwMjYyMywgMC4wMDI2MiwgMC4wMDI2MTgsIDAuMDAyNjE2IiwgXAotICAgICAgICAgICIwLjAwMjcxMiwgMC4wMDI2NjIsIDAuMDAyNjU1LCAwLjAwMjY1MSwgMC4wMDI2NDMsIDAuMDAyNjM3LCAwLjAwMjYzMyIsIFwKLSAgICAgICAgICAiMC4wMDI5NzMsIDAuMDAyNzkyLCAwLjAwMjc0OSwgMC4wMDI3MTMsIDAuMDAyNjkyLCAwLjAwMjY3OSwgMC4wMDI2NjgiLCBcCi0gICAgICAgICAgIjAuMDAzMjc1LCAwLjAwMjkwOSwgMC4wMDI4MjcsIDAuMDAyNzg2LCAwLjAwMjc1MiwgMC4wMDI3MjcsIDAuMDAyNzExIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogT0FJMzNYTCAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChPQUkzM1hMKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMzQwOTQ4OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjc4OTA4OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDY3NzkxNTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2Nzg5MDg7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjk3LCAwLjAwMDI5NiwgMC4wMDAyOTYsIDAuMDAwMjk2LCAwLjAwMDI5NiwgMC4wMDAyOTYsIDAuMDAwMjk2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzAxLCAwLjAwMDI5OSwgMC4wMDAyOTgsIDAuMDAwMjk4LCAwLjAwMDI5OCwgMC4wMDAyOTgsIDAuMDAwMjk4Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihBMSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNzMxMzU1OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDczMDU5NTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA3MzEzNTU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjk3LCAwLjAwMDI5NiwgMC4wMDAyOTYsIDAuMDAwMjk2LCAwLjAwMDI5NiwgMC4wMDAyOTYsIDAuMDAwMjk2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzAxLCAwLjAwMDI5OCwgMC4wMDAyOTgsIDAuMDAwMjk3LCAwLjAwMDI5NywgMC4wMDAyOTcsIDAuMDAwMjk3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihBMikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjc0NjEzOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDY3NDYxMzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2NzM0MzQ7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjk3LCAwLjAwMDI5NywgMC4wMDAyOTYsIDAuMDAwMjk2LCAwLjAwMDI5NiwgMC4wMDAyOTYsIDAuMDAwMjk2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzAxLCAwLjAwMDI5OCwgMC4wMDAyOTcsIDAuMDAwMjk3LCAwLjAwMDI5NywgMC4wMDAyOTcsIDAuMDAwMjk3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNzI4MjM0OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDcyNjA5NTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA3MjgyMzQ7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwOTg1LCAwLjAwMDk4NiwgMC4wMDA5ODYsIDAuMDAwOTg2LCAwLjAwMDk4NiwgMC4wMDA5ODYsIDAuMDAwOTg2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzM3LCAwLjAwMDMzOCwgMC4wMDAzMzcsIDAuMDAwMzM3LCAwLjAwMDMzOCwgMC4wMDAzMzgsIDAuMDAwMzM4Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCMSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNzIwMjkxOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDcxODY7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNzIwMjkxOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDk4NSwgMC4wMDA5ODYsIDAuMDAwOTg1LCAwLjAwMDk4NSwgMC4wMDA5ODYsIDAuMDAwOTg1LCAwLjAwMDk4NSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDMzNywgMC4wMDAzMzcsIDAuMDAwMzM3LCAwLjAwMDMzNywgMC4wMDAzMzcsIDAuMDAwMzM3LCAwLjAwMDMzNyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQjIpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY3MTc3NDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2NzE3NzQ7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjcxNTQyOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDk4NiwgMC4wMDA5ODYsIDAuMDAwOTg1LCAwLjAwMDk4NiwgMC4wMDA5ODYsIDAuMDAwOTg1LCAwLjAwMDk4NSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDMzNywgMC4wMDAzMzcsIDAuMDAwMzM3LCAwLjAwMDMzNywgMC4wMDAzMzcsIDAuMDAwMzM3LCAwLjAwMDMzNyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjA3MjM4NjQ7Ci0gICAgZnVuY3Rpb24gOiAiKCEoKChCMCtCMSkrQjIpICgoQTArQTEpK0EyKSkpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTgxMzU5LCAwLjIwOTA1MywgMC40NTY5ODEsIDAuODY4NzczLCAxLjI4MDc1LCAyLjI0Mjk1LCAyLjc5MDk2IiwgXAotICAgICAgICAgICIwLjE4NjM5NywgMC4yMTQwNjYsIDAuNDYxOTM2LCAwLjg3Mzg3OCwgMS4yODU2LCAyLjI0NjY3LCAyLjc5NTAxIiwgXAotICAgICAgICAgICIwLjE5MTI5NywgMC4yMTkwMTUsIDAuNDY2OTg3LCAwLjg3ODkzOCwgMS4yOTA4NiwgMi4yNTI5MiwgMi44MDA2NCIsIFwKLSAgICAgICAgICAiMC4xOTU5MjIsIDAuMjIzNjkxLCAwLjQ3MTYyLCAwLjg4MzQ1NywgMS4yOTUyNCwgMi4yNTc3NSwgMi44MDU0NSIsIFwKLSAgICAgICAgICAiMC4yMDA3NTYsIDAuMjI4NDU1LCAwLjQ3NjMyLCAwLjg4ODE1NSwgMS4yOTk5MiwgMi4yNjA5NSwgMi44MTAyIiwgXAotICAgICAgICAgICIwLjIwODQ2MywgMC4yMzYwMDYsIDAuNDgzODQ4LCAwLjg5NTYzLCAxLjMwNzI1LCAyLjI2ODg0LCAyLjgxNTk0IiwgXAotICAgICAgICAgICIwLjIxNTE4NywgMC4yNDI5MDcsIDAuNDkwNjcsIDAuOTAyMzc1LCAxLjMxNDA3LCAyLjI3NjQsIDIuODIyNzciKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzY4NjQ4LCAwLjQyNjg2NCwgMC45NTA1NzQsIDEuODIzMTksIDIuNjk1NTUsIDQuNzMwOSwgNS44OTI0NCIsIFwKLSAgICAgICAgICAiMC4zNjg2MDcsIDAuNDI2ODc1LCAwLjk1MDYyNCwgMS44MjMyNywgMi42OTUyOCwgNC43MzAzLCA1Ljg5MzU1IiwgXAotICAgICAgICAgICIwLjM2ODY0NiwgMC40MjY3OTQsIDAuOTUwNjQzLCAxLjgyMzMzLCAyLjY5NTUzLCA0LjczMDY0LCA1Ljg5MjM3IiwgXAotICAgICAgICAgICIwLjM2OTQwMSwgMC40MjcyNTIsIDAuOTUwNTM5LCAxLjgyMzIsIDIuNjk1NjQsIDQuNzMwNDksIDUuODkyMjIiLCBcCi0gICAgICAgICAgIjAuMzcxMDY1LCAwLjQyODU3NCwgMC45NTA1NzgsIDEuODIzMTgsIDIuNjk1NjYsIDQuNzMwNjksIDUuODkyMjMiLCBcCi0gICAgICAgICAgIjAuMzc0NzQsIDAuNDMxODE1LCAwLjk1MDk1MiwgMS44MjMxNywgMi42OTUyMywgNC43MzAyMywgNS44OTI0NSIsIFwKLSAgICAgICAgICAiMC4zNzksIDAuNDM1NjE0LCAwLjk1MjA5OCwgMS44MjMxMywgMi42OTU2LCA0LjczMDg3LCA1Ljg5MzA3Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExOTcyOSwgMC4xMzcwMTQsIDAuMjkyNDQzLCAwLjU1MDczNywgMC44MDkyNjcsIDEuNDEyNTYsIDEuNzU1ODUiLCBcCi0gICAgICAgICAgIjAuMTI3MTkxLCAwLjE0NDU2OSwgMC4yOTk4NTksIDAuNTU4MDI4LCAwLjgxNjA4NywgMS40MTg0MSwgMS43NjI5OCIsIFwKLSAgICAgICAgICAiMC4xMzUyODQsIDAuMTUyNjM3LCAwLjMwNzkwNywgMC41NjY2MTEsIDAuODI1MTAzLCAxLjQyODA2LCAxLjc3MTQ2IiwgXAotICAgICAgICAgICIwLjE0MzEyNSwgMC4xNjA0MjgsIDAuMzE1OTA1LCAwLjU3NDE1OCwgMC44MzI3OTYsIDEuNDM1NTUsIDEuNzc5NTQiLCBcCi0gICAgICAgICAgIjAuMTUwOTcsIDAuMTY4MjIyLCAwLjMyMzc4NiwgMC41ODIxMzgsIDAuODQwNDI1LCAxLjQ0MjU0LCAxLjc4NzI3IiwgXAotICAgICAgICAgICIwLjE2MzQ5OSwgMC4xODA2OTQsIDAuMzM2MTcsIDAuNTk0NDgyLCAwLjg1MjgyOCwgMS40NTUwNywgMS43OTkyMyIsIFwKLSAgICAgICAgICAiMC4xNzQyMzQsIDAuMTkxNDg4LCAwLjM0NzA0NiwgMC42MDU5NTQsIDAuODY0NDE4LCAxLjQ2NjUxLCAxLjgxMDQ4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIxNjIxNywgMC4yNTE5NDMsIDAuNTcxODE2LCAxLjEwNDMxLCAxLjYzNjkxLCAyLjg4MDAyLCAzLjU4ODc3IiwgXAotICAgICAgICAgICIwLjIxNjMyNywgMC4yNTE4MTIsIDAuNTcxNjkyLCAxLjEwNDQ1LCAxLjYzNjQ3LCAyLjg3ODc3LCAzLjU5MDQ0IiwgXAotICAgICAgICAgICIwLjIxNjUwNiwgMC4yNTE4OTcsIDAuNTcxNiwgMS4xMDQ1LCAxLjYzNzA2LCAyLjg3OTk2LCAzLjU4ODcyIiwgXAotICAgICAgICAgICIwLjIxODEyOSwgMC4yNTMxMDEsIDAuNTcxNjk5LCAxLjEwNDUxLCAxLjYzNzAyLCAyLjg3OTY3LCAzLjU4OTkiLCBcCi0gICAgICAgICAgIjAuMjIxMTU5LCAwLjI1NTY2MSwgMC41NzE3MjIsIDEuMTA0NDUsIDEuNjM3NTEsIDIuODc4OTEsIDMuNTkwNzgiLCBcCi0gICAgICAgICAgIjAuMjI4MTY3LCAwLjI2MTc4NCwgMC41NzM2OTYsIDEuMTA0NDIsIDEuNjM2NzksIDIuODc5MiwgMy41ODg4OSIsIFwKLSAgICAgICAgICAiMC4yMzUwMDIsIDAuMjY4MjQ0LCAwLjU3Njc0OSwgMS4xMDQzNiwgMS42MzY4NiwgMi44NzkxMywgMy41ODg4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkExIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNzk0MTEsIDAuMjA3MTAxLCAwLjQ1NTAyOCwgMC44NjY4MjMsIDEuMjc5MjUsIDIuMjQwOTEsIDIuNzg5MDkiLCBcCi0gICAgICAgICAgIjAuMTg1NDIzLCAwLjIxMzE2LCAwLjQ2MDk5NywgMC44NzI5MTgsIDEuMjg0NjIsIDIuMjQ1NjksIDIuNzk0MTIiLCBcCi0gICAgICAgICAgIjAuMTkyNTMxLCAwLjIyMDI1OSwgMC40NjgyMTUsIDAuODgwMjE0LCAxLjI5MjQxLCAyLjI1Mzg2LCAyLjgwMTgzIiwgXAotICAgICAgICAgICIwLjE5OTgyNiwgMC4yMjc0NzQsIDAuNDc1NDU4LCAwLjg4NzI4NSwgMS4yOTkwOSwgMi4yNjA1OCwgMi44MDc4MSIsIFwKLSAgICAgICAgICAiMC4yMDcxNDUsIDAuMjM0NzgsIDAuNDgyODEsIDAuODk0NDkyLCAxLjMwNjg4LCAyLjI2ODE1LCAyLjgxNDcyIiwgXAotICAgICAgICAgICIwLjIxOTMwNywgMC4yNDY1MjQsIDAuNDk0Njc0LCAwLjkwNjQ0LCAxLjMxODYzLCAyLjI3Nzk2LCAyLjgyNjkyIiwgXAotICAgICAgICAgICIwLjIyOTQ1MywgMC4yNTcwNTksIDAuNTA0ODQ1LCAwLjkxNjQ3NSwgMS4zMjgzMywgMi4yOTA4MywgMi44MzY3MSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zNjg2MDQsIDAuNDI2ODY3LCAwLjk1MDYwMSwgMS44MjMyMSwgMi42OTU2MiwgNC43MzA4NCwgNS44OTIwNCIsIFwKLSAgICAgICAgICAiMC4zNjg2NCwgMC40MjY4NzEsIDAuOTUwNTgxLCAxLjgyMzI3LCAyLjY5NTEzLCA0LjcyOTk1LCA1Ljg5Mjc4IiwgXAotICAgICAgICAgICIwLjM2ODYwOCwgMC40MjY4NzcsIDAuOTUwNDU5LCAxLjgyMzI1LCAyLjY5NTE4LCA0LjczMTA3LCA1Ljg5MjQzIiwgXAotICAgICAgICAgICIwLjM2OTY1NiwgMC40MjcyNzQsIDAuOTUwNTU2LCAxLjgyMzE4LCAyLjY5NTI0LCA0LjczMDA2LCA1Ljg5MjE5IiwgXAotICAgICAgICAgICIwLjM3MTgxMiwgMC40Mjg5MjEsIDAuOTUwNTcsIDEuODIzMTYsIDIuNjk1NjksIDQuNzMwMzUsIDUuODkyMjQiLCBcCi0gICAgICAgICAgIjAuMzc3MjQ5LCAwLjQzMzQwMywgMC45NTA3NTQsIDEuODIzMTYsIDIuNjk1NzIsIDQuNzMwMTksIDUuODkxOTUiLCBcCi0gICAgICAgICAgIjAuMzgzMzUxLCAwLjQzODk2NSwgMC45NTE4ODUsIDEuODIzMTcsIDIuNjk1NzgsIDQuNzMwODksIDUuODkyMzQiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTE3MTIyLCAwLjEzNDM5LCAwLjI4OTYzMywgMC41NDc3NzIsIDAuODA2MzA0LCAxLjQwOTIyLCAxLjc1MjkyIiwgXAotICAgICAgICAgICIwLjEyNDY1OSwgMC4xNDE5OTMsIDAuMjk3MzE4LCAwLjU1NTM2NywgMC44MTM5MDUsIDEuNDE2NDgsIDEuNzU5ODkiLCBcCi0gICAgICAgICAgIjAuMTMyNzQsIDAuMTUwMDQ0LCAwLjMwNTI2LCAwLjU2MzYzNCwgMC44MjIyNTcsIDEuNDI0NjQsIDEuNzY5NTQiLCBcCi0gICAgICAgICAgIjAuMTQwNTcsIDAuMTU3ODM0LCAwLjMxMzIzNSwgMC41NzE0OCwgMC44Mjk5NTIsIDEuNDMyOTYsIDEuNzc2MTIiLCBcCi0gICAgICAgICAgIjAuMTQ4Mjc1LCAwLjE2NTU5NiwgMC4zMjEwNDUsIDAuNTc5MzM2LCAwLjgzNzYxNSwgMS40NDA1NCwgMS43ODQ0OCIsIFwKLSAgICAgICAgICAiMC4xNjA2MjIsIDAuMTc4MDM2LCAwLjMzMzI4NCwgMC41OTE3NzYsIDAuODUwMTUxLCAxLjQ1MjQ1LCAxLjc5ODA3IiwgXAotICAgICAgICAgICIwLjE3MTUwOSwgMC4xODg3MDgsIDAuMzQ0MjIsIDAuNjAyNzgxLCAwLjg2MTA0MSwgMS40NjM0MSwgMS44MDczOSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMTI3NjksIDAuMjQ4NDk0LCAwLjU2ODAzMSwgMS4xMDEwNSwgMS42MzMyNCwgMi44NzYwNywgMy41ODUxOCIsIFwKLSAgICAgICAgICAiMC4yMTI4NTQsIDAuMjQ4MzU0LCAwLjU2ODIyLCAxLjEwMTAzLCAxLjYzMzIzLCAyLjg3NTYyLCAzLjU4NTQzIiwgXAotICAgICAgICAgICIwLjIxMzAzNiwgMC4yNDg0MywgMC41Njg0MjUsIDEuMTAwNDUsIDEuNjMzNDYsIDIuODc1MzEsIDMuNTg2MTQiLCBcCi0gICAgICAgICAgIjAuMjE0NzY0LCAwLjI0OTY0LCAwLjU2ODA1NywgMS4xMDEwNCwgMS42MzM1LCAyLjg3NjA0LCAzLjU4Nzg3IiwgXAotICAgICAgICAgICIwLjIxNzcwNSwgMC4yNTIyMTUsIDAuNTY4MjA2LCAxLjEwMDg1LCAxLjYzMzM3LCAyLjg3NTYzLCAzLjU4NzI1IiwgXAotICAgICAgICAgICIwLjIyNDY5NywgMC4yNTg1NDUsIDAuNTcwMTU0LCAxLjEwMDk0LCAxLjYzMzcsIDIuODc2NjQsIDMuNTg3NjIiLCBcCi0gICAgICAgICAgIjAuMjMyMDE1LCAwLjI2NTA5OSwgMC41NzMzMTQsIDEuMTAwNzYsIDEuNjMzMjcsIDIuODc1NTMsIDMuNTg1MTQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTIiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE3NDIyNSwgMC4yMDE5MjIsIDAuNDQ5Nzk2LCAwLjg2MTcwOCwgMS4yNzM1OSwgMi4yMzUwOCwgMi43ODE1OSIsIFwKLSAgICAgICAgICAiMC4xODEwMzYsIDAuMjA4NzU0LCAwLjQ1NjY2MywgMC44Njg1MTIsIDEuMjgwNDgsIDIuMjQsIDIuNzg5MjQiLCBcCi0gICAgICAgICAgIjAuMTg5Mzk0LCAwLjIxNzQ5NCwgMC40NjUzNjMsIDAuODc3MjkyLCAxLjI4OTUyLCAyLjI1MTU2LCAyLjc5ODg3IiwgXAotICAgICAgICAgICIwLjE5ODg3NSwgMC4yMjY1OTksIDAuNDc0MzQ1LCAwLjg4NjE1NCwgMS4yOTg1NSwgMi4yNTk3NiwgMi44MDgiLCBcCi0gICAgICAgICAgIjAuMjA3NzIyLCAwLjIzNTI5OSwgMC40ODI3ODIsIDAuODk0NDEsIDEuMzA2MTEsIDIuMjY3ODksIDIuODE1MTQiLCBcCi0gICAgICAgICAgIjAuMjIyMzc4LCAwLjI0OTk3OSwgMC40OTcxMDgsIDAuOTA4NTM1LCAxLjMyMDE1LCAyLjI4MTk0LCAyLjgyODc2IiwgXAotICAgICAgICAgICIwLjIzNTMyNCwgMC4yNjI3OTMsIDAuNTA5NjUxLCAwLjkyMDk1MiwgMS4zMzI0MiwgMi4yOTMwMSwgMi44NDA4MyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zNjg2MTIsIDAuNDI2ODE5LCAwLjk1MDU5MywgMS44MjMyNiwgMi42OTU1MiwgNC43MzAwOCwgNS44OTE3MSIsIFwKLSAgICAgICAgICAiMC4zNjg1OTEsIDAuNDI2ODc0LCAwLjk1MDU5NSwgMS44MjMyMiwgMi42OTU2OCwgNC43MzAwMSwgNS44OTMyIiwgXAotICAgICAgICAgICIwLjM2ODYyNSwgMC40MjY4MTYsIDAuOTUwNjMzLCAxLjgyMzMyLCAyLjY5NTIzLCA0LjczMTAxLCA1Ljg5MjQ4IiwgXAotICAgICAgICAgICIwLjM2OTYyMiwgMC40MjcyMzcsIDAuOTUwNTQxLCAxLjgyMzIzLCAyLjY5NTcyLCA0LjczMDcsIDUuODkzMzEiLCBcCi0gICAgICAgICAgIjAuMzcyOTA4LCAwLjQyOTU1OCwgMC45NTA1MzQsIDEuODIzMTcsIDIuNjk1NTEsIDQuNzMwOTIsIDUuODkzMTgiLCBcCi0gICAgICAgICAgIjAuMzgwNDcsIDAuNDM2MDIzLCAwLjk1MDUzMiwgMS44MjMxOCwgMi42OTUwMiwgNC43MzA1MywgNS44OTE5NyIsIFwKLSAgICAgICAgICAiMC4zODg5MzIsIDAuNDQzNDIsIDAuOTUyMDIyLCAxLjgyMjk3LCAyLjY5NTI4LCA0LjczMDMsIDUuODkyMzQiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTEzNzg5LCAwLjEzMTAzOCwgMC4yODYyODYsIDAuNTQ0NDUsIDAuODAyODkyLCAxLjQwNTQ4LCAxLjc0ODg4IiwgXAotICAgICAgICAgICIwLjEyMTQwNiwgMC4xMzg3NSwgMC4yOTM5ODksIDAuNTUxOTk2LCAwLjgxMDYyMSwgMS40MTMxLCAxLjc1NzYxIiwgXAotICAgICAgICAgICIwLjEyOTQ2NCwgMC4xNDY4MDIsIDAuMzAyMDMzLCAwLjU2MDM4LCAwLjgxODc1NCwgMS40MjEyNCwgMS43NjU0NCIsIFwKLSAgICAgICAgICAiMC4xMzcyNjYsIDAuMTU0NTM3LCAwLjMwOTk3MiwgMC41NjgyMTYsIDAuODI2NjY3LCAxLjQyOTY0LCAxLjc3Mjc5IiwgXAotICAgICAgICAgICIwLjE0NDk1LCAwLjE2MjIyNCwgMC4zMTc2NTksIDAuNTc2MTMzLCAwLjgzNDIwNSwgMS40Mzc3NywgMS43ODA1OSIsIFwKLSAgICAgICAgICAiMC4xNTczNTgsIDAuMTc0Njk3LCAwLjMzMDE1MiwgMC41ODg1MDQsIDAuODQ2ODQyLCAxLjQ0OTA3LCAxLjc5MzYzIiwgXAotICAgICAgICAgICIwLjE2ODIxNSwgMC4xODU2MTIsIDAuMzQxMDI0LCAwLjU5OTgzMSwgMC44NTgwOTksIDEuNDYwNDYsIDEuODA0NDUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjA4NTM3LCAwLjI0NDIwOCwgMC41NjM4NSwgMS4wOTYyNCwgMS42Mjg5OSwgMi44NzExOSwgMy41ODAzOSIsIFwKLSAgICAgICAgICAiMC4yMDg2MjIsIDAuMjQ0MTIxLCAwLjU2NDAzMiwgMS4wOTYzLCAxLjYyODk5LCAyLjg3MDkyLCAzLjU4MTAxIiwgXAotICAgICAgICAgICIwLjIwODc4NiwgMC4yNDQwOTYsIDAuNTY0MTYyLCAxLjA5NjE0LCAxLjYyODY0LCAyLjg3MDQxLCAzLjU4MDE2IiwgXAotICAgICAgICAgICIwLjIxMDU5MywgMC4yNDU0MjMsIDAuNTYzODIsIDEuMDk2NDQsIDEuNjI4ODYsIDIuODcxMzcsIDMuNTgzMDUiLCBcCi0gICAgICAgICAgIjAuMjEzNzE5LCAwLjI0ODEwMSwgMC41NjM3NTUsIDEuMDk2MzcsIDEuNjI4NDUsIDIuODcxNSwgMy41ODAzNCIsIFwKLSAgICAgICAgICAiMC4yMjA3OTUsIDAuMjU0NDg1LCAwLjU2NTc0NywgMS4wOTYzNCwgMS42MjgzNiwgMi44NzA2NCwgMy41ODAxMyIsIFwKLSAgICAgICAgICAiMC4yMjgwNDcsIDAuMjYxMjE4LCAwLjU2ODkxNSwgMS4wOTYyNiwgMS42Mjg2MSwgMi44NzA3MywgMy41ODAzNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTY0ODU3LCAwLjE5MjU1LCAwLjQ0MDg1MSwgMC44NTM1NDcsIDEuMjY1MzcsIDIuMjI1MjIsIDIuNzczNDgiLCBcCi0gICAgICAgICAgIjAuMTY5OTkxLCAwLjE5NzY5LCAwLjQ0NTk4NSwgMC44NTg4MjgsIDEuMjcwNTcsIDIuMjMwNDYsIDIuNzc4ODMiLCBcCi0gICAgICAgICAgIjAuMTc0ODU4LCAwLjIwMjU4NiwgMC40NTEwMDMsIDAuODYzODczLCAxLjI3NTU4LCAyLjIzNTQ5LCAyLjc4Mzc4IiwgXAotICAgICAgICAgICIwLjE3OTUwOCwgMC4yMDcyMjgsIDAuNDU1NjAxLCAwLjg2ODQ1MiwgMS4yODAyNCwgMi4yNDAxNywgMi43ODg0OCIsIFwKLSAgICAgICAgICAiMC4xODQyODksIDAuMjExOTEsIDAuNDYwMjk2LCAwLjg3MzE0NywgMS4yODUwNCwgMi4yNDQ3NCwgMi43OTMyOCIsIFwKLSAgICAgICAgICAiMC4xOTE5NjEsIDAuMjE5NDE3LCAwLjQ2NzgzNiwgMC44ODA2MzQsIDEuMjkyNCwgMi4yNTIxLCAyLjgwMDU2IiwgXAotICAgICAgICAgICIwLjE5ODYyNCwgMC4yMjYzMTEsIDAuNDc0NDQ0LCAwLjg4NzM3MSwgMS4yOTg5OCwgMi4yNTg3MiwgMi44MDY5NiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zNDk0NjQsIDAuNDA3NTAyLCAwLjkzMDQ1NiwgMS44MDE1NSwgMi42NzM1OSwgNC43MDg3MiwgNS44NzExNSIsIFwKLSAgICAgICAgICAiMC4zNDk1LCAwLjQwNzU5NSwgMC45MzAzNywgMS44MDE1OSwgMi42NzM5LCA0LjcwNzM0LCA1Ljg3MDY2IiwgXAotICAgICAgICAgICIwLjM0OTYzOSwgMC40MDc1MTMsIDAuOTMwMzgzLCAxLjgwMTcxLCAyLjY3NDE0LCA0LjcwODU1LCA1Ljg3MTE4IiwgXAotICAgICAgICAgICIwLjM1MDU5MSwgMC40MDgxNCwgMC45MzAzNSwgMS44MDE5NSwgMi42NzMxOSwgNC43MDg1NiwgNS44NzEwOCIsIFwKLSAgICAgICAgICAiMC4zNTIzNTUsIDAuNDA5NjI1LCAwLjkzMDE0OCwgMS44MDE4NCwgMi42NzM2MSwgNC43MDc5MSwgNS44NzA1MyIsIFwKLSAgICAgICAgICAiMC4zNTY0NjEsIDAuNDEyOTk0LCAwLjkzMDc4OCwgMS44MDE0OCwgMi42NzMwNCwgNC43MDgyOCwgNS44NzE0OSIsIFwKLSAgICAgICAgICAiMC4zNjA4NTgsIDAuNDE3MTQ3LCAwLjkzMTg0NSwgMS44MDE5NSwgMi42NzMwNiwgNC43MDgxNiwgNS44NzEyOSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTEzMDQsIDAuMTI4NjM3LCAwLjI4Mzg1MiwgMC41NDIwODksIDAuODAwMjUyLCAxLjQwMjU0LCAxLjc0ODMxIiwgXAotICAgICAgICAgICIwLjExODc2MywgMC4xMzYxMDMsIDAuMjkxMjc3LCAwLjU0OTU4NywgMC44MDc3NjMsIDEuNDEwNTYsIDEuNzU0MjUiLCBcCi0gICAgICAgICAgIjAuMTI4MzUxLCAwLjE0NTY0NiwgMC4zMDA5NjgsIDAuNTU5MTczLCAwLjgxNzY0MywgMS40MjAwNywgMS43NjQ5OSIsIFwKLSAgICAgICAgICAiMC4xMzc1NiwgMC4xNTQ4MDgsIDAuMzA5OTI4LCAwLjU2ODIyLCAwLjgyNjk4OCwgMS40MjkyNywgMS43NzM1MyIsIFwKLSAgICAgICAgICAiMC4xNDcyOTMsIDAuMTY0NTM1LCAwLjMxOTQ4NiwgMC41Nzc2OTIsIDAuODM2MDA0LCAxLjQzOTIxLCAxLjc4NDA3IiwgXAotICAgICAgICAgICIwLjE2MzA5MSwgMC4xODAwOTQsIDAuMzM0OTI5LCAwLjU5Mjk4MiwgMC44NTE0OTEsIDEuNDUzNDIsIDEuNzk3NTMiLCBcCi0gICAgICAgICAgIjAuMTc3MDY0LCAwLjE5Mzk4OCwgMC4zNDg0NTEsIDAuNjA2NDUyLCAwLjg2NDkxNCwgMS40NjczNCwgMS44MTA5OSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMTYyNDcsIDAuMjUxNzg5LCAwLjU3MjAxOCwgMS4xMDQ0MywgMS42MzY1OSwgMi44NzksIDMuNTkiLCBcCi0gICAgICAgICAgIjAuMjE2MjcsIDAuMjUxNzQ3LCAwLjU3MTY3MiwgMS4xMDQ0MSwgMS42MzcxLCAyLjg3OTQ4LCAzLjU4ODg2IiwgXAotICAgICAgICAgICIwLjIxNjc1OSwgMC4yNTE4NTgsIDAuNTcxNjczLCAxLjEwNDUzLCAxLjYzNjk4LCAyLjg3OTU4LCAzLjU5MDM4IiwgXAotICAgICAgICAgICIwLjIyMDI2LCAwLjI1NDY2MiwgMC41NzE5MDEsIDEuMTA0NTYsIDEuNjM3MDYsIDIuODc5ODUsIDMuNTkwMjkiLCBcCi0gICAgICAgICAgIjAuMjI1NzA1LCAwLjI1OTI2MywgMC41NzIwMTYsIDEuMTA0NTIsIDEuNjM3MjEsIDIuODc5OSwgMy41OTAxNiIsIFwKLSAgICAgICAgICAiMC4yMzY0NjgsIDAuMjY4ODE5LCAwLjU3NTA1NCwgMS4xMDQzOSwgMS42MzY4NiwgMi44NzkyNiwgMy41ODg5NCIsIFwKLSAgICAgICAgICAiMC4yNDcyMzEsIDAuMjc5MDQyLCAwLjU3OTY2OCwgMS4xMDQ1NCwgMS42MzY5NywgMi44Nzk5MSwgMy41ODkwNCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTYyOTEsIDAuMTkwNTI3LCAwLjQzODg2NywgMC44NTE1NjMsIDEuMjYzMzksIDIuMjIzMjUsIDIuNzcxNDkiLCBcCi0gICAgICAgICAgIjAuMTY4OTksIDAuMTk2Njg0LCAwLjQ0NTA2NSwgMC44NTc3NzYsIDEuMjY5NTQsIDIuMjI5MzQsIDIuNzc3OTciLCBcCi0gICAgICAgICAgIjAuMTc1NzY0LCAwLjIwMzcxMywgMC40NTIxMDEsIDAuODY0OTI0LCAxLjI3NjcyLCAyLjIzNjUzLCAyLjc4NTEiLCBcCi0gICAgICAgICAgIjAuMTgzMjQzLCAwLjIxMTAxLCAwLjQ1OTM3OSwgMC44NzIyMjUsIDEuMjg0MDMsIDIuMjQzODEsIDIuNzkyMzciLCBcCi0gICAgICAgICAgIjAuMTkwNTU0LCAwLjIxODE5NiwgMC40NjY1NjMsIDAuODc5NTYxLCAxLjI5MTM4LCAyLjI1MTUsIDIuNzk5NTMiLCBcCi0gICAgICAgICAgIjAuMjAyNTYxLCAwLjIzMDMxMywgMC40NzgxODUsIDAuODkxMjg5LCAxLjMwMzEsIDIuMjYyNzksIDIuODExMzgiLCBcCi0gICAgICAgICAgIjAuMjEyNjc1LCAwLjI0MDM2NSwgMC40ODg2NDYsIDAuOTAxMzcxLCAxLjMxMzIyLCAyLjI3MzAxLCAyLjgyMTI4Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjM0OTYwNiwgMC40MDc1ODgsIDAuOTMwNDQ1LCAxLjgwMTU1LCAyLjY3MzU1LCA0LjcwODU3LCA1Ljg3MTAxIiwgXAotICAgICAgICAgICIwLjM0OTQ3NSwgMC40MDc1MTQsIDAuOTMwMzY3LCAxLjgwMTU5LCAyLjY3Mzc2LCA0LjcwODQ0LCA1Ljg3MTQyIiwgXAotICAgICAgICAgICIwLjM0OTUwMywgMC40MDc0OTIsIDAuOTMwMzE0LCAxLjgwMTU0LCAyLjY3MzM3LCA0LjcwNzYxLCA1Ljg3MTQiLCBcCi0gICAgICAgICAgIjAuMzUwNzQsIDAuNDA4MjQzLCAwLjkzMDE1NSwgMS44MDE5NSwgMi42NzMzMiwgNC43MDg1NiwgNS44NzA0MiIsIFwKLSAgICAgICAgICAiMC4zNTMyOCwgMC40MTAxMTMsIDAuOTMwMzQyLCAxLjgwMTksIDIuNjc0LCA0LjcwOTExLCA1Ljg3MTEyIiwgXAotICAgICAgICAgICIwLjM1OTI1MSwgMC40MTUzODQsIDAuOTMwMzUxLCAxLjgwMTY2LCAyLjY3MzksIDQuNzA4ODEsIDUuODcwNTciLCBcCi0gICAgICAgICAgIjAuMzY1NTg0LCAwLjQyMDk2NCwgMC45MzIwOTMsIDEuODAxNSwgMi42NzM2NiwgNC43MDg0NywgNS44NzEyNiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDg2ODMsIDAuMTI1OTU4LCAwLjI4MTAyMiwgMC41MzkzLCAwLjc5NzM3MiwgMS4zOTk1NCwgMS43NDQ3NSIsIFwKLSAgICAgICAgICAiMC4xMTYyNjgsIDAuMTMzNTc4LCAwLjI4ODU1LCAwLjU0NjgxMywgMC44MDQ5MDMsIDEuNDA3NTgsIDEuNzUxNzciLCBcCi0gICAgICAgICAgIjAuMTI1NjM2LCAwLjE0MzAwMywgMC4yOTgwOCwgMC41NTYyNTYsIDAuODE0NzgxLCAxLjQxNzA3LCAxLjc2MjAyIiwgXAotICAgICAgICAgICIwLjEzNTQxNywgMC4xNTI2NzYsIDAuMzA3NzM0LCAwLjU2NiwgMC44MjQ3NDksIDEuNDI3NDQsIDEuNzcxMjkiLCBcCi0gICAgICAgICAgIjAuMTQ1MTE3LCAwLjE2MjM3MywgMC4zMTcxMTQsIDAuNTc1NTUyLCAwLjgzMzkxMywgMS40MzU5NSwgMS43ODE3NyIsIFwKLSAgICAgICAgICAiMC4xNjAyMzIsIDAuMTc3MzA5LCAwLjMzMTkyMiwgMC41OTAwMTEsIDAuODQ4NDE2LCAxLjQ1MDMyLCAxLjc5NDY4IiwgXAotICAgICAgICAgICIwLjE3Mzg5NiwgMC4xOTEwMDEsIDAuMzQ1MzIyLCAwLjYwMzM1LCAwLjg2MTcyMSwgMS40NjQwMiwgMS44MDc3NCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMTI3MzgsIDAuMjQ4MjYyLCAwLjU2ODQxLCAxLjEwMTAyLCAxLjYzMzc3LCAyLjg3NTA3LCAzLjU4NjMyIiwgXAotICAgICAgICAgICIwLjIxMjcyMywgMC4yNDgyMjYsIDAuNTY4Mjk5LCAxLjEwMDc4LCAxLjYzMjkzLCAyLjg3NjExLCAzLjU4NDg5IiwgXAotICAgICAgICAgICIwLjIxMzIwNywgMC4yNDgzMiwgMC41NjgwNTMsIDEuMTAwOTUsIDEuNjMzMTMsIDIuODc1NjgsIDMuNTg2NyIsIFwKLSAgICAgICAgICAiMC4yMTY2NDQsIDAuMjUwOTUzLCAwLjU2ODE0NywgMS4xMDA5NywgMS42MzMzMywgMi44NzU5NiwgMy41ODYyOSIsIFwKLSAgICAgICAgICAiMC4yMjE4NTQsIDAuMjU1NDc5LCAwLjU2ODM3MiwgMS4xMDA5LCAxLjYzMzM4LCAyLjg3NTMxLCAzLjU4NjQxIiwgXAotICAgICAgICAgICIwLjIzMzQ1MiwgMC4yNjU5ODMsIDAuNTcxMTMzLCAxLjEwMDk3LCAxLjYzMzE4LCAyLjg3NTU5LCAzLjU4NDg5IiwgXAotICAgICAgICAgICIwLjI0NDM4OSwgMC4yNzYyMDIsIDAuNTc2MjIsIDEuMTAwNjcsIDEuNjMzMDksIDIuODc2MSwgMy41ODU1NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTU3NzQxLCAwLjE4NTQxNiwgMC40MzM2NjUsIDAuODQ2MzcxLCAxLjI1ODE5LCAyLjIxNzk2LCAyLjc2NjMyIiwgXAotICAgICAgICAgICIwLjE2NDY3LCAwLjE5MjM2MSwgMC40NDA2NDYsIDAuODUzNDYsIDEuMjY1MzQsIDIuMjI0OTgsIDIuNzczNjYiLCBcCi0gICAgICAgICAgIjAuMTczMzkyLCAwLjIwMTA2NSwgMC40NDkzNDcsIDAuODYyMjkyLCAxLjI3Mzk4LCAyLjIzMzk3LCAyLjc4MjA4IiwgXAotICAgICAgICAgICIwLjE4MjQ3MywgMC4yMTAxMywgMC40NTgyNjIsIDAuODcxMTIxLCAxLjI4MjksIDIuMjQyNjYsIDIuNzkxMDEiLCBcCi0gICAgICAgICAgIjAuMTkxMjI4LCAwLjIxODgyNSwgMC40NjY3NjQsIDAuODc5Mzg0LCAxLjI5MTEsIDIuMjUxLCAyLjc5OTUzIiwgXAotICAgICAgICAgICIwLjIwNTgyOSwgMC4yMzM0MzEsIDAuNDgxMDMxLCAwLjg5MzQ3MSwgMS4zMDUxMSwgMi4yNjQ5MywgMi44MTMyNCIsIFwKLSAgICAgICAgICAiMC4yMTg5MjMsIDAuMjQ2MzU0LCAwLjQ5MzQ5MSwgMC45MDU4MDYsIDEuMzE3MzcsIDIuMjc3MTgsIDIuODI1NDciKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzQ5NTM4LCAwLjQwNzUxNCwgMC45MzAyMTksIDEuODAxNTIsIDIuNjczNywgNC43MDgxLCA1Ljg2ODg2IiwgXAotICAgICAgICAgICIwLjM0OTU3LCAwLjQwNzU3NywgMC45MzAzMzcsIDEuODAxNTcsIDIuNjc0MjEsIDQuNzA3NjEsIDUuODcwNDUiLCBcCi0gICAgICAgICAgIjAuMzQ5NDU2LCAwLjQwNzUyNiwgMC45MzAzODEsIDEuODAyMTEsIDIuNjczOTQsIDQuNzA5MTEsIDUuODcxMTkiLCBcCi0gICAgICAgICAgIjAuMzUwOTg3LCAwLjQwODI1NywgMC45MzAxMzgsIDEuODAxNTgsIDIuNjczNTYsIDQuNzA4NiwgNS44NzEzNCIsIFwKLSAgICAgICAgICAiMC4zNTQ3MzMsIDAuNDExMDExLCAwLjkzMDMxMSwgMS44MDE0OSwgMi42NzMwNywgNC43MDg1MywgNS44NzE0OSIsIFwKLSAgICAgICAgICAiMC4zNjMwMTksIDAuNDE4MDA1LCAwLjkzMDM3NywgMS44MDE1MSwgMi42NzM4LCA0LjcwODYxLCA1Ljg3MTEiLCBcCi0gICAgICAgICAgIjAuMzcxOTIyLCAwLjQyNjA2MiwgMC45MzIwOTEsIDEuODAxNDksIDIuNjczODcsIDQuNzA4MTYsIDUuODcxMjMiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTA1MzAzLCAwLjEyMjYyMSwgMC4yNzc2OTgsIDAuNTM1ODE0LCAwLjc5Mzk0MSwgMS4zOTYxNSwgMS43NDE4NCIsIFwKLSAgICAgICAgICAiMC4xMTI4OTksIDAuMTMwMTg5LCAwLjI4NTIzMiwgMC41NDM1MTUsIDAuODAxNjEyLCAxLjQwNDc0LCAxLjc0Nzg5IiwgXAotICAgICAgICAgICIwLjEyMjQ5OCwgMC4xMzk3NzEsIDAuMjk0Njg1LCAwLjU1Mjc4MSwgMC44MTEwMzgsIDEuNDEzMjgsIDEuNzU4NzQiLCBcCi0gICAgICAgICAgIjAuMTMxNzkxLCAwLjE0OTI1NywgMC4zMDQwNjIsIDAuNTYyMjcsIDAuODIwOTcxLCAxLjQyMzIzLCAxLjc2NzU3IiwgXAotICAgICAgICAgICIwLjE0MTQ3NCwgMC4xNTg3MDksIDAuMzEzNTkyLCAwLjU3MTc0NSwgMC44MzAwODEsIDEuNDMyMSwgMS43Nzc5NCIsIFwKLSAgICAgICAgICAiMC4xNTcxMTcsIDAuMTc0MzYzLCAwLjMyOTAwNiwgMC41ODcwNiwgMC44NDU0NzgsIDEuNDQ3MzgsIDEuNzkxMzYiLCBcCi0gICAgICAgICAgIjAuMTcwODczLCAwLjE4Nzk2OCwgMC4zNDI0NywgMC42MDA1NTMsIDAuODU4ODk0LCAxLjQ2MTM0LCAxLjgwNDkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjA4NTksIDAuMjQ0MDMsIDAuNTYzNTUsIDEuMDk2MjYsIDEuNjI4MjgsIDIuODcwNDMsIDMuNTgxMzQiLCBcCi0gICAgICAgICAgIjAuMjA4NDk1LCAwLjI0Mzk2OCwgMC41NjM3NTEsIDEuMDk2NDUsIDEuNjI4NTEsIDIuODcxMzcsIDMuNTgiLCBcCi0gICAgICAgICAgIjAuMjA5MDI4LCAwLjI0NDA5MiwgMC41NjM2NjcsIDEuMDk2MjUsIDEuNjI4NTYsIDIuODcwNTgsIDMuNTgyMzMiLCBcCi0gICAgICAgICAgIjAuMjEyNzY1LCAwLjI0Njg2OCwgMC41NjM4ODYsIDEuMDk2MzgsIDEuNjI4NzEsIDIuODcwOTcsIDMuNTgxNTgiLCBcCi0gICAgICAgICAgIjAuMjE4MzA3LCAwLjI1MTg3MSwgMC41NjQwMjksIDEuMDk2MzMsIDEuNjI4NzYsIDIuODcwNTYsIDMuNTgxNDkiLCBcCi0gICAgICAgICAgIjAuMjI5MzE0LCAwLjI2MTg2NSwgMC41NjcwMzMsIDEuMDk2MjksIDEuNjI4NTcsIDIuODcwNTgsIDMuNTgwMjIiLCBcCi0gICAgICAgICAgIjAuMjQwMzA3LCAwLjI3MTkyMiwgMC41NzE5MzYsIDEuMDk2MjUsIDEuNjI4NzMsIDIuODcxMzMsIDMuNTgwNCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQ1NDgsIDAuMDA0NTQ4LCAwLjAwNDU0NywgMC4wMDQ1NDUsIDAuMDA0NTQ0LCAwLjAwNDU0MSwgMC4wMDQ1MzgiLCBcCi0gICAgICAgICAgIjAuMDA0NTM3LCAwLjAwNDUzOCwgMC4wMDQ1MzgsIDAuMDA0NTM4LCAwLjAwNDUzNywgMC4wMDQ1MzUsIDAuMDA0NTMyIiwgXAotICAgICAgICAgICIwLjAwNDUzMiwgMC4wMDQ1MzMsIDAuMDA0NTM1LCAwLjAwNDUzNSwgMC4wMDQ1MzQsIDAuMDA0NTMxLCAwLjAwNDUyOCIsIFwKLSAgICAgICAgICAiMC4wMDQ1MzMsIDAuMDA0NTM0LCAwLjAwNDUzNiwgMC4wMDQ1MzYsIDAuMDA0NTM1LCAwLjAwNDUzLCAwLjAwNDUyOSIsIFwKLSAgICAgICAgICAiMC4wMDQ1NDEsIDAuMDA0NTQxLCAwLjAwNDUzOSwgMC4wMDQ1MzcsIDAuMDA0NTM0LCAwLjAwNDUzMSwgMC4wMDQ1MjciLCBcCi0gICAgICAgICAgIjAuMDA0NTY3LCAwLjAwNDU2MywgMC4wMDQ1NTEsIDAuMDA0NTQzLCAwLjAwNDUzOSwgMC4wMDQ1MzQsIDAuMDA0NTMiLCBcCi0gICAgICAgICAgIjAuMDA0NiwgMC4wMDQ1OTUsIDAuMDA0NTY5LCAwLjAwNDU1NCwgMC4wMDQ1NDcsIDAuMDA0NTM3LCAwLjAwNDUzNCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTE3OCwgMC4wMDExNzgsIDAuMDAxMTc4LCAwLjAwMTE3OCwgMC4wMDExNzcsIDAuMDAxMTc2LCAwLjAwMTE3NiIsIFwKLSAgICAgICAgICAiMC4wMDExNjIsIDAuMDAxMTYzLCAwLjAwMTE2NCwgMC4wMDExNjQsIDAuMDAxMTY0LCAwLjAwMTE2MywgMC4wMDExNjMiLCBcCi0gICAgICAgICAgIjAuMDAxMTU3LCAwLjAwMTE1OSwgMC4wMDExNiwgMC4wMDExNjIsIDAuMDAxMTYxLCAwLjAwMTE2MSwgMC4wMDExNjEiLCBcCi0gICAgICAgICAgIjAuMDAxMTU2LCAwLjAwMTE1NywgMC4wMDExNiwgMC4wMDExNjEsIDAuMDAxMTYsIDAuMDAxMTYsIDAuMDAxMTYiLCBcCi0gICAgICAgICAgIjAuMDAxMTYxLCAwLjAwMTE2MSwgMC4wMDExNjIsIDAuMDAxMTYxLCAwLjAwMTE2MSwgMC4wMDExNiwgMC4wMDExNTkiLCBcCi0gICAgICAgICAgIjAuMDAxMTc3LCAwLjAwMTE3NiwgMC4wMDExNywgMC4wMDExNjYsIDAuMDAxMTY0LCAwLjAwMTE2MiwgMC4wMDExNjEiLCBcCi0gICAgICAgICAgIjAuMDAxMjAyLCAwLjAwMTE5OCwgMC4wMDExODIsIDAuMDAxMTczLCAwLjAwMTE3LCAwLjAwMTE2NSwgMC4wMDExNjMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0Mjk3LCAwLjAwNDI5NywgMC4wMDQyOTcsIDAuMDA0Mjk1LCAwLjAwNDI5MywgMC4wMDQyOSwgMC4wMDQyODgiLCBcCi0gICAgICAgICAgIjAuMDA0Mjg2LCAwLjAwNDI4NywgMC4wMDQyODgsIDAuMDA0Mjg3LCAwLjAwNDI4NiwgMC4wMDQyODIsIDAuMDA0Mjc5IiwgXAotICAgICAgICAgICIwLjAwNDI4MywgMC4wMDQyODQsIDAuMDA0Mjg2LCAwLjAwNDI4NiwgMC4wMDQyODUsIDAuMDA0MjgxLCAwLjAwNDI3OCIsIFwKLSAgICAgICAgICAiMC4wMDQyODYsIDAuMDA0Mjg3LCAwLjAwNDI4NiwgMC4wMDQyODYsIDAuMDA0Mjg1LCAwLjAwNDI4LCAwLjAwNDI3OCIsIFwKLSAgICAgICAgICAiMC4wMDQyOTcsIDAuMDA0Mjk2LCAwLjAwNDI5MSwgMC4wMDQyODcsIDAuMDA0Mjg2LCAwLjAwNDI4MSwgMC4wMDQyNzkiLCBcCi0gICAgICAgICAgIjAuMDA0MzI4LCAwLjAwNDMyMiwgMC4wMDQzMDUsIDAuMDA0Mjk2LCAwLjAwNDI5MiwgMC4wMDQyODUsIDAuMDA0MjgxIiwgXAotICAgICAgICAgICIwLjAwNDM2MSwgMC4wMDQzNTMsIDAuMDA0MzIxLCAwLjAwNDMwNCwgMC4wMDQyOTgsIDAuMDA0Mjg3LCAwLjAwNDI4NCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTAxMSwgMC4wMDEwMTEsIDAuMDAxMDExLCAwLjAwMTAxMSwgMC4wMDEwMTEsIDAuMDAxMDEsIDAuMDAxMDEiLCBcCi0gICAgICAgICAgIjAuMDAxMDAyLCAwLjAwMTAwMywgMC4wMDEwMDgsIDAuMDAxMDA5LCAwLjAwMTAwOSwgMC4wMDEwMDksIDAuMDAxMDA5IiwgXAotICAgICAgICAgICIwLjAwMDk5NCwgMC4wMDA5OTYsIDAuMDAxMDA0LCAwLjAwMTAwNywgMC4wMDEwMDgsIDAuMDAxMDA4LCAwLjAwMTAwOCIsIFwKLSAgICAgICAgICAiMC4wMDA5OSwgMC4wMDA5OTIsIDAuMDAxMDAyLCAwLjAwMTAwNiwgMC4wMDEwMDcsIDAuMDAxMDA4LCAwLjAwMTAwNyIsIFwKLSAgICAgICAgICAiMC4wMDA5OTEsIDAuMDAwOTkzLCAwLjAwMTAwMiwgMC4wMDEwMDYsIDAuMDAxMDA3LCAwLjAwMTAwOCwgMC4wMDEwMDciLCBcCi0gICAgICAgICAgIjAuMDAxMDA2LCAwLjAwMTAwNywgMC4wMDEwMDksIDAuMDAxMDEsIDAuMDAxMDEsIDAuMDAxMDA5LCAwLjAwMTAwOSIsIFwKLSAgICAgICAgICAiMC4wMDEwMjksIDAuMDAxMDI2LCAwLjAwMTAyLCAwLjAwMTAxNiwgMC4wMDEwMTQsIDAuMDAxMDEyLCAwLjAwMTAxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTIiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDAzMSwgMC4wMDQwMywgMC4wMDQwMywgMC4wMDQwMjksIDAuMDA0MDI3LCAwLjAwNDAyMywgMC4wMDQwMjMiLCBcCi0gICAgICAgICAgIjAuMDA0MDE5LCAwLjAwNDAyLCAwLjAwNDAyLCAwLjAwNDAyLCAwLjAwNDAxOSwgMC4wMDQwMTQsIDAuMDA0MDEyIiwgXAotICAgICAgICAgICIwLjAwNDAyMSwgMC4wMDQwMjUsIDAuMDA0MDIyLCAwLjAwNDAyLCAwLjAwNDAxOCwgMC4wMDQwMTQsIDAuMDA0MDExIiwgXAotICAgICAgICAgICIwLjAwNDAzNCwgMC4wMDQwMzMsIDAuMDA0MDI1LCAwLjAwNDAyMSwgMC4wMDQwMTksIDAuMDA0MDE1LCAwLjAwNDAxMSIsIFwKLSAgICAgICAgICAiMC4wMDQwNjYsIDAuMDA0MDYsIDAuMDA0MDM5LCAwLjAwNDAyOCwgMC4wMDQwMjQsIDAuMDA0MDE3LCAwLjAwNDAxMyIsIFwKLSAgICAgICAgICAiMC4wMDQxMTYsIDAuMDA0MTA3LCAwLjAwNDA2MSwgMC4wMDQwNDIsIDAuMDA0MDMzLCAwLjAwNDAyMiwgMC4wMDQwMTgiLCBcCi0gICAgICAgICAgIjAuMDA0MTY5LCAwLjAwNDE1NiwgMC4wMDQwOTIsIDAuMDA0MDU4LCAwLjAwNDA0NCwgMC4wMDQwMjksIDAuMDA0MDIyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwNzY2LCAwLjAwMDc2NywgMC4wMDA3NjksIDAuMDAwNzY5LCAwLjAwMDc2OSwgMC4wMDA3NjksIDAuMDAwNzY5IiwgXAotICAgICAgICAgICIwLjAwMDc2NywgMC4wMDA3NjksIDAuMDAwNzc3LCAwLjAwMDc4MSwgMC4wMDA3ODEsIDAuMDAwNzgyLCAwLjAwMDc4MiIsIFwKLSAgICAgICAgICAiMC4wMDA3NTYsIDAuMDAwNzYsIDAuMDAwNzc0LCAwLjAwMDc4LCAwLjAwMDc4MSwgMC4wMDA3ODMsIDAuMDAwNzgzIiwgXAotICAgICAgICAgICIwLjAwMDc0OSwgMC4wMDA3NTMsIDAuMDAwNzcxLCAwLjAwMDc3OCwgMC4wMDA3ODEsIDAuMDAwNzgzLCAwLjAwMDc4MyIsIFwKLSAgICAgICAgICAiMC4wMDA3NDgsIDAuMDAwNzUyLCAwLjAwMDc2OSwgMC4wMDA3NzgsIDAuMDAwNzgsIDAuMDAwNzgzLCAwLjAwMDc4MyIsIFwKLSAgICAgICAgICAiMC4wMDA3NTgsIDAuMDAwNzYxLCAwLjAwMDc3NCwgMC4wMDA3OCwgMC4wMDA3ODIsIDAuMDAwNzg0LCAwLjAwMDc4NCIsIFwKLSAgICAgICAgICAiMC4wMDA3NzgsIDAuMDAwNzc4LCAwLjAwMDc4MywgMC4wMDA3ODYsIDAuMDAwNzg2LCAwLjAwMDc4NywgMC4wMDA3ODYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzMDM5LCAwLjAwMzAzOSwgMC4wMDMwNDEsIDAuMDAzMDQxLCAwLjAwMzA0MSwgMC4wMDMwNDEsIDAuMDAzMDQxIiwgXAotICAgICAgICAgICIwLjAwMzAzNSwgMC4wMDMwMzcsIDAuMDAzMDQ0LCAwLjAwMzA0NiwgMC4wMDMwNDcsIDAuMDAzMDQ4LCAwLjAwMzA1MSIsIFwKLSAgICAgICAgICAiMC4wMDMwMjcsIDAuMDAzMDMsIDAuMDAzMDQxLCAwLjAwMzA0NSwgMC4wMDMwNDgsIDAuMDAzMDQ4LCAwLjAwMzA1IiwgXAotICAgICAgICAgICIwLjAwMzAyNywgMC4wMDMwMjgsIDAuMDAzMDQxLCAwLjAwMzA0NSwgMC4wMDMwNDcsIDAuMDAzMDQ4LCAwLjAwMzA0OSIsIFwKLSAgICAgICAgICAiMC4wMDMwMzMsIDAuMDAzMDMzLCAwLjAwMzA0MywgMC4wMDMwNDYsIDAuMDAzMDQ4LCAwLjAwMzA0OSwgMC4wMDMwNDkiLCBcCi0gICAgICAgICAgIjAuMDAzMDU4LCAwLjAwMzA1NiwgMC4wMDMwNTMsIDAuMDAzMDUyLCAwLjAwMzA1MiwgMC4wMDMwNTEsIDAuMDAzMDUyIiwgXAotICAgICAgICAgICIwLjAwMzA5MSwgMC4wMDMwODYsIDAuMDAzMDY5LCAwLjAwMzA2MSwgMC4wMDMwNTgsIDAuMDAzMDU1LCAwLjAwMzA1NSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTE3OCwgMC4wMDExNzgsIDAuMDAxMTc4LCAwLjAwMTE3OCwgMC4wMDExNzcsIDAuMDAxMTc2LCAwLjAwMTE3NiIsIFwKLSAgICAgICAgICAiMC4wMDExNjUsIDAuMDAxMTY1LCAwLjAwMTE2NSwgMC4wMDExNjQsIDAuMDAxMTY0LCAwLjAwMTE2MywgMC4wMDExNjMiLCBcCi0gICAgICAgICAgIjAuMDAxMTcyLCAwLjAwMTE3MSwgMC4wMDExNjcsIDAuMDAxMTY0LCAwLjAwMTE2MywgMC4wMDExNjEsIDAuMDAxMTYxIiwgXAotICAgICAgICAgICIwLjAwMTE5OCwgMC4wMDExOTQsIDAuMDAxMTc5LCAwLjAwMTE3MSwgMC4wMDExNjgsIDAuMDAxMTY0LCAwLjAwMTE2MyIsIFwKLSAgICAgICAgICAiMC4wMDEyMjUsIDAuMDAxMjE5LCAwLjAwMTE5MiwgMC4wMDExNzksIDAuMDAxMTczLCAwLjAwMTE2NywgMC4wMDExNjUiLCBcCi0gICAgICAgICAgIjAuMDAxMjc2LCAwLjAwMTI2MywgMC4wMDEyMTgsIDAuMDAxMTk1LCAwLjAwMTE4NSwgMC4wMDExNzQsIDAuMDAxMTcxIiwgXAotICAgICAgICAgICIwLjAwMTMzMiwgMC4wMDEzMTUsIDAuMDAxMjQ5LCAwLjAwMTIxNCwgMC4wMDExOTksIDAuMDAxMTgyLCAwLjAwMTE3NyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIxIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI3ODYsIDAuMDAyNzg3LCAwLjAwMjc4OCwgMC4wMDI3ODksIDAuMDAyNzg5LCAwLjAwMjc4OSwgMC4wMDI3ODkiLCBcCi0gICAgICAgICAgIjAuMDAyNzgzLCAwLjAwMjc4NSwgMC4wMDI3OTIsIDAuMDAyNzk1LCAwLjAwMjc5NiwgMC4wMDI3OTUsIDAuMDAyNzk1IiwgXAotICAgICAgICAgICIwLjAwMjc3MywgMC4wMDI3OCwgMC4wMDI3OSwgMC4wMDI3OTQsIDAuMDAyNzk1LCAwLjAwMjc5NiwgMC4wMDI3OTYiLCBcCi0gICAgICAgICAgIjAuMDAyNzc5LCAwLjAwMjc4MSwgMC4wMDI3ODgsIDAuMDAyNzk0LCAwLjAwMjc5NSwgMC4wMDI3OTYsIDAuMDAyNzk3IiwgXAotICAgICAgICAgICIwLjAwMjc4OSwgMC4wMDI3ODgsIDAuMDAyNzkyLCAwLjAwMjc5NiwgMC4wMDI3OTYsIDAuMDAyNzk3LCAwLjAwMjc5NyIsIFwKLSAgICAgICAgICAiMC4wMDI4MTcsIDAuMDAyODE1LCAwLjAwMjgwNSwgMC4wMDI4MDIsIDAuMDAyODAxLCAwLjAwMjgsIDAuMDAyOCIsIFwKLSAgICAgICAgICAiMC4wMDI4NTIsIDAuMDAyODQ1LCAwLjAwMjgyLCAwLjAwMjgxLCAwLjAwMjgwNywgMC4wMDI4MDMsIDAuMDAyODAyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxMDA2LCAwLjAwMTAwNiwgMC4wMDEwMDcsIDAuMDAxMDA3LCAwLjAwMTAwNiwgMC4wMDEwMDYsIDAuMDAxMDA1IiwgXAotICAgICAgICAgICIwLjAwMTAwMiwgMC4wMDEwMDIsIDAuMDAxMDA1LCAwLjAwMTAwNSwgMC4wMDEwMDUsIDAuMDAxMDA1LCAwLjAwMTAwNCIsIFwKLSAgICAgICAgICAiMC4wMDEwMTIsIDAuMDAxMDA5LCAwLjAwMTAwOSwgMC4wMDEwMDcsIDAuMDAxMDA3LCAwLjAwMTAwNiwgMC4wMDEwMDUiLCBcCi0gICAgICAgICAgIjAuMDAxMDIyLCAwLjAwMTAyLCAwLjAwMTAxMywgMC4wMDEwMSwgMC4wMDEwMDgsIDAuMDAxMDA3LCAwLjAwMTAwNiIsIFwKLSAgICAgICAgICAiMC4wMDEwNDQsIDAuMDAxMDQsIDAuMDAxMDI3LCAwLjAwMTAxNywgMC4wMDEwMTIsIDAuMDAxMDA5LCAwLjAwMTAwOCIsIFwKLSAgICAgICAgICAiMC4wMDExMTQsIDAuMDAxMTA0LCAwLjAwMTA2MywgMC4wMDEwMzksIDAuMDAxMDI5LCAwLjAwMTAxOCwgMC4wMDEwMTUiLCBcCi0gICAgICAgICAgIjAuMDAxMTc0LCAwLjAwMTE1NiwgMC4wMDEwOTEsIDAuMDAxMDU5LCAwLjAwMTA0MywgMC4wMDEwMjcsIDAuMDAxMDIyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjIiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjUxOCwgMC4wMDI1MTksIDAuMDAyNTIyLCAwLjAwMjUyMywgMC4wMDI1MjIsIDAuMDAyNTIyLCAwLjAwMjUyMyIsIFwKLSAgICAgICAgICAiMC4wMDI1MTgsIDAuMDAyNTE5LCAwLjAwMjUyNSwgMC4wMDI1MjcsIDAuMDAyNTI4LCAwLjAwMjUyOSwgMC4wMDI1MjkiLCBcCi0gICAgICAgICAgIjAuMDAyNTIzLCAwLjAwMjUyNCwgMC4wMDI1MjcsIDAuMDAyNTI5LCAwLjAwMjUyOSwgMC4wMDI1MywgMC4wMDI1MyIsIFwKLSAgICAgICAgICAiMC4wMDI1MzEsIDAuMDAyNTMxLCAwLjAwMjUyOSwgMC4wMDI1MywgMC4wMDI1MzEsIDAuMDAyNTMsIDAuMDAyNTMxIiwgXAotICAgICAgICAgICIwLjAwMjU2MiwgMC4wMDI1NTgsIDAuMDAyNTQyLCAwLjAwMjUzNywgMC4wMDI1MzUsIDAuMDAyNTMzLCAwLjAwMjUzMyIsIFwKLSAgICAgICAgICAiMC4wMDI2MTEsIDAuMDAyNjA0LCAwLjAwMjU2NSwgMC4wMDI1NSwgMC4wMDI1NDQsIDAuMDAyNTM4LCAwLjAwMjUzNyIsIFwKLSAgICAgICAgICAiMC4wMDI2NjQsIDAuMDAyNjQ5LCAwLjAwMjU5NCwgMC4wMDI1NjUsIDAuMDAyNTU1LCAwLjAwMjU0NSwgMC4wMDI1NDMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDA3NjMsIDAuMDAwNzY0LCAwLjAwMDc2NiwgMC4wMDA3NjYsIDAuMDAwNzY3LCAwLjAwMDc2NiwgMC4wMDA3NjciLCBcCi0gICAgICAgICAgIjAuMDAwNzcyLCAwLjAwMDc3MywgMC4wMDA3NzcsIDAuMDAwNzc5LCAwLjAwMDc4LCAwLjAwMDc4LCAwLjAwMDc4IiwgXAotICAgICAgICAgICIwLjAwMDc3NywgMC4wMDA3NzgsIDAuMDAwNzgyLCAwLjAwMDc4MywgMC4wMDA3ODMsIDAuMDAwNzgzLCAwLjAwMDc4MiIsIFwKLSAgICAgICAgICAiMC4wMDA3OTUsIDAuMDAwNzg5LCAwLjAwMDc5LCAwLjAwMDc4OCwgMC4wMDA3ODYsIDAuMDAwNzg1LCAwLjAwMDc4NCIsIFwKLSAgICAgICAgICAiMC4wMDA4MTcsIDAuMDAwODE1LCAwLjAwMDgwMiwgMC4wMDA3OTQsIDAuMDAwNzkxLCAwLjAwMDc4OCwgMC4wMDA3ODciLCBcCi0gICAgICAgICAgIjAuMDAwODYxLCAwLjAwMDg1NCwgMC4wMDA4MjcsIDAuMDAwODA5LCAwLjAwMDgwMiwgMC4wMDA3OTUsIDAuMDAwNzkyIiwgXAotICAgICAgICAgICIwLjAwMDkxMiwgMC4wMDA4OTgsIDAuMDAwODUsIDAuMDAwODI3LCAwLjAwMDgxNSwgMC4wMDA4MDIsIDAuMDAwNzk5Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IE9SMlhMICoKLSAqIC0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChPUjJYTCkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjIxMjIzODsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjc5OTU3OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDY3ODIzMjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2Nzk5NTc7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjYsIDAuMDAwMjc3LCAwLjAwMDI4MywgMC4wMDAyODcsIDAuMDAwMjksIDAuMDAwMjkxLCAwLjAwMDI5MSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDMwNCwgMC4wMDAzMDQsIDAuMDAwMzA0LCAwLjAwMDMwNCwgMC4wMDAzMDQsIDAuMDAwMzA0LCAwLjAwMDMwNCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjcxMTU4OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDY3MTE1ODsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2NzEwOTg7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMDY5LCAwLjAwMDA2OSwgMC4wMDAwNjksIDAuMDAwMDY5LCAwLjAwMDA2OSwgMC4wMDAwNjksIDAuMDAwMDY5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjExLCAwLjAwMDIxMSwgMC4wMDAyMTEsIDAuMDAwMjExLCAwLjAwMDIxMSwgMC4wMDAyMTEsIDAuMDAwMjExIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMTk2MzE3OwotICAgIGZ1bmN0aW9uIDogIihBK0IpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjk2NDIsIDAuMDgwMTYxLCAwLjE3NDg3NiwgMC4zMzI2OTQsIDAuNDkwNTE1LCAwLjg1ODcyMywgMS4wNjkxNiIsIFwKLSAgICAgICAgICAiMC4wNzc0MTEsIDAuMDg3OTQzLCAwLjE4MjY4MSwgMC4zNDA0ODgsIDAuNDk4Mjk3LCAwLjg2NjUyNiwgMS4wNzcwNCIsIFwKLSAgICAgICAgICAiMC4wODQxNDQsIDAuMDk0Njc3LCAwLjE4OTM5MiwgMC4zNDcyMTQsIDAuNTA1MTA1LCAwLjg3MzMyNCwgMS4wODM2IiwgXAotICAgICAgICAgICIwLjA4OTE3NCwgMC4wOTk2OTQsIDAuMTk0NDIsIDAuMzUyMjE2LCAwLjUxMDAxMiwgMC44NzgyMjUsIDEuMDg4ODUiLCBcCi0gICAgICAgICAgIjAuMDkzMTE2LCAwLjEwMzY1MSwgMC4xOTgzNjIsIDAuMzU2MTQsIDAuNTEzOTQ4LCAwLjg4MjEzOSwgMS4wOTI2MyIsIFwKLSAgICAgICAgICAiMC4wOTg1MTUsIDAuMTA5MDA3LCAwLjIwMzcyNSwgMC4zNjE1MjQsIDAuNTE5MzM3LCAwLjg4NzUxMiwgMS4wOTgwMSIsIFwKLSAgICAgICAgICAiMC4xMDI0MjksIDAuMTEzMDEsIDAuMjA3NzI5LCAwLjM2NTQ5NywgMC41MjMzMjcsIDAuODkxNDU3LCAxLjEwMTg3Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExNjUyMSwgMC4xMzg1MjMsIDAuMzM3ODQxLCAwLjY3MDAzLCAxLjAwMzIzLCAxLjc3NzYxLCAyLjIyMDM2IiwgXAotICAgICAgICAgICIwLjExNjUyNSwgMC4xMzg1MjUsIDAuMzM4MDcsIDAuNjcwNTY4LCAxLjAwMjM3LCAxLjc3NzQxLCAyLjIyMjUiLCBcCi0gICAgICAgICAgIjAuMTE2NTc2LCAwLjEzODU0NCwgMC4zMzgwMzMsIDAuNjcwNTEsIDEuMDAzMDUsIDEuNzc4OSwgMi4yMjAwOCIsIFwKLSAgICAgICAgICAiMC4xMTY3NDQsIDAuMTM4NzU0LCAwLjMzODA0NCwgMC42Njk5NDMsIDEuMDAyMjksIDEuNzc4OTUsIDIuMjIyMjgiLCBcCi0gICAgICAgICAgIjAuMTE2ODQ2LCAwLjEzODgwNSwgMC4zMzc4MywgMC42NzAzNzcsIDEuMDAyMjksIDEuNzc3MjIsIDIuMjIyMTgiLCBcCi0gICAgICAgICAgIjAuMTE3NDM2LCAwLjEzOTA2MiwgMC4zMzc3OCwgMC42NzAzNiwgMS4wMDE5NSwgMS43Nzc1NSwgMi4yMTk3NCIsIFwKLSAgICAgICAgICAiMC4xMTc3MDksIDAuMTM5NTgxLCAwLjMzNzgyNiwgMC42NzAxMDcsIDEuMDAyNzgsIDEuNzc4MzUsIDIuMjIwMjgiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc1ODgyLCAwLjA4NTUzNCwgMC4xNzIzNjMsIDAuMzE3MTMzLCAwLjQ2MjAzNSwgMC43OTk1NjUsIDAuOTkyNTM0IiwgXAotICAgICAgICAgICIwLjA4MTM5OSwgMC4wOTEwNTUsIDAuMTc3ODkzLCAwLjMyMjYzMSwgMC40Njc1MTUsIDAuODA1MDgxLCAwLjk5Nzk2MyIsIFwKLSAgICAgICAgICAiMC4wODcwOTYsIDAuMDk2NzQzLCAwLjE4MzU3NSwgMC4zMjgzNTcsIDAuNDczMjQ5LCAwLjgxMDcwMiwgMS4wMDQwOCIsIFwKLSAgICAgICAgICAiMC4wOTE0OCwgMC4xMDExNDEsIDAuMTg3OTc1LCAwLjMzMjcxNSwgMC40Nzc1MzgsIDAuODE1MDg3LCAxLjAwODQxIiwgXAotICAgICAgICAgICIwLjA5NTE1OCwgMC4xMDQ4NTMsIDAuMTkxNjQ3LCAwLjMzNjQwNSwgMC40ODExMTcsIDAuODE4ODM3LCAxLjAxMTg5IiwgXAotICAgICAgICAgICIwLjEwMDMxMSwgMC4xMTAwMTYsIDAuMTk2ODgzLCAwLjM0MTU2NCwgMC40ODY0MzQsIDAuODIzOTgzLCAxLjAxNzI0IiwgXAotICAgICAgICAgICIwLjEwNDMzOCwgMC4xMTQwMzMsIDAuMjAwOTU2LCAwLjM0NTU5NCwgMC40OTAzNzUsIDAuODI3OTgzLCAxLjAyMDk3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwNTM1NiwgMC4xMjQ5MDYsIDAuMzAyMzA1LCAwLjU5OTA2MSwgMC44OTU4OTEsIDEuNTkxNjcsIDEuOTg4MiIsIFwKLSAgICAgICAgICAiMC4xMDUzODYsIDAuMTI0ODA3LCAwLjMwMjMxMiwgMC41OTg4NTksIDAuODk1OTI1LCAxLjU5MTczLCAxLjk4NDE0IiwgXAotICAgICAgICAgICIwLjEwNTY2OCwgMC4xMjUyNjYsIDAuMzAyNjY2LCAwLjU5OTEwOSwgMC44OTU4OTcsIDEuNTg4MzQsIDEuOTg2MzMiLCBcCi0gICAgICAgICAgIjAuMTA2MTA1LCAwLjEyNTQ1OCwgMC4zMDI5MTYsIDAuNTk5MzU0LCAwLjg5NTkxNSwgMS41ODgyOSwgMS45ODYzOSIsIFwKLSAgICAgICAgICAiMC4xMDY0LCAwLjEyNTg1MSwgMC4zMDI1NjUsIDAuNTk5NTU5LCAwLjg5NTY0NywgMS41ODg5OSwgMS45ODQ4NyIsIFwKLSAgICAgICAgICAiMC4xMDcwOCwgMC4xMjYxODQsIDAuMzAyOTgzLCAwLjYwMDExOCwgMC44OTU5ODUsIDEuNTg4NDUsIDEuOTg0NzUiLCBcCi0gICAgICAgICAgIjAuMTA3NTU1LCAwLjEyNjk3MSwgMC4zMDI5NDYsIDAuNjAwMDA1LCAwLjg5NTgxOCwgMS41OTIwMiwgMS45ODQzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2ODEyNSwgMC4wNzg2NywgMC4xNzMzMjEsIDAuMzMxMzIzLCAwLjQ4OTEyOSwgMC44NTgxNzEsIDEuMDY5MTYiLCBcCi0gICAgICAgICAgIjAuMDc1NDI4LCAwLjA4NTk1NiwgMC4xODA4NDIsIDAuMzM4NjExLCAwLjQ5NjgxOSwgMC44NjUxOCwgMS4wNzU2NCIsIFwKLSAgICAgICAgICAiMC4wODEyODIsIDAuMDkxODE1LCAwLjE4NjU1NiwgMC4zNDQ0NjYsIDAuNTAyODEyLCAwLjg3MDY1OSwgMS4wODE3NyIsIFwKLSAgICAgICAgICAiMC4wODU3MTMsIDAuMDk2MjM1LCAwLjE5MDk5NCwgMC4zNDkxLCAwLjUwNjgxMSwgMC44NzUwNzgsIDEuMDg1ODciLCBcCi0gICAgICAgICAgIjAuMDg4OTI4LCAwLjA5OTQ3MiwgMC4xOTQxNzgsIDAuMzUyMDYxLCAwLjUxMDM3LCAwLjg3ODI3LCAxLjA4OTU1IiwgXAotICAgICAgICAgICIwLjA5MzI2OCwgMC4xMDM4MDgsIDAuMTk4NTMxLCAwLjM1NjM5MywgMC41MTQyOTYsIDAuODgzMDE0LCAxLjA5NDIzIiwgXAotICAgICAgICAgICIwLjA5NjYwNCwgMC4xMDcyMjYsIDAuMjAxODg2LCAwLjM1OTY3MywgMC41MTc2NTEsIDAuODg2MDE1LCAxLjA5NjUiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTE2MzE1LCAwLjEzODMzMSwgMC4zMzgwNDcsIDAuNjY5NDMsIDEuMDAyOTIsIDEuNzc2NjQsIDIuMjIwNjgiLCBcCi0gICAgICAgICAgIjAuMTE2NDYsIDAuMTM4NTk0LCAwLjMzNzU4MywgMC42Njk0MzUsIDEuMDAxNzgsIDEuNzc3MDEsIDIuMjIxMTkiLCBcCi0gICAgICAgICAgIjAuMTE2NTcyLCAwLjEzODcyMiwgMC4zMzc5MzcsIDAuNjY5NTEyLCAxLjAwMjI3LCAxLjc3NjMzLCAyLjIyMTAzIiwgXAotICAgICAgICAgICIwLjExNjY3NCwgMC4xMzg2OTUsIDAuMzM3NiwgMC42Njk3MywgMS4wMDEzOCwgMS43Nzc5NiwgMi4yMjEzMSIsIFwKLSAgICAgICAgICAiMC4xMTY4MiwgMC4xMzg3NywgMC4zMzc1NjEsIDAuNjcwODEyLCAxLjAwMjE1LCAxLjc3OTA0LCAyLjIxOTk3IiwgXAotICAgICAgICAgICIwLjExNzUxMywgMC4xMzkxMjIsIDAuMzM3NTUsIDAuNjcwODE3LCAxLjAwMjI2LCAxLjc3NzUxLCAyLjIxOTQ3IiwgXAotICAgICAgICAgICIwLjExNzgwNSwgMC4xMzk1NSwgMC4zMzc3MTUsIDAuNjcwNDgzLCAxLjAwMTY1LCAxLjc3NzM0LCAyLjIxOTA1Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3Mzg0OSwgMC4wODM1MDksIDAuMTcwMzcsIDAuMzE1MTg4LCAwLjQ2MDA4LCAwLjc5NzY1OCwgMC45OTEzNjUiLCBcCi0gICAgICAgICAgIjAuMDgxMTQ1LCAwLjA5MDgwMiwgMC4xNzc2NDUsIDAuMzIyMzY5LCAwLjQ2NzI0NiwgMC44MDQ4NjgsIDAuOTk3OTg5IiwgXAotICAgICAgICAgICIwLjA4ODg0OCwgMC4wOTg1MDEsIDAuMTg1MzMsIDAuMzMwMTAyLCAwLjQ3NDc4OSwgMC44MTI4NiwgMS4wMDU0OCIsIFwKLSAgICAgICAgICAiMC4wOTQ1NTMsIDAuMTA0MjA5LCAwLjE5MTAzNCwgMC4zMzU3NjksIDAuNDgwODMyLCAwLjgxODMyOSwgMS4wMTE5MyIsIFwKLSAgICAgICAgICAiMC4wOTk0NjEsIDAuMTA5MjEzLCAwLjE5NjA3MSwgMC4zNDA4NjIsIDAuNDg1NTg2LCAwLjgyMzIsIDEuMDE2MTkiLCBcCi0gICAgICAgICAgIjAuMTA2MDUyLCAwLjExNTc0NywgMC4yMDI1NDMsIDAuMzQ3Mjg0LCAwLjQ5MjAxMSwgMC44Mjk3MjksIDEuMDIzMjMiLCBcCi0gICAgICAgICAgIjAuMTExMjM1LCAwLjEyMDk2LCAwLjIwNzY5MywgMC4zNTI1MTMsIDAuNDk3MDY0LCAwLjgzNTAzMywgMS4wMjc3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwNTM1LCAwLjEyNDk5NCwgMC4zMDI3MDksIDAuNTk5MDMyLCAwLjg5NTg3NywgMS41ODg4OCwgMS45ODUxNyIsIFwKLSAgICAgICAgICAiMC4xMDU0MTksIDAuMTI0OTMsIDAuMzAyNzIsIDAuNjAwMTkxLCAwLjg5NTkxOSwgMS41ODkyLCAxLjk4NjM4IiwgXAotICAgICAgICAgICIwLjEwNTc4MiwgMC4xMjUzMywgMC4zMDI3MTksIDAuNTk4NzQxLCAwLjg5NzQ3OCwgMS41OTAyNiwgMS45ODM4NiIsIFwKLSAgICAgICAgICAiMC4xMDYyMjYsIDAuMTI1NjIyLCAwLjMwMjQ3LCAwLjU5OTk3OCwgMC44OTY0MDcsIDEuNTg4ODcsIDEuOTg1NjEiLCBcCi0gICAgICAgICAgIjAuMTA2NTkxLCAwLjEyNTkzNywgMC4zMDI1NywgMC41OTkxMjgsIDAuODk2MTA3LCAxLjU5MTUxLCAxLjk4NDAxIiwgXAotICAgICAgICAgICIwLjEwNzA5MywgMC4xMjYzNDUsIDAuMzAzMjA3LCAwLjU5OTEwMywgMC44OTU2MjIsIDEuNTkxNTgsIDEuOTg0MyIsIFwKLSAgICAgICAgICAiMC4xMDc2NiwgMC4xMjY4OTcsIDAuMzAzMDIyLCAwLjYwMDIxNCwgMC44OTc5MDgsIDEuNTg5NjksIDEuOTg0MyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTExNCwgMC4wMDExMTUsIDAuMDAxMTE2LCAwLjAwMTExNiwgMC4wMDExMTYsIDAuMDAxMTE2LCAwLjAwMTExNyIsIFwKLSAgICAgICAgICAiMC4wMDExMTgsIDAuMDAxMTE5LCAwLjAwMTEyMSwgMC4wMDExMjMsIDAuMDAxMTIxLCAwLjAwMTEyMywgMC4wMDExMjIiLCBcCi0gICAgICAgICAgIjAuMDAxMTg4LCAwLjAwMTE4OCwgMC4wMDExODksIDAuMDAxMTksIDAuMDAxMTksIDAuMDAxMTkxLCAwLjAwMTE5IiwgXAotICAgICAgICAgICIwLjAwMTI3NywgMC4wMDEyNzcsIDAuMDAxMjc4LCAwLjAwMTI3OCwgMC4wMDEyNzksIDAuMDAxMjc5LCAwLjAwMTI3OSIsIFwKLSAgICAgICAgICAiMC4wMDEzODgsIDAuMDAxMzg4LCAwLjAwMTM4NywgMC4wMDEzODcsIDAuMDAxMzg3LCAwLjAwMTM4NywgMC4wMDEzODYiLCBcCi0gICAgICAgICAgIjAuMDAxNTk1LCAwLjAwMTU3NywgMC4wMDE1OTEsIDAuMDAxNTkxLCAwLjAwMTU5LCAwLjAwMTU4OSwgMC4wMDE1ODkiLCBcCi0gICAgICAgICAgIjAuMDAxNzYxLCAwLjAwMTc3MiwgMC4wMDE3NjcsIDAuMDAxNzY2LCAwLjAwMTc2NSwgMC4wMDE3NjQsIDAuMDAxNzY1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyNTUxLCAwLjAwMjU1MSwgMC4wMDI1NTMsIDAuMDAyNTU0LCAwLjAwMjU1NCwgMC4wMDI1NTQsIDAuMDAyNTU0IiwgXAotICAgICAgICAgICIwLjAwMjUzMSwgMC4wMDI1MzIsIDAuMDAyNTM1LCAwLjAwMjUzNiwgMC4wMDI1MzYsIDAuMDAyNTM3LCAwLjAwMjUzNyIsIFwKLSAgICAgICAgICAiMC4wMDI1NjEsIDAuMDAyNTYxLCAwLjAwMjU2NSwgMC4wMDI1NjYsIDAuMDAyNTY2LCAwLjAwMjU2NiwgMC4wMDI1NjciLCBcCi0gICAgICAgICAgIjAuMDAyNjIzLCAwLjAwMjYyNCwgMC4wMDI2MjUsIDAuMDAyNjI1LCAwLjAwMjYyNSwgMC4wMDI2MjUsIDAuMDAyNjI1IiwgXAotICAgICAgICAgICIwLjAwMjcwNywgMC4wMDI3MDYsIDAuMDAyNzA1LCAwLjAwMjcwNSwgMC4wMDI3MDUsIDAuMDAyNzA1LCAwLjAwMjcwNSIsIFwKLSAgICAgICAgICAiMC4wMDI4NTcsIDAuMDAyODU3LCAwLjAwMjg1OCwgMC4wMDI4NTgsIDAuMDAyODU4LCAwLjAwMjg1OCwgMC4wMDI4NTgiLCBcCi0gICAgICAgICAgIjAuMDAzMDA2LCAwLjAwMzAwNywgMC4wMDMwMDcsIDAuMDAzMDA5LCAwLjAwMzAwOSwgMC4wMDMwMDksIDAuMDAzMDA5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwOTcyLCAwLjAwMDk3MywgMC4wMDA5NzUsIDAuMDAwOTc2LCAwLjAwMDk3NiwgMC4wMDA5NzcsIDAuMDAwOTc3IiwgXAotICAgICAgICAgICIwLjAwMDk1OSwgMC4wMDA5NiwgMC4wMDA5NjUsIDAuMDAwOTY3LCAwLjAwMDk2NywgMC4wMDA5NjgsIDAuMDAwOTY4IiwgXAotICAgICAgICAgICIwLjAwMTAyNywgMC4wMDEwMjksIDAuMDAxMDM1LCAwLjAwMTAzNywgMC4wMDEwMzgsIDAuMDAxMDM4LCAwLjAwMTAzOSIsIFwKLSAgICAgICAgICAiMC4wMDExMTMsIDAuMDAxMTE1LCAwLjAwMTEyMSwgMC4wMDExMjMsIDAuMDAxMTI0LCAwLjAwMTEyNywgMC4wMDExMjgiLCBcCi0gICAgICAgICAgIjAuMDAxMjE1LCAwLjAwMTIxNiwgMC4wMDEyMjIsIDAuMDAxMjI1LCAwLjAwMTIyNiwgMC4wMDEyMjcsIDAuMDAxMjI3IiwgXAotICAgICAgICAgICIwLjAwMTQwNSwgMC4wMDE0MDYsIDAuMDAxNDEsIDAuMDAxNDE1LCAwLjAwMTQxNiwgMC4wMDE0MTYsIDAuMDAxNDA4IiwgXAotICAgICAgICAgICIwLjAwMTU3MiwgMC4wMDE1NzUsIDAuMDAxNTc4LCAwLjAwMTU4MiwgMC4wMDE1ODQsIDAuMDAxNTg2LCAwLjAwMTU4NiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjI5MSwgMC4wMDIyOTIsIDAuMDAyMjk1LCAwLjAwMjI5NywgMC4wMDIyOTcsIDAuMDAyMjk3LCAwLjAwMjI5OSIsIFwKLSAgICAgICAgICAiMC4wMDIyOTEsIDAuMDAyMjkzLCAwLjAwMjI5NywgMC4wMDIyOTksIDAuMDAyMywgMC4wMDIzLCAwLjAwMjMiLCBcCi0gICAgICAgICAgIjAuMDAyMzYsIDAuMDAyMzYyLCAwLjAwMjM2NiwgMC4wMDIzNjgsIDAuMDAyMzY5LCAwLjAwMjM2OSwgMC4wMDIzNjkiLCBcCi0gICAgICAgICAgIjAuMDAyNDUsIDAuMDAyNDUxLCAwLjAwMjQ1NiwgMC4wMDI0NTgsIDAuMDAyNDU4LCAwLjAwMjQ1OSwgMC4wMDI0NTkiLCBcCi0gICAgICAgICAgIjAuMDAyNTUzLCAwLjAwMjU1NSwgMC4wMDI1NiwgMC4wMDI1NjMsIDAuMDAyNTYyLCAwLjAwMjU2MywgMC4wMDI1NjMiLCBcCi0gICAgICAgICAgIjAuMDAyNzM2LCAwLjAwMjczMiwgMC4wMDI3MzUsIDAuMDAyNzM3LCAwLjAwMjczOCwgMC4wMDI3MzgsIDAuMDAyNzM5IiwgXAotICAgICAgICAgICIwLjAwMjkwMSwgMC4wMDI5MDIsIDAuMDAyODk2LCAwLjAwMjg5MSwgMC4wMDI4OTksIDAuMDAyODkxLCAwLjAwMjkiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogT1IzWDIgKgotICogLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKE9SM1gyKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuNDEyMjk1OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2ODYyNzI7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjg0NTEyOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDY4NjI3MjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyNTcsIDAuMDAwMjczLCAwLjAwMDI3OSwgMC4wMDAyODQsIDAuMDAwMjg2LCAwLjAwMDI4NywgMC4wMDAyODUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA1MTQsIDAuMDAwNTE0LCAwLjAwMDUxNCwgMC4wMDA1MTQsIDAuMDAwNTE0LCAwLjAwMDUxNCwgMC4wMDA1MTQiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY4NTc2NjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2ODQxMjc7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjg1NzY2OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDI0NywgMC4wMDAyNzcsIDAuMDAwMjg0LCAwLjAwMDI4NiwgMC4wMDAyODYsIDAuMDAwMjg5LCAwLjAwMDI4OSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDMwNCwgMC4wMDAzMDQsIDAuMDAwMzA1LCAwLjAwMDMwNSwgMC4wMDAzMDUsIDAuMDAwMzA1LCAwLjAwMDMwNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQykgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjczOTAyOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDY3MzkwMjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2NzM1ODc7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMDcxLCAwLjAwMDA3MSwgMC4wMDAwNzEsIDAuMDAwMDcxLCAwLjAwMDA3MSwgMC4wMDAwNzEsIDAuMDAwMDcxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjQ5LCAwLjAwMDI0OSwgMC4wMDAyNDksIDAuMDAwMjQ5LCAwLjAwMDI0OSwgMC4wMDAyNDksIDAuMDAwMjQ5Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuNjkxNTU3OwotICAgIGZ1bmN0aW9uIDogIigoQStCKStDKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQzNjk3LCAwLjEyMTM1OSwgMC4xODMwNjUsIDAuMjYwMTU4LCAwLjMzNzI0MywgMC40MTQzMzUsIDAuNDkxMzg4IiwgXAotICAgICAgICAgICIwLjA1MTk5NiwgMC4xMjk2MzUsIDAuMTkxMzMzLCAwLjI2ODQ0LCAwLjM0NTU0MSwgMC40MjI2MDMsIDAuNDk5NjU5IiwgXAotICAgICAgICAgICIwLjA2MTU4OCwgMC4xMzkxODIsIDAuMjAwODg4LCAwLjI3Nzk4NCwgMC4zNTUwNywgMC40MzIxNzcsIDAuNTA5MjE0IiwgXAotICAgICAgICAgICIwLjA2OTI3OSwgMC4xNDY5MzcsIDAuMjA4NjI5LCAwLjI4NTcxOSwgMC4zNjI3OTUsIDAuNDM5OTQxLCAwLjUxNjkzMSIsIFwKLSAgICAgICAgICAiMC4wNzUzOTQsIDAuMTUzMTA1LCAwLjIxNDgzMSwgMC4yOTE5MDksIDAuMzY5MDUzLCAwLjQ0NjA3NSwgMC41MjMxNDEiLCBcCi0gICAgICAgICAgIjAuMDgzNDYyLCAwLjE2MTMyNiwgMC4yMjI5ODIsIDAuMzAwMDM4LCAwLjM3NzExMywgMC40NTQyMDgsIDAuNTMxMjk2IiwgXAotICAgICAgICAgICIwLjA4OTUwNSwgMC4xNjc2MjQsIDAuMjI5MjUsIDAuMzA2MzE2LCAwLjM4MzM3NCwgMC40NjA0NjIsIDAuNTM3NTA2Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0MDU1NywgMC4yMDAzMzYsIDAuMzMwMTgzLCAwLjQ5MzExNCwgMC42NTU4MzYsIDAuODE3MzI1LCAwLjk4MDMzMiIsIFwKLSAgICAgICAgICAiMC4wNDA1NjIsIDAuMjAwNTEsIDAuMzMwNDQyLCAwLjQ5MjYxOCwgMC42NTUwNTYsIDAuODE3ODAzLCAwLjk4MDM0OSIsIFwKLSAgICAgICAgICAiMC4wNDExODgsIDAuMjAwNTM1LCAwLjMzMDQyMywgMC40OTMwNjEsIDAuNjU1NzUzLCAwLjgxNzY0OSwgMC45ODAyNTkiLCBcCi0gICAgICAgICAgIjAuMDQyMzg3LCAwLjIwMDY3NCwgMC4zMzA0NTcsIDAuNDkzMDYxLCAwLjY1NTc0OCwgMC44MTg0OTYsIDAuOTgxMTQzIiwgXAotICAgICAgICAgICIwLjA0Mzg1NiwgMC4yMDA4NjcsIDAuMzMwNDk1LCAwLjQ5MjM2MiwgMC42NTQ5NTEsIDAuODE4NDMxLCAwLjk3OTc0OSIsIFwKLSAgICAgICAgICAiMC4wNDU3ODEsIDAuMjAxMDk3LCAwLjMzMDU2MSwgMC40OTMwNDYsIDAuNjU1NzE2LCAwLjgxODQwOSwgMC45ODExMTMiLCBcCi0gICAgICAgICAgIjAuMDQ2OTY3LCAwLjIwMTMyNSwgMC4zMzA0NjIsIDAuNDkyNzgsIDAuNjU1NjQ5LCAwLjgxNzQzOSwgMC45ODEwNDYiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDgwOTYyLCAwLjE2MjkxMSwgMC4yMjM3ODIsIDAuMjk5NiwgMC4zNzUzODYsIDAuNDUxMTg1LCAwLjUyNjk5MiIsIFwKLSAgICAgICAgICAiMC4wODYwMTgsIDAuMTY3OTY1LCAwLjIyODc4MiwgMC4zMDQ1ODQsIDAuMzgwMzU3LCAwLjQ1NjIwNiwgMC41MzE5NDMiLCBcCi0gICAgICAgICAgIjAuMDkwOTY5LCAwLjE3Mjg0OSwgMC4yMzM3MDgsIDAuMzA5NTE5LCAwLjM4NTI5OCwgMC40NjEwNjYsIDAuNTM2OTEyIiwgXAotICAgICAgICAgICIwLjA5NTQyMiwgMC4xNzczOTksIDAuMjM4Mjg1LCAwLjMxNDA4OCwgMC4zODk5MDksIDAuNDY1NzA4LCAwLjU0MTQ3NSIsIFwKLSAgICAgICAgICAiMC4wOTk1MiwgMC4xODE2OTEsIDAuMjQyNTQzLCAwLjMxODM1NSwgMC4zOTQxMzcsIDAuNDY5ODksIDAuNTQ1NzE3IiwgXAotICAgICAgICAgICIwLjEwNTI4NCwgMC4xODgwMTEsIDAuMjQ4ODY2LCAwLjMyNDY1OSwgMC40MDA0MzMsIDAuNDc2MjIsIDAuNTUyMDE3IiwgXAotICAgICAgICAgICIwLjEwOTg3NCwgMC4xOTMwNSwgMC4yNTM5MywgMC4zMjk3MiwgMC40MDU0NzcsIDAuNDgxMjU2LCAwLjU1NzAzNSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTA4OTEsIDAuMjAxMTY3LCAwLjMyNDU0OSwgMC40ODA3MTYsIDAuNjM3NTU1LCAwLjc5NDg5OCwgMC45NTEwNDUiLCBcCi0gICAgICAgICAgIjAuMDUwODc1LCAwLjIwMTE2MiwgMC4zMjQ2ODksIDAuNDgwNzM2LCAwLjYzNzQ5NywgMC43OTUwMDIsIDAuOTUxMTk1IiwgXAotICAgICAgICAgICIwLjA1MDgxOSwgMC4yMDExNjksIDAuMzI0NTA2LCAwLjQ4MDY4LCAwLjYzNjg5OSwgMC43OTQ1OTEsIDAuOTUxMTQ5IiwgXAotICAgICAgICAgICIwLjA1MTEwNywgMC4yMDEzMTcsIDAuMzI0NDkyLCAwLjQ4MDgyNCwgMC42Mzc3NzksIDAuNzkzMzU5LCAwLjk1MTEyIiwgXAotICAgICAgICAgICIwLjA1MTgxNiwgMC4yMDE0ODYsIDAuMzI0OTAxLCAwLjQ4MDkzNSwgMC42MzY2MjEsIDAuNzk0NzQsIDAuOTUxMTA5IiwgXAotICAgICAgICAgICIwLjA1MzAxLCAwLjIwMjE4OSwgMC4zMjQ5NzcsIDAuNDgxMDcxLCAwLjYzNjk5OSwgMC43OTQ5NzMsIDAuOTUxMTQ1IiwgXAotICAgICAgICAgICIwLjA1NDExNiwgMC4yMDI2NDEsIDAuMzI1NTM2LCAwLjQ4MDgzMywgMC42MzcxNzksIDAuNzk0ODU5LCAwLjk1MTEwOSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDIxNTgsIDAuMTE5NjU4LCAwLjE4MTM4MSwgMC4yNTg0MjIsIDAuMzM1NTA4LCAwLjQxMjU3MSwgMC40ODk2MzYiLCBcCi0gICAgICAgICAgIjAuMDUwNDA5LCAwLjEyNzk0MSwgMC4xODk2NSwgMC4yNjY3MjksIDAuMzQzNzc2LCAwLjQyMDg5MiwgMC40OTc5MyIsIFwKLSAgICAgICAgICAiMC4wNTk2NzIsIDAuMTM3MTk2LCAwLjE5ODg4NCwgMC4yNzU5NTUsIDAuMzUzMDI3LCAwLjQzMDA5NSwgMC41MDcyMDMiLCBcCi0gICAgICAgICAgIjAuMDY2OTQxLCAwLjE0NDU0NCwgMC4yMDYyMjcsIDAuMjgzMzQxLCAwLjM2MDM3NSwgMC40Mzc0NDMsIDAuNTE0NDk2IiwgXAotICAgICAgICAgICIwLjA3MjcyOCwgMC4xNTA1MDMsIDAuMjEyMTM5LCAwLjI4OTIxNCwgMC4zNjYyOTYsIDAuNDQzMzM4LCAwLjUyMDQyOCIsIFwKLSAgICAgICAgICAiMC4wNzk5ODgsIDAuMTU3ODU0LCAwLjIxOTc1OCwgMC4yOTY4MDUsIDAuMzczODc4LCAwLjQ1MDcxNSwgMC41MjgwMDEiLCBcCi0gICAgICAgICAgIjAuMDg1NDM3LCAwLjE2MzU1NCwgMC4yMjUxODIsIDAuMzAyMjQzLCAwLjM3OTI5NCwgMC40NTYzMzgsIDAuNTMzNDE1Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0MDEyOCwgMC4yMDAzNzEsIDAuMzI5ODY5LCAwLjQ5MjUzMywgMC42NTUwOTYsIDAuODE3Njg5LCAwLjk4MTI1OCIsIFwKLSAgICAgICAgICAiMC4wNDAxMTUsIDAuMjAwMzY1LCAwLjMzMDM3LCAwLjQ5MzAyOCwgMC42NTUyNCwgMC44MTg0ODMsIDAuOTc5NiIsIFwKLSAgICAgICAgICAiMC4wNDA5ODcsIDAuMjAwMzk3LCAwLjMyOTk4NywgMC40OTI5OCwgMC42NTUxNjQsIDAuODE3NzU3LCAwLjk4MDA2MiIsIFwKLSAgICAgICAgICAiMC4wNDIxODYsIDAuMjAwNDY1LCAwLjMzMDA3NSwgMC40OTI5NjksIDAuNjU1MTc2LCAwLjgxODM4LCAwLjk4MTAwOSIsIFwKLSAgICAgICAgICAiMC4wNDMzOSwgMC4yMDA3MDYsIDAuMzMwMzM4LCAwLjQ5MjkyNCwgMC42NTQ3NTgsIDAuODE4Mjc0LCAwLjk4MTA0OCIsIFwKLSAgICAgICAgICAiMC4wNDU2NjYsIDAuMjAwODQyLCAwLjMzMDE2NywgMC40OTI4OCwgMC42NTU1NTgsIDAuODE4MjgzLCAwLjk4MDk1NiIsIFwKLSAgICAgICAgICAiMC4wNDY4ODksIDAuMjAxMTI0LCAwLjMzMDM2OSwgMC40OTI3NTQsIDAuNjU1MTk3LCAwLjgxNzU3NSwgMC45ODA5MDIiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc4NTE0LCAwLjE2MDQ2NCwgMC4yMjEzMTEsIDAuMjk3MTM3LCAwLjM3MjkyNCwgMC40NDg2ODMsIDAuNTI0NDcxIiwgXAotICAgICAgICAgICIwLjA4NDIwNCwgMC4xNjYyMTUsIDAuMjI3MDczLCAwLjMwMjg5MSwgMC4zNzg2OTUsIDAuNDU0NDU0LCAwLjUzMDI4NyIsIFwKLSAgICAgICAgICAiMC4wOTEzMTcsIDAuMTczMjQ2LCAwLjIzNDEwMSwgMC4zMDk5MjQsIDAuMzg1NzA5LCAwLjQ2MTQ3MSwgMC41MzczMTEiLCBcCi0gICAgICAgICAgIjAuMDk4MzMxLCAwLjE4MDI2NywgMC4yNDExMzUsIDAuMzE2OTcxLCAwLjM5Mjc1NiwgMC40Njg1NTQsIDAuNTQ0MzMzIiwgXAotICAgICAgICAgICIwLjEwNDY4NSwgMC4xODY4OSwgMC4yNDc3MjgsIDAuMzIzNTM1LCAwLjM5OTMxNiwgMC40NzUwNzcsIDAuNTUwODY2IiwgXAotICAgICAgICAgICIwLjExMzU0MSwgMC4xOTYyMzQsIDAuMjU3MTMzLCAwLjMzMjkyOCwgMC40MDg3MjIsIDAuNDg0NDgyLCAwLjU2MDI2MiIsIFwKLSAgICAgICAgICAiMC4xMjA2NDksIDAuMjAzNjMxLCAwLjI2NDU4MywgMC4zNDAzNjQsIDAuNDE2MTE5LCAwLjQ5MTg4NywgMC41Njc2NzYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDUwOTg2LCAwLjIwMTIxLCAwLjMyNDQzNywgMC40ODA4MjYsIDAuNjM3Njk3LCAwLjc5NDc5OCwgMC45NTExNzYiLCBcCi0gICAgICAgICAgIjAuMDUwNzgzLCAwLjIwMTE2MiwgMC4zMjQ1MzksIDAuNDgwMzE3LCAwLjYzNjc3LCAwLjc5MzkyMiwgMC45NTExMjUiLCBcCi0gICAgICAgICAgIjAuMDUwNzg5LCAwLjIwMTE5OCwgMC4zMjQ1MzYsIDAuNDgwNzc4LCAwLjYzNzY4LCAwLjc5NDc2NSwgMC45NTA0MzQiLCBcCi0gICAgICAgICAgIjAuMDUxMjEsIDAuMjAxMzQxLCAwLjMyNDYyLCAwLjQ4MDgxNiwgMC42Mzc2MjQsIDAuNzk0OTE5LCAwLjk1MjMyMiIsIFwKLSAgICAgICAgICAiMC4wNTIxMDIsIDAuMjAxNjIzLCAwLjMyNDYzMywgMC40ODA5MTUsIDAuNjM3NzI5LCAwLjc5NDgwNSwgMC45NTIyOTMiLCBcCi0gICAgICAgICAgIjAuMDUzMzA1LCAwLjIwMjM0OCwgMC4zMjUwNjUsIDAuNDgwNTc2LCAwLjYzNjgwMywgMC43OTQ3NTksIDAuOTUyMzEyIiwgXAotICAgICAgICAgICIwLjA1NDQ3NywgMC4yMDI5NTQsIDAuMzI1NTE1LCAwLjQ4MDkzNiwgMC42MzcyODYsIDAuNzk0ODUyLCAwLjk1MjM5OCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDAxODYsIDAuMTE3NjUzLCAwLjE3OTMyOCwgMC4yNTYzNCwgMC4zMzM0MjksIDAuNDEwNzA3LCAwLjQ4Nzk4NSIsIFwKLSAgICAgICAgICAiMC4wNDg0MDYsIDAuMTI1ODMsIDAuMTg3NTI0LCAwLjI2NDYzNCwgMC4zNDE5NTcsIDAuNDE5MTMsIDAuNDk1OTMiLCBcCi0gICAgICAgICAgIjAuMDU3MjExLCAwLjEzNDY2MiwgMC4xOTYzODIsIDAuMjczNDY5LCAwLjM1MDc3MywgMC40Mjc4MTgsIDAuNTA0NzIiLCBcCi0gICAgICAgICAgIjAuMDYzNzkyLCAwLjE0MTM5NiwgMC4yMDMxNDQsIDAuMjgwMjQ4LCAwLjM1NzM2OSwgMC40MzQ2MTUsIDAuNTExNjIyIiwgXAotICAgICAgICAgICIwLjA2OTE0LCAwLjE0NjkxNywgMC4yMDg1NDUsIDAuMjg1NjE4LCAwLjM2MjczNywgMC40Mzk5MDMsIDAuNTE3Mjc2IiwgXAotICAgICAgICAgICIwLjA3NTkxNiwgMC4xNTM2MTgsIDAuMjE1MjIzLCAwLjI5MjIyNCwgMC4zNjkzOTksIDAuNDQ2MzksIDAuNTIzNDQ4IiwgXAotICAgICAgICAgICIwLjA4MDY3NCwgMC4xNTg5NCwgMC4yMjAyODgsIDAuMjk3MywgMC4zNzQzOTgsIDAuNDUxMjk0LCAwLjUyODQ0NCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzk4NzUsIDAuMjAwMjIzLCAwLjMzMDM2LCAwLjQ5MjY5OSwgMC42NTQ2NTYsIDAuODE2OTk4LCAwLjk3OTk3OCIsIFwKLSAgICAgICAgICAiMC4wNDAwMDIsIDAuMjAwMjU3LCAwLjMzMDM0NiwgMC40OTIyNTMsIDAuNjU0ODA5LCAwLjgxNzI5MiwgMC45ODEyMyIsIFwKLSAgICAgICAgICAiMC4wNDA5NjMsIDAuMjAwMzUsIDAuMzI5NjgsIDAuNDkyMjA2LCAwLjY1NDgxMiwgMC44MTc0NTksIDAuOTc5NzM1IiwgXAotICAgICAgICAgICIwLjA0MjM0MiwgMC4yMDA0NDcsIDAuMzI5ODc4LCAwLjQ5MjM2NSwgMC42NTUxMjgsIDAuODE3Mzg0LCAwLjk3OTk2MSIsIFwKLSAgICAgICAgICAiMC4wNDM2MiwgMC4yMDA2OTQsIDAuMzMwNDg4LCAwLjQ5MjQ1NiwgMC42NTQ3MzgsIDAuODE3NzgsIDAuOTc5Nzk4IiwgXAotICAgICAgICAgICIwLjA0NTUwMywgMC4yMDA5MjQsIDAuMzMwNDA5LCAwLjQ5MjM0MywgMC42NTQ5MTUsIDAuODE3NzkzLCAwLjk4MDg5NyIsIFwKLSAgICAgICAgICAiMC4wNDcxNTQsIDAuMjAxMTksIDAuMzMwMzY2LCAwLjQ5MjYxOSwgMC42NTU5MjMsIDAuODE4Njc4LCAwLjk3OTc1MSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzM1MTgsIDAuMTU1NTU1LCAwLjIxNjQ0NCwgMC4yOTIyNzMsIDAuMzY4MDc1LCAwLjQ0Mzg1MSwgMC41MTk2NTkiLCBcCi0gICAgICAgICAgIjAuMDgwNDczLCAwLjE2MjQ2MiwgMC4yMjMzMTgsIDAuMjk5MTQ1LCAwLjM3NDkzMywgMC40NTA2OTYsIDAuNTI2NTA1IiwgXAotICAgICAgICAgICIwLjA4OTc2OCwgMC4xNzE2OSwgMC4yMzI1NTYsIDAuMzA4MzcxLCAwLjM4NDE1MywgMC40NTk5MjUsIDAuNTM1Nzg0IiwgXAotICAgICAgICAgICIwLjA5ODY4LCAwLjE4MDgxOSwgMC4yNDE2ODgsIDAuMzE3NTI2LCAwLjM5MzMwNiwgMC40NjkxMTUsIDAuNTQ0ODk0IiwgXAotICAgICAgICAgICIwLjEwNjgzNCwgMC4xODg3MTMsIDAuMjQ5NTU1LCAwLjMyNTM3MiwgMC40MDExNTgsIDAuNDc2OTE3LCAwLjU1Mjc2IiwgXAotICAgICAgICAgICIwLjExODI4NCwgMC4yMDA2NjUsIDAuMjYxNDk1LCAwLjMzNzI3NiwgMC40MTMwNjcsIDAuNDg4ODQ1LCAwLjU2NDU5OSIsIFwKLSAgICAgICAgICAiMC4xMjcyMzUsIDAuMjA5OTQ0LCAwLjI3MDk1NCwgMC4zNDY3MTEsIDAuNDIyNDg1LCAwLjQ5ODIyNSwgMC41NzM5OTkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDUwODQ0LCAwLjIwMTE5OCwgMC4zMjQ0MiwgMC40ODAzMDMsIDAuNjM2NTE0LCAwLjc5NDc4OSwgMC45NTExMDIiLCBcCi0gICAgICAgICAgIjAuMDUwODE5LCAwLjIwMTEzMiwgMC4zMjQ2NjksIDAuNDgwNzg5LCAwLjYzNzY4MiwgMC43OTQ3NjMsIDAuOTUxMDIiLCBcCi0gICAgICAgICAgIjAuMDUwNzE4LCAwLjIwMTE4MywgMC4zMjQ1MjMsIDAuNDgwNzM5LCAwLjYzNzU1MSwgMC43OTQ3MTcsIDAuOTUwNTg0IiwgXAotICAgICAgICAgICIwLjA1MTUyMSwgMC4yMDE0MDksIDAuMzI0NjI1LCAwLjQ4MDg5MSwgMC42MzY2ODcsIDAuNzkzNTk4LCAwLjk1MTA5OSIsIFwKLSAgICAgICAgICAiMC4wNTIxNTYsIDAuMjAxNzE5LCAwLjMyNTA0NiwgMC40ODA5MzIsIDAuNjM3NzYsIDAuNzk0ODA0LCAwLjk1MTI4NyIsIFwKLSAgICAgICAgICAiMC4wNTM2NzgsIDAuMjAyNTQ3LCAwLjMyNTE2NCwgMC40ODA2NTgsIDAuNjM3OTE1LCAwLjc5NTAzMiwgMC45NTIwNDEiLCBcCi0gICAgICAgICAgIjAuMDU0ODUsIDAuMjAzMDM5LCAwLjMyNTU2NiwgMC40ODA3NjIsIDAuNjM2OTkyLCAwLjc5NDgzOCwgMC45NTIyMTIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDMxMjUsIDAuMDAzMTU4LCAwLjAwMzE2MiwgMC4wMDMxNjQsIDAuMDAzMTY2LCAwLjAwMzE2NiwgMC4wMDMxNjgiLCBcCi0gICAgICAgICAgIjAuMDAzMTAzLCAwLjAwMzE0MiwgMC4wMDMxNDgsIDAuMDAzMTUsIDAuMDAzMTUxLCAwLjAwMzE1MywgMC4wMDMxNTYiLCBcCi0gICAgICAgICAgIjAuMDAzMTQ1LCAwLjAwMzE3NSwgMC4wMDMxODEsIDAuMDAzMTg1LCAwLjAwMzE4NSwgMC4wMDMxODcsIDAuMDAzMTg4IiwgXAotICAgICAgICAgICIwLjAwMzI0LCAwLjAwMzIzOCwgMC4wMDMyNDIsIDAuMDAzMjQ1LCAwLjAwMzI0NSwgMC4wMDMyNDcsIDAuMDAzMjQ4IiwgXAotICAgICAgICAgICIwLjAwMzMzOSwgMC4wMDMzMjEsIDAuMDAzMzE5LCAwLjAwMzMyMiwgMC4wMDMzMjMsIDAuMDAzMzI0LCAwLjAwMzMyNCIsIFwKLSAgICAgICAgICAiMC4wMDM1NDQsIDAuMDAzNDc0LCAwLjAwMzQ3LCAwLjAwMzQ2OCwgMC4wMDM0NjcsIDAuMDAzNDY5LCAwLjAwMzQ2NSIsIFwKLSAgICAgICAgICAiMC4wMDM2ODQsIDAuMDAzNjEsIDAuMDAzNjA1LCAwLjAwMzYwNCwgMC4wMDM2MDUsIDAuMDAzNjAzLCAwLjAwMzYwMyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNTE1MywgMC4wMDUxNDEsIDAuMDA1MTQxLCAwLjAwNTE0MiwgMC4wMDUxNDIsIDAuMDA1MTQyLCAwLjAwNTE0MiIsIFwKLSAgICAgICAgICAiMC4wMDUxMSwgMC4wMDUxMTEsIDAuMDA1MTE0LCAwLjAwNTExNiwgMC4wMDUxMTcsIDAuMDA1MTE3LCAwLjAwNTExOCIsIFwKLSAgICAgICAgICAiMC4wMDUxMDYsIDAuMDA1MTA2LCAwLjAwNTExLCAwLjAwNTExMiwgMC4wMDUxMTMsIDAuMDA1MTEzLCAwLjAwNTExNCIsIFwKLSAgICAgICAgICAiMC4wMDUxMzMsIDAuMDA1MTIxLCAwLjAwNTEyNSwgMC4wMDUxMjcsIDAuMDA1MTI4LCAwLjAwNTEyOSwgMC4wMDUxMyIsIFwKLSAgICAgICAgICAiMC4wMDUxODUsIDAuMDA1MTU3LCAwLjAwNTE1OCwgMC4wMDUxNiwgMC4wMDUxNiwgMC4wMDUxNjEsIDAuMDA1MTYxIiwgXAotICAgICAgICAgICIwLjAwNTI5NCwgMC4wMDUyNDIsIDAuMDA1MjM5LCAwLjAwNTIzOCwgMC4wMDUyMzUsIDAuMDA1MjM2LCAwLjAwNTIzNiIsIFwKLSAgICAgICAgICAiMC4wMDU0MjksIDAuMDA1MzQxLCAwLjAwNTMzNCwgMC4wMDUzMzIsIDAuMDA1MzI5LCAwLjAwNTMyOCwgMC4wMDUzMjciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI5MzksIDAuMDAyOTk4LCAwLjAwMzAwOSwgMC4wMDMwMTMsIDAuMDAzMDE1LCAwLjAwMzAxNiwgMC4wMDMwMTciLCBcCi0gICAgICAgICAgIjAuMDAyOTE4LCAwLjAwMjk5MSwgMC4wMDMwMDEsIDAuMDAzMDA2LCAwLjAwMzAwOSwgMC4wMDMwMTEsIDAuMDAzMDEyIiwgXAotICAgICAgICAgICIwLjAwMjk1MSwgMC4wMDMwMTEsIDAuMDAzMDIzLCAwLjAwMzAyOSwgMC4wMDMwMzMsIDAuMDAzMDM1LCAwLjAwMzAzNiIsIFwKLSAgICAgICAgICAiMC4wMDMwMiwgMC4wMDMwNjQsIDAuMDAzMDc3LCAwLjAwMzA4NCwgMC4wMDMwODgsIDAuMDAzMDksIDAuMDAzMDkxIiwgXAotICAgICAgICAgICIwLjAwMzExMywgMC4wMDMxMzUsIDAuMDAzMTQ1LCAwLjAwMzE1MSwgMC4wMDMxNTQsIDAuMDAzMTU5LCAwLjAwMzE1NyIsIFwKLSAgICAgICAgICAiMC4wMDMyOTcsIDAuMDAzMjc4LCAwLjAwMzI4NCwgMC4wMDMyOTIsIDAuMDAzMjk2LCAwLjAwMzI5NywgMC4wMDMzMDEiLCBcCi0gICAgICAgICAgIjAuMDAzNDIsIDAuMDAzNDAzLCAwLjAwMzQxNCwgMC4wMDM0MjQsIDAuMDAzNDI4LCAwLjAwMzQyMSwgMC4wMDM0MjEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQ4OTEsIDAuMDA0ODksIDAuMDA0ODk0LCAwLjAwNDg5NywgMC4wMDQ4OTgsIDAuMDA0ODk5LCAwLjAwNDg5OSIsIFwKLSAgICAgICAgICAiMC4wMDQ4NSwgMC4wMDQ4NjMsIDAuMDA0ODY5LCAwLjAwNDg3MiwgMC4wMDQ4NzQsIDAuMDA0ODc1LCAwLjAwNDg3NiIsIFwKLSAgICAgICAgICAiMC4wMDQ4NzMsIDAuMDA0ODcsIDAuMDA0ODc1LCAwLjAwNDg3OCwgMC4wMDQ4NzksIDAuMDA0ODgsIDAuMDA0ODgxIiwgXAotICAgICAgICAgICIwLjAwNDkyOCwgMC4wMDQ4OTcsIDAuMDA0OTAxLCAwLjAwNDkwNSwgMC4wMDQ5MDYsIDAuMDA0OTA3LCAwLjAwNDkwOCIsIFwKLSAgICAgICAgICAiMC4wMDUwMjQsIDAuMDA0OTU3LCAwLjAwNDk1NSwgMC4wMDQ5NTUsIDAuMDA0OTU0LCAwLjAwNDk1NCwgMC4wMDQ5NTQiLCBcCi0gICAgICAgICAgIjAuMDA1MDksIDAuMDA1MDM3LCAwLjAwNTAzOSwgMC4wMDUwNCwgMC4wMDUwNDEsIDAuMDA1MDQyLCAwLjAwNTA0MyIsIFwKLSAgICAgICAgICAiMC4wMDUyNDEsIDAuMDA1MTUsIDAuMDA1MTQ2LCAwLjAwNTE0MywgMC4wMDUxNDIsIDAuMDA1MTQyLCAwLjAwNTE0MiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjcyLCAwLjAwMjc3OSwgMC4wMDI3ODYsIDAuMDAyNzg3LCAwLjAwMjc4OSwgMC4wMDI3OSwgMC4wMDI3OTEiLCBcCi0gICAgICAgICAgIjAuMDAyNjk5LCAwLjAwMjc2OSwgMC4wMDI3NzQsIDAuMDAyNzgxLCAwLjAwMjc4NCwgMC4wMDI3ODYsIDAuMDAyNzg2IiwgXAotICAgICAgICAgICIwLjAwMjczMywgMC4wMDI3OTMsIDAuMDAyODA1LCAwLjAwMjgxLCAwLjAwMjgxMywgMC4wMDI4MTUsIDAuMDAyODE2IiwgXAotICAgICAgICAgICIwLjAwMjgxMiwgMC4wMDI4NDcsIDAuMDAyODU4LCAwLjAwMjg2NCwgMC4wMDI4NjcsIDAuMDAyODcsIDAuMDAyODcyIiwgXAotICAgICAgICAgICIwLjAwMjksIDAuMDAyOTE0LCAwLjAwMjkzMSwgMC4wMDI5MzUsIDAuMDAyOTM5LCAwLjAwMjkzNiwgMC4wMDI5NDIiLCBcCi0gICAgICAgICAgIjAuMDAzMDMzLCAwLjAwMzA1MSwgMC4wMDMwNTcsIDAuMDAzMDcxLCAwLjAwMzA3MywgMC4wMDMwNzQsIDAuMDAzMDc3IiwgXAotICAgICAgICAgICIwLjAwMzE3OCwgMC4wMDMxNzYsIDAuMDAzMTg1LCAwLjAwMzE5MSwgMC4wMDMxOTYsIDAuMDAzMTkyLCAwLjAwMzE4OSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDYxOCwgMC4wMDQ2MjksIDAuMDA0NjM1LCAwLjAwNDYzOSwgMC4wMDQ2NDEsIDAuMDA0NjQyLCAwLjAwNDY0MyIsIFwKLSAgICAgICAgICAiMC4wMDQ1ODksIDAuMDA0NjEyLCAwLjAwNDYyMiwgMC4wMDQ2MjcsIDAuMDA0NjMsIDAuMDA0NjMyLCAwLjAwNDYzMyIsIFwKLSAgICAgICAgICAiMC4wMDQ2NDMsIDAuMDA0NjU0LCAwLjAwNDY2MywgMC4wMDQ2NjksIDAuMDA0NjcyLCAwLjAwNDY3NCwgMC4wMDQ2NzYiLCBcCi0gICAgICAgICAgIjAuMDA0NzYxLCAwLjAwNDcxLCAwLjAwNDcxNSwgMC4wMDQ3MTgsIDAuMDA0NzIxLCAwLjAwNDcyMiwgMC4wMDQ3MjMiLCBcCi0gICAgICAgICAgIjAuMDA0ODc0LCAwLjAwNDc5MywgMC4wMDQ3OTcsIDAuMDA0ODAxLCAwLjAwNDgwMywgMC4wMDQ4MDUsIDAuMDA0ODA2IiwgXAotICAgICAgICAgICIwLjAwNTA0NiwgMC4wMDQ5NTMsIDAuMDA0OTQ2LCAwLjAwNDk0NSwgMC4wMDQ5NDUsIDAuMDA0OTQ1LCAwLjAwNDk0NSIsIFwKLSAgICAgICAgICAiMC4wMDUxNzUsIDAuMDA1MDU0LCAwLjAwNTA1LCAwLjAwNTA0OSwgMC4wMDUwNSwgMC4wMDUwNDksIDAuMDA1MDQ5Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IE9SM1g0ICoKLSAqIC0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChPUjNYNCkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjY4NDQ5NDsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwOTM5ODI4OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDkzNTQ0NzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA5Mzk4Mjg7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNDUxLCAwLjAwMDQ4MSwgMC4wMDA0ODksIDAuMDAwNDk3LCAwLjAwMDUwNCwgMC4wMDA1MDIsIDAuMDAwNTA0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwOTUxLCAwLjAwMDk1MSwgMC4wMDA5NTEsIDAuMDAwOTUxLCAwLjAwMDk1MSwgMC4wMDA5NTEsIDAuMDAwOTUxIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA5NzA3Mjg7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwOTY3NzczOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDk3MDcyODsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA0NDEsIDAuMDAwNDkxLCAwLjAwMDUwMywgMC4wMDA1MDYsIDAuMDAwNTA3LCAwLjAwMDUwNywgMC4wMDA1MDUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA1MzgsIDAuMDAwNTM4LCAwLjAwMDUzOSwgMC4wMDA1MzksIDAuMDAwNTM5LCAwLjAwMDUzOSwgMC4wMDA1MzkiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEMpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDk3NDMxNjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA5NzQzMTY7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwOTczODYxOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDEyNCwgMC4wMDAxMjQsIDAuMDAwMTI0LCAwLjAwMDEyNCwgMC4wMDAxMjQsIDAuMDAwMTI0LCAwLjAwMDEyNCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDM2NywgMC4wMDAzNjcsIDAuMDAwMzY3LCAwLjAwMDM2NywgMC4wMDAzNjcsIDAuMDAwMzY2LCAwLjAwMDM2NiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAxLjM4MzsKLSAgICBmdW5jdGlvbiA6ICIoKEErQikrQykiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM2NDQzLCAwLjA5MTg5MSwgMC4xNDU5NTIsIDAuMTg0NTYxLCAwLjI0NjI1OSwgMC4zMDAyMjgsIDAuMzc3MzQ0IiwgXAotICAgICAgICAgICIwLjA0NDg4MywgMC4xMDAyNTIsIDAuMTU0MzE3LCAwLjE5MjkwMywgMC4yNTQ2MjUsIDAuMzA4NTk4LCAwLjM4NTcxIiwgXAotICAgICAgICAgICIwLjA1NDkwOCwgMC4xMTAyNjcsIDAuMTY0MzIxLCAwLjIwMjkwMiwgMC4yNjQ2MywgMC4zMTg2NjMsIDAuMzk1Nzc2IiwgXAotICAgICAgICAgICIwLjA2Mjk4LCAwLjExODU3MiwgMC4xNzI2MDYsIDAuMjExMTk4LCAwLjI3Mjg5NiwgMC4zMjY4ODEsIDAuNDA0MDExIiwgXAotICAgICAgICAgICIwLjA2OTM2OSwgMC4xMjUyNTcsIDAuMTc5MjkxLCAwLjIxNzg3MSwgMC4yNzk1NTUsIDAuMzMzNTUxLCAwLjQxMDY3NiIsIFwKLSAgICAgICAgICAiMC4wNzc4NDEsIDAuMTM0MjU3LCAwLjE4ODE2OCwgMC4yMjY3MzUsIDAuMjg4NDUsIDAuMzQyMzg1LCAwLjQxOTUwMiIsIFwKLSAgICAgICAgICAiMC4wODQwNjMsIDAuMTQwODU5LCAwLjE5NDc3MSwgMC4yMzMzMTEsIDAuMjk0OTc2LCAwLjM0ODk4OSwgMC40MjYwNDQiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjU5MTcsIDAuMTM1OTg5LCAwLjI0OTcsIDAuMzMxMDAxLCAwLjQ2MTIwNywgMC41NzUxMDIsIDAuNzM3MzA4IiwgXAotICAgICAgICAgICIwLjAyNTkxLCAwLjEzNjEyNCwgMC4yNDk2NzgsIDAuMzMwOTc3LCAwLjQ2MTE3OCwgMC41NzUxNTEsIDAuNzM3OTEzIiwgXAotICAgICAgICAgICIwLjAyNjY1OSwgMC4xMzYzMzcsIDAuMjQ5Njg2LCAwLjMzMDc0MiwgMC40NjA2NywgMC41NzQzOTksIDAuNzM3OTQ1IiwgXAotICAgICAgICAgICIwLjAyODI5MSwgMC4xMzY0NTksIDAuMjQ5NTE4LCAwLjMzMDk3OSwgMC40NjA4MjYsIDAuNTc0NjU1LCAwLjczNzg5MyIsIFwKLSAgICAgICAgICAiMC4wMjk2NzIsIDAuMTM2OSwgMC4yNDk4NDEsIDAuMzMwNjcxLCAwLjQ2MDg2MiwgMC41NzQyNiwgMC43Mzc4OSIsIFwKLSAgICAgICAgICAiMC4wMzIwODIsIDAuMTM3NTczLCAwLjI0OTg5NywgMC4zMzEwODgsIDAuNDYxMiwgMC41NzUwNTYsIDAuNzM3ODY0IiwgXAotICAgICAgICAgICIwLjAzMzUzMSwgMC4xMzg0MDMsIDAuMjQ5OTk4LCAwLjMzMTAwOCwgMC40NjA5OTEsIDAuNTc1MDY3LCAwLjczNzgzOCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3MDUzOSwgMC4xMzMxMzEsIDAuMTg3NjY3LCAwLjIyNjE5NiwgMC4yODc3NiwgMC4zNDE1ODMsIDAuNDE4NDU4IiwgXAotICAgICAgICAgICIwLjA3NTc3MywgMC4xMzg0NDgsIDAuMTkyOTU4LCAwLjIzMTQ3NSwgMC4yOTMwMjEsIDAuMzQ2ODU0LCAwLjQyMzczIiwgXAotICAgICAgICAgICIwLjA4MTExLCAwLjE0MzcwMSwgMC4xOTgyMDksIDAuMjM2NzE3LCAwLjI5ODI2MywgMC4zNTIxMDksIDAuNDI4OTg3IiwgXAotICAgICAgICAgICIwLjA4NTg5OSwgMC4xNDg1NzQsIDAuMjAzMDk0LCAwLjI0MTYwNCwgMC4zMDMxNTQsIDAuMzU3MDA3LCAwLjQzMzkxMSIsIFwKLSAgICAgICAgICAiMC4wOTAyNTYsIDAuMTUzMTc2LCAwLjIwNzcxMywgMC4yNDYyMzMsIDAuMzA3NzU2LCAwLjM2MTU5OCwgMC40Mzg0NzEiLCBcCi0gICAgICAgICAgIjAuMDk2MTU4LCAwLjE1OTY4NSwgMC4yMTQzMjgsIDAuMjUyODQ3LCAwLjMxNDM2NSwgMC4zNjgxNjEsIDAuNDQ1MDc5IiwgXAotICAgICAgICAgICIwLjEwMDgyMSwgMC4xNjQ4NzIsIDAuMjE5NTM3LCAwLjI1ODA1NiwgMC4zMTk1ODksIDAuMzczMzc2LCAwLjQ1MDIzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM1Nzk2LCAwLjE0Mjc2NCwgMC4yNTEyMDUsIDAuMzMwMTAzLCAwLjQ1Njg2NCwgMC41NjgzNCwgMC43Mjc4MDQiLCBcCi0gICAgICAgICAgIjAuMDM1NzkyLCAwLjE0MjcyMiwgMC4yNTExODQsIDAuMzMwMDk3LCAwLjQ1Njg0NCwgMC41NjgzNDEsIDAuNzI3ODE3IiwgXAotICAgICAgICAgICIwLjAzNTY2NSwgMC4xNDI2OTksIDAuMjUxMjM4LCAwLjMzMDA4NiwgMC40NTY4NywgMC41NjgzNzgsIDAuNzI2OTg1IiwgXAotICAgICAgICAgICIwLjAzNjE3MiwgMC4xNDI5MDgsIDAuMjUxMzM3LCAwLjMyOTkxMywgMC40NTY4OTgsIDAuNTY4NDA4LCAwLjcyNzk5OCIsIFwKLSAgICAgICAgICAiMC4wMzY4MzYsIDAuMTQzMTc4LCAwLjI1MTUwNSwgMC4zMzAyNzMsIDAuNDU2NTYyLCAwLjU2ODQyNCwgMC43Mjc4NDkiLCBcCi0gICAgICAgICAgIjAuMDM4MDk3LCAwLjE0NDAxOSwgMC4yNTE5OTQsIDAuMzMwMTcsIDAuNDU3MjM3LCAwLjU2ODM5MywgMC43MjgwNjgiLCBcCi0gICAgICAgICAgIjAuMDM4NzQ5LCAwLjE0NDY3NSwgMC4yNTI0ODYsIDAuMzMwNjY3LCAwLjQ1NzUzOCwgMC41NjgwOTcsIDAuNzI3OTA3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM0OTA1LCAwLjA5MDE1MiwgMC4xNDQxOCwgMC4xODI3OTgsIDAuMjQ0NDgzLCAwLjI5ODQ3MSwgMC4zNzU2MTIiLCBcCi0gICAgICAgICAgIjAuMDQzMjk4LCAwLjA5ODUwNCwgMC4xNTI1NDksIDAuMTkxMTQ4LCAwLjI1MjgzLCAwLjMwNjc4OCwgMC4zODM5MDciLCBcCi0gICAgICAgICAgIjAuMDUyOTU3LCAwLjEwODM1NSwgMC4xNjIzNzgsIDAuMjAwOTUzLCAwLjI2MjY4MSwgMC4zMTY2NTYsIDAuMzkzNzYiLCBcCi0gICAgICAgICAgIjAuMDYwNTQyLCAwLjExNjE3MywgMC4xNzAxOSwgMC4yMDg3NTksIDAuMjcwNDcyLCAwLjMyNDQ0OCwgMC40MDE1MzYiLCBcCi0gICAgICAgICAgIjAuMDY2NTYxLCAwLjEyMjQ1MSwgMC4xNzY0NywgMC4yMTUwMzQsIDAuMjc2NzExLCAwLjMzMDcxNiwgMC40MDc4MjIiLCBcCi0gICAgICAgICAgIjAuMDc0NTAyLCAwLjEzMTAxMiwgMC4xODQ5ODIsIDAuMjIzMzU0LCAwLjI4NTAzNCwgMC4zMzkwMSwgMC40MTYyNjkiLCBcCi0gICAgICAgICAgIjAuMDgwMTk1LCAwLjEzNzI4MSwgMC4xOTA5MTEsIDAuMjI5ODA5LCAwLjI5MTQ4MywgMC4zNDUwODQsIDAuNDIyMTMxIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDI1NDM3LCAwLjEzNTk4NywgMC4yNDk1MTcsIDAuMzMwMzA2LCAwLjQ2MTExNSwgMC41NzUxMTUsIDAuNzM4MDA1IiwgXAotICAgICAgICAgICIwLjAyNTQ1OCwgMC4xMzU4ODEsIDAuMjQ5NTcyLCAwLjMzMDM5MSwgMC40NjExMDEsIDAuNTc0NTA1LCAwLjczNjQ4MiIsIFwKLSAgICAgICAgICAiMC4wMjY2MzEsIDAuMTM2MTUyLCAwLjI0OTU2NSwgMC4zMzA1NTMsIDAuNDYxMDk2LCAwLjU3NTA4NSwgMC43Mzc5MSIsIFwKLSAgICAgICAgICAiMC4wMjgwMzMsIDAuMTM2MzUzLCAwLjI0OTYxNSwgMC4zMzA4NiwgMC40NjAyNzYsIDAuNTc1MDMzLCAwLjczNzg0NCIsIFwKLSAgICAgICAgICAiMC4wMjk1OTQsIDAuMTM2NzkzLCAwLjI0OTY3OSwgMC4zMzA4NzUsIDAuNDYwNDIsIDAuNTc1MDMxLCAwLjczNzgxMyIsIFwKLSAgICAgICAgICAiMC4wMzE3NTgsIDAuMTM3MzY4LCAwLjI0OTc2OCwgMC4zMzA3MjUsIDAuNDYwNDIyLCAwLjU3NDQ0MywgMC43MzczMTgiLCBcCi0gICAgICAgICAgIjAuMDMzNDAxLCAwLjEzODIwMywgMC4yNTAwMTQsIDAuMzMwODYxLCAwLjQ2MDY2MSwgMC41NzQ1NTgsIDAuNzM3MjgxIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY4MjM4LCAwLjEzMDg5LCAwLjE4NTQ0OCwgMC4yMjM5NjksIDAuMjg1NTIxLCAwLjMzOTM1OCwgMC40MTYyMzIiLCBcCi0gICAgICAgICAgIjAuMDc0MjUxLCAwLjEzNjkwMSwgMC4xOTE0MjQsIDAuMjI5OTU0LCAwLjI5MTQ5NCwgMC4zNDUzMzgsIDAuNDIyMjUxIiwgXAotICAgICAgICAgICIwLjA4MTY5MSwgMC4xNDQyNzcsIDAuMTk4ODA2LCAwLjIzNzMxOCwgMC4yOTg4NjYsIDAuMzUyNzAxLCAwLjQyOTYxMiIsIFwKLSAgICAgICAgICAiMC4wODg5MjcsIDAuMTUxNDk1LCAwLjIwNjAxNSwgMC4yNDQ1MTgsIDAuMzA2MDgsIDAuMzU5OTMzLCAwLjQzNjc5MyIsIFwKLSAgICAgICAgICAiMC4wOTU0LCAwLjE1ODM2MiwgMC4yMTI3MjQsIDAuMjUxMjQsIDAuMzEyOTQzLCAwLjM2NjYwNywgMC40NDM1MzgiLCBcCi0gICAgICAgICAgIjAuMTA0NDI2LCAwLjE2NzgzOCwgMC4yMjI1MTksIDAuMjYxMDI4LCAwLjMyMjU1NiwgMC4zNzYzNjksIDAuNDUzMjQzIiwgXAotICAgICAgICAgICIwLjExMTQzMSwgMC4xNzU1NCwgMC4yMzAxMDcsIDAuMjY4NjIzLCAwLjMzMDEyNSwgMC4zODM5MywgMC40NjA4MjkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzU5MjksIDAuMTQyNzcxLCAwLjI1MTE3OCwgMC4zMjk3NjMsIDAuNDU2MDA4LCAwLjU2ODM3OSwgMC43Mjc4MzEiLCBcCi0gICAgICAgICAgIjAuMDM1Nzc1LCAwLjE0MjY5OSwgMC4yNTExNDEsIDAuMzI5NjkzLCAwLjQ1NjMyMiwgMC41NjgzMjIsIDAuNzI3ODE0IiwgXAotICAgICAgICAgICIwLjAzNTc0NCwgMC4xNDI3MjMsIDAuMjUxMjQ1LCAwLjMzMDEwMSwgMC40NTY4NywgMC41NjgyNzYsIDAuNzI3OTUzIiwgXAotICAgICAgICAgICIwLjAzNjI4OCwgMC4xNDI5NDIsIDAuMjUxMzQxLCAwLjMzMDE2NSwgMC40NTY4OTYsIDAuNTY4NDA5LCAwLjcyNzgzNiIsIFwKLSAgICAgICAgICAiMC4wMzcxMTUsIDAuMTQzMzExLCAwLjI1MTY1MiwgMC4zMzAzMjMsIDAuNDU2OTk2LCAwLjU2NzQ0NSwgMC43MjgwNTYiLCBcCi0gICAgICAgICAgIjAuMDM4MzYzLCAwLjE0NDMwNCwgMC4yNTIxODEsIDAuMzMwNDc1LCAwLjQ1NzI1NywgMC41Njc4NDgsIDAuNzI3MTE0IiwgXAotICAgICAgICAgICIwLjAzOTU5NiwgMC4xNDUzNDQsIDAuMjUyNjk2LCAwLjMzMDkxNywgMC40NTc1NDEsIDAuNTY4Njc1LCAwLjcyODE4NiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzMzAyOSwgMC4wODgxNjUsIDAuMTQyMTY3LCAwLjE4MDczNiwgMC4yNDIzNDIsIDAuMjk2NDcsIDAuMzczNjczIiwgXAotICAgICAgICAgICIwLjA0MTM2MywgMC4wOTY0ODgsIDAuMTUwNSwgMC4xODkwOTgsIDAuMjUwNzk3LCAwLjMwNDgxNiwgMC4zODIwMjkiLCBcCi0gICAgICAgICAgIjAuMDUwNjEzLCAwLjEwNTg0MSwgMC4xNTk4NDEsIDAuMTk4NDgyLCAwLjI2MDI1MiwgMC4zMTQxNjEsIDAuMzkxNTQ1IiwgXAotICAgICAgICAgICIwLjA1NzU3LCAwLjExMzA4NiwgMC4xNjcwNjIsIDAuMjA1NjQ3LCAwLjI2NzMzLCAwLjMyMTM3OCwgMC4zOTg4MiIsIFwKLSAgICAgICAgICAiMC4wNjMwNTQsIDAuMTE5MDk2LCAwLjE3MzA5MSwgMC4yMTE2NCwgMC4yNzMzNTIsIDAuMzI3MzQ5LCAwLjQwNDUyNSIsIFwKLSAgICAgICAgICAiMC4wNzA0MTYsIDAuMTI2OSwgMC4xODA5NjUsIDAuMjE5NTA4LCAwLjI4MTE2NywgMC4zMzUyNSwgMC40MTI0MDUiLCBcCi0gICAgICAgICAgIjAuMDc1NDUzLCAwLjEzMjMzNywgMC4xODYyMDcsIDAuMjI0Njg1LCAwLjI4NjQzNywgMC4zNDAzMTcsIDAuNDE3NDI1Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDI1MiwgMC4xMzU4NjYsIDAuMjQ5NDA1LCAwLjMzMDg4NSwgMC40NjAyMDgsIDAuNTc0MTc5LCAwLjczNzI3MSIsIFwKLSAgICAgICAgICAiMC4wMjUyOTcsIDAuMTM1ODg2LCAwLjI0OTE2OCwgMC4zMzAyOTgsIDAuNDYxMjE0LCAwLjU3NDEzOCwgMC43MzY5NDMiLCBcCi0gICAgICAgICAgIjAuMDI2NTA1LCAwLjEzNjA1LCAwLjI0OTUxNSwgMC4zMzAzNjQsIDAuNDYwNDgsIDAuNTc0NDY4LCAwLjczNjgzNyIsIFwKLSAgICAgICAgICAiMC4wMjgyMSwgMC4xMzYzNTcsIDAuMjQ5NjE5LCAwLjMzMDM0NiwgMC40NjA4NzMsIDAuNTc0MDU2LCAwLjczNjg1OSIsIFwKLSAgICAgICAgICAiMC4wMjk5OTIsIDAuMTM2ODU5LCAwLjI0OTY4NCwgMC4zMzA4NzQsIDAuNDYxMTk2LCAwLjU3NTIsIDAuNzM2NjY1IiwgXAotICAgICAgICAgICIwLjAzMjA0MywgMC4xMzc1MjksIDAuMjQ5NzE4LCAwLjMzMTEzMiwgMC40NjEyMTcsIDAuNTc0MDcyLCAwLjczNjk4NiIsIFwKLSAgICAgICAgICAiMC4wMzM2ODEsIDAuMTM4NTIzLCAwLjI0OTkzNSwgMC4zMzA4NTEsIDAuNDYwMzk5LCAwLjU3NTI1NCwgMC43MzczNjUiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjM3MDgsIDAuMTI2MzMzLCAwLjE4MDg4MiwgMC4yMTk0MDUsIDAuMjgwOTY1LCAwLjMzNDgxMiwgMC40MTE2OTgiLCBcCi0gICAgICAgICAgIjAuMDcwNjQ5LCAwLjEzMzMxOSwgMC4xODc4ODcsIDAuMjI2NDA5LCAwLjI4Nzk3NiwgMC4zNDE4MjMsIDAuNDE4NzAxIiwgXAotICAgICAgICAgICIwLjA4MDE2NywgMC4xNDI2OTMsIDAuMTk3MjA0LCAwLjIzNTczNCwgMC4yOTcyODUsIDAuMzUxMTE2LCAwLjQyNzk5NCIsIFwKLSAgICAgICAgICAiMC4wODk0MzcsIDAuMTUyMDU0LCAwLjIwNjU3MiwgMC4yNDUwODMsIDAuMzA2NjM3LCAwLjM2MDQ2OSwgMC40MzczNDgiLCBcCi0gICAgICAgICAgIjAuMDk3NTgzLCAwLjE2MDA3MywgMC4yMTQ1NTksIDAuMjUzMDc5LCAwLjMxNDYyLCAwLjM2ODQ0OCwgMC40NDUzMiIsIFwKLSAgICAgICAgICAiMC4xMDg5NzEsIDAuMTcyMDg2LCAwLjIyNjcyOCwgMC4yNjUyMzUsIDAuMzI2NzU1LCAwLjM4MDU2OSwgMC40NTc0NTkiLCBcCi0gICAgICAgICAgIjAuMTE3NzI4LCAwLjE4MTE0LCAwLjIzNTg0OSwgMC4yNzQ0MzEsIDAuMzM1OTIyLCAwLjM4OTcxNSwgMC40NjY1ODEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzU3ODUsIDAuMTQyNzU4LCAwLjI1MTIwMywgMC4zMzAxMDMsIDAuNDU2Mzk1LCAwLjU2ODMyMSwgMC43Mjc3ODciLCBcCi0gICAgICAgICAgIjAuMDM1NzU2LCAwLjE0MjcwMiwgMC4yNTEyMzcsIDAuMzMwMDksIDAuNDU2ODMsIDAuNTY4MzMyLCAwLjcyNzgiLCBcCi0gICAgICAgICAgIjAuMDM1ODI1LCAwLjE0MjcyNywgMC4yNTEyMSwgMC4zMzAxMDUsIDAuNDU2ODU1LCAwLjU2ODMyNywgMC43Mjc3OTciLCBcCi0gICAgICAgICAgIjAuMDM2MzI2LCAwLjE0MzAzNywgMC4yNTEzODcsIDAuMzMwMjAzLCAwLjQ1NjkxNiwgMC41NjgzNjIsIDAuNzI3ODE0IiwgXAotICAgICAgICAgICIwLjAzNzIyMywgMC4xNDM0MjYsIDAuMjUxNjgyLCAwLjMzMDM2NywgMC40NTcwMiwgMC41Njg0NTcsIDAuNzI3ODY2IiwgXAotICAgICAgICAgICIwLjAzOTA2OSwgMC4xNDQ1OTMsIDAuMjUyMzIxLCAwLjMzMDU3LCAwLjQ1NzIyMSwgMC41Njc5NTYsIDAuNzI4MDEzIiwgXAotICAgICAgICAgICIwLjA0MDU4MiwgMC4xNDUzNTQsIDAuMjUyODQ3LCAwLjMzMDkyNiwgMC40NTc1OTYsIDAuNTY4MTI3LCAwLjcyNzk1NSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1OTg2LCAwLjAwNjA4OSwgMC4wMDYxMDMsIDAuMDA2MTA5LCAwLjAwNjExMywgMC4wMDYxMTIsIDAuMDA2MTIxIiwgXAotICAgICAgICAgICIwLjAwNTk0MSwgMC4wMDYwNTEsIDAuMDA2MDczLCAwLjAwNjA3OSwgMC4wMDYwODcsIDAuMDA2MDksIDAuMDA2MDk1IiwgXAotICAgICAgICAgICIwLjAwNjAzNSwgMC4wMDYwODIsIDAuMDA2MTA1LCAwLjAwNjExNiwgMC4wMDYxMiwgMC4wMDYxMjQsIDAuMDA2MTI3IiwgXAotICAgICAgICAgICIwLjAwNjE1MiwgMC4wMDYxNTQsIDAuMDA2MTc0LCAwLjAwNjE4LCAwLjAwNjE4NywgMC4wMDYxOTIsIDAuMDA2MTk0IiwgXAotICAgICAgICAgICIwLjAwNjM5NywgMC4wMDYyODQsIDAuMDA2Mjg5LCAwLjAwNjI5NCwgMC4wMDYyOTUsIDAuMDA2Mjk3LCAwLjAwNjMiLCBcCi0gICAgICAgICAgIjAuMDA2NzY3LCAwLjAwNjUwOSwgMC4wMDY0OTMsIDAuMDA2NDk0LCAwLjAwNjQ5MiwgMC4wMDY0OTMsIDAuMDA2NDk2IiwgXAotICAgICAgICAgICIwLjAwNjkxMywgMC4wMDY3MjQsIDAuMDA2Njk3LCAwLjAwNjY5MSwgMC4wMDY2ODcsIDAuMDA2Njg2LCAwLjAwNjY4OCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA4ODY5LCAwLjAwODgyNiwgMC4wMDg4MzEsIDAuMDA4ODM0LCAwLjAwODgzNiwgMC4wMDg4MzcsIDAuMDA4ODM4IiwgXAotICAgICAgICAgICIwLjAwODgyNCwgMC4wMDg3NywgMC4wMDg3ODMsIDAuMDA4Nzg3LCAwLjAwODc5MSwgMC4wMDg3OTMsIDAuMDA4Nzk1IiwgXAotICAgICAgICAgICIwLjAwODgzLCAwLjAwODc1OSwgMC4wMDg3NzIsIDAuMDA4Nzc3LCAwLjAwODc4MSwgMC4wMDg3ODQsIDAuMDA4Nzg2IiwgXAotICAgICAgICAgICIwLjAwODg3MywgMC4wMDg3NjUsIDAuMDA4NzgxLCAwLjAwODc4NywgMC4wMDg3OTMsIDAuMDA4Nzk2LCAwLjAwODc5OSIsIFwKLSAgICAgICAgICAiMC4wMDg5OTQsIDAuMDA4ODE5LCAwLjAwODgyNywgMC4wMDg4MywgMC4wMDg4MzMsIDAuMDA4ODM1LCAwLjAwODgzNyIsIFwKLSAgICAgICAgICAiMC4wMDkxOCwgMC4wMDg5MjgsIDAuMDA4OTI2LCAwLjAwODkyNSwgMC4wMDg5MjQsIDAuMDA4OTI1LCAwLjAwODkyNSIsIFwKLSAgICAgICAgICAiMC4wMDkzMTQsIDAuMDA5MDkyLCAwLjAwOTA2MywgMC4wMDkwNTMsIDAuMDA5MDQ4LCAwLjAwOTA0NCwgMC4wMDkwNDEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNTcwMSwgMC4wMDU4NzgsIDAuMDA1OTA1LCAwLjAwNTkxMSwgMC4wMDU5MTksIDAuMDA1OTIxLCAwLjAwNTkyNiIsIFwKLSAgICAgICAgICAiMC4wMDU2NDgsIDAuMDA1ODQxLCAwLjAwNTg3MywgMC4wMDU4ODQsIDAuMDA1ODkyLCAwLjAwNTg5NywgMC4wMDU5IiwgXAotICAgICAgICAgICIwLjAwNTc0OCwgMC4wMDU4NjksIDAuMDA1OTAxLCAwLjAwNTkxMywgMC4wMDU5MjEsIDAuMDA1OTI4LCAwLjAwNTkzMyIsIFwKLSAgICAgICAgICAiMC4wMDU4MzgsIDAuMDA1OTExLCAwLjAwNTk1MSwgMC4wMDU5NjEsIDAuMDA1OTc0LCAwLjAwNTk4MSwgMC4wMDU5OSIsIFwKLSAgICAgICAgICAiMC4wMDYwMzgsIDAuMDA2MDIsIDAuMDA2MDQ2LCAwLjAwNjA2NCwgMC4wMDYwNzMsIDAuMDA2MDgsIDAuMDA2MDg4IiwgXAotICAgICAgICAgICIwLjAwNjI3MywgMC4wMDYyMDUsIDAuMDA2MjM3LCAwLjAwNjI0MSwgMC4wMDYyNTEsIDAuMDA2MjU2LCAwLjAwNjI3NyIsIFwKLSAgICAgICAgICAiMC4wMDY1NzIsIDAuMDA2NDE0LCAwLjAwNjQyMywgMC4wMDY0NDEsIDAuMDA2NDQ4LCAwLjAwNjQzNiwgMC4wMDY0NDIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwODQ2MywgMC4wMDgzODgsIDAuMDA4Mzk5LCAwLjAwODQwNCwgMC4wMDg0MSwgMC4wMDg0MTIsIDAuMDA4NDE1IiwgXAotICAgICAgICAgICIwLjAwODM3LCAwLjAwODMyOSwgMC4wMDgzNSwgMC4wMDgzNTgsIDAuMDA4MzY2LCAwLjAwODM3LCAwLjAwODM3NCIsIFwKLSAgICAgICAgICAiMC4wMDg0MTQsIDAuMDA4MzM0LCAwLjAwODM1MiwgMC4wMDgzNTksIDAuMDA4MzY2LCAwLjAwODM2OSwgMC4wMDgzNzMiLCBcCi0gICAgICAgICAgIjAuMDA4NTc5LCAwLjAwODM4OCwgMC4wMDgzOTUsIDAuMDA4Mzk5LCAwLjAwODQwMywgMC4wMDg0MDYsIDAuMDA4NDA4IiwgXAotICAgICAgICAgICIwLjAwODcyMywgMC4wMDg0NDQsIDAuMDA4NDQsIDAuMDA4NDQ1LCAwLjAwODQ1MywgMC4wMDg0NTIsIDAuMDA4NDU1IiwgXAotICAgICAgICAgICIwLjAwODgxNSwgMC4wMDg1NzcsIDAuMDA4NTY1LCAwLjAwODU2NSwgMC4wMDg1NjQsIDAuMDA4NTY4LCAwLjAwODU3IiwgXAotICAgICAgICAgICIwLjAwOTAyNiwgMC4wMDg3MzgsIDAuMDA4NzA5LCAwLjAwODcwMSwgMC4wMDg2OTgsIDAuMDA4Njk3LCAwLjAwODcxMyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1Mzg4LCAwLjAwNTU2LCAwLjAwNTU3OCwgMC4wMDU1OTMsIDAuMDA1NiwgMC4wMDU1OTgsIDAuMDA1NiIsIFwKLSAgICAgICAgICAiMC4wMDUzNDYsIDAuMDA1NTI1LCAwLjAwNTU1NSwgMC4wMDU1NjUsIDAuMDA1NTc0LCAwLjAwNTU3NywgMC4wMDU1NzkiLCBcCi0gICAgICAgICAgIjAuMDA1Mzg4LCAwLjAwNTUzMywgMC4wMDU1NjksIDAuMDA1NTgxLCAwLjAwNTU5MSwgMC4wMDU1OTYsIDAuMDA1NjAxIiwgXAotICAgICAgICAgICIwLjAwNTU2MiwgMC4wMDU2MDEsIDAuMDA1NjM2LCAwLjAwNTY0OCwgMC4wMDU2NiwgMC4wMDU2NjYsIDAuMDA1NjcxIiwgXAotICAgICAgICAgICIwLjAwNTc0NSwgMC4wMDU3MDEsIDAuMDA1NzMyLCAwLjAwNTc0MywgMC4wMDU3NTQsIDAuMDA1NzU5LCAwLjAwNTc2NSIsIFwKLSAgICAgICAgICAiMC4wMDU5MzYsIDAuMDA1OTExLCAwLjAwNTkyMiwgMC4wMDU5MjQsIDAuMDA1OTQsIDAuMDA1OTQsIDAuMDA1OTI5IiwgXAotICAgICAgICAgICIwLjAwNjE2NiwgMC4wMDYxMDEsIDAuMDA2MDk3LCAwLjAwNjEwMywgMC4wMDYwOTIsIDAuMDA2MTExLCAwLjAwNjEyMSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA3OTY3LCAwLjAwNzk1NCwgMC4wMDc5NjksIDAuMDA3OTc1LCAwLjAwNzk4MiwgMC4wMDc5ODUsIDAuMDA3OTg4IiwgXAotICAgICAgICAgICIwLjAwNzkxOCwgMC4wMDc4OTIsIDAuMDA3OTE5LCAwLjAwNzkyOSwgMC4wMDc5MzksIDAuMDA3OTQ0LCAwLjAwNzk1IiwgXAotICAgICAgICAgICIwLjAwODAzOCwgMC4wMDc5MzksIDAuMDA3OTYxLCAwLjAwNzk3MSwgMC4wMDc5OCwgMC4wMDc5ODUsIDAuMDA3OTkiLCBcCi0gICAgICAgICAgIjAuMDA4MjczLCAwLjAwODAxOSwgMC4wMDgwMzMsIDAuMDA4MDQsIDAuMDA4MDQ4LCAwLjAwODA1MywgMC4wMDgwNTciLCBcCi0gICAgICAgICAgIjAuMDA4NDkyLCAwLjAwODE1MiwgMC4wMDgxNjIsIDAuMDA4MTY3LCAwLjAwODE3NCwgMC4wMDgxNzgsIDAuMDA4MTgzIiwgXAotICAgICAgICAgICIwLjAwODc1NiwgMC4wMDg0MDIsIDAuMDA4MzgyLCAwLjAwODM3MywgMC4wMDgzNzIsIDAuMDA4MzcyLCAwLjAwODM3MiIsIFwKLSAgICAgICAgICAiMC4wMDkxMjQsIDAuMDA4NTIsIDAuMDA4NDk0LCAwLjAwODQ4OCwgMC4wMDg0ODUsIDAuMDA4NDg0LCAwLjAwODQ4NCIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBPUjRYNCAqCi0gKiAtLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoT1I0WDQpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC43OTEzMjk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDkxMDMwNTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA5MDUyNjU7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwOTEwMzA1OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDQ0NSwgMC4wMDA0NzEsIDAuMDAwNDg1LCAwLjAwMDQ5MywgMC4wMDA0OTYsIDAuMDAwNDk4LCAwLjAwMDQ5NyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTM2NiwgMC4wMDEzNjYsIDAuMDAxMzY2LCAwLjAwMTM2NiwgMC4wMDEzNjYsIDAuMDAxMzY2LCAwLjAwMTM2NiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwOTM1MTExOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDkzMTAzMTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA5MzUxMTE7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNDI4LCAwLjAwMDQ3MiwgMC4wMDA0ODYsIDAuMDAwNDg5LCAwLjAwMDQ5MiwgMC4wMDA1MDIsIDAuMDAwNDk0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwOTU0LCAwLjAwMDk1NCwgMC4wMDA5NTUsIDAuMDAwOTU1LCAwLjAwMDk1NSwgMC4wMDA5NTUsIDAuMDAwOTU1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihDKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA5NDI2NTY7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwOTM5MTY5OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDk0MjY1NjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA0MjksIDAuMDAwNDg2LCAwLjAwMDUsIDAuMDAwNTA1LCAwLjAwMDUwMywgMC4wMDA1MDYsIDAuMDAwNTA1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNTM5LCAwLjAwMDUzOSwgMC4wMDA1MzksIDAuMDAwNTM5LCAwLjAwMDUzOSwgMC4wMDA1MzksIDAuMDAwNTM5Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihEKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA5MDk3Mzc7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwOTA5NzM3OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDkwOTI5OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDEyNCwgMC4wMDAxMjQsIDAuMDAwMTI0LCAwLjAwMDEyNCwgMC4wMDAxMjQsIDAuMDAwMTI0LCAwLjAwMDEyNCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDM3OSwgMC4wMDAzNzgsIDAuMDAwMzc4LCAwLjAwMDM3OCwgMC4wMDAzNzgsIDAuMDAwMzc4LCAwLjAwMDM3OCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAxLjM1NzIyOwotICAgIGZ1bmN0aW9uIDogIigoKEErQikrQykrRCkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM4NDA0LCAwLjA5NDg1MiwgMC4xNDk1OTQsIDAuMTg4NjI5LCAwLjI1MTExLCAwLjMwNTcwNiwgMC4zODM3MDkiLCBcCi0gICAgICAgICAgIjAuMDQ2NzksIDAuMTAzMjY3LCAwLjE1ODAxOSwgMC4xOTcwNDMsIDAuMjU5NTA1LCAwLjMxNDEyOSwgMC4zOTIxMjEiLCBcCi0gICAgICAgICAgIjAuMDU3MTQzLCAwLjExMzUzMSwgMC4xNjgyODUsIDAuMjA3Mjk2LCAwLjI2OTczMSwgMC4zMjQzNDQsIDAuNDAyNDM2IiwgXAotICAgICAgICAgICIwLjA2NTc3NiwgMC4xMjIyNDIsIDAuMTc2OTQ4LCAwLjIxNTk3OSwgMC4yNzg0MjMsIDAuMzMzMDU2LCAwLjQxMTA0MyIsIFwKLSAgICAgICAgICAiMC4wNzI2OTEsIDAuMTI5NDU3LCAwLjE4NDI4MywgMC4yMjMzMDQsIDAuMjg1NzYxLCAwLjM0MDM1LCAwLjQxODM3NyIsIFwKLSAgICAgICAgICAiMC4wODE2MzcsIDAuMTM4ODUzLCAwLjE5MzQ4NCwgMC4yMzI0OTcsIDAuMjk0OTI4LCAwLjM0OTU1OCwgMC40Mjc1MzQiLCBcCi0gICAgICAgICAgIjAuMDg4MjA1LCAwLjE0NTgxMSwgMC4yMDA0MDcsIDAuMjM5NDA1LCAwLjMwMTgyNSwgMC4zNTYzOTMsIDAuNDM0NDE5Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDI2ODQzLCAwLjEzODA2NSwgMC4yNTI4MTMsIDAuMzM0OTYxLCAwLjQ2NTk5MiwgMC41ODIwMjYsIDAuNzQ2Nzk3IiwgXAotICAgICAgICAgICIwLjAyNjY3NSwgMC4xMzgwODEsIDAuMjUyODA4LCAwLjMzNDk1LCAwLjQ2NjcwMywgMC41ODIwNDIsIDAuNzQ2NjkyIiwgXAotICAgICAgICAgICIwLjAyNzI5LCAwLjEzODE3NiwgMC4yNTIzNzgsIDAuMzM0NzM3LCAwLjQ2NjM5MywgMC41ODE1NTcsIDAuNzQ1ODM4IiwgXAotICAgICAgICAgICIwLjAyODc3NiwgMC4xMzgzNDQsIDAuMjUyODI0LCAwLjMzNDk4MywgMC40NjYxMjQsIDAuNTgxOTkyLCAwLjc0NjcwNSIsIFwKLSAgICAgICAgICAiMC4wMzAxMjQsIDAuMTM4NjgzLCAwLjI1MjU3MiwgMC4zMzQ4MiwgMC40NjY3MjIsIDAuNTgxMzI3LCAwLjc0NjcxMiIsIFwKLSAgICAgICAgICAiMC4wMzI0MTgsIDAuMTM5MzU2LCAwLjI1Mjk3NywgMC4zMzUxMjEsIDAuNDY2NzU1LCAwLjU4MjA1NywgMC43NDY2OTIiLCBcCi0gICAgICAgICAgIjAuMDMzOTU4LCAwLjE0MDEwNiwgMC4yNTMyMzcsIDAuMzM1MDcsIDAuNDY2Nzc4LCAwLjU4MTk2NywgMC43NDU5NjYiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTIyMzEsIDAuMTU5ODI1LCAwLjIxNTYwNSwgMC4yNTQ0MzMsIDAuMzE2MDk1LCAwLjM2OTk4MiwgMC40NDY5MiIsIFwKLSAgICAgICAgICAiMC4wOTczMSwgMC4xNjQ5NTEsIDAuMjIwNzI3LCAwLjI1OTUzNSwgMC4zMjExOTcsIDAuMzc1MDc1LCAwLjQ1MjAyMyIsIFwKLSAgICAgICAgICAiMC4xMDE5NDcsIDAuMTY5NjI2LCAwLjIyNTM1LCAwLjI2NDE2NywgMC4zMjU4NCwgMC4zNzk3MjQsIDAuNDU2NjY2IiwgXAotICAgICAgICAgICIwLjEwNjAyNiwgMC4xNzM1MzQsIDAuMjI5Mjc5LCAwLjI2ODEsIDAuMzI5NzcyLCAwLjM4MzY3NSwgMC40NjA2MTUiLCBcCi0gICAgICAgICAgIjAuMTA5NDg1LCAwLjE3NzI0LCAwLjIzMjk1NSwgMC4yNzE3ODQsIDAuMzMzNDY3LCAwLjM4NzM1LCAwLjQ2NDMwNCIsIFwKLSAgICAgICAgICAiMC4xMTQzNjcsIDAuMTgyNDc4LCAwLjIzODI4MywgMC4yNzcwOTYsIDAuMzM4NzgsIDAuMzkyNjUxLCAwLjQ2OTU4MSIsIFwKLSAgICAgICAgICAiMC4xMTgwNzcsIDAuMTg2NjY2LCAwLjI0MjYyNCwgMC4yODE0NjYsIDAuMzQzMTQ3LCAwLjM5NzAyLCAwLjQ3MzkyOSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0MTI3OCwgMC4xNDk2MSwgMC4yNTY4NzIsIDAuMzM0NzA2LCAwLjQ2MDcyNywgMC41NzA3NDEsIDAuNzMwNTU0IiwgXAotICAgICAgICAgICIwLjA0MTI3OSwgMC4xNDk2MzYsIDAuMjU2OTAzLCAwLjMzNDcwNCwgMC40NjA3MTQsIDAuNTcxNDc0LCAwLjczMDU0MyIsIFwKLSAgICAgICAgICAiMC4wNDExNjgsIDAuMTQ5NDYyLCAwLjI1Njg0NCwgMC4zMzQ2MzgsIDAuNDYwMzM3LCAwLjU3MDUxNSwgMC43MzA1MjUiLCBcCi0gICAgICAgICAgIjAuMDQxMzExLCAwLjE0OTYxMSwgMC4yNTY5LCAwLjMzNDY3MywgMC40NjAzNzUsIDAuNTcwNTg4LCAwLjczMDU4NCIsIFwKLSAgICAgICAgICAiMC4wNDE1NzQsIDAuMTQ5NzIyLCAwLjI1NzAyOCwgMC4zMzQ3NjIsIDAuNDYwNDUsIDAuNTcxMDA3LCAwLjczMDU2NCIsIFwKLSAgICAgICAgICAiMC4wNDI0MzEsIDAuMTUwMzk4LCAwLjI1NzM3OSwgMC4zMzUwNDUsIDAuNDYwODc5LCAwLjU3MTcyLCAwLjczMDYzNyIsIFwKLSAgICAgICAgICAiMC4wNDMyMywgMC4xNTA5MzQsIDAuMjU3ODAzLCAwLjMzNTQyNywgMC40NjA2NDcsIDAuNTcxOTU2LCAwLjczMDY3NCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzNzMzOSwgMC4wOTM0OTQsIDAuMTQ4MTgsIDAuMTg3MjIzLCAwLjI0OTYzNCwgMC4zMDQyMTYsIDAuMzgyMjA3IiwgXAotICAgICAgICAgICIwLjA0NTY0OCwgMC4xMDE4MDUsIDAuMTU2NDk0LCAwLjE5NTUzNCwgMC4yNTc5NDksIDAuMzEyNTM1LCAwLjM5MDUyMiIsIFwKLSAgICAgICAgICAiMC4wNTU3NzEsIDAuMTExOTE4LCAwLjE2NjYwNSwgMC4yMDU2MjEsIDAuMjY4MDY3LCAwLjMyMjY0OSwgMC40MDA2MjciLCBcCi0gICAgICAgICAgIjAuMDYzNzg0LCAwLjEyMDE5LCAwLjE3NDg3MSwgMC4yMTM4NzMsIDAuMjc2Mjg0LCAwLjMzMDg4NiwgMC40MDg4ODMiLCBcCi0gICAgICAgICAgIjAuMDcwNDk4LCAwLjEyNzIwNSwgMC4xODE4OTIsIDAuMjIwODk5LCAwLjI4MzMxNCwgMC4zMzc5MzEsIDAuNDE1OTE2IiwgXAotICAgICAgICAgICIwLjA3ODkzOCwgMC4xMzYxNSwgMC4xOTA3NjIsIDAuMjI5NzY0LCAwLjI5MjE1NywgMC4zNDY3NjgsIDAuNDI0NzgiLCBcCi0gICAgICAgICAgIjAuMDg0ODI2LCAwLjE0MjU4NywgMC4xOTc1MzEsIDAuMjM2MTc4LCAwLjI5ODkwNSwgMC4zNTM1MTYsIDAuNDMxMTIxIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDI2MTk0LCAwLjEzNzUzMiwgMC4yNTI1NzksIDAuMzM0ODYsIDAuNDY2NjA0LCAwLjU4MTgzOSwgMC43NDYwNSIsIFwKLSAgICAgICAgICAiMC4wMjYxMTUsIDAuMTM3NjUzLCAwLjI1MjU1NiwgMC4zMzQ4MTcsIDAuNDY2NTcsIDAuNTgxODczLCAwLjc0NjU5MSIsIFwKLSAgICAgICAgICAiMC4wMjY4NzMsIDAuMTM3ODYsIDAuMjUyNTU4LCAwLjMzNDgwNywgMC40NjY1NywgMC41ODE4NzMsIDAuNzQ2NTc3IiwgXAotICAgICAgICAgICIwLjAyODQ5NSwgMC4xMzgwMzgsIDAuMjUyNjUxLCAwLjMzNDgyNiwgMC40NjYyMDgsIDAuNTgxNDIxLCAwLjc0NjYxMyIsIFwKLSAgICAgICAgICAiMC4wMjk4NSwgMC4xMzg0MTMsIDAuMjUyNzEyLCAwLjMzNDg0MiwgMC40NjYxMzEsIDAuNTgxMjY2LCAwLjc0NjU3OSIsIFwKLSAgICAgICAgICAiMC4wMzIxNjQsIDAuMTM5MDksIDAuMjUyNzUsIDAuMzM0Nzk3LCAwLjQ2NjQ5NiwgMC41ODEwODQsIDAuNzQ1NDU1IiwgXAotICAgICAgICAgICIwLjAzNDEzLCAwLjEzOTgyMiwgMC4yNTI5NDQsIDAuMzM0ODQ2LCAwLjQ2NjM0NiwgMC41ODEwMDIsIDAuNzQ2NTIxIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg5Nzg0LCAwLjE1NzQ4NSwgMC4yMTMyNDIsIDAuMjUyMDQ4LCAwLjMxMzc0OCwgMC4zNjc2MDksIDAuNDQ0NTU2IiwgXAotICAgICAgICAgICIwLjA5NTI0NywgMC4xNjI5MjUsIDAuMjE4Njc2LCAwLjI1NzQ3NSwgMC4zMTkxNDUsIDAuMzczMDMzLCAwLjQ0OTk3MiIsIFwKLSAgICAgICAgICAiMC4xMDA5MzEsIDAuMTY4NjMzLCAwLjIyNDQxOCwgMC4yNjMyMywgMC4zMjQ5MDQsIDAuMzc4NzgxLCAwLjQ1NTczNiIsIFwKLSAgICAgICAgICAiMC4xMDY1MTEsIDAuMTc0MDk5LCAwLjIyOTg0MywgMC4yNjg2MzcsIDAuMzMwMzEyLCAwLjM4NDE5MiwgMC40NjExMzgiLCBcCi0gICAgICAgICAgIjAuMTExNywgMC4xNzk0MjQsIDAuMjM1MTgsIDAuMjczOTM2LCAwLjMzNTY0NywgMC4zODk1MTUsIDAuNDY2NDUzIiwgXAotICAgICAgICAgICIwLjExOTIwNiwgMC4xODc0MzgsIDAuMjQzMjc3LCAwLjI4MjA5NiwgMC4zNDM3NywgMC4zOTc2NDIsIDAuNDc0NTY4IiwgXAotICAgICAgICAgICIwLjEyNTI0MiwgMC4xOTM5NTMsIDAuMjQ5ODc0LCAwLjI4ODY3NiwgMC4zNTAzODUsIDAuNDA0MjM3LCAwLjQ4MTE3MiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0MTQxMSwgMC4xNDk2NTUsIDAuMjU2OTM3LCAwLjMzNDcxOSwgMC40NjA2NjgsIDAuNTcwOTkzLCAwLjcyOTIyOSIsIFwKLSAgICAgICAgICAiMC4wNDEyNDYsIDAuMTQ5NTczLCAwLjI1NjkxNiwgMC4zMzQ3MDMsIDAuNDYwNjMyLCAwLjU3MTUwNywgMC43MzA1MTkiLCBcCi0gICAgICAgICAgIjAuMDQxMTU1LCAwLjE0OTQ4MiwgMC4yNTY3NzksIDAuMzM0NjQzLCAwLjQ2MDM3MSwgMC41NzA5NDcsIDAuNzMwNTE3IiwgXAotICAgICAgICAgICIwLjA0MTI1MywgMC4xNDk1ODEsIDAuMjU2NzQ5LCAwLjMzNDY4NiwgMC40NjA0MDMsIDAuNTcwOTUyLCAwLjczMDU1NSIsIFwKLSAgICAgICAgICAiMC4wNDE3NTgsIDAuMTQ5ODM2LCAwLjI1NzA3MiwgMC4zMzQ3OTIsIDAuNDYwMjU0LCAwLjU3MTU0NywgMC43MzA1NjIiLCBcCi0gICAgICAgICAgIjAuMDQyNzc3LCAwLjE1MDYzNiwgMC4yNTc0ODQsIDAuMzM1MDY0LCAwLjQ2MDkxOSwgMC41NzE3NzQsIDAuNzMwNjg2IiwgXAotICAgICAgICAgICIwLjA0MzU5OCwgMC4xNTE0ODEsIDAuMjU4MDM3LCAwLjMzNTU5LCAwLjQ2MDkxNCwgMC41NzEyMTQsIDAuNzI5OTk0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM1NTkyLCAwLjA5MTUyNiwgMC4xNDYxOTEsIDAuMTg1MjIzLCAwLjI0NzU5MSwgMC4zMDIxNjksIDAuMzgwMTcyIiwgXAotICAgICAgICAgICIwLjA0NDAwMSwgMC4wOTk5MjQsIDAuMTU0NTg2LCAwLjE5MzU4NCwgMC4yNTU5OTEsIDAuMzEwNTc1LCAwLjM4ODU4MSIsIFwKLSAgICAgICAgICAiMC4wNTM3NDYsIDAuMTA5NzUxLCAwLjE2NDM5NSwgMC4yMDM0MTEsIDAuMjY1ODExLCAwLjMyMDM5LCAwLjM5ODM3OCIsIFwKLSAgICAgICAgICAiMC4wNjEzMTksIDAuMTE3NjU4LCAwLjE3MjI5NiwgMC4yMTEzMDEsIDAuMjczNjg0LCAwLjMyODI2OSwgMC40MDYyNyIsIFwKLSAgICAgICAgICAiMC4wNjc2MTQsIDAuMTI0MjYxLCAwLjE3ODg2NiwgMC4yMTc4NzUsIDAuMjgwMjUzLCAwLjMzNDgzLCAwLjQxMjg0MSIsIFwKLSAgICAgICAgICAiMC4wNzUyODYsIDAuMTMyNjY5LCAwLjE4NzIxNSwgMC4yMjYyMDUsIDAuMjg4NjIsIDAuMzQzMTYxLCAwLjQyMTEzNCIsIFwKLSAgICAgICAgICAiMC4wODA5MjIsIDAuMTM4ODY1LCAwLjE5MzQ2MywgMC4yMzI0MjcsIDAuMjk0ODAyLCAwLjM0ODkyNywgMC40MjczOTYiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjU3NDEsIDAuMTM3NTUzLCAwLjI1MjQ0LCAwLjMzNDIxMSwgMC40NjY1MTUsIDAuNTgxMjQxLCAwLjc0NTgzNCIsIFwKLSAgICAgICAgICAiMC4wMjU3NDQsIDAuMTM3Mzk3LCAwLjI1MjAxMiwgMC4zMzQzODMsIDAuNDY2NDc5LCAwLjU4MTI3OCwgMC43NDUzNzgiLCBcCi0gICAgICAgICAgIjAuMDI2ODAzLCAwLjEzNzY3NywgMC4yNTI0MzgsIDAuMzM0MTM2LCAwLjQ2NjQ2MSwgMC41ODEyNCwgMC43NDYwMDIiLCBcCi0gICAgICAgICAgIjAuMDI4MzQxLCAwLjEzNzkwOSwgMC4yNTIyMTUsIDAuMzM0NzE0LCAwLjQ2NjA3OSwgMC41ODEyNjcsIDAuNzQ2NTY3IiwgXAotICAgICAgICAgICIwLjAyOTc5OSwgMC4xMzgzMDcsIDAuMjUyMzk0LCAwLjMzNDQxNCwgMC40NjY0MTksIDAuNTgxNjU0LCAwLjc0NjQ5MyIsIFwKLSAgICAgICAgICAiMC4wMzIyOTgsIDAuMTM4OTc0LCAwLjI1MjY1MywgMC4zMzQ1NjgsIDAuNDY1OTAyLCAwLjU4MTM0MywgMC43NDY0MSIsIFwKLSAgICAgICAgICAiMC4wMzM5NCwgMC4xMzk3OTksIDAuMjUyOTE1LCAwLjMzNDcwOSwgMC40NjU4NzUsIDAuNTgxNjMxLCAwLjc0NTUwMiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4NTE2MSwgMC4xNTI3NTcsIDAuMjA4NTQ1LCAwLjI0NzM4NywgMC4zMDkwNDksIDAuMzYyOTM4LCAwLjQzOTg3NCIsIFwKLSAgICAgICAgICAiMC4wOTA5MTYsIDAuMTU4NTYxLCAwLjIxNDM0MiwgMC4yNTMxNDcsIDAuMzE0ODExLCAwLjM2ODY4NSwgMC40NDU2MzgiLCBcCi0gICAgICAgICAgIjAuMDk4MjYxLCAwLjE2NTk3NiwgMC4yMjE3NDEsIDAuMjYwNTYxLCAwLjMyMjIzNywgMC4zNzYxMTMsIDAuNDUzMDY5IiwgXAotICAgICAgICAgICIwLjEwNTg3NCwgMC4xNzMzODEsIDAuMjI5MTMsIDAuMjY3OTUsIDAuMzI5NjI2LCAwLjM4MzUwNiwgMC40NjA0NDQiLCBcCi0gICAgICAgICAgIjAuMTEzMTA1LCAwLjE4MDgxNSwgMC4yMzY1ODgsIDAuMjc1MzY5LCAwLjMzNzA2LCAwLjM5MDkzOSwgMC40Njc4NjkiLCBcCi0gICAgICAgICAgIjAuMTIzNTA4LCAwLjE5MTU1LCAwLjI0NzMxNCwgMC4yODYxNjIsIDAuMzQ3ODM3LCAwLjQwMTcwOSwgMC40Nzg2NDQiLCBcCi0gICAgICAgICAgIjAuMTMxNzQxLCAwLjIwMDA4MSwgMC4yNTYyNzgsIDAuMjk1MDc3LCAwLjM1NjU3MSwgMC40MTA0MTcsIDAuNDg3MzI0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQxMTgsIDAuMTQ5NjE0LCAwLjI1Njg4MiwgMC4zMzQ3MSwgMC40NjA3MjQsIDAuNTcxNDcxLCAwLjczMDU0OSIsIFwKLSAgICAgICAgICAiMC4wNDEyNjEsIDAuMTQ5NjQzLCAwLjI1NjkxLCAwLjMzNDcwMiwgMC40NjA3MjMsIDAuNTcxNDY4LCAwLjczMDUzNCIsIFwKLSAgICAgICAgICAiMC4wNDExMDksIDAuMTQ5MzQ5LCAwLjI1NjgxOCwgMC4zMzQ2NDQsIDAuNDYwMzcxLCAwLjU3MTQ3NSwgMC43MzA1MTYiLCBcCi0gICAgICAgICAgIjAuMDQxMjcsIDAuMTQ5NTk0LCAwLjI1Njg4NCwgMC4zMzQ2ODQsIDAuNDYwNzAxLCAwLjU3MTUxMiwgMC43MjkzODkiLCBcCi0gICAgICAgICAgIjAuMDQxNzY2LCAwLjE0OTg5MSwgMC4yNTcxMjUsIDAuMzM0ODIyLCAwLjQ2MDc2NywgMC41NzE1NTMsIDAuNzMwNDAxIiwgXAotICAgICAgICAgICIwLjA0MzQyMSwgMC4xNTA3NzksIDAuMjU3OTg1LCAwLjMzNTI0NiwgMC40NjA1MjgsIDAuNTcxNzczLCAwLjczMDcwNSIsIFwKLSAgICAgICAgICAiMC4wNDQwNDMsIDAuMTUxODAyLCAwLjI1ODI1OCwgMC4zMzU3MDMsIDAuNDYwOTE1LCAwLjU3MTk2NiwgMC43MzAxNDYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzM1ODcsIDAuMDg5NDUxLCAwLjE0NDAzNywgMC4xODMxNCwgMC4yNDU1NzUsIDAuMzAwMTI2LCAwLjM3ODE5IiwgXAotICAgICAgICAgICIwLjA0MjEwMiwgMC4wOTc5MTEsIDAuMTUyNTQ2LCAwLjE5MTU3NywgMC4yNTM5OTIsIDAuMzA4NTk2LCAwLjM4NjgzOSIsIFwKLSAgICAgICAgICAiMC4wNTE0MDQsIDAuMTA3MjgsIDAuMTYxODk4LCAwLjIwMDk3OSwgMC4yNjM0NywgMC4zMTc5NTksIDAuMzk2MjgzIiwgXAotICAgICAgICAgICIwLjA1ODQ5NywgMC4xMTQ2MjksIDAuMTY5MjkyLCAwLjIwODI3NiwgMC4yNzA3MjgsIDAuMzI1NDEsIDAuNDAzNDM3IiwgXAotICAgICAgICAgICIwLjA2NDE5MywgMC4xMjA3MDQsIDAuMTc1Mjc5LCAwLjIxNDMyNiwgMC4yNzY3OTUsIDAuMzMxMzcxLCAwLjQwOTM1OCIsIFwKLSAgICAgICAgICAiMC4wNzEyOSwgMC4xMjg1MDUsIDAuMTgzMTc2LCAwLjIyMjE0NywgMC4yODQ1MzYsIDAuMzM5MjMsIDAuNDE3MzIiLCBcCi0gICAgICAgICAgIjAuMDc2MzA4LCAwLjEzMzgxMywgMC4xODgzNjMsIDAuMjI3Mjg0LCAwLjI4OTgwNiwgMC4zNDQyMjksIDAuNDIyMzc1Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDI1NDU2LCAwLjEzNzMzLCAwLjI1MjAwNiwgMC4zMzQwMDksIDAuNDY1NjYyLCAwLjU4MDkwMywgMC43NDYxMTgiLCBcCi0gICAgICAgICAgIjAuMDI1NTIxLCAwLjEzNzQxNywgMC4yNTIzNzMsIDAuMzM0MTIxLCAwLjQ2NTczNCwgMC41ODA5MiwgMC43NDU2MDUiLCBcCi0gICAgICAgICAgIjAuMDI2NzQzLCAwLjEzNzU1OSwgMC4yNTIzNzksIDAuMzM0MTg2LCAwLjQ2NTg2MSwgMC41ODE1OSwgMC43NDU1MTkiLCBcCi0gICAgICAgICAgIjAuMDI4NTAxLCAwLjEzNzg4MiwgMC4yNTIwNjcsIDAuMzM0NzY1LCAwLjQ2NTk3OSwgMC41ODEwNDcsIDAuNzQ1NTU0IiwgXAotICAgICAgICAgICIwLjAzMDExOSwgMC4xMzg0MjIsIDAuMjUyNTksIDAuMzM0NzE5LCAwLjQ2NTYyNiwgMC41ODEwMTgsIDAuNzQ1MzY4IiwgXAotICAgICAgICAgICIwLjAzMjIwMiwgMC4xMzkxMjksIDAuMjUyNjEsIDAuMzM0OTc1LCAwLjQ2NjY1OSwgMC41ODEwNzcsIDAuNzQ1NyIsIFwKLSAgICAgICAgICAiMC4wMzQxNzQsIDAuMTQwMDk3LCAwLjI1Mjc2NSwgMC4zMzQ2NjcsIDAuNDY1ODkyLCAwLjU4MjAwOCwgMC43NDUzNiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3ODAyNiwgMC4xNDU2NTksIDAuMjAxNDE1LCAwLjI0MDI0MSwgMC4zMDE5MTgsIDAuMzU1OCwgMC40MzI3NDYiLCBcCi0gICAgICAgICAgIjAuMDg0NTYxLCAwLjE1MjE5MiwgMC4yMDgwMDgsIDAuMjQ2ODA5LCAwLjMwODQ4LCAwLjM2MjM1NiwgMC40MzkzMTIiLCBcCi0gICAgICAgICAgIjAuMDkzNTQ5LCAwLjE2MTE5LCAwLjIxNjk0OSwgMC4yNTU3ODIsIDAuMzE3NDU5LCAwLjM3MTMzNywgMC40NDgyOTEiLCBcCi0gICAgICAgICAgIjAuMTAzMDQ0LCAwLjE3MDYwNywgMC4yMjYzLCAwLjI2NTExNiwgMC4zMjY3OTcsIDAuMzgwNjk3LCAwLjQ1NzYyNSIsIFwKLSAgICAgICAgICAiMC4xMTIwMzgsIDAuMTc5NzE1LCAwLjIzNTQ0OCwgMC4yNzQyNTgsIDAuMzM1OTQyLCAwLjM4OTgxOSwgMC40NjY3NTgiLCBcCi0gICAgICAgICAgIjAuMTI1MTgzLCAwLjE5MjcyMiwgMC4yNDg0MzUsIDAuMjg3MjgxLCAwLjM0ODk0OCwgMC40MDI4MiwgMC40Nzk3NDciLCBcCi0gICAgICAgICAgIjAuMTM0NjkzLCAwLjIwMjYzOCwgMC4yNTg2NTQsIDAuMjk3NDU5LCAwLjM1OTEyNywgMC40MTI5OCwgMC40ODk4ODgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDExODcsIDAuMTQ5NTk0LCAwLjI1Njg2MiwgMC4zMzQ2ODEsIDAuNDYwMzg0LCAwLjU3MDk0NSwgMC43MzA1NDEiLCBcCi0gICAgICAgICAgIjAuMDQxMjI0LCAwLjE0OTU0NiwgMC4yNTY4NDksIDAuMzM0NjU1LCAwLjQ2MDY5OSwgMC41NzA5MTMsIDAuNzMwNTMzIiwgXAotICAgICAgICAgICIwLjA0MTA3NiwgMC4xNDk1MDIsIDAuMjU2ODQ5LCAwLjMzNDYzOCwgMC40NjAzNDYsIDAuNTcxNTE1LCAwLjcyOTA4NSIsIFwKLSAgICAgICAgICAiMC4wNDE0MTksIDAuMTQ5NTgzLCAwLjI1NjkzMSwgMC4zMzQ3MTYsIDAuNDYwNDI0LCAwLjU3MTYyMSwgMC43MzA1NDgiLCBcCi0gICAgICAgICAgIjAuMDQxOTg2LCAwLjE1MDA5MSwgMC4yNTcxNzcsIDAuMzM0ODg1LCAwLjQ2MDY5OCwgMC41NzE1OTYsIDAuNzMwNTk0IiwgXAotICAgICAgICAgICIwLjA0MzI1NiwgMC4xNTA2OTksIDAuMjU3NTczLCAwLjMzNTIyMiwgMC40NjEwNTksIDAuNTcxNzcxLCAwLjcyOTQ3NCIsIFwKLSAgICAgICAgICAiMC4wNDQ1MTksIDAuMTUxODMxLCAwLjI1ODM0NiwgMC4zMzU3OSwgMC40NjA5OTMsIDAuNTcyMDQyLCAwLjczMDEyOCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2MzA4LCAwLjAwNjM5OSwgMC4wMDY0MTQsIDAuMDA2NDE5LCAwLjAwNjQyMywgMC4wMDY0MjYsIDAuMDA2NDI4IiwgXAotICAgICAgICAgICIwLjAwNjI1MywgMC4wMDYzNTEsIDAuMDA2MzcyLCAwLjAwNjM3OSwgMC4wMDYzODUsIDAuMDA2Mzg4LCAwLjAwNjM5MSIsIFwKLSAgICAgICAgICAiMC4wMDYzMzIsIDAuMDA2MzcsIDAuMDA2MzkxLCAwLjAwNjQsIDAuMDA2NDA1LCAwLjAwNjQwOCwgMC4wMDY0MSIsIFwKLSAgICAgICAgICAiMC4wMDY0NDQsIDAuMDA2NDI2LCAwLjAwNjQ0NCwgMC4wMDY0NDUsIDAuMDA2NDU2LCAwLjAwNjQ2LCAwLjAwNjQ2NiIsIFwKLSAgICAgICAgICAiMC4wMDY2MjEsIDAuMDA2NTIxLCAwLjAwNjUyOCwgMC4wMDY1MzIsIDAuMDA2NTM0LCAwLjAwNjUzOSwgMC4wMDY1NDYiLCBcCi0gICAgICAgICAgIjAuMDA3MDQyLCAwLjAwNjc0NSwgMC4wMDY3MjQsIDAuMDA2NzI0LCAwLjAwNjcxNSwgMC4wMDY3MTIsIDAuMDA2NzE5IiwgXAotICAgICAgICAgICIwLjAwNzE3NSwgMC4wMDY5NDksIDAuMDA2OTEyLCAwLjAwNjkwMiwgMC4wMDY4OTIsIDAuMDA2ODg3LCAwLjAwNjg5MSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA5ODI4LCAwLjAwOTYyLCAwLjAwOTYxNiwgMC4wMDk2MTcsIDAuMDA5NjE4LCAwLjAwOTYxOSwgMC4wMDk2MiIsIFwKLSAgICAgICAgICAiMC4wMDk3ODEsIDAuMDA5NTcsIDAuMDA5NTcyLCAwLjAwOTU3NCwgMC4wMDk1NzUsIDAuMDA5NTc2LCAwLjAwOTU3NyIsIFwKLSAgICAgICAgICAiMC4wMDk3NDcsIDAuMDA5NTI1LCAwLjAwOTUzNywgMC4wMDk1NDIsIDAuMDA5NTQ3LCAwLjAwOTU1LCAwLjAwOTU1MyIsIFwKLSAgICAgICAgICAiMC4wMDk4NjIsIDAuMDA5NTU4LCAwLjAwOTU1NywgMC4wMDk1NTcsIDAuMDA5NTU4LCAwLjAwOTU1OSwgMC4wMDk1NiIsIFwKLSAgICAgICAgICAiMC4wMDk4MzksIDAuMDA5NTM3LCAwLjAwOTU0NSwgMC4wMDk1NSwgMC4wMDk1NTYsIDAuMDA5NTU5LCAwLjAwOTU2MiIsIFwKLSAgICAgICAgICAiMC4wMTAwMDEsIDAuMDA5NjEyLCAwLjAwOTYwNywgMC4wMDk2MDYsIDAuMDA5NjEsIDAuMDA5NjExLCAwLjAwOTYxMyIsIFwKLSAgICAgICAgICAiMC4wMTAxMywgMC4wMDk2ODksIDAuMDA5Njc3LCAwLjAwOTY3MywgMC4wMDk2NzcsIDAuMDA5Njc3LCAwLjAwOTY3OCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1OTg3LCAwLjAwNjE2MiwgMC4wMDYxODksIDAuMDA2MTk3LCAwLjAwNjIwNSwgMC4wMDYyMDksIDAuMDA2MjEyIiwgXAotICAgICAgICAgICIwLjAwNTkzNSwgMC4wMDYxMTYsIDAuMDA2MTU1LCAwLjAwNjE2MywgMC4wMDYxNzQsIDAuMDA2MTc5LCAwLjAwNjE4NiIsIFwKLSAgICAgICAgICAiMC4wMDYwMDcsIDAuMDA2MTIxLCAwLjAwNjE2NSwgMC4wMDYxNzMsIDAuMDA2MTg2LCAwLjAwNjE5MSwgMC4wMDYxOTgiLCBcCi0gICAgICAgICAgIjAuMDA2MTQ2LCAwLjAwNjE4NSwgMC4wMDYyMjEsIDAuMDA2MjMzLCAwLjAwNjI0NywgMC4wMDYyNTMsIDAuMDA2MjYxIiwgXAotICAgICAgICAgICIwLjAwNjIzNywgMC4wMDYyNDEsIDAuMDA2Mjc2LCAwLjAwNjI5MywgMC4wMDYzMDQsIDAuMDA2MzEzLCAwLjAwNjMyMSIsIFwKLSAgICAgICAgICAiMC4wMDY1OTEsIDAuMDA2NDMxLCAwLjAwNjQ0NSwgMC4wMDY0NTUsIDAuMDA2NDY1LCAwLjAwNjQ3LCAwLjAwNjQ3NiIsIFwKLSAgICAgICAgICAiMC4wMDY5MzYsIDAuMDA2NjMyLCAwLjAwNjYyOCwgMC4wMDY2MywgMC4wMDY2NDcsIDAuMDA2NjUyLCAwLjAwNjY0MyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA5NDM3LCAwLjAwOTE3MSwgMC4wMDkxNjksIDAuMDA5MTcsIDAuMDA5MTc0LCAwLjAwOTE3NywgMC4wMDkxNzkiLCBcCi0gICAgICAgICAgIjAuMDA5MzU1LCAwLjAwOTExMSwgMC4wMDkxMjEsIDAuMDA5MTI1LCAwLjAwOTEzLCAwLjAwOTEzMywgMC4wMDkxMzYiLCBcCi0gICAgICAgICAgIjAuMDA5Mjk2LCAwLjAwOTA4MywgMC4wMDkwOTcsIDAuMDA5MTAzLCAwLjAwOTExLCAwLjAwOTExMywgMC4wMDkxMTYiLCBcCi0gICAgICAgICAgIjAuMDA5NDE2LCAwLjAwOTExMywgMC4wMDkxMTQsIDAuMDA5MTE2LCAwLjAwOTEyLCAwLjAwOTEyMiwgMC4wMDkxMjQiLCBcCi0gICAgICAgICAgIjAuMDA5NDk0LCAwLjAwOTEzNCwgMC4wMDkxMzIsIDAuMDA5MTM1LCAwLjAwOTEzOCwgMC4wMDkxNCwgMC4wMDkxNDMiLCBcCi0gICAgICAgICAgIjAuMDA5NzAxLCAwLjAwOTIzMywgMC4wMDkyMTMsIDAuMDA5MjA3LCAwLjAwOTIwNiwgMC4wMDkyMDYsIDAuMDA5MjA3IiwgXAotICAgICAgICAgICIwLjAwOTg1OCwgMC4wMDkzNDksIDAuMDA5MzA5LCAwLjAwOTMwMiwgMC4wMDkyOTcsIDAuMDA5MjksIDAuMDA5MjkyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDU2MTcsIDAuMDA1NzksIDAuMDA1ODE5LCAwLjAwNTgyNCwgMC4wMDU4MywgMC4wMDU4MzMsIDAuMDA1ODM2IiwgXAotICAgICAgICAgICIwLjAwNTU4NCwgMC4wMDU3NjgsIDAuMDA1ODAzLCAwLjAwNTgxMywgMC4wMDU4MjUsIDAuMDA1ODI4LCAwLjAwNTgzMiIsIFwKLSAgICAgICAgICAiMC4wMDU2MjYsIDAuMDA1NzcxLCAwLjAwNTgxLCAwLjAwNTgyMiwgMC4wMDU4MzQsIDAuMDA1ODM5LCAwLjAwNTg0NSIsIFwKLSAgICAgICAgICAiMC4wMDU3ODcsIDAuMDA1ODM1LCAwLjAwNTg2OCwgMC4wMDU4OCwgMC4wMDU4OTMsIDAuMDA1ODk5LCAwLjAwNTkwNCIsIFwKLSAgICAgICAgICAiMC4wMDU4OTEsIDAuMDA1ODk0LCAwLjAwNTkyNCwgMC4wMDU5NDEsIDAuMDA1OTUzLCAwLjAwNTk1NywgMC4wMDU5NjciLCBcCi0gICAgICAgICAgIjAuMDA2MjU1LCAwLjAwNjA2OSwgMC4wMDYwOTYsIDAuMDA2MTExLCAwLjAwNjEyMSwgMC4wMDYxMzEsIDAuMDA2MTM0IiwgXAotICAgICAgICAgICIwLjAwNjQ0OSwgMC4wMDYyNjEsIDAuMDA2MjcyLCAwLjAwNjI4LCAwLjAwNjI4OSwgMC4wMDYyNzEsIDAuMDA2Mjk4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDg5NjksIDAuMDA4NzM2LCAwLjAwODczNSwgMC4wMDg3MzgsIDAuMDA4NzQxLCAwLjAwODc0MywgMC4wMDg3NDUiLCBcCi0gICAgICAgICAgIjAuMDA4ODg2LCAwLjAwODY4MSwgMC4wMDg2ODksIDAuMDA4NjkzLCAwLjAwODY5NywgMC4wMDg2OTksIDAuMDA4NzAyIiwgXAotICAgICAgICAgICIwLjAwODg2NSwgMC4wMDg2NDUsIDAuMDA4NjYyLCAwLjAwODY3LCAwLjAwODY3NywgMC4wMDg2ODIsIDAuMDA4Njg2IiwgXAotICAgICAgICAgICIwLjAwODk5MSwgMC4wMDg2ODQsIDAuMDA4NjksIDAuMDA4Njk1LCAwLjAwODcsIDAuMDA4NzA0LCAwLjAwODcwNyIsIFwKLSAgICAgICAgICAiMC4wMDkxNjMsIDAuMDA4NzMsIDAuMDA4NzMxLCAwLjAwODczNSwgMC4wMDg3NCwgMC4wMDg3NDMsIDAuMDA4NzQ3IiwgXAotICAgICAgICAgICIwLjAwOTU0MywgMC4wMDg4OTEsIDAuMDA4ODgxLCAwLjAwODg1NSwgMC4wMDg4NTIsIDAuMDA4ODUxLCAwLjAwODg1MSIsIFwKLSAgICAgICAgICAiMC4wMDk1MTUsIDAuMDA5MDk0LCAwLjAwODk2OCwgMC4wMDg5NjEsIDAuMDA4OTg4LCAwLjAwODk4LCAwLjAwODk3NCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkQiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1Mjc2LCAwLjAwNTQ0NywgMC4wMDU0NywgMC4wMDU0NzcsIDAuMDA1NDgzLCAwLjAwNTQ4NiwgMC4wMDU0NjkiLCBcCi0gICAgICAgICAgIjAuMDA1MjQ2LCAwLjAwNTQyOCwgMC4wMDU0NTUsIDAuMDA1NDY5LCAwLjAwNTQ3NSwgMC4wMDU0NzksIDAuMDA1NDgzIiwgXAotICAgICAgICAgICIwLjAwNTI5NCwgMC4wMDU0MzcsIDAuMDA1NDY5LCAwLjAwNTQ4MSwgMC4wMDU0OTQsIDAuMDA1NDk3LCAwLjAwNTUwNCIsIFwKLSAgICAgICAgICAiMC4wMDU0NTcsIDAuMDA1NDg3LCAwLjAwNTUyMiwgMC4wMDU1MzUsIDAuMDA1NTQ3LCAwLjAwNTU1MywgMC4wMDU1NTgiLCBcCi0gICAgICAgICAgIjAuMDA1NTg4LCAwLjAwNTU3OSwgMC4wMDU1OTEsIDAuMDA1NjE1LCAwLjAwNTYyOSwgMC4wMDU2MjEsIDAuMDA1NjQzIiwgXAotICAgICAgICAgICIwLjAwNTc5OCwgMC4wMDU3NzYsIDAuMDA1Nzg0LCAwLjAwNTc3LCAwLjAwNTc4MiwgMC4wMDU4LCAwLjAwNTgwMiIsIFwKLSAgICAgICAgICAiMC4wMDYwMjcsIDAuMDA1OTUxLCAwLjAwNTk0MywgMC4wMDU5NTEsIDAuMDA1OTM3LCAwLjAwNTk1LCAwLjAwNTk1OCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA4NDY4LCAwLjAwODI2NywgMC4wMDgyNzQsIDAuMDA4Mjc4LCAwLjAwODI4NCwgMC4wMDgyODcsIDAuMDA4MjkiLCBcCi0gICAgICAgICAgIjAuMDA4NDM3LCAwLjAwODIxNCwgMC4wMDgyMzMsIDAuMDA4MjQsIDAuMDA4MjQ3LCAwLjAwODI1MiwgMC4wMDgyNTYiLCBcCi0gICAgICAgICAgIjAuMDA4NDUsIDAuMDA4MjM1LCAwLjAwODI1NSwgMC4wMDgyNjUsIDAuMDA4Mjc1LCAwLjAwODI4MSwgMC4wMDgyODciLCBcCi0gICAgICAgICAgIjAuMDA4Njg1LCAwLjAwODMzOCwgMC4wMDgzMzgsIDAuMDA4MzQxLCAwLjAwODM0NywgMC4wMDgzNSwgMC4wMDgzNTQiLCBcCi0gICAgICAgICAgIjAuMDA4OTgyLCAwLjAwODQ1MSwgMC4wMDg0MzMsIDAuMDA4NDMzLCAwLjAwODQzNCwgMC4wMDg0MzYsIDAuMDA4NDM4IiwgXAotICAgICAgICAgICIwLjAwOTM2LCAwLjAwODYzOCwgMC4wMDg2MDYsIDAuMDA4NjAzLCAwLjAwODYwMSwgMC4wMDg2MDIsIDAuMDA4NjAzIiwgXAotICAgICAgICAgICIwLjAwOTQ2OSwgMC4wMDg5MDQsIDAuMDA4ODM0LCAwLjAwODgxNSwgMC4wMDg3OTgsIDAuMDA4NzkzLCAwLjAwODc4OSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBPUjRYNiAqCi0gKiAtLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoT1I0WDYpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMS4zODQ1NTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAyMDk5Mjg7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAyMDg5MTg7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAyMDk5Mjg7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwODg3LCAwLjAwMDk0NywgMC4wMDA5NjQsIDAuMDAwOTg0LCAwLjAwMDk5MywgMC4wMDA5OTcsIDAuMDAwOTk5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyNzExLCAwLjAwMjcxMiwgMC4wMDI3MTMsIDAuMDAyNzEzLCAwLjAwMjcxMywgMC4wMDI3MTMsIDAuMDAyNzEzIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDIwMDM0NzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE5OTQ2OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMjAwMzQ3OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDg1NSwgMC4wMDA5NDEsIDAuMDAwOTcyLCAwLjAwMDk3OSwgMC4wMDA5ODIsIDAuMDAxMDAzLCAwLjAwMDk4NyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTkxLCAwLjAwMTkxMiwgMC4wMDE5MTIsIDAuMDAxOTEyLCAwLjAwMTkxMiwgMC4wMDE5MTIsIDAuMDAxOTEyIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihDKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE4MjQ2MjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE4MTc1ODsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE4MjQ2MjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA4NTksIDAuMDAwOTczLCAwLjAwMDk5NywgMC4wMDEwMTEsIDAuMDAxMDEsIDAuMDAxMDE2LCAwLjAwMTAxNSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTA3OCwgMC4wMDEwNzgsIDAuMDAxMDc4LCAwLjAwMTA3OCwgMC4wMDEwNzksIDAuMDAxMDc5LCAwLjAwMTA3OSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNjk1OTI7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNjk1OTI7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNjk1NTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyNTMsIDAuMDAwMjUzLCAwLjAwMDI1MywgMC4wMDAyNTMsIDAuMDAwMjUzLCAwLjAwMDI1MywgMC4wMDAyNTMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA4MjQsIDAuMDAwODI1LCAwLjAwMDgyNSwgMC4wMDA4MjUsIDAuMDAwODI1LCAwLjAwMDgyNCwgMC4wMDA4MjQiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMS45NjM0OwotICAgIGZ1bmN0aW9uIDogIigoKEErQikrQykrRCkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDMxMDUxLCAwLjA3MDMxNywgMC4xMDc5NTMsIDAuMTM0NzY5LCAwLjE3NzY0LCAwLjIxNTEyNywgMC4yNjg2OCIsIFwKLSAgICAgICAgICAiMC4wMzk1MDUsIDAuMDc4NjY2LCAwLjExNjI4OSwgMC4xNDMxMDksIDAuMTg1OTg4LCAwLjIyMzQ5LCAwLjI3NzAzMiIsIFwKLSAgICAgICAgICAiMC4wNDk0MzQsIDAuMDg4NTI4LCAwLjEyNjE1NiwgMC4xNTI5NywgMC4xOTU4NCwgMC4yMzMzMjgsIDAuMjg2OTAyIiwgXAotICAgICAgICAgICIwLjA1NjkyOSwgMC4wOTYzOCwgMC4xMzM5NTgsIDAuMTYwNzgxLCAwLjIwMzY3MiwgMC4yNDExNDMsIDAuMjk0NzAxIiwgXAotICAgICAgICAgICIwLjA2MzA0NCwgMC4xMDI4OTgsIDAuMTQwNTEsIDAuMTY3MjkyLCAwLjIxMDE2NCwgMC4yNDc2NDcsIDAuMzAxMjEiLCBcCi0gICAgICAgICAgIjAuMDcwOTY4LCAwLjExMTI3LCAwLjE0ODg1MiwgMC4xNzU2MjgsIDAuMjE4NDY5LCAwLjI1NTk3NiwgMC4zMDk1IiwgXAotICAgICAgICAgICIwLjA3NjU3OSwgMC4xMTc0NjYsIDAuMTU0OTUzLCAwLjE4MTc0NiwgMC4yMjQ1NTMsIDAuMjYyMDMsIDAuMzE1NTU4Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDIwNTE3LCAwLjA5Njc5OCwgMC4xNzU0ODgsIDAuMjMxOTMyLCAwLjMyMjQyMiwgMC40MDE2NTEsIDAuNTE0NTQyIiwgXAotICAgICAgICAgICIwLjAyMDM5OSwgMC4wOTY3NjQsIDAuMTc1NDYsIDAuMjMxOTEsIDAuMzIxOTgsIDAuNDAxMjA2LCAwLjUxNDg2MSIsIFwKLSAgICAgICAgICAiMC4wMjEzNzEsIDAuMDk2OCwgMC4xNzU0NzIsIDAuMjMxODk3LCAwLjMyMjM3MiwgMC40MDEzNzUsIDAuNTE0ODYxIiwgXAotICAgICAgICAgICIwLjAyMjczMSwgMC4wOTcyNCwgMC4xNzU1NzYsIDAuMjMxNjc4LCAwLjMyMjQyNCwgMC40MDE2MTIsIDAuNTE0MzA1IiwgXAotICAgICAgICAgICIwLjAyNDAxOCwgMC4wOTc2NTksIDAuMTc1NjI2LCAwLjIzMjAxMSwgMC4zMjI0MjcsIDAuNDAxNDU2LCAwLjUxNDQwMiIsIFwKLSAgICAgICAgICAiMC4wMjU5MjQsIDAuMDk4NDg0LCAwLjE3NTgzNCwgMC4yMzIwNzgsIDAuMzIyMjY2LCAwLjQwMTY3NywgMC41MTQ4NjIiLCBcCi0gICAgICAgICAgIjAuMDI3Njg4LCAwLjA5OTMxMSwgMC4xNzYyMjIsIDAuMjMyMTA4LCAwLjMyMjM5OCwgMC40MDE0NDUsIDAuNTE0ODQxIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc0OTExLCAwLjEyMzY5NCwgMC4xNjMyNDQsIDAuMTkwNTEzLCAwLjIzMzY1NiwgMC4yNzEyODMsIDAuMzI0OTcxIiwgXAotICAgICAgICAgICIwLjA3OTgwNCwgMC4xMjg2MzgsIDAuMTY4MTk2LCAwLjE5NTQyNSwgMC4yMzg1NzEsIDAuMjc2MTkxLCAwLjMyOTg4IiwgXAotICAgICAgICAgICIwLjA4NDQ4NCwgMC4xMzMyMjcsIDAuMTcyNzUzLCAwLjIwMDAxMiwgMC4yNDMxNywgMC4yODA3ODgsIDAuMzM0NDgiLCBcCi0gICAgICAgICAgIjAuMDg4MjYxLCAwLjEzNzA2MiwgMC4xNzY1NjksIDAuMjAzODI2LCAwLjI0Njk3NSwgMC4yODQ1OCwgMC4zMzgyODciLCBcCi0gICAgICAgICAgIjAuMDkxNDk2LCAwLjE0MDQ5MSwgMC4xODAwNywgMC4yMDczMDksIDAuMjUwNDYyLCAwLjI4ODA3OCwgMC4zNDE3NjYiLCBcCi0gICAgICAgICAgIjAuMDk1NzQsIDAuMTQ1MzcyLCAwLjE4NTAxMSwgMC4yMTIzMjIsIDAuMjU1NTA2LCAwLjI5MzExNSwgMC4zNDY4MjMiLCBcCi0gICAgICAgICAgIjAuMDk5MTM2LCAwLjE0OTE0NiwgMC4xODg5NjMsIDAuMjE2Mjg1LCAwLjI1OTQ5MiwgMC4yOTcxMTIsIDAuMzUwNzY2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDMxNzcsIDAuMTA3NDUyLCAwLjE4MTM3MSwgMC4yMzQ5MTUsIDAuMzIxNDg5LCAwLjM5ODA0NCwgMC41MDc3ODkiLCBcCi0gICAgICAgICAgIjAuMDMxNjk1LCAwLjEwNzQwNCwgMC4xODEzNzcsIDAuMjM0OTA4LCAwLjMyMTQ3NiwgMC4zOTgwNzIsIDAuNTA3NzcxIiwgXAotICAgICAgICAgICIwLjAzMTU5LCAwLjEwNzM0NCwgMC4xODEzMTgsIDAuMjM0ODc0LCAwLjMyMTMzNCwgMC4zOTc1MSwgMC41MDc3NTQiLCBcCi0gICAgICAgICAgIjAuMDMxODE3LCAwLjEwNzM3LCAwLjE4MTQ0MiwgMC4yMzQ5NTcsIDAuMzIxMzY3LCAwLjM5ODEyMiwgMC41MDc3NjUiLCBcCi0gICAgICAgICAgIjAuMDMyNDU0LCAwLjEwNzgzOSwgMC4xODE2NjksIDAuMjM1MDkxLCAwLjMyMTU1NywgMC4zOTgyMTIsIDAuNTA3ODQ2IiwgXAotICAgICAgICAgICIwLjAzMzIxNSwgMC4xMDg2NjYsIDAuMTgyMjM1LCAwLjIzNTYwMiwgMC4zMjE5MTcsIDAuMzk3ODk3LCAwLjUwODE3MSIsIFwKLSAgICAgICAgICAiMC4wMzM5ODEsIDAuMTA5Mjg4LCAwLjE4MjgyOCwgMC4yMzYwODMsIDAuMzIyMjcxLCAwLjM5ODMwMywgMC41MDc3MzYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzAxOTMsIDAuMDY5MTIxLCAwLjEwNjY4NCwgMC4xMzM0OCwgMC4xNzYzNDgsIDAuMjEzODEzLCAwLjI2NzI2IiwgXAotICAgICAgICAgICIwLjAzODUsIDAuMDc3MzYzLCAwLjExNDk0LCAwLjE0MTczNSwgMC4xODQ2MTQsIDAuMjIyMTE0LCAwLjI3NTYwNSIsIFwKLSAgICAgICAgICAiMC4wNDc5OSwgMC4wODY5MiwgMC4xMjQ1LCAwLjE1MTI5MiwgMC4xOTQxNTEsIDAuMjMxNjM1LCAwLjI4NTE1NCIsIFwKLSAgICAgICAgICAiMC4wNTUxMzYsIDAuMDk0NDUsIDAuMTMyLCAwLjE1ODgyMSwgMC4yMDE2NSwgMC4yMzkxNDEsIDAuMjkyNjk0IiwgXAotICAgICAgICAgICIwLjA2MDcyOSwgMC4xMDA1MjgsIDAuMTM3ODYsIDAuMTY0NjUzLCAwLjIwNzUwOSwgMC4yNDQ5NjgsIDAuMjk4NTIzIiwgXAotICAgICAgICAgICIwLjA2ODA5NiwgMC4xMDgzODcsIDAuMTQ1OTU5LCAwLjE3MjQsIDAuMjE1NTY2LCAwLjI1MzAzNywgMC4zMDY1OTIiLCBcCi0gICAgICAgICAgIjAuMDczMTg3LCAwLjExNDA4NywgMC4xNTE1ODcsIDAuMTc4MDMzLCAwLjIyMTE5MiwgMC4yNTg2NiwgMC4zMTE4MTciKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTk5MjgsIDAuMDk2MzU3LCAwLjE3NTIxNCwgMC4yMzE0OTgsIDAuMzIxNTc5LCAwLjQwMTIwOSwgMC41MTQxNzYiLCBcCi0gICAgICAgICAgIjAuMDIwMDI1LCAwLjA5NjM3NiwgMC4xNzUyMDQsIDAuMjMxNjg3LCAwLjMyMjI1NiwgMC40MDA4NDEsIDAuNTE0NzY2IiwgXAotICAgICAgICAgICIwLjAyMTEyOSwgMC4wOTY1ODUsIDAuMTc1MjU0LCAwLjIzMTcxOSwgMC4zMjE4ODksIDAuNDAxNTA2LCAwLjUxNDc0OCIsIFwKLSAgICAgICAgICAiMC4wMjI0NSwgMC4wOTY5NiwgMC4xNzUzMjksIDAuMjMxNzcsIDAuMzIyMjE0LCAwLjQwMTAzNCwgMC41MTQ3MTYiLCBcCi0gICAgICAgICAgIjAuMDIzOSwgMC4wOTc1NTYsIDAuMTc1NDA1LCAwLjIzMTcyLCAwLjMyMjI1NywgMC40MDE0NzgsIDAuNTE0NzUxIiwgXAotICAgICAgICAgICIwLjAyNTY3MywgMC4wOTgzMjIsIDAuMTc1NzA2LCAwLjIzMTc5LCAwLjMyMjA5NSwgMC40MDE0NzMsIDAuNTE0NzI4IiwgXAotICAgICAgICAgICIwLjAyNzI3MSwgMC4wOTg5OTUsIDAuMTc1OTgsIDAuMjMxOTUzLCAwLjMyMjIzOSwgMC40MDEyNjksIDAuNTE0MzM3Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDcyODgzLCAwLjEyMTcsIDAuMTYxMjU5LCAwLjE4ODUyNCwgMC4yMzE2NzEsIDAuMjY5Mjk4LCAwLjMyMjk4NyIsIFwKLSAgICAgICAgICAiMC4wNzgzMjMsIDAuMTI3MTI0LCAwLjE2NjcwNywgMC4xOTM5MjgsIDAuMjM3MDgzLCAwLjI3NDcwMiwgMC4zMjgzOTQiLCBcCi0gICAgICAgICAgIjAuMDg0MDUyLCAwLjEzMjgzOSwgMC4xNzIzOTgsIDAuMTk5NjI4LCAwLjI0Mjc4NCwgMC4yODA0MDYsIDAuMzM0MDk3IiwgXAotICAgICAgICAgICIwLjA4OTM0OCwgMC4xMzgxODEsIDAuMTc3Njk0LCAwLjIwNDk1NiwgMC4yNDgxMTYsIDAuMjg1NzMyLCAwLjMzOTQyNiIsIFwKLSAgICAgICAgICAiMC4wOTQxMzUsIDAuMTQzMjMzLCAwLjE4MjgwNiwgMC4yMTAwNjgsIDAuMjUzMjEyLCAwLjI5MDgyNywgMC4zNDQ1MjMiLCBcCi0gICAgICAgICAgIjAuMTAwOTI0LCAwLjE1MDU0OCwgMC4xOTAzMSwgMC4yMTc1OTIsIDAuMjYwNzUxLCAwLjI5ODM2NywgMC4zNTIwNDkiLCBcCi0gICAgICAgICAgIjAuMTA2MzAyLCAwLjE1NjQsIDAuMTk2MjY0LCAwLjIyMzYxNywgMC4yNjY4MDUsIDAuMzA0NDE1LCAwLjM1ODEwNSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzMTcyNiwgMC4xMDc0NDcsIDAuMTgxMzY0LCAwLjIzNDkxMSwgMC4zMjE0ODYsIDAuMzk4MDMsIDAuNTA3NzczIiwgXAotICAgICAgICAgICIwLjAzMTY3NSwgMC4xMDc0MDksIDAuMTgxMzUzLCAwLjIzNDg5NiwgMC4zMjEzMTYsIDAuMzk3OTYxLCAwLjUwNzc3NCIsIFwKLSAgICAgICAgICAiMC4wMzE1NTgsIDAuMTA3MzQsIDAuMTgxMzMsIDAuMjM0ODc0LCAwLjMyMTIyNSwgMC4zOTgwNzgsIDAuNTA3NzUyIiwgXAotICAgICAgICAgICIwLjAzMTkyOSwgMC4xMDc1NjQsIDAuMTgxMzQ1LCAwLjIzNDk4NiwgMC4zMjEzODQsIDAuMzk4MDkzLCAwLjUwNzc3MSIsIFwKLSAgICAgICAgICAiMC4wMzI2MywgMC4xMDgwNTQsIDAuMTgxNzYxLCAwLjIzNTIxNywgMC4zMjE2NzQsIDAuMzk4MjU5LCAwLjUwNzg1NCIsIFwKLSAgICAgICAgICAiMC4wMzM0NTksIDAuMTA5MDM3LCAwLjE4MjQzNywgMC4yMzU4MDIsIDAuMzIyMTQ3LCAwLjM5Nzk3MiwgMC41MDcxOTQiLCBcCi0gICAgICAgICAgIjAuMDM0NDQ4LCAwLjEwOTgwMywgMC4xODMxNjIsIDAuMjM2MzYyLCAwLjMyMjQwMiwgMC4zOTg4MzksIDAuNTA3ODIyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDI4NjYzLCAwLjA2NzM2LCAwLjEwNDg4NywgMC4xMzE2MjksIDAuMTc0NTE4LCAwLjIxMTk2OCwgMC4yNjU1MDUiLCBcCi0gICAgICAgICAgIjAuMDM3MDI0LCAwLjA3NTY4MiwgMC4xMTMyMjcsIDAuMTQwMDA4LCAwLjE4Mjg1NSwgMC4yMjAzMDgsIDAuMjczODM5IiwgXAotICAgICAgICAgICIwLjA0NTk4NSwgMC4wODQ4NDcsIDAuMTIyMzg5LCAwLjE0OTE2MywgMC4xOTIwMzcsIDAuMjI5NDc2LCAwLjI4Mjk4NiIsIFwKLSAgICAgICAgICAiMC4wNTI1ODEsIDAuMDkxODEsIDAuMTI5MzQ0LCAwLjE1NjExLCAwLjE5ODk0MiwgMC4yMzY0MzQsIDAuMjg5OTYyIiwgXAotICAgICAgICAgICIwLjA1NzcwNiwgMC4wOTczMzQsIDAuMTM0ODEyLCAwLjE2MTU4OSwgMC4yMDQ0MDksIDAuMjQxODg1LCAwLjI5NTQyNCIsIFwKLSAgICAgICAgICAiMC4wNjQzNTEsIDAuMTA0NTk5LCAwLjE0MjEwOCwgMC4xNjg4NDgsIDAuMjExNjY0LCAwLjI0ODg1MiwgMC4zMDIzNTQiLCBcCi0gICAgICAgICAgIjAuMDY4OTEsIDAuMTA5Nzg4LCAwLjE0NzE5MSwgMC4xNzM5ODEsIDAuMjE2Nzc4LCAwLjI1NDI0OCwgMC4zMDc3NTQiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTk0ODksIDAuMDk2MTI3LCAwLjE3NTA0MSwgMC4yMzEzMzYsIDAuMzIyMTYsIDAuNDAwOTg4LCAwLjUxNDY5MyIsIFwKLSAgICAgICAgICAiMC4wMTk1ODIsIDAuMDk2MTE4LCAwLjE3NDgzNiwgMC4yMzEzMTksIDAuMzIyMTM1LCAwLjQwMTQwMiwgMC41MTQyODIiLCBcCi0gICAgICAgICAgIjAuMDIwODY3LCAwLjA5NjM1NywgMC4xNzUwODQsIDAuMjMxMzUzLCAwLjMyMTY5NiwgMC40MDEzNjcsIDAuNTE0MTk0IiwgXAotICAgICAgICAgICIwLjAyMjM2MiwgMC4wOTY4MjIsIDAuMTc1MjM5LCAwLjIzMTQ3LCAwLjMyMjEwNywgMC40MDEzNiwgMC41MTQ2MjgiLCBcCi0gICAgICAgICAgIjAuMDIzODg2LCAwLjA5NzI3NSwgMC4xNzUxNzMsIDAuMjMxNzA5LCAwLjMyMTkyMiwgMC40MDA4MTgsIDAuNTE0NjM2IiwgXAotICAgICAgICAgICIwLjAyNTY4MiwgMC4wOTgzMDMsIDAuMTc1NTM1LCAwLjIzMTY5NiwgMC4zMjE5NzIsIDAuNDAxMTAyLCAwLjUxNDUyMiIsIFwKLSAgICAgICAgICAiMC4wMjc0MDcsIDAuMDk4OTg3LCAwLjE3NTkyMywgMC4yMzE4NjIsIDAuMzIyMTQ0LCAwLjQwMTE3OCwgMC41MTQyMTUiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjg0NDUsIDAuMTE3MjQsIDAuMTU2NzY3LCAwLjE4Mzk5OSwgMC4yMjcxNTIsIDAuMjY0NzczLCAwLjMxODQ2NCIsIFwKLSAgICAgICAgICAiMC4wNzQyMTQsIDAuMTIzMDQ4LCAwLjE2MjU3MiwgMC4xODk4LCAwLjIzMjk1OSwgMC4yNzA1NzgsIDAuMzI0MjcyIiwgXAotICAgICAgICAgICIwLjA4MTU2LCAwLjEzMDMzLCAwLjE2OTg5NCwgMC4xOTcxMjMsIDAuMjQwMjgsIDAuMjc3OTA1LCAwLjMzMTU5NSIsIFwKLSAgICAgICAgICAiMC4wODg3NDksIDAuMTM3NTE4LCAwLjE3NzA0MywgMC4yMDQyNzgsIDAuMjQ3NDY2LCAwLjI4NTA3MSwgMC4zMzg3NzUiLCBcCi0gICAgICAgICAgIjAuMDk1Mzk2LCAwLjE0NDQ5MywgMC4xODQwOTUsIDAuMjExMzU0LCAwLjI1NDUxNCwgMC4yOTIxMTgsIDAuMzQ1ODA3IiwgXAotICAgICAgICAgICIwLjEwNDcxNCwgMC4xNTQyMjcsIDAuMTk0MDI4LCAwLjIyMTI5NSwgMC4yNjQ0NTYsIDAuMzAyMDgsIDAuMzU1NzM4IiwgXAotICAgICAgICAgICIwLjExMjA1LCAwLjE2MTk1OCwgMC4yMDE4NDksIDAuMjI5MjQzLCAwLjI3MjM4OCwgMC4zMTAwMDcsIDAuMzYzNjgzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDMxNTgyLCAwLjEwNzQ4NywgMC4xODEzOTUsIDAuMjM0OTIxLCAwLjMyMTQ3NywgMC4zOTgwOTMsIDAuNTA3NzczIiwgXAotICAgICAgICAgICIwLjAzMTY3OCwgMC4xMDc0MzUsIDAuMTgxMzQ0LCAwLjIzNDkwNCwgMC4zMjEyODUsIDAuMzk3OTgyLCAwLjUwNzczNCIsIFwKLSAgICAgICAgICAiMC4wMzE1NDIsIDAuMTA3MzE5LCAwLjE4MTMzNiwgMC4yMzQ4OCwgMC4zMjEyNDcsIDAuMzk4MDczLCAwLjUwNzc2NiIsIFwKLSAgICAgICAgICAiMC4wMzE5NjcsIDAuMTA3NzExLCAwLjE4MTUzLCAwLjIzNTAxNCwgMC4zMjE0MDYsIDAuMzk4MTIyLCAwLjUwNzA4NyIsIFwKLSAgICAgICAgICAiMC4wMzI3MDQsIDAuMTA4MTgyLCAwLjE4MTg1NywgMC4yMzUyNzUsIDAuMzIxNTk2LCAwLjM5ODI1OSwgMC41MDczMzUiLCBcCi0gICAgICAgICAgIjAuMDMzOTEzLCAwLjEwOTQzMiwgMC4xODI3MDUsIDAuMjM1OTcyLCAwLjMyMjE1OCwgMC4zOTgxNjUsIDAuNTA3NTE5IiwgXAotICAgICAgICAgICIwLjAzNTAxOSwgMC4xMTAxMjgsIDAuMTgzMjcsIDAuMjM2NDk4LCAwLjMyMjY3NywgMC4zOTkwMDEsIDAuNTA4NDQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjcwNjksIDAuMDY1NjksIDAuMTAzMTY4LCAwLjEyOTk1NSwgMC4xNzI4MDEsIDAuMjEwMjc1LCAwLjI2Mzg0NiIsIFwKLSAgICAgICAgICAiMC4wMzU0MDEsIDAuMDc0MDEyLCAwLjExMTUxOSwgMC4xMzgzMSwgMC4xODExNDQsIDAuMjE4NjYzLCAwLjI3MjA3MyIsIFwKLSAgICAgICAgICAiMC4wNDM4MjcsIDAuMDgyNTY5LCAwLjEyMDA3LCAwLjE0Njg0NCwgMC4xODk3LCAwLjIyNzMyNiwgMC4yODA3NDgiLCBcCi0gICAgICAgICAgIjAuMDQ5ODEsIDAuMDg5MDQ5LCAwLjEyNjU1NywgMC4xNTMzMDcsIDAuMTk2MTc3LCAwLjIzMzYyNiwgMC4yODcxNjEiLCBcCi0gICAgICAgICAgIjAuMDU0NDI2LCAwLjA5NDIxNywgMC4xMzE3MzMsIDAuMTU4MjI5LCAwLjIwMTI4MiwgMC4yMzg3NzEsIDAuMjkyMjYzIiwgXAotICAgICAgICAgICIwLjA2MDMyOSwgMC4xMDA1NTcsIDAuMTM4MDI1LCAwLjE2NDg1MywgMC4yMDc1MiwgMC4yNDUwNzQsIDAuMjk4NTIxIiwgXAotICAgICAgICAgICIwLjA2NDMyNiwgMC4xMDUzMDcsIDAuMTQzMTEyLCAwLjE2OTc1MywgMC4yMTI0MzUsIDAuMjQ5ODU5LCAwLjMwMzM0NSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxOTM2OCwgMC4wOTYxMTEsIDAuMTc0NzY4LCAwLjIzMTIwMSwgMC4zMjIyMTIsIDAuNDAxMDgyLCAwLjUxMzc4MSIsIFwKLSAgICAgICAgICAiMC4wMTk1NDUsIDAuMDk2MDY5LCAwLjE3NDk3NywgMC4yMzExMjcsIDAuMzIxODAxLCAwLjQwMDY2NSwgMC41MTQ1MzIiLCBcCi0gICAgICAgICAgIjAuMDIxMDcxLCAwLjA5NjQxMywgMC4xNzUwNDcsIDAuMjMxNTk0LCAwLjMyMTYyOCwgMC40MDA5NjMsIDAuNTEzNzY3IiwgXAotICAgICAgICAgICIwLjAyMjcyOSwgMC4wOTcwMTksIDAuMTc1MjY4LCAwLjIzMTYxNiwgMC4zMjE2MTMsIDAuNDAxNTEyLCAwLjUxNDU2MSIsIFwKLSAgICAgICAgICAiMC4wMjQyOTQsIDAuMDk3NDgsIDAuMTc1MzMsIDAuMjMxNjk3LCAwLjMyMTc4MiwgMC40MDE1MzcsIDAuNTE0ODMxIiwgXAotICAgICAgICAgICIwLjAyNjE0NCwgMC4wOTg3MTYsIDAuMTc1NzExLCAwLjIzMTcyNSwgMC4zMjE4MzUsIDAuNDAxMzE2LCAwLjUxNDA5MSIsIFwKLSAgICAgICAgICAiMC4wMjc4OTYsIDAuMDk5NjIxLCAwLjE3NjEyMSwgMC4yMzE5MDIsIDAuMzIyMTEsIDAuNDAxMTA4LCAwLjUxNDMzMyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2MDgxMSwgMC4xMDk2NjYsIDAuMTQ5MjA3LCAwLjE3NjQ4MiwgMC4yMTk2NDIsIDAuMjU3MjY3LCAwLjMxMDk2IiwgXAotICAgICAgICAgICIwLjA2NzM5MiwgMC4xMTYyMjIsIDAuMTU1ODIyLCAwLjE4MzAyMiwgMC4yMjYxNzgsIDAuMjYzODQzLCAwLjMxNzUzNiIsIFwKLSAgICAgICAgICAiMC4wNzY2NTYsIDAuMTI1MzkzLCAwLjE2NDg5NSwgMC4xOTIxMywgMC4yMzUyOTEsIDAuMjcyOTE2LCAwLjMyNjYxMSIsIFwKLSAgICAgICAgICAiMC4wODU3ODUsIDAuMTM0NTY0LCAwLjE3NDA5NCwgMC4yMDEzMzIsIDAuMjQ0NDk2LCAwLjI4MjExNywgMC4zMzU4MTYiLCBcCi0gICAgICAgICAgIjAuMDk0MTE3LCAwLjE0MjcwNSwgMC4xODIyNDksIDAuMjA5NTAyLCAwLjI1MjYzLCAwLjI5MDExNCwgMC4zNDM5MzIiLCBcCi0gICAgICAgICAgIjAuMTA1NTA2LCAwLjE1NDM5MSwgMC4xOTQzNzksIDAuMjIxMzgsIDAuMjY0NTM0LCAwLjMwMjE1NSwgMC4zNTU4MTgiLCBcCi0gICAgICAgICAgIjAuMTE0MTM1LCAwLjE2MzM0MywgMC4yMDMzOCwgMC4yMzA3MzcsIDAuMjczOTMyLCAwLjMxMTUzOSwgMC4zNjUyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDMxNjUzLCAwLjEwNzM4NywgMC4xODEzMTksIDAuMjM0ODg5LCAwLjMyMTQ2LCAwLjM5ODA2OCwgMC41MDc3NjciLCBcCi0gICAgICAgICAgIjAuMDMxNTcsIDAuMTA3Mjk2LCAwLjE4MTMxMiwgMC4yMzQ5MDEsIDAuMzIxMzI5LCAwLjM5ODA3LCAwLjUwNzc2MyIsIFwKLSAgICAgICAgICAiMC4wMzE1MjUsIDAuMTA3NDEzLCAwLjE4MTM2LCAwLjIzNDg5NSwgMC4zMjEyOTEsIDAuMzk4MDc5LCAwLjUwNzc2MSIsIFwKLSAgICAgICAgICAiMC4wMzE5MTEsIDAuMTA3NjU2LCAwLjE4MTU2NCwgMC4yMzUwNDMsIDAuMzIxMzk1LCAwLjM5Nzc0NSwgMC41MDc3OSIsIFwKLSAgICAgICAgICAiMC4wMzI0OTMsIDAuMTA4MjEyLCAwLjE4MTgxOSwgMC4yMzUyOTQsIDAuMzIxNzEzLCAwLjM5ODI2MywgMC41MDc4NzIiLCBcCi0gICAgICAgICAgIjAuMDM0MDgxLCAwLjEwOTEwMiwgMC4xODI1NjMsIDAuMjM1ODU4LCAwLjMyMjA5NiwgMC4zOTgxMjgsIDAuNTA3NTk3IiwgXAotICAgICAgICAgICIwLjAzNTQyNiwgMC4xMDk5MjQsIDAuMTgzMTk1LCAwLjIzNjMzMywgMC4zMjI1NjksIDAuMzk4NTY1LCAwLjUwODQyMyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA5ODEsIDAuMDEwMDM1LCAwLjAxMDA4MSwgMC4wMTAxMDEsIDAuMDEwMDg3LCAwLjAxMDEwNiwgMC4wMTAxMTciLCBcCi0gICAgICAgICAgIjAuMDA5NzIzLCAwLjAwOTkzNywgMC4wMDk5OSwgMC4wMTAwMDgsIDAuMDEwMDIzLCAwLjAxMDAzMywgMC4wMTAwNDEiLCBcCi0gICAgICAgICAgIjAuMDA5ODI0LCAwLjAwOTk1OSwgMC4wMTAwMTcsIDAuMDEwMDM4LCAwLjAxMDA1MSwgMC4wMTAwNjcsIDAuMDEwMDc4IiwgXAotICAgICAgICAgICIwLjAxMDA2NCwgMC4wMTAwOTIsIDAuMDEwMTM5LCAwLjAxMDE2MiwgMC4wMTAxOCwgMC4wMTAxOTEsIDAuMDEwMTk4IiwgXAotICAgICAgICAgICIwLjAxMDM0NCwgMC4wMTAyNzksIDAuMDEwMzEzLCAwLjAxMDMzMSwgMC4wMTAzNDcsIDAuMDEwMzU5LCAwLjAxMDM2OSIsIFwKLSAgICAgICAgICAiMC4wMTA5NDIsIDAuMDEwNjcxLCAwLjAxMDY3NSwgMC4wMTA2ODQsIDAuMDEwNjk0LCAwLjAxMDcwMiwgMC4wMTA3MTEiLCBcCi0gICAgICAgICAgIjAuMDExNTcsIDAuMDExMTAzLCAwLjAxMTA2OCwgMC4wMTEwNzEsIDAuMDExMDcyLCAwLjAxMTA2OSwgMC4wMTEwNjciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxNTQ4MywgMC4wMTUzMjUsIDAuMDE1MzUsIDAuMDE1MzYzLCAwLjAxNTM3NCwgMC4wMTUzNzksIDAuMDE1Mzg0IiwgXAotICAgICAgICAgICIwLjAxNTM4OCwgMC4wMTUyMywgMC4wMTUyNjIsIDAuMDE1Mjc0LCAwLjAxNTI4NSwgMC4wMTUyOSwgMC4wMTUyOTUiLCBcCi0gICAgICAgICAgIjAuMDE1MjkyLCAwLjAxNTE2NywgMC4wMTUyMTEsIDAuMDE1MjI3LCAwLjAxNTI0MiwgMC4wMTUyNSwgMC4wMTUyNTgiLCBcCi0gICAgICAgICAgIjAuMDE1Mzg0LCAwLjAxNTE5MywgMC4wMTUyMjgsIDAuMDE1MjQyLCAwLjAxNTI1NiwgMC4wMTUyNjMsIDAuMDE1MjciLCBcCi0gICAgICAgICAgIjAuMDE1NDkyLCAwLjAxNTIzOSwgMC4wMTUyNjEsIDAuMDE1Mjc3LCAwLjAxNTI5LCAwLjAxNTI5NywgMC4wMTUzMDMiLCBcCi0gICAgICAgICAgIjAuMDE1NzAxLCAwLjAxNTM2LCAwLjAxNTM3NCwgMC4wMTUzODksIDAuMDE1Mzk4LCAwLjAxNTQwNCwgMC4wMTU0MSIsIFwKLSAgICAgICAgICAiMC4wMTU5NzMsIDAuMDE1NTIxLCAwLjAxNTUzNCwgMC4wMTU1NDEsIDAuMDE1NTQ5LCAwLjAxNTU1NiwgMC4wMTU1NjEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwOTI2LCAwLjAwOTU2NCwgMC4wMDk2MTcsIDAuMDA5NjM0LCAwLjAwOTY0MywgMC4wMDk2NTYsIDAuMDA5NjYzIiwgXAotICAgICAgICAgICIwLjAwOTE5NywgMC4wMDk0NzQsIDAuMDA5NTQxLCAwLjAwOTU2MywgMC4wMDk1ODIsIDAuMDA5NTk0LCAwLjAwOTYwNSIsIFwKLSAgICAgICAgICAiMC4wMDkzMzEsIDAuMDA5NDg0LCAwLjAwOTU1NiwgMC4wMDk1ODcsIDAuMDA5NjA5LCAwLjAwOTYyLCAwLjAwOTYzMSIsIFwKLSAgICAgICAgICAiMC4wMDk0ODQsIDAuMDA5NTg2LCAwLjAwOTY2MSwgMC4wMDk3MDIsIDAuMDA5NzE0LCAwLjAwOTczMSwgMC4wMDk3MzkiLCBcCi0gICAgICAgICAgIjAuMDA5ODQyLCAwLjAwOTc5MywgMC4wMDk4NDgsIDAuMDA5ODY4LCAwLjAwOTg5MiwgMC4wMDk5MDcsIDAuMDA5OTIxIiwgXAotICAgICAgICAgICIwLjAxMDI3MywgMC4wMTAxNDQsIDAuMDEwMTk0LCAwLjAxMDIwMSwgMC4wMTAyNDcsIDAuMDEwMjczLCAwLjAxMDI3NyIsIFwKLSAgICAgICAgICAiMC4wMTA2MzMsIDAuMDEwNTQ4LCAwLjAxMDU2NywgMC4wMTA1NDIsIDAuMDEwNjA0LCAwLjAxMDYxOSwgMC4wMTA1ODIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxNDYyMiwgMC4wMTQ0NzIsIDAuMDE0NTA2LCAwLjAxNDUyMSwgMC4wMTQ1MzYsIDAuMDE0NTQzLCAwLjAxNDU1IiwgXAotICAgICAgICAgICIwLjAxNDUxLCAwLjAxNDM2NywgMC4wMTQ0MSwgMC4wMTQ0MjcsIDAuMDE0NDQzLCAwLjAxNDQ1MiwgMC4wMTQ0NiIsIFwKLSAgICAgICAgICAiMC4wMTQ0MzcsIDAuMDE0MzE3LCAwLjAxNDM2OCwgMC4wMTQzODcsIDAuMDE0NDA3LCAwLjAxNDQxNywgMC4wMTQ0MjciLCBcCi0gICAgICAgICAgIjAuMDE0NTU4LCAwLjAxNDM0MywgMC4wMTQzODcsIDAuMDE0NDA1LCAwLjAxNDQyMywgMC4wMTQ0MzMsIDAuMDE0NDQyIiwgXAotICAgICAgICAgICIwLjAxNDc1NSwgMC4wMTQ0MTksIDAuMDE0NDQ2LCAwLjAxNDQ2LCAwLjAxNDQ3NSwgMC4wMTQ0ODMsIDAuMDE0NDkxIiwgXAotICAgICAgICAgICIwLjAxNTA0NiwgMC4wMTQ1OTcsIDAuMDE0NjA1LCAwLjAxNDYwNiwgMC4wMTQ2MTYsIDAuMDE0NjI1LCAwLjAxNDYyNyIsIFwKLSAgICAgICAgICAiMC4wMTU0MzMsIDAuMDE0ODMzLCAwLjAxNDgwNywgMC4wMTQ4MDIsIDAuMDE0ODA2LCAwLjAxNDgwOSwgMC4wMTQ4MTEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwODU3OSwgMC4wMDg4ODQsIDAuMDA4OTMyLCAwLjAwODk1LCAwLjAwODk3MiwgMC4wMDg5NjcsIDAuMDA4OTczIiwgXAotICAgICAgICAgICIwLjAwODUyOSwgMC4wMDg4MjQsIDAuMDA4ODg5LCAwLjAwODkwOSwgMC4wMDg5MjgsIDAuMDA4OTM4LCAwLjAwODk0NiIsIFwKLSAgICAgICAgICAiMC4wMDg2MjcsIDAuMDA4ODYyLCAwLjAwODkzNiwgMC4wMDg5NjMsIDAuMDA4OTg4LCAwLjAwOTAwOSwgMC4wMDkwMTEiLCBcCi0gICAgICAgICAgIjAuMDA4Nzk5LCAwLjAwODkzNCwgMC4wMDkwMSwgMC4wMDkwMzcsIDAuMDA5MDY0LCAwLjAwOTA3OCwgMC4wMDkwOTEiLCBcCi0gICAgICAgICAgIjAuMDA5MTQ0LCAwLjAwOTEyMywgMC4wMDkxNzgsIDAuMDA5MjA0LCAwLjAwOTIyOSwgMC4wMDkyNDUsIDAuMDA5MjU4IiwgXAotICAgICAgICAgICIwLjAwOTYyNCwgMC4wMDk0OTYsIDAuMDA5NTQ2LCAwLjAwOTU2OSwgMC4wMDk1OTYsIDAuMDA5NTgyLCAwLjAwOTU5NSIsIFwKLSAgICAgICAgICAiMC4wMTAxOSwgMC4wMDk3NjQsIDAuMDA5OTA5LCAwLjAwOTkyNCwgMC4wMDk4NjUsIDAuMDA5ODgyLCAwLjAwOTg5OCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEzNzIyLCAwLjAxMzYwNCwgMC4wMTM2NDEsIDAuMDEzNjU4LCAwLjAxMzY3NSwgMC4wMTM2ODMsIDAuMDEzNjkyIiwgXAotICAgICAgICAgICIwLjAxMzYwNiwgMC4wMTM0ODEsIDAuMDEzNTM1LCAwLjAxMzU1NSwgMC4wMTM1NzYsIDAuMDEzNTg3LCAwLjAxMzU5NyIsIFwKLSAgICAgICAgICAiMC4wMTM2MjEsIDAuMDEzNDcsIDAuMDEzNTIsIDAuMDEzNTQsIDAuMDEzNTYxLCAwLjAxMzU3MywgMC4wMTM1ODQiLCBcCi0gICAgICAgICAgIjAuMDEzODIzLCAwLjAxMzUyNywgMC4wMTM1NjcsIDAuMDEzNTg3LCAwLjAxMzYwNywgMC4wMTM2MTksIDAuMDEzNjMiLCBcCi0gICAgICAgICAgIjAuMDE0MDQ4LCAwLjAxMzYzNSwgMC4wMTM2NjIsIDAuMDEzNjc3LCAwLjAxMzY5MywgMC4wMTM3MDMsIDAuMDEzNzEzIiwgXAotICAgICAgICAgICIwLjAxNDM3MiwgMC4wMTM5NTYsIDAuMDEzOTM1LCAwLjAxMzkzMiwgMC4wMTM5MzIsIDAuMDEzOTI5LCAwLjAxMzkzNiIsIFwKLSAgICAgICAgICAiMC4wMTQ2NzMsIDAuMDE0MTM4LCAwLjAxNDEyMSwgMC4wMTQxMTgsIDAuMDE0MTI4LCAwLjAxNDEzLCAwLjAxNDE0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDc4MTEsIDAuMDA4MTA2LCAwLjAwODE0NywgMC4wMDgxNywgMC4wMDgxNywgMC4wMDgxNSwgMC4wMDgxODMiLCBcCi0gICAgICAgICAgIjAuMDA3Nzc1LCAwLjAwODA2NCwgMC4wMDgxMjEsIDAuMDA4MTM3LCAwLjAwODE1NSwgMC4wMDgxNjMsIDAuMDA4MTciLCBcCi0gICAgICAgICAgIjAuMDA3ODU3LCAwLjAwODA4NywgMC4wMDgxNTIsIDAuMDA4MTksIDAuMDA4MTk5LCAwLjAwODIxLCAwLjAwODIyIiwgXAotICAgICAgICAgICIwLjAwODE1OCwgMC4wMDgyMSwgMC4wMDgyOTQsIDAuMDA4MzAzLCAwLjAwODMzOSwgMC4wMDgzNTQsIDAuMDA4MzU3IiwgXAotICAgICAgICAgICIwLjAwODQ4MSwgMC4wMDgzNzgsIDAuMDA4NDY1LCAwLjAwODQ4NCwgMC4wMDg0ODUsIDAuMDA4NTIzLCAwLjAwODUyOSIsIFwKLSAgICAgICAgICAiMC4wMDg3MjQsIDAuMDA4NzgxLCAwLjAwODgwOCwgMC4wMDg3OTcsIDAuMDA4ODQ4LCAwLjAwODgzOSwgMC4wMDg4NjYiLCBcCi0gICAgICAgICAgIjAuMDA5MTgxLCAwLjAwOTAzNSwgMC4wMDkxMDksIDAuMDA5MTI2LCAwLjAwOTE0OSwgMC4wMDkxNjcsIDAuMDA5MTgxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTI3NywgMC4wMTI2NjksIDAuMDEyNzIxLCAwLjAxMjc0MiwgMC4wMTI3NjUsIDAuMDEyNzc3LCAwLjAxMjc4OSIsIFwKLSAgICAgICAgICAiMC4wMTI2NTcsIDAuMDEyNTc1LCAwLjAxMjYzOSwgMC4wMTI2NjMsIDAuMDEyNjg4LCAwLjAxMjcwMywgMC4wMTI3MTYiLCBcCi0gICAgICAgICAgIjAuMDEyODU1LCAwLjAxMjY3LCAwLjAxMjcyLCAwLjAxMjc0MywgMC4wMTI3NjcsIDAuMDEyNzgsIDAuMDEyNzkzIiwgXAotICAgICAgICAgICIwLjAxMzI1MiwgMC4wMTI4MzUsIDAuMDEyODY4LCAwLjAxMjg4NywgMC4wMTI5MDgsIDAuMDEyOTIsIDAuMDEyOTMzIiwgXAotICAgICAgICAgICIwLjAxMzQyOSwgMC4wMTMxMDMsIDAuMDEzMDkzLCAwLjAxMzA5OSwgMC4wMTMxMDksIDAuMDEzMTE1LCAwLjAxMzEyNSIsIFwKLSAgICAgICAgICAiMC4wMTM5MzMsIDAuMDEzNDA2LCAwLjAxMzQyOCwgMC4wMTM0MjEsIDAuMDEzNDQsIDAuMDEzNDQ2LCAwLjAxMzQ2MiIsIFwKLSAgICAgICAgICAiMC4wMTQ0MjEsIDAuMDEzNzY0LCAwLjAxMzc1NiwgMC4wMTM3NTksIDAuMDEzNzY3LCAwLjAxMzc3MiwgMC4wMTM3OCIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBPUjRYOCAqCi0gKiAtLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoT1I0WDgpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMS41NjQwNDsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAyMDU4ODU7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAyMDQ5MjU7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAyMDU4ODU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwODg4LCAwLjAwMDk0NCwgMC4wMDA5NjksIDAuMDAwOTgzLCAwLjAwMDk5MywgMC4wMDA5OTksIDAuMDAwOTk5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyNzExLCAwLjAwMjcxMiwgMC4wMDI3MTMsIDAuMDAyNzEzLCAwLjAwMjcxMywgMC4wMDI3MTMsIDAuMDAyNzEzIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE5NzM0MzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE5NjUyNzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE5NzM0MzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA4NTUsIDAuMDAwOTQxLCAwLjAwMDk3MiwgMC4wMDA5NzksIDAuMDAwOTgyLCAwLjAwMTAwMywgMC4wMDA5ODciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDE5MSwgMC4wMDE5MTEsIDAuMDAxOTExLCAwLjAwMTkxMSwgMC4wMDE5MTEsIDAuMDAxOTExLCAwLjAwMTkxMSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQykgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxODM0MTM7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxODI2ODY7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxODM0MTM7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwODU5LCAwLjAwMDk3MywgMC4wMDEsIDAuMDAxMDExLCAwLjAwMTAxMSwgMC4wMDEwMTYsIDAuMDAxMDE1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxMDc4LCAwLjAwMTA3OCwgMC4wMDEwNzgsIDAuMDAxMDc4LCAwLjAwMTA3OSwgMC4wMDEwNzksIDAuMDAxMDc5Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihEKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE2OTcxNjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE2OTcxNjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE2OTY3NDsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyNTMsIDAuMDAwMjUzLCAwLjAwMDI1MiwgMC4wMDAyNTMsIDAuMDAwMjUzLCAwLjAwMDI1MywgMC4wMDAyNTMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA4MiwgMC4wMDA4MjEsIDAuMDAwODIxLCAwLjAwMDgyMSwgMC4wMDA4MjEsIDAuMDAwODIsIDAuMDAwODIiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMi42NjIxMzsKLSAgICBmdW5jdGlvbiA6ICIoKChBK0IpK0MpK0QpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzMjQ2NSwgMC4wNjI2MjcsIDAuMDkwMjksIDAuMTA5OTU5LCAwLjE0MTM5NiwgMC4xNjg4NzQsIDAuMjA4MTIxIiwgXAotICAgICAgICAgICIwLjA0MDkyNCwgMC4wNzEwMTMsIDAuMDk4Njc1LCAwLjExODM0OSwgMC4xNDk3ODgsIDAuMTc3MjY3LCAwLjIxNjUxOSIsIFwKLSAgICAgICAgICAiMC4wNTEyNSwgMC4wODEyMzQsIDAuMTA4ODcxLCAwLjEyODU0NywgMC4xNTk5ODIsIDAuMTg3NDU5LCAwLjIyNjcxNSIsIFwKLSAgICAgICAgICAiMC4wNTkzMTMsIDAuMDg5NzgyLCAwLjExNzM4LCAwLjEzNzA0OCwgMC4xNjg0NzcsIDAuMTk1OTUyLCAwLjIzNTE5OSIsIFwKLSAgICAgICAgICAiMC4wNjU4NjEsIDAuMDk2NzczLCAwLjEyNDU0LCAwLjE0NDE4OCwgMC4xNzU2MDgsIDAuMjAzMDgxLCAwLjI0MjM0OSIsIFwKLSAgICAgICAgICAiMC4wNzQwNzEsIDAuMTA1OTMsIDAuMTMzNTA2LCAwLjE1MzEzMiwgMC4xODQ1MTUsIDAuMjExOTczLCAwLjI1MTIwNCIsIFwKLSAgICAgICAgICAiMC4wODAyODcsIDAuMTEyNjg0LCAwLjE0MDI4NCwgMC4xNTk4NjgsIDAuMTkxMjgsIDAuMjE4NzE2LCAwLjI1NzkxNSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxODgwOSwgMC4wNzM2MTYsIDAuMTMwMzczLCAwLjE3MTU1MSwgMC4yMzc1NCwgMC4yOTUzMTksIDAuMzc3NjA0IiwgXAotICAgICAgICAgICIwLjAxODY4LCAwLjA3MzU0NywgMC4xMzA0MDMsIDAuMTcxNTUyLCAwLjIzNzUxOSwgMC4yOTUzMywgMC4zNzc1NTgiLCBcCi0gICAgICAgICAgIjAuMDE5NDI3LCAwLjA3Mzc3NCwgMC4xMzA1NDIsIDAuMTcxNTgxLCAwLjIzNzUyMSwgMC4yOTUzMzgsIDAuMzc4MDg4IiwgXAotICAgICAgICAgICIwLjAyMTAyNSwgMC4wNzQzNjcsIDAuMTMwNzAzLCAwLjE3MTUyMiwgMC4yMzc1NiwgMC4yOTUzNTksIDAuMzc4MDY2IiwgXAotICAgICAgICAgICIwLjAyMjQ3MSwgMC4wNzUwOTIsIDAuMTMxMDkzLCAwLjE3MTc4NywgMC4yMzc2NjksIDAuMjk1NDE2LCAwLjM3ODEzNyIsIFwKLSAgICAgICAgICAiMC4wMjQ5NzcsIDAuMDc2NTk4LCAwLjEzMTc0NiwgMC4xNzIyNjQsIDAuMjM3NzU0LCAwLjI5NTMwOSwgMC4zNzc2MDkiLCBcCi0gICAgICAgICAgIjAuMDI2MTE1LCAwLjA3NzgxMywgMC4xMzI2OTEsIDAuMTcyNjYxLCAwLjIzNzk1LCAwLjI5NTU5OSwgMC4zNzc5NjgiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODMwMiwgMC4xMjQzMTYsIDAuMTU2MDU3LCAwLjE3NzI0OSwgMC4yMTAzMzYsIDAuMjM4ODYxLCAwLjI3OTM1NSIsIFwKLSAgICAgICAgICAiMC4wODc5ODIsIDAuMTI5Mjk5LCAwLjE2MTAwMywgMC4xODIyMzcsIDAuMjE1Mjg4LCAwLjI0Mzg1NSwgMC4yODQzNTYiLCBcCi0gICAgICAgICAgIjAuMDkyNTI5LCAwLjEzMzg1OSwgMC4xNjU2MzIsIDAuMTg2ODY2LCAwLjIxOTkwMSwgMC4yNDg0NDYsIDAuMjg4OTU0IiwgXAotICAgICAgICAgICIwLjA5NjQ4MywgMC4xMzc3NDIsIDAuMTY5NDc0LCAwLjE5MDY5NSwgMC4yMjM3NDIsIDAuMjUyMjU3LCAwLjI5Mjc3OCIsIFwKLSAgICAgICAgICAiMC4wOTk5NzMsIDAuMTQxMjE4LCAwLjE3MzA2MSwgMC4xOTQyOTYsIDAuMjI3MzMzLCAwLjI1NTg1MiwgMC4yOTYzODIiLCBcCi0gICAgICAgICAgIjAuMTA0NjEsIDAuMTQ2Mzc1LCAwLjE3ODIxNSwgMC4xOTk1NDMsIDAuMjMyNjE5LCAwLjI2MTE2MiwgMC4zMDE2OTMiLCBcCi0gICAgICAgICAgIjAuMTA4MjcxLCAwLjE1MDQ1MiwgMC4xODI0OTQsIDAuMjAzODE2LCAwLjIzNjk0MywgMC4yNjU0ODcsIDAuMzA2MDEzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDMxNzksIDAuMDkxNDk0LCAwLjE0NzAyMywgMC4xODcwODksIDAuMjUxNzUzLCAwLjMwODg3NywgMC4zOTA5OTUiLCBcCi0gICAgICAgICAgIjAuMDMxNzY4LCAwLjA5MTQ4OSwgMC4xNDcwNzYsIDAuMTg3MDg5LCAwLjI1MTc0MiwgMC4zMDg4NDEsIDAuMzkxMTEzIiwgXAotICAgICAgICAgICIwLjAzMTgwMSwgMC4wOTEzMzMsIDAuMTQ2OTgyLCAwLjE4NzAwNCwgMC4yNTE2ODMsIDAuMzA4ODA3LCAwLjM5MTAzNyIsIFwKLSAgICAgICAgICAiMC4wMzE5MzMsIDAuMDkxNDM5LCAwLjE0Njk5NCwgMC4xODcwOCwgMC4yNTE2NTIsIDAuMzA4ODczLCAwLjM5MDg3NCIsIFwKLSAgICAgICAgICAiMC4wMzIzMjYsIDAuMDkxOTI0LCAwLjE0NzI5MSwgMC4xODcyNzEsIDAuMjUxODc4LCAwLjMwODk1MiwgMC4zOTEwMiIsIFwKLSAgICAgICAgICAiMC4wMzMwOTEsIDAuMDkyNTA0LCAwLjE0Nzg5NywgMC4xODc3MzQsIDAuMjUyMjcyLCAwLjMwOTI2NywgMC4zOTEzNDMiLCBcCi0gICAgICAgICAgIjAuMDMzNzg0LCAwLjA5MzI4MiwgMC4xNDg1MzMsIDAuMTg4MzMzLCAwLjI1MjYxLCAwLjMwOTY0MSwgMC4zOTE3NzIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzE1NjYsIDAuMDYxMzg2LCAwLjA4ODk4NCwgMC4xMDg2MzgsIDAuMTQwMDQzLCAwLjE2NzQ3NywgMC4yMDY3NTYiLCBcCi0gICAgICAgICAgIjAuMDM5OTIzLCAwLjA2OTcxMSwgMC4wOTczMDMsIDAuMTE2OTU2LCAwLjE0ODM3LCAwLjE3NTgzOSwgMC4yMTUxMDkiLCBcCi0gICAgICAgICAgIjAuMDQ5OTE4LCAwLjA3OTY0LCAwLjEwNzI3NSwgMC4xMjY5MjcsIDAuMTU4MzQsIDAuMTg1ODE5LCAwLjIyNTA1MyIsIFwKLSAgICAgICAgICAiMC4wNTc1NzgsIDAuMDg3ODY4LCAwLjExNTQ4NSwgMC4xMzUxMjUsIDAuMTY2NTQ3LCAwLjE5NDAyLCAwLjIzMzI1MyIsIFwKLSAgICAgICAgICAiMC4wNjM3MjUsIDAuMDk0NTksIDAuMTIyMTY3LCAwLjE0MTgwOSwgMC4xNzMxOSwgMC4yMDA2NTQsIDAuMjM5ODc0IiwgXAotICAgICAgICAgICIwLjA3MTY3MSwgMC4xMDM0ODYsIDAuMTMwOTY5LCAwLjE1MDU3MywgMC4xODE5NDMsIDAuMjA5NCwgMC4yNDg2MDkiLCBcCi0gICAgICAgICAgIjAuMDc3MjczLCAwLjEwOTczMywgMC4xMzczMDIsIDAuMTU2OTcyLCAwLjE4ODMxNiwgMC4yMTU3NDksIDAuMjU0OTQ0Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE4MjgyLCAwLjA3MzE2NiwgMC4xMzAwNjIsIDAuMTcxMjg4LCAwLjIzNzEsIDAuMjk0NzAyLCAwLjM3NzkyNiIsIFwKLSAgICAgICAgICAiMC4wMTgxNzIsIDAuMDczMTQ2LCAwLjEzMDA0NiwgMC4xNzEyOTUsIDAuMjM3Mjk4LCAwLjI5NDk0OSwgMC4zNzc5ODMiLCBcCi0gICAgICAgICAgIjAuMDE5MTM5LCAwLjA3MzUwNywgMC4xMzAyNTcsIDAuMTcxMzQ1LCAwLjIzNzMwMywgMC4yOTUxNjgsIDAuMzc3NTAxIiwgXAotICAgICAgICAgICIwLjAyMDc5NiwgMC4wNzQxMDQsIDAuMTMwNDY2LCAwLjE3MTQ4NywgMC4yMzc0LCAwLjI5NTIxNiwgMC4zNzc5NDMiLCBcCi0gICAgICAgICAgIjAuMDIyMjc3LCAwLjA3NDgxNywgMC4xMzA4NzcsIDAuMTcxNzI1LCAwLjIzNzM2NywgMC4yOTUyMjksIDAuMzc3OTMyIiwgXAotICAgICAgICAgICIwLjAyNDQyMSwgMC4wNzYzODQsIDAuMTMxNTA0LCAwLjE3MjAzNiwgMC4yMzc1NDYsIDAuMjk1MTYsIDAuMzc3Nzk2IiwgXAotICAgICAgICAgICIwLjAyNTg5NCwgMC4wNzc1MDksIDAuMTMyMzY3LCAwLjE3MjUzMSwgMC4yMzc4MDMsIDAuMjk1MTc3LCAwLjM3Nzc5MSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4MDk4NywgMC4xMjIyNDIsIDAuMTU0MDA4LCAwLjE3NTI3OSwgMC4yMDgzMjYsIDAuMjM2ODU0LCAwLjI3NzM1NyIsIFwKLSAgICAgICAgICAiMC4wODYzODIsIDAuMTI3Njg1LCAwLjE1OTQ0NywgMC4xODA2NzMsIDAuMjEzNzcyLCAwLjI0MjI2OSwgMC4yODI4MTkiLCBcCi0gICAgICAgICAgIjAuMDkyMDYzLCAwLjEzMzQzNSwgMC4xNjUxMywgMC4xODY0MzQsIDAuMjE5NDIxLCAwLjI0Nzk3MSwgMC4yODg0ODQiLCBcCi0gICAgICAgICAgIjAuMDk3NTg2LCAwLjEzODkwNCwgMC4xNzA2MDcsIDAuMTkxODE1LCAwLjIyNDg4LCAwLjI1MzQsIDAuMjkzOTI1IiwgXAotICAgICAgICAgICIwLjEwMjY1OCwgMC4xNDQwNzUsIDAuMTc1OSwgMC4xOTcxMDEsIDAuMjMwMTMsIDAuMjU4Njc3LCAwLjI5OTIwNyIsIFwKLSAgICAgICAgICAiMC4xMDk5ODgsIDAuMTUxODM0LCAwLjE4MzcyMiwgMC4yMDUwMzIsIDAuMjM4MTYxLCAwLjI2NjY4MywgMC4zMDcyMDciLCBcCi0gICAgICAgICAgIjAuMTE1Nzg5LCAwLjE1ODA4NywgMC4xOTAxODYsIDAuMjExNTI4LCAwLjI0NDY0MiwgMC4yNzMxOTYsIDAuMzEzNzE5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDMxNzYxLCAwLjA5MTQ4MiwgMC4xNDcwNSwgMC4xODcwOSwgMC4yNTE3MzIsIDAuMzA4ODYxLCAwLjM5MDgxNiIsIFwKLSAgICAgICAgICAiMC4wMzE4MDQsIDAuMDkxNDY2LCAwLjE0NzAxMiwgMC4xODcwNTQsIDAuMjUxNzExLCAwLjMwODgyNiwgMC4zOTA4MTIiLCBcCi0gICAgICAgICAgIjAuMDMxNzkxLCAwLjA5MTI2OCwgMC4xNDY5ODksIDAuMTg3MDA0LCAwLjI1MTY5OSwgMC4zMDg4MTIsIDAuMzkwODgyIiwgXAotICAgICAgICAgICIwLjAzMTg5MSwgMC4wOTE0MTIsIDAuMTQ3MDI0LCAwLjE4NzA2NiwgMC4yNTE1OTEsIDAuMzA4ODQ2LCAwLjM5MDg2MyIsIFwKLSAgICAgICAgICAiMC4wMzI1NzIsIDAuMDkxODI2LCAwLjE0NzM2NywgMC4xODczMzcsIDAuMjUxOTIyLCAwLjMwODk4MywgMC4zOTEwNDIiLCBcCi0gICAgICAgICAgIjAuMDMzNjczLCAwLjA5Mjg3NCwgMC4xNDgxMjEsIDAuMTg3OTI4LCAwLjI1MjM3NiwgMC4zMDkzNSwgMC4zOTEzODgiLCBcCi0gICAgICAgICAgIjAuMDM0MjUyLCAwLjA5Mzc3OSwgMC4xNDg5NzIsIDAuMTg4NjUzLCAwLjI1Mjg5NSwgMC4zMDk4NTQsIDAuMzkxNzkyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDI5OTYzLCAwLjA1OTU4MiwgMC4wODcxMjQsIDAuMTA2NzU3LCAwLjEzODE0NSwgMC4xNjU2MTMsIDAuMjA0ODQzIiwgXAotICAgICAgICAgICIwLjAzODQzNSwgMC4wNjc5ODIsIDAuMDk1NTM1LCAwLjExNTE3MSwgMC4xNDY1NjQsIDAuMTc0MDMxLCAwLjIxMzI2OCIsIFwKLSAgICAgICAgICAiMC4wNDc5NywgMC4wNzc2MzEsIDAuMTA1MTY4LCAwLjEyNDgwNCwgMC4xNTYxOTEsIDAuMTgzNjQzLCAwLjIyMjg4MiIsIFwKLSAgICAgICAgICAiMC4wNTUxOTYsIDAuMDg1MzE1LCAwLjExMjg0MywgMC4xMzI0NjUsIDAuMTYzODcsIDAuMTkxMzEsIDAuMjMwNTAzIiwgXAotICAgICAgICAgICIwLjA2MDkyNSwgMC4wOTE3NzgsIDAuMTE5MzU1LCAwLjEzODk4LCAwLjE3MDM2OSwgMC4xOTc4MDIsIDAuMjM3MDA0IiwgXAotICAgICAgICAgICIwLjA2ODE4MiwgMC4wOTk4ODMsIDAuMTI3MzksIDAuMTQ3MDMsIDAuMTc4NDkyLCAwLjIwNTc5LCAwLjI0NTE0NyIsIFwKLSAgICAgICAgICAiMC4wNzMyMzEsIDAuMTA2MDgsIDAuMTMzNTYyLCAwLjE1MzEwMywgMC4xODQ0ODEsIDAuMjExODgyLCAwLjI1MDY5MiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxNzc5OCwgMC4wNzI4ODEsIDAuMTI5ODI3LCAwLjE3MTEwOCwgMC4yMzcxNjUsIDAuMjk0NTM0LCAwLjM3Nzg3OCIsIFwKLSAgICAgICAgICAiMC4wMTc4NDQsIDAuMDcyODkyLCAwLjEyOTkzLCAwLjE3MTExOCwgMC4yMzcxNywgMC4yOTQ3NTEsIDAuMzc3ODU5IiwgXAotICAgICAgICAgICIwLjAxOTA5NSwgMC4wNzMyNjEsIDAuMTI5OTksIDAuMTcxMjAyLCAwLjIzNzE5MiwgMC4yOTQ3NjMsIDAuMzc3MzYyIiwgXAotICAgICAgICAgICIwLjAyMDcxOSwgMC4wNzM5NjksIDAuMTMwMzM5LCAwLjE3MTM3NSwgMC4yMzY4ODYsIDAuMjk1MDk2LCAwLjM3Nzc4MiIsIFwKLSAgICAgICAgICAiMC4wMjIyMTcsIDAuMDc0NzUsIDAuMTMwNzg0LCAwLjE3MTYwNiwgMC4yMzczNDUsIDAuMjk1MTIxLCAwLjM3NzU0NSIsIFwKLSAgICAgICAgICAiMC4wMjQzMTEsIDAuMDc2NDA0LCAwLjEzMTQ3LCAwLjE3MTkxNCwgMC4yMzczMDMsIDAuMjk1MDUsIDAuMzc3NTc1IiwgXAotICAgICAgICAgICIwLjAyNTk2MSwgMC4wNzc1NDgsIDAuMTMyMjkzLCAwLjE3MjQzMSwgMC4yMzc1NzUsIDAuMjk1MjY1LCAwLjM3NzcyIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc2NDgxLCAwLjExNzcyMywgMC4xNDk1LCAwLjE3MDcyMSwgMC4yMDM3ODMsIDAuMjMyMzEsIDAuMjcyODA5IiwgXAotICAgICAgICAgICIwLjA4MjI5NCwgMC4xMjM2MDcsIDAuMTU1MzMzLCAwLjE3NjU2NiwgMC4yMDk2MjQsIDAuMjM4MTY2LCAwLjI3ODY2NCIsIFwKLSAgICAgICAgICAiMC4wODk2MzUsIDAuMTMwOTM1LCAwLjE2MjY4MiwgMC4xODM5NzEsIDAuMjE3MDAzLCAwLjI0NTU0NywgMC4yODYwNTMiLCBcCi0gICAgICAgICAgIjAuMDk3MDQyLCAwLjEzODI4OCwgMC4xNzAwMjEsIDAuMTkxMjM0LCAwLjIyNDI4NywgMC4yNTI4MDksIDAuMjkzMzMyIiwgXAotICAgICAgICAgICIwLjEwNDM0MywgMC4xNDU1ODIsIDAuMTc3Mjk0LCAwLjE5ODUyMiwgMC4yMzE1OTksIDAuMjYwMDk1LCAwLjMwMDYxOSIsIFwKLSAgICAgICAgICAiMC4xMTQ0MTksIDAuMTU2MjYsIDAuMTg4MTM2LCAwLjIwOTQxNSwgMC4yNDI0NzMsIDAuMjcxMDMsIDAuMzExNTM3IiwgXAotICAgICAgICAgICIwLjEyMjM2MywgMC4xNjQ0NzYsIDAuMTk2NTQ3LCAwLjIxNzg3NSwgMC4yNTEwNzEsIDAuMjc5NjA0LCAwLjMyMDExNyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzMTc5NywgMC4wOTE0NjUsIDAuMTQ3MDIsIDAuMTg3MDA1LCAwLjI1MTc1LCAwLjMwODg3MywgMC4zOTA5OTYiLCBcCi0gICAgICAgICAgIjAuMDMxNzU1LCAwLjA5MTUwOCwgMC4xNDcwNDUsIDAuMTg3MDg4LCAwLjI1MTY5NiwgMC4zMDg4NDcsIDAuMzkxMTAyIiwgXAotICAgICAgICAgICIwLjAzMTgwNiwgMC4wOTEzMTUsIDAuMTQ2OTgsIDAuMTg2OTg1LCAwLjI1MTY3MiwgMC4zMDg4MDEsIDAuMzkxMDI0IiwgXAotICAgICAgICAgICIwLjAzMjA4LCAwLjA5MTQ5OSwgMC4xNDcwODEsIDAuMTg3MTI2LCAwLjI1MTc1MywgMC4zMDg4NzksIDAuMzkwODU4IiwgXAotICAgICAgICAgICIwLjAzMjc0NSwgMC4wOTE5MzEsIDAuMTQ3NDMyLCAwLjE4NzMxNiwgMC4yNTE4NTIsIDAuMzA5MDI0LCAwLjM5MDk3OCIsIFwKLSAgICAgICAgICAiMC4wMzM3MDksIDAuMDkzMDUxLCAwLjE0ODE5LCAwLjE4ODAzNCwgMC4yNTIzOTEsIDAuMzA5NDE5LCAwLjM5MTM5MyIsIFwKLSAgICAgICAgICAiMC4wMzQ3NDksIDAuMDk0MTgyLCAwLjE0OTIzMSwgMC4xODg4NTYsIDAuMjUzMTExLCAwLjMwOTk4LCAwLjM5MTcwNyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJEIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyODQ1NiwgMC4wNTgwNjEsIDAuMDg1NiwgMC4xMDUyMjUsIDAuMTM2NTk2LCAwLjE2NDA2MSwgMC4yMDMyOCIsIFwKLSAgICAgICAgICAiMC4wMzY4OTgsIDAuMDY2NDQ5LCAwLjA5Mzk3OCwgMC4xMTM2MDEsIDAuMTQ0OTc4LCAwLjE3MjQ5OSwgMC4yMTE2NiIsIFwKLSAgICAgICAgICAiMC4wNDYwNzIsIDAuMDc1ODY3LCAwLjEwMzQwOCwgMC4xMjMwMjYsIDAuMTU0Mzg5LCAwLjE4MTg0OSwgMC4yMjEwNzIiLCBcCi0gICAgICAgICAgIjAuMDUyNTU4LCAwLjA4Mjk4NywgMC4xMTA1MTksIDAuMTMwMTQsIDAuMTYxNSwgMC4xODg5NSwgMC4yMjgxODQiLCBcCi0gICAgICAgICAgIjAuMDU3ODY0LCAwLjA4ODkyMywgMC4xMTY1NjQsIDAuMTM2MTcxLCAwLjE2NzU0OSwgMC4xOTQ5OSwgMC4yMzQxOTYiLCBcCi0gICAgICAgICAgIjAuMDY0NjA4LCAwLjA5NjY2LCAwLjEyNDIwMSwgMC4xNDM5MzUsIDAuMTc1MjkxLCAwLjIwMjcyNCwgMC4yNDE5MDYiLCBcCi0gICAgICAgICAgIjAuMDY5MjYxLCAwLjEwMjE5OCwgMC4xMjk1MDQsIDAuMTQ5MTIyLCAwLjE4MDU2MiwgMC4yMDc5MzEsIDAuMjQ2OTIzIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE3NjczLCAwLjA3MjgxMywgMC4xMjk4OTcsIDAuMTcwODA1LCAwLjIzNzA5OSwgMC4yOTQ3NzUsIDAuMzc3NjYzIiwgXAotICAgICAgICAgICIwLjAxNzg2NywgMC4wNzI4OTUsIDAuMTI5OTE1LCAwLjE3MTA3NywgMC4yMzcxMTgsIDAuMjk0NjMxLCAwLjM3NzkzOCIsIFwKLSAgICAgICAgICAiMC4wMTkyMTEsIDAuMDczMzI2LCAwLjEzMDA5MywgMC4xNzExOTcsIDAuMjM3MTI4LCAwLjI5NDc0NywgMC4zNzc0NjQiLCBcCi0gICAgICAgICAgIjAuMDIxMTM4LCAwLjA3NDI1NywgMC4xMzA0MzMsIDAuMTcxMzU3LCAwLjIzNzIyMiwgMC4yOTUwOCwgMC4zNzc5MzMiLCBcCi0gICAgICAgICAgIjAuMDIyNzk3LCAwLjA3NTE4MywgMC4xMzA5OTcsIDAuMTcxNTgsIDAuMjM3MzU0LCAwLjI5NTE5NywgMC4zNzc1MDQiLCBcCi0gICAgICAgICAgIjAuMDI1MDA5LCAwLjA3Njg0OCwgMC4xMzE3NDYsIDAuMTcyMTk2LCAwLjIzNzU4NCwgMC4yOTUwODgsIDAuMzc3NjM0IiwgXAotICAgICAgICAgICIwLjAyNjQ4OSwgMC4wNzc5OTQsIDAuMTMyODgsIDAuMTcyNjYyLCAwLjIzNzgxNywgMC4yOTUzNzcsIDAuMzc3NzIiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjg4NzIsIDAuMTEwMzExLCAwLjE0MjAwMSwgMC4xNjMyMjYsIDAuMTk2MzA2LCAwLjIyNDgyOCwgMC4yNjUzNSIsIFwKLSAgICAgICAgICAiMC4wNzU0MzcsIDAuMTE2NzMyLCAwLjE0ODU0NiwgMC4xNjk3ODIsIDAuMjAyODQyLCAwLjIzMTQwMywgMC4yNzE5MTgiLCBcCi0gICAgICAgICAgIjAuMDg0NTcxLCAwLjEyNTg3NiwgMC4xNTc2NzgsIDAuMTc4OTM4LCAwLjIxMTk5NiwgMC4yNDA1MTIsIDAuMjgxMDQ1IiwgXAotICAgICAgICAgICIwLjA5Mzk5OSwgMC4xMzUxOTUsIDAuMTY2OTA3LCAwLjE4ODEsIDAuMjIxMTQyLCAwLjI0OTY3NSwgMC4yOTAyMTIiLCBcCi0gICAgICAgICAgIjAuMTAyOTQzLCAwLjE0NDE3NiwgMC4xNzU5MjgsIDAuMTk3MTQzLCAwLjIzMDIwMywgMC4yNTg3MTgsIDAuMjk5MjQxIiwgXAotICAgICAgICAgICIwLjExNTY1NywgMC4xNTY4MzYsIDAuMTg4NjQyLCAwLjIwOTkzMiwgMC4yNDMwMDIsIDAuMjcxNTEzLCAwLjMxMjAyMiIsIFwKLSAgICAgICAgICAiMC4xMjQ4NjksIDAuMTY2NTE3LCAwLjE5ODMyNywgMC4yMTk3NjcsIDAuMjUyOTM2LCAwLjI4MTQ1NiwgMC4zMjE5NzEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzE5MTQsIDAuMDkxNDM5LCAwLjE0Njk2LCAwLjE4Njk4NiwgMC4yNTE3MDYsIDAuMzA4ODYxLCAwLjM5MDc5IiwgXAotICAgICAgICAgICIwLjAzMTc0MSwgMC4wOTEyOTYsIDAuMTQ2OSwgMC4xODcwMiwgMC4yNTE2OSwgMC4zMDg4MTYsIDAuMzkxMDYxIiwgXAotICAgICAgICAgICIwLjAzMTY3MiwgMC4wOTEyNjMsIDAuMTQ2ODc1LCAwLjE4Njk3NSwgMC4yNTE2NjYsIDAuMzA4Nzg5LCAwLjM5MDczNSIsIFwKLSAgICAgICAgICAiMC4wMzE3MzUsIDAuMDkxNTYzLCAwLjE0NzEyLCAwLjE4NzE2NSwgMC4yNTE3MjQsIDAuMzA4ODk0LCAwLjM5MTAzMiIsIFwKLSAgICAgICAgICAiMC4wMzIzNjcsIDAuMDkyMDg2LCAwLjE0NzU3MywgMC4xODc0NjEsIDAuMjUxOTIsIDAuMzA5MDkxLCAwLjM5MTI0MiIsIFwKLSAgICAgICAgICAiMC4wMzQxNTYsIDAuMDkzMjA5LCAwLjE0ODMyMSwgMC4xODgwODUsIDAuMjUyNDk0LCAwLjMwOTQ2NCwgMC4zOTE0MjQiLCBcCi0gICAgICAgICAgIjAuMDM1NTc3LCAwLjA5Mzc5OSwgMC4xNDkzMTksIDAuMTg4OTk4LCAwLjI1MzA2NSwgMC4zMTAwNCwgMC4zOTIwNTYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMjQ0NSwgMC4wMTI2OTEsIDAuMDEyNzU5LCAwLjAxMjc4MSwgMC4wMTI4MDEsIDAuMDEyODEyLCAwLjAxMjgyNyIsIFwKLSAgICAgICAgICAiMC4wMTIzNDIsIDAuMDEyNTcxLCAwLjAxMjY1NCwgMC4wMTI2ODQsIDAuMDEyNzEyLCAwLjAxMjcyNSwgMC4wMTI3NDEiLCBcCi0gICAgICAgICAgIjAuMDEyNTIyLCAwLjAxMjYxLCAwLjAxMjY4NSwgMC4wMTI3MTUsIDAuMDEyNzQ2LCAwLjAxMjc2MiwgMC4wMTI3NzgiLCBcCi0gICAgICAgICAgIjAuMDEyODE3LCAwLjAxMjcyMiwgMC4wMTI3ODUsIDAuMDEyODExLCAwLjAxMjg0NSwgMC4wMTI4NjIsIDAuMDEyODc5IiwgXAotICAgICAgICAgICIwLjAxMzIxNCwgMC4wMTI5NDcsIDAuMDEyOTc0LCAwLjAxMjk5NywgMC4wMTMwMjgsIDAuMDEzMDMyLCAwLjAxMzA1MyIsIFwKLSAgICAgICAgICAiMC4wMTQxNDUsIDAuMDEzNDc5LCAwLjAxMzQyMiwgMC4wMTM0MTIsIDAuMDEzNDExLCAwLjAxMzQxNiwgMC4wMTM0MjEiLCBcCi0gICAgICAgICAgIjAuMDE0MzM1LCAwLjAxMzg5NSwgMC4wMTM4MDYsIDAuMDEzNzg0LCAwLjAxMzc3MSwgMC4wMTM3NzMsIDAuMDEzNzczIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTkwNzcsIDAuMDE4Mjg0LCAwLjAxODI3OSwgMC4wMTgyODQsIDAuMDE4MjksIDAuMDE4Mjk0LCAwLjAxODI5OCIsIFwKLSAgICAgICAgICAiMC4wMTg4ODcsIDAuMDE4MjA3LCAwLjAxODE4OSwgMC4wMTgxOSwgMC4wMTgxOTYsIDAuMDE4MjAxLCAwLjAxODIwNyIsIFwKLSAgICAgICAgICAiMC4wMTg3OTYsIDAuMDE4MDk5LCAwLjAxODExNCwgMC4wMTgxMywgMC4wMTgxNDQsIDAuMDE4MTUzLCAwLjAxODE2MiIsIFwKLSAgICAgICAgICAiMC4wMTkwMTgsIDAuMDE4MjAzLCAwLjAxODE3NSwgMC4wMTgxNzUsIDAuMDE4MTc4LCAwLjAxODE4MiwgMC4wMTgxODYiLCBcCi0gICAgICAgICAgIjAuMDE5MTEsIDAuMDE4MjA5LCAwLjAxODE4OSwgMC4wMTgxODksIDAuMDE4MTk1LCAwLjAxODIsIDAuMDE4MjA2IiwgXAotICAgICAgICAgICIwLjAxOTM3OCwgMC4wMTgzMiwgMC4wMTgyODYsIDAuMDE4MjgzLCAwLjAxODI4NCwgMC4wMTgyOTMsIDAuMDE4Mjk5IiwgXAotICAgICAgICAgICIwLjAxOTY4LCAwLjAxODUyNywgMC4wMTg0NjgsIDAuMDE4NDUsIDAuMDE4NDQ2LCAwLjAxODQ0OSwgMC4wMTg0NDUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMTg1MSwgMC4wMTIyMDQsIDAuMDEyMjg5LCAwLjAxMjMxNywgMC4wMTIzNDMsIDAuMDEyMzU3LCAwLjAxMjM3OCIsIFwKLSAgICAgICAgICAiMC4wMTE3NjQsIDAuMDEyMDg5LCAwLjAxMjE5MywgMC4wMTIyMzEsIDAuMDEyMjcxLCAwLjAxMjI4OCwgMC4wMTIzMDEiLCBcCi0gICAgICAgICAgIjAuMDExOTU5LCAwLjAxMjExMywgMC4wMTIxOTcsIDAuMDEyMjM5LCAwLjAxMjI3OSwgMC4wMTIzMDEsIDAuMDEyMzIyIiwgXAotICAgICAgICAgICIwLjAxMjE5NSwgMC4wMTIxOTksIDAuMDEyMjg5LCAwLjAxMjMyLCAwLjAxMjM4NiwgMC4wMTIzOTUsIDAuMDEyNDE4IiwgXAotICAgICAgICAgICIwLjAxMjYxOCwgMC4wMTI0MjQsIDAuMDEyNDc3LCAwLjAxMjUwNSwgMC4wMTI1MzksIDAuMDEyNTUxLCAwLjAxMjU4NSIsIFwKLSAgICAgICAgICAiMC4wMTMzNTEsIDAuMDEyODMsIDAuMDEyODIyLCAwLjAxMjgzNSwgMC4wMTI4NjUsIDAuMDEyODY1LCAwLjAxMjg4OCIsIFwKLSAgICAgICAgICAiMC4wMTM2NDQsIDAuMDEzMjU2LCAwLjAxMzIsIDAuMDEzMTk1LCAwLjAxMzIwNiwgMC4wMTMyMSwgMC4wMTMyMjQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxODE0NiwgMC4wMTc0NDQsIDAuMDE3NDM3LCAwLjAxNzQ0NSwgMC4wMTc0NTIsIDAuMDE3NDU4LCAwLjAxNzQ2MyIsIFwKLSAgICAgICAgICAiMC4wMTgwMzQsIDAuMDE3MzE2LCAwLjAxNzMyNCwgMC4wMTczMzcsIDAuMDE3MzUzLCAwLjAxNzM2MSwgMC4wMTczNyIsIFwKLSAgICAgICAgICAiMC4wMTc5MiwgMC4wMTcyMzksIDAuMDE3MjU0LCAwLjAxNzI3NSwgMC4wMTcyOTMsIDAuMDE3MzA2LCAwLjAxNzMxOSIsIFwKLSAgICAgICAgICAiMC4wMTgwODMsIDAuMDE3MywgMC4wMTcyODgsIDAuMDE3Mjk3LCAwLjAxNzMxMywgMC4wMTczMjMsIDAuMDE3MzM0IiwgXAotICAgICAgICAgICIwLjAxODMwMywgMC4wMTczNDEsIDAuMDE3MzE5LCAwLjAxNzMyNywgMC4wMTczNDMsIDAuMDE3MzU1LCAwLjAxNzM2NiIsIFwKLSAgICAgICAgICAiMC4wMTg4MDksIDAuMDE3NjEyLCAwLjAxNzUzOSwgMC4wMTc1MjEsIDAuMDE3NTIyLCAwLjAxNzUxNiwgMC4wMTc1MTgiLCBcCi0gICAgICAgICAgIjAuMDE4OTgsIDAuMDE3ODU3LCAwLjAxNzczOSwgMC4wMTc3MiwgMC4wMTc3MDEsIDAuMDE3Njk2LCAwLjAxNzY5MiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDExMTU2LCAwLjAxMTUzLCAwLjAxMTYxLCAwLjAxMTYzNiwgMC4wMTE2NTgsIDAuMDExNjY1LCAwLjAxMTY3MSIsIFwKLSAgICAgICAgICAiMC4wMTExMTEsIDAuMDExNDUxLCAwLjAxMTU1MywgMC4wMTE1ODcsIDAuMDExNjIsIDAuMDExNjMyLCAwLjAxMTY1MiIsIFwKLSAgICAgICAgICAiMC4wMTE0NCwgMC4wMTE1MiwgMC4wMTE2MTQsIDAuMDExNjQ5LCAwLjAxMTY4NiwgMC4wMTE3MDIsIDAuMDExNzIiLCBcCi0gICAgICAgICAgIjAuMDExNTQ5LCAwLjAxMTYxNywgMC4wMTE2OTMsIDAuMDExNzIzLCAwLjAxMTc2NSwgMC4wMTE3ODUsIDAuMDExODA0IiwgXAotICAgICAgICAgICIwLjAxMTg5MywgMC4wMTE3NDMsIDAuMDExODAzLCAwLjAxMTg0MiwgMC4wMTE4NzEsIDAuMDExOSwgMC4wMTE5MjIiLCBcCi0gICAgICAgICAgIjAuMDEyNDY1LCAwLjAxMjE5NSwgMC4wMTIxODcsIDAuMDEyMiwgMC4wMTIyMjIsIDAuMDEyMjMzLCAwLjAxMjI2NiIsIFwKLSAgICAgICAgICAiMC4wMTI4OTgsIDAuMDEyNTU0LCAwLjAxMjU0MywgMC4wMTI1NDcsIDAuMDEyNTYzLCAwLjAxMjU3OSwgMC4wMTI1NTkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxNzM2NywgMC4wMTY1NDksIDAuMDE2NTU3LCAwLjAxNjU2OCwgMC4wMTY1OCwgMC4wMTY1ODksIDAuMDE2NTk4IiwgXAotICAgICAgICAgICIwLjAxNzE0MSwgMC4wMTY0NjIsIDAuMDE2NDY1LCAwLjAxNjQ3NCwgMC4wMTY0ODgsIDAuMDE2NDk4LCAwLjAxNjUwOSIsIFwKLSAgICAgICAgICAiMC4wMTcwNzIsIDAuMDE2MzcsIDAuMDE2MzkxLCAwLjAxNjQxNiwgMC4wMTY0MzksIDAuMDE2NDU0LCAwLjAxNjQ2OSIsIFwKLSAgICAgICAgICAiMC4wMTc0MTksIDAuMDE2NTMyLCAwLjAxNjQ5NiwgMC4wMTY0OTgsIDAuMDE2NTA4LCAwLjAxNjUxNiwgMC4wMTY1MjUiLCBcCi0gICAgICAgICAgIjAuMDE3ODk4LCAwLjAxNjc1NywgMC4wMTY2NTUsIDAuMDE2NjM2LCAwLjAxNjYyOCwgMC4wMTY2MjcsIDAuMDE2NjI5IiwgXAotICAgICAgICAgICIwLjAxODM5MywgMC4wMTcwOTUsIDAuMDE2OTMsIDAuMDE2ODgxLCAwLjAxNjg4MiwgMC4wMTY4NDMsIDAuMDE2ODM3IiwgXAotICAgICAgICAgICIwLjAxODQzOCwgMC4wMTcyOTgsIDAuMDE3MTI1LCAwLjAxNzA3MSwgMC4wMTcwNDksIDAuMDE3MDMzLCAwLjAxNzAyNiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkQiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEwMzg4LCAwLjAxMDc2OCwgMC4wMTA4NDIsIDAuMDEwODY1LCAwLjAxMDg4NiwgMC4wMTA4OTYsIDAuMDEwOTEzIiwgXAotICAgICAgICAgICIwLjAxMDM4MSwgMC4wMTA3MTYsIDAuMDEwODA4LCAwLjAxMDg0MywgMC4wMTA4NjgsIDAuMDEwODc3LCAwLjAxMDg5NiIsIFwKLSAgICAgICAgICAiMC4wMTA1MDYsIDAuMDEwNzE2LCAwLjAxMDgxOSwgMC4wMTA4NTYsIDAuMDEwODg1LCAwLjAxMDkxMSwgMC4wMTA5MjkiLCBcCi0gICAgICAgICAgIjAuMDEwOTg4LCAwLjAxMDg3OSwgMC4wMTA5NjEsIDAuMDEwOTkyLCAwLjAxMTAyNywgMC4wMTEwNDIsIDAuMDExMDY5IiwgXAotICAgICAgICAgICIwLjAxMTMzMSwgMC4wMTEwNDQsIDAuMDExMTA0LCAwLjAxMTEzOSwgMC4wMTExNjksIDAuMDExMTgzLCAwLjAxMTIwOSIsIFwKLSAgICAgICAgICAiMC4wMTE5NjIsIDAuMDExNDk5LCAwLjAxMTQ5LCAwLjAxMTUwNiwgMC4wMTE1MiwgMC4wMTE1MjYsIDAuMDExNTMzIiwgXAotICAgICAgICAgICIwLjAxMjE4LCAwLjAxMTcwNiwgMC4wMTE4MTUsIDAuMDExODIsIDAuMDExNzkyLCAwLjAxMTgwNCwgMC4wMTE4MzkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxNjMxNSwgMC4wMTU2MjEsIDAuMDE1NjIyLCAwLjAxNTYzNiwgMC4wMTU2NTcsIDAuMDE1NjY5LCAwLjAxNTY4MiIsIFwKLSAgICAgICAgICAiMC4wMTYxOTEsIDAuMDE1NDk1LCAwLjAxNTUyMywgMC4wMTU1NDMsIDAuMDE1NTY3LCAwLjAxNTU4MywgMC4wMTU1OTkiLCBcCi0gICAgICAgICAgIjAuMDE2MjYzLCAwLjAxNTU1OCwgMC4wMTU1ODIsIDAuMDE1NjA0LCAwLjAxNTYyOCwgMC4wMTU2NDQsIDAuMDE1NjYxIiwgXAotICAgICAgICAgICIwLjAxNjYyNywgMC4wMTU4MDIsIDAuMDE1NzY1LCAwLjAxNTc2OSwgMC4wMTU3ODMsIDAuMDE1Nzk1LCAwLjAxNTgwOCIsIFwKLSAgICAgICAgICAiMC4wMTY5OTEsIDAuMDE2MTUsIDAuMDE2MDMsIDAuMDE2MDA3LCAwLjAxNTk5OCwgMC4wMTU5OTgsIDAuMDE2MDAxIiwgXAotICAgICAgICAgICIwLjAxODI2NywgMC4wMTY1NjYsIDAuMDE2NDA2LCAwLjAxNjM3MSwgMC4wMTYzNDgsIDAuMDE2MzQsIDAuMDE2MzM4IiwgXAotICAgICAgICAgICIwLjAxODQzLCAwLjAxNjk4NSwgMC4wMTY4NTYsIDAuMDE2ODAyLCAwLjAxNjc2NSwgMC4wMTY3MzgsIDAuMDE2NzIxIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IE9SNFhMICoKLSAqIC0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChPUjRYTCkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjM2NTczOwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2MzIxMjU7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjI5Njk0OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDYzMjEyNTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyNTMsIDAuMDAwMjY3LCAwLjAwMDI3NiwgMC4wMDAyOCwgMC4wMDAyODIsIDAuMDAwMjgyLCAwLjAwMDI4MSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDczNiwgMC4wMDA3MzcsIDAuMDAwNzM3LCAwLjAwMDczNywgMC4wMDA3MzcsIDAuMDAwNzM3LCAwLjAwMDczNyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjY3Nzc3OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDY2NTk5OTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2Njc3Nzc7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjQxLCAwLjAwMDI2OCwgMC4wMDAyNzYsIDAuMDAwMjc3LCAwLjAwMDI3OSwgMC4wMDAyODUsIDAuMDAwMjg3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNTExLCAwLjAwMDUxMSwgMC4wMDA1MTEsIDAuMDAwNTExLCAwLjAwMDUxMSwgMC4wMDA1MTEsIDAuMDAwNTExIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihDKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2ODgxNzc7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjg2NDA3OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDY4ODE3NzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyNDIsIDAuMDAwMjc0LCAwLjAwMDI4MiwgMC4wMDAyODUsIDAuMDAwMjg0LCAwLjAwMDI4NSwgMC4wMDAyODciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAzMDQsIDAuMDAwMzA0LCAwLjAwMDMwNCwgMC4wMDAzMDQsIDAuMDAwMzA0LCAwLjAwMDMwNCwgMC4wMDAzMDQiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEQpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY1MTYxNzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2NTE2MTc7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjUxMTkxOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDA3LCAwLjAwMDA3LCAwLjAwMDA3LCAwLjAwMDA3LCAwLjAwMDA3LCAwLjAwMDA3LCAwLjAwMDA3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjI5LCAwLjAwMDIyOSwgMC4wMDAyMjksIDAuMDAwMjI5LCAwLjAwMDIyOSwgMC4wMDAyMjksIDAuMDAwMjI5Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMjAwODQ2OwotICAgIGZ1bmN0aW9uIDogIigoKEErQikrQykrRCkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3NjQ0OCwgMC4wODcwMTYsIDAuMTgxODY1LCAwLjMzOTc3OCwgMC40OTc2NywgMC44NjU5MjEsIDEuMDc2MzMiLCBcCi0gICAgICAgICAgIjAuMDg0NjM4LCAwLjA5NTE5NiwgMC4xOTAwNDQsIDAuMzQ4MDIsIDAuNTA1ODQzLCAwLjg3NDA5OSwgMS4wODQ1MSIsIFwKLSAgICAgICAgICAiMC4wOTM1ODUsIDAuMTA0MTMyLCAwLjE5ODk3NCwgMC4zNTY5MDgsIDAuNTE0Nzg1LCAwLjg4Mjk4NCwgMS4wOTM0NiIsIFwKLSAgICAgICAgICAiMC4xMDA0NzUsIDAuMTExMDI1LCAwLjIwNTg1MiwgMC4zNjM3OTMsIDAuNTIxNjE5LCAwLjg4OTg2OCwgMS4xMDA1IiwgXAotICAgICAgICAgICIwLjEwNTg0LCAwLjExNjM2OSwgMC4yMTExOTUsIDAuMzY5MTA4LCAwLjUyNjk4NywgMC44OTUyMzMsIDEuMTA1NjMiLCBcCi0gICAgICAgICAgIjAuMTEyNjkzLCAwLjEyMzI1NCwgMC4yMTgwMjksIDAuMzc1OSwgMC41MzM4NDYsIDAuOTAyMDAxLCAxLjExMjUxIiwgXAotICAgICAgICAgICIwLjExODAzNiwgMC4xMjgyMzYsIDAuMjIzMDE0LCAwLjM4MDkwNywgMC41Mzg3NDYsIDAuOTA2OTgzLCAxLjExNzYyIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExNzI1OCwgMC4xMzkyNTQsIDAuMzM4MjM2LCAwLjY3MDgxLCAxLjAwMzM1LCAxLjc3OTE4LCAyLjIyMjUzIiwgXAotICAgICAgICAgICIwLjExNzE3OSwgMC4xMzkyMDUsIDAuMzM4Mzk2LCAwLjY2OTcxNSwgMS4wMDMzLCAxLjc3OTExLCAyLjIyMjQiLCBcCi0gICAgICAgICAgIjAuMTE3MzU2LCAwLjEzOTM2MiwgMC4zMzgyMTYsIDAuNjcwODI3LCAxLjAwMzI0LCAxLjc3NzkxLCAyLjIyMjI0IiwgXAotICAgICAgICAgICIwLjExNzUwOSwgMC4xMzk1LCAwLjMzODM4MSwgMC42NzA4MTMsIDEuMDAzMjEsIDEuNzc4OTksIDIuMjE5NTEiLCBcCi0gICAgICAgICAgIjAuMTE3ODAyLCAwLjEzOTY1OSwgMC4zMzgwOTEsIDAuNjcwNzc1LCAxLjAwMzI1LCAxLjc3ODk2LCAyLjIyMjI3IiwgXAotICAgICAgICAgICIwLjExODQxNCwgMC4xMzk5OTgsIDAuMzM4MjIyLCAwLjY3MDM2MywgMS4wMDE3NiwgMS43Nzg4OSwgMi4yMjIyNiIsIFwKLSAgICAgICAgICAiMC4xMTg5ODQsIDAuMTQwNTkzLCAwLjMzODM1LCAwLjY3MDc4NiwgMS4wMDIxNywgMS43Nzc2NSwgMi4yMTk1NyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTkxNTYsIDAuMTI5MjcxLCAwLjIxNzAwOSwgMC4zNjE3MTksIDAuNTA2NDExLCAwLjg0NDQ4MywgMS4wMzcwOSIsIFwKLSAgICAgICAgICAiMC4xMjM5NzEsIDAuMTM0MTA0LCAwLjIyMTgyMywgMC4zNjY1MTYsIDAuNTExMjIyLCAwLjg0OTAyMywgMS4wNDIyNSIsIFwKLSAgICAgICAgICAiMC4xMjgyMTksIDAuMTM4MzY4LCAwLjIyNjA5NiwgMC4zNzA4MDMsIDAuNTE1NTIxLCAwLjg1MzUwNywgMS4wNDYyOCIsIFwKLSAgICAgICAgICAiMC4xMzE3MDYsIDAuMTQxODQxLCAwLjIyOTU2NSwgMC4zNzQyNzgsIDAuNTE4OTczLCAwLjg1NzAzMSwgMS4wNDk2OCIsIFwKLSAgICAgICAgICAiMC4xMzQ2OSwgMC4xNDQ4NjYsIDAuMjMyNjQsIDAuMzc3MzUxLCAwLjUyMjAyOCwgMC44NTk4MjksIDEuMDUyOCIsIFwKLSAgICAgICAgICAiMC4xMzg5ODYsIDAuMTQ5MTgxLCAwLjIzNzA4NCwgMC4zODE3ODUsIDAuNTI2NDQ2LCAwLjg2NDM3NCwgMS4wNTcxOCIsIFwKLSAgICAgICAgICAiMC4xNDI0MDksIDAuMTUyNjAzLCAwLjI0MDYxNiwgMC4zODUzMzksIDAuNTMwMDQ5LCAwLjg2Nzc0OSwgMS4wNjEwMSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTQ1ODUsIDAuMTMzNDQxLCAwLjMwNjY5MiwgMC42MDE4LCAwLjg5NzM2NCwgMS41ODk0MywgMS45ODk0OCIsIFwKLSAgICAgICAgICAiMC4xMTQ1NTksIDAuMTMzMzg5LCAwLjMwNjU3LCAwLjYwMTYxNCwgMC44OTgyMDksIDEuNTkwNTYsIDEuOTg1MzkiLCBcCi0gICAgICAgICAgIjAuMTE0NTIsIDAuMTMzMzg0LCAwLjMwNjY2NywgMC42MDE3NTcsIDAuODk4NjIxLCAxLjU4OTQ1LCAxLjk4ODgiLCBcCi0gICAgICAgICAgIjAuMTE0Nzc2LCAwLjEzMzYyMiwgMC4zMDY3NTgsIDAuNjAxODI4LCAwLjg5NzQwNCwgMS41ODk0NSwgMS45ODg4OSIsIFwKLSAgICAgICAgICAiMC4xMTUxNjYsIDAuMTMzOTc2LCAwLjMwNjcyMywgMC42MDE5MDMsIDAuODk4MjkzLCAxLjU5MDMxLCAxLjk4NDg2IiwgXAotICAgICAgICAgICIwLjExNTkyNiwgMC4xMzQ3LCAwLjMwNzI0OSwgMC42MDIwODcsIDAuODk4NDI2LCAxLjU4OTUzLCAxLjk4NDk4IiwgXAotICAgICAgICAgICIwLjExNjYxNywgMC4xMzUyNDMsIDAuMzA3NzA1LCAwLjYwMTE2NiwgMC44OTc2ODgsIDEuNTkyNzEsIDEuOTg1NDEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc1Mzg2LCAwLjA4NTkzOSwgMC4xODA3MDgsIDAuMzM4NTc3LCAwLjQ5NjQyMSwgMC44NjQ2NDIsIDEuMDc1MDciLCBcCi0gICAgICAgICAgIjAuMDgzNTMyLCAwLjA5NDA3OCwgMC4xODg4ODMsIDAuMzQ2NzQxLCAwLjUwNDYxMiwgMC44NzI5NDgsIDEuMDgzMjEiLCBcCi0gICAgICAgICAgIjAuMDkxOTUyLCAwLjEwMjQ5OSwgMC4xOTczMjcsIDAuMzU1MTcyLCAwLjUxMjk5NSwgMC44ODEyMywgMS4wOTE3IiwgXAotICAgICAgICAgICIwLjA5ODE4MSwgMC4xMDg3MzEsIDAuMjAzNTIzLCAwLjM2MTQyNCwgMC41MTkyNDEsIDAuODg3NDY0LCAxLjA5Nzg1IiwgXAotICAgICAgICAgICIwLjEwMjk4NiwgMC4xMTM1MzksIDAuMjA4MzI0LCAwLjM2NjE2OSwgMC41MjQwODYsIDAuODkyMjc4LCAxLjEwMjY4IiwgXAotICAgICAgICAgICIwLjEwOTI2NCwgMC4xMTk4NzIsIDAuMjE0Njc3LCAwLjM3MjYzNywgMC41MzA0NTgsIDAuODk4NzIxLCAxLjEwOTIzIiwgXAotICAgICAgICAgICIwLjExMzk2MiwgMC4xMjQ2ODksIDAuMjE5NTYxLCAwLjM3NzQxMiwgMC41MzUyNTMsIDAuOTAzNDgxLCAxLjExMzY5Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExNjg5MywgMC4xMzg3MjEsIDAuMzM3ODE5LCAwLjY3MDcwNSwgMS4wMDI0MywgMS43NzkxNSwgMi4yMjA1NiIsIFwKLSAgICAgICAgICAiMC4xMTY4OTIsIDAuMTM4OTU0LCAwLjMzODIyNSwgMC42NzA3MDYsIDEuMDAzMjMsIDEuNzc5MjEsIDIuMjIyNDgiLCBcCi0gICAgICAgICAgIjAuMTE2OTAzLCAwLjEzODkzLCAwLjMzODIxMywgMC42NzA2NTMsIDEuMDAzMTMsIDEuNzc3MzQsIDIuMjIyMzciLCBcCi0gICAgICAgICAgIjAuMTE3MTY3LCAwLjEzOTIwMywgMC4zMzgyMTcsIDAuNjcwNjQ3LCAxLjAwMzExLCAxLjc3ODk2LCAyLjIyMjE0IiwgXAotICAgICAgICAgICIwLjExNzUxLCAwLjEzOTI4NSwgMC4zMzgyMTMsIDAuNjcwNTgyLCAxLjAwMzE0LCAxLjc3NzIyLCAyLjIyMjI4IiwgXAotICAgICAgICAgICIwLjExODEwMywgMC4xMzk3NDEsIDAuMzM4MDI0LCAwLjY3MDU4MywgMS4wMDI5OCwgMS43Nzg4NCwgMi4yMjIyMyIsIFwKLSAgICAgICAgICAiMC4xMTg3NDMsIDAuMTQwMTgxLCAwLjMzODE0NywgMC42NzAyMjIsIDEuMDAyMzcsIDEuNzc4NzYsIDIuMjIyMTIiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTE2NjIyLCAwLjEyNjc0NiwgMC4yMTQ0OTksIDAuMzU5MjE2LCAwLjUwMzkwNCwgMC44NDE5NTQsIDEuMDM0NjYiLCBcCi0gICAgICAgICAgIjAuMTIxNzQyLCAwLjEzMTg1OCwgMC4yMTk2MDMsIDAuMzY0MzI0LCAwLjUwOTAxNywgMC44NDcwMTMsIDEuMDM5NzkiLCBcCi0gICAgICAgICAgIjAuMTI2OTQzLCAwLjEzNzA1NiwgMC4yMjQ3OTgsIDAuMzY5NTE3LCAwLjUxNDIwNCwgMC44NTIyMDYsIDEuMDQ1MDEiLCBcCi0gICAgICAgICAgIjAuMTMxOTEzLCAwLjE0MjA1LCAwLjIyOTgwMSwgMC4zNzQ1MjksIDAuNTE5MjIxLCAwLjg1NzMwNiwgMS4wNDk5MiIsIFwKLSAgICAgICAgICAiMC4xMzY0MjcsIDAuMTQ2NTc3LCAwLjIzNDM5OSwgMC4zNzkxMTQsIDAuNTIzODE4LCAwLjg2MTc3MiwgMS4wNTQ1IiwgXAotICAgICAgICAgICIwLjE0MzA5NywgMC4xNTMyODgsIDAuMjQxMjIzLCAwLjM4NTk0OSwgMC41MzA2MjIsIDAuODY4MzI2LCAxLjA2MTU2IiwgXAotICAgICAgICAgICIwLjE0ODQ2NCwgMC4xNTg3NTQsIDAuMjQ2ODYxLCAwLjM5MTU2LCAwLjUzNjIzNiwgMC44NzM5OTgsIDEuMDY3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExNDU1NywgMC4xMzM0MjUsIDAuMzA2NzAxLCAwLjYwMTc3NCwgMC44OTg1MDgsIDEuNTg5NDQsIDEuOTg4ODYiLCBcCi0gICAgICAgICAgIjAuMTE0NTE2LCAwLjEzMzQwNCwgMC4zMDY2NTQsIDAuNjAxNzQ5LCAwLjg5ODI3OCwgMS41ODk0NywgMS45ODg4NSIsIFwKLSAgICAgICAgICAiMC4xMTQ1MTgsIDAuMTMzNDEyLCAwLjMwNjY2MSwgMC42MDE3NDQsIDAuODk4MzEzLCAxLjU4OTQ2LCAxLjk4ODg0IiwgXAotICAgICAgICAgICIwLjExNDg4NCwgMC4xMzM3MTMsIDAuMzA2NzY3LCAwLjYwMTg1MiwgMC44OTczNiwgMS41ODk0NiwgMS45ODQ5OSIsIFwKLSAgICAgICAgICAiMC4xMTU0MDcsIDAuMTM0MTgzLCAwLjMwNzA0OCwgMC42MDE5MzIsIDAuODk4NjE3LCAxLjU4OTQ5LCAxLjk4NSIsIFwKLSAgICAgICAgICAiMC4xMTYzMjgsIDAuMTM1MDMyLCAwLjMwNzUxLCAwLjYwMTA1MSwgMC44OTgzNTgsIDEuNTkyNiwgMS45ODY4MiIsIFwKLSAgICAgICAgICAiMC4xMTcxNzcsIDAuMTM1NzgzLCAwLjMwNzg0OCwgMC42MDE2ODQsIDAuODk4NjA2LCAxLjU5MDE4LCAxLjk4NDk3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3MzcxNiwgMC4wODQyNTMsIDAuMTc4OTg5LCAwLjMzNjgzMSwgMC40OTQ2NTYsIDAuODYyODk5LCAxLjA3MzI4IiwgXAotICAgICAgICAgICIwLjA4MTc2MSwgMC4wOTIzMDcsIDAuMTg3MDU5LCAwLjM0NDg4OCwgMC41MDI2OTEsIDAuODcwOTMsIDEuMDgxMzkiLCBcCi0gICAgICAgICAgIjAuMDg5ODA0LCAwLjEwMDMzOCwgMC4xOTUwOSwgMC4zNTI5MTUsIDAuNTEwODA4LCAwLjg3ODk5MywgMS4wODkzOCIsIFwKLSAgICAgICAgICAiMC4wOTU0ODgsIDAuMTA2MDI3LCAwLjIwMDc4OSwgMC4zNTg2NjcsIDAuNTE2MzExLCAwLjg4NDQ5OSwgMS4wOTUwNSIsIFwKLSAgICAgICAgICAiMC4wOTk4NzYsIDAuMTEwNDE3LCAwLjIwNDk5OCwgMC4zNjI4MTUsIDAuNTIwNzA5LCAwLjg4OTAzMywgMS4wOTk0MyIsIFwKLSAgICAgICAgICAiMC4xMDU0MzgsIDAuMTE2MDI1LCAwLjIxMDc5LCAwLjM2ODYxNiwgMC41MjY0MzMsIDAuODk0NzEyLCAxLjEwNTIxIiwgXAotICAgICAgICAgICIwLjEwOTQ3NywgMC4xMjAwMjcsIDAuMjE0NzksIDAuMzcyNjEzLCAwLjUzMDQxMywgMC44OTg2MjYsIDEuMTA5MDUiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTE2Njg0LCAwLjEzODc4MSwgMC4zMzgxMjYsIDAuNjcwMDY1LCAxLjAwMjE5LCAxLjc3NzI4LCAyLjIyMDU5IiwgXAotICAgICAgICAgICIwLjExNjcyMSwgMC4xMzg3OTQsIDAuMzM3NzM5LCAwLjY3LCAxLjAwMjMxLCAxLjc3NzgsIDIuMjIwMDkiLCBcCi0gICAgICAgICAgIjAuMTE2Njk4LCAwLjEzODc4OCwgMC4zMzc4NzUsIDAuNjcwNTM2LCAxLjAwMzExLCAxLjc3NzQxLCAyLjIyMDUzIiwgXAotICAgICAgICAgICIwLjExNzA1OSwgMC4xMzkwNjUsIDAuMzM4MDc2LCAwLjY3MDU4LCAxLjAwMzA3LCAxLjc3ODg5LCAyLjIyMDM4IiwgXAotICAgICAgICAgICIwLjExNzMxNCwgMC4xMzkxNTksIDAuMzM3ODUsIDAuNjcwNDg2LCAxLjAwMzA3LCAxLjc3NzQxLCAyLjIyMDM3IiwgXAotICAgICAgICAgICIwLjExNzkwNSwgMC4xMzk1NDQsIDAuMzM3OTAzLCAwLjY3MDM4NCwgMS4wMDI5LCAxLjc3NjAxLCAyLjIyMjI2IiwgXAotICAgICAgICAgICIwLjExODUwNiwgMC4xNDAyNTMsIDAuMzM4MDE1LCAwLjY3MDIwOCwgMS4wMDIzLCAxLjc3ODYyLCAyLjIyMDciKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTExODE2LCAwLjEyMTk1LCAwLjIwOTY5MSwgMC4zNTQ0MTUsIDAuNDk5MTM3LCAwLjgzNzEwNywgMS4wMjk4NSIsIFwKLSAgICAgICAgICAiMC4xMTcyODksIDAuMTI3NDIzLCAwLjIxNTE5NywgMC4zNTk5NDIsIDAuNTA0NjEyLCAwLjg0MjMyOSwgMS4wMzUzNCIsIFwKLSAgICAgICAgICAiMC4xMjQyOTksIDAuMTM0NDEsIDAuMjIyMTcxLCAwLjM2Njg3OCwgMC41MTE1ODcsIDAuODQ5MzQxLCAxLjA0MjM3IiwgXAotICAgICAgICAgICIwLjEzMTExNCwgMC4xNDEyMzgsIDAuMjI4OTg2LCAwLjM3MzcxMSwgMC41MTg0MDMsIDAuODU2NDcsIDEuMDQ5MTIiLCBcCi0gICAgICAgICAgIjAuMTM3NDk1LCAwLjE0NzY2NiwgMC4yMzU0NSwgMC4zODAxNjIsIDAuNTI0ODM2LCAwLjg2Mjg3NSwgMS4wNTU2MiIsIFwKLSAgICAgICAgICAiMC4xNDY0ODgsIDAuMTU2NjgyLCAwLjI0NDcyLCAwLjM4OTM5NywgMC41MzQwODUsIDAuODcxODMzLCAxLjA2NDciLCBcCi0gICAgICAgICAgIjAuMTUzNzU0LCAwLjE2Mzk5OCwgMC4yNTIxOTcsIDAuMzk2ODgxLCAwLjU0MTUyNSwgMC44NzkyNzIsIDEuMDcyMzIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTE0NTksIDAuMTMzMzgyLCAwLjMwNjY5NSwgMC42MDE3NjUsIDAuODk4NjI2LCAxLjU4OTQ2LCAxLjk4ODc5IiwgXAotICAgICAgICAgICIwLjExNDUxNywgMC4xMzMzNTMsIDAuMzA2NjM3LCAwLjYwMTg3NSwgMC44OTcyNDUsIDEuNTkyNjUsIDEuOTg0OTkiLCBcCi0gICAgICAgICAgIjAuMTE0NTE1LCAwLjEzMzQxLCAwLjMwNjY0NywgMC42MDEwNCwgMC44OTcyNTgsIDEuNTg5MTMsIDEuOTg0ODEiLCBcCi0gICAgICAgICAgIjAuMTE1MDA5LCAwLjEzMzgxNCwgMC4zMDY3OTYsIDAuNjAxODYzLCAwLjg5NzM2MSwgMS41ODk0NSwgMS45ODg5MiIsIFwKLSAgICAgICAgICAiMC4xMTU0NjUsIDAuMTM0Mjk2LCAwLjMwNjkwOCwgMC42MDE4NCwgMC44OTgzMDgsIDEuNTg5NDUsIDEuOTg4ODIiLCBcCi0gICAgICAgICAgIjAuMTE2NTM2LCAwLjEzNTM2OSwgMC4zMDc0MywgMC42MDE5MSwgMC44OTgzOTQsIDEuNTkwMzksIDEuOTg0OTgiLCBcCi0gICAgICAgICAgIjAuMTE3MjA1LCAwLjEzNTc1NSwgMC4zMDc5MzksIDAuNjAyMjg2LCAwLjg5ODQ1MSwgMS41OTE5NywgMS45ODQ4NiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJEIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzE4MDcsIDAuMDgyMzI3LCAwLjE3NzEzLCAwLjMzNDk1MSwgMC40OTI5OTgsIDAuODYxMTYxLCAxLjA3MTUiLCBcCi0gICAgICAgICAgIjAuMDc5NzMzLCAwLjA5MDI2MSwgMC4xODUwMzQsIDAuMzQzMDU0LCAwLjUwMDgzOCwgMC44NjkzMzgsIDEuMDgwMTgiLCBcCi0gICAgICAgICAgIjAuMDg2OTIzLCAwLjA5NzQ1NywgMC4xOTIyNDEsIDAuMzUwMjgsIDAuNTA4MTM3LCAwLjg3NjU0NiwgMS4wODc1NyIsIFwKLSAgICAgICAgICAiMC4wOTE5OTksIDAuMTAyNTI3LCAwLjE5NzI0NSwgMC4zNTU0MzcsIDAuNTEzMjYzLCAwLjg4MTc3NiwgMS4wOTIyNyIsIFwKLSAgICAgICAgICAiMC4wOTU2OSwgMC4xMDYzNDIsIDAuMjAwOTQzLCAwLjM1OTAyOCwgMC41MTY3MjYsIDAuODg1MzY3LCAxLjA5NiIsIFwKLSAgICAgICAgICAiMC4xMDA3NSwgMC4xMTEzNiwgMC4yMDYwMDksIDAuMzYzNzI1LCAwLjUyMjA2NSwgMC44OTAzODksIDEuMTAxIiwgXAotICAgICAgICAgICIwLjEwMzk4OSwgMC4xMTQ1MzYsIDAuMjA5MjQ0LCAwLjM2NzI3MSwgMC41MjUxMDYsIDAuODkzNjA1LCAxLjEwNDU5Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExNjMxMSwgMC4xMzg2MTksIDAuMzM3NjUsIDAuNjcwMDk4LCAxLjAwMTk5LCAxLjc3ODc0LCAyLjIyMzUxIiwgXAotICAgICAgICAgICIwLjExNjM3NSwgMC4xMzg2OTYsIDAuMzM3NTUyLCAwLjY2OTg0NSwgMS4wMDE0NywgMS43Nzc4NywgMi4yMjAwNyIsIFwKLSAgICAgICAgICAiMC4xMTY3MDIsIDAuMTM4ODQxLCAwLjMzNzc2NCwgMC42Njk4NDgsIDEuMDAyNDUsIDEuNzc3NTYsIDIuMjE5OTEiLCBcCi0gICAgICAgICAgIjAuMTE3MDY2LCAwLjEzODk0LCAwLjMzNzc5NSwgMC42Njk4MjYsIDEuMDAxOTcsIDEuNzc3MDMsIDIuMjIxMjgiLCBcCi0gICAgICAgICAgIjAuMTE3MzgzLCAwLjEzOTE4MSwgMC4zMzgyMzIsIDAuNjY5NDU2LCAxLjAwMTY4LCAxLjc3NzU3LCAyLjIyMDU3IiwgXAotICAgICAgICAgICIwLjExODAyNSwgMC4xMzk1OTgsIDAuMzM3Nzg5LCAwLjY3MDgxOCwgMS4wMDIwNCwgMS43NzcwNiwgMi4yMTk5OSIsIFwKLSAgICAgICAgICAiMC4xMTg2NTEsIDAuMTQwMzY0LCAwLjMzNzk1NiwgMC42NzA4NTQsIDEuMDAxNDcsIDEuNzc2OTMsIDIuMjE5ODIiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTA0NzU1LCAwLjExNDg5MSwgMC4yMDI3MDQsIDAuMzQ3NDM1LCAwLjQ5MjEzNSwgMC44MzAxNTMsIDEuMDIyOSIsIFwKLSAgICAgICAgICAiMC4xMTEzMjUsIDAuMTIxNDY4LCAwLjIwOTIzOCwgMC4zNTM5NjgsIDAuNDk4NjY2LCAwLjgzNjczLCAxLjAyOTM2IiwgXAotICAgICAgICAgICIwLjEyMDQ4OSwgMC4xMzA2MDMsIDAuMjE4MzcyLCAwLjM2MzEwMiwgMC41MDc4ODMsIDAuODQ1ODAyLCAxLjAzODY0IiwgXAotICAgICAgICAgICIwLjEyOTA3NiwgMC4xMzkyMDIsIDAuMjI2OTQ1LCAwLjM3MTY2NywgMC41MTYzNTEsIDAuODU0MzYyLCAxLjA0NzE1IiwgXAotICAgICAgICAgICIwLjEzNjY4LCAwLjE0NjgzNSwgMC4yMzQ2NiwgMC4zNzkzNzcsIDAuNTI0MTc5LCAwLjg2MjExOSwgMS4wNTQ4MyIsIFwKLSAgICAgICAgICAiMC4xNDczMzIsIDAuMTU3NjA4LCAwLjI0NTcxMSwgMC4zOTAzNzgsIDAuNTM1MDY5LCAwLjg3MzE5NywgMS4wNjU3OSIsIFwKLSAgICAgICAgICAiMC4xNTU2NTMsIDAuMTY1ODQyLCAwLjI1Mzk4OCwgMC4zOTg2NTMsIDAuNTQzMzMyLCAwLjg4MTA2NCwgMS4wNzQxMSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTQ0OCwgMC4xMzMzNTgsIDAuMzA2NjQ2LCAwLjYwMTc0OSwgMC44OTczNTQsIDEuNTg5NDMsIDEuOTg4ODUiLCBcCi0gICAgICAgICAgIjAuMTE0NDYsIDAuMTMzMzI3LCAwLjMwNjQwMiwgMC42MDE3NTYsIDAuODk4NTI0LCAxLjU4OTQ1LCAxLjk4OTQ2IiwgXAotICAgICAgICAgICIwLjExNDQ0LCAwLjEzMzM3NiwgMC4zMDY2OTgsIDAuNjAxNzQsIDAuODk2Njg4LCAxLjU4OTQ2LCAxLjk4ODg0IiwgXAotICAgICAgICAgICIwLjExNDg4MywgMC4xMzM2NzEsIDAuMzA2Nzg5LCAwLjYwMTgwOCwgMC44OTg0NiwgMS41ODk0NiwgMS45ODg4MiIsIFwKLSAgICAgICAgICAiMC4xMTU0OTUsIDAuMTM0MjQ4LCAwLjMwNjkwNywgMC42MDE5MzcsIDAuODk2NTc1LCAxLjU4OTQ1LCAxLjk4ODgxIiwgXAotICAgICAgICAgICIwLjExNjI3LCAwLjEzNTAxOSwgMC4zMDc0OTIsIDAuNjAxOTYzLCAwLjg5ODU0OCwgMS41ODk3LCAxLjk4ODg5IiwgXAotICAgICAgICAgICIwLjExNjkyMSwgMC4xMzU0NzUsIDAuMzA3ODM1LCAwLjYwMjIwNiwgMC44OTg1MDYsIDEuNTkyMDksIDEuOTg0ODYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDE2NDIsIDAuMDAxNjQyLCAwLjAwMTY0MiwgMC4wMDE2NDIsIDAuMDAxNjQyLCAwLjAwMTY0MywgMC4wMDE2NDIiLCBcCi0gICAgICAgICAgIjAuMDAxNjI3LCAwLjAwMTYyNywgMC4wMDE2MjgsIDAuMDAxNjI4LCAwLjAwMTYyOCwgMC4wMDE2MjgsIDAuMDAxNjMiLCBcCi0gICAgICAgICAgIjAuMDAxNjU2LCAwLjAwMTY1OSwgMC4wMDE2NTUsIDAuMDAxNjU1LCAwLjAwMTY1NCwgMC4wMDE2NTUsIDAuMDAxNjU0IiwgXAotICAgICAgICAgICIwLjAwMTcxLCAwLjAwMTcwOSwgMC4wMDE3MDgsIDAuMDAxNzA2LCAwLjAwMTcwNiwgMC4wMDE3MDUsIDAuMDAxNzA1IiwgXAotICAgICAgICAgICIwLjAwMTc4NCwgMC4wMDE3ODIsIDAuMDAxNzc4LCAwLjAwMTc3NiwgMC4wMDE3NzUsIDAuMDAxNzc0LCAwLjAwMTc3NCIsIFwKLSAgICAgICAgICAiMC4wMDE5MzMsIDAuMDAxOTMsIDAuMDAxOTE5LCAwLjAwMTkxNiwgMC4wMDE5MTQsIDAuMDAxOTEzLCAwLjAwMTkxMiIsIFwKLSAgICAgICAgICAiMC4wMDIwNjUsIDAuMDAyMDcsIDAuMDAyMDU5LCAwLjAwMjA1MywgMC4wMDIwNTIsIDAuMDAyMDUsIDAuMDAyMDQ5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzODksIDAuMDAzODg5LCAwLjAwMzg4MiwgMC4wMDM4NzgsIDAuMDAzODc3LCAwLjAwMzg3NSwgMC4wMDM4NzUiLCBcCi0gICAgICAgICAgIjAuMDAzODYzLCAwLjAwMzg2MSwgMC4wMDM4NTUsIDAuMDAzODUxLCAwLjAwMzg1LCAwLjAwMzg0OSwgMC4wMDM4NDgiLCBcCi0gICAgICAgICAgIjAuMDAzODU1LCAwLjAwMzg1NCwgMC4wMDM4NDgsIDAuMDAzODQ1LCAwLjAwMzg0NCwgMC4wMDM4NDIsIDAuMDAzODQyIiwgXAotICAgICAgICAgICIwLjAwMzg2MiwgMC4wMDM4NjEsIDAuMDAzODU1LCAwLjAwMzg1MSwgMC4wMDM4NSwgMC4wMDM4NDksIDAuMDAzODQ4IiwgXAotICAgICAgICAgICIwLjAwMzg4LCAwLjAwMzg3OCwgMC4wMDM4NzIsIDAuMDAzODY4LCAwLjAwMzg2NywgMC4wMDM4NjUsIDAuMDAzODY1IiwgXAotICAgICAgICAgICIwLjAwMzkzNCwgMC4wMDM5MzIsIDAuMDAzOTI2LCAwLjAwMzkyMiwgMC4wMDM5MiwgMC4wMDM5MTgsIDAuMDAzOTE4IiwgXAotICAgICAgICAgICIwLjAwNDAxLCAwLjAwNDAwNywgMC4wMDM5OTcsIDAuMDAzOTkxLCAwLjAwMzk4OCwgMC4wMDM5ODcsIDAuMDAzOTg3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxNDMzLCAwLjAwMTQzNCwgMC4wMDE0MzksIDAuMDAxNDQsIDAuMDAxNDQxLCAwLjAwMTQ0MSwgMC4wMDE0NDIiLCBcCi0gICAgICAgICAgIjAuMDAxNDE2LCAwLjAwMTQxOCwgMC4wMDE0MjQsIDAuMDAxNDI2LCAwLjAwMTQyNywgMC4wMDE0MjcsIDAuMDAxNDI3IiwgXAotICAgICAgICAgICIwLjAwMTQ0OCwgMC4wMDE0NDksIDAuMDAxNDU2LCAwLjAwMTQ1OCwgMC4wMDE0NiwgMC4wMDE0NjEsIDAuMDAxNDYxIiwgXAotICAgICAgICAgICIwLjAwMTUsIDAuMDAxNTAyLCAwLjAwMTUwNywgMC4wMDE1MSwgMC4wMDE1MTEsIDAuMDAxNTEyLCAwLjAwMTUxMiIsIFwKLSAgICAgICAgICAiMC4wMDE1NzUsIDAuMDAxNTc2LCAwLjAwMTU4LCAwLjAwMTU4MywgMC4wMDE1ODQsIDAuMDAxNTg1LCAwLjAwMTU4NSIsIFwKLSAgICAgICAgICAiMC4wMDE3MDQsIDAuMDAxNzA0LCAwLjAwMTcwOCwgMC4wMDE3MjUsIDAuMDAxNzI2LCAwLjAwMTcyNywgMC4wMDE3MjciLCBcCi0gICAgICAgICAgIjAuMDAxODUsIDAuMDAxODM2LCAwLjAwMTg0MSwgMC4wMDE4NDUsIDAuMDAxODQ2LCAwLjAwMTg0OCwgMC4wMDE4NTIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDM2MjYsIDAuMDAzNjI1LCAwLjAwMzYyMSwgMC4wMDM2MTksIDAuMDAzNjE5LCAwLjAwMzYxOCwgMC4wMDM2MTgiLCBcCi0gICAgICAgICAgIjAuMDAzNTk4LCAwLjAwMzU5NywgMC4wMDM1OTQsIDAuMDAzNTkzLCAwLjAwMzU5MiwgMC4wMDM1OTIsIDAuMDAzNTkyIiwgXAotICAgICAgICAgICIwLjAwMzU5NSwgMC4wMDM1OTQsIDAuMDAzNTkxLCAwLjAwMzU4OSwgMC4wMDM1ODgsIDAuMDAzNTg3LCAwLjAwMzU4NyIsIFwKLSAgICAgICAgICAiMC4wMDM2MDYsIDAuMDAzNjA1LCAwLjAwMzYwMiwgMC4wMDM2LCAwLjAwMzU5OSwgMC4wMDM1OTgsIDAuMDAzNTk4IiwgXAotICAgICAgICAgICIwLjAwMzYzNSwgMC4wMDM2MzMsIDAuMDAzNjI4LCAwLjAwMzYyNSwgMC4wMDM2MjQsIDAuMDAzNjIyLCAwLjAwMzYyMiIsIFwKLSAgICAgICAgICAiMC4wMDM3MDcsIDAuMDAzNzA0LCAwLjAwMzY5NywgMC4wMDM2OTMsIDAuMDAzNjkyLCAwLjAwMzY5LCAwLjAwMzY5IiwgXAotICAgICAgICAgICIwLjAwMzc5OCwgMC4wMDM3OTQsIDAuMDAzNzgzLCAwLjAwMzc3OCwgMC4wMDM3NzQsIDAuMDAzNzczLCAwLjAwMzc3MiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTE5NiwgMC4wMDExOTgsIDAuMDAxMjAxLCAwLjAwMTIwMywgMC4wMDEyMDMsIDAuMDAxMjA0LCAwLjAwMTIwNCIsIFwKLSAgICAgICAgICAiMC4wMDExOTQsIDAuMDAxMTk2LCAwLjAwMTIwMSwgMC4wMDEyMDMsIDAuMDAxMjA0LCAwLjAwMTIwNCwgMC4wMDEyMDUiLCBcCi0gICAgICAgICAgIjAuMDAxMjIsIDAuMDAxMjIyLCAwLjAwMTIyOCwgMC4wMDEyMzEsIDAuMDAxMjMyLCAwLjAwMTIzMywgMC4wMDEyMzMiLCBcCi0gICAgICAgICAgIjAuMDAxMjgsIDAuMDAxMjgyLCAwLjAwMTI4OSwgMC4wMDEyOTIsIDAuMDAxMjg2LCAwLjAwMTI4NywgMC4wMDEyOTQiLCBcCi0gICAgICAgICAgIjAuMDAxMzU0LCAwLjAwMTM1NCwgMC4wMDEzNTIsIDAuMDAxMzU1LCAwLjAwMTM1NiwgMC4wMDEzNjYsIDAuMDAxMzY2IiwgXAotICAgICAgICAgICIwLjAwMTQ3MiwgMC4wMDE0NzMsIDAuMDAxNDg4LCAwLjAwMTQ5MiwgMC4wMDE0OTQsIDAuMDAxNDg1LCAwLjAwMTQ5NSIsIFwKLSAgICAgICAgICAiMC4wMDE2MDYsIDAuMDAxNjA1LCAwLjAwMTYwNywgMC4wMDE2MTEsIDAuMDAxNjEyLCAwLjAwMTYxMywgMC4wMDE2MTMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDMzNzMsIDAuMDAzMzczLCAwLjAwMzM3MSwgMC4wMDMzNywgMC4wMDMzNywgMC4wMDMzNywgMC4wMDMzNyIsIFwKLSAgICAgICAgICAiMC4wMDMzNDQsIDAuMDAzMzQ0LCAwLjAwMzM0NSwgMC4wMDMzNDUsIDAuMDAzMzQ0LCAwLjAwMzM0NCwgMC4wMDMzNDQiLCBcCi0gICAgICAgICAgIjAuMDAzMzUyLCAwLjAwMzM1MSwgMC4wMDMzNSwgMC4wMDMzNSwgMC4wMDMzNSwgMC4wMDMzNSwgMC4wMDMzNSIsIFwKLSAgICAgICAgICAiMC4wMDMzODQsIDAuMDAzMzgzLCAwLjAwMzM3OSwgMC4wMDMzNzgsIDAuMDAzMzc3LCAwLjAwMzM3NywgMC4wMDMzNzciLCBcCi0gICAgICAgICAgIjAuMDAzNDM1LCAwLjAwMzQzMywgMC4wMDM0MjUsIDAuMDAzNDIzLCAwLjAwMzQyMiwgMC4wMDM0MjEsIDAuMDAzNDIiLCBcCi0gICAgICAgICAgIjAuMDAzNTI3LCAwLjAwMzU0MywgMC4wMDM1MjIsIDAuMDAzNTE4LCAwLjAwMzUxNiwgMC4wMDM1MTYsIDAuMDAzNTE2IiwgXAotICAgICAgICAgICIwLjAwMzY0MywgMC4wMDM2MzksIDAuMDAzNjI0LCAwLjAwMzYxOCwgMC4wMDM2MTUsIDAuMDAzNjEzLCAwLjAwMzYxMyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkQiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDk4MSwgMC4wMDA5ODIsIDAuMDAwOTg2LCAwLjAwMDk4OSwgMC4wMDA5ODcsIDAuMDAwOTg5LCAwLjAwMDk4OCIsIFwKLSAgICAgICAgICAiMC4wMDA5ODEsIDAuMDAwOTgzLCAwLjAwMDk4OCwgMC4wMDA5OSwgMC4wMDA5OSwgMC4wMDA5OTEsIDAuMDAwOTkxIiwgXAotICAgICAgICAgICIwLjAwMTAxNywgMC4wMDEwMTgsIDAuMDAxMDI0LCAwLjAwMTAyNywgMC4wMDEwMjcsIDAuMDAxMDI3LCAwLjAwMTAyNyIsIFwKLSAgICAgICAgICAiMC4wMDEwNzksIDAuMDAxMDc5LCAwLjAwMTA4NSwgMC4wMDEwODMsIDAuMDAxMDg0LCAwLjAwMTA4NCwgMC4wMDEwODgiLCBcCi0gICAgICAgICAgIjAuMDAxMTUzLCAwLjAwMTE0OSwgMC4wMDExNTcsIDAuMDAxMTU2LCAwLjAwMTE2MSwgMC4wMDExNTgsIDAuMDAxMTYyIiwgXAotICAgICAgICAgICIwLjAwMTI3OSwgMC4wMDEyOCwgMC4wMDEyODMsIDAuMDAxMjc5LCAwLjAwMTI4OSwgMC4wMDEyOCwgMC4wMDEyOCIsIFwKLSAgICAgICAgICAiMC4wMDEzODksIDAuMDAxMzg5LCAwLjAwMTM5NCwgMC4wMDEzOTksIDAuMDAxMzk5LCAwLjAwMTQwMiwgMC4wMDE0MDIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDMxMDcsIDAuMDAzMTA3LCAwLjAwMzEwOSwgMC4wMDMxMDksIDAuMDAzMTEsIDAuMDAzMTEsIDAuMDAzMTEiLCBcCi0gICAgICAgICAgIjAuMDAzMDkzLCAwLjAwMzA5NCwgMC4wMDMwOTYsIDAuMDAzMDk4LCAwLjAwMzA5OCwgMC4wMDMwOTgsIDAuMDAzMDk4IiwgXAotICAgICAgICAgICIwLjAwMzE1MSwgMC4wMDMxNTEsIDAuMDAzMTUyLCAwLjAwMzE1MywgMC4wMDMxNTMsIDAuMDAzMTU0LCAwLjAwMzE1NCIsIFwKLSAgICAgICAgICAiMC4wMDMyMjgsIDAuMDAzMjI2LCAwLjAwMzIyMywgMC4wMDMyMjIsIDAuMDAzMjIxLCAwLjAwMzIyMSwgMC4wMDMyMjEiLCBcCi0gICAgICAgICAgIjAuMDAzMzA4LCAwLjAwMzMwNiwgMC4wMDMzLCAwLjAwMzI5OCwgMC4wMDMyOTgsIDAuMDAzMjk3LCAwLjAwMzI5NyIsIFwKLSAgICAgICAgICAiMC4wMDM0NDUsIDAuMDAzNDQyLCAwLjAwMzQzMiwgMC4wMDM0MjksIDAuMDAzNDI4LCAwLjAwMzQyNywgMC4wMDM0MjciLCBcCi0gICAgICAgICAgIjAuMDAzNTQ0LCAwLjAwMzU0MiwgMC4wMDM1MzUsIDAuMDAzNTMyLCAwLjAwMzUzMSwgMC4wMDM1MzEsIDAuMDAzNTMxIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IFNERkZIUVg4ICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChTREZGSFFYOCkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAxLjk2ODc7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgZmYgKE4zMCxRQklOVCkgewotICAgIG5leHRfc3RhdGUgOiAiKChTRSBTSSkgKyAoIVNFIEQpKSI7Ci0gICAgY2xvY2tlZF9vbiA6ICJDSyI7Ci0gIH0KLSAgcGluKENLKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2MTc2NDU7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjE3NjQ1OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDYxNzU1ODsKLSAgICBjbG9jayA6IHRydWU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA0MjI1LCAwLjAwNDIxNSwgMC4wMDQyOTYsIDAuMDA0Mzc4LCAwLjAwNDQ5NiwgMC4wMDQ3MzcsIDAuMDA0OTE5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA5NDk3LCAwLjAwOTQ4NCwgMC4wMDk1NzUsIDAuMDA5NywgMC4wMDk4NjMsIDAuMDEwMDMxLCAwLjAxMDI0NCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQmIVNFJiFTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fU0VfRVFfMF9BTl9TSV9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDg4MzE0LCAwLjA5NjYxNywgMC4xMDYwNCwgMC4xMTM4NjQsIDAuMTE5OTk5LCAwLjEyODEzNywgMC4xMzQ0MTkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjA2NTI1NCwgMC4wNzMzNTksIDAuMDgyODE3LCAwLjA5MDEzOCwgMC4wOTYxMDYsIDAuMTAzOTM0LCAwLjEwOTU5MiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwOTYzMTE1OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDk2MTAzOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDk2MzExNTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDQzMzUsIDAuMDA0MjkxLCAwLjAwNDMxMywgMC4wMDQzNzIsIDAuMDA0NDYxLCAwLjAwNDYxOCwgMC4wMDQ3ODUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDcwMjEsIDAuMDA2OTkxLCAwLjAwNzAyMSwgMC4wMDcwODIsIDAuMDA3MTQ1LCAwLjAwNzMwMywgMC4wMDc0NzEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIVNFIjsKLSAgICAgIHNkZl9jb25kIDogIlNFID09IDEnYjAiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAyNSwgLTAuMDIsIC0wLjAxMzc1LCAtMC4wMDc1LCAtMC4wMDc1LCAtMC4wMDM3NSwgLTAuMDAxMjUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA4NzUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDMxMjUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTUsIC0wLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzNzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMzEyNSwgLTAuMDIxMjUsIC0wLjAxODc1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDQzNzUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDI3NSwgLTAuMDI1IiwgXAotICAgICAgICAgICItMC4wNTg3NSwgLTAuMDUzNzUsIC0wLjA0NzUsIC0wLjA0NzUsIC0wLjA0MTI1LCAtMC4wMzc1LCAtMC4wMzUiLCBcCi0gICAgICAgICAgIi0wLjA2MTI1LCAtMC4wNTYyNSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNSwgLTAuMDQ2MjUsIC0wLjA0Mzc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMCwgMC4wMDUsIDAuMDE3NSwgMC4wMjM3NSwgMC4wMjM3NSwgMC4wMzM3NSwgMC4wMzYyNSIsIFwKLSAgICAgICAgICAiLTAuMDA1LCAwLCAwLjAxMjUsIDAuMDE4NzUsIDAuMDE4NzUsIDAuMDI4NzUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjAxMTI1LCAtMC4wMDYyNSwgMC4wMDYyNSwgMC4wMTI1LCAwLjAxMjUsIDAuMDIyNSwgMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjAxNzUsIC0wLjAxMjUsIDAsIDAuMDA2MjUsIDAuMDA2MjUsIDAuMDE2MjUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMCwgMC4wMDYyNSwgMC4wMSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDI3NSwgLTAuMDE2MjUsIC0wLjAxLCAtMC4wMDM3NSwgLTAuMDAzNzUsIDAuMDA2MjUsIDAuMDA4NzUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMjUsIC0wLjAxMjUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLjAwMzc1LCAwLjAwNjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhU0UiOwotICAgICAgc2RmX2NvbmQgOiAiU0UgPT0gMSdiMCI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQzNzUsIDAuMDM4NzUsIDAuMDMyNSwgMC4wMjYyNSwgMC4wMjYyNSwgMC4wMjI1LCAwLjAxMzc1IiwgXAotICAgICAgICAgICIwLjA1NSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAzMTI1LCAwLjAyNzUsIDAuMDI1IiwgXAotICAgICAgICAgICIwLjA2MTI1LCAwLjA1LCAwLjA0Mzc1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDMzNzUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMDY3NSwgMC4wNjI1LCAwLjA1LCAwLjA1LCAwLjA0Mzc1LCAwLjA0LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIjAuMDczNzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNTYyNSwgMC4wNSwgMC4wNDYyNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4wODM3NSwgMC4wNzI1LCAwLjA2NjI1LCAwLjA2NjI1LCAwLjA2LCAwLjA1NjI1LCAwLjA1Mzc1IiwgXAotICAgICAgICAgICIwLjA4NjI1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjg3NSwgMC4wNTg3NSwgMC4wNTYyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzMTI1LCAwLjAyLCAwLjAxMzc1LCAwLjAwNzUsIDAuMDAxMjUsIC0wLjAwODc1LCAtMC4wMTc1IiwgXAotICAgICAgICAgICIwLjAzNjI1LCAwLjAyNSwgMC4wMTg3NSwgMC4wMTI1LCAwLjAwNjI1LCAtMC4wMDM3NSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMDQyNSwgMC4wMzEyNSwgMC4wMjUsIDAuMDE4NzUsIDAuMDEyNSwgMC4wMDI1LCAwIiwgXAotICAgICAgICAgICIwLjA0ODc1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDI1LCAwLjAxODc1LCAwLjAwODc1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICIwLjA1NSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMTUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4wNTg3NSwgMC4wNTM3NSwgMC4wNDEyNSwgMC4wMzUsIDAuMDI4NzUsIDAuMDI1LCAwLjAxNjI1IiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDU2MjUsIDAuMDUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMjc1LCAwLjAxODc1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihRKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDIuNjY5MzM7Ci0gICAgZnVuY3Rpb24gOiAiTjMwIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBub25fdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJpc2luZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4MTczNCwgMC4xMTA2MDUsIDAuMTM3OTEyLCAwLjE1NzM4NSwgMC4xODg1MDYsIDAuMjE1NzQ2LCAwLjI1NDY1OSIsIFwKLSAgICAgICAgICAiMC4wOTAwMDgsIDAuMTE4ODc0LCAwLjE0NjE3OSwgMC4xNjU2MzgsIDAuMTk2Nzc3LCAwLjIyNDAyNiwgMC4yNjI5MzMiLCBcCi0gICAgICAgICAgIjAuMDk5MzksIDAuMTI4MjY2LCAwLjE1NTU3LCAwLjE3NTA0MywgMC4yMDYxNzEsIDAuMjMzNDI0LCAwLjI3MjMyNyIsIFwKLSAgICAgICAgICAiMC4xMDcwOSwgMC4xMzU5NjcsIDAuMTYzMjcsIDAuMTgyNzQ1LCAwLjIxMzg2NiwgMC4yNDExMDUsIDAuMjgwMDI0IiwgXAotICAgICAgICAgICIwLjExMzI4NSwgMC4xNDIxNjMsIDAuMTY5NDYxLCAwLjE4ODkzNSwgMC4yMjAwNjgsIDAuMjQ3MzE0LCAwLjI4NjIyMSIsIFwKLSAgICAgICAgICAiMC4xMjE0MTMsIDAuMTUwMzAzLCAwLjE3NzYsIDAuMTk3MDY4LCAwLjIyODE5NCwgMC4yNTU0MzEsIDAuMjk0MzU3IiwgXAotICAgICAgICAgICIwLjEyNzg4OCwgMC4xNTY3NjcsIDAuMTg0MDY5LCAwLjIwMzUyNywgMC4yMzQ2NjIsIDAuMjYxOTEzLCAwLjMwMDgyNSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxNzI3OCwgMC4wNzE2MTUsIDAuMTI4MjYsIDAuMTY5MDgxLCAwLjIzNDYyOCwgMC4yOTIwOCwgMC4zNzQxNjQiLCBcCi0gICAgICAgICAgIjAuMDE3Mjg5LCAwLjA3MTYyMSwgMC4xMjgyNjYsIDAuMTY5MDgsIDAuMjM0NTEsIDAuMjkyMjI5LCAwLjM3NDQzNyIsIFwKLSAgICAgICAgICAiMC4wMTcyNTgsIDAuMDcxNjIsIDAuMTI4MjYsIDAuMTY5MDgyLCAwLjIzNDUxNSwgMC4yOTE4NDYsIDAuMzc0NDQ2IiwgXAotICAgICAgICAgICIwLjAxNzI4NiwgMC4wNzE2MjEsIDAuMTI4MjU5LCAwLjE2ODk2OCwgMC4yMzQ2NDEsIDAuMjkyMDEsIDAuMzc0Mzk1IiwgXAotICAgICAgICAgICIwLjAxNzI5NSwgMC4wNzE2MjQsIDAuMTI4MjU0LCAwLjE2OTA3NiwgMC4yMzQ0MzksIDAuMjkyMjE3LCAwLjM3NDQxNSIsIFwKLSAgICAgICAgICAiMC4wMTcyOTIsIDAuMDcxNjQxLCAwLjEyODI2NCwgMC4xNjkwNzgsIDAuMjM0NTU2LCAwLjI5MTk1OSwgMC4zNzQ0NCIsIFwKLSAgICAgICAgICAiMC4wMTczLCAwLjA3MTcwOSwgMC4xMjgxODksIDAuMTY5MDg2LCAwLjIzNDYwNSwgMC4yOTE4NzgsIDAuMzczODQ1Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg4MzE0LCAwLjExODAxOCwgMC4xNDYyNzUsIDAuMTY2NDE4LCAwLjE5ODYzNiwgMC4yMjY4MTQsIDAuMjY3MDY5IiwgXAotICAgICAgICAgICIwLjA5NjYxNywgMC4xMjYzMTUsIDAuMTU0NTcyLCAwLjE3NDcxOCwgMC4yMDY5MzIsIDAuMjM1MTEsIDAuMjc1MzY1IiwgXAotICAgICAgICAgICIwLjEwNjA0LCAwLjEzNTc0MSwgMC4xNjM5OTYsIDAuMTg0MTQyLCAwLjIxNjM1OCwgMC4yNDQ1MzcsIDAuMjg0ODA3IiwgXAotICAgICAgICAgICIwLjExMzg2NCwgMC4xNDM1NjYsIDAuMTcxODI2LCAwLjE5MTk3MywgMC4yMjQxODMsIDAuMjUyMzY0LCAwLjI5MjYzMiIsIFwKLSAgICAgICAgICAiMC4xMiwgMC4xNDk3MDQsIDAuMTc3OTYyLCAwLjE5ODEwOCwgMC4yMzAzMiwgMC4yNTg1MTQsIDAuMjk4NzU0IiwgXAotICAgICAgICAgICIwLjEyODE0MSwgMC4xNTc4NTUsIDAuMTg2MTA3LCAwLjIwNjI0OSwgMC4yMzg0NjEsIDAuMjY2NjQ0LCAwLjMwNjkxNiIsIFwKLSAgICAgICAgICAiMC4xMzQ0MjUsIDAuMTY0MTI2LCAwLjE5MjM4MiwgMC4yMTI1MzEsIDAuMjQ0NzQ5LCAwLjI3MjkxOSwgMC4zMTMxNzQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTY3MzksIDAuMDcyNjIzLCAwLjEzMDU0NywgMC4xNzIxNDgsIDAuMjM5MzE2LCAwLjI5NzkwOSwgMC4zODE3MTEiLCBcCi0gICAgICAgICAgIjAuMDE2NzM0LCAwLjA3MjY3MiwgMC4xMzA1MTQsIDAuMTcyMTU3LCAwLjIzOTMyLCAwLjI5NzkwNiwgMC4zODE3MjIiLCBcCi0gICAgICAgICAgIjAuMDE2NzI4LCAwLjA3MjY2NCwgMC4xMzA1MTksIDAuMTcyMTYsIDAuMjM5MzQyLCAwLjI5NzkyNCwgMC4zODE4MDMiLCBcCi0gICAgICAgICAgIjAuMDE2NzM2LCAwLjA3MjY3NCwgMC4xMzA1MTcsIDAuMTcyMTYsIDAuMjM5Mjc1LCAwLjI5NzkyOSwgMC4zODE4IiwgXAotICAgICAgICAgICIwLjAxNjczNiwgMC4wNzI2NTYsIDAuMTMwNTE5LCAwLjE3MjE2MSwgMC4yMzkzMDcsIDAuMjk3OTA2LCAwLjM4MTczMiIsIFwKLSAgICAgICAgICAiMC4wMTY3MjUsIDAuMDcyNjc2LCAwLjEzMDUxOCwgMC4xNzIxMzQsIDAuMjM4OTQzLCAwLjI5NzkzNiwgMC4zODE4IiwgXAotICAgICAgICAgICIwLjAxNjcyOCwgMC4wNzI2MTUsIDAuMTMwNTIxLCAwLjE3MjIsIDAuMjM5MzI3LCAwLjI5Nzg2LCAwLjM4MTc1MSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyMDM4NiwgMC4wMjA2ODksIDAuMDIwNzczLCAwLjAyMDgsIDAuMDIwODI2LCAwLjAyMDg0LCAwLjAyMDg1MiIsIFwKLSAgICAgICAgICAiMC4wMjA0MDYsIDAuMDIwNjg5LCAwLjAyMDc2OSwgMC4wMjA3OTUsIDAuMDIwODIsIDAuMDIwODMzLCAwLjAyMDg1NCIsIFwKLSAgICAgICAgICAiMC4wMjA0NDQsIDAuMDIwNzQ5LCAwLjAyMDgzMywgMC4wMjA4NjIsIDAuMDIwODg4LCAwLjAyMDkwMSwgMC4wMjA5MjIiLCBcCi0gICAgICAgICAgIjAuMDIwNTU2LCAwLjAyMDg1NywgMC4wMjA5NCwgMC4wMjA5NjgsIDAuMDIwOTk1LCAwLjAyMTAwOSwgMC4wMjEwMjIiLCBcCi0gICAgICAgICAgIjAuMDIwNjgzLCAwLjAyMDk4MiwgMC4wMjEwNjUsIDAuMDIxMDk1LCAwLjAyMTEyMSwgMC4wMjExMzUsIDAuMDIxMTQ4IiwgXAotICAgICAgICAgICIwLjAyMDkxNiwgMC4wMjEyMDgsIDAuMDIxMjkzLCAwLjAyMTMyMSwgMC4wMjEzNDcsIDAuMDIxMzYxLCAwLjAyMTM4IiwgXAotICAgICAgICAgICIwLjAyMTEwOCwgMC4wMjE0MTYsIDAuMDIxNDkyLCAwLjAyMTUyMiwgMC4wMjE1NDUsIDAuMDIxNTY3LCAwLjAyMTU3NyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDIwNjE5LCAwLjAyMTA3NSwgMC4wMjEyMDIsIDAuMDIxMjQ1LCAwLjAyMTI4NywgMC4wMjEzMDYsIDAuMDIxMzI3IiwgXAotICAgICAgICAgICIwLjAyMDYzNSwgMC4wMjEwODEsIDAuMDIxMjA1LCAwLjAyMTI0OCwgMC4wMjEyODgsIDAuMDIxMzA5LCAwLjAyMTMyOCIsIFwKLSAgICAgICAgICAiMC4wMjA3MjMsIDAuMDIxMTc2LCAwLjAyMTMwMiwgMC4wMjEzNDUsIDAuMDIxMzg1LCAwLjAyMTQwNiwgMC4wMjE0MjUiLCBcCi0gICAgICAgICAgIjAuMDIwODM1LCAwLjAyMTI4OCwgMC4wMjE0MTIsIDAuMDIxNDU1LCAwLjAyMTQ5NSwgMC4wMjE1MTYsIDAuMDIxNTM3IiwgXAotICAgICAgICAgICIwLjAyMDk2OCwgMC4wMjE0MTksIDAuMDIxNTQ0LCAwLjAyMTU4OSwgMC4wMjE2MjgsIDAuMDIxNjQ4LCAwLjAyMTY2OSIsIFwKLSAgICAgICAgICAiMC4wMjEyNDQsIDAuMDIxNjk1LCAwLjAyMTgxNiwgMC4wMjE4NjIsIDAuMDIxOTAyLCAwLjAyMTkyNCwgMC4wMjE5NDMiLCBcCi0gICAgICAgICAgIjAuMDIxNDQyLCAwLjAyMTg5OSwgMC4wMjIwMjMsIDAuMDIyMDY4LCAwLjAyMjEwNSwgMC4wMjIxMjgsIDAuMDIyMTQ3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTRSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNzMzNTI7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNzMyOTI7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNzMzNTI7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA2NTk1LCAwLjAwNjU5MiwgMC4wMDY2NjksIDAuMDA2NzY4LCAwLjAwNjg5NCwgMC4wMDcxMDEsIDAuMDA3Mjk5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA4MzA5LCAwLjAwODMyNCwgMC4wMDg0NDksIDAuMDA4NjUyLCAwLjAwODkwNywgMC4wMDkzMjEsIDAuMDA5NzExIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEJlNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9TSV9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAxODc1LCAtMC4wMTM3NSwgLTAuMDA3NSwgLTAuMDA3NSwgLTAuMDAxMjUsIDAuMDAyNSwgMC4wMDUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMTI1LCAtMC4wMDg3NSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTUsIC0wLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMjEyNSwgLTAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAyNzUsIC0wLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDU4NzUsIC0wLjA1Mzc1LCAtMC4wNDc1LCAtMC4wNDc1LCAtMC4wNDEyNSwgLTAuMDM3NSwgLTAuMDM1IiwgXAotICAgICAgICAgICItMC4wNjc1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjA1LCAtMC4wNDYyNSwgLTAuMDQzNzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjI1LCAwLjAxMTI1LCAwLjAxNzUsIDAuMDIzNzUsIDAuMDMsIDAuMDQsIDAuMDQyNSIsIFwKLSAgICAgICAgICAiLTAuMDA1LCAwLjAwNjI1LCAwLjAxMjUsIDAuMDE4NzUsIDAuMDI1LCAwLjAyODc1LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjAxMTI1LCAtMC4wMDYyNSwgMC4wMDYyNSwgMC4wMTI1LCAwLjAxODc1LCAwLjAyMjUsIDAuMDI1IiwgXAotICAgICAgICAgICItMC4wMTc1LCAtMC4wMDYyNSwgMCwgMC4wMDYyNSwgMC4wMTI1LCAwLjAxNjI1LCAwLjAxODc1IiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAsIDAuMDA2MjUsIDAuMDEsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDI3NSwgLTAuMDIyNSwgLTAuMDEsIC0wLjAxLCAtMC4wMDM3NSwgMC4wMDYyNSwgMC4wMDg3NSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAtMC4wMDI1LCAwLjAwNjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIkQmIVNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMV9BTl9TSV9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAwNjI1LCAtMC4wMDEyNSwgMC4wMDUsIDAuMDExMjUsIDAuMDE3NSwgMC4wMjc1LCAwLjAzIiwgXAotICAgICAgICAgICItMC4wMTc1LCAtMC4wMDYyNSwgMCwgMC4wMDYyNSwgMC4wMTI1LCAwLjAxNjI1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLCAwLjAwNjI1LCAwLjAxLCAwLjAxODc1IiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLCAwLjAwMzc1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMjUsIC0wLjAxMjUsIC0wLjAwNjI1LCAtMC4wMDYyNSwgMC4wMDM3NSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDMzNzUsIC0wLjAyODc1LCAtMC4wMjI1LCAtMC4wMTYyNSwgLTAuMDEsIDAsIDAuMDAyNSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwODc1LCAwIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDMxMjUsIC0wLjAyNjI1LCAtMC4wMiwgLTAuMDIsIC0wLjAxMzc1LCAtMC4wMSwgLTAuMDA3NSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDI1LCAtMC4wMjEyNSwgLTAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAzMTI1LCAtMC4wMjc1LCAtMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjA1NSwgLTAuMDQzNzUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzc1LCAtMC4wMjc1LCAtMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjA1NSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDMzNzUsIC0wLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wNTg3NSwgLTAuMDUzNzUsIC0wLjA0NzUsIC0wLjA0NzUsIC0wLjA0MTI1LCAtMC4wMzc1LCAtMC4wMzUiLCBcCi0gICAgICAgICAgIi0wLjA2NzUsIC0wLjA1NjI1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wNCwgLTAuMDM3NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUQmU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1NJX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQzNzUsIDAuMDMyNSwgMC4wMjYyNSwgMC4wMjYyNSwgMC4wMiwgMC4wMTYyNSwgMC4wMTM3NSIsIFwKLSAgICAgICAgICAiMC4wNDg3NSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMjEyNSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4wNjEyNSwgMC4wNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzNzUsIDAuMDMzNzUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMDY3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1LCAwLjA0Mzc1LCAwLjA0LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIjAuMDczNzUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNSwgMC4wNDYyNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4wODM3NSwgMC4wNzg3NSwgMC4wNzI1LCAwLjA2NjI1LCAwLjA2LCAwLjA1NjI1LCAwLjA1Mzc1IiwgXAotICAgICAgICAgICIwLjA5MjUsIDAuMDgxMjUsIDAuMDc1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjUsIDAuMDYyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyNSwgMC4wMTM3NSwgMC4wMDc1LCAwLjAwMTI1LCAtMC4wMDUsIC0wLjAxNSwgLTAuMDE3NSIsIFwKLSAgICAgICAgICAiMC4wMywgMC4wMjUsIDAuMDEyNSwgMC4wMDYyNSwgMCwgLTAuMDAzNzUsIC0wLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMDQyNSwgMC4wMzEyNSwgMC4wMjUsIDAuMDE4NzUsIDAuMDEyNSwgMC4wMDI1LCAwIiwgXAotICAgICAgICAgICIwLjA0ODc1LCAwLjA0Mzc1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMTg3NSwgMC4wMDg3NSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiMC4wNTUsIDAuMDUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMjUsIDAuMDE1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMDY1LCAwLjA1Mzc1LCAwLjA0NzUsIDAuMDQxMjUsIDAuMDM1LCAwLjAyNSwgMC4wMjI1IiwgXAotICAgICAgICAgICIwLjA3Mzc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzM3NSwgMC4wMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIkQmIVNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMV9BTl9TSV9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzNzUsIDAuMDI2MjUsIDAuMDIsIDAuMDEzNzUsIDAuMDA3NSwgLTAuMDAyNSwgLTAuMDA1IiwgXAotICAgICAgICAgICIwLjA0MjUsIDAuMDM3NSwgMC4wMjUsIDAuMDE4NzUsIDAuMDEyNSwgMC4wMDg3NSwgMCIsIFwKLSAgICAgICAgICAiMC4wNDg3NSwgMC4wNDM3NSwgMC4wMzEyNSwgMC4wMjUsIDAuMDE4NzUsIDAuMDE1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICIwLjA1NSwgMC4wNSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMTUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4wNjEyNSwgMC4wNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyMTI1LCAwLjAxODc1IiwgXAotICAgICAgICAgICIwLjA2NSwgMC4wNTM3NSwgMC4wNDc1LCAwLjA0MTI1LCAwLjAzNSwgMC4wMjUsIDAuMDIyNSIsIFwKLSAgICAgICAgICAiMC4wNjc1LCAwLjA2MjUsIDAuMDUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzM3NSwgMC4wMjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTYyNSwgMC4wNDUsIDAuMDM4NzUsIDAuMDM4NzUsIDAuMDMyNSwgMC4wMjg3NSwgMC4wMjYyNSIsIFwKLSAgICAgICAgICAiMC4wNjEyNSwgMC4wNTYyNSwgMC4wNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzMzc1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNSwgMC4wNSwgMC4wNCwgMC4wMzc1IiwgXAotICAgICAgICAgICIwLjA3Mzc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDU2MjUsIDAuMDUsIDAuMDQ2MjUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMDgsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNTYyNSwgMC4wNTI1LCAwLjA1IiwgXAotICAgICAgICAgICIwLjA4Mzc1LCAwLjA3MjUsIDAuMDY2MjUsIDAuMDY2MjUsIDAuMDYsIDAuMDU2MjUsIDAuMDUzNzUiLCBcCi0gICAgICAgICAgIjAuMDg2MjUsIDAuMDc1LCAwLjA2ODc1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDU4NzUsIDAuMDU2MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFNJKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA5MzM4Mzc7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwOTMxMzY0OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDkzMzgzNzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDQwMzQsIDAuMDAzOTkxLCAwLjAwNDAxNSwgMC4wMDQwNzksIDAuMDA0MTYsIDAuMDA0MzIyLCAwLjAwNDUxMyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNzM4NywgMC4wMDczNTksIDAuMDA3MzgxLCAwLjAwNzQyNiwgMC4wMDc1MDcsIDAuMDA3NjQ1LCAwLjAwNzgxNCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJTRSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMjUsIC0wLjAyLCAtMC4wMTM3NSwgLTAuMDA3NSwgLTAuMDA3NSwgLTAuMDAzNzUsIC0wLjAwMTI1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwODc1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxNSwgLTAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDM3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAzMTI1LCAtMC4wMjEyNSwgLTAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAyNzUsIC0wLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDU4NzUsIC0wLjA1Mzc1LCAtMC4wNDc1LCAtMC4wNDc1LCAtMC4wNDEyNSwgLTAuMDM3NSwgLTAuMDM1IiwgXAotICAgICAgICAgICItMC4wNjc1LCAtMC4wNTYyNSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNSwgLTAuMDQ2MjUsIC0wLjA0Mzc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMCwgMC4wMDUsIDAuMDE3NSwgMC4wMTc1LCAwLjAyMzc1LCAwLjAzMzc1LCAwLjAzNjI1IiwgXAotICAgICAgICAgICItMC4wMDUsIDAsIDAuMDA2MjUsIDAuMDEyNSwgMC4wMTg3NSwgMC4wMjg3NSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDExMjUsIC0wLjAwNjI1LCAwLCAwLjAwNjI1LCAwLjAxMjUsIDAuMDIyNSwgMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjAxNzUsIC0wLjAxMjUsIDAsIDAuMDA2MjUsIDAuMDA2MjUsIDAuMDE2MjUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMCwgMC4wMDYyNSwgMC4wMSwgMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wMjc1LCAtMC4wMTYyNSwgLTAuMDEsIC0wLjAwMzc1LCAtMC4wMDM3NSwgMC4wMDYyNSwgMC4wMDg3NSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAyNSwgLTAuMDEyNSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAuMDAzNzUsIDAuMDA2MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlNFIjsKLSAgICAgIHNkZl9jb25kIDogIlNFID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0Mzc1LCAwLjAzODc1LCAwLjAzMjUsIDAuMDI2MjUsIDAuMDI2MjUsIDAuMDIyNSwgMC4wMTM3NSIsIFwKLSAgICAgICAgICAiMC4wNTUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMzEyNSwgMC4wMjc1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiMC4wNjEyNSwgMC4wNSwgMC4wNDM3NSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzMzc1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNSwgMC4wNDM3NSwgMC4wNCwgMC4wMzc1IiwgXAotICAgICAgICAgICIwLjA3Mzc1LCAwLjA2ODc1LCAwLjA1NjI1LCAwLjA1NjI1LCAwLjA1LCAwLjA0NjI1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjA4Mzc1LCAwLjA3MjUsIDAuMDY2MjUsIDAuMDY2MjUsIDAuMDYsIDAuMDU2MjUsIDAuMDUzNzUiLCBcCi0gICAgICAgICAgIjAuMDg2MjUsIDAuMDgxMjUsIDAuMDc1LCAwLjA2ODc1LCAwLjA2ODc1LCAwLjA2NSwgMC4wNTYyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzMTI1LCAwLjAyLCAwLjAxMzc1LCAwLjAwNzUsIDAuMDAxMjUsIC0wLjAwODc1LCAtMC4wMTEyNSIsIFwKLSAgICAgICAgICAiMC4wMzYyNSwgMC4wMjUsIDAuMDE4NzUsIDAuMDEyNSwgMC4wMDYyNSwgLTAuMDAzNzUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICIwLjA0MjUsIDAuMDM3NSwgMC4wMjUsIDAuMDE4NzUsIDAuMDEyNSwgMC4wMDI1LCAwIiwgXAotICAgICAgICAgICIwLjA0ODc1LCAwLjA0Mzc1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMTg3NSwgMC4wMDg3NSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiMC4wNTUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMjUsIDAuMDE1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMDU4NzUsIDAuMDUzNzUsIDAuMDQxMjUsIDAuMDM1LCAwLjAyODc1LCAwLjAyNSwgMC4wMTYyNSIsIFwKLSAgICAgICAgICAiMC4wNjc1LCAwLjA1NjI1LCAwLjA1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDI3NSwgMC4wMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IFNERkZOU1JYMiAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKFNERkZOU1JYMikgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAxLjUxMTk0OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIGZmIChOMzUsUUJJTlQpIHsKLSAgICBuZXh0X3N0YXRlIDogIigoU0UgU0kpICsgKCFTRSBEKSkiOwotICAgIGNsb2NrZWRfb24gOiAiKCFDS04pIjsKLSAgICBjbGVhciA6ICIoIVJOKSI7Ci0gICAgcHJlc2V0IDogIighU04pIjsKLSAgICBjbGVhcl9wcmVzZXRfdmFyMSA6IEg7Ci0gICAgY2xlYXJfcHJlc2V0X3ZhcjIgOiBMOwotICB9Ci0gIHBpbihDS04pICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYwMjM5ODsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MDIzOTg7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjAyMzMxOwotICAgIGNsb2NrIDogdHJ1ZTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDgyMjQsIDAuMDA4MjQxLCAwLjAwODMwMiwgMC4wMDg0MzYsIDAuMDA4NTYzLCAwLjAwODgxNCwgMC4wMDkwMzgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDQyLCAwLjAwNDE5NywgMC4wMDQyNTksIDAuMDA0MzU3LCAwLjAwNDQ4NSwgMC4wMDQ3MTMsIDAuMDA0OTU0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQmUk4mIVNFJiFTSSZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fUk5fRVFfMV9BTl9TRV9FUV8wX0FOX1NJX0VRXzBfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjA3NTgyNiwgMC4wODM5NTYsIDAuMDkyNzQ2LCAwLjA5OTM0NywgMC4xMDQ4NzIsIDAuMTExOSwgMC4xMTcxNjYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjEwNjgxLCAwLjExNDc0NSwgMC4xMjMzMDQsIDAuMTI5NzE3LCAwLjEzNDczNiwgMC4xNDE1MDQsIDAuMTQ2NTk0Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihEKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2NjkwNTk7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjY3ODQzOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDY2OTA1OTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDQxLCAwLjAwNDA3NywgMC4wMDQwODcsIDAuMDA0MTI3LCAwLjAwNDE3NiwgMC4wMDQyODUsIDAuMDA0NDAxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA2MzM4LCAwLjAwNjMyMSwgMC4wMDYzMywgMC4wMDYzNjgsIDAuMDA2NDE2LCAwLjAwNjUxNywgMC4wMDY2MjIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0tOIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9mYWxsaW5nOwotICAgICAgd2hlbiA6ICJSTiYhU0UmU04iOwotICAgICAgc2RmX2NvbmQgOiAiUk5fRVFfMV9BTl9TRV9FUV8wX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDEyNSwgLTAuMDA3NSwgLTAuMDAxMjUsIDAuMDA1LCAwLjAxMTI1LCAwLjAxNSwgMC4wMjM3NSIsIFwKLSAgICAgICAgICAiLTAuMDE3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAsIDAuMDA2MjUsIDAuMDEsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMCwgMC4wMDM3NSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAtMC4wMDI1LCAwIiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwODc1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDQ2MjUsIC0wLjA0MTI1LCAtMC4wMzUsIC0wLjAyODc1LCAtMC4wMjI1LCAtMC4wMTg3NSwgLTAuMDE2MjUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAzMTI1LCAtMC4wMjEyNSwgLTAuMDE4NzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMzc1LCAtMC4wMzI1LCAtMC4wMzI1LCAtMC4wMzI1LCAtMC4wMjYyNSwgLTAuMDIyNSwgLTAuMDI2MjUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDMzNzUsIC0wLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDQsIC0wLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjA2MTI1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjA1LCAtMC4wNSwgLTAuMDQ2MjUsIC0wLjA0Mzc1IiwgXAotICAgICAgICAgICItMC4wNjEyNSwgLTAuMDU2MjUsIC0wLjA1NjI1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjA1MjUsIC0wLjA1IiwgXAotICAgICAgICAgICItMC4wNzEyNSwgLTAuMDY2MjUsIC0wLjA2NjI1LCAtMC4wNiwgLTAuMDYsIC0wLjA1NjI1LCAtMC4wNTM3NSIsIFwKLSAgICAgICAgICAiLTAuMDczNzUsIC0wLjA2ODc1LCAtMC4wNjg3NSwgLTAuMDY4NzUsIC0wLjA2ODc1LCAtMC4wNjUsIC0wLjA2MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0tOIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfZmFsbGluZzsKLSAgICAgIHdoZW4gOiAiUk4mIVNFJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIlJOX0VRXzFfQU5fU0VfRVFfMF9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2ODc1LCAwLjA1NzUsIDAuMDUxMjUsIDAuMDQ1LCAwLjAzODc1LCAwLjAzNSwgMC4wMzI1IiwgXAotICAgICAgICAgICIwLjA3Mzc1LCAwLjA2ODc1LCAwLjA1NjI1LCAwLjA1LCAwLjA1LCAwLjA0LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIjAuMDgsIDAuMDc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDU2MjUsIDAuMDQ2MjUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMDkyNSwgMC4wODEyNSwgMC4wNzUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNTI1LCAwLjA1IiwgXAotICAgICAgICAgICIwLjA5ODc1LCAwLjA4NzUsIDAuMDgxMjUsIDAuMDc1LCAwLjA2ODc1LCAwLjA2NSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiMC4xMDI1LCAwLjA5NzUsIDAuMDg1LCAwLjA4NSwgMC4wNzg3NSwgMC4wNjg3NSwgMC4wNjYyNSIsIFwKLSAgICAgICAgICAiMC4xMTEyNSwgMC4xMDYyNSwgMC4wOTM3NSwgMC4wODc1LCAwLjA4MTI1LCAwLjA3NzUsIDAuMDc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg3NSwgMC4wNzYyNSwgMC4wNywgMC4wNjM3NSwgMC4wNTc1LCAwLjA1Mzc1LCAwLjA1MTI1IiwgXAotICAgICAgICAgICIwLjA5MjUsIDAuMDgxMjUsIDAuMDc1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDU4NzUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIjAuMDk4NzUsIDAuMDg3NSwgMC4wODEyNSwgMC4wNzUsIDAuMDY4NzUsIDAuMDY1LCAwLjA2MjUiLCBcCi0gICAgICAgICAgIjAuMTA1LCAwLjA5Mzc1LCAwLjA4NzUsIDAuMDgxMjUsIDAuMDgxMjUsIDAuMDcxMjUsIDAuMDY4NzUiLCBcCi0gICAgICAgICAgIjAuMTExMjUsIDAuMSwgMC4wOTM3NSwgMC4wODc1LCAwLjA4NzUsIDAuMDc3NSwgMC4wNzUiLCBcCi0gICAgICAgICAgIjAuMTIxMjUsIDAuMTEsIDAuMTAzNzUsIDAuMDk3NSwgMC4wOTEyNSwgMC4wODc1LCAwLjA4NSIsIFwKLSAgICAgICAgICAiMC4xMjM3NSwgMC4xMTg3NSwgMC4xMDYyNSwgMC4xMDYyNSwgMC4xLCAwLjA5NjI1LCAwLjA5Mzc1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihRKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuNjc5MjU2OwotICAgIGZ1bmN0aW9uIDogIk4zNSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0tOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5vbl91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogZmFsbGluZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDQxNTUsIDAuMTgzMDE1LCAwLjI0NTIyMiwgMC4zMjMzMzEsIDAuNDAxMTc2LCAwLjQ3OTA0MSwgMC41NTY4OTIiLCBcCi0gICAgICAgICAgIjAuMTEyMTQ5LCAwLjE5MDk3OCwgMC4yNTMzNjIsIDAuMzMxMzA1LCAwLjQwOTE3NiwgMC40ODcwNDksIDAuNTY0ODg2IiwgXAotICAgICAgICAgICIwLjEyMDY0NywgMC4xOTk1MDcsIDAuMjYxNzMyLCAwLjMzOTgyNCwgMC40MTc2NzUsIDAuNDk1NTQ3LCAwLjU3MzM4OCIsIFwKLSAgICAgICAgICAiMC4xMjY5MjUsIDAuMjA1ODE4LCAwLjI2Nzk2OSwgMC4zNDYxMTgsIDAuNDIzOTQ4LCAwLjUwMTgyLCAwLjU3OTc0NCIsIFwKLSAgICAgICAgICAiMC4xMzIxNTMsIDAuMjEwOTQzLCAwLjI3MzI2NCwgMC4zNTEyNTYsIDAuNDI5MTUzLCAwLjUwNjk2MiwgMC41ODQ4NDEiLCBcCi0gICAgICAgICAgIjAuMTM4ODM3LCAwLjIxNzY1OSwgMC4yODAyMDMsIDAuMzU3ODE5LCAwLjQzNTg2OCwgMC41MTM2NywgMC41OTE1NDkiLCBcCi0gICAgICAgICAgIjAuMTQzNzUyLCAwLjIyMjU2MywgMC4yODUwMDksIDAuMzYyNzU1LCAwLjQ0MDc4MSwgMC41MTg2NSwgMC41OTY0OTQiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQyOTcxLCAwLjIwMjk0MiwgMC4zMzM2ODksIDAuNDk4NzI2LCAwLjY2MzI4OSwgMC44Mjc5MjksIDAuOTkxNjE4IiwgXAotICAgICAgICAgICIwLjA0Mjk4OSwgMC4yMDI5MzUsIDAuMzMzNTg0LCAwLjQ5ODY0OSwgMC42NjMyODQsIDAuODI3OTI3LCAwLjk5MTQ3NiIsIFwKLSAgICAgICAgICAiMC4wNDI2OTcsIDAuMjAyOTM2LCAwLjMzMzUwOCwgMC40OTg3MiwgMC42NjMyODEsIDAuODI3OTE2LCAwLjk5MTQ3OSIsIFwKLSAgICAgICAgICAiMC4wNDI4LCAwLjIwMjkzNSwgMC4zMzM2OTgsIDAuNDk4Njk0LCAwLjY2MzI3OCwgMC44Mjc5MTQsIDAuOTkyNTI2IiwgXAotICAgICAgICAgICIwLjA0Mjg3NSwgMC4yMDI5MTgsIDAuMzMzNTYsIDAuNDk4NjY4LCAwLjY2MzM5OCwgMC44Mjc5NTcsIDAuOTkxNzExIiwgXAotICAgICAgICAgICIwLjA0MjgyNSwgMC4yMDI5MzQsIDAuMzMzNjE4LCAwLjQ5ODA5OSwgMC42NjMyODgsIDAuODI3MTY5LCAwLjk5MjUiLCBcCi0gICAgICAgICAgIjAuMDQyNjQ2LCAwLjIwMjcxNSwgMC4zMzM4OTEsIDAuNDk4MDgxLCAwLjY2MzIzOSwgMC44Mjc4NTQsIDAuOTkxNTI1Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5MjM4MiwgMC4xNjk0MTksIDAuMjMwNSwgMC4zMDYyOTcsIDAuMzgyNjYyLCAwLjQ1OTE2MSwgMC41MzQ5MzIiLCBcCi0gICAgICAgICAgIjAuMTAwMzIsIDAuMTc3NDExLCAwLjIzODM4NCwgMC4zMTQ1MDIsIDAuMzkwNjg1LCAwLjQ2Njc0LCAwLjU0MzEwMSIsIFwKLSAgICAgICAgICAiMC4xMDg4NzIsIDAuMTg1OTExLCAwLjI0Njk1OSwgMC4zMjI3NDMsIDAuMzk5MTYsIDAuNDc0OTk3LCAwLjU1MTcyMiIsIFwKLSAgICAgICAgICAiMC4xMTUzLCAwLjE5MjM1LCAwLjI1MzE4NCwgMC4zMjk0NSwgMC40MDUzMjgsIDAuNDgyMDM5LCAwLjU1ODA4OSIsIFwKLSAgICAgICAgICAiMC4xMjA0MTYsIDAuMTk3NDc1LCAwLjI1ODQ5NSwgMC4zMzQ1NjUsIDAuNDEwNTU1LCAwLjQ4NzA5OCwgMC41NjMyMyIsIFwKLSAgICAgICAgICAiMC4xMjcyMiwgMC4yMDQyODYsIDAuMjY1MjY3LCAwLjM0MTEyMiwgMC40MTczMSwgMC40OTM5ODUsIDAuNTY5ODk5IiwgXAotICAgICAgICAgICIwLjEzMjE3OCwgMC4yMDkzMzgsIDAuMjcwMjUsIDAuMzQ2Mzc3LCAwLjQyMjgzMSwgMC40OTgzMzQsIDAuNTc0OTA4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0MTA1OCwgMC4xOTU4MDQsIDAuMzIxMjM4LCAwLjQ3OTYxMywgMC42MzcxMDksIDAuNzk1NTA4LCAwLjk1MzUxMiIsIFwKLSAgICAgICAgICAiMC4wNDEwNzIsIDAuMTk1Nzg1LCAwLjMyMTI3NywgMC40Nzg4ODIsIDAuNjM2NTc4LCAwLjc5NTY4NCwgMC45NTM1MTIiLCBcCi0gICAgICAgICAgIjAuMDQxMDE3LCAwLjE5NTgwOSwgMC4zMjEzMTQsIDAuNDc5NjI4LCAwLjYzNTc4OSwgMC43OTU2NzksIDAuOTUyOTUyIiwgXAotICAgICAgICAgICIwLjA0MTA1LCAwLjE5NTgxMSwgMC4zMjEwMzQsIDAuNDc4MDM1LCAwLjYzNzY0NSwgMC43OTQ5NjQsIDAuOTUzNTI0IiwgXAotICAgICAgICAgICIwLjA0MTA3NiwgMC4xOTU4MTYsIDAuMzIxNDU5LCAwLjQ3OTYyLCAwLjYzNzUzNCwgMC43OTU2MSwgMC45NTM1MjYiLCBcCi0gICAgICAgICAgIjAuMDQwOTI5LCAwLjE5NTc5MywgMC4zMjEzOSwgMC40Nzk2MTMsIDAuNjM3NDU5LCAwLjc5NTUxLCAwLjk1MzYzIiwgXAotICAgICAgICAgICIwLjA0MTE1NSwgMC4xOTU5NzIsIDAuMzIxNDc2LCAwLjQ3ODcyOCwgMC42MzcyNzMsIDAuNzk1NjA0LCAwLjk1MzAzNiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogY2xlYXI7Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEyNDAzOSwgMC4yMDEsIDAuMjYxOTQ4LCAwLjMzODA0NiwgMC40MTQxNzUsIDAuNDkwNTc0LCAwLjU2NjU5MiIsIFwKLSAgICAgICAgICAiMC4xMzE5ODYsIDAuMjA5MTA0LCAwLjI2OTYxOSwgMC4zNDU2ODgsIDAuNDIyNDM0LCAwLjQ5ODQ1LCAwLjU3MzczNyIsIFwKLSAgICAgICAgICAiMC4xNDAxNDUsIDAuMjE3MTQ2LCAwLjI3ODEsIDAuMzUzODk5LCAwLjQzMDE3MywgMC41MDYyMzMsIDAuNTgyNjg5IiwgXAotICAgICAgICAgICIwLjE0NjI0MiwgMC4yMjMyMDgsIDAuMjgzOTg5LCAwLjM1OTk3LCAwLjQzNjY3OSwgMC41MTI3MDcsIDAuNTg4MTc3IiwgXAotICAgICAgICAgICIwLjE1MTAyMSwgMC4yMjgwMTksIDAuMjg4NjQ2LCAwLjM2NDg3NCwgMC40NDE0NDgsIDAuNTE3NDk2LCAwLjU5MzUzIiwgXAotICAgICAgICAgICIwLjE1NzQ2NSwgMC4yMzQ2MDQsIDAuMjk1Mzk5LCAwLjM3MTE3NSwgMC40NDc5MjYsIDAuNTIzOTQsIDAuNTk5OTkxIiwgXAotICAgICAgICAgICIwLjE2MjMwMywgMC4yMzkzNzcsIDAuMzAwMTk5LCAwLjM3NjI0NSwgMC40NTI1NjgsIDAuNTI4ODE2LCAwLjYwNDgwMyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDE0NjEsIDAuMTk1OTAxLCAwLjMyMTYyOCwgMC40NzkzNjcsIDAuNjM3MTc5LCAwLjc5NDk5OSwgMC45NTM0NCIsIFwKLSAgICAgICAgICAiMC4wNDEzMTIsIDAuMTk1ODc0LCAwLjMyMTYyNCwgMC40Nzk2NTUsIDAuNjM2OTY1LCAwLjc5NTM4NiwgMC45NTMzNyIsIFwKLSAgICAgICAgICAiMC4wNDEzNjgsIDAuMTk1ODcyLCAwLjMyMTcyMywgMC40Nzk1OTksIDAuNjM3NDExLCAwLjc5NTQ4NiwgMC45NTMzOTMiLCBcCi0gICAgICAgICAgIjAuMDQxMjksIDAuMTk1OTM3LCAwLjMyMTY4OCwgMC40Nzk4MDEsIDAuNjM3NDIzLCAwLjc5NTM0LCAwLjk1MzMzNyIsIFwKLSAgICAgICAgICAiMC4wNDEyOTYsIDAuMTk1OTQyLCAwLjMyMTY4NSwgMC40Nzk1MzksIDAuNjM3NDE3LCAwLjc5NTUxMSwgMC45NTMzNyIsIFwKLSAgICAgICAgICAiMC4wNDEyMzIsIDAuMTk1OTEsIDAuMzIxNzA1LCAwLjQ3OTI5OSwgMC42MzgxNTIsIDAuNzk1Mzk1LCAwLjk1MzU1MiIsIFwKLSAgICAgICAgICAiMC4wNDEyNTIsIDAuMTk1ODAyLCAwLjMyMTYxMywgMC40NzkyOTksIDAuNjM3NDMyLCAwLjc5NDg1NywgMC45NTMxNiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcHJlc2V0OwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTAzNywgMC4xNjkwODYsIDAuMjMxNjY0LCAwLjMwOTMwNCwgMC4zODc0ODEsIDAuNDY1MjkyLCAwLjU0MzA3IiwgXAotICAgICAgICAgICIwLjA5NzExOCwgMC4xNzU5MDcsIDAuMjM4Mzc3LCAwLjMxNjA5LCAwLjM5NDI2LCAwLjQ3MjA1OCwgMC41NDk4ODkiLCBcCi0gICAgICAgICAgIjAuMTA0OTg4LCAwLjE4MzY4NSwgMC4yNDYyNzksIDAuMzIzOTEsIDAuNDAyMDY0LCAwLjQ3OTg1MSwgMC41NTc2NzgiLCBcCi0gICAgICAgICAgIjAuMTEzNzU1LCAwLjE5MjQ1MywgMC4yNTQ5OTYsIDAuMzMyNjgyLCAwLjQxMDg1LCAwLjQ4ODY3LCAwLjU2NjQ5MyIsIFwKLSAgICAgICAgICAiMC4xMjExNiwgMC4xOTk4NiwgMC4yNjI0MzcsIDAuMzQwMDgsIDAuNDE4MjY0LCAwLjQ5NjA2MiwgMC41NzM3ODYiLCBcCi0gICAgICAgICAgIjAuMTMxMDQzLCAwLjIwOTc1MSwgMC4yNzIyOTcsIDAuMzUwMTU0LCAwLjQyNzg1OSwgMC41MDU4ODIsIDAuNTgzODI3IiwgXAotICAgICAgICAgICIwLjEzODM3MywgMC4yMTcxNzIsIDAuMjc5NjEyLCAwLjM1NzMwMSwgMC40MzUyNzQsIDAuNTEzMTE5LCAwLjU5MTE4OSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDIzNjEsIDAuMjAyODk4LCAwLjMzNDExOSwgMC40OTg3MDQsIDAuNjYzMzM2LCAwLjgyNzk5NCwgMC45OTI1NDUiLCBcCi0gICAgICAgICAgIjAuMDQyMzM0LCAwLjIwMjg5NCwgMC4zMzQxMTYsIDAuNDk4NDM5LCAwLjY2MzM0OSwgMC44MjgwMDEsIDAuOTkyNTkiLCBcCi0gICAgICAgICAgIjAuMDQyMzA0LCAwLjIwMjksIDAuMzM0MTE0LCAwLjQ5ODQ3LCAwLjY2MzM0MSwgMC44Mjc5NiwgMC45OTI1NzgiLCBcCi0gICAgICAgICAgIjAuMDQyMjY1LCAwLjIwMjkyMiwgMC4zMzQwODgsIDAuNDk4NzE1LCAwLjY2MzMyOSwgMC44Mjc5OTEsIDAuOTkyNTQyIiwgXAotICAgICAgICAgICIwLjA0MjM2MywgMC4yMDI5MjEsIDAuMzM0MTAyLCAwLjQ5ODEyOCwgMC42NjMzNCwgMC44MjgwMDMsIDAuOTkyNjA2IiwgXAotICAgICAgICAgICIwLjA0MjYxNSwgMC4yMDI4NTksIDAuMzM0MDk0LCAwLjQ5ODY2NSwgMC42NjMyODUsIDAuODI3ODc5LCAwLjk5MjQ3MyIsIFwKLSAgICAgICAgICAiMC4wNDI4MTgsIDAuMjAyODEyLCAwLjMzNDA1MywgMC40OTg2NzIsIDAuNjYzMjUzLCAwLjgyNzg3NSwgMC45OTI0NTIiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTEwNTY1LCAwLjE4NzU5MywgMC4yNDg2MTksIDAuMzI0NzQxLCAwLjQwMDcxMywgMC40NzcyOSwgMC41NTMyNjIiLCBcCi0gICAgICAgICAgIjAuMTE3MTc3LCAwLjE5NDIzOCwgMC4yNTUxNzksIDAuMzMxMjA1LCAwLjQwNzczNSwgMC40ODM4MiwgMC41NTk0OTgiLCBcCi0gICAgICAgICAgIjAuMTI0Njc1LCAwLjIwMTU4LCAwLjI2MjY5LCAwLjMzODQ1NCwgMC40MTQ4NTUsIDAuNDkwNzUxLCAwLjU2NzM5OSIsIFwKLSAgICAgICAgICAiMC4xMzE5ODcsIDAuMjA5MDExLCAwLjI2OTc3MiwgMC4zNDU3ODIsIDAuNDIyNTkyLCAwLjQ5ODYxMywgMC41NzQxMjIiLCBcCi0gICAgICAgICAgIjAuMTM4Nzc2LCAwLjIxNTY4OSwgMC4yNzY4MjQsIDAuMzUyODU0LCAwLjQyODc3MSwgMC41MDU0NjQsIDAuNTgwNTEiLCBcCi0gICAgICAgICAgIjAuMTQ4NDMxLCAwLjIyNTUxOCwgMC4yODY0NjIsIDAuMzYyODQ1LCAwLjQzODc3NCwgMC41MTUxNTcsIDAuNTkxMTQyIiwgXAotICAgICAgICAgICIwLjE1NTgyMywgMC4yMzMwNDIsIDAuMjkzNzUxLCAwLjM2OTY5NiwgMC40NDU3MzIsIDAuNTIyMDYxLCAwLjU5Nzc3MyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDEzODEsIDAuMTk1ODk0LCAwLjMyMTcxOCwgMC40Nzk3ODUsIDAuNjM3Mjk0LCAwLjc5NTM2LCAwLjk1MzE4NSIsIFwKLSAgICAgICAgICAiMC4wNDEyODQsIDAuMTk1ODQ3LCAwLjMyMTc5OSwgMC40Nzg5MjQsIDAuNjM2NzcsIDAuNzk1MjU5LCAwLjk1MzM5IiwgXAotICAgICAgICAgICIwLjA0MTI2MiwgMC4xOTU4NDMsIDAuMzIxNzAzLCAwLjQ3ODYyOCwgMC42Mzc2NTksIDAuNzk1MzYzLCAwLjk1MzQyMSIsIFwKLSAgICAgICAgICAiMC4wNDEyNzQsIDAuMTk1Njg0LCAwLjMyMTYwMywgMC40NzkxMjIsIDAuNjM3MjE5LCAwLjc5NTM3NCwgMC45NTM1MzgiLCBcCi0gICAgICAgICAgIjAuMDQxMzA4LCAwLjE5NDY0MSwgMC4zMjE3LCAwLjQ3ODM2NiwgMC42MzczMTksIDAuNzk1NDQxLCAwLjk1MzQ5OSIsIFwKLSAgICAgICAgICAiMC4wNDE0NjQsIDAuMTk1ODEzLCAwLjMyMTc1NCwgMC40Nzg5NDYsIDAuNjM3MDM2LCAwLjc5NTQ5MywgMC45NTM0MjIiLCBcCi0gICAgICAgICAgIjAuMDQxNzg2LCAwLjE5NTUxNiwgMC4zMjE1ODQsIDAuNDc5NjA1LCAwLjYzNzYxOSwgMC43OTU1MiwgMC45NTMxNDEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDS04iOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNzI1NiwgMC4wMDcyOTksIDAuMDA3MzA1LCAwLjAwNzMwOCwgMC4wMDczMSwgMC4wMDczMTEsIDAuMDA3MzEyIiwgXAotICAgICAgICAgICIwLjAwNzI2MywgMC4wMDczMDYsIDAuMDA3MzEyLCAwLjAwNzMxNSwgMC4wMDczMTcsIDAuMDA3MzE4LCAwLjAwNzMyIiwgXAotICAgICAgICAgICIwLjAwNzMwMSwgMC4wMDczNDUsIDAuMDA3MzUxLCAwLjAwNzM1NCwgMC4wMDczNTUsIDAuMDA3MzU2LCAwLjAwNzM1NyIsIFwKLSAgICAgICAgICAiMC4wMDczNjMsIDAuMDA3NDA2LCAwLjAwNzQxMiwgMC4wMDc0MTUsIDAuMDA3NDE3LCAwLjAwNzQxOCwgMC4wMDc0MTkiLCBcCi0gICAgICAgICAgIjAuMDA3NDM4LCAwLjAwNzQ4MSwgMC4wMDc0ODcsIDAuMDA3NDksIDAuMDA3NDkyLCAwLjAwNzQ5NCwgMC4wMDc0OTMiLCBcCi0gICAgICAgICAgIjAuMDA3NTUxLCAwLjAwNzU5NywgMC4wMDc2MDQsIDAuMDA3NTg4LCAwLjAwNzYwOSwgMC4wMDc2MDgsIDAuMDA3NjEiLCBcCi0gICAgICAgICAgIjAuMDA3NjM2LCAwLjAwNzY3NywgMC4wMDc2ODQsIDAuMDA3Njg3LCAwLjAwNzY4OCwgMC4wMDc2OSwgMC4wMDc2ODkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDY3NCwgMC4wMDY3ODUsIDAuMDA2NzkxLCAwLjAwNjc5NCwgMC4wMDY3OTUsIDAuMDA2Nzk2LCAwLjAwNjc5NyIsIFwKLSAgICAgICAgICAiMC4wMDY3MzYsIDAuMDA2NzgxLCAwLjAwNjc4NywgMC4wMDY3OTEsIDAuMDA2NzkxLCAwLjAwNjc5MiwgMC4wMDY3OTMiLCBcCi0gICAgICAgICAgIjAuMDA2NzcsIDAuMDA2ODE1LCAwLjAwNjgyMSwgMC4wMDY4MjQsIDAuMDA2ODI3LCAwLjAwNjgyNywgMC4wMDY4MjciLCBcCi0gICAgICAgICAgIjAuMDA2ODE5LCAwLjAwNjg2NiwgMC4wMDY4NzIsIDAuMDA2ODc1LCAwLjAwNjg3OSwgMC4wMDY4NzgsIDAuMDA2ODc5IiwgXAotICAgICAgICAgICIwLjAwNjg5MSwgMC4wMDY5MzQsIDAuMDA2OTQxLCAwLjAwNjk0OCwgMC4wMDY5NDYsIDAuMDA2OTQ2LCAwLjAwNjk0NyIsIFwKLSAgICAgICAgICAiMC4wMDY5NzQsIDAuMDA3MDIxLCAwLjAwNzAyOCwgMC4wMDcwMzEsIDAuMDA3MDMzLCAwLjAwNzAzNCwgMC4wMDcwMzQiLCBcCi0gICAgICAgICAgIjAuMDA3MDczLCAwLjAwNzExOCwgMC4wMDcxMjcsIDAuMDA3MTI3LCAwLjAwNzEzMSwgMC4wMDcxMzEsIDAuMDA3MTMyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUk4iOwotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwODMwMiwgMC4wMDgzMjcsIDAuMDA4MzIsIDAuMDA4MzE0LCAwLjAwODMxLCAwLjAwODMwNywgMC4wMDgzMDYiLCBcCi0gICAgICAgICAgIjAuMDA4MzA0LCAwLjAwODMyNywgMC4wMDgzMiwgMC4wMDgzMTQsIDAuMDA4MzEsIDAuMDA4MzA3LCAwLjAwODMwNSIsIFwKLSAgICAgICAgICAiMC4wMDgzMzIsIDAuMDA4MzU2LCAwLjAwODM1MSwgMC4wMDgzNDQsIDAuMDA4MzQsIDAuMDA4MzM5LCAwLjAwODMzNSIsIFwKLSAgICAgICAgICAiMC4wMDgzNzgsIDAuMDA4NDAyLCAwLjAwODM5NSwgMC4wMDgzODgsIDAuMDA4Mzg0LCAwLjAwODM4MSwgMC4wMDgzNzgiLCBcCi0gICAgICAgICAgIjAuMDA4NDI4LCAwLjAwODQ1MiwgMC4wMDg0NDYsIDAuMDA4NDM5LCAwLjAwODQzNCwgMC4wMDg0MzEsIDAuMDA4NDI4IiwgXAotICAgICAgICAgICIwLjAwODUzMiwgMC4wMDg1NjEsIDAuMDA4NTU0LCAwLjAwODU0NywgMC4wMDg1NDIsIDAuMDA4NTQsIDAuMDA4NTM2IiwgXAotICAgICAgICAgICIwLjAwODYyLCAwLjAwODY0NCwgMC4wMDg2NDEsIDAuMDA4NjMzLCAwLjAwODYyOCwgMC4wMDg2MjQsIDAuMDA4NjIxIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3Bvd2VyKHNjYWxhcikgewotICAgICAgICB2YWx1ZXMoIjAiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA3NjQ3LCAwLjAwNzY4OCwgMC4wMDc2OTIsIDAuMDA3Njk1LCAwLjAwNzY5NywgMC4wMDc2OTcsIDAuMDA3NzAxIiwgXAotICAgICAgICAgICIwLjAwNzYzMiwgMC4wMDc2NzQsIDAuMDA3Njc5LCAwLjAwNzY4MiwgMC4wMDc2ODMsIDAuMDA3NjgzLCAwLjAwNzY4NCIsIFwKLSAgICAgICAgICAiMC4wMDc2NTEsIDAuMDA3NjkzLCAwLjAwNzY5NiwgMC4wMDc3LCAwLjAwNzcwMSwgMC4wMDc3MDEsIDAuMDA3NzAyIiwgXAotICAgICAgICAgICIwLjAwNzY4NCwgMC4wMDc3MzEsIDAuMDA3NzM2LCAwLjAwNzczOSwgMC4wMDc3NDEsIDAuMDA3NzQxLCAwLjAwNzc0MiIsIFwKLSAgICAgICAgICAiMC4wMDc3NDMsIDAuMDA3Nzg2LCAwLjAwNzc5MiwgMC4wMDc3OTQsIDAuMDA3Nzk1LCAwLjAwNzc5NSwgMC4wMDc3OTciLCBcCi0gICAgICAgICAgIjAuMDA3ODYsIDAuMDA3ODk4LCAwLjAwNzkwMywgMC4wMDc5MDUsIDAuMDA3OTA2LCAwLjAwNzkwNywgMC4wMDc5MDkiLCBcCi0gICAgICAgICAgIjAuMDA3OTc3LCAwLjAwODAxNSwgMC4wMDgwMiwgMC4wMDgwMjIsIDAuMDA4MDI0LCAwLjAwODAyNCwgMC4wMDgwMjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDY1MzgsIDAuMDA2NTgxLCAwLjAwNjU4NiwgMC4wMDY1ODksIDAuMDA2NTkxLCAwLjAwNjU5MSwgMC4wMDY1OTIiLCBcCi0gICAgICAgICAgIjAuMDA2NTEyLCAwLjAwNjU1MywgMC4wMDY1NTgsIDAuMDA2NTYxLCAwLjAwNjU2MiwgMC4wMDY1NjMsIDAuMDA2NTYzIiwgXAotICAgICAgICAgICIwLjAwNjUwMywgMC4wMDY1NDIsIDAuMDA2NTU0LCAwLjAwNjU1MSwgMC4wMDY1NTIsIDAuMDA2NTUzLCAwLjAwNjU1NCIsIFwKLSAgICAgICAgICAiMC4wMDY1MDYsIDAuMDA2NTQ3LCAwLjAwNjU1MywgMC4wMDY1NTYsIDAuMDA2NTU3LCAwLjAwNjU1OCwgMC4wMDY1NjIiLCBcCi0gICAgICAgICAgIjAuMDA2NTE4LCAwLjAwNjU2MiwgMC4wMDY1NjgsIDAuMDA2NTcxLCAwLjAwNjU3MywgMC4wMDY1NzQsIDAuMDA2NTc3IiwgXAotICAgICAgICAgICIwLjAwNjU2OCwgMC4wMDY2MTUsIDAuMDA2NjIxLCAwLjAwNjYyNSwgMC4wMDY2MjYsIDAuMDA2NjI3LCAwLjAwNjYyOCIsIFwKLSAgICAgICAgICAiMC4wMDY2MjQsIDAuMDA2NjYxLCAwLjAwNjY2OCwgMC4wMDY2NzEsIDAuMDA2NjcyLCAwLjAwNjY3MywgMC4wMDY2NzMiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFFOKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuNjcyNzY3OwotICAgIGZ1bmN0aW9uIDogIlFCSU5UIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDS04iOwotICAgICAgdGltaW5nX3NlbnNlIDogbm9uX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiBmYWxsaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwNjgxLCAwLjE4NDk2NSwgMC4yNDc2MDcsIDAuMzI1ODg5LCAwLjQwNDI4LCAwLjQ4MjY2OSwgMC41NjA4NjciLCBcCi0gICAgICAgICAgIjAuMTE0NzQ1LCAwLjE5MjkwMiwgMC4yNTU1MywgMC4zMzM4NTksIDAuNDEyMTY0LCAwLjQ5MDQ2NiwgMC41Njg4ODciLCBcCi0gICAgICAgICAgIjAuMTIzMzA2LCAwLjIwMTQ2LCAwLjI2NDA5OSwgMC4zNDIzODgsIDAuNDIwNzc3LCAwLjQ5OTAyNSwgMC41Nzc0NzgiLCBcCi0gICAgICAgICAgIjAuMTI5NzIyLCAwLjIwNzg4LCAwLjI3MDQ3LCAwLjM0ODgxMywgMC40MjcxMzQsIDAuNTA1NTYzLCAwLjU4Mzg3IiwgXAotICAgICAgICAgICIwLjEzNDg0MSwgMC4yMTMwMTcsIDAuMjc1NjQ5LCAwLjM1MzkyNiwgMC40MzIzMTQsIDAuNTEwNjA4LCAwLjU4OTAwOCIsIFwKLSAgICAgICAgICAiMC4xNDE2NDcsIDAuMjE5ODE0LCAwLjI4MjQ0MSwgMC4zNjA3MjgsIDAuNDM5MTAyLCAwLjUxNzUxMywgMC41OTU2NzQiLCBcCi0gICAgICAgICAgIjAuMTQ2NjA5LCAwLjIyNDc3MiwgMC4yODc0MDIsIDAuMzY1NzA2LCAwLjQ0NDEyNSwgMC41MjIzNzYsIDAuNjAwNzMzIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzOTgzMiwgMC4yMDUwMjUsIDAuMzM4NzM2LCAwLjUwNTQxNCwgMC42NzIxNjIsIDAuODM5MTMsIDEuMDA3MzciLCBcCi0gICAgICAgICAgIjAuMDM5ODM1LCAwLjIwNTAyOCwgMC4zMzg3MzYsIDAuNTA1MTk2LCAwLjY3MzE3NywgMC44NDAyNzgsIDEuMDA2MDEiLCBcCi0gICAgICAgICAgIjAuMDM5ODI5LCAwLjIwNTAyNiwgMC4zMzg3NDUsIDAuNTA1NDU4LCAwLjY3MTg1NiwgMC44Mzk0MTksIDEuMDA1ODEiLCBcCi0gICAgICAgICAgIjAuMDM5ODMzLCAwLjIwNTAyOSwgMC4zMzgzNDQsIDAuNTA0ODM3LCAwLjY3MjQzNSwgMC44Mzg5MjIsIDEuMDA2MDEiLCBcCi0gICAgICAgICAgIjAuMDM5ODI4LCAwLjIwNTAzMywgMC4zMzg3NzMsIDAuNTA2MDI2LCAwLjY3MjI0OCwgMC44MzkzNjksIDEuMDA2MDIiLCBcCi0gICAgICAgICAgIjAuMDM5ODA0LCAwLjIwNTAyNSwgMC4zMzg3NDQsIDAuNTA1NDQ4LCAwLjY3MjIwOSwgMC44MzkxMzMsIDEuMDA2NDIiLCBcCi0gICAgICAgICAgIjAuMDM5ODMxLCAwLjIwNTA4OCwgMC4zMzg3NjcsIDAuNTA1OTY1LCAwLjY3MzAzOSwgMC44MzkyNzUsIDEuMDA2MTYiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTE5ODk3LCAwLjE5NTksIDAuMjU2NzA4LCAwLjMzMjc0LCAwLjQwODc2MSwgMC40ODQ3OTUsIDAuNTYwODY1IiwgXAotICAgICAgICAgICIwLjEyNzg5NSwgMC4yMDM4OTQsIDAuMjY0NzExLCAwLjM0MDcyOSwgMC40MTY3NTgsIDAuNDkyNzk1LCAwLjU2ODg1MyIsIFwKLSAgICAgICAgICAiMC4xMzYzNzQsIDAuMjEyMzg4LCAwLjI3MzE5OCwgMC4zNDkyMjcsIDAuNDI1MjQ5LCAwLjUwMTI4NiwgMC41NzczNDciLCBcCi0gICAgICAgICAgIjAuMTQyNjYsIDAuMjE4NjY1LCAwLjI3OTQ3LCAwLjM1NTUwNywgMC40MzE1MjQsIDAuNTA3NTYsIDAuNTgzNjM1IiwgXAotICAgICAgICAgICIwLjE0Nzg3OSwgMC4yMjM4NjgsIDAuMjg0NjY2LCAwLjM2MDY5OSwgMC40MzY3MzUsIDAuNTEyNzgzLCAwLjU4ODgxNyIsIFwKLSAgICAgICAgICAiMC4xNTQ1NjEsIDAuMjMwNTYxLCAwLjI5MTM5NCwgMC4zNjczOTcsIDAuNDQzNDI3LCAwLjUxOTQ3OCwgMC41OTU0NTkiLCBcCi0gICAgICAgICAgIjAuMTU5NDgxLCAwLjIzNTUwMiwgMC4yOTYzMSwgMC4zNzIzMjksIDAuNDQ4MzU5LCAwLjUyNDM5NCwgMC42MDA0NTgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM4MTE3LCAwLjE5Mzk3NSwgMC4zMjAwMjUsIDAuNDc4NDc3LCAwLjYzNjQ3MSwgMC43OTQ2MTcsIDAuOTUxODI5IiwgXAotICAgICAgICAgICIwLjAzODExNCwgMC4xOTM5NjQsIDAuMzE5ODk5LCAwLjQ3ODM4OSwgMC42MzY0NjMsIDAuNzk0NjAxLCAwLjk1MTc2MyIsIFwKLSAgICAgICAgICAiMC4wMzgxMDYsIDAuMTkzOTcyLCAwLjMxOTc5NiwgMC40Nzg0NjQsIDAuNjM2NDU1LCAwLjc5NDU4MywgMC45NTE3NjQiLCBcCi0gICAgICAgICAgIjAuMDM4MTEzLCAwLjE5Mzk4LCAwLjMyMDAyMSwgMC40Nzg0NDcsIDAuNjM2NDUsIDAuNzk0NTgyLCAwLjk1Mjc2MiIsIFwKLSAgICAgICAgICAiMC4wMzgxMTcsIDAuMTkzOTQ3LCAwLjMxOTkwMywgMC40Nzg0MTEsIDAuNjM2NjQ1LCAwLjc5NDY2NCwgMC45NTE5MTIiLCBcCi0gICAgICAgICAgIjAuMDM4MTAxLCAwLjE5Mzk2NywgMC4zMTk5NjUsIDAuNDc3ODkzLCAwLjYzNjQ2LCAwLjc5Mzk2NiwgMC45NTI3MTIiLCBcCi0gICAgICAgICAgIjAuMDM4MjU0LCAwLjE5Mzg3MywgMC4zMjAyMjEsIDAuNDc3OTYzLCAwLjYzNjM3NCwgMC43OTQ0NzMsIDAuOTUxNzUyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiBwcmVzZXQ7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEzODQzMSwgMC4yMTY1OTMsIDAuMjc5MjA5LCAwLjM1NzUwNCwgMC40MzU4MzMsIDAuNTE0MjU4LCAwLjU5MjU1MSIsIFwKLSAgICAgICAgICAiMC4xNDYzODYsIDAuMjI0NTIxLCAwLjI4NzA4MywgMC4zNjU0NDgsIDAuNDQzODU0LCAwLjUyMjE0OSwgMC42MDAyODMiLCBcCi0gICAgICAgICAgIjAuMTU0NTE5LCAwLjIzMjY1NCwgMC4yOTUyOTgsIDAuMzczNTk0LCAwLjQ1MTk0OSwgMC41MzAyNywgMC42MDg2MjEiLCBcCi0gICAgICAgICAgIjAuMTYwNjM5LCAwLjIzODc1NywgMC4zMDEzMzUsIDAuMzc5Njk2LCAwLjQ1ODA5OCwgMC41MzYzOTgsIDAuNjE0NDg4IiwgXAotICAgICAgICAgICIwLjE2NTQxNSwgMC4yNDM1MzcsIDAuMzA2MTAyLCAwLjM4NDQ4NCwgMC40NjI4NzEsIDAuNTQxMTgsIDAuNjE5NDg2IiwgXAotICAgICAgICAgICIwLjE3MTg5OSwgMC4yNTAwOTMsIDAuMzEyNjYyLCAwLjM5MDk2OSwgMC40NjkzNzcsIDAuNTQ3Njc0LCAwLjYyNTk2OSIsIFwKLSAgICAgICAgICAiMC4xNzY2OTgsIDAuMjU0ODMxLCAwLjMxNzQ0NiwgMC4zOTU3OCwgMC40NzQxMTEsIDAuNTUyNDg2LCAwLjYzMDc2OSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzk4NzIsIDAuMjA1MDU5LCAwLjMzODgxNSwgMC41MDU5NzcsIDAuNjczMTQ5LCAwLjg0MDMsIDEuMDA3MzciLCBcCi0gICAgICAgICAgIjAuMDM5ODcsIDAuMjA1MDUsIDAuMzM4ODE0LCAwLjUwNjAyMywgMC42NzMxMzMsIDAuODQwMzAxLCAxLjAwNzM3IiwgXAotICAgICAgICAgICIwLjAzOTg3NSwgMC4yMDUwNjEsIDAuMzM4ODM3LCAwLjUwNTQyMywgMC42NzIyODUsIDAuODQwMjkxLCAxLjAwNzM3IiwgXAotICAgICAgICAgICIwLjAzOTg3LCAwLjIwNTA2LCAwLjMzODgzLCAwLjUwNTM4MywgMC42NzIxNSwgMC44NDAyODEsIDEuMDA2MTUiLCBcCi0gICAgICAgICAgIjAuMDM5ODY5LCAwLjIwNTA3MSwgMC4zMzg4MzEsIDAuNTA1MzI4LCAwLjY3MzA4NywgMC44NDAyNjYsIDEuMDA3MzciLCBcCi0gICAgICAgICAgIjAuMDM5OTA2LCAwLjIwNTA1MSwgMC4zMzg4MjgsIDAuNTA1NDA4LCAwLjY3MjE2MywgMC44NDAyNTMsIDEuMDA3NDUiLCBcCi0gICAgICAgICAgIjAuMDM5OTEyLCAwLjIwNTAyMiwgMC4zMzg3OTksIDAuNTA1MjM5LCAwLjY3MzEzLCAwLjg0MDIwNCwgMS4wMDczNyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogY2xlYXI7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEyNDkzLCAwLjIwMzA4OCwgMC4yNjU3MTYsIDAuMzQzOTg3LCAwLjQyMjM2NywgMC41MDA3NjIsIDAuNTc5MDMxIiwgXAotICAgICAgICAgICIwLjEzMTU3MSwgMC4yMDk2OTcsIDAuMjcyMzE3LCAwLjM1MDY0OCwgMC40MjkwMjQsIDAuNTA3MzQyLCAwLjU4NTYyMiIsIFwKLSAgICAgICAgICAiMC4xMzkwNzQsIDAuMjE3MTYxLCAwLjI3OTgxNCwgMC4zNTgxMTgsIDAuNDM2NDcsIDAuNTE0NjY0LCAwLjU5MzE1NyIsIFwKLSAgICAgICAgICAiMC4xNDYzODUsIDAuMjI0NTA3LCAwLjI4NzA4NCwgMC4zNjU0NDEsIDAuNDQzODU0LCAwLjUyMjE0NywgMC42MDAyNzMiLCBcCi0gICAgICAgICAgIjAuMTUzMTcyLCAwLjIzMTI2OSwgMC4yOTM5MjIsIDAuMzcyMTg3LCAwLjQ1MDQ0MiwgMC41Mjg5NTQsIDAuNjA2OTkiLCBcCi0gICAgICAgICAgIjAuMTYyNzg3LCAwLjI0MDkwNCwgMC4zMDM1MjQsIDAuMzgxODM3LCAwLjQ2MDE2MywgMC41Mzg1NzIsIDAuNjE2ODM4IiwgXAotICAgICAgICAgICIwLjE3MDE4MiwgMC4yNDgzNDQsIDAuMzEwOTM3LCAwLjM4OTIzOSwgMC40Njc1ODEsIDAuNTQ1OTE4LCAwLjYyNDE5OSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzk4NzcsIDAuMjA1MDU5LCAwLjMzODgzOSwgMC41MDU5MiwgMC42NzIxMDcsIDAuODQwMjM4LCAxLjAwNzM2IiwgXAotICAgICAgICAgICIwLjAzOTg2OSwgMC4yMDUwNDcsIDAuMzM4ODEzLCAwLjUwNTM2MywgMC42NzE5ODUsIDAuODQwMjM3LCAxLjAwNzM2IiwgXAotICAgICAgICAgICIwLjAzOTg3MSwgMC4yMDUwNTEsIDAuMzM4ODM1LCAwLjUwNTk3OCwgMC42NzI0MiwgMC44NDAxOTEsIDEuMDA3MzUiLCBcCi0gICAgICAgICAgIjAuMDM5ODcxLCAwLjIwNDg2OCwgMC4zMzg4MTcsIDAuNTA1NDQ3LCAwLjY3MjE3LCAwLjgzOTQyOCwgMS4wMDY4NyIsIFwKLSAgICAgICAgICAiMC4wMzk4NzQsIDAuMjA0ODE2LCAwLjMzODgzNSwgMC41MDU4MjcsIDAuNjcyNjU5LCAwLjgzOTU5NiwgMS4wMDYwNCIsIFwKLSAgICAgICAgICAiMC4wMzk4ODksIDAuMjA1MDE3LCAwLjMzODc4MSwgMC41MDUzNjgsIDAuNjczMTM4LCAwLjgzOTEyLCAxLjAwNzQxIiwgXAotICAgICAgICAgICIwLjA0MDAyNywgMC4yMDQ4NzUsIDAuMzM4NzkzLCAwLjUwNTQ4NywgMC42NzIzODksIDAuODM5NTUzLCAxLjAwNjMyIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwNjIwMSwgMC4xODIyNDksIDAuMjQzMDg0LCAwLjMxOTExLCAwLjM5NTE4OCwgMC40NzEyMDIsIDAuNTQ3MTkxIiwgXAotICAgICAgICAgICIwLjExMjk0NCwgMC4xODg5NjEsIDAuMjQ5NzkzLCAwLjMyNTc5LCAwLjQwMTkxNCwgMC40Nzc5MjYsIDAuNTUzOTU0IiwgXAotICAgICAgICAgICIwLjEyMDgxOCwgMC4xOTY4MzgsIDAuMjU3Njg1LCAwLjMzMzY5MywgMC40MDk3ODIsIDAuNDg1NzkxLCAwLjU2MTgwMyIsIFwKLSAgICAgICAgICAiMC4xMjk1NzgsIDAuMjA1NTk0LCAwLjI2NjQzLCAwLjM0MjQ1MSwgMC40MTg1NDMsIDAuNDk0NTY4LCAwLjU3MDU5MyIsIFwKLSAgICAgICAgICAiMC4xMzY5NzYsIDAuMjEzMDAyLCAwLjI3Mzg0MiwgMC4zNDk4NiwgMC40MjU5NDksIDAuNTAxOTYzLCAwLjU3Nzk1NCIsIFwKLSAgICAgICAgICAiMC4xNDY4MzMsIDAuMjIyODU3LCAwLjI4MzY4OCwgMC4zNTk3MTEsIDAuNDM1NzYzLCAwLjUxMTc4MiwgMC41ODc4NjkiLCBcCi0gICAgICAgICAgIjAuMTU0MTUzLCAwLjIzMDE4NCwgMC4yOTEwMDYsIDAuMzY3MDIyLCAwLjQ0MzA2MiwgMC41MTkxMDYsIDAuNTk1MjA1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzODA4NiwgMC4xOTQwMjUsIDAuMzIwNDU1LCAwLjQ3ODQ5OSwgMC42MzY1NywgMC43OTQ3MjcsIDAuOTUyODE1IiwgXAotICAgICAgICAgICIwLjAzODA3MSwgMC4xOTQwMTcsIDAuMzIwNDQ3LCAwLjQ3ODIwMSwgMC42MzY2MTcsIDAuNzk0NzU4LCAwLjk1Mjg0NCIsIFwKLSAgICAgICAgICAiMC4wMzgwNzQsIDAuMTk0MDUxLCAwLjMyMDQ0MiwgMC40NzgyMywgMC42MzY1NzMsIDAuNzk0Njc3LCAwLjk1Mjg4MiIsIFwKLSAgICAgICAgICAiMC4wMzgwNzMsIDAuMTk0MDM2LCAwLjMyMDQzOSwgMC40Nzg1MzQsIDAuNjM2NTYzLCAwLjc5NDc1NiwgMC45NTI3NzgiLCBcCi0gICAgICAgICAgIjAuMDM4MDc4LCAwLjE5NDA0MywgMC4zMjA0MzUsIDAuNDc4MDM3LCAwLjYzNjU4MywgMC43OTQ3MzIsIDAuOTUyODUyIiwgXAotICAgICAgICAgICIwLjAzODA5NywgMC4xOTQwMDcsIDAuMzIwMzg5LCAwLjQ3ODQyMSwgMC42MzY0OTYsIDAuNzk0NTYyLCAwLjk1MjYzNyIsIFwKLSAgICAgICAgICAiMC4wMzgxMTgsIDAuMTkzOTQ4LCAwLjMyMDM5NCwgMC40Nzg0MzEsIDAuNjM2NDE5LCAwLjc5NDU0LCAwLjk1MjYyNyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2NzQsIDAuMDA2Nzg1LCAwLjAwNjc5MSwgMC4wMDY3OTQsIDAuMDA2Nzk1LCAwLjAwNjc5NiwgMC4wMDY3OTciLCBcCi0gICAgICAgICAgIjAuMDA2NzM2LCAwLjAwNjc4MSwgMC4wMDY3ODcsIDAuMDA2NzkxLCAwLjAwNjc5MSwgMC4wMDY3OTIsIDAuMDA2NzkzIiwgXAotICAgICAgICAgICIwLjAwNjc3LCAwLjAwNjgxNSwgMC4wMDY4MjEsIDAuMDA2ODI0LCAwLjAwNjgyNywgMC4wMDY4MjcsIDAuMDA2ODI3IiwgXAotICAgICAgICAgICIwLjAwNjgxOSwgMC4wMDY4NjYsIDAuMDA2ODcyLCAwLjAwNjg3NSwgMC4wMDY4NzksIDAuMDA2ODc4LCAwLjAwNjg3OSIsIFwKLSAgICAgICAgICAiMC4wMDY4OTEsIDAuMDA2OTM0LCAwLjAwNjk0MSwgMC4wMDY5NDgsIDAuMDA2OTQ2LCAwLjAwNjk0NiwgMC4wMDY5NDciLCBcCi0gICAgICAgICAgIjAuMDA2OTc0LCAwLjAwNzAyMSwgMC4wMDcwMjgsIDAuMDA3MDMxLCAwLjAwNzAzMywgMC4wMDcwMzQsIDAuMDA3MDM0IiwgXAotICAgICAgICAgICIwLjAwNzA3MywgMC4wMDcxMTgsIDAuMDA3MTI3LCAwLjAwNzEyNywgMC4wMDcxMzEsIDAuMDA3MTMxLCAwLjAwNzEzMiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNzI1NiwgMC4wMDcyOTksIDAuMDA3MzA1LCAwLjAwNzMwOCwgMC4wMDczMSwgMC4wMDczMTEsIDAuMDA3MzEyIiwgXAotICAgICAgICAgICIwLjAwNzI2MywgMC4wMDczMDYsIDAuMDA3MzEyLCAwLjAwNzMxNSwgMC4wMDczMTcsIDAuMDA3MzE4LCAwLjAwNzMyIiwgXAotICAgICAgICAgICIwLjAwNzMwMSwgMC4wMDczNDUsIDAuMDA3MzUxLCAwLjAwNzM1NCwgMC4wMDczNTUsIDAuMDA3MzU2LCAwLjAwNzM1NyIsIFwKLSAgICAgICAgICAiMC4wMDczNjMsIDAuMDA3NDA2LCAwLjAwNzQxMiwgMC4wMDc0MTUsIDAuMDA3NDE3LCAwLjAwNzQxOCwgMC4wMDc0MTkiLCBcCi0gICAgICAgICAgIjAuMDA3NDM4LCAwLjAwNzQ4MSwgMC4wMDc0ODcsIDAuMDA3NDksIDAuMDA3NDkyLCAwLjAwNzQ5NCwgMC4wMDc0OTMiLCBcCi0gICAgICAgICAgIjAuMDA3NTUxLCAwLjAwNzU5NywgMC4wMDc2MDQsIDAuMDA3NTg4LCAwLjAwNzYwOSwgMC4wMDc2MDgsIDAuMDA3NjEiLCBcCi0gICAgICAgICAgIjAuMDA3NjM2LCAwLjAwNzY3NywgMC4wMDc2ODQsIDAuMDA3Njg3LCAwLjAwNzY4OCwgMC4wMDc2OSwgMC4wMDc2ODkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA4MzAyLCAwLjAwODMyNywgMC4wMDgzMiwgMC4wMDgzMTQsIDAuMDA4MzEsIDAuMDA4MzA3LCAwLjAwODMwNiIsIFwKLSAgICAgICAgICAiMC4wMDgzMDQsIDAuMDA4MzI3LCAwLjAwODMyLCAwLjAwODMxNCwgMC4wMDgzMSwgMC4wMDgzMDcsIDAuMDA4MzA1IiwgXAotICAgICAgICAgICIwLjAwODMzMiwgMC4wMDgzNTYsIDAuMDA4MzUxLCAwLjAwODM0NCwgMC4wMDgzNCwgMC4wMDgzMzksIDAuMDA4MzM1IiwgXAotICAgICAgICAgICIwLjAwODM3OCwgMC4wMDg0MDIsIDAuMDA4Mzk1LCAwLjAwODM4OCwgMC4wMDgzODQsIDAuMDA4MzgxLCAwLjAwODM3OCIsIFwKLSAgICAgICAgICAiMC4wMDg0MjgsIDAuMDA4NDUyLCAwLjAwODQ0NiwgMC4wMDg0MzksIDAuMDA4NDM0LCAwLjAwODQzMSwgMC4wMDg0MjgiLCBcCi0gICAgICAgICAgIjAuMDA4NTMyLCAwLjAwODU2MSwgMC4wMDg1NTQsIDAuMDA4NTQ3LCAwLjAwODU0MiwgMC4wMDg1NCwgMC4wMDg1MzYiLCBcCi0gICAgICAgICAgIjAuMDA4NjIsIDAuMDA4NjQ0LCAwLjAwODY0MSwgMC4wMDg2MzMsIDAuMDA4NjI4LCAwLjAwODYyNCwgMC4wMDg2MjEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoc2NhbGFyKSB7Ci0gICAgICAgIHZhbHVlcygiMCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDY1MzgsIDAuMDA2NTgxLCAwLjAwNjU4NiwgMC4wMDY1ODksIDAuMDA2NTkxLCAwLjAwNjU5MSwgMC4wMDY1OTIiLCBcCi0gICAgICAgICAgIjAuMDA2NTEyLCAwLjAwNjU1MywgMC4wMDY1NTgsIDAuMDA2NTYxLCAwLjAwNjU2MiwgMC4wMDY1NjMsIDAuMDA2NTYzIiwgXAotICAgICAgICAgICIwLjAwNjUwMywgMC4wMDY1NDIsIDAuMDA2NTU0LCAwLjAwNjU1MSwgMC4wMDY1NTIsIDAuMDA2NTUzLCAwLjAwNjU1NCIsIFwKLSAgICAgICAgICAiMC4wMDY1MDYsIDAuMDA2NTQ3LCAwLjAwNjU1MywgMC4wMDY1NTYsIDAuMDA2NTU3LCAwLjAwNjU1OCwgMC4wMDY1NjIiLCBcCi0gICAgICAgICAgIjAuMDA2NTE4LCAwLjAwNjU2MiwgMC4wMDY1NjgsIDAuMDA2NTcxLCAwLjAwNjU3MywgMC4wMDY1NzQsIDAuMDA2NTc3IiwgXAotICAgICAgICAgICIwLjAwNjU2OCwgMC4wMDY2MTUsIDAuMDA2NjIxLCAwLjAwNjYyNSwgMC4wMDY2MjYsIDAuMDA2NjI3LCAwLjAwNjYyOCIsIFwKLSAgICAgICAgICAiMC4wMDY2MjQsIDAuMDA2NjYxLCAwLjAwNjY2OCwgMC4wMDY2NzEsIDAuMDA2NjcyLCAwLjAwNjY3MywgMC4wMDY2NzMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDc2NDcsIDAuMDA3Njg4LCAwLjAwNzY5MiwgMC4wMDc2OTUsIDAuMDA3Njk3LCAwLjAwNzY5NywgMC4wMDc3MDEiLCBcCi0gICAgICAgICAgIjAuMDA3NjMyLCAwLjAwNzY3NCwgMC4wMDc2NzksIDAuMDA3NjgyLCAwLjAwNzY4MywgMC4wMDc2ODMsIDAuMDA3Njg0IiwgXAotICAgICAgICAgICIwLjAwNzY1MSwgMC4wMDc2OTMsIDAuMDA3Njk2LCAwLjAwNzcsIDAuMDA3NzAxLCAwLjAwNzcwMSwgMC4wMDc3MDIiLCBcCi0gICAgICAgICAgIjAuMDA3Njg0LCAwLjAwNzczMSwgMC4wMDc3MzYsIDAuMDA3NzM5LCAwLjAwNzc0MSwgMC4wMDc3NDEsIDAuMDA3NzQyIiwgXAotICAgICAgICAgICIwLjAwNzc0MywgMC4wMDc3ODYsIDAuMDA3NzkyLCAwLjAwNzc5NCwgMC4wMDc3OTUsIDAuMDA3Nzk1LCAwLjAwNzc5NyIsIFwKLSAgICAgICAgICAiMC4wMDc4NiwgMC4wMDc4OTgsIDAuMDA3OTAzLCAwLjAwNzkwNSwgMC4wMDc5MDYsIDAuMDA3OTA3LCAwLjAwNzkwOSIsIFwKLSAgICAgICAgICAiMC4wMDc5NzcsIDAuMDA4MDE1LCAwLjAwODAyLCAwLjAwODAyMiwgMC4wMDgwMjQsIDAuMDA4MDI0LCAwLjAwODAyNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUk4pICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY5NzI4ODsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2OTcyODg7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjk3MjE5OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDYyNiwgMC4wMDA2MzEsIDAuMDAwNjg5LCAwLjAwMDc4NCwgMC4wMDA4OTUsIDAuMDAxMDk5LCAwLjAwMTI5NiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzE3MSwgMC4wMDMxNzQsIDAuMDAzMjMsIDAuMDAzMzI2LCAwLjAwMzQzNCwgMC4wMDM2NTYsIDAuMDAzODYyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRCYhU0UmIVNJJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9TRV9FUV8wX0FOX1NJX0VRXzBfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjEzODQzMSwgMC4xNDYzODYsIDAuMTU0NTEzLCAwLjE2MDYzOSwgMC4xNjU0MTUsIDAuMTcxODUyLCAwLjE3NjY5OCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDS04iOwotICAgICAgdGltaW5nX3R5cGUgOiByZWNvdmVyeV9mYWxsaW5nOwotICAgICAgd2hlbiA6ICJTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJTTiA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChyZWNvdmVyeV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzEyNSwgMC4wMiwgMC4wMTM3NSwgMC4wMDc1LCAwLjAwMTI1LCAtMC4wMDg3NSwgLTAuMDExMjUiLCBcCi0gICAgICAgICAgIjAuMDQyNSwgMC4wMzEyNSwgMC4wMTg3NSwgMC4wMTI1LCAwLjAxMjUsIDAuMDAyNSwgMCIsIFwKLSAgICAgICAgICAiMC4wNDg3NSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMTg3NSwgMC4wMDg3NSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiMC4wNTUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMjUsIDAuMDE1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMDU1LCAwLjA1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDI1LCAwLjAyMTI1LCAwLjAxODc1IiwgXAotICAgICAgICAgICIwLjA2NSwgMC4wNTM3NSwgMC4wNDc1LCAwLjA0MTI1LCAwLjAzNSwgMC4wMjUsIDAuMDIyNSIsIFwKLSAgICAgICAgICAiMC4wNjc1LCAwLjA2MjUsIDAuMDUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzM3NSwgMC4wMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiU04iOwotICAgICAgdGltaW5nX3R5cGUgOiByZWNvdmVyeV9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEJiFTRSYhU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1NFX0VRXzBfQU5fU0lfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChyZWNvdmVyeV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTYyNSwgMC4wNjEyNSwgMC4wNjc1LCAwLjA3Mzc1LCAwLjA3Mzc1LCAwLjA4Mzc1LCAwLjA5MjUiLCBcCi0gICAgICAgICAgIjAuMDQ1LCAwLjA1NjI1LCAwLjA2MjUsIDAuMDYyNSwgMC4wNjg3NSwgMC4wNzg3NSwgMC4wODc1IiwgXAotICAgICAgICAgICIwLjA0NSwgMC4wNSwgMC4wNTYyNSwgMC4wNjI1LCAwLjA2ODc1LCAwLjA3MjUsIDAuMDgxMjUiLCBcCi0gICAgICAgICAgIjAuMDM4NzUsIDAuMDQzNzUsIDAuMDUsIDAuMDU2MjUsIDAuMDYyNSwgMC4wNzI1LCAwLjA4MTI1IiwgXAotICAgICAgICAgICIwLjAzODc1LCAwLjA0Mzc1LCAwLjA1LCAwLjA1NjI1LCAwLjA2MjUsIDAuMDcyNSwgMC4wNzUiLCBcCi0gICAgICAgICAgIjAuMDM1LCAwLjA0LCAwLjA0NjI1LCAwLjA1MjUsIDAuMDU4NzUsIDAuMDY4NzUsIDAuMDcxMjUiLCBcCi0gICAgICAgICAgIjAuMDMyNSwgMC4wMzc1LCAwLjA0Mzc1LCAwLjA1LCAwLjA1NjI1LCAwLjA2NjI1LCAwLjA2ODc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJlbW92YWxfZmFsbGluZzsKLSAgICAgIHdoZW4gOiAiU04iOwotICAgICAgc2RmX2NvbmQgOiAiU04gPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQocmVtb3ZhbF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMCwgMC4wMDUsIDAuMDE3NSwgMC4wMjM3NSwgMC4wMjM3NSwgMC4wMzM3NSwgMC4wMzYyNSIsIFwKLSAgICAgICAgICAiLTAuMDExMjUsIDAsIDAuMDA2MjUsIDAuMDEyNSwgMC4wMTg3NSwgMC4wMjI1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wMTc1LCAtMC4wMDYyNSwgMCwgMC4wMDYyNSwgMC4wMTI1LCAwLjAxNjI1LCAwLjAxODc1IiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAsIDAuMDA2MjUsIDAuMDEsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAsIDAuMDAzNzUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDMzNzUsIC0wLjAyODc1LCAtMC4wMTYyNSwgLTAuMDEsIC0wLjAwMzc1LCAwLCAwLjAwMjUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDAyNSwgMCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oU0UpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTI0OTU4OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTI0OTU4OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTI0ODc3OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNjA3MywgMC4wMDYwODQsIDAuMDA2MTU4LCAwLjAwNjI5OCwgMC4wMDY0MTMsIDAuMDA2NjM2LCAwLjAwNjc4OCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwODI1NiwgMC4wMDgyNjksIDAuMDA4Mzc0LCAwLjAwODUyNSwgMC4wMDg3MjcsIDAuMDA5MDkyLCAwLjAwOTQwOCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDS04iOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX2ZhbGxpbmc7Ci0gICAgICB3aGVuIDogIlJOJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIlJOX0VRXzFfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMDYyNSwgLTAuMDAxMjUsIDAuMDA1LCAwLjAxMTI1LCAwLjAxNzUsIDAuMDIxMjUsIDAuMDIzNzUiLCBcCi0gICAgICAgICAgIi0wLjAxNzUsIC0wLjAwNjI1LCAwLCAwLjAwNjI1LCAwLjAwNjI1LCAwLjAxNjI1LCAwLjAxODc1IiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLCAwLjAwMzc1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgLTAuMDAyNSwgMCIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDg3NSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA0NjI1LCAtMC4wNDEyNSwgLTAuMDM1LCAtMC4wMjg3NSwgLTAuMDIyNSwgLTAuMDE4NzUsIC0wLjAxNjI1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMjc1LCAtMC4wMTg3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAyNSwgLTAuMDEzNzUsIC0wLjAwNzUsIC0wLjAwMTI1LCAwLjAwNSwgMC4wMDg3NSwgMC4wMTEyNSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAyNSwgLTAuMDEyNSwgLTAuMDEyNSwgLTAuMDA2MjUsIC0wLjAwMjUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA4NzUsIDAiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTg3NSwgLTAuMDA4NzUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDE1LCAtMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wNTI1LCAtMC4wNDEyNSwgLTAuMDM1LCAtMC4wMjg3NSwgLTAuMDI4NzUsIC0wLjAxODc1LCAtMC4wMTYyNSIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAzMTI1LCAtMC4wMjEyNSwgLTAuMDE4NzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0tOIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfZmFsbGluZzsKLSAgICAgIHdoZW4gOiAiUk4mU04iOwotICAgICAgc2RmX2NvbmQgOiAiUk5fRVFfMV9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5Mzc1LCAwLjA4MjUsIDAuMDc2MjUsIDAuMDcsIDAuMDYzNzUsIDAuMDYsIDAuMDU3NSIsIFwKLSAgICAgICAgICAiMC4wOTg3NSwgMC4wOTM3NSwgMC4wODEyNSwgMC4wNzUsIDAuMDc1LCAwLjA3MTI1LCAwLjA2ODc1IiwgXAotICAgICAgICAgICIwLjExMTI1LCAwLjEsIDAuMDg3NSwgMC4wODc1LCAwLjA4MTI1LCAwLjA3NzUsIDAuMDc1IiwgXAotICAgICAgICAgICIwLjExMTI1LCAwLjEwNjI1LCAwLjA5Mzc1LCAwLjA4NzUsIDAuMDg3NSwgMC4wODM3NSwgMC4wODEyNSIsIFwKLSAgICAgICAgICAiMC4xMTc1LCAwLjEwNjI1LCAwLjEsIDAuMDkzNzUsIDAuMDg3NSwgMC4wODM3NSwgMC4wODEyNSIsIFwKLSAgICAgICAgICAiMC4xMjEyNSwgMC4xMTYyNSwgMC4xMDM3NSwgMC4wOTc1LCAwLjA5NzUsIDAuMDg3NSwgMC4wODUiLCBcCi0gICAgICAgICAgIjAuMTIzNzUsIDAuMTE4NzUsIDAuMTA2MjUsIDAuMTA2MjUsIDAuMSwgMC4wOTYyNSwgMC4wOTM3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4MTI1LCAwLjA3LCAwLjA2Mzc1LCAwLjA1NzUsIDAuMDUxMjUsIDAuMDQ3NSwgMC4wNDUiLCBcCi0gICAgICAgICAgIjAuMDg2MjUsIDAuMDgxMjUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNjI1LCAwLjA1ODc1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICIwLjA5ODc1LCAwLjA4NzUsIDAuMDgxMjUsIDAuMDc1LCAwLjA2ODc1LCAwLjA2NSwgMC4wNjI1IiwgXAotICAgICAgICAgICIwLjEwNSwgMC4xLCAwLjA4NzUsIDAuMDgxMjUsIDAuMDgxMjUsIDAuMDc3NSwgMC4wNzUiLCBcCi0gICAgICAgICAgIjAuMTE3NSwgMC4xMDYyNSwgMC4xLCAwLjA5Mzc1LCAwLjA4NzUsIDAuMDgzNzUsIDAuMDgxMjUiLCBcCi0gICAgICAgICAgIjAuMTI3NSwgMC4xMTYyNSwgMC4xMSwgMC4xMDM3NSwgMC4wOTc1LCAwLjA5Mzc1LCAwLjA5MTI1IiwgXAotICAgICAgICAgICIwLjEzNjI1LCAwLjEyNSwgMC4xMTg3NSwgMC4xMTI1LCAwLjEwNjI1LCAwLjEwMjUsIDAuMSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oU0kpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY5NDQyMzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2OTM0OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDY5NDQyMzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDM4MjMsIDAuMDAzODAyLCAwLjAwMzgxNiwgMC4wMDM4NTQsIDAuMDAzOTEyLCAwLjAwNDAzNCwgMC4wMDQxMzciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDY1MDksIDAuMDA2NDk1LCAwLjAwNjUwNywgMC4wMDY1NDQsIDAuMDA2NTk2LCAwLjAwNjcsIDAuMDA2ODA0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfZmFsbGluZzsKLSAgICAgIHdoZW4gOiAiUk4mU0UmU04iOwotICAgICAgc2RmX2NvbmQgOiAiUk5fRVFfMV9BTl9TRV9FUV8xX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDEyNSwgLTAuMDAxMjUsIDAuMDA1LCAwLjAxMTI1LCAwLjAxMTI1LCAwLjAxNSwgMC4wMjM3NSIsIFwKLSAgICAgICAgICAiLTAuMDE3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAsIDAuMDA2MjUsIDAuMDEsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAsIDAuMDAzNzUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgLTAuMDAyNSwgMCIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDg3NSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA0NjI1LCAtMC4wMzUsIC0wLjAyODc1LCAtMC4wMjg3NSwgLTAuMDIyNSwgLTAuMDE4NzUsIC0wLjAxIiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAyMTI1LCAtMC4wMTg3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAzNzUsIC0wLjAzMjUsIC0wLjAzMjUsIC0wLjAzMjUsIC0wLjAyNjI1LCAtMC4wMjg3NSwgLTAuMDI2MjUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzNzUsIC0wLjAzNzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMzM3NSwgLTAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjA0Mzc1LCAtMC4wNDM3NSwgLTAuMDQsIC0wLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjA1NSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNSwgLTAuMDUsIC0wLjA0NjI1LCAtMC4wNDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDYxMjUsIC0wLjA1NjI1LCAtMC4wNTYyNSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNTI1LCAtMC4wNSIsIFwKLSAgICAgICAgICAiLTAuMDcxMjUsIC0wLjA2NjI1LCAtMC4wNjYyNSwgLTAuMDYsIC0wLjA2LCAtMC4wNTYyNSwgLTAuMDUzNzUiLCBcCi0gICAgICAgICAgIi0wLjA3Mzc1LCAtMC4wNjg3NSwgLTAuMDY4NzUsIC0wLjA2ODc1LCAtMC4wNjg3NSwgLTAuMDY1LCAtMC4wNjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX2ZhbGxpbmc7Ci0gICAgICB3aGVuIDogIlJOJlNFJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIlJOX0VRXzFfQU5fU0VfRVFfMV9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2ODc1LCAwLjA1NzUsIDAuMDUxMjUsIDAuMDQ1LCAwLjAzODc1LCAwLjAzNSwgMC4wMzI1IiwgXAotICAgICAgICAgICIwLjA3Mzc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDUsIDAuMDQzNzUsIDAuMDQsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiMC4wOCwgMC4wNzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNTYyNSwgMC4wNDYyNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4wODYyNSwgMC4wODEyNSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA2MjUsIDAuMDUyNSwgMC4wNSIsIFwKLSAgICAgICAgICAiMC4wOTI1LCAwLjA4NzUsIDAuMDc1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNTg3NSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiMC4xMDI1LCAwLjA5NzUsIDAuMDg1LCAwLjA3ODc1LCAwLjA3ODc1LCAwLjA2ODc1LCAwLjA2NjI1IiwgXAotICAgICAgICAgICIwLjExMTI1LCAwLjEsIDAuMDkzNzUsIDAuMDg3NSwgMC4wODEyNSwgMC4wNzc1LCAwLjA3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4NzUsIDAuMDc2MjUsIDAuMDcsIDAuMDYzNzUsIDAuMDU3NSwgMC4wNTM3NSwgMC4wNTEyNSIsIFwKLSAgICAgICAgICAiMC4wOTI1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1ODc1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICIwLjA5ODc1LCAwLjA4NzUsIDAuMDgxMjUsIDAuMDc1LCAwLjA2ODc1LCAwLjA2NSwgMC4wNjI1IiwgXAotICAgICAgICAgICIwLjEwNSwgMC4wOTM3NSwgMC4wODc1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNzEyNSwgMC4wNjg3NSIsIFwKLSAgICAgICAgICAiMC4xMTEyNSwgMC4xLCAwLjA5Mzc1LCAwLjA4NzUsIDAuMDgxMjUsIDAuMDc3NSwgMC4wNzUiLCBcCi0gICAgICAgICAgIjAuMTIxMjUsIDAuMTEsIDAuMTAzNzUsIDAuMDk3NSwgMC4wOTEyNSwgMC4wODc1LCAwLjA4NSIsIFwKLSAgICAgICAgICAiMC4xMjM3NSwgMC4xMTg3NSwgMC4xMDYyNSwgMC4xLCAwLjEsIDAuMDk2MjUsIDAuMDg3NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oU04pICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTg2NzA0OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTg2Njc4OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTg2NzA0OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDU5MywgMC4wMDA1OTMsIDAuMDAwNTkzLCAwLjAwMDU5MywgMC4wMDA1OTIsIDAuMDAwNTkyLCAwLjAwMDU5MiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDYwMiwgMC4wMDA1OTUsIDAuMDAwNTk2LCAwLjAwMDU5NSwgMC4wMDA1OTUsIDAuMDAwNTk1LCAwLjAwMDU5NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQmIVJOJiFTRSYhU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1JOX0VRXzBfQU5fU0VfRVFfMF9BTl9TSV9FUV8wID09IDEnYjEiOwotICAgICAgZmFsbF9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMTA2MTgyLCAwLjExMjkzMywgMC4xMjA4MTgsIDAuMTI5NTc4LCAwLjEzNjk3NiwgMC4xNDY4MzMsIDAuMTU0MTUzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJlY292ZXJ5X2ZhbGxpbmc7Ci0gICAgICB3aGVuIDogIlJOIjsKLSAgICAgIHNkZl9jb25kIDogIlJOID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHJlY292ZXJ5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzMTI1LCAwLjAyLCAwLjAxMzc1LCAwLjAwNzUsIDAuMDAxMjUsIC0wLjAwMjUsIC0wLjAxMTI1IiwgXAotICAgICAgICAgICIwLjAzNjI1LCAwLjAyNSwgMC4wMTg3NSwgMC4wMTI1LCAwLjAwNjI1LCAwLjAwMjUsIDAiLCBcCi0gICAgICAgICAgIjAuMDQyNSwgMC4wMzEyNSwgMC4wMjUsIDAuMDE4NzUsIDAuMDEyNSwgMC4wMDg3NSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiMC4wNDg3NSwgMC4wNDM3NSwgMC4wMzEyNSwgMC4wMjUsIDAuMDI1LCAwLjAxNSwgMC4wMTI1IiwgXAotICAgICAgICAgICIwLjA1NSwgMC4wNSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAzMTI1LCAwLjAyMTI1LCAwLjAxODc1IiwgXAotICAgICAgICAgICIwLjA3MTI1LCAwLjA2LCAwLjA0NzUsIDAuMDQ3NSwgMC4wNDEyNSwgMC4wMzEyNSwgMC4wMjg3NSIsIFwKLSAgICAgICAgICAiMC4wOCwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1LCAwLjA0NjI1LCAwLjAzNzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0tOIjsKLSAgICAgIHRpbWluZ190eXBlIDogcmVtb3ZhbF9mYWxsaW5nOwotICAgICAgd2hlbiA6ICJSTiI7Ci0gICAgICBzZGZfY29uZCA6ICJSTiA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChyZW1vdmFsX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjI1LCAwLjAxNzUsIDAuMDIzNzUsIDAuMDMsIDAuMDM2MjUsIDAuMDQsIDAuMDQyNSIsIFwKLSAgICAgICAgICAiMC4wMDEyNSwgMC4wMTI1LCAwLjAxODc1LCAwLjAyNSwgMC4wMjUsIDAuMDM1LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjAwNSwgMC4wMDYyNSwgMC4wMTI1LCAwLjAxODc1LCAwLjAyNSwgMC4wMjg3NSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDExMjUsIDAsIDAuMDA2MjUsIDAuMDEyNSwgMC4wMTg3NSwgMC4wMjI1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDExMjUsIC0wLjAwNjI1LCAwLjAwNjI1LCAwLjAwNjI1LCAwLjAxMjUsIDAuMDIyNSwgMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjAxNSwgLTAuMDEsIC0wLjAwMzc1LCAwLjAwMjUsIDAuMDA4NzUsIDAuMDEyNSwgMC4wMjEyNSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLCAwLjAwNjI1LCAwLjAxLCAwLjAxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IFNERkZOU1JYTCAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKFNERkZOU1JYTCkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAxLjIzNzgyOwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIGZmIChOMzUsUUJJTlQpIHsKLSAgICBuZXh0X3N0YXRlIDogIigoU0UgU0kpICsgKCFTRSBEKSkiOwotICAgIGNsb2NrZWRfb24gOiAiKCFDS04pIjsKLSAgICBjbGVhciA6ICIoIVJOKSI7Ci0gICAgcHJlc2V0IDogIighU04pIjsKLSAgICBjbGVhcl9wcmVzZXRfdmFyMSA6IEg7Ci0gICAgY2xlYXJfcHJlc2V0X3ZhcjIgOiBMOwotICB9Ci0gIHBpbihDS04pICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY0ODY5MjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2NDg2Mjc7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjQ4NjkyOwotICAgIGNsb2NrIDogdHJ1ZTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDc4NDIsIDAuMDA3ODUsIDAuMDA3OTIsIDAuMDA4MDU0LCAwLjAwODE4LCAwLjAwODQyNSwgMC4wMDg2NDYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDQ1NTIsIDAuMDA0NTQ4LCAwLjAwNDYxMSwgMC4wMDQ3MSwgMC4wMDQ4MzIsIDAuMDA1MDcxLCAwLjAwNTMxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQmUk4mIVNFJiFTSSZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fUk5fRVFfMV9BTl9TRV9FUV8wX0FOX1NJX0VRXzBfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjA3MzkwNCwgMC4wODIwMTMsIDAuMDkxMTk4LCAwLjA5ODAzLCAwLjEwMzc1NywgMC4xMTExODMsIDAuMTE2NjczIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4xMzMzMzMsIDAuMTQxMzA5LCAwLjE1MDE4OCwgMC4xNTY4NDUsIDAuMTYyMTkxLCAwLjE2OTIyMSwgMC4xNzQ0OTQiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEQpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYyNzM5OTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MjYzNjE7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjI3Mzk5OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNDE4NiwgMC4wMDQxNjIsIDAuMDA0MTczLCAwLjAwNDIxNCwgMC4wMDQyNjMsIDAuMDA0MzcsIDAuMDA0NDc4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA1OTEzLCAwLjAwNTg5OCwgMC4wMDU5MSwgMC4wMDU5NDgsIDAuMDA2MDAyLCAwLjAwNjEwMiwgMC4wMDYyMTEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0tOIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9mYWxsaW5nOwotICAgICAgd2hlbiA6ICJSTiYhU0UmU04iOwotICAgICAgc2RmX2NvbmQgOiAiUk5fRVFfMV9BTl9TRV9FUV8wX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDEyNSwgLTAuMDA3NSwgLTAuMDAxMjUsIDAuMDA1LCAwLjAxMTI1LCAwLjAxNSwgMC4wMjM3NSIsIFwKLSAgICAgICAgICAiLTAuMDE3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAsIDAuMDA2MjUsIDAuMDEsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAsIDAuMDAzNzUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgLTAuMDAyNSwgMCIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwODc1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDQ2MjUsIC0wLjA0MTI1LCAtMC4wMzUsIC0wLjAyODc1LCAtMC4wMjI1LCAtMC4wMTg3NSwgLTAuMDEiLCBcCi0gICAgICAgICAgIi0wLjA1NSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMzEyNSwgLTAuMDIxMjUsIC0wLjAxODc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDM3NSwgLTAuMDMyNSwgLTAuMDMyNSwgLTAuMDI2MjUsIC0wLjAyNjI1LCAtMC4wMjI1LCAtMC4wMiIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDM3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAzMTI1LCAtMC4wMjc1LCAtMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wNDM3NSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzNzUsIC0wLjAzMzc1LCAtMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNSwgLTAuMDUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDQsIC0wLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjA2MTI1LCAtMC4wNTYyNSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNSwgLTAuMDQ2MjUsIC0wLjA0Mzc1IiwgXAotICAgICAgICAgICItMC4wNzEyNSwgLTAuMDY2MjUsIC0wLjA2LCAtMC4wNiwgLTAuMDYsIC0wLjA1NjI1LCAtMC4wNTM3NSIsIFwKLSAgICAgICAgICAiLTAuMDczNzUsIC0wLjA2ODc1LCAtMC4wNjg3NSwgLTAuMDY4NzUsIC0wLjA2MjUsIC0wLjA1ODc1LCAtMC4wNjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX2ZhbGxpbmc7Ci0gICAgICB3aGVuIDogIlJOJiFTRSZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJSTl9FUV8xX0FOX1NFX0VRXzBfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjI1LCAwLjA1MTI1LCAwLjA0NSwgMC4wMzg3NSwgMC4wMzI1LCAwLjAyODc1LCAwLjAyIiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDU2MjUsIDAuMDUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzM3NSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4wNzM3NSwgMC4wNjg3NSwgMC4wNTYyNSwgMC4wNSwgMC4wNDM3NSwgMC4wNCwgMC4wMzc1IiwgXAotICAgICAgICAgICIwLjA4LCAwLjA3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1NjI1LCAwLjA0NjI1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjA4NjI1LCAwLjA4MTI1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDYyNSwgMC4wNTI1LCAwLjA1IiwgXAotICAgICAgICAgICIwLjA5NjI1LCAwLjA5MTI1LCAwLjA3ODc1LCAwLjA3MjUsIDAuMDY2MjUsIDAuMDYyNSwgMC4wNiIsIFwKLSAgICAgICAgICAiMC4xMDUsIDAuMDkzNzUsIDAuMDg3NSwgMC4wODEyNSwgMC4wNzUsIDAuMDcxMjUsIDAuMDYyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3NSwgMC4wNywgMC4wNTc1LCAwLjA1NzUsIDAuMDUxMjUsIDAuMDQ3NSwgMC4wNDUiLCBcCi0gICAgICAgICAgIjAuMDg2MjUsIDAuMDc1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDUyNSwgMC4wNSIsIFwKLSAgICAgICAgICAiMC4wOTI1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1ODc1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICIwLjA5ODc1LCAwLjA4NzUsIDAuMDgxMjUsIDAuMDc1LCAwLjA2ODc1LCAwLjA2NSwgMC4wNjI1IiwgXAotICAgICAgICAgICIwLjEwNSwgMC4wOTM3NSwgMC4wODc1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNzEyNSwgMC4wNjg3NSIsIFwKLSAgICAgICAgICAiMC4xMDg3NSwgMC4xMDM3NSwgMC4wOTEyNSwgMC4wODUsIDAuMDg1LCAwLjA4MTI1LCAwLjA3ODc1IiwgXAotICAgICAgICAgICIwLjExNzUsIDAuMTA2MjUsIDAuMSwgMC4wOTM3NSwgMC4wODc1LCAwLjA4Mzc1LCAwLjA4MTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihRKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMTk5MDk2OwotICAgIGZ1bmN0aW9uIDogIk4zNSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0tOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5vbl91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogZmFsbGluZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMzgzMDYsIDAuMTQ4ODM3LCAwLjI0Mzg3OSwgMC40MDI2NTQsIDAuNTU5MDM3LCAwLjkyOTM2NywgMS4xMzg4OSIsIFwKLSAgICAgICAgICAiMC4xNDYzMjUsIDAuMTU2ODU0LCAwLjI1MTg5OCwgMC40MTA2NjYsIDAuNTY5MTM1LCAwLjkzNTY2MywgMS4xNTAzMSIsIFwKLSAgICAgICAgICAiMC4xNTUwNzEsIDAuMTY1NjAyLCAwLjI2MDY1NiwgMC40MTk0MjEsIDAuNTc2MDczLCAwLjk0NzA5MywgMS4xNTU4OSIsIFwKLSAgICAgICAgICAiMC4xNjE3NDEsIDAuMTcyMjcxLCAwLjI2NzMxNCwgMC40MjUzNjgsIDAuNTg0NTcxLCAwLjk1MjQ5NCwgMS4xNjE5OCIsIFwKLSAgICAgICAgICAiMC4xNjcxNDcsIDAuMTc3Njc0LCAwLjI3MjcxNSwgMC40MzE0NzIsIDAuNTg5OTY3LCAwLjk1NzIwMSwgMS4xNjY4OCIsIFwKLSAgICAgICAgICAiMC4xNzQxNTUsIDAuMTg0NjcxLCAwLjI3OTcxMywgMC40MzgzNjIsIDAuNTk2OTU5LCAwLjk2Mzk1NCwgMS4xNzgyIiwgXAotICAgICAgICAgICIwLjE3OTI1MSwgMC4xODk3NzUsIDAuMjg0Njk1LCAwLjQ0MzQsIDAuNjAyMDM4LCAwLjk3MDE3NiwgMS4xNzk3Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExODIxOCwgMC4xNDAwMDMsIDAuMzM4OTk3LCAwLjY3MjM4OSwgMS4wMDQwMSwgMS43ODA0OSwgMi4yMTk4IiwgXAotICAgICAgICAgICIwLjExODI0MywgMC4xNDAzMTQsIDAuMzM4OTU1LCAwLjY3MjI0MSwgMS4wMDU0NSwgMS43ODQxMiwgMi4yMjcxIiwgXAotICAgICAgICAgICIwLjExODIxMywgMC4xNDAxMTYsIDAuMzM5MTE5LCAwLjY3MTk3NCwgMS4wMDU1OSwgMS43ODA3NCwgMi4yMjI1MSIsIFwKLSAgICAgICAgICAiMC4xMTgxNjcsIDAuMTQwMDc4LCAwLjMzODgyNCwgMC42NzExNzUsIDEuMDA0NDUsIDEuNzc5MDksIDIuMjIwMiIsIFwKLSAgICAgICAgICAiMC4xMTgzNzYsIDAuMTQwMzY5LCAwLjMzOTEzOSwgMC42NzI1NTQsIDEuMDA1NTgsIDEuNzgyNTQsIDIuMjI4OTUiLCBcCi0gICAgICAgICAgIjAuMTE4Mjk1LCAwLjE0MDE5NCwgMC4zMzg4MjMsIDAuNjczMDM3LCAxLjAwNjY5LCAxLjc4MTc1LCAyLjIzMDQ4IiwgXAotICAgICAgICAgICIwLjExODI1MywgMC4xNDAyMjIsIDAuMzM5MTI1LCAwLjY3MzMzNywgMS4wMDY3MywgMS43ODE3OSwgMi4yMjI4OSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMjQxOSwgMC4xMzM5NDQsIDAuMjIxMDAzLCAwLjM2NTk1LCAwLjUxMDI0OSwgMC44NDg3MjQsIDEuMDQyMTgiLCBcCi0gICAgICAgICAgIjAuMTMyMjI4LCAwLjE0MTkzLCAwLjIyOTA2NCwgMC4zNzM5MzEsIDAuNTE4MjQ5LCAwLjg1ODE0NywgMS4wNTA4NCIsIFwKLSAgICAgICAgICAiMC4xNDExNSwgMC4xNTA4MDUsIDAuMjM3ODUsIDAuMzgyODE3LCAwLjUyNzA0MiwgMC44NjU3NzYsIDEuMDU4ODIiLCBcCi0gICAgICAgICAgIjAuMTQ3NzczLCAwLjE1NzQ3NCwgMC4yNDQ1NCwgMC4zODkxNjcsIDAuNTMzNzc0LCAwLjg3MjA5NywgMS4wNjU2MiIsIFwKLSAgICAgICAgICAiMC4xNTMwNjIsIDAuMTYyODE0LCAwLjI0OTg4MSwgMC4zOTQ1MDQsIDAuNTM5MTYxLCAwLjg3NzI0OCwgMS4wNzA5MiIsIFwKLSAgICAgICAgICAiMC4xNjAyOCwgMC4xNjk5NDgsIDAuMjU3MDY1LCAwLjQwMTUzMSwgMC41NDYzMTYsIDAuODg0NDEzLCAxLjA3ODY3IiwgXAotICAgICAgICAgICIwLjE2NTM0NCwgMC4xNzQ5OTgsIDAuMjYyMjIzLCAwLjQwNzM1LCAwLjU1MTk3MiwgMC44OTExNzksIDEuMDgyNTgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTA2NDk1LCAwLjEyNTk2NSwgMC4zMDQ0NzEsIDAuNjA0MDY1LCAwLjkwMTI4NCwgMS41OTA0NywgMS45OTY1OSIsIFwKLSAgICAgICAgICAiMC4xMDYwOTYsIDAuMTI2NTQsIDAuMzA0ODMxLCAwLjYwNDAzNywgMC45MDAyODQsIDEuNjAwMzksIDEuOTk5NDYiLCBcCi0gICAgICAgICAgIjAuMTA2MDYsIDAuMTI1ODYzLCAwLjMwMjUzLCAwLjYwNDA0LCAwLjkwMDk2MSwgMS41ODk2NywgMS45ODMwMSIsIFwKLSAgICAgICAgICAiMC4xMDY5NTYsIDAuMTI1ODg2LCAwLjMwMzgzNCwgMC42MDA4NDQsIDAuOTAxMjQ4LCAxLjU5OTMsIDEuOTg5MjMiLCBcCi0gICAgICAgICAgIjAuMTA2NjU4LCAwLjEyNTk4MiwgMC4zMDI0NDgsIDAuNjAxMDI3LCAwLjkwMDg2NiwgMS41OTQzMSwgMS45OTA0NCIsIFwKLSAgICAgICAgICAiMC4xMDY1NTcsIDAuMTI2NTk1LCAwLjMwNDg4NCwgMC42MDMxMTIsIDAuOTAyMTEzLCAxLjYwMDAxLCAxLjk5ODk2IiwgXAotICAgICAgICAgICIwLjEwNzAxOCwgMC4xMjU2NzEsIDAuMzA0OTM5LCAwLjYwMzczMiwgMC45MDI2MzUsIDEuNjAwMDQsIDEuOTkzNjQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUk4iOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGNsZWFyOwotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNTI5NTYsIDAuMTYyNjAzLCAwLjI0OTYyNiwgMC4zOTQxNDcsIDAuNTQwMDIxLCAwLjg3NzIsIDEuMDcxMTgiLCBcCi0gICAgICAgICAgIjAuMTYwODIzLCAwLjE3MDQ3LCAwLjI1NzU1MywgMC40MDI1MDIsIDAuNTQ2OTk1LCAwLjg4NDk2LCAxLjA3OTc2IiwgXAotICAgICAgICAgICIwLjE2ODgwNywgMC4xNzg0NTMsIDAuMjY1MzE0LCAwLjQxMDMsIDAuNTU0OTEyLCAwLjg5MzM5NCwgMS4wODYwNSIsIFwKLSAgICAgICAgICAiMC4xNzQ2MzgsIDAuMTg0MzM4LCAwLjI3MTQxNSwgMC40MTY0ODYsIDAuNTYwODA4LCAwLjg5ODc1NiwgMS4wOTM4MyIsIFwKLSAgICAgICAgICAiMC4xNzkzMDMsIDAuMTg4OTYsIDAuMjc1OTE0LCAwLjQyMDkwNiwgMC41NjU1MjQsIDAuOTAzNjQ4LCAxLjA5NzU3IiwgXAotICAgICAgICAgICIwLjE4NTYzOCwgMC4xOTUyNTksIDAuMjgyMzU4LCAwLjQyNzIxLCAwLjU3MTUxOCwgMC45MTAzNzIsIDEuMTAzMDMiLCBcCi0gICAgICAgICAgIjAuMTkwMzM1LCAwLjIwMDAyMSwgMC4yODY5NzYsIDAuNDMxODg3LCAwLjU3NjUwMSwgMC45MTQ4OSwgMS4xMDk0OCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDY5NzYsIDAuMTI2NjEsIDAuMzA1MDcsIDAuNjAyNTgsIDAuOTAyOTYsIDEuNjAwODEsIDIuMDAwMDEiLCBcCi0gICAgICAgICAgIjAuMTA2OTk1LCAwLjEyNjYzLCAwLjMwNTExMiwgMC42MDM4OTQsIDAuOTAwOTcxLCAxLjU5NjQyLCAxLjk5NTYiLCBcCi0gICAgICAgICAgIjAuMTA2OTc4LCAwLjEyNjYwNSwgMC4zMDQ2NzcsIDAuNjA0MDEsIDAuOTAxNzcsIDEuNjAxMzIsIDEuOTkwMzUiLCBcCi0gICAgICAgICAgIjAuMTA2NzM5LCAwLjEyNjYxMSwgMC4zMDUxMTgsIDAuNjA0MDExLCAwLjkwMTgzNiwgMS41OTkzMywgMS45OTc3OCIsIFwKLSAgICAgICAgICAiMC4xMDcwMDIsIDAuMTI2MTM4LCAwLjMwNTExMywgMC42MDM5NDUsIDAuOTAyODU1LCAxLjU5ODY2LCAyLjAwMDAyIiwgXAotICAgICAgICAgICIwLjEwNjQwMiwgMC4xMjY2MSwgMC4zMDUxMTcsIDAuNjAzOTU1LCAwLjkwMjU2LCAxLjU5OTMsIDEuOTk3ODciLCBcCi0gICAgICAgICAgIjAuMTA3MDgyLCAwLjEyNjYyNSwgMC4zMDUxMjUsIDAuNjAzOTExLCAwLjkwMjg5OCwgMS42MDEzNywgMS45OTc5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiBwcmVzZXQ7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEyNDYxLCAwLjEzNTE1NSwgMC4yMzAzNCwgMC4zODg4MjQsIDAuNTQ1ODE5LCAwLjkxNDU4NywgMS4xMjgxOSIsIFwKLSAgICAgICAgICAiMC4xMzEyNjksIDAuMTQxNzg0LCAwLjIzNjk3MSwgMC4zOTU0NTgsIDAuNTUyNDI3LCAwLjkyMTE1OCwgMS4xMzQ4MiIsIFwKLSAgICAgICAgICAiMC4xMzg5MzksIDAuMTQ5NDUsIDAuMjQ0NjM0LCAwLjQwMjUyNiwgMC41NjAxODksIDAuOTI4MTU3LCAxLjE0MTYzIiwgXAotICAgICAgICAgICIwLjE0NzY4OSwgMC4xNTgyMDEsIDAuMjUzMzg0LCAwLjQxMTEzLCAwLjU2ODc1NCwgMC45MzY5MTEsIDEuMTUxMTkiLCBcCi0gICAgICAgICAgIjAuMTU1MDA0LCAwLjE2NTUxNywgMC4yNjA2NzUsIDAuNDE5MTgsIDAuNTc2MjIyLCAwLjk0NDE0NywgMS4xNTQ5OSIsIFwKLSAgICAgICAgICAiMC4xNjQ2MzUsIDAuMTc1MTg2LCAwLjI3MDAxMSwgMC40Mjg5LCAwLjU4NzM0NiwgMC45NTQ4MDMsIDEuMTY1NzgiLCBcCi0gICAgICAgICAgIjAuMTcxNDgzLCAwLjE4MjAxNCwgMC4yNzY3NDEsIDAuNDM0NTkxLCAwLjU5MjQzMywgMC45NjM3NjgsIDEuMTcxNDUiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTE4MTk1LCAwLjE0MDA3LCAwLjMzOTUxMSwgMC42NzIzMDEsIDEuMDA2MDQsIDEuNzgyNzQsIDIuMjI5NzgiLCBcCi0gICAgICAgICAgIjAuMTE4MTk2LCAwLjE0MDA2LCAwLjMzOTQ3NCwgMC42NzMyNiwgMS4wMDYzOCwgMS43ODI5NywgMi4yMjkzIiwgXAotICAgICAgICAgICIwLjExODE4OSwgMC4xNDAwNzEsIDAuMzM5NDk0LCAwLjY3MzE0LCAxLjAwNjc4LCAxLjc4MzA2LCAyLjIzMDMiLCBcCi0gICAgICAgICAgIjAuMTE4MTg2LCAwLjE0MDA5OCwgMC4zMzk0MjcsIDAuNjczMTQsIDEuMDA2OTMsIDEuNzgxODQsIDIuMjMwMjMiLCBcCi0gICAgICAgICAgIjAuMTE4MjQ0LCAwLjE0MDEyNCwgMC4zMzk2MiwgMC42NzMzMjcsIDEuMDA3MjIsIDEuNzg0NjMsIDIuMjI5NDUiLCBcCi0gICAgICAgICAgIjAuMTE4Mjg0LCAwLjE0MDE1OSwgMC4zMzk1OTcsIDAuNjczMzY3LCAxLjAwNzEsIDEuNzg1NzIsIDIuMjMwNDMiLCBcCi0gICAgICAgICAgIjAuMTE4MjE5LCAwLjE0MDE2MSwgMC4zMzk2NjMsIDAuNjczMzYyLCAxLjAwNzM2LCAxLjc4NTkzLCAyLjIzMTg0Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE0MDYwNywgMC4xNTAyNjksIDAuMjM3MzI0LCAwLjM4MjAxMiwgMC41Mjc0ODIsIDAuODY2MTU2LCAxLjA1ODU1IiwgXAotICAgICAgICAgICIwLjE0NzIxNSwgMC4xNTY4NzksIDAuMjQ0MDcyLCAwLjM4OTE4OCwgMC41MzM2MTgsIDAuODcxNTcyLCAxLjA2NjY1IiwgXAotICAgICAgICAgICIwLjE1NDY5NiwgMC4xNjQzOTYsIDAuMjUxNTczLCAwLjM5NjQ1NiwgMC41NDExNzksIDAuODc5MzA2LCAxLjA3MzI4IiwgXAotICAgICAgICAgICIwLjE2MTk3MSwgMC4xNzE2MzUsIDAuMjU4NjI4LCAwLjQwMzY2OSwgMC41NDg3MDQsIDAuODg3MDY5LCAxLjA3OTU3IiwgXAotICAgICAgICAgICIwLjE2ODcxMywgMC4xNzgzODMsIDAuMjY1NTgzLCAwLjQxMDEyMiwgMC41NTUwNDcsIDAuODkzMjk3LCAxLjA4NjI4IiwgXAotICAgICAgICAgICIwLjE3ODMyLCAwLjE4ODAzNywgMC4yNzUxMDQsIDAuNDIwMDc3LCAwLjU2NDQ4MywgMC45MDI2MTcsIDEuMDk2NDMiLCBcCi0gICAgICAgICAgIjAuMTg1NywgMC4xOTU0MiwgMC4yODI0ODUsIDAuNDI3MzYzLCAwLjU3MTgyMiwgMC45MTAxMDgsIDEuMTAyODUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTA2NjQ1LCAwLjEyNjU4NywgMC4zMDQ5NTcsIDAuNjAyNTgyLCAwLjkwMzE2MSwgMS42MDA4NSwgMS45OTA5OCIsIFwKLSAgICAgICAgICAiMC4xMDY2NzgsIDAuMTI2NTk0LCAwLjMwNTAxNSwgMC42MDM4MzYsIDAuOTAzMjg1LCAxLjYwMDk3LCAxLjk4ODc5IiwgXAotICAgICAgICAgICIwLjEwNjU3LCAwLjEyNjU5NiwgMC4zMDUwMSwgMC42MDM5NTgsIDAuOTAyNjMzLCAxLjU5ODI2LCAxLjk5OTgyIiwgXAotICAgICAgICAgICIwLjEwNjg2LCAwLjEyNjU5OCwgMC4zMDQ3MzksIDAuNjA0MDA1LCAwLjkwMzAwNiwgMS42MDExLCAxLjk5NzgzIiwgXAotICAgICAgICAgICIwLjEwNjYyMywgMC4xMjY1OTMsIDAuMzA0OTkyLCAwLjYwMjA3NCwgMC45MDI1OTYsIDEuNjAwNywgMS45OTc1NSIsIFwKLSAgICAgICAgICAiMC4xMDY3NiwgMC4xMjY2MTEsIDAuMzA0OTY1LCAwLjYwMzk2NSwgMC45MDI0OTUsIDEuNTkyODQsIDEuOTkzMjgiLCBcCi0gICAgICAgICAgIjAuMTA2MTIsIDAuMTI2NjY1LCAwLjMwNDk4NSwgMC42MDM3MDksIDAuOTAxMTkxLCAxLjU5OTU3LCAxLjk5NzIzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0tOIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDU2OTEsIDAuMDA1NjkyLCAwLjAwNTY5NywgMC4wMDU2OTgsIDAuMDA1Njk5LCAwLjAwNTY5OSwgMC4wMDU3IiwgXAotICAgICAgICAgICIwLjAwNTY5MiwgMC4wMDU2OTQsIDAuMDA1Njk4LCAwLjAwNTcsIDAuMDA1NywgMC4wMDU3MDEsIDAuMDA1NzAxIiwgXAotICAgICAgICAgICIwLjAwNTczNiwgMC4wMDU3MzcsIDAuMDA1NzQyLCAwLjAwNTc0NCwgMC4wMDU3NDQsIDAuMDA1NzQ1LCAwLjAwNTc0NiIsIFwKLSAgICAgICAgICAiMC4wMDU3OTksIDAuMDA1OCwgMC4wMDU4MDQsIDAuMDA1ODA2LCAwLjAwNTgwOCwgMC4wMDU4MDcsIDAuMDA1ODA3IiwgXAotICAgICAgICAgICIwLjAwNTg2OSwgMC4wMDU4NywgMC4wMDU4NzUsIDAuMDA1ODc2LCAwLjAwNTg3OCwgMC4wMDU4NzgsIDAuMDA1ODc4IiwgXAotICAgICAgICAgICIwLjAwNTk4NSwgMC4wMDU5ODYsIDAuMDA1OTkxLCAwLjAwNTk5MywgMC4wMDU5OTQsIDAuMDA1OTk0LCAwLjAwNTk3OCIsIFwKLSAgICAgICAgICAiMC4wMDYwNjUsIDAuMDA2MDY2LCAwLjAwNjA2OSwgMC4wMDYwNywgMC4wMDYwNzEsIDAuMDA2MDcyLCAwLjAwNjA3MiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDk4OSwgMC4wMDQ5OSwgMC4wMDQ5OTUsIDAuMDA0OTk2LCAwLjAwNDk5NywgMC4wMDUsIDAuMDA0OTk3IiwgXAotICAgICAgICAgICIwLjAwNDk4NCwgMC4wMDQ5ODUsIDAuMDA0OTg5LCAwLjAwNDk5MSwgMC4wMDQ5OTEsIDAuMDA0OTk1LCAwLjAwNDk5MiIsIFwKLSAgICAgICAgICAiMC4wMDUwMjEsIDAuMDA1MDIyLCAwLjAwNTAyNiwgMC4wMDUwMjgsIDAuMDA1MDI4LCAwLjAwNTAzMiwgMC4wMDUwMzIiLCBcCi0gICAgICAgICAgIjAuMDA1MDcyLCAwLjAwNTA3MywgMC4wMDUwNzgsIDAuMDA1MDc5LCAwLjAwNTA4LCAwLjAwNTA4MywgMC4wMDUwOCIsIFwKLSAgICAgICAgICAiMC4wMDUxNCwgMC4wMDUxNDEsIDAuMDA1MTQ2LCAwLjAwNTE0OCwgMC4wMDUxNDgsIDAuMDA1MTQ5LCAwLjAwNTE0OSIsIFwKLSAgICAgICAgICAiMC4wMDUyNDUsIDAuMDA1MjI2LCAwLjAwNTIzMSwgMC4wMDUyMzQsIDAuMDA1MjM1LCAwLjAwNTIzNSwgMC4wMDUyMzUiLCBcCi0gICAgICAgICAgIjAuMDA1MzEzLCAwLjAwNTMxNCwgMC4wMDUzMiwgMC4wMDUzMiwgMC4wMDUzMjEsIDAuMDA1MzI4LCAwLjAwNTMyOCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDYwODQsIDAuMDA2MDg0LCAwLjAwNjA3NywgMC4wMDYwNzEsIDAuMDA2MDY5LCAwLjAwNjA2NiwgMC4wMDYwNjUiLCBcCi0gICAgICAgICAgIjAuMDA2MDgzLCAwLjAwNjA4MywgMC4wMDYwNzYsIDAuMDA2MDcsIDAuMDA2MDY4LCAwLjAwNjA2NiwgMC4wMDYwNjQiLCBcCi0gICAgICAgICAgIjAuMDA2MTE1LCAwLjAwNjExNCwgMC4wMDYxMDgsIDAuMDA2MTAxLCAwLjAwNjA5OSwgMC4wMDYwOTUsIDAuMDA2MDk1IiwgXAotICAgICAgICAgICIwLjAwNjE1OSwgMC4wMDYxNTksIDAuMDA2MTUyLCAwLjAwNjE0NiwgMC4wMDYxNDMsIDAuMDA2MTM5LCAwLjAwNjEzOSIsIFwKLSAgICAgICAgICAiMC4wMDYyMTIsIDAuMDA2MjEyLCAwLjAwNjIwNSwgMC4wMDYxOTksIDAuMDA2MTk2LCAwLjAwNjE5MywgMC4wMDYxOTIiLCBcCi0gICAgICAgICAgIjAuMDA2MzExLCAwLjAwNjMxMSwgMC4wMDYzMDQsIDAuMDA2Mjk3LCAwLjAwNjI5NCwgMC4wMDYyOSwgMC4wMDYyODkiLCBcCi0gICAgICAgICAgIjAuMDA2NDA3LCAwLjAwNjQwOCwgMC4wMDYzOTcsIDAuMDA2MzkyLCAwLjAwNjM4OSwgMC4wMDYzODUsIDAuMDA2Mzg0Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3Bvd2VyKHNjYWxhcikgewotICAgICAgICB2YWx1ZXMoIjAiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2MDM2LCAwLjAwNjAzNywgMC4wMDYwNDIsIDAuMDA2MDQ0LCAwLjAwNjA0NCwgMC4wMDYwNDQsIDAuMDA2MDQ0IiwgXAotICAgICAgICAgICIwLjAwNjAyNSwgMC4wMDYwMjYsIDAuMDA2MDMsIDAuMDA2MDMxLCAwLjAwNjAzMiwgMC4wMDYwMzIsIDAuMDA2MDMyIiwgXAotICAgICAgICAgICIwLjAwNjA0NiwgMC4wMDYwNDcsIDAuMDA2MDUyLCAwLjAwNjA1MywgMC4wMDYwNTMsIDAuMDA2MDU0LCAwLjAwNjA1NCIsIFwKLSAgICAgICAgICAiMC4wMDYwODIsIDAuMDA2MDg0LCAwLjAwNjA4OCwgMC4wMDYwODksIDAuMDA2MDksIDAuMDA2MDksIDAuMDA2MDkxIiwgXAotICAgICAgICAgICIwLjAwNjEzNiwgMC4wMDYxMzcsIDAuMDA2MTQyLCAwLjAwNjE0NCwgMC4wMDYxNDQsIDAuMDA2MTQ0LCAwLjAwNjE0NSIsIFwKLSAgICAgICAgICAiMC4wMDYyNTMsIDAuMDA2MjU1LCAwLjAwNjI1OSwgMC4wMDYyNjEsIDAuMDA2MjYyLCAwLjAwNjI2MiwgMC4wMDYyNjIiLCBcCi0gICAgICAgICAgIjAuMDA2MzcsIDAuMDA2MzcsIDAuMDA2Mzc2LCAwLjAwNjM3NywgMC4wMDYzNzcsIDAuMDA2Mzc4LCAwLjAwNjM3OCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDQwOSwgMC4wMDQ0MSwgMC4wMDQ0MTQsIDAuMDA0NDE2LCAwLjAwNDQxNiwgMC4wMDQ0MTYsIDAuMDA0NDE3IiwgXAotICAgICAgICAgICIwLjAwNDM3OCwgMC4wMDQzOCwgMC4wMDQzODQsIDAuMDA0Mzg2LCAwLjAwNDM4NiwgMC4wMDQzODgsIDAuMDA0Mzg3IiwgXAotICAgICAgICAgICIwLjAwNDM3LCAwLjAwNDM3MiwgMC4wMDQzNzYsIDAuMDA0Mzc3LCAwLjAwNDM3OCwgMC4wMDQzNzksIDAuMDA0Mzc4IiwgXAotICAgICAgICAgICIwLjAwNDM3NiwgMC4wMDQzNzcsIDAuMDA0MzgxLCAwLjAwNDM4MywgMC4wMDQzODMsIDAuMDA0Mzg0LCAwLjAwNDM4NCIsIFwKLSAgICAgICAgICAiMC4wMDQzOTMsIDAuMDA0Mzk1LCAwLjAwNDQsIDAuMDA0NDAxLCAwLjAwNDQwMiwgMC4wMDQ0MDIsIDAuMDA0NDAyIiwgXAotICAgICAgICAgICIwLjAwNDQ0NCwgMC4wMDQ0NDYsIDAuMDA0NDUxLCAwLjAwNDQ1MiwgMC4wMDQ0NTIsIDAuMDA0NDUzLCAwLjAwNDQ1MyIsIFwKLSAgICAgICAgICAiMC4wMDQ0OTEsIDAuMDA0NDkyLCAwLjAwNDQ5NywgMC4wMDQ0OTgsIDAuMDA0NDk5LCAwLjAwNDUsIDAuMDA0NDk5Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihRTikgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjIwMDM2MTsKLSAgICBmdW5jdGlvbiA6ICJRQklOVCI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0tOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5vbl91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogZmFsbGluZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMzMzMzMsIDAuMTQzODU4LCAwLjIzODU0NSwgMC4zOTYzNDQsIDAuNTU0MTU2LCAwLjkyMjQxNCwgMS4xMzI4NiIsIFwKLSAgICAgICAgICAiMC4xNDEzMDksIDAuMTUxODI1LCAwLjI0NjUyOSwgMC40MDQzMTYsIDAuNTYyMTM2LCAwLjkzMDU4NywgMS4xNDA4NSIsIFwKLSAgICAgICAgICAiMC4xNTAxOTEsIDAuMTYwNzA3LCAwLjI1NTM5MiwgMC40MTMxOTMsIDAuNTcxMDEsIDAuOTM5Mjc1LCAxLjE0OTY5IiwgXAotICAgICAgICAgICIwLjE1Njg0NSwgMC4xNjczNzMsIDAuMjYyMDYsIDAuNDE5ODYxLCAwLjU3NzY2NywgMC45NDU5MTYsIDEuMTU2MzciLCBcCi0gICAgICAgICAgIjAuMTYyMTk4LCAwLjE3MjczMywgMC4yNjc0MjEsIDAuNDI1MjIyLCAwLjU4MzAyNCwgMC45NTEyNjQsIDEuMTYxNzIiLCBcCi0gICAgICAgICAgIjAuMTY5MzM2LCAwLjE3OTg3MywgMC4yNzQ1NjMsIDAuNDMyMzc2LCAwLjU5MDE3NSwgMC45NTgzOTksIDEuMTY4ODQiLCBcCi0gICAgICAgICAgIjAuMTc0NDk4LCAwLjE4NTAzLCAwLjI3OTczMywgMC40Mzc1NzIsIDAuNTk1MzEzLCAwLjk2Mzc0NiwgMS4xNzM5OSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTU2NDksIDAuMTM3Nzc5LCAwLjMzNjc0NCwgMC42Njk5NzUsIDEuMDAxNjIsIDEuNzc1OTYsIDIuMjE4NTkiLCBcCi0gICAgICAgICAgIjAuMTE1NjU2LCAwLjEzNzYxNSwgMC4zMzczNDcsIDAuNjY5OTY4LCAxLjAwMDU0LCAxLjc3ODQ0LCAyLjIyMTc5IiwgXAotICAgICAgICAgICIwLjExNTY1OCwgMC4xMzc3NzcsIDAuMzM2Nzc2LCAwLjY2OTk2NiwgMS4wMDA0OCwgMS43NzUzMSwgMi4yMTc2OCIsIFwKLSAgICAgICAgICAiMC4xMTU2NTIsIDAuMTM3Nzc5LCAwLjMzNjc3OSwgMC42NjkyODMsIDEuMDAxNjEsIDEuNzc0NTIsIDIuMjE3MzkiLCBcCi0gICAgICAgICAgIjAuMTE1NTE2LCAwLjEzNzc3OCwgMC4zMzY3NTMsIDAuNjY5Mjg3LCAxLjAwMTU4LCAxLjc3NTYxLCAyLjIxODk4IiwgXAotICAgICAgICAgICIwLjExNTY1OSwgMC4xMzc4NTksIDAuMzM3MzQsIDAuNjY5NDExLCAxLjAwMTY2LCAxLjc3NjU5LCAyLjIyMTU2IiwgXAotICAgICAgICAgICIwLjExNTUyOSwgMC4xMzc3MDksIDAuMzM3MzcyLCAwLjY2OTkwNiwgMS4wMDIyOSwgMS43NzgzMywgMi4yMTgyMyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMzk3ODEsIDAuMTQ5NDI3LCAwLjIzNjIzNSwgMC4zODA5NDgsIDAuNTI1NDc4LCAwLjg2MzAyNSwgMS4wNTYxIiwgXAotICAgICAgICAgICIwLjE0NzczOSwgMC4xNTczODQsIDAuMjQ0MTg5LCAwLjM4ODksIDAuNTMzNTYxLCAwLjg3MTE4NCwgMS4wNjQwMiIsIFwKLSAgICAgICAgICAiMC4xNTY1NCwgMC4xNjYxODYsIDAuMjUzMDAzLCAwLjM5NzYyOSwgMC41NDIzODgsIDAuODc5NzY3LCAxLjA3Mjc3IiwgXAotICAgICAgICAgICIwLjE2MzE4LCAwLjE3MjgyNiwgMC4yNTk2MzIsIDAuNDA0MzA3LCAwLjU0OTAxNiwgMC44ODY1NzcsIDEuMDc5NTEiLCBcCi0gICAgICAgICAgIjAuMTY4NjMxLCAwLjE3ODI3NiwgMC4yNjUwODMsIDAuNDA5Nzk5LCAwLjU1NDQ2OSwgMC44OTIwMTcsIDEuMDg0OTUiLCBcCi0gICAgICAgICAgIjAuMTc1NjEyLCAwLjE4NTI1MSwgMC4yNzIwNTksIDAuNDE2NzgxLCAwLjU2MTQ0LCAwLjg5OTAyMywgMS4wOTE5MyIsIFwKLSAgICAgICAgICAiMC4xODA3MjEsIDAuMTkwMzYsIDAuMjc3MTU5LCAwLjQyMTgzMSwgMC41NjY1MjksIDAuOTA0MDk5LCAxLjA5NzAyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwMzM5LCAwLjEyMzEzOCwgMC4zMDE1OTYsIDAuNTk5MjUyLCAwLjg5NDE2MSwgMS41ODgxNywgMS45ODE0MSIsIFwKLSAgICAgICAgICAiMC4xMDMzOTMsIDAuMTIzMTMsIDAuMzAxNjI2LCAwLjU5OTI3NiwgMC44OTY3MzUsIDEuNTg3NjcsIDEuOTg3MzMiLCBcCi0gICAgICAgICAgIjAuMTAzMzg0LCAwLjEyMzE0OSwgMC4zMDE3MDksIDAuNTk5MzI1LCAwLjg5NTEyNCwgMS41OTA0MywgMS45ODE2MyIsIFwKLSAgICAgICAgICAiMC4xMDMzOTYsIDAuMTIzMTI4LCAwLjMwMTcwMSwgMC41OTc4NDgsIDAuODk2NjM3LCAxLjU4ODQ5LCAxLjk4MTU2IiwgXAotICAgICAgICAgICIwLjEwMzQyMywgMC4xMjMzMDEsIDAuMzAxNTkyLCAwLjU5OTM0MSwgMC44OTY3NTksIDEuNTg4OTQsIDEuOTgzNTQiLCBcCi0gICAgICAgICAgIjAuMTAzNDY5LCAwLjEyMzIyNCwgMC4zMDE3MTEsIDAuNTk5MzY4LCAwLjg5NjYwMSwgMS41ODg4MiwgMS45ODcyNiIsIFwKLSAgICAgICAgICAiMC4xMDM0NDIsIDAuMTIzMjE4LCAwLjMwMTMwMywgMC41OTkwNTYsIDAuODk2NTYsIDEuNTkwNSwgMS45ODQ4OCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcHJlc2V0OwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNjIxMzEsIDAuMTcyNjQ4LCAwLjI2NzM0MywgMC40MjUxMzksIDAuNTgzMDg5LCAwLjk1MTIzMSwgMS4xNjE2NiIsIFwKLSAgICAgICAgICAiMC4xNzAwMDUsIDAuMTgwNTIyLCAwLjI3NTIyNiwgMC40MzMwNTEsIDAuNTkwODQ3LCAwLjk1OTA3NywgMS4xNjk2OCIsIFwKLSAgICAgICAgICAiMC4xNzc5ODUsIDAuMTg4NTAxLCAwLjI4MzE4MSwgMC40NDA5ODcsIDAuNTk4ODIyLCAwLjk2NzAwMiwgMS4xNzc0OCIsIFwKLSAgICAgICAgICAiMC4xODM4MjQsIDAuMTk0MzU2LCAwLjI4OTA1OSwgMC40NDY5MTEsIDAuNjA0Njc2LCAwLjk3MjkwNCwgMS4xODM1NyIsIFwKLSAgICAgICAgICAiMC4xODg0NCwgMC4xOTg5NywgMC4yOTM2MzgsIDAuNDUxNDY2LCAwLjYwOTI4NywgMC45Nzc1MjksIDEuMTg3OTYiLCBcCi0gICAgICAgICAgIjAuMTk0NzMsIDAuMjA1MjUxLCAwLjI5OTk1OCwgMC40NTc3NjQsIDAuNjE1NTYyLCAwLjk4Mzg2MSwgMS4xOTQyNCIsIFwKLSAgICAgICAgICAiMC4xOTk0NzYsIDAuMjA5OTkyLCAwLjMwNDY2OSwgMC40NjI0ODEsIDAuNjIwMjY3LCAwLjk4ODQ3NywgMS4xOTkyMSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTU2NDksIDAuMTM3ODUyLCAwLjMzNzQ4OCwgMC42NjkzNzEsIDEuMDAyNDcsIDEuNzc4MzcsIDIuMjIyMDciLCBcCi0gICAgICAgICAgIjAuMTE1NjQ1LCAwLjEzNzg1NywgMC4zMzc0ODQsIDAuNjY5OTgyLCAxLjAwMDksIDEuNzc1NzIsIDIuMjE4NjIiLCBcCi0gICAgICAgICAgIjAuMTE1NjQ1LCAwLjEzNzg1LCAwLjMzNzA0NCwgMC42Njk5NzUsIDEuMDAxNDgsIDEuNzc4NjEsIDIuMjE4NzIiLCBcCi0gICAgICAgICAgIjAuMTE1NjU0LCAwLjEzNzg1NywgMC4zMzc0NzgsIDAuNjY5OTk3LCAxLjAwMTY1LCAxLjc3NjE1LCAyLjIxOTYzIiwgXAotICAgICAgICAgICIwLjExNTY0OCwgMC4xMzc3ODIsIDAuMzM3NDgxLCAwLjY2OTk3MywgMS4wMDIzOCwgMS43NzYwNSwgMi4yMjIwOSIsIFwKLSAgICAgICAgICAiMC4xMTU2NywgMC4xMzc4NTUsIDAuMzM3NDc4LCAwLjY2OTk4MywgMS4wMDE1NSwgMS43NzY0NCwgMi4yMTkyOSIsIFwKLSAgICAgICAgICAiMC4xMTU3MywgMC4xMzc4NjUsIDAuMzM3NDM4LCAwLjY2OTk2LCAxLjAwMjQxLCAxLjc3ODY0LCAyLjIxOTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiBjbGVhcjsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTQ5NzQxLCAwLjE2MDI1OCwgMC4yNTQ5NCwgMC40MTI3NTEsIDAuNTcwNjAyLCAwLjkzODkxMywgMS4xNDkyNyIsIFwKLSAgICAgICAgICAiMC4xNTYzNTYsIDAuMTY2ODczLCAwLjI2MTU3NywgMC40MTk0MjQsIDAuNTc3MTk4LCAwLjk0NTQyNiwgMS4xNTYwOSIsIFwKLSAgICAgICAgICAiMC4xNjM4NCwgMC4xNzQzNjEsIDAuMjY5MDgyLCAwLjQyNjg3NSwgMC41ODQ3MDgsIDAuOTUyOTQ5LCAxLjE2MzM5IiwgXAotICAgICAgICAgICIwLjE3MTA5OCwgMC4xODE2MTUsIDAuMjc2Mjg4LCAwLjQzNDEwMiwgMC41OTE5MjYsIDAuOTYwMTY5LCAxLjE3MDYxIiwgXAotICAgICAgICAgICIwLjE3Nzc5MSwgMC4xODgzMDgsIDAuMjgzMDE0LCAwLjQ0MDgwMiwgMC41OTg2MjgsIDAuOTY2ODc1LCAxLjE3NyIsIFwKLSAgICAgICAgICAiMC4xODc0MDYsIDAuMTk3OTI2LCAwLjI5MjYwNywgMC40NTA0MDgsIDAuNjA4MjA4LCAwLjk3NjQ2NiwgMS4xODY5NCIsIFwKLSAgICAgICAgICAiMC4xOTQ3MDQsIDAuMjA1MjIzLCAwLjI5OTkwNiwgMC40NTc3MzQsIDAuNjE1NTA2LCAwLjk4Mzc2OCwgMS4xOTQxNiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTU2NDcsIDAuMTM3ODQ4LCAwLjMzNzM4NCwgMC42NjkzNTIsIDEuMDAyNTUsIDEuNzc4NjUsIDIuMjE5MDciLCBcCi0gICAgICAgICAgIjAuMTE1NjUxLCAwLjEzNzg1NywgMC4zMzc0NjUsIDAuNjY5OTk4LCAxLjAwMjU4LCAxLjc3ODQzLCAyLjIxOCIsIFwKLSAgICAgICAgICAiMC4xMTU2NjEsIDAuMTM3ODYyLCAwLjMzNzQ2LCAwLjY2OTk3NiwgMS4wMDIyNywgMS43NzU5MiwgMi4yMjIwMyIsIFwKLSAgICAgICAgICAiMC4xMTU2NjIsIDAuMTM3ODU0LCAwLjMzNzI4OCwgMC42Njk5ODIsIDEuMDAyNTIsIDEuNzc4NTksIDIuMjE5MjciLCBcCi0gICAgICAgICAgIjAuMTE1NjU1LCAwLjEzNzg1NSwgMC4zMzc0NDgsIDAuNjY5MzE2LCAxLjAwMTUyLCAxLjc3ODI3LCAyLjIyMTA3IiwgXAotICAgICAgICAgICIwLjExNTY1MywgMC4xMzc4NTEsIDAuMzM3MzM0LCAwLjY2OTk2NiwgMS4wMDE2NSwgMS43NzU5NiwgMi4yMTkzMiIsIFwKLSAgICAgICAgICAiMC4xMTU2NiwgMC4xMzc4NjMsIDAuMzM3Mzg5LCAwLjY2OTgwNSwgMS4wMDE1NSwgMS43NzYzNiwgMi4yMTkyNiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMjY0MjcsIDAuMTM2MDc1LCAwLjIyMjg5NywgMC4zNjc1MjIsIDAuNTEyMTg5LCAwLjg0OTc1MywgMS4wNDI3NyIsIFwKLSAgICAgICAgICAiMC4xMzMwMjMsIDAuMTQyNjY4LCAwLjIyOTQ5LCAwLjM3NDIxMiwgMC41MTg4NTMsIDAuODU2NDE2LCAxLjA0OTM3IiwgXAotICAgICAgICAgICIwLjE0MDcyNiwgMC4xNTAzNzEsIDAuMjM3MTg4LCAwLjM4MTg3MSwgMC41MjY1NzQsIDAuODY0MTY0LCAxLjA1NzA5IiwgXAotICAgICAgICAgICIwLjE0OTQ2OSwgMC4xNTkxMTUsIDAuMjQ1OTMzLCAwLjM5MDYxNywgMC41MzUzMTMsIDAuODcyOTA3LCAxLjA2NTg5IiwgXAotICAgICAgICAgICIwLjE1NjcwNSwgMC4xNjYzNSwgMC4yNTMxNywgMC4zOTc4ODIsIDAuNTQyNTM0LCAwLjg4MDE0NywgMS4wNzMwMyIsIFwKLSAgICAgICAgICAiMC4xNjYyOTIsIDAuMTc1OTQ1LCAwLjI2MjczNSwgMC40MDc0MjgsIDAuNTUyMTA3LCAwLjg4OTY5NSwgMS4wODI1OSIsIFwKLSAgICAgICAgICAiMC4xNzMxMDMsIDAuMTgyNzYsIDAuMjY5NTY4LCAwLjQxNDMwMiwgMC41NTg5NjQsIDAuODk2NTU1LCAxLjA4OTQzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwMzU1MiwgMC4xMjMzMzcsIDAuMzAxODM0LCAwLjU5OTI4MywgMC44OTcwMjcsIDEuNTg4OTksIDEuOTg3NyIsIFwKLSAgICAgICAgICAiMC4xMDM1NTQsIDAuMTIzMzM4LCAwLjMwMTgzNywgMC41OTkzNjcsIDAuODk2Nzg5LCAxLjU4ODk2LCAxLjk4NzciLCBcCi0gICAgICAgICAgIjAuMTAzNTUzLCAwLjEyMzMzNCwgMC4zMDE4MjksIDAuNTk5NDI1LCAwLjg5Njg5LCAxLjU4ODk3LCAxLjk4Nzc2IiwgXAotICAgICAgICAgICIwLjEwMzU1MywgMC4xMjMzMjcsIDAuMzAxODI1LCAwLjU5OTQxNiwgMC44OTY4NDMsIDEuNTg4ODksIDEuOTg3OTEiLCBcCi0gICAgICAgICAgIjAuMTAzNTU3LCAwLjEyMzM0NCwgMC4zMDE4MTksIDAuNTk5Mzg5LCAwLjg5NzAwOSwgMS41ODkzNCwgMS45ODUxNyIsIFwKLSAgICAgICAgICAiMC4xMDM1NCwgMC4xMjMzMzgsIDAuMzAxNjkzLCAwLjU5OTMyNSwgMC44OTcwNTQsIDEuNTkxMSwgMS45ODczIiwgXAotICAgICAgICAgICIwLjEwMzM0MiwgMC4xMjMxOTMsIDAuMzAxODE5LCAwLjU5OTQyNCwgMC44OTY4NSwgMS41OTA2OSwgMS45ODgwMSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0OTg5LCAwLjAwNDk5LCAwLjAwNDk5NSwgMC4wMDQ5OTYsIDAuMDA0OTk3LCAwLjAwNSwgMC4wMDQ5OTciLCBcCi0gICAgICAgICAgIjAuMDA0OTg0LCAwLjAwNDk4NSwgMC4wMDQ5ODksIDAuMDA0OTkxLCAwLjAwNDk5MSwgMC4wMDQ5OTUsIDAuMDA0OTkyIiwgXAotICAgICAgICAgICIwLjAwNTAyMSwgMC4wMDUwMjIsIDAuMDA1MDI2LCAwLjAwNTAyOCwgMC4wMDUwMjgsIDAuMDA1MDMyLCAwLjAwNTAzMiIsIFwKLSAgICAgICAgICAiMC4wMDUwNzIsIDAuMDA1MDczLCAwLjAwNTA3OCwgMC4wMDUwNzksIDAuMDA1MDgsIDAuMDA1MDgzLCAwLjAwNTA4IiwgXAotICAgICAgICAgICIwLjAwNTE0LCAwLjAwNTE0MSwgMC4wMDUxNDYsIDAuMDA1MTQ4LCAwLjAwNTE0OCwgMC4wMDUxNDksIDAuMDA1MTQ5IiwgXAotICAgICAgICAgICIwLjAwNTI0NSwgMC4wMDUyMjYsIDAuMDA1MjMxLCAwLjAwNTIzNCwgMC4wMDUyMzUsIDAuMDA1MjM1LCAwLjAwNTIzNSIsIFwKLSAgICAgICAgICAiMC4wMDUzMTMsIDAuMDA1MzE0LCAwLjAwNTMyLCAwLjAwNTMyLCAwLjAwNTMyMSwgMC4wMDUzMjgsIDAuMDA1MzI4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1NjkxLCAwLjAwNTY5MiwgMC4wMDU2OTcsIDAuMDA1Njk4LCAwLjAwNTY5OSwgMC4wMDU2OTksIDAuMDA1NyIsIFwKLSAgICAgICAgICAiMC4wMDU2OTIsIDAuMDA1Njk0LCAwLjAwNTY5OCwgMC4wMDU3LCAwLjAwNTcsIDAuMDA1NzAxLCAwLjAwNTcwMSIsIFwKLSAgICAgICAgICAiMC4wMDU3MzYsIDAuMDA1NzM3LCAwLjAwNTc0MiwgMC4wMDU3NDQsIDAuMDA1NzQ0LCAwLjAwNTc0NSwgMC4wMDU3NDYiLCBcCi0gICAgICAgICAgIjAuMDA1Nzk5LCAwLjAwNTgsIDAuMDA1ODA0LCAwLjAwNTgwNiwgMC4wMDU4MDgsIDAuMDA1ODA3LCAwLjAwNTgwNyIsIFwKLSAgICAgICAgICAiMC4wMDU4NjksIDAuMDA1ODcsIDAuMDA1ODc1LCAwLjAwNTg3NiwgMC4wMDU4NzgsIDAuMDA1ODc4LCAwLjAwNTg3OCIsIFwKLSAgICAgICAgICAiMC4wMDU5ODUsIDAuMDA1OTg2LCAwLjAwNTk5MSwgMC4wMDU5OTMsIDAuMDA1OTk0LCAwLjAwNTk5NCwgMC4wMDU5NzgiLCBcCi0gICAgICAgICAgIjAuMDA2MDY1LCAwLjAwNjA2NiwgMC4wMDYwNjksIDAuMDA2MDcsIDAuMDA2MDcxLCAwLjAwNjA3MiwgMC4wMDYwNzIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2MDg0LCAwLjAwNjA4NCwgMC4wMDYwNzcsIDAuMDA2MDcxLCAwLjAwNjA2OSwgMC4wMDYwNjYsIDAuMDA2MDY1IiwgXAotICAgICAgICAgICIwLjAwNjA4MywgMC4wMDYwODMsIDAuMDA2MDc2LCAwLjAwNjA3LCAwLjAwNjA2OCwgMC4wMDYwNjYsIDAuMDA2MDY0IiwgXAotICAgICAgICAgICIwLjAwNjExNSwgMC4wMDYxMTQsIDAuMDA2MTA4LCAwLjAwNjEwMSwgMC4wMDYwOTksIDAuMDA2MDk1LCAwLjAwNjA5NSIsIFwKLSAgICAgICAgICAiMC4wMDYxNTksIDAuMDA2MTU5LCAwLjAwNjE1MiwgMC4wMDYxNDYsIDAuMDA2MTQzLCAwLjAwNjEzOSwgMC4wMDYxMzkiLCBcCi0gICAgICAgICAgIjAuMDA2MjEyLCAwLjAwNjIxMiwgMC4wMDYyMDUsIDAuMDA2MTk5LCAwLjAwNjE5NiwgMC4wMDYxOTMsIDAuMDA2MTkyIiwgXAotICAgICAgICAgICIwLjAwNjMxMSwgMC4wMDYzMTEsIDAuMDA2MzA0LCAwLjAwNjI5NywgMC4wMDYyOTQsIDAuMDA2MjksIDAuMDA2Mjg5IiwgXAotICAgICAgICAgICIwLjAwNjQwNywgMC4wMDY0MDgsIDAuMDA2Mzk3LCAwLjAwNjM5MiwgMC4wMDYzODksIDAuMDA2Mzg1LCAwLjAwNjM4NCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihzY2FsYXIpIHsKLSAgICAgICAgdmFsdWVzKCIwIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiU04iOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDQwOSwgMC4wMDQ0MSwgMC4wMDQ0MTQsIDAuMDA0NDE2LCAwLjAwNDQxNiwgMC4wMDQ0MTYsIDAuMDA0NDE3IiwgXAotICAgICAgICAgICIwLjAwNDM3OCwgMC4wMDQzOCwgMC4wMDQzODQsIDAuMDA0Mzg2LCAwLjAwNDM4NiwgMC4wMDQzODgsIDAuMDA0Mzg3IiwgXAotICAgICAgICAgICIwLjAwNDM3LCAwLjAwNDM3MiwgMC4wMDQzNzYsIDAuMDA0Mzc3LCAwLjAwNDM3OCwgMC4wMDQzNzksIDAuMDA0Mzc4IiwgXAotICAgICAgICAgICIwLjAwNDM3NiwgMC4wMDQzNzcsIDAuMDA0MzgxLCAwLjAwNDM4MywgMC4wMDQzODMsIDAuMDA0Mzg0LCAwLjAwNDM4NCIsIFwKLSAgICAgICAgICAiMC4wMDQzOTMsIDAuMDA0Mzk1LCAwLjAwNDQsIDAuMDA0NDAxLCAwLjAwNDQwMiwgMC4wMDQ0MDIsIDAuMDA0NDAyIiwgXAotICAgICAgICAgICIwLjAwNDQ0NCwgMC4wMDQ0NDYsIDAuMDA0NDUxLCAwLjAwNDQ1MiwgMC4wMDQ0NTIsIDAuMDA0NDUzLCAwLjAwNDQ1MyIsIFwKLSAgICAgICAgICAiMC4wMDQ0OTEsIDAuMDA0NDkyLCAwLjAwNDQ5NywgMC4wMDQ0OTgsIDAuMDA0NDk5LCAwLjAwNDUsIDAuMDA0NDk5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2MDM2LCAwLjAwNjAzNywgMC4wMDYwNDIsIDAuMDA2MDQ0LCAwLjAwNjA0NCwgMC4wMDYwNDQsIDAuMDA2MDQ0IiwgXAotICAgICAgICAgICIwLjAwNjAyNSwgMC4wMDYwMjYsIDAuMDA2MDMsIDAuMDA2MDMxLCAwLjAwNjAzMiwgMC4wMDYwMzIsIDAuMDA2MDMyIiwgXAotICAgICAgICAgICIwLjAwNjA0NiwgMC4wMDYwNDcsIDAuMDA2MDUyLCAwLjAwNjA1MywgMC4wMDYwNTMsIDAuMDA2MDU0LCAwLjAwNjA1NCIsIFwKLSAgICAgICAgICAiMC4wMDYwODIsIDAuMDA2MDg0LCAwLjAwNjA4OCwgMC4wMDYwODksIDAuMDA2MDksIDAuMDA2MDksIDAuMDA2MDkxIiwgXAotICAgICAgICAgICIwLjAwNjEzNiwgMC4wMDYxMzcsIDAuMDA2MTQyLCAwLjAwNjE0NCwgMC4wMDYxNDQsIDAuMDA2MTQ0LCAwLjAwNjE0NSIsIFwKLSAgICAgICAgICAiMC4wMDYyNTMsIDAuMDA2MjU1LCAwLjAwNjI1OSwgMC4wMDYyNjEsIDAuMDA2MjYyLCAwLjAwNjI2MiwgMC4wMDYyNjIiLCBcCi0gICAgICAgICAgIjAuMDA2MzcsIDAuMDA2MzcsIDAuMDA2Mzc2LCAwLjAwNjM3NywgMC4wMDYzNzcsIDAuMDA2Mzc4LCAwLjAwNjM3OCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUk4pICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY0MzQ5NzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2NDM0NTk7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjQzNDk3OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDYsIDAuMDAwNjAyLCAwLjAwMDY2NywgMC4wMDA3NjgsIDAuMDAwODc5LCAwLjAwMTA4OSwgMC4wMDEyOTgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDMsIDAuMDAzMDAyLCAwLjAwMzA2NiwgMC4wMDMxNjMsIDAuMDAzMjgxLCAwLjAwMzUzMywgMC4wMDM2ODYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUk4iOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFEJiFTRSYhU0kmU04iOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1NFX0VRXzBfQU5fU0lfRVFfMF9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgZmFsbF9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMTYyMTMxLCAwLjE3MDAwNSwgMC4xNzc5ODQsIDAuMTgzODI0LCAwLjE4ODQ0LCAwLjE5NDczLCAwLjE5OTMyMSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDS04iOwotICAgICAgdGltaW5nX3R5cGUgOiByZWNvdmVyeV9mYWxsaW5nOwotICAgICAgd2hlbiA6ICJTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJTTiA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChyZWNvdmVyeV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjUsIDAuMDIsIDAuMDA3NSwgMC4wMDEyNSwgLTAuMDA1LCAtMC4wMDg3NSwgLTAuMDE3NSIsIFwKLSAgICAgICAgICAiMC4wMzYyNSwgMC4wMjUsIDAuMDE4NzUsIDAuMDA2MjUsIDAuMDA2MjUsIC0wLjAwMzc1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiMC4wNDI1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMTg3NSwgMC4wMTI1LCAwLjAwMjUsIDAiLCBcCi0gICAgICAgICAgIjAuMDQ4NzUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMjUsIDAuMDE4NzUsIDAuMDA4NzUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMDU1LCAwLjA0Mzc1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMTg3NSwgMC4wMTUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMDU4NzUsIDAuMDQ3NSwgMC4wNDEyNSwgMC4wMzUsIDAuMDI4NzUsIDAuMDE4NzUsIDAuMDE2MjUiLCBcCi0gICAgICAgICAgIjAuMDYxMjUsIDAuMDU2MjUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMjc1LCAwLjAxODc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIHRpbWluZ190eXBlIDogcmVjb3ZlcnlfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRCYhU0UmIVNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9TRV9FUV8wX0FOX1NJX0VRXzAgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQocmVjb3ZlcnlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDUsIDAuMDYxMjUsIDAuMDY3NSwgMC4wNzM3NSwgMC4wNzM3NSwgMC4wODM3NSwgMC4wOTI1IiwgXAotICAgICAgICAgICIwLjA0NSwgMC4wNSwgMC4wNTYyNSwgMC4wNjI1LCAwLjA2ODc1LCAwLjA3ODc1LCAwLjA4NzUiLCBcCi0gICAgICAgICAgIjAuMDQ1LCAwLjA1LCAwLjA1NjI1LCAwLjA2MjUsIDAuMDYyNSwgMC4wNzI1LCAwLjA4MTI1IiwgXAotICAgICAgICAgICIwLjAzODc1LCAwLjA0Mzc1LCAwLjA1LCAwLjA1NjI1LCAwLjA2MjUsIDAuMDcyNSwgMC4wNzUiLCBcCi0gICAgICAgICAgIjAuMDM4NzUsIDAuMDQzNzUsIDAuMDUsIDAuMDU2MjUsIDAuMDYyNSwgMC4wNjYyNSwgMC4wNzUiLCBcCi0gICAgICAgICAgIjAuMDM1LCAwLjA0LCAwLjA0NjI1LCAwLjA1MjUsIDAuMDU4NzUsIDAuMDY4NzUsIDAuMDcxMjUiLCBcCi0gICAgICAgICAgIjAuMDMyNSwgMC4wNDM3NSwgMC4wNDM3NSwgMC4wNSwgMC4wNTYyNSwgMC4wNjYyNSwgMC4wNjg3NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDS04iOwotICAgICAgdGltaW5nX3R5cGUgOiByZW1vdmFsX2ZhbGxpbmc7Ci0gICAgICB3aGVuIDogIlNOIjsKLSAgICAgIHNkZl9jb25kIDogIlNOID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHJlbW92YWxfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAsIDAuMDA1LCAwLjAxNzUsIDAuMDIzNzUsIDAuMDMsIDAuMDMzNzUsIDAuMDM2MjUiLCBcCi0gICAgICAgICAgIi0wLjAxMTI1LCAwLCAwLjAwNjI1LCAwLjAxMjUsIDAuMDE4NzUsIDAuMDI4NzUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjAxNzUsIC0wLjAwNjI1LCAwLCAwLjAwNjI1LCAwLjAxMjUsIDAuMDE2MjUsIDAuMDI1IiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAsIDAuMDA2MjUsIDAuMDEsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAsIDAuMDEsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDMzNzUsIC0wLjAyODc1LCAtMC4wMTYyNSwgLTAuMDEsIC0wLjAwMzc1LCAwLCAwLjAwODc1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDMxMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMTI1LCAtMC4wMDI1LCAwIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTRSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxMzkxNDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDEzOTE0OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTM5MDY1OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNTU3OSwgMC4wMDU1OTMsIDAuMDA1NjgxLCAwLjAwNTc5NiwgMC4wMDU5NDcsIDAuMDA2MTQ0LCAwLjAwNjMzMiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNzI5OSwgMC4wMDczMjcsIDAuMDA3NDM1LCAwLjAwNzU5OSwgMC4wMDc4MDksIDAuMDA4MTc0LCAwLjAwODUwNyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDS04iOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX2ZhbGxpbmc7Ci0gICAgICB3aGVuIDogIlJOJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIlJOX0VRXzFfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMDYyNSwgLTAuMDAxMjUsIDAuMDA1LCAwLjAxMTI1LCAwLjAxNzUsIDAuMDIxMjUsIDAuMDIzNzUiLCBcCi0gICAgICAgICAgIi0wLjAxNzUsIC0wLjAwNjI1LCAwLCAwLjAwNjI1LCAwLjAwNjI1LCAwLjAxNjI1LCAwLjAxODc1IiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLCAwLjAwMzc1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgLTAuMDAyNSwgMCIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwODc1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDQ2MjUsIC0wLjA0MTI1LCAtMC4wMzUsIC0wLjAyODc1LCAtMC4wMjI1LCAtMC4wMTg3NSwgLTAuMDE2MjUiLCBcCi0gICAgICAgICAgIi0wLjA1NSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDI3NSwgLTAuMDE4NzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMTg3NSwgLTAuMDEzNzUsIC0wLjAwNzUsIC0wLjAwMTI1LCAwLjAwNSwgMC4wMDg3NSwgMC4wMTc1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLCAwLjAwMzc1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIC0wLjAwMjUsIDAiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDI1LCAwIiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA4NzUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wNDYyNSwgLTAuMDM1LCAtMC4wMjg3NSwgLTAuMDIyNSwgLTAuMDE2MjUsIC0wLjAxMjUsIC0wLjAxIiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDI1LCAtMC4wMTUsIC0wLjAxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0tOIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfZmFsbGluZzsKLSAgICAgIHdoZW4gOiAiUk4mU04iOwotICAgICAgc2RmX2NvbmQgOiAiUk5fRVFfMV9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4MTI1LCAwLjA3NjI1LCAwLjA2Mzc1LCAwLjA1NzUsIDAuMDU3NSwgMC4wNTM3NSwgMC4wNTEyNSIsIFwKLSAgICAgICAgICAiMC4wOTI1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1ODc1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICIwLjA5MjUsIDAuMDg3NSwgMC4wNzUsIDAuMDc1LCAwLjA2ODc1LCAwLjA2NSwgMC4wNjI1IiwgXAotICAgICAgICAgICIwLjA5ODc1LCAwLjA5Mzc1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNzUsIDAuMDcxMjUsIDAuMDY4NzUiLCBcCi0gICAgICAgICAgIjAuMTA1LCAwLjA5Mzc1LCAwLjA4NzUsIDAuMDgxMjUsIDAuMDc1LCAwLjA3MTI1LCAwLjA2ODc1IiwgXAotICAgICAgICAgICIwLjEwODc1LCAwLjA5NzUsIDAuMDkxMjUsIDAuMDg1LCAwLjA3ODc1LCAwLjA3NSwgMC4wNzI1IiwgXAotICAgICAgICAgICIwLjExMTI1LCAwLjEsIDAuMDkzNzUsIDAuMDg3NSwgMC4wODc1LCAwLjA3NzUsIDAuMDc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc1LCAwLjA2Mzc1LCAwLjA1NzUsIDAuMDUxMjUsIDAuMDQ1LCAwLjA0MTI1LCAwLjAzODc1IiwgXAotICAgICAgICAgICIwLjA4LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDU2MjUsIDAuMDQ2MjUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMDkyNSwgMC4wODEyNSwgMC4wNzUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNTg3NSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiMC4wOTg3NSwgMC4wODc1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjUsIDAuMDYyNSIsIFwKLSAgICAgICAgICAiMC4xMDUsIDAuMSwgMC4wODc1LCAwLjA4MTI1LCAwLjA4MTI1LCAwLjA3NzUsIDAuMDc1IiwgXAotICAgICAgICAgICIwLjExNSwgMC4xMSwgMC4wOTc1LCAwLjA5MTI1LCAwLjA5MTI1LCAwLjA4NzUsIDAuMDg1IiwgXAotICAgICAgICAgICIwLjEyMzc1LCAwLjExODc1LCAwLjEwNjI1LCAwLjEsIDAuMSwgMC4wOTYyNSwgMC4wOTM3NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oU0kpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY2NDI0NDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2NjI2NTU7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjY0MjQ0OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzk4OSwgMC4wMDM5NjksIDAuMDAzOTg2LCAwLjAwNDAyMiwgMC4wMDQwODUsIDAuMDA0MTk4LCAwLjAwNDMxMiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNjA0LCAwLjAwNjAyNCwgMC4wMDYwMzYsIDAuMDA2MDcyLCAwLjAwNjEyNSwgMC4wMDYyMjQsIDAuMDA2MzM1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfZmFsbGluZzsKLSAgICAgIHdoZW4gOiAiUk4mU0UmU04iOwotICAgICAgc2RmX2NvbmQgOiAiUk5fRVFfMV9BTl9TRV9FUV8xX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDEyNSwgLTAuMDA3NSwgMC4wMDUsIDAuMDExMjUsIDAuMDExMjUsIDAuMDIxMjUsIDAuMDIzNzUiLCBcCi0gICAgICAgICAgIi0wLjAxNzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLCAwLjAwNjI1LCAwLjAxLCAwLjAxODc1IiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLCAwLjAwMzc1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgLTAuMDAyNSwgMCIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDg3NSwgMCIsIFwKLSAgICAgICAgICAiLTAuMDQ2MjUsIC0wLjA0MTI1LCAtMC4wMjg3NSwgLTAuMDI4NzUsIC0wLjAyMjUsIC0wLjAxMjUsIC0wLjAxIiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMjEyNSwgLTAuMDE4NzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMzc1LCAtMC4wMzI1LCAtMC4wMzI1LCAtMC4wMjYyNSwgLTAuMDI2MjUsIC0wLjAyMjUsIC0wLjAyIiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzc1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDMxMjUsIC0wLjAyNzUsIC0wLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjA0Mzc1LCAtMC4wNDM3NSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzMzc1LCAtMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNSwgLTAuMDUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDQsIC0wLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjA2MTI1LCAtMC4wNTYyNSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNSwgLTAuMDQ2MjUsIC0wLjA0Mzc1IiwgXAotICAgICAgICAgICItMC4wNzEyNSwgLTAuMDY2MjUsIC0wLjA2LCAtMC4wNiwgLTAuMDYsIC0wLjA1NjI1LCAtMC4wNTM3NSIsIFwKLSAgICAgICAgICAiLTAuMDczNzUsIC0wLjA2ODc1LCAtMC4wNjg3NSwgLTAuMDYyNSwgLTAuMDYyNSwgLTAuMDU4NzUsIC0wLjA2MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0tOIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfZmFsbGluZzsKLSAgICAgIHdoZW4gOiAiUk4mU0UmU04iOwotICAgICAgc2RmX2NvbmQgOiAiUk5fRVFfMV9BTl9TRV9FUV8xX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDYyNSwgMC4wNTEyNSwgMC4wNDUsIDAuMDM4NzUsIDAuMDMyNSwgMC4wMjg3NSwgMC4wMiIsIFwKLSAgICAgICAgICAiMC4wNjc1LCAwLjA1NjI1LCAwLjA1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDMzNzUsIDAuMDI1IiwgXAotICAgICAgICAgICIwLjA3Mzc1LCAwLjA2ODc1LCAwLjA1NjI1LCAwLjA1LCAwLjA0Mzc1LCAwLjA0LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIjAuMDgsIDAuMDc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDUsIDAuMDQ2MjUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMDg2MjUsIDAuMDgxMjUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNTI1LCAwLjA1IiwgXAotICAgICAgICAgICIwLjA5NjI1LCAwLjA5MTI1LCAwLjA3ODc1LCAwLjA3MjUsIDAuMDY2MjUsIDAuMDYyNSwgMC4wNiIsIFwKLSAgICAgICAgICAiMC4xMDUsIDAuMDkzNzUsIDAuMDg3NSwgMC4wODEyNSwgMC4wNzUsIDAuMDcxMjUsIDAuMDYyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3NSwgMC4wNywgMC4wNTc1LCAwLjA1MTI1LCAwLjA1MTI1LCAwLjA0NzUsIDAuMDQ1IiwgXAotICAgICAgICAgICIwLjA4LCAwLjA3NSwgMC4wNjI1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDUyNSwgMC4wNSIsIFwKLSAgICAgICAgICAiMC4wOTI1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1ODc1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICIwLjA5ODc1LCAwLjA4NzUsIDAuMDgxMjUsIDAuMDc1LCAwLjA2ODc1LCAwLjA2NSwgMC4wNjI1IiwgXAotICAgICAgICAgICIwLjEwNSwgMC4wOTM3NSwgMC4wODc1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNzEyNSwgMC4wNjg3NSIsIFwKLSAgICAgICAgICAiMC4xMDg3NSwgMC4xMDM3NSwgMC4wOTEyNSwgMC4wODUsIDAuMDg1LCAwLjA4MTI1LCAwLjA3ODc1IiwgXAotICAgICAgICAgICIwLjExNzUsIDAuMTA2MjUsIDAuMSwgMC4wOTM3NSwgMC4wODc1LCAwLjA4Mzc1LCAwLjA4MTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTTikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNjM3MzM7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNjM3MzM7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNjM2ODk7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNTkzLCAwLjAwMDU5MiwgMC4wMDA1OTIsIDAuMDAwNTkyLCAwLjAwMDU5MiwgMC4wMDA1OTIsIDAuMDAwNTkyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNjAzLCAwLjAwMDU5NywgMC4wMDA1OTYsIDAuMDAwNTk2LCAwLjAwMDU5NSwgMC4wMDA1OTQsIDAuMDAwNTk0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRCYhUk4mIVNFJiFTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fUk5fRVFfMF9BTl9TRV9FUV8wX0FOX1NJX0VRXzAgPT0gMSdiMSI7Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4xMjYzNTgsIDAuMTMyOTk4LCAwLjE0MDcyNiwgMC4xNDk0NjksIDAuMTU2NzA0LCAwLjE2NjI5MiwgMC4xNzMxMDMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0tOIjsKLSAgICAgIHRpbWluZ190eXBlIDogcmVjb3ZlcnlfZmFsbGluZzsKLSAgICAgIHdoZW4gOiAiUk4iOwotICAgICAgc2RmX2NvbmQgOiAiUk4gPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQocmVjb3ZlcnlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDI1LCAwLjAxMzc1LCAwLjAwNzUsIDAuMDAxMjUsIC0wLjAwNSwgLTAuMDE1LCAtMC4wMTc1IiwgXAotICAgICAgICAgICIwLjAzLCAwLjAxODc1LCAwLjAxMjUsIDAuMDA2MjUsIDAsIC0wLjAwMzc1LCAtMC4wMTI1IiwgXAotICAgICAgICAgICIwLjAzNjI1LCAwLjAyNSwgMC4wMTg3NSwgMC4wMTI1LCAwLjAwNjI1LCAwLjAwMjUsIDAiLCBcCi0gICAgICAgICAgIjAuMDQyNSwgMC4wMzc1LCAwLjAyNSwgMC4wMTg3NSwgMC4wMTI1LCAwLjAwODc1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICIwLjA0ODc1LCAwLjA0Mzc1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMjUsIDAuMDE1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMDY1LCAwLjA1Mzc1LCAwLjA0MTI1LCAwLjAzNSwgMC4wMzUsIDAuMDI1LCAwLjAyMjUiLCBcCi0gICAgICAgICAgIjAuMDY3NSwgMC4wNjI1LCAwLjA1LCAwLjA0Mzc1LCAwLjA0Mzc1LCAwLjAzMzc1LCAwLjAzMTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJlbW92YWxfZmFsbGluZzsKLSAgICAgIHdoZW4gOiAiUk4iOwotICAgICAgc2RmX2NvbmQgOiAiUk4gPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQocmVtb3ZhbF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDYyNSwgMC4wMTc1LCAwLjAyMzc1LCAwLjAzLCAwLjAzNjI1LCAwLjA0LCAwLjA0ODc1IiwgXAotICAgICAgICAgICIwLjAwMTI1LCAwLjAxMjUsIDAuMDE4NzUsIDAuMDI1LCAwLjAzMTI1LCAwLjAzNSwgMC4wMzc1IiwgXAotICAgICAgICAgICItMC4wMDUsIDAuMDA2MjUsIDAuMDEyNSwgMC4wMTg3NSwgMC4wMjUsIDAuMDI4NzUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjAxMTI1LCAwLCAwLjAwNjI1LCAwLjAxMjUsIDAuMDE4NzUsIDAuMDIyNSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDExMjUsIC0wLjAwNjI1LCAwLjAwNjI1LCAwLjAxMjUsIDAuMDEyNSwgMC4wMjI1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDE1LCAtMC4wMSwgLTAuMDAzNzUsIDAuMDAyNSwgMC4wMDg3NSwgMC4wMTg3NSwgMC4wMjEyNSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLCAwLjAwNjI1LCAwLjAxLCAwLjAxODc1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogU0RGRlFYMSAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChTREZGUVgxKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuODkxNzYxOwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIGZmIChOMzAsUUJJTlQpIHsKLSAgICBuZXh0X3N0YXRlIDogIigoU0UgU0kpICsgKCFTRSBEKSkiOwotICAgIGNsb2NrZWRfb24gOiAiQ0siOwotICB9Ci0gIHBpbihDSykgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjA4MDU3OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYwODA1NzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2MDc5OTU7Ci0gICAgY2xvY2sgOiB0cnVlOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzQ1MSwgMC4wMDM0NDUsIDAuMDAzNTI5LCAwLjAwMzYyMSwgMC4wMDM3NDgsIDAuMDAzOTg2LCAwLjAwNDE2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA3NDY0LCAwLjAwNzQ2MywgMC4wMDc1NSwgMC4wMDc2NzksIDAuMDA3ODM4LCAwLjAwODAyLCAwLjAwODMyMiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQmIVNFJiFTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fU0VfRVFfMF9BTl9TSV9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMTAwMDk2LCAwLjEwODI0NywgMC4xMTcyNjIsIDAuMTI0MDQ2LCAwLjEyOTQ2NCwgMC4xMzY3NjksIDAuMTQyMjMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjA2MDM5NSwgMC4wNjg0ODgsIDAuMDc3MzE3LCAwLjA4Mzg2NywgMC4wODkyMzYsIDAuMDk2MjE5LCAwLjEwMTM0NyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjg3Mzg1OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDY4NjI1NTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2ODczODU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzMjgxLCAwLjAwMzI1OSwgMC4wMDMyODgsIDAuMDAzMzM2LCAwLjAwMzM5NSwgMC4wMDM1MTUsIDAuMDAzNjQyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA1MTY2LCAwLjAwNTE0OSwgMC4wMDUxNzUsIDAuMDA1MjIxLCAwLjAwNTI4NiwgMC4wMDUzOTgsIDAuMDA1NTE1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJTRSA9PSAxJ2IwIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMzEyNSwgLTAuMDI2MjUsIC0wLjAyLCAtMC4wMiwgLTAuMDEzNzUsIC0wLjAxLCAtMC4wMDc1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDI1LCAtMC4wMjUsIC0wLjAyMTI1LCAtMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDM3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAzMTI1LCAtMC4wMjc1LCAtMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wNDM3NSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzNzUsIC0wLjAzMzc1LCAtMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wNDM3NSwgLTAuMDQsIC0wLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjA2NSwgLTAuMDYsIC0wLjA1Mzc1LCAtMC4wNTM3NSwgLTAuMDUzNzUsIC0wLjA1LCAtMC4wNDc1IiwgXAotICAgICAgICAgICItMC4wNjc1LCAtMC4wNjI1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDU2MjUsIC0wLjA1MjUsIC0wLjA1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDEyNSwgLTAuMDAxMjUsIDAuMDA1LCAwLjAxMTI1LCAwLjAxMTI1LCAwLjAyMTI1LCAwLjAyMzc1IiwgXAotICAgICAgICAgICItMC4wMTc1LCAtMC4wMTI1LCAwLCAwLCAwLjAwNjI1LCAwLjAxLCAwLjAxODc1IiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLCAwLjAwMzc1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMjUsIC0wLjAxMjUsIC0wLjAxMjUsIC0wLjAwNjI1LCAtMC4wMDI1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDEyNSwgLTAuMDAyNSwgMCIsIFwKLSAgICAgICAgICAiLTAuMDQsIC0wLjAzNSwgLTAuMDI4NzUsIC0wLjAyMjUsIC0wLjAxNjI1LCAtMC4wMTI1LCAtMC4wMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxNSwgLTAuMDEyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIVNFIjsKLSAgICAgIHNkZl9jb25kIDogIlNFID09IDEnYjAiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1LCAwLjA0NSwgMC4wMzg3NSwgMC4wMzI1LCAwLjAzMjUsIDAuMDI4NzUsIDAuMDI2MjUiLCBcCi0gICAgICAgICAgIjAuMDYxMjUsIDAuMDUsIDAuMDQzNzUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzM3NSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4wNjc1LCAwLjA1NjI1LCAwLjA1LCAwLjA1LCAwLjA0Mzc1LCAwLjA0LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIjAuMDczNzUsIDAuMDYyNSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1LCAwLjA0NjI1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjA4LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNTI1LCAwLjA1IiwgXAotICAgICAgICAgICIwLjA5LCAwLjA3ODc1LCAwLjA3MjUsIDAuMDcyNSwgMC4wNjYyNSwgMC4wNjI1LCAwLjA2IiwgXAotICAgICAgICAgICIwLjA5MjUsIDAuMDg3NSwgMC4wODEyNSwgMC4wNzUsIDAuMDc1LCAwLjA3MTI1LCAwLjA2ODc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM3NSwgMC4wMzI1LCAwLjAyNjI1LCAwLjAyLCAwLjAxMzc1LCAwLjAwMzc1LCAwLjAwMTI1IiwgXAotICAgICAgICAgICIwLjA0ODc1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDI1LCAwLjAxODc1LCAwLjAwODc1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICIwLjA1NSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMTUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4wNjEyNSwgMC4wNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyMTI1LCAwLjAxODc1IiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDU2MjUsIDAuMDUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMjc1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiMC4wNzEyNSwgMC4wNjYyNSwgMC4wNTM3NSwgMC4wNDc1LCAwLjA0MTI1LCAwLjAzNzUsIDAuMDI4NzUiLCBcCi0gICAgICAgICAgIjAuMDgsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNSwgMC4wNCwgMC4wMzc1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihRKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMzQ4MzI7Ci0gICAgZnVuY3Rpb24gOiAiTjMwIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBub25fdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJpc2luZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTA4NzMsIDAuMTA5NDE5LCAwLjIxNDY5MiwgMC4zMDc2NTUsIDAuNDMxNzA0LCAwLjY3OTg5MSwgMC44MzQ4NzkiLCBcCi0gICAgICAgICAgIjAuMDk4OTY4LCAwLjExNzUxMywgMC4yMjI4MSwgMC4zMTU3NSwgMC40Mzk3NTgsIDAuNjg3ODg3LCAwLjg0Mjk4NyIsIFwKLSAgICAgICAgICAiMC4xMDc2MzgsIDAuMTI2MTg4LCAwLjIzMTQ4MiwgMC4zMjQ0MTgsIDAuNDQ4MzU2LCAwLjY5NjU0MiwgMC44NTE2MzciLCBcCi0gICAgICAgICAgIjAuMTE0NTEsIDAuMTMzMDY3LCAwLjIzODM2NiwgMC4zMzEyOTEsIDAuNDU1MzIsIDAuNzAzMzc4LCAwLjg1ODQ3MSIsIFwKLSAgICAgICAgICAiMC4xMTk4OTUsIDAuMTM4NDUxLCAwLjI0Mzc1NiwgMC4zMzY2NzIsIDAuNDYwNjg4LCAwLjcwODc5NCwgMC44NjM4MjUiLCBcCi0gICAgICAgICAgIjAuMTI2OTk2LCAwLjE0NTU3LCAwLjI1MDgzNCwgMC4zNDM4MDMsIDAuNDY3NzY4LCAwLjcxNTg0LCAwLjg3MDg5IiwgXAotICAgICAgICAgICIwLjEzMjQzNiwgMC4xNTEwMDYsIDAuMjU2MjQyLCAwLjM0OTIzNSwgMC40NzMyNDMsIDAuNzIxMjU5LCAwLjg3NjMzIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3MTI2MSwgMC4xMDk5NDksIDAuMzMwOTEzLCAwLjUyNzEwNywgMC43ODc5OSwgMS4zMTAwMiwgMS42MzY3IiwgXAotICAgICAgICAgICIwLjA3MTI4MSwgMC4xMDk4OTEsIDAuMzMxMTYxLCAwLjUyNzE2OSwgMC43ODkxMjQsIDEuMzEwMTUsIDEuNjM2NTYiLCBcCi0gICAgICAgICAgIjAuMDcxMjgxLCAwLjEwOTg1NCwgMC4zMzExNjIsIDAuNTI3MTY1LCAwLjc4ODgwNCwgMS4zMSwgMS42MzY2OCIsIFwKLSAgICAgICAgICAiMC4wNzEyNzEsIDAuMTA5OTQsIDAuMzMxMDMxLCAwLjUyNzEyLCAwLjc4Nzc3NywgMS4zMTA5LCAxLjYzNjA0IiwgXAotICAgICAgICAgICIwLjA3MTI5NywgMC4xMDk5MjQsIDAuMzMxMTc3LCAwLjUyNzY0MiwgMC43ODgyNzksIDEuMzEwMjIsIDEuNjM2ODkiLCBcCi0gICAgICAgICAgIjAuMDcxMjYxLCAwLjEwOTgzNywgMC4zMzE2NDUsIDAuNTI3NjA4LCAwLjc4ODk1NCwgMS4zMTA4LCAxLjYzNzIzIiwgXAotICAgICAgICAgICIwLjA3MTI5MSwgMC4xMDk4NTgsIDAuMzMxMzIxLCAwLjUyNzY1NCwgMC43ODg5ODMsIDEuMzExODEsIDEuNjM2OTEiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTAwMDk2LCAwLjExODIzNywgMC4yMjA4NDksIDAuMzExMzEsIDAuNDMxOTYsIDAuNjczMTMsIDAuODIzOTIxIiwgXAotICAgICAgICAgICIwLjEwODI0NywgMC4xMjYzOTYsIDAuMjI5MDAxLCAwLjMxOTQ3NCwgMC40NDAwNzMsIDAuNjgxMzQyLCAwLjgzMjA5OSIsIFwKLSAgICAgICAgICAiMC4xMTcyNjIsIDAuMTM1NDExLCAwLjIzNzk5OSwgMC4zMjg0OTMsIDAuNDQ5MTMyLCAwLjY5MDM3NCwgMC44NDEwOTQiLCBcCi0gICAgICAgICAgIjAuMTI0MDQ4LCAwLjE0MjE5MSwgMC4yNDQ4MTMsIDAuMzM1MjU5LCAwLjQ1NTg5OSwgMC42OTcxMjQsIDAuODQ3ODc3IiwgXAotICAgICAgICAgICIwLjEyOTQ2NCwgMC4xNDc1OTksIDAuMjUwMTksIDAuMzQwNjYxLCAwLjQ2MTMxLCAwLjcwMjUxNSwgMC44NTMyNzgiLCBcCi0gICAgICAgICAgIjAuMTM2NzY5LCAwLjE1NDkyMSwgMC4yNTc1MzEsIDAuMzQ3OTg5LCAwLjQ2ODU4OCwgMC43MDk4OTUsIDAuODYwNTU2IiwgXAotICAgICAgICAgICIwLjE0MjIzMiwgMC4xNjAzNzgsIDAuMjYyOTM3LCAwLjM1MzQxOCwgMC40NzQwMzQsIDAuNzE1MzM3LCAwLjg2NjA1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2Nzk1NywgMC4xMDQ3MDksIDAuMzE0ODM0LCAwLjUwMTkyNCwgMC43NTA3NjcsIDEuMjQ3ODEsIDEuNTU2NzgiLCBcCi0gICAgICAgICAgIjAuMDY3OTQ0LCAwLjEwNDcyLCAwLjMxNTQ3NCwgMC41MDEzOTcsIDAuNzUwNTQ5LCAxLjI0NTc5LCAxLjU1NTY2IiwgXAotICAgICAgICAgICIwLjA2Nzk1NiwgMC4xMDQ3MTIsIDAuMzE1NDQzLCAwLjUwMjAyNSwgMC43NTA3ODMsIDEuMjQ4MjQsIDEuNTU3MzQiLCBcCi0gICAgICAgICAgIjAuMDY3OTUyLCAwLjEwNDcxOCwgMC4zMTU0NywgMC41MDE5MTUsIDAuNzUwNzU1LCAxLjI0NzgsIDEuNTU2ODciLCBcCi0gICAgICAgICAgIjAuMDY3OTQyLCAwLjEwNDc0MiwgMC4zMTU0NzEsIDAuNTAwODksIDAuNzUwNzcsIDEuMjQ1NzUsIDEuNTU4ODkiLCBcCi0gICAgICAgICAgIjAuMDY3OTE4LCAwLjEwNDU1MiwgMC4zMTQ2ODYsIDAuNTAyMDMxLCAwLjc1MDc1NCwgMS4yNDU5LCAxLjU1NjcxIiwgXAotICAgICAgICAgICIwLjA2ODE0NywgMC4xMDQ0NjgsIDAuMzE1NDE3LCAwLjUwMTk4LCAwLjc0OTY3NCwgMS4yNDYwOSwgMS41NTkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA3Mzg2LCAwLjAwNzM2NSwgMC4wMDczMDYsIDAuMDA3Mjg4LCAwLjAwNzI3NiwgMC4wMDcyNjYsIDAuMDA3MjYzIiwgXAotICAgICAgICAgICIwLjAwNzM3NCwgMC4wMDczNTUsIDAuMDA3Mjk1LCAwLjAwNzI3NywgMC4wMDcyNjUsIDAuMDA3MjU0LCAwLjAwNzI1IiwgXAotICAgICAgICAgICIwLjAwNzQ3MSwgMC4wMDc0NTQsIDAuMDA3Mzk1LCAwLjAwNzM3NCwgMC4wMDczNjIsIDAuMDA3MzUsIDAuMDA3MzQ2IiwgXAotICAgICAgICAgICIwLjAwNzU3MSwgMC4wMDc1NTQsIDAuMDA3NDk1LCAwLjAwNzQ3NSwgMC4wMDc0NjEsIDAuMDA3NDQ5LCAwLjAwNzQ0NSIsIFwKLSAgICAgICAgICAiMC4wMDc3MTYsIDAuMDA3Njk5LCAwLjAwNzY0LCAwLjAwNzYxOSwgMC4wMDc2MDUsIDAuMDA3NTkxLCAwLjAwNzU4NiIsIFwKLSAgICAgICAgICAiMC4wMDc4OTUsIDAuMDA3ODgyLCAwLjAwNzgyMywgMC4wMDc4MDQsIDAuMDA3Nzg1LCAwLjAwNzc2OSwgMC4wMDc3NjQiLCBcCi0gICAgICAgICAgIjAuMDA4MTA1LCAwLjAwODA5MywgMC4wMDgwMzYsIDAuMDA4MDEyLCAwLjAwNzk5NiwgMC4wMDc5NzksIDAuMDA3OTY5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA3NzE1LCAwLjAwNzcyNywgMC4wMDc3NDYsIDAuMDA3NzUsIDAuMDA3NzUzLCAwLjAwNzc1NSwgMC4wMDc3NTUiLCBcCi0gICAgICAgICAgIjAuMDA3NzE1LCAwLjAwNzcyNywgMC4wMDc3NDYsIDAuMDA3NzUxLCAwLjAwNzc1NCwgMC4wMDc3NTUsIDAuMDA3NzU2IiwgXAotICAgICAgICAgICIwLjAwNzgwMiwgMC4wMDc4MTQsIDAuMDA3ODMyLCAwLjAwNzgzNiwgMC4wMDc4MzgsIDAuMDA3ODQsIDAuMDA3ODQxIiwgXAotICAgICAgICAgICIwLjAwNzkzNywgMC4wMDc5NDksIDAuMDA3OTY1LCAwLjAwNzk2OSwgMC4wMDc5NzEsIDAuMDA3OTczLCAwLjAwNzk3NCIsIFwKLSAgICAgICAgICAiMC4wMDgwODEsIDAuMDA4MTAzLCAwLjAwODExOCwgMC4wMDgxMjEsIDAuMDA4MTIzLCAwLjAwODEyNCwgMC4wMDgxMjUiLCBcCi0gICAgICAgICAgIjAuMDA4MzI4LCAwLjAwODMzNywgMC4wMDgzNDksIDAuMDA4MzUxLCAwLjAwODM1MiwgMC4wMDgzNTIsIDAuMDA4MzUyIiwgXAotICAgICAgICAgICIwLjAwODUwNywgMC4wMDg1MTcsIDAuMDA4NTI4LCAwLjAwODUyOSwgMC4wMDg1MjksIDAuMDA4NTI4LCAwLjAwODUyOCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oU0UpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTQxMTI3OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTQxMTI3OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTQxMTA1OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNDgzOSwgMC4wMDQ4NTUsIDAuMDA0OTMzLCAwLjAwNTA0NCwgMC4wMDUyMDEsIDAuMDA1Mzk0LCAwLjAwNTU3OCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNjY4LCAwLjAwNjcwOSwgMC4wMDY4MjcsIDAuMDA3MDA0LCAwLjAwNzIyOSwgMC4wMDc2MDcsIDAuMDA3OTQ4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEJlNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9TSV9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAyNSwgLTAuMDIsIC0wLjAxMzc1LCAtMC4wMTM3NSwgLTAuMDEzNzUsIC0wLjAxLCAtMC4wMDc1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxODc1LCAtMC4wMTUsIC0wLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMjEyNSwgLTAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wNDM3NSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzNzUsIC0wLjAzMzc1LCAtMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wNDM3NSwgLTAuMDQsIC0wLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjA2NSwgLTAuMDYsIC0wLjA2LCAtMC4wNTM3NSwgLTAuMDUzNzUsIC0wLjA1LCAtMC4wNDc1IiwgXAotICAgICAgICAgICItMC4wNzM3NSwgLTAuMDY4NzUsIC0wLjA2MjUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNTg3NSwgLTAuMDU2MjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMDYyNSwgLTAuMDAxMjUsIDAuMDA1LCAwLjAxMTI1LCAwLjAxNzUsIDAuMDIxMjUsIDAuMDMiLCBcCi0gICAgICAgICAgIi0wLjAxMTI1LCAtMC4wMDYyNSwgMCwgMC4wMDYyNSwgMC4wMTI1LCAwLjAxNjI1LCAwLjAxODc1IiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIC0wLjAwNjI1LCAwLCAwLjAxLCAwLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgLTAuMDAyNSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwODc1LCAwIiwgXAotICAgICAgICAgICItMC4wNCwgLTAuMDM1LCAtMC4wMjg3NSwgLTAuMDIyNSwgLTAuMDIyNSwgLTAuMDEyNSwgLTAuMDEiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wMzc1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMjEyNSwgLTAuMDE4NzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiRCYhU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8xX0FOX1NJX0VRXzAgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDE4NzUsIC0wLjAwNzUsIC0wLjAwMTI1LCAwLjAwNSwgMC4wMDUsIDAuMDE1LCAwLjAxNzUiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAsIDAuMDAzNzUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAtMC4wMDI1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDEyNSwgLTAuMDAyNSwgMCIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDg3NSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA0NjI1LCAtMC4wMzUsIC0wLjAyODc1LCAtMC4wMjI1LCAtMC4wMjI1LCAtMC4wMTI1LCAtMC4wMSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAyNSwgLTAuMDE1LCAtMC4wMTI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDM3NSwgLTAuMDMyNSwgLTAuMDI2MjUsIC0wLjAyNjI1LCAtMC4wMjYyNSwgLTAuMDIyNSwgLTAuMDIiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzNzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMzEyNSwgLTAuMDI3NSwgLTAuMDI1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDQzNzUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzc1LCAtMC4wMzM3NSwgLTAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjA1NSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDQsIC0wLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjA2MTI1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wNDM3NSwgLTAuMDQsIC0wLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjA2NSwgLTAuMDYsIC0wLjA1Mzc1LCAtMC4wNTM3NSwgLTAuMDQ3NSwgLTAuMDQzNzUsIC0wLjA0MTI1IiwgXAotICAgICAgICAgICItMC4wNjc1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNDYyNSwgLTAuMDQzNzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEJlNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9TSV9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1LCAwLjAzODc1LCAwLjAzMjUsIDAuMDMyNSwgMC4wMjYyNSwgMC4wMjI1LCAwLjAyIiwgXAotICAgICAgICAgICIwLjA1NSwgMC4wNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzNzUsIDAuMDMzNzUsIDAuMDI1IiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDU2MjUsIDAuMDUsIDAuMDUsIDAuMDQzNzUsIDAuMDQsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiMC4wNzM3NSwgMC4wNjI1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDUsIDAuMDQ2MjUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMDgsIDAuMDc1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDYyNSwgMC4wNTg3NSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiMC4wOSwgMC4wODUsIDAuMDc4NzUsIDAuMDcyNSwgMC4wNzI1LCAwLjA2ODc1LCAwLjA2NjI1IiwgXAotICAgICAgICAgICIwLjA5ODc1LCAwLjA5Mzc1LCAwLjA4NzUsIDAuMDgxMjUsIDAuMDc1LCAwLjA3MTI1LCAwLjA2ODc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM3NSwgMC4wMjYyNSwgMC4wMiwgMC4wMTM3NSwgMC4wMDc1LCAtMC4wMDI1LCAtMC4wMDUiLCBcCi0gICAgICAgICAgIjAuMDQyNSwgMC4wMzc1LCAwLjAyNSwgMC4wMTg3NSwgMC4wMTI1LCAwLjAwODc1LCAwIiwgXAotICAgICAgICAgICIwLjA1NSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMTUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4wNjEyNSwgMC4wNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyNzUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMDY3NSwgMC4wNjI1LCAwLjA1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDMzNzUsIDAuMDI1IiwgXAotICAgICAgICAgICIwLjA3NzUsIDAuMDcyNSwgMC4wNiwgMC4wNTM3NSwgMC4wNDc1LCAwLjA0Mzc1LCAwLjAzNSIsIFwKLSAgICAgICAgICAiMC4wODYyNSwgMC4wNzUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNTI1LCAwLjA0Mzc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJEJiFTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzFfQU5fU0lfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDM3NSwgMC4wMzg3NSwgMC4wMjYyNSwgMC4wMiwgMC4wMiwgMC4wMSwgMC4wMDc1IiwgXAotICAgICAgICAgICIwLjA1NSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMjEyNSwgMC4wMTI1IiwgXAotICAgICAgICAgICIwLjA2MTI1LCAwLjA1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDIxMjUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMDYxMjUsIDAuMDU2MjUsIDAuMDUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMjc1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiMC4wNjc1LCAwLjA1NjI1LCAwLjA1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDMzNzUsIDAuMDI1IiwgXAotICAgICAgICAgICIwLjA3MTI1LCAwLjA2NjI1LCAwLjA1Mzc1LCAwLjA0NzUsIDAuMDQxMjUsIDAuMDM3NSwgMC4wMzUiLCBcCi0gICAgICAgICAgIjAuMDczNzUsIDAuMDY4NzUsIDAuMDU2MjUsIDAuMDUsIDAuMDUsIDAuMDQsIDAuMDM3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2MjUsIDAuMDUxMjUsIDAuMDQ1LCAwLjA0NSwgMC4wMzg3NSwgMC4wMzUsIDAuMDMyNSIsIFwKLSAgICAgICAgICAiMC4wNjc1LCAwLjA1NjI1LCAwLjA1NjI1LCAwLjA1LCAwLjA0Mzc1LCAwLjA0LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIjAuMDczNzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNTYyNSwgMC4wNSwgMC4wNDYyNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4wNzM3NSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDUyNSwgMC4wNSIsIFwKLSAgICAgICAgICAiMC4wOCwgMC4wNzUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNjI1LCAwLjA1ODc1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICIwLjA4Mzc1LCAwLjA3ODc1LCAwLjA3MjUsIDAuMDY2MjUsIDAuMDY2MjUsIDAuMDYyNSwgMC4wNiIsIFwKLSAgICAgICAgICAiMC4wODYyNSwgMC4wODEyNSwgMC4wNzUsIDAuMDY4NzUsIDAuMDY4NzUsIDAuMDY1LCAwLjA2MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFNJKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA3NDQ0MTk7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNzQzMzM2OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDc0NDQxOTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDI5OTYsIDAuMDAyOTc0LCAwLjAwMzAwOCwgMC4wMDMwNSwgMC4wMDMxMjYsIDAuMDAzMjQzLCAwLjAwMzM3MSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNTM0MywgMC4wMDUzMjksIDAuMDA1MzU3LCAwLjAwNTQwNSwgMC4wMDU0NjIsIDAuMDA1NTg1LCAwLjAwNTcxNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJTRSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMzEyNSwgLTAuMDI2MjUsIC0wLjAyLCAtMC4wMiwgLTAuMDEzNzUsIC0wLjAxLCAtMC4wMDc1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDE1LCAtMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzc1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDMxMjUsIC0wLjAyNzUsIC0wLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjA0Mzc1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDM3NSwgLTAuMDMzNzUsIC0wLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDQzNzUsIC0wLjA0Mzc1LCAtMC4wNCwgLTAuMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDY1LCAtMC4wNiwgLTAuMDUzNzUsIC0wLjA1Mzc1LCAtMC4wNDc1LCAtMC4wNDM3NSwgLTAuMDQxMjUiLCBcCi0gICAgICAgICAgIi0wLjA2NzUsIC0wLjA2MjUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNTYyNSwgLTAuMDUyNSwgLTAuMDUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMTI1LCAtMC4wMDEyNSwgMC4wMDUsIDAuMDExMjUsIDAuMDExMjUsIDAuMDIxMjUsIDAuMDIzNzUiLCBcCi0gICAgICAgICAgIi0wLjAxNzUsIC0wLjAxMjUsIDAsIDAsIDAuMDA2MjUsIDAuMDEsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTg3NSwgLTAuMDA2MjUsIC0wLjAwNjI1LCAwLCAwLjAwMzc1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIC0wLjAwNjI1LCAwLjAwMzc1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDEyNSwgLTAuMDAyNSwgMCIsIFwKLSAgICAgICAgICAiLTAuMDQsIC0wLjAyODc1LCAtMC4wMjI1LCAtMC4wMjI1LCAtMC4wMTYyNSwgLTAuMDEyNSwgLTAuMDAzNzUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTUsIC0wLjAxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlNFIjsKLSAgICAgIHNkZl9jb25kIDogIlNFID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1LCAwLjA0NSwgMC4wMzg3NSwgMC4wMzI1LCAwLjAzMjUsIDAuMDI4NzUsIDAuMDI2MjUiLCBcCi0gICAgICAgICAgIjAuMDU1LCAwLjA1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDM3NSwgMC4wMzM3NSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4wNjc1LCAwLjA1NjI1LCAwLjA1LCAwLjA1LCAwLjA0Mzc1LCAwLjA0LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIjAuMDczNzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNTYyNSwgMC4wNSwgMC4wNDYyNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4wOCwgMC4wNjg3NSwgMC4wNjI1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDUyNSwgMC4wNSIsIFwKLSAgICAgICAgICAiMC4wOSwgMC4wNzg3NSwgMC4wNzI1LCAwLjA3MjUsIDAuMDY2MjUsIDAuMDYyNSwgMC4wNiIsIFwKLSAgICAgICAgICAiMC4wOTI1LCAwLjA4NzUsIDAuMDgxMjUsIDAuMDc1LCAwLjA3NSwgMC4wNzEyNSwgMC4wNjg3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzNzUsIDAuMDMyNSwgMC4wMiwgMC4wMTM3NSwgMC4wMTM3NSwgMC4wMDM3NSwgMC4wMDEyNSIsIFwKLSAgICAgICAgICAiMC4wNDI1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDI1LCAwLjAxODc1LCAwLjAwODc1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICIwLjA1NSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMTUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4wNjEyNSwgMC4wNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyMTI1LCAwLjAxODc1IiwgXAotICAgICAgICAgICIwLjA2MTI1LCAwLjA1NjI1LCAwLjA1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDI3NSwgMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMDcxMjUsIDAuMDYsIDAuMDUzNzUsIDAuMDQ3NSwgMC4wNDEyNSwgMC4wMzc1LCAwLjAyODc1IiwgXAotICAgICAgICAgICIwLjA3Mzc1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDUsIDAuMDQsIDAuMDM3NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogU0RGRlJIUVgxICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoU0RGRlJIUVgxKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDEuMjE0MjQ7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgZmYgKE4zMCxRQklOVCkgewotICAgIG5leHRfc3RhdGUgOiAiKChTRSBTSSkgKyAoIVNFIEQpKSI7Ci0gICAgY2xvY2tlZF9vbiA6ICJDSyI7Ci0gICAgY2xlYXIgOiAiKCFSTikiOwotICB9Ci0gIHBpbihDSykgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjQ5OTI2OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDY0OTkyNjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2NDk5MDY7Ci0gICAgY2xvY2sgOiB0cnVlOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNDAwOSwgMC4wMDM5OTcsIDAuMDA0MDc2LCAwLjAwNDE3NSwgMC4wMDQyOSwgMC4wMDQ1MjUsIDAuMDA0NzE2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDEwMiwgMC4wMTAxOTIsIDAuMDEwMjg0LCAwLjAxMDQsIDAuMDEwNTQ0LCAwLjAxMDcyNywgMC4wMTA5MjQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFEJlJOJiFTRSYhU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1JOX0VRXzFfQU5fU0VfRVFfMF9BTl9TSV9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMTA3MDIyLCAwLjExNTI2NywgMC4xMjQ3OSwgMC4xMzI2LCAwLjEzODk3NiwgMC4xNDcxNDksIDAuMTUzNDQzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wNjYwNTUsIDAuMDc0MTgyLCAwLjA4Mzc1NSwgMC4wOTEzMDgsIDAuMDk3NDY0LCAwLjEwNTQ5NiwgMC4xMTEyNzkiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEQpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDkwODI3NDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA5MDYwNTk7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwOTA4Mjc0OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNDQwNSwgMC4wMDQzNiwgMC4wMDQzODQsIDAuMDA0NDM1LCAwLjAwNDUxOSwgMC4wMDQ2NjgsIDAuMDA0ODMzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA3NDk1LCAwLjAwNzQ2NSwgMC4wMDc0OTQsIDAuMDA3NTUyLCAwLjAwNzYxMywgMC4wMDc3NjEsIDAuMDA3OTIyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlJOJiFTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJSTl9FUV8xX0FOX1NFX0VRXzAgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDI1LCAtMC4wMiwgLTAuMDIsIC0wLjAxMzc1LCAtMC4wMDc1LCAtMC4wMDM3NSwgLTAuMDAxMjUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDE4NzUsIC0wLjAxNSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAyNSwgLTAuMDIxMjUsIC0wLjAxODc1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMjc1LCAtMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjA1NSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzc1LCAtMC4wMzM3NSwgLTAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjA2NSwgLTAuMDUzNzUsIC0wLjA1Mzc1LCAtMC4wNDc1LCAtMC4wNDc1LCAtMC4wNDM3NSwgLTAuMDQxMjUiLCBcCi0gICAgICAgICAgIi0wLjA2NzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjA0NjI1LCAtMC4wNDM3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAsIDAuMDA1LCAwLjAxMTI1LCAwLjAxNzUsIDAuMDIzNzUsIDAuMDMzNzUsIDAuMDM2MjUiLCBcCi0gICAgICAgICAgIi0wLjAxMTI1LCAwLCAwLjAwNjI1LCAwLjAxMjUsIDAuMDE4NzUsIDAuMDI4NzUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjAxNzUsIC0wLjAwNjI1LCAwLCAwLjAwNjI1LCAwLjAxMjUsIDAuMDIyNSwgMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjAxNzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLCAwLjAwNjI1LCAwLjAxNjI1LCAwLjAxODc1IiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLCAwLjAwNjI1LCAwLjAxLCAwLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjAyNzUsIC0wLjAyMjUsIC0wLjAxNjI1LCAtMC4wMSwgLTAuMDAzNzUsIDAuMDA2MjUsIDAuMDA4NzUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgLTAuMDAyNSwgMC4wMDYyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiUk4mIVNFIjsKLSAgICAgIHNkZl9jb25kIDogIlJOX0VRXzFfQU5fU0VfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNSwgMC4wMzg3NSwgMC4wMzI1LCAwLjAzMjUsIDAuMDI2MjUsIDAuMDIyNSwgMC4wMiIsIFwKLSAgICAgICAgICAiMC4wNTUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyNzUsIDAuMDI1IiwgXAotICAgICAgICAgICIwLjA2MTI1LCAwLjA1NjI1LCAwLjA1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDMzNzUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMDY3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1LCAwLjA1LCAwLjA0LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIjAuMDczNzUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNTYyNSwgMC4wNTI1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjA4Mzc1LCAwLjA3ODc1LCAwLjA3MjUsIDAuMDY2MjUsIDAuMDYsIDAuMDU2MjUsIDAuMDUzNzUiLCBcCi0gICAgICAgICAgIjAuMDkyNSwgMC4wODEyNSwgMC4wNzUsIDAuMDc1LCAwLjA2ODc1LCAwLjA2NSwgMC4wNjI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDMxMjUsIDAuMDIsIDAuMDEzNzUsIDAuMDAxMjUsIC0wLjAwNSwgLTAuMDA4NzUsIC0wLjAxNzUiLCBcCi0gICAgICAgICAgIjAuMDM2MjUsIDAuMDI1LCAwLjAxODc1LCAwLjAxMjUsIDAuMDA2MjUsIC0wLjAwMzc1LCAtMC4wMTI1IiwgXAotICAgICAgICAgICIwLjA0MjUsIDAuMDMxMjUsIDAuMDI1LCAwLjAxODc1LCAwLjAxMjUsIDAuMDAyNSwgMCIsIFwKLSAgICAgICAgICAiMC4wNDg3NSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMTg3NSwgMC4wMDg3NSwgMCIsIFwKLSAgICAgICAgICAiMC4wNTUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMjUsIDAuMDI1LCAwLjAxNSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiMC4wNTg3NSwgMC4wNTM3NSwgMC4wNDEyNSwgMC4wMzUsIDAuMDI4NzUsIDAuMDE4NzUsIDAuMDE2MjUiLCBcCi0gICAgICAgICAgIjAuMDY3NSwgMC4wNTYyNSwgMC4wNSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyNzUsIDAuMDE4NzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFEpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4zMzYwNTM7Ci0gICAgZnVuY3Rpb24gOiAiTjMwIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBub25fdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJpc2luZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDc5MSwgMC4xMjY2MTksIDAuMjMxODU4LCAwLjMyNDg3MSwgMC40NDg4MzcsIDAuNjk3MDMyLCAwLjg1MTk2NSIsIFwKLSAgICAgICAgICAiMC4xMTYxNTgsIDAuMTM0ODYyLCAwLjI0MDEyMSwgMC4zMzMwOTgsIDAuNDU3MTU2LCAwLjcwNTIwNywgMC44NjAyOTEiLCBcCi0gICAgICAgICAgIjAuMTI1NjI0LCAwLjE0NDM0MSwgMC4yNDk1ODIsIDAuMzQyNTQ2LCAwLjQ2NjU0MSwgMC43MTQ3MDIsIDAuODY5ODE2IiwgXAotICAgICAgICAgICIwLjEzMzI4OCwgMC4xNTIwMSwgMC4yNTcyNTksIDAuMzUwMjY3LCAwLjQ3NDIxNCwgMC43MjIzNjQsIDAuODc3Mzk0IiwgXAotICAgICAgICAgICIwLjEzOTQxMSwgMC4xNTgxMzksIDAuMjYzMzg3LCAwLjM1NjM4NCwgMC40ODAzNDYsIDAuNzI4NTM3LCAwLjg4MzQwMyIsIFwKLSAgICAgICAgICAiMC4xNDczODMsIDAuMTY2MTE0LCAwLjI3MTQwNCwgMC4zNjQzNTEsIDAuNDg4Mjg1LCAwLjczNjM5MywgMC44OTE0NyIsIFwKLSAgICAgICAgICAiMC4xNTM0NzEsIDAuMTcyMjA1LCAwLjI3NzQ3MSwgMC4zNzA0NTQsIDAuNDk0NDIxLCAwLjc0MjQzNSwgMC44OTc1MzYiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDczOTQ3LCAwLjExMTgwNywgMC4zMzIxNzMsIDAuNTI3MTI2LCAwLjc4ODU1NiwgMS4zMDk3MSwgMS42Mzg4OSIsIFwKLSAgICAgICAgICAiMC4wNzM5NDQsIDAuMTExNzgsIDAuMzMyMjAyLCAwLjUyODA1NiwgMC43ODgxMTIsIDEuMzEwMzcsIDEuNjM5MDEiLCBcCi0gICAgICAgICAgIjAuMDczOTQsIDAuMTExODE4LCAwLjMzMjE0MywgMC41MjczMjMsIDAuNzg4NTU0LCAxLjMxMjIyLCAxLjYzNjQ1IiwgXAotICAgICAgICAgICIwLjA3Mzk0NCwgMC4xMTE4MzIsIDAuMzMyMTY5LCAwLjUyNzEyNiwgMC43ODg2NTIsIDEuMzEyMjEsIDEuNjM1ODciLCBcCi0gICAgICAgICAgIjAuMDczOTUzLCAwLjExMTg1OCwgMC4zMzIxNTksIDAuNTI4MDA1LCAwLjc4ODQ0OSwgMS4zMTAyLCAxLjYzNzA2IiwgXAotICAgICAgICAgICIwLjA3MzkyMiwgMC4xMTE4NTYsIDAuMzMxNjA0LCAwLjUyNzkyMywgMC43ODkyMTksIDEuMzEwMzksIDEuNjM1ODQiLCBcCi0gICAgICAgICAgIjAuMDc0MDY0LCAwLjExMTc4NCwgMC4zMzE3MzcsIDAuNTI3ODg4LCAwLjc4OTIwMiwgMS4zMTE5NiwgMS42MzY3OSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDcwMjIsIDAuMTI1MTY1LCAwLjIyNzc2NCwgMC4zMTgyMzMsIDAuNDM4ODg5LCAwLjY4MDA5LCAwLjgzMDkzMSIsIFwKLSAgICAgICAgICAiMC4xMTUyNjcsIDAuMTMzNDEzLCAwLjIzNjAxMywgMC4zMjY0OTEsIDAuNDQ3MTQsIDAuNjg4MzExLCAwLjgzOTA4IiwgXAotICAgICAgICAgICIwLjEyNDc5LCAwLjE0MjkzOCwgMC4yNDU1MzUsIDAuMzM2MDAyLCAwLjQ1NjY2OSwgMC42OTc4NjUsIDAuODQ4NTciLCBcCi0gICAgICAgICAgIjAuMTMyNiwgMC4xNTA3NDYsIDAuMjUzMzQsIDAuMzQzODA2LCAwLjQ2NDQyMiwgMC43MDU2NywgMC44NTYzODIiLCBcCi0gICAgICAgICAgIjAuMTM4OTc5LCAwLjE1NzEyMSwgMC4yNTk3MDksIDAuMzUwMTc0LCAwLjQ3MDgwOSwgMC43MTIwMywgMC44NjI3NCIsIFwKLSAgICAgICAgICAiMC4xNDcxNTMsIDAuMTY1Mjk5LCAwLjI2Nzg4MywgMC4zNTgzMiwgMC40Nzg5NTMsIDAuNzIwMTY2LCAwLjg3MDkzOSIsIFwKLSAgICAgICAgICAiMC4xNTM0NDMsIDAuMTcxNTk1LCAwLjI3NDE1NSwgMC4zNjQ2MjQsIDAuNDg1MjY4LCAwLjcyNjU0MSwgMC44NzcyMTkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY3ODMxLCAwLjEwNDU5NiwgMC4zMTUzNDUsIDAuNTAxMjQsIDAuNzQ5MTIsIDEuMjQ1NSwgMS41NTYxNiIsIFwKLSAgICAgICAgICAiMC4wNjc4MjEsIDAuMTA0NDExLCAwLjMxNDkyNSwgMC41MDE4NzcsIDAuNzQ4ODgxLCAxLjI0Nzg0LCAxLjU1NjYxIiwgXAotICAgICAgICAgICIwLjA2NzgxNywgMC4xMDQ1OTUsIDAuMzE1MzQ3LCAwLjUwMTIxOCwgMC43NDkyNjEsIDEuMjQ1NjEsIDEuNTU4NTgiLCBcCi0gICAgICAgICAgIjAuMDY3ODE3LCAwLjEwNDU5NSwgMC4zMTUzNDYsIDAuNTAxMjAzLCAwLjc0OTU4NywgMS4yNDU2MywgMS41NTg2MyIsIFwKLSAgICAgICAgICAiMC4wNjc3OTYsIDAuMTA0NTk0LCAwLjMxNTM0NiwgMC41MDEyMzUsIDAuNzUwNjE3LCAxLjI0NTYyLCAxLjU1ODU5IiwgXAotICAgICAgICAgICIwLjA2Nzg0NywgMC4xMDQ2MjcsIDAuMzE0NjQyLCAwLjUwMTc2OCwgMC43NDkxNiwgMS4yNDYzOCwgMS41NTY2OCIsIFwKLSAgICAgICAgICAiMC4wNjc5MDMsIDAuMTA0MzcxLCAwLjMxNTEyNSwgMC41MDE3OTgsIDAuNzUwNjQ4LCAxLjI0NTUyLCAxLjU1ODUzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiBjbGVhcjsKLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU0ODgxLCAwLjA3MzA0NSwgMC4xNzU1ODEsIDAuMjY2MDQ5LCAwLjM4NjY1OSwgMC42Mjc4OTEsIDAuNzc4NjMxIiwgXAotICAgICAgICAgICIwLjA2Mjk4OSwgMC4wODExNjEsIDAuMTgzNzE1LCAwLjI3NDE5MiwgMC4zOTQ4MDYsIDAuNjM2MDU2LCAwLjc4Njc3OSIsIFwKLSAgICAgICAgICAiMC4wNzE0OTEsIDAuMDg5NjYxLCAwLjE5MjI0NSwgMC4yODI2OTUsIDAuNDAzMzEzLCAwLjY0NDU1MiwgMC43OTUzMDIiLCBcCi0gICAgICAgICAgIjAuMDc3ODU2LCAwLjA5NjAwNywgMC4xOTg1NzUsIDAuMjg5MDU5LCAwLjQwOTY2NywgMC42NTA4NzUsIDAuODAxNjI2IiwgXAotICAgICAgICAgICIwLjA4Mjg2NywgMC4xMDEwNTcsIDAuMjAzNjExLCAwLjI5NDA3NywgMC40MTQ2ODQsIDAuNjU1OTE3LCAwLjgwNjY2NSIsIFwKLSAgICAgICAgICAiMC4wODk0MTIsIDAuMTA3NTk5LCAwLjIxMDE2NywgMC4zMDA2MjUsIDAuNDIxMjc4LCAwLjY2MjQzNywgMC44MTMyNTkiLCBcCi0gICAgICAgICAgIjAuMDk0MTI5LCAwLjExMjMxNiwgMC4yMTQ4ODQsIDAuMzA1MzM1LCAwLjQyNTk0OSwgMC42NjcyMDQsIDAuODE3OTciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY3ODgxLCAwLjEwNDQ3NSwgMC4zMTQ4MDcsIDAuNTAwOTMsIDAuNzUwMTgyLCAxLjI0NzU2LCAxLjU1ODMxIiwgXAotICAgICAgICAgICIwLjA2NzkxNSwgMC4xMDQ0NjIsIDAuMzE0NzY5LCAwLjUwMTE1NCwgMC43NDk0NzEsIDEuMjQ3NjUsIDEuNTU4MyIsIFwKLSAgICAgICAgICAiMC4wNjgyODYsIDAuMTA0NjY2LCAwLjMxNSwgMC41MDE1MTIsIDAuNzUwMTcxLCAxLjI0NzUyLCAxLjU1ODMiLCBcCi0gICAgICAgICAgIjAuMDY4ODYzLCAwLjEwNTAyOSwgMC4zMTQ5OTYsIDAuNTAxNDIxLCAwLjc1MDI0OCwgMS4yNDc0NywgMS41NTgyNCIsIFwKLSAgICAgICAgICAiMC4wNjk0MjEsIDAuMTA1MzQ1LCAwLjMxNTAzNiwgMC41MDE0MjcsIDAuNzUwMTU5LCAxLjI0NzQ5LCAxLjU1ODI1IiwgXAotICAgICAgICAgICIwLjA3MDIyMiwgMC4xMDU5MTQsIDAuMzE1MTIyLCAwLjUwMTE5MiwgMC43NDg2OCwgMS4yNDcyNywgMS41NTgxNSIsIFwKLSAgICAgICAgICAiMC4wNzA5MDksIDAuMTA2MzIsIDAuMzE1MDIzLCAwLjUwMTYxNiwgMC43NTAyMDYsIDEuMjQ3NDMsIDEuNTU4MiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDkxODMsIDAuMDA5MTYxLCAwLjAwOTA4MiwgMC4wMDkwNTUsIDAuMDA5MDM4LCAwLjAwOTAyMywgMC4wMDkwMTkiLCBcCi0gICAgICAgICAgIjAuMDA5MTYzLCAwLjAwOTE0LCAwLjAwOTA2MywgMC4wMDkwMzYsIDAuMDA5MDE3LCAwLjAwOTAwMywgMC4wMDg5OTciLCBcCi0gICAgICAgICAgIjAuMDA5MjU0LCAwLjAwOTIzMywgMC4wMDkxNTUsIDAuMDA5MTI3LCAwLjAwOTEwOSwgMC4wMDkwOTEsIDAuMDA5MDg3IiwgXAotICAgICAgICAgICIwLjAwOTM2MywgMC4wMDkzNDMsIDAuMDA5MjY4LCAwLjAwOTIzOSwgMC4wMDkyMiwgMC4wMDkyMDIsIDAuMDA5MTk2IiwgXAotICAgICAgICAgICIwLjAwOTQ4MiwgMC4wMDk0NjQsIDAuMDA5MzksIDAuMDA5MzYxLCAwLjAwOTM0LCAwLjAwOTMyMiwgMC4wMDkzMTYiLCBcCi0gICAgICAgICAgIjAuMDA5NzE1LCAwLjAwOTcsIDAuMDA5NjI4LCAwLjAwOTU5NywgMC4wMDk1NzUsIDAuMDA5NTU1LCAwLjAwOTU0OCIsIFwKLSAgICAgICAgICAiMC4wMDk5MDYsIDAuMDA5ODkxLCAwLjAwOTc4MywgMC4wMDk3ODksIDAuMDA5NzY3LCAwLjAwOTc0NiwgMC4wMDk3MzgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDk2MzYsIDAuMDA5NjQ4LCAwLjAwOTY2NywgMC4wMDk2NzEsIDAuMDA5NjczLCAwLjAwOTY3NSwgMC4wMDk2NzUiLCBcCi0gICAgICAgICAgIjAuMDA5NjI1LCAwLjAwOTYzNywgMC4wMDk2NTUsIDAuMDA5NjYsIDAuMDA5NjYyLCAwLjAwOTY2NCwgMC4wMDk2NjUiLCBcCi0gICAgICAgICAgIjAuMDA5NzM1LCAwLjAwOTc0NywgMC4wMDk3NjQsIDAuMDA5NzY4LCAwLjAwOTc3LCAwLjAwOTc3MiwgMC4wMDk3NzMiLCBcCi0gICAgICAgICAgIjAuMDA5ODYsIDAuMDA5ODcxLCAwLjAwOTg4OCwgMC4wMDk4OTEsIDAuMDA5ODk0LCAwLjAwOTg5NSwgMC4wMDk4OTYiLCBcCi0gICAgICAgICAgIjAuMDA5OTg0LCAwLjAwOTk5NSwgMC4wMTAwMTEsIDAuMDEwMDE0LCAwLjAxMDAxNiwgMC4wMTAwMTcsIDAuMDEwMDE4IiwgXAotICAgICAgICAgICIwLjAxMDIzOSwgMC4wMTAyNDksIDAuMDEwMjYyLCAwLjAxMDI2NCwgMC4wMTAyNjUsIDAuMDEwMjY2LCAwLjAxMDI2NiIsIFwKLSAgICAgICAgICAiMC4wMTA0NDIsIDAuMDEwNDI0LCAwLjAxMDQ2NCwgMC4wMTA0NjUsIDAuMDEwNDY1LCAwLjAxMDQ2NSwgMC4wMTA0NjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEwNzI5LCAwLjAxMDc0MSwgMC4wMTA3NTQsIDAuMDEwNzU3LCAwLjAxMDc1OCwgMC4wMTA3NiwgMC4wMTA3NiIsIFwKLSAgICAgICAgICAiMC4wMTA2ODIsIDAuMDEwNjk0LCAwLjAxMDcxNCwgMC4wMTA3MTgsIDAuMDEwNzIxLCAwLjAxMDcyMywgMC4wMTA3MjMiLCBcCi0gICAgICAgICAgIjAuMDEwNzE0LCAwLjAxMDcyNywgMC4wMTA3NTIsIDAuMDEwNzU4LCAwLjAxMDc2MSwgMC4wMTA3NjMsIDAuMDEwNzY0IiwgXAotICAgICAgICAgICIwLjAxMDgxLCAwLjAxMDgyMywgMC4wMTA4NDUsIDAuMDEwODU0LCAwLjAxMDg1NywgMC4wMTA4NiwgMC4wMTA4NjEiLCBcCi0gICAgICAgICAgIjAuMDEwOTI5LCAwLjAxMDk0LCAwLjAxMDk2OCwgMC4wMTA5NzUsIDAuMDEwOTc3LCAwLjAxMDk4MSwgMC4wMTA5ODIiLCBcCi0gICAgICAgICAgIjAuMDExMTk2LCAwLjAxMTIwNCwgMC4wMTEyMzIsIDAuMDExMjQsIDAuMDExMjQxLCAwLjAxMTI0NSwgMC4wMTEyNDciLCBcCi0gICAgICAgICAgIjAuMDExNDc3LCAwLjAxMTQ4MywgMC4wMTE1MDgsIDAuMDExNTE1LCAwLjAxMTUyLCAwLjAxMTUyLCAwLjAxMTUyNiIpOwotICAgICAgfQotICAgICAgcmlzZV9wb3dlcihzY2FsYXIpIHsKLSAgICAgICAgdmFsdWVzKCIwIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihSTikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNjM5ODc7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNTEwOTE7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNjM5ODc7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwODQyLCAwLjAwMDg0MSwgMC4wMDA4NDEsIDAuMDAwODQxLCAwLjAwMDg0MSwgMC4wMDA4NDEsIDAuMDAwODQxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwODYsIDAuMDAwODQ2LCAwLjAwMDg0NiwgMC4wMDA4NDYsIDAuMDAwODQ1LCAwLjAwMDg0NSwgMC4wMDA4NDUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUk4iOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFEJiFTRSYhU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1NFX0VRXzBfQU5fU0lfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjA1NTA3MywgMC4wNjI5ODgsIDAuMDcxNDg5LCAwLjA3Nzg1NSwgMC4wODI4NjcsIDAuMDg5NDEyLCAwLjA5NDEyOSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJlY292ZXJ5X3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUQmU0UmU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1NFX0VRXzFfQU5fU0lfRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChyZWNvdmVyeV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDMxMjUsIC0wLjAzNjI1LCAtMC4wNDg3NSwgLTAuMDU1LCAtMC4wNjEyNSwgLTAuMDY1LCAtMC4wNzM3NSIsIFwKLSAgICAgICAgICAiLTAuMDMyNSwgLTAuMDM3NSwgLTAuMDUsIC0wLjA1NjI1LCAtMC4wNjI1LCAtMC4wNzI1LCAtMC4wNzUiLCBcCi0gICAgICAgICAgIi0wLjAyLCAtMC4wMzEyNSwgLTAuMDQzNzUsIC0wLjA1LCAtMC4wNTYyNSwgLTAuMDY2MjUsIC0wLjA2ODc1IiwgXAotICAgICAgICAgICItMC4wMDc1LCAtMC4wMTg3NSwgLTAuMDMxMjUsIC0wLjAzNzUsIC0wLjA0Mzc1LCAtMC4wNTM3NSwgLTAuMDYyNSIsIFwKLSAgICAgICAgICAiMC4wMDUsIC0wLjAwNjI1LCAtMC4wMTg3NSwgLTAuMDI1LCAtMC4wMzEyNSwgLTAuMDQxMjUsIC0wLjA1IiwgXAotICAgICAgICAgICIwLjAyNzUsIDAuMDE2MjUsIDAuMDAzNzUsIC0wLjAwODc1LCAtMC4wMTUsIC0wLjAyNSwgLTAuMDI3NSIsIFwKLSAgICAgICAgICAiMC4wNDI1LCAwLjAzMTI1LCAwLjAxODc1LCAwLjAxMjUsIDAuMDA2MjUsIC0wLjAwMzc1LCAtMC4wMTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogcmVtb3ZhbF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEJlNFJlNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9TRV9FUV8xX0FOX1NJX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQocmVtb3ZhbF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDM3NSwgMC4wNDg3NSwgMC4wNjEyNSwgMC4wNjc1LCAwLjA3Mzc1LCAwLjA4Mzc1LCAwLjA4NjI1IiwgXAotICAgICAgICAgICIwLjA0NSwgMC4wNTYyNSwgMC4wNjI1LCAwLjA2ODc1LCAwLjA3NSwgMC4wODUsIDAuMDkzNzUiLCBcCi0gICAgICAgICAgIjAuMDUxMjUsIDAuMDU2MjUsIDAuMDY4NzUsIDAuMDc1LCAwLjA4MTI1LCAwLjA5MTI1LCAwLjA5Mzc1IiwgXAotICAgICAgICAgICIwLjA1NzUsIDAuMDYyNSwgMC4wNzUsIDAuMDgxMjUsIDAuMDg3NSwgMC4wOTEyNSwgMC4xIiwgXAotICAgICAgICAgICIwLjA1NzUsIDAuMDY4NzUsIDAuMDc1LCAwLjA4MTI1LCAwLjA4NzUsIDAuMDk3NSwgMC4xIiwgXAotICAgICAgICAgICIwLjA2LCAwLjA3MTI1LCAwLjA3NzUsIDAuMDksIDAuMDksIDAuMSwgMC4xMDg3NSIsIFwKLSAgICAgICAgICAiMC4wNjM3NSwgMC4wNzUsIDAuMDgxMjUsIDAuMDkzNzUsIDAuMDkzNzUsIDAuMTAzNzUsIDAuMTEyNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oU0UpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTY4NDEyOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTY4NDEyOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTY4Mzg7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA3MDczLCAwLjAwNzA3MiwgMC4wMDcxNDgsIDAuMDA3MjUyLCAwLjAwNzM3NSwgMC4wMDc1ODEsIDAuMDA3Nzc2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA4NzU5LCAwLjAwODc3NSwgMC4wMDg4OTIsIDAuMDA5MDkzLCAwLjAwOTM0OSwgMC4wMDk3NTgsIDAuMDEwMTQ1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlJOIjsKLSAgICAgIHNkZl9jb25kIDogIlJOID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAxMjUsIC0wLjAwMTI1LCAwLjAwNSwgMC4wMTEyNSwgMC4wMTc1LCAwLjAyNzUsIDAuMDMiLCBcCi0gICAgICAgICAgIi0wLjAxNzUsIC0wLjAxMjUsIDAsIDAuMDA2MjUsIDAuMDEyNSwgMC4wMTYyNSwgMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAsIDAuMDA2MjUsIDAuMDEsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAsIDAuMDAzNzUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLjAwMzc1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wNCwgLTAuMDI4NzUsIC0wLjAyMjUsIC0wLjAxNjI1LCAtMC4wMSwgLTAuMDA2MjUsIDAuMDAyNSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwODc1LCAwIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMCwgMC4wMTEyNSwgMC4wMTc1LCAwLjAyMzc1LCAwLjAzLCAwLjAzMzc1LCAwLjA0MjUiLCBcCi0gICAgICAgICAgIi0wLjAwNSwgMCwgMC4wMTI1LCAwLjAxODc1LCAwLjAyNSwgMC4wMjg3NSwgMC4wMzc1IiwgXAotICAgICAgICAgICItMC4wMTEyNSwgLTAuMDA2MjUsIDAsIDAuMDA2MjUsIDAuMDEyNSwgMC4wMjI1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDE3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAsIDAuMDA2MjUsIDAuMDE2MjUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAsIDAsIDAuMDEsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDI3NSwgLTAuMDIyNSwgLTAuMDE2MjUsIC0wLjAxLCAtMC4wMDM3NSwgMCwgMC4wMDg3NSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAxMjUsIC0wLjAwMjUsIDAiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlJOIjsKLSAgICAgIHNkZl9jb25kIDogIlJOID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0Mzc1LCAwLjAzMjUsIDAuMDI2MjUsIDAuMDI2MjUsIDAuMDIsIDAuMDE2MjUsIDAuMDEzNzUiLCBcCi0gICAgICAgICAgIjAuMDQ4NzUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMzEyNSwgMC4wMjEyNSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4wNjEyNSwgMC4wNSwgMC4wNDM3NSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzMzc1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNSwgMC4wNDM3NSwgMC4wNCwgMC4wMzc1IiwgXAotICAgICAgICAgICIwLjA3Mzc1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDU2MjUsIDAuMDUyNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4wODM3NSwgMC4wNzg3NSwgMC4wNzI1LCAwLjA2NjI1LCAwLjA2NjI1LCAwLjA1NjI1LCAwLjA1Mzc1IiwgXAotICAgICAgICAgICIwLjA5MjUsIDAuMDg3NSwgMC4wODEyNSwgMC4wNzUsIDAuMDY4NzUsIDAuMDY1LCAwLjA2MjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTYyNSwgMC4wNTEyNSwgMC4wNDUsIDAuMDM4NzUsIDAuMDMyNSwgMC4wMjg3NSwgMC4wMjYyNSIsIFwKLSAgICAgICAgICAiMC4wNjEyNSwgMC4wNTYyNSwgMC4wNSwgMC4wNDM3NSwgMC4wNDM3NSwgMC4wNCwgMC4wMzc1IiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNSwgMC4wNSwgMC4wNDYyNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4wNzM3NSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1NjI1LCAwLjA0NjI1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjA4LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNTI1LCAwLjA1IiwgXAotICAgICAgICAgICIwLjA4Mzc1LCAwLjA3ODc1LCAwLjA3MjUsIDAuMDY2MjUsIDAuMDYsIDAuMDU2MjUsIDAuMDUzNzUiLCBcCi0gICAgICAgICAgIjAuMDg2MjUsIDAuMDgxMjUsIDAuMDc1LCAwLjA2ODc1LCAwLjA2ODc1LCAwLjA1ODc1LCAwLjA1NjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTSSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwOTUwMzE0OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDk0ODE0MjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA5NTAzMTQ7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA0MDM0LCAwLjAwMzk5MiwgMC4wMDQwMjMsIDAuMDA0MDcxLCAwLjAwNDE1OCwgMC4wMDQzMjMsIDAuMDA0NTExIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA3ODE0LCAwLjAwNzc4NywgMC4wMDc4MSwgMC4wMDc4NTcsIDAuMDA3OTMsIDAuMDA4MDcsIDAuMDA4MjM3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlJOJlNFIjsKLSAgICAgIHNkZl9jb25kIDogIlJOX0VRXzFfQU5fU0VfRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMjUsIC0wLjAyLCAtMC4wMTM3NSwgLTAuMDEzNzUsIC0wLjAwNzUsIC0wLjAwMzc1LCAtMC4wMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDE4NzUsIC0wLjAwODc1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDI1LCAtMC4wMjEyNSwgLTAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAzMTI1LCAtMC4wMjc1LCAtMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjA1NSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzc1LCAtMC4wMzM3NSwgLTAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjA2NSwgLTAuMDUzNzUsIC0wLjA1Mzc1LCAtMC4wNDc1LCAtMC4wNDc1LCAtMC4wMzc1LCAtMC4wMzUiLCBcCi0gICAgICAgICAgIi0wLjA2NzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjA0NjI1LCAtMC4wNDM3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAsIDAuMDA1LCAwLjAxMTI1LCAwLjAxNzUsIDAuMDIzNzUsIDAuMDMzNzUsIDAuMDM2MjUiLCBcCi0gICAgICAgICAgIi0wLjAxMTI1LCAwLCAwLjAwNjI1LCAwLjAxMjUsIDAuMDE4NzUsIDAuMDI4NzUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjAxNzUsIC0wLjAwNjI1LCAwLCAwLjAwNjI1LCAwLjAxMjUsIDAuMDIyNSwgMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjAxNzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLCAwLjAwNjI1LCAwLjAxNjI1LCAwLjAxODc1IiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLCAwLjAwNjI1LCAwLjAxLCAwLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjAyNzUsIC0wLjAyMjUsIC0wLjAxNjI1LCAtMC4wMSwgLTAuMDAzNzUsIDAuMDA2MjUsIDAuMDA4NzUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgLTAuMDAyNSwgMC4wMDYyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiUk4mU0UiOwotICAgICAgc2RmX2NvbmQgOiAiUk5fRVFfMV9BTl9TRV9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0Mzc1LCAwLjAzODc1LCAwLjAzMjUsIDAuMDI2MjUsIDAuMDI2MjUsIDAuMDIyNSwgMC4wMiIsIFwKLSAgICAgICAgICAiMC4wNTUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyNzUsIDAuMDI1IiwgXAotICAgICAgICAgICIwLjA2MTI1LCAwLjA1NjI1LCAwLjA1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDMzNzUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMDY3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1LCAwLjA1LCAwLjA0LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIjAuMDczNzUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNTYyNSwgMC4wNDYyNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4wODM3NSwgMC4wNzg3NSwgMC4wNzI1LCAwLjA2NjI1LCAwLjA2LCAwLjA1NjI1LCAwLjA1Mzc1IiwgXAotICAgICAgICAgICIwLjA5MjUsIDAuMDgxMjUsIDAuMDc1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjUsIDAuMDYyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzMTI1LCAwLjAyLCAwLjAxMzc1LCAwLjAwMTI1LCAtMC4wMDUsIC0wLjAwODc1LCAtMC4wMTc1IiwgXAotICAgICAgICAgICIwLjAzNjI1LCAwLjAyNSwgMC4wMTg3NSwgMC4wMTI1LCAwLjAwNjI1LCAtMC4wMDM3NSwgLTAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4wNDI1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMTg3NSwgMC4wMTI1LCAwLjAwMjUsIDAiLCBcCi0gICAgICAgICAgIjAuMDQ4NzUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMjUsIDAuMDE4NzUsIDAuMDA4NzUsIDAiLCBcCi0gICAgICAgICAgIjAuMDU1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDI1LCAwLjAxODc1LCAwLjAxNSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiMC4wNTg3NSwgMC4wNTM3NSwgMC4wNDEyNSwgMC4wMzUsIDAuMDI4NzUsIDAuMDE4NzUsIDAuMDE2MjUiLCBcCi0gICAgICAgICAgIjAuMDY3NSwgMC4wNTYyNSwgMC4wNSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyNzUsIDAuMDE4NzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IFNERkZSSFFYNCAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKFNERkZSSFFYNCkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAxLjY4NTExOwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIGZmIChOMzAsUUJJTlQpIHsKLSAgICBuZXh0X3N0YXRlIDogIigoU0UgU0kpICsgKCFTRSBEKSkiOwotICAgIGNsb2NrZWRfb24gOiAiQ0siOwotICAgIGNsZWFyIDogIighUk4pIjsKLSAgfQotICBwaW4oQ0spICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYyOTQ4NTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2Mjk0ODU7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjI5NDgzOwotICAgIGNsb2NrIDogdHJ1ZTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDQ2NDUsIDAuMDA0NjM0LCAwLjAwNDcxMiwgMC4wMDQ4MDMsIDAuMDA0OTIsIDAuMDA1MTQ2LCAwLjAwNTM0NiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAxMDQ1LCAwLjAxMDQzNSwgMC4wMTA1MzEsIDAuMDEwNjQ1LCAwLjAxMDc5OCwgMC4wMTA5NjQsIDAuMDExMTYxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRCZSTiYhU0UmIVNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9STl9FUV8xX0FOX1NFX0VRXzBfQU5fU0lfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjA5MDA2OCwgMC4wOTgzNDQsIDAuMTA3OTQxLCAwLjExNjAxMywgMC4xMjI0NjUsIDAuMTMwODU2LCAwLjEzNzIyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDY4NjQ0LCAwLjA3Njc2OCwgMC4wODY0MDMsIDAuMDk0MTA5LCAwLjEwMDMyNywgMC4xMDg1NTMsIDAuMTE0NDY3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihEKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA5NjU3MTc7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwOTYzNTM1OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDk2NTcxNzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDQ1MywgMC4wMDQ0ODksIDAuMDA0NTExLCAwLjAwNDU3MSwgMC4wMDQ2NTQsIDAuMDA0ODIxLCAwLjAwNDk4NSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNzIwOSwgMC4wMDcxODMsIDAuMDA3MjExLCAwLjAwNzI2OSwgMC4wMDczNCwgMC4wMDc0OTUsIDAuMDA3Njg0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlJOJiFTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJSTl9FUV8xX0FOX1NFX0VRXzAgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDI1LCAtMC4wMiwgLTAuMDEzNzUsIC0wLjAxMzc1LCAtMC4wMDc1LCAtMC4wMDM3NSwgLTAuMDAxMjUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA4NzUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMjUsIC0wLjAxNSwgLTAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDMxMjUsIC0wLjAyNzUsIC0wLjAxODc1IiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDM3NSwgLTAuMDMzNzUsIC0wLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDU4NzUsIC0wLjA1Mzc1LCAtMC4wNDc1LCAtMC4wNDc1LCAtMC4wNDEyNSwgLTAuMDM3NSwgLTAuMDM1IiwgXAotICAgICAgICAgICItMC4wNjc1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjA1LCAtMC4wNDYyNSwgLTAuMDQzNzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLCAwLjAxMTI1LCAwLjAxNzUsIDAuMDIzNzUsIDAuMDMsIDAuMDQsIDAuMDQyNSIsIFwKLSAgICAgICAgICAiLTAuMDA1LCAwLjAwNjI1LCAwLjAxMjUsIDAuMDE4NzUsIDAuMDI1LCAwLjAyODc1LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjAxMTI1LCAwLCAwLjAwNjI1LCAwLjAxMjUsIDAuMDE4NzUsIDAuMDIyNSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDExMjUsIC0wLjAwNjI1LCAwLCAwLjAwNjI1LCAwLjAxMjUsIDAuMDIyNSwgMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjAxNzUsIC0wLjAxMjUsIDAsIDAuMDA2MjUsIDAuMDA2MjUsIDAuMDE2MjUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjAyMTI1LCAtMC4wMTYyNSwgLTAuMDAzNzUsIC0wLjAwMzc1LCAwLjAwMjUsIDAuMDEyNSwgMC4wMTUiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAsIDAuMDEsIDAuMDEyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiUk4mIVNFIjsKLSAgICAgIHNkZl9jb25kIDogIlJOX0VRXzFfQU5fU0VfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNSwgMC4wMzg3NSwgMC4wMzI1LCAwLjAzMjUsIDAuMDI2MjUsIDAuMDIyNSwgMC4wMiIsIFwKLSAgICAgICAgICAiMC4wNTUsIDAuMDUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMjc1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiMC4wNjEyNSwgMC4wNTYyNSwgMC4wNSwgMC4wNDM3NSwgMC4wNDM3NSwgMC4wMzM3NSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4wNzM3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1LCAwLjA1LCAwLjA0LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIjAuMDgsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNTYyNSwgMC4wNDYyNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4wODM3NSwgMC4wNzg3NSwgMC4wNzI1LCAwLjA2NjI1LCAwLjA2LCAwLjA1NjI1LCAwLjA1Mzc1IiwgXAotICAgICAgICAgICIwLjA5MjUsIDAuMDg3NSwgMC4wNzUsIDAuMDc1LCAwLjA2ODc1LCAwLjA2NSwgMC4wNjI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDI1LCAwLjAyLCAwLjAwNzUsIDAuMDAxMjUsIC0wLjAwNSwgLTAuMDE1LCAtMC4wMTc1IiwgXAotICAgICAgICAgICIwLjAzNjI1LCAwLjAyNSwgMC4wMTg3NSwgMC4wMDYyNSwgMCwgLTAuMDAzNzUsIC0wLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMDQyNSwgMC4wMzEyNSwgMC4wMjUsIDAuMDEyNSwgMC4wMDYyNSwgMC4wMDI1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiMC4wNDg3NSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAxODc1LCAwLjAxMjUsIDAuMDA4NzUsIDAiLCBcCi0gICAgICAgICAgIjAuMDQ4NzUsIDAuMDQzNzUsIDAuMDMxMjUsIDAuMDI1LCAwLjAxODc1LCAwLjAwODc1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICIwLjA1ODc1LCAwLjA0NzUsIDAuMDQxMjUsIDAuMDM1LCAwLjAyODc1LCAwLjAxODc1LCAwLjAxIiwgXAotICAgICAgICAgICIwLjA2MTI1LCAwLjA1NjI1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDIxMjUsIDAuMDE4NzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFEpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMS4zNDg7Ci0gICAgZnVuY3Rpb24gOiAiTjMwIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBub25fdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJpc2luZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4OTEzOCwgMC4xNDY3NjYsIDAuMjAyMDQ4LCAwLjI0MTQ4LCAwLjMwNDY0NiwgMC4zNTk4ODksIDAuNDM4Nzg2IiwgXAotICAgICAgICAgICIwLjA5NzM4OCwgMC4xNTUwMjYsIDAuMjEwMzA3LCAwLjI0OTc1OSwgMC4zMTI5MDgsIDAuMzY4MTQ5LCAwLjQ0NzA0NiIsIFwKLSAgICAgICAgICAiMC4xMDY4NiwgMC4xNjQ1MDEsIDAuMjE5NzU0LCAwLjI1OTIyNywgMC4zMjIzODUsIDAuMzc3NjE4LCAwLjQ1NjUyIiwgXAotICAgICAgICAgICIwLjExNDY4MSwgMC4xNzIyOTMsIDAuMjI3NTU2LCAwLjI2NzAxLCAwLjMzMDE4MSwgMC4zODUzOSwgMC40NjQzNDUiLCBcCi0gICAgICAgICAgIjAuMTIwOTg1LCAwLjE3ODYxOCwgMC4yMzM4ODEsIDAuMjczMzM0LCAwLjMzNjUzMiwgMC4zOTE3MTYsIDAuNDcwNjgiLCBcCi0gICAgICAgICAgIjAuMTI5MTg0LCAwLjE4NjgzNSwgMC4yNDIwODksIDAuMjgxNTQyLCAwLjM0NDY3OCwgMC4zOTk5NjIsIDAuNDc4ODQ2IiwgXAotICAgICAgICAgICIwLjEzNTYyNywgMC4xOTMyOTUsIDAuMjQ4NTQ3LCAwLjI4ODAyLCAwLjM1MTE0OSwgMC40MDY0NjUsIDAuNDg1Mjk2Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDI4MDIyLCAwLjE0MTMwNCwgMC4yNTgwOCwgMC4zNDIyLCAwLjQ3NjYzMywgMC41OTU0MDksIDAuNzYzMTk3IiwgXAotICAgICAgICAgICIwLjAyODAxNSwgMC4xNDEyOTksIDAuMjU4MjIyLCAwLjM0MjU4NywgMC40NzY2NjQsIDAuNTk1NDAyLCAwLjc2MzE4MSIsIFwKLSAgICAgICAgICAiMC4wMjgwMTYsIDAuMTQxMzM2LCAwLjI1ODE4MywgMC4zNDI1NzgsIDAuNDc2NzMsIDAuNTk1Mzk2LCAwLjc2MzI0NSIsIFwKLSAgICAgICAgICAiMC4wMjgwMjksIDAuMTQxMzMyLCAwLjI1ODM5LCAwLjM0MjUxLCAwLjQ3NzM2OCwgMC41OTQ2ODcsIDAuNzYzOTQ5IiwgXAotICAgICAgICAgICIwLjAyODAxMSwgMC4xNDEzNDEsIDAuMjU4NDA3LCAwLjM0MjUxMiwgMC40NzY1MTQsIDAuNTk1MzQzLCAwLjc2MzkyOSIsIFwKLSAgICAgICAgICAiMC4wMjgxMTgsIDAuMTQxMzUsIDAuMjU4NDA5LCAwLjM0MjUwMiwgMC40NzcyODcsIDAuNTk1MjUyLCAwLjc2MzgyNSIsIFwKLSAgICAgICAgICAiMC4wMjc5OTYsIDAuMTQxMzUsIDAuMjU4MTYzLCAwLjM0MjU1LCAwLjQ3NzE5MiwgMC41OTQ0MTIsIDAuNzYzMTY5Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDkwMDY4LCAwLjE0NDg1NCwgMC4xOTg2ODYsIDAuMjM3MTM0LCAwLjI5ODYzNSwgMC4zNTI0NDgsIDAuNDI5MzA4IiwgXAotICAgICAgICAgICIwLjA5ODM0NCwgMC4xNTMxMzMsIDAuMjA2OTY1LCAwLjI0NTQwOCwgMC4zMDY5MTUsIDAuMzYwNzEyLCAwLjQzNzU4MiIsIFwKLSAgICAgICAgICAiMC4xMDc5NDEsIDAuMTYyNzE5LCAwLjIxNjU2NiwgMC4yNTUwMjMsIDAuMzE2NDk4LCAwLjM3MDI5NCwgMC40NDcxNjQiLCBcCi0gICAgICAgICAgIjAuMTE2MDE3LCAwLjE3MDc5OSwgMC4yMjQ2MjYsIDAuMjYzMDgsIDAuMzI0NTcxLCAwLjM3ODM5NiwgMC40NTUyMzMiLCBcCi0gICAgICAgICAgIjAuMTIyNDY4LCAwLjE3NzI1LCAwLjIzMTA4MSwgMC4yNjk1MzIsIDAuMzMxMDI4LCAwLjM4NDg1MSwgMC40NjE3MzMiLCBcCi0gICAgICAgICAgIjAuMTMwODU4LCAwLjE4NTY0MywgMC4yMzk0ODIsIDAuMjc3OTIsIDAuMzM5NDE3LCAwLjM5MzIwNywgMC40NzAwNzgiLCBcCi0gICAgICAgICAgIjAuMTM3Mjg4LCAwLjE5MjA2OSwgMC4yNDU4NDcsIDAuMjg0MzAyLCAwLjM0NTg1MSwgMC4zOTk2NDgsIDAuNDc2NSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyMzQ4NiwgMC4xMzI2MjEsIDAuMjQ0Mjc1LCAwLjMyMzg3MSwgMC40NTIzMDYsIDAuNTY0MzgsIDAuNzI0NDE3IiwgXAotICAgICAgICAgICIwLjAyMzQ5OCwgMC4xMzI2MjEsIDAuMjQ0MjcyLCAwLjMyNDI2NiwgMC40NTIzMDQsIDAuNTY0Mjg5LCAwLjcyMzU0OCIsIFwKLSAgICAgICAgICAiMC4wMjM1MDUsIDAuMTMyNjIyLCAwLjI0NDM0NCwgMC4zMjM4NCwgMC40NTIzMTgsIDAuNTY0Mjk5LCAwLjcyMzU5OCIsIFwKLSAgICAgICAgICAiMC4wMjM0OTIsIDAuMTMyNDU5LCAwLjI0NDI3NCwgMC4zMjM3MDIsIDAuNDUyMjQ1LCAwLjU2NDM5OSwgMC43MjQzMTgiLCBcCi0gICAgICAgICAgIjAuMDIzNDkyLCAwLjEzMjYzNCwgMC4yNDQyNzcsIDAuMzI0MjM2LCAwLjQ1MjMwNCwgMC41NjQ0MDMsIDAuNzI0NTQyIiwgXAotICAgICAgICAgICIwLjAyMzU4MywgMC4xMzI1OTksIDAuMjQ0MzQxLCAwLjMyMzkzMSwgMC40NTIzMDksIDAuNTY0MzA4LCAwLjcyMzU2MSIsIFwKLSAgICAgICAgICAiMC4wMjM1MDMsIDAuMTMyNTAxLCAwLjI0NDMzOSwgMC4zMjQzMzMsIDAuNDUyMzM2LCAwLjU2MzY2NywgMC43MjQ0MiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogY2xlYXI7Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDMwMjQzLCAwLjA4NTExOCwgMC4xMzg4OTYsIDAuMTc3MzMsIDAuMjM4ODA3LCAwLjI5MjYwNiwgMC4zNjk0NzEiLCBcCi0gICAgICAgICAgIjAuMDM4MzM5LCAwLjA5MzI0MSwgMC4xNDcwMzgsIDAuMTg1NDUxLCAwLjI0NjkzOSwgMC4zMDA3NTYsIDAuMzc3NTk1IiwgXAotICAgICAgICAgICIwLjA0NjUzNCwgMC4xMDE1NTcsIDAuMTU1MzUxLCAwLjE5Mzc2NiwgMC4yNTUyNTYsIDAuMzA5MDM5LCAwLjM4NTg5NSIsIFwKLSAgICAgICAgICAiMC4wNTI1MjYsIDAuMTA3NzA1LCAwLjE2MTQ4MywgMC4xOTk4OTIsIDAuMjYxMzcsIDAuMzE1MTc2LCAwLjM5MjA0NyIsIFwKLSAgICAgICAgICAiMC4wNTcyNTcsIDAuMTEyNjE2LCAwLjE2NjM3NCwgMC4yMDQ3ODMsIDAuMjY2MjQ1LCAwLjMyMDA1MSwgMC4zOTY5NDEiLCBcCi0gICAgICAgICAgIjAuMDYzMzUyLCAwLjExODkzMywgMC4xNzI3MSwgMC4yMTExMDQsIDAuMjcyNTY3LCAwLjMyNjM3NiwgMC40MDMyMjgiLCBcCi0gICAgICAgICAgIjAuMDY3NzA4LCAwLjEyMzUyNywgMC4xNzcyNzQsIDAuMjE1NjU4LCAwLjI3NzEyMSwgMC4zMzA5MTgsIDAuNDA3NzkzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDIzMDU5LCAwLjEzMjM0NywgMC4yNDM4NjIsIDAuMzIzODksIDAuNDUxODgzLCAwLjU2Mzc5NCwgMC43MjMxNjEiLCBcCi0gICAgICAgICAgIjAuMDIzMTc5LCAwLjEzMjMyMiwgMC4yNDM4NDYsIDAuMzIzODUyLCAwLjQ1MTQ1NCwgMC41NjM5MjEsIDAuNzIzOTY1IiwgXAotICAgICAgICAgICIwLjAyNDI2NSwgMC4xMzI0NTcsIDAuMjQzODg0LCAwLjMyMzY5MywgMC40NTEzOTQsIDAuNTYzNjE4LCAwLjcyMzIzIiwgXAotICAgICAgICAgICIwLjAyNTQ4MSwgMC4xMzI3MzQsIDAuMjQ0MDEsIDAuMzIzODgyLCAwLjQ1MTgxOSwgMC41NjM0MjYsIDAuNzIzODE4IiwgXAotICAgICAgICAgICIwLjAyNjU5NCwgMC4xMzI5OTUsIDAuMjQ0MTE0LCAwLjMyMzkxOSwgMC40NTE5MDcsIDAuNTYzODM0LCAwLjcyMzk3IiwgXAotICAgICAgICAgICIwLjAyODE3LCAwLjEzMzM2OCwgMC4yNDQwNjcsIDAuMzIzOTMyLCAwLjQ1MTQzNSwgMC41NjM4NjEsIDAuNzI0MDEiLCBcCi0gICAgICAgICAgIjAuMDI5NDM4LCAwLjEzMzg0OCwgMC4yNDQyMjMsIDAuMzIzOTcxLCAwLjQ1MTk1NywgMC41NjM5MzQsIDAuNzIzMjcyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE0NjY4LCAwLjAxNDcxMywgMC4wMTQ2ODUsIDAuMDE0NjcsIDAuMDE0NjU1LCAwLjAxNDY0NSwgMC4wMTQ2MzYiLCBcCi0gICAgICAgICAgIjAuMDE0NjQ4LCAwLjAxNDY5NSwgMC4wMTQ2NjcsIDAuMDE0NjUzLCAwLjAxNDYzNywgMC4wMTQ2MjgsIDAuMDE0NjE5IiwgXAotICAgICAgICAgICIwLjAxNDcyMywgMC4wMTQ3NzIsIDAuMDE0NzQ4LCAwLjAxNDczMSwgMC4wMTQ3MTUsIDAuMDE0NzA1LCAwLjAxNDY5NSIsIFwKLSAgICAgICAgICAiMC4wMTQ4MzksIDAuMDE0ODgzLCAwLjAxNDg1NywgMC4wMTQ4NDIsIDAuMDE0ODI2LCAwLjAxNDgxNSwgMC4wMTQ4MDgiLCBcCi0gICAgICAgICAgIjAuMDE0OTUyLCAwLjAxNSwgMC4wMTQ5NzYsIDAuMDE0OTYsIDAuMDE0OTQzLCAwLjAxNDkzMiwgMC4wMTQ5MjMiLCBcCi0gICAgICAgICAgIjAuMDE1MTg4LCAwLjAxNTI0MSwgMC4wMTUyMTcsIDAuMDE1MjAyLCAwLjAxNTE4NCwgMC4wMTUxNzMsIDAuMDE1MTY3IiwgXAotICAgICAgICAgICIwLjAxNTM2NiwgMC4wMTUzOTEsIDAuMDE1Mzk5LCAwLjAxNTM4NCwgMC4wMTUzNjYsIDAuMDE1MzU0LCAwLjAxNTM0MiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE0NjUsIDAuMDE0ODg4LCAwLjAxNDkyNSwgMC4wMTQ5MzcsIDAuMDE0OTQ3LCAwLjAxNDk1MiwgMC4wMTQ5NTciLCBcCi0gICAgICAgICAgIjAuMDE0NjM4LCAwLjAxNDg3NiwgMC4wMTQ5MTMsIDAuMDE0OTI0LCAwLjAxNDkzNSwgMC4wMTQ5NDEsIDAuMDE0OTQ1IiwgXAotICAgICAgICAgICIwLjAxNDc1NywgMC4wMTQ5ODcsIDAuMDE1MDIyLCAwLjAxNTAzMywgMC4wMTUwNDMsIDAuMDE1MDQ4LCAwLjAxNTA1MyIsIFwKLSAgICAgICAgICAiMC4wMTQ4NzQsIDAuMDE1MTA2LCAwLjAxNTE0MSwgMC4wMTUxNTMsIDAuMDE1MTYzLCAwLjAxNTE2NywgMC4wMTUxNzIiLCBcCi0gICAgICAgICAgIjAuMDE0OTksIDAuMDE1MjI3LCAwLjAxNTI2MywgMC4wMTUyNzUsIDAuMDE1Mjg0LCAwLjAxNTI4OSwgMC4wMTUyOTMiLCBcCi0gICAgICAgICAgIjAuMDE1MjUyLCAwLjAxNTQ4NiwgMC4wMTU1MTgsIDAuMDE1NTMsIDAuMDE1NTM4LCAwLjAxNTU0MywgMC4wMTU1NDciLCBcCi0gICAgICAgICAgIjAuMDE1NDgxLCAwLjAxNTcwOSwgMC4wMTU3NDIsIDAuMDE1NzUxLCAwLjAxNTc1OSwgMC4wMTU3NjIsIDAuMDE1NzY2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUk4iOwotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE1ODkzLCAwLjAxNjA4MSwgMC4wMTYxMDUsIDAuMDE2MTEyLCAwLjAxNjExOCwgMC4wMTYxMiwgMC4wMTYxMjQiLCBcCi0gICAgICAgICAgIjAuMDE1ODAyLCAwLjAxNjAxMiwgMC4wMTYwNDYsIDAuMDE2MDU3LCAwLjAxNjA2NiwgMC4wMTYwNjksIDAuMDE2MDc1IiwgXAotICAgICAgICAgICIwLjAxNTg5NCwgMC4wMTYwODIsIDAuMDE2MTI0LCAwLjAxNjEzNywgMC4wMTYxNSwgMC4wMTYxNTYsIDAuMDE2MTYyIiwgXAotICAgICAgICAgICIwLjAxNjEwNiwgMC4wMTYyNDcsIDAuMDE2MjkxLCAwLjAxNjMwNywgMC4wMTYzMTcsIDAuMDE2MzI0LCAwLjAxNjMzMSIsIFwKLSAgICAgICAgICAiMC4wMTYzODYsIDAuMDE2NDg5LCAwLjAxNjUzMiwgMC4wMTY1NDcsIDAuMDE2NTYzLCAwLjAxNjU2NSwgMC4wMTY1NzciLCBcCi0gICAgICAgICAgIjAuMDE2ODkxLCAwLjAxNjkxNywgMC4wMTY5NTcsIDAuMDE2OTY4LCAwLjAxNjk4NiwgMC4wMTY5OTMsIDAuMDE3IiwgXAotICAgICAgICAgICIwLjAxNzM4NSwgMC4wMTczNDksIDAuMDE3MzgyLCAwLjAxNzM5OSwgMC4wMTc0MTIsIDAuMDE3NDIxLCAwLjAxNzQyNyIpOwotICAgICAgfQotICAgICAgcmlzZV9wb3dlcihzY2FsYXIpIHsKLSAgICAgICAgdmFsdWVzKCIwIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihSTikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAyNTE3NDc7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAyMzE3MDQ7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAyNTE3NDc7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxMjYyLCAwLjAwMTI2MSwgMC4wMDEyNjEsIDAuMDAxMjYxLCAwLjAwMTI2LCAwLjAwMTI2LCAwLjAwMTI2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxMzA2LCAwLjAwMTI4LCAwLjAwMTI3MSwgMC4wMDEyNjgsIDAuMDAxMjY3LCAwLjAwMTI2NSwgMC4wMDEyNjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUk4iOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFEJiFTRSYhU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1NFX0VRXzBfQU5fU0lfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjA1OTg0NCwgMC4wNjY1NTEsIDAuMDczMjA2LCAwLjA3ODY1NiwgMC4wODMwNzMsIDAuMDg4ODcxLCAwLjA5MzAzOCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJlY292ZXJ5X3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUQmU0UmU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1NFX0VRXzFfQU5fU0lfRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChyZWNvdmVyeV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDI1LCAtMC4wMzYyNSwgLTAuMDQyNSwgLTAuMDQ4NzUsIC0wLjA1NSwgLTAuMDY1LCAtMC4wNzM3NSIsIFwKLSAgICAgICAgICAiLTAuMDI2MjUsIC0wLjAzNzUsIC0wLjA0Mzc1LCAtMC4wNTYyNSwgLTAuMDYyNSwgLTAuMDY2MjUsIC0wLjA3NSIsIFwKLSAgICAgICAgICAiLTAuMDI2MjUsIC0wLjAzMTI1LCAtMC4wNDM3NSwgLTAuMDUsIC0wLjA1NjI1LCAtMC4wNjYyNSwgLTAuMDY4NzUiLCBcCi0gICAgICAgICAgIi0wLjAxMzc1LCAtMC4wMjUsIC0wLjAzMTI1LCAtMC4wNDM3NSwgLTAuMDUsIC0wLjA2LCAtMC4wNjI1IiwgXAotICAgICAgICAgICItMC4wMDEyNSwgLTAuMDEyNSwgLTAuMDI1LCAtMC4wMzEyNSwgLTAuMDM3NSwgLTAuMDQ3NSwgLTAuMDU2MjUiLCBcCi0gICAgICAgICAgIjAuMDIxMjUsIDAuMDEsIC0wLjAwMjUsIC0wLjAxNSwgLTAuMDIxMjUsIC0wLjAzMTI1LCAtMC4wNCIsIFwKLSAgICAgICAgICAiMC4wMzYyNSwgMC4wMjUsIDAuMDEyNSwgMC4wMDYyNSwgLTAuMDA2MjUsIC0wLjAxNjI1LCAtMC4wMTg3NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJlbW92YWxfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRCZTRSZTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fU0VfRVFfMV9BTl9TSV9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHJlbW92YWxfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM3NSwgMC4wNDg3NSwgMC4wNjEyNSwgMC4wNjc1LCAwLjA3Mzc1LCAwLjA3NzUsIDAuMDg2MjUiLCBcCi0gICAgICAgICAgIjAuMDQ1LCAwLjA1LCAwLjA2MjUsIDAuMDY4NzUsIDAuMDc1LCAwLjA4NSwgMC4wODc1IiwgXAotICAgICAgICAgICIwLjA1MTI1LCAwLjA1NjI1LCAwLjA2ODc1LCAwLjA3NSwgMC4wODEyNSwgMC4wODUsIDAuMDkzNzUiLCBcCi0gICAgICAgICAgIjAuMDUxMjUsIDAuMDYyNSwgMC4wNjg3NSwgMC4wNzUsIDAuMDgxMjUsIDAuMDkxMjUsIDAuMDkzNzUiLCBcCi0gICAgICAgICAgIjAuMDU3NSwgMC4wNjI1LCAwLjA3NSwgMC4wODEyNSwgMC4wODc1LCAwLjA5MTI1LCAwLjEiLCBcCi0gICAgICAgICAgIjAuMDYsIDAuMDY1LCAwLjA3NzUsIDAuMDgzNzUsIDAuMDksIDAuMSwgMC4xMDI1IiwgXAotICAgICAgICAgICIwLjA2Mzc1LCAwLjA2ODc1LCAwLjA4MTI1LCAwLjA4NzUsIDAuMDkzNzUsIDAuMDk3NSwgMC4xMDYyNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oU0UpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTU1Mzk4OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTU1MzU0OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTU1Mzk4OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNjk4OCwgMC4wMDY5ODcsIDAuMDA3MDQ2LCAwLjAwNzE1MiwgMC4wMDcyNzUsIDAuMDA3NTI5LCAwLjAwNzczMyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwODc3MSwgMC4wMDg3NjUsIDAuMDA4OSwgMC4wMDkwOTEsIDAuMDA5MzMxLCAwLjAwOTc0MSwgMC4wMTAxMjYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiUk4iOwotICAgICAgc2RmX2NvbmQgOiAiUk4gPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDA2MjUsIC0wLjAwMTI1LCAwLjAxMTI1LCAwLjAxNzUsIDAuMDIzNzUsIDAuMDI3NSwgMC4wMyIsIFwKLSAgICAgICAgICAiLTAuMDE3NSwgLTAuMDA2MjUsIDAsIDAuMDA2MjUsIDAuMDEyNSwgMC4wMjI1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLCAwLjAwNjI1LCAwLjAxNjI1LCAwLjAxODc1IiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLCAwLjAxLCAwLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMjUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLCAwLjAwMzc1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wMzM3NSwgLTAuMDI4NzUsIC0wLjAyMjUsIC0wLjAxNjI1LCAtMC4wMSwgMCwgMC4wMDI1IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA4NzUsIDAiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjI1LCAwLjAxMTI1LCAwLjAyMzc1LCAwLjAzLCAwLjAzNjI1LCAwLjA0LCAwLjA0ODc1IiwgXAotICAgICAgICAgICIwLjAwMTI1LCAwLjAwNjI1LCAwLjAxODc1LCAwLjAyNSwgMC4wMjUsIDAuMDM1LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjAwNSwgMCwgMC4wMDYyNSwgMC4wMTI1LCAwLjAxODc1LCAwLjAyODc1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wMTEyNSwgLTAuMDA2MjUsIDAsIDAuMDA2MjUsIDAuMDEyNSwgMC4wMjI1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDE3NSwgLTAuMDA2MjUsIDAsIDAuMDA2MjUsIDAuMDA2MjUsIDAuMDE2MjUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjAyMTI1LCAtMC4wMTYyNSwgLTAuMDEsIC0wLjAwMzc1LCAwLjAwMjUsIDAuMDEyNSwgMC4wMTUiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTI1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMCwgMC4wMDM3NSwgMC4wMTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJSTiI7Ci0gICAgICBzZGZfY29uZCA6ICJSTiA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDM3NSwgMC4wMzg3NSwgMC4wMzI1LCAwLjAyNjI1LCAwLjAyLCAwLjAxNjI1LCAwLjAxMzc1IiwgXAotICAgICAgICAgICIwLjA1NSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAzMTI1LCAwLjAyNzUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMDYxMjUsIDAuMDU2MjUsIDAuMDUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzM3NSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4wNzM3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1LCAwLjA1LCAwLjA0LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIjAuMDgsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNTYyNSwgMC4wNTI1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjA5LCAwLjA3ODc1LCAwLjA3MjUsIDAuMDY2MjUsIDAuMDY2MjUsIDAuMDYyNSwgMC4wNTM3NSIsIFwKLSAgICAgICAgICAiMC4wOTg3NSwgMC4wODc1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNzUsIDAuMDY1LCAwLjA2MjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjI1LCAwLjA1MTI1LCAwLjA0NSwgMC4wMzg3NSwgMC4wMzg3NSwgMC4wMzUsIDAuMDI2MjUiLCBcCi0gICAgICAgICAgIjAuMDY3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1LCAwLjA0Mzc1LCAwLjA0LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIjAuMDczNzUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNSwgMC4wNDYyNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4wOCwgMC4wNzUsIDAuMDYyNSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1MjUsIDAuMDUiLCBcCi0gICAgICAgICAgIjAuMDg2MjUsIDAuMDc1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDYyNSwgMC4wNTg3NSwgMC4wNSIsIFwKLSAgICAgICAgICAiMC4wOSwgMC4wNzg3NSwgMC4wNzI1LCAwLjA3MjUsIDAuMDY2MjUsIDAuMDYyNSwgMC4wNiIsIFwKLSAgICAgICAgICAiMC4wOTI1LCAwLjA4NzUsIDAuMDgxMjUsIDAuMDc1LCAwLjA2ODc1LCAwLjA2NSwgMC4wNjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTSSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwOTA1NDY4OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDkwMzIyOTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA5MDU0Njg7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA0MTgzLCAwLjAwNDEzOCwgMC4wMDQxNjMsIDAuMDA0MjEsIDAuMDA0MzAzLCAwLjAwNDQ1NCwgMC4wMDQ2MTMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDc3MTcsIDAuMDA3Njg5LCAwLjAwNzcxMiwgMC4wMDc3NjgsIDAuMDA3ODI5LCAwLjAwNzk3NywgMC4wMDgxNCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJSTiZTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJSTl9FUV8xX0FOX1NFX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDI1LCAtMC4wMiwgLTAuMDEzNzUsIC0wLjAxMzc1LCAtMC4wMDc1LCAtMC4wMDM3NSwgLTAuMDAxMjUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA4NzUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMjUsIC0wLjAyMTI1LCAtMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMzEyNSwgLTAuMDI3NSwgLTAuMDI1IiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDM3NSwgLTAuMDMzNzUsIC0wLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDU4NzUsIC0wLjA1Mzc1LCAtMC4wNTM3NSwgLTAuMDQ3NSwgLTAuMDQxMjUsIC0wLjAzNzUsIC0wLjAzNSIsIFwKLSAgICAgICAgICAiLTAuMDY3NSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDQ2MjUsIC0wLjA0Mzc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMCwgMC4wMTEyNSwgMC4wMTc1LCAwLjAyMzc1LCAwLjAzLCAwLjAzMzc1LCAwLjA0MjUiLCBcCi0gICAgICAgICAgIi0wLjAwNSwgMC4wMDYyNSwgMC4wMTI1LCAwLjAxODc1LCAwLjAyNSwgMC4wMjg3NSwgMC4wMzc1IiwgXAotICAgICAgICAgICItMC4wMTEyNSwgMCwgMC4wMDYyNSwgMC4wMTI1LCAwLjAxODc1LCAwLjAyMjUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjAxNzUsIC0wLjAwNjI1LCAwLCAwLjAwNjI1LCAwLjAxMjUsIDAuMDE2MjUsIDAuMDI1IiwgXAotICAgICAgICAgICItMC4wMTc1LCAtMC4wMTI1LCAwLCAwLjAwNjI1LCAwLjAwNjI1LCAwLjAxNjI1LCAwLjAxODc1IiwgXAotICAgICAgICAgICItMC4wMjEyNSwgLTAuMDE2MjUsIC0wLjAxLCAtMC4wMDM3NSwgMC4wMDI1LCAwLjAxMjUsIDAuMDE1IiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLCAwLjAwMzc1LCAwLjAxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlJOJlNFIjsKLSAgICAgIHNkZl9jb25kIDogIlJOX0VRXzFfQU5fU0VfRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNSwgMC4wMzg3NSwgMC4wMzI1LCAwLjAzMjUsIDAuMDI2MjUsIDAuMDIyNSwgMC4wMiIsIFwKLSAgICAgICAgICAiMC4wNTUsIDAuMDUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMjc1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiMC4wNjEyNSwgMC4wNTYyNSwgMC4wNSwgMC4wNDM3NSwgMC4wNDM3NSwgMC4wMzM3NSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4wNzM3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1LCAwLjA1LCAwLjA0NjI1LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIjAuMDgsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNTYyNSwgMC4wNTI1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjA5LCAwLjA3ODc1LCAwLjA3MjUsIDAuMDY2MjUsIDAuMDYsIDAuMDU2MjUsIDAuMDUzNzUiLCBcCi0gICAgICAgICAgIjAuMDkyNSwgMC4wODc1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjUsIDAuMDYyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzMTI1LCAwLjAyLCAwLjAxMzc1LCAwLjAwMTI1LCAtMC4wMDUsIC0wLjAwODc1LCAtMC4wMTc1IiwgXAotICAgICAgICAgICIwLjAzNjI1LCAwLjAyNSwgMC4wMTg3NSwgMC4wMDYyNSwgMCwgLTAuMDAzNzUsIC0wLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMDQyNSwgMC4wMzEyNSwgMC4wMjUsIDAuMDE4NzUsIDAuMDEyNSwgMC4wMDI1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiMC4wNDg3NSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMTI1LCAwLjAwODc1LCAwIiwgXAotICAgICAgICAgICIwLjA1NSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAyNSwgMC4wMTg3NSwgMC4wMTUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMDU4NzUsIDAuMDUzNzUsIDAuMDQxMjUsIDAuMDM1LCAwLjAyODc1LCAwLjAxODc1LCAwLjAxNjI1IiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDU2MjUsIDAuMDUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMjc1LCAwLjAxODc1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogU0RGRlJYMSAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChTREZGUlgxKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDEuMTY3ODk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgZmYgKE4zMCxRQklOVCkgewotICAgIG5leHRfc3RhdGUgOiAiKChTRSBTSSkgKyAoIVNFIEQpKSI7Ci0gICAgY2xvY2tlZF9vbiA6ICJDSyI7Ci0gICAgY2xlYXIgOiAiKCFSTikiOwotICB9Ci0gIHBpbihDSykgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjExNDQ7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjExNDI1OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDYxMTQ0OwotICAgIGNsb2NrIDogdHJ1ZTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDM0NjIsIDAuMDAzNDU0LCAwLjAwMzUyNiwgMC4wMDM2MzIsIDAuMDAzNzUzLCAwLjAwMzk4NSwgMC4wMDQxNyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwODcxOCwgMC4wMDg3MDksIDAuMDA4ODAyLCAwLjAwODkzLCAwLjAwOTA4OCwgMC4wMDkyMzMsIDAuMDA5NDM1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRCZSTiYhU0UmIVNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9STl9FUV8xX0FOX1NFX0VRXzBfQU5fU0lfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjEyMDg0MiwgMC4xMjkwODgsIDAuMTM4MzE3LCAwLjE0NTgzOCwgMC4xNTE4MywgMC4xNTk2MzYsIDAuMTY1NDk1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wNjQ3ODcsIDAuMDcyOTQ2LCAwLjA4MjEzMiwgMC4wODkzNDMsIDAuMDk1MTU0LCAwLjEwMjc3MiwgMC4xMDgyMzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEQpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYzMzI0ODsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MzE1MzY7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjMzMjQ4OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzQ2OSwgMC4wMDM0MzksIDAuMDAzNDU5LCAwLjAwMzUwOSwgMC4wMDM1NjEsIDAuMDAzNjc1LCAwLjAwMzc5MiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNTU4NCwgMC4wMDU1NjgsIDAuMDA1NTgzLCAwLjAwNTYyMywgMC4wMDU2ODIsIDAuMDA1Nzk5LCAwLjAwNTkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiUk4mIVNFIjsKLSAgICAgIHNkZl9jb25kIDogIlJOX0VRXzFfQU5fU0VfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMzEyNSwgLTAuMDI2MjUsIC0wLjAyLCAtMC4wMiwgLTAuMDEzNzUsIC0wLjAxLCAtMC4wMDc1IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzEyNSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDI1LCAtMC4wMjEyNSwgLTAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAzMTI1LCAtMC4wMjc1LCAtMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjA1NSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDMzNzUsIC0wLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wNjEyNSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjA0LCAtMC4wMzc1IiwgXAotICAgICAgICAgICItMC4wNjUsIC0wLjA2LCAtMC4wNiwgLTAuMDUzNzUsIC0wLjA1Mzc1LCAtMC4wNSwgLTAuMDQ3NSIsIFwKLSAgICAgICAgICAiLTAuMDczNzUsIC0wLjA2ODc1LCAtMC4wNjI1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDUyNSwgLTAuMDUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMTI1LCAtMC4wMDEyNSwgMC4wMDUsIDAuMDExMjUsIDAuMDE3NSwgMC4wMjEyNSwgMC4wMjM3NSIsIFwKLSAgICAgICAgICAiLTAuMDE3NSwgLTAuMDA2MjUsIDAsIDAuMDA2MjUsIDAuMDEyNSwgMC4wMTYyNSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLCAwLjAwNjI1LCAwLjAxLCAwLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAsIDAuMDAzNzUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgLTAuMDAyNSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDMzNzUsIC0wLjAyODc1LCAtMC4wMjI1LCAtMC4wMTYyNSwgLTAuMDEsIC0wLjAwNjI1LCAtMC4wMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxODc1LCAtMC4wMDg3NSwgLTAuMDA2MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlJOJiFTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJSTl9FUV8xX0FOX1NFX0VRXzAgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU2MjUsIDAuMDUxMjUsIDAuMDM4NzUsIDAuMDM4NzUsIDAuMDMyNSwgMC4wMjg3NSwgMC4wMjYyNSIsIFwKLSAgICAgICAgICAiMC4wNjEyNSwgMC4wNTYyNSwgMC4wNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzMzc1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNSwgMC4wNSwgMC4wNDYyNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4wOCwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1NjI1LCAwLjA1MjUsIDAuMDUiLCBcCi0gICAgICAgICAgIjAuMDg2MjUsIDAuMDc1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDYyNSwgMC4wNTg3NSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiMC4wOSwgMC4wODUsIDAuMDc4NzUsIDAuMDcyNSwgMC4wNzI1LCAwLjA2ODc1LCAwLjA2IiwgXAotICAgICAgICAgICIwLjA5ODc1LCAwLjA5Mzc1LCAwLjA4NzUsIDAuMDgxMjUsIDAuMDc1LCAwLjA3MTI1LCAwLjA2ODc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM3NSwgMC4wMzI1LCAwLjAyLCAwLjAxMzc1LCAwLjAwNzUsIDAuMDAzNzUsIC0wLjAwNSIsIFwKLSAgICAgICAgICAiMC4wNDg3NSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMTg3NSwgMC4wMDg3NSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiMC4wNTUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMjUsIDAuMDE1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMDYxMjUsIDAuMDUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMjEyNSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4wNjc1LCAwLjA1NjI1LCAwLjA1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDI3NSwgMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMDcxMjUsIDAuMDY2MjUsIDAuMDUzNzUsIDAuMDQ3NSwgMC4wNDEyNSwgMC4wMzc1LCAwLjAyODc1IiwgXAotICAgICAgICAgICIwLjA4LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDUsIDAuMDQsIDAuMDM3NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjM0NTc1OTsKLSAgICBmdW5jdGlvbiA6ICJOMzAiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5vbl91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcmlzaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExOTYwOSwgMC4xMzg3NTMsIDAuMjQ0MTg4LCAwLjMzNzIxNCwgMC40NjE1NywgMC43MDk0MTEsIDAuODY0NTgiLCBcCi0gICAgICAgICAgIjAuMTI3NzgzLCAwLjE0NjkyOSwgMC4yNTIzNjcsIDAuMzQ1MzkxLCAwLjQ2OTc0NSwgMC43MTc1NzQsIDAuODcyNzU1IiwgXAotICAgICAgICAgICIwLjEzNjkxOSwgMC4xNTYxMjIsIDAuMjYxNTI5LCAwLjM1NDU1MSwgMC40Nzg4ODgsIDAuNzI2NzE5LCAwLjg4MjkwOCIsIFwKLSAgICAgICAgICAiMC4xNDQyNDgsIDAuMTYzNDM3LCAwLjI2ODgzOCwgMC4zNjE4NTMsIDAuNDg1OTUyLCAwLjczNDc5NSwgMC44ODkxOTkiLCBcCi0gICAgICAgICAgIjAuMTUwMDQ2LCAwLjE2OTIyOSwgMC4yNzQ2NDIsIDAuMzY3NjU4LCAwLjQ5MTk4MywgMC43NDA2MDMsIDAuODk1OTY0IiwgXAotICAgICAgICAgICIwLjE1NzkxMiwgMC4xNzcwODIsIDAuMjgyNTMsIDAuMzc1NTEsIDAuNDk5NjgzLCAwLjc0ODQ2NiwgMC45MDM4NjEiLCBcCi0gICAgICAgICAgIjAuMTYzNDcsIDAuMTgyNjA2LCAwLjI4ODA5NSwgMC4zODEwNjgsIDAuNTA1MjQxLCAwLjc1Mzk0MywgMC45MDk0Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3NzYwMywgMC4xMTQ5MTgsIDAuMzMzNDAxLCAwLjUyODQ4LCAwLjc5MTA2NiwgMS4zMTIxNSwgMS42Mzg4MSIsIFwKLSAgICAgICAgICAiMC4wNzc2LCAwLjExNDkxNCwgMC4zMzMzOTQsIDAuNTI4NTAyLCAwLjc5MTA2NCwgMS4zMTIxNSwgMS42MzkxNCIsIFwKLSAgICAgICAgICAiMC4wNzc1NjksIDAuMTE0OTI1LCAwLjMzMzQxMSwgMC41Mjg0NSwgMC43OTEwNTUsIDEuMzEyMDMsIDEuNjQyMTUiLCBcCi0gICAgICAgICAgIjAuMDc3NTY4LCAwLjExNDkzOSwgMC4zMzMzODgsIDAuNTI4MjU0LCAwLjc4OTcxNSwgMS4zMTQ3OCwgMS42MzkxNyIsIFwKLSAgICAgICAgICAiMC4wNzc1OSwgMC4xMTQ5MDUsIDAuMzMzMzg3LCAwLjUyODUxMywgMC43OTEwNDYsIDEuMzE0ODEsIDEuNjQyMDgiLCBcCi0gICAgICAgICAgIjAuMDc3NTk4LCAwLjExNDkxMiwgMC4zMzMzNjQsIDAuNTI5Mzc2LCAwLjc5MDA4MywgMS4zMTQ2NywgMS42NDIiLCBcCi0gICAgICAgICAgIjAuMDc3NjIxLCAwLjExNDk2MSwgMC4zMzM0MDIsIDAuNTI4MjgzLCAwLjc4OTk4NiwgMS4zMTQ2NywgMS42NDIiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTEyMzE3LCAwLjEzMDU4NiwgMC4yMzM0MjcsIDAuMzI0MTk4LCAwLjQ0NDQxLCAwLjY4NjI3NywgMC44MzczODkiLCBcCi0gICAgICAgICAgIjAuMTIwNTE5LCAwLjEzODc5MSwgMC4yNDE2MjcsIDAuMzMyMzg5LCAwLjQ1MzAwMSwgMC42OTQ0ODMsIDAuODQ1NTE0IiwgXAotICAgICAgICAgICIwLjEyOTc5MSwgMC4xNDgwNzcsIDAuMjUwODk1LCAwLjM0MTY2MiwgMC40NjE5NjEsIDAuNzAzNzUsIDAuODU0ODUzIiwgXAotICAgICAgICAgICIwLjEzNzI3NCwgMC4xNTU1MjgsIDAuMjU4MTgsIDAuMzQ5MTUzLCAwLjQ2OTY1OSwgMC43MTExOTgsIDAuODYyMjkxIiwgXAotICAgICAgICAgICIwLjE0MzI2NSwgMC4xNjE1MjIsIDAuMjY0MTc3LCAwLjM1NTEzNCwgMC40NzU2MzMsIDAuNzE3MTc2LCAwLjg2ODI3MiIsIFwKLSAgICAgICAgICAiMC4xNTEwNjcsIDAuMTY5MzQxLCAwLjI3MjEzNywgMC4zNjI4NjYsIDAuNDgzNTAxLCAwLjcyNTA3LCAwLjg3NjAzIiwgXAotICAgICAgICAgICIwLjE1NjkyOSwgMC4xNzUxNDgsIDAuMjc4MTMyLCAwLjM2ODY4LCAwLjQ4OTM0MywgMC43MzA4MDUsIDAuODgxMjM1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3MDA2NSwgMC4xMDY0OTMsIDAuMzE1ODYzLCAwLjUwMjE3MywgMC43NTA1MjksIDEuMjQ4OTcsIDEuNTYwMzMiLCBcCi0gICAgICAgICAgIjAuMDcwMjQ0LCAwLjEwNjQ5OSwgMC4zMTU4NjEsIDAuNTAyMzQyLCAwLjc1MTIwMiwgMS4yNDg5OCwgMS41NjAxOCIsIFwKLSAgICAgICAgICAiMC4wNzAxMzgsIDAuMTA2NDkxLCAwLjMxNTg1NywgMC41MDIyLCAwLjc1MDgxNywgMS4yNDg5OCwgMS41NjAzMyIsIFwKLSAgICAgICAgICAiMC4wNzAzODYsIDAuMTA1OTcxLCAwLjMxNjI0NCwgMC41MDIwNiwgMC43NTExMzMsIDEuMjQ4OTIsIDEuNTYwMjciLCBcCi0gICAgICAgICAgIjAuMDcwMzk5LCAwLjEwNjA3MywgMC4zMTYyNCwgMC41MDIwNzgsIDAuNzUxMTIsIDEuMjQ4OTEsIDEuNTYwMjciLCBcCi0gICAgICAgICAgIjAuMDcwNDUxLCAwLjEwNjQ0LCAwLjMxNTg1OCwgMC41MDIzMjgsIDAuNzUxMTg3LCAxLjI0OTA4LCAxLjU2MDE2IiwgXAotICAgICAgICAgICIwLjA3MDQ5NiwgMC4xMDYyNjQsIDAuMzE2MDg5LCAwLjUwMjMsIDAuNzUxMDU2LCAxLjI0ODY4LCAxLjU1ODM4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiBjbGVhcjsKLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDYyNjQsIDAuMDgwODYzLCAwLjE4MzU3OCwgMC4yNzQyODQsIDAuMzk1MDIzLCAwLjYzNjMzMywgMC43ODc1OTciLCBcCi0gICAgICAgICAgIjAuMDcwNzI1LCAwLjA4ODk2NiwgMC4xOTE3NTcsIDAuMjgyMDY4LCAwLjQwMzE2OSwgMC42NDQ1MDMsIDAuNzk1NTg1IiwgXAotICAgICAgICAgICIwLjA4MDE4OSwgMC4wOTg0MjUsIDAuMjAxMTQsIDAuMjkxODAzLCAwLjQxMjE5NSwgMC42NTQxODUsIDAuODA0OTE1IiwgXAotICAgICAgICAgICIwLjA4Nzg3MSwgMC4xMDYwNTEsIDAuMjA4ODA4LCAwLjI5OTMzNywgMC40MjAxNywgMC42NjE3MywgMC44MTI1MTYiLCBcCi0gICAgICAgICAgIjAuMDk0MDI1LCAwLjExMjIyNywgMC4yMTQ5NTgsIDAuMzA1NTEyLCAwLjQyNTk3LCAwLjY2NzI1NiwgMC44MTg2MjYiLCBcCi0gICAgICAgICAgIjAuMTAyMTEyLCAwLjEyMDI1LCAwLjIyMzA3NiwgMC4zMTMzMjIsIDAuNDM0MjksIDAuNjc1NzE5LCAwLjgyNjU5OSIsIFwKLSAgICAgICAgICAiMC4xMDc5MDQsIDAuMTI2MDU3LCAwLjIyODY1MywgMC4zMTk1MTYsIDAuNDM5ODcxLCAwLjY4MTQ1NywgMC44MzI0OSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzAyNTEsIDAuMTA2NjM5LCAwLjMxNTkxNSwgMC41MDIzMzUsIDAuNzUxMjkyLCAxLjI0ODY5LCAxLjU2MDEzIiwgXAotICAgICAgICAgICIwLjA3MDI1MSwgMC4xMDYxNjcsIDAuMzE1ODAzLCAwLjUwMjE3NCwgMC43NTEyMDQsIDEuMjQ4ODEsIDEuNTYwMTEiLCBcCi0gICAgICAgICAgIjAuMDcwMjcyLCAwLjEwNjIwOSwgMC4zMTU3MDYsIDAuNTAyMjk0LCAwLjc1MDIzLCAxLjI0OTExLCAxLjU1OTkiLCBcCi0gICAgICAgICAgIjAuMDcxMTA0LCAwLjEwNjc1MywgMC4zMTU3MzMsIDAuNTAyMjU4LCAwLjc1MTA4MywgMS4yNDkwOCwgMS41NTk5NCIsIFwKLSAgICAgICAgICAiMC4wNzE4NjksIDAuMTA3NDM3LCAwLjMxNTc5NiwgMC41MDIxMTksIDAuNzUwNDU4LCAxLjI0NzQ3LCAxLjU1OTY3IiwgXAotICAgICAgICAgICIwLjA3MjU0NywgMC4xMDc3MzgsIDAuMzE1NzIyLCAwLjUwMTk1LCAwLjc1MTA2MiwgMS4yNDg2NywgMS41NTk2OSIsIFwKLSAgICAgICAgICAiMC4wNzM1MDcsIDAuMTA4MTcyLCAwLjMxNTkxLCAwLjUwMjM2MSwgMC43NTA1MTIsIDEuMjQ4NjMsIDEuNTU5NzQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1MjMsIDAuMDA1MjI1LCAwLjAwNTE5NCwgMC4wMDUxODEsIDAuMDA1MTc0LCAwLjAwNTE2NiwgMC4wMDUxNjMiLCBcCi0gICAgICAgICAgIjAuMDA1MjIyLCAwLjAwNTIxNywgMC4wMDUxODYsIDAuMDA1MTc0LCAwLjAwNTE2NiwgMC4wMDUxNTgsIDAuMDA1MTU2IiwgXAotICAgICAgICAgICIwLjAwNTI2OSwgMC4wMDUyNjUsIDAuMDA1MjM1LCAwLjAwNTIyMiwgMC4wMDUyMTMsIDAuMDA1MjA1LCAwLjAwNTIwMiIsIFwKLSAgICAgICAgICAiMC4wMDUzMjIsIDAuMDA1MzE4LCAwLjAwNTI4OSwgMC4wMDUyNzUsIDAuMDA1MjY2LCAwLjAwNTI1NywgMC4wMDUyNTUiLCBcCi0gICAgICAgICAgIjAuMDA1MzgxLCAwLjAwNTM3OCwgMC4wMDUzNDksIDAuMDA1MzM1LCAwLjAwNTMyNiwgMC4wMDUzMTcsIDAuMDA1MzE0IiwgXAotICAgICAgICAgICIwLjAwNTQ4NiwgMC4wMDU0ODEsIDAuMDA1NDU2LCAwLjAwNTQ0MiwgMC4wMDU0MiwgMC4wMDU0MjEsIDAuMDA1NDE4IiwgXAotICAgICAgICAgICIwLjAwNTU5MiwgMC4wMDU1ODgsIDAuMDA1NTYsIDAuMDA1NTQ2LCAwLjAwNTUzNSwgMC4wMDU1MjUsIDAuMDA1NTIxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1MjUyLCAwLjAwNTI2MSwgMC4wMDUyNzQsIDAuMDA1Mjc3LCAwLjAwNTI4LCAwLjAwNTI4MSwgMC4wMDUyODEiLCBcCi0gICAgICAgICAgIjAuMDA1MjUsIDAuMDA1MjU5LCAwLjAwNTI3MiwgMC4wMDUyNzUsIDAuMDA1Mjc3LCAwLjAwNTI3OSwgMC4wMDUyNzgiLCBcCi0gICAgICAgICAgIjAuMDA1MzA0LCAwLjAwNTMxMywgMC4wMDUzMjUsIDAuMDA1MzI4LCAwLjAwNTMzLCAwLjAwNTMzMiwgMC4wMDUzMzIiLCBcCi0gICAgICAgICAgIjAuMDA1MzUzLCAwLjAwNTM2MSwgMC4wMDUzNzQsIDAuMDA1Mzc2LCAwLjAwNTM3OCwgMC4wMDUzNzksIDAuMDA1MzgiLCBcCi0gICAgICAgICAgIjAuMDA1NDI5LCAwLjAwNTQzNywgMC4wMDU0NDksIDAuMDA1NDUxLCAwLjAwNTQ1MiwgMC4wMDU0NTMsIDAuMDA1NDU0IiwgXAotICAgICAgICAgICIwLjAwNTUzNiwgMC4wMDU1NDQsIDAuMDA1NTU0LCAwLjAwNTU1NSwgMC4wMDU1NTcsIDAuMDA1NTU3LCAwLjAwNTU1OCIsIFwKLSAgICAgICAgICAiMC4wMDU2NDksIDAuMDA1NjU4LCAwLjAwNTY2NywgMC4wMDU2NjgsIDAuMDA1NjY5LCAwLjAwNTY2OSwgMC4wMDU2NjkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1NTQzLCAwLjAwNTU1MSwgMC4wMDU1NjIsIDAuMDA1NTY0LCAwLjAwNTU2NiwgMC4wMDU1NjcsIDAuMDA1NTY2IiwgXAotICAgICAgICAgICIwLjAwNTUyNywgMC4wMDU1MzUsIDAuMDA1NTQ4LCAwLjAwNTU1MSwgMC4wMDU1NTMsIDAuMDA1NTU0LCAwLjAwNTU1NSIsIFwKLSAgICAgICAgICAiMC4wMDU1NSwgMC4wMDU1NTksIDAuMDA1NTc0LCAwLjAwNTU3NywgMC4wMDU1NzksIDAuMDA1NTgxLCAwLjAwNTU4MiIsIFwKLSAgICAgICAgICAiMC4wMDU1OTUsIDAuMDA1NjA0LCAwLjAwNTYxOCwgMC4wMDU2MjIsIDAuMDA1NjI0LCAwLjAwNTYyNiwgMC4wMDU2MjciLCBcCi0gICAgICAgICAgIjAuMDA1NjU2LCAwLjAwNTY2NSwgMC4wMDU2ODEsIDAuMDA1Njg2LCAwLjAwNTY4NywgMC4wMDU2OSwgMC4wMDU2OSIsIFwKLSAgICAgICAgICAiMC4wMDU3NzgsIDAuMDA1NzgzLCAwLjAwNTc5NiwgMC4wMDU3OTksIDAuMDA1ODAzLCAwLjAwNTgwMywgMC4wMDU4MDQiLCBcCi0gICAgICAgICAgIjAuMDA1ODk3LCAwLjAwNTg5OSwgMC4wMDU5MTEsIDAuMDA1OTE0LCAwLjAwNTkxNywgMC4wMDU5MTksIDAuMDA1OTIiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfcG93ZXIoc2NhbGFyKSB7Ci0gICAgICAgIHZhbHVlcygiMCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUU4pICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4zMzc2NjsKLSAgICBmdW5jdGlvbiA6ICJRQklOVCI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3NlbnNlIDogbm9uX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiByaXNpbmdfZWRnZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTIwODQyLCAwLjEzOTQ0MywgMC4yNDQ4OTUsIDAuMzM4MDI0LCAwLjQ2MjA0NCwgMC43MTAxODEsIDAuODY1MzU2IiwgXAotICAgICAgICAgICIwLjEyOTA4OCwgMC4xNDc2NDksIDAuMjUzMSwgMC4zNDYyMjcsIDAuNDcwMjQzLCAwLjcxODM4OSwgMC44NzM1MjIiLCBcCi0gICAgICAgICAgIjAuMTM4MzE3LCAwLjE1NjkyLCAwLjI2MjM3LCAwLjM1NTQ5NywgMC40Nzk1MDYsIDAuNzI3NjU4LCAwLjg4MjgyOSIsIFwKLSAgICAgICAgICAiMC4xNDU4MzgsIDAuMTY0NCwgMC4yNjk4NjgsIDAuMzYyOTk4LCAwLjQ4Njk3NSwgMC43MzUxMzksIDAuODkwMzA1IiwgXAotICAgICAgICAgICIwLjE1MTgzLCAwLjE3MDM5NSwgMC4yNzU4NTksIDAuMzY4OTkyLCAwLjQ5Mjk3MywgMC43NDExMzMsIDAuODk2MzAxIiwgXAotICAgICAgICAgICIwLjE1OTYzNiwgMC4xNzgyMzYsIDAuMjgzNjM3LCAwLjM3Njc0NiwgMC41MDA3ODEsIDAuNzQ4OTU4LCAwLjkwNDA2NCIsIFwKLSAgICAgICAgICAiMC4xNjU0OTUsIDAuMTg0MDY3LCAwLjI4OTU0OSwgMC4zODI2MDUsIDAuNTA2NjQ2LCAwLjc1NDc4MiwgMC45MDk4NDciKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDcwNTI2LCAwLjEwOTQ5OSwgMC4zMzE3NDMsIDAuNTI2ODczLCAwLjc4NzgsIDEuMzEyMTgsIDEuNjM5MDUiLCBcCi0gICAgICAgICAgIjAuMDcwNTE5LCAwLjEwOTUwMywgMC4zMzE3NDIsIDAuNTI3MDQ0LCAwLjc4OTI1OSwgMS4zMTIxNywgMS42MzkwNSIsIFwKLSAgICAgICAgICAiMC4wNzA1MjcsIDAuMTA5NTAxLCAwLjMzMTc0LCAwLjUyNjg4MiwgMC43ODg0MywgMS4zMTIxOCwgMS42MzkwNSIsIFwKLSAgICAgICAgICAiMC4wNzA1MTEsIDAuMTA5MzYyLCAwLjMzMTM0NywgMC41MjY4MzksIDAuNzg5MTk5LCAxLjMxMjE0LCAxLjYzOTA0IiwgXAotICAgICAgICAgICIwLjA3MDUxLCAwLjEwOTM1OCwgMC4zMzEzMjYsIDAuNTI2ODQ0LCAwLjc4OTIwNCwgMS4zMTIxNCwgMS42MzkwNCIsIFwKLSAgICAgICAgICAiMC4wNzA1MjksIDAuMTA5NDkyLCAwLjMzMTczMywgMC41MjcwNDQsIDAuNzg5MjQ5LCAxLjMxMjE3LCAxLjYzOTA1IiwgXAotICAgICAgICAgICIwLjA3MDUyOSwgMC4xMDkzODEsIDAuMzMxMTkyLCAwLjUyNzgzOCwgMC43ODkxNTYsIDEuMzEyMDgsIDEuNjM3MjkiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTI1Mzk4LCAwLjE0MzQ4MywgMC4yNDU5NzksIDAuMzM2NTA1LCAwLjQ1NzEsIDAuNjk4Mzk1LCAwLjg0OTIyOSIsIFwKLSAgICAgICAgICAiMC4xMzM1NjUsIDAuMTUxNjUsIDAuMjU0MTQ2LCAwLjM0NDY3MSwgMC40NjUyNjMsIDAuNzA2NTUyLCAwLjg1NzM5MiIsIFwKLSAgICAgICAgICAiMC4xNDI3MDIsIDAuMTYwNzk2LCAwLjI2MzMwNywgMC4zNTM4MzQsIDAuNDc0NDEzLCAwLjcxNTcwOCwgMC44NjY0NCIsIFwKLSAgICAgICAgICAiMC4xNTAwMzQsIDAuMTY4MTI0LCAwLjI3MDYxLCAwLjM2MTEzMSwgMC40ODE3MjUsIDAuNzIyOTU0LCAwLjg3Mzg1IiwgXAotICAgICAgICAgICIwLjE1NTgwNiwgMC4xNzM4OSwgMC4yNzYzNzksIDAuMzY2OTAyLCAwLjQ4NzQ3OCwgMC43Mjg3NDYsIDAuODc5NDc2IiwgXAotICAgICAgICAgICIwLjE2MzY5OCwgMC4xODE3NzMsIDAuMjg0MjYsIDAuMzc0NzE2LCAwLjQ5NTMyMywgMC43MzY2MjIsIDAuODg3Mzk1IiwgXAotICAgICAgICAgICIwLjE2OTI2NiwgMC4xODczNjIsIDAuMjg5ODQzLCAwLjM4MDMzNiwgMC41MDA5MjMsIDAuNzQyMjQyLCAwLjg5Mjk3NyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjczMTgsIDAuMTA0MTY2LCAwLjMxNTE1MiwgMC41MDA3MzIsIDAuNzUwMzg2LCAxLjI0NTI0LCAxLjU1NTUiLCBcCi0gICAgICAgICAgIjAuMDY3MzE5LCAwLjEwNDE2NSwgMC4zMTUxNDksIDAuNTAwNzM1LCAwLjc1MDM3NywgMS4yNDUyNiwgMS41NTU2NCIsIFwKLSAgICAgICAgICAiMC4wNjczMjgsIDAuMTA0MTc4LCAwLjMxNTE1MywgMC41MDA3MTgsIDAuNzUwMzYzLCAxLjI0NTI2LCAxLjU1ODI2IiwgXAotICAgICAgICAgICIwLjA2NzI4MiwgMC4xMDQxNzUsIDAuMzE1MTQyLCAwLjUwMDc0LCAwLjc0OTU1OCwgMS4yNDc0NywgMS41NTU2NCIsIFwKLSAgICAgICAgICAiMC4wNjczMDUsIDAuMTA0MTYyLCAwLjMxNTE0NiwgMC41MDA3MzgsIDAuNzUwMzMxLCAxLjI0NzUzLCAxLjU1ODE0IiwgXAotICAgICAgICAgICIwLjA2NzMzMiwgMC4xMDQxODQsIDAuMzE1MTA4LCAwLjUwMTYwNCwgMC43NDk5MDgsIDEuMjQ3MzIsIDEuNTU4MDEiLCBcCi0gICAgICAgICAgIjAuMDY3Mjg2LCAwLjEwNDIxMSwgMC4zMTUxMjEsIDAuNTAwODA0LCAwLjc0OTksIDEuMjQ3MzEsIDEuNTU4MDMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUk4iOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHByZXNldDsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDcxMTk0LCAwLjA4OTc4NCwgMC4xOTUyMzIsIDAuMjg4Mjc2LCAwLjQxMjM2OCwgMC42NjA0NjQsIDAuODE1NjYiLCBcCi0gICAgICAgICAgIjAuMDc5MjkzLCAwLjA5Nzg0MSwgMC4yMDMyODcsIDAuMjk2MzI3LCAwLjQyMDQ1OSwgMC42Njg1MiwgMC44MjM3MDUiLCBcCi0gICAgICAgICAgIjAuMDg4NTU0LCAwLjEwNzE0NiwgMC4yMTI1ODMsIDAuMzA1NjI0LCAwLjQyOTcxMSwgMC42Nzc4OTYsIDAuODMyOTA4IiwgXAotICAgICAgICAgICIwLjA5NTk3MywgMC4xMTQ1MTMsIDAuMjE5OTIxLCAwLjMxMjk2MiwgMC40MzcwNDksIDAuNjg1MTU2LCAwLjg0MDIxMiIsIFwKLSAgICAgICAgICAiMC4xMDE3MzEsIDAuMTIwMjMyLCAwLjIyNTY0NCwgMC4zMTg2ODMsIDAuNDQyNzU3LCAwLjY5MDkwOSwgMC44NDU5MzQiLCBcCi0gICAgICAgICAgIjAuMTA5MTUyLCAwLjEyNzcxMSwgMC4yMzMxNDEsIDAuMzI2MTczLCAwLjQ1MDIyNSwgMC42OTgzMzksIDAuODUzNDA3IiwgXAotICAgICAgICAgICIwLjExNDQ3NiwgMC4xMzMwMjIsIDAuMjM4Mzg5LCAwLjMzMTUyNiwgMC40NTU1MDMsIDAuNzAzNjU5LCAwLjg1ODc2Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3MDQ1MywgMC4xMDkzNiwgMC4zMzE1NjgsIDAuNTI3NDc1LCAwLjc4OTAxMiwgMS4zMTE5MiwgMS42Mzg3MiIsIFwKLSAgICAgICAgICAiMC4wNzA0NjgsIDAuMTA5MzUsIDAuMzMxNTQ0LCAwLjUyNzE5OSwgMC43ODkwODMsIDEuMzExOTMsIDEuNjM4OCIsIFwKLSAgICAgICAgICAiMC4wNzA0OSwgMC4xMDkzNTQsIDAuMzMxNTU2LCAwLjUyNzU0MiwgMC43ODgyOTYsIDEuMzExOTQsIDEuNjM4NjkiLCBcCi0gICAgICAgICAgIjAuMDcwNTMyLCAwLjEwOTM3OSwgMC4zMzE1MjgsIDAuNTI3NTUzLCAwLjc4OTAxMywgMS4zMTE5NiwgMS42Mzg3IiwgXAotICAgICAgICAgICIwLjA3MDU3NSwgMC4xMDk0LCAwLjMzMTUyOCwgMC41Mjc1MzEsIDAuNzg4NDM3LCAxLjMxMDI5LCAxLjYzODY4IiwgXAotICAgICAgICAgICIwLjA3MDczNCwgMC4xMDk0MTcsIDAuMzMxNTY0LCAwLjUyNzIyMiwgMC43ODg5NSwgMS4zMTE5LCAxLjYzODY3IiwgXAotICAgICAgICAgICIwLjA3MDcwMSwgMC4xMDk1ODIsIDAuMzMxMjU5LCAwLjUyNzYwNiwgMC43ODgzODIsIDEuMzExNzcsIDEuNjM4NTgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1MjUyLCAwLjAwNTI2MSwgMC4wMDUyNzQsIDAuMDA1Mjc3LCAwLjAwNTI4LCAwLjAwNTI4MSwgMC4wMDUyODEiLCBcCi0gICAgICAgICAgIjAuMDA1MjUsIDAuMDA1MjU5LCAwLjAwNTI3MiwgMC4wMDUyNzUsIDAuMDA1Mjc3LCAwLjAwNTI3OSwgMC4wMDUyNzgiLCBcCi0gICAgICAgICAgIjAuMDA1MzA0LCAwLjAwNTMxMywgMC4wMDUzMjUsIDAuMDA1MzI4LCAwLjAwNTMzLCAwLjAwNTMzMiwgMC4wMDUzMzIiLCBcCi0gICAgICAgICAgIjAuMDA1MzUzLCAwLjAwNTM2MSwgMC4wMDUzNzQsIDAuMDA1Mzc2LCAwLjAwNTM3OCwgMC4wMDUzNzksIDAuMDA1MzgiLCBcCi0gICAgICAgICAgIjAuMDA1NDI5LCAwLjAwNTQzNywgMC4wMDU0NDksIDAuMDA1NDUxLCAwLjAwNTQ1MiwgMC4wMDU0NTMsIDAuMDA1NDU0IiwgXAotICAgICAgICAgICIwLjAwNTUzNiwgMC4wMDU1NDQsIDAuMDA1NTU0LCAwLjAwNTU1NSwgMC4wMDU1NTcsIDAuMDA1NTU3LCAwLjAwNTU1OCIsIFwKLSAgICAgICAgICAiMC4wMDU2NDksIDAuMDA1NjU4LCAwLjAwNTY2NywgMC4wMDU2NjgsIDAuMDA1NjY5LCAwLjAwNTY2OSwgMC4wMDU2NjkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDUyMywgMC4wMDUyMjUsIDAuMDA1MTk0LCAwLjAwNTE4MSwgMC4wMDUxNzQsIDAuMDA1MTY2LCAwLjAwNTE2MyIsIFwKLSAgICAgICAgICAiMC4wMDUyMjIsIDAuMDA1MjE3LCAwLjAwNTE4NiwgMC4wMDUxNzQsIDAuMDA1MTY2LCAwLjAwNTE1OCwgMC4wMDUxNTYiLCBcCi0gICAgICAgICAgIjAuMDA1MjY5LCAwLjAwNTI2NSwgMC4wMDUyMzUsIDAuMDA1MjIyLCAwLjAwNTIxMywgMC4wMDUyMDUsIDAuMDA1MjAyIiwgXAotICAgICAgICAgICIwLjAwNTMyMiwgMC4wMDUzMTgsIDAuMDA1Mjg5LCAwLjAwNTI3NSwgMC4wMDUyNjYsIDAuMDA1MjU3LCAwLjAwNTI1NSIsIFwKLSAgICAgICAgICAiMC4wMDUzODEsIDAuMDA1Mzc4LCAwLjAwNTM0OSwgMC4wMDUzMzUsIDAuMDA1MzI2LCAwLjAwNTMxNywgMC4wMDUzMTQiLCBcCi0gICAgICAgICAgIjAuMDA1NDg2LCAwLjAwNTQ4MSwgMC4wMDU0NTYsIDAuMDA1NDQyLCAwLjAwNTQyLCAwLjAwNTQyMSwgMC4wMDU0MTgiLCBcCi0gICAgICAgICAgIjAuMDA1NTkyLCAwLjAwNTU4OCwgMC4wMDU1NiwgMC4wMDU1NDYsIDAuMDA1NTM1LCAwLjAwNTUyNSwgMC4wMDU1MjEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1NTQzLCAwLjAwNTU1MSwgMC4wMDU1NjIsIDAuMDA1NTY0LCAwLjAwNTU2NiwgMC4wMDU1NjcsIDAuMDA1NTY2IiwgXAotICAgICAgICAgICIwLjAwNTUyNywgMC4wMDU1MzUsIDAuMDA1NTQ4LCAwLjAwNTU1MSwgMC4wMDU1NTMsIDAuMDA1NTU0LCAwLjAwNTU1NSIsIFwKLSAgICAgICAgICAiMC4wMDU1NSwgMC4wMDU1NTksIDAuMDA1NTc0LCAwLjAwNTU3NywgMC4wMDU1NzksIDAuMDA1NTgxLCAwLjAwNTU4MiIsIFwKLSAgICAgICAgICAiMC4wMDU1OTUsIDAuMDA1NjA0LCAwLjAwNTYxOCwgMC4wMDU2MjIsIDAuMDA1NjI0LCAwLjAwNTYyNiwgMC4wMDU2MjciLCBcCi0gICAgICAgICAgIjAuMDA1NjU2LCAwLjAwNTY2NSwgMC4wMDU2ODEsIDAuMDA1Njg2LCAwLjAwNTY4NywgMC4wMDU2OSwgMC4wMDU2OSIsIFwKLSAgICAgICAgICAiMC4wMDU3NzgsIDAuMDA1NzgzLCAwLjAwNTc5NiwgMC4wMDU3OTksIDAuMDA1ODAzLCAwLjAwNTgwMywgMC4wMDU4MDQiLCBcCi0gICAgICAgICAgIjAuMDA1ODk3LCAwLjAwNTg5OSwgMC4wMDU5MTEsIDAuMDA1OTE0LCAwLjAwNTkxNywgMC4wMDU5MTksIDAuMDA1OTIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoc2NhbGFyKSB7Ci0gICAgICAgIHZhbHVlcygiMCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUk4pICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTU4Mzk3OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTQ5Mzc5OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTU4Mzk3OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDU5MywgMC4wMDA1OTMsIDAuMDAwNTkyLCAwLjAwMDU5MiwgMC4wMDA1OTIsIDAuMDAwNTkyLCAwLjAwMDU5MiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDYxMSwgMC4wMDA2LCAwLjAwMDU5OSwgMC4wMDA1OTcsIDAuMDAwNTk4LCAwLjAwMDU5NiwgMC4wMDA1OTUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUk4iOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFEJiFTRSYhU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1NFX0VRXzBfQU5fU0lfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjA3MTE5NCwgMC4wNzkyOTMsIDAuMDg4NTU0LCAwLjA5NTk3MywgMC4xMDE3MjMsIDAuMTA5MTUyLCAwLjExNDQ3NiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJlY292ZXJ5X3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUQmU0UmU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1NFX0VRXzFfQU5fU0lfRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChyZWNvdmVyeV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDI1LCAtMC4wMzYyNSwgLTAuMDQyNSwgLTAuMDU1LCAtMC4wNjEyNSwgLTAuMDY1LCAtMC4wNzM3NSIsIFwKLSAgICAgICAgICAiLTAuMDI2MjUsIC0wLjAzNzUsIC0wLjA1LCAtMC4wNTYyNSwgLTAuMDYyNSwgLTAuMDY2MjUsIC0wLjA3NSIsIFwKLSAgICAgICAgICAiLTAuMDIsIC0wLjAzMTI1LCAtMC4wNDM3NSwgLTAuMDUsIC0wLjA1NjI1LCAtMC4wNjYyNSwgLTAuMDY4NzUiLCBcCi0gICAgICAgICAgIi0wLjAxMzc1LCAtMC4wMTg3NSwgLTAuMDMxMjUsIC0wLjAzNzUsIC0wLjA0Mzc1LCAtMC4wNTM3NSwgLTAuMDU2MjUiLCBcCi0gICAgICAgICAgIjAuMDA1LCAtMC4wMDYyNSwgLTAuMDE4NzUsIC0wLjAyNSwgLTAuMDMxMjUsIC0wLjA0MTI1LCAtMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4wMjc1LCAwLjAxNjI1LCAwLjAwMzc1LCAtMC4wMDI1LCAtMC4wMDg3NSwgLTAuMDE4NzUsIC0wLjAyNzUiLCBcCi0gICAgICAgICAgIjAuMDQ4NzUsIDAuMDM3NSwgMC4wMjUsIDAuMDE4NzUsIDAuMDEyNSwgMC4wMDI1LCAtMC4wMDYyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJlbW92YWxfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRCZTRSZTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fU0VfRVFfMV9BTl9TSV9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHJlbW92YWxfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQzNzUsIDAuMDQ4NzUsIDAuMDYxMjUsIDAuMDY3NSwgMC4wNzM3NSwgMC4wNzc1LCAwLjA4NjI1IiwgXAotICAgICAgICAgICIwLjA0NSwgMC4wNTYyNSwgMC4wNjI1LCAwLjA2ODc1LCAwLjA3NSwgMC4wODUsIDAuMDg3NSIsIFwKLSAgICAgICAgICAiMC4wNTEyNSwgMC4wNTYyNSwgMC4wNjg3NSwgMC4wNzUsIDAuMDgxMjUsIDAuMDg1LCAwLjA5Mzc1IiwgXAotICAgICAgICAgICIwLjA1MTI1LCAwLjA2MjUsIDAuMDY4NzUsIDAuMDc1LCAwLjA4MTI1LCAwLjA5MTI1LCAwLjA5Mzc1IiwgXAotICAgICAgICAgICIwLjA1NzUsIDAuMDYyNSwgMC4wNzUsIDAuMDgxMjUsIDAuMDg3NSwgMC4wOTEyNSwgMC4xIiwgXAotICAgICAgICAgICIwLjA2LCAwLjA3MTI1LCAwLjA3NzUsIDAuMDgzNzUsIDAuMDksIDAuMSwgMC4xMDI1IiwgXAotICAgICAgICAgICIwLjA2Mzc1LCAwLjA3NSwgMC4wODEyNSwgMC4wODc1LCAwLjA5Mzc1LCAwLjEwMzc1LCAwLjEwNjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTRSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNDE3Nzk7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNDE3Nzk7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNDE3MTU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA1Mjg4LCAwLjAwNTMwOCwgMC4wMDUzODcsIDAuMDA1NTM1LCAwLjAwNTY1OCwgMC4wMDU4ODUsIDAuMDA2MDg4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA2OTg2LCAwLjAwNzAxNywgMC4wMDcxMzIsIDAuMDA3MzA5LCAwLjAwNzUzNiwgMC4wMDc5MDksIDAuMDA4MjUzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlJOIjsKLSAgICAgIHNkZl9jb25kIDogIlJOID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAxMjUsIC0wLjAwNzUsIC0wLjAwMTI1LCAwLjAwNSwgMC4wMTEyNSwgMC4wMTUsIDAuMDIzNzUiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMCwgMC4wMDYyNSwgMC4wMSwgMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLCAwLjAwMzc1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIC0wLjAwMjUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAxMjUsIC0wLjAwMjUsIDAiLCBcCi0gICAgICAgICAgIi0wLjA0LCAtMC4wMzUsIC0wLjAyMjUsIC0wLjAyMjUsIC0wLjAxNjI1LCAtMC4wMDYyNSwgLTAuMDAzNzUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTUsIC0wLjAwNjI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDA2MjUsIDAuMDA1LCAwLjAxMTI1LCAwLjAxNzUsIDAuMDIzNzUsIDAuMDI3NSwgMC4wMyIsIFwKLSAgICAgICAgICAiLTAuMDExMjUsIC0wLjAwNjI1LCAwLjAwNjI1LCAwLjAxMjUsIDAuMDEyNSwgMC4wMjI1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDE3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAsIDAuMDA2MjUsIDAuMDEsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAsIDAuMDAzNzUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgLTAuMDAyNSwgMCIsIFwKLSAgICAgICAgICAiLTAuMDQsIC0wLjAyODc1LCAtMC4wMjI1LCAtMC4wMjI1LCAtMC4wMTYyNSwgLTAuMDEyNSwgLTAuMDAzNzUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTUsIC0wLjAxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlJOIjsKLSAgICAgIHNkZl9jb25kIDogIlJOID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1LCAwLjA0NSwgMC4wMzg3NSwgMC4wMzI1LCAwLjAyNjI1LCAwLjAyMjUsIDAuMDIiLCBcCi0gICAgICAgICAgIjAuMDYxMjUsIDAuMDUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzc1LCAwLjAzMzc1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNSwgMC4wNDM3NSwgMC4wNCwgMC4wMzc1IiwgXAotICAgICAgICAgICIwLjA3Mzc1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDU2MjUsIDAuMDUyNSwgMC4wNSIsIFwKLSAgICAgICAgICAiMC4wODYyNSwgMC4wNzUsIDAuMDY4NzUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNTg3NSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiMC4wOTYyNSwgMC4wODUsIDAuMDc4NzUsIDAuMDc4NzUsIDAuMDcyNSwgMC4wNjg3NSwgMC4wNjYyNSIsIFwKLSAgICAgICAgICAiMC4xMDUsIDAuMDkzNzUsIDAuMDg3NSwgMC4wODEyNSwgMC4wODEyNSwgMC4wNzc1LCAwLjA3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2MjUsIDAuMDU3NSwgMC4wNTEyNSwgMC4wNDUsIDAuMDM4NzUsIDAuMDM1LCAwLjAzMjUiLCBcCi0gICAgICAgICAgIjAuMDY3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1LCAwLjA1LCAwLjA0NjI1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjA3Mzc1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDU2MjUsIDAuMDUyNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4wOCwgMC4wNzUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNTI1LCAwLjA1IiwgXAotICAgICAgICAgICIwLjA4LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA2MjUsIDAuMDU4NzUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIjAuMDksIDAuMDc4NzUsIDAuMDcyNSwgMC4wNjYyNSwgMC4wNjYyNSwgMC4wNjI1LCAwLjA2IiwgXAotICAgICAgICAgICIwLjA5MjUsIDAuMDgxMjUsIDAuMDc1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjUsIDAuMDYyNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oU0kpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY5MDIyMjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2ODg4MDc7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjkwMjIyOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzE2NywgMC4wMDMxNDUsIDAuMDAzMTcxLCAwLjAwMzIxNiwgMC4wMDMyODQsIDAuMDAzMzkzLCAwLjAwMzUyMiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNTc0LCAwLjAwNTcyMiwgMC4wMDU3NDIsIDAuMDA1NzgzLCAwLjAwNTg1NiwgMC4wMDU5NTgsIDAuMDA2MDc3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlJOJlNFIjsKLSAgICAgIHNkZl9jb25kIDogIlJOX0VRXzFfQU5fU0VfRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMzEyNSwgLTAuMDI2MjUsIC0wLjAyLCAtMC4wMiwgLTAuMDEzNzUsIC0wLjAxLCAtMC4wMDc1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDE1LCAtMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDM3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAzMTI1LCAtMC4wMjc1LCAtMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjA1NSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzc1LCAtMC4wMzM3NSwgLTAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjA2MTI1LCAtMC4wNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wNDM3NSwgLTAuMDQsIC0wLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjA2NSwgLTAuMDYsIC0wLjA2LCAtMC4wNTM3NSwgLTAuMDUzNzUsIC0wLjA1LCAtMC4wNDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDczNzUsIC0wLjA2ODc1LCAtMC4wNjI1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDUyNSwgLTAuMDUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMDYyNSwgLTAuMDAxMjUsIDAuMDA1LCAwLjAxMTI1LCAwLjAxNzUsIDAuMDIxMjUsIDAuMDMiLCBcCi0gICAgICAgICAgIi0wLjAxNzUsIC0wLjAwNjI1LCAwLCAwLjAwNjI1LCAwLjAxMjUsIDAuMDE2MjUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMCwgMC4wMDYyNSwgMC4wMSwgMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLCAwLjAwMzc1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMjUsIC0wLjAxMjUsIC0wLjAxMjUsIC0wLjAwNjI1LCAtMC4wMDI1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wMzM3NSwgLTAuMDI4NzUsIC0wLjAyMjUsIC0wLjAxNjI1LCAtMC4wMSwgLTAuMDA2MjUsIC0wLjAwMzc1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxODc1LCAtMC4wMDg3NSwgLTAuMDA2MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlJOJlNFIjsKLSAgICAgIHNkZl9jb25kIDogIlJOX0VRXzFfQU5fU0VfRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTYyNSwgMC4wNDUsIDAuMDM4NzUsIDAuMDM4NzUsIDAuMDMyNSwgMC4wMjg3NSwgMC4wMjYyNSIsIFwKLSAgICAgICAgICAiMC4wNjEyNSwgMC4wNTYyNSwgMC4wNDM3NSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzMzc1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNSwgMC4wNSwgMC4wNCwgMC4wMzc1IiwgXAotICAgICAgICAgICIwLjA3Mzc1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDU2MjUsIDAuMDUyNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4wOCwgMC4wNzUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNjI1LCAwLjA1ODc1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICIwLjA5LCAwLjA4NSwgMC4wNzg3NSwgMC4wNzI1LCAwLjA2NjI1LCAwLjA2MjUsIDAuMDYiLCBcCi0gICAgICAgICAgIjAuMDk4NzUsIDAuMDg3NSwgMC4wODEyNSwgMC4wODEyNSwgMC4wNzUsIDAuMDcxMjUsIDAuMDY4NzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzc1LCAwLjAzMjUsIDAuMDIsIDAuMDEzNzUsIDAuMDA3NSwgMC4wMDM3NSwgLTAuMDA1IiwgXAotICAgICAgICAgICIwLjA0MjUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMTg3NSwgMC4wMTI1LCAwLjAwODc1LCAwIiwgXAotICAgICAgICAgICIwLjA1NSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAyNSwgMC4wMjUsIDAuMDE1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICIwLjA2MTI1LCAwLjA1LCAwLjA0Mzc1LCAwLjAzMTI1LCAwLjAzMTI1LCAwLjAyMTI1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMDYxMjUsIDAuMDU2MjUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMjc1LCAwLjAxODc1IiwgXAotICAgICAgICAgICIwLjA3MTI1LCAwLjA2NjI1LCAwLjA1Mzc1LCAwLjA0NzUsIDAuMDQxMjUsIDAuMDMxMjUsIDAuMDI4NzUiLCBcCi0gICAgICAgICAgIjAuMDgsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNSwgMC4wNSwgMC4wNCwgMC4wMzEyNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IFNERkZSWDIgKgotICogLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoU0RGRlJYMikgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAxLjM5ODMyOwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIGZmIChOMzAsUUJJTlQpIHsKLSAgICBuZXh0X3N0YXRlIDogIigoU0UgU0kpICsgKCFTRSBEKSkiOwotICAgIGNsb2NrZWRfb24gOiAiQ0siOwotICAgIGNsZWFyIDogIighUk4pIjsKLSAgfQotICBwaW4oQ0spICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDU5NDUyNDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA1OTQ1MjQ7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNTk0NTA3OwotICAgIGNsb2NrIDogdHJ1ZTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDMxNzQsIDAuMDAzMTY4LCAwLjAwMzI1LCAwLjAwMzM0NCwgMC4wMDM0NzYsIDAuMDAzNzIsIDAuMDAzODg4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA4NTcsIDAuMDA4NTY1LCAwLjAwODY1OSwgMC4wMDg3OSwgMC4wMDg5NTEsIDAuMDA5MDk0LCAwLjAwOTI5NyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQmUk4mIVNFJiFTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fUk5fRVFfMV9BTl9TRV9FUV8wX0FOX1NJX0VRXzAgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4xMDk2NzEsIDAuMTE3ODU5LCAwLjEyNzA1OCwgMC4xMzQ0MDksIDAuMTQwMjMyLCAwLjE0Nzk3NCwgMC4xNTM2MzYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjA2MjM2LCAwLjA3MDUxNCwgMC4wNzk2MzUsIDAuMDg2NzAxLCAwLjA5MjQwMiwgMC4wOTk4NTMsIDAuMTA1MTk3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihEKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2MTk0ODc7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjE3Nzc1OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDYxOTQ4NzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDMzNjcsIDAuMDAzMzQ1LCAwLjAwMzM3MywgMC4wMDM0MDcsIDAuMDAzNDgzLCAwLjAwMzU5MSwgMC4wMDM3MjEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDUzMzYsIDAuMDA1MzE5LCAwLjAwNTMzOCwgMC4wMDUzNzYsIDAuMDA1NDQzLCAwLjAwNTU2MSwgMC4wMDU2NjQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiUk4mIVNFIjsKLSAgICAgIHNkZl9jb25kIDogIlJOX0VRXzFfQU5fU0VfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMzEyNSwgLTAuMDI2MjUsIC0wLjAyLCAtMC4wMiwgLTAuMDEzNzUsIC0wLjAxLCAtMC4wMDc1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDE1LCAtMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzc1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDMxMjUsIC0wLjAyNzUsIC0wLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjA0Mzc1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDM3NSwgLTAuMDMzNzUsIC0wLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjA0Mzc1LCAtMC4wNCwgLTAuMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDY1LCAtMC4wNiwgLTAuMDUzNzUsIC0wLjA1Mzc1LCAtMC4wNDc1LCAtMC4wNDM3NSwgLTAuMDQxMjUiLCBcCi0gICAgICAgICAgIi0wLjA3Mzc1LCAtMC4wNjg3NSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA1NjI1LCAtMC4wNTI1LCAtMC4wNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAwNjI1LCAtMC4wMDEyNSwgMC4wMDUsIDAuMDExMjUsIDAuMDE3NSwgMC4wMjEyNSwgMC4wMyIsIFwKLSAgICAgICAgICAiLTAuMDExMjUsIC0wLjAwNjI1LCAwLCAwLjAwNjI1LCAwLjAxMjUsIDAuMDE2MjUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjAxNzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLCAwLjAwNjI1LCAwLjAxLCAwLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAsIDAuMDAzNzUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAyNSwgLTAuMDEyNSwgLTAuMDEyNSwgLTAuMDA2MjUsIC0wLjAwMjUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjAzMzc1LCAtMC4wMjg3NSwgLTAuMDIyNSwgLTAuMDE2MjUsIC0wLjAxLCAtMC4wMDYyNSwgLTAuMDAzNzUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDE4NzUsIC0wLjAwODc1LCAtMC4wMDYyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiUk4mIVNFIjsKLSAgICAgIHNkZl9jb25kIDogIlJOX0VRXzFfQU5fU0VfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTYyNSwgMC4wNDUsIDAuMDM4NzUsIDAuMDM4NzUsIDAuMDMyNSwgMC4wMjg3NSwgMC4wMjYyNSIsIFwKLSAgICAgICAgICAiMC4wNjEyNSwgMC4wNTYyNSwgMC4wNDM3NSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzMzc1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNSwgMC4wNSwgMC4wNCwgMC4wMzc1IiwgXAotICAgICAgICAgICIwLjA3Mzc1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDU2MjUsIDAuMDUyNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4wOCwgMC4wNzUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNjI1LCAwLjA1ODc1LCAwLjA1IiwgXAotICAgICAgICAgICIwLjA5LCAwLjA4NSwgMC4wNzg3NSwgMC4wNzI1LCAwLjA2NjI1LCAwLjA2MjUsIDAuMDYiLCBcCi0gICAgICAgICAgIjAuMDk4NzUsIDAuMDg3NSwgMC4wODEyNSwgMC4wODEyNSwgMC4wNzUsIDAuMDcxMjUsIDAuMDY4NzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzc1LCAwLjAzMjUsIDAuMDIsIDAuMDEzNzUsIDAuMDA3NSwgMC4wMDM3NSwgLTAuMDA1IiwgXAotICAgICAgICAgICIwLjA0ODc1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDE4NzUsIDAuMDE4NzUsIDAuMDA4NzUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMDU1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDI1LCAwLjAxNSwgMC4wMTI1IiwgXAotICAgICAgICAgICIwLjA2MTI1LCAwLjA1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDIxMjUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMDYxMjUsIDAuMDU2MjUsIDAuMDUsIDAuMDM3NSwgMC4wMzc1LCAwLjAyNzUsIDAuMDI1IiwgXAotICAgICAgICAgICIwLjA3MTI1LCAwLjA2NjI1LCAwLjA1Mzc1LCAwLjA0NzUsIDAuMDQxMjUsIDAuMDM3NSwgMC4wMjg3NSIsIFwKLSAgICAgICAgICAiMC4wOCwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1LCAwLjA0LCAwLjAzNzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFEpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC42ODU4ODsKLSAgICBmdW5jdGlvbiA6ICJOMzAiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5vbl91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcmlzaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwMzA4MiwgMC4xODM5MTYsIDAuMjQ2MjIyLCAwLjMyNDI2OCwgMC40MDIzMzUsIDAuNDgwMzY2LCAwLjU1ODQxMyIsIFwKLSAgICAgICAgICAiMC4xMTEyNTgsIDAuMTkyMDk2LCAwLjI1NDQwNiwgMC4zMzI0NDEsIDAuNDEwNTA3LCAwLjQ4ODUwNiwgMC41NjY2MTEiLCBcCi0gICAgICAgICAgIjAuMTIwMzMyLCAwLjIwMTE3NSwgMC4yNjM0ODMsIDAuMzQxNTE4LCAwLjQxOTU3OSwgMC40OTc1OSwgMC41NzU2ODUiLCBcCi0gICAgICAgICAgIjAuMTI3NTg1LCAwLjIwODQxOCwgMC4yNzA3MjYsIDAuMzQ4Nzc0LCAwLjQyNjgzNywgMC41MDQ4NTUsIDAuNTgyOTE4IiwgXAotICAgICAgICAgICIwLjEzMzI5NywgMC4yMTQxNDksIDAuMjc2NDIsIDAuMzU0NjE2LCAwLjQzMjU0NSwgMC41MTA3MTMsIDAuNTg4NjExIiwgXAotICAgICAgICAgICIwLjE0MDkwOSwgMC4yMjE4MTEsIDAuMjg0MjAyLCAwLjM2MjE5MSwgMC40NDAyOTYsIDAuNTE4MTc1LCAwLjU5NjIwOSIsIFwKLSAgICAgICAgICAiMC4xNDY2MjMsIDAuMjI3NDU5LCAwLjI4OTg3NiwgMC4zNjc3OTMsIDAuNDQ1ODU2LCAwLjUyMzgzMSwgMC42MDE5NzIiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQ2ODY5LCAwLjIwNzEwNywgMC4zMzg4MTMsIDAuNTA0ODMzLCAwLjY3MTUxLCAwLjgzOTEzNCwgMS4wMDQxMyIsIFwKLSAgICAgICAgICAiMC4wNDY4MDcsIDAuMjA3MDA1LCAwLjMzODgsIDAuNTA0OSwgMC42NzEzMTksIDAuODM4MDgxLCAxLjAwMzkiLCBcCi0gICAgICAgICAgIjAuMDQ2Nzg4LCAwLjIwNzAwNCwgMC4zMzg3OTgsIDAuNTA0ODUxLCAwLjY3MTI4NiwgMC44MzkxMDksIDEuMDAzODUiLCBcCi0gICAgICAgICAgIjAuMDQ2ODg2LCAwLjIwNzAwMywgMC4zMzg4MjQsIDAuNTA0ODQsIDAuNjcxNDczLCAwLjgzOTExNywgMS4wMDQxMiIsIFwKLSAgICAgICAgICAiMC4wNDY4OTUsIDAuMjA3MDkxLCAwLjMzODg5NywgMC41MDUzLCAwLjY3MTMxLCAwLjgzNzkxLCAxLjAwNTk3IiwgXAotICAgICAgICAgICIwLjA0Njk4MiwgMC4yMDY5MDksIDAuMzM5MjU3LCAwLjUwNTIzNSwgMC42NzA5MjksIDAuODM3NjAzLCAxLjAwMzg2IiwgXAotICAgICAgICAgICIwLjA0NjkzOSwgMC4yMDcwMTYsIDAuMzM5MTQ5LCAwLjUwNDU0MywgMC42NzEyMzIsIDAuODM3NzY1LCAxLjAwNDE2Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5NDY2MiwgMC4xNzE0MTYsIDAuMjMyNDk4LCAwLjMwODI4OCwgMC4zODQwMjYsIDAuNDU5ODg2LCAwLjUzNTczMyIsIFwKLSAgICAgICAgICAiMC4xMDI4NTgsIDAuMTc5NjA5LCAwLjI0MDI4LCAwLjMxNjU1MSwgMC4zOTIyOTUsIDAuNDY3ODE5LCAwLjU0Mzk0MyIsIFwKLSAgICAgICAgICAiMC4xMTIwNDcsIDAuMTg4NzczLCAwLjI0OTgxNiwgMC4zMjU3MDQsIDAuNDAxNDI2LCAwLjQ3NzI3NCwgMC41NTMyNDgiLCBcCi0gICAgICAgICAgIjAuMTE5NDA2LCAwLjE5NjE1NSwgMC4yNTY3ODYsIDAuMzMzMDY5LCAwLjQwODMyOCwgMC40ODQzMzcsIDAuNTYwNDgxIiwgXAotICAgICAgICAgICIwLjEyNTIzNCwgMC4yMDE5OTUsIDAuMjYyNTgsIDAuMzM4OTAxLCAwLjQxNDYzMSwgMC40OTA0MiwgMC41NjYzNzgiLCBcCi0gICAgICAgICAgIjAuMTMyOTcxLCAwLjIwOTg0MiwgMC4yNzA3NTUsIDAuMzQ2NTYxLCAwLjQyMjMwOSwgMC40OTgxOTEsIDAuNTc0MTAyIiwgXAotICAgICAgICAgICIwLjEzODYzOSwgMC4yMTU1MiwgMC4yNzYyMzEsIDAuMzUyMTEzLCAwLjQyODEyNCwgMC41MDQwMDgsIDAuNTc5ODE1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzOTcyMywgMC4xOTM4MzgsIDAuMzE5NzE4LCAwLjQ3NzI1MywgMC42MzQwNjgsIDAuNzkxOTE1LCAwLjk0OTY5OCIsIFwKLSAgICAgICAgICAiMC4wMzk4NTQsIDAuMTk0ODgyLCAwLjMxOTY0MywgMC40NzczMTksIDAuNjM0MTE4LCAwLjc5MjgwOSwgMC45NDk3NTIiLCBcCi0gICAgICAgICAgIjAuMDM5OTc1LCAwLjE5NDgwOCwgMC4zMjAyOTgsIDAuNDc3NTAyLCAwLjYzNDk4NywgMC43OTE5MjEsIDAuOTUwMjQ5IiwgXAotICAgICAgICAgICIwLjAzOTg3LCAwLjE5NDg5MSwgMC4zMTk5MjgsIDAuNDc3NTA3LCAwLjYzNTE2OSwgMC43OTI4NDQsIDAuOTQ5NzYiLCBcCi0gICAgICAgICAgIjAuMDM5OTc2LCAwLjE5NDg4NCwgMC4zMjAyNTIsIDAuNDc3NTA5LCAwLjYzNTI4NSwgMC43OTI3OTcsIDAuOTUwMDMiLCBcCi0gICAgICAgICAgIjAuMDM5NzkyLCAwLjE5NDcxLCAwLjMyMDMxNCwgMC40NzczNjUsIDAuNjM1MDM2LCAwLjc5MTc4NCwgMC45NDk3MDMiLCBcCi0gICAgICAgICAgIjAuMDM5OTcxLCAwLjE5NDg5OSwgMC4zMjAyNDUsIDAuNDc3NzQ4LCAwLjYzNTIyLCAwLjc5Mjc4NywgMC45NTAyOTYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUk4iOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGNsZWFyOwotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDU3MTYsIDAuMTIyMzMyLCAwLjE4MzE0NSwgMC4yNTkxMTEsIDAuMzM0OTM4LCAwLjQxMDc2LCAwLjQ4NjUxNiIsIFwKLSAgICAgICAgICAiMC4wNTM4NjMsIDAuMTMwNTQ1LCAwLjE5MTI5NSwgMC4yNjczMDMsIDAuMzQzMTMzLCAwLjQxODkyNCwgMC40OTQ2ODciLCBcCi0gICAgICAgICAgIjAuMDYzNDQ2LCAwLjE0MDExNiwgMC4yMDEwMjUsIDAuMjc2Nzc1LCAwLjM1MjY2LCAwLjQyODUyNiwgMC41MDQyNTMiLCBcCi0gICAgICAgICAgIjAuMDcxMTgsIDAuMTQ3ODQ1LCAwLjIwODcwNywgMC4yODQ1MiwgMC4zNjAwODQsIDAuNDM2Mjg2LCAwLjUxMTk2IiwgXAotICAgICAgICAgICIwLjA3NzMzMSwgMC4xNTQwMTEsIDAuMjE0NzQ5LCAwLjI5MDY5NCwgMC4zNjY1MjYsIDAuNDQyNTg1LCAwLjUxODI1MiIsIFwKLSAgICAgICAgICAiMC4wODUzMiwgMC4xNjIwNzIsIDAuMjIyODE3LCAwLjI5ODc3LCAwLjM3NDYwNiwgMC40NTAwNjMsIDAuNTI2MzMxIiwgXAotICAgICAgICAgICIwLjA5MTA3OCwgMC4xNjc3MDEsIDAuMjI4Mzg3LCAwLjMwNDU3MiwgMC4zODA0MTUsIDAuNDU2MjQxLCAwLjUzMTk5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzOTc1MywgMC4xOTQ2NjUsIDAuMzE5Njg0LCAwLjQ3Njc0MSwgMC42MzQ2MzUsIDAuNzkxODIsIDAuOTQ5NjA1IiwgXAotICAgICAgICAgICIwLjAzOTg3MywgMC4xOTQyNzQsIDAuMzE5Njk2LCAwLjQ3NjMzNiwgMC42MzQxNDQsIDAuNzkyODczLCAwLjk0OTY3NiIsIFwKLSAgICAgICAgICAiMC4wNDAzOTMsIDAuMTkzOSwgMC4zMTk3NDMsIDAuNDc2MzE1LCAwLjYzNDA4NywgMC43OTE4NjcsIDAuOTQ5NTE1IiwgXAotICAgICAgICAgICIwLjA0MTY4LCAwLjE5Mzk5NSwgMC4zMTk5NjksIDAuNDc2MjE1LCAwLjYzNDkyNCwgMC43OTE4OTQsIDAuOTQ5OTQ1IiwgXAotICAgICAgICAgICIwLjA0MjQ2NCwgMC4xOTQxNjYsIDAuMzE5MjE0LCAwLjQ3NzM3OCwgMC42MzQ5MDgsIDAuNzkyMDYyLCAwLjk0OTY0NiIsIFwKLSAgICAgICAgICAiMC4wNDQzNTgsIDAuMTk0ODM2LCAwLjMxOTIxMywgMC40Nzc0MDMsIDAuNjM0ODY2LCAwLjc5MjQwNSwgMC45NDk3MzYiLCBcCi0gICAgICAgICAgIjAuMDQ1MjU1LCAwLjE5Mzg2MSwgMC4zMTk1NjMsIDAuNDc2OTU0LCAwLjYzNDE4NywgMC43OTI0NDMsIDAuOTQ5NzQ5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjE0NCwgMC4wMDYxNDYsIDAuMDA2MTM1LCAwLjAwNjEyOCwgMC4wMDYxMjMsIDAuMDA2MTE5LCAwLjAwNjExNiIsIFwKLSAgICAgICAgICAiMC4wMDYxMzcsIDAuMDA2MTQsIDAuMDA2MTI5LCAwLjAwNjEyLCAwLjAwNjExNSwgMC4wMDYxMTIsIDAuMDA2MTA5IiwgXAotICAgICAgICAgICIwLjAwNjE4NSwgMC4wMDYxOSwgMC4wMDYxNzgsIDAuMDA2MTY5LCAwLjAwNjE2NCwgMC4wMDYxNiwgMC4wMDYxNTgiLCBcCi0gICAgICAgICAgIjAuMDA2MjI5LCAwLjAwNjIzNSwgMC4wMDYyMjMsIDAuMDA2MjE0LCAwLjAwNjIxLCAwLjAwNjIwNCwgMC4wMDYyMDIiLCBcCi0gICAgICAgICAgIjAuMDA2Mjk4LCAwLjAwNjMwNCwgMC4wMDYyOTMsIDAuMDA2MjgzLCAwLjAwNjI3NywgMC4wMDYyNzMsIDAuMDA2MjciLCBcCi0gICAgICAgICAgIjAuMDA2MzkxLCAwLjAwNjQwMSwgMC4wMDYzOSwgMC4wMDYzOCwgMC4wMDYzNzMsIDAuMDA2MzcxLCAwLjAwNjM2NiIsIFwKLSAgICAgICAgICAiMC4wMDY0OSwgMC4wMDY0OTIsIDAuMDA2NDg1LCAwLjAwNjQ3NSwgMC4wMDY0NjksIDAuMDA2NDU4LCAwLjAwNjQ2MSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjQ4OSwgMC4wMDY1MzksIDAuMDA2NTQ3LCAwLjAwNjU1LCAwLjAwNjU1NCwgMC4wMDY1NTUsIDAuMDA2NTUzIiwgXAotICAgICAgICAgICIwLjAwNjQ4NywgMC4wMDY1MzgsIDAuMDA2NTQ0LCAwLjAwNjU0OCwgMC4wMDY1NTMsIDAuMDA2NTUzLCAwLjAwNjU1MiIsIFwKLSAgICAgICAgICAiMC4wMDY1NDIsIDAuMDA2NTkyLCAwLjAwNjU5OCwgMC4wMDY2MDIsIDAuMDA2NjA0LCAwLjAwNjYwNiwgMC4wMDY2MDUiLCBcCi0gICAgICAgICAgIjAuMDA2NTk1LCAwLjAwNjY0NCwgMC4wMDY2NSwgMC4wMDY2NTMsIDAuMDA2NjU1LCAwLjAwNjY1OCwgMC4wMDY2NiIsIFwKLSAgICAgICAgICAiMC4wMDY2NjYsIDAuMDA2NzE1LCAwLjAwNjcyMSwgMC4wMDY3MjQsIDAuMDA2NzI1LCAwLjAwNjcyNiwgMC4wMDY3MjkiLCBcCi0gICAgICAgICAgIjAuMDA2NzkyLCAwLjAwNjg0LCAwLjAwNjg0NiwgMC4wMDY4NDksIDAuMDA2ODUsIDAuMDA2ODUxLCAwLjAwNjg1MiIsIFwKLSAgICAgICAgICAiMC4wMDY4NzEsIDAuMDA2OTM4LCAwLjAwNjk0MywgMC4wMDY5NDMsIDAuMDA2OTQ2LCAwLjAwNjk0NiwgMC4wMDY5NDYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA3MDY0LCAwLjAwNzExMSwgMC4wMDcxMTYsIDAuMDA3MTIyLCAwLjAwNzEyNCwgMC4wMDcxMjYsIDAuMDA3MTIyIiwgXAotICAgICAgICAgICIwLjAwNzAzOSwgMC4wMDcwOTEsIDAuMDA3MTAzLCAwLjAwNzEwMiwgMC4wMDcxMDksIDAuMDA3MTA2LCAwLjAwNzEwOSIsIFwKLSAgICAgICAgICAiMC4wMDcwNjEsIDAuMDA3MTEyLCAwLjAwNzEyLCAwLjAwNzEyNSwgMC4wMDcxMjgsIDAuMDA3MTMxLCAwLjAwNzEzMSIsIFwKLSAgICAgICAgICAiMC4wMDcxMTMsIDAuMDA3MTU2LCAwLjAwNzE2NSwgMC4wMDcxNywgMC4wMDcxNzMsIDAuMDA3MTc1LCAwLjAwNzE3NyIsIFwKLSAgICAgICAgICAiMC4wMDcxNzksIDAuMDA3MjEyLCAwLjAwNzIyMSwgMC4wMDcyMjcsIDAuMDA3MjMsIDAuMDA3MjMyLCAwLjAwNzIzMyIsIFwKLSAgICAgICAgICAiMC4wMDczMzQsIDAuMDA3MzQ3LCAwLjAwNzM1NCwgMC4wMDczNiwgMC4wMDczNjEsIDAuMDA3MzY0LCAwLjAwNzM2NiIsIFwKLSAgICAgICAgICAiMC4wMDc0ODIsIDAuMDA3NDgsIDAuMDA3NDg1LCAwLjAwNzQ5LCAwLjAwNzQ5NCwgMC4wMDc0OTUsIDAuMDA3NDk1Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3Bvd2VyKHNjYWxhcikgewotICAgICAgICB2YWx1ZXMoIjAiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFFOKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuNjczMjA3OwotICAgIGZ1bmN0aW9uIDogIlFCSU5UIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBub25fdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJpc2luZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDk2NzMsIDAuMTg3NjIsIDAuMjUwMDgyLCAwLjMyODA5MywgMC40MDYwODcsIDAuNDg0MTE1LCAwLjU2MjE0IiwgXAotICAgICAgICAgICIwLjExNzg2MiwgMC4xOTU4NTcsIDAuMjU4MjY3LCAwLjMzNjM0NCwgMC40MTQzMzUsIDAuNDkyMzQ3LCAwLjU3MDM3MSIsIFwKLSAgICAgICAgICAiMC4xMjcwNTgsIDAuMjA0OTk4LCAwLjI2NzQ2NSwgMC4zNDU0NzYsIDAuNDIzNDY4LCAwLjUwMTQ5MiwgMC41Nzk1NjciLCBcCi0gICAgICAgICAgIjAuMTM0NDEsIDAuMjEyNDE3LCAwLjI3NDgzNSwgMC4zNTI4OTYsIDAuNDMwNzQ4LCAwLjUwODkwMywgMC41ODY5MyIsIFwKLSAgICAgICAgICAiMC4xNDAyMzIsIDAuMjE4MTc0LCAwLjI4MDU5OSwgMC4zNTg3MzcsIDAuNDM2NzI1LCAwLjUxNDczMywgMC41OTI3OTUiLCBcCi0gICAgICAgICAgIjAuMTQ3OTc0LCAwLjIyNTk1NiwgMC4yODg0MDEsIDAuMzY2NDA4LCAwLjQ0NDQwOCwgMC41MjI0MzgsIDAuNjAwNDUyIiwgXAotICAgICAgICAgICIwLjE1MzYzNiwgMC4yMzE2MjksIDAuMjk0MDQyLCAwLjM3MjA2NiwgMC40NTAxMTYsIDAuNTI4MTI2LCAwLjYwNjE3MSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzk3NTcsIDAuMjA0MjU3LCAwLjMzNzEzNCwgMC41MDQ0NzQsIDAuNjcxMDA1LCAwLjgzNzYyNywgMS4wMDQyNiIsIFwKLSAgICAgICAgICAiMC4wMzk3NjksIDAuMjA0NDY1LCAwLjMzNzM0MSwgMC41MDM2MDUsIDAuNjcwOTg5LCAwLjgzNjgxMiwgMS4wMDQyMSIsIFwKLSAgICAgICAgICAiMC4wMzk3NjMsIDAuMjA0NDQxLCAwLjMzNzc4OSwgMC41MDM2MDQsIDAuNjcxMDA4LCAwLjgzNzYyNSwgMS4wMDQxOCIsIFwKLSAgICAgICAgICAiMC4wMzk3NywgMC4yMDQ0NzEsIDAuMzM3MzYxLCAwLjUwMzYxLCAwLjY3MDE4NywgMC44MzY3MjcsIDEuMDA0MTkiLCBcCi0gICAgICAgICAgIjAuMDM5NzY0LCAwLjIwNDQ3NiwgMC4zMzc0MDMsIDAuNTA0NDQ3LCAwLjY3MDk5NSwgMC44Mzc2MzIsIDEuMDA0MTciLCBcCi0gICAgICAgICAgIjAuMDM5NzY3LCAwLjIwNDI5MywgMC4zMzc3OTQsIDAuNTA0NDEzLCAwLjY3MDk3OSwgMC44Mzc1OTYsIDEuMDA0MjEiLCBcCi0gICAgICAgICAgIjAuMDM5Nzc0LCAwLjIwNDQ5OCwgMC4zMzc3NTYsIDAuNTAzODcsIDAuNjcwOTI3LCAwLjgzNzU0OSwgMS4wMDQyMSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTg3ODgsIDAuMTk0NDM2LCAwLjI1NDk5NiwgMC4zMzA3NDcsIDAuNDA2NTQ4LCAwLjQ4MjI4MSwgMC41NTgwOTEiLCBcCi0gICAgICAgICAgIjAuMTI2OTYzLCAwLjIwMjYxLCAwLjI2MzE2OCwgMC4zMzg5MjQsIDAuNDE0NzE0LCAwLjQ5MDQ0OCwgMC41NjYyODIiLCBcCi0gICAgICAgICAgIjAuMTM2MDM5LCAwLjIxMTY4NCwgMC4yNzIyNDEsIDAuMzQ3OTk1LCAwLjQyMzc4NSwgMC40OTk1MTIsIDAuNTc1MzU2IiwgXAotICAgICAgICAgICIwLjE0MzI5LCAwLjIxODkyOSwgMC4yNzk0OSwgMC4zNTUyMzksIDAuNDMxMDM3LCAwLjUwNjc2NSwgMC41ODI1ODYiLCBcCi0gICAgICAgICAgIjAuMTQ4OTkyLCAwLjIyNDY0OCwgMC4yODUyMTgsIDAuMzYwOTczLCAwLjQzNjc1MiwgMC41MTI1ODgsIDAuNTg4Mjc3IiwgXAotICAgICAgICAgICIwLjE1NjYxMiwgMC4yMzIyMzEsIDAuMjkyNzk2LCAwLjM2ODUzNiwgMC40NDQzNTQsIDAuNTIwMTA0LCAwLjU5NTg2NCIsIFwKLSAgICAgICAgICAiMC4xNjIzNCwgMC4yMzc5NjcsIDAuMjk4NTQ2LCAwLjM3NDMxNCwgMC40NTAwNzMsIDAuNTI1ODAyLCAwLjYwMTY1OCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzg1MDcsIDAuMTkzNDA5LCAwLjMxOTA3MywgMC40NzY0NDcsIDAuNjMzODY2LCAwLjc5MjExMiwgMC45NDgwNDkiLCBcCi0gICAgICAgICAgIjAuMDM4NDg3LCAwLjE5MzI2NywgMC4zMTkwNTQsIDAuNDc2NDg2LCAwLjYzMzkzNywgMC43OTE2NiwgMC45NDc5MTIiLCBcCi0gICAgICAgICAgIjAuMDM4NDgyLCAwLjE5MzI2NywgMC4zMTkwNDksIDAuNDc2NDU3LCAwLjYzMzkyLCAwLjc5MjA3NiwgMC45NDc4OSIsIFwKLSAgICAgICAgICAiMC4wMzg1MDIsIDAuMTkzMjY1LCAwLjMxOTA5MiwgMC40NzY0NTYsIDAuNjMzOTAyLCAwLjc5MjA4MSwgMC45NDgwNDMiLCBcCi0gICAgICAgICAgIjAuMDM4NDk3LCAwLjE5MzQxLCAwLjMxOTAzNywgMC40NzY5MywgMC42MzM5MjQsIDAuNzkwODc5LCAwLjk0OTYxNiIsIFwKLSAgICAgICAgICAiMC4wMzg0OTMsIDAuMTkzMjA5LCAwLjMxOTM1LCAwLjQ3Njg4NCwgMC42MzMzNTgsIDAuNzkxMDEyLCAwLjk0ODAzMSIsIFwKLSAgICAgICAgICAiMC4wMzg2OTMsIDAuMTkzMjU4LCAwLjMxOTIxLCAwLjQ3NjEzNywgMC42MzM4NTcsIDAuNzkxMjksIDAuOTQ3ODQ3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiBwcmVzZXQ7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2MDY4OCwgMC4xMzg2MTEsIDAuMjAxMDM2LCAwLjI3OTA2LCAwLjM1NzA2MSwgMC40MzUxMTYsIDAuNTEzMTEzIiwgXAotICAgICAgICAgICIwLjA2ODg0LCAwLjE0Njc2MywgMC4yMDkxNzMsIDAuMjg3MjE0LCAwLjM2NTIwMywgMC40NDMyNjQsIDAuNTIxMjYzIiwgXAotICAgICAgICAgICIwLjA3ODQyMywgMC4xNTYzMjgsIDAuMjE4NzUzLCAwLjI5Njc1OCwgMC4zNzQ3NjksIDAuNDUyODAyLCAwLjUzMDgxMSIsIFwKLSAgICAgICAgICAiMC4wODU5NjIsIDAuMTYzODA3LCAwLjIyNjI0MiwgMC4zMDQyMzIsIDAuMzgyMjQ1LCAwLjQ2MDMxNCwgMC41MzgyOTIiLCBcCi0gICAgICAgICAgIjAuMDkxOTY4LCAwLjE2OTc1MywgMC4yMzIxNTYsIDAuMzEwMTUxLCAwLjM4ODE3MSwgMC40NjYyNCwgMC41NDQyMTEiLCBcCi0gICAgICAgICAgIjAuMDk5NzMzLCAwLjE3NzQ0NiwgMC4yMzk4MzcsIDAuMzE3ODU5LCAwLjM5NTkxOSwgMC40NzM5MTQsIDAuNTUxOTExIiwgXAotICAgICAgICAgICIwLjEwNTMyNCwgMC4xODI5ODMsIDAuMjQ1MzM3LCAwLjMyMzQwNCwgMC40MDEzOTQsIDAuNDc5Mzg2LCAwLjU1NzQxNCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzk3NywgMC4yMDQzNDUsIDAuMzM3Mjk5LCAwLjUwNDExNSwgMC42NzA2NDMsIDAuODM3MzQ2LCAxLjAwMzk2IiwgXAotICAgICAgICAgICIwLjAzOTc3OCwgMC4yMDQyMjUsIDAuMzM3NTA3LCAwLjUwNDEwNiwgMC42NzA3MzcsIDAuODM3MzY4LCAxLjAwMzk3IiwgXAotICAgICAgICAgICIwLjAzOTc5MSwgMC4yMDQyNDUsIDAuMzM3NTQxLCAwLjUwNDA4LCAwLjY3MDY1MywgMC44MzczNTEsIDEuMDAzOTciLCBcCi0gICAgICAgICAgIjAuMDM5OTEyLCAwLjIwNDI0MywgMC4zMzc2MTgsIDAuNTA0MTg4LCAwLjY3MDI4NSwgMC44MzczNywgMS4wMDM5NyIsIFwKLSAgICAgICAgICAiMC4wNDAwOTEsIDAuMjA0MjYsIDAuMzM3NTI0LCAwLjUwNDE4NCwgMC42NzAzMjUsIDAuODM3MzY1LCAxLjAwMzk3IiwgXAotICAgICAgICAgICIwLjA0MDIxLCAwLjIwNDIxNiwgMC4zMzc1OTMsIDAuNTAzODMzLCAwLjY3MDc0MSwgMC44MzY3ODgsIDEuMDAzOTQiLCBcCi0gICAgICAgICAgIjAuMDQwMzE5LCAwLjIwNDEyLCAwLjMzNzMwMiwgMC41MDQxOTcsIDAuNjcwNzEzLCAwLjgzNzI0LCAxLjAwMzkzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjQ4OSwgMC4wMDY1MzksIDAuMDA2NTQ3LCAwLjAwNjU1LCAwLjAwNjU1NCwgMC4wMDY1NTUsIDAuMDA2NTUzIiwgXAotICAgICAgICAgICIwLjAwNjQ4NywgMC4wMDY1MzgsIDAuMDA2NTQ0LCAwLjAwNjU0OCwgMC4wMDY1NTMsIDAuMDA2NTUzLCAwLjAwNjU1MiIsIFwKLSAgICAgICAgICAiMC4wMDY1NDIsIDAuMDA2NTkyLCAwLjAwNjU5OCwgMC4wMDY2MDIsIDAuMDA2NjA0LCAwLjAwNjYwNiwgMC4wMDY2MDUiLCBcCi0gICAgICAgICAgIjAuMDA2NTk1LCAwLjAwNjY0NCwgMC4wMDY2NSwgMC4wMDY2NTMsIDAuMDA2NjU1LCAwLjAwNjY1OCwgMC4wMDY2NiIsIFwKLSAgICAgICAgICAiMC4wMDY2NjYsIDAuMDA2NzE1LCAwLjAwNjcyMSwgMC4wMDY3MjQsIDAuMDA2NzI1LCAwLjAwNjcyNiwgMC4wMDY3MjkiLCBcCi0gICAgICAgICAgIjAuMDA2NzkyLCAwLjAwNjg0LCAwLjAwNjg0NiwgMC4wMDY4NDksIDAuMDA2ODUsIDAuMDA2ODUxLCAwLjAwNjg1MiIsIFwKLSAgICAgICAgICAiMC4wMDY4NzEsIDAuMDA2OTM4LCAwLjAwNjk0MywgMC4wMDY5NDMsIDAuMDA2OTQ2LCAwLjAwNjk0NiwgMC4wMDY5NDYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDYxNDQsIDAuMDA2MTQ2LCAwLjAwNjEzNSwgMC4wMDYxMjgsIDAuMDA2MTIzLCAwLjAwNjExOSwgMC4wMDYxMTYiLCBcCi0gICAgICAgICAgIjAuMDA2MTM3LCAwLjAwNjE0LCAwLjAwNjEyOSwgMC4wMDYxMiwgMC4wMDYxMTUsIDAuMDA2MTEyLCAwLjAwNjEwOSIsIFwKLSAgICAgICAgICAiMC4wMDYxODUsIDAuMDA2MTksIDAuMDA2MTc4LCAwLjAwNjE2OSwgMC4wMDYxNjQsIDAuMDA2MTYsIDAuMDA2MTU4IiwgXAotICAgICAgICAgICIwLjAwNjIyOSwgMC4wMDYyMzUsIDAuMDA2MjIzLCAwLjAwNjIxNCwgMC4wMDYyMSwgMC4wMDYyMDQsIDAuMDA2MjAyIiwgXAotICAgICAgICAgICIwLjAwNjI5OCwgMC4wMDYzMDQsIDAuMDA2MjkzLCAwLjAwNjI4MywgMC4wMDYyNzcsIDAuMDA2MjczLCAwLjAwNjI3IiwgXAotICAgICAgICAgICIwLjAwNjM5MSwgMC4wMDY0MDEsIDAuMDA2MzksIDAuMDA2MzgsIDAuMDA2MzczLCAwLjAwNjM3MSwgMC4wMDYzNjYiLCBcCi0gICAgICAgICAgIjAuMDA2NDksIDAuMDA2NDkyLCAwLjAwNjQ4NSwgMC4wMDY0NzUsIDAuMDA2NDY5LCAwLjAwNjQ1OCwgMC4wMDY0NjEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA3MDY0LCAwLjAwNzExMSwgMC4wMDcxMTYsIDAuMDA3MTIyLCAwLjAwNzEyNCwgMC4wMDcxMjYsIDAuMDA3MTIyIiwgXAotICAgICAgICAgICIwLjAwNzAzOSwgMC4wMDcwOTEsIDAuMDA3MTAzLCAwLjAwNzEwMiwgMC4wMDcxMDksIDAuMDA3MTA2LCAwLjAwNzEwOSIsIFwKLSAgICAgICAgICAiMC4wMDcwNjEsIDAuMDA3MTEyLCAwLjAwNzEyLCAwLjAwNzEyNSwgMC4wMDcxMjgsIDAuMDA3MTMxLCAwLjAwNzEzMSIsIFwKLSAgICAgICAgICAiMC4wMDcxMTMsIDAuMDA3MTU2LCAwLjAwNzE2NSwgMC4wMDcxNywgMC4wMDcxNzMsIDAuMDA3MTc1LCAwLjAwNzE3NyIsIFwKLSAgICAgICAgICAiMC4wMDcxNzksIDAuMDA3MjEyLCAwLjAwNzIyMSwgMC4wMDcyMjcsIDAuMDA3MjMsIDAuMDA3MjMyLCAwLjAwNzIzMyIsIFwKLSAgICAgICAgICAiMC4wMDczMzQsIDAuMDA3MzQ3LCAwLjAwNzM1NCwgMC4wMDczNiwgMC4wMDczNjEsIDAuMDA3MzY0LCAwLjAwNzM2NiIsIFwKLSAgICAgICAgICAiMC4wMDc0ODIsIDAuMDA3NDgsIDAuMDA3NDg1LCAwLjAwNzQ5LCAwLjAwNzQ5NCwgMC4wMDc0OTUsIDAuMDA3NDk1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHNjYWxhcikgewotICAgICAgICB2YWx1ZXMoIjAiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFJOKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE1NjQ1MTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE0NTM2NDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE1NjQ1MTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA3MTcsIDAuMDAwNzE3LCAwLjAwMDcxNiwgMC4wMDA3MTYsIDAuMDAwNzE2LCAwLjAwMDcxNiwgMC4wMDA3MTYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA3NCwgMC4wMDA3MjYsIDAuMDAwNzIyLCAwLjAwMDcyLCAwLjAwMDcxOSwgMC4wMDA3MTksIDAuMDAwNzE5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRCYhU0UmIVNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9TRV9FUV8wX0FOX1NJX0VRXzAgPT0gMSdiMSI7Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wNjA2ODgsIDAuMDY4ODM4LCAwLjA3ODQyMywgMC4wODU5NiwgMC4wOTE5MzgsIDAuMDk5NzMyLCAwLjEwNTMwMSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJlY292ZXJ5X3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUQmU0UmU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1NFX0VRXzFfQU5fU0lfRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChyZWNvdmVyeV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDI1LCAtMC4wMzYyNSwgLTAuMDQyNSwgLTAuMDQ4NzUsIC0wLjA1NSwgLTAuMDY1LCAtMC4wNjc1IiwgXAotICAgICAgICAgICItMC4wMjYyNSwgLTAuMDM3NSwgLTAuMDQzNzUsIC0wLjA1NjI1LCAtMC4wNTYyNSwgLTAuMDY2MjUsIC0wLjA3NSIsIFwKLSAgICAgICAgICAiLTAuMDIsIC0wLjAzMTI1LCAtMC4wMzc1LCAtMC4wNSwgLTAuMDU2MjUsIC0wLjA2LCAtMC4wNjg3NSIsIFwKLSAgICAgICAgICAiLTAuMDA3NSwgLTAuMDE4NzUsIC0wLjAzMTI1LCAtMC4wMzc1LCAtMC4wNDM3NSwgLTAuMDUzNzUsIC0wLjA1NjI1IiwgXAotICAgICAgICAgICIwLjAwNSwgLTAuMDA2MjUsIC0wLjAxODc1LCAtMC4wMjUsIC0wLjAzMTI1LCAtMC4wNDEyNSwgLTAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMDI3NSwgMC4wMjI1LCAwLjAxLCAtMC4wMDI1LCAtMC4wMDg3NSwgLTAuMDE4NzUsIC0wLjAyMTI1IiwgXAotICAgICAgICAgICIwLjA1NSwgMC4wNDM3NSwgMC4wMzEyNSwgMC4wMTg3NSwgMC4wMTI1LCAwLjAwMjUsIDAiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiByZW1vdmFsX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUQmU0UmU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1NFX0VRXzFfQU5fU0lfRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChyZW1vdmFsX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzNzUsIDAuMDQ4NzUsIDAuMDU1LCAwLjA2NzUsIDAuMDczNzUsIDAuMDc3NSwgMC4wODYyNSIsIFwKLSAgICAgICAgICAiMC4wNDUsIDAuMDUsIDAuMDYyNSwgMC4wNjg3NSwgMC4wNzUsIDAuMDc4NzUsIDAuMDg3NSIsIFwKLSAgICAgICAgICAiMC4wNTEyNSwgMC4wNTYyNSwgMC4wNjg3NSwgMC4wNzUsIDAuMDgxMjUsIDAuMDg1LCAwLjA5Mzc1IiwgXAotICAgICAgICAgICIwLjA1MTI1LCAwLjA2MjUsIDAuMDY4NzUsIDAuMDc1LCAwLjA4MTI1LCAwLjA5MTI1LCAwLjA5Mzc1IiwgXAotICAgICAgICAgICIwLjA1NzUsIDAuMDYyNSwgMC4wNzUsIDAuMDgxMjUsIDAuMDg3NSwgMC4wOTEyNSwgMC4xIiwgXAotICAgICAgICAgICIwLjA2LCAwLjA3MTI1LCAwLjA3NzUsIDAuMDgzNzUsIDAuMDksIDAuMDkzNzUsIDAuMTAyNSIsIFwKLSAgICAgICAgICAiMC4wNjM3NSwgMC4wNzUsIDAuMDgxMjUsIDAuMDg3NSwgMC4wOTM3NSwgMC4wOTc1LCAwLjEwNjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTRSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxMjA1NDU7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxMjA1NDU7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxMjA0ODc7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA1MTU4LCAwLjAwNTE2NCwgMC4wMDUyNDUsIDAuMDA1MzYxLCAwLjAwNTUyNywgMC4wMDU3NDUsIDAuMDA1OTU3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA3MDUyLCAwLjAwNzA4LCAwLjAwNzE5LCAwLjAwNzM2MiwgMC4wMDc1ODcsIDAuMDA3OTY4LCAwLjAwODI5MSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJSTiI7Ci0gICAgICBzZGZfY29uZCA6ICJSTiA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMTI1LCAtMC4wMDc1LCAtMC4wMDEyNSwgMC4wMDUsIDAuMDExMjUsIDAuMDE1LCAwLjAxNzUiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMCwgMCwgMC4wMSwgMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAtMC4wMDYyNSwgMC4wMDM3NSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAtMC4wMDI1LCAwIiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwODc1LCAwIiwgXAotICAgICAgICAgICItMC4wNCwgLTAuMDM1LCAtMC4wMjg3NSwgLTAuMDIyNSwgLTAuMDE2MjUsIC0wLjAxMjUsIC0wLjAxIiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxNSwgLTAuMDEyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAwNjI1LCAwLjAwNSwgMC4wMTEyNSwgMC4wMTc1LCAwLjAyMzc1LCAwLjAyNzUsIDAuMDMiLCBcCi0gICAgICAgICAgIi0wLjAxMTI1LCAwLCAwLjAwNjI1LCAwLjAxMjUsIDAuMDEyNSwgMC4wMjI1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDE3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAsIDAuMDA2MjUsIDAuMDEsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAsIDAuMDAzNzUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgLTAuMDAyNSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDMzNzUsIC0wLjAyODc1LCAtMC4wMjI1LCAtMC4wMTYyNSwgLTAuMDE2MjUsIC0wLjAwNjI1LCAtMC4wMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxNSwgLTAuMDEyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiUk4iOwotICAgICAgc2RmX2NvbmQgOiAiUk4gPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDUsIDAuMDQ1LCAwLjAzMjUsIDAuMDMyNSwgMC4wMjYyNSwgMC4wMjI1LCAwLjAyIiwgXAotICAgICAgICAgICIwLjA1NSwgMC4wNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzNzUsIDAuMDMzNzUsIDAuMDI1IiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDU2MjUsIDAuMDUsIDAuMDUsIDAuMDQzNzUsIDAuMDQsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiMC4wNzM3NSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1NjI1LCAwLjA1MjUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMDg2MjUsIDAuMDc1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDYyNSwgMC4wNTg3NSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiMC4wOTYyNSwgMC4wODUsIDAuMDc4NzUsIDAuMDcyNSwgMC4wNzI1LCAwLjA2ODc1LCAwLjA2NjI1IiwgXAotICAgICAgICAgICIwLjEwNSwgMC4wOTM3NSwgMC4wODc1LCAwLjA4MTI1LCAwLjA4MTI1LCAwLjA3NzUsIDAuMDY4NzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjI1LCAwLjA1NzUsIDAuMDUxMjUsIDAuMDQ1LCAwLjA0NSwgMC4wMzUsIDAuMDMyNSIsIFwKLSAgICAgICAgICAiMC4wNzM3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1LCAwLjA1LCAwLjA0NjI1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjA4LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDU2MjUsIDAuMDUyNSwgMC4wNSIsIFwKLSAgICAgICAgICAiMC4wOCwgMC4wNzUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNjI1LCAwLjA1ODc1LCAwLjA1IiwgXAotICAgICAgICAgICIwLjA4NjI1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1ODc1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICIwLjA5LCAwLjA4NSwgMC4wNzg3NSwgMC4wNzI1LCAwLjA2NjI1LCAwLjA2MjUsIDAuMDYiLCBcCi0gICAgICAgICAgIjAuMDkyNSwgMC4wODc1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNzUsIDAuMDY1LCAwLjA2MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFNJKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2NDUzNTk7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjQ0MjI1OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDY0NTM1OTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDMwODcsIDAuMDAzMDYzLCAwLjAwMzA4OCwgMC4wMDMxMzcsIDAuMDAzMTk2LCAwLjAwMzMwOSwgMC4wMDM0NCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNTU5NiwgMC4wMDU1NzgsIDAuMDA1NTk5LCAwLjAwNTYzOSwgMC4wMDU2OTgsIDAuMDA1ODE3LCAwLjAwNTkzNiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJSTiZTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJSTl9FUV8xX0FOX1NFX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDMxMjUsIC0wLjAyNjI1LCAtMC4wMiwgLTAuMDIsIC0wLjAxMzc1LCAtMC4wMSwgLTAuMDA3NSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxNSwgLTAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDM3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAzMTI1LCAtMC4wMjc1LCAtMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjA0Mzc1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDM3NSwgLTAuMDMzNzUsIC0wLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjA0Mzc1LCAtMC4wNCwgLTAuMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDY1LCAtMC4wNiwgLTAuMDUzNzUsIC0wLjA1Mzc1LCAtMC4wNDc1LCAtMC4wNDM3NSwgLTAuMDQxMjUiLCBcCi0gICAgICAgICAgIi0wLjA3Mzc1LCAtMC4wNjg3NSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA1NjI1LCAtMC4wNTI1LCAtMC4wNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAwNjI1LCAtMC4wMDEyNSwgMC4wMDUsIDAuMDExMjUsIDAuMDE3NSwgMC4wMjEyNSwgMC4wMyIsIFwKLSAgICAgICAgICAiLTAuMDExMjUsIC0wLjAwNjI1LCAwLCAwLjAwNjI1LCAwLjAxMjUsIDAuMDE2MjUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjAxNzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLCAwLjAwNjI1LCAwLjAxLCAwLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAsIDAuMDAzNzUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMC4wMDM3NSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDMzNzUsIC0wLjAyODc1LCAtMC4wMjI1LCAtMC4wMTYyNSwgLTAuMDEsIC0wLjAwNjI1LCAtMC4wMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTg3NSwgLTAuMDA4NzUsIC0wLjAwNjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJSTiZTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJSTl9FUV8xX0FOX1NFX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU2MjUsIDAuMDQ1LCAwLjAzODc1LCAwLjAzODc1LCAwLjAzMjUsIDAuMDI4NzUsIDAuMDI2MjUiLCBcCi0gICAgICAgICAgIjAuMDYxMjUsIDAuMDUsIDAuMDQzNzUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzM3NSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4wNjc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDUsIDAuMDQzNzUsIDAuMDQsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiMC4wNzM3NSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1NjI1LCAwLjA0NjI1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjA4LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA2MjUsIDAuMDU4NzUsIDAuMDUiLCBcCi0gICAgICAgICAgIjAuMDksIDAuMDg1LCAwLjA3ODc1LCAwLjA3MjUsIDAuMDY2MjUsIDAuMDYyNSwgMC4wNiIsIFwKLSAgICAgICAgICAiMC4wOTg3NSwgMC4wODc1LCAwLjA4MTI1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNzEyNSwgMC4wNjg3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzNzUsIDAuMDMyNSwgMC4wMiwgMC4wMTM3NSwgMC4wMDc1LCAwLjAwMzc1LCAtMC4wMDUiLCBcCi0gICAgICAgICAgIjAuMDQ4NzUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMjUsIDAuMDE4NzUsIDAuMDA4NzUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMDU1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDI1LCAwLjAxNSwgMC4wMTI1IiwgXAotICAgICAgICAgICIwLjA2MTI1LCAwLjA1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDIxMjUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMDY3NSwgMC4wNTYyNSwgMC4wNSwgMC4wMzc1LCAwLjAzNzUsIDAuMDI3NSwgMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMDcxMjUsIDAuMDY2MjUsIDAuMDUzNzUsIDAuMDQ3NSwgMC4wNDEyNSwgMC4wMzc1LCAwLjAyODc1IiwgXAotICAgICAgICAgICIwLjA4LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDUsIDAuMDQsIDAuMDM3NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IFNERkZSWEwgKgotICogLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoU0RGRlJYTCkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAxLjEwNjQxOwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIGZmIChOMzAsUUJJTlQpIHsKLSAgICBuZXh0X3N0YXRlIDogIigoU0UgU0kpICsgKCFTRSBEKSkiOwotICAgIGNsb2NrZWRfb24gOiAiQ0siOwotICAgIGNsZWFyIDogIighUk4pIjsKLSAgfQotICBwaW4oQ0spICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY4MzMzMzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2ODMzMzM7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjgzMzA3OwotICAgIGNsb2NrIDogdHJ1ZTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDMzNjMsIDAuMDAzMzYxLCAwLjAwMzQyNywgMC4wMDM1MiwgMC4wMDM2MzEsIDAuMDAzODY0LCAwLjAwNDA2MyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwODc4OSwgMC4wMDg3OCwgMC4wMDg4NjYsIDAuMDA4OTk2LCAwLjAwOTEyNCwgMC4wMDkzMTEsIDAuMDA5NTA2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRCZSTiYhU0UmIVNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9STl9FUV8xX0FOX1NFX0VRXzBfQU5fU0lfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjEzODQwNywgMC4xNDY1ODQsIDAuMTU1OTUyLCAwLjE2MzQ5NiwgMC4xNjk1MiwgMC4xNzc0NTYsIDAuMTgzMzQ1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wNjUzODEsIDAuMDczNTE4LCAwLjA4Mjg3OSwgMC4wOTAxNTMsIDAuMDk1OTc1LCAwLjEwMzY0NywgMC4xMDkxNTIiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEQpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY2NjczNjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2NjU1ODU7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjY2NzM2OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzUzNCwgMC4wMDM1MTEsIDAuMDAzNTMxLCAwLjAwMzU3OSwgMC4wMDM2MzksIDAuMDAzNzUsIDAuMDAzODc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA1NjA3LCAwLjAwNTU4OCwgMC4wMDU2MDUsIDAuMDA1NjUxLCAwLjAwNTcxLCAwLjAwNTgyMywgMC4wMDU5NjciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiUk4mIVNFIjsKLSAgICAgIHNkZl9jb25kIDogIlJOX0VRXzFfQU5fU0VfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMzEyNSwgLTAuMDI2MjUsIC0wLjAyNjI1LCAtMC4wMiwgLTAuMDEzNzUsIC0wLjAxLCAtMC4wMDc1IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzEyNSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDI1LCAtMC4wMjEyNSwgLTAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAzMTI1LCAtMC4wMjc1LCAtMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjA1NSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDMzNzUsIC0wLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wNjEyNSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjA0LCAtMC4wMzc1IiwgXAotICAgICAgICAgICItMC4wNjUsIC0wLjA2LCAtMC4wNiwgLTAuMDUzNzUsIC0wLjA1Mzc1LCAtMC4wNSwgLTAuMDQ3NSIsIFwKLSAgICAgICAgICAiLTAuMDczNzUsIC0wLjA2ODc1LCAtMC4wNjI1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDUyNSwgLTAuMDUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMTI1LCAtMC4wMDEyNSwgMC4wMDUsIDAuMDExMjUsIDAuMDE3NSwgMC4wMjEyNSwgMC4wMjM3NSIsIFwKLSAgICAgICAgICAiLTAuMDE3NSwgLTAuMDA2MjUsIDAsIDAuMDA2MjUsIDAuMDEyNSwgMC4wMTYyNSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLCAwLjAwNjI1LCAwLjAxLCAwLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAsIDAuMDAzNzUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgLTAuMDAyNSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDQsIC0wLjAyODc1LCAtMC4wMjI1LCAtMC4wMTYyNSwgLTAuMDE2MjUsIC0wLjAwNjI1LCAtMC4wMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDM3NSwgLTAuMDI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTUsIC0wLjAwNjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJSTiYhU0UiOwotICAgICAgc2RmX2NvbmQgOiAiUk5fRVFfMV9BTl9TRV9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1NjI1LCAwLjA0NSwgMC4wMzg3NSwgMC4wMzg3NSwgMC4wMzI1LCAwLjAyODc1LCAwLjAyNjI1IiwgXAotICAgICAgICAgICIwLjA2MTI1LCAwLjA1NjI1LCAwLjA1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDMzNzUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMDY3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1LCAwLjA1LCAwLjA0LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIjAuMDczNzUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNTYyNSwgMC4wNTI1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjA4LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA2MjUsIDAuMDU4NzUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIjAuMDksIDAuMDg1LCAwLjA3ODc1LCAwLjA3MjUsIDAuMDcyNSwgMC4wNjI1LCAwLjA2IiwgXAotICAgICAgICAgICIwLjA5ODc1LCAwLjA5Mzc1LCAwLjA4MTI1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNzEyNSwgMC4wNjg3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzNzUsIDAuMDMyNSwgMC4wMiwgMC4wMTM3NSwgMC4wMDc1LCAwLjAwMzc1LCAtMC4wMDUiLCBcCi0gICAgICAgICAgIjAuMDQyNSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAxODc1LCAwLjAxMjUsIDAuMDA4NzUsIDAiLCBcCi0gICAgICAgICAgIjAuMDU1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDI1LCAwLjAxNSwgMC4wMTI1IiwgXAotICAgICAgICAgICIwLjA2MTI1LCAwLjA1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDIxMjUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMDY3NSwgMC4wNTYyNSwgMC4wNSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyNzUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMDcxMjUsIDAuMDY2MjUsIDAuMDUzNzUsIDAuMDQ3NSwgMC4wNDEyNSwgMC4wMzc1LCAwLjAyODc1IiwgXAotICAgICAgICAgICIwLjA4LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDUsIDAuMDQsIDAuMDM3NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjIwNTM2OTsKLSAgICBmdW5jdGlvbiA6ICJOMzAiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5vbl91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcmlzaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEzODk4MSwgMC4xNDk1NDgsIDAuMjQ0MTY3LCAwLjQwMzEyNSwgMC41NTk0NjgsIDAuOTMxMjA2LCAxLjE0MjI4IiwgXAotICAgICAgICAgICIwLjE0NzEyMywgMC4xNTc2OTEsIDAuMjUyMjM1LCAwLjQxMTI2OSwgMC41Njc2MDUsIDAuOTM5MzU3LCAxLjE1MDQ3IiwgXAotICAgICAgICAgICIwLjE1NjQwMiwgMC4xNjY5NzEsIDAuMjYxNDU3LCAwLjQyMDU0NiwgMC41NzY5MjUsIDAuOTQ4NjEzLCAxLjE1OTczIiwgXAotICAgICAgICAgICIwLjE2Mzc5MSwgMC4xNzQzNjIsIDAuMjY5Mjg5LCAwLjQyNzkyOSwgMC41ODQyNDgsIDAuOTU1OTQ5LCAxLjE2NzA1IiwgXAotICAgICAgICAgICIwLjE2OTYzOCwgMC4xODAyMjksIDAuMjc1MzE0LCAwLjQzMzc2OCwgMC41OTAyODEsIDAuOTYxNzc3LCAxLjE3MjkiLCBcCi0gICAgICAgICAgIjAuMTc3NjI1LCAwLjE4ODE0OCwgMC4yODMxNjEsIDAuNDQxNzExLCAwLjU5ODI0OSwgMC45Njk2NzQsIDEuMTgwNzgiLCBcCi0gICAgICAgICAgIjAuMTgzMjE3LCAwLjE5Mzc5MiwgMC4yODg4MjIsIDAuNDQ1OTI5LCAwLjYwNDA2NCwgMC45NzUxNTUsIDEuMTgyMyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMjE2NDMsIDAuMTQzMTQ1LCAwLjM0MDUzLCAwLjY3MjcyNCwgMS4wMDUyNSwgMS43ODQxLCAyLjIyOTA4IiwgXAotICAgICAgICAgICIwLjEyMTY4NywgMC4xNDMyMiwgMC4zNDA1NDUsIDAuNjczMjc3LCAxLjAwNTUzLCAxLjc4NTY5LCAyLjIzMDk0IiwgXAotICAgICAgICAgICIwLjEyMTY5MSwgMC4xNDMyMjIsIDAuMzM5OTUyLCAwLjY3MzI1NiwgMS4wMDQsIDEuNzg1NzIsIDIuMjMwOCIsIFwKLSAgICAgICAgICAiMC4xMjE2OTEsIDAuMTQzMjE4LCAwLjM0MDk2OSwgMC42NzMyMSwgMS4wMDU3NywgMS43ODU3OSwgMi4yMzA2MyIsIFwKLSAgICAgICAgICAiMC4xMjE3NTcsIDAuMTQzMTkyLCAwLjM0MTA1MywgMC42NzMzOTksIDEuMDA2NjEsIDEuNzg1OTIsIDIuMjMxMTIiLCBcCi0gICAgICAgICAgIjAuMTIxNDkyLCAwLjE0MzE2MywgMC4zNDExMTMsIDAuNjczNTY4LCAxLjAwNzA4LCAxLjc4NjA0LCAyLjIzMTI4IiwgXAotICAgICAgICAgICIwLjEyMTY4MSwgMC4xNDMxNDMsIDAuMzQxMTExLCAwLjY3MjIzNywgMS4wMDQzOCwgMS43ODYzNSwgMi4yMjcyNCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMjg2ODQsIDAuMTM4MzUxLCAwLjIyNTQ4OSwgMC4zNzA0MzQsIDAuNTE1NTY4LCAwLjg1MzgxNiwgMS4wNDgxMiIsIFwKLSAgICAgICAgICAiMC4xMzY5MTQsIDAuMTQ2NTEyLCAwLjIzMzY4MSwgMC4zNzkwMDMsIDAuNTIzNzc0LCAwLjg2MjQ3NCwgMS4wNTYyMiIsIFwKLSAgICAgICAgICAiMC4xNDYyNzEsIDAuMTU1ODY2LCAwLjI0MzAzOSwgMC4zODgxMTgsIDAuNTMzMDcsIDAuODcxODIzLCAxLjA2NTU1IiwgXAotICAgICAgICAgICIwLjE1MzgxNSwgMC4xNjM0NDMsIDAuMjUwNTc3LCAwLjM5NTE0NiwgMC41NDA2MTMsIDAuODc3NjA0LCAxLjA3MjA5IiwgXAotICAgICAgICAgICIwLjE1OTgwNiwgMC4xNjk0NzIsIDAuMjU2NzAzLCAwLjQwMTc0OCwgMC41NDY3MDQsIDAuODg1NDYyLCAxLjA3NjUyIiwgXAotICAgICAgICAgICIwLjE2NzgyMSwgMC4xNzc0NDMsIDAuMjY0NTQ5LCAwLjQwOTgwOCwgMC41NTQ2ODQsIDAuODkzNTI2LCAxLjA4NjkzIiwgXAotICAgICAgICAgICIwLjE3MzU3NiwgMC4xODMyNSwgMC4yNzA0MzIsIDAuNDE1Mzc2LCAwLjU2MDQ0NywgMC44OTkxNTgsIDEuMDkyNzkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTA2ODc2LCAwLjEyNjg2NSwgMC4zMDU1OTUsIDAuNjA0NDY4LCAwLjkwMzQ0OSwgMS42MDEyMiwgMS45OTczIiwgXAotICAgICAgICAgICIwLjEwNzMxNywgMC4xMjY5MDgsIDAuMzA1NTk1LCAwLjYwNDQwMSwgMC45MDM1MDksIDEuNjAxMTUsIDEuOTk2OTEiLCBcCi0gICAgICAgICAgIjAuMTA3MjIxLCAwLjEyNjgwNSwgMC4zMDU1OTMsIDAuNjA0NDA1LCAwLjkwMzUwMiwgMS42MDEwNSwgMS45ODc2NCIsIFwKLSAgICAgICAgICAiMC4xMDYyODUsIDAuMTI3MDMsIDAuMzA1NTk2LCAwLjYwMzkzNCwgMC45MDM0ODEsIDEuNTk3MTgsIDEuOTk0ODgiLCBcCi0gICAgICAgICAgIjAuMTA2OTE4LCAwLjEyNjc0MSwgMC4zMDM2OTgsIDAuNjA0Mzg3LCAwLjkwMzM3LCAxLjYwMTA2LCAxLjk5NzM0IiwgXAotICAgICAgICAgICIwLjEwNzI5OSwgMC4xMjY3MiwgMC4zMDU1NzYsIDAuNjA0Mzg5LCAwLjkwMzQ4MSwgMS41OTY4NCwgMS45OTU0NSIsIFwKLSAgICAgICAgICAiMC4xMDcyMTEsIDAuMTI2MzgyLCAwLjMwNTU4MSwgMC42MDQzMTgsIDAuOTAzNDc1LCAxLjYwMTEsIDEuOTk5NjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUk4iOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGNsZWFyOwotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzg4NjgsIDAuMDg4NTI3LCAwLjE3NTc3NCwgMC4zMjA0OTYsIDAuNDY1NzA5LCAwLjgwNDIzMiwgMC45OTcyOTEiLCBcCi0gICAgICAgICAgIjAuMDg2OTU4LCAwLjA5NjYxNywgMC4xODM3OTcsIDAuMzI4Nzk2LCAwLjQ3MzY3MSwgMC44MTI4NjYsIDEuMDA1MzQiLCBcCi0gICAgICAgICAgIjAuMDk2MTYzLCAwLjEwNTgxOCwgMC4xOTI5NjgsIDAuMzM3ODEzLCAwLjQ4Mjg5LCAwLjgyMDg5NSwgMS4wMTQ0OSIsIFwKLSAgICAgICAgICAiMC4xMDM0MDksIDAuMTEzMDY3LCAwLjIwMDMwMSwgMC4zNDUyODgsIDAuNDkwMTgyLCAwLjgyODM4MSwgMS4wMjE1MiIsIFwKLSAgICAgICAgICAiMC4xMDkyMzksIDAuMTE4ODk0LCAwLjIwNTgwNCwgMC4zNTA4NzMsIDAuNDk1OTUsIDAuODM0MTk3LCAxLjAyNzMzIiwgXAotICAgICAgICAgICIwLjExNjgzMSwgMC4xMjY0ODEsIDAuMjEzNTk2LCAwLjM1ODQ2NSwgMC41MDM1MDQsIDAuODQxNzIsIDEuMDM1MjgiLCBcCi0gICAgICAgICAgIjAuMTIyMzY5LCAwLjEzMTk5LCAwLjIxODg1NiwgMC4zNjM5NjQsIDAuNTA5MTY0LCAwLjg0NzE1MSwgMS4wNDAzNiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDcwNzEsIDAuMTI2ODIyLCAwLjMwNTA1NSwgMC42MDM4NjYsIDAuOTAyNzM5LCAxLjYwMDU3LCAxLjk5OTQ5IiwgXAotICAgICAgICAgICIwLjEwNzEzNiwgMC4xMjcwNzMsIDAuMzA1MDUsIDAuNjAzNzYzLCAwLjkwMjc5OCwgMS42MDA4OCwgMS45OTg5NiIsIFwKLSAgICAgICAgICAiMC4xMDc0ODQsIDAuMTI2NzQxLCAwLjMwNTE0MywgMC42MDM3NDMsIDAuOTAyNzIzLCAxLjYwMDcyLCAxLjk5OTE0IiwgXAotICAgICAgICAgICIwLjEwNzQ3MSwgMC4xMjc0MjcsIDAuMzA0OTYzLCAwLjYwMzU1OSwgMC45MDI0NTYsIDEuNjAwNjQsIDEuOTk5MTYiLCBcCi0gICAgICAgICAgIjAuMTA3OTMxLCAwLjEyNzQ0NSwgMC4zMDQ3MjQsIDAuNjAzNTEyLCAwLjkwMjQ2NywgMS42MDA0NCwgMS45OTg4NCIsIFwKLSAgICAgICAgICAiMC4xMDkwMDMsIDAuMTI3OTk1LCAwLjMwNDk1MywgMC42MDM3NzIsIDAuOTAyMzU0LCAxLjYwMDQ2LCAxLjk5ODgxIiwgXAotICAgICAgICAgICIwLjEwODY5MSwgMC4xMjgwOTgsIDAuMzA0NDk2LCAwLjYwMzA3OCwgMC45MDIwNzMsIDEuNjAwMzEsIDEuOTk4NzciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0NzMsIDAuMDA0NzI4LCAwLjAwNDcwOSwgMC4wMDQ2OTcsIDAuMDA0NjkyLCAwLjAwNDY4OCwgMC4wMDQ2ODYiLCBcCi0gICAgICAgICAgIjAuMDA0NzI1LCAwLjAwNDcyMiwgMC4wMDQ3MDQsIDAuMDA0NjkyLCAwLjAwNDY4NywgMC4wMDQ2ODIsIDAuMDA0NjgxIiwgXAotICAgICAgICAgICIwLjAwNDc3LCAwLjAwNDc2NywgMC4wMDQ3NDksIDAuMDA0NzM2LCAwLjAwNDczMSwgMC4wMDQ3MjYsIDAuMDA0NzI1IiwgXAotICAgICAgICAgICIwLjAwNDgyNCwgMC4wMDQ4MjIsIDAuMDA0ODA0LCAwLjAwNDc5MSwgMC4wMDQ3ODYsIDAuMDA0NzgsIDAuMDA0Nzc5IiwgXAotICAgICAgICAgICIwLjAwNDg4NCwgMC4wMDQ4ODEsIDAuMDA0ODYzLCAwLjAwNDg1LCAwLjAwNDg0NSwgMC4wMDQ4MzksIDAuMDA0ODM4IiwgXAotICAgICAgICAgICIwLjAwNDk4NywgMC4wMDQ5ODUsIDAuMDA0OTY4LCAwLjAwNDk1NCwgMC4wMDQ5NDgsIDAuMDA0OTQxLCAwLjAwNDkzOSIsIFwKLSAgICAgICAgICAiMC4wMDUwOTYsIDAuMDA1MDczLCAwLjAwNTA3NywgMC4wMDUwNjMsIDAuMDA1MDU2LCAwLjAwNTA0OSwgMC4wMDUwNDciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQ3MTksIDAuMDA0NzIxLCAwLjAwNDcyNiwgMC4wMDQ3MjgsIDAuMDA0NzI4LCAwLjAwNDczLCAwLjAwNDcyOSIsIFwKLSAgICAgICAgICAiMC4wMDQ3MTksIDAuMDA0NzIsIDAuMDA0NzI1LCAwLjAwNDcyNywgMC4wMDQ3MjcsIDAuMDA0NzI5LCAwLjAwNDcyOCIsIFwKLSAgICAgICAgICAiMC4wMDQ3NzEsIDAuMDA0NzcyLCAwLjAwNDc3NywgMC4wMDQ3NzksIDAuMDA0Nzc5LCAwLjAwNDc4LCAwLjAwNDc4IiwgXAotICAgICAgICAgICIwLjAwNDgxNywgMC4wMDQ4MTgsIDAuMDA0ODIyLCAwLjAwNDgyNCwgMC4wMDQ4MjQsIDAuMDA0ODI1LCAwLjAwNDgyNiIsIFwKLSAgICAgICAgICAiMC4wMDQ4OTIsIDAuMDA0ODkzLCAwLjAwNDg5OCwgMC4wMDQ4OTksIDAuMDA0ODk5LCAwLjAwNDksIDAuMDA0OSIsIFwKLSAgICAgICAgICAiMC4wMDQ5OTQsIDAuMDA0OTk1LCAwLjAwNDk5OSwgMC4wMDQ5OTksIDAuMDA1LCAwLjAwNSwgMC4wMDUiLCBcCi0gICAgICAgICAgIjAuMDA1MTE0LCAwLjAwNTExNiwgMC4wMDUxMTgsIDAuMDA1MTE5LCAwLjAwNTExOSwgMC4wMDUxMTksIDAuMDA1MTE5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUk4iOwotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNTA0MSwgMC4wMDUwNDIsIDAuMDA1MDQ2LCAwLjAwNTA0NywgMC4wMDUwNDgsIDAuMDA1MDQ4LCAwLjAwNTA0OSIsIFwKLSAgICAgICAgICAiMC4wMDUwMjgsIDAuMDA1MDMsIDAuMDA1MDM1LCAwLjAwNTAzNiwgMC4wMDUwMzgsIDAuMDA1MDM4LCAwLjAwNTAzOCIsIFwKLSAgICAgICAgICAiMC4wMDUwNTUsIDAuMDA1MDU3LCAwLjAwNTA2MiwgMC4wMDUwNjQsIDAuMDA1MDY1LCAwLjAwNTA2NiwgMC4wMDUwNjYiLCBcCi0gICAgICAgICAgIjAuMDA1MTA0LCAwLjAwNTEwNiwgMC4wMDUxMTEsIDAuMDA1MTEzLCAwLjAwNTExNSwgMC4wMDUxMTUsIDAuMDA1MTE1IiwgXAotICAgICAgICAgICIwLjAwNTE2OSwgMC4wMDUxNzEsIDAuMDA1MTc1LCAwLjAwNTE3OCwgMC4wMDUxNzksIDAuMDA1MTc5LCAwLjAwNTE3OSIsIFwKLSAgICAgICAgICAiMC4wMDUyODgsIDAuMDA1Mjg5LCAwLjAwNTI5MiwgMC4wMDUyOTUsIDAuMDA1Mjk3LCAwLjAwNTI5OSwgMC4wMDUyOTgiLCBcCi0gICAgICAgICAgIjAuMDA1NDAzLCAwLjAwNTQwMywgMC4wMDU0MDksIDAuMDA1NDEsIDAuMDA1NDExLCAwLjAwNTQxMSwgMC4wMDU0MTIiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfcG93ZXIoc2NhbGFyKSB7Ci0gICAgICAgIHZhbHVlcygiMCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUU4pICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4yMDA4Mjg7Ci0gICAgZnVuY3Rpb24gOiAiUUJJTlQiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5vbl91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcmlzaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEzODQwNywgMC4xNDg5MjQsIDAuMjQzNjIyLCAwLjQwMTQyOCwgMC41NTkyNzYsIDAuOTI3NDk2LCAxLjEzODE2IiwgXAotICAgICAgICAgICIwLjE0NjU4NCwgMC4xNTcwOTgsIDAuMjUxODA0LCAwLjQwOTY5NSwgMC41Njc0NjEsIDAuOTM1Nzc3LCAxLjE0NjMxIiwgXAotICAgICAgICAgICIwLjE1NTk1MiwgMC4xNjY0NjEsIDAuMjYxMTY3LCAwLjQxOTAwNSwgMC41NzY4MSwgMC45NDUxMzksIDEuMTU1NjciLCBcCi0gICAgICAgICAgIjAuMTYzNDk2LCAwLjE3NDAxOCwgMC4yNjg3MTYsIDAuNDI2NTM4LCAwLjU4NDM2LCAwLjk1MjUyLCAxLjE2MzA3IiwgXAotICAgICAgICAgICIwLjE2OTUyLCAwLjE4MDAzOCwgMC4yNzQ3NjgsIDAuNDMyNTg3LCAwLjU5MDM5NSwgMC45NTg3MjQsIDEuMTY4OTYiLCBcCi0gICAgICAgICAgIjAuMTc3NDU4LCAwLjE4Nzk3NSwgMC4yODI2NywgMC40NDA1NDUsIDAuNTk4MzM2LCAwLjk2NjY5NCwgMS4xNzcxNCIsIFwKLSAgICAgICAgICAiMC4xODMzNDYsIDAuMTkzODU1LCAwLjI4ODU2MiwgMC40NDYzNzIsIDAuNjA0MTY5LCAwLjk3MjUyNiwgMS4xODI5OCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTYwODcsIDAuMTM4MjExLCAwLjMzNzkyLCAwLjY3MDM5LCAxLjAwMjk1LCAxLjc3ODg3LCAyLjIxOTA2IiwgXAotICAgICAgICAgICIwLjExNTk3NCwgMC4xMzgyMDcsIDAuMzM3OTI1LCAwLjY3MDQsIDEuMDAyOTcsIDEuNzc4OTYsIDIuMjE5MzYiLCBcCi0gICAgICAgICAgIjAuMTE2MDkyLCAwLjEzODIwNSwgMC4zMzc5MjYsIDAuNjcwNDAzLCAxLjAwMjk3LCAxLjc3ODk2LCAyLjIxOTEiLCBcCi0gICAgICAgICAgIjAuMTE2MDI3LCAwLjEzODI4OCwgMC4zMzc5MjEsIDAuNjY5NzY5LCAxLjAwMjk1LCAxLjc3NzIxLCAyLjIxODI0IiwgXAotICAgICAgICAgICIwLjExNjA4NywgMC4xMzgyMDcsIDAuMzM3NDU4LCAwLjY3MDQwNywgMS4wMDI5MiwgMS43Nzg5OCwgMi4yMjA0IiwgXAotICAgICAgICAgICIwLjExNjAxOCwgMC4xMzgyMSwgMC4zMzc5MTcsIDAuNjcwMzkxLCAxLjAwMjk0LCAxLjc3NzE0LCAyLjIxOTA5IiwgXAotICAgICAgICAgICIwLjExNjA0MSwgMC4xMzgyMjksIDAuMzM3OTIyLCAwLjY3MDMyOSwgMS4wMDI5NCwgMS43Nzg5NSwgMi4yMjIyNSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMzc5OTcsIDAuMTQ3NjQ2LCAwLjIzNDQzNCwgMC4zNzkxNTUsIDAuNTIzODQxLCAwLjg2MTM4NSwgMS4wNTQzNSIsIFwKLSAgICAgICAgICAiMC4xNDYxMzMsIDAuMTU1NzgzLCAwLjI0MjU3MiwgMC4zODcyOTMsIDAuNTMxOTc5LCAwLjg2OTUyMywgMS4wNjI0OCIsIFwKLSAgICAgICAgICAiMC4xNTU0MDcsIDAuMTY1MDU2LCAwLjI1MTg0NywgMC4zOTY1NjYsIDAuNTQxMjQ2LCAwLjg3ODc5NiwgMS4wNzE3NSIsIFwKLSAgICAgICAgICAiMC4xNjI3OTgsIDAuMTcyNDQ2LCAwLjI1OTIzMywgMC40MDM5NSwgMC41NDg2MzcsIDAuODg2MTkyLCAxLjA3OTE2IiwgXAotICAgICAgICAgICIwLjE2ODY1OCwgMC4xNzgzMDYsIDAuMjY1MTEyLCAwLjQwOTgxNSwgMC41NTQ0ODEsIDAuODkyMTAyLCAxLjA4NTAzIiwgXAotICAgICAgICAgICIwLjE3NjY1OSwgMC4xODYzMDcsIDAuMjczMDk5LCAwLjQxNzgwNCwgMC41NjI0NzQsIDAuOTAwMDYsIDEuMDkzMDMiLCBcCi0gICAgICAgICAgIjAuMTgyMjYsIDAuMTkxODk4LCAwLjI3ODcwMywgMC40MjMzNjYsIDAuNTY4MDQ4LCAwLjkwNTY5OCwgMS4wOTg2MyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDM5MTcsIDAuMTIzNjQ4LCAwLjMwMTc1NiwgMC41OTk3NTQsIDAuODk1NDQ4LCAxLjU5MTI0LCAxLjk4ODE1IiwgXAotICAgICAgICAgICIwLjEwMzkxNywgMC4xMjM2NDgsIDAuMzAxNzQ5LCAwLjU5OTc1MywgMC44OTU1MzQsIDEuNTkxMjMsIDEuOTg4MDkiLCBcCi0gICAgICAgICAgIjAuMTAzOTE3LCAwLjEyMzY0NywgMC4zMDE4MTcsIDAuNTk5NzU4LCAwLjg5NTM3NywgMS41OTEyNCwgMS45ODgxIiwgXAotICAgICAgICAgICIwLjEwMzkxNywgMC4xMjM2NDcsIDAuMzAyMDc3LCAwLjU5OTczNSwgMC44OTU1NjUsIDEuNTkxMjQsIDEuOTg4MTQiLCBcCi0gICAgICAgICAgIjAuMTAzOTI5LCAwLjEyMzY0OSwgMC4zMDIyLCAwLjU5OTc0NiwgMC44OTYwMzEsIDEuNTkxNDUsIDEuOTg4MTkiLCBcCi0gICAgICAgICAgIjAuMTAzOTIxLCAwLjEyMzU4NywgMC4zMDIwNjEsIDAuNTk5NzMsIDAuODk2MTUsIDEuNTkxMzIsIDEuOTg4MjIiLCBcCi0gICAgICAgICAgIjAuMTAzOTI1LCAwLjEyMzY3NCwgMC4zMDIxNzQsIDAuNTk4NTAxLCAwLjg5NTg2NywgMS41OTE1LCAxLjk4Mzc2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiBwcmVzZXQ7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4ODU1LCAwLjA5OTA2NiwgMC4xOTM3ODcsIDAuMzUxNTU4LCAwLjUwOTQxLCAwLjg3NzU0LCAxLjA4ODA3IiwgXAotICAgICAgICAgICIwLjA5NjU1OCwgMC4xMDcwNzMsIDAuMjAxNzk1LCAwLjM1OTYxLCAwLjUxNzQwNiwgMC44ODU3NywgMS4wOTYwMSIsIFwKLSAgICAgICAgICAiMC4xMDU1NTUsIDAuMTE2MDcxLCAwLjIxMDc4NCwgMC4zNjg1NzQsIDAuNTI2NDAyLCAwLjg5NDU3MiwgMS4xMDUiLCBcCi0gICAgICAgICAgIjAuMTEyNDY0LCAwLjEyMzAwMywgMC4yMTc3MTUsIDAuMzc1NTI5LCAwLjUzMzMyNSwgMC45MDE0ODIsIDEuMTExODciLCBcCi0gICAgICAgICAgIjAuMTE3ODA3LCAwLjEyODMyNCwgMC4yMjI5ODgsIDAuMzgwODExLCAwLjUzODYzOCwgMC45MDY4MDQsIDEuMTE3MTciLCBcCi0gICAgICAgICAgIjAuMTI0Nzg5LCAwLjEzNTMwNiwgMC4yMjk5ODYsIDAuMzg3Nzc3LCAwLjU0NTU1NSwgMC45MTM3NjIsIDEuMTI0MjMiLCBcCi0gICAgICAgICAgIjAuMTI5NTU1LCAwLjE0MDA2NCwgMC4yMzQ3MDcsIDAuMzkyNTI4LCAwLjU1MDQwOSwgMC45MTg1NzQsIDEuMTI4OTEiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTE2MDAzLCAwLjEzODE1OCwgMC4zMzc3NDcsIDAuNjcwMTgxLCAxLjAwMjc0LCAxLjc3ODY0LCAyLjIyMjA5IiwgXAotICAgICAgICAgICIwLjExNTk5NSwgMC4xMzgxMTcsIDAuMzM3NzQxLCAwLjY3MDIxOSwgMS4wMDI3MywgMS43Nzg2NywgMi4yMjE5OSIsIFwKLSAgICAgICAgICAiMC4xMTU5ODgsIDAuMTM4MTY2LCAwLjMzNzczMiwgMC42NzAxNzgsIDEuMDAyNzIsIDEuNzc4NjQsIDIuMjIxOTkiLCBcCi0gICAgICAgICAgIjAuMTE2MDIxLCAwLjEzODE2NCwgMC4zMzc3MzQsIDAuNjcwMTcxLCAxLjAwMjYzLCAxLjc3ODU4LCAyLjIyMiIsIFwKLSAgICAgICAgICAiMC4xMTYwNywgMC4xMzgxMzgsIDAuMzM3NTE4LCAwLjY3MDEyNywgMS4wMDI2NSwgMS43Nzg1NSwgMi4yMjE4NiIsIFwKLSAgICAgICAgICAiMC4xMTYwMTksIDAuMTM4MTMyLCAwLjMzNzcwNiwgMC42NzAxMywgMS4wMDI2MiwgMS43Nzg1NywgMi4yMjE4OCIsIFwKLSAgICAgICAgICAiMC4xMTYxNjYsIDAuMTM4MTg2LCAwLjMzNzQ1NiwgMC42NzAwNzYsIDEuMDAyNzMsIDEuNzc4NTUsIDIuMjIxODkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0NzE5LCAwLjAwNDcyMSwgMC4wMDQ3MjYsIDAuMDA0NzI4LCAwLjAwNDcyOCwgMC4wMDQ3MywgMC4wMDQ3MjkiLCBcCi0gICAgICAgICAgIjAuMDA0NzE5LCAwLjAwNDcyLCAwLjAwNDcyNSwgMC4wMDQ3MjcsIDAuMDA0NzI3LCAwLjAwNDcyOSwgMC4wMDQ3MjgiLCBcCi0gICAgICAgICAgIjAuMDA0NzcxLCAwLjAwNDc3MiwgMC4wMDQ3NzcsIDAuMDA0Nzc5LCAwLjAwNDc3OSwgMC4wMDQ3OCwgMC4wMDQ3OCIsIFwKLSAgICAgICAgICAiMC4wMDQ4MTcsIDAuMDA0ODE4LCAwLjAwNDgyMiwgMC4wMDQ4MjQsIDAuMDA0ODI0LCAwLjAwNDgyNSwgMC4wMDQ4MjYiLCBcCi0gICAgICAgICAgIjAuMDA0ODkyLCAwLjAwNDg5MywgMC4wMDQ4OTgsIDAuMDA0ODk5LCAwLjAwNDg5OSwgMC4wMDQ5LCAwLjAwNDkiLCBcCi0gICAgICAgICAgIjAuMDA0OTk0LCAwLjAwNDk5NSwgMC4wMDQ5OTksIDAuMDA0OTk5LCAwLjAwNSwgMC4wMDUsIDAuMDA1IiwgXAotICAgICAgICAgICIwLjAwNTExNCwgMC4wMDUxMTYsIDAuMDA1MTE4LCAwLjAwNTExOSwgMC4wMDUxMTksIDAuMDA1MTE5LCAwLjAwNTExOSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDczLCAwLjAwNDcyOCwgMC4wMDQ3MDksIDAuMDA0Njk3LCAwLjAwNDY5MiwgMC4wMDQ2ODgsIDAuMDA0Njg2IiwgXAotICAgICAgICAgICIwLjAwNDcyNSwgMC4wMDQ3MjIsIDAuMDA0NzA0LCAwLjAwNDY5MiwgMC4wMDQ2ODcsIDAuMDA0NjgyLCAwLjAwNDY4MSIsIFwKLSAgICAgICAgICAiMC4wMDQ3NywgMC4wMDQ3NjcsIDAuMDA0NzQ5LCAwLjAwNDczNiwgMC4wMDQ3MzEsIDAuMDA0NzI2LCAwLjAwNDcyNSIsIFwKLSAgICAgICAgICAiMC4wMDQ4MjQsIDAuMDA0ODIyLCAwLjAwNDgwNCwgMC4wMDQ3OTEsIDAuMDA0Nzg2LCAwLjAwNDc4LCAwLjAwNDc3OSIsIFwKLSAgICAgICAgICAiMC4wMDQ4ODQsIDAuMDA0ODgxLCAwLjAwNDg2MywgMC4wMDQ4NSwgMC4wMDQ4NDUsIDAuMDA0ODM5LCAwLjAwNDgzOCIsIFwKLSAgICAgICAgICAiMC4wMDQ5ODcsIDAuMDA0OTg1LCAwLjAwNDk2OCwgMC4wMDQ5NTQsIDAuMDA0OTQ4LCAwLjAwNDk0MSwgMC4wMDQ5MzkiLCBcCi0gICAgICAgICAgIjAuMDA1MDk2LCAwLjAwNTA3MywgMC4wMDUwNzcsIDAuMDA1MDYzLCAwLjAwNTA1NiwgMC4wMDUwNDksIDAuMDA1MDQ3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUk4iOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNTA0MSwgMC4wMDUwNDIsIDAuMDA1MDQ2LCAwLjAwNTA0NywgMC4wMDUwNDgsIDAuMDA1MDQ4LCAwLjAwNTA0OSIsIFwKLSAgICAgICAgICAiMC4wMDUwMjgsIDAuMDA1MDMsIDAuMDA1MDM1LCAwLjAwNTAzNiwgMC4wMDUwMzgsIDAuMDA1MDM4LCAwLjAwNTAzOCIsIFwKLSAgICAgICAgICAiMC4wMDUwNTUsIDAuMDA1MDU3LCAwLjAwNTA2MiwgMC4wMDUwNjQsIDAuMDA1MDY1LCAwLjAwNTA2NiwgMC4wMDUwNjYiLCBcCi0gICAgICAgICAgIjAuMDA1MTA0LCAwLjAwNTEwNiwgMC4wMDUxMTEsIDAuMDA1MTEzLCAwLjAwNTExNSwgMC4wMDUxMTUsIDAuMDA1MTE1IiwgXAotICAgICAgICAgICIwLjAwNTE2OSwgMC4wMDUxNzEsIDAuMDA1MTc1LCAwLjAwNTE3OCwgMC4wMDUxNzksIDAuMDA1MTc5LCAwLjAwNTE3OSIsIFwKLSAgICAgICAgICAiMC4wMDUyODgsIDAuMDA1Mjg5LCAwLjAwNTI5MiwgMC4wMDUyOTUsIDAuMDA1Mjk3LCAwLjAwNTI5OSwgMC4wMDUyOTgiLCBcCi0gICAgICAgICAgIjAuMDA1NDAzLCAwLjAwNTQwMywgMC4wMDU0MDksIDAuMDA1NDEsIDAuMDA1NDExLCAwLjAwNTQxMSwgMC4wMDU0MTIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoc2NhbGFyKSB7Ci0gICAgICAgIHZhbHVlcygiMCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUk4pICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTU3MTcxOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTQ4MTAyOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTU3MTcxOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDU5MywgMC4wMDA1OTMsIDAuMDAwNTkyLCAwLjAwMDU5MiwgMC4wMDA1OTIsIDAuMDAwNTkyLCAwLjAwMDU5MiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDYxMiwgMC4wMDA2MDEsIDAuMDAwNTk5LCAwLjAwMDU5OCwgMC4wMDA1OTcsIDAuMDAwNTk1LCAwLjAwMDU5NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQmIVNFJiFTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fU0VfRVFfMF9BTl9TSV9FUV8wID09IDEnYjEiOwotICAgICAgZmFsbF9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDg4NTQ5LCAwLjA5NjU1NywgMC4xMDU1NTUsIDAuMTEyNDY0LCAwLjExNzc3NiwgMC4xMjQ2NTIsIDAuMTI5NTU1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogcmVjb3ZlcnlfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRCZTRSZTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fU0VfRVFfMV9BTl9TSV9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHJlY292ZXJ5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMzEyNSwgLTAuMDM2MjUsIC0wLjA0ODc1LCAtMC4wNTUsIC0wLjA2MTI1LCAtMC4wNjUsIC0wLjA3Mzc1IiwgXAotICAgICAgICAgICItMC4wMzI1LCAtMC4wMzc1LCAtMC4wNSwgLTAuMDU2MjUsIC0wLjA2MjUsIC0wLjA3MjUsIC0wLjA3NSIsIFwKLSAgICAgICAgICAiLTAuMDI2MjUsIC0wLjAzMTI1LCAtMC4wNDM3NSwgLTAuMDUsIC0wLjA1NjI1LCAtMC4wNjYyNSwgLTAuMDc1IiwgXAotICAgICAgICAgICItMC4wMTM3NSwgLTAuMDI1LCAtMC4wMzEyNSwgLTAuMDQzNzUsIC0wLjA1LCAtMC4wNiwgLTAuMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDAxMjUsIC0wLjAxMjUsIC0wLjAyNSwgLTAuMDMxMjUsIC0wLjAzNzUsIC0wLjA0NzUsIC0wLjA1IiwgXAotICAgICAgICAgICIwLjAyMTI1LCAwLjAxLCAtMC4wMDI1LCAtMC4wMTUsIC0wLjAyMTI1LCAtMC4wMzEyNSwgLTAuMDMzNzUiLCBcCi0gICAgICAgICAgIjAuMDM2MjUsIDAuMDI1LCAwLjAxMjUsIDAuMDA2MjUsIC0wLjAwNjI1LCAtMC4wMSwgLTAuMDE4NzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiByZW1vdmFsX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUQmU0UmU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1NFX0VRXzFfQU5fU0lfRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChyZW1vdmFsX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0Mzc1LCAwLjA0ODc1LCAwLjA2MTI1LCAwLjA2NzUsIDAuMDczNzUsIDAuMDc3NSwgMC4wODYyNSIsIFwKLSAgICAgICAgICAiMC4wNDUsIDAuMDU2MjUsIDAuMDYyNSwgMC4wNjg3NSwgMC4wNzUsIDAuMDg1LCAwLjA4NzUiLCBcCi0gICAgICAgICAgIjAuMDUxMjUsIDAuMDU2MjUsIDAuMDY4NzUsIDAuMDc1LCAwLjA4MTI1LCAwLjA4NSwgMC4wOTM3NSIsIFwKLSAgICAgICAgICAiMC4wNTc1LCAwLjA2MjUsIDAuMDY4NzUsIDAuMDgxMjUsIDAuMDgxMjUsIDAuMDkxMjUsIDAuMSIsIFwKLSAgICAgICAgICAiMC4wNTc1LCAwLjA2ODc1LCAwLjA3NSwgMC4wODEyNSwgMC4wODc1LCAwLjA5NzUsIDAuMSIsIFwKLSAgICAgICAgICAiMC4wNiwgMC4wNzEyNSwgMC4wNzc1LCAwLjA4Mzc1LCAwLjA5LCAwLjEsIDAuMTAyNSIsIFwKLSAgICAgICAgICAiMC4wNjM3NSwgMC4wNzUsIDAuMDgxMjUsIDAuMDg3NSwgMC4wOTM3NSwgMC4xMDM3NSwgMC4xMDYyNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oU0UpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTQ0MDAyOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTQzOTc1OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTQ0MDAyOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNTMwNywgMC4wMDUzMjMsIDAuMDA1NDA5LCAwLjAwNTUyMSwgMC4wMDU2OCwgMC4wMDU5MDMsIDAuMDA2MTA3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA3MDI4LCAwLjAwNzA1OCwgMC4wMDcxNzQsIDAuMDA3MzUsIDAuMDA3NTc1LCAwLjAwNzk0OCwgMC4wMDgyOTIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiUk4iOwotICAgICAgc2RmX2NvbmQgOiAiUk4gPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDE4NzUsIC0wLjAwNzUsIC0wLjAwMTI1LCAwLjAwNSwgMC4wMTEyNSwgMC4wMTUsIDAuMDIzNzUiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMCwgMCwgMC4wMSwgMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLCAwLjAwMzc1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIC0wLjAwMjUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAxMjUsIC0wLjAwMjUsIDAiLCBcCi0gICAgICAgICAgIi0wLjA0LCAtMC4wMzUsIC0wLjAyODc1LCAtMC4wMjI1LCAtMC4wMTYyNSwgLTAuMDA2MjUsIC0wLjAwMzc1IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDE1LCAtMC4wMDYyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAwNjI1LCAwLjAwNSwgMC4wMTEyNSwgMC4wMTc1LCAwLjAxNzUsIDAuMDI3NSwgMC4wMyIsIFwKLSAgICAgICAgICAiLTAuMDExMjUsIC0wLjAwNjI1LCAwLCAwLjAwNjI1LCAwLjAxMjUsIDAuMDIyNSwgMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMCwgMC4wMDYyNSwgMC4wMSwgMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLCAwLjAwMzc1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIC0wLjAwMjUsIDAiLCBcCi0gICAgICAgICAgIi0wLjA0LCAtMC4wMzUsIC0wLjAyODc1LCAtMC4wMjI1LCAtMC4wMTYyNSwgLTAuMDEyNSwgLTAuMDAzNzUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAyNSwgLTAuMDE1LCAtMC4wMTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJSTiI7Ci0gICAgICBzZGZfY29uZCA6ICJSTiA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNSwgMC4wNDUsIDAuMDM4NzUsIDAuMDMyNSwgMC4wMjYyNSwgMC4wMjI1LCAwLjAyIiwgXAotICAgICAgICAgICIwLjA1NSwgMC4wNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzNzUsIDAuMDMzNzUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMDY3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1LCAwLjA0Mzc1LCAwLjA0LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIjAuMDczNzUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNTYyNSwgMC4wNTI1LCAwLjA1IiwgXAotICAgICAgICAgICIwLjA4NjI1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1ODc1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICIwLjA5NjI1LCAwLjA4NSwgMC4wNzg3NSwgMC4wNzg3NSwgMC4wNzI1LCAwLjA2ODc1LCAwLjA2NjI1IiwgXAotICAgICAgICAgICIwLjEwNSwgMC4wOTM3NSwgMC4wODc1LCAwLjA4MTI1LCAwLjA4MTI1LCAwLjA3NzUsIDAuMDc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDYyNSwgMC4wNTEyNSwgMC4wNDUsIDAuMDQ1LCAwLjAzODc1LCAwLjAzNSwgMC4wMzI1IiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNSwgMC4wNSwgMC4wNDYyNSwgMC4wMzc1IiwgXAotICAgICAgICAgICIwLjA3Mzc1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDU2MjUsIDAuMDQ2MjUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMDgsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1MjUsIDAuMDUiLCBcCi0gICAgICAgICAgIjAuMDgsIDAuMDc1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDYyNSwgMC4wNTg3NSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiMC4wODM3NSwgMC4wNzg3NSwgMC4wNzI1LCAwLjA2NjI1LCAwLjA2NjI1LCAwLjA2MjUsIDAuMDYiLCBcCi0gICAgICAgICAgIjAuMDkyNSwgMC4wODEyNSwgMC4wNzUsIDAuMDY4NzUsIDAuMDY4NzUsIDAuMDY1LCAwLjA2MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFNJKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2Njc1MDc7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjY2NDkyOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDY2NzUwNzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDMyOTksIDAuMDAzMjc3LCAwLjAwMzMwMSwgMC4wMDMzNDQsIDAuMDAzNDExLCAwLjAwMzUyNSwgMC4wMDM2NTMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDU3OTIsIDAuMDA1Nzc2LCAwLjAwNTc5NCwgMC4wMDU4MzQsIDAuMDA1OTA2LCAwLjAwNjAwNiwgMC4wMDYxMjciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiUk4mU0UiOwotICAgICAgc2RmX2NvbmQgOiAiUk5fRVFfMV9BTl9TRV9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAzMTI1LCAtMC4wMjYyNSwgLTAuMDIsIC0wLjAyLCAtMC4wMTM3NSwgLTAuMDEsIC0wLjAwNzUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMzEyNSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDI1LCAtMC4wMjEyNSwgLTAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDMxMjUsIC0wLjAyNzUsIC0wLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzNzUsIC0wLjAzMzc1LCAtMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDYxMjUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjA0Mzc1LCAtMC4wNCwgLTAuMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDY1LCAtMC4wNiwgLTAuMDYsIC0wLjA1Mzc1LCAtMC4wNTM3NSwgLTAuMDUsIC0wLjA0NzUiLCBcCi0gICAgICAgICAgIi0wLjA3Mzc1LCAtMC4wNjg3NSwgLTAuMDYyNSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA1MjUsIC0wLjA1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDEyNSwgLTAuMDAxMjUsIDAuMDA1LCAwLjAxMTI1LCAwLjAxNzUsIDAuMDIxMjUsIDAuMDIzNzUiLCBcCi0gICAgICAgICAgIi0wLjAxNzUsIC0wLjAwNjI1LCAwLCAwLjAwNjI1LCAwLjAxMjUsIDAuMDE2MjUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMCwgMC4wMDYyNSwgMC4wMSwgMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLCAwLjAwMzc1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIC0wLjAwMjUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA0LCAtMC4wMjg3NSwgLTAuMDIyNSwgLTAuMDE2MjUsIC0wLjAxNjI1LCAtMC4wMDYyNSwgLTAuMDAzNzUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxNSwgLTAuMDA2MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlJOJlNFIjsKLSAgICAgIHNkZl9jb25kIDogIlJOX0VRXzFfQU5fU0VfRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTYyNSwgMC4wNDUsIDAuMDM4NzUsIDAuMDM4NzUsIDAuMDMyNSwgMC4wMjg3NSwgMC4wMjYyNSIsIFwKLSAgICAgICAgICAiMC4wNjEyNSwgMC4wNSwgMC4wNDM3NSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzMzc1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNSwgMC4wNDM3NSwgMC4wNCwgMC4wMzc1IiwgXAotICAgICAgICAgICIwLjA3Mzc1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDU2MjUsIDAuMDUyNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4wOCwgMC4wNzUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNjI1LCAwLjA1ODc1LCAwLjA1IiwgXAotICAgICAgICAgICIwLjA5LCAwLjA4NSwgMC4wNzg3NSwgMC4wNzI1LCAwLjA2NjI1LCAwLjA2MjUsIDAuMDYiLCBcCi0gICAgICAgICAgIjAuMDk4NzUsIDAuMDg3NSwgMC4wODEyNSwgMC4wODEyNSwgMC4wNzUsIDAuMDcxMjUsIDAuMDY4NzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzc1LCAwLjAzMjUsIDAuMDIsIDAuMDEzNzUsIDAuMDA3NSwgMC4wMDM3NSwgLTAuMDA1IiwgXAotICAgICAgICAgICIwLjA0MjUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMTg3NSwgMC4wMTI1LCAwLjAwODc1LCAwIiwgXAotICAgICAgICAgICIwLjA1NSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMTUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMDYxMjUsIDAuMDUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMjEyNSwgMC4wMTI1IiwgXAotICAgICAgICAgICIwLjA2MTI1LCAwLjA1NjI1LCAwLjA1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDI3NSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4wNzEyNSwgMC4wNjYyNSwgMC4wNTM3NSwgMC4wNDc1LCAwLjA0MTI1LCAwLjAzMTI1LCAwLjAyODc1IiwgXAotICAgICAgICAgICIwLjA4LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDUsIDAuMDUsIDAuMDQsIDAuMDMxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IFNERkZTSFFYMSAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKFNERkZTSFFYMSkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAxLjE5NjYxOwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIGZmIChOMzAsUUJJTlQpIHsKLSAgICBuZXh0X3N0YXRlIDogIigoU0UgU0kpICsgKCFTRSBEKSkiOwotICAgIGNsb2NrZWRfb24gOiAiQ0siOwotICAgIHByZXNldCA6ICIoIVNOKSI7Ci0gIH0KLSAgcGluKENLKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2NTk2NzM7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjU5NjczOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDY1OTY2ODsKLSAgICBjbG9jayA6IHRydWU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzODM3LCAwLjAwMzgyOCwgMC4wMDM5MDgsIDAuMDA0MDAzLCAwLjAwNDEyMSwgMC4wMDQzNTQsIDAuMDA0NTUzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA5NzYxLCAwLjAwOTc0OCwgMC4wMDk4NDEsIDAuMDA5OTY1LCAwLjAxMDEwOSwgMC4wMTAzMDIsIDAuMDEwNTEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFEJiFTRSYhU0kmU04iOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1NFX0VRXzBfQU5fU0lfRVFfMF9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMTA3MTY3LCAwLjExNTQwMSwgMC4xMjQ4ODgsIDAuMTMyNzE1LCAwLjEzODk5OCwgMC4xNDcxMzUsIDAuMTUzMzgyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wNzMyNDksIDAuMDgxMzg5LCAwLjA5MDkxNywgMC4wOTg0MzgsIDAuMTA0NDQ2LCAwLjExMjQyNSwgMC4xMTgyMTIiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEQpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDkwNjg2NzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA5MDQ0MzI7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwOTA2ODY3OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNDk5LCAwLjAwNDk0NSwgMC4wMDQ5NjYsIDAuMDA1MDA3LCAwLjAwNTA5MiwgMC4wMDUyNDgsIDAuMDA1MzkyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA3NTI2LCAwLjAwNzQ5OCwgMC4wMDc1MTcsIDAuMDA3NTYxLCAwLjAwNzYzMSwgMC4wMDc3NjIsIDAuMDA3OTEyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFTRSZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJTRV9FUV8wX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDI1LCAtMC4wMiwgLTAuMDEzNzUsIC0wLjAxMzc1LCAtMC4wMDc1LCAtMC4wMDM3NSwgLTAuMDAxMjUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMjUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwODc1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDI1LCAtMC4wMTUsIC0wLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAzMTI1LCAtMC4wMjc1LCAtMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzNzUsIC0wLjAzMzc1LCAtMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjA1ODc1LCAtMC4wNTM3NSwgLTAuMDUzNzUsIC0wLjA0NzUsIC0wLjA0MTI1LCAtMC4wMzc1LCAtMC4wMzUiLCBcCi0gICAgICAgICAgIi0wLjA2NzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjA0NjI1LCAtMC4wNDM3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAwNjI1LCAtMC4wMDEyNSwgMC4wMTEyNSwgMC4wMTc1LCAwLjAyMzc1LCAwLjAyNzUsIDAuMDMiLCBcCi0gICAgICAgICAgIi0wLjAxMTI1LCAtMC4wMDYyNSwgMC4wMDYyNSwgMC4wMTI1LCAwLjAxMjUsIDAuMDIyNSwgMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjAxNzUsIC0wLjAxMjUsIDAsIDAuMDA2MjUsIDAuMDA2MjUsIDAuMDE2MjUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAsIDAsIDAuMDEsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMCwgMC4wMDM3NSwgMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wMzM3NSwgLTAuMDI4NzUsIC0wLjAxNjI1LCAtMC4wMSwgLTAuMDEsIDAsIDAuMDAyNSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDI1LCAwIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhU0UmU04iOwotICAgICAgc2RmX2NvbmQgOiAiU0VfRVFfMF9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1LCAwLjAzODc1LCAwLjAzMjUsIDAuMDMyNSwgMC4wMjYyNSwgMC4wMjI1LCAwLjAyIiwgXAotICAgICAgICAgICIwLjA1NSwgMC4wNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyNzUsIDAuMDI1IiwgXAotICAgICAgICAgICIwLjA2MTI1LCAwLjA1NjI1LCAwLjA1LCAwLjA0Mzc1LCAwLjA0Mzc1LCAwLjAzMzc1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNSwgMC4wNSwgMC4wNDYyNSwgMC4wMzc1IiwgXAotICAgICAgICAgICIwLjA3Mzc1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDU2MjUsIDAuMDUyNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4wODM3NSwgMC4wNzg3NSwgMC4wNzI1LCAwLjA2NjI1LCAwLjA2LCAwLjA1NjI1LCAwLjA1Mzc1IiwgXAotICAgICAgICAgICIwLjA5MjUsIDAuMDgxMjUsIDAuMDc1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjUsIDAuMDYyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0Mzc1LCAwLjAzMjUsIDAuMDI2MjUsIDAuMDIsIDAuMDEzNzUsIDAuMDAzNzUsIDAuMDAxMjUiLCBcCi0gICAgICAgICAgIjAuMDQ4NzUsIDAuMDQzNzUsIDAuMDMxMjUsIDAuMDI1LCAwLjAxODc1LCAwLjAwODc1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICIwLjA1NSwgMC4wNSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMTUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4wNjEyNSwgMC4wNTYyNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyMTI1LCAwLjAxODc1IiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDYyNSwgMC4wNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAyNzUsIDAuMDI1IiwgXAotICAgICAgICAgICIwLjA3NzUsIDAuMDY2MjUsIDAuMDYsIDAuMDQ3NSwgMC4wNDEyNSwgMC4wMzc1LCAwLjAyODc1IiwgXAotICAgICAgICAgICIwLjA4LCAwLjA3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1LCAwLjA0LCAwLjAzNzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFEpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4zMzgxMTQ7Ci0gICAgZnVuY3Rpb24gOiAiTjMwIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBub25fdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJpc2luZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTE2MzEsIDAuMTEwMDM2LCAwLjIxNDE3NiwgMC4zMDYwNTYsIDAuNDI4NTQ4LCAwLjY3MzY1MiwgMC44MjY1OTciLCBcCi0gICAgICAgICAgIjAuMDk5ODQyLCAwLjExODI0NywgMC4yMjI0MDEsIDAuMzE0MjU4LCAwLjQzNjgxNCwgMC42ODE4MzksIDAuODM0ODIyIiwgXAotICAgICAgICAgICIwLjEwOTMxLCAwLjEyNzcxNSwgMC4yMzE4NzYsIDAuMzIzNzIsIDAuNDQ2MTk5LCAwLjY5MTE1NywgMC44NDQzMDQiLCBcCi0gICAgICAgICAgIjAuMTE2OTU3LCAwLjEzNTM2MSwgMC4yMzk0OSwgMC4zMzEzMTksIDAuNDUzODQyLCAwLjY5ODc5OCwgMC44NTE5MiIsIFwKLSAgICAgICAgICAiMC4xMjMwNzEsIDAuMTQxNDY4LCAwLjI0NTYxOCwgMC4zMzc0NzUsIDAuNDU5OTQ4LCAwLjcwNDk3MywgMC44NTgwMDIiLCBcCi0gICAgICAgICAgIjAuMTMxMDU2LCAwLjE0OTQ2NSwgMC4yNTM2MDYsIDAuMzQ1NDcxLCAwLjQ2NzkzMiwgMC43MTI4ODksIDAuODY2MTEiLCBcCi0gICAgICAgICAgIjAuMTM3MTM5LCAwLjE1NTU0LCAwLjI1OTY2NiwgMC4zNTE1NDQsIDAuNDc0MDY2LCAwLjcxODk1OCwgMC44NzIwNTgiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY5OTkyLCAwLjEwODMzNywgMC4zMjc2MzksIDAuNTIyNjkxLCAwLjc4MTgxMiwgMS4yOTkwNCwgMS42MjI0NyIsIFwKLSAgICAgICAgICAiMC4wNjk5MzksIDAuMTA4MzEzLCAwLjMyNzkzNiwgMC41MjI2ODksIDAuNzgwNzQzLCAxLjI5ODMyLCAxLjYyMTQzIiwgXAotICAgICAgICAgICIwLjA2OTk3NiwgMC4xMDg0MTUsIDAuMzI3ODc5LCAwLjUyMjY4NywgMC43ODExOCwgMS4yOTg4NSwgMS42MjIzNCIsIFwKLSAgICAgICAgICAiMC4wNjk5ODgsIDAuMTA4NDIsIDAuMzI4MzU0LCAwLjUyMjQxMywgMC43ODExNDgsIDEuMjk5MTMsIDEuNjI0MTEiLCBcCi0gICAgICAgICAgIjAuMDY5OTg4LCAwLjEwODQwMywgMC4zMjgyOTgsIDAuNTIyMjUyLCAwLjc4MTA4LCAxLjMwMDA0LCAxLjYyMjY2IiwgXAotICAgICAgICAgICIwLjA2OTk3OCwgMC4xMDgzNDQsIDAuMzI4MDE1LCAwLjUyMjE0NiwgMC43ODExMTUsIDEuMjk5MDEsIDEuNjIzOTgiLCBcCi0gICAgICAgICAgIjAuMDcwMTQ1LCAwLjEwODM0NiwgMC4zMjgwNDIsIDAuNTIyMTk4LCAwLjc4MTcwNSwgMS4yOTg4NCwgMS42MjI1OCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDcxNzMsIDAuMTI1MzE4LCAwLjIyNzg3NywgMC4zMTgzODQsIDAuNDM4OTg1LCAwLjY4MDE4NCwgMC44MzA5MjMiLCBcCi0gICAgICAgICAgIjAuMTE1NDAxLCAwLjEzMzU0NSwgMC4yMzYxMTEsIDAuMzI2NTcxLCAwLjQ0NzIwMSwgMC42ODgzOTQsIDAuODM5MTQ2IiwgXAotICAgICAgICAgICIwLjEyNDg4OCwgMC4xNDMwMzMsIDAuMjQ1NTk1LCAwLjMzNjA5OCwgMC40NTY3LCAwLjY5Nzg3NiwgMC44NDg2NDciLCBcCi0gICAgICAgICAgIjAuMTMyNzE1LCAwLjE1MDg2MiwgMC4yNTM0MjMsIDAuMzQzOTI3LCAwLjQ2NDUyNywgMC43MDU3MDIsIDAuODU2NDc3IiwgXAotICAgICAgICAgICIwLjEzODk5OCwgMC4xNTcxNDMsIDAuMjU5NzA2LCAwLjM1MDIxMiwgMC40NzA4MDcsIDAuNzExOTkxLCAwLjg2Mjc1NyIsIFwKLSAgICAgICAgICAiMC4xNDcxMzYsIDAuMTY1MjY3LCAwLjI2NzgyNSwgMC4zNTgzNDgsIDAuNDc4OTIzLCAwLjcyMDExNSwgMC44NzA4NjciLCBcCi0gICAgICAgICAgIjAuMTUzMzgyLCAwLjE3MTQ3NCwgMC4yNzQwOTMsIDAuMzY0NTksIDAuNDg1MTc0LCAwLjcyNjM3OCwgMC44NzcxMzMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY3MzY3LCAwLjEwNDAyMywgMC4zMTQ5NDMsIDAuNTAxNTIzLCAwLjc0OTc4MiwgMS4yNDczNiwgMS41NTgxOCIsIFwKLSAgICAgICAgICAiMC4wNjczNDcsIDAuMTA0MDIyLCAwLjMxNDk2NywgMC41MDEzOSwgMC43NTAxNzEsIDEuMjQ1NjUsIDEuNTU3ODgiLCBcCi0gICAgICAgICAgIjAuMDY3MzQsIDAuMTA0MDE3LCAwLjMxNDUyNywgMC41MDE1MTcsIDAuNzUwMTk1LCAxLjI0NzM0LCAxLjU1NjIyIiwgXAotICAgICAgICAgICIwLjA2NzMzOCwgMC4xMDQwMTksIDAuMzE0NTQ1LCAwLjUwMTUxNywgMC43NTAxODUsIDEuMjQ3MzEsIDEuNTU2MjciLCBcCi0gICAgICAgICAgIjAuMDY3MzM1LCAwLjEwNDA2NywgMC4zMTQ1NjMsIDAuNTAxNTIzLCAwLjc1MDE3LCAxLjI0NzMyLCAxLjU1NjIzIiwgXAotICAgICAgICAgICIwLjA2NzM3MSwgMC4xMDQwMjIsIDAuMzE0ODk0LCAwLjUwMDMxMSwgMC43NTAxNDgsIDEuMjQ1NTksIDEuNTU3NyIsIFwKLSAgICAgICAgICAiMC4wNjc0MzIsIDAuMTAzOTU1LCAwLjMxNDk2MywgMC41MDE0NzcsIDAuNzQ5MTEsIDEuMjQ1NjMsIDEuNTU2MDciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiU04iOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHByZXNldDsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDgxNzQ4LCAwLjEwMDE0NiwgMC4yMDQzMjIsIDAuMjk2MTk3LCAwLjQxODY2NSwgMC42NjM1NDMsIDAuODE2NzMyIiwgXAotICAgICAgICAgICIwLjA4OTcxMywgMC4xMDgxMTEsIDAuMjEyMjg1LCAwLjMwNDE2LCAwLjQyNjYyNywgMC42NzE0NzEsIDAuODI0NjkyIiwgXAotICAgICAgICAgICIwLjA5OTEwNSwgMC4xMTc1MDEsIDAuMjIxNjcsIDAuMzEzNTM3LCAwLjQzNjAyNywgMC42ODA5ODIsIDAuODM0MTA5IiwgXAotICAgICAgICAgICIwLjEwNjU2LCAwLjEyNDk2OSwgMC4yMjkxMzcsIDAuMzIxMDI4LCAwLjQ0MzQ3NSwgMC42ODg0NjIsIDAuODQxNTI2IiwgXAotICAgICAgICAgICIwLjExMjcwNiwgMC4xMzExMTYsIDAuMjM1Mjc5LCAwLjMyNzE0NCwgMC40NDk2MDgsIDAuNjk0NjM1LCAwLjg0NzY3OCIsIFwKLSAgICAgICAgICAiMC4xMjA1MTksIDAuMTM4OTE1LCAwLjI0MzEwNSwgMC4zMzQ5NSwgMC40NTc0NjYsIDAuNzAyMzgzLCAwLjg1NTQ5OCIsIFwKLSAgICAgICAgICAiMC4xMjYxODksIDAuMTQ0NTg1LCAwLjI0ODczMiwgMC4zNDA2MTcsIDAuNDYzMTI3LCAwLjcwODE3OCwgMC44NjExODgiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY5OTI4LCAwLjEwODM2OSwgMC4zMjgzNDQsIDAuNTIyNzExLCAwLjc4MTIzMSwgMS4zMDAwMSwgMS42MjM5OCIsIFwKLSAgICAgICAgICAiMC4wNjk5MTksIDAuMTA4MzUyLCAwLjMyODM1NSwgMC41MjI3MDMsIDAuNzgxNzUxLCAxLjI5OTA3LCAxLjYyNDE3IiwgXAotICAgICAgICAgICIwLjA2OTkzOCwgMC4xMDgzNiwgMC4zMjgzNTEsIDAuNTIyNjkyLCAwLjc4MTA1NCwgMS4yOTkwMiwgMS42MjQiLCBcCi0gICAgICAgICAgIjAuMDY5OTc1LCAwLjEwODM4OCwgMC4zMjgzNTEsIDAuNTIyNjk1LCAwLjc4MTE1OCwgMS4zMDAwNywgMS42MjQxNiIsIFwKLSAgICAgICAgICAiMC4wNjk5ODEsIDAuMTA4MzkyLCAwLjMyODMwOCwgMC41MjI2NzksIDAuNzgxNjk3LCAxLjI5OTEsIDEuNjI0MTQiLCBcCi0gICAgICAgICAgIjAuMDcwMDg2LCAwLjEwODI0OCwgMC4zMjgzNzcsIDAuNTIyNjYzLCAwLjc4MTc4OSwgMS4zMDAwNywgMS42MjQwMiIsIFwKLSAgICAgICAgICAiMC4wNzAwNDgsIDAuMTA4MzcyLCAwLjMyNzk2LCAwLjUyMjcwMSwgMC43ODE2ODQsIDEuMzAwMDQsIDEuNjI0MDkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA4ODkyLCAwLjAwODkwMSwgMC4wMDg5MTIsIDAuMDA4OTE0LCAwLjAwODkxOSwgMC4wMDg5MTcsIDAuMDA4OTIiLCBcCi0gICAgICAgICAgIjAuMDA4ODY5LCAwLjAwODg3OCwgMC4wMDg4OSwgMC4wMDg4OTEsIDAuMDA4ODkyLCAwLjAwODg5NCwgMC4wMDg4OTQiLCBcCi0gICAgICAgICAgIjAuMDA4OTU4LCAwLjAwODk2NiwgMC4wMDg5NzQsIDAuMDA4OTgsIDAuMDA4OTg0LCAwLjAwODk4NCwgMC4wMDg5ODUiLCBcCi0gICAgICAgICAgIjAuMDA5MDYyLCAwLjAwOTA3MSwgMC4wMDkwODQsIDAuMDA5MDg2LCAwLjAwOTA4NywgMC4wMDkwODksIDAuMDA5MDg4IiwgXAotICAgICAgICAgICIwLjAwOTE5NCwgMC4wMDkxOTksIDAuMDA5MjE3LCAwLjAwOTIxOSwgMC4wMDkyMiwgMC4wMDkyMjIsIDAuMDA5MjIxIiwgXAotICAgICAgICAgICIwLjAwOTQxMywgMC4wMDk0MjEsIDAuMDA5NDQsIDAuMDA5NDQxLCAwLjAwOTQ0MSwgMC4wMDk0NDMsIDAuMDA5NDQzIiwgXAotICAgICAgICAgICIwLjAwOTYxNCwgMC4wMDk1NzQsIDAuMDA5NjI3LCAwLjAwOTU4OCwgMC4wMDk2MzcsIDAuMDA5NTksIDAuMDA5NjQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDg4MjQsIDAuMDA4ODM1LCAwLjAwODg1MiwgMC4wMDg4NTUsIDAuMDA4ODU3LCAwLjAwODg1OCwgMC4wMDg4NTkiLCBcCi0gICAgICAgICAgIjAuMDA4ODE5LCAwLjAwODgzLCAwLjAwODg0NiwgMC4wMDg4NDksIDAuMDA4ODUxLCAwLjAwODg1MywgMC4wMDg4NTMiLCBcCi0gICAgICAgICAgIjAuMDA4OTIxLCAwLjAwODkzMywgMC4wMDg5NDksIDAuMDA4OTUzLCAwLjAwODk1NCwgMC4wMDg5NTYsIDAuMDA4OTU2IiwgXAotICAgICAgICAgICIwLjAwOTA0OSwgMC4wMDkwNjEsIDAuMDA5MDc3LCAwLjAwOTA4MSwgMC4wMDkwODMsIDAuMDA5MDg0LCAwLjAwOTA4NSIsIFwKLSAgICAgICAgICAiMC4wMDkxNzMsIDAuMDA5MTg1LCAwLjAwOTIwMSwgMC4wMDkyMDQsIDAuMDA5MjA2LCAwLjAwOTIwOCwgMC4wMDkyMDgiLCBcCi0gICAgICAgICAgIjAuMDA5NDMxLCAwLjAwOTQ0MiwgMC4wMDk0NTcsIDAuMDA5NDYxLCAwLjAwOTQ2MywgMC4wMDk0NjQsIDAuMDA5NDY1IiwgXAotICAgICAgICAgICIwLjAwOTYzMywgMC4wMDk2NDQsIDAuMDA5NjMxLCAwLjAwOTY2NCwgMC4wMDk2MzYsIDAuMDA5NjY4LCAwLjAwOTY2OCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTAwODUsIDAuMDEwMDk0LCAwLjAxMDEwNiwgMC4wMTAxMDgsIDAuMDEwMTEsIDAuMDEwMTE3LCAwLjAxMDExMSIsIFwKLSAgICAgICAgICAiMC4wMTAwNDcsIDAuMDEwMDU2LCAwLjAxMDA2OCwgMC4wMTAwNzEsIDAuMDEwMDcyLCAwLjAxMDA3MywgMC4wMTAwODIiLCBcCi0gICAgICAgICAgIjAuMDEwMDU1LCAwLjAxMDA2NSwgMC4wMTAwNzksIDAuMDEwMDgxLCAwLjAxMDA4MywgMC4wMTAwODQsIDAuMDEwMDg2IiwgXAotICAgICAgICAgICIwLjAxMDEzNSwgMC4wMTAxNDQsIDAuMDEwMTU4LCAwLjAxMDE2MSwgMC4wMTAxNjMsIDAuMDEwMTY0LCAwLjAxMDE2NCIsIFwKLSAgICAgICAgICAiMC4wMTAyMTMsIDAuMDEwMjIyLCAwLjAxMDIzNywgMC4wMTAyMzksIDAuMDEwMjQxLCAwLjAxMDI0MywgMC4wMTAyNDQiLCBcCi0gICAgICAgICAgIjAuMDEwMzg1LCAwLjAxMDM5NSwgMC4wMTA0MTUsIDAuMDEwNDE3LCAwLjAxMDQyLCAwLjAxMDQyMSwgMC4wMTA0MjIiLCBcCi0gICAgICAgICAgIjAuMDEwNTYxLCAwLjAxMDU2OSwgMC4wMTA1ODgsIDAuMDEwNTksIDAuMDEwNTk1LCAwLjAxMDU5NiwgMC4wMTA1OTciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoc2NhbGFyKSB7Ci0gICAgICAgIHZhbHVlcygiMCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oU0UpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTU1NDE5OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTU1NDE5OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTU1NDE3OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNzA4NywgMC4wMDcwODcsIDAuMDA3MTUxLCAwLjAwNzI1MSwgMC4wMDc0LCAwLjAwNzU2OSwgMC4wMDc3NjQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDkyMzgsIDAuMDA5MjM4LCAwLjAwOTM2MywgMC4wMDk1NDQsIDAuMDA5Nzg0LCAwLjAxMDE4OCwgMC4wMTA1NjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiU04iOwotICAgICAgc2RmX2NvbmQgOiAiU04gPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDEyNSwgLTAuMDA3NSwgLTAuMDAxMjUsIDAuMDA1LCAwLjAxMTI1LCAwLjAyMTI1LCAwLjAyMzc1IiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLCAwLjAwNjI1LCAwLjAxLCAwLjAxODc1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDI1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMCwgMC4wMDM3NSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAtMC4wMDI1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDAyNSwgMCIsIFwKLSAgICAgICAgICAiLTAuMDQ2MjUsIC0wLjAzNSwgLTAuMDI4NzUsIC0wLjAyMjUsIC0wLjAxNjI1LCAtMC4wMTI1LCAtMC4wMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjA0Mzc1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMjUsIC0wLjAxNSwgLTAuMDEyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAsIDAuMDA1LCAwLjAxNzUsIDAuMDIzNzUsIDAuMDIzNzUsIDAuMDMzNzUsIDAuMDM2MjUiLCBcCi0gICAgICAgICAgIi0wLjAxMTI1LCAwLCAwLjAwNjI1LCAwLjAxMjUsIDAuMDE4NzUsIDAuMDI4NzUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjAxNzUsIC0wLjAxMjUsIDAsIDAuMDA2MjUsIDAuMDEyNSwgMC4wMTYyNSwgMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAsIDAuMDA2MjUsIDAuMDEsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMCwgMC4wMDM3NSwgMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wMzM3NSwgLTAuMDI4NzUsIC0wLjAyMjUsIC0wLjAxNjI1LCAtMC4wMSwgMCwgMC4wMDI1IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA4NzUsIC0wLjAwNjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJTTiA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNSwgMC4wNDUsIDAuMDMyNSwgMC4wMjYyNSwgMC4wMiwgMC4wMTYyNSwgMC4wMTM3NSIsIFwKLSAgICAgICAgICAiMC4wNjEyNSwgMC4wNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyMTI1LCAwLjAxODc1IiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDU2MjUsIDAuMDUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzM3NSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4wNzM3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1LCAwLjA0Mzc1LCAwLjA0LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIjAuMDgsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNTYyNSwgMC4wNDYyNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4wODM3NSwgMC4wNzg3NSwgMC4wNzI1LCAwLjA2NjI1LCAwLjA2LCAwLjA1NjI1LCAwLjA1Mzc1IiwgXAotICAgICAgICAgICIwLjA5MjUsIDAuMDg3NSwgMC4wNzUsIDAuMDc1LCAwLjA2ODc1LCAwLjA2NSwgMC4wNjI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDYyNSwgMC4wNTEyNSwgMC4wNDUsIDAuMDM4NzUsIDAuMDM4NzUsIDAuMDM1LCAwLjAzMjUiLCBcCi0gICAgICAgICAgIjAuMDY3NSwgMC4wNjI1LCAwLjA1LCAwLjA1LCAwLjA0Mzc1LCAwLjA0LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIjAuMDczNzUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNSwgMC4wNDYyNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4wOCwgMC4wNjg3NSwgMC4wNjI1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDUyNSwgMC4wNSIsIFwKLSAgICAgICAgICAiMC4wODYyNSwgMC4wNzUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNjI1LCAwLjA1ODc1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICIwLjA5LCAwLjA3ODc1LCAwLjA3MjUsIDAuMDcyNSwgMC4wNjYyNSwgMC4wNjI1LCAwLjA2IiwgXAotICAgICAgICAgICIwLjA5MjUsIDAuMDg3NSwgMC4wODEyNSwgMC4wNzUsIDAuMDY4NzUsIDAuMDY1LCAwLjA2MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFNJKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA5NTc0ODk7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwOTU1NTQ5OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDk1NzQ4OTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDQ0MTksIDAuMDA0Mzc0LCAwLjAwNDQsIDAuMDA0NDQ2LCAwLjAwNDUzMSwgMC4wMDQ2NzksIDAuMDA0ODczIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA3ODc2LCAwLjAwNzg1LCAwLjAwNzg3NSwgMC4wMDc5MjMsIDAuMDA3OTkzLCAwLjAwODE0NywgMC4wMDgyOTgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiU0UmU04iOwotICAgICAgc2RmX2NvbmQgOiAiU0VfRVFfMV9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAyNSwgLTAuMDIsIC0wLjAxMzc1LCAtMC4wMTM3NSwgLTAuMDA3NSwgLTAuMDAzNzUsIC0wLjAwMTI1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwODc1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDI1LCAtMC4wMTUsIC0wLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAzMTI1LCAtMC4wMjc1LCAtMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzNzUsIC0wLjAzMzc1LCAtMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjA1ODc1LCAtMC4wNTM3NSwgLTAuMDQ3NSwgLTAuMDQ3NSwgLTAuMDQxMjUsIC0wLjAzNzUsIC0wLjAzNSIsIFwKLSAgICAgICAgICAiLTAuMDY3NSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNSwgLTAuMDQ2MjUsIC0wLjA0Mzc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDA2MjUsIC0wLjAwMTI1LCAwLjAxMTI1LCAwLjAxNzUsIDAuMDIzNzUsIDAuMDI3NSwgMC4wMzYyNSIsIFwKLSAgICAgICAgICAiLTAuMDExMjUsIC0wLjAwNjI1LCAwLjAwNjI1LCAwLjAxMjUsIDAuMDEyNSwgMC4wMjI1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDE3NSwgLTAuMDEyNSwgMCwgMC4wMDYyNSwgMC4wMDYyNSwgMC4wMTYyNSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxODc1LCAtMC4wMDYyNSwgMCwgMC4wMDYyNSwgMC4wMSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMCwgMC4wMDM3NSwgMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wMzM3NSwgLTAuMDI4NzUsIC0wLjAxNjI1LCAtMC4wMSwgLTAuMDEsIDAsIDAuMDAyNSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDI1LCAwIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJTRSZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJTRV9FUV8xX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDUsIDAuMDM4NzUsIDAuMDMyNSwgMC4wMjYyNSwgMC4wMjYyNSwgMC4wMjI1LCAwLjAyIiwgXAotICAgICAgICAgICIwLjA1NSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDI3NSwgMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMDYxMjUsIDAuMDU2MjUsIDAuMDUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzM3NSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4wNjc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDUsIDAuMDQzNzUsIDAuMDQsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiMC4wNzM3NSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1LCAwLjA0NjI1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjA4Mzc1LCAwLjA3ODc1LCAwLjA2NjI1LCAwLjA2NjI1LCAwLjA2LCAwLjA1NjI1LCAwLjA1Mzc1IiwgXAotICAgICAgICAgICIwLjA5MjUsIDAuMDgxMjUsIDAuMDc1LCAwLjA2ODc1LCAwLjA2ODc1LCAwLjA2NSwgMC4wNjI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQzNzUsIDAuMDMyNSwgMC4wMjYyNSwgMC4wMiwgMC4wMTM3NSwgMC4wMDM3NSwgMC4wMDEyNSIsIFwKLSAgICAgICAgICAiMC4wNDg3NSwgMC4wNDM3NSwgMC4wMzEyNSwgMC4wMjUsIDAuMDE4NzUsIDAuMDA4NzUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMDU1LCAwLjA1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDI1LCAwLjAxNSwgMC4wMTI1IiwgXAotICAgICAgICAgICIwLjA2MTI1LCAwLjA1NjI1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDIxMjUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMDY3NSwgMC4wNTYyNSwgMC4wNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAyNzUsIDAuMDI1IiwgXAotICAgICAgICAgICIwLjA3NzUsIDAuMDY2MjUsIDAuMDYsIDAuMDQ3NSwgMC4wNDEyNSwgMC4wMzc1LCAwLjAyODc1IiwgXAotICAgICAgICAgICIwLjA4LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDUsIDAuMDQsIDAuMDM3NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oU04pICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTcyMDYyOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTU4MDk1OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTcyMDYyOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDg0MiwgMC4wMDA4NDEsIDAuMDAwODQxLCAwLjAwMDg0MSwgMC4wMDA4NDEsIDAuMDAwODQsIDAuMDAwODQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA4NzEsIDAuMDAwODUzLCAwLjAwMDg0NywgMC4wMDA4NDUsIDAuMDAwODQ0LCAwLjAwMDg0NCwgMC4wMDA4NDMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiU04iOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFEJiFTRSYhU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1NFX0VRXzBfQU5fU0lfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjA4MTc0OCwgMC4wODk3MTMsIDAuMDk5MTA0LCAwLjEwNjU1OSwgMC4xMTI3MDYsIDAuMTIwNTE5LCAwLjEyNjE4OSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJlY292ZXJ5X3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUQmIVNFJiFTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fU0VfRVFfMF9BTl9TSV9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHJlY292ZXJ5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLCAtMC4wMTEyNSwgLTAuMDIzNzUsIC0wLjAzLCAtMC4wMzYyNSwgLTAuMDQ2MjUsIC0wLjA1NSIsIFwKLSAgICAgICAgICAiMC4wMDUsIC0wLjAwNjI1LCAtMC4wMTg3NSwgLTAuMDI1LCAtMC4wMzEyNSwgLTAuMDQxMjUsIC0wLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjAxMTI1LCAwLCAtMC4wMDYyNSwgLTAuMDE4NzUsIC0wLjAyNSwgLTAuMDI4NzUsIC0wLjAzNzUiLCBcCi0gICAgICAgICAgIjAuMDE3NSwgMC4wMDYyNSwgMCwgLTAuMDA2MjUsIC0wLjAxMjUsIC0wLjAyMjUsIC0wLjAzMTI1IiwgXAotICAgICAgICAgICIwLjAyMzc1LCAwLjAxODc1LCAwLjAwNjI1LCAwLCAtMC4wMDYyNSwgLTAuMDE2MjUsIC0wLjAyNSIsIFwKLSAgICAgICAgICAiMC4wMzM3NSwgMC4wMjg3NSwgMC4wMTYyNSwgMC4wMSwgMC4wMDM3NSwgLTAuMDA2MjUsIC0wLjAxNSIsIFwKLSAgICAgICAgICAiMC4wNDI1LCAwLjAzNzUsIDAuMDI1LCAwLjAxODc1LCAwLjAxMjUsIDAuMDAyNSwgLTAuMDA2MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiByZW1vdmFsX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUQmIVNFJiFTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fU0VfRVFfMF9BTl9TSV9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHJlbW92YWxfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDMxMjUsIDAuMDM2MjUsIDAuMDQ4NzUsIDAuMDU1LCAwLjA2MTI1LCAwLjA2NSwgMC4wNzM3NSIsIFwKLSAgICAgICAgICAiMC4wMiwgMC4wMzEyNSwgMC4wMzc1LCAwLjA1LCAwLjA1NjI1LCAwLjA2LCAwLjA2ODc1IiwgXAotICAgICAgICAgICIwLjAxMzc1LCAwLjAyNSwgMC4wMzEyNSwgMC4wMzc1LCAwLjA0Mzc1LCAwLjA1Mzc1LCAwLjA2MjUiLCBcCi0gICAgICAgICAgIjAuMDA3NSwgMC4wMTg3NSwgMC4wMjUsIDAuMDMxMjUsIDAuMDM3NSwgMC4wNDc1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICIwLjAwMTI1LCAwLjAxMjUsIDAuMDE4NzUsIDAuMDMxMjUsIDAuMDMxMjUsIDAuMDQxMjUsIDAuMDUiLCBcCi0gICAgICAgICAgIi0wLjAwMjUsIDAuMDAyNSwgMC4wMTUsIDAuMDIxMjUsIDAuMDI3NSwgMC4wMzEyNSwgMC4wNCIsIFwKLSAgICAgICAgICAiLTAuMDExMjUsIDAsIDAuMDA2MjUsIDAuMDEyNSwgMC4wMTg3NSwgMC4wMjg3NSwgMC4wMzEyNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IFNERkZTUkhRWDEgKgotICogLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoU0RGRlNSSFFYMSkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAxLjM4MjAzOwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIGZmIChOMzUsUUJJTlQpIHsKLSAgICBuZXh0X3N0YXRlIDogIigoU0UgU0kpICsgKCFTRSBEKSkiOwotICAgIGNsb2NrZWRfb24gOiAiQ0siOwotICAgIGNsZWFyIDogIighUk4pIjsKLSAgICBwcmVzZXQgOiAiKCFTTikiOwotICAgIGNsZWFyX3ByZXNldF92YXIxIDogSDsKLSAgfQotICBwaW4oQ0spICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY4NDY0OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDY4NDY0OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDY4NDYwODsKLSAgICBjbG9jayA6IHRydWU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA0NTI0LCAwLjAwNDUxNSwgMC4wMDQ1NjEsIDAuMDA0NjcsIDAuMDA0Nzc1LCAwLjAwNDk5MSwgMC4wMDUyMDQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMTEzMzMsIDAuMDExMzI4LCAwLjAxMTQxNywgMC4wMTE1MjEsIDAuMDExNjcxLCAwLjAxMTg1OSwgMC4wMTIwNDEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFEJlJOJiFTRSYhU0kmU04iOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1JOX0VRXzFfQU5fU0VfRVFfMF9BTl9TSV9FUV8wX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4xMTY1NjIsIDAuMTI0ODA4LCAwLjEzNDY2LCAwLjE0Mjc4MSwgMC4xNDk4NzEsIDAuMTU4NzY4LCAwLjE2NTY0MyIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDgzMzcsIDAuMDkxMzMsIDAuMTAxMzA1LCAwLjEwOTQwOSwgMC4xMTYwMjIsIDAuMTI0NzQzLCAwLjEzMDk5MyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwOTI5MjU4OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDkyNzM0NTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA5MjkyNTg7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA1NTM5LCAwLjAwNTQ5NSwgMC4wMDU1MDgsIDAuMDA1NTUyLCAwLjAwNTYzMSwgMC4wMDU3NzgsIDAuMDA1OTIzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA3NjU0LCAwLjAwNzYyNSwgMC4wMDc2NDMsIDAuMDA3Njg5LCAwLjAwNzc1MSwgMC4wMDc4OTksIDAuMDA4MDQxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlJOJiFTRSZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJSTl9FUV8xX0FOX1NFX0VRXzBfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMzEyNSwgLTAuMDIsIC0wLjAxMzc1LCAtMC4wMTM3NSwgLTAuMDA3NSwgLTAuMDAzNzUsIC0wLjAwMTI1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwODc1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDI1LCAtMC4wMTUsIC0wLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAzMTI1LCAtMC4wMjc1LCAtMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzNzUsIC0wLjAzMzc1LCAtMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjA2NSwgLTAuMDYsIC0wLjA1Mzc1LCAtMC4wNDc1LCAtMC4wNDEyNSwgLTAuMDM3NSwgLTAuMDM1IiwgXAotICAgICAgICAgICItMC4wNjc1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNDYyNSwgLTAuMDQzNzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLCAwLjAwNSwgMC4wMTEyNSwgMC4wMjM3NSwgMC4wMjM3NSwgMC4wMzM3NSwgMC4wMzYyNSIsIFwKLSAgICAgICAgICAiLTAuMDExMjUsIDAsIDAuMDA2MjUsIDAuMDEyNSwgMC4wMTg3NSwgMC4wMjg3NSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDE3NSwgLTAuMDA2MjUsIDAsIDAuMDA2MjUsIDAuMDEyNSwgMC4wMjI1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDE3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAuMDA2MjUsIDAuMDA2MjUsIDAuMDE2MjUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAsIDAuMDA2MjUsIDAuMDEsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjAyNzUsIC0wLjAyMjUsIC0wLjAxNjI1LCAtMC4wMSwgLTAuMDAzNzUsIDAuMDA2MjUsIDAuMDA4NzUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMC4wMDM3NSwgMC4wMDYyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiUk4mIVNFJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIlJOX0VRXzFfQU5fU0VfRVFfMF9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2ODc1LCAwLjA1NzUsIDAuMDUxMjUsIDAuMDQ1LCAwLjAzODc1LCAwLjAyODc1LCAwLjAyNjI1IiwgXAotICAgICAgICAgICIwLjA3Mzc1LCAwLjA2ODc1LCAwLjA1NjI1LCAwLjA1LCAwLjA0Mzc1LCAwLjAzMzc1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICIwLjA4NjI1LCAwLjA3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1LCAwLjA0NjI1LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIjAuMDkyNSwgMC4wODEyNSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1MjUsIDAuMDUiLCBcCi0gICAgICAgICAgIjAuMDk4NzUsIDAuMDg3NSwgMC4wNzUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNTg3NSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiMC4xMDI1LCAwLjA5NzUsIDAuMDg1LCAwLjA3ODc1LCAwLjA3MjUsIDAuMDY4NzUsIDAuMDYiLCBcCi0gICAgICAgICAgIjAuMTExMjUsIDAuMSwgMC4wOTM3NSwgMC4wODc1LCAwLjA4MTI1LCAwLjA3MTI1LCAwLjA2ODc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQzNzUsIDAuMDM4NzUsIDAuMDI2MjUsIDAuMDIsIDAuMDEzNzUsIDAuMDAzNzUsIC0wLjAwNSIsIFwKLSAgICAgICAgICAiMC4wNDg3NSwgMC4wNDM3NSwgMC4wMzEyNSwgMC4wMjUsIDAuMDE4NzUsIDAuMDA4NzUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMDYxMjUsIDAuMDUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMjUsIDAuMDE1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMDY3NSwgMC4wNTYyNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyMTI1LCAwLjAxODc1IiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDYyNSwgMC4wNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAyNzUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMDc3NSwgMC4wNjYyNSwgMC4wNiwgMC4wNDc1LCAwLjA0MTI1LCAwLjAzNzUsIDAuMDI4NzUiLCBcCi0gICAgICAgICAgIjAuMDgsIDAuMDc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDUsIDAuMDQsIDAuMDMxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFEpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4zNDAzMzk7Ci0gICAgZnVuY3Rpb24gOiAiTjM1IjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBub25fdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJpc2luZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDU0NjIsIDAuMTI0MTAzLCAwLjIyOTU0NywgMC4zMjI2LCAwLjQ0NjYzOSwgMC42OTQ4NzEsIDAuODQ5ODc4IiwgXAotICAgICAgICAgICIwLjExMzU5NywgMC4xMzIyNDEsIDAuMjM3NjksIDAuMzMwNjk0LCAwLjQ1NDg3OCwgMC43MDMwMzksIDAuODU4MDQyIiwgXAotICAgICAgICAgICIwLjEyMzQwMywgMC4xNDIwNDMsIDAuMjQ3NDcxLCAwLjM0MDUzNiwgMC40NjQ2MDMsIDAuNzEyODgxLCAwLjg2Nzk5MSIsIFwKLSAgICAgICAgICAiMC4xMzE0MzcsIDAuMTUwMDgsIDAuMjU1NTI2LCAwLjM0ODU3MywgMC40NzI2MzUsIDAuNzIwODIsIDAuODc1OTAyIiwgXAotICAgICAgICAgICIwLjEzODQ1OCwgMC4xNTcxLCAwLjI2MjU1MSwgMC4zNTU2MjcsIDAuNDc5NzIyLCAwLjcyNzgwNiwgMC44ODI5NyIsIFwKLSAgICAgICAgICAiMC4xNDc0MDcsIDAuMTY2MDI5LCAwLjI3MTQ5MSwgMC4zNjQ1MjIsIDAuNDg4NTkxLCAwLjczNjc2OCwgMC44OTE4NCIsIFwKLSAgICAgICAgICAiMC4xNTQxOTgsIDAuMTcyODU4LCAwLjI3ODM3MiwgMC4zNzE0MDEsIDAuNDk1NDI3LCAwLjc0MzY4LCAwLjg5ODciKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDcxMzE0LCAwLjEwOTg4NywgMC4zMzEwNjcsIDAuNTI3MzkzLCAwLjc4ODczMywgMS4zMTE4LCAxLjYzODU0IiwgXAotICAgICAgICAgICIwLjA3MTMzOCwgMC4xMDk4NTIsIDAuMzMxMTYzLCAwLjUyNjg0NCwgMC43ODg5NzMsIDEuMzExODEsIDEuNjM4NTMiLCBcCi0gICAgICAgICAgIjAuMDcxMzM0LCAwLjEwOTgyNywgMC4zMzExNjIsIDAuNTI3NDE2LCAwLjc4ODkzNSwgMS4zMDk1NywgMS42MzYzMiIsIFwKLSAgICAgICAgICAiMC4wNzEzMjksIDAuMTA5ODg0LCAwLjMzMTE3NSwgMC41Mjc0MjUsIDAuNzg4MjE5LCAxLjMxMTc1LCAxLjYzODU0IiwgXAotICAgICAgICAgICIwLjA3MTMxNSwgMC4xMDk4NjQsIDAuMzMxMTY1LCAwLjUyNzQ2OSwgMC43ODg5NDYsIDEuMzExOCwgMS42Mzg1NCIsIFwKLSAgICAgICAgICAiMC4wNzEzMjYsIDAuMTA5ODc0LCAwLjMzMTA5LCAwLjUyNzM0OCwgMC43ODgyNTIsIDEuMzExNTksIDEuNjM4MzgiLCBcCi0gICAgICAgICAgIjAuMDcxNDQ1LCAwLjEwOTgyMiwgMC4zMzExLCAwLjUyNzQwMywgMC43ODg4MDgsIDEuMzExNjEsIDEuNjM4MzgiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTE2NTYyLCAwLjEzNDcwMiwgMC4yMzcyNDksIDAuMzI3NzA3LCAwLjQ0ODM3NSwgMC42ODk1NDMsIDAuODQwMzM1IiwgXAotICAgICAgICAgICIwLjEyNDgwOCwgMC4xNDI5NDcsIDAuMjQ1NDkzLCAwLjMzNTk1MywgMC40NTY1NzIsIDAuNjk3Nzk3LCAwLjg0ODY5MiIsIFwKLSAgICAgICAgICAiMC4xMzQ2NjEsIDAuMTUyODA2LCAwLjI1NTM1OCwgMC4zNDU4MTgsIDAuNDY2NDM3LCAwLjcwNzY1OSwgMC44NTg0NzkiLCBcCi0gICAgICAgICAgIjAuMTQyNzgyLCAwLjE2MDkyMSwgMC4yNjM0NjcsIDAuMzUzOTI3LCAwLjQ3NDU0NywgMC43MTU3NjksIDAuODY2NTg0IiwgXAotICAgICAgICAgICIwLjE0OTg3MywgMC4xNjgwMTcsIDAuMjcwNTYzLCAwLjM2MTAyNiwgMC40ODE2NTcsIDAuNzIyOTQzLCAwLjg3MzYyIiwgXAotICAgICAgICAgICIwLjE1ODc3LCAwLjE3NjkxOCwgMC4yNzk0NjEsIDAuMzY5OTE4LCAwLjQ5MDU5NCwgMC43MzE3NjksIDAuODgyNDk2IiwgXAotICAgICAgICAgICIwLjE2NTcxNiwgMC4xODM4NjYsIDAuMjg2NDAyLCAwLjM3Njg3MSwgMC40OTc1MDksIDAuNzM4NzQzLCAwLjg4OTUxMiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjc4NDEsIDAuMTA0NDc1LCAwLjMxNTE3OCwgMC41MDEwMTQsIDAuNzUwMzY2LCAxLjI0NzY0LCAxLjU1ODU0IiwgXAotICAgICAgICAgICIwLjA2NzgyMiwgMC4xMDQ0NDIsIDAuMzE1MTg1LCAwLjUwMDk5MiwgMC43NTAyMTQsIDEuMjQ2MDEsIDEuNTU1NjciLCBcCi0gICAgICAgICAgIjAuMDY3ODU4LCAwLjEwNDQyOSwgMC4zMTUyMDcsIDAuNTAwOTcyLCAwLjc1MDAyMiwgMS4yNDU5MSwgMS41NTU5OCIsIFwKLSAgICAgICAgICAiMC4wNjc4MiwgMC4xMDQzNjksIDAuMzE1MTgsIDAuNTAwOTksIDAuNzQ5MjI0LCAxLjI0NTk2LCAxLjU1NTg5IiwgXAotICAgICAgICAgICIwLjA2NzgzLCAwLjEwNDQzNywgMC4zMTUxNzUsIDAuNTAwOTksIDAuNzQ5Mzc5LCAxLjI0NzkzLCAxLjU1ODMyIiwgXAotICAgICAgICAgICIwLjA2Nzg0OCwgMC4xMDQ0MjQsIDAuMzE1MTUsIDAuNTAwOTUxLCAwLjc0ODc4LCAxLjI0NzY4LCAxLjU1ODM1IiwgXAotICAgICAgICAgICIwLjA2Nzc5MiwgMC4xMDQ0OTMsIDAuMzE1MTE1LCAwLjUwMDk1NCwgMC43NTAzNjQsIDEuMjQ3NjgsIDEuNTU4NDkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUk4iOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGNsZWFyOwotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMzA2MjYsIDAuMTQ4Nzc4LCAwLjI1MTMyNCwgMC4zNDE3ODgsIDAuNDYyNDQ1LCAwLjcwMzYyNiwgMC44NTQzODYiLCBcCi0gICAgICAgICAgIjAuMTM4NTMzLCAwLjE1NjY3OSwgMC4yNTkyMjQsIDAuMzQ5Njk2LCAwLjQ3MDMzNCwgMC43MTE1MywgMC44NjIzNCIsIFwKLSAgICAgICAgICAiMC4xNDcwMzUsIDAuMTY1MTc5LCAwLjI2NzcyNSwgMC4zNTgxOTUsIDAuNDc4ODA1LCAwLjcyMDExNiwgMC44NzA3OTUiLCBcCi0gICAgICAgICAgIjAuMTUzNDA1LCAwLjE3MTU0OSwgMC4yNzQwOTMsIDAuMzY0NTYsIDAuNDg1MTg4LCAwLjcyNjQyNywgMC44NzczIiwgXAotICAgICAgICAgICIwLjE1ODQ5NCwgMC4xNzY2NSwgMC4yNzkxOTcsIDAuMzY5NjU0LCAwLjQ5MDMxOSwgMC43MzE0OTYsIDAuODgyMzEiLCBcCi0gICAgICAgICAgIjAuMTY1MjM0LCAwLjE4MzM3NywgMC4yODU5MjcsIDAuMzc2MzkyLCAwLjQ5NzA0OSwgMC43MzgyMjMsIDAuODg4OTg3IiwgXAotICAgICAgICAgICIwLjE3MDE4OCwgMC4xODgzMjUsIDAuMjkwODgsIDAuMzgxMzcyLCAwLjUwMiwgMC43NDMxNjMsIDAuODkzOTgyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2Nzg3NiwgMC4xMDQ0NTgsIDAuMzE1MjgsIDAuNTAxMDE4LCAwLjc1MDQyNywgMS4yNDc0LCAxLjU1NjQzIiwgXAotICAgICAgICAgICIwLjA2NzkxNywgMC4xMDQ0MDQsIDAuMzE1MjQ2LCAwLjUwMTA3NywgMC43NTA1MjgsIDEuMjQ3NzIsIDEuNTU2OCIsIFwKLSAgICAgICAgICAiMC4wNjc5MTIsIDAuMTA0NDcyLCAwLjMxNTI0NSwgMC41MDEwNTcsIDAuNzUwNDksIDEuMjQ4MTIsIDEuNTU4MzgiLCBcCi0gICAgICAgICAgIjAuMDY3OTE4LCAwLjEwNDQ3MSwgMC4zMTUyNDYsIDAuNTAxMDYsIDAuNzUwNDIsIDEuMjQ4MDcsIDEuNTU2NDkiLCBcCi0gICAgICAgICAgIjAuMDY3ODk5LCAwLjEwNDQ2MiwgMC4zMTUyNTIsIDAuNTAxNzcxLCAwLjc1MDQzNCwgMS4yNDc4NiwgMS41NTkwMSIsIFwKLSAgICAgICAgICAiMC4wNjc4NTEsIDAuMTA0NDQsIDAuMzE1MjU1LCAwLjUwMTIxMSwgMC43NTA0NTgsIDEuMjQ3ODMsIDEuNTU4MDMiLCBcCi0gICAgICAgICAgIjAuMDY3ODUsIDAuMTA0NDExLCAwLjMxNTMxMiwgMC41MDE3ODEsIDAuNzUwNDUzLCAxLjI0Nzg0LCAxLjU1ODk4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiBwcmVzZXQ7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5MzQ0NiwgMC4xMTIwNzgsIDAuMjE3NTUxLCAwLjMxMDYzMiwgMC40MzQ2OTQsIDAuNjgyNzYzLCAwLjgzNzg0IiwgXAotICAgICAgICAgICIwLjEwMDA4NCwgMC4xMTg3MTUsIDAuMjI0MTQxLCAwLjMxNzI0NCwgMC40NDEzMjcsIDAuNjg5NDU0LCAwLjg0NDUiLCBcCi0gICAgICAgICAgIjAuMTEwMDY4LCAwLjEyODcwNywgMC4yMzQxNTUsIDAuMzI3MjI2LCAwLjQ1MTI4LCAwLjY5OTUzNCwgMC44NTQ1MTQiLCBcCi0gICAgICAgICAgIjAuMTE4ODI1LCAwLjEzNzQ0OSwgMC4yNDI5MDgsIDAuMzM1OTYyLCAwLjQ2MDA1OCwgMC43MDgxMjEsIDAuODYzMjAxIiwgXAotICAgICAgICAgICIwLjEyNjA2MiwgMC4xNDQ2OTUsIDAuMjUwMTQ4LCAwLjM0MzE5NiwgMC40NjczMDksIDAuNzE1MzU3LCAwLjg3MDQzMyIsIFwKLSAgICAgICAgICAiMC4xMzU0MzEsIDAuMTU0MDY2LCAwLjI1OTUwNiwgMC4zNTI1NTksIDAuNDc2NjY5LCAwLjcyNDc4MSwgMC44Nzk3ODQiLCBcCi0gICAgICAgICAgIjAuMTQyNDIxLCAwLjE2MTA0MywgMC4yNjY1MDUsIDAuMzU5NTM5LCAwLjQ4MzcwMSwgMC43MzE3MzIsIDAuODg2NzciKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDcxMDkzLCAwLjEwOTY5MywgMC4zMzE0MzksIDAuNTI3NTA0LCAwLjc4ODg5OCwgMS4zMTE2MSwgMS42Mzg3MyIsIFwKLSAgICAgICAgICAiMC4wNzEwOTgsIDAuMTA5Njg5LCAwLjMzMTQyMSwgMC41Mjc0OTgsIDAuNzg4OSwgMS4zMTE4NywgMS42Mzg2MiIsIFwKLSAgICAgICAgICAiMC4wNzEwOTIsIDAuMTA5Njg2LCAwLjMzMTQwMywgMC41Mjc1MzUsIDAuNzg4OTQxLCAxLjMxMTkyLCAxLjYzODQ2IiwgXAotICAgICAgICAgICIwLjA3MTEwOCwgMC4xMDk3MTgsIDAuMzMxNDI5LCAwLjUyNzUzNSwgMC43ODg5MTQsIDEuMzExNTgsIDEuNjM4NjEiLCBcCi0gICAgICAgICAgIjAuMDcxMTc1LCAwLjEwOTczOCwgMC4zMzE0ODUsIDAuNTI3NTM1LCAwLjc4ODk0LCAxLjMxMTU3LCAxLjYzODQ3IiwgXAotICAgICAgICAgICIwLjA3MTI0MiwgMC4xMDk3NTgsIDAuMzMxNTE1LCAwLjUyNzQ5NiwgMC43ODg4NjcsIDEuMzExNjQsIDEuNjM4NTQiLCBcCi0gICAgICAgICAgIjAuMDcxMzg1LCAwLjEwOTgyMywgMC4zMzEzNywgMC41Mjc1MDcsIDAuNzg4MjEsIDEuMzExNTYsIDEuNjM4MjkiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTE1NTksIDAuMTMzNzM5LCAwLjIzNjI4MiwgMC4zMjY3NTQsIDAuNDQ3MzgxLCAwLjY4ODYyNiwgMC44Mzk0MDEiLCBcCi0gICAgICAgICAgIjAuMTIyMTAyLCAwLjE0MDI1MSwgMC4yNDI3OTYsIDAuMzMzMjc5LCAwLjQ1MzkyNywgMC42OTUwOTUsIDAuODQ1ODY2IiwgXAotICAgICAgICAgICIwLjEyOTY4NSwgMC4xNDc4MzMsIDAuMjUwMzc1LCAwLjM0MDg0NiwgMC40NjE1MTksIDAuNzAyNjg2LCAwLjg1MzQ0MiIsIFwKLSAgICAgICAgICAiMC4xMzcxMDEsIDAuMTU1MjUsIDAuMjU3ODA1LCAwLjM0ODI2MywgMC40Njg5MjksIDAuNzEwMDk1LCAwLjg2MDg2NiIsIFwKLSAgICAgICAgICAiMC4xNDQwNjYsIDAuMTYyMjAzLCAwLjI2NDc0OCwgMC4zNTUyNDMsIDAuNDc1ODkyLCAwLjcxNzA1NywgMC44Njc4MTgiLCBcCi0gICAgICAgICAgIjAuMTUzOTMsIDAuMTcyMDY5LCAwLjI3NDYxMiwgMC4zNjUwNzQsIDAuNDg1NjkzLCAwLjcyNjk1MywgMC44Nzc3OTgiLCBcCi0gICAgICAgICAgIjAuMTYxNDg4LCAwLjE3OTY0NiwgMC4yODIxODcsIDAuMzcyNjQ1LCAwLjQ5MzI4OCwgMC43MzQ1NDksIDAuODg1Mjc0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2NzkzMiwgMC4xMDQ0NTYsIDAuMzE1MjU5LCAwLjUwMTYwMSwgMC43NTAzNzYsIDEuMjQ4MTIsIDEuNTU2NTMiLCBcCi0gICAgICAgICAgIjAuMDY3ODkxLCAwLjEwNDQyMiwgMC4zMTUyMzYsIDAuNTAxNjQ5LCAwLjc1MDQwMywgMS4yNDc4NSwgMS41NTYzNiIsIFwKLSAgICAgICAgICAiMC4wNjc5MTIsIDAuMTA0NDI3LCAwLjMxNTI0NiwgMC41MDEwNTcsIDAuNzUwNDczLCAxLjI0NzkyLCAxLjU1ODEzIiwgXAotICAgICAgICAgICIwLjA2Nzg5MiwgMC4xMDQ0NjQsIDAuMzE1MjgyLCAwLjUwMTcyNSwgMC43NTA0MTMsIDEuMjQ3ODQsIDEuNTU2MzIiLCBcCi0gICAgICAgICAgIjAuMDY3OTAzLCAwLjEwNDQzNSwgMC4zMTUyMzYsIDAuNTAxNzg1LCAwLjc1MDQyNCwgMS4yNDc5MSwgMS41NTY0IiwgXAotICAgICAgICAgICIwLjA2ODAwOSwgMC4xMDQ0NzIsIDAuMzE1MjQ5LCAwLjUwMTc2MywgMC43NTA0NTksIDEuMjQ4MDUsIDEuNTU4NDIiLCBcCi0gICAgICAgICAgIjAuMDY4MTEsIDAuMTA0NTE0LCAwLjMxNTIwMSwgMC41MDE1NjYsIDAuNzUwNDk0LCAxLjI0ODE4LCAxLjU1Nzk3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMDQxMiwgMC4wMTA0MTUsIDAuMDEwNDE3LCAwLjAxMDQxNywgMC4wMTA0MTcsIDAuMDEwNDIxLCAwLjAxMDQyMSIsIFwKLSAgICAgICAgICAiMC4wMTAzOSwgMC4wMTAzOTIsIDAuMDEwMzk1LCAwLjAxMDM5NiwgMC4wMTAzOTYsIDAuMDEwMzk4LCAwLjAxMDM5OCIsIFwKLSAgICAgICAgICAiMC4wMTA0NTksIDAuMDEwNDYsIDAuMDEwNDYzLCAwLjAxMDQ2MywgMC4wMTA0NjQsIDAuMDEwNDY0LCAwLjAxMDQ2NCIsIFwKLSAgICAgICAgICAiMC4wMTA1ODgsIDAuMDEwNTkxLCAwLjAxMDU5NCwgMC4wMTA1OTQsIDAuMDEwNTk0LCAwLjAxMDU5NCwgMC4wMTA1OTYiLCBcCi0gICAgICAgICAgIjAuMDEwNjcyLCAwLjAxMDY3NCwgMC4wMTA2NzcsIDAuMDEwNjc3LCAwLjAxMDY3OCwgMC4wMTA2NzgsIDAuMDEwNjc4IiwgXAotICAgICAgICAgICIwLjAxMDkxNSwgMC4wMTA5MTMsIDAuMDEwOTE4LCAwLjAxMDkyLCAwLjAxMDkyLCAwLjAxMDkyMSwgMC4wMTA5MiIsIFwKLSAgICAgICAgICAiMC4wMTEwNTEsIDAuMDExMDgyLCAwLjAxMTA4OSwgMC4wMTEwODUsIDAuMDExMDU3LCAwLjAxMTA4NiwgMC4wMTEwODQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDk3NjYsIDAuMDA5NzczLCAwLjAwOTc4MiwgMC4wMDk3ODQsIDAuMDA5Nzg1LCAwLjAwOTc4NSwgMC4wMDk3ODYiLCBcCi0gICAgICAgICAgIjAuMDA5NzU2LCAwLjAwOTc2NCwgMC4wMDk3NzMsIDAuMDA5Nzc1LCAwLjAwOTc3NiwgMC4wMDk3NzYsIDAuMDA5Nzc2IiwgXAotICAgICAgICAgICIwLjAwOTg0OSwgMC4wMDk4NTYsIDAuMDA5ODY0LCAwLjAwOTg2NiwgMC4wMDk4NjcsIDAuMDA5ODY4LCAwLjAwOTg2OCIsIFwKLSAgICAgICAgICAiMC4wMDk5ODcsIDAuMDA5OTkzLCAwLjAxMDAwMiwgMC4wMTAwMDUsIDAuMDEwMDA1LCAwLjAxMDAwNiwgMC4wMTAwMDciLCBcCi0gICAgICAgICAgIjAuMDEwMDc1LCAwLjAxMDA4MSwgMC4wMTAwOTIsIDAuMDEwMDk0LCAwLjAxMDA5NSwgMC4wMTAwOTYsIDAuMDEwMDk2IiwgXAotICAgICAgICAgICIwLjAxMDMxOCwgMC4wMTAzMywgMC4wMTAzMzksIDAuMDEwMzQxLCAwLjAxMDM0MiwgMC4wMTAzNDMsIDAuMDEwMzQzIiwgXAotICAgICAgICAgICIwLjAxMDUwNSwgMC4wMTA1MTMsIDAuMDEwNTIxLCAwLjAxMDUyMywgMC4wMTA1MjQsIDAuMDEwNTI1LCAwLjAxMDUyNSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTI1MTMsIDAuMDEyNTIsIDAuMDEyNTMsIDAuMDEyNTMyLCAwLjAxMjUzMywgMC4wMTI1MzQsIDAuMDEyNTM0IiwgXAotICAgICAgICAgICIwLjAxMjUxLCAwLjAxMjUxNywgMC4wMTI1MjYsIDAuMDEyNTI4LCAwLjAxMjUzLCAwLjAxMjUzMSwgMC4wMTI1MzEiLCBcCi0gICAgICAgICAgIjAuMDEyNTYzLCAwLjAxMjU2OSwgMC4wMTI1NzksIDAuMDEyNTgxLCAwLjAxMjU4MiwgMC4wMTI1ODMsIDAuMDEyNTgzIiwgXAotICAgICAgICAgICIwLjAxMjY0NSwgMC4wMTI2NTIsIDAuMDEyNjYxLCAwLjAxMjY2NCwgMC4wMTI2NjQsIDAuMDEyNjY2LCAwLjAxMjY2NSIsIFwKLSAgICAgICAgICAiMC4wMTI3NDYsIDAuMDEyNzUzLCAwLjAxMjc2MywgMC4wMTI3NjUsIDAuMDEyNzY2LCAwLjAxMjc2NywgMC4wMTI3NjciLCBcCi0gICAgICAgICAgIjAuMDEyOTc0LCAwLjAxMjk2NSwgMC4wMTI5NzQsIDAuMDEyOTc1LCAwLjAxMjk3NiwgMC4wMTI5NzcsIDAuMDEyOTc3IiwgXAotICAgICAgICAgICIwLjAxMzEyOCwgMC4wMTMxMzEsIDAuMDEzMTQxLCAwLjAxMzE0MywgMC4wMTMxNDUsIDAuMDEzMTQ1LCAwLjAxMzE0NiIpOwotICAgICAgfQotICAgICAgcmlzZV9wb3dlcihzY2FsYXIpIHsKLSAgICAgICAgdmFsdWVzKCIwIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiU04iOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMjkwNywgMC4wMTI5MDksIDAuMDEyOTExLCAwLjAxMjkxLCAwLjAxMjkxLCAwLjAxMjkxLCAwLjAxMjkxIiwgXAotICAgICAgICAgICIwLjAxMjg2NywgMC4wMTI4NjksIDAuMDEyODcyLCAwLjAxMjg3LCAwLjAxMjg3LCAwLjAxMjg3MSwgMC4wMTI4NzEiLCBcCi0gICAgICAgICAgIjAuMDEyOTA4LCAwLjAxMjkxMSwgMC4wMTI5MTEsIDAuMDEyOTExLCAwLjAxMjkxMSwgMC4wMTI5MTIsIDAuMDEyOTExIiwgXAotICAgICAgICAgICIwLjAxMzAxMywgMC4wMTMwMTUsIDAuMDEzMDE3LCAwLjAxMzAxOCwgMC4wMTMwMTgsIDAuMDEzMDE5LCAwLjAxMzAxOCIsIFwKLSAgICAgICAgICAiMC4wMTMxNDEsIDAuMDEzMTQzLCAwLjAxMzE0MywgMC4wMTMxNDMsIDAuMDEzMTQzLCAwLjAxMzE0NCwgMC4wMTMxNDQiLCBcCi0gICAgICAgICAgIjAuMDEzNDA4LCAwLjAxMzQxLCAwLjAxMzQxLCAwLjAxMzQwOCwgMC4wMTM0MTEsIDAuMDEzNDExLCAwLjAxMzQxMSIsIFwKLSAgICAgICAgICAiMC4wMTM2ODgsIDAuMDEzNjksIDAuMDEzNjkyLCAwLjAxMzY5MywgMC4wMTM2OTEsIDAuMDEzNjk0LCAwLjAxMzY5NCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwODkwNywgMC4wMDg5MTMsIDAuMDA4OTI0LCAwLjAwODkyNiwgMC4wMDg5MjcsIDAuMDA4OTI4LCAwLjAwODkyOCIsIFwKLSAgICAgICAgICAiMC4wMDg4MjUsIDAuMDA4ODMxLCAwLjAwODg0MSwgMC4wMDg4NDMsIDAuMDA4ODQ0LCAwLjAwODg0NSwgMC4wMDg4NDUiLCBcCi0gICAgICAgICAgIjAuMDA4Nzk2LCAwLjAwODgwMywgMC4wMDg4MTMsIDAuMDA4ODE1LCAwLjAwODgxNiwgMC4wMDg4MTYsIDAuMDA4ODE3IiwgXAotICAgICAgICAgICIwLjAwODgwNywgMC4wMDg4MTQsIDAuMDA4ODI0LCAwLjAwODgyNiwgMC4wMDg4MjcsIDAuMDA4ODI3LCAwLjAwODgyOCIsIFwKLSAgICAgICAgICAiMC4wMDg4NDksIDAuMDA4ODU2LCAwLjAwODg2NiwgMC4wMDg4NjgsIDAuMDA4ODcsIDAuMDA4ODcsIDAuMDA4ODcxIiwgXAotICAgICAgICAgICIwLjAwODk1OCwgMC4wMDg5NjUsIDAuMDA4OTc2LCAwLjAwODk3OCwgMC4wMDg5OCwgMC4wMDg5ODEsIDAuMDA4OTgxIiwgXAotICAgICAgICAgICIwLjAwOTA2OCwgMC4wMDkwNzQsIDAuMDA5MDgzLCAwLjAwOTA4NiwgMC4wMDkwODcsIDAuMDA5MDg4LCAwLjAwOTA4OCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUk4pICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYxNjI0MzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MTYyNDM7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjE2MDQ7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwOTYxLCAwLjAwMDk2LCAwLjAwMTAyOCwgMC4wMDExMjUsIDAuMDAxMjM3LCAwLjAwMTQ1NSwgMC4wMDE2NCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzEwMiwgMC4wMDMxMDUsIDAuMDAzMTY3LCAwLjAwMzI1NiwgMC4wMDMzNzIsIDAuMDAzNjA2LCAwLjAwMzc5NyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQmIVNFJiFTSSZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fU0VfRVFfMF9BTl9TSV9FUV8wX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4xMzA2MjYsIDAuMTM4NTMzLCAwLjE0NzAzNSwgMC4xNTM0MDUsIDAuMTU4NDg3LCAwLjE2NTIzNCwgMC4xNzAxODgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiByZWNvdmVyeV9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlNOIjsKLSAgICAgIHNkZl9jb25kIDogIlNOID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHJlY292ZXJ5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0Mzc1LCAwLjAzMjUsIDAuMDI2MjUsIDAuMDIsIDAuMDEzNzUsIDAuMDAzNzUsIC0wLjAwNSIsIFwKLSAgICAgICAgICAiMC4wNTUsIDAuMDQzNzUsIDAuMDMxMjUsIDAuMDI1LCAwLjAxODc1LCAwLjAxNSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiMC4wNjEyNSwgMC4wNSwgMC4wNDM3NSwgMC4wMzEyNSwgMC4wMjUsIDAuMDIxMjUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4wNjc1LCAwLjA1NjI1LCAwLjA1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDI3NSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4wNzM3NSwgMC4wNjI1LCAwLjA1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDMzNzUsIDAuMDI1IiwgXAotICAgICAgICAgICIwLjA3NzUsIDAuMDcyNSwgMC4wNiwgMC4wNTM3NSwgMC4wNDc1LCAwLjAzNzUsIDAuMDM1IiwgXAotICAgICAgICAgICIwLjA4NjI1LCAwLjA3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1LCAwLjA0LCAwLjAzNzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiU04iOwotICAgICAgdGltaW5nX3R5cGUgOiByZWNvdmVyeV9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEJiFTRSYhU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1NFX0VRXzBfQU5fU0lfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChyZWNvdmVyeV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNSwgMC4wNTUsIDAuMDYxMjUsIDAuMDY3NSwgMC4wNzM3NSwgMC4wODM3NSwgMC4wOTI1IiwgXAotICAgICAgICAgICIwLjA0NSwgMC4wNSwgMC4wNTYyNSwgMC4wNjI1LCAwLjA2ODc1LCAwLjA3ODc1LCAwLjA4NzUiLCBcCi0gICAgICAgICAgIjAuMDM4NzUsIDAuMDQzNzUsIDAuMDUsIDAuMDU2MjUsIDAuMDYyNSwgMC4wNzI1LCAwLjA4MTI1IiwgXAotICAgICAgICAgICIwLjAzMjUsIDAuMDQzNzUsIDAuMDUsIDAuMDU2MjUsIDAuMDYyNSwgMC4wNzI1LCAwLjA4MTI1IiwgXAotICAgICAgICAgICIwLjAzMjUsIDAuMDM3NSwgMC4wNSwgMC4wNTYyNSwgMC4wNjI1LCAwLjA2NjI1LCAwLjA3NSIsIFwKLSAgICAgICAgICAiMC4wMjg3NSwgMC4wNCwgMC4wNDYyNSwgMC4wNTI1LCAwLjA1ODc1LCAwLjA2ODc1LCAwLjA3MTI1IiwgXAotICAgICAgICAgICIwLjAzMjUsIDAuMDM3NSwgMC4wNDM3NSwgMC4wNSwgMC4wNTYyNSwgMC4wNjYyNSwgMC4wNjg3NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJlbW92YWxfcmlzaW5nOwotICAgICAgd2hlbiA6ICJTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJTTiA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChyZW1vdmFsX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMDYyNSwgLTAuMDAxMjUsIDAuMDExMjUsIDAuMDE3NSwgMC4wMjM3NSwgMC4wMzM3NSwgMC4wMzYyNSIsIFwKLSAgICAgICAgICAiLTAuMDE3NSwgLTAuMDA2MjUsIDAsIDAuMDEyNSwgMC4wMTg3NSwgMC4wMjI1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAsIDAuMDA2MjUsIDAuMDE2MjUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAsIDAuMDEsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLCAwLjAwMzc1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjA0LCAtMC4wMzUsIC0wLjAyMjUsIC0wLjAxNjI1LCAtMC4wMSwgMCwgMC4wMDI1IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDg3NSwgMCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oU0UpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTY5NzU7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNjk3NTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE2OTc0MzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDcxNDUsIDAuMDA3MTQ5LCAwLjAwNzIyMywgMC4wMDczMjUsIDAuMDA3NDQ4LCAwLjAwNzY1NSwgMC4wMDc4NDkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDg5NzEsIDAuMDA4OTgsIDAuMDA5MDkzLCAwLjAwOTI3MywgMC4wMDk1MTYsIDAuMDA5OTE0LCAwLjAxMDI4OCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJSTiZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJSTl9FUV8xX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDEyNSwgLTAuMDAxMjUsIDAuMDA1LCAwLjAxMTI1LCAwLjAxNzUsIDAuMDI3NSwgMC4wMyIsIFwKLSAgICAgICAgICAiLTAuMDE3NSwgLTAuMDEyNSwgMCwgMC4wMDYyNSwgMC4wMTI1LCAwLjAyMjUsIDAuMDI1IiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLCAwLjAwNjI1LCAwLjAxLCAwLjAxODc1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLCAwLjAxLCAwLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMDYyNSwgLTAuMDA2MjUsIDAuMDAzNzUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDQsIC0wLjAyODc1LCAtMC4wMjI1LCAtMC4wMTYyNSwgLTAuMDEsIDAsIDAuMDAyNSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwMjUsIDAiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLCAwLjAxMTI1LCAwLjAxNzUsIDAuMDIzNzUsIDAuMDMsIDAuMDQsIDAuMDQyNSIsIFwKLSAgICAgICAgICAiLTAuMDA1LCAwLCAwLjAxMjUsIDAuMDE4NzUsIDAuMDI1LCAwLjAyODc1LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjAxMTI1LCAtMC4wMDYyNSwgMCwgMC4wMTI1LCAwLjAxMjUsIDAuMDIyNSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDE3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAsIDAuMDA2MjUsIDAuMDE2MjUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAsIDAsIDAuMDEsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjAzMzc1LCAtMC4wMjI1LCAtMC4wMTYyNSwgLTAuMDEsIC0wLjAwMzc1LCAwLCAwLjAwODc1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwMjUsIDAiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlJOJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIlJOX0VRXzFfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjI1LCAwLjA1NzUsIDAuMDQ1LCAwLjAzODc1LCAwLjAzMjUsIDAuMDIyNSwgMC4wMiIsIFwKLSAgICAgICAgICAiMC4wNzM3NSwgMC4wNjI1LCAwLjA1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDMzNzUsIDAuMDI1IiwgXAotICAgICAgICAgICIwLjA4LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDUsIDAuMDQsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiMC4wOTI1LCAwLjA4MTI1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDUyNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4wOTg3NSwgMC4wODc1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1ODc1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICIwLjEwODc1LCAwLjA5NzUsIDAuMDg1LCAwLjA3ODc1LCAwLjA3MjUsIDAuMDY4NzUsIDAuMDYiLCBcCi0gICAgICAgICAgIjAuMTExMjUsIDAuMTA2MjUsIDAuMDkzNzUsIDAuMDg3NSwgMC4wODEyNSwgMC4wNzc1LCAwLjA2ODc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc1LCAwLjA3LCAwLjA1NzUsIDAuMDUxMjUsIDAuMDQ1LCAwLjA0MTI1LCAwLjAzMjUiLCBcCi0gICAgICAgICAgIjAuMDg2MjUsIDAuMDc1LCAwLjA2ODc1LCAwLjA1NjI1LCAwLjA1NjI1LCAwLjA0NjI1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjA5MjUsIDAuMDgxMjUsIDAuMDc1LCAwLjA2MjUsIDAuMDYyNSwgMC4wNTI1LCAwLjA1IiwgXAotICAgICAgICAgICIwLjA5ODc1LCAwLjA4NzUsIDAuMDc1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDU4NzUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIjAuMDk4NzUsIDAuMDkzNzUsIDAuMDgxMjUsIDAuMDc1LCAwLjA2ODc1LCAwLjA1ODc1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICIwLjEwMjUsIDAuMDk3NSwgMC4wODUsIDAuMDc4NzUsIDAuMDcyNSwgMC4wNjg3NSwgMC4wNiIsIFwKLSAgICAgICAgICAiMC4xMTEyNSwgMC4xLCAwLjA4NzUsIDAuMDgxMjUsIDAuMDc1LCAwLjA3MTI1LCAwLjA2MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFNJKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA5NjMyNDM7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwOTYxMDE7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwOTYzMjQzOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNTE2OSwgMC4wMDUxMjcsIDAuMDA1MTQzLCAwLjAwNTE5MywgMC4wMDUyNzQsIDAuMDA1NDI1LCAwLjAwNTU5MiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNzk0NiwgMC4wMDc5MTgsIDAuMDA3OTM0LCAwLjAwNzk3OCwgMC4wMDgwNCwgMC4wMDgxODcsIDAuMDA4MzMzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlJOJlNFJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIlJOX0VRXzFfQU5fU0VfRVFfMV9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAyNSwgLTAuMDIsIC0wLjAxMzc1LCAtMC4wMTM3NSwgLTAuMDA3NSwgLTAuMDAzNzUsIC0wLjAwMTI1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDg3NSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAyNSwgLTAuMDIxMjUsIC0wLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAzMTI1LCAtMC4wMjc1LCAtMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjA1NSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzc1LCAtMC4wMzM3NSwgLTAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjA2NSwgLTAuMDUzNzUsIC0wLjA1Mzc1LCAtMC4wNDc1LCAtMC4wNDc1LCAtMC4wMzc1LCAtMC4wMzUiLCBcCi0gICAgICAgICAgIi0wLjA2NzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjA0NjI1LCAtMC4wNDM3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAsIDAuMDA1LCAwLjAxMTI1LCAwLjAyMzc1LCAwLjAyMzc1LCAwLjAzMzc1LCAwLjAzNjI1IiwgXAotICAgICAgICAgICItMC4wMTEyNSwgMCwgMC4wMDYyNSwgMC4wMTI1LCAwLjAxODc1LCAwLjAyODc1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wMTc1LCAtMC4wMDYyNSwgMCwgMC4wMDYyNSwgMC4wMTI1LCAwLjAyMjUsIDAuMDI1IiwgXAotICAgICAgICAgICItMC4wMTc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMC4wMDYyNSwgMC4wMDYyNSwgMC4wMTYyNSwgMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAsIDAuMDA2MjUsIDAuMDEsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjAyNzUsIC0wLjAyMjUsIC0wLjAxNjI1LCAtMC4wMSwgLTAuMDAzNzUsIDAuMDA2MjUsIDAuMDA4NzUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMC4wMDM3NSwgMC4wMDYyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiUk4mU0UmU04iOwotICAgICAgc2RmX2NvbmQgOiAiUk5fRVFfMV9BTl9TRV9FUV8xX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY4NzUsIDAuMDU3NSwgMC4wNTEyNSwgMC4wMzg3NSwgMC4wMzI1LCAwLjAyODc1LCAwLjAyNjI1IiwgXAotICAgICAgICAgICIwLjA3Mzc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDUsIDAuMDQzNzUsIDAuMDMzNzUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMDgsIDAuMDc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDUsIDAuMDQ2MjUsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiMC4wOTI1LCAwLjA4MTI1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDUyNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4wOTg3NSwgMC4wODc1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1ODc1LCAwLjA1IiwgXAotICAgICAgICAgICIwLjEwMjUsIDAuMDk3NSwgMC4wODUsIDAuMDc4NzUsIDAuMDcyNSwgMC4wNjI1LCAwLjA2IiwgXAotICAgICAgICAgICIwLjExMTI1LCAwLjEsIDAuMDkzNzUsIDAuMDgxMjUsIDAuMDgxMjUsIDAuMDcxMjUsIDAuMDY4NzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDM3NSwgMC4wMzg3NSwgMC4wMjYyNSwgMC4wMiwgMC4wMTM3NSwgMC4wMDM3NSwgLTAuMDA1IiwgXAotICAgICAgICAgICIwLjA0ODc1LCAwLjA0Mzc1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMTg3NSwgMC4wMDg3NSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiMC4wNjEyNSwgMC4wNSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMTUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4wNjEyNSwgMC4wNTYyNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyMTI1LCAwLjAxODc1IiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDYyNSwgMC4wNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAyNzUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMDc3NSwgMC4wNjYyNSwgMC4wNiwgMC4wNDc1LCAwLjA0MTI1LCAwLjAzNzUsIDAuMDI4NzUiLCBcCi0gICAgICAgICAgIjAuMDgsIDAuMDc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDUsIDAuMDQsIDAuMDMxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFNOKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDIwMzM3MTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDIwMzM3MTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDIwMzMxNTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA4NDEsIDAuMDAwODQxLCAwLjAwMDg0MSwgMC4wMDA4NDEsIDAuMDAwODQsIDAuMDAwODQsIDAuMDAwODQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA4NTEsIDAuMDAwODQ1LCAwLjAwMDg0NCwgMC4wMDA4NDQsIDAuMDAwODQ0LCAwLjAwMDg0MiwgMC4wMDA4NDQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiU04iOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFEJiFSTiYhU0UmIVNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9STl9FUV8wX0FOX1NFX0VRXzBfQU5fU0lfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjA5MzQwOSwgMC4xMDAwODQsIDAuMTEwMDY4LCAwLjExODgyNSwgMC4xMjYwNjIsIDAuMTM1NDMxLCAwLjE0MjQyMSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJlY292ZXJ5X3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiUk4iOwotICAgICAgc2RmX2NvbmQgOiAiUk4gPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQocmVjb3ZlcnlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAsIC0wLjAwNSwgLTAuMDE3NSwgLTAuMDMsIC0wLjAzNjI1LCAtMC4wNDYyNSwgLTAuMDQ4NzUiLCBcCi0gICAgICAgICAgIjAuMDA1LCAwLCAtMC4wMTI1LCAtMC4wMTg3NSwgLTAuMDI1LCAtMC4wMzUsIC0wLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjAxNzUsIDAuMDA2MjUsIC0wLjAwNjI1LCAtMC4wMTI1LCAtMC4wMTg3NSwgLTAuMDI4NzUsIC0wLjAzNzUiLCBcCi0gICAgICAgICAgIjAuMDIzNzUsIDAuMDEyNSwgMC4wMDYyNSwgLTAuMDA2MjUsIC0wLjAxMjUsIC0wLjAyMjUsIC0wLjAzMTI1IiwgXAotICAgICAgICAgICIwLjAzLCAwLjAxODc1LCAwLjAxMjUsIDAsIC0wLjAwNjI1LCAtMC4wMTYyNSwgLTAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMDQsIDAuMDM1LCAwLjAyMjUsIDAuMDE2MjUsIDAuMDAzNzUsIC0wLjAwNjI1LCAtMC4wMDg3NSIsIFwKLSAgICAgICAgICAiMC4wNDg3NSwgMC4wNDM3NSwgMC4wMzEyNSwgMC4wMjUsIDAuMDEyNSwgMC4wMDI1LCAwIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogcmVtb3ZhbF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlJOIjsKLSAgICAgIHNkZl9jb25kIDogIlJOID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHJlbW92YWxfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDI1LCAwLjAzNjI1LCAwLjA0ODc1LCAwLjA1NSwgMC4wNjEyNSwgMC4wNzEyNSwgMC4wNzM3NSIsIFwKLSAgICAgICAgICAiMC4wMiwgMC4wMzEyNSwgMC4wMzc1LCAwLjA1LCAwLjA1NjI1LCAwLjA2LCAwLjA2ODc1IiwgXAotICAgICAgICAgICIwLjAxMzc1LCAwLjAyNSwgMC4wMzEyNSwgMC4wMzc1LCAwLjA0Mzc1LCAwLjA1Mzc1LCAwLjA2MjUiLCBcCi0gICAgICAgICAgIjAuMDA3NSwgMC4wMTI1LCAwLjAyNSwgMC4wMzEyNSwgMC4wMzc1LCAwLjA0NzUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIjAuMDAxMjUsIDAuMDA2MjUsIDAuMDE4NzUsIDAuMDI1LCAwLjAzMTI1LCAwLjA0MTI1LCAwLjA1IiwgXAotICAgICAgICAgICItMC4wMDg3NSwgMC4wMDI1LCAwLjAwODc1LCAwLjAyMTI1LCAwLjAyNzUsIDAuMDMxMjUsIDAuMDQiLCBcCi0gICAgICAgICAgIi0wLjAxMTI1LCAtMC4wMDYyNSwgMC4wMDYyNSwgMC4wMTI1LCAwLjAxODc1LCAwLjAyODc1LCAwLjAzMTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogU0RGRlNSSFFYMiAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChTREZGU1JIUVgyKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDEuNDg5MTk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgZmYgKE4zNSxRQklOVCkgewotICAgIG5leHRfc3RhdGUgOiAiKChTRSBTSSkgKyAoIVNFIEQpKSI7Ci0gICAgY2xvY2tlZF9vbiA6ICJDSyI7Ci0gICAgY2xlYXIgOiAiKCFSTikiOwotICAgIHByZXNldCA6ICIoIVNOKSI7Ci0gICAgY2xlYXJfcHJlc2V0X3ZhcjEgOiBIOwotICB9Ci0gIHBpbihDSykgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjU4MTUxOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDY1Nzk0MTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2NTgxNTE7Ci0gICAgY2xvY2sgOiB0cnVlOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNDU4OSwgMC4wMDQ1ODgsIDAuMDA0NjU2LCAwLjAwNDc0MiwgMC4wMDQ4NTksIDAuMDA1MDc3LCAwLjAwNTMwOSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAxMTMwMywgMC4wMTEyODcsIDAuMDExMzkyLCAwLjAxMTUwNSwgMC4wMTE2NTEsIDAuMDExODEyLCAwLjAxMjAwOSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQmUk4mIVNFJiFTSSZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fUk5fRVFfMV9BTl9TRV9FUV8wX0FOX1NJX0VRXzBfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjEwNzQ5NiwgMC4xMTU4MDgsIDAuMTI1NjA1LCAwLjEzMzc0NywgMC4xNDA4MzYsIDAuMTQ5NzQ2LCAwLjE1NjYzNiIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDgzOTM0LCAwLjA5MjA1OSwgMC4xMDE4ODEsIDAuMTA5OTkxLCAwLjExNjU5NCwgMC4xMjUzNDQsIDAuMTMxNjI2Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihEKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA5NjM3NDg7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwOTYxODc0OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDk2Mzc0ODsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDU2MzksIDAuMDA1NTk1LCAwLjAwNTYxLCAwLjAwNTY1MywgMC4wMDU3MzMsIDAuMDA1ODgzLCAwLjAwNjAyNyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNzU3MSwgMC4wMDc1NDIsIDAuMDA3NTYsIDAuMDA3NjA1LCAwLjAwNzY2NywgMC4wMDc4MTUsIDAuMDA3OTU2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlJOJiFTRSZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJSTl9FUV8xX0FOX1NFX0VRXzBfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMjUsIC0wLjAyLCAtMC4wMTM3NSwgLTAuMDEzNzUsIC0wLjAwNzUsIC0wLjAwMzc1LCAtMC4wMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDg3NSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAyNSwgLTAuMDE1LCAtMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMzEyNSwgLTAuMDI3NSwgLTAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjA1NSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzc1LCAtMC4wMzM3NSwgLTAuMDI1IiwgXAotICAgICAgICAgICItMC4wNjUsIC0wLjA1Mzc1LCAtMC4wNTM3NSwgLTAuMDQ3NSwgLTAuMDQxMjUsIC0wLjAzNzUsIC0wLjAzNSIsIFwKLSAgICAgICAgICAiLTAuMDY3NSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDQ2MjUsIC0wLjA0Mzc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMCwgMC4wMDUsIDAuMDE3NSwgMC4wMjM3NSwgMC4wMywgMC4wMzM3NSwgMC4wNDI1IiwgXAotICAgICAgICAgICItMC4wMDUsIDAsIDAuMDA2MjUsIDAuMDE4NzUsIDAuMDE4NzUsIDAuMDI4NzUsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDExMjUsIC0wLjAwNjI1LCAwLCAwLjAxMjUsIDAuMDEyNSwgMC4wMjI1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDE3NSwgLTAuMDEyNSwgMCwgMC4wMDYyNSwgMC4wMTI1LCAwLjAxNjI1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxODc1LCAtMC4wMDYyNSwgMCwgMC4wMDYyNSwgMC4wMSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDI3NSwgLTAuMDIyNSwgLTAuMDEsIC0wLjAwMzc1LCAtMC4wMDM3NSwgMC4wMDYyNSwgMC4wMTUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMC4wMDM3NSwgMC4wMDYyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiUk4mIVNFJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIlJOX0VRXzFfQU5fU0VfRVFfMF9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2ODc1LCAwLjA2Mzc1LCAwLjA1MTI1LCAwLjA0NSwgMC4wMzg3NSwgMC4wMjg3NSwgMC4wMjYyNSIsIFwKLSAgICAgICAgICAiMC4wOCwgMC4wNjg3NSwgMC4wNTYyNSwgMC4wNSwgMC4wNDM3NSwgMC4wNCwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4wODYyNSwgMC4wNzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNSwgMC4wNDYyNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4wOTI1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNjI1LCAwLjA2MjUsIDAuMDUyNSwgMC4wNSIsIFwKLSAgICAgICAgICAiMC4wOTg3NSwgMC4wODc1LCAwLjA4MTI1LCAwLjA2ODc1LCAwLjA2ODc1LCAwLjA1ODc1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICIwLjEwODc1LCAwLjA5NzUsIDAuMDg1LCAwLjA3ODc1LCAwLjA3MjUsIDAuMDY4NzUsIDAuMDYiLCBcCi0gICAgICAgICAgIjAuMTExMjUsIDAuMTA2MjUsIDAuMDkzNzUsIDAuMDg3NSwgMC4wODEyNSwgMC4wNzc1LCAwLjA2ODc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQzNzUsIDAuMDM4NzUsIDAuMDI2MjUsIDAuMDIsIDAuMDEzNzUsIDAuMDAzNzUsIC0wLjAwNSIsIFwKLSAgICAgICAgICAiMC4wNTUsIDAuMDQzNzUsIDAuMDMxMjUsIDAuMDI1LCAwLjAxODc1LCAwLjAwODc1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICIwLjA2MTI1LCAwLjA1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDI1LCAwLjAxNSwgMC4wMTI1IiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDU2MjUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMjEyNSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4wNzM3NSwgMC4wNjI1LCAwLjA1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDI3NSwgMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMDc3NSwgMC4wNjYyNSwgMC4wNiwgMC4wNTM3NSwgMC4wNDc1LCAwLjAzNzUsIDAuMDI4NzUiLCBcCi0gICAgICAgICAgIjAuMDg2MjUsIDAuMDc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDUsIDAuMDQsIDAuMDM3NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjY3OTA2NzsKLSAgICBmdW5jdGlvbiA6ICJOMzUiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5vbl91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcmlzaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5NTUzOSwgMC4xNzMxNSwgMC4yMzQ4MzYsIDAuMzExOTk5LCAwLjM4OTEwNiwgMC40NjYzMDMsIDAuNTQzMzIxIiwgXAotICAgICAgICAgICIwLjEwMzczOCwgMC4xODEzNDQsIDAuMjQzMDE3LCAwLjMyMDE4NSwgMC4zOTczMywgMC40NzQ1OTcsIDAuNTUxNjk0IiwgXAotICAgICAgICAgICIwLjExMzQ4MiwgMC4xOTEwOTcsIDAuMjUyNzkzLCAwLjMyOTkzMywgMC40MDcwNTksIDAuNDg0MTk1LCAwLjU2MTQ0NCIsIFwKLSAgICAgICAgICAiMC4xMjE1MDcsIDAuMTk5MTE1LCAwLjI2MDgxMiwgMC4zMzc5NzksIDAuNDE1MDc4LCAwLjQ5MjM2NywgMC41NjkzOTkiLCBcCi0gICAgICAgICAgIjAuMTI4NTg0LCAwLjIwNjE5OCwgMC4yNjc4OTQsIDAuMzQ1MDE4LCAwLjQyMjE2NCwgMC40OTk0NDIsIDAuNTc2NDY4IiwgXAotICAgICAgICAgICIwLjEzNzQ5NSwgMC4yMTUxMDgsIDAuMjc2ODA4LCAwLjM1MzkzOSwgMC40MzEwNzMsIDAuNTA4MzI4LCAwLjU4NTQyNyIsIFwKLSAgICAgICAgICAiMC4xNDQzMjQsIDAuMjIxOTQzLCAwLjI4MzY0LCAwLjM2MDc4MSwgMC40Mzc5NTMsIDAuNTE1MDg2LCAwLjU5MjIxOCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDA3NDEsIDAuMjAwNDg3LCAwLjMzMDY1LCAwLjQ5NDE4NiwgMC42NTcwNDQsIDAuODE5NTU0LCAwLjk4MzAyOCIsIFwKLSAgICAgICAgICAiMC4wNDA3NDksIDAuMjAwNDY2LCAwLjMzMDM4OSwgMC40OTQxNjgsIDAuNjU3NjI3LCAwLjgxOTc1NCwgMC45ODQyNCIsIFwKLSAgICAgICAgICAiMC4wNDA3MjcsIDAuMjAwNDg1LCAwLjMzMDMyLCAwLjQ5NDE5OSwgMC42NTcwMDYsIDAuODIwNzc2LCAwLjk4NDIzMiIsIFwKLSAgICAgICAgICAiMC4wNDA3MzEsIDAuMjAwNDgyLCAwLjMzMDQ5OCwgMC40OTMzOTUsIDAuNjU3MDE2LCAwLjgxOTczMSwgMC45ODMxMTUiLCBcCi0gICAgICAgICAgIjAuMDQwNzE4LCAwLjIwMDQ4MiwgMC4zMzA3MTIsIDAuNDk0MDQ2LCAwLjY1NzAyNSwgMC44MTk3NTcsIDAuOTgzMjg3IiwgXAotICAgICAgICAgICIwLjA0MDczNywgMC4yMDA0NzYsIDAuMzMwNzA0LCAwLjQ5NDEwMiwgMC42NTcwMjUsIDAuODE5NzA4LCAwLjk4NDA5MiIsIFwKLSAgICAgICAgICAiMC4wNDA3MzMsIDAuMjAwNDY3LCAwLjMzMDc1MSwgMC40OTQxNSwgMC42NTc1MTIsIDAuODIwMDM3LCAwLjk4NDA0MyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDc1MDIsIDAuMTgzODE3LCAwLjI0NDQyMSwgMC4zMjAxNjksIDAuMzk1OTY4LCAwLjQ3MTY5MywgMC41NDc0NTMiLCBcCi0gICAgICAgICAgIjAuMTE1ODA4LCAwLjE5MjExMSwgMC4yNTI3MTEsIDAuMzI4NDYzLCAwLjQwNDI1MiwgMC40Nzk5ODgsIDAuNTU1NzUzIiwgXAotICAgICAgICAgICIwLjEyNTYwNSwgMC4yMDE5MTIsIDAuMjYyNTEsIDAuMzM4MjYzLCAwLjQxNDA0OSwgMC40ODk3ODcsIDAuNTY1NTQ1IiwgXAotICAgICAgICAgICIwLjEzMzc0OCwgMC4yMTAwNDMsIDAuMjcwNjQ3LCAwLjM0NjQyNCwgMC40MjIxOSwgMC40OTc5NzQsIDAuNTczNjY2IiwgXAotICAgICAgICAgICIwLjE0MDgzOCwgMC4yMTcxMzMsIDAuMjc3NzM4LCAwLjM1MzQ5MiwgMC40MjkyNzUsIDAuNTA1MDEsIDAuNTgwODE5IiwgXAotICAgICAgICAgICIwLjE0OTc0OCwgMC4yMjYwNCwgMC4yODY2NCwgMC4zNjIzOTMsIDAuNDM4MTgsIDAuNTEzOTA5LCAwLjU4OTY3OSIsIFwKLSAgICAgICAgICAiMC4xNTY3MDksIDAuMjMzMDEzLCAwLjI5MzYyMywgMC4zNjkzNjMsIDAuNDQ1MTc1LCAwLjUyMDkyNSwgMC41OTY2MTciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM5MjIxLCAwLjE5MzQxNCwgMC4zMTkzNTYsIDAuNDc2ODI5LCAwLjYzNDYyLCAwLjc5MjExMywgMC45NDk3OTMiLCBcCi0gICAgICAgICAgIjAuMDM5MjEyLCAwLjE5MzMzMiwgMC4zMTkzMzYsIDAuNDc2ODU2LCAwLjYzNDU2OCwgMC43OTIxMiwgMC45NDgwNTYiLCBcCi0gICAgICAgICAgIjAuMDM5MjE3LCAwLjE5MzMzNCwgMC4zMTkzMzUsIDAuNDc2ODYzLCAwLjYzNDU2NSwgMC43OTIxMjMsIDAuOTQ3OTY2IiwgXAotICAgICAgICAgICIwLjAzOTIxNiwgMC4xOTMzOTUsIDAuMzE5MzUyLCAwLjQ3Njk1MywgMC42MzQ2MDQsIDAuNzkwOTc1LCAwLjk0OTY0NSIsIFwKLSAgICAgICAgICAiMC4wMzkxOSwgMC4xOTMzMjQsIDAuMzE5MzU1LCAwLjQ3NjI5MSwgMC42MzQ1ODEsIDAuNzkyMDc0LCAwLjk0ODE1MyIsIFwKLSAgICAgICAgICAiMC4wMzkxNzgsIDAuMTkzNDA2LCAwLjMxOTMzOSwgMC40NzYzMjgsIDAuNjM0NTc1LCAwLjc5MjA4NywgMC45NDk3MzUiLCBcCi0gICAgICAgICAgIjAuMDM5NTIzLCAwLjE5MzQxNywgMC4zMTk0MTgsIDAuNDc2ODgsIDAuNjM0NDg3LCAwLjc5MjA4LCAwLjk0OTcwNCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogY2xlYXI7Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEyMjU0NCwgMC4xOTg4NTcsIDAuMjU5NDczLCAwLjMzNTIyNCwgMC40MTA5OTksIDAuNDg2NzQzLCAwLjU2MjQ3NyIsIFwKLSAgICAgICAgICAiMC4xMzA0NjIsIDAuMjA2Nzc2LCAwLjI2NzM5MiwgMC4zNDMxNDQsIDAuNDE4OTE4LCAwLjQ5NDY2MiwgMC41NzAzOTYiLCBcCi0gICAgICAgICAgIjAuMTM5MDcsIDAuMjE1MzY1LCAwLjI3NTk3MSwgMC4zNTE3NzUsIDAuNDI3NTAyLCAwLjUwMzI0MSwgMC41NzkwMDciLCBcCi0gICAgICAgICAgIjAuMTQ1NjAxLCAwLjIyMTkxNiwgMC4yODI1MTcsIDAuMzU4MjgyLCAwLjQzNDA0MSwgMC41MDk3ODMsIDAuNTg1NTI2IiwgXAotICAgICAgICAgICIwLjE1MDg0OSwgMC4yMjcxMzQsIDAuMjg3NzQzLCAwLjM2MzQ3NiwgMC40MzkyNTUsIDAuNTE1MDIyLCAwLjU5MDgwMSIsIFwKLSAgICAgICAgICAiMC4xNTc2NjEsIDAuMjMzOTE1LCAwLjI5NDUyMiwgMC4zNzAyOTEsIDAuNDQ2MDQ0LCAwLjUyMTc5NiwgMC41OTc1MjQiLCBcCi0gICAgICAgICAgIjAuMTYyNzM0LCAwLjIzOTAzMSwgMC4yOTk2NCwgMC4zNzUzODksIDAuNDUxMTYyLCAwLjUyNjkyNSwgMC42MDI2NTUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM5NDAxLCAwLjE5MzUxNywgMC4zMTk0NDYsIDAuNDc2MzUxLCAwLjYzNDU0NywgMC43OTIwOCwgMC45NDk4MiIsIFwKLSAgICAgICAgICAiMC4wMzk0LCAwLjE5MzUyMiwgMC4zMTk0NDQsIDAuNDc2MzU4LCAwLjYzNDUzNSwgMC43OTIwNzUsIDAuOTQ5ODE3IiwgXAotICAgICAgICAgICIwLjAzOTQxNywgMC4xOTM1NDMsIDAuMzE5MzkzLCAwLjQ3NjMzMiwgMC42MzQ2MjUsIDAuNzkyMjMxLCAwLjk0OTkxMSIsIFwKLSAgICAgICAgICAiMC4wMzkzOTEsIDAuMTkzMzE1LCAwLjMxOTM3OCwgMC40NzY5MDcsIDAuNjM0NjE0LCAwLjc5MjEyMiwgMC45NDk3OSIsIFwKLSAgICAgICAgICAiMC4wMzk0MjEsIDAuMTkzNTA5LCAwLjMxOTQwNywgMC40NzY5NzksIDAuNjM0NjQsIDAuNzkyMzI4LCAwLjk0OTk4NCIsIFwKLSAgICAgICAgICAiMC4wMzkzODMsIDAuMTkzNTU2LCAwLjMxOTM5MiwgMC40NzY5NjUsIDAuNjM0NjQ5LCAwLjc5MjMwMSwgMC45NDk4MTYiLCBcCi0gICAgICAgICAgIjAuMDM5NDY4LCAwLjE5MzU2MywgMC4zMTkzODMsIDAuNDc2OTEyLCAwLjYzNDYxOCwgMC43OTIyODQsIDAuOTQ5ODI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiBwcmVzZXQ7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4MjgzLCAwLjE2MDM5MSwgMC4yMjIwOTUsIDAuMjk5MzAxLCAwLjM3NjQwMiwgMC40NTM1MjEsIDAuNTMwNjQ3IiwgXAotICAgICAgICAgICIwLjA4OTc4NywgMC4xNjcyNDgsIDAuMjI4OTQ4LCAwLjMwNjEzOCwgMC4zODMyNTUsIDAuNDYwMzc0LCAwLjUzNzU2OSIsIFwKLSAgICAgICAgICAiMC4wOTk3NTUsIDAuMTc3MjQzLCAwLjIzODk0MiwgMC4zMTYwMywgMC4zOTMyNSwgMC40NzAzNjgsIDAuNTQ3NTUiLCBcCi0gICAgICAgICAgIjAuMTA4NTY4LCAwLjE4NjA0MiwgMC4yNDc3NDMsIDAuMzI0OTQ0LCAwLjQwMjA1MiwgMC40NzkxNzEsIDAuNTU2MjAzIiwgXAotICAgICAgICAgICIwLjExNTg2NywgMC4xOTMzNzEsIDAuMjU1MDcsIDAuMzMyMjg5LCAwLjQwOTM4NiwgMC40ODY1MDMsIDAuNTYzNzM0IiwgXAotICAgICAgICAgICIwLjEyNTQ0NywgMC4yMDI5MDUsIDAuMjY0NjIyLCAwLjM0MTc1LCAwLjQxODkzLCAwLjQ5NjA3OCwgMC41NzMxODQiLCBcCi0gICAgICAgICAgIjAuMTMyNTY1LCAwLjIxMDA0OSwgMC4yNzE3NzEsIDAuMzQ4ODk4LCAwLjQyNjA1OSwgMC41MDMxOCwgMC41ODAzNCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDAyNjEsIDAuMjAwNDcyLCAwLjMzMTAyNCwgMC40OTQzMiwgMC42NTc2NTYsIDAuODIwODc2LCAwLjk4NDE3NCIsIFwKLSAgICAgICAgICAiMC4wNDAyNTYsIDAuMjAwNTEsIDAuMzMxMDMsIDAuNDk0MzEzLCAwLjY1NzU5NSwgMC44MjA4NywgMC45ODQxNzciLCBcCi0gICAgICAgICAgIjAuMDQwMjM5LCAwLjIwMDU1LCAwLjMzMDk5NywgMC40OTQzMDEsIDAuNjU3NTg1LCAwLjgyMDg2LCAwLjk4NDE5NyIsIFwKLSAgICAgICAgICAiMC4wNDAyODgsIDAuMjAwNTQ4LCAwLjMzMTA0NywgMC40OTQzMDgsIDAuNjU3NTg3LCAwLjgyMDg1MiwgMC45ODQxMjYiLCBcCi0gICAgICAgICAgIjAuMDQwMzQxLCAwLjIwMDU2LCAwLjMzMTA0NiwgMC40OTQyNzEsIDAuNjU3NTg2LCAwLjgyMDg0NywgMC45ODQxNzUiLCBcCi0gICAgICAgICAgIjAuMDQwNzI0LCAwLjIwMDUzNywgMC4zMzEwNDMsIDAuNDk0Mjg4LCAwLjY1NzU0OCwgMC44MjA3OTQsIDAuOTg0MTAxIiwgXAotICAgICAgICAgICIwLjA0MDY4OCwgMC4yMDA0MzEsIDAuMzMxMDY3LCAwLjQ5NDMyNywgMC42NTc1NiwgMC44MjAwNjYsIDAuOTg0MTEiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTA2NTY5LCAwLjE4Mjg2NSwgMC4yNDM0NzQsIDAuMzE5MjI5LCAwLjM5NTAxLCAwLjQ3MDc1LCAwLjU0NjQ5NiIsIFwKLSAgICAgICAgICAiMC4xMTMwNzUsIDAuMTg5MzU2LCAwLjI0OTk2NiwgMC4zMjU3NywgMC40MDE0OTcsIDAuNDc3MjM2LCAwLjU1MzAyMyIsIFwKLSAgICAgICAgICAiMC4xMjA2MjcsIDAuMTk2OTM0LCAwLjI1NzU0LCAwLjMzMzI5MSwgMC40MDkwNzQsIDAuNDg0ODE0LCAwLjU2MDU1OCIsIFwKLSAgICAgICAgICAiMC4xMjgwNjQsIDAuMjA0Mzc1LCAwLjI2NDk5MSwgMC4zNDA3NSwgMC40MTY1MjEsIDAuNDkyMjY4LCAwLjU2Nzk5NyIsIFwKLSAgICAgICAgICAiMC4xMzUwNTgsIDAuMjExMzY3LCAwLjI3MTk3NCwgMC4zNDc3NDgsIDAuNDIzNTA2LCAwLjQ5OTI0NSwgMC41NzUwNTUiLCBcCi0gICAgICAgICAgIjAuMTQ0OTk1LCAwLjIyMTMzOCwgMC4yODE5NDIsIDAuMzU3NzAzLCAwLjQzMzQ4MiwgMC41MDkyMTksIDAuNTg0OTYiLCBcCi0gICAgICAgICAgIjAuMTUyNzI3LCAwLjIyOTA3MSwgMC4yODk2ODIsIDAuMzY1NDI2LCAwLjQ0MTE5NCwgMC41MTY5NjEsIDAuNTkyNzE0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzOTM5NywgMC4xOTMzMjEsIDAuMzE5NDA4LCAwLjQ3Njk0NiwgMC42MzQ2NTYsIDAuNzkyMjY3LCAwLjk0OTg3MSIsIFwKLSAgICAgICAgICAiMC4wMzk0MjIsIDAuMTkzNTE0LCAwLjMxOTQwNCwgMC40NzY4NjgsIDAuNjM0NjM3LCAwLjc5MjIyMSwgMC45NDk5ODIiLCBcCi0gICAgICAgICAgIjAuMDM5Mzk4LCAwLjE5MzMxNCwgMC4zMTkzOTksIDAuNDc2OTMzLCAwLjYzNDYzOCwgMC43OTIyMjQsIDAuOTQ5ODE3IiwgXAotICAgICAgICAgICIwLjAzOTM5NiwgMC4xOTM1MDcsIDAuMzE5NDM4LCAwLjQ3NjgyNiwgMC42MzQ0OCwgMC43OTE5NzgsIDAuOTQ5ODA5IiwgXAotICAgICAgICAgICIwLjAzOTQyNCwgMC4xOTMzNzcsIDAuMzE5NDA1LCAwLjQ3Njg1MywgMC42MzQ2MzQsIDAuNzkyMjAzLCAwLjk1MDA1OCIsIFwKLSAgICAgICAgICAiMC4wMzk0OTMsIDAuMTkzNDI5LCAwLjMxOTQwOCwgMC40NzY0LCAwLjYzNDY2MiwgMC43OTIyMjUsIDAuOTQ5NDA4IiwgXAotICAgICAgICAgICIwLjAzOTYyMSwgMC4xOTM1NDMsIDAuMzE5NTE5LCAwLjQ3Njk1LCAwLjYzNDU0NywgMC43OTIyODMsIDAuOTQ5OTQ1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMTYzNSwgMC4wMTE2NjYsIDAuMDExNjcsIDAuMDExNjcyLCAwLjAxMTY3MywgMC4wMTE2NzgsIDAuMDExNjc4IiwgXAotICAgICAgICAgICIwLjAxMTYyMiwgMC4wMTE2NTIsIDAuMDExNjU3LCAwLjAxMTY2LCAwLjAxMTY2LCAwLjAxMTY2MSwgMC4wMTE2NjEiLCBcCi0gICAgICAgICAgIjAuMDExNjgzLCAwLjAxMTcxNCwgMC4wMTE3MTgsIDAuMDExNzIxLCAwLjAxMTcyMiwgMC4wMTE3MjIsIDAuMDExNzIzIiwgXAotICAgICAgICAgICIwLjAxMTgxMSwgMC4wMTE4NDIsIDAuMDExODQ2LCAwLjAxMTg0OSwgMC4wMTE4NSwgMC4wMTE4NSwgMC4wMTE4NTEiLCBcCi0gICAgICAgICAgIjAuMDExODk1LCAwLjAxMTkyNCwgMC4wMTE5MjgsIDAuMDExOTMxLCAwLjAxMTkzMiwgMC4wMTE5MzMsIDAuMDExOTMzIiwgXAotICAgICAgICAgICIwLjAxMjEzOCwgMC4wMTIxNjgsIDAuMDEyMTc0LCAwLjAxMjE3NiwgMC4wMTIxNzcsIDAuMDEyMTc4LCAwLjAxMjE3NiIsIFwKLSAgICAgICAgICAiMC4wMTIzMDEsIDAuMDEyMzI4LCAwLjAxMjMzNywgMC4wMTIzNCwgMC4wMTIzNDMsIDAuMDEyMzQzLCAwLjAxMjM0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDExMTk3LCAwLjAxMTI1NiwgMC4wMTEyNjUsIDAuMDExMjcsIDAuMDExMjcyLCAwLjAxMTI3NCwgMC4wMTEyNzUiLCBcCi0gICAgICAgICAgIjAuMDExMTk0LCAwLjAxMTI1NCwgMC4wMTEyNjMsIDAuMDExMjY4LCAwLjAxMTI3LCAwLjAxMTI3MSwgMC4wMTEyNzIiLCBcCi0gICAgICAgICAgIjAuMDExMjgzLCAwLjAxMTM0NCwgMC4wMTEzNTIsIDAuMDExMzU3LCAwLjAxMTM1OSwgMC4wMTEzNjEsIDAuMDExMzYyIiwgXAotICAgICAgICAgICIwLjAxMTQyLCAwLjAxMTQ4MSwgMC4wMTE0ODksIDAuMDExNDkzLCAwLjAxMTQ5NiwgMC4wMTE0OTcsIDAuMDExNDk5IiwgXAotICAgICAgICAgICIwLjAxMTUwOCwgMC4wMTE1NywgMC4wMTE1NzksIDAuMDExNTg0LCAwLjAxMTU4NiwgMC4wMTE1ODcsIDAuMDExNTg4IiwgXAotICAgICAgICAgICIwLjAxMTc1MSwgMC4wMTE4MTYsIDAuMDExODI2LCAwLjAxMTgzLCAwLjAxMTgzMywgMC4wMTE4MzMsIDAuMDExODM1IiwgXAotICAgICAgICAgICIwLjAxMTkzOSwgMC4wMTE5OTksIDAuMDEyMDA4LCAwLjAxMjAxMiwgMC4wMTIwMTQsIDAuMDEyMDE2LCAwLjAxMjAxNyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTM5NDYsIDAuMDE0MDEsIDAuMDE0MDE5LCAwLjAxNDAyNSwgMC4wMTQwMjcsIDAuMDE0MDI5LCAwLjAxNDAzIiwgXAotICAgICAgICAgICIwLjAxMzk0MiwgMC4wMTQwMDUsIDAuMDE0MDE1LCAwLjAxNDAyLCAwLjAxNDAyMywgMC4wMTQwMjUsIDAuMDE0MDI2IiwgXAotICAgICAgICAgICIwLjAxMzk5MywgMC4wMTQwNTYsIDAuMDE0MDY2LCAwLjAxNDA3MSwgMC4wMTQwNzQsIDAuMDE0MDc2LCAwLjAxNDA3NyIsIFwKLSAgICAgICAgICAiMC4wMTQwNzcsIDAuMDE0MTQxLCAwLjAxNDE1MSwgMC4wMTQxNTYsIDAuMDE0MTU5LCAwLjAxNDE2MSwgMC4wMTQxNjIiLCBcCi0gICAgICAgICAgIjAuMDE0MTc4LCAwLjAxNDI0LCAwLjAxNDI1MSwgMC4wMTQyNTYsIDAuMDE0MjU4LCAwLjAxNDI2LCAwLjAxNDI2MiIsIFwKLSAgICAgICAgICAiMC4wMTQzODQsIDAuMDE0NDUsIDAuMDE0NDYsIDAuMDE0NDY1LCAwLjAxNDQ2NywgMC4wMTQ0NywgMC4wMTQ0NzEiLCBcCi0gICAgICAgICAgIjAuMDE0NTUzLCAwLjAxNDYxMywgMC4wMTQ2MjMsIDAuMDE0NjMsIDAuMDE0NjMzLCAwLjAxNDYzNSwgMC4wMTQ2MzYiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfcG93ZXIoc2NhbGFyKSB7Ci0gICAgICAgIHZhbHVlcygiMCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTQwMjYsIDAuMDE0MDU3LCAwLjAxNDA2LCAwLjAxNDA2MSwgMC4wMTQwNjIsIDAuMDE0MDcxLCAwLjAxNDA2MyIsIFwKLSAgICAgICAgICAiMC4wMTM5ODcsIDAuMDE0MDE4LCAwLjAxNDAyMiwgMC4wMTQwMjIsIDAuMDE0MDI1LCAwLjAxNDAyOSwgMC4wMTQwMjUiLCBcCi0gICAgICAgICAgIjAuMDE0MDI1LCAwLjAxNDA1NywgMC4wMTQwNjEsIDAuMDE0MDYyLCAwLjAxNDA2MywgMC4wMTQwNjMsIDAuMDE0MDciLCBcCi0gICAgICAgICAgIjAuMDE0MTI1LCAwLjAxNDE2MSwgMC4wMTQxNjUsIDAuMDE0MTY2LCAwLjAxNDE2NywgMC4wMTQxNjcsIDAuMDE0MTY4IiwgXAotICAgICAgICAgICIwLjAxNDI1MywgMC4wMTQyODcsIDAuMDE0MjksIDAuMDE0MjkxLCAwLjAxNDI5MiwgMC4wMTQyOTMsIDAuMDE0MjkzIiwgXAotICAgICAgICAgICIwLjAxNDUxNSwgMC4wMTQ1NDksIDAuMDE0NTQ5LCAwLjAxNDU1MiwgMC4wMTQ1NTIsIDAuMDE0NTU3LCAwLjAxNDU1NCIsIFwKLSAgICAgICAgICAiMC4wMTQ3OTYsIDAuMDE0ODI1LCAwLjAxNDgyOSwgMC4wMTQ4MywgMC4wMTQ4MzIsIDAuMDE0ODMxLCAwLjAxNDgzMSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMDIzLCAwLjAxMDI5NCwgMC4wMTAzMDQsIDAuMDEwMzA5LCAwLjAxMDMxMSwgMC4wMTAzMTQsIDAuMDEwMzE1IiwgXAotICAgICAgICAgICIwLjAxMDE0OSwgMC4wMTAyMTEsIDAuMDEwMjIyLCAwLjAxMDIyNiwgMC4wMTAyMjksIDAuMDEwMjMxLCAwLjAxMDIzMyIsIFwKLSAgICAgICAgICAiMC4wMTAxMiwgMC4wMTAxODMsIDAuMDEwMTkzLCAwLjAxMDE5OSwgMC4wMTAyMDEsIDAuMDEwMjAzLCAwLjAxMDIwNCIsIFwKLSAgICAgICAgICAiMC4wMTAxMywgMC4wMTAxOTQsIDAuMDEwMjA0LCAwLjAxMDIwOSwgMC4wMTAyMTIsIDAuMDEwMjEzLCAwLjAxMDIxNSIsIFwKLSAgICAgICAgICAiMC4wMTAxNjcsIDAuMDEwMjMzLCAwLjAxMDI0NCwgMC4wMTAyNDksIDAuMDEwMjUyLCAwLjAxMDI1NCwgMC4wMTAyNTUiLCBcCi0gICAgICAgICAgIjAuMDEwMjgzLCAwLjAxMDM0OSwgMC4wMTAzNiwgMC4wMTAzNjYsIDAuMDEwMzY5LCAwLjAxMDM3MSwgMC4wMTAzNzIiLCBcCi0gICAgICAgICAgIjAuMDEwMzkyLCAwLjAxMDQ1MywgMC4wMTA0NjMsIDAuMDEwNDY5LCAwLjAxMDQ3MiwgMC4wMTA0NzQsIDAuMDEwNDc1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihSTikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjA1NDU5OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYwNTQ1OTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2MDU0Mzg7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwOTgyLCAwLjAwMDk4MSwgMC4wMDEwNDgsIDAuMDAxMTQ0LCAwLjAwMTI1OCwgMC4wMDE0NzQsIDAuMDAxNjU0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzMjE0LCAwLjAwMzIxNSwgMC4wMDMyNzUsIDAuMDAzMzY4LCAwLjAwMzQ4MywgMC4wMDM3MTcsIDAuMDAzOSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQmIVNFJiFTSSZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fU0VfRVFfMF9BTl9TSV9FUV8wX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4xMjI1NDQsIDAuMTMwNDYyLCAwLjEzOTA3LCAwLjE0NTYwMSwgMC4xNTA4MDMsIDAuMTU3NjYxLCAwLjE2MjczNCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJlY292ZXJ5X3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiU04iOwotICAgICAgc2RmX2NvbmQgOiAiU04gPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQocmVjb3ZlcnlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDUsIDAuMDM4NzUsIDAuMDI2MjUsIDAuMDIsIDAuMDEzNzUsIDAuMDAzNzUsIDAuMDAxMjUiLCBcCi0gICAgICAgICAgIjAuMDU1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDI1LCAwLjAxNSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiMC4wNjEyNSwgMC4wNTYyNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyMTI1LCAwLjAxODc1IiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDYyNSwgMC4wNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAyNzUsIDAuMDI1IiwgXAotICAgICAgICAgICIwLjA3Mzc1LCAwLjA2ODc1LCAwLjA1NjI1LCAwLjA1LCAwLjA0Mzc1LCAwLjAzMzc1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICIwLjA4Mzc1LCAwLjA3MjUsIDAuMDYsIDAuMDUzNzUsIDAuMDQ3NSwgMC4wNDM3NSwgMC4wMzUiLCBcCi0gICAgICAgICAgIjAuMDg2MjUsIDAuMDc1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDQ2MjUsIDAuMDQzNzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiU04iOwotICAgICAgdGltaW5nX3R5cGUgOiByZWNvdmVyeV9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEJiFTRSYhU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1NFX0VRXzBfQU5fU0lfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChyZWNvdmVyeV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNSwgMC4wNTUsIDAuMDYxMjUsIDAuMDY3NSwgMC4wNzM3NSwgMC4wODM3NSwgMC4wOTI1IiwgXAotICAgICAgICAgICIwLjA0NSwgMC4wNSwgMC4wNTYyNSwgMC4wNjI1LCAwLjA2ODc1LCAwLjA3ODc1LCAwLjA4NzUiLCBcCi0gICAgICAgICAgIjAuMDM4NzUsIDAuMDQzNzUsIDAuMDUsIDAuMDU2MjUsIDAuMDYyNSwgMC4wNzI1LCAwLjA4MTI1IiwgXAotICAgICAgICAgICIwLjAzODc1LCAwLjA0Mzc1LCAwLjA1LCAwLjA1NjI1LCAwLjA2MjUsIDAuMDcyNSwgMC4wNzUiLCBcCi0gICAgICAgICAgIjAuMDMyNSwgMC4wMzc1LCAwLjA0Mzc1LCAwLjA1NjI1LCAwLjA2MjUsIDAuMDY2MjUsIDAuMDc1IiwgXAotICAgICAgICAgICIwLjAzNSwgMC4wNCwgMC4wNDYyNSwgMC4wNTI1LCAwLjA1ODc1LCAwLjA2ODc1LCAwLjA3MTI1IiwgXAotICAgICAgICAgICIwLjAzMjUsIDAuMDM3NSwgMC4wNDM3NSwgMC4wNSwgMC4wNTYyNSwgMC4wNjYyNSwgMC4wNjg3NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJlbW92YWxfcmlzaW5nOwotICAgICAgd2hlbiA6ICJTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJTTiA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChyZW1vdmFsX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMDYyNSwgLTAuMDAxMjUsIDAuMDExMjUsIDAuMDE3NSwgMC4wMjM3NSwgMC4wMzM3NSwgMC4wMzYyNSIsIFwKLSAgICAgICAgICAiLTAuMDE3NSwgLTAuMDA2MjUsIDAsIDAuMDEyNSwgMC4wMTI1LCAwLjAyMjUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMCwgMC4wMDYyNSwgMC4wMTYyNSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMCwgMC4wMSwgMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAuMDAzNzUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDQsIC0wLjAzNSwgLTAuMDIyNSwgLTAuMDE2MjUsIC0wLjAxLCAwLCAwLjAwMjUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwODc1LCAwIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTRSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNzQ3MjE7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNzQ3MjE7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNzQ2OTY7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA3MTE5LCAwLjAwNzExNywgMC4wMDcxOTUsIDAuMDA3Mjk2LCAwLjAwNzQxNywgMC4wMDc2NiwgMC4wMDc4NTUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDg5OTEsIDAuMDA4OTksIDAuMDA5MTEsIDAuMDA5Mjg5LCAwLjAwOTUyMiwgMC4wMDk5MjEsIDAuMDEwMjk4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlJOJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIlJOX0VRXzFfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMTI1LCAtMC4wMDEyNSwgMC4wMDUsIDAuMDExMjUsIDAuMDE3NSwgMC4wMjc1LCAwLjAzIiwgXAotICAgICAgICAgICItMC4wMTc1LCAtMC4wMDYyNSwgMCwgMC4wMDYyNSwgMC4wMTI1LCAwLjAyMjUsIDAuMDI1IiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLCAwLjAwNjI1LCAwLjAxLCAwLjAxODc1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLCAwLjAxLCAwLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMDYyNSwgLTAuMDA2MjUsIDAuMDAzNzUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDQsIC0wLjAyODc1LCAtMC4wMjI1LCAtMC4wMTYyNSwgLTAuMDEsIDAsIDAuMDAyNSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwMjUsIDAiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLCAwLjAxMTI1LCAwLjAxNzUsIDAuMDIzNzUsIDAuMDMsIDAuMDQsIDAuMDQyNSIsIFwKLSAgICAgICAgICAiLTAuMDA1LCAwLjAwNjI1LCAwLjAxMjUsIDAuMDE4NzUsIDAuMDI1LCAwLjAzNSwgMC4wMzc1IiwgXAotICAgICAgICAgICItMC4wMTEyNSwgLTAuMDA2MjUsIDAuMDA2MjUsIDAuMDEyNSwgMC4wMTg3NSwgMC4wMjI1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wMTc1LCAtMC4wMTI1LCAwLCAwLjAwNjI1LCAwLjAxMjUsIDAuMDE2MjUsIDAuMDI1IiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLCAwLjAwNjI1LCAwLjAxLCAwLjAxODc1IiwgXAotICAgICAgICAgICItMC4wMzM3NSwgLTAuMDIyNSwgLTAuMDE2MjUsIC0wLjAxLCAtMC4wMDM3NSwgMC4wMDYyNSwgMC4wMDg3NSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIC0wLjAwMjUsIDAuMDA2MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlJOJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIlJOX0VRXzFfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjg3NSwgMC4wNTc1LCAwLjA0NSwgMC4wMzg3NSwgMC4wMzI1LCAwLjAyODc1LCAwLjAyIiwgXAotICAgICAgICAgICIwLjA3Mzc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzM3NSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4wODYyNSwgMC4wNzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNSwgMC4wNCwgMC4wMzc1IiwgXAotICAgICAgICAgICIwLjA5MjUsIDAuMDgxMjUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNTI1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjA5ODc1LCAwLjA4NzUsIDAuMDgxMjUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNTg3NSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiMC4xMDg3NSwgMC4wOTc1LCAwLjA5MTI1LCAwLjA3ODc1LCAwLjA3MjUsIDAuMDY4NzUsIDAuMDY2MjUiLCBcCi0gICAgICAgICAgIjAuMTE3NSwgMC4xMDYyNSwgMC4wOTM3NSwgMC4wODc1LCAwLjA4MTI1LCAwLjA3NzUsIDAuMDY4NzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODEyNSwgMC4wNywgMC4wNjM3NSwgMC4wNTEyNSwgMC4wNDUsIDAuMDQxMjUsIDAuMDM4NzUiLCBcCi0gICAgICAgICAgIjAuMDg2MjUsIDAuMDgxMjUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNDYyNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4wOTI1LCAwLjA4NzUsIDAuMDc1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDUyNSwgMC4wNSIsIFwKLSAgICAgICAgICAiMC4wOTg3NSwgMC4wODc1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNTg3NSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiMC4xMDUsIDAuMDkzNzUsIDAuMDgxMjUsIDAuMDc1LCAwLjA2ODc1LCAwLjA2NSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiMC4xMDg3NSwgMC4wOTc1LCAwLjA5MTI1LCAwLjA3ODc1LCAwLjA3MjUsIDAuMDY4NzUsIDAuMDY2MjUiLCBcCi0gICAgICAgICAgIjAuMTExMjUsIDAuMSwgMC4wOTM3NSwgMC4wODc1LCAwLjA4MTI1LCAwLjA3MTI1LCAwLjA2ODc1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTSSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwOTU4OTczOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDk1NjY3NDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA5NTg5NzM7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA1MjQ4LCAwLjAwNTIwNCwgMC4wMDUyMjIsIDAuMDA1MjY3LCAwLjAwNTM1MSwgMC4wMDU0OTcsIDAuMDA1NjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDc5MTQsIDAuMDA3ODg3LCAwLjAwNzkwMiwgMC4wMDc5NDYsIDAuMDA4MDA4LCAwLjAwODE1NywgMC4wMDgzMDIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiUk4mU0UmU04iOwotICAgICAgc2RmX2NvbmQgOiAiUk5fRVFfMV9BTl9TRV9FUV8xX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDI1LCAtMC4wMiwgLTAuMDEzNzUsIC0wLjAxMzc1LCAtMC4wMDc1LCAtMC4wMDM3NSwgLTAuMDAxMjUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA4NzUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMjUsIC0wLjAxNSwgLTAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDMxMjUsIC0wLjAyNzUsIC0wLjAxODc1IiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDM3NSwgLTAuMDMzNzUsIC0wLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDY1LCAtMC4wNTM3NSwgLTAuMDUzNzUsIC0wLjA0NzUsIC0wLjA0MTI1LCAtMC4wMzc1LCAtMC4wMzUiLCBcCi0gICAgICAgICAgIi0wLjA2NzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjA0NjI1LCAtMC4wNDM3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAsIDAuMDA1LCAwLjAxNzUsIDAuMDIzNzUsIDAuMDMsIDAuMDMzNzUsIDAuMDQyNSIsIFwKLSAgICAgICAgICAiLTAuMDA1LCAwLCAwLjAwNjI1LCAwLjAxODc1LCAwLjAxODc1LCAwLjAyODc1LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjAxMTI1LCAtMC4wMDYyNSwgMCwgMC4wMTI1LCAwLjAxMjUsIDAuMDIyNSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDE3NSwgLTAuMDEyNSwgMCwgMC4wMDYyNSwgMC4wMTI1LCAwLjAxNjI1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLCAwLjAwNjI1LCAwLjAxLCAwLjAxODc1IiwgXAotICAgICAgICAgICItMC4wMjc1LCAtMC4wMjI1LCAtMC4wMSwgLTAuMDAzNzUsIDAuMDAyNSwgMC4wMDYyNSwgMC4wMTUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMC4wMDM3NSwgMC4wMDYyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiUk4mU0UmU04iOwotICAgICAgc2RmX2NvbmQgOiAiUk5fRVFfMV9BTl9TRV9FUV8xX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY4NzUsIDAuMDYzNzUsIDAuMDUxMjUsIDAuMDQ1LCAwLjAzODc1LCAwLjAyODc1LCAwLjAyNjI1IiwgXAotICAgICAgICAgICIwLjA4LCAwLjA2ODc1LCAwLjA1NjI1LCAwLjA1LCAwLjA0Mzc1LCAwLjAzMzc1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICIwLjA4NjI1LCAwLjA3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1LCAwLjA0NjI1LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIjAuMDkyNSwgMC4wODEyNSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1MjUsIDAuMDUiLCBcCi0gICAgICAgICAgIjAuMDk4NzUsIDAuMDg3NSwgMC4wNzUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNTg3NSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiMC4xMDg3NSwgMC4wOTc1LCAwLjA4NSwgMC4wNzg3NSwgMC4wNzI1LCAwLjA2ODc1LCAwLjA2IiwgXAotICAgICAgICAgICIwLjExMTI1LCAwLjEwNjI1LCAwLjA5Mzc1LCAwLjA4NzUsIDAuMDgxMjUsIDAuMDcxMjUsIDAuMDY4NzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDM3NSwgMC4wMzg3NSwgMC4wMjYyNSwgMC4wMiwgMC4wMTM3NSwgMC4wMDM3NSwgMC4wMDEyNSIsIFwKLSAgICAgICAgICAiMC4wNTUsIDAuMDQzNzUsIDAuMDMxMjUsIDAuMDI1LCAwLjAxODc1LCAwLjAwODc1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICIwLjA2MTI1LCAwLjA1LCAwLjA0Mzc1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMTUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4wNjc1LCAwLjA1NjI1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDIxMjUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMDczNzUsIDAuMDYyNSwgMC4wNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAyNzUsIDAuMDI1IiwgXAotICAgICAgICAgICIwLjA3NzUsIDAuMDY2MjUsIDAuMDYsIDAuMDUzNzUsIDAuMDQ3NSwgMC4wMzc1LCAwLjAyODc1IiwgXAotICAgICAgICAgICIwLjA4NjI1LCAwLjA3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1LCAwLjA0LCAwLjAzNzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFNOKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDIwOTMyNzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDIwOTMyNzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDIwOTI4ODsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA4NDEsIDAuMDAwODQxLCAwLjAwMDg0MSwgMC4wMDA4NDEsIDAuMDAwODQsIDAuMDAwODQsIDAuMDAwODQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA4NTIsIDAuMDAwODQ1LCAwLjAwMDg0NCwgMC4wMDA4NDQsIDAuMDAwODQ0LCAwLjAwMDg0MiwgMC4wMDA4NDMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiU04iOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFEJiFSTiYhU0UmIVNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9STl9FUV8wX0FOX1NFX0VRXzBfQU5fU0lfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjA4MjgyMSwgMC4wODk3ODcsIDAuMDk5NzU0LCAwLjEwODU2NywgMC4xMTU4NjcsIDAuMTI1NDQ3LCAwLjEzMjU2NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJlY292ZXJ5X3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiUk4iOwotICAgICAgc2RmX2NvbmQgOiAiUk4gPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQocmVjb3ZlcnlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAsIC0wLjAwNSwgLTAuMDE3NSwgLTAuMDIzNzUsIC0wLjAzNjI1LCAtMC4wNCwgLTAuMDQ4NzUiLCBcCi0gICAgICAgICAgIjAuMDExMjUsIDAsIC0wLjAxMjUsIC0wLjAxODc1LCAtMC4wMjUsIC0wLjAzNSwgLTAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMDE3NSwgMC4wMDYyNSwgLTAuMDA2MjUsIC0wLjAxMjUsIC0wLjAxODc1LCAtMC4wMjg3NSwgLTAuMDM3NSIsIFwKLSAgICAgICAgICAiMC4wMjM3NSwgMC4wMTI1LCAwLjAwNjI1LCAtMC4wMDYyNSwgLTAuMDEyNSwgLTAuMDIyNSwgLTAuMDI1IiwgXAotICAgICAgICAgICIwLjAzLCAwLjAyNSwgMC4wMTI1LCAwLCAtMC4wMDYyNSwgLTAuMDE2MjUsIC0wLjAxODc1IiwgXAotICAgICAgICAgICIwLjA0NjI1LCAwLjAzNSwgMC4wMjI1LCAwLjAxNjI1LCAwLjAxLCAwLCAtMC4wMDg3NSIsIFwKLSAgICAgICAgICAiMC4wNTUsIDAuMDQzNzUsIDAuMDMxMjUsIDAuMDI1LCAwLjAxODc1LCAwLjAwODc1LCAwIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogcmVtb3ZhbF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlJOIjsKLSAgICAgIHNkZl9jb25kIDogIlJOID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHJlbW92YWxfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDMxMjUsIDAuMDM2MjUsIDAuMDQ4NzUsIDAuMDU1LCAwLjA2MTI1LCAwLjA3MTI1LCAwLjA3Mzc1IiwgXAotICAgICAgICAgICIwLjAyLCAwLjAzMTI1LCAwLjAzNzUsIDAuMDUsIDAuMDU2MjUsIDAuMDY2MjUsIDAuMDY4NzUiLCBcCi0gICAgICAgICAgIjAuMDEzNzUsIDAuMDI1LCAwLjAzMTI1LCAwLjAzNzUsIDAuMDUsIDAuMDUzNzUsIDAuMDYyNSIsIFwKLSAgICAgICAgICAiMC4wMDc1LCAwLjAxMjUsIDAuMDI1LCAwLjAzMTI1LCAwLjAzNzUsIDAuMDQ3NSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiMC4wMDEyNSwgMC4wMTI1LCAwLjAxODc1LCAwLjAyNSwgMC4wMzEyNSwgMC4wNDEyNSwgMC4wNSIsIFwKLSAgICAgICAgICAiLTAuMDA4NzUsIDAuMDAyNSwgMC4wMDg3NSwgMC4wMjEyNSwgMC4wMjc1LCAwLjAzMTI1LCAwLjA0IiwgXAotICAgICAgICAgICItMC4wMTEyNSwgLTAuMDA2MjUsIDAuMDA2MjUsIDAuMDEyNSwgMC4wMTg3NSwgMC4wMjg3NSwgMC4wMzEyNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IFNERkZTUkhRWDQgKgotICogLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoU0RGRlNSSFFYNCkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAxLjc3MjA3OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIGZmIChOMzUsUUJJTlQpIHsKLSAgICBuZXh0X3N0YXRlIDogIigoU0UgU0kpICsgKCFTRSBEKSkiOwotICAgIGNsb2NrZWRfb24gOiAiQ0siOwotICAgIGNsZWFyIDogIighUk4pIjsKLSAgICBwcmVzZXQgOiAiKCFTTikiOwotICAgIGNsZWFyX3ByZXNldF92YXIxIDogSDsKLSAgfQotICBwaW4oQ0spICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY5NTkxNDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2OTU5MTQ7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjk1NzYzOwotICAgIGNsb2NrIDogdHJ1ZTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDQwODYsIDAuMDA0MDcyLCAwLjAwNDEzMiwgMC4wMDQyNDEsIDAuMDA0MzM1LCAwLjAwNDUzOSwgMC4wMDQ3NDMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMTA5NjIsIDAuMDEwOTQ1LCAwLjAxMTA1NCwgMC4wMTExNDcsIDAuMDExMjgzLCAwLjAxMTU1NCwgMC4wMTE2NzYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFEJlJOJiFTRSYhU0kmU04iOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1JOX0VRXzFfQU5fU0VfRVFfMF9BTl9TSV9FUV8wX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wOTc5OTQsIDAuMTA2MjQ0LCAwLjExNjA4NSwgMC4xMjQwMDcsIDAuMTMwOTMsIDAuMTM5Njg1LCAwLjE0NjI3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDgxMDI5LCAwLjA4OTA4MywgMC4wOTg4OTUsIDAuMTA2OTgsIDAuMTEzMjk5LCAwLjEyMTc1NSwgMC4xMjc5MDEiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEQpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTAwODU0OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTAwNjUyOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTAwODU0OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNTU2OSwgMC4wMDU1MjUsIDAuMDA1NTM5LCAwLjAwNTU4NSwgMC4wMDU2NywgMC4wMDU4MTcsIDAuMDA1OTcyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA3MzU3LCAwLjAwNzMyOCwgMC4wMDczNDIsIDAuMDA3MzkyLCAwLjAwNzQ1OCwgMC4wMDc2MDMsIDAuMDA3NzU4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlJOJiFTRSZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJSTl9FUV8xX0FOX1NFX0VRXzBfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMjUsIC0wLjAyLCAtMC4wMTM3NSwgLTAuMDA3NSwgLTAuMDA3NSwgLTAuMDAzNzUsIC0wLjAwMTI1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwODc1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDMxMjUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTUsIC0wLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDIxMjUsIC0wLjAxODc1IiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA0Mzc1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAyNzUsIC0wLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDU4NzUsIC0wLjA1Mzc1LCAtMC4wNDc1LCAtMC4wNDc1LCAtMC4wNDEyNSwgLTAuMDM3NSwgLTAuMDM1IiwgXAotICAgICAgICAgICItMC4wNjc1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjA1LCAtMC4wNDYyNSwgLTAuMDQzNzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLCAwLjAwNSwgMC4wMTc1LCAwLjAyMzc1LCAwLjAyMzc1LCAwLjAzMzc1LCAwLjAzNjI1IiwgXAotICAgICAgICAgICItMC4wMDUsIDAsIDAuMDA2MjUsIDAuMDEyNSwgMC4wMTg3NSwgMC4wMjg3NSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDExMjUsIC0wLjAwNjI1LCAwLCAwLjAwNjI1LCAwLjAxMjUsIDAuMDIyNSwgMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjAxNzUsIC0wLjAxMjUsIDAsIDAuMDA2MjUsIDAuMDA2MjUsIDAuMDE2MjUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMCwgMC4wMDYyNSwgMC4wMSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDI3NSwgLTAuMDIyNSwgLTAuMDEsIC0wLjAwMzc1LCAtMC4wMDM3NSwgMC4wMDYyNSwgMC4wMDg3NSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLjAwMzc1LCAwLjAwNjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJSTiYhU0UmU04iOwotICAgICAgc2RmX2NvbmQgOiAiUk5fRVFfMV9BTl9TRV9FUV8wX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc1LCAwLjA2Mzc1LCAwLjA1MTI1LCAwLjA0NSwgMC4wMzg3NSwgMC4wMjg3NSwgMC4wMjYyNSIsIFwKLSAgICAgICAgICAiMC4wOCwgMC4wNjg3NSwgMC4wNTYyNSwgMC4wNSwgMC4wNDM3NSwgMC4wNCwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4wODYyNSwgMC4wNzUsIDAuMDY4NzUsIDAuMDU2MjUsIDAuMDUsIDAuMDQ2MjUsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiMC4wOTI1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1MjUsIDAuMDUiLCBcCi0gICAgICAgICAgIjAuMDk4NzUsIDAuMDg3NSwgMC4wODEyNSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1ODc1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICIwLjEwODc1LCAwLjA5NzUsIDAuMDg1LCAwLjA3ODc1LCAwLjA3MjUsIDAuMDY4NzUsIDAuMDYiLCBcCi0gICAgICAgICAgIjAuMTExMjUsIDAuMTA2MjUsIDAuMDkzNzUsIDAuMDg3NSwgMC4wODEyNSwgMC4wNzEyNSwgMC4wNjg3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1LCAwLjAzODc1LCAwLjAyNjI1LCAwLjAyLCAwLjAxMzc1LCAwLjAwMzc1LCAwLjAwMTI1IiwgXAotICAgICAgICAgICIwLjA1NSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAyNSwgMC4wMTg3NSwgMC4wMTUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMDYxMjUsIDAuMDUsIDAuMDQzNzUsIDAuMDMxMjUsIDAuMDI1LCAwLjAyMTI1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMDY3NSwgMC4wNTYyNSwgMC4wNSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyNzUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMDczNzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzMzc1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiMC4wNzc1LCAwLjA3MjUsIDAuMDYsIDAuMDUzNzUsIDAuMDQ3NSwgMC4wMzc1LCAwLjAyODc1IiwgXAotICAgICAgICAgICIwLjA4NjI1LCAwLjA3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1LCAwLjA0LCAwLjAzNzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFEpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMS4zNzM4MTsKLSAgICBmdW5jdGlvbiA6ICJOMzUiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5vbl91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcmlzaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg5OTM0LCAwLjE0NDczNCwgMC4xOTg1NDMsIDAuMjM2OTcsIDAuMjk4NDQsIDAuMzUyMjUsIDAuNDI5MDg5IiwgXAotICAgICAgICAgICIwLjA5ODExMywgMC4xNTI5MTUsIDAuMjA2NzMsIDAuMjQ1MTQzLCAwLjMwNjYzNSwgMC4zNjA0MTcsIDAuNDM3MjYzIiwgXAotICAgICAgICAgICIwLjEwNzg4LCAwLjE2MjY4MiwgMC4yMTY0OTYsIDAuMjU0OTEzLCAwLjMxNjM1OSwgMC4zNzAxODQsIDAuNDQ3MDMyIiwgXAotICAgICAgICAgICIwLjExNTc1NiwgMC4xNzA1NTUsIDAuMjI0MzYzLCAwLjI2Mjc4NSwgMC4zMjQyNzgsIDAuMzc4MDU4LCAwLjQ1NDkwMSIsIFwKLSAgICAgICAgICAiMC4xMjI3NDksIDAuMTc3NTksIDAuMjMxMzk5LCAwLjI2OTgxOSwgMC4zMzEzMTgsIDAuMzg1MDk3LCAwLjQ2MTk0IiwgXAotICAgICAgICAgICIwLjEzMTUyNiwgMC4xODYzNDIsIDAuMjQwMTUyLCAwLjI3ODU3NCwgMC4zNDAwNjYsIDAuMzkzODQ1LCAwLjQ3MDY4NiIsIFwKLSAgICAgICAgICAiMC4xMzg0MzEsIDAuMTkzMTk1LCAwLjI0NzAyLCAwLjI4NTQ1MSwgMC4zNDY5MTQsIDAuNDAwNzAxLCAwLjQ3NzU2MyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyNTE4LCAwLjEzNDY4NiwgMC4yNDc1NzIsIDAuMzI4NDc0LCAwLjQ1Nzc4OCwgMC41NzIxNzMsIDAuNzM0NiIsIFwKLSAgICAgICAgICAiMC4wMjUxNTUsIDAuMTM0NzIxLCAwLjI0NzY4OSwgMC4zMjg2MjQsIDAuNDU4NTc1LCAwLjU3MjE1OSwgMC43MzQ0MzkiLCBcCi0gICAgICAgICAgIjAuMDI1MTU1LCAwLjEzNDY4NywgMC4yNDc2MDksIDAuMzI4NDQsIDAuNDU4MTU2LCAwLjU3MjE5OCwgMC43MzQ0NzQiLCBcCi0gICAgICAgICAgIjAuMDI1MTQsIDAuMTM0NzYsIDAuMjQ3Njg2LCAwLjMyODY0OSwgMC40NTg1OCwgMC41NzIyMDksIDAuNzM0Mzk3IiwgXAotICAgICAgICAgICIwLjAyNTA3LCAwLjEzNDU4MiwgMC4yNDc2ODgsIDAuMzI4NzE5LCAwLjQ1ODYxOCwgMC41NzIyLCAwLjczNDQ0IiwgXAotICAgICAgICAgICIwLjAyNTE1OSwgMC4xMzQ3MTYsIDAuMjQ3NjkyLCAwLjMyODYzMiwgMC40NTg1ODMsIDAuNTcyMTc5LCAwLjczNDM4NiIsIFwKLSAgICAgICAgICAiMC4wMjUxMjcsIDAuMTM0NzM0LCAwLjI0NzY0NCwgMC4zMjg2NjEsIDAuNDU4MDI5LCAwLjU3MjE2NiwgMC43MzQ1MiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5Nzk5NCwgMC4xNTI4NDUsIDAuMjA2NjU5LCAwLjI0NTA3OSwgMC4zMDY1MzksIDAuMzYwMzM3LCAwLjQzNzE3NyIsIFwKLSAgICAgICAgICAiMC4xMDYyNDQsIDAuMTYxMDg4LCAwLjIxNDkwNiwgMC4yNTMzMjMsIDAuMzE0NzgzLCAwLjM2ODU4OCwgMC40NDU0MTciLCBcCi0gICAgICAgICAgIjAuMTE2MDg2LCAwLjE3MDk0MiwgMC4yMjQ3NiwgMC4yNjMxNzYsIDAuMzI0NjM2LCAwLjM3ODQxOSwgMC40NTUyNyIsIFwKLSAgICAgICAgICAiMC4xMjQwMDgsIDAuMTc4ODQ3LCAwLjIzMjY2NiwgMC4yNzEwODMsIDAuMzMyNTQyLCAwLjM4NjMyNiwgMC40NjMxNzgiLCBcCi0gICAgICAgICAgIjAuMTMwOTMxLCAwLjE4NTc4MiwgMC4yMzk1OTYsIDAuMjc4MDExLCAwLjMzOTQ3MywgMC4zOTMyNTMsIDAuNDcwMTE2IiwgXAotICAgICAgICAgICIwLjEzOTY4NywgMC4xOTQ1NTIsIDAuMjQ4MzY4LCAwLjI4Njc4NSwgMC4zNDgyNDUsIDAuNDAyMDU2LCAwLjQ3ODg4NCIsIFwKLSAgICAgICAgICAiMC4xNDYyODksIDAuMjAxMTI0LCAwLjI1NDk0NSwgMC4yOTMzNiwgMC4zNTQ4MjUsIDAuNDA4NjU1LCAwLjQ4NTQ1NCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyNDI2MywgMC4xMzI2NzYsIDAuMjQ0MDQ5LCAwLjMyNDE1MSwgMC40NTIxNzUsIDAuNTY0MjI5LCAwLjcyNDIzIiwgXAotICAgICAgICAgICIwLjAyNDI4OSwgMC4xMzI2NzYsIDAuMjQ0MDQ1LCAwLjMyNDE0OCwgMC40NTIyLCAwLjU2NDI0OSwgMC43MjQyNDEiLCBcCi0gICAgICAgICAgIjAuMDI0MjgyLCAwLjEzMjY3OCwgMC4yNDQwNDcsIDAuMzI0MTM5LCAwLjQ1MjE5MiwgMC41NjQxMzIsIDAuNzIzNDQ2IiwgXAotICAgICAgICAgICIwLjAyNDI1NSwgMC4xMzI2NzQsIDAuMjQ0MDQ2LCAwLjMyNDE0MSwgMC40NTIxNzEsIDAuNTY0MTQyLCAwLjcyMzQ1NyIsIFwKLSAgICAgICAgICAiMC4wMjQyMzQsIDAuMTMyNjgyLCAwLjI0NDA0OCwgMC4zMjM3ODYsIDAuNDUyMTczLCAwLjU2NDEyNywgMC43MjMzNDIiLCBcCi0gICAgICAgICAgIjAuMDI0MjE0LCAwLjEzMjY4LCAwLjI0NDAyOCwgMC4zMjQxMjcsIDAuNDUyMTA2LCAwLjU2NDI4LCAwLjcyNDIzIiwgXAotICAgICAgICAgICIwLjAyNDIzNywgMC4xMzI3MDgsIDAuMjQ0MTEzLCAwLjMyNDIxMSwgMC40NTIxMDcsIDAuNTYzNDU0LCAwLjcyNDAzMSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogY2xlYXI7Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTE2NDk5LCAwLjE3MTQwNSwgMC4yMjUyMjksIDAuMjYzNjQyLCAwLjMyNTEwOSwgMC4zNzg5MDIsIDAuNDU1Nzc5IiwgXAotICAgICAgICAgICIwLjEyNDM5MywgMC4xNzkyNzksIDAuMjMzMDk2LCAwLjI3MTUxMSwgMC4zMzI5NzcsIDAuMzg2NzcyLCAwLjQ2MzY0IiwgXAotICAgICAgICAgICIwLjEzMjk0NywgMC4xODc4ODIsIDAuMjQxNjk3LCAwLjI4MDEyMiwgMC4zNDE1MjYsIDAuMzk1MzI1LCAwLjQ3MjE5OSIsIFwKLSAgICAgICAgICAiMC4xMzk0NTksIDAuMTk0MzE5LCAwLjI0ODEzMSwgMC4yODY1NTYsIDAuMzQ4MDE4LCAwLjQwMTgxMiwgMC40Nzg2ODEiLCBcCi0gICAgICAgICAgIjAuMTQ0Njg1LCAwLjE5OTUwMSwgMC4yNTMzMjQsIDAuMjkxNzM3LCAwLjM1MzIwNCwgMC40MDcwMDMsIDAuNDgzODczIiwgXAotICAgICAgICAgICIwLjE1MTQyOSwgMC4yMDYxNzYsIDAuMjU5OTk5LCAwLjI5ODQxMywgMC4zNTk4NzksIDAuNDEzNjc1LCAwLjQ5MDU0OCIsIFwKLSAgICAgICAgICAiMC4xNTY0NzQsIDAuMjExMzAzLCAwLjI2NTEwMSwgMC4zMDM1MzEsIDAuMzY1MDAzLCAwLjQxODgyLCAwLjQ5NTY1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDI0NTI5LCAwLjEzMjcwNSwgMC4yNDQwMiwgMC4zMjQzNTQsIDAuNDUyMzA0LCAwLjU2NDI2NiwgMC43MjQyNDEiLCBcCi0gICAgICAgICAgIjAuMDI0NTI1LCAwLjEzMjcxMiwgMC4yNDQyOTYsIDAuMzI0MzEsIDAuNDUyMjU5LCAwLjU2MzYyOSwgMC43MjMyMDciLCBcCi0gICAgICAgICAgIjAuMDI0NTA2LCAwLjEzMjcwMSwgMC4yNDQwNDksIDAuMzI0NDA4LCAwLjQ1MjI3NSwgMC41NjQzMDMsIDAuNzI0MDE5IiwgXAotICAgICAgICAgICIwLjAyNDU3MiwgMC4xMzI3MDIsIDAuMjQ0MTIyLCAwLjMyNDM0MiwgMC40NTIyNTUsIDAuNTY0MTAxLCAwLjcyMjg5NSIsIFwKLSAgICAgICAgICAiMC4wMjQ1NjEsIDAuMTMyNzE2LCAwLjI0NDM0OCwgMC4zMjQzMTYsIDAuNDUyMjU4LCAwLjU2NDE1LCAwLjcyMzI5NSIsIFwKLSAgICAgICAgICAiMC4wMjQ1MzMsIDAuMTMyNzM4LCAwLjI0NDI3MywgMC4zMjQzMywgMC40NTIyNiwgMC41NjQxMDEsIDAuNzIzMzI4IiwgXAotICAgICAgICAgICIwLjAyNDU0MSwgMC4xMzI3MDQsIDAuMjQ0MjU4LCAwLjMyNDQzLCAwLjQ1MjMzMywgMC41NjQ0NSwgMC43MjM2MDYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiU04iOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHByZXNldDsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzc1NjcsIDAuMTMyMjY0LCAwLjE4NjA3NCwgMC4yMjQ1MDksIDAuMjg1OTgyLCAwLjMzOTgwOCwgMC40MTY3NDIiLCBcCi0gICAgICAgICAgIjAuMDg0MDc0LCAwLjEzODc0OSwgMC4xOTI1NjUsIDAuMjMxMDEyLCAwLjI5MjUyOSwgMC4zNDYyODcsIDAuNDIzMTkzIiwgXAotICAgICAgICAgICIwLjA5MzAzMywgMC4xNDc2NzcsIDAuMjAxNDk1LCAwLjIzOTkxMSwgMC4zMDEzODcsIDAuMzU1MjI1LCAwLjQzMjEzNyIsIFwKLSAgICAgICAgICAiMC4xMDIxMDUsIDAuMTU2NzMxLCAwLjIxMDUzMywgMC4yNDg5NjMsIDAuMzEwNDY1LCAwLjM2NDI2NCwgMC40NDExNTIiLCBcCi0gICAgICAgICAgIjAuMTA5NzMxLCAwLjE2NDM4OCwgMC4yMTgxOTksIDAuMjU2NjE3LCAwLjMxODA5OCwgMC4zNzE5MTgsIDAuNDQ4ODEiLCBcCi0gICAgICAgICAgIjAuMTE5ODIyLCAwLjE3NDUxMiwgMC4yMjgzMTQsIDAuMjY2NzMsIDAuMzI4MjU5LCAwLjM4MjA1OCwgMC40NTg4OTIiLCBcCi0gICAgICAgICAgIjAuMTI3MzMzLCAwLjE4MjA0LCAwLjIzNTgzOSwgMC4yNzQyNjQsIDAuMzM1NzM0LCAwLjM4OTYwNCwgMC40NjY0MjciKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjQ1NjIsIDAuMTM0NTgxLCAwLjI0Nzg0LCAwLjMyODk1NCwgMC40NTg2NzcsIDAuNTcyMzg5LCAwLjczNDU1MyIsIFwKLSAgICAgICAgICAiMC4wMjQ1NjcsIDAuMTM0NTM0LCAwLjI0NzgxOSwgMC4zMjg5NDksIDAuNDU4ODA1LCAwLjU3MjMyMiwgMC43MzQ1OTEiLCBcCi0gICAgICAgICAgIjAuMDI0NTQzLCAwLjEzNDU3OSwgMC4yNDc3NzksIDAuMzI4OTIyLCAwLjQ1ODY1MywgMC41NzIzODcsIDAuNzM0NjU3IiwgXAotICAgICAgICAgICIwLjAyNDUzMywgMC4xMzQ1ODIsIDAuMjQ3ODIsIDAuMzI4OTMsIDAuNDU4ODEzLCAwLjU3MjM4NCwgMC43MzQ1NDIiLCBcCi0gICAgICAgICAgIjAuMDI0NjMxLCAwLjEzNDYyMiwgMC4yNDc4NjQsIDAuMzI4OTIxLCAwLjQ1ODc1OCwgMC41NzIzMjMsIDAuNzM0NTQ4IiwgXAotICAgICAgICAgICIwLjAyNDg1MywgMC4xMzQ2MDcsIDAuMjQ3ODMsIDAuMzI4OTkyLCAwLjQ1ODc1MywgMC41NzIzNjUsIDAuNzM0NTkyIiwgXAotICAgICAgICAgICIwLjAyNTA3OSwgMC4xMzQ2MTMsIDAuMjQ3ODMzLCAwLjMyOTA1NSwgMC40NTg3OTIsIDAuNTcyMjM1LCAwLjczNDU1OCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwMDgwMywgMC4xNTU2NjMsIDAuMjA5NDksIDAuMjQ3OTE5LCAwLjMwOTM3MiwgMC4zNjMxNzgsIDAuNDQwMDUxIiwgXAotICAgICAgICAgICIwLjEwNzM2MiwgMC4xNjIyMjYsIDAuMjE2MDQxLCAwLjI1NDQ2NiwgMC4zMTU5MzMsIDAuMzY5NzI0LCAwLjQ0NjU5NiIsIFwKLSAgICAgICAgICAiMC4xMTQ5NTUsIDAuMTY5Nzc0LCAwLjIyMzU4NywgMC4yNjIwMSwgMC4zMjM0NzcsIDAuMzc3MjcyLCAwLjQ1NDEzOCIsIFwKLSAgICAgICAgICAiMC4xMjI0MDMsIDAuMTc3MjgzLCAwLjIzMTEwMSwgMC4yNjk1MTEsIDAuMzMwOTgyLCAwLjM4NDc3NywgMC40NjE2NDgiLCBcCi0gICAgICAgICAgIjAuMTI5NTkzLCAwLjE4NDQzNCwgMC4yMzgyNTMsIDAuMjc2NjY0LCAwLjMzODEzNiwgMC4zOTE5MjksIDAuNDY4ODAxIiwgXAotICAgICAgICAgICIwLjEzOTg2NywgMC4xOTQ2OTksIDAuMjQ4NTA2LCAwLjI4NjkyMywgMC4zNDgzOTMsIDAuNDAyMTgyLCAwLjQ3OTA0OSIsIFwKLSAgICAgICAgICAiMC4xNDc4MDYsIDAuMjAyNzE4LCAwLjI1NjUyNywgMC4yOTQ5NTcsIDAuMzU2NDQxLCAwLjQxMDIzNCwgMC40ODcwNTYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjQ1MDUsIDAuMTMyNzA1LCAwLjI0NDMxNCwgMC4zMjQ0NTcsIDAuNDUyMjksIDAuNTY0MjEyLCAwLjcyMzI3IiwgXAotICAgICAgICAgICIwLjAyNDU2LCAwLjEzMjY3OCwgMC4yNDQwODQsIDAuMzI0MzM0LCAwLjQ1MjI4MSwgMC41NjQxNTUsIDAuNzI0MjI2IiwgXAotICAgICAgICAgICIwLjAyNDU2LCAwLjEzMjcwMSwgMC4yNDQxMjMsIDAuMzIzODk1LCAwLjQ1MjI1NiwgMC41NjQwODQsIDAuNzIzMjY3IiwgXAotICAgICAgICAgICIwLjAyNDUyNiwgMC4xMzI3MDUsIDAuMjQ0MjkyLCAwLjMyNDMwNywgMC40NTIyNTQsIDAuNTY0MjI2LCAwLjcyMzAyNiIsIFwKLSAgICAgICAgICAiMC4wMjQ1NzcsIDAuMTMyNzEsIDAuMjQ0MDcxLCAwLjMyNDE4LCAwLjQ1MjI0OCwgMC41NjM5OTQsIDAuNzIzMjQxIiwgXAotICAgICAgICAgICIwLjAyNDc2NiwgMC4xMzI3MzYsIDAuMjQ0MTQ4LCAwLjMyMzkzMSwgMC40NTIyNzIsIDAuNTY0MjcsIDAuNzIzNTc5IiwgXAotICAgICAgICAgICIwLjAyNDgzMiwgMC4xMzI4MDMsIDAuMjQ0MDM0LCAwLjMyNDI5NCwgMC40NTIzMTIsIDAuNTY0Mzk4LCAwLjcyNDAzOCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxNDczNSwgMC4wMTQ4NjQsIDAuMDE0ODg3LCAwLjAxNDg5NiwgMC4wMTQ5MDMsIDAuMDE0OTA2LCAwLjAxNDkxIiwgXAotICAgICAgICAgICIwLjAxNDcxNywgMC4wMTQ4NDQsIDAuMDE0ODY3LCAwLjAxNDg3NSwgMC4wMTQ4ODEsIDAuMDE0ODg0LCAwLjAxNDg4NyIsIFwKLSAgICAgICAgICAiMC4wMTQ3NzQsIDAuMDE0OTAzLCAwLjAxNDkyNywgMC4wMTQ5MzMsIDAuMDE0OTQzLCAwLjAxNDk0MiwgMC4wMTQ5NDYiLCBcCi0gICAgICAgICAgIjAuMDE0OTIxLCAwLjAxNTA0OSwgMC4wMTUwNzIsIDAuMDE1MDc5LCAwLjAxNTA4NSwgMC4wMTUwODgsIDAuMDE1MDkiLCBcCi0gICAgICAgICAgIjAuMDE0OTc1LCAwLjAxNTExNSwgMC4wMTUxNDEsIDAuMDE1MTQ4LCAwLjAxNTE1OSwgMC4wMTUxNTksIDAuMDE1MTYxIiwgXAotICAgICAgICAgICIwLjAxNTIyMiwgMC4wMTUzNTksIDAuMDE1Mzc4LCAwLjAxNTM4OCwgMC4wMTUzOTMsIDAuMDE1Mzk2LCAwLjAxNTQwMiIsIFwKLSAgICAgICAgICAiMC4wMTU0MTMsIDAuMDE1NTM5LCAwLjAxNTU1OCwgMC4wMTU1MzYsIDAuMDE1NTcxLCAwLjAxNTU3NSwgMC4wMTU1OCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE0MDY5LCAwLjAxNDI3OCwgMC4wMTQzMTYsIDAuMDE0MzMsIDAuMDE0MzQsIDAuMDE0MzQ3LCAwLjAxNDM1MSIsIFwKLSAgICAgICAgICAiMC4wMTQwNjgsIDAuMDE0MjY5LCAwLjAxNDMwNywgMC4wMTQzMTksIDAuMDE0MzMsIDAuMDE0MzM1LCAwLjAxNDM0MSIsIFwKLSAgICAgICAgICAiMC4wMTQxNTEsIDAuMDE0MzUyLCAwLjAxNDM5LCAwLjAxNDQwMiwgMC4wMTQ0MTMsIDAuMDE0NDE4LCAwLjAxNDQyMyIsIFwKLSAgICAgICAgICAiMC4wMTQyOTQsIDAuMDE0NTAxLCAwLjAxNDU0LCAwLjAxNDU1MywgMC4wMTQ1NjMsIDAuMDE0NTY5LCAwLjAxNDU3NCIsIFwKLSAgICAgICAgICAiMC4wMTQzNjYsIDAuMDE0NTgyLCAwLjAxNDYyMiwgMC4wMTQ2MzUsIDAuMDE0NjQ2LCAwLjAxNDY1MiwgMC4wMTQ2NTciLCBcCi0gICAgICAgICAgIjAuMDE0NjIxLCAwLjAxNDg0MiwgMC4wMTQ4OCwgMC4wMTQ4OTIsIDAuMDE0OTAzLCAwLjAxNDkwOCwgMC4wMTQ5MTMiLCBcCi0gICAgICAgICAgIjAuMDE0ODUzLCAwLjAxNTA0LCAwLjAxNTA5OCwgMC4wMTUxMDksIDAuMDE1MTIsIDAuMDE1MTI3LCAwLjAxNTEzMiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxNzIxNSwgMC4wMTc0MjIsIDAuMDE3NDY1LCAwLjAxNzQ3OSwgMC4wMTc0OTIsIDAuMDE3NDk4LCAwLjAxNzUwNCIsIFwKLSAgICAgICAgICAiMC4wMTcyMDksIDAuMDE3NDE4LCAwLjAxNzQ2LCAwLjAxNzQ3NCwgMC4wMTc0ODcsIDAuMDE3NDkzLCAwLjAxNzQ5OSIsIFwKLSAgICAgICAgICAiMC4wMTcyNjYsIDAuMDE3NDczLCAwLjAxNzUxNiwgMC4wMTc1MywgMC4wMTc1NDMsIDAuMDE3NTQ5LCAwLjAxNzU1NCIsIFwKLSAgICAgICAgICAiMC4wMTczNTEsIDAuMDE3NTU3LCAwLjAxNzU5OCwgMC4wMTc2MTIsIDAuMDE3NjI1LCAwLjAxNzYzMSwgMC4wMTc2MzciLCBcCi0gICAgICAgICAgIjAuMDE3NDU2LCAwLjAxNzY2NSwgMC4wMTc3MDcsIDAuMDE3NzIxLCAwLjAxNzczNCwgMC4wMTc3NCwgMC4wMTc3NDUiLCBcCi0gICAgICAgICAgIjAuMDE3NjU1LCAwLjAxNzg4MiwgMC4wMTc5MjcsIDAuMDE3OTQyLCAwLjAxNzk1NSwgMC4wMTc5NjIsIDAuMDE3OTY4IiwgXAotICAgICAgICAgICIwLjAxNzg0NSwgMC4wMTgwMzgsIDAuMDE4MDgxLCAwLjAxODA5MywgMC4wMTgxMDgsIDAuMDE4MTE0LCAwLjAxODEyIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3Bvd2VyKHNjYWxhcikgewotICAgICAgICB2YWx1ZXMoIjAiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTc5OTUsIDAuMDE4MTIyLCAwLjAxODE0MywgMC4wMTgxNSwgMC4wMTgxNTUsIDAuMDE4MTU4LCAwLjAxODE2MSIsIFwKLSAgICAgICAgICAiMC4wMTc5NTQsIDAuMDE4MDg0LCAwLjAxODEwNSwgMC4wMTgxMTMsIDAuMDE4MTE4LCAwLjAxODEyMSwgMC4wMTgxNTQiLCBcCi0gICAgICAgICAgIjAuMDE3OTk4LCAwLjAxODEyNiwgMC4wMTgxNDcsIDAuMDE4MTU0LCAwLjAxODE2OSwgMC4wMTgxNjIsIDAuMDE4MTY1IiwgXAotICAgICAgICAgICIwLjAxODA4MywgMC4wMTgyMjYsIDAuMDE4MjUxLCAwLjAxODI2LCAwLjAxODI2OSwgMC4wMTgyNjksIDAuMDE4MjcyIiwgXAotICAgICAgICAgICIwLjAxODIzMiwgMC4wMTgzNzQsIDAuMDE4Mzk2LCAwLjAxODQwNCwgMC4wMTg0MSwgMC4wMTg0MTIsIDAuMDE4NDE5IiwgXAotICAgICAgICAgICIwLjAxODUxNSwgMC4wMTg2NSwgMC4wMTg2NzMsIDAuMDE4Njc5LCAwLjAxODcsIDAuMDE4Njk1LCAwLjAxODY5OSIsIFwKLSAgICAgICAgICAiMC4wMTg4MDIsIDAuMDE4OTM1LCAwLjAxODk2MywgMC4wMTg5NjgsIDAuMDE4OTczLCAwLjAxODk3NSwgMC4wMTg5ODMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMzU3NCwgMC4wMTM3OCwgMC4wMTM4MjIsIDAuMDEzODM4LCAwLjAxMzg0OSwgMC4wMTM4NTYsIDAuMDEzODYyIiwgXAotICAgICAgICAgICIwLjAxMzQ5NCwgMC4wMTM3LCAwLjAxMzc0MywgMC4wMTM3NTcsIDAuMDEzNzcsIDAuMDEzNzc2LCAwLjAxMzc4MiIsIFwKLSAgICAgICAgICAiMC4wMTM0NjcsIDAuMDEzNjc0LCAwLjAxMzcxOCwgMC4wMTM3MzIsIDAuMDEzNzQ1LCAwLjAxMzc1MiwgMC4wMTM3NTgiLCBcCi0gICAgICAgICAgIjAuMDEzNDg0LCAwLjAxMzY5MywgMC4wMTM3MzcsIDAuMDEzNzUxLCAwLjAxMzc2NCwgMC4wMTM3NzEsIDAuMDEzNzc3IiwgXAotICAgICAgICAgICIwLjAxMzUyNiwgMC4wMTM3MzcsIDAuMDEzNzgzLCAwLjAxMzc5OCwgMC4wMTM4MTEsIDAuMDEzODE4LCAwLjAxMzgyNSIsIFwKLSAgICAgICAgICAiMC4wMTM2OTcsIDAuMDEzODcxLCAwLjAxMzkzNCwgMC4wMTM5NDksIDAuMDEzOTYyLCAwLjAxMzk3LCAwLjAxMzk3NyIsIFwKLSAgICAgICAgICAiMC4wMTM4MSwgMC4wMTQwMDQsIDAuMDE0MDUxLCAwLjAxNDA2NiwgMC4wMTQwOCwgMC4wMTQwODYsIDAuMDE0MDkzIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihSTikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjI0OTQyOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYyNDk0MjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2MjQ4MDU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwOTk3LCAwLjAwMDk5OCwgMC4wMDEwNjYsIDAuMDAxMTYyLCAwLjAwMTI3NSwgMC4wMDE0OTMsIDAuMDAxNjc0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzMTM2LCAwLjAwMzEzOSwgMC4wMDMxOTksIDAuMDAzMjg4LCAwLjAwMzQwNSwgMC4wMDM2MzQsIDAuMDAzODI2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRCYhU0UmIVNJJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9TRV9FUV8wX0FOX1NJX0VRXzBfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjExNjQ5OSwgMC4xMjQzOTMsIDAuMTMyOTQ3LCAwLjEzOTQ1OSwgMC4xNDQ2MiwgMC4xNTE0MjksIDAuMTU2NDc0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogcmVjb3ZlcnlfcmlzaW5nOwotICAgICAgd2hlbiA6ICJTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJTTiA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChyZWNvdmVyeV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNSwgMC4wMzg3NSwgMC4wMzI1LCAwLjAyLCAwLjAxMzc1LCAwLjAxLCAwLjAwMTI1IiwgXAotICAgICAgICAgICIwLjA1NSwgMC4wNSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMTUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4wNjc1LCAwLjA1NjI1LCAwLjA1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDI3NSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4wNzM3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDMzNzUsIDAuMDI1IiwgXAotICAgICAgICAgICIwLjA4LCAwLjA2ODc1LCAwLjA1NjI1LCAwLjA1LCAwLjA0Mzc1LCAwLjAzMzc1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICIwLjA4Mzc1LCAwLjA3MjUsIDAuMDY2MjUsIDAuMDYsIDAuMDUzNzUsIDAuMDQzNzUsIDAuMDM1IiwgXAotICAgICAgICAgICIwLjA4NjI1LCAwLjA4MTI1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDQ2MjUsIDAuMDQzNzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiU04iOwotICAgICAgdGltaW5nX3R5cGUgOiByZWNvdmVyeV9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEJiFTRSYhU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1NFX0VRXzBfQU5fU0lfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChyZWNvdmVyeV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTYyNSwgMC4wNjEyNSwgMC4wNjc1LCAwLjA3Mzc1LCAwLjA4LCAwLjA5LCAwLjA5MjUiLCBcCi0gICAgICAgICAgIjAuMDUxMjUsIDAuMDU2MjUsIDAuMDYyNSwgMC4wNjg3NSwgMC4wNzUsIDAuMDc4NzUsIDAuMDg3NSIsIFwKLSAgICAgICAgICAiMC4wNDUsIDAuMDUsIDAuMDU2MjUsIDAuMDYyNSwgMC4wNjg3NSwgMC4wNzg3NSwgMC4wODc1IiwgXAotICAgICAgICAgICIwLjAzODc1LCAwLjA1LCAwLjA1NjI1LCAwLjA2MjUsIDAuMDYyNSwgMC4wNzI1LCAwLjA4MTI1IiwgXAotICAgICAgICAgICIwLjAzODc1LCAwLjA0Mzc1LCAwLjA1LCAwLjA1NjI1LCAwLjA2MjUsIDAuMDcyNSwgMC4wODEyNSIsIFwKLSAgICAgICAgICAiMC4wMzUsIDAuMDQ2MjUsIDAuMDUyNSwgMC4wNTg3NSwgMC4wNTg3NSwgMC4wNjg3NSwgMC4wNzc1IiwgXAotICAgICAgICAgICIwLjAzODc1LCAwLjA0Mzc1LCAwLjA1LCAwLjA1NjI1LCAwLjA1NjI1LCAwLjA2NjI1LCAwLjA3NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJlbW92YWxfcmlzaW5nOwotICAgICAgd2hlbiA6ICJTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJTTiA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChyZW1vdmFsX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMDYyNSwgLTAuMDAxMjUsIDAuMDExMjUsIDAuMDE3NSwgMC4wMjM3NSwgMC4wMjc1LCAwLjAzNjI1IiwgXAotICAgICAgICAgICItMC4wMTc1LCAtMC4wMDYyNSwgMCwgMC4wMDYyNSwgMC4wMTI1LCAwLjAyMjUsIDAuMDI1IiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLCAwLjAwNjI1LCAwLjAxLCAwLjAxODc1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDI1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMCwgMC4wMDM3NSwgMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAuMDAzNzUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA0LCAtMC4wMzUsIC0wLjAyMjUsIC0wLjAxNjI1LCAtMC4wMSwgLTAuMDA2MjUsIDAuMDAyNSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMDg3NSwgLTAuMDA2MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFNFKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE2MTk1OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTYxOTU7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNjE5NDk7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA2OTYyLCAwLjAwNjk2MywgMC4wMDcwMiwgMC4wMDcxMTgsIDAuMDA3MjY2LCAwLjAwNzQzMywgMC4wMDc2MTciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDkxNzUsIDAuMDA5MTY4LCAwLjAwOTI4NCwgMC4wMDk0NiwgMC4wMDk2OTEsIDAuMDEwMDg0LCAwLjAxMDQ1NCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJSTiZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJSTl9FUV8xX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDEyNSwgLTAuMDAxMjUsIDAuMDA1LCAwLjAxMTI1LCAwLjAxNzUsIDAuMDIxMjUsIDAuMDMiLCBcCi0gICAgICAgICAgIi0wLjAxNzUsIC0wLjAxMjUsIDAsIDAuMDA2MjUsIDAuMDA2MjUsIDAuMDE2MjUsIDAuMDI1IiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLCAwLjAxLCAwLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMjUsIC0wLjAxMjUsIC0wLjAwNjI1LCAtMC4wMDYyNSwgMC4wMDM3NSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIC0wLjAwMjUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA0LCAtMC4wMzUsIC0wLjAyODc1LCAtMC4wMTYyNSwgLTAuMDE2MjUsIC0wLjAwNjI1LCAtMC4wMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMDg3NSwgLTAuMDA2MjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLCAwLjAxMTI1LCAwLjAxNzUsIDAuMDIzNzUsIDAuMDMsIDAuMDQsIDAuMDQyNSIsIFwKLSAgICAgICAgICAiLTAuMDA1LCAwLjAwNjI1LCAwLjAxMjUsIDAuMDE4NzUsIDAuMDI1LCAwLjAyODc1LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjAxMTI1LCAtMC4wMDYyNSwgMC4wMDYyNSwgMC4wMTI1LCAwLjAxODc1LCAwLjAyMjUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjAxNzUsIC0wLjAxMjUsIDAsIDAuMDA2MjUsIDAuMDA2MjUsIDAuMDE2MjUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAsIDAuMDA2MjUsIDAuMDEsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjAyNzUsIC0wLjAyMjUsIC0wLjAxNjI1LCAtMC4wMSwgLTAuMDAzNzUsIDAuMDA2MjUsIDAuMDA4NzUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgLTAuMDAyNSwgMC4wMDYyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiUk4mU04iOwotICAgICAgc2RmX2NvbmQgOiAiUk5fRVFfMV9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2ODc1LCAwLjA1NzUsIDAuMDQ1LCAwLjAzODc1LCAwLjAzMjUsIDAuMDIyNSwgMC4wMiIsIFwKLSAgICAgICAgICAiMC4wNzM3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDMzNzUsIDAuMDI1IiwgXAotICAgICAgICAgICIwLjA4NjI1LCAwLjA3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1LCAwLjA0LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIjAuMDkyNSwgMC4wODEyNSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1MjUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMDk4NzUsIDAuMDg3NSwgMC4wODEyNSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1ODc1LCAwLjA1IiwgXAotICAgICAgICAgICIwLjEwODc1LCAwLjA5NzUsIDAuMDg1LCAwLjA3ODc1LCAwLjA3MjUsIDAuMDY4NzUsIDAuMDYiLCBcCi0gICAgICAgICAgIjAuMTE3NSwgMC4xMDYyNSwgMC4wOTM3NSwgMC4wODc1LCAwLjA4MTI1LCAwLjA3MTI1LCAwLjA2ODc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDgxMjUsIDAuMDc2MjUsIDAuMDYzNzUsIDAuMDU3NSwgMC4wNTEyNSwgMC4wNDEyNSwgMC4wMzg3NSIsIFwKLSAgICAgICAgICAiMC4wOTI1LCAwLjA4MTI1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDUyNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4wOTg3NSwgMC4wODc1LCAwLjA4MTI1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDU4NzUsIDAuMDUiLCBcCi0gICAgICAgICAgIjAuMTA1LCAwLjA5Mzc1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIjAuMTA1LCAwLjEsIDAuMDg3NSwgMC4wODEyNSwgMC4wNzUsIDAuMDY1LCAwLjA2MjUiLCBcCi0gICAgICAgICAgIjAuMTE1LCAwLjEwMzc1LCAwLjA5MTI1LCAwLjA4NSwgMC4wNzg3NSwgMC4wNzUsIDAuMDY2MjUiLCBcCi0gICAgICAgICAgIjAuMTE3NSwgMC4xMDYyNSwgMC4xLCAwLjA4NzUsIDAuMDgxMjUsIDAuMDc3NSwgMC4wNjg3NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oU0kpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDk4MzU2MTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA5ODA5MjY7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwOTgzNTYxOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNTE1MywgMC4wMDUxMDksIDAuMDA1MTMsIDAuMDA1MTc4LCAwLjAwNTI2MSwgMC4wMDU0MDgsIDAuMDA1NTg3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA3NzE1LCAwLjAwNzY4NiwgMC4wMDc3MDUsIDAuMDA3NzUxLCAwLjAwNzgxNiwgMC4wMDc5NywgMC4wMDgxMTQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiUk4mU0UmU04iOwotICAgICAgc2RmX2NvbmQgOiAiUk5fRVFfMV9BTl9TRV9FUV8xX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDI1LCAtMC4wMiwgLTAuMDEzNzUsIC0wLjAwNzUsIC0wLjAwNzUsIC0wLjAwMzc1LCAtMC4wMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDg3NSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzMTI1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDE1LCAtMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDM3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAzMTI1LCAtMC4wMjEyNSwgLTAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjA1NSwgLTAuMDQzNzUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDI3NSwgLTAuMDI1IiwgXAotICAgICAgICAgICItMC4wNTg3NSwgLTAuMDUzNzUsIC0wLjA0NzUsIC0wLjA0NzUsIC0wLjA0MTI1LCAtMC4wMzc1LCAtMC4wMzUiLCBcCi0gICAgICAgICAgIi0wLjA2NzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDUsIC0wLjA0NjI1LCAtMC4wNDM3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAsIDAuMDA1LCAwLjAxNzUsIDAuMDIzNzUsIDAuMDIzNzUsIDAuMDMzNzUsIDAuMDM2MjUiLCBcCi0gICAgICAgICAgIi0wLjAwNSwgMCwgMC4wMDYyNSwgMC4wMTI1LCAwLjAxODc1LCAwLjAyODc1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wMTEyNSwgLTAuMDA2MjUsIDAsIDAuMDA2MjUsIDAuMDEyNSwgMC4wMjI1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDE3NSwgLTAuMDEyNSwgMCwgMC4wMDYyNSwgMC4wMTI1LCAwLjAxNjI1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLCAwLjAwNjI1LCAwLjAxLCAwLjAxODc1IiwgXAotICAgICAgICAgICItMC4wMjc1LCAtMC4wMjI1LCAtMC4wMSwgLTAuMDAzNzUsIDAuMDAyNSwgMC4wMDYyNSwgMC4wMDg3NSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLjAwMzc1LCAwLjAwNjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJSTiZTRSZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJSTl9FUV8xX0FOX1NFX0VRXzFfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjg3NSwgMC4wNjM3NSwgMC4wNTEyNSwgMC4wNDUsIDAuMDM4NzUsIDAuMDI4NzUsIDAuMDI2MjUiLCBcCi0gICAgICAgICAgIjAuMDgsIDAuMDY4NzUsIDAuMDU2MjUsIDAuMDUsIDAuMDQzNzUsIDAuMDMzNzUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMDg2MjUsIDAuMDc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDUsIDAuMDQ2MjUsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiMC4wOTI1LCAwLjA4MTI1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDUyNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4wOTg3NSwgMC4wODc1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1ODc1LCAwLjA1IiwgXAotICAgICAgICAgICIwLjEwODc1LCAwLjA5NzUsIDAuMDg1LCAwLjA3ODc1LCAwLjA3MjUsIDAuMDYyNSwgMC4wNiIsIFwKLSAgICAgICAgICAiMC4xMTEyNSwgMC4xMDYyNSwgMC4wOTM3NSwgMC4wODc1LCAwLjA4MTI1LCAwLjA3MTI1LCAwLjA2ODc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDUsIDAuMDM4NzUsIDAuMDI2MjUsIDAuMDIsIDAuMDEzNzUsIDAuMDEsIDAuMDAxMjUiLCBcCi0gICAgICAgICAgIjAuMDU1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDI1LCAwLjAxODc1LCAwLjAxNSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiMC4wNjEyNSwgMC4wNSwgMC4wNDM3NSwgMC4wMzEyNSwgMC4wMjUsIDAuMDIxMjUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4wNjc1LCAwLjA1NjI1LCAwLjA1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDI3NSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4wNzM3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDMzNzUsIDAuMDI1IiwgXAotICAgICAgICAgICIwLjA3NzUsIDAuMDcyNSwgMC4wNiwgMC4wNTM3NSwgMC4wNDc1LCAwLjAzNzUsIDAuMDI4NzUiLCBcCi0gICAgICAgICAgIjAuMDg2MjUsIDAuMDc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDUsIDAuMDQsIDAuMDM3NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oU04pICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTkwODA0OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTkwODA0OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTkwNzk0OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDg0MSwgMC4wMDA4NDEsIDAuMDAwODQxLCAwLjAwMDg0MSwgMC4wMDA4NCwgMC4wMDA4MzksIDAuMDAwODQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA4NTIsIDAuMDAwODQ1LCAwLjAwMDg0NCwgMC4wMDA4NDQsIDAuMDAwODQ0LCAwLjAwMDg0MiwgMC4wMDA4NDMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiU04iOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFEJiFSTiYhU0UmIVNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9STl9FUV8wX0FOX1NFX0VRXzBfQU5fU0lfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjA3NzU2NCwgMC4wODQwNDEsIDAuMDkzMDMzLCAwLjEwMjEwNCwgMC4xMDk3MywgMC4xMTk4MjIsIDAuMTI3MzMyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogcmVjb3ZlcnlfcmlzaW5nOwotICAgICAgd2hlbiA6ICJSTiI7Ci0gICAgICBzZGZfY29uZCA6ICJSTiA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChyZWNvdmVyeV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDYyNSwgLTAuMDA1LCAtMC4wMTEyNSwgLTAuMDIzNzUsIC0wLjAzLCAtMC4wNCwgLTAuMDQyNSIsIFwKLSAgICAgICAgICAiMC4wMTEyNSwgMC4wMDYyNSwgLTAuMDA2MjUsIC0wLjAxODc1LCAtMC4wMjUsIC0wLjAzNSwgLTAuMDM3NSIsIFwKLSAgICAgICAgICAiMC4wMTc1LCAwLjAxMjUsIDAsIC0wLjAwNjI1LCAtMC4wMTI1LCAtMC4wMjI1LCAtMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4wMywgMC4wMTg3NSwgMC4wMDYyNSwgMCwgLTAuMDA2MjUsIC0wLjAxNjI1LCAtMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMDM2MjUsIDAuMDI1LCAwLjAxODc1LCAwLjAwNjI1LCAwLCAtMC4wMSwgLTAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMDQ2MjUsIDAuMDQxMjUsIDAuMDI4NzUsIDAuMDE2MjUsIDAuMDEsIDAsIC0wLjAwMjUiLCBcCi0gICAgICAgICAgIjAuMDYxMjUsIDAuMDUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMTg3NSwgMC4wMDg3NSwgMC4wMDYyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJlbW92YWxfcmlzaW5nOwotICAgICAgd2hlbiA6ICJSTiI7Ci0gICAgICBzZGZfY29uZCA6ICJSTiA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChyZW1vdmFsX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyNSwgMC4wMywgMC4wNDI1LCAwLjA0ODc1LCAwLjA1NSwgMC4wNjUsIDAuMDY3NSIsIFwKLSAgICAgICAgICAiMC4wMTM3NSwgMC4wMjUsIDAuMDM3NSwgMC4wNDM3NSwgMC4wNSwgMC4wNiwgMC4wNjI1IiwgXAotICAgICAgICAgICIwLjAwNzUsIDAuMDE4NzUsIDAuMDI1LCAwLjAzNzUsIDAuMDQzNzUsIDAuMDQ3NSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiMC4wMDEyNSwgMC4wMTI1LCAwLjAxODc1LCAwLjAyNSwgMC4wMzEyNSwgMC4wNDEyNSwgMC4wNSIsIFwKLSAgICAgICAgICAiLTAuMDA1LCAwLjAwNjI1LCAwLjAxMjUsIDAuMDE4NzUsIDAuMDI1LCAwLjAzNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDE1LCAtMC4wMDM3NSwgMC4wMDI1LCAwLjAxNSwgMC4wMjEyNSwgMC4wMjUsIDAuMDMzNzUiLCBcCi0gICAgICAgICAgIi0wLjAxNzUsIC0wLjAxMjUsIDAsIDAuMDA2MjUsIDAuMDEyNSwgMC4wMjI1LCAwLjAyNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBTREZGU1JYMSAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoU0RGRlNSWDEpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMS4zMDI4NjsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBmZiAoTjM1LFFCSU5UKSB7Ci0gICAgbmV4dF9zdGF0ZSA6ICIoKFNFIFNJKSArICghU0UgRCkpIjsKLSAgICBjbG9ja2VkX29uIDogIkNLIjsKLSAgICBjbGVhciA6ICIoIVJOKSI7Ci0gICAgcHJlc2V0IDogIighU04pIjsKLSAgICBjbGVhcl9wcmVzZXRfdmFyMSA6IEg7Ci0gICAgY2xlYXJfcHJlc2V0X3ZhcjIgOiBMOwotICB9Ci0gIHBpbihDSykgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjg1MjU4OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDY4NTIzNjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2ODUyNTg7Ci0gICAgY2xvY2sgOiB0cnVlOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzA4OSwgMC4wMDMwODEsIDAuMDAzMTc0LCAwLjAwMzI1MywgMC4wMDMzNzgsIDAuMDAzNjIxLCAwLjAwMzgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDg4MywgMC4wMDg4MjQsIDAuMDA4OTEzLCAwLjAwOTAzLCAwLjAwOTE2MywgMC4wMDk0NDUsIDAuMDA5NTciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFEJlJOJiFTRSYhU0kmU04iOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1JOX0VRXzFfQU5fU0VfRVFfMF9BTl9TSV9FUV8wX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4xMjQwOTUsIDAuMTMyNDEsIDAuMTQxNDczLCAwLjE0ODg1NSwgMC4xNTQ3NDksIDAuMTYyNDU5LCAwLjE2ODE5NyIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDc0MzczLCAwLjA4MjQ5MywgMC4wOTE2NzksIDAuMDk4Nzc5LCAwLjEwNDQ0MSwgMC4xMTE4NDcsIDAuMTE3MjkzIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihEKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2ODY2ODsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2ODU3ODsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2ODY2ODsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDQwMjcsIDAuMDA0MDAyLCAwLjAwNDAxNywgMC4wMDQwNTgsIDAuMDA0MTA5LCAwLjAwNDIxNywgMC4wMDQzMzYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDU3LCAwLjAwNTY4MiwgMC4wMDU2OTYsIDAuMDA1NzM1LCAwLjAwNTc4NSwgMC4wMDU4OTIsIDAuMDA2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlJOJiFTRSZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJSTl9FUV8xX0FOX1NFX0VRXzBfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMzEyNSwgLTAuMDI2MjUsIC0wLjAyNjI1LCAtMC4wMiwgLTAuMDIsIC0wLjAxNjI1LCAtMC4wMTM3NSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDMxMjUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAyNSwgLTAuMDIxMjUsIC0wLjAxODc1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMzEyNSwgLTAuMDI3NSwgLTAuMDI1IiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzMzc1LCAtMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDYxMjUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wNCwgLTAuMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDY1LCAtMC4wNiwgLTAuMDYsIC0wLjA1Mzc1LCAtMC4wNTM3NSwgLTAuMDUsIC0wLjA0NzUiLCBcCi0gICAgICAgICAgIi0wLjA3Mzc1LCAtMC4wNjg3NSwgLTAuMDYyNSwgLTAuMDYyNSwgLTAuMDYyNSwgLTAuMDU4NzUsIC0wLjA1NjI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDEyNSwgLTAuMDA3NSwgLTAuMDAxMjUsIDAuMDA1LCAwLjAxMTI1LCAwLjAxNSwgMC4wMjM3NSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLCAwLjAwNjI1LCAwLjAxLCAwLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAsIDAuMDAzNzUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgLTAuMDAyNSwgMCIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDg3NSwgMCIsIFwKLSAgICAgICAgICAiLTAuMDQ2MjUsIC0wLjAzNSwgLTAuMDI4NzUsIC0wLjAyMjUsIC0wLjAyMjUsIC0wLjAxMjUsIC0wLjAxIiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDQzNzUsIC0wLjAzMTI1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMjEyNSwgLTAuMDEyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiUk4mIVNFJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIlJOX0VRXzFfQU5fU0VfRVFfMF9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3NSwgMC4wNywgMC4wNTc1LCAwLjA1MTI1LCAwLjA0NSwgMC4wNDEyNSwgMC4wMzg3NSIsIFwKLSAgICAgICAgICAiMC4wODYyNSwgMC4wNzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNTYyNSwgMC4wNDYyNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4wOTI1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1ODc1LCAwLjA1IiwgXAotICAgICAgICAgICIwLjA5ODc1LCAwLjA4NzUsIDAuMDgxMjUsIDAuMDc1LCAwLjA2ODc1LCAwLjA2NSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiMC4xMDUsIDAuMDkzNzUsIDAuMDg3NSwgMC4wODEyNSwgMC4wNzUsIDAuMDcxMjUsIDAuMDYyNSIsIFwKLSAgICAgICAgICAiMC4xMTUsIDAuMTAzNzUsIDAuMDk3NSwgMC4wOTEyNSwgMC4wODUsIDAuMDc1LCAwLjA3MjUiLCBcCi0gICAgICAgICAgIjAuMTE3NSwgMC4xMTI1LCAwLjEsIDAuMDkzNzUsIDAuMDkzNzUsIDAuMDgzNzUsIDAuMDgxMjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjI1LCAwLjA1MTI1LCAwLjA0NSwgMC4wMzI1LCAwLjAzMjUsIDAuMDIyNSwgMC4wMiIsIFwKLSAgICAgICAgICAiMC4wNjc1LCAwLjA1NjI1LCAwLjA1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDI3NSwgMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMDczNzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNSwgMC4wNDM3NSwgMC4wMzM3NSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4wOCwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1LCAwLjA0LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIjAuMDg2MjUsIDAuMDc1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDQ2MjUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMDksIDAuMDg1LCAwLjA3MjUsIDAuMDY2MjUsIDAuMDYsIDAuMDU2MjUsIDAuMDQ3NSIsIFwKLSAgICAgICAgICAiMC4wOTg3NSwgMC4wODc1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNTg3NSwgMC4wNTYyNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjMzNTY0NTsKLSAgICBmdW5jdGlvbiA6ICJOMzUiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5vbl91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcmlzaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwODAxNiwgMC4xMjY4MjIsIDAuMjMyMjY3LCAwLjMyNTM4NywgMC40NDk0NjcsIDAuNjk3ODgxLCAwLjg1MjkxNiIsIFwKLSAgICAgICAgICAiMC4xMTYyMywgMC4xMzUwMDEsIDAuMjQwNDgxLCAwLjMzMzU5OCwgMC40NTc3NDksIDAuNzA2MDQ5LCAwLjg2MTEwMiIsIFwKLSAgICAgICAgICAiMC4xMjUzNzcsIDAuMTQ0MTY1LCAwLjI0OTYxMywgMC4zNDI3MywgMC40NjY4NTIsIDAuNzE1MTMzLCAwLjg3MDE5NyIsIFwKLSAgICAgICAgICAiMC4xMzI3NTksIDAuMTUxNDk1LCAwLjI1Njk5OSwgMC4zNTAxMTUsIDAuNDc0MTgsIDAuNzIyNTgxLCAwLjg3NzYzNyIsIFwKLSAgICAgICAgICAiMC4xMzg1NCwgMC4xNTczLCAwLjI2Mjc4LCAwLjM1NTg5OCwgMC40Nzk5NTgsIDAuNzI4Mzc0LCAwLjg4MzQzMiIsIFwKLSAgICAgICAgICAiMC4xNDY1NDUsIDAuMTY1MzUzLCAwLjI3MDkyMSwgMC4zNjM5MzcsIDAuNDg4MDM3LCAwLjczNjMxNCwgMC44OTE1MzQiLCBcCi0gICAgICAgICAgIjAuMTUyMjY4LCAwLjE3MTAxOCwgMC4yNzY1OTYsIDAuMzY5NTc4LCAwLjQ5Mzc0MiwgMC43NDIwMzgsIDAuODk3MTQ1Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3MzUxNywgMC4xMTE1OTgsIDAuMzMxOTY1LCAwLjUyODgwOSwgMC43ODkzNDUsIDEuMzEyMiwgMS42Mzk4NiIsIFwKLSAgICAgICAgICAiMC4wNzM0NzgsIDAuMTExNTgzLCAwLjMzMTk1MSwgMC41Mjg3OTUsIDAuNzkwNjE2LCAxLjMxMjMsIDEuNjM4MTYiLCBcCi0gICAgICAgICAgIjAuMDczNTgyLCAwLjExMTUwMSwgMC4zMzIwMDIsIDAuNTI4Nzg1LCAwLjc5MDYwNywgMS4zMTA3NCwgMS42MzY2NyIsIFwKLSAgICAgICAgICAiMC4wNzM2NTYsIDAuMTExNSwgMC4zMzE5NzIsIDAuNTI4Nzg1LCAwLjc4OTMzLCAxLjMxMjIzLCAxLjYzOTcxIiwgXAotICAgICAgICAgICIwLjA3MzU1OSwgMC4xMTE1MTksIDAuMzMxOTM5LCAwLjUyODc5NSwgMC43ODkyODUsIDEuMzEyMzgsIDEuNjM5ODgiLCBcCi0gICAgICAgICAgIjAuMDczNTM2LCAwLjExMTUwNiwgMC4zMzIzNTgsIDAuNTI4NzYxLCAwLjc5MDUyMSwgMS4zMTIxNywgMS42Mzk0NyIsIFwKLSAgICAgICAgICAiMC4wNzM5MTMsIDAuMTExNTgxLCAwLjMzMjM0LCAwLjUyODA3NywgMC43OTA0OCwgMS4zMTIyNywgMS42Mzk4NCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTU3MTIsIDAuMTM0MDIyLCAwLjIzNjgzNywgMC4zMjczNCwgMC40NDc4MjksIDAuNjg5OTE3LCAwLjg0MDg2NyIsIFwKLSAgICAgICAgICAiMC4xMjQwMjUsIDAuMTQyMzM5LCAwLjI0NTE1MiwgMC4zMzU2NTMsIDAuNDU2MTM4LCAwLjY5ODIyNiwgMC44NDkxNzkiLCBcCi0gICAgICAgICAgIjAuMTMzMTA1LCAwLjE1MTMyMSwgMC4yNTM5OCwgMC4zNDQ4MjcsIDAuNDY1MTQsIDAuNzA2MzY0LCAwLjg1NzQzMSIsIFwKLSAgICAgICAgICAiMC4xNDA0ODIsIDAuMTU4Nzc3LCAwLjI2MTU5MSwgMC4zNTIwOTYsIDAuNDcyNTU3LCAwLjcxNDYzNCwgMC44NjQ2ODgiLCBcCi0gICAgICAgICAgIjAuMTQ2MzQ5LCAwLjE2NDYzNCwgMC4yNjc0NTYsIDAuMzU3ODQ5LCAwLjQ3ODQxLCAwLjcyMDQ4NywgMC44NzEwOCIsIFwKLSAgICAgICAgICAiMC4xNTQwODMsIDAuMTcyMzg2LCAwLjI3NTE5NCwgMC4zNjU2ODcsIDAuNDg2NTgsIDAuNzI3OTU2LCAwLjg3OTIwNyIsIFwKLSAgICAgICAgICAiMC4xNTk4MTQsIDAuMTc4MDY0LCAwLjI4MDk2OSwgMC4zNzEyODYsIDAuNDkxOTY4LCAwLjczMzgxMywgMC44ODQ5OTQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDcwNTA1LCAwLjEwNjMyMywgMC4zMTU4NjcsIDAuNTAyMzg1LCAwLjc1MDI3MiwgMS4yNDYzNiwgMS41NTc0NSIsIFwKLSAgICAgICAgICAiMC4wNzA0NzksIDAuMTA2MzI4LCAwLjMxNTg2MiwgMC41MDIzODgsIDAuNzQ5ODQ1LCAxLjI0NzE4LCAxLjU1NzUzIiwgXAotICAgICAgICAgICIwLjA3MDExNCwgMC4xMDY2MTUsIDAuMzE2MjkzLCAwLjUwMjMyMSwgMC43NTExOTIsIDEuMjQ0NywgMS41NTg5MiIsIFwKLSAgICAgICAgICAiMC4wNzA1NzksIDAuMTA2MzEyLCAwLjMxNTgzLCAwLjUwMjQwNSwgMC43NTAzNzgsIDEuMjQ2NCwgMS41NTgzMyIsIFwKLSAgICAgICAgICAiMC4wNzA1NDEsIDAuMTA2Mjc5LCAwLjMxNTgxMywgMC41MDI1ODMsIDAuNzUwNjgzLCAxLjI0NTg4LCAxLjU2MDEiLCBcCi0gICAgICAgICAgIjAuMDcwNTk0LCAwLjEwNjg2MSwgMC4zMTU4NDQsIDAuNTAyNDY0LCAwLjc1MTQwOSwgMS4yNDg5MiwgMS41NjA0NyIsIFwKLSAgICAgICAgICAiMC4wNzA4NzYsIDAuMTA2NjgxLCAwLjMxNjI5LCAwLjUwMjQ5MSwgMC43NTAxOTgsIDEuMjQ3NTUsIDEuNTU4NDciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUk4iOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGNsZWFyOwotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMzY3MzUsIDAuMTU0OTc3LCAwLjI1NzY0LCAwLjM0ODE1MiwgMC40Njg2NzQsIDAuNzEwNTgxLCAwLjg2MDYzOSIsIFwKLSAgICAgICAgICAiMC4xNDQ2NjgsIDAuMTYyODY3LCAwLjI2NTU3OCwgMC4zNTYwMjUsIDAuNDc3MDM4LCAwLjcxNzQ1NywgMC44Njg3MzgiLCBcCi0gICAgICAgICAgIjAuMTUyODQ0LCAwLjE3MTA0NCwgMC4yNzM3NTQsIDAuMzY0MTE2LCAwLjQ4NDgyNSwgMC43MjU2MDksIDAuODc3MTciLCBcCi0gICAgICAgICAgIjAuMTU4ODgxLCAwLjE3NzE0OSwgMC4yNzk2MjUsIDAuMzcwMDczLCAwLjQ5MDY2NSwgMC43MzI3MSwgMC44ODM3MTMiLCBcCi0gICAgICAgICAgIjAuMTYzNzM1LCAwLjE4MTk3NSwgMC4yODQ2NjIsIDAuMzc1MDcxLCAwLjQ5NTcxMywgMC43Mzc1MzgsIDAuODg3Nzc2IiwgXAotICAgICAgICAgICIwLjE3MDI1NywgMC4xODg1MDksIDAuMjkwOTk1LCAwLjM4MTUwOCwgMC41MDIxNjgsIDAuNzQzNzgxLCAwLjg5NTA0MSIsIFwKLSAgICAgICAgICAiMC4xNzUwNDEsIDAuMTkzMjUyLCAwLjI5NTg4MSwgMC4zODY2NjQsIDAuNTA3NDE0LCAwLjc0ODcwNSwgMC44OTk4MTciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDcwNzEsIDAuMTA2NzY0LCAwLjMxNjA4MSwgMC41MDI1NzgsIDAuNzUxNDM5LCAxLjI0OTI3LCAxLjU1Nzc1IiwgXAotICAgICAgICAgICIwLjA3MDc0NCwgMC4xMDY2OTQsIDAuMzE2MDczLCAwLjUwMjUxNywgMC43NTEyODEsIDEuMjQ5MzQsIDEuNTYwMzMiLCBcCi0gICAgICAgICAgIjAuMDcwNzI1LCAwLjEwNjcyLCAwLjMxNjA2OCwgMC41MDI1MjUsIDAuNzUwOTEzLCAxLjI0OTMyLCAxLjU2MDA2IiwgXAotICAgICAgICAgICIwLjA3MDY4OSwgMC4xMDY3NzgsIDAuMzE2MDA3LCAwLjUwMjQ5LCAwLjc1MDc1OCwgMS4yNDYyNywgMS41NTc3NSIsIFwKLSAgICAgICAgICAiMC4wNzA3NTcsIDAuMTA2NzU4LCAwLjMxNjA2MiwgMC41MDI1NywgMC43NTEzNDQsIDEuMjQ5MzEsIDEuNTYwNSIsIFwKLSAgICAgICAgICAiMC4wNzA3ODQsIDAuMTA2NjcxLCAwLjMxNjE5OCwgMC41MDI1ODYsIDAuNzUxNDExLCAxLjI0OTMsIDEuNTU3NzYiLCBcCi0gICAgICAgICAgIjAuMDcwODE4LCAwLjEwNjgzMywgMC4zMTYxNjQsIDAuNTAyNDM4LCAwLjc1MDgyMSwgMS4yNDg4NywgMS41NTc2OCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcHJlc2V0OwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDM3MDEsIDAuMTIyNDUzLCAwLjIyODA3LCAwLjMyMTA1MywgMC40NDUxMzUsIDAuNjkzMzg4LCAwLjg0ODU2NiIsIFwKLSAgICAgICAgICAiMC4xMTAzOTgsIDAuMTI5MTcsIDAuMjM0NzQ1LCAwLjMyNzc3OCwgMC40NTE4MywgMC43MDAxMjgsIDAuODU1MjE3IiwgXAotICAgICAgICAgICIwLjExODI1OSwgMC4xMzcwMDMsIDAuMjQyNTg1LCAwLjMzNTY0MywgMC40NTk2ODksIDAuNzA3OTU1LCAwLjg2MzAwOSIsIFwKLSAgICAgICAgICAiMC4xMjY5MzcsIDAuMTQ1Njk2LCAwLjI1MTM3MiwgMC4zNDQyODcsIDAuNDY4NDA3LCAwLjcxNzE1MSwgMC44NzI1ODMiLCBcCi0gICAgICAgICAgIjAuMTM0MTg1LCAwLjE1Mjk2NiwgMC4yNTg1MzksIDAuMzUxNTIzLCAwLjQ3NTYxMywgMC43MjM4NDIsIDAuODc4OTg4IiwgXAotICAgICAgICAgICIwLjE0Mzc4MSwgMC4xNjI1OTUsIDAuMjY4MDIzLCAwLjM2MTEwNCwgMC40ODUxODQsIDAuNzMzNDExLCAwLjg4ODU0OSIsIFwKLSAgICAgICAgICAiMC4xNTA1NjUsIDAuMTY5MjUsIDAuMjc0ODgxLCAwLjM2NzkwNiwgMC40OTIwMzEsIDAuNzQwMjQsIDAuODk1MzI3Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3MzM1OSwgMC4xMTE0MDksIDAuMzMyNDQyLCAwLjUyODczLCAwLjc5MDU1NSwgMS4zMTQ0MSwgMS42NDE3NyIsIFwKLSAgICAgICAgICAiMC4wNzMxMzYsIDAuMTExNDA5LCAwLjMzMjQ0MiwgMC41Mjg3NjEsIDAuNzkwNTYxLCAxLjMxNDI3LCAxLjY0MTc4IiwgXAotICAgICAgICAgICIwLjA3MzMzMywgMC4xMTE0MDEsIDAuMzMyNDM1LCAwLjUyODc1NCwgMC43OTA1OTQsIDEuMzE0NCwgMS42NDE3NiIsIFwKLSAgICAgICAgICAiMC4wNzMyNSwgMC4xMTE0MjIsIDAuMzMyNDQ5LCAwLjUyODc2NSwgMC43ODk4NDgsIDEuMzE0MzcsIDEuNjQxNzgiLCBcCi0gICAgICAgICAgIjAuMDczMzMxLCAwLjExMTQ3MywgMC4zMzI0MiwgMC41Mjg2MzUsIDAuNzkwNTcyLCAxLjMxNDM4LCAxLjY0MTgyIiwgXAotICAgICAgICAgICIwLjA3MzQ0MSwgMC4xMTE1NDYsIDAuMzMyMzY4LCAwLjUyODc1NCwgMC43OTA0NzcsIDEuMzE0MjYsIDEuNjQxODMiLCBcCi0gICAgICAgICAgIjAuMDczNjQ5LCAwLjExMTM4OCwgMC4zMzI0MjksIDAuNTI4NjgxLCAwLjc4OTQyMywgMS4zMTQxNiwgMS42NDE1OSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMjMzMzUsIDAuMTQxNjA4LCAwLjI0NDQxNywgMC4zMzUwMDYsIDAuNDU1OTk1LCAwLjY5NzQ4MywgMC44NDc1NjciLCBcCi0gICAgICAgICAgIjAuMTI5ODgyLCAwLjE0ODEwNCwgMC4yNTA5NjIsIDAuMzQxMjksIDAuNDYyMDgzLCAwLjcwNDA1NiwgMC44NTQyMTUiLCBcCi0gICAgICAgICAgIjAuMTM3NDE1LCAwLjE1NTY5MiwgMC4yNTg1MDMsIDAuMzQ4ODQ0LCAwLjQ2OTQ1NiwgMC43MTE1NDQsIDAuODYxNjg1IiwgXAotICAgICAgICAgICIwLjE0NDYwNCwgMC4xNjI4MjksIDAuMjY1Njg5LCAwLjM1NTkyMSwgMC40NzY3NDksIDAuNzE4NzQ2LCAwLjg2OTEyNSIsIFwKLSAgICAgICAgICAiMC4xNTEzMTcsIDAuMTY5NTUyLCAwLjI3MjQxNCwgMC4zNjI3NTgsIDAuNDgzMzk0LCAwLjcyNTQ2OSwgMC44NzUzOTQiLCBcCi0gICAgICAgICAgIjAuMTYwODQxLCAwLjE3OTEyOSwgMC4yODE5MzcsIDAuMzcyMzE2LCAwLjQ5MjkxMSwgMC43MzUwMjgsIDAuODg1NTQ2IiwgXAotICAgICAgICAgICIwLjE2ODEzMywgMC4xODYzOTMsIDAuMjg5MTY2LCAwLjM3OTkxOCwgMC41MDAyNTgsIDAuNzQyMzQyLCAwLjg5Mjg1NSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzA3MDQsIDAuMTA2NzgzLCAwLjMxNjI2MSwgMC41MDI1ODMsIDAuNzUxMzQ5LCAxLjI0OTA3LCAxLjU1Nzg0IiwgXAotICAgICAgICAgICIwLjA3MDcwMywgMC4xMDY2NSwgMC4zMTYwMzEsIDAuNTAyNTc0LCAwLjc1MTI5NiwgMS4yNDc3OSwgMS41NjA0IiwgXAotICAgICAgICAgICIwLjA3MDcyNCwgMC4xMDY3MzQsIDAuMzE1OTg1LCAwLjUwMjUzNywgMC43NTA5MzUsIDEuMjQ3NjMsIDEuNTU3NjYiLCBcCi0gICAgICAgICAgIjAuMDcwNjQyLCAwLjEwNjYzNiwgMC4zMTYwMjUsIDAuNTAyNTcxLCAwLjc1MTIxOSwgMS4yNDcyNiwgMS41NjAyOCIsIFwKLSAgICAgICAgICAiMC4wNzA1NTgsIDAuMTA2NzgxLCAwLjMxNjM0NiwgMC41MDI1NzgsIDAuNzUxMywgMS4yNDc3MiwgMS41NTg0OSIsIFwKLSAgICAgICAgICAiMC4wNzA3NjcsIDAuMTA2Nzk2LCAwLjMxNjA0MywgMC41MDI1MTYsIDAuNzUwOTM4LCAxLjI0NjUyLCAxLjU1OTkxIiwgXAotICAgICAgICAgICIwLjA3MDk1MiwgMC4xMDY4MDYsIDAuMzE2MDg5LCAwLjUwMjQzMiwgMC43NTEzODMsIDEuMjQ3NzQsIDEuNTU5ODgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1MjAxLCAwLjAwNTIxLCAwLjAwNTIyMiwgMC4wMDUyMjQsIDAuMDA1MjI3LCAwLjAwNTIyNywgMC4wMDUyMjciLCBcCi0gICAgICAgICAgIjAuMDA1MTk2LCAwLjAwNTIwMywgMC4wMDUyMTYsIDAuMDA1MjE4LCAwLjAwNTIyLCAwLjAwNTIyMywgMC4wMDUyMjMiLCBcCi0gICAgICAgICAgIjAuMDA1MjM5LCAwLjAwNTI0OCwgMC4wMDUyNiwgMC4wMDUyNjIsIDAuMDA1MjY0LCAwLjAwNTI2NSwgMC4wMDUyNjYiLCBcCi0gICAgICAgICAgIjAuMDA1MjgyLCAwLjAwNTI5LCAwLjAwNTMwMywgMC4wMDUzMDYsIDAuMDA1MzA3LCAwLjAwNTMwOSwgMC4wMDUzMDkiLCBcCi0gICAgICAgICAgIjAuMDA1MzQ2LCAwLjAwNTM1NSwgMC4wMDUzNjgsIDAuMDA1MzcxLCAwLjAwNTM3MiwgMC4wMDUzNzQsIDAuMDA1Mzc0IiwgXAotICAgICAgICAgICIwLjAwNTQ1MSwgMC4wMDU0NjEsIDAuMDA1NDcyLCAwLjAwNTQ3NSwgMC4wMDU0NzYsIDAuMDA1NDY4LCAwLjAwNTQ3OCIsIFwKLSAgICAgICAgICAiMC4wMDU1NCwgMC4wMDU1NDgsIDAuMDA1NTYsIDAuMDA1NTYyLCAwLjAwNTU2NCwgMC4wMDU1NjYsIDAuMDA1NTY1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0OTgzLCAwLjAwNDk5MiwgMC4wMDUwMDQsIDAuMDA1MDA3LCAwLjAwNTAxLCAwLjAwNTAwOSwgMC4wMDUwMSIsIFwKLSAgICAgICAgICAiMC4wMDQ5ODMsIDAuMDA0OTkxLCAwLjAwNTAwNCwgMC4wMDUwMDYsIDAuMDA1MDEsIDAuMDA1MDA5LCAwLjAwNTAxIiwgXAotICAgICAgICAgICIwLjAwNTAzMSwgMC4wMDUwMzksIDAuMDA1MDUyLCAwLjAwNTA1NCwgMC4wMDUwNTYsIDAuMDA1MDU5LCAwLjAwNTA2MSIsIFwKLSAgICAgICAgICAiMC4wMDUwODEsIDAuMDA1MDg5LCAwLjAwNTEwMiwgMC4wMDUxMDQsIDAuMDA1MTA2LCAwLjAwNTEwNywgMC4wMDUxMSIsIFwKLSAgICAgICAgICAiMC4wMDUxNTQsIDAuMDA1MTYyLCAwLjAwNTE3NCwgMC4wMDUxNzcsIDAuMDA1MTc4LCAwLjAwNTE4LCAwLjAwNTE4MSIsIFwKLSAgICAgICAgICAiMC4wMDUyNzUsIDAuMDA1MjgzLCAwLjAwNTI5MiwgMC4wMDUyOTUsIDAuMDA1Mjk2LCAwLjAwNTI5OCwgMC4wMDUyOTgiLCBcCi0gICAgICAgICAgIjAuMDA1MzU2LCAwLjAwNTM3NywgMC4wMDUzODcsIDAuMDA1Mzg5LCAwLjAwNTM5MSwgMC4wMDUzOTIsIDAuMDA1MzkzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUk4iOwotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjYxNiwgMC4wMDY2MiwgMC4wMDY2MSwgMC4wMDY2MDMsIDAuMDA2NTk3LCAwLjAwNjU5MiwgMC4wMDY1OTIiLCBcCi0gICAgICAgICAgIjAuMDA2NjEzLCAwLjAwNjYxNywgMC4wMDY2MDcsIDAuMDA2NiwgMC4wMDY1OTUsIDAuMDA2NTkyLCAwLjAwNjU4NyIsIFwKLSAgICAgICAgICAiMC4wMDY2NDUsIDAuMDA2NjQ5LCAwLjAwNjYzOSwgMC4wMDY2MzUsIDAuMDA2NjI2LCAwLjAwNjYyLCAwLjAwNjYyMiIsIFwKLSAgICAgICAgICAiMC4wMDY2ODcsIDAuMDA2NjkxLCAwLjAwNjY4MSwgMC4wMDY2NzQsIDAuMDA2NjY4LCAwLjAwNjY2MiwgMC4wMDY2NiIsIFwKLSAgICAgICAgICAiMC4wMDY3NDMsIDAuMDA2NzQ3LCAwLjAwNjczNywgMC4wMDY3MjksIDAuMDA2NzI0LCAwLjAwNjcxNywgMC4wMDY3MTgiLCBcCi0gICAgICAgICAgIjAuMDA2ODQ1LCAwLjAwNjg1LCAwLjAwNjg0LCAwLjAwNjgzMiwgMC4wMDY4MjYsIDAuMDA2ODE5LCAwLjAwNjgxNyIsIFwKLSAgICAgICAgICAiMC4wMDY5MywgMC4wMDY5MzMsIDAuMDA2OTIzLCAwLjAwNjkxNSwgMC4wMDY5MDgsIDAuMDA2OTAxLCAwLjAwNjg5OCIpOwotICAgICAgfQotICAgICAgcmlzZV9wb3dlcihzY2FsYXIpIHsKLSAgICAgICAgdmFsdWVzKCIwIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiU04iOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjQ5MywgMC4wMDY1MDIsIDAuMDA2NTE0LCAwLjAwNjUxNiwgMC4wMDY1MTcsIDAuMDA2NTE5LCAwLjAwNjUxOSIsIFwKLSAgICAgICAgICAiMC4wMDY0ODIsIDAuMDA2NDg5LCAwLjAwNjUwMSwgMC4wMDY1MDMsIDAuMDA2NTA1LCAwLjAwNjUwNSwgMC4wMDY1MDYiLCBcCi0gICAgICAgICAgIjAuMDA2NTAyLCAwLjAwNjUxLCAwLjAwNjUyMiwgMC4wMDY1MjQsIDAuMDA2NTI1LCAwLjAwNjUyNywgMC4wMDY1MjgiLCBcCi0gICAgICAgICAgIjAuMDA2NTM5LCAwLjAwNjU0OCwgMC4wMDY1NiwgMC4wMDY1NjMsIDAuMDA2NTY0LCAwLjAwNjU2NSwgMC4wMDY1NjYiLCBcCi0gICAgICAgICAgIjAuMDA2NTk0LCAwLjAwNjYwMywgMC4wMDY2MTYsIDAuMDA2NjE5LCAwLjAwNjYyLCAwLjAwNjYyMSwgMC4wMDY2MjIiLCBcCi0gICAgICAgICAgIjAuMDA2NzA0LCAwLjAwNjcxNCwgMC4wMDY3MjUsIDAuMDA2NzI4LCAwLjAwNjczLCAwLjAwNjczMiwgMC4wMDY3MzIiLCBcCi0gICAgICAgICAgIjAuMDA2ODIzLCAwLjAwNjgzMiwgMC4wMDY4NDMsIDAuMDA2ODQ2LCAwLjAwNjg0NiwgMC4wMDY4NDgsIDAuMDA2ODQ5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0ODU5LCAwLjAwNDg2OCwgMC4wMDQ4OCwgMC4wMDQ4ODMsIDAuMDA0ODg0LCAwLjAwNDg4NSwgMC4wMDQ4ODYiLCBcCi0gICAgICAgICAgIjAuMDA0ODMsIDAuMDA0ODM4LCAwLjAwNDg1MSwgMC4wMDQ4NTMsIDAuMDA0ODU4LCAwLjAwNDg1NiwgMC4wMDQ4NiIsIFwKLSAgICAgICAgICAiMC4wMDQ4MjIsIDAuMDA0ODMsIDAuMDA0ODQyLCAwLjAwNDg0NSwgMC4wMDQ4NDYsIDAuMDA0ODQ3LCAwLjAwNDg0OCIsIFwKLSAgICAgICAgICAiMC4wMDQ4MjcsIDAuMDA0ODM1LCAwLjAwNDg0OCwgMC4wMDQ4NSwgMC4wMDQ4NTQsIDAuMDA0ODUzLCAwLjAwNDg1NiIsIFwKLSAgICAgICAgICAiMC4wMDQ4NDYsIDAuMDA0ODU0LCAwLjAwNDg2NywgMC4wMDQ4NjksIDAuMDA0ODcxLCAwLjAwNDg3MiwgMC4wMDQ4NzIiLCBcCi0gICAgICAgICAgIjAuMDA0ODkyLCAwLjAwNDkwMSwgMC4wMDQ5MTUsIDAuMDA0OTE4LCAwLjAwNDkxOSwgMC4wMDQ5MTksIDAuMDA0OTIiLCBcCi0gICAgICAgICAgIjAuMDA0OTQ0LCAwLjAwNDk1MSwgMC4wMDQ5NjYsIDAuMDA0OTY3LCAwLjAwNDk2OSwgMC4wMDQ5NywgMC4wMDQ5NyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUU4pICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4zMzgyOTc7Ci0gICAgZnVuY3Rpb24gOiAiUUJJTlQiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5vbl91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcmlzaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEyNDA5NSwgMC4xNDI2OTgsIDAuMjQ4MTUyLCAwLjM0MTE4NiwgMC40NjUyODYsIDAuNzEzNTg1LCAwLjg2ODcwNCIsIFwKLSAgICAgICAgICAiMC4xMzI0MSwgMC4xNTEwMTMsIDAuMjU2NDY3LCAwLjM0OTUwMSwgMC40NzM2MDMsIDAuNzIxODk2LCAwLjg3NzAxNyIsIFwKLSAgICAgICAgICAiMC4xNDE0NzQsIDAuMTYwMDU3LCAwLjI2NTQ3MSwgMC4zNTg1ODMsIDAuNDgyNjksIDAuNzMwNjcsIDAuODg1OTc3IiwgXAotICAgICAgICAgICIwLjE0ODg1NSwgMC4xNjc0NTcsIDAuMjcyOTEsIDAuMzY1OTQzLCAwLjQ5MDA1NywgMC43MzgzMTcsIDAuODkzMDI5IiwgXAotICAgICAgICAgICIwLjE1NDc1LCAwLjE3MzM1LCAwLjI3ODgwMywgMC4zNzE3ODksIDAuNDk1OTU1LCAwLjc0NDIwMiwgMC44OTkxNTgiLCBcCi0gICAgICAgICAgIjAuMTYyNDY4LCAwLjE4MTA1OSwgMC4yODY1MTIsIDAuMzc5NTUzLCAwLjUwMzY4LCAwLjc1MTg0NiwgMC45MDcwMzgiLCBcCi0gICAgICAgICAgIjAuMTY4MjA1LCAwLjE4NjgwOCwgMC4yOTIyNjgsIDAuMzg1MzA0LCAwLjUwOTQzMSwgMC43NTc1MjYsIDAuOTEyODI2Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3MDQzMSwgMC4xMDkzNDUsIDAuMzMxNTg5LCAwLjUyNzY4MywgMC43ODg0NCwgMS4zMTAxLCAxLjYzNjQ4IiwgXAotICAgICAgICAgICIwLjA3MDQzMiwgMC4xMDkzNDUsIDAuMzMxNTkzLCAwLjUyNzY3OCwgMC43ODgzOTgsIDEuMzEwMTksIDEuNjM2NSIsIFwKLSAgICAgICAgICAiMC4wNzA0MDEsIDAuMTA5MjAyLCAwLjMzMTE3NCwgMC41Mjc4MiwgMC43ODc1NTQsIDEuMzA4ODcsIDEuNjM1MzciLCBcCi0gICAgICAgICAgIjAuMDcwNDMyLCAwLjEwOTM0NSwgMC4zMzE2MSwgMC41Mjc2NDksIDAuNzg4MjY2LCAxLjMxMDA4LCAxLjYzNjkxIiwgXAotICAgICAgICAgICIwLjA3MDQzMSwgMC4xMDkzNDMsIDAuMzMxNjE5LCAwLjUyNzM3MywgMC43ODgyMzgsIDEuMzEwMDYsIDEuNjM4OTQiLCBcCi0gICAgICAgICAgIjAuMDcwNDU2LCAwLjEwOTM1NywgMC4zMzE2MTEsIDAuNTI3NzE3LCAwLjc4OTE1NywgMS4zMTE5NCwgMS42Mzg5MiIsIFwKLSAgICAgICAgICAiMC4wNzA0MDYsIDAuMTA5Mjc2LCAwLjMzMTU3OCwgMC41MjcxMjEsIDAuNzg4MTA0LCAxLjMxMDc0LCAxLjYzNzQ3Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExNjM2NywgMC4xMzQ0NTIsIDAuMjM2OTc5LCAwLjMyNzQ1LCAwLjQ0ODExLCAwLjY4OTMyMSwgMC44NDAxMzgiLCBcCi0gICAgICAgICAgIjAuMTI0NTgzLCAwLjE0MjY2OSwgMC4yNDUxOTksIDAuMzM1NjY0LCAwLjQ1NjMwNSwgMC42OTc1NDMsIDAuODQ4MzU5IiwgXAotICAgICAgICAgICIwLjEzMzczNiwgMC4xNTE4MzEsIDAuMjU0MzU5LCAwLjM0NDgyMywgMC40NjU0NDQsIDAuNzA2NzEzLCAwLjg1NzUyOCIsIFwKLSAgICAgICAgICAiMC4xNDExMjUsIDAuMTU5MjE3LCAwLjI2MTc1MSwgMC4zNTIyMTUsIDAuNDcyODM4LCAwLjcxNDA5MiwgMC44NjQ5MDIiLCBcCi0gICAgICAgICAgIjAuMTQ2ODkxLCAwLjE2NDk5LCAwLjI2NzUyMywgMC4zNTc5ODgsIDAuNDc4NjI5LCAwLjcxOTg2MiwgMC44NzA2NjkiLCBcCi0gICAgICAgICAgIjAuMTU0OTQ0LCAwLjE3MzAzNCwgMC4yNzU1NTksIDAuMzY2MDM4LCAwLjQ4NjY0NCwgMC43Mjc5MDQsIDAuODc4NzA1IiwgXAotICAgICAgICAgICIwLjE2MDYzMiwgMC4xNzg3NDUsIDAuMjgxMjQyLCAwLjM3MTcxMywgMC40OTIzNDQsIDAuNzMzNTk5LCAwLjg4NDM5NiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjcwNTMsIDAuMTA0MDA4LCAwLjMxNDY4MywgMC41MDE2MjgsIDAuNzQ5Mzc3LCAxLjI0NTk5LCAxLjU1NjUiLCBcCi0gICAgICAgICAgIjAuMDY3MDQ0LCAwLjEwNDAwNiwgMC4zMTQ3MDYsIDAuNTAxNjEsIDAuNzUwMjE3LCAxLjI0NjEyLCAxLjU1NTQyIiwgXAotICAgICAgICAgICIwLjA2NzA3NSwgMC4xMDM5ODIsIDAuMzE0NTA4LCAwLjUwMTYwMywgMC43NTAxODYsIDEuMjQ0NDgsIDEuNTUzNyIsIFwKLSAgICAgICAgICAiMC4wNjcwOTYsIDAuMTAzOTcyLCAwLjMxNDcwOCwgMC41MDE2MDQsIDAuNzQ5MzUxLCAxLjI0NjA2LCAxLjU1NjQiLCBcCi0gICAgICAgICAgIjAuMDY3MDY3LCAwLjEwMzk3MiwgMC4zMTQ3MDUsIDAuNTAxNjA0LCAwLjc0OTI1MSwgMS4yNDYsIDEuNTU2MzkiLCBcCi0gICAgICAgICAgIjAuMDY3MDgxLCAwLjEwMzk3NywgMC4zMTUwNDUsIDAuNTAxNTcxLCAwLjc1MDA1LCAxLjI0NjE1LCAxLjU1NjU4IiwgXAotICAgICAgICAgICIwLjA2NzA3MiwgMC4xMDM5NzcsIDAuMzE1MDIzLCAwLjUwMTA4LCAwLjc1MDA2LCAxLjI0NjEyLCAxLjU1NjMxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiBwcmVzZXQ7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE0NTE0NSwgMC4xNjM3NDEsIDAuMjY5MTg5LCAwLjM2MjI0NCwgMC40ODYzNjgsIDAuNzM0NjA2LCAwLjg4OTY2IiwgXAotICAgICAgICAgICIwLjE1MzA0OSwgMC4xNzE2MzMsIDAuMjc3MDk1LCAwLjM3MDEwNSwgMC40OTQzMzIsIDAuNzQyMTQ2LCAwLjg5NzI4OSIsIFwKLSAgICAgICAgICAiMC4xNjEyMjUsIDAuMTc5ODA4LCAwLjI4NTI3LCAwLjM3ODI1OSwgMC41MDI0NDksIDAuNzUwMzIsIDAuOTA1NTc0IiwgXAotICAgICAgICAgICIwLjE2NzM1MiwgMC4xODU5NDgsIDAuMjkxMzk5LCAwLjM4NDQ3NSwgMC41MDg1NTIsIDAuNzU2ODAyLCAwLjkxMTk1NCIsIFwKLSAgICAgICAgICAiMC4xNzIxNiwgMC4xOTA3NDcsIDAuMjk2MTc5LCAwLjM4OTI1NCwgMC41MTMzODksIDAuNzYxNTg5LCAwLjkxNjM3NCIsIFwKLSAgICAgICAgICAiMC4xNzg0NzksIDAuMTk3MDczLCAwLjMwMjQ2NiwgMC4zOTU1NjYsIDAuNTE5Njg3LCAwLjc2Nzc1NywgMC45MjMwNjIiLCBcCi0gICAgICAgICAgIjAuMTgzNDc4LCAwLjIwMjA2OCwgMC4zMDc1MTYsIDAuNDAwNjQ0LCAwLjUyNDc1OCwgMC43NzI4NjUsIDAuOTI4MDU5Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3MDQyOSwgMC4xMDk0MjIsIDAuMzMxNjY4LCAwLjUyNzc4NSwgMC43ODg2MzcsIDEuMzEyMTMsIDEuNjM2NzgiLCBcCi0gICAgICAgICAgIjAuMDcwNDMzLCAwLjEwOTM0NywgMC4zMzE2NywgMC41MjcxOTgsIDAuNzg5MTgzLCAxLjMxMjIyLCAxLjYzODEiLCBcCi0gICAgICAgICAgIjAuMDcwNDQsIDAuMTA5MzU2LCAwLjMzMTY2OSwgMC41Mjc0ODgsIDAuNzg4NDI2LCAxLjMxMjIyLCAxLjYzOTAzIiwgXAotICAgICAgICAgICIwLjA3MDQyOCwgMC4xMDkzNDgsIDAuMzMxNjYsIDAuNTI3MzgxLCAwLjc4Nzc3NiwgMS4zMTAwOCwgMS42MzY0MyIsIFwKLSAgICAgICAgICAiMC4wNzA0NDIsIDAuMTA5NDIyLCAwLjMzMTY2OCwgMC41Mjc2MDgsIDAuNzg5MDk5LCAxLjMxMjE3LCAxLjYzODIiLCBcCi0gICAgICAgICAgIjAuMDcwNDM3LCAwLjEwOTQsIDAuMzMxNjYyLCAwLjUyNzIyNSwgMC43ODg2OSwgMS4zMTI0NywgMS42MzY0MiIsIFwKLSAgICAgICAgICAiMC4wNzA0MTksIDAuMTA5NDQ1LCAwLjMzMTY5LCAwLjUyNzcxLCAwLjc4ODEwOCwgMS4zMTIsIDEuNjM2NjIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiU04iOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGNsZWFyOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMzE3MiwgMC4xNTAzMTgsIDAuMjU1NzY3LCAwLjM0ODgyOCwgMC40NzMwMTEsIDAuNzIxMTc3LCAwLjg3NjEzMiIsIFwKLSAgICAgICAgICAiMC4xMzgyMzksIDAuMTU2ODIyLCAwLjI2MjI4NSwgMC4zNTUyNTksIDAuNDc5NDYxLCAwLjcyNzcxMywgMC44ODI0NTQiLCBcCi0gICAgICAgICAgIjAuMTQ1ODM2LCAwLjE2NDQyNCwgMC4yNjk4NjcsIDAuMzYyOTM4LCAwLjQ4NzAyNywgMC43MzUyNjQsIDAuODkwMzE5IiwgXAotICAgICAgICAgICIwLjE1Mjk2LCAwLjE3MTU0MywgMC4yNzcwMDYsIDAuMzY5OTcyLCAwLjQ5NDE3OSwgMC43NDI0MTQsIDAuODk3MjQxIiwgXAotICAgICAgICAgICIwLjE1OTY5MSwgMC4xNzgyNzIsIDAuMjgzNzM1LCAwLjM3NjgwMSwgMC41MDA5MDIsIDAuNzQ5MTQxLCAwLjkwMzkyNCIsIFwKLSAgICAgICAgICAiMC4xNjkyMDgsIDAuMTg3ODI0LCAwLjI5MzI3MywgMC4zODYzMzEsIDAuNTEwNDI4LCAwLjc1ODcwMSwgMC45MTM2MzYiLCBcCi0gICAgICAgICAgIjAuMTc2NDUsIDAuMTk1MDUsIDAuMzAwNDkzLCAwLjM5MzU3NywgMC41MTc2MjgsIDAuNzY1OTIyLCAwLjkyMDgzNSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzA0MjYsIDAuMTA5MzQ1LCAwLjMzMTY3LCAwLjUyNzc5LCAwLjc4OTEyMywgMS4zMTE0MywgMS42MzcyNSIsIFwKLSAgICAgICAgICAiMC4wNzA0MzUsIDAuMTA5MzU2LCAwLjMzMTY2OCwgMC41MjcxMDYsIDAuNzg5MTA1LCAxLjMxMDI4LCAxLjYzODgiLCBcCi0gICAgICAgICAgIjAuMDcwNDI4LCAwLjEwOTQyLCAwLjMzMTY1OSwgMC41MjcxMzgsIDAuNzg3OTczLCAxLjMxMDEsIDEuNjM2NDkiLCBcCi0gICAgICAgICAgIjAuMDcwNDM3LCAwLjEwOTM1NCwgMC4zMzE2NjgsIDAuNTI3MTU2LCAwLjc4NzU0OSwgMS4zMTAxLCAxLjYzODU0IiwgXAotICAgICAgICAgICIwLjA3MDQzNiwgMC4xMDkzNTIsIDAuMzMxNjY2LCAwLjUyNzEwNSwgMC43ODkwNTEsIDEuMzEwMDksIDEuNjM2NDEiLCBcCi0gICAgICAgICAgIjAuMDcwNDQ3LCAwLjEwOTQzMiwgMC4zMzE2NjYsIDAuNTI3MTQyLCAwLjc4ODI5NCwgMS4zMTAzNSwgMS42Mzg4NiIsIFwKLSAgICAgICAgICAiMC4wNzA0NzEsIDAuMTA5NDE4LCAwLjMzMTUxNSwgMC41Mjc3ODEsIDAuNzg5MDI2LCAxLjMxMDQ3LCAxLjYzODg4Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExMjM0LCAwLjEzMDQzMywgMC4yMzI5NjgsIDAuMzIzNDUyLCAwLjQ0NDA3LCAwLjY4NTQxMiwgMC44MzYxMDMiLCBcCi0gICAgICAgICAgIjAuMTE5MDA3LCAwLjEzNzA5NywgMC4yMzk2MjgsIDAuMzMwMTA5LCAwLjQ1MDc1NCwgMC42OTIwNTMsIDAuODQyODc5IiwgXAotICAgICAgICAgICIwLjEyNjkxOSwgMC4xNDUwMTQsIDAuMjQ3NTQ3LCAwLjMzODA0MywgMC40NTg3MDEsIDAuNjk5OTE3LCAwLjg1MDc4NyIsIFwKLSAgICAgICAgICAiMC4xMzU2MDUsIDAuMTUzNzAxLCAwLjI1NjI2MywgMC4zNDY3MTksIDAuNDY3Mzk2LCAwLjcwODY1LCAwLjg1OTQ2MyIsIFwKLSAgICAgICAgICAiMC4xNDI4MzQsIDAuMTYwOTMsIDAuMjYzNDY3LCAwLjM1Mzk1NiwgMC40NzQ1OTYsIDAuNzE1OTA2LCAwLjg2NjcyNiIsIFwKLSAgICAgICAgICAiMC4xNTI0MjMsIDAuMTcwNTE4LCAwLjI3MzA0NCwgMC4zNjM0ODYsIDAuNDg0MTE4LCAwLjcyNTQwMSwgMC44NzYxODkiLCBcCi0gICAgICAgICAgIjAuMTU5MDg1LCAwLjE3NzE3NCwgMC4yNzk3MDksIDAuMzcwMTgzLCAwLjQ5MDg4OSwgMC43MzIwNzksIDAuODgyODkzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2NzA3MSwgMC4xMDQwNDgsIDAuMzE1MTkxLCAwLjUwMTcwNSwgMC43NTAyODEsIDEuMjQ3NjcsIDEuNTU4NDQiLCBcCi0gICAgICAgICAgIjAuMDY3MDUyLCAwLjEwNDA1NCwgMC4zMTUxOTIsIDAuNTAxNjQ5LCAwLjc1MDI3MywgMS4yNDc1NCwgMS41NTg2NSIsIFwKLSAgICAgICAgICAiMC4wNjcwNzYsIDAuMTA0MDU3LCAwLjMxNTE4NCwgMC41MDE2ODEsIDAuNzUwMjkyLCAxLjI0NzY5LCAxLjU1ODQyIiwgXAotICAgICAgICAgICIwLjA2NzA2OCwgMC4xMDQwNjIsIDAuMzE1MTk5LCAwLjUwMTcxLCAwLjc0OTkzOCwgMS4yNDc2MSwgMS41NTg0NyIsIFwKLSAgICAgICAgICAiMC4wNjcwOTYsIDAuMTA0MDcsIDAuMzE1MTY4LCAwLjUwMTY3MiwgMC43NTAyODgsIDEuMjQ3NiwgMS41NTg1OCIsIFwKLSAgICAgICAgICAiMC4wNjcwNzksIDAuMTA0MDU5LCAwLjMxNTE0MiwgMC41MDE2MDIsIDAuNzUwMTg2LCAxLjI0NzQ1LCAxLjU1ODU5IiwgXAotICAgICAgICAgICIwLjA2NzE4NywgMC4xMDM4OTcsIDAuMzE1MjMyLCAwLjUwMTU5NSwgMC43NDk0NDIsIDEuMjQ3MjYsIDEuNTU4MTMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0OTgzLCAwLjAwNDk5MiwgMC4wMDUwMDQsIDAuMDA1MDA3LCAwLjAwNTAxLCAwLjAwNTAwOSwgMC4wMDUwMSIsIFwKLSAgICAgICAgICAiMC4wMDQ5ODMsIDAuMDA0OTkxLCAwLjAwNTAwNCwgMC4wMDUwMDYsIDAuMDA1MDEsIDAuMDA1MDA5LCAwLjAwNTAxIiwgXAotICAgICAgICAgICIwLjAwNTAzMSwgMC4wMDUwMzksIDAuMDA1MDUyLCAwLjAwNTA1NCwgMC4wMDUwNTYsIDAuMDA1MDU5LCAwLjAwNTA2MSIsIFwKLSAgICAgICAgICAiMC4wMDUwODEsIDAuMDA1MDg5LCAwLjAwNTEwMiwgMC4wMDUxMDQsIDAuMDA1MTA2LCAwLjAwNTEwNywgMC4wMDUxMSIsIFwKLSAgICAgICAgICAiMC4wMDUxNTQsIDAuMDA1MTYyLCAwLjAwNTE3NCwgMC4wMDUxNzcsIDAuMDA1MTc4LCAwLjAwNTE4LCAwLjAwNTE4MSIsIFwKLSAgICAgICAgICAiMC4wMDUyNzUsIDAuMDA1MjgzLCAwLjAwNTI5MiwgMC4wMDUyOTUsIDAuMDA1Mjk2LCAwLjAwNTI5OCwgMC4wMDUyOTgiLCBcCi0gICAgICAgICAgIjAuMDA1MzU2LCAwLjAwNTM3NywgMC4wMDUzODcsIDAuMDA1Mzg5LCAwLjAwNTM5MSwgMC4wMDUzOTIsIDAuMDA1MzkzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1MjAxLCAwLjAwNTIxLCAwLjAwNTIyMiwgMC4wMDUyMjQsIDAuMDA1MjI3LCAwLjAwNTIyNywgMC4wMDUyMjciLCBcCi0gICAgICAgICAgIjAuMDA1MTk2LCAwLjAwNTIwMywgMC4wMDUyMTYsIDAuMDA1MjE4LCAwLjAwNTIyLCAwLjAwNTIyMywgMC4wMDUyMjMiLCBcCi0gICAgICAgICAgIjAuMDA1MjM5LCAwLjAwNTI0OCwgMC4wMDUyNiwgMC4wMDUyNjIsIDAuMDA1MjY0LCAwLjAwNTI2NSwgMC4wMDUyNjYiLCBcCi0gICAgICAgICAgIjAuMDA1MjgyLCAwLjAwNTI5LCAwLjAwNTMwMywgMC4wMDUzMDYsIDAuMDA1MzA3LCAwLjAwNTMwOSwgMC4wMDUzMDkiLCBcCi0gICAgICAgICAgIjAuMDA1MzQ2LCAwLjAwNTM1NSwgMC4wMDUzNjgsIDAuMDA1MzcxLCAwLjAwNTM3MiwgMC4wMDUzNzQsIDAuMDA1Mzc0IiwgXAotICAgICAgICAgICIwLjAwNTQ1MSwgMC4wMDU0NjEsIDAuMDA1NDcyLCAwLjAwNTQ3NSwgMC4wMDU0NzYsIDAuMDA1NDY4LCAwLjAwNTQ3OCIsIFwKLSAgICAgICAgICAiMC4wMDU1NCwgMC4wMDU1NDgsIDAuMDA1NTYsIDAuMDA1NTYyLCAwLjAwNTU2NCwgMC4wMDU1NjYsIDAuMDA1NTY1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUk4iOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjYxNiwgMC4wMDY2MiwgMC4wMDY2MSwgMC4wMDY2MDMsIDAuMDA2NTk3LCAwLjAwNjU5MiwgMC4wMDY1OTIiLCBcCi0gICAgICAgICAgIjAuMDA2NjEzLCAwLjAwNjYxNywgMC4wMDY2MDcsIDAuMDA2NiwgMC4wMDY1OTUsIDAuMDA2NTkyLCAwLjAwNjU4NyIsIFwKLSAgICAgICAgICAiMC4wMDY2NDUsIDAuMDA2NjQ5LCAwLjAwNjYzOSwgMC4wMDY2MzUsIDAuMDA2NjI2LCAwLjAwNjYyLCAwLjAwNjYyMiIsIFwKLSAgICAgICAgICAiMC4wMDY2ODcsIDAuMDA2NjkxLCAwLjAwNjY4MSwgMC4wMDY2NzQsIDAuMDA2NjY4LCAwLjAwNjY2MiwgMC4wMDY2NiIsIFwKLSAgICAgICAgICAiMC4wMDY3NDMsIDAuMDA2NzQ3LCAwLjAwNjczNywgMC4wMDY3MjksIDAuMDA2NzI0LCAwLjAwNjcxNywgMC4wMDY3MTgiLCBcCi0gICAgICAgICAgIjAuMDA2ODQ1LCAwLjAwNjg1LCAwLjAwNjg0LCAwLjAwNjgzMiwgMC4wMDY4MjYsIDAuMDA2ODE5LCAwLjAwNjgxNyIsIFwKLSAgICAgICAgICAiMC4wMDY5MywgMC4wMDY5MzMsIDAuMDA2OTIzLCAwLjAwNjkxNSwgMC4wMDY5MDgsIDAuMDA2OTAxLCAwLjAwNjg5OCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihzY2FsYXIpIHsKLSAgICAgICAgdmFsdWVzKCIwIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiU04iOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDg1OSwgMC4wMDQ4NjgsIDAuMDA0ODgsIDAuMDA0ODgzLCAwLjAwNDg4NCwgMC4wMDQ4ODUsIDAuMDA0ODg2IiwgXAotICAgICAgICAgICIwLjAwNDgzLCAwLjAwNDgzOCwgMC4wMDQ4NTEsIDAuMDA0ODUzLCAwLjAwNDg1OCwgMC4wMDQ4NTYsIDAuMDA0ODYiLCBcCi0gICAgICAgICAgIjAuMDA0ODIyLCAwLjAwNDgzLCAwLjAwNDg0MiwgMC4wMDQ4NDUsIDAuMDA0ODQ2LCAwLjAwNDg0NywgMC4wMDQ4NDgiLCBcCi0gICAgICAgICAgIjAuMDA0ODI3LCAwLjAwNDgzNSwgMC4wMDQ4NDgsIDAuMDA0ODUsIDAuMDA0ODU0LCAwLjAwNDg1MywgMC4wMDQ4NTYiLCBcCi0gICAgICAgICAgIjAuMDA0ODQ2LCAwLjAwNDg1NCwgMC4wMDQ4NjcsIDAuMDA0ODY5LCAwLjAwNDg3MSwgMC4wMDQ4NzIsIDAuMDA0ODcyIiwgXAotICAgICAgICAgICIwLjAwNDg5MiwgMC4wMDQ5MDEsIDAuMDA0OTE1LCAwLjAwNDkxOCwgMC4wMDQ5MTksIDAuMDA0OTE5LCAwLjAwNDkyIiwgXAotICAgICAgICAgICIwLjAwNDk0NCwgMC4wMDQ5NTEsIDAuMDA0OTY2LCAwLjAwNDk2NywgMC4wMDQ5NjksIDAuMDA0OTcsIDAuMDA0OTciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDY0OTMsIDAuMDA2NTAyLCAwLjAwNjUxNCwgMC4wMDY1MTYsIDAuMDA2NTE3LCAwLjAwNjUxOSwgMC4wMDY1MTkiLCBcCi0gICAgICAgICAgIjAuMDA2NDgyLCAwLjAwNjQ4OSwgMC4wMDY1MDEsIDAuMDA2NTAzLCAwLjAwNjUwNSwgMC4wMDY1MDUsIDAuMDA2NTA2IiwgXAotICAgICAgICAgICIwLjAwNjUwMiwgMC4wMDY1MSwgMC4wMDY1MjIsIDAuMDA2NTI0LCAwLjAwNjUyNSwgMC4wMDY1MjcsIDAuMDA2NTI4IiwgXAotICAgICAgICAgICIwLjAwNjUzOSwgMC4wMDY1NDgsIDAuMDA2NTYsIDAuMDA2NTYzLCAwLjAwNjU2NCwgMC4wMDY1NjUsIDAuMDA2NTY2IiwgXAotICAgICAgICAgICIwLjAwNjU5NCwgMC4wMDY2MDMsIDAuMDA2NjE2LCAwLjAwNjYxOSwgMC4wMDY2MiwgMC4wMDY2MjEsIDAuMDA2NjIyIiwgXAotICAgICAgICAgICIwLjAwNjcwNCwgMC4wMDY3MTQsIDAuMDA2NzI1LCAwLjAwNjcyOCwgMC4wMDY3MywgMC4wMDY3MzIsIDAuMDA2NzMyIiwgXAotICAgICAgICAgICIwLjAwNjgyMywgMC4wMDY4MzIsIDAuMDA2ODQzLCAwLjAwNjg0NiwgMC4wMDY4NDYsIDAuMDA2ODQ4LCAwLjAwNjg0OSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUk4pICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY3OTYyOTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2Nzk2MjY7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjc5NjI5OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDY0MiwgMC4wMDA2MzksIDAuMDAwNzA5LCAwLjAwMDgwNSwgMC4wMDA5MiwgMC4wMDExMzYsIDAuMDAxMzMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDMxNTksIDAuMDAzMTcsIDAuMDAzMjIzLCAwLjAwMzMxMSwgMC4wMDM0MjQsIDAuMDAzNjUzLCAwLjAwMzg0NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQmIVNFJiFTSSZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fU0VfRVFfMF9BTl9TSV9FUV8wX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4xNDUxNDUsIDAuMTUzMDQ5LCAwLjE2MTIyNSwgMC4xNjczNTIsIDAuMTcyMTYsIDAuMTc4NDc5LCAwLjE4MzMzOCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJlY292ZXJ5X3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiU04iOwotICAgICAgc2RmX2NvbmQgOiAiU04gPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQocmVjb3ZlcnlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQzNzUsIDAuMDM4NzUsIDAuMDI2MjUsIDAuMDIsIDAuMDEzNzUsIDAuMDEsIDAuMDA3NSIsIFwKLSAgICAgICAgICAiMC4wNTUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMjUsIDAuMDE1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMDYxMjUsIDAuMDUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMjc1LCAwLjAxODc1IiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDU2MjUsIDAuMDUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzM3NSwgMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMDczNzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNSwgMC4wNDM3NSwgMC4wMzM3NSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4wNzc1LCAwLjA3MjUsIDAuMDYsIDAuMDUzNzUsIDAuMDQ3NSwgMC4wNDM3NSwgMC4wMzUiLCBcCi0gICAgICAgICAgIjAuMDg2MjUsIDAuMDc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDU2MjUsIDAuMDQ2MjUsIDAuMDQzNzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiU04iOwotICAgICAgdGltaW5nX3R5cGUgOiByZWNvdmVyeV9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEJiFTRSYhU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1NFX0VRXzBfQU5fU0lfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChyZWNvdmVyeV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNSwgMC4wNTUsIDAuMDYxMjUsIDAuMDY3NSwgMC4wNzM3NSwgMC4wODM3NSwgMC4wODYyNSIsIFwKLSAgICAgICAgICAiMC4wNDUsIDAuMDUsIDAuMDU2MjUsIDAuMDYyNSwgMC4wNjg3NSwgMC4wNzI1LCAwLjA4MTI1IiwgXAotICAgICAgICAgICIwLjAzODc1LCAwLjA0Mzc1LCAwLjA1LCAwLjA1NjI1LCAwLjA2MjUsIDAuMDcyNSwgMC4wNzUiLCBcCi0gICAgICAgICAgIjAuMDM4NzUsIDAuMDQzNzUsIDAuMDUsIDAuMDU2MjUsIDAuMDYyNSwgMC4wNjYyNSwgMC4wNzUiLCBcCi0gICAgICAgICAgIjAuMDM4NzUsIDAuMDQzNzUsIDAuMDUsIDAuMDU2MjUsIDAuMDU2MjUsIDAuMDY2MjUsIDAuMDc1IiwgXAotICAgICAgICAgICIwLjAzNSwgMC4wNCwgMC4wNDYyNSwgMC4wNTI1LCAwLjA1ODc1LCAwLjA2MjUsIDAuMDcxMjUiLCBcCi0gICAgICAgICAgIjAuMDMyNSwgMC4wMzc1LCAwLjA0Mzc1LCAwLjA1LCAwLjA1NjI1LCAwLjA2LCAwLjA2ODc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogcmVtb3ZhbF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlNOIjsKLSAgICAgIHNkZl9jb25kIDogIlNOID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHJlbW92YWxfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAxMjUsIC0wLjAwMTI1LCAwLjAwNSwgMC4wMTEyNSwgMC4wMTc1LCAwLjAyNzUsIDAuMDMiLCBcCi0gICAgICAgICAgIi0wLjAxNzUsIC0wLjAxMjUsIDAsIDAuMDA2MjUsIDAuMDEyNSwgMC4wMTYyNSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxODc1LCAtMC4wMDYyNSwgMCwgMCwgMC4wMSwgMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDI1LCAtMC4wMTI1LCAtMC4wMDYyNSwgLTAuMDA2MjUsIDAuMDAzNzUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAtMC4wMDI1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wNCwgLTAuMDM1LCAtMC4wMjg3NSwgLTAuMDIyNSwgLTAuMDE2MjUsIC0wLjAwNjI1LCAtMC4wMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTUsIC0wLjAwNjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTRSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxMzk1Njg7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxMzk1NDc7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxMzk1Njg7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA1MzU1LCAwLjAwNTM3NiwgMC4wMDU0NjQsIDAuMDA1NTgsIDAuMDA1NzM1LCAwLjAwNTk2MSwgMC4wMDYxNjMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDcwMDEsIDAuMDA3MDI4LCAwLjAwNzE0OCwgMC4wMDczMTQsIDAuMDA3NTI2LCAwLjAwNzg5NSwgMC4wMDgyMyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJSTiZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJSTl9FUV8xX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDE4NzUsIC0wLjAxMzc1LCAtMC4wMDEyNSwgLTAuMDAxMjUsIDAuMDA1LCAwLjAxNSwgMC4wMTc1IiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLCAwLjAwMzc1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgLTAuMDAyNSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwMjUsIDAiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDg3NSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA0NjI1LCAtMC4wMzUsIC0wLjAyODc1LCAtMC4wMjI1LCAtMC4wMTYyNSwgLTAuMDEyNSwgLTAuMDEiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMjUsIC0wLjAxNSwgLTAuMDEyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAxMjUsIC0wLjAwMTI1LCAwLjAwNSwgMC4wMTEyNSwgMC4wMTc1LCAwLjAyMTI1LCAwLjAyMzc1IiwgXAotICAgICAgICAgICItMC4wMTc1LCAtMC4wMTI1LCAwLCAwLjAwNjI1LCAwLjAwNjI1LCAwLjAxNjI1LCAwLjAxODc1IiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLCAwLjAwMzc1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgLTAuMDAyNSwgMCIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwODc1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDQ2MjUsIC0wLjA0MTI1LCAtMC4wMzUsIC0wLjAyODc1LCAtMC4wMjI1LCAtMC4wMTg3NSwgLTAuMDE2MjUiLCBcCi0gICAgICAgICAgIi0wLjA1NSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMjc1LCAtMC4wMTg3NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiUk4mU04iOwotICAgICAgc2RmX2NvbmQgOiAiUk5fRVFfMV9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3NSwgMC4wNjM3NSwgMC4wNTEyNSwgMC4wNDUsIDAuMDQ1LCAwLjAzNSwgMC4wMzI1IiwgXAotICAgICAgICAgICIwLjA4LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDUsIDAuMDQ2MjUsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiMC4wOTI1LCAwLjA4MTI1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDYyNSwgMC4wNTI1LCAwLjA1IiwgXAotICAgICAgICAgICIwLjA5ODc1LCAwLjA4NzUsIDAuMDgxMjUsIDAuMDc1LCAwLjA2ODc1LCAwLjA2NSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiMC4xMDUsIDAuMSwgMC4wODc1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNzEyNSwgMC4wNjg3NSIsIFwKLSAgICAgICAgICAiMC4xMTUsIDAuMTEsIDAuMDk3NSwgMC4wOTEyNSwgMC4wODUsIDAuMDgxMjUsIDAuMDc4NzUiLCBcCi0gICAgICAgICAgIjAuMTIzNzUsIDAuMTEyNSwgMC4xMDYyNSwgMC4xLCAwLjA5Mzc1LCAwLjA5LCAwLjA4MTI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDgxMjUsIDAuMDc2MjUsIDAuMDYzNzUsIDAuMDU3NSwgMC4wNTEyNSwgMC4wNDc1LCAwLjA0NSIsIFwKLSAgICAgICAgICAiMC4wOTI1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1MjUsIDAuMDUiLCBcCi0gICAgICAgICAgIjAuMDk4NzUsIDAuMDg3NSwgMC4wNzUsIDAuMDY4NzUsIDAuMDY4NzUsIDAuMDU4NzUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIjAuMDk4NzUsIDAuMDkzNzUsIDAuMDgxMjUsIDAuMDc1LCAwLjA2ODc1LCAwLjA2NSwgMC4wNjI1IiwgXAotICAgICAgICAgICIwLjEwNSwgMC4wOTM3NSwgMC4wODc1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNjUsIDAuMDYyNSIsIFwKLSAgICAgICAgICAiMC4xMDg3NSwgMC4wOTc1LCAwLjA5MTI1LCAwLjA4NSwgMC4wNzg3NSwgMC4wNjg3NSwgMC4wNjYyNSIsIFwKLSAgICAgICAgICAiMC4xMTEyNSwgMC4xLCAwLjA5Mzc1LCAwLjA4NzUsIDAuMDgxMjUsIDAuMDc3NSwgMC4wNjg3NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oU0kpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDcwNDY0MjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA3MDM0MTg7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNzA0NjQyOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzc4OCwgMC4wMDM3NjQsIDAuMDAzNzgzLCAwLjAwMzgyMSwgMC4wMDM4ODUsIDAuMDAzOTk3LCAwLjAwNDExNCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNTg1NywgMC4wMDU4NDMsIDAuMDA1ODU3LCAwLjAwNTg5NiwgMC4wMDU5NTEsIDAuMDA2MDU0LCAwLjAwNjE2NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJSTiZTRSZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJSTl9FUV8xX0FOX1NFX0VRXzFfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMzEyNSwgLTAuMDI2MjUsIC0wLjAyNjI1LCAtMC4wMiwgLTAuMDIsIC0wLjAxNjI1LCAtMC4wMTM3NSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAzMTI1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMjUsIC0wLjAyMTI1LCAtMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDMxMjUsIC0wLjAyNzUsIC0wLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzM3NSwgLTAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjA2MTI1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDQsIC0wLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjA2NSwgLTAuMDYsIC0wLjA2LCAtMC4wNTM3NSwgLTAuMDUzNzUsIC0wLjA1LCAtMC4wNDc1IiwgXAotICAgICAgICAgICItMC4wNzM3NSwgLTAuMDY4NzUsIC0wLjA2MjUsIC0wLjA2MjUsIC0wLjA2MjUsIC0wLjA1ODc1LCAtMC4wNTYyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAxMjUsIC0wLjAwNzUsIC0wLjAwMTI1LCAwLjAwNSwgMC4wMTEyNSwgMC4wMTUsIDAuMDIzNzUiLCBcCi0gICAgICAgICAgIi0wLjAxNzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLCAwLjAwNjI1LCAwLjAxLCAwLjAxODc1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLCAwLjAwMzc1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgLTAuMDAyNSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDg3NSwgMCIsIFwKLSAgICAgICAgICAiLTAuMDQ2MjUsIC0wLjAzNSwgLTAuMDI4NzUsIC0wLjAyMjUsIC0wLjAxNjI1LCAtMC4wMTI1LCAtMC4wMSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjA0Mzc1LCAtMC4wMzEyNSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDE1LCAtMC4wMTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJSTiZTRSZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJSTl9FUV8xX0FOX1NFX0VRXzFfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzUsIDAuMDcsIDAuMDU3NSwgMC4wNTEyNSwgMC4wNDUsIDAuMDQxMjUsIDAuMDM4NzUiLCBcCi0gICAgICAgICAgIjAuMDg2MjUsIDAuMDc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDUsIDAuMDQ2MjUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMDkyNSwgMC4wODEyNSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA2MjUsIDAuMDUyNSwgMC4wNSIsIFwKLSAgICAgICAgICAiMC4wOTg3NSwgMC4wODc1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNTg3NSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiMC4xMDUsIDAuMDkzNzUsIDAuMDg3NSwgMC4wODEyNSwgMC4wNzUsIDAuMDY1LCAwLjA2MjUiLCBcCi0gICAgICAgICAgIjAuMTE1LCAwLjEwMzc1LCAwLjA5MTI1LCAwLjA4NSwgMC4wODUsIDAuMDc1LCAwLjA3MjUiLCBcCi0gICAgICAgICAgIjAuMTE3NSwgMC4xMTI1LCAwLjEsIDAuMDkzNzUsIDAuMDg3NSwgMC4wODM3NSwgMC4wODEyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2MjUsIDAuMDUxMjUsIDAuMDM4NzUsIDAuMDMyNSwgMC4wMzI1LCAwLjAyMjUsIDAuMDIiLCBcCi0gICAgICAgICAgIjAuMDY3NSwgMC4wNTYyNSwgMC4wNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAyNzUsIDAuMDI1IiwgXAotICAgICAgICAgICIwLjA3Mzc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDUsIDAuMDQzNzUsIDAuMDMzNzUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMDgsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNSwgMC4wNCwgMC4wMzc1IiwgXAotICAgICAgICAgICIwLjA4NjI1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNTYyNSwgMC4wNTYyNSwgMC4wNDYyNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4wOSwgMC4wODUsIDAuMDcyNSwgMC4wNjYyNSwgMC4wNiwgMC4wNTYyNSwgMC4wNDc1IiwgXAotICAgICAgICAgICIwLjA5ODc1LCAwLjA4NzUsIDAuMDgxMjUsIDAuMDc1LCAwLjA2ODc1LCAwLjA1ODc1LCAwLjA1NjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTTikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNjkwOTc7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNjkwNjc7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNjkwOTc7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNTkzLCAwLjAwMDU5MiwgMC4wMDA1OTIsIDAuMDAwNTkyLCAwLjAwMDU5MiwgMC4wMDA1OTIsIDAuMDAwNTkyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNjAyLCAwLjAwMDU5NiwgMC4wMDA1OTUsIDAuMDAwNTk2LCAwLjAwMDU5NSwgMC4wMDA1OTQsIDAuMDAwNTk0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRCYhUk4mIVNFJiFTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fUk5fRVFfMF9BTl9TRV9FUV8wX0FOX1NJX0VRXzAgPT0gMSdiMSI7Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4xMTIzMjIsIDAuMTE4OTg5LCAwLjEyNjkxOSwgMC4xMzU2MDUsIDAuMTQyODM0LCAwLjE1MjQyMywgMC4xNTkwODUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiByZWNvdmVyeV9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlJOIjsKLSAgICAgIHNkZl9jb25kIDogIlJOID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHJlY292ZXJ5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjI1LCAwLjAwMTI1LCAtMC4wMTEyNSwgLTAuMDE3NSwgLTAuMDIzNzUsIC0wLjAzMzc1LCAtMC4wMzYyNSIsIFwKLSAgICAgICAgICAiMC4wMTc1LCAwLjAwNjI1LCAtMC4wMDYyNSwgLTAuMDEyNSwgLTAuMDE4NzUsIC0wLjAyMjUsIC0wLjAzMTI1IiwgXAotICAgICAgICAgICIwLjAyMzc1LCAwLjAxMjUsIDAuMDA2MjUsIC0wLjAwNjI1LCAtMC4wMTI1LCAtMC4wMTYyNSwgLTAuMDI1IiwgXAotICAgICAgICAgICIwLjAzLCAwLjAxODc1LCAwLjAxMjUsIDAuMDA2MjUsIDAsIC0wLjAxLCAtMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4wMzYyNSwgMC4wMzEyNSwgMC4wMTg3NSwgMC4wMTI1LCAwLjAwNjI1LCAtMC4wMDM3NSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMDQ2MjUsIDAuMDQxMjUsIDAuMDI4NzUsIDAuMDIyNSwgMC4wMTYyNSwgMC4wMDYyNSwgMC4wMDM3NSIsIFwKLSAgICAgICAgICAiMC4wNjEyNSwgMC4wNSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMTUsIDAuMDEyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJlbW92YWxfcmlzaW5nOwotICAgICAgd2hlbiA6ICJSTiI7Ci0gICAgICBzZGZfY29uZCA6ICJSTiA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChyZW1vdmFsX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxODc1LCAwLjAyMzc1LCAwLjAzNjI1LCAwLjA0MjUsIDAuMDQ4NzUsIDAuMDUyNSwgMC4wNjEyNSIsIFwKLSAgICAgICAgICAiMC4wMTM3NSwgMC4wMTg3NSwgMC4wMzEyNSwgMC4wMzc1LCAwLjA0Mzc1LCAwLjA0NzUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIjAuMDAxMjUsIDAuMDEyNSwgMC4wMTg3NSwgMC4wMjUsIDAuMDMxMjUsIDAuMDQxMjUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIi0wLjAwNSwgMC4wMDYyNSwgMC4wMTI1LCAwLjAxODc1LCAwLjAyNSwgMC4wMzUsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDExMjUsIDAsIDAuMDA2MjUsIDAuMDE4NzUsIDAuMDE4NzUsIDAuMDI4NzUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjAxNSwgLTAuMDEsIDAuMDAyNSwgMC4wMDg3NSwgMC4wMTUsIDAuMDE4NzUsIDAuMDI3NSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLCAwLjAwNjI1LCAwLjAxNjI1LCAwLjAxODc1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IFNERkZTUlg0ICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChTREZGU1JYNCkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAyLjAxNjc2OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIGZmIChOMzUsUUJJTlQpIHsKLSAgICBuZXh0X3N0YXRlIDogIigoU0UgU0kpICsgKCFTRSBEKSkiOwotICAgIGNsb2NrZWRfb24gOiAiQ0siOwotICAgIGNsZWFyIDogIighUk4pIjsKLSAgICBwcmVzZXQgOiAiKCFTTikiOwotICAgIGNsZWFyX3ByZXNldF92YXIxIDogSDsKLSAgICBjbGVhcl9wcmVzZXRfdmFyMiA6IEw7Ci0gIH0KLSAgcGluKENLKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2NDYzMjQ7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjQ2MjkzOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDY0NjMyNDsKLSAgICBjbG9jayA6IHRydWU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA0MTI4LCAwLjAwNDEyMywgMC4wMDQxNzcsIDAuMDA0Mjg0LCAwLjAwNDM4NCwgMC4wMDQ2MDIsIDAuMDA0ODAyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA5NjY2LCAwLjAwOTY1OCwgMC4wMDk3NSwgMC4wMDk4NjIsIDAuMDA5OTksIDAuMDEwMjcxLCAwLjAxMDM4NyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQmUk4mIVNFJiFTSSZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fUk5fRVFfMV9BTl9TRV9FUV8wX0FOX1NJX0VRXzBfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjExNzE3NywgMC4xMjUzNjYsIDAuMTM0NzY2LCAwLjE0MjQxMywgMC4xNDg1MjEsIDAuMTU2NTExLCAwLjE2MjcyNyIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDg4MTk5LCAwLjA5NjI5NSwgMC4xMDU2OTQsIDAuMTEzMTM4LCAwLjExODk1MSwgMC4xMjY3MzEsIDAuMTMyNDYyIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihEKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2NzgwMTQ7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjc2NzE4OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDY3ODAxNDsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDQ5MTQsIDAuMDA0ODkzLCAwLjAwNDkwNSwgMC4wMDQ5NDMsIDAuMDA0OTk0LCAwLjAwNTEwNSwgMC4wMDUyMTgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDYxNTgsIDAuMDA2MTQ0LCAwLjAwNjE1NiwgMC4wMDYxOTYsIDAuMDA2MjQ3LCAwLjAwNjM1LCAwLjAwNjQ1MyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJSTiYhU0UmU04iOwotICAgICAgc2RmX2NvbmQgOiAiUk5fRVFfMV9BTl9TRV9FUV8wX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDM3NSwgLTAuMDI2MjUsIC0wLjAyNjI1LCAtMC4wMiwgLTAuMDIsIC0wLjAxNjI1LCAtMC4wMTM3NSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDI1LCAtMC4wMjEyNSwgLTAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAyNzUsIC0wLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzM3NSwgLTAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjA2MTI1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDQsIC0wLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjA3MTI1LCAtMC4wNjYyNSwgLTAuMDYsIC0wLjA2LCAtMC4wNTM3NSwgLTAuMDUsIC0wLjA0NzUiLCBcCi0gICAgICAgICAgIi0wLjA3Mzc1LCAtMC4wNjg3NSwgLTAuMDY4NzUsIC0wLjA2MjUsIC0wLjA2MjUsIC0wLjA1ODc1LCAtMC4wNTYyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAxMjUsIC0wLjAwNzUsIDAuMDA1LCAwLjAxMTI1LCAwLjAxMTI1LCAwLjAyMTI1LCAwLjAyMzc1IiwgXAotICAgICAgICAgICItMC4wMTc1LCAtMC4wMTI1LCAwLCAwLCAwLjAwNjI1LCAwLjAxNjI1LCAwLjAxODc1IiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLCAwLjAxLCAwLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMjUsIC0wLjAxMjUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLjAwMzc1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDEyNSwgLTAuMDAyNSwgMCIsIFwKLSAgICAgICAgICAiLTAuMDQsIC0wLjAzNSwgLTAuMDI4NzUsIC0wLjAyMjUsIC0wLjAxNjI1LCAtMC4wMTI1LCAtMC4wMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDI1LCAtMC4wMTUsIC0wLjAxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlJOJiFTRSZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJSTl9FUV8xX0FOX1NFX0VRXzBfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xLCAwLjA4ODc1LCAwLjA3NjI1LCAwLjA3LCAwLjA2Mzc1LCAwLjA2LCAwLjA1MTI1IiwgXAotICAgICAgICAgICIwLjEwNSwgMC4wOTM3NSwgMC4wODc1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjUsIDAuMDYyNSIsIFwKLSAgICAgICAgICAiMC4xMTEyNSwgMC4xMDYyNSwgMC4wOTM3NSwgMC4wODc1LCAwLjA4MTI1LCAwLjA3MTI1LCAwLjA2ODc1IiwgXAotICAgICAgICAgICIwLjExNzUsIDAuMTEyNSwgMC4xLCAwLjA5Mzc1LCAwLjA4NzUsIDAuMDc3NSwgMC4wNzUiLCBcCi0gICAgICAgICAgIjAuMTIzNzUsIDAuMTE4NzUsIDAuMTA2MjUsIDAuMSwgMC4wOTM3NSwgMC4wODM3NSwgMC4wODEyNSIsIFwKLSAgICAgICAgICAiMC4xMzM3NSwgMC4xMjg3NSwgMC4xMTYyNSwgMC4xMSwgMC4xMDM3NSwgMC4wOTM3NSwgMC4wOTEyNSIsIFwKLSAgICAgICAgICAiMC4xNDI1LCAwLjEzMTI1LCAwLjEyNSwgMC4xMTI1LCAwLjEwNjI1LCAwLjEwMjUsIDAuMSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3NSwgMC4wNjM3NSwgMC4wNTc1LCAwLjA1MTI1LCAwLjA0NSwgMC4wMzUsIDAuMDI2MjUiLCBcCi0gICAgICAgICAgIjAuMDgsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNSwgMC4wNCwgMC4wMzc1IiwgXAotICAgICAgICAgICIwLjA4NjI1LCAwLjA4MTI1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDQ2MjUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMDkyNSwgMC4wODc1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1MjUsIDAuMDUiLCBcCi0gICAgICAgICAgIjAuMDk4NzUsIDAuMDkzNzUsIDAuMDgxMjUsIDAuMDc1LCAwLjA2ODc1LCAwLjA1ODc1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICIwLjEwODc1LCAwLjA5NzUsIDAuMDkxMjUsIDAuMDc4NzUsIDAuMDcyNSwgMC4wNjg3NSwgMC4wNiIsIFwKLSAgICAgICAgICAiMC4xMTc1LCAwLjEwNjI1LCAwLjA5Mzc1LCAwLjA4NzUsIDAuMDgxMjUsIDAuMDcxMjUsIDAuMDY4NzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFEpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMS4zNDM1MjsKLSAgICBmdW5jdGlvbiA6ICJOMzUiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5vbl91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcmlzaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDkzMDg5LCAwLjE0OTYxMSwgMC4yMDQ2ODksIDAuMjQzOTYsIDAuMzA2Nzk4LCAwLjM2MTk4NywgMC40NDA1NjYiLCBcCi0gICAgICAgICAgIjAuMTAxMTk4LCAwLjE1NzcyLCAwLjIxMjg1NSwgMC4yNTIwMDgsIDAuMzE0ODgxLCAwLjM3MDEwMywgMC40NDg2NTYiLCBcCi0gICAgICAgICAgIjAuMTEwNTQ5LCAwLjE2NzA2OSwgMC4yMjIyMTQsIDAuMjYxNDQxLCAwLjMyNDI0MSwgMC4zNzk0NSwgMC40NTc5OTQiLCBcCi0gICAgICAgICAgIjAuMTE4MTQ1LCAwLjE3NDY1NiwgMC4yMjk3OTMsIDAuMjY5MDA4LCAwLjMzMjAxLCAwLjM4NzA0OSwgMC40NjU1NjUiLCBcCi0gICAgICAgICAgIjAuMTI0MzM3LCAwLjE4MDg0OCwgMC4yMzU5OTIsIDAuMjc1MTYzLCAwLjMzODA5OCwgMC4zOTMwNDgsIDAuNDcxNzY4IiwgXAotICAgICAgICAgICIwLjEzMjY1OSwgMC4xODkwOTksIDAuMjQ0MTM5LCAwLjI4MzQwOSwgMC4zNDY1MjksIDAuNDAxMzcxLCAwLjQ3OTk4NSIsIFwKLSAgICAgICAgICAiMC4xMzg1ODgsIDAuMTk1MTQzLCAwLjI1MDI5MywgMC4yODk1NTksIDAuMzUyMTk5LCAwLjQwNzQ2MywgMC40ODU5NTMiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjczMzQsIDAuMTM4NTcxLCAwLjI1MzU4NCwgMC4zMzU5NzQsIDAuNDY4NDk3LCAwLjU4NTExNCwgMC43NTE0NzQiLCBcCi0gICAgICAgICAgIjAuMDI3MzM3LCAwLjEzODU3OSwgMC4yNTM1OTQsIDAuMzM2MzIsIDAuNDY4NDYsIDAuNTg0MzY4LCAwLjc1MTQ4MyIsIFwKLSAgICAgICAgICAiMC4wMjczMjMsIDAuMTM4NTc3LCAwLjI1MzU5OCwgMC4zMzYzMDMsIDAuNDY4NDUsIDAuNTg1MTEsIDAuNzUxNDg0IiwgXAotICAgICAgICAgICIwLjAyNzI3OCwgMC4xMzg4NTEsIDAuMjUzNTk4LCAwLjMzNTk1OCwgMC40Njg5NzksIDAuNTg1MTEsIDAuNzUxNDg0IiwgXAotICAgICAgICAgICIwLjAyNzE2NCwgMC4xMzg4MjMsIDAuMjUzNTk4LCAwLjMzNjQxMiwgMC40Njg1MDksIDAuNTg0MjU0LCAwLjc1MTQ3MiIsIFwKLSAgICAgICAgICAiMC4wMjcxNTgsIDAuMTM4NzcxLCAwLjI1MzQ2NSwgMC4zMzYzNTYsIDAuNDY4OTkxLCAwLjU4NTA2LCAwLjc1MTQ1NiIsIFwKLSAgICAgICAgICAiMC4wMjczMTYsIDAuMTM4ODYxLCAwLjI1MzUzNCwgMC4zMzYxNzMsIDAuNDY4NjUxLCAwLjU4NTA4OCwgMC43NTE0Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk5MjAxLCAwLjE1NDk0LCAwLjIwOTMyOSwgMC4yNDc5MzYsIDAuMzA5ODcsIDAuMzY0MTg2LCAwLjQ0MTU1NiIsIFwKLSAgICAgICAgICAiMC4xMDczODIsIDAuMTYzMTIzLCAwLjIxNzQ2OCwgMC4yNTYxNSwgMC4zMTgxMDYsIDAuMzcyMzY4LCAwLjQ0OTc4IiwgXAotICAgICAgICAgICIwLjExNjc5NCwgMC4xNzI1MzUsIDAuMjI2NzgyLCAwLjI2NTY5MywgMC4zMjc1OTMsIDAuMzgxNzcsIDAuNDU5MTY0IiwgXAotICAgICAgICAgICIwLjEyNDQ1MiwgMC4xODAxOCwgMC4yMzQ0NDIsIDAuMjczMzA4LCAwLjMzNTI1MSwgMC4zODk0MDYsIDAuNDY2ODA5IiwgXAotICAgICAgICAgICIwLjEzMDU0MiwgMC4xODYyOTYsIDAuMjQwNTQ4LCAwLjI3OTM2NiwgMC4zNDEzNTksIDAuMzk1NTE4LCAwLjQ3MjkyIiwgXAotICAgICAgICAgICIwLjEzODU5NywgMC4xOTQzNDQsIDAuMjQ4NzM2LCAwLjI4NzM0MiwgMC4zNDk0NDQsIDAuNDAzNTczLCAwLjQ4MDk1IiwgXAotICAgICAgICAgICIwLjE0NDc1NCwgMC4yMDA0NzIsIDAuMjU0Nzk5LCAwLjI5MzU2MywgMC4zNTU0NjEsIDAuNDA5NjgyLCAwLjQ4NzA4MyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyNTk4NiwgMC4xMzUyMjcsIDAuMjQ2MzA0LCAwLjMyNjI0MiwgMC40NTQ3NTEsIDAuNTY4MzA2LCAwLjcyOTQzOSIsIFwKLSAgICAgICAgICAiMC4wMjU5NzksIDAuMTM1MjQxLCAwLjI0NjI3NSwgMC4zMjY2NTUsIDAuNDU0OTQxLCAwLjU2ODMwOCwgMC43Mjk0NDMiLCBcCi0gICAgICAgICAgIjAuMDI1OTksIDAuMTM1MjMyLCAwLjI0NTk3MywgMC4zMjY3MDIsIDAuNDU1NDc2LCAwLjU2ODMwNiwgMC43Mjk0NDIiLCBcCi0gICAgICAgICAgIjAuMDI1OTU3LCAwLjEzNTIyMywgMC4yNDU5NzMsIDAuMzI2NjczLCAwLjQ1NTQ3OCwgMC41NjgzMDMsIDAuNzI5NDQzIiwgXAotICAgICAgICAgICIwLjAyNTkwMiwgMC4xMzUyMzYsIDAuMjQ1OTY2LCAwLjMyNjYzMiwgMC40NTU0NzcsIDAuNTY4MzA1LCAwLjcyOTQ0MyIsIFwKLSAgICAgICAgICAiMC4wMjU4OTMsIDAuMTM1MDg3LCAwLjI0NjMyOSwgMC4zMjY0NTcsIDAuNDU1NTA2LCAwLjU2ODMwNSwgMC43Mjk0MzIiLCBcCi0gICAgICAgICAgIjAuMDI1ODE0LCAwLjEzNTI0NCwgMC4yNDY3NDYsIDAuMzI2NjM2LCAwLjQ1NTQwNCwgMC41NjgxOTcsIDAuNzI5MzEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUk4iOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGNsZWFyOwotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEyNTIyNCwgMC4xODA5NSwgMC4yMzUxODEsIDAuMjc0MTYxLCAwLjMzNTgzMywgMC4zOTAxNzUsIDAuNDY3NTQxIiwgXAotICAgICAgICAgICIwLjEzMzEwNCwgMC4xODg3OTMsIDAuMjQzMTEsIDAuMjgxOTk5LCAwLjM0NDA1MiwgMC4zOTgwMjYsIDAuNDc1MjQ3IiwgXAotICAgICAgICAgICIwLjE0MTQzOSwgMC4xOTcwOTksIDAuMjUxNDQ1LCAwLjI5MDMzNSwgMC4zNTE5MzIsIDAuNDA2MzYyLCAwLjQ4MzU4NiIsIFwKLSAgICAgICAgICAiMC4xNDc2NzMsIDAuMjAzMzkyLCAwLjI1NzYyNiwgMC4yOTY0MSwgMC4zNTg1MDIsIDAuNDEyNjA3LCAwLjQ4OTgwMiIsIFwKLSAgICAgICAgICAiMC4xNTI2OCwgMC4yMDg0MDYsIDAuMjYyNjMxLCAwLjMwMTM2LCAwLjM2MzQyMSwgMC40MTc2NjgsIDAuNDk0OTY0IiwgXAotICAgICAgICAgICIwLjE1ODk4NiwgMC4yMTQ2ODcsIDAuMjY4OTk0LCAwLjMwNzcwMiwgMC4zNjk4MjIsIDAuNDIzOTIyLCAwLjUwMTEyIiwgXAotICAgICAgICAgICIwLjE2Mzk2NywgMC4yMTk2OSwgMC4yNzM5MDUsIDAuMzEyNzUxLCAwLjM3NDcxOCwgMC40Mjg1OTEsIDAuNTA2Mjk0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDI2Mzk3LCAwLjEzNTEyNSwgMC4yNDU5MjQsIDAuMzI2NDc3LCAwLjQ1NTQ3MSwgMC41NjgzMTMsIDAuNzI5NDUzIiwgXAotICAgICAgICAgICIwLjAyNjQ1LCAwLjEzNDI3NSwgMC4yNDY3MTYsIDAuMzI2NTgyLCAwLjQ1NTQ3MSwgMC41NjgzLCAwLjcyOTEyMyIsIFwKLSAgICAgICAgICAiMC4wMjYzNywgMC4xMzUxNDIsIDAuMjQ2NzAyLCAwLjMyNjQ1MSwgMC40NTU0NzEsIDAuNTY4MzAxLCAwLjcyOTEyOSIsIFwKLSAgICAgICAgICAiMC4wMjYyMjQsIDAuMTM0MTE1LCAwLjI0NjEwOCwgMC4zMjY5NiwgMC40NTU0NzEsIDAuNTY4MzAyLCAwLjcyOTQxNCIsIFwKLSAgICAgICAgICAiMC4wMjYzNTMsIDAuMTM1MTM3LCAwLjI0NjExMSwgMC4zMjY3NjUsIDAuNDU1NDc5LCAwLjU2ODMxOCwgMC43Mjk0MjIiLCBcCi0gICAgICAgICAgIjAuMDI2NDI3LCAwLjEzNTE5NiwgMC4yNDYwODEsIDAuMzI2Njk3LCAwLjQ1NTQ2LCAwLjU2ODI5MSwgMC43Mjc5MjgiLCBcCi0gICAgICAgICAgIjAuMDI2NDc4LCAwLjEzNTA3NiwgMC4yNDY1NjUsIDAuMzI2NzEyLCAwLjQ1NTM4NSwgMC41NjgxOTUsIDAuNzI5NDQyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiBwcmVzZXQ7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg1NTc3LCAwLjE0MTgzNSwgMC4xOTY5NTEsIDAuMjM2MTYxLCAwLjI5OTI4MywgMC4zNTQxNzksIDAuNDMyNTIxIiwgXAotICAgICAgICAgICIwLjA5MzM5NCwgMC4xNDk2MTgsIDAuMjA0ODAyLCAwLjI0NDE1LCAwLjMwNzE0MSwgMC4zNjIwMTksIDAuNDQwMzU1IiwgXAotICAgICAgICAgICIwLjEwMzMwNSwgMC4xNTk1MDcsIDAuMjE0NzYzLCAwLjI1Mzk4OSwgMC4zMTY3NjEsIDAuMzcxOTg0LCAwLjQ1MDQzMSIsIFwKLSAgICAgICAgICAiMC4xMTI4MzQsIDAuMTY5MDgxLCAwLjIyNDM3NCwgMC4yNjMzNjMsIDAuMzI2NTYsIDAuMzgxNDM0LCAwLjQ1OTgwNyIsIFwKLSAgICAgICAgICAiMC4xMjEyMjUsIDAuMTc3NDcxLCAwLjIzMjY5NSwgMC4yNzE3MDQsIDAuMzM0NTg2LCAwLjM4OTg0NSwgMC40NjgyMTYiLCBcCi0gICAgICAgICAgIjAuMTMyNDE4LCAwLjE4ODczNCwgMC4yNDM5MDUsIDAuMjgzMTAzLCAwLjM0NjE0OCwgMC40MDEwNSwgMC40Nzk0MzMiLCBcCi0gICAgICAgICAgIjAuMTQwNTAyLCAwLjE5NjgyOSwgMC4yNTE5NjksIDAuMjkxMjMxLCAwLjM1NDEwMiwgMC40MDkyNTQsIDAuNDg3ODEiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjY2MTgsIDAuMTM4NTQyLCAwLjI1Mzg3NiwgMC4zMzYzMzksIDAuNDY5MjYxLCAwLjU4NTM4MSwgMC43NTEzNzkiLCBcCi0gICAgICAgICAgIjAuMDI2NjA0LCAwLjEzODYzNiwgMC4yNTM4NjQsIDAuMzM2Njg0LCAwLjQ2OTI4NCwgMC41ODUzNTksIDAuNzUxMjc1IiwgXAotICAgICAgICAgICIwLjAyNjY1MSwgMC4xMzg1MjIsIDAuMjUzODYzLCAwLjMzNjYyMSwgMC40NjkyODUsIDAuNTg1MzM5LCAwLjc1MTQwOCIsIFwKLSAgICAgICAgICAiMC4wMjY0MzQsIDAuMTM4NjI3LCAwLjI1Mzg2NCwgMC4zMzY2MjUsIDAuNDY5MjgsIDAuNTg1MzY0LCAwLjc1MTM2OSIsIFwKLSAgICAgICAgICAiMC4wMjY2MDQsIDAuMTM4NTYyLCAwLjI1Mzg4OSwgMC4zMzY3MzQsIDAuNDY5Mjc1LCAwLjU4NTM1NSwgMC43NTEzNCIsIFwKLSAgICAgICAgICAiMC4wMjY4ODQsIDAuMTM4NjU0LCAwLjI1MzU4NywgMC4zMzY3MDksIDAuNDY5Mjc1LCAwLjU4NTM0OSwgMC43NTEzMjgiLCBcCi0gICAgICAgICAgIjAuMDI3MjAzLCAwLjEzODY2OCwgMC4yNTM4OTcsIDAuMzM2NjE0LCAwLjQ2OTIyNCwgMC41ODUyODgsIDAuNzUxMjcxIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTEyMDQ0LCAwLjE2Nzc3NiwgMC4yMjIxMDIsIDAuMjYwNzgyLCAwLjMyMjg3LCAwLjM3Njk4MiwgMC40NTQxNjUiLCBcCi0gICAgICAgICAgIjAuMTE4NzYsIDAuMTc0NDg0LCAwLjIyODc3NywgMC4yNjc2NiwgMC4zMjk2MTMsIDAuMzgzNjkyLCAwLjQ2MDkyMSIsIFwKLSAgICAgICAgICAiMC4xMjYzODMsIDAuMTgyMTExLCAwLjIzNjMxNSwgMC4yNzUxNjMsIDAuMzM2ODg1LCAwLjM5MTExNiwgMC40Njg5ODEiLCBcCi0gICAgICAgICAgIjAuMTMzNzgyLCAwLjE4OTQ1MiwgMC4yNDM3MzEsIDAuMjgyNTA3LCAwLjM0NDI5LCAwLjM5ODcsIDAuNDc1ODM1IiwgXAotICAgICAgICAgICIwLjE0MTAwOSwgMC4xOTY2ODMsIDAuMjUwOTk3LCAwLjI4OTc2OCwgMC4zNTE3ODksIDAuNDA1OTU5LCAwLjQ4MzM0NCIsIFwKLSAgICAgICAgICAiMC4xNTEzNTQsIDAuMjA3MDk4LCAwLjI2MTQzMywgMC4yOTk5MTcsIDAuMzYyMjMxLCAwLjQxNjM0NSwgMC40OTM3MjYiLCBcCi0gICAgICAgICAgIjAuMTU5NjQxLCAwLjIxNTM3NiwgMC4yNjk3NDMsIDAuMzA4NDQ0LCAwLjM3MDM0MiwgMC40MjQ3MjgsIDAuNTAyMDM3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDI2MzM0LCAwLjEzNTIzLCAwLjI0NjA1OCwgMC4zMjY5NzcsIDAuNDU1NDc5LCAwLjU2ODI5NSwgMC43MjgwNTMiLCBcCi0gICAgICAgICAgIjAuMDI2NTU3LCAwLjEzNTIxNiwgMC4yNDY2MzMsIDAuMzI2NDkxLCAwLjQ1NTQ3NCwgMC41NjgzMDIsIDAuNzI5MTQ3IiwgXAotICAgICAgICAgICIwLjAyNjQ4LCAwLjEzNTA2LCAwLjI0NjU3MywgMC4zMjY2NzYsIDAuNDU1NDgsIDAuNTY4Mjk1LCAwLjcyODAxMyIsIFwKLSAgICAgICAgICAiMC4wMjYzOTcsIDAuMTM1MTI5LCAwLjI0NTkxOCwgMC4zMjY5NzMsIDAuNDU1NDY5LCAwLjU2ODI4NCwgMC43Mjc4MTUiLCBcCi0gICAgICAgICAgIjAuMDI2MzU0LCAwLjEzNTA4OCwgMC4yNDYwNzgsIDAuMzI2NzE4LCAwLjQ1NTQ3NSwgMC41NjgzMSwgMC43Mjk0MzYiLCBcCi0gICAgICAgICAgIjAuMDI2NTAxLCAwLjEzNTI1NywgMC4yNDYwOTMsIDAuMzI2ODU4LCAwLjQ1NTQ4MiwgMC41NjgzMDMsIDAuNzI5NDQzIiwgXAotICAgICAgICAgICIwLjAyNjU4NywgMC4xMzUyODgsIDAuMjQ2NDgzLCAwLjMyNjY3OSwgMC40NTU0MjcsIDAuNTY4MzE5LCAwLjcyOTQ1MSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMDI5NSwgMC4wMTA0MTksIDAuMDEwNDQsIDAuMDEwNDQ3LCAwLjAxMDQ1MiwgMC4wMTA0NTUsIDAuMDEwNDU3IiwgXAotICAgICAgICAgICIwLjAxMDI4NywgMC4wMTA0MTEsIDAuMDEwNDMyLCAwLjAxMDQzOSwgMC4wMTA0NDQsIDAuMDEwNDQ3LCAwLjAxMDQ0OCIsIFwKLSAgICAgICAgICAiMC4wMTAzMjUsIDAuMDEwNDQ5LCAwLjAxMDQ3LCAwLjAxMDQ3NiwgMC4wMTA0ODMsIDAuMDEwNDg2LCAwLjAxMDQ4OCIsIFwKLSAgICAgICAgICAiMC4wMTAzNzMsIDAuMDEwNDk2LCAwLjAxMDUxNywgMC4wMTA1MjQsIDAuMDEwNTI5LCAwLjAxMDUzNiwgMC4wMTA1MzUiLCBcCi0gICAgICAgICAgIjAuMDEwNDI0LCAwLjAxMDU1MywgMC4wMTA1NzUsIDAuMDEwNTgxLCAwLjAxMDU4NywgMC4wMTA1OTEsIDAuMDEwNTk0IiwgXAotICAgICAgICAgICIwLjAxMDUzLCAwLjAxMDY1NCwgMC4wMTA2ODgsIDAuMDEwNjgzLCAwLjAxMDY5NSwgMC4wMTA2OTgsIDAuMDEwNzAxIiwgXAotICAgICAgICAgICIwLjAxMDYzOSwgMC4wMTA3NjEsIDAuMDEwNzg0LCAwLjAxMDc5MSwgMC4wMTA3OTYsIDAuMDEwNzk5LCAwLjAxMDgwMSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEwMjk2LCAwLjAxMDQwNywgMC4wMTA0MjcsIDAuMDEwNDMyLCAwLjAxMDQzOCwgMC4wMTA0NCwgMC4wMTA0NDMiLCBcCi0gICAgICAgICAgIjAuMDEwMjk4LCAwLjAxMDQwNiwgMC4wMTA0MjYsIDAuMDEwNDMyLCAwLjAxMDQzNywgMC4wMTA0MzksIDAuMDEwNDQyIiwgXAotICAgICAgICAgICIwLjAxMDM0MSwgMC4wMTA0NTEsIDAuMDEwNDcsIDAuMDEwNDc2LCAwLjAxMDQ4MiwgMC4wMTA0ODMsIDAuMDEwNDg2IiwgXAotICAgICAgICAgICIwLjAxMDM5MywgMC4wMTA1LCAwLjAxMDUxOSwgMC4wMTA1MjUsIDAuMDEwNTMxLCAwLjAxMDUzMiwgMC4wMTA1MzQiLCBcCi0gICAgICAgICAgIjAuMDEwNDQ3LCAwLjAxMDU2NSwgMC4wMTA1ODUsIDAuMDEwNTkzLCAwLjAxMDU5OSwgMC4wMTA1OTksIDAuMDEwNjAyIiwgXAotICAgICAgICAgICIwLjAxMDU2MSwgMC4wMTA2ODksIDAuMDEwNzEyLCAwLjAxMDcxOSwgMC4wMTA3MjQsIDAuMDEwNzI3LCAwLjAxMDczIiwgXAotICAgICAgICAgICIwLjAxMDY3LCAwLjAxMDc4NywgMC4wMTA4MDYsIDAuMDEwODE0LCAwLjAxMDgxOCwgMC4wMTA4MjEsIDAuMDEwODIzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUk4iOwotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDExODUxLCAwLjAxMTk0OCwgMC4wMTE5NjYsIDAuMDExOTcyLCAwLjAxMTk3NywgMC4wMTE5ODIsIDAuMDExOTg0IiwgXAotICAgICAgICAgICIwLjAxMTg0NiwgMC4wMTE5NDUsIDAuMDExOTY1LCAwLjAxMTk3LCAwLjAxMTk3NSwgMC4wMTE5ODIsIDAuMDExOTc5IiwgXAotICAgICAgICAgICIwLjAxMTg3OSwgMC4wMTE5NzcsIDAuMDEyMDAxLCAwLjAxMjAwMiwgMC4wMTIwMDYsIDAuMDEyMDEzLCAwLjAxMjAxOCIsIFwKLSAgICAgICAgICAiMC4wMTE5MjQsIDAuMDEyMDE5LCAwLjAxMjAzNywgMC4wMTIwNDMsIDAuMDEyMDY0LCAwLjAxMjA1LCAwLjAxMjA1MiIsIFwKLSAgICAgICAgICAiMC4wMTE5NzYsIDAuMDEyMDczLCAwLjAxMjA5MiwgMC4wMTIwOTgsIDAuMDEyMTAyLCAwLjAxMjExMSwgMC4wMTIxMDYiLCBcCi0gICAgICAgICAgIjAuMDEyMDgsIDAuMDEyMTcyLCAwLjAxMjE5LCAwLjAxMjIwMSwgMC4wMTIyLCAwLjAxMjIwMiwgMC4wMTIyMDQiLCBcCi0gICAgICAgICAgIjAuMDEyMTYyLCAwLjAxMjI2MSwgMC4wMTIyODEsIDAuMDEyMjg0LCAwLjAxMjI5MiwgMC4wMTIyOTEsIDAuMDEyMjk1Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3Bvd2VyKHNjYWxhcikgewotICAgICAgICB2YWx1ZXMoIjAiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTE0NjEsIDAuMDExNTc5LCAwLjAxMTU5NywgMC4wMTE2MDEsIDAuMDExNjA1LCAwLjAxMTYxOSwgMC4wMTE2MDgiLCBcCi0gICAgICAgICAgIjAuMDExNDUsIDAuMDExNTY4LCAwLjAxMTU4NSwgMC4wMTE1OSwgMC4wMTE1OTMsIDAuMDExNTk1LCAwLjAxMTU5NiIsIFwKLSAgICAgICAgICAiMC4wMTE0NjUsIDAuMDExNTgzLCAwLjAxMTYwMSwgMC4wMTE2MDUsIDAuMDExNjA5LCAwLjAxMTYxMSwgMC4wMTE2MTIiLCBcCi0gICAgICAgICAgIjAuMDExNDkyLCAwLjAxMTYyLCAwLjAxMTYzOSwgMC4wMTE2NDQsIDAuMDExNjQ4LCAwLjAxMTY1NywgMC4wMTE2NTIiLCBcCi0gICAgICAgICAgIjAuMDExNTUxLCAwLjAxMTY3NCwgMC4wMTE2OTMsIDAuMDExNjk5LCAwLjAxMTcwMywgMC4wMTE3MDUsIDAuMDExNzA3IiwgXAotICAgICAgICAgICIwLjAxMTY5MywgMC4wMTE3OTYsIDAuMDExODE4LCAwLjAxMTgyMiwgMC4wMTE4MjksIDAuMDExODI4LCAwLjAxMTgzMiIsIFwKLSAgICAgICAgICAiMC4wMTE4MywgMC4wMTE5MzIsIDAuMDExOTQ4LCAwLjAxMTk1MiwgMC4wMTE5NTksIDAuMDExOTU3LCAwLjAxMTk1OSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEwMDg1LCAwLjAxMDE4LCAwLjAxMDE5OSwgMC4wMTAyMDUsIDAuMDEwMjI1LCAwLjAxMDIzMiwgMC4wMTAyMTQiLCBcCi0gICAgICAgICAgIjAuMDEwMDUsIDAuMDEwMTQ4LCAwLjAxMDE3MiwgMC4wMTAxNzUsIDAuMDEwMTg0LCAwLjAxMDE4MiwgMC4wMTAxOSIsIFwKLSAgICAgICAgICAiMC4wMTAwNDQsIDAuMDEwMTQxLCAwLjAxMDE2MSwgMC4wMTAxNjYsIDAuMDEwMTc1LCAwLjAxMDE3NywgMC4wMTAxNzYiLCBcCi0gICAgICAgICAgIjAuMDEwMDUyLCAwLjAxMDE0NiwgMC4wMTAxNjYsIDAuMDEwMTcyLCAwLjAxMDE4MiwgMC4wMTAxOCwgMC4wMTAxODIiLCBcCi0gICAgICAgICAgIjAuMDEwMDYsIDAuMDEwMTU5LCAwLjAxMDE3OSwgMC4wMTAxODYsIDAuMDEwMTkxLCAwLjAxMDIwNSwgMC4wMTAyMSIsIFwKLSAgICAgICAgICAiMC4wMTAxMTEsIDAuMDEwMjEyLCAwLjAxMDIzNCwgMC4wMTAyNDMsIDAuMDEwMjUzLCAwLjAxMDI1MywgMC4wMTAyNTYiLCBcCi0gICAgICAgICAgIjAuMDEwMTkxLCAwLjAxMDI3OSwgMC4wMTAyOTksIDAuMDEwMzA3LCAwLjAxMDMxMiwgMC4wMTAzMTUsIDAuMDEwMzE3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihRTikgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAxLjM2Njk4OwotICAgIGZ1bmN0aW9uIDogIlFCSU5UIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBub25fdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJpc2luZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExNzE3NywgMC4xNzE4LCAwLjIyNjIxLCAwLjI2NTA2NCwgMC4zMjcyNzQsIDAuMzgxNzIxLCAwLjQ1OTQ4OSIsIFwKLSAgICAgICAgICAiMC4xMjUzNjYsIDAuMTc5OTgzLCAwLjIzNDM4OCwgMC4yNzMyNTEsIDAuMzM1NDYzLCAwLjM4OTkwNiwgMC40Njc3MTIiLCBcCi0gICAgICAgICAgIjAuMTM0NzY2LCAwLjE4OTM5MiwgMC4yNDM3ODgsIDAuMjgyNjgzLCAwLjM0NDg4MSwgMC4zOTkzMTYsIDAuNDc3MDkyIiwgXAotICAgICAgICAgICIwLjE0MjQyMywgMC4xOTcwNDUsIDAuMjUxNDQsIDAuMjkwMzI5LCAwLjM1MjUzNCwgMC40MDY5NjUsIDAuNDg0NzQyIiwgXAotICAgICAgICAgICIwLjE0ODUyMiwgMC4yMDMxNDEsIDAuMjU3NTM5LCAwLjI5NjQyLCAwLjM1ODYzMywgMC40MTMwNjQsIDAuNDkwODQxIiwgXAotICAgICAgICAgICIwLjE1NjUxMiwgMC4yMTEwMzksIDAuMjY1NDUsIDAuMzA0MywgMC4zNjY1MjYsIDAuNDIwOTQ5LCAwLjQ5ODcxNyIsIFwKLSAgICAgICAgICAiMC4xNjI3MjksIDAuMjE3Mzc3LCAwLjI3MTc2NSwgMC4zMTA2NCwgMC4zNzI4MywgMC40MjcyNzMsIDAuNTA1MDQ3Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDI1MDczLCAwLjEzNjg1LCAwLjI1MTMyMSwgMC4zMzMxMzcsIDAuNDY0Nzc3LCAwLjU4MDM5NSwgMC43NDQ3OSIsIFwKLSAgICAgICAgICAiMC4wMjUwNzMsIDAuMTM2ODY2LCAwLjI1MTMxMiwgMC4zMzMyMzUsIDAuNDY0Mzg1LCAwLjU4MDQsIDAuNzQ0Nzk0IiwgXAotICAgICAgICAgICIwLjAyNTA2OSwgMC4xMzY4NjYsIDAuMjUxNDc0LCAwLjMzMzY0OCwgMC40NjUxNDksIDAuNTgwMzkzLCAwLjc0NDc5MSIsIFwKLSAgICAgICAgICAiMC4wMjUwNiwgMC4xMzY4NDksIDAuMjUxNDc0LCAwLjMzMzYyOSwgMC40NjUxNTUsIDAuNTgwMzg3LCAwLjc0NDc5NiIsIFwKLSAgICAgICAgICAiMC4wMjUwNjcsIDAuMTM2ODczLCAwLjI1MTQ3NCwgMC4zMzM2MDQsIDAuNDY1MTU1LCAwLjU4MDM4OSwgMC43NDQ3OTYiLCBcCi0gICAgICAgICAgIjAuMDI1MTYsIDAuMTM2NzM3LCAwLjI1MTMyMiwgMC4zMzI5NTUsIDAuNDY1MTUyLCAwLjU4MDM3OSwgMC43NDQ3ODMiLCBcCi0gICAgICAgICAgIjAuMDI1MDYyLCAwLjEzNjg3NiwgMC4yNTE0NjksIDAuMzMzNjE0LCAwLjQ2NTEyNywgMC41ODAyNTIsIDAuNzQ0NjgxIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTEyMjIzLCAwLjE2NjcyMiwgMC4yMjA4NzksIDAuMjU5NTc0LCAwLjMyMTQ5LCAwLjM3NTY5MSwgMC40NTMxMTgiLCBcCi0gICAgICAgICAgIjAuMTIwMzI4LCAwLjE3NDgyOSwgMC4yMjg5OTEsIDAuMjY3Njc4LCAwLjMyOTU5NSwgMC4zODM3OTksIDAuNDYxMjE4IiwgXAotICAgICAgICAgICIwLjEyOTY3NywgMC4xODQxNzksIDAuMjM4MzQzLCAwLjI3NzAyNiwgMC4zMzg5NDYsIDAuMzkzMTQ5LCAwLjQ3MDU2NSIsIFwKLSAgICAgICAgICAiMC4xMzcyODcsIDAuMTkxNzcsIDAuMjQ1OTMyLCAwLjI4NDYyMywgMC4zNDY1NDgsIDAuNDAwNzQzLCAwLjQ3ODE1MSIsIFwKLSAgICAgICAgICAiMC4xNDM0NzYsIDAuMTk3OTcsIDAuMjUyMTMxLCAwLjI5MDgxOSwgMC4zNTI3MzgsIDAuNDA2OTIyLCAwLjQ4NDM1MSIsIFwKLSAgICAgICAgICAiMC4xNTE3NjIsIDAuMjA2MjAzLCAwLjI2MDM2MywgMC4yOTkwNDQsIDAuMzYxMDA1LCAwLjQxNTE1NSwgMC40OTI1NjEiLCBcCi0gICAgICAgICAgIjAuMTU3NzQ0LCAwLjIxMjI0MiwgMC4yNjYzODEsIDAuMzA1MDcsIDAuMzY2OTc1LCAwLjQyMTE3OSwgMC40OTg1NzkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjQ0MzIsIDAuMTMzOTgyLCAwLjI0NjE1MSwgMC4zMjYzNzYsIDAuNDU1MTEzLCAwLjU2ODM4MiwgMC43Mjk2NyIsIFwKLSAgICAgICAgICAiMC4wMjQ0MywgMC4xMzM5ODIsIDAuMjQ2MTYyLCAwLjMyNjU4MywgMC40NTQ2MjcsIDAuNTY3NTkyLCAwLjcyOTY2NiIsIFwKLSAgICAgICAgICAiMC4wMjQ0MjksIDAuMTMzOTgyLCAwLjI0NjE2MSwgMC4zMjY1NzMsIDAuNDU0NjAzLCAwLjU2ODM3OSwgMC43Mjk2NjMiLCBcCi0gICAgICAgICAgIjAuMDI0NDI2LCAwLjEzNDA1NywgMC4yNDYxNjEsIDAuMzI2MzYzLCAwLjQ1NTU4NywgMC41NjgzODcsIDAuNzI5NjUxIiwgXAotICAgICAgICAgICIwLjAyNDQyNCwgMC4xMzQwNTksIDAuMjQ2MTYsIDAuMzI2MTksIDAuNDU0NywgMC41NjcwODQsIDAuNzI5NjQ4IiwgXAotICAgICAgICAgICIwLjAyNDQyMywgMC4xMzQwNjgsIDAuMjQ2MjIsIDAuMzI2NjA2LCAwLjQ1NTU5OCwgMC41NjgyNjUsIDAuNzI5NjA3IiwgXAotICAgICAgICAgICIwLjAyNDQzMiwgMC4xMzQwNjksIDAuMjQ2MjE0LCAwLjMyNjUxOCwgMC40NTUyNjcsIDAuNTY4MzExLCAwLjcyOTUyOCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcHJlc2V0OwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE0MzE2MiwgMC4xOTc4MzEsIDAuMjUyMjE3LCAwLjI5MTExNiwgMC4zNTMzMDIsIDAuNDA3NzQ0LCAwLjQ4NTUwNiIsIFwKLSAgICAgICAgICAiMC4xNTEwNjUsIDAuMjA1NjU5LCAwLjI2MDA1MSwgMC4yOTg5NDUsIDAuMzYxMTg1LCAwLjQxNTU2NiwgMC40OTMzNDMiLCBcCi0gICAgICAgICAgIjAuMTU5Mzk2LCAwLjIxMzk5NiwgMC4yNjgzODUsIDAuMzA3MjgsIDAuMzY5NDU5LCAwLjQyMzkwMSwgMC41MDE2NzciLCBcCi0gICAgICAgICAgIjAuMTY1NjUxLCAwLjIyMDI4MiwgMC4yNzQ2NjIsIDAuMzEzNTQ4LCAwLjM3NTc3NiwgMC40MzAxOTUsIDAuNTA3OTcyIiwgXAotICAgICAgICAgICIwLjE3MDYyOCwgMC4yMjUyODUsIDAuMjc5NjcyLCAwLjMxODU0MywgMC4zODA3MywgMC40MzUyMDksIDAuNTEyOTcxIiwgXAotICAgICAgICAgICIwLjE3Njk0LCAwLjIzMTYxOCwgMC4yODYwMSwgMC4zMjQ4ODgsIDAuMzg3MTE3LCAwLjQ0MTUzNCwgMC41MTkzMTEiLCBcCi0gICAgICAgICAgIjAuMTgxOTAyLCAwLjIzNjU2MywgMC4yOTA5NTQsIDAuMzI5NzU4LCAwLjM5MTk2NCwgMC40NDYzOTIsIDAuNTI0MTcxIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDI1MTQzLCAwLjEzNjc1NSwgMC4yNTE1MjUsIDAuMzMzNzczLCAwLjQ2NTMwNCwgMC41ODA0NTIsIDAuNzQ0NzkyIiwgXAotICAgICAgICAgICIwLjAyNTE0MiwgMC4xMzY4NzUsIDAuMjUxNSwgMC4zMzMxOTMsIDAuNDY1MzAzLCAwLjU4MDM5MSwgMC43NDQzMTkiLCBcCi0gICAgICAgICAgIjAuMDI1MTIxLCAwLjEzNjc1NSwgMC4yNTE0ODMsIDAuMzMzMTYxLCAwLjQ2NTMwNCwgMC41ODAzOTcsIDAuNzQ0MzM1IiwgXAotICAgICAgICAgICIwLjAyNTE0NCwgMC4xMzY3MTMsIDAuMjUxNDk5LCAwLjMzMzEwNSwgMC40NjUzNzksIDAuNTgwMzk1LCAwLjc0NDcyIiwgXAotICAgICAgICAgICIwLjAyNTE0NiwgMC4xMzY3NDksIDAuMjUxNSwgMC4zMzMxNDIsIDAuNDY1MzMsIDAuNTgwNDQzLCAwLjc0NDc1MyIsIFwKLSAgICAgICAgICAiMC4wMjUxMjIsIDAuMTM2NzU1LCAwLjI1MTUxMiwgMC4zMzMyMDcsIDAuNDY1Mzc1LCAwLjU4MDM2MSwgMC43NDM4OTUiLCBcCi0gICAgICAgICAgIjAuMDI1MTM0LCAwLjEzNjc0MiwgMC4yNTE1MSwgMC4zMzMyOTcsIDAuNDY1Mjg1LCAwLjU4MDI1MiwgMC43NDQ3MjQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiU04iOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGNsZWFyOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEyOTk5NiwgMC4xODQ2NjYsIDAuMjM5MDQ4LCAwLjI3NzkyMiwgMC4zNDAxNDcsIDAuMzk0NTY2LCAwLjQ3MjM0NyIsIFwKLSAgICAgICAgICAiMC4xMzY3MTEsIDAuMTkxMzEsIDAuMjQ1NzA1LCAwLjI4NDU5OSwgMC4zNDY4MDksIDAuNDAxMjIsIDAuNDc4OTk0IiwgXAotICAgICAgICAgICIwLjE0NDM0NiwgMC4xOTg5NDMsIDAuMjUzMzMzLCAwLjI5MjIxLCAwLjM1NDM5OSwgMC40MDg3ODYsIDAuNDg2NzI2IiwgXAotICAgICAgICAgICIwLjE1MTc0MiwgMC4yMDYzMzMsIDAuMjYwNzM2LCAwLjI5OTYxMSwgMC4zNjE4MDQsIDAuNDE2MjM2LCAwLjQ5NDA1NCIsIFwKLSAgICAgICAgICAiMC4xNTg5NTUsIDAuMjEzNTY4LCAwLjI2Nzk3MSwgMC4zMDY4NTksIDAuMzY5MDg0LCAwLjQyMzUxNywgMC41MDEyODQiLCBcCi0gICAgICAgICAgIjAuMTY5MzQ0LCAwLjIyMzk3NywgMC4yNzgzNjgsIDAuMzE3MTg1LCAwLjM3OTQ2LCAwLjQzMzg4LCAwLjUxMTY0NiIsIFwKLSAgICAgICAgICAiMC4xNzc2MDgsIDAuMjMyMjIyLCAwLjI4NjYxMSwgMC4zMjU0NzIsIDAuMzg3NjgzLCAwLjQ0MjE2NiwgMC41MTk5MTYiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjUxNTYsIDAuMTM2ODgzLCAwLjI1MTQ3MywgMC4zMzM1NzcsIDAuNDY1MzgxLCAwLjU4MDM2NSwgMC43NDM5MzciLCBcCi0gICAgICAgICAgIjAuMDI1MTI4LCAwLjEzNjg1MywgMC4yNTE0OTUsIDAuMzMzMTc3LCAwLjQ2NTM4NSwgMC41ODA0MDEsIDAuNzQ0MzI2IiwgXAotICAgICAgICAgICIwLjAyNTEzNywgMC4xMzY3MTMsIDAuMjUxNDY5LCAwLjMzMzMxNSwgMC40NjUzMDUsIDAuNTgwMzY3LCAwLjc0MzkxOSIsIFwKLSAgICAgICAgICAiMC4wMjUxMzQsIDAuMTM2NzUzLCAwLjI1MTUxNiwgMC4zMzMzMjEsIDAuNDY1Mjk4LCAwLjU4MDM5MSwgMC43NDM4NjEiLCBcCi0gICAgICAgICAgIjAuMDI1MTI3LCAwLjEzNjc0NiwgMC4yNTE1NDEsIDAuMzMzNzYsIDAuNDY1MzM2LCAwLjU4MDQ0MSwgMC43NDQ3NyIsIFwKLSAgICAgICAgICAiMC4wMjUxMiwgMC4xMzY4NzIsIDAuMjUxNDk3LCAwLjMzMzc0NCwgMC40NjUzNjksIDAuNTgwNDA3LCAwLjc0NDc3MyIsIFwKLSAgICAgICAgICAiMC4wMjUxODgsIDAuMTM2OTAyLCAwLjI1MTQ4OCwgMC4zMzMzNzEsIDAuNDY1MDU5LCAwLjU4MDQyMSwgMC43NDQ3NzUiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDQ1NDcsIDAuMTU5MTYsIDAuMjEzMzE2LCAwLjI1MjAxMiwgMC4zMTM5NSwgMC4zNjgxMTUsIDAuNDQ1NTM3IiwgXAotICAgICAgICAgICIwLjExMjM4NCwgMC4xNjY5NzgsIDAuMjIxMTQ4LCAwLjI1OTg0NiwgMC4zMjE3OSwgMC4zNzU5NTUsIDAuNDUzMzY2IiwgXAotICAgICAgICAgICIwLjEyMjI2NCwgMC4xNzY4NTUsIDAuMjMxMDQ4LCAwLjI2OTczMywgMC4zMzE2NywgMC4zODU4NjcsIDAuNDYzMjU1IiwgXAotICAgICAgICAgICIwLjEzMTgwMSwgMC4xODYzNjQsIDAuMjQwNTQ1LCAwLjI3OTIyMSwgMC4zNDExNjksIDAuMzk1MzMyLCAwLjQ3Mjc0NSIsIFwKLSAgICAgICAgICAiMC4xNDAyMSwgMC4xOTQ4MTYsIDAuMjQ4OTgsIDAuMjg3NjY3LCAwLjM0OTU5NywgMC40MDM3ODIsIDAuNDgxMTkyIiwgXAotICAgICAgICAgICIwLjE1MTQxOCwgMC4yMDU5MTQsIDAuMjYwMDc4LCAwLjI5ODc3LCAwLjM2MDcwNiwgMC40MTQ4NzMsIDAuNDkyMjkyIiwgXAotICAgICAgICAgICIwLjE1OTU0OCwgMC4yMTQwNzQsIDAuMjY4MjI3LCAwLjMwNjkyOSwgMC4zNjg4NjEsIDAuNDIzMDU2LCAwLjUwMDQ3OSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyNDM4MSwgMC4xMzQwNDMsIDAuMjQ2NDU4LCAwLjMyNjY3OCwgMC40NTU3OTQsIDAuNTY4NTYyLCAwLjcyOTYzNiIsIFwKLSAgICAgICAgICAiMC4wMjQzOTUsIDAuMTM0MDcsIDAuMjQ2NDI2LCAwLjMyNjkzNiwgMC40NTU4MzYsIDAuNTY4NTMsIDAuNzI5NDgzIiwgXAotICAgICAgICAgICIwLjAyNDM5NSwgMC4xMzQwNTksIDAuMjQ2NDMyLCAwLjMyNjg4OSwgMC40NTU4MTgsIDAuNTY4NTM5LCAwLjcyOTYyMiIsIFwKLSAgICAgICAgICAiMC4wMjQzODksIDAuMTM0MDU0LCAwLjI0NjQ0OCwgMC4zMjY5MDcsIDAuNDU1ODIyLCAwLjU2ODUzNiwgMC43Mjk1NzEiLCBcCi0gICAgICAgICAgIjAuMDI0Mzg2LCAwLjEzNDA1NiwgMC4yNDY0ODIsIDAuMzI2OTk4LCAwLjQ1NTgxNywgMC41Njg1MjMsIDAuNzI5NTk3IiwgXAotICAgICAgICAgICIwLjAyNDQ3MiwgMC4xMzQwNywgMC4yNDYyMzIsIDAuMzI2OTUsIDAuNDU1ODA1LCAwLjU2ODUzNSwgMC43Mjk1NTIiLCBcCi0gICAgICAgICAgIjAuMDI0NDA4LCAwLjEzNDA3NywgMC4yNDY0NDcsIDAuMzI2ODYzLCAwLjQ1NTc0MSwgMC41Njg0NCwgMC43Mjk0NzQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTAyOTYsIDAuMDEwNDA3LCAwLjAxMDQyNywgMC4wMTA0MzIsIDAuMDEwNDM4LCAwLjAxMDQ0LCAwLjAxMDQ0MyIsIFwKLSAgICAgICAgICAiMC4wMTAyOTgsIDAuMDEwNDA2LCAwLjAxMDQyNiwgMC4wMTA0MzIsIDAuMDEwNDM3LCAwLjAxMDQzOSwgMC4wMTA0NDIiLCBcCi0gICAgICAgICAgIjAuMDEwMzQxLCAwLjAxMDQ1MSwgMC4wMTA0NywgMC4wMTA0NzYsIDAuMDEwNDgyLCAwLjAxMDQ4MywgMC4wMTA0ODYiLCBcCi0gICAgICAgICAgIjAuMDEwMzkzLCAwLjAxMDUsIDAuMDEwNTE5LCAwLjAxMDUyNSwgMC4wMTA1MzEsIDAuMDEwNTMyLCAwLjAxMDUzNCIsIFwKLSAgICAgICAgICAiMC4wMTA0NDcsIDAuMDEwNTY1LCAwLjAxMDU4NSwgMC4wMTA1OTMsIDAuMDEwNTk5LCAwLjAxMDU5OSwgMC4wMTA2MDIiLCBcCi0gICAgICAgICAgIjAuMDEwNTYxLCAwLjAxMDY4OSwgMC4wMTA3MTIsIDAuMDEwNzE5LCAwLjAxMDcyNCwgMC4wMTA3MjcsIDAuMDEwNzMiLCBcCi0gICAgICAgICAgIjAuMDEwNjcsIDAuMDEwNzg3LCAwLjAxMDgwNiwgMC4wMTA4MTQsIDAuMDEwODE4LCAwLjAxMDgyMSwgMC4wMTA4MjMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMDI5NSwgMC4wMTA0MTksIDAuMDEwNDQsIDAuMDEwNDQ3LCAwLjAxMDQ1MiwgMC4wMTA0NTUsIDAuMDEwNDU3IiwgXAotICAgICAgICAgICIwLjAxMDI4NywgMC4wMTA0MTEsIDAuMDEwNDMyLCAwLjAxMDQzOSwgMC4wMTA0NDQsIDAuMDEwNDQ3LCAwLjAxMDQ0OCIsIFwKLSAgICAgICAgICAiMC4wMTAzMjUsIDAuMDEwNDQ5LCAwLjAxMDQ3LCAwLjAxMDQ3NiwgMC4wMTA0ODMsIDAuMDEwNDg2LCAwLjAxMDQ4OCIsIFwKLSAgICAgICAgICAiMC4wMTAzNzMsIDAuMDEwNDk2LCAwLjAxMDUxNywgMC4wMTA1MjQsIDAuMDEwNTI5LCAwLjAxMDUzNiwgMC4wMTA1MzUiLCBcCi0gICAgICAgICAgIjAuMDEwNDI0LCAwLjAxMDU1MywgMC4wMTA1NzUsIDAuMDEwNTgxLCAwLjAxMDU4NywgMC4wMTA1OTEsIDAuMDEwNTk0IiwgXAotICAgICAgICAgICIwLjAxMDUzLCAwLjAxMDY1NCwgMC4wMTA2ODgsIDAuMDEwNjgzLCAwLjAxMDY5NSwgMC4wMTA2OTgsIDAuMDEwNzAxIiwgXAotICAgICAgICAgICIwLjAxMDYzOSwgMC4wMTA3NjEsIDAuMDEwNzg0LCAwLjAxMDc5MSwgMC4wMTA3OTYsIDAuMDEwNzk5LCAwLjAxMDgwMSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMTg1MSwgMC4wMTE5NDgsIDAuMDExOTY2LCAwLjAxMTk3MiwgMC4wMTE5NzcsIDAuMDExOTgyLCAwLjAxMTk4NCIsIFwKLSAgICAgICAgICAiMC4wMTE4NDYsIDAuMDExOTQ1LCAwLjAxMTk2NSwgMC4wMTE5NywgMC4wMTE5NzUsIDAuMDExOTgyLCAwLjAxMTk3OSIsIFwKLSAgICAgICAgICAiMC4wMTE4NzksIDAuMDExOTc3LCAwLjAxMjAwMSwgMC4wMTIwMDIsIDAuMDEyMDA2LCAwLjAxMjAxMywgMC4wMTIwMTgiLCBcCi0gICAgICAgICAgIjAuMDExOTI0LCAwLjAxMjAxOSwgMC4wMTIwMzcsIDAuMDEyMDQzLCAwLjAxMjA2NCwgMC4wMTIwNSwgMC4wMTIwNTIiLCBcCi0gICAgICAgICAgIjAuMDExOTc2LCAwLjAxMjA3MywgMC4wMTIwOTIsIDAuMDEyMDk4LCAwLjAxMjEwMiwgMC4wMTIxMTEsIDAuMDEyMTA2IiwgXAotICAgICAgICAgICIwLjAxMjA4LCAwLjAxMjE3MiwgMC4wMTIxOSwgMC4wMTIyMDEsIDAuMDEyMiwgMC4wMTIyMDIsIDAuMDEyMjA0IiwgXAotICAgICAgICAgICIwLjAxMjE2MiwgMC4wMTIyNjEsIDAuMDEyMjgxLCAwLjAxMjI4NCwgMC4wMTIyOTIsIDAuMDEyMjkxLCAwLjAxMjI5NSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihzY2FsYXIpIHsKLSAgICAgICAgdmFsdWVzKCIwIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiU04iOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEwMDg1LCAwLjAxMDE4LCAwLjAxMDE5OSwgMC4wMTAyMDUsIDAuMDEwMjI1LCAwLjAxMDIzMiwgMC4wMTAyMTQiLCBcCi0gICAgICAgICAgIjAuMDEwMDUsIDAuMDEwMTQ4LCAwLjAxMDE3MiwgMC4wMTAxNzUsIDAuMDEwMTg0LCAwLjAxMDE4MiwgMC4wMTAxOSIsIFwKLSAgICAgICAgICAiMC4wMTAwNDQsIDAuMDEwMTQxLCAwLjAxMDE2MSwgMC4wMTAxNjYsIDAuMDEwMTc1LCAwLjAxMDE3NywgMC4wMTAxNzYiLCBcCi0gICAgICAgICAgIjAuMDEwMDUyLCAwLjAxMDE0NiwgMC4wMTAxNjYsIDAuMDEwMTcyLCAwLjAxMDE4MiwgMC4wMTAxOCwgMC4wMTAxODIiLCBcCi0gICAgICAgICAgIjAuMDEwMDYsIDAuMDEwMTU5LCAwLjAxMDE3OSwgMC4wMTAxODYsIDAuMDEwMTkxLCAwLjAxMDIwNSwgMC4wMTAyMSIsIFwKLSAgICAgICAgICAiMC4wMTAxMTEsIDAuMDEwMjEyLCAwLjAxMDIzNCwgMC4wMTAyNDMsIDAuMDEwMjUzLCAwLjAxMDI1MywgMC4wMTAyNTYiLCBcCi0gICAgICAgICAgIjAuMDEwMTkxLCAwLjAxMDI3OSwgMC4wMTAyOTksIDAuMDEwMzA3LCAwLjAxMDMxMiwgMC4wMTAzMTUsIDAuMDEwMzE3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTE0NjEsIDAuMDExNTc5LCAwLjAxMTU5NywgMC4wMTE2MDEsIDAuMDExNjA1LCAwLjAxMTYxOSwgMC4wMTE2MDgiLCBcCi0gICAgICAgICAgIjAuMDExNDUsIDAuMDExNTY4LCAwLjAxMTU4NSwgMC4wMTE1OSwgMC4wMTE1OTMsIDAuMDExNTk1LCAwLjAxMTU5NiIsIFwKLSAgICAgICAgICAiMC4wMTE0NjUsIDAuMDExNTgzLCAwLjAxMTYwMSwgMC4wMTE2MDUsIDAuMDExNjA5LCAwLjAxMTYxMSwgMC4wMTE2MTIiLCBcCi0gICAgICAgICAgIjAuMDExNDkyLCAwLjAxMTYyLCAwLjAxMTYzOSwgMC4wMTE2NDQsIDAuMDExNjQ4LCAwLjAxMTY1NywgMC4wMTE2NTIiLCBcCi0gICAgICAgICAgIjAuMDExNTUxLCAwLjAxMTY3NCwgMC4wMTE2OTMsIDAuMDExNjk5LCAwLjAxMTcwMywgMC4wMTE3MDUsIDAuMDExNzA3IiwgXAotICAgICAgICAgICIwLjAxMTY5MywgMC4wMTE3OTYsIDAuMDExODE4LCAwLjAxMTgyMiwgMC4wMTE4MjksIDAuMDExODI4LCAwLjAxMTgzMiIsIFwKLSAgICAgICAgICAiMC4wMTE4MywgMC4wMTE5MzIsIDAuMDExOTQ4LCAwLjAxMTk1MiwgMC4wMTE5NTksIDAuMDExOTU3LCAwLjAxMTk1OSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUk4pICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYyMjQ2NDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MjIzMzQ7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjIyNDY0OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDcxOCwgMC4wMDA3MTQsIDAuMDAwNzgyLCAwLjAwMDg4LCAwLjAwMDk5MiwgMC4wMDEyMDQsIDAuMDAxMzk0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzMTgyLCAwLjAwMzE4NCwgMC4wMDMyNTEsIDAuMDAzMzQyLCAwLjAwMzQ2MiwgMC4wMDM2MTUsIDAuMDAzODY4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRCYhU0UmIVNJJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9TRV9FUV8wX0FOX1NJX0VRXzBfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjE0MzE2MiwgMC4xNTEwNjUsIDAuMTU5Mzk2LCAwLjE2NTY1MSwgMC4xNzA2MjgsIDAuMTc2OTM5LCAwLjE4MTkwMiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJlY292ZXJ5X3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiU04iOwotICAgICAgc2RmX2NvbmQgOiAiU04gPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQocmVjb3ZlcnlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDYyNSwgMC4wNTEyNSwgMC4wNDUsIDAuMDM4NzUsIDAuMDMyNSwgMC4wMjI1LCAwLjAyIiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDYyNSwgMC4wNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzMzc1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiMC4wOCwgMC4wNjg3NSwgMC4wNTYyNSwgMC4wNSwgMC4wNDM3NSwgMC4wNCwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4wODYyNSwgMC4wNzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNSwgMC4wNDYyNSwgMC4wMzc1IiwgXAotICAgICAgICAgICIwLjA4NjI1LCAwLjA4MTI1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDUyNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4wOTYyNSwgMC4wODUsIDAuMDc4NzUsIDAuMDY2MjUsIDAuMDY2MjUsIDAuMDU2MjUsIDAuMDUzNzUiLCBcCi0gICAgICAgICAgIjAuMDk4NzUsIDAuMDkzNzUsIDAuMDgxMjUsIDAuMDc1LCAwLjA2ODc1LCAwLjA1ODc1LCAwLjA1NjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIHRpbWluZ190eXBlIDogcmVjb3ZlcnlfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRCYhU0UmIVNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9TRV9FUV8wX0FOX1NJX0VRXzAgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQocmVjb3ZlcnlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU2MjUsIDAuMDY3NSwgMC4wNzM3NSwgMC4wOCwgMC4wODYyNSwgMC4wOTYyNSwgMC4xMDUiLCBcCi0gICAgICAgICAgIjAuMDUxMjUsIDAuMDU2MjUsIDAuMDY4NzUsIDAuMDc1LCAwLjA4MTI1LCAwLjA5MTI1LCAwLjEiLCBcCi0gICAgICAgICAgIjAuMDQ1LCAwLjA1NjI1LCAwLjA2MjUsIDAuMDY4NzUsIDAuMDc1LCAwLjA4NSwgMC4wOTM3NSIsIFwKLSAgICAgICAgICAiMC4wNDUsIDAuMDUsIDAuMDYyNSwgMC4wNjg3NSwgMC4wNzUsIDAuMDg1LCAwLjA5Mzc1IiwgXAotICAgICAgICAgICIwLjA0NSwgMC4wNSwgMC4wNTYyNSwgMC4wNjI1LCAwLjA3NSwgMC4wNzg3NSwgMC4wODc1IiwgXAotICAgICAgICAgICIwLjA0MTI1LCAwLjA0NjI1LCAwLjA1MjUsIDAuMDY1LCAwLjA3MTI1LCAwLjA4MTI1LCAwLjA4Mzc1IiwgXAotICAgICAgICAgICIwLjAzODc1LCAwLjA0Mzc1LCAwLjA1NjI1LCAwLjA2MjUsIDAuMDY4NzUsIDAuMDc4NzUsIDAuMDgxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiByZW1vdmFsX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiU04iOwotICAgICAgc2RmX2NvbmQgOiAiU04gPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQocmVtb3ZhbF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDEyNSwgLTAuMDAxMjUsIDAuMDA1LCAwLjAxMTI1LCAwLjAxNzUsIDAuMDIxMjUsIDAuMDMiLCBcCi0gICAgICAgICAgIi0wLjAxNzUsIC0wLjAxMjUsIDAsIDAuMDA2MjUsIDAuMDA2MjUsIDAuMDE2MjUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAsIDAuMDEsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLjAwMzc1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDMxMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMTI1LCAtMC4wMDI1LCAwIiwgXAotICAgICAgICAgICItMC4wNDYyNSwgLTAuMDM1LCAtMC4wMjg3NSwgLTAuMDIyNSwgLTAuMDE2MjUsIC0wLjAwNjI1LCAtMC4wMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjA0Mzc1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDE1LCAtMC4wMDYyNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oU0UpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTU0MjI2OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTU0MjI2OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTU0MjE2OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNTgyLCAwLjAwNTg0LCAwLjAwNTkyNSwgMC4wMDYwNDQsIDAuMDA2MTk1LCAwLjAwNjQyMiwgMC4wMDY2MjQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDc1NzMsIDAuMDA3NjAzLCAwLjAwNzcxNiwgMC4wMDc4NzUsIDAuMDA4MDgyLCAwLjAwODQ0NCwgMC4wMDg3NzYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiUk4mU04iOwotICAgICAgc2RmX2NvbmQgOiAiUk5fRVFfMV9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAxODc1LCAtMC4wMDc1LCAtMC4wMDEyNSwgMC4wMDUsIDAuMDA1LCAwLjAxNSwgMC4wMTc1IiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLCAwLjAxLCAwLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMjUsIC0wLjAxMjUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLjAwMzc1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIC0wLjAwMjUsIDAiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA4NzUsIDAiLCBcCi0gICAgICAgICAgIi0wLjA0NjI1LCAtMC4wMzUsIC0wLjAyODc1LCAtMC4wMjI1LCAtMC4wMTYyNSwgLTAuMDEyNSwgLTAuMDAzNzUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDE1LCAtMC4wMTI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDA2MjUsIC0wLjAwMTI1LCAwLjAwNSwgMC4wMTEyNSwgMC4wMTc1LCAwLjAyMTI1LCAwLjAzIiwgXAotICAgICAgICAgICItMC4wMTc1LCAtMC4wMDYyNSwgMCwgMC4wMDYyNSwgMC4wMTI1LCAwLjAxNjI1LCAwLjAxODc1IiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDE4NzUsIC0wLjAwNjI1LCAtMC4wMDYyNSwgMCwgMC4wMSwgMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIC0wLjAwMjUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA4NzUsIDAiLCBcCi0gICAgICAgICAgIi0wLjA0NjI1LCAtMC4wMzUsIC0wLjAyODc1LCAtMC4wMjg3NSwgLTAuMDIyNSwgLTAuMDE4NzUsIC0wLjAxIiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAyMTI1LCAtMC4wMTg3NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiUk4mU04iOwotICAgICAgc2RmX2NvbmQgOiAiUk5fRVFfMV9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5Mzc1LCAwLjA4MjUsIDAuMDc2MjUsIDAuMDcsIDAuMDYzNzUsIDAuMDUzNzUsIDAuMDUxMjUiLCBcCi0gICAgICAgICAgIjAuMDk4NzUsIDAuMDkzNzUsIDAuMDgxMjUsIDAuMDc1LCAwLjA2ODc1LCAwLjA1ODc1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICIwLjExMTI1LCAwLjEsIDAuMDkzNzUsIDAuMDgxMjUsIDAuMDc1LCAwLjA3MTI1LCAwLjA2MjUiLCBcCi0gICAgICAgICAgIjAuMTE3NSwgMC4xMTI1LCAwLjEsIDAuMDkzNzUsIDAuMDg3NSwgMC4wNzc1LCAwLjA3NSIsIFwKLSAgICAgICAgICAiMC4xMywgMC4xMTg3NSwgMC4xMDYyNSwgMC4xLCAwLjA5Mzc1LCAwLjA5LCAwLjA4MTI1IiwgXAotICAgICAgICAgICIwLjE0LCAwLjEyODc1LCAwLjEyMjUsIDAuMTEsIDAuMTAzNzUsIDAuMSwgMC4wOTEyNSIsIFwKLSAgICAgICAgICAiMC4xNDg3NSwgMC4xMzc1LCAwLjEyNSwgMC4xMTg3NSwgMC4xMTI1LCAwLjEwODc1LCAwLjEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDYyNSwgMC4wOTUsIDAuMDg4NzUsIDAuMDc2MjUsIDAuMDcsIDAuMDY2MjUsIDAuMDU3NSIsIFwKLSAgICAgICAgICAiMC4xMTEyNSwgMC4xLCAwLjA5Mzc1LCAwLjA4NzUsIDAuMDgxMjUsIDAuMDcxMjUsIDAuMDY4NzUiLCBcCi0gICAgICAgICAgIjAuMTE3NSwgMC4xMDYyNSwgMC4xLCAwLjA5Mzc1LCAwLjA4NzUsIDAuMDc3NSwgMC4wNzUiLCBcCi0gICAgICAgICAgIjAuMTIzNzUsIDAuMTEyNSwgMC4xLCAwLjA5Mzc1LCAwLjA4NzUsIDAuMDgzNzUsIDAuMDc1IiwgXAotICAgICAgICAgICIwLjEyMzc1LCAwLjExODc1LCAwLjEwNjI1LCAwLjEsIDAuMDkzNzUsIDAuMDgzNzUsIDAuMDgxMjUiLCBcCi0gICAgICAgICAgIjAuMTI3NSwgMC4xMjI1LCAwLjExLCAwLjEwMzc1LCAwLjA5NzUsIDAuMDg3NSwgMC4wODUiLCBcCi0gICAgICAgICAgIjAuMTMsIDAuMTI1LCAwLjExMjUsIDAuMTA2MjUsIDAuMSwgMC4wOTYyNSwgMC4wODc1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTSSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNzAxMTA0OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDY5OTYyMzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA3MDExMDQ7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA0NzA4LCAwLjAwNDY4NywgMC4wMDQ3MDIsIDAuMDA0NzM4LCAwLjAwNDc5NywgMC4wMDQ5MDksIDAuMDA1MDIxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA2MzQ3LCAwLjAwNjMzMiwgMC4wMDYzNDMsIDAuMDA2MzgxLCAwLjAwNjQyNywgMC4wMDY1MzIsIDAuMDA2NjM2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlJOJlNFJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIlJOX0VRXzFfQU5fU0VfRVFfMV9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAzMTI1LCAtMC4wMjYyNSwgLTAuMDI2MjUsIC0wLjAyLCAtMC4wMiwgLTAuMDE2MjUsIC0wLjAxMzc1IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMjUsIC0wLjAyMTI1LCAtMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDI3NSwgLTAuMDI1IiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzMzc1LCAtMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDYxMjUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wNDYyNSwgLTAuMDQzNzUiLCBcCi0gICAgICAgICAgIi0wLjA3MTI1LCAtMC4wNjYyNSwgLTAuMDYsIC0wLjA2LCAtMC4wNTM3NSwgLTAuMDUsIC0wLjA0NzUiLCBcCi0gICAgICAgICAgIi0wLjA3Mzc1LCAtMC4wNjg3NSwgLTAuMDY4NzUsIC0wLjA2MjUsIC0wLjA2MjUsIC0wLjA1ODc1LCAtMC4wNTYyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAxMjUsIC0wLjAwNzUsIDAuMDA1LCAwLjAxMTI1LCAwLjAxMTI1LCAwLjAyMTI1LCAwLjAyMzc1IiwgXAotICAgICAgICAgICItMC4wMTc1LCAtMC4wMTI1LCAwLCAwLCAwLjAwNjI1LCAwLjAxNjI1LCAwLjAxODc1IiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLCAwLjAxLCAwLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMjUsIC0wLjAxMjUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLjAwMzc1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDEyNSwgLTAuMDAyNSwgMCIsIFwKLSAgICAgICAgICAiLTAuMDQsIC0wLjAzNSwgLTAuMDI4NzUsIC0wLjAyMjUsIC0wLjAxNjI1LCAtMC4wMTI1LCAtMC4wMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxNSwgLTAuMDEyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiUk4mU0UmU04iOwotICAgICAgc2RmX2NvbmQgOiAiUk5fRVFfMV9BTl9TRV9FUV8xX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMSwgMC4wODg3NSwgMC4wNzYyNSwgMC4wNywgMC4wNjM3NSwgMC4wNiwgMC4wNTEyNSIsIFwKLSAgICAgICAgICAiMC4xMDUsIDAuMDkzNzUsIDAuMDg3NSwgMC4wNzUsIDAuMDY4NzUsIDAuMDY1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICIwLjExMTI1LCAwLjEsIDAuMDkzNzUsIDAuMDg3NSwgMC4wODEyNSwgMC4wNzEyNSwgMC4wNjg3NSIsIFwKLSAgICAgICAgICAiMC4xMTc1LCAwLjExMjUsIDAuMSwgMC4wOTM3NSwgMC4wODc1LCAwLjA3NzUsIDAuMDc1IiwgXAotICAgICAgICAgICIwLjEyMzc1LCAwLjExODc1LCAwLjEwNjI1LCAwLjEsIDAuMDkzNzUsIDAuMDgzNzUsIDAuMDgxMjUiLCBcCi0gICAgICAgICAgIjAuMTMzNzUsIDAuMTIyNSwgMC4xMTYyNSwgMC4xMSwgMC4xMDM3NSwgMC4wOTM3NSwgMC4wOTEyNSIsIFwKLSAgICAgICAgICAiMC4xNDI1LCAwLjEzMTI1LCAwLjEyNSwgMC4xMTI1LCAwLjEwNjI1LCAwLjEwMjUsIDAuMDkzNzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzUsIDAuMDYzNzUsIDAuMDU3NSwgMC4wNTEyNSwgMC4wNDUsIDAuMDM1LCAwLjAzMjUiLCBcCi0gICAgICAgICAgIjAuMDgsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNSwgMC4wNCwgMC4wMzc1IiwgXAotICAgICAgICAgICIwLjA4NjI1LCAwLjA4MTI1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDQ2MjUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMDkyNSwgMC4wODc1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1MjUsIDAuMDUiLCBcCi0gICAgICAgICAgIjAuMDk4NzUsIDAuMDkzNzUsIDAuMDgxMjUsIDAuMDc1LCAwLjA2ODc1LCAwLjA1ODc1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICIwLjEwODc1LCAwLjA5NzUsIDAuMDkxMjUsIDAuMDc4NzUsIDAuMDcyNSwgMC4wNjg3NSwgMC4wNiIsIFwKLSAgICAgICAgICAiMC4xMTEyNSwgMC4xMDYyNSwgMC4wOTM3NSwgMC4wODc1LCAwLjA4MTI1LCAwLjA3MTI1LCAwLjA2ODc1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTTikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNTYyNzc7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNTYyNzc7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNTYyNjc7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNTkzLCAwLjAwMDU5MywgMC4wMDA1OTMsIDAuMDAwNTkzLCAwLjAwMDU5MywgMC4wMDA1OTIsIDAuMDAwNTkyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNTk5LCAwLjAwMDU5NCwgMC4wMDA1OTQsIDAuMDAwNTk0LCAwLjAwMDU5NSwgMC4wMDA1OTUsIDAuMDAwNTk1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRCYhUk4mIVNFJiFTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fUk5fRVFfMF9BTl9TRV9FUV8wX0FOX1NJX0VRXzAgPT0gMSdiMSI7Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4xMDQ1MzIsIDAuMTEyMzg0LCAwLjEyMjI2NCwgMC4xMzE4MDEsIDAuMTQwMjEsIDAuMTUxNDE4LCAwLjE1OTU0OCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJlY292ZXJ5X3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiUk4iOwotICAgICAgc2RmX2NvbmQgOiAiUk4gPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQocmVjb3ZlcnlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE4NzUsIDAuMDA3NSwgMC4wMDEyNSwgLTAuMDExMjUsIC0wLjAxNzUsIC0wLjAyMTI1LCAtMC4wMyIsIFwKLSAgICAgICAgICAiMC4wMjM3NSwgMC4wMTI1LCAwLjAwNjI1LCAwLCAtMC4wMTI1LCAtMC4wMTYyNSwgLTAuMDI1IiwgXAotICAgICAgICAgICIwLjAzLCAwLjAyNSwgMC4wMTI1LCAwLjAwNjI1LCAwLCAtMC4wMSwgLTAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMDQyNSwgMC4wMzEyNSwgMC4wMTg3NSwgMC4wMTI1LCAwLjAwNjI1LCAtMC4wMDM3NSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMDQ4NzUsIDAuMDM3NSwgMC4wMjUsIDAuMDE4NzUsIDAuMDEyNSwgMC4wMDI1LCAwIiwgXAotICAgICAgICAgICIwLjA1ODc1LCAwLjA1Mzc1LCAwLjA0MTI1LCAwLjAyODc1LCAwLjAyMjUsIDAuMDE4NzUsIDAuMDEiLCBcCi0gICAgICAgICAgIjAuMDczNzUsIDAuMDYyNSwgMC4wNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAyNzUsIDAuMDE4NzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiByZW1vdmFsX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiUk4iOwotICAgICAgc2RmX2NvbmQgOiAiUk4gPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQocmVtb3ZhbF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTg3NSwgMC4wMjM3NSwgMC4wMzYyNSwgMC4wNDI1LCAwLjA0ODc1LCAwLjA1MjUsIDAuMDYxMjUiLCBcCi0gICAgICAgICAgIjAuMDA3NSwgMC4wMTg3NSwgMC4wMjUsIDAuMDM3NSwgMC4wNDM3NSwgMC4wNDc1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICIwLjAwMTI1LCAwLjAxMjUsIDAuMDE4NzUsIDAuMDI1LCAwLjAzMTI1LCAwLjA0MTI1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICItMC4wMDUsIDAuMDA2MjUsIDAuMDEyNSwgMC4wMTg3NSwgMC4wMjUsIDAuMDM1LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjAxMTI1LCAwLCAwLjAwNjI1LCAwLjAxMjUsIDAuMDE4NzUsIDAuMDI4NzUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjAyMTI1LCAtMC4wMSwgLTAuMDAzNzUsIDAuMDAyNSwgMC4wMDg3NSwgMC4wMTg3NSwgMC4wMjEyNSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxODc1LCAtMC4wMDYyNSwgMCwgMC4wMDYyNSwgMC4wMSwgMC4wMTg3NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IFNERkZTWDEgKgotICogLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoU0RGRlNYMSkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAxLjE0NjQ5OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIGZmIChOMzUsUUJJTlQpIHsKLSAgICBuZXh0X3N0YXRlIDogIigoU0UgU0kpICsgKCFTRSBEKSkiOwotICAgIGNsb2NrZWRfb24gOiAiQ0siOwotICAgIHByZXNldCA6ICIoIVNOKSI7Ci0gIH0KLSAgcGluKENLKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2OTI3NDM7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjkyNzQzOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDY5MjY0ODsKLSAgICBjbG9jayA6IHRydWU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzMjQ4LCAwLjAwMzIzOSwgMC4wMDMzMSwgMC4wMDM0MDIsIDAuMDAzNTIyLCAwLjAwMzcyNSwgMC4wMDM5MjgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDgyMjUsIDAuMDA4MjI4LCAwLjAwODI5NiwgMC4wMDg0MzksIDAuMDA4NTU2LCAwLjAwODg0NywgMC4wMDkwOTQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFEJiFTRSYhU0kmU04iOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1NFX0VRXzBfQU5fU0lfRVFfMF9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMTIzMDUsIDAuMTMxMjE3LCAwLjE0MDI3NCwgMC4xNDczNjYsIDAuMTUyOTk1LCAwLjE2MDU1MSwgMC4xNjYxMDIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjA3NDc5MiwgMC4wODI4ODMsIDAuMDkxODcxLCAwLjA5ODc2OCwgMC4xMDQzMTYsIDAuMTExNTM3LCAwLjExNjcxNCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjQ3NTExOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDY0NjUzNzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2NDc1MTE7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA0MDQyLCAwLjAwNDAxNSwgMC4wMDQwMywgMC4wMDQwNjMsIDAuMDA0MTMyLCAwLjAwNDIzMiwgMC4wMDQzNDgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDU2NDUsIDAuMDA1NjI5LCAwLjAwNTY0NywgMC4wMDU2ODksIDAuMDA1NzQzLCAwLjAwNTg1NCwgMC4wMDU5NjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIVNFJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIlNFX0VRXzBfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMzEyNSwgLTAuMDI2MjUsIC0wLjAyLCAtMC4wMiwgLTAuMDEzNzUsIC0wLjAxLCAtMC4wMDc1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDE1LCAtMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzc1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDMxMjUsIC0wLjAyNzUsIC0wLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjA0Mzc1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDM3NSwgLTAuMDMzNzUsIC0wLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjA0Mzc1LCAtMC4wNCwgLTAuMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDY1LCAtMC4wNiwgLTAuMDUzNzUsIC0wLjA1Mzc1LCAtMC4wNTM3NSwgLTAuMDQzNzUsIC0wLjA0MTI1IiwgXAotICAgICAgICAgICItMC4wNjc1LCAtMC4wNjI1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDU2MjUsIC0wLjA1MjUsIC0wLjA1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDEyNSwgLTAuMDA3NSwgLTAuMDAxMjUsIDAuMDA1LCAwLjAxMTI1LCAwLjAxNSwgMC4wMjM3NSIsIFwKLSAgICAgICAgICAiLTAuMDE3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAsIDAuMDA2MjUsIDAuMDEsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMCwgMC4wMDM3NSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAtMC4wMDI1LCAwIiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwODc1LCAwIiwgXAotICAgICAgICAgICItMC4wNCwgLTAuMDM1LCAtMC4wMjg3NSwgLTAuMDIyNSwgLTAuMDE2MjUsIC0wLjAxMjUsIC0wLjAxIiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAyMTI1LCAtMC4wMTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhU0UmU04iOwotICAgICAgc2RmX2NvbmQgOiAiU0VfRVFfMF9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1NjI1LCAwLjA1MTI1LCAwLjA0NSwgMC4wMzg3NSwgMC4wMzg3NSwgMC4wMzUsIDAuMDI2MjUiLCBcCi0gICAgICAgICAgIjAuMDY3NSwgMC4wNTYyNSwgMC4wNSwgMC4wNDM3NSwgMC4wNDM3NSwgMC4wNCwgMC4wMzc1IiwgXAotICAgICAgICAgICIwLjA3Mzc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDU2MjUsIDAuMDUsIDAuMDQ2MjUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMDgsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1MjUsIDAuMDUiLCBcCi0gICAgICAgICAgIjAuMDg2MjUsIDAuMDgxMjUsIDAuMDY4NzUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNTg3NSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiMC4wOTYyNSwgMC4wODUsIDAuMDc4NzUsIDAuMDcyNSwgMC4wNzI1LCAwLjA2ODc1LCAwLjA2NjI1IiwgXAotICAgICAgICAgICIwLjEwNSwgMC4wOTM3NSwgMC4wODc1LCAwLjA4MTI1LCAwLjA4MTI1LCAwLjA3NzUsIDAuMDc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDYyNSwgMC4wNTEyNSwgMC4wNDUsIDAuMDM4NzUsIDAuMDMyNSwgMC4wMjI1LCAwLjAyIiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDU2MjUsIDAuMDUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMjc1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiMC4wNzM3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1LCAwLjA0Mzc1LCAwLjA0LCAwLjAzMTI1IiwgXAotICAgICAgICAgICIwLjA4LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDUsIDAuMDQ2MjUsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiMC4wODYyNSwgMC4wNzUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNDYyNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4wOTYyNSwgMC4wODUsIDAuMDcyNSwgMC4wNjYyNSwgMC4wNjYyNSwgMC4wNTYyNSwgMC4wNTM3NSIsIFwKLSAgICAgICAgICAiMC4wOTg3NSwgMC4wODc1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjUsIDAuMDU2MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFEpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4zMzYyMzc7Ci0gICAgZnVuY3Rpb24gOiAiTjM1IjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBub25fdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJpc2luZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTc5NzgsIDAuMTE2NDE4LCAwLjIyMDMzOSwgMC4zMTIyOSwgMC40MzQzODcsIDAuNjc4NzMxLCAwLjgzMTUxMyIsIFwKLSAgICAgICAgICAiMC4xMDYxMDIsIDAuMTI0NTA2LCAwLjIyODQ5OCwgMC4zMjAzNzIsIDAuNDQyNTEzLCAwLjY4NjczOSwgMC44Mzk2NTEiLCBcCi0gICAgICAgICAgIjAuMTE1MTgxLCAwLjEzMzU3NCwgMC4yMzc1MjgsIDAuMzI5NDQ1LCAwLjQ1MTU4OCwgMC42OTU4OTYsIDAuODQ4NzI3IiwgXAotICAgICAgICAgICIwLjEyMjExOCwgMC4xNDA1NzgsIDAuMjQ0NDg2LCAwLjMzNjM3NywgMC40NTg1MzYsIDAuNzAyNzM4LCAwLjg1NTcwNyIsIFwKLSAgICAgICAgICAiMC4xMjc2NzksIDAuMTQ2MTM3LCAwLjI1MDE3MywgMC4zNDE5NDgsIDAuNDY0MTAxLCAwLjcwODU2NywgMC44NjEyNTEiLCBcCi0gICAgICAgICAgIjAuMTM1MTMzLCAwLjE1MzU2NCwgMC4yNTc1NDYsIDAuMzQ5NDIsIDAuNDcxNjYsIDAuNzE1OTU4LCAwLjg2ODc4NyIsIFwKLSAgICAgICAgICAiMC4xNDA2ODMsIDAuMTU5MTAxLCAwLjI2MzI0LCAwLjM1NDc1NywgMC40NzcxMjcsIDAuNzIxNDE0LCAwLjg3NDI4OCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzE0MTQsIDAuMTA5MDcsIDAuMzI2MTQ4LCAwLjUxODU1OCwgMC43NzY4MzksIDEuMjkxMzksIDEuNjEzMDIiLCBcCi0gICAgICAgICAgIjAuMDcxMjE1LCAwLjEwODk0NCwgMC4zMjYwNjksIDAuNTE5NTQzLCAwLjc3NjgzMiwgMS4yODk3OSwgMS42MTMwMiIsIFwKLSAgICAgICAgICAiMC4wNzEzNzUsIDAuMTA4OTY4LCAwLjMyNjE4OSwgMC41MTk1MzgsIDAuNzc2ODMsIDEuMjkxMzksIDEuNjEzMDMiLCBcCi0gICAgICAgICAgIjAuMDcxNDY3LCAwLjEwOTE0MywgMC4zMjYxMzQsIDAuNTE5NTI3LCAwLjc3NjgyMywgMS4yODk5OSwgMS42MTMwNSIsIFwKLSAgICAgICAgICAiMC4wNzE2MzcsIDAuMTA5MDM1LCAwLjMyNjE4MiwgMC41MTk1MTcsIDAuNzc2ODIyLCAxLjI5MTQ3LCAxLjYxMzA0IiwgXAotICAgICAgICAgICIwLjA3MTc5OCwgMC4xMDg4NzEsIDAuMzI2MTQyLCAwLjUxOTQzNywgMC43NzY3NTYsIDEuMjkwMTEsIDEuNjEyOTEiLCBcCi0gICAgICAgICAgIjAuMDcxNTAzLCAwLjEwODgwMywgMC4zMjY1MjIsIDAuNTE4NzQ0LCAwLjc3NjczNiwgMS4yOTEyNiwgMS42MTI5Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExMjU3OCwgMC4xMzA3OTIsIDAuMjMzNjM1LCAwLjMyMzk0NiwgMC40NDQ3NTIsIDAuNjg2ODAyLCAwLjgzNzM5NSIsIFwKLSAgICAgICAgICAiMC4xMjA3ODQsIDAuMTM5MDAyLCAwLjI0MTgyNSwgMC4zMzIxNzQsIDAuNDUyOTkyLCAwLjY5NDk5NCwgMC44NDU5NzgiLCBcCi0gICAgICAgICAgIjAuMTI5ODM0LCAwLjE0ODA0LCAwLjI1MDg5LCAwLjM0MTI0OSwgMC40NjIzMjMsIDAuNzA0MTUyLCAwLjg1NTA3MyIsIFwKLSAgICAgICAgICAiMC4xMzY5MjgsIDAuMTU1MTM0LCAwLjI1Nzk2NiwgMC4zNDg2MDMsIDAuNDY5Njg2LCAwLjcxMDM5MSwgMC44NjE3MDgiLCBcCi0gICAgICAgICAgIjAuMTQyNTQyLCAwLjE2MDc0OCwgMC4yNjM2MjgsIDAuMzUzOTMxLCAwLjQ3NTEyNCwgMC43MTY4MzQsIDAuODY3Nzg3IiwgXAotICAgICAgICAgICIwLjE1MDEwNSwgMC4xNjgzMzMsIDAuMjcxMTMxLCAwLjM2MTc0MywgMC40ODI3ODYsIDAuNzI0MzQzLCAwLjg3NTMxNiIsIFwKLSAgICAgICAgICAiMC4xNTU2NzcsIDAuMTczODczLCAwLjI3NjgyMywgMC4zNjczODIsIDAuNDg3NzU4LCAwLjcyOTk3MiwgMC44ODA4NjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDcwMzEzLCAwLjEwNjU1NCwgMC4zMTU2NzksIDAuNTAyMDQ5LCAwLjc1MDU0NiwgMS4yNDg5LCAxLjU1OTYyIiwgXAotICAgICAgICAgICIwLjA3MDI5NCwgMC4xMDY1NDMsIDAuMzE1NzU4LCAwLjUwMjQyNywgMC43NTA1MTEsIDEuMjQ4OTMsIDEuNTYwMTEiLCBcCi0gICAgICAgICAgIjAuMDY5NTQ4LCAwLjEwNjU0MywgMC4zMTU4NTEsIDAuNTAyNDQ3LCAwLjc1MDg4MywgMS4yNDU1OSwgMS41NjAxMSIsIFwKLSAgICAgICAgICAiMC4wNjk1MTgsIDAuMTA2NTQxLCAwLjMxNTYzNywgMC41MDE4NDEsIDAuNzQ5OTY2LCAxLjI0NzUsIDEuNTU5NiIsIFwKLSAgICAgICAgICAiMC4wNzAxMzgsIDAuMTA2NTQ5LCAwLjMxNTk0OSwgMC41MDI0MjgsIDAuNzUwOTg4LCAxLjI0NzI1LCAxLjU2MDEyIiwgXAotICAgICAgICAgICIwLjA3MDQxMywgMC4xMDY1NTQsIDAuMzE2MTg5LCAwLjUwMjQwNSwgMC43NTEwMiwgMS4yNDg5MywgMS41NTk4NCIsIFwKLSAgICAgICAgICAiMC4wNzAxMjUsIDAuMTA2NDg3LCAwLjMxNTg5MiwgMC41MDE4NTMsIDAuNzUwNzI5LCAxLjI0NjEzLCAxLjU2MDAxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiBwcmVzZXQ7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5NDUwNiwgMC4xMTI5MDcsIDAuMjE2OTAyLCAwLjMwODc3MSwgMC40MzA5OSwgMC42NzUzNzQsIDAuODI3NTg0IiwgXAotICAgICAgICAgICIwLjEwMjQ1MywgMC4xMjA4MzMsIDAuMjI0ODA5LCAwLjMxNjU2OSwgMC40Mzg4ODksIDAuNjgzMzM3LCAwLjgzNjA2NyIsIFwKLSAgICAgICAgICAiMC4xMTIxMjEsIDAuMTMwNTI4LCAwLjIzNDcwMiwgMC4zMjYzOTMsIDAuNDQ4NjQ1LCAwLjY5Mjk4LCAwLjg0NTQzMiIsIFwKLSAgICAgICAgICAiMC4xMjAyNzIsIDAuMTM4NzMsIDAuMjQyNjc4LCAwLjMzNDE4LCAwLjQ1NjUzNiwgMC43MDExNDUsIDAuODUzMzg5IiwgXAotICAgICAgICAgICIwLjEyNjk0MSwgMC4xNDUzMjUsIDAuMjQ5MzA3LCAwLjM0MTE5NywgMC40NjMzNjgsIDAuNzA3NzA5LCAwLjg2MDU5NCIsIFwKLSAgICAgICAgICAiMC4xMzU2NTMsIDAuMTU0MDY3LCAwLjI1ODM5MiwgMC4zNDk5NzcsIDAuNDcyMDgyLCAwLjcxNjU2NSwgMC44NjkyOTYiLCBcCi0gICAgICAgICAgIjAuMTQxODA2LCAwLjE2MDIsIDAuMjY0MjEzLCAwLjM1NjAxNCwgMC40NzgzMywgMC43MjI3MzksIDAuODc1MjU0Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3MTY0OSwgMC4xMDg5NjEsIDAuMzI2NDkyLCAwLjUxOTUwNSwgMC43NzY4NTYsIDEuMjkxNDYsIDEuNjEwMzgiLCBcCi0gICAgICAgICAgIjAuMDcxNjI4LCAwLjEwODk5NywgMC4zMjYxNTksIDAuNTE5NDY2LCAwLjc3Njg0OSwgMS4yOTE0OCwgMS42MTMwOSIsIFwKLSAgICAgICAgICAiMC4wNzE2MzgsIDAuMTA4OTYzLCAwLjMyNjU2NCwgMC41MTk1MDQsIDAuNzc2OTAyLCAxLjI5MTQ0LCAxLjYxMjY4IiwgXAotICAgICAgICAgICIwLjA3MTY3NywgMC4xMDkwNTEsIDAuMzI2NDg5LCAwLjUxOTQ2NiwgMC43NzY4MTUsIDEuMjkxNDUsIDEuNjEyODIiLCBcCi0gICAgICAgICAgIjAuMDcxNzExLCAwLjEwODk3NSwgMC4zMjYxNywgMC41MTk0OTUsIDAuNzc2ODM3LCAxLjI5MTM4LCAxLjYxMTQ2IiwgXAotICAgICAgICAgICIwLjA3MTgzOSwgMC4xMDkwOTYsIDAuMzI2MDY4LCAwLjUxOTQ0MSwgMC43NzY3NjMsIDEuMjkxNDgsIDEuNjEzMDkiLCBcCi0gICAgICAgICAgIjAuMDcxNTk1LCAwLjEwOTMxNiwgMC4zMjY0ODYsIDAuNTE5NDUzLCAwLjc3Njc3NywgMS4yOTEyMywgMS42MTI4MSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDUyMzYsIDAuMDA1MjQ2LCAwLjAwNTI2LCAwLjAwNTI2MiwgMC4wMDUyNjQsIDAuMDA1MjY2LCAwLjAwNTI2NiIsIFwKLSAgICAgICAgICAiMC4wMDUyMjcsIDAuMDA1MjM3LCAwLjAwNTI1MiwgMC4wMDUyNTQsIDAuMDA1MjU2LCAwLjAwNTI1NywgMC4wMDUyNTgiLCBcCi0gICAgICAgICAgIjAuMDA1MjYzLCAwLjAwNTI3MiwgMC4wMDUyODcsIDAuMDA1Mjg5LCAwLjAwNTI5MiwgMC4wMDUyOTIsIDAuMDA1MjkzIiwgXAotICAgICAgICAgICIwLjAwNTMxNywgMC4wMDUzMjcsIDAuMDA1MzQyLCAwLjAwNTM0NCwgMC4wMDUzNDYsIDAuMDA1MzQ3LCAwLjAwNTM1IiwgXAotICAgICAgICAgICIwLjAwNTM4OCwgMC4wMDUzOTgsIDAuMDA1NDExLCAwLjAwNTQxNCwgMC4wMDU0MTYsIDAuMDA1NDE3LCAwLjAwNTQxOCIsIFwKLSAgICAgICAgICAiMC4wMDU1MDQsIDAuMDA1NTE0LCAwLjAwNTUyNywgMC4wMDU1MywgMC4wMDU1MjMsIDAuMDA1NTMzLCAwLjAwNTUzMyIsIFwKLSAgICAgICAgICAiMC4wMDU1ODMsIDAuMDA1NTksIDAuMDA1NjA0LCAwLjAwNTYwNiwgMC4wMDU2MDksIDAuMDA1NjExLCAwLjAwNTYxMSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNTAxOSwgMC4wMDUwMjksIDAuMDA1MDQ1LCAwLjAwNTA0OCwgMC4wMDUwNSwgMC4wMDUwNTIsIDAuMDA1MDUyIiwgXAotICAgICAgICAgICIwLjAwNTAxNiwgMC4wMDUwMjcsIDAuMDA1MDQzLCAwLjAwNTA0NiwgMC4wMDUwNDgsIDAuMDA1MDQ5LCAwLjAwNTA1IiwgXAotICAgICAgICAgICIwLjAwNTA2MSwgMC4wMDUwNzEsIDAuMDA1MDg3LCAwLjAwNTA5MSwgMC4wMDUwOTMsIDAuMDA1MDk0LCAwLjAwNTA5NSIsIFwKLSAgICAgICAgICAiMC4wMDUxMjYsIDAuMDA1MTM2LCAwLjAwNTE1MiwgMC4wMDUxNTUsIDAuMDA1MTU3LCAwLjAwNTE1OSwgMC4wMDUxNTkiLCBcCi0gICAgICAgICAgIjAuMDA1MiwgMC4wMDUyMSwgMC4wMDUyMjYsIDAuMDA1MjI5LCAwLjAwNTIzMiwgMC4wMDUyMzMsIDAuMDA1MjM0IiwgXAotICAgICAgICAgICIwLjAwNTMyMSwgMC4wMDUzMzEsIDAuMDA1MzQ2LCAwLjAwNTM1LCAwLjAwNTM1MSwgMC4wMDUzNTMsIDAuMDA1MzU0IiwgXAotICAgICAgICAgICIwLjAwNTQwNiwgMC4wMDU0MTYsIDAuMDA1NDMzLCAwLjAwNTQzNiwgMC4wMDU0MzYsIDAuMDA1NDM4LCAwLjAwNTQzOCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDU2NzQsIDAuMDA1NjgzLCAwLjAwNTY5OCwgMC4wMDU3MDEsIDAuMDA1NzAyLCAwLjAwNTcwNiwgMC4wMDU3MDYiLCBcCi0gICAgICAgICAgIjAuMDA1NjYyLCAwLjAwNTY3MSwgMC4wMDU2ODUsIDAuMDA1Njg4LCAwLjAwNTY5LCAwLjAwNTY5NSwgMC4wMDU2OTYiLCBcCi0gICAgICAgICAgIjAuMDA1NjcsIDAuMDA1NjgsIDAuMDA1Njk1LCAwLjAwNTY5OCwgMC4wMDU3MDEsIDAuMDA1NzAzLCAwLjAwNTcwMSIsIFwKLSAgICAgICAgICAiMC4wMDU2OTksIDAuMDA1NzA5LCAwLjAwNTcyNCwgMC4wMDU3MjcsIDAuMDA1NzI5LCAwLjAwNTczMiwgMC4wMDU3MzEiLCBcCi0gICAgICAgICAgIjAuMDA1NzQyLCAwLjAwNTc1MiwgMC4wMDU3NjcsIDAuMDA1NzcxLCAwLjAwNTc3MiwgMC4wMDU3NzQsIDAuMDA1Nzc1IiwgXAotICAgICAgICAgICIwLjAwNTgxMSwgMC4wMDU4MjEsIDAuMDA1ODM3LCAwLjAwNTg0LCAwLjAwNTg0MiwgMC4wMDU4NDQsIDAuMDA1ODQ0IiwgXAotICAgICAgICAgICIwLjAwNTkxLCAwLjAwNTkxOCwgMC4wMDU5MzUsIDAuMDA1OTM5LCAwLjAwNTk0MSwgMC4wMDU5NDIsIDAuMDA1OTQzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHNjYWxhcikgewotICAgICAgICB2YWx1ZXMoIjAiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFFOKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMzQ1NzQ2OwotICAgIGZ1bmN0aW9uIDogIlFCSU5UIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBub25fdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJpc2luZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMjMwNSwgMC4xNDE3NjksIDAuMjQ3ODMxLCAwLjM0MTQyOCwgMC40NjYyNTIsIDAuNzE1ODgzLCAwLjg3MTc0IiwgXAotICAgICAgICAgICIwLjEzMTIxNywgMC4xNDk5MzEsIDAuMjU1OTk2LCAwLjM0OTU4OCwgMC40NzQ0MjEsIDAuNzI0MDUsIDAuODgwMDU3IiwgXAotICAgICAgICAgICIwLjE0MDI3NCwgMC4xNTg5OTMsIDAuMjY1MDgsIDAuMzU4NjY4LCAwLjQ4MzQ3NywgMC43MzMxNzcsIDAuODg5MTUxIiwgXAotICAgICAgICAgICIwLjE0NzM2NiwgMC4xNjYwODUsIDAuMjcyMTQ0LCAwLjM2NTc0MSwgMC40OTA2NDIsIDAuNzQwMDgzLCAwLjg5NjA0NSIsIFwKLSAgICAgICAgICAiMC4xNTI5OTUsIDAuMTcxNzE1LCAwLjI3Nzc4NywgMC4zNzEzNzEsIDAuNDk2MjE0LCAwLjc0NTg2NSwgMC45MDE4NTYiLCBcCi0gICAgICAgICAgIjAuMTYwNTUxLCAwLjE3OTIzMSwgMC4yODUzMjEsIDAuMzc4ODg1LCAwLjUwMzc3MSwgMC43NTMzODMsIDAuOTA5MzY2IiwgXAotICAgICAgICAgICIwLjE2NjEwOSwgMC4xODQ4MTcsIDAuMjkwOTEyLCAwLjM4NDQ5NywgMC41MDkyNzQsIDAuNzU4OTg1LCAwLjkxNDk0NSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzA5MDEsIDAuMTA5NzgxLCAwLjMzMTM1NiwgMC41MjY0NDgsIDAuNzg2NjQxLCAxLjMwOTQ0LCAxLjYzNTMxIiwgXAotICAgICAgICAgICIwLjA3MDg2MywgMC4xMDk3NzksIDAuMzMxMzc1LCAwLjUyNjQ0OCwgMC43ODY3NDMsIDEuMzA5NTEsIDEuNjM1NTIiLCBcCi0gICAgICAgICAgIjAuMDcwODI0LCAwLjEwOTc4MywgMC4zMzEzOTQsIDAuNTI2NDE3LCAwLjc4NzgxOCwgMS4zMDcyNiwgMS42MzU1NyIsIFwKLSAgICAgICAgICAiMC4wNzA4MjUsIDAuMTA5NzgzLCAwLjMzMTM1MSwgMC41MjcwOTIsIDAuNzg2NTM5LCAxLjMwODEsIDEuNjM1MzUiLCBcCi0gICAgICAgICAgIjAuMDcwODczLCAwLjEwOTc4NCwgMC4zMzE0MjIsIDAuNTI2NDU2LCAwLjc4Nzg0LCAxLjMwNjk3LCAxLjYzNTU4IiwgXAotICAgICAgICAgICIwLjA3MDkwOSwgMC4xMDk3OCwgMC4zMzEzNDgsIDAuNTI3MDgzLCAwLjc4NzgzNSwgMS4zMDk1LCAxLjYzNTM2IiwgXAotICAgICAgICAgICIwLjA3MDg5NiwgMC4xMDk2NjQsIDAuMzMxNDI2LCAwLjUyNzA4LCAwLjc4Njk4NywgMS4zMDczMSwgMS42MzU1MyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDkwMzUsIDAuMTI3MjQ1LCAwLjIzMDM2NSwgMC4zMjEzNzgsIDAuNDQyNjUxLCAwLjY4NTI0MywgMC44MzY5MDIiLCBcCi0gICAgICAgICAgIjAuMTE3MTYsIDAuMTM1MzY0LCAwLjIzODQ4OCwgMC4zMjk0OTIsIDAuNDUwNzc3LCAwLjY5MzM0OSwgMC44NDUwMzUiLCBcCi0gICAgICAgICAgIjAuMTI2MjM4LCAwLjE0NDQ0MywgMC4yNDc1NywgMC4zMzg1NjcsIDAuNDU5ODUzLCAwLjcwMjQyNSwgMC44NTQxMTEiLCBcCi0gICAgICAgICAgIjAuMTMzMTcxLCAwLjE1MTM3MywgMC4yNTQ0OTksIDAuMzQ1NDk2LCAwLjQ2Njc4OCwgMC43MDkzODUsIDAuODYxMDY2IiwgXAotICAgICAgICAgICIwLjEzODcyNCwgMC4xNTY5MjksIDAuMjYwMDcyLCAwLjM1MTA1NSwgMC40NzIzNDUsIDAuNzE1MDAzLCAwLjg2NjYxMSIsIFwKLSAgICAgICAgICAiMC4xNDYyMDksIDAuMTY0NDA1LCAwLjI2NzUxMiwgMC4zNTg1MTIsIDAuNDc5ODcsIDAuNzIyNDAzLCAwLjg3NDExOCIsIFwKLSAgICAgICAgICAiMC4xNTE3NTMsIDAuMTY5OTU0LCAwLjI3MzA2NywgMC4zNjQwNDUsIDAuNDg1MzcsIDAuNzI3OTgxLCAwLjg3OTY0OCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjgwMDYsIDAuMTA1MTMyLCAwLjMxNjcwNywgMC41MDMzMjgsIDAuNzUzNjY5LCAxLjI1MjY5LCAxLjU2NDc1IiwgXAotICAgICAgICAgICIwLjA2ODAwMywgMC4xMDUwMjcsIDAuMzE2NjQ1LCAwLjUwNDE4NCwgMC43NTM2NTMsIDEuMjUxMzcsIDEuNTY0NzUiLCBcCi0gICAgICAgICAgIjAuMDY4MDA1LCAwLjEwNTEwNywgMC4zMTY3MjksIDAuNTA0MTg0LCAwLjc1MzY1NCwgMS4yNTI2NCwgMS41NjQ3NSIsIFwKLSAgICAgICAgICAiMC4wNjgwMDMsIDAuMTA1MDYxLCAwLjMxNjY5OCwgMC41MDQxNzUsIDAuNzUzNjUzLCAxLjI1MTIzLCAxLjU2NDgxIiwgXAotICAgICAgICAgICIwLjA2ODAxMywgMC4xMDUwMjIsIDAuMzE2NzI2LCAwLjUwNDE2MiwgMC43NTM2NDgsIDEuMjUyODcsIDEuNTY0NzciLCBcCi0gICAgICAgICAgIjAuMDY3OTY0LCAwLjEwNDk4LCAwLjMxNjYzNywgMC41MDQwNzYsIDAuNzUzNjEzLCAxLjI1MTU0LCAxLjU2NDU5IiwgXAotICAgICAgICAgICIwLjA2ODA4MiwgMC4xMDQ5MzcsIDAuMzE2OTY0LCAwLjUwMzU2MSwgMC43NTM1MzgsIDEuMjUyNDgsIDEuNTY0NTkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiU04iOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGNsZWFyOwotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDU2NCwgMC4xMjM4NDEsIDAuMjI2OTcxLCAwLjMxNzk1NCwgMC40MzkyNjYsIDAuNjgxODgsIDAuODMzMjE1IiwgXAotICAgICAgICAgICIwLjExMzU4NiwgMC4xMzE3ODcsIDAuMjM0OTI3LCAwLjMyNTg4NCwgMC40NDcxOTUsIDAuNjg5ODM5LCAwLjg0MTQ3NCIsIFwKLSAgICAgICAgICAiMC4xMjMyNywgMC4xNDE0NzQsIDAuMjQ0NjAxLCAwLjMzNTU4NywgMC40NTY5MTIsIDAuNjk5NTA0LCAwLjg1MDk2IiwgXAotICAgICAgICAgICIwLjEzMTQyMywgMC4xNDk2MjQsIDAuMjUyNzU4LCAwLjM0MzY0OSwgMC40NjUwNDMsIDAuNzA3NjY3LCAwLjg1OTAxOCIsIFwKLSAgICAgICAgICAiMC4xMzc5MTUsIDAuMTU2MTE4LCAwLjI1OTI0OSwgMC4zNTAyMiwgMC40NzE1MTEsIDAuNzE0MDk3LCAwLjg2NTgxNSIsIFwKLSAgICAgICAgICAiMC4xNDY3MTEsIDAuMTY0OTExLCAwLjI2ODA3MywgMC4zNTkwMzQsIDAuNDgwMzAzLCAwLjcyMjk2NCwgMC44NzQ2MDEiLCBcCi0gICAgICAgICAgIjAuMTUyODk5LCAwLjE3MTEwMywgMC4yNzQyMTUsIDAuMzY1MTk3LCAwLjQ4NjU0NywgMC43MjkxODUsIDAuODgwNjk0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2Nzk4MywgMC4xMDUxMTYsIDAuMzE2OTUyLCAwLjUwNDIxOCwgMC43NTM3ODQsIDEuMjUyODcsIDEuNTYyNTQiLCBcCi0gICAgICAgICAgIjAuMDY4MDA1LCAwLjEwNTExNywgMC4zMTY3MTcsIDAuNTA0MTg1LCAwLjc1MzcwNywgMS4yNTI5MiwgMS41NjQ4NyIsIFwKLSAgICAgICAgICAiMC4wNjgwMDYsIDAuMTA1MTE1LCAwLjMxNzAxMiwgMC41MDQxNjQsIDAuNzUzNzc0LCAxLjI1MjgyLCAxLjU2NDEyIiwgXAotICAgICAgICAgICIwLjA2Nzk5OSwgMC4xMDUxMjEsIDAuMzE2OTc4LCAwLjUwNDE4NCwgMC43NTM3MDcsIDEuMjUyODQsIDEuNTY0MzIiLCBcCi0gICAgICAgICAgIjAuMDY4MDA4LCAwLjEwNTExNiwgMC4zMTY2ODEsIDAuNTA0MTM1LCAwLjc1MzY4OSwgMS4yNTI3MiwgMS41NjMiLCBcCi0gICAgICAgICAgIjAuMDY4MDMyLCAwLjEwNTEzOSwgMC4zMTY1NjEsIDAuNTA0MSwgMC43NTM1NCwgMS4yNTI4OSwgMS41NjQ4NCIsIFwKLSAgICAgICAgICAiMC4wNjgwNDYsIDAuMTA0OTYxLCAwLjMxNjk1NCwgMC41MDQwNTEsIDAuNzUzNjgsIDEuMjUyNDksIDEuNTY0MzMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1MDE5LCAwLjAwNTAyOSwgMC4wMDUwNDUsIDAuMDA1MDQ4LCAwLjAwNTA1LCAwLjAwNTA1MiwgMC4wMDUwNTIiLCBcCi0gICAgICAgICAgIjAuMDA1MDE2LCAwLjAwNTAyNywgMC4wMDUwNDMsIDAuMDA1MDQ2LCAwLjAwNTA0OCwgMC4wMDUwNDksIDAuMDA1MDUiLCBcCi0gICAgICAgICAgIjAuMDA1MDYxLCAwLjAwNTA3MSwgMC4wMDUwODcsIDAuMDA1MDkxLCAwLjAwNTA5MywgMC4wMDUwOTQsIDAuMDA1MDk1IiwgXAotICAgICAgICAgICIwLjAwNTEyNiwgMC4wMDUxMzYsIDAuMDA1MTUyLCAwLjAwNTE1NSwgMC4wMDUxNTcsIDAuMDA1MTU5LCAwLjAwNTE1OSIsIFwKLSAgICAgICAgICAiMC4wMDUyLCAwLjAwNTIxLCAwLjAwNTIyNiwgMC4wMDUyMjksIDAuMDA1MjMyLCAwLjAwNTIzMywgMC4wMDUyMzQiLCBcCi0gICAgICAgICAgIjAuMDA1MzIxLCAwLjAwNTMzMSwgMC4wMDUzNDYsIDAuMDA1MzUsIDAuMDA1MzUxLCAwLjAwNTM1MywgMC4wMDUzNTQiLCBcCi0gICAgICAgICAgIjAuMDA1NDA2LCAwLjAwNTQxNiwgMC4wMDU0MzMsIDAuMDA1NDM2LCAwLjAwNTQzNiwgMC4wMDU0MzgsIDAuMDA1NDM4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1MjM2LCAwLjAwNTI0NiwgMC4wMDUyNiwgMC4wMDUyNjIsIDAuMDA1MjY0LCAwLjAwNTI2NiwgMC4wMDUyNjYiLCBcCi0gICAgICAgICAgIjAuMDA1MjI3LCAwLjAwNTIzNywgMC4wMDUyNTIsIDAuMDA1MjU0LCAwLjAwNTI1NiwgMC4wMDUyNTcsIDAuMDA1MjU4IiwgXAotICAgICAgICAgICIwLjAwNTI2MywgMC4wMDUyNzIsIDAuMDA1Mjg3LCAwLjAwNTI4OSwgMC4wMDUyOTIsIDAuMDA1MjkyLCAwLjAwNTI5MyIsIFwKLSAgICAgICAgICAiMC4wMDUzMTcsIDAuMDA1MzI3LCAwLjAwNTM0MiwgMC4wMDUzNDQsIDAuMDA1MzQ2LCAwLjAwNTM0NywgMC4wMDUzNSIsIFwKLSAgICAgICAgICAiMC4wMDUzODgsIDAuMDA1Mzk4LCAwLjAwNTQxMSwgMC4wMDU0MTQsIDAuMDA1NDE2LCAwLjAwNTQxNywgMC4wMDU0MTgiLCBcCi0gICAgICAgICAgIjAuMDA1NTA0LCAwLjAwNTUxNCwgMC4wMDU1MjcsIDAuMDA1NTMsIDAuMDA1NTIzLCAwLjAwNTUzMywgMC4wMDU1MzMiLCBcCi0gICAgICAgICAgIjAuMDA1NTgzLCAwLjAwNTU5LCAwLjAwNTYwNCwgMC4wMDU2MDYsIDAuMDA1NjA5LCAwLjAwNTYxMSwgMC4wMDU2MTEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1Njc0LCAwLjAwNTY4MywgMC4wMDU2OTgsIDAuMDA1NzAxLCAwLjAwNTcwMiwgMC4wMDU3MDYsIDAuMDA1NzA2IiwgXAotICAgICAgICAgICIwLjAwNTY2MiwgMC4wMDU2NzEsIDAuMDA1Njg1LCAwLjAwNTY4OCwgMC4wMDU2OSwgMC4wMDU2OTUsIDAuMDA1Njk2IiwgXAotICAgICAgICAgICIwLjAwNTY3LCAwLjAwNTY4LCAwLjAwNTY5NSwgMC4wMDU2OTgsIDAuMDA1NzAxLCAwLjAwNTcwMywgMC4wMDU3MDEiLCBcCi0gICAgICAgICAgIjAuMDA1Njk5LCAwLjAwNTcwOSwgMC4wMDU3MjQsIDAuMDA1NzI3LCAwLjAwNTcyOSwgMC4wMDU3MzIsIDAuMDA1NzMxIiwgXAotICAgICAgICAgICIwLjAwNTc0MiwgMC4wMDU3NTIsIDAuMDA1NzY3LCAwLjAwNTc3MSwgMC4wMDU3NzIsIDAuMDA1Nzc0LCAwLjAwNTc3NSIsIFwKLSAgICAgICAgICAiMC4wMDU4MTEsIDAuMDA1ODIxLCAwLjAwNTgzNywgMC4wMDU4NCwgMC4wMDU4NDIsIDAuMDA1ODQ0LCAwLjAwNTg0NCIsIFwKLSAgICAgICAgICAiMC4wMDU5MSwgMC4wMDU5MTgsIDAuMDA1OTM1LCAwLjAwNTkzOSwgMC4wMDU5NDEsIDAuMDA1OTQyLCAwLjAwNTk0MyIpOwotICAgICAgfQotICAgICAgcmlzZV9wb3dlcihzY2FsYXIpIHsKLSAgICAgICAgdmFsdWVzKCIwIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTRSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxMzg4ODM7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxMzg4ODM7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxMzg4MjU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA1MjI1LCAwLjAwNTI0NSwgMC4wMDUzMzIsIDAuMDA1NDQ4LCAwLjAwNTYwMywgMC4wMDU4MjcsIDAuMDA2MDI3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA2OTY5LCAwLjAwNjk5OCwgMC4wMDcxMjMsIDAuMDA3MjkyLCAwLjAwNzUwOSwgMC4wMDc4ODUsIDAuMDA4MjIyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlNOIjsKLSAgICAgIHNkZl9jb25kIDogIlNOID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAxODc1LCAtMC4wMTM3NSwgLTAuMDAxMjUsIDAuMDA1LCAwLjAwNSwgMC4wMTUsIDAuMDE3NSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMCwgMC4wMDM3NSwgMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIC0wLjAwMjUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMTI1LCAtMC4wMDI1LCAwIiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwODc1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDQ2MjUsIC0wLjAzNSwgLTAuMDI4NzUsIC0wLjAyMjUsIC0wLjAxNjI1LCAtMC4wMTI1LCAtMC4wMSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTUsIC0wLjAxMjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMDYyNSwgLTAuMDAxMjUsIDAuMDA1LCAwLjAxMTI1LCAwLjAxNzUsIDAuMDIxMjUsIDAuMDIzNzUiLCBcCi0gICAgICAgICAgIi0wLjAxNzUsIC0wLjAwNjI1LCAwLCAwLjAwNjI1LCAwLjAwNjI1LCAwLjAxNjI1LCAwLjAxODc1IiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLCAwLjAwMzc1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgLTAuMDAyNSwgMCIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDg3NSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA0NjI1LCAtMC4wNDEyNSwgLTAuMDM1LCAtMC4wMjg3NSwgLTAuMDIyNSwgLTAuMDE4NzUsIC0wLjAxNjI1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMzEyNSwgLTAuMDIxMjUsIC0wLjAxODc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJTTiA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjI1LCAwLjA1NzUsIDAuMDQ1LCAwLjAzODc1LCAwLjAzMjUsIDAuMDI4NzUsIDAuMDI2MjUiLCBcCi0gICAgICAgICAgIjAuMDczNzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNSwgMC4wNDM3NSwgMC4wMzM3NSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4wOCwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1LCAwLjA0NjI1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjA4LCAwLjA3NSwgMC4wNjI1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDUyNSwgMC4wNSIsIFwKLSAgICAgICAgICAiMC4wODYyNSwgMC4wODEyNSwgMC4wNzUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNTg3NSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiMC4wOTYyNSwgMC4wOTEyNSwgMC4wODUsIDAuMDc4NzUsIDAuMDcyNSwgMC4wNjg3NSwgMC4wNjYyNSIsIFwKLSAgICAgICAgICAiMC4xMDUsIDAuMSwgMC4wODc1LCAwLjA4NzUsIDAuMDgxMjUsIDAuMDc3NSwgMC4wNzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjI1LCAwLjA1NzUsIDAuMDUxMjUsIDAuMDQ1LCAwLjA0NSwgMC4wMzUsIDAuMDMyNSIsIFwKLSAgICAgICAgICAiMC4wNzM3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1LCAwLjA1LCAwLjA0NjI1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjA4LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDU2MjUsIDAuMDUyNSwgMC4wNSIsIFwKLSAgICAgICAgICAiMC4wOCwgMC4wNzUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNTI1LCAwLjA1IiwgXAotICAgICAgICAgICIwLjA4NjI1LCAwLjA4MTI1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDYyNSwgMC4wNTg3NSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiMC4wOTYyNSwgMC4wOTEyNSwgMC4wNzg3NSwgMC4wNzI1LCAwLjA2NjI1LCAwLjA2MjUsIDAuMDYiLCBcCi0gICAgICAgICAgIjAuMTA1LCAwLjEsIDAuMDg3NSwgMC4wODEyNSwgMC4wNzUsIDAuMDcxMjUsIDAuMDYyNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oU0kpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDcyNDk0MzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA3MjM5NTY7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNzI0OTQzOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzc4OCwgMC4wMDM3NjcsIDAuMDAzNzkzLCAwLjAwMzgyOSwgMC4wMDM5MDQsIDAuMDA0MDEyLCAwLjAwNDEzNCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNTc0NywgMC4wMDU3MzIsIDAuMDA1NzUxLCAwLjAwNTc5NCwgMC4wMDU4NDcsIDAuMDA1OTU5LCAwLjAwNjA3OCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJTRSZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJTRV9FUV8xX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDMxMjUsIC0wLjAyNjI1LCAtMC4wMiwgLTAuMDIsIC0wLjAxMzc1LCAtMC4wMSwgLTAuMDA3NSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxNSwgLTAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDM3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAzMTI1LCAtMC4wMjc1LCAtMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wNDM3NSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzNzUsIC0wLjAzMzc1LCAtMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wNDM3NSwgLTAuMDQsIC0wLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjA2NSwgLTAuMDYsIC0wLjA1Mzc1LCAtMC4wNTM3NSwgLTAuMDQ3NSwgLTAuMDQzNzUsIC0wLjA0MTI1IiwgXAotICAgICAgICAgICItMC4wNjc1LCAtMC4wNjI1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDU2MjUsIC0wLjA1MjUsIC0wLjA1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDEyNSwgLTAuMDA3NSwgLTAuMDAxMjUsIDAuMDA1LCAwLjAxMTI1LCAwLjAxNSwgMC4wMjM3NSIsIFwKLSAgICAgICAgICAiLTAuMDE3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAsIDAuMDA2MjUsIDAuMDEsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAsIDAuMDAzNzUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAtMC4wMDI1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDMxMjUsIC0wLjAxODc1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDAyNSwgMCIsIFwKLSAgICAgICAgICAiLTAuMDQsIC0wLjAzNSwgLTAuMDI4NzUsIC0wLjAyMjUsIC0wLjAxNjI1LCAtMC4wMTI1LCAtMC4wMSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAyNSwgLTAuMDE1LCAtMC4wMTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJTRSZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJTRV9FUV8xX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU2MjUsIDAuMDUxMjUsIDAuMDQ1LCAwLjAzODc1LCAwLjAzMjUsIDAuMDI4NzUsIDAuMDI2MjUiLCBcCi0gICAgICAgICAgIjAuMDYxMjUsIDAuMDU2MjUsIDAuMDUsIDAuMDQzNzUsIDAuMDQzNzUsIDAuMDQsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMDczNzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNSwgMC4wNSwgMC4wNDYyNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4wOCwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1NjI1LCAwLjA1MjUsIDAuMDUiLCBcCi0gICAgICAgICAgIjAuMDg2MjUsIDAuMDc1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDYyNSwgMC4wNTg3NSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiMC4wOTYyNSwgMC4wODUsIDAuMDc4NzUsIDAuMDcyNSwgMC4wNzI1LCAwLjA2ODc1LCAwLjA2NjI1IiwgXAotICAgICAgICAgICIwLjA5ODc1LCAwLjA5Mzc1LCAwLjA4NzUsIDAuMDgxMjUsIDAuMDc1LCAwLjA3MTI1LCAwLjA2ODc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDYyNSwgMC4wNTEyNSwgMC4wNDUsIDAuMDM4NzUsIDAuMDMyNSwgMC4wMjI1LCAwLjAyIiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDU2MjUsIDAuMDUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMjc1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiMC4wNzM3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1LCAwLjA0Mzc1LCAwLjAzMzc1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICIwLjA4LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDUsIDAuMDQsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiMC4wODYyNSwgMC4wNzUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNDYyNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4wOSwgMC4wODUsIDAuMDcyNSwgMC4wNjYyNSwgMC4wNiwgMC4wNTYyNSwgMC4wNDc1IiwgXAotICAgICAgICAgICIwLjA5ODc1LCAwLjA4NzUsIDAuMDgxMjUsIDAuMDc1LCAwLjA2ODc1LCAwLjA1ODc1LCAwLjA1NjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTTikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNTI5MjI7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNDI5NDE7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNTI5MjI7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNTkzLCAwLjAwMDU5MywgMC4wMDA1OTIsIDAuMDAwNTkyLCAwLjAwMDU5MiwgMC4wMDA1OTIsIDAuMDAwNTkyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNjE1LCAwLjAwMDYwMSwgMC4wMDA1OTcsIDAuMDAwNTk1LCAwLjAwMDU5MywgMC4wMDA1OTQsIDAuMDAwNTk0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRCYhU0UmIVNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9TRV9FUV8wX0FOX1NJX0VRXzAgPT0gMSdiMSI7Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4xMDU2NCwgMC4xMTM1ODYsIDAuMTIzMjcsIDAuMTMxNDIzLCAwLjEzNzkxNSwgMC4xNDY3MSwgMC4xNTI4OTkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiByZWNvdmVyeV9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEJiFTRSYhU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1NFX0VRXzBfQU5fU0lfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChyZWNvdmVyeV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDYyNSwgMC4wMDEyNSwgLTAuMDExMjUsIC0wLjAxNzUsIC0wLjAyMzc1LCAtMC4wMzM3NSwgLTAuMDM2MjUiLCBcCi0gICAgICAgICAgIjAuMDExMjUsIDAuMDA2MjUsIC0wLjAwNjI1LCAtMC4wMTI1LCAtMC4wMTg3NSwgLTAuMDI4NzUsIC0wLjAzMTI1IiwgXAotICAgICAgICAgICIwLjAyMzc1LCAwLjAxMjUsIDAsIC0wLjAwNjI1LCAtMC4wMTI1LCAtMC4wMTYyNSwgLTAuMDI1IiwgXAotICAgICAgICAgICIwLjAzLCAwLjAxODc1LCAwLjAxMjUsIDAsIC0wLjAwNjI1LCAtMC4wMSwgLTAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMDM2MjUsIDAuMDI1LCAwLjAxODc1LCAwLjAxMjUsIDAuMDA2MjUsIC0wLjAwMzc1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiMC4wNDYyNSwgMC4wMzUsIDAuMDI4NzUsIDAuMDIyNSwgMC4wMTYyNSwgMC4wMDYyNSwgMC4wMDM3NSIsIFwKLSAgICAgICAgICAiMC4wNTUsIDAuMDUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMjUsIDAuMDE1LCAwLjAxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiByZW1vdmFsX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUQmIVNFJiFTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fU0VfRVFfMF9BTl9TSV9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHJlbW92YWxfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE4NzUsIDAuMDMsIDAuMDM2MjUsIDAuMDQyNSwgMC4wNDg3NSwgMC4wNTg3NSwgMC4wNjEyNSIsIFwKLSAgICAgICAgICAiMC4wMTM3NSwgMC4wMTg3NSwgMC4wMzEyNSwgMC4wMzc1LCAwLjA0Mzc1LCAwLjA0NzUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIjAuMDA3NSwgMC4wMTI1LCAwLjAyNSwgMC4wMzEyNSwgMC4wMzc1LCAwLjA0MTI1LCAwLjA1IiwgXAotICAgICAgICAgICIwLjAwMTI1LCAwLjAwNjI1LCAwLjAxODc1LCAwLjAyNSwgMC4wMzEyNSwgMC4wMzUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIi0wLjAwNSwgMCwgMC4wMTI1LCAwLjAxODc1LCAwLjAyNSwgMC4wMjg3NSwgMC4wMzc1IiwgXAotICAgICAgICAgICItMC4wMTUsIC0wLjAwMzc1LCAwLjAwMjUsIDAuMDA4NzUsIDAuMDE1LCAwLjAyNSwgMC4wMjc1IiwgXAotICAgICAgICAgICItMC4wMTc1LCAtMC4wMTI1LCAwLCAwLjAwNjI1LCAwLjAxMjUsIDAuMDE2MjUsIDAuMDI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogU0RGRlNYTCAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChTREZGU1hMKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDEuMDgzMTg7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgZmYgKE4zNSxRQklOVCkgewotICAgIG5leHRfc3RhdGUgOiAiKChTRSBTSSkgKyAoIVNFIEQpKSI7Ci0gICAgY2xvY2tlZF9vbiA6ICJDSyI7Ci0gICAgcHJlc2V0IDogIighU04pIjsKLSAgfQotICBwaW4oQ0spICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY2OTQ0NjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2NjkyOTg7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjY5NDQ2OwotICAgIGNsb2NrIDogdHJ1ZTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDMyMDksIDAuMDAzMjEzLCAwLjAwMzI2OSwgMC4wMDMzNzgsIDAuMDAzNDg1LCAwLjAwMzcwNiwgMC4wMDM5MTEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDgxNDUsIDAuMDA4MTQ4LCAwLjAwODI0NCwgMC4wMDgzNDcsIDAuMDA4NDk1LCAwLjAwODc2LCAwLjAwODk5NiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQmIVNFJiFTSSZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fU0VfRVFfMF9BTl9TSV9FUV8wX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4xMzk1NSwgMC4xNDc3NDgsIDAuMTU2NTk1LCAwLjE2MzY4OCwgMC4xNjkyNCwgMC4xNzY3MjUsIDAuMTgyMzE4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wNzQ4NDcsIDAuMDgyOTY3LCAwLjA5MTkyNSwgMC4wOTg3MTMsIDAuMTA0MTgzLCAwLjExMTE4MSwgMC4xMTY0NTUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEQpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY0ODEyNjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2NDc3MDY7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjQ4MTI2OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNDA2NCwgMC4wMDQwMzksIDAuMDA0MDU4LCAwLjAwNDEwMiwgMC4wMDQxNTksIDAuMDA0MjYzLCAwLjAwNDM3OSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNTcxNSwgMC4wMDU2OTksIDAuMDA1NzE4LCAwLjAwNTc2MSwgMC4wMDU4MTksIDAuMDA1OTIzLCAwLjAwNjA0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFTRSZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJTRV9FUV8wX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDMxMjUsIC0wLjAyNjI1LCAtMC4wMiwgLTAuMDIsIC0wLjAxMzc1LCAtMC4wMSwgLTAuMDA3NSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAzMTI1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMjUsIC0wLjAyMTI1LCAtMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjAzNzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMzEyNSwgLTAuMDI3NSwgLTAuMDI1IiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDM3NSwgLTAuMDMzNzUsIC0wLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjA0Mzc1LCAtMC4wNCwgLTAuMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDY1LCAtMC4wNiwgLTAuMDYsIC0wLjA1Mzc1LCAtMC4wNTM3NSwgLTAuMDUsIC0wLjA0NzUiLCBcCi0gICAgICAgICAgIi0wLjA3Mzc1LCAtMC4wNjg3NSwgLTAuMDYyNSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA1MjUsIC0wLjA1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDEyNSwgLTAuMDA3NSwgLTAuMDAxMjUsIDAuMDA1LCAwLjAxMTI1LCAwLjAxNSwgMC4wMTc1IiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAsIDAuMDA2MjUsIDAuMDEsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgLTAuMDA2MjUsIDAuMDAzNzUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgLTAuMDAyNSwgMCIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDg3NSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA0NjI1LCAtMC4wMzUsIC0wLjAyODc1LCAtMC4wMjI1LCAtMC4wMjI1LCAtMC4wMTI1LCAtMC4wMSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMjEyNSwgLTAuMDE4NzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFTRSZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJTRV9FUV8wX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU2MjUsIDAuMDUxMjUsIDAuMDQ1LCAwLjAzODc1LCAwLjAzODc1LCAwLjAzNSwgMC4wMjYyNSIsIFwKLSAgICAgICAgICAiMC4wNjc1LCAwLjA1NjI1LCAwLjA1LCAwLjA0Mzc1LCAwLjA0Mzc1LCAwLjA0LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIjAuMDczNzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNTYyNSwgMC4wNSwgMC4wNDYyNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4wOCwgMC4wNjg3NSwgMC4wNjI1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDUyNSwgMC4wNSIsIFwKLSAgICAgICAgICAiMC4wODYyNSwgMC4wNzUsIDAuMDY4NzUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNTg3NSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiMC4wOTYyNSwgMC4wODUsIDAuMDc4NzUsIDAuMDcyNSwgMC4wNzI1LCAwLjA2ODc1LCAwLjA2NjI1IiwgXAotICAgICAgICAgICIwLjA5ODc1LCAwLjA5Mzc1LCAwLjA4NzUsIDAuMDgxMjUsIDAuMDgxMjUsIDAuMDc3NSwgMC4wNzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjI1LCAwLjA1MTI1LCAwLjA0NSwgMC4wMzg3NSwgMC4wMzI1LCAwLjAyMjUsIDAuMDIiLCBcCi0gICAgICAgICAgIjAuMDY3NSwgMC4wNTYyNSwgMC4wNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzMzc1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiMC4wNzM3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1LCAwLjA0Mzc1LCAwLjA0LCAwLjAzMTI1IiwgXAotICAgICAgICAgICIwLjA4LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDUsIDAuMDQ2MjUsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiMC4wODYyNSwgMC4wNzUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNTI1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjA5NjI1LCAwLjA4NSwgMC4wNzg3NSwgMC4wNjYyNSwgMC4wNjYyNSwgMC4wNTYyNSwgMC4wNTM3NSIsIFwKLSAgICAgICAgICAiMC4wOTg3NSwgMC4wOTM3NSwgMC4wODEyNSwgMC4wNzUsIDAuMDY4NzUsIDAuMDY1LCAwLjA1NjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihRKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMjAxNTk0OwotICAgIGZ1bmN0aW9uIDogIk4zNSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3NlbnNlIDogbm9uX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiByaXNpbmdfZWRnZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTE3OTA3LCAwLjEyODQzOCwgMC4yMjMzMzIsIDAuMzgxOTAxLCAwLjU0MDMxNSwgMC45MDgzMTgsIDEuMTE3NDkiLCBcCi0gICAgICAgICAgIjAuMTI2MDY4LCAwLjEzNjU5MiwgMC4yMzEyOCwgMC4zOTAwNDcsIDAuNTQ4NDUxLCAwLjkxODE4MiwgMS4xMjU2NCIsIFwKLSAgICAgICAgICAiMC4xMzQ4OTYsIDAuMTQ1NDUzLCAwLjI0MDMwNiwgMC4zOTgzMjEsIDAuNTU3MzEyLCAwLjkyNTU2NCwgMS4xMzQ0OSIsIFwKLSAgICAgICAgICAiMC4xNDE4OTIsIDAuMTUyNDE2LCAwLjI0NzE5NSwgMC40MDQ5MjcsIDAuNTY0MjkxLCAwLjkzMzk2NiwgMS4xNDE0NyIsIFwKLSAgICAgICAgICAiMC4xNDc0LCAwLjE1NzkyMiwgMC4yNTI3MDIsIDAuNDEwNDM5LCAwLjU2OTc1NiwgMC45MzY0NzEsIDEuMTQ2OTkiLCBcCi0gICAgICAgICAgIjAuMTU0ODIxLCAwLjE2NTM5MywgMC4yNjAyNDYsIDAuNDE4NjQ4LCAwLjU3NzA0MSwgMC45NDM5ODIsIDEuMTU4MzEiLCBcCi0gICAgICAgICAgIjAuMTYwMjM4LCAwLjE3MDg2NiwgMC4yNjU3MDksIDAuNDIzNDM1LCAwLjU4MjY2LCAwLjk0OTQ4OSwgMS4xNjE4NiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTczNywgMC4xMzk0MjksIDAuMzM4ODUxLCAwLjY3MjMxMywgMS4wMDU4MywgMS43ODQyNywgMi4yMjY3MiIsIFwKLSAgICAgICAgICAiMC4xMTc0MTksIDAuMTM5MzI4LCAwLjMzODQ0MSwgMC42NzIyNjUsIDEuMDA1NjYsIDEuNzgzMjcsIDIuMjI1NjYiLCBcCi0gICAgICAgICAgIjAuMTE3Mzc0LCAwLjEzOTQ0OCwgMC4zMzg4NDUsIDAuNjcyODU5LCAxLjAwNjQ2LCAxLjc4Mzk2LCAyLjIyNjI5IiwgXAotICAgICAgICAgICIwLjExNzQwMiwgMC4xMzk0MzQsIDAuMzM5MTA1LCAwLjY3MDI2OSwgMS4wMDYwOCwgMS43ODQxLCAyLjIyNjI0IiwgXAotICAgICAgICAgICIwLjExNzQxLCAwLjEzOTQyOSwgMC4zMzkxNTIsIDAuNjcxMTcxLCAxLjAwNjUyLCAxLjc4MDI5LCAyLjIyNjc3IiwgXAotICAgICAgICAgICIwLjExNzMyMywgMC4xMzkzMTcsIDAuMzM5MDI5LCAwLjY3MjgxMiwgMS4wMDY1OSwgMS43ODI0OCwgMi4yMjk0MiIsIFwKLSAgICAgICAgICAiMC4xMTcyMzgsIDAuMTM5MjIxLCAwLjMzODg4MiwgMC42NzEwMDksIDEuMDA2NDksIDEuNzgwNjUsIDIuMjI3NyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMjc1OCwgMC4xMzczNSwgMC4yMjQzODcsIDAuMzY4ODg3LCAwLjUxNDI0OSwgMC44NTI3NjksIDEuMDQ1NzEiLCBcCi0gICAgICAgICAgIjAuMTM1NzksIDAuMTQ1NDQ2LCAwLjIzMjM3MywgMC4zNzcwMTksIDAuNTIyNzM3LCAwLjg2MTAyNSwgMS4wNTQzOCIsIFwKLSAgICAgICAgICAiMC4xNDQ2MjYsIDAuMTU0Mjc0LCAwLjI0MTM4OSwgMC4zODU5MzksIDAuNTMwNjA2LCAwLjg2OTI4LCAxLjA2MzQ3IiwgXAotICAgICAgICAgICIwLjE1MTczNiwgMC4xNjEzOTUsIDAuMjQ4NTQ2LCAwLjM5MzAwMiwgMC41Mzc5NDgsIDAuODc2ODcsIDEuMDY5NzQiLCBcCi0gICAgICAgICAgIjAuMTU3Mjg3LCAwLjE2NjkzOCwgMC4yNTQwNDMsIDAuMzk4NTcyLCAwLjU0MzM5MSwgMC44ODIxMzgsIDEuMDc1NzYiLCBcCi0gICAgICAgICAgIjAuMTY0NzQzLCAwLjE3NDUzMSwgMC4yNjE1MzgsIDAuNDA2ODA1LCAwLjU1MTMzMywgMC44ODk1MTksIDEuMDgzNTUiLCBcCi0gICAgICAgICAgIjAuMTcwMzUzLCAwLjE3OTk5OSwgMC4yNjcxNDEsIDAuNDEyNjIsIDAuNTU3NTM4LCAwLjg5NjAyNiwgMS4wODg2NyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDY3NjIsIDAuMTI2NDQyLCAwLjMwNTIwNiwgMC42MDAzNjQsIDAuOTAzOTM2LCAxLjYwMjY3LCAxLjk4NzUxIiwgXAotICAgICAgICAgICIwLjEwNjg0NiwgMC4xMjYyNjgsIDAuMzAzMTA0LCAwLjYwMTUxLCAwLjkwMzcyMywgMS42MDIzNCwgMS45OTk0MiIsIFwKLSAgICAgICAgICAiMC4xMDY3MiwgMC4xMjY0NTQsIDAuMzA1MjA5LCAwLjYwMDA1NywgMC44OTk0MjEsIDEuNTg5MDYsIDIuMDAxMzciLCBcCi0gICAgICAgICAgIjAuMTA2ODUzLCAwLjEyNjQzMywgMC4zMDUxOSwgMC42MDA4MDIsIDAuOTAyMTQ1LCAxLjYwMDMsIDEuOTg0NzQiLCBcCi0gICAgICAgICAgIjAuMTA2NzcsIDAuMTI2NDM5LCAwLjMwNTIxNSwgMC42MDA0MjEsIDAuODk3NzkxLCAxLjYwMjczLCAxLjk5NzgyIiwgXAotICAgICAgICAgICIwLjEwNjgwMywgMC4xMjU2NDMsIDAuMzA1MTUzLCAwLjYwNDQ3NywgMC45MDExMTUsIDEuNTg5MzEsIDIuMDAxNDIiLCBcCi0gICAgICAgICAgIjAuMTA2NTcyLCAwLjEyNTU2OSwgMC4zMDUxNCwgMC42MDM4NDMsIDAuOTAzNjQ2LCAxLjYwMjExLCAxLjk5MjY5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiBwcmVzZXQ7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExNTA4MSwgMC4xMjU1NjgsIDAuMjIwMzAzLCAwLjM3OTAyMSwgMC41Mzc0MzcsIDAuOTA0MTYsIDEuMTE0NjMiLCBcCi0gICAgICAgICAgIjAuMTIyOTk4LCAwLjEzMzQ3NiwgMC4yMjgxOTQsIDAuMzg2ODg3LCAwLjU0NTMyNCwgMC45MTIyMTYsIDEuMTIyMzgiLCBcCi0gICAgICAgICAgIjAuMTMyNjk3LCAwLjE0MzI2MSwgMC4yMzgxNTQsIDAuMzk2NjU4LCAwLjU1NTEwNiwgMC45MjQ5MjYsIDEuMTMyNDciLCBcCi0gICAgICAgICAgIjAuMTQwODc4LCAwLjE1MTQyOCwgMC4yNDYzMjIsIDAuNDA0ODMyLCAwLjU2MzI5NCwgMC45MzE0OSwgMS4xNDA3NyIsIFwKLSAgICAgICAgICAiMC4xNDc2MjksIDAuMTU4MjE4LCAwLjI1MzA5NCwgMC40MTE1OTgsIDAuNTcwMDQzLCAwLjkzNjgxOCwgMS4xNTEyOCIsIFwKLSAgICAgICAgICAiMC4xNTYzNzQsIDAuMTY2OTE5LCAwLjI2MTg2LCAwLjQxOTUsIDAuNTc4NzY0LCAwLjk0ODYzNywgMS4xNTYyNSIsIFwKLSAgICAgICAgICAiMC4xNjI1NjYsIDAuMTczMDM0LCAwLjI2Nzk4LCAwLjQyNjA5NiwgMC41ODUwNTUsIDAuOTUxNzIxLCAxLjE2NTcyIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExNzM5LCAwLjEzOTQsIDAuMzM4OTM3LCAwLjY3MjE5MSwgMS4wMDU1MiwgMS43ODE2NSwgMi4yMjY0NCIsIFwKLSAgICAgICAgICAiMC4xMTczNzUsIDAuMTM5NDA0LCAwLjMzODkzMSwgMC42NzI0OTgsIDEuMDA1NTUsIDEuNzgyNDUsIDIuMjI0NzMiLCBcCi0gICAgICAgICAgIjAuMTE3MzQyLCAwLjEzOTQwOCwgMC4zMzg3MDQsIDAuNjcyNTk5LCAxLjAwNTc4LCAxLjc4MzgzLCAyLjIyODYyIiwgXAotICAgICAgICAgICIwLjExNzM1LCAwLjEzOTQxNCwgMC4zMzkwNjUsIDAuNjcyNTMsIDEuMDA1OTcsIDEuNzgzMTcsIDIuMjIzNDYiLCBcCi0gICAgICAgICAgIjAuMTE3Mzk5LCAwLjEzOTQzMSwgMC4zMzkwNjEsIDAuNjcyNzc5LCAxLjAwNjU0LCAxLjc4NDkyLCAyLjIyOTM5IiwgXAotICAgICAgICAgICIwLjExNzM2NiwgMC4xMzkzNTcsIDAuMzM5MTk5LCAwLjY3MTYsIDEuMDA2NTgsIDEuNzg0NzgsIDIuMjMwMDYiLCBcCi0gICAgICAgICAgIjAuMTE3MzA3LCAwLjEzOTIxNiwgMC4zMzg5OTYsIDAuNjcyNjY5LCAxLjAwNjI1LCAxLjc4NTM2LCAyLjIzMDM0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDc2OCwgMC4wMDQ3NywgMC4wMDQ3NzUsIDAuMDA0Nzc3LCAwLjAwNDc3OCwgMC4wMDQ3NzgsIDAuMDA0Nzc4IiwgXAotICAgICAgICAgICIwLjAwNDc2MSwgMC4wMDQ3NjIsIDAuMDA0NzY3LCAwLjAwNDc2OSwgMC4wMDQ3NywgMC4wMDQ3NywgMC4wMDQ3NyIsIFwKLSAgICAgICAgICAiMC4wMDQ4MSwgMC4wMDQ4MTIsIDAuMDA0ODE3LCAwLjAwNDgxOSwgMC4wMDQ4MiwgMC4wMDQ4MiwgMC4wMDQ4MiIsIFwKLSAgICAgICAgICAiMC4wMDQ4NTMsIDAuMDA0ODU0LCAwLjAwNDg1OSwgMC4wMDQ4NjEsIDAuMDA0ODYyLCAwLjAwNDg2MiwgMC4wMDQ4NjIiLCBcCi0gICAgICAgICAgIjAuMDA0OTIzLCAwLjAwNDkyNSwgMC4wMDQ5MywgMC4wMDQ5MzEsIDAuMDA0OTMzLCAwLjAwNDkzMywgMC4wMDQ5MzMiLCBcCi0gICAgICAgICAgIjAuMDA1MDE2LCAwLjAwNTAxNywgMC4wMDUwMzUsIDAuMDA1MDI0LCAwLjAwNTAyNSwgMC4wMDUwMjUsIDAuMDA1MDI2IiwgXAotICAgICAgICAgICIwLjAwNTExMywgMC4wMDUxMTcsIDAuMDA1MTIxLCAwLjAwNTEyMiwgMC4wMDUxMjMsIDAuMDA1MTI0LCAwLjAwNTEyNCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDM5NSwgMC4wMDQzOTcsIDAuMDA0NDAyLCAwLjAwNDQwNCwgMC4wMDQ0MDUsIDAuMDA0NDA2LCAwLjAwNDQwNiIsIFwKLSAgICAgICAgICAiMC4wMDQzOTMsIDAuMDA0Mzk1LCAwLjAwNDQwMSwgMC4wMDQ0MDMsIDAuMDA0NDAzLCAwLjAwNDQwNCwgMC4wMDQ0MDQiLCBcCi0gICAgICAgICAgIjAuMDA0NDUsIDAuMDA0NDUyLCAwLjAwNDQ1NywgMC4wMDQ0NiwgMC4wMDQ0NiwgMC4wMDQ0NjEsIDAuMDA0NDYyIiwgXAotICAgICAgICAgICIwLjAwNDUwMSwgMC4wMDQ1MDMsIDAuMDA0NTA4LCAwLjAwNDUxMSwgMC4wMDQ1MTEsIDAuMDA0NTEzLCAwLjAwNDUxMiIsIFwKLSAgICAgICAgICAiMC4wMDQ1NzcsIDAuMDA0NTc5LCAwLjAwNDU4NCwgMC4wMDQ1ODYsIDAuMDA0NTg3LCAwLjAwNDU4OCwgMC4wMDQ1ODkiLCBcCi0gICAgICAgICAgIjAuMDA0Njk3LCAwLjAwNDY5OSwgMC4wMDQ3MDQsIDAuMDA0NzA2LCAwLjAwNDcwNywgMC4wMDQ3MDgsIDAuMDA0NzA4IiwgXAotICAgICAgICAgICIwLjAwNDc4NSwgMC4wMDQ3ODgsIDAuMDA0NzkyLCAwLjAwNDc5NSwgMC4wMDQ3OTMsIDAuMDA0Nzk3LCAwLjAwNDc5NyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDUyNTEsIDAuMDA1MjUzLCAwLjAwNTI1OCwgMC4wMDUyNiwgMC4wMDUyNjEsIDAuMDA1MjYyLCAwLjAwNTI2MiIsIFwKLSAgICAgICAgICAiMC4wMDUyNDEsIDAuMDA1MjQyLCAwLjAwNTI0OCwgMC4wMDUyNSwgMC4wMDUyNSwgMC4wMDUyNTEsIDAuMDA1MjUyIiwgXAotICAgICAgICAgICIwLjAwNTI0OSwgMC4wMDUyNTEsIDAuMDA1MjU2LCAwLjAwNTI1OCwgMC4wMDUyNTksIDAuMDA1MjYyLCAwLjAwNTI2IiwgXAotICAgICAgICAgICIwLjAwNTI4LCAwLjAwNTI4MSwgMC4wMDUyODcsIDAuMDA1Mjg5LCAwLjAwNTI4OSwgMC4wMDUyOSwgMC4wMDUyOSIsIFwKLSAgICAgICAgICAiMC4wMDUzMTksIDAuMDA1MzIsIDAuMDA1MzI2LCAwLjAwNTMyOCwgMC4wMDUzMjksIDAuMDA1MzMsIDAuMDA1MzMiLCBcCi0gICAgICAgICAgIjAuMDA1MzkzLCAwLjAwNTM5NiwgMC4wMDU0MDIsIDAuMDA1NDA0LCAwLjAwNTQwNSwgMC4wMDU0MDYsIDAuMDA1NDA1IiwgXAotICAgICAgICAgICIwLjAwNTQ5NCwgMC4wMDU0OTMsIDAuMDA1NSwgMC4wMDU1MDMsIDAuMDA1NTA0LCAwLjAwNTUwNSwgMC4wMDU1MDUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoc2NhbGFyKSB7Ci0gICAgICAgIHZhbHVlcygiMCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUU4pICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4yMDM0MTY7Ci0gICAgZnVuY3Rpb24gOiAiUUJJTlQiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5vbl91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcmlzaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEzOTU1LCAwLjE1MDIwNiwgMC4yNDYxMDUsIDAuNDA1OTE0LCAwLjU2NTcyMywgMC45Mzg2NjgsIDEuMTUxNzMiLCBcCi0gICAgICAgICAgIjAuMTQ3NzQ4LCAwLjE1ODQwMSwgMC4yNTQyODYsIDAuNDE0MTE4LCAwLjU3Mzk2NCwgMC45NDY4NDksIDEuMTU5OTciLCBcCi0gICAgICAgICAgIjAuMTU2NTk1LCAwLjE2NzI0OSwgMC4yNjMxNDgsIDAuNDIyOTU5LCAwLjU4Mjc1NSwgMC45NTU2NjcsIDEuMTY4ODMiLCBcCi0gICAgICAgICAgIjAuMTYzNjg5LCAwLjE3NDM0NSwgMC4yNzAyNDQsIDAuNDMwMDUzLCAwLjU4OTg2MSwgMC45NjI4MDEsIDEuMTc1ODUiLCBcCi0gICAgICAgICAgIjAuMTY5MjQxLCAwLjE3OTg5NSwgMC4yNzU3OTMsIDAuNDM1NjA3LCAwLjU5NTQsIDAuOTY4MjY2LCAxLjE4MTQ2IiwgXAotICAgICAgICAgICIwLjE3NjcyNSwgMC4xODczNzIsIDAuMjgzMjczLCAwLjQ0MzEyNywgMC42MDI5MSwgMC45NzU3ODcsIDEuMTg4OTQiLCBcCi0gICAgICAgICAgIjAuMTgyMzIsIDAuMTkyOTY2LCAwLjI4ODg3MSwgMC40NDg3NzIsIDAuNjA4NTEsIDAuOTgxNDkzLCAxLjE5NDUxIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExNzYzMSwgMC4xMzk5MzIsIDAuMzQxMTM4LCAwLjY3NTc1MSwgMS4wMTE1LCAxLjc5MzcsIDIuMjM3OSIsIFwKLSAgICAgICAgICAiMC4xMTc2MzMsIDAuMTM5OTI3LCAwLjM0MDg0OCwgMC42NzU3OTIsIDEuMDExNDgsIDEuNzkzNjQsIDIuMjM2ODEiLCBcCi0gICAgICAgICAgIjAuMTE3NjMxLCAwLjEzOTkzNCwgMC4zNDExNDUsIDAuNjc1NzQ1LCAxLjAxMDY4LCAxLjc5MTE4LCAyLjI0MDYiLCBcCi0gICAgICAgICAgIjAuMTE3NjMyLCAwLjEzOTkzOCwgMC4zNDExMjcsIDAuNjc1NzY0LCAxLjAxMDgyLCAxLjc5MTIzLCAyLjIzNzc1IiwgXAotICAgICAgICAgICIwLjExNzYzMiwgMC4xMzk5MzMsIDAuMzQxMTU1LCAwLjY3NTc1MywgMS4wMTA2MywgMS43OTM3MSwgMi4yMzc5MiIsIFwKLSAgICAgICAgICAiMC4xMTc2NDMsIDAuMTM5OTIzLCAwLjM0MTExNywgMC42NzYzNzQsIDEuMDEwMDUsIDEuNzkxMzksIDIuMjQwNTkiLCBcCi0gICAgICAgICAgIjAuMTE3NTk4LCAwLjEzOTkyOCwgMC4zNDExMTMsIDAuNjc1Nzk0LCAxLjAxMTUyLCAxLjc5MzY2LCAyLjIzODIyIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEyMjIwNCwgMC4xMzE5NDgsIDAuMjE5NjIsIDAuMzY1NzU3LCAwLjUxMTg3OCwgMC44NTI4MzksIDEuMDQ3NyIsIFwKLSAgICAgICAgICAiMC4xMzAzNiwgMC4xNDAxMDMsIDAuMjI3NzQ4LCAwLjM3MzkyNiwgMC41MjAwNTMsIDAuODYwOTYzLCAxLjA1NTg0IiwgXAotICAgICAgICAgICIwLjEzOTIsIDAuMTQ4OTQ5LCAwLjIzNjYxNSwgMC4zODI3MzcsIDAuNTI4ODY1LCAwLjg2OTcwOSwgMS4wNjQ3IiwgXAotICAgICAgICAgICIwLjE0NjE5NywgMC4xNTU5NCwgMC4yNDM2MTMsIDAuMzg5NzcxLCAwLjUzNTg1NCwgMC44NzY4MjYsIDEuMDcxNjgiLCBcCi0gICAgICAgICAgIjAuMTUxNjcxLCAwLjE2MTQxNCwgMC4yNDkwODcsIDAuMzk1MjQ3LCAwLjU0MTMzNywgMC44ODIzMTUsIDEuMDc3MTciLCBcCi0gICAgICAgICAgIjAuMTU5MTM2LCAwLjE2ODg4MywgMC4yNTY1MjYsIDAuNDAyNzE0LCAwLjU0ODgyOSwgMC44ODk3ODMsIDEuMDg0NDEiLCBcCi0gICAgICAgICAgIjAuMTY0NTg4LCAwLjE3NDM1OCwgMC4yNjIwNDksIDAuNDA4MTM1LCAwLjU1NDI4MSwgMC44OTUyODIsIDEuMDg5OSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDUyMTQsIDAuMTI1MTMyLCAwLjMwNDgxNSwgMC42MDQ1NTIsIDAuOTA0MjQ3LCAxLjYwMjc2LCAxLjk5OTI3IiwgXAotICAgICAgICAgICIwLjEwNTIzMSwgMC4xMjUxNCwgMC4zMDQ0NjksIDAuNjA0NTg2LCAwLjkwNDMyNywgMS42MDM0NiwgMS45OTc4OCIsIFwKLSAgICAgICAgICAiMC4xMDUyMTQsIDAuMTI1MTYsIDAuMzA0NzkyLCAwLjYwNDI0NywgMC45MDQxOTUsIDEuNjAyNzYsIDEuOTk4OTIiLCBcCi0gICAgICAgICAgIjAuMTA1MjIyLCAwLjEyNTEzLCAwLjMwNDcyNiwgMC42MDMyNjQsIDAuOTA0MTYxLCAxLjYwMzYxLCAxLjk5Nzk4IiwgXAotICAgICAgICAgICIwLjEwNTIyMywgMC4xMjUxMjcsIDAuMzA0NzI4LCAwLjYwMzI2LCAwLjkwNDE3NywgMS41OTk5NSwgMS45OTkiLCBcCi0gICAgICAgICAgIjAuMTA1MTI2LCAwLjEyNTAxMiwgMC4zMDQ3OTksIDAuNjA0NTkxLCAwLjkwNDI3NiwgMS42MDA1MSwgMi4wMDIxNCIsIFwKLSAgICAgICAgICAiMC4xMDQ5ODgsIDAuMTI0OTQxLCAwLjMwNDc1MywgMC42MDM3ODMsIDAuOTA0MTM2LCAxLjYwMDA4LCAyLjAwMTkzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiBjbGVhcjsKLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTE5NDMsIDAuMTI5MTY3LCAwLjIxNjg1OCwgMC4zNjI5NDMsIDAuNTA5MTAxLCAwLjg1MDA4MiwgMS4wNDQ4MSIsIFwKLSAgICAgICAgICAiMC4xMjczNTcsIDAuMTM3MDkzLCAwLjIyNDc4OSwgMC4zNzA4OTIsIDAuNTE3MDMyLCAwLjg1NzkwMywgMS4wNTI3NCIsIFwKLSAgICAgICAgICAiMC4xMzcwNzksIDAuMTQ2ODMsIDAuMjM0NTE5LCAwLjM4MDYyNiwgMC41MjY3NDUsIDAuODY3NjAxLCAxLjA2MjQzIiwgXAotICAgICAgICAgICIwLjE0NTI4MywgMC4xNTUwMzEsIDAuMjQyNzExLCAwLjM4ODgzMiwgMC41MzQ5NDIsIDAuODc1NzgzLCAxLjA3MDYzIiwgXAotICAgICAgICAgICIwLjE1MTk3OCwgMC4xNjE3MzUsIDAuMjQ5NDE4LCAwLjM5NTUzMywgMC41NDE2NjUsIDAuODgyNjQ0LCAxLjA3NzI5IiwgXAotICAgICAgICAgICIwLjE2MDczNiwgMC4xNzA0ODUsIDAuMjU4MTc1LCAwLjQwNDI4MywgMC41NTA0MTcsIDAuODkxMjc0LCAxLjA4NjA5IiwgXAotICAgICAgICAgICIwLjE2Njg2NiwgMC4xNzY2MjIsIDAuMjY0Mjc1LCAwLjQxMDM4OSwgMC41NTY0NzUsIDAuODk3NDM2LCAxLjA5MjMzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwNTI1MSwgMC4xMjUxNDQsIDAuMzA0NDE3LCAwLjYwNDYxNiwgMC45MDQyNzgsIDEuNjAwOTUsIDIuMDAyNzIiLCBcCi0gICAgICAgICAgIjAuMTA1MjUsIDAuMTI1MTk2LCAwLjMwNDkxNSwgMC42MDQ3LCAwLjkwNDI3OSwgMS42MDM0MywgMi4wMDAyOSIsIFwKLSAgICAgICAgICAiMC4xMDUyMjMsIDAuMTI1MTgzLCAwLjMwNDkwMSwgMC42MDQ2OTEsIDAuOTA0MjU5LCAxLjYwMzQ4LCAyLjAwMjQzIiwgXAotICAgICAgICAgICIwLjEwNTIyMywgMC4xMjUxNzgsIDAuMzA0ODY2LCAwLjYwNDY4MSwgMC45MDQyMTQsIDEuNjAzNDIsIDIuMDAwMjQiLCBcCi0gICAgICAgICAgIjAuMTA1MjQ4LCAwLjEyNTE3OCwgMC4zMDQ4ODMsIDAuNjA0NTI3LCAwLjkwNDI5MywgMS42MDI5NiwgMi4wMDI2NCIsIFwKLSAgICAgICAgICAiMC4xMDUxODgsIDAuMTI1MTEsIDAuMzA0ODg1LCAwLjYwMzQ4NSwgMC45MDQyODIsIDEuNjAzMjMsIDIuMDAzMTMiLCBcCi0gICAgICAgICAgIjAuMTA1MDc1LCAwLjEyNDk1MiwgMC4zMDQ3ODUsIDAuNjA0MzQ1LCAwLjkwNDI0LCAxLjYwMzQ1LCAyLjAwMzMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0Mzk1LCAwLjAwNDM5NywgMC4wMDQ0MDIsIDAuMDA0NDA0LCAwLjAwNDQwNSwgMC4wMDQ0MDYsIDAuMDA0NDA2IiwgXAotICAgICAgICAgICIwLjAwNDM5MywgMC4wMDQzOTUsIDAuMDA0NDAxLCAwLjAwNDQwMywgMC4wMDQ0MDMsIDAuMDA0NDA0LCAwLjAwNDQwNCIsIFwKLSAgICAgICAgICAiMC4wMDQ0NSwgMC4wMDQ0NTIsIDAuMDA0NDU3LCAwLjAwNDQ2LCAwLjAwNDQ2LCAwLjAwNDQ2MSwgMC4wMDQ0NjIiLCBcCi0gICAgICAgICAgIjAuMDA0NTAxLCAwLjAwNDUwMywgMC4wMDQ1MDgsIDAuMDA0NTExLCAwLjAwNDUxMSwgMC4wMDQ1MTMsIDAuMDA0NTEyIiwgXAotICAgICAgICAgICIwLjAwNDU3NywgMC4wMDQ1NzksIDAuMDA0NTg0LCAwLjAwNDU4NiwgMC4wMDQ1ODcsIDAuMDA0NTg4LCAwLjAwNDU4OSIsIFwKLSAgICAgICAgICAiMC4wMDQ2OTcsIDAuMDA0Njk5LCAwLjAwNDcwNCwgMC4wMDQ3MDYsIDAuMDA0NzA3LCAwLjAwNDcwOCwgMC4wMDQ3MDgiLCBcCi0gICAgICAgICAgIjAuMDA0Nzg1LCAwLjAwNDc4OCwgMC4wMDQ3OTIsIDAuMDA0Nzk1LCAwLjAwNDc5MywgMC4wMDQ3OTcsIDAuMDA0Nzk3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0NzY4LCAwLjAwNDc3LCAwLjAwNDc3NSwgMC4wMDQ3NzcsIDAuMDA0Nzc4LCAwLjAwNDc3OCwgMC4wMDQ3NzgiLCBcCi0gICAgICAgICAgIjAuMDA0NzYxLCAwLjAwNDc2MiwgMC4wMDQ3NjcsIDAuMDA0NzY5LCAwLjAwNDc3LCAwLjAwNDc3LCAwLjAwNDc3IiwgXAotICAgICAgICAgICIwLjAwNDgxLCAwLjAwNDgxMiwgMC4wMDQ4MTcsIDAuMDA0ODE5LCAwLjAwNDgyLCAwLjAwNDgyLCAwLjAwNDgyIiwgXAotICAgICAgICAgICIwLjAwNDg1MywgMC4wMDQ4NTQsIDAuMDA0ODU5LCAwLjAwNDg2MSwgMC4wMDQ4NjIsIDAuMDA0ODYyLCAwLjAwNDg2MiIsIFwKLSAgICAgICAgICAiMC4wMDQ5MjMsIDAuMDA0OTI1LCAwLjAwNDkzLCAwLjAwNDkzMSwgMC4wMDQ5MzMsIDAuMDA0OTMzLCAwLjAwNDkzMyIsIFwKLSAgICAgICAgICAiMC4wMDUwMTYsIDAuMDA1MDE3LCAwLjAwNTAzNSwgMC4wMDUwMjQsIDAuMDA1MDI1LCAwLjAwNTAyNSwgMC4wMDUwMjYiLCBcCi0gICAgICAgICAgIjAuMDA1MTEzLCAwLjAwNTExNywgMC4wMDUxMjEsIDAuMDA1MTIyLCAwLjAwNTEyMywgMC4wMDUxMjQsIDAuMDA1MTI0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiU04iOwotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNTI1MSwgMC4wMDUyNTMsIDAuMDA1MjU4LCAwLjAwNTI2LCAwLjAwNTI2MSwgMC4wMDUyNjIsIDAuMDA1MjYyIiwgXAotICAgICAgICAgICIwLjAwNTI0MSwgMC4wMDUyNDIsIDAuMDA1MjQ4LCAwLjAwNTI1LCAwLjAwNTI1LCAwLjAwNTI1MSwgMC4wMDUyNTIiLCBcCi0gICAgICAgICAgIjAuMDA1MjQ5LCAwLjAwNTI1MSwgMC4wMDUyNTYsIDAuMDA1MjU4LCAwLjAwNTI1OSwgMC4wMDUyNjIsIDAuMDA1MjYiLCBcCi0gICAgICAgICAgIjAuMDA1MjgsIDAuMDA1MjgxLCAwLjAwNTI4NywgMC4wMDUyODksIDAuMDA1Mjg5LCAwLjAwNTI5LCAwLjAwNTI5IiwgXAotICAgICAgICAgICIwLjAwNTMxOSwgMC4wMDUzMiwgMC4wMDUzMjYsIDAuMDA1MzI4LCAwLjAwNTMyOSwgMC4wMDUzMywgMC4wMDUzMyIsIFwKLSAgICAgICAgICAiMC4wMDUzOTMsIDAuMDA1Mzk2LCAwLjAwNTQwMiwgMC4wMDU0MDQsIDAuMDA1NDA1LCAwLjAwNTQwNiwgMC4wMDU0MDUiLCBcCi0gICAgICAgICAgIjAuMDA1NDk0LCAwLjAwNTQ5MywgMC4wMDU1LCAwLjAwNTUwMywgMC4wMDU1MDQsIDAuMDA1NTA1LCAwLjAwNTUwNSIpOwotICAgICAgfQotICAgICAgcmlzZV9wb3dlcihzY2FsYXIpIHsKLSAgICAgICAgdmFsdWVzKCIwIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTRSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNDI4OTE7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNDI4OTE7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNDI4NTg7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA1MzQ0LCAwLjAwNTM2MywgMC4wMDU0NDksIDAuMDA1NTY0LCAwLjAwNTcxOCwgMC4wMDU5NDQsIDAuMDA2MTQzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA3MDY0LCAwLjAwNzA5MiwgMC4wMDcyMTUsIDAuMDA3Mzg1LCAwLjAwNzYsIDAuMDA3OTcyLCAwLjAwODMxMyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJTTiA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMTg3NSwgLTAuMDEzNzUsIC0wLjAwNzUsIC0wLjAwMTI1LCAwLjAwNSwgMC4wMDg3NSwgMC4wMTc1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLCAwLjAwMzc1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIC0wLjAwMjUsIDAiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA4NzUsIDAiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTg3NSwgLTAuMDA4NzUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wNDYyNSwgLTAuMDM1LCAtMC4wMjg3NSwgLTAuMDIyNSwgLTAuMDIyNSwgLTAuMDEyNSwgLTAuMDEiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wNDM3NSwgLTAuMDMxMjUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAxNSwgLTAuMDEyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAxMjUsIC0wLjAwMTI1LCAwLjAwNSwgMC4wMTEyNSwgMC4wMTEyNSwgMC4wMjEyNSwgMC4wMjM3NSIsIFwKLSAgICAgICAgICAiLTAuMDE3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAsIDAuMDA2MjUsIDAuMDEsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAsIDAuMDAzNzUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMTI1LCAtMC4wMDI1LCAwIiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDE4NzUsIC0wLjAwODc1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDQ2MjUsIC0wLjA0MTI1LCAtMC4wMzUsIC0wLjAyODc1LCAtMC4wMjg3NSwgLTAuMDE4NzUsIC0wLjAxNjI1IiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAyNzUsIC0wLjAyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiU04iOwotICAgICAgc2RmX2NvbmQgOiAiU04gPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY4NzUsIDAuMDU3NSwgMC4wNTEyNSwgMC4wMzg3NSwgMC4wMzg3NSwgMC4wMjg3NSwgMC4wMjYyNSIsIFwKLSAgICAgICAgICAiMC4wNzM3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1LCAwLjA0Mzc1LCAwLjAzMzc1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICIwLjA4LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDUsIDAuMDQ2MjUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMDgsIDAuMDc1LCAwLjA2MjUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNTI1LCAwLjA1IiwgXAotICAgICAgICAgICIwLjA4NjI1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1ODc1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICIwLjA5NjI1LCAwLjA5MTI1LCAwLjA4NSwgMC4wNzg3NSwgMC4wNzI1LCAwLjA2ODc1LCAwLjA2NjI1IiwgXAotICAgICAgICAgICIwLjEwNSwgMC4xLCAwLjA5Mzc1LCAwLjA4NzUsIDAuMDgxMjUsIDAuMDc3NSwgMC4wNzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjI1LCAwLjA1NzUsIDAuMDUxMjUsIDAuMDQ1LCAwLjA0NSwgMC4wNDEyNSwgMC4wMzI1IiwgXAotICAgICAgICAgICIwLjA3Mzc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDUsIDAuMDUsIDAuMDQ2MjUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMDgsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNTYyNSwgMC4wNTI1LCAwLjA1IiwgXAotICAgICAgICAgICIwLjA4LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1MjUsIDAuMDUiLCBcCi0gICAgICAgICAgIjAuMDkyNSwgMC4wODEyNSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA2MjUsIDAuMDU4NzUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIjAuMTAyNSwgMC4wOTEyNSwgMC4wODUsIDAuMDcyNSwgMC4wNzI1LCAwLjA2MjUsIDAuMDYiLCBcCi0gICAgICAgICAgIjAuMTA1LCAwLjEsIDAuMDg3NSwgMC4wODEyNSwgMC4wNzUsIDAuMDcxMjUsIDAuMDY4NzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFNJKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA3MjAwMzM7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNzE4ODU5OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDcyMDAzMzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDM4NDYsIDAuMDAzODI2LCAwLjAwMzg1LCAwLjAwMzg4NiwgMC4wMDM5NjEsIDAuMDA0MDY5LCAwLjAwNDE5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA1ODY3LCAwLjAwNTg1NCwgMC4wMDU4NzIsIDAuMDA1OTE0LCAwLjAwNTk3MSwgMC4wMDYwNzgsIDAuMDA2MTkzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlNFJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIlNFX0VRXzFfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMzEyNSwgLTAuMDI2MjUsIC0wLjAyLCAtMC4wMiwgLTAuMDEzNzUsIC0wLjAxLCAtMC4wMDc1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDMxMjUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAyNSwgLTAuMDIxMjUsIC0wLjAxODc1IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzc1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDMxMjUsIC0wLjAyNzUsIC0wLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzNzUsIC0wLjAzMzc1LCAtMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wNDM3NSwgLTAuMDQsIC0wLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjA2NSwgLTAuMDYsIC0wLjA2LCAtMC4wNTM3NSwgLTAuMDUzNzUsIC0wLjA1LCAtMC4wNDc1IiwgXAotICAgICAgICAgICItMC4wNzM3NSwgLTAuMDY4NzUsIC0wLjA2MjUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNTI1LCAtMC4wNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAxMjUsIC0wLjAwNzUsIC0wLjAwMTI1LCAwLjAwNSwgMC4wMTEyNSwgMC4wMTUsIDAuMDE3NSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLCAwLjAwNjI1LCAwLjAxLCAwLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAsIDAuMDAzNzUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgLTAuMDAyNSwgMCIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDg3NSwgMCIsIFwKLSAgICAgICAgICAiLTAuMDQ2MjUsIC0wLjAzNSwgLTAuMDI4NzUsIC0wLjAyMjUsIC0wLjAyMjUsIC0wLjAxMjUsIC0wLjAxIiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAyMTI1LCAtMC4wMTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJTRSZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJTRV9FUV8xX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU2MjUsIDAuMDUxMjUsIDAuMDQ1LCAwLjAzODc1LCAwLjAzMjUsIDAuMDI4NzUsIDAuMDI2MjUiLCBcCi0gICAgICAgICAgIjAuMDYxMjUsIDAuMDU2MjUsIDAuMDUsIDAuMDQzNzUsIDAuMDQzNzUsIDAuMDQsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiMC4wNzM3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1LCAwLjA1LCAwLjA0NjI1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjA4LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNTI1LCAwLjA1IiwgXAotICAgICAgICAgICIwLjA4NjI1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1ODc1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICIwLjA5NjI1LCAwLjA4NSwgMC4wNzg3NSwgMC4wNzI1LCAwLjA3MjUsIDAuMDY4NzUsIDAuMDY2MjUiLCBcCi0gICAgICAgICAgIjAuMDk4NzUsIDAuMDkzNzUsIDAuMDg3NSwgMC4wODEyNSwgMC4wODEyNSwgMC4wNzc1LCAwLjA2ODc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDYyNSwgMC4wNTEyNSwgMC4wNDUsIDAuMDM4NzUsIDAuMDMyNSwgMC4wMjI1LCAwLjAyIiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDU2MjUsIDAuMDUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMjc1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiMC4wNzM3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1LCAwLjA0Mzc1LCAwLjA0LCAwLjAzMTI1IiwgXAotICAgICAgICAgICIwLjA4LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDUsIDAuMDQ2MjUsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiMC4wODYyNSwgMC4wNzUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNDYyNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4wOSwgMC4wODUsIDAuMDcyNSwgMC4wNjYyNSwgMC4wNjYyNSwgMC4wNTYyNSwgMC4wNTM3NSIsIFwKLSAgICAgICAgICAiMC4wOTg3NSwgMC4wODc1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjUsIDAuMDU2MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFNOKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE0OTU0MzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDEzOTU3NzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE0OTU0MzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA1OTMsIDAuMDAwNTkyLCAwLjAwMDU5MiwgMC4wMDA1OTIsIDAuMDAwNTkyLCAwLjAwMDU5MiwgMC4wMDA1OTIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA2MTYsIDAuMDAwNjAxLCAwLjAwMDU5NywgMC4wMDA1OTUsIDAuMDAwNTk1LCAwLjAwMDU5NCwgMC4wMDA1OTQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiU04iOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFEJiFTRSYhU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1NFX0VRXzBfQU5fU0lfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjExOTQzLCAwLjEyNzM1NywgMC4xMzcwNzksIDAuMTQ1MjgzLCAwLjE1MTk3OCwgMC4xNjA3MzYsIDAuMTY2ODY2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogcmVjb3ZlcnlfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRCYhU0UmIVNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9TRV9FUV8wX0FOX1NJX0VRXzAgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQocmVjb3ZlcnlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2MjUsIDAuMDAxMjUsIC0wLjAxMTI1LCAtMC4wMTc1LCAtMC4wMjM3NSwgLTAuMDMzNzUsIC0wLjAzNjI1IiwgXAotICAgICAgICAgICIwLjAxMTI1LCAwLjAwNjI1LCAtMC4wMDYyNSwgLTAuMDEyNSwgLTAuMDE4NzUsIC0wLjAyODc1LCAtMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4wMTc1LCAwLjAxMjUsIDAsIC0wLjAwNjI1LCAtMC4wMTI1LCAtMC4wMTYyNSwgLTAuMDI1IiwgXAotICAgICAgICAgICIwLjAzLCAwLjAxODc1LCAwLjAxMjUsIDAsIC0wLjAwNjI1LCAtMC4wMSwgLTAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMDM2MjUsIDAuMDI1LCAwLjAxODc1LCAwLjAxMjUsIDAuMDA2MjUsIC0wLjAwMzc1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiMC4wNDYyNSwgMC4wMzUsIDAuMDI4NzUsIDAuMDIyNSwgMC4wMTYyNSwgMC4wMDYyNSwgMC4wMDM3NSIsIFwKLSAgICAgICAgICAiMC4wNTUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMjUsIDAuMDE1LCAwLjAxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiByZW1vdmFsX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUQmIVNFJiFTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fU0VfRVFfMF9BTl9TSV9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHJlbW92YWxfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE4NzUsIDAuMDIzNzUsIDAuMDM2MjUsIDAuMDQyNSwgMC4wNDg3NSwgMC4wNTI1LCAwLjA2MTI1IiwgXAotICAgICAgICAgICIwLjAxMzc1LCAwLjAxODc1LCAwLjAzMTI1LCAwLjAzNzUsIDAuMDQzNzUsIDAuMDQ3NSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiMC4wMDc1LCAwLjAxMjUsIDAuMDI1LCAwLjAzMTI1LCAwLjAzMTI1LCAwLjA0MTI1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjAwMTI1LCAwLjAwNjI1LCAwLjAxODc1LCAwLjAyNSwgMC4wMjUsIDAuMDM1LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjAwNSwgMCwgMC4wMTI1LCAwLjAxODc1LCAwLjAyNSwgMC4wMjg3NSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDE1LCAtMC4wMDM3NSwgMC4wMDI1LCAwLjAwODc1LCAwLjAxNSwgMC4wMTg3NSwgMC4wMjc1IiwgXAotICAgICAgICAgICItMC4wMTc1LCAtMC4wMTI1LCAwLCAwLjAwNjI1LCAwLjAwNjI1LCAwLjAxNjI1LCAwLjAxODc1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IFNERkZUUlgxICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChTREZGVFJYMSkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAxLjE0NDQ2OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIGZmIChOMzAsUUJJTlQpIHsKLSAgICBuZXh0X3N0YXRlIDogIigoU0UgU0kpICsgKCFTRSAoRCBSTikpKSI7Ci0gICAgY2xvY2tlZF9vbiA6ICJDSyI7Ci0gIH0KLSAgcGluKENLKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2MTE0Mjc7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjExMjcxOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDYxMTQyNzsKLSAgICBjbG9jayA6IHRydWU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzNTM0LCAwLjAwMzUyOSwgMC4wMDM2MTIsIDAuMDAzNzA1LCAwLjAwMzgzMSwgMC4wMDQwNywgMC4wMDQyNDMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDc0MDksIDAuMDA3NDA5LCAwLjAwNzQ5NiwgMC4wMDc2MjQsIDAuMDA3NzgyLCAwLjAwNzk2NywgMC4wMDgyNjQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFEJiFSTiYhU0UmIVNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9STl9FUV8wX0FOX1NFX0VRXzBfQU5fU0lfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjExMzc4OSwgMC4xMjE5MzMsIDAuMTMwODY5LCAwLjEzNzU4NCwgMC4xNDMwMDQsIDAuMTUwMzM5LCAwLjE1NTY1OCIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDYwNDk4LCAwLjA2ODU4MiwgMC4wNzczNjEsIDAuMDgzODUxLCAwLjA4OTE3NywgMC4wOTYxMDUsIDAuMTAxMjAxIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihEKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2NTAyNzg7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjUwMjU1OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDY1MDI3ODsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDM2OTIsIDAuMDAzNjksIDAuMDAzNzI0LCAwLjAwMzgxOCwgMC4wMDM5MjMsIDAuMDA0MDkxLCAwLjAwNDIzNCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNjcwMywgMC4wMDY3MDgsIDAuMDA2NzUzLCAwLjAwNjgzMiwgMC4wMDY5MzEsIDAuMDA3MTA3LCAwLjAwNzI2NiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJSTiYhU0UiOwotICAgICAgc2RmX2NvbmQgOiAiUk5fRVFfMV9BTl9TRV9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjA1LCAtMC4wNDUsIC0wLjA0NSwgLTAuMDM4NzUsIC0wLjAzODc1LCAtMC4wMzUsIC0wLjAzMjUiLCBcCi0gICAgICAgICAgIi0wLjA2MTI1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDQ2MjUsIC0wLjA0Mzc1IiwgXAotICAgICAgICAgICItMC4wNjc1LCAtMC4wNjI1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDU2MjUsIC0wLjA1MjUsIC0wLjA1IiwgXAotICAgICAgICAgICItMC4wOCwgLTAuMDc1LCAtMC4wNjg3NSwgLTAuMDY4NzUsIC0wLjA2ODc1LCAtMC4wNjUsIC0wLjA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA4NjI1LCAtMC4wODEyNSwgLTAuMDgxMjUsIC0wLjA3NSwgLTAuMDc1LCAtMC4wNzEyNSwgLTAuMDY4NzUiLCBcCi0gICAgICAgICAgIi0wLjA5NjI1LCAtMC4wOTEyNSwgLTAuMDkxMjUsIC0wLjA5MTI1LCAtMC4wODUsIC0wLjA4MTI1LCAtMC4wNzg3NSIsIFwKLSAgICAgICAgICAiLTAuMTA1LCAtMC4xLCAtMC4xLCAtMC4xLCAtMC4wOTM3NSwgLTAuMDksIC0wLjA5Mzc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDEyNSwgLTAuMDA3NSwgLTAuMDAxMjUsIDAuMDA1LCAwLjAxMTI1LCAwLjAxNSwgMC4wMTc1IiwgXAotICAgICAgICAgICItMC4wMTc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMCwgMCwgMC4wMSwgMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDI1LCAtMC4wMTI1LCAtMC4wMTI1LCAtMC4wMDYyNSwgLTAuMDAyNSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDg3NSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTUsIC0wLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjA0NjI1LCAtMC4wNDEyNSwgLTAuMDM1LCAtMC4wMjg3NSwgLTAuMDI4NzUsIC0wLjAyNSwgLTAuMDE2MjUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wNDM3NSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMjc1LCAtMC4wMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlJOJiFTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJSTl9FUV8xX0FOX1NFX0VRXzAgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc1LCAwLjA3LCAwLjA2Mzc1LCAwLjA2Mzc1LCAwLjA1NzUsIDAuMDUzNzUsIDAuMDUxMjUiLCBcCi0gICAgICAgICAgIjAuMDg2MjUsIDAuMDc1LCAwLjA2ODc1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDY1LCAwLjA2MjUiLCBcCi0gICAgICAgICAgIjAuMDkyNSwgMC4wODc1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNzUsIDAuMDcxMjUsIDAuMDY4NzUiLCBcCi0gICAgICAgICAgIjAuMTA1LCAwLjEsIDAuMDkzNzUsIDAuMDg3NSwgMC4wODc1LCAwLjA4Mzc1LCAwLjA4MTI1IiwgXAotICAgICAgICAgICIwLjExMTI1LCAwLjEwNjI1LCAwLjEsIDAuMDkzNzUsIDAuMDkzNzUsIDAuMDksIDAuMDg3NSIsIFwKLSAgICAgICAgICAiMC4xMjc1LCAwLjExNjI1LCAwLjExLCAwLjExLCAwLjEwMzc1LCAwLjEsIDAuMDk3NSIsIFwKLSAgICAgICAgICAiMC4xMzYyNSwgMC4xMjUsIDAuMTE4NzUsIDAuMTE4NzUsIDAuMTEyNSwgMC4xMTUsIDAuMTEyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0Mzc1LCAwLjAzMjUsIDAuMDI2MjUsIDAuMDIsIDAuMDEzNzUsIDAuMDEsIDAuMDAxMjUiLCBcCi0gICAgICAgICAgIjAuMDQ4NzUsIDAuMDQzNzUsIDAuMDMxMjUsIDAuMDI1LCAwLjAyNSwgMC4wMTUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4wNjEyNSwgMC4wNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyNzUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMDY3NSwgMC4wNTYyNSwgMC4wNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzMzc1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiMC4wNzM3NSwgMC4wNjg3NSwgMC4wNTYyNSwgMC4wNSwgMC4wNDM3NSwgMC4wNCwgMC4wMzc1IiwgXAotICAgICAgICAgICIwLjA4Mzc1LCAwLjA3MjUsIDAuMDY2MjUsIDAuMDYsIDAuMDUzNzUsIDAuMDUsIDAuMDQxMjUiLCBcCi0gICAgICAgICAgIjAuMDkyNSwgMC4wODEyNSwgMC4wNzUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNTI1LCAwLjA1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihRKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMzMzODU4OwotICAgIGZ1bmN0aW9uIDogIk4zMCI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3NlbnNlIDogbm9uX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiByaXNpbmdfZWRnZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk1MDMyLCAwLjExMzYzMiwgMC4yMTg5MjksIDAuMzEyMDIsIDAuNDM1OTQ3LCAwLjY4NDY2LCAwLjg0MDA4NyIsIFwKLSAgICAgICAgICAiMC4xMDMxMjUsIDAuMTIxNzI1LCAwLjIyNzE2NywgMC4zMjAxMSwgMC40NDQwNDEsIDAuNjkyNzIxLCAwLjg0NzQ0MiIsIFwKLSAgICAgICAgICAiMC4xMTE3NDgsIDAuMTMwMzUsIDAuMjM1NzgyLCAwLjMyODcwNSwgMC40NTI2MzMsIDAuNzAxMzQyLCAwLjg1Njc2NyIsIFwKLSAgICAgICAgICAiMC4xMTg1NjMsIDAuMTM3MTcxLCAwLjI0MjYwMywgMC4zMzU1MjcsIDAuNDU5NDc0LCAwLjcwODE1MywgMC44NjI5MTQiLCBcCi0gICAgICAgICAgIjAuMTIzODk2LCAwLjE0MjU2NCwgMC4yNDc4MDYsIDAuMzQwODY5LCAwLjQ2NDc5NywgMC43MTM0NTcsIDAuODY4OTQ5IiwgXAotICAgICAgICAgICIwLjEzMDkxLCAwLjE0OTUwOSwgMC4yNTQ4OTQsIDAuMzQ3ODMsIDAuNDcxODc1LCAwLjcyMDA1OSwgMC44NzUxNyIsIFwKLSAgICAgICAgICAiMC4xMzYzNTUsIDAuMTU1MDA4LCAwLjI2MDM0OSwgMC4zNTMzNDksIDAuNDc3MjE4LCAwLjcyNTQ2LCAwLjg4MDU3NyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzI1MTksIDAuMTExMDQ5LCAwLjMzMTg3NSwgMC41Mjg3ODUsIDAuNzkwNjQ1LCAxLjMxNDM5LCAxLjY0MTgyIiwgXAotICAgICAgICAgICIwLjA3MjUxMiwgMC4xMTEwNDYsIDAuMzMyMzg3LCAwLjUyODc5NSwgMC43ODkxOTcsIDEuMzE0NDEsIDEuNjM4MDEiLCBcCi0gICAgICAgICAgIjAuMDcyNTEyLCAwLjExMTA1NSwgMC4zMzIzODgsIDAuNTI4NzczLCAwLjc5MDU4OSwgMS4zMTQ0MywgMS42NDE4MiIsIFwKLSAgICAgICAgICAiMC4wNzI1MTQsIDAuMTExMDQ0LCAwLjMzMjM4MiwgMC41Mjg3NTQsIDAuNzkwNTc4LCAxLjMxNDQsIDEuNjM5NjYiLCBcCi0gICAgICAgICAgIjAuMDcyNTE2LCAwLjExMDkzOCwgMC4zMzE4NzksIDAuNTI4NjMyLCAwLjc5MDU2MywgMS4zMTQzNiwgMS42NDE4NiIsIFwKLSAgICAgICAgICAiMC4wNzI3MTgsIDAuMTEwODk2LCAwLjMzMjMyOSwgMC41Mjc5MTYsIDAuNzkwNDIxLCAxLjMxMjg3LCAxLjYzODM4IiwgXAotICAgICAgICAgICIwLjA3Mjc2OSwgMC4xMTA5MDQsIDAuMzMyMzMzLCAwLjUyODcwNSwgMC43ODkzODQsIDEuMzEyMzksIDEuNjM4ODIiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTA0ODU3LCAwLjEyMzA4OCwgMC4yMjU4MTIsIDAuMzE2NTksIDAuNDM3MTY5LCAwLjY3ODgzNywgMC44Mjk1MzUiLCBcCi0gICAgICAgICAgIjAuMTEyOTk1LCAwLjEzMTE5NCwgMC4yMzM5MjQsIDAuMzI0NjEsIDAuNDQ1Mzk2LCAwLjY4NjQ0OCwgMC44Mzc5NzUiLCBcCi0gICAgICAgICAgIjAuMTIxOTY3LCAwLjE0MDIyMywgMC4yNDI4MzQsIDAuMzMzNjg0LCAwLjQ1NDQxMiwgMC42OTU5MjIsIDAuODQ2Nzc1IiwgXAotICAgICAgICAgICIwLjEyODY0NywgMC4xNDY4NzMsIDAuMjQ5NTQ4LCAwLjM0MDM1OSwgMC40NjA5ODgsIDAuNzAyNjI1LCAwLjg1MzY2IiwgXAotICAgICAgICAgICIwLjEzNDA2NiwgMC4xNTIyNjMsIDAuMjU1MDE0LCAwLjM0NTY1OSwgMC40NjY0NDQsIDAuNzA3NDUzLCAwLjg1OTAyMiIsIFwKLSAgICAgICAgICAiMC4xNDEzODUsIDAuMTU5Njg4LCAwLjI2MjQ4NywgMC4zNTMwNTcsIDAuNDczNzk5LCAwLjcxNTM3NCwgMC44NjY0MTYiLCBcCi0gICAgICAgICAgIjAuMTQ2NzU4LCAwLjE2NTAyOCwgMC4yNjc3NTgsIDAuMzU4NDU3LCAwLjQ3OTI3NCwgMC43MjA4MzgsIDAuODcxNzM1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2OTUwOSwgMC4xMDYxMzEsIDAuMzE2MjQ5LCAwLjUwMjQyMywgMC43NTEzNzMsIDEuMjQ5MTcsIDEuNTU5ODkiLCBcCi0gICAgICAgICAgIjAuMDY5OTQsIDAuMTA2Mjc2LCAwLjMxNTg0LCAwLjUwMjM2MSwgMC43NTEzMTgsIDEuMjQ3NDUsIDEuNTYwNDMiLCBcCi0gICAgICAgICAgIjAuMDY5ODA4LCAwLjEwNjI2MiwgMC4zMTYzNDEsIDAuNTAyNDI1LCAwLjc1MTM5NCwgMS4yNDkxOSwgMS41NjAyNSIsIFwKLSAgICAgICAgICAiMC4wNjk5MjEsIDAuMTA2MDIzLCAwLjMxNjE0NywgMC41MDI0MTcsIDAuNzUxMjQyLCAxLjI0OTE4LCAxLjU2MDQ4IiwgXAotICAgICAgICAgICIwLjA2OTM5MywgMC4xMDYyOTMsIDAuMzE1NTMxLCAwLjUwMjc2NiwgMC43NTEzMTUsIDEuMjQ4MDIsIDEuNTYwNDMiLCBcCi0gICAgICAgICAgIjAuMDY5OTU3LCAwLjEwNjI0NywgMC4zMTYwNjksIDAuNTAyMzczLCAwLjc1MTMwMSwgMS4yNDkyNCwgMS41NjA0IiwgXAotICAgICAgICAgICIwLjA2OTU2MiwgMC4xMDU4MywgMC4zMTYzMSwgMC41MDIzODcsIDAuNzUxNDgzLCAxLjI0OTMxLCAxLjU2MDQ2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDk3MiwgMC4wMDQ5NjYsIDAuMDA0OTQxLCAwLjAwNDkzMywgMC4wMDQ5MjcsIDAuMDA0OTIyLCAwLjAwNDkyMSIsIFwKLSAgICAgICAgICAiMC4wMDQ5NjYsIDAuMDA0OTYxLCAwLjAwNDkzNiwgMC4wMDQ5MjcsIDAuMDA0OTIxLCAwLjAwNDkxNiwgMC4wMDQ5MTUiLCBcCi0gICAgICAgICAgIjAuMDA1MDEyLCAwLjAwNTAwOCwgMC4wMDQ5ODUsIDAuMDA0OTc1LCAwLjAwNDk2OSwgMC4wMDQ5NjMsIDAuMDA0OTYyIiwgXAotICAgICAgICAgICIwLjAwNTA2MiwgMC4wMDUwNTgsIDAuMDA1MDM0LCAwLjAwNTAyNCwgMC4wMDUwMTcsIDAuMDA1MDEyLCAwLjAwNTAxIiwgXAotICAgICAgICAgICIwLjAwNTEzNCwgMC4wMDUxMzEsIDAuMDA1MTA3LCAwLjAwNTA5NywgMC4wMDUwOTEsIDAuMDA1MDg0LCAwLjAwNTA4MiIsIFwKLSAgICAgICAgICAiMC4wMDUyMjYsIDAuMDA1MjIzLCAwLjAwNTE5OSwgMC4wMDUxODgsIDAuMDA1MTgsIDAuMDA1MTczLCAwLjAwNTE3IiwgXAotICAgICAgICAgICIwLjAwNTMyOSwgMC4wMDUzMjYsIDAuMDA1MzAzLCAwLjAwNTI5MiwgMC4wMDUyODMsIDAuMDA1Mjc2LCAwLjAwNTI3MyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNTA1NywgMC4wMDUwNjYsIDAuMDA1MDc5LCAwLjAwNTA4MSwgMC4wMDUwODMsIDAuMDA1MDg1LCAwLjAwNTA4NiIsIFwKLSAgICAgICAgICAiMC4wMDUwNTksIDAuMDA1MDY4LCAwLjAwNTA4LCAwLjAwNTA4MywgMC4wMDUwODUsIDAuMDA1MDg2LCAwLjAwNTA4NyIsIFwKLSAgICAgICAgICAiMC4wMDUxMDIsIDAuMDA1MTEsIDAuMDA1MTIyLCAwLjAwNTEyNSwgMC4wMDUxMjcsIDAuMDA1MTI4LCAwLjAwNTEyOCIsIFwKLSAgICAgICAgICAiMC4wMDUxNjcsIDAuMDA1MTc1LCAwLjAwNTE4NywgMC4wMDUxODksIDAuMDA1MTkxLCAwLjAwNTE5MywgMC4wMDUxOTMiLCBcCi0gICAgICAgICAgIjAuMDA1MjQyLCAwLjAwNTI1LCAwLjAwNTI2MSwgMC4wMDUyNjMsIDAuMDA1MjY0LCAwLjAwNTI2NiwgMC4wMDUyNjciLCBcCi0gICAgICAgICAgIjAuMDA1MzU3LCAwLjAwNTM2NSwgMC4wMDUzNzUsIDAuMDA1Mzc2LCAwLjAwNTM3NywgMC4wMDUzNjksIDAuMDA1Mzc4IiwgXAotICAgICAgICAgICIwLjAwNTQ1MiwgMC4wMDU0NTksIDAuMDA1NDY3LCAwLjAwNTQ2OCwgMC4wMDU0NjgsIDAuMDA1NDY4LCAwLjAwNTQ2OCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUU4pICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4zNDA0OTI7Ci0gICAgZnVuY3Rpb24gOiAiUUJJTlQiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5vbl91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcmlzaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExMzc5MSwgMC4xMzIzODgsIDAuMjM3ODIsIDAuMzMwOTU1LCAwLjQ1NDk1LCAwLjcwMzIwNCwgMC44NTgxNDEiLCBcCi0gICAgICAgICAgIjAuMTIxOTM1LCAwLjE0MDUwNCwgMC4yNDU5OTksIDAuMzM5MDI0LCAwLjQ2MzExNSwgMC43MTEyNjEsIDAuODY2NDUxIiwgXAotICAgICAgICAgICIwLjEzMDg2OSwgMC4xNDk0NzksIDAuMjU0OTUzLCAwLjM0ODAzMiwgMC40NzIxMDUsIDAuNzIwMjc3LCAwLjg3NTM1IiwgXAotICAgICAgICAgICIwLjEzNzU4OSwgMC4xNTYxODksIDAuMjYxNjgyLCAwLjM1NDc0NCwgMC40Nzg3NTcsIDAuNzI3MDAyLCAwLjg4MjE1NSIsIFwKLSAgICAgICAgICAiMC4xNDMwMDQsIDAuMTYxNTcxLCAwLjI2NzA2OCwgMC4zNjAwOSwgMC40ODQxOCwgMC43MzIzNjUsIDAuODg3NTE3IiwgXAotICAgICAgICAgICIwLjE1MDMzOSwgMC4xNjg5MDksIDAuMjc0MzgyLCAwLjM2NzQ0NCwgMC40OTE1MjQsIDAuNzM5NzI2LCAwLjg5NDg1NSIsIFwKLSAgICAgICAgICAiMC4xNTU2NTgsIDAuMTc0MjYyLCAwLjI3OTcxOSwgMC4zNzI4MjYsIDAuNDk2OTMzLCAwLjc0NTEzLCAwLjkwMDIzNyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzA0MDcsIDAuMTA5NDA5LCAwLjMzMTU1OSwgMC41Mjc4NzYsIDAuNzg5MzI3LCAxLjMxMjIsIDEuNjM4MDkiLCBcCi0gICAgICAgICAgIjAuMDcwNDgsIDAuMTA5NTEyLCAwLjMzMTExMSwgMC41Mjc4MzIsIDAuNzg5MzEzLCAxLjMxMDk5LCAxLjYzOTE2IiwgXAotICAgICAgICAgICIwLjA3MDQ5OCwgMC4xMDk1MTMsIDAuMzMxMzkzLCAwLjUyNzg2OSwgMC43ODkyOTMsIDEuMzEyMjgsIDEuNjM5MDgiLCBcCi0gICAgICAgICAgIjAuMDcwNDgxLCAwLjEwOTQ3NSwgMC4zMzE0NTYsIDAuNTI3ODcxLCAwLjc4OTQzMSwgMS4zMTIyLCAxLjYzOTE3IiwgXAotICAgICAgICAgICIwLjA3MDQyNiwgMC4xMDk1MTUsIDAuMzMwOTEsIDAuNTI3ODM1LCAwLjc4OTMxNiwgMS4zMTA5NiwgMS42MzkxNyIsIFwKLSAgICAgICAgICAiMC4wNzA0NDcsIDAuMTA5Mzk3LCAwLjMzMTc5MywgMC41Mjc4NTcsIDAuNzg5MzE1LCAxLjMxMjI3LCAxLjYzOTA1IiwgXAotICAgICAgICAgICIwLjA3MDU4OCwgMC4xMDkzNTYsIDAuMzMxNzI0LCAwLjUyNzg5NSwgMC43ODkzMjEsIDEuMzEyMjIsIDEuNjM5MTciKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTA0MTIyLCAwLjEyMjIxOSwgMC4yMjQ3NzMsIDAuMzE1MjM0LCAwLjQzNTgzNywgMC42NzcxNSwgMC44Mjc4NyIsIFwKLSAgICAgICAgICAiMC4xMTIyMDUsIDAuMTMwMzAyLCAwLjIzMjg1MSwgMC4zMjMzMiwgMC40NDM5MzMsIDAuNjg1MTU0LCAwLjgzNTkyOCIsIFwKLSAgICAgICAgICAiMC4xMjA4MzYsIDAuMTM4OTMxLCAwLjI0MTQ1NSwgMC4zMzE5MTQsIDAuNDUyNTE4LCAwLjY5Mzc3MiwgMC44NDQ1NTciLCBcCi0gICAgICAgICAgIjAuMTI3NjM2LCAwLjE0NTczMywgMC4yNDgyNzQsIDAuMzM4NzMzLCAwLjQ1OTM1MSwgMC43MDA1ODcsIDAuODUxMzM2IiwgXAotICAgICAgICAgICIwLjEzMjk0MSwgMC4xNTEwMzYsIDAuMjUzNTg1LCAwLjM0NDAzOSwgMC40NjQ2NDMsIDAuNzA1ODY5LCAwLjg1NjcyMSIsIFwKLSAgICAgICAgICAiMC4xMzk5OSwgMC4xNTgwODksIDAuMjYwNjIzLCAwLjM1MTA3NiwgMC40NzE3MzUsIDAuNzEyOTE1LCAwLjg2MzgxMyIsIFwKLSAgICAgICAgICAiMC4xNDU0MzYsIDAuMTYzNTI5LCAwLjI2NjA0NiwgMC4zNTY1NDIsIDAuNDc3MTIxLCAwLjcxODQ0NiwgMC44NjkxNDMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY3MDg5LCAwLjEwNDExNiwgMC4zMTQ3NzUsIDAuNTAxNzAzLCAwLjc1MDIzLCAxLjI0NzQ1LCAxLjU1ODI1IiwgXAotICAgICAgICAgICIwLjA2NzA4OCwgMC4xMDQxMjIsIDAuMzE1Mjc1LCAwLjUwMTcxMSwgMC43NDg4NDIsIDEuMjQ3NDEsIDEuNTU1MjIiLCBcCi0gICAgICAgICAgIjAuMDY3MDg3LCAwLjEwNDExNiwgMC4zMTUyNzYsIDAuNTAxNjg4LCAwLjc1MDIzNiwgMS4yNDc0NywgMS41NTgyNSIsIFwKLSAgICAgICAgICAiMC4wNjcwODgsIDAuMTA0MTE3LCAwLjMxNTI2MywgMC41MDE2NjksIDAuNzUwMjQyLCAxLjI0NzQyLCAxLjU1NjM0IiwgXAotICAgICAgICAgICIwLjA2NzA4OSwgMC4xMDQwNzIsIDAuMzE0NzczLCAwLjUwMTY2NSwgMC43NTAyMTIsIDEuMjQ3MzcsIDEuNTU4MzUiLCBcCi0gICAgICAgICAgIjAuMDY3MDcyLCAwLjEwNDAyLCAwLjMxNTA1NywgMC41MDA5NywgMC43NTAyLCAxLjI0NTg3LCAxLjU1NTU2IiwgXAotICAgICAgICAgICIwLjA2NzIzNiwgMC4xMDM5MzQsIDAuMzE1MTQ0LCAwLjUwMTYxNiwgMC43NDkyMzgsIDEuMjQ1NDEsIDEuNTU1NzkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1MDU3LCAwLjAwNTA2NiwgMC4wMDUwNzksIDAuMDA1MDgxLCAwLjAwNTA4MywgMC4wMDUwODUsIDAuMDA1MDg2IiwgXAotICAgICAgICAgICIwLjAwNTA1OSwgMC4wMDUwNjgsIDAuMDA1MDgsIDAuMDA1MDgzLCAwLjAwNTA4NSwgMC4wMDUwODYsIDAuMDA1MDg3IiwgXAotICAgICAgICAgICIwLjAwNTEwMiwgMC4wMDUxMSwgMC4wMDUxMjIsIDAuMDA1MTI1LCAwLjAwNTEyNywgMC4wMDUxMjgsIDAuMDA1MTI4IiwgXAotICAgICAgICAgICIwLjAwNTE2NywgMC4wMDUxNzUsIDAuMDA1MTg3LCAwLjAwNTE4OSwgMC4wMDUxOTEsIDAuMDA1MTkzLCAwLjAwNTE5MyIsIFwKLSAgICAgICAgICAiMC4wMDUyNDIsIDAuMDA1MjUsIDAuMDA1MjYxLCAwLjAwNTI2MywgMC4wMDUyNjQsIDAuMDA1MjY2LCAwLjAwNTI2NyIsIFwKLSAgICAgICAgICAiMC4wMDUzNTcsIDAuMDA1MzY1LCAwLjAwNTM3NSwgMC4wMDUzNzYsIDAuMDA1Mzc3LCAwLjAwNTM2OSwgMC4wMDUzNzgiLCBcCi0gICAgICAgICAgIjAuMDA1NDUyLCAwLjAwNTQ1OSwgMC4wMDU0NjcsIDAuMDA1NDY4LCAwLjAwNTQ2OCwgMC4wMDU0NjgsIDAuMDA1NDY4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0OTcyLCAwLjAwNDk2NiwgMC4wMDQ5NDEsIDAuMDA0OTMzLCAwLjAwNDkyNywgMC4wMDQ5MjIsIDAuMDA0OTIxIiwgXAotICAgICAgICAgICIwLjAwNDk2NiwgMC4wMDQ5NjEsIDAuMDA0OTM2LCAwLjAwNDkyNywgMC4wMDQ5MjEsIDAuMDA0OTE2LCAwLjAwNDkxNSIsIFwKLSAgICAgICAgICAiMC4wMDUwMTIsIDAuMDA1MDA4LCAwLjAwNDk4NSwgMC4wMDQ5NzUsIDAuMDA0OTY5LCAwLjAwNDk2MywgMC4wMDQ5NjIiLCBcCi0gICAgICAgICAgIjAuMDA1MDYyLCAwLjAwNTA1OCwgMC4wMDUwMzQsIDAuMDA1MDI0LCAwLjAwNTAxNywgMC4wMDUwMTIsIDAuMDA1MDEiLCBcCi0gICAgICAgICAgIjAuMDA1MTM0LCAwLjAwNTEzMSwgMC4wMDUxMDcsIDAuMDA1MDk3LCAwLjAwNTA5MSwgMC4wMDUwODQsIDAuMDA1MDgyIiwgXAotICAgICAgICAgICIwLjAwNTIyNiwgMC4wMDUyMjMsIDAuMDA1MTk5LCAwLjAwNTE4OCwgMC4wMDUxOCwgMC4wMDUxNzMsIDAuMDA1MTciLCBcCi0gICAgICAgICAgIjAuMDA1MzI5LCAwLjAwNTMyNiwgMC4wMDUzMDMsIDAuMDA1MjkyLCAwLjAwNTI4MywgMC4wMDUyNzYsIDAuMDA1MjczIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihSTikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjEyNzU1OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYxMjc1NTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2MTIzMDg7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzNjk0LCAwLjAwMzY3NCwgMC4wMDM2ODYsIDAuMDAzNzQ1LCAwLjAwMzgxMiwgMC4wMDM5MzQsIDAuMDA0MDU5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA3MDQ5LCAwLjAwNzA1NywgMC4wMDcxMDQsIDAuMDA3MTg0LCAwLjAwNzI5MywgMC4wMDc1MDUsIDAuMDA3NTk1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIkQmIVNFIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMV9BTl9TRV9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjA1LCAtMC4wNTEyNSwgLTAuMDQ1LCAtMC4wNDUsIC0wLjAzODc1LCAtMC4wNDEyNSwgLTAuMDM4NzUiLCBcCi0gICAgICAgICAgIi0wLjA2MTI1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjA1LCAtMC4wNSwgLTAuMDQ2MjUsIC0wLjA0Mzc1IiwgXAotICAgICAgICAgICItMC4wNjc1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDU2MjUsIC0wLjA1NjI1LCAtMC4wNTI1LCAtMC4wNSIsIFwKLSAgICAgICAgICAiLTAuMDczNzUsIC0wLjA2ODc1LCAtMC4wNjg3NSwgLTAuMDYyNSwgLTAuMDYyNSwgLTAuMDU4NzUsIC0wLjA1NjI1IiwgXAotICAgICAgICAgICItMC4wOCwgLTAuMDc1LCAtMC4wNzUsIC0wLjA2ODc1LCAtMC4wNjg3NSwgLTAuMDY1LCAtMC4wNjI1IiwgXAotICAgICAgICAgICItMC4wOSwgLTAuMDg1LCAtMC4wODUsIC0wLjA3ODc1LCAtMC4wNzg3NSwgLTAuMDc1LCAtMC4wNzI1IiwgXAotICAgICAgICAgICItMC4wOTg3NSwgLTAuMDkzNzUsIC0wLjA4NzUsIC0wLjA4NzUsIC0wLjA4NzUsIC0wLjA4Mzc1LCAtMC4wODEyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAxMjUsIC0wLjAwNzUsIC0wLjAwMTI1LCAwLjAwNSwgMC4wMTEyNSwgMC4wMTUsIDAuMDE3NSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLCAwLCAwLjAwMzc1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgLTAuMDAyNSwgMCIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTg3NSwgLTAuMDA4NzUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMjUsIC0wLjAxNSwgLTAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDUyNSwgLTAuMDQxMjUsIC0wLjA0MTI1LCAtMC4wMzUsIC0wLjAyODc1LCAtMC4wMjUsIC0wLjAyMjUiLCBcCi0gICAgICAgICAgIi0wLjA1NSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzc1LCAtMC4wMzM3NSwgLTAuMDI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJEJiFTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzFfQU5fU0VfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODEyNSwgMC4wNywgMC4wNjM3NSwgMC4wNjM3NSwgMC4wNTc1LCAwLjA1Mzc1LCAwLjA1MTI1IiwgXAotICAgICAgICAgICIwLjA4NjI1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjg3NSwgMC4wNjUsIDAuMDYyNSIsIFwKLSAgICAgICAgICAiMC4wOTI1LCAwLjA4NzUsIDAuMDgxMjUsIDAuMDc1LCAwLjA3NSwgMC4wNzEyNSwgMC4wNjg3NSIsIFwKLSAgICAgICAgICAiMC4wOTg3NSwgMC4wOTM3NSwgMC4wODc1LCAwLjA4MTI1LCAwLjA4MTI1LCAwLjA3NzUsIDAuMDc1IiwgXAotICAgICAgICAgICIwLjEwNSwgMC4xLCAwLjA5Mzc1LCAwLjA4NzUsIDAuMDg3NSwgMC4wODM3NSwgMC4wODEyNSIsIFwKLSAgICAgICAgICAiMC4xMTUsIDAuMTEsIDAuMTAzNzUsIDAuMDk3NSwgMC4wOTc1LCAwLjA5Mzc1LCAwLjA5MTI1IiwgXAotICAgICAgICAgICIwLjEyMzc1LCAwLjExODc1LCAwLjExMjUsIDAuMTA2MjUsIDAuMTA2MjUsIDAuMTAyNSwgMC4xIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQzNzUsIDAuMDMyNSwgMC4wMjYyNSwgMC4wMiwgMC4wMTM3NSwgMC4wMSwgMC4wMDEyNSIsIFwKLSAgICAgICAgICAiMC4wNDg3NSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMTUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4wNjEyNSwgMC4wNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyNzUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMDY3NSwgMC4wNjI1LCAwLjA1LCAwLjA0Mzc1LCAwLjA0Mzc1LCAwLjAzMzc1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICIwLjA3Mzc1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDUsIDAuMDQsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiMC4wODM3NSwgMC4wNzg3NSwgMC4wNzI1LCAwLjA2NjI1LCAwLjA2LCAwLjA1LCAwLjA0NzUiLCBcCi0gICAgICAgICAgIjAuMDkyNSwgMC4wODc1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1ODc1LCAwLjA1NjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTRSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxMjQzMjU7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxMjQzMjU7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxMjQzMTg7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA1MDMyLCAwLjAwNTA1MywgMC4wMDUxNTksIDAuMDA1MjQ4LCAwLjAwNTQxMiwgMC4wMDU2MjksIDAuMDA1ODM0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA2NzMzLCAwLjAwNjc0NywgMC4wMDY4ODQsIDAuMDA3MDM5LCAwLjAwNzI0NiwgMC4wMDc2MTMsIDAuMDA3OTU4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEJiFSTiZTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fUk5fRVFfMF9BTl9TSV9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAyNSwgLTAuMDIsIC0wLjAyLCAtMC4wMTM3NSwgLTAuMDEzNzUsIC0wLjAxLCAtMC4wMDc1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDE1LCAtMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzc1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDMxMjUsIC0wLjAyNzUsIC0wLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzNzUsIC0wLjAzMzc1LCAtMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDYxMjUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wNCwgLTAuMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDY1LCAtMC4wNiwgLTAuMDYsIC0wLjA1Mzc1LCAtMC4wNTM3NSwgLTAuMDUsIC0wLjA0NzUiLCBcCi0gICAgICAgICAgIi0wLjA3Mzc1LCAtMC4wNjg3NSwgLTAuMDY4NzUsIC0wLjA2MjUsIC0wLjA2MjUsIC0wLjA1ODc1LCAtMC4wNTYyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAsIDAuMDA1LCAwLjAxNzUsIDAuMDE3NSwgMC4wMjM3NSwgMC4wMjc1LCAwLjAzNjI1IiwgXAotICAgICAgICAgICItMC4wMDUsIDAsIDAuMDA2MjUsIDAuMDEyNSwgMC4wMTg3NSwgMC4wMjI1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDE3NSwgLTAuMDA2MjUsIDAsIDAuMDA2MjUsIDAuMDA2MjUsIDAuMDE2MjUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMCwgMCwgMC4wMSwgMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLCAwLjAwMzc1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wMzM3NSwgLTAuMDI4NzUsIC0wLjAxNjI1LCAtMC4wMTYyNSwgLTAuMDEsIC0wLjAwNjI1LCAwLjAwMjUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA4NzUsIC0wLjAwNjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIkQmUk4mIVNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMV9BTl9STl9FUV8xX0FOX1NJX0VRXzAgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDE4NzUsIC0wLjAxMzc1LCAtMC4wMDc1LCAtMC4wMDEyNSwgMC4wMDUsIDAuMDA4NzUsIDAuMDE3NSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMCwgMC4wMDM3NSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAxMjUsIC0wLjAwMjUsIDAiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA4NzUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxNSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA0NjI1LCAtMC4wNDEyNSwgLTAuMDM1LCAtMC4wMjg3NSwgLTAuMDIyNSwgLTAuMDE4NzUsIC0wLjAxNjI1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAyMTI1LCAtMC4wMTg3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAzNzUsIC0wLjAzMjUsIC0wLjAyNjI1LCAtMC4wMjYyNSwgLTAuMDI2MjUsIC0wLjAyMjUsIC0wLjAyIiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzc1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDMxMjUsIC0wLjAyNzUsIC0wLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjA0LCAtMC4wMzc1IiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA1LCAtMC4wNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wNCwgLTAuMDQzNzUiLCBcCi0gICAgICAgICAgIi0wLjA2MTI1LCAtMC4wNTYyNSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNSwgLTAuMDQ2MjUsIC0wLjA0Mzc1IiwgXAotICAgICAgICAgICItMC4wNjUsIC0wLjA2NjI1LCAtMC4wNiwgLTAuMDYsIC0wLjA1Mzc1LCAtMC4wNTYyNSwgLTAuMDUzNzUiLCBcCi0gICAgICAgICAgIi0wLjA3Mzc1LCAtMC4wNjg3NSwgLTAuMDYyNSwgLTAuMDYyNSwgLTAuMDYyNSwgLTAuMDU4NzUsIC0wLjA1NjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRCYhUk4mU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1JOX0VRXzBfQU5fU0lfRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNSwgMC4wMzg3NSwgMC4wMzI1LCAwLjAzMjUsIDAuMDI2MjUsIDAuMDIyNSwgMC4wMiIsIFwKLSAgICAgICAgICAiMC4wNTUsIDAuMDUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzc1LCAwLjAzMzc1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDU2MjUsIDAuMDUsIDAuMDUsIDAuMDQzNzUsIDAuMDQsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiMC4wNzM3NSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1NjI1LCAwLjA1MjUsIDAuMDUiLCBcCi0gICAgICAgICAgIjAuMDgsIDAuMDc1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDYyNSwgMC4wNTg3NSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiMC4wOSwgMC4wODUsIDAuMDc4NzUsIDAuMDcyNSwgMC4wNzI1LCAwLjA2ODc1LCAwLjA2NjI1IiwgXAotICAgICAgICAgICIwLjA5ODc1LCAwLjA5Mzc1LCAwLjA4NzUsIDAuMDgxMjUsIDAuMDgxMjUsIDAuMDc3NSwgMC4wNzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjUsIDAuMDIsIDAuMDA3NSwgMC4wMDEyNSwgLTAuMDA1LCAtMC4wMDg3NSwgLTAuMDExMjUiLCBcCi0gICAgICAgICAgIjAuMDMsIDAuMDI1LCAwLjAxODc1LCAwLjAxMjUsIDAuMDA2MjUsIC0wLjAwMzc1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiMC4wNDI1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMTg3NSwgMC4wMTI1LCAwLjAwODc1LCAwIiwgXAotICAgICAgICAgICIwLjA0ODc1LCAwLjA0Mzc1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMjUsIDAuMDE1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMDU1LCAwLjA1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDMxMjUsIDAuMDIxMjUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMDY1LCAwLjA1Mzc1LCAwLjA0NzUsIDAuMDQxMjUsIDAuMDM1LCAwLjAzMTI1LCAwLjAyMjUiLCBcCi0gICAgICAgICAgIjAuMDczNzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNSwgMC4wNDM3NSwgMC4wMzM3NSwgMC4wMzEyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiRCZSTiYhU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8xX0FOX1JOX0VRXzFfQU5fU0lfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNSwgMC4wMzg3NSwgMC4wMzI1LCAwLjAyNjI1LCAwLjAyLCAwLjAxNjI1LCAwLjAwNzUiLCBcCi0gICAgICAgICAgIjAuMDU1LCAwLjA1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDI1LCAwLjAyMTI1LCAwLjAxODc1IiwgXAotICAgICAgICAgICIwLjA2MTI1LCAwLjA1NjI1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDI3NSwgMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMDY3NSwgMC4wNTYyNSwgMC4wNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzMzc1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiMC4wNzM3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1LCAwLjA0Mzc1LCAwLjAzMzc1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICIwLjA3NzUsIDAuMDY2MjUsIDAuMDYsIDAuMDUzNzUsIDAuMDQ3NSwgMC4wNDM3NSwgMC4wMzUiLCBcCi0gICAgICAgICAgIjAuMDgsIDAuMDc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDUsIDAuMDQ2MjUsIDAuMDM3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2MjUsIDAuMDUxMjUsIDAuMDUxMjUsIDAuMDQ1LCAwLjAzODc1LCAwLjA0MTI1LCAwLjAzODc1IiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNSwgMC4wNSwgMC4wNDYyNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4wOCwgMC4wNjg3NSwgMC4wNjI1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDUyNSwgMC4wNSIsIFwKLSAgICAgICAgICAiMC4wODYyNSwgMC4wNzUsIDAuMDY4NzUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNTg3NSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiMC4wODYyNSwgMC4wODEyNSwgMC4wNzUsIDAuMDY4NzUsIDAuMDY4NzUsIDAuMDY1LCAwLjA2MjUiLCBcCi0gICAgICAgICAgIjAuMDk2MjUsIDAuMDg1LCAwLjA3ODc1LCAwLjA3ODc1LCAwLjA3MjUsIDAuMDY4NzUsIDAuMDY2MjUiLCBcCi0gICAgICAgICAgIjAuMDk4NzUsIDAuMDkzNzUsIDAuMDg3NSwgMC4wODEyNSwgMC4wODEyNSwgMC4wNzc1LCAwLjA3NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oU0kpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY2NzM0NDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2NjYzODQ7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjY3MzQ0OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzA4OCwgMC4wMDMwNjcsIDAuMDAzMDk2LCAwLjAwMzE0NCwgMC4wMDMyMTIsIDAuMDAzMzE5LCAwLjAwMzQ1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA1NDM5LCAwLjAwNTQyLCAwLjAwNTQ0NCwgMC4wMDU0ODcsIDAuMDA1NTUzLCAwLjAwNTY2MywgMC4wMDU3ODMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiU0UiOwotICAgICAgc2RmX2NvbmQgOiAiU0UgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDMxMjUsIC0wLjAyNjI1LCAtMC4wMiwgLTAuMDIsIC0wLjAxMzc1LCAtMC4wMSwgLTAuMDA3NSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAzMTI1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMjUsIC0wLjAyMTI1LCAtMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDM3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAzMTI1LCAtMC4wMjc1LCAtMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wNDM3NSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzNzUsIC0wLjAzMzc1LCAtMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wNDM3NSwgLTAuMDQsIC0wLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjA2NSwgLTAuMDYsIC0wLjA1Mzc1LCAtMC4wNTM3NSwgLTAuMDUzNzUsIC0wLjA1LCAtMC4wNDc1IiwgXAotICAgICAgICAgICItMC4wNzM3NSwgLTAuMDY4NzUsIC0wLjA2MjUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNTI1LCAtMC4wNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAxMjUsIC0wLjAwNzUsIDAuMDA1LCAwLjAwNSwgMC4wMTEyNSwgMC4wMTUsIDAuMDIzNzUiLCBcCi0gICAgICAgICAgIi0wLjAxNzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLCAwLjAwNjI1LCAwLjAxLCAwLjAxODc1IiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLCAwLjAwMzc1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMjUsIC0wLjAxMjUsIC0wLjAxMjUsIC0wLjAwNjI1LCAtMC4wMDI1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDEyNSwgLTAuMDAyNSwgMCIsIFwKLSAgICAgICAgICAiLTAuMDQsIC0wLjAzNSwgLTAuMDI4NzUsIC0wLjAyMjUsIC0wLjAxNjI1LCAtMC4wMTI1LCAtMC4wMSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxNSwgLTAuMDEyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiU0UiOwotICAgICAgc2RmX2NvbmQgOiAiU0UgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDUsIDAuMDQ1LCAwLjAzODc1LCAwLjAzMjUsIDAuMDMyNSwgMC4wMjg3NSwgMC4wMjYyNSIsIFwKLSAgICAgICAgICAiMC4wNjEyNSwgMC4wNSwgMC4wNDM3NSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzMzc1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDU2MjUsIDAuMDUsIDAuMDUsIDAuMDQzNzUsIDAuMDQsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiMC4wNzM3NSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1NjI1LCAwLjA1MjUsIDAuMDUiLCBcCi0gICAgICAgICAgIjAuMDgsIDAuMDc1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDYyNSwgMC4wNTg3NSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiMC4wOSwgMC4wNzg3NSwgMC4wNzI1LCAwLjA3MjUsIDAuMDY2MjUsIDAuMDYyNSwgMC4wNiIsIFwKLSAgICAgICAgICAiMC4wOTI1LCAwLjA4NzUsIDAuMDgxMjUsIDAuMDc1LCAwLjA3NSwgMC4wNzEyNSwgMC4wNjg3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0Mzc1LCAwLjAzMjUsIDAuMDI2MjUsIDAuMDIsIDAuMDEzNzUsIDAuMDAzNzUsIDAuMDAxMjUiLCBcCi0gICAgICAgICAgIjAuMDQ4NzUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMjUsIDAuMDE4NzUsIDAuMDE1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICIwLjA1NSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMjEyNSwgMC4wMTI1IiwgXAotICAgICAgICAgICIwLjA2MTI1LCAwLjA1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDI3NSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4wNjc1LCAwLjA1NjI1LCAwLjA1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDI3NSwgMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMDcxMjUsIDAuMDY2MjUsIDAuMDUzNzUsIDAuMDQ3NSwgMC4wNDc1LCAwLjAzNzUsIDAuMDM1IiwgXAotICAgICAgICAgICIwLjA4LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDUsIDAuMDQ2MjUsIDAuMDM3NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBTREZGVFJYMiAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoU0RGRlRSWDIpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMS4zNTg4NjsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBmZiAoTjMwLFFCSU5UKSB7Ci0gICAgbmV4dF9zdGF0ZSA6ICIoKFNFIFNJKSArICghU0UgKEQgUk4pKSkiOwotICAgIGNsb2NrZWRfb24gOiAiQ0siOwotICB9Ci0gIHBpbihDSykgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNTk4MTUzOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDU5ODE1MzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA1OTgwOTk7Ci0gICAgY2xvY2sgOiB0cnVlOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzU1NCwgMC4wMDM1NDksIDAuMDAzNjMzLCAwLjAwMzcyNCwgMC4wMDM4NTUsIDAuMDA0MDk0LCAwLjAwNDI2NSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNzYzLCAwLjAwNzYyNywgMC4wMDc3MTYsIDAuMDA3ODQ2LCAwLjAwODAwMywgMC4wMDgxODEsIDAuMDA4NDg3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRCYhUk4mIVNFJiFTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fUk5fRVFfMF9BTl9TRV9FUV8wX0FOX1NJX0VRXzAgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4xMDY2NjYsIDAuMTE0ODM1LCAwLjEyMzc1OCwgMC4xMzA4ODQsIDAuMTM2NDc2LCAwLjE0MzkzMSwgMC4xNDkzNjciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjA2MTgyMywgMC4wNjk5MzMsIDAuMDc4ODY3LCAwLjA4NTUzNSwgMC4wOTA5OSwgMC4wOTgxMTEsIDAuMTAzMjg4Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihEKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2NTMwNTQ7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjUzMDU0OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDY1MzA0NTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDM3MDUsIDAuMDAzNzA0LCAwLjAwMzczOSwgMC4wMDM4MjIsIDAuMDAzOTI3LCAwLjAwNDA5OCwgMC4wMDQyNDkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDY1NDYsIDAuMDA2NTU2LCAwLjAwNjYwMSwgMC4wMDY2NzYsIDAuMDA2Nzc4LCAwLjAwNjk0OSwgMC4wMDcxMDUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiUk4mIVNFIjsKLSAgICAgIHNkZl9jb25kIDogIlJOX0VRXzFfQU5fU0VfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wNSwgLTAuMDQ1LCAtMC4wMzg3NSwgLTAuMDM4NzUsIC0wLjAzODc1LCAtMC4wMzUsIC0wLjAzMjUiLCBcCi0gICAgICAgICAgIi0wLjA1NSwgLTAuMDUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDQzNzUsIC0wLjA0LCAtMC4wMzc1IiwgXAotICAgICAgICAgICItMC4wNjc1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDU2MjUsIC0wLjA1NjI1LCAtMC4wNTI1LCAtMC4wNSIsIFwKLSAgICAgICAgICAiLTAuMDczNzUsIC0wLjA2ODc1LCAtMC4wNjg3NSwgLTAuMDY4NzUsIC0wLjA2MjUsIC0wLjA1ODc1LCAtMC4wNTYyNSIsIFwKLSAgICAgICAgICAiLTAuMDg2MjUsIC0wLjA4MTI1LCAtMC4wNzUsIC0wLjA3NSwgLTAuMDc1LCAtMC4wNzEyNSwgLTAuMDY4NzUiLCBcCi0gICAgICAgICAgIi0wLjA5NjI1LCAtMC4wOTEyNSwgLTAuMDg1LCAtMC4wODUsIC0wLjA4NSwgLTAuMDgxMjUsIC0wLjA3ODc1IiwgXAotICAgICAgICAgICItMC4xMDUsIC0wLjEsIC0wLjA5Mzc1LCAtMC4wOTM3NSwgLTAuMDkzNzUsIC0wLjA5LCAtMC4wODc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDEyNSwgLTAuMDAxMjUsIDAuMDA1LCAwLjAxMTI1LCAwLjAxMTI1LCAwLjAyMTI1LCAwLjAyMzc1IiwgXAotICAgICAgICAgICItMC4wMTc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMCwgMC4wMDYyNSwgMC4wMSwgMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAtMC4wMDYyNSwgMC4wMDM3NSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAxMjUsIC0wLjAwMjUsIDAiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDE4NzUsIC0wLjAwODc1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDQ2MjUsIC0wLjA0MTI1LCAtMC4wMzUsIC0wLjAyODc1LCAtMC4wMjI1LCAtMC4wMTg3NSwgLTAuMDE2MjUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAzMTI1LCAtMC4wMjc1LCAtMC4wMTg3NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiUk4mIVNFIjsKLSAgICAgIHNkZl9jb25kIDogIlJOX0VRXzFfQU5fU0VfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzUsIDAuMDcsIDAuMDYzNzUsIDAuMDU3NSwgMC4wNTc1LCAwLjA1Mzc1LCAwLjA1MTI1IiwgXAotICAgICAgICAgICIwLjA4NjI1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1ODc1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICIwLjA5MjUsIDAuMDg3NSwgMC4wODEyNSwgMC4wNzUsIDAuMDc1LCAwLjA3MTI1LCAwLjA2ODc1IiwgXAotICAgICAgICAgICIwLjEwNSwgMC4wOTM3NSwgMC4wODc1LCAwLjA4NzUsIDAuMDgxMjUsIDAuMDc3NSwgMC4wNzUiLCBcCi0gICAgICAgICAgIjAuMTExMjUsIDAuMTA2MjUsIDAuMSwgMC4wOTM3NSwgMC4wOTM3NSwgMC4wOSwgMC4wODc1IiwgXAotICAgICAgICAgICIwLjEyNzUsIDAuMTE2MjUsIDAuMTEsIDAuMTEsIDAuMTAzNzUsIDAuMSwgMC4wOTc1IiwgXAotICAgICAgICAgICIwLjEzNjI1LCAwLjEyNSwgMC4xMTg3NSwgMC4xMTg3NSwgMC4xMTI1LCAwLjEwODc1LCAwLjEwNjI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQzNzUsIDAuMDMyNSwgMC4wMjYyNSwgMC4wMiwgMC4wMTM3NSwgMC4wMDM3NSwgMC4wMDEyNSIsIFwKLSAgICAgICAgICAiMC4wNDg3NSwgMC4wNDM3NSwgMC4wMzEyNSwgMC4wMjUsIDAuMDE4NzUsIDAuMDE1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICIwLjA2MTI1LCAwLjA1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDIxMjUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMDY3NSwgMC4wNTYyNSwgMC4wNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzMzc1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiMC4wNzM3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1LCAwLjA0Mzc1LCAwLjA0LCAwLjAzMTI1IiwgXAotICAgICAgICAgICIwLjA4Mzc1LCAwLjA3MjUsIDAuMDY2MjUsIDAuMDYsIDAuMDUzNzUsIDAuMDUsIDAuMDQxMjUiLCBcCi0gICAgICAgICAgIjAuMDg2MjUsIDAuMDgxMjUsIDAuMDc1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDUyNSwgMC4wNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjY5MTA0MTsKLSAgICBmdW5jdGlvbiA6ICJOMzAiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5vbl91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcmlzaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4MjcyOCwgMC4xNTk4MzIsIDAuMjIxMzk4LCAwLjI5ODE4MSwgMC4zNzQ2NiwgMC40NTEyNTEsIDAuNTI3NTY2IiwgXAotICAgICAgICAgICIwLjA5MDgzNywgMC4xNjc4OTMsIDAuMjI5NDgyLCAwLjMwNjAwMSwgMC4zODI3ODgsIDAuNDU5MzM5LCAwLjUzNTYzNyIsIFwKLSAgICAgICAgICAiMC4wOTk3MDksIDAuMTc2ODM2LCAwLjIzODQ1NSwgMC4zMTUyNDMsIDAuMzkxNjU5LCAwLjQ2ODIyNSwgMC41NDQ2OTgiLCBcCi0gICAgICAgICAgIjAuMTA2Njk1LCAwLjE4MzgyMiwgMC4yNDU0MDEsIDAuMzIyMTk1LCAwLjM5ODIyNywgMC40NzQ4MDUsIDAuNTUxNjY0IiwgXAotICAgICAgICAgICIwLjExMjIwNiwgMC4xODkzMzYsIDAuMjUwNTg2LCAwLjMyNzY1MywgMC40MDQyNDUsIDAuNDgwNjg5LCAwLjU1NzM2OSIsIFwKLSAgICAgICAgICAiMC4xMTk1OTYsIDAuMTk2NzkyLCAwLjI1ODQ4OSwgMC4zMzUwMzYsIDAuNDExNTQyLCAwLjQ4ODEwNCwgMC41NjQ4NDgiLCBcCi0gICAgICAgICAgIjAuMTI1MTA5LCAwLjIwMjI0MiwgMC4yNjM3MTEsIDAuMzQwMjQ1LCAwLjQxNzEwMywgMC40OTM4MTEsIDAuNTcwMzE0Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0MDgzMSwgMC4xOTkyNTcsIDAuMzI4NTA0LCAwLjQ4OTI0NCwgMC42NTE4NDQsIDAuODEzNzczLCAwLjk3NDA2MiIsIFwKLSAgICAgICAgICAiMC4wNDA4MjYsIDAuMTk5MjM3LCAwLjMyODQ4OSwgMC40ODk3NzksIDAuNjUxODQzLCAwLjgxMzc4OSwgMC45NzQxNyIsIFwKLSAgICAgICAgICAiMC4wNDA4MzYsIDAuMTk5MjYxLCAwLjMyNzg0NCwgMC40ODkzNDIsIDAuNjUxODEyLCAwLjgxMzc2NCwgMC45NzQxNzEiLCBcCi0gICAgICAgICAgIjAuMDQwODUxLCAwLjE5OTI2NCwgMC4zMjc5MzcsIDAuNDg5MTczLCAwLjY1MDE4OSwgMC44MTIyMiwgMC45NzQzIiwgXAotICAgICAgICAgICIwLjA0MDgzOSwgMC4xOTkyNzIsIDAuMzI4MDQxLCAwLjQ4OTIyNSwgMC42NTE4MDUsIDAuODEzNzcsIDAuOTc1NjU2IiwgXAotICAgICAgICAgICIwLjA0MDg1MiwgMC4xOTkxOTMsIDAuMzI4NDY4LCAwLjQ4OTI0MywgMC42NTE3MTYsIDAuODEzNjksIDAuOTc1NTYiLCBcCi0gICAgICAgICAgIjAuMDQwODk3LCAwLjE5OTI1MywgMC4zMjg0NTEsIDAuNDg5NDY1LCAwLjY1MTY5OSwgMC44MTI4NDgsIDAuOTc1NTQyIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5MTc0NiwgMC4xNjgyODMsIDAuMjI5MjY1LCAwLjMwNTA4OCwgMC4zODA4MjEsIDAuNDU2NjI5LCAwLjUzMjUxNCIsIFwKLSAgICAgICAgICAiMC4wOTk5MTQsIDAuMTc2NDk5LCAwLjIzNzA5OSwgMC4zMTMzLCAwLjM4OTAyOSwgMC40NjUwOTEsIDAuNTQwNjI0IiwgXAotICAgICAgICAgICIwLjEwODgyOCwgMC4xODU1ODcsIDAuMjQ1OTg3LCAwLjMyMjI2MiwgMC4zOTc3NTIsIDAuNDczNjg4LCAwLjU0OTE5IiwgXAotICAgICAgICAgICIwLjExNTk2MiwgMC4xOTI3MzksIDAuMjUzMTQ1LCAwLjMyOTQ0OSwgMC40MDUxMTIsIDAuNDgwOTc1LCAwLjU1NjY3NyIsIFwKLSAgICAgICAgICAiMC4xMjE1NDgsIDAuMTk4MTA4LCAwLjI1OTIxLCAwLjMzNDg2MywgMC40MTA0NTgsIDAuNDg2NDQzLCAwLjU2MjIwOSIsIFwKLSAgICAgICAgICAiMC4xMjkwMjYsIDAuMjA1NjYyLCAwLjI2NjI3NCwgMC4zNDIzMjEsIDAuNDE4MTIsIDAuNDkzNzA0LCAwLjU2OTciLCBcCi0gICAgICAgICAgIjAuMTM0NTYzLCAwLjIxMTIzMywgMC4yNzIxODQsIDAuMzQ4MDA1LCAwLjQyMzgwOCwgMC40OTk1NDYsIDAuNTc1Mjc2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzOTc0LCAwLjE5NDMzMywgMC4zMTk4NTUsIDAuNDc3Njk3LCAwLjYzNTQ2LCAwLjc5MzE4MSwgMC45NTA4NjMiLCBcCi0gICAgICAgICAgIjAuMDM5NzE5LCAwLjE5NDY0NiwgMC4zMjAwNDcsIDAuNDc2MzIzLCAwLjYzNTQ2MiwgMC43OTE3NjMsIDAuOTUwNzkiLCBcCi0gICAgICAgICAgIjAuMDM5ODY2LCAwLjE5NDU0LCAwLjMxOTI2MSwgMC40NzcwNTQsIDAuNjM0Mjg0LCAwLjc5MzE2NiwgMC45NDg4NjciLCBcCi0gICAgICAgICAgIjAuMDM5OSwgMC4xOTQ0ODMsIDAuMzIwMDM5LCAwLjQ3NjkyMiwgMC42MzU0ODEsIDAuNzkzMTgsIDAuOTUwNzU2IiwgXAotICAgICAgICAgICIwLjAzOTgxMywgMC4xOTM3NzcsIDAuMzIwMDUsIDAuNDc3NjkyLCAwLjYzNTIxNywgMC43OTMxNzEsIDAuOTUwODMiLCBcCi0gICAgICAgICAgIjAuMDM5ODQxLCAwLjE5NDcxLCAwLjMxOTYxNSwgMC40Nzc2MDYsIDAuNjM1MzY0LCAwLjc5MTU4NiwgMC45NTA3NCIsIFwKLSAgICAgICAgICAiMC4wMzk4ODMsIDAuMTk0MTAzLCAwLjMxOTk2MSwgMC40Nzc2MzQsIDAuNjM0NTg1LCAwLjc5MzA4NywgMC45NTA3NjQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2MjQ5LCAwLjAwNjI3MSwgMC4wMDYyNjQsIDAuMDA2MjU5LCAwLjAwNjI1NywgMC4wMDYyNTQsIDAuMDA2MjUzIiwgXAotICAgICAgICAgICIwLjAwNjI0MiwgMC4wMDYyNjUsIDAuMDA2MjU4LCAwLjAwNjI1MywgMC4wMDYyNSwgMC4wMDYyNDksIDAuMDA2MjQ3IiwgXAotICAgICAgICAgICIwLjAwNjI5MywgMC4wMDYzMTYsIDAuMDA2MzA4LCAwLjAwNjMwMywgMC4wMDYyOTksIDAuMDA2Mjk3LCAwLjAwNjI5NSIsIFwKLSAgICAgICAgICAiMC4wMDYzMzUsIDAuMDA2MzYxLCAwLjAwNjM1NCwgMC4wMDYzNDgsIDAuMDA2MzQ0LCAwLjAwNjM0MiwgMC4wMDYzNDEiLCBcCi0gICAgICAgICAgIjAuMDA2NDA3LCAwLjAwNjQzNSwgMC4wMDY0MjgsIDAuMDA2NDIyLCAwLjAwNjQxNywgMC4wMDY0MTUsIDAuMDA2NDEzIiwgXAotICAgICAgICAgICIwLjAwNjUyNSwgMC4wMDY1NSwgMC4wMDY1NDIsIDAuMDA2NTM1LCAwLjAwNjUzLCAwLjAwNjUyNywgMC4wMDY1MjUiLCBcCi0gICAgICAgICAgIjAuMDA2NTk5LCAwLjAwNjYyOCwgMC4wMDY2MjIsIDAuMDA2NjE2LCAwLjAwNjYxMSwgMC4wMDY2MDcsIDAuMDA2NjAxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2NjE4LCAwLjAwNjY2OSwgMC4wMDY2NzYsIDAuMDA2NjgxLCAwLjAwNjY4MiwgMC4wMDY2ODQsIDAuMDA2NjgzIiwgXAotICAgICAgICAgICIwLjAwNjYxOCwgMC4wMDY2NjksIDAuMDA2Njc2LCAwLjAwNjY4LCAwLjAwNjY4NCwgMC4wMDY2ODMsIDAuMDA2Njg3IiwgXAotICAgICAgICAgICIwLjAwNjY3NCwgMC4wMDY3MjUsIDAuMDA2NzMzLCAwLjAwNjczNiwgMC4wMDY3MzgsIDAuMDA2NzM5LCAwLjAwNjczOSIsIFwKLSAgICAgICAgICAiMC4wMDY3MzEsIDAuMDA2NzgxLCAwLjAwNjc4OCwgMC4wMDY3OTEsIDAuMDA2Nzk1LCAwLjAwNjc5NiwgMC4wMDY3OTgiLCBcCi0gICAgICAgICAgIjAuMDA2OCwgMC4wMDY4NTEsIDAuMDA2ODU3LCAwLjAwNjg2MywgMC4wMDY4NjIsIDAuMDA2ODY1LCAwLjAwNjg2NCIsIFwKLSAgICAgICAgICAiMC4wMDY5MjUsIDAuMDA2OTc0LCAwLjAwNjk4MSwgMC4wMDY5ODQsIDAuMDA2OTg1LCAwLjAwNjk4NiwgMC4wMDY5ODYiLCBcCi0gICAgICAgICAgIjAuMDA3MDI0LCAwLjAwNzA3NCwgMC4wMDcwOCwgMC4wMDcwODIsIDAuMDA3MDgzLCAwLjAwNzA4NSwgMC4wMDcwODUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFFOKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuNjc4NzQ1OwotICAgIGZ1bmN0aW9uIDogIlFCSU5UIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBub25fdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJpc2luZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDY2NjgsIDAuMTgzMDQ5LCAwLjI0NDI0NiwgMC4zMjA3MTIsIDAuMzk3MTU2LCAwLjQ3MzYyNywgMC41NTAxMzciLCBcCi0gICAgICAgICAgIjAuMTE0ODM2LCAwLjE5MTI1OSwgMC4yNTI0NDgsIDAuMzI4OTM1LCAwLjQwNTM3NywgMC40ODE5NjUsIDAuNTU4MzE0IiwgXAotICAgICAgICAgICIwLjEyMzc1OCwgMC4yMDAxNDMsIDAuMjYxMzIyLCAwLjMzNzgyMSwgMC40MTQyMzgsIDAuNDkwNjkzLCAwLjU2NzIwMiIsIFwKLSAgICAgICAgICAiMC4xMzA4ODQsIDAuMjA3MzIsIDAuMjY4NDksIDAuMzQ1MDA2LCAwLjQyMTQzMiwgMC40OTc5MzMsIDAuNTc0MzYzIiwgXAotICAgICAgICAgICIwLjEzNjQ3NywgMC4yMTI4NjIsIDAuMjc0MTAzLCAwLjM1MDUyMiwgMC40MjY5NzIsIDAuNTAzNDUsIDAuNTc5OTA2IiwgXAotICAgICAgICAgICIwLjE0Mzk1NiwgMC4yMjAzNjgsIDAuMjgxNTcyLCAwLjM1ODAxNSwgMC40MzQ0ODEsIDAuNTEwOTUyLCAwLjU4NzQxMSIsIFwKLSAgICAgICAgICAiMC4xNDk0OSwgMC4yMjU4NjMsIDAuMjg3MDgsIDAuMzYzNTYsIDAuNDQwMDMxLCAwLjUxNjQ4MywgMC41OTI5MjEiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM5MTI1LCAwLjE5ODM2MywgMC4zMjc3NTMsIDAuNDg5MTYsIDAuNjUwNTE5LCAwLjgxMTkwOSwgMC45NzMyNjYiLCBcCi0gICAgICAgICAgIjAuMDM5MTI1LCAwLjE5ODU5NSwgMC4zMjczMjksIDAuNDg4Mjg2LCAwLjY1MDUwNCwgMC44MTA2NjYsIDAuOTczMjM4IiwgXAotICAgICAgICAgICIwLjAzOTEwNSwgMC4xOTgxNjYsIDAuMzI2OTcxLCAwLjQ4ODI4MywgMC42NDk2ODYsIDAuODExOTA2LCAwLjk3MTU5MSIsIFwKLSAgICAgICAgICAiMC4wMzkxMjgsIDAuMTk4Mjg4LCAwLjMyNzMzMSwgMC40ODg1NjgsIDAuNjUwNTE1LCAwLjgxMTg4OCwgMC45NzMyMDciLCBcCi0gICAgICAgICAgIjAuMDM5MTE2LCAwLjE5ODI5NiwgMC4zMjcyOTYsIDAuNDg5MTQ3LCAwLjY1MDA5OSwgMC44MTE4OTQsIDAuOTczMzAxIiwgXAotICAgICAgICAgICIwLjAzOTEyOCwgMC4xOTg2MTUsIDAuMzI3MzM1LCAwLjQ4OTA4MSwgMC42NTA0NSwgMC44MTA5OTYsIDAuOTczMjM5IiwgXAotICAgICAgICAgICIwLjAzOTExOSwgMC4xOTg0NjQsIDAuMzI3Njk5LCAwLjQ4OTEwNCwgMC42NDk4NzcsIDAuODExODE1LCAwLjk3MzIxMyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTk2MzEsIDAuMTc1NDY3LCAwLjIzNjA4NiwgMC4zMTE4NzgsIDAuMzg3NTk1LCAwLjQ2MzMzOSwgMC41Mzg5NiIsIFwKLSAgICAgICAgICAiMC4xMDc3MzcsIDAuMTgzNTg0LCAwLjI0NDIsIDAuMzE5OTYxLCAwLjM5NTcxOSwgMC40NzE0NTIsIDAuNTQ3MDc0IiwgXAotICAgICAgICAgICIwLjExNjYxMiwgMC4xOTI0NDksIDAuMjUzMDc2LCAwLjMyODg4MywgMC40MDQ1ODEsIDAuNDgwMzE4LCAwLjU1NjA2MiIsIFwKLSAgICAgICAgICAiMC4xMjM1OTYsIDAuMTk5NDMyLCAwLjI2MDA1MiwgMC4zMzU4NTMsIDAuNDExNDQyLCAwLjQ4NzE2NywgMC41NjMwNDUiLCBcCi0gICAgICAgICAgIjAuMTI5MTExLCAwLjIwNDkwMywgMC4yNjU1MTQsIDAuMzQxMzA3LCAwLjQxNzA0NywgMC40OTI3NTMsIDAuNTY4NTMiLCBcCi0gICAgICAgICAgIjAuMTM2NTA4LCAwLjIxMjMyNCwgMC4yNzI5NzksIDAuMzQ4NzI3LCAwLjQyNDQzOSwgMC41MDAxODEsIDAuNTc1OTg4IiwgXAotICAgICAgICAgICIwLjE0MjAxMywgMC4yMTc4NDksIDAuMjc4NDY0LCAwLjM1NDIwOSwgMC40Mjk5OSwgMC41MDU3ODEsIDAuNTgxNDk2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzODM2NCwgMC4xOTM3OSwgMC4zMTk3NzEsIDAuNDc2NDI4LCAwLjYzNDgxOSwgMC43OTIzMjcsIDAuOTQ4Njg5IiwgXAotICAgICAgICAgICIwLjAzODM2NSwgMC4xOTM3MzMsIDAuMzE5NzU4LCAwLjQ3NzAzMiwgMC42MzQ4MTksIDAuNzkyMzMsIDAuOTQ4Nzc5IiwgXAotICAgICAgICAgICIwLjAzODM2MiwgMC4xOTM4MSwgMC4zMTkyNDMsIDAuNDc2NTY1LCAwLjYzNDgsIDAuNzkyMzEzLCAwLjk0ODc1IiwgXAotICAgICAgICAgICIwLjAzODM2MiwgMC4xOTM4LCAwLjMxOTIzNSwgMC40NzYzMzUsIDAuNjMzMDM3LCAwLjc5MDY2LCAwLjk0ODg4NSIsIFwKLSAgICAgICAgICAiMC4wMzgzNjIsIDAuMTkzNzg4LCAwLjMxOTQ0MSwgMC40NzY0NDQsIDAuNjM0ODA3LCAwLjc5MjI5MSwgMC45NDk4MzIiLCBcCi0gICAgICAgICAgIjAuMDM4MzYzLCAwLjE5MzY2NCwgMC4zMTk3MjMsIDAuNDc2NTA5LCAwLjYzNDY4NywgMC43OTIxOTgsIDAuOTQ5NzEiLCBcCi0gICAgICAgICAgIjAuMDM4MzY0LCAwLjE5Mzc3NSwgMC4zMTk3MDcsIDAuNDc2NzA5LCAwLjYzNDY5MiwgMC43OTE1MDIsIDAuOTQ5NzExIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjYxOCwgMC4wMDY2NjksIDAuMDA2Njc2LCAwLjAwNjY4MSwgMC4wMDY2ODIsIDAuMDA2Njg0LCAwLjAwNjY4MyIsIFwKLSAgICAgICAgICAiMC4wMDY2MTgsIDAuMDA2NjY5LCAwLjAwNjY3NiwgMC4wMDY2OCwgMC4wMDY2ODQsIDAuMDA2NjgzLCAwLjAwNjY4NyIsIFwKLSAgICAgICAgICAiMC4wMDY2NzQsIDAuMDA2NzI1LCAwLjAwNjczMywgMC4wMDY3MzYsIDAuMDA2NzM4LCAwLjAwNjczOSwgMC4wMDY3MzkiLCBcCi0gICAgICAgICAgIjAuMDA2NzMxLCAwLjAwNjc4MSwgMC4wMDY3ODgsIDAuMDA2NzkxLCAwLjAwNjc5NSwgMC4wMDY3OTYsIDAuMDA2Nzk4IiwgXAotICAgICAgICAgICIwLjAwNjgsIDAuMDA2ODUxLCAwLjAwNjg1NywgMC4wMDY4NjMsIDAuMDA2ODYyLCAwLjAwNjg2NSwgMC4wMDY4NjQiLCBcCi0gICAgICAgICAgIjAuMDA2OTI1LCAwLjAwNjk3NCwgMC4wMDY5ODEsIDAuMDA2OTg0LCAwLjAwNjk4NSwgMC4wMDY5ODYsIDAuMDA2OTg2IiwgXAotICAgICAgICAgICIwLjAwNzAyNCwgMC4wMDcwNzQsIDAuMDA3MDgsIDAuMDA3MDgyLCAwLjAwNzA4MywgMC4wMDcwODUsIDAuMDA3MDg1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2MjQ5LCAwLjAwNjI3MSwgMC4wMDYyNjQsIDAuMDA2MjU5LCAwLjAwNjI1NywgMC4wMDYyNTQsIDAuMDA2MjUzIiwgXAotICAgICAgICAgICIwLjAwNjI0MiwgMC4wMDYyNjUsIDAuMDA2MjU4LCAwLjAwNjI1MywgMC4wMDYyNSwgMC4wMDYyNDksIDAuMDA2MjQ3IiwgXAotICAgICAgICAgICIwLjAwNjI5MywgMC4wMDYzMTYsIDAuMDA2MzA4LCAwLjAwNjMwMywgMC4wMDYyOTksIDAuMDA2Mjk3LCAwLjAwNjI5NSIsIFwKLSAgICAgICAgICAiMC4wMDYzMzUsIDAuMDA2MzYxLCAwLjAwNjM1NCwgMC4wMDYzNDgsIDAuMDA2MzQ0LCAwLjAwNjM0MiwgMC4wMDYzNDEiLCBcCi0gICAgICAgICAgIjAuMDA2NDA3LCAwLjAwNjQzNSwgMC4wMDY0MjgsIDAuMDA2NDIyLCAwLjAwNjQxNywgMC4wMDY0MTUsIDAuMDA2NDEzIiwgXAotICAgICAgICAgICIwLjAwNjUyNSwgMC4wMDY1NSwgMC4wMDY1NDIsIDAuMDA2NTM1LCAwLjAwNjUzLCAwLjAwNjUyNywgMC4wMDY1MjUiLCBcCi0gICAgICAgICAgIjAuMDA2NTk5LCAwLjAwNjYyOCwgMC4wMDY2MjIsIDAuMDA2NjE2LCAwLjAwNjYxMSwgMC4wMDY2MDcsIDAuMDA2NjAxIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihSTikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjI3NzQ7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjI3NzQ7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjI3MDc3OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzcwNSwgMC4wMDM2ODUsIDAuMDAzNzAzLCAwLjAwMzc2NCwgMC4wMDM4MjQsIDAuMDAzOTU4LCAwLjAwNDA4NiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNjg1OCwgMC4wMDY4NjcsIDAuMDA2OTE1LCAwLjAwNjk5NywgMC4wMDcxMDYsIDAuMDA3MzE2LCAwLjAwNzQxNCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJEJiFTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzFfQU5fU0VfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wNSwgLTAuMDQ1LCAtMC4wNDUsIC0wLjAzODc1LCAtMC4wMzg3NSwgLTAuMDM1LCAtMC4wMzI1IiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjA0Mzc1LCAtMC4wNCwgLTAuMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDYxMjUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjA0NjI1LCAtMC4wNSIsIFwKLSAgICAgICAgICAiLTAuMDczNzUsIC0wLjA2ODc1LCAtMC4wNjI1LCAtMC4wNjI1LCAtMC4wNjI1LCAtMC4wNTg3NSwgLTAuMDU2MjUiLCBcCi0gICAgICAgICAgIi0wLjA4LCAtMC4wNzUsIC0wLjA2ODc1LCAtMC4wNjg3NSwgLTAuMDY4NzUsIC0wLjA2NSwgLTAuMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDgzNzUsIC0wLjA4NSwgLTAuMDc4NzUsIC0wLjA3ODc1LCAtMC4wNzI1LCAtMC4wNzUsIC0wLjA3MjUiLCBcCi0gICAgICAgICAgIi0wLjA5MjUsIC0wLjA4NzUsIC0wLjA4NzUsIC0wLjA4NzUsIC0wLjA4MTI1LCAtMC4wNzc1LCAtMC4wNzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMTI1LCAtMC4wMDc1LCAwLjAwNSwgMC4wMDUsIDAuMDExMjUsIDAuMDE1LCAwLjAyMzc1IiwgXAotICAgICAgICAgICItMC4wMTc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMCwgMC4wMDYyNSwgMC4wMSwgMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAxMjUsIC0wLjAwNjI1LCAtMC4wMDI1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwODc1LCAwIiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wNDYyNSwgLTAuMDQxMjUsIC0wLjAzNSwgLTAuMDI4NzUsIC0wLjAyODc1LCAtMC4wMTg3NSwgLTAuMDE2MjUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wNDM3NSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMjc1LCAtMC4wMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIkQmIVNFIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMV9BTl9TRV9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4MTI1LCAwLjA3LCAwLjA2Mzc1LCAwLjA2Mzc1LCAwLjA1NzUsIDAuMDUzNzUsIDAuMDUxMjUiLCBcCi0gICAgICAgICAgIjAuMDg2MjUsIDAuMDc1LCAwLjA2ODc1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDU4NzUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIjAuMDkyNSwgMC4wODc1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNzUsIDAuMDcxMjUsIDAuMDY4NzUiLCBcCi0gICAgICAgICAgIjAuMDk4NzUsIDAuMDkzNzUsIDAuMDg3NSwgMC4wODEyNSwgMC4wODEyNSwgMC4wNzc1LCAwLjA3NSIsIFwKLSAgICAgICAgICAiMC4xMDUsIDAuMSwgMC4wOTM3NSwgMC4wODc1LCAwLjA4NzUsIDAuMDgzNzUsIDAuMDgxMjUiLCBcCi0gICAgICAgICAgIjAuMTE1LCAwLjExLCAwLjEwMzc1LCAwLjA5NzUsIDAuMDk3NSwgMC4wOTM3NSwgMC4wOTEyNSIsIFwKLSAgICAgICAgICAiMC4xMjM3NSwgMC4xMTg3NSwgMC4xMTI1LCAwLjEwNjI1LCAwLjEwNjI1LCAwLjEwMjUsIDAuMSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0Mzc1LCAwLjAzMjUsIDAuMDI2MjUsIDAuMDIsIDAuMDEzNzUsIDAuMDEsIDAuMDAxMjUiLCBcCi0gICAgICAgICAgIjAuMDQ4NzUsIDAuMDQzNzUsIDAuMDMxMjUsIDAuMDI1LCAwLjAyNSwgMC4wMTUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4wNjEyNSwgMC4wNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyNzUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMDY3NSwgMC4wNjI1LCAwLjA1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDMzNzUsIDAuMDI1IiwgXAotICAgICAgICAgICIwLjA3Mzc1LCAwLjA2ODc1LCAwLjA1NjI1LCAwLjA1LCAwLjA1LCAwLjA0LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIjAuMDgzNzUsIDAuMDc4NzUsIDAuMDY2MjUsIDAuMDYsIDAuMDUzNzUsIDAuMDUsIDAuMDQ3NSIsIFwKLSAgICAgICAgICAiMC4wOTI1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1ODc1LCAwLjA1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTRSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxMjQ3MDE7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxMjQ3MDE7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxMjQ2OTE7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA1MDM5LCAwLjAwNTA1NSwgMC4wMDUxNTMsIDAuMDA1MjU0LCAwLjAwNTQyMSwgMC4wMDU2MywgMC4wMDU4MzQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDY4MjUsIDAuMDA2ODM0LCAwLjAwNjk2MiwgMC4wMDcxMzEsIDAuMDA3MzMxLCAwLjAwNzY5NiwgMC4wMDgwMzgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUQmIVJOJlNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9STl9FUV8wX0FOX1NJX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDI1LCAtMC4wMiwgLTAuMDEzNzUsIC0wLjAxMzc1LCAtMC4wMTM3NSwgLTAuMDEsIC0wLjAwNzUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMjUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxODc1LCAtMC4wMTUsIC0wLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMjEyNSwgLTAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wNDM3NSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzNzUsIC0wLjAzMzc1LCAtMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wNDM3NSwgLTAuMDQsIC0wLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjA2NSwgLTAuMDYsIC0wLjA2LCAtMC4wNTM3NSwgLTAuMDUzNzUsIC0wLjA1LCAtMC4wNDc1IiwgXAotICAgICAgICAgICItMC4wNzM3NSwgLTAuMDY4NzUsIC0wLjA2MjUsIC0wLjA2MjUsIC0wLjA2MjUsIC0wLjA1ODc1LCAtMC4wNTYyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAsIDAuMDExMjUsIDAuMDE3NSwgMC4wMjM3NSwgMC4wMjM3NSwgMC4wMzM3NSwgMC4wMzYyNSIsIFwKLSAgICAgICAgICAiLTAuMDA1LCAwLCAwLjAwNjI1LCAwLjAxMjUsIDAuMDE4NzUsIDAuMDIyNSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDE3NSwgLTAuMDA2MjUsIDAsIDAuMDA2MjUsIDAuMDEyNSwgMC4wMTYyNSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDE3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAsIDAuMDA2MjUsIDAuMDEsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMCwgMC4wMDM3NSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDI3NSwgLTAuMDIyNSwgLTAuMDE2MjUsIC0wLjAxLCAtMC4wMSwgMCwgMC4wMDI1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDg3NSwgMCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJEJlJOJiFTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzFfQU5fUk5fRVFfMV9BTl9TSV9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAxODc1LCAtMC4wMDc1LCAtMC4wMDEyNSwgMC4wMDUsIDAuMDA1LCAwLjAxNSwgMC4wMTc1IiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLCAwLjAwMzc1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIC0wLjAwMjUsIDAiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA4NzUsIDAiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTg3NSwgLTAuMDA4NzUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wNDYyNSwgLTAuMDQxMjUsIC0wLjAzNSwgLTAuMDI4NzUsIC0wLjAyMjUsIC0wLjAxODc1LCAtMC4wMSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMjEyNSwgLTAuMDE4NzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMzc1LCAtMC4wMzI1LCAtMC4wMjYyNSwgLTAuMDI2MjUsIC0wLjAyLCAtMC4wMjI1LCAtMC4wMiIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDM3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAzMTI1LCAtMC4wMjc1LCAtMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wNDM3NSwgLTAuMDQzNzUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzM3NSwgLTAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjA1NSwgLTAuMDUsIC0wLjA1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjA0LCAtMC4wMzc1IiwgXAotICAgICAgICAgICItMC4wNjEyNSwgLTAuMDU2MjUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDUsIC0wLjA0NjI1LCAtMC4wNDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDY1LCAtMC4wNjYyNSwgLTAuMDYsIC0wLjA2LCAtMC4wNTM3NSwgLTAuMDUsIC0wLjA0NzUiLCBcCi0gICAgICAgICAgIi0wLjA3Mzc1LCAtMC4wNjg3NSwgLTAuMDYyNSwgLTAuMDYyNSwgLTAuMDYyNSwgLTAuMDU4NzUsIC0wLjA1NjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRCYhUk4mU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1JOX0VRXzBfQU5fU0lfRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNSwgMC4wMzg3NSwgMC4wMzI1LCAwLjAzMjUsIDAuMDI2MjUsIDAuMDIyNSwgMC4wMiIsIFwKLSAgICAgICAgICAiMC4wNTUsIDAuMDUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzc1LCAwLjAzMzc1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDU2MjUsIDAuMDUsIDAuMDUsIDAuMDQzNzUsIDAuMDQsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiMC4wNzM3NSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1NjI1LCAwLjA1MjUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMDgsIDAuMDc1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDYyNSwgMC4wNTg3NSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiMC4wOSwgMC4wODUsIDAuMDc4NzUsIDAuMDcyNSwgMC4wNzI1LCAwLjA2ODc1LCAwLjA2NjI1IiwgXAotICAgICAgICAgICIwLjA5ODc1LCAwLjA5Mzc1LCAwLjA4NzUsIDAuMDgxMjUsIDAuMDgxMjUsIDAuMDc3NSwgMC4wNzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjUsIDAuMDIsIDAuMDA3NSwgMC4wMDEyNSwgLTAuMDA1LCAtMC4wMDg3NSwgLTAuMDE3NSIsIFwKLSAgICAgICAgICAiMC4wMzYyNSwgMC4wMjUsIDAuMDE4NzUsIDAuMDEyNSwgMC4wMDYyNSwgLTAuMDAzNzUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICIwLjA0MjUsIDAuMDM3NSwgMC4wMjUsIDAuMDE4NzUsIDAuMDEyNSwgMC4wMDg3NSwgMCIsIFwKLSAgICAgICAgICAiMC4wNDg3NSwgMC4wNDM3NSwgMC4wMzEyNSwgMC4wMjUsIDAuMDE4NzUsIDAuMDE1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMDU1LCAwLjA1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDI1LCAwLjAyMTI1LCAwLjAxODc1IiwgXAotICAgICAgICAgICIwLjA2NSwgMC4wNiwgMC4wNDc1LCAwLjA0MTI1LCAwLjAzNSwgMC4wMzEyNSwgMC4wMjI1IiwgXAotICAgICAgICAgICIwLjA3Mzc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDUsIDAuMDQzNzUsIDAuMDMzNzUsIDAuMDMxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIkQmUk4mIVNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMV9BTl9STl9FUV8xX0FOX1NJX0VRXzAgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDUsIDAuMDM4NzUsIDAuMDMyNSwgMC4wMjYyNSwgMC4wMiwgMC4wMSwgMC4wMDc1IiwgXAotICAgICAgICAgICIwLjA1NSwgMC4wNSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMjEyNSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4wNjEyNSwgMC4wNTYyNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzNzUsIDAuMDI3NSwgMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMDY3NSwgMC4wNjI1LCAwLjA1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDMzNzUsIDAuMDI1IiwgXAotICAgICAgICAgICIwLjA3Mzc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDUsIDAuMDQzNzUsIDAuMDMzNzUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMDc3NSwgMC4wNjYyNSwgMC4wNiwgMC4wNTM3NSwgMC4wNDc1LCAwLjA0Mzc1LCAwLjAzNSIsIFwKLSAgICAgICAgICAiMC4wOCwgMC4wNzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNTYyNSwgMC4wNDYyNSwgMC4wNDM3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2MjUsIDAuMDU3NSwgMC4wNTEyNSwgMC4wNDUsIDAuMDQ1LCAwLjA0MTI1LCAwLjAzODc1IiwgXAotICAgICAgICAgICIwLjA3Mzc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDUsIDAuMDUsIDAuMDQ2MjUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMDgsIDAuMDc1LCAwLjA2MjUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNTI1LCAwLjA1IiwgXAotICAgICAgICAgICIwLjA4NjI1LCAwLjA4MTI1LCAwLjA2ODc1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDU4NzUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIjAuMDkyNSwgMC4wODEyNSwgMC4wNzUsIDAuMDc1LCAwLjA2ODc1LCAwLjA2NSwgMC4wNjI1IiwgXAotICAgICAgICAgICIwLjA5NjI1LCAwLjA5MTI1LCAwLjA3ODc1LCAwLjA3ODc1LCAwLjA3MjUsIDAuMDY4NzUsIDAuMDY2MjUiLCBcCi0gICAgICAgICAgIjAuMDk4NzUsIDAuMDkzNzUsIDAuMDg3NSwgMC4wODEyNSwgMC4wODEyNSwgMC4wNzc1LCAwLjA3NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oU0kpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY1NDUyODsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2NTM1ODsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2NTQ1Mjg7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzMDkyLCAwLjAwMzA2OCwgMC4wMDMwOTcsIDAuMDAzMTQ5LCAwLjAwMzIxMywgMC4wMDMzMjIsIDAuMDAzNDUyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA1NDM4LCAwLjAwNTQyMiwgMC4wMDU0NDgsIDAuMDA1NDkzLCAwLjAwNTU2LCAwLjAwNTY2NywgMC4wMDU3ODciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiU0UiOwotICAgICAgc2RmX2NvbmQgOiAiU0UgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDMxMjUsIC0wLjAyNjI1LCAtMC4wMiwgLTAuMDIsIC0wLjAxMzc1LCAtMC4wMSwgLTAuMDA3NSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxNSwgLTAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDM3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAzMTI1LCAtMC4wMjc1LCAtMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wNDM3NSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzNzUsIC0wLjAzMzc1LCAtMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wNDM3NSwgLTAuMDQsIC0wLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjA2NSwgLTAuMDYsIC0wLjA1Mzc1LCAtMC4wNTM3NSwgLTAuMDQ3NSwgLTAuMDQzNzUsIC0wLjA0MTI1IiwgXAotICAgICAgICAgICItMC4wNjc1LCAtMC4wNjI1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDU2MjUsIC0wLjA1MjUsIC0wLjA1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDEyNSwgLTAuMDAxMjUsIDAuMDA1LCAwLjAxMTI1LCAwLjAxMTI1LCAwLjAyMTI1LCAwLjAyMzc1IiwgXAotICAgICAgICAgICItMC4wMTc1LCAtMC4wMDYyNSwgMCwgMC4wMDYyNSwgMC4wMDYyNSwgMC4wMTYyNSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLCAwLCAwLjAxLCAwLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIC0wLjAwNjI1LCAwLjAwMzc1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIC0wLjAwMjUsIDAiLCBcCi0gICAgICAgICAgIi0wLjA0LCAtMC4wMjg3NSwgLTAuMDIyNSwgLTAuMDE2MjUsIC0wLjAxNjI1LCAtMC4wMDYyNSwgLTAuMDAzNzUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTUsIC0wLjAxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlNFIjsKLSAgICAgIHNkZl9jb25kIDogIlNFID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1NjI1LCAwLjA0NSwgMC4wMzg3NSwgMC4wMzI1LCAwLjAzMjUsIDAuMDI4NzUsIDAuMDI2MjUiLCBcCi0gICAgICAgICAgIjAuMDYxMjUsIDAuMDUsIDAuMDQzNzUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzM3NSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4wNjc1LCAwLjA1NjI1LCAwLjA1LCAwLjA1LCAwLjA0Mzc1LCAwLjA0LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIjAuMDczNzUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNSwgMC4wNDYyNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4wOCwgMC4wNzUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNjI1LCAwLjA1MjUsIDAuMDUiLCBcCi0gICAgICAgICAgIjAuMDksIDAuMDc4NzUsIDAuMDcyNSwgMC4wNzI1LCAwLjA2NjI1LCAwLjA2MjUsIDAuMDYiLCBcCi0gICAgICAgICAgIjAuMDk4NzUsIDAuMDg3NSwgMC4wODEyNSwgMC4wNzUsIDAuMDc1LCAwLjA3MTI1LCAwLjA2ODc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQzNzUsIDAuMDMyNSwgMC4wMjYyNSwgMC4wMiwgMC4wMTM3NSwgMC4wMDM3NSwgMC4wMDEyNSIsIFwKLSAgICAgICAgICAiMC4wNDg3NSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMTg3NSwgMC4wMDg3NSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiMC4wNTUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMjUsIDAuMDE1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMDYxMjUsIDAuMDUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMjEyNSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4wNjc1LCAwLjA1NjI1LCAwLjA1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDI3NSwgMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMDcxMjUsIDAuMDY2MjUsIDAuMDUzNzUsIDAuMDQ3NSwgMC4wNDc1LCAwLjAzNzUsIDAuMDM1IiwgXAotICAgICAgICAgICIwLjA4LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDUsIDAuMDQsIDAuMDM3NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBTREZGVFJYNCAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoU0RGRlRSWDQpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMS44NjQyNzsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBmZiAoTjMwLFFCSU5UKSB7Ci0gICAgbmV4dF9zdGF0ZSA6ICIoKFNFIFNJKSArICghU0UgKEQgUk4pKSkiOwotICAgIGNsb2NrZWRfb24gOiAiQ0siOwotICB9Ci0gIHBpbihDSykgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjY4Njg4OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDY2ODU5NDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2Njg2ODg7Ci0gICAgY2xvY2sgOiB0cnVlOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzcwNSwgMC4wMDM3MDYsIDAuMDAzNzY2LCAwLjAwMzg4MiwgMC4wMDM5ODksIDAuMDA0MjA3LCAwLjAwNDQwNyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNjk4NCwgMC4wMDY5OTgsIDAuMDA3MDcyLCAwLjAwNzIsIDAuMDA3MzM4LCAwLjAwNzYyNCwgMC4wMDc4NzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFEJiFSTiYhU0UmIVNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9STl9FUV8wX0FOX1NFX0VRXzBfQU5fU0lfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjEwMjE5NCwgMC4xMTAyNTgsIDAuMTE4Nzg2LCAwLjEyNTAyMSwgMC4xMzAzNjcsIDAuMTM3MjA4LCAwLjE0MjMxMyIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDU4NjYyLCAwLjA2NjU2MiwgMC4wNzUwMDQsIDAuMDgxMTIyLCAwLjA4NjA4NSwgMC4wOTI1NDksIDAuMDk3MjQxIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihEKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2MzkzNTc7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjM5MzU3OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDYzOTE0OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzY2NywgMC4wMDM2NzIsIDAuMDAzNzAxLCAwLjAwMzc5MywgMC4wMDM4ODYsIDAuMDA0MDYxLCAwLjAwNDIwOCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNjg4MiwgMC4wMDY4OSwgMC4wMDY5MzQsIDAuMDA3MDA3LCAwLjAwNzEwNCwgMC4wMDcyNzcsIDAuMDA3NDMyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlJOJiFTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJSTl9FUV8xX0FOX1NFX0VRXzAgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDUsIC0wLjA0NSwgLTAuMDQ1LCAtMC4wNDUsIC0wLjAzODc1LCAtMC4wNDEyNSwgLTAuMDM4NzUiLCBcCi0gICAgICAgICAgIi0wLjA1NSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNSwgLTAuMDUsIC0wLjA0NjI1LCAtMC4wNDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDY3NSwgLTAuMDYyNSwgLTAuMDYyNSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA1ODc1LCAtMC4wNTYyNSIsIFwKLSAgICAgICAgICAiLTAuMDgsIC0wLjA3NSwgLTAuMDY4NzUsIC0wLjA2ODc1LCAtMC4wNjg3NSwgLTAuMDY1LCAtMC4wNjI1IiwgXAotICAgICAgICAgICItMC4wODYyNSwgLTAuMDgxMjUsIC0wLjA4MTI1LCAtMC4wNzUsIC0wLjA3NSwgLTAuMDc3NSwgLTAuMDc1IiwgXAotICAgICAgICAgICItMC4wOTYyNSwgLTAuMDkxMjUsIC0wLjA5MTI1LCAtMC4wOTEyNSwgLTAuMDkxMjUsIC0wLjA4NzUsIC0wLjA4NSIsIFwKLSAgICAgICAgICAiLTAuMTA1LCAtMC4xLCAtMC4xLCAtMC4xLCAtMC4xLCAtMC4wOTYyNSwgLTAuMDkzNzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMTI1LCAtMC4wMDc1LCAtMC4wMDEyNSwgMC4wMDUsIDAuMDExMjUsIDAuMDE1LCAwLjAxNzUiLCBcCi0gICAgICAgICAgIi0wLjAxNzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLCAwLCAwLjAwMzc1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMTg3NSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAtMC4wMDI1LCAwIiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwODc1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAzMTI1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDE1LCAtMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wNCwgLTAuMDM1LCAtMC4wMzUsIC0wLjAzNSwgLTAuMDI4NzUsIC0wLjAyNSwgLTAuMDIyNSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzNzUsIC0wLjAzNzUsIC0wLjAyNzUsIC0wLjAyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiUk4mIVNFIjsKLSAgICAgIHNkZl9jb25kIDogIlJOX0VRXzFfQU5fU0VfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODEyNSwgMC4wNzYyNSwgMC4wNywgMC4wNjM3NSwgMC4wNjM3NSwgMC4wNiwgMC4wNTc1IiwgXAotICAgICAgICAgICIwLjA5MjUsIDAuMDgxMjUsIDAuMDc1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjUsIDAuMDYyNSIsIFwKLSAgICAgICAgICAiMC4wOTg3NSwgMC4wOTM3NSwgMC4wODc1LCAwLjA4MTI1LCAwLjA4MTI1LCAwLjA3NzUsIDAuMDc1IiwgXAotICAgICAgICAgICIwLjExMTI1LCAwLjEsIDAuMDkzNzUsIDAuMDkzNzUsIDAuMDg3NSwgMC4wODM3NSwgMC4wODEyNSIsIFwKLSAgICAgICAgICAiMC4xMTc1LCAwLjExMjUsIDAuMTA2MjUsIDAuMSwgMC4xLCAwLjA5NjI1LCAwLjA5Mzc1IiwgXAotICAgICAgICAgICIwLjEzMzc1LCAwLjEyMjUsIDAuMTE2MjUsIDAuMTE2MjUsIDAuMTEsIDAuMTA2MjUsIDAuMTAzNzUiLCBcCi0gICAgICAgICAgIjAuMTQyNSwgMC4xMzEyNSwgMC4xMjUsIDAuMTI1LCAwLjExODc1LCAwLjExNSwgMC4xMTI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQzNzUsIDAuMDM4NzUsIDAuMDMyNSwgMC4wMjYyNSwgMC4wMiwgMC4wMTYyNSwgMC4wMDc1IiwgXAotICAgICAgICAgICIwLjA1NSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMjEyNSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4wNjEyNSwgMC4wNTYyNSwgMC4wNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAyNzUsIDAuMDI1IiwgXAotICAgICAgICAgICIwLjA3Mzc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDUsIDAuMDQzNzUsIDAuMDQsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMDgsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNSwgMC4wNDYyNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4wOSwgMC4wNzg3NSwgMC4wNzI1LCAwLjA2NjI1LCAwLjA2LCAwLjA1NjI1LCAwLjA0NzUiLCBcCi0gICAgICAgICAgIjAuMDkyNSwgMC4wODc1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNTg3NSwgMC4wNTYyNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAxLjM2NDMzOwotICAgIGZ1bmN0aW9uIDogIk4zMCI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3NlbnNlIDogbm9uX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiByaXNpbmdfZWRnZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzg2MjYsIDAuMTM0Njg5LCAwLjE4OTcyNSwgMC4yMjkxLCAwLjI5MTg0OCwgMC4zNDcxMDMsIDAuNDI1MzA4IiwgXAotICAgICAgICAgICIwLjA4NjU4NywgMC4xNDI2NTMsIDAuMTk3NTUsIDAuMjM3MTk4LCAwLjI5OTk3OSwgMC4zNTQ0MjgsIDAuNDMzMjk0IiwgXAotICAgICAgICAgICIwLjA5NTA1MywgMC4xNTExMjIsIDAuMjA2MTQxLCAwLjI0NTcsIDAuMzA4MDQ0LCAwLjM2Mjk2NiwgMC40NDEyNTQiLCBcCi0gICAgICAgICAgIjAuMTAxMjE4LCAwLjE1NzI4NCwgMC4yMTIzMTUsIDAuMjUxODc1LCAwLjMxNDI0OSwgMC4zNjkxODEsIDAuNDQ3ODAyIiwgXAotICAgICAgICAgICIwLjEwNjI3NCwgMC4xNjIzMjksIDAuMjE3MzYxLCAwLjI1NjkwNywgMC4zMTk1ODYsIDAuMzc0NjksIDAuNDUyOTcyIiwgXAotICAgICAgICAgICIwLjExMzI3NiwgMC4xNjkzMzgsIDAuMjI0NDM1LCAwLjI2MzgsIDAuMzI2MzM4LCAwLjM4MTM0OSwgMC40NTk5NjMiLCBcCi0gICAgICAgICAgIjAuMTE4MzgyLCAwLjE3NDQwMywgMC4yMjk1MTUsIDAuMjY4ODUsIDAuMzMxNjQ0LCAwLjM4Njc1NSwgMC40NjQ2OTIiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjU2NjgsIDAuMTM3ODU1LCAwLjI1MzQ4OSwgMC4zMzYyNSwgMC40Njg2MzUsIDAuNTgzNTk3LCAwLjc1MDQ2OSIsIFwKLSAgICAgICAgICAiMC4wMjU3MjYsIDAuMTM3ODY1LCAwLjI1MzA3MSwgMC4zMzU2NDUsIDAuNDY4Njc3LCAwLjU4MzgwMiwgMC43NDkxODkiLCBcCi0gICAgICAgICAgIjAuMDI1Njg3LCAwLjEzODMzNiwgMC4yNTM0NzEsIDAuMzM1NTUsIDAuNDY4MTIzLCAwLjU4Mzc0MywgMC43NDkzODkiLCBcCi0gICAgICAgICAgIjAuMDI1NzU5LCAwLjEzNzgzNCwgMC4yNTM0NzEsIDAuMzM1NTUzLCAwLjQ2ODA3MywgMC41ODM5NjIsIDAuNzUwNDQxIiwgXAotICAgICAgICAgICIwLjAyNTY4LCAwLjEzNzgxNCwgMC4yNTM0NzMsIDAuMzM1NTg4LCAwLjQ2ODY2OSwgMC41ODM2MjksIDAuNzUwNDQzIiwgXAotICAgICAgICAgICIwLjAyNTY5LCAwLjEzNzg2NSwgMC4yNTM1MTMsIDAuMzM2MjM0LCAwLjQ2ODAzLCAwLjU4Mzk5NywgMC43NTAzMzgiLCBcCi0gICAgICAgICAgIjAuMDI1Nzc3LCAwLjEzODIzNiwgMC4yNTM1MDMsIDAuMzM2MjIyLCAwLjQ2ODYwNywgMC41ODM2LCAwLjc0OTMwOCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4NDI0NSwgMC4xMzk2MzcsIDAuMTk0MTU4LCAwLjIzMjYxOCwgMC4yOTQ2MTQsIDAuMzQ4NzQ4LCAwLjQyNTk0OSIsIFwKLSAgICAgICAgICAiMC4wOTIyODEsIDAuMTQ3NjgsIDAuMjAyMDk5LCAwLjI0MDY4NSwgMC4zMDIzNTksIDAuMzU2ODIsIDAuNDM0MDY5IiwgXAotICAgICAgICAgICIwLjEwMDgzOCwgMC4xNTYyMzcsIDAuMjEwNjQ2LCAwLjI0OTI0MywgMC4zMTA4MjEsIDAuMzY1MzM5LCAwLjQ0MjUzNSIsIFwKLSAgICAgICAgICAiMC4xMDcwODMsIDAuMTYyNDc4LCAwLjIxNjg3NywgMC4yNTU0OTksIDAuMzE3NjE2LCAwLjM3MTIzNywgMC40NDkwMTQiLCBcCi0gICAgICAgICAgIjAuMTEyNDE2LCAwLjE2NzgwOSwgMC4yMjIzMTgsIDAuMjYwNzg4LCAwLjMyMzAwOCwgMC4zNzY5MjUsIDAuNDU0MTExIiwgXAotICAgICAgICAgICIwLjExOTI3MSwgMC4xNzQ2NDQsIDAuMjI5MDY5LCAwLjI2NzY3MSwgMC4zMjk4NjUsIDAuMzgzNzQ4LCAwLjQ2MDk5NCIsIFwKLSAgICAgICAgICAiMC4xMjQzNzcsIDAuMTc5NzIsIDAuMjM0MTU3LCAwLjI3Mjk2NSwgMC4zMzQ1MDgsIDAuMzg4OTU1LCAwLjQ2NjM0MiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyNDY5NywgMC4xMzQ4NTYsIDAuMjQ1NTc2LCAwLjMyNjYzNSwgMC40NTQ0OTQsIDAuNTY3MzI0LCAwLjcyODM1IiwgXAotICAgICAgICAgICIwLjAyNDYzMSwgMC4xMzQ4NTIsIDAuMjQ2NDQ3LCAwLjMyNjM5NiwgMC40NTQ4MzksIDAuNTY3MzQ2LCAwLjcyODM4OSIsIFwKLSAgICAgICAgICAiMC4wMjQ2NjMsIDAuMTM0ODQ4LCAwLjI0NjU4NywgMC4zMjYzOTEsIDAuNDU0OTc2LCAwLjU2NzMyMiwgMC43MjgzNDciLCBcCi0gICAgICAgICAgIjAuMDI0NjgzLCAwLjEzNDgzNywgMC4yNDYyMzgsIDAuMzI2Mzg5LCAwLjQ1NDM1MSwgMC41NjcxNTMsIDAuNzI3Mjg3IiwgXAotICAgICAgICAgICIwLjAyNDY4NCwgMC4xMzQ5NjQsIDAuMjQ0OTUxLCAwLjMyNjM5LCAwLjQ1NDA1NiwgMC41NjczMjEsIDAuNzI4MzQ1IiwgXAotICAgICAgICAgICIwLjAyNDYzNiwgMC4xMzQyMywgMC4yNDU2MjgsIDAuMzI2MzUsIDAuNDU0MDEyLCAwLjU2NzMwMSwgMC43MjgyMzQiLCBcCi0gICAgICAgICAgIjAuMDI0Njk3LCAwLjEzNDEzMiwgMC4yNDY1NTgsIDAuMzI2MjgsIDAuNDU0ODMzLCAwLjU2NzQyNiwgMC43MjgzOTkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDk2ODEsIDAuMDA5ODMxLCAwLjAwOTg1MywgMC4wMDk4NiwgMC4wMDk4NjcsIDAuMDA5ODY4LCAwLjAwOTg3MSIsIFwKLSAgICAgICAgICAiMC4wMDk2NzksIDAuMDA5ODI4LCAwLjAwOTg0OSwgMC4wMDk4NTYsIDAuMDA5ODYyLCAwLjAwOTg2NiwgMC4wMDk4NjciLCBcCi0gICAgICAgICAgIjAuMDA5NzExLCAwLjAwOTg1NywgMC4wMDk4OCwgMC4wMDk4ODYsIDAuMDA5ODkxLCAwLjAwOTg5NCwgMC4wMDk4OTciLCBcCi0gICAgICAgICAgIjAuMDA5NzY2LCAwLjAwOTkxNywgMC4wMDk5MzksIDAuMDA5OTQ2LCAwLjAwOTk1MSwgMC4wMDk5NTQsIDAuMDA5OTU3IiwgXAotICAgICAgICAgICIwLjAwOTgzMiwgMC4wMDk5ODMsIDAuMDEwMDA2LCAwLjAxMDAxMywgMC4wMTAwMjEsIDAuMDEwMDIxLCAwLjAxMDAyNyIsIFwKLSAgICAgICAgICAiMC4wMDk5NDQsIDAuMDEwMDk0LCAwLjAxMDEwNywgMC4wMTAxMjIsIDAuMDEwMTIxLCAwLjAxMDEzMSwgMC4wMTAxMzMiLCBcCi0gICAgICAgICAgIjAuMDEwMDQzLCAwLjAxMDE4NywgMC4wMTAyMDksIDAuMDEwMjE2LCAwLjAxMDIyLCAwLjAxMDIyNCwgMC4wMTAyMjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMDAxMywgMC4wMTAxNDMsIDAuMDEwMTYyLCAwLjAxMDE2OSwgMC4wMTAxNzMsIDAuMDEwMTc2LCAwLjAxMDE3OCIsIFwKLSAgICAgICAgICAiMC4wMTAwMTcsIDAuMDEwMTQ4LCAwLjAxMDE2NiwgMC4wMTAxNzIsIDAuMDEwMTc3LCAwLjAxMDE3OSwgMC4wMTAxODEiLCBcCi0gICAgICAgICAgIjAuMDEwMDYsIDAuMDEwMTksIDAuMDEwMjEsIDAuMDEwMjE2LCAwLjAxMDIyLCAwLjAxMDIyMiwgMC4wMTAyMjQiLCBcCi0gICAgICAgICAgIjAuMDEwMTI3LCAwLjAxMDI1NiwgMC4wMTAyNzUsIDAuMDEwMjgxLCAwLjAxMDI4NSwgMC4wMTAyODksIDAuMDEwMjg5IiwgXAotICAgICAgICAgICIwLjAxMDIwOSwgMC4wMTAzMzUsIDAuMDEwMzU0LCAwLjAxMDM2MSwgMC4wMTAzNjQsIDAuMDEwMzY2LCAwLjAxMDM2OCIsIFwKLSAgICAgICAgICAiMC4wMTAzMzIsIDAuMDEwNDU0LCAwLjAxMDQ3NCwgMC4wMTA0NjksIDAuMDEwNDg0LCAwLjAxMDQ4NiwgMC4wMTA0ODkiLCBcCi0gICAgICAgICAgIjAuMDEwNDE4LCAwLjAxMDU0OSwgMC4wMTA1NjcsIDAuMDEwNTczLCAwLjAxMDU3NywgMC4wMTA1NzksIDAuMDEwNTgyIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihRTikgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAxLjM0OTk4OwotICAgIGZ1bmN0aW9uIDogIlFCSU5UIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBub25fdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJpc2luZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwMjE5NiwgMC4xNTc0MywgMC4yMTIzNjcsIDAuMjUxNTU3LCAwLjMxNDM2NCwgMC4zNjkzMTcsIDAuNDQ3NzY1IiwgXAotICAgICAgICAgICIwLjExMDI1OSwgMC4xNjU0NiwgMC4yMjAzOTEsIDAuMjU5NjEsIDAuMzIyMzk0LCAwLjM3NzM2MiwgMC40NTU4MjciLCBcCi0gICAgICAgICAgIjAuMTE4Nzg2LCAwLjE3NDAyMywgMC4yMjg5MzksIDAuMjY4MTYzLCAwLjMzMDk2LCAwLjM4NTkwOCwgMC40NjQzODIiLCBcCi0gICAgICAgICAgIjAuMTI1MDIxLCAwLjE4MDI2MSwgMC4yMzUxODgsIDAuMjc0NDEzLCAwLjMzNzI1MywgMC4zOTIxMjcsIDAuNDcwNjc4IiwgXAotICAgICAgICAgICIwLjEzMDM2NywgMC4xODU2LCAwLjI0MDU1MSwgMC4yNzk3NDQsIDAuMzQyNjExLCAwLjM5NzQ5MywgMC40NzU5MzkiLCBcCi0gICAgICAgICAgIjAuMTM3MjA4LCAwLjE5MjQ0NywgMC4yNDczNzYsIDAuMjg2NTk1LCAwLjM0OTQ1NywgMC40MDQzMjUsIDAuNDgyNzkxIiwgXAotICAgICAgICAgICIwLjE0MjMxMywgMC4xOTc1NTEsIDAuMjUyNDYxLCAwLjI5MTczNSwgMC4zNTQ0OTksIDAuNDA5NDYsIDAuNDg3OTU5Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDI1MTU0LCAwLjEzNzkzNiwgMC4yNTM1MiwgMC4zMzY3NDYsIDAuNDY5NDQ3LCAwLjU4NTQ4MywgMC43NTEyMjUiLCBcCi0gICAgICAgICAgIjAuMDI1MTQ3LCAwLjEzODA1LCAwLjI1MzQ5NiwgMC4zMzY3NDksIDAuNDY4NzcsIDAuNTg1NDc0LCAwLjc1MTIxNyIsIFwKLSAgICAgICAgICAiMC4wMjUxNTYsIDAuMTM4MDUyLCAwLjI1Mzg1OSwgMC4zMzY3NDksIDAuNDY4OTAxLCAwLjU4NTQ4NiwgMC43NTEyMjQiLCBcCi0gICAgICAgICAgIjAuMDI1MTQ1LCAwLjEzODA2MywgMC4yNTMyNzQsIDAuMzM2NzUsIDAuNDY4NDY1LCAwLjU4NDcwMSwgMC43NTAwMSIsIFwKLSAgICAgICAgICAiMC4wMjUxNTQsIDAuMTM4MDMxLCAwLjI1MzM0OCwgMC4zMzY3NDIsIDAuNDY4NDE4LCAwLjU4NTQ5NSwgMC43NTEyMDgiLCBcCi0gICAgICAgICAgIjAuMDI1MjQ4LCAwLjEzNzk1NSwgMC4yNTM0MzQsIDAuMzM2NzE0LCAwLjQ2ODQxMywgMC41ODU0NywgMC43NTExNjEiLCBcCi0gICAgICAgICAgIjAuMDI1MTQzLCAwLjEzNzk1NCwgMC4yNTM4NDEsIDAuMzM2MTQ4LCAwLjQ2OTA5NywgMC41ODUzODUsIDAuNzUxMTk3Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk3NTUxLCAwLjE1MjExMSwgMC4yMDYyMDMsIDAuMjQ0ODYsIDAuMzA2NjkxLCAwLjM2MDkwOCwgMC40MzgxNDkiLCBcCi0gICAgICAgICAgIjAuMTA1NTEzLCAwLjE2MDA5MiwgMC4yMTQxODIsIDAuMjUyODU5LCAwLjMxNDY5NiwgMC4zNjg3MDksIDAuNDQ2MTM1IiwgXAotICAgICAgICAgICIwLjExMzk3OCwgMC4xNjg1NjEsIDAuMjIyNjQ5LCAwLjI2MTMzNSwgMC4zMjMxNTIsIDAuMzc3Mjg3LCAwLjQ1NDQ3MiIsIFwKLSAgICAgICAgICAiMC4xMjAxNDgsIDAuMTc0NzMsIDAuMjI4ODE2LCAwLjI2NzUwMiwgMC4zMjkzMTMsIDAuMzgzNDQzLCAwLjQ2MDcyMiIsIFwKLSAgICAgICAgICAiMC4xMjUyMTYsIDAuMTc5Nzc2LCAwLjIzMzg2MSwgMC4yNzI1NDUsIDAuMzM0MzcxLCAwLjM4ODU0NSwgMC40NjU4MDYiLCBcCi0gICAgICAgICAgIjAuMTMyMjE5LCAwLjE4Njc5LCAwLjI0MDg3OCwgMC4yNzk1MzQsIDAuMzQxMzc4LCAwLjM5NTUwOSwgMC40NzI4MjEiLCBcCi0gICAgICAgICAgIjAuMTM3MzE3LCAwLjE5MTg5NywgMC4yNDU5OTIsIDAuMjg0NjQxLCAwLjM0NjQ4MywgMC40MDA2NDYsIDAuNDc3OTI2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDI0MzA1LCAwLjEzMzgwNSwgMC4yNDYxMTgsIDAuMzI2NTUzLCAwLjQ1NTIxNywgMC41NjY4MjgsIDAuNzI4NzQ4IiwgXAotICAgICAgICAgICIwLjAyNDI5MywgMC4xMzM4LCAwLjI0NTg5NywgMC4zMjYwMzUsIDAuNDU1Mjc0LCAwLjU2NzE5LCAwLjcyNzU0IiwgXAotICAgICAgICAgICIwLjAyNDI5NCwgMC4xMzM4OSwgMC4yNDYxMDIsIDAuMzI1OTk5LCAwLjQ1NDgzMSwgMC41NjY1NzYsIDAuNzI3NzY1IiwgXAotICAgICAgICAgICIwLjAyNDI5NiwgMC4xMzM4LCAwLjI0NjEwMSwgMC4zMjYsIDAuNDU0NzU4LCAwLjU2NzMxMiwgMC43Mjg2ODEiLCBcCi0gICAgICAgICAgIjAuMDI0MzA0LCAwLjEzMzc5NiwgMC4yNDYxMDIsIDAuMzI2MDI2LCAwLjQ1NTI2LCAwLjU2NjkyMSwgMC43Mjg2ODciLCBcCi0gICAgICAgICAgIjAuMDI0MzUyLCAwLjEzMzgsIDAuMjQ2MTQzLCAwLjMyNjUyNCwgMC40NTQ2NjksIDAuNTY3MzE5LCAwLjcyODU4OCIsIFwKLSAgICAgICAgICAiMC4wMjQyOTksIDAuMTMzODQ1LCAwLjI0NjEyOSwgMC4zMjY1MSwgMC40NTUxNywgMC41NjY4NzYsIDAuNzI3NzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTAwMTMsIDAuMDEwMTQzLCAwLjAxMDE2MiwgMC4wMTAxNjksIDAuMDEwMTczLCAwLjAxMDE3NiwgMC4wMTAxNzgiLCBcCi0gICAgICAgICAgIjAuMDEwMDE3LCAwLjAxMDE0OCwgMC4wMTAxNjYsIDAuMDEwMTcyLCAwLjAxMDE3NywgMC4wMTAxNzksIDAuMDEwMTgxIiwgXAotICAgICAgICAgICIwLjAxMDA2LCAwLjAxMDE5LCAwLjAxMDIxLCAwLjAxMDIxNiwgMC4wMTAyMiwgMC4wMTAyMjIsIDAuMDEwMjI0IiwgXAotICAgICAgICAgICIwLjAxMDEyNywgMC4wMTAyNTYsIDAuMDEwMjc1LCAwLjAxMDI4MSwgMC4wMTAyODUsIDAuMDEwMjg5LCAwLjAxMDI4OSIsIFwKLSAgICAgICAgICAiMC4wMTAyMDksIDAuMDEwMzM1LCAwLjAxMDM1NCwgMC4wMTAzNjEsIDAuMDEwMzY0LCAwLjAxMDM2NiwgMC4wMTAzNjgiLCBcCi0gICAgICAgICAgIjAuMDEwMzMyLCAwLjAxMDQ1NCwgMC4wMTA0NzQsIDAuMDEwNDY5LCAwLjAxMDQ4NCwgMC4wMTA0ODYsIDAuMDEwNDg5IiwgXAotICAgICAgICAgICIwLjAxMDQxOCwgMC4wMTA1NDksIDAuMDEwNTY3LCAwLjAxMDU3MywgMC4wMTA1NzcsIDAuMDEwNTc5LCAwLjAxMDU4MiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA5NjgxLCAwLjAwOTgzMSwgMC4wMDk4NTMsIDAuMDA5ODYsIDAuMDA5ODY3LCAwLjAwOTg2OCwgMC4wMDk4NzEiLCBcCi0gICAgICAgICAgIjAuMDA5Njc5LCAwLjAwOTgyOCwgMC4wMDk4NDksIDAuMDA5ODU2LCAwLjAwOTg2MiwgMC4wMDk4NjYsIDAuMDA5ODY3IiwgXAotICAgICAgICAgICIwLjAwOTcxMSwgMC4wMDk4NTcsIDAuMDA5ODgsIDAuMDA5ODg2LCAwLjAwOTg5MSwgMC4wMDk4OTQsIDAuMDA5ODk3IiwgXAotICAgICAgICAgICIwLjAwOTc2NiwgMC4wMDk5MTcsIDAuMDA5OTM5LCAwLjAwOTk0NiwgMC4wMDk5NTEsIDAuMDA5OTU0LCAwLjAwOTk1NyIsIFwKLSAgICAgICAgICAiMC4wMDk4MzIsIDAuMDA5OTgzLCAwLjAxMDAwNiwgMC4wMTAwMTMsIDAuMDEwMDIxLCAwLjAxMDAyMSwgMC4wMTAwMjciLCBcCi0gICAgICAgICAgIjAuMDA5OTQ0LCAwLjAxMDA5NCwgMC4wMTAxMDcsIDAuMDEwMTIyLCAwLjAxMDEyMSwgMC4wMTAxMzEsIDAuMDEwMTMzIiwgXAotICAgICAgICAgICIwLjAxMDA0MywgMC4wMTAxODcsIDAuMDEwMjA5LCAwLjAxMDIxNiwgMC4wMTAyMiwgMC4wMTAyMjQsIDAuMDEwMjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihSTikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjQ4MjI7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjQ4MjI7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjQ3NTgyOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzY3MSwgMC4wMDM2NDksIDAuMDAzNjY4LCAwLjAwMzcyNywgMC4wMDM3OSwgMC4wMDM5MjIsIDAuMDA0MDUxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA3MTc2LCAwLjAwNzE4NSwgMC4wMDcyMzIsIDAuMDA3MzEyLCAwLjAwNzQxOSwgMC4wMDc2MywgMC4wMDc3MjQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiRCYhU0UiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8xX0FOX1NFX0VRXzAgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDUsIC0wLjA1MTI1LCAtMC4wNDUsIC0wLjA0NSwgLTAuMDQ1LCAtMC4wNDEyNSwgLTAuMDM4NzUiLCBcCi0gICAgICAgICAgIi0wLjA2MTI1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjA1LCAtMC4wNSwgLTAuMDQ2MjUsIC0wLjA0Mzc1IiwgXAotICAgICAgICAgICItMC4wNjc1LCAtMC4wNjI1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDU2MjUsIC0wLjA1MjUsIC0wLjA1NjI1IiwgXAotICAgICAgICAgICItMC4wNzM3NSwgLTAuMDY4NzUsIC0wLjA2ODc1LCAtMC4wNjg3NSwgLTAuMDYyNSwgLTAuMDY1LCAtMC4wNjI1IiwgXAotICAgICAgICAgICItMC4wOCwgLTAuMDc1LCAtMC4wNzUsIC0wLjA3NSwgLTAuMDY4NzUsIC0wLjA3MTI1LCAtMC4wNjg3NSIsIFwKLSAgICAgICAgICAiLTAuMDksIC0wLjA4NSwgLTAuMDg1LCAtMC4wODUsIC0wLjA3ODc1LCAtMC4wODEyNSwgLTAuMDc4NzUiLCBcCi0gICAgICAgICAgIi0wLjA5MjUsIC0wLjA5Mzc1LCAtMC4wODc1LCAtMC4wODc1LCAtMC4wODc1LCAtMC4wODM3NSwgLTAuMDg3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAxMjUsIC0wLjAwNzUsIC0wLjAwMTI1LCAwLjAwNSwgMC4wMDUsIDAuMDE1LCAwLjAxNzUiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgLTAuMDA2MjUsIDAsIDAuMDAzNzUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMTI1LCAtMC4wMDI1LCAwIiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxODc1LCAtMC4wMTUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMjUsIC0wLjAyMTI1LCAtMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wNDYyNSwgLTAuMDQxMjUsIC0wLjAzNSwgLTAuMDM1LCAtMC4wMjg3NSwgLTAuMDI1LCAtMC4wMjI1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDQzNzUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzc1LCAtMC4wMzM3NSwgLTAuMDMxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIkQmIVNFIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMV9BTl9TRV9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4NzUsIDAuMDc2MjUsIDAuMDcsIDAuMDcsIDAuMDYzNzUsIDAuMDYsIDAuMDU3NSIsIFwKLSAgICAgICAgICAiMC4wOTI1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNzUsIDAuMDY4NzUsIDAuMDY1LCAwLjA2MjUiLCBcCi0gICAgICAgICAgIjAuMDk4NzUsIDAuMDkzNzUsIDAuMDg3NSwgMC4wODEyNSwgMC4wODEyNSwgMC4wNzc1LCAwLjA3NSIsIFwKLSAgICAgICAgICAiMC4xMDUsIDAuMSwgMC4wOTM3NSwgMC4wODc1LCAwLjA4NzUsIDAuMDgzNzUsIDAuMDgxMjUiLCBcCi0gICAgICAgICAgIjAuMTExMjUsIDAuMTA2MjUsIDAuMSwgMC4wOTM3NSwgMC4wOTM3NSwgMC4wOSwgMC4wODc1IiwgXAotICAgICAgICAgICIwLjEyMTI1LCAwLjExNjI1LCAwLjExLCAwLjEwMzc1LCAwLjEwMzc1LCAwLjEsIDAuMDk3NSIsIFwKLSAgICAgICAgICAiMC4xMywgMC4xMjUsIDAuMTE4NzUsIDAuMTEyNSwgMC4xMTI1LCAwLjEwODc1LCAwLjEwNjI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDUsIDAuMDM4NzUsIDAuMDMyNSwgMC4wMjYyNSwgMC4wMiwgMC4wMTYyNSwgMC4wMDc1IiwgXAotICAgICAgICAgICIwLjA1NSwgMC4wNSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAzMTI1LCAwLjAyMTI1LCAwLjAxODc1IiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDU2MjUsIDAuMDUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzM3NSwgMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMDczNzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNSwgMC4wNDM3NSwgMC4wNCwgMC4wMzc1IiwgXAotICAgICAgICAgICIwLjA4LCAwLjA3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1NjI1LCAwLjA0NjI1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjA5LCAwLjA3ODc1LCAwLjA3MjUsIDAuMDY2MjUsIDAuMDY2MjUsIDAuMDU2MjUsIDAuMDUzNzUiLCBcCi0gICAgICAgICAgIjAuMDk4NzUsIDAuMDg3NSwgMC4wODEyNSwgMC4wNzUsIDAuMDY4NzUsIDAuMDY1LCAwLjA2MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFNFKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDEyNDU0MTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDEyNDUxMjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDEyNDU0MTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDUzMzgsIDAuMDA1MzUyLCAwLjAwNTQ1OSwgMC4wMDU1NSwgMC4wMDU3MTEsIDAuMDA1OTIxLCAwLjAwNjEyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNzMyNCwgMC4wMDczMzQsIDAuMDA3NDY0LCAwLjAwNzYxNCwgMC4wMDc4MiwgMC4wMDgxODMsIDAuMDA4NTE2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEJiFSTiZTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fUk5fRVFfMF9BTl9TSV9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAyNSwgLTAuMDI2MjUsIC0wLjAyLCAtMC4wMiwgLTAuMDEzNzUsIC0wLjAxLCAtMC4wMDc1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDI1LCAtMC4wMjUsIC0wLjAyMTI1LCAtMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDM3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAzMTI1LCAtMC4wMjc1LCAtMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjA1NSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wNDM3NSwgLTAuMDQzNzUsIC0wLjA0LCAtMC4wMzc1IiwgXAotICAgICAgICAgICItMC4wNjEyNSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNSwgLTAuMDUsIC0wLjA0NjI1LCAtMC4wNDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDcxMjUsIC0wLjA2NjI1LCAtMC4wNiwgLTAuMDYsIC0wLjA2LCAtMC4wNTYyNSwgLTAuMDUzNzUiLCBcCi0gICAgICAgICAgIi0wLjA3Mzc1LCAtMC4wNjg3NSwgLTAuMDY4NzUsIC0wLjA2ODc1LCAtMC4wNjI1LCAtMC4wNjUsIC0wLjA2MjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLCAwLjAwNSwgMC4wMTEyNSwgMC4wMTc1LCAwLjAyMzc1LCAwLjAyNzUsIDAuMDMiLCBcCi0gICAgICAgICAgIi0wLjAxMTI1LCAwLCAwLjAwNjI1LCAwLjAxMjUsIDAuMDEyNSwgMC4wMjI1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDE3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAsIDAuMDA2MjUsIDAuMDEsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMCwgMC4wMDM3NSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMTI1LCAtMC4wMDYyNSwgLTAuMDAyNSwgMCIsIFwKLSAgICAgICAgICAiLTAuMDMzNzUsIC0wLjAyODc1LCAtMC4wMjI1LCAtMC4wMTYyNSwgLTAuMDE2MjUsIC0wLjAwNjI1LCAtMC4wMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTg3NSwgLTAuMDE1LCAtMC4wMTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIkQmUk4mIVNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMV9BTl9STl9FUV8xX0FOX1NJX0VRXzAgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDE4NzUsIC0wLjAxMzc1LCAtMC4wMDc1LCAtMC4wMDEyNSwgLTAuMDAxMjUsIDAuMDA4NzUsIDAuMDExMjUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDEyNSwgLTAuMDA2MjUsIC0wLjAwMjUsIDAiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA4NzUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTUsIC0wLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAyNSwgLTAuMDIxMjUsIC0wLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjA1MjUsIC0wLjA0MTI1LCAtMC4wMzUsIC0wLjAzNSwgLTAuMDI4NzUsIC0wLjAyNSwgLTAuMDIyNSIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMjc1LCAtMC4wMjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMzc1LCAtMC4wMzI1LCAtMC4wMzI1LCAtMC4wMjYyNSwgLTAuMDI2MjUsIC0wLjAyMjUsIC0wLjAyNjI1IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDM3NSwgLTAuMDM3NSwgLTAuMDMzNzUsIC0wLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjA0Mzc1LCAtMC4wNCwgLTAuMDQzNzUiLCBcCi0gICAgICAgICAgIi0wLjA2MTI1LCAtMC4wNTYyNSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNSwgLTAuMDQ2MjUsIC0wLjA1IiwgXAotICAgICAgICAgICItMC4wNjc1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDU2MjUsIC0wLjA1NjI1LCAtMC4wNTI1LCAtMC4wNSIsIFwKLSAgICAgICAgICAiLTAuMDcxMjUsIC0wLjA2NjI1LCAtMC4wNjYyNSwgLTAuMDY2MjUsIC0wLjA2LCAtMC4wNjI1LCAtMC4wNiIsIFwKLSAgICAgICAgICAiLTAuMDczNzUsIC0wLjA2ODc1LCAtMC4wNjg3NSwgLTAuMDY4NzUsIC0wLjA2ODc1LCAtMC4wNjUsIC0wLjA2MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEJiFSTiZTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fUk5fRVFfMF9BTl9TSV9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1NjI1LCAwLjA0NSwgMC4wMzg3NSwgMC4wMzg3NSwgMC4wMzI1LCAwLjAyODc1LCAwLjAyNjI1IiwgXAotICAgICAgICAgICIwLjA2MTI1LCAwLjA1NjI1LCAwLjA1LCAwLjA0Mzc1LCAwLjA0Mzc1LCAwLjA0LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIjAuMDY3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1NjI1LCAwLjA1LCAwLjA0NjI1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjA4LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA2MjUsIDAuMDU4NzUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIjAuMDg2MjUsIDAuMDgxMjUsIDAuMDc1LCAwLjA2ODc1LCAwLjA2ODc1LCAwLjA2NSwgMC4wNjI1IiwgXAotICAgICAgICAgICIwLjA5NjI1LCAwLjA5MTI1LCAwLjA4NSwgMC4wNzg3NSwgMC4wNzg3NSwgMC4wNzUsIDAuMDcyNSIsIFwKLSAgICAgICAgICAiMC4xMDUsIDAuMSwgMC4wOTM3NSwgMC4wODc1LCAwLjA4NzUsIDAuMDgzNzUsIDAuMDgxMjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzEyNSwgMC4wMiwgMC4wMTM3NSwgMC4wMDc1LCAwLjAwMTI1LCAtMC4wMDI1LCAtMC4wMDUiLCBcCi0gICAgICAgICAgIjAuMDM2MjUsIDAuMDMxMjUsIDAuMDI1LCAwLjAxODc1LCAwLjAxMjUsIDAuMDAyNSwgMCIsIFwKLSAgICAgICAgICAiMC4wNDg3NSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMTg3NSwgMC4wMTUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4wNTUsIDAuMDUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMzEyNSwgMC4wMjEyNSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4wNjEyNSwgMC4wNTYyNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzNzUsIDAuMDI3NSwgMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMDcxMjUsIDAuMDYsIDAuMDUzNzUsIDAuMDQ3NSwgMC4wNDEyNSwgMC4wMzc1LCAwLjAzNSIsIFwKLSAgICAgICAgICAiMC4wOCwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1LCAwLjA0NjI1LCAwLjAzNzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIkQmUk4mIVNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMV9BTl9STl9FUV8xX0FOX1NJX0VRXzAgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU2MjUsIDAuMDQ1LCAwLjAzODc1LCAwLjAzMjUsIDAuMDI2MjUsIDAuMDIyNSwgMC4wMTM3NSIsIFwKLSAgICAgICAgICAiMC4wNjEyNSwgMC4wNTYyNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzNzUsIDAuMDI3NSwgMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMDY3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1LCAwLjA0Mzc1LCAwLjAzMzc1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICIwLjA3Mzc1LCAwLjA2ODc1LCAwLjA1NjI1LCAwLjA1LCAwLjA1LCAwLjA0LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIjAuMDgsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNSwgMC4wNDYyNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4wODM3NSwgMC4wNzg3NSwgMC4wNjYyNSwgMC4wNiwgMC4wNiwgMC4wNSwgMC4wNDc1IiwgXAotICAgICAgICAgICIwLjA4NjI1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1MjUsIDAuMDUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjg3NSwgMC4wNjM3NSwgMC4wNTc1LCAwLjA1MTI1LCAwLjA1MTI1LCAwLjA0NzUsIDAuMDQ1IiwgXAotICAgICAgICAgICIwLjA4LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDU2MjUsIDAuMDUyNSwgMC4wNSIsIFwKLSAgICAgICAgICAiMC4wODYyNSwgMC4wNzUsIDAuMDc1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDY1LCAwLjA2MjUiLCBcCi0gICAgICAgICAgIjAuMDkyNSwgMC4wODc1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNzUsIDAuMDcxMjUsIDAuMDY4NzUiLCBcCi0gICAgICAgICAgIjAuMDk4NzUsIDAuMDg3NSwgMC4wODEyNSwgMC4wODEyNSwgMC4wNzUsIDAuMDcxMjUsIDAuMDY4NzUiLCBcCi0gICAgICAgICAgIjAuMTAyNSwgMC4wOTc1LCAwLjA5MTI1LCAwLjA4NSwgMC4wODUsIDAuMDgxMjUsIDAuMDc4NzUiLCBcCi0gICAgICAgICAgIjAuMTA1LCAwLjEsIDAuMDkzNzUsIDAuMDg3NSwgMC4wODc1LCAwLjA4Mzc1LCAwLjA4MTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTSSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjg4MzMyOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDY4NzI4MTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2ODgzMzI7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzMDUzLCAwLjAwMzAzMiwgMC4wMDMwNTYsIDAuMDAzMTA0LCAwLjAwMzE2NSwgMC4wMDMyOCwgMC4wMDM0MTQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDU3NjMsIDAuMDA1NzQ4LCAwLjAwNTc2OCwgMC4wMDU4MTcsIDAuMDA1ODczLCAwLjAwNTk4NywgMC4wMDYxMDYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiU0UiOwotICAgICAgc2RmX2NvbmQgOiAiU0UgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDMxMjUsIC0wLjAyNjI1LCAtMC4wMjYyNSwgLTAuMDIsIC0wLjAyLCAtMC4wMTYyNSwgLTAuMDEzNzUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMzEyNSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDI1LCAtMC4wMjEyNSwgLTAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAyNzUsIC0wLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wNCwgLTAuMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDYxMjUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wNDYyNSwgLTAuMDQzNzUiLCBcCi0gICAgICAgICAgIi0wLjA2NSwgLTAuMDYsIC0wLjA2LCAtMC4wNiwgLTAuMDUzNzUsIC0wLjA1LCAtMC4wNDc1IiwgXAotICAgICAgICAgICItMC4wNzM3NSwgLTAuMDY4NzUsIC0wLjA2MjUsIC0wLjA2MjUsIC0wLjA2MjUsIC0wLjA1ODc1LCAtMC4wNTYyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAxMjUsIC0wLjAwNzUsIC0wLjAwMTI1LCAwLjAwNSwgMC4wMTEyNSwgMC4wMTUsIDAuMDE3NSIsIFwKLSAgICAgICAgICAiLTAuMDE3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAsIDAsIDAuMDEsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgLTAuMDA2MjUsIDAuMDAzNzUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgLTAuMDAyNSwgMCIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA4NzUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wNCwgLTAuMDM1LCAtMC4wMjg3NSwgLTAuMDIyNSwgLTAuMDIyNSwgLTAuMDEyNSwgLTAuMDEiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMjEyNSwgLTAuMDE4NzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlNFIjsKLSAgICAgIHNkZl9jb25kIDogIlNFID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1NjI1LCAwLjA1MTI1LCAwLjA0NSwgMC4wMzg3NSwgMC4wMzg3NSwgMC4wMzUsIDAuMDMyNSIsIFwKLSAgICAgICAgICAiMC4wNjEyNSwgMC4wNTYyNSwgMC4wNSwgMC4wNDM3NSwgMC4wNDM3NSwgMC4wNCwgMC4wMzc1IiwgXAotICAgICAgICAgICIwLjA3Mzc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDU2MjUsIDAuMDUsIDAuMDQ2MjUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMDgsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1MjUsIDAuMDUiLCBcCi0gICAgICAgICAgIjAuMDg2MjUsIDAuMDc1LCAwLjA2ODc1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDY1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICIwLjA5NjI1LCAwLjA4NSwgMC4wNzg3NSwgMC4wNzg3NSwgMC4wNzI1LCAwLjA2ODc1LCAwLjA2NjI1IiwgXAotICAgICAgICAgICIwLjA5ODc1LCAwLjA5Mzc1LCAwLjA4NzUsIDAuMDgxMjUsIDAuMDgxMjUsIDAuMDc3NSwgMC4wNzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDM3NSwgMC4wMzg3NSwgMC4wMzI1LCAwLjAyNjI1LCAwLjAyLCAwLjAxLCAwLjAwNzUiLCBcCi0gICAgICAgICAgIjAuMDU1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDI1LCAwLjAyMTI1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMDYxMjUsIDAuMDUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMjc1LCAwLjAxODc1IiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDU2MjUsIDAuMDUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzM3NSwgMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMDczNzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNSwgMC4wNDM3NSwgMC4wNCwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4wNzc1LCAwLjA3MjUsIDAuMDYsIDAuMDUzNzUsIDAuMDUzNzUsIDAuMDQzNzUsIDAuMDQxMjUiLCBcCi0gICAgICAgICAgIjAuMDg2MjUsIDAuMDc1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDUyNSwgMC4wNDM3NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBTREZGVFJYTCAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoU0RGRlRSWEwpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMS4wODE3OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIGZmIChOMzAsUUJJTlQpIHsKLSAgICBuZXh0X3N0YXRlIDogIigoU0UgU0kpICsgKCFTRSAoRCBSTikpKSI7Ci0gICAgY2xvY2tlZF9vbiA6ICJDSyI7Ci0gIH0KLSAgcGluKENLKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2MTkwNzE7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjE5MDQ2OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDYxOTA3MTsKLSAgICBjbG9jayA6IHRydWU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzNDY4LCAwLjAwMzQ1OSwgMC4wMDM1NDEsIDAuMDAzNjM0LCAwLjAwMzc1OCwgMC4wMDM5ODUsIDAuMDA0MTc4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA3NDY2LCAwLjAwNzQ2NSwgMC4wMDc1NTEsIDAuMDA3NjgzLCAwLjAwNzgzMSwgMC4wMDgxMTIsIDAuMDA4MzIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFEJiFSTiYhU0UmIVNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9STl9FUV8wX0FOX1NFX0VRXzBfQU5fU0lfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjEzMDY1NCwgMC4xMzg4MjYsIDAuMTQ3NzYyLCAwLjE1NDQzNywgMC4xNTk3MSwgMC4xNjcxNTEsIDAuMTcyNDciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjA2MDM0LCAwLjA2ODQwOCwgMC4wNzcyMDUsIDAuMDgzNzg2LCAwLjA4OTAwOCwgMC4wOTU4NywgMC4xMDEwMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEQpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY2MzkxMTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2NjM5MTE7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjYzNTk4OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzYzOCwgMC4wMDM2NDEsIDAuMDAzNjcsIDAuMDAzNzY0LCAwLjAwMzg2NywgMC4wMDQwMzEsIDAuMDA0MTgxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA2Nzc3LCAwLjAwNjc4OCwgMC4wMDY4MjcsIDAuMDA2OTA2LCAwLjAwNzAwMSwgMC4wMDcxODgsIDAuMDA3MzQxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlJOJiFTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJSTl9FUV8xX0FOX1NFX0VRXzAgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDUsIC0wLjA0NSwgLTAuMDQ1LCAtMC4wMzg3NSwgLTAuMDM4NzUsIC0wLjAzNSwgLTAuMDMyNSIsIFwKLSAgICAgICAgICAiLTAuMDYxMjUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDUsIC0wLjA1LCAtMC4wNDYyNSwgLTAuMDQzNzUiLCBcCi0gICAgICAgICAgIi0wLjA2NzUsIC0wLjA2MjUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNTYyNSwgLTAuMDUyNSwgLTAuMDUiLCBcCi0gICAgICAgICAgIi0wLjA4LCAtMC4wNzUsIC0wLjA2ODc1LCAtMC4wNjg3NSwgLTAuMDY4NzUsIC0wLjA2NSwgLTAuMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDg2MjUsIC0wLjA4MTI1LCAtMC4wODEyNSwgLTAuMDc1LCAtMC4wNzUsIC0wLjA3MTI1LCAtMC4wNjg3NSIsIFwKLSAgICAgICAgICAiLTAuMDk2MjUsIC0wLjA5MTI1LCAtMC4wOTEyNSwgLTAuMDkxMjUsIC0wLjA4NSwgLTAuMDgxMjUsIC0wLjA4NSIsIFwKLSAgICAgICAgICAiLTAuMTA1LCAtMC4xLCAtMC4xLCAtMC4xLCAtMC4wOTM3NSwgLTAuMDk2MjUsIC0wLjA5Mzc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDEyNSwgLTAuMDA3NSwgLTAuMDAxMjUsIDAuMDA1LCAwLjAxMTI1LCAwLjAxNSwgMC4wMTc1IiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAsIDAsIDAuMDEsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAtMC4wMDI1LCAwIiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwODc1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxNSwgLTAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDUyNSwgLTAuMDQxMjUsIC0wLjAzNSwgLTAuMDM1LCAtMC4wMjg3NSwgLTAuMDI1LCAtMC4wMjI1IiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDM3NSwgLTAuMDI3NSwgLTAuMDI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJSTiYhU0UiOwotICAgICAgc2RmX2NvbmQgOiAiUk5fRVFfMV9BTl9TRV9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3NSwgMC4wNywgMC4wNjM3NSwgMC4wNTc1LCAwLjA1NzUsIDAuMDUzNzUsIDAuMDUxMjUiLCBcCi0gICAgICAgICAgIjAuMDg2MjUsIDAuMDc1LCAwLjA2ODc1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDU4NzUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIjAuMDkyNSwgMC4wODc1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNzUsIDAuMDcxMjUsIDAuMDY4NzUiLCBcCi0gICAgICAgICAgIjAuMTA1LCAwLjA5Mzc1LCAwLjA4NzUsIDAuMDg3NSwgMC4wODEyNSwgMC4wNzc1LCAwLjA4MTI1IiwgXAotICAgICAgICAgICIwLjExMTI1LCAwLjEwNjI1LCAwLjEsIDAuMDkzNzUsIDAuMDkzNzUsIDAuMDksIDAuMDg3NSIsIFwKLSAgICAgICAgICAiMC4xMjEyNSwgMC4xMTYyNSwgMC4xMSwgMC4xMSwgMC4xMDM3NSwgMC4xLCAwLjA5NzUiLCBcCi0gICAgICAgICAgIjAuMTM2MjUsIDAuMTI1LCAwLjExODc1LCAwLjExODc1LCAwLjExMjUsIDAuMTA4NzUsIDAuMTA2MjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDM3NSwgMC4wMzI1LCAwLjAyNjI1LCAwLjAyLCAwLjAxMzc1LCAwLjAxLCAwLjAwMTI1IiwgXAotICAgICAgICAgICIwLjA0ODc1LCAwLjA0Mzc1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMTg3NSwgMC4wMTUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4wNjEyNSwgMC4wNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyMTI1LCAwLjAxODc1IiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDU2MjUsIDAuMDUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzM3NSwgMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMDczNzUsIDAuMDY4NzUsIDAuMDU2MjUsIDAuMDUsIDAuMDQzNzUsIDAuMDQsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiMC4wODM3NSwgMC4wNzI1LCAwLjA2NjI1LCAwLjA2LCAwLjA1Mzc1LCAwLjA1LCAwLjA0MTI1IiwgXAotICAgICAgICAgICIwLjA5MjUsIDAuMDgxMjUsIDAuMDc1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDUyNSwgMC4wNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjIwMTg2NzsKLSAgICBmdW5jdGlvbiA6ICJOMzAiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5vbl91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcmlzaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExNDY0OCwgMC4xMjUxMjcsIDAuMjE5OTkyLCAwLjM3ODQ0NywgMC41MzY5MzgsIDAuOTA2NTk1LCAxLjExNzgiLCBcCi0gICAgICAgICAgIjAuMTIyNzM3LCAwLjEzMzE5NywgMC4yMjgxMTQsIDAuMzg2NTM3LCAwLjU0NDk5NiwgMC45MTQ3MDUsIDEuMTI2MjIiLCBcCi0gICAgICAgICAgIjAuMTMxMzAxLCAwLjE0MTgxOCwgMC4yMzY0MDIsIDAuMzk0MDQsIDAuNTUyMDAxLCAwLjkyMDAxOCwgMS4xMzA1IiwgXAotICAgICAgICAgICIwLjEzODEyNCwgMC4xNDg2MzksIDAuMjQzMjIsIDAuNDAxMTE5LCAwLjU1OTA5NiwgMC45MjY5MTUsIDEuMTM3MzEiLCBcCi0gICAgICAgICAgIjAuMTQzNTMzLCAwLjE1Mzk2NCwgMC4yNDg4ODQsIDAuNDA3MjQzLCAwLjU2NTY4NCwgMC45MzIxODUsIDEuMTQzIiwgXAotICAgICAgICAgICIwLjE1MDUxNiwgMC4xNjEwMjMsIDAuMjU1OTE3LCAwLjQxMzc0NywgMC41NzI3NDMsIDAuOTM5MjYzLCAxLjE1MzY4IiwgXAotICAgICAgICAgICIwLjE1NTk1NSwgMC4xNjY0MjUsIDAuMjYxMzA4LCAwLjQxOTY4MSwgMC41NzY0ODgsIDAuOTQ0NjUsIDEuMTU1MiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTgyMzcsIDAuMTQwMjMzLCAwLjMzOTk0NywgMC42NzM0NjIsIDEuMDA3MDEsIDEuNzg1NTgsIDIuMjMwNjEiLCBcCi0gICAgICAgICAgIjAuMTE4MjMyLCAwLjE0MDI5OSwgMC4zMzk4MDcsIDAuNjczMjMsIDEuMDA2NywgMS43ODQ3OSwgMi4yMjkwOCIsIFwKLSAgICAgICAgICAiMC4xMTgwMjUsIDAuMTQwMjAzLCAwLjMzOTM3MywgMC42NzI1NDMsIDEuMDA2MywgMS43ODQ4NiwgMi4yMjY0MSIsIFwKLSAgICAgICAgICAiMC4xMTgxMTcsIDAuMTQwMjA1LCAwLjMzOTUyNSwgMC42NzI5OSwgMS4wMDYwNywgMS43ODE0LCAyLjIyNzQiLCBcCi0gICAgICAgICAgIjAuMTE4MDkyLCAwLjE0MDI5NSwgMC4zMzk5NDYsIDAuNjczNzUzLCAxLjAwNzQ0LCAxLjc4MzEzLCAyLjIyOTgiLCBcCi0gICAgICAgICAgIjAuMTE4MDksIDAuMTQwMjI2LCAwLjMzOTk0OSwgMC42NzI5MzcsIDEuMDA3MzcsIDEuNzgxMjEsIDIuMjMxMDEiLCBcCi0gICAgICAgICAgIjAuMTE4MDE3LCAwLjE0MDEyLCAwLjMzOTkzOCwgMC42NzM2NzYsIDEuMDA1MjUsIDEuNzgzNzQsIDIuMjI2MDkiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTIwNTM2LCAwLjEzMDE5MiwgMC4yMTcyNjQsIDAuMzYyNDQ4LCAwLjUwNzU3NCwgMC44NDY0MDMsIDEuMDM3NiIsIFwKLSAgICAgICAgICAiMC4xMjg3MTIsIDAuMTM4MzY5LCAwLjIyNTQ5MSwgMC4zNzAxOTEsIDAuNTE1Nzg1LCAwLjg1Mzc1NywgMS4wNDgxNSIsIFwKLSAgICAgICAgICAiMC4xMzc2MzMsIDAuMTQ3MzY2LCAwLjIzNDQxMywgMC4zNzk1MzMsIDAuNTI0NTk0LCAwLjg2MzQ4OSwgMS4wNTU1OCIsIFwKLSAgICAgICAgICAiMC4xNDQzMTcsIDAuMTUzOTc5LCAwLjI0MTE0LCAwLjM4NjE5MywgMC41MzA5NzQsIDAuODcwMTMzLCAxLjA2Mjg5IiwgXAotICAgICAgICAgICIwLjE0OTcxMywgMC4xNTk0MDcsIDAuMjQ2NTI5LCAwLjM5MTU1NSwgMC41MzY1NDEsIDAuODczMzUsIDEuMDY3MiIsIFwKLSAgICAgICAgICAiMC4xNTcxMzEsIDAuMTY2NzgsIDAuMjUzOTE1LCAwLjM5ODk5NywgMC41NDQwMzYsIDAuODgyODgyLCAxLjA3NTQ3IiwgXAotICAgICAgICAgICIwLjE2MjQxLCAwLjE3MjA1NiwgMC4yNTkxNTQsIDAuNDAzODYyLCAwLjU0OTA4MywgMC44ODgyNSwgMS4wODAxMSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDY4NzUsIDAuMTI2MjksIDAuMzA0OTk1LCAwLjYwNDM2MywgMC45MDMzNjEsIDEuNTkxMDIsIDEuOTk0OCIsIFwKLSAgICAgICAgICAiMC4xMDY5NjEsIDAuMTI2MzY1LCAwLjMwNTExOSwgMC42MDM5NzMsIDAuOTAzMjY4LCAxLjU5ODE0LCAxLjk5NjMyIiwgXAotICAgICAgICAgICIwLjEwNjk4MiwgMC4xMjU1NTYsIDAuMzA1MTIzLCAwLjYwNDM3NywgMC45MDMyNzksIDEuNTk1MzMsIDEuOTk5NjYiLCBcCi0gICAgICAgICAgIjAuMTA2OTA3LCAwLjEyNjM4NSwgMC4zMDU0NzgsIDAuNjA0Mzg2LCAwLjkwMzQwNywgMS41OTY3MywgMS45OTk3NCIsIFwKLSAgICAgICAgICAiMC4xMDY5NjksIDAuMTI2NjE1LCAwLjMwNDM3MywgMC42MDQzOSwgMC45MDM0MDQsIDEuNjAwMzEsIDEuOTgyOTgiLCBcCi0gICAgICAgICAgIjAuMTA2ODUxLCAwLjEyNjYwMiwgMC4zMDU0NDcsIDAuNjA0MzMxLCAwLjkwMzMyMiwgMS42MDA3OCwgMS45OTk5NiIsIFwKLSAgICAgICAgICAiMC4xMDU5NDksIDAuMTI1OTM4LCAwLjMwNTQyNSwgMC42MDM5NDEsIDAuOTAyNTgsIDEuNTk5NDIsIDEuOTg4NjQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0NDY0LCAwLjAwNDQ2MiwgMC4wMDQ0NDgsIDAuMDA0NDQsIDAuMDA0NDM3LCAwLjAwNDQzNCwgMC4wMDQ0MzMiLCBcCi0gICAgICAgICAgIjAuMDA0NDU2LCAwLjAwNDQ1MywgMC4wMDQ0NCwgMC4wMDQ0MzEsIDAuMDA0NDI4LCAwLjAwNDQyNSwgMC4wMDQ0MjUiLCBcCi0gICAgICAgICAgIjAuMDA0NTA3LCAwLjAwNDUwNSwgMC4wMDQ0OTEsIDAuMDA0NDgyLCAwLjAwNDQ3OCwgMC4wMDQ0NzUsIDAuMDA0NDc0IiwgXAotICAgICAgICAgICIwLjAwNDU1NiwgMC4wMDQ1NTMsIDAuMDA0NTM5LCAwLjAwNDUzLCAwLjAwNDUyNywgMC4wMDQ1MjMsIDAuMDA0NTIyIiwgXAotICAgICAgICAgICIwLjAwNDYyOCwgMC4wMDQ2MjcsIDAuMDA0NjEzLCAwLjAwNDYwMywgMC4wMDQ2LCAwLjAwNDU5NSwgMC4wMDQ1OTQiLCBcCi0gICAgICAgICAgIjAuMDA0NzE5LCAwLjAwNDcxNiwgMC4wMDQ3MDMsIDAuMDA0NjkzLCAwLjAwNDY4OSwgMC4wMDQ2ODQsIDAuMDA0NjgzIiwgXAotICAgICAgICAgICIwLjAwNDgyNCwgMC4wMDQ4MjIsIDAuMDA0ODA4LCAwLjAwNDc5OCwgMC4wMDQ3OTMsIDAuMDA0Nzg4LCAwLjAwNDc4NiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDUwMSwgMC4wMDQ1MDIsIDAuMDA0NTA2LCAwLjAwNDUwOCwgMC4wMDQ1MDksIDAuMDA0NTEsIDAuMDA0NTEiLCBcCi0gICAgICAgICAgIjAuMDA0NSwgMC4wMDQ1MDEsIDAuMDA0NTA2LCAwLjAwNDUwOCwgMC4wMDQ1MDksIDAuMDA0NTEsIDAuMDA0NTA5IiwgXAotICAgICAgICAgICIwLjAwNDU0NSwgMC4wMDQ1NDYsIDAuMDA0NTUxLCAwLjAwNDU1MywgMC4wMDQ1NTMsIDAuMDA0NTU0LCAwLjAwNDU1NCIsIFwKLSAgICAgICAgICAiMC4wMDQ2MSwgMC4wMDQ2MTIsIDAuMDA0NjE2LCAwLjAwNDYxNywgMC4wMDQ2MTgsIDAuMDA0NjE4LCAwLjAwNDYxOCIsIFwKLSAgICAgICAgICAiMC4wMDQ2ODcsIDAuMDA0Njg5LCAwLjAwNDY5MiwgMC4wMDQ2OTQsIDAuMDA0Njk1LCAwLjAwNDY5NSwgMC4wMDQ2OTUiLCBcCi0gICAgICAgICAgIjAuMDA0ODAyLCAwLjAwNDgwMywgMC4wMDQ4MDYsIDAuMDA0ODA0LCAwLjAwNDgwNywgMC4wMDQ4MDcsIDAuMDA0ODA3IiwgXAotICAgICAgICAgICIwLjAwNDg5MSwgMC4wMDQ4OTIsIDAuMDA0ODk1LCAwLjAwNDg5NiwgMC4wMDQ4OTUsIDAuMDA0ODk1LCAwLjAwNDg5NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUU4pICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4yMDM2NzsKLSAgICBmdW5jdGlvbiA6ICJRQklOVCI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3NlbnNlIDogbm9uX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiByaXNpbmdfZWRnZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTMwNjU2LCAwLjE0MTE3MywgMC4yMzU4OTEsIDAuMzkzNzExLCAwLjU1MTU1NSwgMC45MTk5MDgsIDEuMTMwMDciLCBcCi0gICAgICAgICAgIjAuMTM4ODI3LCAwLjE0OTM0NCwgMC4yNDQwNjYsIDAuNDAxODY3LCAwLjU1OTczLCAwLjkyNzk2LCAxLjEzODU3IiwgXAotICAgICAgICAgICIwLjE0Nzc2MiwgMC4xNTgyOCwgMC4yNTMwMDIsIDAuNDEwODEzLCAwLjU2ODY0NiwgMC45MzcwMTMsIDEuMTQ3MTgiLCBcCi0gICAgICAgICAgIjAuMTU0NDM3LCAwLjE2NDk1NCwgMC4yNTk2NTcsIDAuNDE3NDg2LCAwLjU3NTI1NywgMC45NDM2OCwgMS4xNTM5OCIsIFwKLSAgICAgICAgICAiMC4xNTk3MSwgMC4xNzAyMywgMC4yNjQ5MTYsIDAuNDIyNzUsIDAuNTgwNTYzLCAwLjk0ODc0NywgMS4xNTkyMSIsIFwKLSAgICAgICAgICAiMC4xNjcxNTEsIDAuMTc3NjcxLCAwLjI3MjM5LCAwLjQzMDIxNywgMC41ODgwNCwgMC45NTY0MDEsIDEuMTY2NzIiLCBcCi0gICAgICAgICAgIjAuMTcyNTAyLCAwLjE4MzAyOCwgMC4yNzc3MDksIDAuNDM1NTUsIDAuNTkzMzY2LCAwLjk2MTc3LCAxLjE3MjAzIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExNTkyNiwgMC4xMzgwNDUsIDAuMzM3NDQxLCAwLjY3MDI0NSwgMS4wMDI3NiwgMS43NzYxNywgMi4yMjAwMyIsIFwKLSAgICAgICAgICAiMC4xMTU5MjcsIDAuMTM4MDQ2LCAwLjMzNzMyMywgMC42Njk1NTYsIDEuMDAyNzksIDEuNzc1NTgsIDIuMjE4OTgiLCBcCi0gICAgICAgICAgIjAuMTE1OTI4LCAwLjEzODA1NiwgMC4zMzczMzYsIDAuNjcwMjQ4LCAxLjAwMjc1LCAxLjc3NjI3LCAyLjIyMTkiLCBcCi0gICAgICAgICAgIjAuMTE1OTI3LCAwLjEzODA0NywgMC4zMzc3NzEsIDAuNjcwMjQ2LCAxLjAwMjczLCAxLjc3NjIxLCAyLjIyMjA5IiwgXAotICAgICAgICAgICIwLjExNTkyOSwgMC4xMzgxNTgsIDAuMzM3Mjg0LCAwLjY3MDI0NSwgMS4wMDI3OCwgMS43NzcxNCwgMi4yMTg4MyIsIFwKLSAgICAgICAgICAiMC4xMTYwNTEsIDAuMTM4MiwgMC4zMzc3NjEsIDAuNjcwMjI0LCAxLjAwMjc3LCAxLjc3ODYyLCAyLjIyMjAzIiwgXAotICAgICAgICAgICIwLjExNTg2LCAwLjEzODAwOCwgMC4zMzc3MjksIDAuNjY5NTkxLCAxLjAwMTYyLCAxLjc3NjEzLCAyLjIxOTEyIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExNzM0MSwgMC4xMjY5ODgsIDAuMjEzODAxLCAwLjM1ODUwMSwgMC41MDMxNzEsIDAuODQwODA4LCAxLjAzMzc0IiwgXAotICAgICAgICAgICIwLjEyNTQyNSwgMC4xMzUwNzEsIDAuMjIxODksIDAuMzY2NTg0LCAwLjUxMTI2OCwgMC44NDg4NzYsIDEuMDQxNjUiLCBcCi0gICAgICAgICAgIjAuMTM0MDI0LCAwLjE0MzY2NywgMC4yMzA0ODcsIDAuMzc1MjA5LCAwLjUxOTg0MiwgMC44NTc1MiwgMS4wNTA0MyIsIFwKLSAgICAgICAgICAiMC4xNDA4MzMsIDAuMTUwNDc4LCAwLjIzNzI5OCwgMC4zODE5NzYsIDAuNTI2NjM3LCAwLjg2NDM0MSwgMS4wNTcyNSIsIFwKLSAgICAgICAgICAiMC4xNDYxNzIsIDAuMTU1ODEsIDAuMjQyNjMsIDAuMzg3MzE4LCAwLjUzMjAwOCwgMC44Njk2NSwgMS4wNjI0NiIsIFwKLSAgICAgICAgICAiMC4xNTMxOTcsIDAuMTYyODQyLCAwLjI0OTcwMiwgMC4zOTQzMiwgMC41MzkwMTgsIDAuODc2NjkxLCAxLjA2OTUxIiwgXAotICAgICAgICAgICIwLjE1ODYwNywgMC4xNjgyNTYsIDAuMjU1MDQ5LCAwLjM5OTczMiwgMC41NDQ0MjUsIDAuODgyMDk4LCAxLjA3NDg4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwMzc4MiwgMC4xMjM1ODYsIDAuMzAxOTk3LCAwLjU5OTU0NSwgMC44OTY5NSwgMS41OTEyOCwgMS45ODgxNyIsIFwKLSAgICAgICAgICAiMC4xMDM3ODIsIDAuMTIzNTM3LCAwLjMwMjAyMiwgMC41OTk1MzksIDAuODk2OTk1LCAxLjU5MTIxLCAxLjk4NzI4IiwgXAotICAgICAgICAgICIwLjEwMzYxNywgMC4xMjM1NTksIDAuMzAxNjI2LCAwLjU5ODI3NSwgMC44OTU4MzUsIDEuNTg3NjQsIDEuOTgzNjgiLCBcCi0gICAgICAgICAgIjAuMTAzNjc3LCAwLjEyMzU1NiwgMC4zMDE2MDksIDAuNTk4NzM0LCAwLjg5NTg2MywgMS41ODgsIDEuOTgzNjciLCBcCi0gICAgICAgICAgIjAuMTAzNjUzLCAwLjEyMzUzMiwgMC4zMDIwNDYsIDAuNTk5NTMsIDAuODk3MDc0LCAxLjU4NzgzLCAxLjk4NTYzIiwgXAotICAgICAgICAgICIwLjEwMzY3OCwgMC4xMjM1NCwgMC4zMDIwNTMsIDAuNTk5MjgxLCAwLjg5NzAyMiwgMS41ODc5OSwgMS45ODc4NSIsIFwKLSAgICAgICAgICAiMC4xMDM1NzgsIDAuMTIzMjg0LCAwLjMwMjAxNCwgMC41OTkzMzYsIDAuODk1OTcxLCAxLjU4ODEzLCAxLjk4NTQ5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDUwMSwgMC4wMDQ1MDIsIDAuMDA0NTA2LCAwLjAwNDUwOCwgMC4wMDQ1MDksIDAuMDA0NTEsIDAuMDA0NTEiLCBcCi0gICAgICAgICAgIjAuMDA0NSwgMC4wMDQ1MDEsIDAuMDA0NTA2LCAwLjAwNDUwOCwgMC4wMDQ1MDksIDAuMDA0NTEsIDAuMDA0NTA5IiwgXAotICAgICAgICAgICIwLjAwNDU0NSwgMC4wMDQ1NDYsIDAuMDA0NTUxLCAwLjAwNDU1MywgMC4wMDQ1NTMsIDAuMDA0NTU0LCAwLjAwNDU1NCIsIFwKLSAgICAgICAgICAiMC4wMDQ2MSwgMC4wMDQ2MTIsIDAuMDA0NjE2LCAwLjAwNDYxNywgMC4wMDQ2MTgsIDAuMDA0NjE4LCAwLjAwNDYxOCIsIFwKLSAgICAgICAgICAiMC4wMDQ2ODcsIDAuMDA0Njg5LCAwLjAwNDY5MiwgMC4wMDQ2OTQsIDAuMDA0Njk1LCAwLjAwNDY5NSwgMC4wMDQ2OTUiLCBcCi0gICAgICAgICAgIjAuMDA0ODAyLCAwLjAwNDgwMywgMC4wMDQ4MDYsIDAuMDA0ODA0LCAwLjAwNDgwNywgMC4wMDQ4MDcsIDAuMDA0ODA3IiwgXAotICAgICAgICAgICIwLjAwNDg5MSwgMC4wMDQ4OTIsIDAuMDA0ODk1LCAwLjAwNDg5NiwgMC4wMDQ4OTUsIDAuMDA0ODk1LCAwLjAwNDg5NSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDQ2NCwgMC4wMDQ0NjIsIDAuMDA0NDQ4LCAwLjAwNDQ0LCAwLjAwNDQzNywgMC4wMDQ0MzQsIDAuMDA0NDMzIiwgXAotICAgICAgICAgICIwLjAwNDQ1NiwgMC4wMDQ0NTMsIDAuMDA0NDQsIDAuMDA0NDMxLCAwLjAwNDQyOCwgMC4wMDQ0MjUsIDAuMDA0NDI1IiwgXAotICAgICAgICAgICIwLjAwNDUwNywgMC4wMDQ1MDUsIDAuMDA0NDkxLCAwLjAwNDQ4MiwgMC4wMDQ0NzgsIDAuMDA0NDc1LCAwLjAwNDQ3NCIsIFwKLSAgICAgICAgICAiMC4wMDQ1NTYsIDAuMDA0NTUzLCAwLjAwNDUzOSwgMC4wMDQ1MywgMC4wMDQ1MjcsIDAuMDA0NTIzLCAwLjAwNDUyMiIsIFwKLSAgICAgICAgICAiMC4wMDQ2MjgsIDAuMDA0NjI3LCAwLjAwNDYxMywgMC4wMDQ2MDMsIDAuMDA0NiwgMC4wMDQ1OTUsIDAuMDA0NTk0IiwgXAotICAgICAgICAgICIwLjAwNDcxOSwgMC4wMDQ3MTYsIDAuMDA0NzAzLCAwLjAwNDY5MywgMC4wMDQ2ODksIDAuMDA0Njg0LCAwLjAwNDY4MyIsIFwKLSAgICAgICAgICAiMC4wMDQ4MjQsIDAuMDA0ODIyLCAwLjAwNDgwOCwgMC4wMDQ3OTgsIDAuMDA0NzkzLCAwLjAwNDc4OCwgMC4wMDQ3ODYiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFJOKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2MTI5ODI7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjEyOTgyOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDYxMjU3NjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDM2NCwgMC4wMDM2MiwgMC4wMDM2MzMsIDAuMDAzNjkyLCAwLjAwMzc2MSwgMC4wMDM4ODEsIDAuMDA0MDA2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA3MTE5LCAwLjAwNzEyNywgMC4wMDcxNzQsIDAuMDA3MjU0LCAwLjAwNzM2MywgMC4wMDc1NzYsIDAuMDA3NjY1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIkQmIVNFIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMV9BTl9TRV9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjA1NjI1LCAtMC4wNTEyNSwgLTAuMDQ1LCAtMC4wNDUsIC0wLjAzODc1LCAtMC4wNDEyNSwgLTAuMDM4NzUiLCBcCi0gICAgICAgICAgIi0wLjA2MTI1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjA1LCAtMC4wNSwgLTAuMDQ2MjUsIC0wLjA0Mzc1IiwgXAotICAgICAgICAgICItMC4wNjc1LCAtMC4wNjI1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDU2MjUsIC0wLjA1MjUsIC0wLjA1IiwgXAotICAgICAgICAgICItMC4wNzM3NSwgLTAuMDY4NzUsIC0wLjA2ODc1LCAtMC4wNjI1LCAtMC4wNjI1LCAtMC4wNTg3NSwgLTAuMDU2MjUiLCBcCi0gICAgICAgICAgIi0wLjA4LCAtMC4wNzUsIC0wLjA3NSwgLTAuMDY4NzUsIC0wLjA2ODc1LCAtMC4wNjUsIC0wLjA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA5LCAtMC4wODUsIC0wLjA4NSwgLTAuMDc4NzUsIC0wLjA3ODc1LCAtMC4wNzUsIC0wLjA3MjUiLCBcCi0gICAgICAgICAgIi0wLjA5ODc1LCAtMC4wOTM3NSwgLTAuMDg3NSwgLTAuMDg3NSwgLTAuMDg3NSwgLTAuMDgzNzUsIC0wLjA4MTI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDEyNSwgLTAuMDA3NSwgLTAuMDAxMjUsIDAuMDA1LCAwLjAwNSwgMC4wMTUsIDAuMDE3NSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxODc1LCAtMC4wMDYyNSwgLTAuMDA2MjUsIDAsIDAuMDAzNzUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAtMC4wMDI1LCAwIiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDE4NzUsIC0wLjAwODc1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAyNSwgLTAuMDE1LCAtMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wNTI1LCAtMC4wNDc1LCAtMC4wNDEyNSwgLTAuMDM1LCAtMC4wMzUsIC0wLjAyNSwgLTAuMDIyNSIsIFwKLSAgICAgICAgICAiLTAuMDYxMjUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzMzc1LCAtMC4wMzEyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiRCYhU0UiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8xX0FOX1NFX0VRXzAgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc1LCAwLjA3LCAwLjA2Mzc1LCAwLjA2Mzc1LCAwLjA1NzUsIDAuMDUzNzUsIDAuMDUxMjUiLCBcCi0gICAgICAgICAgIjAuMDg2MjUsIDAuMDc1LCAwLjA2ODc1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDU4NzUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIjAuMDkyNSwgMC4wODc1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNzUsIDAuMDcxMjUsIDAuMDY4NzUiLCBcCi0gICAgICAgICAgIjAuMDk4NzUsIDAuMDkzNzUsIDAuMDg3NSwgMC4wODEyNSwgMC4wODEyNSwgMC4wNzc1LCAwLjA3NSIsIFwKLSAgICAgICAgICAiMC4xMDUsIDAuMSwgMC4wOTM3NSwgMC4wODc1LCAwLjA4NzUsIDAuMDgzNzUsIDAuMDgxMjUiLCBcCi0gICAgICAgICAgIjAuMTE1LCAwLjExLCAwLjEwMzc1LCAwLjA5NzUsIDAuMDk3NSwgMC4wOTM3NSwgMC4wOTEyNSIsIFwKLSAgICAgICAgICAiMC4xMjM3NSwgMC4xMTg3NSwgMC4xMTI1LCAwLjEwNjI1LCAwLjEwNjI1LCAwLjEwMjUsIDAuMSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0Mzc1LCAwLjAzMjUsIDAuMDI2MjUsIDAuMDIsIDAuMDEzNzUsIDAuMDEsIDAuMDAxMjUiLCBcCi0gICAgICAgICAgIjAuMDQ4NzUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMjUsIDAuMDE1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMDYxMjUsIDAuMDUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMjc1LCAwLjAxODc1IiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDYyNSwgMC4wNSwgMC4wNDM3NSwgMC4wNDM3NSwgMC4wMzM3NSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4wNzM3NSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1LCAwLjA0LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIjAuMDgzNzUsIDAuMDc4NzUsIDAuMDY2MjUsIDAuMDYsIDAuMDYsIDAuMDUsIDAuMDQ3NSIsIFwKLSAgICAgICAgICAiMC4wOTI1LCAwLjA4NzUsIDAuMDc1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDU4NzUsIDAuMDU2MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFNFKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDEyNzUzMzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDEyNzUzMzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDEyNzUyMzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDQ5OTQsIDAuMDA1MDA4LCAwLjAwNTEwNywgMC4wMDUyMDYsIDAuMDA1MzY5LCAwLjAwNTU4MywgMC4wMDU3ODgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDY4MDUsIDAuMDA2ODE1LCAwLjAwNjk0NywgMC4wMDcxMSwgMC4wMDczMTYsIDAuMDA3Njc4LCAwLjAwODAyMiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRCYhUk4mU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1JOX0VRXzBfQU5fU0lfRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMjUsIC0wLjAyLCAtMC4wMiwgLTAuMDEzNzUsIC0wLjAxMzc1LCAtMC4wMSwgLTAuMDA3NSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTg3NSwgLTAuMDE1LCAtMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDMxMjUsIC0wLjAzMTI1LCAtMC4wMjc1LCAtMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wNDM3NSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzNzUsIC0wLjAzMzc1LCAtMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDYxMjUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjA0Mzc1LCAtMC4wNCwgLTAuMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDY1LCAtMC4wNiwgLTAuMDYsIC0wLjA1Mzc1LCAtMC4wNTM3NSwgLTAuMDUsIC0wLjA0NzUiLCBcCi0gICAgICAgICAgIi0wLjA3Mzc1LCAtMC4wNjg3NSwgLTAuMDY4NzUsIC0wLjA2MjUsIC0wLjA2MjUsIC0wLjA1ODc1LCAtMC4wNTYyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAsIDAuMDA1LCAwLjAxMTI1LCAwLjAxNzUsIDAuMDIzNzUsIDAuMDI3NSwgMC4wMzYyNSIsIFwKLSAgICAgICAgICAiLTAuMDExMjUsIDAsIDAuMDA2MjUsIDAuMDEyNSwgMC4wMTg3NSwgMC4wMjI1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDE3NSwgLTAuMDEyNSwgMCwgMC4wMDYyNSwgMC4wMDYyNSwgMC4wMTYyNSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLCAwLCAwLjAxLCAwLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIC0wLjAwNjI1LCAwLjAwMzc1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wMzM3NSwgLTAuMDI4NzUsIC0wLjAyMjUsIC0wLjAxNjI1LCAtMC4wMSwgLTAuMDA2MjUsIDAuMDAyNSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTg3NSwgLTAuMDA4NzUsIC0wLjAwNjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIkQmUk4mIVNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMV9BTl9STl9FUV8xX0FOX1NJX0VRXzAgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDE4NzUsIC0wLjAxMzc1LCAtMC4wMDc1LCAtMC4wMDEyNSwgMC4wMDUsIDAuMDA4NzUsIDAuMDExMjUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIC0wLjAwNjI1LCAwLjAwMzc1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDEyNSwgLTAuMDAyNSwgMCIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwODc1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxNSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA0NjI1LCAtMC4wNDEyNSwgLTAuMDM1LCAtMC4wMjg3NSwgLTAuMDIyNSwgLTAuMDE4NzUsIC0wLjAxNjI1IiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDMxMjUsIC0wLjAyMTI1LCAtMC4wMTg3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAzNzUsIC0wLjAzMjUsIC0wLjAyNjI1LCAtMC4wMjYyNSwgLTAuMDI2MjUsIC0wLjAyMjUsIC0wLjAyIiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzc1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDMxMjUsIC0wLjAyNzUsIC0wLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wNCwgLTAuMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDYxMjUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wNCwgLTAuMDQzNzUiLCBcCi0gICAgICAgICAgIi0wLjA2MTI1LCAtMC4wNTYyNSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNSwgLTAuMDQ2MjUsIC0wLjA0Mzc1IiwgXAotICAgICAgICAgICItMC4wNzEyNSwgLTAuMDY2MjUsIC0wLjA2LCAtMC4wNiwgLTAuMDUzNzUsIC0wLjA1NjI1LCAtMC4wNTM3NSIsIFwKLSAgICAgICAgICAiLTAuMDczNzUsIC0wLjA2ODc1LCAtMC4wNjI1LCAtMC4wNjI1LCAtMC4wNjI1LCAtMC4wNTg3NSwgLTAuMDU2MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEJiFSTiZTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fUk5fRVFfMF9BTl9TSV9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0Mzc1LCAwLjAzODc1LCAwLjAzMjUsIDAuMDMyNSwgMC4wMjYyNSwgMC4wMjI1LCAwLjAyIiwgXAotICAgICAgICAgICIwLjA1NSwgMC4wNDM3NSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzNzUsIDAuMDMzNzUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMDYxMjUsIDAuMDU2MjUsIDAuMDUsIDAuMDUsIDAuMDQzNzUsIDAuMDQsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiMC4wNzM3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1NjI1LCAwLjA1LCAwLjA0NjI1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjA4LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA2MjUsIDAuMDU4NzUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIjAuMDksIDAuMDg1LCAwLjA3ODc1LCAwLjA3MjUsIDAuMDcyNSwgMC4wNjg3NSwgMC4wNjYyNSIsIFwKLSAgICAgICAgICAiMC4wOTg3NSwgMC4wODc1LCAwLjA4NzUsIDAuMDgxMjUsIDAuMDc1LCAwLjA3MTI1LCAwLjA2ODc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDI1LCAwLjAxMzc1LCAwLjAwNzUsIDAuMDAxMjUsIC0wLjAwNSwgLTAuMDA4NzUsIC0wLjAxNzUiLCBcCi0gICAgICAgICAgIjAuMDMsIDAuMDI1LCAwLjAxODc1LCAwLjAxMjUsIDAuMDA2MjUsIC0wLjAwMzc1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiMC4wNDI1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMTg3NSwgMC4wMTI1LCAwLjAwODc1LCAwIiwgXAotICAgICAgICAgICIwLjA0ODc1LCAwLjA0Mzc1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMTg3NSwgMC4wMTUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMDU1LCAwLjA1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDI1LCAwLjAyMTI1LCAwLjAxODc1IiwgXAotICAgICAgICAgICIwLjA2NSwgMC4wNTM3NSwgMC4wNDc1LCAwLjA0MTI1LCAwLjAzNSwgMC4wMzEyNSwgMC4wMjI1IiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNSwgMC4wNDM3NSwgMC4wMzM3NSwgMC4wMzEyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiRCZSTiYhU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8xX0FOX1JOX0VRXzFfQU5fU0lfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNSwgMC4wMzg3NSwgMC4wMzI1LCAwLjAyNjI1LCAwLjAyLCAwLjAxLCAwLjAwNzUiLCBcCi0gICAgICAgICAgIjAuMDU1LCAwLjA1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDI1LCAwLjAyMTI1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMDYxMjUsIDAuMDU2MjUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMjc1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiMC4wNjc1LCAwLjA1NjI1LCAwLjA1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDMzNzUsIDAuMDI1IiwgXAotICAgICAgICAgICIwLjA3Mzc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDUsIDAuMDQzNzUsIDAuMDMzNzUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMDc3NSwgMC4wNjYyNSwgMC4wNiwgMC4wNTM3NSwgMC4wNDc1LCAwLjA0Mzc1LCAwLjAzNSIsIFwKLSAgICAgICAgICAiMC4wOCwgMC4wNzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNSwgMC4wNDYyNSwgMC4wMzc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDYyNSwgMC4wNTEyNSwgMC4wNDUsIDAuMDQ1LCAwLjAzODc1LCAwLjAzNSwgMC4wMzI1IiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNSwgMC4wNSwgMC4wNDYyNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4wNzM3NSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDUyNSwgMC4wNSIsIFwKLSAgICAgICAgICAiMC4wOCwgMC4wNzUsIDAuMDY4NzUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNTg3NSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiMC4wODYyNSwgMC4wODEyNSwgMC4wNzUsIDAuMDY4NzUsIDAuMDY4NzUsIDAuMDY1LCAwLjA2MjUiLCBcCi0gICAgICAgICAgIjAuMDksIDAuMDg1LCAwLjA3ODc1LCAwLjA3ODc1LCAwLjA3MjUsIDAuMDY4NzUsIDAuMDY2MjUiLCBcCi0gICAgICAgICAgIjAuMDk4NzUsIDAuMDg3NSwgMC4wODEyNSwgMC4wODEyNSwgMC4wNzUsIDAuMDcxMjUsIDAuMDc1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTSSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjY0NjA1OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDY2MzY1NDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2NjQ2MDU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzMDM5LCAwLjAwMzAxNiwgMC4wMDMwNDUsIDAuMDAzMDkzLCAwLjAwMzE2MiwgMC4wMDMyNywgMC4wMDM0MDEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDU0MTIsIDAuMDA1Mzk2LCAwLjAwNTQyMiwgMC4wMDU0NjMsIDAuMDA1NTI0LCAwLjAwNTY0MiwgMC4wMDU3NjIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiU0UiOwotICAgICAgc2RmX2NvbmQgOiAiU0UgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDMxMjUsIC0wLjAyNjI1LCAtMC4wMiwgLTAuMDIsIC0wLjAxMzc1LCAtMC4wMSwgLTAuMDA3NSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAyNSwgLTAuMDI1LCAtMC4wMjEyNSwgLTAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzNzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMzEyNSwgLTAuMDI3NSwgLTAuMDI1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDQzNzUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzc1LCAtMC4wMzM3NSwgLTAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjA1NSwgLTAuMDUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDQzNzUsIC0wLjA0LCAtMC4wMzc1IiwgXAotICAgICAgICAgICItMC4wNjUsIC0wLjA2LCAtMC4wNTM3NSwgLTAuMDUzNzUsIC0wLjA1Mzc1LCAtMC4wNSwgLTAuMDQ3NSIsIFwKLSAgICAgICAgICAiLTAuMDY3NSwgLTAuMDY4NzUsIC0wLjA2MjUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNTI1LCAtMC4wNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAxMjUsIC0wLjAwNzUsIC0wLjAwMTI1LCAwLjAwNSwgMC4wMTEyNSwgMC4wMTUsIDAuMDIzNzUiLCBcCi0gICAgICAgICAgIi0wLjAxNzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLCAwLjAwNjI1LCAwLjAxLCAwLjAxODc1IiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLCAwLjAwMzc1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIC0wLjAwMjUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMTI1LCAtMC4wMDI1LCAwIiwgXAotICAgICAgICAgICItMC4wNCwgLTAuMDM1LCAtMC4wMjg3NSwgLTAuMDIyNSwgLTAuMDE2MjUsIC0wLjAxMjUsIC0wLjAxIiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMjUsIC0wLjAxNSwgLTAuMDEyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiU0UiOwotICAgICAgc2RmX2NvbmQgOiAiU0UgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDUsIDAuMDQ1LCAwLjAzODc1LCAwLjAzMjUsIDAuMDMyNSwgMC4wMjg3NSwgMC4wMjYyNSIsIFwKLSAgICAgICAgICAiMC4wNTUsIDAuMDUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzc1LCAwLjAzMzc1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDU2MjUsIDAuMDUsIDAuMDUsIDAuMDQzNzUsIDAuMDQsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiMC4wNzM3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1NjI1LCAwLjA1LCAwLjA0NjI1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjA4LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNTI1LCAwLjA1IiwgXAotICAgICAgICAgICIwLjA4Mzc1LCAwLjA3ODc1LCAwLjA3MjUsIDAuMDcyNSwgMC4wNjYyNSwgMC4wNjI1LCAwLjA2IiwgXAotICAgICAgICAgICIwLjA5MjUsIDAuMDg3NSwgMC4wODEyNSwgMC4wNzUsIDAuMDc1LCAwLjA3MTI1LCAwLjA2ODc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM3NSwgMC4wMzI1LCAwLjAyNjI1LCAwLjAyLCAwLjAxMzc1LCAwLjAwMzc1LCAwLjAwMTI1IiwgXAotICAgICAgICAgICIwLjA0MjUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMjUsIDAuMDE4NzUsIDAuMDA4NzUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMDU1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDI1LCAwLjAxNSwgMC4wMTI1IiwgXAotICAgICAgICAgICIwLjA2MTI1LCAwLjA1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDIxMjUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMDYxMjUsIDAuMDU2MjUsIDAuMDUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMjc1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiMC4wNzEyNSwgMC4wNjYyNSwgMC4wNTM3NSwgMC4wNDc1LCAwLjA0MTI1LCAwLjAzNzUsIDAuMDI4NzUiLCBcCi0gICAgICAgICAgIjAuMDgsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNSwgMC4wNCwgMC4wMzc1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBTREZGWDEgKgotICogLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChTREZGWDEpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMS4wNjAwMTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBmZiAoTjMwLFFCSU5UKSB7Ci0gICAgbmV4dF9zdGF0ZSA6ICIoKFNFIFNJKSArICghU0UgRCkpIjsKLSAgICBjbG9ja2VkX29uIDogIkNLIjsKLSAgfQotICBwaW4oQ0spICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYxMDc3NDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MTA2MzE7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjEwNzc0OwotICAgIGNsb2NrIDogdHJ1ZTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDM1MDMsIDAuMDAzNDk5LCAwLjAwMzU4MiwgMC4wMDM2NzUsIDAuMDAzODAxLCAwLjAwNDAzOSwgMC4wMDQyMTQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDc0NzEsIDAuMDA3NDcxLCAwLjAwNzU2LCAwLjAwNzY5LCAwLjAwNzg0OSwgMC4wMDgwMjksIDAuMDA4MzI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRCYhU0UmIVNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9TRV9FUV8wX0FOX1NJX0VRXzAgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4xMTM4MSwgMC4xMjE5NDIsIDAuMTMwOTE0LCAwLjEzNzU1NCwgMC4xNDI5NDQsIDAuMTUwMjU2LCAwLjE1NTU2OCIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDYwNjA3LCAwLjA2ODcwMiwgMC4wNzc0NTMsIDAuMDgzOTE5LCAwLjA4OTIyOCwgMC4wOTYxMzQsIDAuMTAxMjEzIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihEKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2NDM4OTQ7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjQyODI4OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDY0Mzg5NDsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDMyOTgsIDAuMDAzMjczLCAwLjAwMzI5OCwgMC4wMDMzMzcsIDAuMDAzNDA0LCAwLjAwMzUyMSwgMC4wMDM2NDMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDUyMjksIDAuMDA1MjExLCAwLjAwNTIzNywgMC4wMDUyODMsIDAuMDA1MzQ5LCAwLjAwNTQ1OCwgMC4wMDU1NzgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIVNFIjsKLSAgICAgIHNkZl9jb25kIDogIlNFID09IDEnYjAiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAzMTI1LCAtMC4wMjYyNSwgLTAuMDIsIC0wLjAyLCAtMC4wMTM3NSwgLTAuMDE2MjUsIC0wLjAxMzc1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDMxMjUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAyNSwgLTAuMDIxMjUsIC0wLjAxODc1IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzc1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDMxMjUsIC0wLjAyNzUsIC0wLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjA0Mzc1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDM3NSwgLTAuMDMzNzUsIC0wLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjA0Mzc1LCAtMC4wNCwgLTAuMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDY1LCAtMC4wNiwgLTAuMDUzNzUsIC0wLjA1Mzc1LCAtMC4wNTM3NSwgLTAuMDUsIC0wLjA0NzUiLCBcCi0gICAgICAgICAgIi0wLjA3Mzc1LCAtMC4wNjg3NSwgLTAuMDYyNSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA1MjUsIC0wLjA1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDEyNSwgLTAuMDA3NSwgMC4wMDUsIDAuMDA1LCAwLjAxMTI1LCAwLjAxNSwgMC4wMjM3NSIsIFwKLSAgICAgICAgICAiLTAuMDE3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAsIDAuMDA2MjUsIDAuMDEsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAsIDAuMDAzNzUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAtMC4wMDI1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDEyNSwgLTAuMDAyNSwgMCIsIFwKLSAgICAgICAgICAiLTAuMDQsIC0wLjAzNSwgLTAuMDI4NzUsIC0wLjAyMjUsIC0wLjAxNjI1LCAtMC4wMTI1LCAtMC4wMSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDI1LCAtMC4wMTUsIC0wLjAxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJTRSA9PSAxJ2IwIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNSwgMC4wNDUsIDAuMDM4NzUsIDAuMDM4NzUsIDAuMDMyNSwgMC4wMjg3NSwgMC4wMjYyNSIsIFwKLSAgICAgICAgICAiMC4wNjEyNSwgMC4wNSwgMC4wNDM3NSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzMzc1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDU2MjUsIDAuMDU2MjUsIDAuMDUsIDAuMDQzNzUsIDAuMDQsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiMC4wNzM3NSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1NjI1LCAwLjA1MjUsIDAuMDUiLCBcCi0gICAgICAgICAgIjAuMDgsIDAuMDc1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDYyNSwgMC4wNTg3NSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiMC4wOSwgMC4wNzg3NSwgMC4wNzI1LCAwLjA3MjUsIDAuMDY2MjUsIDAuMDYyNSwgMC4wNiIsIFwKLSAgICAgICAgICAiMC4wOTI1LCAwLjA4NzUsIDAuMDgxMjUsIDAuMDc1LCAwLjA3NSwgMC4wNzEyNSwgMC4wNjg3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0Mzc1LCAwLjAzMjUsIDAuMDI2MjUsIDAuMDIsIDAuMDEzNzUsIDAuMDAzNzUsIDAuMDAxMjUiLCBcCi0gICAgICAgICAgIjAuMDQ4NzUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMjUsIDAuMDE4NzUsIDAuMDE1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICIwLjA1NSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMjEyNSwgMC4wMTI1IiwgXAotICAgICAgICAgICIwLjA2MTI1LCAwLjA1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDI3NSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4wNjc1LCAwLjA1NjI1LCAwLjA1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDI3NSwgMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMDcxMjUsIDAuMDY2MjUsIDAuMDUzNzUsIDAuMDQ3NSwgMC4wNDc1LCAwLjAzNzUsIDAuMDM1IiwgXAotICAgICAgICAgICIwLjA4LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDUsIDAuMDQ2MjUsIDAuMDM3NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjM0NjI0NDsKLSAgICBmdW5jdGlvbiA6ICJOMzAiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5vbl91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcmlzaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5NTA5MywgMC4xMTM3MDQsIDAuMjE5MDA1LCAwLjMxMjEwNCwgMC40MzYwMTEsIDAuNjg0Njc3LCAwLjg0MDEwNCIsIFwKLSAgICAgICAgICAiMC4xMDMxODYsIDAuMTIxODAzLCAwLjIyNzI0LCAwLjMyMDExNiwgMC40NDQxMTgsIDAuNjkyNzYyLCAwLjg0ODIwOSIsIFwKLSAgICAgICAgICAiMC4xMTE3NjYsIDAuMTMwMzY1LCAwLjIzNTk1NSwgMC4zMjg4NzIsIDAuNDUyODExLCAwLjcwMTQ0OSwgMC44NTYyNTQiLCBcCi0gICAgICAgICAgIjAuMTE4NTYyLCAwLjEzNzE3NCwgMC4yNDI3MzksIDAuMzM1NTA1LCAwLjQ1OTQ4NywgMC43MDgxMzksIDAuODYzNTc4IiwgXAotICAgICAgICAgICIwLjEyMzksIDAuMTQyNDg1LCAwLjI0NzgwNywgMC4zNDA4NjMsIDAuNDY0Nzk1LCAwLjcxMzQ1OCwgMC44NjgxMTQiLCBcCi0gICAgICAgICAgIjAuMTMwODc4LCAwLjE0OTQ5OCwgMC4yNTQ5MzgsIDAuMzQ3ODA5LCAwLjQ3MTc5LCAwLjcxOTk3NiwgMC44NzUwODEiLCBcCi0gICAgICAgICAgIjAuMTM2Mjk3LCAwLjE1NDk5MSwgMC4yNjAyNDQsIDAuMzUzMjczLCAwLjQ3NzIyNCwgMC43MjU0MjYsIDAuODgxMTU1Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3MjM5MiwgMC4xMTA5NjcsIDAuMzMxODk1LCAwLjUyODU4MiwgMC43OTA0NDcsIDEuMzE0MTcsIDEuNjQxNTciLCBcCi0gICAgICAgICAgIjAuMDcyMzk3LCAwLjExMDk2OCwgMC4zMzIyMzUsIDAuNTI3ODgsIDAuNzkwMzg4LCAxLjMxNDE4LCAxLjY0MDE2IiwgXAotICAgICAgICAgICIwLjA3MjM5NSwgMC4xMTA5NjEsIDAuMzMyMjQxLCAwLjUyODU1NiwgMC43OTAzODMsIDEuMzE0MTgsIDEuNjM5MDgiLCBcCi0gICAgICAgICAgIjAuMDcyNTU4LCAwLjExMDkzOSwgMC4zMzE3NDgsIDAuNTI3NzQ5LCAwLjc5MDM3MSwgMS4zMTQxOCwgMS42NDE1OSIsIFwKLSAgICAgICAgICAiMC4wNzI0MDIsIDAuMTEwOTMsIDAuMzMxOTIzLCAwLjUyODQzNCwgMC43OTAzNiwgMS4zMTQxOCwgMS42MzgyMiIsIFwKLSAgICAgICAgICAiMC4wNzI4MDksIDAuMTEwNzg1LCAwLjMzMjE5OSwgMC41Mjc3MjUsIDAuNzkwMjc5LCAxLjMxMTA5LCAxLjYzNzUyIiwgXAotICAgICAgICAgICIwLjA3Mjc1MiwgMC4xMTA4MzUsIDAuMzMxNzQ1LCAwLjUyODUwOCwgMC43OTAxOTgsIDEuMzEyNDgsIDEuNjQxMzIiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTA0OTY5LCAwLjEyMzE2MSwgMC4yMjU4MzYsIDAuMzE2NjE2LCAwLjQzNzIyOCwgMC42Nzg3MDMsIDAuODI5NzQ3IiwgXAotICAgICAgICAgICIwLjExMzA5NiwgMC4xMzEzMDIsIDAuMjMzOTQsIDAuMzI0NzI1LCAwLjQ0NTM4NCwgMC42ODY4NDMsIDAuODM3ODAzIiwgXAotICAgICAgICAgICIwLjEyMjA2MywgMC4xNDAyNzYsIDAuMjQzMTQ2LCAwLjMzMzQzNiwgMC40NTQzNDcsIDAuNjk1NzU3LCAwLjg0NjcwMiIsIFwKLSAgICAgICAgICAiMC4xMjg3MTksIDAuMTQ2OTQzLCAwLjI0OTY5OCwgMC4zNDAzNDUsIDAuNDYxMDA0LCAwLjcwMjQ0NiwgMC44NTM0MzEiLCBcCi0gICAgICAgICAgIjAuMTM0MTA0LCAwLjE1MjMyMywgMC4yNTQ5OTUsIDAuMzQ1NzA0LCAwLjQ2NjM0OSwgMC43MDc0NTcsIDAuODU4NzM3IiwgXAotICAgICAgICAgICIwLjE0MTM5NCwgMC4xNTk3MzIsIDAuMjYyNjIyLCAwLjM1MjgxNiwgMC40NzM2NTcsIDAuNzE1MTA0LCAwLjg2NjA3MyIsIFwKLSAgICAgICAgICAiMC4xNDY3NTcsIDAuMTY0OTg4LCAwLjI2NzkxMSwgMC4zNTgzNTksIDAuNDc5MTE0LCAwLjcyMDQ1NCwgMC44NzEzMDQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY5Nzk1LCAwLjEwNjA1NSwgMC4zMTU2OTcsIDAuNTAyNjA0LCAwLjc1MTQsIDEuMjQ5MTEsIDEuNTU3NDUiLCBcCi0gICAgICAgICAgIjAuMDY5NDg4LCAwLjEwNjA2LCAwLjMxNTQ3NCwgMC41MDI1OTMsIDAuNzUxNDM3LCAxLjI0OTIzLCAxLjU1NjU4IiwgXAotICAgICAgICAgICIwLjA2OTQ4OCwgMC4xMDYwNDMsIDAuMzE1ODg1LCAwLjUwMTc3MiwgMC43NTE0NDQsIDEuMjQ5MTEsIDEuNTYwMzMiLCBcCi0gICAgICAgICAgIjAuMDY5ODAyLCAwLjEwNTkyNiwgMC4zMTU0OTEsIDAuNTAyNTk5LCAwLjc1MTM5MywgMS4yNDkxMiwgMS41NTYzOCIsIFwKLSAgICAgICAgICAiMC4wNjk1MDksIDAuMTA1Njk3LCAwLjMxNTczNSwgMC41MDI1NzksIDAuNzUxNDE4LCAxLjI0NywgMS41NjAzNCIsIFwKLSAgICAgICAgICAiMC4wNjk3MTMsIDAuMTA2MTE3LCAwLjMxNTY4NSwgMC41MDE3NTUsIDAuNzUxMzA0LCAxLjI0OSwgMS41NjAwNyIsIFwKLSAgICAgICAgICAiMC4wNjk1NiwgMC4xMDYwMDcsIDAuMzE1ODc5LCAwLjUwMjU4MiwgMC43NTA1NjgsIDEuMjQ5MDMsIDEuNTYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0OTc2LCAwLjAwNDk3MSwgMC4wMDQ5NDgsIDAuMDA0OTQsIDAuMDA0OTM0LCAwLjAwNDkyOSwgMC4wMDQ5MjgiLCBcCi0gICAgICAgICAgIjAuMDA0OTY5LCAwLjAwNDk2NSwgMC4wMDQ5NDIsIDAuMDA0OTMzLCAwLjAwNDkyOCwgMC4wMDQ5MjMsIDAuMDA0OTIxIiwgXAotICAgICAgICAgICIwLjAwNTAxNywgMC4wMDUwMTMsIDAuMDA0OTg5LCAwLjAwNDk4LCAwLjAwNDk3NSwgMC4wMDQ5NjgsIDAuMDA0OTY3IiwgXAotICAgICAgICAgICIwLjAwNTA2NiwgMC4wMDUwNjMsIDAuMDA1MDQsIDAuMDA1MDMxLCAwLjAwNTAyNSwgMC4wMDUwMTksIDAuMDA1MDE3IiwgXAotICAgICAgICAgICIwLjAwNTEzOCwgMC4wMDUxMzYsIDAuMDA1MTE0LCAwLjAwNTEwNCwgMC4wMDUwOTgsIDAuMDA1MDkyLCAwLjAwNTA4OSIsIFwKLSAgICAgICAgICAiMC4wMDUyMzIsIDAuMDA1MjI4LCAwLjAwNTIwNiwgMC4wMDUxOTUsIDAuMDA1MTg4LCAwLjAwNTE4MSwgMC4wMDUxNzkiLCBcCi0gICAgICAgICAgIjAuMDA1MzMzLCAwLjAwNTMzMiwgMC4wMDUzMSwgMC4wMDUyOTksIDAuMDA1MjkxLCAwLjAwNTI4NSwgMC4wMDUyODMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDUwNzIsIDAuMDA1MDgxLCAwLjAwNTA5NCwgMC4wMDUwOTcsIDAuMDA1MDk4LCAwLjAwNTEwMSwgMC4wMDUxIiwgXAotICAgICAgICAgICIwLjAwNTA3NSwgMC4wMDUwODMsIDAuMDA1MDk2LCAwLjAwNTA5OCwgMC4wMDUxMDEsIDAuMDA1MTAzLCAwLjAwNTEwMiIsIFwKLSAgICAgICAgICAiMC4wMDUxMTgsIDAuMDA1MTI2LCAwLjAwNTEzOCwgMC4wMDUxNDEsIDAuMDA1MTQyLCAwLjAwNTE0NCwgMC4wMDUxNDUiLCBcCi0gICAgICAgICAgIjAuMDA1MTgzLCAwLjAwNTE5MSwgMC4wMDUyMDMsIDAuMDA1MjA1LCAwLjAwNTIwNiwgMC4wMDUyMDgsIDAuMDA1MjA4IiwgXAotICAgICAgICAgICIwLjAwNTI1OCwgMC4wMDUyNjYsIDAuMDA1Mjc3LCAwLjAwNTI3OSwgMC4wMDUyODEsIDAuMDA1MjgxLCAwLjAwNTI4MiIsIFwKLSAgICAgICAgICAiMC4wMDUzNzIsIDAuMDA1MzgyLCAwLjAwNTM4MiwgMC4wMDUzODQsIDAuMDA1Mzg1LCAwLjAwNTM5NCwgMC4wMDUzOTQiLCBcCi0gICAgICAgICAgIjAuMDA1NDY3LCAwLjAwNTQ3NiwgMC4wMDU0ODQsIDAuMDA1NDg1LCAwLjAwNTQ4NSwgMC4wMDU0ODUsIDAuMDA1NDg1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihRTikgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjM0ODE5ODsKLSAgICBmdW5jdGlvbiA6ICJRQklOVCI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3NlbnNlIDogbm9uX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiByaXNpbmdfZWRnZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTEzODEsIDAuMTMyMTIxLCAwLjIzNTk5NiwgMC4zMjc2NjEsIDAuNDQ5ODEyLCAwLjY5NDI1LCAwLjg0NzEyMiIsIFwKLSAgICAgICAgICAiMC4xMjE5NDIsIDAuMTQwMjQzLCAwLjI0NDEzMiwgMC4zMzU3ODUsIDAuNDU3OTU4LCAwLjcwMjM5LCAwLjg1NTE5IiwgXAotICAgICAgICAgICIwLjEzMDkxNCwgMC4xNDkxOTcsIDAuMjUzMDYyLCAwLjM0NDczMSwgMC40NjY4OTksIDAuNzExMzAyLCAwLjg2NDA5NyIsIFwKLSAgICAgICAgICAiMC4xMzc1NTUsIDAuMTU1ODY1LCAwLjI1OTc2MywgMC4zNTE0MDQsIDAuNDczNTgxLCAwLjcxODAwMywgMC44NzA4MjkiLCBcCi0gICAgICAgICAgIjAuMTQyOTQ1LCAwLjE2MTI2NSwgMC4yNjUxMjQsIDAuMzU2NzU0LCAwLjQ3ODkyMiwgMC43MjMyODUsIDAuODc2MTQiLCBcCi0gICAgICAgICAgIjAuMTUwMjU2LCAwLjE2ODYwNiwgMC4yNzI0ODksIDAuMzY0MTE2LCAwLjQ4NjI4MiwgMC43MzA2NzgsIDAuODgzNDkyIiwgXAotICAgICAgICAgICIwLjE1NTU2OSwgMC4xNzM4NjEsIDAuMjc3Nzk0LCAwLjM2OTQxOCwgMC40OTE2NDcsIDAuNzM2MDE2LCAwLjg4ODc2Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2OTQwNywgMC4xMDc1NjEsIDAuMzI1OTk1LCAwLjUxOTI2NiwgMC43NzYzNjksIDEuMjkwNzUsIDEuNjA5ODUiLCBcCi0gICAgICAgICAgIjAuMDY5MzQ3LCAwLjEwNzc3NywgMC4zMjU5NTQsIDAuNTE5MjYyLCAwLjc3NjQzMywgMS4yOTA4MiwgMS42MDk3MiIsIFwKLSAgICAgICAgICAiMC4wNjkzMzMsIDAuMTA3Nzc4LCAwLjMyNjM4NiwgMC41MTg2ODcsIDAuNzc2NDE4LCAxLjI5MDc4LCAxLjYxMjM0IiwgXAotICAgICAgICAgICIwLjA2OTQwMiwgMC4xMDc2MDcsIDAuMzI1ODc4LCAwLjUxOTI2MywgMC43NzYzODYsIDEuMjkwNzUsIDEuNjA5NzQiLCBcCi0gICAgICAgICAgIjAuMDY5MzM1LCAwLjEwNzc0NSwgMC4zMjU4MzEsIDAuNTE5MjM3LCAwLjc3NjQxNywgMS4yODk1NCwgMS42MTIzNyIsIFwKLSAgICAgICAgICAiMC4wNjk0MjUsIDAuMTA3Nzk0LCAwLjMyNTc1LCAwLjUxODU0OCwgMC43NzYzNDUsIDEuMjkwNjksIDEuNjEyMTgiLCBcCi0gICAgICAgICAgIjAuMDY5NTE3LCAwLjEwNzYzNCwgMC4zMjYzNzMsIDAuNTE5Mjc3LCAwLjc3NTQ2OCwgMS4yOTA2NSwgMS42MTIxNyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDQ2MDcsIDAuMTIyNzA5LCAwLjIyNTI2NCwgMC4zMTU3MzQsIDAuNDM2MzI4LCAwLjY3NzU3MiwgMC44MjgzNTUiLCBcCi0gICAgICAgICAgIjAuMTEyNjk1LCAwLjEzMDc5NywgMC4yMzMzNDQsIDAuMzIzODEyLCAwLjQ0NDQyMywgMC42ODU2NTEsIDAuODM2NDU4IiwgXAotICAgICAgICAgICIwLjEyMTI2MywgMC4xMzkzNjYsIDAuMjQyMDUyLCAwLjMzMjUwOSwgMC40NTMxMjQsIDAuNjk0MzU0LCAwLjg0NTEwNyIsIFwKLSAgICAgICAgICAiMC4xMjgwNTQsIDAuMTQ2MTU0LCAwLjI0ODczOCwgMC4zMzkxNTcsIDAuNDU5NzcxLCAwLjcwMTAxNSwgMC44NTE4MiIsIFwKLSAgICAgICAgICAiMC4xMzMzMzMsIDAuMTUxNDMxLCAwLjI1Mzk4NCwgMC4zNDQ0MzYsIDAuNDY1MDQ4LCAwLjcwNjMxMywgMC44NTcxMzYiLCBcCi0gICAgICAgICAgIjAuMTQwNDcxLCAwLjE1ODQ4MSwgMC4yNjEwMDQsIDAuMzUxNDU5LCAwLjQ3MjA3NiwgMC43MTMzNjcsIDAuODY0MTUiLCBcCi0gICAgICAgICAgIjAuMTQ1Nzc0LCAwLjE2Mzg3NCwgMC4yNjYzOSwgMC4zNTY4NjksIDAuNDc3NTAxLCAwLjcxODgwOSwgMC44Njk0NTciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY3MTM2LCAwLjEwNDE2LCAwLjMxNDg5MywgMC41MDE3MjUsIDAuNzUwMjQsIDEuMjQ3NDUsIDEuNTU4MjQiLCBcCi0gICAgICAgICAgIjAuMDY3MTM3LCAwLjEwNDE2NSwgMC4zMTUyNzksIDAuNTAxMTk3LCAwLjc1MDI2NCwgMS4yNDc0MywgMS41NTgyOCIsIFwKLSAgICAgICAgICAiMC4wNjcxMDksIDAuMTA0MTUxLCAwLjMxNTI4OCwgMC41MDE2ODEsIDAuNzUwMjUzLCAxLjI0NzQzLCAxLjU1NjQ1IiwgXAotICAgICAgICAgICIwLjA2NzE2MSwgMC4xMDQxNDUsIDAuMzE0Nzc5LCAwLjUwMTAyNCwgMC43NTAyMzUsIDEuMjQ3NDQsIDEuNTU4MjkiLCBcCi0gICAgICAgICAgIjAuMDY3MTQ2LCAwLjEwNDE0OCwgMC4zMTQ4ODcsIDAuNTAxNjcyLCAwLjc1MDIzOSwgMS4yNDc0OSwgMS41NTU0NCIsIFwKLSAgICAgICAgICAiMC4wNjcyMTUsIDAuMTA0MDUzLCAwLjMxNTIyLCAwLjUwMDk5MiwgMC43NTAxMjUsIDEuMjQ1MjcsIDEuNTU1NDYiLCBcCi0gICAgICAgICAgIjAuMDY3Mjc4LCAwLjEwMzk2OCwgMC4zMTQ4MiwgMC41MDE2MjksIDAuNzUwMTM3LCAxLjI0NTksIDEuNTU3ODUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1MDcyLCAwLjAwNTA4MSwgMC4wMDUwOTQsIDAuMDA1MDk3LCAwLjAwNTA5OCwgMC4wMDUxMDEsIDAuMDA1MSIsIFwKLSAgICAgICAgICAiMC4wMDUwNzUsIDAuMDA1MDgzLCAwLjAwNTA5NiwgMC4wMDUwOTgsIDAuMDA1MTAxLCAwLjAwNTEwMywgMC4wMDUxMDIiLCBcCi0gICAgICAgICAgIjAuMDA1MTE4LCAwLjAwNTEyNiwgMC4wMDUxMzgsIDAuMDA1MTQxLCAwLjAwNTE0MiwgMC4wMDUxNDQsIDAuMDA1MTQ1IiwgXAotICAgICAgICAgICIwLjAwNTE4MywgMC4wMDUxOTEsIDAuMDA1MjAzLCAwLjAwNTIwNSwgMC4wMDUyMDYsIDAuMDA1MjA4LCAwLjAwNTIwOCIsIFwKLSAgICAgICAgICAiMC4wMDUyNTgsIDAuMDA1MjY2LCAwLjAwNTI3NywgMC4wMDUyNzksIDAuMDA1MjgxLCAwLjAwNTI4MSwgMC4wMDUyODIiLCBcCi0gICAgICAgICAgIjAuMDA1MzcyLCAwLjAwNTM4MiwgMC4wMDUzODIsIDAuMDA1Mzg0LCAwLjAwNTM4NSwgMC4wMDUzOTQsIDAuMDA1Mzk0IiwgXAotICAgICAgICAgICIwLjAwNTQ2NywgMC4wMDU0NzYsIDAuMDA1NDg0LCAwLjAwNTQ4NSwgMC4wMDU0ODUsIDAuMDA1NDg1LCAwLjAwNTQ4NSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDk3NiwgMC4wMDQ5NzEsIDAuMDA0OTQ4LCAwLjAwNDk0LCAwLjAwNDkzNCwgMC4wMDQ5MjksIDAuMDA0OTI4IiwgXAotICAgICAgICAgICIwLjAwNDk2OSwgMC4wMDQ5NjUsIDAuMDA0OTQyLCAwLjAwNDkzMywgMC4wMDQ5MjgsIDAuMDA0OTIzLCAwLjAwNDkyMSIsIFwKLSAgICAgICAgICAiMC4wMDUwMTcsIDAuMDA1MDEzLCAwLjAwNDk4OSwgMC4wMDQ5OCwgMC4wMDQ5NzUsIDAuMDA0OTY4LCAwLjAwNDk2NyIsIFwKLSAgICAgICAgICAiMC4wMDUwNjYsIDAuMDA1MDYzLCAwLjAwNTA0LCAwLjAwNTAzMSwgMC4wMDUwMjUsIDAuMDA1MDE5LCAwLjAwNTAxNyIsIFwKLSAgICAgICAgICAiMC4wMDUxMzgsIDAuMDA1MTM2LCAwLjAwNTExNCwgMC4wMDUxMDQsIDAuMDA1MDk4LCAwLjAwNTA5MiwgMC4wMDUwODkiLCBcCi0gICAgICAgICAgIjAuMDA1MjMyLCAwLjAwNTIyOCwgMC4wMDUyMDYsIDAuMDA1MTk1LCAwLjAwNTE4OCwgMC4wMDUxODEsIDAuMDA1MTc5IiwgXAotICAgICAgICAgICIwLjAwNTMzMywgMC4wMDUzMzIsIDAuMDA1MzEsIDAuMDA1Mjk5LCAwLjAwNTI5MSwgMC4wMDUyODUsIDAuMDA1MjgzIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTRSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNDIxMTU7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNDIxMTU7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNDIwOTk7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA0ODY0LCAwLjAwNDg4MiwgMC4wMDQ5NjIsIDAuMDA1MDc0LCAwLjAwNTIzMywgMC4wMDU0MjgsIDAuMDA1NjE3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA2NjU2LCAwLjAwNjY4NSwgMC4wMDY4MTIsIDAuMDA2OTg1LCAwLjAwNzIxMSwgMC4wMDc1ODYsIDAuMDA3OTM0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEJlNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9TSV9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAyNSwgLTAuMDIsIC0wLjAyLCAtMC4wMTM3NSwgLTAuMDEzNzUsIC0wLjAxLCAtMC4wMDc1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDE1LCAtMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzc1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDMxMjUsIC0wLjAyNzUsIC0wLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNDM3NSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzNzUsIC0wLjAzMzc1LCAtMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDYxMjUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjA0Mzc1LCAtMC4wNCwgLTAuMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDY1LCAtMC4wNiwgLTAuMDYsIC0wLjA1Mzc1LCAtMC4wNTM3NSwgLTAuMDUsIC0wLjA0NzUiLCBcCi0gICAgICAgICAgIi0wLjA3Mzc1LCAtMC4wNjg3NSwgLTAuMDYyNSwgLTAuMDYyNSwgLTAuMDYyNSwgLTAuMDU4NzUsIC0wLjA1NjI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDA2MjUsIC0wLjAwMTI1LCAwLjAwNSwgMC4wMTEyNSwgMC4wMTc1LCAwLjAyMTI1LCAwLjAyMzc1IiwgXAotICAgICAgICAgICItMC4wMTc1LCAtMC4wMDYyNSwgMCwgMC4wMDYyNSwgMC4wMDYyNSwgMC4wMTYyNSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxODc1LCAtMC4wMDYyNSwgLTAuMDA2MjUsIDAsIDAuMDAzNzUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAtMC4wMDI1LCAwIiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwODc1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDQsIC0wLjAzNSwgLTAuMDI4NzUsIC0wLjAyMjUsIC0wLjAyMjUsIC0wLjAxODc1LCAtMC4wMSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMjEyNSwgLTAuMDE4NzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiRCYhU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8xX0FOX1NJX0VRXzAgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDE4NzUsIC0wLjAwNzUsIC0wLjAwMTI1LCAwLjAwNSwgMC4wMDUsIDAuMDE1LCAwLjAxNzUiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAsIDAuMDAzNzUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAtMC4wMDI1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDEyNSwgLTAuMDAyNSwgMCIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDg3NSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA0LCAtMC4wMzUsIC0wLjAyODc1LCAtMC4wMjI1LCAtMC4wMTYyNSwgLTAuMDEyNSwgLTAuMDEiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMjUsIC0wLjAxNSwgLTAuMDEyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAzNzUsIC0wLjAzMjUsIC0wLjAyNjI1LCAtMC4wMjYyNSwgLTAuMDI2MjUsIC0wLjAyMjUsIC0wLjAyIiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzc1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDMxMjUsIC0wLjAyNzUsIC0wLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjA0Mzc1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDM3NSwgLTAuMDMzNzUsIC0wLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzMzc1LCAtMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wNDM3NSwgLTAuMDQsIC0wLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjA2NSwgLTAuMDYsIC0wLjA1Mzc1LCAtMC4wNDc1LCAtMC4wNDc1LCAtMC4wNDM3NSwgLTAuMDQxMjUiLCBcCi0gICAgICAgICAgIi0wLjA2NzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjA0NjI1LCAtMC4wNDM3NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUQmU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1NJX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDUsIDAuMDM4NzUsIDAuMDMyNSwgMC4wMzI1LCAwLjAyNjI1LCAwLjAyMjUsIDAuMDIiLCBcCi0gICAgICAgICAgIjAuMDU1LCAwLjA1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDM3NSwgMC4wMzM3NSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4wNjc1LCAwLjA1NjI1LCAwLjA1LCAwLjA1LCAwLjA0Mzc1LCAwLjA0LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIjAuMDczNzUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNTYyNSwgMC4wNTI1LCAwLjA1IiwgXAotICAgICAgICAgICIwLjA4LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA2MjUsIDAuMDU4NzUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIjAuMDksIDAuMDg1LCAwLjA3ODc1LCAwLjA3MjUsIDAuMDcyNSwgMC4wNjg3NSwgMC4wNjYyNSIsIFwKLSAgICAgICAgICAiMC4wOTg3NSwgMC4wOTM3NSwgMC4wODc1LCAwLjA4MTI1LCAwLjA4MTI1LCAwLjA3NzUsIDAuMDc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM3NSwgMC4wMjYyNSwgMC4wMiwgMC4wMTM3NSwgMC4wMDc1LCAwLjAwMzc1LCAtMC4wMDUiLCBcCi0gICAgICAgICAgIjAuMDQyNSwgMC4wMzc1LCAwLjAyNSwgMC4wMTg3NSwgMC4wMTI1LCAwLjAwODc1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICIwLjA1NSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMTUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4wNjEyNSwgMC4wNTYyNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyNzUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMDY3NSwgMC4wNjI1LCAwLjA1LCAwLjA0Mzc1LCAwLjA0Mzc1LCAwLjAzMzc1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICIwLjA3NzUsIDAuMDcyNSwgMC4wNiwgMC4wNTM3NSwgMC4wNDc1LCAwLjA0Mzc1LCAwLjA0MTI1IiwgXAotICAgICAgICAgICIwLjA4NjI1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1MjUsIDAuMDQzNzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIkQmIVNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMV9BTl9TSV9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0Mzc1LCAwLjAzODc1LCAwLjAyNjI1LCAwLjAyNjI1LCAwLjAyLCAwLjAxLCAwLjAwNzUiLCBcCi0gICAgICAgICAgIjAuMDU1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDI1LCAwLjAyMTI1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMDYxMjUsIDAuMDUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMjEyNSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4wNjEyNSwgMC4wNTYyNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzNzUsIDAuMDI3NSwgMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMDY3NSwgMC4wNTYyNSwgMC4wNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzMzc1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiMC4wNzEyNSwgMC4wNiwgMC4wNTM3NSwgMC4wNDc1LCAwLjA0MTI1LCAwLjAzNzUsIDAuMDI4NzUiLCBcCi0gICAgICAgICAgIjAuMDczNzUsIDAuMDY4NzUsIDAuMDU2MjUsIDAuMDUsIDAuMDUsIDAuMDQsIDAuMDM3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2MjUsIDAuMDUxMjUsIDAuMDQ1LCAwLjA0NSwgMC4wMzg3NSwgMC4wMzUsIDAuMDMyNSIsIFwKLSAgICAgICAgICAiMC4wNjc1LCAwLjA1NjI1LCAwLjA1NjI1LCAwLjA1LCAwLjA0Mzc1LCAwLjA0LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIjAuMDczNzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNTYyNSwgMC4wNSwgMC4wNDYyNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4wNzM3NSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1NjI1LCAwLjA1MjUsIDAuMDUiLCBcCi0gICAgICAgICAgIjAuMDgsIDAuMDY4NzUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNjI1LCAwLjA1ODc1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICIwLjA4Mzc1LCAwLjA3ODc1LCAwLjA3MjUsIDAuMDY2MjUsIDAuMDY2MjUsIDAuMDYyNSwgMC4wNiIsIFwKLSAgICAgICAgICAiMC4wODYyNSwgMC4wODEyNSwgMC4wNzUsIDAuMDY4NzUsIDAuMDY4NzUsIDAuMDY1LCAwLjA2MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFNJKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA3MTIxOTM7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNzExMDMxOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDcxMjE5MzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDMwNzIsIDAuMDAzMDQ5LCAwLjAwMzA4MSwgMC4wMDMxMjMsIDAuMDAzMTk5LCAwLjAwMzMxNSwgMC4wMDM0MzgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDUzODQsIDAuMDA1MzY2LCAwLjAwNTM5MiwgMC4wMDU0MzMsIDAuMDA1NDk2LCAwLjAwNTYxNCwgMC4wMDU3MzQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiU0UiOwotICAgICAgc2RmX2NvbmQgOiAiU0UgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDMxMjUsIC0wLjAyNjI1LCAtMC4wMiwgLTAuMDIsIC0wLjAxMzc1LCAtMC4wMSwgLTAuMDA3NSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAyNSwgLTAuMDI1LCAtMC4wMjEyNSwgLTAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzNzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMzEyNSwgLTAuMDI3NSwgLTAuMDI1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDQzNzUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzc1LCAtMC4wMzM3NSwgLTAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjA1NSwgLTAuMDUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDQzNzUsIC0wLjA0LCAtMC4wMzc1IiwgXAotICAgICAgICAgICItMC4wNjUsIC0wLjA2LCAtMC4wNTM3NSwgLTAuMDUzNzUsIC0wLjA1Mzc1LCAtMC4wNSwgLTAuMDQ3NSIsIFwKLSAgICAgICAgICAiLTAuMDY3NSwgLTAuMDYyNSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA1NjI1LCAtMC4wNTI1LCAtMC4wNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAxMjUsIC0wLjAwNzUsIDAuMDA1LCAwLjAwNSwgMC4wMTEyNSwgMC4wMTUsIDAuMDIzNzUiLCBcCi0gICAgICAgICAgIi0wLjAxNzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLCAwLjAwNjI1LCAwLjAxLCAwLjAxODc1IiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLCAwLjAwMzc1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMjUsIC0wLjAxMjUsIC0wLjAxMjUsIC0wLjAwNjI1LCAtMC4wMDI1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDEyNSwgLTAuMDAyNSwgMCIsIFwKLSAgICAgICAgICAiLTAuMDQsIC0wLjAzNSwgLTAuMDI4NzUsIC0wLjAyMjUsIC0wLjAxNjI1LCAtMC4wMTI1LCAtMC4wMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxNSwgLTAuMDEyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiU0UiOwotICAgICAgc2RmX2NvbmQgOiAiU0UgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDUsIDAuMDQ1LCAwLjAzODc1LCAwLjAzMjUsIDAuMDMyNSwgMC4wMjg3NSwgMC4wMjYyNSIsIFwKLSAgICAgICAgICAiMC4wNjEyNSwgMC4wNSwgMC4wNDM3NSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzMzc1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDU2MjUsIDAuMDUsIDAuMDUsIDAuMDQzNzUsIDAuMDQsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiMC4wNzM3NSwgMC4wNjI1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDUsIDAuMDQ2MjUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMDgsIDAuMDY4NzUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNTg3NSwgMC4wNSIsIFwKLSAgICAgICAgICAiMC4wOSwgMC4wNzg3NSwgMC4wNzI1LCAwLjA3MjUsIDAuMDY2MjUsIDAuMDYyNSwgMC4wNiIsIFwKLSAgICAgICAgICAiMC4wOTI1LCAwLjA4NzUsIDAuMDgxMjUsIDAuMDc1LCAwLjA3NSwgMC4wNzEyNSwgMC4wNjg3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzNzUsIDAuMDMyNSwgMC4wMjYyNSwgMC4wMiwgMC4wMTM3NSwgMC4wMDM3NSwgMC4wMDEyNSIsIFwKLSAgICAgICAgICAiMC4wNDg3NSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMTg3NSwgMC4wMDg3NSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiMC4wNTUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMjUsIDAuMDIxMjUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4wNjEyNSwgMC4wNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyNzUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMDY3NSwgMC4wNTYyNSwgMC4wNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAyNzUsIDAuMDI1IiwgXAotICAgICAgICAgICIwLjA3MTI1LCAwLjA2NjI1LCAwLjA1Mzc1LCAwLjA0NzUsIDAuMDQ3NSwgMC4wMzc1LCAwLjAzNSIsIFwKLSAgICAgICAgICAiMC4wOCwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1LCAwLjA0NjI1LCAwLjAzNzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IFNFREZGSFFYMiAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKFNFREZGSFFYMikgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAxLjU2MDg0OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIGZmIChOMzAsUUJJTlQpIHsKLSAgICBuZXh0X3N0YXRlIDogIigoU0UgU0kpICsgKCFTRSAoKEUgRCkgKyAoIUUgKCEoIU4zMCkpKSkpKSI7Ci0gICAgY2xvY2tlZF9vbiA6ICJDSyI7Ci0gIH0KLSAgcGluKENLKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2Njc5MTk7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjY3OTE5OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDY2Nzg0MTsKLSAgICBjbG9jayA6IHRydWU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA0MDU1LCAwLjAwNDA1OSwgMC4wMDQxMzYsIDAuMDA0MjI1LCAwLjAwNDMzOSwgMC4wMDQ1NjcsIDAuMDA0NzYzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA4NzU4LCAwLjAwODc2MiwgMC4wMDg4NjksIDAuMDA4OTY3LCAwLjAwOTExOSwgMC4wMDkzOTIsIDAuMDA5NjMzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRCYhRSZTRSYhU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX0VfRVFfMF9BTl9TRV9FUV8xX0FOX1NJX0VRXzAgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wODg5OTMsIDAuMDk3MjI3LCAwLjEwNjI2MywgMC4xMTM0MjcsIDAuMTE5MTY5LCAwLjEyNjgyMywgMC4xMzI1MDgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjA2MTkxNiwgMC4wNjk5MjcsIDAuMDc5MTU4LCAwLjA4NjAzOSwgMC4wOTE3LCAwLjA5ODkyLCAwLjEwNDI5MSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwOTUwMzUyOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDk0ODI4NjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA5NTAzNTI7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA1Mzg3LCAwLjAwNTM1MSwgMC4wMDUzNiwgMC4wMDU0MSwgMC4wMDU0NzgsIDAuMDA1NjM4LCAwLjAwNTc2OCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAxMDUxLCAwLjAxMDQ5LCAwLjAxMDUwMiwgMC4wMTA1NTIsIDAuMDEwNjE0LCAwLjAxMDc1OCwgMC4wMTA5MDIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiRSYhU0UiOwotICAgICAgc2RmX2NvbmQgOiAiRV9FUV8xX0FOX1NFX0VRXzAgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDUsIC0wLjA0NSwgLTAuMDQ1LCAtMC4wNDUsIC0wLjAzODc1LCAtMC4wMzUsIC0wLjAzMjUiLCBcCi0gICAgICAgICAgIi0wLjA2MTI1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDQ2MjUsIC0wLjA0Mzc1IiwgXAotICAgICAgICAgICItMC4wNjc1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDU2MjUsIC0wLjA1NjI1LCAtMC4wNTI1LCAtMC4wNSIsIFwKLSAgICAgICAgICAiLTAuMDczNzUsIC0wLjA2ODc1LCAtMC4wNjg3NSwgLTAuMDYyNSwgLTAuMDYyNSwgLTAuMDU4NzUsIC0wLjA1NjI1IiwgXAotICAgICAgICAgICItMC4wOCwgLTAuMDc1LCAtMC4wNzUsIC0wLjA2ODc1LCAtMC4wNjg3NSwgLTAuMDY1LCAtMC4wNjI1IiwgXAotICAgICAgICAgICItMC4wOSwgLTAuMDg1LCAtMC4wODUsIC0wLjA3ODc1LCAtMC4wNzg3NSwgLTAuMDc1LCAtMC4wNzI1IiwgXAotICAgICAgICAgICItMC4wOTg3NSwgLTAuMDkzNzUsIC0wLjA4NzUsIC0wLjA4NzUsIC0wLjA4NzUsIC0wLjA4Mzc1LCAtMC4wODEyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAyNSwgLTAuMDIsIC0wLjAxMzc1LCAtMC4wMDc1LCAtMC4wMDEyNSwgMC4wMDI1LCAwLjAwNSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAxMjUsIC0wLjAwMjUsIDAiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDE4NzUsIC0wLjAwODc1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAyMTI1LCAtMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMzEyNSwgLTAuMDIxMjUsIC0wLjAxODc1IiwgXAotICAgICAgICAgICItMC4wNTI1LCAtMC4wNTM3NSwgLTAuMDQ3NSwgLTAuMDQxMjUsIC0wLjAzNSwgLTAuMDMxMjUsIC0wLjAyODc1IiwgXAotICAgICAgICAgICItMC4wNjEyNSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjA0LCAtMC4wMzEyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiRSYhU0UiOwotICAgICAgc2RmX2NvbmQgOiAiRV9FUV8xX0FOX1NFX0VRXzAgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc1LCAwLjA3LCAwLjA2Mzc1LCAwLjA1NzUsIDAuMDU3NSwgMC4wNTM3NSwgMC4wNTEyNSIsIFwKLSAgICAgICAgICAiMC4wODYyNSwgMC4wNzUsIDAuMDY4NzUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNTg3NSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiMC4wOTI1LCAwLjA4NzUsIDAuMDgxMjUsIDAuMDc1LCAwLjA3NSwgMC4wNzEyNSwgMC4wNjg3NSIsIFwKLSAgICAgICAgICAiMC4wOTg3NSwgMC4wOTM3NSwgMC4wODc1LCAwLjA4MTI1LCAwLjA4MTI1LCAwLjA3NzUsIDAuMDc1IiwgXAotICAgICAgICAgICIwLjEwNSwgMC4xLCAwLjA5Mzc1LCAwLjA4NzUsIDAuMDg3NSwgMC4wODM3NSwgMC4wODEyNSIsIFwKLSAgICAgICAgICAiMC4xMTUsIDAuMTEsIDAuMTAzNzUsIDAuMDk3NSwgMC4wOTc1LCAwLjA5Mzc1LCAwLjA5MTI1IiwgXAotICAgICAgICAgICIwLjEyMzc1LCAwLjExODc1LCAwLjExMjUsIDAuMTA2MjUsIDAuMTA2MjUsIDAuMTAyNSwgMC4xIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDYyNSwgMC4wNTEyNSwgMC4wNDUsIDAuMDM4NzUsIDAuMDMyNSwgMC4wMjg3NSwgMC4wMiIsIFwKLSAgICAgICAgICAiMC4wNjc1LCAwLjA2MjUsIDAuMDUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzM3NSwgMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMDczNzUsIDAuMDY4NzUsIDAuMDU2MjUsIDAuMDUsIDAuMDQzNzUsIDAuMDQsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMDgsIDAuMDc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDU2MjUsIDAuMDQ2MjUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMDg2MjUsIDAuMDgxMjUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNjI1LCAwLjA1MjUsIDAuMDUiLCBcCi0gICAgICAgICAgIjAuMDk2MjUsIDAuMDkxMjUsIDAuMDc4NzUsIDAuMDcyNSwgMC4wNjYyNSwgMC4wNjI1LCAwLjA1Mzc1IiwgXAotICAgICAgICAgICIwLjEwNSwgMC4wOTM3NSwgMC4wODc1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNjUsIDAuMDYyNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNTcwMDc7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNTcwMDc7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNTY5OTY7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA5NzA0LCAwLjAwOTY5NiwgMC4wMDk3NjgsIDAuMDA5ODczLCAwLjAwOTk4OSwgMC4wMTAyNSwgMC4wMTA0NDciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMTE4MDcsIDAuMDExODAzLCAwLjAxMTkyMSwgMC4wMTIxLCAwLjAxMjMxNCwgMC4wMTI3MzYsIDAuMDEzMDk1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJTRSA9PSAxJ2IwIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wNTYyNSwgLTAuMDUxMjUsIC0wLjA0NSwgLTAuMDM4NzUsIC0wLjAzMjUsIC0wLjAyMjUsIC0wLjAyIiwgXAotICAgICAgICAgICItMC4wNjEyNSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDMzNzUsIC0wLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDczNzUsIC0wLjA2ODc1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wNCwgLTAuMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDgsIC0wLjA3NSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNDYyNSwgLTAuMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDg2MjUsIC0wLjA3NSwgLTAuMDY4NzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNTI1LCAtMC4wNDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDksIC0wLjA4NSwgLTAuMDcyNSwgLTAuMDY2MjUsIC0wLjA2LCAtMC4wNTYyNSwgLTAuMDQ3NSIsIFwKLSAgICAgICAgICAiLTAuMDkyNSwgLTAuMDg3NSwgLTAuMDgxMjUsIC0wLjA3NSwgLTAuMDY4NzUsIC0wLjA1ODc1LCAtMC4wNTYyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAxODc1LCAtMC4wMTM3NSwgLTAuMDA3NSwgLTAuMDAxMjUsIC0wLjAwMTI1LCAwLjAwODc1LCAwLjAxMTI1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAxMjUsIC0wLjAwNjI1LCAtMC4wMDI1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxODc1LCAtMC4wMDg3NSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMjEyNSwgLTAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDI3NSwgLTAuMDI1IiwgXAotICAgICAgICAgICItMC4wNTg3NSwgLTAuMDUzNzUsIC0wLjA0NzUsIC0wLjA0NzUsIC0wLjA0MTI1LCAtMC4wMzc1LCAtMC4wMzUiLCBcCi0gICAgICAgICAgIi0wLjA2MTI1LCAtMC4wNTYyNSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNSwgLTAuMDQ2MjUsIC0wLjAzNzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJTRSA9PSAxJ2IwIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzUsIDAuMDYzNzUsIDAuMDU3NSwgMC4wNTc1LCAwLjA1MTI1LCAwLjA0NzUsIDAuMDQ1IiwgXAotICAgICAgICAgICIwLjA4LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA2MjUsIDAuMDU4NzUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIjAuMDkyNSwgMC4wODEyNSwgMC4wNzUsIDAuMDc1LCAwLjA2ODc1LCAwLjA2NSwgMC4wNjI1IiwgXAotICAgICAgICAgICIwLjA5ODc1LCAwLjA5Mzc1LCAwLjA4NzUsIDAuMDgxMjUsIDAuMDgxMjUsIDAuMDc3NSwgMC4wNzUiLCBcCi0gICAgICAgICAgIjAuMTExMjUsIDAuMSwgMC4wOTM3NSwgMC4wOTM3NSwgMC4wODc1LCAwLjA4Mzc1LCAwLjA4MTI1IiwgXAotICAgICAgICAgICIwLjEyMTI1LCAwLjExNjI1LCAwLjExLCAwLjEwMzc1LCAwLjEwMzc1LCAwLjEsIDAuMDk3NSIsIFwKLSAgICAgICAgICAiMC4xMywgMC4xMjUsIDAuMTE4NzUsIDAuMTEyNSwgMC4xMTI1LCAwLjEwODc1LCAwLjEwNjI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc1LCAwLjA3LCAwLjA2Mzc1LCAwLjA2Mzc1LCAwLjA1NzUsIDAuMDUzNzUsIDAuMDUxMjUiLCBcCi0gICAgICAgICAgIjAuMDgsIDAuMDc1LCAwLjA2ODc1LCAwLjA2ODc1LCAwLjA2ODc1LCAwLjA2NSwgMC4wNjI1IiwgXAotICAgICAgICAgICIwLjA4NjI1LCAwLjA4MTI1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNzUsIDAuMDcxMjUsIDAuMDY4NzUiLCBcCi0gICAgICAgICAgIjAuMDkyNSwgMC4wODc1LCAwLjA4MTI1LCAwLjA4MTI1LCAwLjA4MTI1LCAwLjA3NzUsIDAuMDc1IiwgXAotICAgICAgICAgICIwLjA5ODc1LCAwLjA5Mzc1LCAwLjA4NzUsIDAuMDg3NSwgMC4wODEyNSwgMC4wNzc1LCAwLjA3NSIsIFwKLSAgICAgICAgICAiMC4xMDI1LCAwLjA5NzUsIDAuMDkxMjUsIDAuMDkxMjUsIDAuMDkxMjUsIDAuMDg3NSwgMC4wODUiLCBcCi0gICAgICAgICAgIjAuMTA1LCAwLjEsIDAuMSwgMC4wOTM3NSwgMC4wOTM3NSwgMC4wOSwgMC4wODc1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihRKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuNjYzODEyOwotICAgIGZ1bmN0aW9uIDogIk4zMCI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3NlbnNlIDogbm9uX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiByaXNpbmdfZWRnZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc4NzI2LCAwLjE1NzIwMywgMC4yMTk3MTEsIDAuMjk3Nzk0LCAwLjM3NTg5LCAwLjQ1NDAxNCwgMC41MzIxNDgiLCBcCi0gICAgICAgICAgIjAuMDg2ODU1LCAwLjE2NTMzMywgMC4yMjc4NzksIDAuMzA1OTQ2LCAwLjM4NDAyMSwgMC40NjIwNjIsIDAuNTQwMjg0IiwgXAotICAgICAgICAgICIwLjA5NTg1LCAwLjE3NDMyMiwgMC4yMzY4NywgMC4zMTQ5NzQsIDAuMzkzMDIzLCAwLjQ3MTIwOSwgMC41NDkyMDEiLCBcCi0gICAgICAgICAgIjAuMTAyOTcsIDAuMTgxNDM2LCAwLjI0Mzk4NiwgMC4zMjIwNTYsIDAuNDAwMTQ1LCAwLjQ3ODI1MiwgMC41NTY0MTQiLCBcCi0gICAgICAgICAgIjAuMTA4NjAzLCAwLjE4NzA4OCwgMC4yNDk2MTYsIDAuMzI3Njg2LCAwLjQwNTgyMSwgMC40ODM4NjUsIDAuNTYyMDQ3IiwgXAotICAgICAgICAgICIwLjExNjExNCwgMC4xOTQ2MiwgMC4yNTcxMDgsIDAuMzM1MTg2LCAwLjQxMzI4MSwgMC40OTE0NiwgMC41Njk1MzgiLCBcCi0gICAgICAgICAgIjAuMTIxNjc2LCAwLjIwMDE0NywgMC4yNjI2NDEsIDAuMzQwNzcyLCAwLjQxODg0MiwgMC40OTY5NTgsIDAuNTc1MDg3Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0MDQ1OSwgMC4yMDQ1NzUsIDAuMzM3NjY0LCAwLjUwNDc2NywgMC42NzExODksIDAuODM3ODkzLCAxLjAwNDA4IiwgXAotICAgICAgICAgICIwLjA0MDQ2MSwgMC4yMDQ3ODMsIDAuMzM3NjQ4LCAwLjUwNDc2MSwgMC42NzEyMSwgMC44Mzc4ODgsIDEuMDA0NjciLCBcCi0gICAgICAgICAgIjAuMDQwNDYxLCAwLjIwNDU3NSwgMC4zMzc2NTYsIDAuNTA0NzUzLCAwLjY3MTE4NCwgMC44Mzc5LCAxLjAwNTA0IiwgXAotICAgICAgICAgICIwLjA0MDQ3LCAwLjIwNDcxOSwgMC4zMzc2NzYsIDAuNTA0NzM4LCAwLjY3MTQ2OCwgMC44MzgyNjQsIDEuMDA0NjciLCBcCi0gICAgICAgICAgIjAuMDQwNDgsIDAuMjA0Nzg0LCAwLjMzODAxNiwgMC41MDQ3MjUsIDAuNjcxNDU1LCAwLjgzODIxMiwgMS4wMDQ1MyIsIFwKLSAgICAgICAgICAiMC4wNDA0ODEsIDAuMjA0ODA3LCAwLjMzNzk3OCwgMC41MDQ2MzQsIDAuNjcxNDA4LCAwLjgzODE0MSwgMS4wMDQ2MiIsIFwKLSAgICAgICAgICAiMC4wNDA1MDUsIDAuMjA0NDUxLCAwLjMzNzg1MiwgMC41MDQ2OTEsIDAuNjcxMzYsIDAuODM4MTE5LCAxLjAwNDg5Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4OTAwNSwgMC4xNjUyNjksIDAuMjI1OTUxLCAwLjMwMTc4MSwgMC4zNzc1ODMsIDAuNDUzNDQzLCAwLjUyOTIyOSIsIFwKLSAgICAgICAgICAiMC4wOTcyMzgsIDAuMTczNTEsIDAuMjM0MTg4LCAwLjMxMDAwMiwgMC4zODU4NjQsIDAuNDYxNjQ1LCAwLjUzNzUiLCBcCi0gICAgICAgICAgIjAuMTA2MjcyLCAwLjE4MjU0MywgMC4yNDMyMjMsIDAuMzE5MDI0LCAwLjM5NDg5LCAwLjQ3MDcxNCwgMC41NDY0ODYiLCBcCi0gICAgICAgICAgIjAuMTEzNDM3LCAwLjE4OTcwNSwgMC4yNTAzODIsIDAuMzI2MTg1LCAwLjQwMjAyMiwgMC40Nzc4MzYsIDAuNTUzNzA4IiwgXAotICAgICAgICAgICIwLjExOTE3OSwgMC4xOTU0NDYsIDAuMjU2MTMxLCAwLjMzMTkyOSwgMC40MDc3NjMsIDAuNDgzNjE4LCAwLjU1OTQ1MyIsIFwKLSAgICAgICAgICAiMC4xMjY4NzEsIDAuMjAzMTI2LCAwLjI2MzgxMywgMC4zMzk2MjksIDAuNDE1NDQ4LCAwLjQ5MTMwOSwgMC41NjcwODkiLCBcCi0gICAgICAgICAgIjAuMTMyNTE4LCAwLjIwODc2OSwgMC4yNjk0NiwgMC4zNDUyNzEsIDAuNDIxMTEyLCAwLjQ5NjkyMiwgMC41NzI3NDgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM4Mjk2LCAwLjE5MzY4OSwgMC4zMTk2NjUsIDAuNDc3Mjc4LCAwLjYzNDMxLCAwLjc5MjQ3NSwgMC45NDkyOTQiLCBcCi0gICAgICAgICAgIjAuMDM4Mjk2LCAwLjE5MzcwNiwgMC4zMTk2NjcsIDAuNDc3MzM0LCAwLjYzNDM3NCwgMC43OTI4MDMsIDAuOTQ5MzM4IiwgXAotICAgICAgICAgICIwLjAzODI5MywgMC4xOTM3MDEsIDAuMzE5NjcxLCAwLjQ3NzI5LCAwLjYzNTEyMiwgMC43OTI0OTMsIDAuOTUwNTE4IiwgXAotICAgICAgICAgICIwLjAzODI5OCwgMC4xOTM2OTksIDAuMzE5NjU2LCAwLjQ3NzI4NywgMC42MzUwNTIsIDAuNzkyNzA5LCAwLjk1MDM1MiIsIFwKLSAgICAgICAgICAiMC4wMzgzMDQsIDAuMTkzNjksIDAuMzE5NjU0LCAwLjQ3NzI4OSwgMC42MzQzMDksIDAuNzkyNDkyLCAwLjk0ODg2NSIsIFwKLSAgICAgICAgICAiMC4wMzg0NDUsIDAuMTkzNjc2LCAwLjMxOTIyMywgMC40NzY5MTYsIDAuNjM1MTc3LCAwLjc5MjQ2MSwgMC45NTAzMyIsIFwKLSAgICAgICAgICAiMC4wMzgyOTQsIDAuMTkzNjA5LCAwLjMxOTY4MSwgMC40NzcyOTQsIDAuNjM1MTA1LCAwLjc5Mjc2MywgMC45NTA0OSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTQ2OTEsIDAuMDE0NzU2LCAwLjAxNDc2NSwgMC4wMTQ3NywgMC4wMTQ3NzEsIDAuMDE0Nzc1LCAwLjAxNDc3NCIsIFwKLSAgICAgICAgICAiMC4wMTQ2OSwgMC4wMTQ3NTYsIDAuMDE0NzY0LCAwLjAxNDc2OSwgMC4wMTQ3NywgMC4wMTQ3NzIsIDAuMDE0NzczIiwgXAotICAgICAgICAgICIwLjAxNDc3NSwgMC4wMTQ4NDIsIDAuMDE0ODQ5LCAwLjAxNDg1MywgMC4wMTQ4NTYsIDAuMDE0ODU4LCAwLjAxNDg1OSIsIFwKLSAgICAgICAgICAiMC4wMTQ4NjUsIDAuMDE0OTMyLCAwLjAxNDk0LCAwLjAxNDk0NSwgMC4wMTQ5NDgsIDAuMDE0OTQ4LCAwLjAxNDk1IiwgXAotICAgICAgICAgICIwLjAxNTAwOCwgMC4wMTUwNzYsIDAuMDE1MDg0LCAwLjAxNTA4OCwgMC4wMTUwOSwgMC4wMTUwOTIsIDAuMDE1MDkzIiwgXAotICAgICAgICAgICIwLjAxNTIwMiwgMC4wMTUyNzEsIDAuMDE1MjgzLCAwLjAxNTI4NCwgMC4wMTUyOSwgMC4wMTUyODcsIDAuMDE1MjkiLCBcCi0gICAgICAgICAgIjAuMDE1NDMyLCAwLjAxNTQ2MSwgMC4wMTU1MDgsIDAuMDE1NTExLCAwLjAxNTQ3OCwgMC4wMTU1MTcsIDAuMDE1NTE4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE0OTY4LCAwLjAxNTA1MiwgMC4wMTUwNjIsIDAuMDE1MDY3LCAwLjAxNTA2OSwgMC4wMTUwNzEsIDAuMDE1MDcyIiwgXAotICAgICAgICAgICIwLjAxNDk2OSwgMC4wMTUwNTIsIDAuMDE1MDYyLCAwLjAxNTA2OCwgMC4wMTUwNzEsIDAuMDE1MDczLCAwLjAxNTA3NCIsIFwKLSAgICAgICAgICAiMC4wMTUwOSwgMC4wMTUxNzUsIDAuMDE1MTg1LCAwLjAxNTE5MSwgMC4wMTUxOTIsIDAuMDE1MTk1LCAwLjAxNTE5NSIsIFwKLSAgICAgICAgICAiMC4wMTUyMDUsIDAuMDE1Mjg2LCAwLjAxNTI5NiwgMC4wMTUzMDEsIDAuMDE1MzA0LCAwLjAxNTMwNSwgMC4wMTUzMDYiLCBcCi0gICAgICAgICAgIjAuMDE1MzYzLCAwLjAxNTQ0NywgMC4wMTU0NTYsIDAuMDE1NDYxLCAwLjAxNTQ2NCwgMC4wMTU0NjUsIDAuMDE1NDY2IiwgXAotICAgICAgICAgICIwLjAxNTYyNiwgMC4wMTU2ODUsIDAuMDE1Njk0LCAwLjAxNTcyLCAwLjAxNTcyMiwgMC4wMTU3MjUsIDAuMDE1NzI1IiwgXAotICAgICAgICAgICIwLjAxNTc4OSwgMC4wMTU5MDgsIDAuMDE1OTE3LCAwLjAxNTg5MiwgMC4wMTU5MjQsIDAuMDE1ODkzLCAwLjAxNTkyNiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oU0UpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTQ4MDQ0OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTQ4MDQ0OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTQ3OTg7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA3MTc4LCAwLjAwNzE5NiwgMC4wMDcyOTMsIDAuMDA3Mzk1LCAwLjAwNzUyMSwgMC4wMDc3NjUsIDAuMDA3OTY4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA4OTY3LCAwLjAwODk0OCwgMC4wMDkwNjUsIDAuMDA5MjYsIDAuMDA5NDY3LCAwLjAwOTg3OSwgMC4wMTAyNDciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUQmIUUmIVNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9FX0VRXzBfQU5fU0lfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMzc1LCAtMC4wMzI1LCAtMC4wMjYyNSwgLTAuMDI2MjUsIC0wLjAyLCAtMC4wMjI1LCAtMC4wMiIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDM3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAzMTI1LCAtMC4wMjc1LCAtMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjA1NSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDQsIC0wLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjA2MTI1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDQ2MjUsIC0wLjA0Mzc1IiwgXAotICAgICAgICAgICItMC4wNjEyNSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDQ2MjUsIC0wLjA0Mzc1IiwgXAotICAgICAgICAgICItMC4wNzEyNSwgLTAuMDY2MjUsIC0wLjA2LCAtMC4wNiwgLTAuMDYsIC0wLjA1NjI1LCAtMC4wNTM3NSIsIFwKLSAgICAgICAgICAiLTAuMDczNzUsIC0wLjA2ODc1LCAtMC4wNjg3NSwgLTAuMDYyNSwgLTAuMDYyNSwgLTAuMDU4NzUsIC0wLjA1NjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEJiFFJlNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9FX0VRXzBfQU5fU0lfRVFfMSA9PSAxJ2IxIjsKLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMDYyNSwgLTAuMDAxMjUsIDAuMDExMjUsIDAuMDExMjUsIDAuMDE3NSwgMC4wMjEyNSwgMC4wMyIsIFwKLSAgICAgICAgICAiLTAuMDExMjUsIC0wLjAwNjI1LCAwLCAwLjAwNjI1LCAwLjAxMjUsIDAuMDE2MjUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMCwgMCwgMC4wMSwgMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIC0wLjAwMjUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMjUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwODc1LCAwIiwgXAotICAgICAgICAgICItMC4wNCwgLTAuMDM1LCAtMC4wMjg3NSwgLTAuMDIyNSwgLTAuMDIyNSwgLTAuMDEyNSwgLTAuMDEiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wMzc1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMjEyNSwgLTAuMDE4NzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUQmRSZTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fRV9FUV8xX0FOX1NJX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDI1LCAtMC4wMiwgLTAuMDEzNzUsIC0wLjAxMzc1LCAtMC4wMDc1LCAtMC4wMDM3NSwgLTAuMDAxMjUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMjUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxODc1LCAtMC4wMTUsIC0wLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMjEyNSwgLTAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wNDM3NSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzNzUsIC0wLjAzMzc1LCAtMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wNDM3NSwgLTAuMDQsIC0wLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjA2NSwgLTAuMDYsIC0wLjA2LCAtMC4wNTM3NSwgLTAuMDUzNzUsIC0wLjA1LCAtMC4wNDc1IiwgXAotICAgICAgICAgICItMC4wNzM3NSwgLTAuMDY4NzUsIC0wLjA2MjUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNTI1LCAtMC4wNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJEJkUmIVNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMV9BTl9FX0VRXzFfQU5fU0lfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMTg3NSwgLTAuMDA3NSwgLTAuMDAxMjUsIDAuMDA1LCAwLjAxMTI1LCAwLjAxNSwgMC4wMTc1IiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLCAwLjAwMzc1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgLTAuMDAyNSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDg3NSwgMCIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxODc1LCAtMC4wMDg3NSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA0NjI1LCAtMC4wNDEyNSwgLTAuMDM1LCAtMC4wMjg3NSwgLTAuMDIyNSwgLTAuMDE4NzUsIC0wLjAxIiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAyMTI1LCAtMC4wMTg3NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUQmIUUmIVNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9FX0VRXzBfQU5fU0lfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDM3NSwgMC4wMzI1LCAwLjAyNjI1LCAwLjAyLCAwLjAxMzc1LCAwLjAxLCAwLjAwMTI1IiwgXAotICAgICAgICAgICIwLjA0ODc1LCAwLjA0Mzc1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMjUsIDAuMDE1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMDYxMjUsIDAuMDUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMjEyNSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4wNjEyNSwgMC4wNTYyNSwgMC4wNSwgMC4wMzc1LCAwLjAzNzUsIDAuMDI3NSwgMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMDY3NSwgMC4wNjI1LCAwLjA1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDMzNzUsIDAuMDI1IiwgXAotICAgICAgICAgICIwLjA3MTI1LCAwLjA2NjI1LCAwLjA2LCAwLjA1Mzc1LCAwLjA0NzUsIDAuMDM3NSwgMC4wMzUiLCBcCi0gICAgICAgICAgIjAuMDgsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNSwgMC4wNCwgMC4wMzc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRCYhRSZTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fRV9FUV8wX0FOX1NJX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQzNzUsIDAuMDM4NzUsIDAuMDMyNSwgMC4wMjYyNSwgMC4wMjYyNSwgMC4wMjI1LCAwLjAyIiwgXAotICAgICAgICAgICIwLjA1NSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDI3NSwgMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMDYxMjUsIDAuMDU2MjUsIDAuMDUsIDAuMDQzNzUsIDAuMDQzNzUsIDAuMDQsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiMC4wNzM3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1NjI1LCAwLjA1LCAwLjA0NjI1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjA4LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNTI1LCAwLjA1IiwgXAotICAgICAgICAgICIwLjA5LCAwLjA3ODc1LCAwLjA3MjUsIDAuMDcyNSwgMC4wNjYyNSwgMC4wNjI1LCAwLjA2IiwgXAotICAgICAgICAgICIwLjA5ODc1LCAwLjA4NzUsIDAuMDgxMjUsIDAuMDgxMjUsIDAuMDc1LCAwLjA3MTI1LCAwLjA2ODc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRCZFJlNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9FX0VRXzFfQU5fU0lfRVFfMSA9PSAxJ2IxIjsKLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzc1LCAwLjAzMjUsIDAuMDIsIDAuMDEzNzUsIDAuMDA3NSwgMC4wMDM3NSwgLTAuMDA1IiwgXAotICAgICAgICAgICIwLjA0ODc1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDI1LCAwLjAxODc1LCAwLjAwODc1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICIwLjA1NSwgMC4wNSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMjEyNSwgMC4wMTI1IiwgXAotICAgICAgICAgICIwLjA2MTI1LCAwLjA1NjI1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDM3NSwgMC4wMjc1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiMC4wNzM3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1LCAwLjA0Mzc1LCAwLjAzMzc1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICIwLjA4Mzc1LCAwLjA3MjUsIDAuMDY2MjUsIDAuMDYsIDAuMDUzNzUsIDAuMDQzNzUsIDAuMDQxMjUiLCBcCi0gICAgICAgICAgIjAuMDg2MjUsIDAuMDgxMjUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNjI1LCAwLjA1MjUsIDAuMDUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIkQmRSYhU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8xX0FOX0VfRVFfMV9BTl9TSV9FUV8wID09IDEnYjEiOwotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2MjUsIDAuMDUxMjUsIDAuMDQ1LCAwLjA0NSwgMC4wMzg3NSwgMC4wMzUsIDAuMDMyNSIsIFwKLSAgICAgICAgICAiMC4wNjc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDUsIDAuMDUsIDAuMDQ2MjUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMDgsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1MjUsIDAuMDUiLCBcCi0gICAgICAgICAgIjAuMDg2MjUsIDAuMDc1LCAwLjA2ODc1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDU4NzUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIjAuMDkyNSwgMC4wODEyNSwgMC4wNzUsIDAuMDY4NzUsIDAuMDY4NzUsIDAuMDY1LCAwLjA2MjUiLCBcCi0gICAgICAgICAgIjAuMDk2MjUsIDAuMDg1LCAwLjA3ODc1LCAwLjA3ODc1LCAwLjA3MjUsIDAuMDY4NzUsIDAuMDY2MjUiLCBcCi0gICAgICAgICAgIjAuMDk4NzUsIDAuMDkzNzUsIDAuMDg3NSwgMC4wODEyNSwgMC4wODEyNSwgMC4wNzc1LCAwLjA3NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oU0kpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDkyOTg1NzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA5MjcyMDY7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwOTI5ODU3OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNDE3NSwgMC4wMDQxMjcsIDAuMDA0MTU4LCAwLjAwNDIwMywgMC4wMDQyODUsIDAuMDA0NDM2LCAwLjAwNDYzNyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNzkyNCwgMC4wMDc4OTQsIDAuMDA3OTE3LCAwLjAwNzk2OCwgMC4wMDgwMzEsIDAuMDA4MTkyLCAwLjAwODMyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJTRSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMzEyNSwgLTAuMDI2MjUsIC0wLjAyLCAtMC4wMiwgLTAuMDEzNzUsIC0wLjAxLCAtMC4wMDc1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDE1LCAtMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzc1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDMxMjUsIC0wLjAyNzUsIC0wLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjA0Mzc1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDM3NSwgLTAuMDMzNzUsIC0wLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjA0Mzc1LCAtMC4wNCwgLTAuMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDY1LCAtMC4wNiwgLTAuMDUzNzUsIC0wLjA1Mzc1LCAtMC4wNTM3NSwgLTAuMDUsIC0wLjA0NzUiLCBcCi0gICAgICAgICAgIi0wLjA3Mzc1LCAtMC4wNjg3NSwgLTAuMDYyNSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA1MjUsIC0wLjA1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDA2MjUsIC0wLjAwMTI1LCAwLjAwNSwgMC4wMTEyNSwgMC4wMTc1LCAwLjAyMTI1LCAwLjAzIiwgXAotICAgICAgICAgICItMC4wMTEyNSwgLTAuMDA2MjUsIDAsIDAuMDA2MjUsIDAuMDEyNSwgMC4wMTYyNSwgMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjAxNzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLCAwLjAwNjI1LCAwLjAxLCAwLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAsIDAuMDAzNzUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAyNSwgLTAuMDEyNSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAuMDAzNzUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjAzMzc1LCAtMC4wMjg3NSwgLTAuMDIyNSwgLTAuMDE2MjUsIC0wLjAxLCAtMC4wMDYyNSwgLTAuMDAzNzUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDE4NzUsIC0wLjAwODc1LCAtMC4wMDYyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiU0UiOwotICAgICAgc2RmX2NvbmQgOiAiU0UgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDUsIDAuMDQ1LCAwLjAzODc1LCAwLjAzMjUsIDAuMDMyNSwgMC4wMjg3NSwgMC4wMiIsIFwKLSAgICAgICAgICAiMC4wNTUsIDAuMDUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzc1LCAwLjAzMzc1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICIwLjA2MTI1LCAwLjA1NjI1LCAwLjA1LCAwLjA1LCAwLjA0Mzc1LCAwLjA0LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIjAuMDczNzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNTYyNSwgMC4wNSwgMC4wNDYyNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4wOCwgMC4wNjg3NSwgMC4wNjI1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDUyNSwgMC4wNSIsIFwKLSAgICAgICAgICAiMC4wOSwgMC4wNzg3NSwgMC4wNzI1LCAwLjA3MjUsIDAuMDY2MjUsIDAuMDYyNSwgMC4wNiIsIFwKLSAgICAgICAgICAiMC4wOTI1LCAwLjA4NzUsIDAuMDgxMjUsIDAuMDc1LCAwLjA3NSwgMC4wNzEyNSwgMC4wNjg3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzNzUsIDAuMDI2MjUsIDAuMDIsIDAuMDEzNzUsIDAuMDA3NSwgLTAuMDAyNSwgLTAuMDA1IiwgXAotICAgICAgICAgICIwLjA0MjUsIDAuMDMxMjUsIDAuMDI1LCAwLjAxODc1LCAwLjAxMjUsIDAuMDAyNSwgMCIsIFwKLSAgICAgICAgICAiMC4wNDg3NSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMTg3NSwgMC4wMDg3NSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiMC4wNTUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMjUsIDAuMDE1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMDYxMjUsIDAuMDUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMjEyNSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4wNjUsIDAuMDYsIDAuMDQ3NSwgMC4wNDEyNSwgMC4wMzUsIDAuMDMxMjUsIDAuMDIyNSIsIFwKLSAgICAgICAgICAiMC4wNzM3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1LCAwLjA0Mzc1LCAwLjAzMzc1LCAwLjAzMTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBTRURGRkhRWDggKgotICogLS0tLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChTRURGRkhRWDgpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMi40NTQxNTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBmZiAoTjMwLFFCSU5UKSB7Ci0gICAgbmV4dF9zdGF0ZSA6ICIoKFNFIFNJKSArICghU0UgKChFIEQpICsgKCFFICghKCFOMzApKSkpKSkiOwotICAgIGNsb2NrZWRfb24gOiAiQ0siOwotICB9Ci0gIHBpbihDSykgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjQxMzE1OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDY0MTMxNTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2NDExNzk7Ci0gICAgY2xvY2sgOiB0cnVlOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNDg1NiwgMC4wMDQ4NDksIDAuMDA0OTE4LCAwLjAwNTAxNiwgMC4wMDUxMzIsIDAuMDA1MzU3LCAwLjAwNTUzOCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwODkxNywgMC4wMDg5MTcsIDAuMDA5MDAzLCAwLjAwOTEzLCAwLjAwOTI3MywgMC4wMDk1NTIsIDAuMDA5ODI0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRCYhRSZTRSYhU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX0VfRVFfMF9BTl9TRV9FUV8xX0FOX1NJX0VRXzAgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wOTE4MjIsIDAuMDk5OTM4LCAwLjEwODk3OSwgMC4xMTU5OTgsIDAuMTIxNjIxLCAwLjEyOTI1OSwgMC4xMzQ5ODYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjA2NTk0MiwgMC4wNzM5ODksIDAuMDgyOTA5LCAwLjA4OTY0OSwgMC4wOTUwNjIsIDAuMTAyMTYyLCAwLjEwNzUwNyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwOTcwMTM5OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDk2NzQ1MjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA5NzAxMzk7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA1MzEyLCAwLjAwNTI3OCwgMC4wMDUyOTEsIDAuMDA1MzQ2LCAwLjAwNTQxNywgMC4wMDU1NzIsIDAuMDA1NzE4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDEwMTk3LCAwLjAxMDE3NiwgMC4wMTAxODgsIDAuMDEwMjM2LCAwLjAxMDI5OCwgMC4wMTA0NDEsIDAuMDEwNTg5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIkUmIVNFIjsKLSAgICAgIHNkZl9jb25kIDogIkVfRVFfMV9BTl9TRV9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjA1LCAtMC4wNDUsIC0wLjAzODc1LCAtMC4wMzg3NSwgLTAuMDM4NzUsIC0wLjAzNSwgLTAuMDMyNSIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wNDM3NSwgLTAuMDQsIC0wLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjA2MTI1LCAtMC4wNTYyNSwgLTAuMDU2MjUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDQ2MjUsIC0wLjA0Mzc1IiwgXAotICAgICAgICAgICItMC4wNzM3NSwgLTAuMDY4NzUsIC0wLjA2MjUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNTg3NSwgLTAuMDU2MjUiLCBcCi0gICAgICAgICAgIi0wLjA4LCAtMC4wNzUsIC0wLjA2ODc1LCAtMC4wNjg3NSwgLTAuMDY4NzUsIC0wLjA2NSwgLTAuMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDgzNzUsIC0wLjA4NSwgLTAuMDc4NzUsIC0wLjA3ODc1LCAtMC4wNzI1LCAtMC4wNzUsIC0wLjA3MjUiLCBcCi0gICAgICAgICAgIi0wLjA5MjUsIC0wLjA4NzUsIC0wLjA4NzUsIC0wLjA4NzUsIC0wLjA4MTI1LCAtMC4wNzc1LCAtMC4wNzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMTg3NSwgLTAuMDEzNzUsIC0wLjAwNzUsIC0wLjAwMTI1LCAwLjAwNSwgMC4wMDg3NSwgMC4wMTEyNSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgLTAuMDA2MjUsIDAuMDAzNzUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMTI1LCAtMC4wMDI1LCAwIiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxODc1LCAtMC4wMDg3NSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMzEyNSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDI1LCAtMC4wMTUsIC0wLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjA0NjI1LCAtMC4wNDEyNSwgLTAuMDM1LCAtMC4wMzUsIC0wLjAyODc1LCAtMC4wMjUsIC0wLjAyMjUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDM3NSwgLTAuMDM3NSwgLTAuMDI3NSwgLTAuMDI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJFJiFTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJFX0VRXzFfQU5fU0VfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODEyNSwgMC4wNywgMC4wNjM3NSwgMC4wNTc1LCAwLjA1NzUsIDAuMDUzNzUsIDAuMDUxMjUiLCBcCi0gICAgICAgICAgIjAuMDg2MjUsIDAuMDc1LCAwLjA2ODc1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDU4NzUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIjAuMDkyNSwgMC4wODc1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNzEyNSwgMC4wNjI1IiwgXAotICAgICAgICAgICIwLjA5ODc1LCAwLjA5Mzc1LCAwLjA4NzUsIDAuMDgxMjUsIDAuMDgxMjUsIDAuMDc3NSwgMC4wNzUiLCBcCi0gICAgICAgICAgIjAuMTExMjUsIDAuMSwgMC4wOTM3NSwgMC4wODc1LCAwLjA4NzUsIDAuMDgzNzUsIDAuMDgxMjUiLCBcCi0gICAgICAgICAgIjAuMTIxMjUsIDAuMTEsIDAuMTAzNzUsIDAuMDk3NSwgMC4wOTc1LCAwLjA5Mzc1LCAwLjA5MTI1IiwgXAotICAgICAgICAgICIwLjEyMzc1LCAwLjExODc1LCAwLjExMjUsIDAuMTA2MjUsIDAuMTA2MjUsIDAuMTAyNSwgMC4xIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDYyNSwgMC4wNTEyNSwgMC4wNDUsIDAuMDM4NzUsIDAuMDMyNSwgMC4wMjI1LCAwLjAyIiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDU2MjUsIDAuMDUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMjc1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiMC4wNzM3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1LCAwLjA0Mzc1LCAwLjA0LCAwLjAzMTI1IiwgXAotICAgICAgICAgICIwLjA4LCAwLjA3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1LCAwLjA0NjI1LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIjAuMDg2MjUsIDAuMDc1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDUyNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4wOTYyNSwgMC4wODUsIDAuMDc4NzUsIDAuMDcyNSwgMC4wNjYyNSwgMC4wNTYyNSwgMC4wNTM3NSIsIFwKLSAgICAgICAgICAiMC4wOTg3NSwgMC4wOTM3NSwgMC4wODEyNSwgMC4wNzUsIDAuMDc1LCAwLjA2NSwgMC4wNjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihFKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE2OTkwNTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE2OTgzNTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE2OTkwNTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDkzNjksIDAuMDA5MzcyLCAwLjAwOTQ0OSwgMC4wMDk1NTgsIDAuMDA5NjgyLCAwLjAwOTg5MSwgMC4wMTAxMjciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMTExODksIDAuMDExMjEsIDAuMDExMzIyLCAwLjAxMTUwNywgMC4wMTE3MzksIDAuMDEyMTU0LCAwLjAxMjUyOCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhU0UiOwotICAgICAgc2RmX2NvbmQgOiAiU0UgPT0gMSdiMCI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDUsIC0wLjA0NSwgLTAuMDM4NzUsIC0wLjAzMjUsIC0wLjAyNjI1LCAtMC4wMjI1LCAtMC4wMTM3NSIsIFwKLSAgICAgICAgICAiLTAuMDYxMjUsIC0wLjA1NjI1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDM3NSwgLTAuMDI3NSwgLTAuMDI1IiwgXAotICAgICAgICAgICItMC4wNjc1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wMzM3NSwgLTAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjA3Mzc1LCAtMC4wNjg3NSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDQsIC0wLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjA4LCAtMC4wNjg3NSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNDYyNSwgLTAuMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDgzNzUsIC0wLjA3MjUsIC0wLjA2NjI1LCAtMC4wNiwgLTAuMDUzNzUsIC0wLjA1LCAtMC4wNDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDg2MjUsIC0wLjA4MTI1LCAtMC4wNjg3NSwgLTAuMDYyNSwgLTAuMDYyNSwgLTAuMDUyNSwgLTAuMDUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMTI1LCAtMC4wMDc1LCAtMC4wMDEyNSwgMC4wMDUsIDAuMDA1LCAwLjAxNSwgMC4wMTc1IiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIC0wLjAwNjI1LCAwLCAwLjAwMzc1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDEyNSwgLTAuMDAyNSwgMCIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTg3NSwgLTAuMDE1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAzMTI1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMjUsIC0wLjAyMTI1LCAtMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDQ2MjUsIC0wLjA0MTI1LCAtMC4wMzUsIC0wLjAzNSwgLTAuMDM1LCAtMC4wMzEyNSwgLTAuMDI4NzUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wNDM3NSwgLTAuMDQzNzUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzM3NSwgLTAuMDMxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJTRSA9PSAxJ2IwIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzUsIDAuMDcsIDAuMDU3NSwgMC4wNTc1LCAwLjA1MTI1LCAwLjA0NzUsIDAuMDQ1IiwgXAotICAgICAgICAgICIwLjA4LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA2MjUsIDAuMDU4NzUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIjAuMDkyNSwgMC4wODEyNSwgMC4wNzUsIDAuMDc1LCAwLjA2ODc1LCAwLjA2NSwgMC4wNjI1IiwgXAotICAgICAgICAgICIwLjA5ODc1LCAwLjA5Mzc1LCAwLjA4NzUsIDAuMDgxMjUsIDAuMDgxMjUsIDAuMDc3NSwgMC4wNzUiLCBcCi0gICAgICAgICAgIjAuMTExMjUsIDAuMSwgMC4wOTM3NSwgMC4wOTM3NSwgMC4wODc1LCAwLjA4Mzc1LCAwLjA4MTI1IiwgXAotICAgICAgICAgICIwLjEyMTI1LCAwLjExNjI1LCAwLjExLCAwLjEwMzc1LCAwLjA5NzUsIDAuMDkzNzUsIDAuMDkxMjUiLCBcCi0gICAgICAgICAgIjAuMTMsIDAuMTI1LCAwLjExODc1LCAwLjExMjUsIDAuMTEyNSwgMC4xMDg3NSwgMC4xMDYyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2ODc1LCAwLjA2Mzc1LCAwLjA1NzUsIDAuMDU3NSwgMC4wNTEyNSwgMC4wNTM3NSwgMC4wNTEyNSIsIFwKLSAgICAgICAgICAiMC4wNzM3NSwgMC4wNjg3NSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA2MjUsIDAuMDU4NzUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIjAuMDgsIDAuMDc1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjg3NSwgMC4wNjUsIDAuMDYyNSIsIFwKLSAgICAgICAgICAiMC4wODYyNSwgMC4wODEyNSwgMC4wNzUsIDAuMDc1LCAwLjA3NSwgMC4wNzEyNSwgMC4wNjg3NSIsIFwKLSAgICAgICAgICAiMC4wODYyNSwgMC4wODc1LCAwLjA4MTI1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNzEyNSwgMC4wNjg3NSIsIFwKLSAgICAgICAgICAiMC4wOTYyNSwgMC4wOTEyNSwgMC4wODUsIDAuMDg1LCAwLjA3ODc1LCAwLjA4MTI1LCAwLjA3ODc1IiwgXAotICAgICAgICAgICIwLjA5ODc1LCAwLjA5Mzc1LCAwLjA4NzUsIDAuMDg3NSwgMC4wODc1LCAwLjA4Mzc1LCAwLjA4MTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihRKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDIuNjY1MjU7Ci0gICAgZnVuY3Rpb24gOiAiTjMwIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBub25fdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJpc2luZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4MzUzMywgMC4xMTMxODEsIDAuMTQwNTA2LCAwLjE1OTk3NiwgMC4xOTExMTIsIDAuMjE4MzY1LCAwLjI1NzI3MSIsIFwKLSAgICAgICAgICAiMC4wOTE2NjMsIDAuMTIxMzA0LCAwLjE0ODYyMSwgMC4xNjgwOTcsIDAuMTk5MjM0LCAwLjIyNjQ4NCwgMC4yNjU0MDciLCBcCi0gICAgICAgICAgIjAuMTAwNzA4LCAwLjEzMDM1NSwgMC4xNTc2NzQsIDAuMTc3MTQ3LCAwLjIwODI4NSwgMC4yMzU1MzUsIDAuMjc0NDYiLCBcCi0gICAgICAgICAgIjAuMTA3NTM4LCAwLjEzNzE4NiwgMC4xNjQ1MDYsIDAuMTgzOTc4LCAwLjIxNTExNywgMC4yNDIzNjcsIDAuMjgxMjk0IiwgXAotICAgICAgICAgICIwLjExMzE3NCwgMC4xNDI4MTIsIDAuMTcwMTI1LCAwLjE4OTU5OSwgMC4yMjA3NCwgMC4yNDc5ODcsIDAuMjg2OTAxIiwgXAotICAgICAgICAgICIwLjEyMDUxMSwgMC4xNTAxNTQsIDAuMTc3NDgxLCAwLjE5Njk1NSwgMC4yMjgwODQsIDAuMjU1MzMxLCAwLjI5NDI1MyIsIFwKLSAgICAgICAgICAiMC4xMjY0MTQsIDAuMTU2MDY5LCAwLjE4MzM4NywgMC4yMDI4NTYsIDAuMjM0MDA4LCAwLjI2MTI0MiwgMC4zMDAxNTMiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTgzOTUsIDAuMDcyMzYsIDAuMTI4NTcxLCAwLjE2OTI5NCwgMC4yMzQ2NzUsIDAuMjkyMzQsIDAuMzc0NTIiLCBcCi0gICAgICAgICAgIjAuMDE4NDAzLCAwLjA3MjM2NCwgMC4xMjg2MTMsIDAuMTY5Mjg5LCAwLjIzNDY3MywgMC4yOTIzMzEsIDAuMzc0NTExIiwgXAotICAgICAgICAgICIwLjAxODM5OCwgMC4wNzIzNjEsIDAuMTI4NjE0LCAwLjE2OTI4OCwgMC4yMzQ4NTEsIDAuMjkyMzIzLCAwLjM3NDU0NSIsIFwKLSAgICAgICAgICAiMC4wMTg0MDIsIDAuMDcyMzYyLCAwLjEyODYxNSwgMC4xNjkyODgsIDAuMjM0ODY0LCAwLjI5MjMyMywgMC4zNzQ1NTkiLCBcCi0gICAgICAgICAgIjAuMDE4NDI1LCAwLjA3MjM2OCwgMC4xMjg2NjQsIDAuMTY5Mjg3LCAwLjIzNDY2MSwgMC4yOTIzMjYsIDAuMzc0NDk5IiwgXAotICAgICAgICAgICIwLjAxODQwNSwgMC4wNzIzNzIsIDAuMTI4NjE4LCAwLjE2OTI4OCwgMC4yMzQ3NTQsIDAuMjkyMjk1LCAwLjM3NDUxNyIsIFwKLSAgICAgICAgICAiMC4wMTg0MDcsIDAuMDcyNDU4LCAwLjEyODYxNiwgMC4xNjk0MDgsIDAuMjM0ODU5LCAwLjI5MjMzOSwgMC4zNzQ0NzkiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTE4MzMsIDAuMTIyMTkzLCAwLjE1MDQ3MiwgMC4xNzA2MTksIDAuMjAyODQ2LCAwLjIzMTAyMiwgMC4yNzEzMDQiLCBcCi0gICAgICAgICAgIjAuMDk5OTQ0LCAwLjEzMDMwOSwgMC4xNTg1ODksIDAuMTc4NzM2LCAwLjIxMDk2MywgMC4yMzkxNTIsIDAuMjc5MzkzIiwgXAotICAgICAgICAgICIwLjEwODk4NSwgMC4xMzkzNSwgMC4xNjc2MywgMC4xODc3NzksIDAuMjIwMDA1LCAwLjI0ODE3OSwgMC4yODg0MzkiLCBcCi0gICAgICAgICAgIjAuMTE2MDA0LCAwLjE0NjM2OSwgMC4xNzQ2NDcsIDAuMTk0Nzk1LCAwLjIyNzAyMiwgMC4yNTUxOTksIDAuMjk1NDU2IiwgXAotICAgICAgICAgICIwLjEyMTYyNywgMC4xNTE5OTIsIDAuMTgwMjY4LCAwLjIwMDQxOCwgMC4yMzI2NDMsIDAuMjYwODIsIDAuMzAxMDgyIiwgXAotICAgICAgICAgICIwLjEyOTI2NywgMC4xNTk2NSwgMC4xODc5MjUsIDAuMjA4MDc1LCAwLjI0MDI5LCAwLjI2ODQ3MywgMC4zMDg3MzMiLCBcCi0gICAgICAgICAgIjAuMTM0OTk2LCAwLjE2NTM1LCAwLjE5MzY0LCAwLjIxMzc4NCwgMC4yNDYwMTEsIDAuMjc0MTg5LCAwLjMxNDQzOSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxNzgxOSwgMC4wNzMzMTYsIDAuMTMwODk5LCAwLjE3MjM3OCwgMC4yMzk0NjMsIDAuMjk3OTg3LCAwLjM4MTcxOSIsIFwKLSAgICAgICAgICAiMC4wMTc4MDYsIDAuMDczMzE1LCAwLjEzMDg5NywgMC4xNzIzOCwgMC4yMzk0NywgMC4yOTgwNDQsIDAuMzgxNzM0IiwgXAotICAgICAgICAgICIwLjAxNzgwNiwgMC4wNzMzMDQsIDAuMTMwODQ0LCAwLjE3MjM4OCwgMC4yMzk0NzgsIDAuMjk3OTkzLCAwLjM4MTc2NiIsIFwKLSAgICAgICAgICAiMC4wMTc4MjgsIDAuMDczMzEyLCAwLjEzMDg5OCwgMC4xNzIzNzksIDAuMjM5NDc0LCAwLjI5Nzk5MywgMC4zODE3MjMiLCBcCi0gICAgICAgICAgIjAuMDE3ODExLCAwLjA3MzMwNywgMC4xMzA4OTIsIDAuMTcyMzc4LCAwLjIzOTQ2MiwgMC4yOTc5OTEsIDAuMzgxODAzIiwgXAotICAgICAgICAgICIwLjAxNzgwOSwgMC4wNzMzMTMsIDAuMTMwODg0LCAwLjE3MjM1OCwgMC4yMzk0NTUsIDAuMjk3OTkxLCAwLjM4MTgyMyIsIFwKLSAgICAgICAgICAiMC4wMTc4MDcsIDAuMDczMjY3LCAwLjEzMDkwNiwgMC4xNzI1MDMsIDAuMjM5NDA3LCAwLjI5OCwgMC4zODE2NzciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjY5NjEsIDAuMDI3MjA1LCAwLjAyNzI4NywgMC4wMjczMTYsIDAuMDI3MzQyLCAwLjAyNzM1NSwgMC4wMjczNjgiLCBcCi0gICAgICAgICAgIjAuMDI2OTc2LCAwLjAyNzIwNiwgMC4wMjcyODQsIDAuMDI3MzEzLCAwLjAyNzMzOCwgMC4wMjczNTIsIDAuMDI3MzY1IiwgXAotICAgICAgICAgICIwLjAyNzAxLCAwLjAyNzI1NCwgMC4wMjczMzUsIDAuMDI3MzYyLCAwLjAyNzM5LCAwLjAyNzQwNCwgMC4wMjc0MTYiLCBcCi0gICAgICAgICAgIjAuMDI3MTE5LCAwLjAyNzM1OSwgMC4wMjc0NDEsIDAuMDI3NDcsIDAuMDI3NDk0LCAwLjAyNzUwOSwgMC4wMjc1MjYiLCBcCi0gICAgICAgICAgIjAuMDI3MzIsIDAuMDI3NTMyLCAwLjAyNzYwOSwgMC4wMjc2MzUsIDAuMDI3NjYsIDAuMDI3NjczLCAwLjAyNzY4NSIsIFwKLSAgICAgICAgICAiMC4wMjc0OTYsIDAuMDI3NzMzLCAwLjAyNzgxMiwgMC4wMjc4MzQsIDAuMDI3ODYsIDAuMDI3ODcxLCAwLjAyNzg4NiIsIFwKLSAgICAgICAgICAiMC4wMjc2ODMsIDAuMDI3OTQzLCAwLjAyNzk4OCwgMC4wMjgwNTksIDAuMDI4MDQxLCAwLjAyODA4NSwgMC4wMjgwNzEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyODcxNywgMC4wMjkxMTYsIDAuMDI5MjQ1LCAwLjAyOTI5MiwgMC4wMjkzMzMsIDAuMDI5MzU1LCAwLjAyOTM3NiIsIFwKLSAgICAgICAgICAiMC4wMjg3MDksIDAuMDI5MTEzLCAwLjAyOTI0MywgMC4wMjkyODksIDAuMDI5MzMyLCAwLjAyOTM1NCwgMC4wMjkzNzYiLCBcCi0gICAgICAgICAgIjAuMDI4Nzk4LCAwLjAyOTIwNCwgMC4wMjkzMzUsIDAuMDI5MzgsIDAuMDI5NDI0LCAwLjAyOTQ0NiwgMC4wMjk0NjciLCBcCi0gICAgICAgICAgIjAuMDI4OTIzLCAwLjAyOTMzLCAwLjAyOTQ2LCAwLjAyOTUwNiwgMC4wMjk1NDgsIDAuMDI5NTcxLCAwLjAyOTU5MiIsIFwKLSAgICAgICAgICAiMC4wMjkwNzIsIDAuMDI5NDc0LCAwLjAyOTYwNiwgMC4wMjk2NTIsIDAuMDI5Njk1LCAwLjAyOTcxNiwgMC4wMjk3MzgiLCBcCi0gICAgICAgICAgIjAuMDI5MzUsIDAuMDI5Nzc1LCAwLjAyOTkwMSwgMC4wMjk5MzEsIDAuMDI5OTU5LCAwLjAzMDAwOSwgMC4wMzAwMjkiLCBcCi0gICAgICAgICAgIjAuMDI5NTM2LCAwLjAyOTk1OSwgMC4wMzAwNTUsIDAuMDMwMTMyLCAwLjAzMDE3NSwgMC4wMzAxOTEsIDAuMDMwMjEyIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTRSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNTM0Mjk7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNTM0MTg7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNTM0Mjk7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA2OTY5LCAwLjAwNjk4NSwgMC4wMDcwNzgsIDAuMDA3MTg0LCAwLjAwNzMwNCwgMC4wMDc1NzYsIDAuMDA3NzczIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA4NjM1LCAwLjAwODYxOCwgMC4wMDg3NDEsIDAuMDA4OTM0LCAwLjAwOTE4NCwgMC4wMDk1NTcsIDAuMDA5OTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEJiFFJiFTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fRV9FUV8wX0FOX1NJX0VRXzAgPT0gMSdiMSI7Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDMxMjUsIC0wLjAyNjI1LCAtMC4wMjYyNSwgLTAuMDIsIC0wLjAyLCAtMC4wMTYyNSwgLTAuMDEzNzUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMzEyNSwgLTAuMDMxMjUsIC0wLjAyNzUsIC0wLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjA0Mzc1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDM3NSwgLTAuMDMzNzUsIC0wLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjA0Mzc1LCAtMC4wNCwgLTAuMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDYxMjUsIC0wLjA1NjI1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjA1LCAtMC4wNDYyNSwgLTAuMDQzNzUiLCBcCi0gICAgICAgICAgIi0wLjA2NSwgLTAuMDYsIC0wLjA2LCAtMC4wNiwgLTAuMDUzNzUsIC0wLjA1LCAtMC4wNDc1IiwgXAotICAgICAgICAgICItMC4wNzM3NSwgLTAuMDY4NzUsIC0wLjA2MjUsIC0wLjA2MjUsIC0wLjA2MjUsIC0wLjA1ODc1LCAtMC4wNTYyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRCYhRSZTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fRV9FUV8wX0FOX1NJX0VRXzEgPT0gMSdiMSI7Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMCwgMC4wMDUsIDAuMDExMjUsIDAuMDE3NSwgMC4wMjM3NSwgMC4wMjc1LCAwLjAzIiwgXAotICAgICAgICAgICItMC4wMDUsIDAsIDAuMDA2MjUsIDAuMDEyNSwgMC4wMTg3NSwgMC4wMjI1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDE3NSwgLTAuMDA2MjUsIDAsIDAsIDAuMDA2MjUsIDAuMDEsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgLTAuMDA2MjUsIDAsIDAuMDAzNzUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMTI1LCAtMC4wMDYyNSwgLTAuMDAyNSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDMzNzUsIC0wLjAyODc1LCAtMC4wMjI1LCAtMC4wMTYyNSwgLTAuMDE2MjUsIC0wLjAwNjI1LCAtMC4wMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxNSwgLTAuMDEyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRCZFJlNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9FX0VRXzFfQU5fU0lfRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMjUsIC0wLjAxMzc1LCAtMC4wMTM3NSwgLTAuMDA3NSwgLTAuMDA3NSwgLTAuMDAzNzUsIC0wLjAwMTI1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwODc1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAzMTI1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMjUsIC0wLjAyMTI1LCAtMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDI3NSwgLTAuMDI1IiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzMzc1LCAtMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDU4NzUsIC0wLjA1Mzc1LCAtMC4wNTM3NSwgLTAuMDQ3NSwgLTAuMDQ3NSwgLTAuMDQzNzUsIC0wLjA0MTI1IiwgXAotICAgICAgICAgICItMC4wNjc1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDU2MjUsIC0wLjA1NjI1LCAtMC4wNTI1LCAtMC4wNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJEJkUmIVNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMV9BTl9FX0VRXzFfQU5fU0lfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMTI1LCAtMC4wMDEyNSwgMC4wMDUsIDAuMDExMjUsIDAuMDExMjUsIDAuMDIxMjUsIDAuMDIzNzUiLCBcCi0gICAgICAgICAgIi0wLjAxNzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLCAwLjAwNjI1LCAwLjAxLCAwLjAxODc1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLCAwLjAwMzc1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIC0wLjAwMjUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDI1LCAwIiwgXAotICAgICAgICAgICItMC4wNCwgLTAuMDM1LCAtMC4wMjg3NSwgLTAuMDIyNSwgLTAuMDE2MjUsIC0wLjAxMjUsIC0wLjAwMzc1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxNSwgLTAuMDEyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUQmIUUmIVNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9FX0VRXzBfQU5fU0lfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDM3NSwgMC4wMzI1LCAwLjAyNjI1LCAwLjAyLCAwLjAxMzc1LCAwLjAwMzc1LCAwLjAwMTI1IiwgXAotICAgICAgICAgICIwLjA0ODc1LCAwLjA0Mzc1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMTg3NSwgMC4wMTUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMDU1LCAwLjA1LCAwLjA0Mzc1LCAwLjAzMTI1LCAwLjAzMTI1LCAwLjAyMTI1LCAwLjAxODc1IiwgXAotICAgICAgICAgICIwLjA2MTI1LCAwLjA1NjI1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDI3NSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4wNjc1LCAwLjA1NjI1LCAwLjA1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDMzNzUsIDAuMDI1IiwgXAotICAgICAgICAgICIwLjA3MTI1LCAwLjA2NjI1LCAwLjA1Mzc1LCAwLjA0NzUsIDAuMDQxMjUsIDAuMDM3NSwgMC4wMjg3NSIsIFwKLSAgICAgICAgICAiMC4wOCwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1LCAwLjA0LCAwLjAzNzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEJiFFJlNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9FX0VRXzBfQU5fU0lfRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDM3NSwgMC4wMzg3NSwgMC4wMzI1LCAwLjAyNjI1LCAwLjAyNjI1LCAwLjAyMjUsIDAuMDIiLCBcCi0gICAgICAgICAgIjAuMDU1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMjc1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiMC4wNjEyNSwgMC4wNTYyNSwgMC4wNSwgMC4wNDM3NSwgMC4wNDM3NSwgMC4wNCwgMC4wMzc1IiwgXAotICAgICAgICAgICIwLjA3Mzc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDU2MjUsIDAuMDUsIDAuMDQ2MjUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMDgsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1MjUsIDAuMDUiLCBcCi0gICAgICAgICAgIjAuMDksIDAuMDc4NzUsIDAuMDcyNSwgMC4wNzI1LCAwLjA2NjI1LCAwLjA2MjUsIDAuMDYiLCBcCi0gICAgICAgICAgIjAuMDkyNSwgMC4wODc1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNzUsIDAuMDcxMjUsIDAuMDY4NzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEJkUmU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX0VfRVFfMV9BTl9TSV9FUV8xID09IDEnYjEiOwotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzNzUsIDAuMDI2MjUsIDAuMDIsIDAuMDEzNzUsIDAuMDA3NSwgMC4wMDM3NSwgLTAuMDA1IiwgXAotICAgICAgICAgICIwLjA0MjUsIDAuMDM3NSwgMC4wMjUsIDAuMDE4NzUsIDAuMDE4NzUsIDAuMDA4NzUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMDU1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDI1LCAwLjAxNSwgMC4wMTI1IiwgXAotICAgICAgICAgICIwLjA2MTI1LCAwLjA1NjI1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDI3NSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4wNjc1LCAwLjA2MjUsIDAuMDUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzM3NSwgMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMDc3NSwgMC4wNzI1LCAwLjA2LCAwLjA1Mzc1LCAwLjA0NzUsIDAuMDQzNzUsIDAuMDM1IiwgXAotICAgICAgICAgICIwLjA4NjI1LCAwLjA4MTI1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDUyNSwgMC4wNDM3NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiRCZFJiFTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzFfQU5fRV9FUV8xX0FOX1NJX0VRXzAgPT0gMSdiMSI7Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDYyNSwgMC4wNTEyNSwgMC4wNDUsIDAuMDQ1LCAwLjAzODc1LCAwLjAzNSwgMC4wMzI1IiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNSwgMC4wNSwgMC4wNDYyNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4wOCwgMC4wNjg3NSwgMC4wNjI1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDUyNSwgMC4wNSIsIFwKLSAgICAgICAgICAiMC4wODYyNSwgMC4wNzUsIDAuMDY4NzUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNTg3NSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiMC4wOTI1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNzUsIDAuMDY4NzUsIDAuMDY1LCAwLjA2MjUiLCBcCi0gICAgICAgICAgIjAuMDk2MjUsIDAuMDkxMjUsIDAuMDg1LCAwLjA3ODc1LCAwLjA3MjUsIDAuMDY4NzUsIDAuMDY2MjUiLCBcCi0gICAgICAgICAgIjAuMDk4NzUsIDAuMDkzNzUsIDAuMDg3NSwgMC4wODEyNSwgMC4wODEyNSwgMC4wNzc1LCAwLjA3NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oU0kpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDkxMDYyMjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA5MDg4NjU7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwOTEwNjIyOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNDA5LCAwLjAwNDA0NSwgMC4wMDQwNzQsIDAuMDA0MTE4LCAwLjAwNDIxMSwgMC4wMDQzNjEsIDAuMDA0NTIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDc2ODUsIDAuMDA3NjU3LCAwLjAwNzY4MywgMC4wMDc3MywgMC4wMDc4MDQsIDAuMDA3OTQ1LCAwLjAwODExNyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJTRSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMjUsIC0wLjAyLCAtMC4wMiwgLTAuMDEzNzUsIC0wLjAxMzc1LCAtMC4wMSwgLTAuMDA3NSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDE4NzUsIC0wLjAxNSwgLTAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAyMTI1LCAtMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDI3NSwgLTAuMDI1IiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzMzc1LCAtMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDU4NzUsIC0wLjA1Mzc1LCAtMC4wNTM3NSwgLTAuMDQ3NSwgLTAuMDQ3NSwgLTAuMDQzNzUsIC0wLjA0MTI1IiwgXAotICAgICAgICAgICItMC4wNjc1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDU2MjUsIC0wLjA1NjI1LCAtMC4wNTI1LCAtMC4wNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAsIDAuMDA1LCAwLjAxMTI1LCAwLjAxNzUsIDAuMDIzNzUsIDAuMDI3NSwgMC4wMyIsIFwKLSAgICAgICAgICAiLTAuMDExMjUsIDAsIDAuMDA2MjUsIDAuMDEyNSwgMC4wMTg3NSwgMC4wMjI1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDE3NSwgLTAuMDA2MjUsIDAsIDAuMDA2MjUsIDAuMDEyNSwgMC4wMTYyNSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDE3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAsIDAuMDA2MjUsIDAuMDEsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxODc1LCAtMC4wMDYyNSwgLTAuMDA2MjUsIDAsIDAuMDAzNzUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDI3NSwgLTAuMDIyNSwgLTAuMDE2MjUsIC0wLjAxLCAtMC4wMDM3NSwgMCwgMC4wMDI1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIC0wLjAwMjUsIDAiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlNFIjsKLSAgICAgIHNkZl9jb25kIDogIlNFID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1LCAwLjA0NSwgMC4wMzg3NSwgMC4wMzI1LCAwLjAyNjI1LCAwLjAyMjUsIDAuMDIiLCBcCi0gICAgICAgICAgIjAuMDU1LCAwLjA1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDM3NSwgMC4wMzM3NSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4wNjEyNSwgMC4wNTYyNSwgMC4wNSwgMC4wNDM3NSwgMC4wNDM3NSwgMC4wNCwgMC4wMzc1IiwgXAotICAgICAgICAgICIwLjA3Mzc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDU2MjUsIDAuMDUsIDAuMDQ2MjUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMDgsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1MjUsIDAuMDUiLCBcCi0gICAgICAgICAgIjAuMDgzNzUsIDAuMDc4NzUsIDAuMDcyNSwgMC4wNjYyNSwgMC4wNjYyNSwgMC4wNjI1LCAwLjA2IiwgXAotICAgICAgICAgICIwLjA5MjUsIDAuMDg3NSwgMC4wODEyNSwgMC4wNzUsIDAuMDc1LCAwLjA3MTI1LCAwLjA2ODc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDMxMjUsIDAuMDI2MjUsIDAuMDEzNzUsIDAuMDA3NSwgMC4wMDc1LCAtMC4wMDI1LCAtMC4wMDUiLCBcCi0gICAgICAgICAgIjAuMDM2MjUsIDAuMDMxMjUsIDAuMDI1LCAwLjAxODc1LCAwLjAxMjUsIDAuMDAyNSwgMCIsIFwKLSAgICAgICAgICAiMC4wNDg3NSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMTg3NSwgMC4wMDg3NSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiMC4wNTUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMjUsIDAuMDE1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMDU1LCAwLjA1LCAwLjA0Mzc1LCAwLjAzMTI1LCAwLjAzMTI1LCAwLjAyMTI1LCAwLjAxODc1IiwgXAotICAgICAgICAgICIwLjA2NSwgMC4wNTM3NSwgMC4wNDc1LCAwLjA0MTI1LCAwLjAzNSwgMC4wMzEyNSwgMC4wMjI1IiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNDM3NSwgMC4wNDM3NSwgMC4wMzM3NSwgMC4wMzEyNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogU0VERkZUUlgyICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoU0VERkZUUlgyKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDEuNzMzMDM7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgZmYgKE4zMCxRQklOVCkgewotICAgIG5leHRfc3RhdGUgOiAiKChTRSBTSSkgKyAoIVNFICgoKCEoKCFEKSBFKSkgKCEoKCFFKSAoIU4zMCkpKSkgUk4pKSkiOwotICAgIGNsb2NrZWRfb24gOiAiQ0siOwotICB9Ci0gIHBpbihDSykgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjI3NTcyOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYyNzQwOTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2Mjc1NzI7Ci0gICAgY2xvY2sgOiB0cnVlOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzUwNSwgMC4wMDM0OTYsIDAuMDAzNTg0LCAwLjAwMzY2NywgMC4wMDM3OTIsIDAuMDA0MDMxLCAwLjAwNDIwOSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwODA5LCAwLjAwODA4MywgMC4wMDgxNzMsIDAuMDA4Mjk4LCAwLjAwODQ2LCAwLjAwODYyNiwgMC4wMDg4MzIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFEJiFFJiFSTiYhU0UmIVNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9FX0VRXzBfQU5fUk5fRVFfMF9BTl9TRV9FUV8wX0FOX1NJX0VRXzAgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4xMTE5ODUsIDAuMTIwMjA1LCAwLjEyOTM3NywgMC4xMzY3MzgsIDAuMTQyNjA5LCAwLjE1MDM5LCAwLjE1NjAxNCIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDYzNzE4LCAwLjA3MTgwNiwgMC4wODEwMjgsIDAuMDg4MDE2LCAwLjA5MzcyOSwgMC4xMDExOTEsIDAuMTA2NTM4Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihEKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2NzIwNTI7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjcyMDUyOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDY3MjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDg1NzcsIDAuMDA4NTk1LCAwLjAwODY3MiwgMC4wMDg3NzcsIDAuMDA4ODk4LCAwLjAwOTEyNywgMC4wMDkzMzkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDc3NzUsIDAuMDA3NzkxLCAwLjAwNzg3NCwgMC4wMDc5ODgsIDAuMDA4MTI1LCAwLjAwODM1MywgMC4wMDg1NDMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiRSZSTiYhU0UiOwotICAgICAgc2RmX2NvbmQgOiAiRV9FUV8xX0FOX1JOX0VRXzFfQU5fU0VfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wODc1LCAtMC4wODI1LCAtMC4wNzYyNSwgLTAuMDcsIC0wLjA3LCAtMC4wNjYyNSwgLTAuMDYzNzUiLCBcCi0gICAgICAgICAgIi0wLjA5MjUsIC0wLjA4NzUsIC0wLjA4MTI1LCAtMC4wODEyNSwgLTAuMDc1LCAtMC4wNzEyNSwgLTAuMDY4NzUiLCBcCi0gICAgICAgICAgIi0wLjA5ODc1LCAtMC4wOTM3NSwgLTAuMDg3NSwgLTAuMDg3NSwgLTAuMDgxMjUsIC0wLjA3NzUsIC0wLjA3NSIsIFwKLSAgICAgICAgICAiLTAuMTA1LCAtMC4xLCAtMC4wOTM3NSwgLTAuMDg3NSwgLTAuMDg3NSwgLTAuMDgzNzUsIC0wLjA4MTI1IiwgXAotICAgICAgICAgICItMC4xMDUsIC0wLjEsIC0wLjA5Mzc1LCAtMC4wOTM3NSwgLTAuMDg3NSwgLTAuMDgzNzUsIC0wLjA4MTI1IiwgXAotICAgICAgICAgICItMC4xMDg3NSwgLTAuMTAzNzUsIC0wLjEwMzc1LCAtMC4wOTc1LCAtMC4wOTc1LCAtMC4wOTM3NSwgLTAuMDkxMjUiLCBcCi0gICAgICAgICAgIi0wLjExNzUsIC0wLjEwNjI1LCAtMC4xMDYyNSwgLTAuMSwgLTAuMSwgLTAuMDk2MjUsIC0wLjA5Mzc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDU2MjUsIC0wLjA1MTI1LCAtMC4wMzg3NSwgLTAuMDM4NzUsIC0wLjAzMjUsIC0wLjAyMjUsIC0wLjAyIiwgXAotICAgICAgICAgICItMC4wNjEyNSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDMzNzUsIC0wLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDY3NSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDQsIC0wLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wNzM3NSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNSwgLTAuMDQsIC0wLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjA3Mzc1LCAtMC4wNjg3NSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNDYyNSwgLTAuMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDc3NSwgLTAuMDcyNSwgLTAuMDY2MjUsIC0wLjA2LCAtMC4wNTM3NSwgLTAuMDUsIC0wLjA0NzUiLCBcCi0gICAgICAgICAgIi0wLjA4NjI1LCAtMC4wNzUsIC0wLjA2ODc1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDUyNSwgLTAuMDUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIkUmUk4mIVNFIjsKLSAgICAgIHNkZl9jb25kIDogIkVfRVFfMV9BTl9STl9FUV8xX0FOX1NFX0VRXzAgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTI1LCAwLjExMzc1LCAwLjEwNzUsIDAuMTAxMjUsIDAuMTAxMjUsIDAuMDk3NSwgMC4wOTUiLCBcCi0gICAgICAgICAgIjAuMTMsIDAuMTE4NzUsIDAuMTEyNSwgMC4xMTI1LCAwLjEwNjI1LCAwLjEwMjUsIDAuMSIsIFwKLSAgICAgICAgICAiMC4xMzYyNSwgMC4xMjUsIDAuMTE4NzUsIDAuMTE4NzUsIDAuMTEyNSwgMC4xMDg3NSwgMC4xMDYyNSIsIFwKLSAgICAgICAgICAiMC4xMzYyNSwgMC4xMzEyNSwgMC4xMjUsIDAuMTE4NzUsIDAuMTE4NzUsIDAuMTE1LCAwLjExMjUiLCBcCi0gICAgICAgICAgIjAuMTQyNSwgMC4xMzEyNSwgMC4xMjUsIDAuMTI1LCAwLjExODc1LCAwLjExNSwgMC4xMTI1IiwgXAotICAgICAgICAgICIwLjE0NjI1LCAwLjE0MTI1LCAwLjEzNSwgMC4xMjg3NSwgMC4xMjI1LCAwLjExODc1LCAwLjExNjI1IiwgXAotICAgICAgICAgICIwLjE0ODc1LCAwLjE0Mzc1LCAwLjEzNzUsIDAuMTMxMjUsIDAuMTMxMjUsIDAuMTIxMjUsIDAuMTE4NzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODc1LCAwLjA3NjI1LCAwLjA3LCAwLjA2Mzc1LCAwLjA1NzUsIDAuMDQ3NSwgMC4wNDUiLCBcCi0gICAgICAgICAgIjAuMDkyNSwgMC4wODc1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1ODc1LCAwLjA1IiwgXAotICAgICAgICAgICIwLjA5ODc1LCAwLjA4NzUsIDAuMDgxMjUsIDAuMDc1LCAwLjA2ODc1LCAwLjA1ODc1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICIwLjEwNSwgMC4wOTM3NSwgMC4wODc1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNjUsIDAuMDYyNSIsIFwKLSAgICAgICAgICAiMC4xMDUsIDAuMSwgMC4wODc1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNzEyNSwgMC4wNjI1IiwgXAotICAgICAgICAgICIwLjEwODc1LCAwLjEwMzc1LCAwLjA5MTI1LCAwLjA4NSwgMC4wNzg3NSwgMC4wNzUsIDAuMDY2MjUiLCBcCi0gICAgICAgICAgIjAuMTExMjUsIDAuMTA2MjUsIDAuMDkzNzUsIDAuMDg3NSwgMC4wODEyNSwgMC4wNzc1LCAwLjA2ODc1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihFKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDEyMzc5MTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDEyMzc5MTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDEyMzY5ODsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDkyMiwgMC4wMDkyMzEsIDAuMDA5MzE0LCAwLjAwOTQ1NSwgMC4wMDk1NzQsIDAuMDA5Nzc5LCAwLjAwOTk4MyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAxMDQsIDAuMDEwNDI2LCAwLjAxMDUxOSwgMC4wMTA2NzksIDAuMDEwODcsIDAuMDExMjMxLCAwLjAxMTU0OCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJSTiYhU0UiOwotICAgICAgc2RmX2NvbmQgOiAiUk5fRVFfMV9BTl9TRV9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjA2MjUsIC0wLjA1NzUsIC0wLjA0NSwgLTAuMDM4NzUsIC0wLjAzODc1LCAtMC4wMjg3NSwgLTAuMDI2MjUiLCBcCi0gICAgICAgICAgIi0wLjA3Mzc1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wMzM3NSwgLTAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjA4LCAtMC4wNjg3NSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNCwgLTAuMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDg2MjUsIC0wLjA3NSwgLTAuMDY4NzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNDYyNSwgLTAuMDQzNzUiLCBcCi0gICAgICAgICAgIi0wLjA5MjUsIC0wLjA4MTI1LCAtMC4wNzUsIC0wLjA2ODc1LCAtMC4wNjI1LCAtMC4wNTI1LCAtMC4wNSIsIFwKLSAgICAgICAgICAiLTAuMDk2MjUsIC0wLjA5MTI1LCAtMC4wNzg3NSwgLTAuMDcyNSwgLTAuMDY2MjUsIC0wLjA2MjUsIC0wLjA1Mzc1IiwgXAotICAgICAgICAgICItMC4xMDUsIC0wLjA5Mzc1LCAtMC4wODc1LCAtMC4wODEyNSwgLTAuMDc1LCAtMC4wNjUsIC0wLjA2MjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wNjI1LCAtMC4wNTc1LCAtMC4wNTEyNSwgLTAuMDQ1LCAtMC4wMzg3NSwgLTAuMDM1LCAtMC4wMjYyNSIsIFwKLSAgICAgICAgICAiLTAuMDczNzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDUsIC0wLjA0LCAtMC4wMzc1IiwgXAotICAgICAgICAgICItMC4wOCwgLTAuMDY4NzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNTYyNSwgLTAuMDQ2MjUsIC0wLjA0Mzc1IiwgXAotICAgICAgICAgICItMC4wOCwgLTAuMDc1LCAtMC4wNjg3NSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA1MjUsIC0wLjA0Mzc1IiwgXAotICAgICAgICAgICItMC4wODYyNSwgLTAuMDc1LCAtMC4wNjg3NSwgLTAuMDYyNSwgLTAuMDYyNSwgLTAuMDUyNSwgLTAuMDUiLCBcCi0gICAgICAgICAgIi0wLjA5LCAtMC4wODUsIC0wLjA3MjUsIC0wLjA3MjUsIC0wLjA2NjI1LCAtMC4wNTYyNSwgLTAuMDUzNzUiLCBcCi0gICAgICAgICAgIi0wLjA5MjUsIC0wLjA4NzUsIC0wLjA4MTI1LCAtMC4wNzUsIC0wLjA2ODc1LCAtMC4wNjUsIC0wLjA1NjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJSTiYhU0UiOwotICAgICAgc2RmX2NvbmQgOiAiUk5fRVFfMV9BTl9TRV9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEzNzUsIDAuMTI2MjUsIDAuMTIsIDAuMTIsIDAuMTEzNzUsIDAuMTEsIDAuMTA3NSIsIFwKLSAgICAgICAgICAiMC4xNDI1LCAwLjEzNzUsIDAuMTMxMjUsIDAuMTI1LCAwLjExODc1LCAwLjExNSwgMC4xMTI1IiwgXAotICAgICAgICAgICIwLjE0ODc1LCAwLjE0Mzc1LCAwLjEzNzUsIDAuMTMxMjUsIDAuMTI1LCAwLjEyMTI1LCAwLjExODc1IiwgXAotICAgICAgICAgICIwLjE1NSwgMC4xNDM3NSwgMC4xMzc1LCAwLjEzNzUsIDAuMTMxMjUsIDAuMTI3NSwgMC4xMjUiLCBcCi0gICAgICAgICAgIjAuMTU1LCAwLjE1LCAwLjE0Mzc1LCAwLjEzNzUsIDAuMTM3NSwgMC4xMzM3NSwgMC4xMjUiLCBcCi0gICAgICAgICAgIjAuMTY1LCAwLjE1Mzc1LCAwLjE0NzUsIDAuMTQxMjUsIDAuMTQxMjUsIDAuMTM3NSwgMC4xMzUiLCBcCi0gICAgICAgICAgIjAuMTY3NSwgMC4xNTYyNSwgMC4xNSwgMC4xNSwgMC4xNDM3NSwgMC4xNCwgMC4xMzc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDkzNzUsIDAuMDg4NzUsIDAuMDgyNSwgMC4wODI1LCAwLjA3NjI1LCAwLjA3MjUsIDAuMDciLCBcCi0gICAgICAgICAgIjAuMDk4NzUsIDAuMDkzNzUsIDAuMDg3NSwgMC4wODc1LCAwLjA4MTI1LCAwLjA3NzUsIDAuMDc1IiwgXAotICAgICAgICAgICIwLjExMTI1LCAwLjEwNjI1LCAwLjEsIDAuMDkzNzUsIDAuMDkzNzUsIDAuMDksIDAuMDg3NSIsIFwKLSAgICAgICAgICAiMC4xMTc1LCAwLjExMjUsIDAuMTA2MjUsIDAuMTA2MjUsIDAuMSwgMC4wOTYyNSwgMC4wOTM3NSIsIFwKLSAgICAgICAgICAiMC4xMywgMC4xMjUsIDAuMTE4NzUsIDAuMTEyNSwgMC4xMTI1LCAwLjEwODc1LCAwLjEwNjI1IiwgXAotICAgICAgICAgICIwLjE0LCAwLjEzNSwgMC4xMjg3NSwgMC4xMjg3NSwgMC4xMjI1LCAwLjExODc1LCAwLjExNjI1IiwgXAotICAgICAgICAgICIwLjE0ODc1LCAwLjE0Mzc1LCAwLjEzNzUsIDAuMTM3NSwgMC4xMzEyNSwgMC4xMjc1LCAwLjEyNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjY3MDI3MTsKLSAgICBmdW5jdGlvbiA6ICJOMzAiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5vbl91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcmlzaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4ODc3NSwgMC4xNjc3NTMsIDAuMjMwNDMyLCAwLjMwODY4NiwgMC4zODY2NTMsIDAuNDY0NzI0LCAwLjU0Mjk3OCIsIFwKLSAgICAgICAgICAiMC4wOTY5NzYsIDAuMTc1OTYyLCAwLjIzODU5NywgMC4zMTY2OSwgMC4zOTQ4MzgsIDAuNDcyOTI1LCAwLjU1MTE3OCIsIFwKLSAgICAgICAgICAiMC4xMDYwNzcsIDAuMTg1MDYsIDAuMjQ3NjgxLCAwLjMyNTg5MiwgMC40MDM5MDUsIDAuNDgyMDYxLCAwLjU2MDI3OSIsIFwKLSAgICAgICAgICAiMC4xMTMzMTMsIDAuMTkyMzA1LCAwLjI1NDk0MywgMC4zMzMxMzYsIDAuNDExMTcxLCAwLjQ4OTI1OCwgMC41Njc1MTUiLCBcCi0gICAgICAgICAgIjAuMTE5MDg3LCAwLjE5ODExOSwgMC4yNjA3NjIsIDAuMzM4ODY3LCAwLjQxNzAwNCwgMC40OTUxMiwgMC41NzMxOTQiLCBcCi0gICAgICAgICAgIjAuMTI2NzI0LCAwLjIwNTcyNiwgMC4yNjg1NDIsIDAuMzQ2NjA5LCAwLjQyNDYzNiwgMC41MDI3NDMsIDAuNTgwOTAyIiwgXAotICAgICAgICAgICIwLjEzMjQ0NSwgMC4yMTE0NjcsIDAuMjczOTczLCAwLjM1MjEyNCwgMC40MzAyNTEsIDAuNTA4MzU3LCAwLjU4NjUzIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0MjYxOCwgMC4yMDU0NjYsIDAuMzM4NjE0LCAwLjUwNTQzMSwgMC42NzI1MTcsIDAuODM5Njk2LCAxLjAwNjkiLCBcCi0gICAgICAgICAgIjAuMDQyNjY2LCAwLjIwNTQ3MSwgMC4zMzg2MjksIDAuNTA1NDE4LCAwLjY3MjQ4NSwgMC44Mzk3MzIsIDEuMDA3MyIsIFwKLSAgICAgICAgICAiMC4wNDI1NTMsIDAuMjA1NDYxLCAwLjMzODYxNywgMC41MDU1NTEsIDAuNjcyNDkxLCAwLjgzOTcyMywgMS4wMDczIiwgXAotICAgICAgICAgICIwLjA0MjY2MiwgMC4yMDU0MDcsIDAuMzM4NjMsIDAuNTA1NDEyLCAwLjY3MjQ4MywgMC44Mzk2OTksIDEuMDA3MjkiLCBcCi0gICAgICAgICAgIjAuMDQyNTk2LCAwLjIwNTQwNCwgMC4zMzg2MywgMC41MDU1NDksIDAuNjcyNDA5LCAwLjgzOTY5OSwgMS4wMDY5NyIsIFwKLSAgICAgICAgICAiMC4wNDI4MjQsIDAuMjA1NDQzLCAwLjMzODYwNiwgMC41MDU0NCwgMC42NzIzMDQsIDAuODM5NjU0LCAxLjAwNzE3IiwgXAotICAgICAgICAgICIwLjA0MjY2MSwgMC4yMDUzNjIsIDAuMzM4MjA0LCAwLjUwNTQ5NiwgMC42NzIyNjEsIDAuODM5NTQ4LCAxLjAwNjc2Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5NzQ0MiwgMC4xNzQ1MzcsIDAuMjM1NDA0LCAwLjMxMTQzOSwgMC4zODc0NTUsIDAuNDYzNTE4LCAwLjUzOTgyMSIsIFwKLSAgICAgICAgICAiMC4xMDU2NjcsIDAuMTgyNzQ5LCAwLjI0MzYwNywgMC4zMTk4MjksIDAuMzk1OTkxLCAwLjQ3MjA0OCwgMC41NDc3MTUiLCBcCi0gICAgICAgICAgIjAuMTE0ODM5LCAwLjE5MTkyLCAwLjI1Mjg2NSwgMC4zMjg5OTksIDAuNDA1MTU4LCAwLjQ4MTIyNiwgMC41NTY4MTMiLCBcCi0gICAgICAgICAgIjAuMTIyMTk4LCAwLjE5OTMxNSwgMC4yNjAxNTksIDAuMzM2MzU3LCAwLjQxMjUzNywgMC40ODg0MjEsIDAuNTY0MzEzIiwgXAotICAgICAgICAgICIwLjEyODA3NCwgMC4yMDUxNTMsIDAuMjY2MDQ1LCAwLjM0MjIyNiwgMC40MTg0MDksIDAuNDk0MTI5LCAwLjU3MDQyMiIsIFwKLSAgICAgICAgICAiMC4xMzU4MTksIDAuMjEyOTg0LCAwLjI3Mzk0MSwgMC4zNTAwMTUsIDAuNDI2MTA3LCAwLjUwMTk1LCAwLjU3ODA5MSIsIFwKLSAgICAgICAgICAiMC4xNDE1NzksIDAuMjE4NzYyLCAwLjI3OTcwMSwgMC4zNTU3NSwgMC40MzE5MDEsIDAuNTA3NTcyLCAwLjU4MzU3MiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDA2OTcsIDAuMTk1MzU2LCAwLjMyMTE4LCAwLjQ3ODc3OSwgMC42MzY1OTksIDAuNzkzODU4LCAwLjk1MjEzMSIsIFwKLSAgICAgICAgICAiMC4wNDA2OSwgMC4xOTU2MzMsIDAuMzIxMTc3LCAwLjQ3ODU4OSwgMC42MzYyMDEsIDAuNzk0NDY5LCAwLjk1MTg3MSIsIFwKLSAgICAgICAgICAiMC4wNDA2OTUsIDAuMTk1NTE3LCAwLjMyMTE3LCAwLjQ3ODU5NywgMC42MzYwMzYsIDAuNzk0NDcsIDAuOTUyMjU5IiwgXAotICAgICAgICAgICIwLjA0MDY5OCwgMC4xOTU2NDgsIDAuMzIxMTg2LCAwLjQ3ODg4NCwgMC42MzY0NTIsIDAuNzk0NDY2LCAwLjk1MjE1OCIsIFwKLSAgICAgICAgICAiMC4wNDA2ODYsIDAuMTk1NjMzLCAwLjMyMTIyMiwgMC40Nzg4MzMsIDAuNjM2NDA4LCAwLjc5NDQ2OSwgMC45NTE5MzgiLCBcCi0gICAgICAgICAgIjAuMDQwNzUzLCAwLjE5NTUyOCwgMC4zMjExNjksIDAuNDc4NjQyLCAwLjYzNjI4NywgMC43OTQ0MTIsIDAuOTUyMiIsIFwKLSAgICAgICAgICAiMC4wNDA2ODksIDAuMTk1NjgxLCAwLjMyMTI1NCwgMC40Nzg2MDksIDAuNjM2NDEsIDAuNzk0NDQzLCAwLjk1MTg2MSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDg5NDEsIDAuMDA4OTQsIDAuMDA4OTI5LCAwLjAwODkyMSwgMC4wMDg5MTYsIDAuMDA4OTE0LCAwLjAwODkxMSIsIFwKLSAgICAgICAgICAiMC4wMDg5MzIsIDAuMDA4OTMyLCAwLjAwODkyMSwgMC4wMDg5MTIsIDAuMDA4OTA4LCAwLjAwODkwNSwgMC4wMDg5MDIiLCBcCi0gICAgICAgICAgIjAuMDA4OTgsIDAuMDA4OTgxLCAwLjAwODk3LCAwLjAwODk2MSwgMC4wMDg5NTYsIDAuMDA4OTUzLCAwLjAwODk1IiwgXAotICAgICAgICAgICIwLjAwOTAyLCAwLjAwOTAyNSwgMC4wMDkwMTMsIDAuMDA5MDA0LCAwLjAwODk5OSwgMC4wMDg5OTUsIDAuMDA4OTkyIiwgXAotICAgICAgICAgICIwLjAwOTA5MSwgMC4wMDkwOTYsIDAuMDA5MDg1LCAwLjAwOTA3NSwgMC4wMDkwNywgMC4wMDkwNjcsIDAuMDA5MDYzIiwgXAotICAgICAgICAgICIwLjAwOTE5MSwgMC4wMDkxOTQsIDAuMDA5MTg0LCAwLjAwOTE3MiwgMC4wMDkxNjcsIDAuMDA5MTYyLCAwLjAwOTE2IiwgXAotICAgICAgICAgICIwLjAwOTI4LCAwLjAwOTI5MSwgMC4wMDkyOTksIDAuMDA5Mjg3LCAwLjAwOTI4MiwgMC4wMDkyNTYsIDAuMDA5Mjc0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA3NzI2LCAwLjAwNzc3MSwgMC4wMDc3NzYsIDAuMDA3Nzc5LCAwLjAwNzc4MSwgMC4wMDc3ODIsIDAuMDA3NzgxIiwgXAotICAgICAgICAgICIwLjAwNzcyMiwgMC4wMDc3NjcsIDAuMDA3NzczLCAwLjAwNzc3NSwgMC4wMDc3NzcsIDAuMDA3Nzc5LCAwLjAwNzc3OCIsIFwKLSAgICAgICAgICAiMC4wMDc3NzcsIDAuMDA3ODIyLCAwLjAwNzgyNywgMC4wMDc4MjksIDAuMDA3ODMxLCAwLjAwNzgzMSwgMC4wMDc4MzIiLCBcCi0gICAgICAgICAgIjAuMDA3ODI2LCAwLjAwNzg3LCAwLjAwNzg3NSwgMC4wMDc4NzcsIDAuMDA3ODc5LCAwLjAwNzg3OSwgMC4wMDc4OCIsIFwKLSAgICAgICAgICAiMC4wMDc5MDIsIDAuMDA3OTQ2LCAwLjAwNzk1LCAwLjAwNzk1MywgMC4wMDc5NTMsIDAuMDA3OTU0LCAwLjAwNzk1NSIsIFwKLSAgICAgICAgICAiMC4wMDgwMjYsIDAuMDA4MDczLCAwLjAwODA3NywgMC4wMDgwNzEsIDAuMDA4MDcyLCAwLjAwODA4LCAwLjAwODA4IiwgXAotICAgICAgICAgICIwLjAwODExNCwgMC4wMDgxNTUsIDAuMDA4MTcsIDAuMDA4MTcyLCAwLjAwODE2LCAwLjAwODE2LCAwLjAwODE2Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihRTikgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjY3NDQ2MTsKLSAgICBmdW5jdGlvbiA6ICJRQklOVCI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3NlbnNlIDogbm9uX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiByaXNpbmdfZWRnZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTEyNTE5LCAwLjE5MDY0MiwgMC4yNTMxNzEsIDAuMzMxMzkzLCAwLjQwOTU0LCAwLjQ4Nzc4MywgMC41NjYxNDEiLCBcCi0gICAgICAgICAgIjAuMTIwNzQ5LCAwLjE5ODgzNSwgMC4yNjEzMiwgMC4zMzk2MzEsIDAuNDE3ODA0LCAwLjQ5NjEzNCwgMC41NzQxOTkiLCBcCi0gICAgICAgICAgIjAuMTI5OTIxLCAwLjIwODAwOSwgMC4yNzA1NTEsIDAuMzQ4ODAzLCAwLjQyNjk3OCwgMC41MDUzMTMsIDAuNTgzMzczIiwgXAotICAgICAgICAgICIwLjEzNzI4MywgMC4yMTUzODUsIDAuMjc3OTE3LCAwLjM1NjE2MywgMC40MzQzMzcsIDAuNTEyNTk3LCAwLjU5MDczIiwgXAotICAgICAgICAgICIwLjE0MzE1NywgMC4yMjEyNDgsIDAuMjgzODAyLCAwLjM2MjA0NCwgMC40NDAyMTYsIDAuNTE4NDYzLCAwLjU5NjYyMiIsIFwKLSAgICAgICAgICAiMC4xNTA5MDMsIDAuMjI5MDE1LCAwLjI5MTYwMywgMC4zNjk4MTMsIDAuNDQ4MDAxLCAwLjUyNjE2MSwgMC42MDQ0MDQiLCBcCi0gICAgICAgICAgIjAuMTU2NjYyLCAwLjIzNDgxOCwgMC4yOTczOTEsIDAuMzc1NTg5LCAwLjQ1Mzg2NSwgMC41MzE5NjgsIDAuNjEwMTc1Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0MDE1NiwgMC4yMDUwODksIDAuMzM4NzQ4LCAwLjUwNTMzMywgMC42NzI1OTgsIDAuODM5NjAxLCAxLjAwNjIzIiwgXAotICAgICAgICAgICIwLjA0MDE1MywgMC4yMDUxODQsIDAuMzM4NzIxLCAwLjUwNTQ2LCAwLjY3MjYzOSwgMC44Mzk1NjQsIDEuMDA2NTYiLCBcCi0gICAgICAgICAgIjAuMDQwMTU2LCAwLjIwNTA1NywgMC4zMzg3MjEsIDAuNTA1NTQ1LCAwLjY3MjY1OCwgMC44Mzk2MDUsIDEuMDA2NTYiLCBcCi0gICAgICAgICAgIjAuMDQwMTUzLCAwLjIwNTE5MywgMC4zMzg3MTcsIDAuNTA1NzQ2LCAwLjY3Mjc3LCAwLjgzOTYwOSwgMS4wMDY1NyIsIFwKLSAgICAgICAgICAiMC4wNDAxNjMsIDAuMjA1MTksIDAuMzM4NzIyLCAwLjUwNTQ2MywgMC42NzI2MzYsIDAuODM5NjA1LCAxLjAwNjU3IiwgXAotICAgICAgICAgICIwLjA0MDE3MSwgMC4yMDUwNDksIDAuMzM4NzA2LCAwLjUwNTcyNSwgMC42NzI2MDQsIDAuODM5NTY4LCAxLjAwNjUyIiwgXAotICAgICAgICAgICIwLjA0MDQ4NCwgMC4yMDUxNzksIDAuMzM4Mzc2LCAwLjUwNTczNiwgMC42NzI1NzIsIDAuODM5NTA5LCAxLjAwNjUxIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwNTI1NCwgMC4xODEyMTEsIDAuMjQxOTY4LCAwLjMxNzk0NywgMC4zOTM4MywgMC40Njk3NDYsIDAuNTQ1NjY0IiwgXAotICAgICAgICAgICIwLjExMzQ0NiwgMC4xODk0MDksIDAuMjUwMTYsIDAuMzI2MTA3LCAwLjQwMjAyMywgMC40Nzc5NTQsIDAuNTUzODY2IiwgXAotICAgICAgICAgICIwLjEyMjU2MiwgMC4xOTg1NTksIDAuMjU5MzAzLCAwLjMzNTIwOCwgMC40MTExMDUsIDAuNDg3MDMzLCAwLjU2MzAwNCIsIFwKLSAgICAgICAgICAiMC4xMjk3OTUsIDAuMjA1NzQsIDAuMjY2NDkxLCAwLjM0MjQ0NCwgMC40MTgzNDIsIDAuNDk0MjcxLCAwLjU3MDI1NyIsIFwKLSAgICAgICAgICAiMC4xMzU1NzQsIDAuMjExNTYzLCAwLjI3MjMxNCwgMC4zNDgyNDEsIDAuNDI0MTg4LCAwLjUwMDA5OSwgMC41NzYwMDQiLCBcCi0gICAgICAgICAgIjAuMTQzMjI0LCAwLjIxOTE2MywgMC4yNzk5NTMsIDAuMzU1ODg1LCAwLjQzMTc5LCAwLjUwNzY3NywgMC41ODM2MzIiLCBcCi0gICAgICAgICAgIjAuMTQ4OTI3LCAwLjIyNDg2MywgMC4yODU2MDMsIDAuMzYxNjEyLCAwLjQzNzQ2NSwgMC41MTMzOTMsIDAuNTg5MzQ1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzODQwNCwgMC4xOTQwOTYsIDAuMzIwMzEyLCAwLjQ3ODA2NCwgMC42MzYwOTMsIDAuNzkzOTExLCAwLjk1MTkiLCBcCi0gICAgICAgICAgIjAuMDM4NDA1LCAwLjE5NDA5NSwgMC4zMjAyOTgsIDAuNDc4MDM2LCAwLjYzNjA4MywgMC43OTM5MDksIDAuOTUxODk1IiwgXAotICAgICAgICAgICIwLjAzODQwMSwgMC4xOTQwODksIDAuMzIwMjg3LCAwLjQ3ODE5OSwgMC42MzYwOTksIDAuNzkzOTI2LCAwLjk1MTkwOCIsIFwKLSAgICAgICAgICAiMC4wMzg0MDEsIDAuMTk0MDUsIDAuMzIwMjk3LCAwLjQ3ODAyOSwgMC42MzYwODMsIDAuNzkzOTA0LCAwLjk1MTg5NCIsIFwKLSAgICAgICAgICAiMC4wMzg0LCAwLjE5NDA1OCwgMC4zMjAzMDQsIDAuNDc4MTk3LCAwLjYzNjA3MywgMC43OTM5MDcsIDAuOTUxNzk1IiwgXAotICAgICAgICAgICIwLjAzODQyNiwgMC4xOTQxMDIsIDAuMzIwMjU2LCAwLjQ3ODA2NiwgMC42MzU5NDgsIDAuNzkzNzk4LCAwLjk1MTc3NiIsIFwKLSAgICAgICAgICAiMC4wMzg0MDEsIDAuMTkzOTcsIDAuMzE5OTc0LCAwLjQ3ODEwOCwgMC42MzU5MiwgMC43OTM3NzQsIDAuOTUxNjM1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNzcyNiwgMC4wMDc3NzEsIDAuMDA3Nzc2LCAwLjAwNzc3OSwgMC4wMDc3ODEsIDAuMDA3NzgyLCAwLjAwNzc4MSIsIFwKLSAgICAgICAgICAiMC4wMDc3MjIsIDAuMDA3NzY3LCAwLjAwNzc3MywgMC4wMDc3NzUsIDAuMDA3Nzc3LCAwLjAwNzc3OSwgMC4wMDc3NzgiLCBcCi0gICAgICAgICAgIjAuMDA3Nzc3LCAwLjAwNzgyMiwgMC4wMDc4MjcsIDAuMDA3ODI5LCAwLjAwNzgzMSwgMC4wMDc4MzEsIDAuMDA3ODMyIiwgXAotICAgICAgICAgICIwLjAwNzgyNiwgMC4wMDc4NywgMC4wMDc4NzUsIDAuMDA3ODc3LCAwLjAwNzg3OSwgMC4wMDc4NzksIDAuMDA3ODgiLCBcCi0gICAgICAgICAgIjAuMDA3OTAyLCAwLjAwNzk0NiwgMC4wMDc5NSwgMC4wMDc5NTMsIDAuMDA3OTUzLCAwLjAwNzk1NCwgMC4wMDc5NTUiLCBcCi0gICAgICAgICAgIjAuMDA4MDI2LCAwLjAwODA3MywgMC4wMDgwNzcsIDAuMDA4MDcxLCAwLjAwODA3MiwgMC4wMDgwOCwgMC4wMDgwOCIsIFwKLSAgICAgICAgICAiMC4wMDgxMTQsIDAuMDA4MTU1LCAwLjAwODE3LCAwLjAwODE3MiwgMC4wMDgxNiwgMC4wMDgxNiwgMC4wMDgxNiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwODk0MSwgMC4wMDg5NCwgMC4wMDg5MjksIDAuMDA4OTIxLCAwLjAwODkxNiwgMC4wMDg5MTQsIDAuMDA4OTExIiwgXAotICAgICAgICAgICIwLjAwODkzMiwgMC4wMDg5MzIsIDAuMDA4OTIxLCAwLjAwODkxMiwgMC4wMDg5MDgsIDAuMDA4OTA1LCAwLjAwODkwMiIsIFwKLSAgICAgICAgICAiMC4wMDg5OCwgMC4wMDg5ODEsIDAuMDA4OTcsIDAuMDA4OTYxLCAwLjAwODk1NiwgMC4wMDg5NTMsIDAuMDA4OTUiLCBcCi0gICAgICAgICAgIjAuMDA5MDIsIDAuMDA5MDI1LCAwLjAwOTAxMywgMC4wMDkwMDQsIDAuMDA4OTk5LCAwLjAwODk5NSwgMC4wMDg5OTIiLCBcCi0gICAgICAgICAgIjAuMDA5MDkxLCAwLjAwOTA5NiwgMC4wMDkwODUsIDAuMDA5MDc1LCAwLjAwOTA3LCAwLjAwOTA2NywgMC4wMDkwNjMiLCBcCi0gICAgICAgICAgIjAuMDA5MTkxLCAwLjAwOTE5NCwgMC4wMDkxODQsIDAuMDA5MTcyLCAwLjAwOTE2NywgMC4wMDkxNjIsIDAuMDA5MTYiLCBcCi0gICAgICAgICAgIjAuMDA5MjgsIDAuMDA5MjkxLCAwLjAwOTI5OSwgMC4wMDkyODcsIDAuMDA5MjgyLCAwLjAwOTI1NiwgMC4wMDkyNzQiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFJOKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2NzIxNDQ7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjcyMTQ0OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDY3MTk5MzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMTAwMjQsIDAuMDEwMDI4LCAwLjAxMDExMiwgMC4wMTAyMiwgMC4wMTAzNDUsIDAuMDEwNTcsIDAuMDEwNzY2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA4OTM4LCAwLjAwODk0OCwgMC4wMDkwMjUsIDAuMDA5MTM2LCAwLjAwOTI2NywgMC4wMDk0NzcsIDAuMDA5NjczIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJTRSA9PSAxJ2IwIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4xMTg3NSwgLTAuMTEzNzUsIC0wLjEwNzUsIC0wLjEwNzUsIC0wLjEwMTI1LCAtMC4wOTc1LCAtMC4wOTUiLCBcCi0gICAgICAgICAgIi0wLjEyMzc1LCAtMC4xMTg3NSwgLTAuMTEyNSwgLTAuMTEyNSwgLTAuMTA2MjUsIC0wLjEwMjUsIC0wLjEiLCBcCi0gICAgICAgICAgIi0wLjEzLCAtMC4xMjUsIC0wLjExODc1LCAtMC4xMTg3NSwgLTAuMTEyNSwgLTAuMTA4NzUsIC0wLjEwNjI1IiwgXAotICAgICAgICAgICItMC4xMzYyNSwgLTAuMTMxMjUsIC0wLjEyNSwgLTAuMTI1LCAtMC4xMTg3NSwgLTAuMTE1LCAtMC4xMTI1IiwgXAotICAgICAgICAgICItMC4xMzYyNSwgLTAuMTMxMjUsIC0wLjEzMTI1LCAtMC4xMjUsIC0wLjEyNSwgLTAuMTIxMjUsIC0wLjExODc1IiwgXAotICAgICAgICAgICItMC4xNDYyNSwgLTAuMTQxMjUsIC0wLjEzNSwgLTAuMTI4NzUsIC0wLjEyODc1LCAtMC4xMjUsIC0wLjEyMjUiLCBcCi0gICAgICAgICAgIi0wLjE0ODc1LCAtMC4xNDM3NSwgLTAuMTM3NSwgLTAuMTMxMjUsIC0wLjEzMTI1LCAtMC4xMjc1LCAtMC4xMjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wNSwgLTAuMDQ1LCAtMC4wMzI1LCAtMC4wMjYyNSwgLTAuMDI2MjUsIC0wLjAxNjI1LCAtMC4wMTM3NSIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMjc1LCAtMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDYxMjUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzMzc1LCAtMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjA2NzUsIC0wLjA2MjUsIC0wLjA1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjAzMzc1LCAtMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDczNzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjA0LCAtMC4wMzc1IiwgXAotICAgICAgICAgICItMC4wNzc1LCAtMC4wNjYyNSwgLTAuMDYsIC0wLjA1Mzc1LCAtMC4wNDc1LCAtMC4wNDM3NSwgLTAuMDQxMjUiLCBcCi0gICAgICAgICAgIi0wLjA4LCAtMC4wNjg3NSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA1NjI1LCAtMC4wNDYyNSwgLTAuMDQzNzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJTRSA9PSAxJ2IwIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNDM3NSwgMC4xMzI1LCAwLjEyNjI1LCAwLjEyNjI1LCAwLjEyLCAwLjExNjI1LCAwLjExMzc1IiwgXAotICAgICAgICAgICIwLjE0ODc1LCAwLjE0Mzc1LCAwLjEzNzUsIDAuMTMxMjUsIDAuMTI1LCAwLjEyMTI1LCAwLjExODc1IiwgXAotICAgICAgICAgICIwLjE1NSwgMC4xNSwgMC4xNDM3NSwgMC4xMzc1LCAwLjEzMTI1LCAwLjEyNzUsIDAuMTI1IiwgXAotICAgICAgICAgICIwLjE2MTI1LCAwLjE1LCAwLjE0Mzc1LCAwLjE0Mzc1LCAwLjEzNzUsIDAuMTMzNzUsIDAuMTMxMjUiLCBcCi0gICAgICAgICAgIjAuMTYxMjUsIDAuMTU2MjUsIDAuMTUsIDAuMTQzNzUsIDAuMTQzNzUsIDAuMTQsIDAuMTMxMjUiLCBcCi0gICAgICAgICAgIjAuMTY1LCAwLjE2LCAwLjE1Mzc1LCAwLjE0NzUsIDAuMTQ3NSwgMC4xNDM3NSwgMC4xNDEyNSIsIFwKLSAgICAgICAgICAiMC4xNzM3NSwgMC4xNjI1LCAwLjE1NjI1LCAwLjE1LCAwLjE1LCAwLjE0NjI1LCAwLjE0Mzc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDgxMjUsIDAuMDcsIDAuMDYzNzUsIDAuMDU3NSwgMC4wNTEyNSwgMC4wNDEyNSwgMC4wMzg3NSIsIFwKLSAgICAgICAgICAiMC4wODYyNSwgMC4wODEyNSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1MjUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMDkyNSwgMC4wODc1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1ODc1LCAwLjA1IiwgXAotICAgICAgICAgICIwLjA5ODc1LCAwLjA4NzUsIDAuMDgxMjUsIDAuMDc1LCAwLjA2ODc1LCAwLjA1ODc1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICIwLjA5ODc1LCAwLjA5Mzc1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIjAuMTA4NzUsIDAuMDk3NSwgMC4wOTEyNSwgMC4wODUsIDAuMDc4NzUsIDAuMDY4NzUsIDAuMDY2MjUiLCBcCi0gICAgICAgICAgIjAuMTExMjUsIDAuMSwgMC4wOTM3NSwgMC4wODc1LCAwLjA4MTI1LCAwLjA3MTI1LCAwLjA2ODc1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTRSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNTQ1Nzc7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNTQ1Nzc7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNTQ1MzE7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA1MDE5LCAwLjAwNTAzMSwgMC4wMDUxMTYsIDAuMDA1MjMxLCAwLjAwNTM4MSwgMC4wMDU1ODIsIDAuMDA1NzcxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA2Nzc2LCAwLjAwNjgwOSwgMC4wMDY5MjEsIDAuMDA3MTA1LCAwLjAwNzMzMSwgMC4wMDc3MDUsIDAuMDA4MDUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUQmIUUmIVJOJlNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9FX0VRXzBfQU5fUk5fRVFfMF9BTl9TSV9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAyNSwgLTAuMDIsIC0wLjAxMzc1LCAtMC4wMTM3NSwgLTAuMDA3NSwgLTAuMDAzNzUsIC0wLjAwMTI1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTg3NSwgLTAuMDE1LCAtMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDIxMjUsIC0wLjAxODc1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDQzNzUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzc1LCAtMC4wMzM3NSwgLTAuMDI1IiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjA0Mzc1LCAtMC4wNCwgLTAuMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDY1LCAtMC4wNiwgLTAuMDYsIC0wLjA1Mzc1LCAtMC4wNTM3NSwgLTAuMDUsIC0wLjA0NzUiLCBcCi0gICAgICAgICAgIi0wLjA3Mzc1LCAtMC4wNjg3NSwgLTAuMDYyNSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA1MjUsIC0wLjA1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDA2MjUsIDAuMDA1LCAwLjAxMTI1LCAwLjAxNzUsIDAuMDE3NSwgMC4wMjc1LCAwLjAzIiwgXAotICAgICAgICAgICItMC4wMTEyNSwgLTAuMDA2MjUsIDAsIDAuMDA2MjUsIDAuMDEyNSwgMC4wMjI1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLCAwLjAwNjI1LCAwLjAxLCAwLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIC0wLjAwNjI1LCAwLjAwMzc1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIC0wLjAwMjUsIDAiLCBcCi0gICAgICAgICAgIi0wLjA0LCAtMC4wMzUsIC0wLjAyODc1LCAtMC4wMjI1LCAtMC4wMTYyNSwgLTAuMDEyNSwgLTAuMDAzNzUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAyNSwgLTAuMDE1LCAtMC4wMTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEJiFFJlJOJiFTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fRV9FUV8wX0FOX1JOX0VRXzFfQU5fU0lfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMzc1LCAtMC4wMzI1LCAtMC4wMjYyNSwgLTAuMDI2MjUsIC0wLjAyLCAtMC4wMTYyNSwgLTAuMDEzNzUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzNzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMzEyNSwgLTAuMDI3NSwgLTAuMDI1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDQzNzUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzc1LCAtMC4wMzM3NSwgLTAuMDI1IiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzMzc1LCAtMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wNDM3NSwgLTAuMDQsIC0wLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjA2NSwgLTAuMDUzNzUsIC0wLjA1Mzc1LCAtMC4wNDc1LCAtMC4wNDc1LCAtMC4wNDM3NSwgLTAuMDQxMjUiLCBcCi0gICAgICAgICAgIi0wLjA2NzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDUsIC0wLjA0NjI1LCAtMC4wNDM3NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJEJkUmUk4mIVNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMV9BTl9FX0VRXzFfQU5fUk5fRVFfMV9BTl9TSV9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAxMjUsIC0wLjAwNzUsIC0wLjAwMTI1LCAwLjAwNSwgMC4wMTEyNSwgMC4wMTUsIDAuMDIzNzUiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMCwgMCwgMC4wMSwgMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAtMC4wMDYyNSwgMC4wMDM3NSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAtMC4wMDI1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDMxMjUsIC0wLjAxODc1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDAyNSwgMCIsIFwKLSAgICAgICAgICAiLTAuMDQsIC0wLjAzNSwgLTAuMDI4NzUsIC0wLjAyMjUsIC0wLjAxNjI1LCAtMC4wMTI1LCAtMC4wMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxNSwgLTAuMDA2MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEJiFFJiFSTiZTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fRV9FUV8wX0FOX1JOX0VRXzBfQU5fU0lfRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNSwgMC4wMzg3NSwgMC4wMzI1LCAwLjAzMjUsIDAuMDI2MjUsIDAuMDIyNSwgMC4wMiIsIFwKLSAgICAgICAgICAiMC4wNTUsIDAuMDUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMjc1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiMC4wNjc1LCAwLjA1NjI1LCAwLjA1LCAwLjA0Mzc1LCAwLjA0Mzc1LCAwLjA0LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIjAuMDczNzUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNSwgMC4wNDYyNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4wOCwgMC4wNzUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNjI1LCAwLjA1MjUsIDAuMDUiLCBcCi0gICAgICAgICAgIjAuMDksIDAuMDg1LCAwLjA3ODc1LCAwLjA3MjUsIDAuMDcyNSwgMC4wNjI1LCAwLjA2IiwgXAotICAgICAgICAgICIwLjA5ODc1LCAwLjA5Mzc1LCAwLjA4NzUsIDAuMDgxMjUsIDAuMDc1LCAwLjA3MTI1LCAwLjA2ODc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM3NSwgMC4wMjYyNSwgMC4wMiwgMC4wMTM3NSwgMC4wMDc1LCAtMC4wMDI1LCAtMC4wMDUiLCBcCi0gICAgICAgICAgIjAuMDQyNSwgMC4wMzEyNSwgMC4wMjUsIDAuMDE4NzUsIDAuMDEyNSwgMC4wMDg3NSwgMCIsIFwKLSAgICAgICAgICAiMC4wNDg3NSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAyNSwgMC4wMjUsIDAuMDE1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMDYxMjUsIDAuMDUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMjEyNSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4wNjc1LCAwLjA1NjI1LCAwLjA1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDMzNzUsIDAuMDI1IiwgXAotICAgICAgICAgICIwLjA3NzUsIDAuMDY2MjUsIDAuMDYsIDAuMDUzNzUsIDAuMDQ3NSwgMC4wMzc1LCAwLjAzNSIsIFwKLSAgICAgICAgICAiMC4wODYyNSwgMC4wNzUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNDYyNSwgMC4wNDM3NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUQmIUUmUk4mIVNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9FX0VRXzBfQU5fUk5fRVFfMV9BTl9TSV9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0Mzc1LCAwLjAzODc1LCAwLjAyNjI1LCAwLjAyLCAwLjAxMzc1LCAwLjAxLCAwLjAwMTI1IiwgXAotICAgICAgICAgICIwLjA1NSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMTUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4wNjEyNSwgMC4wNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyMTI1LCAwLjAxODc1IiwgXAotICAgICAgICAgICIwLjA2MTI1LCAwLjA1NjI1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDI3NSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4wNjc1LCAwLjA1NjI1LCAwLjA1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDI3NSwgMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMDcxMjUsIDAuMDYsIDAuMDUzNzUsIDAuMDQ3NSwgMC4wNDEyNSwgMC4wMzEyNSwgMC4wMjg3NSIsIFwKLSAgICAgICAgICAiMC4wNzM3NSwgMC4wNjg3NSwgMC4wNTYyNSwgMC4wNSwgMC4wNDM3NSwgMC4wNCwgMC4wMzEyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiRCZFJlJOJiFTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzFfQU5fRV9FUV8xX0FOX1JOX0VRXzFfQU5fU0lfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjI1LCAwLjA1MTI1LCAwLjA0NSwgMC4wNDUsIDAuMDM4NzUsIDAuMDM1LCAwLjAzMjUiLCBcCi0gICAgICAgICAgIjAuMDY3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1LCAwLjA0Mzc1LCAwLjA0LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIjAuMDczNzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNTYyNSwgMC4wNSwgMC4wNDYyNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4wOCwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1NjI1LCAwLjA1MjUsIDAuMDUiLCBcCi0gICAgICAgICAgIjAuMDgsIDAuMDc1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDUyNSwgMC4wNSIsIFwKLSAgICAgICAgICAiMC4wODM3NSwgMC4wNzg3NSwgMC4wNzI1LCAwLjA2NjI1LCAwLjA2LCAwLjA1NjI1LCAwLjA1Mzc1IiwgXAotICAgICAgICAgICIwLjA4NjI1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjg3NSwgMC4wNjUsIDAuMDU2MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFNJKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA3MDg5OTk7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNzA3NDk5OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDcwODk5OTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDMwNzksIDAuMDAzMDU3LCAwLjAwMzA4NCwgMC4wMDMxMjksIDAuMDAzMjA1LCAwLjAwMzMyLCAwLjAwMzQ0NyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNTUxNSwgMC4wMDU1MDEsIDAuMDA1NTI2LCAwLjAwNTU3MSwgMC4wMDU2MjksIDAuMDA1NzQ1LCAwLjAwNTg2NiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJTRSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMzEyNSwgLTAuMDI2MjUsIC0wLjAyLCAtMC4wMTM3NSwgLTAuMDEzNzUsIC0wLjAxLCAtMC4wMDc1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDE1LCAtMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDIxMjUsIC0wLjAxODc1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMjc1LCAtMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjA1NSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDMzNzUsIC0wLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wNjUsIC0wLjA2LCAtMC4wNTM3NSwgLTAuMDUzNzUsIC0wLjA0NzUsIC0wLjA0Mzc1LCAtMC4wNDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDY3NSwgLTAuMDYyNSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA1NjI1LCAtMC4wNTI1LCAtMC4wNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAxMjUsIC0wLjAwMTI1LCAwLjAwNSwgMC4wMTEyNSwgMC4wMTc1LCAwLjAyMTI1LCAwLjAyMzc1IiwgXAotICAgICAgICAgICItMC4wMTc1LCAtMC4wMDYyNSwgMCwgMC4wMDYyNSwgMC4wMTI1LCAwLjAxNjI1LCAwLjAxODc1IiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAsIDAuMDA2MjUsIDAuMDEsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMCwgMC4wMDM3NSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAtMC4wMDI1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wMzM3NSwgLTAuMDI4NzUsIC0wLjAyMjUsIC0wLjAxNjI1LCAtMC4wMSwgLTAuMDA2MjUsIC0wLjAwMzc1IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMDg3NSwgLTAuMDA2MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlNFIjsKLSAgICAgIHNkZl9jb25kIDogIlNFID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1LCAwLjA0NSwgMC4wMzg3NSwgMC4wMzI1LCAwLjAzMjUsIDAuMDI4NzUsIDAuMDI2MjUiLCBcCi0gICAgICAgICAgIjAuMDYxMjUsIDAuMDUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzc1LCAwLjAzMzc1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDU2MjUsIDAuMDUsIDAuMDUsIDAuMDQzNzUsIDAuMDQsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiMC4wNzM3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1NjI1LCAwLjA1LCAwLjA0NjI1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjA4LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNTI1LCAwLjA1IiwgXAotICAgICAgICAgICIwLjA5LCAwLjA3ODc1LCAwLjA3MjUsIDAuMDcyNSwgMC4wNjYyNSwgMC4wNjI1LCAwLjA2IiwgXAotICAgICAgICAgICIwLjA5MjUsIDAuMDg3NSwgMC4wODEyNSwgMC4wNzUsIDAuMDc1LCAwLjA3MTI1LCAwLjA2MjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzc1LCAwLjAzMjUsIDAuMDIsIDAuMDEzNzUsIDAuMDA3NSwgMC4wMDM3NSwgLTAuMDA1IiwgXAotICAgICAgICAgICIwLjA0MjUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMTg3NSwgMC4wMTg3NSwgMC4wMDg3NSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiMC4wNTUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMjUsIDAuMDE1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMDYxMjUsIDAuMDUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMjEyNSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4wNjEyNSwgMC4wNTYyNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzNzUsIDAuMDI3NSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4wNzEyNSwgMC4wNiwgMC4wNTM3NSwgMC4wNDc1LCAwLjA0MTI1LCAwLjAzNzUsIDAuMDI4NzUiLCBcCi0gICAgICAgICAgIjAuMDgsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNSwgMC4wNSwgMC4wNCwgMC4wMzc1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBTRURGRlRSWDQgKgotICogLS0tLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChTRURGRlRSWDQpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMi4yMzM5MTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBmZiAoTjMwLFFCSU5UKSB7Ci0gICAgbmV4dF9zdGF0ZSA6ICIoKFNFIFNJKSArICghU0UgKCgoISgoIUQpIEUpKSAoISgoIUUpICghTjMwKSkpKSBSTikpKSI7Ci0gICAgY2xvY2tlZF9vbiA6ICJDSyI7Ci0gIH0KLSAgcGluKENLKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA1ODY0MjQ7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNTg2NDI0OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDU4NjM3OwotICAgIGNsb2NrIDogdHJ1ZTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDM1MjEsIDAuMDAzNTE1LCAwLjAwMzYwMSwgMC4wMDM2ODIsIDAuMDAzODAyLCAwLjAwNDA0LCAwLjAwNDIzMSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwODEwOSwgMC4wMDgxMDEsIDAuMDA4MTg5LCAwLjAwODMxMywgMC4wMDg0NzIsIDAuMDA4NjQ2LCAwLjAwODg0OSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQmIUUmIVJOJiFTRSYhU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX0VfRVFfMF9BTl9STl9FUV8wX0FOX1NFX0VRXzBfQU5fU0lfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjEwNTk4OCwgMC4xMTQyMzYsIDAuMTIzNDMsIDAuMTMwODA1LCAwLjEzNjcxNSwgMC4xNDQ0MzgsIDAuMTUwMjI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wNjM5OTgsIDAuMDcyMDk5LCAwLjA4MTMxMSwgMC4wODgyOTIsIDAuMDk0MDA3LCAwLjEwMTQ2NywgMC4xMDY4MzQiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEQpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYxNjkxOTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MTY4ODM7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjE2OTE5OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwOTAzMSwgMC4wMDkwMzUsIDAuMDA5MTE2LCAwLjAwOTIyNSwgMC4wMDkzNTQsIDAuMDA5NTg4LCAwLjAwOTc5MSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNzkwNywgMC4wMDc5MiwgMC4wMDgwMDYsIDAuMDA4MTIsIDAuMDA4MjQ5LCAwLjAwODQ4NCwgMC4wMDg2NzIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiRSZSTiYhU0UiOwotICAgICAgc2RmX2NvbmQgOiAiRV9FUV8xX0FOX1JOX0VRXzFfQU5fU0VfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wODc1LCAtMC4wODI1LCAtMC4wODI1LCAtMC4wNzYyNSwgLTAuMDc2MjUsIC0wLjA3MjUsIC0wLjA3IiwgXAotICAgICAgICAgICItMC4wOTg3NSwgLTAuMDkzNzUsIC0wLjA4NzUsIC0wLjA4MTI1LCAtMC4wODEyNSwgLTAuMDc3NSwgLTAuMDc1IiwgXAotICAgICAgICAgICItMC4xMDUsIC0wLjEsIC0wLjA5Mzc1LCAtMC4wODc1LCAtMC4wODc1LCAtMC4wODM3NSwgLTAuMDgxMjUiLCBcCi0gICAgICAgICAgIi0wLjEwNSwgLTAuMSwgLTAuMSwgLTAuMDkzNzUsIC0wLjA5Mzc1LCAtMC4wOSwgLTAuMDg3NSIsIFwKLSAgICAgICAgICAiLTAuMTExMjUsIC0wLjEwNjI1LCAtMC4xLCAtMC4xLCAtMC4wOTM3NSwgLTAuMDksIC0wLjA4NzUiLCBcCi0gICAgICAgICAgIi0wLjExNSwgLTAuMTEsIC0wLjEwMzc1LCAtMC4xMDM3NSwgLTAuMDk3NSwgLTAuMDkzNzUsIC0wLjA5MTI1IiwgXAotICAgICAgICAgICItMC4xMTc1LCAtMC4xMTI1LCAtMC4xMDYyNSwgLTAuMTA2MjUsIC0wLjEwNjI1LCAtMC4xMDI1LCAtMC4wOTM3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjA1NjI1LCAtMC4wNTEyNSwgLTAuMDQ1LCAtMC4wMzg3NSwgLTAuMDMyNSwgLTAuMDI4NzUsIC0wLjAyNjI1IiwgXAotICAgICAgICAgICItMC4wNjc1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wNDM3NSwgLTAuMDMzNzUsIC0wLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wNzM3NSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNSwgLTAuMDQsIC0wLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjA3Mzc1LCAtMC4wNjg3NSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNDYyNSwgLTAuMDQzNzUiLCBcCi0gICAgICAgICAgIi0wLjA4LCAtMC4wNjg3NSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA1NjI1LCAtMC4wNDYyNSwgLTAuMDQzNzUiLCBcCi0gICAgICAgICAgIi0wLjA4Mzc1LCAtMC4wNzg3NSwgLTAuMDY2MjUsIC0wLjA2NjI1LCAtMC4wNiwgLTAuMDUsIC0wLjA0NzUiLCBcCi0gICAgICAgICAgIi0wLjA4NjI1LCAtMC4wODEyNSwgLTAuMDc1LCAtMC4wNjg3NSwgLTAuMDYyNSwgLTAuMDU4NzUsIC0wLjA1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJFJlJOJiFTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJFX0VRXzFfQU5fUk5fRVFfMV9BTl9TRV9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEzMTI1LCAwLjEyLCAwLjExMzc1LCAwLjEwNzUsIDAuMTA3NSwgMC4xMDM3NSwgMC4xMDEyNSIsIFwKLSAgICAgICAgICAiMC4xMzYyNSwgMC4xMjUsIDAuMTE4NzUsIDAuMTE4NzUsIDAuMTEyNSwgMC4xMDg3NSwgMC4xMDYyNSIsIFwKLSAgICAgICAgICAiMC4xNDI1LCAwLjEzMTI1LCAwLjEyNSwgMC4xMjUsIDAuMTE4NzUsIDAuMTE1LCAwLjExMjUiLCBcCi0gICAgICAgICAgIjAuMTQ4NzUsIDAuMTM3NSwgMC4xMzEyNSwgMC4xMjUsIDAuMTI1LCAwLjEyMTI1LCAwLjExODc1IiwgXAotICAgICAgICAgICIwLjE0ODc1LCAwLjE0Mzc1LCAwLjEzMTI1LCAwLjEzMTI1LCAwLjEyNSwgMC4xMjEyNSwgMC4xMTg3NSIsIFwKLSAgICAgICAgICAiMC4xNTI1LCAwLjE0NzUsIDAuMTQxMjUsIDAuMTM1LCAwLjEyODc1LCAwLjEyNSwgMC4xMjI1IiwgXAotICAgICAgICAgICIwLjE1NSwgMC4xNSwgMC4xNDM3NSwgMC4xMzc1LCAwLjEzNzUsIDAuMTMzNzUsIDAuMTI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg3NSwgMC4wODI1LCAwLjA3NjI1LCAwLjA2Mzc1LCAwLjA2Mzc1LCAwLjA1Mzc1LCAwLjA1MTI1IiwgXAotICAgICAgICAgICIwLjA5ODc1LCAwLjA4NzUsIDAuMDgxMjUsIDAuMDc1LCAwLjA2ODc1LCAwLjA1ODc1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICIwLjEwNSwgMC4wOTM3NSwgMC4wODc1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNjUsIDAuMDYyNSIsIFwKLSAgICAgICAgICAiMC4xMDUsIDAuMSwgMC4wODc1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNzEyNSwgMC4wNjI1IiwgXAotICAgICAgICAgICIwLjExMTI1LCAwLjEsIDAuMDkzNzUsIDAuMDg3NSwgMC4wODEyNSwgMC4wNzEyNSwgMC4wNjg3NSIsIFwKLSAgICAgICAgICAiMC4xMTUsIDAuMTEsIDAuMDk3NSwgMC4wOTEyNSwgMC4wODUsIDAuMDgxMjUsIDAuMDcyNSIsIFwKLSAgICAgICAgICAiMC4xMTc1LCAwLjExMjUsIDAuMSwgMC4wOTM3NSwgMC4wODc1LCAwLjA4Mzc1LCAwLjA3NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxMjQzODk7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxMjQzODk7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxMjQzMzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDk2MTYsIDAuMDA5NjI1LCAwLjAwOTcwNywgMC4wMDk4MzksIDAuMDA5OTYsIDAuMDEwMTY0LCAwLjAxMDMzOSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAxMDkxNywgMC4wMTA5NDIsIDAuMDExMDM0LCAwLjAxMTE5MSwgMC4wMTEzNzksIDAuMDExNzI5LCAwLjAxMjA1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlJOJiFTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJSTl9FUV8xX0FOX1NFX0VRXzAgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDY4NzUsIC0wLjA2Mzc1LCAtMC4wNTEyNSwgLTAuMDQ1LCAtMC4wMzg3NSwgLTAuMDM1LCAtMC4wMjYyNSIsIFwKLSAgICAgICAgICAiLTAuMDczNzUsIC0wLjA2ODc1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wNCwgLTAuMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDgsIC0wLjA3NSwgLTAuMDY4NzUsIC0wLjA1NjI1LCAtMC4wNTYyNSwgLTAuMDQ2MjUsIC0wLjA0Mzc1IiwgXAotICAgICAgICAgICItMC4wODYyNSwgLTAuMDgxMjUsIC0wLjA3NSwgLTAuMDY4NzUsIC0wLjA2MjUsIC0wLjA1MjUsIC0wLjA1IiwgXAotICAgICAgICAgICItMC4wOTI1LCAtMC4wODc1LCAtMC4wODEyNSwgLTAuMDY4NzUsIC0wLjA2ODc1LCAtMC4wNTg3NSwgLTAuMDU2MjUiLCBcCi0gICAgICAgICAgIi0wLjEwMjUsIC0wLjA5NzUsIC0wLjA4NSwgLTAuMDc4NzUsIC0wLjA3MjUsIC0wLjA2ODc1LCAtMC4wNiIsIFwKLSAgICAgICAgICAiLTAuMTA1LCAtMC4xLCAtMC4wOTM3NSwgLTAuMDg3NSwgLTAuMDgxMjUsIC0wLjA3MTI1LCAtMC4wNjg3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjA2ODc1LCAtMC4wNTc1LCAtMC4wNTEyNSwgLTAuMDQ1LCAtMC4wNDUsIC0wLjAzNSwgLTAuMDMyNSIsIFwKLSAgICAgICAgICAiLTAuMDczNzUsIC0wLjA2ODc1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjA0NjI1LCAtMC4wMzc1IiwgXAotICAgICAgICAgICItMC4wOCwgLTAuMDc1LCAtMC4wNjg3NSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA1MjUsIC0wLjA0Mzc1IiwgXAotICAgICAgICAgICItMC4wODYyNSwgLTAuMDc1LCAtMC4wNjg3NSwgLTAuMDYyNSwgLTAuMDYyNSwgLTAuMDUyNSwgLTAuMDUiLCBcCi0gICAgICAgICAgIi0wLjA4NjI1LCAtMC4wODEyNSwgLTAuMDc1LCAtMC4wNjg3NSwgLTAuMDYyNSwgLTAuMDU4NzUsIC0wLjA1NjI1IiwgXAotICAgICAgICAgICItMC4wOSwgLTAuMDg1LCAtMC4wNzg3NSwgLTAuMDcyNSwgLTAuMDY2MjUsIC0wLjA2MjUsIC0wLjA2IiwgXAotICAgICAgICAgICItMC4wOTg3NSwgLTAuMDg3NSwgLTAuMDgxMjUsIC0wLjA3NSwgLTAuMDY4NzUsIC0wLjA2NSwgLTAuMDYyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiUk4mIVNFIjsKLSAgICAgIHNkZl9jb25kIDogIlJOX0VRXzFfQU5fU0VfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNDM3NSwgMC4xMzI1LCAwLjEyNjI1LCAwLjEyLCAwLjEyLCAwLjExNjI1LCAwLjExMzc1IiwgXAotICAgICAgICAgICIwLjE0ODc1LCAwLjE0Mzc1LCAwLjEzNzUsIDAuMTMxMjUsIDAuMTI1LCAwLjEyMTI1LCAwLjExODc1IiwgXAotICAgICAgICAgICIwLjE1NSwgMC4xNSwgMC4xNDM3NSwgMC4xMzc1LCAwLjEzMTI1LCAwLjEyNzUsIDAuMTI1IiwgXAotICAgICAgICAgICIwLjE2MTI1LCAwLjE1LCAwLjE0Mzc1LCAwLjE0Mzc1LCAwLjEzNzUsIDAuMTMzNzUsIDAuMTMxMjUiLCBcCi0gICAgICAgICAgIjAuMTYxMjUsIDAuMTU2MjUsIDAuMTUsIDAuMTQzNzUsIDAuMTQzNzUsIDAuMTQsIDAuMTMxMjUiLCBcCi0gICAgICAgICAgIjAuMTcxMjUsIDAuMTYsIDAuMTUzNzUsIDAuMTQ3NSwgMC4xNDc1LCAwLjE0Mzc1LCAwLjE0MTI1IiwgXAotICAgICAgICAgICIwLjE3Mzc1LCAwLjE2MjUsIDAuMTU2MjUsIDAuMTU2MjUsIDAuMTUsIDAuMTQ2MjUsIDAuMTQzNzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xLCAwLjA5NSwgMC4wODg3NSwgMC4wODI1LCAwLjA4MjUsIDAuMDc4NzUsIDAuMDc2MjUiLCBcCi0gICAgICAgICAgIjAuMTA1LCAwLjEsIDAuMDkzNzUsIDAuMDkzNzUsIDAuMDg3NSwgMC4wODM3NSwgMC4wODEyNSIsIFwKLSAgICAgICAgICAiMC4xMTc1LCAwLjEwNjI1LCAwLjEwNjI1LCAwLjEsIDAuMSwgMC4wOTYyNSwgMC4wOTM3NSIsIFwKLSAgICAgICAgICAiMC4xMjM3NSwgMC4xMTg3NSwgMC4xMTI1LCAwLjExMjUsIDAuMTA2MjUsIDAuMTAyNSwgMC4xIiwgXAotICAgICAgICAgICIwLjEzLCAwLjEyNSwgMC4xMjUsIDAuMTE4NzUsIDAuMTE4NzUsIDAuMTE1LCAwLjEwNjI1IiwgXAotICAgICAgICAgICIwLjE0NjI1LCAwLjE0MTI1LCAwLjEzNSwgMC4xMjg3NSwgMC4xMjg3NSwgMC4xMjUsIDAuMTIyNSIsIFwKLSAgICAgICAgICAiMC4xNTUsIDAuMTUsIDAuMTQzNzUsIDAuMTQzNzUsIDAuMTM3NSwgMC4xMzM3NSwgMC4xMzEyNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAxLjMyODQzOwotICAgIGZ1bmN0aW9uIDogIk4zMCI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3NlbnNlIDogbm9uX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiByaXNpbmdfZWRnZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODMxMTUsIDAuMTM5OTE1LCAwLjE5NTUxNCwgMC4yMzUyMTgsIDAuMjk4NjE2LCAwLjM1NDE0NywgMC40MzMzMDkiLCBcCi0gICAgICAgICAgIjAuMDkxMzI5LCAwLjE0ODE0MiwgMC4yMDM3MTIsIDAuMjQzNTIxLCAwLjMwNjcyMSwgMC4zNjIzNzgsIDAuNDQxNTc4IiwgXAotICAgICAgICAgICIwLjEwMDQyOCwgMC4xNTcyMiwgMC4yMTI4NzMsIDAuMjUyNjY0LCAwLjMxNjE1NSwgMC4zNzE2NDQsIDAuNDUwNjYzIiwgXAotICAgICAgICAgICIwLjEwNzc2OSwgMC4xNjQ1OTgsIDAuMjIwNDE2LCAwLjI1OTg5NSwgMC4zMjMyNjYsIDAuMzc4OTk3LCAwLjQ1ODAwNyIsIFwKLSAgICAgICAgICAiMC4xMTM2MDEsIDAuMTcwNDE2LCAwLjIyNjAwMSwgMC4yNjU3NzIsIDAuMzI4OTcxLCAwLjM4NDgyLCAwLjQ2Mzg0MyIsIFwKLSAgICAgICAgICAiMC4xMjEzODYsIDAuMTc4MjE1LCAwLjIzMzc4MSwgMC4yNzM1OTQsIDAuMzM3MDY1LCAwLjM5MjUxOCwgMC40NzE0NTgiLCBcCi0gICAgICAgICAgIjAuMTI3MjQsIDAuMTg0MDE4LCAwLjIzOTcwNiwgMC4yNzkyMDgsIDAuMzQyODk3LCAwLjM5ODA5NCwgMC40NzcyNTYiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjY0NjIsIDAuMTQxMTQzLCAwLjI1ODcxOSwgMC4zNDMzNjgsIDAuNDc4OTU4LCAwLjU5NzUxMywgMC43NjY3NTIiLCBcCi0gICAgICAgICAgIjAuMDI2NDM1LCAwLjE0MTEzOSwgMC4yNTg3MTEsIDAuMzQzMzY0LCAwLjQ3ODM3OSwgMC41OTc1MDUsIDAuNzY2NzUyIiwgXAotICAgICAgICAgICIwLjAyNjQ2MywgMC4xNDEwNzYsIDAuMjU4Nzg2LCAwLjM0Mjg3MywgMC40Nzg0MTQsIDAuNTk2OTkyLCAwLjc2Njc1IiwgXAotICAgICAgICAgICIwLjAyNjQ4MSwgMC4xNDExNzQsIDAuMjU4NzksIDAuMzQyOTAxLCAwLjQ3ODkyOSwgMC41OTY4MzgsIDAuNzY2NzM5IiwgXAotICAgICAgICAgICIwLjAyNjQ3MywgMC4xNDEwMDEsIDAuMjU4Nzc1LCAwLjM0MzM1OSwgMC40Nzg3OTEsIDAuNTk2ODI5LCAwLjc2Njc0IiwgXAotICAgICAgICAgICIwLjAyNjQzMSwgMC4xNDEwOTUsIDAuMjU4NTg2LCAwLjM0MzM0NSwgMC40Nzg4OTksIDAuNTk3MzM4LCAwLjc2NjY2MiIsIFwKLSAgICAgICAgICAiMC4wMjY0ODEsIDAuMTQxMTY2LCAwLjI1ODc3OCwgMC4zNDI5MjEsIDAuNDc4OTA5LCAwLjU5NzMzNywgMC43NjY2NTEiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODkwMDgsIDAuMTQ0NjU0LCAwLjE5ODc1NCwgMC4yMzc2NiwgMC4yOTk3MDYsIDAuMzUzNjUzLCAwLjQzMDkwMSIsIFwKLSAgICAgICAgICAiMC4wOTcyNzcsIDAuMTUyOTE5LCAwLjIwNzMzNCwgMC4yNDU4MSwgMC4zMDc3MzEsIDAuMzYxODgxLCAwLjQzOTE0OCIsIFwKLSAgICAgICAgICAiMC4xMDY0MjksIDAuMTYyMDcxLCAwLjIxNjE3NCwgMC4yNTUwMTUsIDAuMzE3MjA0LCAwLjM3MTA2NiwgMC40NDgzMDEiLCBcCi0gICAgICAgICAgIjAuMTEzODQ0LCAwLjE2OTQ4NCwgMC4yMjM1ODYsIDAuMjYyMjc1LCAwLjMyNDQ4OCwgMC4zNzg0MzksIDAuNDU1NzIzIiwgXAotICAgICAgICAgICIwLjExOTc1NywgMC4xNzUzODksIDAuMjI5NjY4LCAwLjI2ODMzOCwgMC4zMzA1NDMsIDAuMzg0MzgxLCAwLjQ2MTYxNSIsIFwKLSAgICAgICAgICAiMC4xMjc1NjYsIDAuMTgzMjIyLCAwLjIzNzU5NywgMC4yNzYxMDcsIDAuMzM4MTM2LCAwLjM5MjE0LCAwLjQ2OTM4MiIsIFwKLSAgICAgICAgICAiMC4xMzMzMDIsIDAuMTg4OTQxLCAwLjI0MzIyNywgMC4yODE5MTUsIDAuMzQzODE3LCAwLjM5Nzk2NCwgMC40NzUxNzMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjUyMDEsIDAuMTM1MDkyLCAwLjI0NjI5OCwgMC4zMjY5MDIsIDAuNDU0OTA2LCAwLjU2NzY0OSwgMC43MjgxOTciLCBcCi0gICAgICAgICAgIjAuMDI1MTgyLCAwLjEzNTI4NSwgMC4yNDY4MTcsIDAuMzI2ODczLCAwLjQ1NTIxMywgMC41NjcwOTMsIDAuNzI4MTI5IiwgXAotICAgICAgICAgICIwLjAyNTIwOCwgMC4xMzQ4MzQsIDAuMjQ2ODQ0LCAwLjMyNjkwNCwgMC40NTUyNzksIDAuNTY3NTc0LCAwLjcyODE0NSIsIFwKLSAgICAgICAgICAiMC4wMjUxOSwgMC4xMzUwMjQsIDAuMjQ2MzU0LCAwLjMyNjkyOCwgMC40NTUwNzQsIDAuNTY3NjI0LCAwLjcyODIwMyIsIFwKLSAgICAgICAgICAiMC4wMjUxODQsIDAuMTM1MTgxLCAwLjI0NjgwNCwgMC4zMjY4OTQsIDAuNDU1NTQ0LCAwLjU2NzY1LCAwLjcyODIwOCIsIFwKLSAgICAgICAgICAiMC4wMjUxNDUsIDAuMTM1MjkzLCAwLjI0Njg3NywgMC4zMjY4MzIsIDAuNDU1MTY5LCAwLjU2NzU5MywgMC43MjgwMzciLCBcCi0gICAgICAgICAgIjAuMDI1MTkzLCAwLjEzNTIwMiwgMC4yNDY4ODQsIDAuMzI2ODQ4LCAwLjQ1NDkwNSwgMC41Njc1NzgsIDAuNzI4MTkxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEyMzE4LCAwLjAxMjQyOSwgMC4wMTI0MjcsIDAuMDEyNDI0LCAwLjAxMjQyLCAwLjAxMjQxNywgMC4wMTI0MTQiLCBcCi0gICAgICAgICAgIjAuMDEyMzA5LCAwLjAxMjQyMywgMC4wMTI0MjIsIDAuMDEyNDE5LCAwLjAxMjQxNSwgMC4wMTI0MTEsIDAuMDEyNDA4IiwgXAotICAgICAgICAgICIwLjAxMjM1NCwgMC4wMTI0NjYsIDAuMDEyNDY1LCAwLjAxMjQ2MSwgMC4wMTI0NTYsIDAuMDEyNDU0LCAwLjAxMjQ1IiwgXAotICAgICAgICAgICIwLjAxMjM5NywgMC4wMTI1MDgsIDAuMDEyNTA4LCAwLjAxMjUwNCwgMC4wMTI0OTksIDAuMDEyNDk1LCAwLjAxMjQ5MyIsIFwKLSAgICAgICAgICAiMC4wMTI0NjMsIDAuMDEyNTc5LCAwLjAxMjU3OCwgMC4wMTI1NzQsIDAuMDEyNTY5LCAwLjAxMjU2NSwgMC4wMTI1NjIiLCBcCi0gICAgICAgICAgIjAuMDEyNTYzLCAwLjAxMjY3NywgMC4wMTI2ODEsIDAuMDEyNjc3LCAwLjAxMjY3MiwgMC4wMTI2NjYsIDAuMDEyNjYyIiwgXAotICAgICAgICAgICIwLjAxMjY1MywgMC4wMTI3OTIsIDAuMDEyNzkzLCAwLjAxMjc4OSwgMC4wMTI3NjEsIDAuMDEyNzc5LCAwLjAxMjc1MyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDExMDU5LCAwLjAxMTIwNCwgMC4wMTEyMjQsIDAuMDExMjMsIDAuMDExMjM1LCAwLjAxMTIzOCwgMC4wMTEyNCIsIFwKLSAgICAgICAgICAiMC4wMTEwNjcsIDAuMDExMjAyLCAwLjAxMTIyNCwgMC4wMTEyMjksIDAuMDExMjM1LCAwLjAxMTIzNywgMC4wMTEyMzkiLCBcCi0gICAgICAgICAgIjAuMDExMTE2LCAwLjAxMTI1NCwgMC4wMTEyNzQsIDAuMDExMjgxLCAwLjAxMTI4NSwgMC4wMTEyODgsIDAuMDExMjkiLCBcCi0gICAgICAgICAgIjAuMDExMTY1LCAwLjAxMTMwMSwgMC4wMTEzMjEsIDAuMDExMzI2LCAwLjAxMTMzMSwgMC4wMTEzMywgMC4wMTEzMzYiLCBcCi0gICAgICAgICAgIjAuMDExMjQzLCAwLjAxMTM4LCAwLjAxMTM5OSwgMC4wMTE0MDUsIDAuMDExNDA5LCAwLjAxMTQxMiwgMC4wMTE0MTMiLCBcCi0gICAgICAgICAgIjAuMDExMzU4LCAwLjAxMTUwMSwgMC4wMTE1MjYsIDAuMDExNTE5LCAwLjAxMTUyMywgMC4wMTE1MzgsIDAuMDExNTM5IiwgXAotICAgICAgICAgICIwLjAxMTQ1MSwgMC4wMTE2MDEsIDAuMDExNjA1LCAwLjAxMTYyNSwgMC4wMTE2MTQsIDAuMDExNjMxLCAwLjAxMTYxNyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUU4pICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMS4zMzI1ODsKLSAgICBmdW5jdGlvbiA6ICJRQklOVCI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3NlbnNlIDogbm9uX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiByaXNpbmdfZWRnZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDYyODQsIDAuMTYyMDQ4LCAwLjIxNzUyLCAwLjI1NzIwNCwgMC4zMjA3MjksIDAuMzc2MjIxLCAwLjQ1NTUwOSIsIFwKLSAgICAgICAgICAiMC4xMTQ1NDEsIDAuMTcwMzE3LCAwLjIyNTg0NiwgMC4yNjU0NjcsIDAuMzI4OTM2LCAwLjM4NDQ4MiwgMC40NjM3NyIsIFwKLSAgICAgICAgICAiMC4xMjM2ODYsIDAuMTc5NDcsIDAuMjM0OTQ2LCAwLjI3NDYyNiwgMC4zMzgxNzMsIDAuMzkzNjM5LCAwLjQ3MjkyNSIsIFwKLSAgICAgICAgICAiMC4xMzExMDcsIDAuMTg2ODkxLCAwLjI0MjMxLCAwLjI4MTk0OCwgMC4zNDU1MzIsIDAuNDAxMDQxLCAwLjQ4MDM0NSIsIFwKLSAgICAgICAgICAiMC4xMzcwMTgsIDAuMTkyNzc1LCAwLjI0ODI4LCAwLjI4Nzk2MSwgMC4zNTE1MTcsIDAuNDA2OTcxLCAwLjQ4NjI1OCIsIFwKLSAgICAgICAgICAiMC4xNDQ4LCAwLjIwMDU2NSwgMC4yNTYxMywgMC4yOTU3NjIsIDAuMzU5MjYyLCAwLjQxNDc2MSwgMC40OTQwNzEiLCBcCi0gICAgICAgICAgIjAuMTUwNTU4LCAwLjIwNjI4MywgMC4yNjE4MDMsIDAuMzAxNDU3LCAwLjM2NDkyLCAwLjQyMDQ3MiwgMC40OTk3NDkiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjUyNTgsIDAuMTQwNjkyLCAwLjI1OTAwNSwgMC4zNDM5MTgsIDAuNDc5MjU1LCAwLjU5Nzc3OCwgMC43Njc0NTQiLCBcCi0gICAgICAgICAgIjAuMDI1MjU2LCAwLjE0MDg0NCwgMC4yNTg5MDQsIDAuMzQzOTA1LCAwLjQ3OTQ5NCwgMC41OTgwOTUsIDAuNzY3NDM4IiwgXAotICAgICAgICAgICIwLjAyNTI0LCAwLjE0MDY5MSwgMC4yNTkwOTUsIDAuMzQzOTI0LCAwLjQ3ODgyOSwgMC41OTgwODYsIDAuNzY3NDI4IiwgXAotICAgICAgICAgICIwLjAyNTI1NiwgMC4xNDA4MDksIDAuMjU5MDA0LCAwLjM0Mzc1MiwgMC40NzkyNDgsIDAuNTk4MDU4LCAwLjc2NzQyOSIsIFwKLSAgICAgICAgICAiMC4wMjUyNTIsIDAuMTQwODUxLCAwLjI1OTEyNiwgMC4zNDM5MTUsIDAuNDc5MTcyLCAwLjU5ODA4NiwgMC43Njc0MzciLCBcCi0gICAgICAgICAgIjAuMDI1MjM5LCAwLjE0MDg2NywgMC4yNTkxNzksIDAuMzQzODc3LCAwLjQ3OTQ5OSwgMC41OTgwNzUsIDAuNzY3NDA3IiwgXAotICAgICAgICAgICIwLjAyNTI1NCwgMC4xNDA4MzgsIDAuMjU5MTg2LCAwLjM0Mzg5MiwgMC40NzkyMjQsIDAuNTk4MDYzLCAwLjc2NzQxNCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwMTMxMywgMC4xNTU4MiwgMC4yMDk4NjYsIDAuMjQ4NTA0LCAwLjMxMDI3NiwgMC4zNjQzNzEsIDAuNDQxNjAzIiwgXAotICAgICAgICAgICIwLjEwOTUyMywgMC4xNjQwMjgsIDAuMjE4MDQ4LCAwLjI1NjY3NiwgMC4zMTg0NjMsIDAuMzcyNTUxLCAwLjQ0OTgwMSIsIFwKLSAgICAgICAgICAiMC4xMTg2MjYsIDAuMTczMDk0LCAwLjIyNzE0NiwgMC4yNjU3ODUsIDAuMzI3NjE2LCAwLjM4MTcxOCwgMC40NTg5MDEiLCBcCi0gICAgICAgICAgIjAuMTI1OTcxLCAwLjE4MDQ0OSwgMC4yMzQ1MjUsIDAuMjczMTE0LCAwLjMzNDkwMywgMC4zODkwNzIsIDAuNDY2MjUxIiwgXAotICAgICAgICAgICIwLjEzMTgzMSwgMC4xODYyNjIsIDAuMjQwMzEsIDAuMjc4OTQxLCAwLjM0MDcyMSwgMC4zOTQ4ODMsIDAuNDcyMDY2IiwgXAotICAgICAgICAgICIwLjEzOTYxNSwgMC4xOTQwNDksIDAuMjQ4MTAzLCAwLjI4NjczMiwgMC4zNDg1NDksIDAuNDAyNjMyLCAwLjQ3OTgyNyIsIFwKLSAgICAgICAgICAiMC4xNDU0NDIsIDAuMTk5OTExLCAwLjI1MzkxNSwgMC4yOTI1ODEsIDAuMzU0NDA1LCAwLjQwODQ0NSwgMC40ODU3MTMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjQxMzUsIDAuMTMzNzIyLCAwLjI0NTg4NCwgMC4zMjYyOTMsIDAuNDU0ODkyLCAwLjU2NzQ2OSwgMC43MjgyMTIiLCBcCi0gICAgICAgICAgIjAuMDI0MTI4LCAwLjEzMzY4MywgMC4yNDU4NzIsIDAuMzI2MjgxLCAwLjQ1NDQ5MiwgMC41Njc0NTEsIDAuNzI4MjAxIiwgXAotICAgICAgICAgICIwLjAyNDE0LCAwLjEzMzcxNiwgMC4yNDU5MzMsIDAuMzI1NzUzLCAwLjQ1NDI3MSwgMC41NjY3MjYsIDAuNzI4MTk5IiwgXAotICAgICAgICAgICIwLjAyNDEzMiwgMC4xMzM2MTksIDAuMjQ1OTUzLCAwLjMyNTg5MywgMC40NTQ4NDgsIDAuNTY2OTA2LCAwLjcyODE3NSIsIFwKLSAgICAgICAgICAiMC4wMjQxMjksIDAuMTMzNzE4LCAwLjI0NTkyOCwgMC4zMjYyNzYsIDAuNDU0NzExLCAwLjU2NjY5MSwgMC43MjgxNzYiLCBcCi0gICAgICAgICAgIjAuMDI0MTMzLCAwLjEzMzczNiwgMC4yNDU3MjEsIDAuMzI2MjQ2LCAwLjQ1NDc5MiwgMC41NjcyMTQsIDAuNzI4MDM1IiwgXAotICAgICAgICAgICIwLjAyNDE0LCAwLjEzMzY0OCwgMC4yNDU5MTIsIDAuMzI1OTAyLCAwLjQ1NDgwNSwgMC41NjcxOTgsIDAuNzI3OTkxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDExMDU5LCAwLjAxMTIwNCwgMC4wMTEyMjQsIDAuMDExMjMsIDAuMDExMjM1LCAwLjAxMTIzOCwgMC4wMTEyNCIsIFwKLSAgICAgICAgICAiMC4wMTEwNjcsIDAuMDExMjAyLCAwLjAxMTIyNCwgMC4wMTEyMjksIDAuMDExMjM1LCAwLjAxMTIzNywgMC4wMTEyMzkiLCBcCi0gICAgICAgICAgIjAuMDExMTE2LCAwLjAxMTI1NCwgMC4wMTEyNzQsIDAuMDExMjgxLCAwLjAxMTI4NSwgMC4wMTEyODgsIDAuMDExMjkiLCBcCi0gICAgICAgICAgIjAuMDExMTY1LCAwLjAxMTMwMSwgMC4wMTEzMjEsIDAuMDExMzI2LCAwLjAxMTMzMSwgMC4wMTEzMywgMC4wMTEzMzYiLCBcCi0gICAgICAgICAgIjAuMDExMjQzLCAwLjAxMTM4LCAwLjAxMTM5OSwgMC4wMTE0MDUsIDAuMDExNDA5LCAwLjAxMTQxMiwgMC4wMTE0MTMiLCBcCi0gICAgICAgICAgIjAuMDExMzU4LCAwLjAxMTUwMSwgMC4wMTE1MjYsIDAuMDExNTE5LCAwLjAxMTUyMywgMC4wMTE1MzgsIDAuMDExNTM5IiwgXAotICAgICAgICAgICIwLjAxMTQ1MSwgMC4wMTE2MDEsIDAuMDExNjA1LCAwLjAxMTYyNSwgMC4wMTE2MTQsIDAuMDExNjMxLCAwLjAxMTYxNyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEyMzE4LCAwLjAxMjQyOSwgMC4wMTI0MjcsIDAuMDEyNDI0LCAwLjAxMjQyLCAwLjAxMjQxNywgMC4wMTI0MTQiLCBcCi0gICAgICAgICAgIjAuMDEyMzA5LCAwLjAxMjQyMywgMC4wMTI0MjIsIDAuMDEyNDE5LCAwLjAxMjQxNSwgMC4wMTI0MTEsIDAuMDEyNDA4IiwgXAotICAgICAgICAgICIwLjAxMjM1NCwgMC4wMTI0NjYsIDAuMDEyNDY1LCAwLjAxMjQ2MSwgMC4wMTI0NTYsIDAuMDEyNDU0LCAwLjAxMjQ1IiwgXAotICAgICAgICAgICIwLjAxMjM5NywgMC4wMTI1MDgsIDAuMDEyNTA4LCAwLjAxMjUwNCwgMC4wMTI0OTksIDAuMDEyNDk1LCAwLjAxMjQ5MyIsIFwKLSAgICAgICAgICAiMC4wMTI0NjMsIDAuMDEyNTc5LCAwLjAxMjU3OCwgMC4wMTI1NzQsIDAuMDEyNTY5LCAwLjAxMjU2NSwgMC4wMTI1NjIiLCBcCi0gICAgICAgICAgIjAuMDEyNTYzLCAwLjAxMjY3NywgMC4wMTI2ODEsIDAuMDEyNjc3LCAwLjAxMjY3MiwgMC4wMTI2NjYsIDAuMDEyNjYyIiwgXAotICAgICAgICAgICIwLjAxMjY1MywgMC4wMTI3OTIsIDAuMDEyNzkzLCAwLjAxMjc4OSwgMC4wMTI3NjEsIDAuMDEyNzc5LCAwLjAxMjc1MyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUk4pICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY3NDEzMjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2NzQxMzI7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjc0MDgyOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAxMDQ1NiwgMC4wMTA0NzksIDAuMDEwNTU4LCAwLjAxMDY2LCAwLjAxMDc4NywgMC4wMTEwMTUsIDAuMDExMjE3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA4ODYxLCAwLjAwODg3NSwgMC4wMDg5NTcsIDAuMDA5MDY5LCAwLjAwOTIwMywgMC4wMDk0MjQsIDAuMDA5NjA3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJTRSA9PSAxJ2IwIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4xMTg3NSwgLTAuMTEzNzUsIC0wLjExMzc1LCAtMC4xMDc1LCAtMC4xMDc1LCAtMC4xMDM3NSwgLTAuMTAxMjUiLCBcCi0gICAgICAgICAgIi0wLjEzLCAtMC4xMjUsIC0wLjExODc1LCAtMC4xMTI1LCAtMC4xMTI1LCAtMC4xMDg3NSwgLTAuMTA2MjUiLCBcCi0gICAgICAgICAgIi0wLjEzNjI1LCAtMC4xMzEyNSwgLTAuMTI1LCAtMC4xMTg3NSwgLTAuMTE4NzUsIC0wLjExNSwgLTAuMTEyNSIsIFwKLSAgICAgICAgICAiLTAuMTM2MjUsIC0wLjEzMTI1LCAtMC4xMzEyNSwgLTAuMTI1LCAtMC4xMjUsIC0wLjEyMTI1LCAtMC4xMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMTQyNSwgLTAuMTM3NSwgLTAuMTMxMjUsIC0wLjEzMTI1LCAtMC4xMjUsIC0wLjEyMTI1LCAtMC4xMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMTQ2MjUsIC0wLjE0MTI1LCAtMC4xMzUsIC0wLjEzNSwgLTAuMTI4NzUsIC0wLjEyNSwgLTAuMTIyNSIsIFwKLSAgICAgICAgICAiLTAuMTQ4NzUsIC0wLjE0Mzc1LCAtMC4xMzc1LCAtMC4xMzc1LCAtMC4xMzEyNSwgLTAuMTI3NSwgLTAuMTI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDUsIC0wLjA0NSwgLTAuMDMyNSwgLTAuMDI2MjUsIC0wLjAyNjI1LCAtMC4wMTYyNSwgLTAuMDEzNzUiLCBcCi0gICAgICAgICAgIi0wLjA1NSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDI3NSwgLTAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjA2MTI1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzM3NSwgLTAuMDI1IiwgXAotICAgICAgICAgICItMC4wNjc1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wNDM3NSwgLTAuMDMzNzUsIC0wLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wNjc1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wNCwgLTAuMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDcxMjUsIC0wLjA2NjI1LCAtMC4wNiwgLTAuMDUzNzUsIC0wLjA0NzUsIC0wLjA0Mzc1LCAtMC4wNDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDgsIC0wLjA2ODc1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjA0NjI1LCAtMC4wNDM3NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIVNFIjsKLSAgICAgIHNkZl9jb25kIDogIlNFID09IDEnYjAiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE1LCAwLjEzODc1LCAwLjEzMjUsIDAuMTI2MjUsIDAuMTI2MjUsIDAuMTIyNSwgMC4xMiIsIFwKLSAgICAgICAgICAiMC4xNTUsIDAuMTUsIDAuMTM3NSwgMC4xMzc1LCAwLjEzMTI1LCAwLjEyNzUsIDAuMTI1IiwgXAotICAgICAgICAgICIwLjE2MTI1LCAwLjE1LCAwLjE0Mzc1LCAwLjE0Mzc1LCAwLjEzNzUsIDAuMTMzNzUsIDAuMTMxMjUiLCBcCi0gICAgICAgICAgIjAuMTY3NSwgMC4xNTYyNSwgMC4xNSwgMC4xNDM3NSwgMC4xNDM3NSwgMC4xNCwgMC4xMzc1IiwgXAotICAgICAgICAgICIwLjE2NzUsIDAuMTYyNSwgMC4xNTYyNSwgMC4xNSwgMC4xNDM3NSwgMC4xNCwgMC4xMzc1IiwgXAotICAgICAgICAgICIwLjE3MTI1LCAwLjE2NjI1LCAwLjE2LCAwLjE1Mzc1LCAwLjE0NzUsIDAuMTQzNzUsIDAuMTQxMjUiLCBcCi0gICAgICAgICAgIjAuMTczNzUsIDAuMTY4NzUsIDAuMTYyNSwgMC4xNTYyNSwgMC4xNTYyNSwgMC4xNDYyNSwgMC4xNDM3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4MTI1LCAwLjA3NjI1LCAwLjA2Mzc1LCAwLjA1NzUsIDAuMDUxMjUsIDAuMDQ3NSwgMC4wMzg3NSIsIFwKLSAgICAgICAgICAiMC4wOTI1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1MjUsIDAuMDUiLCBcCi0gICAgICAgICAgIjAuMDkyNSwgMC4wODc1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1ODc1LCAwLjA1IiwgXAotICAgICAgICAgICIwLjA5ODc1LCAwLjA5Mzc1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIjAuMTA1LCAwLjA5Mzc1LCAwLjA4NzUsIDAuMDgxMjUsIDAuMDc1LCAwLjA2NSwgMC4wNjI1IiwgXAotICAgICAgICAgICIwLjEwODc1LCAwLjA5NzUsIDAuMDkxMjUsIDAuMDg1LCAwLjA3ODc1LCAwLjA2ODc1LCAwLjA2NjI1IiwgXAotICAgICAgICAgICIwLjExMTI1LCAwLjEsIDAuMDkzNzUsIDAuMDg3NSwgMC4wODEyNSwgMC4wNzEyNSwgMC4wNjg3NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oU0UpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTUyMzc4OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTUyMzc4OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTUyMzQ5OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNTA3OSwgMC4wMDUwODksIDAuMDA1MTc0LCAwLjAwNTI4OSwgMC4wMDU0MzksIDAuMDA1NjQsIDAuMDA1ODI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA2ODEzLCAwLjAwNjg0NSwgMC4wMDY5NTgsIDAuMDA3MTQzLCAwLjAwNzM2NiwgMC4wMDc3NDEsIDAuMDA4MDg3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEJiFFJiFSTiZTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fRV9FUV8wX0FOX1JOX0VRXzBfQU5fU0lfRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMjUsIC0wLjAyLCAtMC4wMTM3NSwgLTAuMDEzNzUsIC0wLjAwNzUsIC0wLjAwMzc1LCAtMC4wMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDE4NzUsIC0wLjAxNSwgLTAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAyMTI1LCAtMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjA0Mzc1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDM3NSwgLTAuMDMzNzUsIC0wLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wNDM3NSwgLTAuMDQsIC0wLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjA2NSwgLTAuMDYsIC0wLjA2LCAtMC4wNTM3NSwgLTAuMDUzNzUsIC0wLjA1LCAtMC4wNDc1IiwgXAotICAgICAgICAgICItMC4wNzM3NSwgLTAuMDY4NzUsIC0wLjA2MjUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNTI1LCAtMC4wNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAwNjI1LCAwLjAwNSwgMC4wMTEyNSwgMC4wMTc1LCAwLjAyMzc1LCAwLjAyNzUsIDAuMDMiLCBcCi0gICAgICAgICAgIi0wLjAxMTI1LCAtMC4wMDYyNSwgMC4wMDYyNSwgMC4wMDYyNSwgMC4wMTI1LCAwLjAyMjUsIDAuMDI1IiwgXAotICAgICAgICAgICItMC4wMTc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMCwgMC4wMDYyNSwgMC4wMSwgMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLCAwLjAwMzc1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIC0wLjAwMjUsIDAiLCBcCi0gICAgICAgICAgIi0wLjAzMzc1LCAtMC4wMjg3NSwgLTAuMDIyNSwgLTAuMDIyNSwgLTAuMDE2MjUsIC0wLjAxMjUsIC0wLjAwMzc1IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMjUsIC0wLjAxNSwgLTAuMDEyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRCYhRSZSTiYhU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX0VfRVFfMF9BTl9STl9FUV8xX0FOX1NJX0VRXzAgPT0gMSdiMSI7Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDM3NSwgLTAuMDMyNSwgLTAuMDI2MjUsIC0wLjAyNjI1LCAtMC4wMiwgLTAuMDE2MjUsIC0wLjAxMzc1IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzc1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDMxMjUsIC0wLjAyNzUsIC0wLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzc1LCAtMC4wMzc1LCAtMC4wMzM3NSwgLTAuMDI1IiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzMzc1LCAtMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wNDM3NSwgLTAuMDQsIC0wLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjA2NSwgLTAuMDUzNzUsIC0wLjA1Mzc1LCAtMC4wNDc1LCAtMC4wNDc1LCAtMC4wNDM3NSwgLTAuMDQxMjUiLCBcCi0gICAgICAgICAgIi0wLjA2NzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDUsIC0wLjA0NjI1LCAtMC4wNDM3NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJEJkUmUk4mIVNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMV9BTl9FX0VRXzFfQU5fUk5fRVFfMV9BTl9TSV9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAxMjUsIC0wLjAwNzUsIC0wLjAwMTI1LCAwLjAwNSwgMC4wMTEyNSwgMC4wMTUsIDAuMDIzNzUiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMCwgMC4wMDYyNSwgMC4wMSwgMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLCAwLjAwMzc1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIC0wLjAwMjUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMTI1LCAtMC4wMDI1LCAwIiwgXAotICAgICAgICAgICItMC4wNCwgLTAuMDM1LCAtMC4wMjI1LCAtMC4wMjI1LCAtMC4wMTYyNSwgLTAuMDA2MjUsIC0wLjAwMzc1IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDE1LCAtMC4wMDYyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUQmIUUmIVJOJlNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9FX0VRXzBfQU5fUk5fRVFfMF9BTl9TSV9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1LCAwLjAzODc1LCAwLjAzMjUsIDAuMDMyNSwgMC4wMjYyNSwgMC4wMjI1LCAwLjAyIiwgXAotICAgICAgICAgICIwLjA1NSwgMC4wNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzNzUsIDAuMDI3NSwgMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMDY3NSwgMC4wNTYyNSwgMC4wNSwgMC4wNSwgMC4wNDM3NSwgMC4wNCwgMC4wMzc1IiwgXAotICAgICAgICAgICIwLjA3Mzc1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDU2MjUsIDAuMDQ2MjUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMDg2MjUsIDAuMDc1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDYyNSwgMC4wNTg3NSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiMC4wOTYyNSwgMC4wODUsIDAuMDc4NzUsIDAuMDcyNSwgMC4wNzI1LCAwLjA2ODc1LCAwLjA2NjI1IiwgXAotICAgICAgICAgICIwLjEwNSwgMC4wOTM3NSwgMC4wODc1LCAwLjA4MTI1LCAwLjA4MTI1LCAwLjA3MTI1LCAwLjA2ODc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM3NSwgMC4wMjYyNSwgMC4wMiwgMC4wMTM3NSwgMC4wMDc1LCAtMC4wMDI1LCAtMC4wMDUiLCBcCi0gICAgICAgICAgIjAuMDQyNSwgMC4wMzc1LCAwLjAyNSwgMC4wMTg3NSwgMC4wMTI1LCAwLjAwODc1LCAwIiwgXAotICAgICAgICAgICIwLjA1NSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMTUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4wNjEyNSwgMC4wNTYyNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyNzUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMDY3NSwgMC4wNjI1LCAwLjA1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDMzNzUsIDAuMDI1IiwgXAotICAgICAgICAgICIwLjA3NzUsIDAuMDcyNSwgMC4wNiwgMC4wNTM3NSwgMC4wNDc1LCAwLjA0Mzc1LCAwLjAzNSIsIFwKLSAgICAgICAgICAiMC4wODYyNSwgMC4wNzUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNTI1LCAwLjA0Mzc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRCYhRSZSTiYhU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX0VfRVFfMF9BTl9STl9FUV8xX0FOX1NJX0VRXzAgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQzNzUsIDAuMDM4NzUsIDAuMDMyNSwgMC4wMiwgMC4wMiwgMC4wMSwgMC4wMDc1IiwgXAotICAgICAgICAgICIwLjA1NSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMTUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4wNjEyNSwgMC4wNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyMTI1LCAwLjAxODc1IiwgXAotICAgICAgICAgICIwLjA2MTI1LCAwLjA1NjI1LCAwLjA1LCAwLjAzNzUsIDAuMDM3NSwgMC4wMjc1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiMC4wNjc1LCAwLjA2MjUsIDAuMDUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzM3NSwgMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMDcxMjUsIDAuMDY2MjUsIDAuMDUzNzUsIDAuMDQ3NSwgMC4wNDEyNSwgMC4wMzc1LCAwLjAyODc1IiwgXAotICAgICAgICAgICIwLjA3Mzc1LCAwLjA2ODc1LCAwLjA1NjI1LCAwLjA1LCAwLjA0Mzc1LCAwLjA0LCAwLjAzMTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJEJkUmUk4mIVNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMV9BTl9FX0VRXzFfQU5fUk5fRVFfMV9BTl9TSV9FUV8wID09IDEnYjEiOwotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2MjUsIDAuMDUxMjUsIDAuMDQ1LCAwLjA0NSwgMC4wMzg3NSwgMC4wMzUsIDAuMDMyNSIsIFwKLSAgICAgICAgICAiMC4wNjc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDUsIDAuMDQzNzUsIDAuMDQsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiMC4wNzM3NSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1LCAwLjA0NjI1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjA4LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNTI1LCAwLjA1IiwgXAotICAgICAgICAgICIwLjA4LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA2MjUsIDAuMDUyNSwgMC4wNSIsIFwKLSAgICAgICAgICAiMC4wODM3NSwgMC4wNzg3NSwgMC4wNzI1LCAwLjA2NjI1LCAwLjA2NjI1LCAwLjA2MjUsIDAuMDUzNzUiLCBcCi0gICAgICAgICAgIjAuMDkyNSwgMC4wODEyNSwgMC4wNzUsIDAuMDY4NzUsIDAuMDY4NzUsIDAuMDY1LCAwLjA2MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFNJKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA3MDIzOTY7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNzAxNDU2OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDcwMjM5NjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDMwOTIsIDAuMDAzMDcsIDAuMDAzMDk0LCAwLjAwMzE0MiwgMC4wMDMyMTYsIDAuMDAzMzMyLCAwLjAwMzQ1OCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNTU2MSwgMC4wMDU1NDcsIDAuMDA1NTcxLCAwLjAwNTYxNywgMC4wMDU2NzMsIDAuMDA1NzkxLCAwLjAwNTkxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlNFIjsKLSAgICAgIHNkZl9jb25kIDogIlNFID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAzMTI1LCAtMC4wMjYyNSwgLTAuMDIsIC0wLjAxMzc1LCAtMC4wMTM3NSwgLTAuMDEsIC0wLjAwNzUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTUsIC0wLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMjEyNSwgLTAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAyNzUsIC0wLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzM3NSwgLTAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjA2NSwgLTAuMDYsIC0wLjA1Mzc1LCAtMC4wNTM3NSwgLTAuMDQ3NSwgLTAuMDQzNzUsIC0wLjA0MTI1IiwgXAotICAgICAgICAgICItMC4wNjc1LCAtMC4wNjI1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDU2MjUsIC0wLjA1MjUsIC0wLjA1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDA2MjUsIC0wLjAwMTI1LCAwLjAwNSwgMC4wMTEyNSwgMC4wMTc1LCAwLjAyMTI1LCAwLjAyMzc1IiwgXAotICAgICAgICAgICItMC4wMTEyNSwgLTAuMDA2MjUsIDAsIDAuMDA2MjUsIDAuMDEyNSwgMC4wMTYyNSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLCAwLjAwNjI1LCAwLjAxLCAwLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAsIDAuMDAzNzUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMjUsIC0wLjAxMjUsIC0wLjAxMjUsIC0wLjAwNjI1LCAtMC4wMDI1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wMzM3NSwgLTAuMDI4NzUsIC0wLjAyMjUsIC0wLjAxNjI1LCAtMC4wMSwgLTAuMDA2MjUsIC0wLjAwMzc1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxODc1LCAtMC4wMDg3NSwgLTAuMDA2MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlNFIjsKLSAgICAgIHNkZl9jb25kIDogIlNFID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1NjI1LCAwLjA0NSwgMC4wMzg3NSwgMC4wMzI1LCAwLjAzMjUsIDAuMDI4NzUsIDAuMDI2MjUiLCBcCi0gICAgICAgICAgIjAuMDYxMjUsIDAuMDUsIDAuMDQzNzUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzM3NSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4wNjc1LCAwLjA2MjUsIDAuMDUsIDAuMDUsIDAuMDQzNzUsIDAuMDQsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiMC4wNzM3NSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1LCAwLjA0NjI1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjA4LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1MjUsIDAuMDUiLCBcCi0gICAgICAgICAgIjAuMDksIDAuMDc4NzUsIDAuMDcyNSwgMC4wNzI1LCAwLjA2NjI1LCAwLjA2MjUsIDAuMDYiLCBcCi0gICAgICAgICAgIjAuMDk4NzUsIDAuMDg3NSwgMC4wODEyNSwgMC4wNzUsIDAuMDc1LCAwLjA3MTI1LCAwLjA2ODc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQzNzUsIDAuMDMyNSwgMC4wMjYyNSwgMC4wMiwgMC4wMTM3NSwgMC4wMDM3NSwgMC4wMDEyNSIsIFwKLSAgICAgICAgICAiMC4wNDg3NSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMTg3NSwgMC4wMDg3NSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiMC4wNTUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMjUsIDAuMDE1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMDYxMjUsIDAuMDUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMjEyNSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4wNjc1LCAwLjA1NjI1LCAwLjA1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDI3NSwgMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMDcxMjUsIDAuMDY2MjUsIDAuMDUzNzUsIDAuMDQ3NSwgMC4wNDEyNSwgMC4wMzc1LCAwLjAyODc1IiwgXAotICAgICAgICAgICIwLjA4LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDUsIDAuMDQsIDAuMDM3NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogU0VERkZUUlhMICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoU0VERkZUUlhMKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDEuNDU1NzE7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgZmYgKE4zMCxRQklOVCkgewotICAgIG5leHRfc3RhdGUgOiAiKChTRSBTSSkgKyAoIVNFICgoKCEoKCFEKSBFKSkgKCEoKCFFKSAoIU4zMCkpKSkgUk4pKSkiOwotICAgIGNsb2NrZWRfb24gOiAiQ0siOwotICB9Ci0gIHBpbihDSykgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjM0MTU5OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYzNDE0MTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2MzQxNTk7Ci0gICAgY2xvY2sgOiB0cnVlOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzY3NSwgMC4wMDM2NzQsIDAuMDAzNzUsIDAuMDAzODU0LCAwLjAwMzk3MywgMC4wMDQyMDMsIDAuMDA0Mzk2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA3MTAxLCAwLjAwNzExLCAwLjAwNzIsIDAuMDA3MzIyLCAwLjAwNzQ3MiwgMC4wMDc3NzcsIDAuMDA4MDIyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRCYhRSYhUk4mIVNFJiFTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fRV9FUV8wX0FOX1JOX0VRXzBfQU5fU0VfRVFfMF9BTl9TSV9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMTQxNDQsIDAuMTQ5NTc0LCAwLjE1ODIyMiwgMC4xNjQ2NywgMC4xNjk3NjksIDAuMTc2OTYsIDAuMTgyMDE0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wNTkyNTUsIDAuMDY3Mjc5LCAwLjA3NTg3NSwgMC4wODIwODUsIDAuMDg3MTksIDAuMDkzNzgyLCAwLjA5ODU5NyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjU2MjQzOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDY1NjI0MzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2NTYxMTk7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA3NDI3LCAwLjAwNzQyOCwgMC4wMDc1MDYsIDAuMDA3NjIsIDAuMDA3NzQzLCAwLjAwNzk4MywgMC4wMDgxNzkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDgyMTIsIDAuMDA4MjI1LCAwLjAwODMwOCwgMC4wMDg0MjMsIDAuMDA4NTYsIDAuMDA4Nzg1LCAwLjAwODk4MiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJFJlJOJiFTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJFX0VRXzFfQU5fUk5fRVFfMV9BTl9TRV9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjA4MTI1LCAtMC4wNzYyNSwgLTAuMDcsIC0wLjA3LCAtMC4wNywgLTAuMDY2MjUsIC0wLjA2Mzc1IiwgXAotICAgICAgICAgICItMC4wODYyNSwgLTAuMDgxMjUsIC0wLjA4MTI1LCAtMC4wNzUsIC0wLjA3NSwgLTAuMDcxMjUsIC0wLjA2ODc1IiwgXAotICAgICAgICAgICItMC4wOTI1LCAtMC4wODc1LCAtMC4wODc1LCAtMC4wODEyNSwgLTAuMDgxMjUsIC0wLjA3NzUsIC0wLjA3NSIsIFwKLSAgICAgICAgICAiLTAuMDk4NzUsIC0wLjA5Mzc1LCAtMC4wODc1LCAtMC4wODc1LCAtMC4wODc1LCAtMC4wODM3NSwgLTAuMDgxMjUiLCBcCi0gICAgICAgICAgIi0wLjA5ODc1LCAtMC4wOTM3NSwgLTAuMDkzNzUsIC0wLjA4NzUsIC0wLjA4NzUsIC0wLjA4Mzc1LCAtMC4wODEyNSIsIFwKLSAgICAgICAgICAiLTAuMTA4NzUsIC0wLjEwMzc1LCAtMC4wOTc1LCAtMC4wOTc1LCAtMC4wOTEyNSwgLTAuMDg3NSwgLTAuMDg1IiwgXAotICAgICAgICAgICItMC4xMTEyNSwgLTAuMTA2MjUsIC0wLjEsIC0wLjEsIC0wLjEsIC0wLjA5NjI1LCAtMC4wOTM3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjA1NjI1LCAtMC4wNTEyNSwgLTAuMDQ1LCAtMC4wMzg3NSwgLTAuMDMyNSwgLTAuMDI4NzUsIC0wLjAyNjI1IiwgXAotICAgICAgICAgICItMC4wNjc1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wNDM3NSwgLTAuMDMzNzUsIC0wLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wNjc1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjA1LCAtMC4wNCwgLTAuMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDczNzUsIC0wLjA2ODc1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjA0NjI1LCAtMC4wNDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDgsIC0wLjA2ODc1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDU2MjUsIC0wLjA0NjI1LCAtMC4wNDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDgzNzUsIC0wLjA3MjUsIC0wLjA2NjI1LCAtMC4wNiwgLTAuMDYsIC0wLjA1NjI1LCAtMC4wNDc1IiwgXAotICAgICAgICAgICItMC4wODYyNSwgLTAuMDc1LCAtMC4wNjg3NSwgLTAuMDY4NzUsIC0wLjA2MjUsIC0wLjA1ODc1LCAtMC4wNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiRSZSTiYhU0UiOwotICAgICAgc2RmX2NvbmQgOiAiRV9FUV8xX0FOX1JOX0VRXzFfQU5fU0VfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTI1LCAwLjEwMTI1LCAwLjEwMTI1LCAwLjA5NSwgMC4wOTUsIDAuMDkxMjUsIDAuMDg4NzUiLCBcCi0gICAgICAgICAgIjAuMTE3NSwgMC4xMTI1LCAwLjEwNjI1LCAwLjEsIDAuMSwgMC4wOTYyNSwgMC4wOTM3NSIsIFwKLSAgICAgICAgICAiMC4xMjM3NSwgMC4xMTg3NSwgMC4xMTI1LCAwLjEwNjI1LCAwLjEwNjI1LCAwLjEwMjUsIDAuMSIsIFwKLSAgICAgICAgICAiMC4xMywgMC4xMTg3NSwgMC4xMTg3NSwgMC4xMTI1LCAwLjExMjUsIDAuMTA4NzUsIDAuMTA2MjUiLCBcCi0gICAgICAgICAgIjAuMTMsIDAuMTI1LCAwLjExODc1LCAwLjExODc1LCAwLjExMjUsIDAuMTA4NzUsIDAuMTA2MjUiLCBcCi0gICAgICAgICAgIjAuMTMzNzUsIDAuMTI4NzUsIDAuMTIyNSwgMC4xMjI1LCAwLjExNjI1LCAwLjExMjUsIDAuMTEiLCBcCi0gICAgICAgICAgIjAuMTQyNSwgMC4xMzEyNSwgMC4xMjUsIDAuMTI1LCAwLjEyNSwgMC4xMjEyNSwgMC4xMTg3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4MTI1LCAwLjA3NjI1LCAwLjA3LCAwLjA2Mzc1LCAwLjA1NzUsIDAuMDQ3NSwgMC4wNDUiLCBcCi0gICAgICAgICAgIjAuMDkyNSwgMC4wODEyNSwgMC4wNzUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNTg3NSwgMC4wNSIsIFwKLSAgICAgICAgICAiMC4wOTg3NSwgMC4wODc1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIjAuMDk4NzUsIDAuMDkzNzUsIDAuMDgxMjUsIDAuMDc1LCAwLjA3NSwgMC4wNjUsIDAuMDYyNSIsIFwKLSAgICAgICAgICAiMC4xMDUsIDAuMDkzNzUsIDAuMDg3NSwgMC4wODEyNSwgMC4wNzUsIDAuMDcxMjUsIDAuMDYyNSIsIFwKLSAgICAgICAgICAiMC4xMDg3NSwgMC4wOTc1LCAwLjA5MTI1LCAwLjA4NSwgMC4wNzg3NSwgMC4wNzUsIDAuMDcyNSIsIFwKLSAgICAgICAgICAiMC4xMTEyNSwgMC4xMDYyNSwgMC4wOTM3NSwgMC4wODc1LCAwLjA4MTI1LCAwLjA3NzUsIDAuMDc1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihFKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDEyNjY0NDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDEyNjY0NDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDEyNjU1NDsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDgwMzUsIDAuMDA4MDQ1LCAwLjAwODEyNywgMC4wMDgyMzgsIDAuMDA4MzgsIDAuMDA4NTcxLCAwLjAwODc3OSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwOTEzNiwgMC4wMDkxNjEsIDAuMDA5MjU5LCAwLjAwOTQzOSwgMC4wMDk2MywgMC4wMDk5OTksIDAuMDEwMzMxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlJOJiFTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJSTl9FUV8xX0FOX1NFX0VRXzAgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDYyNSwgLTAuMDU3NSwgLTAuMDQ1LCAtMC4wNDUsIC0wLjAzODc1LCAtMC4wMjg3NSwgLTAuMDI2MjUiLCBcCi0gICAgICAgICAgIi0wLjA2NzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjA0LCAtMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDczNzUsIC0wLjA2ODc1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjA0NjI1LCAtMC4wMzc1IiwgXAotICAgICAgICAgICItMC4wOCwgLTAuMDc1LCAtMC4wNjg3NSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA1MjUsIC0wLjA0Mzc1IiwgXAotICAgICAgICAgICItMC4wODYyNSwgLTAuMDgxMjUsIC0wLjA2ODc1LCAtMC4wNjI1LCAtMC4wNjI1LCAtMC4wNTI1LCAtMC4wNSIsIFwKLSAgICAgICAgICAiLTAuMDksIC0wLjA4NSwgLTAuMDc4NzUsIC0wLjA3MjUsIC0wLjA2NjI1LCAtMC4wNjI1LCAtMC4wNTM3NSIsIFwKLSAgICAgICAgICAiLTAuMDk4NzUsIC0wLjA4NzUsIC0wLjA4MTI1LCAtMC4wNzUsIC0wLjA2ODc1LCAtMC4wNjUsIC0wLjA2MjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wNjI1LCAtMC4wNTc1LCAtMC4wNTEyNSwgLTAuMDQ1LCAtMC4wMzg3NSwgLTAuMDM1LCAtMC4wMzI1IiwgXAotICAgICAgICAgICItMC4wNzM3NSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNSwgLTAuMDQ2MjUsIC0wLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjA4LCAtMC4wNjg3NSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA1NjI1LCAtMC4wNDYyNSwgLTAuMDQzNzUiLCBcCi0gICAgICAgICAgIi0wLjA4LCAtMC4wNzUsIC0wLjA2ODc1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDUyNSwgLTAuMDUiLCBcCi0gICAgICAgICAgIi0wLjA4NjI1LCAtMC4wNzUsIC0wLjA2ODc1LCAtMC4wNjg3NSwgLTAuMDYyNSwgLTAuMDU4NzUsIC0wLjA1IiwgXAotICAgICAgICAgICItMC4wOSwgLTAuMDg1LCAtMC4wNzI1LCAtMC4wNzI1LCAtMC4wNjYyNSwgLTAuMDYyNSwgLTAuMDUzNzUiLCBcCi0gICAgICAgICAgIi0wLjA5MjUsIC0wLjA4NzUsIC0wLjA4MTI1LCAtMC4wNzUsIC0wLjA2ODc1LCAtMC4wNjUsIC0wLjA2MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlJOJiFTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJSTl9FUV8xX0FOX1NFX0VRXzAgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTI1LCAwLjExMzc1LCAwLjExMzc1LCAwLjEwNzUsIDAuMTA3NSwgMC4xMDM3NSwgMC4xMDEyNSIsIFwKLSAgICAgICAgICAiMC4xMywgMC4xMjUsIDAuMTE4NzUsIDAuMTEyNSwgMC4xMTI1LCAwLjEwODc1LCAwLjEwNjI1IiwgXAotICAgICAgICAgICIwLjEzNjI1LCAwLjEzMTI1LCAwLjEyNSwgMC4xMTg3NSwgMC4xMTg3NSwgMC4xMTUsIDAuMTEyNSIsIFwKLSAgICAgICAgICAiMC4xNDI1LCAwLjEzMTI1LCAwLjEzMTI1LCAwLjEyNSwgMC4xMjUsIDAuMTIxMjUsIDAuMTE4NzUiLCBcCi0gICAgICAgICAgIjAuMTQyNSwgMC4xMzc1LCAwLjEzMTI1LCAwLjEzMTI1LCAwLjEyNSwgMC4xMjEyNSwgMC4xMTg3NSIsIFwKLSAgICAgICAgICAiMC4xNTI1LCAwLjE0MTI1LCAwLjEzNSwgMC4xMzUsIDAuMTI4NzUsIDAuMTMxMjUsIDAuMTI4NzUiLCBcCi0gICAgICAgICAgIjAuMTU1LCAwLjE0Mzc1LCAwLjE0Mzc1LCAwLjEzNzUsIDAuMTM3NSwgMC4xMzM3NSwgMC4xMzEyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4NzUsIDAuMDgyNSwgMC4wNzYyNSwgMC4wNzYyNSwgMC4wNywgMC4wNjYyNSwgMC4wNjM3NSIsIFwKLSAgICAgICAgICAiMC4wOTI1LCAwLjA4NzUsIDAuMDgxMjUsIDAuMDgxMjUsIDAuMDgxMjUsIDAuMDc3NSwgMC4wNzUiLCBcCi0gICAgICAgICAgIjAuMDk4NzUsIDAuMDkzNzUsIDAuMDkzNzUsIDAuMDg3NSwgMC4wODc1LCAwLjA4Mzc1LCAwLjA4MTI1IiwgXAotICAgICAgICAgICIwLjExMTI1LCAwLjEwNjI1LCAwLjEsIDAuMSwgMC4wOTM3NSwgMC4wOTYyNSwgMC4wOTM3NSIsIFwKLSAgICAgICAgICAiMC4xMTc1LCAwLjExMjUsIDAuMTA2MjUsIDAuMTA2MjUsIDAuMTA2MjUsIDAuMTAyNSwgMC4xIiwgXAotICAgICAgICAgICIwLjEyNzUsIDAuMTIyNSwgMC4xMjI1LCAwLjExNjI1LCAwLjExNjI1LCAwLjExMjUsIDAuMTEiLCBcCi0gICAgICAgICAgIjAuMTM2MjUsIDAuMTMxMjUsIDAuMTI1LCAwLjEyNSwgMC4xMjUsIDAuMTIxMjUsIDAuMTE4NzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFEpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4xOTk2ODsKLSAgICBmdW5jdGlvbiA6ICJOMzAiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5vbl91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcmlzaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEyNzI0NSwgMC4xMzc4MjIsIDAuMjMyODIxLCAwLjM5MTI0NiwgMC41NTAyMjksIDAuOTIwMjIzLCAxLjEzMTM5IiwgXAotICAgICAgICAgICIwLjEzNTI3OCwgMC4xNDU4NTUsIDAuMjQwODUzLCAwLjM5OTcyOSwgMC41NTgyNTUsIDAuOTI4NjkxLCAxLjEzOTg0IiwgXAotICAgICAgICAgICIwLjE0Mzc3NCwgMC4xNTQzNSwgMC4yNDkzNDksIDAuNDA4MjEzLCAwLjU2Njg2NSwgMC45MzcxNzMsIDEuMTQ4NDEiLCBcCi0gICAgICAgICAgIjAuMTUwMDg2LCAwLjE2MDY2MywgMC4yNTU2NjIsIDAuNDE0NSwgMC41NzM0NzMsIDAuOTQzNDY2LCAxLjE1NDQ0IiwgXAotICAgICAgICAgICIwLjE1NTE2OCwgMC4xNjU3NDcsIDAuMjYwNzEsIDAuNDE5MzUxLCAwLjU3ODU1NiwgMC45NDgxMjMsIDEuMTU5NCIsIFwKLSAgICAgICAgICAiMC4xNjIxMSwgMC4xNzI2OTYsIDAuMjY3NjYsIDAuNDI2MTk4LCAwLjU4NTQwNSwgMC45NTUzNiwgMS4xNjYyNiIsIFwKLSAgICAgICAgICAiMC4xNjcxODMsIDAuMTc3NzI4LCAwLjI3Mjk5NCwgMC40MzE1NDEsIDAuNTkwNTM3LCAwLjk2MDM5OCwgMS4xNzEzMiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTk5NTQsIDAuMTQxNjg0LCAwLjM0MDI2NiwgMC42NzM4MDQsIDEuMDA3NSwgMS43ODYzNywgMi4yMzE5NCIsIFwKLSAgICAgICAgICAiMC4xMTk5NzUsIDAuMTQxNjcsIDAuMzQwMDQzLCAwLjY3MzgyOCwgMS4wMDc0NiwgMS43ODU2OSwgMi4yMzE2NSIsIFwKLSAgICAgICAgICAiMC4xMTk5NzMsIDAuMTQxNjY4LCAwLjM0MDAzOCwgMC42NzM1OTcsIDEuMDA3NDYsIDEuNzg1NjksIDIuMjMxNjMiLCBcCi0gICAgICAgICAgIjAuMTIwMDI1LCAwLjE0MTc1NCwgMC4zNDAwMTksIDAuNjczOTc2LCAxLjAwODEyLCAxLjc4NzM4LCAyLjIzMjQxIiwgXAotICAgICAgICAgICIwLjEyMDAyMiwgMC4xNDE3MzMsIDAuMzQwNDM5LCAwLjY3NDE1NSwgMS4wMDgxNCwgMS43ODczNCwgMi4yMzIyNSIsIFwKLSAgICAgICAgICAiMC4xMTk4OTEsIDAuMTQxNzk1LCAwLjM0MDQzNywgMC42NzQxMzEsIDEuMDA3OTYsIDEuNzg3MjUsIDIuMjMyMDUiLCBcCi0gICAgICAgICAgIjAuMTE5ODczLCAwLjE0MTc3OCwgMC4zNDA0MTMsIDAuNjc0MTYzLCAxLjAwNzksIDEuNzg2MTgsIDIuMjMyNzciKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTM0MjE0LCAwLjE0Mzk2MSwgMC4yMzEwODUsIDAuMzc2NDA0LCAwLjUyMTM1OSwgMC44NjAwNDQsIDEuMDUzMDciLCBcCi0gICAgICAgICAgIjAuMTQyMzEsIDAuMTUyMDY0LCAwLjIzOTE4NCwgMC4zODQ0ODUsIDAuNTI5NDg5LCAwLjg2ODE2NSwgMS4wNjExNSIsIFwKLSAgICAgICAgICAiMC4xNTA5OTEsIDAuMTYwNzM3LCAwLjI0Nzg0NSwgMC4zOTI4NjEsIDAuNTM4MjIzLCAwLjg3NjcsIDEuMDcwNTEiLCBcCi0gICAgICAgICAgIjAuMTU3NDM2LCAwLjE2NzE4OCwgMC4yNTQyOTEsIDAuMzk5MzExLCAwLjU0NDY2NSwgMC44ODMxMjYsIDEuMDc2OTYiLCBcCi0gICAgICAgICAgIjAuMTYyNTQ1LCAwLjE3MjI5MSwgMC4yNTkzODgsIDAuNDA0NDgsIDAuNTQ5NjE3LCAwLjg4ODExMywgMS4wODE5MyIsIFwKLSAgICAgICAgICAiMC4xNjk2NzMsIDAuMTc5Mzc2LCAwLjI2NjQ2MywgMC40MTE4OTIsIDAuNTU2NjQ0LCAwLjg5NTczMywgMS4wODg5NSIsIFwKLSAgICAgICAgICAiMC4xNzQ4MSwgMC4xODQ1NTIsIDAuMjcxNjk4LCAwLjQxNzA3OCwgMC41NjE4NjgsIDAuOTAwNTY2LCAxLjA5NDIzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwODk1MiwgMC4xMjg0MzksIDAuMzA1NTM1LCAwLjYwNDczMywgMC45MDM1NTQsIDEuNjAxNzEsIDIuMDAwMzkiLCBcCi0gICAgICAgICAgIjAuMTA4OTE4LCAwLjEyODQ2MSwgMC4zMDU1OTIsIDAuNjA0NzEzLCAwLjkwMzU1MSwgMS42MDE2OCwgMi4wMDAyNyIsIFwKLSAgICAgICAgICAiMC4xMDg5NDYsIDAuMTI3NTc0LCAwLjMwNTQ0NiwgMC42MDM4MzcsIDAuOTAzNTc4LCAxLjYwMTczLCAyLjAwMDM4IiwgXAotICAgICAgICAgICIwLjEwODk0NSwgMC4xMjc4NzksIDAuMzA1NjM2LCAwLjYwNDE3NiwgMC45MDM1NjEsIDEuNjAxNjYsIDIuMDAwMjUiLCBcCi0gICAgICAgICAgIjAuMTA4OTE3LCAwLjEyODQ3OCwgMC4zMDU3OTYsIDAuNjAzODM1LCAwLjkwMzU3LCAxLjYwMTc2LCAyLjAwMDQiLCBcCi0gICAgICAgICAgIjAuMTA4OTM1LCAwLjEyODQ1MywgMC4zMDUzNzgsIDAuNjA0NjE3LCAwLjkwMzYzMiwgMS42MDE3MywgMi4wMDA1MyIsIFwKLSAgICAgICAgICAiMC4xMDkwMjIsIDAuMTI4NDY0LCAwLjMwNTk2MywgMC42MDQ2MzMsIDAuOTAzNTIxLCAxLjYwMTc3LCAyLjAwMDQ5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjY2OSwgMC4wMDY2NzEsIDAuMDA2Njc0LCAwLjAwNjY3NiwgMC4wMDY2NzcsIDAuMDA2Njc3LCAwLjAwNjY3OCIsIFwKLSAgICAgICAgICAiMC4wMDY2NjYsIDAuMDA2NjY4LCAwLjAwNjY3MiwgMC4wMDY2NzQsIDAuMDA2Njc0LCAwLjAwNjY3NSwgMC4wMDY2NzUiLCBcCi0gICAgICAgICAgIjAuMDA2NzAyLCAwLjAwNjcwMywgMC4wMDY3MDgsIDAuMDA2NzA5LCAwLjAwNjcxLCAwLjAwNjcxMSwgMC4wMDY3MTEiLCBcCi0gICAgICAgICAgIjAuMDA2NzY0LCAwLjAwNjc2NiwgMC4wMDY3NywgMC4wMDY3NzEsIDAuMDA2NzcyLCAwLjAwNjc3MiwgMC4wMDY3NzMiLCBcCi0gICAgICAgICAgIjAuMDA2ODMsIDAuMDA2ODMxLCAwLjAwNjgzNiwgMC4wMDY4MzgsIDAuMDA2ODM4LCAwLjAwNjgzOSwgMC4wMDY4MzkiLCBcCi0gICAgICAgICAgIjAuMDA2OTQyLCAwLjAwNjkzMywgMC4wMDY5NDcsIDAuMDA2OTQ5LCAwLjAwNjk1LCAwLjAwNjk1LCAwLjAwNjk1MSIsIFwKLSAgICAgICAgICAiMC4wMDcwMzMsIDAuMDA3MDMsIDAuMDA3MDM2LCAwLjAwNzA0LCAwLjAwNzAzOCwgMC4wMDcwMzgsIDAuMDA3MDM5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2NjU4LCAwLjAwNjY2LCAwLjAwNjY2NCwgMC4wMDY2NjUsIDAuMDA2NjY2LCAwLjAwNjY2NiwgMC4wMDY2NjYiLCBcCi0gICAgICAgICAgIjAuMDA2NjY0LCAwLjAwNjY2NiwgMC4wMDY2NywgMC4wMDY2NzEsIDAuMDA2NjcyLCAwLjAwNjY3MywgMC4wMDY2NzMiLCBcCi0gICAgICAgICAgIjAuMDA2NzEyLCAwLjAwNjcxMywgMC4wMDY3MTcsIDAuMDA2NzE5LCAwLjAwNjcyLCAwLjAwNjcyLCAwLjAwNjcyMSIsIFwKLSAgICAgICAgICAiMC4wMDY3OCwgMC4wMDY3ODEsIDAuMDA2Nzg1LCAwLjAwNjc4NywgMC4wMDY3ODgsIDAuMDA2Nzg4LCAwLjAwNjc4OCIsIFwKLSAgICAgICAgICAiMC4wMDY4NTIsIDAuMDA2ODUzLCAwLjAwNjg1OCwgMC4wMDY4NTksIDAuMDA2ODYsIDAuMDA2ODYsIDAuMDA2ODYxIiwgXAotICAgICAgICAgICIwLjAwNjk2OSwgMC4wMDY5NywgMC4wMDY5NjQsIDAuMDA2OTY2LCAwLjAwNjk3NiwgMC4wMDY5NjcsIDAuMDA2OTY3IiwgXAotICAgICAgICAgICIwLjAwNzA2NywgMC4wMDcwNzEsIDAuMDA3MDczLCAwLjAwNzA3NSwgMC4wMDcwNzYsIDAuMDA3MDc4LCAwLjAwNzA3OCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUU4pICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4yMDAzNzU7Ci0gICAgZnVuY3Rpb24gOiAiUUJJTlQiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5vbl91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcmlzaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE0MjE0MywgMC4xNTI2NTksIDAuMjQ3Mjg4LCAwLjQwNTE0OSwgMC41NjMwMDgsIDAuOTMxMjU5LCAxLjE0MTU0IiwgXAotICAgICAgICAgICIwLjE1MDI1MywgMC4xNjA3NywgMC4yNTU0NDQsIDAuNDEzMjYsIDAuNTcxMTIzLCAwLjkzOTMzNSwgMS4xNDk1OCIsIFwKLSAgICAgICAgICAiMC4xNTg5NTEsIDAuMTY5NDg0LCAwLjI2NDE1NCwgMC40MjE5ODUsIDAuNTc5ODUsIDAuOTQ4MDMsIDEuMTU4NTUiLCBcCi0gICAgICAgICAgIjAuMTY1MzkzLCAwLjE3NTkxNiwgMC4yNzA1OTksIDAuNDI4NDI5LCAwLjU4NjI5NCwgMC45NTQ0NzcsIDEuMTY1IiwgXAotICAgICAgICAgICIwLjE3MDQ2MywgMC4xODA5ODUsIDAuMjc1NjYxLCAwLjQzMzQ4MSwgMC41OTEzMTgsIDAuOTU5NTIsIDEuMTcwMDIiLCBcCi0gICAgICAgICAgIjAuMTc3NjI2LCAwLjE4ODE0NSwgMC4yODI4MjQsIDAuNDQwNjMxLCAwLjU5ODQ0MSwgMC45NjY3OTcsIDEuMTc3MTQiLCBcCi0gICAgICAgICAgIjAuMTgyNzczLCAwLjE5MzI4NSwgMC4yODc5NzgsIDAuNDQ1ODc1LCAwLjYwMzYxNCwgMC45NzE4MjIsIDEuMTgyMzIiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTE2MjgyLCAwLjEzODM4OSwgMC4zMzc4MDgsIDAuNjcwNjAzLCAxLjAwMzA0LCAxLjc3ODk2LCAyLjIyMjM3IiwgXAotICAgICAgICAgICIwLjExNjI4MiwgMC4xMzgzODgsIDAuMzM3ODA1LCAwLjY3MDU4MiwgMS4wMDMwNSwgMS43Nzg5NSwgMi4yMjIwMyIsIFwKLSAgICAgICAgICAiMC4xMTYyODMsIDAuMTM4MzksIDAuMzM3ODA3LCAwLjY3MDMwOSwgMS4wMDMwNiwgMS43Nzg5NiwgMi4yMjIzNiIsIFwKLSAgICAgICAgICAiMC4xMTYyOCwgMC4xMzgzODksIDAuMzM3ODgyLCAwLjY3MDMxLCAxLjAwMzA2LCAxLjc3ODk3LCAyLjIyMjAzIiwgXAotICAgICAgICAgICIwLjExNjI4MSwgMC4xMzgzODksIDAuMzM3OTQ1LCAwLjY3MDMzMSwgMS4wMDMwNSwgMS43Nzg5NywgMi4yMjIzNiIsIFwKLSAgICAgICAgICAiMC4xMTYyODUsIDAuMTM4MzkyLCAwLjMzNzc5NSwgMC42NzA1NzUsIDEuMDAzMDQsIDEuNzc4OTYsIDIuMjIyMzUiLCBcCi0gICAgICAgICAgIjAuMTE2MjU3LCAwLjEzODQwNywgMC4zMzgwNjIsIDAuNjcwNTcyLCAxLjAwMjk5LCAxLjc3ODk2LCAyLjIyMjM1Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEyODE4MSwgMC4xMzc4MjgsIDAuMjI0NjQ4LCAwLjM2OTQwNSwgMC41MTQwMzQsIDAuODUxNjMzLCAxLjA0NDYiLCBcCi0gICAgICAgICAgIjAuMTM2MjA2LCAwLjE0NTg1MywgMC4yMzI2OCwgMC4zNzczNjgsIDAuNTIyMDYyLCAwLjg1OTY0OCwgMS4wNTI2NCIsIFwKLSAgICAgICAgICAiMC4xNDQ3MDEsIDAuMTU0MzQ4LCAwLjI0MTE3NywgMC4zODU4NjQsIDAuNTMwNTU2LCAwLjg2ODEyMSwgMS4wNjEwOSIsIFwKLSAgICAgICAgICAiMC4xNTEwMTMsIDAuMTYwNjU5LCAwLjI0NzQ4OSwgMC4zOTIxNzgsIDAuNTM2ODY3LCAwLjg3NDQ2OSwgMS4wNjczNSIsIFwKLSAgICAgICAgICAiMC4xNTU5NzEsIDAuMTY1NjE5LCAwLjI1MjQwOCwgMC4zOTcwOTcsIDAuNTQxODI2LCAwLjg3OTUwMiwgMS4wNzI0OCIsIFwKLSAgICAgICAgICAiMC4xNjMwMjQsIDAuMTcyNjczLCAwLjI1OTUwOCwgMC40MDQxMTIsIDAuNTQ4ODgsIDAuODg2NDA4LCAxLjA3OTM3IiwgXAotICAgICAgICAgICIwLjE2ODA4LCAwLjE3NzcyNCwgMC4yNjQ1ODcsIDAuNDA5MjM0LCAwLjU1NDAyNCwgMC44OTE1NzcsIDEuMDg0NTEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTA0MDI3LCAwLjEyMzg5NywgMC4zMDIyNzEsIDAuNTk5ODg5LCAwLjg5NzMwNCwgMS41OTE0NiwgMS45ODgzNSIsIFwKLSAgICAgICAgICAiMC4xMDQwMjgsIDAuMTIzODgzLCAwLjMwMjIsIDAuNTk5ODA0LCAwLjg5NzI4NSwgMS41OTE2MSwgMS45ODgwOCIsIFwKLSAgICAgICAgICAiMC4xMDQwMjgsIDAuMTIzODgzLCAwLjMwMjE5OSwgMC41OTk4MDEsIDAuODk3MjgyLCAxLjU5MTYxLCAxLjk4ODI0IiwgXAotICAgICAgICAgICIwLjEwNDAyNywgMC4xMjM4OTQsIDAuMzAyMjA3LCAwLjU5OTgwNiwgMC44OTczNzgsIDEuNTkxNjEsIDEuOTg4MzgiLCBcCi0gICAgICAgICAgIjAuMTA0MDMyLCAwLjEyMzg3OCwgMC4zMDIyNTUsIDAuNTk5ODY3LCAwLjg5NzQzNSwgMS41OTE1MSwgMS45ODgzNSIsIFwKLSAgICAgICAgICAiMC4xMDQwOTYsIDAuMTIzODc0LCAwLjMwMjMzMSwgMC41OTk4NzEsIDAuODk3NDY0LCAxLjU5MTcyLCAxLjk4ODQzIiwgXAotICAgICAgICAgICIwLjEwMzkzNiwgMC4xMjM2NjksIDAuMzAyMzc0LCAwLjU5OTgyNywgMC44OTc0MTgsIDEuNTkxNywgMS45ODg0NCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDY2NTgsIDAuMDA2NjYsIDAuMDA2NjY0LCAwLjAwNjY2NSwgMC4wMDY2NjYsIDAuMDA2NjY2LCAwLjAwNjY2NiIsIFwKLSAgICAgICAgICAiMC4wMDY2NjQsIDAuMDA2NjY2LCAwLjAwNjY3LCAwLjAwNjY3MSwgMC4wMDY2NzIsIDAuMDA2NjczLCAwLjAwNjY3MyIsIFwKLSAgICAgICAgICAiMC4wMDY3MTIsIDAuMDA2NzEzLCAwLjAwNjcxNywgMC4wMDY3MTksIDAuMDA2NzIsIDAuMDA2NzIsIDAuMDA2NzIxIiwgXAotICAgICAgICAgICIwLjAwNjc4LCAwLjAwNjc4MSwgMC4wMDY3ODUsIDAuMDA2Nzg3LCAwLjAwNjc4OCwgMC4wMDY3ODgsIDAuMDA2Nzg4IiwgXAotICAgICAgICAgICIwLjAwNjg1MiwgMC4wMDY4NTMsIDAuMDA2ODU4LCAwLjAwNjg1OSwgMC4wMDY4NiwgMC4wMDY4NiwgMC4wMDY4NjEiLCBcCi0gICAgICAgICAgIjAuMDA2OTY5LCAwLjAwNjk3LCAwLjAwNjk2NCwgMC4wMDY5NjYsIDAuMDA2OTc2LCAwLjAwNjk2NywgMC4wMDY5NjciLCBcCi0gICAgICAgICAgIjAuMDA3MDY3LCAwLjAwNzA3MSwgMC4wMDcwNzMsIDAuMDA3MDc1LCAwLjAwNzA3NiwgMC4wMDcwNzgsIDAuMDA3MDc4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2NjY5LCAwLjAwNjY3MSwgMC4wMDY2NzQsIDAuMDA2Njc2LCAwLjAwNjY3NywgMC4wMDY2NzcsIDAuMDA2Njc4IiwgXAotICAgICAgICAgICIwLjAwNjY2NiwgMC4wMDY2NjgsIDAuMDA2NjcyLCAwLjAwNjY3NCwgMC4wMDY2NzQsIDAuMDA2Njc1LCAwLjAwNjY3NSIsIFwKLSAgICAgICAgICAiMC4wMDY3MDIsIDAuMDA2NzAzLCAwLjAwNjcwOCwgMC4wMDY3MDksIDAuMDA2NzEsIDAuMDA2NzExLCAwLjAwNjcxMSIsIFwKLSAgICAgICAgICAiMC4wMDY3NjQsIDAuMDA2NzY2LCAwLjAwNjc3LCAwLjAwNjc3MSwgMC4wMDY3NzIsIDAuMDA2NzcyLCAwLjAwNjc3MyIsIFwKLSAgICAgICAgICAiMC4wMDY4MywgMC4wMDY4MzEsIDAuMDA2ODM2LCAwLjAwNjgzOCwgMC4wMDY4MzgsIDAuMDA2ODM5LCAwLjAwNjgzOSIsIFwKLSAgICAgICAgICAiMC4wMDY5NDIsIDAuMDA2OTMzLCAwLjAwNjk0NywgMC4wMDY5NDksIDAuMDA2OTUsIDAuMDA2OTUsIDAuMDA2OTUxIiwgXAotICAgICAgICAgICIwLjAwNzAzMywgMC4wMDcwMywgMC4wMDcwMzYsIDAuMDA3MDQsIDAuMDA3MDM4LCAwLjAwNzAzOCwgMC4wMDcwMzkiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFJOKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2MzAzNzE7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjMwMzI5OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDYzMDM3MTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDg4NzEsIDAuMDA4ODc4LCAwLjAwODk1OSwgMC4wMDkwNywgMC4wMDkxOTMsIDAuMDA5NDIxLCAwLjAwOTYyMSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwOTIxOCwgMC4wMDkyMzEsIDAuMDA5MzEsIDAuMDA5NDE5LCAwLjAwOTU1NSwgMC4wMDk3NjksIDAuMDA5OTYyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJTRSA9PSAxJ2IwIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4xMDYyNSwgLTAuMTA3NSwgLTAuMTAxMjUsIC0wLjEwMTI1LCAtMC4wOTUsIC0wLjA5MTI1LCAtMC4wODg3NSIsIFwKLSAgICAgICAgICAiLTAuMTE3NSwgLTAuMTEyNSwgLTAuMTA2MjUsIC0wLjEwNjI1LCAtMC4xMDYyNSwgLTAuMTAyNSwgLTAuMSIsIFwKLSAgICAgICAgICAiLTAuMTIzNzUsIC0wLjExODc1LCAtMC4xMTI1LCAtMC4xMTI1LCAtMC4xMDYyNSwgLTAuMTA4NzUsIC0wLjEwNjI1IiwgXAotICAgICAgICAgICItMC4xMjM3NSwgLTAuMTE4NzUsIC0wLjExODc1LCAtMC4xMTI1LCAtMC4xMTI1LCAtMC4xMDg3NSwgLTAuMTA2MjUiLCBcCi0gICAgICAgICAgIi0wLjEzLCAtMC4xMjUsIC0wLjExODc1LCAtMC4xMTg3NSwgLTAuMTE4NzUsIC0wLjExNSwgLTAuMTEyNSIsIFwKLSAgICAgICAgICAiLTAuMTMzNzUsIC0wLjEyODc1LCAtMC4xMjg3NSwgLTAuMTIyNSwgLTAuMTIyNSwgLTAuMTE4NzUsIC0wLjExNjI1IiwgXAotICAgICAgICAgICItMC4xMzYyNSwgLTAuMTMxMjUsIC0wLjEzMTI1LCAtMC4xMjUsIC0wLjEyNSwgLTAuMTIxMjUsIC0wLjExODc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDUsIC0wLjA0NSwgLTAuMDM4NzUsIC0wLjAzMjUsIC0wLjAyNjI1LCAtMC4wMjI1LCAtMC4wMiIsIFwKLSAgICAgICAgICAiLTAuMDYxMjUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzMzc1LCAtMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjA2NzUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjA0Mzc1LCAtMC4wNCwgLTAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjA2NzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjA0LCAtMC4wMzc1IiwgXAotICAgICAgICAgICItMC4wNzM3NSwgLTAuMDY4NzUsIC0wLjA1NjI1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjA0NjI1LCAtMC4wMzc1IiwgXAotICAgICAgICAgICItMC4wNzc1LCAtMC4wNzI1LCAtMC4wNjYyNSwgLTAuMDYsIC0wLjA1Mzc1LCAtMC4wNSwgLTAuMDQ3NSIsIFwKLSAgICAgICAgICAiLTAuMDgsIC0wLjA3NSwgLTAuMDY4NzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNTI1LCAtMC4wNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIVNFIjsKLSAgICAgIHNkZl9jb25kIDogIlNFID09IDEnYjAiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEzMTI1LCAwLjEyNjI1LCAwLjEyLCAwLjExMzc1LCAwLjExMzc1LCAwLjExLCAwLjEwNzUiLCBcCi0gICAgICAgICAgIjAuMTM2MjUsIDAuMTMxMjUsIDAuMTI1LCAwLjEyNSwgMC4xMTg3NSwgMC4xMTUsIDAuMTEyNSIsIFwKLSAgICAgICAgICAiMC4xNDI1LCAwLjEzNzUsIDAuMTMxMjUsIDAuMTI1LCAwLjEyNSwgMC4xMjEyNSwgMC4xMTg3NSIsIFwKLSAgICAgICAgICAiMC4xNDg3NSwgMC4xMzc1LCAwLjEzNzUsIDAuMTMxMjUsIDAuMTMxMjUsIDAuMTI3NSwgMC4xMjUiLCBcCi0gICAgICAgICAgIjAuMTQ4NzUsIDAuMTQzNzUsIDAuMTM3NSwgMC4xMzc1LCAwLjEzMTI1LCAwLjEyNzUsIDAuMTI1IiwgXAotICAgICAgICAgICIwLjE1MjUsIDAuMTQ3NSwgMC4xNDEyNSwgMC4xNDEyNSwgMC4xMzUsIDAuMTMxMjUsIDAuMTI4NzUiLCBcCi0gICAgICAgICAgIjAuMTYxMjUsIDAuMTUsIDAuMTQzNzUsIDAuMTQzNzUsIDAuMTQzNzUsIDAuMTQsIDAuMTM3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4MTI1LCAwLjA3LCAwLjA2Mzc1LCAwLjA1NzUsIDAuMDUxMjUsIDAuMDQ3NSwgMC4wMzg3NSIsIFwKLSAgICAgICAgICAiMC4wODYyNSwgMC4wODEyNSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA2MjUsIDAuMDUyNSwgMC4wNSIsIFwKLSAgICAgICAgICAiMC4wOTI1LCAwLjA4NzUsIDAuMDc1LCAwLjA2ODc1LCAwLjA2ODc1LCAwLjA1ODc1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICIwLjA5ODc1LCAwLjA4NzUsIDAuMDgxMjUsIDAuMDc1LCAwLjA2ODc1LCAwLjA2NSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiMC4wOTg3NSwgMC4wOTM3NSwgMC4wODEyNSwgMC4wODEyNSwgMC4wNzUsIDAuMDY1LCAwLjA2MjUiLCBcCi0gICAgICAgICAgIjAuMTAyNSwgMC4wOTc1LCAwLjA5MTI1LCAwLjA4NSwgMC4wNzg3NSwgMC4wNjg3NSwgMC4wNjYyNSIsIFwKLSAgICAgICAgICAiMC4xMTEyNSwgMC4xLCAwLjA5Mzc1LCAwLjA4NzUsIDAuMDgxMjUsIDAuMDc3NSwgMC4wNjg3NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oU0UpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTI2MjY1OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTI2MjY1OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTI2MjU2OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNTYwNCwgMC4wMDU2MDgsIDAuMDA1NjgyLCAwLjAwNTc5NiwgMC4wMDU5NDYsIDAuMDA2MTYxLCAwLjAwNjMxMyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNzc4NSwgMC4wMDc4MDEsIDAuMDA3OTAzLCAwLjAwODA2NywgMC4wMDgyODYsIDAuMDA4NjY2LCAwLjAwODk4MiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRCYhRSYhUk4mU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX0VfRVFfMF9BTl9STl9FUV8wX0FOX1NJX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDMxMjUsIC0wLjAyNjI1LCAtMC4wMjYyNSwgLTAuMDIsIC0wLjAyLCAtMC4wMTYyNSwgLTAuMDEzNzUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMzEyNSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDI1LCAtMC4wMjEyNSwgLTAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDM3NSwgLTAuMDM3NSwgLTAuMDMzNzUsIC0wLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjA0Mzc1LCAtMC4wNCwgLTAuMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDYxMjUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjA0NjI1LCAtMC4wNDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDcxMjUsIC0wLjA2NjI1LCAtMC4wNjYyNSwgLTAuMDY2MjUsIC0wLjA2LCAtMC4wNTYyNSwgLTAuMDUzNzUiLCBcCi0gICAgICAgICAgIi0wLjA4LCAtMC4wNzUsIC0wLjA3NSwgLTAuMDY4NzUsIC0wLjA2ODc1LCAtMC4wNjUsIC0wLjA2MjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMTI1LCAtMC4wMDc1LCAtMC4wMDEyNSwgMC4wMDUsIDAuMDExMjUsIDAuMDE1LCAwLjAxNzUiLCBcCi0gICAgICAgICAgIi0wLjAxNzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLCAwLCAwLjAxLCAwLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMjUsIC0wLjAxMjUsIC0wLjAxMjUsIC0wLjAwNjI1LCAtMC4wMDI1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwODc1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxNSwgLTAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDUyNSwgLTAuMDQ3NSwgLTAuMDQxMjUsIC0wLjAzNSwgLTAuMDI4NzUsIC0wLjAyNSwgLTAuMDIyNSIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzNzUsIC0wLjAzMzc1LCAtMC4wMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUQmIUUmUk4mIVNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9FX0VRXzBfQU5fUk5fRVFfMV9BTl9TSV9FUV8wID09IDEnYjEiOwotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjA1LCAtMC4wNDUsIC0wLjAzODc1LCAtMC4wMzg3NSwgLTAuMDMyNSwgLTAuMDI4NzUsIC0wLjAyNjI1IiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDQzNzUsIC0wLjA0Mzc1LCAtMC4wNCwgLTAuMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDYxMjUsIC0wLjA1NjI1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjA1LCAtMC4wNDYyNSwgLTAuMDQzNzUiLCBcCi0gICAgICAgICAgIi0wLjA2NzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNTYyNSwgLTAuMDU2MjUsIC0wLjA1MjUsIC0wLjA1IiwgXAotICAgICAgICAgICItMC4wNjc1LCAtMC4wNjg3NSwgLTAuMDYyNSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA1MjUsIC0wLjA1IiwgXAotICAgICAgICAgICItMC4wNzc1LCAtMC4wNzI1LCAtMC4wNjYyNSwgLTAuMDY2MjUsIC0wLjA2LCAtMC4wNjI1LCAtMC4wNiIsIFwKLSAgICAgICAgICAiLTAuMDgsIC0wLjA3NSwgLTAuMDY4NzUsIC0wLjA2ODc1LCAtMC4wNjg3NSwgLTAuMDY1LCAtMC4wNjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIkQmRSZSTiYhU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8xX0FOX0VfRVFfMV9BTl9STl9FUV8xX0FOX1NJX0VRXzAgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDI1LCAtMC4wMiwgLTAuMDEzNzUsIC0wLjAwNzUsIC0wLjAwMTI1LCAwLjAwMjUsIDAuMDA1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwODc1LCAwIiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDE1LCAtMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAyMTI1LCAtMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMzEyNSwgLTAuMDIxMjUsIC0wLjAxODc1IiwgXAotICAgICAgICAgICItMC4wNTg3NSwgLTAuMDQ3NSwgLTAuMDQxMjUsIC0wLjA0MTI1LCAtMC4wMzUsIC0wLjAzMTI1LCAtMC4wMjI1IiwgXAotICAgICAgICAgICItMC4wNjEyNSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDMzNzUsIC0wLjAzMTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRCYhRSYhUk4mU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX0VfRVFfMF9BTl9STl9FUV8wX0FOX1NJX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDUsIDAuMDQ1LCAwLjAzODc1LCAwLjAzODc1LCAwLjAzMjUsIDAuMDI4NzUsIDAuMDI2MjUiLCBcCi0gICAgICAgICAgIjAuMDYxMjUsIDAuMDUsIDAuMDQzNzUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wNCwgMC4wMzc1IiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNSwgMC4wNSwgMC4wNDYyNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4wOCwgMC4wNjg3NSwgMC4wNjI1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDU4NzUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIjAuMDg2MjUsIDAuMDgxMjUsIDAuMDc1LCAwLjA2ODc1LCAwLjA2ODc1LCAwLjA2NSwgMC4wNjI1IiwgXAotICAgICAgICAgICIwLjA5NjI1LCAwLjA5MTI1LCAwLjA4NSwgMC4wNzg3NSwgMC4wNzg3NSwgMC4wNzUsIDAuMDcyNSIsIFwKLSAgICAgICAgICAiMC4xMDUsIDAuMSwgMC4wOTM3NSwgMC4wODc1LCAwLjA4NzUsIDAuMDgzNzUsIDAuMDgxMjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzc1LCAwLjAzMjUsIDAuMDI2MjUsIDAuMDIsIDAuMDEzNzUsIDAuMDAzNzUsIDAuMDAxMjUiLCBcCi0gICAgICAgICAgIjAuMDQ4NzUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMjUsIDAuMDE4NzUsIDAuMDE1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICIwLjA1NSwgMC4wNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyMTI1LCAwLjAxODc1IiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDU2MjUsIDAuMDUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzM3NSwgMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMDczNzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNSwgMC4wNDM3NSwgMC4wNCwgMC4wMzc1IiwgXAotICAgICAgICAgICIwLjA4Mzc1LCAwLjA3ODc1LCAwLjA2NjI1LCAwLjA2LCAwLjA1Mzc1LCAwLjA1LCAwLjA0NzUiLCBcCi0gICAgICAgICAgIjAuMDkyNSwgMC4wODEyNSwgMC4wNzUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNTg3NSwgMC4wNTYyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUQmIUUmUk4mIVNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9FX0VRXzBfQU5fUk5fRVFfMV9BTl9TSV9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1NjI1LCAwLjA0NSwgMC4wMzg3NSwgMC4wMzI1LCAwLjAyNjI1LCAwLjAyMjUsIDAuMDEzNzUiLCBcCi0gICAgICAgICAgIjAuMDYxMjUsIDAuMDU2MjUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzc1LCAwLjAyNzUsIDAuMDI1IiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNSwgMC4wNDM3NSwgMC4wMzM3NSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4wNzM3NSwgMC4wNjg3NSwgMC4wNTYyNSwgMC4wNSwgMC4wNSwgMC4wNCwgMC4wMzc1IiwgXAotICAgICAgICAgICIwLjA4LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDUsIDAuMDQ2MjUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMDgzNzUsIDAuMDc4NzUsIDAuMDY2MjUsIDAuMDYsIDAuMDYsIDAuMDUsIDAuMDQ3NSIsIFwKLSAgICAgICAgICAiMC4wODYyNSwgMC4wODEyNSwgMC4wNzUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNTI1LCAwLjA1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJEJkUmUk4mIVNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMV9BTl9FX0VRXzFfQU5fUk5fRVFfMV9BTl9TSV9FUV8wID09IDEnYjEiOwotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2ODc1LCAwLjA1NzUsIDAuMDU3NSwgMC4wNTEyNSwgMC4wNTEyNSwgMC4wNDc1LCAwLjA0NSIsIFwKLSAgICAgICAgICAiMC4wNzM3NSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1NjI1LCAwLjA1MjUsIDAuMDUiLCBcCi0gICAgICAgICAgIjAuMDgsIDAuMDc1LCAwLjA2ODc1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDU4NzUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIjAuMDg2MjUsIDAuMDgxMjUsIDAuMDc1LCAwLjA2ODc1LCAwLjA2ODc1LCAwLjA2NSwgMC4wNjI1IiwgXAotICAgICAgICAgICIwLjA5MjUsIDAuMDgxMjUsIDAuMDgxMjUsIDAuMDc1LCAwLjA3NSwgMC4wNzEyNSwgMC4wNjg3NSIsIFwKLSAgICAgICAgICAiMC4wOTYyNSwgMC4wOTEyNSwgMC4wODUsIDAuMDc4NzUsIDAuMDc4NzUsIDAuMDc1LCAwLjA3MjUiLCBcCi0gICAgICAgICAgIjAuMDk4NzUsIDAuMDkzNzUsIDAuMDg3NSwgMC4wODEyNSwgMC4wODEyNSwgMC4wNzc1LCAwLjA3NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oU0kpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYxNDU5OTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MTMzOTk7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjE0NTk5OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzIyLCAwLjAwMzE5NSwgMC4wMDMyMTIsIDAuMDAzMjU3LCAwLjAwMzMxOSwgMC4wMDM0MjQsIDAuMDAzNTQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDYwMTQsIDAuMDA1OTk2LCAwLjAwNjAxLCAwLjAwNjA1NiwgMC4wMDYxMjMsIDAuMDA2MjIxLCAwLjAwNjMzNiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJTRSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMzc1LCAtMC4wMzI1LCAtMC4wMjYyNSwgLTAuMDI2MjUsIC0wLjAyLCAtMC4wMjI1LCAtMC4wMiIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAzMTI1LCAtMC4wMzEyNSwgLTAuMDI3NSwgLTAuMDI1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDQzNzUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzc1LCAtMC4wMzM3NSwgLTAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjA1NSwgLTAuMDUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDQzNzUsIC0wLjA0LCAtMC4wMzc1IiwgXAotICAgICAgICAgICItMC4wNjEyNSwgLTAuMDU2MjUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDUsIC0wLjA0NjI1LCAtMC4wNDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDcxMjUsIC0wLjA2NjI1LCAtMC4wNjYyNSwgLTAuMDYsIC0wLjA2LCAtMC4wNTYyNSwgLTAuMDUzNzUiLCBcCi0gICAgICAgICAgIi0wLjA3Mzc1LCAtMC4wNzUsIC0wLjA2ODc1LCAtMC4wNjg3NSwgLTAuMDYyNSwgLTAuMDY1LCAtMC4wNjI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDE4NzUsIC0wLjAxMzc1LCAtMC4wMDc1LCAtMC4wMDEyNSwgMC4wMDUsIDAuMDA4NzUsIDAuMDExMjUiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAsIDAuMDAzNzUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgLTAuMDAyNSwgMCIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDg3NSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTUsIC0wLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjA0NjI1LCAtMC4wNDEyNSwgLTAuMDM1LCAtMC4wMjg3NSwgLTAuMDI4NzUsIC0wLjAxODc1LCAtMC4wMTYyNSIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAyNzUsIC0wLjAyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiU0UiOwotICAgICAgc2RmX2NvbmQgOiAiU0UgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU2MjUsIDAuMDUxMjUsIDAuMDQ1LCAwLjAzODc1LCAwLjAzODc1LCAwLjAzNSwgMC4wMzI1IiwgXAotICAgICAgICAgICIwLjA2MTI1LCAwLjA1NjI1LCAwLjA1LCAwLjA0Mzc1LCAwLjA0Mzc1LCAwLjA0LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIjAuMDY3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1NjI1LCAwLjA1LCAwLjA0NjI1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjA4LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNTI1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICIwLjA4NjI1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA2NSwgMC4wNjI1IiwgXAotICAgICAgICAgICIwLjA5LCAwLjA4NSwgMC4wNzg3NSwgMC4wNzg3NSwgMC4wNzI1LCAwLjA2ODc1LCAwLjA2NjI1IiwgXAotICAgICAgICAgICIwLjA5ODc1LCAwLjA5Mzc1LCAwLjA4NzUsIDAuMDgxMjUsIDAuMDgxMjUsIDAuMDc3NSwgMC4wNzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDM3NSwgMC4wMzg3NSwgMC4wMzI1LCAwLjAyNjI1LCAwLjAyLCAwLjAxLCAwLjAwNzUiLCBcCi0gICAgICAgICAgIjAuMDQ4NzUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMjUsIDAuMDIxMjUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4wNjEyNSwgMC4wNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyNzUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMDY3NSwgMC4wNTYyNSwgMC4wNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzMzc1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiMC4wNzM3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1LCAwLjA0Mzc1LCAwLjA0LCAwLjAzMTI1IiwgXAotICAgICAgICAgICIwLjA3NzUsIDAuMDcyNSwgMC4wNiwgMC4wNiwgMC4wNTM3NSwgMC4wNDM3NSwgMC4wNDEyNSIsIFwKLSAgICAgICAgICAiMC4wODYyNSwgMC4wNzUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNTI1LCAwLjA0Mzc1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogU0VERkZYMiAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChTRURGRlgyKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDEuNDkxOTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBmZiAoTjMwLE5FVDUzNikgewotICAgIG5leHRfc3RhdGUgOiAiKChTRSBTSSkgKyAoIVNFICgoRSBEKSArICghRSAoISghTjMwKSkpKSkpIjsKLSAgICBjbG9ja2VkX29uIDogIkNLIjsKLSAgfQotICBwaW4oQ0spICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYyMzU3NTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MjM1NDg7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjIzNTc1OwotICAgIGNsb2NrIDogdHJ1ZTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDM4MDYsIDAuMDAzOCwgMC4wMDM4NzMsIDAuMDAzOTcsIDAuMDA0MDkyLCAwLjAwNDMyLCAwLjAwNDUwMiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNzU0LCAwLjAwNzU0LCAwLjAwNzYyOSwgMC4wMDc3NDIsIDAuMDA3ODgzLCAwLjAwODE1NCwgMC4wMDg0NDUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFEJiFFJlNFJiFTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fRV9FUV8wX0FOX1NFX0VRXzFfQU5fU0lfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjExODc0NSwgMC4xMjY5MTIsIDAuMTM1OTAzLCAwLjE0MjcyNywgMC4xNDgyMzUsIDAuMTU1NjI3LCAwLjE2MTA0NyIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDYzMjgsIDAuMDcxMzkzLCAwLjA4MDM0MiwgMC4wODcwMiwgMC4wOTI0MjYsIDAuMDk5NTA0LCAwLjEwNDc5Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihEKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2ODA3MjY7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjc5NzAzOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDY4MDcyNjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDM5MjMsIDAuMDAzOTA0LCAwLjAwMzkxMywgMC4wMDM5NTIsIDAuMDA0MDA1LCAwLjAwNDEyNSwgMC4wMDQyMzEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDgzMDMsIDAuMDA4MjkzLCAwLjAwODMwMiwgMC4wMDgzNCwgMC4wMDgzODksIDAuMDA4NTAzLCAwLjAwODYwMiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJFJiFTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJFX0VRXzFfQU5fU0VfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wNjI1LCAtMC4wNTc1LCAtMC4wNTEyNSwgLTAuMDUxMjUsIC0wLjA1MTI1LCAtMC4wNDc1LCAtMC4wNDUiLCBcCi0gICAgICAgICAgIi0wLjA2NzUsIC0wLjA2MjUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNTYyNSwgLTAuMDUyNSwgLTAuMDUiLCBcCi0gICAgICAgICAgIi0wLjA3Mzc1LCAtMC4wNjg3NSwgLTAuMDY4NzUsIC0wLjA2ODc1LCAtMC4wNjI1LCAtMC4wNTg3NSwgLTAuMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDgsIC0wLjA3NSwgLTAuMDc1LCAtMC4wNzUsIC0wLjA2ODc1LCAtMC4wNzEyNSwgLTAuMDY4NzUiLCBcCi0gICAgICAgICAgIi0wLjA4NjI1LCAtMC4wODc1LCAtMC4wODEyNSwgLTAuMDgxMjUsIC0wLjA4MTI1LCAtMC4wNzc1LCAtMC4wNzUiLCBcCi0gICAgICAgICAgIi0wLjA5NjI1LCAtMC4wOTc1LCAtMC4wOTEyNSwgLTAuMDkxMjUsIC0wLjA5MTI1LCAtMC4wODc1LCAtMC4wODUiLCBcCi0gICAgICAgICAgIi0wLjEwNSwgLTAuMSwgLTAuMSwgLTAuMSwgLTAuMDkzNzUsIC0wLjA5NjI1LCAtMC4wOTM3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAzNzUsIC0wLjAzMjUsIC0wLjAyNjI1LCAtMC4wMiwgLTAuMDIsIC0wLjAxLCAtMC4wMDc1IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMjUsIC0wLjAyMTI1LCAtMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMzEyNSwgLTAuMDI3NSwgLTAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjA1NSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzc1LCAtMC4wMzM3NSwgLTAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjA2MTI1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wNDM3NSwgLTAuMDQsIC0wLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjA2NSwgLTAuMDYsIC0wLjA2LCAtMC4wNTM3NSwgLTAuMDUzNzUsIC0wLjA0Mzc1LCAtMC4wNDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDczNzUsIC0wLjA2ODc1LCAtMC4wNjI1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDUyNSwgLTAuMDUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIkUmIVNFIjsKLSAgICAgIHNkZl9jb25kIDogIkVfRVFfMV9BTl9TRV9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5Mzc1LCAwLjA4MjUsIDAuMDc2MjUsIDAuMDcsIDAuMDcsIDAuMDY2MjUsIDAuMDYzNzUiLCBcCi0gICAgICAgICAgIjAuMDk4NzUsIDAuMDg3NSwgMC4wODEyNSwgMC4wODEyNSwgMC4wNzUsIDAuMDcxMjUsIDAuMDY4NzUiLCBcCi0gICAgICAgICAgIjAuMTA1LCAwLjEsIDAuMDkzNzUsIDAuMDg3NSwgMC4wODc1LCAwLjA4Mzc1LCAwLjA4MTI1IiwgXAotICAgICAgICAgICIwLjExMTI1LCAwLjEwNjI1LCAwLjEsIDAuMDkzNzUsIDAuMDkzNzUsIDAuMDksIDAuMDg3NSIsIFwKLSAgICAgICAgICAiMC4xMTc1LCAwLjExMjUsIDAuMTA2MjUsIDAuMSwgMC4xLCAwLjA5NjI1LCAwLjA5Mzc1IiwgXAotICAgICAgICAgICIwLjEzMzc1LCAwLjEyMjUsIDAuMTE2MjUsIDAuMTEsIDAuMTEsIDAuMTA2MjUsIDAuMTAzNzUiLCBcCi0gICAgICAgICAgIjAuMTM2MjUsIDAuMTMxMjUsIDAuMTI1LCAwLjExODc1LCAwLjExODc1LCAwLjExNSwgMC4xMTI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDgxMjUsIDAuMDcsIDAuMDYzNzUsIDAuMDU3NSwgMC4wNTEyNSwgMC4wNDc1LCAwLjAzODc1IiwgXAotICAgICAgICAgICIwLjA4NjI1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1MjUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMDkyNSwgMC4wODEyNSwgMC4wNzUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNTg3NSwgMC4wNSIsIFwKLSAgICAgICAgICAiMC4wOTg3NSwgMC4wODc1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIjAuMTA1LCAwLjA5Mzc1LCAwLjA4NzUsIDAuMDgxMjUsIDAuMDc1LCAwLjA3MTI1LCAwLjA2ODc1IiwgXAotICAgICAgICAgICIwLjExNSwgMC4xMDM3NSwgMC4wOTc1LCAwLjA5MTI1LCAwLjA4NSwgMC4wODEyNSwgMC4wNzI1IiwgXAotICAgICAgICAgICIwLjEyMzc1LCAwLjExMjUsIDAuMTA2MjUsIDAuMSwgMC4wOTM3NSwgMC4wODM3NSwgMC4wODEyNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNDMwNTE7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNDMwNTE7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNDI5Nzc7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA3ODEzLCAwLjAwNzgyOSwgMC4wMDc5MSwgMC4wMDgwMjksIDAuMDA4MTkxLCAwLjAwODQxNywgMC4wMDg2MTQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDk1ODYsIDAuMDA5NjE4LCAwLjAwOTcyMywgMC4wMDk4NzksIDAuMDEwMDk0LCAwLjAxMDQ1MiwgMC4wMTA3ODEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIVNFIjsKLSAgICAgIHNkZl9jb25kIDogIlNFID09IDEnYjAiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjA2MjUsIC0wLjA1NzUsIC0wLjA1NzUsIC0wLjA1MTI1LCAtMC4wNDUsIC0wLjA0MTI1LCAtMC4wMzI1IiwgXAotICAgICAgICAgICItMC4wNzM3NSwgLTAuMDY4NzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNTYyNSwgLTAuMDQ2MjUsIC0wLjA0Mzc1IiwgXAotICAgICAgICAgICItMC4wOCwgLTAuMDc1LCAtMC4wNjg3NSwgLTAuMDYyNSwgLTAuMDYyNSwgLTAuMDUyNSwgLTAuMDUiLCBcCi0gICAgICAgICAgIi0wLjA5MjUsIC0wLjA4MTI1LCAtMC4wNzUsIC0wLjA2ODc1LCAtMC4wNjI1LCAtMC4wNTg3NSwgLTAuMDU2MjUiLCBcCi0gICAgICAgICAgIi0wLjA5MjUsIC0wLjA4NzUsIC0wLjA4MTI1LCAtMC4wNzUsIC0wLjA2ODc1LCAtMC4wNTg3NSwgLTAuMDU2MjUiLCBcCi0gICAgICAgICAgIi0wLjEwMjUsIC0wLjA5MTI1LCAtMC4wODUsIC0wLjA3ODc1LCAtMC4wNzI1LCAtMC4wNjg3NSwgLTAuMDYiLCBcCi0gICAgICAgICAgIi0wLjEwNSwgLTAuMDkzNzUsIC0wLjA4NzUsIC0wLjA4MTI1LCAtMC4wNzUsIC0wLjA3MTI1LCAtMC4wNjI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDMxMjUsIC0wLjAyNjI1LCAtMC4wMiwgLTAuMDEzNzUsIC0wLjAxMzc1LCAtMC4wMSwgLTAuMDAxMjUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTUsIC0wLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAzMTI1LCAtMC4wMjEyNSwgLTAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjA1NSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDMzNzUsIC0wLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wNjEyNSwgLTAuMDU2MjUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjA0LCAtMC4wMzc1IiwgXAotICAgICAgICAgICItMC4wNzEyNSwgLTAuMDY2MjUsIC0wLjA2NjI1LCAtMC4wNiwgLTAuMDYsIC0wLjA1LCAtMC4wNDc1IiwgXAotICAgICAgICAgICItMC4wNzM3NSwgLTAuMDc1LCAtMC4wNjg3NSwgLTAuMDY4NzUsIC0wLjA2MjUsIC0wLjA1ODc1LCAtMC4wNTYyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIVNFIjsKLSAgICAgIHNkZl9jb25kIDogIlNFID09IDEnYjAiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4NzUsIDAuMDc2MjUsIDAuMDcsIDAuMDcsIDAuMDYzNzUsIDAuMDYsIDAuMDU3NSIsIFwKLSAgICAgICAgICAiMC4wOTI1LCAwLjA4NzUsIDAuMDgxMjUsIDAuMDc1LCAwLjA3NSwgMC4wNzEyNSwgMC4wNjg3NSIsIFwKLSAgICAgICAgICAiMC4xMDUsIDAuMDkzNzUsIDAuMDg3NSwgMC4wODc1LCAwLjA4MTI1LCAwLjA3NzUsIDAuMDc1IiwgXAotICAgICAgICAgICIwLjExMTI1LCAwLjEwNjI1LCAwLjEsIDAuMDkzNzUsIDAuMDkzNzUsIDAuMDksIDAuMDg3NSIsIFwKLSAgICAgICAgICAiMC4xMjM3NSwgMC4xMTI1LCAwLjEwNjI1LCAwLjEwNjI1LCAwLjEsIDAuMDk2MjUsIDAuMDkzNzUiLCBcCi0gICAgICAgICAgIjAuMTMzNzUsIDAuMTI4NzUsIDAuMTIyNSwgMC4xMTYyNSwgMC4xMTYyNSwgMC4xMTI1LCAwLjExIiwgXAotICAgICAgICAgICIwLjE0ODc1LCAwLjEzNzUsIDAuMTMxMjUsIDAuMTI1LCAwLjEyNSwgMC4xMjEyNSwgMC4xMTg3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4MTI1LCAwLjA3NjI1LCAwLjA3LCAwLjA3LCAwLjA2Mzc1LCAwLjA2LCAwLjA2Mzc1IiwgXAotICAgICAgICAgICIwLjA4NjI1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNzUsIDAuMDc1LCAwLjA3MTI1LCAwLjA2ODc1IiwgXAotICAgICAgICAgICIwLjA5MjUsIDAuMDg3NSwgMC4wODEyNSwgMC4wODEyNSwgMC4wODEyNSwgMC4wNzc1LCAwLjA3NSIsIFwKLSAgICAgICAgICAiMC4wOTg3NSwgMC4wOTM3NSwgMC4wODc1LCAwLjA4NzUsIDAuMDgxMjUsIDAuMDgzNzUsIDAuMDgxMjUiLCBcCi0gICAgICAgICAgIjAuMDk4NzUsIDAuMDkzNzUsIDAuMDkzNzUsIDAuMDg3NSwgMC4wODc1LCAwLjA4Mzc1LCAwLjA4MTI1IiwgXAotICAgICAgICAgICIwLjEwMjUsIDAuMDk3NSwgMC4wOTc1LCAwLjA5MTI1LCAwLjA5MTI1LCAwLjA4NzUsIDAuMDg1IiwgXAotICAgICAgICAgICIwLjExMTI1LCAwLjEwNjI1LCAwLjEsIDAuMDkzNzUsIDAuMDkzNzUsIDAuMDksIDAuMDg3NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjY4ODA0OTsKLSAgICBmdW5jdGlvbiA6ICJOMzAiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5vbl91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcmlzaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4NDIzOCwgMC4xNjE5NDcsIDAuMjIzNjUxLCAwLjMwMTEwNCwgMC4zNzg2MjMsIDAuNDU1MzI5LCAwLjUzMjMyMyIsIFwKLSAgICAgICAgICAiMC4wOTIzNTUsIDAuMTcwMDQ2LCAwLjIzMjEyOSwgMC4zMDkyMzQsIDAuMzg2NjY1LCAwLjQ2MzYyNywgMC41NDA0IiwgXAotICAgICAgICAgICIwLjEwMTMwMiwgMC4xNzg5ODksIDAuMjQwNjksIDAuMzE4MzksIDAuMzk1NjQ5LCAwLjQ3MjM5NSwgMC41NDkzNTQiLCBcCi0gICAgICAgICAgIjAuMTA3OTY0LCAwLjE4NTY4OCwgMC4yNDczODksIDAuMzI0ODM0LCAwLjQwMjMyOSwgMC40NzkwOTgsIDAuNTU2MDI1IiwgXAotICAgICAgICAgICIwLjExMzQwNywgMC4xOTExMTYsIDAuMjUzMDU4LCAwLjMzMDMxNCwgMC40MDc2ODgsIDAuNDg0NTg0LCAwLjU2MTQ4OSIsIFwKLSAgICAgICAgICAiMC4xMjA2NjQsIDAuMTk4Mzg1LCAwLjI2MDA2NSwgMC4zMzc1MjIsIDAuNDE0NTIyLCAwLjQ5MTczNiwgMC41Njg2MTUiLCBcCi0gICAgICAgICAgIjAuMTI2MSwgMC4yMDM4MDYsIDAuMjY1NTg0LCAwLjM0MzE2NSwgMC40MjAzNTksIDAuNDk3MjU2LCAwLjU3NDM4MiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDEwNSwgMC4yMDAzNjYsIDAuMzI5OTIzLCAwLjQ5MjcwMiwgMC42NTQ4MDcsIDAuODE3OTc5LCAwLjk4MDczNCIsIFwKLSAgICAgICAgICAiMC4wNDEwMDgsIDAuMjAwNjg2LCAwLjMyOTkxMywgMC40OTI3MTUsIDAuNjU0NDk0LCAwLjgxNjYzOSwgMC45ODA3NDgiLCBcCi0gICAgICAgICAgIjAuMDQwOTg4LCAwLjIwMDYxNiwgMC4zMjk5MiwgMC40OTI3LCAwLjY1NDM4NywgMC44MTc5NzksIDAuOTgwNzEzIiwgXAotICAgICAgICAgICIwLjA0MTA0NiwgMC4yMDA3MDYsIDAuMzI5OTI4LCAwLjQ5MjcwNCwgMC42NTQ0NCwgMC44MTc5NzQsIDAuOTgwNzM4IiwgXAotICAgICAgICAgICIwLjA0MDgyOSwgMC4yMDA2OTUsIDAuMzI5OTUxLCAwLjQ5MjcxOCwgMC42NTUyMDEsIDAuODE3OTY1LCAwLjk4MDcyMiIsIFwKLSAgICAgICAgICAiMC4wNDEwMjYsIDAuMjAwNzIsIDAuMzI5OTQzLCAwLjQ5MjY3MiwgMC42NTQ3NTcsIDAuODE3ODE1LCAwLjk4MDYxMiIsIFwKLSAgICAgICAgICAiMC4wNDEwNSwgMC4yMDA3NjksIDAuMzI5OTI3LCAwLjQ5MjY2MywgMC42NTQ3NDgsIDAuODE3NDE3LCAwLjk4MDYwOCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTM0OTcsIDAuMTcwMTQ0LCAwLjIzMTI0MywgMC4zMDY4MDcsIDAuMzgyOTg3LCAwLjQ1ODc0NSwgMC41MzQ4NCIsIFwKLSAgICAgICAgICAiMC4xMDE2NzQsIDAuMTc4MzEsIDAuMjM5NDMzLCAwLjMxNTEyOSwgMC4zOTEyMTYsIDAuNDY2OTAyLCAwLjU0MzE2MyIsIFwKLSAgICAgICAgICAiMC4xMTA2NTMsIDAuMTg3MywgMC4yNDc4NzIsIDAuMzIzOTMxLCAwLjQwMDEzOCwgMC40NzU5MzMsIDAuNTUxODM1IiwgXAotICAgICAgICAgICIwLjExNzQ3NywgMC4xOTQxMjIsIDAuMjU1MjQ0LCAwLjMzMDY3MiwgMC40MDY5NywgMC40ODI3MDMsIDAuNTU4NjE4IiwgXAotICAgICAgICAgICIwLjEyMjk3MiwgMC4xOTk2MjQsIDAuMjYwNzMzLCAwLjMzNjE0MSwgMC40MTI1MDEsIDAuNDg4MjM1LCAwLjU2NDIyNiIsIFwKLSAgICAgICAgICAiMC4xMzA0NjIsIDAuMjA3MDk2LCAwLjI2ODExOCwgMC4zNDM5MDgsIDAuNDE5OTcsIDAuNDk1NjAyLCAwLjU3MTU3MyIsIFwKLSAgICAgICAgICAiMC4xMzU5NDUsIDAuMjEyNTkxLCAwLjI3MzY5MiwgMC4zNDk3OCwgMC40MjUzOTksIDAuNTAxMTI5LCAwLjU3NzM1OCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzk4ODIsIDAuMTk1NTA4LCAwLjMxOTIyOCwgMC40Nzg1NzMsIDAuNjM1NzExLCAwLjc5MjUwNywgMC45NTA2NTIiLCBcCi0gICAgICAgICAgIjAuMDM5OTQ0LCAwLjE5NTUzOSwgMC4zMjA4MzEsIDAuNDc4ODE5LCAwLjYzNTg2NywgMC43OTI2MDMsIDAuOTQ5NzY3IiwgXAotICAgICAgICAgICIwLjAzOTkwNCwgMC4xOTU1MjMsIDAuMzIwMjQ0LCAwLjQ3Nzk4LCAwLjYzNTgyNCwgMC43OTI0NTQsIDAuOTUwNzQ3IiwgXAotICAgICAgICAgICIwLjAzOTg3MywgMC4xOTYsIDAuMzIxNDY5LCAwLjQ3ODYzNywgMC42MzU3MjEsIDAuNzkzMSwgMC45NDk1NDQiLCBcCi0gICAgICAgICAgIjAuMDM5NzcyLCAwLjE5NTUxMiwgMC4zMTkyMzEsIDAuNDc3NjI1LCAwLjYzNTgxNywgMC43OTI0NjcsIDAuOTUxMTYiLCBcCi0gICAgICAgICAgIjAuMDM5OTA0LCAwLjE5NTUzNiwgMC4zMjE0NzMsIDAuNDc4NzUxLCAwLjYzNTY3MSwgMC43OTMwMDIsIDAuOTUwNzE5IiwgXAotICAgICAgICAgICIwLjAzOTg4NSwgMC4xOTU0OTQsIDAuMzIwNDE4LCAwLjQ3ODU4OSwgMC42MzU5MzMsIDAuNzkzNTc0LCAwLjk0OTg2NSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDc3MTgsIDAuMDA3Nzc2LCAwLjAwNzc4MywgMC4wMDc3ODcsIDAuMDA3Nzg5LCAwLjAwNzc5MSwgMC4wMDc3OTIiLCBcCi0gICAgICAgICAgIjAuMDA3NzEzLCAwLjAwNzc2OSwgMC4wMDc3NzYsIDAuMDA3NzgsIDAuMDA3NzgyLCAwLjAwNzc4MywgMC4wMDc3ODUiLCBcCi0gICAgICAgICAgIjAuMDA3NzQ4LCAwLjAwNzgwMywgMC4wMDc4MSwgMC4wMDc4MTUsIDAuMDA3ODE3LCAwLjAwNzgxOCwgMC4wMDc4MTgiLCBcCi0gICAgICAgICAgIjAuMDA3ODA0LCAwLjAwNzg2MiwgMC4wMDc4NywgMC4wMDc4NzQsIDAuMDA3ODc1LCAwLjAwNzg3NywgMC4wMDc4NzgiLCBcCi0gICAgICAgICAgIjAuMDA3ODczLCAwLjAwNzkzMSwgMC4wMDc5MzgsIDAuMDA3OTQyLCAwLjAwNzk0NSwgMC4wMDc5NDYsIDAuMDA3OTQ3IiwgXAotICAgICAgICAgICIwLjAwNzk3NCwgMC4wMDgwMywgMC4wMDgwMzcsIDAuMDA4MDQxLCAwLjAwODA0MywgMC4wMDgwNDUsIDAuMDA4MDQ1IiwgXAotICAgICAgICAgICIwLjAwODA2OCwgMC4wMDgxMjgsIDAuMDA4MTM1LCAwLjAwODEzOSwgMC4wMDgxNDEsIDAuMDA4MTQxLCAwLjAwODE0MSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwODI3NSwgMC4wMDgzMzgsIDAuMDA4MzQ1LCAwLjAwODM1LCAwLjAwODM1MSwgMC4wMDgzNTIsIDAuMDA4MzU0IiwgXAotICAgICAgICAgICIwLjAwODI3NCwgMC4wMDgzMzYsIDAuMDA4MzQ0LCAwLjAwODM0OSwgMC4wMDgzNTEsIDAuMDA4MzUyLCAwLjAwODM1MiIsIFwKLSAgICAgICAgICAiMC4wMDgzMjEsIDAuMDA4MzgzLCAwLjAwODM5LCAwLjAwODM5NSwgMC4wMDgzOTYsIDAuMDA4Mzk3LCAwLjAwODM5OSIsIFwKLSAgICAgICAgICAiMC4wMDgzODUsIDAuMDA4NDQ2LCAwLjAwODQ1NCwgMC4wMDg0NTgsIDAuMDA4NDYxLCAwLjAwODQ2MiwgMC4wMDg0NjEiLCBcCi0gICAgICAgICAgIjAuMDA4NDU5LCAwLjAwODUyMSwgMC4wMDg1MjksIDAuMDA4NTMzLCAwLjAwODUzNSwgMC4wMDg1MzYsIDAuMDA4NTM3IiwgXAotICAgICAgICAgICIwLjAwODU4MSwgMC4wMDg2NDUsIDAuMDA4NjQ1LCAwLjAwODY1NywgMC4wMDg2NTEsIDAuMDA4NjYsIDAuMDA4NjYxIiwgXAotICAgICAgICAgICIwLjAwODY4MywgMC4wMDg3NDUsIDAuMDA4NzQxLCAwLjAwODc1OSwgMC4wMDg3NDYsIDAuMDA4NzQ3LCAwLjAwODc2MyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUU4pICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC42NzkyMjc7Ci0gICAgZnVuY3Rpb24gOiAiTkVUNTM2IjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBub25fdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJpc2luZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTg3NDUsIDAuMTk3MzA3LCAwLjI1OTgwMSwgMC4zMzc5NSwgMC40MTYwOTUsIDAuNDk0MjM4LCAwLjU3MjQzNyIsIFwKLSAgICAgICAgICAiMC4xMjY5MTIsIDAuMjA1NDcyLCAwLjI2Nzk2OCwgMC4zNDYxMjEsIDAuNDI0MjYsIDAuNTAyNDA4LCAwLjU4MDU2MSIsIFwKLSAgICAgICAgICAiMC4xMzU5MDMsIDAuMjE0NDY1LCAwLjI3Njk1OSwgMC4zNTUxMjMsIDAuNDMzMjYzLCAwLjUxMTM5NSwgMC41ODk2MTQiLCBcCi0gICAgICAgICAgIjAuMTQyNzI3LCAwLjIyMTI4NCwgMC4yODM3NzgsIDAuMzYxOTMyLCAwLjQ0MDA2OSwgMC41MTgyMjQsIDAuNTk2NDQ3IiwgXAotICAgICAgICAgICIwLjE0ODIzNSwgMC4yMjY3OTcsIDAuMjg5MjkxLCAwLjM2NzQ0MSwgMC40NDU1ODksIDAuNTIzNzI5LCAwLjYwMTg4IiwgXAotICAgICAgICAgICIwLjE1NTYyNywgMC4yMzQxOTQsIDAuMjk2Njg1LCAwLjM3NDg2MSwgMC40NTI5NzksIDAuNTMxMTI0LCAwLjYwOTMzIiwgXAotICAgICAgICAgICIwLjE2MTA0NywgMC4yMzk3NTksIDAuMzAyMjYsIDAuMzgwMjU0LCAwLjQ1ODU0MiwgMC41MzY2ODIsIDAuNjE0ODY0Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0MjM1NiwgMC4yMDUzNTgsIDAuMzM4MjM2LCAwLjUwNTE3NSwgMC42NzE5ODUsIDAuODM5MjYyLCAxLjAwNjE2IiwgXAotICAgICAgICAgICIwLjA0MjM0NywgMC4yMDUzLCAwLjMzODIzNSwgMC41MDU0ODMsIDAuNjcyNDExLCAwLjgzOTI3NiwgMS4wMDYxNCIsIFwKLSAgICAgICAgICAiMC4wNDIzNTYsIDAuMjA1MzEsIDAuMzM4MjM2LCAwLjUwNTE5NywgMC42NzI0MSwgMC44MzkyNTcsIDEuMDA2MTMiLCBcCi0gICAgICAgICAgIjAuMDQyMzU2LCAwLjIwNTMsIDAuMzM4NTUyLCAwLjUwNDQ3OCwgMC42NzE5NzEsIDAuODM5MjY1LCAxLjAwNjIxIiwgXAotICAgICAgICAgICIwLjA0MjM1MiwgMC4yMDUzMTEsIDAuMzM4MjM2LCAwLjUwNTE2NiwgMC42NzI0MDgsIDAuODM5MjYsIDEuMDA2MiIsIFwKLSAgICAgICAgICAiMC4wNDIzMzUsIDAuMjA1MzMzLCAwLjMzODU0OSwgMC41MDU0NDgsIDAuNjcyMzI5LCAwLjgzOTE5OSwgMS4wMDYwNiIsIFwKLSAgICAgICAgICAiMC4wNDIzODYsIDAuMjA1MzE4LCAwLjMzODI0NSwgMC41MDQ5NTMsIDAuNjcyNDEyLCAwLjgzOTIwMSwgMS4wMDYxNCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTE4NzUsIDAuMTg4NTE0LCAwLjI0OTIwOCwgMC4zMjUxMDQsIDAuNDAxMDA5LCAwLjQ3NjkwMywgMC41NTI3MjYiLCBcCi0gICAgICAgICAgIjAuMTE5OTYxLCAwLjE5NjYwNSwgMC4yNTczMDgsIDAuMzMzMTg2LCAwLjQwOTA2MywgMC40ODQ5NjYsIDAuNTYwODI1IiwgXAotICAgICAgICAgICIwLjEyODkxNywgMC4yMDU1NjIsIDAuMjY2MjU1LCAwLjM0MjEzNywgMC40MTgwMTcsIDAuNDkzOTE5LCAwLjU2OTc4OCIsIFwKLSAgICAgICAgICAiMC4xMzU1ODcsIDAuMjEyMjM5LCAwLjI3MjkzNCwgMC4zNDg4MTUsIDAuNDI0Njk2LCAwLjUwMDU5NiwgMC41NzY0NTMiLCBcCi0gICAgICAgICAgIjAuMTQxMDI2LCAwLjIxNzY3MSwgMC4yNzgzODEsIDAuMzU0MjUzLCAwLjQzMDE2LCAwLjUwNjAwNCwgMC41ODE4NzgiLCBcCi0gICAgICAgICAgIjAuMTQ4MTc2LCAwLjIyNDgyNCwgMC4yODU1MjgsIDAuMzYxNDA2LCAwLjQzNzI5MywgMC41MTMxODksIDAuNTg5MDQxIiwgXAotICAgICAgICAgICIwLjE1MzczMiwgMC4yMzAzODEsIDAuMjkxMDc3LCAwLjM2Njk1OCwgMC40NDI4NjMsIDAuNTE4NzI2LCAwLjU5NDU4NSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDA5MzMsIDAuMTk0NTY0LCAwLjMyMDE4NywgMC40NzgwMzIsIDAuNjM1NjQsIDAuNzkzNzg1LCAwLjk1MTYwNyIsIFwKLSAgICAgICAgICAiMC4wNDA5MzEsIDAuMTk0NTY0LCAwLjMyMDE2NSwgMC40NzgwNDUsIDAuNjM1MjgyLCAwLjc5MjU2NiwgMC45NTE2MDEiLCBcCi0gICAgICAgICAgIjAuMDQwOTMxLCAwLjE5NDU2MywgMC4zMjAxODEsIDAuNDc4MDI2LCAwLjYzNTE3LCAwLjc5Mzc4OCwgMC45NTE1ODQiLCBcCi0gICAgICAgICAgIjAuMDQwOTIyLCAwLjE5NDU2MywgMC4zMjAyLCAwLjQ3ODAzNiwgMC42MzUyMjQsIDAuNzkzNzksIDAuOTUxNjAxIiwgXAotICAgICAgICAgICIwLjA0MDkyOCwgMC4xOTQ1NjQsIDAuMzIwMjkzLCAwLjQ3ODA0OCwgMC42MzU4OTcsIDAuNzkzNzc3LCAwLjk1MTU4NyIsIFwKLSAgICAgICAgICAiMC4wNDA5MywgMC4xOTQ0NzIsIDAuMzIwMjU5LCAwLjQ3Nzk3NiwgMC42MzU1MjgsIDAuNzkzNjAyLCAwLjk1MTQzNiIsIFwKLSAgICAgICAgICAiMC4wNDA5NzgsIDAuMTk0NTY1LCAwLjMyMDIzNywgMC40Nzc5NzUsIDAuNjM1NTQsIDAuNzkzMjc2LCAwLjk1MTQzNyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDgyNzUsIDAuMDA4MzM4LCAwLjAwODM0NSwgMC4wMDgzNSwgMC4wMDgzNTEsIDAuMDA4MzUyLCAwLjAwODM1NCIsIFwKLSAgICAgICAgICAiMC4wMDgyNzQsIDAuMDA4MzM2LCAwLjAwODM0NCwgMC4wMDgzNDksIDAuMDA4MzUxLCAwLjAwODM1MiwgMC4wMDgzNTIiLCBcCi0gICAgICAgICAgIjAuMDA4MzIxLCAwLjAwODM4MywgMC4wMDgzOSwgMC4wMDgzOTUsIDAuMDA4Mzk2LCAwLjAwODM5NywgMC4wMDgzOTkiLCBcCi0gICAgICAgICAgIjAuMDA4Mzg1LCAwLjAwODQ0NiwgMC4wMDg0NTQsIDAuMDA4NDU4LCAwLjAwODQ2MSwgMC4wMDg0NjIsIDAuMDA4NDYxIiwgXAotICAgICAgICAgICIwLjAwODQ1OSwgMC4wMDg1MjEsIDAuMDA4NTI5LCAwLjAwODUzMywgMC4wMDg1MzUsIDAuMDA4NTM2LCAwLjAwODUzNyIsIFwKLSAgICAgICAgICAiMC4wMDg1ODEsIDAuMDA4NjQ1LCAwLjAwODY0NSwgMC4wMDg2NTcsIDAuMDA4NjUxLCAwLjAwODY2LCAwLjAwODY2MSIsIFwKLSAgICAgICAgICAiMC4wMDg2ODMsIDAuMDA4NzQ1LCAwLjAwODc0MSwgMC4wMDg3NTksIDAuMDA4NzQ2LCAwLjAwODc0NywgMC4wMDg3NjMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDc3MTgsIDAuMDA3Nzc2LCAwLjAwNzc4MywgMC4wMDc3ODcsIDAuMDA3Nzg5LCAwLjAwNzc5MSwgMC4wMDc3OTIiLCBcCi0gICAgICAgICAgIjAuMDA3NzEzLCAwLjAwNzc2OSwgMC4wMDc3NzYsIDAuMDA3NzgsIDAuMDA3NzgyLCAwLjAwNzc4MywgMC4wMDc3ODUiLCBcCi0gICAgICAgICAgIjAuMDA3NzQ4LCAwLjAwNzgwMywgMC4wMDc4MSwgMC4wMDc4MTUsIDAuMDA3ODE3LCAwLjAwNzgxOCwgMC4wMDc4MTgiLCBcCi0gICAgICAgICAgIjAuMDA3ODA0LCAwLjAwNzg2MiwgMC4wMDc4NywgMC4wMDc4NzQsIDAuMDA3ODc1LCAwLjAwNzg3NywgMC4wMDc4NzgiLCBcCi0gICAgICAgICAgIjAuMDA3ODczLCAwLjAwNzkzMSwgMC4wMDc5MzgsIDAuMDA3OTQyLCAwLjAwNzk0NSwgMC4wMDc5NDYsIDAuMDA3OTQ3IiwgXAotICAgICAgICAgICIwLjAwNzk3NCwgMC4wMDgwMywgMC4wMDgwMzcsIDAuMDA4MDQxLCAwLjAwODA0MywgMC4wMDgwNDUsIDAuMDA4MDQ1IiwgXAotICAgICAgICAgICIwLjAwODA2OCwgMC4wMDgxMjgsIDAuMDA4MTM1LCAwLjAwODEzOSwgMC4wMDgxNDEsIDAuMDA4MTQxLCAwLjAwODE0MSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oU0UpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTIwNDQyOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTIwNDQyOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTIwNDE1OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNTU4OCwgMC4wMDU2MDUsIDAuMDA1NzAyLCAwLjAwNTgwNywgMC4wMDU5MzQsIDAuMDA2MTg2LCAwLjAwNjM5MiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNzQxNiwgMC4wMDc0MTksIDAuMDA3NTI1LCAwLjAwNzY4OSwgMC4wMDc4ODQsIDAuMDA4MjUsIDAuMDA4NTc5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEJiFFJiFTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fRV9FUV8wX0FOX1NJX0VRXzAgPT0gMSdiMSI7Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDM3NSwgLTAuMDMyNSwgLTAuMDMyNSwgLTAuMDI2MjUsIC0wLjAyNjI1LCAtMC4wMjI1LCAtMC4wMiIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzc1LCAtMC4wMzc1LCAtMC4wMzM3NSwgLTAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjA1NSwgLTAuMDUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDQzNzUsIC0wLjA0LCAtMC4wMzc1IiwgXAotICAgICAgICAgICItMC4wNjEyNSwgLTAuMDU2MjUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDUsIC0wLjA0NjI1LCAtMC4wNDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDY3NSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA1NjI1LCAtMC4wNTYyNSwgLTAuMDUyNSwgLTAuMDUiLCBcCi0gICAgICAgICAgIi0wLjA3MTI1LCAtMC4wNjYyNSwgLTAuMDY2MjUsIC0wLjA2LCAtMC4wNiwgLTAuMDU2MjUsIC0wLjA1Mzc1IiwgXAotICAgICAgICAgICItMC4wNzM3NSwgLTAuMDY4NzUsIC0wLjA2ODc1LCAtMC4wNjg3NSwgLTAuMDYyNSwgLTAuMDU4NzUsIC0wLjA2MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUQmIUUmU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX0VfRVFfMF9BTl9TSV9FUV8xID09IDEnYjEiOwotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAxMjUsIC0wLjAwMTI1LCAwLjAwNSwgMC4wMDUsIDAuMDExMjUsIDAuMDE1LCAwLjAxNzUiLCBcCi0gICAgICAgICAgIi0wLjAxNzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLCAwLCAwLjAxLCAwLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDEyNSwgLTAuMDA2MjUsIC0wLjAwMjUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMjUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwODc1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAzMTI1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDE1LCAtMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wNDYyNSwgLTAuMDQxMjUsIC0wLjAzNSwgLTAuMDM1LCAtMC4wMjg3NSwgLTAuMDI1LCAtMC4wMjI1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDQzNzUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzc1LCAtMC4wMjc1LCAtMC4wMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUQmRSZTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fRV9FUV8xX0FOX1NJX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDMxMjUsIC0wLjAyNjI1LCAtMC4wMiwgLTAuMDIsIC0wLjAxMzc1LCAtMC4wMSwgLTAuMDA3NSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAzMTI1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMjUsIC0wLjAyMTI1LCAtMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDI3NSwgLTAuMDI1IiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDQzNzUsIC0wLjA0Mzc1LCAtMC4wNCwgLTAuMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDYxMjUsIC0wLjA1NjI1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjA1LCAtMC4wNDYyNSwgLTAuMDQzNzUiLCBcCi0gICAgICAgICAgIi0wLjA3MTI1LCAtMC4wNjYyNSwgLTAuMDY2MjUsIC0wLjA2LCAtMC4wNiwgLTAuMDU2MjUsIC0wLjA1Mzc1IiwgXAotICAgICAgICAgICItMC4wOCwgLTAuMDc1LCAtMC4wNjg3NSwgLTAuMDY4NzUsIC0wLjA2MjUsIC0wLjA2NSwgLTAuMDYyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJEJkUmIVNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMV9BTl9FX0VRXzFfQU5fU0lfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMjUsIC0wLjAxMzc1LCAtMC4wMDc1LCAtMC4wMDEyNSwgLTAuMDAxMjUsIDAuMDA4NzUsIDAuMDExMjUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMjUsIC0wLjAxMjUsIC0wLjAxMjUsIC0wLjAwNjI1LCAtMC4wMDI1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwODc1LCAwIiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMjUsIC0wLjAxNSwgLTAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDUyNSwgLTAuMDQxMjUsIC0wLjAzNSwgLTAuMDI4NzUsIC0wLjAyODc1LCAtMC4wMTg3NSwgLTAuMDE2MjUiLCBcCi0gICAgICAgICAgIi0wLjA1NSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDI3NSwgLTAuMDE4NzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEJiFFJiFTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fRV9FUV8wX0FOX1NJX0VRXzAgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDUsIDAuMDQ1LCAwLjAzODc1LCAwLjAzMjUsIDAuMDI2MjUsIDAuMDE2MjUsIDAuMDEzNzUiLCBcCi0gICAgICAgICAgIjAuMDYxMjUsIDAuMDUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMjc1LCAwLjAxODc1IiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDYyNSwgMC4wNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzMzc1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiMC4wNzM3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1LCAwLjA0Mzc1LCAwLjA0LCAwLjAzMTI1IiwgXAotICAgICAgICAgICIwLjA3Mzc1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDUsIDAuMDQsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiMC4wODM3NSwgMC4wNzI1LCAwLjA2NjI1LCAwLjA2LCAwLjA1Mzc1LCAwLjA0Mzc1LCAwLjA0MTI1IiwgXAotICAgICAgICAgICIwLjA4NjI1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1MjUsIDAuMDQzNzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEJiFFJlNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9FX0VRXzBfQU5fU0lfRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTYyNSwgMC4wNDUsIDAuMDM4NzUsIDAuMDM4NzUsIDAuMDMyNSwgMC4wMjg3NSwgMC4wMjYyNSIsIFwKLSAgICAgICAgICAiMC4wNjEyNSwgMC4wNTYyNSwgMC4wNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzMzc1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICIwLjA3Mzc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDUsIDAuMDUsIDAuMDQ2MjUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMDgsIDAuMDc1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDUyNSwgMC4wNSIsIFwKLSAgICAgICAgICAiMC4wODYyNSwgMC4wODEyNSwgMC4wNzUsIDAuMDY4NzUsIDAuMDY4NzUsIDAuMDY1LCAwLjA2MjUiLCBcCi0gICAgICAgICAgIjAuMDk2MjUsIDAuMDkxMjUsIDAuMDg1LCAwLjA3ODc1LCAwLjA3ODc1LCAwLjA3NSwgMC4wNzI1IiwgXAotICAgICAgICAgICIwLjEwNSwgMC4xLCAwLjA5Mzc1LCAwLjA4NzUsIDAuMDg3NSwgMC4wODM3NSwgMC4wODEyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUQmRSZTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fRV9FUV8xX0FOX1NJX0VRXzEgPT0gMSdiMSI7Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDUsIDAuMDM4NzUsIDAuMDMyNSwgMC4wMjYyNSwgMC4wMiwgMC4wMTYyNSwgMC4wMDc1IiwgXAotICAgICAgICAgICIwLjA1NSwgMC4wNSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAzMTI1LCAwLjAyMTI1LCAwLjAxODc1IiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDU2MjUsIDAuMDUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzM3NSwgMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMDczNzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNSwgMC4wNDM3NSwgMC4wNCwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4wOCwgMC4wNzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNTYyNSwgMC4wNDYyNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4wOSwgMC4wODUsIDAuMDcyNSwgMC4wNjYyNSwgMC4wNjYyNSwgMC4wNTYyNSwgMC4wNTM3NSIsIFwKLSAgICAgICAgICAiMC4wOTg3NSwgMC4wOTM3NSwgMC4wODEyNSwgMC4wNzUsIDAuMDY4NzUsIDAuMDY1LCAwLjA2MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIkQmRSYhU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8xX0FOX0VfRVFfMV9BTl9TSV9FUV8wID09IDEnYjEiOwotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2ODc1LCAwLjA1NzUsIDAuMDUxMjUsIDAuMDUxMjUsIDAuMDQ1LCAwLjA0MTI1LCAwLjAzODc1IiwgXAotICAgICAgICAgICIwLjA3Mzc1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDU2MjUsIDAuMDUyNSwgMC4wNSIsIFwKLSAgICAgICAgICAiMC4wODYyNSwgMC4wNzUsIDAuMDY4NzUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNTg3NSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiMC4wOTI1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNzUsIDAuMDY4NzUsIDAuMDY1LCAwLjA2MjUiLCBcCi0gICAgICAgICAgIjAuMDkyNSwgMC4wODc1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNzUsIDAuMDcxMjUsIDAuMDY4NzUiLCBcCi0gICAgICAgICAgIjAuMTAyNSwgMC4wOTEyNSwgMC4wODUsIDAuMDg1LCAwLjA3ODc1LCAwLjA3NSwgMC4wNzI1IiwgXAotICAgICAgICAgICIwLjEwNSwgMC4xLCAwLjA5Mzc1LCAwLjA4NzUsIDAuMDgxMjUsIDAuMDgzNzUsIDAuMDgxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFNJKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2NzMyOTM7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjcyMTQ1OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDY3MzI5MzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDMxODYsIDAuMDAzMTY5LCAwLjAwMzE4NCwgMC4wMDMyMzEsIDAuMDAzMjkzLCAwLjAwMzQwMiwgMC4wMDM1MjkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDU5ODEsIDAuMDA1OTY0LCAwLjAwNTk4LCAwLjAwNjAyNywgMC4wMDYwODQsIDAuMDA2MTk0LCAwLjAwNjMwOCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJTRSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMzEyNSwgLTAuMDI2MjUsIC0wLjAyNjI1LCAtMC4wMiwgLTAuMDIsIC0wLjAxNjI1LCAtMC4wMTM3NSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAyMTI1LCAtMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDI3NSwgLTAuMDI1IiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDQzNzUsIC0wLjA0Mzc1LCAtMC4wNCwgLTAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjA2MTI1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjA1LCAtMC4wNSwgLTAuMDQ2MjUsIC0wLjA0Mzc1IiwgXAotICAgICAgICAgICItMC4wNzEyNSwgLTAuMDY2MjUsIC0wLjA2LCAtMC4wNiwgLTAuMDUzNzUsIC0wLjA1LCAtMC4wNDc1IiwgXAotICAgICAgICAgICItMC4wNzM3NSwgLTAuMDY4NzUsIC0wLjA2ODc1LCAtMC4wNjI1LCAtMC4wNjI1LCAtMC4wNTg3NSwgLTAuMDU2MjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMTI1LCAtMC4wMDc1LCAtMC4wMDEyNSwgMC4wMDUsIDAuMDExMjUsIDAuMDE1LCAwLjAxNzUiLCBcCi0gICAgICAgICAgIi0wLjAxNzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLCAwLjAwNjI1LCAwLjAxLCAwLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIC0wLjAwNjI1LCAwLjAwMzc1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIC0wLjAwMjUsIDAiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA4NzUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wNCwgLTAuMDM1LCAtMC4wMjg3NSwgLTAuMDIyNSwgLTAuMDIyNSwgLTAuMDEyNSwgLTAuMDEiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDIxMjUsIC0wLjAxODc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJTRSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTYyNSwgMC4wNTEyNSwgMC4wNDUsIDAuMDM4NzUsIDAuMDM4NzUsIDAuMDM1LCAwLjAzMjUiLCBcCi0gICAgICAgICAgIjAuMDYxMjUsIDAuMDU2MjUsIDAuMDUsIDAuMDQzNzUsIDAuMDQzNzUsIDAuMDQsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiMC4wNzM3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1NjI1LCAwLjA1LCAwLjA0NjI1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjA4LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNTI1LCAwLjA1IiwgXAotICAgICAgICAgICIwLjA4NjI1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1ODc1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICIwLjA5NjI1LCAwLjA4NSwgMC4wNzg3NSwgMC4wNzg3NSwgMC4wNzI1LCAwLjA2ODc1LCAwLjA2NjI1IiwgXAotICAgICAgICAgICIwLjA5ODc1LCAwLjA5Mzc1LCAwLjA4NzUsIDAuMDgxMjUsIDAuMDgxMjUsIDAuMDc3NSwgMC4wNzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDM3NSwgMC4wMzg3NSwgMC4wMjYyNSwgMC4wMiwgMC4wMiwgMC4wMSwgMC4wMDc1IiwgXAotICAgICAgICAgICIwLjA0ODc1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDI1LCAwLjAxNSwgMC4wMTI1IiwgXAotICAgICAgICAgICIwLjA2MTI1LCAwLjA1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDIxMjUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMDY3NSwgMC4wNTYyNSwgMC4wNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAyNzUsIDAuMDI1IiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNSwgMC4wNDM3NSwgMC4wMzM3NSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4wNzc1LCAwLjA3MjUsIDAuMDYsIDAuMDUzNzUsIDAuMDQ3NSwgMC4wNDM3NSwgMC4wNDEyNSIsIFwKLSAgICAgICAgICAiMC4wODYyNSwgMC4wNzUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNDYyNSwgMC4wNDM3NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IFNFREZGWEwgKgotICogLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoU0VERkZYTCkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAxLjIxNDg2OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIGZmIChOMzAsTkVUNTM2KSB7Ci0gICAgbmV4dF9zdGF0ZSA6ICIoKFNFIFNJKSArICghU0UgKChFIEQpICsgKCFFICghKCFOMzApKSkpKSkiOwotICAgIGNsb2NrZWRfb24gOiAiQ0siOwotICB9Ci0gIHBpbihDSykgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjI0MDA0OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYyMzk4NzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2MjQwMDQ7Ci0gICAgY2xvY2sgOiB0cnVlOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzYxNiwgMC4wMDM2MTMsIDAuMDAzNzAzLCAwLjAwMzc5MiwgMC4wMDM5MTYsIDAuMDA0MTQzLCAwLjAwNDMzOCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNzU1OSwgMC4wMDc1NjMsIDAuMDA3NjU0LCAwLjAwNzc4MSwgMC4wMDc5MjksIDAuMDA4MjA1LCAwLjAwODQyMSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQmIUUmU0UmIVNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9FX0VRXzBfQU5fU0VfRVFfMV9BTl9TSV9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMTM5ODM5LCAwLjE0ODA0NSwgMC4xNTY4MTEsIDAuMTYzNTY1LCAwLjE2ODkxLCAwLjE3NjI0MywgMC4xODE1NTIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjA2MTEwMywgMC4wNjkyMjQsIDAuMDc4MDI5LCAwLjA4NDY0MywgMC4wODk5MTMsIDAuMDk2ODA4LCAwLjEwMTk4NCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjIxOTk2OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYyMDU4MTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2MjE5OTY7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA0MDMzLCAwLjAwNDAxNSwgMC4wMDQwMjMsIDAuMDA0MDU5LCAwLjAwNDExNiwgMC4wMDQyMjYsIDAuMDA0MzI4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA4OTU4LCAwLjAwODk0OCwgMC4wMDg5NTUsIDAuMDA4OTg0LCAwLjAwOTA0LCAwLjAwOTEzMiwgMC4wMDkyNCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJFJiFTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJFX0VRXzFfQU5fU0VfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wNjg3NSwgLTAuMDYzNzUsIC0wLjA1NzUsIC0wLjA1NzUsIC0wLjA1NzUsIC0wLjA1Mzc1LCAtMC4wNTEyNSIsIFwKLSAgICAgICAgICAiLTAuMDczNzUsIC0wLjA2ODc1LCAtMC4wNjg3NSwgLTAuMDYyNSwgLTAuMDYyNSwgLTAuMDU4NzUsIC0wLjA1NjI1IiwgXAotICAgICAgICAgICItMC4wOCwgLTAuMDc1LCAtMC4wNzUsIC0wLjA3NSwgLTAuMDY4NzUsIC0wLjA3MTI1LCAtMC4wNjg3NSIsIFwKLSAgICAgICAgICAiLTAuMDg2MjUsIC0wLjA4NzUsIC0wLjA4MTI1LCAtMC4wODEyNSwgLTAuMDgxMjUsIC0wLjA3NzUsIC0wLjA3NSIsIFwKLSAgICAgICAgICAiLTAuMDk4NzUsIC0wLjA5Mzc1LCAtMC4wODc1LCAtMC4wODc1LCAtMC4wODc1LCAtMC4wODM3NSwgLTAuMDgxMjUiLCBcCi0gICAgICAgICAgIi0wLjEwODc1LCAtMC4xMDM3NSwgLTAuMDk3NSwgLTAuMDk3NSwgLTAuMDk3NSwgLTAuMDkzNzUsIC0wLjA5MTI1IiwgXAotICAgICAgICAgICItMC4xMTEyNSwgLTAuMTEyNSwgLTAuMTA2MjUsIC0wLjEwNjI1LCAtMC4xMDYyNSwgLTAuMTAyNSwgLTAuMSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjA0Mzc1LCAtMC4wMzg3NSwgLTAuMDMyNSwgLTAuMDMyNSwgLTAuMDI2MjUsIC0wLjAyMjUsIC0wLjAyIiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMjc1LCAtMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjA1NSwgLTAuMDUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDMzNzUsIC0wLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wNjc1LCAtMC4wNTYyNSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDQsIC0wLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjA2NzUsIC0wLjA2MjUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDQ2MjUsIC0wLjA0Mzc1IiwgXAotICAgICAgICAgICItMC4wNzc1LCAtMC4wNzI1LCAtMC4wNjYyNSwgLTAuMDY2MjUsIC0wLjA2LCAtMC4wNTYyNSwgLTAuMDUzNzUiLCBcCi0gICAgICAgICAgIi0wLjA4NjI1LCAtMC4wNzUsIC0wLjA3NSwgLTAuMDY4NzUsIC0wLjA2ODc1LCAtMC4wNjUsIC0wLjA1NjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJFJiFTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJFX0VRXzFfQU5fU0VfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTM3NSwgMC4wODg3NSwgMC4wODI1LCAwLjA3NjI1LCAwLjA3NjI1LCAwLjA3MjUsIDAuMDciLCBcCi0gICAgICAgICAgIjAuMDk4NzUsIDAuMDkzNzUsIDAuMDg3NSwgMC4wODEyNSwgMC4wODEyNSwgMC4wNzc1LCAwLjA3NSIsIFwKLSAgICAgICAgICAiMC4xMTEyNSwgMC4xLCAwLjA5Mzc1LCAwLjA5Mzc1LCAwLjA4NzUsIDAuMDgzNzUsIDAuMDg3NSIsIFwKLSAgICAgICAgICAiMC4xMTc1LCAwLjEwNjI1LCAwLjEwNjI1LCAwLjEsIDAuMSwgMC4wOTYyNSwgMC4wOTM3NSIsIFwKLSAgICAgICAgICAiMC4xMjM3NSwgMC4xMTg3NSwgMC4xMTI1LCAwLjEwNjI1LCAwLjEwNjI1LCAwLjEwMjUsIDAuMSIsIFwKLSAgICAgICAgICAiMC4xMzM3NSwgMC4xMjg3NSwgMC4xMjI1LCAwLjExNjI1LCAwLjExNjI1LCAwLjExMjUsIDAuMTEiLCBcCi0gICAgICAgICAgIjAuMTQyNSwgMC4xMzc1LCAwLjEzMTI1LCAwLjEyNSwgMC4xMjUsIDAuMTIxMjUsIDAuMTE4NzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODc1LCAwLjA3NjI1LCAwLjA3LCAwLjA2Mzc1LCAwLjA1NzUsIDAuMDUzNzUsIDAuMDQ1IiwgXAotICAgICAgICAgICIwLjA5MjUsIDAuMDgxMjUsIDAuMDc1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDU4NzUsIDAuMDUiLCBcCi0gICAgICAgICAgIjAuMDk4NzUsIDAuMDg3NSwgMC4wODEyNSwgMC4wNzUsIDAuMDY4NzUsIDAuMDY1LCAwLjA2MjUiLCBcCi0gICAgICAgICAgIjAuMTA1LCAwLjA5Mzc1LCAwLjA4NzUsIDAuMDgxMjUsIDAuMDc1LCAwLjA3MTI1LCAwLjA2ODc1IiwgXAotICAgICAgICAgICIwLjExMTI1LCAwLjEsIDAuMDkzNzUsIDAuMDg3NSwgMC4wODEyNSwgMC4wNzc1LCAwLjA3NSIsIFwKLSAgICAgICAgICAiMC4xMjEyNSwgMC4xMSwgMC4xMDM3NSwgMC4wOTc1LCAwLjA5MTI1LCAwLjA4NzUsIDAuMDg1IiwgXAotICAgICAgICAgICIwLjEzLCAwLjExODc1LCAwLjExMjUsIDAuMTA2MjUsIDAuMSwgMC4wOTYyNSwgMC4wODc1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihFKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE1NjA4NzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE1NjA4NzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE1NjA2OTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDgzOTMsIDAuMDA4NDE0LCAwLjAwODUwMiwgMC4wMDg2MiwgMC4wMDg3OSwgMC4wMDkwMTYsIDAuMDA5MjIxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDEwMDYsIDAuMDEwMDk2LCAwLjAxMDIxNSwgMC4wMTAzNjQsIDAuMDEwNTcxLCAwLjAxMDkzNywgMC4wMTEyNzYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIVNFIjsKLSAgICAgIHNkZl9jb25kIDogIlNFID09IDEnYjAiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjA2ODc1LCAtMC4wNjM3NSwgLTAuMDYzNzUsIC0wLjA1NzUsIC0wLjA1MTI1LCAtMC4wNDc1LCAtMC4wMzg3NSIsIFwKLSAgICAgICAgICAiLTAuMDgsIC0wLjA3NSwgLTAuMDY4NzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNTI1LCAtMC4wNSIsIFwKLSAgICAgICAgICAiLTAuMDg2MjUsIC0wLjA4MTI1LCAtMC4wNzUsIC0wLjA2ODc1LCAtMC4wNjI1LCAtMC4wNTg3NSwgLTAuMDU2MjUiLCBcCi0gICAgICAgICAgIi0wLjA5MjUsIC0wLjA4NzUsIC0wLjA4MTI1LCAtMC4wNzUsIC0wLjA2ODc1LCAtMC4wNjUsIC0wLjA1NjI1IiwgXAotICAgICAgICAgICItMC4wOTg3NSwgLTAuMDg3NSwgLTAuMDgxMjUsIC0wLjA3NSwgLTAuMDc1LCAtMC4wNjUsIC0wLjA2MjUiLCBcCi0gICAgICAgICAgIi0wLjEwMjUsIC0wLjA5NzUsIC0wLjA4NSwgLTAuMDc4NzUsIC0wLjA3ODc1LCAtMC4wNjg3NSwgLTAuMDY2MjUiLCBcCi0gICAgICAgICAgIi0wLjEwNSwgLTAuMSwgLTAuMDg3NSwgLTAuMDg3NSwgLTAuMDgxMjUsIC0wLjA3MTI1LCAtMC4wNjg3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAzNzUsIC0wLjAzMjUsIC0wLjAyNjI1LCAtMC4wMjYyNSwgLTAuMDIsIC0wLjAxNjI1LCAtMC4wMTM3NSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDMxMjUsIC0wLjAyMTI1LCAtMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzM3NSwgLTAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjA2NzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDUsIC0wLjA0LCAtMC4wMzc1IiwgXAotICAgICAgICAgICItMC4wNzM3NSwgLTAuMDY4NzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNTYyNSwgLTAuMDUyNSwgLTAuMDUiLCBcCi0gICAgICAgICAgIi0wLjA4Mzc1LCAtMC4wNzg3NSwgLTAuMDcyNSwgLTAuMDcyNSwgLTAuMDY2MjUsIC0wLjA2MjUsIC0wLjA2IiwgXAotICAgICAgICAgICItMC4wOTI1LCAtMC4wODc1LCAtMC4wODEyNSwgLTAuMDgxMjUsIC0wLjA3NSwgLTAuMDcxMjUsIC0wLjA2ODc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhU0UiOwotICAgICAgc2RmX2NvbmQgOiAiU0UgPT0gMSdiMCI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDkzNzUsIDAuMDgyNSwgMC4wNzYyNSwgMC4wNzYyNSwgMC4wNywgMC4wNjYyNSwgMC4wNjM3NSIsIFwKLSAgICAgICAgICAiMC4wOTg3NSwgMC4wOTM3NSwgMC4wODc1LCAwLjA4MTI1LCAwLjA4MTI1LCAwLjA3NzUsIDAuMDc1IiwgXAotICAgICAgICAgICIwLjEwNSwgMC4xLCAwLjA5Mzc1LCAwLjA5Mzc1LCAwLjA4NzUsIDAuMDgzNzUsIDAuMDgxMjUiLCBcCi0gICAgICAgICAgIjAuMTE3NSwgMC4xMTI1LCAwLjEwNjI1LCAwLjEsIDAuMSwgMC4wOTYyNSwgMC4wOTM3NSIsIFwKLSAgICAgICAgICAiMC4xMjM3NSwgMC4xMTg3NSwgMC4xMTI1LCAwLjExMjUsIDAuMTA2MjUsIDAuMTAyNSwgMC4xIiwgXAotICAgICAgICAgICIwLjE0LCAwLjEzNSwgMC4xMjg3NSwgMC4xMjI1LCAwLjEyMjUsIDAuMTE4NzUsIDAuMTE2MjUiLCBcCi0gICAgICAgICAgIjAuMTQ4NzUsIDAuMTQzNzUsIDAuMTM3NSwgMC4xMzEyNSwgMC4xMzEyNSwgMC4xMjc1LCAwLjEyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4MTI1LCAwLjA3NjI1LCAwLjA3NjI1LCAwLjA3LCAwLjA3LCAwLjA2NjI1LCAwLjA2Mzc1IiwgXAotICAgICAgICAgICIwLjA4NjI1LCAwLjA4NzUsIDAuMDgxMjUsIDAuMDgxMjUsIDAuMDc1LCAwLjA3NzUsIDAuMDc1IiwgXAotICAgICAgICAgICIwLjA5MjUsIDAuMDg3NSwgMC4wODc1LCAwLjA4NzUsIDAuMDgxMjUsIDAuMDgzNzUsIDAuMDgxMjUiLCBcCi0gICAgICAgICAgIjAuMDk4NzUsIDAuMDkzNzUsIDAuMDkzNzUsIDAuMDg3NSwgMC4wODc1LCAwLjA4Mzc1LCAwLjA4MTI1IiwgXAotICAgICAgICAgICIwLjA5ODc1LCAwLjEsIDAuMDkzNzUsIDAuMDkzNzUsIDAuMDg3NSwgMC4wOSwgMC4wODc1IiwgXAotICAgICAgICAgICIwLjEwODc1LCAwLjEwMzc1LCAwLjA5NzUsIDAuMDk3NSwgMC4wOTc1LCAwLjA5Mzc1LCAwLjA5MTI1IiwgXAotICAgICAgICAgICIwLjExNzUsIDAuMTEyNSwgMC4xMDYyNSwgMC4xLCAwLjEsIDAuMDk2MjUsIDAuMDkzNzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFEpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4yMDE3MTE7Ci0gICAgZnVuY3Rpb24gOiAiTjMwIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBub25fdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJpc2luZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTc3ODMsIDAuMTI4MzYsIDAuMjIzMDA4LCAwLjM4MTc2NywgMC41NDAzOTksIDAuOTEwNDYxLCAxLjEyMTg2IiwgXAotICAgICAgICAgICIwLjEyNTkyLCAwLjEzNjQ0MywgMC4yMzExMjMsIDAuMzg5OTMxLCAwLjU0ODU2MSwgMC45MTg2MzIsIDEuMTI5NjYiLCBcCi0gICAgICAgICAgIjAuMTM0NDk1LCAwLjE0NTAyMywgMC4yMzk3MTEsIDAuMzk4NDk1LCAwLjU1NzE2OSwgMC45MjcwNDIsIDEuMTM4NTgiLCBcCi0gICAgICAgICAgIjAuMTQxMTUxLCAwLjE1MTczMSwgMC4yNDY0MTcsIDAuNDA1MTY0LCAwLjU2Mzc5MywgMC45MzM4NTcsIDEuMTQ1MzMiLCBcCi0gICAgICAgICAgIjAuMTQ2NDQ4LCAwLjE1Njk4MywgMC4yNTE2NywgMC40MTA0MzgsIDAuNTY5MTE1LCAwLjkzOTEwMiwgMS4xNTAzNiIsIFwKLSAgICAgICAgICAiMC4xNTM1NTUsIDAuMTY0MTksIDAuMjU4ODg0LCAwLjQxNzU4MSwgMC41NzYyNzgsIDAuOTQ2MjE0LCAxLjE1NzYzIiwgXAotICAgICAgICAgICIwLjE1ODg1MywgMC4xNjkzMzcsIDAuMjY0MDI4LCAwLjQyMjUwMywgMC41ODE0MzQsIDAuOTUxNDE2LCAxLjE2Mjg4Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExODQyMiwgMC4xNDA1NTEsIDAuMzQwMDIsIDAuNjczNDY3LCAxLjAwNzM3LCAxLjc4NjgzLCAyLjIzMTU1IiwgXAotICAgICAgICAgICIwLjExODU1MiwgMC4xNDA1NiwgMC4zNDAzMjksIDAuNjczMDcxLCAxLjAwNzM2LCAxLjc4NjgzLCAyLjIzMTU1IiwgXAotICAgICAgICAgICIwLjExODU2NSwgMC4xNDA1NjcsIDAuMzQwMTg0LCAwLjY3MzczOCwgMS4wMDczMywgMS43ODU3NSwgMi4yMzE3NiIsIFwKLSAgICAgICAgICAiMC4xMTg1NDUsIDAuMTQwNTU5LCAwLjM0MDIwNCwgMC42NzM3NDksIDEuMDA3MzEsIDEuNzg0MDUsIDIuMjMxOTgiLCBcCi0gICAgICAgICAgIjAuMTE4NTUxLCAwLjE0MDU2MSwgMC4zNDAzMTQsIDAuNjczODQyLCAxLjAwNzE5LCAxLjc4Njc4LCAyLjIzMTc0IiwgXAotICAgICAgICAgICIwLjExODU3LCAwLjE0MDU0NSwgMC4zNDAxMDksIDAuNjczODksIDEuMDA3MzgsIDEuNzg2OSwgMi4yMzE4IiwgXAotICAgICAgICAgICIwLjExODQ3MiwgMC4xNDA0NDQsIDAuMzQwMTQ5LCAwLjY3Mjk5NiwgMS4wMDczNywgMS43ODY3OSwgMi4yMzA2NCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMjMzNjMsIDAuMTMzMDA5LCAwLjIyMDY4NCwgMC4zNjUyNjYsIDAuNTEwMzQxLCAwLjg0OTQ0NSwgMS4wNDMxIiwgXAotICAgICAgICAgICIwLjEzMTU2OSwgMC4xNDEyMjYsIDAuMjI4ODIxLCAwLjM3MzQ2MywgMC41MTg1MzcsIDAuODU3NjczLCAxLjA1MTMiLCBcCi0gICAgICAgICAgIjAuMTQwMzMyLCAwLjE0OTk3MiwgMC4yMzc2NSwgMC4zODIyMTYsIDAuNTI3MzI0LCAwLjg2NjQzNywgMS4wNjAxMiIsIFwKLSAgICAgICAgICAiMC4xNDcwODMsIDAuMTU2NzQ1LCAwLjI0NDM1MywgMC4zODg5ODYsIDAuNTM0MDg3LCAwLjg3MzA0MiwgMS4wNjY1MyIsIFwKLSAgICAgICAgICAiMC4xNTI0MzYsIDAuMTYyMTI3LCAwLjI0OTY4MywgMC4zOTQ0MSwgMC41Mzk0NDYsIDAuODc4MzMyLCAxLjA3MjA5IiwgXAotICAgICAgICAgICIwLjE1OTgwMywgMC4xNjk1MjYsIDAuMjU2NTY2LCAwLjQwMTU5NiwgMC41NDY2NTMsIDAuODg1NjMsIDEuMDc5NTMiLCBcCi0gICAgICAgICAgIjAuMTY1MDUxLCAwLjE3NDY0NCwgMC4yNjIwNDUsIDAuNDA2OTg0LCAwLjU1MjMzNCwgMC44OTA5MjksIDEuMDg0NDciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTA4MDg4LCAwLjEyNjk5OCwgMC4zMDYzMTYsIDAuNjA1NTkzLCAwLjkwNDgyNywgMS42MDMwMywgMS45OTc5MSIsIFwKLSAgICAgICAgICAiMC4xMDgwODksIDAuMTI3MTQ0LCAwLjMwNjI2MSwgMC42MDU1OTYsIDAuOTA0ODMyLCAxLjYwMjgzLCAxLjk5ODI4IiwgXAotICAgICAgICAgICIwLjEwODA5LCAwLjEyNzExNiwgMC4zMDU3NTYsIDAuNjA1NTc5LCAwLjkwNDgyOCwgMS42MDIxMiwgMi4wMDE0MyIsIFwKLSAgICAgICAgICAiMC4xMDgxMDcsIDAuMTI3MjAzLCAwLjMwNjI4NCwgMC42MDU1ODQsIDAuOTA0NzQzLCAxLjYwMjY1LCAyLjAwMTciLCBcCi0gICAgICAgICAgIjAuMTA4MTA0LCAwLjEyNzUyMiwgMC4zMDYyNTMsIDAuNjA1NTk2LCAwLjkwNDgwNywgMS42MDI2MywgMi4wMDE0MiIsIFwKLSAgICAgICAgICAiMC4xMDc1OTcsIDAuMTI3MjM2LCAwLjMwNjE3NSwgMC42MDU0ODYsIDAuOTA0Njg2LCAxLjYwMjYyLCAyLjAwMTQ0IiwgXAotICAgICAgICAgICIwLjEwNzE4NiwgMC4xMjcyMzcsIDAuMzA2MTgzLCAwLjYwNTQ3MiwgMC45MDQ2NDYsIDEuNjAyNywgMi4wMDE0NiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDU0MjIsIDAuMDA1NDI0LCAwLjAwNTQyOSwgMC4wMDU0MzEsIDAuMDA1NDMyLCAwLjAwNTQzMywgMC4wMDU0MzMiLCBcCi0gICAgICAgICAgIjAuMDA1NDIzLCAwLjAwNTQyNSwgMC4wMDU0MzEsIDAuMDA1NDMzLCAwLjAwNTQzNCwgMC4wMDU0MzQsIDAuMDA1NDM1IiwgXAotICAgICAgICAgICIwLjAwNTQ2NywgMC4wMDU0NjgsIDAuMDA1NDc0LCAwLjAwNTQ3NiwgMC4wMDU0NzcsIDAuMDA1NDc3LCAwLjAwNTQ3OCIsIFwKLSAgICAgICAgICAiMC4wMDU1MTYsIDAuMDA1NTE4LCAwLjAwNTUyMywgMC4wMDU1MjUsIDAuMDA1NTI2LCAwLjAwNTUyNywgMC4wMDU1MjciLCBcCi0gICAgICAgICAgIjAuMDA1NTg1LCAwLjAwNTU4NywgMC4wMDU1OTIsIDAuMDA1NTk0LCAwLjAwNTU5NSwgMC4wMDU1OTYsIDAuMDA1NTk2IiwgXAotICAgICAgICAgICIwLjAwNTY5MiwgMC4wMDU2ODMsIDAuMDA1Njk5LCAwLjAwNTcwMSwgMC4wMDU3MDIsIDAuMDA1NzAzLCAwLjAwNTcwMyIsIFwKLSAgICAgICAgICAiMC4wMDU3ODEsIDAuMDA1NzgzLCAwLjAwNTc4OSwgMC4wMDU3OTEsIDAuMDA1NzkyLCAwLjAwNTc5MiwgMC4wMDU3OTIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDY0OTksIDAuMDA2NTAxLCAwLjAwNjUwNiwgMC4wMDY1MDgsIDAuMDA2NTA5LCAwLjAwNjUwOSwgMC4wMDY1MSIsIFwKLSAgICAgICAgICAiMC4wMDY1MDksIDAuMDA2NTExLCAwLjAwNjUxNiwgMC4wMDY1MTgsIDAuMDA2NTE4LCAwLjAwNjUxOSwgMC4wMDY1MTkiLCBcCi0gICAgICAgICAgIjAuMDA2NTYxLCAwLjAwNjU2MiwgMC4wMDY1NjgsIDAuMDA2NTY5LCAwLjAwNjU3LCAwLjAwNjU3MSwgMC4wMDY1NzEiLCBcCi0gICAgICAgICAgIjAuMDA2NjE3LCAwLjAwNjYxOCwgMC4wMDY2MjMsIDAuMDA2NjI1LCAwLjAwNjYyNiwgMC4wMDY2MjcsIDAuMDA2NjI3IiwgXAotICAgICAgICAgICIwLjAwNjY5MiwgMC4wMDY2OTMsIDAuMDA2Njk5LCAwLjAwNjcwMSwgMC4wMDY3MDEsIDAuMDA2NzAyLCAwLjAwNjcwMiIsIFwKLSAgICAgICAgICAiMC4wMDY4MDksIDAuMDA2OCwgMC4wMDY4MDUsIDAuMDA2ODE2LCAwLjAwNjgxNiwgMC4wMDY4MDgsIDAuMDA2ODE3IiwgXAotICAgICAgICAgICIwLjAwNjksIDAuMDA2OTAxLCAwLjAwNjkwNiwgMC4wMDY5MDgsIDAuMDA2OTEsIDAuMDA2OTEsIDAuMDA2OTExIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihRTikgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjIwMTIxMTsKLSAgICBmdW5jdGlvbiA6ICJORVQ1MzYiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5vbl91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcmlzaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEzOTgzOSwgMC4xNTAzNzIsIDAuMjQ1MDc3LCAwLjQwMjkwOCwgMC41NjA3MzgsIDAuOTI5MDM4LCAxLjEzOTQ2IiwgXAotICAgICAgICAgICIwLjE0ODA0NSwgMC4xNTg1NzgsIDAuMjUzMjgzLCAwLjQxMTEyLCAwLjU2ODk0MywgMC45MzcyNDMsIDEuMTQ3NjciLCBcCi0gICAgICAgICAgIjAuMTU2ODExLCAwLjE2NzM0NSwgMC4yNjIwNSwgMC40MTk4ODEsIDAuNTc3NzA5LCAwLjk0NjAwOSwgMS4xNTY0MyIsIFwKLSAgICAgICAgICAiMC4xNjM1NjUsIDAuMTc0MDk3LCAwLjI2ODgwOCwgMC40MjY2MzcsIDAuNTg0NTEyLCAwLjk1MjgzNSwgMS4xNjMyNCIsIFwKLSAgICAgICAgICAiMC4xNjg5MSwgMC4xNzk0NDIsIDAuMjc0MTQ5LCAwLjQzMTk4NSwgMC41ODk4MTYsIDAuOTU4MDg1LCAxLjE2ODYzIiwgXAotICAgICAgICAgICIwLjE3NjI0MywgMC4xODY3NzUsIDAuMjgxNDg5LCAwLjQzOTIyMywgMC41OTcxMDksIDAuOTY1NDc1LCAxLjE3NTgiLCBcCi0gICAgICAgICAgIjAuMTgxNTUyLCAwLjE5MjA3NiwgMC4yODY3NjcsIDAuNDQ0NjEsIDAuNjAyNDU1LCAwLjk3MDc4NywgMS4xODExMSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTc2NTEsIDAuMTM5NjQ1LCAwLjMzODU1MiwgMC42NzE2ODUsIDEuMDA0MjcsIDEuNzgwMzIsIDIuMjIxODEiLCBcCi0gICAgICAgICAgIjAuMTE3NjUxLCAwLjEzOTY0NSwgMC4zMzg2NDksIDAuNjcxNjg3LCAxLjAwNDI3LCAxLjc4MDIxLCAyLjIyMTg1IiwgXAotICAgICAgICAgICIwLjExNzY1MSwgMC4xMzk2NDUsIDAuMzM4Njk5LCAwLjY3MTY4NSwgMS4wMDQyNywgMS43Nzk5NCwgMi4yMjM4NiIsIFwKLSAgICAgICAgICAiMC4xMTc2NSwgMC4xMzk2NDgsIDAuMzM4ODMyLCAwLjY3MTY5MiwgMS4wMDQyNSwgMS43ODAzNywgMi4yMjM4MyIsIFwKLSAgICAgICAgICAiMC4xMTc2NTEsIDAuMTM5NjQ4LCAwLjMzODc2NCwgMC42NzE2OTEsIDEuMDA0MjYsIDEuNzgwMzcsIDIuMjIzODYiLCBcCi0gICAgICAgICAgIjAuMTE3NjM4LCAwLjEzOTY2NSwgMC4zMzkxLCAwLjY3MTY0NCwgMS4wMDQyMSwgMS43ODAzNSwgMi4yMjM4NCIsIFwKLSAgICAgICAgICAiMC4xMTc2NzksIDAuMTM5NjgsIDAuMzM4ODE1LCAwLjY3MTY0MSwgMS4wMDQxOSwgMS43ODAzOCwgMi4yMjM4NSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMjcyMTUsIDAuMTM2ODc2LCAwLjIyMzcyNSwgMC4zNjg0MjEsIDAuNTEzMTQ1LCAwLjg1MDc5NCwgMS4wNDM3MSIsIFwKLSAgICAgICAgICAiMC4xMzUzNTQsIDAuMTQ1MDE1LCAwLjIzMTg2NCwgMC4zNzY1NiwgMC41MjEyODQsIDAuODU4OTMyLCAxLjA1MTg1IiwgXAotICAgICAgICAgICIwLjE0Mzk1MiwgMC4xNTM2MTEsIDAuMjQwNDQ4LCAwLjM4NTE5MiwgMC41Mjk4ODgsIDAuODY3NDg5LCAxLjA2MDQ3IiwgXAotICAgICAgICAgICIwLjE1MDYyLCAwLjE2MDI3OSwgMC4yNDcxMjEsIDAuMzkxODQsIDAuNTM2NTgsIDAuODc0MTc4LCAxLjA2NzEiLCBcCi0gICAgICAgICAgIjAuMTU1ODkxLCAwLjE2NTU1LCAwLjI1MjM4NSwgMC4zOTcxNDEsIDAuNTQxODE2LCAwLjg3OTQyNywgMS4wNzI0MSIsIFwKLSAgICAgICAgICAiMC4xNjMwNjQsIDAuMTcyNzE2LCAwLjI1OTQ5LCAwLjQwNDI2MiwgMC41NDg5MTgsIDAuODg2NiwgMS4wNzk1NiIsIFwKLSAgICAgICAgICAiMC4xNjgyNzQsIDAuMTc3ODkyLCAwLjI2NDc3NSwgMC40MDk1MTcsIDAuNTU0MTkxLCAwLjg5MTgzMiwgMS4wODQ3OCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDU0NTIsIDAuMTI1MDYzLCAwLjMwMzE5MSwgMC42MDA5MDQsIDAuODk4NDE2LCAxLjU5Mjg5LCAxLjk4OTg3IiwgXAotICAgICAgICAgICIwLjEwNTQ1MiwgMC4xMjUwNjMsIDAuMzAzMjkzLCAwLjYwMDkxOCwgMC44OTg0OTEsIDEuNTkyODYsIDEuOTg5MTMiLCBcCi0gICAgICAgICAgIjAuMTA1NDU0LCAwLjEyNTA3MywgMC4zMDMxODYsIDAuNjAwODg4LCAwLjg5ODQ0LCAxLjU5MjkyLCAxLjk4OTgxIiwgXAotICAgICAgICAgICIwLjEwNTQ1MywgMC4xMjUxMTYsIDAuMzAzMTg2LCAwLjYwMDg5NSwgMC44OTg0ODksIDEuNTkyNzksIDEuOTg5ODciLCBcCi0gICAgICAgICAgIjAuMTA1NDU1LCAwLjEyNTA3LCAwLjMwMzE4OSwgMC42MDA5NTIsIDAuODk4NDY5LCAxLjU5Mjk0LCAxLjk4OTcyIiwgXAotICAgICAgICAgICIwLjEwNTQ2MiwgMC4xMjUwNzgsIDAuMzAzMTQ2LCAwLjYwMDkwMSwgMC44OTg0NDUsIDEuNTkyOTQsIDEuOTg5NjEiLCBcCi0gICAgICAgICAgIjAuMTA1NDUxLCAwLjEyNTEwOSwgMC4zMDMzLCAwLjYwMDQ3NCwgMC44OTgzOTUsIDEuNTkzMDMsIDEuOTg5OTEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2NDk5LCAwLjAwNjUwMSwgMC4wMDY1MDYsIDAuMDA2NTA4LCAwLjAwNjUwOSwgMC4wMDY1MDksIDAuMDA2NTEiLCBcCi0gICAgICAgICAgIjAuMDA2NTA5LCAwLjAwNjUxMSwgMC4wMDY1MTYsIDAuMDA2NTE4LCAwLjAwNjUxOCwgMC4wMDY1MTksIDAuMDA2NTE5IiwgXAotICAgICAgICAgICIwLjAwNjU2MSwgMC4wMDY1NjIsIDAuMDA2NTY4LCAwLjAwNjU2OSwgMC4wMDY1NywgMC4wMDY1NzEsIDAuMDA2NTcxIiwgXAotICAgICAgICAgICIwLjAwNjYxNywgMC4wMDY2MTgsIDAuMDA2NjIzLCAwLjAwNjYyNSwgMC4wMDY2MjYsIDAuMDA2NjI3LCAwLjAwNjYyNyIsIFwKLSAgICAgICAgICAiMC4wMDY2OTIsIDAuMDA2NjkzLCAwLjAwNjY5OSwgMC4wMDY3MDEsIDAuMDA2NzAxLCAwLjAwNjcwMiwgMC4wMDY3MDIiLCBcCi0gICAgICAgICAgIjAuMDA2ODA5LCAwLjAwNjgsIDAuMDA2ODA1LCAwLjAwNjgxNiwgMC4wMDY4MTYsIDAuMDA2ODA4LCAwLjAwNjgxNyIsIFwKLSAgICAgICAgICAiMC4wMDY5LCAwLjAwNjkwMSwgMC4wMDY5MDYsIDAuMDA2OTA4LCAwLjAwNjkxLCAwLjAwNjkxLCAwLjAwNjkxMSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNTQyMiwgMC4wMDU0MjQsIDAuMDA1NDI5LCAwLjAwNTQzMSwgMC4wMDU0MzIsIDAuMDA1NDMzLCAwLjAwNTQzMyIsIFwKLSAgICAgICAgICAiMC4wMDU0MjMsIDAuMDA1NDI1LCAwLjAwNTQzMSwgMC4wMDU0MzMsIDAuMDA1NDM0LCAwLjAwNTQzNCwgMC4wMDU0MzUiLCBcCi0gICAgICAgICAgIjAuMDA1NDY3LCAwLjAwNTQ2OCwgMC4wMDU0NzQsIDAuMDA1NDc2LCAwLjAwNTQ3NywgMC4wMDU0NzcsIDAuMDA1NDc4IiwgXAotICAgICAgICAgICIwLjAwNTUxNiwgMC4wMDU1MTgsIDAuMDA1NTIzLCAwLjAwNTUyNSwgMC4wMDU1MjYsIDAuMDA1NTI3LCAwLjAwNTUyNyIsIFwKLSAgICAgICAgICAiMC4wMDU1ODUsIDAuMDA1NTg3LCAwLjAwNTU5MiwgMC4wMDU1OTQsIDAuMDA1NTk1LCAwLjAwNTU5NiwgMC4wMDU1OTYiLCBcCi0gICAgICAgICAgIjAuMDA1NjkyLCAwLjAwNTY4MywgMC4wMDU2OTksIDAuMDA1NzAxLCAwLjAwNTcwMiwgMC4wMDU3MDMsIDAuMDA1NzAzIiwgXAotICAgICAgICAgICIwLjAwNTc4MSwgMC4wMDU3ODMsIDAuMDA1Nzg5LCAwLjAwNTc5MSwgMC4wMDU3OTIsIDAuMDA1NzkyLCAwLjAwNTc5MiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oU0UpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTIxODQ4OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTIxODQ4OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTIxODQyOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNjIyOCwgMC4wMDYyNDIsIDAuMDA2MzM4LCAwLjAwNjQ1MywgMC4wMDY2MiwgMC4wMDY4MzcsIDAuMDA3MDQyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA3OTE1LCAwLjAwNzkyOCwgMC4wMDgwNTEsIDAuMDA4MTgyLCAwLjAwODQwOCwgMC4wMDg3NTYsIDAuMDA5MDg2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEJiFFJiFTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fRV9FUV8wX0FOX1NJX0VRXzAgPT0gMSdiMSI7Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDQzNzUsIC0wLjAzODc1LCAtMC4wMzI1LCAtMC4wMzI1LCAtMC4wMzI1LCAtMC4wMjg3NSwgLTAuMDI2MjUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wNDM3NSwgLTAuMDQzNzUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wNCwgLTAuMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDYxMjUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDUsIC0wLjA1LCAtMC4wNDYyNSwgLTAuMDQzNzUiLCBcCi0gICAgICAgICAgIi0wLjA2NzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNTYyNSwgLTAuMDU2MjUsIC0wLjA1MjUsIC0wLjA1IiwgXAotICAgICAgICAgICItMC4wNjc1LCAtMC4wNjI1LCAtMC4wNjI1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDU4NzUsIC0wLjA1NjI1IiwgXAotICAgICAgICAgICItMC4wNzc1LCAtMC4wNzI1LCAtMC4wNjYyNSwgLTAuMDY2MjUsIC0wLjA2NjI1LCAtMC4wNjI1LCAtMC4wNiIsIFwKLSAgICAgICAgICAiLTAuMDgsIC0wLjA3NSwgLTAuMDc1LCAtMC4wNjg3NSwgLTAuMDY4NzUsIC0wLjA2NSwgLTAuMDYyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRCYhRSZTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fRV9FUV8wX0FOX1NJX0VRXzEgPT0gMSdiMSI7Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDE4NzUsIC0wLjAwNzUsIC0wLjAwNzUsIC0wLjAwMTI1LCAwLjAwNSwgMC4wMDg3NSwgMC4wMTEyNSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgLTAuMDA2MjUsIDAuMDAzNzUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA4NzUsIDAiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzMTI1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDE1LCAtMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDM3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDIxMjUsIC0wLjAxODc1IiwgXAotICAgICAgICAgICItMC4wNTI1LCAtMC4wNDc1LCAtMC4wNDEyNSwgLTAuMDQxMjUsIC0wLjAzNSwgLTAuMDMxMjUsIC0wLjAyODc1IiwgXAotICAgICAgICAgICItMC4wNjEyNSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDQzNzUsIC0wLjA0LCAtMC4wMzEyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRCZFJlNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9FX0VRXzFfQU5fU0lfRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMzEyNSwgLTAuMDMyNSwgLTAuMDI2MjUsIC0wLjAyNjI1LCAtMC4wMiwgLTAuMDE2MjUsIC0wLjAxMzc1IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDMxMjUsIC0wLjAzMTI1LCAtMC4wMjc1LCAtMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wNDM3NSwgLTAuMDQzNzUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzM3NSwgLTAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjA2MTI1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjA1LCAtMC4wNSwgLTAuMDQ2MjUsIC0wLjA0Mzc1IiwgXAotICAgICAgICAgICItMC4wNjc1LCAtMC4wNjI1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDU2MjUsIC0wLjA1MjUsIC0wLjA1IiwgXAotICAgICAgICAgICItMC4wNzc1LCAtMC4wNzI1LCAtMC4wNzI1LCAtMC4wNjYyNSwgLTAuMDY2MjUsIC0wLjA2MjUsIC0wLjA2IiwgXAotICAgICAgICAgICItMC4wODYyNSwgLTAuMDgxMjUsIC0wLjA3NSwgLTAuMDc1LCAtMC4wNzUsIC0wLjA3MTI1LCAtMC4wNjg3NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJEJkUmIVNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMV9BTl9FX0VRXzFfQU5fU0lfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMjUsIC0wLjAyLCAtMC4wMTM3NSwgLTAuMDA3NSwgLTAuMDAxMjUsIDAuMDAyNSwgMC4wMDUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA4NzUsIDAiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxNSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMjUsIC0wLjAxNSwgLTAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMjEyNSwgLTAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjA1MjUsIC0wLjA0NzUsIC0wLjA0MTI1LCAtMC4wMzUsIC0wLjAzNSwgLTAuMDI1LCAtMC4wMjI1IiwgXAotICAgICAgICAgICItMC4wNjEyNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzc1LCAtMC4wMjc1LCAtMC4wMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEJiFFJiFTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fRV9FUV8wX0FOX1NJX0VRXzAgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU2MjUsIDAuMDUxMjUsIDAuMDM4NzUsIDAuMDMyNSwgMC4wMjYyNSwgMC4wMjI1LCAwLjAyIiwgXAotICAgICAgICAgICIwLjA2MTI1LCAwLjA1NjI1LCAwLjA1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDI3NSwgMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMDY3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1LCAwLjA0Mzc1LCAwLjAzMzc1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICIwLjA3Mzc1LCAwLjA2ODc1LCAwLjA1NjI1LCAwLjA1LCAwLjA1LCAwLjA0LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIjAuMDgsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNSwgMC4wNDYyNSwgMC4wMzc1IiwgXAotICAgICAgICAgICIwLjA4Mzc1LCAwLjA3ODc1LCAwLjA2NjI1LCAwLjA2LCAwLjA1Mzc1LCAwLjA1LCAwLjA0NzUiLCBcCi0gICAgICAgICAgIjAuMDg2MjUsIDAuMDgxMjUsIDAuMDc1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDUyNSwgMC4wNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUQmIUUmU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX0VfRVFfMF9BTl9TSV9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1NjI1LCAwLjA1MTI1LCAwLjA0NSwgMC4wMzg3NSwgMC4wMzg3NSwgMC4wMzUsIDAuMDMyNSIsIFwKLSAgICAgICAgICAiMC4wNjEyNSwgMC4wNTYyNSwgMC4wNSwgMC4wNSwgMC4wNDM3NSwgMC4wNCwgMC4wMzc1IiwgXAotICAgICAgICAgICIwLjA3Mzc1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDU2MjUsIDAuMDUyNSwgMC4wNSIsIFwKLSAgICAgICAgICAiMC4wOCwgMC4wNzUsIDAuMDY4NzUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNTg3NSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiMC4wOTI1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNzUsIDAuMDY4NzUsIDAuMDcxMjUsIDAuMDY4NzUiLCBcCi0gICAgICAgICAgIjAuMTAyNSwgMC4wOTc1LCAwLjA5MTI1LCAwLjA4NSwgMC4wODUsIDAuMDgxMjUsIDAuMDc4NzUiLCBcCi0gICAgICAgICAgIjAuMTExMjUsIDAuMSwgMC4xLCAwLjA5Mzc1LCAwLjA5Mzc1LCAwLjA5LCAwLjA4NzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEJkUmU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX0VfRVFfMV9BTl9TSV9FUV8xID09IDEnYjEiOwotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1NjI1LCAwLjA0NSwgMC4wMzg3NSwgMC4wMzI1LCAwLjAyNjI1LCAwLjAyMjUsIDAuMDEzNzUiLCBcCi0gICAgICAgICAgIjAuMDYxMjUsIDAuMDUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMjc1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiMC4wNjc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDUsIDAuMDQzNzUsIDAuMDMzNzUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMDgsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNSwgMC4wNDYyNSwgMC4wMzc1IiwgXAotICAgICAgICAgICIwLjA4NjI1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1MjUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMDk2MjUsIDAuMDg1LCAwLjA3ODc1LCAwLjA3MjUsIDAuMDY2MjUsIDAuMDYyNSwgMC4wNiIsIFwKLSAgICAgICAgICAiMC4xMDUsIDAuMDkzNzUsIDAuMDg3NSwgMC4wODEyNSwgMC4wNzUsIDAuMDcxMjUsIDAuMDYyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiRCZFJiFTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzFfQU5fRV9FUV8xX0FOX1NJX0VRXzAgPT0gMSdiMSI7Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY4NzUsIDAuMDYzNzUsIDAuMDU3NSwgMC4wNTEyNSwgMC4wNTEyNSwgMC4wNDc1LCAwLjA0NSIsIFwKLSAgICAgICAgICAiMC4wOCwgMC4wNjg3NSwgMC4wNjI1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDUyNSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiMC4wODYyNSwgMC4wODEyNSwgMC4wNzUsIDAuMDY4NzUsIDAuMDY4NzUsIDAuMDY1LCAwLjA2MjUiLCBcCi0gICAgICAgICAgIjAuMDkyNSwgMC4wODc1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNzUsIDAuMDcxMjUsIDAuMDY4NzUiLCBcCi0gICAgICAgICAgIjAuMDk4NzUsIDAuMDg3NSwgMC4wODEyNSwgMC4wODEyNSwgMC4wNzUsIDAuMDc3NSwgMC4wNzUiLCBcCi0gICAgICAgICAgIjAuMTAyNSwgMC4wOTc1LCAwLjA5MTI1LCAwLjA4NSwgMC4wODUsIDAuMDgxMjUsIDAuMDc4NzUiLCBcCi0gICAgICAgICAgIjAuMTA1LCAwLjEsIDAuMDkzNzUsIDAuMDg3NSwgMC4wODc1LCAwLjA4Mzc1LCAwLjA4MTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTSSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjYxODM5OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDY2MDM4MjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2NjE4Mzk7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzMTYxLCAwLjAwMzEzNiwgMC4wMDMxNDksIDAuMDAzMTk0LCAwLjAwMzI1MiwgMC4wMDMzNjMsIDAuMDAzNDg1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA2NjI1LCAwLjAwNjYwOCwgMC4wMDY2MTcsIDAuMDA2NjYzLCAwLjAwNjcyNywgMC4wMDY4MjcsIDAuMDA2OTM5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlNFIjsKLSAgICAgIHNkZl9jb25kIDogIlNFID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAzNzUsIC0wLjAzMjUsIC0wLjAzMjUsIC0wLjAyNjI1LCAtMC4wMjYyNSwgLTAuMDIyNSwgLTAuMDIiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzNzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMzEyNSwgLTAuMDI3NSwgLTAuMDI1IiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzMzc1LCAtMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDYxMjUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wNDYyNSwgLTAuMDQzNzUiLCBcCi0gICAgICAgICAgIi0wLjA2NzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNTYyNSwgLTAuMDU2MjUsIC0wLjA1MjUsIC0wLjA1IiwgXAotICAgICAgICAgICItMC4wNzEyNSwgLTAuMDcyNSwgLTAuMDY2MjUsIC0wLjA2NjI1LCAtMC4wNiwgLTAuMDYyNSwgLTAuMDYiLCBcCi0gICAgICAgICAgIi0wLjA4LCAtMC4wNzUsIC0wLjA3NSwgLTAuMDY4NzUsIC0wLjA2ODc1LCAtMC4wNjUsIC0wLjA2MjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMTg3NSwgLTAuMDEzNzUsIC0wLjAwNzUsIC0wLjAwMTI1LCAwLjAwNSwgMC4wMDg3NSwgMC4wMTEyNSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgLTAuMDA2MjUsIDAuMDAzNzUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMTI1LCAtMC4wMDI1LCAwIiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxODc1LCAtMC4wMDg3NSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTUsIC0wLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjA1MjUsIC0wLjA0MTI1LCAtMC4wMzUsIC0wLjAzNSwgLTAuMDI4NzUsIC0wLjAyNSwgLTAuMDIyNSIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMjc1LCAtMC4wMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlNFIjsKLSAgICAgIHNkZl9jb25kIDogIlNFID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2MjUsIDAuMDUxMjUsIDAuMDQ1LCAwLjA0NSwgMC4wMzg3NSwgMC4wMzUsIDAuMDMyNSIsIFwKLSAgICAgICAgICAiMC4wNjc1LCAwLjA1NjI1LCAwLjA1NjI1LCAwLjA1LCAwLjA1LCAwLjA0NjI1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjA3Mzc1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDU2MjUsIDAuMDUyNSwgMC4wNSIsIFwKLSAgICAgICAgICAiMC4wOCwgMC4wNzUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNjI1LCAwLjA1ODc1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICIwLjA4NjI1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNzUsIDAuMDY4NzUsIDAuMDY1LCAwLjA2MjUiLCBcCi0gICAgICAgICAgIjAuMDk2MjUsIDAuMDkxMjUsIDAuMDg1LCAwLjA3ODc1LCAwLjA3ODc1LCAwLjA3NSwgMC4wNzI1IiwgXAotICAgICAgICAgICIwLjEwNSwgMC4xLCAwLjA5Mzc1LCAwLjA4NzUsIDAuMDg3NSwgMC4wODM3NSwgMC4wODEyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1LCAwLjAzODc1LCAwLjAzMjUsIDAuMDI2MjUsIDAuMDIsIDAuMDE2MjUsIDAuMDEzNzUiLCBcCi0gICAgICAgICAgIjAuMDU1LCAwLjA1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDI1LCAwLjAyMTI1LCAwLjAxODc1IiwgXAotICAgICAgICAgICIwLjA2MTI1LCAwLjA1NjI1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDM3NSwgMC4wMjc1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiMC4wNjc1LCAwLjA2MjUsIDAuMDUsIDAuMDQzNzUsIDAuMDQzNzUsIDAuMDMzNzUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMDczNzUsIDAuMDY4NzUsIDAuMDU2MjUsIDAuMDUsIDAuMDUsIDAuMDQsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiMC4wODM3NSwgMC4wNzI1LCAwLjA2NjI1LCAwLjA2LCAwLjA1Mzc1LCAwLjA1LCAwLjA0MTI1IiwgXAotICAgICAgICAgICIwLjA5MjUsIDAuMDgxMjUsIDAuMDc1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDU4NzUsIDAuMDUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IFNNREZGSFFYMSAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKFNNREZGSFFYMSkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAxLjM0OTI0OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIGZmIChOMzAsUUJJTlQpIHsKLSAgICBuZXh0X3N0YXRlIDogIigoU0UgU0kpICsgKCFTRSAoKFMwIEQxKSArICghUzAgRDApKSkpIjsKLSAgICBjbG9ja2VkX29uIDogIkNLIjsKLSAgfQotICBwaW4oQ0spICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYwODMxNTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MDgzMTU7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjA4Mjk4OwotICAgIGNsb2NrIDogdHJ1ZTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDQxMTIsIDAuMDA0MTAzLCAwLjAwNDE3OSwgMC4wMDQyNzcsIDAuMDA0NDAzLCAwLjAwNDY0OCwgMC4wMDQ4MDkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDkyNTQsIDAuMDA5MjQ1LCAwLjAwOTMzNSwgMC4wMDk0NjYsIDAuMDA5NjIzLCAwLjAwOTc5OSwgMC4wMTAxMTIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFEMCYhRDEmIVMwJiFTRSYhU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRDBfRVFfMF9BTl9EMV9FUV8wX0FOX1MwX0VRXzBfQU5fU0VfRVFfMF9BTl9TSV9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMTAxNTIxLCAwLjEwOTcwOCwgMC4xMTg4ODUsIDAuMTI2Mjc5LCAwLjEzMjIwMiwgMC4xNDAxMTUsIDAuMTQ1ODQ1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wNjYwMzUsIDAuMDc0MTMyLCAwLjA4MzQsIDAuMDkwNDkxLCAwLjA5NjI5NCwgMC4xMDM4NDksIDAuMTA5MzY2Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihEMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwOTgwMzk4OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDk3ODM1NTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA5ODAzOTg7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA1NTg1LCAwLjAwNTU0OSwgMC4wMDU1NiwgMC4wMDU2MTIsIDAuMDA1NjgyLCAwLjAwNTgzLCAwLjAwNTk3OCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwOTYyMiwgMC4wMDk2MDEsIDAuMDA5NjE0LCAwLjAwOTY3MSwgMC4wMDk3MywgMC4wMDk4NzgsIDAuMDEwMDMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIVMwJiFTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJTMF9FUV8wX0FOX1NFX0VRXzAgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDUsIC0wLjA0NSwgLTAuMDM4NzUsIC0wLjAzODc1LCAtMC4wMzI1LCAtMC4wMzUsIC0wLjAzMjUiLCBcCi0gICAgICAgICAgIi0wLjA1NSwgLTAuMDUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDQzNzUsIC0wLjA0LCAtMC4wMzc1IiwgXAotICAgICAgICAgICItMC4wNjEyNSwgLTAuMDU2MjUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDUsIC0wLjA0NjI1LCAtMC4wNDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDczNzUsIC0wLjA2ODc1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDU2MjUsIC0wLjA1MjUsIC0wLjA1IiwgXAotICAgICAgICAgICItMC4wOCwgLTAuMDc1LCAtMC4wNjg3NSwgLTAuMDY4NzUsIC0wLjA2MjUsIC0wLjA1ODc1LCAtMC4wNTYyNSIsIFwKLSAgICAgICAgICAiLTAuMDgzNzUsIC0wLjA4NSwgLTAuMDc4NzUsIC0wLjA3MjUsIC0wLjA3MjUsIC0wLjA2ODc1LCAtMC4wNjYyNSIsIFwKLSAgICAgICAgICAiLTAuMDkyNSwgLTAuMDg3NSwgLTAuMDg3NSwgLTAuMDgxMjUsIC0wLjA4MTI1LCAtMC4wNzc1LCAtMC4wNzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMjUsIC0wLjAxMzc1LCAtMC4wMDc1LCAtMC4wMDEyNSwgLTAuMDAxMjUsIDAuMDA4NzUsIDAuMDExMjUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMjUsIC0wLjAxMjUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLjAwMzc1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwODc1LCAwIiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDE1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMTUsIC0wLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjA1MjUsIC0wLjA0NzUsIC0wLjA0MTI1LCAtMC4wMzUsIC0wLjAyODc1LCAtMC4wMjUsIC0wLjAyMjUiLCBcCi0gICAgICAgICAgIi0wLjA2MTI1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzM3NSwgLTAuMDI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhUzAmIVNFIjsKLSAgICAgIHNkZl9jb25kIDogIlMwX0VRXzBfQU5fU0VfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzUsIDAuMDYzNzUsIDAuMDU3NSwgMC4wNTc1LCAwLjA1MTI1LCAwLjA0NzUsIDAuMDQ1IiwgXAotICAgICAgICAgICIwLjA4LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNTI1LCAwLjA1IiwgXAotICAgICAgICAgICIwLjA4NjI1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjg3NSwgMC4wNjUsIDAuMDYyNSIsIFwKLSAgICAgICAgICAiMC4wOTI1LCAwLjA4NzUsIDAuMDgxMjUsIDAuMDc1LCAwLjA3NSwgMC4wNzEyNSwgMC4wNjg3NSIsIFwKLSAgICAgICAgICAiMC4wOTg3NSwgMC4wOTM3NSwgMC4wODc1LCAwLjA4MTI1LCAwLjA4MTI1LCAwLjA3NzUsIDAuMDc1IiwgXAotICAgICAgICAgICIwLjEwODc1LCAwLjEwMzc1LCAwLjA5NzUsIDAuMDkxMjUsIDAuMDkxMjUsIDAuMDg3NSwgMC4wODUiLCBcCi0gICAgICAgICAgIjAuMTE3NSwgMC4xMTI1LCAwLjEwNjI1LCAwLjEsIDAuMSwgMC4wOTYyNSwgMC4wOTM3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1NjI1LCAwLjA0NSwgMC4wMzg3NSwgMC4wMzI1LCAwLjAyNjI1LCAwLjAxNjI1LCAwLjAxMzc1IiwgXAotICAgICAgICAgICIwLjA2MTI1LCAwLjA1NjI1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDI3NSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4wNjc1LCAwLjA2MjUsIDAuMDUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzM3NSwgMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMDczNzUsIDAuMDY4NzUsIDAuMDU2MjUsIDAuMDUsIDAuMDQzNzUsIDAuMDQsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMDgsIDAuMDc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDUsIDAuMDQ2MjUsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiMC4wOSwgMC4wODUsIDAuMDcyNSwgMC4wNjYyNSwgMC4wNiwgMC4wNTYyNSwgMC4wNDc1IiwgXAotICAgICAgICAgICIwLjA5ODc1LCAwLjA4NzUsIDAuMDgxMjUsIDAuMDc1LCAwLjA2ODc1LCAwLjA1ODc1LCAwLjA1NjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihEMSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwOTMwNjEzOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDkyODM4NDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA5MzA2MTM7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA1Mjg0LCAwLjAwNTI0OCwgMC4wMDUyNjMsIDAuMDA1MzE3LCAwLjAwNTM5LCAwLjAwNTU0NSwgMC4wMDU2OTMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDk5NjksIDAuMDA5OTQ4LCAwLjAwOTk1OSwgMC4wMTAwMSwgMC4wMTAwNjYsIDAuMDEwMjA2LCAwLjAxMDM1NCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJTMCYhU0UiOwotICAgICAgc2RmX2NvbmQgOiAiUzBfRVFfMV9BTl9TRV9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjA1LCAtMC4wNDUsIC0wLjAzODc1LCAtMC4wMzg3NSwgLTAuMDMyNSwgLTAuMDI4NzUsIC0wLjAyNjI1IiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDQzNzUsIC0wLjA0Mzc1LCAtMC4wNCwgLTAuMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDYxMjUsIC0wLjA1NjI1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjA1LCAtMC4wNDYyNSwgLTAuMDQzNzUiLCBcCi0gICAgICAgICAgIi0wLjA3Mzc1LCAtMC4wNjg3NSwgLTAuMDYyNSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA1MjUsIC0wLjA1IiwgXAotICAgICAgICAgICItMC4wOCwgLTAuMDc1LCAtMC4wNjg3NSwgLTAuMDY4NzUsIC0wLjA2MjUsIC0wLjA1ODc1LCAtMC4wNTYyNSIsIFwKLSAgICAgICAgICAiLTAuMDksIC0wLjA4NSwgLTAuMDc4NzUsIC0wLjA3ODc1LCAtMC4wNzI1LCAtMC4wNjg3NSwgLTAuMDY2MjUiLCBcCi0gICAgICAgICAgIi0wLjA5MjUsIC0wLjA4NzUsIC0wLjA4NzUsIC0wLjA4MTI1LCAtMC4wODEyNSwgLTAuMDc3NSwgLTAuMDc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDI1LCAtMC4wMTM3NSwgLTAuMDA3NSwgLTAuMDAxMjUsIC0wLjAwMTI1LCAwLjAwODc1LCAwLjAxMTI1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDI1LCAtMC4wMTI1LCAtMC4wMTI1LCAtMC4wMDYyNSwgLTAuMDAyNSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDg3NSwgMCIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxNSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wNDM3NSwgLTAuMDMxMjUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAyMTI1LCAtMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wNTI1LCAtMC4wNDc1LCAtMC4wNDEyNSwgLTAuMDM1LCAtMC4wMzUsIC0wLjAyNSwgLTAuMDIyNSIsIFwKLSAgICAgICAgICAiLTAuMDYxMjUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzMzc1LCAtMC4wMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlMwJiFTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJTMF9FUV8xX0FOX1NFX0VRXzAgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc1LCAwLjA2Mzc1LCAwLjA1NzUsIDAuMDU3NSwgMC4wNTEyNSwgMC4wNDc1LCAwLjA0NSIsIFwKLSAgICAgICAgICAiMC4wOCwgMC4wNjg3NSwgMC4wNjI1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDUyNSwgMC4wNSIsIFwKLSAgICAgICAgICAiMC4wODYyNSwgMC4wODEyNSwgMC4wNzUsIDAuMDY4NzUsIDAuMDY4NzUsIDAuMDY1LCAwLjA2MjUiLCBcCi0gICAgICAgICAgIjAuMDkyNSwgMC4wODc1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNzUsIDAuMDcxMjUsIDAuMDY4NzUiLCBcCi0gICAgICAgICAgIjAuMDk4NzUsIDAuMDkzNzUsIDAuMDg3NSwgMC4wODEyNSwgMC4wODEyNSwgMC4wNzc1LCAwLjA3NSIsIFwKLSAgICAgICAgICAiMC4xMTUsIDAuMTAzNzUsIDAuMDk3NSwgMC4wOTEyNSwgMC4wOTEyNSwgMC4wODc1LCAwLjA4NSIsIFwKLSAgICAgICAgICAiMC4xMTc1LCAwLjExMjUsIDAuMTA2MjUsIDAuMSwgMC4xLCAwLjA5NjI1LCAwLjA5Mzc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU2MjUsIDAuMDUxMjUsIDAuMDM4NzUsIDAuMDMyNSwgMC4wMjYyNSwgMC4wMjI1LCAwLjAxMzc1IiwgXAotICAgICAgICAgICIwLjA2MTI1LCAwLjA1NjI1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDI3NSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4wNjc1LCAwLjA2MjUsIDAuMDUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzM3NSwgMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMDczNzUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNSwgMC4wNSwgMC4wNCwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4wOCwgMC4wNzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNSwgMC4wNDYyNSwgMC4wMzc1IiwgXAotICAgICAgICAgICIwLjA5LCAwLjA4NSwgMC4wNzI1LCAwLjA2NjI1LCAwLjA2LCAwLjA1NjI1LCAwLjA0NzUiLCBcCi0gICAgICAgICAgIjAuMDk4NzUsIDAuMDg3NSwgMC4wODEyNSwgMC4wNzUsIDAuMDY4NzUsIDAuMDU4NzUsIDAuMDU2MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFEpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4zMzU4NDY7Ci0gICAgZnVuY3Rpb24gOiAiTjMwIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBub25fdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJpc2luZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODk2MTMsIDAuMTA4MTQ5LCAwLjIxMzM5NSwgMC4zMDYzNDUsIDAuNDMwMzU1LCAwLjY3ODQ2MywgMC44MzM0NjYiLCBcCi0gICAgICAgICAgIjAuMDk3Nzg0LCAwLjExNjMxOCwgMC4yMjE1NzEsIDAuMzE0NTE1LCAwLjQzODUyOCwgMC42ODY2MzcsIDAuODQxNjg1IiwgXAotICAgICAgICAgICIwLjEwNjk2OSwgMC4xMjU1MTcsIDAuMjMwNzU4LCAwLjMyMzY5OSwgMC40NDc3MDgsIDAuNjk1ODE3LCAwLjg1MDg2MiIsIFwKLSAgICAgICAgICAiMC4xMTQyNjcsIDAuMTMyODE4LCAwLjIzODAzNiwgMC4zMzEwMDEsIDAuNDU1MDA0LCAwLjcwMzA4MiwgMC44NTgxNDgiLCBcCi0gICAgICAgICAgIjAuMTIwMDQyLCAwLjEzODU5LCAwLjI0MzgxNSwgMC4zMzY3OCwgMC40NjA3ODEsIDAuNzA4ODQ4LCAwLjg2MzkwMSIsIFwKLSAgICAgICAgICAiMC4xMjc2MzksIDAuMTQ2MjAzLCAwLjI1MTQ1NCwgMC4zNDQ0MDEsIDAuNDY4MzcsIDAuNzE2NDQzLCAwLjg3MTQ2OSIsIFwKLSAgICAgICAgICAiMC4xMzMzMzQsIDAuMTUxODk5LCAwLjI1NzEzNiwgMC4zNTAxMTIsIDAuNDc0MTQxLCAwLjcyMjE2MywgMC44NzcxNjUiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDcwODY4LCAwLjEwOTY1OSwgMC4zMzE2MDQsIDAuNTI3NjIxLCAwLjc4ODMwNSwgMS4zMDk2NSwgMS42Mzg1OSIsIFwKLSAgICAgICAgICAiMC4wNzA4NjQsIDAuMTA5NjY1LCAwLjMzMTU5NywgMC41Mjc2MDMsIDAuNzg4MzE4LCAxLjMwOTY4LCAxLjYzNjg1IiwgXAotICAgICAgICAgICIwLjA3MDg0OCwgMC4xMDk2NjgsIDAuMzMxNTg3LCAwLjUyNzU5MiwgMC43ODgyNjcsIDEuMzA5NzMsIDEuNjM2ODYiLCBcCi0gICAgICAgICAgIjAuMDcwODY2LCAwLjEwOTY3NiwgMC4zMzE1NiwgMC41Mjc1NzgsIDAuNzg5MDA5LCAxLjMxMDc4LCAxLjYzNjk4IiwgXAotICAgICAgICAgICIwLjA3MDg3NywgMC4xMDk1ODIsIDAuMzMxNTEsIDAuNTI3NTI3LCAwLjc4ODk0MiwgMS4zMTA3MywgMS42MzcyNyIsIFwKLSAgICAgICAgICAiMC4wNzA4NDYsIDAuMTA5NTY2LCAwLjMzMTUyNiwgMC41Mjc1MDIsIDAuNzg4OTMzLCAxLjMxMTc3LCAxLjYzNjg3IiwgXAotICAgICAgICAgICIwLjA3MDg5MSwgMC4xMDk1NjksIDAuMzMxNTM0LCAwLjUyNzU1MSwgMC43ODg5MzIsIDEuMzExNzEsIDEuNjM3MjUiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTAxNTIyLCAwLjExOTY1OCwgMC4yMjIyNTEsIDAuMzEyNzEsIDAuNDMzMzMyLCAwLjY3NDU1NCwgMC44MjUzMjkiLCBcCi0gICAgICAgICAgIjAuMTA5NzEsIDAuMTI3ODQ1LCAwLjIzMDQzNSwgMC4zMjA5MDQsIDAuNDQxNTMyLCAwLjY4Mjc1NiwgMC44MzM1MjEiLCBcCi0gICAgICAgICAgIjAuMTE4ODg1LCAwLjEzNzAxOSwgMC4yMzk2MDMsIDAuMzMwMDc1LCAwLjQ1MDY5NiwgMC42OTE5MjUsIDAuODQyNzQzIiwgXAotICAgICAgICAgICIwLjEyNjI4MiwgMC4xNDQ0MTgsIDAuMjQ3MDAzLCAwLjMzNzQ2MywgMC40NTgwNzQsIDAuNjk5MzA1LCAwLjg1MDA3OSIsIFwKLSAgICAgICAgICAiMC4xMzIyMDQsIDAuMTUwMzM5LCAwLjI1MjkzMSwgMC4zNDMzOTUsIDAuNDY0MDAzLCAwLjcwNTI1NSwgMC44NTU5NzQiLCBcCi0gICAgICAgICAgIjAuMTQwMTM5LCAwLjE1ODI4MiwgMC4yNjA4NjMsIDAuMzUxMjk4LCAwLjQ3MTkzLCAwLjcxMzE0OCwgMC44NjM4OTUiLCBcCi0gICAgICAgICAgIjAuMTQ1OTMxLCAwLjE2NDA2NywgMC4yNjY2MTksIDAuMzU3MDk1LCAwLjQ3NzcyOSwgMC43MTg5LCAwLjg2OTcwMyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjc0MjQsIDAuMTA0MzU4LCAwLjMxNTM0NCwgMC41MDEwOTEsIDAuNzQ5NTA1LCAxLjI0NjE4LCAxLjU1NjY2IiwgXAotICAgICAgICAgICIwLjA2NzQ0OCwgMC4xMDQzNiwgMC4zMTUzMjksIDAuNTAxMTM4LCAwLjc1MDUzNywgMS4yNDY0OSwgMS41NTg3NiIsIFwKLSAgICAgICAgICAiMC4wNjc0NjIsIDAuMTA0MzU5LCAwLjMxNTMxOCwgMC41MDExOTIsIDAuNzQ5NTY1LCAxLjI0NjQ3LCAxLjU1OTAxIiwgXAotICAgICAgICAgICIwLjA2NzQ0NSwgMC4xMDQzNTcsIDAuMzE1MzM3LCAwLjUwMTE0NSwgMC43NTA0NjMsIDEuMjQ2MTgsIDEuNTU2NzIiLCBcCi0gICAgICAgICAgIjAuMDY3NDc3LCAwLjEwNDM2LCAwLjMxNTM3LCAwLjUwMTg2NywgMC43NDk2MDUsIDEuMjQ4MDUsIDEuNTU2NjkiLCBcCi0gICAgICAgICAgIjAuMDY3NDAzLCAwLjEwNDIxMiwgMC4zMTQ3ODMsIDAuNTAxNzU2LCAwLjc1MDUzNiwgMS4yNDYyLCAxLjU1ODY3IiwgXAotICAgICAgICAgICIwLjA2NzU3MiwgMC4xMDQwOTYsIDAuMzE1MzYsIDAuNTAxMDkzLCAwLjc1MDYxOCwgMS4yNDc3MiwgMS41NTg4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwODYzMSwgMC4wMDg2MDcsIDAuMDA4NTQxLCAwLjAwODUyMSwgMC4wMDg1MDgsIDAuMDA4NDk4LCAwLjAwODQ5NCIsIFwKLSAgICAgICAgICAiMC4wMDg2MTQsIDAuMDA4NTkxLCAwLjAwODUyNSwgMC4wMDg1MDQsIDAuMDA4NDkxLCAwLjAwODQ3OSwgMC4wMDg0NzgiLCBcCi0gICAgICAgICAgIjAuMDA4NzEsIDAuMDA4Njg5LCAwLjAwODYyMywgMC4wMDg2MDEsIDAuMDA4NTg3LCAwLjAwODU3NCwgMC4wMDg1NzEiLCBcCi0gICAgICAgICAgIjAuMDA4ODAzLCAwLjAwODc4NCwgMC4wMDg3MTksIDAuMDA4Njk3LCAwLjAwODY4MiwgMC4wMDg2NjgsIDAuMDA4NjY0IiwgXAotICAgICAgICAgICIwLjAwODk1MSwgMC4wMDg5MywgMC4wMDg4NjksIDAuMDA4ODQ2LCAwLjAwODgzMSwgMC4wMDg4MTUsIDAuMDA4ODExIiwgXAotICAgICAgICAgICIwLjAwOTE0OSwgMC4wMDkxMzQsIDAuMDA5MDcsIDAuMDA5MDQ0LCAwLjAwOTAyOCwgMC4wMDkwMTIsIDAuMDA5MDA2IiwgXAotICAgICAgICAgICIwLjAwOTM3NSwgMC4wMDkzNTcsIDAuMDA5Mjk4LCAwLjAwOTI2OCwgMC4wMDkyNTUsIDAuMDA5MjM4LCAwLjAwOTIzMSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwOTM2NCwgMC4wMDkzNzUsIDAuMDA5Mzk0LCAwLjAwOTM5NywgMC4wMDk0LCAwLjAwOTQwMywgMC4wMDk0MDMiLCBcCi0gICAgICAgICAgIjAuMDA5MzU5LCAwLjAwOTM3MSwgMC4wMDkzODksIDAuMDA5MzkzLCAwLjAwOTM5NSwgMC4wMDkzOTcsIDAuMDA5Mzk4IiwgXAotICAgICAgICAgICIwLjAwOTQ3NywgMC4wMDk0ODksIDAuMDA5NTA1LCAwLjAwOTUwOSwgMC4wMDk1MTIsIDAuMDA5NTE0LCAwLjAwOTUxMyIsIFwKLSAgICAgICAgICAiMC4wMDk1NzIsIDAuMDA5NTgzLCAwLjAwOTU5OSwgMC4wMDk2MDIsIDAuMDA5NjA0LCAwLjAwOTYwNiwgMC4wMDk2MDYiLCBcCi0gICAgICAgICAgIjAuMDA5NzM2LCAwLjAwOTc0NywgMC4wMDk3NjEsIDAuMDA5NzY0LCAwLjAwOTc2NSwgMC4wMDk3NjYsIDAuMDA5NzY3IiwgXAotICAgICAgICAgICIwLjAwOTk4MywgMC4wMDk5OTMsIDAuMDEwMDA1LCAwLjAxMDAwNywgMC4wMTAwMDgsIDAuMDEwMDA4LCAwLjAxMDAwOCIsIFwKLSAgICAgICAgICAiMC4wMTAxODgsIDAuMDEwMTk4LCAwLjAxMDIxLCAwLjAxMDIxLCAwLjAxMDIxLCAwLjAxMDIxLCAwLjAxMDIwOSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUzApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTcwMTE0OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTcwMTE0OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTcwMDM1OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwOTE2LCAwLjAwOTE1NywgMC4wMDkyMzksIDAuMDA5MzQ4LCAwLjAwOTQ3MywgMC4wMDk2ODQsIDAuMDA5ODgzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDEwODc2LCAwLjAxMDksIDAuMDExMDEyLCAwLjAxMTIwMSwgMC4wMTE0MzQsIDAuMDExODQ2LCAwLjAxMjIyMSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhU0UiOwotICAgICAgc2RmX2NvbmQgOiAiU0UgPT0gMSdiMCI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDMxMjUsIC0wLjAyLCAtMC4wMTM3NSwgLTAuMDA3NSwgLTAuMDA3NSwgMC4wMDI1LCAwLjAwNSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDg3NSwgMCIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxNSwgLTAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMjEyNSwgLTAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAzMTI1LCAtMC4wMjEyNSwgLTAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjA1ODc1LCAtMC4wNTM3NSwgLTAuMDQxMjUsIC0wLjA0MTI1LCAtMC4wMzUsIC0wLjAyNSwgLTAuMDIyNSIsIFwKLSAgICAgICAgICAiLTAuMDYxMjUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzMzc1LCAtMC4wMjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMTg3NSwgLTAuMDEzNzUsIC0wLjAwMTI1LCAtMC4wMDEyNSwgMC4wMDUsIDAuMDA4NzUsIDAuMDE3NSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMCwgMC4wMDM3NSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDI1LCAwIiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDE1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMjEyNSwgLTAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjA1ODc1LCAtMC4wNTM3NSwgLTAuMDQ3NSwgLTAuMDQxMjUsIC0wLjAzNSwgLTAuMDMxMjUsIC0wLjAyODc1IiwgXAotICAgICAgICAgICItMC4wNjEyNSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjA0LCAtMC4wMzEyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIVNFIjsKLSAgICAgIHNkZl9jb25kIDogIlNFID09IDEnYjAiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2ODc1LCAwLjA2Mzc1LCAwLjA1NzUsIDAuMDUxMjUsIDAuMDQ1LCAwLjA0NzUsIDAuMDM4NzUiLCBcCi0gICAgICAgICAgIjAuMDczNzUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNTYyNSwgMC4wNTI1LCAwLjA1IiwgXAotICAgICAgICAgICIwLjA4NjI1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1ODc1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICIwLjA5MjUsIDAuMDg3NSwgMC4wODEyNSwgMC4wNzUsIDAuMDc1LCAwLjA3MTI1LCAwLjA2ODc1IiwgXAotICAgICAgICAgICIwLjEwNSwgMC4wOTM3NSwgMC4wODc1LCAwLjA4NzUsIDAuMDgxMjUsIDAuMDc3NSwgMC4wNzUiLCBcCi0gICAgICAgICAgIjAuMTE1LCAwLjExLCAwLjEwMzc1LCAwLjA5NzUsIDAuMDk3NSwgMC4wOTM3NSwgMC4wOTEyNSIsIFwKLSAgICAgICAgICAiMC4xMjM3NSwgMC4xMTg3NSwgMC4xMTI1LCAwLjEwNjI1LCAwLjEwNjI1LCAwLjEwMjUsIDAuMSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4MTI1LCAwLjA3NjI1LCAwLjA3LCAwLjA2Mzc1LCAwLjA2Mzc1LCAwLjA2LCAwLjA1NzUiLCBcCi0gICAgICAgICAgIjAuMDg2MjUsIDAuMDgxMjUsIDAuMDc1LCAwLjA2ODc1LCAwLjA2ODc1LCAwLjA2NSwgMC4wNjI1IiwgXAotICAgICAgICAgICIwLjA5MjUsIDAuMDg3NSwgMC4wODEyNSwgMC4wNzUsIDAuMDc1LCAwLjA3MTI1LCAwLjA2ODc1IiwgXAotICAgICAgICAgICIwLjA5ODc1LCAwLjA5Mzc1LCAwLjA4NzUsIDAuMDgxMjUsIDAuMDgxMjUsIDAuMDc3NSwgMC4wNzUiLCBcCi0gICAgICAgICAgIjAuMTA1LCAwLjA5Mzc1LCAwLjA4NzUsIDAuMDg3NSwgMC4wODEyNSwgMC4wNzc1LCAwLjA3NSIsIFwKLSAgICAgICAgICAiMC4xMDg3NSwgMC4xMDM3NSwgMC4wOTEyNSwgMC4wOTEyNSwgMC4wODUsIDAuMDgxMjUsIDAuMDc4NzUiLCBcCi0gICAgICAgICAgIjAuMTExMjUsIDAuMTA2MjUsIDAuMSwgMC4wOTM3NSwgMC4wOTM3NSwgMC4wOSwgMC4wODc1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTRSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNTk1MjM7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNTk1MjM7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNTk0OTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDY2MjMsIDAuMDA2NjQsIDAuMDA2NzI4LCAwLjAwNjgzNiwgMC4wMDY5NjIsIDAuMDA3MjAyLCAwLjAwNzQwNyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwODM2MSwgMC4wMDgzNTEsIDAuMDA4NDg1LCAwLjAwODY2NCwgMC4wMDg5MjQsIDAuMDA5MzA2LCAwLjAwOTY3MiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRDAmIUQxJiFTMCZTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEMF9FUV8wX0FOX0QxX0VRXzBfQU5fUzBfRVFfMF9BTl9TSV9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAxODc1LCAtMC4wMTM3NSwgLTAuMDEzNzUsIC0wLjAwNzUsIC0wLjAwNzUsIC0wLjAwMzc1LCAwLjAwNSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAxMjUsIC0wLjAwODc1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxNSwgLTAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjAzNzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMzEyNSwgLTAuMDI3NSwgLTAuMDI1IiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA0Mzc1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDM3NSwgLTAuMDMzNzUsIC0wLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wNTg3NSwgLTAuMDUzNzUsIC0wLjA0NzUsIC0wLjA0NzUsIC0wLjA0MTI1LCAtMC4wMzc1LCAtMC4wMzUiLCBcCi0gICAgICAgICAgIi0wLjA2NzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDUsIC0wLjA0NjI1LCAtMC4wNDM3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAsIDAuMDA1LCAwLjAxMTI1LCAwLjAxNzUsIDAuMDIzNzUsIDAuMDI3NSwgMC4wMzYyNSIsIFwKLSAgICAgICAgICAiLTAuMDExMjUsIDAsIDAuMDA2MjUsIDAuMDEyNSwgMC4wMTI1LCAwLjAyMjUsIDAuMDI1IiwgXAotICAgICAgICAgICItMC4wMTc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMCwgMC4wMDYyNSwgMC4wMSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMCwgMC4wMDM3NSwgMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIC0wLjAwMjUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA0LCAtMC4wMjg3NSwgLTAuMDIyNSwgLTAuMDE2MjUsIC0wLjAxNjI1LCAtMC4wMDYyNSwgLTAuMDAzNzUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTUsIC0wLjAxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUQwJkQxJlMwJiFTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEMF9FUV8wX0FOX0QxX0VRXzFfQU5fUzBfRVFfMV9BTl9TSV9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAxMjUsIC0wLjAwNzUsIDAuMDA1LCAwLjAxMTI1LCAwLjAxMTI1LCAwLjAyMTI1LCAwLjAyMzc1IiwgXAotICAgICAgICAgICItMC4wMTc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMCwgMC4wMDYyNSwgMC4wMSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMCwgMC4wMDM3NSwgMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIC0wLjAwMjUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAxMjUsIC0wLjAwMjUsIDAiLCBcCi0gICAgICAgICAgIi0wLjA0LCAtMC4wMzUsIC0wLjAyODc1LCAtMC4wMjI1LCAtMC4wMTYyNSwgLTAuMDEyNSwgLTAuMDAzNzUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDE1LCAtMC4wMDYyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAzMTI1LCAtMC4wMjYyNSwgLTAuMDIsIC0wLjAyLCAtMC4wMiwgLTAuMDE2MjUsIC0wLjAxMzc1IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDIxMjUsIC0wLjAxODc1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzNzUsIC0wLjAzNzUsIC0wLjAzMzc1LCAtMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjA0Mzc1LCAtMC4wNDM3NSwgLTAuMDQsIC0wLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjA2MTI1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDQsIC0wLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjA2NSwgLTAuMDYsIC0wLjA2LCAtMC4wNTM3NSwgLTAuMDUzNzUsIC0wLjA1LCAtMC4wNDc1IiwgXAotICAgICAgICAgICItMC4wNzM3NSwgLTAuMDY4NzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNTYyNSwgLTAuMDUyNSwgLTAuMDUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEMCYhRDEmIVMwJlNJIjsKLSAgICAgIHNkZl9jb25kIDogIkQwX0VRXzBfQU5fRDFfRVFfMF9BTl9TMF9FUV8wX0FOX1NJX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM3NSwgMC4wMzI1LCAwLjAyNjI1LCAwLjAyNjI1LCAwLjAyLCAwLjAxNjI1LCAwLjAxMzc1IiwgXAotICAgICAgICAgICIwLjA0ODc1LCAwLjAzNzUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMjUsIDAuMDIxMjUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMDU1LCAwLjA1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDM3NSwgMC4wMzM3NSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4wNjc1LCAwLjA1NjI1LCAwLjA1LCAwLjA1LCAwLjA0Mzc1LCAwLjA0LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIjAuMDczNzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNTYyNSwgMC4wNSwgMC4wNDYyNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4wODM3NSwgMC4wNzI1LCAwLjA2NjI1LCAwLjA2NjI1LCAwLjA2LCAwLjA1NjI1LCAwLjA1Mzc1IiwgXAotICAgICAgICAgICIwLjA4NjI1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjg3NSwgMC4wNjUsIDAuMDYyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzMTI1LCAwLjAyNjI1LCAwLjAxMzc1LCAwLjAwNzUsIDAuMDAxMjUsIC0wLjAwMjUsIC0wLjAxMTI1IiwgXAotICAgICAgICAgICIwLjA0MjUsIDAuMDMxMjUsIDAuMDI1LCAwLjAxODc1LCAwLjAxMjUsIDAuMDAyNSwgMCIsIFwKLSAgICAgICAgICAiMC4wNDg3NSwgMC4wNDM3NSwgMC4wMzEyNSwgMC4wMjUsIDAuMDE4NzUsIDAuMDE1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICIwLjA1NSwgMC4wNSwgMC4wNDM3NSwgMC4wMzEyNSwgMC4wMzEyNSwgMC4wMjEyNSwgMC4wMTI1IiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDU2MjUsIDAuMDUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMjc1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiMC4wNzc1LCAwLjA2NjI1LCAwLjA2LCAwLjA0NzUsIDAuMDQ3NSwgMC4wMzc1LCAwLjAzNSIsIFwKLSAgICAgICAgICAiMC4wOCwgMC4wNzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNSwgMC4wNDYyNSwgMC4wMzc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRDAmRDEmUzAmIVNJIjsKLSAgICAgIHNkZl9jb25kIDogIkQwX0VRXzBfQU5fRDFfRVFfMV9BTl9TMF9FUV8xX0FOX1NJX0VRXzAgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM3NSwgMC4wMzI1LCAwLjAyLCAwLjAxMzc1LCAwLjAwNzUsIDAuMDAzNzUsIC0wLjAwNSIsIFwKLSAgICAgICAgICAiMC4wNDg3NSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAxODc1LCAwLjAxODc1LCAwLjAwODc1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICIwLjA1NSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMTUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4wNTUsIDAuMDUsIDAuMDQzNzUsIDAuMDMxMjUsIDAuMDMxMjUsIDAuMDIxMjUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMDYxMjUsIDAuMDU2MjUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMjc1LCAwLjAxODc1IiwgXAotICAgICAgICAgICIwLjA2NSwgMC4wNiwgMC4wNTM3NSwgMC4wNDEyNSwgMC4wNDEyNSwgMC4wMzEyNSwgMC4wMjg3NSIsIFwKLSAgICAgICAgICAiMC4wNzM3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1LCAwLjA0Mzc1LCAwLjAzMzc1LCAwLjAzMTI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU2MjUsIDAuMDQ1LCAwLjAzODc1LCAwLjAzODc1LCAwLjAzMjUsIDAuMDI4NzUsIDAuMDI2MjUiLCBcCi0gICAgICAgICAgIjAuMDYxMjUsIDAuMDU2MjUsIDAuMDUsIDAuMDQzNzUsIDAuMDQzNzUsIDAuMDQsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiMC4wNzM3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1NjI1LCAwLjA1LCAwLjA0NjI1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjA4LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNTI1LCAwLjA1IiwgXAotICAgICAgICAgICIwLjA4NjI1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1ODc1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICIwLjA5LCAwLjA3ODc1LCAwLjA3ODc1LCAwLjA3MjUsIDAuMDY2MjUsIDAuMDYyNSwgMC4wNiIsIFwKLSAgICAgICAgICAiMC4wOTI1LCAwLjA4NzUsIDAuMDgxMjUsIDAuMDc1LCAwLjA3NSwgMC4wNzEyNSwgMC4wNjg3NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oU0kpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDk4MDcyNzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA5Nzg3Mzg7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwOTgwNzI3OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzkyNiwgMC4wMDM4ODQsIDAuMDAzOTA2LCAwLjAwMzk3MiwgMC4wMDQwNjEsIDAuMDA0MjI4LCAwLjAwNDQxNiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNzM4NCwgMC4wMDczNTYsIDAuMDA3MzgyLCAwLjAwNzQ0NywgMC4wMDc1MTEsIDAuMDA3NjY2LCAwLjAwNzgzMSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJTRSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMjUsIC0wLjAyLCAtMC4wMTM3NSwgLTAuMDEzNzUsIC0wLjAwNzUsIC0wLjAwMzc1LCAtMC4wMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDg3NSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzMTI1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMjUsIC0wLjAyMTI1LCAtMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDMxMjUsIC0wLjAyNzUsIC0wLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNDM3NSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzNzUsIC0wLjAzMzc1LCAtMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDU4NzUsIC0wLjA1Mzc1LCAtMC4wNDc1LCAtMC4wNDc1LCAtMC4wNDEyNSwgLTAuMDM3NSwgLTAuMDM1IiwgXAotICAgICAgICAgICItMC4wNjc1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjA1LCAtMC4wNDYyNSwgLTAuMDQzNzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMDYyNSwgMC4wMDUsIDAuMDExMjUsIDAuMDE3NSwgMC4wMjM3NSwgMC4wMjc1LCAwLjAzNjI1IiwgXAotICAgICAgICAgICItMC4wMTEyNSwgMCwgMC4wMDYyNSwgMC4wMTI1LCAwLjAxODc1LCAwLjAyMjUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjAxNzUsIC0wLjAwNjI1LCAwLCAwLjAwNjI1LCAwLjAxMjUsIDAuMDE2MjUsIDAuMDI1IiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAsIDAuMDA2MjUsIDAuMDEsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAsIDAuMDEsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDI3NSwgLTAuMDIyNSwgLTAuMDE2MjUsIC0wLjAxLCAtMC4wMDM3NSwgMCwgMC4wMDg3NSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAtMC4wMDI1LCAwIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJTRSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDM3NSwgMC4wMzg3NSwgMC4wMzI1LCAwLjAyNjI1LCAwLjAyNjI1LCAwLjAyMjUsIDAuMDIiLCBcCi0gICAgICAgICAgIjAuMDQ4NzUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMzEyNSwgMC4wMjc1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiMC4wNjEyNSwgMC4wNSwgMC4wNDM3NSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzMzc1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDU2MjUsIDAuMDUsIDAuMDUsIDAuMDQzNzUsIDAuMDQsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiMC4wNzM3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1NjI1LCAwLjA1LCAwLjA0NjI1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjA4Mzc1LCAwLjA3MjUsIDAuMDY2MjUsIDAuMDYsIDAuMDYsIDAuMDU2MjUsIDAuMDUzNzUiLCBcCi0gICAgICAgICAgIjAuMDg2MjUsIDAuMDgxMjUsIDAuMDc1LCAwLjA2ODc1LCAwLjA2ODc1LCAwLjA2NSwgMC4wNTYyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzMTI1LCAwLjAyLCAwLjAxMzc1LCAwLjAwNzUsIDAuMDAxMjUsIC0wLjAwODc1LCAtMC4wMTEyNSIsIFwKLSAgICAgICAgICAiMC4wMzYyNSwgMC4wMjUsIDAuMDE4NzUsIDAuMDEyNSwgMC4wMDYyNSwgLTAuMDAzNzUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICIwLjA0MjUsIDAuMDMxMjUsIDAuMDI1LCAwLjAxODc1LCAwLjAxMjUsIDAuMDAyNSwgMCIsIFwKLSAgICAgICAgICAiMC4wNDg3NSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMTg3NSwgMC4wMDg3NSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiMC4wNTUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMjUsIDAuMDE1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMDU4NzUsIDAuMDUzNzUsIDAuMDQxMjUsIDAuMDM1LCAwLjAyODc1LCAwLjAyNSwgMC4wMTYyNSIsIFwKLSAgICAgICAgICAiMC4wNjc1LCAwLjA1NjI1LCAwLjA1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDI3NSwgMC4wMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IFNNREZGSFFYMiAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKFNNREZGSFFYMikgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAxLjQ2Nzc2OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIGZmIChOMzAsUUJJTlQpIHsKLSAgICBuZXh0X3N0YXRlIDogIigoU0UgU0kpICsgKCFTRSAoKFMwIEQxKSArICghUzAgRDApKSkpIjsKLSAgICBjbG9ja2VkX29uIDogIkNLIjsKLSAgfQotICBwaW4oQ0spICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY0NTU1NDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2NDU1MzM7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjQ1NTU0OwotICAgIGNsb2NrIDogdHJ1ZTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDQxMDksIDAuMDA0MSwgMC4wMDQxNzcsIDAuMDA0Mjg0LCAwLjAwNDQwNiwgMC4wMDQ2MzQsIDAuMDA0ODEzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA5MjQ4LCAwLjAwOTIzOCwgMC4wMDkzMywgMC4wMDk0NzQsIDAuMDA5NjM2LCAwLjAwOTc5MywgMC4wMTAxMDkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFEMCYhRDEmIVMwJiFTRSYhU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRDBfRVFfMF9BTl9EMV9FUV8wX0FOX1MwX0VRXzBfQU5fU0VfRVFfMF9BTl9TSV9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDg4Mzk1LCAwLjA5NjU4NiwgMC4xMDU3NTgsIDAuMTEzMTQxLCAwLjExOTA3LCAwLjEyNjk1NywgMC4xMzI3ODIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjA2NTM5LCAwLjA3MzU0NSwgMC4wODI2MjgsIDAuMDg5NzQ1LCAwLjA5NTUsIDAuMTAzLCAwLjEwODQ3MiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRDApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDk2NDI1OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDk2MjE5MjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA5NjQyNTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDU1NDMsIDAuMDA1NTA3LCAwLjAwNTUxNiwgMC4wMDU1NjksIDAuMDA1NjM2LCAwLjAwNTc4MSwgMC4wMDU5MzIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDk2OTMsIDAuMDA5NjcxLCAwLjAwOTY4NSwgMC4wMDk3MzgsIDAuMDA5ODEsIDAuMDA5OTQ3LCAwLjAxMDA5MyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhUzAmIVNFIjsKLSAgICAgIHNkZl9jb25kIDogIlMwX0VRXzBfQU5fU0VfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wNSwgLTAuMDQ1LCAtMC4wMzg3NSwgLTAuMDM4NzUsIC0wLjAzMjUsIC0wLjAzNSwgLTAuMDMyNSIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wNDM3NSwgLTAuMDQsIC0wLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjA2MTI1LCAtMC4wNTYyNSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNSwgLTAuMDQ2MjUsIC0wLjA0Mzc1IiwgXAotICAgICAgICAgICItMC4wNzM3NSwgLTAuMDY4NzUsIC0wLjA2MjUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNTI1LCAtMC4wNSIsIFwKLSAgICAgICAgICAiLTAuMDgsIC0wLjA3NSwgLTAuMDY4NzUsIC0wLjA2ODc1LCAtMC4wNjI1LCAtMC4wNTg3NSwgLTAuMDU2MjUiLCBcCi0gICAgICAgICAgIi0wLjA4Mzc1LCAtMC4wODUsIC0wLjA3ODc1LCAtMC4wNzg3NSwgLTAuMDcyNSwgLTAuMDY4NzUsIC0wLjA2NjI1IiwgXAotICAgICAgICAgICItMC4wOTI1LCAtMC4wODc1LCAtMC4wODc1LCAtMC4wODEyNSwgLTAuMDgxMjUsIC0wLjA3NzUsIC0wLjA3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAxODc1LCAtMC4wMTM3NSwgLTAuMDA3NSwgLTAuMDAxMjUsIDAuMDA1LCAwLjAwODc1LCAwLjAxMTI1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAtMC4wMDYyNSwgMC4wMDM3NSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAxMjUsIC0wLjAwMjUsIDAiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAwODc1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDI1LCAtMC4wMTUsIC0wLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjA1MjUsIC0wLjA0NzUsIC0wLjA0MTI1LCAtMC4wMzUsIC0wLjAyODc1LCAtMC4wMjUsIC0wLjAyMjUiLCBcCi0gICAgICAgICAgIi0wLjA1NSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzc1LCAtMC4wMzM3NSwgLTAuMDI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhUzAmIVNFIjsKLSAgICAgIHNkZl9jb25kIDogIlMwX0VRXzBfQU5fU0VfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzUsIDAuMDcsIDAuMDYzNzUsIDAuMDU3NSwgMC4wNTEyNSwgMC4wNDc1LCAwLjA0NSIsIFwKLSAgICAgICAgICAiMC4wOCwgMC4wNzUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNjI1LCAwLjA1ODc1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICIwLjA4NjI1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjg3NSwgMC4wNjUsIDAuMDYyNSIsIFwKLSAgICAgICAgICAiMC4wOTg3NSwgMC4wODc1LCAwLjA4MTI1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNzEyNSwgMC4wNjg3NSIsIFwKLSAgICAgICAgICAiMC4xMDUsIDAuMDkzNzUsIDAuMDg3NSwgMC4wODc1LCAwLjA4MTI1LCAwLjA3NzUsIDAuMDc1IiwgXAotICAgICAgICAgICIwLjExNSwgMC4xMDM3NSwgMC4wOTc1LCAwLjA5NzUsIDAuMDkxMjUsIDAuMDg3NSwgMC4wODUiLCBcCi0gICAgICAgICAgIjAuMTIzNzUsIDAuMTEyNSwgMC4xMDYyNSwgMC4xMDYyNSwgMC4xLCAwLjA5NjI1LCAwLjA5Mzc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU2MjUsIDAuMDUxMjUsIDAuMDM4NzUsIDAuMDMyNSwgMC4wMjYyNSwgMC4wMjI1LCAwLjAxMzc1IiwgXAotICAgICAgICAgICIwLjA2MTI1LCAwLjA1NjI1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDI3NSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4wNjc1LCAwLjA2MjUsIDAuMDUsIDAuMDQzNzUsIDAuMDQzNzUsIDAuMDMzNzUsIDAuMDI1IiwgXAotICAgICAgICAgICIwLjA3Mzc1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDUsIDAuMDUsIDAuMDQsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiMC4wOCwgMC4wNzUsIDAuMDY4NzUsIDAuMDU2MjUsIDAuMDU2MjUsIDAuMDQ2MjUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMDksIDAuMDg1LCAwLjA3MjUsIDAuMDY2MjUsIDAuMDYsIDAuMDU2MjUsIDAuMDQ3NSIsIFwKLSAgICAgICAgICAiMC4wOTg3NSwgMC4wODc1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNTg3NSwgMC4wNTYyNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRDEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDk1NDkxMTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA5NTI0MjE7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwOTU0OTExOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNTE5MywgMC4wMDUxNTYsIDAuMDA1MTY5LCAwLjAwNTIyNCwgMC4wMDUyOTcsIDAuMDA1NDQzLCAwLjAwNTU5OCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAxMDAzNywgMC4wMTAwMTYsIDAuMDEwMDI4LCAwLjAxMDA4LCAwLjAxMDEzOSwgMC4wMTAyOCwgMC4wMTA0MjEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiUzAmIVNFIjsKLSAgICAgIHNkZl9jb25kIDogIlMwX0VRXzFfQU5fU0VfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wNSwgLTAuMDQ1LCAtMC4wMzg3NSwgLTAuMDM4NzUsIC0wLjAzMjUsIC0wLjAyODc1LCAtMC4wMjYyNSIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjA0Mzc1LCAtMC4wNDM3NSwgLTAuMDQsIC0wLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjA2MTI1LCAtMC4wNTYyNSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNSwgLTAuMDQ2MjUsIC0wLjA0Mzc1IiwgXAotICAgICAgICAgICItMC4wNjc1LCAtMC4wNjI1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDU2MjUsIC0wLjA1MjUsIC0wLjA1IiwgXAotICAgICAgICAgICItMC4wOCwgLTAuMDc1LCAtMC4wNjg3NSwgLTAuMDY4NzUsIC0wLjA2MjUsIC0wLjA1ODc1LCAtMC4wNTYyNSIsIFwKLSAgICAgICAgICAiLTAuMDgzNzUsIC0wLjA3ODc1LCAtMC4wNzg3NSwgLTAuMDc4NzUsIC0wLjA3MjUsIC0wLjA2ODc1LCAtMC4wNjYyNSIsIFwKLSAgICAgICAgICAiLTAuMDkyNSwgLTAuMDg3NSwgLTAuMDg3NSwgLTAuMDgxMjUsIC0wLjA4MTI1LCAtMC4wNzc1LCAtMC4wNzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMTg3NSwgLTAuMDEzNzUsIC0wLjAwNzUsIC0wLjAwMTI1LCAtMC4wMDEyNSwgMC4wMDg3NSwgMC4wMTEyNSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgLTAuMDA2MjUsIDAuMDAzNzUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMTI1LCAtMC4wMDI1LCAwIiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMDg3NSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAyNSwgLTAuMDE1LCAtMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wNTI1LCAtMC4wNDc1LCAtMC4wNDEyNSwgLTAuMDM1LCAtMC4wMjg3NSwgLTAuMDI1LCAtMC4wMjI1IiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDM3NSwgLTAuMDMzNzUsIC0wLjAyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiUzAmIVNFIjsKLSAgICAgIHNkZl9jb25kIDogIlMwX0VRXzFfQU5fU0VfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzUsIDAuMDYzNzUsIDAuMDU3NSwgMC4wNTc1LCAwLjA1MTI1LCAwLjA0NzUsIDAuMDQ1IiwgXAotICAgICAgICAgICIwLjA4LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA2MjUsIDAuMDU4NzUsIDAuMDUiLCBcCi0gICAgICAgICAgIjAuMDg2MjUsIDAuMDgxMjUsIDAuMDc1LCAwLjA2ODc1LCAwLjA2ODc1LCAwLjA2NSwgMC4wNjI1IiwgXAotICAgICAgICAgICIwLjA5ODc1LCAwLjA4NzUsIDAuMDgxMjUsIDAuMDgxMjUsIDAuMDc1LCAwLjA3MTI1LCAwLjA2ODc1IiwgXAotICAgICAgICAgICIwLjEwNSwgMC4wOTM3NSwgMC4wODc1LCAwLjA4NzUsIDAuMDgxMjUsIDAuMDc3NSwgMC4wNzUiLCBcCi0gICAgICAgICAgIjAuMTE1LCAwLjEwMzc1LCAwLjA5NzUsIDAuMDk3NSwgMC4wOTEyNSwgMC4wODc1LCAwLjA4NSIsIFwKLSAgICAgICAgICAiMC4xMjM3NSwgMC4xMTI1LCAwLjEwNjI1LCAwLjEsIDAuMSwgMC4wOTYyNSwgMC4wOTM3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1NjI1LCAwLjA1MTI1LCAwLjAzODc1LCAwLjAzMjUsIDAuMDI2MjUsIDAuMDIyNSwgMC4wMTM3NSIsIFwKLSAgICAgICAgICAiMC4wNjEyNSwgMC4wNTYyNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyNzUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMDY3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA0Mzc1LCAwLjA0Mzc1LCAwLjAzMzc1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICIwLjA4LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDUsIDAuMDQsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiMC4wOCwgMC4wNzUsIDAuMDY4NzUsIDAuMDU2MjUsIDAuMDU2MjUsIDAuMDQ2MjUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMDksIDAuMDg1LCAwLjA3MjUsIDAuMDY2MjUsIDAuMDYsIDAuMDU2MjUsIDAuMDQ3NSIsIFwKLSAgICAgICAgICAiMC4wOTg3NSwgMC4wODc1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNTg3NSwgMC4wNTYyNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjcwMzg1ODsKLSAgICBmdW5jdGlvbiA6ICJOMzAiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5vbl91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcmlzaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3NjU5OCwgMC4xNTMwOTgsIDAuMjE0MjIzLCAwLjI5MDY1NywgMC4zNjcxMjEsIDAuNDQzNTQ5LCAwLjUyMDAyMyIsIFwKLSAgICAgICAgICAiMC4wODQ3NDUsIDAuMTYxMjUsIDAuMjIyMzgzLCAwLjI5ODgwNSwgMC4zNzUyNDMsIDAuNDUxNzA4LCAwLjUyODE2NiIsIFwKLSAgICAgICAgICAiMC4wOTM5LCAwLjE3MDQxMiwgMC4yMzE1MjUsIDAuMzA3OTY0LCAwLjM4NDM5OSwgMC40NjA4NDcsIDAuNTM3MzI2IiwgXAotICAgICAgICAgICIwLjEwMTIxOSwgMC4xNzc3MzQsIDAuMjM4ODksIDAuMzE1Mjg3LCAwLjM5MTcyNCwgMC40NjgxNTYsIDAuNTQ0NjE5IiwgXAotICAgICAgICAgICIwLjEwNjk1MSwgMC4xODM0NzksIDAuMjQ0NjMzLCAwLjMyMTAyOSwgMC4zOTc0NTUsIDAuNDczOTI1LCAwLjU1MDM1IiwgXAotICAgICAgICAgICIwLjExNDU3MSwgMC4xOTExMDksIDAuMjUyMjU2LCAwLjMyODY5NSwgMC40MDUwOCwgMC40ODE1NTEsIDAuNTU3OTc5IiwgXAotICAgICAgICAgICIwLjEyMDM0MSwgMC4xOTY4NjIsIDAuMjU3OTg3LCAwLjMzNDQyNiwgMC40MTA4NTUsIDAuNDg3MzQ0LCAwLjU2MzcyIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzODU5MSwgMC4xOTc5NzIsIDAuMzI3MDQxLCAwLjQ4ODM0NywgMC42NDkwMDcsIDAuODEwMjU4LCAwLjk3MTA5OSIsIFwKLSAgICAgICAgICAiMC4wMzg1NzgsIDAuMTk3OTYxLCAwLjMyNjUyNiwgMC40ODgzNTYsIDAuNjQ5MDQzLCAwLjgxMDEyOCwgMC45NzEzMDkiLCBcCi0gICAgICAgICAgIjAuMDM4NTkyLCAwLjE5Nzk3MiwgMC4zMjY5NSwgMC40ODc4MjQsIDAuNjQ5LCAwLjgxMDM4MSwgMC45NzEwMzciLCBcCi0gICAgICAgICAgIjAuMDM4NTc1LCAwLjE5Nzk3MSwgMC4zMjY1MTIsIDAuNDg4MzI2LCAwLjY0OTExNSwgMC44MTAyOTUsIDAuOTcxNDQ4IiwgXAotICAgICAgICAgICIwLjAzODYwOSwgMC4xOTc5NiwgMC4zMjY1MTMsIDAuNDg4Mjc1LCAwLjY0OTAxMiwgMC44MDk3OTIsIDAuOTcxNDU4IiwgXAotICAgICAgICAgICIwLjAzODU4NiwgMC4xOTc3NzcsIDAuMzI2NTc2LCAwLjQ4ODI3LCAwLjY0OTU3NSwgMC44MTAxNzEsIDAuOTcxMzk2IiwgXAotICAgICAgICAgICIwLjAzODYxNCwgMC4xOTc4MTEsIDAuMzI2OTk2LCAwLjQ4ODI2NywgMC42NDk1MzMsIDAuODEwOTAyLCAwLjk3MjI0OSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODgzOTYsIDAuMTY0NDQ4LCAwLjIyNTA4LCAwLjMwMDgyMSwgMC4zNzY1NzYsIDAuNDUyMzIzLCAwLjUyODA3MyIsIFwKLSAgICAgICAgICAiMC4wOTY1ODcsIDAuMTcyNjM4LCAwLjIzMzI3LCAwLjMwOTAxMSwgMC4zODQ3NjYsIDAuNDYwNTE3LCAwLjUzNjI2NCIsIFwKLSAgICAgICAgICAiMC4xMDU3NTgsIDAuMTgxODEzLCAwLjI0MjQyNywgMC4zMTgxNzQsIDAuMzkzOTI4LCAwLjQ2OTY4NywgMC41NDU0MTgiLCBcCi0gICAgICAgICAgIjAuMTEzMTQ0LCAwLjE4OTE5OSwgMC4yNDk4MiwgMC4zMjU1NzIsIDAuNDAxMzI4LCAwLjQ3NzA2NiwgMC41NTI4MTciLCBcCi0gICAgICAgICAgIjAuMTE5MDcyLCAwLjE5NTEyNywgMC4yNTU3NDYsIDAuMzMxNDg5LCAwLjQwNzI4OCwgMC40ODI5OTYsIDAuNTU4NzQxIiwgXAotICAgICAgICAgICIwLjEyNjk4MSwgMC4yMDMwNTYsIDAuMjYzNjU3LCAwLjMzOTM5OCwgMC40MTUxNjYsIDAuNDkwOTA5LCAwLjU2NjY0NCIsIFwKLSAgICAgICAgICAiMC4xMzI3ODMsIDAuMjA4ODI4LCAwLjI2OTQ2MSwgMC4zNDUyMTksIDAuNDIwOTgyLCAwLjQ5NjcxNywgMC41NzI1MDUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM3NTgzLCAwLjE5MzI4MywgMC4zMTkyNzcsIDAuNDc2MjA4LCAwLjYzMzY3LCAwLjc5MTk5MSwgMC45NDc3MTQiLCBcCi0gICAgICAgICAgIjAuMDM3NTgzLCAwLjE5MzI4MywgMC4zMTkyNzgsIDAuNDc2MiwgMC42MzM2NiwgMC43OTIwMDYsIDAuOTQ3NzQiLCBcCi0gICAgICAgICAgIjAuMDM3NjA1LCAwLjE5MzMxNCwgMC4zMTkyMzUsIDAuNDc2NzMsIDAuNjMzNTc2LCAwLjc5MDYyMywgMC45NDk1MDUiLCBcCi0gICAgICAgICAgIjAuMDM3NjAzLCAwLjE5MzMxNCwgMC4zMTkyNTgsIDAuNDc2MjcsIDAuNjM0NDMzLCAwLjc5MTA5MiwgMC45NDc2NzkiLCBcCi0gICAgICAgICAgIjAuMDM3NTk2LCAwLjE5MzMxNSwgMC4zMTkyNTQsIDAuNDc2Nzg5LCAwLjYzMzE3NiwgMC43OTExNDksIDAuOTQ4NjYyIiwgXAotICAgICAgICAgICIwLjAzNzc4OCwgMC4xOTMzMjksIDAuMzE4ODY4LCAwLjQ3Njc4MSwgMC42MzMzNTEsIDAuNzkxMTM4LCAwLjk0ODQ0MyIsIFwKLSAgICAgICAgICAiMC4wMzc1OTMsIDAuMTkzMjQ4LCAwLjMxOTI4OSwgMC40NzY4NTYsIDAuNjM0NDk0LCAwLjc5MDY4MywgMC45NDk3NDQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA5OTk1LCAwLjAwOTk1NSwgMC4wMDk5MzEsIDAuMDA5OTE5LCAwLjAwOTkwOCwgMC4wMDk5MDQsIDAuMDA5OSIsIFwKLSAgICAgICAgICAiMC4wMDk5NzksIDAuMDA5OTQsIDAuMDA5OTE2LCAwLjAwOTkwMywgMC4wMDk4OTMsIDAuMDA5ODg2LCAwLjAwOTg4MyIsIFwKLSAgICAgICAgICAiMC4wMTAwNjgsIDAuMDEwMDM1LCAwLjAxMDAxMSwgMC4wMDk5OTQsIDAuMDA5OTg0LCAwLjAwOTk3OCwgMC4wMDk5NzMiLCBcCi0gICAgICAgICAgIjAuMDEwMTU5LCAwLjAxMDEzLCAwLjAxMDEwNiwgMC4wMTAwOSwgMC4wMTAwOCwgMC4wMTAwNzIsIDAuMDEwMDY3IiwgXAotICAgICAgICAgICIwLjAxMDMwMywgMC4wMTAyNzUsIDAuMDEwMjUxLCAwLjAxMDIzNCwgMC4wMTAyMjIsIDAuMDEwMjE1LCAwLjAxMDIxIiwgXAotICAgICAgICAgICIwLjAxMDQ4OSwgMC4wMTA0NjgsIDAuMDEwNDQ1LCAwLjAxMDQyNSwgMC4wMTA0MTQsIDAuMDEwNDA3LCAwLjAxMDQwMSIsIFwKLSAgICAgICAgICAiMC4wMTA3MiwgMC4wMTA3MDksIDAuMDEwNjc3LCAwLjAxMDY2MywgMC4wMTA2NTEsIDAuMDEwNjI3LCAwLjAxMDYzNyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMDgxNCwgMC4wMTA5MDIsIDAuMDEwOTE0LCAwLjAxMDkyLCAwLjAxMDkyNCwgMC4wMTA5MjUsIDAuMDEwOTI3IiwgXAotICAgICAgICAgICIwLjAxMDgxLCAwLjAxMDg5OCwgMC4wMTA5MSwgMC4wMTA5MTYsIDAuMDEwOTE5LCAwLjAxMDkyMSwgMC4wMTA5MjIiLCBcCi0gICAgICAgICAgIjAuMDEwOTMsIDAuMDExMDE2LCAwLjAxMTAyNywgMC4wMTEwMzQsIDAuMDExMDM2LCAwLjAxMTAzOSwgMC4wMTEwNCIsIFwKLSAgICAgICAgICAiMC4wMTEwMjYsIDAuMDExMTEyLCAwLjAxMTEyMiwgMC4wMTExMjgsIDAuMDExMTMyLCAwLjAxMTEzMywgMC4wMTExMzUiLCBcCi0gICAgICAgICAgIjAuMDExMTg0LCAwLjAxMTI3MiwgMC4wMTEyODMsIDAuMDExMjg5LCAwLjAxMTI5MSwgMC4wMTEyOTQsIDAuMDExMjk1IiwgXAotICAgICAgICAgICIwLjAxMTQzOCwgMC4wMTE1MjUsIDAuMDExNTM2LCAwLjAxMTU0LCAwLjAxMTU0MywgMC4wMTE1NDUsIDAuMDExNTQ2IiwgXAotICAgICAgICAgICIwLjAxMTY0NywgMC4wMTE3MywgMC4wMTE3NDEsIDAuMDExNzQ1LCAwLjAxMTc0OCwgMC4wMTE3NSwgMC4wMTE3NTEiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFMwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE2OTgzNDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE2OTgzNDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE2OTc2OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwOTIzNSwgMC4wMDkyMzYsIDAuMDA5MzE3LCAwLjAwOTQyNSwgMC4wMDk1NDIsIDAuMDA5ODA0LCAwLjAwOTk5NyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAxMDk4NywgMC4wMTEwMDksIDAuMDExMTIxLCAwLjAxMTMwNywgMC4wMTE1MzksIDAuMDExOTUsIDAuMDEyMzI3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJTRSA9PSAxJ2IwIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMzEyNSwgLTAuMDIsIC0wLjAxMzc1LCAtMC4wMDc1LCAtMC4wMDc1LCAwLjAwMjUsIDAuMDA1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwODc1LCAwIiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDE1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjA0Mzc1LCAtMC4wMzEyNSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDIxMjUsIC0wLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAzMTI1LCAtMC4wMjEyNSwgLTAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjA1ODc1LCAtMC4wNDc1LCAtMC4wNDEyNSwgLTAuMDM1LCAtMC4wMzUsIC0wLjAyNSwgLTAuMDIyNSIsIFwKLSAgICAgICAgICAiLTAuMDYxMjUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzMzc1LCAtMC4wMjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMTg3NSwgLTAuMDA3NSwgLTAuMDAxMjUsIDAuMDA1LCAwLjAwNSwgMC4wMTUsIDAuMDE3NSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMCwgMC4wMDM3NSwgMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDEyNSwgLTAuMDAyNSwgMCIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDMxMjUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDM3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDIxMjUsIC0wLjAxODc1IiwgXAotICAgICAgICAgICItMC4wNTI1LCAtMC4wNDc1LCAtMC4wNDEyNSwgLTAuMDQxMjUsIC0wLjAzNSwgLTAuMDMxMjUsIC0wLjAyMjUiLCBcCi0gICAgICAgICAgIi0wLjA1NSwgLTAuMDUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDQzNzUsIC0wLjAzMzc1LCAtMC4wMzEyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIVNFIjsKLSAgICAgIHNkZl9jb25kIDogIlNFID09IDEnYjAiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2ODc1LCAwLjA2Mzc1LCAwLjA1NzUsIDAuMDUxMjUsIDAuMDUxMjUsIDAuMDQ3NSwgMC4wNDUiLCBcCi0gICAgICAgICAgIjAuMDgsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1MjUsIDAuMDUiLCBcCi0gICAgICAgICAgIjAuMDg2MjUsIDAuMDgxMjUsIDAuMDc1LCAwLjA2ODc1LCAwLjA2ODc1LCAwLjA2NSwgMC4wNjI1IiwgXAotICAgICAgICAgICIwLjA5ODc1LCAwLjA4NzUsIDAuMDgxMjUsIDAuMDgxMjUsIDAuMDc1LCAwLjA3MTI1LCAwLjA2ODc1IiwgXAotICAgICAgICAgICIwLjEwNSwgMC4xLCAwLjA5Mzc1LCAwLjA4NzUsIDAuMDgxMjUsIDAuMDc3NSwgMC4wNzUiLCBcCi0gICAgICAgICAgIjAuMTE1LCAwLjExLCAwLjEwMzc1LCAwLjA5NzUsIDAuMDk3NSwgMC4wOTM3NSwgMC4wOTEyNSIsIFwKLSAgICAgICAgICAiMC4xMjM3NSwgMC4xMTg3NSwgMC4xMTI1LCAwLjEwNjI1LCAwLjEwNjI1LCAwLjEwMjUsIDAuMSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4MTI1LCAwLjA3NjI1LCAwLjA3LCAwLjA2Mzc1LCAwLjA2Mzc1LCAwLjA2LCAwLjA1NzUiLCBcCi0gICAgICAgICAgIjAuMDkyNSwgMC4wODEyNSwgMC4wNzUsIDAuMDc1LCAwLjA2ODc1LCAwLjA2NSwgMC4wNjI1IiwgXAotICAgICAgICAgICIwLjA5ODc1LCAwLjA4NzUsIDAuMDgxMjUsIDAuMDgxMjUsIDAuMDc1LCAwLjA3MTI1LCAwLjA2ODc1IiwgXAotICAgICAgICAgICIwLjEwNSwgMC4wOTM3NSwgMC4wODc1LCAwLjA4MTI1LCAwLjA4MTI1LCAwLjA3NzUsIDAuMDc1IiwgXAotICAgICAgICAgICIwLjEwNSwgMC4xLCAwLjA5Mzc1LCAwLjA4NzUsIDAuMDg3NSwgMC4wODM3NSwgMC4wNzUiLCBcCi0gICAgICAgICAgIjAuMTA4NzUsIDAuMTAzNzUsIDAuMDk3NSwgMC4wOTEyNSwgMC4wOTEyNSwgMC4wODc1LCAwLjA4NSIsIFwKLSAgICAgICAgICAiMC4xMTEyNSwgMC4xMDYyNSwgMC4xLCAwLjA5Mzc1LCAwLjA5Mzc1LCAwLjA5LCAwLjA4NzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFNFKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE1NDQyOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTU0MzgzOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTU0NDI7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA2NjMxLCAwLjAwNjY0OSwgMC4wMDY3MzksIDAuMDA2ODQ2LCAwLjAwNjk3MiwgMC4wMDcyMTUsIDAuMDA3NDE4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA4MzczLCAwLjAwODM2MiwgMC4wMDg0OTgsIDAuMDA4Njc0LCAwLjAwODkzNSwgMC4wMDkzMTYsIDAuMDA5NjgzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEMCYhRDEmIVMwJlNJIjsKLSAgICAgIHNkZl9jb25kIDogIkQwX0VRXzBfQU5fRDFfRVFfMF9BTl9TMF9FUV8wX0FOX1NJX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDE4NzUsIC0wLjAxMzc1LCAtMC4wMTM3NSwgLTAuMDA3NSwgLTAuMDA3NSwgLTAuMDAzNzUsIDAuMDA1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDEyNSwgLTAuMDA4NzUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDE1LCAtMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDM3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAzMTI1LCAtMC4wMjc1LCAtMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wNDM3NSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzNzUsIC0wLjAzMzc1LCAtMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDU4NzUsIC0wLjA1Mzc1LCAtMC4wNDc1LCAtMC4wNDc1LCAtMC4wNDEyNSwgLTAuMDM3NSwgLTAuMDM1IiwgXAotICAgICAgICAgICItMC4wNjc1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjA1LCAtMC4wNDYyNSwgLTAuMDQzNzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLCAwLjAwNSwgMC4wMTEyNSwgMC4wMTc1LCAwLjAyMzc1LCAwLjAyNzUsIDAuMDM2MjUiLCBcCi0gICAgICAgICAgIi0wLjAxMTI1LCAwLCAwLjAwNjI1LCAwLjAxMjUsIDAuMDE4NzUsIDAuMDIyNSwgMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjAxNzUsIC0wLjAxMjUsIDAsIDAuMDA2MjUsIDAuMDA2MjUsIDAuMDE2MjUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAsIDAuMDAzNzUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAyNSwgLTAuMDEyNSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAuMDAzNzUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjAzMzc1LCAtMC4wMjg3NSwgLTAuMDIyNSwgLTAuMDE2MjUsIC0wLjAxLCAtMC4wMDYyNSwgLTAuMDAzNzUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzMTI1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDE1LCAtMC4wMDYyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRDAmRDEmUzAmIVNJIjsKLSAgICAgIHNkZl9jb25kIDogIkQwX0VRXzBfQU5fRDFfRVFfMV9BTl9TMF9FUV8xX0FOX1NJX0VRXzAgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDEyNSwgLTAuMDAxMjUsIDAuMDA1LCAwLjAxMTI1LCAwLjAxNzUsIDAuMDIxMjUsIDAuMDIzNzUiLCBcCi0gICAgICAgICAgIi0wLjAxNzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLCAwLjAwNjI1LCAwLjAxNjI1LCAwLjAxODc1IiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLCAwLjAwMzc1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMC4wMDM3NSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDEyNSwgLTAuMDAyNSwgMCIsIFwKLSAgICAgICAgICAiLTAuMDQsIC0wLjAzNSwgLTAuMDI4NzUsIC0wLjAyMjUsIC0wLjAxNjI1LCAtMC4wMDYyNSwgLTAuMDAzNzUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDE1LCAtMC4wMDYyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAzMTI1LCAtMC4wMjYyNSwgLTAuMDIsIC0wLjAyLCAtMC4wMiwgLTAuMDE2MjUsIC0wLjAxMzc1IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDIxMjUsIC0wLjAxODc1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzNzUsIC0wLjAzNzUsIC0wLjAzMzc1LCAtMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjA0Mzc1LCAtMC4wNDM3NSwgLTAuMDQsIC0wLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjA2MTI1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDQsIC0wLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjA2NSwgLTAuMDYsIC0wLjA2LCAtMC4wNTM3NSwgLTAuMDUzNzUsIC0wLjA1LCAtMC4wNDc1IiwgXAotICAgICAgICAgICItMC4wNzM3NSwgLTAuMDY4NzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNTYyNSwgLTAuMDUyNSwgLTAuMDUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEMCYhRDEmIVMwJlNJIjsKLSAgICAgIHNkZl9jb25kIDogIkQwX0VRXzBfQU5fRDFfRVFfMF9BTl9TMF9FUV8wX0FOX1NJX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQzNzUsIDAuMDMyNSwgMC4wMjYyNSwgMC4wMjYyNSwgMC4wMiwgMC4wMTYyNSwgMC4wMTM3NSIsIFwKLSAgICAgICAgICAiMC4wNDg3NSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAzMTI1LCAwLjAyMTI1LCAwLjAxODc1IiwgXAotICAgICAgICAgICIwLjA2MTI1LCAwLjA1LCAwLjA0Mzc1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDMzNzUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMDY3NSwgMC4wNTYyNSwgMC4wNSwgMC4wNSwgMC4wNDM3NSwgMC4wNCwgMC4wMzc1IiwgXAotICAgICAgICAgICIwLjA3Mzc1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDUsIDAuMDQ2MjUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMDgzNzUsIDAuMDcyNSwgMC4wNjYyNSwgMC4wNjYyNSwgMC4wNiwgMC4wNTYyNSwgMC4wNTM3NSIsIFwKLSAgICAgICAgICAiMC4wOTI1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjg3NSwgMC4wNjUsIDAuMDYyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzMTI1LCAwLjAyNjI1LCAwLjAxMzc1LCAwLjAwNzUsIDAuMDAxMjUsIC0wLjAwMjUsIC0wLjAxMTI1IiwgXAotICAgICAgICAgICIwLjA0MjUsIDAuMDMxMjUsIDAuMDI1LCAwLjAxODc1LCAwLjAxMjUsIDAuMDAyNSwgMCIsIFwKLSAgICAgICAgICAiMC4wNDg3NSwgMC4wNDM3NSwgMC4wMzEyNSwgMC4wMjUsIDAuMDE4NzUsIDAuMDE1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICIwLjA2MTI1LCAwLjA1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDIxMjUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMDY3NSwgMC4wNTYyNSwgMC4wNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAyNzUsIDAuMDI1IiwgXAotICAgICAgICAgICIwLjA3NzUsIDAuMDY2MjUsIDAuMDYsIDAuMDUzNzUsIDAuMDQ3NSwgMC4wMzc1LCAwLjAzNSIsIFwKLSAgICAgICAgICAiMC4wOCwgMC4wNzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNSwgMC4wNDYyNSwgMC4wMzc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRDAmRDEmUzAmIVNJIjsKLSAgICAgIHNkZl9jb25kIDogIkQwX0VRXzBfQU5fRDFfRVFfMV9BTl9TMF9FUV8xX0FOX1NJX0VRXzAgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM3NSwgMC4wMzI1LCAwLjAyLCAwLjAxMzc1LCAwLjAwNzUsIDAuMDAzNzUsIC0wLjAwNSIsIFwKLSAgICAgICAgICAiMC4wNDg3NSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMTg3NSwgMC4wMDg3NSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiMC4wNTUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMjUsIDAuMDE1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMDYxMjUsIDAuMDUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMjEyNSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4wNjEyNSwgMC4wNTYyNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyNzUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMDcxMjUsIDAuMDYsIDAuMDUzNzUsIDAuMDQ3NSwgMC4wNDEyNSwgMC4wMzEyNSwgMC4wMjg3NSIsIFwKLSAgICAgICAgICAiMC4wNzM3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1LCAwLjA0Mzc1LCAwLjAzMzc1LCAwLjAzMTI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU2MjUsIDAuMDUxMjUsIDAuMDQ1LCAwLjAzODc1LCAwLjAzMjUsIDAuMDI4NzUsIDAuMDI2MjUiLCBcCi0gICAgICAgICAgIjAuMDY3NSwgMC4wNTYyNSwgMC4wNSwgMC4wNSwgMC4wNDM3NSwgMC4wNCwgMC4wMzc1IiwgXAotICAgICAgICAgICIwLjA3Mzc1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDUsIDAuMDQ2MjUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMDgsIDAuMDc1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDUyNSwgMC4wNSIsIFwKLSAgICAgICAgICAiMC4wODYyNSwgMC4wNzUsIDAuMDY4NzUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNTg3NSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiMC4wOSwgMC4wODUsIDAuMDc4NzUsIDAuMDcyNSwgMC4wNzI1LCAwLjA2ODc1LCAwLjA2NjI1IiwgXAotICAgICAgICAgICIwLjA5ODc1LCAwLjA4NzUsIDAuMDgxMjUsIDAuMDc1LCAwLjA3NSwgMC4wNzEyNSwgMC4wNjg3NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oU0kpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDk0MDY0OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDkzODQ5NTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA5NDA2NDsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDM5MTEsIDAuMDAzODY2LCAwLjAwMzg4NSwgMC4wMDM5NTIsIDAuMDA0MDQzLCAwLjAwNDIsIDAuMDA0MzY0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA3MzkxLCAwLjAwNzM2MiwgMC4wMDczOSwgMC4wMDc0NTMsIDAuMDA3NTE2LCAwLjAwNzY3MiwgMC4wMDc4MzMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiU0UiOwotICAgICAgc2RmX2NvbmQgOiAiU0UgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDI1LCAtMC4wMiwgLTAuMDEzNzUsIC0wLjAxMzc1LCAtMC4wMDc1LCAtMC4wMDM3NSwgLTAuMDAxMjUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA4NzUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzEyNSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDI1LCAtMC4wMjEyNSwgLTAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAzMTI1LCAtMC4wMjc1LCAtMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjA1NSwgLTAuMDQzNzUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzc1LCAtMC4wMzM3NSwgLTAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjA1ODc1LCAtMC4wNTM3NSwgLTAuMDQ3NSwgLTAuMDQ3NSwgLTAuMDQxMjUsIC0wLjAzNzUsIC0wLjAzNSIsIFwKLSAgICAgICAgICAiLTAuMDY3NSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNSwgLTAuMDQ2MjUsIC0wLjA0Mzc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMCwgMC4wMDUsIDAuMDExMjUsIDAuMDE3NSwgMC4wMjM3NSwgMC4wMjc1LCAwLjAzNjI1IiwgXAotICAgICAgICAgICItMC4wMTEyNSwgMCwgMC4wMDYyNSwgMC4wMTI1LCAwLjAxODc1LCAwLjAyMjUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjAxNzUsIC0wLjAwNjI1LCAwLCAwLjAwNjI1LCAwLjAxMjUsIDAuMDE2MjUsIDAuMDI1IiwgXAotICAgICAgICAgICItMC4wMTc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMCwgMC4wMDYyNSwgMC4wMSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxODc1LCAtMC4wMDYyNSwgMCwgMCwgMC4wMSwgMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wMjc1LCAtMC4wMjI1LCAtMC4wMTYyNSwgLTAuMDEsIC0wLjAwMzc1LCAwLCAwLjAwODc1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIC0wLjAwMjUsIDAuMDA2MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlNFIjsKLSAgICAgIHNkZl9jb25kIDogIlNFID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0Mzc1LCAwLjAzODc1LCAwLjAzMjUsIDAuMDI2MjUsIDAuMDI2MjUsIDAuMDIyNSwgMC4wMiIsIFwKLSAgICAgICAgICAiMC4wNTUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyNzUsIDAuMDI1IiwgXAotICAgICAgICAgICIwLjA2MTI1LCAwLjA1LCAwLjA0Mzc1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDMzNzUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMDY3NSwgMC4wNTYyNSwgMC4wNTYyNSwgMC4wNSwgMC4wNDM3NSwgMC4wNCwgMC4wMzc1IiwgXAotICAgICAgICAgICIwLjA3Mzc1LCAwLjA2MjUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNSwgMC4wNDYyNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4wODM3NSwgMC4wNzI1LCAwLjA2NjI1LCAwLjA2NjI1LCAwLjA2LCAwLjA1NjI1LCAwLjA1Mzc1IiwgXAotICAgICAgICAgICIwLjA4NjI1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjg3NSwgMC4wNjUsIDAuMDYyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzMTI1LCAwLjAyLCAwLjAxMzc1LCAwLjAwNzUsIDAuMDAxMjUsIC0wLjAwODc1LCAtMC4wMTEyNSIsIFwKLSAgICAgICAgICAiMC4wMzYyNSwgMC4wMjUsIDAuMDE4NzUsIDAuMDEyNSwgMC4wMDYyNSwgLTAuMDAzNzUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICIwLjA0MjUsIDAuMDM3NSwgMC4wMjUsIDAuMDE4NzUsIDAuMDEyNSwgMC4wMDg3NSwgMCIsIFwKLSAgICAgICAgICAiMC4wNDg3NSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMTg3NSwgMC4wMDg3NSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiMC4wNTUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMjUsIDAuMDE1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMDU4NzUsIDAuMDUzNzUsIDAuMDQxMjUsIDAuMDM1LCAwLjAyODc1LCAwLjAyNSwgMC4wMTYyNSIsIFwKLSAgICAgICAgICAiMC4wNjc1LCAwLjA1NjI1LCAwLjA1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDI3NSwgMC4wMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IFNNREZGSFFYNCAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKFNNREZGSFFYNCkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAxLjc0MjQ4OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIGZmIChOMzAsUUJJTlQpIHsKLSAgICBuZXh0X3N0YXRlIDogIigoU0UgU0kpICsgKCFTRSAoKFMwIEQxKSArICghUzAgRDApKSkpIjsKLSAgICBjbG9ja2VkX29uIDogIkNLIjsKLSAgfQotICBwaW4oQ0spICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYxODE0OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYxODA0NjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2MTgxNDsKLSAgICBjbG9jayA6IHRydWU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA0MDUsIDAuMDA0MDQsIDAuMDA0MTA5LCAwLjAwNDIxNSwgMC4wMDQzMzcsIDAuMDA0NTcxLCAwLjAwNDc0OSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwOTU5MiwgMC4wMDk1ODEsIDAuMDA5Njc1LCAwLjAwOTgxNSwgMC4wMDk5NzQsIDAuMDEwMTI0LCAwLjAxMDMzNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQwJiFEMSYhUzAmIVNFJiFTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEMF9FUV8wX0FOX0QxX0VRXzBfQU5fUzBfRVFfMF9BTl9TRV9FUV8wX0FOX1NJX0VRXzAgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wODQwMSwgMC4wOTIyMzUsIDAuMTAxNzQxLCAwLjEwOTU0LCAwLjExNTc4NSwgMC4xMjM4ODcsIDAuMTMwMDcyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wNjcwMzQsIDAuMDc1MTg1LCAwLjA4NDU1NiwgMC4wOTIxMzYsIDAuMDk4MTYxLCAwLjEwNjExNCwgMC4xMTE4MjgiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEQwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDEwMDE4MTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA5OTk0NzY7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxMDAxODE7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA1NTYyLCAwLjAwNTUyNywgMC4wMDU1NDEsIDAuMDA1NTk1LCAwLjAwNTY2OSwgMC4wMDU4MTksIDAuMDA1OTc5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA5NDcyLCAwLjAwOTQ1MSwgMC4wMDk0NjQsIDAuMDA5NTE1LCAwLjAwOTU4LCAwLjAwOTcyMywgMC4wMDk4NjciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIVMwJiFTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJTMF9FUV8wX0FOX1NFX0VRXzAgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDUsIC0wLjA0NSwgLTAuMDM4NzUsIC0wLjAzMjUsIC0wLjAzMjUsIC0wLjAyODc1LCAtMC4wMjYyNSIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzM3NSwgLTAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjA2MTI1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDQ2MjUsIC0wLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjA2NzUsIC0wLjA2MjUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNTYyNSwgLTAuMDUyNSwgLTAuMDUiLCBcCi0gICAgICAgICAgIi0wLjA3Mzc1LCAtMC4wNjg3NSwgLTAuMDY4NzUsIC0wLjA2MjUsIC0wLjA2MjUsIC0wLjA1ODc1LCAtMC4wNTYyNSIsIFwKLSAgICAgICAgICAiLTAuMDgzNzUsIC0wLjA3ODc1LCAtMC4wNzg3NSwgLTAuMDcyNSwgLTAuMDcyNSwgLTAuMDY4NzUsIC0wLjA2NjI1IiwgXAotICAgICAgICAgICItMC4wOTI1LCAtMC4wODc1LCAtMC4wODEyNSwgLTAuMDgxMjUsIC0wLjA3NSwgLTAuMDc3NSwgLTAuMDY4NzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMTg3NSwgLTAuMDEzNzUsIC0wLjAwMTI1LCAtMC4wMDEyNSwgMC4wMDUsIDAuMDA4NzUsIDAuMDE3NSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMCwgMC4wMDM3NSwgMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIC0wLjAwMjUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA4NzUsIDAiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wNDYyNSwgLTAuMDQxMjUsIC0wLjAzNSwgLTAuMDI4NzUsIC0wLjAyODc1LCAtMC4wMTg3NSwgLTAuMDE2MjUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wNDM3NSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMjc1LCAtMC4wMTg3NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIVMwJiFTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJTMF9FUV8wX0FOX1NFX0VRXzAgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc1LCAwLjA2Mzc1LCAwLjA1NzUsIDAuMDU3NSwgMC4wNTEyNSwgMC4wNDc1LCAwLjA0NSIsIFwKLSAgICAgICAgICAiMC4wOCwgMC4wNzUsIDAuMDYyNSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1MjUsIDAuMDUiLCBcCi0gICAgICAgICAgIjAuMDg2MjUsIDAuMDgxMjUsIDAuMDc1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDU4NzUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIjAuMDkyNSwgMC4wODc1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNzUsIDAuMDcxMjUsIDAuMDY4NzUiLCBcCi0gICAgICAgICAgIjAuMTA1LCAwLjA5Mzc1LCAwLjA4NzUsIDAuMDgxMjUsIDAuMDgxMjUsIDAuMDc3NSwgMC4wNzUiLCBcCi0gICAgICAgICAgIjAuMTE1LCAwLjEwMzc1LCAwLjA5NzUsIDAuMDkxMjUsIDAuMDkxMjUsIDAuMDg3NSwgMC4wODUiLCBcCi0gICAgICAgICAgIjAuMTE3NSwgMC4xMTI1LCAwLjEwNjI1LCAwLjEsIDAuMSwgMC4wOTYyNSwgMC4wODc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU2MjUsIDAuMDQ1LCAwLjAzODc1LCAwLjAzMjUsIDAuMDI2MjUsIDAuMDE2MjUsIDAuMDA3NSIsIFwKLSAgICAgICAgICAiMC4wNjEyNSwgMC4wNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyMTI1LCAwLjAxODc1IiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDU2MjUsIDAuMDUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMjc1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiMC4wNzM3NSwgMC4wNjg3NSwgMC4wNTYyNSwgMC4wNSwgMC4wNDM3NSwgMC4wMzM3NSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4wOCwgMC4wNzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNSwgMC4wNCwgMC4wMzc1IiwgXAotICAgICAgICAgICIwLjA5LCAwLjA3ODc1LCAwLjA3MjUsIDAuMDY2MjUsIDAuMDYsIDAuMDUsIDAuMDQ3NSIsIFwKLSAgICAgICAgICAiMC4wOTI1LCAwLjA4NzUsIDAuMDc1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDU4NzUsIDAuMDUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEQxKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA5NzMzMjM7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwOTcwNjQyOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDk3MzMyMzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDUxOTYsIDAuMDA1MTU5LCAwLjAwNTE3MywgMC4wMDUyMjksIDAuMDA1MzAzLCAwLjAwNTQ1NiwgMC4wMDU2MDQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDk4NjUsIDAuMDA5ODQ0LCAwLjAwOTg1NiwgMC4wMDk5MDcsIDAuMDA5OTY3LCAwLjAxMDEwOCwgMC4wMTAyNTUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiUzAmIVNFIjsKLSAgICAgIHNkZl9jb25kIDogIlMwX0VRXzFfQU5fU0VfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wNSwgLTAuMDQ1LCAtMC4wMzg3NSwgLTAuMDMyNSwgLTAuMDMyNSwgLTAuMDI4NzUsIC0wLjAyNjI1IiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzMzc1LCAtMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDYxMjUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wNCwgLTAuMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDY3NSwgLTAuMDYyNSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA1NjI1LCAtMC4wNTI1LCAtMC4wNSIsIFwKLSAgICAgICAgICAiLTAuMDczNzUsIC0wLjA2ODc1LCAtMC4wNjg3NSwgLTAuMDYyNSwgLTAuMDYyNSwgLTAuMDU4NzUsIC0wLjA1NjI1IiwgXAotICAgICAgICAgICItMC4wODM3NSwgLTAuMDc4NzUsIC0wLjA3ODc1LCAtMC4wNzI1LCAtMC4wNzI1LCAtMC4wNjg3NSwgLTAuMDY2MjUiLCBcCi0gICAgICAgICAgIi0wLjA5MjUsIC0wLjA4NzUsIC0wLjA4MTI1LCAtMC4wODEyNSwgLTAuMDc1LCAtMC4wNzEyNSwgLTAuMDY4NzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMTg3NSwgLTAuMDEzNzUsIC0wLjAwNzUsIC0wLjAwMTI1LCAwLjAwNSwgMC4wMDg3NSwgMC4wMTc1IiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLCAwLjAwMzc1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgLTAuMDAyNSwgMCIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDg3NSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wNDYyNSwgLTAuMDQxMjUsIC0wLjAzNSwgLTAuMDI4NzUsIC0wLjAyODc1LCAtMC4wMTg3NSwgLTAuMDE2MjUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wNDM3NSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMjc1LCAtMC4wMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlMwJiFTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJTMF9FUV8xX0FOX1NFX0VRXzAgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc1LCAwLjA2Mzc1LCAwLjA1NzUsIDAuMDUxMjUsIDAuMDUxMjUsIDAuMDQ3NSwgMC4wNDUiLCBcCi0gICAgICAgICAgIjAuMDgsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1MjUsIDAuMDUiLCBcCi0gICAgICAgICAgIjAuMDg2MjUsIDAuMDgxMjUsIDAuMDc1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDU4NzUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIjAuMDkyNSwgMC4wODc1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNzUsIDAuMDcxMjUsIDAuMDYyNSIsIFwKLSAgICAgICAgICAiMC4xMDUsIDAuMDkzNzUsIDAuMDg3NSwgMC4wODEyNSwgMC4wODEyNSwgMC4wNzc1LCAwLjA3NSIsIFwKLSAgICAgICAgICAiMC4xMTUsIDAuMTAzNzUsIDAuMDk3NSwgMC4wOTEyNSwgMC4wOTEyNSwgMC4wODc1LCAwLjA4NSIsIFwKLSAgICAgICAgICAiMC4xMTc1LCAwLjExMjUsIDAuMTA2MjUsIDAuMSwgMC4xLCAwLjA5NjI1LCAwLjA4NzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTYyNSwgMC4wNDUsIDAuMDM4NzUsIDAuMDMyNSwgMC4wMjYyNSwgMC4wMTYyNSwgMC4wMTM3NSIsIFwKLSAgICAgICAgICAiMC4wNjEyNSwgMC4wNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyMTI1LCAwLjAxODc1IiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDYyNSwgMC4wNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAyNzUsIDAuMDI1IiwgXAotICAgICAgICAgICIwLjA3Mzc1LCAwLjA2ODc1LCAwLjA1NjI1LCAwLjA1LCAwLjA0Mzc1LCAwLjA0LCAwLjAzMTI1IiwgXAotICAgICAgICAgICIwLjA4LCAwLjA3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1LCAwLjA0LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIjAuMDksIDAuMDc4NzUsIDAuMDcyNSwgMC4wNjYyNSwgMC4wNiwgMC4wNSwgMC4wNDc1IiwgXAotICAgICAgICAgICIwLjA5ODc1LCAwLjA4NzUsIDAuMDgxMjUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNTg3NSwgMC4wNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAxLjMzMjA4OwotICAgIGZ1bmN0aW9uIDogIk4zMCI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3NlbnNlIDogbm9uX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiByaXNpbmdfZWRnZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzQwMiwgMC4xMjk3NjgsIDAuMTg0OTgxLCAwLjIyNDQyNSwgMC4yODc2MDEsIDAuMzQyODEzLCAwLjQyMTY5MSIsIFwKLSAgICAgICAgICAiMC4wODIyMjMsIDAuMTM3OTc1LCAwLjE5MzE4NSwgMC4yMzI1OSwgMC4yOTU3OTEsIDAuMzUxMDEyLCAwLjQyOTg5IiwgXAotICAgICAgICAgICIwLjA5MTY4NywgMC4xNDc0NDYsIDAuMjAyNjU1LCAwLjI0MjExNSwgMC4zMDUyNTksIDAuMzYwNDc5LCAwLjQzOTM1NyIsIFwKLSAgICAgICAgICAiMC4wOTkzNTYsIDAuMTU1MTIsIDAuMjEwMzI5LCAwLjI0OTgwNSwgMC4zMTI5MzcsIDAuMzY4MTUzLCAwLjQ0NzAzMSIsIFwKLSAgICAgICAgICAiMC4xMDU1MjUsIDAuMTYxMjk1LCAwLjIxNjUwMywgMC4yNTU5NiwgMC4zMTkxMTIsIDAuMzc0MzI1LCAwLjQ1MzIwNyIsIFwKLSAgICAgICAgICAiMC4xMTM1NiwgMC4xNjkzMjUsIDAuMjI0NTUxLCAwLjI2Mzk4MSwgMC4zMjcxNjUsIDAuMzgyMzU3LCAwLjQ2MTMwOSIsIFwKLSAgICAgICAgICAiMC4xMTk5MjEsIDAuMTc1Njk2LCAwLjIzMDkxMywgMC4yNzAzOCwgMC4zMzM1MywgMC4zODg3MDIsIDAuNDY3NjQzIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDI0MDk5LCAwLjEzOTM3NCwgMC4yNTcyNjgsIDAuMzQxMjgzLCAwLjQ3NTg2OCwgMC41OTQ1NzgsIDAuNzYzMTUxIiwgXAotICAgICAgICAgICIwLjAyNDEwNiwgMC4xMzkzNzcsIDAuMjU3MDcsIDAuMzQxMTM5LCAwLjQ3NjU0OCwgMC41OTQ1NzMsIDAuNzYzMTQ4IiwgXAotICAgICAgICAgICIwLjAyNDA5NiwgMC4xMzkzNzQsIDAuMjU3Mjg3LCAwLjM0MTY2NywgMC40NzY1NDUsIDAuNTk0NTYxLCAwLjc2MzE1MSIsIFwKLSAgICAgICAgICAiMC4wMjQxMDksIDAuMTM5Mzc0LCAwLjI1NzI4MiwgMC4zNDE2NTEsIDAuNDc2NTMzLCAwLjU5NDU1MiwgMC43NjMxNDMiLCBcCi0gICAgICAgICAgIjAuMDI0MTEsIDAuMTM5MzgzLCAwLjI1NzI5MSwgMC4zNDEyNzIsIDAuNDc1ODcyLCAwLjU5NDUwMywgMC43NjMwODEiLCBcCi0gICAgICAgICAgIjAuMDI0MTM2LCAwLjEzOTM2LCAwLjI1NzIzNCwgMC4zNDE1MzcsIDAuNDc2NDM4LCAwLjU5NDQ2NywgMC43NjMwNjYiLCBcCi0gICAgICAgICAgIjAuMDI0MTM2LCAwLjEzOTMxNSwgMC4yNTczNTIsIDAuMzQxNjE0LCAwLjQ3NjQ1LCAwLjU5NDM5NSwgMC43NjMwMzgiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODQwMTEsIDAuMTM4NTQ4LCAwLjE5MjM2LCAwLjIzMDgyNywgMC4yOTIyNzksIDAuMzQ2MTEyLCAwLjQyMjkwNSIsIFwKLSAgICAgICAgICAiMC4wOTIyMzYsIDAuMTQ2NzcyLCAwLjIwMDU4NSwgMC4yMzkwNTEsIDAuMzAwNTA0LCAwLjM1NDMzNywgMC40MzExMjkiLCBcCi0gICAgICAgICAgIjAuMTAxNzQzLCAwLjE1NjI3OCwgMC4yMTAwOSwgMC4yNDg1NTYsIDAuMzEwMDE0LCAwLjM2MzgxNywgMC40NDA2MzUiLCBcCi0gICAgICAgICAgIjAuMTA5NTQyLCAwLjE2NDA3NSwgMC4yMTc4ODQsIDAuMjU2MzQ3LCAwLjMxNzgwNCwgMC4zNzE1ODksIDAuNDQ4NDMiLCBcCi0gICAgICAgICAgIjAuMTE1Nzg1LCAwLjE3MDMxOCwgMC4yMjQxNDIsIDAuMjYyNTg3LCAwLjMyNDA0OSwgMC4zNzc4MywgMC40NTQ2NzkiLCBcCi0gICAgICAgICAgIjAuMTIzODg4LCAwLjE3ODQzMSwgMC4yMzIyNDIsIDAuMjcwNjc0LCAwLjMzMjE0NCwgMC4zODU5MzEsIDAuNDYyNzc3IiwgXAotICAgICAgICAgICIwLjEzMDE1NywgMC4xODQ2OTYsIDAuMjM4NDk2LCAwLjI3Njk2NCwgMC4zMzg0MzgsIDAuMzkyMTk2LCAwLjQ2OTEwMiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyMjkwNSwgMC4xMzIyOTMsIDAuMjQ0MTU3LCAwLjMyMzY1MSwgMC40NTE2NiwgMC41NjMzODEsIDAuNzI0MTI5IiwgXAotICAgICAgICAgICIwLjAyMjkwNSwgMC4xMzIzLCAwLjI0NDE1NiwgMC4zMjM1OTMsIDAuNDUxNjY3LCAwLjU2MzEzNSwgMC43MjQxMjEiLCBcCi0gICAgICAgICAgIjAuMDIyOTA0LCAwLjEzMjMxMywgMC4yNDQxMjgsIDAuMzIzNDk0LCAwLjQ1MTY1LCAwLjU2NDI2MSwgMC43MjQxMjciLCBcCi0gICAgICAgICAgIjAuMDIyOTA2LCAwLjEzMjQxNywgMC4yNDQxNTQsIDAuMzI0MjI5LCAwLjQ1MjE4MiwgMC41NjQxNDMsIDAuNzI0MjA2IiwgXAotICAgICAgICAgICIwLjAyMjkwMywgMC4xMzI0MTYsIDAuMjQ0MjM0LCAwLjMyMzU1OCwgMC40NTIxOTUsIDAuNTY0MTY1LCAwLjcyMzQxMSIsIFwKLSAgICAgICAgICAiMC4wMjI5MDUsIDAuMTMyMzg4LCAwLjI0NDIyNCwgMC4zMjQyLCAwLjQ1MjE2OCwgMC41NjQxNTksIDAuNzIzMzQ3IiwgXAotICAgICAgICAgICIwLjAyMjkwNCwgMC4xMzIyMDIsIDAuMjQ0MTY2LCAwLjMyNDE4NSwgMC40NTIyNjQsIDAuNTY0MTY4LCAwLjcyNDMyMSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMzAzNywgMC4wMTMxMDgsIDAuMDEzMDgyLCAwLjAxMzA3LCAwLjAxMzA1NywgMC4wMTMwNSwgMC4wMTMwNDMiLCBcCi0gICAgICAgICAgIjAuMDEzMDMxLCAwLjAxMzA5NCwgMC4wMTMwNzQsIDAuMDEzMDU2LCAwLjAxMzA1MywgMC4wMTMwMzksIDAuMDEzMDM0IiwgXAotICAgICAgICAgICIwLjAxMzA5OSwgMC4wMTMxNzQsIDAuMDEzMTQ4LCAwLjAxMzEzNiwgMC4wMTMxMjIsIDAuMDEzMTE0LCAwLjAxMzEwNiIsIFwKLSAgICAgICAgICAiMC4wMTMyMDUsIDAuMDEzMjg0LCAwLjAxMzI2MSwgMC4wMTMyNSwgMC4wMTMyMzMsIDAuMDEzMjI1LCAwLjAxMzIxOCIsIFwKLSAgICAgICAgICAiMC4wMTMzNDksIDAuMDEzNDI3LCAwLjAxMzQwNCwgMC4wMTMzOTEsIDAuMDEzMzc2LCAwLjAxMzM2NywgMC4wMTMzNjIiLCBcCi0gICAgICAgICAgIjAuMDEzNTY3LCAwLjAxMzY0NCwgMC4wMTM2MjEsIDAuMDEzNjE5LCAwLjAxMzU5MiwgMC4wMTM1ODIsIDAuMDEzNTc2IiwgXAotICAgICAgICAgICIwLjAxMzc2MywgMC4wMTM4NTMsIDAuMDEzODMzLCAwLjAxMzgxOCwgMC4wMTM3OTcsIDAuMDEzNzkyLCAwLjAxMzc4NSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEzNDEsIDAuMDEzNjI0LCAwLjAxMzY1NiwgMC4wMTM2NjUsIDAuMDEzNjc1LCAwLjAxMzY3OSwgMC4wMTM2ODQiLCBcCi0gICAgICAgICAgIjAuMDEzNDAzLCAwLjAxMzYxNywgMC4wMTM2NSwgMC4wMTM2NTksIDAuMDEzNjY4LCAwLjAxMzY3MywgMC4wMTM2NzciLCBcCi0gICAgICAgICAgIjAuMDEzNTEsIDAuMDEzNzI1LCAwLjAxMzc1NiwgMC4wMTM3NjUsIDAuMDEzNzc0LCAwLjAxMzc3OSwgMC4wMTM3ODMiLCBcCi0gICAgICAgICAgIjAuMDEzNjM2LCAwLjAxMzg0OSwgMC4wMTM4OCwgMC4wMTM4ODgsIDAuMDEzODk3LCAwLjAxMzkwMiwgMC4wMTM5MDYiLCBcCi0gICAgICAgICAgIjAuMDEzNzY3LCAwLjAxMzk3OSwgMC4wMTQwMDgsIDAuMDE0MDE3LCAwLjAxNDAyNSwgMC4wMTQwMjksIDAuMDE0MDMzIiwgXAotICAgICAgICAgICIwLjAxNDAyOCwgMC4wMTQyMzIsIDAuMDE0MjYsIDAuMDE0MjY4LCAwLjAxNDI3NSwgMC4wMTQyNzgsIDAuMDE0MjgxIiwgXAotICAgICAgICAgICIwLjAxNDIyOSwgMC4wMTQ0NCwgMC4wMTQ0NywgMC4wMTQ0NzUsIDAuMDE0NDg0LCAwLjAxNDQ4NSwgMC4wMTQ0ODgiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFMwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE2NjgxMjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE2NjgxMjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE2Njc2OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwOTEwNiwgMC4wMDkxMDIsIDAuMDA5MTgxLCAwLjAwOTI4OCwgMC4wMDk0MTEsIDAuMDA5NjE3LCAwLjAwOTgxNSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAxMDg0NCwgMC4wMTA4NjYsIDAuMDEwOTc2LCAwLjAxMTE2MywgMC4wMTE0LCAwLjAxMTgxMSwgMC4wMTIxODUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIVNFIjsKLSAgICAgIHNkZl9jb25kIDogIlNFID09IDEnYjAiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAyNSwgLTAuMDIsIC0wLjAxMzc1LCAtMC4wMDc1LCAtMC4wMDEyNSwgMC4wMDI1LCAwLjAxMTI1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDEyNSwgLTAuMDAyNSwgMCIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxODc1LCAtMC4wMDg3NSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMjUsIC0wLjAxNSwgLTAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMjEyNSwgLTAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDUyNSwgLTAuMDQ3NSwgLTAuMDQxMjUsIC0wLjAzNSwgLTAuMDI4NzUsIC0wLjAyNSwgLTAuMDIyNSIsIFwKLSAgICAgICAgICAiLTAuMDYxMjUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDM3NSwgLTAuMDI3NSwgLTAuMDI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDEyNSwgLTAuMDA3NSwgLTAuMDAxMjUsIDAuMDA1LCAwLjAxMTI1LCAwLjAxNSwgMC4wMjM3NSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLCAwLCAwLjAxLCAwLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgLTAuMDAyNSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDg3NSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTUsIC0wLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjA0NjI1LCAtMC4wNDEyNSwgLTAuMDQxMjUsIC0wLjAzNSwgLTAuMDI4NzUsIC0wLjAyNSwgLTAuMDIyNSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjA0Mzc1LCAtMC4wNDM3NSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzMzc1LCAtMC4wMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJTRSA9PSAxJ2IwIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjg3NSwgMC4wNjM3NSwgMC4wNTEyNSwgMC4wNTEyNSwgMC4wNDUsIDAuMDQxMjUsIDAuMDM4NzUiLCBcCi0gICAgICAgICAgIjAuMDczNzUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNTYyNSwgMC4wNTI1LCAwLjA1IiwgXAotICAgICAgICAgICIwLjA4NjI1LCAwLjA4MTI1LCAwLjA2ODc1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDU4NzUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIjAuMDk4NzUsIDAuMDg3NSwgMC4wODEyNSwgMC4wNzUsIDAuMDc1LCAwLjA3MTI1LCAwLjA2ODc1IiwgXAotICAgICAgICAgICIwLjEwNSwgMC4wOTM3NSwgMC4wODc1LCAwLjA4NzUsIDAuMDgxMjUsIDAuMDc3NSwgMC4wNzUiLCBcCi0gICAgICAgICAgIjAuMTE1LCAwLjExLCAwLjEwMzc1LCAwLjA5NzUsIDAuMDkxMjUsIDAuMDg3NSwgMC4wODUiLCBcCi0gICAgICAgICAgIjAuMTIzNzUsIDAuMTE4NzUsIDAuMTEyNSwgMC4xMDYyNSwgMC4xLCAwLjA5NjI1LCAwLjA5Mzc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDgxMjUsIDAuMDc2MjUsIDAuMDcsIDAuMDYzNzUsIDAuMDU3NSwgMC4wNTM3NSwgMC4wNTEyNSIsIFwKLSAgICAgICAgICAiMC4wOTI1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjg3NSwgMC4wNjUsIDAuMDYyNSIsIFwKLSAgICAgICAgICAiMC4wOTg3NSwgMC4wODc1LCAwLjA4MTI1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNzEyNSwgMC4wNjg3NSIsIFwKLSAgICAgICAgICAiMC4xMDUsIDAuMDkzNzUsIDAuMDg3NSwgMC4wODEyNSwgMC4wODEyNSwgMC4wNzc1LCAwLjA3NSIsIFwKLSAgICAgICAgICAiMC4xMDUsIDAuMSwgMC4wOTM3NSwgMC4wODc1LCAwLjA4MTI1LCAwLjA3NzUsIDAuMDc1IiwgXAotICAgICAgICAgICIwLjEwODc1LCAwLjEwMzc1LCAwLjA5NzUsIDAuMDkxMjUsIDAuMDkxMjUsIDAuMDgxMjUsIDAuMDc4NzUiLCBcCi0gICAgICAgICAgIjAuMTE3NSwgMC4xMDYyNSwgMC4xLCAwLjA5Mzc1LCAwLjA5Mzc1LCAwLjA5LCAwLjA4NzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFNFKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE1MjEyOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTUyMTI7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNTIxMjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDY1OTEsIDAuMDA2NjA3LCAwLjAwNjcwNCwgMC4wMDY4MDUsIDAuMDA2OTMxLCAwLjAwNzE3NSwgMC4wMDczNzkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDgzMjEsIDAuMDA4MzEyLCAwLjAwODQzOSwgMC4wMDg2MjcsIDAuMDA4ODg1LCAwLjAwOTI2NiwgMC4wMDk2MzMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUQwJiFEMSYhUzAmU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRDBfRVFfMF9BTl9EMV9FUV8wX0FOX1MwX0VRXzBfQU5fU0lfRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMTg3NSwgLTAuMDEzNzUsIC0wLjAwNzUsIC0wLjAwNzUsIC0wLjAwMTI1LCAwLjAwMjUsIDAuMDA1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDE4NzUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMTI1LCAtMC4wMDI1LCAwIiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDE1LCAtMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDIxMjUsIC0wLjAxODc1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMjc1LCAtMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjA1ODc1LCAtMC4wNTM3NSwgLTAuMDQ3NSwgLTAuMDQxMjUsIC0wLjA0MTI1LCAtMC4wMzc1LCAtMC4wMzUiLCBcCi0gICAgICAgICAgIi0wLjA2MTI1LCAtMC4wNTYyNSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNSwgLTAuMDQsIC0wLjAzNzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLCAwLjAxMTI1LCAwLjAxNzUsIDAuMDIzNzUsIDAuMDIzNzUsIDAuMDMzNzUsIDAuMDM2MjUiLCBcCi0gICAgICAgICAgIi0wLjAwNSwgMCwgMC4wMDYyNSwgMC4wMTI1LCAwLjAxODc1LCAwLjAyODc1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wMTc1LCAtMC4wMDYyNSwgMCwgMC4wMDYyNSwgMC4wMTI1LCAwLjAxNjI1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLCAwLjAwNjI1LCAwLjAxLCAwLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAsIDAuMDAzNzUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDMzNzUsIC0wLjAyODc1LCAtMC4wMjI1LCAtMC4wMTYyNSwgLTAuMDEsIC0wLjAwNjI1LCAwLjAwMjUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA4NzUsIC0wLjAwNjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEMCZEMSZTMCYhU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRDBfRVFfMF9BTl9EMV9FUV8xX0FOX1MwX0VRXzFfQU5fU0lfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMTI1LCAtMC4wMDEyNSwgMC4wMDUsIDAuMDExMjUsIDAuMDE3NSwgMC4wMjEyNSwgMC4wMyIsIFwKLSAgICAgICAgICAiLTAuMDE3NSwgLTAuMDEyNSwgMCwgMC4wMDYyNSwgMC4wMTI1LCAwLjAxNjI1LCAwLjAxODc1IiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLCAwLCAwLjAxLCAwLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMjUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLCAwLjAwMzc1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIC0wLjAwMjUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA0LCAtMC4wMzUsIC0wLjAyMjUsIC0wLjAxNjI1LCAtMC4wMSwgLTAuMDA2MjUsIC0wLjAwMzc1IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDA4NzUsIC0wLjAwNjI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDMxMjUsIC0wLjAyNjI1LCAtMC4wMiwgLTAuMDIsIC0wLjAxMzc1LCAtMC4wMSwgLTAuMDA3NSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAzMTI1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMjUsIC0wLjAyMTI1LCAtMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDI3NSwgLTAuMDI1IiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzMzc1LCAtMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDYxMjUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjA0Mzc1LCAtMC4wNCwgLTAuMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDY1LCAtMC4wNiwgLTAuMDUzNzUsIC0wLjA1Mzc1LCAtMC4wNDc1LCAtMC4wNDM3NSwgLTAuMDQxMjUiLCBcCi0gICAgICAgICAgIi0wLjA2NzUsIC0wLjA2MjUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNTYyNSwgLTAuMDUyNSwgLTAuMDUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEMCYhRDEmIVMwJlNJIjsKLSAgICAgIHNkZl9jb25kIDogIkQwX0VRXzBfQU5fRDFfRVFfMF9BTl9TMF9FUV8wX0FOX1NJX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM3NSwgMC4wMzI1LCAwLjAyNjI1LCAwLjAyLCAwLjAyLCAwLjAxNjI1LCAwLjAwNzUiLCBcCi0gICAgICAgICAgIjAuMDQ4NzUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMzEyNSwgMC4wMjUsIDAuMDIxMjUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMDU1LCAwLjA1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDM3NSwgMC4wMzM3NSwgMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMDY3NSwgMC4wNTYyNSwgMC4wNSwgMC4wNSwgMC4wNDM3NSwgMC4wNCwgMC4wMzc1IiwgXAotICAgICAgICAgICIwLjA3Mzc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDU2MjUsIDAuMDUsIDAuMDQ2MjUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMDgzNzUsIDAuMDcyNSwgMC4wNjYyNSwgMC4wNiwgMC4wNiwgMC4wNTYyNSwgMC4wNTM3NSIsIFwKLSAgICAgICAgICAiMC4wODYyNSwgMC4wODEyNSwgMC4wNzUsIDAuMDY4NzUsIDAuMDY4NzUsIDAuMDU4NzUsIDAuMDU2MjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzEyNSwgMC4wMjYyNSwgMC4wMTM3NSwgMC4wMDc1LCAwLjAwMTI1LCAtMC4wMDg3NSwgLTAuMDExMjUiLCBcCi0gICAgICAgICAgIjAuMDM2MjUsIDAuMDMxMjUsIDAuMDI1LCAwLjAxMjUsIDAuMDA2MjUsIDAuMDAyNSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMDQ4NzUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMjUsIDAuMDE4NzUsIDAuMDA4NzUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMDU1LCAwLjA1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDI1LCAwLjAyMTI1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMDYxMjUsIDAuMDU2MjUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMjc1LCAwLjAxODc1IiwgXAotICAgICAgICAgICIwLjA3MTI1LCAwLjA2NjI1LCAwLjA1Mzc1LCAwLjA0NzUsIDAuMDQxMjUsIDAuMDM3NSwgMC4wMjg3NSIsIFwKLSAgICAgICAgICAiMC4wOCwgMC4wNzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNSwgMC4wNCwgMC4wMzc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRDAmRDEmUzAmIVNJIjsKLSAgICAgIHNkZl9jb25kIDogIkQwX0VRXzBfQU5fRDFfRVFfMV9BTl9TMF9FUV8xX0FOX1NJX0VRXzAgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM3NSwgMC4wMjYyNSwgMC4wMiwgMC4wMTM3NSwgMC4wMDc1LCAtMC4wMDI1LCAtMC4wMDUiLCBcCi0gICAgICAgICAgIjAuMDQyNSwgMC4wMzc1LCAwLjAyNSwgMC4wMTg3NSwgMC4wMTI1LCAwLjAwODc1LCAwIiwgXAotICAgICAgICAgICIwLjA1NSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAyNSwgMC4wMjUsIDAuMDE1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICIwLjA1NSwgMC4wNSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMjEyNSwgMC4wMTI1IiwgXAotICAgICAgICAgICIwLjA2MTI1LCAwLjA1NjI1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDIxMjUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMDY1LCAwLjA2LCAwLjA1Mzc1LCAwLjA0MTI1LCAwLjAzNSwgMC4wMzEyNSwgMC4wMjI1IiwgXAotICAgICAgICAgICIwLjA3Mzc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDUsIDAuMDQzNzUsIDAuMDMzNzUsIDAuMDMxMjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTYyNSwgMC4wNDUsIDAuMDM4NzUsIDAuMDM4NzUsIDAuMDMyNSwgMC4wMjg3NSwgMC4wMjYyNSIsIFwKLSAgICAgICAgICAiMC4wNjc1LCAwLjA1NjI1LCAwLjA1LCAwLjA0Mzc1LCAwLjA0Mzc1LCAwLjA0LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIjAuMDczNzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNTYyNSwgMC4wNSwgMC4wNDYyNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4wOCwgMC4wNjg3NSwgMC4wNjI1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDUyNSwgMC4wNSIsIFwKLSAgICAgICAgICAiMC4wODYyNSwgMC4wNzUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNjI1LCAwLjA1ODc1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICIwLjA5LCAwLjA4NSwgMC4wNzg3NSwgMC4wNzI1LCAwLjA2NjI1LCAwLjA2MjUsIDAuMDYiLCBcCi0gICAgICAgICAgIjAuMDkyNSwgMC4wODc1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNzUsIDAuMDcxMjUsIDAuMDYyNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oU0kpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDkzMTE3MzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA5Mjg1MzM7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwOTMxMTczOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzg4LCAwLjAwMzgzMywgMC4wMDM4NTMsIDAuMDAzOTIsIDAuMDA0MDEzLCAwLjAwNDE2OSwgMC4wMDQzMzIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDczMzgsIDAuMDA3MzA5LCAwLjAwNzMzNiwgMC4wMDczOTIsIDAuMDA3NDY0LCAwLjAwNzYyLCAwLjAwNzc4NiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJTRSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMjUsIC0wLjAyLCAtMC4wMTM3NSwgLTAuMDA3NSwgLTAuMDA3NSwgLTAuMDAzNzUsIC0wLjAwMTI1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwODc1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxNSwgLTAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDM3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDIxMjUsIC0wLjAxODc1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMjc1LCAtMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjA1ODc1LCAtMC4wNTM3NSwgLTAuMDQ3NSwgLTAuMDQ3NSwgLTAuMDQxMjUsIC0wLjAzNzUsIC0wLjAzNSIsIFwKLSAgICAgICAgICAiLTAuMDYxMjUsIC0wLjA1NjI1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjA1LCAtMC4wNDYyNSwgLTAuMDM3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAsIDAuMDA1LCAwLjAxNzUsIDAuMDIzNzUsIDAuMDIzNzUsIDAuMDMzNzUsIDAuMDM2MjUiLCBcCi0gICAgICAgICAgIi0wLjAwNSwgMCwgMC4wMDYyNSwgMC4wMTI1LCAwLjAxODc1LCAwLjAyODc1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wMTEyNSwgLTAuMDA2MjUsIDAsIDAuMDA2MjUsIDAuMDEyNSwgMC4wMjI1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDE3NSwgLTAuMDEyNSwgMCwgMC4wMDYyNSwgMC4wMDYyNSwgMC4wMTYyNSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLCAwLjAwNjI1LCAwLjAxLCAwLjAxODc1IiwgXAotICAgICAgICAgICItMC4wMjc1LCAtMC4wMjI1LCAtMC4wMSwgLTAuMDAzNzUsIDAuMDAyNSwgMC4wMDYyNSwgMC4wMDg3NSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLjAwMzc1LCAwLjAwNjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJTRSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDM3NSwgMC4wMzg3NSwgMC4wMzI1LCAwLjAyNjI1LCAwLjAyLCAwLjAxNjI1LCAwLjAxMzc1IiwgXAotICAgICAgICAgICIwLjA0ODc1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDMxMjUsIDAuMDI3NSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4wNjEyNSwgMC4wNSwgMC4wNDM3NSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzMzc1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDU2MjUsIDAuMDUsIDAuMDUsIDAuMDQzNzUsIDAuMDQsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiMC4wNzM3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1NjI1LCAwLjA1LCAwLjA0NjI1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjA4Mzc1LCAwLjA3MjUsIDAuMDY2MjUsIDAuMDYsIDAuMDYsIDAuMDU2MjUsIDAuMDUzNzUiLCBcCi0gICAgICAgICAgIjAuMDg2MjUsIDAuMDgxMjUsIDAuMDc1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDU4NzUsIDAuMDU2MjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzEyNSwgMC4wMiwgMC4wMTM3NSwgMC4wMDEyNSwgLTAuMDA1LCAtMC4wMDg3NSwgLTAuMDE3NSIsIFwKLSAgICAgICAgICAiMC4wMzYyNSwgMC4wMjUsIDAuMDE4NzUsIDAuMDEyNSwgMC4wMDYyNSwgLTAuMDAzNzUsIC0wLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMDQyNSwgMC4wMzEyNSwgMC4wMjUsIDAuMDE4NzUsIDAuMDEyNSwgMC4wMDI1LCAwIiwgXAotICAgICAgICAgICIwLjA0ODc1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDI1LCAwLjAxODc1LCAwLjAwODc1LCAwIiwgXAotICAgICAgICAgICIwLjA1NSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAyNSwgMC4wMTg3NSwgMC4wMTUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMDU4NzUsIDAuMDUzNzUsIDAuMDQxMjUsIDAuMDM1LCAwLjAyODc1LCAwLjAxODc1LCAwLjAxNjI1IiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDU2MjUsIDAuMDUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMjc1LCAwLjAxODc1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBTTURGRkhRWDggKgotICogLS0tLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChTTURGRkhRWDgpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMi4yNDA4NTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBmZiAoTjMwLFFCSU5UKSB7Ci0gICAgbmV4dF9zdGF0ZSA6ICIoKFNFIFNJKSArICghU0UgKChTMCBEMSkgKyAoIVMwIEQwKSkpKSI7Ci0gICAgY2xvY2tlZF9vbiA6ICJDSyI7Ci0gIH0KLSAgcGluKENLKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2MTg2OTU7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjE4Njc2OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDYxODY5NTsKLSAgICBjbG9jayA6IHRydWU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA0MjQ0LCAwLjAwNDIzNCwgMC4wMDQzMTMsIDAuMDA0Mzk4LCAwLjAwNDUyMSwgMC4wMDQ3NjUsIDAuMDA0OTM3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA5NTc3LCAwLjAwOTU2MSwgMC4wMDk2NTksIDAuMDA5NzgzLCAwLjAwOTkzOCwgMC4wMTAxMDcsIDAuMDEwMzE3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRDAmIUQxJiFTMCYhU0UmIVNJIjsKLSAgICAgIHNkZl9jb25kIDogIkQwX0VRXzBfQU5fRDFfRVFfMF9BTl9TMF9FUV8wX0FOX1NFX0VRXzBfQU5fU0lfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjA4ODU1MywgMC4wOTY4MDUsIDAuMTA2MjI5LCAwLjExNDAzNCwgMC4xMjAxNjEsIDAuMTI4MjkxLCAwLjEzNDU5MiIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDY3ODE5LCAwLjA3NTkxOCwgMC4wODUzOTIsIDAuMDkyNzY1LCAwLjA5ODc0MiwgMC4xMDY1ODcsIDAuMTEyMjQ0Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihEMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwOTg2Mjc1OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDk4NDIxOTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA5ODYyNzU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA1NTU3LCAwLjAwNTUxOSwgMC4wMDU1MjksIDAuMDA1NTgzLCAwLjAwNTY1MiwgMC4wMDU4MDEsIDAuMDA1OTUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDk2OTQsIDAuMDA5NjczLCAwLjAwOTY4NiwgMC4wMDk3NCwgMC4wMDk4MSwgMC4wMDk5NDksIDAuMDEwMDkzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFTMCYhU0UiOwotICAgICAgc2RmX2NvbmQgOiAiUzBfRVFfMF9BTl9TRV9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjA1LCAtMC4wNDUsIC0wLjAzODc1LCAtMC4wMzg3NSwgLTAuMDMyNSwgLTAuMDI4NzUsIC0wLjAyNjI1IiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzMzc1LCAtMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDYxMjUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDUsIC0wLjA1LCAtMC4wNDYyNSwgLTAuMDQzNzUiLCBcCi0gICAgICAgICAgIi0wLjA2NzUsIC0wLjA2MjUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNTYyNSwgLTAuMDUyNSwgLTAuMDUiLCBcCi0gICAgICAgICAgIi0wLjA3Mzc1LCAtMC4wNjg3NSwgLTAuMDY4NzUsIC0wLjA2MjUsIC0wLjA2MjUsIC0wLjA1ODc1LCAtMC4wNTYyNSIsIFwKLSAgICAgICAgICAiLTAuMDgzNzUsIC0wLjA3ODc1LCAtMC4wNzg3NSwgLTAuMDcyNSwgLTAuMDcyNSwgLTAuMDY4NzUsIC0wLjA2NjI1IiwgXAotICAgICAgICAgICItMC4wOTI1LCAtMC4wODc1LCAtMC4wODEyNSwgLTAuMDgxMjUsIC0wLjA4MTI1LCAtMC4wNzc1LCAtMC4wNzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMTg3NSwgLTAuMDA3NSwgLTAuMDAxMjUsIC0wLjAwMTI1LCAwLjAwNSwgMC4wMDg3NSwgMC4wMTc1IiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLCAwLjAwMzc1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgLTAuMDAyNSwgMCIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDg3NSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzMTI1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDE1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDQ2MjUsIC0wLjA0MTI1LCAtMC4wMzUsIC0wLjAyODc1LCAtMC4wMjg3NSwgLTAuMDE4NzUsIC0wLjAxNjI1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMjc1LCAtMC4wMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFTMCYhU0UiOwotICAgICAgc2RmX2NvbmQgOiAiUzBfRVFfMF9BTl9TRV9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3NSwgMC4wNywgMC4wNjM3NSwgMC4wNTc1LCAwLjA1MTI1LCAwLjA0NzUsIDAuMDQ1IiwgXAotICAgICAgICAgICIwLjA4LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA2MjUsIDAuMDUyNSwgMC4wNSIsIFwKLSAgICAgICAgICAiMC4wOTI1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjg3NSwgMC4wNjUsIDAuMDYyNSIsIFwKLSAgICAgICAgICAiMC4wOTg3NSwgMC4wODc1LCAwLjA4MTI1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNzEyNSwgMC4wNjg3NSIsIFwKLSAgICAgICAgICAiMC4xMDUsIDAuMDkzNzUsIDAuMDg3NSwgMC4wODc1LCAwLjA4MTI1LCAwLjA3NzUsIDAuMDc1IiwgXAotICAgICAgICAgICIwLjExNSwgMC4xMDM3NSwgMC4wOTc1LCAwLjA5NzUsIDAuMDkxMjUsIDAuMDg3NSwgMC4wODUiLCBcCi0gICAgICAgICAgIjAuMTIzNzUsIDAuMTEyNSwgMC4xMDYyNSwgMC4xMDYyNSwgMC4xLCAwLjA5NjI1LCAwLjA5Mzc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU2MjUsIDAuMDUxMjUsIDAuMDM4NzUsIDAuMDMyNSwgMC4wMjYyNSwgMC4wMTYyNSwgMC4wMTM3NSIsIFwKLSAgICAgICAgICAiMC4wNjEyNSwgMC4wNTYyNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyNzUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMDY3NSwgMC4wNjI1LCAwLjA1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDMzNzUsIDAuMDI1IiwgXAotICAgICAgICAgICIwLjA4LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDUsIDAuMDQzNzUsIDAuMDQsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMDgsIDAuMDc1LCAwLjA2ODc1LCAwLjA1NjI1LCAwLjA1LCAwLjA0NjI1LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIjAuMDksIDAuMDg1LCAwLjA3MjUsIDAuMDY2MjUsIDAuMDYsIDAuMDU2MjUsIDAuMDQ3NSIsIFwKLSAgICAgICAgICAiMC4wOTg3NSwgMC4wODc1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNTg3NSwgMC4wNTYyNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRDEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDkxOTg1ODsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA5MTY3NTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA5MTk4NTg7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA1Mjc2LCAwLjAwNTIzOCwgMC4wMDUyNTIsIDAuMDA1MzA0LCAwLjAwNTM3NywgMC4wMDU1MjEsIDAuMDA1Njc2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDEwMDY3LCAwLjAxMDA0NSwgMC4wMTAwNTMsIDAuMDEwMTA1LCAwLjAxMDE1OSwgMC4wMTAyOTQsIDAuMDEwNDQ0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlMwJiFTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJTMF9FUV8xX0FOX1NFX0VRXzAgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDUsIC0wLjA0NSwgLTAuMDM4NzUsIC0wLjAzMjUsIC0wLjAzMjUsIC0wLjAyODc1LCAtMC4wMjYyNSIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzM3NSwgLTAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjA2MTI1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjA1LCAtMC4wNSwgLTAuMDQ2MjUsIC0wLjA0Mzc1IiwgXAotICAgICAgICAgICItMC4wNjc1LCAtMC4wNjI1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDU2MjUsIC0wLjA1MjUsIC0wLjA1IiwgXAotICAgICAgICAgICItMC4wNzM3NSwgLTAuMDY4NzUsIC0wLjA2ODc1LCAtMC4wNjI1LCAtMC4wNjI1LCAtMC4wNTg3NSwgLTAuMDU2MjUiLCBcCi0gICAgICAgICAgIi0wLjA4Mzc1LCAtMC4wNzg3NSwgLTAuMDc4NzUsIC0wLjA3MjUsIC0wLjA3MjUsIC0wLjA2ODc1LCAtMC4wNjYyNSIsIFwKLSAgICAgICAgICAiLTAuMDkyNSwgLTAuMDg3NSwgLTAuMDgxMjUsIC0wLjA4MTI1LCAtMC4wODEyNSwgLTAuMDc3NSwgLTAuMDc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDE4NzUsIC0wLjAxMzc1LCAtMC4wMDc1LCAtMC4wMDEyNSwgMC4wMDUsIDAuMDA4NzUsIDAuMDE3NSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMCwgMC4wMDM3NSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAtMC4wMDI1LCAwIiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwODc1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDMxMjUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTUsIC0wLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjA0NjI1LCAtMC4wNDEyNSwgLTAuMDM1LCAtMC4wMjg3NSwgLTAuMDI4NzUsIC0wLjAxODc1LCAtMC4wMTYyNSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDI3NSwgLTAuMDI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJTMCYhU0UiOwotICAgICAgc2RmX2NvbmQgOiAiUzBfRVFfMV9BTl9TRV9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3NSwgMC4wNywgMC4wNTc1LCAwLjA1NzUsIDAuMDUxMjUsIDAuMDQ3NSwgMC4wNDUiLCBcCi0gICAgICAgICAgIjAuMDgsIDAuMDc1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDUyNSwgMC4wNSIsIFwKLSAgICAgICAgICAiMC4wOTI1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjg3NSwgMC4wNjUsIDAuMDYyNSIsIFwKLSAgICAgICAgICAiMC4wOTg3NSwgMC4wODc1LCAwLjA4MTI1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNzEyNSwgMC4wNjg3NSIsIFwKLSAgICAgICAgICAiMC4xMDUsIDAuMDkzNzUsIDAuMDg3NSwgMC4wODc1LCAwLjA4MTI1LCAwLjA3NzUsIDAuMDc1IiwgXAotICAgICAgICAgICIwLjExNSwgMC4xMDM3NSwgMC4wOTc1LCAwLjA5NzUsIDAuMDkxMjUsIDAuMDg3NSwgMC4wODUiLCBcCi0gICAgICAgICAgIjAuMTIzNzUsIDAuMTEyNSwgMC4xMDYyNSwgMC4xMDYyNSwgMC4xLCAwLjA5NjI1LCAwLjA5Mzc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU2MjUsIDAuMDUxMjUsIDAuMDM4NzUsIDAuMDMyNSwgMC4wMjYyNSwgMC4wMjI1LCAwLjAxMzc1IiwgXAotICAgICAgICAgICIwLjA2MTI1LCAwLjA1NjI1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDI3NSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4wNzM3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDMzNzUsIDAuMDI1IiwgXAotICAgICAgICAgICIwLjA4LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDUsIDAuMDUsIDAuMDQsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMDg2MjUsIDAuMDc1LCAwLjA2ODc1LCAwLjA1NjI1LCAwLjA1NjI1LCAwLjA0NjI1LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIjAuMDksIDAuMDg1LCAwLjA3MjUsIDAuMDY2MjUsIDAuMDYsIDAuMDU2MjUsIDAuMDQ3NSIsIFwKLSAgICAgICAgICAiMC4wOTg3NSwgMC4wODc1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNTg3NSwgMC4wNTYyNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAyLjY3Njk0OwotICAgIGZ1bmN0aW9uIDogIk4zMCI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3NlbnNlIDogbm9uX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiByaXNpbmdfZWRnZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODE4MDIsIDAuMTEwNjY3LCAwLjEzNzk3MiwgMC4xNTc0MzUsIDAuMTg4NTc1LCAwLjIxNTgyNCwgMC4yNTQ3MzMiLCBcCi0gICAgICAgICAgIjAuMDkwMDc1LCAwLjExODk0MSwgMC4xNDYyNDQsIDAuMTY1NzE5LCAwLjE5Njg0OCwgMC4yMjQxLCAwLjI2MzAxIiwgXAotICAgICAgICAgICIwLjA5OTQ0MSwgMC4xMjgzMDksIDAuMTU1NjE1LCAwLjE3NTA4OSwgMC4yMDYyMTEsIDAuMjMzNDUyLCAwLjI3MjM3MSIsIFwKLSAgICAgICAgICAiMC4xMDcxMDYsIDAuMTM1OTc2LCAwLjE2MzI3MywgMC4xODI3NTUsIDAuMjEzODgsIDAuMjQxMTIzLCAwLjI4MDAzNyIsIFwKLSAgICAgICAgICAiMC4xMTMzMDcsIDAuMTQyMTc2LCAwLjE2OTQ4MSwgMC4xODg5NTYsIDAuMjIwMDc5LCAwLjI0NzMyMiwgMC4yODYyMzciLCBcCi0gICAgICAgICAgIjAuMTIxNDAyLCAwLjE1MDI4NSwgMC4xNzc1NzgsIDAuMTk3MDUsIDAuMjI4MTc1LCAwLjI1NTQyMiwgMC4yOTQzNDMiLCBcCi0gICAgICAgICAgIjAuMTI3ODYyLCAwLjE1NjczMywgMC4xODQwMzksIDAuMjAzNDg4LCAwLjIzNDYzNywgMC4yNjE4ODIsIDAuMzAwNzk1Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE3MjU2LCAwLjA3MTYsIDAuMTI4MjUsIDAuMTY5MDczLCAwLjIzNDI3NywgMC4yOTIyMjQsIDAuMzc0NDU5IiwgXAotICAgICAgICAgICIwLjAxNzIzOCwgMC4wNzE2LCAwLjEyODI0OSwgMC4xNjkwNzYsIDAuMjM0NTI3LCAwLjI5MjIyOSwgMC4zNzQ0NjgiLCBcCi0gICAgICAgICAgIjAuMDE3MjM5LCAwLjA3MTYwMSwgMC4xMjgyNDgsIDAuMTY4OTUzLCAwLjIzNDM2MSwgMC4yOTIwMDEsIDAuMzc0NDA5IiwgXAotICAgICAgICAgICIwLjAxNzI2NCwgMC4wNzE2MDEsIDAuMTI4MjQ5LCAwLjE2OTA2NCwgMC4yMzQ0OTUsIDAuMjkyMjExLCAwLjM3NDQxMiIsIFwKLSAgICAgICAgICAiMC4wMTcyNjEsIDAuMDcxNjAzLCAwLjEyODI0OCwgMC4xNjg5NSwgMC4yMzQ1NzcsIDAuMjkxOTYyLCAwLjM3NDQwMiIsIFwKLSAgICAgICAgICAiMC4wMTcyNzEsIDAuMDcxNjIzLCAwLjEyODI0OSwgMC4xNjkwNjksIDAuMjM0NTU3LCAwLjI5MTkzLCAwLjM3Mzk4MSIsIFwKLSAgICAgICAgICAiMC4wMTcyNzYsIDAuMDcxNjksIDAuMTI4MTk2LCAwLjE2OTA4NiwgMC4yMzQ2NDUsIDAuMjkyMTc3LCAwLjM3NDM4MiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4ODU1MywgMC4xMTgyNDgsIDAuMTQ2NTA0LCAwLjE2NjY1MSwgMC4xOTg4NjcsIDAuMjI3MDQ2LCAwLjI2NzI5NSIsIFwKLSAgICAgICAgICAiMC4wOTY4MDgsIDAuMTI2NTAzLCAwLjE1NDc1OSwgMC4xNzQ5MDUsIDAuMjA3MTIxLCAwLjIzNTI5NywgMC4yNzU1NTciLCBcCi0gICAgICAgICAgIjAuMTA2MjMsIDAuMTM1OTMsIDAuMTY0MTg1LCAwLjE4NDMzMSwgMC4yMTY1NDcsIDAuMjQ0NzI3LCAwLjI4NDk4IiwgXAotICAgICAgICAgICIwLjExNDAzNywgMC4xNDM3MzYsIDAuMTcxOTk0LCAwLjE5MjE0MSwgMC4yMjQzNTIsIDAuMjUyNTMzLCAwLjI5MjgwNiIsIFwKLSAgICAgICAgICAiMC4xMjAxNjMsIDAuMTQ5ODYsIDAuMTc4MTIsIDAuMTk4MjY3LCAwLjIzMDQ3NCwgMC4yNTg2NTksIDAuMjk4OTMxIiwgXAotICAgICAgICAgICIwLjEyODI5MiwgMC4xNTc5OTQsIDAuMTg2MjUxLCAwLjIwNjM5LCAwLjIzODYwNiwgMC4yNjY3ODUsIDAuMzA3MDM2IiwgXAotICAgICAgICAgICIwLjEzNDU5MiwgMC4xNjQyODYsIDAuMTkyNTUyLCAwLjIxMjY5NCwgMC4yNDQ5MDcsIDAuMjczMDksIDAuMzEzMzY1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE2NzEsIDAuMDcyNTg4LCAwLjEzMDUwNCwgMC4xNzIxNSwgMC4yMzkzMjcsIDAuMjk3OTI1LCAwLjM4MTY5MSIsIFwKLSAgICAgICAgICAiMC4wMTY3MDksIDAuMDcyNjI3LCAwLjEzMDUwNCwgMC4xNzIxNSwgMC4yMzkzMjQsIDAuMjk3OSwgMC4zODE3MjciLCBcCi0gICAgICAgICAgIjAuMDE2NzEzLCAwLjA3MjY0NywgMC4xMzA1MDUsIDAuMTcyMTQ4LCAwLjIzOTMzNywgMC4yOTc5MTQsIDAuMzgxNzE0IiwgXAotICAgICAgICAgICIwLjAxNjcxMywgMC4wNzI2MzQsIDAuMTMwNTQsIDAuMTcyMjE3LCAwLjIzOTMwMywgMC4yOTc5MDYsIDAuMzgxNzk0IiwgXAotICAgICAgICAgICIwLjAxNjcxMywgMC4wNzI2NDksIDAuMTMwNTA1LCAwLjE3MjE0OSwgMC4yMzkyNzksIDAuMjk3OTEyLCAwLjM4MTIxMiIsIFwKLSAgICAgICAgICAiMC4wMTY3MTIsIDAuMDcyNjU5LCAwLjEzMDQ5NiwgMC4xNzIxODEsIDAuMjM4OTQsIDAuMjk3OTE2LCAwLjM4MTYyNyIsIFwKLSAgICAgICAgICAiMC4wMTY3MDQsIDAuMDcyNiwgMC4xMzA1NiwgMC4xNzIxMjMsIDAuMjM5MDQ0LCAwLjI5NzkwNSwgMC4zODE3OTciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjA0NDYsIDAuMDIwNzQ5LCAwLjAyMDgzMywgMC4wMjA4NjEsIDAuMDIwODg3LCAwLjAyMDksIDAuMDIwOTEyIiwgXAotICAgICAgICAgICIwLjAyMDQyOSwgMC4wMjA3MjksIDAuMDIwODEyLCAwLjAyMDg0LCAwLjAyMDg3NSwgMC4wMjA4NzksIDAuMDIwODkxIiwgXAotICAgICAgICAgICIwLjAyMDUwNCwgMC4wMjA4MDksIDAuMDIwODkzLCAwLjAyMDkyMiwgMC4wMjA5NDgsIDAuMDIwOTYxLCAwLjAyMDk3NCIsIFwKLSAgICAgICAgICAiMC4wMjA2MDQsIDAuMDIwOTA3LCAwLjAyMDk5MiwgMC4wMjEwMjEsIDAuMDIxMDQ2LCAwLjAyMTA1OSwgMC4wMjEwNzQiLCBcCi0gICAgICAgICAgIjAuMDIwNzM4LCAwLjAyMTA0MywgMC4wMjExMjgsIDAuMDIxMTU3LCAwLjAyMTE4NiwgMC4wMjExOTcsIDAuMDIxMjEiLCBcCi0gICAgICAgICAgIjAuMDIwOTc5LCAwLjAyMTI4MSwgMC4wMjEzNjQsIDAuMDIxMzg2LCAwLjAyMTQwNiwgMC4wMjE0MiwgMC4wMjE0NDgiLCBcCi0gICAgICAgICAgIjAuMDIxMTcsIDAuMDIxNDYsIDAuMDIxNTU3LCAwLjAyMTU4NywgMC4wMjE2MSwgMC4wMjE2MjQsIDAuMDIxNjM2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjA1ODMsIDAuMDIxMDMsIDAuMDIxMTUzLCAwLjAyMTE5OCwgMC4wMjEyMzcsIDAuMDIxMjU4LCAwLjAyMTI3NyIsIFwKLSAgICAgICAgICAiMC4wMjA1NzUsIDAuMDIxMDIxLCAwLjAyMTE0NCwgMC4wMjExODgsIDAuMDIxMjI3LCAwLjAyMTI0OCwgMC4wMjEyNjciLCBcCi0gICAgICAgICAgIjAuMDIwNjczLCAwLjAyMTEyNywgMC4wMjEyNTIsIDAuMDIxMjk0LCAwLjAyMTMzNSwgMC4wMjEzNTYsIDAuMDIxMzc2IiwgXAotICAgICAgICAgICIwLjAyMDc3NSwgMC4wMjEyMzUsIDAuMDIxMzYxLCAwLjAyMTQwNSwgMC4wMjE0NDYsIDAuMDIxNDY3LCAwLjAyMTQ4NyIsIFwKLSAgICAgICAgICAiMC4wMjA5MTYsIDAuMDIxMzcsIDAuMDIxNDk0LCAwLjAyMTUzOCwgMC4wMjE1NzgsIDAuMDIxNTk5LCAwLjAyMTYxOSIsIFwKLSAgICAgICAgICAiMC4wMjExOTksIDAuMDIxNjQ5LCAwLjAyMTc3MSwgMC4wMjE4MTQsIDAuMDIxODU1LCAwLjAyMTg3NywgMC4wMjE4OTYiLCBcCi0gICAgICAgICAgIjAuMDIxMzkxLCAwLjAyMTg0OCwgMC4wMjE5NzMsIDAuMDIyMDE2LCAwLjAyMjA1NSwgMC4wMjIwNzcsIDAuMDIyMDk2Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNjcxNTM7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNjcxNTM7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNjcwNDU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA5Mjg3LCAwLjAwOTI4NSwgMC4wMDkzNjcsIDAuMDA5NDc4LCAwLjAwOTYsIDAuMDA5ODEsIDAuMDEwMDA4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDEwOTMzLCAwLjAxMDk1OCwgMC4wMTEwNzEsIDAuMDExMjU4LCAwLjAxMTQ4OSwgMC4wMTE5LCAwLjAxMjI3NCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhU0UiOwotICAgICAgc2RmX2NvbmQgOiAiU0UgPT0gMSdiMCI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDI1LCAtMC4wMiwgLTAuMDEzNzUsIC0wLjAwNzUsIC0wLjAwMTI1LCAwLjAwMjUsIDAuMDExMjUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMTI1LCAtMC4wMDI1LCAwIiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxODc1LCAtMC4wMDg3NSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTUsIC0wLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wNDM3NSwgLTAuMDMxMjUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAyMTI1LCAtMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wNTI1LCAtMC4wNDc1LCAtMC4wNDEyNSwgLTAuMDM1LCAtMC4wMjg3NSwgLTAuMDI1LCAtMC4wMjI1IiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAyNzUsIC0wLjAyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAxMjUsIC0wLjAwNzUsIC0wLjAwMTI1LCAwLjAwNSwgMC4wMTEyNSwgMC4wMTUsIDAuMDE3NSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLCAwLCAwLjAxLCAwLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgLTAuMDAyNSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDg3NSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAyNSwgLTAuMDE1LCAtMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wNDYyNSwgLTAuMDQxMjUsIC0wLjAzNSwgLTAuMDM1LCAtMC4wMjg3NSwgLTAuMDI1LCAtMC4wMjI1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDQzNzUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzc1LCAtMC4wMzM3NSwgLTAuMDMxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJTRSA9PSAxJ2IwIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjg3NSwgMC4wNjM3NSwgMC4wNTc1LCAwLjA1MTI1LCAwLjA1MTI1LCAwLjA0NzUsIDAuMDM4NzUiLCBcCi0gICAgICAgICAgIjAuMDgsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1MjUsIDAuMDUiLCBcCi0gICAgICAgICAgIjAuMDg2MjUsIDAuMDgxMjUsIDAuMDc1LCAwLjA2ODc1LCAwLjA2ODc1LCAwLjA1ODc1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICIwLjA5ODc1LCAwLjA4NzUsIDAuMDgxMjUsIDAuMDgxMjUsIDAuMDc1LCAwLjA3MTI1LCAwLjA2ODc1IiwgXAotICAgICAgICAgICIwLjEwNSwgMC4xLCAwLjA5Mzc1LCAwLjA4NzUsIDAuMDgxMjUsIDAuMDc3NSwgMC4wNzUiLCBcCi0gICAgICAgICAgIjAuMTIxMjUsIDAuMTEsIDAuMTAzNzUsIDAuMDk3NSwgMC4wOTc1LCAwLjA5Mzc1LCAwLjA5MTI1IiwgXAotICAgICAgICAgICIwLjEzLCAwLjExODc1LCAwLjExMjUsIDAuMTA2MjUsIDAuMTA2MjUsIDAuMTAyNSwgMC4xIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDgxMjUsIDAuMDc2MjUsIDAuMDcsIDAuMDYzNzUsIDAuMDYzNzUsIDAuMDYsIDAuMDUxMjUiLCBcCi0gICAgICAgICAgIjAuMDkyNSwgMC4wODEyNSwgMC4wNzUsIDAuMDc1LCAwLjA2ODc1LCAwLjA2NSwgMC4wNjI1IiwgXAotICAgICAgICAgICIwLjA5ODc1LCAwLjA4NzUsIDAuMDgxMjUsIDAuMDgxMjUsIDAuMDc1LCAwLjA3MTI1LCAwLjA2ODc1IiwgXAotICAgICAgICAgICIwLjEwNSwgMC4wOTM3NSwgMC4wODc1LCAwLjA4MTI1LCAwLjA4MTI1LCAwLjA3NzUsIDAuMDc1IiwgXAotICAgICAgICAgICIwLjEwNSwgMC4xLCAwLjA5Mzc1LCAwLjA4NzUsIDAuMDgxMjUsIDAuMDc3NSwgMC4wNzUiLCBcCi0gICAgICAgICAgIjAuMTA4NzUsIDAuMTAzNzUsIDAuMDk3NSwgMC4wOTEyNSwgMC4wOTEyNSwgMC4wODc1LCAwLjA3ODc1IiwgXAotICAgICAgICAgICIwLjExNzUsIDAuMTA2MjUsIDAuMSwgMC4wOTM3NSwgMC4wOTM3NSwgMC4wOSwgMC4wODc1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTRSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNjE1NjI7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNjE1NTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE2MTU2MjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDY2NTcsIDAuMDA2NjcyLCAwLjAwNjc3MSwgMC4wMDY4NjcsIDAuMDA2OTk0LCAwLjAwNzIwOSwgMC4wMDc0MzgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDg0MDMsIDAuMDA4MzkxLCAwLjAwODUyLCAwLjAwODcwNywgMC4wMDg5NjMsIDAuMDA5MzQ2LCAwLjAwOTcxMiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRDAmIUQxJiFTMCZTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEMF9FUV8wX0FOX0QxX0VRXzBfQU5fUzBfRVFfMF9BTl9TSV9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAxODc1LCAtMC4wMTM3NSwgLTAuMDA3NSwgLTAuMDA3NSwgLTAuMDAxMjUsIDAuMDAyNSwgMC4wMDUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMTI1LCAtMC4wMDg3NSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTUsIC0wLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMjEyNSwgLTAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAyNzUsIC0wLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDU4NzUsIC0wLjA1Mzc1LCAtMC4wNDc1LCAtMC4wNDc1LCAtMC4wNDEyNSwgLTAuMDM3NSwgLTAuMDM1IiwgXAotICAgICAgICAgICItMC4wNjEyNSwgLTAuMDU2MjUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDUsIC0wLjA0NjI1LCAtMC4wNDM3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAsIDAuMDExMjUsIDAuMDE3NSwgMC4wMjM3NSwgMC4wMjM3NSwgMC4wMzM3NSwgMC4wMzYyNSIsIFwKLSAgICAgICAgICAiLTAuMDA1LCAwLCAwLjAwNjI1LCAwLjAxMjUsIDAuMDE4NzUsIDAuMDI4NzUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjAxMTI1LCAtMC4wMDYyNSwgMCwgMC4wMDYyNSwgMC4wMTI1LCAwLjAxNjI1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDE3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAsIDAuMDA2MjUsIDAuMDEsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMCwgMC4wMDM3NSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDMzNzUsIC0wLjAyMjUsIC0wLjAxNjI1LCAtMC4wMTYyNSwgLTAuMDEsIC0wLjAwNjI1LCAwLjAwMjUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA4NzUsIC0wLjAwNjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEMCZEMSZTMCYhU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRDBfRVFfMF9BTl9EMV9FUV8xX0FOX1MwX0VRXzFfQU5fU0lfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMDYyNSwgLTAuMDAxMjUsIDAuMDA1LCAwLjAxMTI1LCAwLjAxNzUsIDAuMDIxMjUsIDAuMDMiLCBcCi0gICAgICAgICAgIi0wLjAxNzUsIC0wLjAxMjUsIDAsIDAuMDA2MjUsIDAuMDEyNSwgMC4wMTYyNSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxODc1LCAtMC4wMDYyNSwgMCwgMCwgMC4wMSwgMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDI1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMCwgMC4wMDM3NSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAtMC4wMDI1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wNCwgLTAuMDI4NzUsIC0wLjAyMjUsIC0wLjAxNjI1LCAtMC4wMSwgLTAuMDA2MjUsIC0wLjAwMzc1IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTg3NSwgLTAuMDA4NzUsIC0wLjAwNjI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDMxMjUsIC0wLjAyNjI1LCAtMC4wMiwgLTAuMDIsIC0wLjAxMzc1LCAtMC4wMSwgLTAuMDA3NSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAzMTI1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMjUsIC0wLjAyMTI1LCAtMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDI3NSwgLTAuMDI1IiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzMzc1LCAtMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDYxMjUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjA0Mzc1LCAtMC4wNCwgLTAuMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDY1LCAtMC4wNiwgLTAuMDUzNzUsIC0wLjA1Mzc1LCAtMC4wNDc1LCAtMC4wNDM3NSwgLTAuMDQxMjUiLCBcCi0gICAgICAgICAgIi0wLjA2NzUsIC0wLjA2MjUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNTYyNSwgLTAuMDUyNSwgLTAuMDUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEMCYhRDEmIVMwJlNJIjsKLSAgICAgIHNkZl9jb25kIDogIkQwX0VRXzBfQU5fRDFfRVFfMF9BTl9TMF9FUV8wX0FOX1NJX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQzNzUsIDAuMDMyNSwgMC4wMjYyNSwgMC4wMjYyNSwgMC4wMiwgMC4wMTYyNSwgMC4wMTM3NSIsIFwKLSAgICAgICAgICAiMC4wNDg3NSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMjEyNSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4wNjEyNSwgMC4wNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzNzUsIDAuMDMzNzUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMDY3NSwgMC4wNTYyNSwgMC4wNSwgMC4wNSwgMC4wNDM3NSwgMC4wNCwgMC4wMzc1IiwgXAotICAgICAgICAgICIwLjA3Mzc1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDUsIDAuMDQ2MjUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMDgzNzUsIDAuMDcyNSwgMC4wNjYyNSwgMC4wNjYyNSwgMC4wNiwgMC4wNTYyNSwgMC4wNTM3NSIsIFwKLSAgICAgICAgICAiMC4wOTI1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjg3NSwgMC4wNjUsIDAuMDU2MjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzEyNSwgMC4wMjYyNSwgMC4wMTM3NSwgMC4wMDc1LCAwLjAwMTI1LCAtMC4wMDI1LCAtMC4wMTEyNSIsIFwKLSAgICAgICAgICAiMC4wNDI1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMTg3NSwgMC4wMTI1LCAwLjAwMjUsIDAiLCBcCi0gICAgICAgICAgIjAuMDQ4NzUsIDAuMDQzNzUsIDAuMDMxMjUsIDAuMDI1LCAwLjAxODc1LCAwLjAxNSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiMC4wNjEyNSwgMC4wNSwgMC4wNDM3NSwgMC4wMzEyNSwgMC4wMjUsIDAuMDIxMjUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4wNjc1LCAwLjA1NjI1LCAwLjA1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDI3NSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4wNzc1LCAwLjA2NjI1LCAwLjA2LCAwLjA1Mzc1LCAwLjA0NzUsIDAuMDM3NSwgMC4wMjg3NSIsIFwKLSAgICAgICAgICAiMC4wOCwgMC4wNzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNSwgMC4wNDYyNSwgMC4wMzc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRDAmRDEmUzAmIVNJIjsKLSAgICAgIHNkZl9jb25kIDogIkQwX0VRXzBfQU5fRDFfRVFfMV9BTl9TMF9FUV8xX0FOX1NJX0VRXzAgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM3NSwgMC4wMzI1LCAwLjAyLCAwLjAxMzc1LCAwLjAwNzUsIC0wLjAwMjUsIC0wLjAwNSIsIFwKLSAgICAgICAgICAiMC4wNDg3NSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAxODc1LCAwLjAxODc1LCAwLjAwODc1LCAwIiwgXAotICAgICAgICAgICIwLjA1NSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMTUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4wNjEyNSwgMC4wNSwgMC4wNDM3NSwgMC4wMzEyNSwgMC4wMzEyNSwgMC4wMjEyNSwgMC4wMTI1IiwgXAotICAgICAgICAgICIwLjA2MTI1LCAwLjA1NjI1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDI3NSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4wNzEyNSwgMC4wNiwgMC4wNTM3NSwgMC4wNDEyNSwgMC4wNDEyNSwgMC4wMzEyNSwgMC4wMjI1IiwgXAotICAgICAgICAgICIwLjA3Mzc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDUsIDAuMDQzNzUsIDAuMDMzNzUsIDAuMDMxMjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTYyNSwgMC4wNTEyNSwgMC4wNDUsIDAuMDM4NzUsIDAuMDMyNSwgMC4wMjg3NSwgMC4wMjYyNSIsIFwKLSAgICAgICAgICAiMC4wNjc1LCAwLjA1NjI1LCAwLjA1LCAwLjA1LCAwLjA0Mzc1LCAwLjA0LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIjAuMDczNzUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNSwgMC4wNDYyNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4wOCwgMC4wNzUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNTI1LCAwLjA1IiwgXAotICAgICAgICAgICIwLjA4NjI1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1ODc1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICIwLjA5LCAwLjA4NSwgMC4wNzg3NSwgMC4wNzI1LCAwLjA3MjUsIDAuMDYyNSwgMC4wNiIsIFwKLSAgICAgICAgICAiMC4wOTg3NSwgMC4wODc1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNzUsIDAuMDcxMjUsIDAuMDY4NzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFNJKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA5ODIxNjQ7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwOTc5Njc5OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDk4MjE2NDsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDM5MDUsIDAuMDAzODU4LCAwLjAwMzg4NiwgMC4wMDM5NDYsIDAuMDA0MDQsIDAuMDA0MiwgMC4wMDQzOTUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDc0MTcsIDAuMDA3Mzg4LCAwLjAwNzQxNSwgMC4wMDc0ODEsIDAuMDA3NTQ1LCAwLjAwNzcsIDAuMDA3ODczIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlNFIjsKLSAgICAgIHNkZl9jb25kIDogIlNFID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAyNSwgLTAuMDIsIC0wLjAxMzc1LCAtMC4wMDc1LCAtMC4wMDc1LCAtMC4wMDM3NSwgLTAuMDAxMjUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA4NzUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDE1LCAtMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzc1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMjEyNSwgLTAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAyNzUsIC0wLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDU4NzUsIC0wLjA1Mzc1LCAtMC4wNDc1LCAtMC4wNDc1LCAtMC4wNDEyNSwgLTAuMDM3NSwgLTAuMDM1IiwgXAotICAgICAgICAgICItMC4wNjEyNSwgLTAuMDU2MjUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDUsIC0wLjA0NjI1LCAtMC4wNDM3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAsIDAuMDA1LCAwLjAxNzUsIDAuMDIzNzUsIDAuMDIzNzUsIDAuMDMzNzUsIDAuMDM2MjUiLCBcCi0gICAgICAgICAgIi0wLjAwNSwgMCwgMC4wMTI1LCAwLjAxODc1LCAwLjAxODc1LCAwLjAyODc1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wMTEyNSwgLTAuMDA2MjUsIDAuMDA2MjUsIDAuMDEyNSwgMC4wMTI1LCAwLjAyMjUsIDAuMDI1IiwgXAotICAgICAgICAgICItMC4wMTc1LCAtMC4wMDYyNSwgMCwgMC4wMDYyNSwgMC4wMTI1LCAwLjAxNjI1LCAwLjAxODc1IiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAsIDAuMDA2MjUsIDAuMDEsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjAyNzUsIC0wLjAxNjI1LCAtMC4wMSwgLTAuMDAzNzUsIDAuMDAyNSwgMC4wMDYyNSwgMC4wMDg3NSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgLTAuMDA2MjUsIDAuMDAzNzUsIDAuMDA2MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlNFIjsKLSAgICAgIHNkZl9jb25kIDogIlNFID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0Mzc1LCAwLjAzODc1LCAwLjAzMjUsIDAuMDI2MjUsIDAuMDI2MjUsIDAuMDIyNSwgMC4wMTM3NSIsIFwKLSAgICAgICAgICAiMC4wNTUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMzEyNSwgMC4wMjc1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiMC4wNjEyNSwgMC4wNSwgMC4wNDM3NSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzMzc1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDYyNSwgMC4wNSwgMC4wNSwgMC4wNDM3NSwgMC4wNCwgMC4wMzc1IiwgXAotICAgICAgICAgICIwLjA3Mzc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDU2MjUsIDAuMDUsIDAuMDQ2MjUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMDgzNzUsIDAuMDcyNSwgMC4wNjYyNSwgMC4wNjYyNSwgMC4wNiwgMC4wNTYyNSwgMC4wNTM3NSIsIFwKLSAgICAgICAgICAiMC4wODYyNSwgMC4wODEyNSwgMC4wNzUsIDAuMDY4NzUsIDAuMDY4NzUsIDAuMDU4NzUsIDAuMDU2MjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzEyNSwgMC4wMiwgMC4wMTM3NSwgMC4wMDc1LCAwLjAwMTI1LCAtMC4wMDg3NSwgLTAuMDExMjUiLCBcCi0gICAgICAgICAgIjAuMDM2MjUsIDAuMDI1LCAwLjAxODc1LCAwLjAxMjUsIDAuMDA2MjUsIC0wLjAwMzc1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiMC4wNDI1LCAwLjAzNzUsIDAuMDI1LCAwLjAxODc1LCAwLjAxMjUsIDAuMDAyNSwgMCIsIFwKLSAgICAgICAgICAiMC4wNDg3NSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMTg3NSwgMC4wMDg3NSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiMC4wNTUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMjUsIDAuMDE1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMDU4NzUsIDAuMDUzNzUsIDAuMDQxMjUsIDAuMDM1LCAwLjAyODc1LCAwLjAyNSwgMC4wMTYyNSIsIFwKLSAgICAgICAgICAiMC4wNjc1LCAwLjA1NjI1LCAwLjA1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDI3NSwgMC4wMTg3NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IFRCVUZYMTYgKgotICogLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoVEJVRlgxNikgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAyLjkzNzk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwNzkwMjAxOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwNzg5MzM4OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwNzkwMjAxOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNDAwMywgMC4wMDQxMjgsIDAuMDA0MTQ1LCAwLjAwNDE1MiwgMC4wMDQxNTYsIDAuMDA0MTYxLCAwLjAwNDE2MyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNDM1NiwgMC4wMDQyODUsIDAuMDA0MjcyLCAwLjAwNDI2NywgMC4wMDQyNjMsIDAuMDA0MjYsIDAuMDA0MjU5Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihPRSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDA0NTE2ODsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDQ1MTU3MjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDQ1MTY4OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihzY2FsYXIpIHsKLSAgICAgICAgdmFsdWVzKCIwIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDE3OTMxLCAwLjAxNzkyLCAwLjAxODIyOSwgMC4wMTg3MjksIDAuMDE5NDE0LCAwLjAyMDU4MywgMC4wMjE3NDciKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDA4Mzc3NTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDgzNzc1OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwODM2OTY2OwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDUuNTA2NjI7Ci0gICAgZnVuY3Rpb24gOiAiQSI7Ci0gICAgdGhyZWVfc3RhdGUgOiAiKCFPRSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDE4Mzc3NSwgMC4wMjQzNzc1LCAwLjA1ODM3NzUsIDAuMDg4Mzc3NSwgMC4xMjgzNzgsIDAuMjA4Mzc4LCAwLjI1ODM3NyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDMwMDg1LCAwLjAzMjE0OSwgMC4wNDE1MjgsIDAuMDQ4NTE5LCAwLjA1NzE4OSwgMC4wNzM3MzEsIDAuMDgzODgyIiwgXAotICAgICAgICAgICIwLjAzNjE2MywgMC4wMzgyMzEsIDAuMDQ3NjUyLCAwLjA1NDY2MSwgMC4wNjMzNTcsIDAuMDc5OTAzLCAwLjA5MDA1NSIsIFwKLSAgICAgICAgICAiMC4wNDI2MzMsIDAuMDQ0NzgxLCAwLjA1NDM4NiwgMC4wNjE0NzQsIDAuMDcwMjEyLCAwLjA4NjgxMiwgMC4wOTY5NzQiLCBcCi0gICAgICAgICAgIjAuMDQ3NzQ5LCAwLjA0OTk4NCwgMC4wNTk5MDIsIDAuMDY3MTE0LCAwLjA3NTk1NCwgMC4wOTI2MTUsIDAuMTAyODAxIiwgXAotICAgICAgICAgICIwLjA1MjA2NywgMC4wNTQzOTcsIDAuMDY0NTYzLCAwLjA3MTg5MSwgMC4wODA4MTIsIDAuMDk3NTg3LCAwLjEwNzc3NiIsIFwKLSAgICAgICAgICAiMC4wNTc5MTUsIDAuMDYwNDAyLCAwLjA3MTA0NSwgMC4wNzg1NywgMC4wODc2MjEsIDAuMTA0NDkyLCAwLjExNDcyMyIsIFwKLSAgICAgICAgICAiMC4wNjIzOTEsIDAuMDY0OTcxLCAwLjA3NjA0NSwgMC4wODM3NDIsIDAuMDkyOTI4LCAwLjEwOTg3LCAwLjEyMDEyOSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxODM3NzUsIDAuMDI0Mzc3NSwgMC4wNTgzNzc1LCAwLjA4ODM3NzUsIDAuMTI4Mzc4LCAwLjIwODM3OCwgMC4yNTgzNzciKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxNTA3MywgMC4wMTc4NzUsIDAuMDMyMjM2LCAwLjA0NDQ5NSwgMC4wNjA3OCwgMC4wOTM2NTYsIDAuMTE0NDYiLCBcCi0gICAgICAgICAgIjAuMDE1MzA3LCAwLjAxODA1NiwgMC4wMzIzNDksIDAuMDQ0NTUsIDAuMDYwODI0LCAwLjA5MzcwNywgMC4xMTQ0NjQiLCBcCi0gICAgICAgICAgIjAuMDE2NDY4LCAwLjAxOTA2NCwgMC4wMzMxMywgMC4wNDUxNzQsIDAuMDYxMzA2LCAwLjA5NDAxMSwgMC4xMTQ2MTkiLCBcCi0gICAgICAgICAgIjAuMDE3NDc1LCAwLjAyMDE1OSwgMC4wMzQxODIsIDAuMDQ2MDUxLCAwLjA2MjAwNywgMC4wOTQ0OTksIDAuMTE1MTMzIiwgXAotICAgICAgICAgICIwLjAxODQyOCwgMC4wMjExMywgMC4wMzUxMTksIDAuMDQ2OTE5LCAwLjA2MjgyMiwgMC4wOTUwNTksIDAuMTE1NjAyIiwgXAotICAgICAgICAgICIwLjAxOTk5NSwgMC4wMjI3MjQsIDAuMDM2NTY3LCAwLjA0ODIzOCwgMC4wNjM5OTksIDAuMDk2MTI0LCAwLjExNjM2MiIsIFwKLSAgICAgICAgICAiMC4wMjExOTIsIDAuMDI0MDU1LCAwLjAzNzg2OCwgMC4wNDk0NzQsIDAuMDY1MDMyLCAwLjA5NjgwMiwgMC4xMTcxOTIiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMTgzNjk3LCAwLjAyNDM2OTcsIDAuMDU4MzY5NywgMC4wODgzNjk3LCAwLjEyODM3LCAwLjIwODM3LCAwLjI1ODM3Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjgwMzQsIDAuMDI5OTMzLCAwLjAzODc1NCwgMC4wNDU0NjYsIDAuMDUzODYxLCAwLjA3MDAwOSwgMC4wNzk5MzciLCBcCi0gICAgICAgICAgIjAuMDMzMjk2LCAwLjAzNTE1OCwgMC4wNDM5MDUsIDAuMDUwNTk0LCAwLjA1ODk5NiwgMC4wNzUxNDIsIDAuMDg1MDc5IiwgXAotICAgICAgICAgICIwLjAzODQ5NiwgMC4wNDAzNDQsIDAuMDQ5MTgsIDAuMDU1OTMyLCAwLjA2NDM3LCAwLjA4MDUxOCwgMC4wOTA0NjMiLCBcCi0gICAgICAgICAgIjAuMDQyNjI2LCAwLjA0NDQzNywgMC4wNTMzMTEsIDAuMDYwMTU2LCAwLjA2ODYzNCwgMC4wODQ4NzMsIDAuMDk0ODIzIiwgXAotICAgICAgICAgICIwLjA0NjAyNywgMC4wNDc4NjEsIDAuMDU2Nzg1LCAwLjA2MzcwMywgMC4wNzIxOTksIDAuMDg4NDY3LCAwLjA5ODQ1IiwgXAotICAgICAgICAgICIwLjA1MDYyLCAwLjA1MjU0MywgMC4wNjE1NzIsIDAuMDY4NTM3LCAwLjA3NzE3NywgMC4wOTM0ODQsIDAuMTAzNDYzIiwgXAotICAgICAgICAgICIwLjA1NDA2MiwgMC4wNTYwMzQsIDAuMDY1MjM0LCAwLjA3MjMsIDAuMDgxMDE5LCAwLjA5NzM5OSwgMC4xMDczOTMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMTgzNjk3LCAwLjAyNDM2OTcsIDAuMDU4MzY5NywgMC4wODgzNjk3LCAwLjEyODM3LCAwLjIwODM3LCAwLjI1ODM3Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTM0NzQsIDAuMDE2MDIsIDAuMDI5NzQsIDAuMDQxNTU4LCAwLjA1NzMzOSwgMC4wODkyNjIsIDAuMTA5MzExIiwgXAotICAgICAgICAgICIwLjAxMzU2MywgMC4wMTYxOTMsIDAuMDI5ODYzLCAwLjA0MTY0MSwgMC4wNTc0LCAwLjA4OTI4NiwgMC4xMDk0MDIiLCBcCi0gICAgICAgICAgIjAuMDE0NDA3LCAwLjAxNzAwMiwgMC4wMzA2NDgsIDAuMDQyMjc5LCAwLjA1Nzk2NSwgMC4wODk2NzQsIDAuMTA5NjkzIiwgXAotICAgICAgICAgICIwLjAxNTI4NSwgMC4wMTc4MzUsIDAuMDMxNDMsIDAuMDQzMTY1LCAwLjA1ODYwNiwgMC4wOTAxODgsIDAuMTEwMTc0IiwgXAotICAgICAgICAgICIwLjAxNjE3NCwgMC4wMTg3MzcsIDAuMDMyMjE1LCAwLjA0Mzc4NiwgMC4wNTkzMTMsIDAuMDkwNTkzLCAwLjExMDU1IiwgXAotICAgICAgICAgICIwLjAxNzUwMSwgMC4wMjAwMjksIDAuMDMzNTAxLCAwLjA0NDk0MSwgMC4wNjAyOTgsIDAuMDkxNjA1LCAwLjExMTMyOCIsIFwKLSAgICAgICAgICAiMC4wMTg1OTEsIDAuMDIxMTA4LCAwLjAzNDU2OCwgMC4wNDU5MDMsIDAuMDYxMTQ1LCAwLjA5MjEyNSwgMC4xMTE4MjkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiT0UiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHRocmVlX3N0YXRlX2VuYWJsZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMTgzNzc1LCAwLjAyNDM3NzUsIDAuMDU4Mzc3NSwgMC4wODgzNzc1LCAwLjEyODM3OCwgMC4yMDgzNzgsIDAuMjU4Mzc3Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjg1NzEsIDAuMDMwNjEyLCAwLjAzOTk2NiwgMC4wNDY5NSwgMC4wNTU2MTQsIDAuMDcyMTUzLCAwLjA4MjI5NCIsIFwKLSAgICAgICAgICAiMC4wMzYwMjMsIDAuMDM4MDc4LCAwLjA0NzQyOCwgMC4wNTQ0MTYsIDAuMDYzMDg5LCAwLjA3OTYyNCwgMC4wODk3NzEiLCBcCi0gICAgICAgICAgIjAuMDQ0MzMzLCAwLjA0NjQ1LCAwLjA1NjA1OCwgMC4wNjMxNCwgMC4wNzE4NjUsIDAuMDg4NDQsIDAuMDk4NTkxIiwgXAotICAgICAgICAgICIwLjA1MDU5MywgMC4wNTI5MjcsIDAuMDYyODksIDAuMDcwMTA2LCAwLjA3ODk0OSwgMC4wOTU1ODMsIDAuMTA1NzQ3IiwgXAotICAgICAgICAgICIwLjA1NTY1NSwgMC4wNTgwODQsIDAuMDY4NDksIDAuMDc1ODQ1LCAwLjA4NDc2NCwgMC4xMDE1MywgMC4xMTE3NDciLCBcCi0gICAgICAgICAgIjAuMDYyNDA4LCAwLjA2NTA4MiwgMC4wNzYxMjMsIDAuMDgzNzE5LCAwLjA5Mjc4LCAwLjEwOTYxMiwgMC4xMTk4NiIsIFwKLSAgICAgICAgICAiMC4wNjc2MjYsIDAuMDcwMjQ1LCAwLjA4MTk2MiwgMC4wODk3MjIsIDAuMDk4OTM3LCAwLjExNTgyOCwgMC4xMjYwNDciKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMTgzNzc1LCAwLjAyNDM3NzUsIDAuMDU4Mzc3NSwgMC4wODgzNzc1LCAwLjEyODM3OCwgMC4yMDgzNzgsIDAuMjU4Mzc3Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTU1OTcsIDAuMDE4MzYyLCAwLjAzMjY1OCwgMC4wNDQ4LCAwLjA2MTA1LCAwLjA5Mzg0OCwgMC4xMTQ1OTQiLCBcCi0gICAgICAgICAgIjAuMDE1Njg1LCAwLjAxODQ0LCAwLjAzMjcxOSwgMC4wNDQ4NDQsIDAuMDYxMDc4LCAwLjA5Mzg2OSwgMC4xMTQ1NzgiLCBcCi0gICAgICAgICAgIjAuMDE3MTc5LCAwLjAxOTc5MiwgMC4wMzM3MTMsIDAuMDQ1Njg5LCAwLjA2MTY0MywgMC4wOTQyMTcsIDAuMTE0OTA5IiwgXAotICAgICAgICAgICIwLjAxODY3NiwgMC4wMjEzMzcsIDAuMDM1MTY0LCAwLjA0NjgwNiwgMC4wNjI2MDMsIDAuMDk0OTMxLCAwLjExNTM5OSIsIFwKLSAgICAgICAgICAiMC4wMjAxNDIsIDAuMDIyODA3LCAwLjAzNjMxOSwgMC4wNDc5NzQsIDAuMDYzNjEzLCAwLjA5NTUzNiwgMC4xMTYwMDIiLCBcCi0gICAgICAgICAgIjAuMDIyMzE1LCAwLjAyNTAwNCwgMC4wMzgyNTcsIDAuMDQ5NjI4LCAwLjA2NDk2MSwgMC4wOTY2ODMsIDAuMTE2ODg5IiwgXAotICAgICAgICAgICIwLjAyMzYxNywgMC4wMjY4NDYsIDAuMDQwMDIzLCAwLjA1MTEzNiwgMC4wNjYyNTQsIDAuMDk3NTk0LCAwLjExNzc1OCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxODM2OTcsIDAuMDI0MzY5NywgMC4wNTgzNjk3LCAwLjA4ODM2OTcsIDAuMTI4MzcsIDAuMjA4MzcsIDAuMjU4MzciKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0NDAxLCAwLjA0NTk1LCAwLjA1NDc1NSwgMC4wNjE0NjMsIDAuMDY5ODQ1LCAwLjA4NTk1NywgMC4wOTU4ODkiLCBcCi0gICAgICAgICAgIjAuMDUyMjU1LCAwLjA1NDE2NCwgMC4wNjI5OTYsIDAuMDY5NjkzLCAwLjA3ODA3NiwgMC4wOTQxOTEsIDAuMTA0MTEyIiwgXAotICAgICAgICAgICIwLjA2MTU3NiwgMC4wNjM0OSwgMC4wNzIyODksIDAuMDc5MDAzLCAwLjA4NzM3OSwgMC4xMDM1MDEsIDAuMTEzNDI3IiwgXAotICAgICAgICAgICIwLjA2ODc3NiwgMC4wNzA2OTgsIDAuMDc5NTUyLCAwLjA4NjI3NywgMC4wOTQ2NzQsIDAuMTEwODE1LCAwLjEyMDczOCIsIFwKLSAgICAgICAgICAiMC4wNzQ1NzksIDAuMDc2NTM0LCAwLjA4NTQzOCwgMC4wOTIxODIsIDAuMTAwNTgyLCAwLjExNjcxOCwgMC4xMjY2NDMiLCBcCi0gICAgICAgICAgIjAuMDgyNDA0LCAwLjA4NDM3OSwgMC4wOTMzMjcsIDAuMTAwMSwgMC4xMDg1MzEsIDAuMTI0Njg1LCAwLjEzNDYxNyIsIFwKLSAgICAgICAgICAiMC4wODgxOTEsIDAuMDkwMTYxLCAwLjA5OTIwMSwgMC4xMDU5NTMsIDAuMTE0NDE3LCAwLjEzMDYwMSwgMC4xNDA1NDgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMTgzNjk3LCAwLjAyNDM2OTcsIDAuMDU4MzY5NywgMC4wODgzNjk3LCAwLjEyODM3LCAwLjIwODM3LCAwLjI1ODM3Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTQxMDgsIDAuMDE2NzE0LCAwLjAzMDMxMywgMC4wNDIwMjEsIDAuMDU3NzAxLCAwLjA4OTQ5LCAwLjEwOTU3NCIsIFwKLSAgICAgICAgICAiMC4wMTQxMjIsIDAuMDE2NzA1LCAwLjAzMDMxNCwgMC4wNDE5NzgsIDAuMDU3NzAxLCAwLjA4OTQ4OSwgMC4xMDk1ODUiLCBcCi0gICAgICAgICAgIjAuMDE0MjM5LCAwLjAxNjgsIDAuMDMwMzUzLCAwLjA0MjA2NSwgMC4wNTc3MjMsIDAuMDg5NTA0LCAwLjEwOTU5NiIsIFwKLSAgICAgICAgICAiMC4wMTQ0MzQsIDAuMDE2OTc0LCAwLjAzMDQ3MywgMC4wNDIxNTYsIDAuMDU3ODA0LCAwLjA4OTU2LCAwLjEwOTY1OCIsIFwKLSAgICAgICAgICAiMC4wMTQ2NzQsIDAuMDE3MjA1LCAwLjAzMDcxNCwgMC4wNDIyNzQsIDAuMDU3ODYyLCAwLjA4OTYzNywgMC4xMDk2ODkiLCBcCi0gICAgICAgICAgIjAuMDE0ODg0LCAwLjAxNzQzMywgMC4wMzA3ODgsIDAuMDQyNDE2LCAwLjA1ODA5LCAwLjA4OTY3MSwgMC4xMDk2MzciLCBcCi0gICAgICAgICAgIjAuMDE1MTY2LCAwLjAxNzY0NCwgMC4wMzEwMjgsIDAuMDQyNiwgMC4wNTgxOSwgMC4wODk5ODcsIDAuMTA5ODQxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIk9FIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiB0aHJlZV9zdGF0ZV9kaXNhYmxlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDM4MDU5LCAwLjA0NjIsIDAuMDU1MzM2LCAwLjA2MjM4NCwgMC4wNjgxNjgsIDAuMDc1NzIyLCAwLjA4MDg3Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oc2NhbGFyKSB7Ci0gICAgICAgIHZhbHVlcygiMCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDIxMTksIDAuMDI5MDMsIDAuMDM3NDk3LCAwLjA0MzY3MywgMC4wNDgwOTcsIDAuMDU0MzY5LCAwLjA1OTAwNCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKHNjYWxhcikgewotICAgICAgICB2YWx1ZXMoIjAiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxODM3NzUsIDAuMDI0Mzc3NSwgMC4wNTgzNzc1LCAwLjA4ODM3NzUsIDAuMTI4Mzc4LCAwLjIwODM3OCwgMC4yNTgzNzciKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyMjE2MiwgMC4wMjIzMjksIDAuMDIyODAzLCAwLjAyMjk3LCAwLjAyMzA4MywgMC4wMjMxODUsIDAuMDIzMjE5IiwgXAotICAgICAgICAgICIwLjAyMTYyNywgMC4wMjE3NjIsIDAuMDIyMjYzLCAwLjAyMjQ3MSwgMC4wMjI2MzUsIDAuMDIyNzk3LCAwLjAyMjg1MiIsIFwKLSAgICAgICAgICAiMC4wMjIxMTgsIDAuMDIyMjA0LCAwLjAyMjU2OSwgMC4wMjI3NzEsIDAuMDIyOTU4LCAwLjAyMzE1MSwgMC4wMjMyMjciLCBcCi0gICAgICAgICAgIjAuMDIyOTg5LCAwLjAyMzA1LCAwLjAyMzM1NSwgMC4wMjM1NDEsIDAuMDIzNzIyLCAwLjAyMzkzLCAwLjAyNDAxMSIsIFwKLSAgICAgICAgICAiMC4wMjQwOTcsIDAuMDI0MTM1LCAwLjAyNDM4OCwgMC4wMjQ1NTksIDAuMDI0NzI1LCAwLjAyNDkzMSwgMC4wMjUwMDgiLCBcCi0gICAgICAgICAgIjAuMDI2MTQsIDAuMDI2MTUyLCAwLjAyNjMxMiwgMC4wMjY0NTUsIDAuMDI2NjA0LCAwLjAyNjgwMywgMC4wMjY4ODMiLCBcCi0gICAgICAgICAgIjAuMDI4MTc2LCAwLjAyODE0NSwgMC4wMjgyNDYsIDAuMDI4MzU1LCAwLjAyODQ5OSwgMC4wMjg2ODEsIDAuMDI4Nzc4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMTgzNjk3LCAwLjAyNDM2OTcsIDAuMDU4MzY5NywgMC4wODgzNjk3LCAwLjEyODM3LCAwLjIwODM3LCAwLjI1ODM3Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzk1OTksIDAuMDM5NzgxLCAwLjA0MDQzMiwgMC4wNDA3MTksIDAuMDQwOTMxLCAwLjA0MTEzNywgMC4wNDEyMDciLCBcCi0gICAgICAgICAgIjAuMDM5OTUzLCAwLjAzOTk5MSwgMC4wNDAzMTIsIDAuMDQwNTI2LCAwLjA0MDcxNCwgMC4wNDA5MjcsIDAuMDQxMDA1IiwgXAotICAgICAgICAgICIwLjA0MTg1NiwgMC4wNDE2MzIsIDAuMDQxMjk3LCAwLjA0MTMxMSwgMC4wNDEzNzUsIDAuMDQxNDg5LCAwLjA0MTUzOSIsIFwKLSAgICAgICAgICAiMC4wNDQxODMsIDAuMDQzNzAxLCAwLjA0MjY3MiwgMC4wNDI1MDEsIDAuMDQyNDI2LCAwLjA0MjQzNCwgMC4wNDI0NSIsIFwKLSAgICAgICAgICAiMC4wNDY0NzMsIDAuMDQ1NzksIDAuMDQ0NDE0LCAwLjA0NDA3OSwgMC4wNDM3NzcsIDAuMDQzNjg1LCAwLjA0MzYyIiwgXAotICAgICAgICAgICIwLjA0OTk0MSwgMC4wNDkyMTYsIDAuMDQ3MzA4LCAwLjA0NjY1LCAwLjA0NjI4LCAwLjA0NTkzNCwgMC4wNDU4MjUiLCBcCi0gICAgICAgICAgIjAuMDUyODc5LCAwLjA1MTk5NSwgMC4wNDk2ODgsIDAuMDQ4ODg1LCAwLjA0ODM4MywgMC4wNDc5MzQsIDAuMDQ3Nzg3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiT0UiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDE4Mzc3NSwgMC4wMjQzNzc1LCAwLjA1ODM3NzUsIDAuMDg4Mzc3NSwgMC4xMjgzNzgsIDAuMjA4Mzc4LCAwLjI1ODM3NyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDIxNDc5LCAwLjAyMTQ3OCwgMC4wMjE0NzUsIDAuMDIxNDgsIDAuMDIxNDc2LCAwLjAyMTQ3MSwgMC4wMjE0NzEiLCBcCi0gICAgICAgICAgIjAuMDIxNDE2LCAwLjAyMTQyLCAwLjAyMTQxOCwgMC4wMjE0MTUsIDAuMDIxNDE1LCAwLjAyMTQxNSwgMC4wMjE0MTQiLCBcCi0gICAgICAgICAgIjAuMDIyMDE5LCAwLjAyMjAwMSwgMC4wMjE5OTMsIDAuMDIxOTkyLCAwLjAyMTk5MywgMC4wMjE5ODgsIDAuMDIxOTkxIiwgXAotICAgICAgICAgICIwLjAyMjUxMSwgMC4wMjI1MTEsIDAuMDIyNTE3LCAwLjAyMjUwNiwgMC4wMjI1MDUsIDAuMDIyNDk5LCAwLjAyMjQ5OCIsIFwKLSAgICAgICAgICAiMC4wMjMyOSwgMC4wMjMyODgsIDAuMDIzMjg1LCAwLjAyMzI4NSwgMC4wMjMyODEsIDAuMDIzMjgsIDAuMDIzMjc2IiwgXAotICAgICAgICAgICIwLjAyNDYzMiwgMC4wMjQ2MzEsIDAuMDI0NjI4LCAwLjAyNDYzMywgMC4wMjQ2MzUsIDAuMDI0NjI4LCAwLjAyNDYyNiIsIFwKLSAgICAgICAgICAiMC4wMjU2NjksIDAuMDI1NjcyLCAwLjAyNTY3MSwgMC4wMjU2NjksIDAuMDI1NjcyLCAwLjAyNTY2OCwgMC4wMjU2NjgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxODM2OTcsIDAuMDI0MzY5NywgMC4wNTgzNjk3LCAwLjA4ODM2OTcsIDAuMTI4MzcsIDAuMjA4MzcsIDAuMjU4MzciKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyMTEzOCwgMC4wMjExMzgsIDAuMDIxMTQxLCAwLjAyMTEzOSwgMC4wMjExNDEsIDAuMDIxMTQxLCAwLjAyMTE0MSIsIFwKLSAgICAgICAgICAiMC4wMjExMzEsIDAuMDIxMTI5LCAwLjAyMTEyOSwgMC4wMjExMjgsIDAuMDIxMTMxLCAwLjAyMTEyOSwgMC4wMjExMjkiLCBcCi0gICAgICAgICAgIjAuMDIxMjMxLCAwLjAyMTIzMywgMC4wMjEyMzksIDAuMDIxMjM5LCAwLjAyMTI0LCAwLjAyMTI0MSwgMC4wMjEyNDEiLCBcCi0gICAgICAgICAgIjAuMDIxNTkzLCAwLjAyMTYwOCwgMC4wMjE1OTEsIDAuMDIxNTg2LCAwLjAyMTU5LCAwLjAyMTU5MSwgMC4wMjE1OTEiLCBcCi0gICAgICAgICAgIjAuMDIxNjQsIDAuMDIxNjM4LCAwLjAyMTY0MywgMC4wMjE2MzgsIDAuMDIxNjM1LCAwLjAyMTYzNSwgMC4wMjE2MzUiLCBcCi0gICAgICAgICAgIjAuMDIyMDA2LCAwLjAyMjAwMywgMC4wMjIwMDYsIDAuMDIyMDA4LCAwLjAyMjAwNywgMC4wMjIwMDYsIDAuMDIyMDAxIiwgXAotICAgICAgICAgICIwLjAyMjQxLCAwLjAyMjQxMiwgMC4wMjI0MTIsIDAuMDIyNDExLCAwLjAyMjQxMiwgMC4wMjI0MSwgMC4wMjI0MSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogVEJVRlgzICoKLSAqIC0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoVEJVRlgzKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuNjU1NzI0OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDIwNTgzMzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDIwNTYwNTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDIwNTgzMzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA5OTcsIDAuMDAxMDI4LCAwLjAwMTAzMiwgMC4wMDEwMzQsIDAuMDAxMDM1LCAwLjAwMTAzNiwgMC4wMDEwMzciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDEwODQsIDAuMDAxMDY3LCAwLjAwMTA2NCwgMC4wMDEwNjMsIDAuMDAxMDYyLCAwLjAwMTA2MSwgMC4wMDEwNjEiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKE9FKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE0NjUxNTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE0NjUxNTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE0NjQ5OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihzY2FsYXIpIHsKLSAgICAgICAgdmFsdWVzKCIwIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA1MjA1LCAwLjAwNTE3OCwgMC4wMDUzMDIsIDAuMDA1NTI1LCAwLjAwNTc3NCwgMC4wMDYyMjgsIDAuMDA2NTg4Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTYxMjA0OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTYxMjA0OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTYxMDQ3OwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuOTkzODQ0OwotICAgIGZ1bmN0aW9uIDogIkEiOwotICAgIHRocmVlX3N0YXRlIDogIighT0UpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxMTYxMiwgMC4wODE2MTIsIDAuMTUxNjEyLCAwLjIwMTYxMiwgMC4yODE2MTIsIDAuMzUxNjEyLCAwLjQ1MTYxMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM4Njc5LCAwLjExMzc5NiwgMC4xODc2NTUsIDAuMjQwNDI5LCAwLjMyNDgwNiwgMC4zOTg3NCwgMC41MDQxOSIsIFwKLSAgICAgICAgICAiMC4wNDQ4NTEsIDAuMTIwMDM4LCAwLjE5MzkyNywgMC4yNDY2OTMsIDAuMzMxMDYsIDAuNDA0OTA5LCAwLjUxMDQ0NCIsIFwKLSAgICAgICAgICAiMC4wNTE2NzEsIDAuMTI3MDEsIDAuMjAwODgzLCAwLjI1MzY0MywgMC4zMzgwMTIsIDAuNDExODU0LCAwLjUxNzM0NyIsIFwKLSAgICAgICAgICAiMC4wNTcxMDksIDAuMTMyNzY2LCAwLjIwNjYzMywgMC4yNTkzNzcsIDAuMzQzODM3LCAwLjQxNzU5NywgMC41MjMxOTYiLCBcCi0gICAgICAgICAgIjAuMDYxNzk1LCAwLjEzNzczMSwgMC4yMTE1ODQsIDAuMjY0MzE1LCAwLjM0ODcxLCAwLjQyMjUzOCwgMC41MjgwNDYiLCBcCi0gICAgICAgICAgIjAuMDY4MjI1LCAwLjE0NDU5MywgMC4yMTg0MzEsIDAuMjcxMTg1LCAwLjM1NTU1MSwgMC40MjkzOTgsIDAuNTM0OTMxIiwgXAotICAgICAgICAgICIwLjA3MzE1MiwgMC4xNDk4ODIsIDAuMjIzNzUxLCAwLjI3NjUwNiwgMC4zNjA4NiwgMC40MzQ3MDcsIDAuNTQwMTczIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDExNjEyLCAwLjA4MTYxMiwgMC4xNTE2MTIsIDAuMjAxNjEyLCAwLjI4MTYxMiwgMC4zNTE2MTIsIDAuNDUxNjEyIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzE1NjcsIDAuMTg1MTE3LCAwLjM0MTg4MywgMC40NTQwODIsIDAuNjMzMDIsIDAuNzg5NDAxLCAxLjAxNTI0IiwgXAotICAgICAgICAgICIwLjAzMTY4MiwgMC4xODUxMjQsIDAuMzQxNDUyLCAwLjQ1Mzk5OSwgMC42MzI5OTYsIDAuNzkwNTQ3LCAxLjAxNTA5IiwgXAotICAgICAgICAgICIwLjAzMjQ4NCwgMC4xODUwODQsIDAuMzQxNDUzLCAwLjQ1MzkwNCwgMC42MzM0NjIsIDAuNzkwMDIsIDEuMDE0MDciLCBcCi0gICAgICAgICAgIjAuMDMzNDY3LCAwLjE4NTIyMywgMC4zNDE1NDUsIDAuNDUzODU3LCAwLjYzMjYzMSwgMC43ODk5MjYsIDEuMDEzNzIiLCBcCi0gICAgICAgICAgIjAuMDM0NDM2LCAwLjE4NTYsIDAuMzQxNTQ1LCAwLjQ1Mzg0MSwgMC42MzI0OSwgMC43ODk4MzEsIDEuMDE0OSIsIFwKLSAgICAgICAgICAiMC4wMzU4NTMsIDAuMTg1ODk1LCAwLjM0MTc2NCwgMC40NTM2NTIsIDAuNjMzMjY2LCAwLjc4OTM0NSwgMS4wMTQ4MiIsIFwKLSAgICAgICAgICAiMC4wMzcxMzUsIDAuMTg2MjAyLCAwLjM0MTkwNCwgMC40NTM3NDMsIDAuNjMyOTI0LCAwLjc4OTI4NSwgMS4wMTM5NCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxMTYxMDUsIDAuMDgxNjEwNSwgMC4xNTE2MSwgMC4yMDE2MSwgMC4yODE2MSwgMC4zNTE2MSwgMC40NTE2MSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM1MzcyLCAwLjEwODQ2MiwgMC4xODA0OTYsIDAuMjMxOTE4LCAwLjMxNDIsIDAuMzg2MTk3LCAwLjQ4OTA0MyIsIFwKLSAgICAgICAgICAiMC4wNDA4NDUsIDAuMTEzOTY1LCAwLjE4NTk5OSwgMC4yMzc0NTQsIDAuMzE5NzMyLCAwLjM5MTcyMiwgMC40OTQ1NTciLCBcCi0gICAgICAgICAgIjAuMDQ2MjU5LCAwLjExOTUxOCwgMC4xOTE1NDUsIDAuMjQyOTc2LCAwLjMyNTI2MiwgMC4zOTcyODQsIDAuNTAwMTM5IiwgXAotICAgICAgICAgICIwLjA1MDMxMSwgMC4xMjM4MTQsIDAuMTk1ODE3LCAwLjI0NzI1LCAwLjMyOTU2NCwgMC40MDE1MTMsIDAuNTA0NDM0IiwgXAotICAgICAgICAgICIwLjA1MzcwNSwgMC4xMjczNzYsIDAuMTk5MzY5LCAwLjI1MDc4NywgMC4zMzMwNzQsIDAuNDA1MDk2LCAwLjUwNzg5OSIsIFwKLSAgICAgICAgICAiMC4wNTgyNjYsIDAuMTMyMTg3LCAwLjIwNDE3NywgMC4yNTU2MDMsIDAuMzM3ODU1LCAwLjQwOTg2MiwgMC41MTI2ODIiLCBcCi0gICAgICAgICAgIjAuMDYxODEsIDAuMTM1OTQ0LCAwLjIwNzk5LCAwLjI1OTM5MSwgMC4zNDE2NTQsIDAuNDEzNjM1LCAwLjUxNjQ2MyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxMTYxMDUsIDAuMDgxNjEwNSwgMC4xNTE2MSwgMC4yMDE2MSwgMC4yODE2MSwgMC4zNTE2MSwgMC40NTE2MSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDI5MDExLCAwLjE3NTY0OCwgMC4zMjQzNzEsIDAuNDMxNDMxLCAwLjYwMjI1OCwgMC43NTExMTMsIDAuOTY0NTA2IiwgXAotICAgICAgICAgICIwLjAyOTE5OSwgMC4xNzUzODMsIDAuMzI0NDA2LCAwLjQzMTYxNywgMC42MDI0NDksIDAuNzUwNTQ1LCAwLjk2NDQxMiIsIFwKLSAgICAgICAgICAiMC4wMzAwNzEsIDAuMTc1NjY0LCAwLjMyNDQ5OSwgMC40MzEwODQsIDAuNjAyMzg2LCAwLjc1MjAyNywgMC45NjU2NTciLCBcCi0gICAgICAgICAgIjAuMDMwODkxLCAwLjE3NTkwNiwgMC4zMjQ4NiwgMC40MzEwNzgsIDAuNjAxMTI2LCAwLjc1MTc3OCwgMC45NjM4NjgiLCBcCi0gICAgICAgICAgIjAuMDMxNjczLCAwLjE3NjE0NywgMC4zMjQ2MzksIDAuNDMxNDksIDAuNjAxNDQ0LCAwLjc1MTc3NiwgMC45NjQ0NzgiLCBcCi0gICAgICAgICAgIjAuMDMyOTM3LCAwLjE3NjM4MywgMC4zMjQ3MiwgMC40MzExNiwgMC42MDE4MTEsIDAuNzUxNTcyLCAwLjk2NTM5MiIsIFwKLSAgICAgICAgICAiMC4wMzM4MzUsIDAuMTc2NjEyLCAwLjMyNDk1OSwgMC40MzEyMywgMC42MDE2NjEsIDAuNzUwODYzLCAwLjk2NTI1MSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJPRSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogdGhyZWVfc3RhdGVfZW5hYmxlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxMTYxMiwgMC4wODE2MTIsIDAuMTUxNjEyLCAwLjIwMTYxMiwgMC4yODE2MTIsIDAuMzUxNjEyLCAwLjQ1MTYxMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM3MDkxLCAwLjExMjE4MSwgMC4xODYwNjUsIDAuMjM4ODE1LCAwLjMyMzE2OCwgMC4zOTcwMTcsIDAuNTAyNTM3IiwgXAotICAgICAgICAgICIwLjA0NDcwOSwgMC4xMTk4MDEsIDAuMTkzNjY5LCAwLjI0NjQ1MywgMC4zMzA4NDMsIDAuNDA0NjY4LCAwLjUxMDEyIiwgXAotICAgICAgICAgICIwLjA1MzMwMywgMC4xMjg1NTgsIDAuMjAyNDEyLCAwLjI1NTIwOSwgMC4zMzk1MjUsIDAuNDEzMzg1LCAwLjUxODkxMiIsIFwKLSAgICAgICAgICAiMC4wNTk5NTEsIDAuMTM1NTA2LCAwLjIwOTM2NCwgMC4yNjIxMDMsIDAuMzQ2NDk4LCAwLjQyMDMxMSwgMC41MjU4MDEiLCBcCi0gICAgICAgICAgIjAuMDY1NDY5LCAwLjE0MTMyOCwgMC4yMTUxNjUsIDAuMjY3OTUsIDAuMzUyMjg2LCAwLjQyNjEzNiwgMC41MzE1OTYiLCBcCi0gICAgICAgICAgIjAuMDcyOTc3LCAwLjE0OTI2NCwgMC4yMjMwNywgMC4yNzU4MDUsIDAuMzYwMzEsIDAuNDM0MTM4LCAwLjUzOTU3NyIsIFwKLSAgICAgICAgICAiMC4wNzg3MDMsIDAuMTU1Mzg5LCAwLjIyOTI1NywgMC4yODE5NzUsIDAuMzY2Mzg4LCAwLjQ0MDIyNywgMC41NDU2OTYiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMTE2MTIsIDAuMDgxNjEyLCAwLjE1MTYxMiwgMC4yMDE2MTIsIDAuMjgxNjEyLCAwLjM1MTYxMiwgMC40NTE2MTIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzMTg5OSwgMC4xODUyMTYsIDAuMzQxNDc1LCAwLjQ1NDA2MSwgMC42MzM2NDcsIDAuNzkwMTAzLCAxLjAxNDEyIiwgXAotICAgICAgICAgICIwLjAzMTk2OCwgMC4xODUwNDMsIDAuMzQxNTk4LCAwLjQ1MzQxMywgMC42MzM1MzMsIDAuNzg5ODM4LCAxLjAxNDUzIiwgXAotICAgICAgICAgICIwLjAzMzAxNiwgMC4xODUzMjQsIDAuMzQxOTExLCAwLjQ1MzQzOCwgMC42MzM1NTMsIDAuNzkwNjgsIDEuMDE1MjIiLCBcCi0gICAgICAgICAgIjAuMDM0MzkzLCAwLjE4NTM3NSwgMC4zNDE5ODMsIDAuNDUzNzE5LCAwLjYzMzU1OSwgMC43OTAwNTYsIDEuMDE0NCIsIFwKLSAgICAgICAgICAiMC4wMzU1NTUsIDAuMTg1Njk0LCAwLjM0MTYwNywgMC40NTM1MzcsIDAuNjMzMDIxLCAwLjc5MDA2NiwgMS4wMTUyNyIsIFwKLSAgICAgICAgICAiMC4wMzczNDUsIDAuMTg2MiwgMC4zNDIwNDEsIDAuNDUzODk4LCAwLjYzMzc4NCwgMC43OTA4MjEsIDEuMDE1MjMiLCBcCi0gICAgICAgICAgIjAuMDM4OTE2LCAwLjE4NjU0NCwgMC4zNDIxMjYsIDAuNDUzNzQyLCAwLjYzMjk5OCwgMC43OTAyODQsIDEuMDE1MzUiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMTE2MTA1LCAwLjA4MTYxMDUsIDAuMTUxNjEsIDAuMjAxNjEsIDAuMjgxNjEsIDAuMzUxNjEsIDAuNDUxNjEiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0Mjc0NCwgMC4xMTU3NTIsIDAuMTg3NzcsIDAuMjM5MjYyLCAwLjMyMTUxMiwgMC4zOTM1NTEsIDAuNDk2Mzk3IiwgXAotICAgICAgICAgICIwLjA1MDIyNCwgMC4xMjMyMywgMC4xOTUyNSwgMC4yNDY2OTUsIDAuMzI4OTY0LCAwLjQwMDk2OCwgMC41MDM4NTUiLCBcCi0gICAgICAgICAgIjAuMDU2NTg5LCAwLjEyOTYxOCwgMC4yMDE2MzQsIDAuMjUzMDkxLCAwLjMzNTMzNywgMC40MDczNjcsIDAuNTEwMTg0IiwgXAotICAgICAgICAgICIwLjA2MTI4NSwgMC4xMzQzMywgMC4yMDYzMzMsIDAuMjU3NzQ5LCAwLjM0MDAzNiwgMC40MTIwNTIsIDAuNTE0OTI4IiwgXAotICAgICAgICAgICIwLjA2NTA0NiwgMC4xMzgwODksIDAuMjEwMDg3LCAwLjI2MTUxMiwgMC4zNDM3OTgsIDAuNDE1Nzk5LCAwLjUxODY1MyIsIFwKLSAgICAgICAgICAiMC4wNzAyNywgMC4xNDMzLCAwLjIxNTI4MywgMC4yNjY3MTYsIDAuMzQ4OTgzLCAwLjQyMTA0MSwgMC41MjM5MDYiLCBcCi0gICAgICAgICAgIjAuMDc0MDc0LCAwLjE0NzE5OCwgMC4yMTkxNzQsIDAuMjcwNjAzLCAwLjM1Mjg3NywgMC40MjQ4NjksIDAuNTI3NzQ0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDExNjEwNSwgMC4wODE2MTA1LCAwLjE1MTYxLCAwLjIwMTYxLCAwLjI4MTYxLCAwLjM1MTYxLCAwLjQ1MTYxIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjk0MTcsIDAuMTc1NzUyLCAwLjMyNDUyNiwgMC40MzA4NzYsIDAuNjAxODM2LCAwLjc1MDczNSwgMC45NjU5NTgiLCBcCi0gICAgICAgICAgIjAuMDI5NDAyLCAwLjE3NTQ5NywgMC4zMjQ0NzYsIDAuNDMxNjg4LCAwLjYwMTg2MiwgMC43NTIwOTMsIDAuOTY1ODkxIiwgXAotICAgICAgICAgICIwLjAyOTQ2MywgMC4xNzU3MzksIDAuMzI0NTA4LCAwLjQzMTY1MSwgMC42MDIzNjMsIDAuNzUwOTgzLCAwLjk2NTU1MSIsIFwKLSAgICAgICAgICAiMC4wMjk2MTYsIDAuMTc1NTE0LCAwLjMyNDY4LCAwLjQzMTQ2OSwgMC42MDE3OTksIDAuNzUwODc2LCAwLjk2NTgxOCIsIFwKLSAgICAgICAgICAiMC4wMjk2NjIsIDAuMTc1NDUyLCAwLjMyNDMxLCAwLjQzMTIzNywgMC42MDE3OTMsIDAuNzUxNzMxLCAwLjk2NTQ5MSIsIFwKLSAgICAgICAgICAiMC4wMjk3NzYsIDAuMTc1NDE0LCAwLjMyNDQwNSwgMC40MzA5OTEsIDAuNjAxNzA4LCAwLjc1MTE5MywgMC45NjQxNDUiLCBcCi0gICAgICAgICAgIjAuMDI5ODk5LCAwLjE3NTM0OCwgMC4zMjQxNiwgMC40MzA5MjIsIDAuNjAxNjkyLCAwLjc1MTA0NiwgMC45NjQxOTQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiT0UiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHRocmVlX3N0YXRlX2Rpc2FibGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMjQ4ODEsIDAuMDMyMzgyLCAwLjAzODg1MSwgMC4wNDM1MTYsIDAuMDQ3MjksIDAuMDUyMTcsIDAuMDU2MDU4Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oc2NhbGFyKSB7Ci0gICAgICAgIHZhbHVlcygiMCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDE2Njc5LCAwLjAyNDgxNywgMC4wMzI3MzIsIDAuMDM4MzI3LCAwLjA0MjgsIDAuMDQ4NDI4LCAwLjA1MjY5MSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKHNjYWxhcikgewotICAgICAgICB2YWx1ZXMoIjAiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxMTYxMiwgMC4wODE2MTIsIDAuMTUxNjEyLCAwLjIwMTYxMiwgMC4yODE2MTIsIDAuMzUxNjEyLCAwLjQ1MTYxMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0MjYxLCAwLjAwNDMyLCAwLjAwNDMyNCwgMC4wMDQzMjcsIDAuMDA0MzI2LCAwLjAwNDMyOCwgMC4wMDQzMzEiLCBcCi0gICAgICAgICAgIjAuMDA0MTI2LCAwLjAwNDIzNiwgMC4wMDQyNDIsIDAuMDA0MjQ0LCAwLjAwNDI0NywgMC4wMDQyNSwgMC4wMDQyNSIsIFwKLSAgICAgICAgICAiMC4wMDQyMDQsIDAuMDA0MzMyLCAwLjAwNDM0MywgMC4wMDQzNDgsIDAuMDA0MzQ3LCAwLjAwNDM1NSwgMC4wMDQzNTYiLCBcCi0gICAgICAgICAgIjAuMDA0MzgzLCAwLjAwNDUxNCwgMC4wMDQ1MzMsIDAuMDA0NTM5LCAwLjAwNDU0MywgMC4wMDQ1NDgsIDAuMDA0NTQ4IiwgXAotICAgICAgICAgICIwLjAwNDYzMSwgMC4wMDQ3NTIsIDAuMDA0Nzc0LCAwLjAwNDc3OSwgMC4wMDQ3ODUsIDAuMDA0Nzg3LCAwLjAwNDc5IiwgXAotICAgICAgICAgICIwLjAwNTA3NSwgMC4wMDUxOSwgMC4wMDUyMTMsIDAuMDA1MjE5LCAwLjAwNTIyOSwgMC4wMDUyMywgMC4wMDUyMzMiLCBcCi0gICAgICAgICAgIjAuMDA1NTAxLCAwLjAwNTYxNiwgMC4wMDU2NCwgMC4wMDU2NDcsIDAuMDA1NjUzLCAwLjAwNTY2LCAwLjAwNTY2MyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDExNjEwNSwgMC4wODE2MTA1LCAwLjE1MTYxLCAwLjIwMTYxLCAwLjI4MTYxLCAwLjM1MTYxLCAwLjQ1MTYxIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDkyMiwgMC4wMDkzNTIsIDAuMDA5MzY1LCAwLjAwOTM2OSwgMC4wMDkzNzIsIDAuMDA5Mzc0LCAwLjAwOTM3NSIsIFwKLSAgICAgICAgICAiMC4wMDkxNDgsIDAuMDA5MjkyLCAwLjAwOTMxLCAwLjAwOTMxNSwgMC4wMDkzMiwgMC4wMDkzMjIsIDAuMDA5MzI0IiwgXAotICAgICAgICAgICIwLjAwOTI5MywgMC4wMDkzOTQsIDAuMDA5NDAxLCAwLjAwOTQwNiwgMC4wMDk0MTEsIDAuMDA5NDE0LCAwLjAwOTQxNiIsIFwKLSAgICAgICAgICAiMC4wMDk1NjMsIDAuMDA5NTY5LCAwLjAwOTU3OCwgMC4wMDk1ODIsIDAuMDA5NTg0LCAwLjAwOTU4NiwgMC4wMDk1ODgiLCBcCi0gICAgICAgICAgIjAuMDA5ODc3LCAwLjAwOTgxLCAwLjAwOTgxMywgMC4wMDk4MTIsIDAuMDA5ODE0LCAwLjAwOTgxNywgMC4wMDk4MTgiLCBcCi0gICAgICAgICAgIjAuMDEwNTE4LCAwLjAxMDI3MSwgMC4wMTAyNjEsIDAuMDEwMjU0LCAwLjAxMDI1MSwgMC4wMTAyNSwgMC4wMTAyNSIsIFwKLSAgICAgICAgICAiMC4wMTA5MzEsIDAuMDEwNjg3LCAwLjAxMDY3OCwgMC4wMTA2NzMsIDAuMDEwNjY2LCAwLjAxMDY2NSwgMC4wMTA2NjQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJPRSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMTE2MTIsIDAuMDgxNjEyLCAwLjE1MTYxMiwgMC4yMDE2MTIsIDAuMjgxNjEyLCAwLjM1MTYxMiwgMC40NTE2MTIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDA2LCAwLjAwNDA1NSwgMC4wMDQwMzMsIDAuMDA0MDA5LCAwLjAwNDAyMSwgMC4wMDM5ODEsIDAuMDAzOTYiLCBcCi0gICAgICAgICAgIjAuMDA0MDM2LCAwLjAwNDAzLCAwLjAwNDAwNywgMC4wMDM5ODgsIDAuMDAzOTYxLCAwLjAwMzk2NywgMC4wMDM5NiIsIFwKLSAgICAgICAgICAiMC4wMDQyMDQsIDAuMDA0MTk1LCAwLjAwNDE2NiwgMC4wMDQxNDMsIDAuMDA0MTE4LCAwLjAwNDE0NiwgMC4wMDQxMjIiLCBcCi0gICAgICAgICAgIjAuMDA0NDI0LCAwLjAwNDQxNywgMC4wMDQzODIsIDAuMDA0MzcyLCAwLjAwNDMzOCwgMC4wMDQzNTcsIDAuMDA0MzE3IiwgXAotICAgICAgICAgICIwLjAwNDY3NCwgMC4wMDQ2NywgMC4wMDQ2NSwgMC4wMDQ2MTYsIDAuMDA0NjI3LCAwLjAwNDYwNCwgMC4wMDQ1OTMiLCBcCi0gICAgICAgICAgIjAuMDA1MTQ5LCAwLjAwNTExNywgMC4wMDUxMDQsIDAuMDA1MDc0LCAwLjAwNTExLCAwLjAwNTA5NSwgMC4wMDUwNzEiLCBcCi0gICAgICAgICAgIjAuMDA1NTU1LCAwLjAwNTU2MiwgMC4wMDU1NjUsIDAuMDA1NTQyLCAwLjAwNTUyLCAwLjAwNTUyLCAwLjAwNTQ5OCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDExNjEwNSwgMC4wODE2MTA1LCAwLjE1MTYxLCAwLjIwMTYxLCAwLjI4MTYxLCAwLjM1MTYxLCAwLjQ1MTYxIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQ1MTksIDAuMDA0NTE5LCAwLjAwNDUxOSwgMC4wMDQ1MTksIDAuMDA0NTIsIDAuMDA0NTE5LCAwLjAwNDUyIiwgXAotICAgICAgICAgICIwLjAwNDUxOCwgMC4wMDQ1MTksIDAuMDA0NTE5LCAwLjAwNDUxOSwgMC4wMDQ1MTksIDAuMDA0NTE5LCAwLjAwNDUxOSIsIFwKLSAgICAgICAgICAiMC4wMDQ2MDcsIDAuMDA0NjA4LCAwLjAwNDYwOCwgMC4wMDQ2MDgsIDAuMDA0NjA4LCAwLjAwNDYwOCwgMC4wMDQ2MDgiLCBcCi0gICAgICAgICAgIjAuMDA0NzI3LCAwLjAwNDcyNywgMC4wMDQ3MjcsIDAuMDA0NzI3LCAwLjAwNDcyNywgMC4wMDQ3MjYsIDAuMDA0NzI3IiwgXAotICAgICAgICAgICIwLjAwNDg1NiwgMC4wMDQ4NTUsIDAuMDA0ODU1LCAwLjAwNDg1NSwgMC4wMDQ4NTQsIDAuMDA0ODU1LCAwLjAwNDg1NSIsIFwKLSAgICAgICAgICAiMC4wMDUwODEsIDAuMDA1MDk1LCAwLjAwNTA5NSwgMC4wMDUwOTQsIDAuMDA1MDk1LCAwLjAwNTA4MSwgMC4wMDUwODEiLCBcCi0gICAgICAgICAgIjAuMDA1MjkzLCAwLjAwNTI5MiwgMC4wMDUyOTEsIDAuMDA1MjkyLCAwLjAwNTI5MiwgMC4wMDUyOTIsIDAuMDA1MjkyIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBUQlVGWDYgKgotICogLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChUQlVGWDYpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMS4zNjUzNTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDA0MjA2OTU7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDA0MjAzMzg7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDA0MjA2OTU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyMDI4LCAwLjAwMjA5MiwgMC4wMDIxMDEsIDAuMDAyMTA0LCAwLjAwMjEwNywgMC4wMDIxMSwgMC4wMDIxMSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjIxNiwgMC4wMDIxNzgsIDAuMDAyMTcxLCAwLjAwMjE2NywgMC4wMDIxNjUsIDAuMDAyMTYzLCAwLjAwMjE2MiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oT0UpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMjYzNzcxOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMjYzNzA2OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMjYzNzcxOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihzY2FsYXIpIHsKLSAgICAgICAgdmFsdWVzKCIwIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA5NDY2LCAwLjAwOTQyNywgMC4wMDk2MzgsIDAuMDA5OTcyLCAwLjAxMDM3MiwgMC4wMTEyMDQsIDAuMDExODI3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMzA5NzU2OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMzA5NzU2OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMzA5NDU7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMi4wMTI5OwotICAgIGZ1bmN0aW9uIDogIkEiOwotICAgIHRocmVlX3N0YXRlIDogIighT0UpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxMzA5NzYsIDAuMDgzMDk3NiwgMC4xNTMwOTgsIDAuMjAzMDk4LCAwLjI4MzA5OCwgMC4zNTMwOTgsIDAuNDUzMDk4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzE0NzMsIDAuMDcwNTg4LCAwLjEwNzQxMiwgMC4xMzM2OCwgMC4xNzU3MDQsIDAuMjEyNTEyLCAwLjI2NDk4OCIsIFwKLSAgICAgICAgICAiMC4wMzc0MywgMC4wNzY2MzMsIDAuMTEzNDU5LCAwLjEzOTczMiwgMC4xODE3NTUsIDAuMjE4NTgxLCAwLjI3MTA0NiIsIFwKLSAgICAgICAgICAiMC4wNDM3MjQsIDAuMDgzMjU0LCAwLjEyMDA5MSwgMC4xNDYzNjEsIDAuMTg4Mzg4LCAwLjIyNTE3MiwgMC4yNzc2OSIsIFwKLSAgICAgICAgICAiMC4wNDg2NzgsIDAuMDg4Njc1LCAwLjEyNTUyMSwgMC4xNTE4MDQsIDAuMTkzODEyLCAwLjIzMDU3NCwgMC4yODMwODciLCBcCi0gICAgICAgICAgIjAuMDUyODc5LCAwLjA5MzMwNywgMC4xMzAxOTQsIDAuMTU2NDY5LCAwLjE5ODQ4MSwgMC4yMzUyNjgsIDAuMjg3NzYiLCBcCi0gICAgICAgICAgIjAuMDU4NTU2LCAwLjA5OTY5NiwgMC4xMzY2MTksIDAuMTYyODk4LCAwLjIwNDkwOCwgMC4yNDE2NjEsIDAuMjk0MTcxIiwgXAotICAgICAgICAgICIwLjA2MzA1MSwgMC4xMDQ4MTMsIDAuMTQxNzUxLCAwLjE2ODA1NSwgMC4yMTAwNjEsIDAuMjQ2ODAzLCAwLjI5OTMxIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEzMDk3NiwgMC4wODMwOTc2LCAwLjE1MzA5OCwgMC4yMDMwOTgsIDAuMjgzMDk4LCAwLjM1MzA5OCwgMC40NTMwOTgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyMDM5LCAwLjA5NTMxNiwgMC4xNzIxMjksIDAuMjI3NDUyLCAwLjMxNTg3OCwgMC4zOTMyOTIsIDAuNTA0NzYxIiwgXAotICAgICAgICAgICIwLjAyMDU2NCwgMC4wOTUzNTIsIDAuMTcyMTU5LCAwLjIyNzQ0NSwgMC4zMTU4MjQsIDAuMzkzMjE4LCAwLjUwNTA2NyIsIFwKLSAgICAgICAgICAiMC4wMjE2MTcsIDAuMDk1NjA0LCAwLjE3MjI1MywgMC4yMjczMDEsIDAuMzE2MTU5LCAwLjM5MzIxOCwgMC41MDQ5MzgiLCBcCi0gICAgICAgICAgIjAuMDIyNjI3LCAwLjA5NjE2NywgMC4xNzI0MTIsIDAuMjI3NjY0LCAwLjMxNjE4NiwgMC4zOTM0OTcsIDAuNTA0NTU3IiwgXAotICAgICAgICAgICIwLjAyMzY1NywgMC4wOTY1ODUsIDAuMTcyNjg3LCAwLjIyNzgwNSwgMC4zMTYyMzYsIDAuMzkzODk1LCAwLjUwNDM2OCIsIFwKLSAgICAgICAgICAiMC4wMjUzMjQsIDAuMDk3NTUzLCAwLjE3MzAxMywgMC4yMjc5NzgsIDAuMzE2MTc1LCAwLjM5Mzc1NywgMC41MDQ4NTMiLCBcCi0gICAgICAgICAgIjAuMDI2NDAzLCAwLjA5ODE0MSwgMC4xNzM0MTUsIDAuMjI4MDIsIDAuMzE2MzI5LCAwLjM5MzgwOCwgMC41MDQ3MTUiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMTMwOTQ1LCAwLjA4MzA5NDUsIDAuMTUzMDk0LCAwLjIwMzA5NSwgMC4yODMwOTUsIDAuMzUzMDk0LCAwLjQ1MzA5NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDMwNTksIDAuMDY5MDMxLCAwLjEwNTI0OSwgMC4xMzEwODQsIDAuMTcyNDE1LCAwLjIwODU2NywgMC4yNjAyMjEiLCBcCi0gICAgICAgICAgIjAuMDM1NjkzLCAwLjA3NDE0NywgMC4xMTAzODMsIDAuMTM2MjIxLCAwLjE3NzU1NCwgMC4yMTM3MjYsIDAuMjY1Mzc2IiwgXAotICAgICAgICAgICIwLjA0MDY3NCwgMC4wNzk0MjgsIDAuMTE1NjY2LCAwLjE0MTUwNiwgMC4xODI4NDEsIDAuMjE4OTk0LCAwLjI3MDY0NCIsIFwKLSAgICAgICAgICAiMC4wNDQ0NTIsIDAuMDgzNTczLCAwLjExOTgyNCwgMC4xNDU2NTYsIDAuMTg2OTg5LCAwLjIyMzE0LCAwLjI3NDc3OSIsIFwKLSAgICAgICAgICAiMC4wNDc2NDMsIDAuMDg3MDAzLCAwLjEyMzMwNiwgMC4xNDkxMzYsIDAuMTkwNDUzLCAwLjIyNjYwMiwgMC4yNzgyNCIsIFwKLSAgICAgICAgICAiMC4wNTIwNywgMC4wOTE4MjUsIDAuMTI4MTg3LCAwLjE1NDA1LCAwLjE5NTM1MSwgMC4yMzE1LCAwLjI4MzEzMyIsIFwKLSAgICAgICAgICAiMC4wNTUzNzYsIDAuMDk1NjA0LCAwLjEzMTk3NiwgMC4xNTc4NTQsIDAuMTk5MjE0LCAwLjIzNTI1LCAwLjI4Njg4NyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxMzA5NDUsIDAuMDgzMDk0NSwgMC4xNTMwOTQsIDAuMjAzMDk1LCAwLjI4MzA5NSwgMC4zNTMwOTQsIDAuNDUzMDk1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTg5NjIsIDAuMDkxNzU4LCAwLjE2NjIzNSwgMC4yMTk3NTUsIDAuMzA1Mjg4LCAwLjM4MDg2OCwgMC40ODg0NDIiLCBcCi0gICAgICAgICAgIjAuMDE5MjAxLCAwLjA5MTgwMiwgMC4xNjYyNiwgMC4yMTk3NiwgMC4zMDU1ODUsIDAuMzgwMzA4LCAwLjQ4ODQ3IiwgXAotICAgICAgICAgICIwLjAyMDE4NCwgMC4wOTIxODQsIDAuMTY2MjksIDAuMjE5ODUsIDAuMzA1MzE3LCAwLjM4MDQ1MywgMC40ODc4NzIiLCBcCi0gICAgICAgICAgIjAuMDIxLCAwLjA5MjYxNywgMC4xNjY1NTUsIDAuMjE5ODE5LCAwLjMwNTMzNywgMC4zODA1ODgsIDAuNDg3ODcxIiwgXAotICAgICAgICAgICIwLjAyMTg3LCAwLjA5MzAzOSwgMC4xNjY3ODQsIDAuMjE5OTUxLCAwLjMwNTU4MSwgMC4zODA4MzQsIDAuNDg3OTc1IiwgXAotICAgICAgICAgICIwLjAyMjk0MywgMC4wOTM5NzIsIDAuMTY3MDk2LCAwLjIyMDI3NCwgMC4zMDU3MTIsIDAuMzgwNjE3LCAwLjQ4ODA0MSIsIFwKLSAgICAgICAgICAiMC4wMjQwNTMsIDAuMDk0NTQyLCAwLjE2NzQ4MiwgMC4yMjAzOTksIDAuMzA1Nzc1LCAwLjM4MDgxNywgMC40ODc5OSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJPRSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogdGhyZWVfc3RhdGVfZW5hYmxlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxMzA5NzYsIDAuMDgzMDk3NiwgMC4xNTMwOTgsIDAuMjAzMDk4LCAwLjI4MzA5OCwgMC4zNTMwOTgsIDAuNDUzMDk4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjk2OTMsIDAuMDY4NzYxLCAwLjEwNTU2MywgMC4xMzE4MzEsIDAuMTczODM3LCAwLjIxMDYwMywgMC4yNjMxMzkiLCBcCi0gICAgICAgICAgIjAuMDM3MTE1LCAwLjA3NjIyLCAwLjExMzAzNywgMC4xMzkyOTcsIDAuMTgxMjk3LCAwLjIxODA2MSwgMC4yNzA1OTgiLCBcCi0gICAgICAgICAgIjAuMDQ1MTM0LCAwLjA4NDYyOSwgMC4xMjE0MjMsIDAuMTQ3NzA0LCAwLjE4OTcxNywgMC4yMjY0NTYsIDAuMjc4OTc3IiwgXAotICAgICAgICAgICIwLjA1MTEzMywgMC4wOTEyMDEsIDAuMTI4MDAzLCAwLjE1NDI1NCwgMC4xOTYyNjgsIDAuMjMzMDMxLCAwLjI4NTUxNCIsIFwKLSAgICAgICAgICAiMC4wNTYyODQsIDAuMDk2ODExLCAwLjEzMzY2OCwgMC4xNTk5MTMsIDAuMjAxOTQyLCAwLjIzODY3LCAwLjI5MTE2MiIsIFwKLSAgICAgICAgICAiMC4wNjI5ODEsIDAuMTA0MzIzLCAwLjE0MTIzNSwgMC4xNjc0OTMsIDAuMjA5NDg2LCAwLjI0NjIyOCwgMC4yOTg4MDEiLCBcCi0gICAgICAgICAgIjAuMDY4MTU5LCAwLjExMDAyNiwgMC4xNDY5NzYsIDAuMTczMjQzLCAwLjIxNTIzMywgMC4yNTE5NjUsIDAuMzA0NDU2Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEzMDk3NiwgMC4wODMwOTc2LCAwLjE1MzA5OCwgMC4yMDMwOTgsIDAuMjgzMDk4LCAwLjM1MzA5OCwgMC40NTMwOTgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyMDgyNSwgMC4wOTUzNzIsIDAuMTcyMTk4LCAwLjIyNzQ5MywgMC4zMTYxNDcsIDAuMzkzNDg5LCAwLjUwNSIsIFwKLSAgICAgICAgICAiMC4wMjA5NTksIDAuMDk1NDgyLCAwLjE3MjI0MywgMC4yMjcyMTUsIDAuMzE2MTM5LCAwLjM5MzUxNywgMC41MDQ5NzgiLCBcCi0gICAgICAgICAgIjAuMDIyMzk3LCAwLjA5NTg5LCAwLjE3MjI4NSwgMC4yMjc1NSwgMC4zMTYxODMsIDAuMzkzODI1LCAwLjUwNDM1NSIsIFwKLSAgICAgICAgICAiMC4wMjM5MjEsIDAuMDk2NDk1LCAwLjE3MjU2NywgMC4yMjc2MTUsIDAuMzE1OTU3LCAwLjM5MzQ5OCwgMC41MDQ1MTYiLCBcCi0gICAgICAgICAgIjAuMDI1MDY5LCAwLjA5NzAwMSwgMC4xNzI4OCwgMC4yMjc5MjcsIDAuMzE1ODk3LCAwLjM5Mzk4OCwgMC41MDQ5NyIsIFwKLSAgICAgICAgICAiMC4wMjcxNjksIDAuMDk4MDUzLCAwLjE3MzI2NSwgMC4yMjgwNjUsIDAuMzE2MzI1LCAwLjM5NDAzNSwgMC41MDQzMzMiLCBcCi0gICAgICAgICAgIjAuMDI4NDQ0LCAwLjA5ODgwNCwgMC4xNzM3NTMsIDAuMjI4MzU1LCAwLjMxNjU2MiwgMC4zOTM5MjUsIDAuNTA0ODk4Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEzMDk0NSwgMC4wODMwOTQ1LCAwLjE1MzA5NCwgMC4yMDMwOTUsIDAuMjgzMDk1LCAwLjM1MzA5NCwgMC40NTMwOTUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0MzQ0MiwgMC4wODE3OTIsIDAuMTE3OTg5LCAwLjE0MzgxNiwgMC4xODUxNjUsIDAuMjIxMzEzLCAwLjI3Mjk2MyIsIFwKLSAgICAgICAgICAiMC4wNTE0OTQsIDAuMDg5ODcsIDAuMTI2MDYyLCAwLjE1MTg4OCwgMC4xOTMxOTgsIDAuMjI5NDExLCAwLjI4MTAxNSIsIFwKLSAgICAgICAgICAiMC4wNTk5NjYsIDAuMDk4MzI1LCAwLjEzNDUxNCwgMC4xNjAzNDEsIDAuMjAxNjU0LCAwLjIzNzgyNywgMC4yODk0NzIiLCBcCi0gICAgICAgICAgIjAuMDY2MjM5LCAwLjEwNDY5NCwgMC4xNDA4OSwgMC4xNjY3MDksIDAuMjA4MDI3LCAwLjI0NDE3OCwgMC4yOTU4NTQiLCBcCi0gICAgICAgICAgIjAuMDcxMjgsIDAuMTA5Nzk3LCAwLjE0NTk5MywgMC4xNzE4MTYsIDAuMjEzMTMyLCAwLjI0OTI4LCAwLjMwMDkzOSIsIFwKLSAgICAgICAgICAiMC4wNzgxNDksIDAuMTE2NzYyLCAwLjE1Mjk2OSwgMC4xNzg3ODQsIDAuMjIwMDksIDAuMjU2MjM2LCAwLjMwNzg3MyIsIFwKLSAgICAgICAgICAiMC4wODMxMzMsIDAuMTIxODQ0LCAwLjE1ODA0NSwgMC4xODM4NjgsIDAuMjI1MTcxLCAwLjI2MTMxLCAwLjMxMjkzOCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxMzA5NDUsIDAuMDgzMDk0NSwgMC4xNTMwOTQsIDAuMjAzMDk1LCAwLjI4MzA5NSwgMC4zNTMwOTQsIDAuNDUzMDk1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTk2MiwgMC4wOTE5MTUsIDAuMTY2MzQ2LCAwLjIxOTg1NiwgMC4zMDUxNTIsIDAuMzgwMzM5LCAwLjQ4NzU0IiwgXAotICAgICAgICAgICIwLjAxOTYsIDAuMDkxOTYsIDAuMTY2MTIsIDAuMjE5NTIxLCAwLjMwNTYzOCwgMC4zODAzNjksIDAuNDg4NTU2IiwgXAotICAgICAgICAgICIwLjAxOTY2LCAwLjA5MTk4OSwgMC4xNjYzNSwgMC4yMTk4NDIsIDAuMzA1NjE2LCAwLjM4MDI3MywgMC40ODg1MjYiLCBcCi0gICAgICAgICAgIjAuMDE5OTcxLCAwLjA5MjA0MSwgMC4xNjYzOTgsIDAuMjE5ODAyLCAwLjMwNTU5OSwgMC4zODA1MTQsIDAuNDg3NzA2IiwgXAotICAgICAgICAgICIwLjAyMDA0MiwgMC4wOTIwODYsIDAuMTY2MjAxLCAwLjIxOTU0MywgMC4zMDUyMSwgMC4zODA2NjYsIDAuNDg4MjAxIiwgXAotICAgICAgICAgICIwLjAyMDIwNywgMC4wOTIxMTMsIDAuMTY2MTYxLCAwLjIxOTU0NSwgMC4zMDUzMTQsIDAuMzgwNTI1LCAwLjQ4NzkyOSIsIFwKLSAgICAgICAgICAiMC4wMjA0NzksIDAuMDkyMjU2LCAwLjE2NjA5NiwgMC4yMTk0NjYsIDAuMzA1MDQ5LCAwLjM4MDMxNywgMC40ODc3NjYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiT0UiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHRocmVlX3N0YXRlX2Rpc2FibGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMzI3NjcsIDAuMDQwNzcsIDAuMDQ5MzQ0LCAwLjA1NTgxMiwgMC4wNjA5MTQsIDAuMDY3NjQ0LCAwLjA3MjMzNSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKHNjYWxhcikgewotICAgICAgICB2YWx1ZXMoIjAiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAxNjY2OCwgMC4wMjQ2OTQsIDAuMDMyNDU3LCAwLjAzNzY1MSwgMC4wNDE4MTYsIDAuMDQ3ODA2LCAwLjA1MTcyNCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKHNjYWxhcikgewotICAgICAgICB2YWx1ZXMoIjAiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxMzA5NzYsIDAuMDgzMDk3NiwgMC4xNTMwOTgsIDAuMjAzMDk4LCAwLjI4MzA5OCwgMC4zNTMwOTgsIDAuNDUzMDk4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDg3MjksIDAuMDA4OTYyLCAwLjAwODk4OCwgMC4wMDg5OTYsIDAuMDA5MDAzLCAwLjAwOTAwNiwgMC4wMDkwMTIiLCBcCi0gICAgICAgICAgIjAuMDA4NDY2LCAwLjAwODc3NywgMC4wMDg4MjUsIDAuMDA4ODUyLCAwLjAwODg2MiwgMC4wMDg4NjEsIDAuMDA4ODgiLCBcCi0gICAgICAgICAgIjAuMDA4NzE2LCAwLjAwOTAyOCwgMC4wMDkxMDEsIDAuMDA5MTE2LCAwLjAwOTEyNywgMC4wMDkxNDUsIDAuMDA5MTU2IiwgXAotICAgICAgICAgICIwLjAwOTIxMywgMC4wMDk1MDYsIDAuMDA5NTc5LCAwLjAwOTYwNSwgMC4wMDk2MywgMC4wMDk2NDIsIDAuMDA5NjUzIiwgXAotICAgICAgICAgICIwLjAwOTg1MywgMC4wMTAxMDMsIDAuMDEwMTgsIDAuMDEwMjA4LCAwLjAxMDIyMSwgMC4wMTAyNTksIDAuMDEwMjYxIiwgXAotICAgICAgICAgICIwLjAxMTA0NiwgMC4wMTEyMTgsIDAuMDExMjksIDAuMDExMzE4LCAwLjAxMTM0NSwgMC4wMTEzNTksIDAuMDExMzczIiwgXAotICAgICAgICAgICIwLjAxMjEwNywgMC4wMTIyNzYsIDAuMDEyMzUzLCAwLjAxMjM4NCwgMC4wMTI0MDcsIDAuMDEyNDMxLCAwLjAxMjQ0OSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEzMDk0NSwgMC4wODMwOTQ1LCAwLjE1MzA5NCwgMC4yMDMwOTUsIDAuMjgzMDk1LCAwLjM1MzA5NCwgMC40NTMwOTUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxODcxNiwgMC4wMTkxMzUsIDAuMDE5MTksIDAuMDE5MjA2LCAwLjAxOTIyMywgMC4wMTkyMywgMC4wMTkyMzciLCBcCi0gICAgICAgICAgIjAuMDE4NiwgMC4wMTkwMSwgMC4wMTkwODgsIDAuMDE5MTEzLCAwLjAxOTEzNSwgMC4wMTkxNDcsIDAuMDE5MTU3IiwgXAotICAgICAgICAgICIwLjAxODk4NiwgMC4wMTkyNDQsIDAuMDE5MzE1LCAwLjAxOTM0NywgMC4wMTkzNzMsIDAuMDE5Mzg3LCAwLjAxOTM5OSIsIFwKLSAgICAgICAgICAiMC4wMTk2ODcsIDAuMDE5NzI0LCAwLjAxOTc4NywgMC4wMTk4MSwgMC4wMTk4MywgMC4wMTk4NDMsIDAuMDE5ODUyIiwgXAotICAgICAgICAgICIwLjAyMDU2OSwgMC4wMjAzNSwgMC4wMjAzOTEsIDAuMDIwMzk5LCAwLjAyMDQxNiwgMC4wMjA0MjksIDAuMDIwNDM4IiwgXAotICAgICAgICAgICIwLjAyMTg2NywgMC4wMjE0NjYsIDAuMDIxNDc0LCAwLjAyMTQ4NCwgMC4wMjE1MDEsIDAuMDIxNTA4LCAwLjAyMTUxMSIsIFwKLSAgICAgICAgICAiMC4wMjMyNzgsIDAuMDIyNTMyLCAwLjAyMjUzNCwgMC4wMjI1MzYsIDAuMDIyNTQ0LCAwLjAyMjU1NiwgMC4wMjI1NiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIk9FIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxMzA5NzYsIDAuMDgzMDk3NiwgMC4xNTMwOTgsIDAuMjAzMDk4LCAwLjI4MzA5OCwgMC4zNTMwOTgsIDAuNDUzMDk4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDgzNjMsIDAuMDA4MzU4LCAwLjAwODM0OCwgMC4wMDgzNDMsIDAuMDA4MzM2LCAwLjAwODMyMywgMC4wMDgzMTkiLCBcCi0gICAgICAgICAgIjAuMDA4MzM0LCAwLjAwODMyOCwgMC4wMDgzMTcsIDAuMDA4MzA5LCAwLjAwODMwNiwgMC4wMDgyODcsIDAuMDA4Mjg4IiwgXAotICAgICAgICAgICIwLjAwODYxNiwgMC4wMDg2MDEsIDAuMDA4NTkxLCAwLjAwODU5LCAwLjAwODU4NCwgMC4wMDg1NzcsIDAuMDA4NTYzIiwgXAotICAgICAgICAgICIwLjAwOTAxLCAwLjAwODk5NiwgMC4wMDg5ODksIDAuMDA4OTgsIDAuMDA4OTc5LCAwLjAwODk3MSwgMC4wMDg5NDgiLCBcCi0gICAgICAgICAgIjAuMDA5NDIsIDAuMDA5NDEzLCAwLjAwOTQwNiwgMC4wMDk0MDEsIDAuMDA5Mzk4LCAwLjAwOTM4OSwgMC4wMDkzNzgiLCBcCi0gICAgICAgICAgIjAuMDEwMTk4LCAwLjAxMDE5LCAwLjAxMDE4MSwgMC4wMTAxNjQsIDAuMDEwMTczLCAwLjAxMDE2NiwgMC4wMTAxNiIsIFwKLSAgICAgICAgICAiMC4wMTA5MjUsIDAuMDEwOTMsIDAuMDEwOTUzLCAwLjAxMDk1MywgMC4wMTA5NDcsIDAuMDEwOTMsIDAuMDEwODg2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMTMwOTQ1LCAwLjA4MzA5NDUsIDAuMTUzMDk0LCAwLjIwMzA5NSwgMC4yODMwOTUsIDAuMzUzMDk0LCAwLjQ1MzA5NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA5MzI0LCAwLjAwOTMyNCwgMC4wMDkzMjQsIDAuMDA5MzI0LCAwLjAwOTMyMywgMC4wMDkzMjQsIDAuMDA5MzI0IiwgXAotICAgICAgICAgICIwLjAwOTMyNiwgMC4wMDkzMjYsIDAuMDA5MzI3LCAwLjAwOTMyNywgMC4wMDkzMjcsIDAuMDA5MzI2LCAwLjAwOTMyNiIsIFwKLSAgICAgICAgICAiMC4wMDk0MzIsIDAuMDA5NDMsIDAuMDA5NDMxLCAwLjAwOTQzMSwgMC4wMDk0MzEsIDAuMDA5NDMxLCAwLjAwOTQzMSIsIFwKLSAgICAgICAgICAiMC4wMDk1NjYsIDAuMDA5NTYxLCAwLjAwOTU2MiwgMC4wMDk1NjIsIDAuMDA5NTYxLCAwLjAwOTU2MSwgMC4wMDk1NjEiLCBcCi0gICAgICAgICAgIjAuMDA5NzI1LCAwLjAwOTcyNSwgMC4wMDk3MjcsIDAuMDA5NzI1LCAwLjAwOTcyNCwgMC4wMDk3MjYsIDAuMDA5NzI0IiwgXAotICAgICAgICAgICIwLjAxMDAxMiwgMC4wMTAwMTMsIDAuMDEwMDEyLCAwLjAxMDAxMiwgMC4wMTAwMTMsIDAuMDEwMDEyLCAwLjAxMDAxMyIsIFwKLSAgICAgICAgICAiMC4wMTAyNjUsIDAuMDEwMjcsIDAuMDEwMjY1LCAwLjAxMDI2NywgMC4wMTAyNjcsIDAuMDEwMjY3LCAwLjAxMDI2NyIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogVEJVRlg4ICoKLSAqIC0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoVEJVRlg4KSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDEuNTQ4MjI7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwNDIxNDY4OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwNDIxMDIyOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwNDIxNDY4OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjAyOSwgMC4wMDIwOTIsIDAuMDAyMTAxLCAwLjAwMjEwNCwgMC4wMDIxMDcsIDAuMDAyMTEsIDAuMDAyMTExIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyMjE2LCAwLjAwMjE3NywgMC4wMDIxNzEsIDAuMDAyMTY3LCAwLjAwMjE2NSwgMC4wMDIxNjMsIDAuMDAyMTYyIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihPRSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAyNjM3MTg7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAyNjM3MTg7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAyNjM2NTc7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHNjYWxhcikgewotICAgICAgICB2YWx1ZXMoIjAiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDk5NTIsIDAuMDA5OTM1LCAwLjAxMDA5OCwgMC4wMTA0MDcsIDAuMDEwODQyLCAwLjAxMTUwMSwgMC4wMTIxODMiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDA0MTI1MDE7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDA0MTI1MDE7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDA0MTIwOTU7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMi42ODE3NjsKLSAgICBmdW5jdGlvbiA6ICJBIjsKLSAgICB0aHJlZV9zdGF0ZSA6ICIoIU9FKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMTQxMjUsIDAuMDg0MTI1LCAwLjE1NDEyNSwgMC4yMDQxMjUsIDAuMjg0MTI1LCAwLjM1NDEyNSwgMC40NTQxMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzMjIxMiwgMC4wNjM1MDUsIDAuMDkxNDA1LCAwLjExMTIsIDAuMTQyODc3LCAwLjE3MDU0OSwgMC4yMTAxNDEiLCBcCi0gICAgICAgICAgIjAuMDM4MjM4LCAwLjA2OTU3LCAwLjA5NzQ4OSwgMC4xMTczMDQsIDAuMTQ4OTY3LCAwLjE3NjY3MiwgMC4yMTYyNDIiLCBcCi0gICAgICAgICAgIjAuMDQ0NzY2LCAwLjA3NjQzNiwgMC4xMDQzOCwgMC4xMjQyMDIsIDAuMTU1ODcyLCAwLjE4MzU2OSwgMC4yMjMxMjkiLCBcCi0gICAgICAgICAgIjAuMDQ5OTE3LCAwLjA4MjE0MSwgMC4xMTAxMjgsIDAuMTI5OTMyLCAwLjE2MTU5OSwgMC4xODkyOTEsIDAuMjI4ODc0IiwgXAotICAgICAgICAgICIwLjA1NDM4MSwgMC4wODcwOTksIDAuMTE1MTYsIDAuMTM0OTkxLCAwLjE2NjY0MywgMC4xOTQzMzMsIDAuMjMzODk0IiwgXAotICAgICAgICAgICIwLjA2MDM4MywgMC4wOTM4ODYsIDAuMTIyMDI0LCAwLjE0MTg3NiwgMC4xNzM1MjksIDAuMjAxMjE2LCAwLjI0MDc3IiwgXAotICAgICAgICAgICIwLjA2NDk4OCwgMC4wOTkyNywgMC4xMjc0NTgsIDAuMTQ3Mjk4LCAwLjE3OTAwMywgMC4yMDY2ODIsIDAuMjQ2MjE1Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDE0MTI1LCAwLjA4NDEyNSwgMC4xNTQxMjUsIDAuMjA0MTI1LCAwLjI4NDEyNSwgMC4zNTQxMjUsIDAuNDU0MTI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTg4MjcsIDAuMDc1MDgxLCAwLjEzMjExMSwgMC4xNzM0NzMsIDAuMjM5ODAxLCAwLjI5ODM4OCwgMC4zODE3OTIiLCBcCi0gICAgICAgICAgIjAuMDE5MDAyLCAwLjA3NTA2MiwgMC4xMzIyNjEsIDAuMTczNDcyLCAwLjIzOTkzOSwgMC4yOTg1NTEsIDAuMzgxODAyIiwgXAotICAgICAgICAgICIwLjAyMDA1OCwgMC4wNzU0OTEsIDAuMTMyNDIxLCAwLjE3MzczMywgMC4yNDAyODMsIDAuMjk4NjEsIDAuMzgxNzE2IiwgXAotICAgICAgICAgICIwLjAyMTMwNiwgMC4wNzYxNjIsIDAuMTMyODU1LCAwLjE3MzkzNSwgMC4yNDAzMzMsIDAuMjk4NTY2LCAwLjM4MTU0NiIsIFwKLSAgICAgICAgICAiMC4wMjIyMjUsIDAuMDc2ODIzLCAwLjEzMzI4LCAwLjE3NDI0NCwgMC4yNDAzNSwgMC4yOTg1NTYsIDAuMzgyMTQ0IiwgXAotICAgICAgICAgICIwLjAyMzg5OSwgMC4wNzc5MTIsIDAuMTMzODY2LCAwLjE3NDY2NiwgMC4yNDA3NTUsIDAuMjk4NzM1LCAwLjM4MjAxMSIsIFwKLSAgICAgICAgICAiMC4wMjUxMzksIDAuMDc4ODI5LCAwLjEzNDYyOCwgMC4xNzUwNTMsIDAuMjQwOTA2LCAwLjI5ODc2OSwgMC4zODIxNTkiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMTQxMjEsIDAuMDg0MTIwOSwgMC4xNTQxMjEsIDAuMjA0MTIxLCAwLjI4NDEyMSwgMC4zNTQxMjEsIDAuNDU0MTIxIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzA4NTYsIDAuMDYxMzA0LCAwLjA4ODc0NSwgMC4xMDgyMTcsIDAuMTM5MzQ2LCAwLjE2NjU3MywgMC4yMDU0ODQiLCBcCi0gICAgICAgICAgIjAuMDM2MDYzLCAwLjA2NjQ3MywgMC4wOTM5MjYsIDAuMTEzNDA0LCAwLjE0NDUzMywgMC4xNzE3NjYsIDAuMjEwNjY1IiwgXAotICAgICAgICAgICIwLjA0MTMzNSwgMC4wNzIwMTEsIDAuMDk5NDYyLCAwLjExODk0MiwgMC4xNTAwNjMsIDAuMTc3MzA5LCAwLjIxNjE5MSIsIFwKLSAgICAgICAgICAiMC4wNDUzOTksIDAuMDc2Mzc5LCAwLjEwMzg3MiwgMC4xMjMzNDUsIDAuMTU0NDc3LCAwLjE4MTY5NCwgMC4yMjA2MDciLCBcCi0gICAgICAgICAgIjAuMDQ4ODc0LCAwLjA4MDA4LCAwLjEwNzY0MiwgMC4xMjcxMTksIDAuMTU4MjMzLCAwLjE4NTQ1MywgMC4yMjQzNTEiLCBcCi0gICAgICAgICAgIjAuMDUzNTYzLCAwLjA4NTE5OCwgMC4xMTI3OTEsIDAuMTMyMzA2LCAwLjE2MzQ0OSwgMC4xOTA2NSwgMC4yMjk1MjQiLCBcCi0gICAgICAgICAgIjAuMDU3MTI3LCAwLjA4OTE1MiwgMC4xMTY3OSwgMC4xMzYyOTQsIDAuMTY3NDY2LCAwLjE5NDY5NSwgMC4yMzM1NDkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMTQxMjEsIDAuMDg0MTIwOSwgMC4xNTQxMjEsIDAuMjA0MTIxLCAwLjI4NDEyMSwgMC4zNTQxMjEsIDAuNDU0MTIxIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTcyNjMsIDAuMDcxODIxLCAwLjEyNzMxNiwgMC4xNjc0NTEsIDAuMjMxODk2LCAwLjI4ODQzMywgMC4zNjg4ODQiLCBcCi0gICAgICAgICAgIjAuMDE3NDM5LCAwLjA3MTg1OCwgMC4xMjcyOTQsIDAuMTY3NDg4LCAwLjIzMTY1NywgMC4yODg0NzUsIDAuMzY5MzgxIiwgXAotICAgICAgICAgICIwLjAxODM4OCwgMC4wNzIzNDgsIDAuMTI3NTQ1LCAwLjE2NzY1OSwgMC4yMzE5NjUsIDAuMjg4MTEsIDAuMzY5MzI1IiwgXAotICAgICAgICAgICIwLjAxOTE5NywgMC4wNzI4OTEsIDAuMTI3OTYxLCAwLjE2NzkzNSwgMC4yMzIxNzgsIDAuMjg4MzY3LCAwLjM2ODc4NiIsIFwKLSAgICAgICAgICAiMC4wMTk5OTgsIDAuMDczNTk1LCAwLjEyODMxMywgMC4xNjgxMTcsIDAuMjMyMjU3LCAwLjI4ODQwMSwgMC4zNjg5MjkiLCBcCi0gICAgICAgICAgIjAuMDIxMTg4LCAwLjA3NDUxOCwgMC4xMjg4ODEsIDAuMTY4NDM1LCAwLjIzMjQxNSwgMC4yODg2OTksIDAuMzY5MTk2IiwgXAotICAgICAgICAgICIwLjAyMjI0OSwgMC4wNzUzNzcsIDAuMTI5NjQ0LCAwLjE2ODg0NiwgMC4yMzI2MDgsIDAuMjg4ODM5LCAwLjM2OTUxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIk9FIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiB0aHJlZV9zdGF0ZV9lbmFibGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDE0MTI1LCAwLjA4NDEyNSwgMC4xNTQxMjUsIDAuMjA0MTI1LCAwLjI4NDEyNSwgMC4zNTQxMjUsIDAuNDU0MTI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzA0NjQsIDAuMDYxNjY5LCAwLjA4OTU2NCwgMC4xMDkzNjYsIDAuMTQxMDI2LCAwLjE2ODcxNiwgMC4yMDgyNjgiLCBcCi0gICAgICAgICAgIjAuMDM3OTM1LCAwLjA2OTE0LCAwLjA5NzAzMywgMC4xMTY4MzUsIDAuMTQ4NDg0LCAwLjE3NjE4NSwgMC4yMTU3MzIiLCBcCi0gICAgICAgICAgIjAuMDQ2MzU1LCAwLjA3Nzk3NywgMC4xMDU4NzUsIDAuMTI1NjY2LCAwLjE1NzMzLCAwLjE4NTAwOCwgMC4yMjQ2MDUiLCBcCi0gICAgICAgICAgIjAuMDUyNzA0LCAwLjA4NTAyOCwgMC4xMTI5NzIsIDAuMTMyNzY1LCAwLjE2NDM5OSwgMC4xOTIwODcsIDAuMjMxNjgzIiwgXAotICAgICAgICAgICIwLjA1ODExNiwgMC4wOTEwMzMsIDAuMTE5MDY0LCAwLjEzODg2MSwgMC4xNzA0OTUsIDAuMTk4MTY2LCAwLjIzNzcxNSIsIFwKLSAgICAgICAgICAiMC4wNjUxMTEsIDAuMDk5MDk3LCAwLjEyNzE3MSwgMC4xNDcwMzQsIDAuMTc4NjY5LCAwLjIwNjMzNCwgMC4yNDU4NzkiLCBcCi0gICAgICAgICAgIjAuMDcwMzA2LCAwLjEwNTE4LCAwLjEzMzMxOCwgMC4xNTMxMjEsIDAuMTg0ODIsIDAuMjEyNDg0LCAwLjI1MjAwNCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxNDEyNSwgMC4wODQxMjUsIDAuMTU0MTI1LCAwLjIwNDEyNSwgMC4yODQxMjUsIDAuMzU0MTI1LCAwLjQ1NDEyNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE5Mjk3LCAwLjA3NTI2NCwgMC4xMzIzMjgsIDAuMTczNjksIDAuMjQwMjI1LCAwLjI5ODU5NCwgMC4zODE3NTQiLCBcCi0gICAgICAgICAgIjAuMDE5NCwgMC4wNzUzMDgsIDAuMTMyMzUyLCAwLjE3MzY5NSwgMC4yMzk5NzgsIDAuMjk4NTc4LCAwLjM4MjExNSIsIFwKLSAgICAgICAgICAiMC4wMjA4NzIsIDAuMDc1NzY2LCAwLjEzMjQ3NCwgMC4xNzM4MTksIDAuMjQwMjYsIDAuMjk4MzksIDAuMzgxNjIiLCBcCi0gICAgICAgICAgIjAuMDIyNTAzLCAwLjA3NjYwNCwgMC4xMzMwNjksIDAuMTc0MDY1LCAwLjI0MDIxMywgMC4yOTg0NTksIDAuMzgxNjgxIiwgXAotICAgICAgICAgICIwLjAyMzgzMSwgMC4wNzczOTMsIDAuMTMzNTY3LCAwLjE3NDM4NCwgMC4yNDA0NDIsIDAuMjk4NzkyLCAwLjM4MTk3MiIsIFwKLSAgICAgICAgICAiMC4wMjYwODIsIDAuMDc4NzI0LCAwLjEzNDIwNywgMC4xNzQ5MDEsIDAuMjQwODk1LCAwLjI5ODg4MSwgMC4zODI0NjIiLCBcCi0gICAgICAgICAgIjAuMDI3OTY4LCAwLjA4MDAxMSwgMC4xMzUxNDIsIDAuMTc1NDI4LCAwLjI0MTA5LCAwLjI5OTIyNywgMC4zODIyOTYiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMTQxMjEsIDAuMDg0MTIwOSwgMC4xNTQxMjEsIDAuMjA0MTIxLCAwLjI4NDEyMSwgMC4zNTQxMjEsIDAuNDU0MTIxIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDM4MjcsIDAuMDc0MTg5LCAwLjEwMTU5NywgMC4xMjEwNTQsIDAuMTUyMTcxLCAwLjE3OTM5LCAwLjIxODI4MSIsIFwKLSAgICAgICAgICAiMC4wNTE4OSwgMC4wODIyNDQsIDAuMTA5NjU5LCAwLjEyOTEyNiwgMC4xNjAyMzQsIDAuMTg3NDU2LCAwLjIyNjM1OSIsIFwKLSAgICAgICAgICAiMC4wNjAzNDksIDAuMDkwNzIsIDAuMTE4MTI2LCAwLjEzNzU4NCwgMC4xNjg3MDMsIDAuMTk1OTM5LCAwLjIzNDgxMSIsIFwKLSAgICAgICAgICAiMC4wNjY2OTMsIDAuMDk3MTE2LCAwLjEyNDUzMywgMC4xNDM5OTQsIDAuMTc1MTA3LCAwLjIwMjMyNSwgMC4yNDEyMTEiLCBcCi0gICAgICAgICAgIjAuMDcxNzUsIDAuMTAyMjg2LCAwLjEyOTY5OCwgMC4xNDkxNTgsIDAuMTgwMjczLCAwLjIwNzQ5MiwgMC4yNDYzNjkiLCBcCi0gICAgICAgICAgIjAuMDc4NjQ4LCAwLjEwOTI4NCwgMC4xMzY3MDUsIDAuMTU2MTY0LCAwLjE4NzI2OSwgMC4yMTQ0ODEsIDAuMjUzMzYyIiwgXAotICAgICAgICAgICIwLjA4MzY5NiwgMC4xMTQ0MTYsIDAuMTQxODQ3LCAwLjE2MTMwNiwgMC4xOTI0MTYsIDAuMjE5NjI5LCAwLjI1ODUwNSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxNDEyMSwgMC4wODQxMjA5LCAwLjE1NDEyMSwgMC4yMDQxMjEsIDAuMjg0MTIxLCAwLjM1NDEyMSwgMC40NTQxMjEiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxNzkxMSwgMC4wNzIwNzYsIDAuMTI3NDQ5LCAwLjE2NzU4MiwgMC4yMzE5ODUsIDAuMjg4NTE0LCAwLjM2OTAwNyIsIFwKLSAgICAgICAgICAiMC4wMTc4NzcsIDAuMDcyMTEsIDAuMTI3NDQ2LCAwLjE2NzI5NCwgMC4yMzE5ODUsIDAuMjg4MTUyLCAwLjM2OTUwMyIsIFwKLSAgICAgICAgICAiMC4wMTgwNDYsIDAuMDcyMTUzLCAwLjEyNzQ2NiwgMC4xNjc1NjQsIDAuMjMxOTkyLCAwLjI4ODU3LCAwLjM2OTQzMSIsIFwKLSAgICAgICAgICAiMC4wMTgyMDMsIDAuMDcyMjExLCAwLjEyNzQ3OSwgMC4xNjc2MTksIDAuMjMyMDA0LCAwLjI4ODQ1NywgMC4zNjkzMTUiLCBcCi0gICAgICAgICAgIjAuMDE4MzQyLCAwLjA3MjI1NywgMC4xMjc1NTQsIDAuMTY3NDc3LCAwLjIzMTY3MywgMC4yODgzMjMsIDAuMzY5MDA0IiwgXAotICAgICAgICAgICIwLjAxODQ4OCwgMC4wNzI0MzIsIDAuMTI3NDQzLCAwLjE2NzM5OCwgMC4yMzE2ODcsIDAuMjg4MTM3LCAwLjM2ODg3OCIsIFwKLSAgICAgICAgICAiMC4wMTg3ODUsIDAuMDcyNDM3LCAwLjEyNzUzNCwgMC4xNjczMzIsIDAuMjMxNTM1LCAwLjI4NzkyNCwgMC4zNjg3ODIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiT0UiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHRocmVlX3N0YXRlX2Rpc2FibGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMzQ1NjYsIDAuMDQyNDkzLCAwLjA1MTIsIDAuMDU3NzQyLCAwLjA2Mjg2NCwgMC4wNjk5NTMsIDAuMDc0NjYxIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oc2NhbGFyKSB7Ci0gICAgICAgIHZhbHVlcygiMCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDE5MDM1LCAwLjAyNzAxMywgMC4wMzU1MTYsIDAuMDQxNjgxLCAwLjA0NjE3OCwgMC4wNTIxNzQsIDAuMDU2Nzg5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oc2NhbGFyKSB7Ci0gICAgICAgIHZhbHVlcygiMCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDE0MTI1LCAwLjA4NDEyNSwgMC4xNTQxMjUsIDAuMjA0MTI1LCAwLjI4NDEyNSwgMC4zNTQxMjUsIDAuNDU0MTI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTExOTcsIDAuMDExNTc1LCAwLjAxMTYyNywgMC4wMTE2NDMsIDAuMDExNjU3LCAwLjAxMTY2NCwgMC4wMTE2NyIsIFwKLSAgICAgICAgICAiMC4wMTA5MDgsIDAuMDExMzUxLCAwLjAxMTQzOCwgMC4wMTE0NjcsIDAuMDExNDg3LCAwLjAxMTUwMywgMC4wMTE1MTYiLCBcCi0gICAgICAgICAgIjAuMDExMTI4LCAwLjAxMTU0NSwgMC4wMTE2NTcsIDAuMDExNzA1LCAwLjAxMTczNiwgMC4wMTE3NTEsIDAuMDExNzY5IiwgXAotICAgICAgICAgICIwLjAxMTY2NSwgMC4wMTIwMDMsIDAuMDEyMTE3LCAwLjAxMjE1NywgMC4wMTIyLCAwLjAxMjIxOCwgMC4wMTIyNDEiLCBcCi0gICAgICAgICAgIjAuMDEyMjQsIDAuMDEyNTUsIDAuMDEyNjY5LCAwLjAxMjcxNCwgMC4wMTI3NiwgMC4wMTI3ODUsIDAuMDEyODA4IiwgXAotICAgICAgICAgICIwLjAxMzQzOSwgMC4wMTM2MjgsIDAuMDEzNzMyLCAwLjAxMzc4NCwgMC4wMTM4MjgsIDAuMDEzODU2LCAwLjAxMzg3NyIsIFwKLSAgICAgICAgICAiMC4wMTQ0NTEsIDAuMDE0NjM4LCAwLjAxNDc1MSwgMC4wMTQ4LCAwLjAxNDg1MywgMC4wMTQ4ODYsIDAuMDE0OTExIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMTQxMjEsIDAuMDg0MTIwOSwgMC4xNTQxMjEsIDAuMjA0MTIxLCAwLjI4NDEyMSwgMC4zNTQxMjEsIDAuNDU0MTIxIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjExMSwgMC4wMjE3MzgsIDAuMDIxODQ0LCAwLjAyMTg3OCwgMC4wMjE5MDcsIDAuMDIxOTIzLCAwLjAyMTkzNyIsIFwKLSAgICAgICAgICAiMC4wMjEwODUsIDAuMDIxNTkxLCAwLjAyMTcyLCAwLjAyMTc2MywgMC4wMjE4MDMsIDAuMDIxODI0LCAwLjAyMTg0MiIsIFwKLSAgICAgICAgICAiMC4wMjE2NjksIDAuMDIxODQxLCAwLjAyMTk1MSwgMC4wMjE5OCwgMC4wMjIwMjcsIDAuMDIyMDQ5LCAwLjAyMjA3IiwgXAotICAgICAgICAgICIwLjAyMjY0OCwgMC4wMjIzNTYsIDAuMDIyNDI0LCAwLjAyMjQ1MywgMC4wMjI0ODIsIDAuMDIyNDk3LCAwLjAyMjUxNCIsIFwKLSAgICAgICAgICAiMC4wMjM3MTEsIDAuMDIzMDQsIDAuMDIzMDM5LCAwLjAyMzA0LCAwLjAyMzA1MywgMC4wMjMwNzEsIDAuMDIzMDc2IiwgXAotICAgICAgICAgICIwLjAyNTE4LCAwLjAyNDIwMiwgMC4wMjQxMzcsIDAuMDI0MTI2LCAwLjAyNDEyMSwgMC4wMjQxMjUsIDAuMDI0MTI3IiwgXAotICAgICAgICAgICIwLjAyNjUzMywgMC4wMjUzNjQsIDAuMDI1MjQ1LCAwLjAyNTIxLCAwLjAyNTE4OCwgMC4wMjUxNzYsIDAuMDI1MTY5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiT0UiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDE0MTI1LCAwLjA4NDEyNSwgMC4xNTQxMjUsIDAuMjA0MTI1LCAwLjI4NDEyNSwgMC4zNTQxMjUsIDAuNDU0MTI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTA3MjYsIDAuMDEwNzE4LCAwLjAxMDcxNSwgMC4wMTA3MDcsIDAuMDEwNjk4LCAwLjAxMDY5MiwgMC4wMTA2NjYiLCBcCi0gICAgICAgICAgIjAuMDEwNjg1LCAwLjAxMDY4LCAwLjAxMDY3NywgMC4wMTA2NjgsIDAuMDEwNjU1LCAwLjAxMDY1MywgMC4wMTA2NDQiLCBcCi0gICAgICAgICAgIjAuMDEwOTUyLCAwLjAxMDk0MywgMC4wMTA5MzYsIDAuMDEwOTI4LCAwLjAxMDkyMywgMC4wMTA5MTksIDAuMDEwOTEyIiwgXAotICAgICAgICAgICIwLjAxMTMyOSwgMC4wMTEzMjEsIDAuMDExMzEyLCAwLjAxMTMwOCwgMC4wMTEzMDUsIDAuMDExMjg4LCAwLjAxMTI5MSIsIFwKLSAgICAgICAgICAiMC4wMTE3MzUsIDAuMDExNzI4LCAwLjAxMTcyMywgMC4wMTE3MiwgMC4wMTE2OTgsIDAuMDExNzA4LCAwLjAxMTY4NyIsIFwKLSAgICAgICAgICAiMC4wMTI0OTIsIDAuMDEyNDkxLCAwLjAxMjQ4MywgMC4wMTI0NzQsIDAuMDEyNDU4LCAwLjAxMjQ2NywgMC4wMTI0NTgiLCBcCi0gICAgICAgICAgIjAuMDEzMjE0LCAwLjAxMzI0MywgMC4wMTMyNDMsIDAuMDEzMjI3LCAwLjAxMzE5MiwgMC4wMTMyMjcsIDAuMDEzMTU3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMTQxMjEsIDAuMDg0MTIwOSwgMC4xNTQxMjEsIDAuMjA0MTIxLCAwLjI4NDEyMSwgMC4zNTQxMjEsIDAuNDU0MTIxIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTExNDksIDAuMDExMTQ5LCAwLjAxMTE0OSwgMC4wMTExNDksIDAuMDExMTQ5LCAwLjAxMTE0OSwgMC4wMTExNDgiLCBcCi0gICAgICAgICAgIjAuMDExMTQ4LCAwLjAxMTE0OSwgMC4wMTExNDksIDAuMDExMTQ4LCAwLjAxMTE0OSwgMC4wMTExNDksIDAuMDExMTQ5IiwgXAotICAgICAgICAgICIwLjAxMTI0NCwgMC4wMTEyNDcsIDAuMDExMjQ5LCAwLjAxMTI0OSwgMC4wMTEyNDksIDAuMDExMjQ5LCAwLjAxMTI0OSIsIFwKLSAgICAgICAgICAiMC4wMTEzOTMsIDAuMDExMzkyLCAwLjAxMTM5MiwgMC4wMTEzOTIsIDAuMDExMzkzLCAwLjAxMTM5MSwgMC4wMTEzOTIiLCBcCi0gICAgICAgICAgIjAuMDExNTM5LCAwLjAxMTUzNywgMC4wMTE1MzgsIDAuMDExNTM2LCAwLjAxMTUzNiwgMC4wMTE1MzcsIDAuMDExNTM2IiwgXAotICAgICAgICAgICIwLjAxMTgyNSwgMC4wMTE4MjYsIDAuMDExODI1LCAwLjAxMTgyNCwgMC4wMTE4MjYsIDAuMDExODI0LCAwLjAxMTgyNCIsIFwKLSAgICAgICAgICAiMC4wMTIwNzMsIDAuMDEyMDc0LCAwLjAxMjA3NCwgMC4wMTIwNzIsIDAuMDEyMDczLCAwLjAxMjA3LCAwLjAxMjA3MyIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogVEJVRlhMICoKLSAqIC0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoVEJVRlhMKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMzQ4NDgzOwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE1MTc4MzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE1MTcyODsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE1MTc4MzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA1NjUsIDAuMDAwNTgzLCAwLjAwMDU4NSwgMC4wMDA1ODYsIDAuMDAwNTg2LCAwLjAwMDU4NywgMC4wMDA1ODciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA2MTcsIDAuMDAwNjA2LCAwLjAwMDYwNCwgMC4wMDA2MDMsIDAuMDAwNjAyLCAwLjAwMDYwMSwgMC4wMDA2MDEiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKE9FKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDEyMzc4MTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDEyMzc2OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTIzNzgxOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihzY2FsYXIpIHsKLSAgICAgICAgdmFsdWVzKCIwIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzNjQxLCAwLjAwMzY2OSwgMC4wMDM3OTgsIDAuMDA0MDI0LCAwLjAwNDI2NSwgMC4wMDQ2NDQsIDAuMDA1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDQ2NDUyNzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA0NjQ1Mjc7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNDYzODI2OwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMTk5NzE2OwotICAgIGZ1bmN0aW9uIDogIkEiOwotICAgIHRocmVlX3N0YXRlIDogIighT0UpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxMDQ2NDUsIDAuMDEyNDY0NSwgMC4wMzA0NjQ1LCAwLjA2MDQ2NDUsIDAuMDkwNDY0NSwgMC4xNjA0NjUsIDAuMjAwNDY1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzY4MTYsIDAuMDg3MzQsIDAuMTgyMDYyLCAwLjMzOTkyLCAwLjQ5Nzc1MywgMC44NjYxMDcsIDEuMDc2MzQiLCBcCi0gICAgICAgICAgIjAuMDgyNjc3LCAwLjA5MzIwNiwgMC4xODc5MzIsIDAuMzQ1NzM0LCAwLjUwMzY1OCwgMC44NzE3ODYsIDEuMDgyMjQiLCBcCi0gICAgICAgICAgIjAuMDg4NzEzLCAwLjA5OTIzNywgMC4xOTM5NTYsIDAuMzUxNzQ3LCAwLjUwOTU1OSwgMC44Nzc3NTksIDEuMDg4MTciLCBcCi0gICAgICAgICAgIjAuMDkzNDYyLCAwLjEwMzk5MiwgMC4xOTg2ODksIDAuMzU2NTQsIDAuNTE0MzAxLCAwLjg4MjQ3NCwgMS4wOTI4OSIsIFwKLSAgICAgICAgICAiMC4wOTc1NjYsIDAuMTA4MTEyLCAwLjIwMjgyOSwgMC4zNjA2MDgsIDAuNTE4NDkyLCAwLjg4NjY2LCAxLjA5NzAyIiwgXAotICAgICAgICAgICIwLjEwMzIzLCAwLjExMzc3NiwgMC4yMDg1MTEsIDAuMzY2MzIxLCAwLjUyNDEwOCwgMC44OTI0NiwgMS4xMDI3OSIsIFwKLSAgICAgICAgICAiMC4xMDc2MzEsIDAuMTE4MTc1LCAwLjIxMjkzOCwgMC4zNzA3NDUsIDAuNTI4NTA4LCAwLjg5NjY4MiwgMS4xMDcxMSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxMDQ2NDUsIDAuMDEyNDY0NSwgMC4wMzA0NjQ1LCAwLjA2MDQ2NDUsIDAuMDkwNDY0NSwgMC4xNjA0NjUsIDAuMjAwNDY1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTcxOTcsIDAuMTM5MDAxLCAwLjMzODQwMiwgMC42Njk4ODEsIDEuMDAxOTQsIDEuNzc2ODEsIDIuMjIyOSIsIFwKLSAgICAgICAgICAiMC4xMTcyMTcsIDAuMTM5MjIxLCAwLjMzODMzNCwgMC42Njk3NzgsIDEuMDAxOTcsIDEuNzc2NjMsIDIuMjIyNzkiLCBcCi0gICAgICAgICAgIjAuMTE3MzgzLCAwLjEzOTM2NywgMC4zMzc5NDYsIDAuNjcwMTc2LCAxLjAwMjU2LCAxLjc3NzY3LCAyLjIyMDY4IiwgXAotICAgICAgICAgICIwLjExNzY1MiwgMC4xMzk0NzQsIDAuMzM4Mjk3LCAwLjY3MDcxMSwgMS4wMDMxNywgMS43Nzg5NywgMi4yMjA0OSIsIFwKLSAgICAgICAgICAiMC4xMTc5MzEsIDAuMTM5Njk1LCAwLjMzNzg2MiwgMC42NzAyMzIsIDEuMDAzMTgsIDEuNzc5MDIsIDIuMjIyNDgiLCBcCi0gICAgICAgICAgIjAuMTE4NTI4LCAwLjE0MDExOCwgMC4zMzgxNTgsIDAuNjY5OTc3LCAxLjAwMzAzLCAxLjc3OSwgMi4yMjIzIiwgXAotICAgICAgICAgICIwLjExOTEwOCwgMC4xNDA3MjcsIDAuMzM4MDM1LCAwLjY3MDE3NywgMS4wMDI1MSwgMS43Nzg2MywgMi4yMjA3NiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxMDQ2MzgsIDAuMDEyNDYzOCwgMC4wMzA0NjM4LCAwLjA2MDQ2MzgsIDAuMDkwNDYzOCwgMC4xNjA0NjQsIDAuMjAwNDY0Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzIxNTgsIDAuMDgxODExLCAwLjE2ODY3NiwgMC4zMTMzNjcsIDAuNDU4MDQ4LCAwLjc5NTY1LCAwLjk4ODU2MSIsIFwKLSAgICAgICAgICAiMC4wNzc1MzEsIDAuMDg3MTg2LCAwLjE3NDA0NiwgMC4zMTg3MjgsIDAuNDYzNDI3LCAwLjgwMTAzMSwgMC45OTM5NTEiLCBcCi0gICAgICAgICAgIjAuMDgyNTY4LCAwLjA5MjIyMiwgMC4xNzkwNjUsIDAuMzIzNzc0LCAwLjQ2ODQ1MywgMC44MDYxNDIsIDAuOTk4OTc2IiwgXAotICAgICAgICAgICIwLjA4NjQxMiwgMC4wOTYwNjUsIDAuMTgyOTE4LCAwLjMyNzYzNiwgMC40NzIzMTcsIDAuODA5OTE1LCAxLjAwMjgyIiwgXAotICAgICAgICAgICIwLjA4OTQ4OSwgMC4wOTkxNzgsIDAuMTg2MDM1LCAwLjMzMDcyMywgMC40NzUzODksIDAuODEzMDg4LCAxLjAwNTk3IiwgXAotICAgICAgICAgICIwLjA5NDAxNywgMC4xMDM2OTQsIDAuMTkwNjA5LCAwLjMzNTMyLCAwLjQ4MDAyMSwgMC44MTc1NiwgMS4wMTA1NCIsIFwKLSAgICAgICAgICAiMC4wOTc0NTEsIDAuMTA3MTI3LCAwLjE5NDA4NCwgMC4zMzg3NjksIDAuNDgzNDM2LCAwLjgyMTA5OSwgMS4wMTM5NSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxMDQ2MzgsIDAuMDEyNDYzOCwgMC4wMzA0NjM4LCAwLjA2MDQ2MzgsIDAuMDkwNDYzOCwgMC4xNjA0NjQsIDAuMjAwNDY0Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDQ4NTUsIDAuMTI0NCwgMC4zMDE5NiwgMC42MDAwNzcsIDAuODk2MzY5LCAxLjU4OTc3LCAxLjk4NzciLCBcCi0gICAgICAgICAgIjAuMTA0OTc5LCAwLjEyNDU5MiwgMC4zMDIwNjMsIDAuNTk5ODAyLCAwLjg5NjQzMywgMS41ODk2NiwgMS45ODgyNCIsIFwKLSAgICAgICAgICAiMC4xMDUxNTUsIDAuMTI0ODc1LCAwLjMwMjU1LCAwLjU5OTk5LCAwLjg5NzQyNywgMS41OTE5NCwgMS45ODgyMSIsIFwKLSAgICAgICAgICAiMC4xMDU1ODcsIDAuMTI0OTkzLCAwLjMwMjUxLCAwLjU5OTg0NywgMC44OTc0NzYsIDEuNTkxNiwgMS45ODgyMSIsIFwKLSAgICAgICAgICAiMC4xMDU4MTQsIDAuMTI1Mjc0LCAwLjMwMjMwNiwgMC41OTk2NzIsIDAuODk3NDA0LCAxLjU5MTgxLCAxLjk4ODQ2IiwgXAotICAgICAgICAgICIwLjEwNjQ5NCwgMC4xMjU3MzMsIDAuMzAyNTA0LCAwLjU5OTEzOCwgMC44OTY5MDgsIDEuNTkxMzksIDEuOTg0NjEiLCBcCi0gICAgICAgICAgIjAuMTA2OTgyLCAwLjEyNjIzOCwgMC4zMDI1ODYsIDAuNTk5MjYzLCAwLjg5NjE1LCAxLjU5MTAxLCAxLjk4NzkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiT0UiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHRocmVlX3N0YXRlX2VuYWJsZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMTA0NjQ1LCAwLjAxMjQ2NDUsIDAuMDMwNDY0NSwgMC4wNjA0NjQ1LCAwLjA5MDQ2NDUsIDAuMTYwNDY1LCAwLjIwMDQ2NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc1MjIyLCAwLjA4NTc1MiwgMC4xODA0OTUsIDAuMzM4MzA3LCAwLjQ5NjE3NCwgMC44NjQ1MDIsIDEuMDc0NjkiLCBcCi0gICAgICAgICAgIjAuMDgyNjE4LCAwLjA5MzE0NywgMC4xODc4OTMsIDAuMzQ1NzI2LCAwLjUwMzU1NiwgMC44NzE4NjQsIDEuMDgyMzYiLCBcCi0gICAgICAgICAgIjAuMDkwMjI5LCAwLjEwMDc1NSwgMC4xOTU0NzcsIDAuMzUzMzMyLCAwLjUxMTE1NiwgMC44Nzk0NjcsIDEuMDg5OTciLCBcCi0gICAgICAgICAgIjAuMDk2MDM2LCAwLjEwNjU2MiwgMC4yMDEyOTYsIDAuMzU5MTE4LCAwLjUxNjk4OSwgMC44ODUzMDIsIDEuMDk1NzIiLCBcCi0gICAgICAgICAgIjAuMTAwODQ2LCAwLjExMTM4OSwgMC4yMDYwNzcsIDAuMzYzOTI3LCAwLjUyMTc3MywgMC44OTAwODQsIDEuMTAwNjEiLCBcCi0gICAgICAgICAgIjAuMTA3NTA5LCAwLjExODA1NywgMC4yMTI4NDksIDAuMzcwNzQ4LCAwLjUyODYzNSwgMC44OTY4NjIsIDEuMTA3MzQiLCBcCi0gICAgICAgICAgIjAuMTEyNzcxLCAwLjEyMzI3MiwgMC4yMTgxMjgsIDAuMzc2MDcsIDAuNTMzODgzLCAwLjkwMjE0OCwgMS4xMTI1OCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxMDQ2NDUsIDAuMDEyNDY0NSwgMC4wMzA0NjQ1LCAwLjA2MDQ2NDUsIDAuMDkwNDY0NSwgMC4xNjA0NjUsIDAuMjAwNDY1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTczNTksIDAuMTM5MzkzLCAwLjMzODY4NCwgMC42NzA5MTksIDEuMDAyMTgsIDEuNzc3MTUsIDIuMjI0MDEiLCBcCi0gICAgICAgICAgIjAuMTE3MjUyLCAwLjEzOTM5OCwgMC4zMzg2MzQsIDAuNjcxNDIyLCAxLjAwMzQ0LCAxLjc3OTQ2LCAyLjIyMjQ4IiwgXAotICAgICAgICAgICIwLjExNzYxNiwgMC4xMzk0NzMsIDAuMzM4Mjk0LCAwLjY3MDU3NiwgMS4wMDM1OCwgMS43Nzk1MSwgMi4yMjI0IiwgXAotICAgICAgICAgICIwLjExNzkxNiwgMC4xMzk3NjksIDAuMzM4MTYzLCAwLjY3MTQxOSwgMS4wMDQyNiwgMS43NzgxMSwgMi4yMjI5NiIsIFwKLSAgICAgICAgICAiMC4xMTgyMzMsIDAuMTM5OTc5LCAwLjMzODc0NCwgMC42NzE0MDQsIDEuMDA0MjcsIDEuNzc5NTMsIDIuMjIxMzkiLCBcCi0gICAgICAgICAgIjAuMTE4NzkxLCAwLjE0MDM4MywgMC4zMzg2MjIsIDAuNjcwNTQyLCAxLjAwNDIzLCAxLjc4MDY1LCAyLjIyMjgiLCBcCi0gICAgICAgICAgIjAuMTE5MzksIDAuMTQxMDQsIDAuMzM4NTY3LCAwLjY3MDkxNSwgMS4wMDQzNCwgMS43ODA5MywgMi4yMjQ3OCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxMDQ2MzgsIDAuMDEyNDYzOCwgMC4wMzA0NjM4LCAwLjA2MDQ2MzgsIDAuMDkwNDYzOCwgMC4xNjA0NjQsIDAuMjAwNDY0Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzc5NTEsIDAuMDg3NjAyLCAwLjE3NDQ2OSwgMC4zMTkyMjEsIDAuNDYzOTk3LCAwLjgwMTc0NCwgMC45OTQzMzEiLCBcCi0gICAgICAgICAgIjAuMDg1MDYsIDAuMDk0NzE0LCAwLjE4MTU5NywgMC4zMjYyOTgsIDAuNDcxMDkxLCAwLjgwODczNywgMS4wMDE3NSIsIFwKLSAgICAgICAgICAiMC4wOTA4MzQsIDAuMTAwNDgxLCAwLjE4NzMyMSwgMC4zMzIwNDYsIDAuNDc2NzgxLCAwLjgxNDQ1NywgMS4wMDc0MSIsIFwKLSAgICAgICAgICAiMC4wOTUwNzEsIDAuMTA0NzIxLCAwLjE5MTU2NCwgMC4zMzYyNzIsIDAuNDgwOTk5LCAwLjgxODY4MSwgMS4wMTE3MSIsIFwKLSAgICAgICAgICAiMC4wOTg0ODgsIDAuMTA4MTM2LCAwLjE5NDk2MSwgMC4zMzk2ODMsIDAuNDg0NDA1LCAwLjgyMjA5NiwgMS4wMTUxMyIsIFwKLSAgICAgICAgICAiMC4xMDMxNjcsIDAuMTEyODY1LCAwLjE5OTYzMSwgMC4zNDQzNDIsIDAuNDg5MTA3LCAwLjgyNjc0OSwgMS4wMTk3MiIsIFwKLSAgICAgICAgICAiMC4xMDY2MywgMC4xMTYzMzIsIDAuMjAzMTQ4LCAwLjM0NzgwMSwgMC40OTI1MTgsIDAuODMwMTk5LCAxLjAyMzIxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEwNDYzOCwgMC4wMTI0NjM4LCAwLjAzMDQ2MzgsIDAuMDYwNDYzOCwgMC4wOTA0NjM4LCAwLjE2MDQ2NCwgMC4yMDA0NjQiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwNDk3OSwgMC4xMjQ3NTYsIDAuMzAxODQ0LCAwLjU5ODU3NiwgMC44OTYyMDksIDEuNTkwNTcsIDEuOTg0MzUiLCBcCi0gICAgICAgICAgIjAuMTA1MTAzLCAwLjEyNDc0NiwgMC4zMDIzMzMsIDAuNTk5ODMzLCAwLjg5NjY1NywgMS41OTEzOCwgMS45ODY5NCIsIFwKLSAgICAgICAgICAiMC4xMDUwODksIDAuMTI0NTUxLCAwLjMwMjQzMiwgMC42MDAzODcsIDAuODk3MjgsIDEuNTkyOTUsIDEuOTg5ODMiLCBcCi0gICAgICAgICAgIjAuMTA0OTY3LCAwLjEyNDYxMywgMC4zMDIzMDQsIDAuNTk5Njc3LCAwLjg5NzE0NSwgMS41OTA4NSwgMS45ODY3NiIsIFwKLSAgICAgICAgICAiMC4xMDQ5NTYsIDAuMTI0NTA3LCAwLjMwMjM3MiwgMC41OTk4MzksIDAuODk3MDUyLCAxLjU5MTAyLCAxLjk4NzI2IiwgXAotICAgICAgICAgICIwLjEwNTEwOSwgMC4xMjQ0OTcsIDAuMzAyMjI5LCAwLjU5OTY2NywgMC44OTc0NzcsIDEuNTkwOTcsIDEuOTg3NDMiLCBcCi0gICAgICAgICAgIjAuMTA1MDc5LCAwLjEyNDcxMywgMC4zMDE5ODMsIDAuNTk5NDgyLCAwLjg5NjcyNiwgMS41OTIxOCwgMS45ODk0NiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJPRSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogdGhyZWVfc3RhdGVfZGlzYWJsZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAyMDc3NywgMC4wMjc5MTYsIDAuMDMzNzYzLCAwLjAzNzc1OSwgMC4wNDEwNDYsIDAuMDQ1MzE4LCAwLjA0ODMwOCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKHNjYWxhcikgewotICAgICAgICB2YWx1ZXMoIjAiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAxMzQ1LCAwLjAyMTE4MiwgMC4wMjc1MDYsIDAuMDMyMTA2LCAwLjAzNTY1MiwgMC4wNDAyMzksIDAuMDQzNDAyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oc2NhbGFyKSB7Ci0gICAgICAgIHZhbHVlcygiMCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEwNDY0NSwgMC4wMTI0NjQ1LCAwLjAzMDQ2NDUsIDAuMDYwNDY0NSwgMC4wOTA0NjQ1LCAwLjE2MDQ2NSwgMC4yMDA0NjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTI5MSwgMC4wMDEyOTEsIDAuMDAxMjksIDAuMDAxMjkyLCAwLjAwMTI5MiwgMC4wMDEyOTIsIDAuMDAxMjkyIiwgXAotICAgICAgICAgICIwLjAwMTI2MSwgMC4wMDEyNjEsIDAuMDAxMjY0LCAwLjAwMTI2NSwgMC4wMDEyNjUsIDAuMDAxMjY2LCAwLjAwMTI2NCIsIFwKLSAgICAgICAgICAiMC4wMDEzNjMsIDAuMDAxMzY0LCAwLjAwMTM2NywgMC4wMDEzNjksIDAuMDAxMzY4LCAwLjAwMTM2OCwgMC4wMDEzNjkiLCBcCi0gICAgICAgICAgIjAuMDAxNTMyLCAwLjAwMTUzMywgMC4wMDE1MzYsIDAuMDAxNTM4LCAwLjAwMTUzNywgMC4wMDE1MzgsIDAuMDAxNTM4IiwgXAotICAgICAgICAgICIwLjAwMTczLCAwLjAwMTczMSwgMC4wMDE3MzUsIDAuMDAxNzM2LCAwLjAwMTczNiwgMC4wMDE3MzYsIDAuMDAxNzM2IiwgXAotICAgICAgICAgICIwLjAwMjA5LCAwLjAwMjA5LCAwLjAwMjA5MywgMC4wMDIwOTUsIDAuMDAyMDk1LCAwLjAwMjA5NiwgMC4wMDIwOTUiLCBcCi0gICAgICAgICAgIjAuMDAyNDMxLCAwLjAwMjQzMSwgMC4wMDI0MzMsIDAuMDAyNDM0LCAwLjAwMjQzNCwgMC4wMDI0MzQsIDAuMDAyNDM0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMTA0NjM4LCAwLjAxMjQ2MzgsIDAuMDMwNDYzOCwgMC4wNjA0NjM4LCAwLjA5MDQ2MzgsIDAuMTYwNDY0LCAwLjIwMDQ2NCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0NTE1LCAwLjAwNDUxNiwgMC4wMDQ1MTgsIDAuMDA0NTE5LCAwLjAwNDUyLCAwLjAwNDUyLCAwLjAwNDUyIiwgXAotICAgICAgICAgICIwLjAwNDQ5OSwgMC4wMDQ1MDEsIDAuMDA0NTA2LCAwLjAwNDUwNywgMC4wMDQ1MDgsIDAuMDA0NTA4LCAwLjAwNDUwOSIsIFwKLSAgICAgICAgICAiMC4wMDQ1OTMsIDAuMDA0NTk1LCAwLjAwNDYsIDAuMDA0NjAyLCAwLjAwNDYwMywgMC4wMDQ2MDQsIDAuMDA0NjA0IiwgXAotICAgICAgICAgICIwLjAwNDc0NCwgMC4wMDQ3NDYsIDAuMDA0NzUxLCAwLjAwNDc1MSwgMC4wMDQ3NTIsIDAuMDA0NzUyLCAwLjAwNDc1MiIsIFwKLSAgICAgICAgICAiMC4wMDQ5MzksIDAuMDA0OTM5LCAwLjAwNDk0LCAwLjAwNDk0MSwgMC4wMDQ5NDEsIDAuMDA0OTQyLCAwLjAwNDk0MiIsIFwKLSAgICAgICAgICAiMC4wMDUyODQsIDAuMDA1MjgzLCAwLjAwNTI4NSwgMC4wMDUyODcsIDAuMDA1Mjg3LCAwLjAwNTI4NywgMC4wMDUyODciLCBcCi0gICAgICAgICAgIjAuMDA1NjI0LCAwLjAwNTYyMiwgMC4wMDU2MiwgMC4wMDU2MTcsIDAuMDA1NjE3LCAwLjAwNTYyLCAwLjAwNTYyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiT0UiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEwNDY0NSwgMC4wMTI0NjQ1LCAwLjAzMDQ2NDUsIDAuMDYwNDY0NSwgMC4wOTA0NjQ1LCAwLjE2MDQ2NSwgMC4yMDA0NjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTI1NiwgMC4wMDEyNiwgMC4wMDEyMzQsIDAuMDAxMjA1LCAwLjAwMTE4MiwgMC4wMDExMTMsIDAuMDAxMDY3IiwgXAotICAgICAgICAgICIwLjAwMTI2LCAwLjAwMTI1MSwgMC4wMDEyMzksIDAuMDAxMjE4LCAwLjAwMTE2NiwgMC4wMDExMDgsIDAuMDAxMDMzIiwgXAotICAgICAgICAgICIwLjAwMTQxOSwgMC4wMDE0MTksIDAuMDAxMzk3LCAwLjAwMTM2MywgMC4wMDEzNDEsIDAuMDAxMjYyLCAwLjAwMTIiLCBcCi0gICAgICAgICAgIjAuMDAxNjI0LCAwLjAwMTYyMywgMC4wMDE2MDgsIDAuMDAxNTgyLCAwLjAwMTU0NCwgMC4wMDE0NzIsIDAuMDAxMzk4IiwgXAotICAgICAgICAgICIwLjAwMTg2NywgMC4wMDE4NTMsIDAuMDAxODU0LCAwLjAwMTgzLCAwLjAwMTc5MiwgMC4wMDE2ODcsIDAuMDAxNjM2IiwgXAotICAgICAgICAgICIwLjAwMjI4LCAwLjAwMjI3OCwgMC4wMDIyNjUsIDAuMDAyMjE5LCAwLjAwMjE4NywgMC4wMDIwOTgsIDAuMDAyMDc5IiwgXAotICAgICAgICAgICIwLjAwMjYzMiwgMC4wMDI2NTUsIDAuMDAyNjQxLCAwLjAwMjU4NSwgMC4wMDI1NDgsIDAuMDAyNDgzLCAwLjAwMjQyNyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEwNDYzOCwgMC4wMTI0NjM4LCAwLjAzMDQ2MzgsIDAuMDYwNDYzOCwgMC4wOTA0NjM4LCAwLjE2MDQ2NCwgMC4yMDA0NjQiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTk0OSwgMC4wMDE5NDksIDAuMDAxOTQ5LCAwLjAwMTk0OSwgMC4wMDE5NDgsIDAuMDAxOTQ4LCAwLjAwMTk0OSIsIFwKLSAgICAgICAgICAiMC4wMDE5NzQsIDAuMDAxOTc0LCAwLjAwMTk3MywgMC4wMDE5NzQsIDAuMDAxOTczLCAwLjAwMTk3MywgMC4wMDE5NzMiLCBcCi0gICAgICAgICAgIjAuMDAyMDU2LCAwLjAwMjA1NiwgMC4wMDIwNTYsIDAuMDAyMDU2LCAwLjAwMjA1NiwgMC4wMDIwNTYsIDAuMDAyMDU2IiwgXAotICAgICAgICAgICIwLjAwMjE3NywgMC4wMDIxNzgsIDAuMDAyMTc4LCAwLjAwMjE3OCwgMC4wMDIxNzgsIDAuMDAyMTc4LCAwLjAwMjE3NyIsIFwKLSAgICAgICAgICAiMC4wMDIzMTQsIDAuMDAyMzE0LCAwLjAwMjMxNCwgMC4wMDIzMTUsIDAuMDAyMzE1LCAwLjAwMjMxNSwgMC4wMDIzMTUiLCBcCi0gICAgICAgICAgIjAuMDAyNTQyLCAwLjAwMjU0NiwgMC4wMDI1NDEsIDAuMDAyNTQxLCAwLjAwMjU0NSwgMC4wMDI1NDEsIDAuMDAyNTQxIiwgXAotICAgICAgICAgICIwLjAwMjgxMiwgMC4wMDI4MTMsIDAuMDAyODE0LCAwLjAwMjgxMiwgMC4wMDI4MTIsIDAuMDAyODEyLCAwLjAwMjgxMyIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBUSUVMTyAqCi0gKiAtLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoVElFTE8pIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4wNDM4NDU5OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WU1M7Ci0gICAgZnVuY3Rpb24gOiAiMCI7Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBUTEFUTkNBWDEyICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKFRMQVROQ0FYMTIpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMi4xMDkzNjsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBjbG9ja19nYXRpbmdfaW50ZWdyYXRlZF9jZWxsIDogImxhdGNoX3Bvc2VkZ2UiOwotICBzdGF0ZXRhYmxlKCIgQ0sgIEUgIiwgIiBFSU5UICIpIHsKLSAgICAgdGFibGUgOiAiICBMICBMIDogLSA6IEwgLCBcCi0gICAgICAgICAgICAgICAgTCAgSCA6IC0gOiBIICwgXAotICAgICAgICAgICAgICAgIEggIC0gOiAtIDogTiAiOwotICB9Ci0gIHBpbihFSU5UKSB7Ci0gICAgZGlyZWN0aW9uIDogaW50ZXJuYWw7Ci0gICAgaW50ZXJuYWxfbm9kZSA6ICJFSU5UIjsKLSAgfQotICBwaW4oQ0spICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDU5NTc4NjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA1OTU3ODY7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNTk1NzM4OwotICAgIGNsb2NrX2dhdGVfY2xvY2tfcGluIDogdHJ1ZTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDQ4MTcsIDAuMDA0ODA2LCAwLjAwNDg4LCAwLjAwNDk3NCwgMC4wMDUwOTQsIDAuMDA1MzE0LCAwLjAwNTUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDYyMjMsIDAuMDA2MjE2LCAwLjAwNjI4NiwgMC4wMDYzODUsIDAuMDA2NTE3LCAwLjAwNjY1OSwgMC4wMDY5NDQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFFIjsKLSAgICAgIHNkZl9jb25kIDogIkUgPT0gMSdiMCI7Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wOTA1NTcsIDAuMDk4NTI0LCAwLjEwNjk4MywgMC4xMTM1MzMsIDAuMTE4NTQ2LCAwLjEyNTUzNywgMC4xMzA0NDciKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEUpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYwOTM2NjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MDg0ODg7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjA5MzY2OwotICAgIGNsb2NrX2dhdGVfZW5hYmxlX3BpbiA6IHRydWU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA1MjQ1LCAwLjAwNTIxMywgMC4wMDUyMzksIDAuMDA1MjksIDAuMDA1MzUyLCAwLjAwNTUxMiwgMC4wMDU2MjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDUyNTIsIDAuMDA1MjI2LCAwLjAwNTI1NCwgMC4wMDUzMDMsIDAuMDA1Mzc3LCAwLjAwNTQ4MiwgMC4wMDU2NjIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMTg3NSwgLTAuMDEzNzUsIC0wLjAwNzUsIC0wLjAwNzUsIC0wLjAwNzUsIC0wLjAwMzc1LCAtMC4wMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxODc1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDEyNSwgLTAuMDA4NzUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTg3NSwgLTAuMDE1LCAtMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDI1LCAtMC4wMjUsIC0wLjAyMTI1LCAtMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAyMTI1LCAtMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDUyNSwgLTAuMDQxMjUsIC0wLjA0MTI1LCAtMC4wMzUsIC0wLjAzNSwgLTAuMDMxMjUsIC0wLjAyODc1IiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDM3NSwgLTAuMDMzNzUsIC0wLjAzMTI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDYyNSwgMC4wMTEyNSwgMC4wMTc1LCAwLjAyMzc1LCAwLjAzLCAwLjA0LCAwLjA0MjUiLCBcCi0gICAgICAgICAgIi0wLjAwNSwgMC4wMDYyNSwgMC4wMTI1LCAwLjAxODc1LCAwLjAyNSwgMC4wMzUsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDExMjUsIDAsIDAuMDA2MjUsIDAuMDEyNSwgMC4wMTg3NSwgMC4wMjg3NSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDExMjUsIC0wLjAwNjI1LCAwLjAwNjI1LCAwLjAxMjUsIDAuMDE4NzUsIDAuMDIyNSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDE3NSwgLTAuMDA2MjUsIDAsIDAuMDA2MjUsIDAuMDEyNSwgMC4wMTYyNSwgMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjAyMTI1LCAtMC4wMTYyNSwgLTAuMDAzNzUsIDAuMDAyNSwgMC4wMDg3NSwgMC4wMTI1LCAwLjAyMTI1IiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLCAwLjAwNjI1LCAwLjAxLCAwLjAxODc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyNSwgMC4wMiwgMC4wMTM3NSwgMC4wMTM3NSwgMC4wMTM3NSwgMC4wMSwgMC4wMDc1IiwgXAotICAgICAgICAgICIwLjAzLCAwLjAyNSwgMC4wMjUsIDAuMDE4NzUsIDAuMDE4NzUsIDAuMDE1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMDM2MjUsIDAuMDMxMjUsIDAuMDMxMjUsIDAuMDI1LCAwLjAyNSwgMC4wMjEyNSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4wNDI1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDMxMjUsIDAuMDMxMjUsIDAuMDI3NSwgMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMDQ4NzUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyNzUsIDAuMDI1IiwgXAotICAgICAgICAgICIwLjA1ODc1LCAwLjA0NzUsIDAuMDQ3NSwgMC4wNDEyNSwgMC4wNDEyNSwgMC4wMzc1LCAwLjAzNSIsIFwKLSAgICAgICAgICAiMC4wNjEyNSwgMC4wNTYyNSwgMC4wNSwgMC4wNDM3NSwgMC4wNDM3NSwgMC4wNCwgMC4wMzc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAsIC0wLjAwNSwgLTAuMDExMjUsIC0wLjAxNzUsIC0wLjAyMzc1LCAtMC4wMzM3NSwgLTAuMDM2MjUiLCBcCi0gICAgICAgICAgIjAuMDExMjUsIDAsIC0wLjAwNjI1LCAtMC4wMTI1LCAtMC4wMTg3NSwgLTAuMDI4NzUsIC0wLjAzMTI1IiwgXAotICAgICAgICAgICIwLjAxNzUsIDAuMDA2MjUsIDAsIC0wLjAwNjI1LCAtMC4wMTI1LCAtMC4wMjI1LCAtMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMDE3NSwgMC4wMTI1LCAwLCAtMC4wMDYyNSwgLTAuMDEyNSwgLTAuMDE2MjUsIC0wLjAyNSIsIFwKLSAgICAgICAgICAiMC4wMjM3NSwgMC4wMTI1LCAwLjAwNjI1LCAwLCAtMC4wMDYyNSwgLTAuMDEsIC0wLjAxODc1IiwgXAotICAgICAgICAgICIwLjAyNzUsIDAuMDIyNSwgMC4wMSwgMC4wMDM3NSwgLTAuMDAyNSwgLTAuMDA2MjUsIC0wLjAxNSIsIFwKLSAgICAgICAgICAiMC4wMywgMC4wMjUsIDAuMDEyNSwgMC4wMDYyNSwgMCwgLTAuMDAzNzUsIC0wLjAxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEVDSykgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiA0LjExODc0OwotICAgIGNsb2NrX2dhdGVfb3V0X3BpbiA6IHRydWU7Ci0gICAgc3RhdGVfZnVuY3Rpb24gOiAiKENLIEVJTlQpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDgzMjM0LCAwLjA4NTk2MSwgMC4wOTgyNjYsIDAuMTA3NDI2LCAwLjExODgyNywgMC4xNDA4MDEsIDAuMTU0MzMiLCBcCi0gICAgICAgICAgIjAuMDkxMzcyLCAwLjA5NDEwOSwgMC4xMDYzNTcsIDAuMTE1NTI3LCAwLjEyNjk1OCwgMC4xNDg5MjIsIDAuMTYyNDciLCBcCi0gICAgICAgICAgIjAuMTAwMTEsIDAuMTAyODQ1LCAwLjExNTEyNCwgMC4xMjQyODQsIDAuMTM1NzA2LCAwLjE1NzY3NSwgMC4xNzEyMiIsIFwKLSAgICAgICAgICAiMC4xMDY3OTMsIDAuMTA5NTM1LCAwLjEyMTgsIDAuMTMwOTU5LCAwLjE0MjM5MiwgMC4xNjQzNzUsIDAuMTc3OTA4IiwgXAotICAgICAgICAgICIwLjExMjEwMSwgMC4xMTQ4MTMsIDAuMTI3MTA0LCAwLjEzNjIzMSwgMC4xNDc2MzEsIDAuMTY5NTY4LCAwLjE4MzA5OCIsIFwKLSAgICAgICAgICAiMC4xMTkzODksIDAuMTIyMDk5LCAwLjEzNDM4MywgMC4xNDM1MTIsIDAuMTU0ODkxLCAwLjE3NjgzOSwgMC4xOTAzODUiLCBcCi0gICAgICAgICAgIjAuMTI0ODIyLCAwLjEyNzU2NCwgMC4xMzk2NjksIDAuMTQ4ODI0LCAwLjE2MDQyNCwgMC4xODI0MDEsIDAuMTk1NzUiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE4ODIxLCAwLjAyMjQ5MiwgMC4wNDEzMTcsIDAuMDU3NjE4LCAwLjA3OTQzOSwgMC4xMjQwNTQsIDAuMTUyMjUzIiwgXAotICAgICAgICAgICIwLjAxODgyNiwgMC4wMjI0NDYsIDAuMDQxMzIyLCAwLjA1NzU4MSwgMC4wNzk1LCAwLjEyMzk5NiwgMC4xNTIxNjQiLCBcCi0gICAgICAgICAgIjAuMDE4ODc4LCAwLjAyMjUwOCwgMC4wNDEyOCwgMC4wNTc1NzcsIDAuMDc5NDk5LCAwLjEyMzk1OCwgMC4xNTIxNTUiLCBcCi0gICAgICAgICAgIjAuMDE4ODYyLCAwLjAyMjUwNCwgMC4wNDEzMTEsIDAuMDU3NTg0LCAwLjA3OTQ5OSwgMC4xMjQwMzgsIDAuMTUyMTE5IiwgXAotICAgICAgICAgICIwLjAxODkxLCAwLjAyMjU3NiwgMC4wNDEzNDUsIDAuMDU3NTksIDAuMDc5NTE4LCAwLjEyNDA3MywgMC4xNTIxNTIiLCBcCi0gICAgICAgICAgIjAuMDE4OTEsIDAuMDIyNTQ3LCAwLjA0MTM0NCwgMC4wNTc2MDIsIDAuMDc5NTA4LCAwLjEyNDA2NCwgMC4xNTIyMzkiLCBcCi0gICAgICAgICAgIjAuMDE4OTI3LCAwLjAyMjQ5MywgMC4wNDEzNDYsIDAuMDU3NzIxLCAwLjA3OTUxNiwgMC4xMjQwMjcsIDAuMTUyMjY5Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3Mzk5NCwgMC4wNzYyNzUsIDAuMDg3MDQsIDAuMDk1NDk0LCAwLjEwNjM5NSwgMC4xMjc4MzIsIDAuMTQxMTkyIiwgXAotICAgICAgICAgICIwLjA4MTk2NywgMC4wODQyMzYsIDAuMDk1LCAwLjEwMzQ2LCAwLjExNDM1MSwgMC4xMzU3ODcsIDAuMTQ5MTQ4IiwgXAotICAgICAgICAgICIwLjA5MDQ0OCwgMC4wOTI3MzcsIDAuMTAzNDk1LCAwLjExMTk1MSwgMC4xMjI4NDgsIDAuMTQ0Mjg2LCAwLjE1NzY0NSIsIFwKLSAgICAgICAgICAiMC4wOTcwMjgsIDAuMDk5MzEyLCAwLjExMDA1MywgMC4xMTg1MzYsIDAuMTI5NDMxLCAwLjE1MDg3NywgMC4xNjQyMzciLCBcCi0gICAgICAgICAgIjAuMTAyMTA3LCAwLjEwNDM3NiwgMC4xMTUxNSwgMC4xMjM2MjQsIDAuMTM0NDk5LCAwLjE1NTkzNSwgMC4xNjkyOTQiLCBcCi0gICAgICAgICAgIjAuMTA5MTQsIDAuMTExMzk0LCAwLjEyMjE1NSwgMC4xMzA2MzQsIDAuMTQxNTIxLCAwLjE2Mjk2NCwgMC4xNzYzMiIsIFwKLSAgICAgICAgICAiMC4xMTQwMzMsIDAuMTE2MzExLCAwLjEyNzA3OSwgMC4xMzU1NDIsIDAuMTQ2NDQ0LCAwLjE2Nzg4MSwgMC4xODEyNTkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE0OTIsIDAuMDE4MTIsIDAuMDM1NjYxLCAwLjA1MTM0NiwgMC4wNzI3MDIsIDAuMTE2MDUxLCAwLjE0MzU0MSIsIFwKLSAgICAgICAgICAiMC4wMTQ5MjcsIDAuMDE4MTMyLCAwLjAzNTY2OSwgMC4wNTEzNTcsIDAuMDcyNzA3LCAwLjExNjEzNywgMC4xNDMzNzYiLCBcCi0gICAgICAgICAgIjAuMDE0OTIxLCAwLjAxODE0NSwgMC4wMzU2NjMsIDAuMDUxMzE5LCAwLjA3MjY5OSwgMC4xMTYwNDcsIDAuMTQzNTE4IiwgXAotICAgICAgICAgICIwLjAxNDk1OCwgMC4wMTgxMzksIDAuMDM1NjQsIDAuMDUxMzUyLCAwLjA3MjcxLCAwLjExNjE3LCAwLjE0MzU1MiIsIFwKLSAgICAgICAgICAiMC4wMTQ5MzksIDAuMDE4MTQsIDAuMDM1NjM2LCAwLjA1MTM4MywgMC4wNzI3NDcsIDAuMTE2MjE2LCAwLjE0MzU3MyIsIFwKLSAgICAgICAgICAiMC4wMTUwNCwgMC4wMTgxNzEsIDAuMDM1Njk1LCAwLjA1MTM1MiwgMC4wNzI2NTMsIDAuMTE2MjAzLCAwLjE0MzU0NCIsIFwKLSAgICAgICAgICAiMC4wMTUwMjQsIDAuMDE4MTg0LCAwLjAzNTY4NiwgMC4wNTEzNzEsIDAuMDcyODIsIDAuMTE1OTUsIDAuMTQzMzE2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyMjM0LCAwLjAyMjI1MywgMC4wMjIyNzMsIDAuMDIyMzY4LCAwLjAyMjQ2NiwgMC4wMjI1NzEsIDAuMDIyNjE1IiwgXAotICAgICAgICAgICIwLjAyMjMyNCwgMC4wMjIyMjksIDAuMDIyMjUxLCAwLjAyMjM1NiwgMC4wMjI0NTQsIDAuMDIyNTYxLCAwLjAyMjU5MyIsIFwKLSAgICAgICAgICAiMC4wMjIzODUsIDAuMDIyMjg5LCAwLjAyMjMyNiwgMC4wMjI0MzMsIDAuMDIyNTI5LCAwLjAyMjYzNCwgMC4wMjI2NjkiLCBcCi0gICAgICAgICAgIjAuMDIyNDY3LCAwLjAyMjM3MiwgMC4wMjIzOTgsIDAuMDIyNTAxLCAwLjAyMjYwNCwgMC4wMjI3MTQsIDAuMDIyNzU4IiwgXAotICAgICAgICAgICIwLjAyMjYxNywgMC4wMjI1MzIsIDAuMDIyNTU4LCAwLjAyMjY0OCwgMC4wMjI3NDEsIDAuMDIyODQxLCAwLjAyMjg3OCIsIFwKLSAgICAgICAgICAiMC4wMjI4MzQsIDAuMDIyNjk5LCAwLjAyMjc2MSwgMC4wMjI4MywgMC4wMjI5MjcsIDAuMDIzMDM2LCAwLjAyMzA3MiIsIFwKLSAgICAgICAgICAiMC4wMjI5OTEsIDAuMDIyODk4LCAwLjAyMjk1NiwgMC4wMjMwNDYsIDAuMDIzMTE5LCAwLjAyMzI1MiwgMC4wMjMyNzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjgwMzIsIDAuMDI4MDcxLCAwLjAyODM3NiwgMC4wMjg1NDUsIDAuMDI4NjcyLCAwLjAyODc5NSwgMC4wMjg4MzQiLCBcCi0gICAgICAgICAgIjAuMDI4MDMxLCAwLjAyODA1MywgMC4wMjgzNjYsIDAuMDI4NTM2LCAwLjAyODY2NywgMC4wMjg3ODksIDAuMDI4ODMiLCBcCi0gICAgICAgICAgIjAuMDI4MDksIDAuMDI4MTI5LCAwLjAyODQzNSwgMC4wMjg2MDMsIDAuMDI4NzMyLCAwLjAyODg1NywgMC4wMjg4OTYiLCBcCi0gICAgICAgICAgIjAuMDI4MTA4LCAwLjAyODE1NiwgMC4wMjg0NzgsIDAuMDI4NjUyLCAwLjAyODc4NywgMC4wMjg5MiwgMC4wMjg5NjQiLCBcCi0gICAgICAgICAgIjAuMDI4MjU5LCAwLjAyODI5NiwgMC4wMjg2MTcsIDAuMDI4Nzg4LCAwLjAyODk0MiwgMC4wMjkwNzksIDAuMDI5MTIxIiwgXAotICAgICAgICAgICIwLjAyODQ5MSwgMC4wMjg1MzQsIDAuMDI4ODM4LCAwLjAyOTAwMSwgMC4wMjkxMzIsIDAuMDI5MjYxLCAwLjAyOTMwMyIsIFwKLSAgICAgICAgICAiMC4wMjg2NTYsIDAuMDI4NzE2LCAwLjAyOTAxMiwgMC4wMjkxNzQsIDAuMDI5MywgMC4wMjk0MjYsIDAuMDI5NDY0Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBUTEFUTkNBWDIgKgotICogLS0tLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChUTEFUTkNBWDIpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC42NTcwMjc7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgY2xvY2tfZ2F0aW5nX2ludGVncmF0ZWRfY2VsbCA6ICJsYXRjaF9wb3NlZGdlIjsKLSAgc3RhdGV0YWJsZSgiIENLICBFICIsICIgRUlOVCAiKSB7Ci0gICAgIHRhYmxlIDogIiAgTCAgTCA6IC0gOiBMICwgXAotICAgICAgICAgICAgICAgIEwgIEggOiAtIDogSCAsIFwKLSAgICAgICAgICAgICAgICBIICAtIDogLSA6IE4gIjsKLSAgfQotICBwaW4oRUlOVCkgewotICAgIGRpcmVjdGlvbiA6IGludGVybmFsOwotICAgIGludGVybmFsX25vZGUgOiAiRUlOVCI7Ci0gIH0KLSAgcGluKENLKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2MjY5OTc7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjI2OTk3OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDYyNjg2NzsKLSAgICBjbG9ja19nYXRlX2Nsb2NrX3BpbiA6IHRydWU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyODc3LCAwLjAwMjg3MSwgMC4wMDI5NTIsIDAuMDAzMDYyLCAwLjAwMzE4OCwgMC4wMDM0MjksIDAuMDAzNjIzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzNzk3LCAwLjAwMzgsIDAuMDAzODg3LCAwLjAwMzk4NSwgMC4wMDQxMTgsIDAuMDA0Mzk3LCAwLjAwNDU1NCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUUiOwotICAgICAgc2RmX2NvbmQgOiAiRSA9PSAxJ2IwIjsKLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjA2OTQwNiwgMC4wNzcxMTUsIDAuMDg0NDc2LCAwLjA4OTU3NCwgMC4wOTM5MjIsIDAuMDk5MzM2LCAwLjEwMzMzOCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjA3MDY3OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYwNjA4NzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2MDcwNjc7Ci0gICAgY2xvY2tfZ2F0ZV9lbmFibGVfcGluIDogdHJ1ZTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDI5NCwgMC4wMDI5MSwgMC4wMDI5MzksIDAuMDAzLCAwLjAwMzA2MiwgMC4wMDMyMjIsIDAuMDAzMzQ1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzNTU5LCAwLjAwMzUzOSwgMC4wMDM1NjgsIDAuMDAzNjE3LCAwLjAwMzcwMiwgMC4wMDM4MTcsIDAuMDAzOTUxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDE4NzUsIC0wLjAxMzc1LCAtMC4wMDc1LCAtMC4wMDc1LCAtMC4wMDc1LCAtMC4wMDM3NSwgLTAuMDAxMjUiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDEyNSwgLTAuMDEyNSwgLTAuMDA4NzUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDE4NzUsIC0wLjAxODc1LCAtMC4wMTUsIC0wLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMjEyNSwgLTAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzMTI1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMjUsIC0wLjAyMTI1LCAtMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDQ2MjUsIC0wLjA0MTI1LCAtMC4wMzUsIC0wLjAzNSwgLTAuMDI4NzUsIC0wLjAzMTI1LCAtMC4wMjg3NSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzc1LCAtMC4wMzc1LCAtMC4wMzM3NSwgLTAuMDMxMjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMDYyNSwgMC4wMDUsIDAuMDExMjUsIDAuMDE3NSwgMC4wMjM3NSwgMC4wMjc1LCAwLjAzIiwgXAotICAgICAgICAgICItMC4wMTEyNSwgMCwgMC4wMDYyNSwgMC4wMTI1LCAwLjAxODc1LCAwLjAyMjUsIDAuMDI1IiwgXAotICAgICAgICAgICItMC4wMTc1LCAtMC4wMDYyNSwgMCwgMC4wMDYyNSwgMC4wMTI1LCAwLjAxNjI1LCAwLjAxODc1IiwgXAotICAgICAgICAgICItMC4wMTc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMCwgMC4wMDYyNSwgMC4wMSwgMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAsIDAsIDAuMDEsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDI3NSwgLTAuMDIyNSwgLTAuMDEsIC0wLjAxLCAtMC4wMDM3NSwgMC4wMDYyNSwgMC4wMDg3NSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAtMC4wMDI1LCAwLjAwNjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyNSwgMC4wMiwgMC4wMTM3NSwgMC4wMTM3NSwgMC4wMTM3NSwgMC4wMSwgMC4wMDc1IiwgXAotICAgICAgICAgICIwLjAzLCAwLjAyNSwgMC4wMTg3NSwgMC4wMTg3NSwgMC4wMTg3NSwgMC4wMTUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4wMzYyNSwgMC4wMzEyNSwgMC4wMjUsIDAuMDI1LCAwLjAyNSwgMC4wMjEyNSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4wNDI1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDMxMjUsIDAuMDI1LCAwLjAyNzUsIDAuMDI1IiwgXAotICAgICAgICAgICIwLjA0ODc1LCAwLjAzNzUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMzEyNSwgMC4wMjc1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiMC4wNTI1LCAwLjA0NzUsIDAuMDQxMjUsIDAuMDQxMjUsIDAuMDM1LCAwLjAzNzUsIDAuMDM1IiwgXAotICAgICAgICAgICIwLjA1NSwgMC4wNSwgMC4wNDM3NSwgMC4wNDM3NSwgMC4wNDM3NSwgMC4wNCwgMC4wMzc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEyNSwgMC4wMDEyNSwgLTAuMDA1LCAtMC4wMTEyNSwgLTAuMDE3NSwgLTAuMDIxMjUsIC0wLjAyMzc1IiwgXAotICAgICAgICAgICIwLjAxNzUsIDAuMDA2MjUsIDAsIC0wLjAwNjI1LCAtMC4wMTI1LCAtMC4wMTYyNSwgLTAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMDIzNzUsIDAuMDEyNSwgMC4wMDYyNSwgMCwgLTAuMDA2MjUsIC0wLjAxLCAtMC4wMTI1IiwgXAotICAgICAgICAgICIwLjAyMzc1LCAwLjAxODc1LCAwLjAxMjUsIDAuMDA2MjUsIDAsIC0wLjAwMzc1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiMC4wMywgMC4wMTg3NSwgMC4wMTI1LCAwLjAwNjI1LCAwLjAwNjI1LCAtMC4wMDM3NSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMDMzNzUsIDAuMDI4NzUsIDAuMDE2MjUsIDAuMDE2MjUsIDAuMDEsIDAsIC0wLjAwMjUiLCBcCi0gICAgICAgICAgIjAuMDM2MjUsIDAuMDMxMjUsIDAuMDI1LCAwLjAxODc1LCAwLjAxMjUsIDAuMDA4NzUsIDAiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEVDSykgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjY2NTY2NTsKLSAgICBjbG9ja19nYXRlX291dF9waW4gOiB0cnVlOwotICAgIHN0YXRlX2Z1bmN0aW9uIDogIihDSyBFSU5UKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3OTY2OSwgMC4xNTkyMTQsIDAuMjIxNjQzLCAwLjI5OTcxLCAwLjM3NzcxLCAwLjQ1NTc4OCwgMC41MzM4MSIsIFwKLSAgICAgICAgICAiMC4wODc1NjIsIDAuMTY3MTA1LCAwLjIyOTU0LCAwLjMwNzcwMiwgMC4zODU2NTgsIDAuNDYzNjk1LCAwLjU0MTc4MyIsIFwKLSAgICAgICAgICAiMC4wOTUxODYsIDAuMTc0NjU0LCAwLjIzNzA4MywgMC4zMTUyMzcsIDAuMzkzMTU2LCAwLjQ3MTE2OCwgMC41NDkzMDYiLCBcCi0gICAgICAgICAgIjAuMTAwNDU0LCAwLjE3OTkzNCwgMC4yNDIzNjIsIDAuMzIwNDQsIDAuMzk4NDE5LCAwLjQ3NjQ5NCwgMC41NTQ1MjkiLCBcCi0gICAgICAgICAgIjAuMTA1MDEsIDAuMTg0NTIyLCAwLjI0Njk0NSwgMC4zMjQ5NzIsIDAuNDAzMDA1LCAwLjQ4MTA2NCwgMC41NTkwMzYiLCBcCi0gICAgICAgICAgIjAuMTEwODUsIDAuMTkwMzgzLCAwLjI1MjgwNSwgMC4zMzA5MTIsIDAuNDA4ODY1LCAwLjQ4NjkwOSwgMC41NjQ5ODMiLCBcCi0gICAgICAgICAgIjAuMTE1MjUsIDAuMTk0NzE0LCAwLjI1NzA5MiwgMC4zMzUxMzMsIDAuNDEzMjAzLCAwLjQ5MTMwNCwgMC41NjkyMTgiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQ0Mzg5LCAwLjIwNjA0NywgMC4zMzg3ODMsIDAuNTA1MjI2LCAwLjY3MTc2MywgMC44MzcwMjMsIDEuMDAzMDIiLCBcCi0gICAgICAgICAgIjAuMDQ0MzYzLCAwLjIwNjA1NiwgMC4zMzgyNDEsIDAuNTA0MjIxLCAwLjY3MDcxLCAwLjgzNjY3LCAxLjAwMzA4IiwgXAotICAgICAgICAgICIwLjA0NDQyMywgMC4yMDYwNTcsIDAuMzM4NzU1LCAwLjUwNDQzNywgMC42NzE3NiwgMC44MzcyODcsIDEuMDAzMjUiLCBcCi0gICAgICAgICAgIjAuMDQ0NDIyLCAwLjIwNjA0NywgMC4zMzg3NDksIDAuNTA0MzMzLCAwLjY3MTc0NSwgMC44MzcxNTEsIDEuMDA0NzQiLCBcCi0gICAgICAgICAgIjAuMDQ0MzQ4LCAwLjIwNTk2MSwgMC4zMzg3MjksIDAuNTA0NTAyLCAwLjY3MTY3LCAwLjgzNjk3MiwgMS4wMDQ3NCIsIFwKLSAgICAgICAgICAiMC4wNDQzNzgsIDAuMjA2MjA5LCAwLjMzODMzMywgMC41MDQxODEsIDAuNjcxNjMyLCAwLjgzNjk2NCwgMS4wMDMzMyIsIFwKLSAgICAgICAgICAiMC4wNDQ0MjcsIDAuMjA1OTQ1LCAwLjMzODU1OSwgMC41MDQ1MDMsIDAuNjcxNjA1LCAwLjgzNjY5NSwgMS4wMDQ2NSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjk0MDYsIDAuMTQ1MzMzLCAwLjIwNTkxMywgMC4yODE2NjIsIDAuMzU3NDE2LCAwLjQzMzE0OCwgMC41MDg5MDUiLCBcCi0gICAgICAgICAgIjAuMDc3MTE1LCAwLjE1MzAzMywgMC4yMTM2MTIsIDAuMjg5MzY4LCAwLjM2NTEzMSwgMC40NDA4ODksIDAuNTE2NTk2IiwgXAotICAgICAgICAgICIwLjA4NDQ3NiwgMC4xNjAzODgsIDAuMjIwOTY1LCAwLjI5NjcxNiwgMC4zNzI0NTksIDAuNDQ4MjQsIDAuNTIzOTUzIiwgXAotICAgICAgICAgICIwLjA4OTU3NCwgMC4xNjU0OTYsIDAuMjI2MDY2LCAwLjMwMTgzNiwgMC4zNzc1NTYsIDAuNDUzMzIyLCAwLjUyOTA2NiIsIFwKLSAgICAgICAgICAiMC4wOTM5MjIsIDAuMTY5ODQxLCAwLjIzMDQxNywgMC4zMDYxNzMsIDAuMzgxOTQyLCAwLjQ1NzY4LCAwLjUzMzM5NyIsIFwKLSAgICAgICAgICAiMC4wOTkzMzYsIDAuMTc1MjU3LCAwLjIzNTgzNiwgMC4zMTE1ODcsIDAuMzg3MzE2LCAwLjQ2MzA3OCwgMC41Mzg4MjkiLCBcCi0gICAgICAgICAgIjAuMTAzMzM4LCAwLjE3OTI3MSwgMC4yMzk4MzgsIDAuMzE1NTc0LCAwLjM5MTMyNSwgMC40NjcwNTYsIDAuNTQyODg0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzODUwNywgMC4xOTM2MDksIDAuMzE5NDY3LCAwLjQ3NjQ5NCwgMC42MzQxMTMsIDAuNzkxNjAzLCAwLjk0ODE0IiwgXAotICAgICAgICAgICIwLjAzODUyNCwgMC4xOTM2MTIsIDAuMzE4OTIzLCAwLjQ3NjUyLCAwLjYzNDEzNSwgMC43OTIxMDUsIDAuOTQ4MjM3IiwgXAotICAgICAgICAgICIwLjAzODUyOCwgMC4xOTM1ODksIDAuMzE4OTAxLCAwLjQ3NzAzOCwgMC42MzM0ODMsIDAuNzkxNzU3LCAwLjk0OTIwMiIsIFwKLSAgICAgICAgICAiMC4wMzg1MDgsIDAuMTkzNTYxLCAwLjMxODg5OCwgMC40NzY5NjUsIDAuNjMzNTg3LCAwLjc5MTY4MiwgMC45NDkyNDUiLCBcCi0gICAgICAgICAgIjAuMDM4NTA5LCAwLjE5MzU0NSwgMC4zMTkxMjMsIDAuNDc2NTMxLCAwLjYzNDExMiwgMC43OTE3NTcsIDAuOTQ5MDUyIiwgXAotICAgICAgICAgICIwLjAzODUwNSwgMC4xOTM1MzEsIDAuMzE5NDcxLCAwLjQ3NzAwNSwgMC42MzQ1MzgsIDAuNzkxMTIsIDAuOTQ5NTE3IiwgXAotICAgICAgICAgICIwLjAzODU0MSwgMC4xOTMxOTUsIDAuMzE5MzMyLCAwLjQ3Njk4OCwgMC42MzQzNDgsIDAuNzkyMTgyLCAwLjk0OTQ5MSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDU5NSwgMC4wMDU5NDgsIDAuMDA1OTM3LCAwLjAwNTkzMSwgMC4wMDU5MjUsIDAuMDA1OTIyLCAwLjAwNTkyIiwgXAotICAgICAgICAgICIwLjAwNTk0NywgMC4wMDU5NDcsIDAuMDA1OTM2LCAwLjAwNTkyOCwgMC4wMDU5MjMsIDAuMDA1OTIxLCAwLjAwNTkxOCIsIFwKLSAgICAgICAgICAiMC4wMDYwMjgsIDAuMDA2MDMsIDAuMDA2MDE4LCAwLjAwNjAwOSwgMC4wMDYwMDMsIDAuMDA2MDAxLCAwLjAwNTk5OCIsIFwKLSAgICAgICAgICAiMC4wMDYxNDIsIDAuMDA2MTQ2LCAwLjAwNjEzMywgMC4wMDYxMjMsIDAuMDA2MTE3LCAwLjAwNjExNSwgMC4wMDYxMTIiLCBcCi0gICAgICAgICAgIjAuMDA2MjYzLCAwLjAwNjI2NywgMC4wMDYyNTQsIDAuMDA2MjQzLCAwLjAwNjIzOCwgMC4wMDYyMzMsIDAuMDA2MjI4IiwgXAotICAgICAgICAgICIwLjAwNjQ3NCwgMC4wMDY0NzUsIDAuMDA2NDYxLCAwLjAwNjQ0OCwgMC4wMDY0NDMsIDAuMDA2NDM3LCAwLjAwNjQzNCIsIFwKLSAgICAgICAgICAiMC4wMDY2NzcsIDAuMDA2NjgsIDAuMDA2NjU2LCAwLjAwNjY0NSwgMC4wMDY2NDYsIDAuMDA2NjMxLCAwLjAwNjYyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMDM3OCwgMC4wMTA0MDksIDAuMDEwNDA2LCAwLjAxMDQwNSwgMC4wMTA0MDMsIDAuMDEwNDAzLCAwLjAxMDQwMiIsIFwKLSAgICAgICAgICAiMC4wMTAzODQsIDAuMDEwNDE2LCAwLjAxMDQxMywgMC4wMTA0MTEsIDAuMDEwNDEsIDAuMDEwNDA5LCAwLjAxMDQwOCIsIFwKLSAgICAgICAgICAiMC4wMTA0NTcsIDAuMDEwNDkyLCAwLjAxMDQ4OSwgMC4wMTA0ODYsIDAuMDEwNDg0LCAwLjAxMDQ4MywgMC4wMTA0ODIiLCBcCi0gICAgICAgICAgIjAuMDEwNTY5LCAwLjAxMDYwNywgMC4wMTA2MDMsIDAuMDEwNiwgMC4wMTA1OTgsIDAuMDEwNTk3LCAwLjAxMDU5NiIsIFwKLSAgICAgICAgICAiMC4wMTA2NzksIDAuMDEwNzIyLCAwLjAxMDcxNSwgMC4wMTA3MTEsIDAuMDEwNzA5LCAwLjAxMDcwNywgMC4wMTA3MDciLCBcCi0gICAgICAgICAgIjAuMDEwODgxLCAwLjAxMDkxNywgMC4wMTA5MTIsIDAuMDEwOTA3LCAwLjAxMDkwNSwgMC4wMTA5MDIsIDAuMDEwOTAxIiwgXAotICAgICAgICAgICIwLjAxMTA4MiwgMC4wMTExMTksIDAuMDExMTEsIDAuMDExMTA1LCAwLjAxMTEwNSwgMC4wMTEwOTksIDAuMDExMTAxIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogVExBVE5DQVgyMCAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChUTEFUTkNBWDIwKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDMuMzk1Mjc7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgY2xvY2tfZ2F0aW5nX2ludGVncmF0ZWRfY2VsbCA6ICJsYXRjaF9wb3NlZGdlIjsKLSAgc3RhdGV0YWJsZSgiIENLICBFICIsICIgRUlOVCAiKSB7Ci0gICAgIHRhYmxlIDogIiAgTCAgTCA6IC0gOiBMICwgXAotICAgICAgICAgICAgICAgIEwgIEggOiAtIDogSCAsIFwKLSAgICAgICAgICAgICAgICBIICAtIDogLSA6IE4gIjsKLSAgfQotICBwaW4oRUlOVCkgewotICAgIGRpcmVjdGlvbiA6IGludGVybmFsOwotICAgIGludGVybmFsX25vZGUgOiAiRUlOVCI7Ci0gIH0KLSAgcGluKENLKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA3MjIzMzI7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNzIyMzMyOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDcyMjE4NDsKLSAgICBjbG9ja19nYXRlX2Nsb2NrX3BpbiA6IHRydWU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA2NTQ3LCAwLjAwNjU0MiwgMC4wMDY2MDYsIDAuMDA2NzA1LCAwLjAwNjgxOSwgMC4wMDcwMzcsIDAuMDA3MjQyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA2ODc3LCAwLjAwNjg4NCwgMC4wMDY5MzIsIDAuMDA3MDI4LCAwLjAwNzE0NiwgMC4wMDczNzgsIDAuMDA3NTc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRSI7Ci0gICAgICBzZGZfY29uZCA6ICJFID09IDEnYjAiOwotICAgICAgZmFsbF9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMTA1Mjk2LCAwLjExMzE4NCwgMC4xMjEyMTksIDAuMTI3MDYxLCAwLjEzMTczOSwgMC4xMzgxMDYsIDAuMTQyNzI3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihFKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA3MjU0MjE7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNzI0MTU5OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDcyNTQyMTsKLSAgICBjbG9ja19nYXRlX2VuYWJsZV9waW4gOiB0cnVlOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwODQ0MywgMC4wMDgzOTYsIDAuMDA4NDQ4LCAwLjAwODU0OCwgMC4wMDg1OCwgMC4wMDg4MDEsIDAuMDA4OTEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDczNzMsIDAuMDA3MzMsIDAuMDA3MzY4LCAwLjAwNzQ1NCwgMC4wMDc1NDUsIDAuMDA3NjQ2LCAwLjAwNzg1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDI1LCAtMC4wMiwgLTAuMDEzNzUsIC0wLjAxMzc1LCAtMC4wMTM3NSwgLTAuMDEsIC0wLjAwNzUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTg3NSwgLTAuMDE4NzUsIC0wLjAxNSwgLTAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAzMTI1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMjUsIC0wLjAyMTI1LCAtMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAzMTI1LCAtMC4wMzEyNSwgLTAuMDI3NSwgLTAuMDI1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzNzUsIC0wLjAzNzUsIC0wLjAzMzc1LCAtMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDU4NzUsIC0wLjA1Mzc1LCAtMC4wNDc1LCAtMC4wNDEyNSwgLTAuMDQxMjUsIC0wLjAzNzUsIC0wLjAzNSIsIFwKLSAgICAgICAgICAiLTAuMDYxMjUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wNDYyNSwgLTAuMDQzNzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLCAwLjAxMTI1LCAwLjAxNzUsIDAuMDIzNzUsIDAuMDMsIDAuMDMzNzUsIDAuMDQyNSIsIFwKLSAgICAgICAgICAiLTAuMDA1LCAwLjAwNjI1LCAwLjAxMjUsIDAuMDE4NzUsIDAuMDI1LCAwLjAyODc1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wMTEyNSwgMCwgMC4wMDYyNSwgMC4wMTI1LCAwLjAxODc1LCAwLjAyMjUsIDAuMDI1IiwgXAotICAgICAgICAgICItMC4wMTc1LCAtMC4wMDYyNSwgMCwgMC4wMDYyNSwgMC4wMTI1LCAwLjAxNjI1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDE3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAsIDAuMDA2MjUsIDAuMDE2MjUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjAyNzUsIC0wLjAxNjI1LCAtMC4wMSwgLTAuMDAzNzUsIDAuMDAyNSwgMC4wMDYyNSwgMC4wMTUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMjUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLCAwLjAwMzc1LCAwLjAxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDMxMjUsIDAuMDI2MjUsIDAuMDIsIDAuMDIsIDAuMDIsIDAuMDE2MjUsIDAuMDEzNzUiLCBcCi0gICAgICAgICAgIjAuMDM2MjUsIDAuMDMxMjUsIDAuMDI1LCAwLjAyNSwgMC4wMjUsIDAuMDIxMjUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMDQyNSwgMC4wMzc1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDMxMjUsIDAuMDI3NSwgMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMDQ4NzUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzc1LCAwLjAzNzUsIDAuMDMzNzUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMDU1LCAwLjA1LCAwLjA0Mzc1LCAwLjA0Mzc1LCAwLjA0Mzc1LCAwLjA0LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIjAuMDY1LCAwLjA2LCAwLjA1Mzc1LCAwLjA0NzUsIDAuMDQ3NSwgMC4wNDM3NSwgMC4wNDEyNSIsIFwKLSAgICAgICAgICAiMC4wNjc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDU2MjUsIDAuMDUsIDAuMDUyNSwgMC4wNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjI1LCAtMC4wMDUsIC0wLjAxMTI1LCAtMC4wMTc1LCAtMC4wMjM3NSwgLTAuMDI3NSwgLTAuMDM2MjUiLCBcCi0gICAgICAgICAgIjAuMDExMjUsIDAsIC0wLjAwNjI1LCAtMC4wMTI1LCAtMC4wMTg3NSwgLTAuMDIyNSwgLTAuMDI1IiwgXAotICAgICAgICAgICIwLjAxNzUsIDAuMDA2MjUsIDAsIC0wLjAwNjI1LCAtMC4wMTI1LCAtMC4wMTYyNSwgLTAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMDIzNzUsIDAuMDEyNSwgMC4wMDYyNSwgMCwgLTAuMDA2MjUsIC0wLjAxLCAtMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4wMjM3NSwgMC4wMTg3NSwgMC4wMTI1LCAwLjAwNjI1LCAwLCAtMC4wMSwgLTAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4wMzM3NSwgMC4wMjI1LCAwLjAxNjI1LCAwLjAxLCAwLjAwMzc1LCAwLCAtMC4wMDg3NSIsIFwKLSAgICAgICAgICAiMC4wMzYyNSwgMC4wMzEyNSwgMC4wMTg3NSwgMC4wMTI1LCAwLjAwNjI1LCAwLjAwMjUsIC0wLjAwNjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihFQ0spICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogNy4wMDUyOTsKLSAgICBjbG9ja19nYXRlX291dF9waW4gOiB0cnVlOwotICAgIHN0YXRlX2Z1bmN0aW9uIDogIihDSyBFSU5UKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5NTQ1OCwgMC4xMDgyNTMsIDAuMTE2MzUxLCAwLjEyNTQxNiwgMC4xMzQwMDgsIDAuMTQyMzIxLCAwLjE1MDQ0MyIsIFwKLSAgICAgICAgICAiMC4xMDM1MjEsIDAuMTE2MzQsIDAuMTI0Mzg2LCAwLjEzMzQ5MywgMC4xNDIwNTMsIDAuMTUwMzgxLCAwLjE1ODU1OCIsIFwKLSAgICAgICAgICAiMC4xMTE3NzksIDAuMTI0NjQ4LCAwLjEzMjY0MywgMC4xNDE3NSwgMC4xNTAzMSwgMC4xNTg2NDEsIDAuMTY2ODE1IiwgXAotICAgICAgICAgICIwLjExNzgwOCwgMC4xMzA2MiwgMC4xMzg2MjksIDAuMTQ3NzYxLCAwLjE1NjM0NCwgMC4xNjQ2NywgMC4xNzI4NDciLCBcCi0gICAgICAgICAgIjAuMTIyNzEzLCAwLjEzNTUyOCwgMC4xNDM1NjEsIDAuMTUyNjc2LCAwLjE2MTI3OSwgMC4xNjk1NjUsIDAuMTc3NzUyIiwgXAotICAgICAgICAgICIwLjEyOTQ5MSwgMC4xNDIyNjUsIDAuMTUwMjk5LCAwLjE1OTQyMSwgMC4xNjc5ODYsIDAuMTc2MywgMC4xODQ0MzciLCBcCi0gICAgICAgICAgIjAuMTM0NjM1LCAwLjE0NzI0NSwgMC4xNTUyNDcsIDAuMTY0NTc0LCAwLjE3MzE1NiwgMC4xODE0ODMsIDAuMTg5NDE1Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxODM2MywgMC4wMzU2OTMsIDAuMDQ4NSwgMC4wNjQyNDcsIDAuMDgwMTc1LCAwLjA5NjE4MiwgMC4xMTIyMTciLCBcCi0gICAgICAgICAgIjAuMDE4NDI0LCAwLjAzNTczMSwgMC4wNDg1MjUsIDAuMDY0MzUsIDAuMDgwMTUsIDAuMDk2MTUzLCAwLjExMjI4NCIsIFwKLSAgICAgICAgICAiMC4wMTg0MTYsIDAuMDM1NzY5LCAwLjA0ODUyNSwgMC4wNjQzNDksIDAuMDgwMTQyLCAwLjA5NjExOCwgMC4xMTIyODMiLCBcCi0gICAgICAgICAgIjAuMDE4MzYyLCAwLjAzNTc1MiwgMC4wNDg1MTMsIDAuMDY0MzIsIDAuMDgwMTk2LCAwLjA5NjE4NCwgMC4xMTIyODEiLCBcCi0gICAgICAgICAgIjAuMDE4Mjc3LCAwLjAzNTY4MiwgMC4wNDg0NzcsIDAuMDY0MzE1LCAwLjA4MDEwNiwgMC4wOTYxNTEsIDAuMTEyMjQyIiwgXAotICAgICAgICAgICIwLjAxODMyOSwgMC4wMzU2MzcsIDAuMDQ4NDQsIDAuMDY0Mjk4LCAwLjA4MDE0NSwgMC4wOTYwODcsIDAuMTEyMzI1IiwgXAotICAgICAgICAgICIwLjAxODMxMiwgMC4wMzU3MywgMC4wNDg2MzYsIDAuMDY0MzE2LCAwLjA4MDE0NSwgMC4wOTYxNzEsIDAuMTEyMjg2Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4NDU5LCAwLjA5NTY3MiwgMC4xMDI5NzcsIDAuMTExNDY1LCAwLjExOTY0MywgMC4xMjc2ODEsIDAuMTM1NjUzIiwgXAotICAgICAgICAgICIwLjA5MjQ5MiwgMC4xMDM1NjgsIDAuMTEwODUyLCAwLjExOTM1NCwgMC4xMjc1MzQsIDAuMTM1NTc0LCAwLjE0MzU0NCIsIFwKLSAgICAgICAgICAiMC4xMDA1MTcsIDAuMTExNTk1LCAwLjExODkwNSwgMC4xMjczODYsIDAuMTM1NTc4LCAwLjE0MzYxOCwgMC4xNTE1OCIsIFwKLSAgICAgICAgICAiMC4xMDYzNjQsIDAuMTE3NDM4LCAwLjEyNDc0NCwgMC4xMzMyMywgMC4xNDE0MTMsIDAuMTQ5NDU4LCAwLjE1NzQyMiIsIFwKLSAgICAgICAgICAiMC4xMTEwNywgMC4xMjIxMiwgMC4xMjk0MDQsIDAuMTM3ODcsIDAuMTQ2MDUyLCAwLjE1NDA4NCwgMC4xNjIwNTYiLCBcCi0gICAgICAgICAgIjAuMTE3NDYyLCAwLjEyODU1MiwgMC4xMzU4MywgMC4xNDQzMzUsIDAuMTUyNTEyLCAwLjE2MDU0NiwgMC4xNjg1MTkiLCBcCi0gICAgICAgICAgIjAuMTIyMDcsIDAuMTMzMTg5LCAwLjE0MDQ5NCwgMC4xNDg5NDYsIDAuMTU3MTYxLCAwLjE2NTE5OCwgMC4xNzMxNjkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE0OTM3LCAwLjAzMDg1NywgMC4wNDMwMjQsIDAuMDU4NTI0LCAwLjA3NDE3OCwgMC4wOTAwMjUsIDAuMTA1OTY1IiwgXAotICAgICAgICAgICIwLjAxNDg4OCwgMC4wMzA4NDksIDAuMDQzMDQ5LCAwLjA1ODUwMSwgMC4wNzQyLCAwLjA5MDAyNCwgMC4xMDU5NzEiLCBcCi0gICAgICAgICAgIjAuMDE0OTUyLCAwLjAzMDgzMiwgMC4wNDMwNDQsIDAuMDU4NTA1LCAwLjA3NDE5NSwgMC4wOTAwMjUsIDAuMTA1OTc3IiwgXAotICAgICAgICAgICIwLjAxNDkxNSwgMC4wMzA4NjMsIDAuMDQzMDMxLCAwLjA1ODUyOCwgMC4wNzQxODQsIDAuMDg5OTc2LCAwLjEwNTk2NyIsIFwKLSAgICAgICAgICAiMC4wMTQ5MzYsIDAuMDMwODQ0LCAwLjA0MzAzOCwgMC4wNTg1MywgMC4wNzQyMDgsIDAuMDkwMDM0LCAwLjEwNTk5NyIsIFwKLSAgICAgICAgICAiMC4wMTQ5MTksIDAuMDMwODY3LCAwLjA0MzAzOCwgMC4wNTg1MDEsIDAuMDc0MjE2LCAwLjA5MDAyNCwgMC4xMDU5NjYiLCBcCi0gICAgICAgICAgIjAuMDE0OTYxLCAwLjAzMDg3OCwgMC4wNDMwNiwgMC4wNTg1OTgsIDAuMDc0MTY4LCAwLjA4OTk1MSwgMC4xMDU4OTciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM5Mzk2LCAwLjAzODQzMywgMC4wMzg0NDUsIDAuMDM4NDg4LCAwLjAzODU1LCAwLjAzODYwMiwgMC4wMzg2NDMiLCBcCi0gICAgICAgICAgIjAuMDM5MzI1LCAwLjAzODQ0NCwgMC4wMzg0MDksIDAuMDM4NDYyLCAwLjAzODUyMiwgMC4wMzg1OCwgMC4wMzg2MjIiLCBcCi0gICAgICAgICAgIjAuMDM5Mzg2LCAwLjAzODUxNiwgMC4wMzg0NjcsIDAuMDM4NTIyLCAwLjAzODU4MywgMC4wMzg2NCwgMC4wMzg2ODMiLCBcCi0gICAgICAgICAgIjAuMDM5NTQzLCAwLjAzODU4MiwgMC4wMzg1NjIsIDAuMDM4NjMzLCAwLjAzODY5OSwgMC4wMzg3NTIsIDAuMDM4Nzk0IiwgXAotICAgICAgICAgICIwLjAzOTQyMywgMC4wMzg1NzEsIDAuMDM4NTc1LCAwLjAzODY1MSwgMC4wMzg3MjksIDAuMDM4NzkyLCAwLjAzODg0NCIsIFwKLSAgICAgICAgICAiMC4wMzk4NjMsIDAuMDM4OTQ2LCAwLjAzODkwMSwgMC4wMzg5NzMsIDAuMDM5MDM3LCAwLjAzOTA4OCwgMC4wMzkxNjgiLCBcCi0gICAgICAgICAgIjAuMDQwMDg3LCAwLjAzOTE3NywgMC4wMzkxMTgsIDAuMDM5MTYzLCAwLjAzOTI0NiwgMC4wMzkyOTIsIDAuMDM5MzA0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQ0NzksIDAuMDQ0NTY0LCAwLjA0NDc1NCwgMC4wNDQ5NTgsIDAuMDQ1MDk5LCAwLjA0NTE5NywgMC4wNDUyNzYiLCBcCi0gICAgICAgICAgIjAuMDQ0OCwgMC4wNDQ1ODYsIDAuMDQ0Nzc1LCAwLjA0NDk2MywgMC4wNDUwOTcsIDAuMDQ1MTk5LCAwLjA0NTI3NiIsIFwKLSAgICAgICAgICAiMC4wNDQ4MzYsIDAuMDQ0NjQzLCAwLjA0NDgxNSwgMC4wNDUwMDksIDAuMDQ1MTQ5LCAwLjA0NTI1MSwgMC4wNDUzMjkiLCBcCi0gICAgICAgICAgIjAuMDQ0OTIsIDAuMDQ0NjkxLCAwLjA0NDg3NSwgMC4wNDUwODEsIDAuMDQ1MjI0LCAwLjA0NTMyMSwgMC4wNDU0MDMiLCBcCi0gICAgICAgICAgIjAuMDQ1MTI4LCAwLjA0NDkyNiwgMC4wNDUwODQsIDAuMDQ1MjYxLCAwLjA0NTM5NCwgMC4wNDU0OTYsIDAuMDQ1NTcyIiwgXAotICAgICAgICAgICIwLjA0NTI5MSwgMC4wNDUwNjYsIDAuMDQ1MjUyLCAwLjA0NTQ0NywgMC4wNDU1OCwgMC4wNDU2NzksIDAuMDQ1NzU1IiwgXAotICAgICAgICAgICIwLjA0NTQ2NywgMC4wNDUyNTQsIDAuMDQ1NDQ5LCAwLjA0NTYyNSwgMC4wNDU3ODYsIDAuMDQ1ODY3LCAwLjA0NTk0Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBUTEFUTkNBWDYgKgotICogLS0tLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChUTEFUTkNBWDYpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMS4yNDU3NjsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBjbG9ja19nYXRpbmdfaW50ZWdyYXRlZF9jZWxsIDogImxhdGNoX3Bvc2VkZ2UiOwotICBzdGF0ZXRhYmxlKCIgQ0sgIEUgIiwgIiBFSU5UICIpIHsKLSAgICAgdGFibGUgOiAiICBMICBMIDogLSA6IEwgLCBcCi0gICAgICAgICAgICAgICAgTCAgSCA6IC0gOiBIICwgXAotICAgICAgICAgICAgICAgIEggIC0gOiAtIDogTiAiOwotICB9Ci0gIHBpbihFSU5UKSB7Ci0gICAgZGlyZWN0aW9uIDogaW50ZXJuYWw7Ci0gICAgaW50ZXJuYWxfbm9kZSA6ICJFSU5UIjsKLSAgfQotICBwaW4oQ0spICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY0NDk4MjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2NDQ5ODI7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjQ0OTU0OwotICAgIGNsb2NrX2dhdGVfY2xvY2tfcGluIDogdHJ1ZTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDQwNjIsIDAuMDA0MDYyLCAwLjAwNDEyNCwgMC4wMDQyMzQsIDAuMDA0MzUxLCAwLjAwNDU4LCAwLjAwNDc4NiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNDg4MywgMC4wMDQ4ODEsIDAuMDA0OTQ4LCAwLjAwNTA1MiwgMC4wMDUxODIsIDAuMDA1NDU2LCAwLjAwNTYxOSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUUiOwotICAgICAgc2RmX2NvbmQgOiAiRSA9PSAxJ2IwIjsKLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjA4MDkyOSwgMC4wODg3MjMsIDAuMDk2NDU0LCAwLjEwMTkzLCAwLjEwNjI1NiwgMC4xMTIzNjIsIDAuMTE2NjgzIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihFKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2NTY5NTY7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjU1ODQ3OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDY1Njk1NjsKLSAgICBjbG9ja19nYXRlX2VuYWJsZV9waW4gOiB0cnVlOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNDM5NywgMC4wMDQzNjUsIDAuMDA0Mzg4LCAwLjAwNDQ0NywgMC4wMDQ1MDUsIDAuMDA0NjY0LCAwLjAwNDc3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNDgyMSwgMC4wMDQ3OTgsIDAuMDA0ODIzLCAwLjAwNDg3MiwgMC4wMDQ5NDIsIDAuMDA1MDUyLCAwLjAwNTIxNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAxODc1LCAtMC4wMTM3NSwgLTAuMDEzNzUsIC0wLjAwNzUsIC0wLjAwNzUsIC0wLjAwMzc1LCAtMC4wMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxODc1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDEyNSwgLTAuMDA4NzUsIC0wLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDE4NzUsIC0wLjAxNSwgLTAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzMTI1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMjUsIC0wLjAyMTI1LCAtMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAzMTI1LCAtMC4wMzEyNSwgLTAuMDI3NSwgLTAuMDI1IiwgXAotICAgICAgICAgICItMC4wNTI1LCAtMC4wNDc1LCAtMC4wNDEyNSwgLTAuMDM1LCAtMC4wMzUsIC0wLjAzMTI1LCAtMC4wMjg3NSIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wNCwgLTAuMDM3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAsIDAuMDA1LCAwLjAxMTI1LCAwLjAxNzUsIDAuMDIzNzUsIDAuMDI3NSwgMC4wMzYyNSIsIFwKLSAgICAgICAgICAiLTAuMDA1LCAwLCAwLjAwNjI1LCAwLjAxMjUsIDAuMDE4NzUsIDAuMDIyNSwgMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjAxNzUsIC0wLjAwNjI1LCAwLCAwLjAwNjI1LCAwLjAxMjUsIDAuMDE2MjUsIDAuMDI1IiwgXAotICAgICAgICAgICItMC4wMTc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMCwgMC4wMDYyNSwgMC4wMTYyNSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLCAwLjAwNjI1LCAwLjAxLCAwLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjAyNzUsIC0wLjAyMjUsIC0wLjAxLCAtMC4wMDM3NSwgLTAuMDAzNzUsIDAuMDA2MjUsIDAuMDA4NzUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMC4wMDM3NSwgMC4wMDYyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjUsIDAuMDIsIDAuMDIsIDAuMDEzNzUsIDAuMDEzNzUsIDAuMDEsIDAuMDA3NSIsIFwKLSAgICAgICAgICAiMC4wMywgMC4wMjUsIDAuMDI1LCAwLjAxODc1LCAwLjAxODc1LCAwLjAxNSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4wNDI1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDI1LCAwLjAyNSwgMC4wMjEyNSwgMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMDQ4NzUsIDAuMDM3NSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAzMTI1LCAwLjAyNzUsIDAuMDI1IiwgXAotICAgICAgICAgICIwLjA0ODc1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDM3NSwgMC4wMzc1LCAwLjAzMzc1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICIwLjA1ODc1LCAwLjA1Mzc1LCAwLjA0NzUsIDAuMDQxMjUsIDAuMDQxMjUsIDAuMDM3NSwgMC4wMzUiLCBcCi0gICAgICAgICAgIjAuMDYxMjUsIDAuMDU2MjUsIDAuMDUsIDAuMDUsIDAuMDQzNzUsIDAuMDQ2MjUsIDAuMDQzNzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDYyNSwgMC4wMDEyNSwgLTAuMDA1LCAtMC4wMTEyNSwgLTAuMDE3NSwgLTAuMDIxMjUsIC0wLjAzIiwgXAotICAgICAgICAgICIwLjAxMTI1LCAwLjAwNjI1LCAwLCAtMC4wMDYyNSwgLTAuMDEyNSwgLTAuMDE2MjUsIC0wLjAxODc1IiwgXAotICAgICAgICAgICIwLjAyMzc1LCAwLjAxMjUsIDAuMDA2MjUsIDAsIC0wLjAwNjI1LCAtMC4wMSwgLTAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMDIzNzUsIDAuMDE4NzUsIDAuMDEyNSwgMC4wMDYyNSwgMCwgLTAuMDEsIC0wLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMDMsIDAuMDE4NzUsIDAuMDEyNSwgMC4wMDYyNSwgMCwgLTAuMDAzNzUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICIwLjAzMzc1LCAwLjAyODc1LCAwLjAxNjI1LCAwLjAxLCAwLjAxLCAwLCAtMC4wMDI1IiwgXAotICAgICAgICAgICIwLjAzNjI1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMTg3NSwgMC4wMTI1LCAwLjAwMjUsIDAiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEVDSykgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAyLjA0Nzg1OwotICAgIGNsb2NrX2dhdGVfb3V0X3BpbiA6IHRydWU7Ci0gICAgc3RhdGVfZnVuY3Rpb24gOiAiKENLIEVJTlQpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzM5MjgsIDAuMTEzNjE0LCAwLjE1MDE3NywgMC4xNzYyMjgsIDAuMjE3ODc0LCAwLjI1NDM2NiwgMC4zMDY1MjkiLCBcCi0gICAgICAgICAgIjAuMDgxODc0LCAwLjEyMTU5NCwgMC4xNTgxNzEsIDAuMTg0MjA4LCAwLjIyNTkwNSwgMC4yNjIyOTMsIDAuMzE0Mzc3IiwgXAotICAgICAgICAgICIwLjA4OTgxMiwgMC4xMjk1MTUsIDAuMTY2MDkxLCAwLjE5MjEzLCAwLjIzMzgyLCAwLjI3MDI3NiwgMC4zMjIzOTYiLCBcCi0gICAgICAgICAgIjAuMDk1NTY4LCAwLjEzNTI3NiwgMC4xNzE4NjIsIDAuMTk3OTIxLCAwLjIzOTU5MSwgMC4yNzYwNTQsIDAuMzI4MTU5IiwgXAotICAgICAgICAgICIwLjEwMDQwMiwgMC4xNDAwNzMsIDAuMTc2NjUsIDAuMjAyNzA3LCAwLjI0NDM3OCwgMC4yODA4NDQsIDAuMzMyOTQ4IiwgXAotICAgICAgICAgICIwLjEwNjczOCwgMC4xNDY0MTQsIDAuMTgyODgyLCAwLjIwOTA0NSwgMC4yNTA2MjQsIDAuMjg3MTY2LCAwLjMzOTE5MiIsIFwKLSAgICAgICAgICAiMC4xMTE0MTgsIDAuMTUxMDc3LCAwLjE4NzY4NiwgMC4yMTM2OTksIDAuMjU1NDAyLCAwLjI5MTg0NSwgMC4zNDM5NjEiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjI3MywgMC4wOTU5OTQsIDAuMTcxNDA5LCAwLjIyNTg2NSwgMC4zMTMxMjIsIDAuMzkwNjkxLCAwLjQ5OTY5NiIsIFwKLSAgICAgICAgICAiMC4wMjI3MDEsIDAuMDk1OTkxLCAwLjE3MTM0NSwgMC4yMjU4NjIsIDAuMzEzNDA5LCAwLjM4OTk3MywgMC40OTk0MDYiLCBcCi0gICAgICAgICAgIjAuMDIyNzA2LCAwLjA5NTk3NywgMC4xNzE2MTEsIDAuMjI1ODAyLCAwLjMxMzg1MSwgMC4zOTAzMDMsIDAuNDk5ODQiLCBcCi0gICAgICAgICAgIjAuMDIyNjYzLCAwLjA5NTk4OSwgMC4xNzE0ODEsIDAuMjI2MjE2LCAwLjMxMzg0MiwgMC4zOTAzNTgsIDAuNTAwNzYyIiwgXAotICAgICAgICAgICIwLjAyMjY2OSwgMC4wOTYsIDAuMTcxNjE3LCAwLjIyNjE4MiwgMC4zMTM4MzIsIDAuMzkwMzU1LCAwLjUwMDcwNiIsIFwKLSAgICAgICAgICAiMC4wMjI2NzMsIDAuMDk1OTY0LCAwLjE3MTYzMSwgMC4yMjYxNzMsIDAuMzEzOTA1LCAwLjM5MDY1MSwgMC40OTk4MjMiLCBcCi0gICAgICAgICAgIjAuMDIyNzQ0LCAwLjA5NjA0NCwgMC4xNzE0MTksIDAuMjI1OTcyLCAwLjMxMzg5NiwgMC4zOTA3NDEsIDAuNTAwMDI4Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY1NzA1LCAwLjEwMzgxNCwgMC4xNDA0NTIsIDAuMTY2NjA2LCAwLjIwODQ2MywgMC4yNDUwOTUsIDAuMjk3NDQ1IiwgXAotICAgICAgICAgICIwLjA3MzQ4OSwgMC4xMTE1NzgsIDAuMTQ4MTk5LCAwLjE3NDM1LCAwLjIxNjIwOSwgMC4yNTI4MjksIDAuMzA1MTYyIiwgXAotICAgICAgICAgICIwLjA4MTI0MiwgMC4xMTkzNjYsIDAuMTU1OTM4LCAwLjE4MjA5MSwgMC4yMjM5NTcsIDAuMjYwNTY4LCAwLjMxMjkyNyIsIFwKLSAgICAgICAgICAiMC4wODY2NzIsIDAuMTI0NzUyLCAwLjE2MTM3MSwgMC4xODc1MjcsIDAuMjI5Mzg0LCAwLjI2NjAwNCwgMC4zMTgzNTgiLCBcCi0gICAgICAgICAgIjAuMDkxMTQ2LCAwLjEyOTI2NiwgMC4xNjU4ODQsIDAuMTkyMDM3LCAwLjIzMzg5MywgMC4yNzA1MTcsIDAuMzIyODY1IiwgXAotICAgICAgICAgICIwLjA5NzIzLCAwLjEzNTM0NSwgMC4xNzE5NzMsIDAuMTk4MTIzLCAwLjIzOTk4OSwgMC4yNzY2MDIsIDAuMzI4OTQ5IiwgXAotICAgICAgICAgICIwLjEwMTQ5MiwgMC4xMzk1ODgsIDAuMTc2MjQ1LCAwLjIwMjQsIDAuMjQ0MjUxLCAwLjI4MDkxMiwgMC4zMzMxODIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTg5MzUsIDAuMDkxNTMxLCAwLjE2NjMxOSwgMC4yMTk5MzksIDAuMzA2NzEzLCAwLjM4MTUxMywgMC40ODk4IiwgXAotICAgICAgICAgICIwLjAxODk0NywgMC4wOTE2NTIsIDAuMTY2NDEzLCAwLjIyMDE5NywgMC4zMDYzNDMsIDAuMzgyMTc1LCAwLjQ5MDAwMiIsIFwKLSAgICAgICAgICAiMC4wMTg5NzcsIDAuMDkxNjUyLCAwLjE2NjcxMiwgMC4yMjA0ODksIDAuMzA2NjM2LCAwLjM4MTcyMSwgMC40ODk1MzYiLCBcCi0gICAgICAgICAgIjAuMDE5MDE1LCAwLjA5MTc2NCwgMC4xNjY3MDQsIDAuMjIwNDcxLCAwLjMwNjY4NSwgMC4zODIxMzksIDAuNDg5NTMzIiwgXAotICAgICAgICAgICIwLjAxOTA0OCwgMC4wOTE3NjUsIDAuMTY2NSwgMC4yMjA0OCwgMC4zMDYzNDQsIDAuMzgyMTk1LCAwLjQ4OTUyNyIsIFwKLSAgICAgICAgICAiMC4wMTg5ODksIDAuMDkxNiwgMC4xNjY3MDYsIDAuMjIwNDE4LCAwLjMwNjY4OSwgMC4zODIwOTYsIDAuNDkwMDQyIiwgXAotICAgICAgICAgICIwLjAxODk4MywgMC4wOTE2NjQsIDAuMTY2MzkxLCAwLjIyMDE2MywgMC4zMDYyNzgsIDAuMzgxNzcxLCAwLjQ5MDAxNiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxNDA0NCwgMC4wMTQyMjcsIDAuMDE0Mjc1LCAwLjAxNDI5LCAwLjAxNDMxLCAwLjAxNDMyNCwgMC4wMTQzMTkiLCBcCi0gICAgICAgICAgIjAuMDE0MDY0LCAwLjAxNDI0LCAwLjAxNDI4NywgMC4wMTQzMDcsIDAuMDE0MzE3LCAwLjAxNDMyOSwgMC4wMTQzMzEiLCBcCi0gICAgICAgICAgIjAuMDE0MTEzLCAwLjAxNDI5MywgMC4wMTQzNCwgMC4wMTQzNTYsIDAuMDE0MzcxLCAwLjAxNDM5NSwgMC4wMTQzODMiLCBcCi0gICAgICAgICAgIjAuMDE0MjA3LCAwLjAxNDM5NiwgMC4wMTQ0NDYsIDAuMDE0NDYzLCAwLjAxNDQ3NCwgMC4wMTQ0ODUsIDAuMDE0NDkyIiwgXAotICAgICAgICAgICIwLjAxNDMzMSwgMC4wMTQ1MTcsIDAuMDE0NTc1LCAwLjAxNDU5MiwgMC4wMTQ2MDYsIDAuMDE0NjE0LCAwLjAxNDYyNiIsIFwKLSAgICAgICAgICAiMC4wMTQ1NTEsIDAuMDE0NzI2LCAwLjAxNDc4NywgMC4wMTQ3OTMsIDAuMDE0ODE3LCAwLjAxNDgxNSwgMC4wMTQ4MjkiLCBcCi0gICAgICAgICAgIjAuMDE0NzUsIDAuMDE0OTEyLCAwLjAxNDk3MSwgMC4wMTQ5NzcsIDAuMDE0OTg4LCAwLjAxNTAwNiwgMC4wMTQ5OTkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxODQ2OCwgMC4wMTg4MzEsIDAuMDE4OSwgMC4wMTg5MjIsIDAuMDE4OTQxLCAwLjAxODk1MSwgMC4wMTg5NjEiLCBcCi0gICAgICAgICAgIjAuMDE4NDY4LCAwLjAxODgyOCwgMC4wMTg4OTksIDAuMDE4OTIxLCAwLjAxODk0LCAwLjAxODk1MSwgMC4wMTg5NiIsIFwKLSAgICAgICAgICAiMC4wMTg1MjIsIDAuMDE4ODkzLCAwLjAxODk1OCwgMC4wMTg5ODEsIDAuMDE5LCAwLjAxOTAxMSwgMC4wMTkwMjEiLCBcCi0gICAgICAgICAgIjAuMDE4NjI5LCAwLjAxOTAwMSwgMC4wMTkwNzIsIDAuMDE5MDkzLCAwLjAxOTExMywgMC4wMTkxMjMsIDAuMDE5MTMyIiwgXAotICAgICAgICAgICIwLjAxODc2NSwgMC4wMTkxMjgsIDAuMDE5MTk3LCAwLjAxOTIyMSwgMC4wMTkyNDEsIDAuMDE5MjUxLCAwLjAxOTI2IiwgXAotICAgICAgICAgICIwLjAxODk1NiwgMC4wMTkzMjIsIDAuMDE5MzksIDAuMDE5NDEyLCAwLjAxOTQzMywgMC4wMTk0NDQsIDAuMDE5NDUyIiwgXAotICAgICAgICAgICIwLjAxOTEzNiwgMC4wMTk0OTQsIDAuMDE5NTYyLCAwLjAxOTU4OSwgMC4wMTk2MDksIDAuMDE5NjIsIDAuMDE5NjE1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBUTEFUTlNSWDQgKgotICogLS0tLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChUTEFUTlNSWDQpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMS45NDAxOTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBsYXRjaCAoUUlOVCxONSkgewotICAgIGRhdGFfaW4gOiAiRCI7Ci0gICAgZW5hYmxlIDogIigoIUdOKSBSTikiOwotICAgIHByZXNldCA6ICIoIVNOKSI7Ci0gIH0KLSAgcGluKEQpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY1NDY3NTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2NTM1NTg7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjU0Njc1OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDI4OSwgMC4wMDAyOSwgMC4wMDAyOTEsIDAuMDAwMjkxLCAwLjAwMDI5MSwgMC4wMDAyOSwgMC4wMDAyOTEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAzMSwgMC4wMDAzLCAwLjAwMDMsIDAuMDAwMjk4LCAwLjAwMDI5OCwgMC4wMDAyOTcsIDAuMDAwMjk3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkdOIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlJOJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIlJOX0VRXzFfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMDYyNSwgMC4wMDUsIDAuMDExMjUsIDAuMDExMjUsIDAuMDE3NSwgMC4wMjEyNSwgMC4wMjM3NSIsIFwKLSAgICAgICAgICAiLTAuMDExMjUsIC0wLjAwNjI1LCAwLCAwLjAwNjI1LCAwLjAxMjUsIDAuMDE2MjUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjAxNzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLCAwLCAwLjAxLCAwLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIC0wLjAwNjI1LCAtMC4wMDI1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDEyNSwgLTAuMDAyNSwgMCIsIFwKLSAgICAgICAgICAiLTAuMDQsIC0wLjAyODc1LCAtMC4wMjg3NSwgLTAuMDIyNSwgLTAuMDE2MjUsIC0wLjAxMjUsIC0wLjAxIiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMjUsIC0wLjAyMTI1LCAtMC4wMTI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDI1LCAtMC4wMTM3NSwgLTAuMDA3NSwgLTAuMDA3NSwgLTAuMDAxMjUsIDAuMDAyNSwgMC4wMDUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMTg3NSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAtMC4wMDI1LCAwIiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxODc1LCAtMC4wMDg3NSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTUsIC0wLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDIxMjUsIC0wLjAxODc1IiwgXAotICAgICAgICAgICItMC4wNTI1LCAtMC4wNDc1LCAtMC4wNDEyNSwgLTAuMDM1LCAtMC4wMzUsIC0wLjAzMTI1LCAtMC4wMjg3NSIsIFwKLSAgICAgICAgICAiLTAuMDYxMjUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzMzc1LCAtMC4wMzEyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJHTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiUk4mU04iOwotICAgICAgc2RmX2NvbmQgOiAiUk5fRVFfMV9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxODc1LCAwLjAxMzc1LCAwLjAwNzUsIDAuMDAxMjUsIC0wLjAwNSwgLTAuMDA4NzUsIC0wLjAxMTI1IiwgXAotICAgICAgICAgICIwLjAyMzc1LCAwLjAxODc1LCAwLjAxMjUsIDAuMDA2MjUsIDAsIC0wLjAwMzc1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiMC4wMywgMC4wMjUsIDAuMDE4NzUsIDAuMDEyNSwgMC4wMTI1LCAwLjAwMjUsIDAiLCBcCi0gICAgICAgICAgIjAuMDM2MjUsIDAuMDMxMjUsIDAuMDI1LCAwLjAxODc1LCAwLjAxODc1LCAwLjAxNSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiMC4wNDI1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDI1LCAwLjAyNSwgMC4wMTUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4wNTI1LCAwLjA0MTI1LCAwLjAzNSwgMC4wMzUsIDAuMDI4NzUsIDAuMDI1LCAwLjAyMjUiLCBcCi0gICAgICAgICAgIjAuMDU1LCAwLjA1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDM3NSwgMC4wMzM3NSwgMC4wMjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzc1LCAwLjAzMjUsIDAuMDI2MjUsIDAuMDIsIDAuMDIsIDAuMDE2MjUsIDAuMDEzNzUiLCBcCi0gICAgICAgICAgIjAuMDQyNSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMjUsIDAuMDIxMjUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMDQ4NzUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMzEyNSwgMC4wMjc1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiMC4wNTUsIDAuMDUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzc1LCAwLjAzMzc1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICIwLjA2MTI1LCAwLjA1NjI1LCAwLjA1LCAwLjA0Mzc1LCAwLjA0Mzc1LCAwLjAzMzc1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICIwLjA2NSwgMC4wNiwgMC4wNTM3NSwgMC4wNTM3NSwgMC4wNDc1LCAwLjA0Mzc1LCAwLjA0MTI1IiwgXAotICAgICAgICAgICIwLjA3Mzc1LCAwLjA2MjUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNSwgMC4wNDYyNSwgMC4wNDM3NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oR04pICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY1Nzc1MTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2NTc3NTE7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjU3NzIxOwotICAgIGNsb2NrIDogdHJ1ZTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAzNjYsIDAuMDAwMzk0LCAwLjAwMDQ4NCwgMC4wMDA1OTUsIDAuMDAwNzMsIDAuMDAwOTYsIDAuMDAxMTY1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA0NjY4LCAwLjAwNDY3NywgMC4wMDQ3NTUsIDAuMDA0ODc5LCAwLjAwNTAxNCwgMC4wMDUyNDcsIDAuMDA1NDM0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkdOIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRCZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjEzMjkwNSwgMC4xMzk4MjUsIDAuMTQ1MzI5LCAwLjE0OTI3MSwgMC4xNTI0MzQsIDAuMTU2ODY3LCAwLjE1OTk3MyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAxLjM2Mzk4OwotICAgIGZ1bmN0aW9uIDogIlFJTlQiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkQiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDgxNDUyLCAwLjEzNTk0LCAwLjE5MDY1NSwgMC4yMjk3MSwgMC4yOTE3OSwgMC4zNDY3NTgsIDAuNDI0MzAyIiwgXAotICAgICAgICAgICIwLjA4NzcxOSwgMC4xNDIyMDcsIDAuMTk2OTIyLCAwLjIzNTkzNywgMC4yOTgwNjgsIDAuMzUzMDI0LCAwLjQzMDU4OSIsIFwKLSAgICAgICAgICAiMC4wOTUwMjUsIDAuMTQ5NTAxLCAwLjIwNDA5NSwgMC4yNDMzMiwgMC4zMDUzNDMsIDAuMzYwMzEsIDAuNDM4MjI2IiwgXAotICAgICAgICAgICIwLjEwMTU4NCwgMC4xNTYwNzUsIDAuMjEwNTg0LCAwLjI0OTUyOSwgMC4zMTIyMDUsIDAuMzY2NzE3LCAwLjQ0NDE2MSIsIFwKLSAgICAgICAgICAiMC4xMDcxOSwgMC4xNjE3NTQsIDAuMjE2MjIsIDAuMjU1MTE5LCAwLjMxNzUsIDAuMzcyNDUsIDAuNDUwMDQzIiwgXAotICAgICAgICAgICIwLjExNDg2NCwgMC4xNjk0NTcsIDAuMjI0MDk5LCAwLjI2MjgyNiwgMC4zMjU0OTQsIDAuMzc5Njc3LCAwLjQ1Nzc0OCIsIFwKLSAgICAgICAgICAiMC4xMjA2MDEsIDAuMTc0OTkyLCAwLjIyOTY4OSwgMC4yNjg3NDksIDAuMzMwOTcyLCAwLjM4NTM3OCwgMC40NjMzNCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyMTg5OCwgMC4xMzUyMzMsIDAuMjUwNDE0LCAwLjMzMjUxLCAwLjQ2MjgwOSwgMC41Nzg5NTYsIDAuNzQyMjM0IiwgXAotICAgICAgICAgICIwLjAyMTgzMywgMC4xMzUyMzQsIDAuMjUwNDEyLCAwLjMzMjUwNCwgMC40NjI3OTcsIDAuNTc4OTU5LCAwLjc0MTUwNCIsIFwKLSAgICAgICAgICAiMC4wMjE4NTMsIDAuMTM1MjU1LCAwLjI1MDEyNywgMC4zMzI1ODcsIDAuNDYyODE5LCAwLjU3ODk5MiwgMC43NDMyMDQiLCBcCi0gICAgICAgICAgIjAuMDIxOTk3LCAwLjEzNTQ3NywgMC4yNDk4OTksIDAuMzMxOTM2LCAwLjQ2MzkwOSwgMC41Nzg4NSwgMC43NDE1NTIiLCBcCi0gICAgICAgICAgIjAuMDIxOTQ0LCAwLjEzNTQ2OCwgMC4yNTAzMDYsIDAuMzMyMjQsIDAuNDYzNjE2LCAwLjU3ODkzNSwgMC43NDI0NjciLCBcCi0gICAgICAgICAgIjAuMDIxODM5LCAwLjEzNTQyOSwgMC4yNTAzOTYsIDAuMzMyMTYxLCAwLjQ2Mzk0NiwgMC41Nzc5NjYsIDAuNzQyMTk1IiwgXAotICAgICAgICAgICIwLjAyMTg1OSwgMC4xMzUzNTcsIDAuMjUwNDY5LCAwLjMzMjQ5MiwgMC40NjMzOSwgMC41Nzc5ODEsIDAuNzQyMzQzIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk3Mjk3LCAwLjE1MTQzMSwgMC4yMDU1MzksIDAuMjQ0MTk4LCAwLjMwNjE3NywgMC4zNjA0MDMsIDAuNDM3NzExIiwgXAotICAgICAgICAgICIwLjEwMzA2NCwgMC4xNTcxMjUsIDAuMjExMjMyLCAwLjI0OTg4NywgMC4zMTE4MDYsIDAuMzY2MDc0LCAwLjQ0MzUzNyIsIFwKLSAgICAgICAgICAiMC4xMDk1ODIsIDAuMTYzNjkzLCAwLjIxNzgwMSwgMC4yNTY0NjEsIDAuMzE4NDI5LCAwLjM3MjYyNCwgMC40NDk5NjMiLCBcCi0gICAgICAgICAgIjAuMTE1NTg0LCAwLjE2OTY5NSwgMC4yMjM3OTMsIDAuMjYyNDc0LCAwLjMyNDUwOCwgMC4zNzg2NCwgMC40NTYyNDYiLCBcCi0gICAgICAgICAgIjAuMTIwNzE2LCAwLjE3NDg1OSwgMC4yMjg5MTgsIDAuMjY3NTgyLCAwLjMyOTUsIDAuMzgzNjY0LCAwLjQ2MTA2OSIsIFwKLSAgICAgICAgICAiMC4xMjc2NTcsIDAuMTgxNzU4LCAwLjIzNTkwMSwgMC4yNzQ1ODYsIDAuMzM2NTUsIDAuMzkwNjksIDAuNDY3OTgiLCBcCi0gICAgICAgICAgIjAuMTMyOTgyLCAwLjE4NzAzLCAwLjI0MTE1MSwgMC4yNzk4MjksIDAuMzQxNzgsIDAuMzk2MDI2LCAwLjQ3MzI3MiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyMTY3NiwgMC4xMzI2NDIsIDAuMjQ1MTg2LCAwLjMyNTI5MSwgMC40NTQ3MjksIDAuNTY3NjQ5LCAwLjcyNzE3NSIsIFwKLSAgICAgICAgICAiMC4wMjE2MzksIDAuMTMyNjQxLCAwLjI0NTE2NSwgMC4zMjUzOTksIDAuNDU0MjgxLCAwLjU2NzYyNiwgMC43Mjg3NzMiLCBcCi0gICAgICAgICAgIjAuMDIxNTk1LCAwLjEzMjY0MywgMC4yNDUxODksIDAuMzI1MjM3LCAwLjQ1NDY1MSwgMC41Njc1NjcsIDAuNzI3Njc5IiwgXAotICAgICAgICAgICIwLjAyMTc0MiwgMC4xMzI2NDMsIDAuMjQ0OTEsIDAuMzI1NTY1LCAwLjQ1NDkyMiwgMC41Njc2MSwgMC43MjY1OTMiLCBcCi0gICAgICAgICAgIjAuMDIxNjgxLCAwLjEzMjU3NCwgMC4yNDUyMDYsIDAuMzI1MjIsIDAuNDU0MjMyLCAwLjU2NjAzMywgMC43Mjc4MjkiLCBcCi0gICAgICAgICAgIjAuMDIxNjMsIDAuMTMyNjMzLCAwLjI0NDg5MiwgMC4zMjU3OTksIDAuNDU0ODQxLCAwLjU2NzUxNCwgMC43MjcxNiIsIFwKLSAgICAgICAgICAiMC4wMjE2MzcsIDAuMTMyNzAyLCAwLjI0NTIwNSwgMC4zMjU2MDksIDAuNDU0NTk1LCAwLjU2NzUsIDAuNzI3NzczIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkdOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5vbl91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogZmFsbGluZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEyNjI5NCwgMC4xODA4OTksIDAuMjM1NjQyLCAwLjI3NDYyMywgMC4zMzY2OTksIDAuMzkxNTk4LCAwLjQ2OTU3IiwgXAotICAgICAgICAgICIwLjEzMzIxMSwgMC4xODc2NDYsIDAuMjQyMjc3LCAwLjI4MTUyMiwgMC4zNDM2NDYsIDAuMzk4NTA5LCAwLjQ3NjAyMSIsIFwKLSAgICAgICAgICAiMC4xMzg3MzYsIDAuMTkzMTY4LCAwLjI0NzgwMywgMC4yODcwNDIsIDAuMzQ5MDYyLCAwLjQwNDAzMSwgMC40ODE0NzUiLCBcCi0gICAgICAgICAgIjAuMTQyNjY3LCAwLjE5NzE0MSwgMC4yNTE4NzYsIDAuMjkxMDA1LCAwLjM1MzAzNSwgMC40MDc5NiwgMC40ODU1NzMiLCBcCi0gICAgICAgICAgIjAuMTQ1OCwgMC4yMDAyMDUsIDAuMjU0ODY4LCAwLjI5NDA4MiwgMC4zNTYwOSwgMC40MTEwNjgsIDAuNDg4NjQ4IiwgXAotICAgICAgICAgICIwLjE1MDIzOCwgMC4yMDQ4NjIsIDAuMjU5MTU5LCAwLjI5ODQ5OSwgMC4zNjA4NzIsIDAuNDE1NTcxLCAwLjQ5MzEwMSIsIFwKLSAgICAgICAgICAiMC4xNTM0MTQsIDAuMjA4MDM4LCAwLjI2MjY1OCwgMC4zMDE3NCwgMC4zNjM3MzQsIDAuNDE4NzA3LCAwLjQ5NjI2NCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyMTgyOCwgMC4xMzU0NSwgMC4yNTA2NiwgMC4zMzI2MTIsIDAuNDYzNTk4LCAwLjU3OTA2MiwgMC43NDMyMTMiLCBcCi0gICAgICAgICAgIjAuMDIxODU1LCAwLjEzNTI0NCwgMC4yNTAyNTYsIDAuMzMyNzM4LCAwLjQ2MzI1MSwgMC41NzkwNjgsIDAuNzQyNDY0IiwgXAotICAgICAgICAgICIwLjAyMTc2OSwgMC4xMzUyNTUsIDAuMjUwMjQzLCAwLjMzMjczNiwgMC40NjM1MTQsIDAuNTc5MDcyLCAwLjc0MTc3NiIsIFwKLSAgICAgICAgICAiMC4wMjE3NjgsIDAuMTM1MjI0LCAwLjI1MDQxOSwgMC4zMzI1OTUsIDAuNDYzMDE4LCAwLjU3ODkzNSwgMC43NDIzMDQiLCBcCi0gICAgICAgICAgIjAuMDIxODIxLCAwLjEzNTIzOSwgMC4yNTAyNTYsIDAuMzMyNzM5LCAwLjQ2MzE3MiwgMC41NzkwNjUsIDAuNzQyNTM2IiwgXAotICAgICAgICAgICIwLjAyMTg1OSwgMC4xMzU0NTIsIDAuMjUwMDc3LCAwLjMzMjcyNywgMC40NjQwOCwgMC41NzkwNzMsIDAuNzQyMjk4IiwgXAotICAgICAgICAgICIwLjAyMTc2OCwgMC4xMzU0NTMsIDAuMjUwMzkxLCAwLjMzMjcxMywgMC40NjMxNzgsIDAuNTc4OTg1LCAwLjc0MjM4MiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEzMjkwNSwgMC4xODcwMjMsIDAuMjQxMTU0LCAwLjI3OTgwNCwgMC4zNDE4MjcsIDAuMzk1OTYyLCAwLjQ3MzU2OSIsIFwKLSAgICAgICAgICAiMC4xMzk4MjUsIDAuMTkzOTMsIDAuMjQ4MDY1LCAwLjI4NjcwNSwgMC4zNDg3NDIsIDAuNDAyODcyLCAwLjQ4MDQ4OCIsIFwKLSAgICAgICAgICAiMC4xNDUzMjksIDAuMTk5NDUyLCAwLjI1MzYxMSwgMC4yOTIyMjIsIDAuMzU0MjU4LCAwLjQwODM4NiwgMC40ODYwMDciLCBcCi0gICAgICAgICAgIjAuMTQ5MjcxLCAwLjIwMzM4OCwgMC4yNTc1MiwgMC4yOTYxNzIsIDAuMzU4MTk0LCAwLjQxMjMyNywgMC40ODk2MjIiLCBcCi0gICAgICAgICAgIjAuMTUyNDM0LCAwLjIwNjU2MywgMC4yNjA2OTIsIDAuMjk5MzM5LCAwLjM2MTM3LCAwLjQxNTQ2NywgMC40OTMxMTgiLCBcCi0gICAgICAgICAgIjAuMTU2ODY3LCAwLjIxMDkwOSwgMC4yNjUwMTQsIDAuMzAzNzQzLCAwLjM2NTcyMSwgMC40MTk5MjIsIDAuNDk3NDcxIiwgXAotICAgICAgICAgICIwLjE1OTk3MywgMC4yMTQwNjgsIDAuMjY4Mjc2LCAwLjMwNzA0OCwgMC4zNjg5OTEsIDAuNDIzMTM0LCAwLjUwMDM2NyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyMTY2NywgMC4xMzI2NDEsIDAuMjQ0OTI0LCAwLjMyNTYxNywgMC40NTQ5MiwgMC41Njc2MTQsIDAuNzI3NDYiLCBcCi0gICAgICAgICAgIjAuMDIxNzI0LCAwLjEzMjYzNywgMC4yNDQ5MDgsIDAuMzI1MTk5LCAwLjQ1NDkyNCwgMC41Njc2MTEsIDAuNzI3MTQxIiwgXAotICAgICAgICAgICIwLjAyMTY3OCwgMC4xMzI2NDksIDAuMjQ0OTQzLCAwLjMyNTI1MiwgMC40NTQ5MjMsIDAuNTY3NjA4LCAwLjcyNjYxNSIsIFwKLSAgICAgICAgICAiMC4wMjE2NywgMC4xMzI2NDYsIDAuMjQ0OTIzLCAwLjMyNTYxNiwgMC40NTQ5MjEsIDAuNTY3NjEyLCAwLjcyNjYyNCIsIFwKLSAgICAgICAgICAiMC4wMjE3MDMsIDAuMTMyNjQ2LCAwLjI0NDkxNywgMC4zMjU1ODUsIDAuNDU0OTIxLCAwLjU2NzYsIDAuNzI3MjI5IiwgXAotICAgICAgICAgICIwLjAyMTY3MywgMC4xMzI2MzUsIDAuMjQ1MjA4LCAwLjMyNTQ5MywgMC40NTQ5MjYsIDAuNTY3NjExLCAwLjcyNjY2MiIsIFwKLSAgICAgICAgICAiMC4wMjE2OTksIDAuMTMyNjA2LCAwLjI0NDk5OSwgMC4zMjU4OTIsIDAuNDU0ODM1LCAwLjU2NzQ4MywgMC43Mjc3NTkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUk4iOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJpc2luZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExODMxMiwgMC4xNzI3NjQsIDAuMjI3MzkxLCAwLjI2NjYzMSwgMC4zMjg2NDEsIDAuMzgzNjE0LCAwLjQ2MTE4NCIsIFwKLSAgICAgICAgICAiMC4xMjQzNzEsIDAuMTc4ODA4LCAwLjIzMzQzOSwgMC4yNzI2OCwgMC4zMzQ2ODgsIDAuMzg5NjY2LCAwLjQ2NzM0MiIsIFwKLSAgICAgICAgICAiMC4xMzE1MzgsIDAuMTg1OTc2LCAwLjI0MDYwNywgMC4yNzk4NDgsIDAuMzQxOTczLCAwLjM5NjgzNiwgMC40NzQ0NjUiLCBcCi0gICAgICAgICAgIjAuMTM3MzQ3LCAwLjE5MTc4MiwgMC4yNDY0MTUsIDAuMjg1NjU3LCAwLjM0NzY2OCwgMC40MDI2NDYsIDAuNDgwMDc2IiwgXAotICAgICAgICAgICIwLjE0MjMxOSwgMC4xOTY3NTIsIDAuMjUxMzkzLCAwLjI5MDYyMywgMC4zNTI2NCwgMC40MDc2MTMsIDAuNDg1MDE0IiwgXAotICAgICAgICAgICIwLjE0OTEzLCAwLjIwMzYyNywgMC4yNTgxNzcsIDAuMjk3NDY3LCAwLjM1OTQ1OSwgMC40MTQ0NDQsIDAuNDkxOTM4IiwgXAotICAgICAgICAgICIwLjE1NDQxNCwgMC4yMDkwNSwgMC4yNjM1MTYsIDAuMzAyNzc0LCAwLjM2NTE0MiwgMC40MTk3MjEsIDAuNDk3MTU4Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDIxOTQsIDAuMTM1MjQzLCAwLjI1MDE4MSwgMC4zMzI2MTEsIDAuNDYyOTUxLCAwLjU3OTA0OSwgMC43NDI1NjQiLCBcCi0gICAgICAgICAgIjAuMDIxOTQxLCAwLjEzNTIzNywgMC4yNTAxODQsIDAuMzMyNzQsIDAuNDYyOTE5LCAwLjU3OTA1OCwgMC43NDIxNjQiLCBcCi0gICAgICAgICAgIjAuMDIxOTA5LCAwLjEzNTIwOSwgMC4yNTAyNDYsIDAuMzMyNzM3LCAwLjQ2MzI1LCAwLjU3OTA2NCwgMC43NDIzMjciLCBcCi0gICAgICAgICAgIjAuMDIxODM5LCAwLjEzNTI1MywgMC4yNTAyNSwgMC4zMzI3MzYsIDAuNDYzMTgyLCAwLjU3OTA3MSwgMC43NDE4NDYiLCBcCi0gICAgICAgICAgIjAuMDIxOTIyLCAwLjEzNTIyNSwgMC4yNTAyMTksIDAuMzMyNzM1LCAwLjQ2MzY2LCAwLjU3OTA3NSwgMC43NDIwNzQiLCBcCi0gICAgICAgICAgIjAuMDIxODY0LCAwLjEzNTQ3NCwgMC4yNTAxNzYsIDAuMzMyNzM4LCAwLjQ2MzM0MiwgMC41NzkwNjEsIDAuNzQxOTM4IiwgXAotICAgICAgICAgICIwLjAyMTc3MywgMC4xMzU0NjUsIDAuMjUwMjQ4LCAwLjMzMjc4LCAwLjQ2NDA2NywgMC41Nzg5OTIsIDAuNzQyMDU0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiBmYWxsaW5nX2VkZ2U7Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTI0OTU3LCAwLjE3OTA1MSwgMC4yMzMxNCwgMC4yNzE4MDMsIDAuMzMzODI2LCAwLjM4ODA0OSwgMC40NjUyMzYiLCBcCi0gICAgICAgICAgIjAuMTMyODcsIDAuMTg3MDQ4LCAwLjI0MTE3MSwgMC4yNzk4MiwgMC4zNDE4NDEsIDAuMzk1OTAxLCAwLjQ3MzE3NSIsIFwKLSAgICAgICAgICAiMC4xNDE1NCwgMC4xOTU3MTQsIDAuMjQ5ODU3LCAwLjI4ODQ5LCAwLjM1MDU0NywgMC40MDQ2NzQsIDAuNDgxOTY3IiwgXAotICAgICAgICAgICIwLjE0ODUwNCwgMC4yMDI1NjUsIDAuMjU2NjkyLCAwLjI5NTMyNCwgMC4zNTczNjMsIDAuNDExNDk2LCAwLjQ4ODc3MiIsIFwKLSAgICAgICAgICAiMC4xNTQ4OTQsIDAuMjA5MDAxLCAwLjI2MzEwOCwgMC4zMDE3NjUsIDAuMzYzNzk5LCAwLjQxNzg0MiwgMC40OTUzNTkiLCBcCi0gICAgICAgICAgIjAuMTY0MzEsIDAuMjE4Mzk1LCAwLjI3MjQ4NSwgMC4zMTExNDcsIDAuMzczMTc4LCAwLjQyNzMxMiwgMC41MDQ1ODYiLCBcCi0gICAgICAgICAgIjAuMTcxNTQsIDAuMjI1Njg1LCAwLjI3OTgzOSwgMC4zMTg0OSwgMC4zODA1MTEsIDAuNDM0NjQ2LCAwLjUxMTkyNCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyMTY0MywgMC4xMzI2NDMsIDAuMjQ1MjA5LCAwLjMyNTQxNywgMC40NTQ3ODIsIDAuNTY3NDUxLCAwLjcyODM5NSIsIFwKLSAgICAgICAgICAiMC4wMjE3MDIsIDAuMTMyNjU3LCAwLjI0NTIwNiwgMC4zMjU4OTgsIDAuNDU0Nzg0LCAwLjU2NzQ4OCwgMC43Mjc2NjkiLCBcCi0gICAgICAgICAgIjAuMDIxNywgMC4xMzI2NDEsIDAuMjQ0OTEsIDAuMzI1MTY3LCAwLjQ1NDc5OCwgMC41Njc0MDQsIDAuNzI2NDUiLCBcCi0gICAgICAgICAgIjAuMDIxNzQ1LCAwLjEzMjY1NCwgMC4yNDQ5MjMsIDAuMzI1MTg4LCAwLjQ1NDc4NiwgMC41Njc0MjUsIDAuNzI3NzU4IiwgXAotICAgICAgICAgICIwLjAyMTY3MiwgMC4xMzI2NDIsIDAuMjQ1MjA4LCAwLjMyNTUsIDAuNDU0Nzg0LCAwLjU2NzM5NSwgMC43Mjg0NDQiLCBcCi0gICAgICAgICAgIjAuMDIxNzIsIDAuMTMyNjM5LCAwLjI0NTIwOCwgMC4zMjU2MDIsIDAuNDU0Nzc5LCAwLjU2NzQxNSwgMC43Mjc3NDgiLCBcCi0gICAgICAgICAgIjAuMDIxNzE5LCAwLjEzMjcwMywgMC4yNDUxMzcsIDAuMzI1NTk2LCAwLjQ1NDcxMSwgMC41NjczMzUsIDAuNzI4MjYzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiBwcmVzZXQ7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQ1MzUxLCAwLjA5OTgyNCwgMC4xNTQ0OTUsIDAuMTkzNjk4LCAwLjI1NTkwNSwgMC4zMTA0NTMsIDAuMzg4NDI4IiwgXAotICAgICAgICAgICIwLjA1MzUzOSwgMC4xMDgwMjMsIDAuMTYyNTMxLCAwLjIwMTg4NywgMC4yNjM5NzEsIDAuMzE4NDA4LCAwLjM5NjYxIiwgXAotICAgICAgICAgICIwLjA2MzE3OSwgMC4xMTc2MTEsIDAuMTcyNDExLCAwLjIxMTQ2OCwgMC4yNzM4NDMsIDAuMzI3OTYzLCAwLjQwNjE4NSIsIFwKLSAgICAgICAgICAiMC4wNzA2NTYsIDAuMTI1MTExLCAwLjE3OTgzNSwgMC4yMTg4MTYsIDAuMjgxMTU2LCAwLjMzNTcyLCAwLjQxMzY1NCIsIFwKLSAgICAgICAgICAiMC4wNzY2MDYsIDAuMTMxMDExLCAwLjE4NTQzNywgMC4yMjQ0ODEsIDAuMjg2ODQyLCAwLjM0MTQyNCwgMC40MTk1IiwgXAotICAgICAgICAgICIwLjA4NDI2NiwgMC4xMzg0MzgsIDAuMTkzMDIxLCAwLjIzMTg5OCwgMC4yOTQyNDYsIDAuMzQ4OTAzLCAwLjQyNjgzMiIsIFwKLSAgICAgICAgICAiMC4wODk3NjEsIDAuMTQ0MDc2LCAwLjE5ODQ3OSwgMC4yMzc0MjUsIDAuMjk5ODM1LCAwLjM1NDM4MiwgMC40MzIyOTEiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjE4NjksIDAuMTM1MzA2LCAwLjI1MDM4OSwgMC4zMzI1ODQsIDAuNDYzODgzLCAwLjU3ODg3OSwgMC43NDMwNzUiLCBcCi0gICAgICAgICAgIjAuMDIxODMsIDAuMTM1MzQ3LCAwLjI1MDE2NSwgMC4zMzI1NDMsIDAuNDYzNjQ4LCAwLjU3ODI5OSwgMC43NDMxMjEiLCBcCi0gICAgICAgICAgIjAuMDIxOTMxLCAwLjEzNTM1NSwgMC4yNTAzOTYsIDAuMzMyNzQ2LCAwLjQ2Mzk1MiwgMC41NzgyNjUsIDAuNzQzMDQiLCBcCi0gICAgICAgICAgIjAuMDIyMTUzLCAwLjEzNTQ2NSwgMC4yNTA2MTEsIDAuMzMyNTk2LCAwLjQ2Mzk0NCwgMC41Nzg5NTEsIDAuNzQzMTg1IiwgXAotICAgICAgICAgICIwLjAyMjE5MywgMC4xMzU0MzQsIDAuMjUwMTk3LCAwLjMzMjE5NiwgMC40NjM5NjUsIDAuNTc4ODY3LCAwLjc0MzE3MSIsIFwKLSAgICAgICAgICAiMC4wMjI0MzIsIDAuMTM1MzU1LCAwLjI1MDQ0OCwgMC4zMzI1NCwgMC40NjM0OTUsIDAuNTc4OTUzLCAwLjc0MzAxNSIsIFwKLSAgICAgICAgICAiMC4wMjI2MDUsIDAuMTM1MzMyLCAwLjI1MDIxLCAwLjMzMjI1OSwgMC40NjM4NzIsIDAuNTc4ODYzLCAwLjc0MzA1MyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1OTEyNCwgMC4xMTMyNjcsIDAuMTY3NCwgMC4yMDYwNDksIDAuMjY4MDY4LCAwLjMyMjIwNywgMC4zOTk0NjkiLCBcCi0gICAgICAgICAgIjAuMDY1MDExLCAwLjExOTExOCwgMC4xNzMyMjYsIDAuMjExODg1LCAwLjI3Mzg3MiwgMC4zMjgwOTEsIDAuNDA1NDUzIiwgXAotICAgICAgICAgICIwLjA3MjQ1OSwgMC4xMjY2MjIsIDAuMTgwNzMyLCAwLjIxOTM1OSwgMC4yODEzODgsIDAuMzM1NTIyLCAwLjQxMzEzOSIsIFwKLSAgICAgICAgICAiMC4wNzkyMDksIDAuMTMzMzE5LCAwLjE4NzQ1NCwgMC4yMjYwOTEsIDAuMjg4MTM1LCAwLjM0MjI1MywgMC40MTk4NzciLCBcCi0gICAgICAgICAgIjAuMDg0OTAyLCAwLjEzOTA0OCwgMC4xOTMxODcsIDAuMjMxODAzLCAwLjI5Mzg4MSwgMC4zNDc5NywgMC40MjU0MzUiLCBcCi0gICAgICAgICAgIjAuMDkyOTk5LCAwLjE0NzA0MiwgMC4yMDEyNiwgMC4yMzk5MTMsIDAuMzAxNzM3LCAwLjM1NjA5NywgMC40MzM0NTgiLCBcCi0gICAgICAgICAgIjAuMDk5MjYyLCAwLjE1MzE0LCAwLjIwNzM4OCwgMC4yNDYxOTMsIDAuMzA4MTYzLCAwLjM2MjI2NSwgMC40Mzk3OTkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjE2OTIsIDAuMTMyNjQ0LCAwLjI0NTE2NiwgMC4zMjU1ODksIDAuNDU0OTE0LCAwLjU2NzYxNCwgMC43MjY2NjkiLCBcCi0gICAgICAgICAgIjAuMDIxNjEsIDAuMTMyNjQxLCAwLjI0NTIwOCwgMC4zMjU0NTYsIDAuNDU0NzYzLCAwLjU2NzY0NywgMC43Mjg2NjUiLCBcCi0gICAgICAgICAgIjAuMDIxNjgxLCAwLjEzMjY0OCwgMC4yNDQ5NDYsIDAuMzI1NTYyLCAwLjQ1NDkxNSwgMC41Njc2MDEsIDAuNzI3NDQyIiwgXAotICAgICAgICAgICIwLjAyMTc0OSwgMC4xMzI2NSwgMC4yNDUxNTYsIDAuMzI1NiwgMC40NTQ5MzEsIDAuNTY3NTM3LCAwLjcyNzQ0NCIsIFwKLSAgICAgICAgICAiMC4wMjE4OCwgMC4xMzI2MjQsIDAuMjQ0OTY4LCAwLjMyNTM3LCAwLjQ1NDkzOCwgMC41Njc1NDksIDAuNzI4NjIyIiwgXAotICAgICAgICAgICIwLjAyMjAxMSwgMC4xMzI3NTIsIDAuMjQ0OTk4LCAwLjMyNTUzOSwgMC40NTQ2OTIsIDAuNTY3NTkzLCAwLjcyODYxMyIsIFwKLSAgICAgICAgICAiMC4wMjIyNTQsIDAuMTMyNzE5LCAwLjI0NTA1NSwgMC4zMjU5NDEsIDAuNDU0MTQxLCAwLjU2NzU4LCAwLjcyODc4OSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkQiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA5NjA1LCAwLjAwOTc3LCAwLjAwOTc5OCwgMC4wMDk4MDYsIDAuMDA5ODE0LCAwLjAwOTgzMSwgMC4wMDk4MjEiLCBcCi0gICAgICAgICAgIjAuMDA5NTgzLCAwLjAwOTc0OSwgMC4wMDk3ODksIDAuMDA5Nzg1LCAwLjAwOTc5MywgMC4wMDk3OTcsIDAuMDA5OCIsIFwKLSAgICAgICAgICAiMC4wMDk1ODUsIDAuMDA5NzQ3LCAwLjAwOTc3NiwgMC4wMDk3ODUsIDAuMDA5NzkyLCAwLjAwOTgwNCwgMC4wMDk4MDUiLCBcCi0gICAgICAgICAgIjAuMDA5NjIxLCAwLjAwOTc4MiwgMC4wMDk4MSwgMC4wMDk4MTksIDAuMDA5ODI2LCAwLjAwOTgyNywgMC4wMDk4MjciLCBcCi0gICAgICAgICAgIjAuMDA5Njg1LCAwLjAwOTgzMiwgMC4wMDk4NiwgMC4wMDk4NjksIDAuMDA5ODc3LCAwLjAwOTg4MiwgMC4wMDk4ODUiLCBcCi0gICAgICAgICAgIjAuMDA5NzY1LCAwLjAwOTkwOSwgMC4wMDk5MzcsIDAuMDA5OTQ3LCAwLjAwOTk1NCwgMC4wMDk5NTgsIDAuMDA5OTYzIiwgXAotICAgICAgICAgICIwLjAwOTgyLCAwLjAwOTk2MywgMC4wMDk5OSwgMC4wMTAwMTEsIDAuMDEwMDA2LCAwLjAxMDAxMSwgMC4wMTAwMjciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMDU0NywgMC4wMTA2NDksIDAuMDEwNjY4LCAwLjAxMDY3NCwgMC4wMTA2OCwgMC4wMTA2ODUsIDAuMDEwNjg1IiwgXAotICAgICAgICAgICIwLjAxMDU0MywgMC4wMTA2MzgsIDAuMDEwNjU3LCAwLjAxMDY2MiwgMC4wMTA2NjcsIDAuMDEwNjcsIDAuMDEwNjczIiwgXAotICAgICAgICAgICIwLjAxMDU1MiwgMC4wMTA2NDUsIDAuMDEwNjY0LCAwLjAxMDY3LCAwLjAxMDY3NiwgMC4wMTA2NzgsIDAuMDEwNjg0IiwgXAotICAgICAgICAgICIwLjAxMDU0OSwgMC4wMTA2NDMsIDAuMDEwNjY0LCAwLjAxMDY3MSwgMC4wMTA2NzcsIDAuMDEwNjgyLCAwLjAxMDY4MyIsIFwKLSAgICAgICAgICAiMC4wMTA1ODUsIDAuMDEwNjc1LCAwLjAxMDY5NywgMC4wMTA3MDQsIDAuMDEwNzEyLCAwLjAxMDcxNSwgMC4wMTA3MTYiLCBcCi0gICAgICAgICAgIjAuMDEwNzA3LCAwLjAxMDc4NCwgMC4wMTA4MDYsIDAuMDEwODEsIDAuMDEwODE2LCAwLjAxMDgxOSwgMC4wMTA4MjIiLCBcCi0gICAgICAgICAgIjAuMDEwNzY0LCAwLjAxMDg0NiwgMC4wMTA4NjEsIDAuMDEwODcsIDAuMDEwODczLCAwLjAxMDg3NSwgMC4wMTA4NzciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJHTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTE4NCwgMC4wMTIwMDksIDAuMDEyMDM3LCAwLjAxMjA0NiwgMC4wMTIwNTQsIDAuMDEyMDU2LCAwLjAxMjA2MSIsIFwKLSAgICAgICAgICAiMC4wMTE4NDIsIDAuMDEyMDEyLCAwLjAxMjA0LCAwLjAxMjA0OSwgMC4wMTIwNTcsIDAuMDEyMDYyLCAwLjAxMjA2NSIsIFwKLSAgICAgICAgICAiMC4wMTE4ODEsIDAuMDEyMDUxLCAwLjAxMjA3OSwgMC4wMTIwODYsIDAuMDEyMDk2LCAwLjAxMjEwMiwgMC4wMTIxMDIiLCBcCi0gICAgICAgICAgIjAuMDExOTMzLCAwLjAxMjEwNywgMC4wMTIxMzYsIDAuMDEyMTUyLCAwLjAxMjE1MiwgMC4wMTIxNiwgMC4wMTIxNjMiLCBcCi0gICAgICAgICAgIjAuMDExOTkyLCAwLjAxMjE2NSwgMC4wMTIxOTUsIDAuMDEyMjAzLCAwLjAxMjIxLCAwLjAxMjIxNCwgMC4wMTIyMTciLCBcCi0gICAgICAgICAgIjAuMDEyMTE0LCAwLjAxMjI4NiwgMC4wMTIzMTksIDAuMDEyMzI4LCAwLjAxMjMzNiwgMC4wMTIzMzQsIDAuMDEyMzM3IiwgXAotICAgICAgICAgICIwLjAxMjIxMywgMC4wMTIzOTUsIDAuMDEyNDA5LCAwLjAxMjQzMiwgMC4wMTI0MzksIDAuMDEyNDQzLCAwLjAxMjQzMiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEyNjQ1LCAwLjAxMjc0NCwgMC4wMTI3NjQsIDAuMDEyNzcsIDAuMDEyNzc1LCAwLjAxMjc4MiwgMC4wMTI3OCIsIFwKLSAgICAgICAgICAiMC4wMTI2NzYsIDAuMDEyNzYsIDAuMDEyNzc5LCAwLjAxMjc4NSwgMC4wMTI3OTEsIDAuMDEyNzkzLCAwLjAxMjc5NSIsIFwKLSAgICAgICAgICAiMC4wMTI2OTEsIDAuMDEyNzg4LCAwLjAxMjgwOCwgMC4wMTI4MTQsIDAuMDEyODIsIDAuMDEyODIyLCAwLjAxMjgyNSIsIFwKLSAgICAgICAgICAiMC4wMTI3NDksIDAuMDEyODY0LCAwLjAxMjg2NywgMC4wMTI4NzMsIDAuMDEyODk0LCAwLjAxMjg5NywgMC4wMTI4OTkiLCBcCi0gICAgICAgICAgIjAuMDEyODI3LCAwLjAxMjkyLCAwLjAxMjk0LCAwLjAxMjk0NiwgMC4wMTI5NTEsIDAuMDEyOTUxLCAwLjAxMjk1NSIsIFwKLSAgICAgICAgICAiMC4wMTI5MjgsIDAuMDEzMDI3LCAwLjAxMzA0NiwgMC4wMTMwNDcsIDAuMDEzMDYsIDAuMDEzMDU1LCAwLjAxMzA2MyIsIFwKLSAgICAgICAgICAiMC4wMTMwNDksIDAuMDEzMTMyLCAwLjAxMzE1NCwgMC4wMTMxNTMsIDAuMDEzMTU4LCAwLjAxMzE1OSwgMC4wMTMxNyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMDc2NiwgMC4wMTA5NDIsIDAuMDEwOTcsIDAuMDEwOTc5LCAwLjAxMDk4NywgMC4wMTA5OTEsIDAuMDEwOTk1IiwgXAotICAgICAgICAgICIwLjAxMDc1LCAwLjAxMDkyNCwgMC4wMTA5NTIsIDAuMDEwOTYxLCAwLjAxMDk2OSwgMC4wMTA5NzMsIDAuMDEwOTc2IiwgXAotICAgICAgICAgICIwLjAxMDc3NSwgMC4wMTA5NDYsIDAuMDEwOTc0LCAwLjAxMDk4MywgMC4wMTA5OTEsIDAuMDEwOTk4LCAwLjAxMTAwMiIsIFwKLSAgICAgICAgICAiMC4wMTA4MDQsIDAuMDEwOTc0LCAwLjAxMTAwMSwgMC4wMTEwMTEsIDAuMDExMDE4LCAwLjAxMTAyMywgMC4wMTEwMjUiLCBcCi0gICAgICAgICAgIjAuMDEwODM0LCAwLjAxMTAwOCwgMC4wMTEwMzMsIDAuMDExMDQyLCAwLjAxMTA0NiwgMC4wMTEwNTQsIDAuMDExMDU3IiwgXAotICAgICAgICAgICIwLjAxMDkxMywgMC4wMTEwOSwgMC4wMTExMTksIDAuMDExMTI3LCAwLjAxMTEzNiwgMC4wMTExNCwgMC4wMTExNDQiLCBcCi0gICAgICAgICAgIjAuMDExMDE2LCAwLjAxMTE4NSwgMC4wMTEyMTMsIDAuMDExMjIxLCAwLjAxMTIzMSwgMC4wMTEyMzMsIDAuMDExMjM4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTI0ODIsIDAuMDEyNTgxLCAwLjAxMjYsIDAuMDEyNjA2LCAwLjAxMjYxMiwgMC4wMTI2MTMsIDAuMDEyNjE1IiwgXAotICAgICAgICAgICIwLjAxMjQ4NCwgMC4wMTI1NzUsIDAuMDEyNTk1LCAwLjAxMjYsIDAuMDEyNjA1LCAwLjAxMjYwOCwgMC4wMTI2MSIsIFwKLSAgICAgICAgICAiMC4wMTI1MjcsIDAuMDEyNjE1LCAwLjAxMjYzNCwgMC4wMTI2NCwgMC4wMTI2NDUsIDAuMDEyNjU4LCAwLjAxMjY0OSIsIFwKLSAgICAgICAgICAiMC4wMTI1NjcsIDAuMDEyNjYxLCAwLjAxMjY3OSwgMC4wMTI2ODUsIDAuMDEyNjksIDAuMDEyNzAxLCAwLjAxMjY5NCIsIFwKLSAgICAgICAgICAiMC4wMTI2MzcsIDAuMDEyNzI4LCAwLjAxMjc0NSwgMC4wMTI3NTEsIDAuMDEyNzU2LCAwLjAxMjc1OSwgMC4wMTI3NjEiLCBcCi0gICAgICAgICAgIjAuMDEyNzIzLCAwLjAxMjgxLCAwLjAxMjgyOSwgMC4wMTI4MzQsIDAuMDEyODQsIDAuMDEyODQyLCAwLjAxMjg0NCIsIFwKLSAgICAgICAgICAiMC4wMTI4NCwgMC4wMTI5MjcsIDAuMDEyOTQ4LCAwLjAxMjk1NCwgMC4wMTI5NjIsIDAuMDEyOTYxLCAwLjAxMjk2MiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMDU1OSwgMC4wMTA3MTEsIDAuMDEwNzMzLCAwLjAxMDczOSwgMC4wMTA3NDQsIDAuMDEwNzQ3LCAwLjAxMDc1IiwgXAotICAgICAgICAgICIwLjAxMDUzMSwgMC4wMTA2ODksIDAuMDEwNzE0LCAwLjAxMDcyMywgMC4wMTA3MywgMC4wMTA3MzgsIDAuMDEwNzM2IiwgXAotICAgICAgICAgICIwLjAxMDYwOCwgMC4wMTA3NDEsIDAuMDEwNzY5LCAwLjAxMDc3OCwgMC4wMTA3ODcsIDAuMDEwNzkxLCAwLjAxMDc5NSIsIFwKLSAgICAgICAgICAiMC4wMTA3MzYsIDAuMDEwODM1LCAwLjAxMDg2NiwgMC4wMTA4NzYsIDAuMDEwODg1LCAwLjAxMDg5MSwgMC4wMTA4OTQiLCBcCi0gICAgICAgICAgIjAuMDEwOTA4LCAwLjAxMDk3MywgMC4wMTEsIDAuMDExMDEsIDAuMDExMDE5LCAwLjAxMTAyNCwgMC4wMTEwMyIsIFwKLSAgICAgICAgICAiMC4wMTEyMTUsIDAuMDExMjI2LCAwLjAxMTI0OSwgMC4wMTEyNTcsIDAuMDExMjY2LCAwLjAxMTI3MSwgMC4wMTEyNzYiLCBcCi0gICAgICAgICAgIjAuMDExNTA2LCAwLjAxMTQ1NSwgMC4wMTE0NzIsIDAuMDExNDgyLCAwLjAxMTQ5LCAwLjAxMTQ5NCwgMC4wMTE0OTciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwODU3MywgMC4wMDg2ODUsIDAuMDA4NywgMC4wMDg3MDUsIDAuMDA4NzA5LCAwLjAwODcxMywgMC4wMDg3MTMiLCBcCi0gICAgICAgICAgIjAuMDA4NDk4LCAwLjAwODYxNywgMC4wMDg2MzYsIDAuMDA4NjQyLCAwLjAwODY0NywgMC4wMDg2NTIsIDAuMDA4NjU1IiwgXAotICAgICAgICAgICIwLjAwODYxNSwgMC4wMDg2OTIsIDAuMDA4NzExLCAwLjAwODcxNywgMC4wMDg3MjIsIDAuMDA4NzI1LCAwLjAwODcyNyIsIFwKLSAgICAgICAgICAiMC4wMDg4MjYsIDAuMDA4ODQ1LCAwLjAwODg1NSwgMC4wMDg4NiwgMC4wMDg4NjgsIDAuMDA4ODY3LCAwLjAwODg3MyIsIFwKLSAgICAgICAgICAiMC4wMDg4MjIsIDAuMDA4ODYyLCAwLjAwODg3NiwgMC4wMDg4ODIsIDAuMDA4ODg4LCAwLjAwODg5MSwgMC4wMDg4OTQiLCBcCi0gICAgICAgICAgIjAuMDA5MDgzLCAwLjAwOTA3NCwgMC4wMDkwOTMsIDAuMDA5MDk5LCAwLjAwOTEwMSwgMC4wMDkxMDEsIDAuMDA5MTA5IiwgXAotICAgICAgICAgICIwLjAwOTQ0OSwgMC4wMDkzNjgsIDAuMDA5MzcxLCAwLjAwOTM2OSwgMC4wMDkzNzEsIDAuMDA5MzcsIDAuMDA5MzcxIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihRTikgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAxLjM2MDM4OwotICAgIGZ1bmN0aW9uIDogIk41IjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJEIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5MjA3MiwgMC4xNTMzOSwgMC4yMDg1MiwgMC4yNDc4MSwgMC4zMTA2NTEsIDAuMzY1NjY4LCAwLjQ0NDIwNSIsIFwKLSAgICAgICAgICAiMC4wOTc4MTQsIDAuMTU5MTIxLCAwLjIxNDI1MSwgMC4yNTM1NDMsIDAuMzE2MzgsIDAuMzcxMzg2LCAwLjQ0OTk4MSIsIFwKLSAgICAgICAgICAiMC4xMDQzNDYsIDAuMTY1NjU0LCAwLjIyMDc4NSwgMC4yNjAwNzQsIDAuMzIyOTA5LCAwLjM3NzkwNiwgMC40NTY0OTYiLCBcCi0gICAgICAgICAgIjAuMTEwMzc1LCAwLjE3MTY5MiwgMC4yMjY4MjYsIDAuMjY2MTEsIDAuMzI4OTk3LCAwLjM4Mzk1NywgMC40NjI2NzUiLCBcCi0gICAgICAgICAgIjAuMTE1NTEsIDAuMTc2ODQsIDAuMjMxOTcyLCAwLjI3MTI2MSwgMC4zMzQwOTksIDAuMzg5MTMsIDAuNDY3Njg3IiwgXAotICAgICAgICAgICIwLjEyMjQ1MywgMC4xODM3OTcsIDAuMjM4OTM4LCAwLjI3ODIxOCwgMC4zNDEwODksIDAuMzk2MDU0LCAwLjQ3NDY1OSIsIFwKLSAgICAgICAgICAiMC4xMjc3NjYsIDAuMTg5MTM4LCAwLjI0NDI4MywgMC4yODM1NTksIDAuMzQ2Mzk4LCAwLjQwMTQyNiwgMC40Nzk5NTgiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzMzNzQsIDAuMTQyNzc2LCAwLjI1NjA2OCwgMC4zMzc4NDUsIDAuNDcwMzI5LCAwLjU4NjQyNCwgMC43NTEyMTUiLCBcCi0gICAgICAgICAgIjAuMDMzMzQ5LCAwLjE0Mjc3OCwgMC4yNTYwNiwgMC4zMzc4NywgMC40Njk5NjksIDAuNTg2NDA1LCAwLjc1MjMwNyIsIFwKLSAgICAgICAgICAiMC4wMzMzNDgsIDAuMTQyNzc4LCAwLjI1NjA3LCAwLjMzNzg1OCwgMC40NzAyNTgsIDAuNTg2MzQ3LCAwLjc1MTM5NSIsIFwKLSAgICAgICAgICAiMC4wMzMzNTEsIDAuMTQyNzcyLCAwLjI1NTg2NSwgMC4zMzc5MjgsIDAuNDcwNTI1LCAwLjU4NjM5NiwgMC43NTA4OTciLCBcCi0gICAgICAgICAgIjAuMDMzNDQ5LCAwLjE0MjczNSwgMC4yNTYwMzYsIDAuMzM3ODY5LCAwLjQ2OTk0NiwgMC41ODUzODIsIDAuNzUxMzkxIiwgXAotICAgICAgICAgICIwLjAzMzYxOCwgMC4xNDI4NTMsIDAuMjU2MDE4LCAwLjMzODIyMiwgMC40NzA0OTMsIDAuNTg2MzM5LCAwLjc1MTA5OSIsIFwKLSAgICAgICAgICAiMC4wMzM2NDUsIDAuMTQyOTA3LCAwLjI1NjA0OSwgMC4zMzgwMywgMC40NzAyMzMsIDAuNTg2Mjk5LCAwLjc1MTM3NiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3NTIxNywgMC4xMzE5MTQsIDAuMTg1OTQsIDAuMjI0NTE1LCAwLjI4NjI2NCwgMC4zNDAyNjEsIDAuNDE3NDAzIiwgXAotICAgICAgICAgICIwLjA4MTQ4MSwgMC4xMzgxNzgsIDAuMTkyMjA1LCAwLjIzMDc3NSwgMC4yOTI1MTcsIDAuMzQ2NTI3LCAwLjQyMzY2MyIsIFwKLSAgICAgICAgICAiMC4wODg3OTgsIDAuMTQ1NDc5LCAwLjE5OTUyMiwgMC4yMzgxMSwgMC4yOTk4NDYsIDAuMzUzODQ1LCAwLjQzMDkzNSIsIFwKLSAgICAgICAgICAiMC4wOTUzNDksIDAuMTUyMDYsIDAuMjA2MDk4LCAwLjI0NDY3NywgMC4zMDYzNjYsIDAuMzYwMzUzLCAwLjQzNzQ0NSIsIFwKLSAgICAgICAgICAiMC4xMDA5OTEsIDAuMTU3NzA5LCAwLjIxMTczNiwgMC4yNTAzMzEsIDAuMzEyMDU5LCAwLjM2NjA1MywgMC40NDMxNzMiLCBcCi0gICAgICAgICAgIjAuMTA4NjU0LCAwLjE2NTM5NSwgMC4yMTk0MzYsIDAuMjU4MDA2LCAwLjMxOTczNSwgMC4zNzM3MzEsIDAuNDUwODM4IiwgXAotICAgICAgICAgICIwLjExNDQyMSwgMC4xNzEyLCAwLjIyNTIyNSwgMC4yNjM4LCAwLjMyNTUyMiwgMC4zNzk1MywgMC40NTY2NDYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjcyNDMsIDAuMTM0MjU0LCAwLjI0NTM1OCwgMC4zMjU2MDQsIDAuNDUyNjY5LCAwLjU2NjI5MywgMC43MjUyMTYiLCBcCi0gICAgICAgICAgIjAuMDI3MjM1LCAwLjEzNDI2NCwgMC4yNDUzNTksIDAuMzI1NTU4LCAwLjQ1MjY4MiwgMC41NjYyOTgsIDAuNzI1MDMiLCBcCi0gICAgICAgICAgIjAuMDI3MjUyLCAwLjEzNDI5NSwgMC4yNDUxOTIsIDAuMzI1NjgzLCAwLjQ1MjY3MywgMC41NjYzNDgsIDAuNzI2ODA5IiwgXAotICAgICAgICAgICIwLjAyNzMyOCwgMC4xMzQ0OTcsIDAuMjQ1MDY0LCAwLjMyNDk3MywgMC40NTM4NzQsIDAuNTY2MTA1LCAwLjcyNDgzOCIsIFwKLSAgICAgICAgICAiMC4wMjc0MTUsIDAuMTM0NDksIDAuMjQ1NDY1LCAwLjMyNTIxMywgMC40NTMwODgsIDAuNTY2MzAzLCAwLjcyNjAzOSIsIFwKLSAgICAgICAgICAiMC4wMjc1OTIsIDAuMTM0NDk0LCAwLjI0NTY4MiwgMC4zMjUyNzgsIDAuNDUzOTIsIDAuNTY1MzQyLCAwLjcyNTgyOSIsIFwKLSAgICAgICAgICAiMC4wMjc3NTksIDAuMTM0NDc1LCAwLjI0NTYxLCAwLjMyNTUzNywgMC40NTMzNDEsIDAuNTY1MzQ5LCAwLjcyNTkxOCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJHTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBub25fdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGZhbGxpbmdfZWRnZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMjc3MTQsIDAuMTg5MDgzLCAwLjI0NDIxNSwgMC4yODM0OTgsIDAuMzQ2MzgsIDAuNDAxMzQyLCAwLjQ4MDA1MiIsIFwKLSAgICAgICAgICAiMC4xMzQ2MywgMC4xOTU5OCwgMC4yNTExMSwgMC4yOTAzOTgsIDAuMzUzMjgsIDAuNDA4MjM5LCAwLjQ4Njk2IiwgXAotICAgICAgICAgICIwLjE0MDEzNywgMC4yMDE1MDgsIDAuMjU2NjQ5LCAwLjI5NTkyMywgMC4zNTg4MDcsIDAuNDEzNzY0LCAwLjQ5MjQ5MyIsIFwKLSAgICAgICAgICAiMC4xNDQwNzksIDAuMjA1NDMsIDAuMjYwNTgsIDAuMjk5ODYyLCAwLjM2MjcyNSwgMC40MTc2ODYsIDAuNDk2MzE0IiwgXAotICAgICAgICAgICIwLjE0NzI0OSwgMC4yMDg2MTYsIDAuMjYzNzQyLCAwLjMwMzAzLCAwLjM2NTkxMywgMC40MjA4MzksIDAuNDk5NTk0IiwgXAotICAgICAgICAgICIwLjE1MTY3MSwgMC4yMTI5NywgMC4yNjgxMDUsIDAuMzA3NDcsIDAuMzcwMjc1LCAwLjQyNTMwNSwgMC41MDM5NjIiLCBcCi0gICAgICAgICAgIjAuMTU0NzgzLCAwLjIxNjExNywgMC4yNzEyNjQsIDAuMzEwNjQ0LCAwLjM3MzUwNSwgMC40Mjg0NzIsIDAuNTA2OTc4Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDMzNDU5LCAwLjE0MjgxNCwgMC4yNTYwMDcsIDAuMzM4MDA5LCAwLjQ3MDUyNiwgMC41ODYzOTksIDAuNzUxMDIyIiwgXAotICAgICAgICAgICIwLjAzMzQ4NiwgMC4xNDI4MjQsIDAuMjU2MDEsIDAuMzM3NzgsIDAuNDcwNTI4LCAwLjU4NjM5NiwgMC43NTEwNDMiLCBcCi0gICAgICAgICAgIjAuMDMzNDYxLCAwLjE0MjgxNiwgMC4yNTYwMjEsIDAuMzM3NzYsIDAuNDcwNTI4LCAwLjU4NjM5NCwgMC43NTA5MTMiLCBcCi0gICAgICAgICAgIjAuMDMzNDU4LCAwLjE0MjgyMiwgMC4yNTYwMDgsIDAuMzM4MDI2LCAwLjQ3MDUyOCwgMC41ODY0LCAwLjc1MDcyNCIsIFwKLSAgICAgICAgICAiMC4wMzM0NzQsIDAuMTQyODIxLCAwLjI1NjAwNSwgMC4zMzc5NDksIDAuNDcwNTI4LCAwLjU4NjM4NywgMC43NTEwMzQiLCBcCi0gICAgICAgICAgIjAuMDMzNDUzLCAwLjE0MjgyLCAwLjI1NjA0MywgMC4zMzc4NjIsIDAuNDcwNTI2LCAwLjU4NjM5NSwgMC43NTA5MzIiLCBcCi0gICAgICAgICAgIjAuMDMzNDYsIDAuMTQyNzEzLCAwLjI1NTg5NCwgMC4zMzgyODcsIDAuNDcwNDgsIDAuNTg2MywgMC43NTEyOTgiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMjAwNjQsIDAuMTc2NzY4LCAwLjIzMDgxLCAwLjI2OTM4NCwgMC4zMzExMDQsIDAuMzg1MTA2LCAwLjQ2MjI1MiIsIFwKLSAgICAgICAgICAiMC4xMjY5ODQsIDAuMTgzNjkxLCAwLjIzNzcxOSwgMC4yNzYzMDYsIDAuMzM3OTgyLCAwLjM5MjAzOCwgMC40NjkxODgiLCBcCi0gICAgICAgICAgIjAuMTMyNTA3LCAwLjE4OTIxNSwgMC4yNDMyNDMsIDAuMjgxODMsIDAuMzQzNTYzLCAwLjM5NzU2MywgMC40NzQ3NTEiLCBcCi0gICAgICAgICAgIjAuMTM2NDUsIDAuMTkzMTYsIDAuMjQ3MTg4LCAwLjI4NTc4NywgMC4zNDc1MDYsIDAuNDAxNDkyLCAwLjQ3ODY0NCIsIFwKLSAgICAgICAgICAiMC4xMzk1OCwgMC4xOTYyNjQsIDAuMjUwMzI0LCAwLjI4ODg4MSwgMC4zNTA2MjMsIDAuNDA0NjE0LCAwLjQ4MTc0OCIsIFwKLSAgICAgICAgICAiMC4xNDQwNjEsIDAuMjAwNzczLCAwLjI1NDc1MiwgMC4yOTMzMiwgMC4zNTUwMywgMC40MDkxMTksIDAuNDg2MjY3IiwgXAotICAgICAgICAgICIwLjE0NzIwNywgMC4yMDM5MTksIDAuMjU3OTU1LCAwLjI5NjUyNCwgMC4zNTgzMDYsIDAuNDEyMjQxLCAwLjQ4OTQxMiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyNzIzOSwgMC4xMzQ0MjIsIDAuMjQ1NzQ5LCAwLjMyNTY2NywgMC40NTM0NSwgMC41NjYzMDYsIDAuNzI2ODYiLCBcCi0gICAgICAgICAgIjAuMDI3MjM3LCAwLjEzNDIyNCwgMC4yNDU0NTcsIDAuMzI1NjkxLCAwLjQ1MzI2NCwgMC41NjYzMTksIDAuNzI1OTI0IiwgXAotICAgICAgICAgICIwLjAyNzIzLCAwLjEzNDIyNywgMC4yNDU0NTEsIDAuMzI1Njg5LCAwLjQ1MzM3LCAwLjU2NjMyMywgMC43MjU0MTYiLCBcCi0gICAgICAgICAgIjAuMDI3MjMxLCAwLjEzNDI1MiwgMC4yNDU2MDIsIDAuMzI1NjYsIDAuNDUyOTk4LCAwLjU2NjI3NywgMC43MjYwMzQiLCBcCi0gICAgICAgICAgIjAuMDI3MjM4LCAwLjEzNDIyNiwgMC4yNDU0NTcsIDAuMzI1NjkzLCAwLjQ1MzE4OCwgMC41NjYzMTgsIDAuNzI2MDgyIiwgXAotICAgICAgICAgICIwLjAyNzIzMywgMC4xMzQ0MjQsIDAuMjQ1MzM0LCAwLjMyNTY4MywgMC40NTM5MjksIDAuNTY2MzIzLCAwLjcyNTk0NSIsIFwKLSAgICAgICAgICAiMC4wMjcyMzQsIDAuMTM0NDMsIDAuMjQ1NjA0LCAwLjMyNTY0NCwgMC40NTMwODEsIDAuNTY2MjExLCAwLjcyNTk1NyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcmlzaW5nX2VkZ2U7Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTEyMDk3LCAwLjE2ODgxLCAwLjIyMjg0LCAwLjI2MTQzLCAwLjMyMzE2LCAwLjM3NzE1OSwgMC40NTQyOTQiLCBcCi0gICAgICAgICAgIjAuMTE4MTUsIDAuMTc0ODYxLCAwLjIyODg5LCAwLjI2NzQ3OCwgMC4zMjkyMiwgMC4zODMyMSwgMC40NjAzMzUiLCBcCi0gICAgICAgICAgIjAuMTI1MzE1LCAwLjE4MjAyMywgMC4yMzYwNTEsIDAuMjc0NjM5LCAwLjMzNjMxNSwgMC4zOTAzNzIsIDAuNDY3NDk4IiwgXAotICAgICAgICAgICIwLjEzMTEyLCAwLjE4NzgyOCwgMC4yNDE4NTYsIDAuMjgwNDQyLCAwLjM0MjE4MywgMC4zOTYxNzUsIDAuNDczMzU0IiwgXAotICAgICAgICAgICIwLjEzNjA5NiwgMC4xOTI4MDgsIDAuMjQ2ODM2LCAwLjI4NTQyNCwgMC4zNDcxNjQsIDAuNDAxMTU4LCAwLjQ3ODMxMSIsIFwKLSAgICAgICAgICAiMC4xNDI5NDMsIDAuMTk5NjYsIDAuMjUzNjk0LCAwLjI5MjI3OSwgMC4zNTQwMywgMC40MDgwMDMsIDAuNDg1MTY1IiwgXAotICAgICAgICAgICIwLjE0ODIwNywgMC4yMDQ5MzYsIDAuMjU4OTUzLCAwLjI5NzU1MiwgMC4zNTkyNTgsIDAuNDEzMjUzLCAwLjQ5MDQzNSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyNzIzNSwgMC4xMzQyNSwgMC4yNDU0NDksIDAuMzI1Njk2LCAwLjQ1MjY0OCwgMC41NjYzMDYsIDAuNzI2MDc3IiwgXAotICAgICAgICAgICIwLjAyNzIzMSwgMC4xMzQyNDcsIDAuMjQ1NDUxLCAwLjMyNTY5NCwgMC40NTI2NjEsIDAuNTY2MzEyLCAwLjcyNTg0MSIsIFwKLSAgICAgICAgICAiMC4wMjcyMzgsIDAuMTM0MjQ3LCAwLjI0NTQ1MywgMC4zMjU2OTEsIDAuNDUzMjYyLCAwLjU2NjMxNywgMC43MjU5NDIiLCBcCi0gICAgICAgICAgIjAuMDI3MjM4LCAwLjEzNDIyNiwgMC4yNDU0NTUsIDAuMzI1NjksIDAuNDUzMTQxLCAwLjU2NjMyMiwgMC43MjU1NCIsIFwKLSAgICAgICAgICAiMC4wMjcyMzksIDAuMTM0MjI5LCAwLjI0NTQ0LCAwLjMyNTY4OSwgMC40NTMxMTQsIDAuNTY2MzI1LCAwLjcyNTU0OSIsIFwKLSAgICAgICAgICAiMC4wMjcyMzIsIDAuMTM0NDYyLCAwLjI0NTQxOCwgMC4zMjU2OTEsIDAuNDUzMjUzLCAwLjU2NjMxNSwgMC43MjU2NDUiLCBcCi0gICAgICAgICAgIjAuMDI3MjM1LCAwLjEzNDQzNywgMC4yNDU0NDUsIDAuMzI1NzI2LCAwLjQ1Mzg4OSwgMC41NjYyMDksIDAuNzI1NTU2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiBmYWxsaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTE5NzA4LCAwLjE4MTAxNywgMC4yMzYxNDksIDAuMjc1NDM0LCAwLjMzODMwNSwgMC4zOTMzMjYsIDAuNDcxODIzIiwgXAotICAgICAgICAgICIwLjEyNzYzNywgMC4xODg5NDIsIDAuMjQ0MDY3LCAwLjI4MzM1MSwgMC4zNDYyMzIsIDAuNDAxMTkzLCAwLjQ3OTczNCIsIFwKLSAgICAgICAgICAiMC4xMzYzLCAwLjE5NzU5MSwgMC4yNTI3MjQsIDAuMjkyMDIsIDAuMzU0ODk1LCAwLjQwOTg1MSwgMC40ODgzODUiLCBcCi0gICAgICAgICAgIjAuMTQzMjY3LCAwLjIwNDU3MiwgMC4yNTk3MDIsIDAuMjk4OTkyLCAwLjM2MTg2OCwgMC40MTY4MjksIDAuNDk1MzY3IiwgXAotICAgICAgICAgICIwLjE0OTY1NSwgMC4yMTA5NTIsIDAuMjY2MDgzLCAwLjMwNTM3NCwgMC4zNjgyNDYsIDAuNDIzMjIxLCAwLjUwMTc3OCIsIFwKLSAgICAgICAgICAiMC4xNTkwNzcsIDAuMjIwMzg1LCAwLjI3NTUxNiwgMC4zMTQ4MDIsIDAuMzc3Njc3LCAwLjQzMjYzOSwgMC41MTExODQiLCBcCi0gICAgICAgICAgIjAuMTY2MzA2LCAwLjIyNzYxNCwgMC4yODI3NDUsIDAuMzIyMDI4LCAwLjM4NDkwOSwgMC40Mzk4NywgMC41MTg0MSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzMzM2OCwgMC4xNDI3NjcsIDAuMjU2MDY3LCAwLjMzNzg1MywgMC40NzAzNjUsIDAuNTg2MjA2LCAwLjc1MTkzNSIsIFwKLSAgICAgICAgICAiMC4wMzMzNywgMC4xNDI3NzQsIDAuMjU2MDMzLCAwLjMzODI1OSwgMC40NzAzNjYsIDAuNTg2MjMsIDAuNzUxMTkyIiwgXAotICAgICAgICAgICIwLjAzMzM1MSwgMC4xNDI3NzQsIDAuMjU1OTk3LCAwLjMzNzc2NCwgMC40NzAzNzUsIDAuNTg2MTgzLCAwLjc1MDQ5NiIsIFwKLSAgICAgICAgICAiMC4wMzMzODYsIDAuMTQyNzczLCAwLjI1NTk5NywgMC4zMzc2NTksIDAuNDcwMzY0LCAwLjU4NjE5OSwgMC43NTEzMjUiLCBcCi0gICAgICAgICAgIjAuMDMzNDgxLCAwLjE0Mjc5NiwgMC4yNTYwNjYsIDAuMzM3ODYzLCAwLjQ3MDM2MSwgMC41ODYxNzUsIDAuNzUxOTY0IiwgXAotICAgICAgICAgICIwLjAzMzU0NSwgMC4xNDI4MTksIDAuMjU2MDM2LCAwLjMzODA0OCwgMC40NzAzNjMsIDAuNTg2MTkyLCAwLjc1MTI3NyIsIFwKLSAgICAgICAgICAiMC4wMzM2NzcsIDAuMTQyODYyLCAwLjI1NjA3NiwgMC4zMzc5ODYsIDAuNDcwMzI2LCAwLjU4NjE0MiwgMC43NTE4NTYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiU04iOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGNsZWFyOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1Mzg2MiwgMC4xMTUwNjQsIDAuMTcwMTg3LCAwLjIwOTQ2OSwgMC4yNzIzNDcsIDAuMzI3MzA5LCAwLjQwNTc4NCIsIFwKLSAgICAgICAgICAiMC4wNTk3NDEsIDAuMTIwOTYyLCAwLjE3NjA5MiwgMC4yMTUzODcsIDAuMjc4MjI2LCAwLjMzMzIzOCwgMC40MTE3NjQiLCBcCi0gICAgICAgICAgIjAuMDY3MTU1LCAwLjEyODM1NywgMC4xODM0ODYsIDAuMjIyNzY4LCAwLjI4NTY0NywgMC4zNDA2MDcsIDAuNDE5MzMiLCBcCi0gICAgICAgICAgIjAuMDczOTgyLCAwLjEzNTM0NCwgMC4xOTA0NiwgMC4yMjk3MzQsIDAuMjkyNjExLCAwLjM0NzU3MSwgMC40MjYyODEiLCBcCi0gICAgICAgICAgIjAuMDc5OTY1LCAwLjE0MTc4NCwgMC4xOTY5MTgsIDAuMjM2MjA1LCAwLjI5OTA4NSwgMC4zNTQwMiwgMC40MzI2MTIiLCBcCi0gICAgICAgICAgIjAuMDg4MjksIDAuMTUwOTAzLCAwLjIwNjA1NiwgMC4yNDUzMTUsIDAuMzA4MTU2LCAwLjM2MzE3MywgMC40NDE3MDMiLCBcCi0gICAgICAgICAgIjAuMDk0NzU1LCAwLjE1Nzk3LCAwLjIxMzEzOSwgMC4yNTI0MjgsIDAuMzE1Mjc5LCAwLjM3MDIyLCAwLjQ0ODg0Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDMyOTM0LCAwLjE0MjY1NywgMC4yNTU5OTYsIDAuMzM3OTA3LCAwLjQ3MDUwNywgMC41ODYzOTMsIDAuNzUwNzI0IiwgXAotICAgICAgICAgICIwLjAzMjg5NywgMC4xNDI2NDUsIDAuMjU1OTc0LCAwLjMzNzgwNywgMC40NzAzNSwgMC41ODY0MTYsIDAuNzUyMjE4IiwgXAotICAgICAgICAgICIwLjAzMzE1NCwgMC4xNDI2OTcsIDAuMjU1OTcsIDAuMzM3OTA0LCAwLjQ3MDUxMSwgMC41ODYzODgsIDAuNzUxMDIiLCBcCi0gICAgICAgICAgIjAuMDM0MTM1LCAwLjE0Mjk3NiwgMC4yNTYwOSwgMC4zMzgwMDUsIDAuNDcwNTM4LCAwLjU4NjM1NywgMC43NTEwMjUiLCBcCi0gICAgICAgICAgIjAuMDM0OTQ3LCAwLjE0MzM0OCwgMC4yNTYyMiwgMC4zMzgwNTEsIDAuNDcwNTg2LCAwLjU4NjM3NCwgMC43NTIxOTciLCBcCi0gICAgICAgICAgIjAuMDM2NTAxLCAwLjE0NDEzOSwgMC4yNTY2OTMsIDAuMzM4Mzc0LCAwLjQ3MDQ3LCAwLjU4NjQ4NSwgMC43NTIyMDciLCBcCi0gICAgICAgICAgIjAuMDM3OTE2LCAwLjE0NDkxMywgMC4yNTcxNzksIDAuMzM4OTM2LCAwLjQ3MDEwNywgMC41ODY1NzUsIDAuNzUyMzk2Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM5MDA4LCAwLjA5NTY5NywgMC4xNDk3MzMsIDAuMTg4MjgsIDAuMjQ5OTU1LCAwLjMwMzk1NCwgMC4zODEwNjMiLCBcCi0gICAgICAgICAgIjAuMDQ3MTY3LCAwLjEwMzg2NywgMC4xNTc5MDcsIDAuMTk2NDUxLCAwLjI1ODEzNCwgMC4zMTIxMTUsIDAuMzg5MjU4IiwgXAotICAgICAgICAgICIwLjA1NjkwNywgMC4xMTM2MjgsIDAuMTY3NjY4LCAwLjIwNjIxMSwgMC4yNjc4OTUsIDAuMzIxODg2LCAwLjM5OTAwMyIsIFwKLSAgICAgICAgICAiMC4wNjQ2MjcsIDAuMTIxNjM1LCAwLjE3NTY2MSwgMC4yMTQyMSwgMC4yNzU4ODQsIDAuMzI5ODY1LCAwLjQwNzAxOSIsIFwKLSAgICAgICAgICAiMC4wNzA4NDgsIDAuMTI4MjQ3LCAwLjE4MjI2MiwgMC4yMjA4MDIsIDAuMjgyNDc2LCAwLjMzNjQ2OCwgMC40MTM1ODEiLCBcCi0gICAgICAgICAgIjAuMDc4ODcxLCAwLjEzNjkyNywgMC4xOTA5MSwgMC4yMjk0NDIsIDAuMjkxMTA1LCAwLjM0NTA4NywgMC40MjIyMDQiLCBcCi0gICAgICAgICAgIjAuMDg0NjU3LCAwLjE0MzM3NywgMC4xOTczNCwgMC4yMzU4NjYsIDAuMjk3NTQzLCAwLjM1MTUzMSwgMC40Mjg2NTgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjY2MTgsIDAuMTM0MjYyLCAwLjI0NTU4NCwgMC4zMjU2NzksIDAuNDUzODA1LCAwLjU2NTc2NCwgMC43MjY0OTQiLCBcCi0gICAgICAgICAgIjAuMDI2NjQyLCAwLjEzNDI0MywgMC4yNDUzNDcsIDAuMzI1NjQyLCAwLjQ1MzQwOCwgMC41NjUzMDEsIDAuNzI2MjQ0IiwgXAotICAgICAgICAgICIwLjAyNzQ1OCwgMC4xMzQzMzIsIDAuMjQ1NjcsIDAuMzI1NzA5LCAwLjQ1Mzk5NSwgMC41NjU0MDQsIDAuNzI2MTYxIiwgXAotICAgICAgICAgICIwLjAyODk2MywgMC4xMzQ3NDgsIDAuMjQ1ODM1LCAwLjMyNTc3NSwgMC40NTM5NCwgMC41NjYyODQsIDAuNzI2NzM1IiwgXAotICAgICAgICAgICIwLjAzMDMyMSwgMC4xMzUyMjUsIDAuMjQ1NjU0LCAwLjMyNTQ1OCwgMC40NTM5MDcsIDAuNTY2MTIsIDAuNzI2NzMzIiwgXAotICAgICAgICAgICIwLjAzMjQ0OCwgMC4xMzU5MSwgMC4yNDYyNDIsIDAuMzI1ODk2LCAwLjQ1MzQ4NSwgMC41NjYyNzgsIDAuNzI2MTI3IiwgXAotICAgICAgICAgICIwLjAzNDEyNSwgMC4xMzY1NDIsIDAuMjQ2Mzc1LCAwLjMyNTg1LCAwLjQ1Mzk0MSwgMC41NjYxOTMsIDAuNzI2NDk4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTA1NDcsIDAuMDEwNjQ5LCAwLjAxMDY2OCwgMC4wMTA2NzQsIDAuMDEwNjgsIDAuMDEwNjg1LCAwLjAxMDY4NSIsIFwKLSAgICAgICAgICAiMC4wMTA1NDMsIDAuMDEwNjM4LCAwLjAxMDY1NywgMC4wMTA2NjIsIDAuMDEwNjY3LCAwLjAxMDY3LCAwLjAxMDY3MyIsIFwKLSAgICAgICAgICAiMC4wMTA1NTIsIDAuMDEwNjQ1LCAwLjAxMDY2NCwgMC4wMTA2NywgMC4wMTA2NzYsIDAuMDEwNjc4LCAwLjAxMDY4NCIsIFwKLSAgICAgICAgICAiMC4wMTA1NDksIDAuMDEwNjQzLCAwLjAxMDY2NCwgMC4wMTA2NzEsIDAuMDEwNjc3LCAwLjAxMDY4MiwgMC4wMTA2ODMiLCBcCi0gICAgICAgICAgIjAuMDEwNTg1LCAwLjAxMDY3NSwgMC4wMTA2OTcsIDAuMDEwNzA0LCAwLjAxMDcxMiwgMC4wMTA3MTUsIDAuMDEwNzE2IiwgXAotICAgICAgICAgICIwLjAxMDcwNywgMC4wMTA3ODQsIDAuMDEwODA2LCAwLjAxMDgxLCAwLjAxMDgxNiwgMC4wMTA4MTksIDAuMDEwODIyIiwgXAotICAgICAgICAgICIwLjAxMDc2NCwgMC4wMTA4NDYsIDAuMDEwODYxLCAwLjAxMDg3LCAwLjAxMDg3MywgMC4wMTA4NzUsIDAuMDEwODc3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDk2MDUsIDAuMDA5NzcsIDAuMDA5Nzk4LCAwLjAwOTgwNiwgMC4wMDk4MTQsIDAuMDA5ODMxLCAwLjAwOTgyMSIsIFwKLSAgICAgICAgICAiMC4wMDk1ODMsIDAuMDA5NzQ5LCAwLjAwOTc4OSwgMC4wMDk3ODUsIDAuMDA5NzkzLCAwLjAwOTc5NywgMC4wMDk4IiwgXAotICAgICAgICAgICIwLjAwOTU4NSwgMC4wMDk3NDcsIDAuMDA5Nzc2LCAwLjAwOTc4NSwgMC4wMDk3OTIsIDAuMDA5ODA0LCAwLjAwOTgwNSIsIFwKLSAgICAgICAgICAiMC4wMDk2MjEsIDAuMDA5NzgyLCAwLjAwOTgxLCAwLjAwOTgxOSwgMC4wMDk4MjYsIDAuMDA5ODI3LCAwLjAwOTgyNyIsIFwKLSAgICAgICAgICAiMC4wMDk2ODUsIDAuMDA5ODMyLCAwLjAwOTg2LCAwLjAwOTg2OSwgMC4wMDk4NzcsIDAuMDA5ODgyLCAwLjAwOTg4NSIsIFwKLSAgICAgICAgICAiMC4wMDk3NjUsIDAuMDA5OTA5LCAwLjAwOTkzNywgMC4wMDk5NDcsIDAuMDA5OTU0LCAwLjAwOTk1OCwgMC4wMDk5NjMiLCBcCi0gICAgICAgICAgIjAuMDA5ODIsIDAuMDA5OTYzLCAwLjAwOTk5LCAwLjAxMDAxMSwgMC4wMTAwMDYsIDAuMDEwMDExLCAwLjAxMDAyNyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkdOIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMjY0NSwgMC4wMTI3NDQsIDAuMDEyNzY0LCAwLjAxMjc3LCAwLjAxMjc3NSwgMC4wMTI3ODIsIDAuMDEyNzgiLCBcCi0gICAgICAgICAgIjAuMDEyNjc2LCAwLjAxMjc2LCAwLjAxMjc3OSwgMC4wMTI3ODUsIDAuMDEyNzkxLCAwLjAxMjc5MywgMC4wMTI3OTUiLCBcCi0gICAgICAgICAgIjAuMDEyNjkxLCAwLjAxMjc4OCwgMC4wMTI4MDgsIDAuMDEyODE0LCAwLjAxMjgyLCAwLjAxMjgyMiwgMC4wMTI4MjUiLCBcCi0gICAgICAgICAgIjAuMDEyNzQ5LCAwLjAxMjg2NCwgMC4wMTI4NjcsIDAuMDEyODczLCAwLjAxMjg5NCwgMC4wMTI4OTcsIDAuMDEyODk5IiwgXAotICAgICAgICAgICIwLjAxMjgyNywgMC4wMTI5MiwgMC4wMTI5NCwgMC4wMTI5NDYsIDAuMDEyOTUxLCAwLjAxMjk1MSwgMC4wMTI5NTUiLCBcCi0gICAgICAgICAgIjAuMDEyOTI4LCAwLjAxMzAyNywgMC4wMTMwNDYsIDAuMDEzMDQ3LCAwLjAxMzA2LCAwLjAxMzA1NSwgMC4wMTMwNjMiLCBcCi0gICAgICAgICAgIjAuMDEzMDQ5LCAwLjAxMzEzMiwgMC4wMTMxNTQsIDAuMDEzMTUzLCAwLjAxMzE1OCwgMC4wMTMxNTksIDAuMDEzMTciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMTg0LCAwLjAxMjAwOSwgMC4wMTIwMzcsIDAuMDEyMDQ2LCAwLjAxMjA1NCwgMC4wMTIwNTYsIDAuMDEyMDYxIiwgXAotICAgICAgICAgICIwLjAxMTg0MiwgMC4wMTIwMTIsIDAuMDEyMDQsIDAuMDEyMDQ5LCAwLjAxMjA1NywgMC4wMTIwNjIsIDAuMDEyMDY1IiwgXAotICAgICAgICAgICIwLjAxMTg4MSwgMC4wMTIwNTEsIDAuMDEyMDc5LCAwLjAxMjA4NiwgMC4wMTIwOTYsIDAuMDEyMTAyLCAwLjAxMjEwMiIsIFwKLSAgICAgICAgICAiMC4wMTE5MzMsIDAuMDEyMTA3LCAwLjAxMjEzNiwgMC4wMTIxNTIsIDAuMDEyMTUyLCAwLjAxMjE2LCAwLjAxMjE2MyIsIFwKLSAgICAgICAgICAiMC4wMTE5OTIsIDAuMDEyMTY1LCAwLjAxMjE5NSwgMC4wMTIyMDMsIDAuMDEyMjEsIDAuMDEyMjE0LCAwLjAxMjIxNyIsIFwKLSAgICAgICAgICAiMC4wMTIxMTQsIDAuMDEyMjg2LCAwLjAxMjMxOSwgMC4wMTIzMjgsIDAuMDEyMzM2LCAwLjAxMjMzNCwgMC4wMTIzMzciLCBcCi0gICAgICAgICAgIjAuMDEyMjEzLCAwLjAxMjM5NSwgMC4wMTI0MDksIDAuMDEyNDMyLCAwLjAxMjQzOSwgMC4wMTI0NDMsIDAuMDEyNDMyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUk4iOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEyNDgyLCAwLjAxMjU4MSwgMC4wMTI2LCAwLjAxMjYwNiwgMC4wMTI2MTIsIDAuMDEyNjEzLCAwLjAxMjYxNSIsIFwKLSAgICAgICAgICAiMC4wMTI0ODQsIDAuMDEyNTc1LCAwLjAxMjU5NSwgMC4wMTI2LCAwLjAxMjYwNSwgMC4wMTI2MDgsIDAuMDEyNjEiLCBcCi0gICAgICAgICAgIjAuMDEyNTI3LCAwLjAxMjYxNSwgMC4wMTI2MzQsIDAuMDEyNjQsIDAuMDEyNjQ1LCAwLjAxMjY1OCwgMC4wMTI2NDkiLCBcCi0gICAgICAgICAgIjAuMDEyNTY3LCAwLjAxMjY2MSwgMC4wMTI2NzksIDAuMDEyNjg1LCAwLjAxMjY5LCAwLjAxMjcwMSwgMC4wMTI2OTQiLCBcCi0gICAgICAgICAgIjAuMDEyNjM3LCAwLjAxMjcyOCwgMC4wMTI3NDUsIDAuMDEyNzUxLCAwLjAxMjc1NiwgMC4wMTI3NTksIDAuMDEyNzYxIiwgXAotICAgICAgICAgICIwLjAxMjcyMywgMC4wMTI4MSwgMC4wMTI4MjksIDAuMDEyODM0LCAwLjAxMjg0LCAwLjAxMjg0MiwgMC4wMTI4NDQiLCBcCi0gICAgICAgICAgIjAuMDEyODQsIDAuMDEyOTI3LCAwLjAxMjk0OCwgMC4wMTI5NTQsIDAuMDEyOTYyLCAwLjAxMjk2MSwgMC4wMTI5NjIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMDc2NiwgMC4wMTA5NDIsIDAuMDEwOTcsIDAuMDEwOTc5LCAwLjAxMDk4NywgMC4wMTA5OTEsIDAuMDEwOTk1IiwgXAotICAgICAgICAgICIwLjAxMDc1LCAwLjAxMDkyNCwgMC4wMTA5NTIsIDAuMDEwOTYxLCAwLjAxMDk2OSwgMC4wMTA5NzMsIDAuMDEwOTc2IiwgXAotICAgICAgICAgICIwLjAxMDc3NSwgMC4wMTA5NDYsIDAuMDEwOTc0LCAwLjAxMDk4MywgMC4wMTA5OTEsIDAuMDEwOTk4LCAwLjAxMTAwMiIsIFwKLSAgICAgICAgICAiMC4wMTA4MDQsIDAuMDEwOTc0LCAwLjAxMTAwMSwgMC4wMTEwMTEsIDAuMDExMDE4LCAwLjAxMTAyMywgMC4wMTEwMjUiLCBcCi0gICAgICAgICAgIjAuMDEwODM0LCAwLjAxMTAwOCwgMC4wMTEwMzMsIDAuMDExMDQyLCAwLjAxMTA0NiwgMC4wMTEwNTQsIDAuMDExMDU3IiwgXAotICAgICAgICAgICIwLjAxMDkxMywgMC4wMTEwOSwgMC4wMTExMTksIDAuMDExMTI3LCAwLjAxMTEzNiwgMC4wMTExNCwgMC4wMTExNDQiLCBcCi0gICAgICAgICAgIjAuMDExMDE2LCAwLjAxMTE4NSwgMC4wMTEyMTMsIDAuMDExMjIxLCAwLjAxMTIzMSwgMC4wMTEyMzMsIDAuMDExMjM4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiU04iOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA4NTczLCAwLjAwODY4NSwgMC4wMDg3LCAwLjAwODcwNSwgMC4wMDg3MDksIDAuMDA4NzEzLCAwLjAwODcxMyIsIFwKLSAgICAgICAgICAiMC4wMDg0OTgsIDAuMDA4NjE3LCAwLjAwODYzNiwgMC4wMDg2NDIsIDAuMDA4NjQ3LCAwLjAwODY1MiwgMC4wMDg2NTUiLCBcCi0gICAgICAgICAgIjAuMDA4NjE1LCAwLjAwODY5MiwgMC4wMDg3MTEsIDAuMDA4NzE3LCAwLjAwODcyMiwgMC4wMDg3MjUsIDAuMDA4NzI3IiwgXAotICAgICAgICAgICIwLjAwODgyNiwgMC4wMDg4NDUsIDAuMDA4ODU1LCAwLjAwODg2LCAwLjAwODg2OCwgMC4wMDg4NjcsIDAuMDA4ODczIiwgXAotICAgICAgICAgICIwLjAwODgyMiwgMC4wMDg4NjIsIDAuMDA4ODc2LCAwLjAwODg4MiwgMC4wMDg4ODgsIDAuMDA4ODkxLCAwLjAwODg5NCIsIFwKLSAgICAgICAgICAiMC4wMDkwODMsIDAuMDA5MDc0LCAwLjAwOTA5MywgMC4wMDkwOTksIDAuMDA5MTAxLCAwLjAwOTEwMSwgMC4wMDkxMDkiLCBcCi0gICAgICAgICAgIjAuMDA5NDQ5LCAwLjAwOTM2OCwgMC4wMDkzNzEsIDAuMDA5MzY5LCAwLjAwOTM3MSwgMC4wMDkzNywgMC4wMDkzNzEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMDU1OSwgMC4wMTA3MTEsIDAuMDEwNzMzLCAwLjAxMDczOSwgMC4wMTA3NDQsIDAuMDEwNzQ3LCAwLjAxMDc1IiwgXAotICAgICAgICAgICIwLjAxMDUzMSwgMC4wMTA2ODksIDAuMDEwNzE0LCAwLjAxMDcyMywgMC4wMTA3MywgMC4wMTA3MzgsIDAuMDEwNzM2IiwgXAotICAgICAgICAgICIwLjAxMDYwOCwgMC4wMTA3NDEsIDAuMDEwNzY5LCAwLjAxMDc3OCwgMC4wMTA3ODcsIDAuMDEwNzkxLCAwLjAxMDc5NSIsIFwKLSAgICAgICAgICAiMC4wMTA3MzYsIDAuMDEwODM1LCAwLjAxMDg2NiwgMC4wMTA4NzYsIDAuMDEwODg1LCAwLjAxMDg5MSwgMC4wMTA4OTQiLCBcCi0gICAgICAgICAgIjAuMDEwOTA4LCAwLjAxMDk3MywgMC4wMTEsIDAuMDExMDEsIDAuMDExMDE5LCAwLjAxMTAyNCwgMC4wMTEwMyIsIFwKLSAgICAgICAgICAiMC4wMTEyMTUsIDAuMDExMjI2LCAwLjAxMTI0OSwgMC4wMTEyNTcsIDAuMDExMjY2LCAwLjAxMTI3MSwgMC4wMTEyNzYiLCBcCi0gICAgICAgICAgIjAuMDExNTA2LCAwLjAxMTQ1NSwgMC4wMTE0NzIsIDAuMDExNDgyLCAwLjAxMTQ5LCAwLjAxMTQ5NCwgMC4wMTE0OTciKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFJOKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE2MDg0NDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE2MDg0NDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE1OTU0MjsKLSAgICBjbG9jayA6IHRydWU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzMjk4LCAwLjAwMzI2OSwgMC4wMDMzNzYsIDAuMDAzNTIzLCAwLjAwMzY4OSwgMC4wMDM5OSwgMC4wMDQyNzQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA2MTMsIDAuMDAwNjAxLCAwLjAwMDU5NywgMC4wMDA1OTYsIDAuMDAwNTk0LCAwLjAwMDU5NCwgMC4wMDA1OTQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiR04iOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiRCZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzFfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wNDM3NSwgLTAuMDM4NzUsIC0wLjAzMjUsIC0wLjAzMjUsIC0wLjAyNjI1LCAtMC4wMjI1LCAtMC4wMjYyNSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDMzNzUsIC0wLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wNjEyNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wNDM3NSwgLTAuMDQzNzUsIC0wLjA0LCAtMC4wMzc1IiwgXAotICAgICAgICAgICItMC4wNjc1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDQ2MjUsIC0wLjA0Mzc1IiwgXAotICAgICAgICAgICItMC4wNjc1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNDYyNSwgLTAuMDQzNzUiLCBcCi0gICAgICAgICAgIi0wLjA3NzUsIC0wLjA3MjUsIC0wLjA2NjI1LCAtMC4wNiwgLTAuMDYsIC0wLjA1NjI1LCAtMC4wNTM3NSIsIFwKLSAgICAgICAgICAiLTAuMDgsIC0wLjA3NSwgLTAuMDY4NzUsIC0wLjA2ODc1LCAtMC4wNjI1LCAtMC4wNTg3NSwgLTAuMDU2MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUk4iOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFEJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgZmFsbF9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMTAzMDg4LCAwLjEwOTcxMywgMC4xMTY2LCAwLjEyMjc3NCwgMC4xMjgwNzUsIDAuMTM1NDEyLCAwLjE0MDk1MyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJHTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiRCZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzFfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTYyNSwgMC4wNTEyNSwgMC4wNDUsIDAuMDM4NzUsIDAuMDM4NzUsIDAuMDM1LCAwLjAzMjUiLCBcCi0gICAgICAgICAgIjAuMDYxMjUsIDAuMDU2MjUsIDAuMDUsIDAuMDQzNzUsIDAuMDQzNzUsIDAuMDQsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiMC4wNjc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDU2MjUsIDAuMDUsIDAuMDQ2MjUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMDczNzUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1MjUsIDAuMDUiLCBcCi0gICAgICAgICAgIjAuMDgsIDAuMDc1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDYyNSwgMC4wNTg3NSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiMC4wOSwgMC4wNzg3NSwgMC4wNzI1LCAwLjA3MjUsIDAuMDY2MjUsIDAuMDYyNSwgMC4wNjYyNSIsIFwKLSAgICAgICAgICAiMC4wOTI1LCAwLjA4NzUsIDAuMDgxMjUsIDAuMDc1LCAwLjA3NSwgMC4wNzEyNSwgMC4wNjg3NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oU04pICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTUzMTU7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNTMxNTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE1Mjk3NzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA4NDIsIDAuMDAwODQxLCAwLjAwMDg0LCAwLjAwMDg0LCAwLjAwMDg0LCAwLjAwMDg0MSwgMC4wMDA4NCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDg4OCwgMC4wMDA4NjIsIDAuMDAwODUxLCAwLjAwMDg0NSwgMC4wMDA4NDUsIDAuMDAwODQyLCAwLjAwMDg0MyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQiOwotICAgICAgc2RmX2NvbmQgOiAiRCA9PSAxJ2IwIjsKLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjA2OTQ4MiwgMC4wNzczMDksIDAuMDg2MjE3LCAwLjA5MzQ0MiwgMC4wOTkzNywgMC4xMDcyMDMsIDAuMTEyOTQyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkdOIjsKLSAgICAgIHRpbWluZ190eXBlIDogcmVjb3ZlcnlfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRCZSTiI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fUk5fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChyZWNvdmVyeV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMCwgLTAuMDExMjUsIC0wLjAxNzUsIC0wLjAxNzUsIC0wLjAyMzc1LCAtMC4wMjc1LCAtMC4wMyIsIFwKLSAgICAgICAgICAiMC4wMDUsIC0wLjAwNjI1LCAtMC4wMTI1LCAtMC4wMTI1LCAtMC4wMTg3NSwgLTAuMDIyNSwgLTAuMDI1IiwgXAotICAgICAgICAgICIwLjAwNSwgMCwgLTAuMDA2MjUsIC0wLjAwNjI1LCAtMC4wMTI1LCAtMC4wMTYyNSwgLTAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMDExMjUsIDAuMDA2MjUsIDAsIC0wLjAwNjI1LCAtMC4wMDYyNSwgLTAuMDE2MjUsIC0wLjAxODc1IiwgXAotICAgICAgICAgICIwLjAxNzUsIDAuMDA2MjUsIDAsIDAsIC0wLjAwNjI1LCAtMC4wMSwgLTAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4wMjEyNSwgMC4wMSwgMC4wMDM3NSwgMC4wMDM3NSwgLTAuMDAyNSwgLTAuMDA2MjUsIC0wLjAwODc1IiwgXAotICAgICAgICAgICIwLjAyMzc1LCAwLjAxODc1LCAwLjAxMjUsIDAuMDA2MjUsIDAsIC0wLjAwMzc1LCAtMC4wMDYyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJlY292ZXJ5X3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiR04iOwotICAgICAgc2RmX2NvbmQgOiAiR04gPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQocmVjb3ZlcnlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEyNSwgMC4wMDc1LCAwLjAwNzUsIDAuMDA3NSwgMC4wMDc1LCAwLjAxLCAwLjAxMzc1IiwgXAotICAgICAgICAgICIwLjAxNzUsIDAuMDEyNSwgMC4wMTI1LCAwLjAxMjUsIDAuMDEyNSwgMC4wMTUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMDIzNzUsIDAuMDE4NzUsIDAuMDE4NzUsIDAuMDE4NzUsIDAuMDE4NzUsIDAuMDIxMjUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMDIzNzUsIDAuMDI1LCAwLjAxODc1LCAwLjAxODc1LCAwLjAxODc1LCAwLjAyMTI1LCAwLjAxODc1IiwgXAotICAgICAgICAgICIwLjAzLCAwLjAyNSwgMC4wMjUsIDAuMDE4NzUsIDAuMDE4NzUsIDAuMDIxMjUsIDAuMDI1IiwgXAotICAgICAgICAgICIwLjAzMzc1LCAwLjAyODc1LCAwLjAyODc1LCAwLjAyMjUsIDAuMDIyNSwgMC4wMjUsIDAuMDIyNSIsIFwKLSAgICAgICAgICAiMC4wMzYyNSwgMC4wMzEyNSwgMC4wMzEyNSwgMC4wMjUsIDAuMDI1LCAwLjAyNzUsIDAuMDI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkdOIjsKLSAgICAgIHRpbWluZ190eXBlIDogcmVtb3ZhbF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEJlJOIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9STl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHJlbW92YWxfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDI1LCAwLjAzLCAwLjAzNjI1LCAwLjA0MjUsIDAuMDQyNSwgMC4wNDYyNSwgMC4wNTUiLCBcCi0gICAgICAgICAgIjAuMDIsIDAuMDI1LCAwLjAzMTI1LCAwLjAzNzUsIDAuMDM3NSwgMC4wNDc1LCAwLjA1IiwgXAotICAgICAgICAgICIwLjAxMzc1LCAwLjAxODc1LCAwLjAyNSwgMC4wMzEyNSwgMC4wMzc1LCAwLjA0MTI1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjAwNzUsIDAuMDE4NzUsIDAuMDI1LCAwLjAyNSwgMC4wMzEyNSwgMC4wMzUsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiMC4wMDc1LCAwLjAxMjUsIDAuMDE4NzUsIDAuMDI1LCAwLjAyNSwgMC4wMzUsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiMC4wMDM3NSwgMC4wMDg3NSwgMC4wMTUsIDAuMDIxMjUsIDAuMDIxMjUsIDAuMDI1LCAwLjAzMzc1IiwgXAotICAgICAgICAgICIwLjAwMTI1LCAwLjAwNjI1LCAwLjAxMjUsIDAuMDEyNSwgMC4wMTg3NSwgMC4wMjI1LCAwLjAyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJlbW92YWxfcmlzaW5nOwotICAgICAgd2hlbiA6ICJHTiI7Ci0gICAgICBzZGZfY29uZCA6ICJHTiA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChyZW1vdmFsX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjI1LCAwLjAxMTI1LCAwLjAxNzUsIDAuMDE3NSwgMC4wMTc1LCAwLjAyMTI1LCAwLjAyMzc1IiwgXAotICAgICAgICAgICIwLjAwMTI1LCAwLjAwNjI1LCAwLjAxMjUsIDAuMDEyNSwgMC4wMTI1LCAwLjAxNjI1LCAwLjAxODc1IiwgXAotICAgICAgICAgICItMC4wMDUsIDAsIDAuMDA2MjUsIDAuMDA2MjUsIDAuMDEyNSwgMC4wMTYyNSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDA1LCAwLCAwLCAwLjAwNjI1LCAwLjAwNjI1LCAwLjAxLCAwLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjAxMTI1LCAtMC4wMDYyNSwgMCwgMCwgMC4wMDYyNSwgMC4wMSwgMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wMTUsIC0wLjAxLCAtMC4wMDM3NSwgLTAuMDAzNzUsIDAuMDAyNSwgMC4wMDYyNSwgMC4wMDI1IiwgXAotICAgICAgICAgICItMC4wMTc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgLTAuMDA2MjUsIC0wLjAwNjI1LCAtMC4wMDI1LCAwIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBUTEFUTlNSWEwgKgotICogLS0tLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChUTEFUTlNSWEwpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC43NjU2Mzg7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgbGF0Y2ggKFFJTlQsTjUpIHsKLSAgICBkYXRhX2luIDogIkQiOwotICAgIGVuYWJsZSA6ICIoKCFHTikgUk4pIjsKLSAgICBwcmVzZXQgOiAiKCFTTikiOwotICB9Ci0gIHBpbihEKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2NDY3NTE7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjQ1MzA5OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDY0Njc1MTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyODksIDAuMDAwMjksIDAuMDAwMjkxLCAwLjAwMDI5MSwgMC4wMDAyOTEsIDAuMDAwMjkxLCAwLjAwMDI5MiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDMxNCwgMC4wMDAzMDMsIDAuMDAwMzAxLCAwLjAwMDI5OSwgMC4wMDAzLCAwLjAwMDMsIDAuMDAwMjk5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkdOIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlJOJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIlJOX0VRXzFfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLCAwLjAxMTI1LCAwLjAxNzUsIDAuMDE3NSwgMC4wMjM3NSwgMC4wMjc1LCAwLjAzIiwgXAotICAgICAgICAgICItMC4wMDUsIDAuMDA2MjUsIDAuMDEyNSwgMC4wMTI1LCAwLjAxODc1LCAwLjAyMjUsIDAuMDI1IiwgXAotICAgICAgICAgICItMC4wMTEyNSwgLTAuMDA2MjUsIDAsIDAuMDA2MjUsIDAuMDEyNSwgMC4wMTYyNSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDE3NSwgLTAuMDA2MjUsIC0wLjAwNjI1LCAwLCAwLjAwNjI1LCAwLjAxLCAwLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgLTAuMDA2MjUsIDAsIDAuMDAzNzUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjAyNzUsIC0wLjAyMjUsIC0wLjAxNjI1LCAtMC4wMSwgLTAuMDEsIDAsIDAuMDAyNSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAxMjUsIC0wLjAwODc1LCAtMC4wMDYyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAxMjUsIC0wLjAwNzUsIC0wLjAwMTI1LCAwLjAwNSwgMC4wMDUsIDAuMDA4NzUsIDAuMDExMjUiLCBcCi0gICAgICAgICAgIi0wLjAxNzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAtMC4wMDYyNSwgMCwgMC4wMDM3NSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMTI1LCAtMC4wMDYyNSwgLTAuMDAyNSwgMCIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAxMjUsIC0wLjAwODc1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTg3NSwgLTAuMDA4NzUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wNCwgLTAuMDM1LCAtMC4wMjg3NSwgLTAuMDIyNSwgLTAuMDIyNSwgLTAuMDE4NzUsIC0wLjAxNjI1IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDIxMjUsIC0wLjAxODc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkdOIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJSTiZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJSTl9FUV8xX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2MjUsIDAuMDAxMjUsIC0wLjAwNSwgLTAuMDExMjUsIC0wLjAxMTI1LCAtMC4wMTUsIC0wLjAyMzc1IiwgXAotICAgICAgICAgICIwLjAxMTI1LCAwLjAwNjI1LCAwLCAtMC4wMDYyNSwgLTAuMDA2MjUsIC0wLjAxLCAtMC4wMTI1IiwgXAotICAgICAgICAgICIwLjAyMzc1LCAwLjAxMjUsIDAuMDA2MjUsIDAuMDA2MjUsIDAsIC0wLjAwMzc1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiMC4wMjM3NSwgMC4wMTg3NSwgMC4wMTI1LCAwLjAwNjI1LCAwLjAwNjI1LCAwLjAwMjUsIDAiLCBcCi0gICAgICAgICAgIjAuMDMsIDAuMDI1LCAwLjAxODc1LCAwLjAxMjUsIDAuMDEyNSwgMC4wMDg3NSwgMCIsIFwKLSAgICAgICAgICAiMC4wNCwgMC4wMjg3NSwgMC4wMjI1LCAwLjAyMjUsIDAuMDE2MjUsIDAuMDEyNSwgMC4wMSIsIFwKLSAgICAgICAgICAiMC4wNDI1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDI1LCAwLjAyNSwgMC4wMTUsIDAuMDEyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyNSwgMC4wMiwgMC4wMTM3NSwgMC4wMDc1LCAwLjAwNzUsIDAuMDAzNzUsIDAuMDAxMjUiLCBcCi0gICAgICAgICAgIjAuMDMsIDAuMDI1LCAwLjAxODc1LCAwLjAxMjUsIDAuMDEyNSwgMC4wMDg3NSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiMC4wMzYyNSwgMC4wMzEyNSwgMC4wMjUsIDAuMDE4NzUsIDAuMDE4NzUsIDAuMDE1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMDQyNSwgMC4wMzEyNSwgMC4wMzEyNSwgMC4wMjUsIDAuMDI1LCAwLjAxNSwgMC4wMTI1IiwgXAotICAgICAgICAgICIwLjA0MjUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMzEyNSwgMC4wMjUsIDAuMDIxMjUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMDUyNSwgMC4wNDEyNSwgMC4wNDEyNSwgMC4wMzUsIDAuMDI4NzUsIDAuMDI1LCAwLjAyMjUiLCBcCi0gICAgICAgICAgIjAuMDU1LCAwLjA1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDM3NSwgMC4wMzM3NSwgMC4wMzEyNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oR04pICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY4MTQzMzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2ODExMjQ7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjgxNDMzOwotICAgIGNsb2NrIDogdHJ1ZTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyOTIsIDAuMDAwMzE5LCAwLjAwMDQxLCAwLjAwMDUyNSwgMC4wMDA2NTgsIDAuMDAwODksIDAuMDAxMDk1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA0ODE5LCAwLjAwNDgzMSwgMC4wMDQ5MTYsIDAuMDA1MDM0LCAwLjAwNTE3MSwgMC4wMDU0MDMsIDAuMDA1NTk4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkdOIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRCZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjE1MTUzOCwgMC4xNTg0MTYsIDAuMTYzOTIzLCAwLjE2NzczNSwgMC4xNzA5MDQsIDAuMTc1MTM3LCAwLjE3ODIxMyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjIwMTczNTsKLSAgICBmdW5jdGlvbiA6ICJRSU5UIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJEIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTI4NDQsIDAuMTIzMjM3LCAwLjIxODg3OCwgMC4zNzU4LCAwLjUzNTk0OCwgMC45MDU4OTUsIDEuMTE3MTkiLCBcCi0gICAgICAgICAgIjAuMTE4ODA0LCAwLjEyOTQyMiwgMC4yMjQ5NDcsIDAuMzgxOTI1LCAwLjUzOTczNCwgMC45MTE5NjYsIDEuMTIzMzMiLCBcCi0gICAgICAgICAgIjAuMTI1ODA5LCAwLjEzNjM4MywgMC4yMzE2NCwgMC4zODg3ODgsIDAuNTQ4OTQ0LCAwLjkxODc3MywgMS4xMjc5NyIsIFwKLSAgICAgICAgICAiMC4xMzE0ODEsIDAuMTQxODkzLCAwLjIzNjg4OCwgMC4zOTQ0NTIsIDAuNTUyNjE1LCAwLjkyNDIwNCwgMS4xMzEzMSIsIFwKLSAgICAgICAgICAiMC4xMzYyOTMsIDAuMTQ2ODU2LCAwLjI0MjI2NCwgMC40MDA3MTgsIDAuNTU3MSwgMC45MjU0MTMsIDEuMTQwMzEiLCBcCi0gICAgICAgICAgIjAuMTQyNjExLCAwLjE1MzE1OCwgMC4yNDc5NjQsIDAuNDA1NzExLCAwLjU2NTU3NSwgMC45MzU1MDQsIDEuMTQ0MTciLCBcCi0gICAgICAgICAgIjAuMTQ3NDg3LCAwLjE1ODAxMywgMC4yNTMzMTMsIDAuNDEwODU2LCAwLjU2OTAzOSwgMC45Mzk5NSwgMS4xNTE1OCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTYzNzEsIDAuMTM4MDIyLCAwLjMzODQ2NCwgMC42NzI0MTksIDEuMDAzNjEsIDEuNzgwMTIsIDIuMjI0MTIiLCBcCi0gICAgICAgICAgIjAuMTE2MDk0LCAwLjEzODQzLCAwLjMzODQyMSwgMC42NzE2OTUsIDEuMDA0MjIsIDEuNzgwNjMsIDIuMjI0MjIiLCBcCi0gICAgICAgICAgIjAuMTE2MDQ2LCAwLjEzODI5OSwgMC4zMzgxODIsIDAuNjcwNTk0LCAxLjAwMzYxLCAxLjc4MDE3LCAyLjIyMzczIiwgXAotICAgICAgICAgICIwLjExNjU1NiwgMC4xMzg2MDYsIDAuMzM3ODU3LCAwLjY3MDg5MywgMS4wMDUzLCAxLjc4MzgsIDIuMjI3MTQiLCBcCi0gICAgICAgICAgIjAuMTE2MTMyLCAwLjEzODksIDAuMzM4MTEyLCAwLjY3MTk0LCAxLjAwMjQ5LCAxLjc3OTk1LCAyLjIyODU5IiwgXAotICAgICAgICAgICIwLjExNjIwMSwgMC4xMzg2NiwgMC4zMzg2NTIsIDAuNjcwNDYxLCAxLjAwNTkxLCAxLjc4Mzg2LCAyLjIyNDYzIiwgXAotICAgICAgICAgICIwLjExNjQ3NiwgMC4xMzg1MjcsIDAuMzM4ODIzLCAwLjY3MTk1LCAxLjAwNDQxLCAxLjc4NTAyLCAyLjIyODg2Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEyMTc0NiwgMC4xMzE0MjUsIDAuMjE4MjQsIDAuMzYzNTIxLCAwLjUwNzk4NSwgMC44NDUyOTQsIDEuMDQwOTIiLCBcCi0gICAgICAgICAgIjAuMTI3MzMsIDAuMTM3MDA3LCAwLjIyMzg3OCwgMC4zNjkxNDIsIDAuNTEzNTMsIDAuODUwODksIDEuMDQzNTEiLCBcCi0gICAgICAgICAgIjAuMTMzNDIzLCAwLjE0MzA5NSwgMC4yMjk5ODksIDAuMzc1MTksIDAuNTIwNTA4LCAwLjg1ODg4NSwgMS4wNTAxNSIsIFwKLSAgICAgICAgICAiMC4xMzg0NzcsIDAuMTQ4MTUsIDAuMjM1MjQ5LCAwLjM4MDI1OCwgMC41MjUxNzMsIDAuODY0MTIxLCAxLjA1NzYiLCBcCi0gICAgICAgICAgIjAuMTQyODAyLCAwLjE1MjQ3NiwgMC4yMzkzODksIDAuMzg0NjAyLCAwLjUyODk2MywgMC44NjczNTMsIDEuMDYxNjQiLCBcCi0gICAgICAgICAgIjAuMTQ4NDI5LCAwLjE1ODA3MywgMC4yNDQ5NzEsIDAuMzg5Njc0LCAwLjUzNDU2LCAwLjg3MjEwNCwgMS4wNjUyMiIsIFwKLSAgICAgICAgICAiMC4xNTI4MjQsIDAuMTYyNTExLCAwLjI0OTUwNiwgMC4zOTQ1ODcsIDAuNTM5Njc3LCAwLjg3NzM4NSwgMS4wNzEzMiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDQxNjEsIDAuMTI0MDIsIDAuMzAyODQxLCAwLjYwMjYzMSwgMC44OTk0NTMsIDEuNTkyNDMsIDEuOTgxOCIsIFwKLSAgICAgICAgICAiMC4xMDQxMTcsIDAuMTI0MDIyLCAwLjMwMzE0LCAwLjYwMjY0MiwgMC44OTc4NzQsIDEuNTk2OSwgMS45ODIyNiIsIFwKLSAgICAgICAgICAiMC4xMDQxMiwgMC4xMjQwMiwgMC4zMDE0MSwgMC42MDI1NTgsIDAuODk2OTI0LCAxLjU5ODQxLCAxLjk5Mjc0IiwgXAotICAgICAgICAgICIwLjEwNDE2LCAwLjEyNDAxMywgMC4zMDM0NjQsIDAuNjAyNDU2LCAwLjkwMTAwOSwgMS41OTc2LCAxLjk4NjIzIiwgXAotICAgICAgICAgICIwLjEwNDE1MSwgMC4xMjQwMDcsIDAuMzAyMjMyLCAwLjYwMjI0NSwgMC44OTYxMTcsIDEuNTk3MzMsIDEuOTk2NjYiLCBcCi0gICAgICAgICAgIjAuMTA0MDI1LCAwLjEyMzg1MiwgMC4zMDMwMzcsIDAuNjAyMjAzLCAwLjg5OTQ0OSwgMS41OTc5OCwgMS45OTUyOCIsIFwKLSAgICAgICAgICAiMC4xMDQxNTMsIDAuMTIzODk5LCAwLjMwMjkzOCwgMC42MDExNTcsIDAuODk5NjY0LCAxLjU5Nzk3LCAxLjk5NjIxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkdOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5vbl91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogZmFsbGluZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNTQ0NzgsIDAuMTY0OTI2LCAwLjI1OTk0LCAwLjQxNzQ3MiwgMC41NzUyOTMsIDAuOTQ3NTMzLCAxLjE1NDE4IiwgXAotICAgICAgICAgICIwLjE2MTM4MywgMC4xNzE5NTgsIDAuMjY3NDc5LCAwLjQyNjAwNCwgMC41ODQ1MTEsIDAuOTU0MzQxLCAxLjE2MTM5IiwgXAotICAgICAgICAgICIwLjE2Njg4MiwgMC4xNzczNzgsIDAuMjcyMzE5LCAwLjQyOTg3MiwgMC41ODc2OTIsIDAuOTU5OTU4LCAxLjE2NjU5IiwgXAotICAgICAgICAgICIwLjE3MDY3NywgMC4xODExOCwgMC4yNzY3MSwgMC40MzM2MjYsIDAuNTkzODg2LCAwLjk2MzgyLCAxLjE3NDk1IiwgXAotICAgICAgICAgICIwLjE3MzgyNywgMC4xODQ1MjYsIDAuMjc5ODkzLCAwLjQzNzE0MSwgMC41OTcwNjMsIDAuOTY2ODY2LCAxLjE3ODE3IiwgXAotICAgICAgICAgICIwLjE3ODA1NCwgMC4xODg1MzcsIDAuMjgzMzA4LCAwLjQ0MTA4NywgMC41OTkyNTgsIDAuOTcxMTc3LCAxLjE4MjQ0IiwgXAotICAgICAgICAgICIwLjE4MTA4NCwgMC4xOTE2MTcsIDAuMjg3MjYzLCAwLjQ0NTg0MiwgMC42MDQxMzYsIDAuOTc0Mjg2LCAxLjE4MTU3Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExNjU1OSwgMC4xMzg0NTMsIDAuMzM3OTU3LCAwLjY3MDQwMywgMS4wMDQyNSwgMS43ODE0LCAyLjIyNDM3IiwgXAotICAgICAgICAgICIwLjExNjM2NCwgMC4xMzg4ODUsIDAuMzM4ODI0LCAwLjY3MTI5NSwgMS4wMDM3NiwgMS43ODEwMiwgMi4yMjIwMyIsIFwKLSAgICAgICAgICAiMC4xMTY1NTUsIDAuMTM4NjMxLCAwLjMzNzgyNiwgMC42NzAyOCwgMS4wMDQ3NCwgMS43ODEwMSwgMi4yMjM2MSIsIFwKLSAgICAgICAgICAiMC4xMTY0NTMsIDAuMTM4NjI3LCAwLjMzODAyMywgMC42NzE4NDIsIDEuMDAzOTIsIDEuNzgwNzgsIDIuMjI1MjciLCBcCi0gICAgICAgICAgIjAuMTE2MzY3LCAwLjEzOTA1NCwgMC4zMzgzNDcsIDAuNjcyMTA0LCAxLjAwNDgyLCAxLjc4MzMsIDIuMjI3NiIsIFwKLSAgICAgICAgICAiMC4xMTY3NTIsIDAuMTM4Nzc0LCAwLjMzODA1NywgMC42NzE0MTksIDEuMDA0MSwgMS43ODI3NywgMi4yMjc2MiIsIFwKLSAgICAgICAgICAiMC4xMTY1NzQsIDAuMTM4NzcyLCAwLjMzNzk4MiwgMC42NzEyNTUsIDEuMDA1NTYsIDEuNzgyNzIsIDIuMjI3ODMiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTUxMjAzLCAwLjE2MDg1NywgMC4yNDc4MzQsIDAuMzkzMTc1LCAwLjUzNzE1MiwgMC44NzU4NzYsIDEuMDcwMDEiLCBcCi0gICAgICAgICAgIjAuMTU4MDc5LCAwLjE2NzczMSwgMC4yNTQ1OTcsIDAuMzk5ODkyLCAwLjU0NTIyNCwgMC44ODMyMTEsIDEuMDc3MDkiLCBcCi0gICAgICAgICAgIjAuMTYzNTgsIDAuMTczMjMxLCAwLjI2MDE1OCwgMC40MDUzODEsIDAuNTUwNjM0LCAwLjg4ODg1OCwgMS4wODI2NCIsIFwKLSAgICAgICAgICAiMC4xNjczOTIsIDAuMTc3MDQ0LCAwLjI2Mzk2MiwgMC40MDkxNzcsIDAuNTU0NTAyLCAwLjg5MjY1OSwgMS4wODYzNCIsIFwKLSAgICAgICAgICAiMC4xNzA1OCwgMC4xODAyMjYsIDAuMjY3MDgsIDAuNDEyMzY1LCAwLjU1NzY5MSwgMC44OTYwMzgsIDEuMDg4NjMiLCBcCi0gICAgICAgICAgIjAuMTc0ODA5LCAwLjE4NDU0NSwgMC4yNzEzNDEsIDAuNDE2NTgxLCAwLjU2MTkxLCAwLjkwMDI4LCAxLjA5Mzg5IiwgXAotICAgICAgICAgICIwLjE3Nzg5LCAwLjE4NzYzOCwgMC4yNzQzOTksIDAuNDE5MjU3LCAwLjU2NTA0NiwgMC45MDMxODYsIDEuMDk2OTQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTA0MTU3LCAwLjEyMzk5NCwgMC4zMDI2MTMsIDAuNTk5OTg3LCAwLjkwMDg1NCwgMS41OTg4NiwgMS45OTc0MiIsIFwKLSAgICAgICAgICAiMC4xMDQxNTMsIDAuMTIzOTE1LCAwLjMwMzA0NCwgMC42MDI2MDYsIDAuOTAwMTM1LCAxLjU5ODc1LCAxLjk5NDk2IiwgXAotICAgICAgICAgICIwLjEwNDE1NywgMC4xMjM4NjMsIDAuMzAxMzE0LCAwLjYwMjYzMywgMC44OTg4MSwgMS41OTg1OCwgMS45ODU2MiIsIFwKLSAgICAgICAgICAiMC4xMDQxNTYsIDAuMTIzODk4LCAwLjMwMTY3NywgMC42MDI2MDgsIDAuOTAwNTAxLCAxLjU5ODYxLCAxLjk5NTMxIiwgXAotICAgICAgICAgICIwLjEwNDE0OCwgMC4xMjM5NDIsIDAuMzAyNzgsIDAuNjAyNjM1LCAwLjg5OTI1LCAxLjU5ODQ4LCAxLjk4NjQ3IiwgXAotICAgICAgICAgICIwLjEwNDEzMiwgMC4xMjQwMzUsIDAuMzAyOTk0LCAwLjYwMjYyNiwgMC44OTg5NzYsIDEuNTk4NDYsIDEuOTk0NjciLCBcCi0gICAgICAgICAgIjAuMTAzNjU5LCAwLjEyMzgwNiwgMC4zMDMxNjYsIDAuNjAyMjk1LCAwLjg5ODMzNSwgMS41OTg3MSwgMS45OTU1OSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcmlzaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE0NjgxNCwgMC4xNTcyMzEsIDAuMjUyMjQ0LCAwLjQwOTgwMywgMC41Njc2MzQsIDAuOTM5ODY0LCAxLjE0NjQ5IiwgXAotICAgICAgICAgICIwLjE1MjgyMiwgMC4xNjMzMDMsIDAuMjU4MjUzLCAwLjQxNTgxMiwgMC41NzU4NjIsIDAuOTQ1OTAxLCAxLjE1NzA5IiwgXAotICAgICAgICAgICIwLjE1OTMwOCwgMC4xNjk4MTcsIDAuMjY0NTU3LCAwLjQyMjkwOCwgMC41ODI1NzgsIDAuOTUyMzg0LCAxLjE1ODg0IiwgXAotICAgICAgICAgICIwLjE2NDcxMiwgMC4xNzUxMTUsIDAuMjcwNzEsIDAuNDI3Njk1LCAwLjU4NTcxMywgMC45NTc3NTEsIDEuMTY4OTMiLCBcCi0gICAgICAgICAgIjAuMTY5MTkzLCAwLjE3OTkwMSwgMC4yNzQ3ODQsIDAuNDMzMDc4LCAwLjU5MjQ0NywgMC45NjIxOTEsIDEuMTczNTQiLCBcCi0gICAgICAgICAgIjAuMTc1NDA1LCAwLjE4NjA3OSwgMC4yODA1NTksIDAuNDQwMDY4LCAwLjU5ODU4NSwgMC45NjgzNDgsIDEuMTc5NjMiLCBcCi0gICAgICAgICAgIjAuMTgwMDEyLCAwLjE5MDU1NCwgMC4yODYxOTUsIDAuNDQzMDc1LCAwLjYwMTAzNCwgMC45NzI5OTQsIDEuMTg0MzgiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTE2NTEzLCAwLjEzODIzNywgMC4zMzczNDYsIDAuNjY5OTI5LCAxLjAwMjcxLCAxLjc4MDg2LCAyLjIyMjcxIiwgXAotICAgICAgICAgICIwLjExNjU1OCwgMC4xMzgzMzgsIDAuMzM3ODUyLCAwLjY3MDAyOCwgMS4wMDQzNiwgMS43ODExMywgMi4yMjU5MyIsIFwKLSAgICAgICAgICAiMC4xMTYyMjgsIDAuMTM4MzQ0LCAwLjMzNzkxMywgMC42NzEzNzIsIDEuMDAzODMsIDEuNzgxMzMsIDIuMjI0OTkiLCBcCi0gICAgICAgICAgIjAuMTE2NDY1LCAwLjEzODQ4MSwgMC4zMzc5OTEsIDAuNjcxODQ5LCAxLjAwMjYyLCAxLjc4MDY3LCAyLjIyNTMzIiwgXAotICAgICAgICAgICIwLjExNjQzMywgMC4xMzkwNTYsIDAuMzM4MzQsIDAuNjcxNjM5LCAxLjAwNDk3LCAxLjc4MzM4LCAyLjIyNzg2IiwgXAotICAgICAgICAgICIwLjExNjUxOCwgMC4xMzkwNDYsIDAuMzM4MzEyLCAwLjY3MTQ5NSwgMS4wMDQ5MiwgMS43ODMyNCwgMi4yMjc4NiIsIFwKLSAgICAgICAgICAiMC4xMTY2NTgsIDAuMTM4OTMyLCAwLjMzODIxNywgMC42NzE0MSwgMS4wMDUyMSwgMS43ODM0NiwgMi4yMjc2OSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogZmFsbGluZ19lZGdlOwotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNDgyNTUsIDAuMTU3OTI5LCAwLjI0NDc4NSwgMC4zOTAxMywgMC41MzQ3MTIsIDAuODcyMDI0LCAxLjA2NTI1IiwgXAotICAgICAgICAgICIwLjE1NjA0NCwgMC4xNjU3MjgsIDAuMjUyNjEsIDAuMzk3OTgyLCAwLjU0MjUzMywgMC44Nzk3MDQsIDEuMDcyNzYiLCBcCi0gICAgICAgICAgIjAuMTY0MDE4LCAwLjE3MzY5NiwgMC4yNjA0ODgsIDAuNDA1ODksIDAuNTUwNDg0LCAwLjg4Nzc1NSwgMS4wODEyNSIsIFwKLSAgICAgICAgICAiMC4xNzAzNjQsIDAuMTgwMDQyLCAwLjI2Njk1MSwgMC40MTIyMzIsIDAuNTU2ODA5LCAwLjg5NDA1MywgMS4wODc1IiwgXAotICAgICAgICAgICIwLjE3NjMzMywgMC4xODU5OTksIDAuMjczMDc2LCAwLjQxODEyOCwgMC41NjI0MDQsIDAuODk5ODYsIDEuMDkzMjUiLCBcCi0gICAgICAgICAgIjAuMTg0NTMzLCAwLjE5NDIwMywgMC4yODEwOTgsIDAuNDI2MzU1LCAwLjU3MTAxMiwgMC45MDgzMDQsIDEuMTAxMTgiLCBcCi0gICAgICAgICAgIjAuMTkwNzAxLCAwLjIwMDM3MywgMC4yODcxOTksIDAuNDMyNDk1LCAwLjU3NzU1NSwgMC45MTU0NzUsIDEuMTA3NDYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTA0MTY1LCAwLjEyNDAyLCAwLjMwMzAzNywgMC42MDE4MiwgMC45MDA2MSwgMS41OTczOCwgMS45OTc4OSIsIFwKLSAgICAgICAgICAiMC4xMDQxMjQsIDAuMTI0MDIxLCAwLjMwMzE4OCwgMC42MDE4NjgsIDAuOTAwNjg5LCAxLjU5NzMxLCAxLjk5Njg2IiwgXAotICAgICAgICAgICIwLjEwNDEzMiwgMC4xMjQwMjEsIDAuMzAyMDMxLCAwLjYwMTc0NywgMC45MDA1OTEsIDEuNTk4NjIsIDEuOTkzMzEiLCBcCi0gICAgICAgICAgIjAuMTA0MTMzLCAwLjEyNDAzMSwgMC4zMDMxMzMsIDAuNjAxNzgzLCAwLjkwMDU2OSwgMS41OTg1MSwgMS45OTYxOCIsIFwKLSAgICAgICAgICAiMC4xMDQxMzksIDAuMTI0MDE4LCAwLjMwMzEzMSwgMC42MDE4NTcsIDAuOTAwNjUzLCAxLjU5ODE4LCAxLjk5NjYyIiwgXAotICAgICAgICAgICIwLjEwNDE4NCwgMC4xMjQwMTgsIDAuMzAzMTEyLCAwLjYwMTY0NiwgMC45MDA2MjYsIDEuNTk3NjUsIDEuOTk2MjYiLCBcCi0gICAgICAgICAgIjAuMTA0MTc1LCAwLjEyMzk0NywgMC4zMDI5MjUsIDAuNjAxNjQ5LCAwLjkwMDI4OCwgMS41OTc4OSwgMS45OTUzNyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcHJlc2V0OwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODY0OTEsIDAuMDk2OTg4LCAwLjE5MTkyMiwgMC4zNTA1NiwgMC41MDkxNiwgMC44Nzg4NDYsIDEuMDkwMTMiLCBcCi0gICAgICAgICAgIjAuMDk0NjI2LCAwLjEwNTA1MiwgMC4yMDAwNTksIDAuMzU4NjYsIDAuNTE3MjcxLCAwLjg4Njk3OCwgMS4wOTgwNiIsIFwKLSAgICAgICAgICAiMC4xMDMzMDEsIDAuMTEzODk0LCAwLjIwOTI2OSwgMC4zNjc0OTEsIDAuNTI1ODk4LCAwLjg5NTcyMiwgMS4xMDY3NyIsIFwKLSAgICAgICAgICAiMC4xMDk2NzUsIDAuMTIwMjc4LCAwLjIxNTA3LCAwLjM3Mzk0OSwgMC41MzIxOTcsIDAuOTAxOTA1LCAxLjExMzQ3IiwgXAotICAgICAgICAgICIwLjExNDY2OSwgMC4xMjUyMTMsIDAuMjIwMTE1LCAwLjM3ODc5LCAwLjUzNzI5LCAwLjkwNzMxNywgMS4xMTgyMiIsIFwKLSAgICAgICAgICAiMC4xMjExNzksIDAuMTMxNzA4LCAwLjIyNjU2OCwgMC4zODUyNDgsIDAuNTQyNzk5LCAwLjkxMzEyOSwgMS4xMjQ0MSIsIFwKLSAgICAgICAgICAiMC4xMjU4NiwgMC4xMzY0MDgsIDAuMjMxMDMzLCAwLjM4OTAzOCwgMC41NDc4NiwgMC45MTc5NywgMS4xMjkzNiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTYzOTcsIDAuMTM4NTQ5LCAwLjMzOTA3OCwgMC42NzEzNzQsIDEuMDA2MjksIDEuNzg0NjEsIDIuMjMxMTUiLCBcCi0gICAgICAgICAgIjAuMTE2Mzk2LCAwLjEzODM1OSwgMC4zMzkwMzEsIDAuNjczMDcsIDEuMDA1OTYsIDEuNzg0NzMsIDIuMjMwMzciLCBcCi0gICAgICAgICAgIjAuMTE2NzIzLCAwLjEzOTAyOCwgMC4zMzg0OTgsIDAuNjcyMjg0LCAxLjAwNjExLCAxLjc4NDU1LCAyLjIzMTIxIiwgXAotICAgICAgICAgICIwLjExNjQ2MywgMC4xMzg4MzIsIDAuMzM5MDg5LCAwLjY3MjY3MSwgMS4wMDY2NCwgMS43ODQ2OSwgMi4yMzExNiIsIFwKLSAgICAgICAgICAiMC4xMTYzMjYsIDAuMTM4NTk4LCAwLjMzODk3MiwgMC42NzI4NTcsIDEuMDA2OTIsIDEuNzg0NzcsIDIuMjMxMTUiLCBcCi0gICAgICAgICAgIjAuMTE2MTYyLCAwLjEzODUxNCwgMC4zMzg1OTEsIDAuNjcxMTY5LCAxLjAwNTI0LCAxLjc4NTc4LCAyLjIzMDQ0IiwgXAotICAgICAgICAgICIwLjExNjYzNywgMC4xMzg2NTYsIDAuMzM4NTkxLCAwLjY3MjI5NiwgMS4wMDU5MSwgMS43ODU1OCwgMi4yMzA4MiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTMxNTEsIDAuMTAyODI1LCAwLjE4OTkzMiwgMC4zMzQ5MjgsIDAuNDgwMDk4LCAwLjgyMDMzOCwgMS4wMTI4NiIsIFwKLSAgICAgICAgICAiMC4wOTkxODEsIDAuMTA4ODUxLCAwLjE5NTk1MywgMC4zNDA5ODcsIDAuNDg1Njk3LCAwLjgyNDA2MSwgMS4wMTg4NyIsIFwKLSAgICAgICAgICAiMC4xMDYzNzUsIDAuMTE2MDMsIDAuMjAyOTc2LCAwLjM0NzY2NywgMC40OTI5NTksIDAuODMxOTM4LCAxLjAyNjc0IiwgXAotICAgICAgICAgICIwLjExMjI1OSwgMC4xMjE5MTcsIDAuMjA4NzYxLCAwLjM1NDAzOCwgMC40OTg2OTQsIDAuODM4MDA2LCAxLjAyOTY3IiwgXAotICAgICAgICAgICIwLjExNzMzLCAwLjEyNzA2OCwgMC4yMTQwMDUsIDAuMzU5MjI3LCAwLjUwNDQwNiwgMC44NDMzMTIsIDEuMDM3MTciLCBcCi0gICAgICAgICAgIjAuMTI0MzI3LCAwLjEzNDA2NywgMC4yMjA5MzksIDAuMzY1NzU0LCAwLjUxMDcwNCwgMC44NTA0MTYsIDEuMDQ0NDMiLCBcCi0gICAgICAgICAgIjAuMTI5NTc0LCAwLjEzOTI3NiwgMC4yMjYwNiwgMC4zNzA3NDgsIDAuNTE1ODYsIDAuODU1MDY4LCAxLjA0OTAzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwNDEyMiwgMC4xMjQwMTIsIDAuMzAyMzk3LCAwLjYwMjcyOSwgMC45MDIwNjcsIDEuNTkzMTQsIDEuOTk5NDIiLCBcCi0gICAgICAgICAgIjAuMTA0MTE2LCAwLjEyNDAwOSwgMC4zMDM0NTEsIDAuNjAyNzI2LCAwLjkwMjAxLCAxLjU5ODI0LCAxLjk5NDQ5IiwgXAotICAgICAgICAgICIwLjEwNDE2MSwgMC4xMjQwMTUsIDAuMzAyNjQ2LCAwLjYwMjcxMiwgMC45MDAzMTIsIDEuNTk4NzcsIDEuOTkxMzQiLCBcCi0gICAgICAgICAgIjAuMTA0MTg3LCAwLjEyNDA1NCwgMC4zMDMyNzgsIDAuNjAyNzU1LCAwLjkwMTEzMywgMS41OTgyNCwgMS45OTc5IiwgXAotICAgICAgICAgICIwLjEwNDIwMywgMC4xMjQwOTUsIDAuMzAyODU5LCAwLjYwMjgzMiwgMC44OTk2NjUsIDEuNTg4ODEsIDEuOTk0NzkiLCBcCi0gICAgICAgICAgIjAuMTA0Mjc2LCAwLjEyMzg1OCwgMC4zMDMzMjQsIDAuNjAwMDkyLCAwLjkwMjE5MSwgMS41OTA3NiwgMS45OTU4IiwgXAotICAgICAgICAgICIwLjEwNDI1OCwgMC4xMjQzMzIsIDAuMzAyOTU4LCAwLjYwMjk0MiwgMC45MDE0NzYsIDEuNTk3MjksIDEuOTg0MSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkQiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjYzOCwgMC4wMDI2MzksIDAuMDAyNjQzLCAwLjAwMjY0NCwgMC4wMDI2NDUsIDAuMDAyNjQ2LCAwLjAwMjY0NSIsIFwKLSAgICAgICAgICAiMC4wMDI2MjIsIDAuMDAyNjIzLCAwLjAwMjYyNywgMC4wMDI2MjksIDAuMDAyNjI5LCAwLjAwMjYyNiwgMC4wMDI2MjkiLCBcCi0gICAgICAgICAgIjAuMDAyNjI4LCAwLjAwMjYyOSwgMC4wMDI2MzQsIDAuMDAyNjM1LCAwLjAwMjYzNiwgMC4wMDI2MzYsIDAuMDAyNjM2IiwgXAotICAgICAgICAgICIwLjAwMjY1OCwgMC4wMDI2NiwgMC4wMDI2NjQsIDAuMDAyNjY1LCAwLjAwMjY2NiwgMC4wMDI2NjcsIDAuMDAyNjY3IiwgXAotICAgICAgICAgICIwLjAwMjY4OSwgMC4wMDI2OSwgMC4wMDI2OTQsIDAuMDAyNjk1LCAwLjAwMjY5NiwgMC4wMDI2OTcsIDAuMDAyNjk3IiwgXAotICAgICAgICAgICIwLjAwMjc1NiwgMC4wMDI3NTksIDAuMDAyNzYyLCAwLjAwMjc2NSwgMC4wMDI3NjQsIDAuMDAyNzY1LCAwLjAwMjc2NSIsIFwKLSAgICAgICAgICAiMC4wMDI4MjcsIDAuMDAyODI4LCAwLjAwMjgzMiwgMC4wMDI4MzQsIDAuMDAyODM1LCAwLjAwMjgzNCwgMC4wMDI4MzQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDMzNDIsIDAuMDAzMzQzLCAwLjAwMzM0NCwgMC4wMDMzNDQsIDAuMDAzMzQ0LCAwLjAwMzM0NCwgMC4wMDMzNDQiLCBcCi0gICAgICAgICAgIjAuMDAzMzMyLCAwLjAwMzMzMiwgMC4wMDMzMzMsIDAuMDAzMzM0LCAwLjAwMzMzNCwgMC4wMDMzMzQsIDAuMDAzMzM0IiwgXAotICAgICAgICAgICIwLjAwMzM0MSwgMC4wMDMzNDEsIDAuMDAzMzQzLCAwLjAwMzM0MywgMC4wMDMzNDMsIDAuMDAzMzQzLCAwLjAwMzM0MyIsIFwKLSAgICAgICAgICAiMC4wMDMzNjMsIDAuMDAzMzY0LCAwLjAwMzM2NSwgMC4wMDMzNjUsIDAuMDAzMzY2LCAwLjAwMzM2NiwgMC4wMDMzNjYiLCBcCi0gICAgICAgICAgIjAuMDAzNDA1LCAwLjAwMzQwNCwgMC4wMDM0MDcsIDAuMDAzNDA3LCAwLjAwMzQwOCwgMC4wMDM0MDgsIDAuMDAzNDA4IiwgXAotICAgICAgICAgICIwLjAwMzQ2MywgMC4wMDM0NjQsIDAuMDAzNDY1LCAwLjAwMzQ2NSwgMC4wMDM0NjUsIDAuMDAzNDY1LCAwLjAwMzQ2NSIsIFwKLSAgICAgICAgICAiMC4wMDM1MzMsIDAuMDAzNTMzLCAwLjAwMzUzNSwgMC4wMDM1MzUsIDAuMDAzNTM1LCAwLjAwMzUzNSwgMC4wMDM1MzYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJHTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1MDI3LCAwLjAwNTAyOCwgMC4wMDUwMzIsIDAuMDA1MDM0LCAwLjAwNTAzNCwgMC4wMDUwMzUsIDAuMDA1MDM1IiwgXAotICAgICAgICAgICIwLjAwNTAzOCwgMC4wMDUwNCwgMC4wMDUwNDQsIDAuMDA1MDQ1LCAwLjAwNTA0NiwgMC4wMDUwNDYsIDAuMDA1MDQ2IiwgXAotICAgICAgICAgICIwLjAwNTA3NSwgMC4wMDUwNzYsIDAuMDA1MDgsIDAuMDA1MDgxLCAwLjAwNTA4MSwgMC4wMDUwODIsIDAuMDA1MDgyIiwgXAotICAgICAgICAgICIwLjAwNTEzNSwgMC4wMDUxMzYsIDAuMDA1MTQsIDAuMDA1MTQyLCAwLjAwNTE0MiwgMC4wMDUxNDMsIDAuMDA1MTQyIiwgXAotICAgICAgICAgICIwLjAwNTIwMSwgMC4wMDUyMDMsIDAuMDA1MjAzLCAwLjAwNTIwOCwgMC4wMDUyMDUsIDAuMDA1MjA5LCAwLjAwNTIwNSIsIFwKLSAgICAgICAgICAiMC4wMDUzMTYsIDAuMDA1MzE4LCAwLjAwNTMyMiwgMC4wMDUzMjQsIDAuMDA1MzE4LCAwLjAwNTMyNSwgMC4wMDUzMjUiLCBcCi0gICAgICAgICAgIjAuMDA1NDIsIDAuMDA1NDIsIDAuMDA1NDI0LCAwLjAwNTQyNSwgMC4wMDU0MjcsIDAuMDA1NDI3LCAwLjAwNTQyNyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNTU3MiwgMC4wMDU1NzIsIDAuMDA1NTczLCAwLjAwNTU3MywgMC4wMDU1NzMsIDAuMDA1NTczLCAwLjAwNTU3MyIsIFwKLSAgICAgICAgICAiMC4wMDU1ODIsIDAuMDA1NTgzLCAwLjAwNTU4NCwgMC4wMDU1ODQsIDAuMDA1NTg0LCAwLjAwNTU4NCwgMC4wMDU1ODQiLCBcCi0gICAgICAgICAgIjAuMDA1NjE2LCAwLjAwNTYxNywgMC4wMDU2MTgsIDAuMDA1NjE4LCAwLjAwNTYxOCwgMC4wMDU2MTgsIDAuMDA1NjE4IiwgXAotICAgICAgICAgICIwLjAwNTY3OSwgMC4wMDU2OCwgMC4wMDU2ODEsIDAuMDA1NjgsIDAuMDA1NjgsIDAuMDA1NjgxLCAwLjAwNTY4MSIsIFwKLSAgICAgICAgICAiMC4wMDU3NDIsIDAuMDA1NzQyLCAwLjAwNTc0MywgMC4wMDU3NDQsIDAuMDA1NzQzLCAwLjAwNTc0MSwgMC4wMDU3NCIsIFwKLSAgICAgICAgICAiMC4wMDU4NTgsIDAuMDA1ODUxLCAwLjAwNTg2MSwgMC4wMDU4NTksIDAuMDA1ODUzLCAwLjAwNTg1MywgMC4wMDU4NTMiLCBcCi0gICAgICAgICAgIjAuMDA1OTYsIDAuMDA1OTU3LCAwLjAwNTk2MSwgMC4wMDU5NTksIDAuMDA1OTU5LCAwLjAwNTk1OSwgMC4wMDU5NTkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzOTU1LCAwLjAwMzk1NiwgMC4wMDM5NiwgMC4wMDM5NjEsIDAuMDAzOTYyLCAwLjAwMzk2MiwgMC4wMDM5NjMiLCBcCi0gICAgICAgICAgIjAuMDAzOTM2LCAwLjAwMzkzOCwgMC4wMDM5NDIsIDAuMDAzOTQzLCAwLjAwMzk0NCwgMC4wMDM5NDQsIDAuMDAzOTQ0IiwgXAotICAgICAgICAgICIwLjAwMzk1NywgMC4wMDM5NTgsIDAuMDAzOTYyLCAwLjAwMzk2NCwgMC4wMDM5NjQsIDAuMDAzOTY0LCAwLjAwMzk2NSIsIFwKLSAgICAgICAgICAiMC4wMDM5OCwgMC4wMDM5ODIsIDAuMDAzOTg2LCAwLjAwMzk4NywgMC4wMDM5ODgsIDAuMDAzOTg4LCAwLjAwMzk4OCIsIFwKLSAgICAgICAgICAiMC4wMDQwMywgMC4wMDQwMzEsIDAuMDA0MDM1LCAwLjAwNDAzNiwgMC4wMDQwMzcsIDAuMDA0MDM3LCAwLjAwNDAzNyIsIFwKLSAgICAgICAgICAiMC4wMDQxMTMsIDAuMDA0MTE1LCAwLjAwNDExOCwgMC4wMDQxMjEsIDAuMDA0MTIxLCAwLjAwNDEyMiwgMC4wMDQxMjIiLCBcCi0gICAgICAgICAgIjAuMDA0MTg3LCAwLjAwNDE4OCwgMC4wMDQxOTIsIDAuMDA0MTk0LCAwLjAwNDE5NCwgMC4wMDQxOTQsIDAuMDA0MTk0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0OTc4LCAwLjAwNDk3OCwgMC4wMDQ5NzksIDAuMDA0OTc5LCAwLjAwNDk4LCAwLjAwNDk4LCAwLjAwNDk3OSIsIFwKLSAgICAgICAgICAiMC4wMDQ5NzcsIDAuMDA0OTc4LCAwLjAwNDk3OSwgMC4wMDQ5NzksIDAuMDA0OTc5LCAwLjAwNDk3OSwgMC4wMDQ5NzkiLCBcCi0gICAgICAgICAgIjAuMDA1MDExLCAwLjAwNTAxMSwgMC4wMDUwMTIsIDAuMDA1MDEyLCAwLjAwNTAxMywgMC4wMDUwMTEsIDAuMDA1MDEzIiwgXAotICAgICAgICAgICIwLjAwNTA2NSwgMC4wMDUwNjUsIDAuMDA1MDY2LCAwLjAwNTA2NiwgMC4wMDUwNjcsIDAuMDA1MDY2LCAwLjAwNTA2NiIsIFwKLSAgICAgICAgICAiMC4wMDUxMTEsIDAuMDA1MTEyLCAwLjAwNTExMywgMC4wMDUxMTMsIDAuMDA1MTE0LCAwLjAwNTExMywgMC4wMDUxMTQiLCBcCi0gICAgICAgICAgIjAuMDA1MjE0LCAwLjAwNTIxNCwgMC4wMDUyMTUsIDAuMDA1MjE2LCAwLjAwNTIxNiwgMC4wMDUyMTYsIDAuMDA1MjE3IiwgXAotICAgICAgICAgICIwLjAwNTMyLCAwLjAwNTMyLCAwLjAwNTMyMiwgMC4wMDUzMTksIDAuMDA1MzE5LCAwLjAwNTMxOSwgMC4wMDUzMTkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzMTUsIDAuMDAzMTUsIDAuMDAzMTUyLCAwLjAwMzE1NCwgMC4wMDMxNTMsIDAuMDAzMTU0LCAwLjAwMzE1NSIsIFwKLSAgICAgICAgICAiMC4wMDMxNCwgMC4wMDMxNDEsIDAuMDAzMTQ0LCAwLjAwMzE0NSwgMC4wMDMxNDUsIDAuMDAzMTQ1LCAwLjAwMzE0NiIsIFwKLSAgICAgICAgICAiMC4wMDMxNTksIDAuMDAzMTYxLCAwLjAwMzE2NCwgMC4wMDMxNjUsIDAuMDAzMTY1LCAwLjAwMzE2NSwgMC4wMDMxNjUiLCBcCi0gICAgICAgICAgIjAuMDAzMTkzLCAwLjAwMzE5NCwgMC4wMDMxOTYsIDAuMDAzMTk3LCAwLjAwMzE5NywgMC4wMDMxOTgsIDAuMDAzMTk4IiwgXAotICAgICAgICAgICIwLjAwMzI0MSwgMC4wMDMyNDIsIDAuMDAzMjQ0LCAwLjAwMzI0NCwgMC4wMDMyNDUsIDAuMDAzMjQ1LCAwLjAwMzI0NSIsIFwKLSAgICAgICAgICAiMC4wMDMzMywgMC4wMDMzMywgMC4wMDMzMywgMC4wMDMzMzEsIDAuMDAzMzMxLCAwLjAwMzMzMSwgMC4wMDMzMzEiLCBcCi0gICAgICAgICAgIjAuMDAzNDExLCAwLjAwMzQxMSwgMC4wMDM0MSwgMC4wMDM0MDksIDAuMDAzNDA5LCAwLjAwMzQwOSwgMC4wMDM0MDkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDE5LCAwLjAwMTkwMSwgMC4wMDE5MDEsIDAuMDAxOTAxLCAwLjAwMTkwMSwgMC4wMDE5MDIsIDAuMDAxOTAyIiwgXAotICAgICAgICAgICIwLjAwMTg4MywgMC4wMDE4ODMsIDAuMDAxODg0LCAwLjAwMTg4NCwgMC4wMDE4ODUsIDAuMDAxODg0LCAwLjAwMTg4NCIsIFwKLSAgICAgICAgICAiMC4wMDE5MDgsIDAuMDAxOTA4LCAwLjAwMTkwOCwgMC4wMDE5MDgsIDAuMDAxOTA4LCAwLjAwMTkwNywgMC4wMDE5MDciLCBcCi0gICAgICAgICAgIjAuMDAxOTM1LCAwLjAwMTkzNSwgMC4wMDE5MzUsIDAuMDAxOTM1LCAwLjAwMTkzNSwgMC4wMDE5MzUsIDAuMDAxOTM1IiwgXAotICAgICAgICAgICIwLjAwMTk3NywgMC4wMDE5NzYsIDAuMDAxOTc3LCAwLjAwMTk3NSwgMC4wMDE5NzUsIDAuMDAxOTc1LCAwLjAwMTk3NSIsIFwKLSAgICAgICAgICAiMC4wMDIwNzcsIDAuMDAyMDc2LCAwLjAwMjA3MiwgMC4wMDIwNywgMC4wMDIwNywgMC4wMDIwNjksIDAuMDAyMDY5IiwgXAotICAgICAgICAgICIwLjAwMjEzNywgMC4wMDIxMzYsIDAuMDAyMTM0LCAwLjAwMjEzMywgMC4wMDIxMzIsIDAuMDAyMTMxLCAwLjAwMjEzMSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUU4pICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4xOTkwNDsKLSAgICBmdW5jdGlvbiA6ICJONSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTIxODY2LCAwLjEzMjQyLCAwLjIyNzEzOCwgMC4zODQ5OTMsIDAuNTQyODEzLCAwLjkxMDY1LCAxLjEyMTY4IiwgXAotICAgICAgICAgICIwLjEyNzQ1MiwgMC4xMzgsIDAuMjMyNzIxLCAwLjM5MDU4LCAwLjU0ODIyMiwgMC45MTYyMzEsIDEuMTI2NiIsIFwKLSAgICAgICAgICAiMC4xMzM1NTYsIDAuMTQ0MTA1LCAwLjIzODgzMSwgMC4zOTY2ODIsIDAuNTU0NTk5LCAwLjkyMjgzNiwgMS4xMzI3NCIsIFwKLSAgICAgICAgICAiMC4xMzg2NjgsIDAuMTQ5MjE5LCAwLjI0Mzk2MywgMC40MDE3ODgsIDAuNTU5NTg3LCAwLjkyNzk5NCwgMS4xMzg0NSIsIFwKLSAgICAgICAgICAiMC4xNDI5NDEsIDAuMTUzNDk3LCAwLjI0ODIxOCwgMC40MDYwNjgsIDAuNTYzODYxLCAwLjkzMjEwOSwgMS4xNDI2NCIsIFwKLSAgICAgICAgICAiMC4xNDg2OTMsIDAuMTU5MjQ0LCAwLjI1Mzk1NCwgMC40MTE3NzMsIDAuNTY5NTU4LCAwLjkzNzc1OSwgMS4xNDgxNyIsIFwKLSAgICAgICAgICAiMC4xNTMwMzcsIDAuMTYzNTk2LCAwLjI1ODMwNiwgMC40MTYxNTIsIDAuNTczOTg4LCAwLjk0MjA3NywgMS4xNTI2NCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMjA0NTUsIDAuMTQyMDM2LCAwLjMzOTAzMiwgMC42NzE3NTIsIDEuMDAyMDMsIDEuNzc2MTYsIDIuMjE5NzMiLCBcCi0gICAgICAgICAgIjAuMTIwNDc1LCAwLjE0MjAzNSwgMC4zMzkwNDIsIDAuNjcxNzYzLCAxLjAwMywgMS43NzU1MSwgMi4yMTkiLCBcCi0gICAgICAgICAgIjAuMTIwNDcxLCAwLjE0MjAzNSwgMC4zMzg5MTYsIDAuNjcxNzI0LCAxLjAwMjM0LCAxLjc4LCAyLjIyMDk0IiwgXAotICAgICAgICAgICIwLjEyMDQ4NywgMC4xNDIwNjQsIDAuMzM5NjQxLCAwLjY3MTY4MywgMS4wMDQwMiwgMS43Nzc0MSwgMi4yMTk1NyIsIFwKLSAgICAgICAgICAiMC4xMjA1MjMsIDAuMTQyMDcyLCAwLjMzODkxNiwgMC42NzE2MjUsIDEuMDAyNjUsIDEuNzc3ODcsIDIuMjIzMjUiLCBcCi0gICAgICAgICAgIjAuMTIwNTEyLCAwLjE0MjA0MywgMC4zMzkxOTcsIDAuNjcxMDMsIDEuMDAzMDgsIDEuNzc4NDQsIDIuMjIxMzIiLCBcCi0gICAgICAgICAgIjAuMTIwNTEsIDAuMTQyMDE3LCAwLjMzOTQ4NywgMC42NzE0MjQsIDEuMDAyNjMsIDEuNzc5NTUsIDIuMjIzMDMiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTAyNjIsIDAuMTEyMjY2LCAwLjE5OTEyNSwgMC4zNDM5MjksIDAuNDg4NTYyLCAwLjgyNjE5NywgMS4wMTkxNSIsIFwKLSAgICAgICAgICAiMC4xMDg3MTksIDAuMTE4Mzg3LCAwLjIwNTIzNCwgMC4zNTAwNDEsIDAuNDk0NzMsIDAuODMyMzAzLCAxLjAyNTI1IiwgXAotICAgICAgICAgICIwLjExNTYyNCwgMC4xMjUyODQsIDAuMjEyMTE3LCAwLjM1NjkxMiwgMC41MDE1NjcsIDAuODM5MjA5LCAxLjAzMTg3IiwgXAotICAgICAgICAgICIwLjEyMTMyNSwgMC4xMzA5ODEsIDAuMjE3ODM3LCAwLjM2MjYxMSwgMC41MDcyNTcsIDAuODQ0OTU1LCAxLjAzNzgxIiwgXAotICAgICAgICAgICIwLjEyNjA3OCwgMC4xMzU3NCwgMC4yMjI1OTksIDAuMzY3Mjk5LCAwLjUxMjAzLCAwLjg0OTY3NywgMS4wNDI1OSIsIFwKLSAgICAgICAgICAiMC4xMzI1NzUsIDAuMTQyMjQ0LCAwLjIyOTA4NSwgMC4zNzM3OTcsIDAuNTE4NDgxLCAwLjg1NjA3NiwgMS4wNDkiLCBcCi0gICAgICAgICAgIjAuMTM3NDg0LCAwLjE0NzEzNiwgMC4yMzM5NzcsIDAuMzc4NjgsIDAuNTIzMzY0LCAwLjg2MTA2OCwgMS4wNTM5MyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDU4MzUsIDAuMTI1MTg3LCAwLjMwMzE4NiwgMC41OTk2NzYsIDAuODk4MjUxLCAxLjU5MjU2LCAxLjk4OTM4IiwgXAotICAgICAgICAgICIwLjEwNTY2MywgMC4xMjUzNjYsIDAuMzAzMTc0LCAwLjU5OTQ4MiwgMC44OTYzNTgsIDEuNTkyNTgsIDEuOTg5MzUiLCBcCi0gICAgICAgICAgIjAuMTA1ODQsIDAuMTI1NDc1LCAwLjMwMzEyOSwgMC41OTk0MDQsIDAuODk4MjQyLCAxLjU5MjU2LCAxLjk4ODU5IiwgXAotICAgICAgICAgICIwLjEwNTg2NSwgMC4xMjUyODgsIDAuMzAzMTQ2LCAwLjU5OTM2MywgMC44OTcwNDUsIDEuNTkyNzYsIDEuOTg2NjEiLCBcCi0gICAgICAgICAgIjAuMTA1ODcyLCAwLjEyNTQ4OSwgMC4zMDMyMDYsIDAuNjAwNDgzLCAwLjg5NjU5OSwgMS41ODk3NywgMS45ODkyMSIsIFwKLSAgICAgICAgICAiMC4xMDU4NCwgMC4xMjUzNTcsIDAuMzAyNzg2LCAwLjU5OTUwNiwgMC44OTc5MzksIDEuNTkxOTgsIDEuOTg4NTYiLCBcCi0gICAgICAgICAgIjAuMTA1ODcsIDAuMTI1MjQ5LCAwLjMwMjkyOSwgMC41OTk3NzksIDAuODk2NzczLCAxLjU5MjY0LCAxLjk4ODciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiR04iOwotICAgICAgdGltaW5nX3NlbnNlIDogbm9uX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiBmYWxsaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE1MTUzOCwgMC4xNjIwODksIDAuMjU2NzksIDAuNDE0NzE3LCAwLjU3MjQ2NywgMC45NDA2MTIsIDEuMTUxMjMiLCBcCi0gICAgICAgICAgIjAuMTU4NDE2LCAwLjE2ODk2OCwgMC4yNjM2ODUsIDAuNDIxNTUzLCAwLjU3OTQ3NCwgMC45NDc2MDUsIDEuMTU4MTciLCBcCi0gICAgICAgICAgIjAuMTYzOTIzLCAwLjE3NDQ3NiwgMC4yNjkxOTgsIDAuNDI3MDU4LCAwLjU4NDk1MSwgMC45NTMxNSwgMS4xNjM2OSIsIFwKLSAgICAgICAgICAiMC4xNjc3MzUsIDAuMTc4Mjg4LCAwLjI3MzAwOSwgMC40MzA4NCwgMC41ODg3NTgsIDAuOTU2OTU5LCAxLjE2NzQ1IiwgXAotICAgICAgICAgICIwLjE3MDkwNCwgMC4xODE0NTMsIDAuMjc2MTY3LCAwLjQzNDAyNywgMC41OTE5NDYsIDAuOTYwMTU4LCAxLjE3MDUzIiwgXAotICAgICAgICAgICIwLjE3NTEzNywgMC4xODU3NjEsIDAuMjgwMzgyLCAwLjQzODI1NCwgMC41OTYyMjIsIDAuOTY0NDYxLCAxLjE3NDk2IiwgXAotICAgICAgICAgICIwLjE3ODIxMywgMC4xODg4ODQsIDAuMjgzNDg5LCAwLjQ0MTQ0NywgMC41OTkzNTgsIDAuOTY3NTM2LCAxLjE3ODA3Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEyMDYyMywgMC4xNDIxNDQsIDAuMzM5NDA0LCAwLjY3MDY1OSwgMS4wMDI5OSwgMS43Nzk4NywgMi4yMjM0NSIsIFwKLSAgICAgICAgICAiMC4xMjA2MjIsIDAuMTQyMTQxLCAwLjMzOTAzOCwgMC42NzE3NDgsIDEuMDAyNzIsIDEuNzc5OTcsIDIuMjIwMiIsIFwKLSAgICAgICAgICAiMC4xMjA2MTYsIDAuMTQyMTM1LCAwLjMzODkzNSwgMC42NzE3NTQsIDEuMDAyNzMsIDEuNzc5OTcsIDIuMjIwMDUiLCBcCi0gICAgICAgICAgIjAuMTIwNjE4LCAwLjE0MjE0MSwgMC4zMzg5MTksIDAuNjcxNzUsIDEuMDAyNjksIDEuNzc5OTcsIDIuMjIwMTYiLCBcCi0gICAgICAgICAgIjAuMTIwNjM0LCAwLjE0MjE1OSwgMC4zMzkwODksIDAuNjcxNzUzLCAxLjAwMjI2LCAxLjc4MDAxLCAyLjIxOTYxIiwgXAotICAgICAgICAgICIwLjEyMDYyNCwgMC4xNDIxNDUsIDAuMzM5MjAzLCAwLjY3MTczOCwgMS4wMDI3MywgMS43Nzk5NywgMi4yMjAyMyIsIFwKLSAgICAgICAgICAiMC4xMjA0OTksIDAuMTQyMDgzLCAwLjMzOTE4LCAwLjY3MTA0OSwgMS4wMDI3NCwgMS43Nzk5NiwgMi4yMjAxMiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNDQzMjIsIDAuMTUzOTc4LCAwLjI0MDgyOSwgMC4zODU2MDMsIDAuNTMwMzE4LCAwLjg2Nzg5MywgMS4wNjA4NyIsIFwKLSAgICAgICAgICAiMC4xNTEyMiwgMC4xNjA4NzgsIDAuMjQ3NzQ5LCAwLjM5MjQ4MywgMC41MzcxNTcsIDAuODc0ODA3LCAxLjA2NzczIiwgXAotICAgICAgICAgICIwLjE1NjcyNSwgMC4xNjYzODEsIDAuMjUzMjM0LCAwLjM5ODAwMywgMC41NDI3MTgsIDAuODgwMjk1LCAxLjA3MzI4IiwgXAotICAgICAgICAgICIwLjE2MDUxNCwgMC4xNzAyNCwgMC4yNTcwMjEsIDAuNDAxODIyLCAwLjU0NjUxOSwgMC44ODQxNDksIDEuMDc3MDYiLCBcCi0gICAgICAgICAgIjAuMTYzNzU2LCAwLjE3MzQxNSwgMC4yNjAyMTUsIDAuNDA1MDAyLCAwLjU0OTY0MiwgMC44ODczNTEsIDEuMDgwMjciLCBcCi0gICAgICAgICAgIjAuMTY3OTI0LCAwLjE3NzU4NywgMC4yNjQ0NTMsIDAuNDA5MjE4LCAwLjU1MzkyMiwgMC44OTE1MDIsIDEuMDg0NDUiLCBcCi0gICAgICAgICAgIjAuMTcxMDA5LCAwLjE4MDY2NCwgMC4yNjc1MTUsIDAuNDEyMjcyLCAwLjU1Njk4NiwgMC44OTQ1NzQsIDEuMDg3NDkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTA1ODcxLCAwLjEyNTM1MSwgMC4zMDMxNDMsIDAuNTk5Mzg3LCAwLjg5NjMyNCwgMS41OTI1NSwgMS45ODU5MSIsIFwKLSAgICAgICAgICAiMC4xMDU4NjksIDAuMTI1NTM1LCAwLjMwMzI3NSwgMC42MDA3NzYsIDAuODk4MjQ0LCAxLjU5MjU5LCAxLjk4NjU2IiwgXAotICAgICAgICAgICIwLjEwNTg3MSwgMC4xMjUzMzEsIDAuMzAzMTQ1LCAwLjU5OTM5MiwgMC44OTYzMywgMS41OTI1NSwgMS45ODQzOCIsIFwKLSAgICAgICAgICAiMC4xMDU4NjUsIDAuMTI1NDA4LCAwLjMwMjY1NywgMC41OTk1OTIsIDAuODk4MjM2LCAxLjU5MjU0LCAxLjk4OTQyIiwgXAotICAgICAgICAgICIwLjEwNTY5MywgMC4xMjU1NDgsIDAuMzAzMTc1LCAwLjU5OTg5OCwgMC44OTgyMjQsIDEuNTkyNjEsIDEuOTg5NTEiLCBcCi0gICAgICAgICAgIjAuMTA1OTE5LCAwLjEyNTM2MiwgMC4zMDI2NzksIDAuNTk5MzA2LCAwLjg5Njk1OCwgMS41OTI1NywgMS45ODkzNSIsIFwKLSAgICAgICAgICAiMC4xMDU3ODEsIDAuMTI1MzUyLCAwLjMwMzIwNSwgMC42MDA3NzQsIDAuODk4MzQ3LCAxLjU5MjUxLCAxLjk4NjU4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiByaXNpbmdfZWRnZTsKLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTM2NjU2LCAwLjE0NjMxMSwgMC4yMzMxNjUsIDAuMzc3OTM2LCAwLjUyMjY2LCAwLjg2MDIzLCAxLjA1MzIiLCBcCi0gICAgICAgICAgIjAuMTQyNjY4LCAwLjE1MjMyNCwgMC4yMzkxNzcsIDAuMzgzOTQ4LCAwLjUyODY0MSwgMC44NjYyNCwgMS4wNTkyMSIsIFwKLSAgICAgICAgICAiMC4xNDkyMzEsIDAuMTU4ODg4LCAwLjI0NTc4MywgMC4zOTA0NjgsIDAuNTM1MTY2LCAwLjg3MjgxNywgMS4wNjU3OSIsIFwKLSAgICAgICAgICAiMC4xNTQ1NCwgMC4xNjQxOTcsIDAuMjUxMDQ2LCAwLjM5NTgzMywgMC41NDA0OTEsIDAuODc4MTE2LCAxLjA3MTA5IiwgXAotICAgICAgICAgICIwLjE1OTEyNCwgMC4xNjg3ODIsIDAuMjU1NjMyLCAwLjQwMDM1NSwgMC41NDUwNTgsIDAuODgyNzI1LCAxLjA3NTY5IiwgXAotICAgICAgICAgICIwLjE2NTI4NCwgMC4xNzQ5MzUsIDAuMjYxODEyLCAwLjQwNjUwNSwgMC41NTEyMTMsIDAuODg4ODc4LCAxLjA4MTg4IiwgXAotICAgICAgICAgICIwLjE2OTk0NCwgMC4xNzk2MDcsIDAuMjY2NDY1LCAwLjQxMTIxOSwgMC41NTU4OTQsIDAuODkzNTEzLCAxLjA4NjQ5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwNTg3MSwgMC4xMjUyNzksIDAuMzAyMzMxLCAwLjU5OTM5LCAwLjg5NjMxMywgMS41OTI1NiwgMS45ODU4MyIsIFwKLSAgICAgICAgICAiMC4xMDU4NzIsIDAuMTI1MzM3LCAwLjMwMzE0NiwgMC41OTkzOTEsIDAuODk4MzQ4LCAxLjU5MjU2LCAxLjk4OTQyIiwgXAotICAgICAgICAgICIwLjEwNTkwNywgMC4xMjU0MTUsIDAuMzAyNTAzLCAwLjYwMDQ5MywgMC44OTgyMjgsIDEuNTkyNTcsIDEuOTg1NDgiLCBcCi0gICAgICAgICAgIjAuMTA1ODY2LCAwLjEyNTI0NCwgMC4zMDMxNzYsIDAuNTk5MzQ4LCAwLjg5NzAyLCAxLjU5MjU0LCAxLjk4OTQ1IiwgXAotICAgICAgICAgICIwLjEwNTY5LCAwLjEyNTU0NywgMC4zMDMxNDEsIDAuNjAwNTQ4LCAwLjg5ODIzNSwgMS41OTI2NSwgMS45ODk1NCIsIFwKLSAgICAgICAgICAiMC4xMDU4MzMsIDAuMTI1NTIzLCAwLjMwMjU3MiwgMC42MDA2NTgsIDAuODk4MjM1LCAxLjU5MjY0LCAxLjk4OTY1IiwgXAotICAgICAgICAgICIwLjEwNTc2NywgMC4xMjUzODIsIDAuMzAzMjQ2LCAwLjU5OTQsIDAuODk2OTkyLCAxLjU5MjUyLCAxLjk4OTQ2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiBmYWxsaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE0ODM5NywgMC4xNTg5NTIsIDAuMjUzNjc3LCAwLjQxMTU1NSwgMC41NjkyNjYsIDAuOTM3NDc0LCAxLjE0Nzg4IiwgXAotICAgICAgICAgICIwLjE1NjE5LCAwLjE2NjczOCwgMC4yNjE0NjUsIDAuNDE5MzYsIDAuNTc3MDU3LCAwLjk0NTI3NSwgMS4xNTU2NyIsIFwKLSAgICAgICAgICAiMC4xNjQxNTUsIDAuMTc0NzA4LCAwLjI2OTQyNCwgMC40MjczMTUsIDAuNTg1MDI3LCAwLjk1MzIzMSwgMS4xNjM0NCIsIFwKLSAgICAgICAgICAiMC4xNzA0OTEsIDAuMTgxMDUxLCAwLjI3NTc3MSwgMC40MzM2NDgsIDAuNTkxMzU3LCAwLjk1OTU3MiwgMS4xNjk3MyIsIFwKLSAgICAgICAgICAiMC4xNzY0NDgsIDAuMTg2OTk3LCAwLjI4MTc0NSwgMC40Mzk1ODUsIDAuNTk3MjEyLCAwLjk2NTI3NiwgMS4xNzU5MiIsIFwKLSAgICAgICAgICAiMC4xODQ2NzMsIDAuMTk1MjI4LCAwLjI4OTk1NiwgMC40NDc4MjEsIDAuNjA1NTQ5LCAwLjk3Mzc0OCwgMS4xODQxNiIsIFwKLSAgICAgICAgICAiMC4xOTA4NDYsIDAuMjAxNDA1LCAwLjI5NjEyMiwgMC40NTM5OCwgMC42MTE4MTUsIDAuOTc5OTU3LCAxLjE5MDMyIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEyMDQ1NCwgMC4xNDIwMzcsIDAuMzM5NDQ1LCAwLjY3MDU5NCwgMS4wMDM4OCwgMS43Nzg0MSwgMi4yMjMzNyIsIFwKLSAgICAgICAgICAiMC4xMjA0NzIsIDAuMTQyMDM2LCAwLjMzOTA2NiwgMC42NzE1NTYsIDEuMDAzOSwgMS43Nzg0LCAyLjIyMzA3IiwgXAotICAgICAgICAgICIwLjEyMDQ3NiwgMC4xNDIwNCwgMC4zMzkwMDYsIDAuNjcwNjM4LCAxLjAwMzg3LCAxLjc3NjQyLCAyLjIyMTAzIiwgXAotICAgICAgICAgICIwLjEyMDQ3MiwgMC4xNDIwNDgsIDAuMzM5NTU4LCAwLjY3MDYwNSwgMS4wMDM4NywgMS43Nzg1NiwgMi4yMjE0NyIsIFwKLSAgICAgICAgICAiMC4xMjA1MSwgMC4xNDIwNjQsIDAuMzM5NTUxLCAwLjY3MTQ5NCwgMS4wMDM4OCwgMS43Nzg0LCAyLjIyMTUiLCBcCi0gICAgICAgICAgIjAuMTIwNTQ3LCAwLjE0MjA4LCAwLjMzOTUxNywgMC42NzE1MzgsIDEuMDAzODgsIDEuNzc5NTcsIDIuMjIxNDYiLCBcCi0gICAgICAgICAgIjAuMTIwNTM4LCAwLjE0MjA2OSwgMC4zMzk0NywgMC42NzE1MTEsIDEuMDAzOTQsIDEuNzc5NiwgMi4yMjEzMyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogY2xlYXI7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5MzIwNywgMC4xMDM3NTgsIDAuMTk4NDkxLCAwLjM1NjMwNiwgMC41MTQxODUsIDAuODgzMTc1LCAxLjA5MzIiLCBcCi0gICAgICAgICAgIjAuMDk5MjE3LCAwLjEwOTc2NywgMC4yMDQ1MDcsIDAuMzYyMzM5LCAwLjUyMDI0MywgMC44ODg3MDcsIDEuMDk5MjkiLCBcCi0gICAgICAgICAgIjAuMTA2NDY3LCAwLjExNzAxMiwgMC4yMTE3MjMsIDAuMzY5NjE0LCAwLjUyNzQ1NSwgMC44OTU4NTEsIDEuMTA2MjYiLCBcCi0gICAgICAgICAgIjAuMTEyODUyLCAwLjEyMzM5NiwgMC4yMTgwOTcsIDAuMzc1OTQ4LCAwLjUzMzk5OCwgMC45MDIyMzMsIDEuMTEzMjkiLCBcCi0gICAgICAgICAgIjAuMTE4NDU2LCAwLjEyOTAzMiwgMC4yMjM3MDcsIDAuMzgxNTg0LCAwLjUzOTQ2NSwgMC45MDc5MiwgMS4xMTg1NSIsIFwKLSAgICAgICAgICAiMC4xMjYxNjcsIDAuMTM2NzQzLCAwLjIzMTQzNSwgMC4zODkyOTQsIDAuNTQ3MTI2LCAwLjkxNTY4NiwgMS4xMjYzNSIsIFwKLSAgICAgICAgICAiMC4xMzIyNCwgMC4xNDI4MjksIDAuMjM3NTI4LCAwLjM5NTM2NCwgMC41NTMyMTUsIDAuOTIxNTQ5LCAxLjEzMjIxIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEyMDM2MiwgMC4xNDE5NzksIDAuMzM4OTAzLCAwLjY3MTgsIDEuMDA0NDgsIDEuNzc4NDIsIDIuMjI0MjEiLCBcCi0gICAgICAgICAgIjAuMTIwMzMzLCAwLjE0MTk1NSwgMC4zMzk2MjMsIDAuNjcxODAxLCAxLjAwNDQzLCAxLjc3OTc1LCAyLjIyMTAxIiwgXAotICAgICAgICAgICIwLjEyMDUwNiwgMC4xNDIwMzMsIDAuMzM5MzkyLCAwLjY3MTc4NCwgMS4wMDM5MywgMS43ODAxMSwgMi4yMjA5NCIsIFwKLSAgICAgICAgICAiMC4xMjA4ODEsIDAuMTQyMzY1LCAwLjMzOTIzNiwgMC42NzE3ODYsIDEuMDAzMjYsIDEuNzc3NzUsIDIuMjIxOTQiLCBcCi0gICAgICAgICAgIjAuMTIxMzg3LCAwLjE0Mjc5OCwgMC4zMzk1NzMsIDAuNjcxODIxLCAxLjAwMjczLCAxLjc3NzM5LCAyLjIxOTc4IiwgXAotICAgICAgICAgICIwLjEyMjE4NiwgMC4xNDM0MzgsIDAuMzM5ODk3LCAwLjY3MDc5LCAxLjAwNDQ0LCAxLjc3NzE5LCAyLjIxOTc4IiwgXAotICAgICAgICAgICIwLjEyMjk4NywgMC4xNDQwNSwgMC4zMzk3NjUsIDAuNjcxODYyLCAxLjAwMzQsIDEuNzc3NTIsIDIuMjIwMTciKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc2NDQ1LCAwLjA4NjEzNywgMC4xNzI5NzcsIDAuMzE3Njg3LCAwLjQ2MjM3MSwgMC43OTk5NTQsIDAuOTkzMDI0IiwgXAotICAgICAgICAgICIwLjA4NDUzOSwgMC4wOTQyMzIsIDAuMTgxMDc5LCAwLjMyNTc2OCwgMC40NzA1MDYsIDAuODA4MDY0LCAxLjAwMTA5IiwgXAotICAgICAgICAgICIwLjA5MzUyLCAwLjEwMzIwNywgMC4xOTAwNDUsIDAuMzM0NzM3LCAwLjQ3OTQzNywgMC44MTcwMjksIDEuMDEwMDciLCBcCi0gICAgICAgICAgIjAuMTAwNDEyLCAwLjExMDA5NSwgMC4xOTY5MjEsIDAuMzQxNjIxLCAwLjQ4NjI5OSwgMC44MjM4OTksIDEuMDE2OTMiLCBcCi0gICAgICAgICAgIjAuMTA1OTgzLCAwLjExNTY1NSwgMC4yMDI0NjgsIDAuMzQ3MTU3LCAwLjQ5MTg1OCwgMC44Mjk0MzksIDEuMDIyNDgiLCBcCi0gICAgICAgICAgIjAuMTEzMjc5LCAwLjEyMjk2LCAwLjIwOTc2MiwgMC4zNTQ0NTMsIDAuNDk5MTA4LCAwLjgzNjcwMSwgMS4wMjk2OSIsIFwKLSAgICAgICAgICAiMC4xMTg1ODIsIDAuMTI4MjU2LCAwLjIxNTA0NCwgMC4zNTk3MjksIDAuNTA0MzkzLCAwLjg0MjAxOSwgMS4wMzQ5OCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDYwNSwgMC4xMjU1MDEsIDAuMzAzMDc3LCAwLjYwMDE0LCAwLjg5ODE4NiwgMS41OTI0MywgMS45ODkxNSIsIFwKLSAgICAgICAgICAiMC4xMDYwNDIsIDAuMTI1NDUxLCAwLjMwMzA2OSwgMC42MDA1MjksIDAuODk4MTgsIDEuNTkyMTYsIDEuOTg5MTciLCBcCi0gICAgICAgICAgIjAuMTA2MTksIDAuMTI1NzQ4LCAwLjMwMzI1NywgMC42MDAxNzcsIDAuODk4MTcxLCAxLjU5MjE1LCAxLjk4OTEyIiwgXAotICAgICAgICAgICIwLjEwNjY2MSwgMC4xMjYwOTYsIDAuMzAzMTQ2LCAwLjYwMDY2NiwgMC44OTc3ODIsIDEuNTkyMTMsIDEuOTg5MSIsIFwKLSAgICAgICAgICAiMC4xMDcxMjIsIDAuMTI2Mzk0LCAwLjMwMzA5MSwgMC42MDA0ODMsIDAuODk4MjIsIDEuNTkyMjcsIDEuOTg5MTIiLCBcCi0gICAgICAgICAgIjAuMTA3ODI2LCAwLjEyNjkzLCAwLjMwMzE4OCwgMC42MDAyODgsIDAuODk3NTUsIDEuNTkyMjQsIDEuOTg5NDciLCBcCi0gICAgICAgICAgIjAuMTA4Njc5LCAwLjEyNzUxLCAwLjMwMzMzNCwgMC41OTk5MjYsIDAuODk3NzU3LCAxLjU5MTk3LCAxLjk4ODczIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzMzQyLCAwLjAwMzM0MywgMC4wMDMzNDQsIDAuMDAzMzQ0LCAwLjAwMzM0NCwgMC4wMDMzNDQsIDAuMDAzMzQ0IiwgXAotICAgICAgICAgICIwLjAwMzMzMiwgMC4wMDMzMzIsIDAuMDAzMzMzLCAwLjAwMzMzNCwgMC4wMDMzMzQsIDAuMDAzMzM0LCAwLjAwMzMzNCIsIFwKLSAgICAgICAgICAiMC4wMDMzNDEsIDAuMDAzMzQxLCAwLjAwMzM0MywgMC4wMDMzNDMsIDAuMDAzMzQzLCAwLjAwMzM0MywgMC4wMDMzNDMiLCBcCi0gICAgICAgICAgIjAuMDAzMzYzLCAwLjAwMzM2NCwgMC4wMDMzNjUsIDAuMDAzMzY1LCAwLjAwMzM2NiwgMC4wMDMzNjYsIDAuMDAzMzY2IiwgXAotICAgICAgICAgICIwLjAwMzQwNSwgMC4wMDM0MDQsIDAuMDAzNDA3LCAwLjAwMzQwNywgMC4wMDM0MDgsIDAuMDAzNDA4LCAwLjAwMzQwOCIsIFwKLSAgICAgICAgICAiMC4wMDM0NjMsIDAuMDAzNDY0LCAwLjAwMzQ2NSwgMC4wMDM0NjUsIDAuMDAzNDY1LCAwLjAwMzQ2NSwgMC4wMDM0NjUiLCBcCi0gICAgICAgICAgIjAuMDAzNTMzLCAwLjAwMzUzMywgMC4wMDM1MzUsIDAuMDAzNTM1LCAwLjAwMzUzNSwgMC4wMDM1MzUsIDAuMDAzNTM2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyNjM4LCAwLjAwMjYzOSwgMC4wMDI2NDMsIDAuMDAyNjQ0LCAwLjAwMjY0NSwgMC4wMDI2NDYsIDAuMDAyNjQ1IiwgXAotICAgICAgICAgICIwLjAwMjYyMiwgMC4wMDI2MjMsIDAuMDAyNjI3LCAwLjAwMjYyOSwgMC4wMDI2MjksIDAuMDAyNjI2LCAwLjAwMjYyOSIsIFwKLSAgICAgICAgICAiMC4wMDI2MjgsIDAuMDAyNjI5LCAwLjAwMjYzNCwgMC4wMDI2MzUsIDAuMDAyNjM2LCAwLjAwMjYzNiwgMC4wMDI2MzYiLCBcCi0gICAgICAgICAgIjAuMDAyNjU4LCAwLjAwMjY2LCAwLjAwMjY2NCwgMC4wMDI2NjUsIDAuMDAyNjY2LCAwLjAwMjY2NywgMC4wMDI2NjciLCBcCi0gICAgICAgICAgIjAuMDAyNjg5LCAwLjAwMjY5LCAwLjAwMjY5NCwgMC4wMDI2OTUsIDAuMDAyNjk2LCAwLjAwMjY5NywgMC4wMDI2OTciLCBcCi0gICAgICAgICAgIjAuMDAyNzU2LCAwLjAwMjc1OSwgMC4wMDI3NjIsIDAuMDAyNzY1LCAwLjAwMjc2NCwgMC4wMDI3NjUsIDAuMDAyNzY1IiwgXAotICAgICAgICAgICIwLjAwMjgyNywgMC4wMDI4MjgsIDAuMDAyODMyLCAwLjAwMjgzNCwgMC4wMDI4MzUsIDAuMDAyODM0LCAwLjAwMjgzNCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkdOIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDU1NzIsIDAuMDA1NTcyLCAwLjAwNTU3MywgMC4wMDU1NzMsIDAuMDA1NTczLCAwLjAwNTU3MywgMC4wMDU1NzMiLCBcCi0gICAgICAgICAgIjAuMDA1NTgyLCAwLjAwNTU4MywgMC4wMDU1ODQsIDAuMDA1NTg0LCAwLjAwNTU4NCwgMC4wMDU1ODQsIDAuMDA1NTg0IiwgXAotICAgICAgICAgICIwLjAwNTYxNiwgMC4wMDU2MTcsIDAuMDA1NjE4LCAwLjAwNTYxOCwgMC4wMDU2MTgsIDAuMDA1NjE4LCAwLjAwNTYxOCIsIFwKLSAgICAgICAgICAiMC4wMDU2NzksIDAuMDA1NjgsIDAuMDA1NjgxLCAwLjAwNTY4LCAwLjAwNTY4LCAwLjAwNTY4MSwgMC4wMDU2ODEiLCBcCi0gICAgICAgICAgIjAuMDA1NzQyLCAwLjAwNTc0MiwgMC4wMDU3NDMsIDAuMDA1NzQ0LCAwLjAwNTc0MywgMC4wMDU3NDEsIDAuMDA1NzQiLCBcCi0gICAgICAgICAgIjAuMDA1ODU4LCAwLjAwNTg1MSwgMC4wMDU4NjEsIDAuMDA1ODU5LCAwLjAwNTg1MywgMC4wMDU4NTMsIDAuMDA1ODUzIiwgXAotICAgICAgICAgICIwLjAwNTk2LCAwLjAwNTk1NywgMC4wMDU5NjEsIDAuMDA1OTU5LCAwLjAwNTk1OSwgMC4wMDU5NTksIDAuMDA1OTU5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1MDI3LCAwLjAwNTAyOCwgMC4wMDUwMzIsIDAuMDA1MDM0LCAwLjAwNTAzNCwgMC4wMDUwMzUsIDAuMDA1MDM1IiwgXAotICAgICAgICAgICIwLjAwNTAzOCwgMC4wMDUwNCwgMC4wMDUwNDQsIDAuMDA1MDQ1LCAwLjAwNTA0NiwgMC4wMDUwNDYsIDAuMDA1MDQ2IiwgXAotICAgICAgICAgICIwLjAwNTA3NSwgMC4wMDUwNzYsIDAuMDA1MDgsIDAuMDA1MDgxLCAwLjAwNTA4MSwgMC4wMDUwODIsIDAuMDA1MDgyIiwgXAotICAgICAgICAgICIwLjAwNTEzNSwgMC4wMDUxMzYsIDAuMDA1MTQsIDAuMDA1MTQyLCAwLjAwNTE0MiwgMC4wMDUxNDMsIDAuMDA1MTQyIiwgXAotICAgICAgICAgICIwLjAwNTIwMSwgMC4wMDUyMDMsIDAuMDA1MjAzLCAwLjAwNTIwOCwgMC4wMDUyMDUsIDAuMDA1MjA5LCAwLjAwNTIwNSIsIFwKLSAgICAgICAgICAiMC4wMDUzMTYsIDAuMDA1MzE4LCAwLjAwNTMyMiwgMC4wMDUzMjQsIDAuMDA1MzE4LCAwLjAwNTMyNSwgMC4wMDUzMjUiLCBcCi0gICAgICAgICAgIjAuMDA1NDIsIDAuMDA1NDIsIDAuMDA1NDI0LCAwLjAwNTQyNSwgMC4wMDU0MjcsIDAuMDA1NDI3LCAwLjAwNTQyNyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQ5NzgsIDAuMDA0OTc4LCAwLjAwNDk3OSwgMC4wMDQ5NzksIDAuMDA0OTgsIDAuMDA0OTgsIDAuMDA0OTc5IiwgXAotICAgICAgICAgICIwLjAwNDk3NywgMC4wMDQ5NzgsIDAuMDA0OTc5LCAwLjAwNDk3OSwgMC4wMDQ5NzksIDAuMDA0OTc5LCAwLjAwNDk3OSIsIFwKLSAgICAgICAgICAiMC4wMDUwMTEsIDAuMDA1MDExLCAwLjAwNTAxMiwgMC4wMDUwMTIsIDAuMDA1MDEzLCAwLjAwNTAxMSwgMC4wMDUwMTMiLCBcCi0gICAgICAgICAgIjAuMDA1MDY1LCAwLjAwNTA2NSwgMC4wMDUwNjYsIDAuMDA1MDY2LCAwLjAwNTA2NywgMC4wMDUwNjYsIDAuMDA1MDY2IiwgXAotICAgICAgICAgICIwLjAwNTExMSwgMC4wMDUxMTIsIDAuMDA1MTEzLCAwLjAwNTExMywgMC4wMDUxMTQsIDAuMDA1MTEzLCAwLjAwNTExNCIsIFwKLSAgICAgICAgICAiMC4wMDUyMTQsIDAuMDA1MjE0LCAwLjAwNTIxNSwgMC4wMDUyMTYsIDAuMDA1MjE2LCAwLjAwNTIxNiwgMC4wMDUyMTciLCBcCi0gICAgICAgICAgIjAuMDA1MzIsIDAuMDA1MzIsIDAuMDA1MzIyLCAwLjAwNTMxOSwgMC4wMDUzMTksIDAuMDA1MzE5LCAwLjAwNTMxOSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzk1NSwgMC4wMDM5NTYsIDAuMDAzOTYsIDAuMDAzOTYxLCAwLjAwMzk2MiwgMC4wMDM5NjIsIDAuMDAzOTYzIiwgXAotICAgICAgICAgICIwLjAwMzkzNiwgMC4wMDM5MzgsIDAuMDAzOTQyLCAwLjAwMzk0MywgMC4wMDM5NDQsIDAuMDAzOTQ0LCAwLjAwMzk0NCIsIFwKLSAgICAgICAgICAiMC4wMDM5NTcsIDAuMDAzOTU4LCAwLjAwMzk2MiwgMC4wMDM5NjQsIDAuMDAzOTY0LCAwLjAwMzk2NCwgMC4wMDM5NjUiLCBcCi0gICAgICAgICAgIjAuMDAzOTgsIDAuMDAzOTgyLCAwLjAwMzk4NiwgMC4wMDM5ODcsIDAuMDAzOTg4LCAwLjAwMzk4OCwgMC4wMDM5ODgiLCBcCi0gICAgICAgICAgIjAuMDA0MDMsIDAuMDA0MDMxLCAwLjAwNDAzNSwgMC4wMDQwMzYsIDAuMDA0MDM3LCAwLjAwNDAzNywgMC4wMDQwMzciLCBcCi0gICAgICAgICAgIjAuMDA0MTEzLCAwLjAwNDExNSwgMC4wMDQxMTgsIDAuMDA0MTIxLCAwLjAwNDEyMSwgMC4wMDQxMjIsIDAuMDA0MTIyIiwgXAotICAgICAgICAgICIwLjAwNDE4NywgMC4wMDQxODgsIDAuMDA0MTkyLCAwLjAwNDE5NCwgMC4wMDQxOTQsIDAuMDA0MTk0LCAwLjAwNDE5NCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDE5LCAwLjAwMTkwMSwgMC4wMDE5MDEsIDAuMDAxOTAxLCAwLjAwMTkwMSwgMC4wMDE5MDIsIDAuMDAxOTAyIiwgXAotICAgICAgICAgICIwLjAwMTg4MywgMC4wMDE4ODMsIDAuMDAxODg0LCAwLjAwMTg4NCwgMC4wMDE4ODUsIDAuMDAxODg0LCAwLjAwMTg4NCIsIFwKLSAgICAgICAgICAiMC4wMDE5MDgsIDAuMDAxOTA4LCAwLjAwMTkwOCwgMC4wMDE5MDgsIDAuMDAxOTA4LCAwLjAwMTkwNywgMC4wMDE5MDciLCBcCi0gICAgICAgICAgIjAuMDAxOTM1LCAwLjAwMTkzNSwgMC4wMDE5MzUsIDAuMDAxOTM1LCAwLjAwMTkzNSwgMC4wMDE5MzUsIDAuMDAxOTM1IiwgXAotICAgICAgICAgICIwLjAwMTk3NywgMC4wMDE5NzYsIDAuMDAxOTc3LCAwLjAwMTk3NSwgMC4wMDE5NzUsIDAuMDAxOTc1LCAwLjAwMTk3NSIsIFwKLSAgICAgICAgICAiMC4wMDIwNzcsIDAuMDAyMDc2LCAwLjAwMjA3MiwgMC4wMDIwNywgMC4wMDIwNywgMC4wMDIwNjksIDAuMDAyMDY5IiwgXAotICAgICAgICAgICIwLjAwMjEzNywgMC4wMDIxMzYsIDAuMDAyMTM0LCAwLjAwMjEzMywgMC4wMDIxMzIsIDAuMDAyMTMxLCAwLjAwMjEzMSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzE1LCAwLjAwMzE1LCAwLjAwMzE1MiwgMC4wMDMxNTQsIDAuMDAzMTUzLCAwLjAwMzE1NCwgMC4wMDMxNTUiLCBcCi0gICAgICAgICAgIjAuMDAzMTQsIDAuMDAzMTQxLCAwLjAwMzE0NCwgMC4wMDMxNDUsIDAuMDAzMTQ1LCAwLjAwMzE0NSwgMC4wMDMxNDYiLCBcCi0gICAgICAgICAgIjAuMDAzMTU5LCAwLjAwMzE2MSwgMC4wMDMxNjQsIDAuMDAzMTY1LCAwLjAwMzE2NSwgMC4wMDMxNjUsIDAuMDAzMTY1IiwgXAotICAgICAgICAgICIwLjAwMzE5MywgMC4wMDMxOTQsIDAuMDAzMTk2LCAwLjAwMzE5NywgMC4wMDMxOTcsIDAuMDAzMTk4LCAwLjAwMzE5OCIsIFwKLSAgICAgICAgICAiMC4wMDMyNDEsIDAuMDAzMjQyLCAwLjAwMzI0NCwgMC4wMDMyNDQsIDAuMDAzMjQ1LCAwLjAwMzI0NSwgMC4wMDMyNDUiLCBcCi0gICAgICAgICAgIjAuMDAzMzMsIDAuMDAzMzMsIDAuMDAzMzMsIDAuMDAzMzMxLCAwLjAwMzMzMSwgMC4wMDMzMzEsIDAuMDAzMzMxIiwgXAotICAgICAgICAgICIwLjAwMzQxMSwgMC4wMDM0MTEsIDAuMDAzNDEsIDAuMDAzNDA5LCAwLjAwMzQwOSwgMC4wMDM0MDksIDAuMDAzNDA5Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihSTikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNTkyOTg7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNTkyOTg7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNTgwNTM7Ci0gICAgY2xvY2sgOiB0cnVlOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzI0OCwgMC4wMDMyMTQsIDAuMDAzMzEyLCAwLjAwMzQ1MiwgMC4wMDM2MTksIDAuMDAzOTE1LCAwLjAwNDIwMyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDYxMywgMC4wMDA2MDEsIDAuMDAwNTk3LCAwLjAwMDU5NSwgMC4wMDA1OTUsIDAuMDAwNTk1LCAwLjAwMDU5NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJHTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJEJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMV9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAzNzUsIC0wLjAyNjI1LCAtMC4wMjYyNSwgLTAuMDIsIC0wLjAyLCAtMC4wMTYyNSwgLTAuMDEzNzUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAyNSwgLTAuMDIxMjUsIC0wLjAxODc1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMzEyNSwgLTAuMDI3NSwgLTAuMDI1IiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDM3NSwgLTAuMDMzNzUsIC0wLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wNjEyNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wNDM3NSwgLTAuMDQzNzUsIC0wLjA0LCAtMC4wMzc1IiwgXAotICAgICAgICAgICItMC4wNjUsIC0wLjA2LCAtMC4wNTM3NSwgLTAuMDQ3NSwgLTAuMDQ3NSwgLTAuMDQzNzUsIC0wLjA0MTI1IiwgXAotICAgICAgICAgICItMC4wNjc1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNTI1LCAtMC4wNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQmU04iOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4xMjgyNDYsIDAuMTM0Nzg0LCAwLjE0MTQwMiwgMC4xNDcwNjcsIDAuMTUxNTczLCAwLjE1NzcyNiwgMC4xNjIyMTYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiR04iOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIkQmU04iOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8xX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQzNzUsIDAuMDM4NzUsIDAuMDMyNSwgMC4wMzI1LCAwLjAyNjI1LCAwLjAyODc1LCAwLjAyNjI1IiwgXAotICAgICAgICAgICIwLjA0ODc1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMzM3NSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4wNTUsIDAuMDUsIDAuMDQzNzUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wNCwgMC4wMzc1IiwgXAotICAgICAgICAgICIwLjA2MTI1LCAwLjA1NjI1LCAwLjA1LCAwLjA1LCAwLjA0Mzc1LCAwLjA0NjI1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNSwgMC4wNSwgMC4wNDYyNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4wNzEyNSwgMC4wNjYyNSwgMC4wNiwgMC4wNiwgMC4wNTM3NSwgMC4wNTYyNSwgMC4wNTM3NSIsIFwKLSAgICAgICAgICAiMC4wOCwgMC4wNzUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNjI1LCAwLjA1ODc1LCAwLjA1NjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTTikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjQ0NDk2OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDY0NDQ5NjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2NDQwMTM7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjk2LCAwLjAwMDI5NiwgMC4wMDAyOTYsIDAuMDAwMjk2LCAwLjAwMDI5NiwgMC4wMDAyOTYsIDAuMDAwMjk2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzE3LCAwLjAwMDMwNiwgMC4wMDAzMDEsIDAuMDAwMjk3LCAwLjAwMDI5OCwgMC4wMDAyOTgsIDAuMDAwMjk4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRCI7Ci0gICAgICBzZGZfY29uZCA6ICJEID09IDEnYjAiOwotICAgICAgZmFsbF9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDg2NDkxLCAwLjA5NDYyNiwgMC4xMDMzLCAwLjEwOTY3NSwgMC4xMTQ2NjksIDAuMTIxMTc5LCAwLjEyNTg2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkdOIjsKLSAgICAgIHRpbWluZ190eXBlIDogcmVjb3ZlcnlfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRCZSTiI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fUk5fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChyZWNvdmVyeV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDA2MjUsIC0wLjAxNzUsIC0wLjAyMzc1LCAtMC4wMjM3NSwgLTAuMDMsIC0wLjAzMzc1LCAtMC4wMzYyNSIsIFwKLSAgICAgICAgICAiLTAuMDAxMjUsIC0wLjAxMjUsIC0wLjAxODc1LCAtMC4wMTg3NSwgLTAuMDI1LCAtMC4wMjg3NSwgLTAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMDA1LCAtMC4wMDYyNSwgLTAuMDEyNSwgLTAuMDEyNSwgLTAuMDE4NzUsIC0wLjAyMjUsIC0wLjAyNSIsIFwKLSAgICAgICAgICAiMC4wMDUsIDAsIC0wLjAwNjI1LCAtMC4wMTI1LCAtMC4wMTI1LCAtMC4wMjI1LCAtMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMDA1LCAwLCAtMC4wMDYyNSwgLTAuMDA2MjUsIC0wLjAxMjUsIC0wLjAxNjI1LCAtMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4wMTUsIDAuMDAzNzUsIC0wLjAwMjUsIC0wLjAwMjUsIC0wLjAwODc1LCAtMC4wMTI1LCAtMC4wMTUiLCBcCi0gICAgICAgICAgIjAuMDE3NSwgMC4wMDYyNSwgMCwgMCwgLTAuMDA2MjUsIC0wLjAxLCAtMC4wMTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIHRpbWluZ190eXBlIDogcmVjb3ZlcnlfcmlzaW5nOwotICAgICAgd2hlbiA6ICJHTiI7Ci0gICAgICBzZGZfY29uZCA6ICJHTiA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChyZWNvdmVyeV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDYyNSwgMC4wMDEyNSwgMC4wMDEyNSwgMC4wMDEyNSwgMC4wMDEyNSwgLTAuMDAyNSwgMC4wMDEyNSIsIFwKLSAgICAgICAgICAiMC4wMTEyNSwgMC4wMDYyNSwgMC4wMDYyNSwgMCwgMCwgMC4wMDI1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICIwLjAxMTI1LCAwLjAwNjI1LCAwLjAwNjI1LCAwLjAwNjI1LCAwLjAwNjI1LCAwLjAwMjUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMDE3NSwgMC4wMTI1LCAwLjAwNjI1LCAwLjAwNjI1LCAwLjAwNjI1LCAwLjAwODc1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICIwLjAxNzUsIDAuMDEyNSwgMC4wMTI1LCAwLjAwNjI1LCAwLjAwNjI1LCAwLjAwODc1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICIwLjAyMTI1LCAwLjAxNjI1LCAwLjAxNjI1LCAwLjAxLCAwLjAxLCAwLjAxMjUsIDAuMDEiLCBcCi0gICAgICAgICAgIjAuMDIzNzUsIDAuMDE4NzUsIDAuMDE4NzUsIDAuMDEyNSwgMC4wMTI1LCAwLjAxNSwgMC4wMTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkdOIjsKLSAgICAgIHRpbWluZ190eXBlIDogcmVtb3ZhbF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEJlJOIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9STl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHJlbW92YWxfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDI1LCAwLjAzLCAwLjAzNjI1LCAwLjAzNjI1LCAwLjA0MjUsIDAuMDQ2MjUsIDAuMDQ4NzUiLCBcCi0gICAgICAgICAgIjAuMDIsIDAuMDI1LCAwLjAzMTI1LCAwLjAzMTI1LCAwLjAzNzUsIDAuMDQxMjUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMDEzNzUsIDAuMDE4NzUsIDAuMDI1LCAwLjAzMTI1LCAwLjAzMTI1LCAwLjAzNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4wMDc1LCAwLjAxODc1LCAwLjAyNSwgMC4wMjUsIDAuMDMxMjUsIDAuMDM1LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIjAuMDA3NSwgMC4wMTI1LCAwLjAxODc1LCAwLjAyNSwgMC4wMjUsIDAuMDI4NzUsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiMC4wMDM3NSwgMC4wMDg3NSwgMC4wMTUsIDAuMDIxMjUsIDAuMDIxMjUsIDAuMDI1LCAwLjAzMzc1IiwgXAotICAgICAgICAgICIwLjAwMTI1LCAwLjAwNjI1LCAwLjAxMjUsIDAuMDE4NzUsIDAuMDE4NzUsIDAuMDIyNSwgMC4wMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUk4iOwotICAgICAgdGltaW5nX3R5cGUgOiByZW1vdmFsX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiR04iOwotICAgICAgc2RmX2NvbmQgOiAiR04gPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQocmVtb3ZhbF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDYyNSwgMC4wMTEyNSwgMC4wMTc1LCAwLjAxNzUsIDAuMDIzNzUsIDAuMDI3NSwgMC4wMyIsIFwKLSAgICAgICAgICAiMC4wMDc1LCAwLjAxMjUsIDAuMDEyNSwgMC4wMTg3NSwgMC4wMTg3NSwgMC4wMjI1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiMC4wMDEyNSwgMC4wMDYyNSwgMC4wMTI1LCAwLjAxMjUsIDAuMDEyNSwgMC4wMTYyNSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4wMDEyNSwgMCwgMC4wMDYyNSwgMC4wMDYyNSwgMC4wMTI1LCAwLjAxNjI1LCAwLjAxODc1IiwgXAotICAgICAgICAgICItMC4wMDUsIDAsIDAuMDA2MjUsIDAuMDA2MjUsIDAuMDA2MjUsIDAuMDEsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDA4NzUsIC0wLjAwMzc1LCAwLjAwMjUsIDAuMDAyNSwgMC4wMDI1LCAwLjAwNjI1LCAwLjAwODc1IiwgXAotICAgICAgICAgICItMC4wMTEyNSwgLTAuMDA2MjUsIDAsIDAsIDAsIDAuMDAzNzUsIDAuMDA2MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IFRMQVROVFNDQVgxNiAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKFRMQVROVFNDQVgxNikgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAyLjk0ODg7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgY2xvY2tfZ2F0aW5nX2ludGVncmF0ZWRfY2VsbCA6ICJsYXRjaF9wb3NlZGdlX3ByZWNvbnRyb2wiOwotICBzdGF0ZXRhYmxlKCIgQ0sgIEUgU0UgIiwgIiBFSU5UICIpIHsKLSAgICAgdGFibGUgOiAiICBMICBMICBMIDogLSA6IEwgLCBcCi0gICAgICAgICAgICAgICAgTCAgSCAgTCA6IC0gOiBIICwgXAotICAgICAgICAgICAgICAgIEwgIEwgIEggOiAtIDogSCAsIFwKLSAgICAgICAgICAgICAgICBMICBIICBIIDogLSA6IEggLCBcCi0gICAgICAgICAgICAgICAgSCAgLSAgLSA6IC0gOiBOICI7Ci0gIH0KLSAgcGluKEVJTlQpIHsKLSAgICBkaXJlY3Rpb24gOiBpbnRlcm5hbDsKLSAgICBpbnRlcm5hbF9ub2RlIDogIkVJTlQiOwotICB9Ci0gIHBpbihDSykgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjg5OTE7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjg5OTE7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjg5ODQ4OwotICAgIGNsb2NrX2dhdGVfY2xvY2tfcGluIDogdHJ1ZTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDU5NTMsIDAuMDA1OTUyLCAwLjAwNjAxLCAwLjAwNjExNCwgMC4wMDYyMzYsIDAuMDA2NDU1LCAwLjAwNjY1MiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNTg4LCAwLjAwNTg4NywgMC4wMDU5MzgsIDAuMDA2MDM3LCAwLjAwNjE2MSwgMC4wMDY0MDYsIDAuMDA2NjAxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRSYhU0UiOwotICAgICAgc2RmX2NvbmQgOiAiRV9FUV8wX0FOX1NFX0VRXzAgPT0gMSdiMSI7Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wODc5NCwgMC4wOTU4NDMsIDAuMTAzODk4LCAwLjEwOTgxNCwgMC4xMTQ0MjcsIDAuMTIwOTQ0LCAwLjEyNTY2NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNzA0ODQxOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDcwNDg0MTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA3MDQ2MDc7Ci0gICAgY2xvY2tfZ2F0ZV9lbmFibGVfcGluIDogdHJ1ZTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDczOTUsIDAuMDA3MzgzLCAwLjAwNzQ1NCwgMC4wMDc1NDYsIDAuMDA3NjQxLCAwLjAwNzgyOCwgMC4wMDgwNyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwODQxOCwgMC4wMDg0MTksIDAuMDA4NDY2LCAwLjAwODYwNywgMC4wMDg3NDYsIDAuMDA4OTgsIDAuMDA5MTEyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJTRSA9PSAxJ2IwIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMjUsIC0wLjAyLCAtMC4wMiwgLTAuMDEzNzUsIC0wLjAxMzc1LCAtMC4wMSwgLTAuMDA3NSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxNSwgLTAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzNzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMzEyNSwgLTAuMDI3NSwgLTAuMDI1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDQzNzUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzc1LCAtMC4wMzM3NSwgLTAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjA1NSwgLTAuMDUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDQzNzUsIC0wLjA0LCAtMC4wMzc1IiwgXAotICAgICAgICAgICItMC4wNjUsIC0wLjA2LCAtMC4wNiwgLTAuMDUzNzUsIC0wLjA1Mzc1LCAtMC4wNSwgLTAuMDQ3NSIsIFwKLSAgICAgICAgICAiLTAuMDczNzUsIC0wLjA2ODc1LCAtMC4wNjI1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDU4NzUsIC0wLjA1NjI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDI1LCAtMC4wMiwgLTAuMDEzNzUsIC0wLjAwNzUsIC0wLjAwMTI1LCAwLjAwMjUsIDAuMDExMjUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgLTAuMDAyNSwgMCIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDM3NSwgLTAuMDI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAyMTI1LCAtMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDYxMjUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDM3NSwgLTAuMDI3NSwgLTAuMDI1IiwgXAotICAgICAgICAgICItMC4wNzEyNSwgLTAuMDYsIC0wLjA1Mzc1LCAtMC4wNDc1LCAtMC4wNDc1LCAtMC4wMzc1LCAtMC4wMzUiLCBcCi0gICAgICAgICAgIi0wLjA4LCAtMC4wNjg3NSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA1NjI1LCAtMC4wNDYyNSwgLTAuMDQzNzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJTRSA9PSAxJ2IwIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzEyNSwgMC4wMjYyNSwgMC4wMjYyNSwgMC4wMiwgMC4wMiwgMC4wMTYyNSwgMC4wMTM3NSIsIFwKLSAgICAgICAgICAiMC4wNDI1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDMxMjUsIDAuMDI1LCAwLjAyMTI1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiMC4wNDg3NSwgMC4wNDM3NSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzNzUsIDAuMDMzNzUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMDU1LCAwLjA1LCAwLjA1LCAwLjA0Mzc1LCAwLjA0Mzc1LCAwLjA0LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIjAuMDYxMjUsIDAuMDU2MjUsIDAuMDU2MjUsIDAuMDUsIDAuMDUsIDAuMDQ2MjUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMDcxMjUsIDAuMDY2MjUsIDAuMDY2MjUsIDAuMDYsIDAuMDYsIDAuMDU2MjUsIDAuMDUzNzUiLCBcCi0gICAgICAgICAgIjAuMDgsIDAuMDc1LCAwLjA2ODc1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDY1LCAwLjA2MjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzEyNSwgMC4wMjYyNSwgMC4wMiwgMC4wMTM3NSwgMC4wMDc1LCAwLjAwMzc1LCAtMC4wMDUiLCBcCi0gICAgICAgICAgIjAuMDQyNSwgMC4wMzEyNSwgMC4wMjUsIDAuMDE4NzUsIDAuMDEyNSwgMC4wMDg3NSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiMC4wNDg3NSwgMC4wNDM3NSwgMC4wMzEyNSwgMC4wMzEyNSwgMC4wMjUsIDAuMDIxMjUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4wNTUsIDAuMDUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMjc1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiMC4wNjc1LCAwLjA1NjI1LCAwLjA1LCAwLjA0Mzc1LCAwLjA0Mzc1LCAwLjAzMzc1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICIwLjA3NzUsIDAuMDY2MjUsIDAuMDYsIDAuMDUzNzUsIDAuMDUzNzUsIDAuMDQzNzUsIDAuMDQxMjUiLCBcCi0gICAgICAgICAgIjAuMDg2MjUsIDAuMDc1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDYyNSwgMC4wNTI1LCAwLjA1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihFQ0spICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogNS42MzY0NzsKLSAgICBjbG9ja19nYXRlX291dF9waW4gOiB0cnVlOwotICAgIHN0YXRlX2Z1bmN0aW9uIDogIihDSyBFSU5UKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4ODIzMiwgMC4wOTA0NTUsIDAuMTAwNDc0LCAwLjEwNzc2MSwgMC4xMTY2OTYsIDAuMTMzMzUzLCAwLjE0MzQ1MyIsIFwKLSAgICAgICAgICAiMC4wOTYxODUsIDAuMDk4Mzg5LCAwLjEwODQxNCwgMC4xMTU3NzksIDAuMTI0NjMxLCAwLjE0MTMwMiwgMC4xNTE0MDIiLCBcCi0gICAgICAgICAgIjAuMTA0NDA5LCAwLjEwNjYxNCwgMC4xMTY2MzgsIDAuMTI0MDAyLCAwLjEzMjg0OSwgMC4xNDk1MjYsIDAuMTU5NjI1IiwgXAotICAgICAgICAgICIwLjExMDI0MSwgMC4xMTI0NDYsIDAuMTIyNDkzLCAwLjEyOTc3MiwgMC4xMzg2OTEsIDAuMTU1MzYyLCAwLjE2NTQ2MSIsIFwKLSAgICAgICAgICAiMC4xMTUxNjIsIDAuMTE3MzcsIDAuMTI3MzcyLCAwLjEzNDYzOCwgMC4xNDM1NzcsIDAuMTYwMiwgMC4xNzAyOTQiLCBcCi0gICAgICAgICAgIjAuMTIxNjkyLCAwLjEyMzg5LCAwLjEzMzg5NSwgMC4xNDEyMywgMC4xNTAxMjUsIDAuMTY2Nzg3LCAwLjE3NjkxMyIsIFwKLSAgICAgICAgICAiMC4xMjY3MTMsIDAuMTI4OTMxLCAwLjEzODk2OSwgMC4xNDYyNzgsIDAuMTU1MjE0LCAwLjE3MTg1LCAwLjE4MTkzNCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTgxNDEsIDAuMDIwOTQ1LCAwLjAzNTA0MywgMC4wNDY4OTgsIDAuMDYyNjMyLCAwLjA5NDQyMiwgMC4xMTQ1MjQiLCBcCi0gICAgICAgICAgIjAuMDE4MTUyLCAwLjAyMDkxLCAwLjAzNTA2OCwgMC4wNDY5MTYsIDAuMDYyNjIyLCAwLjA5NDQyMiwgMC4xMTQ0NjciLCBcCi0gICAgICAgICAgIjAuMDE4MTUzLCAwLjAyMDkxNCwgMC4wMzUwNjcsIDAuMDQ2OTE2LCAwLjA2MjYyMSwgMC4wOTQ0MjIsIDAuMTE0NDY4IiwgXAotICAgICAgICAgICIwLjAxODE0NCwgMC4wMjA5MzIsIDAuMDM1MDUsIDAuMDQ2ODY5LCAwLjA2MjYyNCwgMC4wOTQ0MTksIDAuMTE0NDg4IiwgXAotICAgICAgICAgICIwLjAxODE2NCwgMC4wMjA5NSwgMC4wMzUwODUsIDAuMDQ2ODg3LCAwLjA2MjU5OSwgMC4wOTQzOTgsIDAuMTE0NTQxIiwgXAotICAgICAgICAgICIwLjAxODExNiwgMC4wMjA5NjEsIDAuMDM1MDQ2LCAwLjA0Njg4LCAwLjA2MjYyNiwgMC4wOTQzODgsIDAuMTE0NTE2IiwgXAotICAgICAgICAgICIwLjAxODIwOCwgMC4wMjA5NjcsIDAuMDM1MDM2LCAwLjA0NjkzMiwgMC4wNjI3OTksIDAuMDk0MzQsIDAuMTE0NTMxIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3ODM5NCwgMC4wODAyNzYsIDAuMDg5MTc0LCAwLjA5NTg3OCwgMC4xMDQzNTIsIDAuMTIwODM4LCAwLjEzMTA2MyIsIFwKLSAgICAgICAgICAiMC4wODYyMzUsIDAuMDg4MTI4LCAwLjA5NzAwMywgMC4xMDM3MzUsIDAuMTEyMiwgMC4xMjg2OTgsIDAuMTM4OTE2IiwgXAotICAgICAgICAgICIwLjA5NDE1NCwgMC4wOTYwNDEsIDAuMTA0OTIyLCAwLjExMTY1OSwgMC4xMjAxMjcsIDAuMTM2NjIzLCAwLjE0NjgzNCIsIFwKLSAgICAgICAgICAiMC4wOTk3OTMsIDAuMTAxNzAxLCAwLjExMDU4NywgMC4xMTczMTMsIDAuMTI1NzkyLCAwLjE0MjM4OCwgMC4xNTI2NDciLCBcCi0gICAgICAgICAgIjAuMTA0Mjg3LCAwLjEwNjE3MywgMC4xMTUwNzEsIDAuMTIxNzc2LCAwLjEzMDMsIDAuMTQ2ODg4LCAwLjE1NzEzNSIsIFwKLSAgICAgICAgICAiMC4xMTA1NzMsIDAuMTEyNDY5LCAwLjEyMTM1OCwgMC4xMjgwODcsIDAuMTM2NTksIDAuMTUzMTg5LCAwLjE2MzQzMiIsIFwKLSAgICAgICAgICAiMC4xMTUwNjEsIDAuMTE2OTE0LCAwLjEyNTg0NiwgMC4xMzI2LCAwLjE0MTExNSwgMC4xNTc3MSwgMC4xNjc5ODIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE0OTU0LCAwLjAxNzUwMiwgMC4wMzEwNzMsIDAuMDQzMDQ3LCAwLjA1OTI3OSwgMC4wOTIyNTgsIDAuMTEzMDU0IiwgXAotICAgICAgICAgICIwLjAxNDkxLCAwLjAxNzUxMiwgMC4wMzEwNTksIDAuMDQzMDI1LCAwLjA1OTIzMiwgMC4wOTIyMTEsIDAuMTEzMTI5IiwgXAotICAgICAgICAgICIwLjAxNDkxNCwgMC4wMTc1MjUsIDAuMDMxMDU0LCAwLjA0MzAzNiwgMC4wNTkyNjMsIDAuMDkyMjc4LCAwLjExMzEyOCIsIFwKLSAgICAgICAgICAiMC4wMTQ5NSwgMC4wMTc0NjksIDAuMDMxMDUxLCAwLjA0MzAzLCAwLjA1OTI4MSwgMC4wOTIyNzgsIDAuMTEzMTM4IiwgXAotICAgICAgICAgICIwLjAxNDkzNCwgMC4wMTc1MDgsIDAuMDMxMDUyLCAwLjA0MzEzNCwgMC4wNTkzNTIsIDAuMDkyMzIyLCAwLjExMzE5MSIsIFwKLSAgICAgICAgICAiMC4wMTQ5MzMsIDAuMDE3NDg2LCAwLjAzMTAyNiwgMC4wNDMxNjUsIDAuMDU5MjQ1LCAwLjA5MjI4MiwgMC4xMTMxNSIsIFwKLSAgICAgICAgICAiMC4wMTQ5MjgsIDAuMDE3NDgxLCAwLjAzMTA4NCwgMC4wNDMwNiwgMC4wNTkyNTEsIDAuMDkyMjEzLCAwLjExMzA1OCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzA1NTMsIDAuMDMwMzQ0LCAwLjAzMDA4OSwgMC4wMzAxMjcsIDAuMDMwMjExLCAwLjAzMDMyNywgMC4wMzAzNzQiLCBcCi0gICAgICAgICAgIjAuMDMwNTQ1LCAwLjAzMDM0MiwgMC4wMzAwOCwgMC4wMzAxMjUsIDAuMDMwMjAxLCAwLjAzMDMxNywgMC4wMzAzNjUiLCBcCi0gICAgICAgICAgIjAuMDMwNTk4LCAwLjAzMDM5NywgMC4wMzAxMzUsIDAuMDMwMTc5LCAwLjAzMDI1NCwgMC4wMzAzNzEsIDAuMDMwNDQ5IiwgXAotICAgICAgICAgICIwLjAzMDY4NiwgMC4wMzA0NzMsIDAuMDMwMjI4LCAwLjAzMDI3MiwgMC4wMzAzNTUsIDAuMDMwNDczLCAwLjAzMDUyMiIsIFwKLSAgICAgICAgICAiMC4wMzA4NjksIDAuMDMwNjc4LCAwLjAzMDQzMSwgMC4wMzA0NDQsIDAuMDMwNTE4LCAwLjAzMDYyMywgMC4wMzA2NjciLCBcCi0gICAgICAgICAgIjAuMDMxMDQ5LCAwLjAzMDgwOSwgMC4wMzA2MDcsIDAuMDMwNjI5LCAwLjAzMDY4MiwgMC4wMzA4MjIsIDAuMDMwODU2IiwgXAotICAgICAgICAgICIwLjAzMTI0NSwgMC4wMzEwNDUsIDAuMDMwNzk5LCAwLjAzMDgyOSwgMC4wMzA5MDQsIDAuMDMxMDA4LCAwLjAzMTA1MyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzNjg5NSwgMC4wMzY3ODksIDAuMDM2OTY3LCAwLjAzNzE1OSwgMC4wMzczNDMsIDAuMDM3NTYsIDAuMDM3NjQ0IiwgXAotICAgICAgICAgICIwLjAzNjg5MiwgMC4wMzY3OTMsIDAuMDM2OTg3LCAwLjAzNzE3LCAwLjAzNzM1LCAwLjAzNzU2OCwgMC4wMzc2NDkiLCBcCi0gICAgICAgICAgIjAuMDM2OTcyLCAwLjAzNjg4NiwgMC4wMzcwNzIsIDAuMDM3MjU1LCAwLjAzNzQzMSwgMC4wMzc2NDgsIDAuMDM3NzI5IiwgXAotICAgICAgICAgICIwLjAzNzA0NSwgMC4wMzY5OTYsIDAuMDM3MTYyLCAwLjAzNzM1LCAwLjAzNzUzMywgMC4wMzc3NTUsIDAuMDM3ODM5IiwgXAotICAgICAgICAgICIwLjAzNzE3MiwgMC4wMzcxMTcsIDAuMDM3Mjg5LCAwLjAzNzQ4NywgMC4wMzc2OCwgMC4wMzc5MDYsIDAuMDM3OTkzIiwgXAotICAgICAgICAgICIwLjAzNzQ4NSwgMC4wMzc0MjQsIDAuMDM3NTUxLCAwLjAzNzc1NiwgMC4wMzc5MzMsIDAuMDM4MTMyLCAwLjAzODIxNiIsIFwKLSAgICAgICAgICAiMC4wMzc2NjYsIDAuMDM3NjEzLCAwLjAzNzc0OSwgMC4wMzc5NjMsIDAuMDM4MTEsIDAuMDM4MzMxLCAwLjAzODQyMSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oU0UpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDc0NDY0NDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA3NDI5MzM7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNzQ0NjQ0OwotICAgIGNsb2NrX2dhdGVfdGVzdF9waW4gOiB0cnVlOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNzU4LCAwLjAwNzU3LCAwLjAwNzYyMywgMC4wMDc3MzIsIDAuMDA3ODQ2LCAwLjAwODA0MywgMC4wMDgyMzgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDg2ODcsIDAuMDA4NjYyLCAwLjAwODY4OCwgMC4wMDg3NTksIDAuMDA4ODU2LCAwLjAwOTA2LCAwLjAwOTEzMSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRSI7Ci0gICAgICBzZGZfY29uZCA6ICJFID09IDEnYjAiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAyNSwgLTAuMDIsIC0wLjAyLCAtMC4wMTM3NSwgLTAuMDEzNzUsIC0wLjAxLCAtMC4wMDc1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDIxMjUsIC0wLjAxODc1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDM3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAzMTI1LCAtMC4wMjc1LCAtMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjA1NSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDMzNzUsIC0wLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjA2MTI1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDQ2MjUsIC0wLjA0Mzc1IiwgXAotICAgICAgICAgICItMC4wNzEyNSwgLTAuMDY2MjUsIC0wLjA2LCAtMC4wNiwgLTAuMDUzNzUsIC0wLjA1LCAtMC4wNDc1IiwgXAotICAgICAgICAgICItMC4wNzM3NSwgLTAuMDY4NzUsIC0wLjA2ODc1LCAtMC4wNjI1LCAtMC4wNjI1LCAtMC4wNTg3NSwgLTAuMDU2MjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMjUsIC0wLjAyLCAtMC4wMTM3NSwgLTAuMDA3NSwgLTAuMDAxMjUsIDAuMDAyNSwgMC4wMDUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgLTAuMDAyNSwgMCIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxODc1LCAtMC4wMDg3NSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMjUsIC0wLjAxNSwgLTAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDIxMjUsIC0wLjAxODc1IiwgXAotICAgICAgICAgICItMC4wNTg3NSwgLTAuMDUzNzUsIC0wLjA0NzUsIC0wLjA0MTI1LCAtMC4wMzUsIC0wLjAzMTI1LCAtMC4wMjI1IiwgXAotICAgICAgICAgICItMC4wNjc1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wNDM3NSwgLTAuMDMzNzUsIC0wLjAzMTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRSI7Ci0gICAgICBzZGZfY29uZCA6ICJFID09IDEnYjAiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzMTI1LCAwLjAyNjI1LCAwLjAyNjI1LCAwLjAyLCAwLjAyLCAwLjAxNjI1LCAwLjAxMzc1IiwgXAotICAgICAgICAgICIwLjA0MjUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMzEyNSwgMC4wMjUsIDAuMDI3NSwgMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMDU1LCAwLjA0Mzc1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDM3NSwgMC4wMzM3NSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4wNjEyNSwgMC4wNTYyNSwgMC4wNSwgMC4wNSwgMC4wNDM3NSwgMC4wNCwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4wNjc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDU2MjUsIDAuMDUsIDAuMDUyNSwgMC4wNSIsIFwKLSAgICAgICAgICAiMC4wNzc1LCAwLjA3MjUsIDAuMDY2MjUsIDAuMDY2MjUsIDAuMDYsIDAuMDU2MjUsIDAuMDUzNzUiLCBcCi0gICAgICAgICAgIjAuMDgsIDAuMDc1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjg3NSwgMC4wNjUsIDAuMDYyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzMTI1LCAwLjAyNjI1LCAwLjAyLCAwLjAxMzc1LCAwLjAwNzUsIDAuMDAzNzUsIDAuMDAxMjUiLCBcCi0gICAgICAgICAgIjAuMDQyNSwgMC4wMzEyNSwgMC4wMjUsIDAuMDE4NzUsIDAuMDEyNSwgMC4wMDg3NSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiMC4wNDg3NSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMjUsIDAuMDE1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMDU1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDMxMjUsIDAuMDIxMjUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMDYxMjUsIDAuMDUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMjc1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiMC4wNjUsIDAuMDYsIDAuMDUzNzUsIDAuMDQ3NSwgMC4wNDEyNSwgMC4wMzc1LCAwLjAyODc1IiwgXAotICAgICAgICAgICIwLjA3Mzc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDUsIDAuMDUsIDAuMDQsIDAuMDM3NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBUTEFUTlRTQ0FYNCAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoVExBVE5UU0NBWDQpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMS4wMDg1MzsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBjbG9ja19nYXRpbmdfaW50ZWdyYXRlZF9jZWxsIDogImxhdGNoX3Bvc2VkZ2VfcHJlY29udHJvbCI7Ci0gIHN0YXRldGFibGUoIiBDSyAgRSBTRSAiLCAiIEVJTlQgIikgewotICAgICB0YWJsZSA6ICIgIEwgIEwgIEwgOiAtIDogTCAsIFwKLSAgICAgICAgICAgICAgICBMICBIICBMIDogLSA6IEggLCBcCi0gICAgICAgICAgICAgICAgTCAgTCAgSCA6IC0gOiBIICwgXAotICAgICAgICAgICAgICAgIEwgIEggIEggOiAtIDogSCAsIFwKLSAgICAgICAgICAgICAgICBIICAtICAtIDogLSA6IE4gIjsKLSAgfQotICBwaW4oRUlOVCkgewotICAgIGRpcmVjdGlvbiA6IGludGVybmFsOwotICAgIGludGVybmFsX25vZGUgOiAiRUlOVCI7Ci0gIH0KLSAgcGluKENLKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2NDQzMDE7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjQ0MzAxOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDY0NDI4ODsKLSAgICBjbG9ja19nYXRlX2Nsb2NrX3BpbiA6IHRydWU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzOTIxLCAwLjAwMzkxNSwgMC4wMDM5ODgsIDAuMDA0MSwgMC4wMDQyMiwgMC4wMDQ0NTYsIDAuMDA0NjU2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzODM2LCAwLjAwMzgzOCwgMC4wMDM5MDIsIDAuMDA0MDA3LCAwLjAwNDEzMSwgMC4wMDQzOTcsIDAuMDA0NTc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRSYhU0UiOwotICAgICAgc2RmX2NvbmQgOiAiRV9FUV8wX0FOX1NFX0VRXzAgPT0gMSdiMSI7Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wNjg0MDUsIDAuMDc2MTI4LCAwLjA4MzU0OCwgMC4wODg2NDcsIDAuMDkzMDg0LCAwLjA5ODY1OCwgMC4xMDI3ODkiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEUpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDcwMDI3NTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA3MDAyNzU7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNzAwMDYyOwotICAgIGNsb2NrX2dhdGVfZW5hYmxlX3BpbiA6IHRydWU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzNDM2LCAwLjAwMzQzLCAwLjAwMzQ3OCwgMC4wMDM1NjEsIDAuMDAzNjUyLCAwLjAwMzgyNywgMC4wMDM5NTQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDU1MzcsIDAuMDA1NTM2LCAwLjAwNTU4NiwgMC4wMDU2ODEsIDAuMDA1Nzg4LCAwLjAwNTkzOSwgMC4wMDYxMTgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIVNFIjsKLSAgICAgIHNkZl9jb25kIDogIlNFID09IDEnYjAiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAxODc1LCAtMC4wMTM3NSwgLTAuMDEzNzUsIC0wLjAxMzc1LCAtMC4wMDc1LCAtMC4wMDM3NSwgLTAuMDAxMjUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTg3NSwgLTAuMDE4NzUsIC0wLjAxNSwgLTAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAzMTI1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMjUsIC0wLjAyMTI1LCAtMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDI3NSwgLTAuMDI1IiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA0Mzc1LCAtMC4wNDM3NSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzMzc1LCAtMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDU4NzUsIC0wLjA1Mzc1LCAtMC4wNTM3NSwgLTAuMDQ3NSwgLTAuMDQ3NSwgLTAuMDQzNzUsIC0wLjA0MTI1IiwgXAotICAgICAgICAgICItMC4wNjc1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNTI1LCAtMC4wNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAyNSwgLTAuMDEzNzUsIC0wLjAwNzUsIC0wLjAwNzUsIC0wLjAwMTI1LCAwLjAwMjUsIDAuMDExMjUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgLTAuMDAyNSwgMCIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxODc1LCAtMC4wMTUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAyMTI1LCAtMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMjc1LCAtMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjA2NSwgLTAuMDYsIC0wLjA1Mzc1LCAtMC4wNDc1LCAtMC4wNDEyNSwgLTAuMDM3NSwgLTAuMDM1IiwgXAotICAgICAgICAgICItMC4wNzM3NSwgLTAuMDY4NzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDQ2MjUsIC0wLjA0Mzc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhU0UiOwotICAgICAgc2RmX2NvbmQgOiAiU0UgPT0gMSdiMCI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDI1LCAwLjAyLCAwLjAyLCAwLjAyLCAwLjAxMzc1LCAwLjAxLCAwLjAwNzUiLCBcCi0gICAgICAgICAgIjAuMDM2MjUsIDAuMDMxMjUsIDAuMDI1LCAwLjAyNSwgMC4wMjUsIDAuMDIxMjUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMDQyNSwgMC4wMzc1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDMxMjUsIDAuMDI3NSwgMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMDU1LCAwLjA1LCAwLjA0Mzc1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDMzNzUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMDYxMjUsIDAuMDUsIDAuMDUsIDAuMDUsIDAuMDQzNzUsIDAuMDQsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiMC4wNjUsIDAuMDYsIDAuMDYsIDAuMDUzNzUsIDAuMDUzNzUsIDAuMDUsIDAuMDQ3NSIsIFwKLSAgICAgICAgICAiMC4wNzM3NSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDU4NzUsIDAuMDU2MjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzEyNSwgMC4wMiwgMC4wMTM3NSwgMC4wMTM3NSwgMC4wMDc1LCAwLjAwMzc1LCAtMC4wMDUiLCBcCi0gICAgICAgICAgIjAuMDM2MjUsIDAuMDMxMjUsIDAuMDI1LCAwLjAxODc1LCAwLjAxMjUsIDAuMDA4NzUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMDQ4NzUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMjUsIDAuMDI1LCAwLjAyMTI1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMDU1LCAwLjA1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDI3NSwgMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMDYxMjUsIDAuMDU2MjUsIDAuMDUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzM3NSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4wNzEyNSwgMC4wNjYyNSwgMC4wNiwgMC4wNTM3NSwgMC4wNDc1LCAwLjA0Mzc1LCAwLjA0MTI1IiwgXAotICAgICAgICAgICIwLjA4LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1MjUsIDAuMDUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEVDSykgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAxLjM4NTM4OwotICAgIGNsb2NrX2dhdGVfb3V0X3BpbiA6IHRydWU7Ci0gICAgc3RhdGVfZnVuY3Rpb24gOiAiKENLIEVJTlQpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzk0ODIsIDAuMTM3MDIzLCAwLjE5MTA0NiwgMC4yMjk1ODUsIDAuMjkxMjgsIDAuMzQ1MTUxLCAwLjQyMjE3NyIsIFwKLSAgICAgICAgICAiMC4wODczNTcsIDAuMTQ0OTA4LCAwLjE5ODkxOSwgMC4yMzc0MzksIDAuMjk5MDk5LCAwLjM1MzA0LCAwLjQzMDA2NCIsIFwKLSAgICAgICAgICAiMC4wOTUwMTYsIDAuMTUyNTc0LCAwLjIwNjU5NCwgMC4yNDUxMjksIDAuMzA2ODA2LCAwLjM2MDY5MiwgMC40Mzc3NDkiLCBcCi0gICAgICAgICAgIjAuMTAwNTQzLCAwLjE1ODA4NywgMC4yMTIwOTQsIDAuMjUwNjMsIDAuMzEyMjU2LCAwLjM2NjEyNSwgMC40NDMyMjkiLCBcCi0gICAgICAgICAgIjAuMTA1MTg3LCAwLjE2MjcyMSwgMC4yMTY3MjYsIDAuMjU1MjU4LCAwLjMxNjksIDAuMzcwODgyLCAwLjQ0Nzg2NyIsIFwKLSAgICAgICAgICAiMC4xMTEyMzEsIDAuMTY4Nzc5LCAwLjIyMjgxNSwgMC4yNjEzNSwgMC4zMjI5OTUsIDAuMzc2OTMyLCAwLjQ1Mzk0MSIsIFwKLSAgICAgICAgICAiMC4xMTU3MTQsIDAuMTczMjc3LCAwLjIyNzI5NiwgMC4yNjU4MTcsIDAuMzI3NDQsIDAuMzgxNDc3LCAwLjQ1ODUxIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDI5NDgsIDAuMTM4MTY1LCAwLjI1MDU2NCwgMC4zMzE1NzMsIDAuNDYwNjAyLCAwLjU3NTE4LCAwLjczNzc5OCIsIFwKLSAgICAgICAgICAiMC4wMjk0ODcsIDAuMTM4MTYxLCAwLjI1MDI3MSwgMC4zMzEzNjQsIDAuNDYxNDEzLCAwLjU3NDU2NSwgMC43MzcyNjYiLCBcCi0gICAgICAgICAgIjAuMDI5NDc3LCAwLjEzODE3NCwgMC4yNTA1NjgsIDAuMzMxNTg1LCAwLjQ2MDU5NiwgMC41NzUxNTYsIDAuNzM3ODI2IiwgXAotICAgICAgICAgICIwLjAyOTQ3NCwgMC4xMzgyMjgsIDAuMjUwNTM4LCAwLjMzMTU4OCwgMC40NjA3MDUsIDAuNTc0Mzk0LCAwLjczNjc3OSIsIFwKLSAgICAgICAgICAiMC4wMjk0NDcsIDAuMTM4MjE3LCAwLjI1MDM4MSwgMC4zMzEzNjEsIDAuNDYwODM0LCAwLjU3NDE2MiwgMC43MzY3NyIsIFwKLSAgICAgICAgICAiMC4wMjk0NzcsIDAuMTM4MjQ5LCAwLjI1MDMyNCwgMC4zMzEwNDQsIDAuNDYxMzU3LCAwLjU3NTE2MSwgMC43MzcxOTQiLCBcCi0gICAgICAgICAgIjAuMDI5NTA5LCAwLjEzODE3MiwgMC4yNTA2NjksIDAuMzMxNTU1LCAwLjQ2MTM3NiwgMC41NzUxNjEsIDAuNzM2NDkiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjg0MDUsIDAuMTIzMjM2LCAwLjE3NzE2MywgMC4yMTU2NzgsIDAuMjc3MzExLCAwLjMzMTIwMiwgMC40MDgyOTkiLCBcCi0gICAgICAgICAgIjAuMDc2MTI4LCAwLjEzMDk4MiwgMC4xODQ5MjcsIDAuMjIzNDUzLCAwLjI4NTA2MywgMC4zMzg5NDMsIDAuNDE2MDA1IiwgXAotICAgICAgICAgICIwLjA4MzU0OCwgMC4xMzg0MjEsIDAuMTkyMzU0LCAwLjIzMDg3MSwgMC4yOTI0OTEsIDAuMzQ2NTA2LCAwLjQyMzUyNyIsIFwKLSAgICAgICAgICAiMC4wODg2NDcsIDAuMTQzNjU1LCAwLjE5NzU5LCAwLjIzNjEzMiwgMC4yOTc4NTQsIDAuMzUxNzUyLCAwLjQyODc3MSIsIFwKLSAgICAgICAgICAiMC4wOTMwODQsIDAuMTQ4MDY5LCAwLjIwMjAxNywgMC4yNDA1NDYsIDAuMzAyMTk0LCAwLjM1NjI2MywgMC40MzMyNDYiLCBcCi0gICAgICAgICAgIjAuMDk4NjU4LCAwLjE1MzY0OCwgMC4yMDc1OSwgMC4yNDYxLCAwLjMwNzgwMywgMC4zNjE2NTQsIDAuNDM4ODI0IiwgXAotICAgICAgICAgICIwLjEwMjc4OSwgMC4xNTc4MzEsIDAuMjExNzU1LCAwLjI1MDI2MywgMC4zMTE5MTMsIDAuMzY1ODI3LCAwLjQ0Mjg2MSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyNDQ4NywgMC4xMzM1NDYsIDAuMjQ1MzE1LCAwLjMyNTI5NSwgMC40NTM3NzUsIDAuNTY1Nzg0LCAwLjcyNTkyOSIsIFwKLSAgICAgICAgICAiMC4wMjQ0OSwgMC4xMzMzNTcsIDAuMjQ1MzgsIDAuMzI0ODUsIDAuNDUzNzczLCAwLjU2NTk1MSwgMC43MjU4MzYiLCBcCi0gICAgICAgICAgIjAuMDI0NTA3LCAwLjEzMzU1OCwgMC4yNDUzNDUsIDAuMzI1NDcsIDAuNDUzNTY5LCAwLjU2NTAyNCwgMC43MjYyMDkiLCBcCi0gICAgICAgICAgIjAuMDI0NTcyLCAwLjEzMzU5NSwgMC4yNDUzMjksIDAuMzI0OTUsIDAuNDUzMDgzLCAwLjU2NTI5MiwgMC43MjU3ODQiLCBcCi0gICAgICAgICAgIjAuMDI0NjIxLCAwLjEzMzU4MSwgMC4yNDU0MDgsIDAuMzI0ODQzLCAwLjQ1MzE3NSwgMC41NjUyNzcsIDAuNzI1NjY0IiwgXAotICAgICAgICAgICIwLjAyNDUyNywgMC4xMzM0NDYsIDAuMjQ1MDU0LCAwLjMyNTM1NiwgMC40NTMsIDAuNTY2MDUyLCAwLjcyNTc1MiIsIFwKLSAgICAgICAgICAiMC4wMjQ1MzYsIDAuMTMzMjYsIDAuMjQ1MDM2LCAwLjMyNTQwMywgMC40NTM2OTQsIDAuNTY1Mzg1LCAwLjcyNDk2OSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMDI0NywgMC4wMTAzNzIsIDAuMDEwNDA0LCAwLjAxMDQxMSwgMC4wMTA0MTksIDAuMDEwNDI1LCAwLjAxMDQyOCIsIFwKLSAgICAgICAgICAiMC4wMTAyNCwgMC4wMTAzNjgsIDAuMDEwMzk3LCAwLjAxMDQwOCwgMC4wMTA0MTUsIDAuMDEwNDIzLCAwLjAxMDQyMyIsIFwKLSAgICAgICAgICAiMC4wMTAzMTgsIDAuMDEwNDQyLCAwLjAxMDQ3MSwgMC4wMTA0ODEsIDAuMDEwNDg4LCAwLjAxMDQ5MywgMC4wMTA0OTciLCBcCi0gICAgICAgICAgIjAuMDEwNDI3LCAwLjAxMDU1MywgMC4wMTA1ODMsIDAuMDEwNTk0LCAwLjAxMDYwMSwgMC4wMTA2MDYsIDAuMDEwNjEiLCBcCi0gICAgICAgICAgIjAuMDEwNTQ3LCAwLjAxMDY3NCwgMC4wMTA3MDUsIDAuMDEwNzE0LCAwLjAxMDcyMywgMC4wMTA3MzUsIDAuMDEwNzMyIiwgXAotICAgICAgICAgICIwLjAxMDc2NywgMC4wMTA4ODcsIDAuMDEwOTE4LCAwLjAxMDkyOCwgMC4wMTA5MzUsIDAuMDEwOTQyLCAwLjAxMDk0NyIsIFwKLSAgICAgICAgICAiMC4wMTA5NiwgMC4wMTEwODEsIDAuMDExMTE1LCAwLjAxMTEyNCwgMC4wMTExMjMsIDAuMDExMTM3LCAwLjAxMTE0MiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEzODU1LCAwLjAxNDA2NCwgMC4wMTQwOTYsIDAuMDE0MTA2LCAwLjAxNDExNSwgMC4wMTQxMTksIDAuMDE0MTIzIiwgXAotICAgICAgICAgICIwLjAxMzg3MiwgMC4wMTQwNzgsIDAuMDE0MTEsIDAuMDE0MTIsIDAuMDE0MTI5LCAwLjAxNDEzMywgMC4wMTQxMzciLCBcCi0gICAgICAgICAgIjAuMDEzOTU5LCAwLjAxNDE2NiwgMC4wMTQxOTgsIDAuMDE0MjA3LCAwLjAxNDIxNywgMC4wMTQyMjEsIDAuMDE0MjI1IiwgXAotICAgICAgICAgICIwLjAxNDA4NiwgMC4wMTQzMDIsIDAuMDE0MzM2LCAwLjAxNDM0NiwgMC4wMTQzNTUsIDAuMDE0MzYsIDAuMDE0MzY0IiwgXAotICAgICAgICAgICIwLjAxNDI0MSwgMC4wMTQ0NDcsIDAuMDE0NDc3LCAwLjAxNDQ4NywgMC4wMTQ0OTcsIDAuMDE0NTAxLCAwLjAxNDUwNSIsIFwKLSAgICAgICAgICAiMC4wMTQ0NTYsIDAuMDE0NjY1LCAwLjAxNDY5MiwgMC4wMTQ3MDYsIDAuMDE0NzEsIDAuMDE0NzE1LCAwLjAxNDcxOSIsIFwKLSAgICAgICAgICAiMC4wMTQ2NzgsIDAuMDE0ODcxLCAwLjAxNDkwMywgMC4wMTQ5MjMsIDAuMDE0OTI1LCAwLjAxNDkzLCAwLjAxNDk0MSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oU0UpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDczOTI3OTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA3Mzc0ODU7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNzM5Mjc5OwotICAgIGNsb2NrX2dhdGVfdGVzdF9waW4gOiB0cnVlOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzYwMiwgMC4wMDM1OTksIDAuMDAzNjQ2LCAwLjAwMzczLCAwLjAwMzgyOCwgMC4wMDQwMDcsIDAuMDA0MTgzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA1Nzk5LCAwLjAwNTc3OSwgMC4wMDU4MDcsIDAuMDA1ODU5LCAwLjAwNTkzMiwgMC4wMDYwODEsIDAuMDA2MTkzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFFIjsKLSAgICAgIHNkZl9jb25kIDogIkUgPT0gMSdiMCI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDI1LCAtMC4wMiwgLTAuMDEzNzUsIC0wLjAxMzc1LCAtMC4wMDc1LCAtMC4wMDM3NSwgLTAuMDA3NSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDE4NzUsIC0wLjAxNSwgLTAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAyMTI1LCAtMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDM3NSwgLTAuMDM3NSwgLTAuMDMzNzUsIC0wLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDQzNzUsIC0wLjA0Mzc1LCAtMC4wNCwgLTAuMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDY1LCAtMC4wNiwgLTAuMDUzNzUsIC0wLjA1Mzc1LCAtMC4wNDc1LCAtMC4wNSwgLTAuMDQ3NSIsIFwKLSAgICAgICAgICAiLTAuMDY3NSwgLTAuMDYyNSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA1NjI1LCAtMC4wNTI1LCAtMC4wNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAyNSwgLTAuMDIsIC0wLjAxMzc1LCAtMC4wMDc1LCAtMC4wMDEyNSwgMC4wMDI1LCAwLjAwNSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAtMC4wMDI1LCAwIiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwODc1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxNSwgLTAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMjEyNSwgLTAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjA1ODc1LCAtMC4wNDc1LCAtMC4wNDEyNSwgLTAuMDQxMjUsIC0wLjAzNSwgLTAuMDMxMjUsIC0wLjAyMjUiLCBcCi0gICAgICAgICAgIi0wLjA2MTI1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzM3NSwgLTAuMDMxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFFIjsKLSAgICAgIHNkZl9jb25kIDogIkUgPT0gMSdiMCI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDMxMjUsIDAuMDI2MjUsIDAuMDIsIDAuMDIsIDAuMDEzNzUsIDAuMDEsIDAuMDEzNzUiLCBcCi0gICAgICAgICAgIjAuMDM2MjUsIDAuMDMxMjUsIDAuMDMxMjUsIDAuMDI1LCAwLjAyNSwgMC4wMjEyNSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4wNDg3NSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDI3NSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4wNTUsIDAuMDUsIDAuMDQzNzUsIDAuMDQzNzUsIDAuMDQzNzUsIDAuMDQsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiMC4wNjEyNSwgMC4wNTYyNSwgMC4wNSwgMC4wNSwgMC4wNSwgMC4wNDYyNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4wNzEyNSwgMC4wNjYyNSwgMC4wNiwgMC4wNiwgMC4wNTM3NSwgMC4wNTYyNSwgMC4wNTM3NSIsIFwKLSAgICAgICAgICAiMC4wNzM3NSwgMC4wNjg3NSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA2MjUsIDAuMDU4NzUsIDAuMDU2MjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzEyNSwgMC4wMjYyNSwgMC4wMiwgMC4wMTM3NSwgMC4wMDc1LCAwLjAwMzc1LCAwLjAwMTI1IiwgXAotICAgICAgICAgICIwLjAzNjI1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMTg3NSwgMC4wMTI1LCAwLjAwODc1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICIwLjA0MjUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMjUsIDAuMDE4NzUsIDAuMDE1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMDQ4NzUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMjUsIDAuMDIxMjUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMDU1LCAwLjA1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDI3NSwgMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMDY1LCAwLjA1Mzc1LCAwLjA0NzUsIDAuMDQ3NSwgMC4wNDEyNSwgMC4wMzc1LCAwLjAyODc1IiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNSwgMC4wNDM3NSwgMC4wNCwgMC4wMzc1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IFRMQVROVFNDQVg4ICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChUTEFUTlRTQ0FYOCkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAxLjU2OTc1OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIGNsb2NrX2dhdGluZ19pbnRlZ3JhdGVkX2NlbGwgOiAibGF0Y2hfcG9zZWRnZV9wcmVjb250cm9sIjsKLSAgc3RhdGV0YWJsZSgiIENLICBFIFNFICIsICIgRUlOVCAiKSB7Ci0gICAgIHRhYmxlIDogIiAgTCAgTCAgTCA6IC0gOiBMICwgXAotICAgICAgICAgICAgICAgIEwgIEggIEwgOiAtIDogSCAsIFwKLSAgICAgICAgICAgICAgICBMICBMICBIIDogLSA6IEggLCBcCi0gICAgICAgICAgICAgICAgTCAgSCAgSCA6IC0gOiBIICwgXAotICAgICAgICAgICAgICAgIEggIC0gIC0gOiAtIDogTiAiOwotICB9Ci0gIHBpbihFSU5UKSB7Ci0gICAgZGlyZWN0aW9uIDogaW50ZXJuYWw7Ci0gICAgaW50ZXJuYWxfbm9kZSA6ICJFSU5UIjsKLSAgfQotICBwaW4oQ0spICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY2Njg0MTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2NjY4NDE7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjY2NzgyOwotICAgIGNsb2NrX2dhdGVfY2xvY2tfcGluIDogdHJ1ZTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDQ0MSwgMC4wMDQ0MTYsIDAuMDA0NDc3LCAwLjAwNDU3NSwgMC4wMDQ2OTMsIDAuMDA0OTE2LCAwLjAwNTEyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNDYyNiwgMC4wMDQ2MjYsIDAuMDA0Njg4LCAwLjAwNDc4OSwgMC4wMDQ5MTYsIDAuMDA1MTgyLCAwLjAwNTM2OCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUUmIVNFIjsKLSAgICAgIHNkZl9jb25kIDogIkVfRVFfMF9BTl9TRV9FUV8wID09IDEnYjEiOwotICAgICAgZmFsbF9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDc1NzEzLCAwLjA4MzU4MSwgMC4wOTE1NTQsIDAuMDk3MzAyLCAwLjEwMTk1NCwgMC4xMDgyOTksIDAuMTEyOTEzIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihFKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA3MjE2ODQ7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNzIxNTY4OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDcyMTY4NDsKLSAgICBjbG9ja19nYXRlX2VuYWJsZV9waW4gOiB0cnVlOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNDY4MiwgMC4wMDQ2NzQsIDAuMDA0NzE5LCAwLjAwNDgwMiwgMC4wMDQ4OTYsIDAuMDA1MDcsIDAuMDA1MjMzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA2MzE4LCAwLjAwNjMxMywgMC4wMDYzNjUsIDAuMDA2NDY0LCAwLjAwNjU4OCwgMC4wMDY3MzIsIDAuMDA2ODk4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJTRSA9PSAxJ2IwIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMjUsIC0wLjAyLCAtMC4wMTM3NSwgLTAuMDEzNzUsIC0wLjAwNzUsIC0wLjAwMzc1LCAtMC4wMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxODc1LCAtMC4wMTg3NSwgLTAuMDE1LCAtMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDIxMjUsIC0wLjAxODc1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMjc1LCAtMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzM3NSwgLTAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjA1ODc1LCAtMC4wNTM3NSwgLTAuMDUzNzUsIC0wLjA0NzUsIC0wLjA0NzUsIC0wLjA0Mzc1LCAtMC4wNDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDY3NSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDUyNSwgLTAuMDUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMjUsIC0wLjAyLCAtMC4wMDc1LCAtMC4wMDc1LCAtMC4wMDEyNSwgMC4wMDI1LCAwLjAxMTI1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIC0wLjAwMjUsIDAiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTg3NSwgLTAuMDA4NzUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAyMTI1LCAtMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDYxMjUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAyNzUsIC0wLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDcxMjUsIC0wLjA2LCAtMC4wNTM3NSwgLTAuMDQ3NSwgLTAuMDQxMjUsIC0wLjAzNzUsIC0wLjAzNSIsIFwKLSAgICAgICAgICAiLTAuMDczNzUsIC0wLjA2ODc1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjA0NjI1LCAtMC4wNDM3NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIVNFIjsKLSAgICAgIHNkZl9jb25kIDogIlNFID09IDEnYjAiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzMTI1LCAwLjAyNjI1LCAwLjAyLCAwLjAyLCAwLjAxMzc1LCAwLjAxLCAwLjAwNzUiLCBcCi0gICAgICAgICAgIjAuMDM2MjUsIDAuMDMxMjUsIDAuMDI1LCAwLjAyNSwgMC4wMjUsIDAuMDIxMjUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMDQ4NzUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyNzUsIDAuMDI1IiwgXAotICAgICAgICAgICIwLjA1NSwgMC4wNSwgMC4wNDM3NSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzMzc1LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIjAuMDYxMjUsIDAuMDU2MjUsIDAuMDUsIDAuMDUsIDAuMDQzNzUsIDAuMDQsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiMC4wNjUsIDAuMDYsIDAuMDYsIDAuMDUzNzUsIDAuMDUzNzUsIDAuMDUsIDAuMDQ3NSIsIFwKLSAgICAgICAgICAiMC4wNzM3NSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDU4NzUsIDAuMDU2MjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzEyNSwgMC4wMjYyNSwgMC4wMTM3NSwgMC4wMTM3NSwgMC4wMDc1LCAwLjAwMzc1LCAtMC4wMDUiLCBcCi0gICAgICAgICAgIjAuMDM2MjUsIDAuMDMxMjUsIDAuMDI1LCAwLjAxODc1LCAwLjAxMjUsIDAuMDA4NzUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMDQ4NzUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMjUsIDAuMDI1LCAwLjAxNSwgMC4wMTI1IiwgXAotICAgICAgICAgICIwLjA1NSwgMC4wNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyNzUsIDAuMDI1IiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDU2MjUsIDAuMDUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzM3NSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4wNzc1LCAwLjA2NjI1LCAwLjA2LCAwLjA1Mzc1LCAwLjA0NzUsIDAuMDQzNzUsIDAuMDQxMjUiLCBcCi0gICAgICAgICAgIjAuMDgsIDAuMDc1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDUyNSwgMC4wNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRUNLKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDIuNjUyNjM7Ci0gICAgY2xvY2tfZ2F0ZV9vdXRfcGluIDogdHJ1ZTsKLSAgICBzdGF0ZV9mdW5jdGlvbiA6ICIoQ0sgRUlOVCkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3Nzg3NSwgMC4xMTAzNTgsIDAuMTM4NDU1LCAwLjE1ODI2NCwgMC4xODk4OTIsIDAuMjE3NTMyLCAwLjI1NzAyMiIsIFwKLSAgICAgICAgICAiMC4wODU4OTYsIDAuMTE4MzgsIDAuMTQ2NDc3LCAwLjE2NjI4NiwgMC4xOTc5MTUsIDAuMjI1NTU1LCAwLjI2NTA0NiIsIFwKLSAgICAgICAgICAiMC4wOTM4OTksIDAuMTI2Mzg4LCAwLjE1NDQ3OSwgMC4xNzQyOSwgMC4yMDU5MTQsIDAuMjMzNTU5LCAwLjI3MzA1NiIsIFwKLSAgICAgICAgICAiMC4wOTk3MjIsIDAuMTMyMjE4LCAwLjE2MDMwNiwgMC4xODAxMjQsIDAuMjExNzU0LCAwLjIzOTQsIDAuMjc4ODQ1IiwgXAotICAgICAgICAgICIwLjEwNDQwNywgMC4xMzY4OTksIDAuMTY0OTYyLCAwLjE4NDc1NSwgMC4yMTYzODEsIDAuMjQ0MDQ2LCAwLjI4MzUzMyIsIFwKLSAgICAgICAgICAiMC4xMTEwNDgsIDAuMTQzNTM5LCAwLjE3MTYyNCwgMC4xOTE0MjIsIDAuMjIzMDI3LCAwLjI1MDY5NiwgMC4yOTAxNzQiLCBcCi0gICAgICAgICAgIjAuMTE1ODE4LCAwLjE0ODMwOCwgMC4xNzYzODUsIDAuMTk2MTksIDAuMjI3ODAzLCAwLjI1NTQ5NywgMC4yOTQ5NjciKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjE1NTMsIDAuMDc2OTc2LCAwLjEzMzQyMiwgMC4xNzQzNTYsIDAuMjQwNDUzLCAwLjI5ODQzMywgMC4zODE2MDYiLCBcCi0gICAgICAgICAgIjAuMDIxNTUzLCAwLjA3Njk3NSwgMC4xMzM0MTcsIDAuMTc0MzczLCAwLjI0MDQ1MSwgMC4yOTg0NDIsIDAuMzgxNjE1IiwgXAotICAgICAgICAgICIwLjAyMTU1MSwgMC4wNzY5NzYsIDAuMTMzMzM3LCAwLjE3NDIzMSwgMC4yNDA0NjIsIDAuMjk4MzEyLCAwLjM4MTM1NCIsIFwKLSAgICAgICAgICAiMC4wMjE1MTksIDAuMDc2OTc2LCAwLjEzMzM1LCAwLjE3NDM1OSwgMC4yNDAyNTIsIDAuMjk4MjA0LCAwLjM4MTA5OCIsIFwKLSAgICAgICAgICAiMC4wMjE0OTksIDAuMDc2OTk1LCAwLjEzMzQ2OCwgMC4xNzQzOTgsIDAuMjQwNDc1LCAwLjI5ODYyNSwgMC4zODE3MTYiLCBcCi0gICAgICAgICAgIjAuMDIxNTIsIDAuMDc2OTU5LCAwLjEzMzQ0NywgMC4xNzQzMzYsIDAuMjQwNDUxLCAwLjI5ODQ3NSwgMC4zODE3MjEiLCBcCi0gICAgICAgICAgIjAuMDIxNTg3LCAwLjA3NzEzMSwgMC4xMzMzODEsIDAuMTc0MzI5LCAwLjI0MDI0MiwgMC4yOTg1MjUsIDAuMzgxNzkzIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY4NzUyLCAwLjA5OTAzOCwgMC4xMjczOTQsIDAuMTQ3NjA1LCAwLjE3OTk2NCwgMC4yMDgyODgsIDAuMjQ4NzU2IiwgXAotICAgICAgICAgICIwLjA3NjYwNiwgMC4xMDY5MTYsIDAuMTM1MjM3LCAwLjE1NTQ3NywgMC4xODc4NTksIDAuMjE2MTgzLCAwLjI1NjY4MyIsIFwKLSAgICAgICAgICAiMC4wODQzOTUsIDAuMTE0NzA1LCAwLjE0MzAwNiwgMC4xNjMyNDksIDAuMTk1NjIxLCAwLjIyMzk0NSwgMC4yNjQ0MTQiLCBcCi0gICAgICAgICAgIjAuMDg5OTQ0LCAwLjEyMDI3NSwgMC4xNDg2OTIsIDAuMTY4ODkyLCAwLjIwMTMwOCwgMC4yMjk2MjUsIDAuMjcwMDk3IiwgXAotICAgICAgICAgICIwLjA5NDQxOSwgMC4xMjQ4ODcsIDAuMTUzMzI1LCAwLjE3MzQ2NSwgMC4yMDU5NDEsIDAuMjM0MjYyLCAwLjI3NDc1NSIsIFwKLSAgICAgICAgICAiMC4xMDA1MTMsIDAuMTMwODc0LCAwLjE1OTMyLCAwLjE3OTU2NSwgMC4yMTE5NTgsIDAuMjQwMjg1LCAwLjI4MDcxOSIsIFwKLSAgICAgICAgICAiMC4xMDQ4MjUsIDAuMTM1MjMyLCAwLjE2MzY0OSwgMC4xODM4OTgsIDAuMjE2MjU1LCAwLjI0NDU3MiwgMC4yODUwMjkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTc3MjcsIDAuMDczODIxLCAwLjEzMTk1NSwgMC4xNzM3OTUsIDAuMjQwOTgxLCAwLjI5OTU0OCwgMC4zODQxOSIsIFwKLSAgICAgICAgICAiMC4wMTc3MzEsIDAuMDczODAyLCAwLjEzMTkyMiwgMC4xNzM3NDQsIDAuMjQxMDA3LCAwLjI5OTkyNCwgMC4zODM1MTUiLCBcCi0gICAgICAgICAgIjAuMDE3NzU0LCAwLjA3MzgyMywgMC4xMzE5NTYsIDAuMTczNzk0LCAwLjI0MDk4MiwgMC4yOTk1NTMsIDAuMzg0MTg3IiwgXAotICAgICAgICAgICIwLjAxNzcyNCwgMC4wNzM4MzUsIDAuMTMxOTQzLCAwLjE3MzgxOCwgMC4yNDEwMjQsIDAuMjk5OTQ4LCAwLjM4NDE5MyIsIFwKLSAgICAgICAgICAiMC4wMTc3NTYsIDAuMDczODMzLCAwLjEzMTk2MywgMC4xNzM4MzksIDAuMjQwOTU5LCAwLjI5OTg5MSwgMC4zODQxNyIsIFwKLSAgICAgICAgICAiMC4wMTc3OTMsIDAuMDczNzU4LCAwLjEzMTk1MSwgMC4xNzM4MDEsIDAuMjQxMDM5LCAwLjI5OTk1LCAwLjM4NDE0OSIsIFwKLSAgICAgICAgICAiMC4wMTc4MDQsIDAuMDc0MDIzLCAwLjEzMTcsIDAuMTczNTI4LCAwLjI0MDkxMywgMC4yOTk3ODcsIDAuMzgzNTg5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE2NDI3LCAwLjAxNjU0NSwgMC4wMTY2MTcsIDAuMDE2NjQyLCAwLjAxNjY2NiwgMC4wMTY2ODEsIDAuMDE2NjkiLCBcCi0gICAgICAgICAgIjAuMDE2NDI1LCAwLjAxNjU0MywgMC4wMTY2MTUsIDAuMDE2NjQxLCAwLjAxNjY2NSwgMC4wMTY2NzksIDAuMDE2Njk2IiwgXAotICAgICAgICAgICIwLjAxNjQ5NiwgMC4wMTY2MDgsIDAuMDE2NjgsIDAuMDE2NzA1LCAwLjAxNjcyOSwgMC4wMTY3NSwgMC4wMTY3NTYiLCBcCi0gICAgICAgICAgIjAuMDE2NTUsIDAuMDE2Njk1LCAwLjAxNjc3MywgMC4wMTY4LCAwLjAxNjgyNiwgMC4wMTY4NCwgMC4wMTY4NTMiLCBcCi0gICAgICAgICAgIjAuMDE2NjgsIDAuMDE2ODE4LCAwLjAxNjg5NywgMC4wMTY5MjYsIDAuMDE2OTUzLCAwLjAxNjk2OCwgMC4wMTY5ODEiLCBcCi0gICAgICAgICAgIjAuMDE2OTM0LCAwLjAxNzA0MiwgMC4wMTcxMTMsIDAuMDE3MTM5LCAwLjAxNzE1OSwgMC4wMTcxNzgsIDAuMDE3MTkyIiwgXAotICAgICAgICAgICIwLjAxNzExNSwgMC4wMTcyNDYsIDAuMDE3MzA3LCAwLjAxNzMzOCwgMC4wMTczNTgsIDAuMDE3MzY5LCAwLjAxNzM4MSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDIxMTE1LCAwLjAyMTU2MywgMC4wMjE2ODMsIDAuMDIxNzIzLCAwLjAyMTc2LCAwLjAyMTc3OSwgMC4wMjE3OTciLCBcCi0gICAgICAgICAgIjAuMDIxMTIyLCAwLjAyMTU3LCAwLjAyMTY5LCAwLjAyMTczMSwgMC4wMjE3NjgsIDAuMDIxNzg4LCAwLjAyMTgwNiIsIFwKLSAgICAgICAgICAiMC4wMjEyMDksIDAuMDIxNjU3LCAwLjAyMTc3OCwgMC4wMjE4MTksIDAuMDIxODU2LCAwLjAyMTg3NCwgMC4wMjE4OTIiLCBcCi0gICAgICAgICAgIjAuMDIxMzQ5LCAwLjAyMTc5MiwgMC4wMjE5MTEsIDAuMDIxOTUxLCAwLjAyMTk4OCwgMC4wMjIwMDgsIDAuMDIyMDI2IiwgXAotICAgICAgICAgICIwLjAyMTQ4NCwgMC4wMjE5MzEsIDAuMDIyMDU1LCAwLjAyMjA5MiwgMC4wMjIxMywgMC4wMjIxNTEsIDAuMDIyMTciLCBcCi0gICAgICAgICAgIjAuMDIxNzA2LCAwLjAyMjEzOSwgMC4wMjIyNjcsIDAuMDIyMjk3LCAwLjAyMjMzNSwgMC4wMjIzNjQsIDAuMDIyMzc0IiwgXAotICAgICAgICAgICIwLjAyMTkxNywgMC4wMjIzNDgsIDAuMDIyNDY2LCAwLjAyMjUwOCwgMC4wMjI1MzcsIDAuMDIyNTY2LCAwLjAyMjU4NCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oU0UpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDc0MjExMzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA3NDA2ODY7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNzQyMTEzOwotICAgIGNsb2NrX2dhdGVfdGVzdF9waW4gOiB0cnVlOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNDg1MSwgMC4wMDQ4NDYsIDAuMDA0ODkzLCAwLjAwNDk3NywgMC4wMDUwNzksIDAuMDA1MjU2LCAwLjAwNTQzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA2NTgxLCAwLjAwNjU1OSwgMC4wMDY1ODYsIDAuMDA2NjM3LCAwLjAwNjcxNywgMC4wMDY4MzcsIDAuMDA2OTY4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFFIjsKLSAgICAgIHNkZl9jb25kIDogIkUgPT0gMSdiMCI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDI1LCAtMC4wMiwgLTAuMDEzNzUsIC0wLjAxMzc1LCAtMC4wMDc1LCAtMC4wMSwgLTAuMDA3NSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDE4NzUsIC0wLjAxNSwgLTAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAyNzUsIC0wLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzc1LCAtMC4wMzc1LCAtMC4wMzM3NSwgLTAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjA1NSwgLTAuMDUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDQzNzUsIC0wLjA0LCAtMC4wMzc1IiwgXAotICAgICAgICAgICItMC4wNjUsIC0wLjA2LCAtMC4wNTM3NSwgLTAuMDUzNzUsIC0wLjA0NzUsIC0wLjA1LCAtMC4wNDc1IiwgXAotICAgICAgICAgICItMC4wNzM3NSwgLTAuMDYyNSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA1NjI1LCAtMC4wNTI1LCAtMC4wNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAyNSwgLTAuMDIsIC0wLjAxMzc1LCAtMC4wMDc1LCAtMC4wMDEyNSwgMC4wMDI1LCAwLjAwNSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAtMC4wMDI1LCAwIiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA4NzUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxNSwgLTAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMjEyNSwgLTAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjA1ODc1LCAtMC4wNTM3NSwgLTAuMDQxMjUsIC0wLjA0MTI1LCAtMC4wMzUsIC0wLjAzMTI1LCAtMC4wMjI1IiwgXAotICAgICAgICAgICItMC4wNjc1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzM3NSwgLTAuMDMxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFFIjsKLSAgICAgIHNkZl9jb25kIDogIkUgPT0gMSdiMCI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDMxMjUsIDAuMDI2MjUsIDAuMDIsIDAuMDIsIDAuMDEzNzUsIDAuMDE2MjUsIDAuMDEzNzUiLCBcCi0gICAgICAgICAgIjAuMDM2MjUsIDAuMDMxMjUsIDAuMDMxMjUsIDAuMDI1LCAwLjAyNSwgMC4wMjEyNSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4wNDg3NSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDMzNzUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMDU1LCAwLjA1LCAwLjA0Mzc1LCAwLjA0Mzc1LCAwLjA0Mzc1LCAwLjA0LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIjAuMDYxMjUsIDAuMDU2MjUsIDAuMDU2MjUsIDAuMDUsIDAuMDUsIDAuMDQ2MjUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMDcxMjUsIDAuMDY2MjUsIDAuMDYsIDAuMDYsIDAuMDUzNzUsIDAuMDU2MjUsIDAuMDUzNzUiLCBcCi0gICAgICAgICAgIjAuMDgsIDAuMDY4NzUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNjI1LCAwLjA1ODc1LCAwLjA1NjI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDMxMjUsIDAuMDI2MjUsIDAuMDIsIDAuMDEzNzUsIDAuMDA3NSwgMC4wMDM3NSwgMC4wMDEyNSIsIFwKLSAgICAgICAgICAiMC4wMzYyNSwgMC4wMzEyNSwgMC4wMjUsIDAuMDE4NzUsIDAuMDEyNSwgMC4wMDg3NSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiMC4wNDg3NSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMTg3NSwgMC4wMTUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4wNTUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMjUsIDAuMDIxMjUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMDU1LCAwLjA1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDI3NSwgMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMDY1LCAwLjA2LCAwLjA0NzUsIDAuMDQ3NSwgMC4wNDEyNSwgMC4wMzc1LCAwLjAyODc1IiwgXAotICAgICAgICAgICIwLjA3Mzc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDUsIDAuMDQzNzUsIDAuMDQsIDAuMDM3NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IFRMQVROWDIgKgotICogLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoVExBVE5YMikgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAxLjAxMjY0OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIGxhdGNoIChRSU5ULE4wKSB7Ci0gICAgZGF0YV9pbiA6ICJEIjsKLSAgICBlbmFibGUgOiAiKCFHTikiOwotICB9Ci0gIHBpbihEKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2OTQ5Mzg7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjkzMzI2OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDY5NDkzODsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyODgsIDAuMDAwMjg5LCAwLjAwMDI5LCAwLjAwMDI5LCAwLjAwMDI5MSwgMC4wMDAyOTEsIDAuMDAwMjkxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzE3LCAwLjAwMDMwNiwgMC4wMDAzMDMsIDAuMDAwMzAyLCAwLjAwMDMwMSwgMC4wMDAzLCAwLjAwMDMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiR04iOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMTg3NSwgLTAuMDEzNzUsIC0wLjAwNzUsIC0wLjAwNzUsIC0wLjAwNzUsIC0wLjAwMzc1LCAtMC4wMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxODc1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDEyNSwgLTAuMDA4NzUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTg3NSwgLTAuMDE1LCAtMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDMxMjUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAyNSwgLTAuMDIxMjUsIC0wLjAxODc1IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDIxMjUsIC0wLjAxODc1IiwgXAotICAgICAgICAgICItMC4wNTI1LCAtMC4wNDEyNSwgLTAuMDQxMjUsIC0wLjAzNSwgLTAuMDM1LCAtMC4wMzEyNSwgLTAuMDI4NzUiLCBcCi0gICAgICAgICAgIi0wLjA1NSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzc1LCAtMC4wMzM3NSwgLTAuMDMxMjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMTI1LCAtMC4wMDEyNSwgMC4wMDUsIDAuMDExMjUsIDAuMDE3NSwgMC4wMjEyNSwgMC4wMyIsIFwKLSAgICAgICAgICAiLTAuMDE3NSwgLTAuMDA2MjUsIDAsIDAuMDA2MjUsIDAuMDEyNSwgMC4wMTYyNSwgMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMCwgMC4wMDYyNSwgMC4wMSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMCwgMC4wMDM3NSwgMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDI1LCAtMC4wMTI1LCAtMC4wMDYyNSwgLTAuMDA2MjUsIDAuMDAzNzUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA0LCAtMC4wMjg3NSwgLTAuMDIyNSwgLTAuMDE2MjUsIC0wLjAxLCAtMC4wMDYyNSwgMC4wMDI1IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA4NzUsIDAiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiR04iOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDMxMjUsIDAuMDI2MjUsIDAuMDIsIDAuMDIsIDAuMDIsIDAuMDIyNSwgMC4wMiIsIFwKLSAgICAgICAgICAiMC4wMzYyNSwgMC4wMzEyNSwgMC4wMzEyNSwgMC4wMjUsIDAuMDI1LCAwLjAyNzUsIDAuMDI1IiwgXAotICAgICAgICAgICIwLjA0MjUsIDAuMDM3NSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAzMTI1LCAwLjAzMzc1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICIwLjA0ODc1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDM3NSwgMC4wMzc1LCAwLjAzMzc1LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIjAuMDU1LCAwLjA1LCAwLjA0Mzc1LCAwLjA0Mzc1LCAwLjA0Mzc1LCAwLjA0LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIjAuMDU4NzUsIDAuMDUzNzUsIDAuMDUzNzUsIDAuMDQ3NSwgMC4wNDc1LCAwLjA0Mzc1LCAwLjA0MTI1IiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNTYyNSwgMC4wNSwgMC4wNTI1LCAwLjA1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDI1LCAwLjAxMzc1LCAwLjAwNzUsIDAuMDAxMjUsIC0wLjAwNSwgLTAuMDE1LCAtMC4wMTc1IiwgXAotICAgICAgICAgICIwLjAzLCAwLjAxODc1LCAwLjAxMjUsIDAuMDA2MjUsIDAsIC0wLjAxLCAtMC4wMTI1IiwgXAotICAgICAgICAgICIwLjAzNjI1LCAwLjAyNSwgMC4wMTg3NSwgMC4wMTI1LCAwLjAwNjI1LCAtMC4wMDM3NSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMDM2MjUsIDAuMDMxMjUsIDAuMDI1LCAwLjAxODc1LCAwLjAxMjUsIDAuMDAyNSwgMCIsIFwKLSAgICAgICAgICAiMC4wNDI1LCAwLjAzNzUsIDAuMDI1LCAwLjAxODc1LCAwLjAxMjUsIDAuMDA4NzUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMDQ2MjUsIDAuMDQxMjUsIDAuMDM1LCAwLjAyODc1LCAwLjAyMjUsIDAuMDEyNSwgMC4wMSIsIFwKLSAgICAgICAgICAiMC4wNTUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMjUsIDAuMDE1LCAwLjAxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEdOKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2MTg4NzM7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjE4ODczOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDYxODg2NjsKLSAgICBjbG9jayA6IHRydWU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyMjE3LCAwLjAwMjIxNiwgMC4wMDIzMSwgMC4wMDI0MDEsIDAuMDAyNTI2LCAwLjAwMjc2MywgMC4wMDI5NjIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDQwNTgsIDAuMDA0MDU5LCAwLjAwNDEzOCwgMC4wMDQyNSwgMC4wMDQzODIsIDAuMDA0NTQ5LCAwLjAwNDgyMyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJHTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQiOwotICAgICAgc2RmX2NvbmQgOiAiRCA9PSAxJ2IwIjsKLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjEwNTQ2MiwgMC4xMTM0NTUsIDAuMTIxNjExLCAwLjEyNzM2OCwgMC4xMzE5NzYsIDAuMTM4MDIyLCAwLjE0MjQyIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihRKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuNjg4NDE4OwotICAgIGZ1bmN0aW9uIDogIlFJTlQiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkQiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4MDc0MSwgMC4xNTgyOTcsIDAuMjE5OTU1LCAwLjI5NzM3NywgMC4zNzU0NjcsIDAuNDUyOTQsIDAuNTMwNDIyIiwgXAotICAgICAgICAgICIwLjA4NjgwMywgMC4xNjQxMSwgMC4yMjY0NTYsIDAuMzAzOTQyLCAwLjM4MTA3LCAwLjQ1ODIyMSwgMC41MzY0OTMiLCBcCi0gICAgICAgICAgIjAuMDkzNzA2LCAwLjE3MTI2MywgMC4yMzMzNTYsIDAuMzEwNDg2LCAwLjM4Nzk0NywgMC40NjUxMDYsIDAuNTQzMzg0IiwgXAotICAgICAgICAgICIwLjA5OTU4OCwgMC4xNzcxMzIsIDAuMjM5MjI1LCAwLjMxNjMzNiwgMC4zOTM4NiwgMC40NzA5NzcsIDAuNTQ5MjAzIiwgXAotICAgICAgICAgICIwLjEwNDQ4LCAwLjE4MTc3OCwgMC4yNDQxMzMsIDAuMzIxNjM1LCAwLjM5OTEwMSwgMC40NzY1OTgsIDAuNTU0MDcxIiwgXAotICAgICAgICAgICIwLjExMTE0NywgMC4xODg3MDMsIDAuMjUwMzczLCAwLjMyNzc1MSwgMC40MDU3MiwgMC40ODMxODcsIDAuNTYwMDM1IiwgXAotICAgICAgICAgICIwLjExNjMxMSwgMC4xOTM1NTYsIDAuMjU1NzgyLCAwLjMzMzI5MywgMC40MTA3NTMsIDAuNDg4MjU4LCAwLjU2NTA0MSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzcyMDEsIDAuMTk5NDY5LCAwLjMyOTE4NSwgMC40OTE4NzcsIDAuNjU1NDMxLCAwLjgxODEyLCAwLjk4MDg4NyIsIFwKLSAgICAgICAgICAiMC4wMzcyMzQsIDAuMTk5MDI1LCAwLjMyOTc1MywgMC40OTI1MDMsIDAuNjU0NTA5LCAwLjgxNzMyMiwgMC45ODA5NjYiLCBcCi0gICAgICAgICAgIjAuMDM3NDE1LCAwLjE5OTQzMSwgMC4zMjk3NSwgMC40OTE1ODQsIDAuNjU0NjEsIDAuODE2OTMxLCAwLjk4MTMxNCIsIFwKLSAgICAgICAgICAiMC4wMzczMzksIDAuMTk5NTksIDAuMzI5OTg2LCAwLjQ5MTU5LCAwLjY1NDU1NiwgMC44MTY5MTMsIDAuOTgxMTc5IiwgXAotICAgICAgICAgICIwLjAzNzM4MiwgMC4xOTkyOTUsIDAuMzI5OTY2LCAwLjQ5MjgzNiwgMC42NTU1MiwgMC44MTgzMDcsIDAuOTgxMDA2IiwgXAotICAgICAgICAgICIwLjAzNzMzOSwgMC4xOTk1ODYsIDAuMzI5MzAyLCAwLjQ5MTg4NSwgMC42NTUzNTQsIDAuODE4MDAzLCAwLjk3OTgyOCIsIFwKLSAgICAgICAgICAiMC4wMzczMSwgMC4xOTkyNCwgMC4zMjk1ODYsIDAuNDkyMzk3LCAwLjY1NTEwNywgMC44MTc3NzcsIDAuOTc5NzU1Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4MTk1NiwgMC4xNTgyMiwgMC4yMTkwNDIsIDAuMjk1MDQ5LCAwLjM3MTA3NywgMC40NDcxOTksIDAuNTIzMTI4IiwgXAotICAgICAgICAgICIwLjA4NzY2NiwgMC4xNjM4NTgsIDAuMjI0Njk2LCAwLjMwMDcxOSwgMC4zNzY3NjEsIDAuNDUyOTM5LCAwLjUyOTAwOSIsIFwKLSAgICAgICAgICAiMC4wOTM4NTQsIDAuMTcwMDkxLCAwLjIzMDgyNywgMC4zMDY4ODksIDAuMzgyOTgsIDAuNDU5MDY2LCAwLjUzNTE5NyIsIFwKLSAgICAgICAgICAiMC4wOTkxNjQsIDAuMTc1MzcsIDAuMjM2MiwgMC4zMTIxODUsIDAuMzg4MjcyLCAwLjQ2NDQ0MywgMC41NDA1MjEiLCBcCi0gICAgICAgICAgIjAuMTAzNDA5LCAwLjE3OTU1MiwgMC4yNDA0NzMsIDAuMzE2NDgsIDAuMzkyNTY2LCAwLjQ2ODY2OCwgMC41NDQ4NCIsIFwKLSAgICAgICAgICAiMC4xMDkyOTIsIDAuMTg1NDE5LCAwLjI0NjMwNywgMC4zMjIyODQsIDAuMzk4Mzk3LCAwLjQ3NDQ4LCAwLjU1MDUyMiIsIFwKLSAgICAgICAgICAiMC4xMTM2NDIsIDAuMTg5NzAyLCAwLjI1MDYwNywgMC4zMjY2MiwgMC40MDI2ODksIDAuNDc4ODM0LCAwLjU1NDk3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzNjExOCwgMC4xOTM1MjcsIDAuMzIwMDQ5LCAwLjQ3NzMyMSwgMC42MzQ2MSwgMC43OTMxNTMsIDAuOTQ5OTk3IiwgXAotICAgICAgICAgICIwLjAzNjExLCAwLjE5MzUxNywgMC4zMjAwNjEsIDAuNDc4MzU3LCAwLjYzNTg3OSwgMC43OTMyMDksIDAuOTUyNjY3IiwgXAotICAgICAgICAgICIwLjAzNjEyMywgMC4xOTM1MiwgMC4zMTk0NjEsIDAuNDc3NjMxLCAwLjYzNTkwOCwgMC43OTM4NywgMC45NTI3MTQiLCBcCi0gICAgICAgICAgIjAuMDM2MTY3LCAwLjE5MzUyMywgMC4zMjAwOTEsIDAuNDc3NDg3LCAwLjYzNTM0LCAwLjc5MzA2MiwgMC45NTI2MzEiLCBcCi0gICAgICAgICAgIjAuMDM2MTYsIDAuMTkzNDEzLCAwLjMxOTk1NywgMC40Nzc0ODMsIDAuNjM2MTUsIDAuNzk0MjU1LCAwLjk1MDIwNCIsIFwKLSAgICAgICAgICAiMC4wMzYxNTYsIDAuMTkzMzYsIDAuMzE5ODk0LCAwLjQ3NzQ1MiwgMC42MzYwMjYsIDAuNzk0MTEzLCAwLjk1MDMwMyIsIFwKLSAgICAgICAgICAiMC4wMzYxNzEsIDAuMTkzMzA3LCAwLjMxOTc1OSwgMC40Nzc3NzMsIDAuNjM1NTAzLCAwLjc5Mzk3OCwgMC45NTExMjciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiR04iOwotICAgICAgdGltaW5nX3NlbnNlIDogbm9uX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiBmYWxsaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5NjMyMSwgMC4xNzM4OTEsIDAuMjM1NTUzLCAwLjMxMjk3MiwgMC4zOTEwMTYsIDAuNDY4NTI3LCAwLjU0NTIzOSIsIFwKLSAgICAgICAgICAiMC4xMDQxNjIsIDAuMTgxNzU4LCAwLjI0Mzg3LCAwLjMyMTM5MSwgMC4zOTg0NjksIDAuNDc1NjAzLCAwLjU1Mzg3NyIsIFwKLSAgICAgICAgICAiMC4xMTI0NTEsIDAuMTkwMDUxLCAwLjI1MjE2MSwgMC4zMjkzMTUsIDAuNDA2NzE5LCAwLjQ4MzkxNywgMC41NjIyNTciLCBcCi0gICAgICAgICAgIjAuMTE4ODc5LCAwLjE5NjI4NiwgMC4yNTg1NDIsIDAuMzM1NTAyLCAwLjQxMzE4NCwgMC40OTAyOTcsIDAuNTY4NTc4IiwgXAotICAgICAgICAgICIwLjEyMzk2MSwgMC4yMDE1NTEsIDAuMjYzNjMsIDAuMzQwNTcsIDAuNDE4MjQyLCAwLjQ5NjE0NywgMC41NzM2NTIiLCBcCi0gICAgICAgICAgIjAuMTMwNTE5LCAwLjIwNzc5NiwgMC4yNjk3NDQsIDAuMzQ3MTcyLCAwLjQyNDc1MywgMC41MDE5MDgsIDAuNTc5NjUxIiwgXAotICAgICAgICAgICIwLjEzNTUyMywgMC4yMTMwMjMsIDAuMjc0NzA5LCAwLjM1MjExNiwgMC40Mjk1MDgsIDAuNTA3MTEsIDAuNTg1MTQ4Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzNzI2OSwgMC4xOTk0NjcsIDAuMzI5MjQ0LCAwLjQ5MTgzNCwgMC42NTU3NjksIDAuODE4NjM5LCAwLjk4MDI1NiIsIFwKLSAgICAgICAgICAiMC4wMzcyMDcsIDAuMTk5NDgxLCAwLjMyOTk2OCwgMC40OTI4ODMsIDAuNjU0NTEsIDAuODE2OTA5LCAwLjk4MTE1MSIsIFwKLSAgICAgICAgICAiMC4wMzcxOTgsIDAuMTk5Mzk1LCAwLjMyOTk4OCwgMC40OTE5ODYsIDAuNjU0NTg5LCAwLjgxNzE0NiwgMC45ODE2MyIsIFwKLSAgICAgICAgICAiMC4wMzcyMDYsIDAuMTk5MzEyLCAwLjMyOTk2MiwgMC40OTE4MDgsIDAuNjU0NTc3LCAwLjgxNjg4NSwgMC45ODEzMzQiLCBcCi0gICAgICAgICAgIjAuMDM3MzUzLCAwLjE5OTM4MSwgMC4zMjk5ODksIDAuNDkxNzk1LCAwLjY1NDU2MiwgMC44MTg2MzEsIDAuOTgxMzc0IiwgXAotICAgICAgICAgICIwLjAzNzMyMywgMC4xOTkzNzgsIDAuMzI5MzIzLCAwLjQ5MTk2NywgMC42NTQ1NTQsIDAuODE2ODk1LCAwLjk3OTY0OSIsIFwKLSAgICAgICAgICAiMC4wMzcyMjEsIDAuMTk5NTI2LCAwLjMyOTQ5LCAwLjQ5MTkxMiwgMC42NTQ3MjQsIDAuODE3NDUyLCAwLjk4MTE4OCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDU0NjIsIDAuMTgxNzEyLCAwLjI0MjU1LCAwLjMxODU1NiwgMC4zOTQ2MjEsIDAuNDcwNzk5LCAwLjU0Njk0OCIsIFwKLSAgICAgICAgICAiMC4xMTM0NTUsIDAuMTg5NjUzLCAwLjI1MDQyNCwgMC4zMjY0OTQsIDAuNDAyNTgzLCAwLjQ3ODcxNSwgMC41NTQ3NjkiLCBcCi0gICAgICAgICAgIjAuMTIxNjExLCAwLjE5Nzg4NCwgMC4yNTg3MDMsIDAuMzM0Njk0LCAwLjQxMDc4NSwgMC40ODY5NDQsIDAuNTYyOTkzIiwgXAotICAgICAgICAgICIwLjEyNzM2OCwgMC4yMDM0MzQsIDAuMjY0MzQ2LCAwLjM0MDQwOCwgMC40MTY0OTcsIDAuNDkyNTA3LCAwLjU2ODcxOSIsIFwKLSAgICAgICAgICAiMC4xMzE5NzYsIDAuMjA4MjYsIDAuMjY5MDg2LCAwLjM0NTExNywgMC40MjExMjEsIDAuNDk3Mjc5LCAwLjU3MzM5NCIsIFwKLSAgICAgICAgICAiMC4xMzgwMjIsIDAuMjE0MTQyLCAwLjI3NTAxLCAwLjM1MTA4NSwgMC40MjcxNTUsIDAuNTAzMjY0LCAwLjU3OTMzNiIsIFwKLSAgICAgICAgICAiMC4xNDI0MiwgMC4yMTg1ODUsIDAuMjc5MzA1LCAwLjM1NTQxNiwgMC40MzE0NiwgMC41MDc2NzIsIDAuNTgzNzc3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzNjEzOSwgMC4xOTM1MTksIDAuMzIwMDY3LCAwLjQ3NzQ3NSwgMC42MzU2NzQsIDAuNzkzMDc2LCAwLjk1MTAzMSIsIFwKLSAgICAgICAgICAiMC4wMzYxMTIsIDAuMTkzNDk1LCAwLjMxOTc2OCwgMC40Nzc0MzgsIDAuNjM1NTcyLCAwLjc5NDUzLCAwLjk1MjYwNyIsIFwKLSAgICAgICAgICAiMC4wMzYxMzQsIDAuMTkzNTE3LCAwLjMyMDA1OCwgMC40Nzc3NzIsIDAuNjM1NDYsIDAuNzkzMTMxLCAwLjk1MjY4NiIsIFwKLSAgICAgICAgICAiMC4wMzYxMjYsIDAuMTkzMTkyLCAwLjMxOTc2MywgMC40Nzc0OTMsIDAuNjM2Mzk2LCAwLjc5MzkyNSwgMC45NTI2NTQiLCBcCi0gICAgICAgICAgIjAuMDM2MTQyLCAwLjE5MzUwMywgMC4zMjAwMjcsIDAuNDc4MzUxLCAwLjYzNTc2NCwgMC43OTQ1MzEsIDAuOTUyNjY1IiwgXAotICAgICAgICAgICIwLjAzNjEyOSwgMC4xOTMyMjYsIDAuMzE5NDk3LCAwLjQ3NzY4MSwgMC42MzU1MzgsIDAuNzk0MzM3LCAwLjk1MTkxMyIsIFwKLSAgICAgICAgICAiMC4wMzYxNDcsIDAuMTkzNDk2LCAwLjMxOTU5NywgMC40NzgyNTEsIDAuNjM1NDksIDAuNzkzMzUyLCAwLjk1MTAzMiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkQiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNTMyOCwgMC4wMDUzOSwgMC4wMDUzOTgsIDAuMDA1NDAyLCAwLjAwNTQwNCwgMC4wMDU0MDIsIDAuMDA1NDA3IiwgXAotICAgICAgICAgICIwLjAwNTMxMiwgMC4wMDUzNzQsIDAuMDA1MzgyLCAwLjAwNTM4NiwgMC4wMDUzOTMsIDAuMDA1MzksIDAuMDA1Mzg0IiwgXAotICAgICAgICAgICIwLjAwNTMxNCwgMC4wMDUzNzksIDAuMDA1Mzg3LCAwLjAwNTM5MiwgMC4wMDUzOTcsIDAuMDA1Mzk2LCAwLjAwNTM5OSIsIFwKLSAgICAgICAgICAiMC4wMDUzNTEsIDAuMDA1NDE1LCAwLjAwNTQyNCwgMC4wMDU0MjksIDAuMDA1NDMxLCAwLjAwNTQzMywgMC4wMDU0MzQiLCBcCi0gICAgICAgICAgIjAuMDA1MzksIDAuMDA1NDUzLCAwLjAwNTQ2NCwgMC4wMDU0NjgsIDAuMDA1NDcxLCAwLjAwNTQ3MiwgMC4wMDU0NzQiLCBcCi0gICAgICAgICAgIjAuMDA1NDc4LCAwLjAwNTUzOCwgMC4wMDU1NDcsIDAuMDA1NTUyLCAwLjAwNTU1NCwgMC4wMDU1NTYsIDAuMDA1NTU4IiwgXAotICAgICAgICAgICIwLjAwNTU0NiwgMC4wMDU2MDYsIDAuMDA1NjE1LCAwLjAwNTYxOSwgMC4wMDU2MTksIDAuMDA1NjIxLCAwLjAwNTYyNCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNTcwMiwgMC4wMDU3NjgsIDAuMDA1Nzc3LCAwLjAwNTc4MSwgMC4wMDU3ODQsIDAuMDA1Nzg1LCAwLjAwNTc4NiIsIFwKLSAgICAgICAgICAiMC4wMDU2ODksIDAuMDA1NzU2LCAwLjAwNTc2NCwgMC4wMDU3NjksIDAuMDA1NzY5LCAwLjAwNTc3MiwgMC4wMDU3NzEiLCBcCi0gICAgICAgICAgIjAuMDA1NjkzLCAwLjAwNTc2MiwgMC4wMDU3NzIsIDAuMDA1Nzc1LCAwLjAwNTc3OCwgMC4wMDU3NzksIDAuMDA1NzgiLCBcCi0gICAgICAgICAgIjAuMDA1NzE3LCAwLjAwNTc4NCwgMC4wMDU3OTMsIDAuMDA1Nzk3LCAwLjAwNTgsIDAuMDA1ODAyLCAwLjAwNTgwMSIsIFwKLSAgICAgICAgICAiMC4wMDU3NjcsIDAuMDA1ODMsIDAuMDA1ODQsIDAuMDA1ODQ0LCAwLjAwNTg0NiwgMC4wMDU4NDksIDAuMDA1ODQ5IiwgXAotICAgICAgICAgICIwLjAwNTgyNiwgMC4wMDU4OTMsIDAuMDA1OTAxLCAwLjAwNTkwNiwgMC4wMDU5MDgsIDAuMDA1OTExLCAwLjAwNTkxMSIsIFwKLSAgICAgICAgICAiMC4wMDU5MSwgMC4wMDU5NzYsIDAuMDA1OTg1LCAwLjAwNTk5LCAwLjAwNTk5MywgMC4wMDU5OTUsIDAuMDA1OTk1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiR04iOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNzI5LCAwLjAwNzMyNCwgMC4wMDczMjEsIDAuMDA3MzE4LCAwLjAwNzMxNywgMC4wMDczMTUsIDAuMDA3MzE0IiwgXAotICAgICAgICAgICIwLjAwNzI4NiwgMC4wMDczMjEsIDAuMDA3MzE4LCAwLjAwNzMxNSwgMC4wMDczMTQsIDAuMDA3MzEyLCAwLjAwNzMxMyIsIFwKLSAgICAgICAgICAiMC4wMDczNDEsIDAuMDA3Mzc1LCAwLjAwNzM3MiwgMC4wMDczNjksIDAuMDA3MzY3LCAwLjAwNzM2NiwgMC4wMDczNjUiLCBcCi0gICAgICAgICAgIjAuMDA3Mzg3LCAwLjAwNzQyMywgMC4wMDc0MiwgMC4wMDc0MTYsIDAuMDA3NDE0LCAwLjAwNzQxMywgMC4wMDc0MSIsIFwKLSAgICAgICAgICAiMC4wMDc0MzcsIDAuMDA3NDczLCAwLjAwNzQ3LCAwLjAwNzQ2NiwgMC4wMDc0NjUsIDAuMDA3NDYyLCAwLjAwNzQ2IiwgXAotICAgICAgICAgICIwLjAwNzU0OSwgMC4wMDc1ODUsIDAuMDA3NTc5LCAwLjAwNzU3NSwgMC4wMDc1NzMsIDAuMDA3NTcsIDAuMDA3NTY5IiwgXAotICAgICAgICAgICIwLjAwNzY0MiwgMC4wMDc2NzksIDAuMDA3Njc3LCAwLjAwNzY3MywgMC4wMDc2NjgsIDAuMDA3NjY4LCAwLjAwNzY2NyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNzQzLCAwLjAwNzQ5NSwgMC4wMDc1MDQsIDAuMDA3NTA4LCAwLjAwNzUxLCAwLjAwNzUxMiwgMC4wMDc1MTIiLCBcCi0gICAgICAgICAgIjAuMDA3NDI1LCAwLjAwNzQ5NCwgMC4wMDc1MDIsIDAuMDA3NTA3LCAwLjAwNzUxMSwgMC4wMDc1MTEsIDAuMDA3NTEzIiwgXAotICAgICAgICAgICIwLjAwNzQ2MywgMC4wMDc1MzEsIDAuMDA3NTM5LCAwLjAwNzU0MiwgMC4wMDc1NDUsIDAuMDA3NTQ2LCAwLjAwNzU1IiwgXAotICAgICAgICAgICIwLjAwNzUyMSwgMC4wMDc1ODgsIDAuMDA3NTk2LCAwLjAwNzYsIDAuMDA3NjAyLCAwLjAwNzYwMywgMC4wMDc2MDQiLCBcCi0gICAgICAgICAgIjAuMDA3NTc0LCAwLjAwNzYzNCwgMC4wMDc2NDEsIDAuMDA3NjQ1LCAwLjAwNzY1NiwgMC4wMDc2NDgsIDAuMDA3NjQ5IiwgXAotICAgICAgICAgICIwLjAwNzY3NSwgMC4wMDc3NDMsIDAuMDA3NzUsIDAuMDA3NzU0LCAwLjAwNzc1NSwgMC4wMDc3NTYsIDAuMDA3NzU3IiwgXAotICAgICAgICAgICIwLjAwNzc2OCwgMC4wMDc4MzQsIDAuMDA3ODQsIDAuMDA3ODQyLCAwLjAwNzg0MiwgMC4wMDc4NDMsIDAuMDA3ODQzIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihRTikgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjY4MTMyNTsKLSAgICBmdW5jdGlvbiA6ICJOMCI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc3NjE2LCAwLjE1NTY3MiwgMC4yMTczODUsIDAuMjk0NTg5LCAwLjM3MTYzNiwgMC40NDg3NjksIDAuNTI1NzEyIiwgXAotICAgICAgICAgICIwLjA4MzMzMiwgMC4xNjEzOTEsIDAuMjIzMTA5LCAwLjMwMDI4MSwgMC4zNzczODksIDAuNDU0NTgyLCAwLjUzMTY2MSIsIFwKLSAgICAgICAgICAiMC4wODk1NDksIDAuMTY3NjE0LCAwLjIyOTM0MiwgMC4zMDY0NjQsIDAuMzgzNjE0LCAwLjQ2MDczNCwgMC41Mzc4NTIiLCBcCi0gICAgICAgICAgIjAuMDk0ODQyLCAwLjE3MjkwMSwgMC4yMzQ2MjYsIDAuMzExNzk2LCAwLjM4ODkyNiwgMC40NjYxLCAwLjU0MzE4NiIsIFwKLSAgICAgICAgICAiMC4wOTkxMzUsIDAuMTc3MTksIDAuMjM4OTEsIDAuMzE2MDk5LCAwLjM5MzIwNywgMC40NzAzMjMsIDAuNTQ3NTE2IiwgXAotICAgICAgICAgICIwLjEwNTAzOSwgMC4xODMxMDcsIDAuMjQ0ODU5LCAwLjMyMTk3NiwgMC4zOTkxMjEsIDAuNDc2MjE2LCAwLjU1MzMyNyIsIFwKLSAgICAgICAgICAiMC4xMDk0MzEsIDAuMTg3NTA0LCAwLjI0OTIwNCwgMC4zMjYzNDYsIDAuNDAzNDY0LCAwLjQ4MDYxNywgMC41NTc3NjgiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQyNTU0LCAwLjIwMDY3NywgMC4zMzA0NiwgMC40OTIzMDgsIDAuNjU0NTM1LCAwLjgxNzU2MSwgMC45NzkyMSIsIFwKLSAgICAgICAgICAiMC4wNDI1NDgsIDAuMjAwNjQ3LCAwLjMzMDQ2OCwgMC40OTMyNjcsIDAuNjU1MzQ4LCAwLjgxNzU1MywgMC45ODE2MzQiLCBcCi0gICAgICAgICAgIjAuMDQyNTUyLCAwLjIwMDY3MSwgMC4zMjk4NDksIDAuNDkyNTI3LCAwLjY1NTM3MSwgMC44MTc5OTgsIDAuOTgxNjc3IiwgXAotICAgICAgICAgICIwLjA0MjYyMywgMC4yMDA2ODIsIDAuMzMwNDg1LCAwLjQ5MjM1MSwgMC42NTQ5MjEsIDAuODE3NTE0LCAwLjk4MTYwMyIsIFwKLSAgICAgICAgICAiMC4wNDI3NCwgMC4yMDA1MjQsIDAuMzMwNDA1LCAwLjQ5MjM1NywgMC42NTU4MTYsIDAuODE4NjE2LCAwLjk3OTc4IiwgXAotICAgICAgICAgICIwLjA0Mjg0OCwgMC4yMDA0NzcsIDAuMzMwMzU0LCAwLjQ5MjM3MywgMC42NTU3MzQsIDAuODE4NTExLCAwLjk3OTkxIiwgXAotICAgICAgICAgICIwLjA0MjkzLCAwLjIwMDQzMywgMC4zMzAyNCwgMC40OTI4NzEsIDAuNjU1MTEzLCAwLjgxODQ0NCwgMC45ODAwNjQiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc2NDM5LCAwLjE1MzM3NCwgMC4yMTQwNTgsIDAuMjg5OTAzLCAwLjM2NTY3MSwgMC40NDE0NDksIDAuNTE3MjgyIiwgXAotICAgICAgICAgICIwLjA4MjQ5OCwgMC4xNTk0MjksIDAuMjIwMDg4LCAwLjI5NTg3NywgMC4zNzE3MTUsIDAuNDQ3NTg0LCAwLjUyMzMxOCIsIFwKLSAgICAgICAgICAiMC4wODk0MjIsIDAuMTY2MzYsIDAuMjI3MDIxLCAwLjMwMjg1LCAwLjM3ODY1LCAwLjQ1NDQ5OSwgMC41MzAyNiIsIFwKLSAgICAgICAgICAiMC4wOTUyNzgsIDAuMTcyMjE0LCAwLjIzMjg3NCwgMC4zMDg3MDcsIDAuMzg0NDkyLCAwLjQ2MDM1NSwgMC41MzYwODUiLCBcCi0gICAgICAgICAgIjAuMTAwMTg4LCAwLjE3NzEyNCwgMC4yMzc3ODYsIDAuMzEzNTk1LCAwLjM4OTQsIDAuNDY1MTgyLCAwLjU0MDk5MyIsIFwKLSAgICAgICAgICAiMC4xMDY4ODEsIDAuMTgzODIxLCAwLjI0NDUyMywgMC4zMjAzMzIsIDAuMzk2MDc4LCAwLjQ3MTg2MywgMC41NDc2NzUiLCBcCi0gICAgICAgICAgIjAuMTEyMDQ4LCAwLjE4ODk5NSwgMC4yNDk2NDEsIDAuMzI1NDYzLCAwLjQwMTI3NCwgMC40NzcwNTMsIDAuNTUyODQ4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0MTM5LCAwLjE5NDMwNCwgMC4zMTkyOTYsIDAuNDc2Mjk1LCAwLjYzNDk3NywgMC43OTI0OTIsIDAuOTUwMTU0IiwgXAotICAgICAgICAgICIwLjA0MTM5NSwgMC4xOTM5MTksIDAuMzE5ODUzLCAwLjQ3NzI2MywgMC42MzQxMzYsIDAuNzkwOTYsIDAuOTUwMjEiLCBcCi0gICAgICAgICAgIjAuMDQxNDM5LCAwLjE5NDM0OSwgMC4zMTk4NTUsIDAuNDc2MDkzLCAwLjYzNDE4OSwgMC43OTExMTIsIDAuOTUwMjEyIiwgXAotICAgICAgICAgICIwLjA0MTUwNSwgMC4xOTQzNzksIDAuMzE5ODY1LCAwLjQ3NjE1OSwgMC42MzQwODYsIDAuNzkxMDcsIDAuOTUwMTI5IiwgXAotICAgICAgICAgICIwLjA0MTU0NCwgMC4xOTQxNDYsIDAuMzE5ODM3LCAwLjQ3NzIyNCwgMC42MzQ3NzIsIDAuNzkyMzQ4LCAwLjk0OTk1OSIsIFwKLSAgICAgICAgICAiMC4wNDE2NTIsIDAuMTk0Mzc2LCAwLjMxOTMyNywgMC40NzY1NTUsIDAuNjM0Njk1LCAwLjc5MjI0NCwgMC45NDg5NTkiLCBcCi0gICAgICAgICAgIjAuMDQxNzE1LCAwLjE5NDEwMywgMC4zMTk3MjIsIDAuNDc3MTUyLCAwLjYzNDc2LCAwLjc5MjI3NSwgMC45NDg3MTEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiR04iOwotICAgICAgdGltaW5nX3NlbnNlIDogbm9uX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiBmYWxsaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwMTE2MiwgMC4xNzkyMjksIDAuMjQwOTQ5LCAwLjMxODEzOSwgMC4zOTUyNDQsIDAuNDcyNDMzLCAwLjU0OTYwOCIsIFwKLSAgICAgICAgICAiMC4xMDkxMzQsIDAuMTg3MTkxLCAwLjI0ODkxLCAwLjMyNjEwNywgMC40MDMyMzcsIDAuNDgwMzY3LCAwLjU1NzQzMyIsIFwKLSAgICAgICAgICAiMC4xMTczMjIsIDAuMTk1MzgyLCAwLjI1NzEwNCwgMC4zMzQyNzIsIDAuNDExNDE5LCAwLjQ4ODU4LCAwLjU2NTYzNiIsIFwKLSAgICAgICAgICAiMC4xMjMwMzUsIDAuMjAxMTAxLCAwLjI2MjgwMSwgMC4zMzk5ODcsIDAuNDE3MTAyLCAwLjQ5NDExOCwgMC41NzEzNTIiLCBcCi0gICAgICAgICAgIjAuMTI3NjkxLCAwLjIwNTc3OSwgMC4yNjc0OTQsIDAuMzQ0NjcyLCAwLjQyMTc1OSwgMC40OTg5MDgsIDAuNTc2MDM4IiwgXAotICAgICAgICAgICIwLjEzMzczOSwgMC4yMTE3NjgsIDAuMjczNTM4LCAwLjM1MDYzNywgMC40Mjc3NTIsIDAuNTA0ODczLCAwLjU4MjAwMyIsIFwKLSAgICAgICAgICAiMC4xMzgwNzgsIDAuMjE2MTAxLCAwLjI3Nzg0NSwgMC4zNTQ5NjcsIDAuNDMyMDcsIDAuNTA5MzE0LCAwLjU4NjQxOCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDI2MDksIDAuMjAwNjUxLCAwLjMzMDQ3MiwgMC40OTIzOTksIDAuNjU1MjI4LCAwLjgxNzUyNSwgMC45ODAxODgiLCBcCi0gICAgICAgICAgIjAuMDQyNTk1LCAwLjIwMDYzMSwgMC4zMzAwNCwgMC40OTIzNjMsIDAuNjU1MTI2LCAwLjgxODgwOCwgMC45ODE1OTYiLCBcCi0gICAgICAgICAgIjAuMDQyNTkyLCAwLjIwMDY4MywgMC4zMzA0NjgsIDAuNDkyNjI5LCAwLjY1NDk1MywgMC44MTc1NTIsIDAuOTgxNjU1IiwgXAotICAgICAgICAgICIwLjA0MjYwNiwgMC4yMDAzMDgsIDAuMzMwMDM0LCAwLjQ5MjM0OCwgMC42NTU5OTQsIDAuODE4Mzk4LCAwLjk4MTYzNSIsIFwKLSAgICAgICAgICAiMC4wNDI2LCAwLjIwMDY1MiwgMC4zMzA0NDEsIDAuNDkzMjYzLCAwLjY1NTI3LCAwLjgxODgxNCwgMC45ODE2NDEiLCBcCi0gICAgICAgICAgIjAuMDQyNjQzLCAwLjIwMDMzNywgMC4zMjk4NjgsIDAuNDkyNTU5LCAwLjY1NTE2MywgMC44MTg2ODIsIDAuOTgwNzM3IiwgXAotICAgICAgICAgICIwLjA0MjYxNCwgMC4yMDA2NjUsIDAuMzI5OSwgMC40OTMxOTksIDAuNjU1MTYzLCAwLjgxNzU3NywgMC45ODAxNTkiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDkxOTk5LCAwLjE2ODgzOCwgMC4yMjk0NzQsIDAuMzA1MzE1LCAwLjM4MTAxNiwgMC40NTY4MzYsIDAuNTMyNjYxIiwgXAotICAgICAgICAgICIwLjA5OTg3LCAwLjE3NjcxMSwgMC4yMzczMzYsIDAuMzEzMTIyLCAwLjM4ODkyNiwgMC40NjQ3NzMsIDAuNTQwNTEzIiwgXAotICAgICAgICAgICIwLjEwODE1OSwgMC4xODUsIDAuMjQ1NjI1LCAwLjMyMTQyMiwgMC4zOTcyMTYsIDAuNDczMDgsIDAuNTQ4Nzk3IiwgXAotICAgICAgICAgICIwLjExNDU4NSwgMC4xOTE0MjYsIDAuMjUyMDUyLCAwLjMyNzg4MSwgMC40MDM2NCwgMC40Nzk0OSwgMC41NTUyMzQiLCBcCi0gICAgICAgICAgIjAuMTE5NjQyLCAwLjE5NjQ4NywgMC4yNTcxMDksIDAuMzMyOTM2LCAwLjQwODY5NCwgMC40ODQ0NjcsIDAuNTYwMjc5IiwgXAotICAgICAgICAgICIwLjEyNjIyNiwgMC4yMDMwNjYsIDAuMjYzNjg2LCAwLjMzOTU1OCwgMC40MTUyNjcsIDAuNDkxMTExLCAwLjU2NjgzMSIsIFwKLSAgICAgICAgICAiMC4xMzExOTgsIDAuMjA4MDM3LCAwLjI2ODY3MiwgMC4zNDQ0OTUsIDAuNDIwMjkyLCAwLjQ5NjAzMiwgMC41NzE3OTUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQxNDU3LCAwLjE5NDMwNiwgMC4zMTkzODgsIDAuNDc2NjA5LCAwLjYzNDg4NiwgMC43OTI1MjUsIDAuOTQ4NDMxIiwgXAotICAgICAgICAgICIwLjA0MTQxNiwgMC4xOTQzMTQsIDAuMzE5ODQ3LCAwLjQ3NzI3MywgMC42MzQxNDUsIDAuNzkxMDU2LCAwLjk1MDA4OSIsIFwKLSAgICAgICAgICAiMC4wNDE0MjIsIDAuMTk0MzE3LCAwLjMxOTg0NSwgMC40NzY3MzIsIDAuNjM0MjE4LCAwLjc5MDkwNCwgMC45NTAyNTgiLCBcCi0gICAgICAgICAgIjAuMDQxNDE5LCAwLjE5NDIxNSwgMC4zMTk4NTEsIDAuNDc2Mzk4LCAwLjYzNDEwMiwgMC43OTEwMjYsIDAuOTUwMjE4IiwgXAotICAgICAgICAgICIwLjA0MTQ2OCwgMC4xOTQzMDQsIDAuMzE5ODUsIDAuNDc2Mzg3LCAwLjYzNDExOCwgMC43OTI1MTEsIDAuOTUwMjE1IiwgXAotICAgICAgICAgICIwLjA0MTUzNiwgMC4xOTQxNjksIDAuMzE5MzE3LCAwLjQ3NjUyMywgMC42MzQxMzIsIDAuNzkxMDM4LCAwLjk0ODkyIiwgXAotICAgICAgICAgICIwLjA0MTQ1NywgMC4xOTQzNDksIDAuMzE5Mzg4LCAwLjQ3NjMxLCAwLjYzMzY0MiwgMC43OTE2OTgsIDAuOTQ5OTkxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1NzAyLCAwLjAwNTc2OCwgMC4wMDU3NzcsIDAuMDA1NzgxLCAwLjAwNTc4NCwgMC4wMDU3ODUsIDAuMDA1Nzg2IiwgXAotICAgICAgICAgICIwLjAwNTY4OSwgMC4wMDU3NTYsIDAuMDA1NzY0LCAwLjAwNTc2OSwgMC4wMDU3NjksIDAuMDA1NzcyLCAwLjAwNTc3MSIsIFwKLSAgICAgICAgICAiMC4wMDU2OTMsIDAuMDA1NzYyLCAwLjAwNTc3MiwgMC4wMDU3NzUsIDAuMDA1Nzc4LCAwLjAwNTc3OSwgMC4wMDU3OCIsIFwKLSAgICAgICAgICAiMC4wMDU3MTcsIDAuMDA1Nzg0LCAwLjAwNTc5MywgMC4wMDU3OTcsIDAuMDA1OCwgMC4wMDU4MDIsIDAuMDA1ODAxIiwgXAotICAgICAgICAgICIwLjAwNTc2NywgMC4wMDU4MywgMC4wMDU4NCwgMC4wMDU4NDQsIDAuMDA1ODQ2LCAwLjAwNTg0OSwgMC4wMDU4NDkiLCBcCi0gICAgICAgICAgIjAuMDA1ODI2LCAwLjAwNTg5MywgMC4wMDU5MDEsIDAuMDA1OTA2LCAwLjAwNTkwOCwgMC4wMDU5MTEsIDAuMDA1OTExIiwgXAotICAgICAgICAgICIwLjAwNTkxLCAwLjAwNTk3NiwgMC4wMDU5ODUsIDAuMDA1OTksIDAuMDA1OTkzLCAwLjAwNTk5NSwgMC4wMDU5OTUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDUzMjgsIDAuMDA1MzksIDAuMDA1Mzk4LCAwLjAwNTQwMiwgMC4wMDU0MDQsIDAuMDA1NDAyLCAwLjAwNTQwNyIsIFwKLSAgICAgICAgICAiMC4wMDUzMTIsIDAuMDA1Mzc0LCAwLjAwNTM4MiwgMC4wMDUzODYsIDAuMDA1MzkzLCAwLjAwNTM5LCAwLjAwNTM4NCIsIFwKLSAgICAgICAgICAiMC4wMDUzMTQsIDAuMDA1Mzc5LCAwLjAwNTM4NywgMC4wMDUzOTIsIDAuMDA1Mzk3LCAwLjAwNTM5NiwgMC4wMDUzOTkiLCBcCi0gICAgICAgICAgIjAuMDA1MzUxLCAwLjAwNTQxNSwgMC4wMDU0MjQsIDAuMDA1NDI5LCAwLjAwNTQzMSwgMC4wMDU0MzMsIDAuMDA1NDM0IiwgXAotICAgICAgICAgICIwLjAwNTM5LCAwLjAwNTQ1MywgMC4wMDU0NjQsIDAuMDA1NDY4LCAwLjAwNTQ3MSwgMC4wMDU0NzIsIDAuMDA1NDc0IiwgXAotICAgICAgICAgICIwLjAwNTQ3OCwgMC4wMDU1MzgsIDAuMDA1NTQ3LCAwLjAwNTU1MiwgMC4wMDU1NTQsIDAuMDA1NTU2LCAwLjAwNTU1OCIsIFwKLSAgICAgICAgICAiMC4wMDU1NDYsIDAuMDA1NjA2LCAwLjAwNTYxNSwgMC4wMDU2MTksIDAuMDA1NjE5LCAwLjAwNTYyMSwgMC4wMDU2MjQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJHTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA3NDMsIDAuMDA3NDk1LCAwLjAwNzUwNCwgMC4wMDc1MDgsIDAuMDA3NTEsIDAuMDA3NTEyLCAwLjAwNzUxMiIsIFwKLSAgICAgICAgICAiMC4wMDc0MjUsIDAuMDA3NDk0LCAwLjAwNzUwMiwgMC4wMDc1MDcsIDAuMDA3NTExLCAwLjAwNzUxMSwgMC4wMDc1MTMiLCBcCi0gICAgICAgICAgIjAuMDA3NDYzLCAwLjAwNzUzMSwgMC4wMDc1MzksIDAuMDA3NTQyLCAwLjAwNzU0NSwgMC4wMDc1NDYsIDAuMDA3NTUiLCBcCi0gICAgICAgICAgIjAuMDA3NTIxLCAwLjAwNzU4OCwgMC4wMDc1OTYsIDAuMDA3NiwgMC4wMDc2MDIsIDAuMDA3NjAzLCAwLjAwNzYwNCIsIFwKLSAgICAgICAgICAiMC4wMDc1NzQsIDAuMDA3NjM0LCAwLjAwNzY0MSwgMC4wMDc2NDUsIDAuMDA3NjU2LCAwLjAwNzY0OCwgMC4wMDc2NDkiLCBcCi0gICAgICAgICAgIjAuMDA3Njc1LCAwLjAwNzc0MywgMC4wMDc3NSwgMC4wMDc3NTQsIDAuMDA3NzU1LCAwLjAwNzc1NiwgMC4wMDc3NTciLCBcCi0gICAgICAgICAgIjAuMDA3NzY4LCAwLjAwNzgzNCwgMC4wMDc4NCwgMC4wMDc4NDIsIDAuMDA3ODQyLCAwLjAwNzg0MywgMC4wMDc4NDMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDcyOSwgMC4wMDczMjQsIDAuMDA3MzIxLCAwLjAwNzMxOCwgMC4wMDczMTcsIDAuMDA3MzE1LCAwLjAwNzMxNCIsIFwKLSAgICAgICAgICAiMC4wMDcyODYsIDAuMDA3MzIxLCAwLjAwNzMxOCwgMC4wMDczMTUsIDAuMDA3MzE0LCAwLjAwNzMxMiwgMC4wMDczMTMiLCBcCi0gICAgICAgICAgIjAuMDA3MzQxLCAwLjAwNzM3NSwgMC4wMDczNzIsIDAuMDA3MzY5LCAwLjAwNzM2NywgMC4wMDczNjYsIDAuMDA3MzY1IiwgXAotICAgICAgICAgICIwLjAwNzM4NywgMC4wMDc0MjMsIDAuMDA3NDIsIDAuMDA3NDE2LCAwLjAwNzQxNCwgMC4wMDc0MTMsIDAuMDA3NDEiLCBcCi0gICAgICAgICAgIjAuMDA3NDM3LCAwLjAwNzQ3MywgMC4wMDc0NywgMC4wMDc0NjYsIDAuMDA3NDY1LCAwLjAwNzQ2MiwgMC4wMDc0NiIsIFwKLSAgICAgICAgICAiMC4wMDc1NDksIDAuMDA3NTg1LCAwLjAwNzU3OSwgMC4wMDc1NzUsIDAuMDA3NTczLCAwLjAwNzU3LCAwLjAwNzU2OSIsIFwKLSAgICAgICAgICAiMC4wMDc2NDIsIDAuMDA3Njc5LCAwLjAwNzY3NywgMC4wMDc2NzMsIDAuMDA3NjY4LCAwLjAwNzY2OCwgMC4wMDc2NjciKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBUTEFUTlhMICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKFRMQVROWEwpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC41OTY4MTE7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgbGF0Y2ggKFFJTlQsTjApIHsKLSAgICBkYXRhX2luIDogIkQiOwotICAgIGVuYWJsZSA6ICIoIUdOKSI7Ci0gIH0KLSAgcGluKEQpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY3MTI3OTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2Njk3NDQ7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjcxMjc5OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDI4NiwgMC4wMDAyODksIDAuMDAwMjksIDAuMDAwMjksIDAuMDAwMjkxLCAwLjAwMDI5MSwgMC4wMDAyOTEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAzMTcsIDAuMDAwMzA2LCAwLjAwMDMwMywgMC4wMDAzMDIsIDAuMDAwMzAxLCAwLjAwMDMsIDAuMDAwMyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJHTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAxODc1LCAtMC4wMTM3NSwgLTAuMDA3NSwgLTAuMDA3NSwgLTAuMDA3NSwgLTAuMDAzNzUsIC0wLjAwMTI1IiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAxMjUsIC0wLjAxMjUsIC0wLjAwODc1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxODc1LCAtMC4wMTg3NSwgLTAuMDE1LCAtMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDIxMjUsIC0wLjAxODc1IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMjUsIC0wLjAyMTI1LCAtMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDQ2MjUsIC0wLjA0MTI1LCAtMC4wMzUsIC0wLjAzNSwgLTAuMDI4NzUsIC0wLjAzMTI1LCAtMC4wMjg3NSIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNDM3NSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzNzUsIC0wLjAzMzc1LCAtMC4wMzEyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAwNjI1LCAtMC4wMDEyNSwgMC4wMTEyNSwgMC4wMTEyNSwgMC4wMTc1LCAwLjAyMTI1LCAwLjAzIiwgXAotICAgICAgICAgICItMC4wMTEyNSwgLTAuMDA2MjUsIDAsIDAuMDA2MjUsIDAuMDEyNSwgMC4wMTYyNSwgMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjAxNzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLCAwLjAwNjI1LCAwLjAxLCAwLjAxODc1IiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDE4NzUsIC0wLjAwNjI1LCAtMC4wMDYyNSwgMCwgMC4wMSwgMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLCAwLjAwMzc1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wMzM3NSwgLTAuMDI4NzUsIC0wLjAxNjI1LCAtMC4wMSwgLTAuMDEsIDAsIDAuMDAyNSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDI1LCAwIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkdOIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzMTI1LCAwLjAyLCAwLjAyLCAwLjAyLCAwLjAyLCAwLjAxNjI1LCAwLjAyIiwgXAotICAgICAgICAgICIwLjAzNjI1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMjUsIDAuMDI1LCAwLjAyMTI1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiMC4wNDI1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDMxMjUsIDAuMDMxMjUsIDAuMDI3NSwgMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMDQ4NzUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAzMzc1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICIwLjA0ODc1LCAwLjA0Mzc1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDM3NSwgMC4wMzM3NSwgMC4wMzc1IiwgXAotICAgICAgICAgICIwLjA1ODc1LCAwLjA1Mzc1LCAwLjA0NzUsIDAuMDQ3NSwgMC4wNDEyNSwgMC4wNDM3NSwgMC4wNDEyNSIsIFwKLSAgICAgICAgICAiMC4wNjEyNSwgMC4wNTYyNSwgMC4wNSwgMC4wNSwgMC4wNSwgMC4wNDYyNSwgMC4wNDM3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxODc1LCAwLjAwNzUsIDAuMDAxMjUsIC0wLjAwNSwgLTAuMDExMjUsIC0wLjAxNSwgLTAuMDE3NSIsIFwKLSAgICAgICAgICAiMC4wMjM3NSwgMC4wMTI1LCAwLjAwNjI1LCAwLCAtMC4wMDYyNSwgLTAuMDEsIC0wLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMDMsIDAuMDE4NzUsIDAuMDEyNSwgMC4wMDYyNSwgMCwgLTAuMDAzNzUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICIwLjAzNjI1LCAwLjAyNSwgMC4wMTg3NSwgMC4wMTI1LCAwLjAwNjI1LCAwLjAwMjUsIDAiLCBcCi0gICAgICAgICAgIjAuMDM2MjUsIDAuMDMxMjUsIDAuMDI1LCAwLjAxODc1LCAwLjAxMjUsIDAuMDAyNSwgMCIsIFwKLSAgICAgICAgICAiMC4wNDYyNSwgMC4wMzUsIDAuMDI4NzUsIDAuMDIyNSwgMC4wMTYyNSwgMC4wMTI1LCAwLjAwMzc1IiwgXAotICAgICAgICAgICIwLjA0ODc1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDI1LCAwLjAxODc1LCAwLjAxNSwgMC4wMTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihHTikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjg3ODQ5OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDY4Nzg0OTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2ODczMzg7Ci0gICAgY2xvY2sgOiB0cnVlOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjA3NiwgMC4wMDIwNzYsIDAuMDAyMTU3LCAwLjAwMjI2NCwgMC4wMDIzODUsIDAuMDAyNjE1LCAwLjAwMjgzMSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzg3OSwgMC4wMDM4OTcsIDAuMDAzOTU1LCAwLjAwNDA1OSwgMC4wMDQxOTEsIDAuMDA0NDU4LCAwLjAwNDY2NyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJHTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQiOwotICAgICAgc2RmX2NvbmQgOiAiRCA9PSAxJ2IwIjsKLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjEzMjI4NCwgMC4xNDAyNTksIDAuMTQ4MDMzLCAwLjE1MzQ3NSwgMC4xNTc5OTgsIDAuMTYzNjk3LCAwLjE2NzgwNyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjIwMzcxMTsKLSAgICBmdW5jdGlvbiA6ICJRSU5UIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJEIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTMzMDgsIDAuMTIzNzUzLCAwLjIxOTM5LCAwLjM3NjQxNiwgMC41MzQyNjgsIDAuOTA2NjMxLCAxLjExNzk2IiwgXAotICAgICAgICAgICIwLjExOTMxMiwgMC4xMjk5MiwgMC4yMjQ4NDYsIDAuMzgyNDg5LCAwLjU0MjUzMSwgMC45MDg2ODMsIDEuMTIzOTUiLCBcCi0gICAgICAgICAgIjAuMTI2MjAzLCAwLjEzNjYxNCwgMC4yMzE3NzIsIDAuMzg5MzUsIDAuNTQ5MzUyLCAwLjkxOTQzNywgMS4xMzA3MiIsIFwKLSAgICAgICAgICAiMC4xMzE4MDEsIDAuMTQyMjQxLCAwLjIzNzMyNCwgMC4zOTQ5OTYsIDAuNTU0ODk5LCAwLjkyNTAwOSwgMS4xMzYxNyIsIFwKLSAgICAgICAgICAiMC4xMzY1NzcsIDAuMTQ3MTYsIDAuMjQyNTgsIDAuMzk5NjExLCAwLjU1NzQ4MiwgMC45MjU4OTEsIDEuMTQwOTMiLCBcCi0gICAgICAgICAgIjAuMTQyOTgzLCAwLjE1MzUzOCwgMC4yNDgyODQsIDAuNDA2MTM1LCAwLjU2NjA4LCAwLjkzMzA4OCwgMS4xNDc0NSIsIFwKLSAgICAgICAgICAiMC4xNDc5MTQsIDAuMTU4NDMxLCAwLjI1MzYzMiwgMC40MTE3NTMsIDAuNTY5MTg1LCAwLjk0MTA2OCwgMS4xNTI1MyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTYwODEsIDAuMTM4NDk1LCAwLjMzODU1LCAwLjY3MTM4OSwgMS4wMDM0NCwgMS43ODA2OSwgMi4yMjQ1MiIsIFwKLSAgICAgICAgICAiMC4xMTY0MDYsIDAuMTM4NzQ4LCAwLjMzODIzMiwgMC42NzE1MjksIDEuMDA1MDQsIDEuNzgyNjYsIDIuMjI3NjEiLCBcCi0gICAgICAgICAgIjAuMTE2MzIzLCAwLjEzODA2OCwgMC4zMzg2MDIsIDAuNjcyMTE3LCAxLjAwNDgyLCAxLjc4MjA0LCAyLjIyNjc0IiwgXAotICAgICAgICAgICIwLjExNjM5MiwgMC4xMzgzOTksIDAuMzM4NDAzLCAwLjY3MDc1OSwgMS4wMDU1OCwgMS43ODM2NywgMi4yMjg4OSIsIFwKLSAgICAgICAgICAiMC4xMTYzOTUsIDAuMTM4ODYsIDAuMzM4MjUsIDAuNjcwOTMxLCAxLjAwNTA4LCAxLjc3Nzk0LCAyLjIyOTIiLCBcCi0gICAgICAgICAgIjAuMTE2NDcxLCAwLjEzODUzMiwgMC4zMzgwMzcsIDAuNjcwMDA5LCAxLjAwNjE0LCAxLjc4MzU2LCAyLjIyOTMzIiwgXAotICAgICAgICAgICIwLjExNjQ1MSwgMC4xMzg0OSwgMC4zMzg2NzcsIDAuNjcwNjQ2LCAxLjAwMzE4LCAxLjc4NDE4LCAyLjIyODg3Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExMDU1NSwgMC4xMjAyODcsIDAuMjA3MTU2LCAwLjM1MjQxNCwgMC40OTc1NzcsIDAuODM0NTM4LCAxLjAyOTk5IiwgXAotICAgICAgICAgICIwLjExNjUyNSwgMC4xMjYxNjIsIDAuMjEzMDE0LCAwLjM1ODQzMSwgMC41MDM0ODYsIDAuODQyMjYxLCAxLjAzNTgiLCBcCi0gICAgICAgICAgIjAuMTIyNTg0LCAwLjEzMjMwNiwgMC4yMTkxNDgsIDAuMzY0NTEsIDAuNTA5MzY3LCAwLjg0ODM0MywgMS4wMzkzOCIsIFwKLSAgICAgICAgICAiMC4xMjc1ODIsIDAuMTM3MjA5LCAwLjIyNDAyNCwgMC4zNjkzODQsIDAuNTE0NTUsIDAuODUxNzU0LCAxLjA0NDM0IiwgXAotICAgICAgICAgICIwLjEzMTcxLCAwLjE0MTMyNiwgMC4yMjgzOCwgMC4zNzI5NTksIDAuNTE3NjgzLCAwLjg1NTQ0MSwgMS4wNDg0OCIsIFwKLSAgICAgICAgICAiMC4xMzcxMSwgMC4xNDY3NywgMC4yMzM2NDgsIDAuMzc4ODU5LCAwLjUyMzk0NiwgMC44NjE5OTYsIDEuMDU1MjMiLCBcCi0gICAgICAgICAgIjAuMTQxMzM5LCAwLjE1MDk1NiwgMC4yMzc5MjMsIDAuMzgyOTU5LCAwLjUyNzM2OCwgMC44NjY4ODgsIDEuMDYwMTUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTAzNzE5LCAwLjEyMzYyNywgMC4zMDI5NTYsIDAuNjAyMTYsIDAuOTAwNzc4LCAxLjU5NzgzLCAxLjk4NDQxIiwgXAotICAgICAgICAgICIwLjEwMzgwMSwgMC4xMjM2MjUsIDAuMzAzMTI1LCAwLjYwMDMyMSwgMC45MDA3NTQsIDEuNTk2NDQsIDEuOTk0NjkiLCBcCi0gICAgICAgICAgIjAuMTAzNjk4LCAwLjEyMzYwNSwgMC4zMDE2NzEsIDAuNjAxNTg3LCAwLjkwMTM5NSwgMS41OTczOSwgMS45OTcyNCIsIFwKLSAgICAgICAgICAiMC4xMDM4MjIsIDAuMTIzNjU5LCAwLjMwMjkwOSwgMC42MDE1NTUsIDAuOTAwNTU2LCAxLjU5NTgsIDEuOTkyOTIiLCBcCi0gICAgICAgICAgIjAuMTAzODA0LCAwLjEyMzYxMywgMC4zMDI2OTgsIDAuNjAyMTQxLCAwLjkwMTA0NCwgMS41OTg4NSwgMS45OTc3MyIsIFwKLSAgICAgICAgICAiMC4xMDM2OTgsIDAuMTIzMzQyLCAwLjMwMjg0NywgMC42MDA4MzIsIDAuOTAwMDE2LCAxLjU5ODE3LCAxLjk5Njg1IiwgXAotICAgICAgICAgICIwLjEwMzk2MSwgMC4xMjMyNjEsIDAuMzAxODE5LCAwLjYwMDEwNSwgMC45MDExNjUsIDEuNTkzNTMsIDEuOTk2MDMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiR04iOwotICAgICAgdGltaW5nX3NlbnNlIDogbm9uX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiBmYWxsaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEyNzUyMSwgMC4xMzgxNDMsIDAuMjMzNjI1LCAwLjM5MDc2NSwgMC41NTA3OCwgMC45MjA2NDIsIDEuMTMyMDgiLCBcCi0gICAgICAgICAgIjAuMTM1MzY3LCAwLjE0NiwgMC4yNDE0NDUsIDAuMzk4NTQsIDAuNTU4NjU0LCAwLjkyODU0LCAxLjEzOTk3IiwgXAotICAgICAgICAgICIwLjE0MzU1MSwgMC4xNTM5NzEsIDAuMjQ5NjA2LCAwLjQwNjcyNiwgMC41NjU1OTEsIDAuOTM2ODUyLCAxLjE0ODE3IiwgXAotICAgICAgICAgICIwLjE0OTQ4OCwgMC4xNTk5OTcsIDAuMjU1NTQ3LCAwLjQxMjU5MSwgMC41NzI3MDcsIDAuOTQyODEsIDEuMTU0MTEiLCBcCi0gICAgICAgICAgIjAuMTU0MTMzLCAwLjE2NDg2OCwgMC4yNTk3MzUsIDAuNDE4OTI2LCAwLjU3NzUyMywgMC45NDc0NjksIDEuMTU2MzciLCBcCi0gICAgICAgICAgIjAuMTYwNjY5LCAwLjE3MTE5MSwgMC4yNjYyMzQsIDAuNDIzODU5LCAwLjU4NDAzNywgMC45NDk5NzMsIDEuMTY1MjUiLCBcCi0gICAgICAgICAgIjAuMTY1NDE3LCAwLjE3NTgxNywgMC4yNzA1NTUsIDAuNDMwMjE1LCAwLjU4NzI0NywgMC45NTg1MjgsIDEuMTcwMDUiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTE2NDEyLCAwLjEzODE1NywgMC4zMzgyNjcsIDAuNjcwNzEzLCAxLjAwNDM2LCAxLjc4MjMzLCAyLjIyNjUxIiwgXAotICAgICAgICAgICIwLjExNjQxLCAwLjEzODkxMSwgMC4zMzgxMDMsIDAuNjcxNDk0LCAxLjAwNDk3LCAxLjc4MzU0LCAyLjIyODAxIiwgXAotICAgICAgICAgICIwLjExNjQyMSwgMC4xMzgxMjIsIDAuMzM4MDUxLCAwLjY3MTM3NCwgMS4wMDM5NSwgMS43ODIyOSwgMi4yMjczMyIsIFwKLSAgICAgICAgICAiMC4xMTY0MDgsIDAuMTM4NjI3LCAwLjMzODA3OSwgMC42NzIzMzcsIDEuMDA0ODUsIDEuNzgyODMsIDIuMjI3MjYiLCBcCi0gICAgICAgICAgIjAuMTE2MjAyLCAwLjEzODgxNSwgMC4zMzc5NCwgMC42NzE2NywgMS4wMDUxNCwgMS43ODM1NCwgMi4yMjM4NiIsIFwKLSAgICAgICAgICAiMC4xMTY1NTUsIDAuMTM4NDQ1LCAwLjMzODU4MiwgMC42NzIwMTUsIDEuMDA0ODEsIDEuNzc5NTYsIDIuMjI4MjYiLCBcCi0gICAgICAgICAgIjAuMTE2MjIyLCAwLjEzODE4MywgMC4zMzg0OTYsIDAuNjcxMDIsIDEuMDA0MDEsIDEuNzgzNzYsIDIuMjI3ODkiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTMyMjg0LCAwLjE0MTkwMSwgMC4yMjg3NSwgMC4zNzM2OTgsIDAuNTE5MDU5LCAwLjg1Nzg1NSwgMS4wNTE1OCIsIFwKLSAgICAgICAgICAiMC4xNDAyNTksIDAuMTQ5ODg0LCAwLjIzNjg1NywgMC4zODIwODUsIDAuNTI2OTk2LCAwLjg2NTc5OCwgMS4wNTc5OCIsIFwKLSAgICAgICAgICAiMC4xNDgwMzMsIDAuMTU3NjU1LCAwLjI0NDQ5LCAwLjM4OTc5OCwgMC41MzQ3NjksIDAuODczNDMxLCAxLjA2NzIzIiwgXAotICAgICAgICAgICIwLjE1MzQ3NSwgMC4xNjMwOTQsIDAuMjUwMDY1LCAwLjM5NTI0NSwgMC41NDAxODUsIDAuODc5MDY4LCAxLjA3MjE3IiwgXAotICAgICAgICAgICIwLjE1Nzk5OCwgMC4xNjc2MiwgMC4yNTQ1OCwgMC4zOTk4MTksIDAuNTQ0NzQyLCAwLjg4MzU2OSwgMS4wNzYzMyIsIFwKLSAgICAgICAgICAiMC4xNjM2OTcsIDAuMTczMjc4LCAwLjI2MDI5NywgMC40MDU1MzUsIDAuNTUwNDc5LCAwLjg4OTQ3MywgMS4wODI5OSIsIFwKLSAgICAgICAgICAiMC4xNjc4MDcsIDAuMTc3NDA2LCAwLjI2NDQ3MywgMC40MDk3NjksIDAuNTU0MDc3LCAwLjg5MzQsIDEuMDg3MTIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTAzODE2LCAwLjEyMzY3MywgMC4zMDEyNzIsIDAuNjAwOTMyLCAwLjkwMDk3OSwgMS41OTg0MywgMS45OTM4NSIsIFwKLSAgICAgICAgICAiMC4xMDM4MSwgMC4xMjM2NjUsIDAuMzAzMDQ3LCAwLjYwMTY1MSwgMC45MDA5OTYsIDEuNTk4NTIsIDEuOTkzNCIsIFwKLSAgICAgICAgICAiMC4xMDM4MDYsIDAuMTIzNjMyLCAwLjMwMTkxNCwgMC42MDE4MzYsIDAuOTAwOTY0LCAxLjU5ODY4LCAxLjk5NTU1IiwgXAotICAgICAgICAgICIwLjEwMzgwNiwgMC4xMjM2MTksIDAuMzAzMDcyLCAwLjYwMTg1NywgMC45MDEwMDMsIDEuNTk4NTIsIDEuOTk3MjciLCBcCi0gICAgICAgICAgIjAuMTAzODEsIDAuMTIzNjIzLCAwLjMwMzAxNiwgMC42MDE2NywgMC45MDA4OTYsIDEuNTk4MzgsIDEuOTk3MiIsIFwKLSAgICAgICAgICAiMC4xMDM4NDQsIDAuMTIzNjc3LCAwLjMwMzA4NiwgMC42MDExNTMsIDAuOTAwNzk0LCAxLjU5ODA0LCAxLjk5MDMyIiwgXAotICAgICAgICAgICIwLjEwMzU3NSwgMC4xMjM0MzksIDAuMzAzMDY0LCAwLjU5OTk1LCAwLjg5OTY2MSwgMS41OTg1OSwgMS45ODY2MSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkQiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjkxMywgMC4wMDI5MTQsIDAuMDAyOTE4LCAwLjAwMjkyLCAwLjAwMjkyLCAwLjAwMjkxOSwgMC4wMDI5MjEiLCBcCi0gICAgICAgICAgIjAuMDAyOSwgMC4wMDI5MDEsIDAuMDAyOTA1LCAwLjAwMjkwNiwgMC4wMDI5MDcsIDAuMDAyOTA3LCAwLjAwMjkwNyIsIFwKLSAgICAgICAgICAiMC4wMDI5MDgsIDAuMDAyOTEsIDAuMDAyOTE0LCAwLjAwMjkxNSwgMC4wMDI5MTYsIDAuMDAyOTE2LCAwLjAwMjkxNiIsIFwKLSAgICAgICAgICAiMC4wMDI5MzksIDAuMDAyOTQsIDAuMDAyOTQ0LCAwLjAwMjk0NiwgMC4wMDI5NDYsIDAuMDAyOTQ3LCAwLjAwMjk0NiIsIFwKLSAgICAgICAgICAiMC4wMDI5ODUsIDAuMDAyOTg3LCAwLjAwMjk5MSwgMC4wMDI5OTIsIDAuMDAyOTkzLCAwLjAwMjk5NCwgMC4wMDI5OTQiLCBcCi0gICAgICAgICAgIjAuMDAzMDU1LCAwLjAwMzA1NCwgMC4wMDMwNTksIDAuMDAzMDYsIDAuMDAzMDYxLCAwLjAwMzA2MywgMC4wMDMwNjIiLCBcCi0gICAgICAgICAgIjAuMDAzMTE2LCAwLjAwMzExNywgMC4wMDMxMjIsIDAuMDAzMTIzLCAwLjAwMzEyNCwgMC4wMDMxMjUsIDAuMDAzMTI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzMTMsIDAuMDAzMTMyLCAwLjAwMzEzNiwgMC4wMDMxMzgsIDAuMDAzMTM5LCAwLjAwMzEzOSwgMC4wMDMxMzkiLCBcCi0gICAgICAgICAgIjAuMDAzMTIsIDAuMDAzMTIxLCAwLjAwMzEyNiwgMC4wMDMxMjcsIDAuMDAzMTI4LCAwLjAwMzEyOCwgMC4wMDMxMjgiLCBcCi0gICAgICAgICAgIjAuMDAzMTI2LCAwLjAwMzEyNywgMC4wMDMxMzEsIDAuMDAzMTMzLCAwLjAwMzEzNCwgMC4wMDMxMzQsIDAuMDAzMTMzIiwgXAotICAgICAgICAgICIwLjAwMzE1MywgMC4wMDMxNTQsIDAuMDAzMTU5LCAwLjAwMzE2MSwgMC4wMDMxNjEsIDAuMDAzMTYyLCAwLjAwMzE2MiIsIFwKLSAgICAgICAgICAiMC4wMDMxODQsIDAuMDAzMTg2LCAwLjAwMzE5MSwgMC4wMDMxOTMsIDAuMDAzMTk0LCAwLjAwMzE5NCwgMC4wMDMxOTQiLCBcCi0gICAgICAgICAgIjAuMDAzMjUxLCAwLjAwMzI1MiwgMC4wMDMyNTUsIDAuMDAzMjU3LCAwLjAwMzI1OSwgMC4wMDMyNTksIDAuMDAzMjU5IiwgXAotICAgICAgICAgICIwLjAwMzMwNywgMC4wMDMzMTEsIDAuMDAzMzE2LCAwLjAwMzMxOCwgMC4wMDMzMTUsIDAuMDAzMzE5LCAwLjAwMzMxOSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkdOIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQ3ODIsIDAuMDA0NzgsIDAuMDA0Nzc0LCAwLjAwNDc2OSwgMC4wMDQ3NjgsIDAuMDA0NzY2LCAwLjAwNDc2NiIsIFwKLSAgICAgICAgICAiMC4wMDQ3NzksIDAuMDA0Nzc4LCAwLjAwNDc3MSwgMC4wMDQ3NjcsIDAuMDA0NzY1LCAwLjAwNDc2NCwgMC4wMDQ3NjMiLCBcCi0gICAgICAgICAgIjAuMDA0ODE5LCAwLjAwNDgxOCwgMC4wMDQ4MTEsIDAuMDA0ODA3LCAwLjAwNDgwNSwgMC4wMDQ4MDMsIDAuMDA0ODAyIiwgXAotICAgICAgICAgICIwLjAwNDg4NiwgMC4wMDQ4ODUsIDAuMDA0ODc4LCAwLjAwNDg3MywgMC4wMDQ4NzEsIDAuMDA0ODY5LCAwLjAwNDg2OSIsIFwKLSAgICAgICAgICAiMC4wMDQ5MzUsIDAuMDA0OTM0LCAwLjAwNDkyNiwgMC4wMDQ5MjEsIDAuMDA0OTE5LCAwLjAwNDkxNywgMC4wMDQ5MTYiLCBcCi0gICAgICAgICAgIjAuMDA1MDM5LCAwLjAwNTAzOCwgMC4wMDUwMzEsIDAuMDA1MDI1LCAwLjAwNTAyMywgMC4wMDUwMiwgMC4wMDUwMiIsIFwKLSAgICAgICAgICAiMC4wMDUxNDQsIDAuMDA1MTQzLCAwLjAwNTEzNiwgMC4wMDUxMywgMC4wMDUxMjgsIDAuMDA1MTI1LCAwLjAwNTEyNCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDc1OSwgMC4wMDQ3NiwgMC4wMDQ3NjUsIDAuMDA0NzY3LCAwLjAwNDc2NywgMC4wMDQ3NjgsIDAuMDA0NzY4IiwgXAotICAgICAgICAgICIwLjAwNDc2MiwgMC4wMDQ3NjMsIDAuMDA0NzY4LCAwLjAwNDc3LCAwLjAwNDc3MSwgMC4wMDQ3NywgMC4wMDQ3NzIiLCBcCi0gICAgICAgICAgIjAuMDA0ODAxLCAwLjAwNDgwMiwgMC4wMDQ4MDcsIDAuMDA0ODA5LCAwLjAwNDgxLCAwLjAwNDgxMSwgMC4wMDQ4MTEiLCBcCi0gICAgICAgICAgIjAuMDA0ODYsIDAuMDA0ODYxLCAwLjAwNDg2NSwgMC4wMDQ4NjYsIDAuMDA0ODY3LCAwLjAwNDg2NywgMC4wMDQ4NjciLCBcCi0gICAgICAgICAgIjAuMDA0OTA5LCAwLjAwNDkxMSwgMC4wMDQ5MTQsIDAuMDA0OTE1LCAwLjAwNDkxNiwgMC4wMDQ5MTYsIDAuMDA0OTE2IiwgXAotICAgICAgICAgICIwLjAwNTAxOCwgMC4wMDUwMTksIDAuMDA1MDIyLCAwLjAwNTAyMiwgMC4wMDUwMjIsIDAuMDA1MDIxLCAwLjAwNTAyMSIsIFwKLSAgICAgICAgICAiMC4wMDUxMTgsIDAuMDA1MTE4LCAwLjAwNTEyMSwgMC4wMDUxMTksIDAuMDA1MTIsIDAuMDA1MTE5LCAwLjAwNTExMyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUU4pICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4yMDE4Nzk7Ci0gICAgZnVuY3Rpb24gOiAiTjAiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkQiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwODM1OSwgMC4xMTg4ODMsIDAuMjEzNjMsIDAuMzcxNTI0LCAwLjUyOTQwMywgMC44OTc2NDIsIDEuMTA4MzIiLCBcCi0gICAgICAgICAgIjAuMTE0MjMyLCAwLjEyNDc1NywgMC4yMTk1MTMsIDAuMzc3NDQ5LCAwLjUzNTI4NywgMC45MDM2NzcsIDEuMTE0MTciLCBcCi0gICAgICAgICAgIjAuMTIwMzc4LCAwLjEzMDkxNCwgMC4yMjU2NzEsIDAuMzgzNTg2LCAwLjU0MTM1OCwgMC45MDk4MTgsIDEuMTE5NyIsIFwKLSAgICAgICAgICAiMC4xMjU0MTUsIDAuMTM1OTUsIDAuMjMwNzA4LCAwLjM4ODU5NywgMC41NDY0NzEsIDAuOTE0NjE4LCAxLjEyNTExIiwgXAotICAgICAgICAgICIwLjEyOTQ5OCwgMC4xNDAwMywgMC4yMzQ4MTQsIDAuMzkyNjE0LCAwLjU1MDQ0NywgMC45MTg3MjUsIDEuMTI5MTYiLCBcCi0gICAgICAgICAgIjAuMTM1MDM2LCAwLjE0NTU3NSwgMC4yNDAzMTksIDAuMzk4MTczLCAwLjU1NjAyNywgMC45MjQyMzYsIDEuMTM0NjYiLCBcCi0gICAgICAgICAgIjAuMTM5MjIyLCAwLjE0OTcyMSwgMC4yNDQ0NDgsIDAuNDAyMzA4LCAwLjU2MDEwOCwgMC45Mjg1NjQsIDEuMTM4OTkiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTE3OTcyLCAwLjEzOTk4NSwgMC4zMzg2MDksIDAuNjcxNTg4LCAxLjAwNDA5LCAxLjc3NjI2LCAyLjIxOTgyIiwgXAotICAgICAgICAgICIwLjExODAyOCwgMC4xMzk5ODQsIDAuMzM4NjY1LCAwLjY3MDU2NywgMS4wMDQxLCAxLjc3NzY3LCAyLjIyMDUxIiwgXAotICAgICAgICAgICIwLjExODAxMywgMC4xMzk5ODksIDAuMzM4MzM1LCAwLjY3MDUyNSwgMS4wMDQxOCwgMS43Nzc1OCwgMi4yMTgzNyIsIFwKLSAgICAgICAgICAiMC4xMTgwNzIsIDAuMTQwMDM2LCAwLjMzODUzOCwgMC42NzE0NjYsIDEuMDAyNiwgMS43Nzg0MiwgMi4yMjAxNSIsIFwKLSAgICAgICAgICAiMC4xMTgwNzcsIDAuMTQwMDMzLCAwLjMzODQ2NSwgMC42NzA5MjYsIDEuMDAzMDYsIDEuNzc4MzYsIDIuMjIxNSIsIFwKLSAgICAgICAgICAiMC4xMTgwMjgsIDAuMTM5OTExLCAwLjMzODQ2OSwgMC42NzEyNTgsIDEuMDAzODcsIDEuNzc5NzgsIDIuMjIzMTQiLCBcCi0gICAgICAgICAgIjAuMTE4MTU0LCAwLjEzOTg2MywgMC4zMzg3NTgsIDAuNjcxMTU0LCAxLjAwMzE5LCAxLjc3NzY1LCAyLjIyMzIzIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwMzQyNSwgMC4xMTMwODMsIDAuMTk5OTQxLCAwLjM0NDcwMSwgMC40ODk0NzEsIDAuODI3MDQzLCAxLjAyMDA2IiwgXAotICAgICAgICAgICIwLjEwOTQ0MiwgMC4xMTkxMDEsIDAuMjA1OTU3LCAwLjM1MDcyOSwgMC40OTU0MzksIDAuODMzMTg1LCAxLjAyNjA4IiwgXAotICAgICAgICAgICIwLjExNjM0MywgMC4xMjU5OTMsIDAuMjEyODY0LCAwLjM1NzY0MiwgMC41MDIzMzgsIDAuODQwMDI2LCAxLjAzMzAxIiwgXAotICAgICAgICAgICIwLjEyMjAxNywgMC4xMzE2NzcsIDAuMjE4NTM1LCAwLjM2MzI4LCAwLjUwODAyMywgMC44NDU2NDgsIDEuMDM4NzMiLCBcCi0gICAgICAgICAgIjAuMTI2NzEsIDAuMTM2MzY5LCAwLjIyMzIyMywgMC4zNjgwMTYsIDAuNTEyNzM2LCAwLjg1MDQ3MiwgMS4wNDMzMyIsIFwKLSAgICAgICAgICAiMC4xMzMyNzEsIDAuMTQyOTM5LCAwLjIyOTgwMywgMC4zNzQ1NzIsIDAuNTE5MjQyLCAwLjg1Njg4NywgMS4wNDk4OSIsIFwKLSAgICAgICAgICAiMC4xMzgyMzIsIDAuMTQ3ODg1LCAwLjIzNDcyOCwgMC4zNzk0NTcsIDAuNTI0MTcyLCAwLjg2MTgyMiwgMS4wNTQ3NSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDYwMjYsIDAuMTI1NTQ1LCAwLjMwMzI1MywgMC41OTk2ODgsIDAuODk2MzkxLCAxLjU5MjY1LCAxLjk4OTY3IiwgXAotICAgICAgICAgICIwLjEwNjAzMiwgMC4xMjU2NDQsIDAuMzAzMjA4LCAwLjU5OTY0OCwgMC44OTg0MDUsIDEuNTg5NDEsIDEuOTg5NjgiLCBcCi0gICAgICAgICAgIjAuMTA2MDI0LCAwLjEyNTU0NCwgMC4zMDMyMDcsIDAuNTk5Nzk1LCAwLjg5ODM2NiwgMS41OTI4MywgMS45ODk3NSIsIFwKLSAgICAgICAgICAiMC4xMDYwNjEsIDAuMTI1NTIzLCAwLjMwMzIxMiwgMC41OTk4NTQsIDAuODk4NDM0LCAxLjU5MjY2LCAxLjk4OTk1IiwgXAotICAgICAgICAgICIwLjEwNjA2LCAwLjEyNTY4NSwgMC4zMDMyNDIsIDAuNTk5Mjc1LCAwLjg5NjQxNiwgMS41ODk0NiwgMS45ODk1NCIsIFwKLSAgICAgICAgICAiMC4xMDU5NjgsIDAuMTI1NSwgMC4zMDI4MzgsIDAuNTk5NTEzLCAwLjg5ODI2MiwgMS41OTA0MiwgMS45ODk1MSIsIFwKLSAgICAgICAgICAiMC4xMDYwMzgsIDAuMTI1NDExLCAwLjMwMzEwMywgMC42MDA0MjYsIDAuODk2OTg0LCAxLjU5MjIyLCAxLjk4ODg1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkdOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5vbl91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogZmFsbGluZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMzAwMzQsIDAuMTQwNTYzLCAwLjIzNTMzNiwgMC4zOTMxNzgsIDAuNTUxMDU5LCAwLjkxOTQ2LCAxLjEzIiwgXAotICAgICAgICAgICIwLjEzNzk3NywgMC4xNDg1MTQsIDAuMjQzMjY1LCAwLjQwMTE4NiwgMC41NTg5OSwgMC45MjczODcsIDEuMTM3NzciLCBcCi0gICAgICAgICAgIjAuMTQ1NzQ5LCAwLjE1NjI4LCAwLjI1MTA0MywgMC40MDg5MjIsIDAuNTY2NzQyLCAwLjkzNTEwNiwgMS4xNDU2NyIsIFwKLSAgICAgICAgICAiMC4xNTExOTQsIDAuMTYxNzI2LCAwLjI1NjQ3NCwgMC40MTQzNzMsIDAuNTcyMTg0LCAwLjk0MDYwMiwgMS4xNTEiLCBcCi0gICAgICAgICAgIjAuMTU1NzIxLCAwLjE2NjI1MywgMC4yNjA5OSwgMC40MTg5MDQsIDAuNTc2NzA4LCAwLjk0NTEwNiwgMS4xNTUzIiwgXAotICAgICAgICAgICIwLjE2MTM5NywgMC4xNzE5MjEsIDAuMjY2NjY4LCAwLjQyNDU2OSwgMC41ODIzNzEsIDAuOTUwODIxLCAxLjE2MTMxIiwgXAotICAgICAgICAgICIwLjE2NTU4MSwgMC4xNzYxMDYsIDAuMjcwODM2LCAwLjQyODc1OCwgMC41ODY0NzgsIDAuOTU0OTAzLCAxLjE2NTQyIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExODAzOSwgMC4xMzk5MTEsIDAuMzM4NDIyLCAwLjY3MDgzNSwgMS4wMDQwOSwgMS43ODAxNSwgMi4yMjA1NCIsIFwKLSAgICAgICAgICAiMC4xMTgwMzgsIDAuMTQwMDEsIDAuMzM5MDE2LCAwLjY3MDUxMSwgMS4wMDQwOCwgMS43ODAxMywgMi4yMjA3NCIsIFwKLSAgICAgICAgICAiMC4xMTgwMzYsIDAuMTM5OTg5LCAwLjMzODQzOSwgMC42NzE1MDgsIDEuMDA0MDcsIDEuNzgwMTMsIDIuMjIwNDQiLCBcCi0gICAgICAgICAgIjAuMTE4MDM5LCAwLjE0MDAwOSwgMC4zMzkwMjMsIDAuNjcxNTIzLCAxLjAwNDA4LCAxLjc4MDE3LCAyLjIyMzUyIiwgXAotICAgICAgICAgICIwLjExODA0NCwgMC4xNDAwMDMsIDAuMzM5MDA0LCAwLjY3MDUwOCwgMS4wMDQwNSwgMS43ODAxMSwgMi4yMjMzMSIsIFwKLSAgICAgICAgICAiMC4xMTgxMjUsIDAuMTM5OTE5LCAwLjMzOTAzMSwgMC42NzA1NjMsIDEuMDA0MDUsIDEuNzc3NTEsIDIuMjE5NjEiLCBcCi0gICAgICAgICAgIjAuMTE3OTc0LCAwLjEzOTgzNCwgMC4zMzkwMTgsIDAuNjcwNTMzLCAxLjAwMzA5LCAxLjc4MDE0LCAyLjIxOTgiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTE3NTE5LCAwLjEyNzE1NCwgMC4yMTM5MDIsIDAuMzU4NTk5LCAwLjUwMzI5NCwgMC44NDA5ODMsIDEuMDMzOTYiLCBcCi0gICAgICAgICAgIjAuMTI1Mzk5LCAwLjEzNTAzMSwgMC4yMjE3NzcsIDAuMzY2NDc3LCAwLjUxMTE2NywgMC44NDg4NSwgMS4wNDE4MyIsIFwKLSAgICAgICAgICAiMC4xMzM1NDgsIDAuMTQzMTg1LCAwLjIyOTkyNiwgMC4zNzQ2NDEsIDAuNTE5MjksIDAuODU2OTc0LCAxLjA0OTk0IiwgXAotICAgICAgICAgICIwLjEzOTQ5NCwgMC4xNDkxMzEsIDAuMjM1ODcyLCAwLjM4MDU3LCAwLjUyNTI2NiwgMC44NjI4NDQsIDEuMDU1ODkiLCBcCi0gICAgICAgICAgIjAuMTQ0Mjk3LCAwLjE1MzkzNCwgMC4yNDA2NzcsIDAuMzg1MzU1LCAwLjUzMDA0NCwgMC44Njc3MTUsIDEuMDYwNiIsIFwKLSAgICAgICAgICAiMC4xNTA3MTYsIDAuMTYwMzUsIDAuMjQ3MDk1LCAwLjM5MTc5MiwgMC41MzY0MzgsIDAuODc0MTE2LCAxLjA2NzExIiwgXAotICAgICAgICAgICIwLjE1NTQxNCwgMC4xNjUwNTYsIDAuMjUxNzMzLCAwLjM5NjQ1NiwgMC41NDExMzgsIDAuODc4ODM1LCAxLjA3MTciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTA2MDYxLCAwLjEyNTY5LCAwLjMwMzI1OSwgMC41OTk4NzIsIDAuODk4MzcyLCAxLjU5MjkxLCAxLjk4OTgzIiwgXAotICAgICAgICAgICIwLjEwNjA2NiwgMC4xMjU2OTgsIDAuMzAzMjUsIDAuNTk5OTE3LCAwLjg5ODM2LCAxLjU5Mjg3LCAxLjk4OTgiLCBcCi0gICAgICAgICAgIjAuMTA2MDYxLCAwLjEyNTMzMSwgMC4zMDMyNDYsIDAuNTk5NjU5LCAwLjg5ODE1NywgMS41OTI4MSwgMS45ODk2OSIsIFwKLSAgICAgICAgICAiMC4xMDYwNjMsIDAuMTI1NTk3LCAwLjMwMzI0NiwgMC41OTk4NTYsIDAuODk4NDAyLCAxLjU5MjU2LCAxLjk4OTc0IiwgXAotICAgICAgICAgICIwLjEwNjEwOCwgMC4xMjU3MDUsIDAuMzAzMjE2LCAwLjYwMDc1LCAwLjg5ODMzNywgMS41OTI4MSwgMS45ODkwOSIsIFwKLSAgICAgICAgICAiMC4xMDYxMjQsIDAuMTI1NzA2LCAwLjMwMzIxNSwgMC41OTk2NTQsIDAuODk4MzE1LCAxLjU4OTY0LCAxLjk4OTgyIiwgXAotICAgICAgICAgICIwLjEwNTk3NiwgMC4xMjU0MzEsIDAuMzAyNjk2LCAwLjYwMDc2NywgMC44OTgxNTIsIDEuNTkyODksIDEuOTg5NiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkQiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzEzLCAwLjAwMzEzMiwgMC4wMDMxMzYsIDAuMDAzMTM4LCAwLjAwMzEzOSwgMC4wMDMxMzksIDAuMDAzMTM5IiwgXAotICAgICAgICAgICIwLjAwMzEyLCAwLjAwMzEyMSwgMC4wMDMxMjYsIDAuMDAzMTI3LCAwLjAwMzEyOCwgMC4wMDMxMjgsIDAuMDAzMTI4IiwgXAotICAgICAgICAgICIwLjAwMzEyNiwgMC4wMDMxMjcsIDAuMDAzMTMxLCAwLjAwMzEzMywgMC4wMDMxMzQsIDAuMDAzMTM0LCAwLjAwMzEzMyIsIFwKLSAgICAgICAgICAiMC4wMDMxNTMsIDAuMDAzMTU0LCAwLjAwMzE1OSwgMC4wMDMxNjEsIDAuMDAzMTYxLCAwLjAwMzE2MiwgMC4wMDMxNjIiLCBcCi0gICAgICAgICAgIjAuMDAzMTg0LCAwLjAwMzE4NiwgMC4wMDMxOTEsIDAuMDAzMTkzLCAwLjAwMzE5NCwgMC4wMDMxOTQsIDAuMDAzMTk0IiwgXAotICAgICAgICAgICIwLjAwMzI1MSwgMC4wMDMyNTIsIDAuMDAzMjU1LCAwLjAwMzI1NywgMC4wMDMyNTksIDAuMDAzMjU5LCAwLjAwMzI1OSIsIFwKLSAgICAgICAgICAiMC4wMDMzMDcsIDAuMDAzMzExLCAwLjAwMzMxNiwgMC4wMDMzMTgsIDAuMDAzMzE1LCAwLjAwMzMxOSwgMC4wMDMzMTkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI5MTMsIDAuMDAyOTE0LCAwLjAwMjkxOCwgMC4wMDI5MiwgMC4wMDI5MiwgMC4wMDI5MTksIDAuMDAyOTIxIiwgXAotICAgICAgICAgICIwLjAwMjksIDAuMDAyOTAxLCAwLjAwMjkwNSwgMC4wMDI5MDYsIDAuMDAyOTA3LCAwLjAwMjkwNywgMC4wMDI5MDciLCBcCi0gICAgICAgICAgIjAuMDAyOTA4LCAwLjAwMjkxLCAwLjAwMjkxNCwgMC4wMDI5MTUsIDAuMDAyOTE2LCAwLjAwMjkxNiwgMC4wMDI5MTYiLCBcCi0gICAgICAgICAgIjAuMDAyOTM5LCAwLjAwMjk0LCAwLjAwMjk0NCwgMC4wMDI5NDYsIDAuMDAyOTQ2LCAwLjAwMjk0NywgMC4wMDI5NDYiLCBcCi0gICAgICAgICAgIjAuMDAyOTg1LCAwLjAwMjk4NywgMC4wMDI5OTEsIDAuMDAyOTkyLCAwLjAwMjk5MywgMC4wMDI5OTQsIDAuMDAyOTk0IiwgXAotICAgICAgICAgICIwLjAwMzA1NSwgMC4wMDMwNTQsIDAuMDAzMDU5LCAwLjAwMzA2LCAwLjAwMzA2MSwgMC4wMDMwNjMsIDAuMDAzMDYyIiwgXAotICAgICAgICAgICIwLjAwMzExNiwgMC4wMDMxMTcsIDAuMDAzMTIyLCAwLjAwMzEyMywgMC4wMDMxMjQsIDAuMDAzMTI1LCAwLjAwMzEyNSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkdOIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQ3NTksIDAuMDA0NzYsIDAuMDA0NzY1LCAwLjAwNDc2NywgMC4wMDQ3NjcsIDAuMDA0NzY4LCAwLjAwNDc2OCIsIFwKLSAgICAgICAgICAiMC4wMDQ3NjIsIDAuMDA0NzYzLCAwLjAwNDc2OCwgMC4wMDQ3NywgMC4wMDQ3NzEsIDAuMDA0NzcsIDAuMDA0NzcyIiwgXAotICAgICAgICAgICIwLjAwNDgwMSwgMC4wMDQ4MDIsIDAuMDA0ODA3LCAwLjAwNDgwOSwgMC4wMDQ4MSwgMC4wMDQ4MTEsIDAuMDA0ODExIiwgXAotICAgICAgICAgICIwLjAwNDg2LCAwLjAwNDg2MSwgMC4wMDQ4NjUsIDAuMDA0ODY2LCAwLjAwNDg2NywgMC4wMDQ4NjcsIDAuMDA0ODY3IiwgXAotICAgICAgICAgICIwLjAwNDkwOSwgMC4wMDQ5MTEsIDAuMDA0OTE0LCAwLjAwNDkxNSwgMC4wMDQ5MTYsIDAuMDA0OTE2LCAwLjAwNDkxNiIsIFwKLSAgICAgICAgICAiMC4wMDUwMTgsIDAuMDA1MDE5LCAwLjAwNTAyMiwgMC4wMDUwMjIsIDAuMDA1MDIyLCAwLjAwNTAyMSwgMC4wMDUwMjEiLCBcCi0gICAgICAgICAgIjAuMDA1MTE4LCAwLjAwNTExOCwgMC4wMDUxMjEsIDAuMDA1MTE5LCAwLjAwNTEyLCAwLjAwNTExOSwgMC4wMDUxMTMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQ3ODIsIDAuMDA0NzgsIDAuMDA0Nzc0LCAwLjAwNDc2OSwgMC4wMDQ3NjgsIDAuMDA0NzY2LCAwLjAwNDc2NiIsIFwKLSAgICAgICAgICAiMC4wMDQ3NzksIDAuMDA0Nzc4LCAwLjAwNDc3MSwgMC4wMDQ3NjcsIDAuMDA0NzY1LCAwLjAwNDc2NCwgMC4wMDQ3NjMiLCBcCi0gICAgICAgICAgIjAuMDA0ODE5LCAwLjAwNDgxOCwgMC4wMDQ4MTEsIDAuMDA0ODA3LCAwLjAwNDgwNSwgMC4wMDQ4MDMsIDAuMDA0ODAyIiwgXAotICAgICAgICAgICIwLjAwNDg4NiwgMC4wMDQ4ODUsIDAuMDA0ODc4LCAwLjAwNDg3MywgMC4wMDQ4NzEsIDAuMDA0ODY5LCAwLjAwNDg2OSIsIFwKLSAgICAgICAgICAiMC4wMDQ5MzUsIDAuMDA0OTM0LCAwLjAwNDkyNiwgMC4wMDQ5MjEsIDAuMDA0OTE5LCAwLjAwNDkxNywgMC4wMDQ5MTYiLCBcCi0gICAgICAgICAgIjAuMDA1MDM5LCAwLjAwNTAzOCwgMC4wMDUwMzEsIDAuMDA1MDI1LCAwLjAwNTAyMywgMC4wMDUwMiwgMC4wMDUwMiIsIFwKLSAgICAgICAgICAiMC4wMDUxNDQsIDAuMDA1MTQzLCAwLjAwNTEzNiwgMC4wMDUxMywgMC4wMDUxMjgsIDAuMDA1MTI1LCAwLjAwNTEyNCIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBUTEFUU1JYMiAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoVExBVFNSWDIpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMS4xMjMyMjsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBsYXRjaCAoUUlOVCxONSkgewotICAgIGRhdGFfaW4gOiAiRCI7Ci0gICAgZW5hYmxlIDogIihHIFJOKSI7Ci0gICAgcHJlc2V0IDogIighU04pIjsKLSAgfQotICBwaW4oRCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjIxOTU2OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYyMDU2OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDYyMTk1NjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyODYsIDAuMDAwMjg5LCAwLjAwMDI5LCAwLjAwMDI5LCAwLjAwMDI5LCAwLjAwMDI5MSwgMC4wMDAyOTEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAzMTMsIDAuMDAwMzAyLCAwLjAwMDMwMSwgMC4wMDAzLCAwLjAwMDI5OSwgMC4wMDAyOTgsIDAuMDAwMjk4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkciOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX2ZhbGxpbmc7Ci0gICAgICB3aGVuIDogIlJOJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIlJOX0VRXzFfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMTI1LCAtMC4wMDEyNSwgMC4wMDUsIDAuMDExMjUsIDAuMDE3NSwgMC4wMjEyNSwgMC4wMyIsIFwKLSAgICAgICAgICAiLTAuMDE3NSwgLTAuMDA2MjUsIDAsIDAuMDA2MjUsIDAuMDEyNSwgMC4wMTYyNSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxODc1LCAtMC4wMDYyNSwgMCwgMC4wMDYyNSwgMC4wMSwgMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDI1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMCwgMC4wMDM3NSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIC0wLjAwMjUsIDAiLCBcCi0gICAgICAgICAgIi0wLjA0NjI1LCAtMC4wMzUsIC0wLjAyODc1LCAtMC4wMjI1LCAtMC4wMTYyNSwgLTAuMDA2MjUsIC0wLjAwMzc1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDQzNzUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTUsIC0wLjAxMjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMzEyNSwgLTAuMDI2MjUsIC0wLjAyLCAtMC4wMTM3NSwgLTAuMDEzNzUsIC0wLjAxLCAtMC4wMTM3NSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAyMTI1LCAtMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAyMTI1LCAtMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAzMTI1LCAtMC4wMjc1LCAtMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjA1NSwgLTAuMDQzNzUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzc1LCAtMC4wMzM3NSwgLTAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjA1ODc1LCAtMC4wNTM3NSwgLTAuMDQ3NSwgLTAuMDQxMjUsIC0wLjA0MTI1LCAtMC4wMzc1LCAtMC4wMzUiLCBcCi0gICAgICAgICAgIi0wLjA2MTI1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDQ2MjUsIC0wLjA0Mzc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkciOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9mYWxsaW5nOwotICAgICAgd2hlbiA6ICJSTiZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJSTl9FUV8xX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDI1LCAwLjAxMzc1LCAwLjAwNzUsIDAuMDAxMjUsIC0wLjAwNSwgLTAuMDA4NzUsIC0wLjAxNzUiLCBcCi0gICAgICAgICAgIjAuMDMsIDAuMDI1LCAwLjAxMjUsIDAuMDA2MjUsIDAsIC0wLjAwMzc1LCAtMC4wMTI1IiwgXAotICAgICAgICAgICIwLjAzNjI1LCAwLjAzMTI1LCAwLjAxODc1LCAwLjAxMjUsIDAuMDA2MjUsIDAuMDAyNSwgMCIsIFwKLSAgICAgICAgICAiMC4wNDI1LCAwLjAzNzUsIDAuMDI1LCAwLjAxODc1LCAwLjAxMjUsIDAuMDA4NzUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMDQ4NzUsIDAuMDQzNzUsIDAuMDMxMjUsIDAuMDI1LCAwLjAxODc1LCAwLjAxNSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiMC4wNTg3NSwgMC4wNDc1LCAwLjA0MTI1LCAwLjAzNSwgMC4wMjg3NSwgMC4wMTg3NSwgMC4wMTYyNSIsIFwKLSAgICAgICAgICAiMC4wNjEyNSwgMC4wNTYyNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyNzUsIDAuMDE4NzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDM3NSwgMC4wMzg3NSwgMC4wMzI1LCAwLjAzMjUsIDAuMDMyNSwgMC4wMjg3NSwgMC4wMzI1IiwgXAotICAgICAgICAgICIwLjA0ODc1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDM3NSwgMC4wMzc1LCAwLjAzMzc1LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIjAuMDU1LCAwLjA1LCAwLjA0Mzc1LCAwLjA0Mzc1LCAwLjA0Mzc1LCAwLjA0LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjA2MTI1LCAwLjA1NjI1LCAwLjA1LCAwLjA1LCAwLjA1LCAwLjA0NjI1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNSwgMC4wNSwgMC4wNTI1LCAwLjA1IiwgXAotICAgICAgICAgICIwLjA3MTI1LCAwLjA2NjI1LCAwLjA2LCAwLjA2LCAwLjA2LCAwLjA1NjI1LCAwLjA1Mzc1IiwgXAotICAgICAgICAgICIwLjA4LCAwLjA2ODc1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDYyNSwgMC4wNTg3NSwgMC4wNTYyNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRykgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjMzNzM5OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYzMzczOTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA1MTUyNzc7Ci0gICAgY2xvY2sgOiB0cnVlOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjcxMSwgMC4wMDI2OTEsIDAuMDAyNzYsIDAuMDAyODYzLCAwLjAwMjk5NSwgMC4wMDMxNzEsIDAuMDAzMzM1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzM3LCAwLjAwMDMzOCwgMC4wMDAzMzcsIDAuMDAwMzM3LCAwLjAwMDMzNywgMC4wMDAzMzcsIDAuMDAwMzM4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkciOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFEJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMTMzOTQzLCAwLjE0MTM0MywgMC4xNTA2ODEsIDAuMTU5MDMyLCAwLjE2NjAwNywgMC4xNzUzLCAwLjE4MjcwMSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjY4NDg2OwotICAgIGZ1bmN0aW9uIDogIlFJTlQiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkQiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4ODk3NCwgMC4xNjY2NSwgMC4yMjg5NTcsIDAuMzA2MzAxLCAwLjM4MzY4OCwgMC40NjIxMjIsIDAuNTM5ODM5IiwgXAotICAgICAgICAgICIwLjA5NTE0LCAwLjE3Mjg0MiwgMC4yMzUxMzcsIDAuMzEyMzY1LCAwLjM5MDU4MiwgMC40Njc4NDEsIDAuNTQ1MDUyIiwgXAotICAgICAgICAgICIwLjEwMjI5MiwgMC4xNzk5OSwgMC4yNDIxOTMsIDAuMzE5NTAyLCAwLjM5NzE4MSwgMC40NzU0MjcsIDAuNTUyMTk0IiwgXAotICAgICAgICAgICIwLjEwODY1MywgMC4xODYxMiwgMC4yNDg2MSwgMC4zMjU4MSwgMC40MDQwNTgsIDAuNDgxMDE0LCAwLjU1OTQxNyIsIFwKLSAgICAgICAgICAiMC4xMTQwNjEsIDAuMTkxNTc2LCAwLjI1Mzk3NywgMC4zMzEyMDUsIDAuNDA5NDMxLCAwLjQ4NjQ2NCwgMC41NjM5MDEiLCBcCi0gICAgICAgICAgIjAuMTIxMzY0LCAwLjE5OTA2MiwgMC4yNjEwNTksIDAuMzM4NjU3LCAwLjQxNjczMSwgMC40OTM5NjIsIDAuNTcxMzAyIiwgXAotICAgICAgICAgICIwLjEyNjk2NSwgMC4yMDQ1NjcsIDAuMjY2ODU1LCAwLjM0NDU2NCwgMC40MjIyMjEsIDAuNDk5Mzk5LCAwLjU3Njg3MyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzc0NzIsIDAuMjAwMDE2LCAwLjMzMDkwOSwgMC40OTMyNjYsIDAuNjU2MTQ3LCAwLjgyMDg3NiwgMC45ODQxOTkiLCBcCi0gICAgICAgICAgIjAuMDM3NDc5LCAwLjE5OTk4NCwgMC4zMzA5MjQsIDAuNDkyNjI2LCAwLjY1NzE3LCAwLjgyMDI4MywgMC45ODE4MTkiLCBcCi0gICAgICAgICAgIjAuMDM3NDgsIDAuMTk5OTgzLCAwLjMzMDc0NSwgMC40OTMyMywgMC42NTU4OTYsIDAuODIwODU2LCAwLjk4MTk3OCIsIFwKLSAgICAgICAgICAiMC4wMzc1MDEsIDAuMTk5NjQ1LCAwLjMzMDY2NSwgMC40OTI5NzYsIDAuNjU3MTAyLCAwLjgxODQ2NSwgMC45ODM0NjMiLCBcCi0gICAgICAgICAgIjAuMDM3NTA2LCAwLjE5OTgyLCAwLjMzMDg1NCwgMC40OTMzNTIsIDAuNjU3NSwgMC44MTk0NjYsIDAuOTgyMTA2IiwgXAotICAgICAgICAgICIwLjAzNzUzMSwgMC4yMDAwMzUsIDAuMzMwMjE1LCAwLjQ5MzQ2LCAwLjY1NzI4NCwgMC44MTkyNzUsIDAuOTgyNjYzIiwgXAotICAgICAgICAgICIwLjAzNzQ2NCwgMC4yMDAwMDksIDAuMzMwNzIyLCAwLjQ5Mzk3LCAwLjY1NzAwNSwgMC44MTk3OTEsIDAuOTgyMzA1Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwNjM3OSwgMC4xODI0MzgsIDAuMjQzMjcsIDAuMzE5NDY2LCAwLjM5NTg1LCAwLjQ3MTg5OCwgMC41NDgxNzEiLCBcCi0gICAgICAgICAgIjAuMTEyMjc0LCAwLjE4ODQyNywgMC4yNDkzNzMsIDAuMzI1NTgyLCAwLjQwMTY5NywgMC40Nzc3MjQsIDAuNTU0MTU4IiwgXAotICAgICAgICAgICIwLjExODYzOCwgMC4xOTQ2NDYsIDAuMjU1NTAzLCAwLjMzMTc1NCwgMC40MDgxMDIsIDAuNDg0MTQxLCAwLjU2MDQ1OSIsIFwKLSAgICAgICAgICAiMC4xMjQzNiwgMC4yMDA0NDksIDAuMjYxNDA1LCAwLjMzNzYwOSwgMC40MTM3MjYsIDAuNDg5NzQ5LCAwLjU2NjE2NyIsIFwKLSAgICAgICAgICAiMC4xMjkwNDMsIDAuMjA1MTksIDAuMjY2MDE2LCAwLjM0MjI5MiwgMC40MTg1OSwgMC40OTQ2MjUsIDAuNTcwNTkiLCBcCi0gICAgICAgICAgIjAuMTM1NTIzLCAwLjIxMTY2NiwgMC4yNzI0NjYsIDAuMzQ4NzgzLCAwLjQyNDg5OSwgMC41MDA5MjcsIDAuNTc3MzExIiwgXAotICAgICAgICAgICIwLjE0MDM3MywgMC4yMTY2MTgsIDAuMjc3NTQsIDAuMzUzNTc0LCAwLjQyOTk1NiwgMC41MDU4NzQsIDAuNTgyMjU5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzNjcyNiwgMC4xOTM1NzQsIDAuMzE5ODMsIDAuNDc3ODQ5LCAwLjYzNTQ3OSwgMC43OTU0MzgsIDAuOTUxNzU5IiwgXAotICAgICAgICAgICIwLjAzNjU4NSwgMC4xOTM1MDYsIDAuMzIwNDA1LCAwLjQ3ODc2MiwgMC42MzcwNDEsIDAuNzkzMjc4LCAwLjk1MTYwNyIsIFwKLSAgICAgICAgICAiMC4wMzY2MywgMC4xOTM1NzQsIDAuMzE5ODc3LCAwLjQ3ODU5OCwgMC42MzUzMDcsIDAuNzk1NDQ2LCAwLjk1MTE3NCIsIFwKLSAgICAgICAgICAiMC4wMzY1NDksIDAuMTkzNTU0LCAwLjMyMDQwOCwgMC40Nzg4MTksIDAuNjM3MTE2LCAwLjc5MzI2OSwgMC45NTE3NzIiLCBcCi0gICAgICAgICAgIjAuMDM2NTcsIDAuMTkzNDk5LCAwLjMxOTc2OSwgMC40Nzg4MzMsIDAuNjM1MjUzLCAwLjc5NTQ0OCwgMC45NTIxNDgiLCBcCi0gICAgICAgICAgIjAuMDM2NTEyLCAwLjE5MzQ0MSwgMC4zMTk4MjQsIDAuNDc4Nzg2LCAwLjYzNzAyNywgMC43OTQzMzEsIDAuOTUzNTAyIiwgXAotICAgICAgICAgICIwLjAzNjY3NiwgMC4xOTM1NDMsIDAuMzIwMzY4LCAwLjQ3Nzk3OSwgMC42MzU2ODUsIDAuNzk0MzUsIDAuOTUzNDAxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkciOwotICAgICAgdGltaW5nX3NlbnNlIDogbm9uX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiByaXNpbmdfZWRnZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTI2NjE0LCAwLjIwNDM0MSwgMC4yNjY2MzgsIDAuMzQ0MzI2LCAwLjQyMjA5NywgMC40OTkwNzYsIDAuNTc2NTY0IiwgXAotICAgICAgICAgICIwLjEzNDA4MywgMC4yMTE3ODQsIDAuMjc0MDY1LCAwLjM1MTIyNywgMC40Mjk1MzksIDAuNTA2NDc5LCAwLjU4NDMyNiIsIFwKLSAgICAgICAgICAiMC4xNDM0NDgsIDAuMjIxMTgsIDAuMjgzNDY0LCAwLjM2MTE5LCAwLjQzODY3NCwgMC41MTU4NjMsIDAuNTk0MzEiLCBcCi0gICAgICAgICAgIjAuMTUxNDQ2LCAwLjIyOTE5OSwgMC4yOTE0MjgsIDAuMzY4NzE4LCAwLjQ0NjQ4NCwgMC41MjM5MjcsIDAuNjAxNDIyIiwgXAotICAgICAgICAgICIwLjE1NzkzLCAwLjIzNTY2LCAwLjI5Nzk0NCwgMC4zNzU2NjMsIDAuNDUzMzk0LCAwLjUzMDMzNSwgMC42MDg3NzUiLCBcCi0gICAgICAgICAgIjAuMTY2NTk0LCAwLjI0NDExMywgMC4zMDY1MjgsIDAuMzgzODQsIDAuNDYxNDIyLCAwLjUzOTc1MywgMC42MTcwNDciLCBcCi0gICAgICAgICAgIjAuMTczNTIsIDAuMjUxMDE0LCAwLjMxMzI0NCwgMC4zOTA4NzcsIDAuNDY4OTYyLCAwLjU0NTkzMywgMC42MjQyOTQiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM3NTksIDAuMTk5OTIzLCAwLjMzMDg3NSwgMC40OTQwNjQsIDAuNjU3NTQ1LCAwLjgxODk0LCAwLjk4MTk0MSIsIFwKLSAgICAgICAgICAiMC4wMzc1MjUsIDAuMjAwMDQ4LCAwLjMzMDkwMSwgMC40OTMxNjksIDAuNjU3NjA5LCAwLjgxOTM1NywgMC45ODI0MDgiLCBcCi0gICAgICAgICAgIjAuMDM3NDQyLCAwLjE5OTkxMiwgMC4zMzA4NzksIDAuNDk0MjE3LCAwLjY1Njg1NiwgMC44MTk0MTYsIDAuOTgzOTE2IiwgXAotICAgICAgICAgICIwLjAzNzQwNSwgMC4xOTk5MjMsIDAuMzMwNzc1LCAwLjQ5MjYyMywgMC42NTY0NjQsIDAuODE4OTcyLCAwLjk4MjA1MyIsIFwKLSAgICAgICAgICAiMC4wMzc0NDUsIDAuMTk5OTA2LCAwLjMzMDg3OCwgMC40OTQyMDEsIDAuNjU3NTMzLCAwLjgxOTI1LCAwLjk4Mzg1MyIsIFwKLSAgICAgICAgICAiMC4wMzc0NjYsIDAuMTk5NjExLCAwLjMzMDI5NiwgMC40OTMwOTQsIDAuNjU2MTA5LCAwLjgyMDc3NSwgMC45ODI0MjMiLCBcCi0gICAgICAgICAgIjAuMDM3NTU1LCAwLjE5OTkwMywgMC4zMzAyNzQsIDAuNDkzMjIsIDAuNjU3NDkzLCAwLjgxOTE5MywgMC45ODM4NzciKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTMzOTQzLCAwLjIwOTk5MSwgMC4yNzA5ODksIDAuMzQ3MTk0LCAwLjQyMzMwNiwgMC40OTk3NTgsIDAuNTc1NzE1IiwgXAotICAgICAgICAgICIwLjE0MTM0MywgMC4yMTczODIsIDAuMjc4Mzk2LCAwLjM1NDU5MiwgMC40MzA3MDUsIDAuNTA2NzM3LCAwLjU4MzExMyIsIFwKLSAgICAgICAgICAiMC4xNTA2ODEsIDAuMjI2Nzk1LCAwLjI4NzY0LCAwLjM2Mzk3MSwgMC40NDAwOCwgMC41MTYxMTcsIDAuNTkyNDkyIiwgXAotICAgICAgICAgICIwLjE1OTAzMiwgMC4yMzUxNDQsIDAuMjk1OTk1LCAwLjM3MjMyMiwgMC40NDg0MzIsIDAuNTI0NDcsIDAuNjAwODQyIiwgXAotICAgICAgICAgICIwLjE2NjAwNywgMC4yNDIwOTIsIDAuMzAzMDU0LCAwLjM3OTI5OSwgMC40NTU0MSwgMC41MzE0MzksIDAuNjA3ODIxIiwgXAotICAgICAgICAgICIwLjE3NTMsIDAuMjUxMzY3LCAwLjMxMjM1LCAwLjM4ODU4OSwgMC40NjQ3LCAwLjU0MDczOCwgMC42MTcxMDkiLCBcCi0gICAgICAgICAgIjAuMTgyNzAxLCAwLjI1ODc4NywgMC4zMTk2NzIsIDAuMzk2MDA1LCAwLjQ3MjEyMiwgMC41NDg1NTIsIDAuNjI0NTEyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzNjY3OCwgMC4xOTM2MDQsIDAuMzIwNDE0LCAwLjQ3ODg2NiwgMC42MzcxMTQsIDAuNzkzNTQ3LCAwLjk1MzgyNSIsIFwKLSAgICAgICAgICAiMC4wMzY1NDUsIDAuMTkzNjIzLCAwLjMyMDQyMSwgMC40Nzg4NjQsIDAuNjM3MTE4LCAwLjc5NDE0MywgMC45NTM3OTUiLCBcCi0gICAgICAgICAgIjAuMDM2NjA0LCAwLjE5MzU5MSwgMC4zMTk4NDMsIDAuNDc4ODYzLCAwLjYzNzExNywgMC43OTM5NTgsIDAuOTUzODAxIiwgXAotICAgICAgICAgICIwLjAzNjYxOSwgMC4xOTM1OTMsIDAuMzIwMTA1LCAwLjQ3ODg2NiwgMC42MzcxMTgsIDAuNzk0MTM5LCAwLjk1MzgxIiwgXAotICAgICAgICAgICIwLjAzNjYxOCwgMC4xOTM1NywgMC4zMjAzNzksIDAuNDc4ODY3LCAwLjYzNzExOSwgMC43OTM0MzksIDAuOTUzODA5IiwgXAotICAgICAgICAgICIwLjAzNjU4OCwgMC4xOTM1ODgsIDAuMzIwMzgzLCAwLjQ3ODg2LCAwLjYzNzExNCwgMC43OTQyMDMsIDAuOTUzNzk5IiwgXAotICAgICAgICAgICIwLjAzNjU4OSwgMC4xOTM2MTIsIDAuMzE5NjQ2LCAwLjQ3ODc4MSwgMC42MzcwNzUsIDAuNzk0MDg2LCAwLjk1MzY0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiByaXNpbmdfZWRnZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTI4NzA3LCAwLjIwNjQzNCwgMC4yNjg3MjksIDAuMzQ2NDIzLCAwLjQyNDE4NywgMC41MDExNTksIDAuNTc4NjUyIiwgXAotICAgICAgICAgICIwLjEzNDg1OCwgMC4yMTI1OTcsIDAuMjc0ODczLCAwLjM1MjU5MSwgMC40MzAzMjcsIDAuNTA3MzI0LCAwLjU4NDgxOCIsIFwKLSAgICAgICAgICAiMC4xNDIyNDksIDAuMjE5OTk0LCAwLjI4MjI3OSwgMC4zNjAwMTgsIDAuNDM3NDUyLCAwLjUxNDY3OSwgMC41OTI2NDQiLCBcCi0gICAgICAgICAgIjAuMTQ4NDY2LCAwLjIyNjE4NSwgMC4yODg0NjUsIDAuMzY1NzM1LCAwLjQ0MzU2NywgMC41MjA5NDksIDAuNTk4NDMiLCBcCi0gICAgICAgICAgIjAuMTUzNjQzLCAwLjIzMTM3NywgMC4yOTM2NTcsIDAuMzcxMDc1LCAwLjQ0OTExNCwgMC41MjYwODYsIDAuNjA0NDg4IiwgXAotICAgICAgICAgICIwLjE2MDY5NCwgMC4yMzgyODcsIDAuMzAwNzI4LCAwLjM3Nzk1OCwgMC40NTYxODQsIDAuNTMzMTgxLCAwLjYxMTU1NCIsIFwKLSAgICAgICAgICAiMC4xNjYyMSwgMC4yNDM5MTUsIDAuMzA2MTM4LCAwLjM4MzQzMywgMC40NjE2NzksIDAuNTM4Nzc5LCAwLjYxNjE0NCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzc1ODgsIDAuMTk5OTIsIDAuMzMwNjM0LCAwLjQ5NDA4MiwgMC42NTc1NDQsIDAuODE5MTg4LCAwLjk4MTk5NiIsIFwKLSAgICAgICAgICAiMC4wMzc1OTEsIDAuMTk5OTA1LCAwLjMzMDg4NywgMC40OTQyMSwgMC42NTc1NTUsIDAuODE5MDY4LCAwLjk4MjA4MyIsIFwKLSAgICAgICAgICAiMC4wMzc1ODgsIDAuMTk5ODk5LCAwLjMzMDY0OCwgMC40OTQyNiwgMC42NTY5MDEsIDAuODE5MTIsIDAuOTgzNjIyIiwgXAotICAgICAgICAgICIwLjAzNzQ3OSwgMC4xOTk5MzEsIDAuMzMwODksIDAuNDkzMTUxLCAwLjY1NzExNSwgMC44MTkyOTMsIDAuOTgxOTc2IiwgXAotICAgICAgICAgICIwLjAzNzU4OCwgMC4xOTk5MDMsIDAuMzMwODcyLCAwLjQ5MzMzNCwgMC42NTc1NDIsIDAuODE5MDk3LCAwLjk4MzkxOSIsIFwKLSAgICAgICAgICAiMC4wMzc0MDUsIDAuMTk5NzkxLCAwLjMzMDg4MywgMC40OTMzODksIDAuNjU3NTY1LCAwLjgxOTA4OSwgMC45ODM4NzEiLCBcCi0gICAgICAgICAgIjAuMDM3NjUzLCAwLjE5OTk3OSwgMC4zMzA2OTEsIDAuNDkzMzE1LCAwLjY1NzU2MywgMC44MTk2NTQsIDAuOTgxOTUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUk4iOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGZhbGxpbmdfZWRnZTsKLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTM2MDE5LCAwLjIxMjEwNiwgMC4yNzI5NSwgMC4zNDkyNjIsIDAuNDI1Mzc1LCAwLjUwMTQwNywgMC41Nzc4MzQiLCBcCi0gICAgICAgICAgIjAuMTQ0MDEzLCAwLjIyMDE4OCwgMC4yODEwMTksIDAuMzU3MzYsIDAuNDMzNDcsIDAuNTA5NTA4LCAwLjU4NTkyOSIsIFwKLSAgICAgICAgICAiMC4xNTI4NTUsIDAuMjI4OTM4LCAwLjI4OTc2OSwgMC4zNjYwNTQsIDAuNDQyMDYsIDAuNTE4NDEyLCAwLjU5NDUwMSIsIFwKLSAgICAgICAgICAiMC4xNjAxNDksIDAuMjM2Mjg2LCAwLjI5NzE4MywgMC4zNzM0MzksIDAuNDQ5NTU2LCAwLjUyNTU4MywgMC42MDIwMTMiLCBcCi0gICAgICAgICAgIjAuMTY2NjY0LCAwLjI0Mjg4NywgMC4zMDM2MjksIDAuMzc5OTQ0LCAwLjQ1NjA0NywgMC41MzIwODgsIDAuNjA4MTUxIiwgXAotICAgICAgICAgICIwLjE3NTk0OCwgMC4yNTE5ODQsIDAuMzEyOTk1LCAwLjM4OTE3MSwgMC40NjUyODYsIDAuNTQxMzA3LCAwLjYxNzcyMiIsIFwKLSAgICAgICAgICAiMC4xODMxNjksIDAuMjU5MTg5LCAwLjMyMDE5LCAwLjM5NjQzMywgMC40NzI1NDYsIDAuNTQ4NTYzLCAwLjYyNDY3MSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzY3MTgsIDAuMTkzNTc0LCAwLjMyMDEyLCAwLjQ3ODc2NSwgMC42MzY5MzksIDAuNzk1MTc5LCAwLjk1MTg1NSIsIFwKLSAgICAgICAgICAiMC4wMzY3MDgsIDAuMTkzNTM0LCAwLjMxOTgwNSwgMC40Nzg3NjksIDAuNjM2OTk4LCAwLjc5NTE1OCwgMC45NTE5OTEiLCBcCi0gICAgICAgICAgIjAuMDM2NjQzLCAwLjE5MzU2OSwgMC4zMTk4NDgsIDAuNDc4NzY4LCAwLjYzNjkyMywgMC43OTUyMSwgMC45NTMzMDQiLCBcCi0gICAgICAgICAgIjAuMDM2NjEzLCAwLjE5MzU0NywgMC4zMTk4MjYsIDAuNDc4NzY2LCAwLjYzNjk0NiwgMC43OTQyMzgsIDAuOTUyMDMxIiwgXAotICAgICAgICAgICIwLjAzNjY2MywgMC4xOTM1NzIsIDAuMzIwMzkxLCAwLjQ3ODc2OCwgMC42MzY5NDEsIDAuNzk0MTU0LCAwLjk1MTk4NSIsIFwKLSAgICAgICAgICAiMC4wMzY3MjgsIDAuMTkzNjE1LCAwLjMyMDQyLCAwLjQ3ODc2MSwgMC42MzY5MjYsIDAuNzk1MTE4LCAwLjk1MzUxMiIsIFwKLSAgICAgICAgICAiMC4wMzY2MzUsIDAuMTkzNjY5LCAwLjMyMDM4MywgMC40Nzg3NTMsIDAuNjM2OTIsIDAuNzk0NDE2LCAwLjk1MzIxOCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcHJlc2V0OwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTY1MDQsIDAuMTM0MTg1LCAwLjE5NjEzMSwgMC4yNzM5NTEsIDAuMzUxNzgsIDAuNDI5NTExLCAwLjUwNjczOSIsIFwKLSAgICAgICAgICAiMC4wNjQ2OTUsIDAuMTQyMzc2LCAwLjIwNDY2NSwgMC4yODIxNTksIDAuMzYwMDAyLCAwLjQzNzU5MSwgMC41MTUyNzciLCBcCi0gICAgICAgICAgIjAuMDc0ODMxLCAwLjE1MjUzOSwgMC4yMTQ4MiwgMC4yOTIyNzEsIDAuMzcwMTU5LCAwLjQ0NzUyMywgMC41MjUzMDQiLCBcCi0gICAgICAgICAgIjAuMDgzMDksIDAuMTYwNjk1LCAwLjIyMjkyNSwgMC4zMDA1OTgsIDAuMzc4Mjc2LCAwLjQ1NTk2NywgMC41MzM1OTgiLCBcCi0gICAgICAgICAgIjAuMDg5NjQ4LCAwLjE2NzEyOCwgMC4yMjkxMDgsIDAuMzA3MDI3LCAwLjM4NDY4OCwgMC40NjIzODksIDAuNTQwMDg4IiwgXAotICAgICAgICAgICIwLjA5ODEzNSwgMC4xNzU0OTIsIDAuMjM3NTI3LCAwLjMxNTI1OCwgMC4zOTMwMTEsIDAuNDcwNjc3LCAwLjU0NzgzNSIsIFwKLSAgICAgICAgICAiMC4xMDQyMzYsIDAuMTgxNjIzLCAwLjI0MzY5NiwgMC4zMjEzNywgMC4zOTkwOTksIDAuNDc2NjkzLCAwLjU1NDIwOSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzc1MiwgMC4yMDAwMDEsIDAuMzMwMzk3LCAwLjQ5Mzc1LCAwLjY1Njc5LCAwLjgxOTk0OCwgMC45ODMwODUiLCBcCi0gICAgICAgICAgIjAuMDM3NTkxLCAwLjE5OTkwMywgMC4zMzA2MDksIDAuNDkzNjc1LCAwLjY1NjkxNSwgMC44MjAzMTUsIDAuOTgzMjA2IiwgXAotICAgICAgICAgICIwLjAzNzU2NywgMC4yMDAwMjIsIDAuMzMwODc5LCAwLjQ5MzkxNCwgMC42NTcxNjcsIDAuODE5MzkxLCAwLjk4MzUxNyIsIFwKLSAgICAgICAgICAiMC4wMzc2MTQsIDAuMTk5OTY2LCAwLjMzMDc5NywgMC40OTM5NDEsIDAuNjU3MDgxLCAwLjgyMDI0NSwgMC45ODM0MTkiLCBcCi0gICAgICAgICAgIjAuMDM3Nzk4LCAwLjIwMDAxNywgMC4zMzA0MTEsIDAuNDkzNzgxLCAwLjY1NjkzLCAwLjgyMDAzMSwgMC45ODMyODQiLCBcCi0gICAgICAgICAgIjAuMDM3ODQsIDAuMTk5ODM3LCAwLjMzMDU3MiwgMC40OTM2NzQsIDAuNjU2ODc4LCAwLjgyMDAwMywgMC45ODI2NDciLCBcCi0gICAgICAgICAgIjAuMDM3OTU2LCAwLjE5OTgxMiwgMC4zMzA1NDMsIDAuNDkzMjU4LCAwLjY1NjkxMiwgMC44MjAwMzYsIDAuOTgyMjg4Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3MTYzNiwgMC4xNDc3NzQsIDAuMjA4NjE0LCAwLjI4NDkzLCAwLjM2MTA0NywgMC40MzcwNzYsIDAuNTEzNTA3IiwgXAotICAgICAgICAgICIwLjA3NzcxNiwgMC4xNTM4OSwgMC4yMTQ3MTQsIDAuMjkxMDA3LCAwLjM2NzEyNCwgMC40NDMxNDQsIDAuNTE5NTI0IiwgXAotICAgICAgICAgICIwLjA4NTU1NCwgMC4xNjE3NjYsIDAuMjIyNTkxLCAwLjI5ODgyNiwgMC4zNzUwMjgsIDAuNDUxMDUsIDAuNTI3NTQ0IiwgXAotICAgICAgICAgICIwLjA5MjY2NSwgMC4xNjg3NDQsIDAuMjI5NjI4LCAwLjMwNTk2MiwgMC4zODIwNzEsIDAuNDU4NTQ4LCAwLjUzNDQ4MyIsIFwKLSAgICAgICAgICAiMC4wOTkwNjksIDAuMTc1MTM1LCAwLjIzNTk3NSwgMC4zMTIzMDgsIDAuMzg4NDA4LCAwLjQ2NDQzNywgMC41NDA4MjciLCBcCi0gICAgICAgICAgIjAuMTA3OTE3LCAwLjE4NDA1NywgMC4yNDUwMTYsIDAuMzIxMDEyLCAwLjM5NzQ2NSwgMC40NzMzNywgMC41NDk4MTMiLCBcCi0gICAgICAgICAgIjAuMTE0NjkzLCAwLjE5MDcyNywgMC4yNTE3NCwgMC4zMjc4NzIsIDAuNDAzODY0LCAwLjQ4MDI0MywgMC41NTY0NDQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM2NTY5LCAwLjE5MzUzMSwgMC4zMTk3MjgsIDAuNDc4Nzg1LCAwLjYzNTMzNywgMC43OTU0ODEsIDAuOTUxNjEzIiwgXAotICAgICAgICAgICIwLjAzNjU4NywgMC4xOTM1MjYsIDAuMzE5NzEyLCAwLjQ3ODg1NCwgMC42MzcwOTEsIDAuNzkzOTQ0LCAwLjk1MzgwOCIsIFwKLSAgICAgICAgICAiMC4wMzY2NTQsIDAuMTkzNTM0LCAwLjMxOTc5LCAwLjQ3ODg2LCAwLjYzNTQ4OCwgMC43OTU0NTUsIDAuOTUzODIiLCBcCi0gICAgICAgICAgIjAuMDM2NzMzLCAwLjE5MzY1NiwgMC4zMjAwMjYsIDAuNDc4Nzk0LCAwLjYzNzA5OCwgMC43OTQwODUsIDAuOTUzNzk2IiwgXAotICAgICAgICAgICIwLjAzNjgxNCwgMC4xOTM2NDUsIDAuMzE5OTM5LCAwLjQ3ODc5OCwgMC42MzcwMzgsIDAuNzkzNjMzLCAwLjk1MzY4MSIsIFwKLSAgICAgICAgICAiMC4wMzY5NSwgMC4xOTM1OTYsIDAuMzIwNDAzLCAwLjQ3ODgwMSwgMC42MzY5MjksIDAuNzk1MzQ2LCAwLjk1MTczIiwgXAotICAgICAgICAgICIwLjAzNzIzOSwgMC4xOTM4MiwgMC4zMjA0MjMsIDAuNDc4NjcsIDAuNjM1NzEyLCAwLjc5NTMzLCAwLjk1MzY3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1NjUzLCAwLjAwNTcxNSwgMC4wMDU3MjQsIDAuMDA1NzI5LCAwLjAwNTczMSwgMC4wMDU3MzMsIDAuMDA1NzM0IiwgXAotICAgICAgICAgICIwLjAwNTYzNCwgMC4wMDU2OTcsIDAuMDA1NzA3LCAwLjAwNTcxLCAwLjAwNTcxMywgMC4wMDU3MTMsIDAuMDA1NzE1IiwgXAotICAgICAgICAgICIwLjAwNTY0MSwgMC4wMDU3MDQsIDAuMDA1NzEzLCAwLjAwNTcxOCwgMC4wMDU3MiwgMC4wMDU3MjIsIDAuMDA1NzIzIiwgXAotICAgICAgICAgICIwLjAwNTY2NSwgMC4wMDU3MjgsIDAuMDA1NzM3LCAwLjAwNTc0MiwgMC4wMDU3NDQsIDAuMDA1NzUyLCAwLjAwNTc0NyIsIFwKLSAgICAgICAgICAiMC4wMDU2OTUsIDAuMDA1NzU4LCAwLjAwNTc2OCwgMC4wMDU3NzIsIDAuMDA1Nzc1LCAwLjAwNTc3NiwgMC4wMDU3NzciLCBcCi0gICAgICAgICAgIjAuMDA1NzU5LCAwLjAwNTgyMiwgMC4wMDU4MzIsIDAuMDA1ODM2LCAwLjAwNTgzOSwgMC4wMDU4NDEsIDAuMDA1ODQyIiwgXAotICAgICAgICAgICIwLjAwNTgyOSwgMC4wMDU4OTEsIDAuMDA1OSwgMC4wMDU5MDQsIDAuMDA1OTA3LCAwLjAwNTkxLCAwLjAwNTkwOCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjMyLCAwLjAwNjM0MiwgMC4wMDYzNDUsIDAuMDA2MzQ2LCAwLjAwNjM0NywgMC4wMDYzNDcsIDAuMDA2MzQ3IiwgXAotICAgICAgICAgICIwLjAwNjMxMywgMC4wMDYzMzMsIDAuMDA2MzM1LCAwLjAwNjMzNiwgMC4wMDYzMzgsIDAuMDA2MzM3LCAwLjAwNjMzOCIsIFwKLSAgICAgICAgICAiMC4wMDYzMTYsIDAuMDA2MzM5LCAwLjAwNjM0MSwgMC4wMDYzNDEsIDAuMDA2MzQzLCAwLjAwNjM0MiwgMC4wMDYzNDMiLCBcCi0gICAgICAgICAgIjAuMDA2MzE4LCAwLjAwNjM0MywgMC4wMDYzNDYsIDAuMDA2MzQ4LCAwLjAwNjM0OSwgMC4wMDYzNDksIDAuMDA2MzQ5IiwgXAotICAgICAgICAgICIwLjAwNjM0NSwgMC4wMDYzNjksIDAuMDA2MzcyLCAwLjAwNjM3NCwgMC4wMDYzNzUsIDAuMDA2Mzc1LCAwLjAwNjM3NiIsIFwKLSAgICAgICAgICAiMC4wMDY0MjcsIDAuMDA2NDQ0LCAwLjAwNjQ0OCwgMC4wMDY0NSwgMC4wMDY0NSwgMC4wMDY0NTEsIDAuMDA2NDUxIiwgXAotICAgICAgICAgICIwLjAwNjQ5NSwgMC4wMDY1MDgsIDAuMDA2NTEzLCAwLjAwNjUxMywgMC4wMDY1MTIsIDAuMDA2NTExLCAwLjAwNjUxMSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkciOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjk1NSwgMC4wMDcwMiwgMC4wMDcwMjgsIDAuMDA3MDMzLCAwLjAwNzAzNSwgMC4wMDcwMzYsIDAuMDA3MDM3IiwgXAotICAgICAgICAgICIwLjAwNjk1MiwgMC4wMDcwMTUsIDAuMDA3MDI0LCAwLjAwNzAyOCwgMC4wMDcwMywgMC4wMDcwMzMsIDAuMDA3MDMzIiwgXAotICAgICAgICAgICIwLjAwNjk4NCwgMC4wMDcwNDksIDAuMDA3MDU3LCAwLjAwNzA2LCAwLjAwNzA2NCwgMC4wMDcwNjUsIDAuMDA3MDY4IiwgXAotICAgICAgICAgICIwLjAwNzA0MSwgMC4wMDcxMDUsIDAuMDA3MTEzLCAwLjAwNzExOCwgMC4wMDcxMTcsIDAuMDA3MTI0LCAwLjAwNzEyMiIsIFwKLSAgICAgICAgICAiMC4wMDcwODEsIDAuMDA3MTQ2LCAwLjAwNzE1NSwgMC4wMDcxNTksIDAuMDA3MTY0LCAwLjAwNzE2MywgMC4wMDcxNjYiLCBcCi0gICAgICAgICAgIjAuMDA3MTk0LCAwLjAwNzI1NiwgMC4wMDcyNjUsIDAuMDA3MjY5LCAwLjAwNzI3MSwgMC4wMDcyNzMsIDAuMDA3MjciLCBcCi0gICAgICAgICAgIjAuMDA3MjYzLCAwLjAwNzMzLCAwLjAwNzMzNSwgMC4wMDczMzksIDAuMDA3MzQyLCAwLjAwNzM0MywgMC4wMDczNDgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDc0NSwgMC4wMDc0NjksIDAuMDA3NDcxLCAwLjAwNzQ3MiwgMC4wMDc0NzMsIDAuMDA3NDczLCAwLjAwNzQ3MyIsIFwKLSAgICAgICAgICAiMC4wMDc0MzIsIDAuMDA3NDUzLCAwLjAwNzQ1NywgMC4wMDc0NTYsIDAuMDA3NDU4LCAwLjAwNzQ1NywgMC4wMDc0NTciLCBcCi0gICAgICAgICAgIjAuMDA3NDcxLCAwLjAwNzQ5MywgMC4wMDc0OTUsIDAuMDA3NDk3LCAwLjAwNzQ5NywgMC4wMDc0OTgsIDAuMDA3NDk3IiwgXAotICAgICAgICAgICIwLjAwNzUyNSwgMC4wMDc1NDcsIDAuMDA3NTQ5LCAwLjAwNzU1LCAwLjAwNzU1MSwgMC4wMDc1NTEsIDAuMDA3NTUxIiwgXAotICAgICAgICAgICIwLjAwNzU5LCAwLjAwNzYwNywgMC4wMDc2MDksIDAuMDA3NjEsIDAuMDA3NjEsIDAuMDA3NjExLCAwLjAwNzYxMSIsIFwKLSAgICAgICAgICAiMC4wMDc2OTksIDAuMDA3NzE2LCAwLjAwNzcxOCwgMC4wMDc3MTksIDAuMDA3NzE5LCAwLjAwNzcyLCAwLjAwNzcyIiwgXAotICAgICAgICAgICIwLjAwNzc2MywgMC4wMDc3ODEsIDAuMDA3NzgzLCAwLjAwNzc4NSwgMC4wMDc3ODksIDAuMDA3Nzg1LCAwLjAwNzc4NSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDY4MTIsIDAuMDA2ODc3LCAwLjAwNjg4NSwgMC4wMDY4OSwgMC4wMDY4OTIsIDAuMDA2ODk0LCAwLjAwNjg5NCIsIFwKLSAgICAgICAgICAiMC4wMDY4LCAwLjAwNjg2MywgMC4wMDY4NjksIDAuMDA2ODc0LCAwLjAwNjg3NSwgMC4wMDY4NzYsIDAuMDA2ODc4IiwgXAotICAgICAgICAgICIwLjAwNjgxNSwgMC4wMDY4NzksIDAuMDA2ODg3LCAwLjAwNjg5MiwgMC4wMDY4OTQsIDAuMDA2ODk1LCAwLjAwNjg5NiIsIFwKLSAgICAgICAgICAiMC4wMDY4NDEsIDAuMDA2OTA1LCAwLjAwNjkxMiwgMC4wMDY5MTgsIDAuMDA2OTIsIDAuMDA2OTIsIDAuMDA2OTIzIiwgXAotICAgICAgICAgICIwLjAwNjg5MSwgMC4wMDY5NTQsIDAuMDA2OTYyLCAwLjAwNjk2NywgMC4wMDY5NywgMC4wMDY5NywgMC4wMDY5NzEiLCBcCi0gICAgICAgICAgIjAuMDA2OTQ3LCAwLjAwNzAxMSwgMC4wMDcwMiwgMC4wMDcwMjUsIDAuMDA3MDI3LCAwLjAwNzAyOCwgMC4wMDcwMyIsIFwKLSAgICAgICAgICAiMC4wMDcwMzIsIDAuMDA3MDkxLCAwLjAwNzA5OSwgMC4wMDcxMDMsIDAuMDA3MTA2LCAwLjAwNzEwNywgMC4wMDcxMDgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDg1MTksIDAuMDA4NTM5LCAwLjAwODU0MSwgMC4wMDg1NDEsIDAuMDA4NTQzLCAwLjAwODU0MywgMC4wMDg1NDIiLCBcCi0gICAgICAgICAgIjAuMDA4NTE3LCAwLjAwODUzNiwgMC4wMDg1MzksIDAuMDA4NTM5LCAwLjAwODU0LCAwLjAwODU0LCAwLjAwODUzOSIsIFwKLSAgICAgICAgICAiMC4wMDg1NDcsIDAuMDA4NTY4LCAwLjAwODU2OSwgMC4wMDg1NzEsIDAuMDA4NTcxLCAwLjAwODU3MSwgMC4wMDg1NzEiLCBcCi0gICAgICAgICAgIjAuMDA4NTk4LCAwLjAwODYxNiwgMC4wMDg2MTgsIDAuMDA4NjE5LCAwLjAwODYyLCAwLjAwODYxOSwgMC4wMDg2MiIsIFwKLSAgICAgICAgICAiMC4wMDg2NiwgMC4wMDg2NzgsIDAuMDA4NjgsIDAuMDA4NjgxLCAwLjAwODY4MiwgMC4wMDg2ODIsIDAuMDA4NjgyIiwgXAotICAgICAgICAgICIwLjAwODczOSwgMC4wMDg3NTcsIDAuMDA4NzU5LCAwLjAwODc2LCAwLjAwODc2MSwgMC4wMDg3NjEsIDAuMDA4NzYxIiwgXAotICAgICAgICAgICIwLjAwODgyNywgMC4wMDg4NTMsIDAuMDA4ODU1LCAwLjAwODg1MiwgMC4wMDg4NTIsIDAuMDA4ODUzLCAwLjAwODg1MiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDYxODQsIDAuMDA2MjIzLCAwLjAwNjIyNywgMC4wMDYyMywgMC4wMDYyMzIsIDAuMDA2MjMyLCAwLjAwNjIzMyIsIFwKLSAgICAgICAgICAiMC4wMDYxNzEsIDAuMDA2MjE0LCAwLjAwNjIyLCAwLjAwNjIyNCwgMC4wMDYyMjQsIDAuMDA2MjI1LCAwLjAwNjIyNiIsIFwKLSAgICAgICAgICAiMC4wMDYyLCAwLjAwNjIzOCwgMC4wMDYyNDQsIDAuMDA2MjQ4LCAwLjAwNjI1LCAwLjAwNjI1MSwgMC4wMDYyNTEiLCBcCi0gICAgICAgICAgIjAuMDA2MjYzLCAwLjAwNjI5MSwgMC4wMDYyOTcsIDAuMDA2MywgMC4wMDYzMDQsIDAuMDA2MzA2LCAwLjAwNjMwNiIsIFwKLSAgICAgICAgICAiMC4wMDYzNDMsIDAuMDA2MzU4LCAwLjAwNjM2NCwgMC4wMDYzNjcsIDAuMDA2MzY5LCAwLjAwNjM3LCAwLjAwNjM3IiwgXAotICAgICAgICAgICIwLjAwNjQ4NiwgMC4wMDY0ODMsIDAuMDA2NDg3LCAwLjAwNjQ4OSwgMC4wMDY0OSwgMC4wMDY0OSwgMC4wMDY0OTIiLCBcCi0gICAgICAgICAgIjAuMDA2NjI3LCAwLjAwNjU5OSwgMC4wMDY2MDEsIDAuMDA2NjAxLCAwLjAwNjYwMSwgMC4wMDY2MDIsIDAuMDA2NjAyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0NTc4LCAwLjAwNDU5MywgMC4wMDQ1OTQsIDAuMDA0NTk4LCAwLjAwNDU5NCwgMC4wMDQ1OTksIDAuMDA0NTk0IiwgXAotICAgICAgICAgICIwLjAwNDUyOSwgMC4wMDQ1NTIsIDAuMDA0NTU0LCAwLjAwNDU1NSwgMC4wMDQ1NTYsIDAuMDA0NTU5LCAwLjAwNDU1NiIsIFwKLSAgICAgICAgICAiMC4wMDQ1NjgsIDAuMDA0NTgxLCAwLjAwNDU4MywgMC4wMDQ1ODQsIDAuMDA0NTg0LCAwLjAwNDU4NCwgMC4wMDQ1ODUiLCBcCi0gICAgICAgICAgIjAuMDA0NjE3LCAwLjAwNDYyMSwgMC4wMDQ2MjIsIDAuMDA0NjI0LCAwLjAwNDYyMywgMC4wMDQ2MjQsIDAuMDA0NjI0IiwgXAotICAgICAgICAgICIwLjAwNDY2MSwgMC4wMDQ2NjYsIDAuMDA0NjY1LCAwLjAwNDY2NywgMC4wMDQ2NjUsIDAuMDA0NjY2LCAwLjAwNDY2NyIsIFwKLSAgICAgICAgICAiMC4wMDQ3ODEsIDAuMDA0NzcsIDAuMDA0NzcsIDAuMDA0NzcxLCAwLjAwNDc3LCAwLjAwNDc3LCAwLjAwNDc2OSIsIFwKLSAgICAgICAgICAiMC4wMDQ4OTQsIDAuMDA0ODczLCAwLjAwNDg3LCAwLjAwNDg2OCwgMC4wMDQ4NjcsIDAuMDA0ODY3LCAwLjAwNDg2NiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUU4pICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC42ODkzNzg7Ci0gICAgZnVuY3Rpb24gOiAiTjUiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkQiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwNTM1NSwgMC4xODY5MTUsIDAuMjQ4NzE0LCAwLjMyNTg5OCwgMC40MDMxOSwgMC40ODAzMTQsIDAuNTU3NTgzIiwgXAotICAgICAgICAgICIwLjExMTI0OSwgMC4xOTI4MDcsIDAuMjU0NjA3LCAwLjMzMTgyOSwgMC40MDg5OTksIDAuNDg2MTgyLCAwLjU2MzQ3MyIsIFwKLSAgICAgICAgICAiMC4xMTc2MjEsIDAuMTk5MTg2LCAwLjI2MDk4MiwgMC4zMzgxNjcsIDAuNDE1NDcsIDAuNDkyNTg3LCAwLjU2OTg4OSIsIFwKLSAgICAgICAgICAiMC4xMjMzMzksIDAuMjA0OTE1LCAwLjI2NjcyMiwgMC4zNDM5NDMsIDAuNDIxMTE2LCAwLjQ5ODMxNSwgMC41NzU1NzYiLCBcCi0gICAgICAgICAgIjAuMTI4MDg5LCAwLjIwOTY4MywgMC4yNzE0NzksIDAuMzQ4Njg2LCAwLjQyNTk2OCwgMC41MDMwODMsIDAuNTgwMzQyIiwgXAotICAgICAgICAgICIwLjEzNDU1OCwgMC4yMTYxNzEsIDAuMjc3OTUxLCAwLjM1NTE3OCwgMC40MzIzNSwgMC41MDk1ODYsIDAuNTg2Nzk0IiwgXAotICAgICAgICAgICIwLjEzOTQyMSwgMC4yMjEwMjMsIDAuMjgyODI0LCAwLjM1OTk4NiwgMC40MzcyNjYsIDAuNTE0NDA5LCAwLjU5MTYzNCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTA1MDEsIDAuMjA0NzcsIDAuMzMyNjQsIDAuNDk0MzQsIDAuNjU2NDE2LCAwLjgyMDM1NiwgMC45ODE1NjMiLCBcCi0gICAgICAgICAgIjAuMDUwNTI0LCAwLjIwNDc4MSwgMC4zMzI5NSwgMC40OTQ4NzMsIDAuNjU3NDMsIDAuODE4NjQ5LCAwLjk4MTU4MiIsIFwKLSAgICAgICAgICAiMC4wNTA0ODksIDAuMjA0NzgxLCAwLjMzMjYxNywgMC40OTQ3MTcsIDAuNjU2Mzc3LCAwLjgyMDM2MywgMC45ODE1NTQiLCBcCi0gICAgICAgICAgIjAuMDUwNDk5LCAwLjIwNDc3NiwgMC4zMzI5NDksIDAuNDk0OTU2LCAwLjY1NzUyNSwgMC44MTg0NSwgMC45ODE1NTIiLCBcCi0gICAgICAgICAgIjAuMDUwNjE5LCAwLjIwNDgsIDAuMzMyNTI4LCAwLjQ5NDk5NiwgMC42NTYzNjIsIDAuODIwMzY1LCAwLjk4MTczMyIsIFwKLSAgICAgICAgICAiMC4wNTA2NzYsIDAuMjA0ODEyLCAwLjMzMjU1NywgMC40OTQ5OTUsIDAuNjU3NDc0LCAwLjgxOTIyNSwgMC45ODMwNTEiLCBcCi0gICAgICAgICAgIjAuMDUwNzY4LCAwLjIwNDg0OCwgMC4zMzI5NjIsIDAuNDk0Mzg2LCAwLjY1NjQxNiwgMC44MTkyNTksIDAuOTgyOTQzIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4NDk2MSwgMC4xNjIyNDYsIDAuMjIyOTY2LCAwLjI5ODgyMiwgMC4zNzQ3MjEsIDAuNDUwNTQ4LCAwLjUyNjQwMyIsIFwKLSAgICAgICAgICAiMC4wOTExMzEsIDAuMTY4NDE4LCAwLjIyOTE0MywgMC4zMDUwMTcsIDAuMzgwODcxLCAwLjQ1NjY5LCAwLjUzMjYzOSIsIFwKLSAgICAgICAgICAiMC4wOTgyODcsIDAuMTc1NTc3LCAwLjIzNjI3MywgMC4zMTIyNDksIDAuMzg4MDYxLCAwLjQ2Mzg2NiwgMC41Mzk3OTUiLCBcCi0gICAgICAgICAgIjAuMTA0NjUsIDAuMTgxOTQ5LCAwLjI0MjY2MywgMC4zMTg1MjEsIDAuMzk0Mzk0LCAwLjQ3MDI5NywgMC41NDYwMzgiLCBcCi0gICAgICAgICAgIjAuMTEwMDgyLCAwLjE4NzM4NiwgMC4yNDgwOTksIDAuMzI0MDUyLCAwLjM5OTgzOSwgMC40NzU3MDksIDAuNTUxNTk5IiwgXAotICAgICAgICAgICIwLjExNzQyMSwgMC4xOTQ3MzcsIDAuMjU1NDMzLCAwLjMzMTMxOCwgMC40MDcxODQsIDAuNDgzMDE3LCAwLjU1ODkxNSIsIFwKLSAgICAgICAgICAiMC4xMjMwMjYsIDAuMjAwMzM2LCAwLjI2MTAzOSwgMC4zMzY5MzEsIDAuNDEyNzU5LCAwLjQ4ODYyNCwgMC41NjQ0OTUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQyNDQsIDAuMTk0ODk1LCAwLjMyMDM2MSwgMC40NzcyMTIsIDAuNjM0MzUxLCAwLjc5MzIyMiwgMC45NTA5NzkiLCBcCi0gICAgICAgICAgIjAuMDQyNDM1LCAwLjE5NDg5NCwgMC4zMjAzNywgMC40NzY0MDIsIDAuNjM1NTI4LCAwLjc5Mjg4NCwgMC45NDkzMDkiLCBcCi0gICAgICAgICAgIjAuMDQyNDQ5LCAwLjE5NDg5NCwgMC4zMjAyNDksIDAuNDc2ODEyLCAwLjYzMzcwNSwgMC43OTMxOTYsIDAuOTQ5MzA4IiwgXAotICAgICAgICAgICIwLjA0MjQ5NiwgMC4xOTQ1MDcsIDAuMzIwMzI4LCAwLjQ3NjkxOCwgMC42MzU0ODEsIDAuNzkxMDU4LCAwLjk1MDkyMiIsIFwKLSAgICAgICAgICAiMC4wNDI1NDYsIDAuMTk0NzQ3LCAwLjMyMDI4MiwgMC40NzY5OTYsIDAuNjM1NDA3LCAwLjc5MjI2MiwgMC45NDkyNzgiLCBcCi0gICAgICAgICAgIjAuMDQyNjQyLCAwLjE5NDkyNSwgMC4zMTk5MjIsIDAuNDc3MjgzLCAwLjYzNTM1MywgMC43OTIyMSwgMC45NDk1MDkiLCBcCi0gICAgICAgICAgIjAuMDQyNzE3LCAwLjE5NDksIDAuMzIwMjMsIDAuNDc3Njg3LCAwLjYzNTIzMSwgMC43OTIyMDEsIDAuOTQ5NTMyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkciOwotICAgICAgdGltaW5nX3NlbnNlIDogbm9uX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiByaXNpbmdfZWRnZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTMzMDUsIDAuMjE0NjU5LCAwLjI3NjQ1OSwgMC4zNTM2NzcsIDAuNDMwODQ3LCAwLjUwODI0OCwgMC41ODUyODgiLCBcCi0gICAgICAgICAgIjAuMTQwNDQ5LCAwLjIyMjA2MywgMC4yODM4NywgMC4zNjEwODYsIDAuNDM4MjU2LCAwLjUxNTU1MSwgMC41OTI2OTciLCBcCi0gICAgICAgICAgIjAuMTQ5ODIzLCAwLjIzMTQzNiwgMC4yOTMyMjksIDAuMzcwNDY0LCAwLjQ0NzYzMiwgMC41MjQ5MjUsIDAuNjAyMDc2IiwgXAotICAgICAgICAgICIwLjE1ODE3NiwgMC4yMzk3ODksIDAuMzAxNTgxLCAwLjM3ODgxNiwgMC40NTU5ODUsIDAuNTMzMjg3LCAwLjYxMDQyOCIsIFwKLSAgICAgICAgICAiMC4xNjUxMzgsIDAuMjQ2NzQ0LCAwLjMwODUzNiwgMC4zODU3NjgsIDAuNDYyOTM3LCAwLjU0MDIwNCwgMC42MTczOCIsIFwKLSAgICAgICAgICAiMC4xNzQ0MzksIDAuMjU2MDQ4LCAwLjMxNzgzNywgMC4zOTUwNjcsIDAuNDcyMjM2LCAwLjU0OTU0MywgMC42MjY2NzciLCBcCi0gICAgICAgICAgIjAuMTgxODAxLCAwLjI2MzQ4OCwgMC4zMjUyOCwgMC40MDI1MDQsIDAuNDc5NjQ5LCAwLjU1NzA1NiwgMC42MzQxMDQiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDUwNzUzLCAwLjIwNDg0LCAwLjMzMjk3MywgMC40OTUwMzgsIDAuNjU3NTIzLCAwLjgxOTA3MiwgMC45ODMzNjMiLCBcCi0gICAgICAgICAgIjAuMDUwNzM0LCAwLjIwNDgzMSwgMC4zMzI5NzUsIDAuNDk1MDM1LCAwLjY1NzUyOCwgMC44MTkwNDcsIDAuOTgzMzMxIiwgXAotICAgICAgICAgICIwLjA1MDcxNCwgMC4yMDQ4MjMsIDAuMzMyNTIyLCAwLjQ5NTAzMywgMC42NTc1MjYsIDAuODE5MDQ1LCAwLjk4MzMzNiIsIFwKLSAgICAgICAgICAiMC4wNTA3MTMsIDAuMjA0ODIyLCAwLjMzMjcwMiwgMC40OTUwMzYsIDAuNjU3NTI3LCAwLjgxOTA1NywgMC45ODMzNDkiLCBcCi0gICAgICAgICAgIjAuMDUwNzY3LCAwLjIwNDgzNywgMC4zMzI5NTYsIDAuNDk1MDM5LCAwLjY1NzUzLCAwLjgxODk2NCwgMC45ODMzNDciLCBcCi0gICAgICAgICAgIjAuMDUwNzg1LCAwLjIwNDcwNywgMC4zMzI5NiwgMC40OTUwMzMsIDAuNjU3NTI1LCAwLjgxOTE0OSwgMC45ODMzNDEiLCBcCi0gICAgICAgICAgIjAuMDUwNzQ1LCAwLjIwNDcwNywgMC4zMzI2NDcsIDAuNDk0OTc5LCAwLjY1NzUxLCAwLjgxOTAzMSwgMC45ODMyMzUiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTIyNjYyLCAwLjE5OTk2NiwgMC4yNjA2NzcsIDAuMzM2NTMzLCAwLjQxMjQxNywgMC40ODgzMTIsIDAuNTY0MTgyIiwgXAotICAgICAgICAgICIwLjEzMDEsIDAuMjA3Mzk3LCAwLjI2ODExNCwgMC4zNDQwMTIsIDAuNDE5ODY3LCAwLjQ5NTc0NiwgMC41NzE1NjMiLCBcCi0gICAgICAgICAgIjAuMTM5NDg1LCAwLjIxNjc4NywgMC4yNzc1LCAwLjM1MzM3MSwgMC40MjkyNDEsIDAuNTA1MTk0LCAwLjU4MDk0OSIsIFwKLSAgICAgICAgICAiMC4xNDc1MDQsIDAuMjI0ODA1LCAwLjI4NTUwOCwgMC4zNjE0MjgsIDAuNDM3MjcxLCAwLjUxMzE1MiwgMC41ODkwMzMiLCBcCi0gICAgICAgICAgIjAuMTUzOTY4LCAwLjIzMTI3LCAwLjI5MTk4MywgMC4zNjc4NDgsIDAuNDQzNzE2LCAwLjUxOTYyNSwgMC41OTU0MjIiLCBcCi0gICAgICAgICAgIjAuMTYyNjI5LCAwLjIzOTkyNSwgMC4zMDA2MjYsIDAuMzc2NTQyLCAwLjQ1MjQ2NiwgMC41MjgyNjYsIDAuNjA0MDc2IiwgXAotICAgICAgICAgICIwLjE2OTU0OSwgMC4yNDY4NTEsIDAuMzA3NTQ1LCAwLjM4MzQzLCAwLjQ1OTI5MSwgMC41MzUxODEsIDAuNjEwOTkzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0MjQ1MywgMC4xOTQ4MjcsIDAuMzIwMywgMC40Nzc3LCAwLjYzNTQ3MiwgMC43OTE5LCAwLjk0OTI4NiIsIFwKLSAgICAgICAgICAiMC4wNDI0NiwgMC4xOTQ4ODQsIDAuMzIwMzQ5LCAwLjQ3NjkyMywgMC42MzU1NjEsIDAuNzkxOTYxLCAwLjk0OTg3NCIsIFwKLSAgICAgICAgICAiMC4wNDI0NTMsIDAuMTk0ODMxLCAwLjMyMDMwNiwgMC40Nzc3NzUsIDAuNjM1MTQ3LCAwLjc5MTg3OSwgMC45NTA5MDIiLCBcCi0gICAgICAgICAgIjAuMDQyNDA2LCAwLjE5NDg0MiwgMC4zMjAyNjMsIDAuNDc2NDAzLCAwLjYzNDc2NSwgMC43OTE4OTIsIDAuOTQ5MjgiLCBcCi0gICAgICAgICAgIjAuMDQyNDU4LCAwLjE5NDgzLCAwLjMyMDMwNCwgMC40Nzc3NTUsIDAuNjM1NDU3LCAwLjc5MTU0OCwgMC45NTA4NTYiLCBcCi0gICAgICAgICAgIjAuMDQyNDc4LCAwLjE5NDQ5MywgMC4zMTk4NjUsIDAuNDc2OTg2LCAwLjYzNDI2NiwgMC43OTMyODgsIDAuOTQ5NTciLCBcCi0gICAgICAgICAgIjAuMDQyNTEzLCAwLjE5NDY4MSwgMC4zMTk4ODQsIDAuNDc3MTg2LCAwLjYzNTM5OSwgMC43OTE5NTEsIDAuOTUxMDA0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiByaXNpbmdfZWRnZTsKLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTI0NzU2LCAwLjIwMjA2LCAwLjI2Mjc3MiwgMC4zMzg2MjgsIDAuNDE0NTExLCAwLjQ5MDQwOSwgMC41NjYyNzUiLCBcCi0gICAgICAgICAgIjAuMTMwODk4LCAwLjIwODE5NiwgMC4yNjg5MTYsIDAuMzQ0NzgsIDAuNDIwNjUyLCAwLjQ5NjU0MSwgMC41NzI0MzciLCBcCi0gICAgICAgICAgIjAuMTM4Mjk3LCAwLjIxNTU5OCwgMC4yNzYzMTUsIDAuMzUyMTk2LCAwLjQyODA1NCwgMC41MDQwMDgsIDAuNTc5NzU2IiwgXAotICAgICAgICAgICIwLjE0NDQ4NywgMC4yMjE3ODgsIDAuMjgyNDk2LCAwLjM1ODM4NSwgMC40MzQyNDYsIDAuNTEwMTI1LCAwLjU4NjAzNSIsIFwKLSAgICAgICAgICAiMC4xNDk2ODYsIDAuMjI2OTg2LCAwLjI4NzY5NywgMC4zNjM1NjUsIDAuNDM5NDM1LCAwLjUxNTMzLCAwLjU5MTE4OCIsIFwKLSAgICAgICAgICAiMC4xNTY4MTcsIDAuMjM0MTIzLCAwLjI5NDgzNSwgMC4zNzA3ODgsIDAuNDQ2NTc0LCAwLjUyMjQ2MSwgMC41OTgzMjQiLCBcCi0gICAgICAgICAgIjAuMTYyMjU4LCAwLjIzOTU2NCwgMC4zMDAyNTcsIDAuMzc2MjEsIDAuNDUyMDA5LCAwLjUyNzg3MiwgMC42MDM3NzIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQyNDU1LCAwLjE5NDgyNSwgMC4zMjAzLCAwLjQ3NzcxLCAwLjYzNTQ3MSwgMC43OTE5MjEsIDAuOTQ5Mjg2IiwgXAotICAgICAgICAgICIwLjA0MjQ2OSwgMC4xOTQ4MjgsIDAuMzIwMzIsIDAuNDc3NzY5LCAwLjYzNTQ4NywgMC43OTE3NzUsIDAuOTQ5MjA3IiwgXAotICAgICAgICAgICIwLjA0MjQ2LCAwLjE5NDgyLCAwLjMyMDMxMiwgMC40Nzc4NDIsIDAuNjM1MDk5LCAwLjc5MTg2OCwgMC45NTA1NjUiLCBcCi0gICAgICAgICAgIjAuMDQyNDYxLCAwLjE5NDg0MSwgMC4zMjAzMjQsIDAuNDc2ODI2LCAwLjYzNTIyMiwgMC43OTIyMTEsIDAuOTQ5MTA0IiwgXAotICAgICAgICAgICIwLjA0MjQ2NSwgMC4xOTQ4MjksIDAuMzIwMjk2LCAwLjQ3NzEzNiwgMC42MzU0NjgsIDAuNzkxOTIzLCAwLjk1MTAxMSIsIFwKLSAgICAgICAgICAiMC4wNDIzOTIsIDAuMTk0Njk2LCAwLjMyMDMyNCwgMC40NzcwMzcsIDAuNjM1NTEsIDAuNzkxNzg2LCAwLjk1MDk4MSIsIFwKLSAgICAgICAgICAiMC4wNDI2NTcsIDAuMTk0OTAxLCAwLjMyMDIwMSwgMC40NzcwNjMsIDAuNjM1NTE0LCAwLjc5MjM4NywgMC45NDkyODIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUk4iOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGZhbGxpbmdfZWRnZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTM0OTgzLCAwLjIxNjUzNCwgMC4yNzgzMjksIDAuMzU1NTY1LCAwLjQzMjczNywgMC41MDk5MTEsIDAuNTg3MjE1IiwgXAotICAgICAgICAgICIwLjE0Mjk2OCwgMC4yMjQ1MiwgMC4yODYzMTYsIDAuMzYzNTQ4LCAwLjQ0MDcxNywgMC41MTc4OTQsIDAuNTk1MTk0IiwgXAotICAgICAgICAgICIwLjE1MTgyNiwgMC4yMzMzNzgsIDAuMjk1MTc4LCAwLjM3MjM4NSwgMC40NDk2MDcsIDAuNTI2Nzk4LCAwLjYwMzk0NCIsIFwKLSAgICAgICAgICAiMC4xNTkxMDUsIDAuMjQwNjU2LCAwLjMwMjQ0MiwgMC4zNzk2ODIsIDAuNDU2ODU1LCAwLjUzNDAzMSwgMC42MTEzMzEiLCBcCi0gICAgICAgICAgIjAuMTY1NjQzLCAwLjI0NzE5NiwgMC4zMDg5ODYsIDAuMzg2MjIzLCAwLjQ2MzM4OSwgMC41NDA1NjksIDAuNjE3ODA1IiwgXAotICAgICAgICAgICIwLjE3NDkyOSwgMC4yNTY0ODgsIDAuMzE4MzA0LCAwLjM5NTUwOSwgMC40NzI2ODEsIDAuNTQ5ODY2LCAwLjYyNzEzNyIsIFwKLSAgICAgICAgICAiMC4xODIxMTgsIDAuMjYzNjc0LCAwLjMyNTQ4NywgMC40MDI3MTQsIDAuNDc5ODg1LCAwLjU1NzA3NCwgMC42MzQyNzIiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDUwNDUzLCAwLjIwNDc3MywgMC4zMzI3MDgsIDAuNDk0ODg1LCAwLjY1NzMxMSwgMC44MjAwNTksIDAuOTgxNjM4IiwgXAotICAgICAgICAgICIwLjA1MDQ4NywgMC4yMDQ3ODEsIDAuMzMyNDYsIDAuNDk0ODkyLCAwLjY1NzM1LCAwLjgyMDA0NCwgMC45ODE1NzIiLCBcCi0gICAgICAgICAgIjAuMDUwNDc3LCAwLjIwNDc3NSwgMC4zMzI2MTEsIDAuNDk0ODg5LCAwLjY1NzMwNiwgMC44MjAwNzgsIDAuOTgyODQzIiwgXAotICAgICAgICAgICIwLjA1MDQ4LCAwLjIwNDc3OSwgMC4zMzI2OTcsIDAuNDk0ODg5LCAwLjY1NzMyMywgMC44MTk0MDIsIDAuOTgxNTg5IiwgXAotICAgICAgICAgICIwLjA1MDU1NSwgMC4yMDQ3ODQsIDAuMzMyOTUyLCAwLjQ5NDg5LCAwLjY1NzMxNywgMC44MTkzNjEsIDAuOTgxNTgiLCBcCi0gICAgICAgICAgIjAuMDUwNjA1LCAwLjIwNDc5OSwgMC4zMzI5NzMsIDAuNDk0ODg5LCAwLjY1NzMwNywgMC44MjAwMTIsIDAuOTgyOTg0IiwgXAotICAgICAgICAgICIwLjA1MDY1NywgMC4yMDQ4MzIsIDAuMzMyOTYzLCAwLjQ5NDg4NCwgMC42NTczMDcsIDAuODE5NDY5LCAwLjk4Mjc4NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogY2xlYXI7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3MDUzNiwgMC4xNTIwMzEsIDAuMjEzODIyLCAwLjI5MTA0NiwgMC4zNjgyMTcsIDAuNDQ1NCwgMC41MjI2ODkiLCBcCi0gICAgICAgICAgIjAuMDc2NjM5LCAwLjE1ODE3NywgMC4yMTk5NjgsIDAuMjk3MTgyLCAwLjM3NDM1MywgMC40NTE1ODQsIDAuNTI4Nzg5IiwgXAotICAgICAgICAgICIwLjA4NDQ2OCwgMC4xNjU5NzcsIDAuMjI3NzY3LCAwLjMwNDk0MywgMC4zODIxNTQsIDAuNDU5MzUxLCAwLjUzNjY1NyIsIFwKLSAgICAgICAgICAiMC4wOTE4MjMsIDAuMTczMzksIDAuMjM1MTc2LCAwLjMxMjQwNywgMC4zODk1NzUsIDAuNDY2OTk1LCAwLjU0NDAxNyIsIFwKLSAgICAgICAgICAiMC4wOTg1NDYsIDAuMTgwMjkzLCAwLjI0MjA3MywgMC4zMTkzMTQsIDAuMzk2NDc2LCAwLjQ3Mzc3MSwgMC41NTA5MiIsIFwKLSAgICAgICAgICAiMC4xMDc5OTUsIDAuMTkwMjc1LCAwLjI1MjA1NSwgMC4zMjkyMywgMC40MDY0ODMsIDAuNDgzNzExLCAwLjU2MDg5MSIsIFwKLSAgICAgICAgICAiMC4xMTUzMzMsIDAuMTk4MDk3LCAwLjI1OTg3OCwgMC4zMzcwMzQsIDAuNDE0MjM0LCAwLjQ5MTQyNSwgMC41Njg2MzIiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDUwMjksIDAuMjA0NzMzLCAwLjMzMjQ3MiwgMC40OTQ4OTUsIDAuNjU1OTU4LCAwLjgyMDM5OCwgMC45ODE1ODMiLCBcCi0gICAgICAgICAgIjAuMDUwMjQ3LCAwLjIwNDczLCAwLjMzMjQ5NCwgMC40OTUwMDcsIDAuNjU3NDk3LCAwLjgxOTE1NCwgMC45ODMzNTYiLCBcCi0gICAgICAgICAgIjAuMDUwMzQ3LCAwLjIwNDc1NCwgMC4zMzI1MjMsIDAuNDk1MDEzLCAwLjY1NjM5OCwgMC44MjAzNzcsIDAuOTgzMzY4IiwgXAotICAgICAgICAgICIwLjA1MDgzOSwgMC4yMDQ4MjIsIDAuMzMyODAyLCAwLjQ5NDk4OSwgMC42NTc1MTEsIDAuODE5MDYzLCAwLjk4MzM0NiIsIFwKLSAgICAgICAgICAiMC4wNTE3MjksIDAuMjA1MDY0LCAwLjMzMjg5OSwgMC40OTUwMzIsIDAuNjU3NDg0LCAwLjgxOTEzOCwgMC45ODMyNjgiLCBcCi0gICAgICAgICAgIjAuMDUzMzQ0LCAwLjIwNTY4NiwgMC4zMzMzNTUsIDAuNDk1MTc2LCAwLjY1NzM5LCAwLjgyMDMyMSwgMC45ODE2MTQiLCBcCi0gICAgICAgICAgIjAuMDU0Njk3LCAwLjIwNjIzNSwgMC4zMzM2ODgsIDAuNDk1MTMyLCAwLjY1NjUwOSwgMC44MjAzNDUsIDAuOTgzMjU3Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1MjM5MSwgMC4xMjk3NTEsIDAuMTkwNDAyLCAwLjI2NjIzOSwgMC4zNDIwODIsIDAuNDE3OTUsIDAuNDkzODE3IiwgXAotICAgICAgICAgICIwLjA2MDU5NCwgMC4xMzc5NjIsIDAuMTk4NjE3LCAwLjI3NDQ1NSwgMC4zNTAzNCwgMC40MjYxNjUsIDAuNTAyMDQ0IiwgXAotICAgICAgICAgICIwLjA3MDc0NiwgMC4xNDgxMDIsIDAuMjA4NzU5LCAwLjI4NDU5MiwgMC4zNjA0MzgsIDAuNDM2MzE0LCAwLjUxMjE4MSIsIFwKLSAgICAgICAgICAiMC4wNzk0NTYsIDAuMTU2ODY0LCAwLjIxNzUxMiwgMC4yOTMzNDMsIDAuMzY5MjE2LCAwLjQ0NTA5LCAwLjUyMDk0MiIsIFwKLSAgICAgICAgICAiMC4wODY2MzQsIDAuMTY0MTg0LCAwLjIyNDgyMywgMC4zMDA2NTcsIDAuMzc2NTI1LCAwLjQ1MjM4OSwgMC41MjgyMjMiLCBcCi0gICAgICAgICAgIjAuMDk1OTk1LCAwLjE3Mzg0MSwgMC4yMzQ0OCwgMC4zMTAzMzYsIDAuMzg2MTkyLCAwLjQ2MjA0MiwgMC41Mzc5MzMiLCBcCi0gICAgICAgICAgIjAuMTAyODAxLCAwLjE4MTA1NiwgMC4yNDE3MTQsIDAuMzE3NTk1LCAwLjM5MzQyMiwgMC40NjkyNzMsIDAuNTQ1MTI4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0MjQzOSwgMC4xOTQ5OTUsIDAuMzE5NzkyLCAwLjQ3NzY2OCwgMC42MzUzMTUsIDAuNzkyOTg1LCAwLjk1MDY1MiIsIFwKLSAgICAgICAgICAiMC4wNDI0NDEsIDAuMTk0ODk0LCAwLjMyMDM4MywgMC40Nzc2NzksIDAuNjM1NDU2LCAwLjc5MzAzLCAwLjk1MDg0OSIsIFwKLSAgICAgICAgICAiMC4wNDI3MzUsIDAuMTk0OTg5LCAwLjMyMDQxNCwgMC40Nzc3NDQsIDAuNjM1NTE2LCAwLjc5MjI0MSwgMC45NTA5NjUiLCBcCi0gICAgICAgICAgIjAuMDQzOTQzLCAwLjE5NTEzMSwgMC4zMjA0NywgMC40Nzc4MiwgMC42MzU1NjUsIDAuNzkzMTYsIDAuOTUwOTkzIiwgXAotICAgICAgICAgICIwLjA0NTM3NSwgMC4xOTU0NTIsIDAuMzIwMTIyLCAwLjQ3Nzg2NCwgMC42MzUzODcsIDAuNzkzMTk3LCAwLjk1MTA1MiIsIFwKLSAgICAgICAgICAiMC4wNDczOTIsIDAuMTk1ODk2LCAwLjMyMDY3NywgMC40Nzc4MTEsIDAuNjM1NDM0LCAwLjc5MzA4MSwgMC45NDk4NjYiLCBcCi0gICAgICAgICAgIjAuMDQ5MDg0LCAwLjE5NjI5MSwgMC4zMjA4OTgsIDAuNDc3NDE2LCAwLjYzNTM5MSwgMC43OTMwMjUsIDAuOTQ5OTIxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2MzIsIDAuMDA2MzQyLCAwLjAwNjM0NSwgMC4wMDYzNDYsIDAuMDA2MzQ3LCAwLjAwNjM0NywgMC4wMDYzNDciLCBcCi0gICAgICAgICAgIjAuMDA2MzEzLCAwLjAwNjMzMywgMC4wMDYzMzUsIDAuMDA2MzM2LCAwLjAwNjMzOCwgMC4wMDYzMzcsIDAuMDA2MzM4IiwgXAotICAgICAgICAgICIwLjAwNjMxNiwgMC4wMDYzMzksIDAuMDA2MzQxLCAwLjAwNjM0MSwgMC4wMDYzNDMsIDAuMDA2MzQyLCAwLjAwNjM0MyIsIFwKLSAgICAgICAgICAiMC4wMDYzMTgsIDAuMDA2MzQzLCAwLjAwNjM0NiwgMC4wMDYzNDgsIDAuMDA2MzQ5LCAwLjAwNjM0OSwgMC4wMDYzNDkiLCBcCi0gICAgICAgICAgIjAuMDA2MzQ1LCAwLjAwNjM2OSwgMC4wMDYzNzIsIDAuMDA2Mzc0LCAwLjAwNjM3NSwgMC4wMDYzNzUsIDAuMDA2Mzc2IiwgXAotICAgICAgICAgICIwLjAwNjQyNywgMC4wMDY0NDQsIDAuMDA2NDQ4LCAwLjAwNjQ1LCAwLjAwNjQ1LCAwLjAwNjQ1MSwgMC4wMDY0NTEiLCBcCi0gICAgICAgICAgIjAuMDA2NDk1LCAwLjAwNjUwOCwgMC4wMDY1MTMsIDAuMDA2NTEzLCAwLjAwNjUxMiwgMC4wMDY1MTEsIDAuMDA2NTExIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1NjUzLCAwLjAwNTcxNSwgMC4wMDU3MjQsIDAuMDA1NzI5LCAwLjAwNTczMSwgMC4wMDU3MzMsIDAuMDA1NzM0IiwgXAotICAgICAgICAgICIwLjAwNTYzNCwgMC4wMDU2OTcsIDAuMDA1NzA3LCAwLjAwNTcxLCAwLjAwNTcxMywgMC4wMDU3MTMsIDAuMDA1NzE1IiwgXAotICAgICAgICAgICIwLjAwNTY0MSwgMC4wMDU3MDQsIDAuMDA1NzEzLCAwLjAwNTcxOCwgMC4wMDU3MiwgMC4wMDU3MjIsIDAuMDA1NzIzIiwgXAotICAgICAgICAgICIwLjAwNTY2NSwgMC4wMDU3MjgsIDAuMDA1NzM3LCAwLjAwNTc0MiwgMC4wMDU3NDQsIDAuMDA1NzUyLCAwLjAwNTc0NyIsIFwKLSAgICAgICAgICAiMC4wMDU2OTUsIDAuMDA1NzU4LCAwLjAwNTc2OCwgMC4wMDU3NzIsIDAuMDA1Nzc1LCAwLjAwNTc3NiwgMC4wMDU3NzciLCBcCi0gICAgICAgICAgIjAuMDA1NzU5LCAwLjAwNTgyMiwgMC4wMDU4MzIsIDAuMDA1ODM2LCAwLjAwNTgzOSwgMC4wMDU4NDEsIDAuMDA1ODQyIiwgXAotICAgICAgICAgICIwLjAwNTgyOSwgMC4wMDU4OTEsIDAuMDA1OSwgMC4wMDU5MDQsIDAuMDA1OTA3LCAwLjAwNTkxLCAwLjAwNTkwOCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkciOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNzQ1LCAwLjAwNzQ2OSwgMC4wMDc0NzEsIDAuMDA3NDcyLCAwLjAwNzQ3MywgMC4wMDc0NzMsIDAuMDA3NDczIiwgXAotICAgICAgICAgICIwLjAwNzQzMiwgMC4wMDc0NTMsIDAuMDA3NDU3LCAwLjAwNzQ1NiwgMC4wMDc0NTgsIDAuMDA3NDU3LCAwLjAwNzQ1NyIsIFwKLSAgICAgICAgICAiMC4wMDc0NzEsIDAuMDA3NDkzLCAwLjAwNzQ5NSwgMC4wMDc0OTcsIDAuMDA3NDk3LCAwLjAwNzQ5OCwgMC4wMDc0OTciLCBcCi0gICAgICAgICAgIjAuMDA3NTI1LCAwLjAwNzU0NywgMC4wMDc1NDksIDAuMDA3NTUsIDAuMDA3NTUxLCAwLjAwNzU1MSwgMC4wMDc1NTEiLCBcCi0gICAgICAgICAgIjAuMDA3NTksIDAuMDA3NjA3LCAwLjAwNzYwOSwgMC4wMDc2MSwgMC4wMDc2MSwgMC4wMDc2MTEsIDAuMDA3NjExIiwgXAotICAgICAgICAgICIwLjAwNzY5OSwgMC4wMDc3MTYsIDAuMDA3NzE4LCAwLjAwNzcxOSwgMC4wMDc3MTksIDAuMDA3NzIsIDAuMDA3NzIiLCBcCi0gICAgICAgICAgIjAuMDA3NzYzLCAwLjAwNzc4MSwgMC4wMDc3ODMsIDAuMDA3Nzg1LCAwLjAwNzc4OSwgMC4wMDc3ODUsIDAuMDA3Nzg1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2OTU1LCAwLjAwNzAyLCAwLjAwNzAyOCwgMC4wMDcwMzMsIDAuMDA3MDM1LCAwLjAwNzAzNiwgMC4wMDcwMzciLCBcCi0gICAgICAgICAgIjAuMDA2OTUyLCAwLjAwNzAxNSwgMC4wMDcwMjQsIDAuMDA3MDI4LCAwLjAwNzAzLCAwLjAwNzAzMywgMC4wMDcwMzMiLCBcCi0gICAgICAgICAgIjAuMDA2OTg0LCAwLjAwNzA0OSwgMC4wMDcwNTcsIDAuMDA3MDYsIDAuMDA3MDY0LCAwLjAwNzA2NSwgMC4wMDcwNjgiLCBcCi0gICAgICAgICAgIjAuMDA3MDQxLCAwLjAwNzEwNSwgMC4wMDcxMTMsIDAuMDA3MTE4LCAwLjAwNzExNywgMC4wMDcxMjQsIDAuMDA3MTIyIiwgXAotICAgICAgICAgICIwLjAwNzA4MSwgMC4wMDcxNDYsIDAuMDA3MTU1LCAwLjAwNzE1OSwgMC4wMDcxNjQsIDAuMDA3MTYzLCAwLjAwNzE2NiIsIFwKLSAgICAgICAgICAiMC4wMDcxOTQsIDAuMDA3MjU2LCAwLjAwNzI2NSwgMC4wMDcyNjksIDAuMDA3MjcxLCAwLjAwNzI3MywgMC4wMDcyNyIsIFwKLSAgICAgICAgICAiMC4wMDcyNjMsIDAuMDA3MzMsIDAuMDA3MzM1LCAwLjAwNzMzOSwgMC4wMDczNDIsIDAuMDA3MzQzLCAwLjAwNzM0OCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDg1MTksIDAuMDA4NTM5LCAwLjAwODU0MSwgMC4wMDg1NDEsIDAuMDA4NTQzLCAwLjAwODU0MywgMC4wMDg1NDIiLCBcCi0gICAgICAgICAgIjAuMDA4NTE3LCAwLjAwODUzNiwgMC4wMDg1MzksIDAuMDA4NTM5LCAwLjAwODU0LCAwLjAwODU0LCAwLjAwODUzOSIsIFwKLSAgICAgICAgICAiMC4wMDg1NDcsIDAuMDA4NTY4LCAwLjAwODU2OSwgMC4wMDg1NzEsIDAuMDA4NTcxLCAwLjAwODU3MSwgMC4wMDg1NzEiLCBcCi0gICAgICAgICAgIjAuMDA4NTk4LCAwLjAwODYxNiwgMC4wMDg2MTgsIDAuMDA4NjE5LCAwLjAwODYyLCAwLjAwODYxOSwgMC4wMDg2MiIsIFwKLSAgICAgICAgICAiMC4wMDg2NiwgMC4wMDg2NzgsIDAuMDA4NjgsIDAuMDA4NjgxLCAwLjAwODY4MiwgMC4wMDg2ODIsIDAuMDA4NjgyIiwgXAotICAgICAgICAgICIwLjAwODczOSwgMC4wMDg3NTcsIDAuMDA4NzU5LCAwLjAwODc2LCAwLjAwODc2MSwgMC4wMDg3NjEsIDAuMDA4NzYxIiwgXAotICAgICAgICAgICIwLjAwODgyNywgMC4wMDg4NTMsIDAuMDA4ODU1LCAwLjAwODg1MiwgMC4wMDg4NTIsIDAuMDA4ODUzLCAwLjAwODg1MiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjgxMiwgMC4wMDY4NzcsIDAuMDA2ODg1LCAwLjAwNjg5LCAwLjAwNjg5MiwgMC4wMDY4OTQsIDAuMDA2ODk0IiwgXAotICAgICAgICAgICIwLjAwNjgsIDAuMDA2ODYzLCAwLjAwNjg2OSwgMC4wMDY4NzQsIDAuMDA2ODc1LCAwLjAwNjg3NiwgMC4wMDY4NzgiLCBcCi0gICAgICAgICAgIjAuMDA2ODE1LCAwLjAwNjg3OSwgMC4wMDY4ODcsIDAuMDA2ODkyLCAwLjAwNjg5NCwgMC4wMDY4OTUsIDAuMDA2ODk2IiwgXAotICAgICAgICAgICIwLjAwNjg0MSwgMC4wMDY5MDUsIDAuMDA2OTEyLCAwLjAwNjkxOCwgMC4wMDY5MiwgMC4wMDY5MiwgMC4wMDY5MjMiLCBcCi0gICAgICAgICAgIjAuMDA2ODkxLCAwLjAwNjk1NCwgMC4wMDY5NjIsIDAuMDA2OTY3LCAwLjAwNjk3LCAwLjAwNjk3LCAwLjAwNjk3MSIsIFwKLSAgICAgICAgICAiMC4wMDY5NDcsIDAuMDA3MDExLCAwLjAwNzAyLCAwLjAwNzAyNSwgMC4wMDcwMjcsIDAuMDA3MDI4LCAwLjAwNzAzIiwgXAotICAgICAgICAgICIwLjAwNzAzMiwgMC4wMDcwOTEsIDAuMDA3MDk5LCAwLjAwNzEwMywgMC4wMDcxMDYsIDAuMDA3MTA3LCAwLjAwNzEwOCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQ1NzgsIDAuMDA0NTkzLCAwLjAwNDU5NCwgMC4wMDQ1OTgsIDAuMDA0NTk0LCAwLjAwNDU5OSwgMC4wMDQ1OTQiLCBcCi0gICAgICAgICAgIjAuMDA0NTI5LCAwLjAwNDU1MiwgMC4wMDQ1NTQsIDAuMDA0NTU1LCAwLjAwNDU1NiwgMC4wMDQ1NTksIDAuMDA0NTU2IiwgXAotICAgICAgICAgICIwLjAwNDU2OCwgMC4wMDQ1ODEsIDAuMDA0NTgzLCAwLjAwNDU4NCwgMC4wMDQ1ODQsIDAuMDA0NTg0LCAwLjAwNDU4NSIsIFwKLSAgICAgICAgICAiMC4wMDQ2MTcsIDAuMDA0NjIxLCAwLjAwNDYyMiwgMC4wMDQ2MjQsIDAuMDA0NjIzLCAwLjAwNDYyNCwgMC4wMDQ2MjQiLCBcCi0gICAgICAgICAgIjAuMDA0NjYxLCAwLjAwNDY2NiwgMC4wMDQ2NjUsIDAuMDA0NjY3LCAwLjAwNDY2NSwgMC4wMDQ2NjYsIDAuMDA0NjY3IiwgXAotICAgICAgICAgICIwLjAwNDc4MSwgMC4wMDQ3NywgMC4wMDQ3NywgMC4wMDQ3NzEsIDAuMDA0NzcsIDAuMDA0NzcsIDAuMDA0NzY5IiwgXAotICAgICAgICAgICIwLjAwNDg5NCwgMC4wMDQ4NzMsIDAuMDA0ODcsIDAuMDA0ODY4LCAwLjAwNDg2NywgMC4wMDQ4NjcsIDAuMDA0ODY2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2MTg0LCAwLjAwNjIyMywgMC4wMDYyMjcsIDAuMDA2MjMsIDAuMDA2MjMyLCAwLjAwNjIzMiwgMC4wMDYyMzMiLCBcCi0gICAgICAgICAgIjAuMDA2MTcxLCAwLjAwNjIxNCwgMC4wMDYyMiwgMC4wMDYyMjQsIDAuMDA2MjI0LCAwLjAwNjIyNSwgMC4wMDYyMjYiLCBcCi0gICAgICAgICAgIjAuMDA2MiwgMC4wMDYyMzgsIDAuMDA2MjQ0LCAwLjAwNjI0OCwgMC4wMDYyNSwgMC4wMDYyNTEsIDAuMDA2MjUxIiwgXAotICAgICAgICAgICIwLjAwNjI2MywgMC4wMDYyOTEsIDAuMDA2Mjk3LCAwLjAwNjMsIDAuMDA2MzA0LCAwLjAwNjMwNiwgMC4wMDYzMDYiLCBcCi0gICAgICAgICAgIjAuMDA2MzQzLCAwLjAwNjM1OCwgMC4wMDYzNjQsIDAuMDA2MzY3LCAwLjAwNjM2OSwgMC4wMDYzNywgMC4wMDYzNyIsIFwKLSAgICAgICAgICAiMC4wMDY0ODYsIDAuMDA2NDgzLCAwLjAwNjQ4NywgMC4wMDY0ODksIDAuMDA2NDksIDAuMDA2NDksIDAuMDA2NDkyIiwgXAotICAgICAgICAgICIwLjAwNjYyNywgMC4wMDY1OTksIDAuMDA2NjAxLCAwLjAwNjYwMSwgMC4wMDY2MDEsIDAuMDA2NjAyLCAwLjAwNjYwMiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUk4pICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTA0NDA4OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTAzNDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDEwNDQwODsKLSAgICBjbG9jayA6IHRydWU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNTkzLCAwLjAwMDU5MywgMC4wMDA1OTIsIDAuMDAwNTkyLCAwLjAwMDU5MiwgMC4wMDA1OTIsIDAuMDAwNTkyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNjE0LCAwLjAwMDU5OSwgMC4wMDA1OTcsIDAuMDAwNTk1LCAwLjAwMDU5MywgMC4wMDA1OTQsIDAuMDAwNTk0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkciOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX2ZhbGxpbmc7Ci0gICAgICB3aGVuIDogIkQmU04iOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8xX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDU2MjUsIC0wLjA1MTI1LCAtMC4wNTEyNSwgLTAuMDYzNzUsIC0wLjA3LCAtMC4wNzg3NSwgLTAuMDgyNSIsIFwKLSAgICAgICAgICAiLTAuMDYxMjUsIC0wLjA1NjI1LCAtMC4wNjI1LCAtMC4wNjg3NSwgLTAuMDc1LCAtMC4wODM3NSwgLTAuMDg3NSIsIFwKLSAgICAgICAgICAiLTAuMDY3NSwgLTAuMDYyNSwgLTAuMDY4NzUsIC0wLjA3NSwgLTAuMDgxMjUsIC0wLjA5LCAtMC4wOTM3NSIsIFwKLSAgICAgICAgICAiLTAuMDczNzUsIC0wLjA2ODc1LCAtMC4wNzUsIC0wLjA4MTI1LCAtMC4wODEyNSwgLTAuMDksIC0wLjEiLCBcCi0gICAgICAgICAgIi0wLjA4LCAtMC4wNzUsIC0wLjA3NSwgLTAuMDgxMjUsIC0wLjA4NzUsIC0wLjA5NjI1LCAtMC4xMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDksIC0wLjA4NSwgLTAuMDg1LCAtMC4wOTEyNSwgLTAuMDk3NSwgLTAuMTA2MjUsIC0wLjExIiwgXAotICAgICAgICAgICItMC4wOTI1LCAtMC4wODc1LCAtMC4wODc1LCAtMC4wOTM3NSwgLTAuMSwgLTAuMTA4NzUsIC0wLjExODc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRCZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjExMTcxOCwgMC4xMTgxNzIsIDAuMTI0OTM1LCAwLjEzMDgzMSwgMC4xMzU3NTIsIDAuMTQyNDEzLCAwLjE0NzUzOSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJHIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfZmFsbGluZzsKLSAgICAgIHdoZW4gOiAiRCZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzFfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjg3NSwgMC4wNTc1LCAwLjA2Mzc1LCAwLjA4MjUsIDAuMDk1LCAwLjEyODc1LCAwLjE1MTI1IiwgXAotICAgICAgICAgICIwLjA3Mzc1LCAwLjA2ODc1LCAwLjA2ODc1LCAwLjA4NzUsIDAuMSwgMC4xMjc1LCAwLjE1NjI1IiwgXAotICAgICAgICAgICIwLjA4LCAwLjA3NSwgMC4wNzUsIDAuMDg3NSwgMC4xMDYyNSwgMC4xMzM3NSwgMC4xNTYyNSIsIFwKLSAgICAgICAgICAiMC4wODYyNSwgMC4wODEyNSwgMC4wODEyNSwgMC4wOTM3NSwgMC4xMDYyNSwgMC4xMzM3NSwgMC4xNTYyNSIsIFwKLSAgICAgICAgICAiMC4wOTI1LCAwLjA4NzUsIDAuMDg3NSwgMC4wOTM3NSwgMC4xMTI1LCAwLjEzMzc1LCAwLjE1NjI1IiwgXAotICAgICAgICAgICIwLjA5NjI1LCAwLjA5MTI1LCAwLjA5MTI1LCAwLjEwMzc1LCAwLjExNjI1LCAwLjEzNzUsIDAuMTYiLCBcCi0gICAgICAgICAgIjAuMTA1LCAwLjEsIDAuMSwgMC4xMDYyNSwgMC4xMTg3NSwgMC4xNCwgMC4xNjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTTikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwODA4Mzc7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwODA4Mzc7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwODA3Mzg4OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDQyMSwgMC4wMDA0MjEsIDAuMDAwNDIsIDAuMDAwNDIsIDAuMDAwNDIsIDAuMDAwNDIsIDAuMDAwNDIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA0NDUsIDAuMDAwNDMsIDAuMDAwNDI2LCAwLjAwMDQyMywgMC4wMDA0MjIsIDAuMDAwNDIyLCAwLjAwMDQyMiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQiOwotICAgICAgc2RmX2NvbmQgOiAiRCA9PSAxJ2IwIjsKLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjA2Nzk5LCAwLjA3NjA1NSwgMC4wODU3MSwgMC4wOTM4NDcsIDAuMTAwNTczLCAwLjEwOTM5LCAwLjExNTgyOCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJHIjsKLSAgICAgIHRpbWluZ190eXBlIDogcmVjb3ZlcnlfZmFsbGluZzsKLSAgICAgIHdoZW4gOiAiIUQmUk4iOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1JOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQocmVjb3ZlcnlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2MjUsIDAuMDAxMjUsIC0wLjAwNSwgLTAuMDExMjUsIC0wLjAxNzUsIC0wLjAyMTI1LCAtMC4wMjM3NSIsIFwKLSAgICAgICAgICAiMC4wMTEyNSwgMC4wMDYyNSwgMCwgLTAuMDA2MjUsIC0wLjAwNjI1LCAtMC4wMTYyNSwgLTAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMDE3NSwgMC4wMTI1LCAwLjAwNjI1LCAwLCAtMC4wMDYyNSwgLTAuMDEsIC0wLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMDIzNzUsIDAuMDE4NzUsIDAuMDEyNSwgMC4wMDYyNSwgMCwgLTAuMDAzNzUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICIwLjAzLCAwLjAxODc1LCAwLjAxMjUsIDAuMDA2MjUsIDAuMDA2MjUsIDAuMDAyNSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMDMzNzUsIDAuMDI4NzUsIDAuMDIyNSwgMC4wMTYyNSwgMC4wMSwgMC4wMDYyNSwgMC4wMDM3NSIsIFwKLSAgICAgICAgICAiMC4wMzYyNSwgMC4wMzEyNSwgMC4wMjUsIDAuMDE4NzUsIDAuMDEyNSwgMC4wMDg3NSwgMC4wMDYyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJlY292ZXJ5X3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUciOwotICAgICAgc2RmX2NvbmQgOiAiRyA9PSAxJ2IwIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChyZWNvdmVyeV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTI1LCAwLjAxMzc1LCAwLjAwNzUsIDAuMDA3NSwgMC4wMTM3NSwgMC4wMSwgMC4wMTM3NSIsIFwKLSAgICAgICAgICAiMC4wMTc1LCAwLjAxODc1LCAwLjAxMjUsIDAuMDEyNSwgMC4wMTI1LCAwLjAxNSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4wMjM3NSwgMC4wMTg3NSwgMC4wMTg3NSwgMC4wMTg3NSwgMC4wMTg3NSwgMC4wMjEyNSwgMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMDMsIDAuMDI1LCAwLjAyNSwgMC4wMjUsIDAuMDI1LCAwLjAyMTI1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiMC4wMywgMC4wMzEyNSwgMC4wMjUsIDAuMDI1LCAwLjAyNSwgMC4wMjc1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiMC4wNCwgMC4wMzUsIDAuMDI4NzUsIDAuMDI4NzUsIDAuMDI4NzUsIDAuMDMxMjUsIDAuMDI4NzUiLCBcCi0gICAgICAgICAgIjAuMDQyNSwgMC4wMzc1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDMxMjUsIDAuMDMzNzUsIDAuMDMxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJlbW92YWxfZmFsbGluZzsKLSAgICAgIHdoZW4gOiAiIUQmUk4iOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1JOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQocmVtb3ZhbF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTI1LCAwLjAyMzc1LCAwLjAzLCAwLjAzNjI1LCAwLjAzNjI1LCAwLjA0NjI1LCAwLjA0ODc1IiwgXAotICAgICAgICAgICIwLjAwNzUsIDAuMDEyNSwgMC4wMjUsIDAuMDMxMjUsIDAuMDMxMjUsIDAuMDQxMjUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMDAxMjUsIDAuMDA2MjUsIDAuMDE4NzUsIDAuMDI1LCAwLjAyNSwgMC4wMzUsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDA1LCAwLjAwNjI1LCAwLjAxMjUsIDAuMDE4NzUsIDAuMDI1LCAwLjAyODc1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wMDUsIDAsIDAuMDA2MjUsIDAuMDEyNSwgMC4wMTg3NSwgMC4wMjI1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wMTUsIC0wLjAwMzc1LCAwLjAwMjUsIDAuMDA4NzUsIDAuMDE1LCAwLjAxODc1LCAwLjAyMTI1IiwgXAotICAgICAgICAgICItMC4wMTc1LCAtMC4wMTI1LCAwLCAwLjAwNjI1LCAwLjAwNjI1LCAwLjAxNjI1LCAwLjAxODc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIHRpbWluZ190eXBlIDogcmVtb3ZhbF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFHIjsKLSAgICAgIHNkZl9jb25kIDogIkcgPT0gMSdiMCI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQocmVtb3ZhbF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDYyNSwgMC4wMDUsIDAuMDExMjUsIDAuMDExMjUsIDAuMDE3NSwgMC4wMjEyNSwgMC4wMjM3NSIsIFwKLSAgICAgICAgICAiMC4wMDEyNSwgMCwgMC4wMDYyNSwgMC4wMDYyNSwgMC4wMTI1LCAwLjAxNjI1LCAwLjAxODc1IiwgXAotICAgICAgICAgICItMC4wMDUsIDAsIDAsIDAuMDA2MjUsIDAuMDA2MjUsIDAuMDEsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDExMjUsIC0wLjAwNjI1LCAtMC4wMDYyNSwgMCwgMCwgMC4wMDM3NSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDE3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIC0wLjAwNjI1LCAwLCAwLjAwMzc1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wMjEyNSwgLTAuMDE2MjUsIC0wLjAxLCAtMC4wMSwgLTAuMDAzNzUsIC0wLjAwNjI1LCAtMC4wMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxODc1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDEyNSwgLTAuMDA4NzUsIC0wLjAwNjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IFRMQVRTUlg0ICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChUTEFUU1JYNCkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAxLjg4MjAxOwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIGxhdGNoIChRSU5ULE41KSB7Ci0gICAgZGF0YV9pbiA6ICJEIjsKLSAgICBlbmFibGUgOiAiKEcgUk4pIjsKLSAgICBwcmVzZXQgOiAiKCFTTikiOwotICB9Ci0gIHBpbihEKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2NDY2ODM7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjQ1NTI5OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDY0NjY4MzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyODksIDAuMDAwMjksIDAuMDAwMjksIDAuMDAwMjkxLCAwLjAwMDI5LCAwLjAwMDI5LCAwLjAwMDI5MiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDMxMSwgMC4wMDAzLCAwLjAwMDI5OSwgMC4wMDAyOTgsIDAuMDAwMjk4LCAwLjAwMDI5OCwgMC4wMDAyOTciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfZmFsbGluZzsKLSAgICAgIHdoZW4gOiAiUk4mU04iOwotICAgICAgc2RmX2NvbmQgOiAiUk5fRVFfMV9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAwNjI1LCAtMC4wMDEyNSwgMC4wMTEyNSwgMC4wMTc1LCAwLjAyMzc1LCAwLjAyNzUsIDAuMDM2MjUiLCBcCi0gICAgICAgICAgIi0wLjAxMTI1LCAtMC4wMDYyNSwgMC4wMDYyNSwgMC4wMTI1LCAwLjAxODc1LCAwLjAyMjUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMC4wMDYyNSwgMC4wMDYyNSwgMC4wMTYyNSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAxODc1LCAtMC4wMTI1LCAwLCAwLCAwLjAxLCAwLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMDYyNSwgMCwgMC4wMDM3NSwgMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wNCwgLTAuMDM1LCAtMC4wMjI1LCAtMC4wMTYyNSwgLTAuMDEsIDAsIDAuMDAyNSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgLTAuMDE4NzUsIC0wLjAwODc1LCAtMC4wMDYyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAyNSwgLTAuMDIsIC0wLjAxMzc1LCAtMC4wMTM3NSwgLTAuMDA3NSwgLTAuMDEsIC0wLjAwNzUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDE1LCAtMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMjEyNSwgLTAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMjEyNSwgLTAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAzMTI1LCAtMC4wMjc1LCAtMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjA1ODc1LCAtMC4wNDc1LCAtMC4wNDEyNSwgLTAuMDQxMjUsIC0wLjAzNSwgLTAuMDMxMjUsIC0wLjAyODc1IiwgXAotICAgICAgICAgICItMC4wNjEyNSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDQzNzUsIC0wLjA0LCAtMC4wMzc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkciOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9mYWxsaW5nOwotICAgICAgd2hlbiA6ICJSTiZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJSTl9FUV8xX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE4NzUsIDAuMDEzNzUsIDAuMDAxMjUsIC0wLjAwNSwgLTAuMDExMjUsIC0wLjAyMTI1LCAtMC4wMjM3NSIsIFwKLSAgICAgICAgICAiMC4wMjM3NSwgMC4wMTg3NSwgMC4wMDYyNSwgMCwgLTAuMDA2MjUsIC0wLjAxLCAtMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4wMywgMC4wMjUsIDAuMDEyNSwgMC4wMDYyNSwgMCwgLTAuMDAzNzUsIC0wLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMDQyNSwgMC4wMzEyNSwgMC4wMTg3NSwgMC4wMTI1LCAwLjAwNjI1LCAwLjAwMjUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICIwLjA0MjUsIDAuMDM3NSwgMC4wMjUsIDAuMDE4NzUsIDAuMDEyNSwgMC4wMDg3NSwgMCIsIFwKLSAgICAgICAgICAiMC4wNTI1LCAwLjA0NzUsIDAuMDM1LCAwLjAyODc1LCAwLjAyMjUsIDAuMDEyNSwgMC4wMSIsIFwKLSAgICAgICAgICAiMC4wNjEyNSwgMC4wNSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMjEyNSwgMC4wMTI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQzNzUsIDAuMDMyNSwgMC4wMzI1LCAwLjAyNjI1LCAwLjAyNjI1LCAwLjAyODc1LCAwLjAzMjUiLCBcCi0gICAgICAgICAgIjAuMDQ4NzUsIDAuMDM3NSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAzMTI1LCAwLjAzMzc1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICIwLjA1NSwgMC4wNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzNzUsIDAuMDQsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiMC4wNjEyNSwgMC4wNSwgMC4wNSwgMC4wNDM3NSwgMC4wNDM3NSwgMC4wNCwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4wNjc1LCAwLjA1NjI1LCAwLjA1LCAwLjA1LCAwLjA1LCAwLjA0NjI1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjA3MTI1LCAwLjA2NjI1LCAwLjA2LCAwLjA1Mzc1LCAwLjA1Mzc1LCAwLjA1LCAwLjA1Mzc1IiwgXAotICAgICAgICAgICIwLjA3Mzc1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNTg3NSwgMC4wNTYyNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRykgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjQzNDU3OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDY0MzQ1NzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA1MjQ1MDM7Ci0gICAgY2xvY2sgOiB0cnVlOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjU0MSwgMC4wMDI1MjgsIDAuMDAyNTcyLCAwLjAwMjY3NywgMC4wMDI4MTMsIDAuMDAyOTc4LCAwLjAwMzE1NSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDMzNywgMC4wMDAzMzcsIDAuMDAwMzM3LCAwLjAwMDMzNywgMC4wMDAzMzcsIDAuMDAwMzM3LCAwLjAwMDMzNyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJHIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRCZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjEzNDEwNiwgMC4xNDE1MTksIDAuMTUxMTEzLCAwLjE2MDE2NiwgMC4xNjc5NjQsIDAuMTc5MjE4LCAwLjE4NzI5OCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAxLjMyNjg3OwotICAgIGZ1bmN0aW9uIDogIlFJTlQiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkQiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDgxMzczLCAwLjEzNjkzMywgMC4xOTI1NDgsIDAuMjMyNTU2LCAwLjI5NjA4MiwgMC4zNTI1MDYsIDAuNDMxMzY2IiwgXAotICAgICAgICAgICIwLjA4NzYwNSwgMC4xNDMzMjUsIDAuMTk5MTgxLCAwLjIzODY2NCwgMC4zMDIzMTksIDAuMzU4NzM5LCAwLjQzNzYxOCIsIFwKLSAgICAgICAgICAiMC4wOTQ5MTEsIDAuMTUwNjA2LCAwLjIwNjQyNSwgMC4yNDYxNjUsIDAuMzA5NDgzLCAwLjM2NTk5OCwgMC40NDQ3NDMiLCBcCi0gICAgICAgICAgIjAuMTAxNDE3LCAwLjE1NzEyMywgMC4yMTI5OTcsIDAuMjUyOTk3LCAwLjMxNjIzNiwgMC4zNzE1NDEsIDAuNDUyMTgxIiwgXAotICAgICAgICAgICIwLjEwNzAyOSwgMC4xNjI3MjUsIDAuMjE4NTU4LCAwLjI1ODU4MiwgMC4zMjE2NzMsIDAuMzc4MDcxLCAwLjQ1NjYwOCIsIFwKLSAgICAgICAgICAiMC4xMTQ1NjgsIDAuMTcwMzA0LCAwLjIyNjE3NywgMC4yNjYwNzYsIDAuMzI5MDcsIDAuMzg0OTc1LCAwLjQ2NDY4NCIsIFwKLSAgICAgICAgICAiMC4xMjAzNDMsIDAuMTc1ODYxLCAwLjIzMTkyNywgMC4yNzE3NzUsIDAuMzM0OTg4LCAwLjM5MDQ1MSwgMC40Njk5MjgiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjI3NjksIDAuMTQwMDIxLCAwLjI1ODMyNSwgMC4zNDM0NDgsIDAuNDc4MjUxLCAwLjU5Nzk5OSwgMC43NjU5NjgiLCBcCi0gICAgICAgICAgIjAuMDIyNzYzLCAwLjE0MDA2LCAwLjI1ODgyMSwgMC4zNDI4ODMsIDAuNDc4MjQxLCAwLjU5ODAwNywgMC43NjY2NjEiLCBcCi0gICAgICAgICAgIjAuMDIyNzM5LCAwLjE0MDA2LCAwLjI1OTI2NSwgMC4zNDMzODYsIDAuNDc4NDAyLCAwLjU5ODMwNSwgMC43NjY5NDMiLCBcCi0gICAgICAgICAgIjAuMDIyODAzLCAwLjE0MDEsIDAuMjU4ODY0LCAwLjM0MzY3MywgMC40Nzg2OTQsIDAuNTk3MDY1LCAwLjc2NzU0NCIsIFwKLSAgICAgICAgICAiMC4wMjI3MjYsIDAuMTQwMjAxLCAwLjI1OTI1LCAwLjM0Mzc2MywgMC40Nzg5MjQsIDAuNTk4NTY2LCAwLjc2NjQ0OCIsIFwKLSAgICAgICAgICAiMC4wMjI3MjQsIDAuMTQwMjMzLCAwLjI1OTIyMiwgMC4zNDQwMTMsIDAuNDc4NzY3LCAwLjU5Nzg2NSwgMC43NjY4MzEiLCBcCi0gICAgICAgICAgIjAuMDIyNzY5LCAwLjE0MDA2MSwgMC4yNTkxOTIsIDAuMzQ0MDkxLCAwLjQ3OTAzMiwgMC41OTcyNDUsIDAuNzY2NDE5Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk2NzM2LCAwLjE1MDc1OSwgMC4yMDQ4ODYsIDAuMjQzNTA5LCAwLjMwNTUwNCwgMC4zNTk1ODcsIDAuNDM2Nzg4IiwgXAotICAgICAgICAgICIwLjEwMjQ1NSwgMC4xNTY1MTksIDAuMjEwNjQxLCAwLjI0OTI0OCwgMC4zMTEwOTUsIDAuMzY1NDI0LCAwLjQ0Mjg4NSIsIFwKLSAgICAgICAgICAiMC4xMDkwMDUsIDAuMTYzMDMxLCAwLjIxNzE1OCwgMC4yNTU3OCwgMC4zMTc3NzcsIDAuMzcxODU5LCAwLjQ0OTA1OCIsIFwKLSAgICAgICAgICAiMC4xMTQ5NSwgMC4xNjg5ODQsIDAuMjIzMTA4LCAwLjI2MTc5LCAwLjMyMzcxOSwgMC4zNzc4MDYsIDAuNDU0OTkzIiwgXAotICAgICAgICAgICIwLjExOTk5MywgMC4xNzQwNSwgMC4yMjgxMzYsIDAuMjY2NzQ3LCAwLjMyODYxNywgMC4zODI3MTYsIDAuNDYwMDYiLCBcCi0gICAgICAgICAgIjAuMTI2ODY5LCAwLjE4MDg5MiwgMC4yMzQ5NzIsIDAuMjczNjA5LCAwLjMzNTYzOCwgMC4zODk3NTUsIDAuNDY2ODk3IiwgXAotICAgICAgICAgICIwLjEzMjA3OCwgMC4xODYwNTcsIDAuMjQwMTQ2LCAwLjI3ODgyMywgMC4zNDA2NzgsIDAuMzk0OTc3LCAwLjQ3MjEwOSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyMjAzNiwgMC4xMzI2NzQsIDAuMjQ1MTI1LCAwLjMyNTEwMiwgMC40NTMxMTgsIDAuNTY3MDg5LCAwLjcyNjY5NCIsIFwKLSAgICAgICAgICAiMC4wMjE5OTEsIDAuMTMyNzgxLCAwLjI0NTEyNywgMC4zMjUyNjcsIDAuNDUzNzM1LCAwLjU2NTQwMSwgMC43MjY1ODkiLCBcCi0gICAgICAgICAgIjAuMDIyMDc1LCAwLjEzMjY0NSwgMC4yNDUxMjMsIDAuMzI1MTExLCAwLjQ1Mzk0MiwgMC41NjcwODksIDAuNzI2Njc5IiwgXAotICAgICAgICAgICIwLjAyMjAyNCwgMC4xMzI3OTksIDAuMjQ1MTE3LCAwLjMyNTgwOSwgMC40NTQ1NDYsIDAuNTY3MDg2LCAwLjcyNTU0OSIsIFwKLSAgICAgICAgICAiMC4wMjE5OTYsIDAuMTMyNzE2LCAwLjI0NTEwNSwgMC4zMjUzNTcsIDAuNDUzMzY4LCAwLjU2NTg4OCwgMC43MjY3ODMiLCBcCi0gICAgICAgICAgIjAuMDIyMDE1LCAwLjEzMjY2OCwgMC4yNDUwNDEsIDAuMzI1MDI0LCAwLjQ1MzI5OCwgMC41NjcwMywgMC43MjY1MDgiLCBcCi0gICAgICAgICAgIjAuMDIyMDEsIDAuMTMyODQ1LCAwLjI0NDk0MiwgMC4zMjU0NDksIDAuNDU0MzI3LCAwLjU2NjExNCwgMC43MjY1OTciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBub25fdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJpc2luZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEyNTg5NSwgMC4xODE1OTksIDAuMjM3NDA5LCAwLjI3NzM4OSwgMC4zNDA1MDgsIDAuMzk1ODkxLCAwLjQ3NTk3NSIsIFwKLSAgICAgICAgICAiMC4xMzMzNjMsIDAuMTg4OTMyLCAwLjI0NDg0MiwgMC4yODQ4NDIsIDAuMzQ3OTM5LCAwLjQwNDMzNSwgMC40ODM5NCIsIFwKLSAgICAgICAgICAiMC4xNDMwMjUsIDAuMTk4NzI4LCAwLjI1NDUzOSwgMC4yOTQ1MjIsIDAuMzU3NjMzLCAwLjQxMzAxOSwgMC40OTM2MzkiLCBcCi0gICAgICAgICAgIjAuMTUxODQ5LCAwLjIwNzU2OSwgMC4yNjMzNzksIDAuMzAzMDU3LCAwLjM2NjQ0LCAwLjQyMjg2OCwgMC41MDE3MzIiLCBcCi0gICAgICAgICAgIjAuMTU5NDczLCAwLjIxNTAzMSwgMC4yNzA5NDUsIDAuMzEwOTQ3LCAwLjM3NDI2NywgMC40MzA0MzEsIDAuNTEwMDIyIiwgXAotICAgICAgICAgICIwLjE2OTY0MiwgMC4yMjUyMTgsIDAuMjgxMTIsIDAuMzIxMTMyLCAwLjM4NDE3NCwgMC40NDA1OTIsIDAuNTE5MTI1IiwgXAotICAgICAgICAgICIwLjE3NzEzOSwgMC4yMzI4MDcsIDAuMjg4NTk4LCAwLjMyODY0NCwgMC4zOTIzMSwgMC40NDcxNTYsIDAuNTI2ODY4Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDIyNzA2LCAwLjE0MDAzNCwgMC4yNTg4NTQsIDAuMzQzNjYsIDAuNDc4Nzk5LCAwLjU5NzUzMiwgMC43NjY1MDUiLCBcCi0gICAgICAgICAgIjAuMDIyNjMxLCAwLjE0MDMzNywgMC4yNTg4NDYsIDAuMzQzNzcyLCAwLjQ3OTA5OSwgMC41OTgzMjYsIDAuNzY4MzMyIiwgXAotICAgICAgICAgICIwLjAyMjcwMiwgMC4xNDAwMzQsIDAuMjU4ODUzLCAwLjM0MzY2MywgMC40Nzg4MTEsIDAuNTk3NDMsIDAuNzY3NTQyIiwgXAotICAgICAgICAgICIwLjAyMjY4NCwgMC4xNDAxMTQsIDAuMjU4ODQsIDAuMzQ0MDkxLCAwLjQ3ODk0LCAwLjU5ODMzLCAwLjc2NzA1OCIsIFwKLSAgICAgICAgICAiMC4wMjI2OTcsIDAuMTQwMzUyLCAwLjI1ODg0NCwgMC4zNDM3NzIsIDAuNDc5NzU0LCAwLjU5ODMzNiwgMC43NjgzNCIsIFwKLSAgICAgICAgICAiMC4wMjI3MDYsIDAuMTQwMjY0LCAwLjI1OTI1OCwgMC4zNDM2NzEsIDAuNDc4NDQzLCAwLjU5ODM2MiwgMC43NjYxNTYiLCBcCi0gICAgICAgICAgIjAuMDIyODQxLCAwLjE0MDIxNSwgMC4yNTkyMzgsIDAuMzQzNzcsIDAuNDc5NTA1LCAwLjU5NzQ2MiwgMC43NjY4NiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEzNDEwNiwgMC4xODgxMzEsIDAuMjQyMjU4LCAwLjI4MDg3MSwgMC4zNDI4NywgMC4zOTY5NTMsIDAuNDc0MTUzIiwgXAotICAgICAgICAgICIwLjE0MTUxOSwgMC4xOTU1NjcsIDAuMjQ5Njc3LCAwLjI4ODI5MywgMC4zNTAzMDEsIDAuNDA0MzgsIDAuNDgxNTg1IiwgXAotICAgICAgICAgICIwLjE1MTExMywgMC4yMDUxMywgMC4yNTkyNTcsIDAuMjk3ODcsIDAuMzU5ODczLCAwLjQxMzk1NCwgMC40OTExNTUiLCBcCi0gICAgICAgICAgIjAuMTYwMTY2LCAwLjIxNDE2MiwgMC4yNjgzMTEsIDAuMzA2OTI4LCAwLjM2ODg5OSwgMC40MjMwMDcsIDAuNTAwNTcxIiwgXAotICAgICAgICAgICIwLjE2Nzk2NCwgMC4yMjE5OTgsIDAuMjc2MDg0LCAwLjMxNDczLCAwLjM3NjU2OCwgMC40MzA3ODUsIDAuNTA4MTk5IiwgXAotICAgICAgICAgICIwLjE3OTIxOCwgMC4yMzMyNDEsIDAuMjg3MzY4LCAwLjMyNTk4NCwgMC4zODc5ODgsIDAuNDQyMDY1LCAwLjUxOTI2NyIsIFwKLSAgICAgICAgICAiMC4xODcyOTgsIDAuMjQxMzA3LCAwLjI5NTQwMiwgMC4zMzQwMTEsIDAuMzk2MDM1LCAwLjQ1MDIxNywgMC41Mjc2ODIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjIwMjEsIDAuMTMyNjYyLCAwLjI0NTE2NiwgMC4zMjUyMjMsIDAuNDU0NTQ2LCAwLjU2NzA4MywgMC43MjY3NDkiLCBcCi0gICAgICAgICAgIjAuMDIyLCAwLjEzMjcwMSwgMC4yNDUxMzksIDAuMzI1MzEzLCAwLjQ1NDU0OSwgMC41NjcwODQsIDAuNzI2NjUiLCBcCi0gICAgICAgICAgIjAuMDIyMDIzLCAwLjEzMjYyNSwgMC4yNDUxNjIsIDAuMzI1MjAzLCAwLjQ1NDU0OCwgMC41NjcwODIsIDAuNzI2NDQ1IiwgXAotICAgICAgICAgICIwLjAyMjAyOSwgMC4xMzI1OSwgMC4yNDUxNjQsIDAuMzI1MTM4LCAwLjQ1NDU0MywgMC41NjcwODEsIDAuNzI2NTExIiwgXAotICAgICAgICAgICIwLjAyMiwgMC4xMzI3NTIsIDAuMjQ1MTQ4LCAwLjMyNTM2MywgMC40NTM4MTYsIDAuNTY2OTk3LCAwLjcyNzk0OSIsIFwKLSAgICAgICAgICAiMC4wMjIsIDAuMTMyNzgzLCAwLjI0NTE1NiwgMC4zMjUxMjUsIDAuNDUzMzEzLCAwLjU2NzA4NCwgMC43MjY1NDEiLCBcCi0gICAgICAgICAgIjAuMDIxOTk3LCAwLjEzMjc5LCAwLjI0NTEzMywgMC4zMjU0MTksIDAuNDU0NTM3LCAwLjU2NjExNCwgMC43MjY1MjEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUk4iOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJpc2luZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEyNzQ5OSwgMC4xODMyMSwgMC4yMzkwMTcsIDAuMjc4OTk4LCAwLjM0MjEyLCAwLjM5NzQ5NiwgMC40NzgwOTMiLCBcCi0gICAgICAgICAgIjAuMTMzNzI4LCAwLjE4OTQ0MSwgMC4yNDUyNDksIDAuMjg1MjM2LCAwLjM0ODM3MywgMC40MDM3MywgMC40ODMxODkiLCBcCi0gICAgICAgICAgIjAuMTQxNDU1LCAwLjE5NzAwNywgMC4yNTI5MjQsIDAuMjkyOTI2LCAwLjM1NjAzLCAwLjQxMjQyLCAwLjQ5MTUzIiwgXAotICAgICAgICAgICIwLjE0ODIyNSwgMC4yMDM5MzIsIDAuMjU5NzQxLCAwLjI5OTcyLCAwLjM2Mjg1OCwgMC40MTg3ODcsIDAuNDk4ODE1IiwgXAotICAgICAgICAgICIwLjE1NDAyMSwgMC4yMDk1OTQsIDAuMjY1MTA5LCAwLjMwNDk3NSwgMC4zNjg1NTksIDAuNDI0OTgsIDAuNTAzNDU2IiwgXAotICAgICAgICAgICIwLjE2MjIyNywgMC4yMTc5MTYsIDAuMjczMzE2LCAwLjMxMzcsIDAuMzc2NjksIDAuNDMzMTc4LCAwLjUxMTk4IiwgXAotICAgICAgICAgICIwLjE2ODQ1OSwgMC4yMjQxNDEsIDAuMjgwMTE1LCAwLjMxOTMwNCwgMC4zODI4OTksIDAuNDM5NDEyLCAwLjUxODI0MiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyMjY4MywgMC4xNDAwMzgsIDAuMjU4ODUxLCAwLjM0Mzc0NSwgMC40Nzg3NzksIDAuNTk3NTQ5LCAwLjc2NzY5NSIsIFwKLSAgICAgICAgICAiMC4wMjI2NjMsIDAuMTQwMDM3LCAwLjI1ODg0OCwgMC4zNDM2NywgMC40Nzg4MjYsIDAuNTk3NTc1LCAwLjc2Njg2MSIsIFwKLSAgICAgICAgICAiMC4wMjI3MTMsIDAuMTQwMzgzLCAwLjI1OTI1NSwgMC4zNDM3NywgMC40NzkxNTgsIDAuNTk4MDA3LCAwLjc2NzA2NCIsIFwKLSAgICAgICAgICAiMC4wMjI3MDMsIDAuMTQwMDM4LCAwLjI1ODg1MywgMC4zNDM2NiwgMC40Nzg3NDUsIDAuNTk4NTg3LCAwLjc2NzY3MiIsIFwKLSAgICAgICAgICAiMC4wMjI2NzksIDAuMTQwMDQ2LCAwLjI1ODMzNCwgMC4zNDM1NjYsIDAuNDc4ODQyLCAwLjU5ODMzMywgMC43NjY4NTUiLCBcCi0gICAgICAgICAgIjAuMDIyNzA1LCAwLjE0MDEyNywgMC4yNTg0NDEsIDAuMzQzNjQ3LCAwLjQ3ODM5OCwgMC41OTgzMzksIDAuNzY3MTczIiwgXAotICAgICAgICAgICIwLjAyMjg4NywgMC4xNDAwODIsIDAuMjU5MDczLCAwLjM0MzE0NCwgMC40NzkxMDIsIDAuNTk4MzQ2LCAwLjc2NzQxMiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogZmFsbGluZ19lZGdlOwotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEzMTI1MywgMC4xODUzMTEsIDAuMjM5Mzg5LCAwLjI3Nzk4NiwgMC4zMzk5NiwgMC4zOTQwMzksIDAuNDcxMDAxIiwgXAotICAgICAgICAgICIwLjEzOTI4NSwgMC4xOTMzMDYsIDAuMjQ3NDA2LCAwLjI4NjA1MiwgMC4zNDc5NzQsIDAuNDAyMDU0LCAwLjQ3OTIyNiIsIFwKLSAgICAgICAgICAiMC4xNDg5MTgsIDAuMjAyOTUzLCAwLjI1NzAyOCwgMC4yOTU2MTEsIDAuMzU3NTk4LCAwLjQxMTY3NiwgMC40ODg4NTIiLCBcCi0gICAgICAgICAgIjAuMTU2NzY0LCAwLjIxMDgyOSwgMC4yNjQ5MjIsIDAuMzAzNTIyLCAwLjM2NTQ5OCwgMC40MTk1NjYsIDAuNDk2NzYxIiwgXAotICAgICAgICAgICIwLjE2Mzc2LCAwLjIxNzc2OCwgMC4yNzE4NjcsIDAuMzEwNDcyLCAwLjM3MjQ0OCwgMC40MjY1MjEsIDAuNTAzNyIsIFwKLSAgICAgICAgICAiMC4xNzM5MTQsIDAuMjI3OTUyLCAwLjI4MjAzLCAwLjMyMDYyMSwgMC4zODI1OTYsIDAuNDM2NzM0LCAwLjUxMzgzOSIsIFwKLSAgICAgICAgICAiMC4xODE2MjYsIDAuMjM1Njc1LCAwLjI4OTczOCwgMC4zMjgzODUsIDAuMzkwMzE2LCAwLjQ0NDM5LCAwLjUyMTU2MSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyMjAwNSwgMC4xMzI3NzQsIDAuMjQ1MTE5LCAwLjMyNTI1MywgMC40NTQ1MTUsIDAuNTY3MDMsIDAuNzI3NzgxIiwgXAotICAgICAgICAgICIwLjAyMjA5OSwgMC4xMzI4MTUsIDAuMjQ1MTI3LCAwLjMyNTc3NywgMC40NTQ1MTIsIDAuNTY3MDI4LCAwLjcyNTUwNCIsIFwKLSAgICAgICAgICAiMC4wMjIwODQsIDAuMTMyNzYsIDAuMjQ1MTQ1LCAwLjMyNTM3NiwgMC40NTQ1MjcsIDAuNTY3MDIsIDAuNzI2NjIxIiwgXAotICAgICAgICAgICIwLjAyMjAwOCwgMC4xMzI3OTIsIDAuMjQ1MTU1LCAwLjMyNTgwOSwgMC40NTQ1MjMsIDAuNTY3MDI2LCAwLjcyNjYxMSIsIFwKLSAgICAgICAgICAiMC4wMjIwNTksIDAuMTMyNjg3LCAwLjI0NTE0MSwgMC4zMjU4MTgsIDAuNDU0NTIzLCAwLjU2NzAzLCAwLjcyNjU0OCIsIFwKLSAgICAgICAgICAiMC4wMjIwOTUsIDAuMTMyNjg4LCAwLjI0NTExOSwgMC4zMjUxMDcsIDAuNDU0NTE0LCAwLjU2NzA5MiwgMC43MjY0NzIiLCBcCi0gICAgICAgICAgIjAuMDIyMDI0LCAwLjEzMjcyMSwgMC4yNDUxMTUsIDAuMzI1NzcyLCAwLjQ1NDUwNywgMC41NjcwMDksIDAuNzI2NzU2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiBwcmVzZXQ7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQ2MDA2LCAwLjEwMTc0MiwgMC4xNTc0ODksIDAuMTk3NjE5LCAwLjI2MDc5OSwgMC4zMTcwOTcsIDAuMzk2NDkxIiwgXAotICAgICAgICAgICIwLjA1NDE4NCwgMC4xMDk3NzgsIDAuMTY1NzM5LCAwLjIwNTc4MSwgMC4yNjkyNTksIDAuMzI1MjU5LCAwLjQwNDYwMyIsIFwKLSAgICAgICAgICAiMC4wNjM3OTgsIDAuMTE5NTE3LCAwLjE3NTM1MSwgMC4yMTQ4MTIsIDAuMjc4NzksIDAuMzM0NzkzLCAwLjQxNDM2MiIsIFwKLSAgICAgICAgICAiMC4wNzEyMTMsIDAuMTI2ODgsIDAuMTgyMzgsIDAuMjIyMDc4LCAwLjI4NjA0OSwgMC4zNDE3NjksIDAuNDIxMzc0IiwgXAotICAgICAgICAgICIwLjA3NzE3MiwgMC4xMzI3MTUsIDAuMTg4NjMzLCAwLjIyODE3MywgMC4yOTIxMzMsIDAuMzQ3MywgMC40Mjc0NDgiLCBcCi0gICAgICAgICAgIjAuMDg0NzY0LCAwLjE0MDA0MiwgMC4xOTU5NTgsIDAuMjM1NzgsIDAuMjk5NDQyLCAwLjM1NTE1NywgMC40MzQyNTgiLCBcCi0gICAgICAgICAgIjAuMDkwMjI1LCAwLjE0NTQsIDAuMjAxMjM1LCAwLjI0MTAyMSwgMC4zMDQ2OTYsIDAuMzYwNTM3LCAwLjQ0MDIxMiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyMjY2LCAwLjE0MDM0NiwgMC4yNTg4OSwgMC4zNDM2ODIsIDAuNDc5Nzk4LCAwLjU5ODYxMiwgMC43NjgzNzciLCBcCi0gICAgICAgICAgIjAuMDIyNjY1LCAwLjE0MDE4NywgMC4yNTkyOTksIDAuMzQzNzM5LCAwLjQ3OTMyNSwgMC41OTg1NzUsIDAuNzY3NjAyIiwgXAotICAgICAgICAgICIwLjAyMjg5OSwgMC4xNDAyNTYsIDAuMjU4NTE5LCAwLjM0MzQ4MiwgMC40Nzk4NzUsIDAuNTk4NjQ5LCAwLjc2ODQ1MyIsIFwKLSAgICAgICAgICAiMC4wMjI5NTQsIDAuMTQwMTUzLCAwLjI1OTAyNywgMC4zNDM0NjcsIDAuNDc5ODc5LCAwLjU5ODcyNiwgMC43NjgyOTkiLCBcCi0gICAgICAgICAgIjAuMDIzMDcxLCAwLjE0MDE1NSwgMC4yNTkyNTMsIDAuMzQ0MDg2LCAwLjQ3OTkwOSwgMC41OTgwOTEsIDAuNzY4NDE3IiwgXAotICAgICAgICAgICIwLjAyMzQwNSwgMC4xNDAyMzUsIDAuMjU5MTYxLCAwLjM0NDAyNCwgMC40Nzk3NzIsIDAuNTk4NjE1LCAwLjc2NzYzOCIsIFwKLSAgICAgICAgICAiMC4wMjM1MzMsIDAuMTQwMDAxLCAwLjI1ODgzMiwgMC4zNDM1OTgsIDAuNDc5NjA2LCAwLjU5ODQyLCAwLjc2ODA5MSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1OTc2NywgMC4xMTM3OTQsIDAuMTY3OTA1LCAwLjIwNjUwNCwgMC4yNjg1MDEsIDAuMzIyNTk1LCAwLjQwMDE1NSIsIFwKLSAgICAgICAgICAiMC4wNjU2ODEsIDAuMTE5NzQsIDAuMTczODU5LCAwLjIxMjU0LCAwLjI3NDQ2MSwgMC4zMjg1NTQsIDAuNDA2MTE4IiwgXAotICAgICAgICAgICIwLjA3MzEyNSwgMC4xMjcxODksIDAuMTgxMzM1LCAwLjIxOTk5NCwgMC4yODE5NDIsIDAuMzM2MDM2LCAwLjQxMzIyNyIsIFwKLSAgICAgICAgICAiMC4wNzk3MzksIDAuMTMzNzEyLCAwLjE4NzgzMywgMC4yMjY1NjcsIDAuMjg4MzU2LCAwLjM0MjQzOSwgMC40MjAxNTQiLCBcCi0gICAgICAgICAgIjAuMDg1NDQ2LCAwLjEzOTQ4MiwgMC4xOTM1NzMsIDAuMjMyMTU4LCAwLjI5NDIwOCwgMC4zNDgxNzIsIDAuNDI1NjYiLCBcCi0gICAgICAgICAgIjAuMDkzNDkyLCAwLjE0NzQ0NCwgMC4yMDE1MjMsIDAuMjQwMTQ2LCAwLjMwMjEwNiwgMC4zNTYzMTQsIDAuNDMzNjYzIiwgXAotICAgICAgICAgICIwLjA5OTY4NywgMC4xNTM2MDcsIDAuMjA3NjQyLCAwLjI0NjQ1LCAwLjMwODI3NSwgMC4zNjI0OTksIDAuNDM5OTM0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDIyMDI0LCAwLjEzMjc4LCAwLjI0NTEyNywgMC4zMjUyNjIsIDAuNDU0NTQxLCAwLjU2NzA3OSwgMC43MjY0OTkiLCBcCi0gICAgICAgICAgIjAuMDIyMDE3LCAwLjEzMjc4NSwgMC4yNDUxMTcsIDAuMzI1ODEyLCAwLjQ1NDU0MywgMC41NjcwODYsIDAuNzI2NTM2IiwgXAotICAgICAgICAgICIwLjAyMjAyNywgMC4xMzI4MDUsIDAuMjQ1MTI0LCAwLjMyNTQ1NCwgMC40NTQ1NSwgMC41NjcwODcsIDAuNzI3OTYzIiwgXAotICAgICAgICAgICIwLjAyMjA2NywgMC4xMzI4NDgsIDAuMjQ1MTcsIDAuMzI1Mzg1LCAwLjQ1NDUzOSwgMC41NjcwNzMsIDAuNzI2NTgyIiwgXAotICAgICAgICAgICIwLjAyMjEyOCwgMC4xMzI3MDksIDAuMjQ1MTg4LCAwLjMyNTc3MiwgMC40NTQ1MiwgMC41NjY5NTgsIDAuNzI3ODExIiwgXAotICAgICAgICAgICIwLjAyMjMzNSwgMC4xMzI5NiwgMC4yNDUyNjIsIDAuMzI1NDI3LCAwLjQ1NDM1MywgMC41NjY5NjUsIDAuNzI3NzgzIiwgXAotICAgICAgICAgICIwLjAyMjU4OCwgMC4xMzI1NzUsIDAuMjQ1MjIzLCAwLjMyNTgwNiwgMC40NTQzNjEsIDAuNTY2OTU1LCAwLjcyNjg4NiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkQiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA5Nzg1LCAwLjAwOTk1NCwgMC4wMDk5ODMsIDAuMDA5OTkxLCAwLjAxMDAwNCwgMC4wMDk5OTcsIDAuMDEwMDA3IiwgXAotICAgICAgICAgICIwLjAwOTc2NiwgMC4wMDk5MzUsIDAuMDA5OTYzLCAwLjAwOTk3MiwgMC4wMDk5NzksIDAuMDA5OTc4LCAwLjAwOTk5MiIsIFwKLSAgICAgICAgICAiMC4wMDk3NzIsIDAuMDA5OTQxLCAwLjAwOTk2OSwgMC4wMDk5NzgsIDAuMDA5OTg2LCAwLjAwOTk5LCAwLjAwOTk4MyIsIFwKLSAgICAgICAgICAiMC4wMDk3OTYsIDAuMDA5OTY0LCAwLjAwOTk5MywgMC4wMDk5OTQsIDAuMDEwMDEsIDAuMDEwMDE0LCAwLjAxMDAyNCIsIFwKLSAgICAgICAgICAiMC4wMDk4NDYsIDAuMDEwMDEsIDAuMDEwMDM5LCAwLjAxMDA0OSwgMC4wMTAwNTcsIDAuMDEwMDYxLCAwLjAxMDA2NiIsIFwKLSAgICAgICAgICAiMC4wMDk5MiwgMC4wMTAwNzUsIDAuMDEwMTA0LCAwLjAxMDExMywgMC4wMTAxMiwgMC4wMTAxMjYsIDAuMDEwMTMiLCBcCi0gICAgICAgICAgIjAuMDEwMDA3LCAwLjAxMDE1NywgMC4wMTAxODUsIDAuMDEwMTk2LCAwLjAxMDIwNSwgMC4wMTAyMSwgMC4wMTAyMTQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMDUzNiwgMC4wMTA2MjgsIDAuMDEwNjQ4LCAwLjAxMDY1NSwgMC4wMTA2NiwgMC4wMTA2NjMsIDAuMDEwNjY0IiwgXAotICAgICAgICAgICIwLjAxMDUxOCwgMC4wMTA2MTEsIDAuMDEwNjMxLCAwLjAxMDY0MSwgMC4wMTA2NDMsIDAuMDEwNjQ2LCAwLjAxMDY0OCIsIFwKLSAgICAgICAgICAiMC4wMTA1MzQsIDAuMDEwNjI2LCAwLjAxMDY0NSwgMC4wMTA2NTIsIDAuMDEwNjU3LCAwLjAxMDY2LCAwLjAxMDY2NCIsIFwKLSAgICAgICAgICAiMC4wMTA1MjcsIDAuMDEwNjI4LCAwLjAxMDY0OCwgMC4wMTA2NTcsIDAuMDEwNjYxLCAwLjAxMDY2NCwgMC4wMTA2NjUiLCBcCi0gICAgICAgICAgIjAuMDEwNTcyLCAwLjAxMDY2MSwgMC4wMTA2ODIsIDAuMDEwNjg5LCAwLjAxMDY5NiwgMC4wMTA2OTksIDAuMDEwNzAyIiwgXAotICAgICAgICAgICIwLjAxMDY5LCAwLjAxMDc3LCAwLjAxMDc4OSwgMC4wMTA3OTYsIDAuMDEwODAyLCAwLjAxMDgwMSwgMC4wMTA4MDciLCBcCi0gICAgICAgICAgIjAuMDEwNzYsIDAuMDEwODQyLCAwLjAxMDg2MSwgMC4wMTA4NjcsIDAuMDEwODcyLCAwLjAxMDg3NCwgMC4wMTA4NzciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJHIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMDk1NCwgMC4wMTExMTUsIDAuMDExMTE5LCAwLjAxMTExNSwgMC4wMTExMDgsIDAuMDExMTAzLCAwLjAxMTEwMyIsIFwKLSAgICAgICAgICAiMC4wMTA5NTEsIDAuMDExMTA5LCAwLjAxMTExNCwgMC4wMTExMSwgMC4wMTExMDMsIDAuMDExMSwgMC4wMTEwOTQiLCBcCi0gICAgICAgICAgIjAuMDEwOTc1LCAwLjAxMTEzNiwgMC4wMTExNDEsIDAuMDExMTM3LCAwLjAxMTEzLCAwLjAxMTEyNCwgMC4wMTExMiIsIFwKLSAgICAgICAgICAiMC4wMTEwMjYsIDAuMDExMTg2LCAwLjAxMTE5NCwgMC4wMTExOTEsIDAuMDExMTg0LCAwLjAxMTE3OSwgMC4wMTExNzMiLCBcCi0gICAgICAgICAgIjAuMDExMDg0LCAwLjAxMTI0MSwgMC4wMTEyNDcsIDAuMDExMjQzLCAwLjAxMTIzNiwgMC4wMTEyMzEsIDAuMDExMjI1IiwgXAotICAgICAgICAgICIwLjAxMTE2NSwgMC4wMTEzMjMsIDAuMDExMzI4LCAwLjAxMTMyNSwgMC4wMTEzMTgsIDAuMDExMzEyLCAwLjAxMTMwOCIsIFwKLSAgICAgICAgICAiMC4wMTEyNTQsIDAuMDExMzk3LCAwLjAxMTQxNCwgMC4wMTE0MiwgMC4wMTE0LCAwLjAxMTQwOCwgMC4wMTE0MDIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMTU4MSwgMC4wMTE2NzcsIDAuMDExNjk2LCAwLjAxMTcwMywgMC4wMTE3MDgsIDAuMDExNzEsIDAuMDExNzE0IiwgXAotICAgICAgICAgICIwLjAxMTU4OSwgMC4wMTE2NzYsIDAuMDExNjk1LCAwLjAxMTcwMSwgMC4wMTE3MDUsIDAuMDExNzA3LCAwLjAxMTcxNCIsIFwKLSAgICAgICAgICAiMC4wMTE1OTQsIDAuMDExNjkzLCAwLjAxMTcxMiwgMC4wMTE3MTgsIDAuMDExNzI0LCAwLjAxMTcyNywgMC4wMTE3MyIsIFwKLSAgICAgICAgICAiMC4wMTE2NSwgMC4wMTE3NTYsIDAuMDExNzY3LCAwLjAxMTc3MywgMC4wMTE3ODksIDAuMDExNzgyLCAwLjAxMTc5MSIsIFwKLSAgICAgICAgICAiMC4wMTE3NSwgMC4wMTE4MzgsIDAuMDExODU3LCAwLjAxMTg2MywgMC4wMTE4NywgMC4wMTE4NywgMC4wMTE4NzMiLCBcCi0gICAgICAgICAgIjAuMDExNzksIDAuMDExODg2LCAwLjAxMTkwNiwgMC4wMTE5MTEsIDAuMDExOTE4LCAwLjAxMTkyLCAwLjAxMTkyMiIsIFwKLSAgICAgICAgICAiMC4wMTE4ODEsIDAuMDExOTk1LCAwLjAxMjAwNywgMC4wMTIwMTQsIDAuMDEyMDI4LCAwLjAxMjAyMywgMC4wMTIwMzMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTA4MTQsIDAuMDEwOTc0LCAwLjAxMDk3NywgMC4wMTA5NzIsIDAuMDEwOTY0LCAwLjAxMDk1OSwgMC4wMTA5NTgiLCBcCi0gICAgICAgICAgIjAuMDEwNzkzLCAwLjAxMDk1MiwgMC4wMTA5NTUsIDAuMDEwOTUxLCAwLjAxMDk0MywgMC4wMTA5MzgsIDAuMDEwOTMxIiwgXAotICAgICAgICAgICIwLjAxMDgxMSwgMC4wMTA5NywgMC4wMTA5NzQsIDAuMDEwOTY5LCAwLjAxMDk2MiwgMC4wMTA5NTYsIDAuMDEwOTUiLCBcCi0gICAgICAgICAgIjAuMDEwODM5LCAwLjAxMDk5NCwgMC4wMTA5OTgsIDAuMDEwOTkzLCAwLjAxMDk4NiwgMC4wMTA5OCwgMC4wMTA5ODEiLCBcCi0gICAgICAgICAgIjAuMDEwODY3LCAwLjAxMTAyNSwgMC4wMTEwMjgsIDAuMDExMDI0LCAwLjAxMTAxNiwgMC4wMTEwMTEsIDAuMDExMDA1IiwgXAotICAgICAgICAgICIwLjAxMDk0MiwgMC4wMTEwOTgsIDAuMDExMTAyLCAwLjAxMTA5OCwgMC4wMTEwOSwgMC4wMTEwODQsIDAuMDExMDc4IiwgXAotICAgICAgICAgICIwLjAxMTAxMywgMC4wMTExNzUsIDAuMDExMTc0LCAwLjAxMTE3MSwgMC4wMTExNjMsIDAuMDExMTU3LCAwLjAxMTE1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTM0MDQsIDAuMDEzNDg4LCAwLjAxMzQ4OSwgMC4wMTM0ODUsIDAuMDEzNDc5LCAwLjAxMzQ3NSwgMC4wMTM0NzEiLCBcCi0gICAgICAgICAgIjAuMDEzMzkxLCAwLjAxMzQ3MywgMC4wMTM0NzUsIDAuMDEzNDcxLCAwLjAxMzQ2NiwgMC4wMTM0NjEsIDAuMDEzNDU2IiwgXAotICAgICAgICAgICIwLjAxMzQyMSwgMC4wMTM1MDEsIDAuMDEzNTAzLCAwLjAxMzQ5OSwgMC4wMTM0OTMsIDAuMDEzNDg4LCAwLjAxMzQ4NiIsIFwKLSAgICAgICAgICAiMC4wMTM0NjUsIDAuMDEzNTUsIDAuMDEzNTUxLCAwLjAxMzU0OCwgMC4wMTM1NDIsIDAuMDEzNTM2LCAwLjAxMzUzMiIsIFwKLSAgICAgICAgICAiMC4wMTM1MzMsIDAuMDEzNjEyLCAwLjAxMzYxNCwgMC4wMTM2MSwgMC4wMTM2MDQsIDAuMDEzNTk5LCAwLjAxMzU5NCIsIFwKLSAgICAgICAgICAiMC4wMTM2MTYsIDAuMDEzNjg5LCAwLjAxMzY5LCAwLjAxMzY4NywgMC4wMTM2OCwgMC4wMTM2NzUsIDAuMDEzNjY5IiwgXAotICAgICAgICAgICIwLjAxMzY4MSwgMC4wMTM3NzIsIDAuMDEzNzc1LCAwLjAxMzc3MiwgMC4wMTM3NjUsIDAuMDEzNzY0LCAwLjAxMzc1MyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMDc4MSwgMC4wMTA5MzUsIDAuMDEwOTU2LCAwLjAxMDk2MiwgMC4wMTA5NjgsIDAuMDEwOTcsIDAuMDEwOTczIiwgXAotICAgICAgICAgICIwLjAxMDc1MywgMC4wMTA5MTIsIDAuMDEwOTM3LCAwLjAxMDk0NCwgMC4wMTA5NTEsIDAuMDEwOTU1LCAwLjAxMDk2MyIsIFwKLSAgICAgICAgICAiMC4wMTA4MjQsIDAuMDEwOTYyLCAwLjAxMDk4OSwgMC4wMTA5OTgsIDAuMDExMDA3LCAwLjAxMTAxMSwgMC4wMTEwMTUiLCBcCi0gICAgICAgICAgIjAuMDEwOTUsIDAuMDExMDU4LCAwLjAxMTA4NywgMC4wMTEwOTYsIDAuMDExMTA2LCAwLjAxMTExMiwgMC4wMTExMTQiLCBcCi0gICAgICAgICAgIjAuMDExMTIzLCAwLjAxMTE5NCwgMC4wMTEyMjEsIDAuMDExMjMzLCAwLjAxMTI0LCAwLjAxMTI0NiwgMC4wMTEyNSIsIFwKLSAgICAgICAgICAiMC4wMTE0MjgsIDAuMDExNDQ3LCAwLjAxMTQ2OSwgMC4wMTE0NzcsIDAuMDExNDg4LCAwLjAxMTQ5MiwgMC4wMTE0OTciLCBcCi0gICAgICAgICAgIjAuMDExNzE1LCAwLjAxMTY4NywgMC4wMTE2OTMsIDAuMDExNzAyLCAwLjAxMTcwNywgMC4wMTE3MTQsIDAuMDExNzE4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDg2MzMsIDAuMDA4NzM4LCAwLjAwODc1NCwgMC4wMDg3NTgsIDAuMDA4NzYyLCAwLjAwODc2NCwgMC4wMDg3NjYiLCBcCi0gICAgICAgICAgIjAuMDA4NTU2LCAwLjAwODY3LCAwLjAwODY4OSwgMC4wMDg2OTYsIDAuMDA4Njk5LCAwLjAwODcwMSwgMC4wMDg3MDMiLCBcCi0gICAgICAgICAgIjAuMDA4NjM3LCAwLjAwODcyMywgMC4wMDg3NDIsIDAuMDA4NzQ4LCAwLjAwODc1MywgMC4wMDg3NTUsIDAuMDA4NzU3IiwgXAotICAgICAgICAgICIwLjAwODc2NSwgMC4wMDg4MjYsIDAuMDA4ODQzLCAwLjAwODkxNCwgMC4wMDg4NSwgMC4wMDg4NTIsIDAuMDA4ODU1IiwgXAotICAgICAgICAgICIwLjAwODg2NSwgMC4wMDg5MDYsIDAuMDA4OTI0LCAwLjAwODkyOSwgMC4wMDg5MzYsIDAuMDA4OTM3LCAwLjAwODkzOSIsIFwKLSAgICAgICAgICAiMC4wMDkxNCwgMC4wMDkxMTYsIDAuMDA5MTc3LCAwLjAwOTE4NSwgMC4wMDkxOSwgMC4wMDkxODcsIDAuMDA5MTg2IiwgXAotICAgICAgICAgICIwLjAwOTQ4MywgMC4wMDk0MDMsIDAuMDA5NDA5LCAwLjAwOTQwNCwgMC4wMDk0MTIsIDAuMDA5NDA0LCAwLjAwOTQxMyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUU4pICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMS4zNDI0MTsKLSAgICBmdW5jdGlvbiA6ICJONSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTA2MjgsIDAuMTUyMjIyLCAwLjIwNzc1OCwgMC4yNDczMjQsIDAuMzEwNjg2LCAwLjM2NjA0NCwgMC40NDUyNjMiLCBcCi0gICAgICAgICAgIjAuMDk2Mzc0LCAwLjE1Nzk2NywgMC4yMTM1MDUsIDAuMjUzMDc3LCAwLjMxNjM5MSwgMC4zNzE4NDMsIDAuNDUxMDYiLCBcCi0gICAgICAgICAgIjAuMTAyODk4LCAwLjE2NDQ5MiwgMC4yMjAwMjgsIDAuMjU5NTk0LCAwLjMyMjk1NywgMC4zNzgzMTQsIDAuNDU3NTMiLCBcCi0gICAgICAgICAgIjAuMTA4ODcyLCAwLjE3MDQ3NywgMC4yMjYwMTgsIDAuMjY1NiwgMC4zMjg5NDUsIDAuMzg0MzA2LCAwLjQ2MzQ5NCIsIFwKLSAgICAgICAgICAiMC4xMTM5MTEsIDAuMTc1NTU3LCAwLjIzMTA4NywgMC4yNzA2NjUsIDAuMzMzOTY2LCAwLjM4OTQxNiwgMC40Njg1MzkiLCBcCi0gICAgICAgICAgIjAuMTIwNzYzLCAwLjE4MjQwNiwgMC4yMzc5NDEsIDAuMjc3NTE2LCAwLjM0MDg2OSwgMC4zOTYyNDYsIDAuNDc1Mzk0IiwgXAotICAgICAgICAgICIwLjEyNjAxLCAwLjE4NzY3NiwgMC4yNDMyMTgsIDAuMjgyNzg2LCAwLjM0NjA4MiwgMC40MDE1NzEsIDAuNDgwNjEiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzM3OTksIDAuMTQ1NDU4LCAwLjI2MDkyMywgMC4zNDQ0ODUsIDAuNDc4ODcxLCAwLjU5NzQ5NywgMC43NjQ5ODMiLCBcCi0gICAgICAgICAgIjAuMDMzODI0LCAwLjE0NTQzOCwgMC4yNjA5MjYsIDAuMzQ0MjQ3LCAwLjQ3ODU2MiwgMC41OTY1NDksIDAuNzY0OTc3IiwgXAotICAgICAgICAgICIwLjAzMzgxLCAwLjE0NTQ2MiwgMC4yNjA5MjUsIDAuMzQ0NDg4LCAwLjQ3ODc5NSwgMC41OTc0OTcsIDAuNzY0OTcyIiwgXAotICAgICAgICAgICIwLjAzMzgwOCwgMC4xNDU0NDQsIDAuMjYwOTI1LCAwLjM0NDY4OSwgMC40Nzk0NTcsIDAuNTk3NDk1LCAwLjc2NDk3MiIsIFwKLSAgICAgICAgICAiMC4wMzM4OTQsIDAuMTQ1NTQ1LCAwLjI2MDkzNiwgMC4zNDQyNiwgMC40Nzg4NjEsIDAuNTk2NjcxLCAwLjc2NTU5NCIsIFwKLSAgICAgICAgICAiMC4wMzQwNDgsIDAuMTQ1NTczLCAwLjI2MDg3LCAwLjM0NDQzMywgMC40Nzg2NTEsIDAuNTk3NDgzLCAwLjc2NTI5OSIsIFwKLSAgICAgICAgICAiMC4wMzQxMDEsIDAuMTQ1NTcsIDAuMjYxMDIxLCAwLjM0NDQ2MSwgMC40NzkwNzEsIDAuNTk2NTQxLCAwLjc2NTQ1NyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3NDMwNywgMC4xMzA5MTUsIDAuMTg0ODc1LCAwLjIyMzM3NywgMC4yODUwNjIsIDAuMzM5MDEyLCAwLjQxNjA0NyIsIFwKLSAgICAgICAgICAiMC4wODA1MzcsIDAuMTM3MTQ1LCAwLjE5MTEwNSwgMC4yMjk2MDUsIDAuMjkxMjg5LCAwLjM0NTI0MywgMC40MjIyNzUiLCBcCi0gICAgICAgICAgIjAuMDg3ODQzLCAwLjE0NDQ1MiwgMC4xOTg0MTIsIDAuMjM2OTI0LCAwLjI5ODYxNywgMC4zNTI1NDUsIDAuNDI5NTk0IiwgXAotICAgICAgICAgICIwLjA5NDM0NiwgMC4xNTA5NywgMC4yMDQ5MzUsIDAuMjQzNDg4LCAwLjMwNTExLCAwLjM1OTA5MSwgMC40MzYwOTQiLCBcCi0gICAgICAgICAgIjAuMDk5OTY2LCAwLjE1NjU4NiwgMC4yMTA1NDYsIDAuMjQ5MDk2LCAwLjMxMDczOCwgMC4zNjQ2ODMsIDAuNDQxNzU5IiwgXAotICAgICAgICAgICIwLjEwNzUzNiwgMC4xNjQxOSwgMC4yMTgxNjUsIDAuMjU2NzA3LCAwLjMxODM0MiwgMC4zNzIyNSwgMC40NDkyOCIsIFwKLSAgICAgICAgICAiMC4xMTMzMDUsIDAuMTY5OTc0LCAwLjIyMzk0NiwgMC4yNjI0OTksIDAuMzI0MTIsIDAuMzc4MDkyLCAwLjQ1NTA5NiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyNzQ1LCAwLjEzNDQyMiwgMC4yNDUxNDcsIDAuMzI1NDksIDAuNDUyNjg4LCAwLjU2NjA3OSwgMC43MjQ2MiIsIFwKLSAgICAgICAgICAiMC4wMjc0NDUsIDAuMTM0NjE3LCAwLjI0NTY0OSwgMC4zMjQ3MTEsIDAuNDUyNjgzLCAwLjU2NjA4NywgMC43MjU2MDQiLCBcCi0gICAgICAgICAgIjAuMDI3NDYyLCAwLjEzNDYxMywgMC4yNDU2NjcsIDAuMzI1NDU5LCAwLjQ1MjU2MywgMC41NjYwODUsIDAuNzI1NTU4IiwgXAotICAgICAgICAgICIwLjAyNzU1OCwgMC4xMzQ2MjYsIDAuMjQ1NjkzLCAwLjMyNTY5MSwgMC40NTMyMDYsIDAuNTY1MDAzLCAwLjcyNjQzIiwgXAotICAgICAgICAgICIwLjAyNzYxOSwgMC4xMzQ2NDksIDAuMjQ1NjkzLCAwLjMyNTcwMSwgMC40NTMyNzQsIDAuNTY2MDUyLCAwLjcyNTExNCIsIFwKLSAgICAgICAgICAiMC4wMjc4MTIsIDAuMTM0Njc3LCAwLjI0NTc4OCwgMC4zMjU2ODgsIDAuNDUzMTA2LCAwLjU2NTM1OCwgMC43MjUzNTYiLCBcCi0gICAgICAgICAgIjAuMDI3OTUzLCAwLjEzNDYxOSwgMC4yNDU3MDcsIDAuMzI1NjcxLCAwLjQ1MzI3MywgMC41NjUwNDQsIDAuNzI1MjgzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkciOwotICAgICAgdGltaW5nX3NlbnNlIDogbm9uX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiByaXNpbmdfZWRnZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMjgwNjQsIDAuMTg5NzIzLCAwLjI0NTI2LCAwLjI4NDgyOCwgMC4zNDgxODQsIDAuNDAzNTQyLCAwLjQ4Mjc2NyIsIFwKLSAgICAgICAgICAiMC4xMzU0NzEsIDAuMTk3MTE2LCAwLjI1MjY0OSwgMC4yOTIyMjIsIDAuMzU1NTgyLCAwLjQxMDkzNywgMC40OTAxNTgiLCBcCi0gICAgICAgICAgIjAuMTQ1MDYzLCAwLjIwNjcyMiwgMC4yNjIyNjEsIDAuMzAxODI4LCAwLjM2NTE4NywgMC40MjA1NDUsIDAuNDk5NzYyIiwgXAotICAgICAgICAgICIwLjE1NDExNywgMC4yMTU3NDcsIDAuMjcxMzE0LCAwLjMxMDg4MSwgMC4zNzQyMDUsIDAuNDI5NTk4LCAwLjUwODg3MSIsIFwKLSAgICAgICAgICAiMC4xNjE5MTMsIDAuMjIzNTYxLCAwLjI3OTA5MywgMC4zMTg2NjUsIDAuMzgxOTg1LCAwLjQzNzM1NywgMC41MTY1MyIsIFwKLSAgICAgICAgICAiMC4xNzMxNjcsIDAuMjM0ODI0LCAwLjI5MDM2MywgMC4zMjk5MjksIDAuMzkzMjkzLCAwLjQ0ODY0NywgMC41Mjc4NCIsIFwKLSAgICAgICAgICAiMC4xODEzMTIsIDAuMjQyOTk1LCAwLjI5ODUxLCAwLjMzODA4NSwgMC40MDE0NDcsIDAuNDU2ODY5LCAwLjUzNjA4OCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzMzkxOSwgMC4xNDU0OTcsIDAuMjYwOTM1LCAwLjM0NDUyNCwgMC40Nzk0NjIsIDAuNTk3NDk0LCAwLjc2NTA0MSIsIFwKLSAgICAgICAgICAiMC4wMzM5NTMsIDAuMTQ1NTU2LCAwLjI2MDkzMywgMC4zNDQ0ODQsIDAuNDc5NDYzLCAwLjU5NzQ5NCwgMC43NjUyMzkiLCBcCi0gICAgICAgICAgIjAuMDMzOTIzLCAwLjE0NTUwMywgMC4yNjA5MzYsIDAuMzQ0NTI2LCAwLjQ3OTQ2MywgMC41OTc0OTMsIDAuNzY0ODk0IiwgXAotICAgICAgICAgICIwLjAzMzkyNCwgMC4xNDU1MTMsIDAuMjYwOTM2LCAwLjM0NDUwOCwgMC40Nzk0NiwgMC41OTc0OTIsIDAuNzY1MzE5IiwgXAotICAgICAgICAgICIwLjAzMzk2NCwgMC4xNDU1MjIsIDAuMjYwOTA4LCAwLjM0NDQ1NSwgMC40Nzg1ODEsIDAuNTk3Mjc2LCAwLjc2NjQ0OCIsIFwKLSAgICAgICAgICAiMC4wMzM5MzcsIDAuMTQ1NTE1LCAwLjI2MDkzOSwgMC4zNDQ1MDYsIDAuNDc4NjMzLCAwLjU5NzQ5NSwgMC43NjQ4ODYiLCBcCi0gICAgICAgICAgIjAuMDMzOTM5LCAwLjE0NTQ3NiwgMC4yNjA5NDQsIDAuMzQ0NDIyLCAwLjQ3OTQ1OSwgMC41OTY1MzgsIDAuNzY0OTQ5Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTE4ODM3LCAwLjE3NTQ1NiwgMC4yMjk0MTgsIDAuMjY3OTY3LCAwLjMyOTYwNCwgMC4zODM1NiwgMC40NjA1NjYiLCBcCi0gICAgICAgICAgIjAuMTI2MzEyLCAwLjE4MjkyOCwgMC4yMzY4ODgsIDAuMjc1NDM1LCAwLjMzNzA3NSwgMC4zOTEwMjcsIDAuNDY4MDY1IiwgXAotICAgICAgICAgICIwLjEzNTk2NiwgMC4xOTI1ODUsIDAuMjQ2NTQ4LCAwLjI4NTA5OCwgMC4zNDY3MzQsIDAuNDAwNjg4LCAwLjQ3NzY5NiIsIFwKLSAgICAgICAgICAiMC4xNDQ4MDIsIDAuMjAxNDIyLCAwLjI1NTM4LCAwLjI5Mzg4OSwgMC4zNTU1NzIsIDAuNDA5NTE1LCAwLjQ4NjUzOCIsIFwKLSAgICAgICAgICAiMC4xNTI0MTMsIDAuMjA5MDI4LCAwLjI2Mjk4OCwgMC4zMDE1MzQsIDAuMzYzMTMsIDAuNDE3MTI0LCAwLjQ5NDE1NiIsIFwKLSAgICAgICAgICAiMC4xNjI1ODQsIDAuMjE5MTk5LCAwLjI3MzE1OSwgMC4zMTE3MDksIDAuMzczMzU2LCAwLjQyNzI5NSwgMC41MDQzNTMiLCBcCi0gICAgICAgICAgIjAuMTcwMDYyLCAwLjIyNjY4LCAwLjI4MDYzOSwgMC4zMTkyMTUsIDAuMzgwODIxLCAwLjQzNDgyLCAwLjUxMTgyNyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyNzQ0MywgMC4xMzQ1MTMsIDAuMjQ1Njc4LCAwLjMyNTY3MywgMC40NTMzMDQsIDAuNTY1MDMxLCAwLjcyNTM1OSIsIFwKLSAgICAgICAgICAiMC4wMjc0MzQsIDAuMTM0NDc3LCAwLjI0NTY4MSwgMC4zMjU2ODUsIDAuNDUzMzQ5LCAwLjU2NjA4OCwgMC43MjY0NCIsIFwKLSAgICAgICAgICAiMC4wMjc0NDMsIDAuMTM0NTEzLCAwLjI0NTY3NiwgMC4zMjU2NzYsIDAuNDUzMzA3LCAwLjU2NTAzMSwgMC43MjY0MDciLCBcCi0gICAgICAgICAgIjAuMDI3NDQxLCAwLjEzNDYwOCwgMC4yNDU2NywgMC4zMjU0NzYsIDAuNDUzMTkzLCAwLjU2NjA3NCwgMC43MjU1OTQiLCBcCi0gICAgICAgICAgIjAuMDI3NDQxLCAwLjEzNDQ4MiwgMC4yNDU2ODEsIDAuMzI1Njg0LCAwLjQ1MzUxMiwgMC41NjYwNzcsIDAuNzI2NDEiLCBcCi0gICAgICAgICAgIjAuMDI3NDM0LCAwLjEzNDYyOSwgMC4yNDU2NzEsIDAuMzI1Njg5LCAwLjQ1MjUyOSwgMC41NjYwNTUsIDAuNzI1MDQ4IiwgXAotICAgICAgICAgICIwLjAyNzUwOCwgMC4xMzQ1OTMsIDAuMjQ1NjY4LCAwLjMyNTY3OSwgMC40NTM3MzcsIDAuNTY1MDIyLCAwLjcyNTU4OSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcmlzaW5nX2VkZ2U7Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTIwNDUxLCAwLjE3NzA3LCAwLjIzMTAzMywgMC4yNjk1ODMsIDAuMzMxMjE4LCAwLjM4NTE3NSwgMC40NjIyMTMiLCBcCi0gICAgICAgICAgIjAuMTI2Njc4LCAwLjE4MzI5OCwgMC4yMzcyNiwgMC4yNzU4MTMsIDAuMzM3NDM5LCAwLjM5MTQwMiwgMC40Njg0NTYiLCBcCi0gICAgICAgICAgIjAuMTM0Mzk4LCAwLjE5MTAxNSwgMC4yNDQ5NzUsIDAuMjgzNTIzLCAwLjM0NTE2MywgMC4zOTkxMTUsIDAuNDc2MTI5IiwgXAotICAgICAgICAgICIwLjE0MTE3LCAwLjE5Nzc5MSwgMC4yNTE3NTMsIDAuMjkwMzAxLCAwLjM1MTkzNiwgMC40MDU4NzMsIDAuNDgyOTA4IiwgXAotICAgICAgICAgICIwLjE0Njk3LCAwLjIwMzU4OSwgMC4yNTc1NDksIDAuMjk2MDU5LCAwLjM1Nzc0MywgMC40MTE2ODYsIDAuNDg4NzQiLCBcCi0gICAgICAgICAgIjAuMTU1MTc3LCAwLjIxMTc5NSwgMC4yNjU3NTIsIDAuMzA0Mjg5LCAwLjM2NTk1OSwgMC40MTk4ODIsIDAuNDk2OTEyIiwgXAotICAgICAgICAgICIwLjE2MTQwNiwgMC4yMTgwMzIsIDAuMjcxOTk5LCAwLjMxMDU1MywgMC4zNzIxOTcsIDAuNDI2MTExLCAwLjUwMzEzNyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyNzQ0NCwgMC4xMzQ1MTMsIDAuMjQ1Njc1LCAwLjMyNTY3NiwgMC40NTMyOTcsIDAuNTY1MDMxLCAwLjcyNjQzOSIsIFwKLSAgICAgICAgICAiMC4wMjc0NDIsIDAuMTM0NTEyLCAwLjI0NTY3MiwgMC4zMjU2ODMsIDAuNDUzMjc0LCAwLjU2NTAzMSwgMC43MjUxNDEiLCBcCi0gICAgICAgICAgIjAuMDI3NDQ1LCAwLjEzNDQ5NSwgMC4yNDU2NzgsIDAuMzI1Njg3LCAwLjQ1MzM0LCAwLjU2NjA5MiwgMC43MjQ5ODUiLCBcCi0gICAgICAgICAgIjAuMDI3NDM5LCAwLjEzNDUxMywgMC4yNDU2NzYsIDAuMzI1NjczLCAwLjQ1MzI4NCwgMC41NjU3NywgMC43MjYzOTciLCBcCi0gICAgICAgICAgIjAuMDI3NDQ0LCAwLjEzNDQyMSwgMC4yNDUxOTQsIDAuMzI0ODQxLCAwLjQ1MzI2NSwgMC41NjYwNzksIDAuNzI1MTI1IiwgXAotICAgICAgICAgICIwLjAyNzQ2NiwgMC4xMzQ2MTMsIDAuMjQ1MjA4LCAwLjMyNTY1NiwgMC40NTI2NjIsIDAuNTY2MDU5LCAwLjcyNTY3MyIsIFwKLSAgICAgICAgICAiMC4wMjc0NTEsIDAuMTM0NjI1LCAwLjI0NTc5NSwgMC4zMjUxMTUsIDAuNDUzMTM5LCAwLjU2NjAzNywgMC43MjU2MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUk4iOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGZhbGxpbmdfZWRnZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMjUxNDYsIDAuMTg2NzI3LCAwLjI0MjI2MywgMC4yODE4MjksIDAuMzQ1MTgyLCAwLjQwMDU0NSwgMC40Nzk1MTQiLCBcCi0gICAgICAgICAgIjAuMTMzMjAyLCAwLjE5NDc4NiwgMC4yNTAzMjIsIDAuMjg5ODkyLCAwLjM1MzI0LCAwLjQwODYwMywgMC40ODc3MTkiLCBcCi0gICAgICAgICAgIjAuMTQyODMyLCAwLjIwNDQxOCwgMC4yNTk5NTMsIDAuMjk5NTI0LCAwLjM2Mjg3MSwgMC40MTgyMzQsIDAuNDk3MzQ3IiwgXAotICAgICAgICAgICIwLjE1MDY2OCwgMC4yMTIyNiwgMC4yNjc3OTgsIDAuMzA3MzY1LCAwLjM3MDcyMiwgMC40MjYwNzgsIDAuNTA1MTg3IiwgXAotICAgICAgICAgICIwLjE1NzY0OSwgMC4yMTkyMzIsIDAuMjc0NzY3LCAwLjMxNDMzMiwgMC4zNzc2OTMsIDAuNDMzMDUxLCAwLjUxMjE1OSIsIFwKLSAgICAgICAgICAiMC4xNjc3ODksIDAuMjI5MzYsIDAuMjg0ODk2LCAwLjMyNDQ2NywgMC4zODc4MTMsIDAuNDQzMjEyLCAwLjUyMjI5NSIsIFwKLSAgICAgICAgICAiMC4xNzU1NTksIDAuMjM3MTY5LCAwLjI5MjY5OSwgMC4zMzIyNywgMC4zOTU2MjIsIDAuNDUwOTgzLCAwLjUzMDEiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzM4MTcsIDAuMTQ1NTA2LCAwLjI2MDkyNSwgMC4zNDQ0ODUsIDAuNDc5MjY5LCAwLjU5NzI3OCwgMC43NjYwNjYiLCBcCi0gICAgICAgICAgIjAuMDMzODM0LCAwLjE0NTQ2MiwgMC4yNjA5MjYsIDAuMzQ0NjUsIDAuNDc5Mjc0LCAwLjU5NzI3NCwgMC43NjQ3MTUiLCBcCi0gICAgICAgICAgIjAuMDMzODM5LCAwLjE0NTUwNSwgMC4yNjA5MzIsIDAuMzQ0MjgsIDAuNDc5MjgxLCAwLjU5NzI2NCwgMC43NjQ5NTciLCBcCi0gICAgICAgICAgIjAuMDMzODIxLCAwLjE0NTQ0MywgMC4yNjA5MzIsIDAuMzQ0NzA0LCAwLjQ3OTI4MiwgMC41OTcyNzIsIDAuNzY0OTQzIiwgXAotICAgICAgICAgICIwLjAzMzk0OSwgMC4xNDU1MzIsIDAuMjYwOTI5LCAwLjM0NDc2LCAwLjQ3OTI3NiwgMC41OTcyNzUsIDAuNzY1NjM5IiwgXAotICAgICAgICAgICIwLjAzNDA1NCwgMC4xNDU1NTUsIDAuMjYwOTU5LCAwLjM0NDUxNSwgMC40NzkyNzcsIDAuNTk3MjkzLCAwLjc2NTYyNSIsIFwKLSAgICAgICAgICAiMC4wMzQwNDgsIDAuMTQ1NTksIDAuMjYwOTY3LCAwLjM0NDY2NiwgMC40NzkyNzQsIDAuNTk3MjYzLCAwLjc2NTU1NCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogY2xlYXI7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDUzNjMzLCAwLjExNTEzNCwgMC4xNzA2NjQsIDAuMjEwMjQxLCAwLjI3MzU3NSwgMC4zMjg5MzksIDAuNDA4MjIiLCBcCi0gICAgICAgICAgIjAuMDU5NTU0LCAwLjEyMTA2MSwgMC4xNzY1OTgsIDAuMjE2MTc4LCAwLjI3OTUxNiwgMC4zMzQ4OCwgMC40MTQxNjgiLCBcCi0gICAgICAgICAgIjAuMDY2OTgxLCAwLjEyODQ3OCwgMC4xODQwMTYsIDAuMjIzNTgsIDAuMjg2OTI5LCAwLjM0MjI5MywgMC40MjE0MzEiLCBcCi0gICAgICAgICAgIjAuMDczNzMsIDAuMTM1NDIsIDAuMTkwOTUsIDAuMjMwNDQ2LCAwLjI5MzgyMiwgMC4zNDkyNTksIDAuNDI4NTMzIiwgXAotICAgICAgICAgICIwLjA3OTYyOCwgMC4xNDE3NjIsIDAuMTk3Mjk1LCAwLjIzNjg3MiwgMC4zMDAyMiwgMC4zNTU1NjUsIDAuNDM0NzIyIiwgXAotICAgICAgICAgICIwLjA4NzkwNiwgMC4xNTA3OTYsIDAuMjA2MzQ1LCAwLjI0NTkxMSwgMC4zMDkyMDMsIDAuMzY0NjE5LCAwLjQ0Mzc1IiwgXAotICAgICAgICAgICIwLjA5NDMsIDAuMTU3Nzg4LCAwLjIxMzM1MywgMC4yNTI5MjcsIDAuMzE2MTk4LCAwLjM3MTYxNSwgMC40NTA3OTYiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzMzOTQsIDAuMTQ1Mzk1LCAwLjI2MDg2OSwgMC4zNDQyOCwgMC40Nzk0MzcsIDAuNTk3NDY3LCAwLjc2NDkzNSIsIFwKLSAgICAgICAgICAiMC4wMzMzNzYsIDAuMTQ1MzgxLCAwLjI2MDg3MywgMC4zNDQ2ODEsIDAuNDc5NDM3LCAwLjU5NzQ4NCwgMC43NjUyNzYiLCBcCi0gICAgICAgICAgIjAuMDMzNTk0LCAwLjE0NTQzNiwgMC4yNjA4OTksIDAuMzQ0NDY0LCAwLjQ3OTQ0NCwgMC41OTc0ODQsIDAuNzY2NDU1IiwgXAotICAgICAgICAgICIwLjAzNDQ0NywgMC4xNDU2NjIsIDAuMjYwOTcsIDAuMzQ0NTU1LCAwLjQ3OTQ2NSwgMC41OTc0OTEsIDAuNzY1MjUxIiwgXAotICAgICAgICAgICIwLjAzNTM5NiwgMC4xNDYwODgsIDAuMjYxMTU5LCAwLjM0NDgzOCwgMC40Nzk1MTEsIDAuNTk3Mzg2LCAwLjc2NjM4MyIsIFwKLSAgICAgICAgICAiMC4wMzcwMTcsIDAuMTQ2ODgyLCAwLjI2MTYxMSwgMC4zNDQ5MjgsIDAuNDc5MzM1LCAwLjU5NzU3LCAwLjc2NjQxNSIsIFwKLSAgICAgICAgICAiMC4wMzgzNzksIDAuMTQ3NjI2LCAwLjI2MjA4NCwgMC4zNDUzNTUsIDAuNDc5NjMzLCAwLjU5NzcxMywgMC43NjU1MjEiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzg4MjcsIDAuMDk1NDIzLCAwLjE0OTQsIDAuMTg3ODk5LCAwLjI0OTUwMSwgMC4zMDM0MjksIDAuMzgwNDQ2IiwgXAotICAgICAgICAgICIwLjA0Njk4MywgMC4xMDM1OTYsIDAuMTU3NTcyLCAwLjE5NjA2NywgMC4yNTc2NzYsIDAuMzExNTk5LCAwLjM4ODYyNiIsIFwKLSAgICAgICAgICAiMC4wNTY3MDEsIDAuMTEzMzQzLCAwLjE2NzMxLCAwLjIwNTgwOSwgMC4yNjc0MTcsIDAuMzIxMzQyLCAwLjM5ODM1OSIsIFwKLSAgICAgICAgICAiMC4wNjQzNjgsIDAuMTIxMjgzLCAwLjE3NTIzOCwgMC4yMTM3MzUsIDAuMjc1MzQ5LCAwLjMyOTI1NCwgMC40MDYyOTUiLCBcCi0gICAgICAgICAgIjAuMDcwNTQzLCAwLjEyNzg0NCwgMC4xODE3NzgsIDAuMjIwMjczLCAwLjI4MTg3MywgMC4zMzU3ODgsIDAuNDEyODI1IiwgXAotICAgICAgICAgICIwLjA3ODUxNCwgMC4xMzY0MjgsIDAuMTkwMzQ3LCAwLjIyODgzMiwgMC4yOTA0MjEsIDAuMzQ0MzYyLCAwLjQyMTM2OSIsIFwKLSAgICAgICAgICAiMC4wODQyNjEsIDAuMTQyNywgMC4xOTY3MjYsIDAuMjM1MiwgMC4yOTY4NCwgMC4zNTA3NDksIDAuNDI3ODExIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDI2ODQ5LCAwLjEzNDQ2OCwgMC4yNDU2NjksIDAuMzI1NzA3LCAwLjQ1MzU4NCwgMC41NjYwOTgsIDAuNzI2MjYiLCBcCi0gICAgICAgICAgIjAuMDI2ODc2LCAwLjEzNDQxMSwgMC4yNDU2MTcsIDAuMzI1Njg4LCAwLjQ1MzY3NCwgMC41NjYwNzMsIDAuNzI2MjY0IiwgXAotICAgICAgICAgICIwLjAyNzYwMiwgMC4xMzQ1NjcsIDAuMjQ1MzY4LCAwLjMyNTExMSwgMC40NTM2NjIsIDAuNTY2MDU5LCAwLjcyNjM3NCIsIFwKLSAgICAgICAgICAiMC4wMjkxNDcsIDAuMTM0OTE2LCAwLjI0NTYwOCwgMC4zMjUzNDEsIDAuNDUzNjk1LCAwLjU2NTk1NywgMC43MjYxMzIiLCBcCi0gICAgICAgICAgIjAuMDMwNTM1LCAwLjEzNTQxNiwgMC4yNDYwNTcsIDAuMzI1NzEzLCAwLjQ1MzgxNSwgMC41NjU0MzgsIDAuNzI2MzI5IiwgXAotICAgICAgICAgICIwLjAzMjYyLCAwLjEzNjA4MiwgMC4yNDYzMDgsIDAuMzI1OTM3LCAwLjQ1MzgxNSwgMC41NjYwNDMsIDAuNzI1NTc5IiwgXAotICAgICAgICAgICIwLjAzNDI4MywgMC4xMzY3MSwgMC4yNDYzNSwgMC4zMjU4MTEsIDAuNDUzNzg0LCAwLjU2NTk3NywgMC43MjYxODUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJEIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMDUzNiwgMC4wMTA2MjgsIDAuMDEwNjQ4LCAwLjAxMDY1NSwgMC4wMTA2NiwgMC4wMTA2NjMsIDAuMDEwNjY0IiwgXAotICAgICAgICAgICIwLjAxMDUxOCwgMC4wMTA2MTEsIDAuMDEwNjMxLCAwLjAxMDY0MSwgMC4wMTA2NDMsIDAuMDEwNjQ2LCAwLjAxMDY0OCIsIFwKLSAgICAgICAgICAiMC4wMTA1MzQsIDAuMDEwNjI2LCAwLjAxMDY0NSwgMC4wMTA2NTIsIDAuMDEwNjU3LCAwLjAxMDY2LCAwLjAxMDY2NCIsIFwKLSAgICAgICAgICAiMC4wMTA1MjcsIDAuMDEwNjI4LCAwLjAxMDY0OCwgMC4wMTA2NTcsIDAuMDEwNjYxLCAwLjAxMDY2NCwgMC4wMTA2NjUiLCBcCi0gICAgICAgICAgIjAuMDEwNTcyLCAwLjAxMDY2MSwgMC4wMTA2ODIsIDAuMDEwNjg5LCAwLjAxMDY5NiwgMC4wMTA2OTksIDAuMDEwNzAyIiwgXAotICAgICAgICAgICIwLjAxMDY5LCAwLjAxMDc3LCAwLjAxMDc4OSwgMC4wMTA3OTYsIDAuMDEwODAyLCAwLjAxMDgwMSwgMC4wMTA4MDciLCBcCi0gICAgICAgICAgIjAuMDEwNzYsIDAuMDEwODQyLCAwLjAxMDg2MSwgMC4wMTA4NjcsIDAuMDEwODcyLCAwLjAxMDg3NCwgMC4wMTA4NzciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwOTc4NSwgMC4wMDk5NTQsIDAuMDA5OTgzLCAwLjAwOTk5MSwgMC4wMTAwMDQsIDAuMDA5OTk3LCAwLjAxMDAwNyIsIFwKLSAgICAgICAgICAiMC4wMDk3NjYsIDAuMDA5OTM1LCAwLjAwOTk2MywgMC4wMDk5NzIsIDAuMDA5OTc5LCAwLjAwOTk3OCwgMC4wMDk5OTIiLCBcCi0gICAgICAgICAgIjAuMDA5NzcyLCAwLjAwOTk0MSwgMC4wMDk5NjksIDAuMDA5OTc4LCAwLjAwOTk4NiwgMC4wMDk5OSwgMC4wMDk5ODMiLCBcCi0gICAgICAgICAgIjAuMDA5Nzk2LCAwLjAwOTk2NCwgMC4wMDk5OTMsIDAuMDA5OTk0LCAwLjAxMDAxLCAwLjAxMDAxNCwgMC4wMTAwMjQiLCBcCi0gICAgICAgICAgIjAuMDA5ODQ2LCAwLjAxMDAxLCAwLjAxMDAzOSwgMC4wMTAwNDksIDAuMDEwMDU3LCAwLjAxMDA2MSwgMC4wMTAwNjYiLCBcCi0gICAgICAgICAgIjAuMDA5OTIsIDAuMDEwMDc1LCAwLjAxMDEwNCwgMC4wMTAxMTMsIDAuMDEwMTIsIDAuMDEwMTI2LCAwLjAxMDEzIiwgXAotICAgICAgICAgICIwLjAxMDAwNywgMC4wMTAxNTcsIDAuMDEwMTg1LCAwLjAxMDE5NiwgMC4wMTAyMDUsIDAuMDEwMjEsIDAuMDEwMjE0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTE1ODEsIDAuMDExNjc3LCAwLjAxMTY5NiwgMC4wMTE3MDMsIDAuMDExNzA4LCAwLjAxMTcxLCAwLjAxMTcxNCIsIFwKLSAgICAgICAgICAiMC4wMTE1ODksIDAuMDExNjc2LCAwLjAxMTY5NSwgMC4wMTE3MDEsIDAuMDExNzA1LCAwLjAxMTcwNywgMC4wMTE3MTQiLCBcCi0gICAgICAgICAgIjAuMDExNTk0LCAwLjAxMTY5MywgMC4wMTE3MTIsIDAuMDExNzE4LCAwLjAxMTcyNCwgMC4wMTE3MjcsIDAuMDExNzMiLCBcCi0gICAgICAgICAgIjAuMDExNjUsIDAuMDExNzU2LCAwLjAxMTc2NywgMC4wMTE3NzMsIDAuMDExNzg5LCAwLjAxMTc4MiwgMC4wMTE3OTEiLCBcCi0gICAgICAgICAgIjAuMDExNzUsIDAuMDExODM4LCAwLjAxMTg1NywgMC4wMTE4NjMsIDAuMDExODcsIDAuMDExODcsIDAuMDExODczIiwgXAotICAgICAgICAgICIwLjAxMTc5LCAwLjAxMTg4NiwgMC4wMTE5MDYsIDAuMDExOTExLCAwLjAxMTkxOCwgMC4wMTE5MiwgMC4wMTE5MjIiLCBcCi0gICAgICAgICAgIjAuMDExODgxLCAwLjAxMTk5NSwgMC4wMTIwMDcsIDAuMDEyMDE0LCAwLjAxMjAyOCwgMC4wMTIwMjMsIDAuMDEyMDMzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTA5NTQsIDAuMDExMTE1LCAwLjAxMTExOSwgMC4wMTExMTUsIDAuMDExMTA4LCAwLjAxMTEwMywgMC4wMTExMDMiLCBcCi0gICAgICAgICAgIjAuMDEwOTUxLCAwLjAxMTEwOSwgMC4wMTExMTQsIDAuMDExMTEsIDAuMDExMTAzLCAwLjAxMTEsIDAuMDExMDk0IiwgXAotICAgICAgICAgICIwLjAxMDk3NSwgMC4wMTExMzYsIDAuMDExMTQxLCAwLjAxMTEzNywgMC4wMTExMywgMC4wMTExMjQsIDAuMDExMTIiLCBcCi0gICAgICAgICAgIjAuMDExMDI2LCAwLjAxMTE4NiwgMC4wMTExOTQsIDAuMDExMTkxLCAwLjAxMTE4NCwgMC4wMTExNzksIDAuMDExMTczIiwgXAotICAgICAgICAgICIwLjAxMTA4NCwgMC4wMTEyNDEsIDAuMDExMjQ3LCAwLjAxMTI0MywgMC4wMTEyMzYsIDAuMDExMjMxLCAwLjAxMTIyNSIsIFwKLSAgICAgICAgICAiMC4wMTExNjUsIDAuMDExMzIzLCAwLjAxMTMyOCwgMC4wMTEzMjUsIDAuMDExMzE4LCAwLjAxMTMxMiwgMC4wMTEzMDgiLCBcCi0gICAgICAgICAgIjAuMDExMjU0LCAwLjAxMTM5NywgMC4wMTE0MTQsIDAuMDExNDIsIDAuMDExNCwgMC4wMTE0MDgsIDAuMDExNDAyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUk4iOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEzNDA0LCAwLjAxMzQ4OCwgMC4wMTM0ODksIDAuMDEzNDg1LCAwLjAxMzQ3OSwgMC4wMTM0NzUsIDAuMDEzNDcxIiwgXAotICAgICAgICAgICIwLjAxMzM5MSwgMC4wMTM0NzMsIDAuMDEzNDc1LCAwLjAxMzQ3MSwgMC4wMTM0NjYsIDAuMDEzNDYxLCAwLjAxMzQ1NiIsIFwKLSAgICAgICAgICAiMC4wMTM0MjEsIDAuMDEzNTAxLCAwLjAxMzUwMywgMC4wMTM0OTksIDAuMDEzNDkzLCAwLjAxMzQ4OCwgMC4wMTM0ODYiLCBcCi0gICAgICAgICAgIjAuMDEzNDY1LCAwLjAxMzU1LCAwLjAxMzU1MSwgMC4wMTM1NDgsIDAuMDEzNTQyLCAwLjAxMzUzNiwgMC4wMTM1MzIiLCBcCi0gICAgICAgICAgIjAuMDEzNTMzLCAwLjAxMzYxMiwgMC4wMTM2MTQsIDAuMDEzNjEsIDAuMDEzNjA0LCAwLjAxMzU5OSwgMC4wMTM1OTQiLCBcCi0gICAgICAgICAgIjAuMDEzNjE2LCAwLjAxMzY4OSwgMC4wMTM2OSwgMC4wMTM2ODcsIDAuMDEzNjgsIDAuMDEzNjc1LCAwLjAxMzY2OSIsIFwKLSAgICAgICAgICAiMC4wMTM2ODEsIDAuMDEzNzcyLCAwLjAxMzc3NSwgMC4wMTM3NzIsIDAuMDEzNzY1LCAwLjAxMzc2NCwgMC4wMTM3NTMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMDgxNCwgMC4wMTA5NzQsIDAuMDEwOTc3LCAwLjAxMDk3MiwgMC4wMTA5NjQsIDAuMDEwOTU5LCAwLjAxMDk1OCIsIFwKLSAgICAgICAgICAiMC4wMTA3OTMsIDAuMDEwOTUyLCAwLjAxMDk1NSwgMC4wMTA5NTEsIDAuMDEwOTQzLCAwLjAxMDkzOCwgMC4wMTA5MzEiLCBcCi0gICAgICAgICAgIjAuMDEwODExLCAwLjAxMDk3LCAwLjAxMDk3NCwgMC4wMTA5NjksIDAuMDEwOTYyLCAwLjAxMDk1NiwgMC4wMTA5NSIsIFwKLSAgICAgICAgICAiMC4wMTA4MzksIDAuMDEwOTk0LCAwLjAxMDk5OCwgMC4wMTA5OTMsIDAuMDEwOTg2LCAwLjAxMDk4LCAwLjAxMDk4MSIsIFwKLSAgICAgICAgICAiMC4wMTA4NjcsIDAuMDExMDI1LCAwLjAxMTAyOCwgMC4wMTEwMjQsIDAuMDExMDE2LCAwLjAxMTAxMSwgMC4wMTEwMDUiLCBcCi0gICAgICAgICAgIjAuMDEwOTQyLCAwLjAxMTA5OCwgMC4wMTExMDIsIDAuMDExMDk4LCAwLjAxMTA5LCAwLjAxMTA4NCwgMC4wMTEwNzgiLCBcCi0gICAgICAgICAgIjAuMDExMDEzLCAwLjAxMTE3NSwgMC4wMTExNzQsIDAuMDExMTcxLCAwLjAxMTE2MywgMC4wMTExNTcsIDAuMDExMTUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDg2MzMsIDAuMDA4NzM4LCAwLjAwODc1NCwgMC4wMDg3NTgsIDAuMDA4NzYyLCAwLjAwODc2NCwgMC4wMDg3NjYiLCBcCi0gICAgICAgICAgIjAuMDA4NTU2LCAwLjAwODY3LCAwLjAwODY4OSwgMC4wMDg2OTYsIDAuMDA4Njk5LCAwLjAwODcwMSwgMC4wMDg3MDMiLCBcCi0gICAgICAgICAgIjAuMDA4NjM3LCAwLjAwODcyMywgMC4wMDg3NDIsIDAuMDA4NzQ4LCAwLjAwODc1MywgMC4wMDg3NTUsIDAuMDA4NzU3IiwgXAotICAgICAgICAgICIwLjAwODc2NSwgMC4wMDg4MjYsIDAuMDA4ODQzLCAwLjAwODkxNCwgMC4wMDg4NSwgMC4wMDg4NTIsIDAuMDA4ODU1IiwgXAotICAgICAgICAgICIwLjAwODg2NSwgMC4wMDg5MDYsIDAuMDA4OTI0LCAwLjAwODkyOSwgMC4wMDg5MzYsIDAuMDA4OTM3LCAwLjAwODkzOSIsIFwKLSAgICAgICAgICAiMC4wMDkxNCwgMC4wMDkxMTYsIDAuMDA5MTc3LCAwLjAwOTE4NSwgMC4wMDkxOSwgMC4wMDkxODcsIDAuMDA5MTg2IiwgXAotICAgICAgICAgICIwLjAwOTQ4MywgMC4wMDk0MDMsIDAuMDA5NDA5LCAwLjAwOTQwNCwgMC4wMDk0MTIsIDAuMDA5NDA0LCAwLjAwOTQxMyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEwNzgxLCAwLjAxMDkzNSwgMC4wMTA5NTYsIDAuMDEwOTYyLCAwLjAxMDk2OCwgMC4wMTA5NywgMC4wMTA5NzMiLCBcCi0gICAgICAgICAgIjAuMDEwNzUzLCAwLjAxMDkxMiwgMC4wMTA5MzcsIDAuMDEwOTQ0LCAwLjAxMDk1MSwgMC4wMTA5NTUsIDAuMDEwOTYzIiwgXAotICAgICAgICAgICIwLjAxMDgyNCwgMC4wMTA5NjIsIDAuMDEwOTg5LCAwLjAxMDk5OCwgMC4wMTEwMDcsIDAuMDExMDExLCAwLjAxMTAxNSIsIFwKLSAgICAgICAgICAiMC4wMTA5NSwgMC4wMTEwNTgsIDAuMDExMDg3LCAwLjAxMTA5NiwgMC4wMTExMDYsIDAuMDExMTEyLCAwLjAxMTExNCIsIFwKLSAgICAgICAgICAiMC4wMTExMjMsIDAuMDExMTk0LCAwLjAxMTIyMSwgMC4wMTEyMzMsIDAuMDExMjQsIDAuMDExMjQ2LCAwLjAxMTI1IiwgXAotICAgICAgICAgICIwLjAxMTQyOCwgMC4wMTE0NDcsIDAuMDExNDY5LCAwLjAxMTQ3NywgMC4wMTE0ODgsIDAuMDExNDkyLCAwLjAxMTQ5NyIsIFwKLSAgICAgICAgICAiMC4wMTE3MTUsIDAuMDExNjg3LCAwLjAxMTY5MywgMC4wMTE3MDIsIDAuMDExNzA3LCAwLjAxMTcxNCwgMC4wMTE3MTgiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFJOKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDI0NTk1MzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDI0NDg5OTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDI0NTk1MzsKLSAgICBjbG9jayA6IHRydWU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNTkzLCAwLjAwMDU5MywgMC4wMDA1OTMsIDAuMDAwNTkyLCAwLjAwMDU5MiwgMC4wMDA1OTIsIDAuMDAwNTkyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNjEzLCAwLjAwMDYsIDAuMDAwNTk4LCAwLjAwMDU5NiwgMC4wMDA1OTUsIDAuMDAwNTk0LCAwLjAwMDU5NCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJHIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9mYWxsaW5nOwotICAgICAgd2hlbiA6ICJEJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMV9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjA2MjUsIC0wLjA1NzUsIC0wLjA1NzUsIC0wLjA3LCAtMC4wNzYyNSwgLTAuMDg1LCAtMC4wOTUiLCBcCi0gICAgICAgICAgIi0wLjA2NzUsIC0wLjA2MjUsIC0wLjA2ODc1LCAtMC4wNzUsIC0wLjA4MTI1LCAtMC4wOSwgLTAuMSIsIFwKLSAgICAgICAgICAiLTAuMDczNzUsIC0wLjA2ODc1LCAtMC4wNzUsIC0wLjA4MTI1LCAtMC4wODc1LCAtMC4wOTYyNSwgLTAuMTA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA4LCAtMC4wNzUsIC0wLjA4MTI1LCAtMC4wODc1LCAtMC4wOTM3NSwgLTAuMTAyNSwgLTAuMTEyNSIsIFwKLSAgICAgICAgICAiLTAuMDg2MjUsIC0wLjA4MTI1LCAtMC4wODc1LCAtMC4wOTM3NSwgLTAuMSwgLTAuMTA4NzUsIC0wLjExODc1IiwgXAotICAgICAgICAgICItMC4wOTYyNSwgLTAuMDkxMjUsIC0wLjA5MTI1LCAtMC4wOTc1LCAtMC4xMDM3NSwgLTAuMTEyNSwgLTAuMTIyNSIsIFwKLSAgICAgICAgICAiLTAuMDk4NzUsIC0wLjEsIC0wLjEsIC0wLjEwNjI1LCAtMC4xMTI1LCAtMC4xMjEyNSwgLTAuMTMxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUk4iOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFEJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgZmFsbF9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMTAzMDgsIDAuMTA5NzI1LCAwLjExNzU5NywgMC4xMjU0NzIsIDAuMTMyNDE1LCAwLjE0MjUwMywgMC4xNTAyMTIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX2ZhbGxpbmc7Ci0gICAgICB3aGVuIDogIkQmU04iOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8xX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY4NzUsIDAuMDYzNzUsIDAuMDcsIDAuMDg4NzUsIDAuMTA3NSwgMC4xMzUsIDAuMTYzNzUiLCBcCi0gICAgICAgICAgIjAuMDczNzUsIDAuMDY4NzUsIDAuMDc1LCAwLjA5Mzc1LCAwLjExMjUsIDAuMTQsIDAuMTY4NzUiLCBcCi0gICAgICAgICAgIjAuMDg2MjUsIDAuMDgxMjUsIDAuMDgxMjUsIDAuMSwgMC4xMTI1LCAwLjE0NjI1LCAwLjE2ODc1IiwgXAotICAgICAgICAgICIwLjA5MjUsIDAuMDg3NSwgMC4wODc1LCAwLjEsIDAuMTE4NzUsIDAuMTQ2MjUsIDAuMTY4NzUiLCBcCi0gICAgICAgICAgIjAuMDk4NzUsIDAuMDkzNzUsIDAuMDkzNzUsIDAuMTA2MjUsIDAuMTE4NzUsIDAuMTQ2MjUsIDAuMTc1IiwgXAotICAgICAgICAgICIwLjEwMjUsIDAuMDk3NSwgMC4xMDM3NSwgMC4xMSwgMC4xMjI1LCAwLjE1LCAwLjE3MjUiLCBcCi0gICAgICAgICAgIjAuMTExMjUsIDAuMTA2MjUsIDAuMTA2MjUsIDAuMTE4NzUsIDAuMTMxMjUsIDAuMTUyNSwgMC4xNzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFNOKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE1NTMwMzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE1NTMwMzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE1NTEzODsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA4NDIsIDAuMDAwODQxLCAwLjAwMDg0LCAwLjAwMDg0MSwgMC4wMDA4NCwgMC4wMDA4NCwgMC4wMDA4NCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDg4NSwgMC4wMDA4NTksIDAuMDAwODQ5LCAwLjAwMDg0NSwgMC4wMDA4NDQsIDAuMDAwODQzLCAwLjAwMDg0MyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQiOwotICAgICAgc2RmX2NvbmQgOiAiRCA9PSAxJ2IwIjsKLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjA2ODQ2MiwgMC4wNzYyNzcsIDAuMDg1MTY4LCAwLjA5MjMyOCwgMC4wOTgyMDQsIDAuMTA1OTU4LCAwLjExMTYzOCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJHIjsKLSAgICAgIHRpbWluZ190eXBlIDogcmVjb3ZlcnlfZmFsbGluZzsKLSAgICAgIHdoZW4gOiAiIUQmUk4iOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1JOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQocmVjb3ZlcnlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAsIC0wLjAwNSwgLTAuMDExMjUsIC0wLjAxNzUsIC0wLjAyMzc1LCAtMC4wMjc1LCAtMC4wMyIsIFwKLSAgICAgICAgICAiMC4wMDUsIDAsIC0wLjAwNjI1LCAtMC4wMTI1LCAtMC4wMTg3NSwgLTAuMDIyNSwgLTAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMDExMjUsIDAuMDA2MjUsIC0wLjAwNjI1LCAtMC4wMTI1LCAtMC4wMTI1LCAtMC4wMjI1LCAtMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMDE3NSwgMC4wMDYyNSwgMCwgLTAuMDA2MjUsIC0wLjAxMjUsIC0wLjAxNjI1LCAtMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4wMTc1LCAwLjAxMjUsIDAsIC0wLjAwNjI1LCAtMC4wMDYyNSwgLTAuMDE2MjUsIC0wLjAxODc1IiwgXAotICAgICAgICAgICIwLjAyMTI1LCAwLjAxNjI1LCAwLjAxLCAtMC4wMDI1LCAtMC4wMDI1LCAtMC4wMTI1LCAtMC4wMTUiLCBcCi0gICAgICAgICAgIjAuMDIzNzUsIDAuMDE4NzUsIDAuMDEyNSwgMC4wMDYyNSwgMCwgLTAuMDEsIC0wLjAxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUk4iOwotICAgICAgdGltaW5nX3R5cGUgOiByZWNvdmVyeV9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFHIjsKLSAgICAgIHNkZl9jb25kIDogIkcgPT0gMSdiMCI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQocmVjb3ZlcnlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEyNSwgMC4wMDc1LCAwLjAwNzUsIDAuMDA3NSwgMC4wMDc1LCAwLjAxLCAwLjAxMzc1IiwgXAotICAgICAgICAgICIwLjAxNzUsIDAuMDEyNSwgMC4wMTI1LCAwLjAxMjUsIDAuMDEyNSwgMC4wMTUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMDIzNzUsIDAuMDE4NzUsIDAuMDE4NzUsIDAuMDE4NzUsIDAuMDE4NzUsIDAuMDE1LCAwLjAxODc1IiwgXAotICAgICAgICAgICIwLjAyMzc1LCAwLjAxODc1LCAwLjAxODc1LCAwLjAxODc1LCAwLjAxODc1LCAwLjAyMTI1LCAwLjAxODc1IiwgXAotICAgICAgICAgICIwLjAzLCAwLjAyNSwgMC4wMjUsIDAuMDE4NzUsIDAuMDE4NzUsIDAuMDIxMjUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMDMzNzUsIDAuMDI4NzUsIDAuMDIyNSwgMC4wMjI1LCAwLjAyMjUsIDAuMDI1LCAwLjAyMjUiLCBcCi0gICAgICAgICAgIjAuMDM2MjUsIDAuMDMxMjUsIDAuMDMxMjUsIDAuMDI1LCAwLjAyNSwgMC4wMjc1LCAwLjAyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJHIjsKLSAgICAgIHRpbWluZ190eXBlIDogcmVtb3ZhbF9mYWxsaW5nOwotICAgICAgd2hlbiA6ICIhRCZSTiI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fUk5fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChyZW1vdmFsX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxODc1LCAwLjAzLCAwLjAzNjI1LCAwLjA0MjUsIDAuMDQ4NzUsIDAuMDU4NzUsIDAuMDYxMjUiLCBcCi0gICAgICAgICAgIjAuMDEzNzUsIDAuMDI1LCAwLjAzMTI1LCAwLjAzNzUsIDAuMDQzNzUsIDAuMDUzNzUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIjAuMDEzNzUsIDAuMDE4NzUsIDAuMDI1LCAwLjAzNzUsIDAuMDM3NSwgMC4wNDc1LCAwLjA1IiwgXAotICAgICAgICAgICIwLjAwNzUsIDAuMDEyNSwgMC4wMjUsIDAuMDMxMjUsIDAuMDM3NSwgMC4wNDEyNSwgMC4wNSIsIFwKLSAgICAgICAgICAiMC4wMDEyNSwgMC4wMTI1LCAwLjAxODc1LCAwLjAyNSwgMC4wMzEyNSwgMC4wNDEyNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDAyNSwgMC4wMDg3NSwgMC4wMTUsIDAuMDIxMjUsIDAuMDI3NSwgMC4wMzc1LCAwLjA0IiwgXAotICAgICAgICAgICItMC4wMDUsIDAsIDAuMDEyNSwgMC4wMTg3NSwgMC4wMjUsIDAuMDI4NzUsIDAuMDM3NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJlbW92YWxfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRyI7Ci0gICAgICBzZGZfY29uZCA6ICJHID09IDEnYjAiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHJlbW92YWxfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2MjUsIDAuMDExMjUsIDAuMDE3NSwgMC4wMTc1LCAwLjAxNzUsIDAuMDIxMjUsIDAuMDIzNzUiLCBcCi0gICAgICAgICAgIjAuMDAxMjUsIDAuMDA2MjUsIDAuMDEyNSwgMC4wMTI1LCAwLjAxMjUsIDAuMDE2MjUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjAwNSwgMCwgMC4wMDYyNSwgMC4wMDYyNSwgMC4wMTI1LCAwLjAxNjI1LCAwLjAxODc1IiwgXAotICAgICAgICAgICItMC4wMDUsIDAsIDAsIDAuMDA2MjUsIDAuMDA2MjUsIDAuMDEsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDExMjUsIC0wLjAwNjI1LCAwLCAwLCAwLjAwNjI1LCAwLjAxLCAwLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjAxNSwgLTAuMDEsIC0wLjAwMzc1LCAtMC4wMDM3NSwgMC4wMDI1LCAwLjAwNjI1LCAwLjAwODc1IiwgXAotICAgICAgICAgICItMC4wMTc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgLTAuMDA2MjUsIC0wLjAwNjI1LCAtMC4wMDI1LCAwIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBUTEFUWDIgKgotICogLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChUTEFUWDIpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMS4wMTMwNzsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBsYXRjaCAoUUlOVCxOMCkgewotICAgIGRhdGFfaW4gOiAiRCI7Ci0gICAgZW5hYmxlIDogIkciOwotICB9Ci0gIHBpbihEKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2NDI4MzY7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjQxNjc3OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDY0MjgzNjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyODcsIDAuMDAwMjg5LCAwLjAwMDI5LCAwLjAwMDI5LCAwLjAwMDI5LCAwLjAwMDI5MSwgMC4wMDAyOTEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAzMSwgMC4wMDAzMDEsIDAuMDAwMywgMC4wMDAyOTksIDAuMDAwMjk5LCAwLjAwMDI5OCwgMC4wMDAyOTgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfZmFsbGluZzsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMDYyNSwgMC4wMDUsIDAuMDExMjUsIDAuMDE3NSwgMC4wMjM3NSwgMC4wMjc1LCAwLjAzIiwgXAotICAgICAgICAgICItMC4wMTEyNSwgLTAuMDA2MjUsIDAuMDA2MjUsIDAuMDEyNSwgMC4wMTI1LCAwLjAyMjUsIDAuMDI1IiwgXAotICAgICAgICAgICItMC4wMTc1LCAtMC4wMTI1LCAwLCAwLCAwLjAwNjI1LCAwLjAxNjI1LCAwLjAxODc1IiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLCAwLCAwLjAxLCAwLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMjUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLCAwLjAwMzc1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wNCwgLTAuMDI4NzUsIC0wLjAyMjUsIC0wLjAxNjI1LCAtMC4wMSwgMCwgMC4wMDI1IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA4NzUsIC0wLjAwNjI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDE4NzUsIC0wLjAxMzc1LCAtMC4wMTM3NSwgLTAuMDA3NSwgLTAuMDA3NSwgLTAuMDAzNzUsIC0wLjAwNzUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMTg3NSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAxMjUsIC0wLjAwODc1LCAtMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTg3NSwgLTAuMDE1LCAtMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDMxMjUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAyNSwgLTAuMDIxMjUsIC0wLjAxODc1IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDI3NSwgLTAuMDI1IiwgXAotICAgICAgICAgICItMC4wNDYyNSwgLTAuMDQxMjUsIC0wLjAzNSwgLTAuMDM1LCAtMC4wMzUsIC0wLjAzMTI1LCAtMC4wMjg3NSIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNDM3NSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzNzUsIC0wLjAzMzc1LCAtMC4wMzEyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJHIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfZmFsbGluZzsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTg3NSwgMC4wMDc1LCAwLjAwMTI1LCAtMC4wMDUsIC0wLjAxMTI1LCAtMC4wMTUsIC0wLjAyMzc1IiwgXAotICAgICAgICAgICIwLjAyMzc1LCAwLjAxMjUsIDAuMDA2MjUsIDAsIC0wLjAwNjI1LCAtMC4wMSwgLTAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4wMywgMC4wMjUsIDAuMDEyNSwgMC4wMDYyNSwgMCwgLTAuMDAzNzUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICIwLjAzNjI1LCAwLjAzMTI1LCAwLjAxODc1LCAwLjAxMjUsIDAuMDA2MjUsIDAuMDAyNSwgMCIsIFwKLSAgICAgICAgICAiMC4wNDI1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMTg3NSwgMC4wMTI1LCAwLjAwODc1LCAwIiwgXAotICAgICAgICAgICIwLjA0NjI1LCAwLjA0MTI1LCAwLjAyODc1LCAwLjAyMjUsIDAuMDIyNSwgMC4wMTI1LCAwLjAxIiwgXAotICAgICAgICAgICIwLjA1NSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMTUsIDAuMDEyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzMTI1LCAwLjAyNjI1LCAwLjAyNjI1LCAwLjAyNjI1LCAwLjAyNjI1LCAwLjAyMjUsIDAuMDI2MjUiLCBcCi0gICAgICAgICAgIjAuMDM2MjUsIDAuMDMxMjUsIDAuMDMxMjUsIDAuMDMxMjUsIDAuMDMxMjUsIDAuMDI3NSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4wNDI1LCAwLjAzNzUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMzEyNSwgMC4wMzM3NSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4wNDg3NSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzNzUsIDAuMDM3NSwgMC4wMzM3NSwgMC4wMzc1IiwgXAotICAgICAgICAgICIwLjA1NSwgMC4wNSwgMC4wNDM3NSwgMC4wNDM3NSwgMC4wNDM3NSwgMC4wNCwgMC4wMzc1IiwgXAotICAgICAgICAgICIwLjA1ODc1LCAwLjA1Mzc1LCAwLjA0NzUsIDAuMDQ3NSwgMC4wNDc1LCAwLjA0Mzc1LCAwLjA0MTI1IiwgXAotICAgICAgICAgICIwLjA2MTI1LCAwLjA1NjI1LCAwLjA1NjI1LCAwLjA1LCAwLjA1LCAwLjA0NjI1LCAwLjA1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihHKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2NDc5NjY7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjQ3OTQ5OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDY0Nzk2NjsKLSAgICBjbG9jayA6IHRydWU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyMzgxLCAwLjAwMjM3OSwgMC4wMDI0NzIsIDAuMDAyNTY2LCAwLjAwMjY5LCAwLjAwMjkzMSwgMC4wMDMxMjYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDQwMiwgMC4wMDQwMjMsIDAuMDA0MDk1LCAwLjAwNDE5OSwgMC4wMDQzMzIsIDAuMDA0NTg1LCAwLjAwNDgxNiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJHIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRCI7Ci0gICAgICBzZGZfY29uZCA6ICJEID09IDEnYjAiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDkzMjQyLCAwLjEwMTE5LCAwLjEwOTU3MywgMC4xMTYwMSwgMC4xMjEwMzMsIDAuMTI4MDY2LCAwLjEzMzE1OSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjY4NTExMTsKLSAgICBmdW5jdGlvbiA6ICJRSU5UIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJEIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODAwODIsIDAuMTU3NjQ1LCAwLjIxOTczMiwgMC4yOTY3NzUsIDAuMzc0MzIxLCAwLjQ1MTQ3LCAwLjUyODg1MiIsIFwKLSAgICAgICAgICAiMC4wODYyNDgsIDAuMTYzNzgzLCAwLjIyNTg5OSwgMC4zMDI4NDIsIDAuMzgwNDYxLCAwLjQ1NzYyOCwgMC41MzQ4MzciLCBcCi0gICAgICAgICAgIjAuMDkzMTQzLCAwLjE3MDUxLCAwLjIzMjc4MywgMC4zMDk3MjYsIDAuMzg3MzMyLCAwLjQ2NDUxNywgMC41NDI4NjQiLCBcCi0gICAgICAgICAgIjAuMDk4OTE5LCAwLjE3NjE2LCAwLjIzODUxLCAwLjMxNTQ1MiwgMC4zOTMwOTMsIDAuNDcwMjQ2LCAwLjU0ODUzMiIsIFwKLSAgICAgICAgICAiMC4xMDM3NTgsIDAuMTgxMDY2LCAwLjI0MzM4OCwgMC4zMjAzMzMsIDAuMzk3NzEzLCAwLjQ3NTg3NSwgMC41NTMzOCIsIFwKLSAgICAgICAgICAiMC4xMTAyNDEsIDAuMTg3NzAzLCAwLjI0OTg3NiwgMC4zMjczMTksIDAuNDA0Mzc0LCAwLjQ4MTgzOSwgMC41NTg5ODkiLCBcCi0gICAgICAgICAgIjAuMTE1MTYxLCAwLjE5MjQ1NiwgMC4yNTQ2NTUsIDAuMzMxODc4LCAwLjQwOTY1NiwgMC40ODcxNTgsIDAuNTY0NjYzIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzNzQwMSwgMC4xOTk3MDgsIDAuMzMwMDYyLCAwLjQ5MjA3NiwgMC42NTQ2NjMsIDAuODE3NDk2LCAwLjk3OTQ4IiwgXAotICAgICAgICAgICIwLjAzNzI2OCwgMC4xOTk1NTMsIDAuMzI5NzYzLCAwLjQ5MTg1OCwgMC42NTQwNzQsIDAuODE2NzU1LCAwLjk3ODI0NyIsIFwKLSAgICAgICAgICAiMC4wMzc0MzIsIDAuMTk5MDg2LCAwLjMyOTc1NiwgMC40OTE3NTksIDAuNjU0MDk0LCAwLjgxNjc3NiwgMC45ODEwMzQiLCBcCi0gICAgICAgICAgIjAuMDM3MzMxLCAwLjE5OTEsIDAuMzI5NzY3LCAwLjQ5MTgyNCwgMC42NTQ2OTQsIDAuODE2OTk4LCAwLjk4MDk5NSIsIFwKLSAgICAgICAgICAiMC4wMzczOTUsIDAuMTk5NDk2LCAwLjMzMDAxOCwgMC40OTE4OTksIDAuNjU0NDMzLCAwLjgxODQ3MywgMC45ODExODIiLCBcCi0gICAgICAgICAgIjAuMDM3NDI2LCAwLjE5OTQ0LCAwLjMzMDAyMSwgMC40OTI3MDcsIDAuNjU0ODc1LCAwLjgxNzI4OSwgMC45Nzk4MjgiLCBcCi0gICAgICAgICAgIjAuMDM3MzQ0LCAwLjE5OTI5MSwgMC4zMjk2NzUsIDAuNDkyMTMyLCAwLjY1NTIxMiwgMC44MTc5NTksIDAuOTgwNzczIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4MTM0LCAwLjE1NzU1MywgMC4yMTg0LCAwLjI5NDM3OCwgMC4zNzA0OTQsIDAuNDQ2NTI3LCAwLjUyMjc0OSIsIFwKLSAgICAgICAgICAiMC4wODcxMzgsIDAuMTYzMzIxLCAwLjIyNDE2NiwgMC4zMDAxODksIDAuMzc2MTk1LCAwLjQ1MjM5NywgMC41Mjg0NjkiLCBcCi0gICAgICAgICAgIjAuMDkzMzI2LCAwLjE2OTU0OCwgMC4yMzAzNzQsIDAuMzA2MzYsIDAuMzgyNDA4LCAwLjQ1ODUwMSwgMC41MzQ3MzMiLCBcCi0gICAgICAgICAgIjAuMDk4NTI4LCAwLjE3NDc3NCwgMC4yMzU2MDMsIDAuMzExNTc5LCAwLjM4NzY1MywgMC40NjM4MjMsIDAuNTM5OTYiLCBcCi0gICAgICAgICAgIjAuMTAyODU5LCAwLjE3OTA3NywgMC4yMzk5NTYsIDAuMzE1OTQ4LCAwLjM5MTk3OSwgMC40NjgwNzMsIDAuNTQ0MTUiLCBcCi0gICAgICAgICAgIjAuMTA4NjUzLCAwLjE4NDc4NCwgMC4yNDU2NzksIDAuMzIxNjUyLCAwLjM5NzcsIDAuNDczODM3LCAwLjU0OTg3MyIsIFwKLSAgICAgICAgICAiMC4xMTMwMzEsIDAuMTg5MDM0LCAwLjI0OTk4OCwgMC4zMjU5OTIsIDAuNDAyMDgxLCAwLjQ3ODE0NSwgMC41NTQyMDYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM2MTc4LCAwLjE5MzU4MiwgMC4zMjAxLCAwLjQ3NzQwNywgMC42MzUwODQsIDAuNzkyMTY2LCAwLjk1MTMwOSIsIFwKLSAgICAgICAgICAiMC4wMzYxNzEsIDAuMTkzNTczLCAwLjMyMDA5MSwgMC40NzgzODIsIDAuNjM1NzQ3LCAwLjc5MjgyOCwgMC45NTI2NDgiLCBcCi0gICAgICAgICAgIjAuMDM2MTY3LCAwLjE5MzU4MSwgMC4zMjAwODQsIDAuNDc4MjgzLCAwLjYzNTkzMiwgMC43OTI1NTcsIDAuOTUwODQyIiwgXAotICAgICAgICAgICIwLjAzNjIyMiwgMC4xOTM1NjQsIDAuMzIwMDg5LCAwLjQ3NzY0OCwgMC42MzUyOTQsIDAuNzkzMjE0LCAwLjk1MDc0MyIsIFwKLSAgICAgICAgICAiMC4wMzYxODYsIDAuMTkzNTM0LCAwLjMyMDA2NywgMC40Nzc1NjYsIDAuNjM1ODAzLCAwLjc5MzU4NywgMC45NTE2IiwgXAotICAgICAgICAgICIwLjAzNjE4NiwgMC4xOTMzOTQsIDAuMzIwMDE4LCAwLjQ3NzUzMSwgMC42MzU3NjUsIDAuNzk0MTgzLCAwLjk1MTUxNyIsIFwKLSAgICAgICAgICAiMC4wMzYyNDIsIDAuMTkzMjk3LCAwLjMxOTkzMSwgMC40Nzc5OTcsIDAuNjM2MDY3LCAwLjc5NDAzLCAwLjk1MDY0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkciOwotICAgICAgdGltaW5nX3NlbnNlIDogbm9uX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiByaXNpbmdfZWRnZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTAzMDI1LCAwLjE4MDYwMiwgMC4yNDI3MDYsIDAuMzE5OTI5LCAwLjM5NzIzMSwgMC40NzQ0MjMsIDAuNTUyNzY3IiwgXAotICAgICAgICAgICIwLjExMTEyMSwgMC4xODg2NjUsIDAuMjUwNzY1LCAwLjMyNzg4OCwgMC40MDUyNTUsIDAuNDgyNDc0LCAwLjU2MDgyNyIsIFwKLSAgICAgICAgICAiMC4xMTk0MDcsIDAuMTk2OTUxLCAwLjI1OTA1MiwgMC4zMzYyMDgsIDAuNDEzNTQyLCAwLjQ5MDc2MiwgMC41NjkxMjEiLCBcCi0gICAgICAgICAgIjAuMTI1MjUsIDAuMjAyNzk2LCAwLjI2NDg5MiwgMC4zNDE5NjgsIDAuNDE5MzgxLCAwLjQ5NjYwMSwgMC41NzQ5NTQiLCBcCi0gICAgICAgICAgIjAuMTI5OTkzLCAwLjIwNzU3LCAwLjI2OTY4NiwgMC4zNDY2NzgsIDAuNDI0NDYxLCAwLjUwMTg2NSwgMC41Nzg5MzIiLCBcCi0gICAgICAgICAgIjAuMTM2NDA4LCAwLjIxMzkyLCAwLjI3NTc0NywgMC4zNTI5OTksIDAuNDMwNTQ0LCAwLjUwODYzNCwgMC41ODYwOTQiLCBcCi0gICAgICAgICAgIjAuMTQxMDI1LCAwLjIxODY0LCAwLjI4MDI1NiwgMC4zNTgwNDksIDAuNDM1MTAyLCAwLjUxMjY4OCwgMC41ODk4MzMiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM3MzAyLCAwLjE5OTY3MywgMC4zMzAwNTYsIDAuNDkxNjU1LCAwLjY1NDk5MiwgMC44MTY3NzksIDAuOTgxNjMzIiwgXAotICAgICAgICAgICIwLjAzNzM0LCAwLjE5OTY1MywgMC4zMzAwNDksIDAuNDkyMTczLCAwLjY1NDkxMywgMC44MTcwMDksIDAuOTgxNjIzIiwgXAotICAgICAgICAgICIwLjAzNzM0LCAwLjE5OTY1LCAwLjMzMDA1LCAwLjQ5MjAwOCwgMC42NTQ4OTUsIDAuODE2OTgsIDAuOTgxNjM4IiwgXAotICAgICAgICAgICIwLjAzNzM0MSwgMC4xOTk2NzIsIDAuMzMwMDQ5LCAwLjQ5MTY1NSwgMC42NTQyNjgsIDAuODE3MDM2LCAwLjk4MTYxOCIsIFwKLSAgICAgICAgICAiMC4wMzcyNjEsIDAuMTk5NjY1LCAwLjMzMDA2MSwgMC40OTIxLCAwLjY1NTI1MSwgMC44MTgwOTQsIDAuOTgwMDU4IiwgXAotICAgICAgICAgICIwLjAzNzQzNSwgMC4xOTk1ODMsIDAuMzI5Mzg2LCAwLjQ5MTgyNCwgMC42NTQ5MTcsIDAuODE4NzUzLCAwLjk4MTQ3OSIsIFwKLSAgICAgICAgICAiMC4wMzczMjcsIDAuMTk5Njk4LCAwLjMyOTQwMiwgMC40OTI0LCAwLjY1NDY1OCwgMC44MTcyMTUsIDAuOTc5NTM5Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5MzI0MiwgMC4xNjk1MDEsIDAuMjMwMzIxLCAwLjMwNjMyNywgMC4zODIzNSwgMC40NTg0MzgsIDAuNTM0NTI4IiwgXAotICAgICAgICAgICIwLjEwMTE5LCAwLjE3NzQ4NywgMC4yMzgzMTMsIDAuMzE0Mjc5LCAwLjM5MDM0MSwgMC40NjY0MzcsIDAuNTQyNTY5IiwgXAotICAgICAgICAgICIwLjEwOTU3MywgMC4xODU3MiwgMC4yNDY3MDIsIDAuMzIyNzI0LCAwLjM5ODc4NiwgMC40NzQ5MTQsIDAuNTUwOTQ5IiwgXAotICAgICAgICAgICIwLjExNjAxLCAwLjE5MjI2LCAwLjI1MzEwMywgMC4zMjkxMTUsIDAuNDA1MTI0LCAwLjQ4MTIyNywgMC41NTczNDMiLCBcCi0gICAgICAgICAgIjAuMTIxMDMzLCAwLjE5NzEyMywgMC4yNTgwODEsIDAuMzM0MDU1LCAwLjQxMDExNSwgMC40ODYyOTcsIDAuNTYyMjc5IiwgXAotICAgICAgICAgICIwLjEyODA2NiwgMC4yMDQzMjMsIDAuMjY1MTQzLCAwLjM0MTE5LCAwLjQxNzE5MSwgMC40OTMzMjcsIDAuNTY5NDI1IiwgXAotICAgICAgICAgICIwLjEzMzE1OSwgMC4yMDkzMjMsIDAuMjcwMTQ2LCAwLjM0NjI0NiwgMC40MjIyOTUsIDAuNDk4Mzc0LCAwLjU3NDQ3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzNjE2LCAwLjE5MzU5LCAwLjMyMDA4NSwgMC40NzgzMjYsIDAuNjM1MDg4LCAwLjc5MzM3MywgMC45NTEzMTUiLCBcCi0gICAgICAgICAgIjAuMDM2MTcxLCAwLjE5MzU4MywgMC4zMjAwNzcsIDAuNDc3OTI2LCAwLjYzNDk4NiwgMC43OTI4NywgMC45NTI2MDciLCBcCi0gICAgICAgICAgIjAuMDM2MjM4LCAwLjE5MzM3OSwgMC4zMjAwNzQsIDAuNDc4MzQzLCAwLjYzNDgsIDAuNzkzMzMyLCAwLjk1MjU5OCIsIFwKLSAgICAgICAgICAiMC4wMzYxNjUsIDAuMTkzNTc4LCAwLjMyMDEyOCwgMC40NzgzNDMsIDAuNjM2MzgxLCAwLjc5NDQ0NCwgMC45NTI2MTMiLCBcCi0gICAgICAgICAgIjAuMDM2MjEsIDAuMTkzMzc2LCAwLjMyMDA4NCwgMC40NzY4OTYsIDAuNjM0NjgyLCAwLjc5MzM3LCAwLjk1MDE1NCIsIFwKLSAgICAgICAgICAiMC4wMzYyODksIDAuMTkzNTY0LCAwLjMxOTk2MSwgMC40NzgyNDUsIDAuNjM1MTc5LCAwLjc5NDM1OCwgMC45NTI0MTgiLCBcCi0gICAgICAgICAgIjAuMDM2MTk3LCAwLjE5MzQyMywgMC4zMTk1ODYsIDAuNDc3NTc0LCAwLjYzNTkyOCwgMC43OTM4MjMsIDAuOTUxMzMzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1MjUyLCAwLjAwNTMxNiwgMC4wMDUzMjUsIDAuMDA1MzI5LCAwLjAwNTMzMSwgMC4wMDUzMzMsIDAuMDA1MzM0IiwgXAotICAgICAgICAgICIwLjAwNTIzNiwgMC4wMDUzLCAwLjAwNTMwOCwgMC4wMDUzMTMsIDAuMDA1MzE1LCAwLjAwNTMxNiwgMC4wMDUzMTIiLCBcCi0gICAgICAgICAgIjAuMDA1MjMzLCAwLjAwNTMsIDAuMDA1MzA5LCAwLjAwNTMxMywgMC4wMDUzMTYsIDAuMDA1MzE4LCAwLjAwNTMxOSIsIFwKLSAgICAgICAgICAiMC4wMDUyNTksIDAuMDA1MzIzLCAwLjAwNTMzMiwgMC4wMDUzMzcsIDAuMDA1MzQ0LCAwLjAwNTM0MSwgMC4wMDUzNDIiLCBcCi0gICAgICAgICAgIjAuMDA1Mjk5LCAwLjAwNTM2MiwgMC4wMDUzNzMsIDAuMDA1Mzc4LCAwLjAwNTM4LCAwLjAwNTM4MiwgMC4wMDUzODMiLCBcCi0gICAgICAgICAgIjAuMDA1MzY1LCAwLjAwNTQzMywgMC4wMDU0MzgsIDAuMDA1NDQ4LCAwLjAwNTQ1LCAwLjAwNTQ1MSwgMC4wMDU0NTMiLCBcCi0gICAgICAgICAgIjAuMDA1NDMyLCAwLjAwNTUwMiwgMC4wMDU1MTIsIDAuMDA1NTE2LCAwLjAwNTUxOSwgMC4wMDU1MjIsIDAuMDA1NTE1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1NzAxLCAwLjAwNTc2NSwgMC4wMDU3NzIsIDAuMDA1Nzc2LCAwLjAwNTc3OCwgMC4wMDU3OCwgMC4wMDU3ODEiLCBcCi0gICAgICAgICAgIjAuMDA1Njg3LCAwLjAwNTc1MiwgMC4wMDU3NTksIDAuMDA1NzYzLCAwLjAwNTc2NSwgMC4wMDU3NjcsIDAuMDA1NzY0IiwgXAotICAgICAgICAgICIwLjAwNTY4OCwgMC4wMDU3NTUsIDAuMDA1NzYzLCAwLjAwNTc2NiwgMC4wMDU3NywgMC4wMDU3NjksIDAuMDA1NzcxIiwgXAotICAgICAgICAgICIwLjAwNTcxLCAwLjAwNTc3OCwgMC4wMDU3ODYsIDAuMDA1NzksIDAuMDA1NzkzLCAwLjAwNTc5NCwgMC4wMDU3OTUiLCBcCi0gICAgICAgICAgIjAuMDA1NzU3LCAwLjAwNTgxOSwgMC4wMDU4MjgsIDAuMDA1ODMyLCAwLjAwNTgzNCwgMC4wMDU4MzUsIDAuMDA1ODM2IiwgXAotICAgICAgICAgICIwLjAwNTgxNywgMC4wMDU4ODIsIDAuMDA1ODksIDAuMDA1ODk0LCAwLjAwNTg5NywgMC4wMDU4OTksIDAuMDA1ODk5IiwgXAotICAgICAgICAgICIwLjAwNTg4NCwgMC4wMDU5NDksIDAuMDA1OTU2LCAwLjAwNTk2MiwgMC4wMDU5NjQsIDAuMDA1OTY2LCAwLjAwNTk2NiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkciOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjM2MiwgMC4wMDY0MjgsIDAuMDA2NDM3LCAwLjAwNjQ0MiwgMC4wMDY0NDQsIDAuMDA2NDQ1LCAwLjAwNjQ0NyIsIFwKLSAgICAgICAgICAiMC4wMDYzNjEsIDAuMDA2NDI4LCAwLjAwNjQzNiwgMC4wMDY0NDEsIDAuMDA2NDQ0LCAwLjAwNjQ0NCwgMC4wMDY0NDYiLCBcCi0gICAgICAgICAgIjAuMDA2NCwgMC4wMDY0NjYsIDAuMDA2NDc0LCAwLjAwNjQ3OSwgMC4wMDY0ODEsIDAuMDA2NDgyLCAwLjAwNjQ4NCIsIFwKLSAgICAgICAgICAiMC4wMDY0NTcsIDAuMDA2NTIyLCAwLjAwNjUzMSwgMC4wMDY1MzQsIDAuMDA2NTM3LCAwLjAwNjUzOCwgMC4wMDY1MzkiLCBcCi0gICAgICAgICAgIjAuMDA2NTE0LCAwLjAwNjU3OSwgMC4wMDY1ODcsIDAuMDA2NTkxLCAwLjAwNjU5MywgMC4wMDY1OTQsIDAuMDA2NTk1IiwgXAotICAgICAgICAgICIwLjAwNjYyMywgMC4wMDY2ODIsIDAuMDA2NjkyLCAwLjAwNjY5NiwgMC4wMDY2OTUsIDAuMDA2Njk5LCAwLjAwNjY5NyIsIFwKLSAgICAgICAgICAiMC4wMDY3MjQsIDAuMDA2Nzg2LCAwLjAwNjc4NCwgMC4wMDY3OTUsIDAuMDA2Nzk3LCAwLjAwNjc5LCAwLjAwNjc5OCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjQyNCwgMC4wMDY0NTEsIDAuMDA2NDQ1LCAwLjAwNjQ0MywgMC4wMDY0MzksIDAuMDA2NDM2LCAwLjAwNjQzMyIsIFwKLSAgICAgICAgICAiMC4wMDY0MjEsIDAuMDA2NDQ5LCAwLjAwNjQ0MywgMC4wMDY0MzgsIDAuMDA2NDM1LCAwLjAwNjQzMiwgMC4wMDY0MzMiLCBcCi0gICAgICAgICAgIjAuMDA2NDcyLCAwLjAwNjUsIDAuMDA2NDk0LCAwLjAwNjQ4OCwgMC4wMDY0ODQsIDAuMDA2NDgyLCAwLjAwNjQ4MSIsIFwKLSAgICAgICAgICAiMC4wMDY1MiwgMC4wMDY1NTEsIDAuMDA2NTQ0LCAwLjAwNjUzOSwgMC4wMDY1MzQsIDAuMDA2NTMyLCAwLjAwNjUzIiwgXAotICAgICAgICAgICIwLjAwNjU3NiwgMC4wMDY2MDksIDAuMDA2NjAyLCAwLjAwNjU5NiwgMC4wMDY1OTIsIDAuMDA2NTg5LCAwLjAwNjU4NyIsIFwKLSAgICAgICAgICAiMC4wMDY2ODcsIDAuMDA2NzE2LCAwLjAwNjcwOSwgMC4wMDY3MDIsIDAuMDA2Njk2LCAwLjAwNjY5MywgMC4wMDY2OSIsIFwKLSAgICAgICAgICAiMC4wMDY3OTQsIDAuMDA2ODI1LCAwLjAwNjgxNSwgMC4wMDY4MDcsIDAuMDA2ODAyLCAwLjAwNjc5NCwgMC4wMDY3OTEiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFFOKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuNjk0MDU1OwotICAgIGZ1bmN0aW9uIDogIk4wIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJEIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzY4MDksIDAuMTU0ODA5LCAwLjIxNjUyNiwgMC4yOTM3MTYsIDAuMzcwODc0LCAwLjQ0NzkzOCwgMC41MjUxNTkiLCBcCi0gICAgICAgICAgIjAuMDgyNjEsIDAuMTYwNjA5LCAwLjIyMjMyNiwgMC4yOTk0OTUsIDAuMzc2NTg3LCAwLjQ1MzgxOCwgMC41MzA4OTYiLCBcCi0gICAgICAgICAgIjAuMDg4ODIsIDAuMTY2ODI4LCAwLjIyODU0MSwgMC4zMDU2NzEsIDAuMzgyODEzLCAwLjQ1OTk0NywgMC41MzcxNzUiLCBcCi0gICAgICAgICAgIjAuMDk0MDgxLCAwLjE3MjA5NSwgMC4yMzM4MTUsIDAuMzEwOTU2LCAwLjM4ODEwNiwgMC40NjUyOSwgMC41NDI0NDIiLCBcCi0gICAgICAgICAgIjAuMDk4Mzg3LCAwLjE3NjM5MiwgMC4yMzgxMjcsIDAuMzE1MzMsIDAuMzkyMzg0LCAwLjQ2OTUyOCwgMC41NDY2MDYiLCBcCi0gICAgICAgICAgIjAuMTA0MjI5LCAwLjE4MjI0MSwgMC4yNDM5ODQsIDAuMzIxMTQsIDAuMzk4MjE0LCAwLjQ3NTM2OCwgMC41NTI0NjUiLCBcCi0gICAgICAgICAgIjAuMTA4NjQxLCAwLjE4NjY2MSwgMC4yNDgzNzEsIDAuMzI1NTIsIDAuNDAyNjczLCAwLjQ3OTc0OCwgMC41NTY4NzgiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQyMzA0LCAwLjIwMDU2OCwgMC4zMzA0MzEsIDAuNDkyMzA1LCAwLjY1NDgyLCAwLjgxNzAyOSwgMC45ODAxNjUiLCBcCi0gICAgICAgICAgIjAuMDQyMzEzLCAwLjIwMDU2LCAwLjMzMDQyNSwgMC40OTMyNDIsIDAuNjU1MjI0LCAwLjgxNzM5MSwgMC45ODE2MDciLCBcCi0gICAgICAgICAgIjAuMDQyMzI2LCAwLjIwMDU5MywgMC4zMzA0MjIsIDAuNDkzMTczLCAwLjY1NTM1MSwgMC44MTczNjgsIDAuOTgwMDgzIiwgXAotICAgICAgICAgICIwLjA0MjQ0NywgMC4yMDA1OTIsIDAuMzMwNDI2LCAwLjQ5MjUwNSwgMC42NTQ5NCwgMC44MTc1NDksIDAuOTgwMDMyIiwgXAotICAgICAgICAgICIwLjA0MjQ5NSwgMC4yMDA1MTgsIDAuMzMwNDE5LCAwLjQ5MjM2NiwgMC42NTUyNTUsIDAuODE3NzM3LCAwLjk4MDU0MyIsIFwKLSAgICAgICAgICAiMC4wNDI1OCwgMC4yMDAzODQsIDAuMzMwMzc0LCAwLjQ5MjMxOSwgMC42NTUyMjMsIDAuODE4NTQ2LCAwLjk4MDQ2IiwgXAotICAgICAgICAgICIwLjA0MjY3NCwgMC4yMDAzNjQsIDAuMzMwMzE2LCAwLjQ5Mjk1NiwgMC42NTU3MzMsIDAuODE4NDQ1LCAwLjk3OTk4NiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzU1NjksIDAuMTUyNDMsIDAuMjEzMDksIDAuMjg4OTM0LCAwLjM2NDczMiwgMC40NDA1OCwgMC41MTYzNzkiLCBcCi0gICAgICAgICAgIjAuMDgxNzY2LCAwLjE1ODYzNCwgMC4yMTkyOTQsIDAuMjk1MTQsIDAuMzcwOTQxLCAwLjQ0Njc2NCwgMC41MjIzNDUiLCBcCi0gICAgICAgICAgIjAuMDg4NjYsIDAuMTY1NTMsIDAuMjI2MTkyLCAwLjMwMjAzNiwgMC4zNzc4MzgsIDAuNDUzNjY0LCAwLjUyOTQzOCIsIFwKLSAgICAgICAgICAiMC4wOTQ0MTUsIDAuMTcxMjg3LCAwLjIzMTk0NywgMC4zMDc3OTMsIDAuMzgzNTc4LCAwLjQ1OTQyNCwgMC41MzUxNzciLCBcCi0gICAgICAgICAgIjAuMDk5MjcsIDAuMTc2MTQxLCAwLjIzNjgwMSwgMC4zMTI2NSwgMC4zODg0NTQsIDAuNDY0MjQ5LCAwLjU0MDAzMyIsIFwKLSAgICAgICAgICAiMC4xMDU3ODksIDAuMTgyNjYzLCAwLjI0MzMzLCAwLjMxOTE1MiwgMC4zOTQ5MzQsIDAuNDcwNzIsIDAuNTQ2NTQzIiwgXAotICAgICAgICAgICIwLjExMDc0NiwgMC4xODc2MzUsIDAuMjQ4Mjc4LCAwLjMyNDA5NSwgMC4zOTk5MTMsIDAuNDc1NjcxLCAwLjU1MTQ2OSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDEyLCAwLjE5NDI3OSwgMC4zMTk4MTUsIDAuNDc2Njc5LCAwLjYzNDE1MSwgMC43OTA5NDMsIDAuOTQ4MzE3IiwgXAotICAgICAgICAgICIwLjA0MTE1NCwgMC4xOTQyMTgsIDAuMzE5NzcsIDAuNDc2MzkxLCAwLjYzMzMxMywgMC43OTEwNywgMC45NDcxODkiLCBcCi0gICAgICAgICAgIjAuMDQxMjAyLCAwLjE5MzgxOCwgMC4zMTk3NTgsIDAuNDc2NDA3LCAwLjYzMzMxOCwgMC43OTEwODksIDAuOTUwMjI2IiwgXAotICAgICAgICAgICIwLjA0MTI0NSwgMC4xOTM4MjYsIDAuMzE5Nzc3LCAwLjQ3NjQwNiwgMC42MzQxNDIsIDAuNzkxMDY3LCAwLjk1MDE2MSIsIFwKLSAgICAgICAgICAiMC4wNDEzMDcsIDAuMTk0MDk1LCAwLjMxOTc1MiwgMC40NzYzODksIDAuNjMzNzE4LCAwLjc5MjUxNywgMC45NDk5NyIsIFwKLSAgICAgICAgICAiMC4wNDE0MDgsIDAuMTk0MjczLCAwLjMxOTc1NSwgMC40NzcxNTksIDAuNjM0MTUsIDAuNzkxNTI1LCAwLjk0ODY4MSIsIFwKLSAgICAgICAgICAiMC4wNDE0NjcsIDAuMTk0MDA2LCAwLjMxOTY1NywgMC40NzY3MiwgMC42MzQ3MDcsIDAuNzkyMTc3LCAwLjk0OTc5NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJHIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5vbl91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcmlzaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4ODczMiwgMC4xNjY2MDYsIDAuMjI4Mjc4LCAwLjMwNTM5NSwgMC4zODI1MiwgMC40NTk2MzksIDAuNTM2NzY3IiwgXAotICAgICAgICAgICIwLjA5NjcyMSwgMC4xNzQ2MDEsIDAuMjM2MjcyLCAwLjMxMzM5NiwgMC4zOTA1MTIsIDAuNDY3NjQ2LCAwLjU0NDc1IiwgXAotICAgICAgICAgICIwLjEwNTEwMywgMC4xODI5NzQsIDAuMjQ0NjUsIDAuMzIxNzg0LCAwLjM5ODk2MywgMC40NzYwOTYsIDAuNTUzMTE1IiwgXAotICAgICAgICAgICIwLjExMTUwMywgMC4xODkzODUsIDAuMjUxMDczLCAwLjMyODE5NCwgMC40MDUzLCAwLjQ4MjQwMiwgMC41NTk1MjUiLCBcCi0gICAgICAgICAgIjAuMTE2NjE3LCAwLjE5NDQ5NiwgMC4yNTYxNywgMC4zMzMzMDcsIDAuNDEwNCwgMC40ODc1OTksIDAuNTY0NjExIiwgXAotICAgICAgICAgICIwLjEyMzU4MiwgMC4yMDE0ODUsIDAuMjYzMTMzLCAwLjM0MDI3MSwgMC40MTczNzYsIDAuNDk0NTE0LCAwLjU3MTYxNCIsIFwKLSAgICAgICAgICAiMC4xMjg2ODgsIDAuMjA2NTY2LCAwLjI2ODI0NywgMC4zNDUzODIsIDAuNDIyNDYzLCAwLjQ5OTU1OSwgMC41NzY3MDYiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQyMzgyLCAwLjIwMDYzNiwgMC4zMzA0MzMsIDAuNDkzMjA2LCAwLjY1NDg1MSwgMC44MTc1MjIsIDAuOTgwMTU2IiwgXAotICAgICAgICAgICIwLjA0MjM3NSwgMC4yMDA2MjEsIDAuMzMwNDI5LCAwLjQ5MjY3MSwgMC42NTQ4MTMsIDAuODE3Mzc4LCAwLjk4MTU5MiIsIFwKLSAgICAgICAgICAiMC4wNDIzNzEsIDAuMjAwMzg0LCAwLjMzMDQyNiwgMC40OTMyMjIsIDAuNjU0NzEyLCAwLjgxNzU4NywgMC45ODE1OTIiLCBcCi0gICAgICAgICAgIjAuMDQyMzkxLCAwLjIwMDYxNiwgMC4zMzA0NTUsIDAuNDkzMjE5LCAwLjY1NTk1NSwgMC44MTg3MzksIDAuOTgxNjAxIiwgXAotICAgICAgICAgICIwLjA0MjM4OSwgMC4yMDA0MTUsIDAuMzMwNDI5LCAwLjQ5MjA1NCwgMC42NTQ0MjgsIDAuODE3NTQzLCAwLjk3OTM4MyIsIFwKLSAgICAgICAgICAiMC4wNDI1NzIsIDAuMjAwNTcxLCAwLjMzMDM0MywgMC40OTMxNDgsIDAuNjU0ODg0LCAwLjgxODY4LCAwLjk4MTQ1OSIsIFwKLSAgICAgICAgICAiMC4wNDIzOTksIDAuMjAwNDExLCAwLjMyOTgzNywgMC40OTI1MjksIDAuNjU1MzU3LCAwLjgxNzk0MiwgMC45ODAyNzEiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk4NTU0LCAwLjE3NTQyMywgMC4yMzYwODQsIDAuMzExOTA2LCAwLjM4NzczNywgMC40NjM1NTcsIDAuNTM5MzA3IiwgXAotICAgICAgICAgICIwLjEwNjYyLCAwLjE4MzQ5MiwgMC4yNDQxNTMsIDAuMzE5OTkxLCAwLjM5NTgxMiwgMC40NzE2MTUsIDAuNTQ3Mzc3IiwgXAotICAgICAgICAgICIwLjExNDkwNSwgMC4xOTE3NzYsIDAuMjUyNDM3LCAwLjMyODI2NywgMC40MDQwOTcsIDAuNDc5ODk5LCAwLjU1NTY2MyIsIFwKLSAgICAgICAgICAiMC4xMjA3NSwgMC4xOTc2MjEsIDAuMjU4MjgsIDAuMzM0MTMxLCAwLjQwOTkzOSwgMC40ODU3MzksIDAuNTYxNDk1IiwgXAotICAgICAgICAgICIwLjEyNTUyOSwgMC4yMDIzOTcsIDAuMjYzMDU3LCAwLjMzODc5MywgMC40MTQ2ODUsIDAuNDkwNDc0LCAwLjU2NjMwNiIsIFwKLSAgICAgICAgICAiMC4xMzE5MDMsIDAuMjA4NzY1LCAwLjI2OTQyLCAwLjM0NTI2MywgMC40MjEwNzEsIDAuNDk2ODY0LCAwLjU3MjYyOSIsIFwKLSAgICAgICAgICAiMC4xMzY1MjMsIDAuMjEzMzk1LCAwLjI3NDA1MiwgMC4zNDk4NzIsIDAuNDI1NzUyLCAwLjUwMTQ1MywgMC41NzczMjEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQxMTksIDAuMTk0MjY5LCAwLjMxOTgwNywgMC40NzYyNjUsIDAuNjM0MjA2LCAwLjc5MTA3MywgMC45NTAxNzIiLCBcCi0gICAgICAgICAgIjAuMDQxMjAxLCAwLjE5NDI1NywgMC4zMTk3OTcsIDAuNDc2Nzc4LCAwLjYzNDEyNiwgMC43OTEwNzQsIDAuOTUwMTY0IiwgXAotICAgICAgICAgICIwLjA0MTIwMiwgMC4xOTQyNTUsIDAuMzE5Nzk4LCAwLjQ3NjcwOSwgMC42MzQxMjcsIDAuNzkxMDc0LCAwLjk1MDE3OSIsIFwKLSAgICAgICAgICAiMC4wNDEyMDQsIDAuMTk0MjY5LCAwLjMxOTc5NywgMC40NzU5MzksIDAuNjMzNTQ1LCAwLjc5MTA3NCwgMC45NTAxNTMiLCBcCi0gICAgICAgICAgIjAuMDQxMTcsIDAuMTk0MjcsIDAuMzE5ODE1LCAwLjQ3NjY5NCwgMC42MzQ2NTQsIDAuNzkyMTA1LCAwLjk0ODMwMSIsIFwKLSAgICAgICAgICAiMC4wNDExODYsIDAuMTk0MjM3LCAwLjMxOTQyNSwgMC40NzYzOTUsIDAuNjM0MDkxLCAwLjc5MjU1NCwgMC45NDk5NjQiLCBcCi0gICAgICAgICAgIjAuMDQxMjEyLCAwLjE5NDI2MSwgMC4zMTkyNzUsIDAuNDc3MDY4LCAwLjYzMzg5LCAwLjc5MTUxNiwgMC45NDg0MDUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJEIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDU3MDEsIDAuMDA1NzY1LCAwLjAwNTc3MiwgMC4wMDU3NzYsIDAuMDA1Nzc4LCAwLjAwNTc4LCAwLjAwNTc4MSIsIFwKLSAgICAgICAgICAiMC4wMDU2ODcsIDAuMDA1NzUyLCAwLjAwNTc1OSwgMC4wMDU3NjMsIDAuMDA1NzY1LCAwLjAwNTc2NywgMC4wMDU3NjQiLCBcCi0gICAgICAgICAgIjAuMDA1Njg4LCAwLjAwNTc1NSwgMC4wMDU3NjMsIDAuMDA1NzY2LCAwLjAwNTc3LCAwLjAwNTc2OSwgMC4wMDU3NzEiLCBcCi0gICAgICAgICAgIjAuMDA1NzEsIDAuMDA1Nzc4LCAwLjAwNTc4NiwgMC4wMDU3OSwgMC4wMDU3OTMsIDAuMDA1Nzk0LCAwLjAwNTc5NSIsIFwKLSAgICAgICAgICAiMC4wMDU3NTcsIDAuMDA1ODE5LCAwLjAwNTgyOCwgMC4wMDU4MzIsIDAuMDA1ODM0LCAwLjAwNTgzNSwgMC4wMDU4MzYiLCBcCi0gICAgICAgICAgIjAuMDA1ODE3LCAwLjAwNTg4MiwgMC4wMDU4OSwgMC4wMDU4OTQsIDAuMDA1ODk3LCAwLjAwNTg5OSwgMC4wMDU4OTkiLCBcCi0gICAgICAgICAgIjAuMDA1ODg0LCAwLjAwNTk0OSwgMC4wMDU5NTYsIDAuMDA1OTYyLCAwLjAwNTk2NCwgMC4wMDU5NjYsIDAuMDA1OTY2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1MjUyLCAwLjAwNTMxNiwgMC4wMDUzMjUsIDAuMDA1MzI5LCAwLjAwNTMzMSwgMC4wMDUzMzMsIDAuMDA1MzM0IiwgXAotICAgICAgICAgICIwLjAwNTIzNiwgMC4wMDUzLCAwLjAwNTMwOCwgMC4wMDUzMTMsIDAuMDA1MzE1LCAwLjAwNTMxNiwgMC4wMDUzMTIiLCBcCi0gICAgICAgICAgIjAuMDA1MjMzLCAwLjAwNTMsIDAuMDA1MzA5LCAwLjAwNTMxMywgMC4wMDUzMTYsIDAuMDA1MzE4LCAwLjAwNTMxOSIsIFwKLSAgICAgICAgICAiMC4wMDUyNTksIDAuMDA1MzIzLCAwLjAwNTMzMiwgMC4wMDUzMzcsIDAuMDA1MzQ0LCAwLjAwNTM0MSwgMC4wMDUzNDIiLCBcCi0gICAgICAgICAgIjAuMDA1Mjk5LCAwLjAwNTM2MiwgMC4wMDUzNzMsIDAuMDA1Mzc4LCAwLjAwNTM4LCAwLjAwNTM4MiwgMC4wMDUzODMiLCBcCi0gICAgICAgICAgIjAuMDA1MzY1LCAwLjAwNTQzMywgMC4wMDU0MzgsIDAuMDA1NDQ4LCAwLjAwNTQ1LCAwLjAwNTQ1MSwgMC4wMDU0NTMiLCBcCi0gICAgICAgICAgIjAuMDA1NDMyLCAwLjAwNTUwMiwgMC4wMDU1MTIsIDAuMDA1NTE2LCAwLjAwNTUxOSwgMC4wMDU1MjIsIDAuMDA1NTE1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2NDI0LCAwLjAwNjQ1MSwgMC4wMDY0NDUsIDAuMDA2NDQzLCAwLjAwNjQzOSwgMC4wMDY0MzYsIDAuMDA2NDMzIiwgXAotICAgICAgICAgICIwLjAwNjQyMSwgMC4wMDY0NDksIDAuMDA2NDQzLCAwLjAwNjQzOCwgMC4wMDY0MzUsIDAuMDA2NDMyLCAwLjAwNjQzMyIsIFwKLSAgICAgICAgICAiMC4wMDY0NzIsIDAuMDA2NSwgMC4wMDY0OTQsIDAuMDA2NDg4LCAwLjAwNjQ4NCwgMC4wMDY0ODIsIDAuMDA2NDgxIiwgXAotICAgICAgICAgICIwLjAwNjUyLCAwLjAwNjU1MSwgMC4wMDY1NDQsIDAuMDA2NTM5LCAwLjAwNjUzNCwgMC4wMDY1MzIsIDAuMDA2NTMiLCBcCi0gICAgICAgICAgIjAuMDA2NTc2LCAwLjAwNjYwOSwgMC4wMDY2MDIsIDAuMDA2NTk2LCAwLjAwNjU5MiwgMC4wMDY1ODksIDAuMDA2NTg3IiwgXAotICAgICAgICAgICIwLjAwNjY4NywgMC4wMDY3MTYsIDAuMDA2NzA5LCAwLjAwNjcwMiwgMC4wMDY2OTYsIDAuMDA2NjkzLCAwLjAwNjY5IiwgXAotICAgICAgICAgICIwLjAwNjc5NCwgMC4wMDY4MjUsIDAuMDA2ODE1LCAwLjAwNjgwNywgMC4wMDY4MDIsIDAuMDA2Nzk0LCAwLjAwNjc5MSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjM2MiwgMC4wMDY0MjgsIDAuMDA2NDM3LCAwLjAwNjQ0MiwgMC4wMDY0NDQsIDAuMDA2NDQ1LCAwLjAwNjQ0NyIsIFwKLSAgICAgICAgICAiMC4wMDYzNjEsIDAuMDA2NDI4LCAwLjAwNjQzNiwgMC4wMDY0NDEsIDAuMDA2NDQ0LCAwLjAwNjQ0NCwgMC4wMDY0NDYiLCBcCi0gICAgICAgICAgIjAuMDA2NCwgMC4wMDY0NjYsIDAuMDA2NDc0LCAwLjAwNjQ3OSwgMC4wMDY0ODEsIDAuMDA2NDgyLCAwLjAwNjQ4NCIsIFwKLSAgICAgICAgICAiMC4wMDY0NTcsIDAuMDA2NTIyLCAwLjAwNjUzMSwgMC4wMDY1MzQsIDAuMDA2NTM3LCAwLjAwNjUzOCwgMC4wMDY1MzkiLCBcCi0gICAgICAgICAgIjAuMDA2NTE0LCAwLjAwNjU3OSwgMC4wMDY1ODcsIDAuMDA2NTkxLCAwLjAwNjU5MywgMC4wMDY1OTQsIDAuMDA2NTk1IiwgXAotICAgICAgICAgICIwLjAwNjYyMywgMC4wMDY2ODIsIDAuMDA2NjkyLCAwLjAwNjY5NiwgMC4wMDY2OTUsIDAuMDA2Njk5LCAwLjAwNjY5NyIsIFwKLSAgICAgICAgICAiMC4wMDY3MjQsIDAuMDA2Nzg2LCAwLjAwNjc4NCwgMC4wMDY3OTUsIDAuMDA2Nzk3LCAwLjAwNjc5LCAwLjAwNjc5OCIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogVExBVFhMICoKLSAqIC0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoVExBVFhMKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuNTk3NDM1OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIGxhdGNoIChRSU5ULE4wKSB7Ci0gICAgZGF0YV9pbiA6ICJEIjsKLSAgICBlbmFibGUgOiAiRyI7Ci0gIH0KLSAgcGluKEQpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY0NTQ4OTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2NDQ0Njk7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjQ1NDg5OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDI4OCwgMC4wMDAyODksIDAuMDAwMjksIDAuMDAwMjksIDAuMDAwMjkxLCAwLjAwMDI5MSwgMC4wMDAyOTEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAzMTEsIDAuMDAwMzAxLCAwLjAwMDMsIDAuMDAwMjk5LCAwLjAwMDI5OCwgMC4wMDAyOTgsIDAuMDAwMjk4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkciOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX2ZhbGxpbmc7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDA2MjUsIDAuMDA1LCAwLjAxMTI1LCAwLjAxNzUsIDAuMDIzNzUsIDAuMDI3NSwgMC4wMyIsIFwKLSAgICAgICAgICAiLTAuMDExMjUsIDAsIDAuMDA2MjUsIDAuMDEyNSwgMC4wMTg3NSwgMC4wMjI1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDE3NSwgLTAuMDA2MjUsIDAsIDAuMDA2MjUsIDAuMDEyNSwgMC4wMTYyNSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLCAwLjAwNjI1LCAwLjAxLCAwLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAsIDAuMDAzNzUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDMzNzUsIC0wLjAyMjUsIC0wLjAxNjI1LCAtMC4wMSwgLTAuMDAzNzUsIDAsIDAuMDAyNSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDEyNSwgLTAuMDAyNSwgMCIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAxODc1LCAtMC4wMTM3NSwgLTAuMDA3NSwgLTAuMDA3NSwgLTAuMDA3NSwgLTAuMDAzNzUsIC0wLjAwMTI1IiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAxMjUsIC0wLjAxMjUsIC0wLjAwODc1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxODc1LCAtMC4wMTg3NSwgLTAuMDE1LCAtMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDE1LCAtMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAzMTI1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMjUsIC0wLjAyMTI1LCAtMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDQ2MjUsIC0wLjAzNSwgLTAuMDM1LCAtMC4wMjg3NSwgLTAuMDI4NzUsIC0wLjAyNSwgLTAuMDIyNSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDI3NSwgLTAuMDI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkciOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9mYWxsaW5nOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMjUsIDAuMDAxMjUsIC0wLjAwNSwgLTAuMDExMjUsIC0wLjAxMTI1LCAtMC4wMjEyNSwgLTAuMDIzNzUiLCBcCi0gICAgICAgICAgIjAuMDE3NSwgMC4wMTI1LCAwLCAtMC4wMDYyNSwgLTAuMDA2MjUsIC0wLjAxNjI1LCAtMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4wMjM3NSwgMC4wMTg3NSwgMC4wMTI1LCAwLjAwNjI1LCAwLCAtMC4wMSwgLTAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4wMywgMC4wMjUsIDAuMDEyNSwgMC4wMDYyNSwgMC4wMDYyNSwgLTAuMDAzNzUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICIwLjAzNjI1LCAwLjAyNSwgMC4wMTg3NSwgMC4wMTI1LCAwLjAwNjI1LCAwLjAwMjUsIDAiLCBcCi0gICAgICAgICAgIjAuMDQsIDAuMDM1LCAwLjAyMjUsIDAuMDIyNSwgMC4wMTYyNSwgMC4wMDYyNSwgMC4wMDM3NSIsIFwKLSAgICAgICAgICAiMC4wNDg3NSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMTg3NSwgMC4wMTUsIDAuMDA2MjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjUsIDAuMDIsIDAuMDIsIDAuMDIsIDAuMDIsIDAuMDIyNSwgMC4wMiIsIFwKLSAgICAgICAgICAiMC4wMzYyNSwgMC4wMjUsIDAuMDI1LCAwLjAyNSwgMC4wMjUsIDAuMDIxMjUsIDAuMDI1IiwgXAotICAgICAgICAgICIwLjA0MjUsIDAuMDMxMjUsIDAuMDMxMjUsIDAuMDMxMjUsIDAuMDMxMjUsIDAuMDI3NSwgMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMDQyNSwgMC4wMzc1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDMxMjUsIDAuMDMzNzUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMDQ4NzUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzc1LCAwLjAzNzUsIDAuMDMzNzUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMDUyNSwgMC4wNDc1LCAwLjA0MTI1LCAwLjA0MTI1LCAwLjA0MTI1LCAwLjAzNzUsIDAuMDQxMjUiLCBcCi0gICAgICAgICAgIjAuMDU1LCAwLjA1LCAwLjA1LCAwLjA0Mzc1LCAwLjA0Mzc1LCAwLjA0LCAwLjA0Mzc1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihHKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA3MDIxODk7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNzAyMTU1OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDcwMjE4OTsKLSAgICBjbG9jayA6IHRydWU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyMjc1LCAwLjAwMjI5LCAwLjAwMjM0OSwgMC4wMDI0NjYsIDAuMDAyNTc3LCAwLjAwMjgxMywgMC4wMDMwMTgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDM5MjQsIDAuMDAzOTMxLCAwLjAwMzk5NywgMC4wMDQxMDEsIDAuMDA0MjIzLCAwLjAwNDQ4NCwgMC4wMDQ2OTYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQiOwotICAgICAgc2RmX2NvbmQgOiAiRCA9PSAxJ2IwIjsKLSAgICAgIHJpc2VfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjEyMDM3MywgMC4xMjg0MTQsIDAuMTM2NzMxLCAwLjE0Mjg4OCwgMC4xNDc5LCAwLjE1NDY0NywgMC4xNTk2NjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFEpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4yMDI4OTI7Ci0gICAgZnVuY3Rpb24gOiAiUUlOVCI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTExMDk2LCAwLjEyMTQ3LCAwLjIxNjUxNSwgMC4zNzQxNjYsIDAuNTM0MzE2LCAwLjkwMDY1OSwgMS4xMTU4OCIsIFwKLSAgICAgICAgICAiMC4xMTcyMTksIDAuMTI3NjUzLCAwLjIyMjU4MSwgMC4zODAzMjgsIDAuNTQwNSwgMC45MDY2MDUsIDEuMTIyMDEiLCBcCi0gICAgICAgICAgIjAuMTI0MDI1LCAwLjEzNDYyNCwgMC4yMjkzNTYsIDAuMzg3MTAzLCAwLjU0NzMxMSwgMC45MTQwODMsIDEuMTI4NjgiLCBcCi0gICAgICAgICAgIjAuMTI5NTExLCAwLjEzOTkyNCwgMC4yMzQ3ODcsIDAuMzkyNTc0LCAwLjU1MjU5NCwgMC45MjI2MjcsIDEuMTMzOTkiLCBcCi0gICAgICAgICAgIjAuMTM0MTMyLCAwLjE0NDc4MSwgMC4yMzkzMjksIDAuMzk3MTk0LCAwLjU1NzE4NywgMC45MjM2NjQsIDEuMTM0MDMiLCBcCi0gICAgICAgICAgIjAuMTQwMjE1LCAwLjE1MDc2LCAwLjI0NTU0OSwgMC40MDQ2ODIsIDAuNTYzMzgyLCAwLjkzMzI1NSwgMS4xNDE3NyIsIFwKLSAgICAgICAgICAiMC4xNDQ5NDUsIDAuMTU1NTAyLCAwLjI1MDIyNiwgMC40MDgxMDIsIDAuNTY1OTExLCAwLjkzNzkwOCwgMS4xNDk0NyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTU4NDcsIDAuMTM3OTYyLCAwLjMzNzg3NiwgMC42NzA3MzEsIDEuMDA0NzQsIDEuNzgxMjQsIDIuMjI1NjciLCBcCi0gICAgICAgICAgIjAuMTE1NzIyLCAwLjEzNzgwOSwgMC4zMzc3NzcsIDAuNjcxMjEzLCAxLjAwMzk0LCAxLjc4MTExLCAyLjIyNTMxIiwgXAotICAgICAgICAgICIwLjExNjIyNiwgMC4xMzg2MzMsIDAuMzM3NjYyLCAwLjY3MTgyMSwgMS4wMDM4MywgMS43ODIwMSwgMi4yMjU0MSIsIFwKLSAgICAgICAgICAiMC4xMTYzNTMsIDAuMTM4NjIyLCAwLjMzODQzOCwgMC42NzAyMDksIDEuMDA0NjgsIDEuNzgyMjIsIDIuMjI2NjIiLCBcCi0gICAgICAgICAgIjAuMTE1ODQ2LCAwLjEzODc4LCAwLjMzODIxLCAwLjY3MjU1NCwgMS4wMDU4NiwgMS43ODE2NiwgMi4yMjIyNSIsIFwKLSAgICAgICAgICAiMC4xMTYwMTcsIDAuMTM3OTk0LCAwLjMzNzg3OSwgMC42NzI2MywgMS4wMDU3NywgMS43ODQ0OSwgMi4yMjgwMyIsIFwKLSAgICAgICAgICAiMC4xMTYwNzgsIDAuMTM4MzEsIDAuMzM3NDYyLCAwLjY3MjU2NSwgMS4wMDQ1OSwgMS43ODQ2OSwgMi4yMjkwNCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDg2NTcsIDAuMTE4Mjc4LCAwLjIwNTM2NSwgMC4zNTAxMzksIDAuNDk1NDI0LCAwLjgzNDQxLCAxLjAyNTYiLCBcCi0gICAgICAgICAgIjAuMTE0MjI3LCAwLjEyMzg5NSwgMC4yMTA3NzgsIDAuMzU2MTUsIDAuNTAxMDczLCAwLjgzOTIxNCwgMS4wMzI0NSIsIFwKLSAgICAgICAgICAiMC4xMjAzODYsIDAuMTMwMDE4LCAwLjIxNzA3NywgMC4zNjE3MzcsIDAuNTA3MjgyLCAwLjg0MzkwNCwgMS4wMzc2NCIsIFwKLSAgICAgICAgICAiMC4xMjU0MzcsIDAuMTM1MDYzLCAwLjIyMTg4NCwgMC4zNjcwMTMsIDAuNTEyNDI2LCAwLjg1MDAwMiwgMS4wNDIzMiIsIFwKLSAgICAgICAgICAiMC4xMjk1MzQsIDAuMTM5MTExLCAwLjIyNjEyLCAwLjM3MDc2NiwgMC41MTYxMjUsIDAuODUzMzIxLCAxLjA0NjI5IiwgXAotICAgICAgICAgICIwLjEzNDk1LCAwLjE0NDYsIDAuMjMxNTk1LCAwLjM3NjMzOSwgMC41MjE4NCwgMC44NTkxNzMsIDEuMDUyNTIiLCBcCi0gICAgICAgICAgIjAuMTM5MDk3LCAwLjE0ODc1NCwgMC4yMzU2MDIsIDAuMzgwNTM3LCAwLjUyNTc3LCAwLjg2NDIxMiwgMS4wNTYzOCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDM3MzQsIDAuMTIzNTc1LCAwLjMwMjU0OSwgMC42MDExMzYsIDAuOTAwNTYxLCAxLjU5NzczLCAxLjk5NTE0IiwgXAotICAgICAgICAgICIwLjEwMzYyOSwgMC4xMjM1NzEsIDAuMzAyMTA2LCAwLjYwMTYxNCwgMC45MDA1NTMsIDEuNTkxNTEsIDEuOTg5MDgiLCBcCi0gICAgICAgICAgIjAuMTAzNzA4LCAwLjEyMzQ3NiwgMC4zMDI5NDYsIDAuNjAxNTUyLCAwLjkwMDM0OSwgMS41ODcxNSwgMS45OTY4IiwgXAotICAgICAgICAgICIwLjEwMzgyMywgMC4xMjM1NTYsIDAuMzAxNTY1LCAwLjYwMTYzOSwgMC44OTUzMTgsIDEuNTk2OTgsIDEuOTg5NjEiLCBcCi0gICAgICAgICAgIjAuMTAzNzI1LCAwLjEyMzQwMSwgMC4zMDI3MzIsIDAuNjAxMjk1LCAwLjkwMDI1OCwgMS41OTksIDEuOTk2MjIiLCBcCi0gICAgICAgICAgIjAuMTAzNiwgMC4xMjMyNDcsIDAuMzAyNTM4LCAwLjYwMTc5NCwgMC45MDAwMDUsIDEuNTk1ODQsIDEuOTkiLCBcCi0gICAgICAgICAgIjAuMTAzOCwgMC4xMjM1NDUsIDAuMzAxMTY4LCAwLjYwMTI0MSwgMC44OTk1OTksIDEuNTk3MjksIDEuOTk0MDciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBub25fdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJpc2luZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMzMzNDgsIDAuMTQzOTQ3LCAwLjIzODc2OCwgMC4zOTgwNzgsIDAuNTU2NzI1LCAwLjkyNjYzMSwgMS4xMzgwOSIsIFwKLSAgICAgICAgICAiMC4xNDE0NjgsIDAuMTUyMDA3LCAwLjI0NjY2MywgMC40MDYzMTcsIDAuNTY0ODg4LCAwLjkzMTAyNCwgMS4xNDYzMSIsIFwKLSAgICAgICAgICAiMC4xNDk1NjcsIDAuMTYwMTcxLCAwLjI1NDkzMywgMC40MTI5NDgsIDAuNTcyOTA1LCAwLjkzOTY0MywgMS4xNTQzOCIsIFwKLSAgICAgICAgICAiMC4xNTUyMDIsIDAuMTY1NzksIDAuMjYxNDA1LCAwLjQxODQ2NywgMC41Nzg2NzIsIDAuOTQ4NTg5LCAxLjE2MDA2IiwgXAotICAgICAgICAgICIwLjE1OTkyNCwgMC4xNzAzMDksIDAuMjY1MzAxLCAwLjQyMzAwNiwgMC41ODMyOSwgMC45NTMyMTUsIDEuMTY0NjEiLCBcCi0gICAgICAgICAgIjAuMTY2MjM3LCAwLjE3NjcwMiwgMC4yNzE1MjIsIDAuNDI5MzA5LCAwLjU4OTU4OCwgMC45NTU3NjMsIDEuMTcxMDIiLCBcCi0gICAgICAgICAgIjAuMTcwNjY3LCAwLjE4MTE3NCwgMC4yNzY1OTcsIDAuNDM1NTY0LCAwLjU5MjY1NywgMC45NjM5NDgsIDEuMTcwNjkiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTE2MzU1LCAwLjEzODg1NiwgMC4zMzc4MzksIDAuNjcxMDUxLCAxLjAwNDQyLCAxLjc4MjgsIDIuMjI3MTUiLCBcCi0gICAgICAgICAgIjAuMTE2MzE2LCAwLjEzODQ2NCwgMC4zMzg0NjYsIDAuNjcxNzA3LCAxLjAwMzg2LCAxLjc3OTU0LCAyLjIyNTE5IiwgXAotICAgICAgICAgICIwLjExNjI3MiwgMC4xMzgzMiwgMC4zMzc3NjUsIDAuNjcxNzA0LCAxLjAwNDAzLCAxLjc3ODg2LCAyLjIyNTg0IiwgXAotICAgICAgICAgICIwLjExNjQyNiwgMC4xMzg3MDIsIDAuMzM3ODQ4LCAwLjY3MDk1LCAxLjAwNDYzLCAxLjc4MzEzLCAyLjIyNzU1IiwgXAotICAgICAgICAgICIwLjExNjM0MiwgMC4xMzc4MDUsIDAuMzM3ODYzLCAwLjY3MjU3OSwgMS4wMDQ1OCwgMS43ODMwNiwgMi4yMjc2NCIsIFwKLSAgICAgICAgICAiMC4xMTY1OTQsIDAuMTM4MzA0LCAwLjMzODQ4NSwgMC42NzE2NTQsIDEuMDA0NjEsIDEuNzgxMSwgMi4yMjc1MyIsIFwKLSAgICAgICAgICAiMC4xMTY0MzIsIDAuMTM4NDUyLCAwLjMzOTA4NSwgMC42NzA5MjQsIDEuMDAzNjQsIDEuNzgzNDUsIDIuMjI3MTIiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTIwMzczLCAwLjEyOTkzNiwgMC4yMTY4MDcsIDAuMzYxOTcsIDAuNTA3MTQ3LCAwLjg0NTE2MSwgMS4wMzczMyIsIFwKLSAgICAgICAgICAiMC4xMjg0MTQsIDAuMTM4MDU3LCAwLjIyNDk2OSwgMC4zNzAyMTcsIDAuNTE1MjE0LCAwLjg1NDEzMiwgMS4wNDU2MiIsIFwKLSAgICAgICAgICAiMC4xMzY3MzEsIDAuMTQ2MzY3LCAwLjIzMzE3NywgMC4zNzg1NTMsIDAuNTIzMzI2LCAwLjg2MTQ0OSwgMS4wNTQ3NiIsIFwKLSAgICAgICAgICAiMC4xNDI4ODgsIDAuMTUyNDY3LCAwLjIzOTMyMiwgMC4zODQ3MjQsIDAuNTI5Nzk1LCAwLjg2NzQyMSwgMS4wNjA3OCIsIFwKLSAgICAgICAgICAiMC4xNDc5LCAwLjE1NzU0MiwgMC4yNDQzNDcsIDAuMzg5NzAyLCAwLjUzNDQ5MiwgMC44NzI2MjcsIDEuMDY1ODkiLCBcCi0gICAgICAgICAgIjAuMTU0NjQ3LCAwLjE2NDI3LCAwLjI1MTIwMywgMC4zOTYyNDUsIDAuNTQxNjU1LCAwLjg4MDQxOCwgMS4wNzMwMyIsIFwKLSAgICAgICAgICAiMC4xNTk2NjUsIDAuMTY5MjcsIDAuMjU2MjcyLCAwLjQwMTM0NywgMC41NDYyNTQsIDAuODg1MzczLCAxLjA3NzA4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwMzgwNCwgMC4xMjMyNjQsIDAuMzAyNTEyLCAwLjYwMTYyNiwgMC45MDA1NzUsIDEuNTg3MzUsIDEuOTg2NzkiLCBcCi0gICAgICAgICAgIjAuMTAzODQsIDAuMTIzNTg4LCAwLjMwMjg3NywgMC42MDE1OTksIDAuOTAwNTUzLCAxLjU5NjA3LCAxLjk4NDI0IiwgXAotICAgICAgICAgICIwLjEwMzcyNCwgMC4xMjM1OSwgMC4zMDI4MzQsIDAuNjAxNDg3LCAwLjkwMDYxMywgMS41OTU1OCwgMS45OTM2MiIsIFwKLSAgICAgICAgICAiMC4xMDM3MjQsIDAuMTIzNTMyLCAwLjMwMjg5LCAwLjYwMDk4OCwgMC45MDA0NjUsIDEuNTk2NDEsIDEuOTk2MTQiLCBcCi0gICAgICAgICAgIjAuMTAzODI4LCAwLjEyMzU2LCAwLjMwMjY2OCwgMC42MDE1NTQsIDAuOTAwNjUyLCAxLjU5ODI0LCAxLjk5Njg3IiwgXAotICAgICAgICAgICIwLjEwMzY4OCwgMC4xMjM0OTgsIDAuMzAyOTYxLCAwLjU5OTUxOCwgMC45MDA0OTcsIDEuNTg5MDEsIDEuOTk2OTIiLCBcCi0gICAgICAgICAgIjAuMTAzNTkxLCAwLjEyMzQzNywgMC4zMDI2MDUsIDAuNjAxNzE0LCAwLjkwMDQ3NCwgMS41OTU2NCwgMS45ODcyNSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkQiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjY5NywgMC4wMDI2OTgsIDAuMDAyNzAyLCAwLjAwMjcwNCwgMC4wMDI3MDQsIDAuMDAyNzAzLCAwLjAwMjcwNCIsIFwKLSAgICAgICAgICAiMC4wMDI2OCwgMC4wMDI2ODIsIDAuMDAyNjg2LCAwLjAwMjY4NywgMC4wMDI2ODgsIDAuMDAyNjg4LCAwLjAwMjY5IiwgXAotICAgICAgICAgICIwLjAwMjY4OCwgMC4wMDI2ODksIDAuMDAyNjkzLCAwLjAwMjY5NSwgMC4wMDI2OTYsIDAuMDAyNjk1LCAwLjAwMjY5NiIsIFwKLSAgICAgICAgICAiMC4wMDI3MiwgMC4wMDI3MiwgMC4wMDI3MjQsIDAuMDAyNzI2LCAwLjAwMjcyNiwgMC4wMDI3MjYsIDAuMDAyNzI3IiwgXAotICAgICAgICAgICIwLjAwMjc0NCwgMC4wMDI3NDYsIDAuMDAyNzUsIDAuMDAyNzUyLCAwLjAwMjc1MywgMC4wMDI3NTMsIDAuMDAyNzUzIiwgXAotICAgICAgICAgICIwLjAwMjgxNCwgMC4wMDI4MTUsIDAuMDAyODIsIDAuMDAyODIsIDAuMDAyODIyLCAwLjAwMjgyMywgMC4wMDI4MjMiLCBcCi0gICAgICAgICAgIjAuMDAyODg0LCAwLjAwMjg4NywgMC4wMDI4OTEsIDAuMDAyODkxLCAwLjAwMjg5NCwgMC4wMDI4OTEsIDAuMDAyODkyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzMTI2LCAwLjAwMzEyOCwgMC4wMDMxMzEsIDAuMDAzMTMyLCAwLjAwMzEzMywgMC4wMDMxMzMsIDAuMDAzMTMzIiwgXAotICAgICAgICAgICIwLjAwMzExNiwgMC4wMDMxMTcsIDAuMDAzMTIsIDAuMDAzMTIxLCAwLjAwMzEyNCwgMC4wMDMxMjIsIDAuMDAzMTIyIiwgXAotICAgICAgICAgICIwLjAwMzEyNSwgMC4wMDMxMjYsIDAuMDAzMTI5LCAwLjAwMzEzMSwgMC4wMDMxMzEsIDAuMDAzMTMyLCAwLjAwMzEzMiIsIFwKLSAgICAgICAgICAiMC4wMDMxNTIsIDAuMDAzMTUzLCAwLjAwMzE1NiwgMC4wMDMxNTgsIDAuMDAzMTU4LCAwLjAwMzE2MSwgMC4wMDMxNTkiLCBcCi0gICAgICAgICAgIjAuMDAzMTgzLCAwLjAwMzE4NCwgMC4wMDMxODcsIDAuMDAzMTg4LCAwLjAwMzE4OSwgMC4wMDMxOSwgMC4wMDMxODkiLCBcCi0gICAgICAgICAgIjAuMDAzMjQ1LCAwLjAwMzI0OCwgMC4wMDMyNTIsIDAuMDAzMjUxLCAwLjAwMzI1MywgMC4wMDMyNTQsIDAuMDAzMjU0IiwgXAotICAgICAgICAgICIwLjAwMzMzMiwgMC4wMDMzMzEsIDAuMDAzMzM3LCAwLjAwMzMzNiwgMC4wMDMzMzcsIDAuMDAzMzM5LCAwLjAwMzMzOSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkciOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzc2NCwgMC4wMDM3NjUsIDAuMDAzNzcsIDAuMDAzNzcyLCAwLjAwMzc3MiwgMC4wMDM3NzMsIDAuMDAzNzcyIiwgXAotICAgICAgICAgICIwLjAwMzc2MywgMC4wMDM3NjQsIDAuMDAzNzY4LCAwLjAwMzc3MSwgMC4wMDM3NzEsIDAuMDAzNzcyLCAwLjAwMzc3MiIsIFwKLSAgICAgICAgICAiMC4wMDM4MDIsIDAuMDAzODAzLCAwLjAwMzgwOCwgMC4wMDM4MDksIDAuMDAzODEsIDAuMDAzODExLCAwLjAwMzgxIiwgXAotICAgICAgICAgICIwLjAwMzg2MiwgMC4wMDM4NjMsIDAuMDAzODY3LCAwLjAwMzg2OSwgMC4wMDM4NjksIDAuMDAzODY5LCAwLjAwMzg3IiwgXAotICAgICAgICAgICIwLjAwMzkyLCAwLjAwMzkyMSwgMC4wMDM5MjUsIDAuMDAzOTI2LCAwLjAwMzkyNiwgMC4wMDM5MjYsIDAuMDAzOTI2IiwgXAotICAgICAgICAgICIwLjAwNDAyNSwgMC4wMDQwMjEsIDAuMDA0MDIzLCAwLjAwNDAyNCwgMC4wMDQwMywgMC4wMDQwMjQsIDAuMDA0MDI0IiwgXAotICAgICAgICAgICIwLjAwNDExOCwgMC4wMDQxMjYsIDAuMDA0MTI4LCAwLjAwNDEyOSwgMC4wMDQxMjksIDAuMDA0MTI4LCAwLjAwNDEyOCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzc5NiwgMC4wMDM3OTQsIDAuMDAzNzgyLCAwLjAwMzc3NCwgMC4wMDM3NzEsIDAuMDAzNzY4LCAwLjAwMzc2NyIsIFwKLSAgICAgICAgICAiMC4wMDM4MDQsIDAuMDAzODAyLCAwLjAwMzc4OSwgMC4wMDM3ODEsIDAuMDAzNzc3LCAwLjAwMzc3NCwgMC4wMDM3NzQiLCBcCi0gICAgICAgICAgIjAuMDAzODM1LCAwLjAwMzgzMywgMC4wMDM4MiwgMC4wMDM4MTIsIDAuMDAzODA4LCAwLjAwMzgwNiwgMC4wMDM4MDQiLCBcCi0gICAgICAgICAgIjAuMDAzOSwgMC4wMDM4OTgsIDAuMDAzODg1LCAwLjAwMzg3NiwgMC4wMDM4NzMsIDAuMDAzODY5LCAwLjAwMzg2NyIsIFwKLSAgICAgICAgICAiMC4wMDM5NTYsIDAuMDAzOTU0LCAwLjAwMzk0MiwgMC4wMDM5MzIsIDAuMDAzOTI4LCAwLjAwMzkyNCwgMC4wMDM5MjQiLCBcCi0gICAgICAgICAgIjAuMDA0MDYyLCAwLjAwNDA2MiwgMC4wMDQwNDgsIDAuMDA0MDM5LCAwLjAwNDAzNSwgMC4wMDQwMjksIDAuMDA0MDI4IiwgXAotICAgICAgICAgICIwLjAwNDE3MiwgMC4wMDQxNjUsIDAuMDA0MTU4LCAwLjAwNDE0NywgMC4wMDQxMzcsIDAuMDA0MTM3LCAwLjAwNDEzNiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUU4pICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4xOTkxNTI7Ci0gICAgZnVuY3Rpb24gOiAiTjAiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkQiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwNjI0OCwgMC4xMTY3NzQsIDAuMjExNTc1LCAwLjM2OTM5NCwgMC41MjcyMzEsIDAuODk1Njc3LCAxLjEwNTkyIiwgXAotICAgICAgICAgICIwLjExMTkzNSwgMC4xMjI0NjQsIDAuMjE3MjI0LCAwLjM3NTExLCAwLjUzMjkxMSwgMC45MDEyMywgMS4xMTE2OCIsIFwKLSAgICAgICAgICAiMC4xMTgwNzgsIDAuMTI4NjE4LCAwLjIyMzM1NywgMC4zODEwNzMsIDAuNTM5MDc1LCAwLjkwNjk4MSwgMS4xMTc0NSIsIFwKLSAgICAgICAgICAiMC4xMjMxMDIsIDAuMTMzNjI5LCAwLjIyODM3OSwgMC4zODYxOTksIDAuNTQ0MTQ5LCAwLjkxMjM3LCAxLjEyMjc3IiwgXAotICAgICAgICAgICIwLjEyNzIyNywgMC4xMzc3NzYsIDAuMjMyNDg2LCAwLjM5MDMzNywgMC41NDgxNTUsIDAuOTE2NDIyLCAxLjEyNjg4IiwgXAotICAgICAgICAgICIwLjEzMjc1OSwgMC4xNDMzMDMsIDAuMjM4MDE5LCAwLjM5NTg1NywgMC41NTM3NTQsIDAuOTIxOTI0LCAxLjEzMjQ0IiwgXAotICAgICAgICAgICIwLjEzNjkzNSwgMC4xNDc0NTEsIDAuMjQyMTU1LCAwLjQwMDAxMywgMC41NTc4NTksIDAuOTI2MTU3LCAxLjEzNjUxIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExNzY1OSwgMC4xMzk2NDksIDAuMzM4MjUzLCAwLjY2OTg2NCwgMS4wMDM3NCwgMS43NzcyNiwgMi4yMTg3MiIsIFwKLSAgICAgICAgICAiMC4xMTc2MTgsIDAuMTM5NTExLCAwLjMzODA1NiwgMC42NzAyNywgMS4wMDM3NCwgMS43NzYyOCwgMi4yMTkxNyIsIFwKLSAgICAgICAgICAiMC4xMTc2MTUsIDAuMTM5NTA5LCAwLjMzODc4MSwgMC42Njk3MzEsIDEuMDAzNywgMS43NzYwMSwgMi4yMTgwNyIsIFwKLSAgICAgICAgICAiMC4xMTc3NTgsIDAuMTM5Njk5LCAwLjMzODE4NiwgMC42NzExNzksIDEuMDAyMSwgMS43Nzc3MiwgMi4yMTk4MSIsIFwKLSAgICAgICAgICAiMC4xMTc3LCAwLjEzOTUwOCwgMC4zMzg3LCAwLjY3MDQ2NiwgMS4wMDM1OCwgMS43NzgxNiwgMi4yMjA3MiIsIFwKLSAgICAgICAgICAiMC4xMTc2MjYsIDAuMTM5NTYsIDAuMzM4NjQ2LCAwLjY3MDYxOCwgMS4wMDM2NCwgMS43NzgwNywgMi4yMjAzMSIsIFwKLSAgICAgICAgICAiMC4xMTc3ODgsIDAuMTM5NTMxLCAwLjMzODEyNywgMC42NzA1NTEsIDEuMDAzNDUsIDEuNzc5MzQsIDIuMjIxMDYiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTAxMTgsIDAuMTEwODI3LCAwLjE5NzcwNiwgMC4zNDI1MjEsIDAuNDg3MjExLCAwLjgyNDg3NiwgMS4wMTc4MyIsIFwKLSAgICAgICAgICAiMC4xMDczNTksIDAuMTE3MDE2LCAwLjIwMzg4NywgMC4zNDg2OTEsIDAuNDkzMzY2LCAwLjgzMTE0NywgMS4wMjQwMSIsIFwKLSAgICAgICAgICAiMC4xMTQxNDgsIDAuMTIzODA0LCAwLjIxMDY4MSwgMC4zNTU0OTksIDAuNTAwMTQ1LCAwLjgzNzgxMiwgMS4wMzA4NCIsIFwKLSAgICAgICAgICAiMC4xMTk2NjgsIDAuMTI5MzI1LCAwLjIxNjE5NywgMC4zNjA5OTUsIDAuNTA1Njk1LCAwLjg0MzQwNSwgMS4wMzYzNyIsIFwKLSAgICAgICAgICAiMC4xMjQzMDcsIDAuMTMzOTczLCAwLjIyMDg2MiwgMC4zNjU1NzUsIDAuNTEwMzAxLCAwLjg0ODAwOCwgMS4wNDEwOSIsIFwKLSAgICAgICAgICAiMC4xMzA1NDQsIDAuMTQwMTk5LCAwLjIyNzA3MSwgMC4zNzE3OTMsIDAuNTE2NDk5LCAwLjg1NDEzOSwgMS4wNDcxMSIsIFwKLSAgICAgICAgICAiMC4xMzUyODUsIDAuMTQ0OTQ1LCAwLjIzMTc4MiwgMC4zNzY1MjYsIDAuNTIxMjk1LCAwLjg1ODkyNSwgMS4wNTE4NiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDU2MjMsIDAuMTI0OTM1LCAwLjMwMjk5MywgMC41OTkxNDIsIDAuODk4MzU4LCAxLjU4OTc2LCAxLjk4OTU2IiwgXAotICAgICAgICAgICIwLjEwNTUwNywgMC4xMjQ5NDQsIDAuMzAyNjQzLCAwLjU5OTE5OSwgMC44OTgyNjksIDEuNTg5MjIsIDEuOTg5NTUiLCBcCi0gICAgICAgICAgIjAuMTA1NjI3LCAwLjEyNTI5NSwgMC4zMDI2NDIsIDAuNTk5MzY3LCAwLjg5ODIzNSwgMS41OTA1NywgMS45ODk2OSIsIFwKLSAgICAgICAgICAiMC4xMDU2NjMsIDAuMTI1MTc1LCAwLjMwMjY4LCAwLjU5OTQxMywgMC44OTgzNiwgMS41OTI5MSwgMS45ODk3NiIsIFwKLSAgICAgICAgICAiMC4xMDU3MDMsIDAuMTI1MzA5LCAwLjMwMjQxLCAwLjU5OTg2MiwgMC44OTgyMTUsIDEuNTg5ODYsIDEuOTg1MzkiLCBcCi0gICAgICAgICAgIjAuMTA1NjA4LCAwLjEyNTE2OSwgMC4zMDI0NTQsIDAuNjAwNTQxLCAwLjg5NzkyNiwgMS41OTIwOCwgMS45ODgxNyIsIFwKLSAgICAgICAgICAiMC4xMDU2NDgsIDAuMTI1MTI0LCAwLjMwMjYwNiwgMC41OTk3ODIsIDAuODk2NDUyLCAxLjU5MjUyLCAxLjk4OTI2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkciOwotICAgICAgdGltaW5nX3NlbnNlIDogbm9uX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiByaXNpbmdfZWRnZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTE3ODIxLCAwLjEyODMxLCAwLjIyMjg3OSwgMC4zODA2MDMsIDAuNTM4NDQzLCAwLjkwNjcwMiwgMS4xMTcwOCIsIFwKLSAgICAgICAgICAiMC4xMjU4OCwgMC4xMzYzNzIsIDAuMjMwOTA4LCAwLjM4ODcyMSwgMC41NDY1LCAwLjkxNDg4NywgMS4xMjUxNSIsIFwKLSAgICAgICAgICAiMC4xMzQyMDYsIDAuMTQ0NjkzLCAwLjIzOTI2OSwgMC4zOTcwNDcsIDAuNTU0NzU4LCAwLjkyMzA2MywgMS4xMzM1MSIsIFwKLSAgICAgICAgICAiMC4xNDAzNDksIDAuMTUwODQsIDAuMjQ1NDE3LCAwLjQwMzE5OSwgMC41NjA5OTEsIDAuOTI5MTg2LCAxLjEzOTYzIiwgXAotICAgICAgICAgICIwLjE0NTM4NCwgMC4xNTU4NzcsIDAuMjUwNDUxLCAwLjQwODIxMywgMC41NjU5MjQsIDAuOTM0MjIsIDEuMTQ0NjYiLCBcCi0gICAgICAgICAgIjAuMTUyMjE0LCAwLjE2MjY5MiwgMC4yNTcyNzQsIDAuNDE1MDE4LCAwLjU3MjgzMiwgMC45NDExNjQsIDEuMTUxNCIsIFwKLSAgICAgICAgICAiMC4xNTcyMTQsIDAuMTY3Njk5LCAwLjI2MjIzOSwgMC40MTk5NjgsIDAuNTc3NzA5LCAwLjk0NjEzMiwgMS4xNTY0MSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTc3NjIsIDAuMTM5NjA2LCAwLjMzODI1NiwgMC42NzEyMDcsIDEuMDAzNzgsIDEuNzc2NzksIDIuMjE5ODgiLCBcCi0gICAgICAgICAgIjAuMTE3NzcyLCAwLjEzOTcxNCwgMC4zMzg3NjYsIDAuNjcwMjY3LCAxLjAwMzc4LCAxLjc3NjU4LCAyLjIyMDA0IiwgXAotICAgICAgICAgICIwLjExNzcwNCwgMC4xMzk2NzksIDAuMzM4MjUxLCAwLjY3MDI5LCAxLjAwMzczLCAxLjc3NjYsIDIuMjE5MjQiLCBcCi0gICAgICAgICAgIjAuMTE3NzAyLCAwLjEzOTYyNSwgMC4zMzgzMDQsIDAuNjcwMzI3LCAxLjAwMzgxLCAxLjc3NzgsIDIuMjIwNTQiLCBcCi0gICAgICAgICAgIjAuMTE3NzcsIDAuMTM5NzE4LCAwLjMzODI2NCwgMC42NzAyNzYsIDEuMDAzNzQsIDEuNzc3NSwgMi4yMjA0MiIsIFwKLSAgICAgICAgICAiMC4xMTc2NDYsIDAuMTM5NTY3LCAwLjMzODQxLCAwLjY3MDA3MiwgMS4wMDIzMywgMS43NzY4MSwgMi4yMjI5NSIsIFwKLSAgICAgICAgICAiMC4xMTc2MTQsIDAuMTM5NDk3LCAwLjMzODY3MSwgMC42NzEyMjEsIDEuMDAzNjUsIDEuNzc3MzcsIDIuMjIwMTUiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTIzNDUzLCAwLjEzMzExMywgMC4yMTk5ODIsIDAuMzY0NzYzLCAwLjUwOTQ0NiwgMC44NDcxNTksIDEuMDQwMTUiLCBcCi0gICAgICAgICAgIjAuMTMxNjMzLCAwLjE0MTI5MiwgMC4yMjgxODcsIDAuMzcyOTE1LCAwLjUxNzYzNSwgMC44NTUzNjksIDEuMDQ4MzIiLCBcCi0gICAgICAgICAgIjAuMTM5NjUzLCAwLjE0OTMwOSwgMC4yMzYxODUsIDAuMzgwOTQyLCAwLjUyNTY1NCwgMC44NjMzMjgsIDEuMDU2MzIiLCBcCi0gICAgICAgICAgIjAuMTQ1MzkxLCAwLjE1NTA0OCwgMC4yNDE5MTUsIDAuMzg2NzAyLCAwLjUzMTM3NiwgMC44NjkwODgsIDEuMDYyMDciLCBcCi0gICAgICAgICAgIjAuMTUwMDc4LCAwLjE1OTczNSwgMC4yNDY1OTksIDAuMzkxMzYzLCAwLjUzNjA1MSwgMC44NzM3NTYsIDEuMDY2NzgiLCBcCi0gICAgICAgICAgIjAuMTU2MzI0LCAwLjE2NTk5MywgMC4yNTI4NTIsIDAuMzk3NjQyLCAwLjU0MjI4MiwgMC44ODAwNDQsIDEuMDcyOTYiLCBcCi0gICAgICAgICAgIjAuMTYwODM2LCAwLjE3MDQ5OCwgMC4yNTczNDUsIDAuNDAyMSwgMC41NDY4MDYsIDAuODg0NTMsIDEuMDc3NjQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTA1NjMsIDAuMTI1MzIzLCAwLjMwMjk5OSwgMC42MDA3MSwgMC44OTgyMDgsIDEuNTkyNzMsIDEuOTg5NjgiLCBcCi0gICAgICAgICAgIjAuMTA1NTkyLCAwLjEyNTA5OCwgMC4zMDI0MjYsIDAuNjAwNjQ3LCAwLjg5ODIyOSwgMS41ODk5LCAxLjk4OTYzIiwgXAotICAgICAgICAgICIwLjEwNTYyOSwgMC4xMjUyNzksIDAuMzAyNjI1LCAwLjU5OTgsIDAuODk4MjQxLCAxLjU4NzY4LCAxLjk4OTU5IiwgXAotICAgICAgICAgICIwLjEwNTUwNSwgMC4xMjUyMTYsIDAuMzAzMDc2LCAwLjU5OTU2MSwgMC44OTgyMjEsIDEuNTkyNzQsIDEuOTg5NjUiLCBcCi0gICAgICAgICAgIjAuMTA1NjI2LCAwLjEyNSwgMC4zMDI2MDgsIDAuNTk5ODY5LCAwLjg5ODIxNSwgMS41OTI3MiwgMS45ODk3NiIsIFwKLSAgICAgICAgICAiMC4xMDU3NjQsIDAuMTI1MTIyLCAwLjMwMjY0MSwgMC41OTkyNDMsIDAuODk4MjA0LCAxLjU4OTg3LCAxLjk4OTU1IiwgXAotICAgICAgICAgICIwLjEwNTUxNCwgMC4xMjUwNDUsIDAuMzAyOTU0LCAwLjYwMDY2MSwgMC44OTc5NTUsIDEuNTkyNzksIDEuOTg1MyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkQiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzEyNiwgMC4wMDMxMjgsIDAuMDAzMTMxLCAwLjAwMzEzMiwgMC4wMDMxMzMsIDAuMDAzMTMzLCAwLjAwMzEzMyIsIFwKLSAgICAgICAgICAiMC4wMDMxMTYsIDAuMDAzMTE3LCAwLjAwMzEyLCAwLjAwMzEyMSwgMC4wMDMxMjQsIDAuMDAzMTIyLCAwLjAwMzEyMiIsIFwKLSAgICAgICAgICAiMC4wMDMxMjUsIDAuMDAzMTI2LCAwLjAwMzEyOSwgMC4wMDMxMzEsIDAuMDAzMTMxLCAwLjAwMzEzMiwgMC4wMDMxMzIiLCBcCi0gICAgICAgICAgIjAuMDAzMTUyLCAwLjAwMzE1MywgMC4wMDMxNTYsIDAuMDAzMTU4LCAwLjAwMzE1OCwgMC4wMDMxNjEsIDAuMDAzMTU5IiwgXAotICAgICAgICAgICIwLjAwMzE4MywgMC4wMDMxODQsIDAuMDAzMTg3LCAwLjAwMzE4OCwgMC4wMDMxODksIDAuMDAzMTksIDAuMDAzMTg5IiwgXAotICAgICAgICAgICIwLjAwMzI0NSwgMC4wMDMyNDgsIDAuMDAzMjUyLCAwLjAwMzI1MSwgMC4wMDMyNTMsIDAuMDAzMjU0LCAwLjAwMzI1NCIsIFwKLSAgICAgICAgICAiMC4wMDMzMzIsIDAuMDAzMzMxLCAwLjAwMzMzNywgMC4wMDMzMzYsIDAuMDAzMzM3LCAwLjAwMzMzOSwgMC4wMDMzMzkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI2OTcsIDAuMDAyNjk4LCAwLjAwMjcwMiwgMC4wMDI3MDQsIDAuMDAyNzA0LCAwLjAwMjcwMywgMC4wMDI3MDQiLCBcCi0gICAgICAgICAgIjAuMDAyNjgsIDAuMDAyNjgyLCAwLjAwMjY4NiwgMC4wMDI2ODcsIDAuMDAyNjg4LCAwLjAwMjY4OCwgMC4wMDI2OSIsIFwKLSAgICAgICAgICAiMC4wMDI2ODgsIDAuMDAyNjg5LCAwLjAwMjY5MywgMC4wMDI2OTUsIDAuMDAyNjk2LCAwLjAwMjY5NSwgMC4wMDI2OTYiLCBcCi0gICAgICAgICAgIjAuMDAyNzIsIDAuMDAyNzIsIDAuMDAyNzI0LCAwLjAwMjcyNiwgMC4wMDI3MjYsIDAuMDAyNzI2LCAwLjAwMjcyNyIsIFwKLSAgICAgICAgICAiMC4wMDI3NDQsIDAuMDAyNzQ2LCAwLjAwMjc1LCAwLjAwMjc1MiwgMC4wMDI3NTMsIDAuMDAyNzUzLCAwLjAwMjc1MyIsIFwKLSAgICAgICAgICAiMC4wMDI4MTQsIDAuMDAyODE1LCAwLjAwMjgyLCAwLjAwMjgyLCAwLjAwMjgyMiwgMC4wMDI4MjMsIDAuMDAyODIzIiwgXAotICAgICAgICAgICIwLjAwMjg4NCwgMC4wMDI4ODcsIDAuMDAyODkxLCAwLjAwMjg5MSwgMC4wMDI4OTQsIDAuMDAyODkxLCAwLjAwMjg5MiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkciOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzc5NiwgMC4wMDM3OTQsIDAuMDAzNzgyLCAwLjAwMzc3NCwgMC4wMDM3NzEsIDAuMDAzNzY4LCAwLjAwMzc2NyIsIFwKLSAgICAgICAgICAiMC4wMDM4MDQsIDAuMDAzODAyLCAwLjAwMzc4OSwgMC4wMDM3ODEsIDAuMDAzNzc3LCAwLjAwMzc3NCwgMC4wMDM3NzQiLCBcCi0gICAgICAgICAgIjAuMDAzODM1LCAwLjAwMzgzMywgMC4wMDM4MiwgMC4wMDM4MTIsIDAuMDAzODA4LCAwLjAwMzgwNiwgMC4wMDM4MDQiLCBcCi0gICAgICAgICAgIjAuMDAzOSwgMC4wMDM4OTgsIDAuMDAzODg1LCAwLjAwMzg3NiwgMC4wMDM4NzMsIDAuMDAzODY5LCAwLjAwMzg2NyIsIFwKLSAgICAgICAgICAiMC4wMDM5NTYsIDAuMDAzOTU0LCAwLjAwMzk0MiwgMC4wMDM5MzIsIDAuMDAzOTI4LCAwLjAwMzkyNCwgMC4wMDM5MjQiLCBcCi0gICAgICAgICAgIjAuMDA0MDYyLCAwLjAwNDA2MiwgMC4wMDQwNDgsIDAuMDA0MDM5LCAwLjAwNDAzNSwgMC4wMDQwMjksIDAuMDA0MDI4IiwgXAotICAgICAgICAgICIwLjAwNDE3MiwgMC4wMDQxNjUsIDAuMDA0MTU4LCAwLjAwNDE0NywgMC4wMDQxMzcsIDAuMDA0MTM3LCAwLjAwNDEzNiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzc2NCwgMC4wMDM3NjUsIDAuMDAzNzcsIDAuMDAzNzcyLCAwLjAwMzc3MiwgMC4wMDM3NzMsIDAuMDAzNzcyIiwgXAotICAgICAgICAgICIwLjAwMzc2MywgMC4wMDM3NjQsIDAuMDAzNzY4LCAwLjAwMzc3MSwgMC4wMDM3NzEsIDAuMDAzNzcyLCAwLjAwMzc3MiIsIFwKLSAgICAgICAgICAiMC4wMDM4MDIsIDAuMDAzODAzLCAwLjAwMzgwOCwgMC4wMDM4MDksIDAuMDAzODEsIDAuMDAzODExLCAwLjAwMzgxIiwgXAotICAgICAgICAgICIwLjAwMzg2MiwgMC4wMDM4NjMsIDAuMDAzODY3LCAwLjAwMzg2OSwgMC4wMDM4NjksIDAuMDAzODY5LCAwLjAwMzg3IiwgXAotICAgICAgICAgICIwLjAwMzkyLCAwLjAwMzkyMSwgMC4wMDM5MjUsIDAuMDAzOTI2LCAwLjAwMzkyNiwgMC4wMDM5MjYsIDAuMDAzOTI2IiwgXAotICAgICAgICAgICIwLjAwNDAyNSwgMC4wMDQwMjEsIDAuMDA0MDIzLCAwLjAwNDAyNCwgMC4wMDQwMywgMC4wMDQwMjQsIDAuMDA0MDI0IiwgXAotICAgICAgICAgICIwLjAwNDExOCwgMC4wMDQxMjYsIDAuMDA0MTI4LCAwLjAwNDEyOSwgMC4wMDQxMjksIDAuMDA0MTI4LCAwLjAwNDEyOCIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IFhOT1IyWDEgKgotICogLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoWE5PUjJYMSkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjM5OTAxNDsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjM3ODczOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYzNzg3MzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2Mzc3Nzc7Ci0gIH0KLSAgcGluKEIpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTIxMDczOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTIxMDU4OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTIxMDczOwotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMzM2NzkxOwotICAgIGZ1bmN0aW9uIDogIighKEFeQikpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzA3MjUsIDAuMDg5NTM3LCAwLjE5NTAxNiwgMC4yODc5NzcsIDAuNDEyMzIzLCAwLjY2MDg2NywgMC44MTU0OTEiLCBcCi0gICAgICAgICAgIjAuMDc4ODY1LCAwLjA5NzY4LCAwLjIwMzE2NywgMC4yOTYyNzcsIDAuNDIwNDMxLCAwLjY2ODk3MiwgMC44MjQwOTQiLCBcCi0gICAgICAgICAgIjAuMDg4NDg4LCAwLjEwNzMwMSwgMC4yMTI3ODgsIDAuMzA1ODk2LCAwLjQzMDAyNCwgMC42Nzg0OTcsIDAuODMzNjQ4IiwgXAotICAgICAgICAgICIwLjA5NjU2MiwgMC4xMTUzODgsIDAuMjIwODUxLCAwLjMxMzk4OSwgMC40MzgxMSwgMC42ODYzNTIsIDAuODQxNTk4IiwgXAotICAgICAgICAgICIwLjEwMzM3NiwgMC4xMjIyNTgsIDAuMjI3NzM3LCAwLjMyMDg0NiwgMC40NDUwNjYsIDAuNjkzMzUsIDAuODQ4NTUiLCBcCi0gICAgICAgICAgIjAuMTEyNDMyLCAwLjEzMTQ2OCwgMC4yMzY5MjUsIDAuMzI5OTY3LCAwLjQ1NDI2NiwgMC43MDI3ODIsIDAuODU3NDgiLCBcCi0gICAgICAgICAgIjAuMTE5MTY5LCAwLjEzODI3NSwgMC4yNDM3NTQsIDAuMzM2ODUxLCAwLjQ2MDk2LCAwLjcwOTEyMSwgMC44NjQ1MDQiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc0NTgsIDAuMTEyNTA4LCAwLjMzMjYzNiwgMC41MjcxOTEsIDAuNzg4Njk5LCAxLjMxMDY4LCAxLjYzNzYyIiwgXAotICAgICAgICAgICIwLjA3NDYxNSwgMC4xMTI1MDgsIDAuMzMyNjM1LCAwLjUyNzU2NiwgMC43ODgyOTIsIDEuMzEwNzksIDEuNjM3MjkiLCBcCi0gICAgICAgICAgIjAuMDc0ODUzLCAwLjExMjY0OCwgMC4zMzI2NywgMC41Mjc1NjYsIDAuNzg4MzQsIDEuMzEwOTYsIDEuNjM3MzEiLCBcCi0gICAgICAgICAgIjAuMDc1NDU1LCAwLjExMzAxMSwgMC4zMzI3MzUsIDAuNTI3NDI4LCAwLjc4ODY3OSwgMS4zMTA4MywgMS42MzcyMiIsIFwKLSAgICAgICAgICAiMC4wNzYyNjUsIDAuMTEzNjQ4LCAwLjMzMjI2MywgMC41Mjc0NSwgMC43ODg3NjgsIDEuMzEwOTUsIDEuNjM3MzMiLCBcCi0gICAgICAgICAgIjAuMDc3NzcyLCAwLjExNDU2NCwgMC4zMzI5NTEsIDAuNTI4NjA1LCAwLjc4ODc4MSwgMS4zMTA2NywgMS42MzY0MSIsIFwKLSAgICAgICAgICAiMC4wNzg4MDcsIDAuMTE1NTg1LCAwLjMzMjg1LCAwLjUyNzc4LCAwLjc4ODk4MiwgMS4zMTA1MSwgMS42MzcyNSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzQxNjcsIDAuMDkyNzA5LCAwLjE5NTQxMiwgMC4yODU4ODksIDAuNDA2NTI5LCAwLjY0Nzk3MiwgMC43OTg4OTMiLCBcCi0gICAgICAgICAgIjAuMDgxOTg3LCAwLjEwMDUzMiwgMC4yMDMyNCwgMC4yOTM3MTYsIDAuNDE0Mzc0LCAwLjY1NTk2NywgMC44MDY2NjciLCBcCi0gICAgICAgICAgIjAuMDkxMjU2LCAwLjEwOTgwMywgMC4yMTI1MzQsIDAuMzAzMDEsIDAuNDIzNjYzLCAwLjY2NTQxNiwgMC44MTYxMDIiLCBcCi0gICAgICAgICAgIjAuMDk5MjMsIDAuMTE3NzkzLCAwLjIyMDQ5OCwgMC4zMTA5NjcsIDAuNDMxNzc1LCAwLjY3MzM5MSwgMC44MjM5MDIiLCBcCi0gICAgICAgICAgIjAuMTA1NjgzLCAwLjEyNDM2MiwgMC4yMjcwODQsIDAuMzE3NTksIDAuNDM4MjAxLCAwLjY3OTUzOSwgMC44MzA1NzkiLCBcCi0gICAgICAgICAgIjAuMTE0NDE2LCAwLjEzMzE3MywgMC4yMzU5NTUsIDAuMzI2NDMzLCAwLjQ0NzA0MywgMC42ODgzOTEsIDAuODM5NjgyIiwgXAotICAgICAgICAgICIwLjEyMDgzNCwgMC4xMzk3MTMsIDAuMjQyNTIyLCAwLjMzMzAwNiwgMC40NTM2NTYsIDAuNjk0OTgsIDAuODQ1NzI2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3MjQ5NiwgMC4xMDgyOTcsIDAuMzE2ODE3LCAwLjUwMjgzLCAwLjc1MTQwMywgMS4yNDY0NiwgMS41NTY1NyIsIFwKLSAgICAgICAgICAiMC4wNzI1MSwgMC4xMDgzMSwgMC4zMTY4MjMsIDAuNTAyODI2LCAwLjc1MTI4MSwgMS4yNDYyNSwgMS41NTY4MiIsIFwKLSAgICAgICAgICAiMC4wNzI3MDIsIDAuMTA4NDIzLCAwLjMxNjgzOSwgMC41MDIxNzEsIDAuNzUxMjc2LCAxLjI0NjkyLCAxLjU1NjUyIiwgXAotICAgICAgICAgICIwLjA3MzIzMSwgMC4xMDg3OTYsIDAuMzE2OTE3LCAwLjUwMjA4NywgMC43NTAxMjUsIDEuMjQ3LCAxLjU1Nzc1IiwgXAotICAgICAgICAgICIwLjA3MzkyOSwgMC4xMDkzMzcsIDAuMzE3MDg5LCAwLjUwMTgwOSwgMC43NTE0NTcsIDEuMjQ1ODgsIDEuNTU2NTMiLCBcCi0gICAgICAgICAgIjAuMDc1MjgxLCAwLjExMDE4MywgMC4zMTczMzQsIDAuNTAzMDU5LCAwLjc1MTI1NiwgMS4yNDU5OCwgMS41NTcxNSIsIFwKLSAgICAgICAgICAiMC4wNzYyMTYsIDAuMTExMTMyLCAwLjMxNzU2NSwgMC41MDMyMDMsIDAuNzUwMDE0LCAxLjI0NTgxLCAxLjU1NjIxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4MTE5MywgMC4xMDAwMTksIDAuMjA1NzMxLCAwLjI5ODgxNywgMC40MjI4OTEsIDAuNjcxMDg4LCAwLjgyNjE3MSIsIFwKLSAgICAgICAgICAiMC4wODg2OTcsIDAuMTA3NTIxLCAwLjIxMzIxNiwgMC4zMDYzMzQsIDAuNDMwMjg2LCAwLjY3ODU4NSwgMC44MzM2NzQiLCBcCi0gICAgICAgICAgIjAuMDk1MzM2LCAwLjExNDE1NiwgMC4yMTk4NDYsIDAuMzEyOTk4LCAwLjQzNzA1MiwgMC42ODUyMTEsIDAuODQwMjk5IiwgXAotICAgICAgICAgICIwLjEwMDAyNCwgMC4xMTg4NTMsIDAuMjI0NTA5LCAwLjMxNzY0MiwgMC40NDE3NDUsIDAuNjg5ODgyLCAwLjg0NDk3NSIsIFwKLSAgICAgICAgICAiMC4xMDM4MzksIDAuMTIyNjY0LCAwLjIyODMyMywgMC4zMjE0NCwgMC40NDU1OTIsIDAuNjkzNjc4LCAwLjg0ODc4OCIsIFwKLSAgICAgICAgICAiMC4xMDg4MDksIDAuMTI3NjM2LCAwLjIzMzI3MywgMC4zMjY0MDgsIDAuNDUwNDc0LCAwLjY5ODYzMSwgMC44NTM3MzYiLCBcCi0gICAgICAgICAgIjAuMTEyNDY4LCAwLjEzMTIzNywgMC4yMzY5MDIsIDAuMzMwMDU5LCAwLjQ1NDE4MSwgMC43MDIzMzEsIDAuODU3MzI1Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3Mzk2OCwgMC4xMTIwNTYsIDAuMzMyMjE2LCAwLjUyNzQ2OSwgMC43ODkwOTcsIDEuMzEwNjEsIDEuNjM3NjMiLCBcCi0gICAgICAgICAgIjAuMDczOTY4LCAwLjExMjA1NiwgMC4zMzI3NDgsIDAuNTI3NjIzLCAwLjc4OTAzOCwgMS4zMTA1MywgMS42MzY3MiIsIFwKLSAgICAgICAgICAiMC4wNzM5NzUsIDAuMTEyMDYsIDAuMzMyNzQ1LCAwLjUyNzgzOSwgMC43ODg2MywgMS4zMTA1MiwgMS42Mzc2NCIsIFwKLSAgICAgICAgICAiMC4wNzM5OTIsIDAuMTEyMDc1LCAwLjMzMjY5MiwgMC41Mjg1ODUsIDAuNzg5OTMxLCAxLjMxMTUxLCAxLjYzNzc4IiwgXAotICAgICAgICAgICIwLjA3Mzk2NiwgMC4xMTIwNzQsIDAuMzMyMzc1LCAwLjUyODU3OSwgMC43ODk5NjMsIDEuMzExMzYsIDEuNjM3NjYiLCBcCi0gICAgICAgICAgIjAuMDc0MTIzLCAwLjExMTk5MSwgMC4zMzI2MDYsIDAuNTI3Njk1LCAwLjc4OTA2MywgMS4zMTE0MywgMS42Mzc2IiwgXAotICAgICAgICAgICIwLjA3NDAyOSwgMC4xMTIxODIsIDAuMzMyMzQ0LCAwLjUyODYxNiwgMC43ODk5MjcsIDEuMzExLCAxLjYzNzg1Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4MzA2OCwgMC4xMDE1MzYsIDAuMjA0MzE0LCAwLjI5NDg0NywgMC40MTU0NzQsIDAuNjU2Nzc0LCAwLjgwNzUwNCIsIFwKLSAgICAgICAgICAiMC4wOTA4NCwgMC4xMDkyODUsIDAuMjEyMDY2LCAwLjMwMjU5MiwgMC40MjMyNTUsIDAuNjY0NDcxLCAwLjgxNTI1NiIsIFwKLSAgICAgICAgICAiMC4wOTc1OCwgMC4xMTYwMzksIDAuMjE4ODM0LCAwLjMwOTMzNCwgMC40Mjk5ODQsIDAuNjcxMjIzLCAwLjgyMTk5NyIsIFwKLSAgICAgICAgICAiMC4xMDI0NzMsIDAuMTIwOTM1LCAwLjIyMzcwNywgMC4zMTQyMzIsIDAuNDM0ODY4LCAwLjY3NjEwOCwgMC44MjY5MzciLCBcCi0gICAgICAgICAgIjAuMTA2NDAyLCAwLjEyNDg3MywgMC4yMjc2MzcsIDAuMzE4MTc2LCAwLjQzODgwOCwgMC42ODAwNjEsIDAuODMwODQyIiwgXAotICAgICAgICAgICIwLjExMTY4NSwgMC4xMzAxOTMsIDAuMjMyOTI4LCAwLjMyMzQzMiwgMC40NDQwNjgsIDAuNjg1NCwgMC44MzYxMzIiLCBcCi0gICAgICAgICAgIjAuMTE1NjA3LCAwLjEzNDEyMiwgMC4yMzY4NzIsIDAuMzI3Mzg1LCAwLjQ0ODAzMSwgMC42ODkyMjQsIDAuODQwMDQzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3MTU1LCAwLjEwNzU0MiwgMC4zMTY2OSwgMC41MDE5NzgsIDAuNzUxMTc5LCAxLjI0Njg5LCAxLjU1NzUxIiwgXAotICAgICAgICAgICIwLjA3MTUwMSwgMC4xMDc1NDYsIDAuMzE2Njg3LCAwLjUwMjE5NywgMC43NTAxMjYsIDEuMjQ4NDIsIDEuNTU5MzMiLCBcCi0gICAgICAgICAgIjAuMDcxNTI3LCAwLjEwNzUzNCwgMC4zMTU5NzIsIDAuNTAyMTc2LCAwLjc1MTM2OCwgMS4yNDcsIDEuNTU3MzgiLCBcCi0gICAgICAgICAgIjAuMDcxNTAxLCAwLjEwNzU4OSwgMC4zMTY2MzQsIDAuNTAyMjY1LCAwLjc1MTMxOSwgMS4yNDgzOSwgMS41NTY3NCIsIFwKLSAgICAgICAgICAiMC4wNzE1MjgsIDAuMTA3NTUxLCAwLjMxNjYzNiwgMC41MDIxNTIsIDAuNzUxMzg2LCAxLjI0ODMsIDEuNTU3NDQiLCBcCi0gICAgICAgICAgIjAuMDcxNjM0LCAwLjEwNzQ3NCwgMC4zMTYwOTcsIDAuNTAyODIzLCAwLjc1MTE4LCAxLjI0Njg4LCAxLjU1NzQzIiwgXAotICAgICAgICAgICIwLjA3MTUxMSwgMC4xMDc1MzEsIDAuMzE2NjEsIDAuNTAyNzkyLCAwLjc1MTE5LCAxLjI0Njg5LCAxLjU1ODY4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1OTc3NCwgMC4wNzg2MDYsIDAuMTg0MTQzLCAwLjI3NzI0MSwgMC40MDExNTIsIDAuNjQ5NzMsIDAuODA0NzI5IiwgXAotICAgICAgICAgICIwLjA2NzQ2LCAwLjA4NjI4OCwgMC4xOTE4MzUsIDAuMjg0OTMzLCAwLjQwOTEzMywgMC42NTczOTcsIDAuODEyNDQ5IiwgXAotICAgICAgICAgICIwLjA3NTk4LCAwLjA5NDgyOSwgMC4yMDA0MTQsIDAuMjkzNDM2LCAwLjQxNzY2MiwgMC42NjU5MjgsIDAuODIxMDYyIiwgXAotICAgICAgICAgICIwLjA4MjYzMywgMC4xMDE0OTgsIDAuMjA3MDY2LCAwLjMwMDE3NiwgMC40MjQ0OTcsIDAuNjcyODkxLCAwLjgyNzc5NiIsIFwKLSAgICAgICAgICAiMC4wODgxMywgMC4xMDcwODcsIDAuMjEyNjMsIDAuMzA1Njg1LCAwLjQyOTgzNCwgMC42NzgwMiwgMC44MzMxMTYiLCBcCi0gICAgICAgICAgIjAuMDk1NTA5LCAwLjExNDM5NCwgMC4yMjAxMDEsIDAuMzEzMTE4LCAwLjQzNzE2NiwgMC42ODUzNjksIDAuODQwOTQ5IiwgXAotICAgICAgICAgICIwLjEwMDk2LCAwLjExOTk4NiwgMC4yMjU2NjUsIDAuMzE4NjE4LCAwLjQ0MjcsIDAuNjkwOTY0LCAwLjg0NjQ1OCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzQyNTgsIDAuMTEyMjg0LCAwLjMzMjU1MSwgMC41Mjg1NjcsIDAuNzg4Nzg3LCAxLjMxMDg2LCAxLjYzOTY2IiwgXAotICAgICAgICAgICIwLjA3NDIwOSwgMC4xMTIyNDUsIDAuMzMyNTEyLCAwLjUyODUxMSwgMC43ODkyNCwgMS4zMTE0OSwgMS42MzkxIiwgXAotICAgICAgICAgICIwLjA3NDQ5MiwgMC4xMTI0NjQsIDAuMzMxOTY1LCAwLjUyODQ2MSwgMC43ODgzMDMsIDEuMzEwMjEsIDEuNjM2NCIsIFwKLSAgICAgICAgICAiMC4wNzUyMDcsIDAuMTEyODk4LCAwLjMzMjc2OSwgMC41Mjc0OTcsIDAuNzg4NzQyLCAxLjMxMDc3LCAxLjYzNzk2IiwgXAotICAgICAgICAgICIwLjA3NTgxMiwgMC4xMTMzNTgsIDAuMzMyNTIzLCAwLjUyODQ5NCwgMC43ODg1NzEsIDEuMzEwMzMsIDEuNjM3NjgiLCBcCi0gICAgICAgICAgIjAuMDc2OTUsIDAuMTE0MTQ4LCAwLjMzMjUzOCwgMC41Mjg1NjMsIDAuNzg4NjM0LCAxLjMxMDU5LCAxLjYzNzI4IiwgXAotICAgICAgICAgICIwLjA3NzkxOCwgMC4xMTQ5NjQsIDAuMzMyODMsIDAuNTI4NDk1LCAwLjc4OTIwNywgMS4zMTA2MSwgMS42MzczMiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjU0OTIsIDAuMDgzOTUzLCAwLjE4NjcyNCwgMC4yNzcyNDcsIDAuMzk3OTI4LCAwLjYzOTEyLCAwLjc4OTg5NiIsIFwKLSAgICAgICAgICAiMC4wNzI5MDYsIDAuMDkxMzc4LCAwLjE5NDE2MywgMC4yODQ2OSwgMC40MDUzNjgsIDAuNjQ2NTY1LCAwLjc5NzMzNiIsIFwKLSAgICAgICAgICAiMC4wODE3ODcsIDAuMTAwMjY3LCAwLjIwMzA2MSwgMC4yOTM1ODQsIDAuNDE0MjUzLCAwLjY1NTQ2NywgMC44MDYyODkiLCBcCi0gICAgICAgICAgIjAuMDg4OTU5LCAwLjEwNzQ4MywgMC4yMTAyNjcsIDAuMzAwNzg2LCAwLjQyMTQzOSwgMC42NjI3MjQsIDAuODEzNDQ3IiwgXAotICAgICAgICAgICIwLjA5NDgwNSwgMC4xMTM0MzEsIDAuMjE2MjM0LCAwLjMwNjc4NSwgMC40Mjc0LCAwLjY2ODYzLCAwLjgxOTQwOCIsIFwKLSAgICAgICAgICAiMC4xMDI3MTYsIDAuMTIxMzQxLCAwLjIyNDI2OSwgMC4zMTQ3OTEsIDAuNDM1NDIzLCAwLjY3Njc0LCAwLjgyNzQ0MSIsIFwKLSAgICAgICAgICAiMC4xMDg1NzYsIDAuMTI3MjM3LCAwLjIzMDI5NCwgMC4zMjA3ODIsIDAuNDQxNTQ3LCAwLjY4Mjg2LCAwLjgzMzU4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3MTU0MiwgMC4xMDc1NTksIDAuMzE2Njg1LCAwLjUwMjMxNCwgMC43NTE0MTksIDEuMjQ4NDIsIDEuNTU5MjgiLCBcCi0gICAgICAgICAgIjAuMDcxNTU0LCAwLjEwNzU2NywgMC4zMTY2ODMsIDAuNTAyMzI0LCAwLjc1MTQyOSwgMS4yNDg0MiwgMS41NTkyMyIsIFwKLSAgICAgICAgICAiMC4wNzE4NDgsIDAuMTA3NzQ5LCAwLjMxNjcyMSwgMC41MDIxOTEsIDAuNzUxNDQxLCAxLjI0ODM4LCAxLjU1NjU5IiwgXAotICAgICAgICAgICIwLjA3MjU0OSwgMC4xMDgyNDcsIDAuMzE2NTE3LCAwLjUwMjgzOCwgMC43NTA0NjEsIDEuMjQ2NzMsIDEuNTU4NzkiLCBcCi0gICAgICAgICAgIjAuMDczMTk0LCAwLjEwODc2NCwgMC4zMTY1ODcsIDAuNTAyOTQ2LCAwLjc1MTE5OCwgMS4yNDgyNSwgMS41NTg5NiIsIFwKLSAgICAgICAgICAiMC4wNzQzODMsIDAuMTA5NDU1LCAwLjMxNjkwNSwgMC41MDIzMDgsIDAuNzUwNDQ1LCAxLjI0ODU2LCAxLjU1NzA5IiwgXAotICAgICAgICAgICIwLjA3NTE4NSwgMC4xMTAzNCwgMC4zMTcxMTEsIDAuNTAzMDk5LCAwLjc1MDc1LCAxLjI0ODgyLCAxLjU1OTQzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3Njc3NiwgMC4wOTU2MDksIDAuMjAxMjg2LCAwLjI5NDQyNCwgMC40MTg1NDIsIDAuNjY2NjUyLCAwLjgyMTc2MSIsIFwKLSAgICAgICAgICAiMC4wODQxLCAwLjEwMjkyOCwgMC4yMDg2MDUsIDAuMzAxNzM5LCAwLjQyNTg0MywgMC42NzM5OTUsIDAuODI5MDczIiwgXAotICAgICAgICAgICIwLjA5MDI5LCAwLjEwOTExNCwgMC4yMTQ4LCAwLjMwNzk1LCAwLjQzMjA0OSwgMC42ODAxNjMsIDAuODM1MjYiLCBcCi0gICAgICAgICAgIjAuMDk0NTQ3LCAwLjExMzQyLCAwLjIxOTExMywgMC4zMTIyMDMsIDAuNDM2MjY2LCAwLjY4NDQyNSwgMC44Mzk0OSIsIFwKLSAgICAgICAgICAiMC4wOTc4NDcsIDAuMTE2NzcxLCAwLjIyMjU0NiwgMC4zMTU2NTMsIDAuNDM5NzU0LCAwLjY4NzksIDAuODQzMDc5IiwgXAotICAgICAgICAgICIwLjEwMjM4NiwgMC4xMjEyODMsIDAuMjI3MTk3LCAwLjMyMDMxNiwgMC40NDQ0NTEsIDAuNjkyNjMsIDAuODQ3Njg2IiwgXAotICAgICAgICAgICIwLjEwNTc1NCwgMC4xMjQ2MjksIDAuMjMwNTg4LCAwLjMyMzcyNiwgMC40NDc4NzgsIDAuNjk2MDQ4LCAwLjg1MTExMiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzM5MjgsIDAuMTEyMDQyLCAwLjMzMjcwNywgMC41Mjg1OTcsIDAuNzg5OTQ5LCAxLjMxMTY0LCAxLjYzNzY5IiwgXAotICAgICAgICAgICIwLjA3MzkzMywgMC4xMTIwNjQsIDAuMzMyNjkyLCAwLjUyODU4NSwgMC43ODk5MjcsIDEuMzExMjYsIDEuNjM3NzYiLCBcCi0gICAgICAgICAgIjAuMDc0MDA0LCAwLjExMjA3OSwgMC4zMzI3MzQsIDAuNTI3ODEyLCAwLjc4OTkzNiwgMS4zMTEzMywgMS42Mzc2MyIsIFwKLSAgICAgICAgICAiMC4wNzQxMzQsIDAuMTEyMjI3LCAwLjMzMjQ0MSwgMC41Mjg1MzgsIDAuNzg5MTUyLCAxLjMxMjYxLCAxLjYzOTMxIiwgXAotICAgICAgICAgICIwLjA3NDEyOCwgMC4xMTIyODMsIDAuMzMyMzU0LCAwLjUyODIxNywgMC43ODk4MDgsIDEuMzExNCwgMS42MzkyMiIsIFwKLSAgICAgICAgICAiMC4wNzQyMjQsIDAuMTEyMjM3LCAwLjMzMjYyNCwgMC41MjgzMzQsIDAuNzg5ODA2LCAxLjMxMTA0LCAxLjYzOTA1IiwgXAotICAgICAgICAgICIwLjA3NDEwOSwgMC4xMTIzMzYsIDAuMzMyNDk3LCAwLjUyODIzMywgMC43ODkzNjEsIDEuMzEyMzgsIDEuNjM4OTYiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY2NjQxLCAwLjA4NTIwMiwgMC4xODc5NDgsIDAuMjc4NDQyLCAwLjM5OTA5NywgMC42NDA1NDEsIDAuNzkxNDA3IiwgXAotICAgICAgICAgICIwLjA3NTIzMiwgMC4wOTM3OTMsIDAuMTk2NTYzLCAwLjI4NzAyOSwgMC40MDc3MDIsIDAuNjQ5MjI0LCAwLjc5OTk2MiIsIFwKLSAgICAgICAgICAiMC4wODM2MDksIDAuMTAyMTY0LCAwLjIwNDkwNiwgMC4yOTU0MDIsIDAuNDE2MDY3LCAwLjY1Nzc4NywgMC44MDg1OTQiLCBcCi0gICAgICAgICAgIjAuMDg5MTM1LCAwLjEwNzY4NywgMC4yMTA0MzYsIDAuMzAwOTEsIDAuNDIxNTg3LCAwLjY2MzM1NywgMC44MTM5MDIiLCBcCi0gICAgICAgICAgIjAuMDkzMzc0LCAwLjExMTg1OCwgMC4yMTQ1OTEsIDAuMzA1MDgzLCAwLjQyNTg2NSwgMC42NjcwNTUsIDAuODE4MDIiLCBcCi0gICAgICAgICAgIjAuMDk5MDI5LCAwLjExNzUyNiwgMC4yMjAxNDgsIDAuMzEwNjE0LCAwLjQzMTI5OSwgMC42NzI2NzgsIDAuODIzOTIzIiwgXAotICAgICAgICAgICIwLjEwMzEzMiwgMC4xMjE1OTEsIDAuMjI0MTQsIDAuMzE0NjA5LCAwLjQzNTMxNiwgMC42NzY2MDUsIDAuODI3NTE1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3MjI0OSwgMC4xMDgxMjMsIDAuMzE2NzY4LCAwLjUwMjExOCwgMC43NTEyMjEsIDEuMjQ3MTYsIDEuNTU3ODEiLCBcCi0gICAgICAgICAgIjAuMDcyMjE4LCAwLjEwODExNCwgMC4zMTY4MjksIDAuNTAyNzQzLCAwLjc1MTE2OCwgMS4yNDczNCwgMS41NTY4NyIsIFwKLSAgICAgICAgICAiMC4wNzIxMjgsIDAuMTA4MDc5LCAwLjMxNjc0MiwgMC41MDIwOTgsIDAuNzUxMTY3LCAxLjI0Njc3LCAxLjU1NjM4IiwgXAotICAgICAgICAgICIwLjA3MTk4NywgMC4xMDc5NDYsIDAuMzE2Nzk2LCAwLjUwMjc0MSwgMC43NTEwNzgsIDEuMjQ2OTMsIDEuNTU2NTgiLCBcCi0gICAgICAgICAgIjAuMDcxOTM0LCAwLjEwNzg4NywgMC4zMTY2OCwgMC41MDI3NzUsIDAuNzQ5ODc1LCAxLjI0NiwgMS41NTY3OCIsIFwKLSAgICAgICAgICAiMC4wNzIwMTYsIDAuMTA3Nzg0LCAwLjMxNjYyNiwgMC41MDE3OTksIDAuNzUxMzI2LCAxLjI0NzAxLCAxLjU1NzI5IiwgXAotICAgICAgICAgICIwLjA3MjE1MiwgMC4xMDgwMDYsIDAuMzE2NDk4LCAwLjUwMjQwMiwgMC43NTExNzcsIDEuMjQ1OTgsIDEuNTU2MDIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQ4MywgMC4wMDQ4NCwgMC4wMDQ4NTcsIDAuMDA0ODYsIDAuMDA0ODY0LCAwLjAwNDg2NCwgMC4wMDQ4NjUiLCBcCi0gICAgICAgICAgIjAuMDA0ODM3LCAwLjAwNDg0NywgMC4wMDQ4NjMsIDAuMDA0ODY3LCAwLjAwNDg2OSwgMC4wMDQ4NzQsIDAuMDA0ODc0IiwgXAotICAgICAgICAgICIwLjAwNDksIDAuMDA0OTA5LCAwLjAwNDkyNCwgMC4wMDQ5MjgsIDAuMDA0OTI5LCAwLjAwNDkzMSwgMC4wMDQ5MzIiLCBcCi0gICAgICAgICAgIjAuMDA0OTkzLCAwLjAwNTAwOCwgMC4wMDUwMjIsIDAuMDA1MDI1LCAwLjAwNTAyMSwgMC4wMDUwMjMsIDAuMDA1MDIzIiwgXAotICAgICAgICAgICIwLjAwNTExNiwgMC4wMDUxMjQsIDAuMDA1MTM0LCAwLjAwNTEzNSwgMC4wMDUxMzYsIDAuMDA1MTMzLCAwLjAwNTEzOCIsIFwKLSAgICAgICAgICAiMC4wMDUzMjMsIDAuMDA1MzMsIDAuMDA1MzM4LCAwLjAwNTMzOSwgMC4wMDUzMzksIDAuMDA1MzM5LCAwLjAwNTMzOSIsIFwKLSAgICAgICAgICAiMC4wMDU1MTUsIDAuMDA1NTEsIDAuMDA1NTI2LCAwLjAwNTUyNiwgMC4wMDU1MjcsIDAuMDA1NTI1LCAwLjAwNTUyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzg1NCwgMC4wMDM4NjYsIDAuMDAzODg2LCAwLjAwMzg5MSwgMC4wMDM4OTMsIDAuMDAzODk1LCAwLjAwMzg5NiIsIFwKLSAgICAgICAgICAiMC4wMDM4NTgsIDAuMDAzODcxLCAwLjAwMzg5MSwgMC4wMDM4OTUsIDAuMDAzODk4LCAwLjAwMzksIDAuMDAzOTAxIiwgXAotICAgICAgICAgICIwLjAwMzkyMiwgMC4wMDM5MzQsIDAuMDAzOTUzLCAwLjAwMzk1NywgMC4wMDM5NiwgMC4wMDM5NjIsIDAuMDAzOTYzIiwgXAotICAgICAgICAgICIwLjAwNDAyNCwgMC4wMDQwMzYsIDAuMDA0MDU1LCAwLjAwNDA1OSwgMC4wMDQwNjEsIDAuMDA0MDYzLCAwLjAwNDA2NCIsIFwKLSAgICAgICAgICAiMC4wMDQxNDUsIDAuMDA0MTQ5LCAwLjAwNDE2NSwgMC4wMDQxNzUsIDAuMDA0MTcsIDAuMDA0MTc5LCAwLjAwNDE4IiwgXAotICAgICAgICAgICIwLjAwNDM0NSwgMC4wMDQzNjUsIDAuMDA0MzcsIDAuMDA0MzcyLCAwLjAwNDM3MywgMC4wMDQzODUsIDAuMDA0Mzg1IiwgXAotICAgICAgICAgICIwLjAwNDU0MiwgMC4wMDQ1NjMsIDAuMDA0NTc3LCAwLjAwNDU3OCwgMC4wMDQ1NzksIDAuMDA0NTY3LCAwLjAwNDU4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0NzY4LCAwLjAwNDc3OCwgMC4wMDQ3OTQsIDAuMDA0Nzk4LCAwLjAwNDgsIDAuMDA0OCwgMC4wMDQ4MDIiLCBcCi0gICAgICAgICAgIjAuMDA0Nzc4LCAwLjAwNDc4OCwgMC4wMDQ4MDQsIDAuMDA0ODA4LCAwLjAwNDgxLCAwLjAwNDgxMSwgMC4wMDQ4MTIiLCBcCi0gICAgICAgICAgIjAuMDA0ODY4LCAwLjAwNDg3NywgMC4wMDQ4OTMsIDAuMDA0ODk2LCAwLjAwNDg5OSwgMC4wMDQ5MDEsIDAuMDA0OTAyIiwgXAotICAgICAgICAgICIwLjAwNDk3NSwgMC4wMDQ5ODUsIDAuMDA1MDAyLCAwLjAwNTAwMywgMC4wMDUwMTcsIDAuMDA1MDE5LCAwLjAwNTAxOSIsIFwKLSAgICAgICAgICAiMC4wMDUxMDQsIDAuMDA1MTEyLCAwLjAwNTEyNywgMC4wMDUxMzEsIDAuMDA1MTMzLCAwLjAwNTEzNSwgMC4wMDUxMzUiLCBcCi0gICAgICAgICAgIjAuMDA1MzE1LCAwLjAwNTMyNCwgMC4wMDUzNCwgMC4wMDUzNDQsIDAuMDA1MzQ0LCAwLjAwNTM0OCwgMC4wMDUzNDkiLCBcCi0gICAgICAgICAgIjAuMDA1NTE0LCAwLjAwNTUyNCwgMC4wMDU1MzksIDAuMDA1NTQyLCAwLjAwNTU0NCwgMC4wMDU1NDcsIDAuMDA1NTQ2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzMTk1LCAwLjAwMzIwNSwgMC4wMDMyMiwgMC4wMDMyMjMsIDAuMDAzMjI1LCAwLjAwMzIyNiwgMC4wMDMyMjciLCBcCi0gICAgICAgICAgIjAuMDAzMzE2LCAwLjAwMzMyNSwgMC4wMDMzNDEsIDAuMDAzMzQ0LCAwLjAwMzM0NiwgMC4wMDMzNDgsIDAuMDAzMzQ5IiwgXAotICAgICAgICAgICIwLjAwMzQ4NSwgMC4wMDM0OTMsIDAuMDAzNTA3LCAwLjAwMzUxMSwgMC4wMDM1MTMsIDAuMDAzNTE1LCAwLjAwMzUxNSIsIFwKLSAgICAgICAgICAiMC4wMDM2ODEsIDAuMDAzNjg3LCAwLjAwMzcsIDAuMDAzNzA0LCAwLjAwMzcwNiwgMC4wMDM3MDcsIDAuMDAzNzA4IiwgXAotICAgICAgICAgICIwLjAwMzg4MiwgMC4wMDM4ODcsIDAuMDAzODk4LCAwLjAwMzkwMiwgMC4wMDM5MDQsIDAuMDAzOTA2LCAwLjAwMzkwNiIsIFwKLSAgICAgICAgICAiMC4wMDQyNTcsIDAuMDA0MjYxLCAwLjAwNDI2OSwgMC4wMDQyNTIsIDAuMDA0MjcyLCAwLjAwNDI1NSwgMC4wMDQyNzQiLCBcCi0gICAgICAgICAgIjAuMDA0NTQ3LCAwLjAwNDU3MSwgMC4wMDQ1NzgsIDAuMDA0NTgsIDAuMDA0NTYxLCAwLjAwNDU4MiwgMC4wMDQ1NjIiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBYTk9SMlgyICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKFhOT1IyWDIpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC40OTAwNDU7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDU4OTc1MzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA1ODk3NTM7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNTg5NjcyOwotICB9Ci0gIHBpbihCKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDEyODA3ODsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDEyODA3MjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDEyODA3ODsKLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjY2MTM1OTsKLSAgICBmdW5jdGlvbiA6ICIoIShBXkIpKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDYwNDEsIDAuMTQwNjQxLCAwLjIwMzEwMSwgMC4yODExMTgsIDAuMzU5MjMxLCAwLjQzNzI4LCAwLjUxNTM4MyIsIFwKLSAgICAgICAgICAiMC4wNjg0OSwgMC4xNDg3MTksIDAuMjExMTYyLCAwLjI4OTE5NCwgMC4zNjcyNywgMC40NDUzNDEsIDAuNTIzNTA3IiwgXAotICAgICAgICAgICIwLjA3ODI4MiwgMC4xNTg1MTksIDAuMjIwOTc5LCAwLjI5ODk5OCwgMC4zNzcwNjgsIDAuNDU1MzcyLCAwLjUzMzMwNiIsIFwKLSAgICAgICAgICAiMC4wODY2MzgsIDAuMTY3MDE3LCAwLjIyOTQ2LCAwLjMwNzQ4MywgMC4zODU1MTMsIDAuNDYzNjQyLCAwLjU0MTcxIiwgXAotICAgICAgICAgICIwLjA5Mzc3OCwgMC4xNzQzMTQsIDAuMjM2NzM5LCAwLjMxNDc3MiwgMC4zOTI5NDksIDAuNDcwODcyLCAwLjU0OTA3NCIsIFwKLSAgICAgICAgICAiMC4xMDMzMjMsIDAuMTg0MzA0LCAwLjI0NjY4MywgMC4zMjQ3MTEsIDAuNDAyOTE1LCAwLjQ4MDgzMSwgMC41NTkyMjciLCBcCi0gICAgICAgICAgIjAuMTEwMzIxLCAwLjE5MTkxLCAwLjI1NDI3OSwgMC4zMzIzMTgsIDAuNDEwMzY0LCAwLjQ4ODM3OCwgMC41NjY0MTQiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQ1OTU1LCAwLjIwNjc5OCwgMC4zMzkxNjksIDAuNTA0NjI3LCAwLjY3MDU1MSwgMC44Mzc1MzksIDEuMDAyOTMiLCBcCi0gICAgICAgICAgIjAuMDQ1OTY2LCAwLjIwNjc5NiwgMC4zMzg3NDMsIDAuNTA1MTI4LCAwLjY3MTA1NSwgMC44MzY5MTgsIDEuMDAzNDIiLCBcCi0gICAgICAgICAgIjAuMDQ2MTk2LCAwLjIwNjc4MywgMC4zMzkxNzQsIDAuNTA1MTI3LCAwLjY3MTc2NSwgMC44MzcxMzQsIDEuMDAzNDIiLCBcCi0gICAgICAgICAgIjAuMDQ2OTQ1LCAwLjIwNjk4NSwgMC4zMzkyMTksIDAuNTA1MjA1LCAwLjY3MDg0MywgMC44MzY3NzMsIDEuMDAyOTkiLCBcCi0gICAgICAgICAgIjAuMDQ4MDI1LCAwLjIwNzIxNCwgMC4zMzg4NzgsIDAuNTA1MjIxLCAwLjY3MDc0MiwgMC44MzcyMjYsIDEuMDAzNDMiLCBcCi0gICAgICAgICAgIjAuMDQ5NzEyLCAwLjIwNzg5OSwgMC4zMzkyNDQsIDAuNTA1MjgsIDAuNjcwODE0LCAwLjgzNjk1MiwgMS4wMDM2NSIsIFwKLSAgICAgICAgICAiMC4wNTExNDIsIDAuMjA4MzA0LCAwLjMzOTc1NSwgMC41MDU1MDgsIDAuNjcxODQzLCAwLjgzODMyOSwgMS4wMDQ5MiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjQ2MTEsIDAuMTQzNjU4LCAwLjIwNDMyMywgMC4yODAwOTYsIDAuMzU1ODU0LCAwLjQzMTY5MiwgMC41MDc0MzUiLCBcCi0gICAgICAgICAgIjAuMDcyNDEzLCAwLjE1MTQ5NiwgMC4yMTIxNTQsIDAuMjg3OTIzLCAwLjM2MzcxOSwgMC40Mzk0OTUsIDAuNTE1MjQ4IiwgXAotICAgICAgICAgICIwLjA4MTg3LCAwLjE2MDkyOCwgMC4yMjE1ODUsIDAuMjk3MzU4LCAwLjM3MzEzOCwgMC40NDg5NDksIDAuNTI0NzA3IiwgXAotICAgICAgICAgICIwLjA5MDA2OSwgMC4xNjkyMiwgMC4yMjk4ODMsIDAuMzA1Njg0LCAwLjM4MTQyNSwgMC40NTcxODYsIDAuNTMyOTg3IiwgXAotICAgICAgICAgICIwLjA5NjkzNiwgMC4xNzYzMjUsIDAuMjM2OTksIDAuMzEyNzU4LCAwLjM4ODUwOSwgMC40NjQyOTgsIDAuNTQwMTIyIiwgXAotICAgICAgICAgICIwLjEwNjA5NiwgMC4xODU4OTgsIDAuMjQ2NTIsIDAuMzIyMzQzLCAwLjM5ODExNiwgMC40NzQsIDAuNTQ5NjU4IiwgXAotICAgICAgICAgICIwLjExMjg5MywgMC4xOTMxMzIsIDAuMjUzNzc2LCAwLjMyOTU5MSwgMC40MDUzMzYsIDAuNDgxMjA0LCAwLjU1Njg3NyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDU1NDMsIDAuMTk2OTk0LCAwLjMyMTY1NywgMC40Nzg0MDMsIDAuNjM1NjY4LCAwLjc5MTU1NSwgMC45NTA1NzUiLCBcCi0gICAgICAgICAgIjAuMDQ1NTg4LCAwLjE5Njk5NywgMC4zMjE2NCwgMC40NzgzOTIsIDAuNjM0OTM3LCAwLjc5MzI5MSwgMC45NTA4MSIsIFwKLSAgICAgICAgICAiMC4wNDU3ODYsIDAuMTk3MDIyLCAwLjMyMTY3MiwgMC40Nzg0MDksIDAuNjM0OTc5LCAwLjc5MTYwNSwgMC45NTA2NDYiLCBcCi0gICAgICAgICAgIjAuMDQ2MzY5LCAwLjE5NzE0OCwgMC4zMjE3MywgMC40Nzg1NywgMC42MzU3NDMsIDAuNzkzMDI5LCAwLjk1MDU0NCIsIFwKLSAgICAgICAgICAiMC4wNDcyNjIsIDAuMTk3Mzc2LCAwLjMyMTkzOSwgMC40Nzc3NiwgMC42MzU3NTMsIDAuNzkyMjUsIDAuOTQ4Njk3IiwgXAotICAgICAgICAgICIwLjA0ODg3NywgMC4xOTc5OTQsIDAuMzIyMjEzLCAwLjQ3ODEzMSwgMC42MzU4MTksIDAuNzkxODgsIDAuOTUwODE2IiwgXAotICAgICAgICAgICIwLjA1MDE3OCwgMC4xOTg3MzgsIDAuMzIyNDg2LCAwLjQ3ODcxMiwgMC42MzU3MTYsIDAuNzkxNDUzLCAwLjk1MDgxMSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzE5ODgsIDAuMTUyMTIsIDAuMjE0NjU4LCAwLjI5MjcxMSwgMC4zNzA3NTksIDAuNDQ4ODg3LCAwLjUyNjgyIiwgXAotICAgICAgICAgICIwLjA3OTU2OCwgMC4xNTk2NzYsIDAuMjIyMTkxLCAwLjMwMDI2OCwgMC4zNzgzMSwgMC40NTYzNSwgMC41MzQzNyIsIFwKLSAgICAgICAgICAiMC4wODU5NzIsIDAuMTY2MDM5LCAwLjIyODU1LCAwLjMwNjYzNCwgMC4zODQ3NDgsIDAuNDYyNTY1LCAwLjU0MDczNyIsIFwKLSAgICAgICAgICAiMC4wOTA0ODEsIDAuMTcwNTYzLCAwLjIzMzA3MSwgMC4zMTEyLCAwLjM4OTIzLCAwLjQ2NzIyMiwgMC41NDUyODEiLCBcCi0gICAgICAgICAgIjAuMDk0MTY1LCAwLjE3NDI2OCwgMC4yMzY3ODksIDAuMzE0ODYzLCAwLjM5Mjk2NywgMC40NzA5NSwgMC41NDg5NTYiLCBcCi0gICAgICAgICAgIjAuMDk5MDI4LCAwLjE3OTEwMywgMC4yNDE1ODUsIDAuMzE5NjY2LCAwLjM5NzczOCwgMC40NzU3NzMsIDAuNTUzNzYiLCBcCi0gICAgICAgICAgIjAuMTAyNjEzLCAwLjE4MjYxNywgMC4yNDUwOTUsIDAuMzIzMjU4LCAwLjQwMTMyOSwgMC40NzkyODgsIDAuNTU3NDMyIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0NTM2NiwgMC4yMDY1ODIsIDAuMzM5MTMsIDAuNTA0ODIsIDAuNjcxMjE3LCAwLjgzNzEwNCwgMS4wMDM4OSIsIFwKLSAgICAgICAgICAiMC4wNDU0MTIsIDAuMjA2NTg0LCAwLjMzODY0NiwgMC41MDQ4MzcsIDAuNjcxNjk1LCAwLjgzNzYxLCAxLjAwMzgxIiwgXAotICAgICAgICAgICIwLjA0NTQxOCwgMC4yMDY1ODUsIDAuMzM5MDY0LCAwLjUwNDg2NCwgMC42NzA4MDEsIDAuODM2NjU1LCAxLjAwMzkyIiwgXAotICAgICAgICAgICIwLjA0NTQzOSwgMC4yMDY1OTIsIDAuMzM5MTQ3LCAwLjUwNDU2MywgMC42NzE3MDYsIDAuODM4MjExLCAxLjAwMzc0IiwgXAotICAgICAgICAgICIwLjA0NTQzMSwgMC4yMDY1ODksIDAuMzM5MTQzLCAwLjUwNDgzNCwgMC42NzA4MDYsIDAuODM4MTc0LCAxLjAwMzkxIiwgXAotICAgICAgICAgICIwLjA0NTUxNywgMC4yMDY2MjIsIDAuMzM5MTE5LCAwLjUwNTIxOCwgMC42NzE2MDksIDAuODM3MzM4LCAxLjAwNDA1IiwgXAotICAgICAgICAgICIwLjA0NTUwOSwgMC4yMDY0OSwgMC4zMzg3ODYsIDAuNTA1MTk5LCAwLjY3MTAxNiwgMC44Mzc2MjYsIDEuMDAzNCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzUyNTMsIDAuMTUzOTkxLCAwLjIxNDcwNywgMC4yOTA1MzIsIDAuMzY2MzE2LCAwLjQ0MjA3LCAwLjUxNzg2NSIsIFwKLSAgICAgICAgICAiMC4wODI5NzcsIDAuMTYxNjU5LCAwLjIyMjM2OCwgMC4yOTgxNzcsIDAuMzczOTYzLCAwLjQ0OTc2OCwgMC41MjU1MjEiLCBcCi0gICAgICAgICAgIjAuMDg5NTU1LCAwLjE2ODIyOSwgMC4yMjg5MzMsIDAuMzA0NzQ1LCAwLjM4MDUzOCwgMC40NTYzNzEsIDAuNTMyMDg2IiwgXAotICAgICAgICAgICIwLjA5NDI1MywgMC4xNzI5ODMsIDAuMjMzNjk4LCAwLjMwOTUwOSwgMC4zODUyOTMsIDAuNDYxMDY0LCAwLjUzNjg0OSIsIFwKLSAgICAgICAgICAiMC4wOTgwODEsIDAuMTc2ODI3LCAwLjIzNzU0LCAwLjMxMzMwNywgMC4zODkxMjEsIDAuNDY0ODg2LCAwLjU0MDY5IiwgXAotICAgICAgICAgICIwLjEwMzI2OCwgMC4xODE5OTUsIDAuMjQyNjkxLCAwLjMxODUwNSwgMC4zOTQyODQsIDAuNDcwMDUzLCAwLjU0NTgyMyIsIFwKLSAgICAgICAgICAiMC4xMDcxMjgsIDAuMTg1NzYyLCAwLjI0NjU1NCwgMC4zMjI0MTksIDAuMzk4MDc5LCAwLjQ3MzkyMywgMC41NDk3MzIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQ0ODY2LCAwLjE5NjU3OSwgMC4zMjE0OTYsIDAuNDc4NDUxLCAwLjYzNTc1OCwgMC43OTMxMzksIDAuOTUwNzgxIiwgXAotICAgICAgICAgICIwLjA0NDg0OSwgMC4xOTY2MjYsIDAuMzIxNDUyLCAwLjQ3ODQwMSwgMC42MzQ5NDIsIDAuNzkxOTk3LCAwLjk1MDcyMyIsIFwKLSAgICAgICAgICAiMC4wNDQ4MTcsIDAuMTk2NDk2LCAwLjMyMTEwOSwgMC40NzgzODksIDAuNjM1MDI0LCAwLjc5MTc0NywgMC45NTA3MDciLCBcCi0gICAgICAgICAgIjAuMDQ0NzkyLCAwLjE5NjY2MywgMC4zMjE0NDUsIDAuNDc4MzI1LCAwLjYzNTU4NywgMC43OTMwNDIsIDAuOTUwNzIiLCBcCi0gICAgICAgICAgIjAuMDQ0Nzk0LCAwLjE5NjU4NCwgMC4zMjA5MTEsIDAuNDc4MzE1LCAwLjYzNTYsIDAuNzkyMTU1LCAwLjk0OTM2NCIsIFwKLSAgICAgICAgICAiMC4wNDQ4MzEsIDAuMTk2NTQzLCAwLjMyMTE0LCAwLjQ3NzgwMywgMC42MzU1OTIsIDAuNzkzMjg1LCAwLjk1MDUxMyIsIFwKLSAgICAgICAgICAiMC4wNDQ5MTIsIDAuMTk2NTgzLCAwLjMyMTU2NiwgMC40Nzc0OTgsIDAuNjM1NzI2LCAwLjc5MjIzMiwgMC45NTA4ODciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDUwODk0LCAwLjEzMTE2MywgMC4xOTM2MDksIDAuMjcxNzI4LCAwLjM0OTcyNSwgMC40Mjc4ODUsIDAuNTA1ODc0IiwgXAotICAgICAgICAgICIwLjA1ODYxMywgMC4xMzg4NTgsIDAuMjAxMzExLCAwLjI3OTM1NiwgMC4zNTc0NzcsIDAuNDM1NTM4LCAwLjUxMzYxMSIsIFwKLSAgICAgICAgICAiMC4wNjc4MywgMC4xNDgxMTQsIDAuMjEwNTY5LCAwLjI4ODYxNCwgMC4zNjY3MzcsIDAuNDQ0ODAzLCAwLjUyMjg2NyIsIFwKLSAgICAgICAgICAiMC4wNzU1NjUsIDAuMTU1OTM0LCAwLjIxODM5NCwgMC4yOTY0NzksIDAuMzc0NTQ2LCAwLjQ1MjU3MywgMC41MzA5ODciLCBcCi0gICAgICAgICAgIjAuMDgxOTczLCAwLjE2MjU1LCAwLjIyNDk3MiwgMC4zMDMwOTMsIDAuMzgxMjAzLCAwLjQ1OTEwOCwgMC41Mzc0MDgiLCBcCi0gICAgICAgICAgIjAuMDkwNTg5LCAwLjE3MTQ5MiwgMC4yMzM5ODEsIDAuMzExOTMxLCAwLjM5MDEwOSwgMC40Njc5OTEsIDAuNTQ2MDg0IiwgXAotICAgICAgICAgICIwLjA5NzAzNiwgMC4xNzgyMTIsIDAuMjQwNjg5LCAwLjMxODYxMywgMC4zOTY2ODcsIDAuNDc0ODU4LCAwLjU1MzA3NSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDU1ODgsIDAuMjA2NzQ0LCAwLjMzOTAzLCAwLjUwNDI4LCAwLjY3MTc5LCAwLjgzNzA5NSwgMS4wMDMwMSIsIFwKLSAgICAgICAgICAiMC4wNDU1NTQsIDAuMjA2NzgsIDAuMzM4NzkxLCAwLjUwNDYyOCwgMC42NzA1MDcsIDAuODM3NTYzLCAxLjAwMjkxIiwgXAotICAgICAgICAgICIwLjA0NTg0MSwgMC4yMDY3NywgMC4zMzg5MzQsIDAuNTA0NjI2LCAwLjY3MDUwOCwgMC44Mzc1ODcsIDEuMDAyOTEiLCBcCi0gICAgICAgICAgIjAuMDQ2OTQ5LCAwLjIwNjg5NiwgMC4zMzkyMjgsIDAuNTA0NDUyLCAwLjY3MDQ1NiwgMC44Mzc0ODQsIDEuMDAzMjYiLCBcCi0gICAgICAgICAgIjAuMDQ4Mjg5LCAwLjIwNzM2LCAwLjMzODkyOCwgMC41MDQzOTksIDAuNjcwNzcsIDAuODM4Mjg4LCAxLjAwMzUxIiwgXAotICAgICAgICAgICIwLjA1MDExMywgMC4yMDc4NjgsIDAuMzM5MDIzLCAwLjUwNTQ5MiwgMC42NzA1MjMsIDAuODM3Mjc4LCAxLjAwNDkiLCBcCi0gICAgICAgICAgIjAuMDUxNzc0LCAwLjIwODI3NCwgMC4zMzk0NzcsIDAuNTA1MzgxLCAwLjY3MTY1LCAwLjgzNzIwMSwgMS4wMDM1OSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTg4MjUsIDAuMTM3NTI1LCAwLjE5ODIyNiwgMC4yNzQwMzYsIDAuMzQ5ODMyLCAwLjQyNTY0OCwgMC41MDEzNjkiLCBcCi0gICAgICAgICAgIjAuMDY2MjE3LCAwLjE0NDkzMywgMC4yMDU2NDYsIDAuMjgxNDcyLCAwLjM1NzI1MSwgMC40MzMwNTQsIDAuNTA4ODQ3IiwgXAotICAgICAgICAgICIwLjA3NTYzMiwgMC4xNTQzNDEsIDAuMjE1MDYyLCAwLjI5MDg4NiwgMC4zNjY2NTYsIDAuNDQyNDQxLCAwLjUxODI4MSIsIFwKLSAgICAgICAgICAiMC4wODQwMDMsIDAuMTYyNzk0LCAwLjIyMzUwNiwgMC4yOTkzMSwgMC4zNzUwOTksIDAuNDUwOTI5LCAwLjUyNjY0NSIsIFwKLSAgICAgICAgICAiMC4wOTEwMDksIDAuMTcwMDQ0LCAwLjIzMDcxNiwgMC4zMDY1MzMsIDAuMzgyMzMyLCAwLjQ1ODExNSwgMC41MzM4ODEiLCBcCi0gICAgICAgICAgIjAuMTAwMzQ3LCAwLjE3OTc3LCAwLjI0MDQ0MSwgMC4zMTYyMjcsIDAuMzkyMDMxLCAwLjQ2Nzc4NCwgMC41NDM1NzIiLCBcCi0gICAgICAgICAgIjAuMTA3MzcyLCAwLjE4NzEyLCAwLjI0NzcxNiwgMC4zMjM1NTEsIDAuMzk5MzU0LCAwLjQ3NTA1NiwgMC41NTA4MDYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQ0NzkyLCAwLjE5NjUzMiwgMC4zMjE0NTcsIDAuNDc4Mzg3LCAwLjYzNDk4NiwgMC43OTMzMDcsIDAuOTUwNjg1IiwgXAotICAgICAgICAgICIwLjA0NDc5NiwgMC4xOTY1MzMsIDAuMzIxNDg4LCAwLjQ3ODQ0NywgMC42MzQ5NjYsIDAuNzkzMjg5LCAwLjk0ODk4NCIsIFwKLSAgICAgICAgICAiMC4wNDUwMDksIDAuMTk2NjU4LCAwLjMyMTUwNCwgMC40Nzg0MywgMC42MzU2NzMsIDAuNzkyMjQzLCAwLjk0OTAyMiIsIFwKLSAgICAgICAgICAiMC4wNDU5MDMsIDAuMTk2Nzk1LCAwLjMyMTU0NywgMC40NzgzNTgsIDAuNjM0OTkxLCAwLjc5MTc0NywgMC45NTA1MzEiLCBcCi0gICAgICAgICAgIjAuMDQ3MDIyLCAwLjE5NzE2OSwgMC4zMjE0MTksIDAuNDc4NDM0LCAwLjYzNDk3NiwgMC43OTIzMTgsIDAuOTUwNzgxIiwgXAotICAgICAgICAgICIwLjA0ODc1NywgMC4xOTc3OTQsIDAuMzIyMTE5LCAwLjQ3ODYwMSwgMC42MzUxMDUsIDAuNzkzMDg2LCAwLjk0OTI0NCIsIFwKLSAgICAgICAgICAiMC4wNTAxNjcsIDAuMTk4MzIyLCAwLjMyMjM5MywgMC40Nzg3NywgMC42MzUwNDMsIDAuNzkxOTQzLCAwLjk0OTYwMSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjgzMDgsIDAuMTQ4NDE1LCAwLjIxMDkzNiwgMC4yODkwMDgsIDAuMzY3MDUyLCAwLjQ0NTEyNCwgMC41MjMxNTQiLCBcCi0gICAgICAgICAgIjAuMDc1ODI4LCAwLjE1NTg4MywgMC4yMTgzOSwgMC4yOTY0NzUsIDAuMzc0NTk3LCAwLjQ1MjU3OCwgMC41MzA1NzgiLCBcCi0gICAgICAgICAgIjAuMDgyMjYxLCAwLjE2MjI5NywgMC4yMjQ4MTcsIDAuMzAyOTA5LCAwLjM4MDk4MiwgMC40NTg5NzQsIDAuNTM3MDQ3IiwgXAotICAgICAgICAgICIwLjA4NjY5LCAwLjE2Njg1OCwgMC4yMjkzNDEsIDAuMzA3NDE3LCAwLjM4NTUwOSwgMC40NjM1MzUsIDAuNTQxNTI0IiwgXAotICAgICAgICAgICIwLjA5MDExOSwgMC4xNzAzNjUsIDAuMjMyODk2LCAwLjMxMDk1NywgMC4zODkwMDYsIDAuNDY3MDY3LCAwLjU0NTEzOSIsIFwKLSAgICAgICAgICAiMC4wOTQ5NzMsIDAuMTc1MjY3LCAwLjIzNzgwNiwgMC4zMTU5MDcsIDAuMzkzOTUyLCAwLjQ3MjAxMywgMC41NTAwMSIsIFwKLSAgICAgICAgICAiMC4wOTg0MSwgMC4xNzg2NTcsIDAuMjQxMjQ4LCAwLjMxOTMzOCwgMC4zOTczODYsIDAuNDc1NDIzLCAwLjU1MzQ1MSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDU0MTMsIDAuMjA2NTg0LCAwLjMzODQ3LCAwLjUwNDgyMywgMC42NzExNywgMC44MzcyMzEsIDEuMDA0NyIsIFwKLSAgICAgICAgICAiMC4wNDU0NDUsIDAuMjA2NTg5LCAwLjMzODc0MSwgMC41MDQ4NDksIDAuNjcwNzk0LCAwLjgzODIxNSwgMS4wMDM4OCIsIFwKLSAgICAgICAgICAiMC4wNDU0MjksIDAuMjA2NTgyLCAwLjMzOTEyMiwgMC41MDUyNTgsIDAuNjcxNjY1LCAwLjgzODE4MywgMS4wMDQ3IiwgXAotICAgICAgICAgICIwLjA0NTQ2NywgMC4yMDY2ODEsIDAuMzM5MDg5LCAwLjUwNDgxMiwgMC42NzA1NzMsIDAuODM4MTUzLCAxLjAwNDcyIiwgXAotICAgICAgICAgICIwLjA0NTQ3MiwgMC4yMDY3NywgMC4zMzg4MzMsIDAuNTA1MTcxLCAwLjY3MTU2NCwgMC44MzcxNTgsIDEuMDA0NiIsIFwKLSAgICAgICAgICAiMC4wNDUzNzQsIDAuMjA2NzA1LCAwLjMzODk3NiwgMC41MDQ5MzcsIDAuNjcxMTQ3LCAwLjgzNzI4NiwgMS4wMDQxIiwgXAotICAgICAgICAgICIwLjA0NTQyNCwgMC4yMDY3NzIsIDAuMzM4Nzk5LCAwLjUwNDg4MSwgMC42NzEzNTgsIDAuODM3NzU0LCAxLjAwMzg0Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1NzM5NiwgMC4xMzY1MDEsIDAuMTk3MTU0LCAwLjI3MjkzMSwgMC4zNDg3MTQsIDAuNDI0NTIsIDAuNTAwMjgzIiwgXAotICAgICAgICAgICIwLjA2NjA4MiwgMC4xNDUxMzYsIDAuMjA1ODExLCAwLjI4MTU4MSwgMC4zNTczNzEsIDAuNDMzMTYxLCAwLjUwODk0MSIsIFwKLSAgICAgICAgICAiMC4wNzUxMjIsIDAuMTU0MTY4LCAwLjIxNDg0MywgMC4yOTA2NTEsIDAuMzY2NDA3LCAwLjQ0MjE5NSwgMC41MTgxNDMiLCBcCi0gICAgICAgICAgIjAuMDgxMTExLCAwLjE2MDEyNiwgMC4yMjA3OTcsIDAuMjk2NTc5LCAwLjM3MjM0NCwgMC40NDgxODQsIDAuNTIzOTI5IiwgXAotICAgICAgICAgICIwLjA4NTcxNSwgMC4xNjQ2NjQsIDAuMjI1MzQ1LCAwLjMwMTExNSwgMC4zNzY5MywgMC40NTI3MDYsIDAuNTI4NDcyIiwgXAotICAgICAgICAgICIwLjA5MTU2OSwgMC4xNzA0NDUsIDAuMjMxMjI5LCAwLjMwNjkxNiwgMC4zODI3NjUsIDAuNDU4NTMyLCAwLjUzNDI1NiIsIFwKLSAgICAgICAgICAiMC4wOTU5NTIsIDAuMTc0OTA2LCAwLjIzNTQ2OCwgMC4zMTEzMTMsIDAuMzg3MTA0LCAwLjQ2Mjg5MSwgMC41Mzg3MTgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQ1MzI3LCAwLjE5NjgzOSwgMC4zMjE2MTIsIDAuNDc4MzcyLCAwLjYzNDk0NiwgMC43OTE2MDQsIDAuOTUwNTI5IiwgXAotICAgICAgICAgICIwLjA0NTMzMSwgMC4xOTY4MzQsIDAuMzIxMTMyLCAwLjQ3ODM0NywgMC42MzQ4NTMsIDAuNzkxNTkyLCAwLjk0OTQ2NSIsIFwKLSAgICAgICAgICAiMC4wNDUyMzgsIDAuMTk2ODkyLCAwLjMyMTU0NCwgMC40Nzg0OTQsIDAuNjM0ODEyLCAwLjc5MzIyMSwgMC45NDg5OTYiLCBcCi0gICAgICAgICAgIjAuMDQ1MTEsIDAuMTk2ODYxLCAwLjMyMTUzNywgMC40NzgyODUsIDAuNjM1NDI1LCAwLjc5MTg3NCwgMC45NTAzNjMiLCBcCi0gICAgICAgICAgIjAuMDQ1MTQzLCAwLjE5Njc1LCAwLjMyMTUxNCwgMC40NzgyNjIsIDAuNjM0NTY1LCAwLjc5MTU5MiwgMC45NTAzNzEiLCBcCi0gICAgICAgICAgIjAuMDQ1MTg0LCAwLjE5Njc4NSwgMC4zMjE1NTYsIDAuNDc4MzM3LCAwLjYzNTYzLCAwLjc5MjgyMSwgMC45NDkzOTkiLCBcCi0gICAgICAgICAgIjAuMDQ1MjQ1LCAwLjE5NjYyOSwgMC4zMjEwNDgsIDAuNDc4MDc4LCAwLjYzNTMyNiwgMC43OTEzMzEsIDAuOTQ5NDU0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1NjE5LCAwLjAwNTY4MiwgMC4wMDU2OTMsIDAuMDA1NywgMC4wMDU3MDEsIDAuMDA1NzA0LCAwLjAwNTcwNSIsIFwKLSAgICAgICAgICAiMC4wMDU2MjQsIDAuMDA1Njg3LCAwLjAwNTY5OCwgMC4wMDU3MDMsIDAuMDA1NzA3LCAwLjAwNTcwOSwgMC4wMDU3MSIsIFwKLSAgICAgICAgICAiMC4wMDU2OTEsIDAuMDA1NzUzLCAwLjAwNTc2NCwgMC4wMDU3NywgMC4wMDU3NzMsIDAuMDA1Nzc1LCAwLjAwNTc3NyIsIFwKLSAgICAgICAgICAiMC4wMDU3OTksIDAuMDA1ODU1LCAwLjAwNTg2NSwgMC4wMDU4NjQsIDAuMDA1ODcyLCAwLjAwNTg2OSwgMC4wMDU4NzUiLCBcCi0gICAgICAgICAgIjAuMDA1OTE2LCAwLjAwNTk3LCAwLjAwNTk3MiwgMC4wMDU5ODUsIDAuMDA1OTg2LCAwLjAwNTk4OCwgMC4wMDU5ODkiLCBcCi0gICAgICAgICAgIjAuMDA2MTI3LCAwLjAwNjE3NiwgMC4wMDYxNzYsIDAuMDA2MTc5LCAwLjAwNjE4MiwgMC4wMDYxODEsIDAuMDA2MTgzIiwgXAotICAgICAgICAgICIwLjAwNjMxOSwgMC4wMDYzNTUsIDAuMDA2MzYsIDAuMDA2Mzc2LCAwLjAwNjM3OCwgMC4wMDYzNjYsIDAuMDA2MzY1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1MDYzLCAwLjAwNTE0LCAwLjAwNTE1MywgMC4wMDUxNiwgMC4wMDUxNjQsIDAuMDA1MTY2LCAwLjAwNTE2OCIsIFwKLSAgICAgICAgICAiMC4wMDUwNywgMC4wMDUxNDYsIDAuMDA1MTU5LCAwLjAwNTE2NywgMC4wMDUxNzEsIDAuMDA1MTczLCAwLjAwNTE3NSIsIFwKLSAgICAgICAgICAiMC4wMDUxMzEsIDAuMDA1MjA5LCAwLjAwNTIyMywgMC4wMDUyMywgMC4wMDUyMzQsIDAuMDA1MjM3LCAwLjAwNTIzOSIsIFwKLSAgICAgICAgICAiMC4wMDUyMzYsIDAuMDA1MzEsIDAuMDA1MzIzLCAwLjAwNTMzLCAwLjAwNTMzNCwgMC4wMDUzMzcsIDAuMDA1MzM4IiwgXAotICAgICAgICAgICIwLjAwNTM2NCwgMC4wMDU0MzYsIDAuMDA1NDQ4LCAwLjAwNTQ0NiwgMC4wMDU0NTgsIDAuMDA1NDYsIDAuMDA1NDYxIiwgXAotICAgICAgICAgICIwLjAwNTU2OSwgMC4wMDU2NDYsIDAuMDA1NjU3LCAwLjAwNTY2MiwgMC4wMDU2NjYsIDAuMDA1NjU2LCAwLjAwNTY2OCIsIFwKLSAgICAgICAgICAiMC4wMDU3NzksIDAuMDA1ODMyLCAwLjAwNTg1NCwgMC4wMDU4NTgsIDAuMDA1ODQ4LCAwLjAwNTg2MywgMC4wMDU4NjQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDU4NjUsIDAuMDA1OTI2LCAwLjAwNTkzNywgMC4wMDU5NDMsIDAuMDA1OTQ3LCAwLjAwNTk1LCAwLjAwNTk1IiwgXAotICAgICAgICAgICIwLjAwNTg3OSwgMC4wMDU5NCwgMC4wMDU5NTEsIDAuMDA1OTU3LCAwLjAwNTk2MSwgMC4wMDU5NjMsIDAuMDA1OTY0IiwgXAotICAgICAgICAgICIwLjAwNTk2OSwgMC4wMDYwMjgsIDAuMDA2MDM5LCAwLjAwNjA0NCwgMC4wMDYwNDksIDAuMDA2MDUxLCAwLjAwNjA1MiIsIFwKLSAgICAgICAgICAiMC4wMDYwNzcsIDAuMDA2MTM4LCAwLjAwNjE0OSwgMC4wMDYxNTMsIDAuMDA2MTU3LCAwLjAwNjE1OSwgMC4wMDYxNjEiLCBcCi0gICAgICAgICAgIjAuMDA2MjA2LCAwLjAwNjI2MywgMC4wMDYyNzQsIDAuMDA2MjgsIDAuMDA2MjgzLCAwLjAwNjI4NSwgMC4wMDYyODQiLCBcCi0gICAgICAgICAgIjAuMDA2NDE5LCAwLjAwNjQ3NywgMC4wMDY0ODgsIDAuMDA2NDk1LCAwLjAwNjQ5OCwgMC4wMDY1MDEsIDAuMDA2NTAzIiwgXAotICAgICAgICAgICIwLjAwNjY2MywgMC4wMDY3MiwgMC4wMDY3MywgMC4wMDY3MzcsIDAuMDA2NzQsIDAuMDA2NzQ0LCAwLjAwNjc0MyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjU5OCwgMC4wMDY2NzIsIDAuMDA2NjgzLCAwLjAwNjY5LCAwLjAwNjY5MywgMC4wMDY2OTUsIDAuMDA2Njk2IiwgXAotICAgICAgICAgICIwLjAwNjU5MiwgMC4wMDY2NywgMC4wMDY2ODUsIDAuMDA2NjkyLCAwLjAwNjY5NiwgMC4wMDY2OTksIDAuMDA2NyIsIFwKLSAgICAgICAgICAiMC4wMDY3MTUsIDAuMDA2Nzg2LCAwLjAwNjgwMiwgMC4wMDY4MTIsIDAuMDA2ODE3LCAwLjAwNjgyLCAwLjAwNjgyMiIsIFwKLSAgICAgICAgICAiMC4wMDY4OTUsIDAuMDA2OTQyLCAwLjAwNjk1OSwgMC4wMDY5NjksIDAuMDA2OTc1LCAwLjAwNjk3OCwgMC4wMDY5ODEiLCBcCi0gICAgICAgICAgIjAuMDA3MTE5LCAwLjAwNzE0NCwgMC4wMDcxNDksIDAuMDA3MTU5LCAwLjAwNzE3NywgMC4wMDcxOCwgMC4wMDcxNzIiLCBcCi0gICAgICAgICAgIjAuMDA3NTA0LCAwLjAwNzQ5MiwgMC4wMDc1MDQsIDAuMDA3NTE2LCAwLjAwNzUwNSwgMC4wMDc1MjUsIDAuMDA3NTI4IiwgXAotICAgICAgICAgICIwLjAwNzg0NSwgMC4wMDc4MDEsIDAuMDA3ODMsIDAuMDA3ODIyLCAwLjAwNzgyNywgMC4wMDc4NDgsIDAuMDA3ODUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBYTk9SMlg0ICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKFhOT1IyWDQpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC43MzczMTI7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY0NzAzOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDY0NzAzOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDY0NzAzOwotICB9Ci0gIHBpbihCKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE2NTMyMjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE2NTMyMjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE2NTMwMjsKLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAxLjI3NDk7Ci0gICAgZnVuY3Rpb24gOiAiKCEoQV5CKSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY2MDE0LCAwLjEyODYzNywgMC4xODM5MjMsIDAuMjIzMTUyLCAwLjI4NTkxNywgMC4zNDA4MTMsIDAuNDE5MjM0IiwgXAotICAgICAgICAgICIwLjA3NDE1MiwgMC4xMzY3ODQsIDAuMTkyMDcyLCAwLjIzMTMwNCwgMC4yOTQwNjksIDAuMzQ4OTc5LCAwLjQyNzQxNyIsIFwKLSAgICAgICAgICAiMC4wODQ0NTQsIDAuMTQ3MDQsIDAuMjAyMzIzLCAwLjI0MTU2NCwgMC4zMDQzMzQsIDAuMzU5MjI4LCAwLjQzNzY0MyIsIFwKLSAgICAgICAgICAiMC4wOTQzMTYsIDAuMTU2OTAxLCAwLjIxMjE4NiwgMC4yNTE0MTQsIDAuMzE0MTY0LCAwLjM2OTA2NiwgMC40NDc1NzgiLCBcCi0gICAgICAgICAgIjAuMTAzMDgsIDAuMTY1OTg3LCAwLjIyMTI0NiwgMC4yNjA1MDQsIDAuMzIzMjcxLCAwLjM3ODE2NCwgMC40NTY1NjciLCBcCi0gICAgICAgICAgIjAuMTE1NDMzLCAwLjE3OTE0NSwgMC4yMzQ0NDgsIDAuMjczNjYzLCAwLjMzNjM5MSwgMC4zOTEzMzQsIDAuNDY5NzM1IiwgXAotICAgICAgICAgICIwLjEyNDM2MiwgMC4xODkwNDQsIDAuMjQ0MzI5LCAwLjI4MzU5MiwgMC4zNDYyNjUsIDAuNDAxMTc2LCAwLjQ3OTYzNSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzNTI2NSwgMC4xNDYxMjQsIDAuMjU5MjQsIDAuMzQxNDI5LCAwLjQ3NDA5NiwgMC41OTAxODMsIDAuNzU1NjY1IiwgXAotICAgICAgICAgICIwLjAzNTI2NSwgMC4xNDYwNzgsIDAuMjU5MjYxLCAwLjM0MTQzMywgMC40NzQwOTYsIDAuNTg5NDEyLCAwLjc1NjU3MSIsIFwKLSAgICAgICAgICAiMC4wMzUzMjUsIDAuMTQ2MTQ1LCAwLjI1OTQ2NCwgMC4zNDE0MywgMC40NzQxMDUsIDAuNTkwMjI1LCAwLjc1NTYwNCIsIFwKLSAgICAgICAgICAiMC4wMzU3MzcsIDAuMTQ2Mjc1LCAwLjI1OTMxOSwgMC4zNDE0NjYsIDAuNDczNjI2LCAwLjU5MDAzNywgMC43NTUyNzUiLCBcCi0gICAgICAgICAgIjAuMDM2NzkzLCAwLjE0NjYwNCwgMC4yNTk3MzMsIDAuMzQxNTQzLCAwLjQ3NDExMSwgMC41OTAyNDksIDAuNzU1NTU1IiwgXAotICAgICAgICAgICIwLjAzODk5OSwgMC4xNDc2NzQsIDAuMjU5OTg0LCAwLjM0MTg5NywgMC40NzM4MDUsIDAuNTkwMzk4LCAwLjc1NjU2IiwgXAotICAgICAgICAgICIwLjA0MDgzNSwgMC4xNDg3NzYsIDAuMjYwODc0LCAwLjM0MjQwNCwgMC40NzM5MTYsIDAuNTkwNTY2LCAwLjc1NjYxNiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3MjAwOSwgMC4xMzUxMDIsIDAuMTg5NjUzLCAwLjIyODE3MSwgMC4yODk2NzEsIDAuMzQzNDY4LCAwLjQyMDMwOSIsIFwKLSAgICAgICAgICAiMC4wODAwNDEsIDAuMTQzMTQ2LCAwLjE5NzY1OSwgMC4yMzYxOTIsIDAuMjk3Njk3LCAwLjM1MTQ5NCwgMC40MjgzNjkiLCBcCi0gICAgICAgICAgIjAuMDkwMDQ0LCAwLjE1MzA2OCwgMC4yMDc2MjEsIDAuMjQ2MTQ1LCAwLjMwNzY0NywgMC4zNjE0NDQsIDAuNDM4Mjg2IiwgXAotICAgICAgICAgICIwLjA5OTYxOSwgMC4xNjI2NTgsIDAuMjE3MTk4LCAwLjI1NTY5MywgMC4zMTcxOTYsIDAuMzcwOTk2LCAwLjQ0Nzg0NSIsIFwKLSAgICAgICAgICAiMC4xMDgxMzEsIDAuMTcxMzg4LCAwLjIyNTk0NiwgMC4yNjQ0NjMsIDAuMzI1OTcyLCAwLjM3OTc2OCwgMC40NTY2MSIsIFwKLSAgICAgICAgICAiMC4xMjAzOTksIDAuMTg0MjEyLCAwLjIzODgwOSwgMC4yNzczMTcsIDAuMzM4ODE1LCAwLjM5MjYwNCwgMC40Njk0NjIiLCBcCi0gICAgICAgICAgIjAuMTI5MTkxLCAwLjE5Mzg0MSwgMC4yNDg0MzMsIDAuMjg2OSwgMC4zNDg0MjMsIDAuNDAyMjE5LCAwLjQ3OTA3NCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzNjEwNiwgMC4xNDI4MjIsIDAuMjUxMDkyLCAwLjMyOTUzNSwgMC40NTY0MDEsIDAuNTY3NzA3LCAwLjcyNzA5MiIsIFwKLSAgICAgICAgICAiMC4wMzYwODgsIDAuMTQyODQxLCAwLjI1MTA0NCwgMC4zMjk1MzIsIDAuNDU2NDIyLCAwLjU2NzcwMywgMC43MjcyNjYiLCBcCi0gICAgICAgICAgIjAuMDM2MDUzLCAwLjE0MjcwNywgMC4yNTEwOTQsIDAuMzI5NTQ3LCAwLjQ1NjQxLCAwLjU2NzcwNiwgMC43MjcwOTIiLCBcCi0gICAgICAgICAgIjAuMDM2NDA1LCAwLjE0Mjk4NCwgMC4yNTExMzcsIDAuMzI5NTgyLCAwLjQ1NjQzNCwgMC41NjcwOTEsIDAuNzI3MTA1IiwgXAotICAgICAgICAgICIwLjAzNzE4LCAwLjE0MzIwNSwgMC4yNTEyNjEsIDAuMzI5MzcxLCAwLjQ1NjQ3OCwgMC41Njc3NTEsIDAuNzI3MTIxIiwgXAotICAgICAgICAgICIwLjAzOTE0NiwgMC4xNDQxMjMsIDAuMjUxNzI3LCAwLjMyOTg4MiwgMC40NTY3NTMsIDAuNTY3OTU0LCAwLjcyNTk5OCIsIFwKLSAgICAgICAgICAiMC4wNDA2MDUsIDAuMTQ1MjU5LCAwLjI1MjUyNywgMC4zMzAzMjksIDAuNDU2MDk0LCAwLjU2NzQ0OSwgMC43MjYxNjgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjg0MzksIDAuMTI3NjA5LCAwLjE4MjY1MSwgMC4yMjE5MDUsIDAuMjg0NjY3LCAwLjMzOTU5NCwgMC40MTgwMzIiLCBcCi0gICAgICAgICAgIjAuMDc2MzU0LCAwLjEzNTUxLCAwLjE5MDU0NywgMC4yMjk3OTcsIDAuMjkyNTYxLCAwLjM0NzQ4MSwgMC40MjU5MzQiLCBcCi0gICAgICAgICAgIjAuMDg0MjcxLCAwLjE0MzQwOCwgMC4xOTg0NDgsIDAuMjM3NjkxLCAwLjMwMDQ2MywgMC4zNTU0MDcsIDAuNDMzODQxIiwgXAotICAgICAgICAgICIwLjA4OTk2OSwgMC4xNDkwNDIsIDAuMjA0MDkzLCAwLjI0MzM0OCwgMC4zMDYxMTIsIDAuMzYxMDQ0LCAwLjQzOTQ5OSIsIFwKLSAgICAgICAgICAiMC4wOTQ1OTIsIDAuMTUzNzM2LCAwLjIwODc3LCAwLjI0ODAxNywgMC4zMTA3ODEsIDAuMzY1Njk5LCAwLjQ0NDE1MyIsIFwKLSAgICAgICAgICAiMC4xMDA2NDMsIDAuMTU5Nzg1LCAwLjIxNDg1MiwgMC4yNTQxMDgsIDAuMzE2ODU1LCAwLjM3MTc3LCAwLjQ1MDIyNCIsIFwKLSAgICAgICAgICAiMC4xMDUwNDksIDAuMTY0MjU1LCAwLjIxOTI3NSwgMC4yNTg0OTksIDAuMzIxMzM0LCAwLjM3NjMwOSwgMC40NTQ2ODkiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzA4MTEsIDAuMTQxOTg1LCAwLjI1NjkzOSwgMC4zMzk4NTUsIDAuNDcyNzAxLCAwLjU4ODQ5MywgMC43NTQ0MiIsIFwKLSAgICAgICAgICAiMC4wMzA4NDYsIDAuMTQyMDU5LCAwLjI1NjczOCwgMC4zMzkzOTEsIDAuNDcyNjIxLCAwLjU4ODU4MSwgMC43NTU2NjIiLCBcCi0gICAgICAgICAgIjAuMDMwODcxLCAwLjE0MjA1NiwgMC4yNTY5NTEsIDAuMzM5NDc3LCAwLjQ3MjY0OCwgMC41ODgzMDYsIDAuNzU1NjUyIiwgXAotICAgICAgICAgICIwLjAzMDc5NSwgMC4xNDIwNzgsIDAuMjU2OTUxLCAwLjMzOTg1MiwgMC40NzI2ODUsIDAuNTg4MTc0LCAwLjc1NTYzNyIsIFwKLSAgICAgICAgICAiMC4wMzA4NzMsIDAuMTQyMDY5LCAwLjI1Njc2NywgMC4zMzk3MTMsIDAuNDcyNTk5LCAwLjU4ODU2MiwgMC43NTU2NDEiLCBcCi0gICAgICAgICAgIjAuMDMwOTQyLCAwLjE0MjA4OCwgMC4yNTY5NjIsIDAuMzM5Nzk1LCAwLjQ3MjE2MywgMC41ODkxMSwgMC43NTU1MzciLCBcCi0gICAgICAgICAgIjAuMDMxLCAwLjE0MjAxNSwgMC4yNTY2MDUsIDAuMzM5NjgxLCAwLjQ3MjY5LCAwLjU4ODE1NiwgMC43NTQ1OTMiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjk1MDIsIDAuMTI4MzUxLCAwLjE4MjM2MSwgMC4yMjA4MjUsIDAuMjgyMzQzLCAwLjMzNjE2NSwgMC40MTMwNzgiLCBcCi0gICAgICAgICAgIjAuMDc3NjYxLCAwLjEzNjQ1NiwgMC4xOTA0NywgMC4yMjg5MzMsIDAuMjkwNDUzLCAwLjM0NDI3NCwgMC40MjExNDUiLCBcCi0gICAgICAgICAgIjAuMDg1NjIzLCAwLjE0NDM5LCAwLjE5ODQxMSwgMC4yMzY4ODMsIDAuMjk4Mzk3LCAwLjM1MjIwMiwgMC40MjkwODMiLCBcCi0gICAgICAgICAgIjAuMDkxNDA4LCAwLjE1MDE3MywgMC4yMDQxOTYsIDAuMjQyNjY3LCAwLjMwNDE4LCAwLjM1Nzk5MiwgMC40MzQ4NzMiLCBcCi0gICAgICAgICAgIjAuMDk2MTY3LCAwLjE1NDk1NSwgMC4yMDg5NzIsIDAuMjQ3NDM1LCAwLjMwODk0NSwgMC4zNjI3NTksIDAuNDM5Njc2IiwgXAotICAgICAgICAgICIwLjEwMjYzLCAwLjE2MTM4MywgMC4yMTU0NCwgMC4yNTM4ODksIDAuMzE1MzkyLCAwLjM2OTIyNywgMC40NDYxMTEiLCBcCi0gICAgICAgICAgIjAuMTA3MzQzLCAwLjE2NjE3NywgMC4yMjAxOTEsIDAuMjU4NjY1LCAwLjMyMDIsIDAuMzczOTg1LCAwLjQ1MDgzMSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzMDYwMywgMC4xMzc0NTEsIDAuMjQ3NTMyLCAwLjMyNjgxMywgMC40NTQzMDEsIDAuNTY2MDg5LCAwLjcyNDYyIiwgXAotICAgICAgICAgICIwLjAzMDU4MiwgMC4xMzc0NTYsIDAuMjQ3NTM1LCAwLjMyNjgwMiwgMC40NTQzLCAwLjU2NjA4MiwgMC43MjQ3MjEiLCBcCi0gICAgICAgICAgIjAuMDMwNjM5LCAwLjEzNzQ2MiwgMC4yNDc1MjMsIDAuMzI2ODM3LCAwLjQ1NDI5NiwgMC41NjU4ODMsIDAuNzI0Nzg1IiwgXAotICAgICAgICAgICIwLjAzMDU3NywgMC4xMzc0NzUsIDAuMjQ3NTE5LCAwLjMyNjg1NCwgMC40NTQyOTYsIDAuNTY1OTUxLCAwLjcyNDc5NiIsIFwKLSAgICAgICAgICAiMC4wMzA1NTIsIDAuMTM3NDYyLCAwLjI0NzUzNSwgMC4zMjY4MTUsIDAuNDU0MjkxLCAwLjU2NTM1OCwgMC43MjQ2NjciLCBcCi0gICAgICAgICAgIjAuMDMwNjU2LCAwLjEzNzQ4OSwgMC4yNDcxMDIsIDAuMzI2NTU4LCAwLjQ1NDIxMywgMC41NjUxNjEsIDAuNzI2MDUxIiwgXAotICAgICAgICAgICIwLjAzMDczOSwgMC4xMzczMzEsIDAuMjQ3NTI1LCAwLjMyNjkzNiwgMC40NTQzOTQsIDAuNTY1OTIxLCAwLjcyNTcwNCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1MDI2MiwgMC4xMTI4OTEsIDAuMTY4MTY1LCAwLjIwNzQxNywgMC4yNzAyMDQsIDAuMzI1MDgzLCAwLjQwMzUxNiIsIFwKLSAgICAgICAgICAiMC4wNTc1MDMsIDAuMTIwMDk0LCAwLjE3NTM5NiwgMC4yMTQ2NDYsIDAuMjc3Mzk2LCAwLjMzMjMxOCwgMC40MTA3NDEiLCBcCi0gICAgICAgICAgIjAuMDY2NDI2LCAwLjEyODk1OCwgMC4xODQyNDUsIDAuMjIzNDgxLCAwLjI4NjI0OSwgMC4zNDExNDksIDAuNDE5NTkiLCBcCi0gICAgICAgICAgIjAuMDc0NjE2LCAwLjEzNzE3OCwgMC4xOTI0NTEsIDAuMjMxNzEsIDAuMjk0NDUyLCAwLjM0OTM3LCAwLjQyNzc4NyIsIFwKLSAgICAgICAgICAiMC4wODE1NjcsIDAuMTQ0NDI3LCAwLjE5OTczNiwgMC4yMzg5NjYsIDAuMzAxNzM1LCAwLjM1NjYyNCwgMC40MzUwMjQiLCBcCi0gICAgICAgICAgIjAuMDkwOTA5LCAwLjE1NDQzOSwgMC4yMDk4MjQsIDAuMjQ4OTUxLCAwLjMxMTY4OSwgMC4zNjY1NzQsIDAuNDQ1MDIxIiwgXAotICAgICAgICAgICIwLjA5Nzc1NywgMC4xNjIxMjYsIDAuMjE3NDc3LCAwLjI1NjYzMiwgMC4zMTkzNDUsIDAuMzc0MjU1LCAwLjQ1Mjc1NyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzNDY3NiwgMC4xNDU5NTIsIDAuMjU5MjEsIDAuMzQxMzU5LCAwLjQ3NDA2LCAwLjU5MDE0OCwgMC43NTU2NzIiLCBcCi0gICAgICAgICAgIjAuMDM0NTY4LCAwLjE0NTg4OSwgMC4yNTkxNzgsIDAuMzQxMjAzLCAwLjQ3Mzc0NiwgMC41OTAxMzcsIDAuNzU1NTg4IiwgXAotICAgICAgICAgICIwLjAzNDUxMiwgMC4xNDU5MTQsIDAuMjU5Mjc1LCAwLjM0MTM2MiwgMC40NzM5OCwgMC41OTAxMjgsIDAuNzU1NzU2IiwgXAotICAgICAgICAgICIwLjAzNTU2MSwgMC4xNDYxMzEsIDAuMjU5NDU1LCAwLjM0MTQxNCwgMC40NzM4MDMsIDAuNTkwMTgsIDAuNzU1NTY2IiwgXAotICAgICAgICAgICIwLjAzNzAxOCwgMC4xNDY2MjcsIDAuMjU5NzA4LCAwLjM0MTY5NCwgMC40NzQxNzEsIDAuNTkwMjcsIDAuNzU2MzIxIiwgXAotICAgICAgICAgICIwLjAzOTQxMywgMC4xNDc1NzQsIDAuMjYwMzEyLCAwLjM0MjExMiwgMC40NzQxNzgsIDAuNTg5ODA1LCAwLjc1NjYwMiIsIFwKLSAgICAgICAgICAiMC4wNDEzODgsIDAuMTQ4NDk3LCAwLjI2MDgzMSwgMC4zNDI0MDIsIDAuNDczODAyLCAwLjU5MDY2MSwgMC43NTY3MiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0OTk3OCwgMC4xMDg3OCwgMC4xNjI3ODcsIDAuMjAxMjU3LCAwLjI2Mjc4NywgMC4zMTY1OTYsIDAuMzkzNDM0IiwgXAotICAgICAgICAgICIwLjA1NzYxMiwgMC4xMTY0LCAwLjE3MDQyNywgMC4yMDg4OTYsIDAuMjcwNDEsIDAuMzI0MjIyLCAwLjQwMTEwNSIsIFwKLSAgICAgICAgICAiMC4wNjcyNzEsIDAuMTI2MDE5LCAwLjE4MDA1MSwgMC4yMTg1MjEsIDAuMjgwMDM2LCAwLjMzMzg1MSwgMC40MTA3NzIiLCBcCi0gICAgICAgICAgIjAuMDc1NzY3LCAwLjEzNDcxNywgMC4xODg3MjQsIDAuMjI3MTgyLCAwLjI4ODcwNCwgMC4zNDI1MjEsIDAuNDE5Mzk4IiwgXAotICAgICAgICAgICIwLjA4MjgyNSwgMC4xNDIwNzYsIDAuMTk2MDgzLCAwLjIzNDU0OCwgMC4yOTYwNzMsIDAuMzQ5ODYyLCAwLjQyNjcyIiwgXAotICAgICAgICAgICIwLjA5MjAzLCAwLjE1MjAwNiwgMC4yMDU5NTQsIDAuMjQ0MzkxLCAwLjMwNTg5OCwgMC4zNTk3MzUsIDAuNDM2NjM4IiwgXAotICAgICAgICAgICIwLjA5ODgxMywgMC4xNTkxMjcsIDAuMjEzMjcyLCAwLjI1MTY5NSwgMC4zMTMxODYsIDAuMzY3MDI2LCAwLjQ0Mzg4NSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzMDUwMiwgMC4xMzc0NSwgMC4yNDc1MiwgMC4zMjY4MjEsIDAuNDU0MzMsIDAuNTY2MDk0LCAwLjcyNTEzIiwgXAotICAgICAgICAgICIwLjAzMDQ5NCwgMC4xMzc0NTEsIDAuMjQ3NTE3LCAwLjMyNjg0NiwgMC40NTQyODUsIDAuNTY1Mzg2LCAwLjcyNDg1MiIsIFwKLSAgICAgICAgICAiMC4wMzA3NDgsIDAuMTM3NDk2LCAwLjI0NzU0MywgMC4zMjY4NjIsIDAuNDU0Mjg3LCAwLjU2NTM5NywgMC43MjQ2MTQiLCBcCi0gICAgICAgICAgIjAuMDMxODkxLCAwLjEzNzgxNCwgMC4yNDc2OTEsIDAuMzI2ODg3LCAwLjQ1NDMzLCAwLjU2NjA3OSwgMC43MjQ4NTEiLCBcCi0gICAgICAgICAgIjAuMDMzMzM3LCAwLjEzODM0MywgMC4yNDc5MzMsIDAuMzI2NjIyLCAwLjQ1NDQ0NSwgMC41NjYwOTEsIDAuNzI1MTY1IiwgXAotICAgICAgICAgICIwLjAzNTQ5MywgMC4xMzkyNTgsIDAuMjQ4MjE4LCAwLjMyNzQ1OCwgMC40NTQ2NzcsIDAuNTY1MjUxLCAwLjcyNjEwMiIsIFwKLSAgICAgICAgICAiMC4wMzcxNTYsIDAuMTM5OTY2LCAwLjI0ODc0MywgMC4zMjczNTQsIDAuNDU0OTA0LCAwLjU2NjM0NywgMC43MjYxMDUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjAzMzgsIDAuMTE5NDcyLCAwLjE3NDUxMiwgMC4yMTM3NTYsIDAuMjc2NTI5LCAwLjMzMTQ4MiwgMC40MDk5MDYiLCBcCi0gICAgICAgICAgIjAuMDY3ODMyLCAwLjEyNjk2NSwgMC4xODIwMDUsIDAuMjIxMjUxLCAwLjI4NDAyMSwgMC4zMzg5NzYsIDAuNDE3Mzk2IiwgXAotICAgICAgICAgICIwLjA3NDQyNywgMC4xMzM1MzMsIDAuMTg4NTgxLCAwLjIyNzg0OCwgMC4yOTA2MDksIDAuMzQ1NTU4LCAwLjQyMzk3NyIsIFwKLSAgICAgICAgICAiMC4wNzg5MjMsIDAuMTM4MTE0LCAwLjE5MzE0OCwgMC4yMzIzOTQsIDAuMjk1MTY3LCAwLjM1MDEwMywgMC40Mjg1NDEiLCBcCi0gICAgICAgICAgIjAuMDgyNTI3LCAwLjE0MTc0MywgMC4xOTY4MDksIDAuMjM2MDYzLCAwLjI5ODgyNiwgMC4zNTM3MzMsIDAuNDMyMTgyIiwgXAotICAgICAgICAgICIwLjA4NzU3MiwgMC4xNDY3MDIsIDAuMjAxODE4LCAwLjI0MTA2MywgMC4zMDM4MjksIDAuMzU4Nzg4LCAwLjQzNzE3NCIsIFwKLSAgICAgICAgICAiMC4wOTExNTUsIDAuMTUwMzA1LCAwLjIwNTQyMSwgMC4yNDQ2OSwgMC4zMDc0NTksIDAuMzYyMzYyLCAwLjQ0MDgxNSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzMDc1MSwgMC4xNDIwNTQsIDAuMjU2OTQ3LCAwLjMzOTQ2MywgMC40NzI2MywgMC41ODgzMzQsIDAuNzU1Njc1IiwgXAotICAgICAgICAgICIwLjAzMDc3NywgMC4xNDIwNTEsIDAuMjU2OTUsIDAuMzM5NDYzLCAwLjQ3MjYyOSwgMC41ODg0MjMsIDAuNzU1Njc2IiwgXAotICAgICAgICAgICIwLjAzMDcwOSwgMC4xNDIwNTgsIDAuMjU2OTUsIDAuMzM5Nzk0LCAwLjQ3MjY0MiwgMC41ODc5NDIsIDAuNzU1NjM3IiwgXAotICAgICAgICAgICIwLjAzMDY1NywgMC4xNDIwNDYsIDAuMjU2OTc1LCAwLjMzOTQ4NCwgMC40NzI2NDIsIDAuNTg4MjUzLCAwLjc1NTU5NyIsIFwKLSAgICAgICAgICAiMC4wMzA2MjMsIDAuMTQyMDc5LCAwLjI1NjY4OSwgMC4zMzk3NzIsIDAuNDcyNTg4LCAwLjU4ODY1NSwgMC43NTQ1MDEiLCBcCi0gICAgICAgICAgIjAuMDMwNzU0LCAwLjE0MjAxMywgMC4yNTY4NzcsIDAuMzM5NTEzLCAwLjQ3MjIxLCAwLjU4ODE4OSwgMC43NTQ4NyIsIFwKLSAgICAgICAgICAiMC4wMzA3MDYsIDAuMTQyMDQyLCAwLjI1NjY4MiwgMC4zMzk1MDYsIDAuNDcyMjYzLCAwLjU4ODc2MSwgMC43NTQzNzgiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTg0NTYsIDAuMTIxNTIsIDAuMTc2MDcsIDAuMjE0NTgxLCAwLjI3NjA5MSwgMC4zMjk4OTEsIDAuNDA2NzM1IiwgXAotICAgICAgICAgICIwLjA2NjcxLCAwLjEyOTc5NCwgMC4xODQzNTQsIDAuMjIyODYsIDAuMjg0MzcsIDAuMzM4MTc1LCAwLjQxNTAyMiIsIFwKLSAgICAgICAgICAiMC4wNzUzNzgsIDAuMTM4NDA1LCAwLjE5Mjk2NywgMC4yMzE0NjUsIDAuMjkyOTc5LCAwLjM0Njc5NywgMC40MjM2MzkiLCBcCi0gICAgICAgICAgIjAuMDgxNjU2LCAwLjE0NDYxMiwgMC4xOTkxNTcsIDAuMjM3Njc4LCAwLjI5OTE4OSwgMC4zNTMwMDYsIDAuNDI5ODQ0IiwgXAotICAgICAgICAgICIwLjA4NjI4NywgMC4xNDkwNzMsIDAuMjAzNjEzLCAwLjI0MjEyMiwgMC4zMDM2MzcsIDAuMzU3NDQ0LCAwLjQzNDI5MSIsIFwKLSAgICAgICAgICAiMC4wOTIwOTIsIDAuMTU0ODQ2LCAwLjIwOTQwOSwgMC4yNDc4NjEsIDAuMzA5Mzc2LCAwLjM2MzIzOCwgMC40NDAwNTkiLCBcCi0gICAgICAgICAgIjAuMDk2NTY5LCAwLjE1OTMwOSwgMC4yMTM3NDUsIDAuMjUyMzA0LCAwLjMxMzc4NiwgMC4zNjc1OTksIDAuNDQ0NDcxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM1ODY1LCAwLjE0MjcxNywgMC4yNTEwMTMsIDAuMzI5NDk1LCAwLjQ1NjM1OSwgMC41Njc2ODUsIDAuNzI3MDc1IiwgXAotICAgICAgICAgICIwLjAzNTcxOSwgMC4xNDI3MTEsIDAuMjUxMDEzLCAwLjMyOTQ4NSwgMC40NTYzNTIsIDAuNTY3NjQsIDAuNzI2Mjk3IiwgXAotICAgICAgICAgICIwLjAzNTU2NiwgMC4xNDI2NDksIDAuMjUwOTksIDAuMzI5NzIsIDAuNDU1ODc0LCAwLjU2NzY3OSwgMC43MjcwNjUiLCBcCi0gICAgICAgICAgIjAuMDM1MTgxLCAwLjE0MjUyNSwgMC4yNTA5NDQsIDAuMzI5NDA2LCAwLjQ1NjMwNiwgMC41Njc3MTMsIDAuNzI3MDM1IiwgXAotICAgICAgICAgICIwLjAzNTMyLCAwLjE0MjQwNCwgMC4yNTA3NDcsIDAuMzI5NjAyLCAwLjQ1NjI1OCwgMC41NjY3MjgsIDAuNzI3MDM4IiwgXAotICAgICAgICAgICIwLjAzNTIwOSwgMC4xNDIyMzgsIDAuMjUwNzE4LCAwLjMyOTQ0NiwgMC40NTU3MjMsIDAuNTY2OTQxLCAwLjcyNzEyOCIsIFwKLSAgICAgICAgICAiMC4wMzUzMjEsIDAuMTQyMDg1LCAwLjI1MDY5MSwgMC4zMjk0NzgsIDAuNDU2MTgsIDAuNTY2NzYsIDAuNzI2MTE0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDkzMTQsIDAuMDA5NDI4LCAwLjAwOTQ1OSwgMC4wMDk0NjYsIDAuMDA5NDc5LCAwLjAwOTQ4NCwgMC4wMDk0OTIiLCBcCi0gICAgICAgICAgIjAuMDA5MzA0LCAwLjAwOTQxOCwgMC4wMDk0NSwgMC4wMDk0NiwgMC4wMDk0NywgMC4wMDk0NzUsIDAuMDA5NDc5IiwgXAotICAgICAgICAgICIwLjAwOTM1MywgMC4wMDk0NjksIDAuMDA5NTAyLCAwLjAwOTUxMywgMC4wMDk1MjIsIDAuMDA5NTI4LCAwLjAwOTUzMiIsIFwKLSAgICAgICAgICAiMC4wMDk0NDIsIDAuMDA5NTU1LCAwLjAwOTU4NiwgMC4wMDk1OTksIDAuMDA5NjEsIDAuMDA5NjEzLCAwLjAwOTYxOSIsIFwKLSAgICAgICAgICAiMC4wMDk1NjQsIDAuMDA5NjY1LCAwLjAwOTY5MywgMC4wMDk3MDIsIDAuMDA5NzE3LCAwLjAwOTcxNiwgMC4wMDk3MiIsIFwKLSAgICAgICAgICAiMC4wMDk3NywgMC4wMDk4NTIsIDAuMDA5ODgsIDAuMDA5ODg4LCAwLjAwOTkwMSwgMC4wMDk4OTgsIDAuMDA5OTA4IiwgXAotICAgICAgICAgICIwLjAwOTkzOCwgMC4wMTAwMzUsIDAuMDEwMDU3LCAwLjAxMDA2LCAwLjAxMDA3NSwgMC4wMTAwNzgsIDAuMDEwMDY5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTAwNjksIDAuMDA5OTU2LCAwLjAwOTk2NiwgMC4wMDk5NzEsIDAuMDA5OTc1LCAwLjAwOTk3OCwgMC4wMDk5OCIsIFwKLSAgICAgICAgICAiMC4wMTAwNzMsIDAuMDA5OTUxLCAwLjAwOTk2MywgMC4wMDk5NjksIDAuMDA5OTc1LCAwLjAwOTk3OCwgMC4wMDk5ODEiLCBcCi0gICAgICAgICAgIjAuMDEwMTI0LCAwLjAwOTk3OCwgMC4wMDk5OTQsIDAuMDEwMDAzLCAwLjAxMDAxLCAwLjAxMDAxNSwgMC4wMTAwMTkiLCBcCi0gICAgICAgICAgIjAuMDEwMzI0LCAwLjAxMDA2NywgMC4wMTAwNywgMC4wMTAwNzQsIDAuMDEwMDc5LCAwLjAxMDA4MywgMC4wMTAwODYiLCBcCi0gICAgICAgICAgIjAuMDEwNDM2LCAwLjAxMDEzOCwgMC4wMTAxMzcsIDAuMDEwMTQyLCAwLjAxMDE0OCwgMC4wMTAxNTIsIDAuMDEwMTU2IiwgXAotICAgICAgICAgICIwLjAxMDcxNCwgMC4wMTAyODQsIDAuMDEwMjY1LCAwLjAxMDI2NCwgMC4wMTAyNjYsIDAuMDEwMjY4LCAwLjAxMDI3IiwgXAotICAgICAgICAgICIwLjAxMTAwNSwgMC4wMTA0NTEsIDAuMDEwNDA4LCAwLjAxMDQwNSwgMC4wMTA0MDIsIDAuMDEwNDAyLCAwLjAxMDQwMyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA4ODUsIDAuMDA4OTU5LCAwLjAwODk5NCwgMC4wMDkwMDgsIDAuMDA5MDE2LCAwLjAwOTAyMiwgMC4wMDkwMjciLCBcCi0gICAgICAgICAgIjAuMDA4ODY4LCAwLjAwODk3OSwgMC4wMDkwMTEsIDAuMDA5MDI1LCAwLjAwOTAzNSwgMC4wMDkwNDQsIDAuMDA5MDUiLCBcCi0gICAgICAgICAgIjAuMDA4OTY5LCAwLjAwOTA3MSwgMC4wMDkxMDMsIDAuMDA5MTE5LCAwLjAwOTEzLCAwLjAwOTEzNiwgMC4wMDkxMzYiLCBcCi0gICAgICAgICAgIjAuMDA5MDc0LCAwLjAwOTE4NCwgMC4wMDkyMTcsIDAuMDA5MjI5LCAwLjAwOTIzOSwgMC4wMDkyNDYsIDAuMDA5MjUiLCBcCi0gICAgICAgICAgIjAuMDA5MjA3LCAwLjAwOTMxNiwgMC4wMDkzNDksIDAuMDA5MzU5LCAwLjAwOTM2OCwgMC4wMDkzNzQsIDAuMDA5Mzc5IiwgXAotICAgICAgICAgICIwLjAwOTQxLCAwLjAwOTUyMiwgMC4wMDk1NTMsIDAuMDA5NTY0LCAwLjAwOTU3MywgMC4wMDk1NzksIDAuMDA5NTg1IiwgXAotICAgICAgICAgICIwLjAwOTYwMiwgMC4wMDk3MDQsIDAuMDA5NzM3LCAwLjAwOTc0NiwgMC4wMDk3NjEsIDAuMDA5NzY1LCAwLjAwOTc3MSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA3NjUzLCAwLjAwNzYyNiwgMC4wMDc2NDksIDAuMDA3NjU4LCAwLjAwNzY2NiwgMC4wMDc2NywgMC4wMDc2NzQiLCBcCi0gICAgICAgICAgIjAuMDA3NzczLCAwLjAwNzc1LCAwLjAwNzc3NSwgMC4wMDc3ODQsIDAuMDA3NzkzLCAwLjAwNzc5NywgMC4wMDc4MDIiLCBcCi0gICAgICAgICAgIjAuMDA3OTg1LCAwLjAwNzk2MSwgMC4wMDc5ODksIDAuMDA4LCAwLjAwODAxLCAwLjAwODAxNiwgMC4wMDgwMjEiLCBcCi0gICAgICAgICAgIjAuMDA4MjE1LCAwLjAwODE4MywgMC4wMDgyMSwgMC4wMDgyMjIsIDAuMDA4MjMzLCAwLjAwODIzOSwgMC4wMDgyNDUiLCBcCi0gICAgICAgICAgIjAuMDA4NDQ5LCAwLjAwODQyLCAwLjAwODQ0OCwgMC4wMDg0NTksIDAuMDA4NDcsIDAuMDA4NDc3LCAwLjAwODQ4MyIsIFwKLSAgICAgICAgICAiMC4wMDg4NDksIDAuMDA4ODE3LCAwLjAwODgyMywgMC4wMDg4NTQsIDAuMDA4ODY1LCAwLjAwODg2NSwgMC4wMDg4NzciLCBcCi0gICAgICAgICAgIjAuMDA5MjIyLCAwLjAwOTE0NSwgMC4wMDkxNzIsIDAuMDA5MjE4LCAwLjAwOTE5MiwgMC4wMDkyMzUsIDAuMDA5MjQiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBYTk9SMlhMICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKFhOT1IyWEwpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4zNjY3MTg7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYxNTIyNzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MTUyMjc7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjE1MjAzOwotICB9Ci0gIHBpbihCKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDEyMTgwNjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDEyMTgwMTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDEyMTgwNjsKLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjE5NzM0OwotICAgIGZ1bmN0aW9uIDogIighKEFeQikpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODgxMDIsIDAuMDk4NjI2LCAwLjE5MzI4NywgMC4zNTEyNTQsIDAuNTA4OTU2LCAwLjg3NzM4MSwgMS4wODc4IiwgXAotICAgICAgICAgICIwLjA5NjI2MywgMC4xMDY4LCAwLjIwMTQ5MiwgMC4zNTkzMTQsIDAuNTE3NTQsIDAuODg1NTUxLCAxLjA5NjA2IiwgXAotICAgICAgICAgICIwLjEwNTUzOSwgMC4xMTYwNTQsIDAuMjEwNzIyLCAwLjM2ODY0NywgMC41MjY2OTYsIDAuODk0ODcsIDEuMTA1MTQiLCBcCi0gICAgICAgICAgIjAuMTEzMTEsIDAuMTIzNjIyLCAwLjIxODI2NiwgMC4zNzYxMjMsIDAuNTM0Mzk5LCAwLjkwMjU5MiwgMS4xMTI5IiwgXAotICAgICAgICAgICIwLjExOTQ5OCwgMC4xMzAwMjEsIDAuMjI0NjM5LCAwLjM4MjUxNCwgMC41NDAzNDQsIDAuOTA4NzgxLCAxLjExOTU4IiwgXAotICAgICAgICAgICIwLjEyNzk2MSwgMC4xMzg0OTYsIDAuMjMzMTIyLCAwLjM5MTAwNSwgMC41NDg4NDgsIDAuOTE3MTgsIDEuMTI3NzIiLCBcCi0gICAgICAgICAgIjAuMTM0MjA5LCAwLjE0NDY2MSwgMC4yMzkzMSwgMC4zOTcxMzIsIDAuNTU0OTI0LCAwLjkyMzk5NiwgMS4xMzM4Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExODYzLCAwLjE0MDM3NCwgMC4zMzg4NjEsIDAuNjcwMzQzLCAxLjAwMzUyLCAxLjc3NjkyLCAyLjIxOTYzIiwgXAotICAgICAgICAgICIwLjExODYwNSwgMC4xNDAzODQsIDAuMzM4MjQ3LCAwLjY3MTQ2OCwgMS4wMDI0MSwgMS43NzY3NywgMi4yMTkwOSIsIFwKLSAgICAgICAgICAiMC4xMTg3NDEsIDAuMTQwNDk2LCAwLjMzODUxMywgMC42NzAwMzEsIDEuMDAyNTUsIDEuNzc2NTIsIDIuMjE5NzYiLCBcCi0gICAgICAgICAgIjAuMTE5MTgyLCAwLjE0MDgzMSwgMC4zMzg1ODUsIDAuNjcwNTE4LCAxLjAwMjM0LCAxLjc3ODQ1LCAyLjIxOTExIiwgXAotICAgICAgICAgICIwLjExOTcwNCwgMC4xNDEyNzYsIDAuMzM4Njk4LCAwLjY3MDc0LCAxLjAwMzMzLCAxLjc3NjQ5LCAyLjIyMTg3IiwgXAotICAgICAgICAgICIwLjEyMDQ5OCwgMC4xNDE5MjQsIDAuMzM4Nzk2LCAwLjY3MDA3NCwgMS4wMDIwMiwgMS43NzgxOSwgMi4yMjIzOCIsIFwKLSAgICAgICAgICAiMC4xMjE0OTksIDAuMTQyNTk2LCAwLjMzODg1NywgMC42NzAyMDMsIDEuMDAzNDMsIDEuNzc3MTYsIDIuMjIzMjEiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg3NTMyLCAwLjA5NzIxNiwgMC4xODQwNTYsIDAuMzI4NzYxLCAwLjQ3MzYwOSwgMC44MTE0ODMsIDEuMDA0MDUiLCBcCi0gICAgICAgICAgIjAuMDk1MzMyLCAwLjEwNTAzNCwgMC4xOTE4NzMsIDAuMzM2NjE2LCAwLjQ4MTMyNywgMC44MTk1NDcsIDEuMDEyMTMiLCBcCi0gICAgICAgICAgIjAuMTA0MjgzLCAwLjExMzk4MiwgMC4yMDA4MTUsIDAuMzQ1NTg3LCAwLjQ5MDMyMiwgMC44MjgxMzksIDEuMDIxMDUiLCBcCi0gICAgICAgICAgIjAuMTExNzc1LCAwLjEyMTQ2OSwgMC4yMDgyOTUsIDAuMzUzMDEyLCAwLjQ5NzczNywgMC44MzU0ODIsIDEuMDI4NTMiLCBcCi0gICAgICAgICAgIjAuMTE3ODM4LCAwLjEyNzU0NiwgMC4yMTQzNjMsIDAuMzU5MDk0LCAwLjUwMzg2NiwgMC44NDE1ODYsIDEuMDM0NjUiLCBcCi0gICAgICAgICAgIjAuMTI1OTg4LCAwLjEzNTcyNSwgMC4yMjI1NzEsIDAuMzY3MjQsIDAuNTExOTYzLCAwLjg0OTk3OCwgMS4wNDI3OSIsIFwKLSAgICAgICAgICAiMC4xMzE5NDksIDAuMTQxNjY3LCAwLjIyODU0NiwgMC4zNzMxOTIsIDAuNTE3OTc3LCAwLjg1NTkyOSwgMS4wNDkwMyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDc0NTcsIDAuMTI2NzY3LCAwLjMwMzUzOSwgMC42MDA3LCAwLjg5NjUxMywgMS41ODkyNCwgMS45ODQ4NSIsIFwKLSAgICAgICAgICAiMC4xMDc0NDUsIDAuMTI2NzY0LCAwLjMwMzU1MywgMC41OTkzNDUsIDAuODk4MDU0LCAxLjU4OTYsIDEuOTg5MTUiLCBcCi0gICAgICAgICAgIjAuMTA3NjM0LCAwLjEyNjkxMiwgMC4zMDM1OTMsIDAuNTk5MTczLCAwLjg5NjQ3NywgMS41OTA1NiwgMS45ODkxIiwgXAotICAgICAgICAgICIwLjEwODEsIDAuMTI3MzM1LCAwLjMwMzcyNiwgMC41OTkzNzQsIDAuODk2MTg5LCAxLjU4ODUyLCAxLjk4NTU3IiwgXAotICAgICAgICAgICIwLjEwODYyOSwgMC4xMjc3NTUsIDAuMzAzODEyLCAwLjU5OTM3MywgMC44OTY2MjIsIDEuNTg5NjQsIDEuOTg1MzciLCBcCi0gICAgICAgICAgIjAuMTA5Mzk3LCAwLjEyODQ4LCAwLjMwNDAyNCwgMC41OTk4MTUsIDAuODk3OTc0LCAxLjU4OTI3LCAxLjk4NjU3IiwgXAotICAgICAgICAgICIwLjExMDMzMywgMC4xMjkxMTcsIDAuMzA0MjUyLCAwLjU5OTkxMywgMC44OTcxNCwgMS41ODk0MSwgMS45ODUxMSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTgyNDcsIDAuMTA4ODAxLCAwLjIwMzYzNCwgMC4zNjE0OTIsIDAuNTE5MzI0LCAwLjg4NzUzNCwgMS4wOTc5NyIsIFwKLSAgICAgICAgICAiMC4xMDU2OTcsIDAuMTE2MjQ5LCAwLjIxMTExMywgMC4zNjg5NzEsIDAuNTI2Nzk2LCAwLjg5NTAzNCwgMS4xMDU0OCIsIFwKLSAgICAgICAgICAiMC4xMTE4NTEsIDAuMTIyNDA4LCAwLjIxNzIzMywgMC4zNzUxMzIsIDAuNTMyOTMyLCAwLjkwMTExNCwgMS4xMTE3OSIsIFwKLSAgICAgICAgICAiMC4xMTYzNTcsIDAuMTI2OTE1LCAwLjIyMTczNiwgMC4zNzk1ODYsIDAuNTM3NDEzLCAwLjkwNTYxMywgMS4xMTYwNSIsIFwKLSAgICAgICAgICAiMC4xMTk5MzcsIDAuMTMwNDksIDAuMjI1MzEsIDAuMzgzMTY1LCAwLjU0MTAzLCAwLjkwOTIwNSwgMS4xMTk2NSIsIFwKLSAgICAgICAgICAiMC4xMjQ2NDcsIDAuMTM1MTUxLCAwLjIyOTk3OSwgMC4zODc4MDgsIDAuNTQ1NzI4LCAwLjkxMzg4LCAxLjEyNDI2IiwgXAotICAgICAgICAgICIwLjEyODExMywgMC4xMzg2NTgsIDAuMjMzNDI0LCAwLjM5MTIyNCwgMC41NDkwNzksIDAuOTE3MjQzLCAxLjEyNzgiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTE4Mjg1LCAwLjE0MDE3NSwgMC4zMzg3MzMsIDAuNjcwNzUzLCAxLjAwMzEzLCAxLjc3Nzg0LCAyLjIyMDk0IiwgXAotICAgICAgICAgICIwLjExODMzLCAwLjE0MDE3NSwgMC4zMzg1NCwgMC42NzA0NDEsIDEuMDAyNzgsIDEuNzc3NzUsIDIuMjE5OTQiLCBcCi0gICAgICAgICAgIjAuMTE4MzU3LCAwLjE0MDE4MiwgMC4zMzkwMywgMC42NzEzODgsIDEuMDAyOTUsIDEuNzc5NTYsIDIuMjE5OSIsIFwKLSAgICAgICAgICAiMC4xMTgzNDYsIDAuMTQwMjgxLCAwLjMzODcwMSwgMC42NzA3MTEsIDEuMDAzMDMsIDEuNzc5NSwgMi4yMjExMSIsIFwKLSAgICAgICAgICAiMC4xMTgzNzEsIDAuMTQwMTQ3LCAwLjMzODY4NywgMC42NzA4MDUsIDEuMDAyNDQsIDEuNzc4MjQsIDIuMjIwNjUiLCBcCi0gICAgICAgICAgIjAuMTE4MjUsIDAuMTQwMTM3LCAwLjMzODczNiwgMC42NzA2ODksIDEuMDAzNzgsIDEuNzc4MTIsIDIuMjIwOTgiLCBcCi0gICAgICAgICAgIjAuMTE4NDUsIDAuMTQwMTg0LCAwLjMzODgzOSwgMC42NzA2NjYsIDEuMDAzNzQsIDEuNzc3OTMsIDIuMjIyODciKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk2MDYzLCAwLjEwNTc1NiwgMC4xOTI2OTMsIDAuMzM3NDUyLCAwLjQ4MjE1MiwgMC44MTk3OTksIDEuMDEyNjQiLCBcCi0gICAgICAgICAgIjAuMTAzNjY0LCAwLjExMzM1NiwgMC4yMDAyOTUsIDAuMzQ1MDU1LCAwLjQ4OTczMywgMC44MjczMzEsIDEuMDIwMjMiLCBcCi0gICAgICAgICAgIjAuMTEwMDE1LCAwLjExOTcxMiwgMC4yMDY2NiwgMC4zNTE0MDcsIDAuNDk2MDgyLCAwLjgzMzY4OSwgMS4wMjY2IiwgXAotICAgICAgICAgICIwLjExNDcyNywgMC4xMjQ0MjMsIDAuMjExMzYxLCAwLjM1NjExOSwgMC41MDA3OTksIDAuODM4Mzk2LCAxLjAzMTMiLCBcCi0gICAgICAgICAgIjAuMTE4NDc3LCAwLjEyODE2MSwgMC4yMTUxMzksIDAuMzU5ODU4LCAwLjUwNDUzNSwgMC44NDIxMzUsIDEuMDM1MDQiLCBcCi0gICAgICAgICAgIjAuMTIzNTI4LCAwLjEzMzIxOSwgMC4yMjAxNDMsIDAuMzY0ODg5LCAwLjUwOTY0NSwgMC44NDcxNjksIDEuMDQwMTMiLCBcCi0gICAgICAgICAgIjAuMTI3MjU2LCAwLjEzNjg1NywgMC4yMjM4NTEsIDAuMzY4NjU3LCAwLjUxMzI4NywgMC44NTA4ODQsIDEuMDQzNzciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTA2ODc3LCAwLjEyNjI1MSwgMC4zMDM1MjUsIDAuNjAwNzIsIDAuODk2OTk3LCAxLjU5MjM2LCAxLjk4NjEiLCBcCi0gICAgICAgICAgIjAuMTA2ODc0LCAwLjEyNjI1NiwgMC4zMDM1MTcsIDAuNjAwNzE4LCAwLjg5Nzk0OSwgMS41OSwgMS45ODg0MyIsIFwKLSAgICAgICAgICAiMC4xMDY4ODYsIDAuMTI2MjY5LCAwLjMwMzU2LCAwLjYwMDA4NCwgMC44OTc5ODUsIDEuNTkwMDYsIDEuOTg2MzgiLCBcCi0gICAgICAgICAgIjAuMTA2ODk3LCAwLjEyNjI3OCwgMC4zMDM0NjksIDAuNjAwNjA5LCAwLjg5NzkyNCwgMS41ODk4OCwgMS45ODgyMyIsIFwKLSAgICAgICAgICAiMC4xMDY4NjksIDAuMTI2MzA4LCAwLjMwMzYwMywgMC42MDA2MTQsIDAuODk3ODgsIDEuNTg5OSwgMS45ODYxOSIsIFwKLSAgICAgICAgICAiMC4xMDY3NjIsIDAuMTI2MTg3LCAwLjMwMzQ2MSwgMC42MDA1NjgsIDAuODk4MjU5LCAxLjU5MTczLCAxLjk4NjU2IiwgXAotICAgICAgICAgICIwLjEwNzAzOCwgMC4xMjYyNDgsIDAuMzAzNDQ3LCAwLjU5OTUwNiwgMC44OTc5NjcsIDEuNTkyMzgsIDEuOTg4MjMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc3Nzg4LCAwLjA4ODMyMSwgMC4xODMwMjksIDAuMzQwOTYsIDAuNDk4OTM5LCAwLjg2NzUyNCwgMS4wNzc1NCIsIFwKLSAgICAgICAgICAiMC4wODUzNzMsIDAuMDk1OTExLCAwLjE5MDYxNCwgMC4zNDg3NDIsIDAuNTA2NjA3LCAwLjg3NDc2NywgMS4wODUzIiwgXAotICAgICAgICAgICIwLjA5MzIxMSwgMC4xMDM3NCwgMC4xOTg0NDIsIDAuMzU2Mzk4LCAwLjUxNDIzNywgMC44ODI0NTksIDEuMDkzMDkiLCBcCi0gICAgICAgICAgIjAuMDk5MTc3LCAwLjEwOTcxNCwgMC4yMDQ0NTIsIDAuMzYyMzA0LCAwLjUyMDU5NiwgMC44ODg1MzgsIDEuMDk4OTEiLCBcCi0gICAgICAgICAgIjAuMTA0MTIxLCAwLjExNDY2MSwgMC4yMDkzNDYsIDAuMzY3MjU1LCAwLjUyNTEzOSwgMC44OTM4NTEsIDEuMTA0NTEiLCBcCi0gICAgICAgICAgIjAuMTEwNTkxLCAwLjEyMTE1OSwgMC4yMTU5MzEsIDAuMzczNzM3LCAwLjUzMTYyOSwgMC45MDAzMDMsIDEuMTEwODYiLCBcCi0gICAgICAgICAgIjAuMTE1NjA5LCAwLjEyNjExMiwgMC4yMjA5NzcsIDAuMzc4NjU0LCAwLjUzNjUxMiwgMC45MDQ5NjYsIDEuMTE2MTQiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTE4MzYzLCAwLjE0MDI2NiwgMC4zMzg1MzMsIDAuNjcwMDQzLCAxLjAwMjQ1LCAxLjc3NzUsIDIuMjIyOTgiLCBcCi0gICAgICAgICAgIjAuMTE4MzU1LCAwLjE0MDIxOCwgMC4zMzg4ODEsIDAuNjcwMzY5LCAxLjAwMjU0LCAxLjc3NjU2LCAyLjIyMTI5IiwgXAotICAgICAgICAgICIwLjExODYwOSwgMC4xNDAzOTksIDAuMzM4ODIyLCAwLjY3MDAyNywgMS4wMDIwNywgMS43NzcwMywgMi4yMjI3OCIsIFwKLSAgICAgICAgICAiMC4xMTkwMjEsIDAuMTQwNzQsIDAuMzM4NDc1LCAwLjY3MDI0NSwgMS4wMDIzNSwgMS43NzY2NywgMi4yMTk3MSIsIFwKLSAgICAgICAgICAiMC4xMTkzNzIsIDAuMTQxMDcsIDAuMzM4OTQ5LCAwLjY3MDYyMSwgMS4wMDMwNCwgMS43Nzc1MSwgMi4yMjAyMiIsIFwKLSAgICAgICAgICAiMC4xMTk5NjYsIDAuMTQxNDMyLCAwLjMzOTEyNiwgMC42NzA2OTQsIDEuMDAyMjksIDEuNzc3NDMsIDIuMjIwMTkiLCBcCi0gICAgICAgICAgIjAuMTIwNjQzLCAwLjE0MjE5OCwgMC4zMzkwNjMsIDAuNjcxMTY4LCAxLjAwNDA0LCAxLjc3Njc4LCAyLjIyMDI0Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3OTM0MSwgMC4wODkwMzgsIDAuMTc1OTg3LCAwLjMyMDcxNCwgMC40NjU0MDQsIDAuODAyOTk4LCAwLjk5NTkwMyIsIFwKLSAgICAgICAgICAiMC4wODY3NDIsIDAuMDk2NDMzLCAwLjE4MzM4NCwgMC4zMjgxNDgsIDAuNDcyODEzLCAwLjgxMDQxNywgMS4wMDMzOCIsIFwKLSAgICAgICAgICAiMC4wOTUwNjcsIDAuMTA0NzcsIDAuMTkxNzE3LCAwLjMzNjQ3NSwgMC40ODExNTMsIDAuODE4NzUsIDEuMDExNjYiLCBcCi0gICAgICAgICAgIjAuMTAxNjA0LCAwLjExMTMyLCAwLjE5ODI0OSwgMC4zNDMwMTcsIDAuNDg3NjkyLCAwLjgyNTI4NywgMS4wMTgxOSIsIFwKLSAgICAgICAgICAiMC4xMDY5NzgsIDAuMTE2Njk5LCAwLjIwMzY2LCAwLjM0ODM5MywgMC40OTMxMTgsIDAuODMwNjY4LCAxLjAyMzY1IiwgXAotICAgICAgICAgICIwLjExNDAyOCwgMC4xMjM4NDcsIDAuMjEwODc0LCAwLjM1NTY0MywgMC41MDAzMzksIDAuODM4MDY1LCAxLjAzMDkyIiwgXAotICAgICAgICAgICIwLjExOTQwMSwgMC4xMjkxNywgMC4yMTYzNDIsIDAuMzYxMTQ5LCAwLjUwNTg5OSwgMC44NDM0NjcsIDEuMDM2MjYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTA2OTIzLCAwLjEyNjI5OSwgMC4zMDM1NzksIDAuNTk5OTI1LCAwLjg5Nzk5NSwgMS41OTE4MiwgMS45ODU5IiwgXAotICAgICAgICAgICIwLjEwNjkzNiwgMC4xMjYzMiwgMC4zMDM1MzEsIDAuNjAwNzE5LCAwLjg5Nzk3MiwgMS41OTE4NiwgMS45ODUxNCIsIFwKLSAgICAgICAgICAiMC4xMDcyMTksIDAuMTI2NTM1LCAwLjMwMzU3LCAwLjU5OTU3NSwgMC44OTc5ODksIDEuNTkxODEsIDEuOTg2MDgiLCBcCi0gICAgICAgICAgIjAuMTA3NzA2LCAwLjEyNjk1NywgMC4zMDM2MjQsIDAuNTk5NzA2LCAwLjg5Nzk5OSwgMS41OTE3LCAxLjk4ODMzIiwgXAotICAgICAgICAgICIwLjEwODE3MiwgMC4xMjczOTMsIDAuMzAzOTY1LCAwLjYwMDcwNywgMC44OTgxNjcsIDEuNTkxOTQsIDEuOTg1NTgiLCBcCi0gICAgICAgICAgIjAuMTA4ODE0LCAwLjEyNzg3NiwgMC4zMDQxMjIsIDAuNjAwODQ3LCAwLjg5NzE4NywgMS41OTI1MSwgMS45ODU0IiwgXAotICAgICAgICAgICIwLjEwOTQ5NCwgMC4xMjg1MDksIDAuMzAzOTYzLCAwLjYwMDg3NiwgMC44OTgxMzQsIDEuNTkyNSwgMS45ODgyNiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTQ4MzUsIDAuMTA1Mzg1LCAwLjIwMDIxMiwgMC4zNTgwNzcsIDAuNTE1OTI0LCAwLjg4NDE2MSwgMS4wOTQ1NSIsIFwKLSAgICAgICAgICAiMC4xMDIxNzYsIDAuMTEyNzM1LCAwLjIwNzU2MywgMC4zNjU0MiwgMC41MjMyNTksIDAuODkxNTA2LCAxLjEwMTg3IiwgXAotICAgICAgICAgICIwLjEwODM1NSwgMC4xMTg5MTEsIDAuMjEzNzQyLCAwLjM3MTYwMiwgMC41Mjk0NTgsIDAuODk3NzE0LCAxLjEwODA3IiwgXAotICAgICAgICAgICIwLjExMjcwOCwgMC4xMjMyNjUsIDAuMjE4MDk3LCAwLjM3NjAwNCwgMC41MzM3NzEsIDAuOTAxOTgyLCAxLjExMjM0IiwgXAotICAgICAgICAgICIwLjExNjA5MywgMC4xMjY2ODQsIDAuMjIxNTgsIDAuMzc5NDY2LCAwLjUzNzI1NCwgMC45MDU0NjYsIDEuMTE2MTIiLCBcCi0gICAgICAgICAgIjAuMTIwNjU5LCAwLjEzMTI1MiwgMC4yMjYyNTcsIDAuMzg0MTQ3LCAwLjU0MTk4NiwgMC45MTAxODgsIDEuMTIwNjEiLCBcCi0gICAgICAgICAgIjAuMTIzOTk2LCAwLjEzNDU3NSwgMC4yMjk2MzgsIDAuMzg3NTM2LCAwLjU0NTQyLCAwLjkxMzU4NSwgMS4xMjM5OSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTgyNywgMC4xNDAxODIsIDAuMzM5MDMsIDAuNjcwNzM0LCAxLjAwMjg3LCAxLjc3Nzg2LCAyLjIyMDgyIiwgXAotICAgICAgICAgICIwLjExODMyNiwgMC4xNDAxNzcsIDAuMzM4NzM1LCAwLjY3MTM1MiwgMS4wMDMwMiwgMS43Nzk2OCwgMi4yMjExOCIsIFwKLSAgICAgICAgICAiMC4xMTgzMjMsIDAuMTQwMjE5LCAwLjMzODc1NiwgMC42NzA3MTksIDEuMDAzODYsIDEuNzc5NjgsIDIuMjIxMjkiLCBcCi0gICAgICAgICAgIjAuMTE4NTQxLCAwLjE0MDM3OSwgMC4zMzkwMjMsIDAuNjcxMzUxLCAxLjAwMzc5LCAxLjc3OTU5LCAyLjIyMjgyIiwgXAotICAgICAgICAgICIwLjExODU2OSwgMC4xNDA0MjgsIDAuMzM4NzMzLCAwLjY3MDM1MSwgMS4wMDI5NCwgMS43NzgwNCwgMi4yMTkxOSIsIFwKLSAgICAgICAgICAiMC4xMTg1MjksIDAuMTQwMzkyLCAwLjMzODgyOCwgMC42NzA5OTksIDEuMDAyOTEsIDEuNzc4MTYsIDIuMjIyNiIsIFwKLSAgICAgICAgICAiMC4xMTg2OTIsIDAuMTQwNDM5LCAwLjMzODgwNiwgMC42NzA5NjIsIDEuMDAzMDEsIDEuNzc5MSwgMi4yMjExNiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODE1MiwgMC4wOTEyMTgsIDAuMTc4MDg3LCAwLjMyMjgwNiwgMC40Njc3MDYsIDAuODA1NTc0LCAwLjk5ODE5NyIsIFwKLSAgICAgICAgICAiMC4wOTAyMDYsIDAuMDk5OTA4LCAwLjE4Njc5MiwgMC4zMzE1MjQsIDAuNDc2MjUsIDAuODEzOTg4LCAxLjAwNzA4IiwgXAotICAgICAgICAgICIwLjA5ODM2MywgMC4xMDgwNjQsIDAuMTk0OTI1LCAwLjMzOTc0NiwgMC40ODQ0MTUsIDAuODIyNDM5LCAxLjAxNTA4IiwgXAotICAgICAgICAgICIwLjEwMzc3MiwgMC4xMTM0NjcsIDAuMjAwMzQ3LCAwLjM0NTA0NiwgMC40ODk5MTgsIDAuODI3NzE3LCAxLjAyMDQ2IiwgXAotICAgICAgICAgICIwLjEwNzk3NiwgMC4xMTc2NTksIDAuMjA0NTEzLCAwLjM0OTIyMiwgMC40OTM5NjksIDAuODMxNzE4LCAxLjAyNDc1IiwgXAotICAgICAgICAgICIwLjExMzYsIDAuMTIzMjY5LCAwLjIxMDAyNCwgMC4zNTQ3MTIsIDAuNDk5NTU0LCAwLjgzNzY0OSwgMS4wMzAxMSIsIFwKLSAgICAgICAgICAiMC4xMTc3MzksIDAuMTI3NDA3LCAwLjIxNDA0MiwgMC4zNTg3NzcsIDAuNTAzNTMyLCAwLjg0MTIwNCwgMS4wMzQyNyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDcyOTQsIDAuMTI2NjEyLCAwLjMwMzUxNSwgMC42MDA2NjMsIDAuODk2MzY0LCAxLjU4OTI0LCAxLjk4NDYiLCBcCi0gICAgICAgICAgIjAuMTA3MjYxLCAwLjEyNjYyLCAwLjMwMzU5NywgMC41OTk4NDUsIDAuODk2MTg1LCAxLjU4ODYyLCAxLjk4NTI5IiwgXAotICAgICAgICAgICIwLjEwNzI0MSwgMC4xMjY1ODQsIDAuMzAzNDQsIDAuNTk5NTIyLCAwLjg5NjE3NSwgMS41ODkyMywgMS45ODQ1OCIsIFwKLSAgICAgICAgICAiMC4xMDcxMTQsIDAuMTI2NDc4LCAwLjMwMzU1OSwgMC42MDA2MTksIDAuODk2Mzk5LCAxLjU4OTI2LCAxLjk4NDU2IiwgXAotICAgICAgICAgICIwLjEwNzExNSwgMC4xMjY0NjYsIDAuMzAzMzU0LCAwLjYwMDU4NywgMC44OTc3ODcsIDEuNTkyMDgsIDEuOTg1NjciLCBcCi0gICAgICAgICAgIjAuMTA2OTY2LCAwLjEyNjI4MywgMC4zMDI4MzUsIDAuNTk5NjU2LCAwLjg5NjUyNywgMS41ODksIDEuOTg0NiIsIFwKLSAgICAgICAgICAiMC4xMDcyMTIsIDAuMTI2NDUxLCAwLjMwMjg4LCAwLjYwMDUxMywgMC44OTU5OTYsIDEuNTg4ODUsIDEuOTg4NDciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQwNjcsIDAuMDA0MDY4LCAwLjAwNDA3NSwgMC4wMDQwNzcsIDAuMDA0MDc4LCAwLjAwNDA3OSwgMC4wMDQwOCIsIFwKLSAgICAgICAgICAiMC4wMDQwNjksIDAuMDA0MDcxLCAwLjAwNDA3NywgMC4wMDQwOCwgMC4wMDQwODEsIDAuMDA0MDgxLCAwLjAwNDA4MiIsIFwKLSAgICAgICAgICAiMC4wMDQxNDEsIDAuMDA0MTQyLCAwLjAwNDE0OCwgMC4wMDQxNSwgMC4wMDQxNTEsIDAuMDA0MTUyLCAwLjAwNDE1MiIsIFwKLSAgICAgICAgICAiMC4wMDQyNDMsIDAuMDA0MjQ1LCAwLjAwNDI1LCAwLjAwNDI0NiwgMC4wMDQyNTIsIDAuMDA0MjUzLCAwLjAwNDI0NyIsIFwKLSAgICAgICAgICAiMC4wMDQzNjIsIDAuMDA0MzU2LCAwLjAwNDM2NywgMC4wMDQzNjgsIDAuMDA0MzY4LCAwLjAwNDM2MiwgMC4wMDQzNjgiLCBcCi0gICAgICAgICAgIjAuMDA0NTczLCAwLjAwNDU2NSwgMC4wMDQ1NzQsIDAuMDA0NTY2LCAwLjAwNDU3NiwgMC4wMDQ1NzUsIDAuMDA0NTY2IiwgXAotICAgICAgICAgICIwLjAwNDc2OCwgMC4wMDQ3NjgsIDAuMDA0NzY5LCAwLjAwNDc1NCwgMC4wMDQ3NTUsIDAuMDA0NzU0LCAwLjAwNDc2NiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzQwNCwgMC4wMDM0MDYsIDAuMDAzNDEzLCAwLjAwMzQxNiwgMC4wMDM0MTcsIDAuMDAzNDE3LCAwLjAwMzQxOCIsIFwKLSAgICAgICAgICAiMC4wMDM0MDksIDAuMDAzNDExLCAwLjAwMzQxOCwgMC4wMDM0MjEsIDAuMDAzNDIyLCAwLjAwMzQyMywgMC4wMDM0MjMiLCBcCi0gICAgICAgICAgIjAuMDAzNDc5LCAwLjAwMzQ4MSwgMC4wMDM0ODcsIDAuMDAzNDksIDAuMDAzNDkxLCAwLjAwMzQ5MiwgMC4wMDM0OTIiLCBcCi0gICAgICAgICAgIjAuMDAzNTgxLCAwLjAwMzU4MywgMC4wMDM1ODksIDAuMDAzNTkxLCAwLjAwMzU5MiwgMC4wMDM1OTMsIDAuMDAzNTkzIiwgXAotICAgICAgICAgICIwLjAwMzcwMSwgMC4wMDM3MDEsIDAuMDAzNzE0LCAwLjAwMzcxLCAwLjAwMzcxLCAwLjAwMzcxMSwgMC4wMDM3MTEiLCBcCi0gICAgICAgICAgIjAuMDAzOTIzLCAwLjAwMzkyNCwgMC4wMDM5MjcsIDAuMDAzOTI5LCAwLjAwMzkzLCAwLjAwMzkzMSwgMC4wMDM5MzEiLCBcCi0gICAgICAgICAgIjAuMDA0MTIyLCAwLjAwNDExMSwgMC4wMDQxMjcsIDAuMDA0MTI4LCAwLjAwNDExMywgMC4wMDQxMTMsIDAuMDA0MTI3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0MjU5LCAwLjAwNDI2MSwgMC4wMDQyNjcsIDAuMDA0MjcsIDAuMDA0MjcyLCAwLjAwNDI3MywgMC4wMDQyNzQiLCBcCi0gICAgICAgICAgIjAuMDA0MjY1LCAwLjAwNDI2NiwgMC4wMDQyNzMsIDAuMDA0Mjc1LCAwLjAwNDI3NiwgMC4wMDQyNzcsIDAuMDA0Mjc4IiwgXAotICAgICAgICAgICIwLjAwNDM1MiwgMC4wMDQzNTQsIDAuMDA0MzYsIDAuMDA0MzYyLCAwLjAwNDM2NCwgMC4wMDQzNjQsIDAuMDA0MzY1IiwgXAotICAgICAgICAgICIwLjAwNDQ1OSwgMC4wMDQ0NTksIDAuMDA0NDY2LCAwLjAwNDQ2OSwgMC4wMDQ0NjgsIDAuMDA0NDgsIDAuMDA0NDgiLCBcCi0gICAgICAgICAgIjAuMDA0NTg1LCAwLjAwNDU4NiwgMC4wMDQ1OTIsIDAuMDA0NTk0LCAwLjAwNDU5NSwgMC4wMDQ1OTYsIDAuMDA0NTk2IiwgXAotICAgICAgICAgICIwLjAwNDc5NSwgMC4wMDQ3OTYsIDAuMDA0ODAzLCAwLjAwNDgwNiwgMC4wMDQ4MDQsIDAuMDA0ODA3LCAwLjAwNDgwNyIsIFwKLSAgICAgICAgICAiMC4wMDQ5OTMsIDAuMDA0OTk0LCAwLjAwNTAwMiwgMC4wMDUwMDQsIDAuMDA1MDAzLCAwLjAwNTAwNCwgMC4wMDUwMDQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI3NjQsIDAuMDAyNzY2LCAwLjAwMjc3MSwgMC4wMDI3NzMsIDAuMDAyNzc0LCAwLjAwMjc3NSwgMC4wMDI3NzUiLCBcCi0gICAgICAgICAgIjAuMDAyODY2LCAwLjAwMjg2NywgMC4wMDI4NzMsIDAuMDAyODc1LCAwLjAwMjg3NiwgMC4wMDI4NzcsIDAuMDAyODc3IiwgXAotICAgICAgICAgICIwLjAwMzA1NywgMC4wMDMwNTksIDAuMDAzMDY0LCAwLjAwMzA2NiwgMC4wMDMwNjcsIDAuMDAzMDY4LCAwLjAwMzA2OCIsIFwKLSAgICAgICAgICAiMC4wMDMyNDcsIDAuMDAzMjUsIDAuMDAzMjU0LCAwLjAwMzI1NiwgMC4wMDMyNTYsIDAuMDAzMjU3LCAwLjAwMzI1NyIsIFwKLSAgICAgICAgICAiMC4wMDM0NTUsIDAuMDAzNDU2LCAwLjAwMzQ2LCAwLjAwMzQ2MiwgMC4wMDM0NjMsIDAuMDAzNDYzLCAwLjAwMzQ2MyIsIFwKLSAgICAgICAgICAiMC4wMDM4MjgsIDAuMDAzODI5LCAwLjAwMzgzMSwgMC4wMDM4MTQsIDAuMDAzODMzLCAwLjAwMzgzMywgMC4wMDM4MTUiLCBcCi0gICAgICAgICAgIjAuMDA0MTI1LCAwLjAwNDEyNCwgMC4wMDQxNDEsIDAuMDA0MTQyLCAwLjAwNDE0MiwgMC4wMDQxNDQsIDAuMDA0MTI5Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBYT1IyWDEgKgotICogLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChYT1IyWDEpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4zODEwNzI7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY2NTc2MTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2NjU2NzQ7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjY1NzYxOwotICB9Ci0gIHBpbihCKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDEzNjIwNDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDEzNjIwNDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDEzNjIwMzsKLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjMzODQ1OwotICAgIGZ1bmN0aW9uIDogIihBXkIpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzE5NywgMC4wOTA4MDksIDAuMTk2MzMyLCAwLjI4OTM3NSwgMC40MTM0NzYsIDAuNjYxOTY1LCAwLjgxNjg2MiIsIFwKLSAgICAgICAgICAiMC4wODAxMDcsIDAuMDk4OTQ4LCAwLjIwNDQ0NiwgMC4yOTc1OCwgMC40MjE3NjksIDAuNjcwMDksIDAuODI1MzI4IiwgXAotICAgICAgICAgICIwLjA4OTc0MSwgMC4xMDg1OCwgMC4yMTQwNjgsIDAuMzA3MTksIDAuNDMxMzQ2LCAwLjY3OTcxNCwgMC44MzQ1NDkiLCBcCi0gICAgICAgICAgIjAuMDk3ODM4LCAwLjExNjY4LCAwLjIyMjE2OSwgMC4zMTUzMDYsIDAuNDM5NjA4LCAwLjY4Nzk2LCAwLjg0Mjc0MSIsIFwKLSAgICAgICAgICAiMC4xMDQ3MTcsIDAuMTIzNjMsIDAuMjI5MTAzLCAwLjMyMjE1OSwgMC40NDY1NjEsIDAuNjk0NTksIDAuODQ5NjQ3IiwgXAotICAgICAgICAgICIwLjExMzk0LCAwLjEzMjk1LCAwLjIzODQwOCwgMC4zMzE0MywgMC40NTU1MjEsIDAuNzA0Mjk4LCAwLjg1OTE0NyIsIFwKLSAgICAgICAgICAiMC4xMjA3OTUsIDAuMTM5OTM1LCAwLjI0NTQwOCwgMC4zMzg0NDIsIDAuNDYyNTE5LCAwLjcxMDc3MywgMC44NjYxOTkiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc0Nzk1LCAwLjExMjY5NiwgMC4zMzI3NzgsIDAuNTI3OTU3LCAwLjc4OTYzNywgMS4zMTA4OSwgMS42MzY1NyIsIFwKLSAgICAgICAgICAiMC4wNzQ4NTcsIDAuMTEyNzAxLCAwLjMzMjcyNywgMC41Mjc0MjksIDAuNzg4NjksIDEuMzEwODksIDEuNjM3MjciLCBcCi0gICAgICAgICAgIjAuMDc1MDI2LCAwLjExMjgwMiwgMC4zMzI3NDMsIDAuNTI3NDc0LCAwLjc4ODY3MiwgMS4zMTA5MSwgMS42MzY4NyIsIFwKLSAgICAgICAgICAiMC4wNzU2NTksIDAuMTEzMTksIDAuMzMyNzgxLCAwLjUyNzQ0LCAwLjc4ODcwMywgMS4zMTA3NywgMS42Mzc5NyIsIFwKLSAgICAgICAgICAiMC4wNzYzODQsIDAuMTEzNzMsIDAuMzMyNDIyLCAwLjUyODUzMywgMC43ODg4NSwgMS4zMTE3LCAxLjYzNjU1IiwgXAotICAgICAgICAgICIwLjA3Nzc4NSwgMC4xMTQ2MjcsIDAuMzMzMDcsIDAuNTI3OTg3LCAwLjc4OTkyOSwgMS4zMTA2NSwgMS42MzcyMSIsIFwKLSAgICAgICAgICAiMC4wNzg3OTUsIDAuMTE1NjIxLCAwLjMzMjg2NiwgMC41Mjg2MjQsIDAuNzg4ODgxLCAxLjMxMDUxLCAxLjYzNzI3Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3NDg4OSwgMC4wOTM0OCwgMC4xOTYxODQsIDAuMjg2NjU3LCAwLjQwNzMzMiwgMC42NDg3MjMsIDAuNzk5NDQiLCBcCi0gICAgICAgICAgIjAuMDgyNzgyLCAwLjEwMTM3NSwgMC4yMDQwODUsIDAuMjk0NTU5LCAwLjQxNTMwNCwgMC42NTY3NTYsIDAuODA3ODQ1IiwgXAotICAgICAgICAgICIwLjA5MjExMSwgMC4xMTA3MDIsIDAuMjEzNDQzLCAwLjMwMzkxNiwgMC40MjQ1NDgsIDAuNjY2MDIyLCAwLjgxNjgzNSIsIFwKLSAgICAgICAgICAiMC4xMDAxMzEsIDAuMTE4NzUsIDAuMjIxNDc0LCAwLjMxMTk0MywgMC40MzI1ODgsIDAuNjc0MDkzLCAwLjgyNDk0OCIsIFwKLSAgICAgICAgICAiMC4xMDY3ODcsIDAuMTI1NDkyLCAwLjIyODI0MywgMC4zMTg2OTcsIDAuNDM5MzU2LCAwLjY4MDc3NSwgMC44MzE2NjgiLCBcCi0gICAgICAgICAgIjAuMTE1NjE3LCAwLjEzNDQ1MywgMC4yMzcyNTksIDAuMzI3NzEsIDAuNDQ4MzM2LCAwLjY4OTcwNCwgMC44NDA3NjYiLCBcCi0gICAgICAgICAgIjAuMTIyMTM3LCAwLjE0MTA2OSwgMC4yNDM5MjIsIDAuMzM0MzY5LCAwLjQ1NTA2OSwgMC42OTY0NDIsIDAuODQ3MjQ4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3Mjc0MiwgMC4xMDg1MzYsIDAuMzE2ODkyLCAwLjUwMjE3NiwgMC43NTAzNDYsIDEuMjQ2NjIsIDEuNTU5NTkiLCBcCi0gICAgICAgICAgIjAuMDcyNzU5LCAwLjEwODU0NSwgMC4zMTY5MDUsIDAuNTAyMTcxLCAwLjc1MDA3NiwgMS4yNDc1NSwgMS41NTcyMyIsIFwKLSAgICAgICAgICAiMC4wNzI5NTQsIDAuMTA4NjU5LCAwLjMxNjI0OSwgMC41MDI5MTgsIDAuNzUxMjgsIDEuMjQ3MjYsIDEuNTU2NzkiLCBcCi0gICAgICAgICAgIjAuMDczNTEsIDAuMTA4OTk3LCAwLjMxNjk4LCAwLjUwMjc4OSwgMC43NTE0MTgsIDEuMjQ3MjUsIDEuNTU2NTYiLCBcCi0gICAgICAgICAgIjAuMDc0MjI1LCAwLjEwOTU5NiwgMC4zMTY1MTYsIDAuNTAyODQ5LCAwLjc1MTQ1NywgMS4yNDcwMiwgMS41NTY2MyIsIFwKLSAgICAgICAgICAiMC4wNzU1NzUsIDAuMTEwNDQ2LCAwLjMxNzQ3NSwgMC41MDIzOTQsIDAuNzUxNDI5LCAxLjI0NTgyLCAxLjU1NjYiLCBcCi0gICAgICAgICAgIjAuMDc2NTcxLCAwLjExMTQwNCwgMC4zMTc2NCwgMC41MDMwODUsIDAuNzQ5NzQ5LCAxLjI0NjQsIDEuNTU2NzgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDgwNzE0LCAwLjA5OTU1MSwgMC4yMDUxNzIsIDAuMjk4MjksIDAuNDIyMjc1LCAwLjY3MDY1LCAwLjgyNTYyNCIsIFwKLSAgICAgICAgICAiMC4wODgyNjMsIDAuMTA3MDg2LCAwLjIxMjcxOSwgMC4zMDU4MzgsIDAuNDI5OTU4LCAwLjY3ODAzNCwgMC44MzMxNTgiLCBcCi0gICAgICAgICAgIjAuMDk0OTM1LCAwLjExMzc2NiwgMC4yMTkzOTUsIDAuMzEyNDk5LCAwLjQzNjU2LCAwLjY4NDczLCAwLjgzOTgzNCIsIFwKLSAgICAgICAgICAiMC4wOTk3MSwgMC4xMTg1MjQsIDAuMjI0MTU0LCAwLjMxNzI0NiwgMC40NDEzNDYsIDAuNjg5NDk5LCAwLjg0NDU3IiwgXAotICAgICAgICAgICIwLjEwMzUyNiwgMC4xMjIzNDEsIDAuMjI3OTU5LCAwLjMyMTA4LCAwLjQ0NTE0OCwgMC42OTMyNzgsIDAuODQ4Mzc5IiwgXAotICAgICAgICAgICIwLjEwODUyMywgMC4xMjczNDEsIDAuMjMyOTYsIDAuMzI2MDc3LCAwLjQ1MDExNCwgMC42OTgyMzksIDAuODUzMzk0IiwgXAotICAgICAgICAgICIwLjExMjE2NSwgMC4xMzEwMzMsIDAuMjM2NTQ2LCAwLjMyOTc1NCwgMC40NTM4MjMsIDAuNzAxOTc2LCAwLjg1Njk3NiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzM5NjgsIDAuMTEyMDQxLCAwLjMzMjYxNywgMC41Mjg1MjQsIDAuNzg4NzA2LCAxLjMxMDE5LCAxLjYzNzAzIiwgXAotICAgICAgICAgICIwLjA3Mzk2OSwgMC4xMTE5OTcsIDAuMzMyNjIzLCAwLjUyODUyMywgMC43ODgxOTIsIDEuMzExNDIsIDEuNjM2NjciLCBcCi0gICAgICAgICAgIjAuMDczOTg2LCAwLjExMjA1LCAwLjMzMjY3NywgMC41Mjg1MSwgMC43ODkwNDIsIDEuMzEwNDMsIDEuNjM3MDUiLCBcCi0gICAgICAgICAgIjAuMDc0MDAzLCAwLjExMjA1NSwgMC4zMzI2NzYsIDAuNTI3OTM1LCAwLjc4ODU3MywgMS4zMTA3NSwgMS42MzY2MiIsIFwKLSAgICAgICAgICAiMC4wNzQwMSwgMC4xMTIwNjYsIDAuMzMyMjU3LCAwLjUyODUxMywgMC43ODksIDEuMzExMTQsIDEuNjM2NiIsIFwKLSAgICAgICAgICAiMC4wNzQxNTYsIDAuMTExOTc5LCAwLjMzMjIxNiwgMC41Mjg0OTIsIDAuNzg5NzQ1LCAxLjMxMTM5LCAxLjYzOTI3IiwgXAotICAgICAgICAgICIwLjA3NDEwOCwgMC4xMTIxNDUsIDAuMzMyMjcsIDAuNTI4NTQ4LCAwLjc4OTgsIDEuMzExLCAxLjYzNzc5Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4MzEzNiwgMC4xMDE2MTksIDAuMjA0Mzk0LCAwLjI5NDkxNiwgMC40MTU1NDUsIDAuNjU2ODEsIDAuODA3NTYiLCBcCi0gICAgICAgICAgIjAuMDkwODY4LCAwLjEwOTM1NSwgMC4yMTIxMjgsIDAuMzAyNjM5LCAwLjQyMzI4NSwgMC42NjQ1MTMsIDAuODE1MzE0IiwgXAotICAgICAgICAgICIwLjA5NzU5OSwgMC4xMTYwODIsIDAuMjE4ODU4LCAwLjMwOTM2MiwgMC40MzAwMTQsIDAuNjcxMjM3LCAwLjgyMjAwOSIsIFwKLSAgICAgICAgICAiMC4xMDI1MTMsIDAuMTIwOTk5LCAwLjIyMzc2MiwgMC4zMTQyNzgsIDAuNDM0OTE1LCAwLjY3NjE5NSwgMC44MjcwMzEiLCBcCi0gICAgICAgICAgIjAuMTA2NDE1LCAwLjEyNDkxMywgMC4yMjc2ODYsIDAuMzE4MjA4LCAwLjQzODgzNSwgMC42ODAxMzMsIDAuODMwOTA1IiwgXAotICAgICAgICAgICIwLjExMTc2NiwgMC4xMzAyMDQsIDAuMjMzMDA1LCAwLjMyMzUzMywgMC40NDQxNjcsIDAuNjg1MzY4LCAwLjgzNjI1OSIsIFwKLSAgICAgICAgICAiMC4xMTU2NTUsIDAuMTM0MTk2LCAwLjIzNjkzLCAwLjMyNzM3MywgMC40NDgwNzksIDAuNjg5MjYsIDAuODQwMTA4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3MTcwMSwgMC4xMDc2NTQsIDAuMzE2NzAxLCAwLjUwMjMxNCwgMC43NTEzMDQsIDEuMjQ3MjYsIDEuNTU3NCIsIFwKLSAgICAgICAgICAiMC4wNzE2OTIsIDAuMTA3NjY1LCAwLjMxNjcwMSwgMC41MDIxNTcsIDAuNzUxMzMxLCAxLjI0ODM1LCAxLjU1OTM5IiwgXAotICAgICAgICAgICIwLjA3MTY1OSwgMC4xMDc2NTQsIDAuMzE2MjYzLCAwLjUwMjE3MSwgMC43NTEzNDYsIDEuMjQ2ODMsIDEuNTU3MjUiLCBcCi0gICAgICAgICAgIjAuMDcxNjg2LCAwLjEwNzY4NiwgMC4zMTY2NCwgMC41MDIxNjgsIDAuNzUwMjk3LCAxLjI0ODY4LCAxLjU1OTgyIiwgXAotICAgICAgICAgICIwLjA3MTY4MiwgMC4xMDc2NDcsIDAuMzE2NjUsIDAuNTAyMjYyLCAwLjc1MTM2OCwgMS4yNDg3NywgMS41NTY5NSIsIFwKLSAgICAgICAgICAiMC4wNzE4LCAwLjEwNzU3NSwgMC4zMTY2NCwgMC41MDI4MDYsIDAuNzUxMzczLCAxLjI0ODIxLCAxLjU1OTc4IiwgXAotICAgICAgICAgICIwLjA3MTc1MSwgMC4xMDc3MzEsIDAuMzE2NjE3LCAwLjUwMjc1MiwgMC43NTExNTIsIDEuMjQ2OTUsIDEuNTU5MzMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDYzNzMxLCAwLjA4MjU0LCAwLjE4ODE2LCAwLjI4MTI4MywgMC40MDUzMywgMC42NTM0OTQsIDAuODA4NTg3IiwgXAotICAgICAgICAgICIwLjA3MTI4NiwgMC4wOTAxMTcsIDAuMTk1NzU0LCAwLjI4ODg1NiwgMC40MTI5MzQsIDAuNjYxMDkyLCAwLjgxNjE3OSIsIFwKLSAgICAgICAgICAiMC4wODAzMTksIDAuMDk5MTQzLCAwLjIwNDc4LCAwLjI5NzkwNSwgMC40MjE5NTQsIDAuNjcwMDk0LCAwLjgyNTE5NCIsIFwKLSAgICAgICAgICAiMC4wODc2NDEsIDAuMTA2NDg0LCAwLjIxMjE0MiwgMC4zMDUyOCwgMC40MjkyODMsIDAuNjc3NDQzLCAwLjgzMjUxNiIsIFwKLSAgICAgICAgICAiMC4wOTM2MywgMC4xMTI1NDIsIDAuMjE4MjM3LCAwLjMxMTMwMywgMC40MzUzODYsIDAuNjgzNTg0LCAwLjgzODYxNSIsIFwKLSAgICAgICAgICAiMC4xMDE2NjksIDAuMTIwNjcxLCAwLjIyNjM0OSwgMC4zMTk1NDYsIDAuNDQzNTc3LCAwLjY5MTU5LCAwLjg0Njc4OCIsIFwKLSAgICAgICAgICAiMC4xMDc3NCwgMC4xMjY3LCAwLjIzMjQxLCAwLjMyNTQ4NywgMC40NDk2MDQsIDAuNjk3Nzk4LCAwLjg1Mjc3MiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzM5NiwgMC4xMTIwMzEsIDAuMzMyNjM3LCAwLjUyODUyNiwgMC43ODkxNjEsIDEuMzEwNDIsIDEuNjM5NDkiLCBcCi0gICAgICAgICAgIjAuMDczOTUxLCAwLjExMjAyNiwgMC4zMzI2NDIsIDAuNTI4NDY0LCAwLjc4OTc3OSwgMS4zMTA0MSwgMS42MzY3MyIsIFwKLSAgICAgICAgICAiMC4wNzQyODIsIDAuMTEyMjExLCAwLjMzMjY1LCAwLjUyODQ2NiwgMC43ODkwOTMsIDEuMzEyNTgsIDEuNjM3NjkiLCBcCi0gICAgICAgICAgIjAuMDc1MDM2LCAwLjExMjcyMywgMC4zMzI3MjcsIDAuNTI3NzUyLCAwLjc4ODk4NywgMS4zMTExNywgMS42Mzc3IiwgXAotICAgICAgICAgICIwLjA3NTc1LCAwLjExMzI1MiwgMC4zMzIzOTYsIDAuNTI4NTIyLCAwLjc4ODYzNCwgMS4zMTI1MywgMS42MzY3MSIsIFwKLSAgICAgICAgICAiMC4wNzcwNTYsIDAuMTE0MDM5LCAwLjMzMjY2MiwgMC41Mjc4OTYsIDAuNzg5MDY5LCAxLjMxMjM3LCAxLjYzNzU2IiwgXAotICAgICAgICAgICIwLjA3ODA2NywgMC4xMTQ5OTYsIDAuMzMyODU0LCAwLjUyODc1MywgMC43ODkxOTQsIDEuMzEyNTIsIDEuNjM5MzIiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDYzNjAxLCAwLjA4MjE5NSwgMC4xODQ5NDgsIDAuMjc1NDM2LCAwLjM5NjA3OSwgMC42Mzc3MTYsIDAuNzg4NTQiLCBcCi0gICAgICAgICAgIjAuMDcxMDEsIDAuMDg5NjE2LCAwLjE5MjM4MiwgMC4yODI4NjcsIDAuNDAzNTI3LCAwLjY0NTMwNiwgMC43OTYwNzMiLCBcCi0gICAgICAgICAgIjAuMDc5NTQ1LCAwLjA5ODE2MywgMC4yMDA5MywgMC4yOTE0MTIsIDAuNDEyMTk0LCAwLjY1MzUyNywgMC44MDQ0MzMiLCBcCi0gICAgICAgICAgIjAuMDg2Mzc2LCAwLjEwNTAzMSwgMC4yMDc3OTksIDAuMjk4MjcyLCAwLjQxODkzNiwgMC42NjA1NSwgMC44MTEzNCIsIFwKLSAgICAgICAgICAiMC4wOTE4NTksIDAuMTEwNjM3LCAwLjIxMzQxMywgMC4zMDM5MjgsIDAuNDI0NjEyLCAwLjY2NjA1LCAwLjgxNzE1OCIsIFwKLSAgICAgICAgICAiMC4wOTkzODUsIDAuMTE4MTQsIDAuMjIxMTI5LCAwLjMxMTU3OCwgMC40MzIzMjMsIDAuNjczNzI5LCAwLjgyNDQwNiIsIFwKLSAgICAgICAgICAiMC4xMDQ5OTQsIDAuMTIzODcsIDAuMjI2ODgzLCAwLjMxNzMzMywgMC40Mzc5NTEsIDAuNjc5MjY4LCAwLjgzMDQ2OCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzI0MSwgMC4xMDgyNSwgMC4zMTY4MTYsIDAuNTAyMTMzLCAwLjc1MTMzNSwgMS4yNDYxNSwgMS41NTY1IiwgXAotICAgICAgICAgICIwLjA3MjM1MywgMC4xMDgyNTMsIDAuMzE2ODEyLCAwLjUwMjE0NCwgMC43NTExNjcsIDEuMjQ2OSwgMS41NTYzMSIsIFwKLSAgICAgICAgICAiMC4wNzI2MTQsIDAuMTA4NDMsIDAuMzE2ODUsIDAuNTAyNzgxLCAwLjc0OTg5NywgMS4yNDYyOCwgMS41NTY0OCIsIFwKLSAgICAgICAgICAiMC4wNzMyOCwgMC4xMDg5LCAwLjMxNjU4MSwgMC41MDI2NzEsIDAuNzUxMzUxLCAxLjI0NjIsIDEuNTU2NDgiLCBcCi0gICAgICAgICAgIjAuMDczODYzLCAwLjEwOTMxNSwgMC4zMTcxNTQsIDAuNTAyOTAxLCAwLjc0OTczNSwgMS4yNDYyMiwgMS41NTYxNCIsIFwKLSAgICAgICAgICAiMC4wNzQ5OTEsIDAuMTEwMDY4LCAwLjMxNzQ1NCwgMC41MDI5NTIsIDAuNzUwMTYyLCAxLjI0NjIzLCAxLjU1OTMiLCBcCi0gICAgICAgICAgIjAuMDc1ODYzLCAwLjExMDkzMSwgMC4zMTczNDgsIDAuNTAyNTY3LCAwLjc1MTQ1OCwgMS4yNDg4LCAxLjU1NjQ1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2NTE0MiwgMC4wODQwMTYsIDAuMTg5NTczLCAwLjI4Mjc2NywgMC40MDY4NjcsIDAuNjU1MzM5LCAwLjgxMDE3OCIsIFwKLSAgICAgICAgICAiMC4wNzMyNzgsIDAuMDkyMTQ2LCAwLjE5NzcwMSwgMC4yOTA4MTIsIDAuNDE0OTIsIDAuNjYzNjM0LCAwLjgxODM2NiIsIFwKLSAgICAgICAgICAiMC4wODA2MzYsIDAuMDk5NTA1LCAwLjIwNTA2MSwgMC4yOTgxNjUsIDAuNDIyMzc2LCAwLjY3MDY0NiwgMC44MjU3MDUiLCBcCi0gICAgICAgICAgIjAuMDg1MzU4LCAwLjEwNDIxOCwgMC4yMDk3NiwgMC4zMDI5NTQsIDAuNDI3MDU2LCAwLjY3NTMwNiwgMC44MzA0NzEiLCBcCi0gICAgICAgICAgIjAuMDg5MDUsIDAuMTA3ODQzLCAwLjIxMzM3MywgMC4zMDY0NTksIDAuNDMwNTgsIDAuNjc4ODQ2LCAwLjgzNDA2OSIsIFwKLSAgICAgICAgICAiMC4wOTM4MDIsIDAuMTEyNTk3LCAwLjIxODAxNCwgMC4zMTEwOTUsIDAuNDM1MjA0LCAwLjY4MzYyOSwgMC44Mzg3MyIsIFwKLSAgICAgICAgICAiMC4wOTcyMzQsIDAuMTE2MDc1LCAwLjIyMTQsIDAuMzE0NDQ5LCAwLjQzODUzOCwgMC42ODcxNDUsIDAuODQyNDY2Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3NDYyMSwgMC4xMTI1MzYsIDAuMzMyNjE1LCAwLjUyNzY5LCAwLjc4OTE3LCAxLjMxMDksIDEuNjM2NTciLCBcCi0gICAgICAgICAgIjAuMDc0NTk4LCAwLjExMjUyNSwgMC4zMzI2MTUsIDAuNTI3NTkxLCAwLjc4OTQ4MiwgMS4zMTA2NywgMS42MzkwOCIsIFwKLSAgICAgICAgICAiMC4wNzQ1MSwgMC4xMTI0ODksIDAuMzMyNjkxLCAwLjUyNzUyMiwgMC43ODg2ODMsIDEuMzEwODMsIDEuNjM2MzkiLCBcCi0gICAgICAgICAgIjAuMDc0NDE3LCAwLjExMjM3MiwgMC4zMzIyMzYsIDAuNTI3Njg0LCAwLjc4ODI5MSwgMS4zMTAxOSwgMS42MzcxNSIsIFwKLSAgICAgICAgICAiMC4wNzQzMjUsIDAuMTEyMjczLCAwLjMzMjYsIDAuNTI3ODg0LCAwLjc4ODU1NCwgMS4zMTAyNiwgMS42MzcxNSIsIFwKLSAgICAgICAgICAiMC4wNzQ0NDksIDAuMTEyMjcsIDAuMzMxODc3LCAwLjUyODM1NSwgMC43ODk4ODIsIDEuMzEwODIsIDEuNjM3MTUiLCBcCi0gICAgICAgICAgIjAuMDc0NTM5LCAwLjExMjQ5LCAwLjMzMTkyOSwgMC41MjgyNTYsIDAuNzg4ODc0LCAxLjMxMDkxLCAxLjYzNzE0Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3NjYwNSwgMC4wOTUxMDMsIDAuMTk3ODc0LCAwLjI4ODM4NSwgMC40MDkwMjksIDAuNjUwMjU1LCAwLjgwMTAzMyIsIFwKLSAgICAgICAgICAiMC4wODM3NjQsIDAuMTAyMjQ3LCAwLjIwNTAxOSwgMC4yOTU1MjgsIDAuNDE2MTc3LCAwLjY1NzQwNCwgMC44MDgxNyIsIFwKLSAgICAgICAgICAiMC4wODk1MzIsIDAuMTA4MDA3LCAwLjIxMDc4NSwgMC4zMDEzMDQsIDAuNDIxOTQ4LCAwLjY2MzE5LCAwLjgxMzk0NSIsIFwKLSAgICAgICAgICAiMC4wOTM3MDcsIDAuMTEyMjM1LCAwLjIxNTAxNiwgMC4zMDU1MjYsIDAuNDI2MjA1LCAwLjY2NzQxLCAwLjgxODE2OCIsIFwKLSAgICAgICAgICAiMC4wOTcxMDgsIDAuMTE1NjAyLCAwLjIxODQzNSwgMC4zMDg5MzQsIDAuNDI5NTcxLCAwLjY3MDg1NywgMC44MjE2NjUiLCBcCi0gICAgICAgICAgIjAuMTAxNzEsIDAuMTIwMTk4LCAwLjIyMzAzMywgMC4zMTM1NDksIDAuNDM0MTgxLCAwLjY3NTQ0NCwgMC44MjYyNzMiLCBcCi0gICAgICAgICAgIjAuMTA1MzUzLCAwLjEyMzc4LCAwLjIyNjYwOCwgMC4zMTcxOCwgMC40Mzc4MiwgMC42NzkxMzgsIDAuODI5ODAyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3MTcwNSwgMC4xMDc2NiwgMC4zMTYyMjYsIDAuNTAyMTc4LCAwLjc1MTM5MiwgMS4yNDY5LCAxLjU1NzM3IiwgXAotICAgICAgICAgICIwLjA3MTY4OCwgMC4xMDc2NTUsIDAuMzE2NzAyLCAwLjUwMjE4NywgMC43NTEzMjUsIDEuMjQ2ODUsIDEuNTU5MDciLCBcCi0gICAgICAgICAgIjAuMDcxNzEsIDAuMTA3NjY0LCAwLjMxNjY5LCAwLjUwMjI2MSwgMC43NTEzNCwgMS4yNDY5OCwgMS41NTcxMSIsIFwKLSAgICAgICAgICAiMC4wNzE2OTIsIDAuMTA3Njg4LCAwLjMxNjY4MSwgMC41MDIxNzEsIDAuNzUxMTQsIDEuMjQ4MjcsIDEuNTU4OTUiLCBcCi0gICAgICAgICAgIjAuMDcxNjMyLCAwLjEwNzY1MSwgMC4zMTYyMzYsIDAuNTAyMTYyLCAwLjc1MTEyOCwgMS4yNDY0MiwgMS41NTk1MyIsIFwKLSAgICAgICAgICAiMC4wNzE2NDgsIDAuMTA3NTI1LCAwLjMxNjI4NywgMC41MDE5ODcsIDAuNzUwNzc3LCAxLjI0NzA2LCAxLjU1ODg3IiwgXAotICAgICAgICAgICIwLjA3MTcxNywgMC4xMDc2MTcsIDAuMzE2MDM3LCAwLjUwMjA1NiwgMC43NTAzOCwgMS4yNDU4MSwgMS41NTg2MiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDQ3NywgMC4wMDQ0ODcsIDAuMDA0NTA0LCAwLjAwNDUwNywgMC4wMDQ1MSwgMC4wMDQ1MTEsIDAuMDA0NTEiLCBcCi0gICAgICAgICAgIjAuMDA0NDgxLCAwLjAwNDQ5MSwgMC4wMDQ1MDcsIDAuMDA0NTA5LCAwLjAwNDUxMywgMC4wMDQ1MTUsIDAuMDA0NTE2IiwgXAotICAgICAgICAgICIwLjAwNDU0OCwgMC4wMDQ1NTcsIDAuMDA0NTcyLCAwLjAwNDU3NSwgMC4wMDQ1NzcsIDAuMDA0NTc5LCAwLjAwNDU3OSIsIFwKLSAgICAgICAgICAiMC4wMDQ2NDMsIDAuMDA0NjUyLCAwLjAwNDY2OCwgMC4wMDQ2NjYsIDAuMDA0NjcyLCAwLjAwNDY3LCAwLjAwNDY3NSIsIFwKLSAgICAgICAgICAiMC4wMDQ3NjQsIDAuMDA0NzcyLCAwLjAwNDc3NSwgMC4wMDQ3ODYsIDAuMDA0Nzg3LCAwLjAwNDc4MSwgMC4wMDQ3ODgiLCBcCi0gICAgICAgICAgIjAuMDA0OTcyLCAwLjAwNDk3OSwgMC4wMDQ5ODgsIDAuMDA0OTg2LCAwLjAwNDk4OSwgMC4wMDQ5ODksIDAuMDA0OTg4IiwgXAotICAgICAgICAgICIwLjAwNTE1MiwgMC4wMDUxNzEsIDAuMDA1MTY0LCAwLjAwNTE3NSwgMC4wMDUxNzYsIDAuMDA1MTczLCAwLjAwNTE3MyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDE0OSwgMC4wMDQxNjEsIDAuMDA0MTgxLCAwLjAwNDE4NiwgMC4wMDQxODgsIDAuMDA0MTkxLCAwLjAwNDE5MSIsIFwKLSAgICAgICAgICAiMC4wMDQxNTcsIDAuMDA0MTcsIDAuMDA0MTksIDAuMDA0MTk0LCAwLjAwNDE5NywgMC4wMDQxOTksIDAuMDA0MiIsIFwKLSAgICAgICAgICAiMC4wMDQyMTcsIDAuMDA0MjI5LCAwLjAwNDI0OCwgMC4wMDQyNTMsIDAuMDA0MjU2LCAwLjAwNDI1OCwgMC4wMDQyNTgiLCBcCi0gICAgICAgICAgIjAuMDA0MzE5LCAwLjAwNDMzMSwgMC4wMDQzNSwgMC4wMDQzNTQsIDAuMDA0MzU2LCAwLjAwNDM1OCwgMC4wMDQzNTkiLCBcCi0gICAgICAgICAgIjAuMDA0NDM4LCAwLjAwNDQ1LCAwLjAwNDQ2NywgMC4wMDQ0NywgMC4wMDQ0NjYsIDAuMDA0NDc0LCAwLjAwNDQ3NSIsIFwKLSAgICAgICAgICAiMC4wMDQ2NSwgMC4wMDQ2NSwgMC4wMDQ2NzQsIDAuMDA0Njc3LCAwLjAwNDY3OSwgMC4wMDQ2OCwgMC4wMDQ2ODEiLCBcCi0gICAgICAgICAgIjAuMDA0ODM3LCAwLjAwNDg2LCAwLjAwNDg3MiwgMC4wMDQ4NjMsIDAuMDA0ODc0LCAwLjAwNDg2NCwgMC4wMDQ4NzYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQxMDcsIDAuMDA0MTE0LCAwLjAwNDEyNywgMC4wMDQxMjYsIDAuMDA0MTI1LCAwLjAwNDEyOCwgMC4wMDQxMjgiLCBcCi0gICAgICAgICAgIjAuMDA0MjA3LCAwLjAwNDIxMiwgMC4wMDQyMjEsIDAuMDA0MjIzLCAwLjAwNDIyNCwgMC4wMDQyMjUsIDAuMDA0MjI0IiwgXAotICAgICAgICAgICIwLjAwNDM2LCAwLjAwNDM2NCwgMC4wMDQzNzIsIDAuMDA0Mzc0LCAwLjAwNDM3NSwgMC4wMDQzNzcsIDAuMDA0Mzc3IiwgXAotICAgICAgICAgICIwLjAwNDU1LCAwLjAwNDU1MywgMC4wMDQ1NTcsIDAuMDA0NTU5LCAwLjAwNDU2LCAwLjAwNDU2MSwgMC4wMDQ1NjEiLCBcCi0gICAgICAgICAgIjAuMDA0NzYyLCAwLjAwNDc2NCwgMC4wMDQ3NjYsIDAuMDA0NzYsIDAuMDA0NzY3LCAwLjAwNDc2OCwgMC4wMDQ3NjgiLCBcCi0gICAgICAgICAgIjAuMDA1MDk2LCAwLjAwNTA5OCwgMC4wMDUwODMsIDAuMDA1MDgzLCAwLjAwNTA5NywgMC4wMDUwOTksIDAuMDA1MDk4IiwgXAotICAgICAgICAgICIwLjAwNTM5NSwgMC4wMDUzNzcsIDAuMDA1Mzc1LCAwLjAwNTM5MiwgMC4wMDUzOTIsIDAuMDA1Mzc0LCAwLjAwNTM3NCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzQxNSwgMC4wMDM0MjcsIDAuMDAzNDQ3LCAwLjAwMzQ1MiwgMC4wMDM0NTQsIDAuMDAzNDU2LCAwLjAwMzQ1NyIsIFwKLSAgICAgICAgICAiMC4wMDM0MzEsIDAuMDAzNDQzLCAwLjAwMzQ2MywgMC4wMDM0NjcsIDAuMDAzNDcsIDAuMDAzNDcyLCAwLjAwMzQ3MyIsIFwKLSAgICAgICAgICAiMC4wMDM1MjIsIDAuMDAzNTM0LCAwLjAwMzU1NCwgMC4wMDM1NTksIDAuMDAzNTYyLCAwLjAwMzU2NCwgMC4wMDM1NjQiLCBcCi0gICAgICAgICAgIjAuMDAzNjQ0LCAwLjAwMzY1NywgMC4wMDM2NzYsIDAuMDAzNjgxLCAwLjAwMzY4MywgMC4wMDM2ODUsIDAuMDAzNjg2IiwgXAotICAgICAgICAgICIwLjAwMzc3OCwgMC4wMDM3ODksIDAuMDAzODEsIDAuMDAzODE0LCAwLjAwMzgxNiwgMC4wMDM4MTksIDAuMDAzODE5IiwgXAotICAgICAgICAgICIwLjAwNCwgMC4wMDQwMTIsIDAuMDA0MDMzLCAwLjAwNDAzNiwgMC4wMDQwNCwgMC4wMDQwNDMsIDAuMDA0MDQzIiwgXAotICAgICAgICAgICIwLjAwNDIwMywgMC4wMDQyMTUsIDAuMDA0MjM1LCAwLjAwNDI0LCAwLjAwNDI0MiwgMC4wMDQyNDUsIDAuMDA0MjQ1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBYT1IyWDIgKgotICogLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChYT1IyWDIpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC40NzIxMTM7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY0OTk3NTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2NDk5NzU7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjQ5OTQxOwotICB9Ci0gIHBpbihCKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDEzNjc3NDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDEzNjc1NDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDEzNjc3NDsKLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjY3MTMwNzsKLSAgICBmdW5jdGlvbiA6ICIoQV5CKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDYxODIxLCAwLjE0MTU1LCAwLjIwMzUzNywgMC4yODA5NTksIDAuMzU4NTEsIDAuNDM1ODk2LCAwLjUxMzA2IiwgXAotICAgICAgICAgICIwLjA2OTg2NywgMC4xNDk2MTMsIDAuMjExNTg1LCAwLjI4OTAyMiwgMC4zNjY1NDcsIDAuNDQzOTQ3LCAwLjUyMTYxNyIsIFwKLSAgICAgICAgICAiMC4wNzk2NzcsIDAuMTU5NDMsIDAuMjIxNDE3LCAwLjI5ODgzNywgMC4zNzYzODIsIDAuNDUzNzg4LCAwLjUzMTM1IiwgXAotICAgICAgICAgICIwLjA4NzkwNSwgMC4xNjc3NTMsIDAuMjI5NzA3LCAwLjMwNzE1MiwgMC4zODQ3MTMsIDAuNDYyMDg1LCAwLjUzOTY4IiwgXAotICAgICAgICAgICIwLjA5NTM5MiwgMC4xNzU0MTcsIDAuMjM3MzcyLCAwLjMxNDgxMSwgMC4zOTIyMzcsIDAuNDY5NzUxLCAwLjU0NzQ2NiIsIFwKLSAgICAgICAgICAiMC4xMDUwMzcsIDAuMTg1NjEyLCAwLjI0NzU1OSwgMC4zMjUwMTUsIDAuNDAyNDQxLCAwLjQ3OTkwNCwgMC41NTc1MjUiLCBcCi0gICAgICAgICAgIjAuMTEyMjUyLCAwLjE5MzI2MiwgMC4yNTUyMDQsIDAuMzMyNjE2LCAwLjQxMDA2OSwgMC40ODc1NjUsIDAuNTY0OTUxIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0NjA2NiwgMC4yMDU1MzksIDAuMzM2NzI2LCAwLjUwMTM0OCwgMC42NjUyODMsIDAuODMwODM1LCAwLjk5NTA3MSIsIFwKLSAgICAgICAgICAiMC4wNDYxMzYsIDAuMjA1NTg2LCAwLjMzNjE4NCwgMC41MDEzOCwgMC42NjU3MDMsIDAuODMxODgyLCAwLjk5NTY3NCIsIFwKLSAgICAgICAgICAiMC4wNDYzMTIsIDAuMjA1NjMyLCAwLjMzNjc1OCwgMC41MDEzMzYsIDAuNjY1MjkyLCAwLjgzMDkwMSwgMC45OTU1ODQiLCBcCi0gICAgICAgICAgIjAuMDQ3MDUyLCAwLjIwNTc0NSwgMC4zMzY0MTksIDAuNTAxMzgyLCAwLjY2NTI4NSwgMC44MzA4MDQsIDAuOTk1NjEzIiwgXAotICAgICAgICAgICIwLjA0ODAyNiwgMC4yMDU5OCwgMC4zMzY3ODcsIDAuNTAxNSwgMC42NjY1NDcsIDAuODMwNDY3LCAwLjk5NTY5MyIsIFwKLSAgICAgICAgICAiMC4wNDk3OTMsIDAuMjA2NTk0LCAwLjMzNjYwNiwgMC41MDE2NDMsIDAuNjY1ODk4LCAwLjgzMTgyNSwgMC45OTU3NTEiLCBcCi0gICAgICAgICAgIjAuMDUxMjAzLCAwLjIwNzE2OSwgMC4zMzczNjMsIDAuNTAxNzY1LCAwLjY2NTc1LCAwLjgzMDIyMiwgMC45OTU5NjYiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY1NTIxLCAwLjE0NDY3NCwgMC4yMDUzMzYsIDAuMjgxMTEsIDAuMzU2OTE5LCAwLjQzMjcxNCwgMC41MDg0MjQiLCBcCi0gICAgICAgICAgIjAuMDczNDU3LCAwLjE1MjYzNywgMC4yMTMzMDUsIDAuMjg5MDU0LCAwLjM2NDgzNSwgMC40NDA2MywgMC41MTYzODkiLCBcCi0gICAgICAgICAgIjAuMDgyOTE3LCAwLjE2MjA4LCAwLjIyMjc1NywgMC4yOTg1MjMsIDAuMzc0Mjg1LCAwLjQ1MDA3OSwgMC41MjU4NTYiLCBcCi0gICAgICAgICAgIjAuMDkxMzM4LCAwLjE3MDYwMSwgMC4yMzEyNjQsIDAuMzA3MDM4LCAwLjM4MjgwNCwgMC40NTg2MzMsIDAuNTM0MzYxIiwgXAotICAgICAgICAgICIwLjA5ODQxNywgMC4xNzc4ODcsIDAuMjM4NTQzLCAwLjMxNDMzLCAwLjM5MDA2MSwgMC40NjU5OCwgMC41NDE2NDQiLCBcCi0gICAgICAgICAgIjAuMTA3NzEyLCAwLjE4NzcyLCAwLjI0ODM3NCwgMC4zMjQxMjIsIDAuMzk5OTM5LCAwLjQ3NTY5OCwgMC41NTE0NDciLCBcCi0gICAgICAgICAgIjAuMTE0Njg3LCAwLjE5NTE0MSwgMC4yNTU4MDYsIDAuMzMxNTU5LCAwLjQwNzMwNiwgMC40ODMwNjEsIDAuNTU4ODI4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0NjA1NCwgMC4xOTczNTQsIDAuMzIxOTQxLCAwLjQ3ODA5NSwgMC42MzQ2OTMsIDAuNzkxNjQ5LCAwLjk1MDgwNCIsIFwKLSAgICAgICAgICAiMC4wNDYwMTksIDAuMTk3MzQxLCAwLjMyMTMzOCwgMC40Nzg2NiwgMC42MzUxMzIsIDAuNzkxODIyLCAwLjk1MDgxNyIsIFwKLSAgICAgICAgICAiMC4wNDYxNjMsIDAuMTk3Mzc0LCAwLjMyMTk1MiwgMC40Nzg2MzcsIDAuNjM1ODk2LCAwLjc5MjQ2MywgMC45NTA3ODYiLCBcCi0gICAgICAgICAgIjAuMDQ2NzcsIDAuMTk3NDkzLCAwLjMyMjAyNywgMC40Nzg3MDYsIDAuNjM1MTEyLCAwLjc5MTczMywgMC45NTA3OTUiLCBcCi0gICAgICAgICAgIjAuMDQ3NzAzLCAwLjE5Nzc4LCAwLjMyMjE3NywgMC40Nzg4ODcsIDAuNjM1ODY2LCAwLjc5MTk0MSwgMC45NDk4MzMiLCBcCi0gICAgICAgICAgIjAuMDQ5MzEzLCAwLjE5ODQyNSwgMC4zMjI1MjYsIDAuNDc4ODQ3LCAwLjYzNjE1MywgMC43OTM1NDYsIDAuOTUxMDQ1IiwgXAotICAgICAgICAgICIwLjA1MDU5NiwgMC4xOTkwODMsIDAuMzIyMzUsIDAuNDc4NTIsIDAuNjM1MzA5LCAwLjc5MzQ3NCwgMC45NTA5OTkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDcxNTcyLCAwLjE1MTA0MywgMC4yMTMxLCAwLjI5MDU0OCwgMC4zNjc5ODIsIDAuNDQ1NDQ2LCAwLjUyMjg1OCIsIFwKLSAgICAgICAgICAiMC4wNzkyMjIsIDAuMTU4Njc1LCAwLjIyMDczLCAwLjI5ODE3OSwgMC4zNzU2MiwgMC40NTMwOSwgMC41MzA0OSIsIFwKLSAgICAgICAgICAiMC4wODU5OTYsIDAuMTY1NDEyLCAwLjIyNzQ0NCwgMC4zMDQ5MTMsIDAuMzgyMzU1LCAwLjQ1OTY2OCwgMC41MzcyMTciLCBcCi0gICAgICAgICAgIjAuMDkwNzIxLCAwLjE3MDE2NCwgMC4yMzIxOTYsIDAuMzA5NjcxLCAwLjM4NzE3MywgMC40NjQ1NzIsIDAuNTQxOTgyIiwgXAotICAgICAgICAgICIwLjA5NDU4MywgMC4xNzQwMzEsIDAuMjM2MDY4LCAwLjMxMzU4MywgMC4zOTA5ODcsIDAuNDY4NDUyLCAwLjU0NTgzNiIsIFwKLSAgICAgICAgICAiMC4wOTk2NzUsIDAuMTc5MTA0LCAwLjI0MTE2NCwgMC4zMTg2MTMsIDAuMzk2MTAzLCAwLjQ3MzUyNCwgMC41NTA5MSIsIFwKLSAgICAgICAgICAiMC4xMDM0MTksIDAuMTgyNzksIDAuMjQ0ODQ5LCAwLjMyMjI2MSwgMC4zOTk3MzUsIDAuNDc3MjQsIDAuNTU0NjI0Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0NTI4NSwgMC4yMDUxMjgsIDAuMzM2MDk2LCAwLjUwMDk4MywgMC42NjY0ODksIDAuODMwOTI5LCAwLjk5NTk0OCIsIFwKLSAgICAgICAgICAiMC4wNDUyNjQsIDAuMjA1MTI3LCAwLjMzNTk1MiwgMC41MDA5NzYsIDAuNjY1ODczLCAwLjgzMDQzMywgMC45OTU5MzciLCBcCi0gICAgICAgICAgIjAuMDQ1Mjc4LCAwLjIwNTEyOCwgMC4zMzYxLCAwLjUwMDkzOSwgMC42NjU4OSwgMC44MzA5MDEsIDAuOTk2ODQ3IiwgXAotICAgICAgICAgICIwLjA0NTMwMiwgMC4yMDUxNDYsIDAuMzM2MDY4LCAwLjUwMTAzMiwgMC42NjU2MDksIDAuODMxNjYsIDAuOTk2MDk4IiwgXAotICAgICAgICAgICIwLjA0NTI5NSwgMC4yMDUxMDgsIDAuMzM2NjE3LCAwLjUwMDY4MSwgMC42NjU0NTksIDAuODMwNzUyLCAwLjk5NjAyOSIsIFwKLSAgICAgICAgICAiMC4wNDUzMjQsIDAuMjA1MTM5LCAwLjMzNjEwOSwgMC41MDEzNTksIDAuNjY2NDIxLCAwLjgzMTU5NSwgMC45OTYwMTYiLCBcCi0gICAgICAgICAgIjAuMDQ1Mzc1LCAwLjIwNTAzLCAwLjMzNTk5MywgMC41MDEzNTEsIDAuNjY1OTAyLCAwLjgzMTEyLCAwLjk5NjgyMyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzU0MzYsIDAuMTU0MDc1LCAwLjIxNDc3MywgMC4yOTA1NzgsIDAuMzY2MzUsIDAuNDQyMTU0LCAwLjUxNzg1OCIsIFwKLSAgICAgICAgICAiMC4wODMyMjksIDAuMTYxODM1LCAwLjIyMjUzMywgMC4yOTgzMzQsIDAuMzc0MTEyLCAwLjQ0OTg5NiwgMC41MjU2NTYiLCBcCi0gICAgICAgICAgIjAuMDg5OTgzLCAwLjE2ODYwNSwgMC4yMjkyOTcsIDAuMzA1MDkzLCAwLjM4MDg3MSwgMC40NTY3LCAwLjUzMjQwOSIsIFwKLSAgICAgICAgICAiMC4wOTQ4MzgsIDAuMTczNTMxLCAwLjIzNDIyMywgMC4zMTAwMjMsIDAuMzg1ODE5LCAwLjQ2MTU2NiwgMC41MzczNDMiLCBcCi0gICAgICAgICAgIjAuMDk4ODQ5LCAwLjE3NzUyMywgMC4yMzgyMjgsIDAuMzEzOTkzLCAwLjM4OTc4NywgMC40NjU2MDYsIDAuNTQxMzIyIiwgXAotICAgICAgICAgICIwLjEwNDIzOCwgMC4xODI4ODUsIDAuMjQzNjE2LCAwLjMxOTM1OCwgMC4zOTUxNjgsIDAuNDcwOTM1LCAwLjU0NjY2IiwgXAotICAgICAgICAgICIwLjEwODMwMiwgMC4xODY5MjQsIDAuMjQ3NjE3LCAwLjMyMzM1LCAwLjM5OTE5NCwgMC40NzQ5NDcsIDAuNTUwNzQyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0NTA2MywgMC4xOTY4MDIsIDAuMzIxNjY0LCAwLjQ3ODA2NywgMC42MzUxMzUsIDAuNzkzNTEsIDAuOTUwNjE4IiwgXAotICAgICAgICAgICIwLjA0NTA2LCAwLjE5NjczNSwgMC4zMjE2MjUsIDAuNDc4NTU5LCAwLjYzNTE4NiwgMC43OTIxNDUsIDAuOTUwODg0IiwgXAotICAgICAgICAgICIwLjA0NTAxOSwgMC4xOTY4MDcsIDAuMzIxNjM3LCAwLjQ3ODU0NywgMC42MzUxNDIsIDAuNzkxNjQ3LCAwLjk1MDg0MiIsIFwKLSAgICAgICAgICAiMC4wNDUxMTgsIDAuMTk2NzM4LCAwLjMyMTYxNywgMC40Nzg0NzgsIDAuNjM1OTE2LCAwLjc5MzE2OSwgMC45NTA4NzkiLCBcCi0gICAgICAgICAgIjAuMDQ1MDA4LCAwLjE5NjgwNCwgMC4zMjE3MzYsIDAuNDc4NDc2LCAwLjYzNTEwOCwgMC43OTE5MDQsIDAuOTUwNjk1IiwgXAotICAgICAgICAgICIwLjA0NTAyNywgMC4xOTY4MzcsIDAuMzIxNjc0LCAwLjQ3Nzk2MiwgMC42MzU2ODYsIDAuNzkzNDIyLCAwLjk1MDY1NyIsIFwKLSAgICAgICAgICAiMC4wNDUxMTYsIDAuMTk2NzQzLCAwLjMyMTY0OCwgMC40Nzg1OTUsIDAuNjM1ODgsIDAuNzkyMzk5LCAwLjk1MDk1MyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTQ1MTYsIDAuMTMzOTI3LCAwLjE5NTk1MywgMC4yNzM0MzEsIDAuMzUwOTEyLCAwLjQyODM1LCAwLjUwNTczOSIsIFwKLSAgICAgICAgICAiMC4wNjIwNjMsIDAuMTQxNDgyLCAwLjIwMzUwNiwgMC4yODA5ODksIDAuMzU4NDQ5LCAwLjQzNTk2OCwgMC41MTMyOTkiLCBcCi0gICAgICAgICAgIjAuMDcxNTc2LCAwLjE1MTAyMSwgMC4yMTMwNDksIDAuMjkwNTI3LCAwLjM2ODAxLCAwLjQ0NTQ1OSwgMC41MjI5MSIsIFwKLSAgICAgICAgICAiMC4wNzk4LCAwLjE1OTM3MiwgMC4yMjEzOTYsIDAuMjk4ODY5LCAwLjM3NjM3MiwgMC40NTM3NSwgMC41MzEyNSIsIFwKLSAgICAgICAgICAiMC4wODY2NDQsIDAuMTY2NDI3LCAwLjIyODQ5LCAwLjMwNTkzMSwgMC4zODM0OCwgMC40NjA4NjksIDAuNTM4MjU3IiwgXAotICAgICAgICAgICIwLjA5NTkwNCwgMC4xNzU5NCwgMC4yMzc5OTYsIDAuMzE1MzczLCAwLjM5Mjg4LCAwLjQ3MDI3OSwgMC41NDc3NzYiLCBcCi0gICAgICAgICAgIjAuMTAyNywgMC4xODMxMDEsIDAuMjQ1MTE1LCAwLjMyMjU2NiwgMC40MDAwNjQsIDAuNDc3NDYsIDAuNTU0ODE5Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0NTIzMywgMC4yMDUxMiwgMC4zMzYwODMsIDAuNTAxMDA4LCAwLjY2NjUxOCwgMC44MzE2NjYsIDAuOTk1OTgzIiwgXAotICAgICAgICAgICIwLjA0NTI0MiwgMC4yMDUxMTIsIDAuMzM2NTg2LCAwLjUwMDk3MywgMC42NjU4MTEsIDAuODMwNTcyLCAwLjk5Njg2MiIsIFwKLSAgICAgICAgICAiMC4wNDU1MTcsIDAuMjA1MTU5LCAwLjMzNjYwOCwgMC41MDA5MzMsIDAuNjY1NzgyLCAwLjgzMTY2NiwgMC45OTY4NzMiLCBcCi0gICAgICAgICAgIjAuMDQ2NzA5LCAwLjIwNTM3OCwgMC4zMzY2NzEsIDAuNTAxMDIsIDAuNjY1NjE2LCAwLjgzMTYyNywgMC45OTY4MDUiLCBcCi0gICAgICAgICAgIjAuMDQ4MTA0LCAwLjIwNTYzNiwgMC4zMzY4MDgsIDAuNTAwOTY5LCAwLjY2NTY1OCwgMC44MzE1OTUsIDAuOTk2MTc3IiwgXAotICAgICAgICAgICIwLjA1MDAyNiwgMC4yMDYzMiwgMC4zMzY5OTgsIDAuNTAxNTY3LCAwLjY2NTY5NCwgMC44MzE2MzcsIDAuOTk1OTczIiwgXAotICAgICAgICAgICIwLjA1MTgsIDAuMjA2NzQzLCAwLjMzNzAyLCAwLjUwMTA3NiwgMC42NjU1OTcsIDAuODMxMjE1LCAwLjk5NjE0Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1NDc2NywgMC4xMzM5MTEsIDAuMTk0NTc1LCAwLjI3MDM3MSwgMC4zNDYxMjEsIDAuNDIxOTE4LCAwLjQ5NzgxMyIsIFwKLSAgICAgICAgICAiMC4wNjIxMTQsIDAuMTQxMjg4LCAwLjIwMTk1MiwgMC4yNzc3MjgsIDAuMzUzNDk2LCAwLjQyOTMzMiwgMC41MDUwNTQiLCBcCi0gICAgICAgICAgIjAuMDcwOTY3LCAwLjE1MDEwNCwgMC4yMTA3OCwgMC4yODY1NTcsIDAuMzYyMzMxLCAwLjQzODE4MywgMC41MTM4ODEiLCBcCi0gICAgICAgICAgIjAuMDc4NDUyLCAwLjE1Nzc0MiwgMC4yMTg0MTUsIDAuMjk0MTc2LCAwLjM2OTkzNiwgMC40NDU3NzgsIDAuNTIxNDkxIiwgXAotICAgICAgICAgICIwLjA4NDY4LCAwLjE2NDE4OSwgMC4yMjQ4MTgsIDAuMzAwNTksIDAuMzc2MzMzLCAwLjQ1MjIzOCwgMC41Mjc5NjUiLCBcCi0gICAgICAgICAgIjAuMDkzMTQxLCAwLjE3MzAwNywgMC4yMzM2NDQsIDAuMzA5MzM0LCAwLjM4NTE0NSwgMC40NjA5MzcsIDAuNTM2NjE4IiwgXAotICAgICAgICAgICIwLjA5OTQ5LCAwLjE3OTYwMSwgMC4yNDAyNjMsIDAuMzE2MDA5LCAwLjM5MTczMywgMC40Njc0ODIsIDAuNTQzMjYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQ1NjMzLCAwLjE5NzI2NCwgMC4zMjE4NzcsIDAuNDc4NzMyLCAwLjYzNTEyNCwgMC43OTE4MDYsIDAuOTQ5MTc1IiwgXAotICAgICAgICAgICIwLjA0NTU2LCAwLjE5NzI1MiwgMC4zMjE4ODEsIDAuNDc4NjE4LCAwLjYzNTA2MywgMC43OTE3MSwgMC45NTA2NDciLCBcCi0gICAgICAgICAgIjAuMDQ1NzQ1LCAwLjE5NzMzOSwgMC4zMjE4OTcsIDAuNDc4NjIyLCAwLjYzNTkyMywgMC43OTE1ODcsIDAuOTUwNjI4IiwgXAotICAgICAgICAgICIwLjA0NjY5OCwgMC4xOTc1MTIsIDAuMzIyMDYyLCAwLjQ3ODY3MSwgMC42MzU3MzYsIDAuNzkxNzA5LCAwLjk1MDYyNyIsIFwKLSAgICAgICAgICAiMC4wNDc4OTYsIDAuMTk3ODgxLCAwLjMyMTkwNiwgMC40Nzc5NDMsIDAuNjM1ODY5LCAwLjc5MjA2MSwgMC45NDg5NDEiLCBcCi0gICAgICAgICAgIjAuMDQ5NzE0LCAwLjE5ODU1NSwgMC4zMjIzNTYsIDAuNDc4OTI4LCAwLjYzNjExMywgMC43OTE3NjYsIDAuOTUwNjM1IiwgXAotICAgICAgICAgICIwLjA1MTA1NCwgMC4xOTkwMDYsIDAuMzIyODE2LCAwLjQ3OTE0NSwgMC42MzYwMjgsIDAuNzkzMzY4LCAwLjk1MTAyMSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTQ0MjQsIDAuMTM0MjA0LCAwLjE5NjE4NywgMC4yNzM2MywgMC4zNTEwODUsIDAuNDI4NzYsIDAuNTA2MiIsIFwKLSAgICAgICAgICAiMC4wNjI1MDcsIDAuMTQyMjg2LCAwLjIwNDI4NCwgMC4yODE3MzgsIDAuMzU5MjQ4LCAwLjQzNjY5OCwgMC41MTQ0MjIiLCBcCi0gICAgICAgICAgIjAuMDcwNDIxLCAwLjE1MDE2OCwgMC4yMTIxNjQsIDAuMjg5NiwgMC4zNjcxNDIsIDAuNDQ0NTczLCAwLjUyMjExIiwgXAotICAgICAgICAgICIwLjA3NTM4MSwgMC4xNTUwNzMsIDAuMjE3MDg3LCAwLjI5NDUxLCAwLjM3MjA1MywgMC40NDk0ODUsIDAuNTI3MDA4IiwgXAotICAgICAgICAgICIwLjA3OTI5LCAwLjE1ODgxOSwgMC4yMjA3OTEsIDAuMjk4Mzc3LCAwLjM3NTgwMiwgMC40NTM0MTUsIDAuNTMwODU5IiwgXAotICAgICAgICAgICIwLjA4NDE4NiwgMC4xNjM2OTEsIDAuMjI1NzAzLCAwLjMwMzI4MSwgMC4zODA2MjQsIDAuNDU4MzE2LCAwLjUzNTU1OSIsIFwKLSAgICAgICAgICAiMC4wODc3MjIsIDAuMTY3MzEyLCAwLjIyOTIxNywgMC4zMDY3MjUsIDAuMzg0MTE5LCAwLjQ2MTY0NiwgMC41MzkwNSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDU4NywgMC4yMDU1MzQsIDAuMzM2NjQ0LCAwLjUwMTM1MSwgMC42NjY1OTYsIDAuODMwNjQ0LCAwLjk5NTY0OCIsIFwKLSAgICAgICAgICAiMC4wNDU4MDcsIDAuMjA1NTMsIDAuMzM2NjgzLCAwLjUwMTQ4OSwgMC42NjU0MjgsIDAuODMxMDI4LCAwLjk5NTY3NSIsIFwKLSAgICAgICAgICAiMC4wNDU3LCAwLjIwNTUwNiwgMC4zMzYyMTIsIDAuNTAwODMxLCAwLjY2NTMyNywgMC44MzA5NTksIDAuOTk1MTMxIiwgXAotICAgICAgICAgICIwLjA0NTYwOSwgMC4yMDU0MjksIDAuMzM2NTc3LCAwLjUwMDg3NiwgMC42NjUyOTYsIDAuODMwOTgyLCAwLjk5NTEyOSIsIFwKLSAgICAgICAgICAiMC4wNDU2OTUsIDAuMjA1MzQ3LCAwLjMzNjQxMywgMC41MDA1ODEsIDAuNjY1NzcsIDAuODMwODAzLCAwLjk5NTEzNCIsIFwKLSAgICAgICAgICAiMC4wNDU3NDQsIDAuMjA1MzE4LCAwLjMzNjE4NiwgMC41MDA2MjEsIDAuNjY1NDMsIDAuODMwNjE2LCAwLjk5NTM2NyIsIFwKLSAgICAgICAgICAiMC4wNDU4MTIsIDAuMjA1MDkxLCAwLjMzNjAxMSwgMC41MDAzMzUsIDAuNjY1NTgxLCAwLjgzMDI0LCAwLjk5NiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjg4NzMsIDAuMTQ3NTM2LCAwLjIwODIzMiwgMC4yODQwMzIsIDAuMzU5ODA4LCAwLjQzNTU4OCwgMC41MTEzNTYiLCBcCi0gICAgICAgICAgIjAuMDc2MTg0LCAwLjE1NDgyMiwgMC4yMTU1MiwgMC4yOTEzNDUsIDAuMzY3MDk3LCAwLjQ0MjkwNCwgMC41MTg2MzQiLCBcCi0gICAgICAgICAgIjAuMDgyMTAxLCAwLjE2MDc1LCAwLjIyMTQzOCwgMC4yOTcyMzUsIDAuMzczMDE1LCAwLjQ0ODg0NywgMC41MjQ1NTIiLCBcCi0gICAgICAgICAgIjAuMDg2Mjk5LCAwLjE2NTA1MSwgMC4yMjU3NDYsIDAuMzAxNTM3LCAwLjM3NzMxMywgMC40NTMxMDUsIDAuNTI4ODU0IiwgXAotICAgICAgICAgICIwLjA4OTc2NCwgMC4xNjg0OTgsIDAuMjI5MTk1LCAwLjMwNDk5MywgMC4zODA3NjIsIDAuNDU2NTI4LCAwLjUzMjMxMyIsIFwKLSAgICAgICAgICAiMC4wOTQ0OCwgMC4xNzMxNzgsIDAuMjMzODk1LCAwLjMwOTY5LCAwLjM4NTQ2NCwgMC40NjEyMjgsIDAuNTM2OTc1IiwgXAotICAgICAgICAgICIwLjA5ODExNSwgMC4xNzY3ODgsIDAuMjM3NTE1LCAwLjMxMzMxMywgMC4zODkwNjYsIDAuNDY0ODE1LCAwLjU0MDYwNyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDUwNCwgMC4xOTY4MDEsIDAuMzIxNjQsIDAuNDc4NTc2LCAwLjYzNTIwOCwgMC43OTE4NDEsIDAuOTUwOTMzIiwgXAotICAgICAgICAgICIwLjA0NTAzNywgMC4xOTY3OTUsIDAuMzIxNjU0LCAwLjQ3ODY0OSwgMC42MzUxNCwgMC43OTM0NzQsIDAuOTQ5MjE0IiwgXAotICAgICAgICAgICIwLjA0NTAxLCAwLjE5NjY2MiwgMC4zMjE2MDQsIDAuNDc4NDY5LCAwLjYzNTEwNSwgMC43OTE5MzYsIDAuOTUwODM2IiwgXAotICAgICAgICAgICIwLjA0NDk0OCwgMC4xOTY3NjIsIDAuMzIxMjgxLCAwLjQ3ODQ3NiwgMC42MzUwODcsIDAuNzkyMTMyLCAwLjk1MDY5NiIsIFwKLSAgICAgICAgICAiMC4wNDQ5MDgsIDAuMTk2ODE5LCAwLjMyMTYzMSwgMC40Nzg0ODksIDAuNjM1NjcsIDAuNzkyMzc1LCAwLjk0OTYwNCIsIFwKLSAgICAgICAgICAiMC4wNDQ4OTMsIDAuMTk2NjU4LCAwLjMyMTMzMywgMC40NzgwNjcsIDAuNjM1NDUsIDAuNzkyNDU3LCAwLjk0OTc0MSIsIFwKLSAgICAgICAgICAiMC4wNDQ5NzYsIDAuMTk2NjU4LCAwLjMyMTA0NSwgMC40Nzc5NDUsIDAuNjM1MDA5LCAwLjc5MjEyMywgMC45NDk0NDEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDU1NjcsIDAuMDA1NjMxLCAwLjAwNTY0MSwgMC4wMDU2NDcsIDAuMDA1NjUsIDAuMDA1NjUxLCAwLjAwNTY1MiIsIFwKLSAgICAgICAgICAiMC4wMDU1NjYsIDAuMDA1NjMsIDAuMDA1NjQyLCAwLjAwNTY0NiwgMC4wMDU2NDksIDAuMDA1NjUxLCAwLjAwNTY1MyIsIFwKLSAgICAgICAgICAiMC4wMDU2MzMsIDAuMDA1Njk2LCAwLjAwNTcwNywgMC4wMDU3MTIsIDAuMDA1NzE3LCAwLjAwNTcxNywgMC4wMDU3MTkiLCBcCi0gICAgICAgICAgIjAuMDA1NzM5LCAwLjAwNTc5NSwgMC4wMDU3OTksIDAuMDA1ODA5LCAwLjAwNTgxMSwgMC4wMDU4MDgsIDAuMDA1ODE1IiwgXAotICAgICAgICAgICIwLjAwNTg1OCwgMC4wMDU5MSwgMC4wMDU5MTcsIDAuMDA1OTIzLCAwLjAwNTkyNiwgMC4wMDU5MjYsIDAuMDA1OTIzIiwgXAotICAgICAgICAgICIwLjAwNjA2MiwgMC4wMDYxMTMsIDAuMDA2MTIxLCAwLjAwNjEyNCwgMC4wMDYxMjYsIDAuMDA2MTMsIDAuMDA2MTI4IiwgXAotICAgICAgICAgICIwLjAwNjI1NCwgMC4wMDYyOTMsIDAuMDA2MzEsIDAuMDA2Mjk5LCAwLjAwNjMwMywgMC4wMDYzMTQsIDAuMDA2MzAxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1MjcxLCAwLjAwNTM0NiwgMC4wMDUzNiwgMC4wMDUzNjcsIDAuMDA1MzcxLCAwLjAwNTM3MywgMC4wMDUzNzUiLCBcCi0gICAgICAgICAgIjAuMDA1Mjc0LCAwLjAwNTM0OSwgMC4wMDUzNjIsIDAuMDA1MzcsIDAuMDA1Mzc0LCAwLjAwNTM3NiwgMC4wMDUzNzgiLCBcCi0gICAgICAgICAgIjAuMDA1MzM2LCAwLjAwNTQxMywgMC4wMDU0MjcsIDAuMDA1NDM0LCAwLjAwNTQzOCwgMC4wMDU0NDEsIDAuMDA1NDQzIiwgXAotICAgICAgICAgICIwLjAwNTQzOSwgMC4wMDU1MTYsIDAuMDA1NTI4LCAwLjAwNTUzNSwgMC4wMDU1MzksIDAuMDA1NTQyLCAwLjAwNTU0MyIsIFwKLSAgICAgICAgICAiMC4wMDU1NTksIDAuMDA1NjM1LCAwLjAwNTY0OCwgMC4wMDU2NDcsIDAuMDA1NjU4LCAwLjAwNTY1MywgMC4wMDU2NjEiLCBcCi0gICAgICAgICAgIjAuMDA1Nzc2LCAwLjAwNTgzMywgMC4wMDU4NTMsIDAuMDA1ODQ5LCAwLjAwNTg2MiwgMC4wMDU4NTQsIDAuMDA1ODU1IiwgXAotICAgICAgICAgICIwLjAwNTk3NSwgMC4wMDYwNCwgMC4wMDYwNSwgMC4wMDYwNDMsIDAuMDA2MDU4LCAwLjAwNjA1OSwgMC4wMDYwNiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzAzNSwgMC4wMDMwOTMsIDAuMDAzMTAyLCAwLjAwMzEwNSwgMC4wMDMxMDksIDAuMDAzMTEyLCAwLjAwMzExIiwgXAotICAgICAgICAgICIwLjAwMzA0OSwgMC4wMDMxMTUsIDAuMDAzMTI1LCAwLjAwMzEzMSwgMC4wMDMxMzUsIDAuMDAzMTM2LCAwLjAwMzEzNyIsIFwKLSAgICAgICAgICAiMC4wMDMxNTYsIDAuMDAzMjExLCAwLjAwMzIyMSwgMC4wMDMyMzEsIDAuMDAzMjM1LCAwLjAwMzIzNywgMC4wMDMyMzkiLCBcCi0gICAgICAgICAgIjAuMDAzMzUxLCAwLjAwMzM4NiwgMC4wMDMzOTksIDAuMDAzNDA2LCAwLjAwMzQxLCAwLjAwMzQxMywgMC4wMDM0MTMiLCBcCi0gICAgICAgICAgIjAuMDAzNTk3LCAwLjAwMzYxLCAwLjAwMzU5NSwgMC4wMDM2MDUsIDAuMDAzNjExLCAwLjAwMzYxMiwgMC4wMDM2MTUiLCBcCi0gICAgICAgICAgIjAuMDAzOTcsIDAuMDAzOTY3LCAwLjAwMzk2MiwgMC4wMDM5ODMsIDAuMDAzOTg5LCAwLjAwMzk5MiwgMC4wMDM5NzYiLCBcCi0gICAgICAgICAgIjAuMDA0MzM2LCAwLjAwNDMxNSwgMC4wMDQyOTQsIDAuMDA0MzI5LCAwLjAwNDMzMywgMC4wMDQzMDYsIDAuMDA0MzM5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0NTI0LCAwLjAwNDU5OCwgMC4wMDQ2MTEsIDAuMDA0NjE4LCAwLjAwNDYyMywgMC4wMDQ2MjUsIDAuMDA0NjI3IiwgXAotICAgICAgICAgICIwLjAwNDU0NiwgMC4wMDQ2MiwgMC4wMDQ2MzMsIDAuMDA0NjQsIDAuMDA0NjQ0LCAwLjAwNDY0NywgMC4wMDQ2NDgiLCBcCi0gICAgICAgICAgIjAuMDA0NjQ1LCAwLjAwNDcxNSwgMC4wMDQ3MjgsIDAuMDA0NzM1LCAwLjAwNDczOSwgMC4wMDQ3NDEsIDAuMDA0NzQzIiwgXAotICAgICAgICAgICIwLjAwNDc2LCAwLjAwNDgzNiwgMC4wMDQ4NSwgMC4wMDQ4NTcsIDAuMDA0ODYxLCAwLjAwNDg2NCwgMC4wMDQ4NjUiLCBcCi0gICAgICAgICAgIjAuMDA0ODk3LCAwLjAwNDk2OCwgMC4wMDQ5ODIsIDAuMDA0OTg5LCAwLjAwNDk5MywgMC4wMDQ5OTYsIDAuMDA0OTk3IiwgXAotICAgICAgICAgICIwLjAwNTEyLCAwLjAwNTE5MSwgMC4wMDUyMDYsIDAuMDA1MjEyLCAwLjAwNTIxOCwgMC4wMDUyMTksIDAuMDA1MjIxIiwgXAotICAgICAgICAgICIwLjAwNTMyNCwgMC4wMDUzOTUsIDAuMDA1NDA4LCAwLjAwNTQxNSwgMC4wMDU0MjEsIDAuMDA1NDIzLCAwLjAwNTQyNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogWE9SMlg0ICoKLSAqIC0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoWE9SMlg0KSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuNzE5NDAyOwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2NTY5MDQ7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjU2OTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2NTY5MDQ7Ci0gIH0KLSAgcGluKEIpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTUyNzU3OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTUyNzI7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNTI3NTc7Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMS4yNjkzMTsKLSAgICBmdW5jdGlvbiA6ICIoQV5CKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjYxNDQsIDAuMTI4NzcsIDAuMTg0MDU5LCAwLjIyMzI4NywgMC4yODYwNTMsIDAuMzQwOTQ3LCAwLjQxOTM2NCIsIFwKLSAgICAgICAgICAiMC4wNzQyOCwgMC4xMzY4ODQsIDAuMTkyMTUyLCAwLjIzMTQwNCwgMC4yOTQxNzMsIDAuMzQ5MDY2LCAwLjQyNzQ3NiIsIFwKLSAgICAgICAgICAiMC4wODQ1MjUsIDAuMTQ3MTI3LCAwLjIwMjM5NSwgMC4yNDE2NTYsIDAuMzA0NDI2LCAwLjM1OTMxNSwgMC40Mzc3MjciLCBcCi0gICAgICAgICAgIjAuMDk0MzE4LCAwLjE1NjkxLCAwLjIxMjE5NSwgMC4yNTE0MjUsIDAuMzE0MTkxLCAwLjM2OTA3MSwgMC40NDc2NDMiLCBcCi0gICAgICAgICAgIjAuMTAzMDExLCAwLjE2NTg1NCwgMC4yMjExMzMsIDAuMjYwMzcxLCAwLjMyMzE0LCAwLjM3ODAzMywgMC40NTY0MzgiLCBcCi0gICAgICAgICAgIjAuMTE1MjcxLCAwLjE3ODk4NiwgMC4yMzQyNzksIDAuMjczNDgyLCAwLjMzNjIyMSwgMC4zOTExNjUsIDAuNDY5NTcyIiwgXAotICAgICAgICAgICIwLjEyNDE5NCwgMC4xODg3NzMsIDAuMjQ0MTQ2LCAwLjI4MzMzOSwgMC4zNDYwMTYsIDAuNDAxMDExLCAwLjQ3OTM5MSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzNTIzOSwgMC4xNDYxMjYsIDAuMjU5MjI4LCAwLjM0MTQyOCwgMC40NzQwOTUsIDAuNTkwMTk0LCAwLjc1NTYyIiwgXAotICAgICAgICAgICIwLjAzNTE0OCwgMC4xNDYxMjcsIDAuMjU5NDQxLCAwLjM0MTQyNywgMC40NzQwNjksIDAuNTkwMjM2LCAwLjc1NTU3NSIsIFwKLSAgICAgICAgICAiMC4wMzUyODEsIDAuMTQ2MTM1LCAwLjI1OTQ4OCwgMC4zNDE0MTgsIDAuNDc0MTAzLCAwLjU5MDI0NywgMC43NTU1NiIsIFwKLSAgICAgICAgICAiMC4wMzU2ODcsIDAuMTQ2MjcxLCAwLjI1OTQzLCAwLjM0MTQ2NiwgMC40NzQxMzUsIDAuNTg5OTgxLCAwLjc1NTA0MiIsIFwKLSAgICAgICAgICAiMC4wMzY3NDMsIDAuMTQ2NTQzLCAwLjI1OTY5NiwgMC4zNDE1NTIsIDAuNDc0MTEyLCAwLjU5MDI1MSwgMC43NTU1NDciLCBcCi0gICAgICAgICAgIjAuMDM4OTA3LCAwLjE0NzYzMiwgMC4yNjAwODEsIDAuMzQxOTc3LCAwLjQ3Mzc5NiwgMC41OTAzOTcsIDAuNzU2NTY1IiwgXAotICAgICAgICAgICIwLjA0MDY2MywgMC4xNDg3MzcsIDAuMjYwODI4LCAwLjM0MjM4NSwgMC40NzM5MTYsIDAuNTg5NDk4LCAwLjc1NjYxNSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3MTI3NywgMC4xMzQzNzksIDAuMTg4OTEsIDAuMjI3NDA5LCAwLjI4ODkxLCAwLjM0MjcwNywgMC40MTk1NjEiLCBcCi0gICAgICAgICAgIjAuMDc5Mjc3LCAwLjE0MjM4NSwgMC4xOTY5MTksIDAuMjM1NDIsIDAuMjk2OTIyLCAwLjM1MDcyNCwgMC40Mjc1OCIsIFwKLSAgICAgICAgICAiMC4wODkyODYsIDAuMTUyMzY4LCAwLjIwNjg4NCwgMC4yNDU0MDMsIDAuMzA2OTEsIDAuMzYwNzA5LCAwLjQzNzU1MiIsIFwKLSAgICAgICAgICAiMC4wOTg5MjQsIDAuMTYxOTM4LCAwLjIxNjQ3MywgMC4yNTQ5NzIsIDAuMzE2NDc2LCAwLjM3MDMxOCwgMC40NDcxMzMiLCBcCi0gICAgICAgICAgIjAuMTA3NDg3LCAwLjE3MDcxNiwgMC4yMjUyNDEsIDAuMjYzNzU3LCAwLjMyNTI2NywgMC4zNzkwNjQsIDAuNDU1OTA1IiwgXAotICAgICAgICAgICIwLjExOTcyOCwgMC4xODM1NjUsIDAuMjM4MTE0LCAwLjI3NjYxNywgMC4zMzgxNCwgMC4zOTE5MjQsIDAuNDY4NzYzIiwgXAotICAgICAgICAgICIwLjEyODQ2NCwgMC4xOTMxMzgsIDAuMjQ3NzMyLCAwLjI4NjE5LCAwLjM0NzcyLCAwLjQwMTUwNSwgMC40NzgzNTQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzYwODksIDAuMTQyNzI1LCAwLjI1MTAzNiwgMC4zMjk0NjksIDAuNDU2MzkyLCAwLjU2NzAyMSwgMC43MjcwOTEiLCBcCi0gICAgICAgICAgIjAuMDM2MTIxLCAwLjE0MjczOCwgMC4yNTEwNDYsIDAuMzI5NDY0LCAwLjQ1NjQwNSwgMC41Njc2NjUsIDAuNzI2MjE5IiwgXAotICAgICAgICAgICIwLjAzNjA4NywgMC4xNDI4MDgsIDAuMjUxMDY0LCAwLjMyOTUwNSwgMC40NTYzODQsIDAuNTY3Njg1LCAwLjcyNzA4MSIsIFwKLSAgICAgICAgICAiMC4wMzY0NTgsIDAuMTQyOTUxLCAwLjI1MTExLCAwLjMyOTU2OCwgMC40NTY0MiwgMC41NjY3MzgsIDAuNzI3MTA5IiwgXAotICAgICAgICAgICIwLjAzNzI1OCwgMC4xNDMyMiwgMC4yNTEyNTQsIDAuMzI5NTAzLCAwLjQ1NjQ1NywgMC41Njc3MzksIDAuNzI3MTA3IiwgXAotICAgICAgICAgICIwLjAzOTI0NiwgMC4xNDQxMjksIDAuMjUxNzU5LCAwLjMzMDAwNywgMC40NTU4NywgMC41Njc4NzksIDAuNzI3MjEzIiwgXAotICAgICAgICAgICIwLjA0MDY5NCwgMC4xNDUyNjcsIDAuMjUyNDAxLCAwLjMzMDMyNCwgMC40NTY5OCwgMC41NjgwOTUsIDAuNzI3Mzg4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY3ODc3LCAwLjEyNzA1MSwgMC4xODIxMDMsIDAuMjIxMzU5LCAwLjI4NDEyMiwgMC4zMzkwNTYsIDAuNDE3NTEiLCBcCi0gICAgICAgICAgIjAuMDc1NzU5LCAwLjEzNDk1LCAwLjE4OTk5NSwgMC4yMjkyNSwgMC4yOTIwNTEsIDAuMzQ2OTQyLCAwLjQyNTM1NSIsIFwKLSAgICAgICAgICAiMC4wODM1MzMsIDAuMTQyNzE5LCAwLjE5Nzc2LCAwLjIzNzAxNCwgMC4yOTk3NzgsIDAuMzU0NzIzLCAwLjQzMzE1OCIsIFwKLSAgICAgICAgICAiMC4wODkwOTMsIDAuMTQ4MjQsIDAuMjAzMjgsIDAuMjQyNTM1LCAwLjMwNTI5OCwgMC4zNjAyNDUsIDAuNDM4Njc2IiwgXAotICAgICAgICAgICIwLjA5MzY1MSwgMC4xNTI4MzksIDAuMjA3ODgzLCAwLjI0NzEyMywgMC4zMDk4OTUsIDAuMzY0ODE3LCAwLjQ0MzI3IiwgXAotICAgICAgICAgICIwLjA5OTU5NiwgMC4xNTg3NjYsIDAuMjEzODIxLCAwLjI1MzA2NCwgMC4zMTU4ODMsIDAuMzcwNzY1LCAwLjQ0OTE4NyIsIFwKLSAgICAgICAgICAiMC4xMDM5NjEsIDAuMTYzMTMyLCAwLjIxODE4MiwgMC4yNTc0MzksIDAuMzIwMjA4LCAwLjM3NTEzOCwgMC40NTM1MDgiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzA3ODcsIDAuMTQxOTc3LCAwLjI1Njk2MSwgMC4zMzk4NjcsIDAuNDcyNjk4LCAwLjU4ODE3NSwgMC43NTU2NTYiLCBcCi0gICAgICAgICAgIjAuMDMwODA3LCAwLjE0MjA3NSwgMC4yNTY5MzksIDAuMzM5ODcxLCAwLjQ3MjA3OCwgMC41ODg1MTEsIDAuNzU1NjMzIiwgXAotICAgICAgICAgICIwLjAzMDc5MSwgMC4xNDIwNjIsIDAuMjU2OTYsIDAuMzM5Mjc4LCAwLjQ3MjY2MywgMC41ODgyODgsIDAuNzU1NjU2IiwgXAotICAgICAgICAgICIwLjAzMDc5OSwgMC4xNDIwODksIDAuMjU2OTY2LCAwLjMzOTI2MywgMC40NzI2NDQsIDAuNTg4MzM0LCAwLjc1NTY1NCIsIFwKLSAgICAgICAgICAiMC4wMzA4ODEsIDAuMTQyMDc2LCAwLjI1NjcwOSwgMC4zMzk0ODQsIDAuNDcyNjA2LCAwLjU4ODYyNiwgMC43NTU2NSIsIFwKLSAgICAgICAgICAiMC4wMzA4OTksIDAuMTQyMSwgMC4yNTY3MSwgMC4zMzk0MzIsIDAuNDcyMDAzLCAwLjU4OTEwOSwgMC43NTU2IiwgXAotICAgICAgICAgICIwLjAzMDk2MiwgMC4xNDIwMDUsIDAuMjU2NzY0LCAwLjMzOTg0NywgMC40NzIyNDMsIDAuNTg4NTY4LCAwLjc1NTU0NCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2OTk1NSwgMC4xMjg4MzMsIDAuMTgyODY4LCAwLjIyMTMzOSwgMC4yODI4NTUsIDAuMzM2NjY0LCAwLjQxMzU0NyIsIFwKLSAgICAgICAgICAiMC4wNzgwMzgsIDAuMTM2OTQ0LCAwLjE5MDk2OCwgMC4yMjk0MzksIDAuMjkwOTU2LCAwLjM0NDc5LCAwLjQyMTYxOCIsIFwKLSAgICAgICAgICAiMC4wODU4MDUsIDAuMTQ0NzA1LCAwLjE5ODczMiwgMC4yMzcyMDIsIDAuMjk4NzE5LCAwLjM1MjU1MywgMC40MjkzOCIsIFwKLSAgICAgICAgICAiMC4wOTE0NzcsIDAuMTUwMzUzLCAwLjIwNDM4MiwgMC4yNDI4NTQsIDAuMzA0MzcyLCAwLjM1ODE3NywgMC40MzUwNDQiLCBcCi0gICAgICAgICAgIjAuMDk2MDIzLCAwLjE1NDkxNSwgMC4yMDg5NDUsIDAuMjQ3NDEyLCAwLjMwODkyNywgMC4zNjI3MzYsIDAuNDM5NjE0IiwgXAotICAgICAgICAgICIwLjEwMjMzNiwgMC4xNjEyNDQsIDAuMjE1MywgMC4yNTM3NTgsIDAuMzE1MjY1LCAwLjM2OTA5MywgMC40NDYwMDYiLCBcCi0gICAgICAgICAgIjAuMTA2OTgzLCAwLjE2NTkyNywgMC4yMTk5NTMsIDAuMjU4NDI5LCAwLjMxOTkxNiwgMC4zNzM3NDUsIDAuNDUwNjIyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDMwNzkyLCAwLjEzNzU3OSwgMC4yNDc2MDcsIDAuMzI2OTEzLCAwLjQ1NDMzOCwgMC41NjYwMDEsIDAuNzI0Nzk0IiwgXAotICAgICAgICAgICIwLjAzMDc5MiwgMC4xMzc1NjgsIDAuMjQ3NjA1LCAwLjMyNjg3NywgMC40NTQzMjUsIDAuNTY2MTU0LCAwLjcyNTc2NCIsIFwKLSAgICAgICAgICAiMC4wMzA3ODEsIDAuMTM3NTU1LCAwLjI0NzU5MywgMC4zMjY4NzMsIDAuNDU0MzIxLCAwLjU2NjE0OSwgMC43MjU3NTQiLCBcCi0gICAgICAgICAgIjAuMDMwNzA2LCAwLjEzNzU4OCwgMC4yNDczNzYsIDAuMzI2OTAxLCAwLjQ1NDMzNiwgMC41NjU5NDUsIDAuNzI1MDQ5IiwgXAotICAgICAgICAgICIwLjAzMDcyOSwgMC4xMzc1OTEsIDAuMjQ3NjI4LCAwLjMyNjg2OCwgMC40NTQzMjQsIDAuNTY1OTc3LCAwLjcyNDgxMyIsIFwKLSAgICAgICAgICAiMC4wMzA3NCwgMC4xMzc1OTUsIDAuMjQ3MjksIDAuMzI2NTQ1LCAwLjQ1NDI1MiwgMC41NjUyMzIsIDAuNzI0NjM2IiwgXAotICAgICAgICAgICIwLjAzMDg1MSwgMC4xMzc0NTMsIDAuMjQ3NTkyLCAwLjMyNjk3NiwgMC40NTQzNjUsIDAuNTY2MDQ5LCAwLjcyNTk0NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0NzIyOCwgMC4xMDYzNDIsIDAuMTYxMzgsIDAuMjAwNjM2LCAwLjI2MzM5OCwgMC4zMTgzNTcsIDAuMzk2NzY3IiwgXAotICAgICAgICAgICIwLjA1NTAyMSwgMC4xMTQxMTksIDAuMTY5MTYyLCAwLjIwODQyLCAwLjI3MTE4MSwgMC4zMjYxMzgsIDAuNDA0NTU1IiwgXAotICAgICAgICAgICIwLjA2NDc2NCwgMC4xMjM4OSwgMC4xNzg5NDgsIDAuMjE4MjA2LCAwLjI4MDk3NiwgMC4zMzU4OTMsIDAuNDE0MzQ5IiwgXAotICAgICAgICAgICIwLjA3MzM2OSwgMC4xMzI2NiwgMC4xODc2OTksIDAuMjI2OTU1LCAwLjI4OTcxNywgMC4zNDQ2MzQsIDAuNDIzMDciLCBcCi0gICAgICAgICAgIjAuMDgwMzgsIDAuMTQwMTMsIDAuMTk1MTU4LCAwLjIzNDM4OSwgMC4yOTcxNjksIDAuMzUyMTIxLCAwLjQzMDUzOSIsIFwKLSAgICAgICAgICAiMC4wODk2MjUsIDAuMTUwMTc5LCAwLjIwNTIwNiwgMC4yNDQ0NTgsIDAuMzA3MTc4LCAwLjM2MjA5MiwgMC40NDA1MzYiLCBcCi0gICAgICAgICAgIjAuMDk2NDQyLCAwLjE1Nzc3LCAwLjIxMjc1MiwgMC4yNTE5NjgsIDAuMzE0NzkzLCAwLjM2OTU5NywgMC40NDgxMzciKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzA2MzMsIDAuMTQyMDQxLCAwLjI1Njk0NSwgMC4zMzk4MTcsIDAuNDcyMTUyLCAwLjU4ODM3MSwgMC43NTU2ODciLCBcCi0gICAgICAgICAgIjAuMDMwNzM5LCAwLjE0MjA0MiwgMC4yNTY5NDQsIDAuMzM5Mjg2LCAwLjQ3MjYyLCAwLjU4ODM3MiwgMC43NTU2NTEiLCBcCi0gICAgICAgICAgIjAuMDMwOTk1LCAwLjE0MjExMiwgMC4yNTY5NjgsIDAuMzM5ODQ4LCAwLjQ3MjcxOCwgMC41ODg1MjgsIDAuNzU1NjA2IiwgXAotICAgICAgICAgICIwLjAzMjQyNywgMC4xNDI0MjksIDAuMjU3MDc5LCAwLjMzOTkxMywgMC40NzI3MTEsIDAuNTg4NjksIDAuNzU0ODQ0IiwgXAotICAgICAgICAgICIwLjAzMzkzOCwgMC4xNDI5OTMsIDAuMjU3Mjc2LCAwLjMzOTY3NSwgMC40NzIzMDUsIDAuNTg5MTYyLCAwLjc1NDc4NyIsIFwKLSAgICAgICAgICAiMC4wMzY0MzksIDAuMTQzOTA3LCAwLjI1NzY1NywgMC4zNDAyMTYsIDAuNDcyNzM0LCAwLjU4ODYzMywgMC43NTU2NjciLCBcCi0gICAgICAgICAgIjAuMDM4MzQsIDAuMTQ0NzkzLCAwLjI1ODEwNywgMC4zNDA0NjQsIDAuNDczMDkxLCAwLjU4OTQ0OSwgMC43NTQ3ODciKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTYxNzYsIDAuMTE5Mjc1LCAwLjE3MzgwNCwgMC4yMTIzMTksIDAuMjczODMyLCAwLjMyNzYzNCwgMC40MDQ1MjEiLCBcCi0gICAgICAgICAgIjAuMDYzMzgyLCAwLjEyNjQxNywgMC4xODA5OCwgMC4yMTk0NzksIDAuMjgwOTg5LCAwLjMzNDc4NywgMC40MTE3MDUiLCBcCi0gICAgICAgICAgIjAuMDcyMTM4LCAwLjEzNTEzNCwgMC4xODk2ODUsIDAuMjI4MTg3LCAwLjI4OTY5OSwgMC4zNDM0OTcsIDAuNDIwMzU5IiwgXAotICAgICAgICAgICIwLjA4MDM2OSwgMC4xNDMzNDgsIDAuMTk3OSwgMC4yMzYzOTcsIDAuMjk3OTA4LCAwLjM1MTcyMywgMC40Mjg2MTUiLCBcCi0gICAgICAgICAgIjAuMDg3NDYsIDAuMTUwNjMsIDAuMjA1MTcxLCAwLjI0MzY3OSwgMC4zMDUxNjgsIDAuMzU4OTc2LCAwLjQzNTgxNyIsIFwKLSAgICAgICAgICAiMC4wOTcwNjQsIDAuMTYwNjA2LCAwLjIxNTIxNCwgMC4yNTM2OTcsIDAuMzE1Mjc0LCAwLjM2ODk4MSwgMC40NDU5NjIiLCBcCi0gICAgICAgICAgIjAuMTA0MTgsIDAuMTY4MDg2LCAwLjIyMjg0LCAwLjI2MTQyNSwgMC4zMjI5MDEsIDAuMzc2Njk3LCAwLjQ1MzQzMSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzNTU4NCwgMC4xNDI2MjEsIDAuMjUwOTE3LCAwLjMyOTQ0NSwgMC40NTYzMDgsIDAuNTY3NjI5LCAwLjcyNzIxNCIsIFwKLSAgICAgICAgICAiMC4wMzU1ODIsIDAuMTQyNjE4LCAwLjI1MDk1MiwgMC4zMjk0MzMsIDAuNDU2MzE3LCAwLjU2NzU1NiwgMC43MjU3NDUiLCBcCi0gICAgICAgICAgIjAuMDM1Mzk3LCAwLjE0MjU4MiwgMC4yNTA5MjUsIDAuMzI5NDE5LCAwLjQ1NjMwNCwgMC41NjY5MDUsIDAuNzI3MDM0IiwgXAotICAgICAgICAgICIwLjAzNjAzMiwgMC4xNDI2ODcsIDAuMjUxMDQxLCAwLjMyOTUwOCwgMC40NTYzNDQsIDAuNTY2NTQ2LCAwLjcyNzI2NCIsIFwKLSAgICAgICAgICAiMC4wMzcyNDUsIDAuMTQzMTgzLCAwLjI1MTMyLCAwLjMyOTU4NiwgMC40NTY0MjEsIDAuNTY3Nzg3LCAwLjcyNzExOSIsIFwKLSAgICAgICAgICAiMC4wMzkyOCwgMC4xNDQxMDMsIDAuMjUxNzcsIDAuMzMwMDQ3LCAwLjQ1NjcxOSwgMC41NjcyNzMsIDAuNzI1NzM0IiwgXAotICAgICAgICAgICIwLjA0MDkyMiwgMC4xNDQ4MzEsIDAuMjUyNDA0LCAwLjMzMDQ5LCAwLjQ1NjQyLCAwLjU2ODIxOSwgMC43Mjc0OTUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTU2MTMsIDAuMTE4MjI3LCAwLjE3MzUzNCwgMC4yMTI3NzEsIDAuMjc1NTQsIDAuMzMwNDM3LCAwLjQwODg2NyIsIFwKLSAgICAgICAgICAiMC4wNjM4OTgsIDAuMTI2NDk2LCAwLjE4MTc5MSwgMC4yMjEwMzUsIDAuMjgzODAzLCAwLjMzODc1OCwgMC40MTcxMjkiLCBcCi0gICAgICAgICAgIjAuMDcyOTU1LCAwLjEzNTUzMSwgMC4xOTA4MywgMC4yMzAwNjcsIDAuMjkyODM0LCAwLjM0Nzc5MSwgMC40MjYxNzIiLCBcCi0gICAgICAgICAgIjAuMDc5NDQsIDAuMTQxOTA0LCAwLjE5NzE4MiwgMC4yMzY0MywgMC4yOTkxOTgsIDAuMzU0MTA4LCAwLjQzMjUzMiIsIFwKLSAgICAgICAgICAiMC4wODQxNDEsIDAuMTQ2NDgxLCAwLjIwMTc0NiwgMC4yNDEwNDIsIDAuMzAzNzQ5LCAwLjM1ODY0NywgMC40MzcxMjUiLCBcCi0gICAgICAgICAgIjAuMDkwMDkxLCAwLjE1MjQzNiwgMC4yMDc1OCwgMC4yNDY5NTksIDAuMzA5NzQ5LCAwLjM2NDUzNywgMC40NDI5MjEiLCBcCi0gICAgICAgICAgIjAuMDk0NDk1LCAwLjE1NjgxMiwgMC4yMTE4NzEsIDAuMjUxMTE2LCAwLjMxMzg4OCwgMC4zNjg4MjMsIDAuNDQ3MzI5Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM0ODYyLCAwLjE0NjAxMSwgMC4yNTkzNjcsIDAuMzQxMzg4LCAwLjQ3NDAzNiwgMC41OTAxNTYsIDAuNzU1Njc1IiwgXAotICAgICAgICAgICIwLjAzNDg1NCwgMC4xNDYwMTEsIDAuMjU5MjcsIDAuMzQxMzk1LCAwLjQ3MzMzMywgMC41OTAzMTEsIDAuNzU2NTA0IiwgXAotICAgICAgICAgICIwLjAzNDY0OSwgMC4xNDU5NTksIDAuMjU5MTc3LCAwLjM0MTM4LCAwLjQ3Mzk4OSwgMC41OTAzMDYsIDAuNzU2NTI5IiwgXAotICAgICAgICAgICIwLjAzNDMzOSwgMC4xNDU4MiwgMC4yNTkyODMsIDAuMzQxMzMyLCAwLjQ3Mzg2NywgMC41OTAxNCwgMC43NTU1OTYiLCBcCi0gICAgICAgICAgIjAuMDM0NDc1LCAwLjE0NTczNywgMC4yNTk0MjQsIDAuMzQxNTQxLCAwLjQ3Mzg1OCwgMC41OTAwMjMsIDAuNzU1NjM2IiwgXAotICAgICAgICAgICIwLjAzNDUzOCwgMC4xNDU1NDMsIDAuMjU5MTM5LCAwLjM0MTE4MSwgMC40NzM4OTQsIDAuNTkwMTUyLCAwLjc1NjQzNyIsIFwKLSAgICAgICAgICAiMC4wMzQ1MDEsIDAuMTQ1NTA2LCAwLjI1ODk5NSwgMC4zNDExMDUsIDAuNDczNzMxLCAwLjU5MDA1MywgMC43NTUwMzMiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjMxNjUsIDAuMTIyMDI5LCAwLjE3NjA2NCwgMC4yMTQ1MzUsIDAuMjc2MDUyLCAwLjMyOTg1OCwgMC40MDY3NDQiLCBcCi0gICAgICAgICAgIjAuMDcwOTg3LCAwLjEyOTkwNywgMC4xODM5MzgsIDAuMjIyNDExLCAwLjI4MzkzNiwgMC4zMzc3MjksIDAuNDE0NTkiLCBcCi0gICAgICAgICAgIjAuMDc4MTIzLCAwLjEzNjk4OCwgMC4xOTEwMjIsIDAuMjI5NDkzLCAwLjI5MTAxMSwgMC4zNDQ4MjIsIDAuNDIxNzA1IiwgXAotICAgICAgICAgICIwLjA4MzAxNSwgMC4xNDE5NTYsIDAuMTk1OTkyLCAwLjIzNDQ2NCwgMC4yOTU5ODEsIDAuMzQ5Nzg5LCAwLjQyNjY2NSIsIFwKLSAgICAgICAgICAiMC4wODcxMzgsIDAuMTQ2MDc5LCAwLjIwMDEzLCAwLjIzODU5NywgMC4zMDAxMDUsIDAuMzUzOTA5LCAwLjQzMDc3MyIsIFwKLSAgICAgICAgICAiMC4wOTI3MTUsIDAuMTUxNzczLCAwLjIwNTcyMSwgMC4yNDQyMDksIDAuMzA1ODc4LCAwLjM1OTY2OSwgMC40MzYzOTYiLCBcCi0gICAgICAgICAgIjAuMDk2OTUsIDAuMTU1Nzk5LCAwLjIwOTg3OSwgMC4yNDgzNjYsIDAuMzA5ODkzLCAwLjM2MzcsIDAuNDQwNTU5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDMwNzc4LCAwLjEzNzU3OSwgMC4yNDc2MDUsIDAuMzI2OTA5LCAwLjQ1NDMzNywgMC41NjYsIDAuNzI0ODA5IiwgXAotICAgICAgICAgICIwLjAzMDcwNiwgMC4xMzc1NjIsIDAuMjQ3MjU3LCAwLjMyNjkwMSwgMC40NTQzNSwgMC41NjYwNCwgMC43MjUxMzMiLCBcCi0gICAgICAgICAgIjAuMDMwNzI1LCAwLjEzNzU1NiwgMC4yNDc1ODcsIDAuMzI2ODQ1LCAwLjQ1NDMxOCwgMC41NjU5NDYsIDAuNzI0ODEyIiwgXAotICAgICAgICAgICIwLjAzMDY1NCwgMC4xMzc2MTcsIDAuMjQ3NjIxLCAwLjMyNjg2OSwgMC40NTQzMjEsIDAuNTY1OTU3LCAwLjcyNDcwMSIsIFwKLSAgICAgICAgICAiMC4wMzA3ODQsIDAuMTM3NjE4LCAwLjI0NzU5OCwgMC4zMjY1MSwgMC40NTQyNTgsIDAuNTY1OTUsIDAuNzI1MDUyIiwgXAotICAgICAgICAgICIwLjAzMDYzOCwgMC4xMzc1NjksIDAuMjQ3NDA3LCAwLjMyNjU1LCAwLjQ1MzczMywgMC41NjU3NzUsIDAuNzI1NTgzIiwgXAotICAgICAgICAgICIwLjAzMDc1OCwgMC4xMzc0NDMsIDAuMjQ3MjE1LCAwLjMyNjYxMiwgMC40NTM2MTksIDAuNTY1Mjk3LCAwLjcyNDgzNyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA4OTM3LCAwLjAwOTA1NSwgMC4wMDkwODYsIDAuMDA5MDk3LCAwLjAwOTEwNywgMC4wMDkxMTIsIDAuMDA5MTE5IiwgXAotICAgICAgICAgICIwLjAwODkzMiwgMC4wMDkwNDYsIDAuMDA5MDc3LCAwLjAwOTA4OCwgMC4wMDkwOTcsIDAuMDA5MTAzLCAwLjAwOTEwNyIsIFwKLSAgICAgICAgICAiMC4wMDg5OCwgMC4wMDkwOTgsIDAuMDA5MTMxLCAwLjAwOTE0MSwgMC4wMDkxNSwgMC4wMDkxNTQsIDAuMDA5MTY0IiwgXAotICAgICAgICAgICIwLjAwOTA3OSwgMC4wMDkxODYsIDAuMDA5MjE5LCAwLjAwOTIyOSwgMC4wMDkyNCwgMC4wMDkyNDQsIDAuMDA5MjQ4IiwgXAotICAgICAgICAgICIwLjAwOTE5OCwgMC4wMDkyOSwgMC4wMDkzMjIsIDAuMDA5MzMyLCAwLjAwOTM0NywgMC4wMDkzNDgsIDAuMDA5MzQ1IiwgXAotICAgICAgICAgICIwLjAwOTM5OSwgMC4wMDk0ODgsIDAuMDA5NTE2LCAwLjAwOTUyLCAwLjAwOTUzMSwgMC4wMDk1MzMsIDAuMDA5NTQxIiwgXAotICAgICAgICAgICIwLjAwOTU3LCAwLjAwOTY2NywgMC4wMDk2OTQsIDAuMDA5NzAyLCAwLjAwOTcwOCwgMC4wMDk3MSwgMC4wMDk3MDMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwOTU2OCwgMC4wMDk0NTgsIDAuMDA5NDY4LCAwLjAwOTQ3MywgMC4wMDk0NzcsIDAuMDA5NDgsIDAuMDA5NDgyIiwgXAotICAgICAgICAgICIwLjAwOTU2OSwgMC4wMDk0NTQsIDAuMDA5NDY2LCAwLjAwOTQ3MSwgMC4wMDk0NzcsIDAuMDA5NDgsIDAuMDA5NDgzIiwgXAotICAgICAgICAgICIwLjAwOTYxOSwgMC4wMDk0OCwgMC4wMDk0OTcsIDAuMDA5NTA1LCAwLjAwOTUxMywgMC4wMDk1MTcsIDAuMDA5NTIyIiwgXAotICAgICAgICAgICIwLjAwOTgyNCwgMC4wMDk1NzEsIDAuMDA5NTczLCAwLjAwOTU3NywgMC4wMDk1ODMsIDAuMDA5NTg2LCAwLjAwOTU4OSIsIFwKLSAgICAgICAgICAiMC4wMDk5MzYsIDAuMDA5NjQ0LCAwLjAwOTY0MywgMC4wMDk2NDcsIDAuMDA5NjU0LCAwLjAwOTY1OCwgMC4wMDk2NjIiLCBcCi0gICAgICAgICAgIjAuMDEwMjE2LCAwLjAwOTc4NiwgMC4wMDk3NjksIDAuMDA5NzY4LCAwLjAwOTc3LCAwLjAwOTc2OSwgMC4wMDk3NzEiLCBcCi0gICAgICAgICAgIjAuMDEwNTE1LCAwLjAwOTk1NCwgMC4wMDk5MTYsIDAuMDA5OTA5LCAwLjAwOTkwNywgMC4wMDk5MDMsIDAuMDA5OTA2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDkwMDYsIDAuMDA4OTgzLCAwLjAwOTAwMSwgMC4wMDkwMDcsIDAuMDA5MDEzLCAwLjAwOTAxNiwgMC4wMDkwMiIsIFwKLSAgICAgICAgICAiMC4wMDkxMTYsIDAuMDA5MDg5LCAwLjAwOTEwNiwgMC4wMDkxMTIsIDAuMDA5MTIsIDAuMDA5MTIyLCAwLjAwOTEyNCIsIFwKLSAgICAgICAgICAiMC4wMDkzMywgMC4wMDkzLCAwLjAwOTMxOCwgMC4wMDkzMjUsIDAuMDA5MzMyLCAwLjAwOTMzNSwgMC4wMDkzMzkiLCBcCi0gICAgICAgICAgIjAuMDA5NTUyLCAwLjAwOTUxMywgMC4wMDk1MywgMC4wMDk1MzcsIDAuMDA5NTQ0LCAwLjAwOTU0NywgMC4wMDk1NTEiLCBcCi0gICAgICAgICAgIjAuMDA5NzY3LCAwLjAwOTcyNCwgMC4wMDk3NDcsIDAuMDA5NzQ0LCAwLjAwOTc0NywgMC4wMDk3NTQsIDAuMDA5NzU4IiwgXAotICAgICAgICAgICIwLjAxMDE1NCwgMC4wMTAxMzIsIDAuMDEwMSwgMC4wMTAxNDgsIDAuMDEwMTUyLCAwLjAxMDExMiwgMC4wMTAxMiIsIFwKLSAgICAgICAgICAiMC4wMTA1MzksIDAuMDEwNDcyLCAwLjAxMDQ0OCwgMC4wMTA0NTMsIDAuMDEwNDYzLCAwLjAxMDQ1OSwgMC4wMTA0NjIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNzc5OCwgMC4wMDc5MzYsIDAuMDA3OTgxLCAwLjAwNzk5NiwgMC4wMDgwMSwgMC4wMDgwMTcsIDAuMDA4MDI0IiwgXAotICAgICAgICAgICIwLjAwNzgxOCwgMC4wMDc5NjIsIDAuMDA4MDA2LCAwLjAwODAyMSwgMC4wMDgwMzUsIDAuMDA4MDQzLCAwLjAwODA1IiwgXAotICAgICAgICAgICIwLjAwNzkwNywgMC4wMDgwNTEsIDAuMDA4MDk0LCAwLjAwODEwOSwgMC4wMDgxMjQsIDAuMDA4MTMxLCAwLjAwODEzOCIsIFwKLSAgICAgICAgICAiMC4wMDgwMTcsIDAuMDA4MTY1LCAwLjAwODIwOSwgMC4wMDgyMjMsIDAuMDA4MjM4LCAwLjAwODI0NSwgMC4wMDgyNTIiLCBcCi0gICAgICAgICAgIjAuMDA4MTQzLCAwLjAwODI5MSwgMC4wMDgzMzQsIDAuMDA4MzQ4LCAwLjAwODM2MywgMC4wMDgzNzEsIDAuMDA4Mzc4IiwgXAotICAgICAgICAgICIwLjAwODQwMSwgMC4wMDg1NDMsIDAuMDA4NTksIDAuMDA4NjA0LCAwLjAwODYxNywgMC4wMDg2MjQsIDAuMDA4NjMzIiwgXAotICAgICAgICAgICIwLjAwODU3NSwgMC4wMDg3MDcsIDAuMDA4NzUsIDAuMDA4NzY2LCAwLjAwODc4MSwgMC4wMDg3ODgsIDAuMDA4NzkzIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBYT1IyWEwgKgotICogLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChYT1IyWEwpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4zNDg3OTc7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYzMTI0NTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MzEyNDU7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjMxMjM5OwotICB9Ci0gIHBpbihCKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDEzNjAzMjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDEzNjAzMjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDEzNjAxMzsKLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjE5NjIzODsKLSAgICBmdW5jdGlvbiA6ICIoQV5CKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDkxMDk5LCAwLjEwMTYyNywgMC4xOTYyODcsIDAuMzU0MzQ0LCAwLjUxMjI1MiwgMC44ODA4MzgsIDEuMDkwNzciLCBcCi0gICAgICAgICAgIjAuMDk5MTc5LCAwLjEwOTcsIDAuMjA0Mzc0LCAwLjM2MjQ1NiwgMC41MjAzMTksIDAuODg4Mzk2LCAxLjA5OTI5IiwgXAotICAgICAgICAgICIwLjEwODY4LCAwLjExOTIsIDAuMjEzODU5LCAwLjM3MTkyNSwgMC41MzAwNDQsIDAuODk3OTM2LCAxLjEwODkxIiwgXAotICAgICAgICAgICIwLjExNjUzNSwgMC4xMjcwNTYsIDAuMjIxNjk0LCAwLjM3OTU5NiwgMC41Mzc1NSwgMC45MDU4MywgMS4xMTY2MSIsIFwKLSAgICAgICAgICAiMC4xMjMyMTgsIDAuMTMzNzU1LCAwLjIyODM5NiwgMC4zODYyMjksIDAuNTQ0MzUxLCAwLjkxMjU2NiwgMS4xMjMwOCIsIFwKLSAgICAgICAgICAiMC4xMzIxMiwgMC4xNDI2NzIsIDAuMjM3MjksIDAuMzk1MTI1LCAwLjU1MzA3OSwgMC45MjE0NDIsIDEuMTMxOTEiLCBcCi0gICAgICAgICAgIjAuMTM4NjUzLCAwLjE0OTE2NiwgMC4yNDM5MSwgMC40MDE4OTMsIDAuNTU5ODgsIDAuOTI4MDg1LCAxLjEzODcyIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExOTAwNCwgMC4xNDA3NCwgMC4zMzkxMzgsIDAuNjcwNTk2LCAxLjAwMjcsIDEuNzc3ODQsIDIuMjE5OTEiLCBcCi0gICAgICAgICAgIjAuMTE5MTI4LCAwLjE0MDg5NiwgMC4zMzkxNDQsIDAuNjcwNDY2LCAxLjAwMjczLCAxLjc3NzE2LCAyLjIyMjEzIiwgXAotICAgICAgICAgICIwLjExOTMyMSwgMC4xNDEwMTgsIDAuMzM5MTgxLCAwLjY3MDYxMSwgMS4wMDI1MywgMS43NzY4NSwgMi4yMjE5MiIsIFwKLSAgICAgICAgICAiMC4xMTk2NTYsIDAuMTQxMjk4LCAwLjMzOTI1MSwgMC42NzA3MjQsIDEuMDAyNjUsIDEuNzc2NjcsIDIuMjIxOTciLCBcCi0gICAgICAgICAgIjAuMTIwMTc3LCAwLjE0MTcxNywgMC4zMzkxNDksIDAuNjcwNjYyLCAxLjAwMjc3LCAxLjc3NjY5LCAyLjIyMDI3IiwgXAotICAgICAgICAgICIwLjEyMDk3NSwgMC4xNDIzNiwgMC4zMzk1NjMsIDAuNjcwNDE0LCAxLjAwMjYyLCAxLjc3NzUxLCAyLjIyMDI3IiwgXAotICAgICAgICAgICIwLjEyMTk5MywgMC4xNDMxMTIsIDAuMzM5MzY0LCAwLjY3MDM0NiwgMS4wMDI3NSwgMS43Nzc1LCAyLjIyMDM4Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5MDE1NywgMC4wOTk4NzEsIDAuMTg2NzI4LCAwLjMzMTQ1LCAwLjQ3NjIxMSwgMC44MTM5MSwgMS4wMDY5NSIsIFwKLSAgICAgICAgICAiMC4wOTgwODEsIDAuMTA3Nzk0LCAwLjE5NDY0OCwgMC4zMzkzOTIsIDAuNDg0MTY0LCAwLjgyMTc0NywgMS4wMTQ3OCIsIFwKLSAgICAgICAgICAiMC4xMDcyNDEsIDAuMTE2OTQ5LCAwLjIwMzgxNywgMC4zNDg1NzUsIDAuNDkzMzEyLCAwLjgzMDg4MiwgMS4wMjM5MyIsIFwKLSAgICAgICAgICAiMC4xMTUwNTksIDAuMTI0NzY5LCAwLjIxMTYxMiwgMC4zNTY0MSwgMC41MDEwNzksIDAuODM5MDY2LCAxLjAzMTc2IiwgXAotICAgICAgICAgICIwLjEyMTUwNywgMC4xMzEyMjgsIDAuMjE4MDUzLCAwLjM2MjgxMywgMC41MDc2MjIsIDAuODQ1MjgsIDEuMDM4MzUiLCBcCi0gICAgICAgICAgIjAuMTMwMDI3LCAwLjEzOTc3MiwgMC4yMjY2NTQsIDAuMzcxMzM0LCAwLjUxNjA1LCAwLjg1NDAzNCwgMS4wNDcwMyIsIFwKLSAgICAgICAgICAiMC4xMzYzMjUsIDAuMTQ2MTAyLCAwLjIzMzAxLCAwLjM3NzY2NiwgMC41MjI1MDQsIDAuODYwMDMzLCAxLjA1MzIxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwODA5NywgMC4xMjczNiwgMC4zMDM5MTQsIDAuNTk5NTI1LCAwLjg5NjA2OSwgMS41ODg2NiwgMS45ODU4NiIsIFwKLSAgICAgICAgICAiMC4xMDgxMjEsIDAuMTI3MzY0LCAwLjMwMzg2NSwgMC41OTk0OTgsIDAuODk2Nzk0LCAxLjU5MjM5LCAxLjk4NDUyIiwgXAotICAgICAgICAgICIwLjEwODI0NiwgMC4xMjc0ODYsIDAuMzAzOTcyLCAwLjU5OTczOCwgMC44OTY3NTIsIDEuNTkyMzYsIDEuOTg0NTIiLCBcCi0gICAgICAgICAgIjAuMTA4NjcxLCAwLjEyNzg0LCAwLjMwMzk4NiwgMC41OTk3NDMsIDAuODk2MjU2LCAxLjU4OTM3LCAxLjk4NTYxIiwgXAotICAgICAgICAgICIwLjEwOTI3MiwgMC4xMjgzNDQsIDAuMzA0MTA3LCAwLjU5OTQwNiwgMC44OTY1NTIsIDEuNTg5ODUsIDEuOTg1NDYiLCBcCi0gICAgICAgICAgIjAuMTEwMTA1LCAwLjEyOTE2MSwgMC4zMDQ0MDEsIDAuNjAwOTQ3LCAwLjg5ODQxOSwgMS41ODkzOSwgMS45ODUzMyIsIFwKLSAgICAgICAgICAiMC4xMTEwODUsIDAuMTI5ODQsIDAuMzA0NjM5LCAwLjYwMDk5MywgMC44OTY2ODMsIDEuNTg5MDYsIDEuOTg1NjEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk5NDY0LCAwLjExMDAxNSwgMC4yMDQ4MTIsIDAuMzYyNjk4LCAwLjUyMDQ5LCAwLjg4ODY2LCAxLjA5OTI5IiwgXAotICAgICAgICAgICIwLjEwNzAyMiwgMC4xMTc1NjgsIDAuMjEyMzczLCAwLjM3MDI2MywgMC41MjgwNDksIDAuODk2MjgzLCAxLjEwNjY5IiwgXAotICAgICAgICAgICIwLjExMzU3MSwgMC4xMjQxMTgsIDAuMjE4OTExLCAwLjM3NjgyNSwgMC41MzQ1ODQsIDAuOTAyNzU1LCAxLjExMzQ2IiwgXAotICAgICAgICAgICIwLjExODMwNSwgMC4xMjg4NTQsIDAuMjIzNjgzLCAwLjM4MTQ4NSwgMC41MzkzMTcsIDAuOTA3NTM5LCAxLjExNzk2IiwgXAotICAgICAgICAgICIwLjEyMjA4MiwgMC4xMzI2MzMsIDAuMjI3NDM5LCAwLjM4NTI1MywgMC41NDMwOSwgMC45MTEyNzgsIDEuMTIxNzEiLCBcCi0gICAgICAgICAgIjAuMTI3MDQsIDAuMTM3NTg4LCAwLjIzMjM0MSwgMC4zOTAyNDMsIDAuNTQ4MDE4LCAwLjkxNjE5OSwgMS4xMjY2MiIsIFwKLSAgICAgICAgICAiMC4xMzA2MjQsIDAuMTQxMjIxLCAwLjIzNTg5OSwgMC4zOTM4MzcsIDAuNTUxNjY4LCAwLjkxOTgxNiwgMS4xMzAxNiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTg1MTUsIDAuMTQwNDAzLCAwLjMzODgxMSwgMC42NzA2NzcsIDEuMDAyOTIsIDEuNzc4MDYsIDIuMjIzMzYiLCBcCi0gICAgICAgICAgIjAuMTE4NTQzLCAwLjE0MDQxOSwgMC4zMzg4OCwgMC42NzE1MjEsIDEuMDAyOTIsIDEuNzc2OTEsIDIuMjIzMzIiLCBcCi0gICAgICAgICAgIjAuMTE4NTgyLCAwLjE0MDQxNSwgMC4zMzg4NCwgMC42NzE1MzQsIDEuMDAyOTYsIDEuNzc3OTgsIDIuMjE5NTkiLCBcCi0gICAgICAgICAgIjAuMTE4NTMzLCAwLjE0MDQ0LCAwLjMzODY1OSwgMC42NzA5LCAxLjAwMjg4LCAxLjc3Njg4LCAyLjIyMDciLCBcCi0gICAgICAgICAgIjAuMTE4NjIzLCAwLjE0MDU0NSwgMC4zMzg2NjEsIDAuNjcwOTQ2LCAxLjAwMjM0LCAxLjc3ODQ1LCAyLjIyMDcyIiwgXAotICAgICAgICAgICIwLjExODUwNywgMC4xNDAzNDEsIDAuMzM5MDA1LCAwLjY3MTQ1LCAxLjAwMzkzLCAxLjc3ODM2LCAyLjIyMTE4IiwgXAotICAgICAgICAgICIwLjExODc3OCwgMC4xNDAzNCwgMC4zMzg3NzksIDAuNjcwODgxLCAxLjAwMjQsIDEuNzc4NDEsIDIuMjIwOTciKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk3ODM1LCAwLjEwNzUyOCwgMC4xOTQ0NiwgMC4zMzkyMTIsIDAuNDgzODYxLCAwLjgyMTQ1NSwgMS4wMTQ0MSIsIFwKLSAgICAgICAgICAiMC4xMDU0ODEsIDAuMTE1MTgzLCAwLjIwMjEwMywgMC4zNDY4NDcsIDAuNDkxNTg5LCAwLjgyOTExOCwgMS4wMjIiLCBcCi0gICAgICAgICAgIjAuMTEyMTU0LCAwLjEyMTg1MiwgMC4yMDg3NzgsIDAuMzUzNTMsIDAuNDk4MTgzLCAwLjgzNTc2OSwgMS4wMjg2OSIsIFwKLSAgICAgICAgICAiMC4xMTcwNjksIDAuMTI2NzY1LCAwLjIxMzY4MSwgMC4zNTg0MzIsIDAuNTAzMDgzLCAwLjg0MDY2OCwgMS4wMzM2NCIsIFwKLSAgICAgICAgICAiMC4xMjA5NDIsIDAuMTMwNjY4LCAwLjIxNzU5MSwgMC4zNjIzMTIsIDAuNTA3MDAyLCAwLjg0NDU2NSwgMS4wMzc0NyIsIFwKLSAgICAgICAgICAiMC4xMjYyMjcsIDAuMTM1OTIsIDAuMjIyNzg3LCAwLjM2NzUxOCwgMC41MTIyNDIsIDAuODQ5ODE4LCAxLjA0MjY4IiwgXAotICAgICAgICAgICIwLjEzMDA2LCAwLjEzOTc0OSwgMC4yMjY3MTIsIDAuMzcxNDc2LCAwLjUxNjEzOSwgMC44NTM2NTQsIDEuMDQ2NjEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTA3MjY2LCAwLjEyNjU4OCwgMC4zMDM3MDIsIDAuNjAwODY2LCAwLjg5ODExLCAxLjU5MDE5LCAxLjk4NTA3IiwgXAotICAgICAgICAgICIwLjEwNzI2OCwgMC4xMjY2NDYsIDAuMzAzNjkyLCAwLjU5OTY1NiwgMC44OTgzMzEsIDEuNTkwMjEsIDEuOTg4MTciLCBcCi0gICAgICAgICAgIjAuMTA3MjYzLCAwLjEyNjYxNywgMC4zMDM2ODcsIDAuNjAwODA0LCAwLjg5ODA1NSwgMS41OTE3MSwgMS45ODg3NiIsIFwKLSAgICAgICAgICAiMC4xMDcyOCwgMC4xMjY2MjQsIDAuMzAzNjQ2LCAwLjYwMDczOCwgMC44OTc5NDIsIDEuNTkxNzcsIDEuOTg4NTkiLCBcCi0gICAgICAgICAgIjAuMTA3Mjk1LCAwLjEyNjU4LCAwLjMwMzIwNiwgMC42MDA3MTEsIDAuODk2OTkyLCAxLjU5MTc2LCAxLjk4ODI2IiwgXAotICAgICAgICAgICIwLjEwNzE5MiwgMC4xMjY1OTEsIDAuMzAzMjc2LCAwLjYwMDY1MiwgMC44OTcwNjksIDEuNTkwMTEsIDEuOTg2MTEiLCBcCi0gICAgICAgICAgIjAuMTA3NDM0LCAwLjEyNjU3LCAwLjMwMzI3MywgMC41OTk3LCAwLjg5NjkwNCwgMS41OTE5LCAxLjk4NjM1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4MjU2NCwgMC4wOTMxMTMsIDAuMTg3OTA2LCAwLjM0NTczOSwgMC41MDM1NjgsIDAuODcxOTk1LCAxLjA4MjIiLCBcCi0gICAgICAgICAgIjAuMDkwMTI5LCAwLjEwMDY3OSwgMC4xOTU0NzIsIDAuMzUzMzUzLCAwLjUxMTE1LCAwLjg3OTMxMywgMS4wODk3NCIsIFwKLSAgICAgICAgICAiMC4wOTg3NzEsIDAuMTA5MzMsIDAuMjA0MTIsIDAuMzYxOTY0LCAwLjUxOTgzLCAwLjg4ODAxLCAxLjA5ODQ0IiwgXAotICAgICAgICAgICIwLjEwNTU4OSwgMC4xMTYxNDQsIDAuMjEwOTQyLCAwLjM2ODc4MiwgMC41MjY2MTcsIDAuODk0Nzk0LCAxLjEwNTIzIiwgXAotICAgICAgICAgICIwLjExMTIxNywgMC4xMjE3MjksIDAuMjE2NTQ3LCAwLjM3NDM2OSwgMC41MzIxNzcsIDAuOTAwNDYsIDEuMTEwODUiLCBcCi0gICAgICAgICAgIjAuMTE4NTg5LCAwLjEyOTE4OSwgMC4yMjQwNTgsIDAuMzgxOTMsIDAuNTM5NzAxLCAwLjkwNzg3LCAxLjExODM0IiwgXAotICAgICAgICAgICIwLjEyNDI3OSwgMC4xMzQ4MTIsIDAuMjI5NjM4LCAwLjM4NzQ4MywgMC41NDUzMjcsIDAuOTEzNDc5LCAxLjEyNDAyIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExODUwNywgMC4xNDA0MzUsIDAuMzM4ODY3LCAwLjY3MDgyMiwgMS4wMDMwNCwgMS43NzY2MywgMi4yMjA5OCIsIFwKLSAgICAgICAgICAiMC4xMTg1NzEsIDAuMTQwMzk3LCAwLjMzODc3OSwgMC42NzA2NjUsIDEuMDAyOTgsIDEuNzc5NywgMi4yMjE0MSIsIFwKLSAgICAgICAgICAiMC4xMTg3OTYsIDAuMTQwNTc2LCAwLjMzODgwOSwgMC42NzA4MjIsIDEuMDAzOSwgMS43NzgxNSwgMi4yMTk0OCIsIFwKLSAgICAgICAgICAiMC4xMTkyNjgsIDAuMTQwOTU0LCAwLjMzODg4NCwgMC42NzE0NTMsIDEuMDAzOTIsIDEuNzc4MSwgMi4yMjA5MiIsIFwKLSAgICAgICAgICAiMC4xMTk3MDIsIDAuMTQxMjU1LCAwLjMzOTM2LCAwLjY3MTQ0NSwgMS4wMDM5MywgMS43Nzc2OSwgMi4yMjA4NSIsIFwKLSAgICAgICAgICAiMC4xMjAzNjEsIDAuMTQxODI0LCAwLjMzOTA3NSwgMC42NzEwNzksIDEuMDAzODksIDEuNzc4MDIsIDIuMjE5NTQiLCBcCi0gICAgICAgICAgIjAuMTIxMTczLCAwLjE0MjQ0NCwgMC4zMzkzLCAwLjY3MDk3MSwgMS4wMDM5OCwgMS43Nzk1MiwgMi4yMTk0OCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzg2NywgMC4wODgzODMsIDAuMTc1MjYyLCAwLjMxOTk4OSwgMC40NjQ3NDUsIDAuODAyNTQ2LCAwLjk5NTYyNSIsIFwKLSAgICAgICAgICAiMC4wODYxMTgsIDAuMDk1ODM2LCAwLjE4MjcxNiwgMC4zMjc0MzgsIDAuNDcyMjM4LCAwLjgxMDM0MywgMS4wMDI4NiIsIFwKLSAgICAgICAgICAiMC4wOTQyNjksIDAuMTAzOTgsIDAuMTkwODY2LCAwLjMzNTY2NSwgMC40ODA1NywgMC44MTgwMjksIDEuMDExMTIiLCBcCi0gICAgICAgICAgIjAuMTAwNTg0LCAwLjExMDMxLCAwLjE5NzE4NiwgMC4zNDE5NjUsIDAuNDg2NzYsIDAuODI0NDE4LCAxLjAxNzQxIiwgXAotICAgICAgICAgICIwLjEwNTg1LCAwLjExNTUzOSwgMC4yMDI0NTgsIDAuMzQ3MTc0LCAwLjQ5MTkyOCwgMC44Mjk5NDcsIDEuMDIyNTQiLCBcCi0gICAgICAgICAgIjAuMTEyNzQ2LCAwLjEyMjUzNSwgMC4yMDk1ODMsIDAuMzU0MjQyLCAwLjQ5OTAxLCAwLjgzNjkwOSwgMS4wMjk1OSIsIFwKLSAgICAgICAgICAiMC4xMTc5OTUsIDAuMTI3Nzg4LCAwLjIxNDkyNCwgMC4zNTk1NzEsIDAuNTA0MzI0LCAwLjg0MjAxNCwgMS4wMzUxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwNzgyNywgMC4xMjcxNDksIDAuMzAzNzgyLCAwLjYwMDg0OCwgMC44OTYyMTQsIDEuNTg5NTUsIDEuOTg1MyIsIFwKLSAgICAgICAgICAiMC4xMDc4LCAwLjEyNzExOSwgMC4zMDM3NzQsIDAuNjAwODA2LCAwLjg5NjY3OCwgMS41OTAwMywgMS45ODQ2NSIsIFwKLSAgICAgICAgICAiMC4xMDgwMzIsIDAuMTI3Mjk3LCAwLjMwMzgyMywgMC41OTk3NTQsIDAuODk2NDUzLCAxLjU4ODkyLCAxLjk4ODkiLCBcCi0gICAgICAgICAgIjAuMTA4NSwgMC4xMjc3MTUsIDAuMzAzNDI4LCAwLjU5OTM0NywgMC44OTY1MiwgMS41ODk2NiwgMS45ODU3NCIsIFwKLSAgICAgICAgICAiMC4xMDg4ODYsIDAuMTI4MTUxLCAwLjMwNDI0NywgMC41OTk1ODIsIDAuODk3MDc5LCAxLjU4OTMyLCAxLjk4NDc0IiwgXAotICAgICAgICAgICIwLjEwOTYyMiwgMC4xMjg2MjIsIDAuMzA0NDEsIDAuNjAwNzg1LCAwLjg5NjM3NiwgMS41ODkzNywgMS45ODQ4OCIsIFwKLSAgICAgICAgICAiMC4xMTAzMiwgMC4xMjkzMjYsIDAuMzA0MzI0LCAwLjYwMDg5MywgMC44OTg1MDQsIDEuNTg5MDMsIDEuOTg4MzgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg0NTU5LCAwLjA5NTA5MiwgMC4xODk4MDYsIDAuMzQ3Nzg4LCAwLjUwNjA0NiwgMC44NzQwMTksIDEuMDg0NTEiLCBcCi0gICAgICAgICAgIjAuMDkyNzAzLCAwLjEwMzI0NCwgMC4xOTc5NTUsIDAuMzU2MDA3LCAwLjUxNDE1NiwgMC44ODIxOSwgMS4wOTI5NCIsIFwKLSAgICAgICAgICAiMC4wOTk4MzUsIDAuMTEwMzcsIDAuMjA1MDc0LCAwLjM2MzA5NiwgMC41MjEwMDgsIDAuODg5MzUsIDEuMDk5NyIsIFwKLSAgICAgICAgICAiMC4xMDQzODEsIDAuMTE0OTMsIDAuMjA5NjE5LCAwLjM2NzYxNywgMC41MjU3NDYsIDAuODkzNjcyLCAxLjEwNDMiLCBcCi0gICAgICAgICAgIjAuMTA3OTM3LCAwLjExODQ1NiwgMC4yMTMyMTQsIDAuMzcxMTksIDAuNTI5MDY4LCAwLjg5NzM1OSwgMS4xMDg2OSIsIFwKLSAgICAgICAgICAiMC4xMTI2MTEsIDAuMTIzMTE1LCAwLjIxNzcwMiwgMC4zNzU3MjQsIDAuNTMzNTQ3LCAwLjkwMTkyNCwgMS4xMTI0MiIsIFwKLSAgICAgICAgICAiMC4xMTYwMDksIDAuMTI2NDksIDAuMjIxMDIsIDAuMzc4ODM4LCAwLjUzNzAwMiwgMC45MDUxMjQsIDEuMTE1ODgiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTE4OTYxLCAwLjE0MDc3OCwgMC4zMzkwNjgsIDAuNjcwNDQ3LCAxLjAwMjk1LCAxLjc3ODIzLCAyLjIxOTI4IiwgXAotICAgICAgICAgICIwLjExODk5NiwgMC4xNDA3NjYsIDAuMzM5MDgsIDAuNjcwNTgxLCAxLjAwMjUzLCAxLjc3NjY2LCAyLjIyMTk5IiwgXAotICAgICAgICAgICIwLjExODk1NiwgMC4xNDA3MTcsIDAuMzM5MDYzLCAwLjY3MDU0MiwgMS4wMDI1MiwgMS43NzgzOSwgMi4yMTk0NSIsIFwKLSAgICAgICAgICAiMC4xMTg4NTgsIDAuMTQwNjM2LCAwLjMzODc5MiwgMC42NzA1NCwgMS4wMDI1NiwgMS43Nzc5NSwgMi4yMjI3NyIsIFwKLSAgICAgICAgICAiMC4xMTg3NzQsIDAuMTQwNTk4LCAwLjMzODQ2NywgMC42NzA1NzgsIDEuMDAzMjgsIDEuNzc2NjksIDIuMjIwMTEiLCBcCi0gICAgICAgICAgIjAuMTE4NzM1LCAwLjE0MDQ2NiwgMC4zMzg1MjcsIDAuNjcwNDU2LCAxLjAwMjk5LCAxLjc3ODY1LCAyLjIyMjUzIiwgXAotICAgICAgICAgICIwLjExODkyOCwgMC4xNDA3MSwgMC4zMzg1MywgMC42NzEwODQsIDEuMDAyNjMsIDEuNzc3MDEsIDIuMjIwMzUiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDkxMzU0LCAwLjEwMTA0NywgMC4xODc5OTEsIDAuMzMyNzM4LCAwLjQ3NzM4NywgMC44MTQ5ODUsIDEuMDA3ODciLCBcCi0gICAgICAgICAgIjAuMDk4NDk1LCAwLjEwODE5OCwgMC4xOTUxMTYsIDAuMzM5ODUzLCAwLjQ4NDUzOSwgMC44MjIxMywgMS4wMTUwMSIsIFwKLSAgICAgICAgICAiMC4xMDQxMDgsIDAuMTEzODE0LCAwLjIwMDczMiwgMC4zNDU0NiwgMC40OTAxNDQsIDAuODI3NzI1LCAxLjAyMDYyIiwgXAotICAgICAgICAgICIwLjEwODI4NiwgMC4xMTc5ODcsIDAuMjA0OTI4LCAwLjM0OTY2LCAwLjQ5NDM2NSwgMC44MzE5MjQsIDEuMDI0OTUiLCBcCi0gICAgICAgICAgIjAuMTExNjI3LCAwLjEyMTMzNiwgMC4yMDgzMDEsIDAuMzUzMDQ4LCAwLjQ5Nzc0MSwgMC44MzU0MDEsIDEuMDI4MjYiLCBcCi0gICAgICAgICAgIjAuMTE2MTksIDAuMTI1ODk3LCAwLjIxMjg4NiwgMC4zNTc2MTYsIDAuNTAyMzE2LCAwLjgzOTkyNCwgMS4wMzI3OCIsIFwKLSAgICAgICAgICAiMC4xMTk3NDgsIDAuMTI5NDM4LCAwLjIxNjQxNiwgMC4zNjExNTcsIDAuNTA1ODYyLCAwLjg0MzQ4MywgMS4wMzYzNiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDcyNjMsIDAuMTI2NTkxLCAwLjMwMzc2MSwgMC42MDA4MjQsIDAuODk3OTgsIDEuNTg4MDEsIDEuOTg2NDIiLCBcCi0gICAgICAgICAgIjAuMTA3MjY5LCAwLjEyNjY0NCwgMC4zMDM2ODcsIDAuNjAwMDU4LCAwLjg5ODEzNCwgMS41OTIxOSwgMS45ODYxOCIsIFwKLSAgICAgICAgICAiMC4xMDcyNzgsIDAuMTI2NjU2LCAwLjMwMzI4MiwgMC42MDA2NDMsIDAuODk4MDg0LCAxLjU5MTg1LCAxLjk4NjA1IiwgXAotICAgICAgICAgICIwLjEwNzMxOSwgMC4xMjY2MzYsIDAuMzAzNjQ5LCAwLjYwMDE4NywgMC44OTgwNzYsIDEuNTkxODUsIDEuOTg5MjMiLCBcCi0gICAgICAgICAgIjAuMTA3MjI3LCAwLjEyNjY2NCwgMC4zMDMzOTQsIDAuNjAwNDIsIDAuODk2NjcsIDEuNTkyMDgsIDEuOTg4NTgiLCBcCi0gICAgICAgICAgIjAuMTA3MTcyLCAwLjEyNjUxNiwgMC4zMDMzMTEsIDAuNTk5ODE2LCAwLjg5NzE2MywgMS41OTE4MiwgMS45ODgyMyIsIFwKLSAgICAgICAgICAiMC4xMDc0MDMsIDAuMTI2NjI5LCAwLjMwMzA5LCAwLjU5OTg2NiwgMC44OTcyMzEsIDEuNTkxMzYsIDEuOTg2NiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzk3NywgMC4wMDM5NzksIDAuMDAzOTg1LCAwLjAwMzk4OCwgMC4wMDM5ODgsIDAuMDAzOTkxLCAwLjAwMzk5IiwgXAotICAgICAgICAgICIwLjAwMzk3OSwgMC4wMDM5ODEsIDAuMDAzOTg4LCAwLjAwMzk5LCAwLjAwMzk5MSwgMC4wMDM5OTIsIDAuMDAzOTkyIiwgXAotICAgICAgICAgICIwLjAwNDA0OSwgMC4wMDQwNSwgMC4wMDQwNTYsIDAuMDA0MDU4LCAwLjAwNDA1OSwgMC4wMDQwNTksIDAuMDA0MDYiLCBcCi0gICAgICAgICAgIjAuMDA0MTQ5LCAwLjAwNDE1LCAwLjAwNDE1NSwgMC4wMDQxNTIsIDAuMDA0MTUyLCAwLjAwNDE1OCwgMC4wMDQxNTgiLCBcCi0gICAgICAgICAgIjAuMDA0MjY2LCAwLjAwNDI2NiwgMC4wMDQyNjQsIDAuMDA0MjcyLCAwLjAwNDI3MywgMC4wMDQyNzMsIDAuMDA0MjczIiwgXAotICAgICAgICAgICIwLjAwNDQ3NCwgMC4wMDQ0NzUsIDAuMDA0NDc3LCAwLjAwNDQ3NywgMC4wMDQ0NzcsIDAuMDA0NDc3LCAwLjAwNDQ3NyIsIFwKLSAgICAgICAgICAiMC4wMDQ2NTUsIDAuMDA0NjY4LCAwLjAwNDY1NiwgMC4wMDQ2NjgsIDAuMDA0NjY3LCAwLjAwNDY2NywgMC4wMDQ2NTQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDM3MzEsIDAuMDAzNzMzLCAwLjAwMzc0LCAwLjAwMzc0MywgMC4wMDM3NDQsIDAuMDAzNzQ1LCAwLjAwMzc0NSIsIFwKLSAgICAgICAgICAiMC4wMDM3MzEsIDAuMDAzNzMyLCAwLjAwMzc0LCAwLjAwMzc0MywgMC4wMDM3NDQsIDAuMDAzNzQ1LCAwLjAwMzc0NSIsIFwKLSAgICAgICAgICAiMC4wMDM4MDIsIDAuMDAzODA0LCAwLjAwMzgxLCAwLjAwMzgxMywgMC4wMDM4MTQsIDAuMDAzODE1LCAwLjAwMzgxNSIsIFwKLSAgICAgICAgICAiMC4wMDM5MDQsIDAuMDAzOTA2LCAwLjAwMzkxMiwgMC4wMDM5MTQsIDAuMDAzOTE1LCAwLjAwMzkxNiwgMC4wMDM5MTYiLCBcCi0gICAgICAgICAgIjAuMDA0MDE4LCAwLjAwNDAyNiwgMC4wMDQwMzMsIDAuMDA0MDI3LCAwLjAwNDAzNSwgMC4wMDQwMzUsIDAuMDA0MDM2IiwgXAotICAgICAgICAgICIwLjAwNDIzNywgMC4wMDQyMzksIDAuMDA0MjMyLCAwLjAwNDIzMywgMC4wMDQyNDQsIDAuMDA0MjQ0LCAwLjAwNDIzNCIsIFwKLSAgICAgICAgICAiMC4wMDQ0MjUsIDAuMDA0NDI2LCAwLjAwNDQ0MSwgMC4wMDQ0NDIsIDAuMDA0NDQxLCAwLjAwNDQzLCAwLjAwNDQ0MiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzYsIDAuMDAzNjAxLCAwLjAwMzYwOCwgMC4wMDM2MDcsIDAuMDAzNjA3LCAwLjAwMzYwOCwgMC4wMDM2MDgiLCBcCi0gICAgICAgICAgIjAuMDAzNzAzLCAwLjAwMzcwNCwgMC4wMDM3MDcsIDAuMDAzNzA5LCAwLjAwMzcwOSwgMC4wMDM3MSwgMC4wMDM3MTEiLCBcCi0gICAgICAgICAgIjAuMDAzODU3LCAwLjAwMzg1OCwgMC4wMDM4NiwgMC4wMDM4NjEsIDAuMDAzODYxLCAwLjAwMzg2MiwgMC4wMDM4NjIiLCBcCi0gICAgICAgICAgIjAuMDA0MDQ0LCAwLjAwNDA0NCwgMC4wMDQwNDYsIDAuMDA0MDQ2LCAwLjAwNDA0NywgMC4wMDQwNDcsIDAuMDA0MDQ3IiwgXAotICAgICAgICAgICIwLjAwNDI1OCwgMC4wMDQyNTgsIDAuMDA0MjU4LCAwLjAwNDI1OSwgMC4wMDQyNSwgMC4wMDQyNTksIDAuMDA0MjU5IiwgXAotICAgICAgICAgICIwLjAwNDU5MywgMC4wMDQ1OTIsIDAuMDA0NTkxLCAwLjAwNDU5MiwgMC4wMDQ1OTIsIDAuMDA0NTkxLCAwLjAwNDU5MSIsIFwKLSAgICAgICAgICAiMC4wMDQ4NzEsIDAuMDA0ODksIDAuMDA0ODg5LCAwLjAwNDg2OCwgMC4wMDQ4ODgsIDAuMDA0ODg4LCAwLjAwNDg2OCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzA0LCAwLjAwMzA0MSwgMC4wMDMwNDgsIDAuMDAzMDUxLCAwLjAwMzA1MiwgMC4wMDMwNTMsIDAuMDAzMDUzIiwgXAotICAgICAgICAgICIwLjAwMzA1NiwgMC4wMDMwNTgsIDAuMDAzMDY0LCAwLjAwMzA2NywgMC4wMDMwNjgsIDAuMDAzMDY5LCAwLjAwMzA2OSIsIFwKLSAgICAgICAgICAiMC4wMDMxNDUsIDAuMDAzMTQ2LCAwLjAwMzE1MywgMC4wMDMxNTYsIDAuMDAzMTU3LCAwLjAwMzE1OCwgMC4wMDMxNTgiLCBcCi0gICAgICAgICAgIjAuMDAzMjY0LCAwLjAwMzI2NSwgMC4wMDMyNzIsIDAuMDAzMjc1LCAwLjAwMzI3NiwgMC4wMDMyNzcsIDAuMDAzMjc3IiwgXAotICAgICAgICAgICIwLjAwMzM5OSwgMC4wMDM0MDEsIDAuMDAzNDA3LCAwLjAwMzQxLCAwLjAwMzQxMSwgMC4wMDM0MTIsIDAuMDAzNDEzIiwgXAotICAgICAgICAgICIwLjAwMzYyLCAwLjAwMzYyMiwgMC4wMDM2MjksIDAuMDAzNjMyLCAwLjAwMzYzMywgMC4wMDM2MzQsIDAuMDAzNjM0IiwgXAotICAgICAgICAgICIwLjAwMzgyNywgMC4wMDM4MjksIDAuMDAzODM2LCAwLjAwMzg0LCAwLjAwMzg0LCAwLjAwMzg0MiwgMC4wMDM4NDIiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogQUNIQ09OWDIgKgotICogLS0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKEFDSENPTlgyKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDEuNjc3NTI7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTUxMDczOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTUwOTU0OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTUxMDczOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAxMzkyOSwgMC4wMTM5MTIsIDAuMDE0MSwgMC4wMTQyNjMsIDAuMDE0NTYyLCAwLjAxNTA0NSwgMC4wMTU0NTEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMTY1NjEsIDAuMDE2NTYyLCAwLjAxNjcwMiwgMC4wMTY5MDgsIDAuMDE3MTUzLCAwLjAxNzY4MiwgMC4wMTgwNzgiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwNTQyNjgxOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwNTQyNDA4OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwNTQyNjgxOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwOTI3NSwgMC4wMDk0ODYsIDAuMDEwMiwgMC4wMTEwMTYsIDAuMDExOTE1LCAwLjAxMzQ3MywgMC4wMTUyMDQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMTc3MTIsIDAuMDE3OTg5LCAwLjAxODc3NCwgMC4wMTk0NzksIDAuMDIwNDUsIDAuMDIxODc1LCAwLjAyMzY2MiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQ0kpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTQ3NTQ3OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTQ3NDM0OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTQ3NTQ3OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDYwNiwgMC4wMDA2MzksIDAuMDAwODkzLCAwLjAwMTE5NiwgMC4wMDE2MDMsIDAuMDAyMTM2LCAwLjAwMjY2NCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzM4LCAwLjAwMzQ2NSwgMC4wMDM3MTMsIDAuMDA0MDAyLCAwLjAwNDM0OCwgMC4wMDQ5MzksIDAuMDA1NDcyIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihDT04pICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4zMTYwNTc7Ci0gICAgZnVuY3Rpb24gOiAiKCEoKChBIEIpKyhCIENJKSkrKENJIEEpKSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3OTYwMiwgMC4xODk3MTEsIDAuMjgyMTk2LCAwLjM5ODk1OSwgMC41MTU1MjksIDAuNjMzMjU3LCAwLjc1MDgzNyIsIFwKLSAgICAgICAgICAiMC4wODc3NzIsIDAuMTk3ODAxLCAwLjI5MDI5NiwgMC40MDY5MjksIDAuNTIzOTU3LCAwLjY0MTI5NSwgMC43NTg3ODQiLCBcCi0gICAgICAgICAgIjAuMDk2ODMzLCAwLjIwNjcyOCwgMC4yOTkxNzgsIDAuNDE1Nzg2LCAwLjUzMjg0OCwgMC42NTAxNDMsIDAuNzY3NTk1IiwgXAotICAgICAgICAgICIwLjEwNDEwOSwgMC4yMTM5MDEsIDAuMzA2MjY3LCAwLjQyMjcxNiwgMC41Mzk5NDIsIDAuNjU2ODQ3LCAwLjc3NDc4NiIsIFwKLSAgICAgICAgICAiMC4xMDk5NzQsIDAuMjE5Njg5LCAwLjMxMjA2OCwgMC40Mjg3MDEsIDAuNTQ1MjQzLCAwLjY2MjY5MywgMC43ODA0OTUiLCBcCi0gICAgICAgICAgIjAuMTE3ODUyLCAwLjIyNzM4NSwgMC4zMTk2MDcsIDAuNDM1OTkxLCAwLjU1Mjc4MSwgMC42NzAxMjMsIDAuNzg3OTM3IiwgXAotICAgICAgICAgICIwLjEyMzU2MSwgMC4yMzI5ODcsIDAuMzI1MTk3LCAwLjQ0MTYwMywgMC41NTgzNjIsIDAuNjc1MzkxLCAwLjc5MzE2MyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTUwNCwgMC4zNzQ2MDUsIDAuNjA3NjQzLCAwLjkwMTIyOCwgMS4xOTQ3NywgMS40ODk0OCwgMS43ODM0IiwgXAotICAgICAgICAgICIwLjA5NTE2MiwgMC4zNzQ2MSwgMC42MDc4NTYsIDAuOTAxNDY4LCAxLjE5NDkzLCAxLjQ4OTM2LCAxLjc4MzM1IiwgXAotICAgICAgICAgICIwLjA5NTI5LCAwLjM3NDY1MSwgMC42MDc2NDcsIDAuOTAxNDcyLCAxLjE5NTA4LCAxLjQ4OTY5LCAxLjc4MzMxIiwgXAotICAgICAgICAgICIwLjA5NTU5MSwgMC4zNzQ4MzYsIDAuNjA3Njk1LCAwLjkwMTEwOSwgMS4xOTU0MSwgMS40ODg2MiwgMS43ODM0NyIsIFwKLSAgICAgICAgICAiMC4wOTU4MjcsIDAuMzc0NjY2LCAwLjYwNzY2NCwgMC45MDExNjQsIDEuMTk0ODMsIDEuNDg4NzcsIDEuNzgzNjQiLCBcCi0gICAgICAgICAgIjAuMDk2Mzc0LCAwLjM3NDg2NywgMC42MDc2MTgsIDAuOTAwOTEsIDEuMTk0ODIsIDEuNDg4MjcsIDEuNzg0MDUiLCBcCi0gICAgICAgICAgIjAuMDk2Njc4LCAwLjM3NTAzOSwgMC42MDc2MzUsIDAuOTAxMzk3LCAxLjE5NDMsIDEuNDg4NTIsIDEuNzgyNTkiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg1MDQyLCAwLjIwNTkxNCwgMC4zMDg1MzEsIDAuNDM4MDE2LCAwLjU2ODA4NSwgMC42OTg0MTcsIDAuODI4OTU1IiwgXAotICAgICAgICAgICIwLjA5MzMxLCAwLjIxNDE2MSwgMC4zMTY3ODUsIDAuNDQ2MjM1LCAwLjU3NjI5OCwgMC43MDY3OSwgMC44MzcxMzMiLCBcCi0gICAgICAgICAgIjAuMTAzNDI4LCAwLjIyNDExNywgMC4zMjY3MTEsIDAuNDU2MDk3LCAwLjU4NjEzNCwgMC43MTY3OTIsIDAuODQ3MzE5IiwgXAotICAgICAgICAgICIwLjExMjAzOCwgMC4yMzI1MjcsIDAuMzM1MDYxLCAwLjQ2NDU4MywgMC41OTQ1MjIsIDAuNzI0NzcyLCAwLjg1NTg5OSIsIFwKLSAgICAgICAgICAiMC4xMTk1OTgsIDAuMjM5OTMxLCAwLjM0MjI3NCwgMC40NzE3MDQsIDAuNjAxNjU0LCAwLjczMjA5LCAwLjg2MzAxIiwgXAotICAgICAgICAgICIwLjEyOTY0LCAwLjI0OTc1NiwgMC4zNTE5MDIsIDAuNDgxMjY3LCAwLjYxMTMyNiwgMC43NDEzOTksIDAuODcyNDk2IiwgXAotICAgICAgICAgICIwLjEzNzM2OCwgMC4yNTczMjksIDAuMzU5NDczLCAwLjQ4ODgwOCwgMC42MTg4NjcsIDAuNzQ5MTcxLCAwLjg3OTc1MyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDE4MTUsIDAuNDE2MzE3LCAwLjY3NzgzMSwgMS4wMDUzNywgMS4zMzM3OSwgMS42NjIzLCAxLjk5MDMiLCBcCi0gICAgICAgICAgIjAuMTAxODM2LCAwLjQxNjM1NSwgMC42Nzc3MTEsIDEuMDA1NTMsIDEuMzMzNzgsIDEuNjYxODgsIDEuOTkwMTYiLCBcCi0gICAgICAgICAgIjAuMTAxOTksIDAuNDE2MzQyLCAwLjY3NzgxLCAxLjAwNTU0LCAxLjMzMzgzLCAxLjY2MjEzLCAxLjk5MDQ5IiwgXAotICAgICAgICAgICIwLjEwMjE0OCwgMC40MTYzOTcsIDAuNjc3ODMsIDEuMDA1NDEsIDEuMzMzODMsIDEuNjYyMDcsIDEuOTkwOTgiLCBcCi0gICAgICAgICAgIjAuMTAyNTE1LCAwLjQxNjQ2NiwgMC42Nzc3NDUsIDEuMDA1MzYsIDEuMzMzNzEsIDEuNjYyNTEsIDEuOTkwOTgiLCBcCi0gICAgICAgICAgIjAuMTAzMDM2LCAwLjQxNjQ1MSwgMC42Nzc2MzksIDEuMDA1ODMsIDEuMzMzNywgMS42NjE5MywgMS45OTA4IiwgXAotICAgICAgICAgICIwLjEwMzc4MSwgMC40MTY0ODksIDAuNjc3NzI4LCAxLjAwNTcsIDEuMzMzOTgsIDEuNjYyNDIsIDEuOTkwNzMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU3MDQsIDAuMTcxMzcxLCAwLjI2NDI1NSwgMC4zODA4NzYsIDAuNDk4MTc4LCAwLjYxNjEyOCwgMC43MzMyOTciLCBcCi0gICAgICAgICAgIjAuMDY0OTc0LCAwLjE3OTI1NiwgMC4yNzIwNDMsIDAuMzg4NDY0LCAwLjUwNTA1NSwgMC42MjE3MywgMC43Mzg2MDciLCBcCi0gICAgICAgICAgIjAuMDcyNjY0LCAwLjE4Njg1NCwgMC4yNzk2ODUsIDAuMzk2MTU0LCAwLjUxMjY2MiwgMC42Mjk0MTYsIDAuNzQ2MTc5IiwgXAotICAgICAgICAgICIwLjA3OTEyNCwgMC4xOTM4MTMsIDAuMjg2NzUyLCAwLjQwMzI5OSwgMC41MTk4MTgsIDAuNjM2MjY0LCAwLjc1MzA3MyIsIFwKLSAgICAgICAgICAiMC4wODQ5NzksIDAuMjAxNTQxLCAwLjI5NDY3OSwgMC40MTEyNzMsIDAuNTI3NjUxLCAwLjY0NDMzMywgMC43NjEzMSIsIFwKLSAgICAgICAgICAiMC4wOTMyNzYsIDAuMjE0ODc3LCAwLjMwODIyOSwgMC40MjQ3MzQsIDAuNTQxMjUzLCAwLjY1NzkzNywgMC43NzQ2OTMiLCBcCi0gICAgICAgICAgIjAuMDk5ODMzLCAwLjIyNjcxNSwgMC4zMjA1MTQsIDAuNDM3MTIxLCAwLjU1NDAyNSwgMC42NzA0MjMsIDAuNzg3MjIiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg2MDI2LCAwLjM3MjQyNCwgMC42MDcwMjcsIDAuOTAwNTQ2LCAxLjE5NDExLCAxLjQ4OTMzLCAxLjc4Mjk3IiwgXAotICAgICAgICAgICIwLjA5MjUxOCwgMC4zNzI3OTYsIDAuNjA3MzIyLCAwLjkwMDQ0MiwgMS4xOTQ1NCwgMS40ODkxMywgMS43ODI0IiwgXAotICAgICAgICAgICIwLjA5NzcwMywgMC4zNzI5ODksIDAuNjA3MTE4LCAwLjkwMDg3MywgMS4xOTUzMiwgMS40ODg4NywgMS43ODMxMiIsIFwKLSAgICAgICAgICAiMC4xMDA5MTYsIDAuMzczMjQ5LCAwLjYwNzMzNCwgMC45MDExOTcsIDEuMTk1MiwgMS40ODkzMSwgMS43ODI2MSIsIFwKLSAgICAgICAgICAiMC4xMDM3NzksIDAuMzczODY1LCAwLjYwNzA1NywgMC45MDAzODQsIDEuMTk1NCwgMS40ODg5NywgMS43ODM3MSIsIFwKLSAgICAgICAgICAiMC4xMDc5MTYsIDAuMzc5NzYxLCAwLjYwOTM2NywgMC45MDA5NDQsIDEuMTk1MjMsIDEuNDg4NTgsIDEuNzgzNjciLCBcCi0gICAgICAgICAgIjAuMTExMzIxLCAwLjM4NjYyMSwgMC42MTQ1MjIsIDAuOTAyMDk1LCAxLjE5NTIyLCAxLjQ4ODMsIDEuNzgzMTciKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDYwNzM0LCAwLjE4NzQyNywgMC4yOTE0MDQsIDAuNDIxNjkyLCAwLjU1MjIxLCAwLjY4MzEzLCAwLjgxNDA4OCIsIFwKLSAgICAgICAgICAiMC4wNjg5MywgMC4xOTU1MTYsIDAuMjk5NDMsIDAuNDI5Nzc5LCAwLjU2MDMxOSwgMC42OTExMjQsIDAuODIyMjI0IiwgXAotICAgICAgICAgICIwLjA3NzU3MiwgMC4yMDM5OSwgMC4zMDgwMTQsIDAuNDM4Mjk2LCAwLjU2OTA1MSwgMC42OTk3MzUsIDAuODMwMzI5IiwgXAotICAgICAgICAgICIwLjA4NTA4MiwgMC4yMTIwOTcsIDAuMzE2MDE5LCAwLjQ0NjI3OSwgMC41NzcyOTQsIDAuNzA4MTEzLCAwLjgzODYxOSIsIFwKLSAgICAgICAgICAiMC4wOTI0MjYsIDAuMjIwODM2LCAwLjMyNDkzLCAwLjQ1NTY4MywgMC41ODY0ODUsIDAuNzE2NzI3LCAwLjg0Nzg0NyIsIFwKLSAgICAgICAgICAiMC4xMDMxNTYsIDAuMjM1OTU4LCAwLjM0MDI4OCwgMC40NzEyMjMsIDAuNjAxODQzLCAwLjczMzAwMywgMC44NjMyNDYiLCBcCi0gICAgICAgICAgIjAuMTExNjU5LCAwLjI0OTY5OCwgMC4zNTQwODksIDAuNDg0OTg5LCAwLjYxNjA0NiwgMC43NDY1ODYsIDAuODc3NTAxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5Mjc3NSwgMC40MTUwNzEsIDAuNjc3NDU4LCAxLjAwNTI5LCAxLjMzMzYxLCAxLjY2MjE5LCAxLjk5MDY3IiwgXAotICAgICAgICAgICIwLjA5ODU2MywgMC40MTUwOTIsIDAuNjc3NDA3LCAxLjAwNTQsIDEuMzMzNTcsIDEuNjYxOTksIDEuOTkwNiIsIFwKLSAgICAgICAgICAiMC4xMDM4MzEsIDAuNDE1MDg3LCAwLjY3NzM0NCwgMS4wMDU0MSwgMS4zMzM3MiwgMS42NjI0NCwgMS45OTAxNSIsIFwKLSAgICAgICAgICAiMC4xMDcwMTYsIDAuNDE1NTk1LCAwLjY3NzE1NywgMS4wMDUxNywgMS4zMzM3LCAxLjY2MjMxLCAxLjk5MDI0IiwgXAotICAgICAgICAgICIwLjEwOTg3LCAwLjQxNzc3MSwgMC42Nzc1NDMsIDEuMDA1NzIsIDEuMzMzODcsIDEuNjYyMDQsIDEuOTkwMzMiLCBcCi0gICAgICAgICAgIjAuMTE0MDg0LCAwLjQyMzQ4MSwgMC42ODA1NzEsIDEuMDA2MjYsIDEuMzMzNzQsIDEuNjYyNzEsIDEuOTkwMTkiLCBcCi0gICAgICAgICAgIjAuMTE3MzUxLCAwLjQyOTcxMywgMC42ODQ3NTksIDEuMDA4MDEsIDEuMzM0MjMsIDEuNjYxOTMsIDEuOTkwNDYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0kiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzNzE2NCwgMC4xNTQ4NTEsIDAuMjQ4OTg0LCAwLjM2NjU4OSwgMC40ODQxMDEsIDAuNjAxNjQsIDAuNzE5MTg2IiwgXAotICAgICAgICAgICIwLjA0NDY3OCwgMC4xNjIxMzQsIDAuMjU2MjEyLCAwLjM3MzY3NiwgMC40OTE2MTgsIDAuNjA5MDM3LCAwLjcyNjkwOCIsIFwKLSAgICAgICAgICAiMC4wNTM1ODksIDAuMTcxNTg2LCAwLjI2NTU4NiwgMC4zODI4ODgsIDAuNTAwNzM4LCAwLjYxODQ0NywgMC43MzU3NTkiLCBcCi0gICAgICAgICAgIjAuMDYxMTEyLCAwLjE4MDQ5OSwgMC4yNzQ1NTMsIDAuMzkxOTg5LCAwLjUwOTQ1OCwgMC42Mjc1NDIsIDAuNzQ1MjEzIiwgXAotICAgICAgICAgICIwLjA2NzMzLCAwLjE4OTM5OCwgMC4yODM2MjEsIDAuNDAxMDgxLCAwLjUxODczNywgMC42MzY0MjcsIDAuNzU0Mjk4IiwgXAotICAgICAgICAgICIwLjA3NTU4NSwgMC4yMDM0NDQsIDAuMjk3OTQ4LCAwLjQxNTYxMSwgMC41MzMzMSwgMC42NTEwMiwgMC43Njg2NjIiLCBcCi0gICAgICAgICAgIjAuMDgxNTMxLCAwLjIxNTM4NSwgMC4zMTA0NTksIDAuNDI4MTM2LCAwLjU0NTk1NCwgMC42NjM2ODQsIDAuNzgxNDk4Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3ODE5OCwgMC4zNzE0MTUsIDAuNjA2NzE4LCAwLjkwMDU3NiwgMS4xOTQ4NiwgMS40ODg0MiwgMS43ODIzOSIsIFwKLSAgICAgICAgICAiMC4wODA3MDQsIDAuMzcxNDAzLCAwLjYwNjY1OCwgMC45MDA4OTksIDEuMTk1MTUsIDEuNDg4OTUsIDEuNzgzNzQiLCBcCi0gICAgICAgICAgIjAuMDg2NzAxLCAwLjM3MTg1NywgMC42MDcwMjUsIDAuOTAwMzQ5LCAxLjE5NTA5LCAxLjQ4OTE2LCAxLjc4Mjk0IiwgXAotICAgICAgICAgICIwLjA5MzQ3OSwgMC4zNzQzNzUsIDAuNjA2ODc3LCAwLjkwMDY2NCwgMS4xOTQ4MywgMS40ODk4NCwgMS43ODMyMyIsIFwKLSAgICAgICAgICAiMC4xMDA2MjMsIDAuMzc4MzEzLCAwLjYwODc0OSwgMC45MDAzNjgsIDEuMTk0NDIsIDEuNDg5MDUsIDEuNzg0MDEiLCBcCi0gICAgICAgICAgIjAuMTExNzIxLCAwLjM4NTk0NiwgMC42MTM2MzQsIDAuOTAyNzExLCAxLjE5NTM4LCAxLjQ4ODczLCAxLjc4MzQzIiwgXAotICAgICAgICAgICIwLjEyMDkwMiwgMC4zOTM3NjYsIDAuNjE5MzY3LCAwLjkwNjEwOCwgMS4xOTczNiwgMS40ODkyMiwgMS43ODM2NCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDE2MzgsIDAuMTcyMDE3LCAwLjI3NjQzMSwgMC40MDY5MjUsIDAuNTM3MzY5LCAwLjY2ODA4NSwgMC43OTg0MDIiLCBcCi0gICAgICAgICAgIjAuMDQ5NTY2LCAwLjE3OTk2NCwgMC4yODQ0MSwgMC40MTQ2NjUsIDAuNTQ1MTc1LCAwLjY3NTk0OCwgMC44MDYyMjUiLCBcCi0gICAgICAgICAgIjAuMDU5NjI0LCAwLjE4OTY4NiwgMC4yOTQ0NzgsIDAuNDI1MDQsIDAuNTU1Mjc0LCAwLjY4NTczLCAwLjgxNjUwOSIsIFwKLSAgICAgICAgICAiMC4wNjg3NzMsIDAuMTk5OTQ5LCAwLjMwNDQ0MSwgMC40MzUwNDUsIDAuNTY1NDcsIDAuNjk1NzQ3LCAwLjgyNjA1OSIsIFwKLSAgICAgICAgICAiMC4wNzY3MDEsIDAuMjA5NzQyLCAwLjMxNDExMSwgMC40NDQ3OTIsIDAuNTc0NTE5LCAwLjcwNTM1MSwgMC44MzU2NjUiLCBcCi0gICAgICAgICAgIjAuMDg3MDY5LCAwLjIyNTc2MSwgMC4zMjkxMzcsIDAuNDU5OTc4LCAwLjU5MDM4OCwgMC43MjEyMjEsIDAuODUxNDg5IiwgXAotICAgICAgICAgICIwLjA5NDg3OCwgMC4yMzgxODUsIDAuMzQzMDg3LCAwLjQ3MzQxLCAwLjYwNDExMiwgMC43MzQ4NzEsIDAuODY1NDc2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4NjUzOSwgMC40MTM3OTMsIDAuNjc2MjMxLCAxLjAwNDQsIDEuMzMyNTYsIDEuNjYxNDgsIDEuOTg4ODgiLCBcCi0gICAgICAgICAgIjAuMDg4MzIxLCAwLjQxMzg1NiwgMC42NzYzMDksIDEuMDA0MzIsIDEuMzMyNjIsIDEuNjYxNDEsIDEuOTg5MDgiLCBcCi0gICAgICAgICAgIjAuMDk0MTIzLCAwLjQxNDAzMSwgMC42NzY0MDQsIDEuMDA0NTgsIDEuMzMyMzUsIDEuNjYwNDgsIDEuOTg5MDgiLCBcCi0gICAgICAgICAgIjAuMTAwOTMxLCAwLjQxNTg4MiwgMC42NzY0OTgsIDEuMDA0NjIsIDEuMzMyNjEsIDEuNjYwNTgsIDEuOTg4NDYiLCBcCi0gICAgICAgICAgIjAuMTA4MTgzLCAwLjQxOTE1OSwgMC42Nzc0NDQsIDEuMDA0MzcsIDEuMzMyNTIsIDEuNjYwOTQsIDEuOTg5NCIsIFwKLSAgICAgICAgICAiMC4xMTk2OTIsIDAuNDI2ODM2LCAwLjY4MTYyNywgMS4wMDU1OCwgMS4zMzI1LCAxLjY2MTA1LCAxLjk4ODY3IiwgXAotICAgICAgICAgICIwLjEyOTQyLCAwLjQzNDYyLCAwLjY4NzUzMiwgMS4wMDg1MiwgMS4zMzM0MywgMS42NjEyMSwgMS45ODkzMiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyMDY1MSwgMC4wMTk4MzIsIDAuMDE5Njc0LCAwLjAxOTU4LCAwLjAxOTUyOCwgMC4wMTk0OTUsIDAuMDE5NDcyIiwgXAotICAgICAgICAgICIwLjAyMDY4MywgMC4wMTk4NDksIDAuMDE5Njg4LCAwLjAxOTU5LCAwLjAxOTUzNywgMC4wMTk1MDMsIDAuMDE5NDg0IiwgXAotICAgICAgICAgICIwLjAyMDg5NywgMC4wMjAwMjQsIDAuMDE5ODUyLCAwLjAxOTc0OSwgMC4wMTk2OTQsIDAuMDE5NjYsIDAuMDE5NjM1IiwgXAotICAgICAgICAgICIwLjAyMTE3NSwgMC4wMjAyNywgMC4wMjAwOTcsIDAuMDE5OTg4LCAwLjAxOTkyOSwgMC4wMTk4OTEsIDAuMDE5ODY1IiwgXAotICAgICAgICAgICIwLjAyMTQ3MiwgMC4wMjA1NjIsIDAuMDIwMzc4LCAwLjAyMDI2NywgMC4wMjAyMDUsIDAuMDIwMTY4LCAwLjAyMDE0IiwgXAotICAgICAgICAgICIwLjAyMTk2NiwgMC4wMjEwMTMsIDAuMDIwODE1LCAwLjAyMDY5OCwgMC4wMjA2NTYsIDAuMDIwNTksIDAuMDIwNTYyIiwgXAotICAgICAgICAgICIwLjAyMjQzLCAwLjAyMTQ1NCwgMC4wMjEyNTQsIDAuMDIxMTMxLCAwLjAyMTA2MSwgMC4wMjEwMTYsIDAuMDIwOTg4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE3MjU0LCAwLjAxNjIxMiwgMC4wMTYwMDQsIDAuMDE1ODc0LCAwLjAxNTgwMiwgMC4wMTU3NTUsIDAuMDE1NzIzIiwgXAotICAgICAgICAgICIwLjAxNzIzMywgMC4wMTYxOTMsIDAuMDE1OTg0LCAwLjAxNTg1MywgMC4wMTU3ODEsIDAuMDE1NzM0LCAwLjAxNTcwMiIsIFwKLSAgICAgICAgICAiMC4wMTc0MTUsIDAuMDE2MzUxLCAwLjAxNjEzNCwgMC4wMTU5OTgsIDAuMDE1OTIxLCAwLjAxNTg3MywgMC4wMTU4NCIsIFwKLSAgICAgICAgICAiMC4wMTc3MzgsIDAuMDE2NjUyLCAwLjAxNjQyMywgMC4wMTYyOCwgMC4wMTYyLCAwLjAxNjE0OCwgMC4wMTYxMTIiLCBcCi0gICAgICAgICAgIjAuMDE4MDI0LCAwLjAxNjkyLCAwLjAxNjY4LCAwLjAxNjUzMywgMC4wMTY0NSwgMC4wMTYzOTgsIDAuMDE2MzYxIiwgXAotICAgICAgICAgICIwLjAxODU5NywgMC4wMTc0NDUsIDAuMDE3MTk2LCAwLjAxNzA0NCwgMC4wMTY5NTcsIDAuMDE2OTAyLCAwLjAxNjg2MyIsIFwKLSAgICAgICAgICAiMC4wMTkwNzIsIDAuMDE3OSwgMC4wMTc2NDcsIDAuMDE3NDg4LCAwLjAxNzM5OCwgMC4wMTczNCwgMC4wMTczIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDIwNjQyLCAwLjAyMDUxNCwgMC4wMjA0OTEsIDAuMDIwNDgzLCAwLjAyMDQ3OCwgMC4wMjA0NzQsIDAuMDIwNDcxIiwgXAotICAgICAgICAgICIwLjAyMDk1MywgMC4wMjA3OTksIDAuMDIwNzc2LCAwLjAyMDc2NCwgMC4wMjA3NTcsIDAuMDIwNzUzLCAwLjAyMDc1IiwgXAotICAgICAgICAgICIwLjAyMTc0NSwgMC4wMjE1MjgsIDAuMDIxNDczLCAwLjAyMTQ3OCwgMC4wMjE0NzUsIDAuMDIxNDQyLCAwLjAyMTQ2NSIsIFwKLSAgICAgICAgICAiMC4wMjI2LCAwLjAyMjM4OCwgMC4wMjIzNDcsIDAuMDIyMzIzLCAwLjAyMjMxMywgMC4wMjIzMDcsIDAuMDIyMzE3IiwgXAotICAgICAgICAgICIwLjAyMzQ2MSwgMC4wMjMyMTcsIDAuMDIzMTgyLCAwLjAyMzE2MiwgMC4wMjMxNTIsIDAuMDIzMTQ2LCAwLjAyMzE0MSIsIFwKLSAgICAgICAgICAiMC4wMjUxMDgsIDAuMDI0ODQ5LCAwLjAyNDgxOCwgMC4wMjQ3OTQsIDAuMDI0Nzc2LCAwLjAyNDc3NCwgMC4wMjQ3NjkiLCBcCi0gICAgICAgICAgIjAuMDI2NDM1LCAwLjAyNjE1MSwgMC4wMjYxNTUsIDAuMDI2MTMsIDAuMDI2MTE2LCAwLjAyNjEwOCwgMC4wMjYxMDUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDk0NzMsIDAuMDA5NDgsIDAuMDA5NDgxLCAwLjAwOTQ4MSwgMC4wMDk0ODEsIDAuMDA5NDgxLCAwLjAwOTQ4MSIsIFwKLSAgICAgICAgICAiMC4wMDk1NjksIDAuMDA5NjEzLCAwLjAwOTYxOSwgMC4wMDk2MjEsIDAuMDA5NjIzLCAwLjAwOTYyNCwgMC4wMDk2MjQiLCBcCi0gICAgICAgICAgIjAuMDEwMjcxLCAwLjAxMDIxOCwgMC4wMTAyMjYsIDAuMDEwMjMsIDAuMDEwMjMyLCAwLjAxMDIzMywgMC4wMTAyMzQiLCBcCi0gICAgICAgICAgIjAuMDExMjE2LCAwLjAxMDk0LCAwLjAxMDg5NywgMC4wMTA4NzMsIDAuMDEwODYxLCAwLjAxMDg1OCwgMC4wMTA4NTkiLCBcCi0gICAgICAgICAgIjAuMDEyMTkyLCAwLjAxMTg5NSwgMC4wMTE4NDgsIDAuMDExODIyLCAwLjAxMTgwOCwgMC4wMTE4LCAwLjAxMTc5NCIsIFwKLSAgICAgICAgICAiMC4wMTM3NTIsIDAuMDEzNDE0LCAwLjAxMzM1OSwgMC4wMTMzMjksIDAuMDEzMzEzLCAwLjAxMzMwMywgMC4wMTMyOTYiLCBcCi0gICAgICAgICAgIjAuMDE1MzE0LCAwLjAxNDk1LCAwLjAxNDg4NiwgMC4wMTQ4NTIsIDAuMDE0ODM0LCAwLjAxNDgyOCwgMC4wMTQ4MTgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2NTI3LCAwLjAwNjUzLCAwLjAwNjUzLCAwLjAwNjUzLCAwLjAwNjUzMSwgMC4wMDY1MjgsIDAuMDA2NTMxIiwgXAotICAgICAgICAgICIwLjAwNjU5MywgMC4wMDY2MDUsIDAuMDA2NjA2LCAwLjAwNjYwNywgMC4wMDY2MTQsIDAuMDA2NjEzLCAwLjAwNjYwOCIsIFwKLSAgICAgICAgICAiMC4wMDY2OTgsIDAuMDA2NzA4LCAwLjAwNjcxMSwgMC4wMDY3MTIsIDAuMDA2NzEzLCAwLjAwNjcxMywgMC4wMDY3MTQiLCBcCi0gICAgICAgICAgIjAuMDA2ODcyLCAwLjAwNjg0OCwgMC4wMDY4NDgsIDAuMDA2ODQ3LCAwLjAwNjg0NywgMC4wMDY4NDcsIDAuMDA2ODQ5IiwgXAotICAgICAgICAgICIwLjAwNzA3MywgMC4wMDY5OTgsIDAuMDA2OTkzLCAwLjAwNjk4OSwgMC4wMDY5ODgsIDAuMDA2OTg3LCAwLjAwNjk4NyIsIFwKLSAgICAgICAgICAiMC4wMDc0NDgsIDAuMDA3MjYxLCAwLjAwNzI0MiwgMC4wMDcyNTIsIDAuMDA3MjQ2LCAwLjAwNzI0LCAwLjAwNzI0NCIsIFwKLSAgICAgICAgICAiMC4wMDc4MDEsIDAuMDA3NTAyLCAwLjAwNzQ2NywgMC4wMDc0NzQsIDAuMDA3NDY1LCAwLjAwNzQ1OSwgMC4wMDc0NTciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDIxNiwgMC4wMDIxNjUsIDAuMDAyMTY2LCAwLjAwMjE2NiwgMC4wMDIxNjYsIDAuMDAyMTY2LCAwLjAwMjE2NiIsIFwKLSAgICAgICAgICAiMC4wMDIxODcsIDAuMDAyMjExLCAwLjAwMjIxNSwgMC4wMDIyMTcsIDAuMDAyMjE3LCAwLjAwMjIxOCwgMC4wMDIyMTgiLCBcCi0gICAgICAgICAgIjAuMDAyMjk0LCAwLjAwMjMxNywgMC4wMDIzMjQsIDAuMDAyMzM1LCAwLjAwMjMzNiwgMC4wMDIzMzcsIDAuMDAyMzM4IiwgXAotICAgICAgICAgICIwLjAwMjQ2OCwgMC4wMDI0NTksIDAuMDAyNDc1LCAwLjAwMjQ3NywgMC4wMDI0NzgsIDAuMDAyNDc5LCAwLjAwMjQ3OSIsIFwKLSAgICAgICAgICAiMC4wMDI2NzIsIDAuMDAyNjI3LCAwLjAwMjYyNiwgMC4wMDI2MjUsIDAuMDAyNjU5LCAwLjAwMjY1NywgMC4wMDI2NTYiLCBcCi0gICAgICAgICAgIjAuMDAzMDQzLCAwLjAwMjkwMiwgMC4wMDI5MjUsIDAuMDAyOTA3LCAwLjAwMjg5NywgMC4wMDI4OTEsIDAuMDAyODg3IiwgXAotICAgICAgICAgICIwLjAwMzQwMiwgMC4wMDMyMTYsIDAuMDAzMTYsIDAuMDAzMTI4LCAwLjAwMzExNCwgMC4wMDMxMDQsIDAuMDAzMDk3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBBRERGWDIgKgotICogLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChBRERGWDIpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC45MzU0MDE7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMjc2ODcyOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMjc1Njg5OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMjc2ODcyOwotICB9Ci0gIHBpbihCKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDI2Mjg4OTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDI2MTE4OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMjYyODg5OwotICB9Ci0gIHBpbihDSSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAyMDYyNTM7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAyMDUyMDM7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAyMDYyNTM7Ci0gIH0KLSAgcGluKENPKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuNjg3NzM1OwotICAgIGZ1bmN0aW9uIDogIigoKEEgQikrKEIgQ0kpKSsoQ0kgQSkpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzUxNTcsIDAuMTU3MzQ0LCAwLjIxOTQ2MywgMC4yOTcxNjIsIDAuMzc0Njk0LCAwLjQ1MjA0NSwgMC41Mjk2NzUiLCBcCi0gICAgICAgICAgIjAuMDgxODk1LCAwLjE2NDEyNCwgMC4yMjYyNCwgMC4zMDM1NzYsIDAuMzgxMjMzLCAwLjQ1ODQ2NSwgMC41MzU2MjciLCBcCi0gICAgICAgICAgIjAuMDg5NjY2LCAwLjE3MTg0MiwgMC4yMzM5NTYsIDAuMzExNDM0LCAwLjM4ODg5NiwgMC40NjU4MjIsIDAuNTQzNjM3IiwgXAotICAgICAgICAgICIwLjA5NjgwNCwgMC4xNzkwNzgsIDAuMjQxMTczLCAwLjMxODYxMywgMC4zOTYyMjMsIDAuNDczMTU5LCAwLjU1MDk4IiwgXAotICAgICAgICAgICIwLjEwMzUwNSwgMC4xODU5NTgsIDAuMjQ3OTc2LCAwLjMyNTQ3MywgMC40MDI5NTMsIDAuNDgwMjk5LCAwLjU1ODAyOSIsIFwKLSAgICAgICAgICAiMC4xMTMzMTYsIDAuMTk1ODc1LCAwLjI1ODAxNCwgMC4zMzU1NiwgMC40MTMwMjMsIDAuNDkwMTY2LCAwLjU2ODA3OSIsIFwKLSAgICAgICAgICAiMC4xMjA3MywgMC4yMDM4MjMsIDAuMjY1OTY4LCAwLjM0MzczMywgMC40MjA5LCAwLjQ5ODI5LCAwLjU3NTE2NCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTAxOTUsIDAuMjA3NDY0LCAwLjMzMzU3OCwgMC40OTU0NDgsIDAuNjU5MDMxLCAwLjgyMTU0MSwgMC45ODI3NzMiLCBcCi0gICAgICAgICAgIjAuMDQ5OTk3LCAwLjIwNzIzOSwgMC4zMzM1NzYsIDAuNDk1OTkzLCAwLjY1OTAxOCwgMC44MjE0NzUsIDAuOTg0NTM0IiwgXAotICAgICAgICAgICIwLjA0OTk4MiwgMC4yMDcyNjgsIDAuMzM0MzE3LCAwLjQ5NjMwMywgMC42NTg3NzEsIDAuODIwMTM2LCAwLjk4MzY4MyIsIFwKLSAgICAgICAgICAiMC4wNTAyNywgMC4yMDczMDgsIDAuMzMzNjM1LCAwLjQ5NjM1NiwgMC42NTg4NDgsIDAuODIwMTAxLCAwLjk4MzcyIiwgXAotICAgICAgICAgICIwLjA1MTEwNSwgMC4yMDczNDYsIDAuMzM0MjQ4LCAwLjQ5NjQxMywgMC42NTg4ODIsIDAuODIwNDAyLCAwLjk4MzY1MSIsIFwKLSAgICAgICAgICAiMC4wNTM2ODUsIDAuMjA4MDI5LCAwLjMzNDExMiwgMC40OTY1NDMsIDAuNjU4OTA5LCAwLjgyMDQ0NiwgMC45ODM2NzYiLCBcCi0gICAgICAgICAgIjAuMDU0MDQyLCAwLjIwODYxMSwgMC4zMzQ0NTQsIDAuNDk2Njc5LCAwLjY1ODgwNiwgMC44MjAzMjMsIDAuOTgzNzAyIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4MTc1OCwgMC4xNjQwNzMsIDAuMjI0OTU0LCAwLjMwMTMyMywgMC4zNzcyNDIsIDAuNDUzNzI5LCAwLjUyOTI1MyIsIFwKLSAgICAgICAgICAiMC4wODg1MjcsIDAuMTcwODc1LCAwLjIzMTc3NCwgMC4zMDc4ODUsIDAuMzgzOTE5LCAwLjQ2MDEwMSwgMC41MzU3MzgiLCBcCi0gICAgICAgICAgIjAuMDk1Njc5LCAwLjE3Nzk3OSwgMC4yMzg4ODQsIDAuMzE0OTk1LCAwLjM5MTAwMSwgMC40NjcyMjksIDAuNTQyODU2IiwgXAotICAgICAgICAgICIwLjEwMjIzMiwgMC4xODQ1OSwgMC4yNDU0NywgMC4zMjEzNjIsIDAuMzk3NzMsIDAuNDczNzYxLCAwLjU0OTQyOCIsIFwKLSAgICAgICAgICAiMC4xMDgyMzEsIDAuMTkwNzQxLCAwLjI1MTY5OCwgMC4zMjc3NDcsIDAuNDAzODQ4LCAwLjQ3OTk4MiwgMC41NTU1OTkiLCBcCi0gICAgICAgICAgIjAuMTE2OTM0LCAwLjE5OTgyMiwgMC4yNjA3NDksIDAuMzM2ODQ2LCAwLjQxMjkxNywgMC40ODg3NSwgMC41NjQzNTgiLCBcCi0gICAgICAgICAgIjAuMTIzMzM4LCAwLjIwNjY3NCwgMC4yNjc3NDQsIDAuMzQzNzUsIDAuNDE5ODI2LCAwLjQ5NjA5NiwgMC41NzE1MzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDUwODk5LCAwLjIwMjkyMywgMC4zMjY3MTMsIDAuNDgyMTI5LCAwLjYzODA1NywgMC43OTQ1MDYsIDAuOTUyNzc0IiwgXAotICAgICAgICAgICIwLjA1MDU4OCwgMC4yMDI5NDMsIDAuMzI2NjY4LCAwLjQ4MjYyMiwgMC42Mzc2NjIsIDAuNzk0OTU0LCAwLjk1MDgwOCIsIFwKLSAgICAgICAgICAiMC4wNTA2MjcsIDAuMjAyOTYxLCAwLjMyNjY2OSwgMC40ODIzOCwgMC42Mzc5ODksIDAuNzk0OTgsIDAuOTUzMDY4IiwgXAotICAgICAgICAgICIwLjA1MDc5MSwgMC4yMDI5OTYsIDAuMzI2NzE3LCAwLjQ4MjM0MSwgMC42Mzg4MzIsIDAuNzk1NTQ3LCAwLjk1MzA3NiIsIFwKLSAgICAgICAgICAiMC4wNTE0NjIsIDAuMjAzMjExLCAwLjMyNjkwNSwgMC40ODI2MzUsIDAuNjM4NjMzLCAwLjc5NDM1NywgMC45NTIwOTciLCBcCi0gICAgICAgICAgIjAuMDUzNTcyLCAwLjIwMzg2NiwgMC4zMjcxNjEsIDAuNDgyNzIyLCAwLjYzOTEyOCwgMC43OTU3MDQsIDAuOTUyNzUxIiwgXAotICAgICAgICAgICIwLjA1NDk4NiwgMC4yMDQ0OTcsIDAuMzI3MjY3LCAwLjQ4MjkzNywgMC42Mzg1MzIsIDAuNzk1MjkxLCAwLjk1MDk1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3NTQ1OCwgMC4xNTc2NDgsIDAuMjE5NzYsIDAuMjk3MjQyLCAwLjM3NDgwNSwgMC40NTIxNDMsIDAuNTI5ODI4IiwgXAotICAgICAgICAgICIwLjA4Mjg4MSwgMC4xNjUwMTQsIDAuMjI3MTgsIDAuMzA0NTc5LCAwLjM4MjU4MiwgMC40NTk5OTEsIDAuNTM3MzYyIiwgXAotICAgICAgICAgICIwLjA5MjU2NSwgMC4xNzQ3MjQsIDAuMjM2ODUzLCAwLjMxNDM3NiwgMC4zOTE4NzIsIDAuNDY5MTkxLCAwLjU0NjkwNSIsIFwKLSAgICAgICAgICAiMC4xMDE5NTgsIDAuMTg0MDY3LCAwLjI0NjIwOSwgMC4zMjM4MTksIDAuNDAxMjg4LCAwLjQ3OTE0OCwgMC41NTYzNjMiLCBcCi0gICAgICAgICAgIjAuMTExMDA3LCAwLjE5MzIyMiwgMC4yNTUzMzUsIDAuMzMyOTA1LCAwLjQxMDM2MSwgMC40ODc2MTgsIDAuNTY1NzczIiwgXAotICAgICAgICAgICIwLjEyMzMyMiwgMC4yMDU5NzEsIDAuMjY4MDk5LCAwLjM0NTU5OSwgMC40MjMwODYsIDAuNTAwMjY3LCAwLjU3Nzg1IiwgXAotICAgICAgICAgICIwLjEzMjc5NiwgMC4yMTU4MTcsIDAuMjc3ODk5LCAwLjM1NTQ4MywgMC40MzI5OCwgMC41MDk4MzYsIDAuNTg4MDgyIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1MDE5MSwgMC4yMDcyODcsIDAuMzMzNjU5LCAwLjQ5NjMwNSwgMC42NTg4NzcsIDAuODIwMjA2LCAwLjk4NDYxNSIsIFwKLSAgICAgICAgICAiMC4wNTAwMDUsIDAuMjA3NTg5LCAwLjMzMzY0MywgMC40OTYyMjksIDAuNjU5MDMzLCAwLjgyMDI5NywgMC45ODM1MDIiLCBcCi0gICAgICAgICAgIjAuMDQ5OTA2LCAwLjIwNzU4MywgMC4zMzM2NCwgMC40OTYzMzIsIDAuNjU4Nzc1LCAwLjgyMDE3MywgMC45ODQ1OCIsIFwKLSAgICAgICAgICAiMC4wNTA4NTgsIDAuMjA3NTUxLCAwLjMzMzcyNCwgMC40OTY0MDYsIDAuNjU4OTU5LCAwLjgyMDQ4MiwgMC45ODM1MSIsIFwKLSAgICAgICAgICAiMC4wNTE3NjgsIDAuMjA4MDIxLCAwLjMzNDczNCwgMC40OTY0MjQsIDAuNjU4NzcxLCAwLjgyMDE4MywgMC45ODM0ODEiLCBcCi0gICAgICAgICAgIjAuMDUzNDM4LCAwLjIwODAyMywgMC4zMzQxNzMsIDAuNDk2MjQ0LCAwLjY1ODc5NCwgMC44MjAxNDEsIDAuOTg0NDUxIiwgXAotICAgICAgICAgICIwLjA1NTIxNCwgMC4yMDk0NTgsIDAuMzM0NzczLCAwLjQ5Njc1NSwgMC42NTg5NTUsIDAuODIwNjA1LCAwLjk4MzQ4NSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODA1MTcsIDAuMTYyNzE3LCAwLjIyMzY2OCwgMC4yOTk4ODUsIDAuMzc2MTQyLCAwLjQ1MjE5MSwgMC41MjgxODQiLCBcCi0gICAgICAgICAgIjAuMDg3Nzc0LCAwLjE2OTk3MSwgMC4yMzA5MTcsIDAuMzA3MjU4LCAwLjM4MzM5LCAwLjQ1OTQ0NCwgMC41MzU0MDciLCBcCi0gICAgICAgICAgIjAuMDk3MzA5LCAwLjE3OTQ4NiwgMC4yNDA0MzksIDAuMzE2NzAyLCAwLjM5MzM0MiwgMC40NjgxOTQsIDAuNTQ0NzMxIiwgXAotICAgICAgICAgICIwLjEwNjc5OCwgMC4xODg5NDcsIDAuMjQ5ODk2LCAwLjMyNjE2MiwgMC40MDIzMTcsIDAuNDc3OTYxLCAwLjU1NDE5NyIsIFwKLSAgICAgICAgICAiMC4xMTU3MTEsIDAuMTk3ODgsIDAuMjU4OTE1LCAwLjMzNTQ2MiwgMC40MTA4MzgsIDAuNDg3NzA3LCAwLjU2Mjg2NCIsIFwKLSAgICAgICAgICAiMC4xMjgwNTgsIDAuMjEwNjQ5LCAwLjI3MTY1NSwgMC4zNDc4MTEsIDAuNDIzNjU5LCAwLjUwMDE2MiwgMC41NzU3OTQiLCBcCi0gICAgICAgICAgIjAuMTM3NDc4LCAwLjIyMDQ2MywgMC4yODE0NTEsIDAuMzU3NzczLCAwLjQzMzI0NywgMC41MDk5NjQsIDAuNTg1NTY3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1MTcwNiwgMC4yMDM4MiwgMC4zMjc0OTQsIDAuNDgxODk1LCAwLjYzODQzNCwgMC43OTQ4OTgsIDAuOTUwOTc1IiwgXAotICAgICAgICAgICIwLjA1MTUyMSwgMC4yMDQxMDgsIDAuMzI3NTI2LCAwLjQ4MjMsIDAuNjM3MiwgMC43OTQ4ODQsIDAuOTUwOTQxIiwgXAotICAgICAgICAgICIwLjA1MTU5MSwgMC4yMDQxNzcsIDAuMzI3NTM0LCAwLjQ4Mjc1MiwgMC42MzgxMTMsIDAuNzk2MDUyLCAwLjk1MjY1NCIsIFwKLSAgICAgICAgICAiMC4wNTE4NjgsIDAuMjA0MDcsIDAuMzI3NDc3LCAwLjQ4MjU2LCAwLjYzODc2MSwgMC43OTM1MTQsIDAuOTUwODcyIiwgXAotICAgICAgICAgICIwLjA1MjY4NiwgMC4yMDQ1MDIsIDAuMzI3NTc0LCAwLjQ4MjgyNCwgMC42Mzg4NywgMC43OTU1OTgsIDAuOTUxMjg5IiwgXAotICAgICAgICAgICIwLjA1NDU2MiwgMC4yMDM3NDksIDAuMzI3ODgxLCAwLjQ4MzA4MiwgMC42MzkxMzUsIDAuNzk1OTk5LCAwLjk1MjIyNiIsIFwKLSAgICAgICAgICAiMC4wNTYwNDUsIDAuMjA2MzUsIDAuMzI3NDEyLCAwLjQ4MzIsIDAuNjM5NTMyLCAwLjc5NTY0NywgMC45NTA4ODQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0kiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3MDc1NiwgMC4xNTMwMDYsIDAuMjE1MTE0LCAwLjI5MjcwNSwgMC4zNjk5NSwgMC40NDcwNiwgMC41MjQ2NzYiLCBcCi0gICAgICAgICAgIjAuMDc4NDA2LCAwLjE2MDY1NiwgMC4yMjI3NTUsIDAuMzAwMjgzLCAwLjM3NzY0MiwgMC40NTQ0NzIsIDAuNTMyNTkzIiwgXAotICAgICAgICAgICIwLjA4ODEyNiwgMC4xNzAzMTEsIDAuMjMyNDI5LCAwLjMxMDIxMiwgMC4zODc2MDcsIDAuNDY0NzQ0LCAwLjU0MjI5NyIsIFwKLSAgICAgICAgICAiMC4wOTc1MjksIDAuMTc5ODI5LCAwLjI0MTkyNiwgMC4zMTk0MDQsIDAuMzk2Nzk3LCAwLjQ3MzgsIDAuNTUxNzAyIiwgXAotICAgICAgICAgICIwLjEwNjQyNSwgMC4xODg4NDUsIDAuMjUwODc4LCAwLjMyODMxOCwgMC40MDUzNzMsIDAuNDgzMDMxLCAwLjU2MDU0NyIsIFwKLSAgICAgICAgICAiMC4xMTgwNTcsIDAuMjAwODUzLCAwLjI2Mjg5NCwgMC4zNDAzMzgsIDAuNDE3NDExLCAwLjQ5NDgxOSwgMC41NzI1NjciLCBcCi0gICAgICAgICAgIjAuMTI2NjkzLCAwLjIxMDA4NCwgMC4yNzIxMTgsIDAuMzQ5NjY0LCAwLjQyNzA1NCwgMC41MDQzNzgsIDAuNTgxMDk2Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1MDIyLCAwLjIwNjcwMywgMC4zMzM1MzgsIDAuNDk1OTAzLCAwLjY1ODMxOSwgMC44MTk4MSwgMC45ODM2NzgiLCBcCi0gICAgICAgICAgIjAuMDUwMTk2LCAwLjIwNjMyNCwgMC4zMzM1NiwgMC40OTYwNzIsIDAuNjU4Mjk1LCAwLjgyMDQ1MiwgMC45ODM3MTkiLCBcCi0gICAgICAgICAgIjAuMDUwMjIzLCAwLjIwNjk2NywgMC4zMzM1OTQsIDAuNDk2MDcyLCAwLjY1ODI5MywgMC44MjA3MzMsIDAuOTgyMzgiLCBcCi0gICAgICAgICAgIjAuMDUwODU1LCAwLjIwNjYwNiwgMC4zMzM2NjMsIDAuNDk2MDc5LCAwLjY1ODI2OCwgMC44MjA0NjksIDAuOTgzNjkyIiwgXAotICAgICAgICAgICIwLjA1MjAzNywgMC4yMDc4MzIsIDAuMzM0ODI1LCAwLjQ5NjEyLCAwLjY1NzU5MywgMC44MjAwNzcsIDAuOTgzNjc1IiwgXAotICAgICAgICAgICIwLjA1NDIwNSwgMC4yMDgwMTksIDAuMzM0MjAzLCAwLjQ5NjI3MiwgMC42NTc2MDUsIDAuODE5OTM1LCAwLjk4MzYzNCIsIFwKLSAgICAgICAgICAiMC4wNTYwNjgsIDAuMjA4NTYyLCAwLjMzNDYyNSwgMC40OTYzOTIsIDAuNjU4MTkxLCAwLjgyMDczOCwgMC45ODIyNzUiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc1Njk3LCAwLjE1ODgyOCwgMC4yMTk4MDYsIDAuMjk1ODY0LCAwLjM3MTg5OSwgMC40NDgxMTUsIDAuNTIzNzI4IiwgXAotICAgICAgICAgICIwLjA4MzE4NiwgMC4xNjYyNiwgMC4yMjcyNDUsIDAuMzAzMzAxLCAwLjM3OTM0LCAwLjQ1NTU1MSwgMC41MzExNjciLCBcCi0gICAgICAgICAgIjAuMDkyODI3LCAwLjE3NTc5MiwgMC4yMzY3ODgsIDAuMzEyODczLCAwLjM4ODk0OCwgMC40NjUwNCwgMC41NDAzODgiLCBcCi0gICAgICAgICAgIjAuMTAyMTIyLCAwLjE4NTIwNCwgMC4yNDYxNzgsIDAuMzIyNjU4LCAwLjM5ODI3NywgMC40NzQ1MDYsIDAuNTUwMTI3IiwgXAotICAgICAgICAgICIwLjExMDk0MiwgMC4xOTM5MjQsIDAuMjU0ODk2LCAwLjMzMDk2MywgMC40MDY5NzgsIDAuNDgzMjA0LCAwLjU1ODgyNSIsIFwKLSAgICAgICAgICAiMC4xMjI2MzQsIDAuMjA2MTUyLCAwLjI2NzI3MiwgMC4zNDMyMTUsIDAuNDE5MjI0LCAwLjQ5NTQ5NywgMC41NzEyNTgiLCBcCi0gICAgICAgICAgIjAuMTMxNjQ1LCAwLjIxNTQzOCwgMC4yNzY1MTcsIDAuMzUyNjc4LCAwLjQyODEyMSwgMC41MDQwNDksIDAuNTgwMjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDUyMDgxLCAwLjIwNDI1LCAwLjMyNzM5NSwgMC40ODI2ODgsIDAuNjM4Mzc4LCAwLjc5MzM2OCwgMC45NTAyMTYiLCBcCi0gICAgICAgICAgIjAuMDUyMDczLCAwLjIwNDI1NiwgMC4zMjc0MzEsIDAuNDgyNzIsIDAuNjM4NDIxLCAwLjc5MzY5MywgMC45NTAzMSIsIFwKLSAgICAgICAgICAiMC4wNTIxMjcsIDAuMjAyOTIzLCAwLjMyNzQyMiwgMC40ODI3NDEsIDAuNjM4MjEzLCAwLjc5MzUxMSwgMC45NTAyMDgiLCBcCi0gICAgICAgICAgIjAuMDUyNDU5LCAwLjIwNDI2MiwgMC4zMjc0NDEsIDAuNDgxOTU1LCAwLjYzODU4MiwgMC43OTM1MzcsIDAuOTUwNDU5IiwgXAotICAgICAgICAgICIwLjA1MzUyMiwgMC4yMDQ1ODksIDAuMzI3NTExLCAwLjQ4Mjc4MSwgMC42Mzg1NDgsIDAuNzkzNDI2LCAwLjk1MDMyNiIsIFwKLSAgICAgICAgICAiMC4wNTU1MjIsIDAuMjA1Mjk3LCAwLjMyNTc0LCAwLjQ4MjgzLCAwLjYzNzcyMSwgMC43OTUzMzcsIDAuOTUwNTYzIiwgXAotICAgICAgICAgICIwLjA1NzM2NywgMC4yMDU4NTgsIDAuMzI4MTYzLCAwLjQ4MTk1NSwgMC42MzkwNjQsIDAuNzk0OTg2LCAwLjk1MTc5OSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzYwOCwgMC4wMDM2MzIsIDAuMDAzNjQxLCAwLjAwMzY0NSwgMC4wMDM2NDksIDAuMDAzNjUzLCAwLjAwMzY1MyIsIFwKLSAgICAgICAgICAiMC4wMDM1NzYsIDAuMDAzNjA1LCAwLjAwMzYxNSwgMC4wMDM2MjEsIDAuMDAzNjIzLCAwLjAwMzYyNywgMC4wMDM2MjciLCBcCi0gICAgICAgICAgIjAuMDAzNTkxLCAwLjAwMzYwOCwgMC4wMDM2MTgsIDAuMDAzNjI1LCAwLjAwMzYyOCwgMC4wMDM2MzEsIDAuMDAzNjMxIiwgXAotICAgICAgICAgICIwLjAwMzYwMiwgMC4wMDM2MTcsIDAuMDAzNjI4LCAwLjAwMzYzNSwgMC4wMDM2MzksIDAuMDAzNjQxLCAwLjAwMzY0MyIsIFwKLSAgICAgICAgICAiMC4wMDM2NDEsIDAuMDAzNjQ1LCAwLjAwMzY1NCwgMC4wMDM2NjEsIDAuMDAzNjY1LCAwLjAwMzY2NywgMC4wMDM2NjkiLCBcCi0gICAgICAgICAgIjAuMDAzNzcsIDAuMDAzNzEzLCAwLjAwMzcxOSwgMC4wMDM3MjQsIDAuMDAzNzI2LCAwLjAwMzcyOSwgMC4wMDM3MyIsIFwKLSAgICAgICAgICAiMC4wMDM3OTgsIDAuMDAzNzYyLCAwLjAwMzc3NCwgMC4wMDM3NzMsIDAuMDAzNzc1LCAwLjAwMzc3OCwgMC4wMDM3NzkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDU2NDYsIDAuMDA1NjcxLCAwLjAwNTY4MSwgMC4wMDU2ODksIDAuMDA1NjkzLCAwLjAwNTY5NSwgMC4wMDU2OTYiLCBcCi0gICAgICAgICAgIjAuMDA1NjI3LCAwLjAwNTY1OCwgMC4wMDU2NjksIDAuMDA1Njc2LCAwLjAwNTY3OSwgMC4wMDU2ODIsIDAuMDA1NjgzIiwgXAotICAgICAgICAgICIwLjAwNTYyLCAwLjAwNTY1MSwgMC4wMDU2NjQsIDAuMDA1NjcxLCAwLjAwNTY3NiwgMC4wMDU2NzgsIDAuMDA1NjgxIiwgXAotICAgICAgICAgICIwLjAwNTY1NiwgMC4wMDU2NywgMC4wMDU2ODEsIDAuMDA1Njg4LCAwLjAwNTY5LCAwLjAwNTY5MiwgMC4wMDU2OTQiLCBcCi0gICAgICAgICAgIjAuMDA1NjkxLCAwLjAwNTY5NCwgMC4wMDU3MDQsIDAuMDA1NzExLCAwLjAwNTcxNSwgMC4wMDU3MTgsIDAuMDA1NzE5IiwgXAotICAgICAgICAgICIwLjAwNTc1OSwgMC4wMDU3NDMsIDAuMDA1NzUyLCAwLjAwNTc1OCwgMC4wMDU3NjIsIDAuMDA1NzY1LCAwLjAwNTc2NyIsIFwKLSAgICAgICAgICAiMC4wMDU4NSwgMC4wMDU4MDUsIDAuMDA1ODEsIDAuMDA1ODE2LCAwLjAwNTgyLCAwLjAwNTgyMSwgMC4wMDU4MjMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDM3NzIsIDAuMDAzOCwgMC4wMDM4MDksIDAuMDAzODEyLCAwLjAwMzgxNywgMC4wMDM4MjEsIDAuMDAzODE5IiwgXAotICAgICAgICAgICIwLjAwMzczNiwgMC4wMDM3NjgsIDAuMDAzNzc4LCAwLjAwMzc4MywgMC4wMDM3ODcsIDAuMDAzNzg5LCAwLjAwMzc5IiwgXAotICAgICAgICAgICIwLjAwMzczMywgMC4wMDM3NjIsIDAuMDAzNzczLCAwLjAwMzc3OSwgMC4wMDM3ODMsIDAuMDAzNzg1LCAwLjAwMzc4NyIsIFwKLSAgICAgICAgICAiMC4wMDM3ODcsIDAuMDAzNzg0LCAwLjAwMzc5MywgMC4wMDM4LCAwLjAwMzgwMiwgMC4wMDM4MDUsIDAuMDAzODA2IiwgXAotICAgICAgICAgICIwLjAwMzgxMSwgMC4wMDM4MTEsIDAuMDAzODIyLCAwLjAwMzgyOSwgMC4wMDM4MzEsIDAuMDAzODM1LCAwLjAwMzgzNiIsIFwKLSAgICAgICAgICAiMC4wMDM5MTIsIDAuMDAzODgzLCAwLjAwMzg5LCAwLjAwMzg5NSwgMC4wMDM4OTgsIDAuMDAzOSwgMC4wMDM5MDIiLCBcCi0gICAgICAgICAgIjAuMDA0MDQ1LCAwLjAwMzkzOSwgMC4wMDM5NDYsIDAuMDAzOTc4LCAwLjAwMzk3NywgMC4wMDM5NTYsIDAuMDAzOTc5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1NTM3LCAwLjAwNTU2NiwgMC4wMDU1NzYsIDAuMDA1NTg0LCAwLjAwNTU4NiwgMC4wMDU1ODgsIDAuMDA1NTkiLCBcCi0gICAgICAgICAgIjAuMDA1NTExLCAwLjAwNTU0NCwgMC4wMDU1NTUsIDAuMDA1NTYxLCAwLjAwNTU2NSwgMC4wMDU1NjksIDAuMDA1NTY5IiwgXAotICAgICAgICAgICIwLjAwNTQ5NywgMC4wMDU1MjUsIDAuMDA1NTM2LCAwLjAwNTU0NCwgMC4wMDU1NDgsIDAuMDA1NTUxLCAwLjAwNTU1MiIsIFwKLSAgICAgICAgICAiMC4wMDU1MDcsIDAuMDA1NTIyLCAwLjAwNTUzMywgMC4wMDU1NCwgMC4wMDU1NDUsIDAuMDA1NTQ3LCAwLjAwNTU0OCIsIFwKLSAgICAgICAgICAiMC4wMDU1NzIsIDAuMDA1NTc3LCAwLjAwNTU3LCAwLjAwNTU3NiwgMC4wMDU1OCwgMC4wMDU1ODMsIDAuMDA1NTg1IiwgXAotICAgICAgICAgICIwLjAwNTY5MSwgMC4wMDU2NCwgMC4wMDU2NDcsIDAuMDA1NjUxLCAwLjAwNTY1NCwgMC4wMDU2NTcsIDAuMDA1NjU4IiwgXAotICAgICAgICAgICIwLjAwNTc5NSwgMC4wMDU3MTIsIDAuMDA1NzEzLCAwLjAwNTcxNSwgMC4wMDU3MTQsIDAuMDA1NzE4LCAwLjAwNTcxOSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNJIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDM3NjYsIDAuMDAzODAxLCAwLjAwMzgxMSwgMC4wMDM4MTcsIDAuMDAzODIsIDAuMDAzODIyLCAwLjAwMzgyNCIsIFwKLSAgICAgICAgICAiMC4wMDM3NTUsIDAuMDAzNzkzLCAwLjAwMzgwNCwgMC4wMDM4MSwgMC4wMDM4MTQsIDAuMDAzODE2LCAwLjAwMzgxOCIsIFwKLSAgICAgICAgICAiMC4wMDM3NjQsIDAuMDAzNzkzLCAwLjAwMzgwNCwgMC4wMDM4MTMsIDAuMDAzODE2LCAwLjAwMzgxOCwgMC4wMDM4MiIsIFwKLSAgICAgICAgICAiMC4wMDM3OTUsIDAuMDAzODE2LCAwLjAwMzgyOCwgMC4wMDM4MzUsIDAuMDAzODM5LCAwLjAwMzg0MiwgMC4wMDM4NDMiLCBcCi0gICAgICAgICAgIjAuMDAzODM4LCAwLjAwMzg0NiwgMC4wMDM4NTgsIDAuMDAzODY1LCAwLjAwMzg2OSwgMC4wMDM4NzIsIDAuMDAzODc0IiwgXAotICAgICAgICAgICIwLjAwMzk2NiwgMC4wMDM5MTQsIDAuMDAzOTIzLCAwLjAwMzkyOSwgMC4wMDM5MzIsIDAuMDAzOTM1LCAwLjAwMzkzNiIsIFwKLSAgICAgICAgICAiMC4wMDQwMjUsIDAuMDAzOTc5LCAwLjAwMzk4NCwgMC4wMDM5ODksIDAuMDAzOTkzLCAwLjAwMzk5NCwgMC4wMDM5OTYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDUyMjUsIDAuMDA1MjQ3LCAwLjAwNTI1NywgMC4wMDUyNjMsIDAuMDA1MjY3LCAwLjAwNTI2OSwgMC4wMDUyNzEiLCBcCi0gICAgICAgICAgIjAuMDA1MjIxLCAwLjAwNTI0NiwgMC4wMDUyNTcsIDAuMDA1MjY0LCAwLjAwNTI2OCwgMC4wMDUyNzIsIDAuMDA1MjcyIiwgXAotICAgICAgICAgICIwLjAwNTIzNywgMC4wMDUyNTcsIDAuMDA1MjY5LCAwLjAwNTI3NywgMC4wMDUyODEsIDAuMDA1Mjg1LCAwLjAwNTI4NiIsIFwKLSAgICAgICAgICAiMC4wMDUyNzUsIDAuMDA1MjgyLCAwLjAwNTI5MywgMC4wMDUzMDEsIDAuMDA1MzA1LCAwLjAwNTMwOCwgMC4wMDUzMSIsIFwKLSAgICAgICAgICAiMC4wMDUzMjUsIDAuMDA1MzE2LCAwLjAwNTMyOCwgMC4wMDUzMzUsIDAuMDA1MzQsIDAuMDA1MzQ0LCAwLjAwNTM0NSIsIFwKLSAgICAgICAgICAiMC4wMDU0MjksIDAuMDA1Mzg2LCAwLjAwNTM5NCwgMC4wMDUzOTksIDAuMDA1NDAyLCAwLjAwNTQwNSwgMC4wMDU0MDYiLCBcCi0gICAgICAgICAgIjAuMDA1NTIsIDAuMDA1NDQ4LCAwLjAwNTQ1MywgMC4wMDU0NTcsIDAuMDA1NDYxLCAwLjAwNTQ2MywgMC4wMDU0NjMiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFMpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC42NDc1MTY7Ci0gICAgZnVuY3Rpb24gOiAiKChBXkIpXkNJKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg0NDI4LCAwLjE2NzQ5NCwgMC4yMjk4NTgsIDAuMzA3NTk0LCAwLjM4NTI0NSwgMC40NjI5MTksIDAuNTQwNTYiLCBcCi0gICAgICAgICAgIjAuMDg5Mjg1LCAwLjE3MjQwNiwgMC4yMzQ3NTcsIDAuMzEyNTAyLCAwLjM5MDE0MywgMC40Njc4LCAwLjU0NTQ4IiwgXAotICAgICAgICAgICIwLjA5NTAwMiwgMC4xNzgwNjUsIDAuMjQwNDE5LCAwLjMxODE2NSwgMC4zOTU4MTksIDAuNDczNDgsIDAuNTUxMTQxIiwgXAotICAgICAgICAgICIwLjEwMDQ5OSwgMC4xODM0OTEsIDAuMjQ1ODQ2LCAwLjMyMzYyOSwgMC40MDEyNDQsIDAuNDc4ODgzLCAwLjU1NjQ2OSIsIFwKLSAgICAgICAgICAiMC4xMDU3MDMsIDAuMTg4ODQzLCAwLjI1MTE4OSwgMC4zMjg5MjcsIDAuNDA2NTc5LCAwLjQ4NDIxNywgMC41NjE5MTMiLCBcCi0gICAgICAgICAgIjAuMTEzMjkyLCAwLjE5NjgsIDAuMjU5MTY3LCAwLjMzNjg3NywgMC40MTQ1NzksIDAuNDkyMTgsIDAuNTY5NzczIiwgXAotICAgICAgICAgICIwLjExOTMyLCAwLjIwMzA1OCwgMC4yNjU0NDUsIDAuMzQzMTQxLCAwLjQyMDc5OSwgMC40OTg0NTMsIDAuNTc2MDAzIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1MjA5LCAwLjIwOTc4OCwgMC4zMzk2NjcsIDAuNTA0Mjc2LCAwLjY2OTE4MSwgMC44MzMwNDksIDAuOTk5ODgiLCBcCi0gICAgICAgICAgIjAuMDUxOTE2LCAwLjIwOTc1NiwgMC4zMzk2NjksIDAuNTA0MzUyLCAwLjY2ODUyOCwgMC44MzM3MzYsIDAuOTk4MzE3IiwgXAotICAgICAgICAgICIwLjA1MTc0NiwgMC4yMDk3MzYsIDAuMzM5NjYsIDAuNTA0MjgyLCAwLjY2OTE5MSwgMC44MzM1MjMsIDAuOTk5Nzg3IiwgXAotICAgICAgICAgICIwLjA1MTk5OCwgMC4yMDk3MywgMC4zMzk2OTcsIDAuNTA0MzMzLCAwLjY2OTE3OSwgMC44MzM1NjIsIDAuOTk5NzE5IiwgXAotICAgICAgICAgICIwLjA1Mjc1NCwgMC4yMTAwMTgsIDAuMzM5ODE2LCAwLjUwNDQwNCwgMC42NjkyNDEsIDAuODMzNzQ1LCAwLjk5ODMxOCIsIFwKLSAgICAgICAgICAiMC4wNTM5MzIsIDAuMjEwMzMsIDAuMzQwMDgzLCAwLjUwNDMzMSwgMC42NjkyODIsIDAuODMzODAzLCAwLjk5OTY2MiIsIFwKLSAgICAgICAgICAiMC4wNTQ0MjYsIDAuMjEwOTc2LCAwLjM0MDM3NSwgMC41MDQ0NywgMC42NjkzMjgsIDAuODMzMjQ1LCAwLjk5OTY4NCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTE1MiwgMC4xNzQ3NTcsIDAuMjM1OTE2LCAwLjMxMTk3MywgMC4zODc5NTEsIDAuNDYzOTA4LCAwLjUzOTgzNyIsIFwKLSAgICAgICAgICAiMC4wOTY0NjYsIDAuMTc5NzExLCAwLjI0MDg2NiwgMC4zMTY5MzMsIDAuMzkyOTEsIDAuNDY4ODcsIDAuNTQ0OCIsIFwKLSAgICAgICAgICAiMC4xMDE0OCwgMC4xODQ2MzEsIDAuMjQ1ODA5LCAwLjMyMTg4MywgMC4zOTc4NzIsIDAuNDczODA2LCAwLjU0OTczOSIsIFwKLSAgICAgICAgICAiMC4xMDYwNTQsIDAuMTg5MTU4LCAwLjI1MDM0LCAwLjMyNjQxMiwgMC40MDI0LCAwLjQ3ODMzNCwgMC41NTQzMiIsIFwKLSAgICAgICAgICAiMC4xMTAzNzYsIDAuMTkzNjIzLCAwLjI1NDc5NCwgMC4zMzA4NzEsIDAuNDA2ODY5LCAwLjQ4Mjc5OSwgMC41NTg3MzMiLCBcCi0gICAgICAgICAgIjAuMTE2NzQ0LCAwLjIwMDQyMywgMC4yNjE1OTYsIDAuMzM3NjY3LCAwLjQxMzY2LCAwLjQ4OTU4MSwgMC41NjU1MjEiLCBcCi0gICAgICAgICAgIjAuMTIxNzMxLCAwLjIwNTczOSwgMC4yNjY5NTgsIDAuMzQzMDA0LCAwLjQxODk2OCwgMC40OTUwMTQsIDAuNTcwODc5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1MjQ4NSwgMC4yMDI2NjMsIDAuMzI1ODM3LCAwLjQ4MjEzOSwgMC42MzkwMDMsIDAuNzk2MzgyLCAwLjk1MjgwNCIsIFwKLSAgICAgICAgICAiMC4wNTIzOTksIDAuMjAyNjQzLCAwLjMyNTgxNiwgMC40ODE3MDUsIDAuNjM5MDAzLCAwLjc5NjM4NywgMC45NTI4MTIiLCBcCi0gICAgICAgICAgIjAuMDUyMjU1LCAwLjIwMjU5NCwgMC4zMjU4NzYsIDAuNDgyMTgyLCAwLjYzOTEyMSwgMC43OTYzNzcsIDAuOTUyODE4IiwgXAotICAgICAgICAgICIwLjA1MjYwNCwgMC4yMDI2OTgsIDAuMzI1OTU1LCAwLjQ4MjIwOCwgMC42MzkxMjQsIDAuNzk2Mzc1LCAwLjk1NDA2MiIsIFwKLSAgICAgICAgICAiMC4wNTMwNTQsIDAuMjAyODQ0LCAwLjMyNjIzNiwgMC40ODIyMjcsIDAuNjM5MTc2LCAwLjc5NjM5NywgMC45NTM5MDkiLCBcCi0gICAgICAgICAgIjAuMDU0MzEyLCAwLjIwMzMyNiwgMC4zMjYzMzUsIDAuNDgyNDE1LCAwLjYzOTMsIDAuNzk2MzQxLCAwLjk1MzgxMiIsIFwKLSAgICAgICAgICAiMC4wNTUxMSwgMC4yMDM4MjIsIDAuMzI2NTkyLCAwLjQ4MjU4NiwgMC42MzkyMzYsIDAuNzk1MTU5LCAwLjk1NDAzNyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMjA5ODEsIDAuMTk5OTY1LCAwLjI2MTk2MSwgMC4zMzk0NzEsIDAuNDE3MDE2LCAwLjQ5NDQxMiwgMC41NzIxMjMiLCBcCi0gICAgICAgICAgIjAuMTI3NzcxLCAwLjIwNjczMiwgMC4yNjg3MzUsIDAuMzQ2MjM1LCAwLjQyMzc3NiwgMC41MDEzNDIsIDAuNTc4ODIyIiwgXAotICAgICAgICAgICIwLjEzNDgyMiwgMC4yMTM4MDksIDAuMjc1ODEyLCAwLjM1MzMxMiwgMC40MzA4NTEsIDAuNTA4NDIzLCAwLjU4NTkwMSIsIFwKLSAgICAgICAgICAiMC4xNDE0MSwgMC4yMjAzMTksIDAuMjgyMzE5LCAwLjM1OTc2OSwgMC40MzczNywgMC41MTQ5MTgsIDAuNTkyNDAxIiwgXAotICAgICAgICAgICIwLjE0NzQ5NiwgMC4yMjYzNzksIDAuMjg4NDEzLCAwLjM2NTkxNSwgMC40NDM0NjEsIDAuNTIxMDIxLCAwLjU5ODQ5NSIsIFwKLSAgICAgICAgICAiMC4xNTYxMTksIDAuMjM1MDA1LCAwLjI5Njk4MywgMC4zNzQ0OTEsIDAuNDUyMDI0LCAwLjUyOTU0MywgMC42MDcwNjIiLCBcCi0gICAgICAgICAgIjAuMTYyNzkyLCAwLjI0MTUsIDAuMzAzNDY4LCAwLjM4MDk1LCAwLjQ1ODQ4OSwgMC41MzYwNCwgMC42MTM1MTciKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQ3OTIsIDAuMjA2MjIzLCAwLjMzNzE1OCwgMC41MDE0NywgMC42NjY1NjEsIDAuODMxMzg1LCAwLjk5ODA5IiwgXAotICAgICAgICAgICIwLjA0NzkwMSwgMC4yMDYyNTEsIDAuMzM3MTY0LCAwLjUwMjEwOCwgMC42NjY1ODMsIDAuODMyNzc1LCAwLjk5ODEyIiwgXAotICAgICAgICAgICIwLjA0Nzg5NCwgMC4yMDYyMjYsIDAuMzM3MTQ1LCAwLjUwMjA2LCAwLjY2NjYxOCwgMC44MzI4MDUsIDAuOTk4MTI1IiwgXAotICAgICAgICAgICIwLjA0NzkyLCAwLjIwNjIzMSwgMC4zMzcxNiwgMC41MDE1NjMsIDAuNjY3NDA3LCAwLjgzMjY3MywgMC45OTgwOTgiLCBcCi0gICAgICAgICAgIjAuMDQ3OTUsIDAuMjA2MjY1LCAwLjMzNzE3MywgMC41MDIwOTUsIDAuNjY3MzE2LCAwLjgzMjY1MywgMC45OTgxMTgiLCBcCi0gICAgICAgICAgIjAuMDQ4MDI2LCAwLjIwNjE4MSwgMC4zMzcwNTgsIDAuNTAyMDkzLCAwLjY2NzI1LCAwLjgzMjA2OSwgMC45OTgwMyIsIFwKLSAgICAgICAgICAiMC4wNDgyMDQsIDAuMjA2MjkxLCAwLjMzNjY4NCwgMC41MDIxMjMsIDAuNjY3Mjc1LCAwLjgzMjYwOSwgMC45OTgwNCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTc0NCwgMC4xOTY4MDcsIDAuMjU3NDk2LCAwLjMzMzMxMiwgMC40MDkxNzYsIDAuNDg1MDIyLCAwLjU2MDkzNyIsIFwKLSAgICAgICAgICAiMC4xMjQxODQsIDAuMjAzMDI2LCAwLjI2MzcxNCwgMC4zMzk1MzEsIDAuNDE1NDAxLCAwLjQ5MTIzNSwgMC41NjcxMDEiLCBcCi0gICAgICAgICAgIjAuMTMxOTIyLCAwLjIxMDc4OSwgMC4yNzE0ODIsIDAuMzQ3MzA1LCAwLjQyMzEzNywgMC40OTkwMzIsIDAuNTc0ODY0IiwgXAotICAgICAgICAgICIwLjEzOTA0NiwgMC4yMTgxMDYsIDAuMjc4Nzk5LCAwLjM1NDYzNCwgMC40MzA0NjcsIDAuNTA2MzYzLCAwLjU4MjIyNyIsIFwKLSAgICAgICAgICAiMC4xNDU3ODcsIDAuMjI1MDI2LCAwLjI4NTcwOCwgMC4zNjE1NDIsIDAuNDM3Mzc0LCAwLjUxMzI2LCAwLjU4OTEzNiIsIFwKLSAgICAgICAgICAiMC4xNTU2MzUsIDAuMjM0ODEsIDAuMjk1NDgxLCAwLjM3MTMwOCwgMC40NDcxMzcsIDAuNTIzMDI0LCAwLjU5ODg5NSIsIFwKLSAgICAgICAgICAiMC4xNjMyNzksIDAuMjQyNDE3LCAwLjMwMzA4OSwgMC4zNzg5MiwgMC40NTQ3MiwgMC41MzA2MjUsIDAuNjA2NDY4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0ODMwNCwgMC4xOTg2NjgsIDAuMzIyNDkxLCAwLjQ3OTAxMSwgMC42MzY3MSwgMC43OTQyNDUsIDAuOTUwMzE4IiwgXAotICAgICAgICAgICIwLjA0ODI3OSwgMC4xOTg2NzYsIDAuMzIyNTAxLCAwLjQ3OTAzOSwgMC42MzY2OSwgMC43OTQxODMsIDAuOTUxODkiLCBcCi0gICAgICAgICAgIjAuMDQ4MzIsIDAuMTk4NjY5LCAwLjMyMjU0NCwgMC40NzkzMTgsIDAuNjM2NDg3LCAwLjc5MzIzNSwgMC45NTE2MTYiLCBcCi0gICAgICAgICAgIjAuMDQ4Mjg1LCAwLjE5ODY0OSwgMC4zMjI0OTksIDAuNDc5MzYzLCAwLjYzNjUyMSwgMC43OTMxNzYsIDAuOTUxNjY4IiwgXAotICAgICAgICAgICIwLjA0ODMyNywgMC4xOTg2NzksIDAuMzIyNTAyLCAwLjQ3OTM5LCAwLjYzNjUyNywgMC43OTMyNjQsIDAuOTUxNTE2IiwgXAotICAgICAgICAgICIwLjA0ODM3MSwgMC4xOTg2OTYsIDAuMzIyNTExLCAwLjQ3OTM3MSwgMC42MzY0NzUsIDAuNzkzMjU3LCAwLjk1MTUzNiIsIFwKLSAgICAgICAgICAiMC4wNDg1MzgsIDAuMTk4NjkzLCAwLjMyMjYwNSwgMC40NzkzOTIsIDAuNjM2Mzk1LCAwLjc5MzA3NSwgMC45NTE1NDciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDgyODUxLCAwLjE2NTk5OCwgMC4yMjgzNjUsIDAuMzA2MDg4LCAwLjM4Mzc2NiwgMC40NjE0MzksIDAuNTM5MSIsIFwKLSAgICAgICAgICAiMC4wODg5MDIsIDAuMTcyMDAxLCAwLjIzNDM2LCAwLjMxMjExMiwgMC4zODk3NjIsIDAuNDY3Mzk5LCAwLjU0NTEwNyIsIFwKLSAgICAgICAgICAiMC4wOTY3OTIsIDAuMTc5ODM4LCAwLjI0MjE5NiwgMC4zMTk5NDgsIDAuMzk3NjAyLCAwLjQ3NTI0OSwgMC41NTI5MzgiLCBcCi0gICAgICAgICAgIjAuMTA0NTI4LCAwLjE4NzUxNCwgMC4yNDk4NTUsIDAuMzI3NTkyLCAwLjQwNTI5NSwgMC40ODI5MDIsIDAuNTYwNTM1IiwgXAotICAgICAgICAgICIwLjExMTczMiwgMC4xOTQ2OTMsIDAuMjU3MDM1LCAwLjMzNDc4NCwgMC40MTI0MzYsIDAuNDkwMDYxLCAwLjU2Nzc3MyIsIFwKLSAgICAgICAgICAiMC4xMjIzNjMsIDAuMjA1NzA3LCAwLjI2NzkxNiwgMC4zNDU2MzksIDAuNDIzMjgzLCAwLjUwMDkyNywgMC41Nzg1NSIsIFwKLSAgICAgICAgICAiMC4xMzA0ODQsIDAuMjE0MjU0LCAwLjI3NjY2LCAwLjM1NDM3LCAwLjQzMjA4NywgMC41MDk2NzIsIDAuNTg3Mjk2Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1MjAxOSwgMC4yMDk3NzMsIDAuMzM5OTIzLCAwLjUwMzQ4MSwgMC42NjgwNDIsIDAuODMyOTA2LCAwLjk5ODIzOSIsIFwKLSAgICAgICAgICAiMC4wNTE5MzEsIDAuMjA5NzYzLCAwLjMzOTY3OCwgMC41MDQzNTEsIDAuNjY5MjQ2LCAwLjgzMzcxLCAwLjk5ODI4NyIsIFwKLSAgICAgICAgICAiMC4wNTE3ODEsIDAuMjA5NzQyLCAwLjMzOTY3MywgMC41MDQzNjQsIDAuNjY5MjMxLCAwLjgzMzcxOCwgMC45OTgzMjMiLCBcCi0gICAgICAgICAgIjAuMDUyMDIsIDAuMjA5ODAzLCAwLjMzOTcxNSwgMC41MDM3NTcsIDAuNjY5MjI0LCAwLjgzNDM2OCwgMC45OTgzNzMiLCBcCi0gICAgICAgICAgIjAuMDUyNTA5LCAwLjIwOTkxOSwgMC4zMzk4MjksIDAuNTA0MzY2LCAwLjY2OTIwNiwgMC44MzM2OTMsIDAuOTk4Mjk2IiwgXAotICAgICAgICAgICIwLjA1Mzg0MywgMC4yMTA0NDksIDAuMzQwMDk0LCAwLjUwMzg5NSwgMC42NjkxNzEsIDAuODMzNjkxLCAwLjk5ODIzNiIsIFwKLSAgICAgICAgICAiMC4wNTQ5MjcsIDAuMjEwOTU1LCAwLjM0MDE2MywgMC41MDM4NzksIDAuNjY5MzA1LCAwLjgzNDQwNiwgMC45OTg1OTQiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg5Mjg2LCAwLjE3MjUyMiwgMC4yMzM2OSwgMC4zMDk3NzUsIDAuMzg1NzY0LCAwLjQ2MTY5NCwgMC41Mzc2NDEiLCBcCi0gICAgICAgICAgIjAuMDk1MTM5LCAwLjE3ODMyNSwgMC4yMzk1MDQsIDAuMzE1NTg0LCAwLjM5MTU3NiwgMC40Njc1MTcsIDAuNTQzNDYyIiwgXAotICAgICAgICAgICIwLjEwMjM0OSwgMC4xODU1MDcsIDAuMjQ2Njg0LCAwLjMyMjc1OCwgMC4zOTg3NDIsIDAuNDc0NzA2LCAwLjU1MDY0NCIsIFwKLSAgICAgICAgICAiMC4xMDk0ODQsIDAuMTkyNjA4LCAwLjI1Mzc5MywgMC4zMjk4NzUsIDAuNDA1ODcxLCAwLjQ4MTgxMiwgMC41NTc3NDEiLCBcCi0gICAgICAgICAgIjAuMTE2MTksIDAuMTk5MzcsIDAuMjYwNTQzLCAwLjMzNjYyNSwgMC40MTI2MTcsIDAuNDg4NTUyLCAwLjU2NDQ5IiwgXAotICAgICAgICAgICIwLjEyNTk0OCwgMC4yMDk1MywgMC4yNzA3MDIsIDAuMzQ2Nzc3LCAwLjQyMjc0MywgMC40OTg3MTcsIDAuNTc0NjIzIiwgXAotICAgICAgICAgICIwLjEzMzgwMywgMC4yMTc1ODQsIDAuMjc4Nzg4LCAwLjM1NDg0MSwgMC40MzA4MzgsIDAuNTA2ODU2LCAwLjU4MjY5OCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTI1MDksIDAuMjAyNjQsIDAuMzI1ODY5LCAwLjQ4MjI1NCwgMC42Mzc5NjMsIDAuNzk2MzEsIDAuOTUzNzgyIiwgXAotICAgICAgICAgICIwLjA1MjQ4MywgMC4yMDI1ODksIDAuMzI1OTUyLCAwLjQ4MjIxNSwgMC42MzkxNTksIDAuNzk2NDI3LCAwLjk1Mzk2NSIsIFwKLSAgICAgICAgICAiMC4wNTIzNjEsIDAuMjAyNjA0LCAwLjMyNTY5LCAwLjQ4MTY3NywgMC42MzkwMSwgMC43OTY0MTMsIDAuOTUyODc1IiwgXAotICAgICAgICAgICIwLjA1MjQxNCwgMC4yMDI2ODEsIDAuMzI1OTQ4LCAwLjQ4MjIyNSwgMC42MzkxNTYsIDAuNzk2NDE1LCAwLjk1MzkxOSIsIFwKLSAgICAgICAgICAiMC4wNTMxNjEsIDAuMjAyOTM0LCAwLjMyNjA2NiwgMC40ODIyOTksIDAuNjM5MjE0LCAwLjc5NjQzOSwgMC45NTI4NDUiLCBcCi0gICAgICAgICAgIjAuMDU0NTgzLCAwLjIwMzQ2NCwgMC4zMjYzMjcsIDAuNDgyNDQ0LCAwLjYzODU3NywgMC43OTU3OTksIDAuOTUzODA1IiwgXAotICAgICAgICAgICIwLjA1NTA2MiwgMC4yMDQwODIsIDAuMzI2NTE1LCAwLjQ4MTg3OSwgMC42MzkzMTksIDAuNzk1MjAzLCAwLjk1Mzg3MiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMjEzODIsIDAuMjAwNDI1LCAwLjI2MjQ1NCwgMC4zMzk5NzcsIDAuNDE3NTQzLCAwLjQ5NTEyOCwgMC41NzI3MzgiLCBcCi0gICAgICAgICAgIjAuMTI3OTU1LCAwLjIwNjk3NiwgMC4yNjkwMTEsIDAuMzQ2NDgzLCAwLjQyNDAxNiwgMC41MDE2NTIsIDAuNTc5MjA4IiwgXAotICAgICAgICAgICIwLjEzNDY4LCAwLjIxMzczNCwgMC4yNzU3NywgMC4zNTMzMTEsIDAuNDMwODY0LCAwLjUwODQ0MiwgMC41ODU5NjYiLCBcCi0gICAgICAgICAgIjAuMTQzNTksIDAuMjIyODY2LCAwLjI4NDgyNywgMC4zNjIzMjMsIDAuNDM5ODQ5LCAwLjUxNzI4NiwgMC41OTQ4ODkiLCBcCi0gICAgICAgICAgIjAuMTUyNTUyLCAwLjIzMTcyNywgMC4yOTM3ODcsIDAuMzcxMzE2LCAwLjQ0ODc4OCwgMC41MjY0MjIsIDAuNjAzODkzIiwgXAotICAgICAgICAgICIwLjE2NDk0NSwgMC4yNDQxMDgsIDAuMzA2MDA5LCAwLjM4MzUwMSwgMC40NjEwMjEsIDAuNTM4NTk2LCAwLjYxNjA0OSIsIFwKLSAgICAgICAgICAiMC4xNzQ1MDIsIDAuMjUzNTQ0LCAwLjMxNTQ2OSwgMC4zOTI5NTQsIDAuNDcwNDU2LCAwLjU0ODA0NCwgMC42MjU0OSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDc3ODEsIDAuMjA2MjE0LCAwLjMzNzE3LCAwLjUwMTcwNSwgMC42NjY3NjgsIDAuODMyNzkyLCAwLjk5ODEzMiIsIFwKLSAgICAgICAgICAiMC4wNDc4MzEsIDAuMjA2MjA1LCAwLjMzNzE2NCwgMC41MDE2ODQsIDAuNjY2NzM5LCAwLjgzMjc5NiwgMC45OTgxMzgiLCBcCi0gICAgICAgICAgIjAuMDQ3ODIyLCAwLjIwNjI0OSwgMC4zMzcxNzgsIDAuNTAyMTQsIDAuNjY3Mzc1LCAwLjgzMTk5MSwgMC45OTgxMjUiLCBcCi0gICAgICAgICAgIjAuMDQ3ODMzLCAwLjIwNjIzOCwgMC4zMzcxNTYsIDAuNTAyMTAxLCAwLjY2NzM5OSwgMC44MzI3NywgMC45OTgxNDUiLCBcCi0gICAgICAgICAgIjAuMDQ3Nzk1LCAwLjIwNjI0MiwgMC4zMzcxNzEsIDAuNTAyMTU3LCAwLjY2Njg1NywgMC44MzE0MTMsIDAuOTk4MTU5IiwgXAotICAgICAgICAgICIwLjA0Nzk5MiwgMC4yMDYyNTcsIDAuMzM2OTgzLCAwLjUwMjE1NCwgMC42NjczNDcsIDAuODMyMTk3LCAwLjk5ODEwOSIsIFwKLSAgICAgICAgICAiMC4wNDgwNDksIDAuMjA2MjY1LCAwLjMzNjk5OSwgMC41MDIxMjUsIDAuNjY2OTU5LCAwLjgzMTQ4MiwgMC45OTgwOTUiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTE3MDU5LCAwLjE5NjQwMiwgMC4yNTcwOTIsIDAuMzMyOTI0LCAwLjQwODc1OSwgMC40ODQ2NjUsIDAuNTYwNTE0IiwgXAotICAgICAgICAgICIwLjEyNDQzLCAwLjIwMzc2OSwgMC4yNjQ0NTksIDAuMzQwMjgsIDAuNDE2MTY4LCAwLjQ5MjAyOSwgMC41Njc5MDYiLCBcCi0gICAgICAgICAgIjAuMTM0MDc0LCAwLjIxMzQzMywgMC4yNzQxMSwgMC4zNDk5NDYsIDAuNDI1Nzc3LCAwLjUwMTY4LCAwLjU3NzUzMyIsIFwKLSAgICAgICAgICAiMC4xNDM0MzcsIDAuMjIyNjQyLCAwLjI4MzMyNiwgMC4zNTkxNjMsIDAuNDM0OTk0LCAwLjUxMDkyMywgMC41ODY3NjYiLCBcCi0gICAgICAgICAgIjAuMTUyNTEsIDAuMjMxNzQyLCAwLjI5MjQyLCAwLjM2ODI1MiwgMC40NDQwODMsIDAuNTE5OTgxLCAwLjU5NTk0MSIsIFwKLSAgICAgICAgICAiMC4xNjQ5MTYsIDAuMjQ0MDgsIDAuMzA0NzQ4LCAwLjM4MDU1MywgMC40NTY0MTcsIDAuNTMyMzA0LCAwLjYwODEwOCIsIFwKLSAgICAgICAgICAiMC4xNzQ2ODYsIDAuMjUzNTAzLCAwLjMxNDE3LCAwLjM5MDEzNywgMC40NjU5ODIsIDAuNTQxNjcsIDAuNjE3NzUzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0Nzk3NCwgMC4xOTg2MTMsIDAuMzIyNDc0LCAwLjQ3OTMxLCAwLjYzNjU4OSwgMC43OTM1NywgMC45NTIwMTMiLCBcCi0gICAgICAgICAgIjAuMDQ3OTgxLCAwLjE5ODU3NSwgMC4zMjI0ODIsIDAuNDc5MiwgMC42MzY3NCwgMC43OTI4NzksIDAuOTUxODQxIiwgXAotICAgICAgICAgICIwLjA0Nzk4NiwgMC4xOTg2MDIsIDAuMzIyNDc3LCAwLjQ3OTMyNSwgMC42MzY0OTEsIDAuNzkyOTk1LCAwLjk1MTkzMiIsIFwKLSAgICAgICAgICAiMC4wNDc5OTcsIDAuMTk4NjI5LCAwLjMyMjQ4LCAwLjQ3OTM5NiwgMC42MzY2MDgsIDAuNzk0MDYyLCAwLjk1MTg4MiIsIFwKLSAgICAgICAgICAiMC4wNDc5ODMsIDAuMTk4NjAyLCAwLjMyMjQ0NSwgMC40NzkzMjYsIDAuNjM2NDIzLCAwLjc5MzI2NSwgMC45NTE3OTMiLCBcCi0gICAgICAgICAgIjAuMDQ4MTA3LCAwLjE5ODY3OCwgMC4zMjI0NjksIDAuNDc5MTYyLCAwLjYzNjQ3NywgMC43OTMwMzcsIDAuOTUxNzgxIiwgXAotICAgICAgICAgICIwLjA0ODE2OSwgMC4xOTg2NTksIDAuMzIyNTE1LCAwLjQ3OTM0NCwgMC42MzY0NzMsIDAuNzkzMjkxLCAwLjk1MTc0NCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDgyODQxLCAwLjE2NTk2LCAwLjIyODMyNywgMC4zMDYwNjgsIDAuMzgzNjczLCAwLjQ2MTQ1NiwgMC41MzkxMTEiLCBcCi0gICAgICAgICAgIjAuMDg5NDkxLCAwLjE3MjU2NywgMC4yMzQ5MzUsIDAuMzEyNjc4LCAwLjM5MDMzMiwgMC40Njc5OTEsIDAuNTQ1NjYiLCBcCi0gICAgICAgICAgIjAuMDk4NDE2LCAwLjE4MTQ5LCAwLjI0Mzg1NSwgMC4zMjE2MDQsIDAuMzk5MjYxLCAwLjQ3NjkyMiwgMC41NTQ1ODUiLCBcCi0gICAgICAgICAgIjAuMTA3NTYxLCAwLjE5MDM5MywgMC4yNTI3NDEsIDAuMzMwNDksIDAuNDA4MTQ4LCAwLjQ4NTgwMywgMC41NjMzODciLCBcCi0gICAgICAgICAgIjAuMTE2MzcyLCAwLjE5OTI1NCwgMC4yNjE1ODIsIDAuMzM5MzMzLCAwLjQxNjk3OCwgMC40OTQ2MTMsIDAuNTcyMjE0IiwgXAotICAgICAgICAgICIwLjEyODY3MywgMC4yMTIwMDksIDAuMjc0MzQ0LCAwLjM1MjAzOSwgMC40Mjk2OTQsIDAuNTA3MzIsIDAuNTg0OTU3IiwgXAotICAgICAgICAgICIwLjEzODQ5MiwgMC4yMjIyODcsIDAuMjg0NjQ4LCAwLjM2MjM0NiwgMC40Mzk5OTMsIDAuNTE3NjI0LCAwLjU5NTI1MiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTIyMTQsIDAuMjA5NzQ5LCAwLjMzOTgwOSwgMC41MDM4NzMsIDAuNjY4ODU4LCAwLjgzMzI1MywgMC45OTgyNTkiLCBcCi0gICAgICAgICAgIjAuMDUxOTM3LCAwLjIwOTc2NSwgMC4zMzk2NTksIDAuNTA0MzE0LCAwLjY2NzgzMSwgMC44MzM1NzksIDAuOTk4MzI4IiwgXAotICAgICAgICAgICIwLjA1MTc4LCAwLjIwOTczMSwgMC4zMzk2NTcsIDAuNTA0Mjk4LCAwLjY2OTE4OSwgMC44MzM1MjYsIDAuOTk5NzcyIiwgXAotICAgICAgICAgICIwLjA1MTkxMiwgMC4yMDk4NTYsIDAuMzM5NzM0LCAwLjUwNDM5MiwgMC42NjkyMjEsIDAuODMzNTQ4LCAwLjk5ODkzMSIsIFwKLSAgICAgICAgICAiMC4wNTI1OTUsIDAuMjEwMTA4LCAwLjMzOTgzOSwgMC41MDQzNzIsIDAuNjY5MjIyLCAwLjgzMzc3MiwgMC45OTg4NTQiLCBcCi0gICAgICAgICAgIjAuMDU0NzQyLCAwLjIxMDU0OSwgMC4zNDAwNDMsIDAuNTA0MTk1LCAwLjY2OTEwNiwgMC44MzQzNSwgMC45OTgxMTYiLCBcCi0gICAgICAgICAgIjAuMDU1NzI1LCAwLjIxMTA1OSwgMC4zNDAyMDIsIDAuNTA0MDU0LCAwLjY2ODY4MSwgMC44MzQzODUsIDAuOTk4MDk1Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4NzIyMSwgMC4xNzAzNzEsIDAuMjMxNTQ2LCAwLjMwNzYyNywgMC4zODM2MywgMC40NTk1NywgMC41MzU1MDYiLCBcCi0gICAgICAgICAgIjAuMDkzNjcxLCAwLjE3NjkwNSwgMC4yMzgwODcsIDAuMzE0MTYzLCAwLjM5MDE1MywgMC40NjYwODksIDAuNTQyMDMxIiwgXAotICAgICAgICAgICIwLjEwMjY3MSwgMC4xODU4MTYsIDAuMjQ3MDAyLCAwLjMyMzA4MiwgMC4zOTkwNzQsIDAuNDc1MDExLCAwLjU1MDk0MSIsIFwKLSAgICAgICAgICAiMC4xMTE3ODcsIDAuMTk0ODYyLCAwLjI1NjAzNSwgMC4zMzIxMSwgMC40MDgwOTgsIDAuNDg0MDMxLCAwLjU1OTk2NiIsIFwKLSAgICAgICAgICAiMC4xMjA2MiwgMC4yMDM2NzUsIDAuMjY0ODQ4LCAwLjM0MDkxNiwgMC40MTY5MDIsIDAuNDkyODc5LCAwLjU2ODgwNSIsIFwKLSAgICAgICAgICAiMC4xMzMxOTgsIDAuMjE2NDU5LCAwLjI3NzYyMiwgMC4zNTM2OSwgMC40Mjk2NTgsIDAuNTA1NjE0LCAwLjU4MTUwNSIsIFwKLSAgICAgICAgICAiMC4xNDI2ODMsIDAuMjI2NDQ2LCAwLjI4NzYzNiwgMC4zNjM2NzgsIDAuNDM5NjI5LCAwLjUxNTU5OSwgMC41OTE1MDMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDUyNDQsIDAuMjAyNjkzLCAwLjMyNTg0NSwgMC40ODIyMiwgMC42MzkxODYsIDAuNzk2NDQyLCAwLjk1Mjg3MSIsIFwKLSAgICAgICAgICAiMC4wNTI0MDgsIDAuMjAyNTk2LCAwLjMyNTkyOSwgMC40ODIxOTksIDAuNjM5MTM2LCAwLjc5NjM4NiwgMC45NTM5MjciLCBcCi0gICAgICAgICAgIjAuMDUyMzY4LCAwLjIwMjU4OCwgMC4zMjU4NzIsIDAuNDgyMTg1LCAwLjYzOTEyNywgMC43OTYzOCwgMC45NTI3NjYiLCBcCi0gICAgICAgICAgIjAuMDUyNjI3LCAwLjIwMjYxOCwgMC4zMjU5NDksIDAuNDgyMjE1LCAwLjYzOTE1NiwgMC43OTYzNzksIDAuOTUyODQxIiwgXAotICAgICAgICAgICIwLjA1MzAxLCAwLjIwMjg4NSwgMC4zMjYwNDQsIDAuNDgyMjcxLCAwLjYzOTE3LCAwLjc5NjUyMywgMC45NTQwMjUiLCBcCi0gICAgICAgICAgIjAuMDU0NTUyLCAwLjIwMzQ2NywgMC4zMjYyNTgsIDAuNDgyNTUxLCAwLjYzOTE4NywgMC43OTUxNjQsIDAuOTUzODg5IiwgXAotICAgICAgICAgICIwLjA1NTU4LCAwLjIwMzk5NCwgMC4zMjY3MTUsIDAuNDgyMTMsIDAuNjM5MjUyLCAwLjc5NjU4NSwgMC45NTM4MTMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0kiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExNjQ4MiwgMC4xOTU1NCwgMC4yNTc1ODEsIDAuMzM1MTEyLCAwLjQxMjY3NCwgMC40OTAyNjcsIDAuNTY3NzU4IiwgXAotICAgICAgICAgICIwLjEyNDEsIDAuMjAzMTU0LCAwLjI2NTE5NCwgMC4zNDI3MjYsIDAuNDIwMjg2LCAwLjQ5Nzg3OCwgMC41NzUzNyIsIFwKLSAgICAgICAgICAiMC4xMzM3MTgsIDAuMjEyNzM1LCAwLjI3NDc3NSwgMC4zNTIzMTIsIDAuNDI5ODczLCAwLjUwNzQ1LCAwLjU4NDk2MyIsIFwKLSAgICAgICAgICAiMC4xNDMwMTksIDAuMjIyMDU2LCAwLjI4NDA5LCAwLjM2MTY2NiwgMC40MzkxNzUsIDAuNTE2NzY4LCAwLjU5NDI2IiwgXAotICAgICAgICAgICIwLjE1MTU0NiwgMC4yMzA1ODUsIDAuMjkyNTg2LCAwLjM3MDExNiwgMC40NDc2NzQsIDAuNTI1MjY3LCAwLjYwMjc1OSIsIFwKLSAgICAgICAgICAiMC4xNjMyODUsIDAuMjQyMDEzLCAwLjMwNDAzLCAwLjM4MTU5LCAwLjQ1OTE2NSwgMC41MzY3NzcsIDAuNjE0MzEyIiwgXAotICAgICAgICAgICIwLjE3MTc3MSwgMC4yNTA2MDEsIDAuMzEyNTk2LCAwLjM5MDEyMywgMC40Njc2NDksIDAuNTQ1MTkzLCAwLjYyMjc0MSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDc0NzQsIDAuMjA2MDgsIDAuMzM3MDU1LCAwLjUwMjE0OSwgMC42NjY3ODUsIDAuODMyNzY5LCAwLjk5ODE1NSIsIFwKLSAgICAgICAgICAiMC4wNDc0MDUsIDAuMjA2MDc4LCAwLjMzNzA1NywgMC41MDIxNTMsIDAuNjY2Nzg5LCAwLjgzMjc2NSwgMC45OTgxNTgiLCBcCi0gICAgICAgICAgIjAuMDQ3NDQ1LCAwLjIwNjA5MSwgMC4zMzcwNTIsIDAuNTAyMTU1LCAwLjY2NjY1OSwgMC44MzI3NzUsIDAuOTk4MTQiLCBcCi0gICAgICAgICAgIjAuMDQ3NDc3LCAwLjIwNjA4NCwgMC4zMzcwNjcsIDAuNTAxNTA5LCAwLjY2NjgxNCwgMC44MzI3NzIsIDAuOTk4MTU4IiwgXAotICAgICAgICAgICIwLjA0NzQ0MiwgMC4yMDYwNzUsIDAuMzM2OTg3LCAwLjUwMjE1OSwgMC42NjY4MDYsIDAuODMyNzc2LCAwLjk5ODEzMiIsIFwKLSAgICAgICAgICAiMC4wNDc2MzEsIDAuMjA2MTYyLCAwLjMzNjkzMSwgMC41MDIxNSwgMC42NjY2MSwgMC44MzI2NiwgMC45OTgxNjEiLCBcCi0gICAgICAgICAgIjAuMDQ3Njk5LCAwLjIwNjMyNCwgMC4zMzcxNTIsIDAuNTAxOTM1LCAwLjY2Njk0NSwgMC44MzI1NSwgMC45OTgwMzQiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTEyODE4LCAwLjE5MTMyOSwgMC4yNTIwMTYsIDAuMzI3ODU3LCAwLjQwMzcsIDAuNDc5NTc2LCAwLjU1NTQyNCIsIFwKLSAgICAgICAgICAiMC4xMjA0NDQsIDAuMTk4ODk4LCAwLjI1OTU3NSwgMC4zMzU0MjksIDAuNDExMjcxLCAwLjQ4NzEzNiwgMC41NjMwNDMiLCBcCi0gICAgICAgICAgIjAuMTI5ODk2LCAwLjIwODM1MywgMC4yNjkwNDEsIDAuMzQ0OTE1LCAwLjQyMDc3MSwgMC40OTY2MDMsIDAuNTcyNTE0IiwgXAotICAgICAgICAgICIwLjEzOTAyMSwgMC4yMTc0NzYsIDAuMjc4MTU2LCAwLjM1NDAwNiwgMC40Mjk4NDgsIDAuNTA1NzIsIDAuNTgxNjA5IiwgXAotICAgICAgICAgICIwLjE0NzgyNSwgMC4yMjYyMiwgMC4yODY5MDQsIDAuMzYyNzU0LCAwLjQzODYxMSwgMC41MTQ0OSwgMC41OTAzNSIsIFwKLSAgICAgICAgICAiMC4xNTk0MDUsIDAuMjM3NzA5LCAwLjI5ODM2OCwgMC4zNzQyMDYsIDAuNDUwMDUxLCAwLjUyNTkxNiwgMC42MDE3OTIiLCBcCi0gICAgICAgICAgIjAuMTY4MTY4LCAwLjI0NjI0MiwgMC4zMDY4ODksIDAuMzgyNzI0LCAwLjQ1ODU2NywgMC41MzQ0MTcsIDAuNjEwMjU5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0Njc2MywgMC4xOTc4NTMsIDAuMzIyMDk2LCAwLjQ3OTE3OCwgMC42MzYzMzksIDAuNzkzMTgyLCAwLjk1MTU3IiwgXAotICAgICAgICAgICIwLjA0Njc2NSwgMC4xOTc4NDgsIDAuMzIyMDk3LCAwLjQ3OTA0NCwgMC42MzYzMTQsIDAuNzk0MDQ0LCAwLjk1MTY3OCIsIFwKLSAgICAgICAgICAiMC4wNDY3NjQsIDAuMTk3ODQ3LCAwLjMyMjA5NCwgMC40NzkwNjcsIDAuNjM2NDg4LCAwLjc5Mzk3OSwgMC45NTA0NDkiLCBcCi0gICAgICAgICAgIjAuMDQ2NzksIDAuMTk3ODQ4LCAwLjMyMjA5NSwgMC40Nzg5OTQsIDAuNjM2MzAzLCAwLjc5NDAzNywgMC45NTE2MzIiLCBcCi0gICAgICAgICAgIjAuMDQ2NzM2LCAwLjE5NzY5MiwgMC4zMjIwNDgsIDAuNDc5MTczLCAwLjYzNjAwMywgMC43OTMxNjYsIDAuOTUxNzEzIiwgXAotICAgICAgICAgICIwLjA0NjkyNiwgMC4xOTc5MiwgMC4zMjIxNDIsIDAuNDc4OTg2LCAwLjYzNTkwNywgMC43OTMzMTQsIDAuOTUxNjM4IiwgXAotICAgICAgICAgICIwLjA0NzA1NywgMC4xOTgwNzYsIDAuMzIyMTA1LCAwLjQ3OTE3NCwgMC42MzY0MDMsIDAuNzkzNzkxLCAwLjk1MDQxNCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNTY0NiwgMC4wMDU2NzEsIDAuMDA1NjgxLCAwLjAwNTY4OSwgMC4wMDU2OTMsIDAuMDA1Njk1LCAwLjAwNTY5NiIsIFwKLSAgICAgICAgICAiMC4wMDU2MjcsIDAuMDA1NjU4LCAwLjAwNTY2OSwgMC4wMDU2NzYsIDAuMDA1Njc5LCAwLjAwNTY4MiwgMC4wMDU2ODMiLCBcCi0gICAgICAgICAgIjAuMDA1NjIsIDAuMDA1NjUxLCAwLjAwNTY2NCwgMC4wMDU2NzEsIDAuMDA1Njc2LCAwLjAwNTY3OCwgMC4wMDU2ODEiLCBcCi0gICAgICAgICAgIjAuMDA1NjU2LCAwLjAwNTY3LCAwLjAwNTY4MSwgMC4wMDU2ODgsIDAuMDA1NjksIDAuMDA1NjkyLCAwLjAwNTY5NCIsIFwKLSAgICAgICAgICAiMC4wMDU2OTEsIDAuMDA1Njk0LCAwLjAwNTcwNCwgMC4wMDU3MTEsIDAuMDA1NzE1LCAwLjAwNTcxOCwgMC4wMDU3MTkiLCBcCi0gICAgICAgICAgIjAuMDA1NzU5LCAwLjAwNTc0MywgMC4wMDU3NTIsIDAuMDA1NzU4LCAwLjAwNTc2MiwgMC4wMDU3NjUsIDAuMDA1NzY3IiwgXAotICAgICAgICAgICIwLjAwNTg1LCAwLjAwNTgwNSwgMC4wMDU4MSwgMC4wMDU4MTYsIDAuMDA1ODIsIDAuMDA1ODIxLCAwLjAwNTgyMyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzYwOCwgMC4wMDM2MzIsIDAuMDAzNjQxLCAwLjAwMzY0NSwgMC4wMDM2NDksIDAuMDAzNjUzLCAwLjAwMzY1MyIsIFwKLSAgICAgICAgICAiMC4wMDM1NzYsIDAuMDAzNjA1LCAwLjAwMzYxNSwgMC4wMDM2MjEsIDAuMDAzNjIzLCAwLjAwMzYyNywgMC4wMDM2MjciLCBcCi0gICAgICAgICAgIjAuMDAzNTkxLCAwLjAwMzYwOCwgMC4wMDM2MTgsIDAuMDAzNjI1LCAwLjAwMzYyOCwgMC4wMDM2MzEsIDAuMDAzNjMxIiwgXAotICAgICAgICAgICIwLjAwMzYwMiwgMC4wMDM2MTcsIDAuMDAzNjI4LCAwLjAwMzYzNSwgMC4wMDM2MzksIDAuMDAzNjQxLCAwLjAwMzY0MyIsIFwKLSAgICAgICAgICAiMC4wMDM2NDEsIDAuMDAzNjQ1LCAwLjAwMzY1NCwgMC4wMDM2NjEsIDAuMDAzNjY1LCAwLjAwMzY2NywgMC4wMDM2NjkiLCBcCi0gICAgICAgICAgIjAuMDAzNzcsIDAuMDAzNzEzLCAwLjAwMzcxOSwgMC4wMDM3MjQsIDAuMDAzNzI2LCAwLjAwMzcyOSwgMC4wMDM3MyIsIFwKLSAgICAgICAgICAiMC4wMDM3OTgsIDAuMDAzNzYyLCAwLjAwMzc3NCwgMC4wMDM3NzMsIDAuMDAzNzc1LCAwLjAwMzc3OCwgMC4wMDM3NzkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDU1MzcsIDAuMDA1NTY2LCAwLjAwNTU3NiwgMC4wMDU1ODQsIDAuMDA1NTg2LCAwLjAwNTU4OCwgMC4wMDU1OSIsIFwKLSAgICAgICAgICAiMC4wMDU1MTEsIDAuMDA1NTQ0LCAwLjAwNTU1NSwgMC4wMDU1NjEsIDAuMDA1NTY1LCAwLjAwNTU2OSwgMC4wMDU1NjkiLCBcCi0gICAgICAgICAgIjAuMDA1NDk3LCAwLjAwNTUyNSwgMC4wMDU1MzYsIDAuMDA1NTQ0LCAwLjAwNTU0OCwgMC4wMDU1NTEsIDAuMDA1NTUyIiwgXAotICAgICAgICAgICIwLjAwNTUwNywgMC4wMDU1MjIsIDAuMDA1NTMzLCAwLjAwNTU0LCAwLjAwNTU0NSwgMC4wMDU1NDcsIDAuMDA1NTQ4IiwgXAotICAgICAgICAgICIwLjAwNTU3MiwgMC4wMDU1NzcsIDAuMDA1NTcsIDAuMDA1NTc2LCAwLjAwNTU4LCAwLjAwNTU4MywgMC4wMDU1ODUiLCBcCi0gICAgICAgICAgIjAuMDA1NjkxLCAwLjAwNTY0LCAwLjAwNTY0NywgMC4wMDU2NTEsIDAuMDA1NjU0LCAwLjAwNTY1NywgMC4wMDU2NTgiLCBcCi0gICAgICAgICAgIjAuMDA1Nzk1LCAwLjAwNTcxMiwgMC4wMDU3MTMsIDAuMDA1NzE1LCAwLjAwNTcxNCwgMC4wMDU3MTgsIDAuMDA1NzE5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzNzcyLCAwLjAwMzgsIDAuMDAzODA5LCAwLjAwMzgxMiwgMC4wMDM4MTcsIDAuMDAzODIxLCAwLjAwMzgxOSIsIFwKLSAgICAgICAgICAiMC4wMDM3MzYsIDAuMDAzNzY4LCAwLjAwMzc3OCwgMC4wMDM3ODMsIDAuMDAzNzg3LCAwLjAwMzc4OSwgMC4wMDM3OSIsIFwKLSAgICAgICAgICAiMC4wMDM3MzMsIDAuMDAzNzYyLCAwLjAwMzc3MywgMC4wMDM3NzksIDAuMDAzNzgzLCAwLjAwMzc4NSwgMC4wMDM3ODciLCBcCi0gICAgICAgICAgIjAuMDAzNzg3LCAwLjAwMzc4NCwgMC4wMDM3OTMsIDAuMDAzOCwgMC4wMDM4MDIsIDAuMDAzODA1LCAwLjAwMzgwNiIsIFwKLSAgICAgICAgICAiMC4wMDM4MTEsIDAuMDAzODExLCAwLjAwMzgyMiwgMC4wMDM4MjksIDAuMDAzODMxLCAwLjAwMzgzNSwgMC4wMDM4MzYiLCBcCi0gICAgICAgICAgIjAuMDAzOTEyLCAwLjAwMzg4MywgMC4wMDM4OSwgMC4wMDM4OTUsIDAuMDAzODk4LCAwLjAwMzksIDAuMDAzOTAyIiwgXAotICAgICAgICAgICIwLjAwNDA0NSwgMC4wMDM5MzksIDAuMDAzOTQ2LCAwLjAwMzk3OCwgMC4wMDM5NzcsIDAuMDAzOTU2LCAwLjAwMzk3OSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNJIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDUyMjUsIDAuMDA1MjQ3LCAwLjAwNTI1NywgMC4wMDUyNjMsIDAuMDA1MjY3LCAwLjAwNTI2OSwgMC4wMDUyNzEiLCBcCi0gICAgICAgICAgIjAuMDA1MjIxLCAwLjAwNTI0NiwgMC4wMDUyNTcsIDAuMDA1MjY0LCAwLjAwNTI2OCwgMC4wMDUyNzIsIDAuMDA1MjcyIiwgXAotICAgICAgICAgICIwLjAwNTIzNywgMC4wMDUyNTcsIDAuMDA1MjY5LCAwLjAwNTI3NywgMC4wMDUyODEsIDAuMDA1Mjg1LCAwLjAwNTI4NiIsIFwKLSAgICAgICAgICAiMC4wMDUyNzUsIDAuMDA1MjgyLCAwLjAwNTI5MywgMC4wMDUzMDEsIDAuMDA1MzA1LCAwLjAwNTMwOCwgMC4wMDUzMSIsIFwKLSAgICAgICAgICAiMC4wMDUzMjUsIDAuMDA1MzE2LCAwLjAwNTMyOCwgMC4wMDUzMzUsIDAuMDA1MzQsIDAuMDA1MzQ0LCAwLjAwNTM0NSIsIFwKLSAgICAgICAgICAiMC4wMDU0MjksIDAuMDA1Mzg2LCAwLjAwNTM5NCwgMC4wMDUzOTksIDAuMDA1NDAyLCAwLjAwNTQwNSwgMC4wMDU0MDYiLCBcCi0gICAgICAgICAgIjAuMDA1NTIsIDAuMDA1NDQ4LCAwLjAwNTQ1MywgMC4wMDU0NTcsIDAuMDA1NDYxLCAwLjAwNTQ2MywgMC4wMDU0NjMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDM3NjYsIDAuMDAzODAxLCAwLjAwMzgxMSwgMC4wMDM4MTcsIDAuMDAzODIsIDAuMDAzODIyLCAwLjAwMzgyNCIsIFwKLSAgICAgICAgICAiMC4wMDM3NTUsIDAuMDAzNzkzLCAwLjAwMzgwNCwgMC4wMDM4MSwgMC4wMDM4MTQsIDAuMDAzODE2LCAwLjAwMzgxOCIsIFwKLSAgICAgICAgICAiMC4wMDM3NjQsIDAuMDAzNzkzLCAwLjAwMzgwNCwgMC4wMDM4MTMsIDAuMDAzODE2LCAwLjAwMzgxOCwgMC4wMDM4MiIsIFwKLSAgICAgICAgICAiMC4wMDM3OTUsIDAuMDAzODE2LCAwLjAwMzgyOCwgMC4wMDM4MzUsIDAuMDAzODM5LCAwLjAwMzg0MiwgMC4wMDM4NDMiLCBcCi0gICAgICAgICAgIjAuMDAzODM4LCAwLjAwMzg0NiwgMC4wMDM4NTgsIDAuMDAzODY1LCAwLjAwMzg2OSwgMC4wMDM4NzIsIDAuMDAzODc0IiwgXAotICAgICAgICAgICIwLjAwMzk2NiwgMC4wMDM5MTQsIDAuMDAzOTIzLCAwLjAwMzkyOSwgMC4wMDM5MzIsIDAuMDAzOTM1LCAwLjAwMzkzNiIsIFwKLSAgICAgICAgICAiMC4wMDQwMjUsIDAuMDAzOTc5LCAwLjAwMzk4NCwgMC4wMDM5ODksIDAuMDAzOTkzLCAwLjAwMzk5NCwgMC4wMDM5OTYiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IEFEREZYNCAqCi0gKiAtLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKEFEREZYNCkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAxLjYzNjY5OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDM2NDY0MzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDM2MTgwODsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDM2NDY0MzsKLSAgfQotICBwaW4oQikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAzNDQxODM7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAzNDEzMTg7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAzNDQxODM7Ci0gIH0KLSAgcGluKENJKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDI3MjAyOTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDI2OTgwNTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDI3MjAyOTsKLSAgfQotICBwaW4oQ08pICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMS4zNjU0NTsKLSAgICBmdW5jdGlvbiA6ICIoKChBIEIpKyhCIENJKSkrKENJIEEpKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjI5ODcsIDAuMTI1MTg4LCAwLjE4MDcyNCwgMC4yMjAwNjYsIDAuMjgyODk2LCAwLjMzNzk0MiwgMC40MTYzNjgiLCBcCi0gICAgICAgICAgIjAuMDY5OTg1LCAwLjEzMjEyLCAwLjE4NzY1NywgMC4yMjcwMDMsIDAuMjg5OTQyLCAwLjM0NDkzNSwgMC40MjMwMTUiLCBcCi0gICAgICAgICAgIjAuMDc4MDI3LCAwLjE0MDEwMiwgMC4xOTU2NjcsIDAuMjM0OTk4LCAwLjI5ODAzNSwgMC4zNTI4OTUsIDAuNDMwOTc3IiwgXAotICAgICAgICAgICIwLjA4NTM2NSwgMC4xNDc1NjEsIDAuMjAzMTMsIDAuMjQyNDY2LCAwLjMwNTMyMSwgMC4zNjAzNzgsIDAuNDM4NDUiLCBcCi0gICAgICAgICAgIjAuMDkyMjIzLCAwLjE1NDY2NCwgMC4yMTAyMTIsIDAuMjQ5NTQ2LCAwLjMxMjMzLCAwLjM2NzQwNCwgMC40NDU3NDYiLCBcCi0gICAgICAgICAgIjAuMTAxNzQyLCAwLjE2NDgyNCwgMC4yMjAzNDYsIDAuMjU5NjczLCAwLjMyMjQ2MywgMC4zNzc1MTgsIDAuNDU1OTEiLCBcCi0gICAgICAgICAgIjAuMTA5MzMxLCAwLjE3MjY3LCAwLjIyODIxNiwgMC4yNjc0NjcsIDAuMzMwNDQzLCAwLjM4NTc1MiwgMC40NjQxNTQiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzQ1MjIsIDAuMTQ1ODA3LCAwLjI1ODUyMiwgMC4zMzkwMDQsIDAuNDcxMzM0LCAwLjU4NjkzLCAwLjc1MTMwNyIsIFwKLSAgICAgICAgICAiMC4wMzQ1MjQsIDAuMTQ1NzEzLCAwLjI1ODcxMSwgMC4zMzkwMjIsIDAuNDcxMzMxLCAwLjU4Njk0LCAwLjc1MTMzMyIsIFwKLSAgICAgICAgICAiMC4wMzQ0ODQsIDAuMTQ1OTU3LCAwLjI1ODk5MSwgMC4zMzg5NywgMC40NzEzNDIsIDAuNTg3MTg0LCAwLjc1MTUxMyIsIFwKLSAgICAgICAgICAiMC4wMzUxNjMsIDAuMTQ2Mjc4LCAwLjI1ODU4LCAwLjMzOTA3NywgMC40NzEzNjksIDAuNTg3MjIyLCAwLjc1MTM2OSIsIFwKLSAgICAgICAgICAiMC4wMzYsIDAuMTQ2MTM3LCAwLjI1ODk1NCwgMC4zMzkxNzQsIDAuNDcxNDA4LCAwLjU4NzIwNSwgMC43NTE1MzQiLCBcCi0gICAgICAgICAgIjAuMDM3NTgzLCAwLjE0NzQ0MywgMC4yNTkyNzcsIDAuMzM5NTM3LCAwLjQ3MTU2NywgMC41ODczMSwgMC43NTE1OTUiLCBcCi0gICAgICAgICAgIjAuMDM4ODYyLCAwLjE0ODQsIDAuMjU5NjY5LCAwLjM0MDkyOSwgMC40NzE2OTksIDAuNTg3NTIzLCAwLjc1MjYzNCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2Njk1MiwgMC4xMjkwMTcsIDAuMTgzNTc0LCAwLjIyMjE3NCwgMC4yODQwMzQsIDAuMzM3OTM4LCAwLjQxNTM4NCIsIFwKLSAgICAgICAgICAiMC4wNzM3NzgsIDAuMTM1NzgxLCAwLjE5MDM0MSwgMC4yMjg5NTEsIDAuMjkwNzYzLCAwLjM0NDY2MiwgMC40MjIxMzIiLCBcCi0gICAgICAgICAgIjAuMDgxMDY5LCAwLjE0MzA1MiwgMC4xOTc2MjgsIDAuMjM2MjQ4LCAwLjI5Nzk0OSwgMC4zNTIwNzksIDAuNDI5MTQyIiwgXAotICAgICAgICAgICIwLjA4Nzg0LCAwLjE0OTg4MSwgMC4yMDQ0NTUsIDAuMjQzMTE2LCAwLjMwNDcwNiwgMC4zNTg4NjUsIDAuNDM2MzkiLCBcCi0gICAgICAgICAgIjAuMDkzOTk0LCAwLjE1NjI1OSwgMC4yMTA5MDMsIDAuMjQ5NTU2LCAwLjMxMTUxLCAwLjM2NTM0NiwgMC40NDI2OTEiLCBcCi0gICAgICAgICAgIjAuMTAyNSwgMC4xNjUzMzMsIDAuMjE5OTQ5LCAwLjI1ODU0LCAwLjMyMDQzNywgMC4zNzQyMzIsIDAuNDUxODc5IiwgXAotICAgICAgICAgICIwLjEwODY3OSwgMC4xNzIxNDksIDAuMjI2ODUsIDAuMjY1NDQ3LCAwLjMyNzI5OCwgMC4zODEzNTcsIDAuNDU4NjU0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM0NTgyLCAwLjE0MTk1NSwgMC4yNTI3NTIsIDAuMzMxNDk4LCAwLjQ1ODM0NCwgMC41Njg5MjEsIDAuNzI3MTQxIiwgXAotICAgICAgICAgICIwLjAzNDU2NSwgMC4xNDE5OCwgMC4yNTI1ODQsIDAuMzMxNDk0LCAwLjQ1ODMzMywgMC41NjkwMTEsIDAuNzI2OTc4IiwgXAotICAgICAgICAgICIwLjAzNDM0NiwgMC4xNDE5MTksIDAuMjUyNzY2LCAwLjMzMTQ3MiwgMC40NTgzMjcsIDAuNTY5MDIyLCAwLjcyNzM2NSIsIFwKLSAgICAgICAgICAiMC4wMzQ5NzQsIDAuMTQyMTc3LCAwLjI1MjkyNiwgMC4zMzE1MzEsIDAuNDU4MzQzLCAwLjU2ODkwOCwgMC43Mjc4NzkiLCBcCi0gICAgICAgICAgIjAuMDM2MzU0LCAwLjE0MjQxNCwgMC4yNTI3NjEsIDAuMzMxMzUsIDAuNDU4Mzg4LCAwLjU2ODk0MiwgMC43MjcwMDQiLCBcCi0gICAgICAgICAgIjAuMDM3NDIxLCAwLjE0MzY4OSwgMC4yNTM2MDEsIDAuMzMxMzk3LCAwLjQ1ODUxMiwgMC41Njk0NDgsIDAuNzI3Njk0IiwgXAotICAgICAgICAgICIwLjAzODMzLCAwLjE0NDMwOCwgMC4yNTM5MzYsIDAuMzMxODQ3LCAwLjQ1ODU1LCAwLjU2ODkzOSwgMC43Mjc5NjkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjMwMjEsIDAuMTI0OTA5LCAwLjE4MDQ3OSwgMC4yMTk4MzcsIDAuMjgyOTk3LCAwLjMzNzgwOCwgMC40MTYwOTYiLCBcCi0gICAgICAgICAgIjAuMDcwNjEsIDAuMTMyNDI1LCAwLjE4Nzk5OCwgMC4yMjczNTQsIDAuMjkwNDIsIDAuMzQ1Mzg0LCAwLjQyMzkzNiIsIFwKLSAgICAgICAgICAiMC4wODA0MDksIDAuMTQyMTQ2LCAwLjE5NzcyMywgMC4yMzcwMzEsIDAuMzAwMTU0LCAwLjM1NTI1NSwgMC40MzM3MzkiLCBcCi0gICAgICAgICAgIjAuMDkwMTE5LCAwLjE1MTg1OCwgMC4yMDc0MzcsIDAuMjQ2Nzk3LCAwLjMwOTg4NCwgMC4zNjQ3NzUsIDAuNDQzNzA1IiwgXAotICAgICAgICAgICIwLjA5OTE0MywgMC4xNjA5MDksIDAuMjE2NDYzLCAwLjI1NTgyMywgMC4zMTg0NzIsIDAuMzczODcxLCAwLjQ1MjQwMiIsIFwKLSAgICAgICAgICAiMC4xMTExMzEsIDAuMTczODQ1LCAwLjIyOTM5NiwgMC4yNjg2NDUsIDAuMzMxNzE5LCAwLjM4Njg0NCwgMC40NjUzNDMiLCBcCi0gICAgICAgICAgIjAuMTIwMTM5LCAwLjE4MzYyNywgMC4yMzkyMSwgMC4yNzg0NTEsIDAuMzQxNTc3LCAwLjM5NjU3OCwgMC40NzQ4MyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzNDQ1MywgMC4xNDUyODEsIDAuMjU4MjU5LCAwLjMzOTg5OSwgMC40NzA5NjEsIDAuNTg3MTY3LCAwLjc1MTIzNSIsIFwKLSAgICAgICAgICAiMC4wMzQzOTUsIDAuMTQ1MzI0LCAwLjI1OTA5NCwgMC4zMzg5NjIsIDAuNDcxMzc5LCAwLjU4NzIxMywgMC43NTIxNzYiLCBcCi0gICAgICAgICAgIjAuMDM0Mjc5LCAwLjE0NDg0NiwgMC4yNTg0MzMsIDAuMzM4OTg5LCAwLjQ3MSwgMC41ODY2OTEsIDAuNzUyMzk2IiwgXAotICAgICAgICAgICIwLjAzNTEzMywgMC4xNDU4ODIsIDAuMjU4MzYzLCAwLjMzOTkyNywgMC40NzEyMjksIDAuNTg3MTYsIDAuNzUxNDQ2IiwgXAotICAgICAgICAgICIwLjAzNjA1OCwgMC4xNDYyNTQsIDAuMjU5MTE1LCAwLjM0MDE2LCAwLjQ3MTI2NiwgMC41ODczMSwgMC43NTIyMTkiLCBcCi0gICAgICAgICAgIjAuMDM4NDg3LCAwLjE0Nzg4MiwgMC4yNTgyNTEsIDAuMzQwNTkzLCAwLjQ3MTYyNiwgMC41ODczOTEsIDAuNzUyMjM2IiwgXAotICAgICAgICAgICIwLjA0MDQxNywgMC4xNDgyNzQsIDAuMjYwMTg4LCAwLjM0MTAwNSwgMC40NzE1NywgMC41ODc0NTQsIDAuNzUxNjc1Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY1NzEzLCAwLjEyNzU3MSwgMC4xODIyMDQsIDAuMjIwNzgzLCAwLjI4Mjk2OCwgMC4zMzcxOTIsIDAuNDE0NTAzIiwgXAotICAgICAgICAgICIwLjA3MzE0NiwgMC4xMzQ5MzEsIDAuMTg5NTQ4LCAwLjIyODI1MiwgMC4yOTAxMzEsIDAuMzQzOTYzLCAwLjQyMDcyMiIsIFwKLSAgICAgICAgICAiMC4wODI5MTQsIDAuMTQ0NjgsIDAuMTk5MzI2LCAwLjIzODAxNCwgMC4yOTk3NDIsIDAuMzUzNzMxLCAwLjQzMTYyMyIsIFwKLSAgICAgICAgICAiMC4wOTI1NjQsIDAuMTU0MzIyLCAwLjIwODkwMywgMC4yNDc1OCwgMC4zMDkzNzksIDAuMzYzMzczLCAwLjQ0MTIxNiIsIFwKLSAgICAgICAgICAiMC4xMDE0NjMsIDAuMTYzMzU4LCAwLjIxNzk2NSwgMC4yNTY1NjYsIDAuMzE4NTM0LCAwLjM3MjQyMywgMC40NDk2MDQiLCBcCi0gICAgICAgICAgIjAuMTEzMzU3LCAwLjE3NTc4MywgMC4yMzAzNDcsIDAuMjY4OTUsIDAuMzMwNzkxLCAwLjM4NDgxMywgMC40NjE5MjUiLCBcCi0gICAgICAgICAgIjAuMTIyMDY2LCAwLjE4NTExNywgMC4yMzk4MDMsIDAuMjc4Mzk4LCAwLjM0MDEzLCAwLjM5NDE3OSwgMC40NzIwOTEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzUxNzYsIDAuMTQyNjE4LCAwLjI1MzM4NSwgMC4zMzIyMTksIDAuNDU4NDc4LCAwLjU2ODQ3MSwgMC43Mjc4NzYiLCBcCi0gICAgICAgICAgIjAuMDM1MTcsIDAuMTQyNjY5LCAwLjI1MzQxNiwgMC4zMzIxOTIsIDAuNDU4NDY4LCAwLjU2ODk5NCwgMC43MjgzOTIiLCBcCi0gICAgICAgICAgIjAuMDM0NzgsIDAuMTQyNzM5LCAwLjI1MzQxNSwgMC4zMzE2OTYsIDAuNDU4NDE5LCAwLjU2ODY2NiwgMC43Mjc5NjMiLCBcCi0gICAgICAgICAgIjAuMDM1NTA5LCAwLjE0MjQzOCwgMC4yNTM1ODIsIDAuMzMxOTk3LCAwLjQ1ODM3MywgMC41Njg5MTksIDAuNzI3MjQzIiwgXAotICAgICAgICAgICIwLjAzNjc4NywgMC4xNDM0ODgsIDAuMjUzOTcsIDAuMzMyMjE3LCAwLjQ1ODU2MSwgMC41NjkwMzksIDAuNzI3MTQzIiwgXAotICAgICAgICAgICIwLjAzODQ1MiwgMC4xNDU0MjQsIDAuMjU0Nzg5LCAwLjMzMjk4MywgMC40NTg5MDYsIDAuNTY5MjMyLCAwLjcyNzYwNCIsIFwKLSAgICAgICAgICAiMC4wMzk3NjMsIDAuMTQ1NTQ4LCAwLjI1NTA1MSwgMC4zMzI2OTEsIDAuNDU5MDk0LCAwLjU2OTA5OCwgMC43MjcwMDMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0kiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU5NjA2LCAwLjEyMTczMywgMC4xNzcyOTMsIDAuMjE2NjIxLCAwLjI3OTM4MSwgMC4zMzQ1NTQsIDAuNDEyNjUzIiwgXAotICAgICAgICAgICIwLjA2NzMxNSwgMC4xMjk0NzEsIDAuMTg0OTk0LCAwLjIyNDMzNywgMC4yODczMTQsIDAuMzQyMjkxLCAwLjQyMDM3MiIsIFwKLSAgICAgICAgICAiMC4wNzczMzksIDAuMTM5Mzg2LCAwLjE5NDkzMywgMC4yMzQyODUsIDAuMjk3MTMxLCAwLjM1MjE2OCwgMC40MzAzNzkiLCBcCi0gICAgICAgICAgIjAuMDg2OTU2LCAwLjE0OTExNiwgMC4yMDQ2MzgsIDAuMjQzOTg1LCAwLjMwNjgxMiwgMC4zNjE4NzEsIDAuNDQwMTA0IiwgXAotICAgICAgICAgICIwLjA5NTcwMiwgMC4xNTgxMjcsIDAuMjEzNjUzLCAwLjI1Mjk5NSwgMC4zMTU4MTIsIDAuMzcwODY4LCAwLjQ0OTIxNCIsIFwKLSAgICAgICAgICAiMC4xMDczNTIsIDAuMTcwNTk4LCAwLjIyNjA4MywgMC4yNjUzNzYsIDAuMzI4MjMyLCAwLjM4MzgxOCwgMC40NjE4NDgiLCBcCi0gICAgICAgICAgIjAuMTE2MDU2LCAwLjE4MDE2MSwgMC4yMzU2NiwgMC4yNzUwMjIsIDAuMzM3NzcsIDAuMzkyODI0LCAwLjQ3MDkxOCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzNDU2NiwgMC4xNDYxNzcsIDAuMjU4NTIsIDAuMzM5MDQzLCAwLjQ3MTI5MiwgMC41ODY5MDEsIDAuNzUxMTI4IiwgXAotICAgICAgICAgICIwLjAzNDQwNywgMC4xNDU3NDUsIDAuMjU4ODgxLCAwLjMzOTA1NCwgMC40NzEzMDMsIDAuNTg2ODY5LCAwLjc1MTE1MyIsIFwKLSAgICAgICAgICAiMC4wMzQ0NTksIDAuMTQ2MTMyLCAwLjI1ODYxMywgMC4zMzkwMjksIDAuNDcxMywgMC41ODY4NzUsIDAuNzUxMzYyIiwgXAotICAgICAgICAgICIwLjAzNTM5MywgMC4xNDU5MjMsIDAuMjU4ODEsIDAuMzM5MTMzLCAwLjQ3MTMzOSwgMC41ODY4NzcsIDAuNzUxMzMzIiwgXAotICAgICAgICAgICIwLjAzNzAwNSwgMC4xNDY4OTMsIDAuMjU5MDA3LCAwLjMzOTI1NiwgMC40NzEzNywgMC41ODY4OTIsIDAuNzUxMTUxIiwgXAotICAgICAgICAgICIwLjAzOTQxLCAwLjE0ODI0NiwgMC4yNTk1MjYsIDAuMzQwMjg3LCAwLjQ3MTU3NCwgMC41ODY3OTUsIDAuNzUxNjc5IiwgXAotICAgICAgICAgICIwLjA0MTQ1NywgMC4xNDkzMTgsIDAuMjYwMTE5LCAwLjM0MTAzNywgMC40NzE3NTgsIDAuNTg2OTc1LCAwLjc1MTI5OSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2MjM2NCwgMC4xMjQzNjIsIDAuMTc4OTkzLCAwLjIxNzYyLCAwLjI3OTMwMiwgMC4zMzMxOTMsIDAuNDEwOTg2IiwgXAotICAgICAgICAgICIwLjA2OTkzMiwgMC4xMzE5NDEsIDAuMTg2NTczLCAwLjIyNTIwNiwgMC4yODY4NjUsIDAuMzQwODQ0LCAwLjQxODQ3IiwgXAotICAgICAgICAgICIwLjA3OTgzNywgMC4xNDE4MTIsIDAuMTk2NDM1LCAwLjIzNTA2OCwgMC4yOTY5NjMsIDAuMzUwODAxLCAwLjQyODMyIiwgXAotICAgICAgICAgICIwLjA4OTM4OCwgMC4xNTEzMDcsIDAuMjA1ODkxLCAwLjI0NDU0MSwgMC4zMDYxMTksIDAuMzYwMjYzLCAwLjQzNzc1NyIsIFwKLSAgICAgICAgICAiMC4wOTgwNiwgMC4xNTk5NTMsIDAuMjE0NTAzLCAwLjI1MzE1MSwgMC4zMTQ3NjMsIDAuMzY4ODIxLCAwLjQ0NjQzOCIsIFwKLSAgICAgICAgICAiMC4xMDkzMTcsIDAuMTcyMjYxLCAwLjIyNjgxNCwgMC4yNjU0MDEsIDAuMzI3MjA4LCAwLjM4MTA4NSwgMC40NTg2ODMiLCBcCi0gICAgICAgICAgIjAuMTE4MTA0LCAwLjE4MTQ4MywgMC4yMzYxNDUsIDAuMjc0NzQxLCAwLjMzNjcyLCAwLjM5MDQ2NSwgMC40Njc1OTUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzU3NTksIDAuMTQzMDA5LCAwLjI1MzU5NywgMC4zMzE5NzEsIDAuNDU4MTUsIDAuNTY4MjIzLCAwLjcyNzMxMiIsIFwKLSAgICAgICAgICAiMC4wMzU3MzYsIDAuMTQyOTg1LCAwLjI1MzY1NSwgMC4zMzE5ODgsIDAuNDU4MzQ0LCAwLjU2ODU2NCwgMC43Mjc4MTUiLCBcCi0gICAgICAgICAgIjAuMDM1NjksIDAuMTQyOTgxLCAwLjI1MzYyMiwgMC4zMzIwMDUsIDAuNDU4MTI3LCAwLjU2ODY5LCAwLjcyNzgzNCIsIFwKLSAgICAgICAgICAiMC4wMzY0MiwgMC4xNDMxNDEsIDAuMjUzNzIxLCAwLjMzMjA0MiwgMC40NTgzOSwgMC41Njg4MDksIDAuNzI3ODg5IiwgXAotICAgICAgICAgICIwLjAzNzY1OCwgMC4xNDMzMjMsIDAuMjUzOTI5LCAwLjMzMjE4NSwgMC40NTg0NTQsIDAuNTY4NzM1LCAwLjcyNzkwOSIsIFwKLSAgICAgICAgICAiMC4wNDAwOTIsIDAuMTQ0Nzc5LCAwLjI1NDQ5MiwgMC4zMzI2MDIsIDAuNDU4MjMyLCAwLjU2ODgyOSwgMC43Mjc4MjkiLCBcCi0gICAgICAgICAgIjAuMDQyMDE1LCAwLjE0NjE0NiwgMC4yNTQ5MTgsIDAuMzMxOTI4LCAwLjQ1ODQ3MiwgMC41Njg0OCwgMC43MjgxMDgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjUyOCwgMC4wMDY1MzYsIDAuMDA2NTY2LCAwLjAwNjU3NywgMC4wMDY1OTEsIDAuMDA2NTksIDAuMDA2NTk4IiwgXAotICAgICAgICAgICIwLjAwNjQ3LCAwLjAwNjQ4OCwgMC4wMDY1MiwgMC4wMDY1MzIsIDAuMDA2NTQ2LCAwLjAwNjU1MiwgMC4wMDY1NTUiLCBcCi0gICAgICAgICAgIjAuMDA2NDk3LCAwLjAwNjQ4NSwgMC4wMDY1MTYsIDAuMDA2NTI4LCAwLjAwNjU0LCAwLjAwNjU0NiwgMC4wMDY1NTIiLCBcCi0gICAgICAgICAgIjAuMDA2NTY5LCAwLjAwNjUwNywgMC4wMDY1MzcsIDAuMDA2NTQ4LCAwLjAwNjU1OCwgMC4wMDY1NjUsIDAuMDA2NTcxIiwgXAotICAgICAgICAgICIwLjAwNjYzOSwgMC4wMDY1NDgsIDAuMDA2NTcyLCAwLjAwNjU4MywgMC4wMDY1OTUsIDAuMDA2NiwgMC4wMDY2MDYiLCBcCi0gICAgICAgICAgIjAuMDA2OCwgMC4wMDY2MjQsIDAuMDA2NjQyLCAwLjAwNjY1MSwgMC4wMDY2NjIsIDAuMDA2NjY2LCAwLjAwNjY3MiIsIFwKLSAgICAgICAgICAiMC4wMDY5NTMsIDAuMDA2NzE3LCAwLjAwNjcxOSwgMC4wMDY3MjcsIDAuMDA2NzM0LCAwLjAwNjczOSwgMC4wMDY3NDQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwOTY2OCwgMC4wMDk2OCwgMC4wMDk3MTMsIDAuMDA5NzI1LCAwLjAwOTczNywgMC4wMDk3NDMsIDAuMDA5NzQ5IiwgXAotICAgICAgICAgICIwLjAwOTY0NCwgMC4wMDk2NTUsIDAuMDA5Njg5LCAwLjAwOTcwMiwgMC4wMDk3MTQsIDAuMDA5NzIsIDAuMDA5NzI1IiwgXAotICAgICAgICAgICIwLjAwOTY1NSwgMC4wMDk2NTIsIDAuMDA5Njg0LCAwLjAwOTY5OCwgMC4wMDk3MDksIDAuMDA5NzE3LCAwLjAwOTcyMiIsIFwKLSAgICAgICAgICAiMC4wMDk2NzQsIDAuMDA5NjU3LCAwLjAwOTY5MSwgMC4wMDk3MDYsIDAuMDA5NzE4LCAwLjAwOTcyNiwgMC4wMDk3MzMiLCBcCi0gICAgICAgICAgIjAuMDA5NzQ4LCAwLjAwOTY4OSwgMC4wMDk3MiwgMC4wMDk3MzUsIDAuMDA5NzQ2LCAwLjAwOTc1NCwgMC4wMDk3NiIsIFwKLSAgICAgICAgICAiMC4wMDk5MDcsIDAuMDA5NzcsIDAuMDA5NzkyLCAwLjAwOTgwMywgMC4wMDk4MTMsIDAuMDA5ODIsIDAuMDA5ODI3IiwgXAotICAgICAgICAgICIwLjAxMDAyOSwgMC4wMDk4NCwgMC4wMDk4NTIsIDAuMDA5ODY1LCAwLjAwOTg3NywgMC4wMDk4ODMsIDAuMDA5ODg5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDY4MjMsIDAuMDA2ODM1LCAwLjAwNjg2MywgMC4wMDY4NzIsIDAuMDA2ODgyLCAwLjAwNjg4NCwgMC4wMDY4OSIsIFwKLSAgICAgICAgICAiMC4wMDY3NDQsIDAuMDA2NzcsIDAuMDA2ODAyLCAwLjAwNjgxNCwgMC4wMDY4MjQsIDAuMDA2ODI4LCAwLjAwNjgzNSIsIFwKLSAgICAgICAgICAiMC4wMDY3NjMsIDAuMDA2NzU5LCAwLjAwNjc5MSwgMC4wMDY4MDQsIDAuMDA2ODE0LCAwLjAwNjgyMSwgMC4wMDY4MjciLCBcCi0gICAgICAgICAgIjAuMDA2ODYyLCAwLjAwNjc5MywgMC4wMDY4MTgsIDAuMDA2ODI4LCAwLjAwNjgzOSwgMC4wMDY4NDMsIDAuMDA2ODQ5IiwgXAotICAgICAgICAgICIwLjAwNjkxNywgMC4wMDY4MzQsIDAuMDA2ODU2LCAwLjAwNjg2NiwgMC4wMDY4NzUsIDAuMDA2ODgxLCAwLjAwNjg4NiIsIFwKLSAgICAgICAgICAiMC4wMDcwNCwgMC4wMDY4OTgsIDAuMDA2OTIsIDAuMDA2OTMsIDAuMDA2OTQxLCAwLjAwNjk0OCwgMC4wMDY5NTQiLCBcCi0gICAgICAgICAgIjAuMDA3MzM1LCAwLjAwNjk5NywgMC4wMDcwNjMsIDAuMDA3MDY1LCAwLjAwNzAzMywgMC4wMDcwMzksIDAuMDA3MDQ0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDk0MjUsIDAuMDA5NDUxLCAwLjAwOTQ4MSwgMC4wMDk0OTMsIDAuMDA5NTA0LCAwLjAwOTUxMywgMC4wMDk1MTYiLCBcCi0gICAgICAgICAgIjAuMDA5MzgxLCAwLjAwOTQxMywgMC4wMDk0NDgsIDAuMDA5NDU2LCAwLjAwOTQ2OCwgMC4wMDk0NzQsIDAuMDA5NDgiLCBcCi0gICAgICAgICAgIjAuMDA5MzYsIDAuMDA5Mzc1LCAwLjAwOTQwNywgMC4wMDk0MiwgMC4wMDk0MzIsIDAuMDA5NDM4LCAwLjAwOTQ0NSIsIFwKLSAgICAgICAgICAiMC4wMDkzOSwgMC4wMDkzNjUsIDAuMDA5Mzk2LCAwLjAwOTQwOCwgMC4wMDk0MiwgMC4wMDk0MjcsIDAuMDA5NDMzIiwgXAotICAgICAgICAgICIwLjAwOTU2OCwgMC4wMDk0MjgsIDAuMDA5NDQ5LCAwLjAwOTQ1OSwgMC4wMDk0NzMsIDAuMDA5NDc1LCAwLjAwOTQ4MiIsIFwKLSAgICAgICAgICAiMC4wMDk3ODMsIDAuMDA5NTMyLCAwLjAwOTU0MiwgMC4wMDk1NDgsIDAuMDA5NTU3LCAwLjAwOTU2MSwgMC4wMDk1NjYiLCBcCi0gICAgICAgICAgIjAuMDA5ODM5LCAwLjAwOTYwMiwgMC4wMDk2MDYsIDAuMDA5NjE3LCAwLjAwOTYyNywgMC4wMDk2MywgMC4wMDk2MzciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDY4MTMsIDAuMDA2ODQ3LCAwLjAwNjg3OCwgMC4wMDY4ODksIDAuMDA2OTAyLCAwLjAwNjkwNywgMC4wMDY5MTIiLCBcCi0gICAgICAgICAgIjAuMDA2NzgzLCAwLjAwNjgyOSwgMC4wMDY4NjMsIDAuMDA2ODc2LCAwLjAwNjg4OCwgMC4wMDY4OTUsIDAuMDA2ODk5IiwgXAotICAgICAgICAgICIwLjAwNjc5OCwgMC4wMDY4MjEsIDAuMDA2ODU3LCAwLjAwNjg3MSwgMC4wMDY4ODQsIDAuMDA2ODkxLCAwLjAwNjg5NyIsIFwKLSAgICAgICAgICAiMC4wMDY4ODEsIDAuMDA2ODQ5LCAwLjAwNjg4MiwgMC4wMDY4OTYsIDAuMDA2OTEsIDAuMDA2OTE1LCAwLjAwNjkyMiIsIFwKLSAgICAgICAgICAiMC4wMDY5NzgsIDAuMDA2ODk4LCAwLjAwNjkyNywgMC4wMDY5MzksIDAuMDA2OTU0LCAwLjAwNjk2MSwgMC4wMDY5NjQiLCBcCi0gICAgICAgICAgIjAuMDA3MTQ4LCAwLjAwNjk5NiwgMC4wMDcwMTgsIDAuMDA3MDI4LCAwLjAwNzA0LCAwLjAwNzA0NywgMC4wMDcwNTQiLCBcCi0gICAgICAgICAgIjAuMDA3MzE4LCAwLjAwNzEwNywgMC4wMDcxMTYsIDAuMDA3MTIyLCAwLjAwNzEzMiwgMC4wMDcxMzcsIDAuMDA3MTQzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDkwMzUsIDAuMDA5MDM2LCAwLjAwOTA2NSwgMC4wMDkwNzksIDAuMDA5MDg2LCAwLjAwOTA5NSwgMC4wMDkxMDMiLCBcCi0gICAgICAgICAgIjAuMDA5MDMyLCAwLjAwOTAzNSwgMC4wMDkwNjYsIDAuMDA5MDgxLCAwLjAwOTA5MSwgMC4wMDkxLCAwLjAwOTEwNCIsIFwKLSAgICAgICAgICAiMC4wMDkwNjUsIDAuMDA5MDQ4LCAwLjAwOTA4MSwgMC4wMDkwOTUsIDAuMDA5MTEsIDAuMDA5MTE4LCAwLjAwOTEyMyIsIFwKLSAgICAgICAgICAiMC4wMDkxNTEsIDAuMDA5MDg5LCAwLjAwOTExOSwgMC4wMDkxMzMsIDAuMDA5MTQ3LCAwLjAwOTE1MywgMC4wMDkxNjEiLCBcCi0gICAgICAgICAgIjAuMDA5MjU0LCAwLjAwOTEzOCwgMC4wMDkxNjUsIDAuMDA5MTc4LCAwLjAwOTE5MiwgMC4wMDkyMDEsIDAuMDA5MjA3IiwgXAotICAgICAgICAgICIwLjAwOTQzOCwgMC4wMDkyNDgsIDAuMDA5MjYzLCAwLjAwOTI3MiwgMC4wMDkyODMsIDAuMDA5Mjg5LCAwLjAwOTI5NiIsIFwKLSAgICAgICAgICAiMC4wMDk1OTcsIDAuMDA5MzM2LCAwLjAwOTM0MywgMC4wMDkzNSwgMC4wMDkzNTgsIDAuMDA5MzYzLCAwLjAwOTM3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDEuMjQ2OTU7Ci0gICAgZnVuY3Rpb24gOiAiKChBXkIpXkNJKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzQ2NzQsIDAuMTM4MTgxLCAwLjE5MzgzOCwgMC4yMzMyMjYsIDAuMjk2MiwgMC4zNTEzMDQsIDAuNDI5OTExIiwgXAotICAgICAgICAgICIwLjA3OTgyMywgMC4xNDMzMzgsIDAuMTk4OTk3LCAwLjIzODQwMSwgMC4zMDEzNzksIDAuMzU2NDcyLCAwLjQzNTA2OSIsIFwKLSAgICAgICAgICAiMC4wODU5NDgsIDAuMTQ5NDIxLCAwLjIwNTA2NywgMC4yNDQ0NiwgMC4zMDc0MzksIDAuMzYyNTAyLCAwLjQ0MTIyNiIsIFwKLSAgICAgICAgICAiMC4wOTE2ODksIDAuMTU1MjE0LCAwLjIxMDgzLCAwLjI1MDI0NCwgMC4zMTMyMjcsIDAuMzY4Mjk1LCAwLjQ0NjkyNCIsIFwKLSAgICAgICAgICAiMC4wOTc0MTIsIDAuMTYwOTc1LCAwLjIxNjU4OCwgMC4yNTYwMDIsIDAuMzE4OTc4LCAwLjM3NDAzMywgMC40NTI2NTgiLCBcCi0gICAgICAgICAgIjAuMTA1NTczLCAwLjE2OTQ2NiwgMC4yMjUxNjYsIDAuMjY0NTU0LCAwLjMyNzUxMSwgMC4zODI2MTIsIDAuNDYxMjAxIiwgXAotICAgICAgICAgICIwLjExMTY5OSwgMC4xNzYyMDUsIDAuMjMxOTU4LCAwLjI3MTMzOCwgMC4zMzQyNzMsIDAuMzg5MzcyLCAwLjQ2Nzk1MSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzNzAzNCwgMC4xNDcyNzQsIDAuMjYwMTM3LCAwLjM0MTc3NiwgMC40NzM5MTYsIDAuNTg5ODU3LCAwLjc1NTU0NCIsIFwKLSAgICAgICAgICAiMC4wMzY5NDEsIDAuMTQ3MjUxLCAwLjI2MDAyMywgMC4zNDE3NywgMC40NzM5MjEsIDAuNTg5ODEzLCAwLjc1NDYwNSIsIFwKLSAgICAgICAgICAiMC4wMzY4ODgsIDAuMTQ3MTc2LCAwLjI2MDA5OCwgMC4zNDE3NDUsIDAuNDczODksIDAuNTg5MDk4LCAwLjc1NDIwNCIsIFwKLSAgICAgICAgICAiMC4wMzcyMDksIDAuMTQ3MzEzLCAwLjI2MDAzOCwgMC4zNDIwMjcsIDAuNDczMzY2LCAwLjU4OTcxNiwgMC43NTQ1NDciLCBcCi0gICAgICAgICAgIjAuMDM3NTQxLCAwLjE0NzQ5NCwgMC4yNjAyMTksIDAuMzQyMTI2LCAwLjQ3Mzk3OSwgMC41ODk3MTMsIDAuNzU0NTM3IiwgXAotICAgICAgICAgICIwLjAzODU1NiwgMC4xNDgxOCwgMC4yNjA2NTcsIDAuMzQyMjIxLCAwLjQ3Mzg5NSwgMC41ODk4NDIsIDAuNzU1Mzg2IiwgXAotICAgICAgICAgICIwLjAzOTM3LCAwLjE0ODU4NiwgMC4yNjA5OTYsIDAuMzQyMzk4LCAwLjQ3NDIzLCAwLjU4OTg3OSwgMC43NTQ4MzYiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzk3MzgsIDAuMTQzNTg3LCAwLjE5ODU2LCAwLjIzNzI2NywgMC4yOTkwNzIsIDAuMzUzMDkzLCAwLjQzMDI4NyIsIFwKLSAgICAgICAgICAiMC4wODQ5OSwgMC4xNDg4NSwgMC4yMDM4MjcsIDAuMjQyNTM4LCAwLjMwNDM0MSwgMC4zNTgzNTksIDAuNDM1NTAyIiwgXAotICAgICAgICAgICIwLjA5MDM1NCwgMC4xNTQxODEsIDAuMjA5MTM5LCAwLjI0Nzg1LCAwLjMwOTY3OSwgMC4zNjM3MDEsIDAuNDQwODQ0IiwgXAotICAgICAgICAgICIwLjA5NTIyNiwgMC4xNTkwNiwgMC4yMTQwMTUsIDAuMjUyNzMsIDAuMzE0NTQ0LCAwLjM2ODU4MiwgMC40NDU3MjIiLCBcCi0gICAgICAgICAgIjAuMDk5OTg2LCAwLjE2MzgxNSwgMC4yMTg3OTIsIDAuMjU3NTA5LCAwLjMxOTMxNCwgMC4zNzMzNTUsIDAuNDUwNDk2IiwgXAotICAgICAgICAgICIwLjEwNjMxOSwgMC4xNzA3MjUsIDAuMjI1Nzg0LCAwLjI2NDQ4NSwgMC4zMjYyODcsIDAuMzgwMzExLCAwLjQ1NzQ3MyIsIFwKLSAgICAgICAgICAiMC4xMTE0MjksIDAuMTc2NDM4LCAwLjIzMTM3MiwgMC4yNzAwNzUsIDAuMzMxODU5LCAwLjM4NTg4OSwgMC40NjMwNTciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzc0NzIsIDAuMTQ0NTQ1LCAwLjI1MzExOSwgMC4zMzE2OTYsIDAuNDU5MDAxLCAwLjU3MDUzMywgMC43MzA1NjciLCBcCi0gICAgICAgICAgIjAuMDM3MzYsIDAuMTQ0NTEzLCAwLjI1MzA5NiwgMC4zMzE4MTgsIDAuNDU4OTcyLCAwLjU2OTk2LCAwLjcyOTYxNSIsIFwKLSAgICAgICAgICAiMC4wMzcyNywgMC4xNDQ0NDYsIDAuMjUzMDc2LCAwLjMzMTk4NywgMC40NTg5OTYsIDAuNTcwNjAzLCAwLjczMDQyMiIsIFwKLSAgICAgICAgICAiMC4wMzc1MiwgMC4xNDQ1ODMsIDAuMjUzMTM2LCAwLjMzMTgxOSwgMC40NTgzNzMsIDAuNTcwNjM3LCAwLjczMDQ0MiIsIFwKLSAgICAgICAgICAiMC4wMzc5MzIsIDAuMTQ0Nzc3LCAwLjI1MzMyNywgMC4zMzIxMTUsIDAuNDU5MDE2LCAwLjU3MDY3MSwgMC43MzA0NjkiLCBcCi0gICAgICAgICAgIjAuMDM5MDg2LCAwLjE0NTQ1MywgMC4yNTM2NzcsIDAuMzMyMDg3LCAwLjQ1ODc2NSwgMC41NzAxMTIsIDAuNzMwNTc4IiwgXAotICAgICAgICAgICIwLjAzOTkzNiwgMC4xNDYzMzMsIDAuMjU0MDk0LCAwLjMzMjQ0MywgMC40NTk0NDYsIDAuNTY5OTU0LCAwLjczMDY4MSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExMTU2NywgMC4xNjkyNjYsIDAuMjI0MTY5LCAwLjI2MzQyMiwgMC4zMjYyMTIsIDAuMzgxMjAyLCAwLjQ1OTgwNCIsIFwKLSAgICAgICAgICAiMC4xMTgzMTgsIDAuMTc1OTk0LCAwLjIzMDkwOSwgMC4yNzAxNjUsIDAuMzMyOTgxLCAwLjM4Nzk0LCAwLjQ2NjU0IiwgXAotICAgICAgICAgICIwLjEyNTU1MywgMC4xODMyMjQsIDAuMjM4MTg1LCAwLjI3NzQzNiwgMC4zNDAyNDMsIDAuMzk1MjI2LCAwLjQ3Mzc2MSIsIFwKLSAgICAgICAgICAiMC4xMzIzNjUsIDAuMTkwMDExLCAwLjI0NDkwOCwgMC4yODQxNTgsIDAuMzQ2OTcsIDAuNDAxOTUyLCAwLjQ4MDU2OCIsIFwKLSAgICAgICAgICAiMC4xMzg3MDEsIDAuMTk2MzU5LCAwLjI1MTI0MiwgMC4yOTA0NzgsIDAuMzUzMzQ0LCAwLjQwODMwMSwgMC40ODY4ODgiLCBcCi0gICAgICAgICAgIjAuMTQ3NTU2LCAwLjIwNTA5MiwgMC4yNTk5OTMsIDAuMjk5MjYxLCAwLjM2MjAyMiwgMC40MTcwMDIsIDAuNDk1NjIzIiwgXAotICAgICAgICAgICIwLjE1NDI4OSwgMC4yMTE1NSwgMC4yNjYzODYsIDAuMzA1NjEzLCAwLjM2ODQzOSwgMC40MjM0MDIsIDAuNTAxOTkzIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDMzNzk5LCAwLjE0MzM2OCwgMC4yNTY5OTgsIDAuMzM5MjUsIDAuNDcxNzc4LCAwLjU4Nzc0NywgMC43NTM3NzUiLCBcCi0gICAgICAgICAgIjAuMDMzODAzLCAwLjE0MzM2OCwgMC4yNTY5OTksIDAuMzM5MjYzLCAwLjQ3MTc4LCAwLjU4Nzc2OCwgMC43NTI0NTQiLCBcCi0gICAgICAgICAgIjAuMDMzODA3LCAwLjE0MzM3MiwgMC4yNTY5OTksIDAuMzM5MjU4LCAwLjQ3MTc4LCAwLjU4Nzc5MSwgMC43NTM3NjYiLCBcCi0gICAgICAgICAgIjAuMDMzODMsIDAuMTQzMzcsIDAuMjU3MDAyLCAwLjMzOTMzNywgMC40NzE3ODIsIDAuNTg3NjgxLCAwLjc1MjY0NSIsIFwKLSAgICAgICAgICAiMC4wMzM4NSwgMC4xNDMzOTUsIDAuMjU3MDExLCAwLjMzOTE1NywgMC40NzE3ODQsIDAuNTg3NzY3LCAwLjc1Mzc2MSIsIFwKLSAgICAgICAgICAiMC4wMzM5ODEsIDAuMTQzNDc3LCAwLjI1NzA1OSwgMC4zMzkxMiwgMC40NzE3OTgsIDAuNTg3ODM5LCAwLjc1MjY2NyIsIFwKLSAgICAgICAgICAiMC4wMzQxOTksIDAuMTQzNDU4LCAwLjI1NjkxNCwgMC4zMzkxNzgsIDAuNDcxNzEsIDAuNTg3MTQxLCAwLjc1MjY0MiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwOTA0MSwgMC4xNjcwNjMsIDAuMjIxMTg1LCAwLjI1OTY4OSwgMC4zMjEzMTksIDAuMzc1MjU3LCAwLjQ1MjM3MiIsIFwKLSAgICAgICAgICAiMC4xMTU5NTIsIDAuMTczNTY4LCAwLjIyNzY5MywgMC4yNjYyMDMsIDAuMzI3ODM2LCAwLjM4MTc1OSwgMC40NTg4NTgiLCBcCi0gICAgICAgICAgIjAuMTIzOTE5LCAwLjE4MTYwNSwgMC4yMzU3MzcsIDAuMjc0MjQ4LCAwLjMzNTg4LCAwLjM4OTgxMiwgMC40NjY4NzkiLCBcCi0gICAgICAgICAgIjAuMTMxMzc0LCAwLjE4OTI5MywgMC4yNDM0MTcsIDAuMjgxOTM0LCAwLjM0MzU3LCAwLjM5NzQ5OSwgMC40NzQ1NiIsIFwKLSAgICAgICAgICAiMC4xMzg0NTksIDAuMTk2NTMxLCAwLjI1MDY2LCAwLjI4OTE2NywgMC4zNTA3OTYsIDAuNDA0NzI4LCAwLjQ4MTc5NCIsIFwKLSAgICAgICAgICAiMC4xNDgzMjgsIDAuMjA2NTU3LCAwLjI2MDY1NiwgMC4yOTkxNTYsIDAuMzYwNzgsIDAuNDE0NzA3LCAwLjQ5MTc3MiIsIFwKLSAgICAgICAgICAiMC4xNTYxMDMsIDAuMjE0Mzc3LCAwLjI2ODQ2MywgMC4zMDY5NTMsIDAuMzY4NTc0LCAwLjQyMjUzNywgMC40OTk1NzMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzQ0NjgsIDAuMTQwNTE0LCAwLjI0OTY0MywgMC4zMjg2NjYsIDAuNDU2MjM5LCAwLjU2NzkyNiwgMC43Mjc2NzIiLCBcCi0gICAgICAgICAgIjAuMDM0NDcyLCAwLjE0MDU0MywgMC4yNDk3ODcsIDAuMzI4NjY0LCAwLjQ1NjMyOSwgMC41Njc5MjksIDAuNzI3NTYzIiwgXAotICAgICAgICAgICIwLjAzNDQ3NSwgMC4xNDA0MjksIDAuMjQ5NzkxLCAwLjMyODY2NSwgMC40NTYyOTEsIDAuNTY4MTI2LCAwLjcyNzY4IiwgXAotICAgICAgICAgICIwLjAzNDQ4OCwgMC4xNDA1NDgsIDAuMjQ5NzksIDAuMzI4NjU5LCAwLjQ1NjM1MywgMC41NjgxNDgsIDAuNzI3NTkzIiwgXAotICAgICAgICAgICIwLjAzNDUxLCAwLjE0MDUyNCwgMC4yNDk3OCwgMC4zMjg2NjUsIDAuNDU2MjYzLCAwLjU2ODA3MiwgMC43Mjc2MyIsIFwKLSAgICAgICAgICAiMC4wMzQ1MjIsIDAuMTQwNTgxLCAwLjI0OTgyNCwgMC4zMjg2NzcsIDAuNDU2Mjk5LCAwLjU2ODEzMSwgMC43Mjc2ODEiLCBcCi0gICAgICAgICAgIjAuMDM0NzAzLCAwLjE0MDYyMSwgMC4yNDk2NDQsIDAuMzI4Njc4LCAwLjQ1NTg1MiwgMC41NjgyNzEsIDAuNzI4MzI3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDczMjUyLCAwLjEzNjc5LCAwLjE5MjQzLCAwLjIzMTg0NCwgMC4yOTQ4MjUsIDAuMzQ5ODgsIDAuNDI4NTExIiwgXAotICAgICAgICAgICIwLjA3OTU1NSwgMC4xNDMwODUsIDAuMTk4NzQzLCAwLjIzODE1MiwgMC4zMDExMzcsIDAuMzU2MTk0LCAwLjQzNDgxNyIsIFwKLSAgICAgICAgICAiMC4wODc3NzUsIDAuMTUxMjgyLCAwLjIwNjkzNSwgMC4yNDYzNDIsIDAuMzA5MzI5LCAwLjM2NDM4OSwgMC40NDMwMTIiLCBcCi0gICAgICAgICAgIjAuMDk1Nzk2LCAwLjE1OTE0NiwgMC4yMTQ3OTcsIDAuMjU0MTg3LCAwLjMxNzE2LCAwLjM3MjI1MSwgMC40NTA4NiIsIFwKLSAgICAgICAgICAiMC4xMDMzODYsIDAuMTY3MDEzLCAwLjIyMjY0OCwgMC4yNjIwNjEsIDAuMzI1MDQ3LCAwLjM4MDEwMywgMC40NTg3MjEiLCBcCi0gICAgICAgICAgIjAuMTE0MjczLCAwLjE3ODI5MSwgMC4yMzM5MzIsIDAuMjczMzgyLCAwLjMzNjMwOSwgMC4zOTE0MTMsIDAuNDcwMDc4IiwgXAotICAgICAgICAgICIwLjEyMjY4LCAwLjE4NzIzNSwgMC4yNDI5NzIsIDAuMjgyMzcsIDAuMzQ1MzM3LCAwLjQwMDQyNiwgMC40NzkxMTgiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzcwNjEsIDAuMTQ3MjY0LCAwLjI1OTg5OCwgMC4zNDE3NzUsIDAuNDczOTYxLCAwLjU4OTY4NCwgMC43NTQ1NzUiLCBcCi0gICAgICAgICAgIjAuMDM3MDE5LCAwLjE0NzIyNSwgMC4yNjAxMDIsIDAuMzQxNzcxLCAwLjQ3Mzk4NSwgMC41ODk2OTksIDAuNzU0NTE4IiwgXAotICAgICAgICAgICIwLjAzNjgwOCwgMC4xNDcxODQsIDAuMjYwMDAzLCAwLjM0MTc2NywgMC40NzM5NzMsIDAuNTg5Njg5LCAwLjc1NDUyNyIsIFwKLSAgICAgICAgICAiMC4wMzcxNTQsIDAuMTQ3MzYzLCAwLjI2MDIsIDAuMzQyMDczLCAwLjQ3MzcwOCwgMC41ODk3NDEsIDAuNzU1MzU1IiwgXAotICAgICAgICAgICIwLjAzNzY0NSwgMC4xNDc1LCAwLjI2MDI2NSwgMC4zNDIwOTQsIDAuNDczOTkzLCAwLjU4OTc4NiwgMC43NTQ0NzYiLCBcCi0gICAgICAgICAgIjAuMDM4OTU0LCAwLjE0ODIyOSwgMC4yNjA2NDUsIDAuMzQyMzQ5LCAwLjQ3Mzg3NiwgMC41ODk4MSwgMC43NTU0MDciLCBcCi0gICAgICAgICAgIjAuMDQwMjk3LCAwLjE0ODc3LCAwLjI2MDg5NywgMC4zNDIyMzEsIDAuNDczNjg0LCAwLjU4OTg3NywgMC43NTQzNTciKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzc3ODIsIDAuMTQxNjAyLCAwLjE5NjU1NSwgMC4yMzUyNjIsIDAuMjk3MDgyLCAwLjM1MTExMywgMC40MjgyNTMiLCBcCi0gICAgICAgICAgIjAuMDgzNzksIDAuMTQ3NjY5LCAwLjIwMjY1NCwgMC4yNDEzODksIDAuMzAzMTk1LCAwLjM1NzIyNywgMC40MzQzNjkiLCBcCi0gICAgICAgICAgIjAuMDkxNDU0LCAwLjE1NTI0OSwgMC4yMTAyMjYsIDAuMjQ4OTQxLCAwLjMxMDc1LCAwLjM2NDc4MywgMC40NDE5NjYiLCBcCi0gICAgICAgICAgIjAuMDk4NzA4LCAwLjE2MjQ5OCwgMC4yMTc0NiwgMC4yNTYxNzYsIDAuMzE3OTkxLCAwLjM3MjAzMiwgMC40NDkxNzQiLCBcCi0gICAgICAgICAgIjAuMTA1NzcsIDAuMTY5NTc4LCAwLjIyNDU0MSwgMC4yNjMyNDksIDAuMzI1MDU3LCAwLjM3OTA3MiwgMC40NTYyMzMiLCBcCi0gICAgICAgICAgIjAuMTE1NTg3LCAwLjE3OTg4NiwgMC4yMzQ4NDUsIDAuMjczNTUsIDAuMzM1MzU3LCAwLjM4OTQxLCAwLjQ2NjUyNiIsIFwKLSAgICAgICAgICAiMC4xMjMyMzMsIDAuMTg4MDkzLCAwLjI0MzExOCwgMC4yODE4MTQsIDAuMzQzNTksIDAuMzk3NjE1LCAwLjQ3NDc3OCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzNzI3NSwgMC4xNDQ1MjIsIDAuMjUzMTE1LCAwLjMzMTY4OCwgMC40NTg5OTgsIDAuNTcwNjIyLCAwLjczMDQ0OCIsIFwKLSAgICAgICAgICAiMC4wMzczNDEsIDAuMTQ0MzgsIDAuMjUzMDUxLCAwLjMzMTc4NywgMC40NTg5NjQsIDAuNTcwNjIyLCAwLjczMDQ0MiIsIFwKLSAgICAgICAgICAiMC4wMzcyNjYsIDAuMTQ0NDUsIDAuMjUzMDY1LCAwLjMzMTc2MSwgMC40NTg5NSwgMC41NzA2MTEsIDAuNzMwNTI1IiwgXAotICAgICAgICAgICIwLjAzNzUsIDAuMTQ0NTc3LCAwLjI1MzEzNCwgMC4zMzE4NSwgMC40NTg1OTMsIDAuNTcwNjI5LCAwLjczMDQ0MyIsIFwKLSAgICAgICAgICAiMC4wMzgxNjIsIDAuMTQ0ODYsIDAuMjUzMzE3LCAwLjMzMTk2NSwgMC40NTg0MjksIDAuNTcwMDE4LCAwLjczMDQ3NCIsIFwKLSAgICAgICAgICAiMC4wMzkyMjksIDAuMTQ1Njc3LCAwLjI1Mzc0NCwgMC4zMzIyODIsIDAuNDU4ODI1LCAwLjU3MDg3MiwgMC43MzA1NTQiLCBcCi0gICAgICAgICAgIjAuMDQwNDY4LCAwLjE0NjI0NiwgMC4yNTQxNjEsIDAuMzMyNDg3LCAwLjQ1OTQ0NywgMC41NzA3NTEsIDAuNzI5NTM2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTExMzM1LCAwLjE2OTAxLCAwLjIyMzkxNSwgMC4yNjMxNzQsIDAuMzI2MDI0LCAwLjM4MDk3NCwgMC40NTk2NTkiLCBcCi0gICAgICAgICAgIjAuMTE3ODU1LCAwLjE3NTUzMSwgMC4yMzA0MzUsIDAuMjY5Njk3LCAwLjMzMjU0NiwgMC4zODc1NDEsIDAuNDY2MTgxIiwgXAotICAgICAgICAgICIwLjEyNDg0MiwgMC4xODI1MzgsIDAuMjM3NDgzLCAwLjI3NjcxLCAwLjMzOTU1MiwgMC4zOTQ1MDIsIDAuNDczMTg1IiwgXAotICAgICAgICAgICIwLjEzMzc5NCwgMC4xOTIxMzUsIDAuMjQ3MDUsIDAuMjg2MjgzLCAwLjM0OTA4NSwgMC40MDQwMzQsIDAuNDgyNjg4IiwgXAotICAgICAgICAgICIwLjE0MjgxMiwgMC4yMDExNTgsIDAuMjU2MDY5LCAwLjI5NTMxMiwgMC4zNTgxMiwgMC40MTMwNjIsIDAuNDkxNjQ4IiwgXAotICAgICAgICAgICIwLjE1NTE2MywgMC4yMTMxMzEsIDAuMjY4MDAxLCAwLjMwNzIzMywgMC4zNjk5OTUsIDAuNDI0OTY2LCAwLjUwMzU0NCIsIFwKLSAgICAgICAgICAiMC4xNjQ0OCwgMC4yMjIyMTEsIDAuMjc3MDY0LCAwLjMxNjI2MywgMC4zNzkwNDIsIDAuNDMzOTg3LCAwLjUxMjY1NiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzMzY0MSwgMC4xNDMzNDgsIDAuMjU3MDAzLCAwLjMzOTEzNCwgMC40NzE4MjQsIDAuNTg3NTU0LCAwLjc1Mjc0NiIsIFwKLSAgICAgICAgICAiMC4wMzM1MzgsIDAuMTQzMzM2LCAwLjI1Njk5NSwgMC4zMzkwOTQsIDAuNDcxNzM3LCAwLjU4Nzc3NywgMC43NTI5MTYiLCBcCi0gICAgICAgICAgIjAuMDMzNTcyLCAwLjE0MzM1NiwgMC4yNTY4NDEsIDAuMzM5MTQxLCAwLjQ3MTc3OCwgMC41ODc2MzQsIDAuNzUyNzQzIiwgXAotICAgICAgICAgICIwLjAzMzY1NywgMC4xNDMzNDQsIDAuMjU2OTkzLCAwLjMzOTM5MiwgMC40NzE3NzgsIDAuNTg3Nzc2LCAwLjc1Mzc4NSIsIFwKLSAgICAgICAgICAiMC4wMzM2MzMsIDAuMTQzMzYsIDAuMjU3MDQ5LCAwLjMzOTQwNywgMC40NzE3NiwgMC41ODc3MTUsIDAuNzUyODQ3IiwgXAotICAgICAgICAgICIwLjAzMzgyLCAwLjE0MzQ1NSwgMC4yNTcwMzEsIDAuMzM5MTc0LCAwLjQ3MTc2MiwgMC41ODc4MDYsIDAuNzUzNzg3IiwgXAotICAgICAgICAgICIwLjAzNDExNiwgMC4xNDM0MjMsIDAuMjU3MDI1LCAwLjMzOTEyMiwgMC40NzE3MjcsIDAuNTg3NzU3LCAwLjc1MzcxOCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwNzg0NCwgMC4xNjY4NDgsIDAuMjIwOTY0LCAwLjI1OTQ4NywgMC4zMjExMzUsIDAuMzc1MDQ2LCAwLjQ1MjEyNyIsIFwKLSAgICAgICAgICAiMC4xMTUzNDgsIDAuMTc0MzMzLCAwLjIyODQ0OSwgMC4yNjY5NzIsIDAuMzI4NjEzLCAwLjM4MjUzNywgMC40NTk1ODQiLCBcCi0gICAgICAgICAgIjAuMTI1MDUzLCAwLjE4NDAzMiwgMC4yMzgxNTQsIDAuMjc2NjY3LCAwLjMzODI5OSwgMC4zOTIyNDQsIDAuNDY5Mjk3IiwgXAotICAgICAgICAgICIwLjEzNDc3OCwgMC4xOTM2OTMsIDAuMjQ3ODI3LCAwLjI4NjMzOSwgMC4zNDc5NjYsIDAuNDAxODk3LCAwLjQ3OTAxMiIsIFwKLSAgICAgICAgICAiMC4xNDM5OTMsIDAuMjAyNjMsIDAuMjU2NzM1LCAwLjI5NTI0OSwgMC4zNTY4NTksIDAuNDEwODA4LCAwLjQ4Nzg1MyIsIFwKLSAgICAgICAgICAiMC4xNTY2ODYsIDAuMjE1MTU2LCAwLjI2OTIxMywgMC4zMDc3MTUsIDAuMzY5MzM1LCAwLjQyMzI2MiwgMC41MDAzIiwgXAotICAgICAgICAgICIwLjE2NjYwMywgMC4yMjQ2MywgMC4yNzg4NTIsIDAuMzE3MzMyLCAwLjM3ODg1MSwgMC40MzI3ODgsIDAuNTA5ODMzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDMzOTU5LCAwLjE0MDQ0NSwgMC4yNDk1MjksIDAuMzI4NjI5LCAwLjQ1NTk5MywgMC41NjgxMTcsIDAuNzI3Mzk3IiwgXAotICAgICAgICAgICIwLjAzMzk0OSwgMC4xNDA0MzcsIDAuMjQ5NzQ0LCAwLjMyODYyLCAwLjQ1NjI2MywgMC41NjgxNiwgMC43MjgyMzMiLCBcCi0gICAgICAgICAgIjAuMDMzOTQ3LCAwLjE0MDM0NSwgMC4yNDk3MjMsIDAuMzI4NjE5LCAwLjQ1NjAxOCwgMC41Njc5OSwgMC43MjgyNjgiLCBcCi0gICAgICAgICAgIjAuMDMzOTYzLCAwLjE0MDM5NiwgMC4yNDk3MDEsIDAuMzI4NjMxLCAwLjQ1NjAxOCwgMC41NjgwNjQsIDAuNzI3NjI2IiwgXAotICAgICAgICAgICIwLjAzMzk5LCAwLjE0MDM5NywgMC4yNDk1NjgsIDAuMzI4NjEyLCAwLjQ1NTk5NCwgMC41NjgxODQsIDAuNzI4MjI4IiwgXAotICAgICAgICAgICIwLjAzNDA4NywgMC4xNDA0ODEsIDAuMjQ5Nzk5LCAwLjMyODY0OCwgMC40NTYyNzUsIDAuNTY4MTY0LCAwLjcyODA5NyIsIFwKLSAgICAgICAgICAiMC4wMzQyMTIsIDAuMTQwNDU3LCAwLjI0OTc0MSwgMC4zMjg2NzksIDAuNDU1OTA3LCAwLjU2ODA5NSwgMC43MjgwOTMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0kiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDczNDgsIDAuMTM2ODk5LCAwLjE5MjU0NCwgMC4yMzE5NTgsIDAuMjk0OTY1LCAwLjM1MDAxMiwgMC40Mjg2MzkiLCBcCi0gICAgICAgICAgIjAuMDgwMDU2LCAwLjE0MzYwNCwgMC4xOTkyNjIsIDAuMjM4Njg2LCAwLjMwMTY3MywgMC4zNTY3MjksIDAuNDM1MzYxIiwgXAotICAgICAgICAgICIwLjA4OTE4NiwgMC4xNTI2MzQsIDAuMjA4Mjk1LCAwLjI0NzcsIDAuMzEwNjg2LCAwLjM2NTc0NiwgMC40NDQzNzgiLCBcCi0gICAgICAgICAgIjAuMDk4NDQ0LCAwLjE2MTcxNCwgMC4yMTczNTgsIDAuMjU2NzQ3LCAwLjMxOTczMSwgMC4zNzQ4NTEsIDAuNDUzNDM1IiwgXAotICAgICAgICAgICIwLjEwNzU0MywgMC4xNzEwMiwgMC4yMjY2NTQsIDAuMjY2MDM5LCAwLjMyOTAyMSwgMC4zODQwNzIsIDAuNDYyNzIyIiwgXAotICAgICAgICAgICIwLjEyMDQ0NywgMC4xODQyOTksIDAuMjM5OTQxLCAwLjI3OTMyNSwgMC4zNDIyNzcsIDAuMzk3MzE2LCAwLjQ3NjA0MyIsIFwKLSAgICAgICAgICAiMC4xMjk4OTIsIDAuMTk0MzgyLCAwLjI1MDEwNSwgMC4yODk0OTgsIDAuMzUyNDQyLCAwLjQwNzQ4NiwgMC40ODYxMjEiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzY5MTUsIDAuMTQ3MjY5LCAwLjI1OTk3OSwgMC4zNDIwNjgsIDAuNDcyOTQsIDAuNTg5NzU3LCAwLjc1NDUyIiwgXAotICAgICAgICAgICIwLjAzNjkyMiwgMC4xNDcxMjksIDAuMjYwMDg1LCAwLjM0MTY4MiwgMC40NzM5MDQsIDAuNTg5Njg2LCAwLjc1NDU1OSIsIFwKLSAgICAgICAgICAiMC4wMzY4NTYsIDAuMTQ3MTg0LCAwLjI1OTk5NSwgMC4zNDE3NTgsIDAuNDczOTM5LCAwLjU4OTY3MiwgMC43NTQ1NyIsIFwKLSAgICAgICAgICAiMC4wMzY5NywgMC4xNDczNzUsIDAuMjYwMTk4LCAwLjM0MjA0MywgMC40NzM5NDIsIDAuNTg5NzIyLCAwLjc1NTM5MiIsIFwKLSAgICAgICAgICAiMC4wMzc3MzUsIDAuMTQ3NTExLCAwLjI2MDMwNCwgMC4zNDE4ODIsIDAuNDczMjI3LCAwLjU4OTE0MywgMC43NTUzOTQiLCBcCi0gICAgICAgICAgIjAuMDM5NzY0LCAwLjE0ODQzOSwgMC4yNjA2OTUsIDAuMzQyMTg0LCAwLjQ3MzM2OSwgMC41ODkxODgsIDAuNzU0Mjg4IiwgXAotICAgICAgICAgICIwLjA0MTQwNCwgMC4xNDkxNywgMC4yNjExOTQsIDAuMzQyNTM3LCAwLjQ3Mzc3NywgMC41ODkzMzksIDAuNzU1NDM0Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc1MzA3LCAwLjEzOTEyNiwgMC4xOTQxMiwgMC4yMzI4MzYsIDAuMjk0NjQ3LCAwLjM0ODY2MSwgMC40MjU4MjMiLCBcCi0gICAgICAgICAgIjAuMDgxOTk4LCAwLjE0NTgwNiwgMC4yMDA4MDEsIDAuMjM5NTM2LCAwLjMwMTM0NywgMC4zNTUzNzcsIDAuNDMyNTIxIiwgXAotICAgICAgICAgICIwLjA5MTE0OSwgMC4xNTQ5NiwgMC4yMDk5NCwgMC4yNDg2NzMsIDAuMzEwNDksIDAuMzY0NTIyLCAwLjQ0MTY2NyIsIFwKLSAgICAgICAgICAiMC4xMDA0NDgsIDAuMTY0MTI4LCAwLjIxOTA4NCwgMC4yNTc4MSwgMC4zMTk2MTUsIDAuMzczNjQ1LCAwLjQ1MDc4OSIsIFwKLSAgICAgICAgICAiMC4xMDkzNTUsIDAuMTczMDkzLCAwLjIyODAyNCwgMC4yNjY3MywgMC4zMjg1MjcsIDAuMzgyNTQyLCAwLjQ1OTcwOSIsIFwKLSAgICAgICAgICAiMC4xMjE3OSwgMC4xODU4ODMsIDAuMjQwODU3LCAwLjI3OTU2LCAwLjM0MTM1MSwgMC4zOTUzNjgsIDAuNDcyNTA1IiwgXAotICAgICAgICAgICIwLjEzMTUxNCwgMC4xOTU5MTQsIDAuMjUxMDUxLCAwLjI4OTc1NSwgMC4zNTE1MTgsIDAuNDA1NTM0LCAwLjQ4MjcyOCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzNzIyOCwgMC4xNDQ1NTcsIDAuMjUzMTMxLCAwLjMzMTgzOSwgMC40NTkwMjgsIDAuNTcwNTA4LCAwLjczMDQ0NSIsIFwKLSAgICAgICAgICAiMC4wMzczODcsIDAuMTQ0NDA1LCAwLjI1MzAwNiwgMC4zMzE2ODksIDAuNDU4OTY4LCAwLjU3MDYzLCAwLjczMDQ0NyIsIFwKLSAgICAgICAgICAiMC4wMzcyNjIsIDAuMTQ0MzE1LCAwLjI1Mjk1MiwgMC4zMzE2NjQsIDAuNDU4OTUxLCAwLjU3MDYxOCwgMC43MzA0MzQiLCBcCi0gICAgICAgICAgIjAuMDM3Mjk5LCAwLjE0NDYzOCwgMC4yNTMwNDQsIDAuMzMxODI3LCAwLjQ1ODk5MSwgMC41NzA2NSwgMC43MzA0NDQiLCBcCi0gICAgICAgICAgIjAuMDM4MDg2LCAwLjE0NDg4MSwgMC4yNTMyOTQsIDAuMzMxOTE0LCAwLjQ1OTA1LCAwLjU3MDUzNSwgMC43MzA0ODIiLCBcCi0gICAgICAgICAgIjAuMDM5OTM1LCAwLjE0NTcxOCwgMC4yNTM3NzMsIDAuMzMyNDM1LCAwLjQ1ODY2MywgMC41NzA3NTEsIDAuNzI5OCIsIFwKLSAgICAgICAgICAiMC4wNDExMzQsIDAuMTQ2NTI0LCAwLjI1NDI5OCwgMC4zMzI2MTQsIDAuNDU5NDg0LCAwLjU3MDMyNywgMC43MzA4MDUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0kiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTA2Njg5LCAwLjE2NDI5NiwgMC4yMTkyNTYsIDAuMjU4NTMzLCAwLjMyMTM3MywgMC4zNzYzNTksIDAuNDU0OTY4IiwgXAotICAgICAgICAgICIwLjExNDQ5LCAwLjE3MjEzNywgMC4yMjcwOTUsIDAuMjY2MzcsIDAuMzI5MjA5LCAwLjM4NDE5NiwgMC40NjI4MDciLCBcCi0gICAgICAgICAgIjAuMTI0NDUxLCAwLjE4MjA1NywgMC4yMzcwMTEsIDAuMjc2Mjg3LCAwLjMzOTEyNiwgMC4zOTQxMTEsIDAuNDcyNzE3IiwgXAotICAgICAgICAgICIwLjEzMzk1MiwgMC4xOTE1NTEsIDAuMjQ2NDg1LCAwLjI4NTc1NiwgMC4zNDg1OTIsIDAuNDAzNTgzLCAwLjQ4MjIyNyIsIFwKLSAgICAgICAgICAiMC4xNDI2NTUsIDAuMjAwMTU0LCAwLjI1NTA3LCAwLjI5NDMzNywgMC4zNTcxNywgMC40MTIxNiwgMC40OTA4MDMiLCBcCi0gICAgICAgICAgIjAuMTU0NDEyLCAwLjIxMTUwNywgMC4yNjYzOTgsIDAuMzA1NjU4LCAwLjM2ODQ4NiwgMC40MjM0NTYsIDAuNTAyMDQzIiwgXAotICAgICAgICAgICIwLjE2MzA0NiwgMC4yMjAxNjcsIDAuMjc1MDM5LCAwLjMxNDI4MiwgMC4zNzcxMDksIDAuNDMyMDc2LCAwLjUxMDY0Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDMzMTM0LCAwLjE0Mjg1OSwgMC4yNTY3OTUsIDAuMzM5MzUzLCAwLjQ3MTcyLCAwLjU4NzI2MSwgMC43NTI2NTUiLCBcCi0gICAgICAgICAgIjAuMDMzMDM4LCAwLjE0Mjg1NCwgMC4yNTY3OTMsIDAuMzM5MzU0LCAwLjQ3MTc0NCwgMC41ODcyNjcsIDAuNzUyNjYxIiwgXAotICAgICAgICAgICIwLjAzMjk5MywgMC4xNDI4NTMsIDAuMjU2NzkzLCAwLjMzOTM0OCwgMC40NzE3NDUsIDAuNTg3NzI1LCAwLjc1MjY1NCIsIFwKLSAgICAgICAgICAiMC4wMzMwNjgsIDAuMTQyODM4LCAwLjI1Njc5NywgMC4zMzkzOTMsIDAuNDcxNzQ1LCAwLjU4Nzc2MywgMC43NTI3NTEiLCBcCi0gICAgICAgICAgIjAuMDMzMTUyLCAwLjE0Mjg0OSwgMC4yNTY3OTQsIDAuMzM5Mzk5LCAwLjQ3MTc0MywgMC41ODczMDUsIDAuNzUyNzUzIiwgXAotICAgICAgICAgICIwLjAzMzIwMSwgMC4xNDMwMTcsIDAuMjU2ODY2LCAwLjMzOTM5OSwgMC40NzE3MjgsIDAuNTg3MjUyLCAwLjc1MzczIiwgXAotICAgICAgICAgICIwLjAzMzQ0MywgMC4xNDMxMywgMC4yNTcwNjksIDAuMzM5MzE2LCAwLjQ3MTczNCwgMC41ODc3MjgsIDAuNzUzMDQ3Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTA1MzUxLCAwLjE2MjkwMiwgMC4yMTY5MTUsIDAuMjU1NDI5LCAwLjMxNzA2NSwgMC4zNzEwMTQsIDAuNDQ4MDgyIiwgXAotICAgICAgICAgICIwLjExMzAwOCwgMC4xNzA1NDMsIDAuMjI0NTU5LCAwLjI2MzA3OCwgMC4zMjQ3MjksIDAuMzc4NjY2LCAwLjQ1NTczNCIsIFwKLSAgICAgICAgICAiMC4xMjI2OTUsIDAuMTgwMjI5LCAwLjIzNDIzMSwgMC4yNzI3NTIsIDAuMzM0Mzk5LCAwLjM4ODMzOCwgMC40NjU0MTkiLCBcCi0gICAgICAgICAgIjAuMTMyMTU3LCAwLjE4OTU5NiwgMC4yNDM2MTQsIDAuMjgyMTMyLCAwLjM0Mzc3NiwgMC4zOTc3MTQsIDAuNDc0Nzk1IiwgXAotICAgICAgICAgICIwLjE0MDg4OSwgMC4xOTg0MTYsIDAuMjUyNDEsIDAuMjkwOTMxLCAwLjM1MjU3NywgMC40MDY1MiwgMC40ODM2MDkiLCBcCi0gICAgICAgICAgIjAuMTUzMTk3LCAwLjIxMDI1MSwgMC4yNjQyMDIsIDAuMzAyNzEsIDAuMzY0MzQyLCAwLjQxODM0MSwgMC40OTUzNDUiLCBcCi0gICAgICAgICAgIjAuMTYyNTk2LCAwLjIxOTM5MSwgMC4yNzMzMTYsIDAuMzExODA4LCAwLjM3MzQzMSwgMC40MjczNiwgMC41MDQ0MTciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzI0ODcsIDAuMTM5MDg2LCAwLjI0ODgzMiwgMC4zMjgwNzcsIDAuNDU2LCAwLjU2Nzk1MSwgMC43Mjc3MjYiLCBcCi0gICAgICAgICAgIjAuMDMyNDcxLCAwLjEzOTA5NCwgMC4yNDg4MTQsIDAuMzI4MDc2LCAwLjQ1NTk1MSwgMC41Njc5MjYsIDAuNzI3NjgxIiwgXAotICAgICAgICAgICIwLjAzMjQzLCAwLjEzOTEwNCwgMC4yNDg4NCwgMC4zMjgwNzcsIDAuNDU1OTE4LCAwLjU2NzkzNCwgMC43Mjc2NDgiLCBcCi0gICAgICAgICAgIjAuMDMyNDg4LCAwLjEzOTExNiwgMC4yNDg4MjEsIDAuMzI4MDcyLCAwLjQ1NTk0MywgMC41Njc5MTIsIDAuNzI3NTc3IiwgXAotICAgICAgICAgICIwLjAzMjUxOCwgMC4xMzkxMDMsIDAuMjQ4ODAyLCAwLjMyODA4MSwgMC40NTU5NjksIDAuNTY3OTE4LCAwLjcyNzc4MyIsIFwKLSAgICAgICAgICAiMC4wMzI1MzcsIDAuMTM5MjI2LCAwLjI0ODkxLCAwLjMyODEzNCwgMC40NTU5OSwgMC41Njc5NzcsIDAuNzI4MDg2IiwgXAotICAgICAgICAgICIwLjAzMjY5NCwgMC4xMzkyNjgsIDAuMjQ4OTc1LCAwLjMyODIwOSwgMC40NTU5ODMsIDAuNTY3ODc5LCAwLjcyNzcwNCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA5NjY4LCAwLjAwOTY4LCAwLjAwOTcxMywgMC4wMDk3MjUsIDAuMDA5NzM3LCAwLjAwOTc0MywgMC4wMDk3NDkiLCBcCi0gICAgICAgICAgIjAuMDA5NjQ0LCAwLjAwOTY1NSwgMC4wMDk2ODksIDAuMDA5NzAyLCAwLjAwOTcxNCwgMC4wMDk3MiwgMC4wMDk3MjUiLCBcCi0gICAgICAgICAgIjAuMDA5NjU1LCAwLjAwOTY1MiwgMC4wMDk2ODQsIDAuMDA5Njk4LCAwLjAwOTcwOSwgMC4wMDk3MTcsIDAuMDA5NzIyIiwgXAotICAgICAgICAgICIwLjAwOTY3NCwgMC4wMDk2NTcsIDAuMDA5NjkxLCAwLjAwOTcwNiwgMC4wMDk3MTgsIDAuMDA5NzI2LCAwLjAwOTczMyIsIFwKLSAgICAgICAgICAiMC4wMDk3NDgsIDAuMDA5Njg5LCAwLjAwOTcyLCAwLjAwOTczNSwgMC4wMDk3NDYsIDAuMDA5NzU0LCAwLjAwOTc2IiwgXAotICAgICAgICAgICIwLjAwOTkwNywgMC4wMDk3NywgMC4wMDk3OTIsIDAuMDA5ODAzLCAwLjAwOTgxMywgMC4wMDk4MiwgMC4wMDk4MjciLCBcCi0gICAgICAgICAgIjAuMDEwMDI5LCAwLjAwOTg0LCAwLjAwOTg1MiwgMC4wMDk4NjUsIDAuMDA5ODc3LCAwLjAwOTg4MywgMC4wMDk4ODkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjUyOCwgMC4wMDY1MzYsIDAuMDA2NTY2LCAwLjAwNjU3NywgMC4wMDY1OTEsIDAuMDA2NTksIDAuMDA2NTk4IiwgXAotICAgICAgICAgICIwLjAwNjQ3LCAwLjAwNjQ4OCwgMC4wMDY1MiwgMC4wMDY1MzIsIDAuMDA2NTQ2LCAwLjAwNjU1MiwgMC4wMDY1NTUiLCBcCi0gICAgICAgICAgIjAuMDA2NDk3LCAwLjAwNjQ4NSwgMC4wMDY1MTYsIDAuMDA2NTI4LCAwLjAwNjU0LCAwLjAwNjU0NiwgMC4wMDY1NTIiLCBcCi0gICAgICAgICAgIjAuMDA2NTY5LCAwLjAwNjUwNywgMC4wMDY1MzcsIDAuMDA2NTQ4LCAwLjAwNjU1OCwgMC4wMDY1NjUsIDAuMDA2NTcxIiwgXAotICAgICAgICAgICIwLjAwNjYzOSwgMC4wMDY1NDgsIDAuMDA2NTcyLCAwLjAwNjU4MywgMC4wMDY1OTUsIDAuMDA2NiwgMC4wMDY2MDYiLCBcCi0gICAgICAgICAgIjAuMDA2OCwgMC4wMDY2MjQsIDAuMDA2NjQyLCAwLjAwNjY1MSwgMC4wMDY2NjIsIDAuMDA2NjY2LCAwLjAwNjY3MiIsIFwKLSAgICAgICAgICAiMC4wMDY5NTMsIDAuMDA2NzE3LCAwLjAwNjcxOSwgMC4wMDY3MjcsIDAuMDA2NzM0LCAwLjAwNjczOSwgMC4wMDY3NDQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwOTQyNSwgMC4wMDk0NTEsIDAuMDA5NDgxLCAwLjAwOTQ5MywgMC4wMDk1MDQsIDAuMDA5NTEzLCAwLjAwOTUxNiIsIFwKLSAgICAgICAgICAiMC4wMDkzODEsIDAuMDA5NDEzLCAwLjAwOTQ0OCwgMC4wMDk0NTYsIDAuMDA5NDY4LCAwLjAwOTQ3NCwgMC4wMDk0OCIsIFwKLSAgICAgICAgICAiMC4wMDkzNiwgMC4wMDkzNzUsIDAuMDA5NDA3LCAwLjAwOTQyLCAwLjAwOTQzMiwgMC4wMDk0MzgsIDAuMDA5NDQ1IiwgXAotICAgICAgICAgICIwLjAwOTM5LCAwLjAwOTM2NSwgMC4wMDkzOTYsIDAuMDA5NDA4LCAwLjAwOTQyLCAwLjAwOTQyNywgMC4wMDk0MzMiLCBcCi0gICAgICAgICAgIjAuMDA5NTY4LCAwLjAwOTQyOCwgMC4wMDk0NDksIDAuMDA5NDU5LCAwLjAwOTQ3MywgMC4wMDk0NzUsIDAuMDA5NDgyIiwgXAotICAgICAgICAgICIwLjAwOTc4MywgMC4wMDk1MzIsIDAuMDA5NTQyLCAwLjAwOTU0OCwgMC4wMDk1NTcsIDAuMDA5NTYxLCAwLjAwOTU2NiIsIFwKLSAgICAgICAgICAiMC4wMDk4MzksIDAuMDA5NjAyLCAwLjAwOTYwNiwgMC4wMDk2MTcsIDAuMDA5NjI3LCAwLjAwOTYzLCAwLjAwOTYzNyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2ODIzLCAwLjAwNjgzNSwgMC4wMDY4NjMsIDAuMDA2ODcyLCAwLjAwNjg4MiwgMC4wMDY4ODQsIDAuMDA2ODkiLCBcCi0gICAgICAgICAgIjAuMDA2NzQ0LCAwLjAwNjc3LCAwLjAwNjgwMiwgMC4wMDY4MTQsIDAuMDA2ODI0LCAwLjAwNjgyOCwgMC4wMDY4MzUiLCBcCi0gICAgICAgICAgIjAuMDA2NzYzLCAwLjAwNjc1OSwgMC4wMDY3OTEsIDAuMDA2ODA0LCAwLjAwNjgxNCwgMC4wMDY4MjEsIDAuMDA2ODI3IiwgXAotICAgICAgICAgICIwLjAwNjg2MiwgMC4wMDY3OTMsIDAuMDA2ODE4LCAwLjAwNjgyOCwgMC4wMDY4MzksIDAuMDA2ODQzLCAwLjAwNjg0OSIsIFwKLSAgICAgICAgICAiMC4wMDY5MTcsIDAuMDA2ODM0LCAwLjAwNjg1NiwgMC4wMDY4NjYsIDAuMDA2ODc1LCAwLjAwNjg4MSwgMC4wMDY4ODYiLCBcCi0gICAgICAgICAgIjAuMDA3MDQsIDAuMDA2ODk4LCAwLjAwNjkyLCAwLjAwNjkzLCAwLjAwNjk0MSwgMC4wMDY5NDgsIDAuMDA2OTU0IiwgXAotICAgICAgICAgICIwLjAwNzMzNSwgMC4wMDY5OTcsIDAuMDA3MDYzLCAwLjAwNzA2NSwgMC4wMDcwMzMsIDAuMDA3MDM5LCAwLjAwNzA0NCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNJIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwOTAzNSwgMC4wMDkwMzYsIDAuMDA5MDY1LCAwLjAwOTA3OSwgMC4wMDkwODYsIDAuMDA5MDk1LCAwLjAwOTEwMyIsIFwKLSAgICAgICAgICAiMC4wMDkwMzIsIDAuMDA5MDM1LCAwLjAwOTA2NiwgMC4wMDkwODEsIDAuMDA5MDkxLCAwLjAwOTEsIDAuMDA5MTA0IiwgXAotICAgICAgICAgICIwLjAwOTA2NSwgMC4wMDkwNDgsIDAuMDA5MDgxLCAwLjAwOTA5NSwgMC4wMDkxMSwgMC4wMDkxMTgsIDAuMDA5MTIzIiwgXAotICAgICAgICAgICIwLjAwOTE1MSwgMC4wMDkwODksIDAuMDA5MTE5LCAwLjAwOTEzMywgMC4wMDkxNDcsIDAuMDA5MTUzLCAwLjAwOTE2MSIsIFwKLSAgICAgICAgICAiMC4wMDkyNTQsIDAuMDA5MTM4LCAwLjAwOTE2NSwgMC4wMDkxNzgsIDAuMDA5MTkyLCAwLjAwOTIwMSwgMC4wMDkyMDciLCBcCi0gICAgICAgICAgIjAuMDA5NDM4LCAwLjAwOTI0OCwgMC4wMDkyNjMsIDAuMDA5MjcyLCAwLjAwOTI4MywgMC4wMDkyODksIDAuMDA5Mjk2IiwgXAotICAgICAgICAgICIwLjAwOTU5NywgMC4wMDkzMzYsIDAuMDA5MzQzLCAwLjAwOTM1LCAwLjAwOTM1OCwgMC4wMDkzNjMsIDAuMDA5MzciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjgxMywgMC4wMDY4NDcsIDAuMDA2ODc4LCAwLjAwNjg4OSwgMC4wMDY5MDIsIDAuMDA2OTA3LCAwLjAwNjkxMiIsIFwKLSAgICAgICAgICAiMC4wMDY3ODMsIDAuMDA2ODI5LCAwLjAwNjg2MywgMC4wMDY4NzYsIDAuMDA2ODg4LCAwLjAwNjg5NSwgMC4wMDY4OTkiLCBcCi0gICAgICAgICAgIjAuMDA2Nzk4LCAwLjAwNjgyMSwgMC4wMDY4NTcsIDAuMDA2ODcxLCAwLjAwNjg4NCwgMC4wMDY4OTEsIDAuMDA2ODk3IiwgXAotICAgICAgICAgICIwLjAwNjg4MSwgMC4wMDY4NDksIDAuMDA2ODgyLCAwLjAwNjg5NiwgMC4wMDY5MSwgMC4wMDY5MTUsIDAuMDA2OTIyIiwgXAotICAgICAgICAgICIwLjAwNjk3OCwgMC4wMDY4OTgsIDAuMDA2OTI3LCAwLjAwNjkzOSwgMC4wMDY5NTQsIDAuMDA2OTYxLCAwLjAwNjk2NCIsIFwKLSAgICAgICAgICAiMC4wMDcxNDgsIDAuMDA2OTk2LCAwLjAwNzAxOCwgMC4wMDcwMjgsIDAuMDA3MDQsIDAuMDA3MDQ3LCAwLjAwNzA1NCIsIFwKLSAgICAgICAgICAiMC4wMDczMTgsIDAuMDA3MTA3LCAwLjAwNzExNiwgMC4wMDcxMjIsIDAuMDA3MTMyLCAwLjAwNzEzNywgMC4wMDcxNDMiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IEFEREhYMSAqCi0gKiAtLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKEFEREhYMSkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjU2NjQ3MTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNDA2NDg7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNDA2NDg7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNDA1NzI7Ci0gIH0KLSAgcGluKEIpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTc0NDY2OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTcyNzc0OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTc0NDY2OwotICB9Ci0gIHBpbihDTykgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjM0MzQ0MTsKLSAgICBmdW5jdGlvbiA6ICIoQSBCKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDYxNjUxLCAwLjA4MDM3MSwgMC4xODYwMzUsIDAuMjc5Mjk3LCAwLjQwMzEzLCAwLjY1MTA1NywgMC44MDYxNjkiLCBcCi0gICAgICAgICAgIjAuMDY3Njc4LCAwLjA4NjM3NiwgMC4xOTIwNzYsIDAuMjg1MTE2LCAwLjQwOTA0MSwgMC42NTcyODgsIDAuODEyMTQzIiwgXAotICAgICAgICAgICIwLjA3NDU1MiwgMC4wOTMyMzksIDAuMTk4OTQ3LCAwLjI5MjIyNiwgMC40MTYwNDgsIDAuNjYzOTg1LCAwLjgxOTA0IiwgXAotICAgICAgICAgICIwLjA4MDE3NywgMC4wOTg5MjEsIDAuMjA0NjEzLCAwLjI5NzU2NCwgMC40MjE3MDIsIDAuNjY5NjI0LCAwLjgyNDczNiIsIFwKLSAgICAgICAgICAiMC4wODQ5MzEsIDAuMTAzNzM5LCAwLjIwOTMzOCwgMC4zMDI2MzgsIDAuNDI2NDk0LCAwLjY3NDQyLCAwLjgyOTY5NSIsIFwKLSAgICAgICAgICAiMC4wOTE1NDgsIDAuMTEwMzg1LCAwLjIxNjI0MywgMC4zMDkxOTMsIDAuNDMzMjU3LCAwLjY4MTA4MywgMC44MzY0NDkiLCBcCi0gICAgICAgICAgIjAuMDk2NjY4LCAwLjExNTUyOCwgMC4yMjExMjMsIDAuMzE0Mjk3LCAwLjQzODE3MywgMC42ODYzMjksIDAuODQxNzU2Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3MzQ3NCwgMC4xMTExMjcsIDAuMzMyMDcsIDAuNTI3NTA0LCAwLjc4OTY3MiwgMS4zMTE1OSwgMS42MzgyIiwgXAotICAgICAgICAgICIwLjA3MzU1MywgMC4xMTEzMTIsIDAuMzMyMDU2LCAwLjUyNzU4NSwgMC43ODg4ODIsIDEuMzEyODQsIDEuNjM4MjUiLCBcCi0gICAgICAgICAgIjAuMDc0MDA4LCAwLjExMTYwNCwgMC4zMzIwNjMsIDAuNTI3MzU3LCAwLjc4OTY2NywgMS4zMTE0NCwgMS42MzgyMiIsIFwKLSAgICAgICAgICAiMC4wNzQ2NDEsIDAuMTExODMsIDAuMzMyMTE2LCAwLjUyNzQ3MiwgMC43ODk2MDksIDEuMzExNDUsIDEuNjM4MzQiLCBcCi0gICAgICAgICAgIjAuMDc0ODkyLCAwLjExMjYzMywgMC4zMzE3MzUsIDAuNTI4Mjk1LCAwLjc4OTU5MiwgMS4zMTE2LCAxLjY0MDI0IiwgXAotICAgICAgICAgICIwLjA3NTk2NiwgMC4xMTMwMDUsIDAuMzMxOTcsIDAuNTI4MzYzLCAwLjc4ODc2MywgMS4zMTMwNCwgMS42NDAyMiIsIFwKLSAgICAgICAgICAiMC4wNzYxMzcsIDAuMTEzNDk0LCAwLjMzMjEyMSwgMC41Mjg0MzQsIDAuNzg4NzkzLCAxLjMxMzI4LCAxLjY0MDU4Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1MjEzNCwgMC4wNzAyODQsIDAuMTczMjIxLCAwLjI2Mzc4MiwgMC4zODQxMzQsIDAuNjI1MzY3LCAwLjc3NjA4OCIsIFwKLSAgICAgICAgICAiMC4wNjAxMjYsIDAuMDc4Mjc2LCAwLjE4MTAxMywgMC4yNzE3NzIsIDAuMzkyMTAyLCAwLjYzMzQzOCwgMC43ODQxODUiLCBcCi0gICAgICAgICAgIjAuMDY3ODk0LCAwLjA4NjA0NSwgMC4xODg5NjIsIDAuMjc5NTc5LCAwLjM5OTgwMiwgMC42NDEzNjUsIDAuNzkxOTMyIiwgXAotICAgICAgICAgICIwLjA3MzY5MiwgMC4wOTE4NjIsIDAuMTk0NjIyLCAwLjI4NTQ2MSwgMC40MDU4ODgsIDAuNjQ2ODU5LCAwLjc5NzcxNSIsIFwKLSAgICAgICAgICAiMC4wNzgxODIsIDAuMDk2MzkzLCAwLjE5OTM3LCAwLjI4OTkyNywgMC40MTAyNjQsIDAuNjUxNjQyLCAwLjgwMjQxOSIsIFwKLSAgICAgICAgICAiMC4wODQxMTQsIDAuMTAyMjk5LCAwLjIwNTAzNCwgMC4yOTU4MDgsIDAuNDE2NDkxLCAwLjY1ODA2MiwgMC44MDg4OTQiLCBcCi0gICAgICAgICAgIjAuMDg4NDU3LCAwLjEwNjYyMiwgMC4yMDkzMzQsIDAuMzAwMDczLCAwLjQyMDgzLCAwLjY2MjU0OCwgMC44MTI1MDQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY3Nzc3LCAwLjEwNTEyLCAwLjMxNjQ2NSwgMC41MDMwMTYsIDAuNzUwOTcsIDEuMjQ2NzYsIDEuNTU3ODgiLCBcCi0gICAgICAgICAgIjAuMDY3NzIzLCAwLjEwNTAxNSwgMC4zMTcyNCwgMC41MDI5NTYsIDAuNzUxODM4LCAxLjI0NzcxLCAxLjU1ODg2IiwgXAotICAgICAgICAgICIwLjA2ODMzNCwgMC4xMDU5NjQsIDAuMzE2NDc4LCAwLjUwMjY5MSwgMC43NTEyOCwgMS4yNDc3NiwgMS41NTY5OSIsIFwKLSAgICAgICAgICAiMC4wNjg2ODMsIDAuMTA1MzM3LCAwLjMxNzA1LCAwLjUwMjQyOSwgMC43NTA1OSwgMS4yNDc0NSwgMS41NTY5IiwgXAotICAgICAgICAgICIwLjA2OTg4NCwgMC4xMDY1NTksIDAuMzE1OTQ3LCAwLjUwMjEyOSwgMC43NTE1MDYsIDEuMjQ4NDQsIDEuNTU4ODMiLCBcCi0gICAgICAgICAgIjAuMDcwMDI4LCAwLjEwNjY2NCwgMC4zMTY2MDcsIDAuNTAyNzI3LCAwLjc1MDIzNywgMS4yNDc5MiwgMS41NTg3OSIsIFwKLSAgICAgICAgICAiMC4wNzE1NTMsIDAuMTA2MzU1LCAwLjMxNTQ5MiwgMC41MDE0NTksIDAuNzUwNTYzLCAxLjI0ODMsIDEuNTU2MzMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDYwMDk1LCAwLjA3ODc5NiwgMC4xODQ0NzgsIDAuMjc3Mzc3LCAwLjQwMTU2MywgMC42NDk0ODMsIDAuODA0Njk3IiwgXAotICAgICAgICAgICIwLjA2NzU3OSwgMC4wODYzNDQsIDAuMTkyMDExLCAwLjI4NTIzMywgMC40MDkxNDcsIDAuNjU3MDU5LCAwLjgxMjUwNiIsIFwKLSAgICAgICAgICAiMC4wNzYyOTQsIDAuMDk1MDI3LCAwLjIwMDcxNywgMC4yOTM4OTEsIDAuNDE3Njg3LCAwLjY2NTg2OCwgMC44MjEwNDgiLCBcCi0gICAgICAgICAgIjAuMDgzMjkyLCAwLjEwMjAzLCAwLjIwNzY0NCwgMC4zMDA1OSwgMC40MjQ2NzgsIDAuNjczMDIsIDAuODI3OTQ5IiwgXAotICAgICAgICAgICIwLjA4OTA3NywgMC4xMDc4NTUsIDAuMjEzNDU4LCAwLjMwNjQzLCAwLjQzMDQwNywgMC42Nzg2MjksIDAuODM0MzA5IiwgXAotICAgICAgICAgICIwLjA5NjgsIDAuMTE1NjcyLCAwLjIyMTE4MSwgMC4zMTQxNjcsIDAuNDM4MzI3LCAwLjY4Njg3LCAwLjg0MjIyOCIsIFwKLSAgICAgICAgICAiMC4xMDI5NDIsIDAuMTIxNzgzLCAwLjIyNzMyMSwgMC4zMjAzNTEsIDAuNDQ0NTYzLCAwLjY5MzA2NywgMC44NDc2MTMiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDczNTgxLCAwLjExMTA4MSwgMC4zMzIwODQsIDAuNTI3ODEsIDAuNzg5NjQ0LCAxLjMxMTQ1LCAxLjYzODM2IiwgXAotICAgICAgICAgICIwLjA3Mjg4MiwgMC4xMTExMjgsIDAuMzMyMDgxLCAwLjUyNzQzMiwgMC43ODk2ODQsIDEuMzEzMjEsIDEuNjQwNTgiLCBcCi0gICAgICAgICAgIjAuMDczOCwgMC4xMTE0NiwgMC4zMzIxOTcsIDAuNTI3NjcyLCAwLjc4OTA2MywgMS4zMTExNywgMS42Mzg2MSIsIFwKLSAgICAgICAgICAiMC4wNzQ0MjMsIDAuMTEyMDIsIDAuMzMyMjYsIDAuNTI3ODUsIDAuNzg5NTYsIDEuMzEzNCwgMS42MzkyNSIsIFwKLSAgICAgICAgICAiMC4wNzUwMywgMC4xMTI0MjMsIDAuMzMyMzMyLCAwLjUyODE5OSwgMC43ODk2ODIsIDEuMzEyMjgsIDEuNjQwNjQiLCBcCi0gICAgICAgICAgIjAuMDc1NzQ4LCAwLjExMzA2NCwgMC4zMzIyODgsIDAuNTI3OTEsIDAuNzg5NTQyLCAxLjMxMzQsIDEuNjQwNzUiLCBcCi0gICAgICAgICAgIjAuMDc2NjI3LCAwLjExMzgxNCwgMC4zMzIzNDIsIDAuNTI4MDM4LCAwLjc4OTI0NSwgMS4zMTMwNiwgMS42MzY4MyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTA4NTEsIDAuMDY4OTcyLCAwLjE3MTc2LCAwLjI2MjUxMiwgMC4zODMzOTYsIDAuNjI1Njk4LCAwLjc3NTU2MiIsIFwKLSAgICAgICAgICAiMC4wNTg1MSwgMC4wNzY2ODEsIDAuMTc5NDIyLCAwLjI3MDE4NywgMC4zOTE2MjYsIDAuNjMyMDMsIDAuNzgzMjk5IiwgXAotICAgICAgICAgICIwLjA2NTc4LCAwLjA4MzkzMSwgMC4xODY5OTUsIDAuMjc3MzMsIDAuMzk4Mzg4LCAwLjY0MDI2NiwgMC43OTE0NyIsIFwKLSAgICAgICAgICAiMC4wNzEwOTIsIDAuMDg5MjU1LCAwLjE5MjA0NCwgMC4yODI5NzUsIDAuNDAzNywgMC42NDQ2NzYsIDAuNzk1NDI3IiwgXAotICAgICAgICAgICIwLjA3NTEzMywgMC4wOTM0MTgsIDAuMTk2MjQ5LCAwLjI4NzQwNywgMC40MDc5NjcsIDAuNjQ5ODQ1LCAwLjgwMTI5IiwgXAotICAgICAgICAgICIwLjA4MDQ3NCwgMC4wOTg2ODcsIDAuMjAxMzE0LCAwLjI5MjA5OCwgMC40MTI3MTQsIDAuNjU1MjIsIDAuODA2MDAyIiwgXAotICAgICAgICAgICIwLjA4NDI1MiwgMC4xMDI0NzQsIDAuMjA1MTA0LCAwLjI5NTc3MiwgMC40MTYzNzksIDAuNjU3ODcyLCAwLjgwOTQ4NCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjgyMjksIDAuMTA0NTEsIDAuMzE1NzI4LCAwLjUwMjA4MSwgMC43NTAxNzQsIDEuMjQ4MTYsIDEuNTU5MDMiLCBcCi0gICAgICAgICAgIjAuMDY4MDY0LCAwLjEwNDkxOSwgMC4zMTU4MDMsIDAuNTAyMTkyLCAwLjc1MTA4LCAxLjI0NzU5LCAxLjU2MDA3IiwgXAotICAgICAgICAgICIwLjA2ODYyMiwgMC4xMDQ5NywgMC4zMTU2ODMsIDAuNTAxOTQyLCAwLjc1MDU0MiwgMS4yNDYyNywgMS41NTU0NSIsIFwKLSAgICAgICAgICAiMC4wNjkzNTMsIDAuMTA1OTkzLCAwLjMxNjMzMiwgMC41MDIxMDMsIDAuNzUwNTU5LCAxLjI0ODI1LCAxLjU1ODI0IiwgXAotICAgICAgICAgICIwLjA2OTYyMywgMC4xMDYwMjcsIDAuMzE2NTY1LCAwLjUwMjM3OSwgMC43NTA3NDEsIDEuMjQ1LCAxLjU1ODk5IiwgXAotICAgICAgICAgICIwLjA3MDI1MywgMC4xMDYzNjIsIDAuMzE1ODc3LCAwLjUwMTg0MSwgMC43NTA4NzEsIDEuMjQ1MDQsIDEuNTU3MTUiLCBcCi0gICAgICAgICAgIjAuMDcxNTM0LCAwLjEwNzYzMSwgMC4zMTY0MjIsIDAuNTAyNDE1LCAwLjc1MTIzLCAxLjI0ODIyLCAxLjU1Nzc3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyNTk5LCAwLjAwMjYwMiwgMC4wMDI2MDUsIDAuMDAyNjA2LCAwLjAwMjYwNiwgMC4wMDI2MDYsIDAuMDAyNjA3IiwgXAotICAgICAgICAgICIwLjAwMjU4LCAwLjAwMjU4NCwgMC4wMDI1ODksIDAuMDAyNTg5LCAwLjAwMjU5LCAwLjAwMjU5LCAwLjAwMjU5IiwgXAotICAgICAgICAgICIwLjAwMjYzLCAwLjAwMjYzNCwgMC4wMDI2MzksIDAuMDAyNjQsIDAuMDAyNjQxLCAwLjAwMjY0MiwgMC4wMDI2NDEiLCBcCi0gICAgICAgICAgIjAuMDAyNzEsIDAuMDAyNzE0LCAwLjAwMjcyLCAwLjAwMjcyLCAwLjAwMjcyMSwgMC4wMDI3MjEsIDAuMDAyNzIxIiwgXAotICAgICAgICAgICIwLjAwMjgwOCwgMC4wMDI4MTEsIDAuMDAyODE2LCAwLjAwMjgxNiwgMC4wMDI4MTYsIDAuMDAyODE3LCAwLjAwMjgxNyIsIFwKLSAgICAgICAgICAiMC4wMDI5ODcsIDAuMDAyOTg5LCAwLjAwMjk5MiwgMC4wMDI5OTQsIDAuMDAyOTkzLCAwLjAwMjk5MywgMC4wMDI5OTMiLCBcCi0gICAgICAgICAgIjAuMDAzMTU1LCAwLjAwMzE1NywgMC4wMDMxNTgsIDAuMDAzMTU4LCAwLjAwMzE1OCwgMC4wMDMxNTksIDAuMDAzMTU5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzNzkzLCAwLjAwMzc5NiwgMC4wMDM3OTksIDAuMDAzOCwgMC4wMDM4LCAwLjAwMzgwMSwgMC4wMDM4MDEiLCBcCi0gICAgICAgICAgIjAuMDAzNzg5LCAwLjAwMzc5NCwgMC4wMDM4MDEsIDAuMDAzODAxLCAwLjAwMzgwMSwgMC4wMDM4MDIsIDAuMDAzODAyIiwgXAotICAgICAgICAgICIwLjAwMzg1NiwgMC4wMDM4NiwgMC4wMDM4NjgsIDAuMDAzODY5LCAwLjAwMzg2OSwgMC4wMDM4NywgMC4wMDM4NyIsIFwKLSAgICAgICAgICAiMC4wMDM5NDMsIDAuMDAzOTQ5LCAwLjAwMzk1NiwgMC4wMDM5NTcsIDAuMDAzOTU4LCAwLjAwMzk1OSwgMC4wMDM5NTkiLCBcCi0gICAgICAgICAgIjAuMDA0MDU4LCAwLjAwNDA1NSwgMC4wMDQwNywgMC4wMDQwNzEsIDAuMDA0MDY2LCAwLjAwNDA3MiwgMC4wMDQwNzMiLCBcCi0gICAgICAgICAgIjAuMDA0MjU2LCAwLjAwNDI0OSwgMC4wMDQyNjMsIDAuMDA0MjY2LCAwLjAwNDI1NiwgMC4wMDQyNTgsIDAuMDA0MjY3IiwgXAotICAgICAgICAgICIwLjAwNDQ0LCAwLjAwNDQ0MSwgMC4wMDQ0NDYsIDAuMDA0NDQ3LCAwLjAwNDQzNywgMC4wMDQ0MzcsIDAuMDA0NDQ4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyMzA3LCAwLjAwMjMxMywgMC4wMDIzMjIsIDAuMDAyMzI1LCAwLjAwMjMyNiwgMC4wMDIzMjcsIDAuMDAyMzI3IiwgXAotICAgICAgICAgICIwLjAwMjMwOSwgMC4wMDIzMTYsIDAuMDAyMzI2LCAwLjAwMjMyOCwgMC4wMDIzMjksIDAuMDAyMzMsIDAuMDAyMzMxIiwgXAotICAgICAgICAgICIwLjAwMjM3NiwgMC4wMDIzODMsIDAuMDAyMzg5LCAwLjAwMjM5MSwgMC4wMDIzOTIsIDAuMDAyMzkzLCAwLjAwMjM5NCIsIFwKLSAgICAgICAgICAiMC4wMDI0ODYsIDAuMDAyNDkyLCAwLjAwMjUwMSwgMC4wMDI1MDMsIDAuMDAyNTA0LCAwLjAwMjUwNSwgMC4wMDI1MDUiLCBcCi0gICAgICAgICAgIjAuMDAyNjAxLCAwLjAwMjYwNiwgMC4wMDI2MTIsIDAuMDAyNjE1LCAwLjAwMjYxNiwgMC4wMDI2MTYsIDAuMDAyNjE3IiwgXAotICAgICAgICAgICIwLjAwMjc4MywgMC4wMDI3ODUsIDAuMDAyNzkxLCAwLjAwMjc5MiwgMC4wMDI3OTQsIDAuMDAyNzk0LCAwLjAwMjc5NCIsIFwKLSAgICAgICAgICAiMC4wMDI5ODksIDAuMDAyOTkxLCAwLjAwMjk2LCAwLjAwMjk2MSwgMC4wMDI5NjIsIDAuMDAyOTYyLCAwLjAwMjk2MiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzgxNSwgMC4wMDM4MjUsIDAuMDAzODM4LCAwLjAwMzg0MSwgMC4wMDM4NDIsIDAuMDAzODQ0LCAwLjAwMzg0NCIsIFwKLSAgICAgICAgICAiMC4wMDM4NjQsIDAuMDAzODc0LCAwLjAwMzg5LCAwLjAwMzg5NCwgMC4wMDM4OTYsIDAuMDAzODk2LCAwLjAwMzkiLCBcCi0gICAgICAgICAgIjAuMDAzOTY0LCAwLjAwMzk3NiwgMC4wMDM5OTYsIDAuMDA0MDAxLCAwLjAwNDAwMywgMC4wMDQwMDYsIDAuMDA0MDA2IiwgXAotICAgICAgICAgICIwLjAwNDA5MSwgMC4wMDQxMDQsIDAuMDA0MTI0LCAwLjAwNDEyOSwgMC4wMDQxMzEsIDAuMDA0MTMyLCAwLjAwNDEzNCIsIFwKLSAgICAgICAgICAiMC4wMDQyMzgsIDAuMDA0MjUsIDAuMDA0MjcyLCAwLjAwNDI3NywgMC4wMDQyODEsIDAuMDA0MjgsIDAuMDA0Mjg1IiwgXAotICAgICAgICAgICIwLjAwNDQ3MywgMC4wMDQ0ODMsIDAuMDA0NTA0LCAwLjAwNDUxLCAwLjAwNDUxMywgMC4wMDQ1MTcsIDAuMDA0NTE5IiwgXAotICAgICAgICAgICIwLjAwNDY4OCwgMC4wMDQ2OTUsIDAuMDA0NzE1LCAwLjAwNDcyMSwgMC4wMDQ3MjYsIDAuMDA0NzMsIDAuMDA0NzMiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFMpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4zMzg2MDM7Ci0gICAgZnVuY3Rpb24gOiAiKEFeQikiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2ODQyLCAwLjA4NzIzMiwgMC4xOTI4NTksIDAuMjg2MDgzLCAwLjQxMDE4MiwgMC42NTg1ODEsIDAuODEzODU0IiwgXAotICAgICAgICAgICIwLjA3NjU0MywgMC4wOTUzNjQsIDAuMjAwOTc3LCAwLjI5NDExNywgMC40MTg0MjEsIDAuNjY2NjQsIDAuODIxODQ0IiwgXAotICAgICAgICAgICIwLjA4NTg2NiwgMC4xMDQ2ODQsIDAuMjEwMjk5LCAwLjMwMzQ0MiwgMC40Mjc3MDEsIDAuNjc2MDc0LCAwLjgzMTQ4MSIsIFwKLSAgICAgICAgICAiMC4wOTM1NjksIDAuMTEyMzk1LCAwLjIxODAwMiwgMC4zMTEyMTksIDAuNDM1MzQyLCAwLjY4MzYyMywgMC44Mzg5NDkiLCBcCi0gICAgICAgICAgIjAuMTAwMTcsIDAuMTE5MDA1LCAwLjIyNDYwOCwgMC4zMTc4MzcsIDAuNDQxOTk2LCAwLjY5MDUyOCwgMC44NDU4NSIsIFwKLSAgICAgICAgICAiMC4xMDg5MzMsIDAuMTI3OTMyLCAwLjIzMzUyOSwgMC4zMjY2NTYsIDAuNDUwODU4LCAwLjY5OTU0NiwgMC44NTQ3ODEiLCBcCi0gICAgICAgICAgIjAuMTE1MjgsIDAuMTM0Mzg4LCAwLjIzOTk5OCwgMC4zMzMxMzgsIDAuNDU3MjgxLCAwLjcwNjIyLCAwLjg2MTQwNiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzM1NTEsIDAuMTExNjMzLCAwLjMzMjM4NCwgMC41Mjc1MiwgMC43ODg0MzgsIDEuMzEwNDIsIDEuNjM3NTQiLCBcCi0gICAgICAgICAgIjAuMDczNTI2LCAwLjExMTU3NCwgMC4zMzIyMzQsIDAuNTI4MzcyLCAwLjc4ODY2OSwgMS4zMTE2OCwgMS42MzcyMSIsIFwKLSAgICAgICAgICAiMC4wNzM4MSwgMC4xMTE2OTksIDAuMzMyMjM1LCAwLjUyODMyNSwgMC43ODgzMDQsIDEuMzEwNDEsIDEuNjM4NzQiLCBcCi0gICAgICAgICAgIjAuMDc0NTAxLCAwLjExMjIxNSwgMC4zMzIzNzMsIDAuNTI3MjU0LCAwLjc4ODUyNSwgMS4zMTI2MSwgMS42Mzk0NCIsIFwKLSAgICAgICAgICAiMC4wNzUzMTYsIDAuMTEyNzYsIDAuMzMyMDE4LCAwLjUyNzUyNSwgMC43ODgyODksIDEuMzExMTUsIDEuNjM3NyIsIFwKLSAgICAgICAgICAiMC4wNzY1NDgsIDAuMTEzNTc5LCAwLjMzMjQ2NywgMC41MjgzOTcsIDAuNzg4NTUyLCAxLjMxMTE1LCAxLjYzNzciLCBcCi0gICAgICAgICAgIjAuMDc3NjI5LCAwLjExNDU2MywgMC4zMzI3MjksIDAuNTI3NTQyLCAwLjc4OTAwNiwgMS4zMTE0NSwgMS42MzczOSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzEwMTIsIDAuMDg5NTA2LCAwLjE5MjI1OSwgMC4yODI4NTUsIDAuNDAzNTgzLCAwLjY0NTMwNSwgMC43OTYwOTciLCBcCi0gICAgICAgICAgIjAuMDc4ODE3LCAwLjA5NzMwNCwgMC4yMDAwOTIsIDAuMjkwNjg5LCAwLjQxMTQ0MiwgMC42NTMxMzksIDAuODAzODkzIiwgXAotICAgICAgICAgICIwLjA4ODA1NCwgMC4xMDY1NDYsIDAuMjA5MzIsIDAuMjk5OTE4LCAwLjQyMDcwOSwgMC42NjIzOTEsIDAuODEzMDE3IiwgXAotICAgICAgICAgICIwLjA5NTUzNywgMC4xMTQwNTksIDAuMjE2ODI5LCAwLjMwNzM2OSwgMC40MjgxMzMsIDAuNjY5NTgzLCAwLjgyMDUxIiwgXAotICAgICAgICAgICIwLjEwMTgwMSwgMC4xMjAzNTUsIDAuMjIzMTQ2LCAwLjMxMzcwNSwgMC40MzQ0MTUsIDAuNjc2MzI4LCAwLjgyNjg0MiIsIFwKLSAgICAgICAgICAiMC4xMTAwODIsIDAuMTI4NzI3LCAwLjIzMTU3NSwgMC4zMjIxMDMsIDAuNDQyOTQ4LCAwLjY4NDI2NywgMC44MzU0NjQiLCBcCi0gICAgICAgICAgIjAuMTE2MTg2LCAwLjEzNDk1NywgMC4yMzc4MDUsIDAuMzI4MzM5LCAwLjQ0OTA3NiwgMC42OTA2OTgsIDAuODQxNTQzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3MTMwNCwgMC4xMDcyOTQsIDAuMzE2Mzg3LCAwLjUwMTQwMiwgMC43NTA0NDEsIDEuMjQ2MjgsIDEuNTU2OTMiLCBcCi0gICAgICAgICAgIjAuMDcxMzMxLCAwLjEwNzI3OSwgMC4zMTYzODQsIDAuNTAxNDEzLCAwLjc1MDA0NSwgMS4yNDYzLCAxLjU1Njk2IiwgXAotICAgICAgICAgICIwLjA3MTYwNCwgMC4xMDc0NzQsIDAuMzE2NDEzLCAwLjUwMTQzMiwgMC43NDk5MDEsIDEuMjQ2MjYsIDEuNTU3NDciLCBcCi0gICAgICAgICAgIjAuMDcyMjE5LCAwLjEwNzg3NCwgMC4zMTY0OTgsIDAuNTAyNjc0LCAwLjc1MDM2LCAxLjI0NTkzLCAxLjU1NzI1IiwgXAotICAgICAgICAgICIwLjA3Mjg4MiwgMC4xMDgzODEsIDAuMzE2NjE0LCAwLjUwMjc2NSwgMC43NTEyNzIsIDEuMjQ2OCwgMS41NTczNiIsIFwKLSAgICAgICAgICAiMC4wNzQzNDIsIDAuMTA5Mjk0LCAwLjMxNjg5MiwgMC41MDI2LCAwLjc0OTk2MiwgMS4yNDg5MSwgMS41NTY5MyIsIFwKLSAgICAgICAgICAiMC4wNzUxNjcsIDAuMTEwMTc0LCAwLjMxNzA5OCwgMC41MDIzMDYsIDAuNzQ5Nzk3LCAxLjI0NjUyLCAxLjU1ODE0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3NjczOCwgMC4wOTU0OTUsIDAuMjAxMTI3LCAwLjI5NDI1LCAwLjQxODM5MiwgMC42NjY2NjMsIDAuODIxODQ2IiwgXAotICAgICAgICAgICIwLjA4NDI4OCwgMC4xMDMwMzUsIDAuMjA4NjYxLCAwLjMwMTc5LCAwLjQyNTkyOSwgMC42NzQyMjUsIDAuODI5Mzk4IiwgXAotICAgICAgICAgICIwLjA5MDUxNiwgMC4xMDkyNjYsIDAuMjE0OTA4LCAwLjMwODAzMywgMC40MzIxNzEsIDAuNjgwMjcyLCAwLjgzNTYxNyIsIFwKLSAgICAgICAgICAiMC4wOTUxNiwgMC4xMTM5MDYsIDAuMjE5NTM3LCAwLjMxMjY5MSwgMC40MzY4MzIsIDAuNjg1MDk2LCAwLjg0MDI0NCIsIFwKLSAgICAgICAgICAiMC4wOTg3OTgsIDAuMTE3NTM3LCAwLjIyMzE5MywgMC4zMTYzMTcsIDAuNDQwNDI1LCAwLjY4ODY4MiwgMC44NDM4NDEiLCBcCi0gICAgICAgICAgIjAuMTAzNjAxLCAwLjEyMjI4OSwgMC4yMjc5NiwgMC4zMjExMDcsIDAuNDQ1MTc0LCAwLjY5MzQ2MywgMC44NDg2NDIiLCBcCi0gICAgICAgICAgIjAuMTA3MTMzLCAwLjEyNTg4MiwgMC4yMzE0OCwgMC4zMjQ2MTIsIDAuNDQ4NjkxLCAwLjY5NzAyMiwgMC44NTIxNTIiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDczMDE1LCAwLjExMTIxMSwgMC4zMzIwNTMsIDAuNTI4MzQyLCAwLjc4OTA3NCwgMS4zMTE2NCwgMS42MzcxOCIsIFwKLSAgICAgICAgICAiMC4wNzMwMDQsIDAuMTExMTg0LCAwLjMzMjMyMywgMC41MjgzNCwgMC43ODkxMzQsIDEuMzEwODksIDEuNjM3NDUiLCBcCi0gICAgICAgICAgIjAuMDczMDQ0LCAwLjExMTI1OCwgMC4zMzIwNDYsIDAuNTI4MzM5LCAwLjc4OTEyOSwgMS4zMTA2NiwgMS42MzgiLCBcCi0gICAgICAgICAgIjAuMDczMDU5LCAwLjExMTIzOCwgMC4zMzIzMjYsIDAuNTI4MzQ4LCAwLjc4ODY3LCAxLjMxMDgzLCAxLjYzODAxIiwgXAotICAgICAgICAgICIwLjA3MzAzMSwgMC4xMTEyMjksIDAuMzMxOTIxLCAwLjUyODMwNCwgMC43ODkwNDcsIDEuMzExNTcsIDEuNjM4MzQiLCBcCi0gICAgICAgICAgIjAuMDczMTUzLCAwLjExMTIwNCwgMC4zMzIyMDEsIDAuNTI3NjM3LCAwLjc4OTY2LCAxLjMxMjYsIDEuNjM5NTMiLCBcCi0gICAgICAgICAgIjAuMDczMTExLCAwLjExMTM3MiwgMC4zMzE5MjcsIDAuNTI4MDc0LCAwLjc4OTUzMywgMS4zMTI2MiwgMS42MzgwMyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzg5MTQsIDAuMDk3MjkzLCAwLjIwMDA0NiwgMC4yOTA2NDIsIDAuNDExMjk0LCAwLjY1MjY2OCwgMC44MDM1MTIiLCBcCi0gICAgICAgICAgIjAuMDg2NTY5LCAwLjEwNDk0OCwgMC4yMDc3MDEsIDAuMjk4MjcsIDAuNDE4OTU3LCAwLjY2MDQsIDAuODExMTYiLCBcCi0gICAgICAgICAgIjAuMDkzMDQ2LCAwLjExMTQxMiwgMC4yMTQxNzEsIDAuMzA0NzYxLCAwLjQyNTQxMSwgMC42NjY3ODUsIDAuODE3NjMzIiwgXAotICAgICAgICAgICIwLjA5Nzc3NywgMC4xMTYxNTEsIDAuMjE4OTA4LCAwLjMwOTQ3NSwgMC40MzAxNTEsIDAuNjcxNTE3LCAwLjgyMjM2MiIsIFwKLSAgICAgICAgICAiMC4xMDE1NzIsIDAuMTE5OTgxLCAwLjIyMjc0OSwgMC4zMTMzMywgMC40MzM5ODksIDAuNjc1MzUyLCAwLjgyNjE5NCIsIFwKLSAgICAgICAgICAiMC4xMDY3MDUsIDAuMTI1MDgxLCAwLjIyNzg2NywgMC4zMTg0MDgsIDAuNDM5MTUzLCAwLjY4MDQ0NywgMC44MzEyODciLCBcCi0gICAgICAgICAgIjAuMTEwNTI5LCAwLjEyODkwNiwgMC4yMzE2NDMsIDAuMzIyMjE2LCAwLjQ0Mjk0OCwgMC42ODQyNzMsIDAuODM1MTYzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3MDUxNCwgMC4xMDY3MSwgMC4zMTYxNTgsIDAuNTAxNzI5LCAwLjc1MDk3MywgMS4yNDczLCAxLjU1NzgyIiwgXAotICAgICAgICAgICIwLjA3MDU0NywgMC4xMDY3MTYsIDAuMzE2MTQ1LCAwLjUwMTc4NiwgMC43NTAyMzUsIDEuMjQ4NTksIDEuNTU3NjUiLCBcCi0gICAgICAgICAgIjAuMDcwNTg4LCAwLjEwNjcyMSwgMC4zMTYxMywgMC41MDE2MzQsIDAuNzUwODg5LCAxLjI0NzExLCAxLjU1NzciLCBcCi0gICAgICAgICAgIjAuMDcwNTcyLCAwLjEwNjcwNCwgMC4zMTYxMSwgMC41MDE3NzUsIDAuNzUwODQyLCAxLjI0NzAxLCAxLjU1NzM5IiwgXAotICAgICAgICAgICIwLjA3MDQ4MSwgMC4xMDY3NDUsIDAuMzE1NjQzLCAwLjUwMjQwMSwgMC43NTA4NDUsIDEuMjQ2ODQsIDEuNTU4ODYiLCBcCi0gICAgICAgICAgIjAuMDcwNjEyLCAwLjEwNjYwNiwgMC4zMTU3MTUsIDAuNTAyMzQxLCAwLjc0OTg1MiwgMS4yNDgwNywgMS41NTg4MiIsIFwKLSAgICAgICAgICAiMC4wNzA1ODUsIDAuMTA2ODU2LCAwLjMxNTYyNCwgMC41MDIzNzMsIDAuNzUwMDY1LCAxLjI0ODEyLCAxLjU1OTA1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2MDM2NCwgMC4wNzkxMjIsIDAuMTg0NzY2LCAwLjI3Nzg5MSwgMC40MDIwNDQsIDAuNjUwMjg0LCAwLjgwNTQ2NSIsIFwKLSAgICAgICAgICAiMC4wNjc4OTksIDAuMDg2NjY0LCAwLjE5MjMzMywgMC4yODU0NTksIDAuNDA5NTc5LCAwLjY1Nzg1OSwgMC44MTI5OSIsIFwKLSAgICAgICAgICAiMC4wNzY0NzEsIDAuMDk1MjM1LCAwLjIwMDg4NywgMC4yOTQwMTYsIDAuNDE4MTQxLCAwLjY2NjM1NiwgMC44MjE1MDgiLCBcCi0gICAgICAgICAgIjAuMDgzMjQsIDAuMTAyMDIzLCAwLjIwNzY0MiwgMC4zMDA3NTMsIDAuNDI0OTA1LCAwLjY3MzE4OCwgMC44MjgzMDgiLCBcCi0gICAgICAgICAgIjAuMDg4NzYxLCAwLjEwNzYxNiwgMC4yMTMxOTksIDAuMzA2MzMxLCAwLjQzMDUwMSwgMC42Nzg3MTQsIDAuODMzOTYiLCBcCi0gICAgICAgICAgIjAuMDk2MjI4LCAwLjExNTA2MiwgMC4yMjA2OSwgMC4zMTM3ODUsIDAuNDM3ODk3LCAwLjY4NjExNywgMC44NDEzNDIiLCBcCi0gICAgICAgICAgIjAuMTAxNzg1LCAwLjEyMDY0MSwgMC4yMjYzMDgsIDAuMzE5Mzg5LCAwLjQ0MzQ4OSwgMC42OTE2OTYsIDAuODQ2ODUzIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3MzAyNiwgMC4xMTExOTgsIDAuMzMyMDU5LCAwLjUyODM0NCwgMC43ODk4NjUsIDEuMzExNjUsIDEuNjM3OTUiLCBcCi0gICAgICAgICAgIjAuMDczMDU5LCAwLjExMTI0NiwgMC4zMzE4NzIsIDAuNTI3NTA1LCAwLjc4OTEzMSwgMS4zMTE0MSwgMS42Mzk2OCIsIFwKLSAgICAgICAgICAiMC4wNzM0OTEsIDAuMTExNTQ1LCAwLjMzMjI4OCwgMC41MjgyNzQsIDAuNzg5NjgxLCAxLjMxMjU4LCAxLjYzODAyIiwgXAotICAgICAgICAgICIwLjA3NDE5MSwgMC4xMTIwMjMsIDAuMzMxODg4LCAwLjUyODE1OSwgMC43ODg2ODMsIDEuMzEyNTksIDEuNjM5NDYiLCBcCi0gICAgICAgICAgIjAuMDc0OTQ1LCAwLjExMjQ0NiwgMC4zMzIxMjksIDAuNTI4MDk0LCAwLjc4OTU2MywgMS4zMTExMywgMS42Mzk0OCIsIFwKLSAgICAgICAgICAiMC4wNzYxMTQsIDAuMTEzMzA2LCAwLjMzMjE3MiwgMC41Mjc0NTUsIDAuNzg4OTY3LCAxLjMxMTU0LCAxLjYzOTI3IiwgXAotICAgICAgICAgICIwLjA3NzEwMSwgMC4xMTQxMTcsIDAuMzMyMjU4LCAwLjUyNzk5LCAwLjc4OTAxLCAxLjMxMTUyLCAxLjYzOTA2Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2MDY1MiwgMC4wNzkxMTQsIDAuMTgxODU1LCAwLjI3MjQ1MiwgMC4zOTMxOTIsIDAuNjM0ODIzLCAwLjc4NTQ2IiwgXAotICAgICAgICAgICIwLjA2ODA5OSwgMC4wODY1NjYsIDAuMTg5MzIyLCAwLjI3OTkyNSwgMC40MDA3NjUsIDAuNjQyMzExLCAwLjc5MzI5MSIsIFwKLSAgICAgICAgICAiMC4wNzY0MzEsIDAuMDk0OTI1LCAwLjE5NzY3NywgMC4yODgyNTMsIDAuNDA5MDE4LCAwLjY1MDY5MiwgMC44MDE0MzciLCBcCi0gICAgICAgICAgIjAuMDgyODQyLCAwLjEwMTM3OSwgMC4yMDQxNDksIDAuMjk0Njg3LCAwLjQxNTQyMSwgMC42NTcyOSwgMC44MDc4NDQiLCBcCi0gICAgICAgICAgIjAuMDg4MDE3LCAwLjEwNjY2MywgMC4yMDk0ODYsIDAuMzAwMDQ4LCAwLjQyMDcyOSwgMC42NjIyNDQsIDAuODEzMzcxIiwgXAotICAgICAgICAgICIwLjA5NTExOSwgMC4xMTM3NTUsIDAuMjE2NzEzLCAwLjMwNzIyOSwgMC40Mjc5MjMsIDAuNjY5MzM2LCAwLjgyMDMzOCIsIFwKLSAgICAgICAgICAiMC4xMDA0NDgsIDAuMTE5MDgsIDAuMjIyMTI1LCAwLjMxMjYxOSwgMC40MzMyOTUsIDAuNjc0NzM1LCAwLjgyNTczNCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzEwMTUsIDAuMTA3MDk0LCAwLjMxNjMyOCwgMC41MDE3MDQsIDAuNzUwMDU5LCAxLjI0NjQ3LCAxLjU1NjM4IiwgXAotICAgICAgICAgICIwLjA3MDk3OCwgMC4xMDcwNjgsIDAuMzE2MzE4LCAwLjUwMTc0NiwgMC43NTAwMzMsIDEuMjQ2NDQsIDEuNTU2NzkiLCBcCi0gICAgICAgICAgIjAuMDcxMjg5LCAwLjEwNzI3NSwgMC4zMTU5NiwgMC41MDE3MjUsIDAuNzUwNTQsIDEuMjQ2MzgsIDEuNTU3IiwgXAotICAgICAgICAgICIwLjA3MTg1LCAwLjEwNzcyMSwgMC4zMTY0NTksIDAuNTAyNjIxLCAwLjc1MTE1LCAxLjI0NzE4LCAxLjU1NzMxIiwgXAotICAgICAgICAgICIwLjA3MjM2NywgMC4xMDgxMzcsIDAuMzE2Mjg2LCAwLjUwMTY2OSwgMC43NTEzOCwgMS4yNDY3OSwgMS41NTY5NCIsIFwKLSAgICAgICAgICAiMC4wNzMzMjgsIDAuMTA4NzI4LCAwLjMxNjg5OCwgMC41MDI4NDIsIDAuNzUxNDI5LCAxLjI0OTAzLCAxLjU1NzIyIiwgXAotICAgICAgICAgICIwLjA3NDA5NSwgMC4xMDk0OTQsIDAuMzE2NzcyLCAwLjUwMjAxNiwgMC43NTEzNCwgMS4yNDkwOCwgMS41NTczIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2NDQ3OCwgMC4wODMyODYsIDAuMTg4ODg4LCAwLjI4MjAzLCAwLjQwNjIxNywgMC42NTQ5MzYsIDAuODA5OTkzIiwgXAotICAgICAgICAgICIwLjA3Mjg5LCAwLjA5MTcwNSwgMC4xOTczMDEsIDAuMjkwNDQzLCAwLjQxNDg3OSwgMC42NjMyMDYsIDAuODE4MzE1IiwgXAotICAgICAgICAgICIwLjA4MTIxNywgMC4xMDAwMjIsIDAuMjA1NjUsIDAuMjk4Nzk1LCAwLjQyMjkzOSwgMC42NzE0MTgsIDAuODI2NzQzIiwgXAotICAgICAgICAgICIwLjA4NjU5MiwgMC4xMDUzODcsIDAuMjExMDA5LCAwLjMwNDIwMSwgMC40MjgzNDUsIDAuNjc2Njg4LCAwLjgzMTg1NiIsIFwKLSAgICAgICAgICAiMC4wOTA4MjEsIDAuMTA5NTM0LCAwLjIxNTE0MiwgMC4zMDg0MjYsIDAuNDMyNTEyLCAwLjY4MTA2NiwgMC44MzY0NjgiLCBcCi0gICAgICAgICAgIjAuMDk2MSwgMC4xMTQ4NTcsIDAuMjIwMzQ1LCAwLjMxMzQ3MywgMC40Mzc2MzksIDAuNjg2MjYyLCAwLjg0MTM1NiIsIFwKLSAgICAgICAgICAiMC4wOTk5NTMsIDAuMTE4NzI2LCAwLjIyNDE2MiwgMC4zMTcyNzgsIDAuNDQxNDI2LCAwLjY4OTc1MywgMC44NDUwNDMiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDczNDQyLCAwLjExMTU4MSwgMC4zMzIyMjQsIDAuNTI4Mzk0LCAwLjc4ODU0OCwgMS4zMTEyNSwgMS42Mzg1IiwgXAotICAgICAgICAgICIwLjA3MzM2NiwgMC4xMTE1NjksIDAuMzMyMjExLCAwLjUyODM4OCwgMC43ODg4MTgsIDEuMzExMDYsIDEuNjM5NDEiLCBcCi0gICAgICAgICAgIjAuMDczMzIsIDAuMTExNTU0LCAwLjMzMTc3MiwgMC41Mjc0NjksIDAuNzg4NTU2LCAxLjMxMDQ5LCAxLjYzNzYiLCBcCi0gICAgICAgICAgIjAuMDczMjcyLCAwLjExMTQ0MSwgMC4zMzIyNjUsIDAuNTI3NDIsIDAuNzg4NTU3LCAxLjMxMTY4LCAxLjYzODU1IiwgXAotICAgICAgICAgICIwLjA3MzIzNCwgMC4xMTEzNjQsIDAuMzMyMjQ2LCAwLjUyNzUxNiwgMC43ODg1MywgMS4zMTEwNywgMS42Mzc4NSIsIFwKLSAgICAgICAgICAiMC4wNzMyNzUsIDAuMTExMzc0LCAwLjMzMTcwMywgMC41MjgwODYsIDAuNzg5MzAxLCAxLjMxMTA2LCAxLjYzNjg4IiwgXAotICAgICAgICAgICIwLjA3MzM5NywgMC4xMTE0MDIsIDAuMzMxNTE3LCAwLjUyNzI0MywgMC43ODg3NTEsIDEuMzExNCwgMS42MzczNSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzU0MjMsIDAuMDkzODA0LCAwLjE5NjU4MiwgMC4yODcxNDksIDAuNDA3ODQ4LCAwLjY0OTIxMSwgMC44MDAwNiIsIFwKLSAgICAgICAgICAiMC4wODMwMDgsIDAuMTAxMzkxLCAwLjIwNDE2OCwgMC4yOTQ3NywgMC40MTU0NTcsIDAuNjU2ODIsIDAuODA3NzI1IiwgXAotICAgICAgICAgICIwLjA4OTU5NCwgMC4xMDc5NzYsIDAuMjEwODI3LCAwLjMwMTQyNiwgMC40MjIwOTgsIDAuNjYzNTQ3LCAwLjgxNDMiLCBcCi0gICAgICAgICAgIjAuMDk0NDQ0LCAwLjExMjg2MiwgMC4yMTU2NTYsIDAuMzA2MjEzLCAwLjQyNjkyOCwgMC42NjgyODcsIDAuODE5MTQ5IiwgXAotICAgICAgICAgICIwLjA5ODM3MSwgMC4xMTY3OTMsIDAuMjE5NjM4LCAwLjMxMDE4MywgMC40MzA4ODYsIDAuNjcyMjc1LCAwLjgyMzE2MiIsIFwKLSAgICAgICAgICAiMC4xMDM0NzcsIDAuMTIxODc3LCAwLjIyNDc1LCAwLjMxNTMxLCAwLjQzNjAzNywgMC42Nzc0MiwgMC44MjgyNTQiLCBcCi0gICAgICAgICAgIjAuMTA3NDk0LCAwLjEyNTg4OCwgMC4yMjg4NTIsIDAuMzE5NDMsIDAuNDQwMTUyLCAwLjY4MTUxOCwgMC44MzI0NTUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDcwNTYsIDAuMTA2Njk3LCAwLjMxNjE1NiwgMC41MDE5MDQsIDAuNzUxMDA2LCAxLjI0NzI1LCAxLjU1Nzc4IiwgXAotICAgICAgICAgICIwLjA3MDUyNywgMC4xMDY3MDUsIDAuMzE2MTUyLCAwLjUwMTY4NywgMC43NTEwNDIsIDEuMjQ4MzYsIDEuNTU5NDEiLCBcCi0gICAgICAgICAgIjAuMDcwNTg2LCAwLjEwNjcwNiwgMC4zMTYxNTIsIDAuNTAxNzUzLCAwLjc0OTc1MSwgMS4yNDYzLCAxLjU1NzYxIiwgXAotICAgICAgICAgICIwLjA3MDU4MiwgMC4xMDY3NzcsIDAuMzE2MTQ0LCAwLjUwMTkyMiwgMC43NTA5MTEsIDEuMjQ4MTQsIDEuNTU3NSIsIFwKLSAgICAgICAgICAiMC4wNzA1NDUsIDAuMTA2NzgxLCAwLjMxNTkwMSwgMC41MDIzMjYsIDAuNzUwODYxLCAxLjI0NzAxLCAxLjU1OTA3IiwgXAotICAgICAgICAgICIwLjA3MDY3OSwgMC4xMDY2NTQsIDAuMzE1OTgsIDAuNTAxODgyLCAwLjc1MDEzNiwgMS4yNDgxOSwgMS41NTg5MSIsIFwKLSAgICAgICAgICAiMC4wNzA1NzksIDAuMTA2ODUsIDAuMzE1ODI2LCAwLjUwMjAwMiwgMC43NTAyMTYsIDEuMjQ4MDIsIDEuNTU2MTgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDM3OTMsIDAuMDAzNzk2LCAwLjAwMzc5OSwgMC4wMDM4LCAwLjAwMzgsIDAuMDAzODAxLCAwLjAwMzgwMSIsIFwKLSAgICAgICAgICAiMC4wMDM3ODksIDAuMDAzNzk0LCAwLjAwMzgwMSwgMC4wMDM4MDEsIDAuMDAzODAxLCAwLjAwMzgwMiwgMC4wMDM4MDIiLCBcCi0gICAgICAgICAgIjAuMDAzODU2LCAwLjAwMzg2LCAwLjAwMzg2OCwgMC4wMDM4NjksIDAuMDAzODY5LCAwLjAwMzg3LCAwLjAwMzg3IiwgXAotICAgICAgICAgICIwLjAwMzk0MywgMC4wMDM5NDksIDAuMDAzOTU2LCAwLjAwMzk1NywgMC4wMDM5NTgsIDAuMDAzOTU5LCAwLjAwMzk1OSIsIFwKLSAgICAgICAgICAiMC4wMDQwNTgsIDAuMDA0MDU1LCAwLjAwNDA3LCAwLjAwNDA3MSwgMC4wMDQwNjYsIDAuMDA0MDcyLCAwLjAwNDA3MyIsIFwKLSAgICAgICAgICAiMC4wMDQyNTYsIDAuMDA0MjQ5LCAwLjAwNDI2MywgMC4wMDQyNjYsIDAuMDA0MjU2LCAwLjAwNDI1OCwgMC4wMDQyNjciLCBcCi0gICAgICAgICAgIjAuMDA0NDQsIDAuMDA0NDQxLCAwLjAwNDQ0NiwgMC4wMDQ0NDcsIDAuMDA0NDM3LCAwLjAwNDQzNywgMC4wMDQ0NDgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI1OTksIDAuMDAyNjAyLCAwLjAwMjYwNSwgMC4wMDI2MDYsIDAuMDAyNjA2LCAwLjAwMjYwNiwgMC4wMDI2MDciLCBcCi0gICAgICAgICAgIjAuMDAyNTgsIDAuMDAyNTg0LCAwLjAwMjU4OSwgMC4wMDI1ODksIDAuMDAyNTksIDAuMDAyNTksIDAuMDAyNTkiLCBcCi0gICAgICAgICAgIjAuMDAyNjMsIDAuMDAyNjM0LCAwLjAwMjYzOSwgMC4wMDI2NCwgMC4wMDI2NDEsIDAuMDAyNjQyLCAwLjAwMjY0MSIsIFwKLSAgICAgICAgICAiMC4wMDI3MSwgMC4wMDI3MTQsIDAuMDAyNzIsIDAuMDAyNzIsIDAuMDAyNzIxLCAwLjAwMjcyMSwgMC4wMDI3MjEiLCBcCi0gICAgICAgICAgIjAuMDAyODA4LCAwLjAwMjgxMSwgMC4wMDI4MTYsIDAuMDAyODE2LCAwLjAwMjgxNiwgMC4wMDI4MTcsIDAuMDAyODE3IiwgXAotICAgICAgICAgICIwLjAwMjk4NywgMC4wMDI5ODksIDAuMDAyOTkyLCAwLjAwMjk5NCwgMC4wMDI5OTMsIDAuMDAyOTkzLCAwLjAwMjk5MyIsIFwKLSAgICAgICAgICAiMC4wMDMxNTUsIDAuMDAzMTU3LCAwLjAwMzE1OCwgMC4wMDMxNTgsIDAuMDAzMTU4LCAwLjAwMzE1OSwgMC4wMDMxNTkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDM4MTUsIDAuMDAzODI1LCAwLjAwMzgzOCwgMC4wMDM4NDEsIDAuMDAzODQyLCAwLjAwMzg0NCwgMC4wMDM4NDQiLCBcCi0gICAgICAgICAgIjAuMDAzODY0LCAwLjAwMzg3NCwgMC4wMDM4OSwgMC4wMDM4OTQsIDAuMDAzODk2LCAwLjAwMzg5NiwgMC4wMDM5IiwgXAotICAgICAgICAgICIwLjAwMzk2NCwgMC4wMDM5NzYsIDAuMDAzOTk2LCAwLjAwNDAwMSwgMC4wMDQwMDMsIDAuMDA0MDA2LCAwLjAwNDAwNiIsIFwKLSAgICAgICAgICAiMC4wMDQwOTEsIDAuMDA0MTA0LCAwLjAwNDEyNCwgMC4wMDQxMjksIDAuMDA0MTMxLCAwLjAwNDEzMiwgMC4wMDQxMzQiLCBcCi0gICAgICAgICAgIjAuMDA0MjM4LCAwLjAwNDI1LCAwLjAwNDI3MiwgMC4wMDQyNzcsIDAuMDA0MjgxLCAwLjAwNDI4LCAwLjAwNDI4NSIsIFwKLSAgICAgICAgICAiMC4wMDQ0NzMsIDAuMDA0NDgzLCAwLjAwNDUwNCwgMC4wMDQ1MSwgMC4wMDQ1MTMsIDAuMDA0NTE3LCAwLjAwNDUxOSIsIFwKLSAgICAgICAgICAiMC4wMDQ2ODgsIDAuMDA0Njk1LCAwLjAwNDcxNSwgMC4wMDQ3MjEsIDAuMDA0NzI2LCAwLjAwNDczLCAwLjAwNDczIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyMzA3LCAwLjAwMjMxMywgMC4wMDIzMjIsIDAuMDAyMzI1LCAwLjAwMjMyNiwgMC4wMDIzMjcsIDAuMDAyMzI3IiwgXAotICAgICAgICAgICIwLjAwMjMwOSwgMC4wMDIzMTYsIDAuMDAyMzI2LCAwLjAwMjMyOCwgMC4wMDIzMjksIDAuMDAyMzMsIDAuMDAyMzMxIiwgXAotICAgICAgICAgICIwLjAwMjM3NiwgMC4wMDIzODMsIDAuMDAyMzg5LCAwLjAwMjM5MSwgMC4wMDIzOTIsIDAuMDAyMzkzLCAwLjAwMjM5NCIsIFwKLSAgICAgICAgICAiMC4wMDI0ODYsIDAuMDAyNDkyLCAwLjAwMjUwMSwgMC4wMDI1MDMsIDAuMDAyNTA0LCAwLjAwMjUwNSwgMC4wMDI1MDUiLCBcCi0gICAgICAgICAgIjAuMDAyNjAxLCAwLjAwMjYwNiwgMC4wMDI2MTIsIDAuMDAyNjE1LCAwLjAwMjYxNiwgMC4wMDI2MTYsIDAuMDAyNjE3IiwgXAotICAgICAgICAgICIwLjAwMjc4MywgMC4wMDI3ODUsIDAuMDAyNzkxLCAwLjAwMjc5MiwgMC4wMDI3OTQsIDAuMDAyNzk0LCAwLjAwMjc5NCIsIFwKLSAgICAgICAgICAiMC4wMDI5ODksIDAuMDAyOTkxLCAwLjAwMjk2LCAwLjAwMjk2MSwgMC4wMDI5NjIsIDAuMDAyOTYyLCAwLjAwMjk2MiIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogQU5EM1g0ICoKLSAqIC0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoQU5EM1g0KSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuNTk0NDsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwOTE0OTc4OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDkxNDk3ODsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA5MTMyMDM7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNTI0LCAwLjAwMDUyNCwgMC4wMDA1MjQsIDAuMDAwNTI0LCAwLjAwMDUyNCwgMC4wMDA1MjQsIDAuMDAwNTIzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNTI1LCAwLjAwMDUyNSwgMC4wMDA1MjUsIDAuMDAwNTI1LCAwLjAwMDUyNSwgMC4wMDA1MjUsIDAuMDAwNTI0Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA5MzU0NTQ7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwOTM1NDU0OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDkzNDMyOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDUyNCwgMC4wMDA1MjQsIDAuMDAwNTI0LCAwLjAwMDUyNCwgMC4wMDA1MjQsIDAuMDAwNTIzLCAwLjAwMDUyMyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDUyNSwgMC4wMDA1MjUsIDAuMDAwNTI1LCAwLjAwMDUyNiwgMC4wMDA1MjYsIDAuMDAwNTI2LCAwLjAwMDUyNiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQykgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwOTMyMzc1OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDkzMTk1NDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA5MzIzNzU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzMzLCAwLjAwMDMzMiwgMC4wMDAzMzIsIDAuMDAwMzMyLCAwLjAwMDMzMiwgMC4wMDAzMzIsIDAuMDAwMzMyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNTk1LCAwLjAwMDU5NiwgMC4wMDA1OTYsIDAuMDAwNTk2LCAwLjAwMDU5NiwgMC4wMDA1OTYsIDAuMDAwNTk2Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDEuMzU1OTM7Ci0gICAgZnVuY3Rpb24gOiAiKChBIEIpIEMpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2NDM2OCwgMC4xMjY5NjYsIDAuMTgyMTgzLCAwLjIyMTM4LCAwLjI4NDAxNSwgMC4zMzg4NDEsIDAuNDE3MTAyIiwgXAotICAgICAgICAgICIwLjA2OTU3MiwgMC4xMzIxMTYsIDAuMTg3MzgsIDAuMjI2NTYsIDAuMjg5MjIyLCAwLjM0NDAxNiwgMC40MjIyOTgiLCBcCi0gICAgICAgICAgIjAuMDc1NjQ2LCAwLjEzODA5MiwgMC4xOTMzMDYsIDAuMjMyNDg3LCAwLjI5NTE1LCAwLjM0OTk0NiwgMC40MjgyMjciLCBcCi0gICAgICAgICAgIjAuMDgxMjQ0LCAwLjE0Mzg2NiwgMC4xOTkwNiwgMC4yMzgyNTgsIDAuMzAwOTIxLCAwLjM1NTcxOCwgMC40MzM5OTQiLCBcCi0gICAgICAgICAgIjAuMDg2MzIsIDAuMTQ5MjQ1LCAwLjIwNDQ5MSwgMC4yNDM2NjgsIDAuMzA2MzIzLCAwLjM2MTExOSwgMC40MzkzODkiLCBcCi0gICAgICAgICAgIjAuMDkzNzQsIDAuMTU3MjA1LCAwLjIxMjUxNywgMC4yNTE3MDMsIDAuMzE0MzM5LCAwLjM2OTE0MSwgMC40NDc0MTQiLCBcCi0gICAgICAgICAgIjAuMDk5NjQyLCAwLjE2MzU5MSwgMC4yMTg5NiwgMC4yNTgxMywgMC4zMjA3NDYsIDAuMzc1NTg3LCAwLjQ1MzgzMyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzNTQ2LCAwLjE0NTU0MiwgMC4yNTc5NzUsIDAuMzM5ODU4LCAwLjQ3MTE1MSwgMC41ODY4MiwgMC43NTE3OTUiLCBcCi0gICAgICAgICAgIjAuMDM1MjEsIDAuMTQ1NTQ1LCAwLjI1ODAyNCwgMC4zMzk2MSwgMC40NzE0NTEsIDAuNTg2NzI5LCAwLjc1MTAxNyIsIFwKLSAgICAgICAgICAiMC4wMzUzMjksIDAuMTQ1NTU1LCAwLjI1ODE5MSwgMC4zMzk4MzUsIDAuNDcxNDMzLCAwLjU4NjczNiwgMC43NTEwMTUiLCBcCi0gICAgICAgICAgIjAuMDM1OTUyLCAwLjE0NTc2NywgMC4yNTgzNDQsIDAuMzM5ODg3LCAwLjQ3MTQyNCwgMC41ODY3NjgsIDAuNzUwOTkiLCBcCi0gICAgICAgICAgIjAuMDM2ODU1LCAwLjE0NjEzNywgMC4yNTg0MzQsIDAuMzM5ODE4LCAwLjQ3MTUxMSwgMC41ODY3OTQsIDAuNzUwOTU1IiwgXAotICAgICAgICAgICIwLjAzNzU5NiwgMC4xNDY5MzksIDAuMjU4ODM1LCAwLjM0MDE0NSwgMC40NzA3ODcsIDAuNTg2OTM5LCAwLjc1MTk3OSIsIFwKLSAgICAgICAgICAiMC4wMzg2ODMsIDAuMTQ3Njc5LCAwLjI1OTQ0NywgMC4zNDA0ODUsIDAuNDcxMzE4LCAwLjU4NzEzNywgMC43NTIwODMiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzczNjgsIDAuMDkyODUsIDAuMTQ2NzUyLCAwLjE4NTIxNywgMC4yNDY3NzcsIDAuMzAwNTc3LCAwLjM3NzQ0NiIsIFwKLSAgICAgICAgICAiMC4wNDU1NywgMC4xMDEwODYsIDAuMTU0OTg4LCAwLjE5MzQ4MywgMC4yNTUwMDgsIDAuMzA4ODEyLCAwLjM4NTY4MiIsIFwKLSAgICAgICAgICAiMC4wNTUzNSwgMC4xMTA5MTgsIDAuMTY0ODE3LCAwLjIwMzI4NSwgMC4yNjQ4MzYsIDAuMzE4NjM5LCAwLjM5NTUwOCIsIFwKLSAgICAgICAgICAiMC4wNjI5MzksIDAuMTE4NzIsIDAuMTcyNTk0LCAwLjIxMTA1OCwgMC4yNzI1NywgMC4zMjYzOTEsIDAuNDAzMjc5IiwgXAotICAgICAgICAgICIwLjA2OTE1MiwgMC4xMjUxNzEsIDAuMTc5MDIsIDAuMjE3NDgxLCAwLjI3ODk5NiwgMC4zMzI4MTcsIDAuNDA5NzI2IiwgXAotICAgICAgICAgICIwLjA3NjkyMSwgMC4xMzMzNTgsIDAuMTg3MTY2LCAwLjIyNTYzMSwgMC4yODcxMDYsIDAuMzQwOTMzLCAwLjQxNzgxNiIsIFwKLSAgICAgICAgICAiMC4wODI2MTgsIDAuMTM5NDc4LCAwLjE5MzI5MSwgMC4yMzE3MTcsIDAuMjkzMjAxLCAwLjM0NzAxMSwgMC40MjM4ODUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjU0MjMsIDAuMTMzOTU4LCAwLjI0NTEwMSwgMC4zMjQ4NjgsIDAuNDUyNDEzLCAwLjU2NTI1NSwgMC43MjUyNDkiLCBcCi0gICAgICAgICAgIjAuMDI1Mzk5LCAwLjEzMzk1MywgMC4yNDUzNTIsIDAuMzI0NTgsIDAuNDUzMjE1LCAwLjU2NTIxNywgMC43MjUyNTMiLCBcCi0gICAgICAgICAgIjAuMDI2Mjc3LCAwLjEzNDA3NCwgMC4yNDUzODIsIDAuMzI1MjQ0LCAwLjQ1MzIyMiwgMC41NjUyMjksIDAuNzI1MjIxIiwgXAotICAgICAgICAgICIwLjAyNzgzNCwgMC4xMzQyNSwgMC4yNDU0OTIsIDAuMzI1MzA0LCAwLjQ1MzE5NCwgMC41NjUyLCAwLjcyNTI3NCIsIFwKLSAgICAgICAgICAiMC4wMjg5NzksIDAuMTM0NjA3LCAwLjI0NTYxNSwgMC4zMjQ5ODcsIDAuNDUyNzQzLCAwLjU2NTIxMywgMC43MjUyNzQiLCBcCi0gICAgICAgICAgIjAuMDMwOTAxLCAwLjEzNTI3MiwgMC4yNDU2NTQsIDAuMzI1MzUyLCAwLjQ1MzI1OSwgMC41NjUxNDcsIDAuNzI1MTIyIiwgXAotICAgICAgICAgICIwLjAzMjU3NCwgMC4xMzU4ODksIDAuMjQ1OTI4LCAwLjMyNTIyMiwgMC40NTMxNTMsIDAuNTY0NzYxLCAwLjcyNDYxMiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2Mjc2MywgMC4xMjUzNzEsIDAuMTgwNTkyLCAwLjIxOTc5LCAwLjI4MjQyNSwgMC4zMzcyNTUsIDAuNDE1NTE3IiwgXAotICAgICAgICAgICIwLjA2ODk4MiwgMC4xMzE1ODUsIDAuMTg2ODAzLCAwLjIyNTk5OSwgMC4yODg2NjgsIDAuMzQzNDY1LCAwLjQyMTcyNyIsIFwKLSAgICAgICAgICAiMC4wNzcxNDYsIDAuMTM5NTkxLCAwLjE5NDc4OCwgMC4yMzM5ODMsIDAuMjk2NjQ3LCAwLjM1MTQ0NSwgMC40Mjk3MjUiLCBcCi0gICAgICAgICAgIjAuMDg0ODU2LCAwLjE0NzM3NSwgMC4yMDI1ODUsIDAuMjQxNzU2LCAwLjMwNDQyMiwgMC4zNTkyMiwgMC40Mzc2MTUiLCBcCi0gICAgICAgICAgIjAuMDkxOTQyLCAwLjE1NDY4NCwgMC4yMDk4OTIsIDAuMjQ5MTIyLCAwLjMxMTc4MywgMC4zNjY1NjMsIDAuNDQ0ODc4IiwgXAotICAgICAgICAgICIwLjEwMTc1MywgMC4xNjUxMTEsIDAuMjIwNDg3LCAwLjI1OTYzLCAwLjMyMjI2MiwgMC4zNzcwNDEsIDAuNDU1MzE0IiwgXAotICAgICAgICAgICIwLjEwOTQxMywgMC4xNzM1ODIsIDAuMjI4ODk4LCAwLjI2ODEsIDAuMzMwNzIyLCAwLjM4NTUwNCwgMC40NjM4MzMiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzU0NTYsIDAuMTQ1NTU2LCAwLjI1ODA0MSwgMC4zMzk2MzEsIDAuNDcwODQ4LCAwLjU4NjgyLCAwLjc1MTgwMiIsIFwKLSAgICAgICAgICAiMC4wMzUzMTQsIDAuMTQ1NTYyLCAwLjI1ODAxMiwgMC4zMzk2MTQsIDAuNDcxMzU2LCAwLjU4Njc5NCwgMC43NTE3ODIiLCBcCi0gICAgICAgICAgIjAuMDM1NDY1LCAwLjE0NTU5OCwgMC4yNTgxOCwgMC4zMzk4NSwgMC40NzE0NCwgMC41ODY3NDYsIDAuNzUxMDIxIiwgXAotICAgICAgICAgICIwLjAzNTg3OSwgMC4xNDU4NzEsIDAuMjU4Mjc5LCAwLjMzOTkzLCAwLjQ3MTQ0MSwgMC41ODY3MDQsIDAuNzUwNTciLCBcCi0gICAgICAgICAgIjAuMDM2ODI5LCAwLjE0NjMyLCAwLjI1ODUzOSwgMC4zMzk4NDMsIDAuNDcxNDk0LCAwLjU4NjEwNywgMC43NTE5NiIsIFwKLSAgICAgICAgICAiMC4wMzgyOCwgMC4xNDcyODgsIDAuMjU5MTM2LCAwLjM0MDIxOSwgMC40NzA5ODgsIDAuNTg2NzU1LCAwLjc1MTg5OSIsIFwKLSAgICAgICAgICAiMC4wMzk4NjUsIDAuMTQ3ODY5LCAwLjI1OTUwNiwgMC4zNDAzNDUsIDAuNDcxNjU1LCAwLjU4NjgzMywgMC43NTIxMjMiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzYyNTIsIDAuMDkxNjQyLCAwLjE0NTUxNywgMC4xODM5NywgMC4yNDU0OTksIDAuMjk5MzQyLCAwLjM3NjE3MiIsIFwKLSAgICAgICAgICAiMC4wNDQ1MDIsIDAuMDk5ODgxLCAwLjE1Mzc2NCwgMC4xOTIyMywgMC4yNTM3NjYsIDAuMzA3NTY2LCAwLjM4NDQyOCIsIFwKLSAgICAgICAgICAiMC4wNTQwMywgMC4xMDk1MDEsIDAuMTYzMzc3LCAwLjIwMTgzMywgMC4yNjMzNjksIDAuMzE3MTY3LCAwLjM5NDAzMyIsIFwKLSAgICAgICAgICAiMC4wNjEyNjQsIDAuMTE2OTk5LCAwLjE3MDg1MSwgMC4yMDkzMjcsIDAuMjcwODI4LCAwLjMyNDY0NCwgMC40MDE1MTMiLCBcCi0gICAgICAgICAgIjAuMDY2OTkyLCAwLjEyMjk3NCwgMC4xNzY4MTcsIDAuMjE1MjU4LCAwLjI3Njc1NiwgMC4zMzA1NjcsIDAuNDA3NDU5IiwgXAotICAgICAgICAgICIwLjA3NDU2NiwgMC4xMzA5NjgsIDAuMTg0NzkyLCAwLjIyMzE0OCwgMC4yODQ3MjgsIDAuMzM4NDMyLCAwLjQxNTMwMiIsIFwKLSAgICAgICAgICAiMC4wNzk3NDksIDAuMTM2NTMxLCAwLjE5MDM2MywgMC4yMjg5OTMsIDAuMjkwNDk2LCAwLjM0NDA0LCAwLjQyMDg5MSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyNTE1OSwgMC4xMzM4MDEsIDAuMjQ1MjM0LCAwLjMyNTAzMiwgMC40NTIzNzIsIDAuNTY1MjE2LCAwLjcyNTE0OSIsIFwKLSAgICAgICAgICAiMC4wMjUxNjUsIDAuMTMzNzksIDAuMjQ1MjA4LCAwLjMyNDc0LCAwLjQ1MzE3NywgMC41NjUxMjgsIDAuNzI1MTciLCBcCi0gICAgICAgICAgIjAuMDI2MDg4LCAwLjEzMzkzMSwgMC4yNDUyNTUsIDAuMzI1MDYzLCAwLjQ1MzE2NSwgMC41NjUxMDksIDAuNzI1MTM2IiwgXAotICAgICAgICAgICIwLjAyNzUzNCwgMC4xMzQxODgsIDAuMjQ1MzI4LCAwLjMyNTE2LCAwLjQ1MzEyNywgMC41NjUwNTMsIDAuNzI1MTc0IiwgXAotICAgICAgICAgICIwLjAyODk2OSwgMC4xMzQ1NDQsIDAuMjQ1NDAzLCAwLjMyNDc2NSwgMC40NTMxMDQsIDAuNTY1MDMyLCAwLjcyNDE5NiIsIFwKLSAgICAgICAgICAiMC4wMzEwOTgsIDAuMTM1MTE5LCAwLjI0NTUxLCAwLjMyNDk3OCwgMC40NTI1OTYsIDAuNTY0NTQ3LCAwLjcyNDUwMiIsIFwKLSAgICAgICAgICAiMC4wMzI1MTIsIDAuMTM1ODg2LCAwLjI0NTc3NywgMC4zMjUyNjcsIDAuNDUyNjYxLCAwLjU2NDQxNCwgMC43MjQ5MjYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTk5MzcsIDAuMTIyNTAzLCAwLjE3Nzc2NSwgMC4yMTY5NDcsIDAuMjc5NjA3LCAwLjMzNDQwMywgMC40MTI2NzciLCBcCi0gICAgICAgICAgIjAuMDY2OTg1LCAwLjEyOTUyMiwgMC4xODQ3MzYsIDAuMjIzOTQyLCAwLjI4NjU4NCwgMC4zNDE0MDksIDAuNDE5NjcyIiwgXAotICAgICAgICAgICIwLjA3NjQ2OCwgMC4xMzg5MTgsIDAuMTk0MTUxLCAwLjIzMzMyMywgMC4yOTU5ODUsIDAuMzUwODU3LCAwLjQyOTA4OCIsIFwKLSAgICAgICAgICAiMC4wODU1NTIsIDAuMTQ4MTE4LCAwLjIwMzMxOSwgMC4yNDI1MDgsIDAuMzA1MTc0LCAwLjM1OTk3MywgMC40MzgyNTMiLCBcCi0gICAgICAgICAgIjAuMDkzOTk3LCAwLjE1NjY3OSwgMC4yMTE5MDUsIDAuMjUxMDg4LCAwLjMxMzcwNSwgMC4zNjg1MzMsIDAuNDQ2Nzk2IiwgXAotICAgICAgICAgICIwLjEwNTU4NCwgMC4xNjg5NzEsIDAuMjI0MzAzLCAwLjI2MzQ1OSwgMC4zMjYwOCwgMC4zODA5MDMsIDAuNDU5MTUyIiwgXAotICAgICAgICAgICIwLjExMzkxNSwgMC4xNzc4OTIsIDAuMjMzNDI1LCAwLjI3MjU1MywgMC4zMzUsIDAuMzg5NzY3LCAwLjQ2ODA0NyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzNTM4NCwgMC4xNDU2MDQsIDAuMjU4MDQyLCAwLjMzOTYyLCAwLjQ3MTQyNCwgMC41ODY3ODMsIDAuNzUwOTkxIiwgXAotICAgICAgICAgICIwLjAzNTM0NiwgMC4xNDU1NDYsIDAuMjU4MTczLCAwLjMzOTYwNSwgMC40NzA1MywgMC41ODY3OTUsIDAuNzUxNzgiLCBcCi0gICAgICAgICAgIjAuMDM1NDc0LCAwLjE0NTUxNCwgMC4yNTgwMDcsIDAuMzM5ODYxLCAwLjQ3MTQwNCwgMC41ODU4MDIsIDAuNzUxOTcxIiwgXAotICAgICAgICAgICIwLjAzNjMzMSwgMC4xNDU4ODgsIDAuMjU4MzA1LCAwLjMzOTkyLCAwLjQ3MTQ0NCwgMC41ODY3NjMsIDAuNzUxMDQiLCBcCi0gICAgICAgICAgIjAuMDM3NDM0LCAwLjE0NjI4MiwgMC4yNTg1MzIsIDAuMzQwMDksIDAuNDcxLCAwLjU4NTksIDAuNzUxODI3IiwgXAotICAgICAgICAgICIwLjAzOTM3MywgMC4xNDczMDksIDAuMjU5MTU1LCAwLjM0MDM1MSwgMC40NzE0NjgsIDAuNTg2MDYxLCAwLjc1MTk1IiwgXAotICAgICAgICAgICIwLjA0MTI0OSwgMC4xNDgxNzMsIDAuMjU5NzE5LCAwLjM0MDY4NiwgMC40NzE4NywgMC41ODY4ODYsIDAuNzUyMDkzIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM0OTYsIDAuMDkwMzE1LCAwLjE0NDE2OSwgMC4xODI2MTgsIDAuMjQ0MTUsIDAuMjk3OTUxLCAwLjM3NDkxIiwgXAotICAgICAgICAgICIwLjA0MzIwMiwgMC4wOTg0OTksIDAuMTUyMzYxLCAwLjE5MDg2NywgMC4yNTI0MTcsIDAuMzA2MjQ5LCAwLjM4MzE5IiwgXAotICAgICAgICAgICIwLjA1MjQ1LCAwLjEwNzY2OCwgMC4xNjE1MTgsIDAuMTk5OTczLCAwLjI2MTQ5NywgMC4zMTU0OTgsIDAuMzkyMjM1IiwgXAotICAgICAgICAgICIwLjA1OTM4MSwgMC4xMTQ5NDksIDAuMTY4OTc1LCAwLjIwNzQ0OCwgMC4yNjg5NzMsIDAuMzIyODY1LCAwLjM5OTc0MiIsIFwKLSAgICAgICAgICAiMC4wNjQ4MjYsIDAuMTIwODc5LCAwLjE3NDgyMywgMC4yMTI5NzksIDAuMjc0NDQ5LCAwLjMyODI4MSwgMC40MDUyNjciLCBcCi0gICAgICAgICAgIjAuMDcxNzU1LCAwLjEyODE5OSwgMC4xODE5MiwgMC4yMjAyODcsIDAuMjgxNzgxLCAwLjMzNTU2MiwgMC40MTI1OSIsIFwKLSAgICAgICAgICAiMC4wNzY2MDcsIDAuMTMzMzYyLCAwLjE4NzE3NywgMC4yMjU1MTEsIDAuMjg2OTYxLCAwLjM0MDgxLCAwLjQxNzYzNyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyNDk4NCwgMC4xMzM1MzUsIDAuMjQ1MTQzLCAwLjMyNTA5NiwgMC40NTIyMzksIDAuNTY1LCAwLjcyNDEzNyIsIFwKLSAgICAgICAgICAiMC4wMjUwMjksIDAuMTMzNjk0LCAwLjI0NTEyNCwgMC4zMjQ1NTYsIDAuNDUyMzA2LCAwLjU2NDIwOSwgMC43MjQwMDgiLCBcCi0gICAgICAgICAgIjAuMDI2MDcsIDAuMTMzNzU0LCAwLjI0NTIwNCwgMC4zMjQ3MzIsIDAuNDUzMTUyLCAwLjU2NDEzMiwgMC43MjM5MDkiLCBcCi0gICAgICAgICAgIjAuMDI3NjM0LCAwLjEzNDE1OCwgMC4yNDUyNjksIDAuMzI1MTk1LCAwLjQ1MjI1OCwgMC41NjQzNTMsIDAuNzI1MjAyIiwgXAotICAgICAgICAgICIwLjAyOTA1MSwgMC4xMzQ2MTYsIDAuMjQ1NTA0LCAwLjMyNDcyNiwgMC40NTMxNzEsIDAuNTY1MjQxLCAwLjcyMzk5OSIsIFwKLSAgICAgICAgICAiMC4wMzExMDEsIDAuMTM1MjQxLCAwLjI0NTU1OCwgMC4zMjU0NDEsIDAuNDUzMzQyLCAwLjU2NTI3MiwgMC43MjQwNiIsIFwKLSAgICAgICAgICAiMC4wMzI3MTUsIDAuMTM2MTQ0LCAwLjI0NTc2NiwgMC4zMjU1MzksIDAuNDUzMjkyLCAwLjU2NDYwMywgMC43MjQ1MTIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNTk1NSwgMC4wMDU4NiwgMC4wMDU4NTQsIDAuMDA1ODU1LCAwLjAwNTg0NiwgMC4wMDU4NTEsIDAuMDA1ODU5IiwgXAotICAgICAgICAgICIwLjAwNTg0MSwgMC4wMDU3NzQsIDAuMDA1Nzc3LCAwLjAwNTc4LCAwLjAwNTc4MSwgMC4wMDU3NzksIDAuMDA1NzgxIiwgXAotICAgICAgICAgICIwLjAwNTg0NCwgMC4wMDU3NjMsIDAuMDA1NzY2LCAwLjAwNTc2OSwgMC4wMDU3NjgsIDAuMDA1NzY2LCAwLjAwNTc2NyIsIFwKLSAgICAgICAgICAiMC4wMDU5MjIsIDAuMDA1Nzk4LCAwLjAwNTc5NiwgMC4wMDU3OTgsIDAuMDA1Nzk4LCAwLjAwNTc5MiwgMC4wMDU3OTQiLCBcCi0gICAgICAgICAgIjAuMDA2MDU4LCAwLjAwNTg2MSwgMC4wMDU4NTIsIDAuMDA1ODUsIDAuMDA1ODUyLCAwLjAwNTg0NCwgMC4wMDU4NDYiLCBcCi0gICAgICAgICAgIjAuMDA2MTk3LCAwLjAwNTk4LCAwLjAwNTk3MSwgMC4wMDU5NjgsIDAuMDA1OTY0LCAwLjAwNTk1OSwgMC4wMDU5NiIsIFwKLSAgICAgICAgICAiMC4wMDY0ODksIDAuMDA2MTQ1LCAwLjAwNjEyNSwgMC4wMDYxMSwgMC4wMDYxMTIsIDAuMDA2MTA2LCAwLjAwNjEwNSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA4NTU5LCAwLjAwODczLCAwLjAwODc1NywgMC4wMDg3NjUsIDAuMDA4NzcyLCAwLjAwODc3NiwgMC4wMDg3OCIsIFwKLSAgICAgICAgICAiMC4wMDg1MTgsIDAuMDA4NzAyLCAwLjAwODczOCwgMC4wMDg3NDksIDAuMDA4NzYsIDAuMDA4NzY2LCAwLjAwODc3IiwgXAotICAgICAgICAgICIwLjAwODU5NiwgMC4wMDg3MjksIDAuMDA4NzY2LCAwLjAwODc3OSwgMC4wMDg3OTEsIDAuMDA4Nzk3LCAwLjAwODgwMyIsIFwKLSAgICAgICAgICAiMC4wMDg3NzMsIDAuMDA4ODEsIDAuMDA4ODM5LCAwLjAwODg1MywgMC4wMDg4NjUsIDAuMDA4ODcxLCAwLjAwODg3NyIsIFwKLSAgICAgICAgICAiMC4wMDg5NTEsIDAuMDA4OTEsIDAuMDA4OTM4LCAwLjAwODk1LCAwLjAwODk2LCAwLjAwODk2NiwgMC4wMDg5NzIiLCBcCi0gICAgICAgICAgIjAuMDA5MTg3LCAwLjAwOTE0NywgMC4wMDkxNSwgMC4wMDkxNTUsIDAuMDA5MTU4LCAwLjAwOTE2MywgMC4wMDkxNjYiLCBcCi0gICAgICAgICAgIjAuMDA5NjE0LCAwLjAwOTMzMSwgMC4wMDkzMjQsIDAuMDA5MzI3LCAwLjAwOTMzMSwgMC4wMDkzMzMsIDAuMDA5MzM2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDU5NTcsIDAuMDA1ODc1LCAwLjAwNTg3OCwgMC4wMDU4NywgMC4wMDU4NjcsIDAuMDA1ODgxLCAwLjAwNTg4MiIsIFwKLSAgICAgICAgICAiMC4wMDU4NDMsIDAuMDA1Nzg5LCAwLjAwNTc5NCwgMC4wMDU3OTgsIDAuMDA1ODAxLCAwLjAwNTgwMywgMC4wMDU4MDMiLCBcCi0gICAgICAgICAgIjAuMDA1OTI0LCAwLjAwNTgwMywgMC4wMDU4MDYsIDAuMDA1ODA4LCAwLjAwNTgwOSwgMC4wMDU4MTEsIDAuMDA1ODExIiwgXAotICAgICAgICAgICIwLjAwNTk3NSwgMC4wMDU4NjksIDAuMDA1ODY0LCAwLjAwNTg2MSwgMC4wMDU4NjQsIDAuMDA1ODU2LCAwLjAwNTg1OSIsIFwKLSAgICAgICAgICAiMC4wMDYyMzksIDAuMDA1OTUyLCAwLjAwNTkzNywgMC4wMDU5MzQsIDAuMDA1OTMsIDAuMDA1OTI5LCAwLjAwNTkyNyIsIFwKLSAgICAgICAgICAiMC4wMDYzNzYsIDAuMDA2MTkxLCAwLjAwNjEzNiwgMC4wMDYxMjIsIDAuMDA2MTA3LCAwLjAwNjA4OSwgMC4wMDYwODYiLCBcCi0gICAgICAgICAgIjAuMDA2NTY1LCAwLjAwNjI1LCAwLjAwNjIyOCwgMC4wMDYyMTgsIDAuMDA2MjA3LCAwLjAwNjIwNiwgMC4wMDYyMDciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwODA5NywgMC4wMDgzMjQsIDAuMDA4MzU4LCAwLjAwODM2OCwgMC4wMDgzNzgsIDAuMDA4MzgyLCAwLjAwODM4NyIsIFwKLSAgICAgICAgICAiMC4wMDgwNDEsIDAuMDA4Mjg0LCAwLjAwODMyOSwgMC4wMDgzNDQsIDAuMDA4MzU3LCAwLjAwODM2NCwgMC4wMDgzNyIsIFwKLSAgICAgICAgICAiMC4wMDgxMjMsIDAuMDA4MzAxLCAwLjAwODM1LCAwLjAwODM2NywgMC4wMDgzODIsIDAuMDA4MzksIDAuMDA4Mzk3IiwgXAotICAgICAgICAgICIwLjAwODI1OCwgMC4wMDgzNjYsIDAuMDA4NDEzLCAwLjAwODQzMiwgMC4wMDg0NDksIDAuMDA4NDU3LCAwLjAwODQ2NiIsIFwKLSAgICAgICAgICAiMC4wMDg0NzQsIDAuMDA4NDcyLCAwLjAwODUxMiwgMC4wMDg1MjksIDAuMDA4NTQzLCAwLjAwODU1MywgMC4wMDg1NjEiLCBcCi0gICAgICAgICAgIjAuMDA4NzgzLCAwLjAwODY2MywgMC4wMDg2OSwgMC4wMDg3MjgsIDAuMDA4NzE3LCAwLjAwODc0NCwgMC4wMDg3NSIsIFwKLSAgICAgICAgICAiMC4wMDg5MjksIDAuMDA4ODgxLCAwLjAwODg4OSwgMC4wMDg4NjksIDAuMDA4ODg5LCAwLjAwODkxMiwgMC4wMDg5MTgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNTkyMSwgMC4wMDU4ODksIDAuMDA1ODksIDAuMDA1ODk3LCAwLjAwNTg5MSwgMC4wMDU4OTIsIDAuMDA1OSIsIFwKLSAgICAgICAgICAiMC4wMDU4NTQsIDAuMDA1ODExLCAwLjAwNTgyNCwgMC4wMDU4MywgMC4wMDU4MzcsIDAuMDA1ODM4LCAwLjAwNTgzOSIsIFwKLSAgICAgICAgICAiMC4wMDU5NzQsIDAuMDA1ODYxLCAwLjAwNTg3MSwgMC4wMDU4NzUsIDAuMDA1ODc4LCAwLjAwNTg4LCAwLjAwNTg4MiIsIFwKLSAgICAgICAgICAiMC4wMDYxODUsIDAuMDA1OTcxLCAwLjAwNTk3MywgMC4wMDU5NzgsIDAuMDA1OTgxLCAwLjAwNTk3NiwgMC4wMDU5ODEiLCBcCi0gICAgICAgICAgIjAuMDA2MzQ3LCAwLjAwNjEwMSwgMC4wMDYwOTksIDAuMDA2MTAzLCAwLjAwNjEwMSwgMC4wMDYxMDQsIDAuMDA2MTA2IiwgXAotICAgICAgICAgICIwLjAwNjYzNiwgMC4wMDYzLCAwLjAwNjI4MiwgMC4wMDYyNzYsIDAuMDA2Mjc2LCAwLjAwNjI3MywgMC4wMDYyNzQiLCBcCi0gICAgICAgICAgIjAuMDA3MDUyLCAwLjAwNjU4MywgMC4wMDY1MzIsIDAuMDA2NTE3LCAwLjAwNjUwNCwgMC4wMDY0OTgsIDAuMDA2NSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA3NTk4LCAwLjAwNzgyOCwgMC4wMDc4NiwgMC4wMDc4NywgMC4wMDc4NzksIDAuMDA3ODgzLCAwLjAwNzg4NyIsIFwKLSAgICAgICAgICAiMC4wMDc1NDEsIDAuMDA3Nzg3LCAwLjAwNzgzLCAwLjAwNzg0MywgMC4wMDc4NTYsIDAuMDA3ODYyLCAwLjAwNzg2OCIsIFwKLSAgICAgICAgICAiMC4wMDc2MTcsIDAuMDA3ODA1LCAwLjAwNzg1LCAwLjAwNzg2NSwgMC4wMDc4NzksIDAuMDA3ODg2LCAwLjAwNzg5MyIsIFwKLSAgICAgICAgICAiMC4wMDc3OCwgMC4wMDc4NTgsIDAuMDA3OTEsIDAuMDA3OTI3LCAwLjAwNzk0MywgMC4wMDc5NTIsIDAuMDA3OTYiLCBcCi0gICAgICAgICAgIjAuMDA3OTk0LCAwLjAwNzk2NCwgMC4wMDc5OTYsIDAuMDA4MDIxLCAwLjAwODAzNiwgMC4wMDgwNDUsIDAuMDA4MDUyIiwgXAotICAgICAgICAgICIwLjAwODEzMiwgMC4wMDgxNzIsIDAuMDA4MTk2LCAwLjAwODIwNywgMC4wMDgyMTksIDAuMDA4MjE3LCAwLjAwODIyNCIsIFwKLSAgICAgICAgICAiMC4wMDgzNywgMC4wMDgzNzgsIDAuMDA4Mzg2LCAwLjAwODM4NCwgMC4wMDgzOSwgMC4wMDg0MDYsIDAuMDA4NCIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogQU5EM1g2ICoKLSAqIC0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoQU5EM1g2KSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDEuMDE4MzsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxOTUyODc7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxOTUyODc7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxOTQ5Mjg7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxMDQ5LCAwLjAwMTA0OCwgMC4wMDEwNDcsIDAuMDAxMDQ3LCAwLjAwMTA0NywgMC4wMDEwNDcsIDAuMDAxMDQ3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxMDUsIDAuMDAxMDUsIDAuMDAxMDUsIDAuMDAxMDUxLCAwLjAwMTA1MSwgMC4wMDEwNSwgMC4wMDEwNTIiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTg1MjMxOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTg1MjMxOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTg0OTY3OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTA0OCwgMC4wMDEwNDgsIDAuMDAxMDQ3LCAwLjAwMTA0NywgMC4wMDEwNDcsIDAuMDAxMDQ3LCAwLjAwMTA0NyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTA0OSwgMC4wMDEwNSwgMC4wMDEwNTEsIDAuMDAxMDUxLCAwLjAwMTA1MSwgMC4wMDEwNTIsIDAuMDAxMDUyIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihDKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE3MjI7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNzIxMDM7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNzIyOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDYxNywgMC4wMDA2MTYsIDAuMDAwNjE2LCAwLjAwMDYxNSwgMC4wMDA2MTYsIDAuMDAwNjE1LCAwLjAwMDYxNiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTE5MSwgMC4wMDExOTIsIDAuMDAxMTkyLCAwLjAwMTE5MiwgMC4wMDExOTIsIDAuMDAxMTkyLCAwLjAwMTE5MiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAyLjAwMTk5OwotICAgIGZ1bmN0aW9uIDogIigoQSBCKSBDKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTE2MzYsIDAuMDk0Nzg4LCAwLjEzMTk4OCwgMC4xNTgyNTYsIDAuMjAwMTc3LCAwLjIzNjg0NSwgMC4yODkyMTEiLCBcCi0gICAgICAgICAgIjAuMDU2NzI3LCAwLjA5OTksIDAuMTM3MTQxLCAwLjE2MzM4MSwgMC4yMDUzMjUsIDAuMjQxOTksIDAuMjk0MzU2IiwgXAotICAgICAgICAgICIwLjA2MjU4NSwgMC4xMDU3NTQsIDAuMTQyOTYsIDAuMTY5MiwgMC4yMTExMywgMC4yNDc4MTUsIDAuMzAwMTc5IiwgXAotICAgICAgICAgICIwLjA2Nzg2OSwgMC4xMTEyMzUsIDAuMTQ4NDgyLCAwLjE3NDcyNCwgMC4yMTY2NDgsIDAuMjUzMzIxLCAwLjMwNTczIiwgXAotICAgICAgICAgICIwLjA3MjQ5NCwgMC4xMTYyNTIsIDAuMTUzNTM3LCAwLjE3OTc4OSwgMC4yMjE3MiwgMC4yNTg0MDIsIDAuMzEwNzQ4IiwgXAotICAgICAgICAgICIwLjA3OTEzNSwgMC4xMjM1ODQsIDAuMTYwOTc1LCAwLjE4NzI1NiwgMC4yMjkxNjMsIDAuMjY1ODIsIDAuMzE4MTk0IiwgXAotICAgICAgICAgICIwLjA4NDM3NiwgMC4xMjkzNzUsIDAuMTY2ODA4LCAwLjE5MzA4NCwgMC4yMzUwMTQsIDAuMjcxNjcsIDAuMzI0MDI0Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDI2NTY4LCAwLjEwMDQzNywgMC4xNzUzMzQsIDAuMjI5NDc1LCAwLjMxNjkyLCAwLjM5NDM3NiwgMC41MDQ1ODUiLCBcCi0gICAgICAgICAgIjAuMDI2NTAxLCAwLjEwMDQ2OCwgMC4xNzUzNzcsIDAuMjI5NTg4LCAwLjMxNzI2OCwgMC4zOTQ0MTgsIDAuNTA0NjA5IiwgXAotICAgICAgICAgICIwLjAyNjgwMywgMC4xMDA1NDQsIDAuMTc1NDEzLCAwLjIyOTYxMSwgMC4zMTcyMTMsIDAuMzk0NDE1LCAwLjUwNDYxMyIsIFwKLSAgICAgICAgICAiMC4wMjc1MTYsIDAuMTAwOTI1LCAwLjE3NTYzLCAwLjIyOTc2MiwgMC4zMTczNzEsIDAuMzkzODQsIDAuNTA0NzIxIiwgXAotICAgICAgICAgICIwLjAyODA1NywgMC4xMDE1MTcsIDAuMTc1OTgsIDAuMjMwMDA4LCAwLjMxNzIxOSwgMC4zOTQ1MzgsIDAuNTA0NjYxIiwgXAotICAgICAgICAgICIwLjAyOTEzMywgMC4xMDIyNjcsIDAuMTc2NDEzLCAwLjIzMDQ2NiwgMC4zMTc3NywgMC4zOTQ1OSwgMC41MDQ4MjEiLCBcCi0gICAgICAgICAgIjAuMDMwMzI2LCAwLjEwMzI0OSwgMC4xNzY5NjYsIDAuMjMwNzk5LCAwLjMxODA2NSwgMC4zOTQ3OTgsIDAuNTA0ODEyIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDMwMjI5LCAwLjA2OTI4OCwgMC4xMDY5MywgMC4xMzM3NzksIDAuMTc2NzA1LCAwLjIxNDI2NywgMC4yNjc4ODYiLCBcCi0gICAgICAgICAgIjAuMDM4NDY3LCAwLjA3NzQ3OCwgMC4xMTUxMjIsIDAuMTQxOTczLCAwLjE4NDkxMSwgMC4yMjI0NjksIDAuMjc2MDkxIiwgXAotICAgICAgICAgICIwLjA0NzQxMywgMC4wODY1MzUsIDAuMTI0MTcxLCAwLjE1MTAxNSwgMC4xOTM5NDUsIDAuMjMxNTEyLCAwLjI4NTEzNSIsIFwKLSAgICAgICAgICAiMC4wNTQwMzYsIDAuMDkzNDMyLCAwLjEzMTA0NiwgMC4xNTc4ODYsIDAuMjAwODI5LCAwLjIzODM2OCwgMC4yOTE5OTciLCBcCi0gICAgICAgICAgIjAuMDU5MjQ1LCAwLjA5ODkxOSwgMC4xMzY1MjgsIDAuMTYzMzU4LCAwLjIwNjI4MiwgMC4yNDM4NCwgMC4yOTc0NTkiLCBcCi0gICAgICAgICAgIjAuMDY1ODA1LCAwLjEwNjExNiwgMC4xNDM2ODksIDAuMTcwNTE4LCAwLjIxMzQyNSwgMC4yNTA5NzgsIDAuMzA0NjE3IiwgXAotICAgICAgICAgICIwLjA3MDYzOCwgMC4xMTEzNjMsIDAuMTQ4OTYzLCAwLjE3NjM1OSwgMC4yMTg3MTUsIDAuMjU2MjQ4LCAwLjMwOTg3OSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxOTM2NywgMC4wOTQxOTgsIDAuMTcxMjM5LCAwLjIyNjQ2NiwgMC4zMTQyODgsIDAuMzkyMzYzLCAwLjUwMzA0NCIsIFwKLSAgICAgICAgICAiMC4wMTk0MSwgMC4wOTQyMjYsIDAuMTcxMjI3LCAwLjIyNjE0NSwgMC4zMTQ5MTYsIDAuMzkyMzc2LCAwLjUwMzAyMyIsIFwKLSAgICAgICAgICAiMC4wMjA1OTYsIDAuMDk0NDM1LCAwLjE3MTMyLCAwLjIyNjQ2OSwgMC4zMTQ0OTgsIDAuMzkxNzk1LCAwLjUwMzA0NiIsIFwKLSAgICAgICAgICAiMC4wMjE4MDQsIDAuMDk0ODksIDAuMTcxNDgyLCAwLjIyNjU2MywgMC4zMTQ5MDQsIDAuMzkyMzY5LCAwLjUwMzAzNyIsIFwKLSAgICAgICAgICAiMC4wMjMxMzQsIDAuMDk1MjY1LCAwLjE3MTQ0NywgMC4yMjY2MjIsIDAuMzE0OTYxLCAwLjM5MTgxOSwgMC41MDI0MjIiLCBcCi0gICAgICAgICAgIjAuMDI0Nzk4LCAwLjA5NjA1NywgMC4xNzE3MzUsIDAuMjI2NjcxLCAwLjMxNDY2OCwgMC4zOTIyNTQsIDAuNTAyODY0IiwgXAotICAgICAgICAgICIwLjAyNjEyMiwgMC4wOTY2MzYsIDAuMTcxOTIzLCAwLjIyNzMwNSwgMC4zMTQ4OTksIDAuMzkyMDE3LCAwLjUwMjQxMiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1MDExNCwgMC4wOTMyNTksIDAuMTMwNDc2LCAwLjE1Njc0MSwgMC4xOTg2NjYsIDAuMjM1MzM0LCAwLjI4NzY5OSIsIFwKLSAgICAgICAgICAiMC4wNTYyODUsIDAuMDk5NDUsIDAuMTM2NjY0LCAwLjE2MjkyMywgMC4yMDQ4NDgsIDAuMjQxNTE4LCAwLjI5Mzg4NSIsIFwKLSAgICAgICAgICAiMC4wNjQyNiwgMC4xMDczMzUsIDAuMTQ0NTM1LCAwLjE3MDc5MiwgMC4yMTI3MiwgMC4yNDkzOTEsIDAuMzAxNzgzIiwgXAotICAgICAgICAgICIwLjA3MTQ2OCwgMC4xMTQ3MTksIDAuMTUxOTMxLCAwLjE3ODE3NiwgMC4yMjAxMDQsIDAuMjU2Nzc0LCAwLjMwOTEzOCIsIFwKLSAgICAgICAgICAiMC4wNzc2MTQsIDAuMTIxNTM1LCAwLjE1ODc5NiwgMC4xODUwNDUsIDAuMjI2OTYxLCAwLjI2MzYzLCAwLjMxNjAwNCIsIFwKLSAgICAgICAgICAiMC4wODY0MjgsIDAuMTMwNjY5LCAwLjE2ODE3OCwgMC4xOTQ0NzcsIDAuMjM2Mzk1LCAwLjI3MzA0NywgMC4zMjU0MzYiLCBcCi0gICAgICAgICAgIjAuMDkzMjIxLCAwLjEzODIwOCwgMC4xNzU5MTUsIDAuMjAyLCAwLjI0MzkxOCwgMC4yODA1NDYsIDAuMzMyOTU5Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDI2NTQzLCAwLjEwMDUxMywgMC4xNzUxODEsIDAuMjI5NTEzLCAwLjMxNzI1LCAwLjM5NDM5OCwgMC41MDQ1ODkiLCBcCi0gICAgICAgICAgIjAuMDI2NDQ0LCAwLjEwMDQzNywgMC4xNzUyODgsIDAuMjI5NTgzLCAwLjMxNzI5LCAwLjM5NDMyMywgMC41MDQ1NTMiLCBcCi0gICAgICAgICAgIjAuMDI2NzU1LCAwLjEwMDYxMiwgMC4xNzU0NCwgMC4yMjk2NzIsIDAuMzE3MzEzLCAwLjM5NDQxLCAwLjUwNDcxOSIsIFwKLSAgICAgICAgICAiMC4wMjc1ODYsIDAuMTAxMDQ5LCAwLjE3NTY3OCwgMC4yMjk4MDEsIDAuMzE3Mzg3LCAwLjM5NDQ2NSwgMC41MDQ2MjEiLCBcCi0gICAgICAgICAgIjAuMDI4NTYxLCAwLjEwMTYyOCwgMC4xNzYwNDYsIDAuMjMwMDYzLCAwLjMxNzM1MSwgMC4zOTM5MDcsIDAuNTA0NzM2IiwgXAotICAgICAgICAgICIwLjAzMDA3LCAwLjEwMjc1OCwgMC4xNzY3ODksIDAuMjMwNjMzLCAwLjMxNzg3MywgMC4zOTQxMTIsIDAuNTA0OTQ0IiwgXAotICAgICAgICAgICIwLjAzMTI5LCAwLjEwMzYzLCAwLjE3NzQ3MSwgMC4yMzEwMjQsIDAuMzE4MTczLCAwLjM5NDY1NCwgMC41MDQyMDgiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjkzMzEsIDAuMDY4MjgxLCAwLjEwNTg5NywgMC4xMzI3NDMsIDAuMTc1NjU0LCAwLjIxMzE5NSwgMC4yNjY4MDYiLCBcCi0gICAgICAgICAgIjAuMDM3NDY5LCAwLjA3NjQxMSwgMC4xMTQwMzIsIDAuMTQwODc1LCAwLjE4MzgxNywgMC4yMjEzNDYsIDAuMjc0OTYzIiwgXAotICAgICAgICAgICIwLjA0NjA5OSwgMC4wODUxOTQsIDAuMTIyODE3LCAwLjE0OTY1NSwgMC4xOTI1NzMsIDAuMjMwMTMsIDAuMjgzNzQ0IiwgXAotICAgICAgICAgICIwLjA1MjQzOCwgMC4wOTE4OTIsIDAuMTI5NTAzLCAwLjE1NjM0MiwgMC4xOTkyNDksIDAuMjM2Nzg3LCAwLjI5MDQwOCIsIFwKLSAgICAgICAgICAiMC4wNTczMDQsIDAuMDk2OTk3LCAwLjEzNDU4MSwgMC4xNjE0MDUsIDAuMjA0MzIyLCAwLjI0MTg0NywgMC4yOTU0OTEiLCBcCi0gICAgICAgICAgIjAuMDYzNDQsIDAuMTAzNTY1LCAwLjE0MTE3NywgMC4xNjc5ODUsIDAuMjExMTMxLCAwLjI0ODY4LCAwLjMwMjAzNyIsIFwKLSAgICAgICAgICAiMC4wNjc3ODcsIDAuMTA4NDkzLCAwLjE0NjA1NSwgMC4xNzI5MjEsIDAuMjE1ODA2LCAwLjI1MzMyOSwgMC4zMDY5NTMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTkxODgsIDAuMDk0MDU0LCAwLjE3MTEzMywgMC4yMjU4ODgsIDAuMzE0MTQyLCAwLjM5MjI5MSwgMC41MDI5MzciLCBcCi0gICAgICAgICAgIjAuMDE5MjYyLCAwLjA5NDExLCAwLjE3MTEwOSwgMC4yMjYwNzUsIDAuMzE0ODMyLCAwLjM5MjMwMiwgMC41MDI5NTQiLCBcCi0gICAgICAgICAgIjAuMDIwNTM3LCAwLjA5NDMwNywgMC4xNzEyMzIsIDAuMjI1OTU3LCAwLjMxNDQ0OSwgMC4zOTIyOTQsIDAuNTAyOTYiLCBcCi0gICAgICAgICAgIjAuMDIxODA2LCAwLjA5NDc5NCwgMC4xNzEwNzIsIDAuMjI2NDI4LCAwLjMxNDg1MiwgMC4zOTIyODcsIDAuNTAyODU5IiwgXAotICAgICAgICAgICIwLjAyMzI0MSwgMC4wOTUyMTMsIDAuMTcxMzc1LCAwLjIyNjM3NywgMC4zMTQ3MzQsIDAuMzkyMjU2LCAwLjUwMjkwNyIsIFwKLSAgICAgICAgICAiMC4wMjQ4NzUsIDAuMDk2MTMxLCAwLjE3MTcxMSwgMC4yMjY2MTUsIDAuMzE0NjA1LCAwLjM5MjA4OSwgMC41MDIzMDgiLCBcCi0gICAgICAgICAgIjAuMDI2MjA3LCAwLjA5NjY3NiwgMC4xNzE4NCwgMC4yMjY2NjksIDAuMzE0ODQsIDAuMzkxODY3LCAwLjUwMjI4MSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0NzA3NSwgMC4wOTAyOCwgMC4xMjc1MDIsIDAuMTUzNzY2LCAwLjE5NTY5MywgMC4yMzIzNjIsIDAuMjg0NzMiLCBcCi0gICAgICAgICAgIjAuMDU0MTIxLCAwLjA5NzI2NCwgMC4xMzQ1MDksIDAuMTYwNzU2LCAwLjIwMjY5LCAwLjIzOTM4MSwgMC4yOTE3MzgiLCBcCi0gICAgICAgICAgIjAuMDYzNTc4LCAwLjEwNjYyNSwgMC4xNDM4MzYsIDAuMTcwMDksIDAuMjEyMDI0LCAwLjI0ODcsIDAuMzAxMDY3IiwgXAotICAgICAgICAgICIwLjA3MjI1OSwgMC4xMTU0ODksIDAuMTUyNzAzLCAwLjE3ODk0OSwgMC4yMjA4ODksIDAuMjU3NTUyLCAwLjMwOTkxNCIsIFwKLSAgICAgICAgICAiMC4wNzkzODksIDAuMTIzMDU4LCAwLjE2MDI4NiwgMC4xODY1MzcsIDAuMjI4NDQ3LCAwLjI2NTEyOCwgMC4zMTc0OTkiLCBcCi0gICAgICAgICAgIjAuMDg5MzU4LCAwLjEzMzgxNywgMC4xNzEzMTYsIDAuMTk3NjUxLCAwLjIzOTYxOCwgMC4yNzYyNjcsIDAuMzI4NjI4IiwgXAotICAgICAgICAgICIwLjA5Njg2NywgMC4xNDE4MzgsIDAuMTc5NDU4LCAwLjIwNTgwMSwgMC4yNDc5MzYsIDAuMjg0NTc4LCAwLjMzNjkzMSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyNjU5NSwgMC4xMDA0ODksIDAuMTc1Mzk4LCAwLjIyOTM0MSwgMC4zMTY5MTIsIDAuMzk0Mzc0LCAwLjUwNDU3NSIsIFwKLSAgICAgICAgICAiMC4wMjY1MjcsIDAuMTAwNDUyLCAwLjE3NTM2MiwgMC4yMjk1OCwgMC4zMTcyOTIsIDAuMzk0NDM0LCAwLjUwNDAwMSIsIFwKLSAgICAgICAgICAiMC4wMjY4MTMsIDAuMTAwNjM5LCAwLjE3NTQ2NiwgMC4yMjk1NDgsIDAuMzE3MjkxLCAwLjM5NDQyMSwgMC41MDQ1OCIsIFwKLSAgICAgICAgICAiMC4wMjc3OTUsIDAuMTAxMDg2LCAwLjE3NTY5NSwgMC4yMjk2NzMsIDAuMzE3Mzc4LCAwLjM5NDQ2MiwgMC41MDQ2MzgiLCBcCi0gICAgICAgICAgIjAuMDI5MTczLCAwLjEwMTkzOSwgMC4xNzYxOCwgMC4yMzAxMzcsIDAuMzE3MzA5LCAwLjM5MzgyOCwgMC41MDQ3NTgiLCBcCi0gICAgICAgICAgIjAuMDMxMjM2LCAwLjEwMjg0NywgMC4xNzY3MTYsIDAuMjMwNzE1LCAwLjMxNzY3MiwgMC4zOTQ1OTYsIDAuNTA0NjU3IiwgXAotICAgICAgICAgICIwLjAzMjc1NywgMC4xMDM5MzcsIDAuMTc3NDQ4LCAwLjIzMTEzOSwgMC4zMTgwNDEsIDAuMzk0Njk0LCAwLjUwNDU2MyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyODA0NCwgMC4wNjY5NjYsIDAuMTA0NTUxLCAwLjEzMTM3LCAwLjE3NDI4NCwgMC4yMTE4MTksIDAuMjY1NDcyIiwgXAotICAgICAgICAgICIwLjAzNjE2NiwgMC4wNzUwNDUsIDAuMTEyNjQsIDAuMTM5NDcyLCAwLjE4MjQyNCwgMC4yMjAwMDcsIDAuMjczNjE2IiwgXAotICAgICAgICAgICIwLjA0NDMwNywgMC4wODM0MjIsIDAuMTIxMDEsIDAuMTQ3ODM4LCAwLjE5MDc5OSwgMC4yMjgzMTcsIDAuMjgxOTg2IiwgXAotICAgICAgICAgICIwLjA1MDA3NSwgMC4wODk1NzksIDAuMTI3MDI5LCAwLjE1Mzg0OCwgMC4xOTY3NTQsIDAuMjM0MzA2LCAwLjI4Nzk4NCIsIFwKLSAgICAgICAgICAiMC4wNTQ2NjksIDAuMDk0NDQyLCAwLjEzMTg3NCwgMC4xNTg2NDYsIDAuMjAxNTMyLCAwLjIzOTA3OCwgMC4yOTI2OTkiLCBcCi0gICAgICAgICAgIjAuMDYwMjY2LCAwLjEwMDM4OCwgMC4xMzc5OTYsIDAuMTY0Nzc0LCAwLjIwNzY1OCwgMC4yNDUxNTcsIDAuMjk4NzkxIiwgXAotICAgICAgICAgICIwLjA2NDEwOCwgMC4xMDQ4OTEsIDAuMTQyMzY5LCAwLjE2OTIwOSwgMC4yMTIwOTgsIDAuMjQ5NTc1LCAwLjMwMzIxMSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxOTAzMSwgMC4wOTM5ODEsIDAuMTcxMDIyLCAwLjIyNjI2MywgMC4zMTQ3ODksIDAuMzkyMjQsIDAuNTAxNzg0IiwgXAotICAgICAgICAgICIwLjAxOTE4OCwgMC4wOTQwMzMsIDAuMTcxMDQ1LCAwLjIyNTk4OSwgMC4zMTQwNjcsIDAuMzkxNTM5LCAwLjUwMjM4MyIsIFwKLSAgICAgICAgICAiMC4wMjA1NjEsIDAuMDk0MzUsIDAuMTcxMTU5LCAwLjIyNjMyOCwgMC4zMTQyNywgMC4zOTIyMTMsIDAuNTAxODg5IiwgXAotICAgICAgICAgICIwLjAyMjAwNiwgMC4wOTQ4NzUsIDAuMTcxMTgzLCAwLjIyNjQ0NSwgMC4zMTQ4NDQsIDAuMzkyMjE0LCAwLjUwMjM3IiwgXAotICAgICAgICAgICIwLjAyMzI2NiwgMC4wOTUzMjMsIDAuMTcxNjIyLCAwLjIyNjU4OCwgMC4zMTQ4OTYsIDAuMzkxODQ1LCAwLjUwMzA3NCIsIFwKLSAgICAgICAgICAiMC4wMjUwODcsIDAuMDk2MzcyLCAwLjE3MTc0LCAwLjIyNjU5NSwgMC4zMTUwMSwgMC4zOTIzNTcsIDAuNTAzMTI4IiwgXAotICAgICAgICAgICIwLjAyNjU4NiwgMC4wOTY5NjEsIDAuMTcyMDM2LCAwLjIyNjY0MiwgMC4zMTQ4MjEsIDAuMzkyMDI4LCAwLjUwMzAxNCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA4OTMxLCAwLjAwODk5NiwgMC4wMDkwMjEsIDAuMDA5MDI2LCAwLjAwOTAzNiwgMC4wMDkwMywgMC4wMDkwNiIsIFwKLSAgICAgICAgICAiMC4wMDg3NTEsIDAuMDA4ODIzLCAwLjAwODg2MSwgMC4wMDg4NzMsIDAuMDA4ODg2LCAwLjAwODg5NCwgMC4wMDg4OTMiLCBcCi0gICAgICAgICAgIjAuMDA4OCwgMC4wMDg4MSwgMC4wMDg4NDYsIDAuMDA4ODU4LCAwLjAwODg2OSwgMC4wMDg4NzYsIDAuMDA4ODgiLCBcCi0gICAgICAgICAgIjAuMDA4OTc4LCAwLjAwODg3NywgMC4wMDg5MDYsIDAuMDA4OTE0LCAwLjAwODkzMSwgMC4wMDg5MzIsIDAuMDA4OTM3IiwgXAotICAgICAgICAgICIwLjAwOTA3NywgMC4wMDkwMzQsIDAuMDA5MDQyLCAwLjAwOTA0MSwgMC4wMDkwNTMsIDAuMDA5MDUyLCAwLjAwOTA1NSIsIFwKLSAgICAgICAgICAiMC4wMDk0MTksIDAuMDA5MjUzLCAwLjAwOTI2NCwgMC4wMDkyODMsIDAuMDA5Mjk3LCAwLjAwOTMsIDAuMDA5MzEiLCBcCi0gICAgICAgICAgIjAuMDEwMTM1LCAwLjAwOTU4MiwgMC4wMDk1NzksIDAuMDA5NTc4LCAwLjAwOTU4NiwgMC4wMDk1OTYsIDAuMDA5NTk0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTM2ODIsIDAuMDE0MDA5LCAwLjAxNDA2NCwgMC4wMTQwODMsIDAuMDE0MDk5LCAwLjAxNDEwNywgMC4wMTQxMTQiLCBcCi0gICAgICAgICAgIjAuMDEzNjI4LCAwLjAxMzk0NywgMC4wMTQwMiwgMC4wMTQwNDUsIDAuMDE0MDY3LCAwLjAxNDA3OSwgMC4wMTQwOSIsIFwKLSAgICAgICAgICAiMC4wMTM4MjQsIDAuMDE0MDEzLCAwLjAxNDA5LCAwLjAxNDExNywgMC4wMTQxNDMsIDAuMDE0MTU3LCAwLjAxNDE2OSIsIFwKLSAgICAgICAgICAiMC4wMTQwNiwgMC4wMTQxNywgMC4wMTQyNDYsIDAuMDE0Mjc0LCAwLjAxNDMsIDAuMDE0MzE3LCAwLjAxNDMzMSIsIFwKLSAgICAgICAgICAiMC4wMTQ0NCwgMC4wMTQ0MTMsIDAuMDE0NDcsIDAuMDE0NDk0LCAwLjAxNDUyLCAwLjAxNDUzNSwgMC4wMTQ1NDgiLCBcCi0gICAgICAgICAgIjAuMDE0ODU2LCAwLjAxNDc5MSwgMC4wMTQ4NDIsIDAuMDE0ODcsIDAuMDE0OTAzLCAwLjAxNDkyMSwgMC4wMTQ5MzgiLCBcCi0gICAgICAgICAgIjAuMDE1MzUxLCAwLjAxNTE3OSwgMC4wMTUyMTQsIDAuMDE1MjU1LCAwLjAxNTI2OSwgMC4wMTUyODcsIDAuMDE1MzA0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDg5MjMsIDAuMDA5MDIyLCAwLjAwOTA0NSwgMC4wMDkwNTUsIDAuMDA5MDY0LCAwLjAwOTA2OSwgMC4wMDkwOTQiLCBcCi0gICAgICAgICAgIjAuMDA4NzYsIDAuMDA4ODQsIDAuMDA4ODg0LCAwLjAwODkwMiwgMC4wMDg5MTYsIDAuMDA4OTI5LCAwLjAwODkzMSIsIFwKLSAgICAgICAgICAiMC4wMDg5MzYsIDAuMDA4ODc0LCAwLjAwODkwOCwgMC4wMDg5MjYsIDAuMDA4OTMzLCAwLjAwODk0LCAwLjAwODk0OCIsIFwKLSAgICAgICAgICAiMC4wMDkxNzksIDAuMDA4OTk4LCAwLjAwOTAyMSwgMC4wMDkwMywgMC4wMDkwNDUsIDAuMDA5MDQ2LCAwLjAwOTA1OCIsIFwKLSAgICAgICAgICAiMC4wMDkyOTYsIDAuMDA5MTM1LCAwLjAwOTE1MiwgMC4wMDkxNjMsIDAuMDA5MTc5LCAwLjAwOTE4OCwgMC4wMDkxOTgiLCBcCi0gICAgICAgICAgIjAuMDA5OTA3LCAwLjAwOTQ2NywgMC4wMDk0NzYsIDAuMDA5NDc0LCAwLjAwOTQ4NCwgMC4wMDk0OTIsIDAuMDA5NDk2IiwgXAotICAgICAgICAgICIwLjAxMDMzOCwgMC4wMDk4NTUsIDAuMDA5ODE0LCAwLjAwOTgxNSwgMC4wMDk4MTksIDAuMDA5ODE3LCAwLjAwOTgxNyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEyNzMyLCAwLjAxMzExMSwgMC4wMTMxNzMsIDAuMDEzMTkxLCAwLjAxMzIwOSwgMC4wMTMyMTgsIDAuMDEzMjI3IiwgXAotICAgICAgICAgICIwLjAxMjY2MywgMC4wMTMwMzEsIDAuMDEzMTE0LCAwLjAxMzE0MiwgMC4wMTMxNjcsIDAuMDEzMTgsIDAuMDEzMTkyIiwgXAotICAgICAgICAgICIwLjAxMjc2NSwgMC4wMTMwNjYsIDAuMDEzMTYsIDAuMDEzMTkzLCAwLjAxMzIyNCwgMC4wMTMyNDEsIDAuMDEzMjU2IiwgXAotICAgICAgICAgICIwLjAxMzAzOSwgMC4wMTMyMTMsIDAuMDEzMzAzLCAwLjAxMzMzOCwgMC4wMTMzNzksIDAuMDEzMzg5LCAwLjAxMzQwNSIsIFwKLSAgICAgICAgICAiMC4wMTM0NzcsIDAuMDEzNDIxLCAwLjAxMzUzNywgMC4wMTM1NjYsIDAuMDEzNTk0LCAwLjAxMzYxMSwgMC4wMTM2MDEiLCBcCi0gICAgICAgICAgIjAuMDEzNzksIDAuMDEzODYxLCAwLjAxMzkwNywgMC4wMTM5MzUsIDAuMDEzOTU0LCAwLjAxMzk3NiwgMC4wMTM5OTUiLCBcCi0gICAgICAgICAgIjAuMDE0Mjg3LCAwLjAxNDE4NywgMC4wMTQyNTYsIDAuMDE0MjkyLCAwLjAxNDMzLCAwLjAxNDMxMiwgMC4wMTQzNzYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwODkyNywgMC4wMDksIDAuMDA5MDQ2LCAwLjAwOTA1NiwgMC4wMDkwNjksIDAuMDA5MDc2LCAwLjAwOTA5NyIsIFwKLSAgICAgICAgICAiMC4wMDg3OTcsIDAuMDA4ODg2LCAwLjAwODk0LCAwLjAwODk1OSwgMC4wMDg5NzMsIDAuMDA4OTg2LCAwLjAwODk5NSIsIFwKLSAgICAgICAgICAiMC4wMDkwNTksIDAuMDA4OTg3LCAwLjAwOTAzLCAwLjAwOTA1MSwgMC4wMDkwNzMsIDAuMDA5MDgsIDAuMDA5MDk1IiwgXAotICAgICAgICAgICIwLjAwOTMyNywgMC4wMDkyMjQsIDAuMDA5MjU2LCAwLjAwOTI2OSwgMC4wMDkyOTMsIDAuMDA5MzAyLCAwLjAwOTMwNSIsIFwKLSAgICAgICAgICAiMC4wMDk2OTgsIDAuMDA5NDM2LCAwLjAwOTQ1NywgMC4wMDk0NTksIDAuMDA5NDcyLCAwLjAwOTQ3NywgMC4wMDk0ODQiLCBcCi0gICAgICAgICAgIjAuMDEwMjgxLCAwLjAwOTg2NCwgMC4wMDk4NzQsIDAuMDA5ODc5LCAwLjAwOTg5LCAwLjAwOTkwMiwgMC4wMDk5MDMiLCBcCi0gICAgICAgICAgIjAuMDEwODI0LCAwLjAxMDI4MiwgMC4wMTAyNzksIDAuMDEwMjgsIDAuMDEwMjg2LCAwLjAxMDI4MywgMC4wMTAyOSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDExNjgsIDAuMDEyMDU5LCAwLjAxMjExNiwgMC4wMTIxMzMsIDAuMDEyMTUsIDAuMDEyMTU4LCAwLjAxMjE2NSIsIFwKLSAgICAgICAgICAiMC4wMTE2MDcsIDAuMDExOTc1LCAwLjAxMjA1MywgMC4wMTIwNzgsIDAuMDEyMSwgMC4wMTIxMTIsIDAuMDEyMTIzIiwgXAotICAgICAgICAgICIwLjAxMTcyMywgMC4wMTIwMTYsIDAuMDEyMTA2LCAwLjAxMjEzNywgMC4wMTIxNjYsIDAuMDEyMTgxLCAwLjAxMjE5NiIsIFwKLSAgICAgICAgICAiMC4wMTIwNDgsIDAuMDEyMTYsIDAuMDEyMjQ4LCAwLjAxMjI4MiwgMC4wMTIzMTUsIDAuMDEyMzMyLCAwLjAxMjM0OCIsIFwKLSAgICAgICAgICAiMC4wMTIyMDksIDAuMDEyMzU3LCAwLjAxMjQ3OSwgMC4wMTI1MDUsIDAuMDEyNTMzLCAwLjAxMjU0OCwgMC4wMTI1NjIiLCBcCi0gICAgICAgICAgIjAuMDEyNjkzLCAwLjAxMjgxNSwgMC4wMTI4MzIsIDAuMDEyODkxLCAwLjAxMjg4NSwgMC4wMTI5MzYsIDAuMDEyOTUxIiwgXAotICAgICAgICAgICIwLjAxMzE3MiwgMC4wMTMwOTUsIDAuMDEzMTk2LCAwLjAxMzIzLCAwLjAxMzI2NCwgMC4wMTMyMzUsIDAuMDEzMzA3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBBTzIyWDQgKgotICogLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChBTzIyWDQpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC43MjE5MjI7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA4OTI5NTQ7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwODkwMjM0OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDg5Mjk1NDsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA1MjQsIDAuMDAwNTI0LCAwLjAwMDUyNCwgMC4wMDA1MjQsIDAuMDAwNTI0LCAwLjAwMDUyNCwgMC4wMDA1MjQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA1NTEsIDAuMDAwNTM1LCAwLjAwMDUyOSwgMC4wMDA1MjYsIDAuMDAwNTI2LCAwLjAwMDUyNiwgMC4wMDA1MjYiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEExKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA5NDQ4NjY7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwOTQwNjA0OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDk0NDg2NjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyODksIDAuMDAwMjg5LCAwLjAwMDI4OSwgMC4wMDAyODgsIDAuMDAwMjg4LCAwLjAwMDI4OSwgMC4wMDAyODkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA1OTUsIDAuMDAwNTk2LCAwLjAwMDU5NiwgMC4wMDA1OTYsIDAuMDAwNTk2LCAwLjAwMDU5NiwgMC4wMDA1OTYiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA5MDY2NDc7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwOTA2NjQ3OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDkwNTEyMzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA1MjQsIDAuMDAwNTI0LCAwLjAwMDUyNCwgMC4wMDA1MjQsIDAuMDAwNTI0LCAwLjAwMDUyNCwgMC4wMDA1MjQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA1NSwgMC4wMDA1MzMsIDAuMDAwNTI4LCAwLjAwMDUyNiwgMC4wMDA1MjUsIDAuMDAwNTI1LCAwLjAwMDUyNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQjEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDk3NzIwODsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA5NzcxMDg7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwOTc3MjA4OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDI4LCAwLjAwMDI4LCAwLjAwMDI4MSwgMC4wMDAyODEsIDAuMDAwMjgxLCAwLjAwMDI4MSwgMC4wMDAyOCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDU5NSwgMC4wMDA1OTUsIDAuMDAwNTk2LCAwLjAwMDU5NiwgMC4wMDA1OTYsIDAuMDAwNTk2LCAwLjAwMDU5NiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAxLjMyMDEzOwotICAgIGZ1bmN0aW9uIDogIigoQTAgQTEpKyhCMCBCMSkpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTYzODQsIDAuMTE2Mzg0LCAwLjE3MTQ3OSwgMC4yMTA3MjgsIDAuMjczNDQsIDAuMzI4MzA5LCAwLjQwNjY1NyIsIFwKLSAgICAgICAgICAiMC4wNjI5MTMsIDAuMTIyODk4LCAwLjE3Nzk5LCAwLjIxNzIyOCwgMC4yNzk5NywgMC4zMzQ4NDEsIDAuNDEzMjUyIiwgXAotICAgICAgICAgICIwLjA3MDk1NCwgMC4xMzA5MjgsIDAuMTg2MDM4LCAwLjIyNTI4NywgMC4yODgwMTgsIDAuMzQyODg1LCAwLjQyMTMwNCIsIFwKLSAgICAgICAgICAiMC4wNzg1NSwgMC4xMzg0NDIsIDAuMTkzNTM4LCAwLjIzMjc4NiwgMC4yOTU1MTQsIDAuMzUwMzc0LCAwLjQyODgxIiwgXAotICAgICAgICAgICIwLjA4NTE0NSwgMC4xNDUzMDIsIDAuMjAwNDIzLCAwLjIzOTY2MywgMC4zMDI0MDcsIDAuMzU3MjYzLCAwLjQzNTU5NyIsIFwKLSAgICAgICAgICAiMC4wOTQ0MTgsIDAuMTU1MDk1LCAwLjIxMDE3NCwgMC4yNDk0MDksIDAuMzEyMTE4LCAwLjM2NywgMC40NDUzNDciLCBcCi0gICAgICAgICAgIjAuMTAxNTU2LCAwLjE2MjY2MywgMC4yMTc3MTcsIDAuMjU2OTY2LCAwLjMxOTczOSwgMC4zNzQ1NjcsIDAuNDUyODk3Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDMyNTc3LCAwLjE0MjQ0OSwgMC4yNTYyMzEsIDAuMzM4NDM2LCAwLjQ3MDE5LCAwLjU4NTg2NCwgMC43NTEyNzMiLCBcCi0gICAgICAgICAgIjAuMDMyNTc4LCAwLjE0MjQzNywgMC4yNTYyMjksIDAuMzM4MTY3LCAwLjQ3MDMzNywgMC41ODU0NjIsIDAuNzUxMzUxIiwgXAotICAgICAgICAgICIwLjAzMjY1LCAwLjE0MjM4LCAwLjI1NjIzMiwgMC4zMzg0NDIsIDAuNDcwMzMzLCAwLjU4NTQzMiwgMC43NTEyNTgiLCBcCi0gICAgICAgICAgIjAuMDMzMjE5LCAwLjE0MjYyMSwgMC4yNTYyODcsIDAuMzM4NDU0LCAwLjQ3MDMwMSwgMC41ODUzNTksIDAuNzUxMTkzIiwgXAotICAgICAgICAgICIwLjAzNDE2LCAwLjE0MjkwNSwgMC4yNTYzOTYsIDAuMzM4NDU1LCAwLjQ3MDMyOSwgMC41ODU4MTEsIDAuNzUxMjA5IiwgXAotICAgICAgICAgICIwLjAzNTYxMywgMC4xNDM1NzcsIDAuMjU2NjE0LCAwLjMzODQyMSwgMC40NzAyNjIsIDAuNTg1OTU1LCAwLjc1MTE4MyIsIFwKLSAgICAgICAgICAiMC4wMzY4ODgsIDAuMTQ0MjE5LCAwLjI1NzEyNCwgMC4zMzg5MSwgMC40NzA1NCwgMC41ODU5OTYsIDAuNzUxMTcxIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDYwNDYxLCAwLjExOTY4MiwgMC4xNzM4NjIsIDAuMjEyMzgsIDAuMjczOTg3LCAwLjMyNzg0NywgMC40MDQ3MzkiLCBcCi0gICAgICAgICAgIjAuMDY3NDkxLCAwLjEyNjgwNCwgMC4xODA5MzcsIDAuMjE5NDQ4LCAwLjI4MTAzMywgMC4zMzQ4NzgsIDAuNDExODI2IiwgXAotICAgICAgICAgICIwLjA3NDk1NSwgMC4xMzQxMzUsIDAuMTg4MjcxLCAwLjIyNjc5NywgMC4yODgzNjIsIDAuMzQyMjg1LCAwLjQxOTE4OCIsIFwKLSAgICAgICAgICAiMC4wODE1NzcsIDAuMTQwODc5LCAwLjE5NTAxOSwgMC4yMzM1MzgsIDAuMjk1MTE5LCAwLjM0ODk3NywgMC40MjU5MjQiLCBcCi0gICAgICAgICAgIjAuMDg3MzI2LCAwLjE0NjkzOCwgMC4yMDEwODYsIDAuMjM5NjAyLCAwLjMwMTE3OCwgMC4zNTUwMywgMC40MzE5NTQiLCBcCi0gICAgICAgICAgIjAuMDk1MTk3LCAwLjE1NTM0NywgMC4yMDk1MDgsIDAuMjQ4MDE3LCAwLjMwOTU4OCwgMC4zNjM0NTgsIDAuNDQwMzkzIiwgXAotICAgICAgICAgICIwLjEwMDk0MiwgMC4xNjE1MjksIDAuMjE1ODAyLCAwLjI1NDMwNywgMC4zMTU4NzYsIDAuMzY5Njk0LCAwLjQ0NjYxMiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzMTM0OCwgMC4xMzgyNDMsIDAuMjQ4MjU0LCAwLjMyNzU0NywgMC40NTUxMDcsIDAuNTY2NTk2LCAwLjcyNjY4OSIsIFwKLSAgICAgICAgICAiMC4wMzExOTgsIDAuMTM4MjAyLCAwLjI0Nzg4NywgMC4zMjczMzYsIDAuNDU0NDkxLCAwLjU2NjcyMiwgMC43MjY3MjIiLCBcCi0gICAgICAgICAgIjAuMDMxMjY5LCAwLjEzODI0OCwgMC4yNDgwNDUsIDAuMzI3NTYsIDAuNDU0OTQ2LCAwLjU2NjU0MywgMC43MjYwNjMiLCBcCi0gICAgICAgICAgIjAuMDMxNzk3LCAwLjEzODQxOSwgMC4yNDgzMzQsIDAuMzI3NjE1LCAwLjQ1NTAzNiwgMC41NjY3MzIsIDAuNzI1ODg4IiwgXAotICAgICAgICAgICIwLjAzMjg5OSwgMC4xMzg3ODQsIDAuMjQ4NTI4LCAwLjMyNzM0OCwgMC40NTUwOTgsIDAuNTY2ODI3LCAwLjcyNTk2IiwgXAotICAgICAgICAgICIwLjAzNDAyMywgMC4xMzk2MjQsIDAuMjQ4Njc3LCAwLjMyNzk5OCwgMC40NTUyMjMsIDAuNTY2NzIyLCAwLjcyNjc3OCIsIFwKLSAgICAgICAgICAiMC4wMzUzNTQsIDAuMTQwMjAxLCAwLjI0OTEyOSwgMC4zMjc5NzUsIDAuNDU1MTgxLCAwLjU2Njk1NCwgMC43MjY3ODgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTEiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU0ODYsIDAuMTE0ODY1LCAwLjE2OTk1NSwgMC4yMDkxOTUsIDAuMjcxOTMzLCAwLjMyNjgsIDAuNDA1MjE4IiwgXAotICAgICAgICAgICIwLjA2MjM2OSwgMC4xMjIzNTUsIDAuMTc3NDUsIDAuMjE2Njg5LCAwLjI3OTQzMiwgMC4zMzQzMDEsIDAuNDEyNzE1IiwgXAotICAgICAgICAgICIwLjA3MjMwMSwgMC4xMzIxMjUsIDAuMTg3MjA4LCAwLjIyNjQ1NSwgMC4yODkxOTEsIDAuMzQ0MDU2LCAwLjQyMjQ2OSIsIFwKLSAgICAgICAgICAiMC4wODE3MjYsIDAuMTQxNjM1LCAwLjE5NjczMywgMC4yMzU5ODUsIDAuMjk4NzE5LCAwLjM1MzU3NSwgMC40MzIwMTEiLCBcCi0gICAgICAgICAgIjAuMDkwMDE4LCAwLjE1MDA4MywgMC4yMDUxNDUsIDAuMjQ0Mzk1LCAwLjMwNzEwMSwgMC4zNjE5ODYsIDAuNDQwMzAyIiwgXAotICAgICAgICAgICIwLjEwMTQyOCwgMC4xNjIzNzMsIDAuMjE3NDUsIDAuMjU2NjY0LCAwLjMxOTQwNywgMC4zNzQzMSwgMC40NTI2MTciLCBcCi0gICAgICAgICAgIjAuMTA5OTc5LCAwLjE3MTA1NiwgMC4yMjYxMjEsIDAuMjY1MzE5LCAwLjMyODAxMSwgMC4zODI4ODgsIDAuNDYxMTg4Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDMyNTQzLCAwLjE0MjQzOSwgMC4yNTYyMywgMC4zMzgxNjYsIDAuNDcwMzU2LCAwLjU4NTQ0MywgMC43NTEyOCIsIFwKLSAgICAgICAgICAiMC4wMzI1NDcsIDAuMTQyNDM2LCAwLjI1NjIyOCwgMC4zMzgxNDksIDAuNDcwMzM0LCAwLjU4NTg2NSwgMC43NTEzNDgiLCBcCi0gICAgICAgICAgIjAuMDMyNjUyLCAwLjE0MjQ2LCAwLjI1NjIyMiwgMC4zMzgzMjMsIDAuNDcwMjk0LCAwLjU4NTkwOSwgMC43NTEyNjciLCBcCi0gICAgICAgICAgIjAuMDMzNDY2LCAwLjE0MjUzMiwgMC4yNTYyNzYsIDAuMzM4NDM0LCAwLjQ3MDI5NSwgMC41ODUzOTYsIDAuNzUxMTg5IiwgXAotICAgICAgICAgICIwLjAzNTExMSwgMC4xNDMwMDcsIDAuMjU2NDY2LCAwLjMzODUyMiwgMC40NzAxNzIsIDAuNTg1Mzc5LCAwLjc1MTIxMSIsIFwKLSAgICAgICAgICAiMC4wMzcwOTUsIDAuMTQzODg0LCAwLjI1NjcwNCwgMC4zMzg2MjUsIDAuNDcwNDQ2LCAwLjU4NjAwNywgMC43NTEyMTMiLCBcCi0gICAgICAgICAgIjAuMDM5MDQ2LCAwLjE0NDcxNiwgMC4yNTcxNjUsIDAuMzM4OTgsIDAuNDcwMzgsIDAuNTg1OTc2LCAwLjc1MTI5NSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1NzkyOSwgMC4xMTY5OTksIDAuMTcxMDg2LCAwLjIwOTU4NSwgMC4yNzExNDIsIDAuMzI0OTc4LCAwLjQwMTkxMiIsIFwKLSAgICAgICAgICAiMC4wNjQ4OTMsIDAuMTIzOTY3LCAwLjE3ODA1MSwgMC4yMTY1NDksIDAuMjc4MTEsIDAuMzMxOTg4LCAwLjQwODg1NiIsIFwKLSAgICAgICAgICAiMC4wNzIyMSwgMC4xMzEyMDMsIDAuMTg1MjgxLCAwLjIyMzc4MSwgMC4yODUzNDEsIDAuMzM5MTksIDAuNDE2MTI5IiwgXAotICAgICAgICAgICIwLjA3ODY2NCwgMC4xMzc3OTEsIDAuMTkxODgsIDAuMjMwMzgsIDAuMjkxOTM5LCAwLjM0NTc3NywgMC40MjI3MTUiLCBcCi0gICAgICAgICAgIjAuMDg0MTU3LCAwLjE0MzY5MywgMC4xOTc3ODMsIDAuMjM2MjY1LCAwLjI5NzgyMywgMC4zNTE2NjEsIDAuNDI4NTc5IiwgXAotICAgICAgICAgICIwLjA5MTYxNCwgMC4xNTE3NjEsIDAuMjA1ODcyLCAwLjI0NDM1NSwgMC4zMDU5MDEsIDAuMzU5NzYyLCAwLjQzNjY2NiIsIFwKLSAgICAgICAgICAiMC4wOTcwNjEsIDAuMTU3NjQ5LCAwLjIxMTgzLCAwLjI1MDI5OCwgMC4zMTE4MzYsIDAuMzY1NjgyLCAwLjQ0MjU3MiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzMDkwNCwgMC4xMzc5NjcsIDAuMjQ4MDI1LCAwLjMyNzM1NiwgMC40NTQ4MzYsIDAuNTY2NjA2LCAwLjcyNTc5MSIsIFwKLSAgICAgICAgICAiMC4wMzA4NTQsIDAuMTM3OTM5LCAwLjI0ODAxNywgMC4zMjczMjQsIDAuNDU0ODM0LCAwLjU2Njc1LCAwLjcyNjUiLCBcCi0gICAgICAgICAgIjAuMDMwOTczLCAwLjEzNzk3OSwgMC4yNDgwMzYsIDAuMzI3MzY2LCAwLjQ1NDgzNiwgMC41NjY1NzIsIDAuNzI1NDYzIiwgXAotICAgICAgICAgICIwLjAzMTcsIDAuMTM4MTg1LCAwLjI0ODEyMiwgMC4zMjc0MjEsIDAuNDU0ODYxLCAwLjU2NjYyNSwgMC43MjU5OTIiLCBcCi0gICAgICAgICAgIjAuMDMyNjAzLCAwLjEzODYwOSwgMC4yNDgzMTUsIDAuMzI3NTI3LCAwLjQ1NDkzMiwgMC41NjY2NjcsIDAuNzI2MDExIiwgXAotICAgICAgICAgICIwLjAzNDAyMywgMC4xMzkzNjgsIDAuMjQ4NjIxLCAwLjMyNzY3MSwgMC40NTUwNDIsIDAuNTY2ODIyLCAwLjcyNjY1IiwgXAotICAgICAgICAgICIwLjAzNTEyOCwgMC4xNDAwNjMsIDAuMjQ5MDM4LCAwLjMyNzg4MiwgMC40NTUzMywgMC41NjY5ODMsIDAuNzI2NzExIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0ODYwNSwgMC4xMDc4MywgMC4xNjI3NTUsIDAuMjAxOTA2LCAwLjI2NDU2MywgMC4zMTk1MTUsIDAuMzk3NzE0IiwgXAotICAgICAgICAgICIwLjA1NTA0MiwgMC4xMTQyOTIsIDAuMTY5MjA1LCAwLjIwODM3OSwgMC4yNzEwMjIsIDAuMzI1OTg1LCAwLjQwNDE3OCIsIFwKLSAgICAgICAgICAiMC4wNjI3NzksIDAuMTIyMDQsIDAuMTc2OTYzLCAwLjIxNjEzOCwgMC4yNzg3NjYsIDAuMzMzNjAzLCAwLjQxMjA3MSIsIFwKLSAgICAgICAgICAiMC4wNjk1NTIsIDAuMTI5MDQ1LCAwLjE4Mzk2OCwgMC4yMjMxNCwgMC4yODU3NzQsIDAuMzQwNjIsIDAuNDE4OTM3IiwgXAotICAgICAgICAgICIwLjA3NTI5MSwgMC4xMzUyMSwgMC4xOTAxNjYsIDAuMjI5MzAyLCAwLjI5MTk1NywgMC4zNDY3ODMsIDAuNDI1MTIyIiwgXAotICAgICAgICAgICIwLjA4MzIwNSwgMC4xNDM4MzksIDAuMTk4Nzc2LCAwLjIzNzkwMywgMC4zMDA1NDUsIDAuMzU1MzQ1LCAwLjQzMzY4NCIsIFwKLSAgICAgICAgICAiMC4wODkxODYsIDAuMTUwNDAzLCAwLjIwNTI5MSwgMC4yNDQ0MTgsIDAuMzA3MTA3LCAwLjM2MTk1LCAwLjQ0MDI0NiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzMTI5NywgMC4xNDE1NDEsIDAuMjU1NTA1LCAwLjMzNzU3OCwgMC40Njk2OTYsIDAuNTg0NjAxLCAwLjc1MTA0NiIsIFwKLSAgICAgICAgICAiMC4wMzEzMDEsIDAuMTQxNTQ2LCAwLjI1NTUwNiwgMC4zMzc3OTYsIDAuNDY5NzA1LCAwLjU4NTQzOSwgMC43NTEwMDMiLCBcCi0gICAgICAgICAgIjAuMDMxNjU0LCAwLjE0MTYxMSwgMC4yNTU0OTYsIDAuMzM3ODAzLCAwLjQ2OTU4OCwgMC41ODQ4NiwgMC43NTAyNzMiLCBcCi0gICAgICAgICAgIjAuMDMyNjIyLCAwLjE0MTg4NiwgMC4yNTU2MzgsIDAuMzM3ODU2LCAwLjQ2OTc2OSwgMC41ODQ3OTUsIDAuNzUwOTgxIiwgXAotICAgICAgICAgICIwLjAzMzcxOSwgMC4xNDIzNjgsIDAuMjU1NTQxLCAwLjMzNzczLCAwLjQ2OTgwNCwgMC41ODU1MTksIDAuNzUwOTk3IiwgXAotICAgICAgICAgICIwLjAzNTQ5NCwgMC4xNDMxODgsIDAuMjU2MDkyLCAwLjMzODEzNSwgMC40Njk5MywgMC41ODU1NDgsIDAuNzUxMDA1IiwgXAotICAgICAgICAgICIwLjAzNjk4LCAwLjE0MzkxOSwgMC4yNTY1NjMsIDAuMzM4MTA0LCAwLjQ3MDE3NSwgMC41ODU0MDcsIDAuNzUwMDA4Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDUzODYsIDAuMTEzMTEyLCAwLjE2NzI1NCwgMC4yMDU3NzMsIDAuMjY3MzU0LCAwLjMyMTIwNCwgMC4zOTgxNSIsIFwKLSAgICAgICAgICAiMC4wNjE0MjcsIDAuMTIwNzAxLCAwLjE3NDgzOCwgMC4yMTMzNjgsIDAuMjc0OTQ2LCAwLjMyODgwNCwgMC40MDU3NDciLCBcCi0gICAgICAgICAgIjAuMDcxMTU4LCAwLjEzMDMyMSwgMC4xODQ0NTQsIDAuMjIyOTg0LCAwLjI4NDU2MSwgMC4zMzg0MjQsIDAuNDE1Mzc4IiwgXAotICAgICAgICAgICIwLjA4MDI4NSwgMC4xMzk1NSwgMC4xOTM1ODUsIDAuMjMyMTAyLCAwLjI5MzY4MywgMC4zNDc1MzEsIDAuNDI0NDY4IiwgXAotICAgICAgICAgICIwLjA4ODA3MiwgMC4xNDc0ODIsIDAuMjAxNTg4LCAwLjI0MDA5NywgMC4zMDE2NzUsIDAuMzU1NTI1LCAwLjQzMjQ1IiwgXAotICAgICAgICAgICIwLjA5ODc1MSwgMC4xNTg2NzcsIDAuMjEyODEsIDAuMjUxMzE1LCAwLjMxMjg3LCAwLjM2NjczOSwgMC40NDM2MjgiLCBcCi0gICAgICAgICAgIjAuMTA2NDg5LCAwLjE2NjY0MSwgMC4yMjA4MjksIDAuMjU5MzA1LCAwLjMyMDgzNywgMC4zNzQ2OTgsIDAuNDUxNTg1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDMxMjUsIDAuMTM4MjQ1LCAwLjI0ODI1NSwgMC4zMjc1NzEsIDAuNDU1MDI2LCAwLjU2Njc3OSwgMC43MjU5OTEiLCBcCi0gICAgICAgICAgIjAuMDMxMTcyLCAwLjEzODIwNywgMC4yNDgwNDQsIDAuMzI3NTU2LCAwLjQ1NDgzLCAwLjU2Njc3NywgMC43MjY3NjIiLCBcCi0gICAgICAgICAgIjAuMDMxMjgyLCAwLjEzODI2MywgMC4yNDgyNjYsIDAuMzI3MzY1LCAwLjQ1NTAyLCAwLjU2NjcyOCwgMC43MjU5MTIiLCBcCi0gICAgICAgICAgIjAuMDMyMDI4LCAwLjEzODQ1OSwgMC4yNDgzOTMsIDAuMzI3NjQ3LCAwLjQ1NTA2NywgMC41NjY3OTYsIDAuNzI1OTM5IiwgXAotICAgICAgICAgICIwLjAzMzMzLCAwLjEzODg3OCwgMC4yNDgzOSwgMC4zMjc0NDgsIDAuNDU1MTE2LCAwLjU2NjgzMywgMC43MjY1NDIiLCBcCi0gICAgICAgICAgIjAuMDM1MDY4LCAwLjEzOTY1LCAwLjI0ODgwOSwgMC4zMjgwNjYsIDAuNDU1MDk1LCAwLjU2Njg2MSwgMC43MjY3MSIsIFwKLSAgICAgICAgICAiMC4wMzY3NDcsIDAuMTQwMjIxLCAwLjI0OTE2MSwgMC4zMjgwOTcsIDAuNDU1MTc1LCAwLjU2NjM1NCwgMC43MjY3MDYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjEiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQ2OTU4LCAwLjEwNjE5NiwgMC4xNjExMTYsIDAuMjAwMjg5LCAwLjI2MjkzMywgMC4zMTc4MDMsIDAuMzk2MDk2IiwgXAotICAgICAgICAgICIwLjA1NDU2OSwgMC4xMTM4MiwgMC4xNjg3NDgsIDAuMjA3OTI0LCAwLjI3MDU1OCwgMC4zMjUzOTgsIDAuNDAzODU1IiwgXAotICAgICAgICAgICIwLjA2NDI3NywgMC4xMjM1NDEsIDAuMTc4NDYyLCAwLjIxNzY0MiwgMC4yODAyODMsIDAuMzM1MjQyLCAwLjQxMzQzNSIsIFwKLSAgICAgICAgICAiMC4wNzI3MDYsIDAuMTMyMTksIDAuMTg3MDkyLCAwLjIyNjI2NiwgMC4yODg5NDksIDAuMzQzNzA4LCAwLjQyMjA0NyIsIFwKLSAgICAgICAgICAiMC4wNzk4NzMsIDAuMTM5NzkyLCAwLjE5NDc5LCAwLjIzMzkzMiwgMC4yOTY2MDUsIDAuMzUxNDAzLCAwLjQyOTc2NiIsIFwKLSAgICAgICAgICAiMC4wODkxOTcsIDAuMTUwMDE3LCAwLjIwNDg4NiwgMC4yNDQwMTYsIDAuMzA2NjUyLCAwLjM2MTQzNywgMC40Mzk3NDUiLCBcCi0gICAgICAgICAgIjAuMDk2MTE2LCAwLjE1NzY2MiwgMC4yMTI1NjEsIDAuMjUxNjksIDAuMzE0Mjg2LCAwLjM2OTA4LCAwLjQ0NzQ1OCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzMTMxNiwgMC4xNDE1NTQsIDAuMjU1NDk5LCAwLjMzNzgyMywgMC40Njk3NSwgMC41ODQ1MTMsIDAuNzUxMDY0IiwgXAotICAgICAgICAgICIwLjAzMTMwNiwgMC4xNDE1NDUsIDAuMjU1NDk0LCAwLjMzNzgxMywgMC40Njk2NjgsIDAuNTg0ODc0LCAwLjc1MDA0MSIsIFwKLSAgICAgICAgICAiMC4wMzE3NDQsIDAuMTQxNjI1LCAwLjI1NTUxMywgMC4zMzc4MDUsIDAuNDY5Njc2LCAwLjU4NTQ2NSwgMC43NTEwMTciLCBcCi0gICAgICAgICAgIjAuMDMzMjU0LCAwLjE0MTk4NSwgMC4yNTU2NTcsIDAuMzM3ODM3LCAwLjQ2OTYyNiwgMC41ODU0NzgsIDAuNzUwOTczIiwgXAotICAgICAgICAgICIwLjAzNTAwNywgMC4xNDI2MDEsIDAuMjU1NjYsIDAuMzM3Nzg1LCAwLjQ2OTg2NiwgMC41ODU0ODEsIDAuNzUwMDk1IiwgXAotICAgICAgICAgICIwLjAzNzQzMywgMC4xNDM2MjYsIDAuMjU2Mzc2LCAwLjMzODEzOCwgMC40NzAwMTQsIDAuNTg1NTYyLCAwLjc1MDk3MyIsIFwKLSAgICAgICAgICAiMC4wMzkzOTQsIDAuMTQ0NTE4LCAwLjI1NjgwOCwgMC4zMzg1MjgsIDAuNDcwMDkxLCAwLjU4NTY1MSwgMC43NTA5ODgiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTExNDQsIDAuMTEwMTY1LCAwLjE2NDI0NywgMC4yMDI3NDcsIDAuMjY0MzA1LCAwLjMxODE0MiwgMC4zOTUwNjYiLCBcCi0gICAgICAgICAgIjAuMDU4NjY3LCAwLjExNzY1NiwgMC4xNzE3NDIsIDAuMjEwMjQ0LCAwLjI3MTgwMywgMC4zMjU2NDgsIDAuNDAyNTgyIiwgXAotICAgICAgICAgICIwLjA2ODI0MSwgMC4xMjcxNTMsIDAuMTgxMjMxLCAwLjIxOTcyOSwgMC4yODEzMTEsIDAuMzM1MTY4LCAwLjQxMjA0OSIsIFwKLSAgICAgICAgICAiMC4wNzcwMzEsIDAuMTM2MDg4LCAwLjE5MDE1MiwgMC4yMjg2NDcsIDAuMjkwMjA4LCAwLjM0NDA1MSwgMC40MjA5ODUiLCBcCi0gICAgICAgICAgIjAuMDg0NjE1LCAwLjE0Mzc5NiwgMC4xOTc4NDksIDAuMjM2MzE5LCAwLjI5Nzg3MiwgMC4zNTE3MDUsIDAuNDI4NjE5IiwgXAotICAgICAgICAgICIwLjA5NDMwMSwgMC4xNTQwOTksIDAuMjA4MDc5LCAwLjI0NjUzNSwgMC4zMDgwNjIsIDAuMzYxOTA3LCAwLjQzODgyNCIsIFwKLSAgICAgICAgICAiMC4xMDE2MDYsIDAuMTYxNTY1LCAwLjIxNTY4NywgMC4yNTQyNywgMC4zMTU2NTIsIDAuMzY5NjA2LCAwLjQ0NjM1MiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzMDc4NiwgMC4xMzc4ODcsIDAuMjQ3OTg1LCAwLjMyNzMyMywgMC40NTQ4MTYsIDAuNTY2NTkyLCAwLjcyNTY1NyIsIFwKLSAgICAgICAgICAiMC4wMzA4MTcsIDAuMTM3ODg2LCAwLjI0Nzk4MSwgMC4zMjczMjUsIDAuNDU0OCwgMC41NjY1MzYsIDAuNzI1MzIiLCBcCi0gICAgICAgICAgIjAuMDMwOTQ5LCAwLjEzNzk2MiwgMC4yNDgwMDYsIDAuMzI3Mjk5LCAwLjQ1NDg2MSwgMC41NjY2OTcsIDAuNzI2NDU3IiwgXAotICAgICAgICAgICIwLjAzMTgxNiwgMC4xMzgxOCwgMC4yNDgxLCAwLjMyNzM5OSwgMC40NTQ4MzUsIDAuNTY2NTI4LCAwLjcyNjQ1IiwgXAotICAgICAgICAgICIwLjAzMzA4NywgMC4xMzg3NjIsIDAuMjQ4MzMxLCAwLjMyNzI1NSwgMC40NTQ5MzQsIDAuNTY2NjU2LCAwLjcyNTk0NyIsIFwKLSAgICAgICAgICAiMC4wMzUxMDgsIDAuMTM5MzkxLCAwLjI0ODU3NiwgMC4zMjc2ODEsIDAuNDU1MDQ5LCAwLjU2NjcxOSwgMC43MjY2NDgiLCBcCi0gICAgICAgICAgIjAuMDM2Njg5LCAwLjE0MDE0OCwgMC4yNDkwMzYsIDAuMzI4MTc1LCAwLjQ1NTM3MiwgMC41NjY3OTIsIDAuNzI2NjE5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2MzU4LCAwLjAwNjQyMiwgMC4wMDY0NDksIDAuMDA2NDU3LCAwLjAwNjQ2NiwgMC4wMDY0NywgMC4wMDY0NzQiLCBcCi0gICAgICAgICAgIjAuMDA2MjU5LCAwLjAwNjM1MywgMC4wMDYzODYsIDAuMDA2Mzk4LCAwLjAwNjQwOSwgMC4wMDY0MTQsIDAuMDA2NDE5IiwgXAotICAgICAgICAgICIwLjAwNjMyMywgMC4wMDYzNTEsIDAuMDA2MzgyLCAwLjAwNjM5NCwgMC4wMDY0MDQsIDAuMDA2NDEsIDAuMDA2NDE4IiwgXAotICAgICAgICAgICIwLjAwNjQyNSwgMC4wMDYzODMsIDAuMDA2NDA5LCAwLjAwNjQyNCwgMC4wMDY0NCwgMC4wMDY0NCwgMC4wMDY0NDgiLCBcCi0gICAgICAgICAgIjAuMDA2NDYyLCAwLjAwNjQzLCAwLjAwNjQ3MSwgMC4wMDY0NzYsIDAuMDA2NDg4LCAwLjAwNjQ5MiwgMC4wMDY1MDIiLCBcCi0gICAgICAgICAgIjAuMDA2OTY4LCAwLjAwNjY2LCAwLjAwNjY0NSwgMC4wMDY2NDksIDAuMDA2NjUsIDAuMDA2NjUyLCAwLjAwNjY1NCIsIFwKLSAgICAgICAgICAiMC4wMDY5NDUsIDAuMDA2NzMzLCAwLjAwNjc0NCwgMC4wMDY3NTQsIDAuMDA2NzYzLCAwLjAwNjc2OSwgMC4wMDY3NzYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwOTc2NiwgMC4wMDk4OTYsIDAuMDA5OTM3LCAwLjAwOTk1MSwgMC4wMDk5NjMsIDAuMDA5OTcsIDAuMDA5OTc2IiwgXAotICAgICAgICAgICIwLjAwOTcxOSwgMC4wMDk4NjEsIDAuMDA5OTA1LCAwLjAwOTkyLCAwLjAwOTkzMywgMC4wMDk5NDEsIDAuMDA5OTQ3IiwgXAotICAgICAgICAgICIwLjAwOTc1MywgMC4wMDk4NDcsIDAuMDA5ODkxLCAwLjAwOTkwNywgMC4wMDk5MjEsIDAuMDA5OTI4LCAwLjAwOTkzNiIsIFwKLSAgICAgICAgICAiMC4wMDk4MTcsIDAuMDA5ODU4LCAwLjAwOTkwMSwgMC4wMDk5MTYsIDAuMDA5OTMsIDAuMDA5OTM4LCAwLjAwOTk0NSIsIFwKLSAgICAgICAgICAiMC4wMDk4OTQsIDAuMDA5ODg3LCAwLjAwOTkyNSwgMC4wMDk5MzksIDAuMDA5OTU0LCAwLjAwOTk2MSwgMC4wMDk5NjkiLCBcCi0gICAgICAgICAgIjAuMDEwMTAyLCAwLjAwOTk2NSwgMC4wMDk5OTMsIDAuMDEwMDA2LCAwLjAxMDAyMSwgMC4wMTAwMjcsIDAuMDEwMDM2IiwgXAotICAgICAgICAgICIwLjAxMDMxMywgMC4wMTAwNjQsIDAuMDEwMDk1LCAwLjAxMDEwNCwgMC4wMTAxMTYsIDAuMDEwMTIxLCAwLjAxMDEyNiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkExIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjM0NCwgMC4wMDY0MjMsIDAuMDA2NDU0LCAwLjAwNjQ2NiwgMC4wMDY0NjUsIDAuMDA2NDc5LCAwLjAwNjQ3MiIsIFwKLSAgICAgICAgICAiMC4wMDYyNzMsIDAuMDA2MzU5LCAwLjAwNjM5NiwgMC4wMDY0MDcsIDAuMDA2NDE5LCAwLjAwNjQyNSwgMC4wMDY0MyIsIFwKLSAgICAgICAgICAiMC4wMDYzNDksIDAuMDA2MzgxLCAwLjAwNjQxOCwgMC4wMDY0MzIsIDAuMDA2NDQ2LCAwLjAwNjQ1MiwgMC4wMDY0NiIsIFwKLSAgICAgICAgICAiMC4wMDY1MywgMC4wMDY0NzgsIDAuMDA2NTA0LCAwLjAwNjUxNSwgMC4wMDY1MzEsIDAuMDA2NTM0LCAwLjAwNjU0NCIsIFwKLSAgICAgICAgICAiMC4wMDY4NCwgMC4wMDY2MDksIDAuMDA2NjE2LCAwLjAwNjYyOCwgMC4wMDY2MzUsIDAuMDA2NjQzLCAwLjAwNjY0NyIsIFwKLSAgICAgICAgICAiMC4wMDcwNzIsIDAuMDA2ODE5LCAwLjAwNjgyOCwgMC4wMDY4MjksIDAuMDA2ODQ2LCAwLjAwNjg1MywgMC4wMDY4NTgiLCBcCi0gICAgICAgICAgIjAuMDA3NDQsIDAuMDA2OTc4LCAwLjAwNjk3NiwgMC4wMDY5ODEsIDAuMDA2OTg5LCAwLjAwNjk5NSwgMC4wMDY5OTkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwOTIzNCwgMC4wMDkzODgsIDAuMDA5NDI3LCAwLjAwOTQ0LCAwLjAwOTQ1MiwgMC4wMDk0NTgsIDAuMDA5NDYzIiwgXAotICAgICAgICAgICIwLjAwOTE3LCAwLjAwOTMzMiwgMC4wMDkzNzYsIDAuMDA5MzksIDAuMDA5NDAyLCAwLjAwOTQwOSwgMC4wMDk0MTUiLCBcCi0gICAgICAgICAgIjAuMDA5MTksIDAuMDA5MzA0LCAwLjAwOTM0OCwgMC4wMDkzNjMsIDAuMDA5Mzc2LCAwLjAwOTM4NCwgMC4wMDkzOSIsIFwKLSAgICAgICAgICAiMC4wMDkyMjEsIDAuMDA5MzA0LCAwLjAwOTM1LCAwLjAwOTM2NCwgMC4wMDkzNzksIDAuMDA5Mzg3LCAwLjAwOTM5MyIsIFwKLSAgICAgICAgICAiMC4wMDkzMDksIDAuMDA5MzI5LCAwLjAwOTM3MywgMC4wMDkzODcsIDAuMDA5NDAxLCAwLjAwOTQwOSwgMC4wMDk0MTYiLCBcCi0gICAgICAgICAgIjAuMDA5NTI2LCAwLjAwOTQxLCAwLjAwOTQ0NCwgMC4wMDk0NTYsIDAuMDA5NDY5LCAwLjAwOTQ3NiwgMC4wMDk0ODMiLCBcCi0gICAgICAgICAgIjAuMDA5NjI0LCAwLjAwOTUxOCwgMC4wMDk1MzksIDAuMDA5NTUsIDAuMDA5NTYxLCAwLjAwOTU2NywgMC4wMDk1NzQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDU1MTgsIDAuMDA1NTYsIDAuMDA1NTY1LCAwLjAwNTU2OSwgMC4wMDU1ODEsIDAuMDA1NTcsIDAuMDA1NTciLCBcCi0gICAgICAgICAgIjAuMDA1NDQxLCAwLjAwNTQ5NiwgMC4wMDU1MDgsIDAuMDA1NTExLCAwLjAwNTUxNiwgMC4wMDU1MTQsIDAuMDA1NTIiLCBcCi0gICAgICAgICAgIjAuMDA1NDk1LCAwLjAwNTQ5NiwgMC4wMDU1MDgsIDAuMDA1NTEsIDAuMDA1NTE2LCAwLjAwNTUxNywgMC4wMDU1MTgiLCBcCi0gICAgICAgICAgIjAuMDA1NTY5LCAwLjAwNTU0NCwgMC4wMDU1NTIsIDAuMDA1NTU0LCAwLjAwNTU2MSwgMC4wMDU1NTgsIDAuMDA1NTU5IiwgXAotICAgICAgICAgICIwLjAwNTc0OCwgMC4wMDU2MzMsIDAuMDA1NjMsIDAuMDA1NjI5LCAwLjAwNTYzLCAwLjAwNTYyNSwgMC4wMDU2MjciLCBcCi0gICAgICAgICAgIjAuMDA1OSwgMC4wMDU3MzcsIDAuMDA1Nzc3LCAwLjAwNTc3NCwgMC4wMDU3NzMsIDAuMDA1NzY4LCAwLjAwNTc2NiIsIFwKLSAgICAgICAgICAiMC4wMDYyMDMsIDAuMDA1OTI5LCAwLjAwNTkyLCAwLjAwNTkyLCAwLjAwNTkyLCAwLjAwNTkyLCAwLjAwNTkyMSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA4NDc2LCAwLjAwODYxMywgMC4wMDg2NTQsIDAuMDA4NjY5LCAwLjAwODY4MiwgMC4wMDg2ODksIDAuMDA4Njk1IiwgXAotICAgICAgICAgICIwLjAwODQzOCwgMC4wMDg1OCwgMC4wMDg2MjksIDAuMDA4NjQ1LCAwLjAwODY2MSwgMC4wMDg2NjksIDAuMDA4Njc2IiwgXAotICAgICAgICAgICIwLjAwODU1MywgMC4wMDg2MTksIDAuMDA4NjY4LCAwLjAwODY4NiwgMC4wMDg3MDMsIDAuMDA4NzEzLCAwLjAwODcyMSIsIFwKLSAgICAgICAgICAiMC4wMDg3MDcsIDAuMDA4NzAxLCAwLjAwODc0NywgMC4wMDg3NjIsIDAuMDA4Nzc4LCAwLjAwODc4NywgMC4wMDg3OTUiLCBcCi0gICAgICAgICAgIjAuMDA4OTcxLCAwLjAwODgyMiwgMC4wMDg4NDUsIDAuMDA4ODU5LCAwLjAwODg3MywgMC4wMDg4ODEsIDAuMDA4ODkiLCBcCi0gICAgICAgICAgIjAuMDA5MjA5LCAwLjAwODk2OSwgMC4wMDg5ODIsIDAuMDA4OTk0LCAwLjAwOTAwNywgMC4wMDkwMTcsIDAuMDA5MDI0IiwgXAotICAgICAgICAgICIwLjAwOTU4NywgMC4wMDkxODMsIDAuMDA5MTcxLCAwLjAwOTE3NiwgMC4wMDkxODQsIDAuMDA5MTksIDAuMDA5MTk2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1NTI1LCAwLjAwNTU3MSwgMC4wMDU1ODIsIDAuMDA1NTg3LCAwLjAwNTU5NCwgMC4wMDU1OTMsIDAuMDA1NTk0IiwgXAotICAgICAgICAgICIwLjAwNTQ2MiwgMC4wMDU1MjYsIDAuMDA1NTQ0LCAwLjAwNTU0OCwgMC4wMDU1NTUsIDAuMDA1NTU4LCAwLjAwNTU2IiwgXAotICAgICAgICAgICIwLjAwNTU3OSwgMC4wMDU1NjQsIDAuMDA1NTg1LCAwLjAwNTU5MSwgMC4wMDU1OTgsIDAuMDA1NjAxLCAwLjAwNTYwNSIsIFwKLSAgICAgICAgICAiMC4wMDU3NDUsIDAuMDA1NjYxLCAwLjAwNTY3MiwgMC4wMDU2NzYsIDAuMDA1Njg4LCAwLjAwNTY4OCwgMC4wMDU2OTEiLCBcCi0gICAgICAgICAgIjAuMDA1OTYsIDAuMDA1NzU2LCAwLjAwNTc1MywgMC4wMDU3NjEsIDAuMDA1NzYxLCAwLjAwNTc2MywgMC4wMDU3NjYiLCBcCi0gICAgICAgICAgIjAuMDA2MzEyLCAwLjAwNTk2OCwgMC4wMDU5NjEsIDAuMDA1OTU5LCAwLjAwNTk1OCwgMC4wMDU5NTcsIDAuMDA1OTU4IiwgXAotICAgICAgICAgICIwLjAwNjYxMSwgMC4wMDYxODEsIDAuMDA2MTYyLCAwLjAwNjE1OSwgMC4wMDYxNTYsIDAuMDA2MTUyLCAwLjAwNjE1MyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA3OTM0LCAwLjAwODA5NCwgMC4wMDgxMzQsIDAuMDA4MTQ4LCAwLjAwODE2LCAwLjAwODE2NiwgMC4wMDgxNzIiLCBcCi0gICAgICAgICAgIjAuMDA3ODgsIDAuMDA4MDQ2LCAwLjAwODA5NCwgMC4wMDgxMDksIDAuMDA4MTI0LCAwLjAwODEzMSwgMC4wMDgxMzgiLCBcCi0gICAgICAgICAgIjAuMDA3OTcyLCAwLjAwODA3MywgMC4wMDgxMjIsIDAuMDA4MTQsIDAuMDA4MTU3LCAwLjAwODE2NSwgMC4wMDgxNzQiLCBcCi0gICAgICAgICAgIjAuMDA4MTYyLCAwLjAwODE0OSwgMC4wMDgxOSwgMC4wMDgyMDcsIDAuMDA4MjIzLCAwLjAwODIzMiwgMC4wMDgyNCIsIFwKLSAgICAgICAgICAiMC4wMDgzMjUsIDAuMDA4MjU1LCAwLjAwODI4MywgMC4wMDgyOTMsIDAuMDA4MzA1LCAwLjAwODMxMywgMC4wMDgzMTkiLCBcCi0gICAgICAgICAgIjAuMDA4NzA0LCAwLjAwODQzMiwgMC4wMDg0NDEsIDAuMDA4NDQ4LCAwLjAwODQ1OSwgMC4wMDg0NjYsIDAuMDA4NDcxIiwgXAotICAgICAgICAgICIwLjAwOTE1NiwgMC4wMDg2NywgMC4wMDg2NDIsIDAuMDA4NjA3LCAwLjAwODY0MSwgMC4wMDg2MTgsIDAuMDA4NjQ0Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogQU9JMjFYNCAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChBT0kyMVg0KSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDEuMTA4NzU7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDM1Mjc5MzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDM1MTc3NzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDM1Mjc5MzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDIwOTcsIDAuMDAyMDk1LCAwLjAwMjA5NSwgMC4wMDIwOTUsIDAuMDAyMDk0LCAwLjAwMjA5NCwgMC4wMDIwOTQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDIyMTMsIDAuMDAyMTM3LCAwLjAwMjEyNiwgMC4wMDIxMDgsIDAuMDAyMTA4LCAwLjAwMjEwNCwgMC4wMDIxMDQiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEExKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDM0MDQ3NjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDMzODg1NDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDM0MDQ3NjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDEzMTgsIDAuMDAxMzE2LCAwLjAwMTMxNiwgMC4wMDEzMTUsIDAuMDAxMzE1LCAwLjAwMTMxNSwgMC4wMDEzMTUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDIzODIsIDAuMDAyMzg0LCAwLjAwMjM4NCwgMC4wMDIzODQsIDAuMDAyMzg0LCAwLjAwMjM4NCwgMC4wMDIzODQiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDMyMDc1ODsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDMyMDc1ODsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDMyMDY5MjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAzOTksIDAuMDAwMzk4LCAwLjAwMDM5OSwgMC4wMDAzOTksIDAuMDAwMzk5LCAwLjAwMDM5OSwgMC4wMDAzOTkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDIzNTIsIDAuMDAyMzUyLCAwLjAwMjM1MiwgMC4wMDIzNTEsIDAuMDAyMzUyLCAwLjAwMjM1MSwgMC4wMDIzNTIiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC43MjQ1MDE7Ci0gICAgZnVuY3Rpb24gOiAiKCEoKEEwIEExKStCMCkpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjg0MjksIDAuMTI5NTA2LCAwLjIzMDIzNCwgMC4zMDI0MDYsIDAuNDE3NDc5LCAwLjUxODYxLCAwLjY2MjE1IiwgXAotICAgICAgICAgICIwLjAzNTA2MywgMC4xMzYxODcsIDAuMjM3MTY0LCAwLjMwODkyNywgMC40MjQwMDgsIDAuNTI1NDMsIDAuNjY4NzI1IiwgXAotICAgICAgICAgICIwLjA0MTg5OCwgMC4xNDM0ODksIDAuMjQ0NDg1LCAwLjMxNjQzNSwgMC40MzE2NDUsIDAuNTMyNzgyLCAwLjY3NjEzIiwgXAotICAgICAgICAgICIwLjA0NzEwNiwgMC4xNTA3NTYsIDAuMjUxNzAzLCAwLjMyMzYwNiwgMC40MzkxOTYsIDAuNTM5OTMsIDAuNjg0MTQ5IiwgXAotICAgICAgICAgICIwLjA1MTI4MiwgMC4xNTc4OTMsIDAuMjU4OTIzLCAwLjMzMTExOSwgMC40NDYzNTMsIDAuNTQ2OTMsIDAuNjkwODM1IiwgXAotICAgICAgICAgICIwLjA1NjY1NCwgMC4xNjk3NiwgMC4yNzA2MDYsIDAuMzQyNzY1LCAwLjQ1ODE4NCwgMC41NTkyMDUsIDAuNzAyOTU3IiwgXAotICAgICAgICAgICIwLjA2MDQ1OCwgMC4xNzk5NzQsIDAuMjgwODkzLCAwLjM1MjU1NCwgMC40NjgxOTYsIDAuNTY4OTk2LCAwLjcxMzA0NSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0NDkwMSwgMC4yNTk4NywgMC40NzQ1MTgsIDAuNjI4MDQyLCAwLjg3MzQ3MywgMS4wODg0NiwgMS4zOTQ2MyIsIFwKLSAgICAgICAgICAiMC4wNDU5MzQsIDAuMjU5NzgsIDAuNDc0ODExLCAwLjYyODA2NSwgMC44NzMyNTksIDEuMDg4NDgsIDEuMzk0NjgiLCBcCi0gICAgICAgICAgIjAuMDUwMjI0LCAwLjI2MDA2NiwgMC40NzQ1NjcsIDAuNjI3OTE4LCAwLjg3MzMzNCwgMS4wODg0NiwgMS4zOTQ4OCIsIFwKLSAgICAgICAgICAiMC4wNTYxODgsIDAuMjYxNjE4LCAwLjQ3NDYzNCwgMC42Mjc5MDUsIDAuODczNTYsIDEuMDg4MywgMS4zOTUzIiwgXAotICAgICAgICAgICIwLjA2MjA3NywgMC4yNjQ1NDYsIDAuNDc1NjAzLCAwLjYyODE1NSwgMC44NzM0MDYsIDEuMDg3OTgsIDEuMzk1MDQiLCBcCi0gICAgICAgICAgIjAuMDcxMDQsIDAuMjcwOTQxLCAwLjQ3OTI0MSwgMC42Mjk4MTQsIDAuODczNzYxLCAxLjA4ODI0LCAxLjM5NDU3IiwgXAotICAgICAgICAgICIwLjA3ODYxNiwgMC4yNzc2NSwgMC40ODM1MzMsIDAuNjMyOTk0LCAwLjg3NTAxMSwgMS4wODg0MSwgMS4zOTU2MSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyNzQyNSwgMC4xMjE5MTIsIDAuMjE1NTEyLCAwLjI4MjQ2NSwgMC4zODk2LCAwLjQ4MzA5MSwgMC42MTY5NTciLCBcCi0gICAgICAgICAgIjAuMDMzODYxLCAwLjEyODQyNiwgMC4yMjIxLCAwLjI4ODk4NywgMC4zOTU5NzgsIDAuNDg5Njk1LCAwLjYyMzE5NSIsIFwKLSAgICAgICAgICAiMC4wNDE2MjYsIDAuMTM2NjcxLCAwLjIzMDU2NywgMC4yOTc0MTgsIDAuNDA0MzY0LCAwLjQ5ODAzMywgMC42MzE4MjkiLCBcCi0gICAgICAgICAgIjAuMDQ3OTE2LCAwLjE0NDk4NywgMC4yMzg4NjcsIDAuMzA1ODU2LCAwLjQxMjc2MywgMC41MDY0NywgMC42NDAxMDgiLCBcCi0gICAgICAgICAgIjAuMDUzMTU0LCAwLjE1MzI0LCAwLjI0NzIxNSwgMC4zMTQxMzgsIDAuNDIxMTQxLCAwLjUxNDg4MywgMC42NDg0NTQiLCBcCi0gICAgICAgICAgIjAuMDYwMzg5LCAwLjE2Njc1NywgMC4yNjAzNjgsIDAuMzI3MjMzLCAwLjQzNDMyNiwgMC41Mjc2MSwgMC42NjE4MDMiLCBcCi0gICAgICAgICAgIjAuMDY1ODEyLCAwLjE3ODA2NSwgMC4yNzIxNTQsIDAuMzM4NzU0LCAwLjQ0NjU5OCwgMC41NDA3NDIsIDAuNjc0NDE4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQzNTMyLCAwLjIzNzEzMywgMC40MzA4MTEsIDAuNTY5MDY3LCAwLjc5MDU3NCwgMC45ODM3MDUsIDEuMjYwMjMiLCBcCi0gICAgICAgICAgIjAuMDQ1MDE4LCAwLjIzNzA1NSwgMC40MzA1OTksIDAuNTY5MDYsIDAuNzkwMDM0LCAwLjk4MzY3MSwgMS4yNiIsIFwKLSAgICAgICAgICAiMC4wNTAyNTcsIDAuMjM3NDQ5LCAwLjQzMDU3NSwgMC41Njg4MjYsIDAuNzg5OTgyLCAwLjk4MzYyMiwgMS4yNjAxNCIsIFwKLSAgICAgICAgICAiMC4wNTY5NDMsIDAuMjM5NTE0LCAwLjQzMDg4NSwgMC41Njg5ODQsIDAuNzg5OTkxLCAwLjk4MzY4NSwgMS4yNjAwOCIsIFwKLSAgICAgICAgICAiMC4wNjM0MzgsIDAuMjQyODY4LCAwLjQzMjEzNSwgMC41NjkxMjIsIDAuNzkwMDI1LCAwLjk4MzgwMywgMS4yNjAwMiIsIFwKLSAgICAgICAgICAiMC4wNzMwMTIsIDAuMjUwMjYzLCAwLjQzNTkzOCwgMC41NzE0NjIsIDAuNzkwNDM4LCAwLjk4MzY4MywgMS4yNTk4OCIsIFwKLSAgICAgICAgICAiMC4wODA5MDgsIDAuMjU3Mjg5LCAwLjQ0MDk1NiwgMC41NzQ2ODgsIDAuNzkyMTk4LCAwLjk4NDE4MSwgMS4yNTk5NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjY1MzYsIDAuMTI4MDc1LCAwLjIyOTQ0OCwgMC4zMDE3OTIsIDAuNDE3NTg4LCAwLjUxOTA5LCAwLjY2Mzc5IiwgXAotICAgICAgICAgICIwLjAzMjk5OSwgMC4xMzQ4MDUsIDAuMjM2NDUsIDAuMzA4NDg0LCAwLjQyNDUzOCwgMC41MjYxNzQsIDAuNjcwMzE2IiwgXAotICAgICAgICAgICIwLjAzOTU2NSwgMC4xNDE5ODgsIDAuMjQzNTU5LCAwLjMxNTk2OCwgMC40MzE3NjgsIDAuNTMzNjcxLCAwLjY3NzU3NCIsIFwKLSAgICAgICAgICAiMC4wNDQzOCwgMC4xNDkyMTksIDAuMjUwODMyLCAwLjMyMzE0OSwgMC40MzkzLCAwLjU0MDU3MSwgMC42ODQ4NTEiLCBcCi0gICAgICAgICAgIjAuMDQ4MTE3LCAwLjE1NjI2NSwgMC4yNTc5NjMsIDAuMzMwNTA3LCAwLjQ0NjQzMSwgMC41NDc0OTcsIDAuNjkyMzI4IiwgXAotICAgICAgICAgICIwLjA1MzA2NiwgMC4xNjgwMTQsIDAuMjY5NDcxLCAwLjM0MjA0NiwgMC40NTc3ODcsIDAuNTU5NTgzLCAwLjcwNDE4MSIsIFwKLSAgICAgICAgICAiMC4wNTY1NDgsIDAuMTc4MTU1LCAwLjI3OTc0NCwgMC4zNTIwMzMsIDAuNDY4MDU1LCAwLjU2OTM1OCwgMC43MTQyNzIiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDI1MTMsIDAuMjU4MzM5LCAwLjQ3NDMwNiwgMC42MjkwNTIsIDAuODc1NDM3LCAxLjA5MTg3LCAxLjQwMDA4IiwgXAotICAgICAgICAgICIwLjA0MzU4MywgMC4yNTg0NSwgMC40NzQ2MTQsIDAuNjI4OTAzLCAwLjg3NTUyOSwgMS4wOTE4OSwgMS4zOTk4MyIsIFwKLSAgICAgICAgICAiMC4wNDgxODIsIDAuMjU4OTkyLCAwLjQ3NDMzNywgMC42Mjg3NzcsIDAuODc1NDA2LCAxLjA5MTk2LCAxLjQwMTA4IiwgXAotICAgICAgICAgICIwLjA1NDI2MywgMC4yNjAyNjgsIDAuNDc0MzkyLCAwLjYyODcyNywgMC44NzU2NzEsIDEuMDkxNDIsIDEuNDAyMjkiLCBcCi0gICAgICAgICAgIjAuMDYwMjA2LCAwLjI2MzQ1NywgMC40NzYxODQsIDAuNjI4NzgyLCAwLjg3NTYxMiwgMS4wOTE5MSwgMS40MDA2MiIsIFwKLSAgICAgICAgICAiMC4wNjg5NTcsIDAuMjY5NjUxLCAwLjQ3OTU2OCwgMC42MzA2MDcsIDAuODc2MDU5LCAxLjA5MTM4LCAxLjM5OTgzIiwgXAotICAgICAgICAgICIwLjA3NjQ5NSwgMC4yNzYzMzUsIDAuNDgzMjQ4LCAwLjYzNDYyMiwgMC44Nzg0ODksIDEuMDkyMTcsIDEuMzk5NTEiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjU5OTYsIDAuMTIwNDEsIDAuMjE0MDc4LCAwLjI4MTEyMSwgMC4zODgwNDksIDAuNDgxNzU5LCAwLjYxNTU0NCIsIFwKLSAgICAgICAgICAiMC4wMzM1NDQsIDAuMTI3OTY2LCAwLjIyMTY2NSwgMC4yODg1ODEsIDAuMzk1NTMyLCAwLjQ4OTA4MywgMC42MjI3MzgiLCBcCi0gICAgICAgICAgIjAuMDQzMjgzLCAwLjEzNzQ5MywgMC4yMzExODksIDAuMjk4MDI0LCAwLjQwNTA1MiwgMC40OTg2ODcsIDAuNjMyMzQ4IiwgXAotICAgICAgICAgICIwLjA1MDc0NiwgMC4xNDc0OTcsIDAuMjQxMTIzLCAwLjMwNzk3NywgMC40MTUsIDAuNTA4NTc1LCAwLjY0MjI2NyIsIFwKLSAgICAgICAgICAiMC4wNTcxOTcsIDAuMTU3MTQ5LCAwLjI1MDU4MywgMC4zMTc0MzYsIDAuNDI0MjkyLCAwLjUxNzg5NCwgMC42NTE3NTIiLCBcCi0gICAgICAgICAgIjAuMDY1NTAzLCAwLjE3MzA3MSwgMC4yNjYzMTgsIDAuMzMzMTUxLCAwLjQ0MDA0MSwgMC41MzM3MDIsIDAuNjY3MTEyIiwgXAotICAgICAgICAgICIwLjA3MTc5NCwgMC4xODcyMjIsIDAuMjgwMjE4LCAwLjM0Njg0OCwgMC40NTM4MDIsIDAuNTQ3Mjk3LCAwLjY4MTEyNyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0MzU2NCwgMC4yMzcxNjIsIDAuNDMwNzM0LCAwLjU2OTA4NywgMC43OTAxNTQsIDAuOTgzNTg5LCAxLjI2MDQiLCBcCi0gICAgICAgICAgIjAuMDQ1OTgxLCAwLjIzNzA1LCAwLjQzMDc0MSwgMC41Njg4MTYsIDAuNzkwMDQ1LCAwLjk4MzU0NywgMS4yNjAwMSIsIFwKLSAgICAgICAgICAiMC4wNTM1MjUsIDAuMjM3NDg0LCAwLjQzMDY1OCwgMC41Njg4MjcsIDAuNzg5Njc0LCAwLjk4MzQ1MywgMS4yNjAxMiIsIFwKLSAgICAgICAgICAiMC4wNjIzOTMsIDAuMjQwNTE3LCAwLjQzMDc2MywgMC41NjkwNDQsIDAuNzkwMDUxLCAwLjk4MzU4OCwgMS4yNTk0OSIsIFwKLSAgICAgICAgICAiMC4wNzAxNTcsIDAuMjQ1MzY3LCAwLjQzMjM5NywgMC41NjkyNzcsIDAuNzkwMDEsIDAuOTgzNjE3LCAxLjI2MDA0IiwgXAotICAgICAgICAgICIwLjA4MTYxMywgMC4yNTU1MjcsIDAuNDM4MDQzLCAwLjU3MjI1NiwgMC43OTAzODMsIDAuOTgzNzE0LCAxLjI2MDAyIiwgXAotICAgICAgICAgICIwLjA5MDcyOCwgMC4yNjU4NjcsIDAuNDQ0ODA1LCAwLjU3NzA4MiwgMC43OTMwMSwgMC45ODQwOTIsIDEuMjYwMDIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjAiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDIzNjc5LCAwLjEyNDgxOSwgMC4yMjU1NSwgMC4yOTc2NTMsIDAuNDEyOTU2LCAwLjUxNDMzNSwgMC42NTg2MzIiLCBcCi0gICAgICAgICAgIjAuMDMxMiwgMC4xMzIzNjMsIDAuMjMzMTg5LCAwLjMwNDg1NSwgMC40MjA2OCwgMC41MjE3ODYsIDAuNjY2NzU2IiwgXAotICAgICAgICAgICIwLjA0MDYxNCwgMC4xNDIwODIsIDAuMjQyOTA4LCAwLjMxNDkyMywgMC40MzAyNiwgMC41MzExOTcsIDAuNjc1MTE5IiwgXAotICAgICAgICAgICIwLjA0NzUyMSwgMC4xNTE2LCAwLjI1MjM4MiwgMC4zMjQ2MTMsIDAuNDM5Nzc4LCAwLjU0MDg3MSwgMC42ODUzMTQiLCBcCi0gICAgICAgICAgIjAuMDUzMTAxLCAwLjE2MTM1NSwgMC4yNjIwODYsIDAuMzM0MTY1LCAwLjQ0OTMyMSwgMC41NTA2ODMsIDAuNjk0OTE4IiwgXAotICAgICAgICAgICIwLjA2MDU3OCwgMC4xNzcxODMsIDAuMjc3NjM5LCAwLjM0OTQ2OCwgMC40NjQ3MzksIDAuNTY2MDE5LCAwLjcxMTA3NSIsIFwKLSAgICAgICAgICAiMC4wNjU5NDgsIDAuMTkxMjMsIDAuMjkxMzM5LCAwLjM2MzA0OSwgMC40NzgzNDYsIDAuNTc5MzM2LCAwLjcyMzk4NiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0NDczMiwgMC4yNTk3NDcsIDAuNDc0NzU1LCAwLjYyODU5LCAwLjg3NTM5OSwgMS4wOTE4OCwgMS4zOTk5MyIsIFwKLSAgICAgICAgICAiMC4wNDc2MjYsIDAuMjU5NzYsIDAuNDc0Mzc5LCAwLjYyODU1OCwgMC44NzU4MTYsIDEuMDkxNTYsIDEuNDAwNDgiLCBcCi0gICAgICAgICAgIjAuMDU1NDg3LCAwLjI2MDAxMSwgMC40NzQzNzEsIDAuNjI4NTUyLCAwLjg3NTM3LCAxLjA5MiwgMS4zOTkxIiwgXAotICAgICAgICAgICIwLjA2NDAwOCwgMC4yNjI5NDgsIDAuNDc0NjQ2LCAwLjYyODgxNSwgMC44NzU0MDEsIDEuMDkxMzEsIDEuMzk5ODIiLCBcCi0gICAgICAgICAgIjAuMDcxNDI2LCAwLjI2NzU5MiwgMC40NzU3OTcsIDAuNjI4NjY4LCAwLjg3NTYyMSwgMS4wOTE3NiwgMS4zOTk4NCIsIFwKLSAgICAgICAgICAiMC4wODE3MTYsIDAuMjc3NjU0LCAwLjQ4MTc4NSwgMC42MzIyNDEsIDAuODc1NDg2LCAxLjA5MTU4LCAxLjQwMDU0IiwgXAotICAgICAgICAgICIwLjA4OTk2NCwgMC4yODc3MSwgMC40ODc5NTIsIDAuNjM1OTExLCAwLjg3NzM4OSwgMS4wOTE0NiwgMS40MDAyMSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMzIzNSwgMC4wNjczNDYsIDAuMTIxMzM4LCAwLjE1OTg3NSwgMC4yMjE0ODMsIDAuMjc1MzQyLCAwLjM1MjI3MiIsIFwKLSAgICAgICAgICAiMC4wMjEzODUsIDAuMDc1ODE1LCAwLjEyOTgwNSwgMC4xNjgzNDcsIDAuMjI5OTQzLCAwLjI4MzgyLCAwLjM2MDc1MyIsIFwKLSAgICAgICAgICAiMC4wMjgzNzEsIDAuMDg2MzE0LCAwLjE0MDI4MiwgMC4xNzg4MSwgMC4yNDA0MjQsIDAuMjk0Mjg5LCAwLjM3MTIxNiIsIFwKLSAgICAgICAgICAiMC4wMzMzMSwgMC4wOTcyMTEsIDAuMTUxMDEyLCAwLjE4OTUyOCwgMC4yNTExMzQsIDAuMzA1MDIsIDAuMzgxOTAzIiwgXAotICAgICAgICAgICIwLjAzNzI5NywgMC4xMDc2NTIsIDAuMTYxNTg5LCAwLjIwMDA0NCwgMC4yNjE2MTQsIDAuMzE1NDcsIDAuMzkyNDIiLCBcCi0gICAgICAgICAgIjAuMDQyNjQ0LCAwLjEyNDEwNiwgMC4xNzg1NSwgMC4yMTcsIDAuMjc4NDQxLCAwLjMzMjE4NSwgMC40MDkwNjEiLCBcCi0gICAgICAgICAgIjAuMDQ2MTQ1LCAwLjEzNjQ4NSwgMC4xOTM2NjEsIDAuMjMyMDM2LCAwLjI5MzM3MSwgMC4zNDcxODksIDAuNDIzOTUxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDIzMDQ3LCAwLjEzNDc2MywgMC4yNDY1OSwgMC4zMjY1NDUsIDAuNDU0NDU0LCAwLjU2NjM2MiwgMC43MjYwOTIiLCBcCi0gICAgICAgICAgIjAuMDI4MjQxLCAwLjEzNDgyNSwgMC4yNDY1OTYsIDAuMzI2NTAxLCAwLjQ1NDQ0NywgMC41NjYzNzgsIDAuNzI2MzMiLCBcCi0gICAgICAgICAgIjAuMDM3NjY4LCAwLjEzODAyMiwgMC4yNDY5NSwgMC4zMjY2MzEsIDAuNDU0NDksIDAuNTY2NTIzLCAwLjcyNjM4NiIsIFwKLSAgICAgICAgICAiMC4wNDYyNDksIDAuMTQ0MDI3LCAwLjI0OTgyNywgMC4zMjc2ODMsIDAuNDU0NDM0LCAwLjU2NjQ4MiwgMC43MjYzMzUiLCBcCi0gICAgICAgICAgIjAuMDUzNzY2LCAwLjE1MTMzOSwgMC4yNTQ1OTQsIDAuMzMwOTU3LCAwLjQ1NTg0LCAwLjU2NjY2LCAwLjcyNjMxIiwgXAotICAgICAgICAgICIwLjA2NDQ0NCwgMC4xNjUwNDUsIDAuMjY0Njg1LCAwLjMzOTAxNywgMC40NjA4MjgsIDAuNTY5NzM1LCAwLjcyNzEyMiIsIFwKLSAgICAgICAgICAiMC4wNzMyOTQsIDAuMTc3OTc0LCAwLjI3NDg4LCAwLjM0NzY3MiwgMC40Njc0OTEsIDAuNTc0NzA0LCAwLjczMDA3NCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMjM4MywgMC4wMTI0MSwgMC4wMTI0MSwgMC4wMTI0MTEsIDAuMDEyNDExLCAwLjAxMjQxLCAwLjAxMjQxMiIsIFwKLSAgICAgICAgICAiMC4wMTIyNjksIDAuMDEyMzY2LCAwLjAxMjM3OCwgMC4wMTIzODMsIDAuMDEyMzg2LCAwLjAxMjM4OCwgMC4wMTIzODgiLCBcCi0gICAgICAgICAgIjAuMDEyMjQyLCAwLjAxMjM0NiwgMC4wMTIzNjUsIDAuMDEyMzcyLCAwLjAxMjM3NywgMC4wMTIzOCwgMC4wMTIzODMiLCBcCi0gICAgICAgICAgIjAuMDEyMzIxLCAwLjAxMjM2MiwgMC4wMTIzNzIsIDAuMDEyMzc2LCAwLjAxMjM4MywgMC4wMTIzODQsIDAuMDEyMzg2IiwgXAotICAgICAgICAgICIwLjAxMjQ3OSwgMC4wMTI0MDQsIDAuMDEyNCwgMC4wMTI0MDEsIDAuMDEyNCwgMC4wMTIzOTgsIDAuMDEyMzk3IiwgXAotICAgICAgICAgICIwLjAxMjg3MywgMC4wMTI1MzUsIDAuMDEyNDg3LCAwLjAxMjQ2OCwgMC4wMTI0NDIsIDAuMDEyNDQsIDAuMDEyNDMiLCBcCi0gICAgICAgICAgIjAuMDEzMzUzLCAwLjAxMjcxNiwgMC4wMTI2MDQsIDAuMDEyNTY2LCAwLjAxMjUyOSwgMC4wMTI1MDYsIDAuMDEyNDg0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDIwMjYsIDAuMDAyMDQ0LCAwLjAwMjA0NiwgMC4wMDIwNDYsIDAuMDAyMDQ3LCAwLjAwMjA0NiwgMC4wMDIwNDUiLCBcCi0gICAgICAgICAgIjAuMDAxODMzLCAwLjAwMTkzOCwgMC4wMDE5NTMsIDAuMDAxOTU3LCAwLjAwMTk2MSwgMC4wMDE5NjIsIDAuMDAxOTY0IiwgXAotICAgICAgICAgICIwLjAwMTg1MSwgMC4wMDE5MTgsIDAuMDAxOTM2LCAwLjAwMTk0MSwgMC4wMDE5NDYsIDAuMDAxOTQ4LCAwLjAwMTk0OSIsIFwKLSAgICAgICAgICAiMC4wMDIwMTksIDAuMDAxOTUyLCAwLjAwMTk1MywgMC4wMDE5NTQsIDAuMDAxOTU0LCAwLjAwMTk1NCwgMC4wMDE5NTQiLCBcCi0gICAgICAgICAgIjAuMDAyMjgzLCAwLjAwMjAyNCwgMC4wMDIwMDEsIDAuMDAxOTg5LCAwLjAwMTk4LCAwLjAwMTk3NSwgMC4wMDE5NyIsIFwKLSAgICAgICAgICAiMC4wMDI4NTYsIDAuMDAyMjI3LCAwLjAwMjEyMywgMC4wMDIwODksIDAuMDAyMDUzLCAwLjAwMjAzNiwgMC4wMDIwMjIiLCBcCi0gICAgICAgICAgIjAuMDAzNDYyLCAwLjAwMjQ1NSwgMC4wMDIyNzMsIDAuMDAyMjEsIDAuMDAyMTU4LCAwLjAwMjEyNCwgMC4wMDIwODkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTA0ODEsIDAuMDEwNTYyLCAwLjAxMDU3LCAwLjAxMDU3MywgMC4wMTA1NzMsIDAuMDEwNTc2LCAwLjAxMDU3NSIsIFwKLSAgICAgICAgICAiMC4wMTAyNzIsIDAuMDEwNTE3LCAwLjAxMDU1MSwgMC4wMTA1NjEsIDAuMDEwNTcyLCAwLjAxMDU3OCwgMC4wMTA1ODIiLCBcCi0gICAgICAgICAgIjAuMDEwMjEsIDAuMDEwNDY0LCAwLjAxMDUyLCAwLjAxMDUzOCwgMC4wMTA1NTIsIDAuMDEwNTYzLCAwLjAxMDU2NiIsIFwKLSAgICAgICAgICAiMC4wMTAyNzgsIDAuMDEwNDUsIDAuMDEwNTA3LCAwLjAxMDUyOCwgMC4wMTA1NDcsIDAuMDEwNTU4LCAwLjAxMDU2MyIsIFwKLSAgICAgICAgICAiMC4wMTA0NDgsIDAuMDEwNDczLCAwLjAxMDUxNiwgMC4wMTA1MzgsIDAuMDEwNTU4LCAwLjAxMDU1OSwgMC4wMTA1NzMiLCBcCi0gICAgICAgICAgIjAuMDEwODM2LCAwLjAxMDU3NywgMC4wMTA1ODUsIDAuMDEwNTg1LCAwLjAxMDU4LCAwLjAxMDU5MywgMC4wMTA1OTQiLCBcCi0gICAgICAgICAgIjAuMDExMzA3LCAwLjAxMDc0MywgMC4wMTA2ODIsIDAuMDEwNjY2LCAwLjAxMDY1NCwgMC4wMTA2NSwgMC4wMTA2MzgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjAxNCwgMC4wMDIwMzksIDAuMDAyMDQxLCAwLjAwMjA0MSwgMC4wMDIwNDIsIDAuMDAyMDQyLCAwLjAwMjA0MiIsIFwKLSAgICAgICAgICAiMC4wMDE4NjksIDAuMDAxOTM5LCAwLjAwMTk1LCAwLjAwMTk1MiwgMC4wMDE5NTcsIDAuMDAxOTU5LCAwLjAwMTk1OSIsIFwKLSAgICAgICAgICAiMC4wMDE5OTksIDAuMDAxOTg2LCAwLjAwMTk3MywgMC4wMDE5NjksIDAuMDAxOTY1LCAwLjAwMTk2MywgMC4wMDE5NjIiLCBcCi0gICAgICAgICAgIjAuMDAyMzM3LCAwLjAwMjA0NSwgMC4wMDIwMDYsIDAuMDAxOTk4LCAwLjAwMTk4NywgMC4wMDE5OCwgMC4wMDE5NzMiLCBcCi0gICAgICAgICAgIjAuMDAyNzEzLCAwLjAwMjIxNSwgMC4wMDIxMjcsIDAuMDAyMDk2LCAwLjAwMjA2LCAwLjAwMjA0LCAwLjAwMjAyMSIsIFwKLSAgICAgICAgICAiMC4wMDM1MDgsIDAuMDAyNTE4LCAwLjAwMjMyNCwgMC4wMDIyNDgsIDAuMDAyMTg2LCAwLjAwMjE0NSwgMC4wMDIxMDYiLCBcCi0gICAgICAgICAgIjAuMDA0MjY4LCAwLjAwMjg1MywgMC4wMDI1NTEsIDAuMDAyNDMsIDAuMDAyMzE2LCAwLjAwMjI2NywgMC4wMDIyMDciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDg1MzQsIDAuMDA4NjQsIDAuMDA4NjUsIDAuMDA4NjUzLCAwLjAwODY1NywgMC4wMDg2NTcsIDAuMDA4NjU3IiwgXAotICAgICAgICAgICIwLjAwODQyLCAwLjAwODU3NywgMC4wMDg2MTIsIDAuMDA4NjI3LCAwLjAwODYzMiwgMC4wMDg2MzcsIDAuMDA4NjQyIiwgXAotICAgICAgICAgICIwLjAwODYxNiwgMC4wMDg1NzksIDAuMDA4NjA0LCAwLjAwODYxNSwgMC4wMDg2MjQsIDAuMDA4NjMsIDAuMDA4NjM3IiwgXAotICAgICAgICAgICIwLjAwODk5MSwgMC4wMDg2ODUsIDAuMDA4NjcxLCAwLjAwODY1NywgMC4wMDg2NTYsIDAuMDA4NjU0LCAwLjAwODY1NiIsIFwKLSAgICAgICAgICAiMC4wMDk0MTQsIDAuMDA4ODU2LCAwLjAwODc2MywgMC4wMDg3NDgsIDAuMDA4NzIzLCAwLjAwODcxMSwgMC4wMDg2OTciLCBcCi0gICAgICAgICAgIjAuMDEwMjE0LCAwLjAwOTE3NiwgMC4wMDg5OCwgMC4wMDg5MDgsIDAuMDA4ODU4LCAwLjAwODgwNiwgMC4wMDg3NzQiLCBcCi0gICAgICAgICAgIjAuMDEwOTk3LCAwLjAwOTU0NCwgMC4wMDkyMjMsIDAuMDA5MTA0LCAwLjAwODk5MiwgMC4wMDg5NTIsIDAuMDA4ODc0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDAxNjgsIDAuMDAwMDMyLCAwLjAwMDA0NiwgMC4wMDAwNSwgMC4wMDAwNTQsIDAuMDAwMDU1LCAwLjAwMDA1NyIsIFwKLSAgICAgICAgICAiMC4wMDAzMDUsIDAuMDAwMDYzLCAwLjAwMDA4MiwgMC4wMDAwOTYsIDAuMDAwMTA4LCAwLjAwMDExNCwgMC4wMDAxMiIsIFwKLSAgICAgICAgICAiMC4wMDAwODksIDAuMDAwMDcyLCAwLjAwMDEwMiwgMC4wMDAxMTMsIDAuMDAwMTIzLCAwLjAwMDEyOCwgMC4wMDAxMzMiLCBcCi0gICAgICAgICAgIjAuMDAwNDI3LCAwLjAwMDIzOSwgMC4wMDAyMDUsIDAuMDAwMTk2LCAwLjAwMDE4NSwgMC4wMDAxNzgsIDAuMDAwMTczIiwgXAotICAgICAgICAgICIwLjAwMDkwMSwgMC4wMDAzMzIsIDAuMDAwMjQ0LCAwLjAwMDIxOSwgMC4wMDAyMDgsIDAuMDAwMTk2LCAwLjAwMDE4OSIsIFwKLSAgICAgICAgICAiMC4wMDE5MDIsIDAuMDAwNzI1LCAwLjAwMDQ5OCwgMC4wMDA0MzIsIDAuMDAwMzY5LCAwLjAwMDMzLCAwLjAwMDI5NSIsIFwKLSAgICAgICAgICAiMC4wMDI3MTMsIDAuMDAxMTI1LCAwLjAwMDc1NywgMC4wMDA2MzUsIDAuMDAwNTE4LCAwLjAwMDQ2NCwgMC4wMDA0MDIiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogQU9JMjIxWDEgKgotICogLS0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKEFPSTIyMVgxKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuNDI3OTQ5OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwODg2MTgzOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDg4MjkzMTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA4ODYxODM7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNTI0LCAwLjAwMDUyNCwgMC4wMDA1MjQsIDAuMDAwNTI0LCAwLjAwMDUyNCwgMC4wMDA1MjQsIDAuMDAwNTIzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNTUsIDAuMDAwNTMzLCAwLjAwMDUyOCwgMC4wMDA1MjcsIDAuMDAwNTI2LCAwLjAwMDUyNiwgMC4wMDA1MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEExKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA4NjM3NDY7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwODU4NjA0OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDg2Mzc0NjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyNjUsIDAuMDAwMjY1LCAwLjAwMDI2NSwgMC4wMDAyNjUsIDAuMDAwMjY1LCAwLjAwMDI2NSwgMC4wMDAyNjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA1OTUsIDAuMDAwNTk2LCAwLjAwMDU5NiwgMC4wMDA1OTYsIDAuMDAwNTk2LCAwLjAwMDU5NiwgMC4wMDA1OTYiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA5ODMzNDU7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwOTgxMDc3OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDk4MzM0NTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA1MjQsIDAuMDAwNTI0LCAwLjAwMDUyNCwgMC4wMDA1MjQsIDAuMDAwNTI0LCAwLjAwMDUyNCwgMC4wMDA1MjQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA1NSwgMC4wMDA1MzMsIDAuMDAwNTI5LCAwLjAwMDUyNywgMC4wMDA1MjYsIDAuMDAwNTI1LCAwLjAwMDUyNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQjEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDk1NDI1OTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA5NTAxOTM7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwOTU0MjU5OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDI3OCwgMC4wMDAyNzgsIDAuMDAwMjc3LCAwLjAwMDI3NywgMC4wMDAyNzcsIDAuMDAwMjc4LCAwLjAwMDI3NyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDU5NSwgMC4wMDA1OTUsIDAuMDAwNTk2LCAwLjAwMDU5NiwgMC4wMDA1OTYsIDAuMDAwNTk2LCAwLjAwMDU5NiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQzApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDk1NjM2MTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA5NTYzNjE7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwOTU2MDc4OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDA5OSwgMC4wMDAwOTksIDAuMDAwMDk5LCAwLjAwMDA5OSwgMC4wMDAwOTksIDAuMDAwMDk5LCAwLjAwMDA5OSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDU4OCwgMC4wMDA1ODgsIDAuMDAwNTg4LCAwLjAwMDU4OCwgMC4wMDA1ODgsIDAuMDAwNTg4LCAwLjAwMDU4OCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjEyNjc0NTsKLSAgICBmdW5jdGlvbiA6ICIoISgoKEEwIEExKSsoQjAgQjEpKStDMCkpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTE2Nzc0LCAwLjE2NjY5NSwgMC40NDkyNzYsIDAuNzAyMDUzLCAxLjAzODI4LCAxLjcwODk5LCAyLjEyOTg5IiwgXAotICAgICAgICAgICIwLjEyMzUzMiwgMC4xNzM1MDgsIDAuNDU2ODc4LCAwLjcwODM5NiwgMS4wNDQyOCwgMS43MTYwOSwgMi4xMzYwMSIsIFwKLSAgICAgICAgICAiMC4xMjk3MDksIDAuMTc5Njc2LCAwLjQ2Mjk0MSwgMC43MTUxNTcsIDEuMDUxNjQsIDEuNzIzNDksIDIuMTQxOTIiLCBcCi0gICAgICAgICAgIjAuMTM1MDUzLCAwLjE4NTEzLCAwLjQ2ODI1NywgMC43MjA1MSwgMS4wNTY4NywgMS43Mjg0MywgMi4xNDY1NCIsIFwKLSAgICAgICAgICAiMC4xNDAxNSwgMC4xOTAxMjksIDAuNDczMTg3LCAwLjcyNTIzOSwgMS4wNjA3NywgMS43MzE4LCAyLjE1MTU5IiwgXAotICAgICAgICAgICIwLjE0ODI4MiwgMC4xOTgyNTYsIDAuNDgxMTQyLCAwLjczMzI3LCAxLjA2ODYxLCAxLjc0MTEsIDIuMTU5ODkiLCBcCi0gICAgICAgICAgIjAuMTU0OTQ0LCAwLjIwNTI2NiwgMC40ODgwOTIsIDAuNzM5NzE2LCAxLjA3NTc0LCAxLjc0NjY4LCAyLjE2NjQ5Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIxMjc1MSwgMC4zMTc5MjgsIDAuOTE4NDc4LCAxLjQ1MDMzLCAyLjE1ODM5LCAzLjU3MjYzLCA0LjQ1OTg2IiwgXAotICAgICAgICAgICIwLjIxMjc2MiwgMC4zMTc5MDYsIDAuOTE4OTQ3LCAxLjQ1MDI1LCAyLjE1NzAxLCAzLjU3MjYsIDQuNDU3NjMiLCBcCi0gICAgICAgICAgIjAuMjEyODkyLCAwLjMxNzg1MSwgMC45MTg4NDEsIDEuNDQ5OTYsIDIuMTU4NywgMy41NzUxNSwgNC40NTcyOSIsIFwKLSAgICAgICAgICAiMC4yMTQwOTEsIDAuMzE4MzYsIDAuOTE4NjE5LCAxLjQ0OTg5LCAyLjE1ODQ4LCAzLjU3NDE4LCA0LjQ1NzYxIiwgXAotICAgICAgICAgICIwLjIxNjAwNSwgMC4zMTk2NzMsIDAuOTE4ODQ4LCAxLjQ0OTU4LCAyLjE1NzI1LCAzLjU3NjA5LCA0LjQ1OTg4IiwgXAotICAgICAgICAgICIwLjIyMDMxNCwgMC4zMjI3NDQsIDAuOTE4OTYzLCAxLjQ0OTU3LCAyLjE1ODg3LCAzLjU3MzMsIDQuNDU5NTQiLCBcCi0gICAgICAgICAgIjAuMjI1MTIyLCAwLjMyNjYzNCwgMC45MTk5NTgsIDEuNDUwMzYsIDIuMTU3MjgsIDMuNTc2NzcsIDQuNDU3NDgiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc3MDgxLCAwLjEwOTM0NCwgMC4yOTAxMDksIDAuNDQ5MDAyLCAwLjY2MDU5NywgMS4wODM1NiwgMS4zNDc3MiIsIFwKLSAgICAgICAgICAiMC4wODM2NDUsIDAuMTE1OTQsIDAuMjk2NjAxLCAwLjQ1NTM2OSwgMC42NjY5MDgsIDEuMDg5NzMsIDEuMzU0OTIiLCBcCi0gICAgICAgICAgIjAuMDkxODI3LCAwLjEyNDIxNSwgMC4zMDUwMTEsIDAuNDYzODQsIDAuNjc1NTA5LCAxLjA5ODIyLCAxLjM2MzA4IiwgXAotICAgICAgICAgICIwLjEwMDIwNSwgMC4xMzI0NzgsIDAuMzEzNDQ1LCAwLjQ3MjQ5NSwgMC42ODQxNiwgMS4xMDY3NiwgMS4zNzE4MSIsIFwKLSAgICAgICAgICAiMC4xMDgyNDcsIDAuMTQwNzIsIDAuMzIxNzEsIDAuNDgwODA1LCAwLjY5MjUxMiwgMS4xMTUzMSwgMS4zODAwNiIsIFwKLSAgICAgICAgICAiMC4xMjEwNTksIDAuMTUzODIxLCAwLjMzNTI1NywgMC40OTQxMjksIDAuNzA2Mjg1LCAxLjEyOTMzLCAxLjM5Mjk0IiwgXAotICAgICAgICAgICIwLjEzMDk3OSwgMC4xNjU1NDIsIDAuMzQ2MzU3LCAwLjUwNjEyNCwgMC43MTgxNzYsIDEuMTQxNTYsIDEuNDA1MzEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTQxNjQ5LCAwLjIwNjY3OSwgMC41NzU1MDYsIDAuOTAxMywgMS4zMzUzOCwgMi4yMDMwOSwgMi43NDU1MiIsIFwKLSAgICAgICAgICAiMC4xNDE2MTQsIDAuMjA2NjMxLCAwLjU3NTQ4NCwgMC45MDExMzUsIDEuMzM1NTksIDIuMjAzODYsIDIuNzQ2MTciLCBcCi0gICAgICAgICAgIjAuMTQzMjk3LCAwLjIwNzMzLCAwLjU3NTUzMSwgMC45MDExNDMsIDEuMzM1MiwgMi4yMDMwNCwgMi43NDU5NCIsIFwKLSAgICAgICAgICAiMC4xNDcxNTQsIDAuMjA5ODA1LCAwLjU3NTUyMiwgMC45MDEyODcsIDEuMzM1NDIsIDIuMjAzNzYsIDIuNzQ1NjEiLCBcCi0gICAgICAgICAgIjAuMTUxODk2LCAwLjIxMzUzNCwgMC41NzU3MjUsIDAuOTAxMDU1LCAxLjMzNTMsIDIuMjAzNzQsIDIuNzQ1OTQiLCBcCi0gICAgICAgICAgIjAuMTYxMTg3LCAwLjIyMTE1NywgMC41Nzc5NTEsIDAuOTAxMjQ1LCAxLjMzNTQzLCAyLjIwMzYyLCAyLjc0NTgiLCBcCi0gICAgICAgICAgIjAuMTcwMDg1LCAwLjIyOTAwMSwgMC41ODEzMTcsIDAuOTAyMzI0LCAxLjMzNTE5LCAyLjIwMzk0LCAyLjc0NTc5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkExIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTQwOCwgMC4xNjQyMTgsIDAuNDQ4MzkzLCAwLjcwMjUzMiwgMS4wMzkzNiwgMS43MTQyOSwgMi4xMzcyNiIsIFwKLSAgICAgICAgICAiMC4xMjA3NjIsIDAuMTcxMDIzLCAwLjQ1NTc1NiwgMC43MDkxNzUsIDEuMDQ2MTUsIDEuNzIxMjQsIDIuMTQyMjMiLCBcCi0gICAgICAgICAgIjAuMTI2ODMxLCAwLjE3NzEwNiwgMC40NjE2ODMsIDAuNzE0NjM0LCAxLjA1MjQzLCAxLjcyNzY5LCAyLjE1MDU2IiwgXAotICAgICAgICAgICIwLjEzMjEwNCwgMC4xODI0MTgsIDAuNDY3Mjc4LCAwLjcyMTAxLCAxLjA1ODYzLCAxLjczMzc4LCAyLjE1NDc4IiwgXAotICAgICAgICAgICIwLjEzNzE3MywgMC4xODc0NTMsIDAuNDcyMjAxLCAwLjcyNTExNCwgMS4wNjM3MywgMS43MzgwMSwgMi4xNTk0NyIsIFwKLSAgICAgICAgICAiMC4xNDUyNjgsIDAuMTk1NTQsIDAuNDgwMDYxLCAwLjczMzQxNCwgMS4wNzA0NywgMS43NDQ5NSwgMi4xNjcwNyIsIFwKLSAgICAgICAgICAiMC4xNTE3OTYsIDAuMjAyNTMxLCAwLjQ4NzAyNywgMC43Mzk5MiwgMS4wNzczNCwgMS43NTQ1MiwgMi4xNzM3MyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMDkzMDIsIDAuMzE0ODgxLCAwLjkxOTI5OSwgMS40NTI2NSwgMi4xNjMzMSwgMy41ODYwNSwgNC40NzY2NyIsIFwKLSAgICAgICAgICAiMC4yMDkzMjcsIDAuMzE0OTI4LCAwLjkxODMzNywgMS40NTIyMywgMi4xNjMzOSwgMy41ODYyNCwgNC40ODIyMSIsIFwKLSAgICAgICAgICAiMC4yMDk1NiwgMC4zMTQ5NzksIDAuOTE5OTAyLCAxLjQ1MjcsIDIuMTYzOTEsIDMuNTg2NDYsIDQuNDc2MTMiLCBcCi0gICAgICAgICAgIjAuMjEwNjM3LCAwLjMxNTQ2LCAwLjkxODM5LCAxLjQ1MjU0LCAyLjE2Mzg2LCAzLjU4NjQyLCA0LjQ3NTI3IiwgXAotICAgICAgICAgICIwLjIxMjY1NywgMC4zMTY2ODksIDAuOTE5NzE1LCAxLjQ1Mjc0LCAyLjE2Mzg5LCAzLjU4NjI3LCA0LjQ3Njg4IiwgXAotICAgICAgICAgICIwLjIxNzAyLCAwLjMxOTk2NSwgMC45MTk3NzEsIDEuNDUxOTgsIDIuMTY0NjgsIDMuNTg2MTgsIDQuNDc1ODYiLCBcCi0gICAgICAgICAgIjAuMjIxOTcxLCAwLjMyMzcxOCwgMC45MTk1OTMsIDEuNDUyMDEsIDIuMTYzNTcsIDMuNTg3NjQsIDQuNDgxNzQiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc1NDI2LCAwLjEwNzcyMywgMC4yODgzMzMsIDAuNDQ3MDksIDAuNjU4NjEzLCAxLjA4MTU2LCAxLjM0NTQ4IiwgXAotICAgICAgICAgICIwLjA4MjkyNCwgMC4xMTUyMDYsIDAuMjk1OTA2LCAwLjQ1NDYzMywgMC42NjYwODYsIDEuMDg5MDEsIDEuMzUzNTciLCBcCi0gICAgICAgICAgIjAuMDkyNzAzLCAwLjEyNDk2MywgMC4zMDU3MTUsIDAuNDY0NzU0LCAwLjY3NjM2MSwgMS4wOTkyMSwgMS4zNjMzOSIsIFwKLSAgICAgICAgICAiMC4xMDI0MSwgMC4xMzQ1NzIsIDAuMzE1MDU5LCAwLjQ3NDA1LCAwLjY4NTQ0MiwgMS4xMDkwNCwgMS4zNzI0NyIsIFwKLSAgICAgICAgICAiMC4xMTI0NDUsIDAuMTQ0MzkzLCAwLjMyNDg2MSwgMC40ODM3MDIsIDAuNjk1MTMzLCAxLjExODU0LCAxLjM4MjM0IiwgXAotICAgICAgICAgICIwLjEyODEyMSwgMC4xNjA0OTEsIDAuMzQwNTYsIDAuNDk4MjY2LCAwLjcxMDY2NSwgMS4xMzM0OCwgMS4zOTc3NiIsIFwKLSAgICAgICAgICAiMC4xNDA0NzUsIDAuMTc0NjA3LCAwLjM1NDIwOSwgMC41MTI3ODMsIDAuNzI0MzE2LCAxLjE0NzU2LCAxLjQxMjMzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE0MTY1NSwgMC4yMDY2NSwgMC41NzU0NywgMC45MDEwODMsIDEuMzM1NDIsIDIuMjAzODcsIDIuNzQ1NyIsIFwKLSAgICAgICAgICAiMC4xNDE1NjMsIDAuMjA2NjQxLCAwLjU3NTUzOCwgMC45MDEwNzgsIDEuMzM1MjQsIDIuMjAzNzksIDIuNzQ1NzYiLCBcCi0gICAgICAgICAgIjAuMTQ0MjE0LCAwLjIwNzQ4NywgMC41NzU1MSwgMC45MDEwNTgsIDEuMzM1MzksIDIuMjAzNDMsIDIuNzQ1NjkiLCBcCi0gICAgICAgICAgIjAuMTQ5NzY3LCAwLjIxMTIwNywgMC41NzU1NDIsIDAuOTAxMjgxLCAxLjMzNTMzLCAyLjIwNDA2LCAyLjc0NTUyIiwgXAotICAgICAgICAgICIwLjE1NjgxMiwgMC4yMTY3NzksIDAuNTc1NjU3LCAwLjkwMTE3NCwgMS4zMzUzMSwgMi4yMDM3NCwgMi43NDYzMyIsIFwKLSAgICAgICAgICAiMC4xNjk2NTIsIDAuMjI3NjQ4LCAwLjU3ODcwNCwgMC45MDExNzgsIDEuMzM1MzEsIDIuMjAzODYsIDIuNzQ1MzkiLCBcCi0gICAgICAgICAgIjAuMTgxOTgzLCAwLjIzODUwMywgMC41ODM0MSwgMC45MDIzOTYsIDEuMzM1ODksIDIuMjAzNjgsIDIuNzQ1NDgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjAiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExMTI2MiwgMC4xNjExNjMsIDAuNDQ0MTQ5LCAwLjY5MzUyNiwgMS4wMjc5NSwgMS42OTUzNSwgMi4xMTQ4IiwgXAotICAgICAgICAgICIwLjExNzk5OCwgMC4xNjgwMDQsIDAuNDUxMDgzLCAwLjcwMDg1MywgMS4wMzQzNCwgMS43MDI4OSwgMi4xMjE0MSIsIFwKLSAgICAgICAgICAiMC4xMjU1NjYsIDAuMTc1NjEsIDAuNDU4NDE3LCAwLjcwNzk5OCwgMS4wNDE0OCwgMS43MTEzNCwgMi4xMzAxMyIsIFwKLSAgICAgICAgICAiMC4xMzMxMjksIDAuMTgzMTgyLCAwLjQ2NjAxOSwgMC43MTU1MjksIDEuMDQ5ODMsIDEuNzE4MTksIDIuMTM2MjgiLCBcCi0gICAgICAgICAgIjAuMTQwNzU2LCAwLjE5MDY4MywgMC40NzM2MjUsIDAuNzIzNTQ1LCAxLjA1NjY5LCAxLjcyNjM1LCAyLjE0NDkiLCBcCi0gICAgICAgICAgIjAuMTUyOTgsIDAuMjAyODkzLCAwLjQ4NjI5LCAwLjczNTQwMSwgMS4wNjk5MSwgMS43Mzc0MywgMi4xNTczNSIsIFwKLSAgICAgICAgICAiMC4xNjM0NjYsIDAuMjEzNzczLCAwLjQ5Njk4NiwgMC43NDYwMjIsIDEuMDgwMzYsIDEuNzQ5MDIsIDIuMTY2MTUiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjEyNzM5LCAwLjMxNzg1NywgMC45MTI4OTcsIDEuNDQwMjcsIDIuMTQ0NTQsIDMuNTQ5OTUsIDQuNDMwODEiLCBcCi0gICAgICAgICAgIjAuMjEyODIsIDAuMzE3ODk2LCAwLjkxMzAzNSwgMS40NDA4MSwgMi4xNDQzOSwgMy41NDk1NSwgNC40MzAxIiwgXAotICAgICAgICAgICIwLjIxMzIxOCwgMC4zMTc4MTgsIDAuOTEzMDUsIDEuNDQwNzgsIDIuMTQ0MjIsIDMuNTUxMzcsIDQuNDMxNjIiLCBcCi0gICAgICAgICAgIjAuMjE1MzMyLCAwLjMxODc0MiwgMC45MTI5NjMsIDEuNDQwMTQsIDIuMTQzNzYsIDMuNTQ5NDQsIDQuNDI4NjUiLCBcCi0gICAgICAgICAgIjAuMjE4OTI1LCAwLjMyMTAwMywgMC45MTI5NzcsIDEuNDQwNjMsIDIuMTQzMjEsIDMuNTUwNzksIDQuNDMxMDUiLCBcCi0gICAgICAgICAgIjAuMjI2MzExLCAwLjMyNjQxLCAwLjkxMjkwOCwgMS40NDA1MSwgMi4xNDM5OCwgMy41NTE4LCA0LjQzMTUxIiwgXAotICAgICAgICAgICIwLjIzMzk4OCwgMC4zMzI2MTEsIDAuOTE0MDE1LCAxLjQ0MDUsIDIuMTQzMywgMy41NDk2NiwgNC40MzA3NiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzA4NDEsIDAuMTAyODQ4LCAwLjI4MzE2NSwgMC40NDE2OTMsIDAuNjUzMDA3LCAxLjA3NTc4LCAxLjM0MDQyIiwgXAotICAgICAgICAgICIwLjA3NzU1NSwgMC4xMDk1ODksIDAuMjg5OTg4LCAwLjQ0ODQ5NywgMC42NTk3ODEsIDEuMDgyMzIsIDEuMzQ2MzIiLCBcCi0gICAgICAgICAgIjAuMDg1NzQzLCAwLjExNzg2NywgMC4yOTgzNTksIDAuNDU2OTIzLCAwLjY2ODI0OCwgMS4wOTA3NiwgMS4zNTQ4NiIsIFwKLSAgICAgICAgICAiMC4wOTM5MjYsIDAuMTI2MTU0LCAwLjMwNjcyNCwgMC40NjU0NDUsIDAuNjc2NzE1LCAxLjA5OTQzLCAxLjM2MzkzIiwgXAotICAgICAgICAgICIwLjEwMjI2LCAwLjEzNDI3NSwgMC4zMTUwNjEsIDAuNDczNzAzLCAwLjY4NTAzNiwgMS4xMDc1MywgMS4zNzE1OCIsIFwKLSAgICAgICAgICAiMC4xMTQxOTEsIDAuMTQ3NDYsIDAuMzI4MDQ2LCAwLjQ4NzI4MywgMC42OTg1NjksIDEuMTIxMDksIDEuMzg1MTQiLCBcCi0gICAgICAgICAgIjAuMTIzNTE3LCAwLjE1ODkzLCAwLjMzOTY3MiwgMC40OTkwNiwgMC43MTA4MTIsIDEuMTMzNDMsIDEuMzk3NDYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTMzNjU3LCAwLjE5ODc0NCwgMC41Njc4MTgsIDAuODkzNDMzLCAxLjMyNzM0LCAyLjE5NTQzLCAyLjczNzQ5IiwgXAotICAgICAgICAgICIwLjEzMzcxNCwgMC4xOTg3NzksIDAuNTY3NzcyLCAwLjg5MzM3MywgMS4zMjczMiwgMi4xOTUwOCwgMi43Mzc3NCIsIFwKLSAgICAgICAgICAiMC4xMzU3MSwgMC4xOTk1MjUsIDAuNTY3NzEzLCAwLjg5MzMzNSwgMS4zMjcyNiwgMi4xOTUwMiwgMi43Mzc1MSIsIFwKLSAgICAgICAgICAiMC4xMzk3MzgsIDAuMjAyMzA3LCAwLjU2Nzc3MiwgMC44OTM0MDksIDEuMzI3NzEsIDIuMTk1NTgsIDIuNzM3ODEiLCBcCi0gICAgICAgICAgIjAuMTQ1MDA0LCAwLjIwNjE0LCAwLjU2ODAzMSwgMC44OTMzMzMsIDEuMzI3MjUsIDIuMTk1MjIsIDIuNzM3NTciLCBcCi0gICAgICAgICAgIjAuMTU0MzkyLCAwLjIxNDA5MiwgMC41NzAxMTgsIDAuODkzMzc5LCAxLjMyNzM4LCAyLjE5NTI2LCAyLjczNzY2IiwgXAotICAgICAgICAgICIwLjE2MzcwMywgMC4yMjI1MjEsIDAuNTczNTkzLCAwLjg5NDQ4NiwgMS4zMjc1NSwgMi4xOTUyNywgMi43Mzc2NiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTA5MDE2LCAwLjE1OTQxMiwgMC40NDUwNjYsIDAuNjk3MjUxLCAxLjAzMzMzLCAxLjcwNzgzLCAyLjEzMTI2IiwgXAotICAgICAgICAgICIwLjExNTY5OSwgMC4xNjYyMDIsIDAuNDUxNjQxLCAwLjcwMzcyOSwgMS4wNDEzNCwgMS43MTY3NCwgMi4xMzc0NyIsIFwKLSAgICAgICAgICAiMC4xMjMwMDMsIDAuMTczNTkxLCAwLjQ1OTE2NiwgMC43MTE4MDQsIDEuMDQ4MDQsIDEuNzIzMDgsIDIuMTQ2MDciLCBcCi0gICAgICAgICAgIjAuMTMwMzUsIDAuMTgwOTc1LCAwLjQ2NjY4NiwgMC43MTg2NzEsIDEuMDU2NDIsIDEuNzMwMTQsIDIuMTU0MTciLCBcCi0gICAgICAgICAgIjAuMTM3ODk4LCAwLjE4ODQwOCwgMC40NzQyMzUsIDAuNzI2NTU4LCAxLjA2NDAyLCAxLjczODg3LCAyLjE2MDg3IiwgXAotICAgICAgICAgICIwLjE0OTk5NywgMC4yMDA0MjQsIDAuNDg2Nzk5LCAwLjczODI5MywgMS4wNzQ5OSwgMS43NTExMSwgMi4xNzE0NCIsIFwKLSAgICAgICAgICAiMC4xNjAyNTYsIDAuMjExMTczLCAwLjQ5NzI5NywgMC43NDg3NjEsIDEuMDg2MjEsIDEuNzYwODQsIDIuMTgyODUiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjEwNjMzLCAwLjMxNjk1NiwgMC45MTg2NDQsIDEuNDUyMTIsIDIuMTYzODIsIDMuNTg2NTMsIDQuNDc0ODIiLCBcCi0gICAgICAgICAgIjAuMjEwNjI0LCAwLjMxNjk3NiwgMC45MTk3NjMsIDEuNDUyMDQsIDIuMTYzODMsIDMuNTg4MDEsIDQuNDc1NTQiLCBcCi0gICAgICAgICAgIjAuMjExMTM3LCAwLjMxNjk0NSwgMC45MTk0NjIsIDEuNDUyNzcsIDIuMTY0MTMsIDMuNTg3MzEsIDQuNDc1NTgiLCBcCi0gICAgICAgICAgIjAuMjEzMjg1LCAwLjMxNzkxOSwgMC45MTg4MjEsIDEuNDU0MjksIDIuMTYzNzMsIDMuNTg2OTEsIDQuNDc3ODUiLCBcCi0gICAgICAgICAgIjAuMjE2ODg1LCAwLjMyMDAxMywgMC45MTk2NTEsIDEuNDU0MDQsIDIuMTY0NDQsIDMuNTg1NzMsIDQuNDc0ODEiLCBcCi0gICAgICAgICAgIjAuMjI0Mzk2LCAwLjMyNTQ4OSwgMC45MTg5NDEsIDEuNDU0MDYsIDIuMTY0ODQsIDMuNTg1NzIsIDQuNDc2NTQiLCBcCi0gICAgICAgICAgIjAuMjMyMTAzLCAwLjMzMTcxMSwgMC45MTk3OTUsIDEuNDUyMjksIDIuMTYzMzYsIDMuNTg1NjgsIDQuNDc2ODQiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY5MiwgMC4xMDEyMDcsIDAuMjgxNDk4LCAwLjQ0MDA3MSwgMC42NTEzNDUsIDEuMDczODgsIDEuMzM4NTkiLCBcCi0gICAgICAgICAgIjAuMDc2ODgxLCAwLjEwODkxMywgMC4yODkyNDQsIDAuNDQ3Nzc4LCAwLjY1OTA2LCAxLjA4MTU5LCAxLjM0NTYyIiwgXAotICAgICAgICAgICIwLjA4NjUyNSwgMC4xMTg1MTIsIDAuMjk4NzcsIDAuNDU3MzQzLCAwLjY2ODY5MywgMS4wOTEzNCwgMS4zNTUxOSIsIFwKLSAgICAgICAgICAiMC4wOTYxMDMsIDAuMTI3OTcxLCAwLjMwODE2NywgMC40NjY2ODcsIDAuNjc3OTI1LCAxLjEwMDc1LCAxLjM2NDQ3IiwgXAotICAgICAgICAgICIwLjEwNjEyNywgMC4xMzc5MzMsIDAuMzE3OTE4LCAwLjQ3NjQwMSwgMC42ODc2MzUsIDEuMTEwMzcsIDEuMzc0MTYiLCBcCi0gICAgICAgICAgIjAuMTIxMjQ4LCAwLjE1MzkyNSwgMC4zMzM1ODUsIDAuNDkxNDQ5LCAwLjcwMzE2MywgMS4xMjU1NiwgMS4zODk2MyIsIFwKLSAgICAgICAgICAiMC4xMzM1ODYsIDAuMTY3Njg3LCAwLjM0NzE4NCwgMC41MDU1NjIsIDAuNzE2Njc4LCAxLjEzOTMsIDEuNDAzNzMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTMzNjU1LCAwLjE5ODczOSwgMC41Njc3NywgMC44OTM0NDcsIDEuMzI3MjYsIDIuMTk1MjEsIDIuNzM3NzgiLCBcCi0gICAgICAgICAgIjAuMTMzNjg0LCAwLjE5ODczNSwgMC41Njc3OCwgMC44OTMzOTIsIDEuMzI3NjcsIDIuMTk1MzcsIDIuNzM3NDYiLCBcCi0gICAgICAgICAgIjAuMTM2ODIyLCAwLjE5OTg1OSwgMC41Njc3NzEsIDAuODkzNTgzLCAxLjMyNzMyLCAyLjE5NTcsIDIuNzM3NTQiLCBcCi0gICAgICAgICAgIjAuMTQyOTE1LCAwLjIwMzkzNSwgMC41Njc3ODYsIDAuODkzMzk5LCAxLjMyNzQzLCAyLjE5NTIyLCAyLjczNzI3IiwgXAotICAgICAgICAgICIwLjE1MDI1MSwgMC4yMDk4MTEsIDAuNTY3OTI4LCAwLjg5MzMxMSwgMS4zMjc3NywgMi4xOTUwOSwgMi43Mzc2MiIsIFwKLSAgICAgICAgICAiMC4xNjM2NDQsIDAuMjIxMTgsIDAuNTcxMjMxLCAwLjg5MzUyNywgMS4zMjc4LCAyLjE5NTQ0LCAyLjczNzU3IiwgXAotICAgICAgICAgICIwLjE3NDk3MiwgMC4yMzI0MDgsIDAuNTc2MTgsIDAuODk0NjUzLCAxLjMyNzM4LCAyLjE5NTA0LCAyLjczNzY1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDE3NjQsIDAuMTUxNzc2LCAwLjQzNDk4NywgMC42ODc0NTgsIDEuMDIzMTMsIDEuNjk3NzEsIDIuMTIxMjgiLCBcCi0gICAgICAgICAgIjAuMTA4ODIsIDAuMTU4ODQsIDAuNDQxOTY0LCAwLjY5MzYxNywgMS4wMzAxOCwgMS43MDcwNywgMi4xMjc1OSIsIFwKLSAgICAgICAgICAiMC4xMTc4ODQsIDAuMTY3OTA1LCAwLjQ1MTA1NywgMC43MDI4NDgsIDEuMDM5MzQsIDEuNzE0OTMsIDIuMTM3NjgiLCBcCi0gICAgICAgICAgIjAuMTI3MTkyLCAwLjE3NzAyNiwgMC40NjA0NTIsIDAuNzExODQ1LCAxLjA0OTg5LCAxLjcyNDUsIDIuMTQ2MTciLCBcCi0gICAgICAgICAgIjAuMTM2NTg1LCAwLjE4NjI5MywgMC40Njk0NDMsIDAuNzIxMTY3LCAxLjA1ODY5LCAxLjczMzE4LCAyLjE1Mzk3IiwgXAotICAgICAgICAgICIwLjE1MTk5NywgMC4yMDEzNzMsIDAuNDgzNjgyLCAwLjczNTM5OCwgMS4wNzE4NSwgMS43NDYxNCwgMi4xNzA0MyIsIFwKLSAgICAgICAgICAiMC4xNjU1NTMsIDAuMjE0ODEyLCAwLjQ5NjcyNiwgMC43NDgzODYsIDEuMDg1MjgsIDEuNzYxMTYsIDIuMTgwNzgiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjEyNzM1LCAwLjMxNzg1MywgMC45MTg3ODksIDEuNDUyNTUsIDIuMTYzNiwgMy41ODY1NywgNC40NzUzMiIsIFwKLSAgICAgICAgICAiMC4yMTI1MTEsIDAuMzE3ODQsIDAuOTE5Nzg2LCAxLjQ1MzgyLCAyLjE2NDExLCAzLjU4Nzk5LCA0LjQ3NTUzIiwgXAotICAgICAgICAgICIwLjIxMzA2NywgMC4zMTc2NDIsIDAuOTE4OTEyLCAxLjQ1NDI5LCAyLjE2NjIxLCAzLjU4NzQsIDQuNDc3ODMiLCBcCi0gICAgICAgICAgIjAuMjE2ODEzLCAwLjMxODgzLCAwLjkxODg4OCwgMS40NTIyNiwgMi4xNjQyOSwgMy41ODU2OSwgNC40NzY5MyIsIFwKLSAgICAgICAgICAiMC4yMjIyMjcsIDAuMzIyNDQ0LCAwLjkxODk5MywgMS40NTE5OCwgMi4xNjQxMiwgMy41ODU5OSwgNC40NzU5MyIsIFwKLSAgICAgICAgICAiMC4yMzI4NDcsIDAuMzMwNTMsIDAuOTE4NzYzLCAxLjQ1NDA1LCAyLjE2NDY3LCAzLjU4NzY4LCA0LjQ3NjI3IiwgXAotICAgICAgICAgICIwLjI0MzI5NCwgMC4zMzkyMjksIDAuOTIwMjU5LCAxLjQ1MTgsIDIuMTYzMjcsIDMuNTg3OTcsIDQuNDgxNzkiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM3Mzg0LCAwLjA1NTU4MSwgMC4xNTg2MjksIDAuMjQ5MzksIDAuMzcwMDgyLCAwLjYxMTMxMSwgMC43NjIwOTEiLCBcCi0gICAgICAgICAgIjAuMDQ1ODUxLCAwLjA2NDA4NCwgMC4xNjcxNTUsIDAuMjU3ODk2LCAwLjM3ODYxNSwgMC42MTk3ODUsIDAuNzcwNTM0IiwgXAotICAgICAgICAgICIwLjA1NjU2OCwgMC4wNzQ3ODgsIDAuMTc3ODI2LCAwLjI2ODU0NiwgMC4zODkyOTcsIDAuNjMwNDk2LCAwLjc4MTIxOCIsIFwKLSAgICAgICAgICAiMC4wNjY4NjgsIDAuMDg1Mjg2LCAwLjE4ODIyNywgMC4yNzg4NTEsIDAuMzk5NTg1LCAwLjY0MDU4OCwgMC43OTEyOTEiLCBcCi0gICAgICAgICAgIjAuMDc1NDEzLCAwLjA5NTk4OCwgMC4xOTg3MzYsIDAuMjg5NDM0LCAwLjQxMDEyNywgMC42NTEzNDIsIDAuODAyMDA0IiwgXAotICAgICAgICAgICIwLjA4Njg3OCwgMC4xMTA3NywgMC4yMTU4NzQsIDAuMzA2MzgsIDAuNDI3MDkxLCAwLjY2ODI0MSwgMC44MTg5MjUiLCBcCi0gICAgICAgICAgIjAuMDk1NzY0LCAwLjEyMTc4LCAwLjIzMDg3LCAwLjMyMTIxMywgMC40NDE4NTEsIDAuNjgzMDU2LCAwLjgzMzczNSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzQ1MTYsIDAuMTExNjgzLCAwLjMyMjQzMywgMC41MDg1NjYsIDAuNzU2ODg0LCAxLjI1Mjg1LCAxLjU2MzM4IiwgXAotICAgICAgICAgICIwLjA3NTc4NCwgMC4xMTE5NTksIDAuMzIyNDc0LCAwLjUwODUxNywgMC43NTYzNDksIDEuMjUyOTcsIDEuNTYyNTUiLCBcCi0gICAgICAgICAgIjAuMDgxODkxLCAwLjExNjE4MSwgMC4zMjI0NiwgMC41MDg1ODksIDAuNzU2NTk3LCAxLjI1Mjk3LCAxLjU2MzQ2IiwgXAotICAgICAgICAgICIwLjA5MDQ2OCwgMC4xMjMwNzYsIDAuMzIzNjM1LCAwLjUwODU0NCwgMC43NTY4NTgsIDEuMjUzNDEsIDEuNTYzMTkiLCBcCi0gICAgICAgICAgIjAuMDk5ODA1LCAwLjEzMTIyOCwgMC4zMjcwNzcsIDAuNTA5MDUxLCAwLjc1Njg3NywgMS4yNTMwOCwgMS41NjM5NCIsIFwKLSAgICAgICAgICAiMC4xMTU2NzIsIDAuMTQ1NzEzLCAwLjMzNTE0NCwgMC41MTMzMDksIDAuNzU3MzM0LCAxLjI1MzE3LCAxLjU2Mzc4IiwgXAotICAgICAgICAgICIwLjEyNzkzNCwgMC4xNTk0NDQsIDAuMzQzODA3LCAwLjUxODc2NSwgMC43NTk3NDYsIDEuMjUzMDYsIDEuNTYzNSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDU2MDIsIDAuMDA1NjAzLCAwLjAwNTYwNCwgMC4wMDU2MDMsIDAuMDA1NjAxLCAwLjAwNTYwMSwgMC4wMDU2IiwgXAotICAgICAgICAgICIwLjAwNTU4NywgMC4wMDU1OTEsIDAuMDA1NTk2LCAwLjAwNTU5NSwgMC4wMDU1OTYsIDAuMDA1NTk1LCAwLjAwNTU5NSIsIFwKLSAgICAgICAgICAiMC4wMDU1NzYsIDAuMDA1NTgyLCAwLjAwNTU5MiwgMC4wMDU1OTQsIDAuMDA1NTk1LCAwLjAwNTU5NSwgMC4wMDU1OTQiLCBcCi0gICAgICAgICAgIjAuMDA1NTcsIDAuMDA1NTc2LCAwLjAwNTU4OSwgMC4wMDU1OTIsIDAuMDA1NTkzLCAwLjAwNTU5NCwgMC4wMDU1OTIiLCBcCi0gICAgICAgICAgIjAuMDA1NTcsIDAuMDA1NTc2LCAwLjAwNTU4OSwgMC4wMDU1OTEsIDAuMDA1NTkzLCAwLjAwNTU5MiwgMC4wMDU1OTMiLCBcCi0gICAgICAgICAgIjAuMDA1NTgzLCAwLjAwNTU4NSwgMC4wMDU1OTIsIDAuMDA1NTkzLCAwLjAwNTU5NSwgMC4wMDU1OTQsIDAuMDA1NTkyIiwgXAotICAgICAgICAgICIwLjAwNTYxLCAwLjAwNTYwNCwgMC4wMDU2MDEsIDAuMDA1NiwgMC4wMDU1OTgsIDAuMDA1NTk2LCAwLjAwNTU5NSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTMwOSwgMC4wMDEzMDksIDAuMDAxMzA5LCAwLjAwMTMwOSwgMC4wMDEzMDgsIDAuMDAxMzA3LCAwLjAwMTMwNiIsIFwKLSAgICAgICAgICAiMC4wMDEyNywgMC4wMDEyNzMsIDAuMDAxMjc1LCAwLjAwMTI3NiwgMC4wMDEyNzYsIDAuMDAxMjc1LCAwLjAwMTI3NSIsIFwKLSAgICAgICAgICAiMC4wMDEyNjEsIDAuMDAxMjY0LCAwLjAwMTI2OCwgMC4wMDEyNjksIDAuMDAxMjY5LCAwLjAwMTI2OCwgMC4wMDEyNjgiLCBcCi0gICAgICAgICAgIjAuMDAxMjY4LCAwLjAwMTI2NywgMC4wMDEyNjgsIDAuMDAxMjY4LCAwLjAwMTI2NywgMC4wMDEyNjYsIDAuMDAxMjY2IiwgXAotICAgICAgICAgICIwLjAwMTI4OCwgMC4wMDEyODMsIDAuMDAxMjc0LCAwLjAwMTI3MSwgMC4wMDEyNywgMC4wMDEyNjcsIDAuMDAxMjY2IiwgXAotICAgICAgICAgICIwLjAwMTM1MSwgMC4wMDEzMjcsIDAuMDAxMjk0LCAwLjAwMTI4NSwgMC4wMDEyNzksIDAuMDAxMjcyLCAwLjAwMTI3IiwgXAotICAgICAgICAgICIwLjAwMTQyMiwgMC4wMDEzODgsIDAuMDAxMzE4LCAwLjAwMTMwNCwgMC4wMDEyOTIsIDAuMDAxMjgxLCAwLjAwMTI3NyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkExIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDUwNzIsIDAuMDA1MDc0LCAwLjAwNTA3OCwgMC4wMDUwNzgsIDAuMDA1MDc3LCAwLjAwNTA3NiwgMC4wMDUwNzciLCBcCi0gICAgICAgICAgIjAuMDA1MDUsIDAuMDA1MDYsIDAuMDA1MDc1LCAwLjAwNTA3OCwgMC4wMDUwOCwgMC4wMDUwOCwgMC4wMDUwOCIsIFwKLSAgICAgICAgICAiMC4wMDUwMjYsIDAuMDA1MDQxLCAwLjAwNTA2NywgMC4wMDUwNzMsIDAuMDA1MDc2LCAwLjAwNTA3OSwgMC4wMDUwODEiLCBcCi0gICAgICAgICAgIjAuMDA1MDExLCAwLjAwNTAyOCwgMC4wMDUwNiwgMC4wMDUwNjgsIDAuMDA1MDc0LCAwLjAwNTA3NiwgMC4wMDUwNzciLCBcCi0gICAgICAgICAgIjAuMDA1MDA1LCAwLjAwNTAyLCAwLjAwNTA1NiwgMC4wMDUwNjQsIDAuMDA1MDcxLCAwLjAwNTA3NSwgMC4wMDUwNzYiLCBcCi0gICAgICAgICAgIjAuMDA1MDExLCAwLjAwNTAyLCAwLjAwNTA1MywgMC4wMDUwNjMsIDAuMDA1MDY5LCAwLjAwNTA3NCwgMC4wMDUwNzUiLCBcCi0gICAgICAgICAgIjAuMDA1MDMyLCAwLjAwNTAzNywgMC4wMDUwNTgsIDAuMDA1MDY2LCAwLjAwNTA3MywgMC4wMDUwNzUsIDAuMDA1MDc2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxMzEsIDAuMDAxMzEsIDAuMDAxMzEsIDAuMDAxMzEsIDAuMDAxMzEsIDAuMDAxMzA5LCAwLjAwMTMwOCIsIFwKLSAgICAgICAgICAiMC4wMDEyNzMsIDAuMDAxMjc1LCAwLjAwMTI3NiwgMC4wMDEyNzgsIDAuMDAxMjc3LCAwLjAwMTI3NiwgMC4wMDEyNzUiLCBcCi0gICAgICAgICAgIjAuMDAxMjc1LCAwLjAwMTI3NCwgMC4wMDEyNzIsIDAuMDAxMjcyLCAwLjAwMTI3MSwgMC4wMDEyNywgMC4wMDEyNyIsIFwKLSAgICAgICAgICAiMC4wMDEzMDcsIDAuMDAxMjk5LCAwLjAwMTI4MiwgMC4wMDEyNzgsIDAuMDAxMjc1LCAwLjAwMTI3MiwgMC4wMDEyNyIsIFwKLSAgICAgICAgICAiMC4wMDEzNSwgMC4wMDEzMywgMC4wMDEyOTYsIDAuMDAxMjg3LCAwLjAwMTI4MSwgMC4wMDEyNzUsIDAuMDAxMjczIiwgXAotICAgICAgICAgICIwLjAwMTQ0OCwgMC4wMDE0MDQsIDAuMDAxMzMsIDAuMDAxMzA1LCAwLjAwMTI5OCwgMC4wMDEyODUsIDAuMDAxMjgxIiwgXAotICAgICAgICAgICIwLjAwMTU2LCAwLjAwMTQ4NywgMC4wMDEzNzEsIDAuMDAxMzQxLCAwLjAwMTMyLCAwLjAwMTI5OSwgMC4wMDEyOTIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0NTgyLCAwLjAwNDU4MiwgMC4wMDQ1ODMsIDAuMDA0NTgzLCAwLjAwNDU4MiwgMC4wMDQ1OCwgMC4wMDQ1NzkiLCBcCi0gICAgICAgICAgIjAuMDA0NTY2LCAwLjAwNDU3LCAwLjAwNDU3NiwgMC4wMDQ1NzYsIDAuMDA0NTc1LCAwLjAwNDU3NCwgMC4wMDQ1NzMiLCBcCi0gICAgICAgICAgIjAuMDA0NTU3LCAwLjAwNDU2MiwgMC4wMDQ1NzIsIDAuMDA0NTczLCAwLjAwNDU3NSwgMC4wMDQ1NzQsIDAuMDA0NTczIiwgXAotICAgICAgICAgICIwLjAwNDU1NiwgMC4wMDQ1NjEsIDAuMDA0NTcxLCAwLjAwNDU3MywgMC4wMDQ1NzMsIDAuMDA0NTc0LCAwLjAwNDU3MyIsIFwKLSAgICAgICAgICAiMC4wMDQ1NjYsIDAuMDA0NTY3LCAwLjAwNDU3MiwgMC4wMDQ1NzMsIDAuMDA0NTc0LCAwLjAwNDU3NCwgMC4wMDQ1NzIiLCBcCi0gICAgICAgICAgIjAuMDA0NTk2LCAwLjAwNDU4OSwgMC4wMDQ1ODIsIDAuMDA0NTgxLCAwLjAwNDU3OSwgMC4wMDQ1NzcsIDAuMDA0NTc1IiwgXAotICAgICAgICAgICIwLjAwNDY0MywgMC4wMDQ2MjQsIDAuMDA0NTk4LCAwLjAwNDU5MSwgMC4wMDQ1ODUsIDAuMDA0NTgxLCAwLjAwNDU3OCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDU2NSwgMC4wMDA1NjYsIDAuMDAwNTY3LCAwLjAwMDU2NywgMC4wMDA1NjcsIDAuMDAwNTY3LCAwLjAwMDU2NiIsIFwKLSAgICAgICAgICAiMC4wMDA1NDksIDAuMDAwNTU2LCAwLjAwMDU2NSwgMC4wMDA1NjcsIDAuMDAwNTY4LCAwLjAwMDU2OSwgMC4wMDA1NjkiLCBcCi0gICAgICAgICAgIjAuMDAwNTM4LCAwLjAwMDU0NywgMC4wMDA1NjIsIDAuMDAwNTY1LCAwLjAwMDU2NywgMC4wMDA1NjksIDAuMDAwNTY5IiwgXAotICAgICAgICAgICIwLjAwMDU0NCwgMC4wMDA1NTEsIDAuMDAwNTYzLCAwLjAwMDU2NywgMC4wMDA1NjgsIDAuMDAwNTY5LCAwLjAwMDU2OSIsIFwKLSAgICAgICAgICAiMC4wMDA1NjUsIDAuMDAwNTY2LCAwLjAwMDU3LCAwLjAwMDU3LCAwLjAwMDU3LCAwLjAwMDU3MSwgMC4wMDA1NzEiLCBcCi0gICAgICAgICAgIjAuMDAwNjI1LCAwLjAwMDYwNiwgMC4wMDA1ODcsIDAuMDAwNTg0LCAwLjAwMDU4LCAwLjAwMDU3NywgMC4wMDA1NzUiLCBcCi0gICAgICAgICAgIjAuMDAwNjksIDAuMDAwNjYyLCAwLjAwMDYxMSwgMC4wMDA2LCAwLjAwMDU5MiwgMC4wMDA1ODUsIDAuMDAwNTgyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDA2NCwgMC4wMDQwNjcsIDAuMDA0MDcsIDAuMDA0MDcsIDAuMDA0MDcsIDAuMDA0MDY5LCAwLjAwNDA2OSIsIFwKLSAgICAgICAgICAiMC4wMDQwNDIsIDAuMDA0MDUyLCAwLjAwNDA2OCwgMC4wMDQwNywgMC4wMDQwNzIsIDAuMDA0MDczLCAwLjAwNDA3MiIsIFwKLSAgICAgICAgICAiMC4wMDQwMiwgMC4wMDQwMzUsIDAuMDA0MDYsIDAuMDA0MDY2LCAwLjAwNDA2OSwgMC4wMDQwNjksIDAuMDA0MDcxIiwgXAotICAgICAgICAgICIwLjAwNDAxMSwgMC4wMDQwMjUsIDAuMDA0MDU1LCAwLjAwNDA2MiwgMC4wMDQwNjYsIDAuMDA0MDcyLCAwLjAwNDA3IiwgXAotICAgICAgICAgICIwLjAwNDAxNCwgMC4wMDQwMjUsIDAuMDA0MDUzLCAwLjAwNDA2LCAwLjAwNDA2NSwgMC4wMDQwNjksIDAuMDA0MDY4IiwgXAotICAgICAgICAgICIwLjAwNDAzOSwgMC4wMDQwNCwgMC4wMDQwNTcsIDAuMDA0MDYzLCAwLjAwNDA2NywgMC4wMDQwNywgMC4wMDQwNzIiLCBcCi0gICAgICAgICAgIjAuMDA0MDgyLCAwLjAwNDA3MSwgMC4wMDQwNjksIDAuMDA0MDcsIDAuMDA0MDcyLCAwLjAwNDA3MywgMC4wMDQwNzIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDA1NjIsIDAuMDAwNTYzLCAwLjAwMDU2NCwgMC4wMDA1NjUsIDAuMDAwNTY0LCAwLjAwMDU2NCwgMC4wMDA1NjQiLCBcCi0gICAgICAgICAgIjAuMDAwNTUyLCAwLjAwMDU1NywgMC4wMDA1NjQsIDAuMDAwNTY1LCAwLjAwMDU2NiwgMC4wMDA1NjYsIDAuMDAwNTY2IiwgXAotICAgICAgICAgICIwLjAwMDU2NywgMC4wMDA1NjcsIDAuMDAwNTY4LCAwLjAwMDU2OCwgMC4wMDA1NjgsIDAuMDAwNTY4LCAwLjAwMDU2OCIsIFwKLSAgICAgICAgICAiMC4wMDA1OTgsIDAuMDAwNTkyLCAwLjAwMDU4LCAwLjAwMDU3NiwgMC4wMDA1NzQsIDAuMDAwNTcyLCAwLjAwMDU3MSIsIFwKLSAgICAgICAgICAiMC4wMDA2MzksIDAuMDAwNjIzLCAwLjAwMDU5NSwgMC4wMDA1ODYsIDAuMDAwNTgxLCAwLjAwMDU3NiwgMC4wMDA1NzQiLCBcCi0gICAgICAgICAgIjAuMDAwNzM3LCAwLjAwMDY5MywgMC4wMDA2MjcsIDAuMDAwNjEsIDAuMDAwNTk4LCAwLjAwMDU4NywgMC4wMDA1ODMiLCBcCi0gICAgICAgICAgIjAuMDAwODYyLCAwLjAwMDc4LCAwLjAwMDY2OCwgMC4wMDA2NDEsIDAuMDAwNjIsIDAuMDAwNjAxLCAwLjAwMDU5NCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDM2MjEsIDAuMDAzNjI1LCAwLjAwMzYyOSwgMC4wMDM2MywgMC4wMDM2MywgMC4wMDM2MjksIDAuMDAzNjI3IiwgXAotICAgICAgICAgICIwLjAwMzU5NywgMC4wMDM2MDYsIDAuMDAzNjIxLCAwLjAwMzYyNCwgMC4wMDM2MjUsIDAuMDAzNjI1LCAwLjAwMzYyNSIsIFwKLSAgICAgICAgICAiMC4wMDM2MDcsIDAuMDAzNjA5LCAwLjAwMzYyLCAwLjAwMzYyMiwgMC4wMDM2MjQsIDAuMDAzNjI1LCAwLjAwMzYyNCIsIFwKLSAgICAgICAgICAiMC4wMDM2NDEsIDAuMDAzNjMzLCAwLjAwMzYyNiwgMC4wMDM2MjYsIDAuMDAzNjI3LCAwLjAwMzYyNiwgMC4wMDM2MjYiLCBcCi0gICAgICAgICAgIjAuMDAzNjksIDAuMDAzNjcxLCAwLjAwMzY0LCAwLjAwMzYzNSwgMC4wMDM2MzIsIDAuMDAzNjI5LCAwLjAwMzYyOCIsIFwKLSAgICAgICAgICAiMC4wMDM3OTcsIDAuMDAzNzUsIDAuMDAzNjc0LCAwLjAwMzY1NywgMC4wMDM2NDcsIDAuMDAzNjM4LCAwLjAwMzYzNSIsIFwKLSAgICAgICAgICAiMC4wMDM5MDMsIDAuMDAzODMyLCAwLjAwMzcxNSwgMC4wMDM2ODQsIDAuMDAzNjY1LCAwLjAwMzY0OSwgMC4wMDM2NDQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDAwMTksIDAuMDAwMDI0LCAwLjAwMDAzLCAwLjAwMDAzMSwgMC4wMDAwMzIsIDAuMDAwMDMzLCAwLjAwMDAzMyIsIFwKLSAgICAgICAgICAiMC4wMDAwMywgMC4wMDAwNDIsIDAuMDAwMDU5LCAwLjAwMDA2MywgMC4wMDAwNjUsIDAuMDAwMDY5LCAwLjAwMDA3IiwgXAotICAgICAgICAgICIwLjAwMDA1OSwgMC4wMDAwNjMsIDAuMDAwMDcxLCAwLjAwMDA3MiwgMC4wMDAwNzIsIDAuMDAwMDc2LCAwLjAwMDA3NyIsIFwKLSAgICAgICAgICAiMC4wMDAwOTIsIDAuMDAwMDg2LCAwLjAwMDA4MiwgMC4wMDAwODEsIDAuMDAwMDgsIDAuMDAwMDgyLCAwLjAwMDA4MiIsIFwKLSAgICAgICAgICAiMC4wMDAxNSwgMC4wMDAxMjgsIDAuMDAwMSwgMC4wMDAwOTQsIDAuMDAwMDksIDAuMDAwMDg2LCAwLjAwMDA4NSIsIFwKLSAgICAgICAgICAiMC4wMDAyOSwgMC4wMDAyMTUsIDAuMDAwMTUyLCAwLjAwMDEyLCAwLjAwMDEwOSwgMC4wMDAwOTksIDAuMDAwMDk2IiwgXAotICAgICAgICAgICIwLjAwMDQ0NywgMC4wMDAzMzcsIDAuMDAwMTgzLCAwLjAwMDE0OSwgMC4wMDAxMzEsIDAuMDAwMTE0LCAwLjAwMDEwOCIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBBT0kyMjJYMiAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoQU9JMjIyWDIpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC45NTE2Mjc7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE4MjQ0MjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE4MTgwNDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE4MjQ0MjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDEwNDgsIDAuMDAxMDQ4LCAwLjAwMTA0OCwgMC4wMDEwNDcsIDAuMDAxMDQ2LCAwLjAwMTA0NywgMC4wMDEwNDciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDExMDMsIDAuMDAxMDY3LCAwLjAwMTA1OSwgMC4wMDEwNTMsIDAuMDAxMDUyLCAwLjAwMTA1MiwgMC4wMDEwNTMiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEExKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE2ODQzNDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE2NzQzMTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE2ODQzNDsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA1OTQsIDAuMDAwNTkzLCAwLjAwMDU5MywgMC4wMDA1OTIsIDAuMDAwNTkzLCAwLjAwMDU5MywgMC4wMDA1OTMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDExOTEsIDAuMDAxMTkyLCAwLjAwMTE5MiwgMC4wMDExOTIsIDAuMDAxMTkyLCAwLjAwMTE5MiwgMC4wMDExOTIiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE3NDMxODsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE3MzgzMzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE3NDMxODsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDEwNDksIDAuMDAxMDQ4LCAwLjAwMTA0OCwgMC4wMDEwNDgsIDAuMDAxMDQ4LCAwLjAwMTA0OCwgMC4wMDEwNDgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDExLCAwLjAwMTA2NSwgMC4wMDEwNTYsIDAuMDAxMDUzLCAwLjAwMTA1MSwgMC4wMDEwNTEsIDAuMDAxMDUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIxKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE2OTU2NjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE2ODczNTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE2OTU2NjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA1MjQsIDAuMDAwNTIzLCAwLjAwMDUyMywgMC4wMDA1MjMsIDAuMDAwNTIzLCAwLjAwMDUyMywgMC4wMDA1MjIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDExOTEsIDAuMDAxMTkxLCAwLjAwMTE5MSwgMC4wMDExOTEsIDAuMDAxMTkxLCAwLjAwMTE5MSwgMC4wMDExOTEiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEMwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE3OTgyMzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE3OTgyMzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE3OTUwNDsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDEwNDksIDAuMDAxMDQ5LCAwLjAwMTA0OSwgMC4wMDEwNDgsIDAuMDAxMDQ4LCAwLjAwMTA0OCwgMC4wMDEwNDgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDExMDQsIDAuMDAxMDY4LCAwLjAwMTA2MSwgMC4wMDEwNTcsIDAuMDAxMDUzLCAwLjAwMTA1LCAwLjAwMTA1MiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQzEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTY0Nzc2OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTY0Nzc7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNjQ3NzY7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNjE5LCAwLjAwMDYxOSwgMC4wMDA2MTksIDAuMDAwNjE4LCAwLjAwMDYxOCwgMC4wMDA2MTksIDAuMDAwNjE5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxMTksIDAuMDAxMTkxLCAwLjAwMTE5MSwgMC4wMDExOTEsIDAuMDAxMTkxLCAwLjAwMTE5MSwgMC4wMDExOTEiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4yNDU0NTI7Ci0gICAgZnVuY3Rpb24gOiAiKCEoKChDMCBDMSkrKEEwIEExKSkrKEIwIEIxKSkpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDgxNzE0LCAwLjI5MDY4NiwgMC40NTk5MDMsIDAuNjcxNTM5LCAwLjg4MzM4MywgMS4wOTQ1NCwgMS4zMDg3NyIsIFwKLSAgICAgICAgICAiMC4wODg1NSwgMC4yOTc0OTksIDAuNDY2MzQ3LCAwLjY3Nzk1OSwgMC44OTA0OTgsIDEuMTAzNDIsIDEuMzE1NDIiLCBcCi0gICAgICAgICAgIjAuMDk0OTMzLCAwLjMwMzk2LCAwLjQ3Mjc5OCwgMC42ODM4MjYsIDAuODk2NTQ3LCAxLjEwOTAxLCAxLjMyMTEiLCBcCi0gICAgICAgICAgIjAuMTAwNTMzLCAwLjMwOTY1MywgMC40Nzg1NzIsIDAuNjkwMjQzLCAwLjkwMTk2OSwgMS4xMTUzMSwgMS4zMjY5MSIsIFwKLSAgICAgICAgICAiMC4xMDU3MjgsIDAuMzE0NDg1LCAwLjQ4MzU0OCwgMC42OTQ3NDIsIDAuOTA3MDYsIDEuMTE5NjMsIDEuMzMyMDMiLCBcCi0gICAgICAgICAgIjAuMTEzMTM5LCAwLjMyMjUxMiwgMC40OTE2NDYsIDAuNzAzMzY2LCAwLjkxNTMzLCAxLjEyNzc1LCAxLjM0MDQ5IiwgXAotICAgICAgICAgICIwLjExODYxMiwgMC4zMjk0NTUsIDAuNDk4NDMyLCAwLjcwOTczMSwgMC45MjE5MDYsIDEuMTM0NjIsIDEuMzQ3MzQiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTMzNzUzLCAwLjU3OTI0LCAwLjkzOTIxNiwgMS4zOTAyOCwgMS44NDAwOSwgMi4yODk1NCwgMi43NDA5NCIsIFwKLSAgICAgICAgICAiMC4xMzM3MTEsIDAuNTc5MDE5LCAwLjkzOTQ5MSwgMS4zODk2MywgMS44NDA3NiwgMi4yOTA5NywgMi43NDA0OCIsIFwKLSAgICAgICAgICAiMC4xMzQyOTQsIDAuNTc4OTk4LCAwLjkzOTUxNywgMS4zODk3NCwgMS44NDA3MSwgMi4yOTA3OCwgMi43NDI4NyIsIFwKLSAgICAgICAgICAiMC4xMzU5MTksIDAuNTc5MjA3LCAwLjkzOTAwNywgMS4zOTAyNSwgMS44NDA0OCwgMi4yOTA3NSwgMi43NDI4NiIsIFwKLSAgICAgICAgICAiMC4xMzgzMTYsIDAuNTc5MzcyLCAwLjkzOTUxMSwgMS4zODkzMywgMS44NDA0NSwgMi4yOTAwNywgMi43NDI2IiwgXAotICAgICAgICAgICIwLjE0MzYsIDAuNTgwNjcxLCAwLjkzOTIxLCAxLjM4OTczLCAxLjgzOTc1LCAyLjI5MDEyLCAyLjc0MTA3IiwgXAotICAgICAgICAgICIwLjE0OTUwNSwgMC41ODMxNDUsIDAuOTQwNTY4LCAxLjM4OTc3LCAxLjg0MDY5LCAyLjI5MDI2LCAyLjc0MTExIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1NDQ3OSwgMC4xODg3NzksIDAuMjk1MDUyLCAwLjQyNzcyNSwgMC41NjAwOTMsIDAuNjkyNzgsIDAuODI1MTIiLCBcCi0gICAgICAgICAgIjAuMDYwOTk1LCAwLjE5NTI0MSwgMC4zMDE0ODMsIDAuNDM0MDUxLCAwLjU2NjY0NCwgMC42OTkwNzEsIDAuODMxNTUxIiwgXAotICAgICAgICAgICIwLjA2OTE2NSwgMC4yMDM2MDIsIDAuMzA5OTI2LCAwLjQ0MjcwNiwgMC41NzUwNTMsIDAuNzA3NjUzLCAwLjg0MDAyMyIsIFwKLSAgICAgICAgICAiMC4wNzc0NzIsIDAuMjExNzQ3LCAwLjMxODE5NywgMC40NTA4MTMsIDAuNTgzNDg1LCAwLjcxNjA1OCwgMC44NDgyNzMiLCBcCi0gICAgICAgICAgIjAuMDg1MjI5LCAwLjIyMDE3OSwgMC4zMjY3NCwgMC40NTkzMTYsIDAuNTkyLCAwLjcyNDczMSwgMC44NTY3OTkiLCBcCi0gICAgICAgICAgIjAuMDk2MDgyLCAwLjIzMzU2MywgMC4zMzk2MTEsIDAuNDcyMzc4LCAwLjYwNDksIDAuNzM3NTk3LCAwLjg2OTg2MSIsIFwKLSAgICAgICAgICAiMC4xMDM2ODQsIDAuMjQ1MjEzLCAwLjM1MTMxNCwgMC40ODQyNDQsIDAuNjE2Nzg0LCAwLjc0OTIyMiwgMC44ODIwMzMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk2NTM5LCAwLjM2OTYwMiwgMC41ODg1MDQsIDAuODYyMTQ0LCAxLjEzNTc2LCAxLjQwOTQ4LCAxLjY4MzA2IiwgXAotICAgICAgICAgICIwLjA5NjcsIDAuMzY5NTczLCAwLjU4ODM0NiwgMC44NjIxMjIsIDEuMTM1NjIsIDEuNDA5MzgsIDEuNjgyOCIsIFwKLSAgICAgICAgICAiMC4wOTk4MjMsIDAuMzY5NTEsIDAuNTg4MzE3LCAwLjg2MiwgMS4xMzU3MywgMS40MDk0NSwgMS42ODI4NSIsIFwKLSAgICAgICAgICAiMC4xMDQ3OTgsIDAuMzcwMDk0LCAwLjU4ODM4NCwgMC44NjIxMTYsIDEuMTM1NjksIDEuNDA5NCwgMS42ODMwOSIsIFwKLSAgICAgICAgICAiMC4xMTA1MzQsIDAuMzcxNzg1LCAwLjU4ODYwOCwgMC44NjE5NSwgMS4xMzU2MywgMS40MDk1NCwgMS42ODMyMyIsIFwKLSAgICAgICAgICAiMC4xMjExNzgsIDAuMzc2ODIxLCAwLjU5MDYzNiwgMC44NjIzMDcsIDEuMTM1NzIsIDEuNDA5NTksIDEuNjgzMjYiLCBcCi0gICAgICAgICAgIjAuMTMwNzUyLCAwLjM4MjQ3OCwgMC41OTQwMTksIDAuODYzNTU5LCAxLjEzNjA2LCAxLjQwOTU0LCAxLjY4Mjg3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkExIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzk3MTgsIDAuMjkxNTUyLCAwLjQ2Mjc2NiwgMC42NzcxMTIsIDAuODkxMzI2LCAxLjEwODA4LCAxLjMyMzA4IiwgXAotICAgICAgICAgICIwLjA4NjQ4MywgMC4yOTgyNjMsIDAuNDY5OTgzLCAwLjY4MzcwNywgMC44OTkwNDgsIDEuMTE0ODIsIDEuMzMwNiIsIFwKLSAgICAgICAgICAiMC4wOTI4NCwgMC4zMDQ3OTMsIDAuNDc1Nzk2LCAwLjY5MDI3OCwgMC45MDU3MzgsIDEuMTIwNTEsIDEuMzM1NDIiLCBcCi0gICAgICAgICAgIjAuMDk4MzMsIDAuMzEwMzUzLCAwLjQ4MTUzOSwgMC42OTU2NDYsIDAuOTExNjU0LCAxLjEyNjg5LCAxLjM0MjE0IiwgXAotICAgICAgICAgICIwLjEwMzUsIDAuMzE1NDU5LCAwLjQ4NjYxNSwgMC43MDA2NiwgMC45MTY1MTUsIDEuMTMxMTMsIDEuMzQ3NjkiLCBcCi0gICAgICAgICAgIjAuMTEwODA2LCAwLjMyMzMwNCwgMC40OTQ1ODksIDAuNzA4ODA5LCAwLjkyMzc3MSwgMS4xMzkyOCwgMS4zNTQ3MyIsIFwKLSAgICAgICAgICAiMC4xMTYxNzgsIDAuMzMwMjUxLCAwLjUwMTQ4MSwgMC43MTU1ODMsIDAuOTMwNTk2LCAxLjE0NjYzLCAxLjM2MjQ5Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEzMTQyNiwgMC41ODI2MTMsIDAuOTQ2OTczLCAxLjQwNDAyLCAxLjg2MDUsIDIuMzE2OTEsIDIuNzcyMjIiLCBcCi0gICAgICAgICAgIjAuMTMxNDQxLCAwLjU4MjYyMSwgMC45NDc0MTQsIDEuNDAzNzYsIDEuODU5NzMsIDIuMzE1ODIsIDIuNzc0MDQiLCBcCi0gICAgICAgICAgIjAuMTMyMDE3LCAwLjU4MjI5NywgMC45NDY4NTEsIDEuNDAzMjQsIDEuODU5NTksIDIuMzE2NjQsIDIuNzczNjciLCBcCi0gICAgICAgICAgIjAuMTMzNjkxLCAwLjU4MjUzMSwgMC45NDg0MDYsIDEuNDA1NDYsIDEuODYwNzEsIDIuMzE2NTgsIDIuNzczNjUiLCBcCi0gICAgICAgICAgIjAuMTM2MTY1LCAwLjU4MjQ5NSwgMC45NDgxODIsIDEuNDA1MzgsIDEuODU5NTYsIDIuMzE5MzMsIDIuNzcyODMiLCBcCi0gICAgICAgICAgIjAuMTQxNTQsIDAuNTg0MTM1LCAwLjk0NzA4NSwgMS40MDUyNSwgMS44NjE5MSwgMi4zMTY2NSwgMi43NzIxOSIsIFwKLSAgICAgICAgICAiMC4xNDc1MzgsIDAuNTg2Mzk5LCAwLjk0ODk3OCwgMS40MDUzMSwgMS44NjA3LCAyLjMxNjAzLCAyLjc3MjIiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDUzLCAwLjE4NzIsIDAuMjkzNTg2LCAwLjQyNjI5NywgMC41NTg2MjYsIDAuNjkxNDk0LCAwLjgyMzY4MiIsIFwKLSAgICAgICAgICAiMC4wNjA1LCAwLjE5NDY3OCwgMC4zMDA5NTMsIDAuNDMzNTI3LCAwLjU2NjA4MywgMC42OTg0ODQsIDAuODMxMDgiLCBcCi0gICAgICAgICAgIjAuMDcwMTkzLCAwLjIwNDI2LCAwLjMxMDU4OCwgMC40NDMxNDQsIDAuNTc1NTg3LCAwLjcwNzk1MSwgMC44NDAzOTQiLCBcCi0gICAgICAgICAgIjAuMDgwMTU1LCAwLjIxMzk5NCwgMC4zMjAyNjMsIDAuNDUyOTQyLCAwLjU4NTM3NiwgMC43MTgzMDEsIDAuODUwNjY4IiwgXAotICAgICAgICAgICIwLjA4OTg2MiwgMC4yMjM2OTMsIDAuMzI5OTE1LCAwLjQ2MjQ3NiwgMC41OTUwMTYsIDAuNzI3NDYyLCAwLjg1OTkyNiIsIFwKLSAgICAgICAgICAiMC4xMDMxNDUsIDAuMjM5NDk3LCAwLjM0NTU5NSwgMC40NzgxMzcsIDAuNjEwODQ3LCAwLjc0MzIyMywgMC44NzU4MjkiLCBcCi0gICAgICAgICAgIjAuMTEzMTgsIDAuMjUzNTUyLCAwLjM1OTI0OCwgMC40OTE2ODYsIDAuNjIyOTc3LCAwLjc1NjY4NywgMC44ODkwMDIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk2NTksIDAuMzY5NjIsIDAuNTg4MzksIDAuODYyMDc3LCAxLjEzNTY1LCAxLjQwOTQ2LCAxLjY4MzA4IiwgXAotICAgICAgICAgICIwLjA5NjgyLCAwLjM2OTU3LCAwLjU4ODUyNCwgMC44NjIwNzIsIDEuMTM1NjMsIDEuNDA5MzgsIDEuNjgyOCIsIFwKLSAgICAgICAgICAiMC4xMDE1OTgsIDAuMzY5NjEzLCAwLjU4ODUzNSwgMC44NjIwMjksIDEuMTM1NjUsIDEuNDA5NjYsIDEuNjgzNjciLCBcCi0gICAgICAgICAgIjAuMTA4NzU5LCAwLjM3MDA5NCwgMC41ODgzNTUsIDAuODYyMDk1LCAxLjEzNTg3LCAxLjQwOTQ1LCAxLjY4MzUiLCBcCi0gICAgICAgICAgIjAuMTE3MDc2LCAwLjM3Mjc0NiwgMC41ODg1MiwgMC44NjIwMTcsIDEuMTM1ODMsIDEuNDA5NTEsIDEuNjgzMDciLCBcCi0gICAgICAgICAgIjAuMTMxMzQ4LCAwLjM3OTYsIDAuNTkxMzk2LCAwLjg2MjA5NiwgMS4xMzU2NywgMS40MDkzOSwgMS42ODM1MyIsIFwKLSAgICAgICAgICAiMC4xNDM4ODUsIDAuMzg3NjQ0LCAwLjU5NjA1NiwgMC44NjM2ODYsIDEuMTM1NzgsIDEuNDA5NDQsIDEuNjgyNzgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjAiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3NTU3NSwgMC4yODQzNzYsIDAuNDU1MjU1LCAwLjY2OTYxOCwgMC44ODM1NCwgMS4wOTc5NiwgMS4zMTE0NCIsIFwKLSAgICAgICAgICAiMC4wODI0NjgsIDAuMjkxNDUxLCAwLjQ2MjQ4NCwgMC42NzY1ODQsIDAuODkwODMxLCAxLjEwNDY5LCAxLjMxOTMiLCBcCi0gICAgICAgICAgIjAuMDkwMDg0LCAwLjI5OTE2NywgMC40NzAwMDMsIDAuNjg0NTU5LCAwLjg5Nzk3MSwgMS4xMTI0MSwgMS4zMjYiLCBcCi0gICAgICAgICAgIjAuMDk3NTk0LCAwLjMwNjI4MSwgMC40Nzc1NjQsIDAuNjkxNDcsIDAuOTA1MzU0LCAxLjExOTE1LCAxLjMzNDI4IiwgXAotICAgICAgICAgICIwLjEwNTA0NSwgMC4zMTM2MjMsIDAuNDg0NzQzLCAwLjY5ODg2NywgMC45MTIzOTMsIDEuMTI2MjQsIDEuMzQwMjkiLCBcCi0gICAgICAgICAgIjAuMTE2MDksIDAuMzI1Njc1LCAwLjQ5NjM4MiwgMC43MTEzMTQsIDAuOTI1NDk0LCAxLjEzODY1LCAxLjM1MjY1IiwgXAotICAgICAgICAgICIwLjEyNDM5OSwgMC4zMzY0OSwgMC41MDczODksIDAuNzIyMDIxLCAwLjkzNjI2NywgMS4xNDk0OSwgMS4zNjQwNiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMzM3NDcsIDAuNTgyMzMyLCAwLjk0NTE0OSwgMS4zOTgsIDEuODUxMDIsIDIuMzA0NCwgMi43NTcyNCIsIFwKLSAgICAgICAgICAiMC4xMzM3MzksIDAuNTgyNDg1LCAwLjk0NDkzMSwgMS4zOTc5NywgMS44NTE0NiwgMi4zMDM4MiwgMi43NTc4NCIsIFwKLSAgICAgICAgICAiMC4xMzUwMDksIDAuNTgyNTM3LCAwLjk0NTM0MSwgMS4zOTgyOCwgMS44NTE5NywgMi4zMDQzLCAyLjc1Nzk4IiwgXAotICAgICAgICAgICIwLjEzODMwOCwgMC41ODI1NTIsIDAuOTQ1MDIzLCAxLjM5Nzg0LCAxLjg1MDcxLCAyLjMwNTE4LCAyLjc1NzciLCBcCi0gICAgICAgICAgIjAuMTQyODgsIDAuNTgyOCwgMC45NDUxNDgsIDEuMzk4MDcsIDEuODUxODEsIDIuMzA1NTUsIDIuNzYwMDEiLCBcCi0gICAgICAgICAgIjAuMTUxODIxLCAwLjU4NDg5NSwgMC45NDUyMzQsIDEuMzk4MDQsIDEuODUxNjYsIDIuMzA0NTYsIDIuNzU2NjIiLCBcCi0gICAgICAgICAgIjAuMTYwNTA3LCAwLjU4ODQ1OCwgMC45NDYyMTMsIDEuMzk4MDgsIDEuODUxNDYsIDIuMzAzNzUsIDIuNzU3MTMiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQ3NzU1LCAwLjE4MTE3MywgMC4yODcyNzgsIDAuNDE5NzMyLCAwLjU1MjA5MiwgMC42ODQzODcsIDAuODE2NzYyIiwgXAotICAgICAgICAgICIwLjA1NDQwMiwgMC4xODc5NTEsIDAuMjk0MTI3LCAwLjQyNjU3NCwgMC41NTg5NDEsIDAuNjkxMjgyLCAwLjgyMzY2NSIsIFwKLSAgICAgICAgICAiMC4wNjI1NTMsIDAuMTk2MzA0LCAwLjMwMjU1MiwgMC40MzQ5MzEsIDAuNTY3MzI2LCAwLjY5OTY1NCwgMC44MzIwMTYiLCBcCi0gICAgICAgICAgIjAuMDcwNzE2LCAwLjIwNDY3NiwgMC4zMTA3OTcsIDAuNDQzMjk2LCAwLjU3NTcxNCwgMC43MDgxMjQsIDAuODQwNDgxIiwgXAotICAgICAgICAgICIwLjA3NzcxOCwgMC4yMTI4MzEsIDAuMzE5MzAyLCAwLjQ1MTg1NSwgMC41ODQyMDIsIDAuNzE2NDM4LCAwLjg0ODcyNyIsIFwKLSAgICAgICAgICAiMC4wODc1NCwgMC4yMjYxMTIsIDAuMzMyODI3LCAwLjQ2NTUxNiwgMC41OTc4NDgsIDAuNzMwMjcsIDAuODYyNjA2IiwgXAotICAgICAgICAgICIwLjA5NTIyLCAwLjIzNzk5NSwgMC4zNDQwODcsIDAuNDc2OTAxLCAwLjYwOTI2NiwgMC43NDE1NzksIDAuODc0MDAxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4NzI1MSwgMC4zNjA2OTYsIDAuNTc5NjQ3LCAwLjg1MzE4NSwgMS4xMjcyMiwgMS40MDA1NCwgMS42NzM5NCIsIFwKLSAgICAgICAgICAiMC4wODc2NzksIDAuMzYwNzMxLCAwLjU3OTY0MywgMC44NTMyMDYsIDEuMTI2ODEsIDEuNDAwNzcsIDEuNjc0NCIsIFwKLSAgICAgICAgICAiMC4wOTEyMTMsIDAuMzYwNzMyLCAwLjU3OTY4MSwgMC44NTMxNDMsIDEuMTI2OTUsIDEuNDAwNDIsIDEuNjc0MDMiLCBcCi0gICAgICAgICAgIjAuMDk2NTUxLCAwLjM2MTM2NSwgMC41Nzk1MzMsIDAuODUzMjI4LCAxLjEyNjkxLCAxLjQwMDQsIDEuNjczODEiLCBcCi0gICAgICAgICAgIjAuMTAyNjQ2LCAwLjM2MzE2OSwgMC41Nzk3ODIsIDAuODUzMDczLCAxLjEyNjk5LCAxLjQwMDczLCAxLjY3NDQ2IiwgXAotICAgICAgICAgICIwLjExMzQ5MywgMC4zNjg0OTgsIDAuNTgyMTQsIDAuODUzNDUsIDEuMTI2ODEsIDEuNDAwNDYsIDEuNjc0MzQiLCBcCi0gICAgICAgICAgIjAuMTIzMTI0LCAwLjM3NDI1OSwgMC41ODUzNTksIDAuODU0ODM0LCAxLjEyNjkyLCAxLjQwMDY4LCAxLjY3MzkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3MzA5LCAwLjI4NDA5MiwgMC40NTQ3MzksIDAuNjY5ODQ0LCAwLjg4NjI3LCAxLjEwMDg5LCAxLjMxNjY3IiwgXAotICAgICAgICAgICIwLjA3OTgxNSwgMC4yOTEwOTQsIDAuNDYxNzMyLCAwLjY3Njg0LCAwLjg5MzM0OSwgMS4xMDc5NCwgMS4zMjM2NCIsIFwKLSAgICAgICAgICAiMC4wODcxODcsIDAuMjk4ODE2LCAwLjQ2OTQwMSwgMC42ODUzNDIsIDAuODk5NzY3LCAxLjExNjQ3LCAxLjMzMDkyIiwgXAotICAgICAgICAgICIwLjA5NDUzOCwgMC4zMDU5MzYsIDAuNDc3MTI1LCAwLjY5MjA0MSwgMC45MDcxMjIsIDEuMTIyNDksIDEuMzM4OSIsIFwKLSAgICAgICAgICAiMC4xMDE4MjksIDAuMzEzMjY1LCAwLjQ4NDEyNSwgMC42OTk5MjcsIDAuOTE0NTU4LCAxLjEyOTkxLCAxLjM0NDkxIiwgXAotICAgICAgICAgICIwLjExMjQ0MiwgMC4zMjUyNTksIDAuNDk2MDg5LCAwLjcxMTUxLCAwLjkyNzYxLCAxLjE0MjUxLCAxLjM1NzEyIiwgXAotICAgICAgICAgICIwLjEyMDM0LCAwLjMzNTc2MywgMC41MDY2NDMsIDAuNzIxNzI5LCAwLjkzNjk4NCwgMS4xNTI1MywgMS4zNjg0NiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMzExMDcsIDAuNTgyNjMxLCAwLjk0NzExNSwgMS40MDM3MywgMS44NjAzLCAyLjMxNjIxLCAyLjc3MzY3IiwgXAotICAgICAgICAgICIwLjEzMTE0OCwgMC41ODI2NjksIDAuOTQ3MzE4LCAxLjQwNDI2LCAxLjg2MDM3LCAyLjMxNjIyLCAyLjc3MzU3IiwgXAotICAgICAgICAgICIwLjEzMjQ3NSwgMC41ODE3NDksIDAuOTQ3MTQ2LCAxLjQwNDA2LCAxLjg2MDgsIDIuMzE2OTIsIDIuNzcyNjIiLCBcCi0gICAgICAgICAgIjAuMTM1ODY3LCAwLjU4MjQxNiwgMC45NDcyMDMsIDEuNDAzMTEsIDEuODYyMDQsIDIuMzE2NjksIDIuNzcyMiIsIFwKLSAgICAgICAgICAiMC4xNDA1MTQsIDAuNTgyMDY1LCAwLjk0NzMzNiwgMS40MDM0NywgMS44NjI0OCwgMi4zMTY0MSwgMi43NzQ0OCIsIFwKLSAgICAgICAgICAiMC4xNDk1MDcsIDAuNTg0NjE1LCAwLjk0Nzk1NCwgMS40MDMyNCwgMS44NjA0NCwgMi4zMTU5NSwgMi43NzY2NyIsIFwKLSAgICAgICAgICAiMC4xNTgzOTMsIDAuNTg3MzcsIDAuOTQ3OTcyLCAxLjQwNTE0LCAxLjg1OTg4LCAyLjMxOTc5LCAyLjc3MjM1Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0NjEwNiwgMC4xNzk1MDksIDAuMjg1NjE0LCAwLjQxODE0NywgMC41NTA0MiwgMC42ODI4NzYsIDAuODE1MDgxIiwgXAotICAgICAgICAgICIwLjA1Mzc1MiwgMC4xODcyNzEsIDAuMjkzNDU3LCAwLjQyNTg0MSwgMC41NTgyMDEsIDAuNjkwNTQ3LCAwLjgyMjg2MiIsIFwKLSAgICAgICAgICAiMC4wNjMzMjIsIDAuMTk2ODMsIDAuMzAyOTg1LCAwLjQzNTQxOCwgMC41Njc3NzYsIDAuNzAwMTEsIDAuODMyNDQzIiwgXAotICAgICAgICAgICIwLjA3MzM1MiwgMC4yMDY1OTcsIDAuMzEyNjY2LCAwLjQ0NTE4OCwgMC41Nzc1OTYsIDAuNzA5OTAxLCAwLjg0MjE4IiwgXAotICAgICAgICAgICIwLjA4MjMxOCwgMC4yMTYwOTcsIDAuMzIyMzk2LCAwLjQ1NDYyLCAwLjU4Njk4NSwgMC43MTkyNjMsIDAuODUxNTY2IiwgXAotICAgICAgICAgICIwLjA5NDEwNiwgMC4yMzE3ODIsIDAuMzM3OTA0LCAwLjQ3MDEzOSwgMC42MDI0ODIsIDAuNzM0NzMsIDAuODY3MDQ4IiwgXAotICAgICAgICAgICIwLjEwMzI5NiwgMC4yNDU4NjMsIDAuMzUxNDQxLCAwLjQ4Mzc0OCwgMC42MTUzMjcsIDAuNzQ4Mjg1LCAwLjg4MDU0NSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODcyMzUsIDAuMzYwNzQ4LCAwLjU3OTYzOCwgMC44NTMzMDIsIDEuMTI2ODgsIDEuNDAwNDMsIDEuNjczODciLCBcCi0gICAgICAgICAgIjAuMDg3OTY2LCAwLjM2MDczNSwgMC41Nzk2NjcsIDAuODUzMjMzLCAxLjEyNjgyLCAxLjQwMDc4LCAxLjY3MzgiLCBcCi0gICAgICAgICAgIjAuMDkzNDM5LCAwLjM2MDc1MywgMC41Nzk1NDUsIDAuODUzMjQzLCAxLjEyNjg1LCAxLjQwMDYxLCAxLjY3MzkzIiwgXAotICAgICAgICAgICIwLjEwMDk1NSwgMC4zNjE1MDcsIDAuNTc5NTI3LCAwLjg1MzI3OCwgMS4xMjY5OCwgMS40MDA0OSwgMS42NzM5MSIsIFwKLSAgICAgICAgICAiMC4xMDk2NjksIDAuMzY0MzUxLCAwLjU3OTgzNywgMC44NTMxMjEsIDEuMTI2NzksIDEuNDAwOTgsIDEuNjczODIiLCBcCi0gICAgICAgICAgIjAuMTIzNjc4LCAwLjM3MTQ5NiwgMC41ODI4NDcsIDAuODUzMiwgMS4xMjcxLCAxLjQwMDY0LCAxLjY3NDEyIiwgXAotICAgICAgICAgICIwLjEzNTgxNSwgMC4zNzk4OTcsIDAuNTg3NzM3LCAwLjg1NTAzNSwgMS4xMjY4NSwgMS40MDA0LCAxLjY3MzgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQzAiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2MzgyNCwgMC4yNzE5NiwgMC40NDIxMzIsIDAuNjU2MjUxLCAwLjg2ODk1MywgMS4wODM1NCwgMS4yOTU2NyIsIFwKLSAgICAgICAgICAiMC4wNzA5ODgsIDAuMjc5NTk2LCAwLjQ0OTQ3NCwgMC42NjI4NTcsIDAuODc2NTI4LCAxLjA5MDI5LCAxLjMwNDYiLCBcCi0gICAgICAgICAgIjAuMDgwMzkxLCAwLjI4ODkwMiwgMC40NTg3LCAwLjY3MjI0MywgMC44ODU1NjIsIDEuMTAwMzMsIDEuMzEzOTIiLCBcCi0gICAgICAgICAgIjAuMDg5NjI4LCAwLjI5NzQ3NSwgMC40Njc0MDcsIDAuNjgxMDY0LCAwLjg5NDMwOCwgMS4xMDc1MywgMS4zMjE0MSIsIFwKLSAgICAgICAgICAiMC4wOTk0NjQsIDAuMzA2NzA0LCAwLjQ3NzA1MywgMC42OTA4NTcsIDAuOTAzNjE3LCAxLjExNjcyLCAxLjMzMDYxIiwgXAotICAgICAgICAgICIwLjExMzU2NywgMC4zMjE0NDEsIDAuNDkxMzM2LCAwLjcwNTQxOSwgMC45MTc5ODYsIDEuMTMyMDYsIDEuMzQ0ODMiLCBcCi0gICAgICAgICAgIjAuMTI0MjM5LCAwLjMzNDU1LCAwLjUwNDIsIDAuNzE3NDYzLCAwLjkzMDgzMiwgMS4xNDQ5NywgMS4zNTc1MiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMzMxODUsIDAuNTgwOTQ2LCAwLjk0MjcxNywgMS4zOTQ0LCAxLjg0NjYxLCAyLjI5ODUxLCAyLjc1MjUzIiwgXAotICAgICAgICAgICIwLjEzMjQ4NCwgMC41ODA4MTksIDAuOTQyNTU4LCAxLjM5NDU1LCAxLjg0NjkzLCAyLjI5NzU0LCAyLjc1MTA3IiwgXAotICAgICAgICAgICIwLjEzNTc0OSwgMC41ODA2MzgsIDAuOTQyNDk3LCAxLjM5NDAyLCAxLjg0NjY1LCAyLjI5ODcxLCAyLjc1MDc1IiwgXAotICAgICAgICAgICIwLjE0MTc5NSwgMC41ODA0MjUsIDAuOTQyNjEzLCAxLjM5NDExLCAxLjg0NzAxLCAyLjI5OTg4LCAyLjc1MDgiLCBcCi0gICAgICAgICAgIjAuMTQ4OTExLCAwLjU4MDcxMywgMC45NDIzLCAxLjM5NDYxLCAxLjg0NTc2LCAyLjI5OTUzLCAyLjc1MDc1IiwgXAotICAgICAgICAgICIwLjE2MTQwNSwgMC41ODQxMjksIDAuOTQyNDMzLCAxLjM5NDcyLCAxLjg0Njg3LCAyLjI5ODk5LCAyLjc0OTM5IiwgXAotICAgICAgICAgICIwLjE3MjY0MywgMC41ODk0ODQsIDAuOTQzNDY2LCAxLjM5NDQ1LCAxLjg0NjcyLCAyLjI5ODE2LCAyLjc1MTE3Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzOTY2MSwgMC4xNzMyNjMsIDAuMjc5NjA0LCAwLjQxMjE5MSwgMC41NDQ1NjUsIDAuNjc2OTM4LCAwLjgwOTI5IiwgXAotICAgICAgICAgICIwLjA0NjI4MywgMC4xODAxNzgsIDAuMjg2NTk2LCAwLjQxOTExLCAwLjU1MTUwNywgMC42ODM4ODQsIDAuODE2MjA3IiwgXAotICAgICAgICAgICIwLjA1NDQxMywgMC4xODg2MTMsIDAuMjk1MDI1LCAwLjQyNzU5OSwgMC41NjAwMTksIDAuNjkyMzczLCAwLjgyNDc4MSIsIFwKLSAgICAgICAgICAiMC4wNjE5MDksIDAuMTk3MDYsIDAuMzAzNDg0LCAwLjQzNjA5OSwgMC41Njg1NCwgMC43MDA4ODEsIDAuODMzMjY1IiwgXAotICAgICAgICAgICIwLjA2ODQ1OCwgMC4yMDQ5NDYsIDAuMzExOTY2LCAwLjQ0NDUxMSwgMC41NzY5MTMsIDAuNzA5MzA1LCAwLjg0MTUyMSIsIFwKLSAgICAgICAgICAiMC4wNzczMTYsIDAuMjE4NDQ1LCAwLjMyNDY1NiwgMC40NTgxMDIsIDAuNTkwNTM0LCAwLjcyMjk4OSwgMC44NTUzMTciLCBcCi0gICAgICAgICAgIjAuMDgzODY2LCAwLjIyOTk0NCwgMC4zMzYzNDYsIDAuNDY5NjU4LCAwLjYwMjAxOSwgMC43MzQ0NjEsIDAuODY2ODY4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3OTIzOCwgMC4zNTI1NjgsIDAuNTcxMzk1LCAwLjg0NDk0LCAxLjExODQ4LCAxLjM5MjAzLCAxLjY2Njc4IiwgXAotICAgICAgICAgICIwLjA3OTkzOSwgMC4zNTI1NTUsIDAuNTcxMzY2LCAwLjg0NDk2LCAxLjExODQyLCAxLjM5MjE3LCAxLjY2NTUyIiwgXAotICAgICAgICAgICIwLjA4NDA1LCAwLjM1MjUzOCwgMC41NzE0MjYsIDAuODQ0OTg3LCAxLjExODUyLCAxLjM5MjEsIDEuNjY2MDQiLCBcCi0gICAgICAgICAgIjAuMDg5NjkzLCAwLjM1MzI1NiwgMC41NzE0MjEsIDAuODQ0ODg0LCAxLjExODQzLCAxLjM5MTk5LCAxLjY2NTk4IiwgXAotICAgICAgICAgICIwLjA5NjMzMywgMC4zNTUyODcsIDAuNTcxNzIyLCAwLjg0NDkxMywgMS4xMTg0NiwgMS4zOTIwNCwgMS42NjU5MyIsIFwKLSAgICAgICAgICAiMC4xMDc1OTYsIDAuMzYwNzAzLCAwLjU3Mzg2MSwgMC44NDUxMjMsIDEuMTE4NDUsIDEuMzkyLCAxLjY2NTk3IiwgXAotICAgICAgICAgICIwLjExNzE1NSwgMC4zNjY1OTQsIDAuNTc3MzYzLCAwLjg0NjU4OSwgMS4xMTg1NywgMS4zOTIwNCwgMS42NjU1NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDMSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDYxODUsIDAuMjczNDA0LCAwLjQ0NDcsIDAuNjU4ODk1LCAwLjg3Mzg0NSwgMS4wODk5MywgMS4zMDQzOSIsIFwKLSAgICAgICAgICAiMC4wNjg5NzUsIDAuMjgwODE2LCAwLjQ1MTUxMywgMC42NjYxNjEsIDAuODgwNzY3LCAxLjA5NjY4LCAxLjMxMTM0IiwgXAotICAgICAgICAgICIwLjA3ODE1MSwgMC4yODk3NywgMC40NjA1MzgsIDAuNjc0OTY2LCAwLjg5MDczLCAxLjEwNDk5LCAxLjMyMDc2IiwgXAotICAgICAgICAgICIwLjA4NzQ2MywgMC4yOTkwMzksIDAuNDY5Njg3LCAwLjY4NDIyOCwgMC44OTk2OTksIDEuMTE0MjYsIDEuMzMwNTciLCBcCi0gICAgICAgICAgIjAuMDk3MjkxLCAwLjMwNzkzOCwgMC40Nzg1OTMsIDAuNjkzMTgsIDAuOTA3ODgsIDEuMTIyMTYsIDEuMzM4ODkiLCBcCi0gICAgICAgICAgIjAuMTExMDg3LCAwLjMyMjY5NSwgMC40OTMzNTMsIDAuNzA3MjQzLCAwLjkyMjQ4NCwgMS4xMzgsIDEuMzUyNjIiLCBcCi0gICAgICAgICAgIjAuMTIxMzY0LCAwLjMzNTgwNywgMC41MDYwNzksIDAuNzE5OTE5LCAwLjkzNTAxNywgMS4xNTA4NSwgMS4zNjY3Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEzMTE4LCAwLjU4MjY5MiwgMC45NDcyOTIsIDEuNDAzODMsIDEuODU5NjEsIDIuMzE2OTQsIDIuNzcyNjEiLCBcCi0gICAgICAgICAgIjAuMTMwNTE1LCAwLjU4MjMzMywgMC45NDgzNTUsIDEuNDAzNjUsIDEuODYwMTMsIDIuMzE1OTksIDIuNzczMTIiLCBcCi0gICAgICAgICAgIjAuMTMzODk2LCAwLjU4MjQxNSwgMC45NDgzMjYsIDEuNDAzMTksIDEuODYwNzEsIDIuMzE2NTEsIDIuNzczMzkiLCBcCi0gICAgICAgICAgIjAuMTQwMDczLCAwLjU4MjUzLCAwLjk0NzYwMiwgMS40MDMyLCAxLjg1OTkzLCAyLjMxNjg3LCAyLjc3MjIyIiwgXAotICAgICAgICAgICIwLjE0NzM2NCwgMC41ODIzODEsIDAuOTQ3MDEsIDEuNDAzMzYsIDEuODYyNDYsIDIuMzE2MzksIDIuNzczMzgiLCBcCi0gICAgICAgICAgIjAuMTYwMTkxLCAwLjU4NTYyOCwgMC45NDY1MjgsIDEuNDA1NDIsIDEuODYwMDEsIDIuMzE2MDksIDIuNzc1OTUiLCBcCi0gICAgICAgICAgIjAuMTcxNDc5LCAwLjU5MDUyLCAwLjk0ODQ1NCwgMS40MDQ4NywgMS44NjA0MiwgMi4zMTYwNywgMi43NzIxNyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzgxODQsIDAuMTcxODE5LCAwLjI3ODE2MiwgMC40MTA3MDgsIDAuNTQzMTA5LCAwLjY3NTQ1NSwgMC44MDc4MyIsIFwKLSAgICAgICAgICAiMC4wNDU4OTMsIDAuMTc5NzE3LCAwLjI4NjEyLCAwLjQxODYxNCwgMC41NTEwNTYsIDAuNjgzMzc4LCAwLjgxNTcyMyIsIFwKLSAgICAgICAgICAiMC4wNTU3NDQsIDAuMTg5MzQyLCAwLjI5NTY4NSwgMC40MjgyMzgsIDAuNTYwNjMsIDAuNjkyOTcyLCAwLjgyNTM2MyIsIFwKLSAgICAgICAgICAiMC4wNjUxMjMsIDAuMTk4OTk2LCAwLjMwNTQwMywgMC40Mzc4NDIsIDAuNTcwMTkxLCAwLjcwMjU3MSwgMC44MzQ4OTkiLCBcCi0gICAgICAgICAgIjAuMDcyODk5LCAwLjIwODcxNCwgMC4zMTUwNjksIDAuNDQ3NjA5LCAwLjU3OTkxOSwgMC43MTIyNjMsIDAuODQ0NiIsIFwKLSAgICAgICAgICAiMC4wODMyNTEsIDAuMjI0NTA1LCAwLjMzMDc1MywgMC40NjMxNzcsIDAuNTk1NTE2LCAwLjcyNzg1MiwgMC44NjAyMjQiLCBcCi0gICAgICAgICAgIjAuMDkxMzM4LCAwLjIzODQwOCwgMC4zNDQ0MTUsIDAuNDc2ODM4LCAwLjYwODQ5MSwgMC43NDE0MTYsIDAuODczNzU1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3OTIzNywgMC4zNTI1MzksIDAuNTcxMzI5LCAwLjg0NTAzMiwgMS4xMTg0NSwgMS4zOTIxMiwgMS42NjYwNiIsIFwKLSAgICAgICAgICAiMC4wODA0LCAwLjM1MjU1LCAwLjU3MTM1NywgMC44NDQ5NjQsIDEuMTE4NDcsIDEuMzkyMTcsIDEuNjY1NTMiLCBcCi0gICAgICAgICAgIjAuMDg2NDE0LCAwLjM1MjUyNSwgMC41NzE0MjUsIDAuODQ0ODg0LCAxLjExODQzLCAxLjM5MjI4LCAxLjY2NTg0IiwgXAotICAgICAgICAgICIwLjA5NDY2NCwgMC4zNTM0NjcsIDAuNTcxMzE4LCAwLjg0NTAyLCAxLjExODQ2LCAxLjM5MjE5LCAxLjY2NjE3IiwgXAotICAgICAgICAgICIwLjEwMzY4NCwgMC4zNTY0MTcsIDAuNTcxNTg1LCAwLjg0NDkzNiwgMS4xMTg0MiwgMS4zOTIzNCwgMS42NjYxMiIsIFwKLSAgICAgICAgICAiMC4xMTg1NjYsIDAuMzYzODQ0LCAwLjU3NDg4NCwgMC44NDUxMjYsIDEuMTE4NDMsIDEuMzkyMDUsIDEuNjY1ODkiLCBcCi0gICAgICAgICAgIjAuMTI5OTA5LCAwLjM3MjM2MywgMC41Nzk4MTYsIDAuODQ2ODQ0LCAxLjExODQ1LCAxLjM5MjQ2LCAxLjY2NTQ0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMjk2NCwgMC4wMTI5NjksIDAuMDEyOTY4LCAwLjAxMjk2OCwgMC4wMTI5NjYsIDAuMDEyOTY1LCAwLjAxMjk2NSIsIFwKLSAgICAgICAgICAiMC4wMTI5MjUsIDAuMDEyOTUxLCAwLjAxMjk1NSwgMC4wMTI5NTUsIDAuMDEyOTU1LCAwLjAxMjk1NCwgMC4wMTI5NTQiLCBcCi0gICAgICAgICAgIjAuMDEyODk4LCAwLjAxMjk0LCAwLjAxMjk0NiwgMC4wMTI5NDksIDAuMDEyOTUsIDAuMDEyOTQ0LCAwLjAxMjk1IiwgXAotICAgICAgICAgICIwLjAxMjg4NiwgMC4wMTI5MzEsIDAuMDEyOTQsIDAuMDEyOTQ0LCAwLjAxMjk0NiwgMC4wMTI5NDYsIDAuMDEyOTQ1IiwgXAotICAgICAgICAgICIwLjAxMjg4NywgMC4wMTI5MjksIDAuMDEyOTM3LCAwLjAxMjk0MywgMC4wMTI5NDUsIDAuMDEyOTQ1LCAwLjAxMjk0NSIsIFwKLSAgICAgICAgICAiMC4wMTI5MTYsIDAuMDEyOTM1LCAwLjAxMjk0LCAwLjAxMjk0NiwgMC4wMTI5NDUsIDAuMDEyOTQ2LCAwLjAxMjk0NyIsIFwKLSAgICAgICAgICAiMC4wMTI5NzQsIDAuMDEyOTU0LCAwLjAxMjk1NCwgMC4wMTI5NTQsIDAuMDEyOTUzLCAwLjAxMjk1NCwgMC4wMTI5NSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzUwMywgMC4wMDM1MDUsIDAuMDAzNTA0LCAwLjAwMzUwNCwgMC4wMDM1MDIsIDAuMDAzNTAzLCAwLjAwMzUwMiIsIFwKLSAgICAgICAgICAiMC4wMDM0MjYsIDAuMDAzNDQ3LCAwLjAwMzQ1LCAwLjAwMzQ1MSwgMC4wMDM0NTEsIDAuMDAzNDUxLCAwLjAwMzQ1MSIsIFwKLSAgICAgICAgICAiMC4wMDM0MDUsIDAuMDAzNDMxLCAwLjAwMzQzNywgMC4wMDM0MzksIDAuMDAzNDM5LCAwLjAwMzQ0LCAwLjAwMzQ0IiwgXAotICAgICAgICAgICIwLjAwMzQzNCwgMC4wMDM0MzUsIDAuMDAzNDM3LCAwLjAwMzQzOSwgMC4wMDM0MzksIDAuMDAzNDM5LCAwLjAwMzQzNyIsIFwKLSAgICAgICAgICAiMC4wMDM1LCAwLjAwMzQ1OSwgMC4wMDM0NTIsIDAuMDAzNDQ4LCAwLjAwMzQ0NiwgMC4wMDM0NDQsIDAuMDAzNDQyIiwgXAotICAgICAgICAgICIwLjAwMzY3MiwgMC4wMDM1MjIsIDAuMDAzNDk0LCAwLjAwMzQ3OCwgMC4wMDM0NjcsIDAuMDAzNDYyLCAwLjAwMzQ1OCIsIFwKLSAgICAgICAgICAiMC4wMDM4NjcsIDAuMDAzNiwgMC4wMDM1NTEsIDAuMDAzNTE5LCAwLjAwMzUsIDAuMDAzNDg5LCAwLjAwMzQ4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMTk2MSwgMC4wMTE5NzksIDAuMDExOTgsIDAuMDExOTgsIDAuMDExOTgsIDAuMDExOTc5LCAwLjAxMTk3OSIsIFwKLSAgICAgICAgICAiMC4wMTE4OTcsIDAuMDExOTY3LCAwLjAxMTk3NywgMC4wMTE5ODIsIDAuMDExOTg0LCAwLjAxMTk4NSwgMC4wMTE5ODciLCBcCi0gICAgICAgICAgIjAuMDExODQxLCAwLjAxMTk0MiwgMC4wMTE5NjEsIDAuMDExOTc4LCAwLjAxMTk3NSwgMC4wMTE5NzcsIDAuMDExOTc4IiwgXAotICAgICAgICAgICIwLjAxMTgxLCAwLjAxMTkyMywgMC4wMTE5NDcsIDAuMDExOTYsIDAuMDExOTY3LCAwLjAxMTk3MSwgMC4wMTE5NzQiLCBcCi0gICAgICAgICAgIjAuMDExODAxLCAwLjAxMTkxLCAwLjAxMTkzNywgMC4wMTE5NTIsIDAuMDExOTYxLCAwLjAxMTk2NiwgMC4wMTE5NjkiLCBcCi0gICAgICAgICAgIjAuMDExODIxLCAwLjAxMTkwMSwgMC4wMTE5MjksIDAuMDExOTQ2LCAwLjAxMTk1NiwgMC4wMTE5NjEsIDAuMDExOTYyIiwgXAotICAgICAgICAgICIwLjAxMTg3MSwgMC4wMTE5MTIsIDAuMDExOTM1LCAwLjAxMTk0OSwgMC4wMTE5NTcsIDAuMDExOTYzLCAwLjAxMTk2NiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzUxMiwgMC4wMDM1MTQsIDAuMDAzNTEzLCAwLjAwMzUxNCwgMC4wMDM1MTIsIDAuMDAzNTEyLCAwLjAwMzUxMSIsIFwKLSAgICAgICAgICAiMC4wMDM0MzgsIDAuMDAzNDU2LCAwLjAwMzQ1NywgMC4wMDM0NTksIDAuMDAzNDU2LCAwLjAwMzQ1OCwgMC4wMDM0NTgiLCBcCi0gICAgICAgICAgIjAuMDAzNDg5LCAwLjAwMzQ1NiwgMC4wMDM0NTcsIDAuMDAzNDU1LCAwLjAwMzQ1NCwgMC4wMDM0NTMsIDAuMDAzNDU1IiwgXAotICAgICAgICAgICIwLjAwMzU0MiwgMC4wMDM0ODQsIDAuMDAzNDc0LCAwLjAwMzQ2NiwgMC4wMDM0NjIsIDAuMDAzNDU4LCAwLjAwMzQ1NyIsIFwKLSAgICAgICAgICAiMC4wMDM2NjksIDAuMDAzNTI4LCAwLjAwMzUwNCwgMC4wMDM0ODgsIDAuMDAzNDc5LCAwLjAwMzQ3MywgMC4wMDM0NjgiLCBcCi0gICAgICAgICAgIjAuMDAzOTQ4LCAwLjAwMzYzMywgMC4wMDM1NzMsIDAuMDAzNTQzLCAwLjAwMzUyMiwgMC4wMDM1MDcsIDAuMDAzNDk4IiwgXAotICAgICAgICAgICIwLjAwNDI2LCAwLjAwMzc1MiwgMC4wMDM2NiwgMC4wMDM2MDgsIDAuMDAzNTU4LCAwLjAwMzU1MywgMC4wMDM1MzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEwNTY4LCAwLjAxMDU3MiwgMC4wMTA1NzIsIDAuMDEwNTcsIDAuMDEwNTY5LCAwLjAxMDU2OSwgMC4wMTA1NjkiLCBcCi0gICAgICAgICAgIjAuMDEwNTI4LCAwLjAxMDU1MywgMC4wMTA1NTcsIDAuMDEwNTU3LCAwLjAxMDU1OCwgMC4wMTA1NTYsIDAuMDEwNTU1IiwgXAotICAgICAgICAgICIwLjAxMDUwNiwgMC4wMTA1NDQsIDAuMDEwNTUsIDAuMDEwNTUyLCAwLjAxMDU1MywgMC4wMTA1NTMsIDAuMDEwNTUzIiwgXAotICAgICAgICAgICIwLjAxMDUwMywgMC4wMTA1MzgsIDAuMDEwNTQ3LCAwLjAxMDU1LCAwLjAxMDU1LCAwLjAxMDU1MiwgMC4wMTA1NSIsIFwKLSAgICAgICAgICAiMC4wMTA1MjUsIDAuMDEwNTQzLCAwLjAxMDU0OCwgMC4wMTA1NSwgMC4wMTA1NTEsIDAuMDEwNTUsIDAuMDEwNTUzIiwgXAotICAgICAgICAgICIwLjAxMDYwMSwgMC4wMTA1NjQsIDAuMDEwNTYsIDAuMDEwNTYxLCAwLjAxMDU1OCwgMC4wMTA1NTgsIDAuMDEwNTU4IiwgXAotICAgICAgICAgICIwLjAxMDY5OCwgMC4wMTA2MDIsIDAuMDEwNTg4LCAwLjAxMDU4LCAwLjAxMDU3NCwgMC4wMTA1NywgMC4wMTA1NjgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDIwNTgsIDAuMDAyMDY2LCAwLjAwMjA2NywgMC4wMDIwNjcsIDAuMDAyMDY3LCAwLjAwMjA2NywgMC4wMDIwNjciLCBcCi0gICAgICAgICAgIjAuMDAyMDEyLCAwLjAwMjA3MywgMC4wMDIwODEsIDAuMDAyMDg2LCAwLjAwMjA4OCwgMC4wMDIwODksIDAuMDAyMDkiLCBcCi0gICAgICAgICAgIjAuMDAxOTc4LCAwLjAwMjA2MiwgMC4wMDIwNzUsIDAuMDAyMDgzLCAwLjAwMjA4NywgMC4wMDIwODksIDAuMDAyMDkiLCBcCi0gICAgICAgICAgIjAuMDAyLCAwLjAwMjA2NCwgMC4wMDIwNzYsIDAuMDAyMDgzLCAwLjAwMjA4NywgMC4wMDIwOSwgMC4wMDIwOTIiLCBcCi0gICAgICAgICAgIjAuMDAyMDYyLCAwLjAwMjA3OCwgMC4wMDIwODYsIDAuMDAyMDkxLCAwLjAwMjA5NSwgMC4wMDIwOTUsIDAuMDAyMDk1IiwgXAotICAgICAgICAgICIwLjAwMjIxNiwgMC4wMDIxMywgMC4wMDIxMjIsIDAuMDAyMTE3LCAwLjAwMjExNCwgMC4wMDIxMTIsIDAuMDAyMTEiLCBcCi0gICAgICAgICAgIjAuMDAyNDI2LCAwLjAwMjIwMiwgMC4wMDIxNywgMC4wMDIxNTIsIDAuMDAyMTQyLCAwLjAwMjEzNCwgMC4wMDIxMjkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA5NDg5LCAwLjAwOTUwNiwgMC4wMDk1MDgsIDAuMDA5NTA4LCAwLjAwOTUwOCwgMC4wMDk1MDksIDAuMDA5NTA2IiwgXAotICAgICAgICAgICIwLjAwOTQyNCwgMC4wMDk0OTQsIDAuMDA5NTA0LCAwLjAwOTUwOCwgMC4wMDk1MTEsIDAuMDA5NTEyLCAwLjAwOTUxMSIsIFwKLSAgICAgICAgICAiMC4wMDkzNzIsIDAuMDA5NDcyLCAwLjAwOTQ4OSwgMC4wMDk1MDEsIDAuMDA5NTAzLCAwLjAwOTUwMywgMC4wMDk1MDciLCBcCi0gICAgICAgICAgIjAuMDA5MzU0LCAwLjAwOTQ1NiwgMC4wMDk0NzgsIDAuMDA5NDksIDAuMDA5NDk3LCAwLjAwOTUwMiwgMC4wMDk1MDMiLCBcCi0gICAgICAgICAgIjAuMDA5MzY1LCAwLjAwOTQ1MSwgMC4wMDk0NzMsIDAuMDA5NDg2LCAwLjAwOTQ5MywgMC4wMDk0OTcsIDAuMDA5NTA2IiwgXAotICAgICAgICAgICIwLjAwOTQzNywgMC4wMDk0NTksIDAuMDA5NDc1LCAwLjAwOTQ4OSwgMC4wMDk0OTUsIDAuMDA5NDk5LCAwLjAwOTUwMyIsIFwKLSAgICAgICAgICAiMC4wMDk1MzMsIDAuMDA5NDg4LCAwLjAwOTQ5NiwgMC4wMDk1MDIsIDAuMDA5NTA1LCAwLjAwOTUwNywgMC4wMDk1MDciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDIwNSwgMC4wMDIwNTksIDAuMDAyMDYsIDAuMDAyMDYsIDAuMDAyMDYsIDAuMDAyMDYsIDAuMDAyMDYiLCBcCi0gICAgICAgICAgIjAuMDAyMDIzLCAwLjAwMjA3MSwgMC4wMDIwNzgsIDAuMDAyMDgxLCAwLjAwMjA4MywgMC4wMDIwODQsIDAuMDAyMDg0IiwgXAotICAgICAgICAgICIwLjAwMjA2MSwgMC4wMDIwODQsIDAuMDAyMDg0LCAwLjAwMjA4NywgMC4wMDIwODgsIDAuMDAyMDg5LCAwLjAwMjA5IiwgXAotICAgICAgICAgICIwLjAwMjEyLCAwLjAwMjA5NywgMC4wMDIxMDEsIDAuMDAyMDk4LCAwLjAwMjA5NywgMC4wMDIwOTYsIDAuMDAyMDk2IiwgXAotICAgICAgICAgICIwLjAwMjI0MiwgMC4wMDIxNDgsIDAuMDAyMTM1LCAwLjAwMjEyMywgMC4wMDIxMTcsIDAuMDAyMTEzLCAwLjAwMjExIiwgXAotICAgICAgICAgICIwLjAwMjU0NiwgMC4wMDIyNDksIDAuMDAyMjA3LCAwLjAwMjE3NiwgMC4wMDIxNTksIDAuMDAyMTQ3LCAwLjAwMjEzOSIsIFwKLSAgICAgICAgICAiMC4wMDI4NywgMC4wMDIzNjMsIDAuMDAyMjg0LCAwLjAwMjI0MiwgMC4wMDIyMDgsIDAuMDAyMTksIDAuMDAyMTc2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQzAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwODM0OCwgMC4wMDgzNTgsIDAuMDA4MzU3LCAwLjAwODM1OCwgMC4wMDgzNTcsIDAuMDA4MzU2LCAwLjAwODM1NSIsIFwKLSAgICAgICAgICAiMC4wMDgzMTgsIDAuMDA4MzQxLCAwLjAwODM0NCwgMC4wMDgzNDQsIDAuMDA4MzQ1LCAwLjAwODM0MywgMC4wMDgzNDQiLCBcCi0gICAgICAgICAgIjAuMDA4MzQ0LCAwLjAwODM0MywgMC4wMDgzNDQsIDAuMDA4MzQzLCAwLjAwODM0NCwgMC4wMDgzNDIsIDAuMDA4MzQiLCBcCi0gICAgICAgICAgIjAuMDA4NDUzLCAwLjAwODM3OCwgMC4wMDgzNjUsIDAuMDA4MzU5LCAwLjAwODM1NywgMC4wMDgzNTIsIDAuMDA4MzQ5IiwgXAotICAgICAgICAgICIwLjAwODU3NCwgMC4wMDg0MTgsIDAuMDA4MzkyLCAwLjAwODM3NywgMC4wMDgzNjgsIDAuMDA4MzYzLCAwLjAwODM1OCIsIFwKLSAgICAgICAgICAiMC4wMDg4MjEsIDAuMDA4NTE2LCAwLjAwODQ1NywgMC4wMDg0MjIsIDAuMDA4NDA2LCAwLjAwODM5LCAwLjAwODM4MiIsIFwKLSAgICAgICAgICAiMC4wMDkwODIsIDAuMDA4NjIzLCAwLjAwODUzMSwgMC4wMDg0NzUsIDAuMDA4NDQ0LCAwLjAwODQyMywgMC4wMDg0MSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDQ3NiwgMC4wMDA1MSwgMC4wMDA1MTMsIDAuMDAwNTE1LCAwLjAwMDUxNiwgMC4wMDA1MTcsIDAuMDAwNTE3IiwgXAotICAgICAgICAgICIwLjAwMDQ0NSwgMC4wMDA1NTYsIDAuMDAwNTcxLCAwLjAwMDU3OCwgMC4wMDA1ODIsIDAuMDAwNTg1LCAwLjAwMDU4NiIsIFwKLSAgICAgICAgICAiMC4wMDA0MjMsIDAuMDAwNTU0LCAwLjAwMDU3NCwgMC4wMDA1ODUsIDAuMDAwNTkxLCAwLjAwMDU5NSwgMC4wMDA1OTciLCBcCi0gICAgICAgICAgIjAuMDAwNDUyLCAwLjAwMDU1OSwgMC4wMDA1NzksIDAuMDAwNTksIDAuMDAwNTk2LCAwLjAwMDYsIDAuMDAwNjAzIiwgXAotICAgICAgICAgICIwLjAwMDUyLCAwLjAwMDU3NSwgMC4wMDA1OTEsIDAuMDAwNTk5LCAwLjAwMDYwNCwgMC4wMDA2MDYsIDAuMDAwNjA5IiwgXAotICAgICAgICAgICIwLjAwMDY5NCwgMC4wMDA2MjQsIDAuMDAwNjI1LCAwLjAwMDYyNiwgMC4wMDA2MjUsIDAuMDAwNjI0LCAwLjAwMDYyNCIsIFwKLSAgICAgICAgICAiMC4wMDA5MTQsIDAuMDAwNjg3LCAwLjAwMDY2OSwgMC4wMDA2NjMsIDAuMDAwNjU1LCAwLjAwMDY1LCAwLjAwMDY0NyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMxIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDczNywgMC4wMDczOTUsIDAuMDA3Mzk4LCAwLjAwNzM5OSwgMC4wMDczOTksIDAuMDA3Mzk4LCAwLjAwNzM5NyIsIFwKLSAgICAgICAgICAiMC4wMDczMTgsIDAuMDA3Mzg0LCAwLjAwNzM5MiwgMC4wMDczOTcsIDAuMDA3Mzk3LCAwLjAwNzQsIDAuMDA3NDAxIiwgXAotICAgICAgICAgICIwLjAwNzM0OSwgMC4wMDczODMsIDAuMDA3MzkyLCAwLjAwNzM5NywgMC4wMDczOTksIDAuMDA3NDAxLCAwLjAwNzQiLCBcCi0gICAgICAgICAgIjAuMDA3NDE5LCAwLjAwNzM5MSwgMC4wMDczOTYsIDAuMDA3Mzk4LCAwLjAwNzQwMSwgMC4wMDc0MDEsIDAuMDA3NDAyIiwgXAotICAgICAgICAgICIwLjAwNzUyNiwgMC4wMDc0MzIsIDAuMDA3NDIxLCAwLjAwNzQxNSwgMC4wMDc0MTIsIDAuMDA3NDEyLCAwLjAwNzQxMyIsIFwKLSAgICAgICAgICAiMC4wMDc3NjUsIDAuMDA3NTE0LCAwLjAwNzQ3NCwgMC4wMDc0NTQsIDAuMDA3NDQxLCAwLjAwNzQzNCwgMC4wMDc0MjgiLCBcCi0gICAgICAgICAgIjAuMDA4MDExLCAwLjAwNzYwOSwgMC4wMDc1MzksIDAuMDA3NDk4LCAwLjAwNzQ3NSwgMC4wMDc0NjEsIDAuMDA3NDUyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwNDc3LCAwLjAwMDUxMywgMC4wMDA1MTcsIDAuMDAwNTE5LCAwLjAwMDUyLCAwLjAwMDUyMSwgMC4wMDA1MjEiLCBcCi0gICAgICAgICAgIjAuMDAwNDc1LCAwLjAwMDU2NiwgMC4wMDA1NzgsIDAuMDAwNTg1LCAwLjAwMDU4OCwgMC4wMDA1OSwgMC4wMDA1OTEiLCBcCi0gICAgICAgICAgIjAuMDAwNTI4LCAwLjAwMDU4MywgMC4wMDA1OTMsIDAuMDAwNTk5LCAwLjAwMDYwMiwgMC4wMDA2MDQsIDAuMDAwNjA2IiwgXAotICAgICAgICAgICIwLjAwMDU4OCwgMC4wMDA2MDksIDAuMDAwNjExLCAwLjAwMDYxNCwgMC4wMDA2MTUsIDAuMDAwNjE2LCAwLjAwMDYxNiIsIFwKLSAgICAgICAgICAiMC4wMDA3MjQsIDAuMDAwNjQxLCAwLjAwMDY0LCAwLjAwMDYzNSwgMC4wMDA2MzIsIDAuMDAwNjMsIDAuMDAwNjI4IiwgXAotICAgICAgICAgICIwLjAwMTA1MiwgMC4wMDA3MjcsIDAuMDAwNjk0LCAwLjAwMDY4MSwgMC4wMDA2NjksIDAuMDAwNjYxLCAwLjAwMDY1NSIsIFwKLSAgICAgICAgICAiMC4wMDEzNzYsIDAuMDAwODI0LCAwLjAwMDc2NSwgMC4wMDA3MzcsIDAuMDAwNzEzLCAwLjAwMDY5OCwgMC4wMDA2ODciKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IEFPSTJCQjJYMSAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKEFPSTJCQjJYMSkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjQ0OTMzMjsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQTBOKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2MzM1OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYzMzU7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjMzMzk5OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDUzNiwgMC4wMDA1NDcsIDAuMDAwNjMsIDAuMDAwNzQyLCAwLjAwMDg2OSwgMC4wMDEwOTksIDAuMDAxMjkzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxOTExLCAwLjAwMTkxNCwgMC4wMDE5OTEsIDAuMDAyMDk1LCAwLjAwMjIyNCwgMC4wMDI0NTcsIDAuMDAyNjMyIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihBMU4pICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYzNzQ4OTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2Mzc0ODk7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjM3NDEzOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDU0NywgMC4wMDA1NTQsIDAuMDAwNjMzLCAwLjAwMDczNywgMC4wMDA4NjIsIDAuMDAxMDg1LCAwLjAwMTI3OCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjE5NywgMC4wMDIyLCAwLjAwMjI3LCAwLjAwMjM3MSwgMC4wMDI0OTMsIDAuMDAyNzE5LCAwLjAwMjkwMyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQjApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDkxNTYyMzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA5MTU2MjM7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwOTE0MTAyOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDExLCAwLjAwMDExLCAwLjAwMDExLCAwLjAwMDExMSwgMC4wMDAxMTEsIDAuMDAwMTExLCAwLjAwMDExMSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDExMSwgMC4wMDAxMTEsIDAuMDAwMTExLCAwLjAwMDExMSwgMC4wMDAxMTEsIDAuMDAwMTExLCAwLjAwMDExMSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQjEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDk1MTE3NDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA5NTEwMzY7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwOTUxMTc0OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDExLCAwLjAwMDExLCAwLjAwMDExLCAwLjAwMDExMSwgMC4wMDAxMTEsIDAuMDAwMTExLCAwLjAwMDExMSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDExMSwgMC4wMDAxMTEsIDAuMDAwMTExLCAwLjAwMDExMSwgMC4wMDAxMTEsIDAuMDAwMTExLCAwLjAwMDExMSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjE4NDg3OTsKLSAgICBmdW5jdGlvbiA6ICIoISgoQjAgQjEpKyghKEEwTitBMU4pKSkpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBME4iOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4NzgyOSwgMC4xMjIxMzYsIDAuMzE2MTQxLCAwLjQ4NzUwNiwgMC43MTU3OTYsIDEuMTcyMzEsIDEuNDU2OTMiLCBcCi0gICAgICAgICAgIjAuMDk1Mzk3LCAwLjEyOTY3NSwgMC4zMjM2OTksIDAuNDk0ODQ3LCAwLjcyMjkxNCwgMS4xNzk2OCwgMS40NjU1OSIsIFwKLSAgICAgICAgICAiMC4xMDE1MzgsIDAuMTM1ODQsIDAuMzI5ODg5LCAwLjUwMTUzOCwgMC43MzAwNTksIDEuMTg3MSwgMS40NzEyIiwgXAotICAgICAgICAgICIwLjEwNjI0OSwgMC4xNDA1NywgMC4zMzQ1OTQsIDAuNTA1NzkyLCAwLjczNDEsIDEuMTkwMiwgMS40NzY3OCIsIFwKLSAgICAgICAgICAiMC4xMTAwNCwgMC4xNDQzMTEsIDAuMzM4NDQ5LCAwLjUwOTgwNiwgMC43MzgwNSwgMS4xOTQwNSwgMS40Nzk5OSIsIFwKLSAgICAgICAgICAiMC4xMTUwMTUsIDAuMTQ5Mjk3LCAwLjM0MzI4MywgMC41MTQ3NTIsIDAuNzQyNjM5LCAxLjE5OTIyLCAxLjQ4NDIxIiwgXAotICAgICAgICAgICIwLjExODgzNSwgMC4xNTMwMDEsIDAuMzQ3MDUyLCAwLjUxODI2LCAwLjc0NjU3OCwgMS4yMDI5MSwgMS40ODgwMiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNDMyNjgsIDAuMjE1NzY2LCAwLjYyNjg0NCwgMC45ODk2MzMsIDEuNDcyNywgMi40NDAxNywgMy4wNDQxNCIsIFwKLSAgICAgICAgICAiMC4xNDMyODksIDAuMjE2MDE1LCAwLjYyNzAyMiwgMC45ODk4OTYsIDEuNDczNzYsIDIuNDM5NjUsIDMuMDQ1NjYiLCBcCi0gICAgICAgICAgIjAuMTQzMzA2LCAwLjIxNTkzOCwgMC42MjY5MzUsIDAuOTg5OTEzLCAxLjQ3MzQyLCAyLjQ0MDc5LCAzLjA0MzkyIiwgXAotICAgICAgICAgICIwLjE0MzMxMywgMC4yMTU5MzEsIDAuNjI3MDM1LCAwLjk4OTg1MywgMS40NzM0MSwgMi40NDIwNywgMy4wNDUyMiIsIFwKLSAgICAgICAgICAiMC4xNDMzNTksIDAuMjE1ODQ2LCAwLjYyNjkwOSwgMC45ODk2NjUsIDEuNDczMDQsIDIuNDQxOTYsIDMuMDQzNTUiLCBcCi0gICAgICAgICAgIjAuMTQzMzk4LCAwLjIxNTgyNiwgMC42MjY3OTEsIDAuOTg5NTgzLCAxLjQ3Mzc0LCAyLjQzOTI0LCAzLjA0Mzg0IiwgXAotICAgICAgICAgICIwLjE0MzcyNywgMC4yMTU5MDEsIDAuNjI2OTQ1LCAwLjk4OTU0NCwgMS40NzI1LCAyLjQzODYsIDMuMDQzOTUiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg0NzYyLCAwLjExNjY2NywgMC4yOTY2NzQsIDAuNDU1MTQyLCAwLjY2NjM3OCwgMS4wODg3NiwgMS4zNTI5MSIsIFwKLSAgICAgICAgICAiMC4wOTIxNDUsIDAuMTI0MDQyLCAwLjMwNDA2LCAwLjQ2Mjk4MywgMC42NzQ2MDEsIDEuMDk4MTEsIDEuMzYxNTciLCBcCi0gICAgICAgICAgIjAuMDk4MTUzLCAwLjEzMDA2OCwgMC4zMTAwOTEsIDAuNDY4NzI5LCAwLjY4MDM4NywgMS4xMDQxNSwgMS4zNjc2MSIsIFwKLSAgICAgICAgICAiMC4xMDI1NTEsIDAuMTM0NDUyLCAwLjMxNDYwOCwgMC40NzMzMTIsIDAuNjg0ODIsIDEuMTA3OTIsIDEuMzcxODIiLCBcCi0gICAgICAgICAgIjAuMTA2MDQ0LCAwLjEzNzk0OSwgMC4zMTc5NjEsIDAuNDc2Njc1LCAwLjY4ODQ2NCwgMS4xMTE2LCAxLjM3NTE1IiwgXAotICAgICAgICAgICIwLjExMDY2MiwgMC4xNDI2MjIsIDAuMzIyNTc3LCAwLjQ4MTIxMSwgMC42OTI4MzcsIDEuMTE2MjEsIDEuMzgxMzQiLCBcCi0gICAgICAgICAgIjAuMTE0MTczLCAwLjE0NjA0NiwgMC4zMjYwODcsIDAuNDg0NzcxLCAwLjY5NjM2NSwgMS4xMTkzNSwgMS4zODM0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEzNDkyMSwgMC4xOTk5ODQsIDAuNTY4OTgyLCAwLjg5NDUzLCAxLjMyODU1LCAyLjE5NTIyLCAyLjczODc1IiwgXAotICAgICAgICAgICIwLjEzNDkwOCwgMC4xOTk5NTIsIDAuNTY4OTQ0LCAwLjg5NDg0LCAxLjMyODg5LCAyLjE5NjkyLCAyLjczOTEyIiwgXAotICAgICAgICAgICIwLjEzNTAwMywgMC4yMDAwMTEsIDAuNTY4OTA3LCAwLjg5NDU4NywgMS4zMjg1MywgMi4xOTY3MiwgMi43MzkxMyIsIFwKLSAgICAgICAgICAiMC4xMzUwODQsIDAuMjAwMDY5LCAwLjU2ODk2OSwgMC44OTQ3NTIsIDEuMzI4NywgMi4xOTY5MiwgMi43MzkzIiwgXAotICAgICAgICAgICIwLjEzNTE4MSwgMC4yMDAwODgsIDAuNTY5MDEsIDAuODk0NzMyLCAxLjMyODk2LCAyLjE5NjgyLCAyLjczODY0IiwgXAotICAgICAgICAgICIwLjEzNTMzNywgMC4yMDAyMTEsIDAuNTY5MDgxLCAwLjg5NDYyOCwgMS4zMjg1MywgMi4xOTY5NSwgMi43Mzg5IiwgXAotICAgICAgICAgICIwLjEzNTY2LCAwLjIwMDI0MSwgMC41NjkwNTksIDAuODk0NTU0LCAxLjMyODU0LCAyLjE5NjkyLCAyLjczODc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkExTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg2OTY2LCAwLjEyMTI0NiwgMC4zMTQ5NzIsIDAuNDg2MjQxLCAwLjcxNDE4MywgMS4xNzA1NiwgMS40NTU1OSIsIFwKLSAgICAgICAgICAiMC4wOTQ3MTYsIDAuMTI5MDI1LCAwLjMyMzAwMSwgMC40OTQ0MTMsIDAuNzIyNDA4LCAxLjE3OTkzLCAxLjQ2NTY4IiwgXAotICAgICAgICAgICIwLjEwMTM2MiwgMC4xMzU2ODUsIDAuMzI5OTI3LCAwLjUwMTMzNiwgMC43MjkyNzQsIDEuMTg2MDUsIDEuNDcxMTMiLCBcCi0gICAgICAgICAgIjAuMTA2MzE1LCAwLjE0MDYyMywgMC4zMzQ3NjUsIDAuNTA2MDExLCAwLjczMzk5OCwgMS4xOTAzNCwgMS40NzY1OCIsIFwKLSAgICAgICAgICAiMC4xMTAzNDYsIDAuMTQ0NjQyLCAwLjMzODg4LCAwLjUxMDI4NiwgMC43MzgxNTEsIDEuMTk0MjQsIDEuNDgwNDEiLCBcCi0gICAgICAgICAgIjAuMTE1NjQ4LCAwLjE1MDAyMywgMC4zNDQwMiwgMC41MTUxMjksIDAuNzQ0MDU0LCAxLjE5OTY4LCAxLjQ4NDg1IiwgXAotICAgICAgICAgICIwLjExOTcwMiwgMC4xNTM5OTcsIDAuMzQ3ODcxLCAwLjUxOTExNywgMC43NDc0MDEsIDEuMjA0MDQsIDEuNDkwNDEiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTQwMzE3LCAwLjIxMjkyMiwgMC42MjMzOTksIDAuOTg2MjczLCAxLjQ2ODY5LCAyLjQzNjg1LCAzLjA0MzgyIiwgXAotICAgICAgICAgICIwLjE0MDI1MSwgMC4yMTI4MywgMC42MjM3NzEsIDAuOTg2NTU2LCAxLjQ3MDQ2LCAyLjQzNzUxLCAzLjA0MTYyIiwgXAotICAgICAgICAgICIwLjE0MDI3NCwgMC4yMTI5MzgsIDAuNjIzODg5LCAwLjk4NjY2NywgMS40NzAyOCwgMi40MzcwOCwgMy4wNDAwMiIsIFwKLSAgICAgICAgICAiMC4xNDAzMTcsIDAuMjEyODcxLCAwLjYyMzc0OSwgMC45ODYzMTUsIDEuNDY5NTEsIDIuNDM4MDcsIDMuMDQxNDgiLCBcCi0gICAgICAgICAgIjAuMTQwNDA3LCAwLjIxMjgzMiwgMC42MjM3NTYsIDAuOTg2NTU3LCAxLjQ2OTU0LCAyLjQzODk5LCAzLjA0MTIyIiwgXAotICAgICAgICAgICIwLjE0MDQ2MywgMC4yMTI4ODcsIDAuNjIzNzA0LCAwLjk4NjI1MywgMS40NzAxMiwgMi40MzYxMiwgMy4wNDAzMyIsIFwKLSAgICAgICAgICAiMC4xNDA4NjgsIDAuMjEyODA4LCAwLjYyNDAwNCwgMC45ODYzNTYsIDEuNDcwNDYsIDIuNDM3NDEsIDMuMDQxODEiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg0NTU3LCAwLjExNjQ2OSwgMC4yOTY1MTksIDAuNDU1MDIyLCAwLjY2NjQyMSwgMS4wODkzNCwgMS4zNTM1MyIsIFwKLSAgICAgICAgICAiMC4wOTIwMSwgMC4xMjM5MSwgMC4zMDM5MDEsIDAuNDYyNTMyLCAwLjY3Mzk2NCwgMS4wOTc0NiwgMS4zNjIyNiIsIFwKLSAgICAgICAgICAiMC4wOTg3NjIsIDAuMTMwNjcsIDAuMzEwNjUyLCAwLjQ2OTMwNCwgMC42ODA3NDEsIDEuMTAzODksIDEuMzY4MzQiLCBcCi0gICAgICAgICAgIjAuMTAzNTk5LCAwLjEzNTQ3NywgMC4zMTU1NjUsIDAuNDc0MTk5LCAwLjY4NTYyMiwgMS4xMDgzNCwgMS4zNzM4IiwgXAotICAgICAgICAgICIwLjEwNzQ3NywgMC4xMzkzMzMsIDAuMzE5MjkyLCAwLjQ3NzkxOSwgMC42ODk3NjUsIDEuMTEyMjQsIDEuMzc3NCIsIFwKLSAgICAgICAgICAiMC4xMTIzNDYsIDAuMTQ0NTYzLCAwLjMyNDUxNiwgMC40ODI4MDksIDAuNjk0NDg1LCAxLjExNzU2LCAxLjM4MTI1IiwgXAotICAgICAgICAgICIwLjExNjQ3MiwgMC4xNDg0MDksIDAuMzI4MzExLCAwLjQ4NjY3OSwgMC42OTgyMDQsIDEuMTIyMSwgMS4zODYxOCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMzQ5MjYsIDAuMTk5OTkxLCAwLjU2ODk4OCwgMC44OTQ3NDEsIDEuMzI4ODIsIDIuMTk2OTEsIDIuNzM4OCIsIFwKLSAgICAgICAgICAiMC4xMzQ5MzksIDAuMTk5OTQ4LCAwLjU2ODk5NiwgMC44OTQ1NDEsIDEuMzI5MTYsIDIuMTk2ODYsIDIuNzM4NTgiLCBcCi0gICAgICAgICAgIjAuMTM1MTA5LCAwLjIwMDAwMywgMC41NjkwNCwgMC44OTQ0NTYsIDEuMzI4OTQsIDIuMTk2OTEsIDIuNzM5MTMiLCBcCi0gICAgICAgICAgIjAuMTM1Mjk2LCAwLjIwMDE2NSwgMC41Njg5MDUsIDAuODk0ODIsIDEuMzI4NSwgMi4xOTY5NSwgMi43Mzg5MyIsIFwKLSAgICAgICAgICAiMC4xMzU0ODIsIDAuMjAwMjYsIDAuNTY5MDI4LCAwLjg5NDgxMiwgMS4zMjg5LCAyLjE5NjkzLCAyLjczODc1IiwgXAotICAgICAgICAgICIwLjEzNTgzMywgMC4yMDA0MDIsIDAuNTY5MTEyLCAwLjg5NDQ4NiwgMS4zMjg2MywgMi4xOTY3OCwgMi43Mzg3NiIsIFwKLSAgICAgICAgICAiMC4xMzYyNCwgMC4yMDA1OTMsIDAuNTY5MTE5LCAwLjg5NDU5MiwgMS4zMjg1NCwgMi4xOTY5OSwgMi43Mzg5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzA2MjUsIDAuMTA0OTYsIDAuMjk5MTQzLCAwLjQ2OTk3LCAwLjY5ODY5OSwgMS4xNTU4LCAxLjQ0MDE2IiwgXAotICAgICAgICAgICIwLjA3ODE0LCAwLjExMjQyNSwgMC4zMDY2NDQsIDAuNDc4MTY2LCAwLjcwNjIzOSwgMS4xNjI5NiwgMS40NDgiLCBcCi0gICAgICAgICAgIjAuMDg3NjkxLCAwLjEyMTk0MSwgMC4zMTU5LCAwLjQ4NjY4NCwgMC43MTYxNDEsIDEuMTcyNTEsIDEuNDU2NDQiLCBcCi0gICAgICAgICAgIjAuMDk3NTY3LCAwLjEzMTc0NiwgMC4zMjU2MjMsIDAuNDk2ODEzLCAwLjcyNDk1OCwgMS4xODEzLCAxLjQ2NyIsIFwKLSAgICAgICAgICAiMC4xMDc1NjcsIDAuMTQxNTk3LCAwLjMzNTM3NiwgMC41MDY2NTksIDAuNzM1MDM3LCAxLjE5MTMsIDEuNDc3MTEiLCBcCi0gICAgICAgICAgIjAuMTIyNzA4LCAwLjE1NzQ2NywgMC4zNTA5MDUsIDAuNTIxOTkzLCAwLjc0OTkzOSwgMS4yMDY0OSwgMS40OTMyMiIsIFwKLSAgICAgICAgICAiMC4xMzM5OTcsIDAuMTcxNTAyLCAwLjM2NDQ3LCAwLjUzNTM2NSwgMC43NjM4NTQsIDEuMjE5NzIsIDEuNTA1NDgiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTQzMjYzLCAwLjIxNTkzNCwgMC42MjcwNTQsIDAuOTg5NTU3LCAxLjQ3MywgMi40NDAyNSwgMy4wNDM4NCIsIFwKLSAgICAgICAgICAiMC4xNDMxMjQsIDAuMjE1ODgzLCAwLjYyNzA0NywgMC45ODk5MTgsIDEuNDczNTQsIDIuNDM5OTQsIDMuMDQzNTgiLCBcCi0gICAgICAgICAgIjAuMTQ2MjQ3LCAwLjIxNjc1MywgMC42MjY5NjMsIDAuOTg5MTg4LCAxLjQ3MzczLCAyLjQ0MDYzLCAzLjA0NDM1IiwgXAotICAgICAgICAgICIwLjE1MjA2NiwgMC4yMjA1ODcsIDAuNjI2OTI2LCAwLjk4OTg1LCAxLjQ3MjU1LCAyLjQ0MTQ1LCAzLjA0NDI2IiwgXAotICAgICAgICAgICIwLjE1OTI3MiwgMC4yMjYwOTIsIDAuNjI2OTMzLCAwLjk4OTQ5MywgMS40NzI4MiwgMi40NDAxNCwgMy4wNDQ4OSIsIFwKLSAgICAgICAgICAiMC4xNzIyNjUsIDAuMjM3MTM5LCAwLjYyOTUzNywgMC45ODkzNSwgMS40NzM2OCwgMi40MzkyOSwgMy4wNDQ2NyIsIFwKLSAgICAgICAgICAiMC4xODQ1MDksIDAuMjQ4MzI4LCAwLjYzNDA5NSwgMC45OTA2LCAxLjQ3MzMxLCAyLjQzOTYsIDMuMDQ1MTgiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY0NDc3LCAwLjA5NjM2NywgMC4yNzY0ODIsIDAuNDM0OTk1LCAwLjY0NjMwMiwgMS4wNjkyMSwgMS4zMzQwNiIsIFwKLSAgICAgICAgICAiMC4wNzExNzUsIDAuMTAzMTQsIDAuMjgzMzkxLCAwLjQ0MTg3NiwgMC42NTMxNSwgMS4wNzU2OCwgMS4zNDA1NSIsIFwKLSAgICAgICAgICAiMC4wNzk0MDIsIDAuMTExMzIzLCAwLjI5MTY5OCwgMC40NTAyODQsIDAuNjYxNTIxLCAxLjA4NDA3LCAxLjM0ODY0IiwgXAotICAgICAgICAgICIwLjA4NzU4NSwgMC4xMTk1NjIsIDAuMzAwMTQxLCAwLjQ1ODc1OSwgMC42NzAwNSwgMS4wOTI1OCwgMS4zNTc1IiwgXAotICAgICAgICAgICIwLjA5NTgzNCwgMC4xMjc5ODQsIDAuMzA4NDYzLCAwLjQ2NzE0MSwgMC42Nzg0NTcsIDEuMTAwOTgsIDEuMzY1MDUiLCBcCi0gICAgICAgICAgIjAuMTA3MTEsIDAuMTQxMTI1LCAwLjMyMTkyOSwgMC40ODA1NTcsIDAuNjkxOTA5LCAxLjExNDUsIDEuMzc4NTYiLCBcCi0gICAgICAgICAgIjAuMTE2MTQsIDAuMTUxOTI1LCAwLjMzMzE2NiwgMC40OTIzMzIsIDAuNzAzNzg0LCAxLjEyNjMzLCAxLjM5MDMxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEyNTI0MSwgMC4xOTAyODMsIDAuNTU4OTkzLCAwLjg4NDM1NywgMS4zMTg0MywgMi4xODU4LCAyLjc0MTE2IiwgXAotICAgICAgICAgICIwLjEyNTM0OCwgMC4xOTAyNzksIDAuNTU5MDI1LCAwLjg4NDM1MSwgMS4zMTg1MywgMi4xODgzNCwgMi43Mjk0OCIsIFwKLSAgICAgICAgICAiMC4xMjc4MTUsIDAuMTkxMjQ2LCAwLjU1OTAzMiwgMC44ODQzOTMsIDEuMzIxNTQsIDIuMTg3LCAyLjcyODY2IiwgXAotICAgICAgICAgICIwLjEzMjE1NSwgMC4xOTQxNTIsIDAuNTU5MDI5LCAwLjg4NDM1OCwgMS4zMTgyLCAyLjE5NDE5LCAyLjcyOTgzIiwgXAotICAgICAgICAgICIwLjEzNzY3NiwgMC4xOTg1MDMsIDAuNTU5MzQ1LCAwLjg4NDU2NiwgMS4zMTg2OSwgMi4xOTQxOCwgMi43MzkxOCIsIFwKLSAgICAgICAgICAiMC4xNDczMDEsIDAuMjA2NzgxLCAwLjU2MTk5MiwgMC44ODQ0MzcsIDEuMzE4NzUsIDIuMTg2MDQsIDIuNzI5NDEiLCBcCi0gICAgICAgICAgIjAuMTU2Nzg3LCAwLjIxNDgzMywgMC41NjUyMjcsIDAuODg1NTQsIDEuMzE4NTUsIDIuMTg1ODgsIDIuNzM5NDUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2ODQ2MiwgMC4xMDI3MzksIDAuMjk2ODc5LCAwLjQ2Nzg5MywgMC42OTYyNTIsIDEuMTUzMDMsIDEuNDM3OTEiLCBcCi0gICAgICAgICAgIjAuMDc1OTI3LCAwLjExMDIzMywgMC4zMDQyNDcsIDAuNDc1NDA5LCAwLjcwMzgwMSwgMS4xNjAzMywgMS40NDYyMiIsIFwKLSAgICAgICAgICAiMC4wODU0NDksIDAuMTE5NzE5LCAwLjMxMzcxMywgMC40ODUxMjgsIDAuNzEzMTczLCAxLjE3MDI4LCAxLjQ1NDIxIiwgXAotICAgICAgICAgICIwLjA5NTI4MSwgMC4xMjk0NzIsIDAuMzIzNDg2LCAwLjQ5NDYxMSwgMC43MjI3NTEsIDEuMTc5MDUsIDEuNDY0NzgiLCBcCi0gICAgICAgICAgIjAuMTA1MjU2LCAwLjEzOTMxOCwgMC4zMzMzMjEsIDAuNTA0NDU4LCAwLjczMjM2OCwgMS4xODg5NywgMS40NzQyIiwgXAotICAgICAgICAgICIwLjEyMDA5OCwgMC4xNTUxMjMsIDAuMzQ4NjM0LCAwLjUxOTgxOSwgMC43NDc3MzksIDEuMjA0MzgsIDEuNDkxMDEiLCBcCi0gICAgICAgICAgIjAuMTMxMzY0LCAwLjE2OTA1MiwgMC4zNjIxODMsIDAuNTMzMTc3LCAwLjc2MTQzNSwgMS4yMTc0OSwgMS41MDMxNyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNDAzMTcsIDAuMjEyODY2LCAwLjYyMzk4LCAwLjk4NjU1MywgMS40Njk3MSwgMi40MzY5NiwgMy4wNDAzMiIsIFwKLSAgICAgICAgICAiMC4xNDAxMiwgMC4yMTI4OTUsIDAuNjIzODE0LCAwLjk4NjE4NCwgMS40Njk3OSwgMi40MzcwMiwgMy4wNDE1NyIsIFwKLSAgICAgICAgICAiMC4xNDM0MDgsIDAuMjEzNzYyLCAwLjYyMzk4NiwgMC45ODY1NjYsIDEuNDcwNCwgMi40MzcyLCAzLjA0MDg2IiwgXAotICAgICAgICAgICIwLjE0OTM1OSwgMC4yMTc2NjIsIDAuNjIzNjM3LCAwLjk4NjYyOCwgMS40Njk1MSwgMi40Mzc5OCwgMy4wNDAxMSIsIFwKLSAgICAgICAgICAiMC4xNTY3MTksIDAuMjIzMzQyLCAwLjYyMzk2OSwgMC45ODYzMSwgMS40Njk0OSwgMi40Mzc3NiwgMy4wNDA4MiIsIFwKLSAgICAgICAgICAiMC4xNjk4NDgsIDAuMjM0NDgyLCAwLjYyNjQyOCwgMC45ODYxMzcsIDEuNDcwNDIsIDIuNDM3NzUsIDMuMDQxMzgiLCBcCi0gICAgICAgICAgIjAuMTgyMjY1LCAwLjI0NTczNSwgMC42MzEwMywgMC45ODcyNzMsIDEuNDcwMDIsIDIuNDM2MiwgMy4wNDE0MyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjI5NTcsIDAuMDk0ODMzLCAwLjI3NDk2NSwgMC40MzM1MDcsIDAuNjQ0NzY1LCAxLjA2NzM0LCAxLjMzMTYiLCBcCi0gICAgICAgICAgIjAuMDcwNTQ5LCAwLjEwMjQ4MSwgMC4yODI2MzgsIDAuNDQxMTYsIDAuNjUyNDk5LCAxLjA3NTIsIDEuMzM5MDciLCBcCi0gICAgICAgICAgIjAuMDgwMjIsIDAuMTEyMTA5LCAwLjI5MjI1MiwgMC40NTA3NjcsIDAuNjYyMDU1LCAxLjA4NTMsIDEuMzQ4NzMiLCBcCi0gICAgICAgICAgIjAuMDkwMTQ5LCAwLjEyMTkzNiwgMC4zMDE5ODIsIDAuNDYwNTA4LCAwLjY3MTc0OSwgMS4wOTQyOSwgMS4zNTg0OCIsIFwKLSAgICAgICAgICAiMC4xMDAxMjgsIDAuMTMxODU2LCAwLjMxMTc0OSwgMC40NzAyMjMsIDAuNjgxNDMyLCAxLjEwNDQ0LCAxLjM2ODUiLCBcCi0gICAgICAgICAgIjAuMTE0NTM4LCAwLjE0Nzg5OSwgMC4zMjc0ODEsIDAuNDg1MzYzLCAwLjY5NzA2NCwgMS4xMjAxNiwgMS4zODM1NSIsIFwKLSAgICAgICAgICAiMC4xMjUzMTksIDAuMTYxNTE1LCAwLjM0MTIwNCwgMC40OTk1NzMsIDAuNzEwNzA4LCAxLjEzMzM3LCAxLjM5ODM5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEyNTI1NCwgMC4xOTAyNzcsIDAuNTU5MDIzLCAwLjg4NDQxNCwgMS4zMTg1MSwgMi4xODY3NCwgMi43Mjg3NiIsIFwKLSAgICAgICAgICAiMC4xMjUzNzgsIDAuMTkwMjg4LCAwLjU1OTAyNSwgMC44ODQyOTksIDEuMzE4NTksIDIuMTg2MzksIDIuNzMwMzYiLCBcCi0gICAgICAgICAgIjAuMTI5MDUzLCAwLjE5MTY2NCwgMC41NTkwNjEsIDAuODg0MzUxLCAxLjMxODIzLCAyLjE4NTkzLCAyLjcyODExIiwgXAotICAgICAgICAgICIwLjEzNTMyNywgMC4xOTU5NjMsIDAuNTU5MDI5LCAwLjg4NDM0NSwgMS4zMjE2OCwgMi4xODY4OSwgMi43Mjg5IiwgXAotICAgICAgICAgICIwLjE0Mjg2OSwgMC4yMDIwMDUsIDAuNTU5MzQ2LCAwLjg4NDU0MywgMS4zMTgyLCAyLjE4NTkxLCAyLjczMTMxIiwgXAotICAgICAgICAgICIwLjE1NjQ1MiwgMC4yMTM1MTksIDAuNTYyNjUxLCAwLjg4NDM3NywgMS4zMjE2NywgMi4xODU5NywgMi43Mzk3NiIsIFwKLSAgICAgICAgICAiMC4xNjkwMzUsIDAuMjI0Nzg4LCAwLjU2NzY3LCAwLjg4NTY2OCwgMS4zMTg4LCAyLjE4Njk1LCAyLjcyOTU3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTBOIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDM5NjUsIDAuMDAzOTY2LCAwLjAwMzk2NywgMC4wMDM5NjcsIDAuMDAzOTY2LCAwLjAwMzk2NiwgMC4wMDM5NjYiLCBcCi0gICAgICAgICAgIjAuMDAzOTc5LCAwLjAwMzk4MSwgMC4wMDM5ODQsIDAuMDAzOTg1LCAwLjAwMzk4NCwgMC4wMDM5ODQsIDAuMDAzOTg0IiwgXAotICAgICAgICAgICIwLjAwNDA1NSwgMC4wMDQwNTgsIDAuMDA0MDYzLCAwLjAwNDA2MywgMC4wMDQwNjMsIDAuMDA0MDYzLCAwLjAwNDA2MyIsIFwKLSAgICAgICAgICAiMC4wMDQxNTksIDAuMDA0MTYzLCAwLjAwNDE2OCwgMC4wMDQxNjksIDAuMDA0MTY5LCAwLjAwNDE2OSwgMC4wMDQxNjkiLCBcCi0gICAgICAgICAgIjAuMDA0Mjg1LCAwLjAwNDI4OSwgMC4wMDQyOTQsIDAuMDA0Mjk1LCAwLjAwNDI5NSwgMC4wMDQyOTMsIDAuMDA0MjkzIiwgXAotICAgICAgICAgICIwLjAwNDUxLCAwLjAwNDUxNSwgMC4wMDQ1MjIsIDAuMDA0NTI0LCAwLjAwNDUyNCwgMC4wMDQ1MjUsIDAuMDA0NTI0IiwgXAotICAgICAgICAgICIwLjAwNDY5OSwgMC4wMDQ3MTksIDAuMDA0NzI2LCAwLjAwNDcyOCwgMC4wMDQ3MTUsIDAuMDA0NzE0LCAwLjAwNDczIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzOTMyLCAwLjAwMzkzNCwgMC4wMDM5MzYsIDAuMDAzOTM2LCAwLjAwMzkzNiwgMC4wMDM5MzUsIDAuMDAzOTM1IiwgXAotICAgICAgICAgICIwLjAwMzkzNCwgMC4wMDM5MzgsIDAuMDAzOTQzLCAwLjAwMzk0NSwgMC4wMDM5NDUsIDAuMDAzOTQ1LCAwLjAwMzk0NCIsIFwKLSAgICAgICAgICAiMC4wMDQwMTEsIDAuMDA0MDE3LCAwLjAwNDAyNSwgMC4wMDQwMjYsIDAuMDA0MDI3LCAwLjAwNDAyNywgMC4wMDQwMjciLCBcCi0gICAgICAgICAgIjAuMDA0MTExLCAwLjAwNDExNywgMC4wMDQxMjcsIDAuMDA0MTI5LCAwLjAwNDEzLCAwLjAwNDEzLCAwLjAwNDEzIiwgXAotICAgICAgICAgICIwLjAwNDIzNiwgMC4wMDQyNDMsIDAuMDA0MjU1LCAwLjAwNDI1NywgMC4wMDQyNTksIDAuMDA0MjU5LCAwLjAwNDI1MiIsIFwKLSAgICAgICAgICAiMC4wMDQ0NDcsIDAuMDA0NDU2LCAwLjAwNDQ3LCAwLjAwNDQ3MiwgMC4wMDQ0NjQsIDAuMDA0NDc1LCAwLjAwNDQ3NSIsIFwKLSAgICAgICAgICAiMC4wMDQ2MzIsIDAuMDA0NjUsIDAuMDA0NjU3LCAwLjAwNDY2OSwgMC4wMDQ2NjIsIDAuMDA0NjYzLCAwLjAwNDY2MyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkExTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzNzYsIDAuMDAzNzY0LCAwLjAwMzc2OCwgMC4wMDM3NjksIDAuMDAzNzY5LCAwLjAwMzc2OSwgMC4wMDM3NjkiLCBcCi0gICAgICAgICAgIjAuMDAzNzU2LCAwLjAwMzc2MiwgMC4wMDM3NzEsIDAuMDAzNzcyLCAwLjAwMzc3NCwgMC4wMDM3NzQsIDAuMDAzNzczIiwgXAotICAgICAgICAgICIwLjAwMzgzMSwgMC4wMDM4NCwgMC4wMDM4NTIsIDAuMDAzODU0LCAwLjAwMzg1NiwgMC4wMDM4NTYsIDAuMDAzODU3IiwgXAotICAgICAgICAgICIwLjAwMzkzLCAwLjAwMzk0LCAwLjAwMzk1NSwgMC4wMDM5NTksIDAuMDAzOTYsIDAuMDAzOTYyLCAwLjAwMzk2MSIsIFwKLSAgICAgICAgICAiMC4wMDQwNTMsIDAuMDA0MDY0LCAwLjAwNDA3MywgMC4wMDQwODYsIDAuMDA0MDg4LCAwLjAwNDA5LCAwLjAwNDA5IiwgXAotICAgICAgICAgICIwLjAwNDI1MSwgMC4wMDQyNzQsIDAuMDA0Mjk1LCAwLjAwNDI5LCAwLjAwNDMwMywgMC4wMDQzMDUsIDAuMDA0Mjk1IiwgXAotICAgICAgICAgICIwLjAwNDQ2LCAwLjAwNDQ3MSwgMC4wMDQ0ODEsIDAuMDA0NDg1LCAwLjAwNDUwMiwgMC4wMDQ1MDYsIDAuMDA0NTA2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzOTQ1LCAwLjAwMzk0OCwgMC4wMDM5NTEsIDAuMDAzOTUxLCAwLjAwMzk1MiwgMC4wMDM5NTEsIDAuMDAzOTUxIiwgXAotICAgICAgICAgICIwLjAwMzk1NSwgMC4wMDM5NTksIDAuMDAzOTY0LCAwLjAwMzk2NSwgMC4wMDM5NjUsIDAuMDAzOTY1LCAwLjAwMzk2NCIsIFwKLSAgICAgICAgICAiMC4wMDQwMTUsIDAuMDA0MDIxLCAwLjAwNDAzLCAwLjAwNDAzMSwgMC4wMDQwMzIsIDAuMDA0MDMzLCAwLjAwNDAzMiIsIFwKLSAgICAgICAgICAiMC4wMDQxMTUsIDAuMDA0MTIxLCAwLjAwNDEzMSwgMC4wMDQxMzMsIDAuMDA0MTM0LCAwLjAwNDEzNSwgMC4wMDQxMzQiLCBcCi0gICAgICAgICAgIjAuMDA0MjMyLCAwLjAwNDIzOCwgMC4wMDQyNDgsIDAuMDA0MjUxLCAwLjAwNDI1MiwgMC4wMDQyNTMsIDAuMDA0MjUyIiwgXAotICAgICAgICAgICIwLjAwNDQzOSwgMC4wMDQ0NDgsIDAuMDA0NDYxLCAwLjAwNDQ1NywgMC4wMDQ0NTgsIDAuMDA0NDU4LCAwLjAwNDQ1OCIsIFwKLSAgICAgICAgICAiMC4wMDQ2MzYsIDAuMDA0NjQyLCAwLjAwNDY1NSwgMC4wMDQ2NDQsIDAuMDA0NjQ2LCAwLjAwNDY2LCAwLjAwNDY2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjgzNywgMC4wMDI4MzgsIDAuMDAyODQsIDAuMDAyODQxLCAwLjAwMjg0LCAwLjAwMjgzOSwgMC4wMDI4MzkiLCBcCi0gICAgICAgICAgIjAuMDAyODI1LCAwLjAwMjgyOSwgMC4wMDI4MzMsIDAuMDAyODM0LCAwLjAwMjgzNCwgMC4wMDI4MzQsIDAuMDAyODM0IiwgXAotICAgICAgICAgICIwLjAwMjg0NywgMC4wMDI4NDQsIDAuMDAyODM5LCAwLjAwMjgzNywgMC4wMDI4MzcsIDAuMDAyODM1LCAwLjAwMjgzNCIsIFwKLSAgICAgICAgICAiMC4wMDI4ODEsIDAuMDAyODY5LCAwLjAwMjg0OSwgMC4wMDI4NDQsIDAuMDAyODQxLCAwLjAwMjgzNywgMC4wMDI4MzYiLCBcCi0gICAgICAgICAgIjAuMDAyOTMzLCAwLjAwMjkwNiwgMC4wMDI4NjcsIDAuMDAyODU2LCAwLjAwMjg0OSwgMC4wMDI4NDIsIDAuMDAyODM5IiwgXAotICAgICAgICAgICIwLjAwMzA0NiwgMC4wMDI5OTIsIDAuMDAyOTA1LCAwLjAwMjg4NCwgMC4wMDI4NywgMC4wMDI4NTUsIDAuMDAyODUiLCBcCi0gICAgICAgICAgIjAuMDAzMTYzLCAwLjAwMzA4MSwgMC4wMDI5NDksIDAuMDAyOTEyLCAwLjAwMjg5MiwgMC4wMDI4NjcsIDAuMDAyODYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDA1NDEsIDAuMDAwNTQ1LCAwLjAwMDU1MSwgMC4wMDA1NTIsIDAuMDAwNTUyLCAwLjAwMDU1MywgMC4wMDA1NTMiLCBcCi0gICAgICAgICAgIjAuMDAwNTIzLCAwLjAwMDUzOSwgMC4wMDA1NjIsIDAuMDAwNTY3LCAwLjAwMDU3LCAwLjAwMDU3MiwgMC4wMDA1NzMiLCBcCi0gICAgICAgICAgIjAuMDAwNTA2LCAwLjAwMDUyNSwgMC4wMDA1NTgsIDAuMDAwNTY1LCAwLjAwMDU3LCAwLjAwMDU3MywgMC4wMDA1NzQiLCBcCi0gICAgICAgICAgIjAuMDAwNTEyLCAwLjAwMDUyNywgMC4wMDA1NTcsIDAuMDAwNTY1LCAwLjAwMDU3LCAwLjAwMDU3NCwgMC4wMDA1NzUiLCBcCi0gICAgICAgICAgIjAuMDAwNTM3LCAwLjAwMDU0MywgMC4wMDA1NjIsIDAuMDAwNTY4LCAwLjAwMDU3MiwgMC4wMDA1NzYsIDAuMDAwNTc3IiwgXAotICAgICAgICAgICIwLjAwMDYwMiwgMC4wMDA1ODksIDAuMDAwNTgxLCAwLjAwMDU4MSwgMC4wMDA1ODEsIDAuMDAwNTgxLCAwLjAwMDU4MSIsIFwKLSAgICAgICAgICAiMC4wMDA2OSwgMC4wMDA2NDksIDAuMDAwNjA1LCAwLjAwMDYwMSwgMC4wMDA1OTUsIDAuMDAwNTksIDAuMDAwNTg4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjM0MSwgMC4wMDIzNDUsIDAuMDAyMzQ5LCAwLjAwMjM1LCAwLjAwMjM1LCAwLjAwMjM1MSwgMC4wMDIzNSIsIFwKLSAgICAgICAgICAiMC4wMDIzMjYsIDAuMDAyMzM1LCAwLjAwMjM0OCwgMC4wMDIzNTEsIDAuMDAyMzUyLCAwLjAwMjM1MywgMC4wMDIzNTMiLCBcCi0gICAgICAgICAgIjAuMDAyMzM2LCAwLjAwMjM0MiwgMC4wMDIzNSwgMC4wMDIzNTIsIDAuMDAyMzUyLCAwLjAwMjM1MywgMC4wMDIzNTQiLCBcCi0gICAgICAgICAgIjAuMDAyMzYyLCAwLjAwMjM1OSwgMC4wMDIzNTcsIDAuMDAyMzU2LCAwLjAwMjM1NiwgMC4wMDIzNTUsIDAuMDAyMzU1IiwgXAotICAgICAgICAgICIwLjAwMjQwOCwgMC4wMDIzODksIDAuMDAyMzcyLCAwLjAwMjM2NiwgMC4wMDIzNjIsIDAuMDAyMzU5LCAwLjAwMjM1OCIsIFwKLSAgICAgICAgICAiMC4wMDI1MTUsIDAuMDAyNDY4LCAwLjAwMjQwMywgMC4wMDIzOTEsIDAuMDAyMzgsIDAuMDAyMzcxLCAwLjAwMjM2NyIsIFwKLSAgICAgICAgICAiMC4wMDI2MjksIDAuMDAyNTUxLCAwLjAwMjQ0MywgMC4wMDI0MTksIDAuMDAyMzk3LCAwLjAwMjM4LCAwLjAwMjM3NiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDUzOSwgMC4wMDA1NDQsIDAuMDAwNTUxLCAwLjAwMDU1MiwgMC4wMDA1NTIsIDAuMDAwNTUzLCAwLjAwMDU1MyIsIFwKLSAgICAgICAgICAiMC4wMDA1MzQsIDAuMDAwNTQ2LCAwLjAwMDU2NSwgMC4wMDA1NjksIDAuMDAwNTcxLCAwLjAwMDU3MywgMC4wMDA1NzMiLCBcCi0gICAgICAgICAgIjAuMDAwNTQsIDAuMDAwNTUxLCAwLjAwMDU2OCwgMC4wMDA1NzIsIDAuMDAwNTc0LCAwLjAwMDU3NiwgMC4wMDA1NzciLCBcCi0gICAgICAgICAgIjAuMDAwNTY1LCAwLjAwMDU2OCwgMC4wMDA1NzUsIDAuMDAwNTc3LCAwLjAwMDU3OCwgMC4wMDA1NzksIDAuMDAwNTc5IiwgXAotICAgICAgICAgICIwLjAwMDYxNSwgMC4wMDA2MDIsIDAuMDAwNTkxLCAwLjAwMDU4NywgMC4wMDA1ODUsIDAuMDAwNTg0LCAwLjAwMDU4MyIsIFwKLSAgICAgICAgICAiMC4wMDA3MjYsIDAuMDAwNjgsIDAuMDAwNjIyLCAwLjAwMDYxMSwgMC4wMDA2MDMsIDAuMDAwNTk1LCAwLjAwMDU5MiIsIFwKLSAgICAgICAgICAiMC4wMDA4NTcsIDAuMDAwNzcxLCAwLjAwMDY2NCwgMC4wMDA2NDIsIDAuMDAwNjI0LCAwLjAwMDYwOCwgMC4wMDA2MDMiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IEFPSTJCQjJYNCAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKEFPSTJCQjJYNCkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAxLjQ1Nzk1OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBME4pICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDkyNzUwNTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA5Mjc1MDU7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwOTI3NDExOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjIzLCAwLjAwMjIwNCwgMC4wMDIyODUsIDAuMDAyMzksIDAuMDAyNTMyLCAwLjAwMjgwMSwgMC4wMDMwNDEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDUxMiwgMC4wMDUxMTMsIDAuMDA1MTQ2LCAwLjAwNTI0OSwgMC4wMDUzNzQsIDAuMDA1NjYxLCAwLjAwNTkyOSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQTFOKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA5NTgyNDE7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwOTU4MTQ2OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDk1ODI0MTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDIyMzIsIDAuMDAyMjA3LCAwLjAwMjI4MiwgMC4wMDIzOTMsIDAuMDAyNTMsIDAuMDAyNzkxLCAwLjAwMzAzNyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNTMyMiwgMC4wMDUzMTMsIDAuMDA1MzQ5LCAwLjAwNTQ1NCwgMC4wMDU1NzMsIDAuMDA1ODYsIDAuMDA2MTIxIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAzNTcwOTg7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAzNTcwOTg7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAzNTY0OTc7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNDQ0LCAwLjAwMDQ0NCwgMC4wMDA0NDQsIDAuMDAwNDQ0LCAwLjAwMDQ0NCwgMC4wMDA0NDUsIDAuMDAwNDQ1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNDUxLCAwLjAwMDQ1MSwgMC4wMDA0NSwgMC4wMDA0NSwgMC4wMDA0NSwgMC4wMDA0NTEsIDAuMDAwNDUxIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCMSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAzMzIxNzk7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAzMzIxMjk7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAzMzIxNzk7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNDQ0LCAwLjAwMDQ0NCwgMC4wMDA0NDQsIDAuMDAwNDQ0LCAwLjAwMDQ0NSwgMC4wMDA0NDUsIDAuMDAwNDQ1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNDUsIDAuMDAwNDUsIDAuMDAwNDUsIDAuMDAwNDUsIDAuMDAwNDUsIDAuMDAwNDUsIDAuMDAwNDUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC43MjQ5OTk7Ci0gICAgZnVuY3Rpb24gOiAiKCEoKEIwIEIxKSsoIShBME4rQTFOKSkpKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTBOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1Mjc1NywgMC4xNTM3NTEsIDAuMjU0Mzk5LCAwLjMyNjYyNCwgMC40NDMwNTQsIDAuNTQ0NzU4LCAwLjY5MDI0NiIsIFwKLSAgICAgICAgICAiMC4wNjEwNzIsIDAuMTYyMDc1LCAwLjI2MjU4MSwgMC4zMzQ5MywgMC40NTExMzIsIDAuNTUyNzExLCAwLjY5ODY3OCIsIFwKLSAgICAgICAgICAiMC4wNzAxMzYsIDAuMTcxMjA3LCAwLjI3MTg1MywgMC4zNDQ1NjcsIDAuNDYwNTIyLCAwLjU2MjE5OCwgMC43MDc4OTUiLCBcCi0gICAgICAgICAgIjAuMDc3MTU2LCAwLjE3ODIzNywgMC4yNzkwMDUsIDAuMzUxMzU3LCAwLjQ2Nzc5NCwgMC41Njk0MzIsIDAuNzE0NjIxIiwgXAotICAgICAgICAgICIwLjA4Mjg1OCwgMC4xODM5NywgMC4yODQ2NDEsIDAuMzU3MjY4LCAwLjQ3MzY5OSwgMC41NzUwNjYsIDAuNzIwMjI1IiwgXAotICAgICAgICAgICIwLjA5MDQ1NywgMC4xOTE3MzksIDAuMjkyMzgzLCAwLjM2NDgyOCwgMC40ODEyNDksIDAuNTgyODE5LCAwLjcyODEwMyIsIFwKLSAgICAgICAgICAiMC4wOTYyNzUsIDAuMTk3NDU4LCAwLjI5ODE0NSwgMC4zNzA1NTUsIDAuNDg2OTgsIDAuNTg4NTk0LCAwLjczMzcyIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDUyODQ2LCAwLjI2NTg3MywgMC40ODE4ODgsIDAuNjM1ODY2LCAwLjg4MjkyMiwgMS4wOTg3OCwgMS40MDc1MiIsIFwKLSAgICAgICAgICAiMC4wNTI4NDgsIDAuMjY1ODc4LCAwLjQ4MTgyMSwgMC42MzU0OTIsIDAuODgzMDM0LCAxLjA5ODc5LCAxLjQwNzkxIiwgXAotICAgICAgICAgICIwLjA1MzA4MiwgMC4yNjU4MTMsIDAuNDgxODk3LCAwLjYzNjE3MiwgMC44ODI5NDgsIDEuMDk5MjksIDEuNDA3MjciLCBcCi0gICAgICAgICAgIjAuMDUzNDY3LCAwLjI2NTc3NywgMC40ODE3NTksIDAuNjM2MjI4LCAwLjg4MjkwMiwgMS4wOTg3MSwgMS40MDc2NiIsIFwKLSAgICAgICAgICAiMC4wNTM5OSwgMC4yNjU5NzMsIDAuNDgxODU4LCAwLjYzNjEzLCAwLjg4MzA4MywgMS4wOTg2NiwgMS40MDc5OSIsIFwKLSAgICAgICAgICAiMC4wNTQ2MTcsIDAuMjY1ODkyLCAwLjQ4MTgxNiwgMC42MzYxNzgsIDAuODgyODMsIDEuMDk5MSwgMS40MDc5MyIsIFwKLSAgICAgICAgICAiMC4wNTUyMzUsIDAuMjY1ODgyLCAwLjQ4MTg3MywgMC42MzYyMjMsIDAuODgyNjgzLCAxLjA5ODY0LCAxLjQwNzUzIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDUzMTY3LCAwLjE0NzkwOSwgMC4yNDE3NTksIDAuMzA4NjY5LCAwLjQxNTc2MSwgMC41MDkyNzEsIDAuNjQyOTk3IiwgXAotICAgICAgICAgICIwLjA2MTM1OSwgMC4xNTYxMywgMC4yNTAwMDEsIDAuMzE2ODYyLCAwLjQyMzg0NCwgMC41MTc1MjQsIDAuNjUxMjk5IiwgXAotICAgICAgICAgICIwLjA2OTk2NSwgMC4xNjQ4MDUsIDAuMjU4NjczLCAwLjMyNTU1MiwgMC40MzI2ODEsIDAuNTI2Mjc1LCAwLjY2MDA1OSIsIFwKLSAgICAgICAgICAiMC4wNzY3MzYsIDAuMTcxNjAyLCAwLjI2NTM5OSwgMC4zMzIzOCwgMC40Mzk1NDcsIDAuNTMzMDQ2LCAwLjY2Njc3NiIsIFwKLSAgICAgICAgICAiMC4wODIwMTMsIDAuMTc2OTQ4LCAwLjI3MDczNywgMC4zMzc3MDQsIDAuNDQ0ODY1LCAwLjUzODU2OCwgMC42NzIxNTgiLCBcCi0gICAgICAgICAgIjAuMDg5MDgyLCAwLjE4NDAyLCAwLjI3NzgwOSwgMC4zNDQ3MzEsIDAuNDUxOTA0LCAwLjU0NTQ0OSwgMC42NzkxNCIsIFwKLSAgICAgICAgICAiMC4wOTQxNDgsIDAuMTg5MTU2LCAwLjI4MjkwOCwgMC4zNDk4NzgsIDAuNDU2ODksIDAuNTUwNjg1LCAwLjY4NDI5NiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1NTUxNCwgMC4yNDc3MjMsIDAuNDQxMDc3LCAwLjU3OTIwNywgMC44MDA0NjIsIDAuOTk0MDcxLCAxLjI3MDMxIiwgXAotICAgICAgICAgICIwLjA1NTUyOSwgMC4yNDc3MDcsIDAuNDQxMTMsIDAuNTc5MzM3LCAwLjgwMDY1MywgMC45OTQwNzksIDEuMjcwNzUiLCBcCi0gICAgICAgICAgIjAuMDU1Nzk2LCAwLjI0NzczMiwgMC40NDExNDksIDAuNTc5MzQxLCAwLjgwMDYzNSwgMC45OTQwOTUsIDEuMjcwNDQiLCBcCi0gICAgICAgICAgIjAuMDU2MjgxLCAwLjI0NzgwMiwgMC40NDEwNzEsIDAuNTc5Mzg4LCAwLjgwMDQzOSwgMC45OTQwNzksIDEuMjcwNDMiLCBcCi0gICAgICAgICAgIjAuMDU2Nzk2LCAwLjI0NzgzMywgMC40NDEwODgsIDAuNTc5MzgzLCAwLjgwMDM3OSwgMC45OTQwNiwgMS4yNzA3MyIsIFwKLSAgICAgICAgICAiMC4wNTc1ODQsIDAuMjQ3OTgxLCAwLjQ0MTIwMiwgMC41Nzk0MTYsIDAuODAwNTQyLCAwLjk5NDA1NiwgMS4yNzA3OCIsIFwKLSAgICAgICAgICAiMC4wNTgyNjQsIDAuMjQ4MTM4LCAwLjQ0MTI1MSwgMC41NzkyNjMsIDAuODAwNDcxLCAwLjk5NDA5NCwgMS4yNzA3NiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMU4iOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDUxMzE0LCAwLjE1MjUyNSwgMC4yNTMzNjgsIDAuMzI1MjE0LCAwLjQ0MTY0MywgMC41NDMxMzYsIDAuNjg4NjQ5IiwgXAotICAgICAgICAgICIwLjA1OTYwMSwgMC4xNjA4NTIsIDAuMjYxNTU0LCAwLjMzMzk1NywgMC40NDk4MzksIDAuNTUxNTU0LCAwLjY5NzIyMyIsIFwKLSAgICAgICAgICAiMC4wNjg3MzgsIDAuMTcwMDY5LCAwLjI3MDkxNywgMC4zNDMzMDksIDAuNDU5Njc2LCAwLjU2MDk1MSwgMC43MDYyMjciLCBcCi0gICAgICAgICAgIjAuMDc1ODI2LCAwLjE3NzIwNCwgMC4yNzgxNzYsIDAuMzUwMzEsIDAuNDY2NzEsIDAuNTY4MzM4LCAwLjcxMzM4NiIsIFwKLSAgICAgICAgICAiMC4wODE2MDcsIDAuMTgzMDM5LCAwLjI4NDA1MSwgMC4zNTYxNzksIDAuNDcyNTYsIDAuNTczODkzLCAwLjcxOTIzIiwgXAotICAgICAgICAgICIwLjA4OTQxMiwgMC4xOTA4OTIsIDAuMjkxNzgyLCAwLjM2MzY2MywgMC40Nzk5MjksIDAuNTgxNTgyLCAwLjcyNjkyNyIsIFwKLSAgICAgICAgICAiMC4wOTUxOTgsIDAuMTk2NzI0LCAwLjI5NzYzMiwgMC4zNjk1OTQsIDAuNDg2MTMxLCAwLjU4NzgyNiwgMC43MzMxMTkiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTAxNzYsIDAuMjYzMzY4LCAwLjQ3OTUwNSwgMC42MzMxMjIsIDAuODc5NDIzLCAxLjA5NzMyLCAxLjQwMzgyIiwgXAotICAgICAgICAgICIwLjA1MDE5NSwgMC4yNjMzNTgsIDAuNDc4MjA0LCAwLjYzMjg1NSwgMC44ODEwNjQsIDEuMDk0ODUsIDEuNDA1MTUiLCBcCi0gICAgICAgICAgIjAuMDUwNDQ4LCAwLjI2MzI0NiwgMC40Nzk0OSwgMC42MzMwNjksIDAuODc5OTMyLCAxLjA5NjEyLCAxLjQwMzgyIiwgXAotICAgICAgICAgICIwLjA1MDg3MywgMC4yNjMzOTUsIDAuNDc4NjQ5LCAwLjYzMzE2MSwgMC44Nzk3ODYsIDEuMDk1NjEsIDEuNDA0NzIiLCBcCi0gICAgICAgICAgIjAuMDUxNDI3LCAwLjI2MzQxMSwgMC40Nzg3MzEsIDAuNjMyOTQ5LCAwLjg3OTc0MywgMS4wOTczMiwgMS40MDM3MyIsIFwKLSAgICAgICAgICAiMC4wNTIxMjIsIDAuMjYzNDQ3LCAwLjQ3OTQyLCAwLjYzMzg2MSwgMC44ODEwNDEsIDEuMDk2MjEsIDEuNDAzNjIiLCBcCi0gICAgICAgICAgIjAuMDUyODAyLCAwLjI2MzM5OSwgMC40Nzg1NzIsIDAuNjMzODMxLCAwLjg3OTY3MywgMS4wOTU1MiwgMS40MDQzIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDUxOTEzLCAwLjE0NjUyMywgMC4yNDAzNzgsIDAuMzA3MjIzLCAwLjQxNDM0NSwgMC41MDc5LCAwLjY0MTY2OCIsIFwKLSAgICAgICAgICAiMC4wNjAwOTYsIDAuMTU0NzY2LCAwLjI0ODU5MSwgMC4zMTU2MDgsIDAuNDIyNTM4LCAwLjUxNjE5NywgMC42NDk4MzUiLCBcCi0gICAgICAgICAgIjAuMDY4Nzg3LCAwLjE2MzQyMiwgMC4yNTcyOTUsIDAuMzI0MjIyLCAwLjQzMTM1LCAwLjUyNDk3OCwgMC42NTg3NDMiLCBcCi0gICAgICAgICAgIjAuMDc1ODIzLCAwLjE3MDQzNiwgMC4yNjQxOTQsIDAuMzMxMTM4LCAwLjQzODM1LCAwLjUzMTgwOSwgMC42NjU1NzkiLCBcCi0gICAgICAgICAgIjAuMDgxMzA0LCAwLjE3NTk2NCwgMC4yNjk2ODksIDAuMzM2NjIxLCAwLjQ0MzYxOCwgMC41Mzc1MTEsIDAuNjcxMTA5IiwgXAotICAgICAgICAgICIwLjA4ODQ0MiwgMC4xODI5NDgsIDAuMjc2NjE4LCAwLjM0MzU0OSwgMC40NTA1ODQsIDAuNTQ0Mzc3LCAwLjY3Nzg4OSIsIFwKLSAgICAgICAgICAiMC4wOTM4MTMsIDAuMTg4NDkyLCAwLjI4MjEwOCwgMC4zNDkwMiwgMC40NTYwNSwgMC41NDk2MTgsIDAuNjgzMzk4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU1ODA0LCAwLjI0NzY0OSwgMC40NDExNTEsIDAuNTc5MzUzLCAwLjgwMDQ2NSwgMC45OTQwNzUsIDEuMjcwNzUiLCBcCi0gICAgICAgICAgIjAuMDU1ODQsIDAuMjQ3NywgMC40NDExNTYsIDAuNTc5MzQ5LCAwLjgwMDQwMSwgMC45OTQwNzcsIDEuMjcwNjQiLCBcCi0gICAgICAgICAgIjAuMDU2NCwgMC4yNDc2ODUsIDAuNDQxMTI2LCAwLjU3OTM0NiwgMC44MDA1LCAwLjk5NDA2MSwgMS4yNzA3OCIsIFwKLSAgICAgICAgICAiMC4wNTcxNjUsIDAuMjQ3ODM1LCAwLjQ0MTA2NCwgMC41NzkzNDQsIDAuODAwNDc5LCAwLjk5NDA3OSwgMS4yNzA3NCIsIFwKLSAgICAgICAgICAiMC4wNTgwMTYsIDAuMjQ3OTcyLCAwLjQ0MTE3NywgMC41NzkzNTksIDAuODAwMzgzLCAwLjk5NDEzMSwgMS4yNzA3MyIsIFwKLSAgICAgICAgICAiMC4wNTkyOTEsIDAuMjQ4MjEsIDAuNDQxMjYsIDAuNTc5NCwgMC44MDA2MTQsIDAuOTk0MDg0LCAxLjI3MDY5IiwgXAotICAgICAgICAgICIwLjA2MDEzMywgMC4yNDg0MDIsIDAuNDQxMzAzLCAwLjU3OTM0NywgMC44MDA1OSwgMC45OTQwODIsIDEuMjcwNjciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjAiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDI3MzEzLCAwLjEyODI4LCAwLjIyOTA3MywgMC4zMDA4MzQsIDAuNDE1NTIyLCAwLjUxNTk4MiwgMC42NTk0MzkiLCBcCi0gICAgICAgICAgIjAuMDM0OTI1LCAwLjEzNTkzNiwgMC4yMzY3NzEsIDAuMzA4NjM4LCAwLjQyMzQyNiwgMC41MjQxMDgsIDAuNjY4NDEyIiwgXAotICAgICAgICAgICIwLjA0NDc2NywgMC4xNDU2NTcsIDAuMjQ2MzQ5LCAwLjMxODIxMywgMC40MzMwNzQsIDAuNTMzNjEsIDAuNjc3NSIsIFwKLSAgICAgICAgICAiMC4wNTI0MzQsIDAuMTU1MzYsIDAuMjU1Nzg5LCAwLjMyNzgzOCwgMC40NDMwNzcsIDAuNTQzNjM1LCAwLjY4NjU4MSIsIFwKLSAgICAgICAgICAiMC4wNTg0NTQsIDAuMTY0OTMzLCAwLjI2NTU5LCAwLjMzNzMyLCAwLjQ1MjQ0NSwgMC41NTMzODEsIDAuNjk2NTc0IiwgXAotICAgICAgICAgICIwLjA2NzA2NywgMC4xODA3NTMsIDAuMjgxMDg1LCAwLjM1Mjg4OCwgMC40NjgwMDMsIDAuNTY4NTI4LCAwLjcxMjQyMiIsIFwKLSAgICAgICAgICAiMC4wNzMxMzQsIDAuMTk0NzM0LCAwLjI5NDc3NSwgMC4zNjY0MywgMC40ODEyMywgMC41ODIwODcsIDAuNzI1NzM1Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDUxNzI4LCAwLjI2NTcyLCAwLjQ3OTA4NywgMC42MzEzNjQsIDAuODc1MDkxLCAxLjA4ODk1LCAxLjM5MzIiLCBcCi0gICAgICAgICAgIjAuMDUzOTc1LCAwLjI2NTY2OSwgMC40NzkwODgsIDAuNjMxNTY4LCAwLjg3NTM4MSwgMS4wODg1NCwgMS4zOTM5NiIsIFwKLSAgICAgICAgICAiMC4wNjEzNDEsIDAuMjY1Nzg2LCAwLjQ3OTA2OSwgMC42MzE1OTgsIDAuODc1OTEzLCAxLjA4ODYyLCAxLjM5MzM1IiwgXAotICAgICAgICAgICIwLjA3MDA4OSwgMC4yNjg1MiwgMC40NzkwNjgsIDAuNjMxNjk3LCAwLjg3NTQ5OSwgMS4wODg5OSwgMS4zOTM1NyIsIFwKLSAgICAgICAgICAiMC4wNzg2MDUsIDAuMjczMDM3LCAwLjQ4MDE5OCwgMC42MzE2OCwgMC44NzU0NywgMS4wODkwMywgMS4zOTMzMSIsIFwKLSAgICAgICAgICAiMC4wODkyMSwgMC4yODI4ODcsIDAuNDg1MzY5LCAwLjYzNDE3OCwgMC44NzU0MzYsIDEuMDg4ODksIDEuMzk0MTgiLCBcCi0gICAgICAgICAgIjAuMDk4MTMzLCAwLjI5MjkxMywgMC40OTE5NDksIDAuNjM4NDczLCAwLjg3NzA0LCAxLjA4ODcxLCAxLjM5NDE0Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDI0NDE2LCAwLjExODY1MywgMC4yMTI1NjEsIDAuMjc5NDk3LCAwLjM4NjU5MSwgMC40ODAxNDYsIDAuNjEzODczIiwgXAotICAgICAgICAgICIwLjAzMDgzOCwgMC4xMjU0MzcsIDAuMjE5MzkzLCAwLjI4NjM3NywgMC4zOTM0MTksIDAuNDg3MDE3LCAwLjYyMDY5NiIsIFwKLSAgICAgICAgICAiMC4wMzgxMjUsIDAuMTMzNjgxLCAwLjIyNzg0NCwgMC4yOTQ4MTQsIDAuNDAxODY5LCAwLjQ5NTQ3NCwgMC42MjkyMzgiLCBcCi0gICAgICAgICAgIjAuMDQzOTM4LCAwLjE0MTg5MSwgMC4yMzYxMTksIDAuMzAzMTM1LCAwLjQxMDI2OSwgMC41MDM4NDEsIDAuNjM3NTYxIiwgXAotICAgICAgICAgICIwLjA0ODU3OSwgMC4xNTAxNTgsIDAuMjQ0Njg0LCAwLjMxMTc4NiwgMC40MTg4NTIsIDAuNTEyNTQ2LCAwLjY0NjI0OCIsIFwKLSAgICAgICAgICAiMC4wNTQ4NywgMC4xNjM2MjUsIDAuMjU3NjIyLCAwLjMyNTAwMiwgMC40MzIxMzYsIDAuNTI1MzEzLCAwLjY1OTYzOCIsIFwKLSAgICAgICAgICAiMC4wNTk1NTcsIDAuMTc1MTcyLCAwLjI2OTE5MSwgMC4zMzYzMTksIDAuNDQzOTM4LCAwLjUzNzQ5NCwgMC42NzE0ODEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDQwNDQsIDAuMjM3MzA4LCAwLjQzMDc1NCwgMC41Njg5MDIsIDAuNzkwMDk0LCAwLjk4MzY5OCwgMS4yNjAxMSIsIFwKLSAgICAgICAgICAiMC4wNDU4MTUsIDAuMjM3MjgyLCAwLjQzMDcxMiwgMC41Njg4MzMsIDAuNzg5OTA5LCAwLjk4MzUzNywgMS4yNjAwMSIsIFwKLSAgICAgICAgICAiMC4wNTE0MjQsIDAuMjM3NjcxLCAwLjQzMDcxOSwgMC41Njg4OTEsIDAuNzg5OTE4LCAwLjk4MzY0LCAxLjI2MDA0IiwgXAotICAgICAgICAgICIwLjA1ODMxNiwgMC4yMzk3OCwgMC40MzA5MDgsIDAuNTY4ODcxLCAwLjc5MDA0OCwgMC45ODM1MSwgMS4yNTk5IiwgXAotICAgICAgICAgICIwLjA2NDg4LCAwLjI0MzI5OSwgMC40MzIyMzIsIDAuNTY5MTc1LCAwLjc4OTk5NiwgMC45ODM2ODYsIDEuMjYwMDEiLCBcCi0gICAgICAgICAgIjAuMDc0ODIyLCAwLjI1MDgxOCwgMC40MzYyMjYsIDAuNTcxNzQzLCAwLjc5MDQzLCAwLjk4MzUyNiwgMS4yNTk5MSIsIFwKLSAgICAgICAgICAiMC4wODMwMzgsIDAuMjU4MzI0LCAwLjQ0MDk4MiwgMC41NzUxMjcsIDAuNzkyMjk2LCAwLjk4NDE4MiwgMS4yNjAwOSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjU0MzIsIDAuMTI3NTI1LCAwLjIyOTMzOCwgMC4zMDE4NDUsIDAuNDE4MDYxLCAwLjUxOTczMiwgMC42NjU3NSIsIFwKLSAgICAgICAgICAiMC4wMzI5NzQsIDAuMTM1MTUxLCAwLjIzNzExMSwgMC4zMDk2MTQsIDAuNDI1ODI5LCAwLjUyNzU3LCAwLjY3MzU5IiwgXAotICAgICAgICAgICIwLjA0MjU2OSwgMC4xNDQ2ODEsIDAuMjQ2NDM0LCAwLjMxOTAyLCAwLjQzNTQ3NSwgMC41MzY4OTksIDAuNjgyNjg4IiwgXAotICAgICAgICAgICIwLjA0OTgwOSwgMC4xNTQ0ODQsIDAuMjU1OTQ0LCAwLjMyODg3NSwgMC40NDU1MjEsIDAuNTQ2ODE5LCAwLjY5MjI2OSIsIFwKLSAgICAgICAgICAiMC4wNTU2NTcsIDAuMTY0MDk5LCAwLjI2NTczOSwgMC4zMzg0OTIsIDAuNDU1MDA0LCAwLjU1Njc2NiwgMC43MDE1ODUiLCBcCi0gICAgICAgICAgIjAuMDYzNTM0LCAwLjE3OTg2LCAwLjI4MTQwMywgMC4zNTM5NSwgMC40NzA0MjksIDAuNTcyMTcxLCAwLjcxNzcxNSIsIFwKLSAgICAgICAgICAiMC4wNjg5NjQsIDAuMTkzODE0LCAwLjI5NTAwNCwgMC4zNjc0NTgsIDAuNDgzNzYyLCAwLjU4NTY4MywgMC43MzA5MSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0OTQxLCAwLjI2NTc1OSwgMC40ODE4MzgsIDAuNjM2MjExLCAwLjg4Mjc5OCwgMS4wOTg5LCAxLjQwNzkyIiwgXAotICAgICAgICAgICIwLjA1MTg2MiwgMC4yNjU4MTksIDAuNDgxODA0LCAwLjYzNTkwOCwgMC44ODM0MDQsIDEuMDk4NjcsIDEuNDA3OTEiLCBcCi0gICAgICAgICAgIjAuMDU5NDU4LCAwLjI2NjA2NiwgMC40ODE2OTYsIDAuNjM2NDAyLCAwLjg4MzA3NiwgMS4wOTg5LCAxLjQwNzg2IiwgXAotICAgICAgICAgICIwLjA2ODI2NiwgMC4yNjg2MTksIDAuNDgxODM5LCAwLjYzNjIzOSwgMC44ODMwOTQsIDEuMDk4NjcsIDEuNDA3MjQiLCBcCi0gICAgICAgICAgIjAuMDc2MTYxLCAwLjI3MzI0NiwgMC40ODI4ODksIDAuNjM1ODQ4LCAwLjg4MzA5NCwgMS4wOTkxNCwgMS40MDcxNiIsIFwKLSAgICAgICAgICAiMC4wODcxODMsIDAuMjgzMDc3LCAwLjQ4Nzk0MSwgMC42Mzg2NTEsIDAuODgzMDQzLCAxLjA5OTExLCAxLjQwNzg0IiwgXAotICAgICAgICAgICIwLjA5NTk5MiwgMC4yOTMxNTIsIDAuNDk0NTc0LCAwLjY0MjkwMiwgMC44ODQ1MTEsIDEuMDk4OTQsIDEuNDA3MSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyMjg2OSwgMC4xMTcxMDQsIDAuMjExMDE4LCAwLjI3Nzk2NywgMC4zODQ5OSwgMC40Nzg2NDIsIDAuNjEyMjgxIiwgXAotICAgICAgICAgICIwLjAzMDQxOSwgMC4xMjQ4NTYsIDAuMjE4Nzg4LCAwLjI4NTc2OSwgMC4zOTI3OTYsIDAuNDg2NDI1LCAwLjYyMDA4OSIsIFwKLSAgICAgICAgICAiMC4wMzkzMTMsIDAuMTM0NDE3LCAwLjIyODM1MSwgMC4yOTUzMTksIDAuNDAyMzk2LCAwLjQ5NTk3NCwgMC42Mjk2MjIiLCBcCi0gICAgICAgICAgIjAuMDQ2MzM4LCAwLjE0NDI0OSwgMC4yMzgxMjIsIDAuMzA1MDUsIDAuNDEyMDcsIDAuNTA1Njc5LCAwLjYzOTM2NSIsIFwKLSAgICAgICAgICAiMC4wNTE4NTgsIDAuMTUzOTk0LCAwLjI0Nzc2LCAwLjMxNDY0LCAwLjQyMTY3LCAwLjUxNTIxMiwgMC42NDg4NzkiLCBcCi0gICAgICAgICAgIjAuMDU5MTkxLCAwLjE2OTg5MiwgMC4yNjM0NzIsIDAuMzMwMzc1LCAwLjQzNzMzLCAwLjUzMDg5NSwgMC42NjQ0OTkiLCBcCi0gICAgICAgICAgIjAuMDY0NDIxLCAwLjE4MzkzNywgMC4yNzcyNjIsIDAuMzQ0MDgsIDAuNDUxMDc1LCAwLjU0NDU0LCAwLjY3ODE1MSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0NDA0MywgMC4yMzczMTYsIDAuNDMwNzUyLCAwLjU2ODk2NSwgMC43OTAwNDMsIDAuOTgzNiwgMS4yNTk5IiwgXAotICAgICAgICAgICIwLjA0Njk2NCwgMC4yMzcyNTEsIDAuNDMwNzA4LCAwLjU2ODg3OCwgMC43ODk5NzksIDAuOTgzNTA3LCAxLjI1OTkyIiwgXAotICAgICAgICAgICIwLjA1NTE4MywgMC4yMzc3NzgsIDAuNDMwNywgMC41Njg4ODEsIDAuNzkwMTAxLCAwLjk4MzU2OSwgMS4yNjAwMiIsIFwKLSAgICAgICAgICAiMC4wNjQwMTMsIDAuMjQwOTE5LCAwLjQzMDg0NywgMC41Njg4NzMsIDAuNzg5OTgxLCAwLjk4MzU1MSwgMS4yNTk5MSIsIFwKLSAgICAgICAgICAiMC4wNzIxMywgMC4yNDYwNzQsIDAuNDMyNjUsIDAuNTY5MjA3LCAwLjc5MDAxNCwgMC45ODM1NSwgMS4yNjAwMyIsIFwKLSAgICAgICAgICAiMC4wODM5NTMsIDAuMjU2MTk1LCAwLjQzODMwNiwgMC41NzI0NzEsIDAuNzkwNDEsIDAuOTgzNTU0LCAxLjI1OTkyIiwgXAotICAgICAgICAgICIwLjA5MzUwMywgMC4yNjY2NDgsIDAuNDQ1MTYyLCAwLjU3NzM0NCwgMC43OTI4MDksIDAuOTg0MDM1LCAxLjI1OTkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBME4iOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE1MTkxLCAwLjAxNTI0MSwgMC4wMTUyNDcsIDAuMDE1MjQ5LCAwLjAxNTI0OCwgMC4wMTUyNDgsIDAuMDE1MjQ5IiwgXAotICAgICAgICAgICIwLjAxNTE0NiwgMC4wMTUyMTEsIDAuMDE1MjE5LCAwLjAxNTIyMiwgMC4wMTUyMjQsIDAuMDE1MjI0LCAwLjAxNTIzMSIsIFwKLSAgICAgICAgICAiMC4wMTUyLCAwLjAxNTI4MSwgMC4wMTUyOTQsIDAuMDE1Mjk4LCAwLjAxNTMwMiwgMC4wMTUzMDIsIDAuMDE1MzAyIiwgXAotICAgICAgICAgICIwLjAxNTI5NiwgMC4wMTUzODMsIDAuMDE1Mzk4LCAwLjAxNTQwMiwgMC4wMTU0MDYsIDAuMDE1NDA5LCAwLjAxNTQxIiwgXAotICAgICAgICAgICIwLjAxNTQzMSwgMC4wMTU1MTcsIDAuMDE1NTM0LCAwLjAxNTUzOCwgMC4wMTU1NDIsIDAuMDE1NTQ1LCAwLjAxNTU0NiIsIFwKLSAgICAgICAgICAiMC4wMTU2NzUsIDAuMDE1NzYyLCAwLjAxNTc4LCAwLjAxNTc3NiwgMC4wMTU3OTUsIDAuMDE1Nzk3LCAwLjAxNTc5OSIsIFwKLSAgICAgICAgICAiMC4wMTU5LCAwLjAxNTk5LCAwLjAxNjAxMSwgMC4wMTYwMTgsIDAuMDE2MDM5LCAwLjAxNjAzMiwgMC4wMTYwNDMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMjk5LCAwLjAxMzA3LCAwLjAxMzA4MSwgMC4wMTMwODMsIDAuMDEzMDg3LCAwLjAxMzA4OCwgMC4wMTMwODkiLCBcCi0gICAgICAgICAgIjAuMDEyOTI3LCAwLjAxMzAzNCwgMC4wMTMwNDksIDAuMDEzMDU1LCAwLjAxMzA2LCAwLjAxMzA2MSwgMC4wMTMwNjMiLCBcCi0gICAgICAgICAgIjAuMDEyOTcyLCAwLjAxMzEwNSwgMC4wMTMxMjksIDAuMDEzMTM3LCAwLjAxMzE0NCwgMC4wMTMxNDYsIDAuMDEzMTQ5IiwgXAotICAgICAgICAgICIwLjAxMzAzNywgMC4wMTMxNzYsIDAuMDEzMjAzLCAwLjAxMzIxNCwgMC4wMTMyMjMsIDAuMDEzMjI2LCAwLjAxMzIzIiwgXAotICAgICAgICAgICIwLjAxMzE1NiwgMC4wMTMyOTcsIDAuMDEzMzI4LCAwLjAxMzMzNywgMC4wMTMzNDksIDAuMDEzMzUzLCAwLjAxMzM1NyIsIFwKLSAgICAgICAgICAiMC4wMTMzODcsIDAuMDEzNTI1LCAwLjAxMzU1OSwgMC4wMTM1NzUsIDAuMDEzNTg0LCAwLjAxMzU5LCAwLjAxMzU5NSIsIFwKLSAgICAgICAgICAiMC4wMTM2MDgsIDAuMDEzNzM0LCAwLjAxMzc3LCAwLjAxMzc4NCwgMC4wMTM3OTYsIDAuMDEzODAxLCAwLjAxMzgwOCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkExTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTQzNTEsIDAuMDE0NDkyLCAwLjAxNDUwOSwgMC4wMTQ1MTQsIDAuMDE0NTE4LCAwLjAxNDUyLCAwLjAxNDUyMiIsIFwKLSAgICAgICAgICAiMC4wMTQyNzcsIDAuMDE0NDUsIDAuMDE0NDc1LCAwLjAxNDQ4MiwgMC4wMTQ0ODcsIDAuMDE0NDkyLCAwLjAxNDQ5NCIsIFwKLSAgICAgICAgICAiMC4wMTQzLCAwLjAxNDUwOCwgMC4wMTQ1NDMsIDAuMDE0NTU0LCAwLjAxNDU2MiwgMC4wMTQ1NjgsIDAuMDE0NTcxIiwgXAotICAgICAgICAgICIwLjAxNDM3NywgMC4wMTQ1OTgsIDAuMDE0NjM3LCAwLjAxNDY1MSwgMC4wMTQ2NjMsIDAuMDE0NjY5LCAwLjAxNDY3NCIsIFwKLSAgICAgICAgICAiMC4wMTQ0OTcsIDAuMDE0NzIxLCAwLjAxNDc2NywgMC4wMTQ3ODMsIDAuMDE0Nzk1LCAwLjAxNDgwMSwgMC4wMTQ4MDkiLCBcCi0gICAgICAgICAgIjAuMDE0NzEsIDAuMDE0OTQ1LCAwLjAxNTAwNiwgMC4wMTUwMjgsIDAuMDE1MDQ0LCAwLjAxNTA1MywgMC4wMTUwNiIsIFwKLSAgICAgICAgICAiMC4wMTQ5NTIsIDAuMDE1MTc3LCAwLjAxNTIyOCwgMC4wMTUyNjMsIDAuMDE1Mjc5LCAwLjAxNTI3NywgMC4wMTUyOTgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMjA5NCwgMC4wMTIxNzMsIDAuMDEyMTg1LCAwLjAxMjE4NywgMC4wMTIxODgsIDAuMDEyMTksIDAuMDEyMTg5IiwgXAotICAgICAgICAgICIwLjAxMjAyOSwgMC4wMTIxMzcsIDAuMDEyMTU0LCAwLjAxMjE2LCAwLjAxMjE2MywgMC4wMTIxNjYsIDAuMDEyMTY4IiwgXAotICAgICAgICAgICIwLjAxMjA5NywgMC4wMTIyMDksIDAuMDEyMjMxLCAwLjAxMjIzOCwgMC4wMTIyNDUsIDAuMDEyMjQ4LCAwLjAxMjI1MSIsIFwKLSAgICAgICAgICAiMC4wMTIxODksIDAuMDEyMjg4LCAwLjAxMjMwOSwgMC4wMTIzMTksIDAuMDEyMzI1LCAwLjAxMjMyOSwgMC4wMTIzMzEiLCBcCi0gICAgICAgICAgIjAuMDEyMzcxLCAwLjAxMjQxNCwgMC4wMTI0MzYsIDAuMDEyNDQ4LCAwLjAxMjQ1NiwgMC4wMTI0NTksIDAuMDEyNDYzIiwgXAotICAgICAgICAgICIwLjAxMjY5OSwgMC4wMTI2NjYsIDAuMDEyNjg0LCAwLjAxMjY5LCAwLjAxMjY5NiwgMC4wMTI3MDQsIDAuMDEyNyIsIFwKLSAgICAgICAgICAiMC4wMTI5MjIsIDAuMDEyODg3LCAwLjAxMjg5NywgMC4wMTI5MDMsIDAuMDEyOTA5LCAwLjAxMjkxMiwgMC4wMTI5MTUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTA4MzUsIDAuMDEwODc0LCAwLjAxMDg3OCwgMC4wMTA4NzgsIDAuMDEwODc5LCAwLjAxMDg3OSwgMC4wMTA4NzciLCBcCi0gICAgICAgICAgIjAuMDEwNzU1LCAwLjAxMDgyOSwgMC4wMTA4NDMsIDAuMDEwODQ2LCAwLjAxMDg1LCAwLjAxMDg1MSwgMC4wMTA4NTEiLCBcCi0gICAgICAgICAgIjAuMDEwODkyLCAwLjAxMDg1OSwgMC4wMTA4NTYsIDAuMDEwODU3LCAwLjAxMDg1OCwgMC4wMTA4NTUsIDAuMDEwODUzIiwgXAotICAgICAgICAgICIwLjAxMTIzLCAwLjAxMDk0OSwgMC4wMTA5MDMsIDAuMDEwOTA0LCAwLjAxMDg4NSwgMC4wMTA4ODEsIDAuMDEwODc0IiwgXAotICAgICAgICAgICIwLjAxMTcwNCwgMC4wMTExMDksIDAuMDExMDExLCAwLjAxMDk4NSwgMC4wMTA5NTMsIDAuMDEwOTM2LCAwLjAxMDkxNyIsIFwKLSAgICAgICAgICAiMC4wMTIyNzksIDAuMDExMzgyLCAwLjAxMTIwNSwgMC4wMTExMzIsIDAuMDExMDc1LCAwLjAxMTAzOSwgMC4wMTA5OSIsIFwKLSAgICAgICAgICAiMC4wMTI5ODgsIDAuMDExNjk5LCAwLjAxMTQxOCwgMC4wMTEzMDYsIDAuMDExMTk5LCAwLjAxMTEzOCwgMC4wMTEwOTYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjAxMSwgMC4wMDIxMzEsIDAuMDAyMTQzLCAwLjAwMjE0NywgMC4wMDIxNSwgMC4wMDIxNTIsIDAuMDAyMTUzIiwgXAotICAgICAgICAgICIwLjAwMTc3OCwgMC4wMDIxMjEsIDAuMDAyMTc0LCAwLjAwMjE5LCAwLjAwMjIwNSwgMC4wMDIyMTIsIDAuMDAyMjE5IiwgXAotICAgICAgICAgICIwLjAwMTc1MSwgMC4wMDIwNzIsIDAuMDAyMTQ3LCAwLjAwMjE3MSwgMC4wMDIxOTQsIDAuMDAyMjA2LCAwLjAwMjIxNyIsIFwKLSAgICAgICAgICAiMC4wMDE5MSwgMC4wMDIwNzEsIDAuMDAyMTQ1LCAwLjAwMjE2OSwgMC4wMDIxOTQsIDAuMDAyMjA3LCAwLjAwMjIxOCIsIFwKLSAgICAgICAgICAiMC4wMDIxNjgsIDAuMDAyMTE5LCAwLjAwMjE2OSwgMC4wMDIxODksIDAuMDAyMjA3LCAwLjAwMjIxNywgMC4wMDIyMjciLCBcCi0gICAgICAgICAgIjAuMDAyNzI2LCAwLjAwMjI4LCAwLjAwMjI1OSwgMC4wMDIyNTksIDAuMDAyMjYxLCAwLjAwMjI2MywgMC4wMDIyNjIiLCBcCi0gICAgICAgICAgIjAuMDAzMzEyLCAwLjAwMjQ5LCAwLjAwMjM5NywgMC4wMDIzNjUsIDAuMDAyMzQxLCAwLjAwMjMyOCwgMC4wMDIzMTYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDg3OCwgMC4wMDg4NzMsIDAuMDA4ODg0LCAwLjAwODg4NSwgMC4wMDg4ODksIDAuMDA4ODg5LCAwLjAwODg5MSIsIFwKLSAgICAgICAgICAiMC4wMDg2NDMsIDAuMDA4ODM1LCAwLjAwODg2OCwgMC4wMDg4NzgsIDAuMDA4ODg4LCAwLjAwODg5MiwgMC4wMDg4OTYiLCBcCi0gICAgICAgICAgIjAuMDA4NzQzLCAwLjAwODg1OSwgMC4wMDg4NzgsIDAuMDA4ODg1LCAwLjAwODg5MiwgMC4wMDg4OTUsIDAuMDA4OTAxIiwgXAotICAgICAgICAgICIwLjAwOTA1MSwgMC4wMDg5MTMsIDAuMDA4OTA4LCAwLjAwODkwOCwgMC4wMDg5MDcsIDAuMDA4OTA4LCAwLjAwODkwOCIsIFwKLSAgICAgICAgICAiMC4wMDkzOSwgMC4wMDkwMzYsIDAuMDA4OTk0LCAwLjAwODk3OSwgMC4wMDg5NiwgMC4wMDg5NTIsIDAuMDA4OTQzIiwgXAotICAgICAgICAgICIwLjAxMDA2NywgMC4wMDkyOCwgMC4wMDkxNTEsIDAuMDA5MTAzLCAwLjAwOTA3LCAwLjAwOTAyNywgMC4wMDkwMDMiLCBcCi0gICAgICAgICAgIjAuMDEwNjkxLCAwLjAwOTU3NywgMC4wMDkzNDcsIDAuMDA5MjU3LCAwLjAwOTE5MywgMC4wMDkxNDgsIDAuMDA5MDg1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDIwMDQsIDAuMDAyMTM2LCAwLjAwMjE1LCAwLjAwMjE1NCwgMC4wMDIxNTgsIDAuMDAyMTU5LCAwLjAwMjE2MSIsIFwKLSAgICAgICAgICAiMC4wMDE4NjQsIDAuMDAyMTQ1LCAwLjAwMjE5MSwgMC4wMDIyMDUsIDAuMDAyMjE4LCAwLjAwMjIyNSwgMC4wMDIyMyIsIFwKLSAgICAgICAgICAiMC4wMDIwMzIsIDAuMDAyMTU4LCAwLjAwMjIsIDAuMDAyMjE0LCAwLjAwMjIyNywgMC4wMDIyMzQsIDAuMDAyMjQiLCBcCi0gICAgICAgICAgIjAuMDAyNDIyLCAwLjAwMjI0NCwgMC4wMDIyNSwgMC4wMDIyNTIsIDAuMDAyMjU1LCAwLjAwMjI1OCwgMC4wMDIyNiIsIFwKLSAgICAgICAgICAiMC4wMDI2NjYsIDAuMDAyMzQyLCAwLjAwMjMyLCAwLjAwMjMwOSwgMC4wMDIyOTksIDAuMDAyMjk0LCAwLjAwMjI4OSIsIFwKLSAgICAgICAgICAiMC4wMDM0MjEsIDAuMDAyNTg2LCAwLjAwMjQ3NCwgMC4wMDI0MzEsIDAuMDAyNDA2LCAwLjAwMjM4MywgMC4wMDIzNiIsIFwKLSAgICAgICAgICAiMC4wMDQxMzksIDAuMDAyODk5LCAwLjAwMjY4LCAwLjAwMjU5NiwgMC4wMDI1MzcsIDAuMDAyNDk1LCAwLjAwMjQ1MiIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IEFPSTMxWDEgKgotICogLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoQU9JMzFYMSkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjMyNzEzMTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQTApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDk1MjgxOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDk1MDc1NzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA5NTI4MTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA1MjQsIDAuMDAwNTI0LCAwLjAwMDUyNCwgMC4wMDA1MjMsIDAuMDAwNTIzLCAwLjAwMDUyMywgMC4wMDA1MjMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA1MjUsIDAuMDAwNTI1LCAwLjAwMDUyNSwgMC4wMDA1MjUsIDAuMDAwNTI2LCAwLjAwMDUyNSwgMC4wMDA1MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEExKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA5NzUzODg7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwOTcyOTA0OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDk3NTM4ODsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA1MjQsIDAuMDAwNTI0LCAwLjAwMDUyMywgMC4wMDA1MjQsIDAuMDAwNTIzLCAwLjAwMDUyNCwgMC4wMDA1MjMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA1MjUsIDAuMDAwNTI1LCAwLjAwMDUyNSwgMC4wMDA1MjYsIDAuMDAwNTI2LCAwLjAwMDUyNiwgMC4wMDA1MjYiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEEyKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA5Njg2NzI7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwOTY0NTUxOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDk2ODY3MjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAzMzIsIDAuMDAwMzMxLCAwLjAwMDMzMSwgMC4wMDAzMzEsIDAuMDAwMzMxLCAwLjAwMDMzMSwgMC4wMDAzMzEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA1OTUsIDAuMDAwNTk2LCAwLjAwMDU5NSwgMC4wMDA1OTYsIDAuMDAwNTk2LCAwLjAwMDU5NiwgMC4wMDA1OTYiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA5NjU1NTg7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwOTY1NTU4OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDk2NTQwMTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxMDIsIDAuMDAwMTAyLCAwLjAwMDEwMiwgMC4wMDAxMDIsIDAuMDAwMTAyLCAwLjAwMDEwMiwgMC4wMDAxMDIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA3OSwgMC4wMDA3OTEsIDAuMDAwNzkxLCAwLjAwMDc5MSwgMC4wMDA3OSwgMC4wMDA3OSwgMC4wMDA3OSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjE0MTgwMTsKLSAgICBmdW5jdGlvbiA6ICIoISgoKEEwIEExKSBBMikrQjApKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTAiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3NDQwOSwgMC4xMDgzNDQsIDAuMzAwNDQyLCAwLjQ2OTkyNiwgMC42OTU5MDYsIDEuMTQ2NjgsIDEuNDMwODQiLCBcCi0gICAgICAgICAgIjAuMDgxNDA2LCAwLjExNTM3LCAwLjMwNzcwOSwgMC40NzcxNDEsIDAuNzAyNzU4LCAxLjE1Mzc5LCAxLjQzNzE4IiwgXAotICAgICAgICAgICIwLjA4ODkwMywgMC4xMjI4ODMsIDAuMzE1MTEyLCAwLjQ4NDMxNiwgMC43MTAxOTIsIDEuMTYxOTQsIDEuNDQ0MDkiLCBcCi0gICAgICAgICAgIjAuMDk2MTg5LCAwLjEzMDE4MywgMC4zMjIzNCwgMC40OTE3MjksIDAuNzE3ODgzLCAxLjE2ODg4LCAxLjQ1MTA2IiwgXAotICAgICAgICAgICIwLjEwMzUwMywgMC4xMzc0OTUsIDAuMzI5NjUyLCAwLjQ5ODk3MywgMC43MjUxMzIsIDEuMTc2MTcsIDEuNDU5MjgiLCBcCi0gICAgICAgICAgIjAuMTE0MDYsIDAuMTQ5MjM5LCAwLjM0MTQ5LCAwLjUxMDY5MiwgMC43MzczNzksIDEuMTg4MjYsIDEuNDcwNiIsIFwKLSAgICAgICAgICAiMC4xMjIxMywgMC4xNTg5NzgsIDAuMzUxNzQ0LCAwLjUyMTE5OSwgMC43NDcxNjgsIDEuMTk5NTksIDEuNDgwODIiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTM3ODcsIDAuMjA5Mzk2LCAwLjYxNDY2OSwgMC45NzIxOSwgMS40NDkxOSwgMi40MDEzLCAyLjk5ODQ5IiwgXAotICAgICAgICAgICIwLjEzNzkwMywgMC4yMDkzNSwgMC42MTQ5OSwgMC45NzIyMzgsIDEuNDQ4OTksIDIuNDAyMTYsIDIuOTk4MyIsIFwKLSAgICAgICAgICAiMC4xMzkzNDgsIDAuMjA5ODkzLCAwLjYxNDg2MSwgMC45NzE5MDUsIDEuNDQ4NzUsIDIuNDAxNywgMi45OTg3NSIsIFwKLSAgICAgICAgICAiMC4xNDI2MjksIDAuMjEyMDE1LCAwLjYxNDc1MSwgMC45NzIwNDUsIDEuNDQ5MTMsIDIuNDAyNTYsIDIuOTk5NTMiLCBcCi0gICAgICAgICAgIjAuMTQ3MTU3LCAwLjIxNTQ2MywgMC42MTUxNTQsIDAuOTcyMzAxLCAxLjQ0ODg1LCAyLjQwMTgzLCAyLjk5NzE4IiwgXAotICAgICAgICAgICIwLjE1NTY4NSwgMC4yMjI1MzUsIDAuNjE2ODkzLCAwLjk3MjQ4NywgMS40NDkwNiwgMi40MDI3MywgMi45OTg0MyIsIFwKLSAgICAgICAgICAiMC4xNjQzOSwgMC4yMjk2NTgsIDAuNjE5NjIzLCAwLjk3MjgyNiwgMS40NDg1OSwgMi40MDI0NCwgMi45OTcwOCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDAyMTgsIDAuMTQ1NywgMC40MDI2NTMsIDAuNjI5MDQsIDAuOTMwNzA2LCAxLjUzNDUyLCAxLjkxMTI1IiwgXAotICAgICAgICAgICIwLjEwNTQyLCAwLjE1MDkzMiwgMC40MDgwNDQsIDAuNjM0NTMyLCAwLjkzNTg0LCAxLjUzOTE0LCAxLjkxNzUyIiwgXAotICAgICAgICAgICIwLjExMTQ0NiwgMC4xNTcwMSwgMC40MTQwMTMsIDAuNjQwNjE3LCAwLjk0MjY5OCwgMS41NDY2NywgMS45MjMwMiIsIFwKLSAgICAgICAgICAiMC4xMTc0OTQsIDAuMTYzMDc5LCAwLjQyMDA0NiwgMC42NDY1NjksIDAuOTQ4Nzk4LCAxLjU1MjU3LCAxLjkyOTA1IiwgXAotICAgICAgICAgICIwLjEyMzc0MiwgMC4xNjkxNDIsIDAuNDI2MTQxLCAwLjY1MjY4MywgMC45NTQ5MjYsIDEuNTU4MjgsIDEuOTM0OTYiLCBcCi0gICAgICAgICAgIjAuMTMzNDQ1LCAwLjE3OTE1NiwgMC40MzYwMDUsIDAuNjYyMzcxLCAwLjk2NDcxOSwgMS41Njg2OSwgMS45NDQ1MSIsIFwKLSAgICAgICAgICAiMC4xNDE4MTksIDAuMTg3NzE3LCAwLjQ0NDYzMSwgMC42NzExNzUsIDAuOTcyNzI3LCAxLjU3NjQ2LCAxLjk1NTI0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE4Mjg4NCwgMC4yNzU4NTksIDAuODAyMzcyLCAxLjI2NjI5LCAxLjg4NDgzLCAzLjEyMTgsIDMuODk1NjUiLCBcCi0gICAgICAgICAgIjAuMTgyODksIDAuMjc1OTUyLCAwLjgwMjI2LCAxLjI2NjQxLCAxLjg4NTU1LCAzLjEyMzcxLCAzLjg5NTg4IiwgXAotICAgICAgICAgICIwLjE4MzY5NywgMC4yNzYwNzIsIDAuODAyMTc0LCAxLjI2NjI5LCAxLjg4NTA2LCAzLjEyMjU4LCAzLjg5NTg1IiwgXAotICAgICAgICAgICIwLjE4NTc0MSwgMC4yNzcwNzQsIDAuODAyMDgyLCAxLjI2NjUsIDEuODg1NTgsIDMuMTIzLCAzLjg5NjExIiwgXAotICAgICAgICAgICIwLjE4ODc4MywgMC4yNzkxNDMsIDAuODAyMDYzLCAxLjI2NjYzLCAxLjg4NTksIDMuMTIxNzMsIDMuODk2NjUiLCBcCi0gICAgICAgICAgIjAuMTk0NzM5LCAwLjI4Mzg4NiwgMC44MDI2NjksIDEuMjY2MzIsIDEuODg0OTksIDMuMTIyNjMsIDMuODk1MiIsIFwKLSAgICAgICAgICAiMC4yMDE0MywgMC4yODg3NzYsIDAuODAzOTk5LCAxLjI2NjQxLCAxLjg4NDQ0LCAzLjEyMjM0LCAzLjg5NzAxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkExIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzMyNjEsIDAuMTA3NDg1LCAwLjMwMTIxMSwgMC40NzIzMDQsIDAuNzAwODUzLCAxLjE1NzQzLCAxLjQ0MTM4IiwgXAotICAgICAgICAgICIwLjA4MDI3OSwgMC4xMTQ1NCwgMC4zMDgzMzQsIDAuNDc5NTM0LCAwLjcwNzM4LCAxLjE2MzM1LCAxLjQ0NzYiLCBcCi0gICAgICAgICAgIjAuMDg3NzgzLCAwLjEyMjAyMywgMC4zMTYxMjQsIDAuNDg3MjEzLCAwLjcxNTYyOCwgMS4xNzE3NiwgMS40NTY3NyIsIFwKLSAgICAgICAgICAiMC4wOTUwOTIsIDAuMTI5Mzk0LCAwLjMyMzUyNywgMC40OTQ0NDUsIDAuNzIyMjM4LCAxLjE3Nzg3LCAxLjQ2NDExIiwgXAotICAgICAgICAgICIwLjEwMjMxOCwgMC4xMzY2OTksIDAuMzMwNzI0LCAwLjUwMTc0OCwgMC43MzAwOTMsIDEuMTg1MzIsIDEuNDcxMDEiLCBcCi0gICAgICAgICAgIjAuMTEyODYxLCAwLjE0ODI4NiwgMC4zNDIyMjgsIDAuNTEzMTUsIDAuNzQxODk0LCAxLjE5Njk5LCAxLjQ4MjQ1IiwgXAotICAgICAgICAgICIwLjEyMDc3MSwgMC4xNTgyMjIsIDAuMzUyNzEyLCAwLjUyMzgzNiwgMC43NTIwOCwgMS4yMDc3NCwgMS40OTI1MiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMzY3OTksIDAuMjA4OTEyLCAwLjYxNzkwOCwgMC45Nzg4NDMsIDEuNDYwNTUsIDIuNDIzNTgsIDMuMDI0NDkiLCBcCi0gICAgICAgICAgIjAuMTM2NzQsIDAuMjA5MDcyLCAwLjYxNzk0NiwgMC45NzkxMjUsIDEuNDYwMDYsIDIuNDIyNTEsIDMuMDI1OCIsIFwKLSAgICAgICAgICAiMC4xMzgyNDcsIDAuMjA5NDM4LCAwLjYxODE1OCwgMC45NzkxNTcsIDEuNDYwNTksIDIuNDIyNjUsIDMuMDI1MTQiLCBcCi0gICAgICAgICAgIjAuMTQxNjI0LCAwLjIxMTY5MSwgMC42MTgxNTgsIDAuOTc4OTM5LCAxLjQ1OTcxLCAyLjQyNDczLCAzLjAyNTA2IiwgXAotICAgICAgICAgICIwLjE0NjA2MywgMC4yMTUwNzcsIDAuNjE4MjQ2LCAwLjk3OTMyOCwgMS40NTk5NSwgMi40MjUwOCwgMy4wMjM1MSIsIFwKLSAgICAgICAgICAiMC4xNTUwMzEsIDAuMjIyMjc5LCAwLjYyMDAyOCwgMC45Nzg4NDMsIDEuNDYwMjUsIDIuNDI0OTEsIDMuMDI0NDEiLCBcCi0gICAgICAgICAgIjAuMTYzNDQsIDAuMjI5NTA2LCAwLjYyMzA4NywgMC45Nzk3MDEsIDEuNDU5NzgsIDIuNDIxNzcsIDMuMDI3ODQiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk4ODMyLCAwLjE0NDM2NCwgMC40MDExOTUsIDAuNjI3NTQ4LCAwLjkyODkzMiwgMS41MzI4OCwgMS45MTAwNiIsIFwKLSAgICAgICAgICAiMC4xMDUyMzcsIDAuMTUwNzMzLCAwLjQwNzU2NCwgMC42MzM4NDIsIDAuOTM1NTU4LCAxLjUzODc4LCAxLjkxNiIsIFwKLSAgICAgICAgICAiMC4xMTMzODIsIDAuMTU4OTc0LCAwLjQxNTkxNSwgMC42NDIzNTcsIDAuOTQ0NTQzLCAxLjU0Nzk5LCAxLjkyNTQiLCBcCi0gICAgICAgICAgIjAuMTIxNjU2LCAwLjE2NzE0OSwgMC40MjQxODMsIDAuNjUxMTI2LCAwLjk1Mjk1OSwgMS41NTYzNSwgMS45MzM5NCIsIFwKLSAgICAgICAgICAiMC4xMzAwMDQsIDAuMTc1NDc0LCAwLjQzMjUzLCAwLjY1OTA0MiwgMC45NjA2MzYsIDEuNTYzOTgsIDEuOTQyNDkiLCBcCi0gICAgICAgICAgIjAuMTQzNjExLCAwLjE4OTAyMSwgMC40NDU5LCAwLjY3MjQ1MiwgMC45NzQ0ODMsIDEuNTc4MDQsIDEuOTU1MTUiLCBcCi0gICAgICAgICAgIjAuMTU0NDg0LCAwLjIwMDgzOCwgMC40NTc4MDgsIDAuNjg0MjEzLCAwLjk4NjM0NCwgMS41ODkxNiwgMS45NjY0MiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xODI5NzMsIDAuMjc1ODE1LCAwLjgwMjI4MywgMS4yNjY1NSwgMS44ODQzNCwgMy4xMjIzNiwgMy44OTQ5OSIsIFwKLSAgICAgICAgICAiMC4xODI4MDgsIDAuMjc1ODg3LCAwLjgwMjA5MSwgMS4yNjYzNCwgMS44ODQ0MywgMy4xMjE2OCwgMy44OTUyMSIsIFwKLSAgICAgICAgICAiMC4xODM3ODIsIDAuMjc1ODY2LCAwLjgwMjE4NywgMS4yNjY1OSwgMS44ODU1OSwgMy4xMjE3LCAzLjg5NTIyIiwgXAotICAgICAgICAgICIwLjE4NjgyMSwgMC4yNzc0NDMsIDAuODAyMDc4LCAxLjI2NjY1LCAxLjg4NTU4LCAzLjEyMTcxLCAzLjg5NTc5IiwgXAotICAgICAgICAgICIwLjE5MTI0LCAwLjI4MDI5NSwgMC44MDIxMzUsIDEuMjY2NTYsIDEuODg0NDIsIDMuMTIxODksIDMuODk2MDYiLCBcCi0gICAgICAgICAgIjAuMTk5OTg0LCAwLjI4Njk3NSwgMC44MDI2NDIsIDEuMjY2NTYsIDEuODg1LCAzLjEyMjM0LCAzLjg5NTg4IiwgXAotICAgICAgICAgICIwLjIwODEzNCwgMC4yOTQyMDcsIDAuODA0MzU4LCAxLjI2NjM0LCAxLjg4NTAxLCAzLjEyMTgxLCAzLjg5NTM2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEyIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzA0NjMsIDAuMTA0MjQ3LCAwLjI5NTkxMywgMC40NjUwMDIsIDAuNjkwMzY0LCAxLjE0MTE2LCAxLjQyNDU1IiwgXAotICAgICAgICAgICIwLjA3NzQ5MSwgMC4xMTEzNjQsIDAuMzAzNDgsIDAuNDcyNjQ2LCAwLjY5ODEyLCAxLjE0OTI0LCAxLjQzMTU3IiwgXAotICAgICAgICAgICIwLjA4NDkzNywgMC4xMTg4NDEsIDAuMzEwODM3LCAwLjQ3OTkzOSwgMC43MDU3MDksIDEuMTU3ODQsIDEuNDM4NTkiLCBcCi0gICAgICAgICAgIjAuMDkyMjgsIDAuMTI2Mjc3LCAwLjMxODEwOCwgMC40ODcyODgsIDAuNzEyODgsIDEuMTY1LCAxLjQ0NzUiLCBcCi0gICAgICAgICAgIjAuMDk5NjE3LCAwLjEzMzY0MiwgMC4zMjU1NDksIDAuNDk0NzM0LCAwLjcyMDI0MSwgMS4xNzEwOSwgMS40NTQwMiIsIFwKLSAgICAgICAgICAiMC4xMDk5MTcsIDAuMTQ1NDMyLCAwLjMzNzUwNCwgMC41MDY1MzQsIDAuNzMzMjQ1LCAxLjE4MzM0LCAxLjQ2NDk0IiwgXAotICAgICAgICAgICIwLjExNzY5MywgMC4xNTUyNTgsIDAuMzQ3ODU0LCAwLjUxNzEzOSwgMC43NDMyMzUsIDEuMTkzNjMsIDEuNDc1NzIiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTMyMjk5LCAwLjIwMzUxOSwgMC42MDc4NTMsIDAuOTYzNzIyLCAxLjQzOTg4LCAyLjM5MDg4LCAyLjk4NDU5IiwgXAotICAgICAgICAgICIwLjEzMjMwNCwgMC4yMDM4ODUsIDAuNjA3NzY0LCAwLjk2NDI1OSwgMS40Mzk2MiwgMi4zOTA0MywgMi45ODQxOCIsIFwKLSAgICAgICAgICAiMC4xMzQwNTQsIDAuMjA0NDUzLCAwLjYwNzYzNywgMC45NjQ2MDYsIDEuNDM5NTgsIDIuMzkwNzMsIDIuOTgzNTUiLCBcCi0gICAgICAgICAgIjAuMTM3NDAxLCAwLjIwNjUzMywgMC42MDc3NzIsIDAuOTY1NjUyLCAxLjQzOTU0LCAyLjM5MDUyLCAyLjk5MTQ4IiwgXAotICAgICAgICAgICIwLjE0MjEyLCAwLjIxMDA3MywgMC42MDg3MSwgMC45NjU2MjIsIDEuNDQxNzcsIDIuMzkzMDUsIDIuOTgzODYiLCBcCi0gICAgICAgICAgIjAuMTUxMTUsIDAuMjE3MjA4LCAwLjYxMDY1NSwgMC45NjQ0MzYsIDEuNDM5ODIsIDIuMzk0MTYsIDIuOTg1NjkiLCBcCi0gICAgICAgICAgIjAuMTYwMDE5LCAwLjIyNDgxOSwgMC42MTM2OTYsIDAuOTY0ODgsIDEuNDM5MDgsIDIuMzkxMTEsIDIuOTg5MDciKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk1OTg5LCAwLjE0MTQ2MywgMC4zOTgzNjcsIDAuNjI0ODcxLCAwLjkyNjcyOSwgMS41MzAxLCAxLjkwNzQ3IiwgXAotICAgICAgICAgICIwLjEwMjk2OCwgMC4xNDg1MDcsIDAuNDA1MzIzLCAwLjYzMTU4NCwgMC45MzMyOTEsIDEuNTM2NTMsIDEuOTEzOTciLCBcCi0gICAgICAgICAgIjAuMTEyMTgxLCAwLjE1NzY2MywgMC40MTQ0NDgsIDAuNjQwNzc1LCAwLjk0MjY2NCwgMS41NDYyOSwgMS45MjM1NSIsIFwKLSAgICAgICAgICAiMC4xMjEyNTIsIDAuMTY2NTYzLCAwLjQyMzI1NywgMC42NDk5MzUsIDAuOTUxNzY5LCAxLjU1NTM3LCAxLjkzMjQiLCBcCi0gICAgICAgICAgIjAuMTMwNzY1LCAwLjE3NTkyOSwgMC40MzIzNTQsIDAuNjU4NzMsIDAuOTYwMjY0LCAxLjU2NDI5LCAxLjk0MjQiLCBcCi0gICAgICAgICAgIjAuMTQ2MjI5LCAwLjE5MTE3LCAwLjQ0NzA5MSwgMC42NzM2MzIsIDAuOTc0OTI1LCAxLjU3ODIyLCAxLjk1NjQ2IiwgXAotICAgICAgICAgICIwLjE1OTM3NSwgMC4yMDQ0NTgsIDAuNDYwMTQ1LCAwLjY4NjE2OCwgMC45ODc3NjgsIDEuNTkwOTQsIDEuOTY4MDQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTgyOTUxLCAwLjI3NTk1LCAwLjgwMjI0OCwgMS4yNjY2NywgMS44ODUwOSwgMy4xMjI0MSwgMy44OTUwNCIsIFwKLSAgICAgICAgICAiMC4xODI5MjEsIDAuMjc1ODEsIDAuODAyMTM4LCAxLjI2NjM4LCAxLjg4NDQ0LCAzLjEyMTczLCAzLjg5NTc3IiwgXAotICAgICAgICAgICIwLjE4NDEzNCwgMC4yNzYwMDEsIDAuODAyMTI5LCAxLjI2NjQyLCAxLjg4NDg0LCAzLjEyMjM4LCAzLjg5NjI2IiwgXAotICAgICAgICAgICIwLjE4ODI4MSwgMC4yNzgwNzcsIDAuODAyMTA5LCAxLjI2NjcsIDEuODg1MDEsIDMuMTIyMDEsIDMuODk1OSIsIFwKLSAgICAgICAgICAiMC4xOTQxOTUsIDAuMjgxOTI2LCAwLjgwMjAzNywgMS4yNjY0NCwgMS44ODQ0MywgMy4xMjI4NSwgMy44OTY3OCIsIFwKLSAgICAgICAgICAiMC4yMDUyOTQsIDAuMjkwNjY2LCAwLjgwMjMzMiwgMS4yNjY1NiwgMS44ODQ0MiwgMy4xMjE5NCwgMy44OTU3OCIsIFwKLSAgICAgICAgICAiMC4yMTYxMDQsIDAuMjk5NzMsIDAuODA1MDAyLCAxLjI2NjMsIDEuODg0NDEsIDMuMTIyMzYsIDMuODk1MjkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjAiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2ODUyOCwgMC4xMDI0OSwgMC4yOTUyNDgsIDAuNDY2MjcsIDAuNjk0MDM3LCAxLjE0OTY5LCAxLjQzNTEzIiwgXAotICAgICAgICAgICIwLjA3NjAzMywgMC4xMTAwNDYsIDAuMzAyNjA4LCAwLjQ3NDA3MSwgMC43MDE3MDEsIDEuMTU3ODcsIDEuNDQyODciLCBcCi0gICAgICAgICAgIjAuMDg1NzI3LCAwLjExOTY4NSwgMC4zMTIxNDcsIDAuNDgyNzY1LCAwLjcxMTkyMywgMS4xNjc4NSwgMS40NTE1NiIsIFwKLSAgICAgICAgICAiMC4wOTU1MzQsIDAuMTI5Mzg1LCAwLjMyMTc1MywgMC40OTI4NzYsIDAuNzIwMDI2LCAxLjE3NjMzLCAxLjQ2MTk0IiwgXAotICAgICAgICAgICIwLjEwNTU1MywgMC4xMzkyNDUsIDAuMzMxNjE2LCAwLjUwMjUxNSwgMC43MzA1OTksIDEuMTg1ODQsIDEuNDcxNDgiLCBcCi0gICAgICAgICAgIjAuMTIwNjI5LCAwLjE1NTE4NiwgMC4zNDY5NDQsIDAuNTE3ODM3LCAwLjc0NTU2MiwgMS4yMDE1OCwgMS40ODgxNyIsIFwKLSAgICAgICAgICAiMC4xMzE5NjcsIDAuMTY5MjExLCAwLjM2MDYzMSwgMC41MzEzMDQsIDAuNzU5MTI1LCAxLjIxNDgsIDEuNTAwMDkiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTM3ODEyLCAwLjIwOTM0OSwgMC42MTgxODQsIDAuOTc5MjAxLCAxLjQ2MDU0LCAyLjQyMjk0LCAzLjAyNDQ3IiwgXAotICAgICAgICAgICIwLjEzNzc1MSwgMC4yMDkzMzQsIDAuNjE3ODczLCAwLjk3OTMxOSwgMS40NjA3NCwgMi40MjMzMywgMy4wMjQ1OCIsIFwKLSAgICAgICAgICAiMC4xNDA5NjEsIDAuMjEwMzM0LCAwLjYxODAxMSwgMC45NzgzNzcsIDEuNDYwNjMsIDIuNDIzMzcsIDMuMDIzNjciLCBcCi0gICAgICAgICAgIjAuMTQ2ODg1LCAwLjIxNDI1MiwgMC42MTgwNTEsIDAuOTc4OTU4LCAxLjQ2MDUyLCAyLjQyNDM0LCAzLjAyNDUiLCBcCi0gICAgICAgICAgIjAuMTU0MjA5LCAwLjIxOTk1NCwgMC42MTgxNzQsIDAuOTc4ODQ4LCAxLjQ2MDM2LCAyLjQyNDgyLCAzLjAyMzU5IiwgXAotICAgICAgICAgICIwLjE2NzIzLCAwLjIzMTA3MiwgMC42MjA3NjcsIDAuOTc5MDMsIDEuNDYwODksIDIuNDIyMTIsIDMuMDI1MTMiLCBcCi0gICAgICAgICAgIjAuMTc5NDEsIDAuMjQyMDk2LCAwLjYyNTMxLCAwLjk3OTc4NSwgMS40NjA2NywgMi40MjIzMiwgMy4wMjQ4MiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzYyNDcsIDAuMDU0NDIyLCAwLjE1NzI0MSwgMC4yNDc4OCwgMC4zNjg2ODgsIDAuNjEwMTI2LCAwLjc2MDg3MSIsIFwKLSAgICAgICAgICAiMC4wNDQ2ODIsIDAuMDYyODgzLCAwLjE2NTc0NCwgMC4yNTYzODMsIDAuMzc3MTM4LCAwLjYxODUyNywgMC43NjkzMjgiLCBcCi0gICAgICAgICAgIjAuMDU1MzUzLCAwLjA3MzQ5MywgMC4xNzYzMTIsIDAuMjY2NjgsIDAuMzg3NDg3LCAwLjYyODc1MSwgMC43Nzk1MzIiLCBcCi0gICAgICAgICAgIjAuMDY1NTYyLCAwLjA4NDExNywgMC4xODY3MiwgMC4yNzczNDMsIDAuMzk4MTYyLCAwLjYzOTM0NywgMC43OTAxODkiLCBcCi0gICAgICAgICAgIjAuMDc0MDE5LCAwLjA5NDc5NSwgMC4xOTczNDksIDAuMjg3ODk4LCAwLjQwODcwNywgMC42NTAwODYsIDAuODAwODQxIiwgXAotICAgICAgICAgICIwLjA4NTI4LCAwLjEwOTQwNywgMC4yMTQ1NDQsIDAuMzA0OTQxLCAwLjQyNTY5OCwgMC42NjcwODUsIDAuODE3ODAxIiwgXAotICAgICAgICAgICIwLjA5Mzk2MSwgMC4xMjAzMzIsIDAuMjI5NTgyLCAwLjMxOTc5MiwgMC40NDA0NzIsIDAuNjgxODc2LCAwLjgzMjYxNSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzE5MjIsIDAuMTA5MDM1LCAwLjMxOTY1NiwgMC41MDU1NzQsIDAuNzUzNzkzLCAxLjI1MDIzLCAxLjU2MDU1IiwgXAotICAgICAgICAgICIwLjA3MzMwMSwgMC4xMDkzODYsIDAuMzE5NjQxLCAwLjUwNTYxOCwgMC43NTM1NDMsIDEuMjQ5ODYsIDEuNTU5OTgiLCBcCi0gICAgICAgICAgIjAuMDc5NjM0LCAwLjExMzc1LCAwLjMxOTYxOSwgMC41MDU1NywgMC43NTM2NDEsIDEuMjQ5OTUsIDEuNTYzMjEiLCBcCi0gICAgICAgICAgIjAuMDg4MjMsIDAuMTIwNzI3LCAwLjMyMTAwMiwgMC41MDU1NjIsIDAuNzUzNjUxLCAxLjI0OTgsIDEuNTYwMDEiLCBcCi0gICAgICAgICAgIjAuMDk3NTk3LCAwLjEyODg4OCwgMC4zMjQzOTgsIDAuNTA2MzM4LCAwLjc1MzcxNiwgMS4yNDk4NiwgMS41NTk4MyIsIFwKLSAgICAgICAgICAiMC4xMTMyNDQsIDAuMTQzNDI5LCAwLjMzMjM3OCwgMC41MTAzMTEsIDAuNzU0MzE0LCAxLjI0OTkyLCAxLjU1OTg0IiwgXAotICAgICAgICAgICIwLjEyNTIsIDAuMTU2OTgsIDAuMzQxMjIzLCAwLjUxNTk4NiwgMC43NTY2NzEsIDEuMjUwMjEsIDEuNTU5ODMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0MDIxLCAwLjAwNDAyMSwgMC4wMDQwMjEsIDAuMDA0MDIyLCAwLjAwNDAyMSwgMC4wMDQwMiwgMC4wMDQwMTkiLCBcCi0gICAgICAgICAgIjAuMDA0MDA1LCAwLjAwNDAwOCwgMC4wMDQwMTEsIDAuMDA0MDExLCAwLjAwNDAxMSwgMC4wMDQwMTEsIDAuMDA0MDEiLCBcCi0gICAgICAgICAgIjAuMDA0LCAwLjAwNDAwMiwgMC4wMDQwMDgsIDAuMDA0MDA5LCAwLjAwNDAwOSwgMC4wMDQwMDgsIDAuMDA0MDEiLCBcCi0gICAgICAgICAgIjAuMDA0MDA0LCAwLjAwNDAwNiwgMC4wMDQwMDksIDAuMDA0MDA5LCAwLjAwNDAwOSwgMC4wMDQwMDksIDAuMDA0MDA3IiwgXAotICAgICAgICAgICIwLjAwNDAxNSwgMC4wMDQwMTYsIDAuMDA0MDE0LCAwLjAwNDAxMywgMC4wMDQwMTIsIDAuMDA0MDExLCAwLjAwNDAwOSIsIFwKLSAgICAgICAgICAiMC4wMDQwNTcsIDAuMDA0MDQ2LCAwLjAwNDAyOCwgMC4wMDQwMjMsIDAuMDA0MDE5LCAwLjAwNDAxNSwgMC4wMDQwMTMiLCBcCi0gICAgICAgICAgIjAuMDA0MTExLCAwLjAwNDA4NiwgMC4wMDQwNDgsIDAuMDA0MDM3LCAwLjAwNDAyOSwgMC4wMDQwMjEsIDAuMDA0MDE4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwNzQxLCAwLjAwMDc0MiwgMC4wMDA3NDIsIDAuMDAwNzQyLCAwLjAwMDc0MSwgMC4wMDA3NDEsIDAuMDAwNzQiLCBcCi0gICAgICAgICAgIjAuMDAwNzA2LCAwLjAwMDcxMSwgMC4wMDA3MTgsIDAuMDAwNzE5LCAwLjAwMDcxOSwgMC4wMDA3MTksIDAuMDAwNzE5IiwgXAotICAgICAgICAgICIwLjAwMDY5MSwgMC4wMDA2OTgsIDAuMDAwNzExLCAwLjAwMDcxMywgMC4wMDA3MTQsIDAuMDAwNzE1LCAwLjAwMDcxNSIsIFwKLSAgICAgICAgICAiMC4wMDA2OTIsIDAuMDAwNjk4LCAwLjAwMDcxLCAwLjAwMDcxMiwgMC4wMDA3MTMsIDAuMDAwNzE0LCAwLjAwMDcxMyIsIFwKLSAgICAgICAgICAiMC4wMDA3MDksIDAuMDAwNzA5LCAwLjAwMDcxMiwgMC4wMDA3MTQsIDAuMDAwNzE0LCAwLjAwMDcxNCwgMC4wMDA3MTQiLCBcCi0gICAgICAgICAgIjAuMDAwNzYsIDAuMDAwNzQ2LCAwLjAwMDcyOCwgMC4wMDA3MjQsIDAuMDAwNzIxLCAwLjAwMDcxOCwgMC4wMDA3MTciLCBcCi0gICAgICAgICAgIjAuMDAwODMyLCAwLjAwMDc5NiwgMC4wMDA3NSwgMC4wMDA3MzksIDAuMDAwNzMxLCAwLjAwMDcyNCwgMC4wMDA3MjIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzNTY5LCAwLjAwMzU3LCAwLjAwMzU3MSwgMC4wMDM1NzEsIDAuMDAzNTcxLCAwLjAwMzU3MSwgMC4wMDM1NzEiLCBcCi0gICAgICAgICAgIjAuMDAzNTUzLCAwLjAwMzU1OSwgMC4wMDM1NjgsIDAuMDAzNTY5LCAwLjAwMzU3LCAwLjAwMzU3LCAwLjAwMzU3IiwgXAotICAgICAgICAgICIwLjAwMzU0LCAwLjAwMzU1LCAwLjAwMzU2NCwgMC4wMDM1NjksIDAuMDAzNTY4LCAwLjAwMzU2OSwgMC4wMDM1NyIsIFwKLSAgICAgICAgICAiMC4wMDM1MzksIDAuMDAzNTQ3LCAwLjAwMzU2MywgMC4wMDM1NjYsIDAuMDAzNTY4LCAwLjAwMzU3MiwgMC4wMDM1NjkiLCBcCi0gICAgICAgICAgIjAuMDAzNTQ1LCAwLjAwMzU1NCwgMC4wMDM1NjUsIDAuMDAzNTY4LCAwLjAwMzU2OSwgMC4wMDM1NjksIDAuMDAzNTciLCBcCi0gICAgICAgICAgIjAuMDAzNTg3LCAwLjAwMzU4MiwgMC4wMDM1NzcsIDAuMDAzNTc3LCAwLjAwMzU3NSwgMC4wMDM1NzQsIDAuMDAzNTc0IiwgXAotICAgICAgICAgICIwLjAwMzYzNCwgMC4wMDM2MiwgMC4wMDM1OTUsIDAuMDAzNTg5LCAwLjAwMzU4NCwgMC4wMDM1NzksIDAuMDAzNTc4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwNzQ0LCAwLjAwMDc0NCwgMC4wMDA3NDUsIDAuMDAwNzQ1LCAwLjAwMDc0NCwgMC4wMDA3NDQsIDAuMDAwNzQzIiwgXAotICAgICAgICAgICIwLjAwMDcwOCwgMC4wMDA3MTMsIDAuMDAwNzIsIDAuMDAwNzIxLCAwLjAwMDcyMiwgMC4wMDA3MjIsIDAuMDAwNzIxIiwgXAotICAgICAgICAgICIwLjAwMDY5NywgMC4wMDA3MDQsIDAuMDAwNzE0LCAwLjAwMDcxNiwgMC4wMDA3MTcsIDAuMDAwNzE3LCAwLjAwMDcxNyIsIFwKLSAgICAgICAgICAiMC4wMDA3MDYsIDAuMDAwNzA4LCAwLjAwMDcxNCwgMC4wMDA3MTYsIDAuMDAwNzE2LCAwLjAwMDcxNiwgMC4wMDA3MTYiLCBcCi0gICAgICAgICAgIjAuMDAwNzI3LCAwLjAwMDcyMywgMC4wMDA3MTksIDAuMDAwNzE5LCAwLjAwMDcxOCwgMC4wMDA3MTcsIDAuMDAwNzE3IiwgXAotICAgICAgICAgICIwLjAwMDc5MSwgMC4wMDA3NjksIDAuMDAwNzM3LCAwLjAwMDczLCAwLjAwMDcyNiwgMC4wMDA3MjIsIDAuMDAwNzIiLCBcCi0gICAgICAgICAgIjAuMDAwODYxLCAwLjAwMDgyMywgMC4wMDA3NjMsIDAuMDAwNzQ3LCAwLjAwMDczOCwgMC4wMDA3MjksIDAuMDAwNzI2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTIiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzA3NSwgMC4wMDMwNzgsIDAuMDAzMDgyLCAwLjAwMzA4MiwgMC4wMDMwODMsIDAuMDAzMDgzLCAwLjAwMzA4MyIsIFwKLSAgICAgICAgICAiMC4wMDMwNiwgMC4wMDMwNywgMC4wMDMwODYsIDAuMDAzMDg4LCAwLjAwMzA5LCAwLjAwMzA5MSwgMC4wMDMwOTIiLCBcCi0gICAgICAgICAgIjAuMDAzMDQsIDAuMDAzMDU2LCAwLjAwMzA4LCAwLjAwMzA4NSwgMC4wMDMwODgsIDAuMDAzMDkxLCAwLjAwMzA5MSIsIFwKLSAgICAgICAgICAiMC4wMDMwMzMsIDAuMDAzMDQ5LCAwLjAwMzA3NywgMC4wMDMwODQsIDAuMDAzMDg4LCAwLjAwMzA5LCAwLjAwMzA5MSIsIFwKLSAgICAgICAgICAiMC4wMDMwMzcsIDAuMDAzMDUyLCAwLjAwMzA3NSwgMC4wMDMwODMsIDAuMDAzMDg4LCAwLjAwMzA5MiwgMC4wMDMwOTIiLCBcCi0gICAgICAgICAgIjAuMDAzMDcxLCAwLjAwMzA3MywgMC4wMDMwODcsIDAuMDAzMDksIDAuMDAzMDkyLCAwLjAwMzA5NCwgMC4wMDMwOTQiLCBcCi0gICAgICAgICAgIjAuMDAzMTE5LCAwLjAwMzExLCAwLjAwMzEwMiwgMC4wMDMxMDEsIDAuMDAzMSwgMC4wMDMwOTksIDAuMDAzMSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDc0NCwgMC4wMDA3NDQsIDAuMDAwNzQ1LCAwLjAwMDc0NSwgMC4wMDA3NDUsIDAuMDAwNzQ0LCAwLjAwMDc0NCIsIFwKLSAgICAgICAgICAiMC4wMDA3MTEsIDAuMDAwNzE1LCAwLjAwMDcyMSwgMC4wMDA3MjIsIDAuMDAwNzIzLCAwLjAwMDcyMywgMC4wMDA3MjIiLCBcCi0gICAgICAgICAgIjAuMDAwNzE0LCAwLjAwMDcxNSwgMC4wMDA3MTksIDAuMDAwNzIsIDAuMDAwNzIsIDAuMDAwNzIsIDAuMDAwNzE5IiwgXAotICAgICAgICAgICIwLjAwMDc1NiwgMC4wMDA3NDUsIDAuMDAwNzMsIDAuMDAwNzI2LCAwLjAwMDcyNCwgMC4wMDA3MjIsIDAuMDAwNzIxIiwgXAotICAgICAgICAgICIwLjAwMDgwMywgMC4wMDA3ODIsIDAuMDAwNzQ0LCAwLjAwMDczNiwgMC4wMDA3MzEsIDAuMDAwNzI2LCAwLjAwMDcyNCIsIFwKLSAgICAgICAgICAiMC4wMDA5LCAwLjAwMDg1NywgMC4wMDA3NzksIDAuMDAwNzYxLCAwLjAwMDc0OCwgMC4wMDA3MzYsIDAuMDAwNzMyIiwgXAotICAgICAgICAgICIwLjAwMTAwNywgMC4wMDA5MzcsIDAuMDAwODIsIDAuMDAwNzkxLCAwLjAwMDc2OSwgMC4wMDA3NDksIDAuMDAwNzQyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjkwMSwgMC4wMDI5MDUsIDAuMDAyOTEsIDAuMDAyOTExLCAwLjAwMjkxMSwgMC4wMDI5MSwgMC4wMDI5MSIsIFwKLSAgICAgICAgICAiMC4wMDI4NzksIDAuMDAyODg4LCAwLjAwMjkwMiwgMC4wMDI5MDUsIDAuMDAyOTA3LCAwLjAwMjkwOCwgMC4wMDI5MDgiLCBcCi0gICAgICAgICAgIjAuMDAyODkyLCAwLjAwMjg5MywgMC4wMDI5MDIsIDAuMDAyOTA2LCAwLjAwMjkwNiwgMC4wMDI5MDcsIDAuMDAyOTA3IiwgXAotICAgICAgICAgICIwLjAwMjkzNSwgMC4wMDI5MjQsIDAuMDAyOTEzLCAwLjAwMjkxMiwgMC4wMDI5MTEsIDAuMDAyOTEsIDAuMDAyOTA5IiwgXAotICAgICAgICAgICIwLjAwMjk5OCwgMC4wMDI5NjgsIDAuMDAyOTMzLCAwLjAwMjkyNSwgMC4wMDI5MTksIDAuMDAyOTE1LCAwLjAwMjkxNCIsIFwKLSAgICAgICAgICAiMC4wMDMxMjksIDAuMDAzMDY3LCAwLjAwMjk3MywgMC4wMDI5NTUsIDAuMDAyOTQxLCAwLjAwMjkyOSwgMC4wMDI5MjQiLCBcCi0gICAgICAgICAgIjAuMDAzMjU5LCAwLjAwMzE2OCwgMC4wMDMwMjIsIDAuMDAyOTksIDAuMDAyOTYxLCAwLjAwMjk0MSwgMC4wMDI5MzQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDAwMjQsIDAuMDAwMDMsIDAuMDAwMDM2LCAwLjAwMDAzOCwgMC4wMDAwMzgsIDAuMDAwMDM5LCAwLjAwMDAzOSIsIFwKLSAgICAgICAgICAiMC4wMDAwMTcsIDAuMDAwMDMsIDAuMDAwMDUsIDAuMDAwMDU0LCAwLjAwMDA1NywgMC4wMDAwNjEsIDAuMDAwMDYxIiwgXAotICAgICAgICAgICIwLjAwMDA1MiwgMC4wMDAwNTUsIDAuMDAwMDYsIDAuMDAwMDYxLCAwLjAwMDA2MywgMC4wMDAwNjUsIDAuMDAwMDY2IiwgXAotICAgICAgICAgICIwLjAwMDA4MywgMC4wMDAwNzQsIDAuMDAwMDY4LCAwLjAwMDA2OCwgMC4wMDAwNjgsIDAuMDAwMDY4LCAwLjAwMDA2OSIsIFwKLSAgICAgICAgICAiMC4wMDAxNTQsIDAuMDAwMTIzLCAwLjAwMDA4OCwgMC4wMDAwODEsIDAuMDAwMDc3LCAwLjAwMDA3MywgMC4wMDAwNzIiLCBcCi0gICAgICAgICAgIjAuMDAwMzMyLCAwLjAwMDIzMywgMC4wMDAxMzEsIDAuMDAwMTEsIDAuMDAwMDk4LCAwLjAwMDA4NywgMC4wMDAwODMiLCBcCi0gICAgICAgICAgIjAuMDAwNTEyLCAwLjAwMDM3NSwgMC4wMDAxODUsIDAuMDAwMTQ1LCAwLjAwMDEyNCwgMC4wMDAxMDQsIDAuMDAwMDk3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogQU9JMzJYMSAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChBT0kzMlgxKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMzg4OTU3OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwOTEzNTYyOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDkxMDk4NTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA5MTM1NjI7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNTI0LCAwLjAwMDUyNCwgMC4wMDA1MjQsIDAuMDAwNTI0LCAwLjAwMDUyMywgMC4wMDA1MjMsIDAuMDAwNTIzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNTI1LCAwLjAwMDUyNSwgMC4wMDA1MjUsIDAuMDAwNTI1LCAwLjAwMDUyMywgMC4wMDA1MjYsIDAuMDAwNTI2Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihBMSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwOTMwNDIzOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDkyNzkxNTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA5MzA0MjM7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNTI0LCAwLjAwMDUyNCwgMC4wMDA1MjQsIDAuMDAwNTI0LCAwLjAwMDUyNCwgMC4wMDA1MjQsIDAuMDAwNTIzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNTI1LCAwLjAwMDUyNSwgMC4wMDA1MjUsIDAuMDAwNTI2LCAwLjAwMDUyNiwgMC4wMDA1MjYsIDAuMDAwNTI2Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihBMikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwOTQyNTU7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwOTM4MTg4OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDk0MjU1OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDI5NCwgMC4wMDAyOTMsIDAuMDAwMjkzLCAwLjAwMDI5MywgMC4wMDAyOTMsIDAuMDAwMjkzLCAwLjAwMDI5MyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDU5NSwgMC4wMDA1OTYsIDAuMDAwNTk2LCAwLjAwMDU5NiwgMC4wMDA1OTYsIDAuMDAwNTk2LCAwLjAwMDU5NiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQjApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDkxOTI5ODsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA5MTkyOTg7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwOTE3NzM2OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDUyNCwgMC4wMDA1MjQsIDAuMDAwNTI0LCAwLjAwMDUyNCwgMC4wMDA1MjMsIDAuMDAwNTI0LCAwLjAwMDUyNCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDU1MSwgMC4wMDA1MzMsIDAuMDAwNTMsIDAuMDAwNTI2LCAwLjAwMDUyNSwgMC4wMDA1MjYsIDAuMDAwNTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCMSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwOTA2MjQxOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDkwNjAyOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDkwNjI0MTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyODcsIDAuMDAwMjg3LCAwLjAwMDI4NywgMC4wMDAyODcsIDAuMDAwMjg3LCAwLjAwMDI4NywgMC4wMDAyODYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA1OTUsIDAuMDAwNTk2LCAwLjAwMDU5NiwgMC4wMDA1OTYsIDAuMDAwNTk2LCAwLjAwMDU5NiwgMC4wMDA1OTYiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4xNDE4ODk7Ci0gICAgZnVuY3Rpb24gOiAiKCEoKEIwIEIxKSsoKEEwIEExKSBBMikpKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTAiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3OTkwMSwgMC4xMTM5NDcsIDAuMzA2NTIxLCAwLjQ3NjE2MiwgMC43MDI0MDEsIDEuMTU0NjIsIDEuNDM3ODMiLCBcCi0gICAgICAgICAgIjAuMDg3MjMyLCAwLjEyMTI4NSwgMC4zMTM2OTcsIDAuNDgzMzA1LCAwLjcwOTcxOSwgMS4xNjIxOSwgMS40NDQ0NiIsIFwKLSAgICAgICAgICAiMC4wOTQ5MTUsIDAuMTI4OTgsIDAuMzIxNjg1LCAwLjQ5MTM1MSwgMC43MTc5MTcsIDEuMTcwNjIsIDEuNDUyNjgiLCBcCi0gICAgICAgICAgIjAuMTAyMzI5LCAwLjEzNjM0OSwgMC4zMjkwODQsIDAuNDk4OTI0LCAwLjcyNDc1NSwgMS4xNzcyNCwgMS40NjAyMiIsIFwKLSAgICAgICAgICAiMC4xMDk2MTQsIDAuMTQzNjU2LCAwLjMzNjIyOSwgMC41MDYwMTQsIDAuNzMyMDIsIDEuMTg0NzMsIDEuNDY3NzkiLCBcCi0gICAgICAgICAgIjAuMTIwNTM2LCAwLjE1NTI5NSwgMC4zNDgwOTMsIDAuNTE3MzU1LCAwLjc0MzkzMSwgMS4xOTYzOSwgMS40NzkwOSIsIFwKLSAgICAgICAgICAiMC4xMjkwMTEsIDAuMTY1NDYxLCAwLjM1ODM1NCwgMC41MjgxOTUsIDAuNzU0NDU5LCAxLjIwNjY3LCAxLjQ4OTM5Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE0NDg0NywgMC4yMTY3MTcsIDAuNjI0MTk2LCAwLjk4MzQ3NSwgMS40NjI2MywgMi40MjIxNSwgMy4wMjE5MiIsIFwKLSAgICAgICAgICAiMC4xNDQ4NDksIDAuMjE2Njc5LCAwLjYyNDU1MywgMC45ODM2MTUsIDEuNDYyMiwgMi40MjE3NCwgMy4wMjI1MiIsIFwKLSAgICAgICAgICAiMC4xNDU5MjksIDAuMjE3MDgsIDAuNjI0MTkxLCAwLjk4MzUwOCwgMS40NjMyOSwgMi40MjI0OSwgMy4wMjEyIiwgXAotICAgICAgICAgICIwLjE0ODg3MywgMC4yMTg5NDcsIDAuNjI0MTY5LCAwLjk4MzU0NCwgMS40NjIxNiwgMi40MjI2NywgMy4wMjEyNyIsIFwKLSAgICAgICAgICAiMC4xNTI5NzQsIDAuMjIyMDI5LCAwLjYyNDE5NywgMC45ODMxNjIsIDEuNDYyNDEsIDIuNDIyMzEsIDMuMDIyMzIiLCBcCi0gICAgICAgICAgIjAuMTYxMTM1LCAwLjIyODY0NiwgMC42MjU4NDMsIDAuOTgzNjM0LCAxLjQ2MjM5LCAyLjQyMjQzLCAzLjAyMDk5IiwgXAotICAgICAgICAgICIwLjE2OTM5NywgMC4yMzU2NDEsIDAuNjI4NTE2LCAwLjk4Mzk1MSwgMS40NjI4NywgMi40MjEwMiwgMy4wMjI1NyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDcwMDQsIDAuMTUyNTcxLCAwLjQwOTY0NCwgMC42MzU5MDYsIDAuOTM3ODIxLCAxLjU0MjE4LCAxLjkxODQ1IiwgXAotICAgICAgICAgICIwLjExMjM4OCwgMC4xNTc5MzgsIDAuNDE1MDM2LCAwLjY0MTUwNiwgMC45NDI4NDUsIDEuNTQ2MTUsIDEuOTI0NTYiLCBcCi0gICAgICAgICAgIjAuMTE4NDEyLCAwLjE2NDA0MywgMC40MjExOTQsIDAuNjQ3NzI3LCAwLjk0OTg4OSwgMS41NTQxNSwgMS45MzAwOSIsIFwKLSAgICAgICAgICAiMC4xMjQ0NjUsIDAuMTcwMDQ0LCAwLjQyNzA1OSwgMC42NTM4MDksIDAuOTU2MTA1LCAxLjU1OTY4LCAxLjkzNTk4IiwgXAotICAgICAgICAgICIwLjEzMDUxMywgMC4xNzYxMjgsIDAuNDMzMzM1LCAwLjY1OTcwMywgMC45NjIxMDksIDEuNTY0NjMsIDEuOTQyMzYiLCBcCi0gICAgICAgICAgIjAuMTQwNzE2LCAwLjE4NTkxOCwgMC40NDI5NDYsIDAuNjY5NzUyLCAwLjk3MTUwOSwgMS41NzQ4MiwgMS45NTI0OSIsIFwKLSAgICAgICAgICAiMC4xNDg2NjYsIDAuMTk0OTUyLCAwLjQ1MTQ1MSwgMC42Nzc5NSwgMC45Nzk3NDksIDEuNTg0NzcsIDEuOTYwMTIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTk1MDg1LCAwLjI4NzkyOCwgMC44MTQwNDUsIDEuMjc4MjUsIDEuODk3MTMsIDMuMTMzLCAzLjkwNjA3IiwgXAotICAgICAgICAgICIwLjE5NTA1MSwgMC4yODc4NjEsIDAuODE0MDI0LCAxLjI3Nzk2LCAxLjg5NzAyLCAzLjEzMzQ3LCAzLjkwNjU5IiwgXAotICAgICAgICAgICIwLjE5NTc2OCwgMC4yODgwODcsIDAuODE0MTM2LCAxLjI3ODQ4LCAxLjg5NjksIDMuMTMzODQsIDMuOTA1NzQiLCBcCi0gICAgICAgICAgIjAuMTk3NzEsIDAuMjg5MTYyLCAwLjgxNDE3MywgMS4yNzgyNSwgMS44OTY4MSwgMy4xMzMxNCwgMy45MDYyNCIsIFwKLSAgICAgICAgICAiMC4yMDA1MDYsIDAuMjkxMDc5LCAwLjgxNDAzNSwgMS4yNzc3MywgMS44OTY4NSwgMy4xMzMwNywgMy45MDYyMiIsIFwKLSAgICAgICAgICAiMC4yMDY2MTUsIDAuMjk1NTQsIDAuODE0NTgsIDEuMjc4MTQsIDEuODk3MDcsIDMuMTMzMTMsIDMuOTA2MjIiLCBcCi0gICAgICAgICAgIjAuMjEyNTY0LCAwLjMwMDczNywgMC44MTU4NTQsIDEuMjc4MDksIDEuODk3MSwgMy4xMzMxNiwgMy45MDU2NiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc4NDcyLCAwLjExMjcxNiwgMC4zMDYzMDksIDAuNDc3MzM1LCAwLjcwNTUyNywgMS4xNjE5NiwgMS40NDU1NyIsIFwKLSAgICAgICAgICAiMC4wODU4MTYsIDAuMTIwMDg2LCAwLjMxMzk2MiwgMC40ODUwODEsIDAuNzEyNTQ2LCAxLjE2Nzg1LCAxLjQ1NDQiLCBcCi0gICAgICAgICAgIjAuMDkzNDYxLCAwLjEyNzczNiwgMC4zMjE3NTQsIDAuNDkyNzg3LCAwLjcyMDgyNSwgMS4xNzY1MywgMS40NjAxNyIsIFwKLSAgICAgICAgICAiMC4xMDA4NjIsIDAuMTM1MTY1LCAwLjMyOTA3NywgMC41MDAzMjcsIDAuNzI3NjIzLCAxLjE4MzU0LCAxLjQ2ODMyIiwgXAotICAgICAgICAgICIwLjEwODE1NSwgMC4xNDI0NDgsIDAuMzM2MzE1LCAwLjUwNzE3MiwgMC43MzUxLCAxLjE5MDQsIDEuNDc2ODEiLCBcCi0gICAgICAgICAgIjAuMTE4OTQ5LCAwLjE1NDEwOSwgMC4zNDgwODEsIDAuNTE5MTA5LCAwLjc0Njc4MywgMS4yMDI1MiwgMS40ODg3NSIsIFwKLSAgICAgICAgICAiMC4xMjcyODYsIDAuMTY0MjgzLCAwLjM1ODQ2MywgMC41Mjk2MzgsIDAuNzU3NDI0LCAxLjIxMjc0LCAxLjQ5NzYxIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE0MzMyLCAwLjIxNTU4MiwgMC42MjU5MTcsIDAuOTg3NzM3LCAxLjQ3MDYsIDIuNDM3MzIsIDMuMDQwNCIsIFwKLSAgICAgICAgICAiMC4xNDMyNzgsIDAuMjE1ODI5LCAwLjYyNTk4NywgMC45ODgwODEsIDEuNDcwODEsIDIuNDM3NjYsIDMuMDQxNDkiLCBcCi0gICAgICAgICAgIjAuMTQ0MzU1LCAwLjIxNjAyNSwgMC42MjYwMDgsIDAuOTg4MDI4LCAxLjQ3MDYsIDIuNDM3MDgsIDMuMDM5MzciLCBcCi0gICAgICAgICAgIjAuMTQ3MzY3LCAwLjIxNzk1NywgMC42MjU4MzYsIDAuOTg4MDY2LCAxLjQ2OTk3LCAyLjQzNzYsIDMuMDQwNDIiLCBcCi0gICAgICAgICAgIjAuMTUxNTA4LCAwLjIyMTAwOSwgMC42MjYwNzQsIDAuOTg3NTQ1LCAxLjQ3MDAyLCAyLjQzNjA2LCAzLjA0MjE5IiwgXAotICAgICAgICAgICIwLjE1OTY3OSwgMC4yMjc2NzQsIDAuNjI3NDgsIDAuOTg3NTc3LCAxLjQ3MDg3LCAyLjQzNTc2LCAzLjA0MTU1IiwgXAotICAgICAgICAgICIwLjE2ODA5NywgMC4yMzQ4MDcsIDAuNjMwNTUzLCAwLjk4ODQ5OSwgMS40NzA1NSwgMi40Mzg0OCwgMy4wNDMzNiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDU2MDMsIDAuMTUxMDkxLCAwLjQwODEsIDAuNjM0MjU4LCAwLjkzNjE1MywgMS41NDAxNSwgMS45MTY3NSIsIFwKLSAgICAgICAgICAiMC4xMTIwMzEsIDAuMTU3NTk4LCAwLjQxNDQyOSwgMC42NDA3NDIsIDAuOTQyNDI3LCAxLjU0NTU3LCAxLjkyMjk2IiwgXAotICAgICAgICAgICIwLjEyMDI2MiwgMC4xNjU2OTQsIDAuNDIyOTc5LCAwLjY0OTI1OCwgMC45NTE0OTgsIDEuNTU1NTMsIDEuOTMxODgiLCBcCi0gICAgICAgICAgIjAuMTI4NDYzLCAwLjE3Mzk0NCwgMC40MzEwMjIsIDAuNjU3OTUsIDAuOTU5ODE4LCAxLjU2MzI2LCAxLjk0MTEyIiwgXAotICAgICAgICAgICIwLjEzNjgyNSwgMC4xODIyMDksIDAuNDM5NTY0LCAwLjY2NTc1OCwgMC45Njc1NTUsIDEuNTcwODQsIDEuOTQ5NiIsIFwKLSAgICAgICAgICAiMC4xNTAxNjYsIDAuMTk1NTU5LCAwLjQ1MjgxNSwgMC42Nzk2NDEsIDAuOTgwOTc1LCAxLjU4NDQyLCAxLjk2MTE4IiwgXAotICAgICAgICAgICIwLjE2MTU2MSwgMC4yMDc2MjEsIDAuNDY0NTQ1LCAwLjY5MDk1LCAwLjk5MjczMywgMS41OTU5MSwgMS45NzMxNiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xOTUwODksIDAuMjg3OTU5LCAwLjgxNDAxNSwgMS4yNzc4MiwgMS44OTcxLCAzLjEzMzIxLCAzLjkwNjI3IiwgXAotICAgICAgICAgICIwLjE5NTA2OSwgMC4yODc4NTgsIDAuODEzOTUxLCAxLjI3ODAyLCAxLjg5NjM3LCAzLjEzMzE3LCAzLjkwNjc0IiwgXAotICAgICAgICAgICIwLjE5NjA2MywgMC4yODc5NjMsIDAuODE0MTEsIDEuMjc4MTEsIDEuODk2OCwgMy4xMzI5MywgMy45MDYzNiIsIFwKLSAgICAgICAgICAiMC4xOTg3NjgsIDAuMjg5MzQyLCAwLjgxNDE1NSwgMS4yNzg0MSwgMS44OTcxLCAzLjEzMzcxLCAzLjkwNjQ0IiwgXAotICAgICAgICAgICIwLjIwMjg4NiwgMC4yOTIwNzksIDAuODE0MDIsIDEuMjc4MDEsIDEuODk3MDcsIDMuMTMzNTIsIDMuOTA2MDQiLCBcCi0gICAgICAgICAgIjAuMjExMjgxLCAwLjI5ODQ0NCwgMC44MTQzMjgsIDEuMjc4MjgsIDEuODk3MDMsIDMuMTMyOTIsIDMuOTA1NjgiLCBcCi0gICAgICAgICAgIjAuMjE5MzcyLCAwLjMwNTY2OSwgMC44MTU5NDgsIDEuMjc4LCAxLjg5NzAzLCAzLjEzMzc4LCAzLjkwNTcxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEyIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzYxMzIsIDAuMTEwMzc4LCAwLjMwNDIxMywgMC40NzUxMjksIDAuNzAzMjE4LCAxLjE1ODQ0LCAxLjQ0MzEzIiwgXAotICAgICAgICAgICIwLjA4MzUwMywgMC4xMTc3ODksIDAuMzExNjQ4LCAwLjQ4MjcyOSwgMC43MTAyMTMsIDEuMTY1NjUsIDEuNDUxOTciLCBcCi0gICAgICAgICAgIjAuMDkxMTEyLCAwLjEyNTM5NCwgMC4zMTkzODgsIDAuNDg5OTA4LCAwLjcxNzY4MSwgMS4xNzMzNywgMS40NTg2MyIsIFwKLSAgICAgICAgICAiMC4wOTg0NjYsIDAuMTMyNzgyLCAwLjMyNjczLCAwLjQ5Nzc3OSwgMC43MjU0NzIsIDEuMTgxMTYsIDEuNDY1OTMiLCBcCi0gICAgICAgICAgIjAuMTA1NjI2LCAwLjE0MDAxOCwgMC4zMzM5NTIsIDAuNTA0ODYsIDAuNzMyOTI5LCAxLjE4ODQ1LCAxLjQ3MzUyIiwgXAotICAgICAgICAgICIwLjExNjI1OSwgMC4xNTE2NjQsIDAuMzQ1ODQxLCAwLjUxNTg2NiwgMC43NDUzNTEsIDEuMjAwMjMsIDEuNDg1NDMiLCBcCi0gICAgICAgICAgIjAuMTI0MzYsIDAuMTYxNzI0LCAwLjM1NjA2OSwgMC41MjcyNTYsIDAuNzU0OTUsIDEuMjEwMzMsIDEuNDk1MiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNDAyMTQsIDAuMjEyNTk0LCAwLjYyMjg4NCwgMC45ODQ2NTIsIDEuNDY3MjQsIDIuNDMxOTEsIDMuMDM0MzUiLCBcCi0gICAgICAgICAgIjAuMTQwMjQ1LCAwLjIxMjU5NiwgMC42MjI3OTQsIDAuOTg0NzYsIDEuNDY3NDEsIDIuNDMxODUsIDMuMDM1MyIsIFwKLSAgICAgICAgICAiMC4xNDEzODMsIDAuMjEyOTY0LCAwLjYyMjc1OCwgMC45ODUwOTUsIDEuNDY3NDQsIDIuNDMyNzQsIDMuMDM0NzgiLCBcCi0gICAgICAgICAgIjAuMTQ0NDk4LCAwLjIxNDk0OCwgMC42MjI3MzksIDAuOTg0NTk3LCAxLjQ2Njc1LCAyLjQzMTc0LCAzLjAzNDMxIiwgXAotICAgICAgICAgICIwLjE0ODY2MywgMC4yMTgwNzUsIDAuNjIyNjg3LCAwLjk4NDc4NiwgMS40NjY4MywgMi40MzI3MSwgMy4wMzQ4MiIsIFwKLSAgICAgICAgICAiMC4xNTcwMDEsIDAuMjI0ODk5LCAwLjYyNDI2MSwgMC45ODQ0MTEsIDEuNDY2ODksIDIuNDMyOTYsIDMuMDM0NDQiLCBcCi0gICAgICAgICAgIjAuMTY1MjM2LCAwLjIzMjAzMSwgMC42Mjc1MywgMC45ODUyMDMsIDEuNDY3NDcsIDIuNDMzNDYsIDMuMDM3MjQiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTAyNDgzLCAwLjE0ODAxNywgMC40MDQ5MDksIDAuNjMxNTI2LCAwLjkzMjcxNywgMS41MzY1NCwgMS45MTM2NSIsIFwKLSAgICAgICAgICAiMC4xMDk0NTgsIDAuMTU0OTg0LCAwLjQxMTgyOCwgMC42MzgxMTYsIDAuOTM5ODExLCAxLjU0MzA5LCAxLjkyMTA0IiwgXAotICAgICAgICAgICIwLjExODYzNCwgMC4xNjQyMTIsIDAuNDIwODc1LCAwLjY0NzMxNiwgMC45NDg5MTIsIDEuNTUyODcsIDEuOTMwMDMiLCBcCi0gICAgICAgICAgIjAuMTI3Nzc2LCAwLjE3MzIwOCwgMC40Mjk4NTUsIDAuNjU2MTcyLCAwLjk1ODUwMywgMS41NjE4MywgMS45Mzg4IiwgXAotICAgICAgICAgICIwLjEzNzIwOCwgMC4xODI0NzEsIDAuNDM5MTY5LCAwLjY2NTMxNCwgMC45NjY5MzIsIDEuNTcxMTgsIDEuOTQ5MSIsIFwKLSAgICAgICAgICAiMC4xNTI2NTUsIDAuMTk3Njc4LCAwLjQ1Mzc0OCwgMC42Nzk5NzcsIDAuOTgyMTM3LCAxLjU4NDg0LCAxLjk2Mjk3IiwgXAotICAgICAgICAgICIwLjE2NjAxMiwgMC4yMTExODYsIDAuNDY2NzA4LCAwLjY5MjkzMywgMC45OTQ1NTIsIDEuNTk3NjYsIDEuOTc0NzMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTk1MDUsIDAuMjg3ODc3LCAwLjgxMzk1OCwgMS4yNzgwNiwgMS44OTY5NSwgMy4xMzM3MSwgMy45MDYwMyIsIFwKLSAgICAgICAgICAiMC4xOTUwNjIsIDAuMjg3OTIzLCAwLjgxMzksIDEuMjc3ODgsIDEuODk2MzIsIDMuMTMzNzksIDMuOTA2MTYiLCBcCi0gICAgICAgICAgIjAuMTk2MTI0LCAwLjI4Nzk3MSwgMC44MTQxMzYsIDEuMjc3NzQsIDEuODk2OTYsIDMuMTMzNzYsIDMuOTA2MTIiLCBcCi0gICAgICAgICAgIjAuMjAwMDA1LCAwLjI4OTg1OCwgMC44MTQwNzksIDEuMjc4MTcsIDEuODk2OCwgMy4xMzMsIDMuOTA2MjQiLCBcCi0gICAgICAgICAgIjAuMjA1Njc2LCAwLjI5MzYxLCAwLjgxNDE0MiwgMS4yNzgwMywgMS44OTcxNiwgMy4xMzMwNCwgMy45MDYyNCIsIFwKLSAgICAgICAgICAiMC4yMTY1NDUsIDAuMzAyMDg0LCAwLjgxNDI1NCwgMS4yNzgzNSwgMS44OTYzMywgMy4xMzM4LCAzLjkwNjExIiwgXAotICAgICAgICAgICIwLjIyNzI4OCwgMC4zMTEyODIsIDAuODE2MzgxLCAxLjI3ODM4LCAxLjg5NzA3LCAzLjEzMzY5LCAzLjkwNjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzE5NDQsIDAuMTA2MDM0LCAwLjI5ODQxLCAwLjQ2OTE1OSwgMC42OTY4NjYsIDEuMTUyNzMsIDEuNDM3NjUiLCBcCi0gICAgICAgICAgIjAuMDc5NTY3LCAwLjExMzYyMywgMC4zMDYxMDEsIDAuNDc2NTEzLCAwLjcwNDY0OSwgMS4xNjAzNiwgMS40NDQwOSIsIFwKLSAgICAgICAgICAiMC4wODkyODQsIDAuMTIzMzAzLCAwLjMxNTY2NywgMC40ODYwNTksIDAuNzE0MTQ2LCAxLjE2OTY5LCAxLjQ1NDU4IiwgXAotICAgICAgICAgICIwLjA5ODkzOSwgMC4xMzI4NjIsIDAuMzI1MjA3LCAwLjQ5NTYzNiwgMC43MjMyMjcsIDEuMTc5OTQsIDEuNDY0OTEiLCBcCi0gICAgICAgICAgIjAuMTA4OTQzLCAwLjE0Mjc0NCwgMC4zMzQ4NzIsIDAuNTA1MjM3LCAwLjczMzIzNywgMS4xODk3OCwgMS40NzI5IiwgXAotICAgICAgICAgICIwLjEyNDM0NCwgMC4xNTg2OTQsIDAuMzUwNDQ4LCAwLjUyMDk4MSwgMC43NDg0NjksIDEuMjA0MjEsIDEuNDg4NDciLCBcCi0gICAgICAgICAgIjAuMTM1NzAzLCAwLjE3MjY4NiwgMC4zNjQwMzksIDAuNTM0MTkxLCAwLjc2MjMyNCwgMS4yMTcyMiwgMS41MDIxNCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNDQ4MDEsIDAuMjE2Nzc0LCAwLjYyNTczOSwgMC45ODc5MTksIDEuNDcwMTQsIDIuNDM1MzQsIDMuMDM4NTUiLCBcCi0gICAgICAgICAgIjAuMTQ0NTY3LCAwLjIxNjYzNCwgMC42MjU4MjcsIDAuOTg3NjA1LCAxLjQ3MDM4LCAyLjQzNTMxLCAzLjA0MDUzIiwgXAotICAgICAgICAgICIwLjE0NzQwMSwgMC4yMTc0MDEsIDAuNjI2MDA3LCAwLjk4Nzc3MSwgMS40NzAxMiwgMi40MzQ5MSwgMy4wMzg4NiIsIFwKLSAgICAgICAgICAiMC4xNTMxOCwgMC4yMjExNDIsIDAuNjI1NzAyLCAwLjk4ODAwMiwgMS40NzA4NywgMi40MzUxOCwgMy4wMzkyIiwgXAotICAgICAgICAgICIwLjE2MDI3NCwgMC4yMjY2NzgsIDAuNjI1ODM2LCAwLjk4ODAyNywgMS40NzAwNywgMi40MzU0NCwgMy4wNDA5IiwgXAotICAgICAgICAgICIwLjE3MzMyNSwgMC4yMzc3MjQsIDAuNjI4NDg5LCAwLjk4NzcwMSwgMS40NzA3MywgMi40MzYyMywgMy4wMzc2NiIsIFwKLSAgICAgICAgICAiMC4xODUzNzQsIDAuMjQ4Njg1LCAwLjYzMjk4LCAwLjk4ODI2MSwgMS40NzAxMywgMi40MzQ2MSwgMy4wMzcwNyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjQzOSwgMC4wOTYyOCwgMC4yNzY1NjUsIDAuNDM1Mzk2LCAwLjY0NzExNywgMS4wNjk4MiwgMS4zMzM4IiwgXAotICAgICAgICAgICIwLjA3MTEwNywgMC4xMDMwNywgMC4yODM0MzMsIDAuNDQyMywgMC42NTM5NzIsIDEuMDc2NzIsIDEuMzQwNzQiLCBcCi0gICAgICAgICAgIjAuMDc5MzI4LCAwLjExMTM3MywgMC4yOTE4MTQsIDAuNDUwNzA2LCAwLjY2MjM4NSwgMS4wODUxNSwgMS4zNDkxOCIsIFwKLSAgICAgICAgICAiMC4wODc1MjYsIDAuMTE5NjI0LCAwLjMwMDMzNCwgMC40NTkyODUsIDAuNjcwOTU4LCAxLjA5MzY3LCAxLjM1NzkiLCBcCi0gICAgICAgICAgIjAuMDk1NzY0LCAwLjEyNzcxMywgMC4zMDg3MTcsIDAuNDY3NzA2LCAwLjY3OTQzMiwgMS4xMDIxNSwgMS4zNjYyMSIsIFwKLSAgICAgICAgICAiMC4xMDcwNTMsIDAuMTQxMDcxLCAwLjMyMjAyNSwgMC40ODA5NjUsIDAuNjkyNzEsIDEuMTE1NDksIDEuMzc5NTciLCBcCi0gICAgICAgICAgIjAuMTE2MTc0LCAwLjE1MTY3MSwgMC4zMzMyNzYsIDAuNDkyNzAxLCAwLjcwNDMzNCwgMS4xMjcwNywgMS4zOTExOSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMjkyNzYsIDAuMTk0MjA4LCAwLjU2MjcwOSwgMC44ODgxMTIsIDEuMzIyMDksIDIuMTkwMiwgMi43MzI4OSIsIFwKLSAgICAgICAgICAiMC4xMjkzODUsIDAuMTk0MTYxLCAwLjU2MjY3NSwgMC44ODgwNzcsIDEuMzIxODksIDIuMTg5NzksIDIuNzM5MDQiLCBcCi0gICAgICAgICAgIjAuMTMxODUyLCAwLjE5NTE3OCwgMC41NjI2ODQsIDAuODg4MDc3LCAxLjMyMTc0LCAyLjE4OTg2LCAyLjczMTc2IiwgXAotICAgICAgICAgICIwLjEzNjExMiwgMC4xOTgxODEsIDAuNTYyNjY1LCAwLjg4ODA0NywgMS4zMjE3NCwgMi4xOTM5LCAyLjczMjk1IiwgXAotICAgICAgICAgICIwLjE0MTcxMSwgMC4yMDIyMjgsIDAuNTYzMDE4LCAwLjg4ODAzNCwgMS4zMjE5LCAyLjE5Mzk5LCAyLjczMjc3IiwgXAotICAgICAgICAgICIwLjE1MTMxNCwgMC4yMTA3MzcsIDAuNTY1NzE2LCAwLjg4ODE1NCwgMS4zMjE3MywgMi4xOSwgMi43MzE4MSIsIFwKLSAgICAgICAgICAiMC4xNjA4MTcsIDAuMjE4NTkxLCAwLjU2ODgwNCwgMC44ODkzMjIsIDEuMzIxOTMsIDIuMTkwMDQsIDIuNzMxODkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2OTg3NiwgMC4xMDM5NzcsIDAuMjk2ODg1LCAwLjQ2Njk2NCwgMC42OTYwMTYsIDEuMTUyNDEsIDEuNDM4MzIiLCBcCi0gICAgICAgICAgIjAuMDc3NDA0LCAwLjExMTUyMSwgMC4zMDQzNjYsIDAuNDc1MTI0LCAwLjcwMzcxOSwgMS4xNjA0NCwgMS40NDQyMyIsIFwKLSAgICAgICAgICAiMC4wODY5MTgsIDAuMTIxMDI2LCAwLjMxMzczMiwgMC40ODQyODgsIDAuNzEyNTY3LCAxLjE2OTI3LCAxLjQ1NDUxIiwgXAotICAgICAgICAgICIwLjA5Njc1OCwgMC4xMzA3OSwgMC4zMjM1MTEsIDAuNDk0MjQ5LCAwLjcyMjA2NiwgMS4xNzk3LCAxLjQ2NTE1IiwgXAotICAgICAgICAgICIwLjEwNjcxOSwgMC4xNDA2MjUsIDAuMzMzMjE5LCAwLjUwMzgxNSwgMC43MzIyMDgsIDEuMTg5NTUsIDEuNDczMTQiLCBcCi0gICAgICAgICAgIjAuMTIxNzg2LCAwLjE1NjQyNywgMC4zNDg2ODgsIDAuNTE5NDUxLCAwLjc0NzMxLCAxLjIwMzcsIDEuNDg4NyIsIFwKLSAgICAgICAgICAiMC4xMzI5NjEsIDAuMTcwMzk1LCAwLjM2MjIxLCAwLjUzMjc5MiwgMC43NjA4OTYsIDEuMjE2OTcsIDEuNTAyODMiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTQyMDY1LCAwLjIxNDEzNCwgMC42MjQwNDMsIDAuOTg2MTg0LCAxLjQ3MDA0LCAyLjQzNjY4LCAzLjA0NjY4IiwgXAotICAgICAgICAgICIwLjE0MTg0MywgMC4yMTQwOTYsIDAuNjIzOTk2LCAwLjk4NjI2MSwgMS40NzAxMywgMi40MzYxMywgMy4wNDA1OCIsIFwKLSAgICAgICAgICAiMC4xNDQ5MjksIDAuMjE0Nzg5LCAwLjYyMzk2MiwgMC45ODY2MjQsIDEuNDY5NTIsIDIuNDM1OSwgMy4wNDEwNSIsIFwKLSAgICAgICAgICAiMC4xNTA2NzMsIDAuMjE4NjY2LCAwLjYyMzczNiwgMC45ODY2MjksIDEuNDcwMjgsIDIuNDM2NTQsIDMuMDQxNjgiLCBcCi0gICAgICAgICAgIjAuMTU3OTExLCAwLjIyNDIzNSwgMC42MjM5MywgMC45ODY3MTksIDEuNDY5NjQsIDIuNDM2ODQsIDMuMDQzNCIsIFwKLSAgICAgICAgICAiMC4xNzA5MjYsIDAuMjM1MjgxLCAwLjYyNjY5MSwgMC45ODYyMzUsIDEuNDcwNDEsIDIuNDM1NTMsIDMuMDQwMTYiLCBcCi0gICAgICAgICAgIjAuMTgzMTY2LCAwLjI0NjQ1MSwgMC42MzA4OTQsIDAuOTg2ODY0LCAxLjQ3MDIsIDIuNDM1OTksIDMuMDQyMTMiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDYyNzk1LCAwLjA5NDcwMSwgMC4yNzQ5NTMsIDAuNDMzODE1LCAwLjY0NTQ2NywgMS4wNjgxOSwgMS4zMzIzOCIsIFwKLSAgICAgICAgICAiMC4wNzA1MDEsIDAuMTAyNDI3LCAwLjI4MjgxMywgMC40NDE2MSwgMC42NTMyOTYsIDEuMDc2MDMsIDEuMzQwMDkiLCBcCi0gICAgICAgICAgIjAuMDgwMjcxLCAwLjExMjIwNCwgMC4yOTI1NDUsIDAuNDUxNDE5LCAwLjY2MzEwNiwgMS4wODU4OSwgMS4zNDk4NSIsIFwKLSAgICAgICAgICAiMC4wOTAwNDcsIDAuMTIxODQ4LCAwLjMwMjA2NiwgMC40NjA5MjgsIDAuNjcyNTUzLCAxLjA5NTMsIDEuMzU5MzEiLCBcCi0gICAgICAgICAgIjAuMTAwMDI5LCAwLjEzMTc3LCAwLjMxMTg1LCAwLjQ3MDY0NywgMC42ODIyNTIsIDEuMTA1MDUsIDEuMzY5IiwgXAotICAgICAgICAgICIwLjExNDQzMiwgMC4xNDc4MTUsIDAuMzI3NTI5LCAwLjQ4NTc0NiwgMC42OTc4MTgsIDEuMTIwNTIsIDEuMzg0NSIsIFwKLSAgICAgICAgICAiMC4xMjUzMzYsIDAuMTYxNTU2LCAwLjM0MTI0OCwgMC40OTk5NDMsIDAuNzExNDcyLCAxLjEzNDEzLCAxLjM5ODE2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEyOTI2NywgMC4xOTQxNTUsIDAuNTYyNjE0LCAwLjg4ODA3LCAxLjMyMTg1LCAyLjE4OTQ1LCAyLjczMjU4IiwgXAotICAgICAgICAgICIwLjEyOTQwOSwgMC4xOTQyMDcsIDAuNTYyNzU2LCAwLjg4ODAzMiwgMS4zMjE4NywgMi4xODk5NiwgMi43MzIzNyIsIFwKLSAgICAgICAgICAiMC4xMzMwMTMsIDAuMTk1NjAxLCAwLjU2MjY5NCwgMC44ODgwOTgsIDEuMzIxOTQsIDIuMTkwMjQsIDIuNzMyMDgiLCBcCi0gICAgICAgICAgIjAuMTM5MzU4LCAwLjE5OTg2NCwgMC41NjI2ODEsIDAuODg4MDIxLCAxLjMyMTc3LCAyLjE5MDE3LCAyLjczMjUiLCBcCi0gICAgICAgICAgIjAuMTQ2OTA5LCAwLjIwNTkwMSwgMC41NjI5NDMsIDAuODg4MDQ3LCAxLjMyMTkxLCAyLjE5MDI1LCAyLjczMjc3IiwgXAotICAgICAgICAgICIwLjE2MDUwNSwgMC4yMTc0NSwgMC41NjY0MTQsIDAuODg4MTA2LCAxLjMyMTkxLCAyLjE4OTUzLCAyLjczOTUiLCBcCi0gICAgICAgICAgIjAuMTczMDEyLCAwLjIyODc5OSwgMC41NzEzMjIsIDAuODg5MzE1LCAxLjMyMTc0LCAyLjE5MDAyLCAyLjczMjM0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNTE1NCwgMC4wMDUxNTUsIDAuMDA1MTU0LCAwLjAwNTE1NSwgMC4wMDUxNTQsIDAuMDA1MTUzLCAwLjAwNTE1MiIsIFwKLSAgICAgICAgICAiMC4wMDUxMzksIDAuMDA1MTQxLCAwLjAwNTE0MywgMC4wMDUxNDMsIDAuMDA1MTQ0LCAwLjAwNTE0MywgMC4wMDUxNDEiLCBcCi0gICAgICAgICAgIjAuMDA1MTMyLCAwLjAwNTEzNiwgMC4wMDUxNDEsIDAuMDA1MTQxLCAwLjAwNTE0MSwgMC4wMDUxMzksIDAuMDA1MTQiLCBcCi0gICAgICAgICAgIjAuMDA1MTM0LCAwLjAwNTEzNiwgMC4wMDUxNDEsIDAuMDA1MTQxLCAwLjAwNTE0MiwgMC4wMDUxNDEsIDAuMDA1MTQiLCBcCi0gICAgICAgICAgIjAuMDA1MTQxLCAwLjAwNTE0MiwgMC4wMDUxNDQsIDAuMDA1MTQzLCAwLjAwNTE0MywgMC4wMDUxNDEsIDAuMDA1MTQiLCBcCi0gICAgICAgICAgIjAuMDA1MTczLCAwLjAwNTE2NSwgMC4wMDUxNTUsIDAuMDA1MTUsIDAuMDA1MTQ4LCAwLjAwNTE0NCwgMC4wMDUxNDMiLCBcCi0gICAgICAgICAgIjAuMDA1MjE0LCAwLjAwNTE5OSwgMC4wMDUxNzEsIDAuMDA1MTYyLCAwLjAwNTE1NiwgMC4wMDUxNSwgMC4wMDUxNDgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDExOCwgMC4wMDExODEsIDAuMDAxMTgxLCAwLjAwMTE4MiwgMC4wMDExODEsIDAuMDAxMTgsIDAuMDAxMTgiLCBcCi0gICAgICAgICAgIjAuMDAxMTQ2LCAwLjAwMTE1MywgMC4wMDExNjMsIDAuMDAxMTY1LCAwLjAwMTE2NiwgMC4wMDExNjYsIDAuMDAxMTY2IiwgXAotICAgICAgICAgICIwLjAwMTEyNywgMC4wMDExMzcsIDAuMDAxMTU1LCAwLjAwMTE1OSwgMC4wMDExNjEsIDAuMDAxMTYyLCAwLjAwMTE2MiIsIFwKLSAgICAgICAgICAiMC4wMDExMjYsIDAuMDAxMTM0LCAwLjAwMTE1MiwgMC4wMDExNTcsIDAuMDAxMTU5LCAwLjAwMTE2MSwgMC4wMDExNjEiLCBcCi0gICAgICAgICAgIjAuMDAxMTM4LCAwLjAwMTE0MiwgMC4wMDExNTQsIDAuMDAxMTU4LCAwLjAwMTE2LCAwLjAwMTE2MiwgMC4wMDExNjIiLCBcCi0gICAgICAgICAgIjAuMDAxMTkzLCAwLjAwMTE3NiwgMC4wMDExNjcsIDAuMDAxMTY2LCAwLjAwMTE2NSwgMC4wMDExNjQsIDAuMDAxMTYzIiwgXAotICAgICAgICAgICIwLjAwMTI0OSwgMC4wMDEyMjcsIDAuMDAxMTg5LCAwLjAwMTE4LCAwLjAwMTE3NiwgMC4wMDExNzEsIDAuMDAxMTY5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDY3MSwgMC4wMDQ2NzIsIDAuMDA0NjczLCAwLjAwNDY3MywgMC4wMDQ2NzIsIDAuMDA0NjcyLCAwLjAwNDY3MSIsIFwKLSAgICAgICAgICAiMC4wMDQ2NTYsIDAuMDA0NjYyLCAwLjAwNDY2OSwgMC4wMDQ2NzEsIDAuMDA0NjcxLCAwLjAwNDY3MSwgMC4wMDQ2NzEiLCBcCi0gICAgICAgICAgIjAuMDA0NjQyLCAwLjAwNDY1MSwgMC4wMDQ2NjUsIDAuMDA0NjcsIDAuMDA0NjY5LCAwLjAwNDY2OSwgMC4wMDQ2NyIsIFwKLSAgICAgICAgICAiMC4wMDQ2MzcsIDAuMDA0NjQ3LCAwLjAwNDY2MywgMC4wMDQ2NjYsIDAuMDA0NjY4LCAwLjAwNDY2NywgMC4wMDQ2NyIsIFwKLSAgICAgICAgICAiMC4wMDQ2NDMsIDAuMDA0NjQ5LCAwLjAwNDY2NCwgMC4wMDQ2NjcsIDAuMDA0NjY4LCAwLjAwNDY2OSwgMC4wMDQ2NjkiLCBcCi0gICAgICAgICAgIjAuMDA0NjY4LCAwLjAwNDY2OCwgMC4wMDQ2NzIsIDAuMDA0NjcsIDAuMDA0NjczLCAwLjAwNDY3MSwgMC4wMDQ2NyIsIFwKLSAgICAgICAgICAiMC4wMDQ3MDcsIDAuMDA0Njk5LCAwLjAwNDY4NiwgMC4wMDQ2ODMsIDAuMDA0NjgsIDAuMDA0Njc4LCAwLjAwNDY3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTE4MiwgMC4wMDExODMsIDAuMDAxMTg0LCAwLjAwMTE4MywgMC4wMDExODMsIDAuMDAxMTgyLCAwLjAwMTE4MiIsIFwKLSAgICAgICAgICAiMC4wMDExNDksIDAuMDAxMTU1LCAwLjAwMTE2NSwgMC4wMDExNjcsIDAuMDAxMTY4LCAwLjAwMTE2OCwgMC4wMDExNjgiLCBcCi0gICAgICAgICAgIjAuMDAxMTM0LCAwLjAwMTE0MSwgMC4wMDExNTgsIDAuMDAxMTYyLCAwLjAwMTE2MywgMC4wMDExNjQsIDAuMDAxMTY1IiwgXAotICAgICAgICAgICIwLjAwMTEzOCwgMC4wMDExNDQsIDAuMDAxMTU2LCAwLjAwMTE2LCAwLjAwMTE2MiwgMC4wMDExNjMsIDAuMDAxMTY0IiwgXAotICAgICAgICAgICIwLjAwMTE1OSwgMC4wMDExNTcsIDAuMDAxMTYxLCAwLjAwMTE2MiwgMC4wMDExNjMsIDAuMDAxMTY0LCAwLjAwMTE2NCIsIFwKLSAgICAgICAgICAiMC4wMDEyMTgsIDAuMDAxMiwgMC4wMDExNzgsIDAuMDAxMTczLCAwLjAwMTE3MSwgMC4wMDExNjgsIDAuMDAxMTY3IiwgXAotICAgICAgICAgICIwLjAwMTI4NywgMC4wMDEyNTQsIDAuMDAxMiwgMC4wMDExODgsIDAuMDAxMTgxLCAwLjAwMTE3NCwgMC4wMDExNzIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0MTM1LCAwLjAwNDEzNywgMC4wMDQxNCwgMC4wMDQxNDEsIDAuMDA0MTQxLCAwLjAwNDE0LCAwLjAwNDE0IiwgXAotICAgICAgICAgICIwLjAwNDEyMSwgMC4wMDQxMzEsIDAuMDA0MTQ1LCAwLjAwNDE0NywgMC4wMDQxNDksIDAuMDA0MTUsIDAuMDA0MTQ5IiwgXAotICAgICAgICAgICIwLjAwNDEwMSwgMC4wMDQxMTYsIDAuMDA0MTM5LCAwLjAwNDE0NSwgMC4wMDQxNDQsIDAuMDA0MTQ2LCAwLjAwNDE1IiwgXAotICAgICAgICAgICIwLjAwNDA5LCAwLjAwNDEwNywgMC4wMDQxMzUsIDAuMDA0MTQyLCAwLjAwNDE0NSwgMC4wMDQxNDcsIDAuMDA0MTQ5IiwgXAotICAgICAgICAgICIwLjAwNDA5MSwgMC4wMDQxMDUsIDAuMDA0MTM0LCAwLjAwNDE0MSwgMC4wMDQxNDUsIDAuMDA0MTQ4LCAwLjAwNDE0OSIsIFwKLSAgICAgICAgICAiMC4wMDQxMTQsIDAuMDA0MTIsIDAuMDA0MTQsIDAuMDA0MTQzLCAwLjAwNDE0OCwgMC4wMDQxNSwgMC4wMDQxNSIsIFwKLSAgICAgICAgICAiMC4wMDQxNDksIDAuMDA0MTQ3LCAwLjAwNDE1MSwgMC4wMDQxNTMsIDAuMDA0MTU0LCAwLjAwNDE1NCwgMC4wMDQxNTQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDExODIsIDAuMDAxMTgzLCAwLjAwMTE4NCwgMC4wMDExODQsIDAuMDAxMTg0LCAwLjAwMTE4MywgMC4wMDExODIiLCBcCi0gICAgICAgICAgIjAuMDAxMTUyLCAwLjAwMTE1NywgMC4wMDExNjYsIDAuMDAxMTY4LCAwLjAwMTE2OSwgMC4wMDExNjksIDAuMDAxMTY5IiwgXAotICAgICAgICAgICIwLjAwMTE1MiwgMC4wMDExNTUsIDAuMDAxMTY2LCAwLjAwMTE2NSwgMC4wMDExNjYsIDAuMDAxMTY3LCAwLjAwMTE2NyIsIFwKLSAgICAgICAgICAiMC4wMDExOSwgMC4wMDExODIsIDAuMDAxMTcyLCAwLjAwMTE3MSwgMC4wMDExNywgMC4wMDExNjksIDAuMDAxMTY4IiwgXAotICAgICAgICAgICIwLjAwMTIzNiwgMC4wMDEyMTgsIDAuMDAxMTg5LCAwLjAwMTE4MSwgMC4wMDExNzcsIDAuMDAxMTczLCAwLjAwMTE3MSIsIFwKLSAgICAgICAgICAiMC4wMDEzMzgsIDAuMDAxMjk5LCAwLjAwMTIyNywgMC4wMDEyMDcsIDAuMDAxMTk1LCAwLjAwMTE4NCwgMC4wMDExOCIsIFwKLSAgICAgICAgICAiMC4wMDE0NDIsIDAuMDAxMzgsIDAuMDAxMjY1LCAwLjAwMTIzOCwgMC4wMDEyMTIsIDAuMDAxMTk3LCAwLjAwMTE5MSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDM2NDIsIDAuMDAzNjQzLCAwLjAwMzY0NSwgMC4wMDM2NDUsIDAuMDAzNjQ0LCAwLjAwMzY0MywgMC4wMDM2NDIiLCBcCi0gICAgICAgICAgIjAuMDAzNjI5LCAwLjAwMzYzMiwgMC4wMDM2MzcsIDAuMDAzNjM4LCAwLjAwMzYzOCwgMC4wMDM2MzcsIDAuMDAzNjM2IiwgXAotICAgICAgICAgICIwLjAwMzY0NSwgMC4wMDM2NDIsIDAuMDAzNjQsIDAuMDAzNjQsIDAuMDAzNjM4LCAwLjAwMzYzNywgMC4wMDM2MzYiLCBcCi0gICAgICAgICAgIjAuMDAzNjg1LCAwLjAwMzY3NCwgMC4wMDM2NTQsIDAuMDAzNjQ4LCAwLjAwMzY0NSwgMC4wMDM2NDEsIDAuMDAzNjM5IiwgXAotICAgICAgICAgICIwLjAwMzczNiwgMC4wMDM3MDksIDAuMDAzNjcxLCAwLjAwMzY2LCAwLjAwMzY1MiwgMC4wMDM2NDUsIDAuMDAzNjQyIiwgXAotICAgICAgICAgICIwLjAwMzg0NiwgMC4wMDM3OTUsIDAuMDAzNzA5LCAwLjAwMzY4OCwgMC4wMDM2NzMsIDAuMDAzNjU4LCAwLjAwMzY1MyIsIFwKLSAgICAgICAgICAiMC4wMDM5NjQsIDAuMDAzODgzLCAwLjAwMzc1MywgMC4wMDM3MTYsIDAuMDAzNjk2LCAwLjAwMzY3MSwgMC4wMDM2NjMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDAyMzcsIDAuMDAwMjQyLCAwLjAwMDI0OCwgMC4wMDAyNDksIDAuMDAwMjQ5LCAwLjAwMDI1LCAwLjAwMDI1IiwgXAotICAgICAgICAgICIwLjAwMDIyMiwgMC4wMDAyMzgsIDAuMDAwMjYyLCAwLjAwMDI2NywgMC4wMDAyNjksIDAuMDAwMjcyLCAwLjAwMDI3MiIsIFwKLSAgICAgICAgICAiMC4wMDAyMDUsIDAuMDAwMjI1LCAwLjAwMDI1OCwgMC4wMDAyNjUsIDAuMDAwMjcsIDAuMDAwMjczLCAwLjAwMDI3NSIsIFwKLSAgICAgICAgICAiMC4wMDAyMTEsIDAuMDAwMjI2LCAwLjAwMDI1NywgMC4wMDAyNjUsIDAuMDAwMjcsIDAuMDAwMjc0LCAwLjAwMDI3NiIsIFwKLSAgICAgICAgICAiMC4wMDAyMzcsIDAuMDAwMjQxLCAwLjAwMDI2MiwgMC4wMDAyNjksIDAuMDAwMjczLCAwLjAwMDI3NiwgMC4wMDAyNzciLCBcCi0gICAgICAgICAgIjAuMDAwMzAyLCAwLjAwMDI5LCAwLjAwMDI4MiwgMC4wMDAyODEsIDAuMDAwMjgxLCAwLjAwMDI4MiwgMC4wMDAyODIiLCBcCi0gICAgICAgICAgIjAuMDAwMzk3LCAwLjAwMDM0OCwgMC4wMDAzMDgsIDAuMDAwMjk5LCAwLjAwMDI5NCwgMC4wMDAyODksIDAuMDAwMjg4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzEzNSwgMC4wMDMxMzgsIDAuMDAzMTQyLCAwLjAwMzE0MiwgMC4wMDMxNDIsIDAuMDAzMTQyLCAwLjAwMzE0MiIsIFwKLSAgICAgICAgICAiMC4wMDMxMiwgMC4wMDMxMjgsIDAuMDAzMTQsIDAuMDAzMTQzLCAwLjAwMzE0NSwgMC4wMDMxNDUsIDAuMDAzMTQ0IiwgXAotICAgICAgICAgICIwLjAwMzEzLCAwLjAwMzEzNSwgMC4wMDMxNDIsIDAuMDAzMTQ0LCAwLjAwMzE0NSwgMC4wMDMxNDUsIDAuMDAzMTQ0IiwgXAotICAgICAgICAgICIwLjAwMzE1NSwgMC4wMDMxNTIsIDAuMDAzMTUsIDAuMDAzMTQ5LCAwLjAwMzE0OCwgMC4wMDMxNDcsIDAuMDAzMTQ3IiwgXAotICAgICAgICAgICIwLjAwMzIsIDAuMDAzMTgyLCAwLjAwMzE2NCwgMC4wMDMxNTgsIDAuMDAzMTU1LCAwLjAwMzE1MSwgMC4wMDMxNSIsIFwKLSAgICAgICAgICAiMC4wMDMzMDQsIDAuMDAzMjYsIDAuMDAzMTk2LCAwLjAwMzE4NCwgMC4wMDMxNzMsIDAuMDAzMTYyLCAwLjAwMzE1OCIsIFwKLSAgICAgICAgICAiMC4wMDM0MTYsIDAuMDAzMzQxLCAwLjAwMzIzNiwgMC4wMDMyMTIsIDAuMDAzMTg5LCAwLjAwMzE3MiwgMC4wMDMxNjciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDAyMzcsIDAuMDAwMjQyLCAwLjAwMDI0OCwgMC4wMDAyNDksIDAuMDAwMjUsIDAuMDAwMjUsIDAuMDAwMjUxIiwgXAotICAgICAgICAgICIwLjAwMDIzMSwgMC4wMDAyNDUsIDAuMDAwMjY0LCAwLjAwMDI2OCwgMC4wMDAyNzEsIDAuMDAwMjczLCAwLjAwMDI3MyIsIFwKLSAgICAgICAgICAiMC4wMDAyMzIsIDAuMDAwMjQ0LCAwLjAwMDI2NiwgMC4wMDAyNzEsIDAuMDAwMjc0LCAwLjAwMDI3NiwgMC4wMDAyNzciLCBcCi0gICAgICAgICAgIjAuMDAwMjY1LCAwLjAwMDI2OCwgMC4wMDAyNzUsIDAuMDAwMjc3LCAwLjAwMDI3OSwgMC4wMDAyOCwgMC4wMDAyOCIsIFwKLSAgICAgICAgICAiMC4wMDAzMTUsIDAuMDAwMzAyLCAwLjAwMDI5MSwgMC4wMDAyODcsIDAuMDAwMjg2LCAwLjAwMDI4NCwgMC4wMDAyODQiLCBcCi0gICAgICAgICAgIjAuMDAwNDM2LCAwLjAwMDM4MSwgMC4wMDAzMjMsIDAuMDAwMzEyLCAwLjAwMDMwMywgMC4wMDAyOTUsIDAuMDAwMjkzIiwgXAotICAgICAgICAgICIwLjAwMDU4MSwgMC4wMDA0NzksIDAuMDAwMzY1LCAwLjAwMDM0MywgMC4wMDAzMjUsIDAuMDAwMzEsIDAuMDAwMzA0Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBCTVhJWDIgKgotICogLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChCTVhJWDIpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC44NDI1MTM7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTA4ODc2OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTA4NjQ5OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTA4ODc2OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDU3NiwgMC4wMDA1OCwgMC4wMDA1ODEsIDAuMDAwNTgyLCAwLjAwMDU4MiwgMC4wMDA1ODMsIDAuMDAwNTgzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNjI5LCAwLjAwMDYwNywgMC4wMDA2MDMsIDAuMDAwNjAxLCAwLjAwMDYsIDAuMDAwNTk5LCAwLjAwMDU5OSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oTTApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTI1ODgyOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTI1ODgyOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTI1ODUyOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDE4OSwgMC4wMDAxOTgsIDAuMDAwMjg0LCAwLjAwMDM5MywgMC4wMDA1MiwgMC4wMDA3ODEsIDAuMDAwOTc5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyNjMsIDAuMDAyNjQsIDAuMDAyNzIsIDAuMDAyODI3LCAwLjAwMjk0OCwgMC4wMDMxNzgsIDAuMDAzMzYiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKE0xKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDExODY5NDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDExODY5NDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDExODY4OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDM0MiwgMC4wMDAzNjMsIDAuMDAwNDM4LCAwLjAwMDU1MiwgMC4wMDA2OCwgMC4wMDA5MDgsIDAuMDAxMTUzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyNDU5LCAwLjAwMjQ3LCAwLjAwMjU1LCAwLjAwMjY1NywgMC4wMDI3ODYsIDAuMDAzMDE2LCAwLjAwMzE5NyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUFBOKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuNjg0MTQ3OwotICAgIGZ1bmN0aW9uIDogIigoWDIgKChNMCBBKSArICghTTAgUykpKSArICghWDIgKChNMSBBKSArICghTTEgUykpKSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5MTk3MiwgMC4xNzYwNTMsIDAuMjM4MTEyLCAwLjMxNTM2OCwgMC4zOTI1NjIsIDAuNDY5Nzg2LCAwLjU0Njk3IiwgXAotICAgICAgICAgICIwLjA5ODI0MSwgMC4xODIzNzEsIDAuMjQ0NDE1LCAwLjMyMTY0NSwgMC4zOTg4NDEsIDAuNDc2MDI2LCAwLjU1MzI1OSIsIFwKLSAgICAgICAgICAiMC4xMDU5NzgsIDAuMTkwMDg1LCAwLjI1MjE0MiwgMC4zMjkzOTksIDAuNDA2NTk1LCAwLjQ4MzgxMywgMC41NjEwNSIsIFwKLSAgICAgICAgICAiMC4xMTM1MjUsIDAuMTk3NjE4LCAwLjI1OTY1NywgMC4zMzY4ODcsIDAuNDE0MDgyLCAwLjQ5MTMwOCwgMC41Njg0OTQiLCBcCi0gICAgICAgICAgIjAuMTIwNDE1LCAwLjIwNDY0NSwgMC4yNjY2ODQsIDAuMzQzOTQsIDAuNDIxMTQyLCAwLjQ5ODMwNCwgMC41NzU1MjMiLCBcCi0gICAgICAgICAgIjAuMTMwNDczLCAwLjIxNDk4NSwgMC4yNzcwNTIsIDAuMzU0MywgMC40MzE1MDMsIDAuNTA4NjcxLCAwLjU4NTgzOSIsIFwKLSAgICAgICAgICAiMC4xMzgyMywgMC4yMjMxNDYsIDAuMjg1MjUyLCAwLjM2MjQ3MSwgMC40Mzk2ODQsIDAuNTE2ODcxLCAwLjU5NDAyNiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTI4OTUsIDAuMjA4MzYxLCAwLjMzNTYxLCAwLjQ5Njk3OCwgMC42NTkwNTEsIDAuODIxNzcyLCAwLjk4MzEyNCIsIFwKLSAgICAgICAgICAiMC4wNTI5ODMsIDAuMjA4MzY3LCAwLjMzNTcxNywgMC40OTY5NzcsIDAuNjU5MzAzLCAwLjgyMTU1LCAwLjk4MzA4OSIsIFwKLSAgICAgICAgICAiMC4wNTI4OTEsIDAuMjA4MzU4LCAwLjMzNTY4LCAwLjQ5Njk3OSwgMC42NTkwODIsIDAuODIxNzIxLCAwLjk4NDIyNSIsIFwKLSAgICAgICAgICAiMC4wNTMxMTEsIDAuMjA4Mjk3LCAwLjMzNTY1NSwgMC40OTY5NjMsIDAuNjU5MDcxLCAwLjgyMTY1LCAwLjk4NDMxOCIsIFwKLSAgICAgICAgICAiMC4wNTM0MzMsIDAuMjA4NTA3LCAwLjMzNTc5OSwgMC40OTcwMzQsIDAuNjU5MjI2LCAwLjgyMTc3NCwgMC45ODQzNjkiLCBcCi0gICAgICAgICAgIjAuMDU0NTY2LCAwLjIwODk4MSwgMC4zMzU5OTIsIDAuNDk3MTczLCAwLjY1OTI3MSwgMC44MjE1NjMsIDAuOTg0MTkyIiwgXAotICAgICAgICAgICIwLjA1NTU5OCwgMC4yMDk1NTcsIDAuMzM2MzI2LCAwLjQ5Njk4OSwgMC42NTkzMTQsIDAuODIxNTk1LCAwLjk4NDA3MiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTk5MTgsIDAuMTg1MDQ5LCAwLjI0NjQxMywgMC4zMjI0MjIsIDAuMzk4MzIyLCAwLjQ3NDIsIDAuNTUwMDU3IiwgXAotICAgICAgICAgICIwLjEwNTczNSwgMC4xOTA5MzEsIDAuMjUyMjc1LCAwLjMyODI3LCAwLjQwNDE3NCwgMC40ODAwNDcsIDAuNTU1OTUzIiwgXAotICAgICAgICAgICIwLjExMjYyNCwgMC4xOTc4MzYsIDAuMjU5MTg1LCAwLjMzNTE4MywgMC40MTEwODcsIDAuNDg2OTYyLCAwLjU2Mjg0MiIsIFwKLSAgICAgICAgICAiMC4xMTk0MywgMC4yMDQ1NTcsIDAuMjY1OTA2LCAwLjM0MTg5OSwgMC40MTc4MDYsIDAuNDkzNjc4LCAwLjU2OTU1NSIsIFwKLSAgICAgICAgICAiMC4xMjU2ODYsIDAuMjEwOTI4LCAwLjI3MjI3OSwgMC4zNDgyNzksIDAuNDI0MTg2LCAwLjUwMDA2MywgMC41NzU5MjEiLCBcCi0gICAgICAgICAgIjAuMTM0NzIzLCAwLjIyMDI0NiwgMC4yODE2MTMsIDAuMzU3NjE0LCAwLjQzMzUxMywgMC41MDk0MDUsIDAuNTg1MjY2IiwgXAotICAgICAgICAgICIwLjE0MTczNiwgMC4yMjc2MDEsIDAuMjg5MDI1LCAwLjM2NTAzOSwgMC40NDA5NDEsIDAuNTE2ODQ3LCAwLjU5Mjc2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1NDgsIDAuMjA1MDY5LCAwLjMyNzYyNywgMC40ODMxODMsIDAuNjM5NjcyLCAwLjc5NjY1NywgMC45NTQwMjMiLCBcCi0gICAgICAgICAgIjAuMDU0NzYxLCAwLjIwNTE0LCAwLjMyNzYyMywgMC40ODMxOTYsIDAuNjM5NjY5LCAwLjc5NjYzNiwgMC45NTQwNTgiLCBcCi0gICAgICAgICAgIjAuMDU0ODIxLCAwLjIwNTEzOSwgMC4zMjc2MjksIDAuNDgzMiwgMC42Mzk2NTMsIDAuNzk2NjI0LCAwLjk1Mzk0NCIsIFwKLSAgICAgICAgICAiMC4wNTQ4ODMsIDAuMjA1MTUxLCAwLjMyNzY1OSwgMC40ODMyMiwgMC42Mzk2NDcsIDAuNzk2NjYxLCAwLjk1MzkwNiIsIFwKLSAgICAgICAgICAiMC4wNTUxNzIsIDAuMjA1MzE5LCAwLjMyNzcxOCwgMC40ODMyNTQsIDAuNjM5Njk1LCAwLjc5NjY1LCAwLjk1MzkyIiwgXAotICAgICAgICAgICIwLjA1NjEyOSwgMC4yMDU2ODksIDAuMzI3OTc2LCAwLjQ4MzQ1NywgMC42Mzk3OTksIDAuNzk2ODg0LCAwLjk1Mzg0IiwgXAotICAgICAgICAgICIwLjA1NzEzOSwgMC4yMDYzMTgsIDAuMzI4NDU2LCAwLjQ4MzYyNCwgMC42Mzk4NzcsIDAuNzk2OTYxLCAwLjk1NDEwOCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJNMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDgzMjg2LCAwLjE2NjkxNywgMC4yMjg5MjcsIDAuMzA2MTcsIDAuMzgzMzYyLCAwLjQ2MDUzNCwgMC41Mzc3NDIiLCBcCi0gICAgICAgICAgIjAuMDkwNzEyLCAwLjE3NDM4NSwgMC4yMzYzOTEsIDAuMzEzNjExLCAwLjM5MDgzNCwgMC40Njc5OTEsIDAuNTQ1MjE1IiwgXAotICAgICAgICAgICIwLjEwMDM3MSwgMC4xODQwMjMsIDAuMjQ2MDM5LCAwLjMyMzI4NywgMC40MDA0ODEsIDAuNDc3NjUsIDAuNTU0ODUyIiwgXAotICAgICAgICAgICIwLjEwOTc0MywgMC4xOTMzNjcsIDAuMjU1Mzg1LCAwLjMzMjYzMSwgMC40MDk4MjMsIDAuNDg2OTkzLCAwLjU2NDMyOCIsIFwKLSAgICAgICAgICAiMC4xMTgxOTMsIDAuMjAxOTUsIDAuMjYzOTYyLCAwLjM0MTE5MiwgMC40MTgzOTgsIDAuNDk1NTk1LCAwLjU3Mjc0IiwgXAotICAgICAgICAgICIwLjEzMDAwOCwgMC4yMTQxODgsIDAuMjc2MTgxLCAwLjM1MzQyMSwgMC40MzA1OTEsIDAuNTA3NzczLCAwLjU4NDk3MyIsIFwKLSAgICAgICAgICAiMC4xMzg4OTksIDAuMjIzNTAxLCAwLjI4NTYzOSwgMC4zNjI3NTUsIDAuNDM5OTMzLCAwLjUxNzIyMSwgMC41OTQ0NDEiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDUyMjQyLCAwLjIwNzc4NiwgMC4zMzUyNjksIDAuNDk2NzIzLCAwLjY1ODg5NiwgMC44MjA1MTIsIDAuOTg0MjkyIiwgXAotICAgICAgICAgICIwLjA1MjE5NywgMC4yMDc3NjksIDAuMzM1MjE2LCAwLjQ5NjIwNSwgMC42NTc5NywgMC44MjA2NjUsIDAuOTgyNDE1IiwgXAotICAgICAgICAgICIwLjA1MjI1NiwgMC4yMDc3OTMsIDAuMzM1MzI0LCAwLjQ5Njc1NSwgMC42NTg4NzMsIDAuODIwNDQ0LCAwLjk4NDI2IiwgXAotICAgICAgICAgICIwLjA1MjU0LCAwLjIwNzg2MiwgMC4zMzUzNTQsIDAuNDk2Nzg2LCAwLjY1ODkxMywgMC44MjA0ODIsIDAuOTgyNDM3IiwgXAotICAgICAgICAgICIwLjA1MzE3NiwgMC4yMDgwNiwgMC4zMzU0NCwgMC40OTY4MjEsIDAuNjU4OTg3LCAwLjgyMTU4MSwgMC45ODQyMjgiLCBcCi0gICAgICAgICAgIjAuMDU0OTYyLCAwLjIwODY1NCwgMC4zMzU2OTYsIDAuNDk2OTM0LCAwLjY1ODIyMSwgMC44MjE1MDksIDAuOTgzMjUyIiwgXAotICAgICAgICAgICIwLjA1NjQwMywgMC4yMDkzNDYsIDAuMzM2MTE4LCAwLjQ5Njk1MSwgMC42NTg0NDUsIDAuODIxNjU2LCAwLjk4MjUxNyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTA0MTgsIDAuMTc0OTI0LCAwLjIzNjE3OCwgMC4zMTIxMzQsIDAuMzg4MDI3LCAwLjQ2Mzk0NiwgMC41Mzk3NjMiLCBcCi0gICAgICAgICAgIjAuMDk3NzUzLCAwLjE4MjI1OCwgMC4yNDM1MTMsIDAuMzE5NDcxLCAwLjM5NTM2NSwgMC40NzEyODIsIDAuNTQ3MSIsIFwKLSAgICAgICAgICAiMC4xMDcyMTQsIDAuMTkxNzA2LCAwLjI1Mjk5MywgMC4zMjg5NjMsIDAuNDA0ODU1LCAwLjQ4MDczOCwgMC41NTY1OSIsIFwKLSAgICAgICAgICAiMC4xMTY1MzEsIDAuMjAxMDIxLCAwLjI2MjI2NSwgMC4zMzgyNDEsIDAuNDE0MTQsIDAuNDkwMDA4LCAwLjU2NTg5NCIsIFwKLSAgICAgICAgICAiMC4xMjQ5MTMsIDAuMjA5NSwgMC4yNzA3ODYsIDAuMzQ2NzIyLCAwLjQyMjY1MSwgMC40OTg1MjEsIDAuNTc0Mzk3IiwgXAotICAgICAgICAgICIwLjEzNjY4OCwgMC4yMjE2MTIsIDAuMjgyODgyLCAwLjM1ODg1MiwgMC40MzQ3MzcsIDAuNTEwNjA0LCAwLjU4NjQ3NiIsIFwKLSAgICAgICAgICAiMC4xNDU1NSwgMC4yMzEwNDcsIDAuMjkyMjQ3LCAwLjM2ODIxMSwgMC40NDQxOTcsIDAuNTIwMDksIDAuNTk1ODM4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1MzkyNSwgMC4yMDQzMywgMC4zMjcwMjEsIDAuNDgyNzc4LCAwLjYzOTMzOSwgMC43OTY1NDMsIDAuOTUzNzIiLCBcCi0gICAgICAgICAgIjAuMDUzOTI4LCAwLjIwNDMzMiwgMC4zMjcwMjIsIDAuNDgyNzg1LCAwLjYzOTM0MSwgMC43OTY1NDEsIDAuOTUzNzE5IiwgXAotICAgICAgICAgICIwLjA1Mzg1NCwgMC4yMDQyMTEsIDAuMzI2ODc5LCAwLjQ4Mjc0MywgMC42MzkyNjUsIDAuNzk2NDE1LCAwLjk1MzY5NSIsIFwKLSAgICAgICAgICAiMC4wNTM5OTIsIDAuMjA0Mzk2LCAwLjMyNjgyMiwgMC40ODI3ODQsIDAuNjM5Mzk1LCAwLjc5NjQwOSwgMC45NTM4MTYiLCBcCi0gICAgICAgICAgIjAuMDU0NTg2LCAwLjIwNDU3OCwgMC4zMjcwMiwgMC40ODI4NDMsIDAuNjM5NDE1LCAwLjc5NjQyNiwgMC45NTM1NjgiLCBcCi0gICAgICAgICAgIjAuMDU1OTcyLCAwLjIwNTEwNSwgMC4zMjc1MjEsIDAuNDgzMDg1LCAwLjYzOTQ0NSwgMC43OTYyOCwgMC45NTM2NTYiLCBcCi0gICAgICAgICAgIjAuMDU3MzgzLCAwLjIwNTgzOCwgMC4zMjc5MiwgMC40ODI1MTksIDAuNjM5NjIsIDAuNzk2NzE0LCAwLjk1MzcxOCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJNMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk2NzQ1LCAwLjE4MDM4NCwgMC4yNDIzNzMsIDAuMzE5NTk3LCAwLjM5NjgwMywgMC40NzM5NzYsIDAuNTUxMTk4IiwgXAotICAgICAgICAgICIwLjEwNDExMiwgMC4xODc3NjksIDAuMjQ5NzcxLCAwLjMyNywgMC40MDQxOCwgMC40ODEzNjEsIDAuNTU4NjExIiwgXAotICAgICAgICAgICIwLjExMDc4NSwgMC4xOTQ0MTMsIDAuMjU2NDIzLCAwLjMzMzY2NiwgMC40MTA4NTQsIDAuNDg4MDEyLCAwLjU2NTI3MyIsIFwKLSAgICAgICAgICAiMC4xMTU0NSwgMC4xOTkxMywgMC4yNjExMzQsIDAuMzM4MzgsIDAuNDE1NTY5LCAwLjQ5MjcyNiwgMC41Njk5MiIsIFwKLSAgICAgICAgICAiMC4xMTkwNjEsIDAuMjAyNzYyLCAwLjI2NDc2MywgMC4zNDIwMDcsIDAuNDE5MTk5LCAwLjQ5NjM1NiwgMC41NzM1NjUiLCBcCi0gICAgICAgICAgIjAuMTIzODg1LCAwLjIwNzYzNCwgMC4yNjk2NjEsIDAuMzQ2OTIyLCAwLjQyNDA5OSwgMC41MDEyNjEsIDAuNTc4NDI1IiwgXAotICAgICAgICAgICIwLjEyNzUzNCwgMC4yMTEyMDYsIDAuMjczMjkyLCAwLjM1MDUzNCwgMC40Mjc3MDgsIDAuNTA0ODg4LCAwLjU4MjEyIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1MjI0NywgMC4yMDc3NTEsIDAuMzM1MTc4LCAwLjQ5NjM2MSwgMC42NTc3MzksIDAuODIxNDU4LCAwLjk4MjkzMyIsIFwKLSAgICAgICAgICAiMC4wNTIyMjQsIDAuMjA3NzU1LCAwLjMzNTI3MiwgMC40OTYwNjYsIDAuNjU4NzM3LCAwLjgyMTM1NywgMC45ODI2NzgiLCBcCi0gICAgICAgICAgIjAuMDUyMTkyLCAwLjIwNzc0OCwgMC4zMzUyOSwgMC40OTY3NDUsIDAuNjU4ODk2LCAwLjgyMTI3MywgMC45ODI4ODMiLCBcCi0gICAgICAgICAgIjAuMDUyMTksIDAuMjA3NzU2LCAwLjMzNTI5MywgMC40OTY3NDMsIDAuNjU4OSwgMC44MjEyNjcsIDAuOTgyOTk1IiwgXAotICAgICAgICAgICIwLjA1MjI0OSwgMC4yMDc4MjksIDAuMzM1MzQ2LCAwLjQ5Njc0MiwgMC42NTg5NTcsIDAuODIxMzQ4LCAwLjk4Mjk0NyIsIFwKLSAgICAgICAgICAiMC4wNTIyODIsIDAuMjA3ODIsIDAuMzM1MzE0LCAwLjQ5NjgwNCwgMC42NTg4MTUsIDAuODIxMjIzLCAwLjk4MzE0MyIsIFwKLSAgICAgICAgICAiMC4wNTIxNzgsIDAuMjA3ODgsIDAuMzM1MzgzLCAwLjQ5NjI2LCAwLjY1ODY5NiwgMC44MjExMzcsIDAuOTgzODY2Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwMjkzMiwgMC4xODc0NzgsIDAuMjQ4NzQzLCAwLjMyNDcxLCAwLjQwMDYwOCwgMC40NzY0NzksIDAuNTUyMzUzIiwgXAotICAgICAgICAgICIwLjExMDUxMywgMC4xOTUwNTYsIDAuMjU2MzM0LCAwLjMzMjMwMywgMC40MDgyMDMsIDAuNDg0MDc1LCAwLjU1OTk0MyIsIFwKLSAgICAgICAgICAiMC4xMTcxMzUsIDAuMjAxNzMzLCAwLjI2MzAwOCwgMC4zMzg5OTksIDAuNDE0ODc3LCAwLjQ5MDc3LCAwLjU2NjYyMyIsIFwKLSAgICAgICAgICAiMC4xMjE5ODcsIDAuMjA2NjI2LCAwLjI2Nzg2OCwgMC4zNDM4NTksIDAuNDE5NzU2LCAwLjQ5NTYyNiwgMC41NzE0ODEiLCBcCi0gICAgICAgICAgIjAuMTI1ODMzLCAwLjIxMDQ5OSwgMC4yNzE3NTgsIDAuMzQ3NzI1LCAwLjQyMzY1NywgMC40OTk1MDksIDAuNTc1MzYzIiwgXAotICAgICAgICAgICIwLjEzMTI0NSwgMC4yMTU5MjgsIDAuMjc3MjEsIDAuMzUzMjA5LCAwLjQyOTA5NiwgMC41MDQ5ODYsIDAuNTgwODQ0IiwgXAotICAgICAgICAgICIwLjEzNTE0MSwgMC4yMTk3ODQsIDAuMjgxMTI5LCAwLjM1NzE1MiwgMC40MzMwMzIsIDAuNTA4OTEzLCAwLjU4NDc3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1NDAzNiwgMC4yMDQ0MzMsIDAuMzI3MTAyLCAwLjQ4Mjg2OCwgMC42Mzk0MTcsIDAuNzk2NDc2LCAwLjk1MjgxMiIsIFwKLSAgICAgICAgICAiMC4wNTQwNDcsIDAuMjA0MjgyLCAwLjMyNzA5NywgMC40ODI4NTksIDAuNjM5Mzg0LCAwLjc5NTU4LCAwLjk1Mzc5IiwgXAotICAgICAgICAgICIwLjA1MzkwNywgMC4yMDQyMzksIDAuMzI3MDU1LCAwLjQ4Mjg2LCAwLjYzOTIyMywgMC43OTY0NjEsIDAuOTUzNiIsIFwKLSAgICAgICAgICAiMC4wNTM4NzUsIDAuMjA0Mzk4LCAwLjMyNjk3NSwgMC40ODI3NzMsIDAuNjM5MzMxLCAwLjc5NjMzNiwgMC45NTM2IiwgXAotICAgICAgICAgICIwLjA1MzkwOCwgMC4yMDQ0NzUsIDAuMzI2OTYsIDAuNDgyMzk2LCAwLjYzODIxLCAwLjc5NjM1MiwgMC45NTM2MjMiLCBcCi0gICAgICAgICAgIjAuMDUzODgxLCAwLjIwNDQ4OSwgMC4zMjcxOTEsIDAuNDgyOTQ1LCAwLjYzOTM4NCwgMC43OTYzNzQsIDAuOTUzNjg1IiwgXAotICAgICAgICAgICIwLjA1Mzk1OSwgMC4yMDQ0MTQsIDAuMzI3Mjk1LCAwLjQ4MjM4MSwgMC42Mzg4NDcsIDAuNzk2MzMyLCAwLjk1MzYzNyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJNMSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg2OTQsIDAuMTcxMDMzLCAwLjIzMzA5NiwgMC4zMTAzMjcsIDAuMzg3NTcyLCAwLjQ2NDc2NCwgMC41NDE5MzYiLCBcCi0gICAgICAgICAgIjAuMDk0MzgzLCAwLjE3ODQ5OSwgMC4yNDA1NTQsIDAuMzE3ODA1LCAwLjM5NSwgMC40NzIxNjQsIDAuNTQ5Mzc2IiwgXAotICAgICAgICAgICIwLjEwNDA1LCAwLjE4ODE3NSwgMC4yNTAyMjIsIDAuMzI3NDcsIDAuNDA0Njc1LCAwLjQ4MTgzOCwgMC41NTkwNjMiLCBcCi0gICAgICAgICAgIjAuMTEzNTQ1LCAwLjE5NzY0MywgMC4yNTk2ODgsIDAuMzM2OTU1LCAwLjQxNDE3NiwgMC40OTEzMDQsIDAuNTY4NTI5IiwgXAotICAgICAgICAgICIwLjEyMjE5NCwgMC4yMDY0NTQsIDAuMjY4NDUxLCAwLjM0NTc1MSwgMC40MjI5MiwgMC41MDAwOTksIDAuNTc3MzAzIiwgXAotICAgICAgICAgICIwLjEzNDQyMywgMC4yMTkwMDYsIDAuMjgxMDUsIDAuMzU4MzE2LCAwLjQzNTUwMiwgMC41MTI3NzgsIDAuNTg5ODQ5IiwgXAotICAgICAgICAgICIwLjE0MzU5NywgMC4yMjg3MzksIDAuMjkwODMsIDAuMzY3OTYzLCAwLjQ0NTIzMSwgMC41MjI0NDUsIDAuNTk5NDk4Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1Mjg4MiwgMC4yMDgzMjksIDAuMzM1NDgxLCAwLjQ5Njk2OSwgMC42NTkzMDksIDAuODE5OTk3LCAwLjk4MzA5OSIsIFwKLSAgICAgICAgICAiMC4wNTI4NDMsIDAuMjA4MzI5LCAwLjMzNTY0NiwgMC40OTY5ODEsIDAuNjU5MDg1LCAwLjgyMTQ0LCAwLjk4NDM3MyIsIFwKLSAgICAgICAgICAiMC4wNTI5LCAwLjIwODMyMywgMC4zMzU3MiwgMC40OTY5OCwgMC42NTkyNDMsIDAuODIxNTU0LCAwLjk4MzEwNSIsIFwKLSAgICAgICAgICAiMC4wNTMwNDEsIDAuMjA4Mjc4LCAwLjMzNTc0NCwgMC40OTYzMzYsIDAuNjU5MzA0LCAwLjgyMTQ5NCwgMC45ODMwOCIsIFwKLSAgICAgICAgICAiMC4wNTM3MDEsIDAuMjA4NTUsIDAuMzM1ODI4LCAwLjQ5NzAyNiwgMC42NTkyMiwgMC44MjE1NTksIDAuOTgzMDM0IiwgXAotICAgICAgICAgICIwLjA1NTMyOCwgMC4yMDkxNTUsIDAuMzM2MTQyLCAwLjQ5NzE2OSwgMC42NTkzMTQsIDAuODIwMzQyLCAwLjk4MzEzMiIsIFwKLSAgICAgICAgICAiMC4wNTY4MzksIDAuMjA5ODU3LCAwLjMzNjQ4NCwgMC40OTczNjgsIDAuNjU5MDE4LCAwLjgyMTc4LCAwLjk4MzIzMyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTM5NjIsIDAuMTc5MTQsIDAuMjQwNDQ3LCAwLjMxNjQ2NCwgMC4zOTIzNjMsIDAuNDY4MjMxLCAwLjU0NDEzNiIsIFwKLSAgICAgICAgICAiMC4xMDEzNDIsIDAuMTg2NDQzLCAwLjI0Nzc4NSwgMC4zMjM3NjksIDAuMzk5NjcxLCAwLjQ3NTU2NiwgMC41NTE0MTMiLCBcCi0gICAgICAgICAgIjAuMTEwODk2LCAwLjE5NTk5LCAwLjI1NzM0MywgMC4zMzMzMjUsIDAuNDA5MjI4LCAwLjQ4NTA4OSwgMC41NjA5NzIiLCBcCi0gICAgICAgICAgIjAuMTIwMjkxLCAwLjIwNTQyLCAwLjI2Njc1NiwgMC4zNDI3NDcsIDAuNDE4NjQ5LCAwLjQ5NDUyMiwgMC41NzA0NTQiLCBcCi0gICAgICAgICAgIjAuMTI4OTE5LCAwLjIxNDEzLCAwLjI3NTQ4OCwgMC4zNTE0NzQsIDAuNDI3NDI4LCAwLjUwMzI5NywgMC41NzkxMjMiLCBcCi0gICAgICAgICAgIjAuMTQxMjYyLCAwLjIyNjc0MiwgMC4yODgxMzUsIDAuMzY0MDkzLCAwLjQzOTkyNCwgMC41MTU4OCwgMC41OTE3MzUiLCBcCi0gICAgICAgICAgIjAuMTUwNTY0LCAwLjIzNjUxOSwgMC4yOTc4MjQsIDAuMzczODYyLCAwLjQ0OTc3MSwgMC41MjU1OTYsIDAuNjAxNTA4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1NDYxMywgMC4yMDUwNzMsIDAuMzI3NDksIDAuNDgzMTM5LCAwLjYzOTYyNiwgMC43OTY1NzksIDAuOTUzOTkxIiwgXAotICAgICAgICAgICIwLjA1NDcyNiwgMC4yMDUwNjgsIDAuMzI3NTc3LCAwLjQ4MzE2MSwgMC42Mzk2MDUsIDAuNzk1NDU0LCAwLjk1Mzg2MiIsIFwKLSAgICAgICAgICAiMC4wNTQ3NTcsIDAuMjA1MDAzLCAwLjMyNzU4MywgMC40ODMxNjEsIDAuNjM5NjAyLCAwLjc5NjQ3NSwgMC45NTM4NzkiLCBcCi0gICAgICAgICAgIjAuMDU0ODAzLCAwLjIwNTExOSwgMC4zMjc1NzUsIDAuNDgzMTUzLCAwLjYzOTUzNSwgMC43OTY0NzIsIDAuOTU0MDgxIiwgXAotICAgICAgICAgICIwLjA1NTE5MSwgMC4yMDUyODIsIDAuMzI3NjU5LCAwLjQ4MzIyMSwgMC42Mzk1NTEsIDAuNzk2Njc3LCAwLjk1Mzc0MyIsIFwKLSAgICAgICAgICAiMC4wNTY2OTIsIDAuMjA1OTEzLCAwLjMyODAzLCAwLjQ4MzM5MiwgMC42Mzk2MDcsIDAuNzk2NzQ1LCAwLjk1Mzc5NCIsIFwKLSAgICAgICAgICAiMC4wNTg1MjcsIDAuMjA2NTM1LCAwLjMyODUwMywgMC40ODM2NDMsIDAuNjM5ODcsIDAuNzk2Njk5LCAwLjk1NDE3MiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJNMSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTAwMTIxLCAwLjE4NDI2NSwgMC4yNDYzMDMsIDAuMzIzNTMyLCAwLjQwMDcyNSwgMC40Nzc5MTEsIDAuNTU1MTQxIiwgXAotICAgICAgICAgICIwLjEwNzQ3NywgMC4xOTE2NDMsIDAuMjUzNjkxLCAwLjMzMDkzOSwgMC40MDgxMzcsIDAuNDg1MywgMC41NjI1NDkiLCBcCi0gICAgICAgICAgIjAuMTEzOTYzLCAwLjE5ODA4LCAwLjI2MDEzNSwgMC4zMzczODYsIDAuNDE0NTgyLCAwLjQ5MTc0OCwgMC41Njg5NTMiLCBcCi0gICAgICAgICAgIjAuMTE4NTI4LCAwLjIwMjcwNCwgMC4yNjQ3NDksIDAuMzQyMDExLCAwLjQxOTI0MywgMC40OTYzNjIsIDAuNTczNTgxIiwgXAotICAgICAgICAgICIwLjEyMTgyMiwgMC4yMDYwNDgsIDAuMjY4MTE1LCAwLjM0NTM2NCwgMC40MjI1NjMsIDAuNDk5NzI5LCAwLjU3NjkxMSIsIFwKLSAgICAgICAgICAiMC4xMjY1NTUsIDAuMjEwODY0LCAwLjI3Mjk3OCwgMC4zNTAyMywgMC40Mjc0MjUsIDAuNTA0NTkyLCAwLjU4MTc1NCIsIFwKLSAgICAgICAgICAiMC4xMzAxMDgsIDAuMjE0NDQxLCAwLjI3NjU3MiwgMC4zNTM4MjgsIDAuNDMxMDExLCAwLjUwODE4NCwgMC41ODUzOTciKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDUyOSwgMC4yMDgzNDMsIDAuMzM1NjIxLCAwLjQ5NjgzOSwgMC42NTg4NzgsIDAuODIwNzE5LCAwLjk4MzE0OCIsIFwKLSAgICAgICAgICAiMC4wNTI5MDUsIDAuMjA4MjQ2LCAwLjMzNTY3NywgMC40OTY5OSwgMC42NTkxNjgsIDAuODIxNDk0LCAwLjk4MjU3NyIsIFwKLSAgICAgICAgICAiMC4wNTI4NzIsIDAuMjA4MzM5LCAwLjMzNTY1OCwgMC40OTY5OTIsIDAuNjU5MDkzLCAwLjgyMTQ1LCAwLjk4NDM1NyIsIFwKLSAgICAgICAgICAiMC4wNTI4MTYsIDAuMjA4MjM3LCAwLjMzNTczMywgMC40OTY5ODcsIDAuNjU3ODM2LCAwLjgyMTU1MiwgMC45ODMxNCIsIFwKLSAgICAgICAgICAiMC4wNTI5NDIsIDAuMjA4NDY1LCAwLjMzNTcyLCAwLjQ5Njk5MywgMC42NTkxNjYsIDAuODIxNDQzLCAwLjk4NDIzMyIsIFwKLSAgICAgICAgICAiMC4wNTMwMDgsIDAuMjA4NTQ2LCAwLjMzNTg1MSwgMC40OTcxMTQsIDAuNjU4MTU5LCAwLjgyMTQyMSwgMC45ODMxMTciLCBcCi0gICAgICAgICAgIjAuMDUyODUyLCAwLjIwODUwOSwgMC4zMzU4ODgsIDAuNDk2NzEzLCAwLjY1ODY1MSwgMC44MjEzMjgsIDAuOTgzOTU4Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwNTk2LCAwLjE5MTA5NSwgMC4yNTI0MzgsIDAuMzI4NDI1LCAwLjQwNDMyOSwgMC40ODAxOTEsIDAuNTU2MDc1IiwgXAotICAgICAgICAgICIwLjExMzQ0NCwgMC4xOTg1NzQsIDAuMjU5OTE4LCAwLjMzNTkwNiwgMC40MTE4MSwgMC40ODc2OTYsIDAuNTYzNTU5IiwgXAotICAgICAgICAgICIwLjEyMDAwMSwgMC4yMDUxMywgMC4yNjY0OTIsIDAuMzQyNDg5LCAwLjQxODM4NSwgMC40OTQyODIsIDAuNTcwMTM4IiwgXAotICAgICAgICAgICIwLjEyNDcyNiwgMC4yMDk5MTUsIDAuMjcxMjU0LCAwLjM0NzI1NCwgMC40MjMxNiwgMC40OTkwMzQsIDAuNTc0OTE0IiwgXAotICAgICAgICAgICIwLjEyODQ5MiwgMC4yMTM3NSwgMC4yNzUxMSwgMC4zNTExMSwgMC40MjcwMDMsIDAuNTAyODc4LCAwLjU3ODczNyIsIFwKLSAgICAgICAgICAiMC4xMzM1MzQsIDAuMjE4ODA1LCAwLjI4MDIwMSwgMC4zNTYyMTIsIDAuNDMyMTAyLCAwLjUwNzk5NSwgMC41ODM4NTYiLCBcCi0gICAgICAgICAgIjAuMTM3NTI2LCAwLjIyMjc2OSwgMC4yODQxNTksIDAuMzYwMiwgMC40MzYxMjcsIDAuNTEyMDI1LCAwLjU4Nzg2NyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTQ4MjIsIDAuMjA1MTM2LCAwLjMyNzYyOCwgMC40ODMyMzMsIDAuNjM5NjYzLCAwLjc5NjU0LCAwLjk1MzkzOSIsIFwKLSAgICAgICAgICAiMC4wNTQ4MiwgMC4yMDUxMzMsIDAuMzI3NjMyLCAwLjQ4MzIxNCwgMC42Mzk2NDksIDAuNzk1ODgxLCAwLjk1MzkwOSIsIFwKLSAgICAgICAgICAiMC4wNTQ4MTMsIDAuMjA1MDM4LCAwLjMyNzYwNywgMC40ODMyMSwgMC42Mzk1NzEsIDAuNzk2NTMzLCAwLjk1Mzc1IiwgXAotICAgICAgICAgICIwLjA1NDYxMSwgMC4yMDUxMTEsIDAuMzI3NTkyLCAwLjQ4MzE3NywgMC42Mzk1NTgsIDAuNzk2NDk3LCAwLjk1Mzc5NCIsIFwKLSAgICAgICAgICAiMC4wNTQ3NzcsIDAuMjA1MTgsIDAuMzI3NjM4LCAwLjQ4MzI2MSwgMC42Mzk1OTIsIDAuNzk2NTI3LCAwLjk1Mzc0OSIsIFwKLSAgICAgICAgICAiMC4wNTQ2MDMsIDAuMjA1MTI4LCAwLjMyNzgxNSwgMC40ODMzMDUsIDAuNjM5MDk3LCAwLjc5NjU2MiwgMC45NTM3NyIsIFwKLSAgICAgICAgICAiMC4wNTQ3MzEsIDAuMjA1MjU1LCAwLjMyNzc0MywgMC40ODI5MjcsIDAuNjM5NTkxLCAwLjc5NjQ1OSwgMC45NTM3OTIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDkxNjg5LCAwLjE3NTc5NiwgMC4yMzc4NDQsIDAuMzE1MDg4LCAwLjM5MjI4MywgMC40Njk0NDcsIDAuNTQ2NzEyIiwgXAotICAgICAgICAgICIwLjA5Nzc5NSwgMC4xODE5MDgsIDAuMjQzOTg0LCAwLjMyMTIyLCAwLjM5ODQxNSwgMC40NzU2MzIsIDAuNTUyOTMiLCBcCi0gICAgICAgICAgIjAuMTA1NTc5LCAwLjE4OTcsIDAuMjUxNzQ0LCAwLjMyODk4OCwgMC40MDYyMzMsIDAuNDgzMzQ3LCAwLjU2MDYxMSIsIFwKLSAgICAgICAgICAiMC4xMTMwNjYsIDAuMTk3MTM3LCAwLjI1OTIyOSwgMC4zMzY0NDcsIDAuNDEzNzA0LCAwLjQ5MDg1OCwgMC41NjgwNjEiLCBcCi0gICAgICAgICAgIjAuMTIwMDA3LCAwLjIwNDIzNCwgMC4yNjYyNzIsIDAuMzQzNTAxLCAwLjQyMDc0LCAwLjQ5Nzg3NywgMC41NzUxMTciLCBcCi0gICAgICAgICAgIjAuMTMwMDUzLCAwLjIxNDUzMSwgMC4yNzY1NzYsIDAuMzUzODE1LCAwLjQzMTAxLCAwLjUwODE3NywgMC41ODUzNzciLCBcCi0gICAgICAgICAgIjAuMTM3NTY1LCAwLjIyMjUxMSwgMC4yODQ1ODQsIDAuMzYxNzkzLCAwLjQzODk4NiwgMC41MTYxODMsIDAuNTkzMzQ4Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1MzAxMSwgMC4yMDgzMzMsIDAuMzM1NjMyLCAwLjQ5Njk5MSwgMC42NTkwOTgsIDAuODIxNTg4LCAwLjk4NDM4OCIsIFwKLSAgICAgICAgICAiMC4wNTI5NjMsIDAuMjA4Mzc3LCAwLjMzNTYxNiwgMC40OTY5NzYsIDAuNjU5MDMzLCAwLjgyMTc1MSwgMC45ODI3ODEiLCBcCi0gICAgICAgICAgIjAuMDUyOTYzLCAwLjIwODM1OSwgMC4zMzU2OTQsIDAuNDk3MDM3LCAwLjY1OTMzNiwgMC44MjE3MDgsIDAuOTgzMTEyIiwgXAotICAgICAgICAgICIwLjA1MzE2MywgMC4yMDg0MjksIDAuMzM1NjcsIDAuNDk3LCAwLjY1OTM0NCwgMC44MjE2OTksIDAuOTgzMDg1IiwgXAotICAgICAgICAgICIwLjA1MzQyOCwgMC4yMDg1NDQsIDAuMzM1ODA2LCAwLjQ5NzA0LCAwLjY1OTMxNCwgMC44MjE2OCwgMC45ODQyNzUiLCBcCi0gICAgICAgICAgIjAuMDU0NTM4LCAwLjIwODk5MSwgMC4zMzU5OTcsIDAuNDk3MTc2LCAwLjY1OTI0OSwgMC44MjE1OCwgMC45ODMzNDEiLCBcCi0gICAgICAgICAgIjAuMDU1NjA0LCAwLjIwOTU0OSwgMC4zMzYzNTksIDAuNDk2OTEsIDAuNjU5MTkzLCAwLjgyMTY1OSwgMC45ODQwNzIiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk4ODg1LCAwLjE4Mzk3MywgMC4yNDUzMjcsIDAuMzIxMzE4LCAwLjM5NzIyLCAwLjQ3MzEwMSwgMC41NDg5NTYiLCBcCi0gICAgICAgICAgIjAuMTA0ODU4LCAwLjE4OTk1LCAwLjI1MTI4NSwgMC4zMjcyNjgsIDAuNDAzMTY2LCAwLjQ3OTA5NCwgMC41NTQ5MTIiLCBcCi0gICAgICAgICAgIjAuMTExODcyLCAwLjE5Njk1OSwgMC4yNTgzMTYsIDAuMzM0MzAyLCAwLjQxMDE5OCwgMC40ODYwOTMsIDAuNTYxOTQ2IiwgXAotICAgICAgICAgICIwLjExODY3OSwgMC4yMDM3NTIsIDAuMjY1MDkzLCAwLjM0MTA3OCwgMC40MTY5ODIsIDAuNDkyODU1LCAwLjU2ODcyNCIsIFwKLSAgICAgICAgICAiMC4xMjQ5NjUsIDAuMjEwMTE2LCAwLjI3MTQ3OCwgMC4zNDc0OTIsIDAuNDIzMzkyLCAwLjQ5OTI2LCAwLjU3NTE1NiIsIFwKLSAgICAgICAgICAiMC4xMzQwNDcsIDAuMjE5NTM1LCAwLjI4MDg5OSwgMC4zNTY4ODUsIDAuNDMyNzc4LCAwLjUwODY3MSwgMC41ODQ1MjQiLCBcCi0gICAgICAgICAgIjAuMTQwOTExLCAwLjIyNjc4MiwgMC4yODgxNywgMC4zNjQxOTEsIDAuNDQwMDk2LCAwLjUxNTk4NiwgMC41OTE4NDgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU0NzIxLCAwLjIwNTAxMSwgMC4zMjc1ODEsIDAuNDgzMTYzLCAwLjYzOTY4LCAwLjc5NjYwOSwgMC45NTM4NjIiLCBcCi0gICAgICAgICAgIjAuMDU0NzYyLCAwLjIwNTA4MSwgMC4zMjc1ODUsIDAuNDgzMTczLCAwLjYzOTYxMSwgMC43OTY1ODgsIDAuOTUzODgiLCBcCi0gICAgICAgICAgIjAuMDU0NzUsIDAuMjA1MDY5LCAwLjMyNzU4OSwgMC40ODMxNjIsIDAuNjM5NjExLCAwLjc5NjYzOSwgMC45NTM4NzciLCBcCi0gICAgICAgICAgIjAuMDU0ODE3LCAwLjIwNTA5NiwgMC4zMjc1OTQsIDAuNDgzMTY4LCAwLjYzOTYxMywgMC43OTY0MTYsIDAuOTUzODYxIiwgXAotICAgICAgICAgICIwLjA1NTE4LCAwLjIwNTI1MywgMC4zMjc2OTQsIDAuNDgzMjA4LCAwLjYzOTU3MSwgMC43OTY2ODYsIDAuOTUzOTgzIiwgXAotICAgICAgICAgICIwLjA1NjA2LCAwLjIwNTY0NiwgMC4zMjc5NCwgMC40ODMzOCwgMC42Mzk2NjgsIDAuNzk2NjI2LCAwLjk1MzgiLCBcCi0gICAgICAgICAgIjAuMDU3MTUzLCAwLjIwNjI5LCAwLjMyODMxOCwgMC40ODM1OTQsIDAuNjM5ODkxLCAwLjc5NjkyNCwgMC45NTQwNTYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiWDIiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1OTA4OCwgMC4xNDI0MDUsIDAuMjA0MzM5LCAwLjI4MTUxNywgMC4zNTg2OTEsIDAuNDM1ODQ2LCAwLjUxMzIwNCIsIFwKLSAgICAgICAgICAiMC4wNjY2MjUsIDAuMTQ5OTI0LCAwLjIxMTg3MiwgMC4yODkwNTIsIDAuMzY2MjIsIDAuNDQzNTE4LCAwLjUyMDc2NyIsIFwKLSAgICAgICAgICAiMC4wNzU2NDUsIDAuMTU4ODc3LCAwLjIyMDgyNywgMC4yOTgwMTYsIDAuMzc1MjE4LCAwLjQ1MjQwNCwgMC41Mjk3NDQiLCBcCi0gICAgICAgICAgIjAuMDgzNzA3LCAwLjE2NjkyNywgMC4yMjg4NzIsIDAuMzA2MDY0LCAwLjM4MzI3NCwgMC40NjA1MjIsIDAuNTM3NzgxIiwgXAotICAgICAgICAgICIwLjA5MDU5NiwgMC4xNzM5MjksIDAuMjM1ODg1LCAwLjMxMzA1NywgMC4zOTAyMTgsIDAuNDY3MzU5LCAwLjU0NDc2MiIsIFwKLSAgICAgICAgICAiMC4wOTk5MDQsIDAuMTgzNTI1LCAwLjI0NTQ1MSwgMC4zMjI1MzcsIDAuMzk5NzU2LCAwLjQ3Njg3NSwgMC41NTQxNDciLCBcCi0gICAgICAgICAgIjAuMTA2ODA1LCAwLjE5MDc2LCAwLjI1Mjc2MSwgMC4zMjk5MDcsIDAuNDA3MDc1LCAwLjQ4NDEyNywgMC41NjEyOTYiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDUxMTQyLCAwLjIwNzM5NSwgMC4zMzQ5MzYsIDAuNDk2NDM5LCAwLjY1ODY4NCwgMC44MjAyOTgsIDAuOTgyMTIxIiwgXAotICAgICAgICAgICIwLjA1MTA4LCAwLjIwNzM0NCwgMC4zMzQ5ODgsIDAuNDk2MzA4LCAwLjY1ODAxMywgMC44MTk5NTUsIDAuOTgyMTA2IiwgXAotICAgICAgICAgICIwLjA1MDgxMiwgMC4yMDcyOTEsIDAuMzM0Nzg5LCAwLjQ5NjQyNSwgMC42NTg4NzMsIDAuODIxMzkyLCAwLjk4MjU3OSIsIFwKLSAgICAgICAgICAiMC4wNTE0MywgMC4yMDcyNjQsIDAuMzM0OTEzLCAwLjQ5NTg1MywgMC42NTg4NTQsIDAuODIwMDQyLCAwLjk4MjU4OCIsIFwKLSAgICAgICAgICAiMC4wNTI1MzMsIDAuMjA3NjgyLCAwLjMzNTEyMSwgMC40OTY2MSwgMC42NTg3NDQsIDAuODIxMTQxLCAwLjk4MjU3NyIsIFwKLSAgICAgICAgICAiMC4wNTQ0NjYsIDAuMjA4MjY4LCAwLjMzNTUyMiwgMC40OTY3OTgsIDAuNjU4MjAzLCAwLjgyMTQ3NSwgMC45ODMwOTgiLCBcCi0gICAgICAgICAgIjAuMDU2MjQ2LCAwLjIwODg4MSwgMC4zMzU4ODcsIDAuNDk2NTksIDAuNjU5MjAyLCAwLjgyMTE2MSwgMC45ODQxMzIiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY0MDU0LCAwLjE0ODg1NSwgMC4yMTAxNDYsIDAuMjg2MDg3LCAwLjM2MTk2MywgMC40Mzc4MTUsIDAuNTEzNjc1IiwgXAotICAgICAgICAgICIwLjA3MTQyMSwgMC4xNTYxNzMsIDAuMjE3NDU0LCAwLjI5MzQsIDAuMzY5Mjc2LCAwLjQ0NTEzMiwgMC41MjEwNDQiLCBcCi0gICAgICAgICAgIjAuMDgwMjAzLCAwLjE2NDgzOSwgMC4yMjYxMjIsIDAuMzAyMDcsIDAuMzc3OTQ4LCAwLjQ1MzgwNSwgMC41Mjk3MjUiLCBcCi0gICAgICAgICAgIjAuMDg4MjE3LCAwLjE3Mjc3NCwgMC4yMzQwNywgMC4zMTAwMjEsIDAuMzg1ODg3LCAwLjQ2MTc1MywgMC41Mzc2MTYiLCBcCi0gICAgICAgICAgIjAuMDk1MTMyLCAwLjE3OTY1NywgMC4yNDA5NjcsIDAuMzE2ODkzLCAwLjM5Mjc4NywgMC40Njg2NzcsIDAuNTQ0NDkiLCBcCi0gICAgICAgICAgIjAuMTA0NTI0LCAwLjE4OTI1LCAwLjI1MDU5OCwgMC4zMjY0NjYsIDAuNDAyNDA4LCAwLjQ3ODI2MywgMC41NTQwOTciLCBcCi0gICAgICAgICAgIjAuMTExNjA5LCAwLjE5NjU2NSwgMC4yNTc4MjEsIDAuMzMzNzcxLCAwLjQwOTYyOCwgMC40ODU0ODQsIDAuNTYxMzUzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1MzExNiwgMC4yMDQzNjEsIDAuMzI3MTk5LCAwLjQ4Mjg4NCwgMC42MzkzNjUsIDAuNzk2MzA1LCAwLjk1MzY3NiIsIFwKLSAgICAgICAgICAiMC4wNTI5MDksIDAuMjA0NDU1LCAwLjMyNzE1NSwgMC40ODI4NDksIDAuNjM5MzUzLCAwLjc5NjM2OSwgMC45NTM5MjkiLCBcCi0gICAgICAgICAgIjAuMDUyNDksIDAuMjA0MTksIDAuMzI3MDg3LCAwLjQ4MjgxLCAwLjYzOTMyOCwgMC43OTYzNDcsIDAuOTUzOTQzIiwgXAotICAgICAgICAgICIwLjA1Mjc3NCwgMC4yMDQzMDYsIDAuMzI3MDk3LCAwLjQ4MjgxLCAwLjYzOTMzNCwgMC43OTYzNDYsIDAuOTUzODAzIiwgXAotICAgICAgICAgICIwLjA1MzUxMywgMC4yMDQ1MiwgMC4zMjcyMDIsIDAuNDgyOTE2LCAwLjYzOTM4LCAwLjc5NTYwMSwgMC45NTM2OTYiLCBcCi0gICAgICAgICAgIjAuMDU1MDkyLCAwLjIwNTA3NCwgMC4zMjc2MDksIDAuNDgzMTg4LCAwLjYzOTU5LCAwLjc5NjU2NywgMC45NTM3MyIsIFwKLSAgICAgICAgICAiMC4wNTY2OTEsIDAuMjA1NjE1LCAwLjMyODAwOSwgMC40ODMzODMsIDAuNjM5NzgyLCAwLjc5NjgzMywgMC45NTQxNDYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiWDIiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2MzEwMSwgMC4xNDY5MjksIDAuMjA4OTM1LCAwLjI4NjE0NSwgMC4zNjMzMTksIDAuNDQwNDY0LCAwLjUxNzg2MyIsIFwKLSAgICAgICAgICAiMC4wNzEwNDIsIDAuMTU0ODQyLCAwLjIxNjgzNywgMC4yOTQwNDksIDAuMzcxMjIzLCAwLjQ0ODM3LCAwLjUyNTY5MiIsIFwKLSAgICAgICAgICAiMC4wNzkzODksIDAuMTYzMDkyLCAwLjIyNTEwOCwgMC4zMDIzMjEsIDAuMzc5NDk3LCAwLjQ1NjY0NSwgMC41MzM3MjUiLCBcCi0gICAgICAgICAgIjAuMDg0Njc0LCAwLjE2ODI1OCwgMC4yMzAyOTMsIDAuMzA3NDUyLCAwLjM4NDY1NywgMC40NjE4MjgsIDAuNTM5MjMzIiwgXAotICAgICAgICAgICIwLjA4ODY0MiwgMC4xNzIwNTgsIDAuMjM0MTA3LCAwLjMxMTI1LCAwLjM4ODQ5NywgMC40NjU2NTQsIDAuNTQzMDU5IiwgXAotICAgICAgICAgICIwLjA5Mzg2OSwgMC4xNzcxNjMsIDAuMjM5MjMyLCAwLjMxNjQyLCAwLjM5MzYxLCAwLjQ3MDgzNywgMC41NDgwMzEiLCBcCi0gICAgICAgICAgIjAuMDk3NTcxLCAwLjE4MDkzOSwgMC4yNDI3ODUsIDAuMzIwMTIyLCAwLjM5NzE4MywgMC40NzQ0MTksIDAuNTUxNTQ4Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1MTY4MSwgMC4yMDc4NjgsIDAuMzM1MzIxLCAwLjQ5NjY5OSwgMC42NTg4NjcsIDAuODIxMjIxLCAwLjk4MjY0MSIsIFwKLSAgICAgICAgICAiMC4wNTE1OTgsIDAuMjA3ODI3LCAwLjMzNTM1NSwgMC40OTY2ODQsIDAuNjU4ODMzLCAwLjgyMTE4NCwgMC45ODI0NzgiLCBcCi0gICAgICAgICAgIjAuMDUxMjIyLCAwLjIwNzc1NCwgMC4zMzUyMjksIDAuNDk2NjczLCAwLjY1ODgzNSwgMC44MjEyMDgsIDAuOTgyOTk3IiwgXAotICAgICAgICAgICIwLjA1MDkxOCwgMC4yMDc2NjYsIDAuMzM0OTc3LCAwLjQ5NjMwOCwgMC42NTgwOTcsIDAuODIxMjE2LCAwLjk4MjYyMiIsIFwKLSAgICAgICAgICAiMC4wNTA4MSwgMC4yMDczNDMsIDAuMzM1MDk2LCAwLjQ5NjU3OSwgMC42NTgxNTIsIDAuODIxMTY4LCAwLjk4MjU5MyIsIFwKLSAgICAgICAgICAiMC4wNTA5MDMsIDAuMjA3NDA2LCAwLjMzNDk2MywgMC40OTYxMTYsIDAuNjU3ODU3LCAwLjgyMTQ0MywgMC45ODQwOTYiLCBcCi0gICAgICAgICAgIjAuMDUwOTQ1LCAwLjIwNzI2NywgMC4zMzQ5MDEsIDAuNDk2NTUxLCAwLjY1ODY3NywgMC44MjAxLCAwLjk4NDA2Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2NzcwNCwgMC4xNTIxMiwgMC4yMTMzMzQsIDAuMjg5MjY2LCAwLjM2NTE0MSwgMC40NDA5OTYsIDAuNTE2ODY1IiwgXAotICAgICAgICAgICIwLjA3NTk1MywgMC4xNjAyODUsIDAuMjIxNDg2LCAwLjI5NzQ0MSwgMC4zNzMzMjMsIDAuNDQ5MTgzLCAwLjUyNTAyMyIsIFwKLSAgICAgICAgICAiMC4wODQ0NjgsIDAuMTY4NzQxLCAwLjIyOTk2MSwgMC4zMDU5MDcsIDAuMzgxNzg2LCAwLjQ1NzYzNywgMC41MzM1IiwgXAotICAgICAgICAgICIwLjA5MDMwOCwgMC4xNzQ1MDgsIDAuMjM1NzI0LCAwLjMxMTU4MiwgMC4zODc1NzgsIDAuNDYzNDQ0LCAwLjUzOTI2OCIsIFwKLSAgICAgICAgICAiMC4wOTQ1MDgsIDAuMTc4NTY5LCAwLjIzOTc5NiwgMC4zMTU3NSwgMC4zOTE2MjQsIDAuNDY3NDgyLCAwLjU0MzMyNiIsIFwKLSAgICAgICAgICAiMC4xMDAwMzIsIDAuMTgzOTQ5LCAwLjI0NTE0MywgMC4zMjEwNjcsIDAuMzk2OTk4LCAwLjQ3Mjg0OSwgMC41NDg2ODgiLCBcCi0gICAgICAgICAgIjAuMTA0MTc4LCAwLjE4ODA2NSwgMC4yNDkyMywgMC4zMjUyMiwgMC40MDEwNzksIDAuNDc2OTg0LCAwLjU1Mjc4OSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTMwNjgsIDAuMjA0MDA2LCAwLjMyNjc3MywgMC40ODI2MDQsIDAuNjM5MTk3LCAwLjc5NjI1NCwgMC45NTM3OTYiLCBcCi0gICAgICAgICAgIjAuMDUzMDgsIDAuMjAzOTY0LCAwLjMyNjY5MSwgMC40ODIxNzQsIDAuNjM4MTI4LCAwLjc5NjI2NywgMC45NTM1NTkiLCBcCi0gICAgICAgICAgIjAuMDUyNjUzLCAwLjIwMzc2LCAwLjMyNjQ5NiwgMC40ODI1NjIsIDAuNjM5MTQ4LCAwLjc5NjE1MiwgMC45NTM1NyIsIFwKLSAgICAgICAgICAiMC4wNTIyNjcsIDAuMjAzNzg2LCAwLjMyNjY2NCwgMC40ODI0ODQsIDAuNjM5MTIzLCAwLjc5NjM5MywgMC45NTMzOTYiLCBcCi0gICAgICAgICAgIjAuMDUyMDYxLCAwLjIwMzYzNiwgMC4zMjY1ODYsIDAuNDgyNTAyLCAwLjYzOTAyMSwgMC43OTYwODUsIDAuOTUzMzc3IiwgXAotICAgICAgICAgICIwLjA1MjEwNCwgMC4yMDM1MDYsIDAuMzI2NDE4LCAwLjQ4MjMxNywgMC42MzkxODQsIDAuNzk2MTAxLCAwLjk1MzM1OSIsIFwKLSAgICAgICAgICAiMC4wNTIyNjMsIDAuMjAzMzc1LCAwLjMyNjMxNiwgMC40ODE3NjcsIDAuNjM4MDQ0LCAwLjc5NjI5NywgMC45NTMzMjciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQ1NTksIDAuMDA0NTUzLCAwLjAwNDU2MSwgMC4wMDQ1NjYsIDAuMDA0NTY4LCAwLjAwNDU2OSwgMC4wMDQ1NzEiLCBcCi0gICAgICAgICAgIjAuMDA0NTE0LCAwLjAwNDUwOCwgMC4wMDQ1MTQsIDAuMDA0NTIsIDAuMDA0NTIzLCAwLjAwNDUyNSwgMC4wMDQ1MjciLCBcCi0gICAgICAgICAgIjAuMDA0NTMyLCAwLjAwNDUyMywgMC4wMDQ1MzIsIDAuMDA0NTM4LCAwLjAwNDU0MSwgMC4wMDQ1NDQsIDAuMDA0NTQ2IiwgXAotICAgICAgICAgICIwLjAwNDYyMSwgMC4wMDQ1OTMsIDAuMDA0NjAxLCAwLjAwNDYwOCwgMC4wMDQ2MTIsIDAuMDA0NjEzLCAwLjAwNDYxNSIsIFwKLSAgICAgICAgICAiMC4wMDQ3MzEsIDAuMDA0NjkyLCAwLjAwNDcsIDAuMDA0NzA3LCAwLjAwNDcwOSwgMC4wMDQ3MTQsIDAuMDA0NzE1IiwgXAotICAgICAgICAgICIwLjAwNDk4LCAwLjAwNDkwOSwgMC4wMDQ5MTYsIDAuMDA0OTIxLCAwLjAwNDkyNCwgMC4wMDQ5MjgsIDAuMDA0OTI4IiwgXAotICAgICAgICAgICIwLjAwNTIyOCwgMC4wMDUxMzIsIDAuMDA1MTM2LCAwLjAwNTEzOSwgMC4wMDUxNDMsIDAuMDA1MTQ3LCAwLjAwNTE0NyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMTEyLCAwLjAxMTExMSwgMC4wMTExMiwgMC4wMTExMjYsIDAuMDExMTI5LCAwLjAxMTEzMiwgMC4wMTExMzMiLCBcCi0gICAgICAgICAgIjAuMDExMDksIDAuMDExMDgyLCAwLjAxMTA5MSwgMC4wMTEwOTgsIDAuMDExMTAxLCAwLjAxMTEwNCwgMC4wMTExMDUiLCBcCi0gICAgICAgICAgIjAuMDExMTEsIDAuMDExMDk0LCAwLjAxMTEwNiwgMC4wMTExMTMsIDAuMDExMTE4LCAwLjAxMTEyLCAwLjAxMTEyMiIsIFwKLSAgICAgICAgICAiMC4wMTExODcsIDAuMDExMTU1LCAwLjAxMTE2NSwgMC4wMTExNzMsIDAuMDExMTc4LCAwLjAxMTE4MSwgMC4wMTExODMiLCBcCi0gICAgICAgICAgIjAuMDExMjksIDAuMDExMjQ0LCAwLjAxMTI1NSwgMC4wMTEyNjMsIDAuMDExMjY4LCAwLjAxMTI3MSwgMC4wMTEyNzMiLCBcCi0gICAgICAgICAgIjAuMDExNTEzLCAwLjAxMTQzOCwgMC4wMTE0NDcsIDAuMDExNDU0LCAwLjAxMTQ1OCwgMC4wMTE0NjEsIDAuMDExNDY0IiwgXAotICAgICAgICAgICIwLjAxMTc1MiwgMC4wMTE2NSwgMC4wMTE2NTcsIDAuMDExNjYzLCAwLjAxMTY2NywgMC4wMTE2NjcsIDAuMDExNjY5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiTTAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjQ3MiwgMC4wMDY0NzgsIDAuMDA2NDg3LCAwLjAwNjQ5MywgMC4wMDY0OTgsIDAuMDA2NTAxLCAwLjAwNjQ5NyIsIFwKLSAgICAgICAgICAiMC4wMDY0ODIsIDAuMDA2NDg5LCAwLjAwNjQ5OCwgMC4wMDY1MDMsIDAuMDA2NTA3LCAwLjAwNjUwOSwgMC4wMDY1MSIsIFwKLSAgICAgICAgICAiMC4wMDY1NTcsIDAuMDA2NTcsIDAuMDA2NTgsIDAuMDA2NTg3LCAwLjAwNjU5LCAwLjAwNjU5MiwgMC4wMDY1OTMiLCBcCi0gICAgICAgICAgIjAuMDA2Njc3LCAwLjAwNjY3OSwgMC4wMDY2ODgsIDAuMDA2Njk0LCAwLjAwNjY5OCwgMC4wMDY3LCAwLjAwNjcwMSIsIFwKLSAgICAgICAgICAiMC4wMDY3OTMsIDAuMDA2ODAyLCAwLjAwNjgxMSwgMC4wMDY4MTcsIDAuMDA2ODIxLCAwLjAwNjgyMywgMC4wMDY4MjQiLCBcCi0gICAgICAgICAgIjAuMDA3MDQyLCAwLjAwNzA1MywgMC4wMDcwNjMsIDAuMDA3MDcsIDAuMDA3MDc0LCAwLjAwNzA3NywgMC4wMDcwNzciLCBcCi0gICAgICAgICAgIjAuMDA3MTc5LCAwLjAwNzIxNSwgMC4wMDcyMjYsIDAuMDA3MiwgMC4wMDcyMDUsIDAuMDA3MjA3LCAwLjAwNzIwNyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjg4NywgMC4wMDY4NzIsIDAuMDA2ODgyLCAwLjAwNjg4OCwgMC4wMDY4OTIsIDAuMDA2ODk0LCAwLjAwNjg5NiIsIFwKLSAgICAgICAgICAiMC4wMDY4OTcsIDAuMDA2ODg2LCAwLjAwNjg5NiwgMC4wMDY5MDMsIDAuMDA2OTA2LCAwLjAwNjkwOCwgMC4wMDY5MSIsIFwKLSAgICAgICAgICAiMC4wMDY5NzEsIDAuMDA2OTYzLCAwLjAwNjk3NCwgMC4wMDY5ODEsIDAuMDA2OTg1LCAwLjAwNjk4NywgMC4wMDY5ODkiLCBcCi0gICAgICAgICAgIjAuMDA3MDg3LCAwLjAwNzA4LCAwLjAwNzA5LCAwLjAwNzA5NywgMC4wMDcxMDEsIDAuMDA3MTA0LCAwLjAwNzEwNSIsIFwKLSAgICAgICAgICAiMC4wMDcyNCwgMC4wMDcyMzUsIDAuMDA3MjQ2LCAwLjAwNzI1NCwgMC4wMDcyNTgsIDAuMDA3MjYxLCAwLjAwNzI2MyIsIFwKLSAgICAgICAgICAiMC4wMDc0NjMsIDAuMDA3NDU4LCAwLjAwNzQ2OCwgMC4wMDc0NzYsIDAuMDA3NDgsIDAuMDA3NDgzLCAwLjAwNzQ4NSIsIFwKLSAgICAgICAgICAiMC4wMDc2MywgMC4wMDc2MjYsIDAuMDA3NjM3LCAwLjAwNzY0NSwgMC4wMDc2NDksIDAuMDA3NjUyLCAwLjAwNzY1NCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIk0xIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDY1MzUsIDAuMDA2NTI0LCAwLjAwNjUzMSwgMC4wMDY1MzYsIDAuMDA2NTQyLCAwLjAwNjU0LCAwLjAwNjU0MiIsIFwKLSAgICAgICAgICAiMC4wMDY1NDUsIDAuMDA2NTM1LCAwLjAwNjU0MywgMC4wMDY1NDcsIDAuMDA2NTUsIDAuMDA2NTUxLCAwLjAwNjU1MyIsIFwKLSAgICAgICAgICAiMC4wMDY2MjcsIDAuMDA2NjIyLCAwLjAwNjYzLCAwLjAwNjYzNSwgMC4wMDY2MzgsIDAuMDA2NjQsIDAuMDA2NjQxIiwgXAotICAgICAgICAgICIwLjAwNjc0NywgMC4wMDY3MzQsIDAuMDA2NzQyLCAwLjAwNjc0NSwgMC4wMDY3NDksIDAuMDA2NzUsIDAuMDA2NzUxIiwgXAotICAgICAgICAgICIwLjAwNjg2MywgMC4wMDY4NTcsIDAuMDA2ODY2LCAwLjAwNjg3MSwgMC4wMDY4NzUsIDAuMDA2ODc3LCAwLjAwNjg3OCIsIFwKLSAgICAgICAgICAiMC4wMDcxMzEsIDAuMDA3MTI1LCAwLjAwNzEzMSwgMC4wMDcxNCwgMC4wMDcxNDMsIDAuMDA3MTQ2LCAwLjAwNzE0NyIsIFwKLSAgICAgICAgICAiMC4wMDczMjEsIDAuMDA3MzE0LCAwLjAwNzMyMywgMC4wMDczMjgsIDAuMDA3MzI5LCAwLjAwNzMzMywgMC4wMDczMzMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDcyOTEsIDAuMDA3MjYyLCAwLjAwNzI3MSwgMC4wMDcyNzcsIDAuMDA3MjgsIDAuMDA3MjgyLCAwLjAwNzI4NCIsIFwKLSAgICAgICAgICAiMC4wMDczMTIsIDAuMDA3MjgyLCAwLjAwNzI5MSwgMC4wMDcyOTcsIDAuMDA3MzAxLCAwLjAwNzMwMywgMC4wMDczMDQiLCBcCi0gICAgICAgICAgIjAuMDA3Mzc3LCAwLjAwNzM1OCwgMC4wMDczNjcsIDAuMDA3Mzc0LCAwLjAwNzM3NywgMC4wMDczOCwgMC4wMDczODEiLCBcCi0gICAgICAgICAgIjAuMDA3NSwgMC4wMDc0NzgsIDAuMDA3NDg3LCAwLjAwNzQ5NCwgMC4wMDc0OTcsIDAuMDA3NSwgMC4wMDc1MDEiLCBcCi0gICAgICAgICAgIjAuMDA3NjE4LCAwLjAwNzYwNCwgMC4wMDc2MTQsIDAuMDA3NjIyLCAwLjAwNzYyNiwgMC4wMDc2MjgsIDAuMDA3NjMiLCBcCi0gICAgICAgICAgIjAuMDA3ODg1LCAwLjAwNzg2MywgMC4wMDc4NzIsIDAuMDA3ODc5LCAwLjAwNzg4NCwgMC4wMDc4ODYsIDAuMDA3ODg4IiwgXAotICAgICAgICAgICIwLjAwODA5MSwgMC4wMDgwNzEsIDAuMDA4MDgsIDAuMDA4MDg4LCAwLjAwODA5MiwgMC4wMDgwOTMsIDAuMDA4MDk1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0OTk4LCAwLjAwNDk5MywgMC4wMDUsIDAuMDA1MDA1LCAwLjAwNTAwNywgMC4wMDUwMDgsIDAuMDA1MDEiLCBcCi0gICAgICAgICAgIjAuMDA0OTU1LCAwLjAwNDk0OSwgMC4wMDQ5NTcsIDAuMDA0OTYyLCAwLjAwNDk2NCwgMC4wMDQ5NjgsIDAuMDA0OTY3IiwgXAotICAgICAgICAgICIwLjAwNDk4LCAwLjAwNDk3MiwgMC4wMDQ5ODEsIDAuMDA0OTg3LCAwLjAwNDk5LCAwLjAwNDk5MiwgMC4wMDQ5OTQiLCBcCi0gICAgICAgICAgIjAuMDA1MDczLCAwLjAwNTA0NywgMC4wMDUwNTYsIDAuMDA1MDYyLCAwLjAwNTA2NiwgMC4wMDUwNjgsIDAuMDA1MDciLCBcCi0gICAgICAgICAgIjAuMDA1MTk4LCAwLjAwNTE1NiwgMC4wMDUxNjQsIDAuMDA1MTcsIDAuMDA1MTc0LCAwLjAwNTE3NywgMC4wMDUxNzgiLCBcCi0gICAgICAgICAgIjAuMDA1NDUsIDAuMDA1MzgxLCAwLjAwNTM4NiwgMC4wMDUzOTIsIDAuMDA1Mzk2LCAwLjAwNTM5OCwgMC4wMDU0MDEiLCBcCi0gICAgICAgICAgIjAuMDA1NzA4LCAwLjAwNTYxMiwgMC4wMDU2MTUsIDAuMDA1NjE5LCAwLjAwNTYyMiwgMC4wMDU2MjcsIDAuMDA1NjI2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEwNTM2LCAwLjAxMDUzLCAwLjAxMDU0LCAwLjAxMDU0NiwgMC4wMTA1NSwgMC4wMTA1NTIsIDAuMDEwNTU0IiwgXAotICAgICAgICAgICIwLjAxMDUwOSwgMC4wMTA1MDMsIDAuMDEwNTEzLCAwLjAxMDUyLCAwLjAxMDUyMywgMC4wMTA1MjYsIDAuMDEwNTI3IiwgXAotICAgICAgICAgICIwLjAxMDUyOSwgMC4wMTA1MiwgMC4wMTA1MzEsIDAuMDEwNTM5LCAwLjAxMDU0MywgMC4wMTA1NDYsIDAuMDEwNTQ4IiwgXAotICAgICAgICAgICIwLjAxMDYxLCAwLjAxMDU4MSwgMC4wMTA1OTIsIDAuMDEwNiwgMC4wMTA2MDUsIDAuMDEwNjA3LCAwLjAxMDYxIiwgXAotICAgICAgICAgICIwLjAxMDcyMiwgMC4wMTA2NzYsIDAuMDEwNjg2LCAwLjAxMDY5NSwgMC4wMTA2OTksIDAuMDEwNzAyLCAwLjAxMDcwNCIsIFwKLSAgICAgICAgICAiMC4wMTA5NTQsIDAuMDEwODc0LCAwLjAxMDg4NCwgMC4wMTA4OTIsIDAuMDEwODk3LCAwLjAxMDksIDAuMDEwOTAyIiwgXAotICAgICAgICAgICIwLjAxMTIsIDAuMDExMDkyLCAwLjAxMTA5NiwgMC4wMTExMDMsIDAuMDExMTA3LCAwLjAxMTEwOCwgMC4wMTExMSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlgyIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDU1ODEsIDAuMDA1NjE4LCAwLjAwNTYyNiwgMC4wMDU2MzMsIDAuMDA1NjMyLCAwLjAwNTYzNiwgMC4wMDU2MzUiLCBcCi0gICAgICAgICAgIjAuMDA1NjUyLCAwLjAwNTY5MSwgMC4wMDU2OTksIDAuMDA1NzA1LCAwLjAwNTcwOCwgMC4wMDU3MSwgMC4wMDU3MTEiLCBcCi0gICAgICAgICAgIjAuMDA1ODAyLCAwLjAwNTg0MSwgMC4wMDU4NTIsIDAuMDA1ODU5LCAwLjAwNTg2MywgMC4wMDU4NjYsIDAuMDA1ODU0IiwgXAotICAgICAgICAgICIwLjAwNTk2NCwgMC4wMDU5OTksIDAuMDA2MDEsIDAuMDA2MDE3LCAwLjAwNjAyMSwgMC4wMDYwMjQsIDAuMDA2MDIzIiwgXAotICAgICAgICAgICIwLjAwNjEzOCwgMC4wMDYxNzMsIDAuMDA2MTg0LCAwLjAwNjE5MSwgMC4wMDYxODksIDAuMDA2MTk3LCAwLjAwNjE5MyIsIFwKLSAgICAgICAgICAiMC4wMDY0NzEsIDAuMDA2NDc2LCAwLjAwNjUwMywgMC4wMDY1MDksIDAuMDA2NTExLCAwLjAwNjUxNSwgMC4wMDY1MTciLCBcCi0gICAgICAgICAgIjAuMDA2NzQzLCAwLjAwNjc1MSwgMC4wMDY3NzMsIDAuMDA2NzY1LCAwLjAwNjc4MSwgMC4wMDY3ODMsIDAuMDA2Nzg0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0MzY1LCAwLjAwNDQsIDAuMDA0NDA5LCAwLjAwNDQxNCwgMC4wMDQ0MTcsIDAuMDA0NDE4LCAwLjAwNDQxOSIsIFwKLSAgICAgICAgICAiMC4wMDQ0NDYsIDAuMDA0NDgxLCAwLjAwNDQ5MiwgMC4wMDQ0OTgsIDAuMDA0NTAyLCAwLjAwNDUwNCwgMC4wMDQ1MDUiLCBcCi0gICAgICAgICAgIjAuMDA0NTg5LCAwLjAwNDYzMiwgMC4wMDQ2NDYsIDAuMDA0NjU0LCAwLjAwNDY1OSwgMC4wMDQ2NjEsIDAuMDA0NjY0IiwgXAotICAgICAgICAgICIwLjAwNDc4NSwgMC4wMDQ4MjIsIDAuMDA0ODM1LCAwLjAwNDgzMywgMC4wMDQ4NSwgMC4wMDQ4NTQsIDAuMDA0ODU2IiwgXAotICAgICAgICAgICIwLjAwNDk2MSwgMC4wMDUwMTEsIDAuMDA1MDI1LCAwLjAwNTAzNCwgMC4wMDUwNCwgMC4wMDUwMzEsIDAuMDA1MDMzIiwgXAotICAgICAgICAgICIwLjAwNTMwNSwgMC4wMDUzMzgsIDAuMDA1MzUsIDAuMDA1MzQzLCAwLjAwNTM2NSwgMC4wMDUzNjksIDAuMDA1MzcxIiwgXAotICAgICAgICAgICIwLjAwNTU4NSwgMC4wMDU2MTEsIDAuMDA1NjIzLCAwLjAwNTYzMSwgMC4wMDU2MzYsIDAuMDA1NjM5LCAwLjAwNTY0MSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUykgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNDcxNjY7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNDY5MTU7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNDcxNjY7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNTc0LCAwLjAwMDU0NywgMC4wMDA1NjYsIDAuMDAwNjEyLCAwLjAwMDY3NiwgMC4wMDA4MDYsIDAuMDAwOTM5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzMTQxLCAwLjAwMzExNCwgMC4wMDMxMjksIDAuMDAzMTcsIDAuMDAzMjMsIDAuMDAzMzUyLCAwLjAwMzQ4MSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWDIpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTE5OTExOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTE5OTExOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTE5ODk5OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDAxMSwgMCwgMC4wMDAxMTUsIDAuMDAwMjAyLCAwLjAwMDMzLCAwLjAwMDU1NCwgMC4wMDA3NTEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDIxOTMsIDAuMDAyMjA0LCAwLjAwMjI4OCwgMC4wMDIzOTUsIDAuMDAyNTE5LCAwLjAwMjczNywgMC4wMDI5MzQiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogQlVGWDggKgotICogLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKEJVRlg4KSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuOTIzMzc3OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE3MDcxMzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE3MDcxMzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE3MDcxMjsKLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAyLjY3MTEyOwotICAgIGZ1bmN0aW9uIDogIkEiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDI0ODk5LCAwLjA1Mzg2NSwgMC4wODEzNDksIDAuMTAwOTcyLCAwLjEzMjMxNywgMC4xNTk4MjYsIDAuMTk4OTkzIiwgXAotICAgICAgICAgICIwLjAzMzE3LCAwLjA2MjA2MSwgMC4wODk1NzUsIDAuMTA5MjAyLCAwLjE0MDYyLCAwLjE2ODA2NiwgMC4yMDczOTciLCBcCi0gICAgICAgICAgIjAuMDQxNjM0LCAwLjA3MDg4NSwgMC4wOTg0NTQsIDAuMTE4MDg5LCAwLjE0OTQ1NywgMC4xNzY5MzQsIDAuMjE2MTg2IiwgXAotICAgICAgICAgICIwLjA0NzgzMywgMC4wNzc1NzMsIDAuMTA1MDI3LCAwLjEyNDU5NCwgMC4xNTU5NzMsIDAuMTgzNDM0LCAwLjIyMjY0NSIsIFwKLSAgICAgICAgICAiMC4wNTI4MjksIDAuMDgyOTkyLCAwLjExMDQ3NiwgMC4xMzAwNywgMC4xNjE0MTYsIDAuMTg4ODksIDAuMjI4MTQzIiwgXAotICAgICAgICAgICIwLjA1OTQ4OCwgMC4wOTA0MDcsIDAuMTE3OTI0LCAwLjEzNzUxMywgMC4xNjg4MzcsIDAuMTk2MjU5LCAwLjIzNTQ1OCIsIFwKLSAgICAgICAgICAiMC4wNjQzNTIsIDAuMDk1OTI1LCAwLjEyMzQ2MywgMC4xNDMxMzIsIDAuMTc0MzUsIDAuMjAxNjY5LCAwLjI0MDg3MSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxNjU5MywgMC4wNzIxODgsIDAuMTI5NDA4LCAwLjE3MDkwOCwgMC4yMzY1MzMsIDAuMjk1MTM1LCAwLjM3NzQ0MSIsIFwKLSAgICAgICAgICAiMC4wMTY4NzgsIDAuMDcyMjM1LCAwLjEyOTYyNSwgMC4xNzA4ODksIDAuMjM2NzU5LCAwLjI5NTEzNCwgMC4zNzc0MzYiLCBcCi0gICAgICAgICAgIjAuMDE4NTY0LCAwLjA3MjcyOCwgMC4xMjk2OSwgMC4xNzEwMTEsIDAuMjM3MTIzLCAwLjI5NDc4MywgMC4zNzc1NzEiLCBcCi0gICAgICAgICAgIjAuMDIwMTk3LCAwLjA3MzQyNiwgMC4xMjk5NDYsIDAuMTcxMDIxLCAwLjIzNzIyOSwgMC4yOTQ3NjIsIDAuMzc3NzMzIiwgXAotICAgICAgICAgICIwLjAyMTY2NSwgMC4wNzQyNDYsIDAuMTMwMzM1LCAwLjE3MTIyNSwgMC4yMzY5MzIsIDAuMjk1MjYyLCAwLjM3NzMwNCIsIFwKLSAgICAgICAgICAiMC4wMjM2MzMsIDAuMDc1NDYxLCAwLjEzMDk4NiwgMC4xNzE1OTMsIDAuMjM3MjMzLCAwLjI5NDk1MywgMC4zNzczOTUiLCBcCi0gICAgICAgICAgIjAuMDI1MzM1LCAwLjA3NjU2NywgMC4xMzE3ODEsIDAuMTcxOTg5LCAwLjIzNzQzMiwgMC4yOTUxNTQsIDAuMzc3NTgyIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDI2MTk5LCAwLjA1NTkxMSwgMC4wODQxNjksIDAuMTA0MzIxLCAwLjEzNjU2NiwgMC4xNjQ4MDIsIDAuMjA1MDY5IiwgXAotICAgICAgICAgICIwLjAzNDM0NywgMC4wNjQwMjUsIDAuMDkyMjkyLCAwLjExMjQ0NiwgMC4xNDQ2OTUsIDAuMTcyODk1LCAwLjIxMzE5NCIsIFwKLSAgICAgICAgICAiMC4wNDI2NDksIDAuMDcyNTM5LCAwLjEwMDc4NSwgMC4xMjA5MywgMC4xNTMxNjIsIDAuMTgxMzcyLCAwLjIyMTY1NSIsIFwKLSAgICAgICAgICAiMC4wNDg2MTYsIDAuMDc4ODE4LCAwLjEwNzA2NywgMC4xMjcxOTEsIDAuMTU5NDA5LCAwLjE4NzYxNCwgMC4yMjc5MjQiLCBcCi0gICAgICAgICAgIjAuMDUzMjYxLCAwLjA4MzgwMSwgMC4xMTIxODksIDAuMTMyMTQ2LCAwLjE2NDM0MiwgMC4xOTI1MzgsIDAuMjMyODE3IiwgXAotICAgICAgICAgICIwLjA1OTUsIDAuMDkwNDgxLCAwLjExODc1MSwgMC4xMzg4OTMsIDAuMTcxMDQ3LCAwLjE5OTE5NywgMC4yMzk0NDEiLCBcCi0gICAgICAgICAgIjAuMDYzOTEyLCAwLjA5NTM3NiwgMC4xMjM1NjIsIDAuMTQzOTg4LCAwLjE3NjAxNSwgMC4yMDQxNzQsIDAuMjQ0MjYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTY0NzgsIDAuMDcyNzk2LCAwLjEzMDk1NiwgMC4xNzI3MDEsIDAuMjM5Mjc0LCAwLjI5NzgyNSwgMC4zODE2OTQiLCBcCi0gICAgICAgICAgIjAuMDE2NjQsIDAuMDcyODg2LCAwLjEzMDk3NCwgMC4xNzI3MDgsIDAuMjM5NzE1LCAwLjI5Nzc2MiwgMC4zODEzODEiLCBcCi0gICAgICAgICAgIjAuMDE4MTMyLCAwLjA3MzM2OSwgMC4xMzExNzgsIDAuMTcyNjI2LCAwLjIzOTcxMiwgMC4yOTc5OTksIDAuMzgyMDk3IiwgXAotICAgICAgICAgICIwLjAxOTU4MiwgMC4wNzQwMTIsIDAuMTMxMjY3LCAwLjE3MzAwNywgMC4yMzk4MjUsIDAuMjk3OTY1LCAwLjM4MTU1NyIsIFwKLSAgICAgICAgICAiMC4wMjEwNywgMC4wNzQ2MDYsIDAuMTMxNzE2LCAwLjE3MzIxNiwgMC4yMzk5MiwgMC4yOTg1NjMsIDAuMzgxNDgyIiwgXAotICAgICAgICAgICIwLjAyMjczNiwgMC4wNzU2MzYsIDAuMTMyMTI1LCAwLjE3MzMyOSwgMC4yMzk4NzgsIDAuMjk4NTU3LCAwLjM4MjMxMSIsIFwKLSAgICAgICAgICAiMC4wMjQwODUsIDAuMDc2NjQyLCAwLjEzMjc1OSwgMC4xNzM1MzMsIDAuMjQwMDQ1LCAwLjI5ODMwMywgMC4zODIzMiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEwMDkyLCAwLjAxMDQxOSwgMC4wMTA0ODEsIDAuMDEwNDkzLCAwLjAxMDUxNywgMC4wMTA1MzYsIDAuMDEwNTI0IiwgXAotICAgICAgICAgICIwLjAxMDA0OCwgMC4wMTAzMjcsIDAuMDEwNDAyLCAwLjAxMDQyOCwgMC4wMTA0NTIsIDAuMDEwNDYzLCAwLjAxMDQ3NSIsIFwKLSAgICAgICAgICAiMC4wMTAyNTksIDAuMDEwNDQ1LCAwLjAxMDUyOCwgMC4wMTA1NjQsIDAuMDEwNTg3LCAwLjAxMDYwMiwgMC4wMTA2MTciLCBcCi0gICAgICAgICAgIjAuMDEwNjU2LCAwLjAxMDcxNywgMC4wMTA3ODQsIDAuMDEwODA3LCAwLjAxMDgzOSwgMC4wMTA4NDgsIDAuMDEwODc2IiwgXAotICAgICAgICAgICIwLjAxMTE5MiwgMC4wMTEwMiwgMC4wMTEwODYsIDAuMDExMDk4LCAwLjAxMTEyNywgMC4wMTExMzksIDAuMDExMTY3IiwgXAotICAgICAgICAgICIwLjAxMTk2MSwgMC4wMTE1NTcsIDAuMDExNjAzLCAwLjAxMTYxOSwgMC4wMTE2MzUsIDAuMDExNjQzLCAwLjAxMTY2NCIsIFwKLSAgICAgICAgICAiMC4wMTI3MTksIDAuMDEyMTM1LCAwLjAxMjE4OSwgMC4wMTIxNDksIDAuMDEyMTk3LCAwLjAxMjIwMywgMC4wMTIxNzYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMjYxMywgMC4wMTMwOTgsIDAuMDEzMTg5LCAwLjAxMzIxOSwgMC4wMTMyNDYsIDAuMDEzMjU5LCAwLjAxMzI3MiIsIFwKLSAgICAgICAgICAiMC4wMTI1NTcsIDAuMDEyOTk0LCAwLjAxMzExMywgMC4wMTMxNTMsIDAuMDEzMTkxLCAwLjAxMzIxMSwgMC4wMTMyMyIsIFwKLSAgICAgICAgICAiMC4wMTI3NzUsIDAuMDEzMTAxLCAwLjAxMzIyNiwgMC4wMTMyNjYsIDAuMDEzMzE3LCAwLjAxMzM0MiwgMC4wMTMzNjUiLCBcCi0gICAgICAgICAgIjAuMDEzMTk2LCAwLjAxMzQyMiwgMC4wMTM1MzEsIDAuMDEzNTc5LCAwLjAxMzYyNiwgMC4wMTM2NTMsIDAuMDEzNjc4IiwgXAotICAgICAgICAgICIwLjAxMzc0NSwgMC4wMTM2MjMsIDAuMDEzNzIxLCAwLjAxMzc2MSwgMC4wMTM4MDcsIDAuMDEzODMzLCAwLjAxMzg1OSIsIFwKLSAgICAgICAgICAiMC4wMTQxNTIsIDAuMDE0MTQ4LCAwLjAxNDMxLCAwLjAxNDI0NiwgMC4wMTQyODIsIDAuMDE0MzA5LCAwLjAxNDMzNCIsIFwKLSAgICAgICAgICAiMC4wMTQ3OTYsIDAuMDE0NzE1LCAwLjAxNDcyNiwgMC4wMTQ3MTUsIDAuMDE0NzY2LCAwLjAxNDc4NywgMC4wMTQ4MTciKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBDTEtBTkQyWDEyICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKENMS0FORDJYMTIpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMi4xMTY4MTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAzNjgxODU7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAzNjgxODU7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAzNjY2NTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDE2MTQsIDAuMDAxNjEyLCAwLjAwMTYxMiwgMC4wMDE2MTIsIDAuMDAxNjEyLCAwLjAwMTYxMSwgMC4wMDE2MTEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDE3NzYsIDAuMDAxNjYzLCAwLjAwMTY1MiwgMC4wMDE2MjgsIDAuMDAxNjI2LCAwLjAwMTYyLCAwLjAwMTYxOSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAzNzE5NDY7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAzNzE5NDY7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAzNzE0NDM7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzU5LCAwLjAwMDM1NywgMC4wMDAzNTYsIDAuMDAwMzU1LCAwLjAwMDM1NiwgMC4wMDAzNTcsIDAuMDAwMzU3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyMDM1LCAwLjAwMjAzNSwgMC4wMDIwMzcsIDAuMDAyMDM2LCAwLjAwMjAzNiwgMC4wMDIwMzYsIDAuMDAyMDM2Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDQuMDE5Njg7Ci0gICAgZnVuY3Rpb24gOiAiKEEgQikiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyNjUyMSwgMC4wMjg3MzIsIDAuMDM5MTQ5LCAwLjA0NzQwNSwgMC4wNTgwODcsIDAuMDc5MTczLCAwLjA5MjMxNyIsIFwKLSAgICAgICAgICAiMC4wMzMwMDksIDAuMDM1MjE5LCAwLjA0NTYyNiwgMC4wNTM4NzMsIDAuMDY0NTM2LCAwLjA4NTYxNSwgMC4wOTg3NTkiLCBcCi0gICAgICAgICAgIjAuMDM5NDUzLCAwLjA0MTcyNSwgMC4wNTIzNjIsIDAuMDYwNjY5LCAwLjA3MTM1OSwgMC4wOTI0NDEsIDAuMTA1NTg2IiwgXAotICAgICAgICAgICIwLjA0NDMwNCwgMC4wNDY2NCwgMC4wNTc0ODEsIDAuMDY1OTA4LCAwLjA3NjY2NywgMC4wOTc3NjUsIDAuMTEwOTEzIiwgXAotICAgICAgICAgICIwLjA0ODI0MSwgMC4wNTA3MjEsIDAuMDYxODQsIDAuMDcwMzI1LCAwLjA4MTA1NSwgMC4xMDIyMzYsIDAuMTE1MzY0IiwgXAotICAgICAgICAgICIwLjA1MzMzNiwgMC4wNTU5NjMsIDAuMDY3NDI4LCAwLjA3NjAxMiwgMC4wODY4NDksIDAuMTA4MDMzLCAwLjEyMTE2OCIsIFwKLSAgICAgICAgICAiMC4wNTY5OTUsIDAuMDU5NzQ0LCAwLjA3MTYwNywgMC4wODAzNTYsIDAuMDkxMjU0LCAwLjExMjQyMSwgMC4xMjU1NTMiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE0Njk5LCAwLjAxNzk3LCAwLjAzNTg1MywgMC4wNTE3NzEsIDAuMDczMjg1LCAwLjExNjc2NSwgMC4xNDQ0NjMiLCBcCi0gICAgICAgICAgIjAuMDE0ODMyLCAwLjAxODA3OCwgMC4wMzU4OTksIDAuMDUxODE0LCAwLjA3MzMyLCAwLjExNjkwNSwgMC4xNDQ0OTEiLCBcCi0gICAgICAgICAgIjAuMDE1NzMzLCAwLjAxOTA0MSwgMC4wMzY2MiwgMC4wNTIzNTYsIDAuMDczNjYzLCAwLjExNzExLCAwLjE0NDU1MyIsIFwKLSAgICAgICAgICAiMC4wMTY3ODcsIDAuMDIwMTU5LCAwLjAzNzY1NiwgMC4wNTMxMjIsIDAuMDc0MjU3LCAwLjExNzQ5NSwgMC4xNDQ4MzgiLCBcCi0gICAgICAgICAgIjAuMDE3ODEzLCAwLjAyMDk3NiwgMC4wMzgzMzgsIDAuMDUzODExLCAwLjA3NDc4NiwgMC4xMTc3ODgsIDAuMTQ1MDk3IiwgXAotICAgICAgICAgICIwLjAxOTI2NywgMC4wMjI1MTQsIDAuMDM5Nzk2LCAwLjA1NDk4OSwgMC4wNzU3OTMsIDAuMTE4NDQ2LCAwLjE0NTQ3IiwgXAotICAgICAgICAgICIwLjAyMDQ4NSwgMC4wMjM3ODUsIDAuMDQwOTAxLCAwLjA1NTkwOCwgMC4wNzY1NjMsIDAuMTE5MDYsIDAuMTQ2MTE5Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyOTcyLCAwLjAzMTkyNiwgMC4wNDI1ODksIDAuMDUxMDM4LCAwLjA2MTk3OSwgMC4wODM2MDEsIDAuMDk3MDg0IiwgXAotICAgICAgICAgICIwLjAzNzc5OSwgMC4wNDAwMjgsIDAuMDUwNjA1LCAwLjA1OTA2NCwgMC4wNzAwMDUsIDAuMDkxNjM5LCAwLjEwNTEyNCIsIFwKLSAgICAgICAgICAiMC4wNDcwODgsIDAuMDQ5MzY0LCAwLjA1OTk3NiwgMC4wNjg0NDYsIDAuMDc5NDc1LCAwLjEwMTExNSwgMC4xMTQ1OTUiLCBcCi0gICAgICAgICAgIjAuMDU0MDY2LCAwLjA1NjQ4MywgMC4wNjc0MDEsIDAuMDc1OTY5LCAwLjA4Njk0OCwgMC4xMDg1NzcsIDAuMTIyMDQ0IiwgXAotICAgICAgICAgICIwLjA1OTc3NCwgMC4wNjIyNjksIDAuMDczNTM4LCAwLjA4MjA5MywgMC4wOTMxMzQsIDAuMTE0NzU4LCAwLjEyODI0IiwgXAotICAgICAgICAgICIwLjA2NzIwNiwgMC4wNjk4NTMsIDAuMDgxNTMxLCAwLjA5MDMxNSwgMC4xMDEzMTUsIDAuMTIyOTU4LCAwLjEzNjQ1NCIsIFwKLSAgICAgICAgICAiMC4wNzI3NTksIDAuMDc1NSwgMC4wODc1MDcsIDAuMDk2Mzg5LCAwLjEwNzQ0LCAwLjEyOTEzNywgMC4xNDI2MjQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE1MDczLCAwLjAxODIzOSwgMC4wMzU5OCwgMC4wNTE4MTYsIDAuMDczMzksIDAuMTE3MDcyLCAwLjE0NDc3NiIsIFwKLSAgICAgICAgICAiMC4wMTQ5OTUsIDAuMDE4MjI3LCAwLjAzNTk5MSwgMC4wNTE4ODEsIDAuMDczNDAxLCAwLjExNzE5MiwgMC4xNDQ3MTYiLCBcCi0gICAgICAgICAgIjAuMDE2MTQ5LCAwLjAxOTI0NSwgMC4wMzY2NCwgMC4wNTIzMzEsIDAuMDczNjY5LCAwLjExNzM0OSwgMC4xNDQ4NTEiLCBcCi0gICAgICAgICAgIjAuMDE3NTM1LCAwLjAyMDYyMiwgMC4wMzc2NzEsIDAuMDUzMTAxLCAwLjA3NDMxMSwgMC4xMTc0OTEsIDAuMTQ0OTcyIiwgXAotICAgICAgICAgICIwLjAxODc3MSwgMC4wMjE4NjEsIDAuMDM4NzUxLCAwLjA1Mzk3MSwgMC4wNzQ4NzYsIDAuMTE3OTgsIDAuMTQ1MzY2IiwgXAotICAgICAgICAgICIwLjAyMDQ4NiwgMC4wMjM2MTMsIDAuMDQwMjQxLCAwLjA1NTI5MywgMC4wNzU5NzIsIDAuMTE4NDQzLCAwLjE0NTY0MSIsIFwKLSAgICAgICAgICAiMC4wMjE3MDMsIDAuMDI0ODk5LCAwLjA0MTQyNiwgMC4wNTYzMjMsIDAuMDc2NzQyLCAwLjExOTI0OSwgMC4xNDU5OTEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDI0OTAxLCAwLjAyNzExMSwgMC4wMzc1MjcsIDAuMDQ1Nzg0LCAwLjA1NjQ2NCwgMC4wNzc1NCwgMC4wOTA2ODciLCBcCi0gICAgICAgICAgIjAuMDMyNTYsIDAuMDM0NzQ5LCAwLjA0NTE2NSwgMC4wNTM0MDEsIDAuMDY0MDY0LCAwLjA4NTE0OSwgMC4wOTgyOTgiLCBcCi0gICAgICAgICAgIjAuMDQwMzIyLCAwLjA0MjU5OSwgMC4wNTMxMjcsIDAuMDYxNTEsIDAuMDcyMTkyLCAwLjA5MzI4LCAwLjEwNjQxNSIsIFwKLSAgICAgICAgICAiMC4wNDU5NTMsIDAuMDQ4MzU2LCAwLjA1OTIwMywgMC4wNjc1NTIsIDAuMDc4MzkzLCAwLjA5OTUzOCwgMC4xMTI2NzUiLCBcCi0gICAgICAgICAgIjAuMDUwNDQyLCAwLjA1Mjk3MSwgMC4wNjQwNTgsIDAuMDcyNDQzLCAwLjA4MzE1NCwgMC4xMDQ1NDMsIDAuMTE3NTE5IiwgXAotICAgICAgICAgICIwLjA1NjQ4MywgMC4wNTkwNjYsIDAuMDcwNzMyLCAwLjA3OTE0OSwgMC4wODk5NjMsIDAuMTExMTE3LCAwLjEyNDI0NiIsIFwKLSAgICAgICAgICAiMC4wNjA3NTYsIDAuMDYzNjI1LCAwLjA3NTY2OCwgMC4wODQzNTQsIDAuMDk0ODU3LCAwLjExNjA0NiwgMC4xMjkxNDUiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE0NzE4LCAwLjAxNzk2NSwgMC4wMzU4NjQsIDAuMDUxNzY1LCAwLjA3MzI4MiwgMC4xMTY4OTEsIDAuMTQ0MzU3IiwgXAotICAgICAgICAgICIwLjAxNDkxLCAwLjAxODE0NSwgMC4wMzU5NywgMC4wNTE4NDQsIDAuMDczMzM2LCAwLjExNjkxNSwgMC4xNDQzNDgiLCBcCi0gICAgICAgICAgIjAuMDE2Mjg4LCAwLjAxOTUxNCwgMC4wMzY5NzYsIDAuMDUyNjAxLCAwLjA3Mzg3MSwgMC4xMTcyMTEsIDAuMTQ0NTc4IiwgXAotICAgICAgICAgICIwLjAxNzc4OSwgMC4wMjA5MTQsIDAuMDM4MDQxLCAwLjA1MzQ2NSwgMC4wNzQ0NzksIDAuMTE3NjMzLCAwLjE0NDkxNSIsIFwKLSAgICAgICAgICAiMC4wMTkwMDEsIDAuMDIyMDQ5LCAwLjAzOTE3MiwgMC4wNTQzNzgsIDAuMDc1MTMzLCAwLjExNzk5NiwgMC4xNDUyMjgiLCBcCi0gICAgICAgICAgIjAuMDIwNjI3LCAwLjAyNDIzMSwgMC4wNDA4MjUsIDAuMDU1NzMyLCAwLjA3NjI2NCwgMC4xMTg2NTksIDAuMTQ1NjY2IiwgXAotICAgICAgICAgICIwLjAyMjAwOSwgMC4wMjUzMjMsIDAuMDQxODQxLCAwLjA1NjcxLCAwLjA3NzIxNiwgMC4xMTkzODEsIDAuMTQ2MzMiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDI3MzMxLCAwLjAyOTU2NywgMC4wNDAxMTMsIDAuMDQ4NTMyLCAwLjA1OTQ1OSwgMC4wODEwNjMsIDAuMDk0NTI4IiwgXAotICAgICAgICAgICIwLjAzNTIyNSwgMC4wMzc0MTgsIDAuMDQ3OTM5LCAwLjA1NjM2OCwgMC4wNjcyNzIsIDAuMDg4ODcyLCAwLjEwMjM0IiwgXAotICAgICAgICAgICIwLjA0Mzg1OCwgMC4wNDYwOSwgMC4wNTY3OTQsIDAuMDY1MjQ3LCAwLjA3NjE4MSwgMC4wOTc3OTMsIDAuMTExMjU3IiwgXAotICAgICAgICAgICIwLjA1MDE2MywgMC4wNTI1NzMsIDAuMDYzNTMzLCAwLjA3MjA1MSwgMC4wODMwNDIsIDAuMTA0Njc1LCAwLjExODEzNiIsIFwKLSAgICAgICAgICAiMC4wNTUyODUsIDAuMDU3NzkxLCAwLjA2OTA5MSwgMC4wNzc2NjgsIDAuMDg4NiwgMC4xMTAzMjIsIDAuMTIzNzk5IiwgXAotICAgICAgICAgICIwLjA2MTg3NywgMC4wNjQ2MTIsIDAuMDc2MjIzLCAwLjA4NDk3OCwgMC4wOTU4OTQsIDAuMTE3Njg2LCAwLjEzMTIxMyIsIFwKLSAgICAgICAgICAiMC4wNjY4ODIsIDAuMDY5NTc2LCAwLjA4MTgzOCwgMC4wOTA2MDUsIDAuMTAxNDk1LCAwLjEyMzE3NCwgMC4xMzY3NzIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE0Njc2LCAwLjAxNzg3NiwgMC4wMzU2NTgsIDAuMDUxNTgsIDAuMDczMTI1LCAwLjExNjk1OSwgMC4xNDQ1MDQiLCBcCi0gICAgICAgICAgIjAuMDE0ODIyLCAwLjAxODAxMiwgMC4wMzU3MjYsIDAuMDUxNjQzLCAwLjA3MzE2OSwgMC4xMTY5ODUsIDAuMTQ0MzgiLCBcCi0gICAgICAgICAgIjAuMDE2MjM0LCAwLjAxOTQyMywgMC4wMzY2MjYsIDAuMDUyMjY3LCAwLjA3MzYwNSwgMC4xMTcwOTUsIDAuMTQ0NTMiLCBcCi0gICAgICAgICAgIjAuMDE3NjgsIDAuMDIwNzIyLCAwLjAzNzc2LCAwLjA1MzI1NywgMC4wNzQzNjEsIDAuMTE3NTEsIDAuMTQ1MDI3IiwgXAotICAgICAgICAgICIwLjAxODg2OSwgMC4wMjIwMDQsIDAuMDM4ODQyLCAwLjA1NDE2NiwgMC4wNzQ5NzgsIDAuMTE3OTk4LCAwLjE0NTI1OCIsIFwKLSAgICAgICAgICAiMC4wMjA2MDcsIDAuMDIzODQzLCAwLjA0MDU4OCwgMC4wNTU1OSwgMC4wNzYxNjUsIDAuMTE4NTQ1LCAwLjE0NTY1MiIsIFwKLSAgICAgICAgICAiMC4wMjE5MjEsIDAuMDI1MTY4LCAwLjA0MTc5NiwgMC4wNTY1NTMsIDAuMDc3MTE0LCAwLjExOTQ5NywgMC4xNDYxNDgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTY5NjMsIDAuMDE3MDUxLCAwLjAxNzM2MiwgMC4wMTc0ODQsIDAuMDE3NTY5LCAwLjAxNzY0OCwgMC4wMTc2NzQiLCBcCi0gICAgICAgICAgIjAuMDE2NzYzLCAwLjAxNjgzMSwgMC4wMTcxMDcsIDAuMDE3MjQsIDAuMDE3MzQsIDAuMDE3NDQsIDAuMDE3NDcxIiwgXAotICAgICAgICAgICIwLjAxNjkzOSwgMC4wMTY5NzQsIDAuMDE3MTQ4LCAwLjAxNzI3MSwgMC4wMTczNzksIDAuMDE3NDk0LCAwLjAxNzUzOCIsIFwKLSAgICAgICAgICAiMC4wMTczODEsIDAuMDE3Njg5LCAwLjAxNzYwOSwgMC4wMTc2NzcsIDAuMDE3NzUzLCAwLjAxNzgzNSwgMC4wMTc4NDgiLCBcCi0gICAgICAgICAgIjAuMDE4MDUsIDAuMDE3OTc0LCAwLjAxNzkzOCwgMC4wMTgwMTcsIDAuMDE4MDgzLCAwLjAxODE3NiwgMC4wMTgyMDEiLCBcCi0gICAgICAgICAgIjAuMDE5MDUzLCAwLjAxODkzMiwgMC4wMTkwMTIsIDAuMDE4OTgxLCAwLjAxODk1NiwgMC4wMTkwMjQsIDAuMDE5MDU1IiwgXAotICAgICAgICAgICIwLjAyMDA2OSwgMC4wMTk4NzEsIDAuMDE5NjY3LCAwLjAxOTcwOCwgMC4wMTk3MiwgMC4wMTk4MDEsIDAuMDE5ODM2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDI0ODg1LCAwLjAyNDk1NCwgMC4wMjUyOTksIDAuMDI1NDYyLCAwLjAyNTU4NiwgMC4wMjU3MSwgMC4wMjU3NTIiLCBcCi0gICAgICAgICAgIjAuMDI0NjksIDAuMDI0NzQxLCAwLjAyNTA5NSwgMC4wMjUyNiwgMC4wMjU0MDEsIDAuMDI1NTUzLCAwLjAyNTYwNyIsIFwKLSAgICAgICAgICAiMC4wMjUzNiwgMC4wMjUzMjYsIDAuMDI1MzQ2LCAwLjAyNTQ4LCAwLjAyNTY0NCwgMC4wMjU4LCAwLjAyNTg1OSIsIFwKLSAgICAgICAgICAiMC4wMjYwNTYsIDAuMDI2MDEsIDAuMDI1OTc3LCAwLjAyNjA1OSwgMC4wMjYxNjYsIDAuMDI2MzE3LCAwLjAyNjM3MyIsIFwKLSAgICAgICAgICAiMC4wMjY4MzEsIDAuMDI2NzAyLCAwLjAyNjUzMywgMC4wMjY1OTEsIDAuMDI2Njc2LCAwLjAyNjgxMiwgMC4wMjY4ODIiLCBcCi0gICAgICAgICAgIjAuMDI4MjYsIDAuMDI4MDg5LCAwLjAyNzc0NSwgMC4wMjc3NCwgMC4wMjc3OTMsIDAuMDI3ODg4LCAwLjAyNzkzNyIsIFwKLSAgICAgICAgICAiMC4wMjk1OTksIDAuMDI5MzQ1LCAwLjAyODkyMSwgMC4wMjg4NTUsIDAuMDI4ODgxLCAwLjAyODkxOSwgMC4wMjg5NjMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTY5MzIsIDAuMDE3MDE3LCAwLjAxNzMzMywgMC4wMTc0NjUsIDAuMDE3NTQ4LCAwLjAxNzY0NiwgMC4wMTc2NiIsIFwKLSAgICAgICAgICAiMC4wMTY5MzUsIDAuMDE2OTYyLCAwLjAxNzE4OCwgMC4wMTczMTcsIDAuMDE3NDIyLCAwLjAxNzUzMywgMC4wMTc1NzMiLCBcCi0gICAgICAgICAgIjAuMDE3NDQ5LCAwLjAxNzQyNCwgMC4wMTc0NzYsIDAuMDE3NTk0LCAwLjAxNzY5OSwgMC4wMTc4MTEsIDAuMDE3ODU5IiwgXAotICAgICAgICAgICIwLjAxODM3NiwgMC4wMTgyODIsIDAuMDE4MTY3LCAwLjAxODE0NiwgMC4wMTgyMTYsIDAuMDE4MzE0LCAwLjAxODM1NyIsIFwKLSAgICAgICAgICAiMC4wMTg5ODQsIDAuMDE4ODk3LCAwLjAxODg2NCwgMC4wMTg4NTMsIDAuMDE4ODgxLCAwLjAxODk1MiwgMC4wMTg5NzQiLCBcCi0gICAgICAgICAgIjAuMDIwMzQ4LCAwLjAyMDUxNiwgMC4wMjAwNjMsIDAuMDIwMTA1LCAwLjAyMDA2OCwgMC4wMjAwODgsIDAuMDIwMDk5IiwgXAotICAgICAgICAgICIwLjAyMTYxMiwgMC4wMjE0MzIsIDAuMDIxMTA5LCAwLjAyMTA4MiwgMC4wMjExNDQsIDAuMDIxMDgzLCAwLjAyMTE1OSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyMTg2OCwgMC4wMjE5NzcsIDAuMDIyMzkyLCAwLjAyMjU3LCAwLjAyMjcwMSwgMC4wMjI4MjcsIDAuMDIyODciLCBcCi0gICAgICAgICAgIjAuMDIxNzIxLCAwLjAyMTc3NywgMC4wMjIwOTgsIDAuMDIyMjc5LCAwLjAyMjQyOCwgMC4wMjI1ODYsIDAuMDIyNjQxIiwgXAotICAgICAgICAgICIwLjAyMjIxNSwgMC4wMjIyNTIsIDAuMDIyMzk1LCAwLjAyMjUyMSwgMC4wMjI2NTEsIDAuMDIyODExLCAwLjAyMjg3NSIsIFwKLSAgICAgICAgICAiMC4wMjI5NDksIDAuMDIyODcyLCAwLjAyMjkwNywgMC4wMjI5NzksIDAuMDIzMSwgMC4wMjMyNTksIDAuMDIzMzI2IiwgXAotICAgICAgICAgICIwLjAyMzgyNywgMC4wMjM3MTIsIDAuMDIzNTY2LCAwLjAyMzYxOSwgMC4wMjM2NCwgMC4wMjM3OTUsIDAuMDIzODUzIiwgXAotICAgICAgICAgICIwLjAyNTA5NCwgMC4wMjUwMTQsIDAuMDI0ODk4LCAwLjAyNDgzOCwgMC4wMjQ3OTcsIDAuMDI0ODg0LCAwLjAyNDkzIiwgXAotICAgICAgICAgICIwLjAyNjY2OSwgMC4wMjYxMDIsIDAuMDI2MDE0LCAwLjAyNTk1MywgMC4wMjU5MzQsIDAuMDI1OTU3LCAwLjAyNTk2MSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogQ0xLQU5EMlgzICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoQ0xLQU5EMlgzKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuNTQwNzQxOwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDEzOTQ5MzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDEzOTQ5MzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDEzODk2OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDU0LCAwLjAwMDU0LCAwLjAwMDU0LCAwLjAwMDU0LCAwLjAwMDU0LCAwLjAwMDU0LCAwLjAwMDU0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNTk3LCAwLjAwMDU2MSwgMC4wMDA1NSwgMC4wMDA1NDQsIDAuMDAwNTQzLCAwLjAwMDU0MSwgMC4wMDA1NDQiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTMwODc0OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTMwODc0OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTMwNjc2OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDEzNSwgMC4wMDAxMzQsIDAuMDAwMTM0LCAwLjAwMDEzNCwgMC4wMDAxMzQsIDAuMDAwMTM1LCAwLjAwMDEzNSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDY4MywgMC4wMDA2ODMsIDAuMDAwNjgzLCAwLjAwMDY4MywgMC4wMDA2ODMsIDAuMDAwNjgzLCAwLjAwMDY4MyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAxLjAxMjE7Ci0gICAgZnVuY3Rpb24gOiAiKEEgQikiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDMyNjIzLCAwLjEwNjgxNSwgMC4xODA0MTMsIDAuMjMyOTIsIDAuMzE3MTU5LCAwLjM5MDgyMiwgMC40OTU4NjUiLCBcCi0gICAgICAgICAgIjAuMDM4ODU4LCAwLjExMjk2NywgMC4xODY1ODIsIDAuMjM5MTc5LCAwLjMyMzMxNSwgMC4zOTcxMTksIDAuNTAyMDc0IiwgXAotICAgICAgICAgICIwLjA0NDgxNywgMC4xMTkxMTEsIDAuMTkyNzI5LCAwLjI0NTM3NCwgMC4zMjk2NDksIDAuNDAzMjI1LCAwLjUwODIyOCIsIFwKLSAgICAgICAgICAiMC4wNDkyNTYsIDAuMTIzNzc5LCAwLjE5NzM2NiwgMC4yNDk5NDMsIDAuMzM0MDg2LCAwLjQwNzY5OCwgMC41MTI5MTQiLCBcCi0gICAgICAgICAgIjAuMDUyOTA2LCAwLjEyNzM4NSwgMC4yMDEwMDIsIDAuMjUzNTM0LCAwLjMzNzc2NiwgMC40MTEzMzcsIDAuNTE2NDUzIiwgXAotICAgICAgICAgICIwLjA1NzY3OSwgMC4xMzI0MzUsIDAuMjA1OTgxLCAwLjI1ODUyNiwgMC4zNDI2NDUsIDAuNDE2MjA5LCAwLjUyMTUyMiIsIFwKLSAgICAgICAgICAiMC4wNjExNDQsIDAuMTM2MjQ1LCAwLjIwOTgwMywgMC4yNjIzNDEsIDAuMzQ2NDUxLCAwLjQyMDA1NiwgMC41MjUzMTYiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjk0OTQsIDAuMTgyNTExLCAwLjMzODE3OCwgMC40NDg0MDksIDAuNjI2NDI2LCAwLjc4MTI5OSwgMS4wMDI5IiwgXAotICAgICAgICAgICIwLjAyOTY3NSwgMC4xODI3ODEsIDAuMzM3NzUsIDAuNDQ4Mzg0LCAwLjYyNTcsIDAuNzgxMjU0LCAxLjAwNDIxIiwgXAotICAgICAgICAgICIwLjAzMDQ4OCwgMC4xODI4MTgsIDAuMzM4MTYxLCAwLjQ0ODUzNCwgMC42MjU5MjEsIDAuNzgxMjQ5LCAxLjAwMzYiLCBcCi0gICAgICAgICAgIjAuMDMxMzY0LCAwLjE4Mjk2NSwgMC4zMzgxODQsIDAuNDQ5MjM1LCAwLjYyNjU1MSwgMC43ODA5OSwgMS4wMDMxMSIsIFwKLSAgICAgICAgICAiMC4wMzIxNjYsIDAuMTgyOTg3LCAwLjMzNzYyMiwgMC40NDkyODEsIDAuNjI2MDM2LCAwLjc4MTczNiwgMS4wMDM1NCIsIFwKLSAgICAgICAgICAiMC4wMzM1MTgsIDAuMTgzMTU0LCAwLjMzODE0NCwgMC40NDkyMTgsIDAuNjI3MDMyLCAwLjc4MjUxNCwgMS4wMDMxMyIsIFwKLSAgICAgICAgICAiMC4wMzQ3MTgsIDAuMTgzMzU1LCAwLjMzNzk3NiwgMC40NDg3NTMsIDAuNjI3MDMyLCAwLjc4MTUyMiwgMS4wMDI2NyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzNTA1OSwgMC4xMDc3MzcsIDAuMTc5NzM1LCAwLjIzMTE0OSwgMC4zMTMzOTQsIDAuMzg1MzU2LCAwLjQ4ODE1MSIsIFwKLSAgICAgICAgICAiMC4wNDMwNDYsIDAuMTE1NzM4LCAwLjE4Nzc2OSwgMC4yMzkxNjQsIDAuMzIxNDEyLCAwLjM5MzQwMywgMC40OTYyMTQiLCBcCi0gICAgICAgICAgIjAuMDUxNjMsIDAuMTI0Mzg4LCAwLjE5NjQwOCwgMC4yNDc4MjMsIDAuMzMwMDYyLCAwLjQwMjAxNywgMC41MDQ4MTQiLCBcCi0gICAgICAgICAgIjAuMDU4MTkyLCAwLjEzMTEsIDAuMjAzMTI0LCAwLjI1NDUyNSwgMC4zMzY3ODIsIDAuNDA4NzQyLCAwLjUxMTUzOCIsIFwKLSAgICAgICAgICAiMC4wNjM0OTIsIDAuMTM2NDkzLCAwLjIwODUwMywgMC4yNTk5MSwgMC4zNDIxNjYsIDAuNDE0MTE1LCAwLjUxNjk3NiIsIFwKLSAgICAgICAgICAiMC4wNzA1NTcsIDAuMTQzODIyLCAwLjIxNTc4OSwgMC4yNjcyMDIsIDAuMzQ5NDM2LCAwLjQyMTM5NCwgMC41MjQxODciLCBcCi0gICAgICAgICAgIjAuMDc1OTM4LCAwLjE0OTM3MiwgMC4yMjEzNzUsIDAuMjcyNTU1LCAwLjM1NTAwNywgMC40MjY3MzksIDAuNTI5NzQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjg1OCwgMC4xNzUzMzksIDAuMzI0ODksIDAuNDMxMDk1LCAwLjYwMjMwNywgMC43NTA4NjQsIDAuOTY0MDUzIiwgXAotICAgICAgICAgICIwLjAyODYyNSwgMC4xNzU2NzMsIDAuMzI0OTM4LCAwLjQzMTU3MywgMC42MDIyOCwgMC43NTE4NTUsIDAuOTYzNzk3IiwgXAotICAgICAgICAgICIwLjAyOTUzNSwgMC4xNzU3NDUsIDAuMzI0NDA5LCAwLjQzMTYyLCAwLjYwMjMyMiwgMC43NTE3MTgsIDAuOTY1MTY2IiwgXAotICAgICAgICAgICIwLjAzMDU1OCwgMC4xNzU4NzUsIDAuMzI0ODg4LCAwLjQzMTE5LCAwLjYwMjM4NSwgMC43NTE3OTIsIDAuOTY1MjQyIiwgXAotICAgICAgICAgICIwLjAzMTU2MiwgMC4xNzU4NTEsIDAuMzI0ODczLCAwLjQzMTE5OSwgMC42MDIzNjQsIDAuNzUwODUsIDAuOTY1NDM2IiwgXAotICAgICAgICAgICIwLjAzMjkzNSwgMC4xNzYwOTIsIDAuMzI0NjMyLCAwLjQzMTA5MSwgMC42MDE3NjMsIDAuNzUwOTc0LCAwLjk2NDEyNyIsIFwKLSAgICAgICAgICAiMC4wMzQwNzksIDAuMTc2MjI0LCAwLjMyNDc4NiwgMC40MzEyMTUsIDAuNjAxODAxLCAwLjc1MDc1MiwgMC45NjUwMzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzEyMTYsIDAuMTA1Mzg2LCAwLjE3ODk3MiwgMC4yMzE0ODksIDAuMzE1NjM0LCAwLjM4OTIxNSwgMC40OTQzODQiLCBcCi0gICAgICAgICAgIjAuMDM4NTY2LCAwLjExMjcwNSwgMC4xODYzMDQsIDAuMjM4OSwgMC4zMjMyMzMsIDAuMzk2NzEsIDAuNTAxNzk3IiwgXAotICAgICAgICAgICIwLjA0NTUyNSwgMC4xMTk4NjQsIDAuMTkzNTU4LCAwLjI0NjIzNCwgMC4zMzAyMzcsIDAuNDAzOTMyLCAwLjUwOSIsIFwKLSAgICAgICAgICAiMC4wNTA4NywgMC4xMjUzODIsIDAuMTk4OTY5LCAwLjI1MTY3OSwgMC4zMzU3NjMsIDAuNDA5MjY3LCAwLjUxNDYwOCIsIFwKLSAgICAgICAgICAiMC4wNTUwMjcsIDAuMTI5NzgsIDAuMjAzMTUyLCAwLjI1NTgwOSwgMC4zMzk5MjQsIDAuNDEzNTI5LCAwLjUxODU4OCIsIFwKLSAgICAgICAgICAiMC4wNjA2MjIsIDAuMTM1MjA2LCAwLjIwODc2MiwgMC4yNjEzNDQsIDAuMzQ1NDI3LCAwLjQxODk4OSwgMC41MjQzMiIsIFwKLSAgICAgICAgICAiMC4wNjQ3NTMsIDAuMTM5NDQ4LCAwLjIxMzA3NywgMC4yNjU2MDEsIDAuMzQ5NzQ4LCAwLjQyMzI2MiwgMC41Mjg0NzYiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjk1MTgsIDAuMTgyNDczLCAwLjMzODE4MSwgMC40NDkyMDIsIDAuNjI2NjI5LCAwLjc4MTYyNCwgMS4wMDMiLCBcCi0gICAgICAgICAgIjAuMDI5Nzc2LCAwLjE4Mjc5NSwgMC4zMzc5MTksIDAuNDQ4NDUsIDAuNjI1OTM4LCAwLjc4MTMwMywgMS4wMDQxNCIsIFwKLSAgICAgICAgICAiMC4wMzA3OTcsIDAuMTgyNzA5LCAwLjMzNzU4MywgMC40NDg1NywgMC42MjU4OTIsIDAuNzgxMjg0LCAxLjAwNDU3IiwgXAotICAgICAgICAgICIwLjAzMTc3NiwgMC4xODMwMSwgMC4zMzgyMjgsIDAuNDQ4NjAzLCAwLjYyNTk5OCwgMC43ODExNDYsIDEuMDAzMiIsIFwKLSAgICAgICAgICAiMC4wMzI4LCAwLjE4MzA4OSwgMC4zMzc5NjUsIDAuNDQ4NjM1LCAwLjYyNjAxMSwgMC43ODEyNTYsIDEuMDAyOTMiLCBcCi0gICAgICAgICAgIjAuMDM0MjE0LCAwLjE4MzIxMSwgMC4zMzc4OTYsIDAuNDQ5NDEzLCAwLjYyNzExMSwgMC43ODE1NDUsIDEuMDAzMTMiLCBcCi0gICAgICAgICAgIjAuMDM1NTI3LCAwLjE4MzU0LCAwLjMzNzkwOSwgMC40NDg4OTYsIDAuNjI1ODc4LCAwLjc4MjU4NCwgMS4wMDMwNCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzMjk2MywgMC4xMDU1NDcsIDAuMTc3NTYxLCAwLjIyODk2MSwgMC4zMTEyNzIsIDAuMzgzMjU2LCAwLjQ4NTk2MSIsIFwKLSAgICAgICAgICAiMC4wNDA2NjEsIDAuMTEzMjQxLCAwLjE4NTIzMiwgMC4yMzY2ODcsIDAuMzE4OTY3LCAwLjM5MDk0MiwgMC40OTM3NDYiLCBcCi0gICAgICAgICAgIjAuMDQ4NjI5LCAwLjEyMTQxMiwgMC4xOTMyOTksIDAuMjQ0ODIxLCAwLjMyNzE4MywgMC4zOTg5ODgsIDAuNTAxNzciLCBcCi0gICAgICAgICAgIjAuMDU0NTIxLCAwLjEyNzQ2NCwgMC4xOTk0NTYsIDAuMjUwOTU3LCAwLjMzMjk4MywgMC40MDUwMjQsIDAuNTA3ODIxIiwgXAotICAgICAgICAgICIwLjA1OTE4NywgMC4xMzIxMjksIDAuMjA0MDYxLCAwLjI1NTUwNSwgMC4zMzc3OTMsIDAuNDA5Nzg2LCAwLjUxMjYwMiIsIFwKLSAgICAgICAgICAiMC4wNjU2NDksIDAuMTM4Njg3LCAwLjIxMDk2NSwgMC4yNjI0MDUsIDAuMzQ0Njg4LCAwLjQxNjYxNiwgMC41MTkyNDciLCBcCi0gICAgICAgICAgIjAuMDcwMzU4LCAwLjE0MzYwNSwgMC4yMTU1NzYsIDAuMjY2OTkxLCAwLjM0OTIyOCwgMC40MjEyNDcsIDAuNTI0MDkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjgzNDUsIDAuMTc1NTEyLCAwLjMyNDIxOSwgMC40MzA1MTYsIDAuNjAxMjU0LCAwLjc1MDM5MywgMC45NjU0MzgiLCBcCi0gICAgICAgICAgIjAuMDI4NDg5LCAwLjE3NTU2MiwgMC4zMjQ4NDEsIDAuNDMxMDY4LCAwLjYwMTc1NywgMC43NTA5MzksIDAuOTYzMzk5IiwgXAotICAgICAgICAgICIwLjAyOTY0OSwgMC4xNzU1OTcsIDAuMzI0MjA0LCAwLjQzMDgxMSwgMC42MDE1ODYsIDAuNzUwMTk3LCAwLjk2NTIyNyIsIFwKLSAgICAgICAgICAiMC4wMzA3MDEsIDAuMTc1Nzk1LCAwLjMyNDg3MSwgMC40MzA4MDcsIDAuNjAxNDA5LCAwLjc1MTAzMSwgMC45NjM3NDEiLCBcCi0gICAgICAgICAgIjAuMDMxNzg2LCAwLjE3NjAyMiwgMC4zMjQ4OTQsIDAuNDMwNzgsIDAuNjAxODI0LCAwLjc1MDk1MywgMC45NjUyNjEiLCBcCi0gICAgICAgICAgIjAuMDMzMjI5LCAwLjE3NjA3NSwgMC4zMjUsIDAuNDMxNzc5LCAwLjYwMTI0OCwgMC43NTE3MTMsIDAuOTYzNjYiLCBcCi0gICAgICAgICAgIjAuMDM0NTQ0LCAwLjE3NjI3NiwgMC4zMjQ3OTYsIDAuNDMxNjQ4LCAwLjYwMjUyOCwgMC43NTAzMDUsIDAuOTYzODQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDQ5LCAwLjAwNDU2NCwgMC4wMDQ1NzEsIDAuMDA0NTczLCAwLjAwNDU4MywgMC4wMDQ1NzUsIDAuMDA0NTY3IiwgXAotICAgICAgICAgICIwLjAwNDQyMiwgMC4wMDQ1MTQsIDAuMDA0NTIsIDAuMDA0NTIzLCAwLjAwNDUyNiwgMC4wMDQ1MjYsIDAuMDA0NTI4IiwgXAotICAgICAgICAgICIwLjAwNDQ2NSwgMC4wMDQ1NjIsIDAuMDA0NTcyLCAwLjAwNDU3OSwgMC4wMDQ1ODUsIDAuMDA0NTg2LCAwLjAwNDU4MyIsIFwKLSAgICAgICAgICAiMC4wMDQ1OCwgMC4wMDQ2ODQsIDAuMDA0Njk5LCAwLjAwNDcwNiwgMC4wMDQ3MDgsIDAuMDA0NzEsIDAuMDA0NzExIiwgXAotICAgICAgICAgICIwLjAwNDc3OCwgMC4wMDQ4NjQsIDAuMDA0ODc1LCAwLjAwNDg3OSwgMC4wMDQ4ODIsIDAuMDA0ODgzLCAwLjAwNDg4NSIsIFwKLSAgICAgICAgICAiMC4wMDUxMzUsIDAuMDA1MTk0LCAwLjAwNTIwMywgMC4wMDUyMDcsIDAuMDA1MjEsIDAuMDA1MjEyLCAwLjAwNTIxMiIsIFwKLSAgICAgICAgICAiMC4wMDU1MTgsIDAuMDA1NTA5LCAwLjAwNTUxOSwgMC4wMDU1MjMsIDAuMDA1NTI3LCAwLjAwNTUzMiwgMC4wMDU1MzIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNzE4OCwgMC4wMDczMTUsIDAuMDA3MzMsIDAuMDA3MzM0LCAwLjAwNzMzOCwgMC4wMDczNCwgMC4wMDczNDEiLCBcCi0gICAgICAgICAgIjAuMDA3MTQ4LCAwLjAwNzMwNCwgMC4wMDczMjYsIDAuMDA3MzMzLCAwLjAwNzM0LCAwLjAwNzM0MywgMC4wMDczNDUiLCBcCi0gICAgICAgICAgIjAuMDA3MjcxLCAwLjAwNzQxMSwgMC4wMDc0MzcsIDAuMDA3NDQ2LCAwLjAwNzQ1MywgMC4wMDc0NTcsIDAuMDA3NDYxIiwgXAotICAgICAgICAgICIwLjAwNzQ5MiwgMC4wMDc2MDgsIDAuMDA3NjM2LCAwLjAwNzY0NiwgMC4wMDc2NTUsIDAuMDA3NjYsIDAuMDA3NjY0IiwgXAotICAgICAgICAgICIwLjAwNzczMSwgMC4wMDc4MjksIDAuMDA3ODU5LCAwLjAwNzg2OCwgMC4wMDc4NzksIDAuMDA3ODgzLCAwLjAwNzg4OCIsIFwKLSAgICAgICAgICAiMC4wMDgxOTcsIDAuMDA4MjMzLCAwLjAwODI2MSwgMC4wMDgyNzEsIDAuMDA4MjgsIDAuMDA4Mjg2LCAwLjAwODI5IiwgXAotICAgICAgICAgICIwLjAwODYwMSwgMC4wMDg2MTEsIDAuMDA4NjM1LCAwLjAwODYzLCAwLjAwODY1NCwgMC4wMDg2NCwgMC4wMDg2NjQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDQ4NSwgMC4wMDQ1NzYsIDAuMDA0NTg1LCAwLjAwNDU5MSwgMC4wMDQ1OSwgMC4wMDQ1OTksIDAuMDA0NTk4IiwgXAotICAgICAgICAgICIwLjAwNDQ2NiwgMC4wMDQ1NzQsIDAuMDA0NTg0LCAwLjAwNDU4OSwgMC4wMDQ1OTIsIDAuMDA0NTk0LCAwLjAwNDU5NiIsIFwKLSAgICAgICAgICAiMC4wMDQ2MzYsIDAuMDA0NzE3LCAwLjAwNDczMywgMC4wMDQ3MzcsIDAuMDA0NzQzLCAwLjAwNDc0NiwgMC4wMDQ3NDciLCBcCi0gICAgICAgICAgIjAuMDA0ODU0LCAwLjAwNDkwMSwgMC4wMDQ5MTYsIDAuMDA0OTI0LCAwLjAwNDkyOCwgMC4wMDQ5MzIsIDAuMDA0OTMzIiwgXAotICAgICAgICAgICIwLjAwNTEsIDAuMDA1MTIzLCAwLjAwNTE0LCAwLjAwNTE0OCwgMC4wMDUxNTEsIDAuMDA1MTU0LCAwLjAwNTE1NyIsIFwKLSAgICAgICAgICAiMC4wMDU1MTgsIDAuMDA1NTU1LCAwLjAwNTU3NCwgMC4wMDU1NTcsIDAuMDA1NTgxLCAwLjAwNTU4MiwgMC4wMDU1NjMiLCBcCi0gICAgICAgICAgIjAuMDA1OTUsIDAuMDA1OTQxLCAwLjAwNTkzOCwgMC4wMDU5NjYsIDAuMDA1OTQzLCAwLjAwNTk3NSwgMC4wMDU5NzMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjIzNSwgMC4wMDYzODEsIDAuMDA2Mzk2LCAwLjAwNjQwMSwgMC4wMDY0MDUsIDAuMDA2NDA3LCAwLjAwNjQwOSIsIFwKLSAgICAgICAgICAiMC4wMDYxNiwgMC4wMDYzMjcsIDAuMDA2MzUsIDAuMDA2MzU3LCAwLjAwNjM2MywgMC4wMDYzNjYsIDAuMDA2MzY5IiwgXAotICAgICAgICAgICIwLjAwNjMyNSwgMC4wMDY0OTUsIDAuMDA2NTI0LCAwLjAwNjUzMywgMC4wMDY1NDIsIDAuMDA2NTQ2LCAwLjAwNjU1IiwgXAotICAgICAgICAgICIwLjAwNjUyMywgMC4wMDY2MzQsIDAuMDA2NjY1LCAwLjAwNjY3NSwgMC4wMDY2ODQsIDAuMDA2Njg5LCAwLjAwNjY5MyIsIFwKLSAgICAgICAgICAiMC4wMDY3NjgsIDAuMDA2ODQ2LCAwLjAwNjg3OCwgMC4wMDY4ODgsIDAuMDA2ODk4LCAwLjAwNjkwMywgMC4wMDY5MDgiLCBcCi0gICAgICAgICAgIjAuMDA3MjE2LCAwLjAwNzI1LCAwLjAwNzMwNSwgMC4wMDczMTcsIDAuMDA3MzMsIDAuMDA3MzM1LCAwLjAwNzMwMiIsIFwKLSAgICAgICAgICAiMC4wMDc2NTksIDAuMDA3NjE5LCAwLjAwNzY0NCwgMC4wMDc2OTIsIDAuMDA3NzA0LCAwLjAwNzY3LCAwLjAwNzcxNiIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBDTEtCVUZYMyAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoQ0xLQlVGWDMpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4zNzk5MzsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwOTczNzMzOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDk3MzYyODsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA5NzM3MzM7Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMS4wMTc4MTsKLSAgICBmdW5jdGlvbiA6ICJBIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzMDAxNCwgMC4xMDM5MDksIDAuMTc3NTUsIDAuMjI5OTgsIDAuMzEzOTMzLCAwLjM4NzcxMSwgMC40OTI4NDQiLCBcCi0gICAgICAgICAgIjAuMDM4MDg0LCAwLjExMTk0NiwgMC4xODU1NTcsIDAuMjM4MTg2LCAwLjMyMjIxNSwgMC4zOTU3ODksIDAuNTAwNzg0IiwgXAotICAgICAgICAgICIwLjA0NjE2NSwgMC4xMjAwNTEsIDAuMTkzNjU0LCAwLjI0NjE5NiwgMC4zMzAzMjgsIDAuNDAzODYxLCAwLjUwOTAwMSIsIFwKLSAgICAgICAgICAiMC4wNTIwMzMsIDAuMTI2MTE2LCAwLjE5OTY2NSwgMC4yNTIyNTEsIDAuMzM2MzM1LCAwLjQxMDA5MSwgMC41MTUxNjIiLCBcCi0gICAgICAgICAgIjAuMDU3MDk4LCAwLjEzMTEyNiwgMC4yMDQ2NTYsIDAuMjU3MjgxLCAwLjM0MTQ4NiwgMC40MTUwOSwgMC41MjAwNjMiLCBcCi0gICAgICAgICAgIjAuMDYzNTU1LCAwLjEzNzk0MSwgMC4yMTEyMiwgMC4yNjM4NTcsIDAuMzQ3ODM0LCAwLjQyMTU1MSwgMC41MjY4MzIiLCBcCi0gICAgICAgICAgIjAuMDY4MzQ3LCAwLjE0Mjc1MSwgMC4yMTYxNzYsIDAuMjY4NjQ5LCAwLjM1MjY3NCwgMC40MjYzMzksIDAuNTMxMzkzIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDI4OTIsIDAuMTgyNjA1LCAwLjMzNzQ2OCwgMC40NDgyOTYsIDAuNjI1MjA1LCAwLjc4MTg0LCAxLjAwMjE5IiwgXAotICAgICAgICAgICIwLjAyOTE5OSwgMC4xODIzNzksIDAuMzM3MzM4LCAwLjQ0ODQ0NiwgMC42MjU0MTYsIDAuNzgwNTU0LCAxLjAwMjQ5IiwgXAotICAgICAgICAgICIwLjAzMDQyMSwgMC4xODI2NSwgMC4zMzc2MTQsIDAuNDQ4NzM5LCAwLjYyNjAzOCwgMC43ODA1ODUsIDEuMDAyMTgiLCBcCi0gICAgICAgICAgIjAuMDMxNzE0LCAwLjE4MjcyNCwgMC4zMzgwMDQsIDAuNDQ4NTc3LCAwLjYyNTkwMiwgMC43ODA5ODcsIDEuMDAyNzMiLCBcCi0gICAgICAgICAgIjAuMDMyODUzLCAwLjE4MjY0NywgMC4zMzgwNTMsIDAuNDQ4MzY2LCAwLjYyNTc2LCAwLjc4MDk2MSwgMS4wMDI2NSIsIFwKLSAgICAgICAgICAiMC4wMzQ3MTUsIDAuMTgyOTU2LCAwLjMzNzk3OCwgMC40NDkxMDEsIDAuNjI1NjYzLCAwLjc4MTAxMywgMS4wMDI2NSIsIFwKLSAgICAgICAgICAiMC4wMzYyNCwgMC4xODMxOSwgMC4zMzc3OTcsIDAuNDQ4NTY1LCAwLjYyNTk3NCwgMC43ODA2OTUsIDEuMDAyNTMiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzA3NzQsIDAuMTAzMTkzLCAwLjE3NTE2NSwgMC4yMjY1ODksIDAuMzA4ODYsIDAuMzgwODQxLCAwLjQ4MzU4NiIsIFwKLSAgICAgICAgICAiMC4wMzg3NzgsIDAuMTExMTgzLCAwLjE4MzE5MiwgMC4yMzQ2MDksIDAuMzE2ODc4LCAwLjM4ODgxLCAwLjQ5MTU3NyIsIFwKLSAgICAgICAgICAiMC4wNDY1NjQsIDAuMTE5MTAzLCAwLjE5MTA3OSwgMC4yNDI1MzIsIDAuMzI0ODg0LCAwLjM5Njc0NywgMC40OTk1NjMiLCBcCi0gICAgICAgICAgIjAuMDUyMDkzLCAwLjEyNDU4OSwgMC4xOTY1NDEsIDAuMjQ3OTU4LCAwLjMzMDE5MiwgMC40MDIzNzMsIDAuNTA1MTcyIiwgXAotICAgICAgICAgICIwLjA1NjU3MSwgMC4xMjkxNTYsIDAuMjAxMTQ0LCAwLjI1MjUwNiwgMC4zMzQ2ODYsIDAuNDA2NjQ0LCAwLjUwOTQ2OSIsIFwKLSAgICAgICAgICAiMC4wNjI1NTEsIDAuMTM1MTYyLCAwLjIwNzExNSwgMC4yNTg0NzMsIDAuMzQwNjk5LCAwLjQxMjY1NywgMC41MTUzNDMiLCBcCi0gICAgICAgICAgIjAuMDY2ODAzLCAwLjEzOTQ1OCwgMC4yMTEzNjksIDAuMjYyODI4LCAwLjM0NDkwNSwgMC40MTY5MzQsIDAuNTE5NzIzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDI3OTE4LCAwLjE3NTQ5MiwgMC4zMjQ3MzcsIDAuNDMwNjQ4LCAwLjYwMTY2OSwgMC43NTAzOTgsIDAuOTYzMzE2IiwgXAotICAgICAgICAgICIwLjAyODEyNCwgMC4xNzU1MDYsIDAuMzI0NDQ2LCAwLjQzMTAzOCwgMC42MDE2NDQsIDAuNzUwNTA2LCAwLjk2MzM1MyIsIFwKLSAgICAgICAgICAiMC4wMjkyMTIsIDAuMTc1NDAxLCAwLjMyNDgzMywgMC40MzA4MDQsIDAuNjAxMjMxLCAwLjc1MDk0NCwgMC45NjUxNzUiLCBcCi0gICAgICAgICAgIjAuMDMwNDA1LCAwLjE3NTczOCwgMC4zMjQyMzgsIDAuNDMwODM3LCAwLjYwMTAxOCwgMC43NTA3NjIsIDAuOTYzNDA3IiwgXAotICAgICAgICAgICIwLjAzMTU2OSwgMC4xNzU2NDIsIDAuMzI0OTg4LCAwLjQzMTQ4OCwgMC42MDI0MTcsIDAuNzUxNjExLCAwLjk2NTA4OSIsIFwKLSAgICAgICAgICAiMC4wMzI5MDIsIDAuMTc1ODMxLCAwLjMyNDk1LCAwLjQzMTYzOSwgMC42MDI0NjksIDAuNzUwOTYsIDAuOTY1MDM2IiwgXAotICAgICAgICAgICIwLjAzNDI2MiwgMC4xNzYxNDMsIDAuMzI0NzQ2LCAwLjQzMTI2MiwgMC42MDIyNjIsIDAuNzUwMzUyLCAwLjk2MzI5MSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzOTYzLCAwLjAwNDAzNSwgMC4wMDQwNDIsIDAuMDA0MDQ4LCAwLjAwNDA0NiwgMC4wMDQwNDcsIDAuMDA0MDQ3IiwgXAotICAgICAgICAgICIwLjAwMzkzMiwgMC4wMDQwMjEsIDAuMDA0MDM0LCAwLjAwNDAzOCwgMC4wMDQwNDIsIDAuMDA0MDQyLCAwLjAwNDA0NCIsIFwKLSAgICAgICAgICAiMC4wMDQwMjksIDAuMDA0MTE4LCAwLjAwNDEzLCAwLjAwNDEzNSwgMC4wMDQxMzksIDAuMDA0MTQxLCAwLjAwNDE0MiIsIFwKLSAgICAgICAgICAiMC4wMDQxOTYsIDAuMDA0MjM2LCAwLjAwNDI0OSwgMC4wMDQyNTEsIDAuMDA0MjU2LCAwLjAwNDI1OCwgMC4wMDQyNTkiLCBcCi0gICAgICAgICAgIjAuMDA0MzU3LCAwLjAwNDM3LCAwLjAwNDM4MiwgMC4wMDQzODksIDAuMDA0Mzk2LCAwLjAwNDM5OCwgMC4wMDQzOTkiLCBcCi0gICAgICAgICAgIjAuMDA0Njg1LCAwLjAwNDY0OCwgMC4wMDQ2NTQsIDAuMDA0Njc5LCAwLjAwNDY2MiwgMC4wMDQ2NjIsIDAuMDA0NjY3IiwgXAotICAgICAgICAgICIwLjAwNDk4NywgMC4wMDQ5MDQsIDAuMDA0OTA4LCAwLjAwNDkyOSwgMC4wMDQ5MjksIDAuMDA0OTMsIDAuMDA0OTE1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDU0NzYsIDAuMDA1NTg1LCAwLjAwNTU5NiwgMC4wMDU1OTksIDAuMDA1NjAyLCAwLjAwNTYwNCwgMC4wMDU2MDUiLCBcCi0gICAgICAgICAgIjAuMDA1NDQ3LCAwLjAwNTU2OSwgMC4wMDU1ODUsIDAuMDA1NTksIDAuMDA1NTk0LCAwLjAwNTU5NiwgMC4wMDU1OTgiLCBcCi0gICAgICAgICAgIjAuMDA1NTIsIDAuMDA1NjQ4LCAwLjAwNTY2NiwgMC4wMDU2NzMsIDAuMDA1Njc5LCAwLjAwNTY4MiwgMC4wMDU2ODUiLCBcCi0gICAgICAgICAgIjAuMDA1NjksIDAuMDA1NzY0LCAwLjAwNTc4NywgMC4wMDU3OTQsIDAuMDA1ODAxLCAwLjAwNTgwNSwgMC4wMDU4MDgiLCBcCi0gICAgICAgICAgIjAuMDA1OTAyLCAwLjAwNTkyMSwgMC4wMDU5MTksIDAuMDA1OTI2LCAwLjAwNTk1LCAwLjAwNTk1MSwgMC4wMDU5NTQiLCBcCi0gICAgICAgICAgIjAuMDA2MDksIDAuMDA2MTY2LCAwLjAwNjE4NCwgMC4wMDYxOTIsIDAuMDA2MTk5LCAwLjAwNjIwMywgMC4wMDYxOTgiLCBcCi0gICAgICAgICAgIjAuMDA2MzY5LCAwLjAwNjQsIDAuMDA2NDE2LCAwLjAwNjQzMywgMC4wMDY0MjUsIDAuMDA2NDI4LCAwLjAwNjQzMSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBDTEtJTlZYOCAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoQ0xLSU5WWDgpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC43MDk4Nzg7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwNjA4Nzg5OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwNjA4Nzg5OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwNjA4Nzg1OwotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDIuNjQ2MjE7Ci0gICAgZnVuY3Rpb24gOiAiKCFBKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDg2NzQsIDAuMDM2OTE4LCAwLjA2NTA3NywgMC4wODUwOTUsIDAuMTE3MjQzLCAwLjE0NTM4OSwgMC4xODU0NzUiLCBcCi0gICAgICAgICAgIjAuMDE1MjM2LCAwLjA0NTIwNywgMC4wNzMzMywgMC4wOTM0NzMsIDAuMTI1NTg1LCAwLjE1MzYzNCwgMC4xOTM3OTIiLCBcCi0gICAgICAgICAgIjAuMDE5NzQsIDAuMDU1NzczLCAwLjA4MzgyMiwgMC4xMDM4NywgMC4xMzU5ODIsIDAuMTY0MDYzLCAwLjIwNDE5OCIsIFwKLSAgICAgICAgICAiMC4wMjI4NTgsIDAuMDY1ODA5LCAwLjA5NDMyMiwgMC4xMTQzMTYsIDAuMTQ2MzUzLCAwLjE3NDQ3NSwgMC4yMTQ1NDciLCBcCi0gICAgICAgICAgIjAuMDI1MDY0LCAwLjA3NDQ5LCAwLjEwNDc4MSwgMC4xMjQ3MDcsIDAuMTU2NjcxLCAwLjE4NDY3NiwgMC4yMjQ4MTMiLCBcCi0gICAgICAgICAgIjAuMDI4MDkzLCAwLjA4NTM2NywgMC4xMjExNiwgMC4xNDE5MjgsIDAuMTc0MTYxLCAwLjIwMjE1MywgMC4yNDIyMzYiLCBcCi0gICAgICAgICAgIjAuMDMwMTcsIDAuMDkzMTM1LCAwLjEzMjI1NywgMC4xNTU5NCwgMC4xODg3NTYsIDAuMjE2NjkyLCAwLjI1NjYzIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEyNTExLCAwLjA3MTc0MywgMC4xMzEyOTgsIDAuMTczOTE3LCAwLjI0MTc5NCwgMC4zMDEyMjgsIDAuMzg2MzE0IiwgXAotICAgICAgICAgICIwLjAxOTU4MiwgMC4wNzMzMDMsIDAuMTMxNTU2LCAwLjE3MzcyOCwgMC4yNDE3NywgMC4zMDE0MzgsIDAuMzg2MjkxIiwgXAotICAgICAgICAgICIwLjAyNjk1NCwgMC4wNzk3NDIsIDAuMTM0OTQ1LCAwLjE3NjAxOCwgMC4yNDIzNjEsIDAuMzAxMjU0LCAwLjM4NjYwNCIsIFwKLSAgICAgICAgICAiMC4wMzMxOTksIDAuMDg4Mzk4LCAwLjE0MTM3OSwgMC4xODA3NzQsIDAuMjQ1NTc3LCAwLjMwMzExOSwgMC4zODY4NzIiLCBcCi0gICAgICAgICAgIjAuMDM4NzUyLCAwLjA5NzQyNCwgMC4xNDkzMTYsIDAuMTg3NjczLCAwLjI1MDc2OSwgMC4zMDcyNjIsIDAuMzg5MzQyIiwgXAotICAgICAgICAgICIwLjA0Njc1NCwgMC4xMTI1ODQsIDAuMTYyNjI2LCAwLjE5OTE2NywgMC4yNjA5NSwgMC4zMTU5NiwgMC4zOTY2ODIiLCBcCi0gICAgICAgICAgIjAuMDUzMDY3LCAwLjEyNDc5NiwgMC4xNzY1LCAwLjIxMjE3MywgMC4yNzE3NjMsIDAuMzI1NzcsIDAuNDA0MzczIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA4ODI4LCAwLjAzNzIwOSwgMC4wNjU0LCAwLjA4NTUzOSwgMC4xMTc4NTEsIDAuMTQ1OTYsIDAuMTg2MjU0IiwgXAotICAgICAgICAgICIwLjAxNTc4NiwgMC4wNDU2NiwgMC4wNzM4OTUsIDAuMDk0MDM0LCAwLjEyNjI5LCAwLjE1NDQ3MSwgMC4xOTQ2OTUiLCBcCi0gICAgICAgICAgIjAuMDIwODA1LCAwLjA1NjQ0NCwgMC4wODQ1NzUsIDAuMTA0NjgzLCAwLjEzNjg5LCAwLjE2NTEwNywgMC4yMDUzNSIsIFwKLSAgICAgICAgICAiMC4wMjQ2MDksIDAuMDY2OTY5LCAwLjA5NTM3NiwgMC4xMTU0MzUsIDAuMTQ3NTczLCAwLjE3NTc4NSwgMC4yMTU5OTgiLCBcCi0gICAgICAgICAgIjAuMDI3NjM0LCAwLjA3NTg5LCAwLjEwNjA3LCAwLjEyNjE2MSwgMC4xNTgyMTQsIDAuMTg2MzQ2LCAwLjIyNjU0MSIsIFwKLSAgICAgICAgICAiMC4wMzE2ODQsIDAuMDg3NTM2LCAwLjEyMzA3OSwgMC4xNDM5ODksIDAuMTc1NzQ0LCAwLjIwMzgwMywgMC4yNDM5NDMiLCBcCi0gICAgICAgICAgIjAuMDM0NjI4LCAwLjA5NiwgMC4xMzUyODUsIDAuMTU4NTgyLCAwLjE5MTA3LCAwLjIxOTE4MSwgMC4yNTkzMzQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTIwNTUsIDAuMDcwNDM0LCAwLjEyOTIyOCwgMC4xNzA3NzYsIDAuMjM3ODc5LCAwLjI5NjM1NiwgMC4zODAzNzYiLCBcCi0gICAgICAgICAgIjAuMDE4ODE4LCAwLjA3MTczMiwgMC4xMjkzMiwgMC4xNzExNiwgMC4yMzc5MjcsIDAuMjk2MzY4LCAwLjM4MDc1IiwgXAotICAgICAgICAgICIwLjAyNjYzOSwgMC4wNzc5NTgsIDAuMTMyNjM2LCAwLjE3MjkwMiwgMC4yMzgyODIsIDAuMjk2MzQyLCAwLjM4MDc1MyIsIFwKLSAgICAgICAgICAiMC4wMzI3MDcsIDAuMDg2MjQ0LCAwLjEzODQ0NCwgMC4xNzczNDMsIDAuMjQxMzE4LCAwLjI5ODA2OSwgMC4zODA0MDIiLCBcCi0gICAgICAgICAgIjAuMDM4MzEzLCAwLjA5NTQ4MywgMC4xNDU5MDUsIDAuMTgzODA5LCAwLjI0NjQ1NSwgMC4zMDIzNzEsIDAuMzgzNDM2IiwgXAotICAgICAgICAgICIwLjA0NjE5MywgMC4xMTAzMDQsIDAuMTU5MjUzLCAwLjE5NTc5NCwgMC4yNTU4NjQsIDAuMzEwNDk1LCAwLjM4OTMzNSIsIFwKLSAgICAgICAgICAiMC4wNTMwMzksIDAuMTIzMTcsIDAuMTcyNzI3LCAwLjIwNzIxMywgMC4yNjYxMzMsIDAuMzE5NjE0LCAwLjM5NzI1MiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA5OTA2LCAwLjAxMDI1MywgMC4wMTAyOTgsIDAuMDEwMzExLCAwLjAxMDMyNCwgMC4wMTAzMjksIDAuMDEwMzM1IiwgXAotICAgICAgICAgICIwLjAxMDAzNywgMC4wMTAxNDEsIDAuMDEwMjA4LCAwLjAxMDI0NywgMC4wMTAyNzUsIDAuMDEwMjkyLCAwLjAxMDMwMyIsIFwKLSAgICAgICAgICAiMC4wMTA3NDQsIDAuMDEwMjU2LCAwLjAxMDI1MywgMC4wMTAyNzIsIDAuMDEwMjc3LCAwLjAxMDI5MywgMC4wMTAzMDMiLCBcCi0gICAgICAgICAgIjAuMDExODUxLCAwLjAxMDc2NSwgMC4wMTA1NDUsIDAuMDEwNDkzLCAwLjAxMDQ0OSwgMC4wMTA0MzUsIDAuMDEwNDE4IiwgXAotICAgICAgICAgICIwLjAxMzEzNSwgMC4wMTExMzYsIDAuMDExMTI5LCAwLjAxMDk1NSwgMC4wMTA4MTksIDAuMDEwNzI1LCAwLjAxMDY2MiIsIFwKLSAgICAgICAgICAiMC4wMTUyNTYsIDAuMDEyNzk1LCAwLjAxMTg3NCwgMC4wMTE1NSwgMC4wMTEyNTUsIDAuMDExMTE5LCAwLjAxMDk3NCIsIFwKLSAgICAgICAgICAiMC4wMTcxMzUsIDAuMDEzMzc4LCAwLjAxMjgyNywgMC4wMTIzMzksIDAuMDExOTA4LCAwLjAxMTY0MSwgMC4wMTE0MDEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDgwOCwgMC4wMDAzNzksIDAuMDAwMzIzLCAwLjAwMDMwNiwgMC4wMDAyOSwgMC4wMDAyODMsIDAuMDAwMjc2IiwgXAotICAgICAgICAgICIwLjAwMDc5LCAwLjAwMDU2NiwgMC4wMDA0NTEsIDAuMDAwNDA5LCAwLjAwMDM2OSwgMC4wMDAzNDgsIDAuMDAwMzI4IiwgXAotICAgICAgICAgICIwLjAwMDA2OCwgMC4wMDA0OTMsIDAuMDAwNDUzLCAwLjAwMDQyNywgMC4wMDAzOSwgMC4wMDAzNjksIDAuMDAwMzQ4IiwgXAotICAgICAgICAgICIwLjAwMTA3NiwgMC4wMDAwMzEsIDAuMDAwMTk0LCAwLjAwMDIyOCwgMC4wMDAyNTgsIDAuMDAwMjU4LCAwLjAwMDI2NCIsIFwKLSAgICAgICAgICAiMC4wMDIyODEsIDAuMDAwNDYyLCAwLjAwMDI5NywgMC4wMDAxNzIsIDAuMDAwMDQ5LCAwLjAwMDAxOCwgMC4wMDAwNjMiLCBcCi0gICAgICAgICAgIjAuMDA0NDQ4LCAwLjAwMTU5NCwgMC4wMDE2OTYsIDAuMDAxMzU1LCAwLjAwMDk4NCwgMC4wMDA3OCwgMC4wMDA1ODMiLCBcCi0gICAgICAgICAgIjAuMDA2NTM1LCAwLjAwMzI2LCAwLjAwMTkyOCwgMC4wMDE0OTIsIDAuMDAxMDQ3LCAwLjAwMDg0NywgMC4wMDA2MzgiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogQ0xLTVgyWDYgKgotICogLS0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKENMS01YMlg2KSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuODM3ODU0OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA4MjgzODk7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwODI2Njc0OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDgyODM4OTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAzOTgsIDAuMDAwNDAyLCAwLjAwMDQwNCwgMC4wMDA0MDUsIDAuMDAwNDA2LCAwLjAwMDQwNywgMC4wMDA0MDciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA0NDUsIDAuMDAwNDMsIDAuMDAwNDI4LCAwLjAwMDQyNywgMC4wMDA0MjYsIDAuMDAwNDI1LCAwLjAwMDQyNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNzgxOTMyOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDc4MDIzNDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA3ODE5MzI7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNDA4LCAwLjAwMDQxMSwgMC4wMDA0MTIsIDAuMDAwNDEyLCAwLjAwMDQxMywgMC4wMDA0MTMsIDAuMDAwNDEzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNDQyLCAwLjAwMDQyOCwgMC4wMDA0MjYsIDAuMDAwNDI1LCAwLjAwMDQyNCwgMC4wMDA0MjMsIDAuMDAwNDIzIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNDcwNjU7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNDcwNjU7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNDcwNjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAzMjQsIDAuMDAwMzM3LCAwLjAwMDQxNywgMC4wMDA1MjUsIDAuMDAwNjU0LCAwLjAwMDg4MiwgMC4wMDEwOCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjU4NiwgMC4wMDI2MTIsIDAuMDAyNjczLCAwLjAwMjc4LCAwLjAwMjkwNCwgMC4wMDMxMjYsIDAuMDAzMzE2Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDIuMTU4MDU7Ci0gICAgZnVuY3Rpb24gOiAiKChTMCBCKSArICghUzAgQSkpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjI0MTYsIDAuMDk2NDMyLCAwLjExODU5MywgMC4xNDUxNDQsIDAuMTcxMjk3LCAwLjE5NzM4LCAwLjIyMzM5MyIsIFwKLSAgICAgICAgICAiMC4wNjg3MDQsIDAuMTAyNzQ2LCAwLjEyNDkzOCwgMC4xNTE1MDcsIDAuMTc3NjY4LCAwLjIwMzc0NiwgMC4yMjk3NjgiLCBcCi0gICAgICAgICAgIjAuMDc2Njk2LCAwLjExMDY4MSwgMC4xMzI4NTcsIDAuMTU5MzgsIDAuMTg1NTM1LCAwLjIxMTYxOCwgMC4yMzc2NCIsIFwKLSAgICAgICAgICAiMC4wODQ0MTQsIDAuMTE4NDA2LCAwLjE0MDU1MSwgMC4xNjcxMDYsIDAuMTkzMjYzLCAwLjIxOTM0MywgMC4yNDUzNiIsIFwKLSAgICAgICAgICAiMC4wOTE0LCAwLjEyNTQ2NiwgMC4xNDc2OTgsIDAuMTc0MjYyLCAwLjIwMDQzNCwgMC4yMjY0OTUsIDAuMjUyNTE2IiwgXAotICAgICAgICAgICIwLjEwMTAwMiwgMC4xMzU5MTMsIDAuMTU4MTUyLCAwLjE4NDc4NSwgMC4yMTA5OSwgMC4yMzcwMzcsIDAuMjYzMDY3IiwgXAotICAgICAgICAgICIwLjEwODQzOCwgMC4xNDM4NjIsIDAuMTY2MzM5LCAwLjE5Mjk1MywgMC4yMTkwODksIDAuMjQ1MTUzLCAwLjI3MTE4Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzMTE5OSwgMC4wODM0ODQsIDAuMTI0ODc3LCAwLjE3NzU2MSwgMC4yMzA4LCAwLjI4NDc1OSwgMC4zMzkxNDciLCBcCi0gICAgICAgICAgIjAuMDMxMDE1LCAwLjA4MzQ2NiwgMC4xMjQ3NjYsIDAuMTc3NDU0LCAwLjIzMDg2MSwgMC4yODQ3NzEsIDAuMzM5MTEyIiwgXAotICAgICAgICAgICIwLjAzMTA1OCwgMC4wODM0MjUsIDAuMTI0ODcsIDAuMTc3NTI3LCAwLjIzMDk0OSwgMC4yODQ2MjIsIDAuMzM5MTM3IiwgXAotICAgICAgICAgICIwLjAzMTQzMywgMC4wODM3MSwgMC4xMjQ5NjgsIDAuMTc3NjYxLCAwLjIzMDk2MiwgMC4yODQ2OTIsIDAuMzM5MTY5IiwgXAotICAgICAgICAgICIwLjAzMjM2OSwgMC4wODQzNjYsIDAuMTI1NDY4LCAwLjE3Nzk5NSwgMC4yMzEyNywgMC4yODUwMDMsIDAuMzM5MDI4IiwgXAotICAgICAgICAgICIwLjAzMzc1NiwgMC4wODU1MDgsIDAuMTI2NDA0LCAwLjE3ODU5OCwgMC4yMzE3NjQsIDAuMjg1MzczLCAwLjMzOTMxIiwgXAotICAgICAgICAgICIwLjAzNTMyNiwgMC4wODY3NiwgMC4xMjcyMzUsIDAuMTc5MjY4LCAwLjIzMjI1OSwgMC4yODU3OSwgMC4zMzk2MzgiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY4NDIsIDAuMTAzMDg4LCAwLjEyNTcxNiwgMC4xNTI3MDIsIDAuMTc5MTUsIDAuMjA1NDQ5LCAwLjIzMTY5MSIsIFwKLSAgICAgICAgICAiMC4wNzQ0NjQsIDAuMTA5MTg4LCAwLjEzMTg0NSwgMC4xNTg4MDQsIDAuMTg1MjQ5LCAwLjIxMTU0LCAwLjIzNzc3MSIsIFwKLSAgICAgICAgICAiMC4wODE3OTMsIDAuMTE2NDU1LCAwLjEzOTExMiwgMC4xNjYwNDQsIDAuMTkyNDk0LCAwLjIxODgwMSwgMC4yNDUwNDIiLCBcCi0gICAgICAgICAgIjAuMDg4Njk0LCAwLjEyMzM1LCAwLjE0NTk4OSwgMC4xNzI5MTgsIDAuMTk5MzQ5LCAwLjIyNTY1NywgMC4yNTE4ODgiLCBcCi0gICAgICAgICAgIjAuMDk1MDgyLCAwLjEyOTg2MiwgMC4xNTI0MDQsIDAuMTc5NDksIDAuMjA1OTMsIDAuMjMyMjIxLCAwLjI1ODQ1MSIsIFwKLSAgICAgICAgICAiMC4xMDM4MzYsIDAuMTM5MTc2LCAwLjE2MTgzLCAwLjE4ODg0OSwgMC4yMTUzNDksIDAuMjQxNjE0LCAwLjI2Nzg0OCIsIFwKLSAgICAgICAgICAiMC4xMTA1MjcsIDAuMTQ2MjEzLCAwLjE2OTEzMywgMC4xOTYxNjQsIDAuMjIyNjU5LCAwLjI0ODkxMiwgMC4yNzUxNjkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDMxOTMyLCAwLjA4NDA0NiwgMC4xMjQ4ODgsIDAuMTc2NzI0LCAwLjIyOTIxNiwgMC4yODIxMTksIDAuMzM1NjYzIiwgXAotICAgICAgICAgICIwLjAzMTk2LCAwLjA4NDA4OCwgMC4xMjQ4NTIsIDAuMTc2NTg3LCAwLjIyOTIxMiwgMC4yODIxMTUsIDAuMzM1NzU1IiwgXAotICAgICAgICAgICIwLjAzMTk0NywgMC4wODM5NjMsIDAuMTI0ODEsIDAuMTc2Njc0LCAwLjIyOTIwOSwgMC4yODIwNTcsIDAuMzM1NzI2IiwgXAotICAgICAgICAgICIwLjAzMjIwMywgMC4wODQyOCwgMC4xMjQ5MzgsIDAuMTc2ODM2LCAwLjIyOTMxMSwgMC4yODIxNTcsIDAuMzM1NDU0IiwgXAotICAgICAgICAgICIwLjAzMjkwOCwgMC4wODQ3MjMsIDAuMTI1NTU4LCAwLjE3NzA0OSwgMC4yMjk1NjgsIDAuMjgyNDEzLCAwLjMzNTkyMSIsIFwKLSAgICAgICAgICAiMC4wMzQzMywgMC4wODU5OTcsIDAuMTI2Mjc2LCAwLjE3Nzc0MywgMC4yMzAwMzQsIDAuMjgyNzc1LCAwLjMzNjEyMSIsIFwKLSAgICAgICAgICAiMC4wMzU1OTEsIDAuMDg3MTk1LCAwLjEyNzI0NywgMC4xNzg1MywgMC4yMzA2MTcsIDAuMjgzMzEsIDAuMzM2MjMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDYyMzcsIDAuMDk2MzM5LCAwLjExODUyNSwgMC4xNDUwNDYsIDAuMTcxMjE0LCAwLjE5NzI1NSwgMC4yMjMyOTIiLCBcCi0gICAgICAgICAgIjAuMDY4ODI3LCAwLjEwMjgwNywgMC4xMjQ5ODksIDAuMTUxNTE3LCAwLjE3NzcxMSwgMC4yMDM3NTMsIDAuMjI5NzkyIiwgXAotICAgICAgICAgICIwLjA3Njk0MiwgMC4xMTA4OTMsIDAuMTMzMDU1LCAwLjE1OTU3MiwgMC4xODU3MiwgMC4yMTE3OTksIDAuMjM3ODIxIiwgXAotICAgICAgICAgICIwLjA4NDU5OCwgMC4xMTg1NiwgMC4xNDA2OTYsIDAuMTY3MjQxLCAwLjE5MzM5OCwgMC4yMTk0NCwgMC4yNDU0NzkiLCBcCi0gICAgICAgICAgIjAuMDkxNjA0LCAwLjEyNTc0NCwgMC4xNDc5NDcsIDAuMTc0NDg4LCAwLjIwMDY0MSwgMC4yMjY3MDUsIDAuMjUyNzI0IiwgXAotICAgICAgICAgICIwLjEwMTM5MSwgMC4xMzYxMjMsIDAuMTU4MzQ3LCAwLjE4NTAwNSwgMC4yMTExMzQsIDAuMjM3MzE5LCAwLjI2MzMyMSIsIFwKLSAgICAgICAgICAiMC4xMDg4NSwgMC4xNDQyMDEsIDAuMTY2NjY5LCAwLjE5MzI5NCwgMC4yMTk0MjcsIDAuMjQ1NDgyLCAwLjI3MTQ4OSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzEwOTQsIDAuMDgzNTcsIDAuMTI0OTM5LCAwLjE3NzYwMSwgMC4yMzEwMzUsIDAuMjg0ODE4LCAwLjMzODg5NiIsIFwKLSAgICAgICAgICAiMC4wMzExMDksIDAuMDgzNDUsIDAuMTI0OTIyLCAwLjE3NzYxOCwgMC4yMzEwMjEsIDAuMjg0ODA2LCAwLjMzODg4NyIsIFwKLSAgICAgICAgICAiMC4wMzEwNzEsIDAuMDgzNDU4LCAwLjEyNDkxMiwgMC4xNzc1NDgsIDAuMjMwOTM4LCAwLjI4NDgwNCwgMC4zMzkxNTciLCBcCi0gICAgICAgICAgIjAuMDMxNjA4LCAwLjA4Mzc5NiwgMC4xMjUxMDUsIDAuMTc3Njk3LCAwLjIzMTEwOCwgMC4yODQ4NDYsIDAuMzM5MTkxIiwgXAotICAgICAgICAgICIwLjAzMjUwMSwgMC4wODQzMzQsIDAuMTI1NDU1LCAwLjE3ODAwMiwgMC4yMzEyOTQsIDAuMjg0OTA3LCAwLjMzOTI5MiIsIFwKLSAgICAgICAgICAiMC4wMzM4OTgsIDAuMDg1NzAxLCAwLjEyNjU0NCwgMC4xNzg3NDUsIDAuMjMxODc1LCAwLjI4NTQsIDAuMzM5NTUzIiwgXAotICAgICAgICAgICIwLjAzNTQwNCwgMC4wODY4MDIsIDAuMTI3MjY5LCAwLjE3OTMyOCwgMC4yMzIyNjcsIDAuMjg1ODE1LCAwLjMzOTc2MSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjk0MjMsIDAuMTA0MTQ2LCAwLjEyNjc5MywgMC4xNTM3OTQsIDAuMTgwMjMyLCAwLjIwNjU0LCAwLjIzMjc4IiwgXAotICAgICAgICAgICIwLjA3NTMwNiwgMC4xMTAwODcsIDAuMTMyNzM2LCAwLjE1OTY4LCAwLjE4NjEyOCwgMC4yMTI0MjUsIDAuMjM4NjUzIiwgXAotICAgICAgICAgICIwLjA4MjUsIDAuMTE3MjUzLCAwLjEzOTkyNSwgMC4xNjY4NjMsIDAuMTkzMzM5LCAwLjIxOTYyNywgMC4yNDU4NjgiLCBcCi0gICAgICAgICAgIjAuMDg5NDA5LCAwLjEyNDE0LCAwLjE0Njc3LCAwLjE3MzczNywgMC4yMDAxNjksIDAuMjI2NDc5LCAwLjI1MjY5OCIsIFwKLSAgICAgICAgICAiMC4wOTU4NTMsIDAuMTMwNjAzLCAwLjE1MzI4OCwgMC4xODAyNTQsIDAuMjA2Njk3LCAwLjIzMjk5NCwgMC4yNTkyMjEiLCBcCi0gICAgICAgICAgIjAuMTA0NjMyLCAwLjEzOTk2NCwgMC4xNjI2NjIsIDAuMTg5Njg4LCAwLjIxNjE3MiwgMC4yNDI0NTcsIDAuMjY4Njk1IiwgXAotICAgICAgICAgICIwLjExMTMwOCwgMC4xNDcwNDMsIDAuMTY5OTM4LCAwLjE5NjkzOSwgMC4yMjM0NjcsIDAuMjQ5NzEzLCAwLjI3NTk2OSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzIwNDQsIDAuMDg0MjQyLCAwLjEyNDk3OCwgMC4xNzY3MTksIDAuMjI5MTY5LCAwLjI4MjE3OCwgMC4zMzUyOTEiLCBcCi0gICAgICAgICAgIjAuMDMyMjA4LCAwLjA4NDE2NywgMC4xMjUwMTcsIDAuMTc2Nzc3LCAwLjIyOTM1MiwgMC4yODIxMzUsIDAuMzM1OCIsIFwKLSAgICAgICAgICAiMC4wMzIwNTEsIDAuMDg0MTMxLCAwLjEyNDk2OCwgMC4xNzY4MDMsIDAuMjI5MzA4LCAwLjI4MjI3NSwgMC4zMzU3NzQiLCBcCi0gICAgICAgICAgIjAuMDMyNDkxLCAwLjA4NDQxMywgMC4xMjUxNTMsIDAuMTc2OTUzLCAwLjIyOTQxNCwgMC4yODIyNDYsIDAuMzM1ODczIiwgXAotICAgICAgICAgICIwLjAzMzA5NSwgMC4wODQ4NDksIDAuMTI1NDQ3LCAwLjE3NzE2OCwgMC4yMjk1NTgsIDAuMjgyNDUzLCAwLjMzNTk5NSIsIFwKLSAgICAgICAgICAiMC4wMzQ1MDcsIDAuMDg2MTgyLCAwLjEyNjQ1LCAwLjE3NzgzMiwgMC4yMzAxMjYsIDAuMjgyODMsIDAuMzM1ODc5IiwgXAotICAgICAgICAgICIwLjAzNTkxOSwgMC4wODc0NTQsIDAuMTI3MzM1LCAwLjE3ODU4NSwgMC4yMzA2NzgsIDAuMjgzMjY3LCAwLjMzNjI5NiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU3ODcxLCAwLjA5MTgxNywgMC4xMTQwMSwgMC4xNDA1MzYsIDAuMTY2NzI2LCAwLjE5Mjc3LCAwLjIxODgxMiIsIFwKLSAgICAgICAgICAiMC4wNjUzOTksIDAuMDk5NDAzLCAwLjEyMTU2NSwgMC4xNDgxMTMsIDAuMTc0Mjc5LCAwLjIwMDMzMiwgMC4yMjYzNjciLCBcCi0gICAgICAgICAgIjAuMDc1MjExLCAwLjEwOTE5OCwgMC4xMzEzNTUsIDAuMTU3ODc2LCAwLjE4NDAzOCwgMC4yMTAxMTYsIDAuMjM2MTQ2IiwgXAotICAgICAgICAgICIwLjA4NDgyOSwgMC4xMTg4NzUsIDAuMTQwOTgyLCAwLjE2NzUzLCAwLjE5MzY5MSwgMC4yMTk3NiwgMC4yNDU3NzUiLCBcCi0gICAgICAgICAgIjAuMDkzNTQ0LCAwLjEyNzc5OCwgMC4xNTAwNDYsIDAuMTc2NTk3LCAwLjIwMjc0NiwgMC4yMjg4MDgsIDAuMjU0ODM3IiwgXAotICAgICAgICAgICIwLjEwNTAxNywgMC4xNDAyMzUsIDAuMTYyNDY3LCAwLjE4OTA2OCwgMC4yMTUyMzMsIDAuMjQxMzgsIDAuMjY3NDAxIiwgXAotICAgICAgICAgICIwLjExMzUwMiwgMC4xNDk2MDMsIDAuMTcyMDczLCAwLjE5ODcyMywgMC4yMjQ4NTIsIDAuMjUwOTA1LCAwLjI3Njg3NiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzEwNTksIDAuMDgzNDE3LCAwLjEyNDg2LCAwLjE3NzU4NiwgMC4yMzA5OTEsIDAuMjg0Nzg3LCAwLjMzODg2NyIsIFwKLSAgICAgICAgICAiMC4wMzA5MzUsIDAuMDgzNDM2LCAwLjEyNDg1NCwgMC4xNzc0NjMsIDAuMjMwOTkzLCAwLjI4NDc3LCAwLjMzOTExNSIsIFwKLSAgICAgICAgICAiMC4wMzEwMDQsIDAuMDgzNDU4LCAwLjEyNDg3MiwgMC4xNzc1ODksIDAuMjMwODQ3LCAwLjI4NDc5NSwgMC4zMzkxMDIiLCBcCi0gICAgICAgICAgIjAuMDMxNzA2LCAwLjA4MzgxNSwgMC4xMjUwOTksIDAuMTc3NjgzLCAwLjIzMTA5MSwgMC4yODQ3MTIsIDAuMzM5MTYzIiwgXAotICAgICAgICAgICIwLjAzMzMyNSwgMC4wODQ1MTgsIDAuMTI1NTUzLCAwLjE3ODA3MSwgMC4yMzEzMDgsIDAuMjg1MDI5LCAwLjMzOTMyNCIsIFwKLSAgICAgICAgICAiMC4wMzYxNDQsIDAuMDg2NTg4LCAwLjEyNzAxNCwgMC4xNzkwMjcsIDAuMjMxOTMzLCAwLjI4NTU1OCwgMC4zMzk2NTMiLCBcCi0gICAgICAgICAgIjAuMDM4Mzc1LCAwLjA4ODM5MSwgMC4xMjgzOTIsIDAuMTgwMDIzLCAwLjIzMjgwNywgMC4yODYwNDgsIDAuMzM5ODk4Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2Mzk0NCwgMC4wOTg2MzgsIDAuMTIxMjkyLCAwLjE0ODIzNywgMC4xNzQ2ODQsIDAuMjAwOTgxLCAwLjIyNzIwNyIsIFwKLSAgICAgICAgICAiMC4wNzEzNDUsIDAuMTA2MTEsIDAuMTI4NzYxLCAwLjE1NTY4NSwgMC4xODIxNjQsIDAuMjA4NDQ5LCAwLjIzNDY5MiIsIFwKLSAgICAgICAgICAiMC4wODEwMzUsIDAuMTE1NzM0LCAwLjEzODQwNywgMC4xNjUzNTMsIDAuMTkxODAzLCAwLjIxODEwMywgMC4yNDQzMzMiLCBcCi0gICAgICAgICAgIjAuMDkwNjYsIDAuMTI1MzU5LCAwLjE0ODAxNSwgMC4xNzQ5NSwgMC4yMDEzODYsIDAuMjI3Njk0LCAwLjI1MzkzMiIsIFwKLSAgICAgICAgICAiMC4wOTk1MywgMC4xMzQyOTgsIDAuMTU2OTIsIDAuMTgzODYsIDAuMjEwMzAxLCAwLjIzNjY5MSwgMC4yNjI5MyIsIFwKLSAgICAgICAgICAiMC4xMTEzNzksIDAuMTQ2NzYyLCAwLjE2OTQ1NCwgMC4xOTY0NTYsIDAuMjIyODk4LCAwLjI0OTE3OSwgMC4yNzU0MDUiLCBcCi0gICAgICAgICAgIjAuMTIwMTU2LCAwLjE1NjEzMywgMC4xNzkwMiwgMC4yMDYwNjQsIDAuMjMyNDksIDAuMjU4NzczLCAwLjI4NTAyNSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzE5NDIsIDAuMDgzOTM2LCAwLjEyNDgsIDAuMTc2NTY2LCAwLjIyOTIxMSwgMC4yODIwNzUsIDAuMzM1NzQ2IiwgXAotICAgICAgICAgICIwLjAzMTg2NiwgMC4wODM5NiwgMC4xMjQ4MDUsIDAuMTc2NjY4LCAwLjIyOTE5LCAwLjI4MjIwOCwgMC4zMzU3NDciLCBcCi0gICAgICAgICAgIjAuMDMxODc2LCAwLjA4Mzk1MywgMC4xMjQ4MDQsIDAuMTc2NTU2LCAwLjIyOTIxLCAwLjI4MjA4LCAwLjMzNTczMyIsIFwKLSAgICAgICAgICAiMC4wMzIyNzYsIDAuMDg0MTc3LCAwLjEyNDk2MSwgMC4xNzY3OTMsIDAuMjI5MjYzLCAwLjI4MjEyNSwgMC4zMzU1NDEiLCBcCi0gICAgICAgICAgIjAuMDMzNTcyLCAwLjA4NDc2NiwgMC4xMjUzMzcsIDAuMTc3MDQxLCAwLjIyOTQ1NSwgMC4yODI0NzMsIDAuMzM1MzAzIiwgXAotICAgICAgICAgICIwLjAzNjEwNiwgMC4wODYzODQsIDAuMTI2NDg2LCAwLjE3Nzg0NywgMC4yMzAwOTMsIDAuMjgyODU1LCAwLjMzNjI4IiwgXAotICAgICAgICAgICIwLjAzNzk0MiwgMC4wODc5NTYsIDAuMTI3NjU0LCAwLjE3ODc1LCAwLjIzMDc4OCwgMC4yODMzMjMsIDAuMzM2MjcyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlMwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzE1NiwgMC4xMDU1NjksIDAuMTI3NzQxLCAwLjE1NDMyMywgMC4xODA0NDMsIDAuMjA2NSwgMC4yMzI1MzUiLCBcCi0gICAgICAgICAgIjAuMDc5MDYsIDAuMTEzMSwgMC4xMzUyNzIsIDAuMTYxODY3LCAwLjE4Nzk2NCwgMC4yMTQwMzUsIDAuMjQwMDYxIiwgXAotICAgICAgICAgICIwLjA4NTc2NCwgMC4xMTk3NzksIDAuMTQxOTgsIDAuMTY4NDY0LCAwLjE5NDY2MiwgMC4yMjA3MSwgMC4yNDY3NTQiLCBcCi0gICAgICAgICAgIjAuMDkwNDQ1LCAwLjEyNDQ3MywgMC4xNDY1OTksIDAuMTczMTU4LCAwLjE5OTMyNywgMC4yMjUzODIsIDAuMjUxNDE4IiwgXAotICAgICAgICAgICIwLjA5NDA1NCwgMC4xMjgwNiwgMC4xNTAyODgsIDAuMTc2ODc2LCAwLjIwMzA0LCAwLjIyOTEwNywgMC4yNTUxNDYiLCBcCi0gICAgICAgICAgIjAuMDk4OTAyLCAwLjEzMjk2OSwgMC4xNTUxMTgsIDAuMTgxNzU2LCAwLjIwNzk1MywgMC4yMzQwNjcsIDAuMjYwMDgxIiwgXAotICAgICAgICAgICIwLjEwMjU0NywgMC4xMzY2NTYsIDAuMTU4NzYyLCAwLjE4NTM3MSwgMC4yMTE2MDEsIDAuMjM3NzAzLCAwLjI2Mzc1MyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzEsIDAuMDgzNDU5LCAwLjEyNDgxNCwgMC4xNzc1MDUsIDAuMjMwOTg5LCAwLjI4NDY2NywgMC4zMzkxMjIiLCBcCi0gICAgICAgICAgIjAuMDMxMDQ3LCAwLjA4MzQ1NiwgMC4xMjQ4NDEsIDAuMTc3NTI5LCAwLjIzMDk2NywgMC4yODQ4MDcsIDAuMzM4ODg3IiwgXAotICAgICAgICAgICIwLjAzMTAyMywgMC4wODM0MjcsIDAuMTI0NzM0LCAwLjE3NzU2OSwgMC4yMzA5NzEsIDAuMjg0ODYzLCAwLjMzOTEwMyIsIFwKLSAgICAgICAgICAiMC4wMzA5NjEsIDAuMDgzNDQ4LCAwLjEyNDgzMSwgMC4xNzc1NDEsIDAuMjMwOTksIDAuMjg0NjU1LCAwLjMzOTExNCIsIFwKLSAgICAgICAgICAiMC4wMzA4MSwgMC4wODM0MDcsIDAuMTI0ODY5LCAwLjE3NzYzNCwgMC4yMzEwNjMsIDAuMjg0ODQzLCAwLjMzOTE2OSIsIFwKLSAgICAgICAgICAiMC4wMzA4NTIsIDAuMDgzNDAyLCAwLjEyNDg5MiwgMC4xNzc1ODcsIDAuMjMxMTAxLCAwLjI4NDkyOSwgMC4zMzg4MTkiLCBcCi0gICAgICAgICAgIjAuMDMwODI2LCAwLjA4MzYwMiwgMC4xMjQ4MDIsIDAuMTc3NTE1LCAwLjIzMTA1NiwgMC4yODQ5MTgsIDAuMzM5MDYzIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3NjE1MywgMC4xMTEwMTYsIDAuMTMzNjI3LCAwLjE2MDU2MiwgMC4xODcwNTcsIDAuMjEzMzQxLCAwLjIzOTU4NiIsIFwKLSAgICAgICAgICAiMC4wODM5MDUsIDAuMTE4NjY4LCAwLjE0MTMyOCwgMC4xNjgzMDUsIDAuMTk0NzQ5LCAwLjIyMTAzMiwgMC4yNDcyNzYiLCBcCi0gICAgICAgICAgIjAuMDkwNjQ2LCAwLjEyNTM5MywgMC4xNDgwNTksIDAuMTc0OTk1LCAwLjIwMTQ3NSwgMC4yMjc3NjEsIDAuMjU0MDA0IiwgXAotICAgICAgICAgICIwLjA5NTQ3OSwgMC4xMzAyMzEsIDAuMTUyODg1LCAwLjE3OTgwOCwgMC4yMDYyODgsIDAuMjMyNTY5LCAwLjI1ODgxNCIsIFwKLSAgICAgICAgICAiMC4wOTk0MDksIDAuMTM0MTIyLCAwLjE1NjgzLCAwLjE4Mzc1NiwgMC4yMTAyMzIsIDAuMjM2NTIzLCAwLjI2Mjc2NyIsIFwKLSAgICAgICAgICAiMC4xMDQ2OTcsIDAuMTM5NTA2LCAwLjE2MjE4NCwgMC4xODkwNjQsIDAuMjE1NzI5LCAwLjI0MjAyMiwgMC4yNjgyNzMiLCBcCi0gICAgICAgICAgIjAuMTA4Njg4LCAwLjE0MzQwNywgMC4xNjYwNjQsIDAuMTkzMTQ0LCAwLjIxOTY0NCwgMC4yNDU5ODYsIDAuMjcyMjIxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzMjA4LCAwLjA4NDE5NiwgMC4xMjUwMTMsIDAuMTc2ODMsIDAuMjI5MzIsIDAuMjgyMzMzLCAwLjMzNTgxMSIsIFwKLSAgICAgICAgICAiMC4wMzIwNzIsIDAuMDg0MjE2LCAwLjEyNDk4LCAwLjE3Njc4MSwgMC4yMjkzMDUsIDAuMjgyMzE5LCAwLjMzNTgzMiIsIFwKLSAgICAgICAgICAiMC4wMzIxMjMsIDAuMDg0MTQ4LCAwLjEyNDk0OSwgMC4xNzY3ODMsIDAuMjI5Mjg2LCAwLjI4MjI2NiwgMC4zMzU3OTUiLCBcCi0gICAgICAgICAgIjAuMDMyMTA4LCAwLjA4NDE0NCwgMC4xMjQ5NzcsIDAuMTc2ODExLCAwLjIyOTI5MywgMC4yODIyOTEsIDAuMzM1ODMxIiwgXAotICAgICAgICAgICIwLjAzMTk2MywgMC4wODQxMzEsIDAuMTI1MDEsIDAuMTc2ODQ4LCAwLjIyOTM3NSwgMC4yODIzNTQsIDAuMzM1ODY4IiwgXAotICAgICAgICAgICIwLjAzMTg3NywgMC4wODQwMjIsIDAuMTI0ODg3LCAwLjE3Njc2NSwgMC4yMjkzOTIsIDAuMjgyMzA4LCAwLjMzNTgyNyIsIFwKLSAgICAgICAgICAiMC4wMzE5NTIsIDAuMDg0MTY5LCAwLjEyNDgyLCAwLjE3NjcyMiwgMC4yMjkzMTMsIDAuMjgyMzI1LCAwLjMzNTU4MSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwOTI1NCwgMC4wMDkwNTksIDAuMDA5MDgxLCAwLjAwOTExLCAwLjAwOTEyNiwgMC4wMDkxMzMsIDAuMDA5MTMiLCBcCi0gICAgICAgICAgIjAuMDA5MTY1LCAwLjAwODk4NSwgMC4wMDkwMiwgMC4wMDkwNTEsIDAuMDA5MDY3LCAwLjAwOTA4MSwgMC4wMDkwOTEiLCBcCi0gICAgICAgICAgIjAuMDA5MjY0LCAwLjAwOTAxMywgMC4wMDkwMzgsIDAuMDA5MDU4LCAwLjAwOTA3MiwgMC4wMDkwODUsIDAuMDA5MDkyIiwgXAotICAgICAgICAgICIwLjAwOTQxOCwgMC4wMDkwNiwgMC4wMDkwNjksIDAuMDA5MDg3LCAwLjAwOTEwMiwgMC4wMDkxMTMsIDAuMDA5MTIyIiwgXAotICAgICAgICAgICIwLjAwOTY2LCAwLjAwOTE3NywgMC4wMDkxNjQsIDAuMDA5MTcxLCAwLjAwOTE3LCAwLjAwOTE3NywgMC4wMDkxODUiLCBcCi0gICAgICAgICAgIjAuMDA5ODAyLCAwLjAwOTI3NSwgMC4wMDkyNDksIDAuMDA5MjUyLCAwLjAwOTI1OSwgMC4wMDkyNzIsIDAuMDA5Mjc1IiwgXAotICAgICAgICAgICIwLjAxMDExNiwgMC4wMDk0NDIsIDAuMDA5NCwgMC4wMDkzODYsIDAuMDA5MzgzLCAwLjAwOTM4NiwgMC4wMDkzOTQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTA0MzEsIDAuMDEwMTYyLCAwLjAxMDE4OSwgMC4wMTAyMTcsIDAuMDEwMjM1LCAwLjAxMDI0OCwgMC4wMTAyNTYiLCBcCi0gICAgICAgICAgIjAuMDEwMjk0LCAwLjAxMDA4NCwgMC4wMTAxMjksIDAuMDEwMTY2LCAwLjAxMDE5MSwgMC4wMTAyMDgsIDAuMDEwMjIxIiwgXAotICAgICAgICAgICIwLjAxMDMyNSwgMC4wMTAwOCwgMC4wMTAxMiwgMC4wMTAxNTcsIDAuMDEwMTgyLCAwLjAxMDIwMSwgMC4wMTAyMTQiLCBcCi0gICAgICAgICAgIjAuMDEwNTIzLCAwLjAxMDE0MSwgMC4wMTAxNiwgMC4wMTAxODksIDAuMDEwMjEyLCAwLjAxMDIzLCAwLjAxMDI0MiIsIFwKLSAgICAgICAgICAiMC4wMTA2NjYsIDAuMDEwMjUzLCAwLjAxMDI1NSwgMC4wMTAyNTcsIDAuMDEwMjczLCAwLjAxMDI4NSwgMC4wMTAyOTYiLCBcCi0gICAgICAgICAgIjAuMDEwOTY5LCAwLjAxMDQxOCwgMC4wMTAzNjcsIDAuMDEwMzcsIDAuMDEwMzgsIDAuMDEwMzgzLCAwLjAxMDM5NSIsIFwKLSAgICAgICAgICAiMC4wMTEzMzcsIDAuMDEwNjM2LCAwLjAxMDU1MiwgMC4wMTA1MjYsIDAuMDEwNTIsIDAuMDEwNTI2LCAwLjAxMDUyOCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwODkwOCwgMC4wMDg2NDksIDAuMDA4NjQ3LCAwLjAwODY0NSwgMC4wMDg2MzcsIDAuMDA4NjUsIDAuMDA4NjUxIiwgXAotICAgICAgICAgICIwLjAwODgyLCAwLjAwODU4NSwgMC4wMDg1OTEsIDAuMDA4NTk3LCAwLjAwODYwMSwgMC4wMDg2MDksIDAuMDA4NjAzIiwgXAotICAgICAgICAgICIwLjAwODkyNSwgMC4wMDg2MTcsIDAuMDA4NjA3LCAwLjAwODYwNywgMC4wMDg2MSwgMC4wMDg2MTIsIDAuMDA4NjE1IiwgXAotICAgICAgICAgICIwLjAwOTA3MiwgMC4wMDg2NTksIDAuMDA4NjQxLCAwLjAwODYzOSwgMC4wMDg2NDEsIDAuMDA4NjQzLCAwLjAwODY0NCIsIFwKLSAgICAgICAgICAiMC4wMDkyNywgMC4wMDg3NDcsIDAuMDA4NzA5LCAwLjAwODcwMiwgMC4wMDg2OTksIDAuMDA4NywgMC4wMDg3MDMiLCBcCi0gICAgICAgICAgIjAuMDA5NTk5LCAwLjAwODk4NywgMC4wMDg4OTksIDAuMDA4ODY5LCAwLjAwODg1MSwgMC4wMDg4MzUsIDAuMDA4ODI5IiwgXAotICAgICAgICAgICIwLjAwOTk0LCAwLjAwOTE2NiwgMC4wMDkwNjcsIDAuMDA5MDA3LCAwLjAwODk4NiwgMC4wMDg5NjUsIDAuMDA4OTU1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEwNzI5LCAwLjAxMDQ0MiwgMC4wMTA0NTMsIDAuMDEwNDcsIDAuMDEwNDc5LCAwLjAxMDQ4NywgMC4wMTA0OTIiLCBcCi0gICAgICAgICAgIjAuMDEwNzA1LCAwLjAxMDQxNSwgMC4wMTA0MjQsIDAuMDEwNDQyLCAwLjAxMDQ1NSwgMC4wMTA0NjMsIDAuMDEwNDciLCBcCi0gICAgICAgICAgIjAuMDEwNzE3LCAwLjAxMDQwOSwgMC4wMTA0MjIsIDAuMDEwNDQsIDAuMDEwNDUyLCAwLjAxMDQ2MiwgMC4wMTA0NjkiLCBcCi0gICAgICAgICAgIjAuMDEwOTIsIDAuMDEwNDc2LCAwLjAxMDQ2OSwgMC4wMTA0NzgsIDAuMDEwNDg4LCAwLjAxMDQ5NiwgMC4wMTA1MDEiLCBcCi0gICAgICAgICAgIjAuMDExMDcxLCAwLjAxMDUyNiwgMC4wMTA1MTQsIDAuMDEwNTE4LCAwLjAxMDUyNiwgMC4wMTA1MzQsIDAuMDEwNTQiLCBcCi0gICAgICAgICAgIjAuMDExNDUzLCAwLjAxMDc1NSwgMC4wMTA2ODMsIDAuMDEwNjYxLCAwLjAxMDY1NCwgMC4wMTA2NTYsIDAuMDEwNjU0IiwgXAotICAgICAgICAgICIwLjAxMTgxMiwgMC4wMTA5MjIsIDAuMDEwODQ2LCAwLjAxMDgwMSwgMC4wMTA3ODQsIDAuMDEwNzgyLCAwLjAxMDc3NSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlMwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTE3NSwgMC4wMTE1NzcsIDAuMDExNjEsIDAuMDExNjM5LCAwLjAxMTY1NSwgMC4wMTE2NjgsIDAuMDExNjc1IiwgXAotICAgICAgICAgICIwLjAxMTc2OSwgMC4wMTE1OTEsIDAuMDExNjI3LCAwLjAxMTY1NiwgMC4wMTE2NzEsIDAuMDExNjg0LCAwLjAxMTY5IiwgXAotICAgICAgICAgICIwLjAxMTgyNywgMC4wMTE2NzQsIDAuMDExNzExLCAwLjAxMTczOSwgMC4wMTE3NTcsIDAuMDExNzcsIDAuMDExNzgiLCBcCi0gICAgICAgICAgIjAuMDExOTI5LCAwLjAxMTc4MSwgMC4wMTE4MTcsIDAuMDExODQ3LCAwLjAxMTg2NiwgMC4wMTE4NzksIDAuMDExODg4IiwgXAotICAgICAgICAgICIwLjAxMjA2OSwgMC4wMTE5MSwgMC4wMTE5MzksIDAuMDExOTY5LCAwLjAxMTk5MSwgMC4wMTE5OTksIDAuMDEyMDExIiwgXAotICAgICAgICAgICIwLjAxMjMxNywgMC4wMTIxNjMsIDAuMDEyMjAxLCAwLjAxMjIyOSwgMC4wMTIyNDcsIDAuMDEyMjYxLCAwLjAxMjI2OSIsIFwKLSAgICAgICAgICAiMC4wMTI1MTQsIDAuMDEyMzU1LCAwLjAxMjM4MywgMC4wMTI0MTEsIDAuMDEyNDMyLCAwLjAxMjQ0OCwgMC4wMTI0NTQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTAwMjcsIDAuMDA5NzUyLCAwLjAwOTc3MiwgMC4wMDk3OTgsIDAuMDA5ODE1LCAwLjAwOTgyOCwgMC4wMDk4MzciLCBcCi0gICAgICAgICAgIjAuMDEwMDQyLCAwLjAwOTc2NiwgMC4wMDk3OSwgMC4wMDk4MTMsIDAuMDA5ODMsIDAuMDA5ODQyLCAwLjAwOTg1MSIsIFwKLSAgICAgICAgICAiMC4wMTAxMDYsIDAuMDA5ODQzLCAwLjAwOTg3MSwgMC4wMDk4OTgsIDAuMDA5OTE1LCAwLjAwOTkyOCwgMC4wMDk5MzciLCBcCi0gICAgICAgICAgIjAuMDEwMjIyLCAwLjAwOTk3MiwgMC4wMDk5OTIsIDAuMDEwMDE2LCAwLjAxMDAzMiwgMC4wMTAwNDQsIDAuMDEwMDUzIiwgXAotICAgICAgICAgICIwLjAxMDM0MiwgMC4wMTAwODYsIDAuMDEwMTE5LCAwLjAxMDE0NCwgMC4wMTAxNjIsIDAuMDEwMTc0LCAwLjAxMDE4NSIsIFwKLSAgICAgICAgICAiMC4wMTA2MDcsIDAuMDEwMzQ3LCAwLjAxMDM3LCAwLjAxMDM5NSwgMC4wMTA0MTQsIDAuMDEwNDMxLCAwLjAxMDQzNyIsIFwKLSAgICAgICAgICAiMC4wMTA3ODQsIDAuMDEwNTU0LCAwLjAxMDU2NywgMC4wMTA2MDYsIDAuMDEwNjE2LCAwLjAxMDYzMywgMC4wMTA2MzkiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IENMS1hPUjJYMiAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKENMS1hPUjJYMikgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjQ3MjExMzsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjQ5OTc1OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDY0OTk3NTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2NDk5NDE7Ci0gIH0KLSAgcGluKEIpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTM2Nzc0OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTM2NzU0OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTM2Nzc0OwotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuNjcxMzA3OwotICAgIGZ1bmN0aW9uIDogIihBXkIpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjE4MjEsIDAuMTQxNTUsIDAuMjAzNTM3LCAwLjI4MDk1OSwgMC4zNTg1MSwgMC40MzU4OTYsIDAuNTEzMDYiLCBcCi0gICAgICAgICAgIjAuMDY5ODY3LCAwLjE0OTYxMywgMC4yMTE1ODUsIDAuMjg5MDIyLCAwLjM2NjU0NywgMC40NDM5NDcsIDAuNTIxNjE3IiwgXAotICAgICAgICAgICIwLjA3OTY3NywgMC4xNTk0MywgMC4yMjE0MTcsIDAuMjk4ODM3LCAwLjM3NjM4MiwgMC40NTM3ODgsIDAuNTMxMzUiLCBcCi0gICAgICAgICAgIjAuMDg3OTA1LCAwLjE2Nzc1MywgMC4yMjk3MDcsIDAuMzA3MTUyLCAwLjM4NDcxMywgMC40NjIwODUsIDAuNTM5NjgiLCBcCi0gICAgICAgICAgIjAuMDk1MzkyLCAwLjE3NTQxNywgMC4yMzczNzIsIDAuMzE0ODExLCAwLjM5MjIzNywgMC40Njk3NTEsIDAuNTQ3NDY2IiwgXAotICAgICAgICAgICIwLjEwNTAzNywgMC4xODU2MTIsIDAuMjQ3NTU5LCAwLjMyNTAxNSwgMC40MDI0NDEsIDAuNDc5OTA0LCAwLjU1NzUyNSIsIFwKLSAgICAgICAgICAiMC4xMTIyNTIsIDAuMTkzMjYyLCAwLjI1NTIwNCwgMC4zMzI2MTYsIDAuNDEwMDY5LCAwLjQ4NzU2NSwgMC41NjQ5NTEiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQ2MDY2LCAwLjIwNTUzOSwgMC4zMzY3MjYsIDAuNTAxMzQ4LCAwLjY2NTI4MywgMC44MzA4MzUsIDAuOTk1MDcxIiwgXAotICAgICAgICAgICIwLjA0NjEzNiwgMC4yMDU1ODYsIDAuMzM2MTg0LCAwLjUwMTM4LCAwLjY2NTcwMywgMC44MzE4ODIsIDAuOTk1Njc0IiwgXAotICAgICAgICAgICIwLjA0NjMxMiwgMC4yMDU2MzIsIDAuMzM2NzU4LCAwLjUwMTMzNiwgMC42NjUyOTIsIDAuODMwOTAxLCAwLjk5NTU4NCIsIFwKLSAgICAgICAgICAiMC4wNDcwNTIsIDAuMjA1NzQ1LCAwLjMzNjQxOSwgMC41MDEzODIsIDAuNjY1Mjg1LCAwLjgzMDgwNCwgMC45OTU2MTMiLCBcCi0gICAgICAgICAgIjAuMDQ4MDI2LCAwLjIwNTk4LCAwLjMzNjc4NywgMC41MDE1LCAwLjY2NjU0NywgMC44MzA0NjcsIDAuOTk1NjkzIiwgXAotICAgICAgICAgICIwLjA0OTc5MywgMC4yMDY1OTQsIDAuMzM2NjA2LCAwLjUwMTY0MywgMC42NjU4OTgsIDAuODMxODI1LCAwLjk5NTc1MSIsIFwKLSAgICAgICAgICAiMC4wNTEyMDMsIDAuMjA3MTY5LCAwLjMzNzM2MywgMC41MDE3NjUsIDAuNjY1NzUsIDAuODMwMjIyLCAwLjk5NTk2NiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjU1MjEsIDAuMTQ0Njc0LCAwLjIwNTMzNiwgMC4yODExMSwgMC4zNTY5MTksIDAuNDMyNzE0LCAwLjUwODQyNCIsIFwKLSAgICAgICAgICAiMC4wNzM0NTcsIDAuMTUyNjM3LCAwLjIxMzMwNSwgMC4yODkwNTQsIDAuMzY0ODM1LCAwLjQ0MDYzLCAwLjUxNjM4OSIsIFwKLSAgICAgICAgICAiMC4wODI5MTcsIDAuMTYyMDgsIDAuMjIyNzU3LCAwLjI5ODUyMywgMC4zNzQyODUsIDAuNDUwMDc5LCAwLjUyNTg1NiIsIFwKLSAgICAgICAgICAiMC4wOTEzMzgsIDAuMTcwNjAxLCAwLjIzMTI2NCwgMC4zMDcwMzgsIDAuMzgyODA0LCAwLjQ1ODYzMywgMC41MzQzNjEiLCBcCi0gICAgICAgICAgIjAuMDk4NDE3LCAwLjE3Nzg4NywgMC4yMzg1NDMsIDAuMzE0MzMsIDAuMzkwMDYxLCAwLjQ2NTk4LCAwLjU0MTY0NCIsIFwKLSAgICAgICAgICAiMC4xMDc3MTIsIDAuMTg3NzIsIDAuMjQ4Mzc0LCAwLjMyNDEyMiwgMC4zOTk5MzksIDAuNDc1Njk4LCAwLjU1MTQ0NyIsIFwKLSAgICAgICAgICAiMC4xMTQ2ODcsIDAuMTk1MTQxLCAwLjI1NTgwNiwgMC4zMzE1NTksIDAuNDA3MzA2LCAwLjQ4MzA2MSwgMC41NTg4MjgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQ2MDU0LCAwLjE5NzM1NCwgMC4zMjE5NDEsIDAuNDc4MDk1LCAwLjYzNDY5MywgMC43OTE2NDksIDAuOTUwODA0IiwgXAotICAgICAgICAgICIwLjA0NjAxOSwgMC4xOTczNDEsIDAuMzIxMzM4LCAwLjQ3ODY2LCAwLjYzNTEzMiwgMC43OTE4MjIsIDAuOTUwODE3IiwgXAotICAgICAgICAgICIwLjA0NjE2MywgMC4xOTczNzQsIDAuMzIxOTUyLCAwLjQ3ODYzNywgMC42MzU4OTYsIDAuNzkyNDYzLCAwLjk1MDc4NiIsIFwKLSAgICAgICAgICAiMC4wNDY3NywgMC4xOTc0OTMsIDAuMzIyMDI3LCAwLjQ3ODcwNiwgMC42MzUxMTIsIDAuNzkxNzMzLCAwLjk1MDc5NSIsIFwKLSAgICAgICAgICAiMC4wNDc3MDMsIDAuMTk3NzgsIDAuMzIyMTc3LCAwLjQ3ODg4NywgMC42MzU4NjYsIDAuNzkxOTQxLCAwLjk0OTgzMyIsIFwKLSAgICAgICAgICAiMC4wNDkzMTMsIDAuMTk4NDI1LCAwLjMyMjUyNiwgMC40Nzg4NDcsIDAuNjM2MTUzLCAwLjc5MzU0NiwgMC45NTEwNDUiLCBcCi0gICAgICAgICAgIjAuMDUwNTk2LCAwLjE5OTA4MywgMC4zMjIzNSwgMC40Nzg1MiwgMC42MzUzMDksIDAuNzkzNDc0LCAwLjk1MDk5OSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzE1NzIsIDAuMTUxMDQzLCAwLjIxMzEsIDAuMjkwNTQ4LCAwLjM2Nzk4MiwgMC40NDU0NDYsIDAuNTIyODU4IiwgXAotICAgICAgICAgICIwLjA3OTIyMiwgMC4xNTg2NzUsIDAuMjIwNzMsIDAuMjk4MTc5LCAwLjM3NTYyLCAwLjQ1MzA5LCAwLjUzMDQ5IiwgXAotICAgICAgICAgICIwLjA4NTk5NiwgMC4xNjU0MTIsIDAuMjI3NDQ0LCAwLjMwNDkxMywgMC4zODIzNTUsIDAuNDU5NjY4LCAwLjUzNzIxNyIsIFwKLSAgICAgICAgICAiMC4wOTA3MjEsIDAuMTcwMTY0LCAwLjIzMjE5NiwgMC4zMDk2NzEsIDAuMzg3MTczLCAwLjQ2NDU3MiwgMC41NDE5ODIiLCBcCi0gICAgICAgICAgIjAuMDk0NTgzLCAwLjE3NDAzMSwgMC4yMzYwNjgsIDAuMzEzNTgzLCAwLjM5MDk4NywgMC40Njg0NTIsIDAuNTQ1ODM2IiwgXAotICAgICAgICAgICIwLjA5OTY3NSwgMC4xNzkxMDQsIDAuMjQxMTY0LCAwLjMxODYxMywgMC4zOTYxMDMsIDAuNDczNTI0LCAwLjU1MDkxIiwgXAotICAgICAgICAgICIwLjEwMzQxOSwgMC4xODI3OSwgMC4yNDQ4NDksIDAuMzIyMjYxLCAwLjM5OTczNSwgMC40NzcyNCwgMC41NTQ2MjQiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQ1Mjg1LCAwLjIwNTEyOCwgMC4zMzYwOTYsIDAuNTAwOTgzLCAwLjY2NjQ4OSwgMC44MzA5MjksIDAuOTk1OTQ4IiwgXAotICAgICAgICAgICIwLjA0NTI2NCwgMC4yMDUxMjcsIDAuMzM1OTUyLCAwLjUwMDk3NiwgMC42NjU4NzMsIDAuODMwNDMzLCAwLjk5NTkzNyIsIFwKLSAgICAgICAgICAiMC4wNDUyNzgsIDAuMjA1MTI4LCAwLjMzNjEsIDAuNTAwOTM5LCAwLjY2NTg5LCAwLjgzMDkwMSwgMC45OTY4NDciLCBcCi0gICAgICAgICAgIjAuMDQ1MzAyLCAwLjIwNTE0NiwgMC4zMzYwNjgsIDAuNTAxMDMyLCAwLjY2NTYwOSwgMC44MzE2NiwgMC45OTYwOTgiLCBcCi0gICAgICAgICAgIjAuMDQ1Mjk1LCAwLjIwNTEwOCwgMC4zMzY2MTcsIDAuNTAwNjgxLCAwLjY2NTQ1OSwgMC44MzA3NTIsIDAuOTk2MDI5IiwgXAotICAgICAgICAgICIwLjA0NTMyNCwgMC4yMDUxMzksIDAuMzM2MTA5LCAwLjUwMTM1OSwgMC42NjY0MjEsIDAuODMxNTk1LCAwLjk5NjAxNiIsIFwKLSAgICAgICAgICAiMC4wNDUzNzUsIDAuMjA1MDMsIDAuMzM1OTkzLCAwLjUwMTM1MSwgMC42NjU5MDIsIDAuODMxMTIsIDAuOTk2ODIzIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3NTQzNiwgMC4xNTQwNzUsIDAuMjE0NzczLCAwLjI5MDU3OCwgMC4zNjYzNSwgMC40NDIxNTQsIDAuNTE3ODU4IiwgXAotICAgICAgICAgICIwLjA4MzIyOSwgMC4xNjE4MzUsIDAuMjIyNTMzLCAwLjI5ODMzNCwgMC4zNzQxMTIsIDAuNDQ5ODk2LCAwLjUyNTY1NiIsIFwKLSAgICAgICAgICAiMC4wODk5ODMsIDAuMTY4NjA1LCAwLjIyOTI5NywgMC4zMDUwOTMsIDAuMzgwODcxLCAwLjQ1NjcsIDAuNTMyNDA5IiwgXAotICAgICAgICAgICIwLjA5NDgzOCwgMC4xNzM1MzEsIDAuMjM0MjIzLCAwLjMxMDAyMywgMC4zODU4MTksIDAuNDYxNTY2LCAwLjUzNzM0MyIsIFwKLSAgICAgICAgICAiMC4wOTg4NDksIDAuMTc3NTIzLCAwLjIzODIyOCwgMC4zMTM5OTMsIDAuMzg5Nzg3LCAwLjQ2NTYwNiwgMC41NDEzMjIiLCBcCi0gICAgICAgICAgIjAuMTA0MjM4LCAwLjE4Mjg4NSwgMC4yNDM2MTYsIDAuMzE5MzU4LCAwLjM5NTE2OCwgMC40NzA5MzUsIDAuNTQ2NjYiLCBcCi0gICAgICAgICAgIjAuMTA4MzAyLCAwLjE4NjkyNCwgMC4yNDc2MTcsIDAuMzIzMzUsIDAuMzk5MTk0LCAwLjQ3NDk0NywgMC41NTA3NDIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQ1MDYzLCAwLjE5NjgwMiwgMC4zMjE2NjQsIDAuNDc4MDY3LCAwLjYzNTEzNSwgMC43OTM1MSwgMC45NTA2MTgiLCBcCi0gICAgICAgICAgIjAuMDQ1MDYsIDAuMTk2NzM1LCAwLjMyMTYyNSwgMC40Nzg1NTksIDAuNjM1MTg2LCAwLjc5MjE0NSwgMC45NTA4ODQiLCBcCi0gICAgICAgICAgIjAuMDQ1MDE5LCAwLjE5NjgwNywgMC4zMjE2MzcsIDAuNDc4NTQ3LCAwLjYzNTE0MiwgMC43OTE2NDcsIDAuOTUwODQyIiwgXAotICAgICAgICAgICIwLjA0NTExOCwgMC4xOTY3MzgsIDAuMzIxNjE3LCAwLjQ3ODQ3OCwgMC42MzU5MTYsIDAuNzkzMTY5LCAwLjk1MDg3OSIsIFwKLSAgICAgICAgICAiMC4wNDUwMDgsIDAuMTk2ODA0LCAwLjMyMTczNiwgMC40Nzg0NzYsIDAuNjM1MTA4LCAwLjc5MTkwNCwgMC45NTA2OTUiLCBcCi0gICAgICAgICAgIjAuMDQ1MDI3LCAwLjE5NjgzNywgMC4zMjE2NzQsIDAuNDc3OTYyLCAwLjYzNTY4NiwgMC43OTM0MjIsIDAuOTUwNjU3IiwgXAotICAgICAgICAgICIwLjA0NTExNiwgMC4xOTY3NDMsIDAuMzIxNjQ4LCAwLjQ3ODU5NSwgMC42MzU4OCwgMC43OTIzOTksIDAuOTUwOTUzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1NDUxNiwgMC4xMzM5MjcsIDAuMTk1OTUzLCAwLjI3MzQzMSwgMC4zNTA5MTIsIDAuNDI4MzUsIDAuNTA1NzM5IiwgXAotICAgICAgICAgICIwLjA2MjA2MywgMC4xNDE0ODIsIDAuMjAzNTA2LCAwLjI4MDk4OSwgMC4zNTg0NDksIDAuNDM1OTY4LCAwLjUxMzI5OSIsIFwKLSAgICAgICAgICAiMC4wNzE1NzYsIDAuMTUxMDIxLCAwLjIxMzA0OSwgMC4yOTA1MjcsIDAuMzY4MDEsIDAuNDQ1NDU5LCAwLjUyMjkxIiwgXAotICAgICAgICAgICIwLjA3OTgsIDAuMTU5MzcyLCAwLjIyMTM5NiwgMC4yOTg4NjksIDAuMzc2MzcyLCAwLjQ1Mzc1LCAwLjUzMTI1IiwgXAotICAgICAgICAgICIwLjA4NjY0NCwgMC4xNjY0MjcsIDAuMjI4NDksIDAuMzA1OTMxLCAwLjM4MzQ4LCAwLjQ2MDg2OSwgMC41MzgyNTciLCBcCi0gICAgICAgICAgIjAuMDk1OTA0LCAwLjE3NTk0LCAwLjIzNzk5NiwgMC4zMTUzNzMsIDAuMzkyODgsIDAuNDcwMjc5LCAwLjU0Nzc3NiIsIFwKLSAgICAgICAgICAiMC4xMDI3LCAwLjE4MzEwMSwgMC4yNDUxMTUsIDAuMzIyNTY2LCAwLjQwMDA2NCwgMC40Nzc0NiwgMC41NTQ4MTkiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQ1MjMzLCAwLjIwNTEyLCAwLjMzNjA4MywgMC41MDEwMDgsIDAuNjY2NTE4LCAwLjgzMTY2NiwgMC45OTU5ODMiLCBcCi0gICAgICAgICAgIjAuMDQ1MjQyLCAwLjIwNTExMiwgMC4zMzY1ODYsIDAuNTAwOTczLCAwLjY2NTgxMSwgMC44MzA1NzIsIDAuOTk2ODYyIiwgXAotICAgICAgICAgICIwLjA0NTUxNywgMC4yMDUxNTksIDAuMzM2NjA4LCAwLjUwMDkzMywgMC42NjU3ODIsIDAuODMxNjY2LCAwLjk5Njg3MyIsIFwKLSAgICAgICAgICAiMC4wNDY3MDksIDAuMjA1Mzc4LCAwLjMzNjY3MSwgMC41MDEwMiwgMC42NjU2MTYsIDAuODMxNjI3LCAwLjk5NjgwNSIsIFwKLSAgICAgICAgICAiMC4wNDgxMDQsIDAuMjA1NjM2LCAwLjMzNjgwOCwgMC41MDA5NjksIDAuNjY1NjU4LCAwLjgzMTU5NSwgMC45OTYxNzciLCBcCi0gICAgICAgICAgIjAuMDUwMDI2LCAwLjIwNjMyLCAwLjMzNjk5OCwgMC41MDE1NjcsIDAuNjY1Njk0LCAwLjgzMTYzNywgMC45OTU5NzMiLCBcCi0gICAgICAgICAgIjAuMDUxOCwgMC4yMDY3NDMsIDAuMzM3MDIsIDAuNTAxMDc2LCAwLjY2NTU5NywgMC44MzEyMTUsIDAuOTk2MTQiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU0NzY3LCAwLjEzMzkxMSwgMC4xOTQ1NzUsIDAuMjcwMzcxLCAwLjM0NjEyMSwgMC40MjE5MTgsIDAuNDk3ODEzIiwgXAotICAgICAgICAgICIwLjA2MjExNCwgMC4xNDEyODgsIDAuMjAxOTUyLCAwLjI3NzcyOCwgMC4zNTM0OTYsIDAuNDI5MzMyLCAwLjUwNTA1NCIsIFwKLSAgICAgICAgICAiMC4wNzA5NjcsIDAuMTUwMTA0LCAwLjIxMDc4LCAwLjI4NjU1NywgMC4zNjIzMzEsIDAuNDM4MTgzLCAwLjUxMzg4MSIsIFwKLSAgICAgICAgICAiMC4wNzg0NTIsIDAuMTU3NzQyLCAwLjIxODQxNSwgMC4yOTQxNzYsIDAuMzY5OTM2LCAwLjQ0NTc3OCwgMC41MjE0OTEiLCBcCi0gICAgICAgICAgIjAuMDg0NjgsIDAuMTY0MTg5LCAwLjIyNDgxOCwgMC4zMDA1OSwgMC4zNzYzMzMsIDAuNDUyMjM4LCAwLjUyNzk2NSIsIFwKLSAgICAgICAgICAiMC4wOTMxNDEsIDAuMTczMDA3LCAwLjIzMzY0NCwgMC4zMDkzMzQsIDAuMzg1MTQ1LCAwLjQ2MDkzNywgMC41MzY2MTgiLCBcCi0gICAgICAgICAgIjAuMDk5NDksIDAuMTc5NjAxLCAwLjI0MDI2MywgMC4zMTYwMDksIDAuMzkxNzMzLCAwLjQ2NzQ4MiwgMC41NDMyNiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDU2MzMsIDAuMTk3MjY0LCAwLjMyMTg3NywgMC40Nzg3MzIsIDAuNjM1MTI0LCAwLjc5MTgwNiwgMC45NDkxNzUiLCBcCi0gICAgICAgICAgIjAuMDQ1NTYsIDAuMTk3MjUyLCAwLjMyMTg4MSwgMC40Nzg2MTgsIDAuNjM1MDYzLCAwLjc5MTcxLCAwLjk1MDY0NyIsIFwKLSAgICAgICAgICAiMC4wNDU3NDUsIDAuMTk3MzM5LCAwLjMyMTg5NywgMC40Nzg2MjIsIDAuNjM1OTIzLCAwLjc5MTU4NywgMC45NTA2MjgiLCBcCi0gICAgICAgICAgIjAuMDQ2Njk4LCAwLjE5NzUxMiwgMC4zMjIwNjIsIDAuNDc4NjcxLCAwLjYzNTczNiwgMC43OTE3MDksIDAuOTUwNjI3IiwgXAotICAgICAgICAgICIwLjA0Nzg5NiwgMC4xOTc4ODEsIDAuMzIxOTA2LCAwLjQ3Nzk0MywgMC42MzU4NjksIDAuNzkyMDYxLCAwLjk0ODk0MSIsIFwKLSAgICAgICAgICAiMC4wNDk3MTQsIDAuMTk4NTU1LCAwLjMyMjM1NiwgMC40Nzg5MjgsIDAuNjM2MTEzLCAwLjc5MTc2NiwgMC45NTA2MzUiLCBcCi0gICAgICAgICAgIjAuMDUxMDU0LCAwLjE5OTAwNiwgMC4zMjI4MTYsIDAuNDc5MTQ1LCAwLjYzNjAyOCwgMC43OTMzNjgsIDAuOTUxMDIxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1NDQyNCwgMC4xMzQyMDQsIDAuMTk2MTg3LCAwLjI3MzYzLCAwLjM1MTA4NSwgMC40Mjg3NiwgMC41MDYyIiwgXAotICAgICAgICAgICIwLjA2MjUwNywgMC4xNDIyODYsIDAuMjA0Mjg0LCAwLjI4MTczOCwgMC4zNTkyNDgsIDAuNDM2Njk4LCAwLjUxNDQyMiIsIFwKLSAgICAgICAgICAiMC4wNzA0MjEsIDAuMTUwMTY4LCAwLjIxMjE2NCwgMC4yODk2LCAwLjM2NzE0MiwgMC40NDQ1NzMsIDAuNTIyMTEiLCBcCi0gICAgICAgICAgIjAuMDc1MzgxLCAwLjE1NTA3MywgMC4yMTcwODcsIDAuMjk0NTEsIDAuMzcyMDUzLCAwLjQ0OTQ4NSwgMC41MjcwMDgiLCBcCi0gICAgICAgICAgIjAuMDc5MjksIDAuMTU4ODE5LCAwLjIyMDc5MSwgMC4yOTgzNzcsIDAuMzc1ODAyLCAwLjQ1MzQxNSwgMC41MzA4NTkiLCBcCi0gICAgICAgICAgIjAuMDg0MTg2LCAwLjE2MzY5MSwgMC4yMjU3MDMsIDAuMzAzMjgxLCAwLjM4MDYyNCwgMC40NTgzMTYsIDAuNTM1NTU5IiwgXAotICAgICAgICAgICIwLjA4NzcyMiwgMC4xNjczMTIsIDAuMjI5MjE3LCAwLjMwNjcyNSwgMC4zODQxMTksIDAuNDYxNjQ2LCAwLjUzOTA1Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0NTg3LCAwLjIwNTUzNCwgMC4zMzY2NDQsIDAuNTAxMzUxLCAwLjY2NjU5NiwgMC44MzA2NDQsIDAuOTk1NjQ4IiwgXAotICAgICAgICAgICIwLjA0NTgwNywgMC4yMDU1MywgMC4zMzY2ODMsIDAuNTAxNDg5LCAwLjY2NTQyOCwgMC44MzEwMjgsIDAuOTk1Njc1IiwgXAotICAgICAgICAgICIwLjA0NTcsIDAuMjA1NTA2LCAwLjMzNjIxMiwgMC41MDA4MzEsIDAuNjY1MzI3LCAwLjgzMDk1OSwgMC45OTUxMzEiLCBcCi0gICAgICAgICAgIjAuMDQ1NjA5LCAwLjIwNTQyOSwgMC4zMzY1NzcsIDAuNTAwODc2LCAwLjY2NTI5NiwgMC44MzA5ODIsIDAuOTk1MTI5IiwgXAotICAgICAgICAgICIwLjA0NTY5NSwgMC4yMDUzNDcsIDAuMzM2NDEzLCAwLjUwMDU4MSwgMC42NjU3NywgMC44MzA4MDMsIDAuOTk1MTM0IiwgXAotICAgICAgICAgICIwLjA0NTc0NCwgMC4yMDUzMTgsIDAuMzM2MTg2LCAwLjUwMDYyMSwgMC42NjU0MywgMC44MzA2MTYsIDAuOTk1MzY3IiwgXAotICAgICAgICAgICIwLjA0NTgxMiwgMC4yMDUwOTEsIDAuMzM2MDExLCAwLjUwMDMzNSwgMC42NjU1ODEsIDAuODMwMjQsIDAuOTk2Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2ODg3MywgMC4xNDc1MzYsIDAuMjA4MjMyLCAwLjI4NDAzMiwgMC4zNTk4MDgsIDAuNDM1NTg4LCAwLjUxMTM1NiIsIFwKLSAgICAgICAgICAiMC4wNzYxODQsIDAuMTU0ODIyLCAwLjIxNTUyLCAwLjI5MTM0NSwgMC4zNjcwOTcsIDAuNDQyOTA0LCAwLjUxODYzNCIsIFwKLSAgICAgICAgICAiMC4wODIxMDEsIDAuMTYwNzUsIDAuMjIxNDM4LCAwLjI5NzIzNSwgMC4zNzMwMTUsIDAuNDQ4ODQ3LCAwLjUyNDU1MiIsIFwKLSAgICAgICAgICAiMC4wODYyOTksIDAuMTY1MDUxLCAwLjIyNTc0NiwgMC4zMDE1MzcsIDAuMzc3MzEzLCAwLjQ1MzEwNSwgMC41Mjg4NTQiLCBcCi0gICAgICAgICAgIjAuMDg5NzY0LCAwLjE2ODQ5OCwgMC4yMjkxOTUsIDAuMzA0OTkzLCAwLjM4MDc2MiwgMC40NTY1MjgsIDAuNTMyMzEzIiwgXAotICAgICAgICAgICIwLjA5NDQ4LCAwLjE3MzE3OCwgMC4yMzM4OTUsIDAuMzA5NjksIDAuMzg1NDY0LCAwLjQ2MTIyOCwgMC41MzY5NzUiLCBcCi0gICAgICAgICAgIjAuMDk4MTE1LCAwLjE3Njc4OCwgMC4yMzc1MTUsIDAuMzEzMzEzLCAwLjM4OTA2NiwgMC40NjQ4MTUsIDAuNTQwNjA3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0NTA0LCAwLjE5NjgwMSwgMC4zMjE2NCwgMC40Nzg1NzYsIDAuNjM1MjA4LCAwLjc5MTg0MSwgMC45NTA5MzMiLCBcCi0gICAgICAgICAgIjAuMDQ1MDM3LCAwLjE5Njc5NSwgMC4zMjE2NTQsIDAuNDc4NjQ5LCAwLjYzNTE0LCAwLjc5MzQ3NCwgMC45NDkyMTQiLCBcCi0gICAgICAgICAgIjAuMDQ1MDEsIDAuMTk2NjYyLCAwLjMyMTYwNCwgMC40Nzg0NjksIDAuNjM1MTA1LCAwLjc5MTkzNiwgMC45NTA4MzYiLCBcCi0gICAgICAgICAgIjAuMDQ0OTQ4LCAwLjE5Njc2MiwgMC4zMjEyODEsIDAuNDc4NDc2LCAwLjYzNTA4NywgMC43OTIxMzIsIDAuOTUwNjk2IiwgXAotICAgICAgICAgICIwLjA0NDkwOCwgMC4xOTY4MTksIDAuMzIxNjMxLCAwLjQ3ODQ4OSwgMC42MzU2NywgMC43OTIzNzUsIDAuOTQ5NjA0IiwgXAotICAgICAgICAgICIwLjA0NDg5MywgMC4xOTY2NTgsIDAuMzIxMzMzLCAwLjQ3ODA2NywgMC42MzU0NSwgMC43OTI0NTcsIDAuOTQ5NzQxIiwgXAotICAgICAgICAgICIwLjA0NDk3NiwgMC4xOTY2NTgsIDAuMzIxMDQ1LCAwLjQ3Nzk0NSwgMC42MzUwMDksIDAuNzkyMTIzLCAwLjk0OTQ0MSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNTU2NywgMC4wMDU2MzEsIDAuMDA1NjQxLCAwLjAwNTY0NywgMC4wMDU2NSwgMC4wMDU2NTEsIDAuMDA1NjUyIiwgXAotICAgICAgICAgICIwLjAwNTU2NiwgMC4wMDU2MywgMC4wMDU2NDIsIDAuMDA1NjQ2LCAwLjAwNTY0OSwgMC4wMDU2NTEsIDAuMDA1NjUzIiwgXAotICAgICAgICAgICIwLjAwNTYzMywgMC4wMDU2OTYsIDAuMDA1NzA3LCAwLjAwNTcxMiwgMC4wMDU3MTcsIDAuMDA1NzE3LCAwLjAwNTcxOSIsIFwKLSAgICAgICAgICAiMC4wMDU3MzksIDAuMDA1Nzk1LCAwLjAwNTc5OSwgMC4wMDU4MDksIDAuMDA1ODExLCAwLjAwNTgwOCwgMC4wMDU4MTUiLCBcCi0gICAgICAgICAgIjAuMDA1ODU4LCAwLjAwNTkxLCAwLjAwNTkxNywgMC4wMDU5MjMsIDAuMDA1OTI2LCAwLjAwNTkyNiwgMC4wMDU5MjMiLCBcCi0gICAgICAgICAgIjAuMDA2MDYyLCAwLjAwNjExMywgMC4wMDYxMjEsIDAuMDA2MTI0LCAwLjAwNjEyNiwgMC4wMDYxMywgMC4wMDYxMjgiLCBcCi0gICAgICAgICAgIjAuMDA2MjU0LCAwLjAwNjI5MywgMC4wMDYzMSwgMC4wMDYyOTksIDAuMDA2MzAzLCAwLjAwNjMxNCwgMC4wMDYzMDEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDUyNzEsIDAuMDA1MzQ2LCAwLjAwNTM2LCAwLjAwNTM2NywgMC4wMDUzNzEsIDAuMDA1MzczLCAwLjAwNTM3NSIsIFwKLSAgICAgICAgICAiMC4wMDUyNzQsIDAuMDA1MzQ5LCAwLjAwNTM2MiwgMC4wMDUzNywgMC4wMDUzNzQsIDAuMDA1Mzc2LCAwLjAwNTM3OCIsIFwKLSAgICAgICAgICAiMC4wMDUzMzYsIDAuMDA1NDEzLCAwLjAwNTQyNywgMC4wMDU0MzQsIDAuMDA1NDM4LCAwLjAwNTQ0MSwgMC4wMDU0NDMiLCBcCi0gICAgICAgICAgIjAuMDA1NDM5LCAwLjAwNTUxNiwgMC4wMDU1MjgsIDAuMDA1NTM1LCAwLjAwNTUzOSwgMC4wMDU1NDIsIDAuMDA1NTQzIiwgXAotICAgICAgICAgICIwLjAwNTU1OSwgMC4wMDU2MzUsIDAuMDA1NjQ4LCAwLjAwNTY0NywgMC4wMDU2NTgsIDAuMDA1NjUzLCAwLjAwNTY2MSIsIFwKLSAgICAgICAgICAiMC4wMDU3NzYsIDAuMDA1ODMzLCAwLjAwNTg1MywgMC4wMDU4NDksIDAuMDA1ODYyLCAwLjAwNTg1NCwgMC4wMDU4NTUiLCBcCi0gICAgICAgICAgIjAuMDA1OTc1LCAwLjAwNjA0LCAwLjAwNjA1LCAwLjAwNjA0MywgMC4wMDYwNTgsIDAuMDA2MDU5LCAwLjAwNjA2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzMDM1LCAwLjAwMzA5MywgMC4wMDMxMDIsIDAuMDAzMTA1LCAwLjAwMzEwOSwgMC4wMDMxMTIsIDAuMDAzMTEiLCBcCi0gICAgICAgICAgIjAuMDAzMDQ5LCAwLjAwMzExNSwgMC4wMDMxMjUsIDAuMDAzMTMxLCAwLjAwMzEzNSwgMC4wMDMxMzYsIDAuMDAzMTM3IiwgXAotICAgICAgICAgICIwLjAwMzE1NiwgMC4wMDMyMTEsIDAuMDAzMjIxLCAwLjAwMzIzMSwgMC4wMDMyMzUsIDAuMDAzMjM3LCAwLjAwMzIzOSIsIFwKLSAgICAgICAgICAiMC4wMDMzNTEsIDAuMDAzMzg2LCAwLjAwMzM5OSwgMC4wMDM0MDYsIDAuMDAzNDEsIDAuMDAzNDEzLCAwLjAwMzQxMyIsIFwKLSAgICAgICAgICAiMC4wMDM1OTcsIDAuMDAzNjEsIDAuMDAzNTk1LCAwLjAwMzYwNSwgMC4wMDM2MTEsIDAuMDAzNjEyLCAwLjAwMzYxNSIsIFwKLSAgICAgICAgICAiMC4wMDM5NywgMC4wMDM5NjcsIDAuMDAzOTYyLCAwLjAwMzk4MywgMC4wMDM5ODksIDAuMDAzOTkyLCAwLjAwMzk3NiIsIFwKLSAgICAgICAgICAiMC4wMDQzMzYsIDAuMDA0MzE1LCAwLjAwNDI5NCwgMC4wMDQzMjksIDAuMDA0MzMzLCAwLjAwNDMwNiwgMC4wMDQzMzkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQ1MjQsIDAuMDA0NTk4LCAwLjAwNDYxMSwgMC4wMDQ2MTgsIDAuMDA0NjIzLCAwLjAwNDYyNSwgMC4wMDQ2MjciLCBcCi0gICAgICAgICAgIjAuMDA0NTQ2LCAwLjAwNDYyLCAwLjAwNDYzMywgMC4wMDQ2NCwgMC4wMDQ2NDQsIDAuMDA0NjQ3LCAwLjAwNDY0OCIsIFwKLSAgICAgICAgICAiMC4wMDQ2NDUsIDAuMDA0NzE1LCAwLjAwNDcyOCwgMC4wMDQ3MzUsIDAuMDA0NzM5LCAwLjAwNDc0MSwgMC4wMDQ3NDMiLCBcCi0gICAgICAgICAgIjAuMDA0NzYsIDAuMDA0ODM2LCAwLjAwNDg1LCAwLjAwNDg1NywgMC4wMDQ4NjEsIDAuMDA0ODY0LCAwLjAwNDg2NSIsIFwKLSAgICAgICAgICAiMC4wMDQ4OTcsIDAuMDA0OTY4LCAwLjAwNDk4MiwgMC4wMDQ5ODksIDAuMDA0OTkzLCAwLjAwNDk5NiwgMC4wMDQ5OTciLCBcCi0gICAgICAgICAgIjAuMDA1MTIsIDAuMDA1MTkxLCAwLjAwNTIwNiwgMC4wMDUyMTIsIDAuMDA1MjE4LCAwLjAwNTIxOSwgMC4wMDUyMjEiLCBcCi0gICAgICAgICAgIjAuMDA1MzI0LCAwLjAwNTM5NSwgMC4wMDU0MDgsIDAuMDA1NDE1LCAwLjAwNTQyMSwgMC4wMDU0MjMsIDAuMDA1NDI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IERGRk5TUlgxICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChERkZOU1JYMSkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAxLjExODcyOwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIGZmIChOMzUsUUJJTlQpIHsKLSAgICBuZXh0X3N0YXRlIDogIkQiOwotICAgIGNsb2NrZWRfb24gOiAiKCFDS04pIjsKLSAgICBjbGVhciA6ICIoIVJOKSI7Ci0gICAgcHJlc2V0IDogIighU04pIjsKLSAgICBjbGVhcl9wcmVzZXRfdmFyMSA6IEg7Ci0gICAgY2xlYXJfcHJlc2V0X3ZhcjIgOiBMOwotICB9Ci0gIHBpbihDS04pICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY1MTA0NjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2NTEwNDY7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjUwOTE0OwotICAgIGNsb2NrIDogdHJ1ZTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDgwNTMsIDAuMDA4MDU3LCAwLjAwODEwNywgMC4wMDgyMTIsIDAuMDA4MzIzLCAwLjAwODU0LCAwLjAwODczOSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNDM3MywgMC4wMDQzNjgsIDAuMDA0NDUzLCAwLjAwNDUzLCAwLjAwNDY1MywgMC4wMDQ4OTcsIDAuMDA1MTAyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQmUk4mU04iOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1JOX0VRXzFfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjA4MDkzNCwgMC4wODkxMjIsIDAuMDk3OTEzLCAwLjEwNDQ4NCwgMC4xMDk4MjUsIDAuMTE2ODMyLCAwLjEyMjAwNCIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMTE1MTUsIDAuMTIzMTIzLCAwLjEzMTcxOCwgMC4xMzg0NSwgMC4xNDM2NTcsIDAuMTUwNTksIDAuMTU1NjQiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEQpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY2MjU5MjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2NjEzMTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2NjI1OTI7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzMjg5LCAwLjAwMzI2LCAwLjAwMzI4LCAwLjAwMzMyNywgMC4wMDMzOTUsIDAuMDAzNTM2LCAwLjAwMzY3NCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzY1NiwgMC4wMDM2MzUsIDAuMDAzNjUzLCAwLjAwMzY5NywgMC4wMDM3NjksIDAuMDAzODg2LCAwLjAwNDAzNyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDS04iOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX2ZhbGxpbmc7Ci0gICAgICB3aGVuIDogIlJOJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIlJOX0VRXzFfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxODc1LCAwLjAyMzc1LCAwLjAzLCAwLjAzNjI1LCAwLjA0MjUsIDAuMDQ2MjUsIDAuMDU1IiwgXAotICAgICAgICAgICIwLjAwNzUsIDAuMDE4NzUsIDAuMDI1LCAwLjAzMTI1LCAwLjAzNzUsIDAuMDQxMjUsIDAuMDUiLCBcCi0gICAgICAgICAgIjAuMDA3NSwgMC4wMTI1LCAwLjAxODc1LCAwLjAyNSwgMC4wMzEyNSwgMC4wNDEyNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4wMDEyNSwgMC4wMTI1LCAwLjAxODc1LCAwLjAyNSwgMC4wMzEyNSwgMC4wMzUsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiMC4wMDEyNSwgMC4wMDYyNSwgMC4wMTg3NSwgMC4wMjUsIDAuMDI1LCAwLjAzNSwgMC4wMzc1IiwgXAotICAgICAgICAgICItMC4wMDI1LCAwLjAwMjUsIDAuMDE1LCAwLjAyMTI1LCAwLjAyMTI1LCAwLjAzMTI1LCAwLjAzMzc1IiwgXAotICAgICAgICAgICItMC4wMDUsIDAsIDAuMDEyNSwgMC4wMTg3NSwgMC4wMjUsIDAuMDI4NzUsIDAuMDMxMjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMTI1LCAtMC4wMDc1LCAtMC4wMDEyNSwgLTAuMDAxMjUsIC0wLjAwMTI1LCAwLjAwMjUsIDAuMDA1IiwgXAotICAgICAgICAgICItMC4wMTc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgLTAuMDA2MjUsIC0wLjAwNjI1LCAtMC4wMDI1LCAwIiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAxMjUsIC0wLjAxMjUsIC0wLjAwODc1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAxODc1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDEyNSwgLTAuMDA4NzUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDE4NzUsIC0wLjAxODc1LCAtMC4wMTUsIC0wLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjAzMzc1LCAtMC4wMjg3NSwgLTAuMDIyNSwgLTAuMDIyNSwgLTAuMDIyNSwgLTAuMDE4NzUsIC0wLjAxNjI1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDMxMjUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAyNSwgLTAuMDIxMjUsIC0wLjAxODc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX2ZhbGxpbmc7Ci0gICAgICB3aGVuIDogIlJOJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIlJOX0VRXzFfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzEyNSwgMC4wMjYyNSwgMC4wMTM3NSwgMC4wMTM3NSwgMC4wMDc1LCAtMC4wMDI1LCAtMC4wMDUiLCBcCi0gICAgICAgICAgIjAuMDQyNSwgMC4wMzEyNSwgMC4wMjUsIDAuMDE4NzUsIDAuMDEyNSwgMC4wMDI1LCAwIiwgXAotICAgICAgICAgICIwLjA0ODc1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDI1LCAwLjAxODc1LCAwLjAwODc1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICIwLjA0ODc1LCAwLjA0Mzc1LCAwLjAzMTI1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMTUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4wNTUsIDAuMDUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMjUsIDAuMDIxMjUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMDY1LCAwLjA1Mzc1LCAwLjA0NzUsIDAuMDQxMjUsIDAuMDM1LCAwLjAyNSwgMC4wMjI1IiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDU2MjUsIDAuMDUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzM3NSwgMC4wMjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNSwgMC4wMzg3NSwgMC4wMzI1LCAwLjAyNjI1LCAwLjAyLCAwLjAxNjI1LCAwLjAxMzc1IiwgXAotICAgICAgICAgICIwLjA1NSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMjEyNSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4wNjEyNSwgMC4wNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyNzUsIDAuMDI1IiwgXAotICAgICAgICAgICIwLjA2MTI1LCAwLjA1NjI1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDM3NSwgMC4wMzM3NSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4wNjc1LCAwLjA1NjI1LCAwLjA1LCAwLjA0Mzc1LCAwLjA0Mzc1LCAwLjAzMzc1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICIwLjA3MTI1LCAwLjA2NjI1LCAwLjA1Mzc1LCAwLjA0NzUsIDAuMDQ3NSwgMC4wNDM3NSwgMC4wNDEyNSIsIFwKLSAgICAgICAgICAiMC4wOCwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1LCAwLjA0NjI1LCAwLjA0Mzc1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihRKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMzQwNjUzOwotICAgIGZ1bmN0aW9uIDogIk4zNSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0tOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5vbl91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogZmFsbGluZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTg0ODYsIDAuMTM3MjcsIDAuMjQyNzM2LCAwLjMzNTg2MywgMC40NTk5MzMsIDAuNzA4MTQ0LCAwLjg2MzQ0OSIsIFwKLSAgICAgICAgICAiMC4xMjY0OTgsIDAuMTQ1Mjg4LCAwLjI1MDc0MiwgMC4zNDM4MDksIDAuNDY3OTc3LCAwLjcxNjI3MywgMC44NzEzNDYiLCBcCi0gICAgICAgICAgIjAuMTM1MTIzLCAwLjE1Mzg3LCAwLjI1OTM5MywgMC4zNTI1MTMsIDAuNDc2NTYyLCAwLjcyNTAxMSwgMC44ODAwNTQiLCBcCi0gICAgICAgICAgIjAuMTQxNjE2LCAwLjE2MDM4MSwgMC4yNjU4NywgMC4zNTg5ODgsIDAuNDgzMDk4LCAwLjczMTQ3LCAwLjg4NjUxNyIsIFwKLSAgICAgICAgICAiMC4xNDY4ODgsIDAuMTY1NjQ0LCAwLjI3MTEzOSwgMC4zNjQyNTgsIDAuNDg4MzQ5LCAwLjczNjczNywgMC44OTE3ODQiLCBcCi0gICAgICAgICAgIjAuMTUzNzcsIDAuMTcyNDk0LCAwLjI3ODAwNywgMC4zNzExMjQsIDAuNDk1MjQzLCAwLjc0MzU0NCwgMC44OTg2MDIiLCBcCi0gICAgICAgICAgIjAuMTU4NzcxLCAwLjE3NzQ3OCwgMC4yODMwOTUsIDAuMzc2MTY1LCAwLjUwMDI2MywgMC43NDg5NTksIDAuOTAzNzYxIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3MzYxNSwgMC4xMTE2MjcsIDAuMzMyMDM5LCAwLjUyODc2MywgMC43ODg4MjMsIDEuMzExNDIsIDEuNjM3MzciLCBcCi0gICAgICAgICAgIjAuMDczNjY0LCAwLjExMTU1NCwgMC4zMzE4NDYsIDAuNTI3ODU3LCAwLjc5MDYxNiwgMS4zMTA2NSwgMS42MzY4NCIsIFwKLSAgICAgICAgICAiMC4wNzM1MywgMC4xMTE1NjQsIDAuMzMyMDgzLCAwLjUyODUxMywgMC43ODg3NjEsIDEuMzEyLCAxLjYzOTg2IiwgXAotICAgICAgICAgICIwLjA3MzYzNiwgMC4xMTE1MzQsIDAuMzMyMTE5LCAwLjUyODUwMywgMC43OTA2MDMsIDEuMzEyMTEsIDEuNjM5ODYiLCBcCi0gICAgICAgICAgIjAuMDczNjI4LCAwLjExMTU2NCwgMC4zMzIxNTQsIDAuNTI4ODE2LCAwLjc4OTkzNCwgMS4zMTIxMywgMS42Mzk2OSIsIFwKLSAgICAgICAgICAiMC4wNzM2NDUsIDAuMTExNTQxLCAwLjMzMTg1OSwgMC41Mjg3NzUsIDAuNzkwNTQ5LCAxLjMxMjIsIDEuNjM4NCIsIFwKLSAgICAgICAgICAiMC4wNzM4NDcsIDAuMTExNTIxLCAwLjMzMjM1MiwgMC41Mjg3NTgsIDAuNzkwNTQ1LCAxLjMxNDEyLCAxLjYzOSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDY3NTIsIDAuMTI0OTg0LCAwLjIyNzkzOSwgMC4zMTg0MTIsIDAuNDM5MjA5LCAwLjY4MDI2NiwgMC44MzE5MzUiLCBcCi0gICAgICAgICAgIjAuMTE0NzI5LCAwLjEzMjk1NywgMC4yMzU4NjksIDAuMzI2Mzc1LCAwLjQ0NzE0MiwgMC42ODgzNjgsIDAuODM5ODU3IiwgXAotICAgICAgICAgICIwLjEyMzI5NCwgMC4xNDE2MDYsIDAuMjQ0NDI1LCAwLjMzNDkzLCAwLjQ1NTQ1MiwgMC42OTc1MDYsIDAuODQ4NDQ1IiwgXAotICAgICAgICAgICIwLjEzMDA0MywgMC4xNDgyNiwgMC4yNTExNTksIDAuMzQxNiwgMC40NjIxMjksIDAuNzA0MjExLCAwLjg1NDUyIiwgXAotICAgICAgICAgICIwLjEzNTIzMiwgMC4xNTM1MTMsIDAuMjU2MzQ1LCAwLjM0NjU3NCwgMC40NjcyOTksIDAuNzA5NDI0LCAwLjg2MDI2OSIsIFwKLSAgICAgICAgICAiMC4xNDIxNzIsIDAuMTYwNTUsIDAuMjYzMTI2LCAwLjM1MzY5OSwgMC40NzQyNzYsIDAuNzE2Mzg2LCAwLjg2Njk2IiwgXAotICAgICAgICAgICIwLjE0NzIxNywgMC4xNjU1MjIsIDAuMjY4MTgsIDAuMzU5MDg4LCAwLjQ3OTQ0MSwgMC43MjE0MTcsIDAuODcxNTciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDcwNDk1LCAwLjEwNjE2NCwgMC4zMTYwNDksIDAuNTAyMzg3LCAwLjc1MTM3NCwgMS4yNDc0MiwgMS41NTg2MiIsIFwKLSAgICAgICAgICAiMC4wNzA1MTEsIDAuMTA2MTY5LCAwLjMxNTk1MywgMC41MDI0MTIsIDAuNzUxMzUxLCAxLjI0ODI1LCAxLjU1NTY5IiwgXAotICAgICAgICAgICIwLjA3MDQ5NCwgMC4xMDYzNDYsIDAuMzE1ODgzLCAwLjUwMjQ0NSwgMC43NTA4MDUsIDEuMjQ3MjgsIDEuNTU2MjgiLCBcCi0gICAgICAgICAgIjAuMDcwMTE2LCAwLjEwNjc2MywgMC4zMTU4NjEsIDAuNTAyNTE4LCAwLjc1MDQ1MywgMS4yNDYsIDEuNTYwMjgiLCBcCi0gICAgICAgICAgIjAuMDcwNjM5LCAwLjEwNjI1OSwgMC4zMTU4NjEsIDAuNTAxNDExLCAwLjc1MDg5NywgMS4yNDY3MiwgMS41NjA2MiIsIFwKLSAgICAgICAgICAiMC4wNzAzNTcsIDAuMTA2Nzg0LCAwLjMxNjM1OSwgMC41MDI2MDYsIDAuNzUwNDc2LCAxLjI0NzkyLCAxLjU2MDI0IiwgXAotICAgICAgICAgICIwLjA3MDQ0NiwgMC4xMDY3MDksIDAuMzE2Mjg5LCAwLjUwMjQyNywgMC43NTEwOSwgMS4yNDY3OCwgMS41NTgwOCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogY2xlYXI7Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEzNjUzNywgMC4xNTQ3ODIsIDAuMjU3NDUzLCAwLjM0Nzc1NiwgMC40NjgzMywgMC43MTAzOSwgMC44NjExNDMiLCBcCi0gICAgICAgICAgIjAuMTQ0NDM3LCAwLjE2MjY3NSwgMC4yNjUzNTMsIDAuMzU1OTYzLCAwLjQ3NjM1OSwgMC43MTgzMjUsIDAuODY4NTk2IiwgXAotICAgICAgICAgICIwLjE1MjQ4OSwgMC4xNzA3NDgsIDAuMjczNDI3LCAwLjM2Mzc0MSwgMC40ODQzMDIsIDAuNzI2MzU1LCAwLjg3NjUxMSIsIFwKLSAgICAgICAgICAiMC4xNTgzOTYsIDAuMTc2NjExLCAwLjI3OTMyOCwgMC4zNjk2MjUsIDAuNDkwMTY4LCAwLjczMjI1MiwgMC44ODI3NjQiLCBcCi0gICAgICAgICAgIjAuMTYzMTEsIDAuMTgxMzE4LCAwLjI4NDA0LCAwLjM3NDc1NywgMC40OTQ5MjUsIDAuNzM2OTM2LCAwLjg4NzY2MSIsIFwKLSAgICAgICAgICAiMC4xNjk0MjksIDAuMTg3NjgzLCAwLjI5MDM2MywgMC4zODA0OTMsIDAuNTAxMjczLCAwLjc0MjQxNSwgMC44OTM0NTkiLCBcCi0gICAgICAgICAgIjAuMTc0MDA3LCAwLjE5MjM5NCwgMC4yOTQ5ODQsIDAuMzg1NDE0LCAwLjUwNjAyMywgMC43NDgwNDQsIDAuODk4NTI3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3MDYzOCwgMC4xMDY4MDEsIDAuMzE2MTI3LCAwLjUwMjY0MSwgMC43NTEwOTIsIDEuMjQ5NDMsIDEuNTYwNTIiLCBcCi0gICAgICAgICAgIjAuMDcwNTkyLCAwLjEwNjgwMSwgMC4zMTYxMjgsIDAuNTAyNjYsIDAuNzUxMzg2LCAxLjI0OTQsIDEuNTU4OTgiLCBcCi0gICAgICAgICAgIjAuMDcwMjk3LCAwLjEwNjc5NiwgMC4zMTYwNjgsIDAuNTAyNjM4LCAwLjc1MTA5NCwgMS4yNDcxMywgMS41NTc0MiIsIFwKLSAgICAgICAgICAiMC4wNzA3NzksIDAuMTA2MzQ1LCAwLjMxNjExLCAwLjUwMjYxNiwgMC43NTEzLCAxLjI0NjM2LCAxLjU2MDMxIiwgXAotICAgICAgICAgICIwLjA3MDYzNywgMC4xMDY2OTcsIDAuMzE2MDcxLCAwLjUwMjU5MSwgMC43NTEyNjcsIDEuMjQ3MywgMS41NjA0OCIsIFwKLSAgICAgICAgICAiMC4wNzA2NTgsIDAuMTA2NzAzLCAwLjMxNjExNiwgMC41MDI1NzksIDAuNzUxMDMsIDEuMjQ2MjcsIDEuNTU4OTEiLCBcCi0gICAgICAgICAgIjAuMDcwNzQ4LCAwLjEwNjkxMywgMC4zMTYxODcsIDAuNTAyNjE3LCAwLjc1MTA2NiwgMS4yNDg5MiwgMS41NjAzOCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcHJlc2V0OwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDQxNjcsIDAuMTIyOTkxLCAwLjIyODUzNCwgMC4zMjE1MTMsIDAuNDQ1NjcxLCAwLjY5MzgyMywgMC44NDkwMjIiLCBcCi0gICAgICAgICAgIjAuMTEwODY2LCAwLjEyOTY2OCwgMC4yMzUyMzksIDAuMzI4MjIsIDAuNDUyMzY0LCAwLjcwMDU0MywgMC44NTU3MzciLCBcCi0gICAgICAgICAgIjAuMTE5MDMxLCAwLjEzNzc4OCwgMC4yNDMzNzEsIDAuMzM2MzYsIDAuNDYwNDMsIDAuNzA5MjM0LCAwLjg2NDY1IiwgXAotICAgICAgICAgICIwLjEyNzc1OSwgMC4xNDY1MDMsIDAuMjUyMSwgMC4zNDUwODksIDAuNDY5MTc1LCAwLjcxNzk2OCwgMC44NzI2MjIiLCBcCi0gICAgICAgICAgIjAuMTM1MDY1LCAwLjE1Mzc5OSwgMC4yNTk0MDEsIDAuMzUyMzgsIDAuNDc2NTE5LCAwLjcyNDcxOCwgMC44Nzk4NSIsIFwKLSAgICAgICAgICAiMC4xNDQ3NjIsIDAuMTYzNTA1LCAwLjI2OTAwOSwgMC4zNjIwNzgsIDAuNDg2MTU5LCAwLjczNDM5NSwgMC44OTAyODUiLCBcCi0gICAgICAgICAgIjAuMTUxODQ0LCAwLjE3MDU0OSwgMC4yNzYxNzMsIDAuMzY5MjQ5LCAwLjQ5MzI4OSwgMC43NDE1MjksIDAuODk2NjcxIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3MzM3OCwgMC4xMTE0MjEsIDAuMzMyNDQ0LCAwLjUyODE5MSwgMC43OTA1MzksIDEuMzE0MzgsIDEuNjQxNzYiLCBcCi0gICAgICAgICAgIjAuMDczMzU1LCAwLjExMTQxNSwgMC4zMzI0NCwgMC41Mjg0NTEsIDAuNzkwNTQ4LCAxLjMxNDM2LCAxLjY0MTc4IiwgXAotICAgICAgICAgICIwLjA3MzE5LCAwLjExMTQ0NiwgMC4zMzI0MDgsIDAuNTI4NzQ5LCAwLjc5MDU4NSwgMS4zMTQzOCwgMS42NDE3MSIsIFwKLSAgICAgICAgICAiMC4wNzMzMTcsIDAuMTExNDMsIDAuMzMyNDMzLCAwLjUyODc0OSwgMC43OTA1NDgsIDEuMzE0MzcsIDEuNjQxNTIiLCBcCi0gICAgICAgICAgIjAuMDczMzA1LCAwLjExMTQ4NywgMC4zMzI0MjcsIDAuNTI4NjgsIDAuNzkwNTUyLCAxLjMxNDM5LCAxLjY0MTc3IiwgXAotICAgICAgICAgICIwLjA3MzM0OSwgMC4xMTE1NTUsIDAuMzMyNDMxLCAwLjUyODcxNSwgMC43OTA1MzMsIDEuMzE0MjQsIDEuNjQxNzYiLCBcCi0gICAgICAgICAgIjAuMDczNzY2LCAwLjExMTQ1MywgMC4zMzI0MiwgMC41Mjg2MDYsIDAuNzkwNDYzLCAxLjMxMjQ2LCAxLjY0MTU3Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEyNDUzMSwgMC4xNDI3OTksIDAuMjQ1NDI1LCAwLjMzNjI0MywgMC40NTY3NjMsIDAuNjk4Njk5LCAwLjg0ODkwMyIsIFwKLSAgICAgICAgICAiMC4xMzEyNDMsIDAuMTQ5NTE0LCAwLjI1MjMyOSwgMC4zNDI2OTYsIDAuNDYzMjgxLCAwLjcwNTQxNSwgMC44NTYxNTEiLCBcCi0gICAgICAgICAgIjAuMTM4NzcyLCAwLjE1NzA0MSwgMC4yNTk4NTcsIDAuMzUwNDI5LCAwLjQ3MDg1OCwgMC43MTI5NDYsIDAuODYzMDIyIiwgXAotICAgICAgICAgICIwLjE0NjAyLCAwLjE2NDI0NiwgMC4yNjcxMjQsIDAuMzU3NDkxLCAwLjQ3ODA4MSwgMC43MjAxOSwgMC44NzA2MjYiLCBcCi0gICAgICAgICAgIjAuMTUyNzUzLCAwLjE3MTA4OSwgMC4yNzM4NDgsIDAuMzY0MjI5LCAwLjQ4NDgwMSwgMC43MjY5MiwgMC44NzY4MzkiLCBcCi0gICAgICAgICAgIjAuMTYyMjc5LCAwLjE4MDU0NiwgMC4yODMzNjYsIDAuMzczOTI0LCAwLjQ5NDY1NSwgMC43MzY0MzQsIDAuODg3NDQ5IiwgXAotICAgICAgICAgICIwLjE2OTY1MiwgMC4xODc5MzQsIDAuMjkwODEzLCAwLjM4MTMyMywgMC41MDIxNTUsIDAuNzQzMDMxLCAwLjg5MzkxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3MDYzNywgMC4xMDY4NjQsIDAuMzE2Mjc5LCAwLjUwMjY0LCAwLjc1MTQ1NywgMS4yNDcwNywgMS41NTgzNyIsIFwKLSAgICAgICAgICAiMC4wNzA1NDcsIDAuMTA2ODA4LCAwLjMxNjA4OCwgMC41MDI2MTEsIDAuNzUxMzg5LCAxLjI0NzcsIDEuNTYwNTQiLCBcCi0gICAgICAgICAgIjAuMDcwODUxLCAwLjEwNjgyMywgMC4zMTYxNDcsIDAuNTAyNjE3LCAwLjc1MDg0NSwgMS4yNDkxNSwgMS41NTczOSIsIFwKLSAgICAgICAgICAiMC4wNzA1MjUsIDAuMTA2NzY1LCAwLjMxNjA2NiwgMC41MDI2NDQsIDAuNzUxMzUzLCAxLjI0NzYyLCAxLjU2MDI0IiwgXAotICAgICAgICAgICIwLjA3MDU1MywgMC4xMDY4NDcsIDAuMzE2NDUsIDAuNTAyNjQsIDAuNzUxMjcyLCAxLjI0OTI5LCAxLjU1ODM5IiwgXAotICAgICAgICAgICIwLjA3MDg1OSwgMC4xMDY4NDMsIDAuMzE2MDc3LCAwLjUwMjM4NSwgMC43NTEzNjMsIDEuMjQ3MTIsIDEuNTYwMTkiLCBcCi0gICAgICAgICAgIjAuMDcwODMzLCAwLjEwNjcyMiwgMC4zMTYzODgsIDAuNTAyNDAzLCAwLjc1MTUxMywgMS4yNDc5OSwgMS41NTg2MiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2MTQsIDAuMDA2MTQ5LCAwLjAwNjE2MSwgMC4wMDYxNjMsIDAuMDA2MTY0LCAwLjAwNjE2NiwgMC4wMDYxNjYiLCBcCi0gICAgICAgICAgIjAuMDA2MTQzLCAwLjAwNjE1MSwgMC4wMDYxNjQsIDAuMDA2MTY2LCAwLjAwNjE2OCwgMC4wMDYxNjksIDAuMDA2MTY5IiwgXAotICAgICAgICAgICIwLjAwNjE4NSwgMC4wMDYxOTMsIDAuMDA2MjA1LCAwLjAwNjIwOCwgMC4wMDYyMDksIDAuMDA2MjEsIDAuMDA2MjExIiwgXAotICAgICAgICAgICIwLjAwNjI0NSwgMC4wMDYyNTMsIDAuMDA2MjY2LCAwLjAwNjI2OSwgMC4wMDYyNzIsIDAuMDA2MjcxLCAwLjAwNjI3MiIsIFwKLSAgICAgICAgICAiMC4wMDYzMjEsIDAuMDA2MzE3LCAwLjAwNjM0MiwgMC4wMDYzNDUsIDAuMDA2MzQ2LCAwLjAwNjM0NywgMC4wMDYzNDciLCBcCi0gICAgICAgICAgIjAuMDA2NDE4LCAwLjAwNjQyNiwgMC4wMDY0MzcsIDAuMDA2NDQsIDAuMDA2NDQyLCAwLjAwNjQ0MywgMC4wMDY0NDMiLCBcCi0gICAgICAgICAgIjAuMDA2NTEzLCAwLjAwNjUyLCAwLjAwNjUzMywgMC4wMDY1MzYsIDAuMDA2NTM3LCAwLjAwNjUzOCwgMC4wMDY1MzgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDU0MDgsIDAuMDA1NDE2LCAwLjAwNTQyOCwgMC4wMDU0MywgMC4wMDU0MzIsIDAuMDA1NDMzLCAwLjAwNTQzMyIsIFwKLSAgICAgICAgICAiMC4wMDU0MDMsIDAuMDA1NDEsIDAuMDA1NDIzLCAwLjAwNTQyNSwgMC4wMDU0MjYsIDAuMDA1NDI4LCAwLjAwNTQyOCIsIFwKLSAgICAgICAgICAiMC4wMDU0NDYsIDAuMDA1NDU0LCAwLjAwNTQ2NiwgMC4wMDU0NjksIDAuMDA1NDcsIDAuMDA1NDcxLCAwLjAwNTQ3MiIsIFwKLSAgICAgICAgICAiMC4wMDU0ODcsIDAuMDA1NDk1LCAwLjAwNTUwOCwgMC4wMDU1MSwgMC4wMDU1MTIsIDAuMDA1NTEzLCAwLjAwNTUxMyIsIFwKLSAgICAgICAgICAiMC4wMDU1MzcsIDAuMDA1NTQ2LCAwLjAwNTU1OCwgMC4wMDU1NjIsIDAuMDA1NTYyLCAwLjAwNTU2NCwgMC4wMDU1NjQiLCBcCi0gICAgICAgICAgIjAuMDA1NjQxLCAwLjAwNTY1LCAwLjAwNTY2MSwgMC4wMDU2NjMsIDAuMDA1NjY1LCAwLjAwNTY2NiwgMC4wMDU2NjYiLCBcCi0gICAgICAgICAgIjAuMDA1NzMzLCAwLjAwNTczOSwgMC4wMDU3NTMsIDAuMDA1NzU2LCAwLjAwNTc1NywgMC4wMDU3NTksIDAuMDA1NzU5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUk4iOwotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjY2MywgMC4wMDY2NjcsIDAuMDA2NjU3LCAwLjAwNjY1MSwgMC4wMDY2NDUsIDAuMDA2NjQsIDAuMDA2NjM5IiwgXAotICAgICAgICAgICIwLjAwNjY1OSwgMC4wMDY2NjQsIDAuMDA2NjU0LCAwLjAwNjY0NywgMC4wMDY2NDIsIDAuMDA2NjM3LCAwLjAwNjYzNSIsIFwKLSAgICAgICAgICAiMC4wMDY2OTMsIDAuMDA2Njk3LCAwLjAwNjY4NywgMC4wMDY2OCwgMC4wMDY2NzQsIDAuMDA2NjY5LCAwLjAwNjY2NyIsIFwKLSAgICAgICAgICAiMC4wMDY3MzYsIDAuMDA2NzQsIDAuMDA2NzMsIDAuMDA2NzIzLCAwLjAwNjcxNywgMC4wMDY3MTIsIDAuMDA2NzEzIiwgXAotICAgICAgICAgICIwLjAwNjc5LCAwLjAwNjc5NSwgMC4wMDY3ODUsIDAuMDA2Nzc3LCAwLjAwNjc3MiwgMC4wMDY3NjYsIDAuMDA2NzY0IiwgXAotICAgICAgICAgICIwLjAwNjg5MiwgMC4wMDY4OTgsIDAuMDA2ODksIDAuMDA2ODgxLCAwLjAwNjg3NSwgMC4wMDY4NjksIDAuMDA2ODY4IiwgXAotICAgICAgICAgICIwLjAwNjk4MSwgMC4wMDY5ODYsIDAuMDA2OTc3LCAwLjAwNjk2NywgMC4wMDY5NjEsIDAuMDA2OTU1LCAwLjAwNjk1MSIpOwotICAgICAgfQotICAgICAgcmlzZV9wb3dlcihzY2FsYXIpIHsKLSAgICAgICAgdmFsdWVzKCIwIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiU04iOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjU4OCwgMC4wMDY1OTYsIDAuMDA2NjA4LCAwLjAwNjYxLCAwLjAwNjYxMSwgMC4wMDY2MTMsIDAuMDA2NjEzIiwgXAotICAgICAgICAgICIwLjAwNjU3NCwgMC4wMDY1ODMsIDAuMDA2NTk0LCAwLjAwNjU5NywgMC4wMDY1OTgsIDAuMDA2NTk5LCAwLjAwNjU5OSIsIFwKLSAgICAgICAgICAiMC4wMDY1OTIsIDAuMDA2NiwgMC4wMDY2MTIsIDAuMDA2NjE0LCAwLjAwNjYxNiwgMC4wMDY2MTcsIDAuMDA2NjE3IiwgXAotICAgICAgICAgICIwLjAwNjYzMSwgMC4wMDY2NDEsIDAuMDA2NjUyLCAwLjAwNjY1NSwgMC4wMDY2NTYsIDAuMDA2NjU3LCAwLjAwNjY1OCIsIFwKLSAgICAgICAgICAiMC4wMDY2ODUsIDAuMDA2Njk0LCAwLjAwNjcwNywgMC4wMDY3MSwgMC4wMDY3MTEsIDAuMDA2NzEyLCAwLjAwNjcxMyIsIFwKLSAgICAgICAgICAiMC4wMDY3OTYsIDAuMDA2ODA0LCAwLjAwNjgxNiwgMC4wMDY4MTksIDAuMDA2ODIxLCAwLjAwNjgyMiwgMC4wMDY4MjMiLCBcCi0gICAgICAgICAgIjAuMDA2OTEsIDAuMDA2OTE3LCAwLjAwNjkyOSwgMC4wMDY5MzIsIDAuMDA2OTMzLCAwLjAwNjkzNSwgMC4wMDY5MzQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQ5ODIsIDAuMDA0OTksIDAuMDA1MDAzLCAwLjAwNTAwNSwgMC4wMDUwMDYsIDAuMDA1MDA4LCAwLjAwNTAwOSIsIFwKLSAgICAgICAgICAiMC4wMDQ5NTIsIDAuMDA0OTYxLCAwLjAwNDk3MywgMC4wMDQ5NzUsIDAuMDA0OTc3LCAwLjAwNDk3OCwgMC4wMDQ5NzgiLCBcCi0gICAgICAgICAgIjAuMDA0OTQyLCAwLjAwNDk1LCAwLjAwNDk2MiwgMC4wMDQ5NjUsIDAuMDA0OTY3LCAwLjAwNDk2OCwgMC4wMDQ5NjgiLCBcCi0gICAgICAgICAgIjAuMDA0OTQ2LCAwLjAwNDk1NCwgMC4wMDQ5NjcsIDAuMDA0OTY5LCAwLjAwNDk3MSwgMC4wMDQ5NzIsIDAuMDA0OTcyIiwgXAotICAgICAgICAgICIwLjAwNDk2MSwgMC4wMDQ5NywgMC4wMDQ5ODIsIDAuMDA0OTg1LCAwLjAwNDk4NywgMC4wMDQ5ODgsIDAuMDA0OTg1IiwgXAotICAgICAgICAgICIwLjAwNTAwNSwgMC4wMDUwMTQsIDAuMDA1MDI4LCAwLjAwNTAzLCAwLjAwNTAzMiwgMC4wMDUwMzMsIDAuMDA1MDM0IiwgXAotICAgICAgICAgICIwLjAwNTA1MiwgMC4wMDUwNjEsIDAuMDA1MDczLCAwLjAwNTA3NywgMC4wMDUwNzksIDAuMDA1MDgsIDAuMDA1MDgxIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihRTikgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjM0MDE5ODsKLSAgICBmdW5jdGlvbiA6ICJRQklOVCI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0tOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5vbl91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogZmFsbGluZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTUxNSwgMC4xMzM3NDUsIDAuMjM5MjIyLCAwLjMzMjI0OSwgMC40NTYzNDYsIDAuNzA0NDkyLCAwLjg1OTc1OCIsIFwKLSAgICAgICAgICAiMC4xMjMxMjMsIDAuMTQxNzE5LCAwLjI0NzE4NSwgMC4zNDAyMiwgMC40NjQzMDUsIDAuNzEyNDQ5LCAwLjg2NzcwMyIsIFwKLSAgICAgICAgICAiMC4xMzE3MTgsIDAuMTUwMzIxLCAwLjI1NTc3NywgMC4zNDg4MTEsIDAuNDcyOTIsIDAuNzIxMTk5LCAwLjg3NjMwOCIsIFwKLSAgICAgICAgICAiMC4xMzg0NSwgMC4xNTcwMzQsIDAuMjYyNTA2LCAwLjM1NTQ5OSwgMC40Nzk2NTksIDAuNzI3OTA4LCAwLjg4MjY4NyIsIFwKLSAgICAgICAgICAiMC4xNDM2NTcsIDAuMTYyMjYsIDAuMjY3NzE3LCAwLjM2MDY3NCwgMC40ODQ4NzgsIDAuNzMzMTM0LCAwLjg4ODIwMSIsIFwKLSAgICAgICAgICAiMC4xNTA1OSwgMC4xNjkyMDgsIDAuMjc0NjMxLCAwLjM2NzY4NiwgMC40OTE3OTQsIDAuNzQwMDY3LCAwLjg5NTAwOSIsIFwKLSAgICAgICAgICAiMC4xNTU2NCwgMC4xNzQyMzYsIDAuMjc5Njg1LCAwLjM3MjgyMSwgMC40OTY4MTUsIDAuNzQ1MTE3LCAwLjkwMDEzNyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzA1NTksIDAuMTA5NDYzLCAwLjMzMTY5OSwgMC41Mjc5MjMsIDAuNzg5MzU0LCAxLjMxMTA5LCAxLjYzNjQ3IiwgXAotICAgICAgICAgICIwLjA3MDU1OCwgMC4xMDk0NjMsIDAuMzMxNzA0LCAwLjUyNzg3MiwgMC43ODkzMjksIDEuMzEwNzEsIDEuNjM2NTQiLCBcCi0gICAgICAgICAgIjAuMDcwNTU3LCAwLjEwOTQ3MywgMC4zMzE3MzUsIDAuNTI3ODExLCAwLjc4ODU5OSwgMS4zMTAyNSwgMS42MzY1NyIsIFwKLSAgICAgICAgICAiMC4wNzA1MjQsIDAuMTA5MzM3LCAwLjMzMTc0NSwgMC41Mjc2MiwgMC43ODc1MjgsIDEuMzEwMiwgMS42MzgyNyIsIFwKLSAgICAgICAgICAiMC4wNzA1NTQsIDAuMTA5NDcxLCAwLjMzMTczOSwgMC41MjY1ODYsIDAuNzg4MDMyLCAxLjMxMDIzLCAxLjYzOTA4IiwgXAotICAgICAgICAgICIwLjA3MDU3NSwgMC4xMDk1NTksIDAuMzMxMzI4LCAwLjUyNzE4OCwgMC43ODgzOSwgMS4zMTAwOCwgMS42MzkwMyIsIFwKLSAgICAgICAgICAiMC4wNzA2NTUsIDAuMTA5NDA3LCAwLjMzMTMwMiwgMC41MjY5NjgsIDAuNzg4MzQxLCAxLjMxMDI2LCAxLjYzNjg0Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEyNjg0NiwgMC4xNDQ5MzgsIDAuMjQ3NDU5LCAwLjMzNzk0NCwgMC40NTg2MSwgMC42OTk5MDYsIDAuODUwNjAzIiwgXAotICAgICAgICAgICIwLjEzNDg3NiwgMC4xNTI5NywgMC4yNTU0OTQsIDAuMzQ1OTQ5LCAwLjQ2NjU4NiwgMC43MDc4NTEsIDAuODU4NjYxIiwgXAotICAgICAgICAgICIwLjE0MzUwNCwgMC4xNjE1OSwgMC4yNjQxMTQsIDAuMzU0NTkyLCAwLjQ3NTIyNCwgMC43MTY0NTksIDAuODY3MjY4IiwgXAotICAgICAgICAgICIwLjE0OTk5NiwgMC4xNjgwODksIDAuMjcwNjE0LCAwLjM2MTA4OSwgMC40ODE3MDQsIDAuNzIyOTYyLCAwLjg3Mzc3MiIsIFwKLSAgICAgICAgICAiMC4xNTUyODksIDAuMTczNDA1LCAwLjI3NTkwOCwgMC4zNjYzODMsIDAuNDg2OTkxLCAwLjcyODI1NSwgMC44NzkwNjYiLCBcCi0gICAgICAgICAgIjAuMTYyMTU5LCAwLjE4MDI0NCwgMC4yODI3NjksIDAuMzczMjQsIDAuNDkzODYxLCAwLjczNTEyNCwgMC44ODU5NDMiLCBcCi0gICAgICAgICAgIjAuMTY3MTYxLCAwLjE4NTI1LCAwLjI4Nzc3OCwgMC4zNzgyNzEsIDAuNDk4ODgzLCAwLjc0MDE2OSwgMC44OTA5MjMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY3MTk0LCAwLjEwNDA3OSwgMC4zMTQ4OTcsIDAuNTAxNzQzLCAwLjc0OTA2MywgMS4yNDU0MywgMS41NTQ2MSIsIFwKLSAgICAgICAgICAiMC4wNjcxOTgsIDAuMTA0MTA1LCAwLjMxNDc0MSwgMC41MDExMjksIDAuNzUwMzMsIDEuMjQ0MjIsIDEuNTUzNjQiLCBcCi0gICAgICAgICAgIjAuMDY3MTU3LCAwLjEwNDA5NSwgMC4zMTQ2ODIsIDAuNTAxNzY3LCAwLjc0ODIyOCwgMS4yNDYwNCwgMS41NTY1NSIsIFwKLSAgICAgICAgICAiMC4wNjcxOTQsIDAuMTA0MDg2LCAwLjMxNDcxMiwgMC41MDE3NTcsIDAuNzUwMzA0LCAxLjI0NjExLCAxLjU1NjU3IiwgXAotICAgICAgICAgICIwLjA2NzE5MywgMC4xMDQwOTIsIDAuMzE0NzMxLCAwLjUwMTc1OSwgMC43NTAyMywgMS4yNDYxMiwgMS41NTY0IiwgXAotICAgICAgICAgICIwLjA2NzIwNCwgMC4xMDQwOTEsIDAuMzE0NzU5LCAwLjUwMTY4MiwgMC43NTAyMTQsIDEuMjQ2MjcsIDEuNTU1ODMiLCBcCi0gICAgICAgICAgIjAuMDY3MTU1LCAwLjEwNDAyNywgMC4zMTUxMTgsIDAuNTAxNjkyLCAwLjc1MDIxMywgMS4yNDczNiwgMS41NTY3NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcHJlc2V0OwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNDQ5NjksIDAuMTYzNTY2LCAwLjI2OTAxNCwgMC4zNjIwNzUsIDAuNDg2MTg0LCAwLjczNDQxOSwgMC44ODk0NTMiLCBcCi0gICAgICAgICAgIjAuMTUyODY1LCAwLjE3MTQ2MywgMC4yNzY5MTMsIDAuMzcsIDAuNDk0MDkyLCAwLjc0MjMzOSwgMC44OTcyNzgiLCBcCi0gICAgICAgICAgIjAuMTYwOTM4LCAwLjE3OTUzLCAwLjI4NDk3MywgMC4zNzgwMjksIDAuNTAyMTIzLCAwLjc1MDM3NiwgMC45MDU0MyIsIFwKLSAgICAgICAgICAiMC4xNjY4MzMsIDAuMTg1NDE1LCAwLjI5MDg3NCwgMC4zODM5MzQsIDAuNTA4MDM4LCAwLjc1NjI3OSwgMC45MTExMzYiLCBcCi0gICAgICAgICAgIjAuMTcxNTI5LCAwLjE5MDEwOCwgMC4yOTU2MjQsIDAuMzg4NzIxLCAwLjUxMjc1MiwgMC43NjA5NzcsIDAuOTE1OTk5IiwgXAotICAgICAgICAgICIwLjE3NzY0MSwgMC4xOTYyMzcsIDAuMzAxNjg1LCAwLjM5NDY1MywgMC41MTg4NTEsIDAuNzY2NzQzLCAwLjkyMjE0MSIsIFwKLSAgICAgICAgICAiMC4xODI1NTksIDAuMjAxMjA0LCAwLjMwNjYzNywgMC4zOTk2MzEsIDAuNTIzNzg0LCAwLjc3MjA2MiwgMC45MjY5OTQiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDcwNTY3LCAwLjEwOTU1LCAwLjMzMTgwMiwgMC41MjczNDcsIDAuNzg4MjU0LCAxLjMxMjM2LCAxLjYzOTI3IiwgXAotICAgICAgICAgICIwLjA3MDU1NSwgMC4xMDk1NTEsIDAuMzMxODAzLCAwLjUyNzkzMSwgMC43ODk0MTcsIDEuMzEyMzEsIDEuNjM3MTQiLCBcCi0gICAgICAgICAgIjAuMDcwNTM5LCAwLjEwOTU0OSwgMC4zMzE3OTgsIDAuNTI3NTAzLCAwLjc4ODI3NSwgMS4zMTAyOCwgMS42MzY1OSIsIFwKLSAgICAgICAgICAiMC4wNzA1NTUsIDAuMTA5NDc3LCAwLjMzMTgsIDAuNTI3NjcsIDAuNzg5NTE0LCAxLjMxMDIzLCAxLjYzODkiLCBcCi0gICAgICAgICAgIjAuMDcwNTgyLCAwLjEwOTQ5NywgMC4zMzE3ODgsIDAuNTI3MzMxLCAwLjc4ODEwMSwgMS4zMTAyMiwgMS42MzkyNCIsIFwKLSAgICAgICAgICAiMC4wNzA1OTMsIDAuMTA5NTM3LCAwLjMzMTgxMiwgMC41Mjc5MDIsIDAuNzg4MDkxLCAxLjMxMDIyLCAxLjYzNzIyIiwgXAotICAgICAgICAgICIwLjA3MDU4OCwgMC4xMDk1NTksIDAuMzMxODE4LCAwLjUyNzc5MywgMC43ODg1ODcsIDEuMzEyMDIsIDEuNjM5MjQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiU04iOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGNsZWFyOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMzI5NDgsIDAuMTUxNTQ3LCAwLjI1Njk1LCAwLjM1MDA3MSwgMC40NzQxOCwgMC43MjI0MDksIDAuODc3MzgzIiwgXAotICAgICAgICAgICIwLjEzOTY1NCwgMC4xNTgyNTMsIDAuMjYzNzAzLCAwLjM1Njc2MiwgMC40ODA4NjgsIDAuNzI5MTE3LCAwLjg4NDEzNiIsIFwKLSAgICAgICAgICAiMC4xNDcxNzgsIDAuMTY1Nzc4LCAwLjI3MTIyOCwgMC4zNjQyOTEsIDAuNDg4Mzg2LCAwLjczNjY0LCAwLjg5MTY4NiIsIFwKLSAgICAgICAgICAiMC4xNTQ0NDUsIDAuMTczMDI5LCAwLjI3ODQ4OSwgMC4zNzE1NDcsIDAuNDk1NjUxLCAwLjc0Mzg5MiwgMC44OTg3MTUiLCBcCi0gICAgICAgICAgIjAuMTYxMTI2LCAwLjE3OTcyNCwgMC4yODUxNzIsIDAuMzc4MjI2LCAwLjUwMjMzNiwgMC43NTA1NzksIDAuOTA1MzY2IiwgXAotICAgICAgICAgICIwLjE3MDY1NywgMC4xODkyNTMsIDAuMjk0NjY3LCAwLjM4NzcxNSwgMC41MTE3ODksIDAuNzYwMDc1LCAwLjkxNTIxOSIsIFwKLSAgICAgICAgICAiMC4xNzc5ODYsIDAuMTk2NTkyLCAwLjMwMjA1MSwgMC4zOTUwOSwgMC41MTkyMDUsIDAuNzY3MzU2LCAwLjkyMjQ4NSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzA1NTYsIDAuMTA5NTUyLCAwLjMzMTgwOCwgMC41Mjc5NDIsIDAuNzg5MjgzLCAxLjMxMDI4LCAxLjYzNzU5IiwgXAotICAgICAgICAgICIwLjA3MDU3NywgMC4xMDk1NTEsIDAuMzMxODAyLCAwLjUyNzcxLCAwLjc4OTE5OSwgMS4zMTA2OSwgMS42MzkyMyIsIFwKLSAgICAgICAgICAiMC4wNzA1NjEsIDAuMTA5NTUxLCAwLjMzMTgwMSwgMC41Mjc5MDgsIDAuNzg4MDg5LCAxLjMxMjA3LCAxLjYzNjY2IiwgXAotICAgICAgICAgICIwLjA3MDU2MiwgMC4xMDk1MzEsIDAuMzMxNzk5LCAwLjUyNzI5MiwgMC43ODkyMywgMS4zMTAyMywgMS42Mzg3NSIsIFwKLSAgICAgICAgICAiMC4wNzA1ODEsIDAuMTA5NDc1LCAwLjMzMTgsIDAuNTI3MjYyLCAwLjc4ODA5NSwgMS4zMTIyMiwgMS42MzY2MSIsIFwKLSAgICAgICAgICAiMC4wNzA1NjksIDAuMTA5NTU0LCAwLjMzMTc5OSwgMC41Mjc5MDksIDAuNzg5MzI0LCAxLjMxMDM5LCAxLjYzODgxIiwgXAotICAgICAgICAgICIwLjA3MDU3MSwgMC4xMDk0NDYsIDAuMzMxNzQyLCAwLjUyNzkxLCAwLjc4OTMzNSwgMS4zMTAzLCAxLjYzNjkxIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExMjgyNywgMC4xMzA5MjEsIDAuMjMzNDU2LCAwLjMyMzkzNiwgMC40NDQ1ODcsIDAuNjg1ODM2LCAwLjgzNjU5NSIsIFwKLSAgICAgICAgICAiMC4xMTk1NzksIDAuMTM3Njk3LCAwLjI0MDIyNSwgMC4zMzA3MSwgMC40NTEyODUsIDAuNjkyNjAxLCAwLjg0MzM5NCIsIFwKLSAgICAgICAgICAiMC4xMjc3NTUsIDAuMTQ1ODUzLCAwLjI0ODM4OCwgMC4zMzg4ODMsIDAuNDU5NDk5LCAwLjcwMDgxOCwgMC44NTE1ODMiLCBcCi0gICAgICAgICAgIjAuMTM2NDYzLCAwLjE1NDU1OSwgMC4yNTcwOTQsIDAuMzQ3NTg0LCAwLjQ2ODIyMSwgMC43MDk1MjYsIDAuODYwMTE1IiwgXAotICAgICAgICAgICIwLjE0Mzc3OCwgMC4xNjE4OTYsIDAuMjY0Mzc3LCAwLjM1NDg1OSwgMC40NzU0OTMsIDAuNzE2ODI5LCAwLjg2NzYzNyIsIFwKLSAgICAgICAgICAiMC4xNTM0NDksIDAuMTcxNTE1LCAwLjI3NDAxMiwgMC4zNjQ0OSwgMC40ODUxMywgMC43MjY0MSwgMC44NzcxMjciLCBcCi0gICAgICAgICAgIjAuMTYwMzg5LCAwLjE3ODQ3NCwgMC4yODEwMDksIDAuMzcxNTEyLCAwLjQ5MjEwMiwgMC43MzMzODUsIDAuODg0MTY2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2NzE4NCwgMC4xMDQxNzMsIDAuMzE1MzE4LCAwLjUwMTIxNiwgMC43NTA0NywgMS4yNDc4LCAxLjU1ODYyIiwgXAotICAgICAgICAgICIwLjA2NzE3NSwgMC4xMDQxNzQsIDAuMzE1MzA5LCAwLjUwMTc3OSwgMC43NTA0MDgsIDEuMjQ3NzgsIDEuNTU4NzIiLCBcCi0gICAgICAgICAgIjAuMDY3MTg2LCAwLjEwNDE3NiwgMC4zMTUzMDEsIDAuNTAxODAzLCAwLjc1MDQ5NSwgMS4yNDc4MSwgMS41NTg0OCIsIFwKLSAgICAgICAgICAiMC4wNjcyMDEsIDAuMTA0MTc3LCAwLjMxNTMwMywgMC41MDE4MDQsIDAuNzUwNDEzLCAxLjI0Nzg0LCAxLjU1ODIxIiwgXAotICAgICAgICAgICIwLjA2NzIxOCwgMC4xMDQxODEsIDAuMzE1MjkyLCAwLjUwMTgxNSwgMC43NTA0MDksIDEuMjQ3ODMsIDEuNTU4NjkiLCBcCi0gICAgICAgICAgIjAuMDY3MTkyLCAwLjEwNDE4OCwgMC4zMTUyNjgsIDAuNTAxNjU1LCAwLjc1MDM5NiwgMS4yNDc1NCwgMS41NTg2OCIsIFwKLSAgICAgICAgICAiMC4wNjcyOTUsIDAuMTA0MDQ2LCAwLjMxNTI1LCAwLjUwMTcxMywgMC43NTAyNjEsIDEuMjQ2MTgsIDEuNTU4MzgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDS04iOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNTQwOCwgMC4wMDU0MTYsIDAuMDA1NDI4LCAwLjAwNTQzLCAwLjAwNTQzMiwgMC4wMDU0MzMsIDAuMDA1NDMzIiwgXAotICAgICAgICAgICIwLjAwNTQwMywgMC4wMDU0MSwgMC4wMDU0MjMsIDAuMDA1NDI1LCAwLjAwNTQyNiwgMC4wMDU0MjgsIDAuMDA1NDI4IiwgXAotICAgICAgICAgICIwLjAwNTQ0NiwgMC4wMDU0NTQsIDAuMDA1NDY2LCAwLjAwNTQ2OSwgMC4wMDU0NywgMC4wMDU0NzEsIDAuMDA1NDcyIiwgXAotICAgICAgICAgICIwLjAwNTQ4NywgMC4wMDU0OTUsIDAuMDA1NTA4LCAwLjAwNTUxLCAwLjAwNTUxMiwgMC4wMDU1MTMsIDAuMDA1NTEzIiwgXAotICAgICAgICAgICIwLjAwNTUzNywgMC4wMDU1NDYsIDAuMDA1NTU4LCAwLjAwNTU2MiwgMC4wMDU1NjIsIDAuMDA1NTY0LCAwLjAwNTU2NCIsIFwKLSAgICAgICAgICAiMC4wMDU2NDEsIDAuMDA1NjUsIDAuMDA1NjYxLCAwLjAwNTY2MywgMC4wMDU2NjUsIDAuMDA1NjY2LCAwLjAwNTY2NiIsIFwKLSAgICAgICAgICAiMC4wMDU3MzMsIDAuMDA1NzM5LCAwLjAwNTc1MywgMC4wMDU3NTYsIDAuMDA1NzU3LCAwLjAwNTc1OSwgMC4wMDU3NTkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDYxNCwgMC4wMDYxNDksIDAuMDA2MTYxLCAwLjAwNjE2MywgMC4wMDYxNjQsIDAuMDA2MTY2LCAwLjAwNjE2NiIsIFwKLSAgICAgICAgICAiMC4wMDYxNDMsIDAuMDA2MTUxLCAwLjAwNjE2NCwgMC4wMDYxNjYsIDAuMDA2MTY4LCAwLjAwNjE2OSwgMC4wMDYxNjkiLCBcCi0gICAgICAgICAgIjAuMDA2MTg1LCAwLjAwNjE5MywgMC4wMDYyMDUsIDAuMDA2MjA4LCAwLjAwNjIwOSwgMC4wMDYyMSwgMC4wMDYyMTEiLCBcCi0gICAgICAgICAgIjAuMDA2MjQ1LCAwLjAwNjI1MywgMC4wMDYyNjYsIDAuMDA2MjY5LCAwLjAwNjI3MiwgMC4wMDYyNzEsIDAuMDA2MjcyIiwgXAotICAgICAgICAgICIwLjAwNjMyMSwgMC4wMDYzMTcsIDAuMDA2MzQyLCAwLjAwNjM0NSwgMC4wMDYzNDYsIDAuMDA2MzQ3LCAwLjAwNjM0NyIsIFwKLSAgICAgICAgICAiMC4wMDY0MTgsIDAuMDA2NDI2LCAwLjAwNjQzNywgMC4wMDY0NCwgMC4wMDY0NDIsIDAuMDA2NDQzLCAwLjAwNjQ0MyIsIFwKLSAgICAgICAgICAiMC4wMDY1MTMsIDAuMDA2NTIsIDAuMDA2NTMzLCAwLjAwNjUzNiwgMC4wMDY1MzcsIDAuMDA2NTM4LCAwLjAwNjUzOCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDY2NjMsIDAuMDA2NjY3LCAwLjAwNjY1NywgMC4wMDY2NTEsIDAuMDA2NjQ1LCAwLjAwNjY0LCAwLjAwNjYzOSIsIFwKLSAgICAgICAgICAiMC4wMDY2NTksIDAuMDA2NjY0LCAwLjAwNjY1NCwgMC4wMDY2NDcsIDAuMDA2NjQyLCAwLjAwNjYzNywgMC4wMDY2MzUiLCBcCi0gICAgICAgICAgIjAuMDA2NjkzLCAwLjAwNjY5NywgMC4wMDY2ODcsIDAuMDA2NjgsIDAuMDA2Njc0LCAwLjAwNjY2OSwgMC4wMDY2NjciLCBcCi0gICAgICAgICAgIjAuMDA2NzM2LCAwLjAwNjc0LCAwLjAwNjczLCAwLjAwNjcyMywgMC4wMDY3MTcsIDAuMDA2NzEyLCAwLjAwNjcxMyIsIFwKLSAgICAgICAgICAiMC4wMDY3OSwgMC4wMDY3OTUsIDAuMDA2Nzg1LCAwLjAwNjc3NywgMC4wMDY3NzIsIDAuMDA2NzY2LCAwLjAwNjc2NCIsIFwKLSAgICAgICAgICAiMC4wMDY4OTIsIDAuMDA2ODk4LCAwLjAwNjg5LCAwLjAwNjg4MSwgMC4wMDY4NzUsIDAuMDA2ODY5LCAwLjAwNjg2OCIsIFwKLSAgICAgICAgICAiMC4wMDY5ODEsIDAuMDA2OTg2LCAwLjAwNjk3NywgMC4wMDY5NjcsIDAuMDA2OTYxLCAwLjAwNjk1NSwgMC4wMDY5NTEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoc2NhbGFyKSB7Ci0gICAgICAgIHZhbHVlcygiMCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQ5ODIsIDAuMDA0OTksIDAuMDA1MDAzLCAwLjAwNTAwNSwgMC4wMDUwMDYsIDAuMDA1MDA4LCAwLjAwNTAwOSIsIFwKLSAgICAgICAgICAiMC4wMDQ5NTIsIDAuMDA0OTYxLCAwLjAwNDk3MywgMC4wMDQ5NzUsIDAuMDA0OTc3LCAwLjAwNDk3OCwgMC4wMDQ5NzgiLCBcCi0gICAgICAgICAgIjAuMDA0OTQyLCAwLjAwNDk1LCAwLjAwNDk2MiwgMC4wMDQ5NjUsIDAuMDA0OTY3LCAwLjAwNDk2OCwgMC4wMDQ5NjgiLCBcCi0gICAgICAgICAgIjAuMDA0OTQ2LCAwLjAwNDk1NCwgMC4wMDQ5NjcsIDAuMDA0OTY5LCAwLjAwNDk3MSwgMC4wMDQ5NzIsIDAuMDA0OTcyIiwgXAotICAgICAgICAgICIwLjAwNDk2MSwgMC4wMDQ5NywgMC4wMDQ5ODIsIDAuMDA0OTg1LCAwLjAwNDk4NywgMC4wMDQ5ODgsIDAuMDA0OTg1IiwgXAotICAgICAgICAgICIwLjAwNTAwNSwgMC4wMDUwMTQsIDAuMDA1MDI4LCAwLjAwNTAzLCAwLjAwNTAzMiwgMC4wMDUwMzMsIDAuMDA1MDM0IiwgXAotICAgICAgICAgICIwLjAwNTA1MiwgMC4wMDUwNjEsIDAuMDA1MDczLCAwLjAwNTA3NywgMC4wMDUwNzksIDAuMDA1MDgsIDAuMDA1MDgxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2NTg4LCAwLjAwNjU5NiwgMC4wMDY2MDgsIDAuMDA2NjEsIDAuMDA2NjExLCAwLjAwNjYxMywgMC4wMDY2MTMiLCBcCi0gICAgICAgICAgIjAuMDA2NTc0LCAwLjAwNjU4MywgMC4wMDY1OTQsIDAuMDA2NTk3LCAwLjAwNjU5OCwgMC4wMDY1OTksIDAuMDA2NTk5IiwgXAotICAgICAgICAgICIwLjAwNjU5MiwgMC4wMDY2LCAwLjAwNjYxMiwgMC4wMDY2MTQsIDAuMDA2NjE2LCAwLjAwNjYxNywgMC4wMDY2MTciLCBcCi0gICAgICAgICAgIjAuMDA2NjMxLCAwLjAwNjY0MSwgMC4wMDY2NTIsIDAuMDA2NjU1LCAwLjAwNjY1NiwgMC4wMDY2NTcsIDAuMDA2NjU4IiwgXAotICAgICAgICAgICIwLjAwNjY4NSwgMC4wMDY2OTQsIDAuMDA2NzA3LCAwLjAwNjcxLCAwLjAwNjcxMSwgMC4wMDY3MTIsIDAuMDA2NzEzIiwgXAotICAgICAgICAgICIwLjAwNjc5NiwgMC4wMDY4MDQsIDAuMDA2ODE2LCAwLjAwNjgxOSwgMC4wMDY4MjEsIDAuMDA2ODIyLCAwLjAwNjgyMyIsIFwKLSAgICAgICAgICAiMC4wMDY5MSwgMC4wMDY5MTcsIDAuMDA2OTI5LCAwLjAwNjkzMiwgMC4wMDY5MzMsIDAuMDA2OTM1LCAwLjAwNjkzNCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUk4pICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY1NDc2NzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2NTQ3Njc7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjU0Mzc2OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDY0OSwgMC4wMDA2NTgsIDAuMDAwNzE0LCAwLjAwMDgxNSwgMC4wMDA5MjYsIDAuMDAxMTM1LCAwLjAwMTMzOSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzAwMywgMC4wMDMwMDUsIDAuMDAzMDczLCAwLjAwMzE2MywgMC4wMDMyODMsIDAuMDAzNTI4LCAwLjAwMzY5NiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQmU04iOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4xNDQ5NjksIDAuMTUyODY1LCAwLjE2MDkzOCwgMC4xNjY4MzMsIDAuMTcxNTI5LCAwLjE3NzY0MSwgMC4xODI1NTkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0tOIjsKLSAgICAgIHRpbWluZ190eXBlIDogcmVjb3ZlcnlfZmFsbGluZzsKLSAgICAgIHdoZW4gOiAiRCZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzFfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChyZWNvdmVyeV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjUsIDAuMDIsIDAuMDA3NSwgMC4wMDEyNSwgLTAuMDA1LCAtMC4wMDg3NSwgLTAuMDE3NSIsIFwKLSAgICAgICAgICAiMC4wMzYyNSwgMC4wMjUsIDAuMDE4NzUsIDAuMDEyNSwgMC4wMDYyNSwgLTAuMDAzNzUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICIwLjA0MjUsIDAuMDMxMjUsIDAuMDI1LCAwLjAxODc1LCAwLjAxMjUsIDAuMDA4NzUsIDAiLCBcCi0gICAgICAgICAgIjAuMDQ4NzUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMjUsIDAuMDE4NzUsIDAuMDA4NzUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMDU1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDI1LCAwLjAxNSwgMC4wMTI1IiwgXAotICAgICAgICAgICIwLjA1ODc1LCAwLjA1Mzc1LCAwLjA0MTI1LCAwLjAzNSwgMC4wMjg3NSwgMC4wMjUsIDAuMDE2MjUiLCBcCi0gICAgICAgICAgIjAuMDY3NSwgMC4wNTYyNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyNzUsIDAuMDE4NzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiU04iOwotICAgICAgdGltaW5nX3R5cGUgOiByZWNvdmVyeV9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEIjsKLSAgICAgIHNkZl9jb25kIDogIkQgPT0gMSdiMCI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQocmVjb3ZlcnlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDUsIDAuMDYxMjUsIDAuMDY3NSwgMC4wNjc1LCAwLjA3Mzc1LCAwLjA4Mzc1LCAwLjA5MjUiLCBcCi0gICAgICAgICAgIjAuMDQ1LCAwLjA1LCAwLjA1NjI1LCAwLjA2MjUsIDAuMDY4NzUsIDAuMDc4NzUsIDAuMDg3NSIsIFwKLSAgICAgICAgICAiMC4wMzg3NSwgMC4wNSwgMC4wNTYyNSwgMC4wNjI1LCAwLjA2MjUsIDAuMDcyNSwgMC4wODEyNSIsIFwKLSAgICAgICAgICAiMC4wMzg3NSwgMC4wNDM3NSwgMC4wNSwgMC4wNTYyNSwgMC4wNjI1LCAwLjA3MjUsIDAuMDc1IiwgXAotICAgICAgICAgICIwLjAzODc1LCAwLjA0Mzc1LCAwLjA1LCAwLjA1NjI1LCAwLjA2MjUsIDAuMDY2MjUsIDAuMDc1IiwgXAotICAgICAgICAgICIwLjAzNSwgMC4wNCwgMC4wNDYyNSwgMC4wNTI1LCAwLjA1ODc1LCAwLjA2ODc1LCAwLjA3MTI1IiwgXAotICAgICAgICAgICIwLjAzMjUsIDAuMDM3NSwgMC4wNDM3NSwgMC4wNSwgMC4wNTYyNSwgMC4wNjYyNSwgMC4wNjg3NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDS04iOwotICAgICAgdGltaW5nX3R5cGUgOiByZW1vdmFsX2ZhbGxpbmc7Ci0gICAgICB3aGVuIDogIkQmU04iOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8xX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQocmVtb3ZhbF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMCwgMC4wMTEyNSwgMC4wMTc1LCAwLjAyMzc1LCAwLjAzLCAwLjAzMzc1LCAwLjA0MjUiLCBcCi0gICAgICAgICAgIi0wLjAwNSwgMCwgMC4wMDYyNSwgMC4wMTI1LCAwLjAxODc1LCAwLjAyODc1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wMTc1LCAtMC4wMDYyNSwgMCwgMC4wMDYyNSwgMC4wMTI1LCAwLjAxNjI1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLCAwLjAwNjI1LCAwLjAxNjI1LCAwLjAxODc1IiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLCAwLCAwLjAxLCAwLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjAzMzc1LCAtMC4wMjI1LCAtMC4wMTYyNSwgLTAuMDEsIC0wLjAwMzc1LCAwLCAwLjAwODc1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDMxMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgLTAuMDAyNSwgMCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oU04pICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTY3MzM5OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTY3MzM5OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTY3MzM7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNTkzLCAwLjAwMDU5MiwgMC4wMDA1OTMsIDAuMDAwNTkyLCAwLjAwMDU5MiwgMC4wMDA1OTIsIDAuMDAwNTkyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNjAxLCAwLjAwMDU5NiwgMC4wMDA1OTUsIDAuMDAwNTk1LCAwLjAwMDU5NSwgMC4wMDA1OTQsIDAuMDAwNTk0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRCYhUk4iOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1JOX0VRXzAgPT0gMSdiMSI7Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4xMTI4MjcsIDAuMTE5NTc5LCAwLjEyNzc1NSwgMC4xMzY0NjMsIDAuMTQzNzc4LCAwLjE1MzQ0OSwgMC4xNjAzODkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0tOIjsKLSAgICAgIHRpbWluZ190eXBlIDogcmVjb3ZlcnlfZmFsbGluZzsKLSAgICAgIHdoZW4gOiAiIUQmUk4iOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1JOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQocmVjb3ZlcnlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDI1LCAwLjAxMzc1LCAwLjAwNzUsIDAuMDAxMjUsIC0wLjAwNSwgLTAuMDA4NzUsIC0wLjAxMTI1IiwgXAotICAgICAgICAgICIwLjAzLCAwLjAyNSwgMC4wMTI1LCAwLjAwNjI1LCAwLjAwNjI1LCAtMC4wMDM3NSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMDQyNSwgMC4wMzEyNSwgMC4wMjUsIDAuMDE4NzUsIDAuMDEyNSwgMC4wMDg3NSwgMCIsIFwKLSAgICAgICAgICAiMC4wNDg3NSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMTg3NSwgMC4wMTUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMDU1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDI1LCAwLjAyMTI1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMDY1LCAwLjA1Mzc1LCAwLjA0NzUsIDAuMDQxMjUsIDAuMDM1LCAwLjAzMTI1LCAwLjAyODc1IiwgXAotICAgICAgICAgICIwLjA3Mzc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDUsIDAuMDQzNzUsIDAuMDQsIDAuMDMxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0tOIjsKLSAgICAgIHRpbWluZ190eXBlIDogcmVtb3ZhbF9mYWxsaW5nOwotICAgICAgd2hlbiA6ICIhRCZSTiI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fUk5fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChyZW1vdmFsX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjI1LCAwLjAxNzUsIDAuMDIzNzUsIDAuMDMsIDAuMDM2MjUsIDAuMDQsIDAuMDQyNSIsIFwKLSAgICAgICAgICAiMC4wMDEyNSwgMC4wMDYyNSwgMC4wMTg3NSwgMC4wMjUsIDAuMDI1LCAwLjAzNSwgMC4wMzc1IiwgXAotICAgICAgICAgICItMC4wMDUsIDAsIDAuMDEyNSwgMC4wMTg3NSwgMC4wMTg3NSwgMC4wMjg3NSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDExMjUsIDAsIDAuMDA2MjUsIDAuMDEyNSwgMC4wMTg3NSwgMC4wMjI1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDExMjUsIC0wLjAwNjI1LCAwLCAwLjAwNjI1LCAwLjAxMjUsIDAuMDE2MjUsIDAuMDI1IiwgXAotICAgICAgICAgICItMC4wMjEyNSwgLTAuMDEsIC0wLjAwMzc1LCAwLjAwMjUsIDAuMDA4NzUsIDAuMDEyNSwgMC4wMjEyNSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLCAwLjAwNjI1LCAwLjAxLCAwLjAxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogREZGTlNSWEwgKgotICogLS0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKERGRk5TUlhMKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDEuMDU3MDg7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgZmYgKE4zNSxRQklOVCkgewotICAgIG5leHRfc3RhdGUgOiAiRCI7Ci0gICAgY2xvY2tlZF9vbiA6ICIoIUNLTikiOwotICAgIGNsZWFyIDogIighUk4pIjsKLSAgICBwcmVzZXQgOiAiKCFTTikiOwotICAgIGNsZWFyX3ByZXNldF92YXIxIDogSDsKLSAgICBjbGVhcl9wcmVzZXRfdmFyMiA6IEw7Ci0gIH0KLSAgcGluKENLTikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNTkxMjQxOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDU5MTI0MTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA1OTEyMDk7Ci0gICAgY2xvY2sgOiB0cnVlOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwODA0MywgMC4wMDgwMzEsIDAuMDA4MTEsIDAuMDA4MjE2LCAwLjAwODM0MiwgMC4wMDg1ODEsIDAuMDA4Nzk2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA0MjY4LCAwLjAwNDI2NSwgMC4wMDQzMzMsIDAuMDA0NDM4LCAwLjAwNDU1OSwgMC4wMDQ3MywgMC4wMDUwMjgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0tOIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRCZSTiZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fUk5fRVFfMV9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDgwODEsIDAuMDg4OTg5LCAwLjA5NzY2MSwgMC4xMDQxNDYsIDAuMTA5MzQ2LCAwLjExNjIwNywgMC4xMjEyODYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjEyOTg2NywgMC4xMzc3NjQsIDAuMTQ2MzkxLCAwLjE1Mjg1OSwgMC4xNTgwMTUsIDAuMTY0NzY3LCAwLjE2OTY1MSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjU2NTA5OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDY1NTM5ODsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2NTY1MDk7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzMjY1LCAwLjAwMzIzNywgMC4wMDMyNTUsIDAuMDAzMzAxLCAwLjAwMzM2OSwgMC4wMDM1MDksIDAuMDAzNjQ2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzNzQ2LCAwLjAwMzcyNSwgMC4wMDM3NDIsIDAuMDAzNzg3LCAwLjAwMzg1NSwgMC4wMDM5NzEsIDAuMDA0MTIzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfZmFsbGluZzsKLSAgICAgIHdoZW4gOiAiUk4mU04iOwotICAgICAgc2RmX2NvbmQgOiAiUk5fRVFfMV9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEyNSwgMC4wMjM3NSwgMC4wMywgMC4wMzYyNSwgMC4wNDI1LCAwLjA0NjI1LCAwLjA0ODc1IiwgXAotICAgICAgICAgICIwLjAwNzUsIDAuMDE4NzUsIDAuMDI1LCAwLjAzMTI1LCAwLjAzNzUsIDAuMDQxMjUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMDAxMjUsIDAuMDEyNSwgMC4wMTg3NSwgMC4wMjUsIDAuMDMxMjUsIDAuMDM1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjAwMTI1LCAwLjAwNjI1LCAwLjAxODc1LCAwLjAyNSwgMC4wMjUsIDAuMDM1LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjAwNSwgMC4wMDYyNSwgMC4wMTI1LCAwLjAxODc1LCAwLjAyNSwgMC4wMjg3NSwgMC4wMzc1IiwgXAotICAgICAgICAgICItMC4wMDI1LCAwLjAwMjUsIDAuMDA4NzUsIDAuMDE1LCAwLjAyMTI1LCAwLjAyNSwgMC4wMzM3NSIsIFwKLSAgICAgICAgICAiLTAuMDA1LCAwLCAwLjAwNjI1LCAwLjAxMjUsIDAuMDE4NzUsIDAuMDI4NzUsIDAuMDMxMjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMTI1LCAtMC4wMDc1LCAtMC4wMDc1LCAtMC4wMDEyNSwgLTAuMDAxMjUsIDAuMDAyNSwgMC4wMDUiLCBcCi0gICAgICAgICAgIi0wLjAxNzUsIC0wLjAxMjUsIC0wLjAxMjUsIC0wLjAwNjI1LCAtMC4wMDYyNSwgLTAuMDAyNSwgMCIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMTI1LCAtMC4wMTI1LCAtMC4wMDg3NSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDE1LCAtMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTg3NSwgLTAuMDE1LCAtMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wMzM3NSwgLTAuMDI4NzUsIC0wLjAyODc1LCAtMC4wMjI1LCAtMC4wMjI1LCAtMC4wMTg3NSwgLTAuMDE2MjUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAyNSwgLTAuMDIxMjUsIC0wLjAxODc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX2ZhbGxpbmc7Ci0gICAgICB3aGVuIDogIlJOJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIlJOX0VRXzFfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzEyNSwgMC4wMjYyNSwgMC4wMTM3NSwgMC4wMDc1LCAwLjAwNzUsIC0wLjAwMjUsIC0wLjAwNSIsIFwKLSAgICAgICAgICAiMC4wMzYyNSwgMC4wMzEyNSwgMC4wMTg3NSwgMC4wMTg3NSwgMC4wMTI1LCAwLjAwMjUsIDAiLCBcCi0gICAgICAgICAgIjAuMDQyNSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMTg3NSwgMC4wMDg3NSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiMC4wNDg3NSwgMC4wNDM3NSwgMC4wMzEyNSwgMC4wMjUsIDAuMDI1LCAwLjAxNSwgMC4wMTI1IiwgXAotICAgICAgICAgICIwLjA1NSwgMC4wNSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMjEyNSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4wNjUsIDAuMDUzNzUsIDAuMDQ3NSwgMC4wNDEyNSwgMC4wMzUsIDAuMDI1LCAwLjAyMjUiLCBcCi0gICAgICAgICAgIjAuMDY3NSwgMC4wNTYyNSwgMC4wNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzMzc1LCAwLjAyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0Mzc1LCAwLjAzODc1LCAwLjAzMjUsIDAuMDI2MjUsIDAuMDIsIDAuMDE2MjUsIDAuMDEzNzUiLCBcCi0gICAgICAgICAgIjAuMDU1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDI1LCAwLjAyMTI1LCAwLjAxODc1IiwgXAotICAgICAgICAgICIwLjA2MTI1LCAwLjA1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDI3NSwgMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMDYxMjUsIDAuMDU2MjUsIDAuMDQzNzUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzM3NSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4wNjc1LCAwLjA1NjI1LCAwLjA1LCAwLjA0Mzc1LCAwLjA0Mzc1LCAwLjA0LCAwLjAzMTI1IiwgXAotICAgICAgICAgICIwLjA3MTI1LCAwLjA2NjI1LCAwLjA1Mzc1LCAwLjA0NzUsIDAuMDQ3NSwgMC4wNDM3NSwgMC4wNDEyNSIsIFwKLSAgICAgICAgICAiMC4wOCwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1LCAwLjA0NjI1LCAwLjA0Mzc1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihRKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMTk4ODc2OwotICAgIGZ1bmN0aW9uIDogIk4zNSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0tOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5vbl91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogZmFsbGluZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMzU5MDIsIDAuMTQ2NDI4LCAwLjI0MTQ2NCwgMC40MDAyMDcsIDAuNTU4NjU0LCAwLjkyNjY3NCwgMS4xMzUwNCIsIFwKLSAgICAgICAgICAiMC4xNDM4NTcsIDAuMTU0Mzg5LCAwLjI0OTQxOSwgMC40MDgxNTcsIDAuNTY2NjQ0LCAwLjkzNjM4NCwgMS4xNDM5NyIsIFwKLSAgICAgICAgICAiMC4xNTI0MzgsIDAuMTYyOTcxLCAwLjI1ODAxLCAwLjQxNTQ0NywgMC41NzUyMzIsIDAuOTQyNzk4LCAxLjE1Mjk2IiwgXAotICAgICAgICAgICIwLjE1ODczNiwgMC4xNjkyNjgsIDAuMjY0MzA4LCAwLjQyMzA0NiwgMC41ODE0NDQsIDAuOTQ3NjI2LCAxLjE1ODgzIiwgXAotICAgICAgICAgICIwLjE2Mzg4NywgMC4xNzQ0MTEsIDAuMjY5NDQ4LCAwLjQyODIwOSwgMC41ODQ4LCAwLjk1MzMwMiwgMS4xNjM0IiwgXAotICAgICAgICAgICIwLjE3MDY4MiwgMC4xODExODUsIDAuMjc2MjA4LCAwLjQzNDk0NCwgMC41OTM0MjcsIDAuOTYxMDIzLCAxLjE3MDU4IiwgXAotICAgICAgICAgICIwLjE3NTU1NCwgMC4xODYwOTIsIDAuMjgxMTMyLCAwLjQzOTg5LCAwLjU5ODM3OCwgMC45NjU2MzQsIDEuMTc1MjkiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTE4MjEsIDAuMTM5OTgsIDAuMzM4OTcxLCAwLjY3MjYwNCwgMS4wMDYwNywgMS43NzczNSwgMi4yMjA4OCIsIFwKLSAgICAgICAgICAiMC4xMTgyMDcsIDAuMTQwMjQ2LCAwLjMzOTExMiwgMC42NzIxNDEsIDEuMDA1MzIsIDEuNzgyODcsIDIuMjE5NzUiLCBcCi0gICAgICAgICAgIjAuMTE4MTQ4LCAwLjE0MDA1LCAwLjMzOTAyNiwgMC42NzAyNDMsIDEuMDA0NTQsIDEuNzc3MiwgMi4yMjAxNiIsIFwKLSAgICAgICAgICAiMC4xMTgyMTEsIDAuMTQwMDcyLCAwLjMzODk5LCAwLjY3MjU0LCAxLjAwNDU4LCAxLjc3NzM1LCAyLjIxOTc2IiwgXAotICAgICAgICAgICIwLjExODI1OCwgMC4xNDAwNDYsIDAuMzM4OTgyLCAwLjY3MjI3NiwgMS4wMDQ0MSwgMS43Nzc5NiwgMi4yMTk5NiIsIFwKLSAgICAgICAgICAiMC4xMTgyMzksIDAuMTQwMzM0LCAwLjMzODc3OSwgMC42NzMwNTYsIDEuMDA2NzEsIDEuNzgzMDYsIDIuMjI4OTQiLCBcCi0gICAgICAgICAgIjAuMTE4MTE5LCAwLjE0MDA3MywgMC4zMzg3ODksIDAuNjcyOTYxLCAxLjAwNjYzLCAxLjc4MzY2LCAyLjIyMjk5Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEyMDMxMywgMC4xMzAwNTgsIDAuMjE3MTUzLCAwLjM2MTc2LCAwLjUwNjM0MSwgMC44NDUyMzcsIDEuMDM4NTIiLCBcCi0gICAgICAgICAgIjAuMTI4MjU1LCAwLjEzNzkzMSwgMC4yMjUxNDUsIDAuMzY5NTQ5LCAwLjUxNDQ1MSwgMC44NTMzMDEsIDEuMDQ2MyIsIFwKLSAgICAgICAgICAiMC4xMzY4NzgsIDAuMTQ2NjE2LCAwLjIzMzgzNCwgMC4zNzgyMzIsIDAuNTIzMTE5LCAwLjg2MTkyMiwgMS4wNTQ4OSIsIFwKLSAgICAgICAgICAiMC4xNDMzMzMsIDAuMTUzMDcyLCAwLjI0MDI2OCwgMC4zODQ2ODksIDAuNTI5NjM4LCAwLjg2ODQyOCwgMS4wNjEwOSIsIFwKLSAgICAgICAgICAiMC4xNDg1MjMsIDAuMTU4MTQxLCAwLjI0NTQ2MSwgMC4zODk3NzgsIDAuNTM0NTgyLCAwLjg3Mjk2NSwgMS4wNjY4MyIsIFwKLSAgICAgICAgICAiMC4xNTUyNjIsIDAuMTY0OTMsIDAuMjUxOTI5LCAwLjM5NjYwMiwgMC41NDE0MzUsIDAuODc5NzUxLCAxLjA3MzMyIiwgXAotICAgICAgICAgICIwLjE2MDE2MiwgMC4xNjk3NzQsIDAuMjU2ODc5LCAwLjQwMTkxMiwgMC41NDY3NjUsIDAuODg1MDA3LCAxLjA3ODA2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwNjYxMSwgMC4xMjYxNTgsIDAuMzAyNjA2LCAwLjYwMDcxNiwgMC45MDIyMzEsIDEuNTk2OTEsIDEuOTkzMzQiLCBcCi0gICAgICAgICAgIjAuMTA2MzMzLCAwLjEyNjI2MSwgMC4zMDQ5ODYsIDAuNjAyMDY2LCAwLjkwMjQyLCAxLjU4Njk0LCAxLjk5NzQ1IiwgXAotICAgICAgICAgICIwLjEwNjM0NywgMC4xMjYxMzcsIDAuMzAyMjMxLCAwLjYwMiwgMC44OTU3OCwgMS41OTM1NywgMS45OTY0NSIsIFwKLSAgICAgICAgICAiMC4xMDY1NzEsIDAuMTI2MjM1LCAwLjMwNTAwMywgMC42MDIwNDUsIDAuOTAyNDg4LCAxLjU4OTk5LCAxLjk4MzM0IiwgXAotICAgICAgICAgICIwLjEwNjQzNiwgMC4xMjU1NDQsIDAuMzAzMTM4LCAwLjYwMjQ1OCwgMC45MDA5MjIsIDEuNTg5NjYsIDEuOTk2MDQiLCBcCi0gICAgICAgICAgIjAuMTA1ODc5LCAwLjEyNjcxMiwgMC4zMDQ5NzQsIDAuNjAxMjgsIDAuOTAyNDAxLCAxLjU5MTMsIDEuOTk5NTEiLCBcCi0gICAgICAgICAgIjAuMTA1OTQ0LCAwLjEyNjYwNSwgMC4zMDQzODcsIDAuNjAxMDM2LCAwLjkwMjc5MiwgMS41OTgwMiwgMS45OTg0NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogY2xlYXI7Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE1MDY2NywgMC4xNjAzNDQsIDAuMjQ3NDA5LCAwLjM5MjI0NywgMC41MzY4NDksIDAuODc1MzA5LCAxLjA2Nzk3IiwgXAotICAgICAgICAgICIwLjE1ODU3NiwgMC4xNjgyMjEsIDAuMjU1Mjc4LCAwLjM5OTc3NiwgMC41NDQ4NCwgMC44ODI2NTcsIDEuMDc3NTUiLCBcCi0gICAgICAgICAgIjAuMTY2Nzc5LCAwLjE3NjQyNywgMC4yNjM0NzUsIDAuNDA3OTA0LCAwLjU1MzA3NCwgMC44OTA5ODEsIDEuMDg0NjkiLCBcCi0gICAgICAgICAgIjAuMTcyODEyLCAwLjE4MjQ1OSwgMC4yNjk1MSwgMC40MTM5NTgsIDAuNTU5MDc3LCAwLjg5NjkzMiwgMS4wOTA5IiwgXAotICAgICAgICAgICIwLjE3NzU4NywgMC4xODcyMzgsIDAuMjc0MzQ3LCAwLjQxOTA2OCwgMC41NjM5NDUsIDAuOTAyMDIsIDEuMDk1NzMiLCBcCi0gICAgICAgICAgIjAuMTg0MTQzLCAwLjE5Mzc5MSwgMC4yODA4NTksIDAuNDI1MzI1LCAwLjU3MDQwNiwgMC45MDgyNzMsIDEuMTAxMzkiLCBcCi0gICAgICAgICAgIjAuMTg4ODc3LCAwLjE5ODYxOSwgMC4yODUyNDEsIDAuNDMwNDk0LCAwLjU3NTIwOSwgMC45MTI5ODIsIDEuMTA3NDMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTA3MDUzLCAwLjEyNjY4LCAwLjMwNTE4NCwgMC42MDQyNTgsIDAuOTAyNTIsIDEuNTk3NjQsIDEuOTk1OSIsIFwKLSAgICAgICAgICAiMC4xMDcwNTksIDAuMTI2Njc5LCAwLjMwNTE4NCwgMC42MDI3NzcsIDAuOTAyNTc2LCAxLjU5Nzc4LCAxLjk5NjM4IiwgXAotICAgICAgICAgICIwLjEwNjc3MiwgMC4xMjY2NzgsIDAuMzA1MTksIDAuNjAzMTM1LCAwLjkwMjA4MiwgMS41OTY5OCwgMi4wMDAwMyIsIFwKLSAgICAgICAgICAiMC4xMDcwOTUsIDAuMTI2Njc3LCAwLjMwNTIxNiwgMC42MDM2MTMsIDAuOTAyODI4LCAxLjU5NjksIDEuOTk5ODkiLCBcCi0gICAgICAgICAgIjAuMTA2OTA4LCAwLjEyNjY3NSwgMC4zMDUyMDcsIDAuNjAzMzE5LCAwLjkwMTMwMSwgMS41OTc4NiwgMS45OTczNSIsIFwKLSAgICAgICAgICAiMC4xMDY3NzcsIDAuMTI2Njc0LCAwLjMwNTIwNywgMC42MDMwNDYsIDAuOTAyNjQsIDEuNTk3MTcsIDEuOTk1ODUiLCBcCi0gICAgICAgICAgIjAuMTA2NzkxLCAwLjEyNjY1MSwgMC4zMDUxNzUsIDAuNjA0MDEsIDAuOTAyOTI0LCAxLjU5NzQyLCAxLjk5OTU1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiBwcmVzZXQ7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEyMjM2LCAwLjEzMjg3NCwgMC4yMjgwMzEsIDAuMzg2NDk1LCAwLjU0MzQ2OCwgMC45MTIwNTUsIDEuMTI1ODgiLCBcCi0gICAgICAgICAgIjAuMTI4OTgyLCAwLjEzOTUsIDAuMjM0NjU4LCAwLjM5MzEzNSwgMC41NTAxMTMsIDAuOTE4NjI4LCAxLjEzMjU5IiwgXAotICAgICAgICAgICIwLjEzNzM4NywgMC4xNDc5MzMsIDAuMjQzMDksIDAuNDAxNjEzLCAwLjU1ODQxNSwgMC45MjY1MzgsIDEuMTM5NSIsIFwKLSAgICAgICAgICAiMC4xNDYxMDcsIDAuMTU2NjIsIDAuMjUxNzg0LCAwLjQwOTY3OCwgMC41Njg3NzcsIDAuOTM4NTUsIDEuMTQ1OTkiLCBcCi0gICAgICAgICAgIjAuMTUzMzI3LCAwLjE2MzgzOSwgMC4yNTg5NzksIDAuNDE2OTAxLCAwLjU3NDc2NiwgMC45NDI1MzUsIDEuMTUyOTUiLCBcCi0gICAgICAgICAgIjAuMTYyODM0LCAwLjE3MzM3MiwgMC4yNjg0MzQsIDAuNDI3MDYyLCAwLjU4NTU4MSwgMC45NTI0NzEsIDEuMTYzMDkiLCBcCi0gICAgICAgICAgIjAuMTY5NjQyLCAwLjE4MDEzNCwgMC4yNzUyMzMsIDAuNDMzODIyLCAwLjU5MTM3NCwgMC45NTkzMzgsIDEuMTY5NDgiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTE4MTg4LCAwLjE0MDA4NCwgMC4zMzkzNjIsIDAuNjcyODk0LCAxLjAwNjMxLCAxLjc4MjI1LCAyLjIyNzg1IiwgXAotICAgICAgICAgICIwLjExODE3OSwgMC4xNDAwODgsIDAuMzM5NDI3LCAwLjY3MjkyOCwgMS4wMDYzMywgMS43ODI4LCAyLjIyOTA5IiwgXAotICAgICAgICAgICIwLjExODE3MSwgMC4xNDAwODIsIDAuMzM5NDM4LCAwLjY3Mjk1OSwgMS4wMDYwNiwgMS43ODMzNCwgMi4yMjkyNiIsIFwKLSAgICAgICAgICAiMC4xMTgxNjIsIDAuMTQwMDkxLCAwLjMzOTM1OSwgMC42NzI5ODcsIDEuMDA2ODUsIDEuNzgzOTMsIDIuMjI3MTciLCBcCi0gICAgICAgICAgIjAuMTE4MjIsIDAuMTQwMDgyLCAwLjMzOTY3MSwgMC42NzM0NzMsIDEuMDA3MjMsIDEuNzg0MjIsIDIuMjI5OTYiLCBcCi0gICAgICAgICAgIjAuMTE4MTExLCAwLjE0MDE4MSwgMC4zMzk2NTcsIDAuNjczMTY0LCAxLjAwNzIxLCAxLjc4MjkzLCAyLjIzMDQiLCBcCi0gICAgICAgICAgIjAuMTE4MDk5LCAwLjEzOTk0NiwgMC4zMzk2NzksIDAuNjczMzM5LCAxLjAwNzA4LCAxLjc4NTk3LCAyLjIyODE2Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEzODE4NiwgMC4xNDc4NTYsIDAuMjM0NjY4LCAwLjM3OTU1NSwgMC41MjQwNjcsIDAuODYyNTIxLCAxLjA1NjAzIiwgXAotICAgICAgICAgICIwLjE0NDg5OCwgMC4xNTQ1NiwgMC4yNDE2MDIsIDAuMzg2NzkxLCAwLjUzMTMwOSwgMC44Njk3OTEsIDEuMDYyNDYiLCBcCi0gICAgICAgICAgIjAuMTUyNDA2LCAwLjE2MjE0MSwgMC4yNDkyNTgsIDAuMzkzODIsIDAuNTM4ODQ3LCAwLjg3NjcwNiwgMS4wNjk3OSIsIFwKLSAgICAgICAgICAiMC4xNTk2NTgsIDAuMTY5MzI1LCAwLjI1NjQzMywgMC40MDEwMDMsIDAuNTQ1NzkzLCAwLjg4NDQ3NiwgMS4wNzc3MSIsIFwKLSAgICAgICAgICAiMC4xNjYyNzEsIDAuMTc1OTQzLCAwLjI2MzEyMSwgMC40MDgwOSwgMC41NTI4MTUsIDAuODkwODQzLCAxLjA4NDQyIiwgXAotICAgICAgICAgICIwLjE3NTY2NiwgMC4xODUzOTcsIDAuMjcyMzM2LCAwLjQxNzQxNywgMC41NjIzMDksIDAuODk5ODksIDEuMDkzOTciLCBcCi0gICAgICAgICAgIjAuMTgyOTIsIDAuMTkyNTgyLCAwLjI3OTU3NywgMC40MjQxNjYsIDAuNTY4OTMsIDAuOTA3NTM5LCAxLjEwMDIzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwNjc0LCAwLjEyNjY2MiwgMC4zMDUyMTQsIDAuNjAyODIsIDAuOTAwMzQ2LCAxLjU5OTMsIDEuOTkzMjciLCBcCi0gICAgICAgICAgIjAuMTA2NzUxLCAwLjEyNjY2MiwgMC4zMDUxNjUsIDAuNjA0MDE4LCAwLjkwMDQzMSwgMS41OTkwMSwgMS45OTM4IiwgXAotICAgICAgICAgICIwLjEwNjcyMiwgMC4xMjY1NzUsIDAuMzA1MTYxLCAwLjYwMjgzMSwgMC45MDMzMzYsIDEuNTk4OTksIDEuOTk3MDYiLCBcCi0gICAgICAgICAgIjAuMTA2NzMsIDAuMTI2NjYxLCAwLjMwNTE2MywgMC42MDMzMjMsIDAuOTAyNDQzLCAxLjYwMTE4LCAxLjk5NjEiLCBcCi0gICAgICAgICAgIjAuMTA2NzE2LCAwLjEyNjY2MSwgMC4zMDUyMzQsIDAuNjAzOTcsIDAuOTAyNzIyLCAxLjU5NzQsIDIuMDAwODUiLCBcCi0gICAgICAgICAgIjAuMTA2ODc2LCAwLjEyNjI1NCwgMC4zMDQ3NzEsIDAuNjA0MDc2LCAwLjkwMzAxNSwgMS41OTY4MiwgMS45OTgyOCIsIFwKLSAgICAgICAgICAiMC4xMDcxNzUsIDAuMTI2NTI5LCAwLjMwNTA0NiwgMC42MDI1NDksIDAuOTAyNTk3LCAxLjU5MTkxLCAxLjk5OTA5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0tOIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDU0OSwgMC4wMDU0OTEsIDAuMDA1NDk2LCAwLjAwNTQ5OCwgMC4wMDU0OTgsIDAuMDA1NDk5LCAwLjAwNTQ5OSIsIFwKLSAgICAgICAgICAiMC4wMDU0OTEsIDAuMDA1NDkzLCAwLjAwNTQ5NywgMC4wMDU0OTksIDAuMDA1NDk5LCAwLjAwNTUsIDAuMDA1NSIsIFwKLSAgICAgICAgICAiMC4wMDU1MzUsIDAuMDA1NTM2LCAwLjAwNTU0MSwgMC4wMDU1NDIsIDAuMDA1NTQzLCAwLjAwNTU0NCwgMC4wMDU1NDMiLCBcCi0gICAgICAgICAgIjAuMDA1NTk3LCAwLjAwNTU5OCwgMC4wMDU2MDMsIDAuMDA1NjA1LCAwLjAwNTYwNSwgMC4wMDU2MDUsIDAuMDA1NjA1IiwgXAotICAgICAgICAgICIwLjAwNTY3NCwgMC4wMDU2NzUsIDAuMDA1NjgsIDAuMDA1NjczLCAwLjAwNTY4MiwgMC4wMDU2ODMsIDAuMDA1Njc0IiwgXAotICAgICAgICAgICIwLjAwNTc2OSwgMC4wMDU3NywgMC4wMDU3NzUsIDAuMDA1Nzc2LCAwLjAwNTc3NywgMC4wMDU3NzcsIDAuMDA1Nzc4IiwgXAotICAgICAgICAgICIwLjAwNTg2NiwgMC4wMDU4NjgsIDAuMDA1ODczLCAwLjAwNTg3NSwgMC4wMDU4NzUsIDAuMDA1ODc2LCAwLjAwNTg3NiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDgyMSwgMC4wMDQ4MjIsIDAuMDA0ODI3LCAwLjAwNDgyOCwgMC4wMDQ4MjksIDAuMDA0ODI5LCAwLjAwNDgyOCIsIFwKLSAgICAgICAgICAiMC4wMDQ4MTYsIDAuMDA0ODE4LCAwLjAwNDgyMiwgMC4wMDQ4MjMsIDAuMDA0ODI0LCAwLjAwNDgyNCwgMC4wMDQ4MjQiLCBcCi0gICAgICAgICAgIjAuMDA0ODU4LCAwLjAwNDg2LCAwLjAwNDg2MywgMC4wMDQ4NjUsIDAuMDA0ODY2LCAwLjAwNDg2NiwgMC4wMDQ4NjYiLCBcCi0gICAgICAgICAgIjAuMDA0OTAzLCAwLjAwNDkwNSwgMC4wMDQ5MDksIDAuMDA0OTExLCAwLjAwNDkxMiwgMC4wMDQ5MTIsIDAuMDA0OTEyIiwgXAotICAgICAgICAgICIwLjAwNDk2NCwgMC4wMDQ5NTQsIDAuMDA0OTcsIDAuMDA0OTYsIDAuMDA0OTcyLCAwLjAwNDk2MSwgMC4wMDQ5NzMiLCBcCi0gICAgICAgICAgIjAuMDA1MDU3LCAwLjAwNTA2LCAwLjAwNTA2MiwgMC4wMDUwNjQsIDAuMDA1MDY1LCAwLjAwNTA2NSwgMC4wMDUwNjYiLCBcCi0gICAgICAgICAgIjAuMDA1MTUsIDAuMDA1MTUxLCAwLjAwNTE1NSwgMC4wMDUxNTcsIDAuMDA1MTU4LCAwLjAwNTE1OCwgMC4wMDUxNTgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2MjUzLCAwLjAwNjI1MywgMC4wMDYyNDYsIDAuMDA2MjM5LCAwLjAwNjIzNiwgMC4wMDYyMzQsIDAuMDA2MjM1IiwgXAotICAgICAgICAgICIwLjAwNjI1OCwgMC4wMDYyNTgsIDAuMDA2MjUsIDAuMDA2MjQ0LCAwLjAwNjI0MSwgMC4wMDYyMzgsIDAuMDA2MjM3IiwgXAotICAgICAgICAgICIwLjAwNjI4MiwgMC4wMDYyODIsIDAuMDA2Mjc1LCAwLjAwNjI2OCwgMC4wMDYyNjUsIDAuMDA2MjYyLCAwLjAwNjI2MSIsIFwKLSAgICAgICAgICAiMC4wMDYzMjUsIDAuMDA2MzI0LCAwLjAwNjMxNywgMC4wMDYzMSwgMC4wMDYzMDcsIDAuMDA2MzA0LCAwLjAwNjMwMyIsIFwKLSAgICAgICAgICAiMC4wMDYzNzgsIDAuMDA2Mzc4LCAwLjAwNjM3MiwgMC4wMDYzNjUsIDAuMDA2MzYyLCAwLjAwNjM1OCwgMC4wMDYzNTciLCBcCi0gICAgICAgICAgIjAuMDA2NDc4LCAwLjAwNjQ3OCwgMC4wMDY0NywgMC4wMDY0NjMsIDAuMDA2NDU5LCAwLjAwNjQ1NiwgMC4wMDY0NTUiLCBcCi0gICAgICAgICAgIjAuMDA2NTY4LCAwLjAwNjU2OCwgMC4wMDY1NjEsIDAuMDA2NTUzLCAwLjAwNjU0OSwgMC4wMDY1NDUsIDAuMDA2NTQ0Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3Bvd2VyKHNjYWxhcikgewotICAgICAgICB2YWx1ZXMoIjAiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2MDA2LCAwLjAwNjAwNywgMC4wMDYwMTEsIDAuMDA2MDEzLCAwLjAwNjAxMywgMC4wMDYwMTQsIDAuMDA2MDE0IiwgXAotICAgICAgICAgICIwLjAwNTk5NCwgMC4wMDU5OTYsIDAuMDA2LCAwLjAwNjAwMSwgMC4wMDYwMDIsIDAuMDA2MDAyLCAwLjAwNjAwMiIsIFwKLSAgICAgICAgICAiMC4wMDYwMSwgMC4wMDYwMTEsIDAuMDA2MDE1LCAwLjAwNjAxNywgMC4wMDYwMTcsIDAuMDA2MDE4LCAwLjAwNjAxOCIsIFwKLSAgICAgICAgICAiMC4wMDYwNTMsIDAuMDA2MDU0LCAwLjAwNjA1OSwgMC4wMDYwNiwgMC4wMDYwNjEsIDAuMDA2MDYxLCAwLjAwNjA2MSIsIFwKLSAgICAgICAgICAiMC4wMDYxMDcsIDAuMDA2MTA4LCAwLjAwNjExMiwgMC4wMDYxMTQsIDAuMDA2MTE0LCAwLjAwNjExNSwgMC4wMDYxMTUiLCBcCi0gICAgICAgICAgIjAuMDA2MjE3LCAwLjAwNjIyLCAwLjAwNjIyNCwgMC4wMDYyMjYsIDAuMDA2MjI2LCAwLjAwNjIyNywgMC4wMDYyMjciLCBcCi0gICAgICAgICAgIjAuMDA2MzM2LCAwLjAwNjMzNywgMC4wMDYzNDIsIDAuMDA2MzQyLCAwLjAwNjM0NCwgMC4wMDYzNDQsIDAuMDA2MzQ1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0NDk3LCAwLjAwNDQ5OCwgMC4wMDQ1MDIsIDAuMDA0NTA0LCAwLjAwNDUwNCwgMC4wMDQ1MDUsIDAuMDA0NTA1IiwgXAotICAgICAgICAgICIwLjAwNDQ2NiwgMC4wMDQ0NjgsIDAuMDA0NDcyLCAwLjAwNDQ3NCwgMC4wMDQ0NzQsIDAuMDA0NDc0LCAwLjAwNDQ3NCIsIFwKLSAgICAgICAgICAiMC4wMDQ0NTUsIDAuMDA0NDU3LCAwLjAwNDQ2MSwgMC4wMDQ0NjIsIDAuMDA0NDYzLCAwLjAwNDQ2MywgMC4wMDQ0NjMiLCBcCi0gICAgICAgICAgIjAuMDA0NDYzLCAwLjAwNDQ2NCwgMC4wMDQ0NjgsIDAuMDA0NDcsIDAuMDA0NDcsIDAuMDA0NDcsIDAuMDA0NDcxIiwgXAotICAgICAgICAgICIwLjAwNDQ3NiwgMC4wMDQ0NzgsIDAuMDA0NDgyLCAwLjAwNDQ4NCwgMC4wMDQ0ODQsIDAuMDA0NDg1LCAwLjAwNDQ4NSIsIFwKLSAgICAgICAgICAiMC4wMDQ1MjIsIDAuMDA0NTI0LCAwLjAwNDUzMSwgMC4wMDQ1MzIsIDAuMDA0NTMzLCAwLjAwNDUzMywgMC4wMDQ1MzQiLCBcCi0gICAgICAgICAgIjAuMDA0NTcsIDAuMDA0NTcxLCAwLjAwNDU3NiwgMC4wMDQ1NzcsIDAuMDA0NTc4LCAwLjAwNDU3OCwgMC4wMDQ1NzgiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFFOKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMTk5OTY7Ci0gICAgZnVuY3Rpb24gOiAiUUJJTlQiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBub25fdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGZhbGxpbmdfZWRnZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTI5ODY3LCAwLjE0MDM5MiwgMC4yMzUwODEsIDAuMzkyODc5LCAwLjU1MDcwMywgMC45MTg5NzksIDEuMTI5NDEiLCBcCi0gICAgICAgICAgIjAuMTM3NzY0LCAwLjE0ODI4MywgMC4yNDI5OTIsIDAuNDAwNzgzLCAwLjU1ODYwNCwgMC45MjY4ODgsIDEuMTM3MjkiLCBcCi0gICAgICAgICAgIjAuMTQ2MzkxLCAwLjE1NjkyMiwgMC4yNTE2MzIsIDAuNDA5NDE5LCAwLjU2NzIzOSwgMC45MzU1MTcsIDEuMTQ1OTIiLCBcCi0gICAgICAgICAgIjAuMTUyODU5LCAwLjE2MzM4NywgMC4yNTgwOTIsIDAuNDE1ODg0LCAwLjU3MzcwNSwgMC45NDE5ODYsIDEuMTUyMzciLCBcCi0gICAgICAgICAgIjAuMTU4MDE1LCAwLjE2ODQ4NCwgMC4yNjMyNSwgMC40MjEsIDAuNTc4ODM4LCAwLjk0NzA1MiwgMS4xNTc1NyIsIFwKLSAgICAgICAgICAiMC4xNjQ3NjcsIDAuMTc1MjkxLCAwLjI2OTk2NCwgMC40Mjc3ODEsIDAuNTg1NjA0LCAwLjk1MzgzOSwgMS4xNjQxOSIsIFwKLSAgICAgICAgICAiMC4xNjk2NTEsIDAuMTgwMTc1LCAwLjI3NDg3MiwgMC40MzI3MTIsIDAuNTkwNDY0LCAwLjk1ODc1OSwgMS4xNjkwNCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTU5MzksIDAuMTM4MDcsIDAuMzM3MTYsIDAuNjY5NTcxLCAxLjAwMTk2LCAxLjc3NTMzLCAyLjIxNzk0IiwgXAotICAgICAgICAgICIwLjExNTk0NSwgMC4xMzgwNywgMC4zMzc2NjMsIDAuNjY5NjIyLCAxLjAwMTY4LCAxLjc3NTgzLCAyLjIxODg0IiwgXAotICAgICAgICAgICIwLjExNTkzMiwgMC4xMzgwNjksIDAuMzM3MTksIDAuNjY5NjE5LCAxLjAwMTAzLCAxLjc3NTA1LCAyLjIxOTAyIiwgXAotICAgICAgICAgICIwLjExNTkzNSwgMC4xMzgwNywgMC4zMzc2NjgsIDAuNjY5NjIxLCAxLjAwMDU5LCAxLjc3NTE4LCAyLjIxNzk0IiwgXAotICAgICAgICAgICIwLjExNTk0NCwgMC4xMzgwNTQsIDAuMzM3MTE1LCAwLjY2OTY0NSwgMS4wMDE4OCwgMS43NzYyMSwgMi4yMTgyMiIsIFwKLSAgICAgICAgICAiMC4xMTU5MTMsIDAuMTM4MTgsIDAuMzM3NjA1LCAwLjY2OTU2MywgMS4wMDE2NiwgMS43NzYyOCwgMi4yMjE5NCIsIFwKLSAgICAgICAgICAiMC4xMTU4NTMsIDAuMTM3OTI2LCAwLjMzNzEzNiwgMC42Njk0MTYsIDEuMDAyNiwgMS43NzY1OSwgMi4yMjE1NSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMzc3OCwgMC4xNDc0MjYsIDAuMjM0MjI3LCAwLjM3ODkyNywgMC41MjM1OTEsIDAuODYwOTYxLCAxLjA1Mzc1IiwgXAotICAgICAgICAgICIwLjE0NTY2MywgMC4xNTUzMDcsIDAuMjQyMTA0LCAwLjM4NjgwNywgMC41MzE0NjYsIDAuODY5MDQ2LCAxLjA2MTkyIiwgXAotICAgICAgICAgICIwLjE1NDMxOSwgMC4xNjM5NjQsIDAuMjUwNzYyLCAwLjM5NTM4NywgMC41NDAxMiwgMC44Nzc2NjgsIDEuMDcwMjkiLCBcCi0gICAgICAgICAgIjAuMTYwNjI4LCAwLjE3MDI3NCwgMC4yNTcwNzQsIDAuNDAxNzY5LCAwLjU0NjQ1NywgMC44ODM4MjksIDEuMDc2ODkiLCBcCi0gICAgICAgICAgIjAuMTY1NzY2LCAwLjE3NTQxMywgMC4yNjIyMTMsIDAuNDA2OTMyLCAwLjU1MTUyNSwgMC44ODg5MzYsIDEuMDgxODkiLCBcCi0gICAgICAgICAgIjAuMTcyNTI3LCAwLjE4MjE2NywgMC4yNjg5NjksIDAuNDEzNjYxLCAwLjU1ODMyMSwgMC44OTU4NywgMS4wODg3OSIsIFwKLSAgICAgICAgICAiMC4xNzc0MzcsIDAuMTg3MDk0LCAwLjI3Mzg5MSwgMC40MTg1NjgsIDAuNTYzMjMzLCAwLjkwMDc5NywgMS4wOTM3MiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDM3MSwgMC4xMjMzOTIsIDAuMzAxODM2LCAwLjU5OTQ2NiwgMC44OTY5NTEsIDEuNTg2NDgsIDEuOTgxMDYiLCBcCi0gICAgICAgICAgIjAuMTAzNjQ0LCAwLjEyMzM3OSwgMC4zMDE5MjQsIDAuNTk5NTQ2LCAwLjg5NjkwNSwgMS41OTEwNSwgMS45ODEzOSIsIFwKLSAgICAgICAgICAiMC4xMDM2MywgMC4xMjM0MDUsIDAuMzAxNzg5LCAwLjU5NzcyMywgMC44OTY5MjMsIDEuNTg2MzMsIDEuOTgxMTkiLCBcCi0gICAgICAgICAgIjAuMTAzNjQsIDAuMTIzMzk0LCAwLjMwMTgxMSwgMC41OTk0MiwgMC44OTY4NDUsIDEuNTg2MzEsIDEuOTgxMjQiLCBcCi0gICAgICAgICAgIjAuMTAzNzI0LCAwLjEyMzM3NSwgMC4zMDE4MiwgMC41OTk0MzEsIDAuODk1MTM4LCAxLjU4NTgsIDEuOTgxMDYiLCBcCi0gICAgICAgICAgIjAuMTAzNjg2LCAwLjEyMzU2MiwgMC4zMDE5MTgsIDAuNTk5NTI5LCAwLjg5Njc3NiwgMS41ODg3MiwgMS45ODUzIiwgXAotICAgICAgICAgICIwLjEwMzYxMSwgMC4xMjMzOTEsIDAuMzAxOTE5LCAwLjU5OTM3MiwgMC44OTY3NTEsIDEuNTg4OTQsIDEuOTg1NjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUk4iOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHByZXNldDsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTYwMjk1LCAwLjE3MDgxNCwgMC4yNjU1MTUsIDAuNDIzMjc4LCAwLjU4MTE0LCAwLjk0OTQwNiwgMS4xNTk3OSIsIFwKLSAgICAgICAgICAiMC4xNjgxNzMsIDAuMTc4Njg5LCAwLjI3MzM4OCwgMC40MzExNzksIDAuNTg5MDIsIDAuOTU3MjM5LCAxLjE2Nzg2IiwgXAotICAgICAgICAgICIwLjE3NjM4MywgMC4xODY4OTksIDAuMjgxNTk2LCAwLjQzOTQwNywgMC41OTcyMzMsIDAuOTY1NDU2LCAxLjE3NTgyIiwgXAotICAgICAgICAgICIwLjE4MjQxLCAwLjE5MjkyNywgMC4yODc2MjQsIDAuNDQ1NDIxLCAwLjYwMzI1NywgMC45NzE0NzgsIDEuMTgxODkiLCBcCi0gICAgICAgICAgIjAuMTg3MTU2LCAwLjE5NzY3MywgMC4yOTIzOSwgMC40NTAyMDksIDAuNjA4MDE2LCAwLjk3NjI1NiwgMS4xODY3MyIsIFwKLSAgICAgICAgICAiMC4xOTM3MDEsIDAuMjA0MjE4LCAwLjI5ODkxOCwgMC40NTY3MDcsIDAuNjE0NTUsIDAuOTgyNzcxLCAxLjE5MzIiLCBcCi0gICAgICAgICAgIjAuMTk4NDg5LCAwLjIwOTAwNywgMC4zMDM2OCwgMC40NjE1MTYsIDAuNjE5MjgzLCAwLjk4NzM5LCAxLjE5Nzk5Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExNTkzMiwgMC4xMzgxNDksIDAuMzM3Nzg5LCAwLjY3MDM5LCAxLjAwMTMxLCAxLjc3NTU2LCAyLjIxODk3IiwgXAotICAgICAgICAgICIwLjExNTkzNiwgMC4xMzgxNDcsIDAuMzM3NzksIDAuNjY5NTQyLCAxLjAwMTMzLCAxLjc3NTkzLCAyLjIxODk2IiwgXAotICAgICAgICAgICIwLjExNTkzNiwgMC4xMzgxNDYsIDAuMzM3NzksIDAuNjY5Njk5LCAxLjAwMTM5LCAxLjc3NjIsIDIuMjIyMjkiLCBcCi0gICAgICAgICAgIjAuMTE2MDE3LCAwLjEzODE0NiwgMC4zMzc3ODksIDAuNjY5NjE3LCAxLjAwMjY3LCAxLjc3NjcxLCAyLjIyMjI4IiwgXAotICAgICAgICAgICIwLjExNTk0OSwgMC4xMzgxNDYsIDAuMzM3NzkyLCAwLjY2OTcwNSwgMS4wMDE0MywgMS43NzYzNiwgMi4yMTkxOSIsIFwKLSAgICAgICAgICAiMC4xMTU5NDUsIDAuMTM4MTQ2LCAwLjMzNzc4NiwgMC42Njk2NjYsIDEuMDAyNTgsIDEuNzc2MDYsIDIuMjE5MzMiLCBcCi0gICAgICAgICAgIjAuMTE1OTM5LCAwLjEzODAyNSwgMC4zMzc3MzgsIDAuNjcwMjc0LCAxLjAwMjY4LCAxLjc3NjIzLCAyLjIyMjM0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiBjbGVhcjsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTQ3Njg3LCAwLjE1ODIwNCwgMC4yNTI4NDQsIDAuNDEwNjk1LCAwLjU2ODM0NSwgMC45MzY1NDcsIDEuMTQ3MiIsIFwKLSAgICAgICAgICAiMC4xNTQ0NTUsIDAuMTY0OTcyLCAwLjI1OTY1NywgMC40MTc1MDEsIDAuNTc1Mjk4LCAwLjk0MzU2NCwgMS4xNTM5NSIsIFwKLSAgICAgICAgICAiMC4xNjE5NTYsIDAuMTcyNDY5LCAwLjI2NzE0MywgMC40MjQ5MzEsIDAuNTgyNzY4LCAwLjk1MDk4NiwgMS4xNjE0MSIsIFwKLSAgICAgICAgICAiMC4xNjkxOTgsIDAuMTc5NzE1LCAwLjI3NDQwNiwgMC40MzIyMSwgMC41OTAwMzUsIDAuOTU4MjA5LCAxLjE2ODc0IiwgXAotICAgICAgICAgICIwLjE3NTc1OSwgMC4xODYyNzYsIDAuMjgwOTc2LCAwLjQzODc4OCwgMC41OTY2MTEsIDAuOTY0ODQsIDEuMTc1MTEiLCBcCi0gICAgICAgICAgIjAuMTg1MTUsIDAuMTk1NjY3LCAwLjI5MDM0LCAwLjQ0ODE2MSwgMC42MDU5NTgsIDAuOTc0MjA3LCAxLjE4NDcxIiwgXAotICAgICAgICAgICIwLjE5MjM1OCwgMC4yMDI4NzEsIDAuMjk3NTQxLCAwLjQ1NTM2NiwgMC42MTMxNjYsIDAuOTgxNDM1LCAxLjE5MTgyIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExNTk0NywgMC4xMzgxNDksIDAuMzM3NzQ3LCAwLjY2OTU2NywgMS4wMDE3MywgMS43NzgwMywgMi4yMTc5NCIsIFwKLSAgICAgICAgICAiMC4xMTU5NTEsIDAuMTM4MTQ2LCAwLjMzNzczNywgMC42NzAyOTgsIDEuMDAxODQsIDEuNzc2MjQsIDIuMjE4NzgiLCBcCi0gICAgICAgICAgIjAuMTE1OTUsIDAuMTM4MDczLCAwLjMzNzc4NCwgMC42Njk1NDQsIDEuMDAyODEsIDEuNzc1NTcsIDIuMjE3OTMiLCBcCi0gICAgICAgICAgIjAuMTE1OTQ5LCAwLjEzODE0NCwgMC4zMzc3ODQsIDAuNjY5NzA2LCAxLjAwMTg1LCAxLjc3ODgzLCAyLjIxOTE2IiwgXAotICAgICAgICAgICIwLjExNTk0OCwgMC4xMzgxNDUsIDAuMzM3Nzc4LCAwLjY3MDI1NywgMS4wMDI2NywgMS43NzU3NCwgMi4yMjI2OSIsIFwKLSAgICAgICAgICAiMC4xMTU5NTEsIDAuMTM4MDgzLCAwLjMzNzU0NCwgMC42NzAyNzMsIDEuMDAyNzQsIDEuNzc2NjksIDIuMjIxNDciLCBcCi0gICAgICAgICAgIjAuMTE1OTUsIDAuMTM4MDYyLCAwLjMzNzYxNSwgMC42Njk2NDcsIDEuMDAxODgsIDEuNzc2MzMsIDIuMjIxNzYiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTI0NTE2LCAwLjEzNDE2MSwgMC4yMjA5NzUsIDAuMzY1NTk5LCAwLjUxMDMyMiwgMC44NDc4NjYsIDEuMDQwNzEiLCBcCi0gICAgICAgICAgIjAuMTMxMTQsIDAuMTQwNzg3LCAwLjIyNzYwMSwgMC4zNzIyMzQsIDAuNTE2OTQ3LCAwLjg1NDQ5NCwgMS4wNDczMyIsIFwKLSAgICAgICAgICAiMC4xMzk2MzQsIDAuMTQ5MjgxLCAwLjIzNjA5MiwgMC4zODA3ODMsIDAuNTI1NDUxLCAwLjg2MzAyOSwgMS4wNTU3MiIsIFwKLSAgICAgICAgICAiMC4xNDgyODMsIDAuMTU3OTI4LCAwLjI0NDc0LCAwLjM4OTQwOSwgMC41MzQwNjYsIDAuODcxNjQ1LCAxLjA2NDU2IiwgXAotICAgICAgICAgICIwLjE1NTMzMywgMC4xNjQ5NzcsIDAuMjUxNzk1LCAwLjM5NjQ1MiwgMC41NDExMjEsIDAuODc4NzE0LCAxLjA3MTYxIiwgXAotICAgICAgICAgICIwLjE2NDg5OSwgMC4xNzQ1NDUsIDAuMjYxMzQsIDAuNDA2MDIsIDAuNTUwNjgyLCAwLjg4ODI1MywgMS4wODExNSIsIFwKLSAgICAgICAgICAiMC4xNzE2MzUsIDAuMTgxMjkxLCAwLjI2ODA5NiwgMC40MTI3NjIsIDAuNTU3NDE3LCAwLjg5NDk4OCwgMS4wODc5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwMzgxMywgMC4xMjM1ODIsIDAuMzAyMDY0LCAwLjU5OTYxMywgMC44OTcwODcsIDEuNTg4NzcsIDEuOTg3NzYiLCBcCi0gICAgICAgICAgIjAuMTAzODIxLCAwLjEyMzYxMSwgMC4zMDIwNjEsIDAuNTk5NjI1LCAwLjg5Njk5NCwgMS41ODg3MiwgMS45ODc1MyIsIFwKLSAgICAgICAgICAiMC4xMDM4MDksIDAuMTIzNTg1LCAwLjMwMjA1NywgMC41OTk1NDYsIDAuODk3MTYsIDEuNTkxMjEsIDEuOTg3NSIsIFwKLSAgICAgICAgICAiMC4xMDM4MDMsIDAuMTIzNTgsIDAuMzAyMDQ3LCAwLjU5OTU2OCwgMC44OTcxODUsIDEuNTkwODcsIDEuOTgzOSIsIFwKLSAgICAgICAgICAiMC4xMDM4MDgsIDAuMTIzNTkzLCAwLjMwMjExMiwgMC41OTk2MiwgMC44OTcyMiwgMS41ODkyNiwgMS45ODc2MSIsIFwKLSAgICAgICAgICAiMC4xMDM3ODUsIDAuMTIzNTY0LCAwLjMwMjA0MywgMC41OTk0MDksIDAuODk3MTY0LCAxLjU4OTQxLCAxLjk4NzMiLCBcCi0gICAgICAgICAgIjAuMTAzNjM5LCAwLjEyMzM5NiwgMC4zMDIwMywgMC41OTk1NTMsIDAuODk2Nzg5LCAxLjU5MTU0LCAxLjk4NTQzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0tOIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQ4MjEsIDAuMDA0ODIyLCAwLjAwNDgyNywgMC4wMDQ4MjgsIDAuMDA0ODI5LCAwLjAwNDgyOSwgMC4wMDQ4MjgiLCBcCi0gICAgICAgICAgIjAuMDA0ODE2LCAwLjAwNDgxOCwgMC4wMDQ4MjIsIDAuMDA0ODIzLCAwLjAwNDgyNCwgMC4wMDQ4MjQsIDAuMDA0ODI0IiwgXAotICAgICAgICAgICIwLjAwNDg1OCwgMC4wMDQ4NiwgMC4wMDQ4NjMsIDAuMDA0ODY1LCAwLjAwNDg2NiwgMC4wMDQ4NjYsIDAuMDA0ODY2IiwgXAotICAgICAgICAgICIwLjAwNDkwMywgMC4wMDQ5MDUsIDAuMDA0OTA5LCAwLjAwNDkxMSwgMC4wMDQ5MTIsIDAuMDA0OTEyLCAwLjAwNDkxMiIsIFwKLSAgICAgICAgICAiMC4wMDQ5NjQsIDAuMDA0OTU0LCAwLjAwNDk3LCAwLjAwNDk2LCAwLjAwNDk3MiwgMC4wMDQ5NjEsIDAuMDA0OTczIiwgXAotICAgICAgICAgICIwLjAwNTA1NywgMC4wMDUwNiwgMC4wMDUwNjIsIDAuMDA1MDY0LCAwLjAwNTA2NSwgMC4wMDUwNjUsIDAuMDA1MDY2IiwgXAotICAgICAgICAgICIwLjAwNTE1LCAwLjAwNTE1MSwgMC4wMDUxNTUsIDAuMDA1MTU3LCAwLjAwNTE1OCwgMC4wMDUxNTgsIDAuMDA1MTU4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1NDksIDAuMDA1NDkxLCAwLjAwNTQ5NiwgMC4wMDU0OTgsIDAuMDA1NDk4LCAwLjAwNTQ5OSwgMC4wMDU0OTkiLCBcCi0gICAgICAgICAgIjAuMDA1NDkxLCAwLjAwNTQ5MywgMC4wMDU0OTcsIDAuMDA1NDk5LCAwLjAwNTQ5OSwgMC4wMDU1LCAwLjAwNTUiLCBcCi0gICAgICAgICAgIjAuMDA1NTM1LCAwLjAwNTUzNiwgMC4wMDU1NDEsIDAuMDA1NTQyLCAwLjAwNTU0MywgMC4wMDU1NDQsIDAuMDA1NTQzIiwgXAotICAgICAgICAgICIwLjAwNTU5NywgMC4wMDU1OTgsIDAuMDA1NjAzLCAwLjAwNTYwNSwgMC4wMDU2MDUsIDAuMDA1NjA1LCAwLjAwNTYwNSIsIFwKLSAgICAgICAgICAiMC4wMDU2NzQsIDAuMDA1Njc1LCAwLjAwNTY4LCAwLjAwNTY3MywgMC4wMDU2ODIsIDAuMDA1NjgzLCAwLjAwNTY3NCIsIFwKLSAgICAgICAgICAiMC4wMDU3NjksIDAuMDA1NzcsIDAuMDA1Nzc1LCAwLjAwNTc3NiwgMC4wMDU3NzcsIDAuMDA1Nzc3LCAwLjAwNTc3OCIsIFwKLSAgICAgICAgICAiMC4wMDU4NjYsIDAuMDA1ODY4LCAwLjAwNTg3MywgMC4wMDU4NzUsIDAuMDA1ODc1LCAwLjAwNTg3NiwgMC4wMDU4NzYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2MjUzLCAwLjAwNjI1MywgMC4wMDYyNDYsIDAuMDA2MjM5LCAwLjAwNjIzNiwgMC4wMDYyMzQsIDAuMDA2MjM1IiwgXAotICAgICAgICAgICIwLjAwNjI1OCwgMC4wMDYyNTgsIDAuMDA2MjUsIDAuMDA2MjQ0LCAwLjAwNjI0MSwgMC4wMDYyMzgsIDAuMDA2MjM3IiwgXAotICAgICAgICAgICIwLjAwNjI4MiwgMC4wMDYyODIsIDAuMDA2Mjc1LCAwLjAwNjI2OCwgMC4wMDYyNjUsIDAuMDA2MjYyLCAwLjAwNjI2MSIsIFwKLSAgICAgICAgICAiMC4wMDYzMjUsIDAuMDA2MzI0LCAwLjAwNjMxNywgMC4wMDYzMSwgMC4wMDYzMDcsIDAuMDA2MzA0LCAwLjAwNjMwMyIsIFwKLSAgICAgICAgICAiMC4wMDYzNzgsIDAuMDA2Mzc4LCAwLjAwNjM3MiwgMC4wMDYzNjUsIDAuMDA2MzYyLCAwLjAwNjM1OCwgMC4wMDYzNTciLCBcCi0gICAgICAgICAgIjAuMDA2NDc4LCAwLjAwNjQ3OCwgMC4wMDY0NywgMC4wMDY0NjMsIDAuMDA2NDU5LCAwLjAwNjQ1NiwgMC4wMDY0NTUiLCBcCi0gICAgICAgICAgIjAuMDA2NTY4LCAwLjAwNjU2OCwgMC4wMDY1NjEsIDAuMDA2NTUzLCAwLjAwNjU0OSwgMC4wMDY1NDUsIDAuMDA2NTQ0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHNjYWxhcikgewotICAgICAgICB2YWx1ZXMoIjAiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0NDk3LCAwLjAwNDQ5OCwgMC4wMDQ1MDIsIDAuMDA0NTA0LCAwLjAwNDUwNCwgMC4wMDQ1MDUsIDAuMDA0NTA1IiwgXAotICAgICAgICAgICIwLjAwNDQ2NiwgMC4wMDQ0NjgsIDAuMDA0NDcyLCAwLjAwNDQ3NCwgMC4wMDQ0NzQsIDAuMDA0NDc0LCAwLjAwNDQ3NCIsIFwKLSAgICAgICAgICAiMC4wMDQ0NTUsIDAuMDA0NDU3LCAwLjAwNDQ2MSwgMC4wMDQ0NjIsIDAuMDA0NDYzLCAwLjAwNDQ2MywgMC4wMDQ0NjMiLCBcCi0gICAgICAgICAgIjAuMDA0NDYzLCAwLjAwNDQ2NCwgMC4wMDQ0NjgsIDAuMDA0NDcsIDAuMDA0NDcsIDAuMDA0NDcsIDAuMDA0NDcxIiwgXAotICAgICAgICAgICIwLjAwNDQ3NiwgMC4wMDQ0NzgsIDAuMDA0NDgyLCAwLjAwNDQ4NCwgMC4wMDQ0ODQsIDAuMDA0NDg1LCAwLjAwNDQ4NSIsIFwKLSAgICAgICAgICAiMC4wMDQ1MjIsIDAuMDA0NTI0LCAwLjAwNDUzMSwgMC4wMDQ1MzIsIDAuMDA0NTMzLCAwLjAwNDUzMywgMC4wMDQ1MzQiLCBcCi0gICAgICAgICAgIjAuMDA0NTcsIDAuMDA0NTcxLCAwLjAwNDU3NiwgMC4wMDQ1NzcsIDAuMDA0NTc4LCAwLjAwNDU3OCwgMC4wMDQ1NzgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDYwMDYsIDAuMDA2MDA3LCAwLjAwNjAxMSwgMC4wMDYwMTMsIDAuMDA2MDEzLCAwLjAwNjAxNCwgMC4wMDYwMTQiLCBcCi0gICAgICAgICAgIjAuMDA1OTk0LCAwLjAwNTk5NiwgMC4wMDYsIDAuMDA2MDAxLCAwLjAwNjAwMiwgMC4wMDYwMDIsIDAuMDA2MDAyIiwgXAotICAgICAgICAgICIwLjAwNjAxLCAwLjAwNjAxMSwgMC4wMDYwMTUsIDAuMDA2MDE3LCAwLjAwNjAxNywgMC4wMDYwMTgsIDAuMDA2MDE4IiwgXAotICAgICAgICAgICIwLjAwNjA1MywgMC4wMDYwNTQsIDAuMDA2MDU5LCAwLjAwNjA2LCAwLjAwNjA2MSwgMC4wMDYwNjEsIDAuMDA2MDYxIiwgXAotICAgICAgICAgICIwLjAwNjEwNywgMC4wMDYxMDgsIDAuMDA2MTEyLCAwLjAwNjExNCwgMC4wMDYxMTQsIDAuMDA2MTE1LCAwLjAwNjExNSIsIFwKLSAgICAgICAgICAiMC4wMDYyMTcsIDAuMDA2MjIsIDAuMDA2MjI0LCAwLjAwNjIyNiwgMC4wMDYyMjYsIDAuMDA2MjI3LCAwLjAwNjIyNyIsIFwKLSAgICAgICAgICAiMC4wMDYzMzYsIDAuMDA2MzM3LCAwLjAwNjM0MiwgMC4wMDYzNDIsIDAuMDA2MzQ0LCAwLjAwNjM0NCwgMC4wMDYzNDUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFJOKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2NjQ1Njk7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjY0NTY5OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDY2NDUyMzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA1OTgsIDAuMDAwNTkzLCAwLjAwMDY2NSwgMC4wMDA3NjEsIDAuMDAwODc1LCAwLjAwMTA5LCAwLjAwMTI3NyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzE2MSwgMC4wMDMxNjQsIDAuMDAzMjI4LCAwLjAwMzMxNiwgMC4wMDM0MzgsIDAuMDAzNjY5LCAwLjAwMzg0OSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQmU04iOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4xNjAyOTUsIDAuMTY4MTczLCAwLjE3NjM4MywgMC4xODI0MSwgMC4xODcxNTYsIDAuMTkzNzAxLCAwLjE5ODQ4OSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDS04iOwotICAgICAgdGltaW5nX3R5cGUgOiByZWNvdmVyeV9mYWxsaW5nOwotICAgICAgd2hlbiA6ICJEJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMV9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHJlY292ZXJ5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyNSwgMC4wMiwgMC4wMDc1LCAwLjAwMTI1LCAtMC4wMDUsIC0wLjAwODc1LCAtMC4wMTc1IiwgXAotICAgICAgICAgICIwLjAzNjI1LCAwLjAyNSwgMC4wMTg3NSwgMC4wMTI1LCAwLjAwNjI1LCAtMC4wMDM3NSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMDQyNSwgMC4wMzEyNSwgMC4wMjUsIDAuMDE4NzUsIDAuMDEyNSwgMC4wMDI1LCAwIiwgXAotICAgICAgICAgICIwLjA0ODc1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDI1LCAwLjAxODc1LCAwLjAwODc1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICIwLjA1NSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAyNSwgMC4wMjUsIDAuMDE1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMDU4NzUsIDAuMDQ3NSwgMC4wNDEyNSwgMC4wMzUsIDAuMDI4NzUsIDAuMDI1LCAwLjAxNjI1IiwgXAotICAgICAgICAgICIwLjA2MTI1LCAwLjA1NjI1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDI3NSwgMC4wMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiU04iOwotICAgICAgdGltaW5nX3R5cGUgOiByZWNvdmVyeV9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEIjsKLSAgICAgIHNkZl9jb25kIDogIkQgPT0gMSdiMCI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQocmVjb3ZlcnlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDUsIDAuMDU1LCAwLjA2MTI1LCAwLjA2NzUsIDAuMDczNzUsIDAuMDgzNzUsIDAuMDkyNSIsIFwKLSAgICAgICAgICAiMC4wNDUsIDAuMDUsIDAuMDU2MjUsIDAuMDYyNSwgMC4wNjg3NSwgMC4wNzg3NSwgMC4wODEyNSIsIFwKLSAgICAgICAgICAiMC4wMzg3NSwgMC4wNDM3NSwgMC4wNSwgMC4wNTYyNSwgMC4wNjI1LCAwLjA3MjUsIDAuMDgxMjUiLCBcCi0gICAgICAgICAgIjAuMDM4NzUsIDAuMDQzNzUsIDAuMDUsIDAuMDU2MjUsIDAuMDYyNSwgMC4wNzI1LCAwLjA3NSIsIFwKLSAgICAgICAgICAiMC4wMzI1LCAwLjA0Mzc1LCAwLjA1LCAwLjA1NjI1LCAwLjA2MjUsIDAuMDY2MjUsIDAuMDc1IiwgXAotICAgICAgICAgICIwLjAzNSwgMC4wNCwgMC4wNDYyNSwgMC4wNTI1LCAwLjA1ODc1LCAwLjA2MjUsIDAuMDcxMjUiLCBcCi0gICAgICAgICAgIjAuMDMyNSwgMC4wMzc1LCAwLjA0Mzc1LCAwLjA1LCAwLjA1NjI1LCAwLjA2NjI1LCAwLjA2ODc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJlbW92YWxfZmFsbGluZzsKLSAgICAgIHdoZW4gOiAiRCZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzFfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChyZW1vdmFsX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLCAwLjAxMTI1LCAwLjAxNzUsIDAuMDIzNzUsIDAuMDMsIDAuMDMzNzUsIDAuMDQyNSIsIFwKLSAgICAgICAgICAiLTAuMDA1LCAwLCAwLjAwNjI1LCAwLjAxMjUsIDAuMDE4NzUsIDAuMDI4NzUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjAxNzUsIC0wLjAwNjI1LCAwLCAwLjAwNjI1LCAwLjAxMjUsIDAuMDE2MjUsIDAuMDI1IiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAsIDAuMDA2MjUsIDAuMDEsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAsIDAuMDEsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDMzNzUsIC0wLjAyMjUsIC0wLjAxNjI1LCAtMC4wMSwgLTAuMDAzNzUsIDAsIDAuMDA4NzUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAxMjUsIC0wLjAwMjUsIDAiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFNOKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE2OTgwNTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE2OTgwNTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE2OTc4MzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA1OTMsIDAuMDAwNTkyLCAwLjAwMDU5MywgMC4wMDA1OTIsIDAuMDAwNTkyLCAwLjAwMDU5MiwgMC4wMDA1OTIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA2MDEsIDAuMDAwNTk2LCAwLjAwMDU5NSwgMC4wMDA1OTUsIDAuMDAwNTk1LCAwLjAwMDU5NCwgMC4wMDA1OTQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiU04iOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFEJiFSTiI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fUk5fRVFfMCA9PSAxJ2IxIjsKLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjEyNDQ3NiwgMC4xMzExNCwgMC4xMzk2MzQsIDAuMTQ4MjgzLCAwLjE1NTMzMywgMC4xNjQ4OTksIDAuMTcxNjM1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJlY292ZXJ5X2ZhbGxpbmc7Ci0gICAgICB3aGVuIDogIiFEJlJOIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9STl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHJlY292ZXJ5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyNSwgMC4wMTM3NSwgMC4wMDc1LCAwLjAwMTI1LCAtMC4wMDUsIC0wLjAwODc1LCAtMC4wMTEyNSIsIFwKLSAgICAgICAgICAiMC4wMywgMC4wMTg3NSwgMC4wMTI1LCAwLjAwNjI1LCAwLCAtMC4wMDM3NSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMDM2MjUsIDAuMDMxMjUsIDAuMDE4NzUsIDAuMDEyNSwgMC4wMTI1LCAwLjAwMjUsIDAiLCBcCi0gICAgICAgICAgIjAuMDQyNSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMTg3NSwgMC4wMDg3NSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiMC4wNTUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMjUsIDAuMDIxMjUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4wNjUsIDAuMDUzNzUsIDAuMDQ3NSwgMC4wNDEyNSwgMC4wMzUsIDAuMDMxMjUsIDAuMDIyNSIsIFwKLSAgICAgICAgICAiMC4wNzM3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1LCAwLjA0Mzc1LCAwLjA0LCAwLjAzMTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJlbW92YWxfZmFsbGluZzsKLSAgICAgIHdoZW4gOiAiIUQmUk4iOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1JOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQocmVtb3ZhbF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDYyNSwgMC4wMTc1LCAwLjAyMzc1LCAwLjAzLCAwLjAzNjI1LCAwLjA0LCAwLjA0MjUiLCBcCi0gICAgICAgICAgIjAuMDAxMjUsIDAuMDA2MjUsIDAuMDE4NzUsIDAuMDI1LCAwLjAyNSwgMC4wMzUsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDA1LCAwLCAwLjAxMjUsIDAuMDE4NzUsIDAuMDE4NzUsIDAuMDI4NzUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjAxMTI1LCAwLCAwLjAwNjI1LCAwLjAxMjUsIDAuMDE4NzUsIDAuMDIyNSwgMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjAxMTI1LCAtMC4wMDYyNSwgMCwgMC4wMDYyNSwgMC4wMTI1LCAwLjAxNjI1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDIxMjUsIC0wLjAxLCAtMC4wMDM3NSwgMC4wMDI1LCAwLjAwODc1LCAwLjAxMjUsIDAuMDE1IiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAsIDAuMDA2MjUsIDAuMDEsIDAuMDEyNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBERkZSSFFYMSAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoREZGUkhRWDEpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC45NDA3NDc7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgZmYgKE4zMCxRQklOVCkgewotICAgIG5leHRfc3RhdGUgOiAiRCI7Ci0gICAgY2xvY2tlZF9vbiA6ICJDSyI7Ci0gICAgY2xlYXIgOiAiKCFSTikiOwotICB9Ci0gIHBpbihDSykgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjM1MTM7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjM1MTM7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjM1MDY4OwotICAgIGNsb2NrIDogdHJ1ZTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDM5OTQsIDAuMDAzOTksIDAuMDA0MDYzLCAwLjAwNDE0OSwgMC4wMDQyNjMsIDAuMDA0NTA5LCAwLjAwNDcxMyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAxMDU4LCAwLjAxMDU2OSwgMC4wMTA2MzYsIDAuMDEwNzMzLCAwLjAxMDg1OSwgMC4wMTA5ODgsIDAuMDExMTU4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRCZSTiI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fUk5fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjEwODYsIDAuMTE2ODU3LCAwLjEyNjU1MSwgMC4xMzQ2OTQsIDAuMTQxMjkzLCAwLjE0OTc4NywgMC4xNTYxODgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjA3NzE2OSwgMC4wODUyOTYsIDAuMDk0OTY0LCAwLjEwMjQ3MSwgMC4xMDg3MTIsIDAuMTE2ODI0LCAwLjEyMjYyNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwODY0Mzg1OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDg2MjQ5ODsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA4NjQzODU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzNTA0LCAwLjAwMzQ2MSwgMC4wMDM0OTgsIDAuMDAzNTQ5LCAwLjAwMzYzLCAwLjAwMzc5OSwgMC4wMDM5ODYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDQ2MjYsIDAuMDA0NTk4LCAwLjAwNDYyNCwgMC4wMDQ2ODUsIDAuMDA0NzY0LCAwLjAwNDg5NCwgMC4wMDUwOCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJSTiI7Ci0gICAgICBzZGZfY29uZCA6ICJSTiA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMTI1LCAtMC4wMDEyNSwgLTAuMDAxMjUsIDAuMDA1LCAwLjAwNSwgMC4wMDg3NSwgMC4wMTEyNSIsIFwKLSAgICAgICAgICAiLTAuMDE3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAsIDAsIDAuMDAzNzUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIC0wLjAwNjI1LCAtMC4wMDI1LCAwIiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAxMjUsIC0wLjAwNjI1LCAtMC4wMDI1LCAwIiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDEyNSwgLTAuMDA4NzUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wNCwgLTAuMDI4NzUsIC0wLjAyMjUsIC0wLjAyMjUsIC0wLjAxNjI1LCAtMC4wMTI1LCAtMC4wMSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDI1LCAtMC4wMTUsIC0wLjAxMjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxODc1LCAwLjAzLCAwLjAzNjI1LCAwLjA0MjUsIDAuMDQ4NzUsIDAuMDU4NzUsIDAuMDYxMjUiLCBcCi0gICAgICAgICAgIjAuMDEzNzUsIDAuMDI1LCAwLjAzMTI1LCAwLjAzNzUsIDAuMDQzNzUsIDAuMDUzNzUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIjAuMDEzNzUsIDAuMDE4NzUsIDAuMDI1LCAwLjAzNzUsIDAuMDM3NSwgMC4wNDc1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICIwLjAwNzUsIDAuMDE4NzUsIDAuMDI1LCAwLjAzMTI1LCAwLjAzNzUsIDAuMDQ3NSwgMC4wNSIsIFwKLSAgICAgICAgICAiMC4wMDc1LCAwLjAxMjUsIDAuMDI1LCAwLjAzMTI1LCAwLjAzNzUsIDAuMDQ3NSwgMC4wNSIsIFwKLSAgICAgICAgICAiMC4wMDM3NSwgMC4wMTUsIDAuMDIxMjUsIDAuMDI3NSwgMC4wMzM3NSwgMC4wNDM3NSwgMC4wNDYyNSIsIFwKLSAgICAgICAgICAiMC4wMDc1LCAwLjAxMjUsIDAuMDE4NzUsIDAuMDMxMjUsIDAuMDMxMjUsIDAuMDQxMjUsIDAuMDUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlJOIjsKLSAgICAgIHNkZl9jb25kIDogIlJOID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyNSwgMC4wMiwgMC4wMTM3NSwgMC4wMDc1LCAwLjAwNzUsIDAuMDAzNzUsIDAuMDAxMjUiLCBcCi0gICAgICAgICAgIjAuMDMsIDAuMDI1LCAwLjAxODc1LCAwLjAxMjUsIDAuMDEyNSwgMC4wMDg3NSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiMC4wNDI1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMTg3NSwgMC4wMTg3NSwgMC4wMTUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4wNDI1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDI1LCAwLjAyNSwgMC4wMjEyNSwgMC4wMTI1IiwgXAotICAgICAgICAgICIwLjA0ODc1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDI1LCAwLjAyMTI1LCAwLjAxODc1IiwgXAotICAgICAgICAgICIwLjA1ODc1LCAwLjA0NzUsIDAuMDQxMjUsIDAuMDM1LCAwLjAzNSwgMC4wMzEyNSwgMC4wMjg3NSIsIFwKLSAgICAgICAgICAiMC4wNjEyNSwgMC4wNTYyNSwgMC4wNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzMzc1LCAwLjAzMTI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2MjUsIC0wLjAwNSwgLTAuMDExMjUsIC0wLjAyMzc1LCAtMC4wMywgLTAuMDMzNzUsIC0wLjA0MjUiLCBcCi0gICAgICAgICAgIjAuMDExMjUsIDAsIC0wLjAwNjI1LCAtMC4wMTI1LCAtMC4wMjUsIC0wLjAyODc1LCAtMC4wMzc1IiwgXAotICAgICAgICAgICIwLjAxNzUsIDAuMDA2MjUsIDAsIC0wLjAwNjI1LCAtMC4wMTg3NSwgLTAuMDIyNSwgLTAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMDIzNzUsIDAuMDEyNSwgMC4wMDYyNSwgLTAuMDA2MjUsIC0wLjAxMjUsIC0wLjAyMjUsIC0wLjAyNSIsIFwKLSAgICAgICAgICAiMC4wMywgMC4wMTg3NSwgMC4wMDYyNSwgMCwgLTAuMDA2MjUsIC0wLjAxNjI1LCAtMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMDMzNzUsIDAuMDIyNSwgMC4wMSwgMC4wMDM3NSwgLTAuMDAyNSwgLTAuMDEyNSwgLTAuMDE1IiwgXAotICAgICAgICAgICIwLjAzNjI1LCAwLjAyNSwgMC4wMTg3NSwgMC4wMDYyNSwgMCwgLTAuMDEsIC0wLjAxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFEpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4zNDc0MzU7Ci0gICAgZnVuY3Rpb24gOiAiTjMwIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBub25fdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJpc2luZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDkyMzgsIDAuMTI3OTIzLCAwLjIzMzE2MiwgMC4zMjYxMzUsIDAuNDUwMTI1LCAwLjY5ODM0MiwgMC44NTMzNjEiLCBcCi0gICAgICAgICAgIjAuMTE3NDYsIDAuMTM2MTQ3LCAwLjI0MTM2NSwgMC4zMzQzNTcsIDAuNDU4MzU5LCAwLjcwNjQ1MiwgMC44NjE1OCIsIFwKLSAgICAgICAgICAiMC4xMjcxMSwgMC4xNDU4MDMsIDAuMjUxMDI4LCAwLjM0Mzk5OSwgMC40NjgwMzQsIDAuNzE2MTU5LCAwLjg3MTI1MSIsIFwKLSAgICAgICAgICAiMC4xMzQ3NjIsIDAuMTUzNDYxLCAwLjI1ODcyLCAwLjM1MTY2LCAwLjQ3NTYzNCwgMC43MjM4MDYsIDAuODc4OTQzIiwgXAotICAgICAgICAgICIwLjE0MTM5OSwgMC4xNjAwOTksIDAuMjY1MzQ2LCAwLjM1ODMwMiwgMC40ODIyODksIDAuNzMwMzg4LCAwLjg4NTU1NSIsIFwKLSAgICAgICAgICAiMC4xNDk3MTksIDAuMTY4NDQ1LCAwLjI3MzY3MSwgMC4zNjY2NTcsIDAuNDkwNTk3LCAwLjczODY2NCwgMC44OTM2OTgiLCBcCi0gICAgICAgICAgIjAuMTU2MTc5LCAwLjE3NDg5OCwgMC4yODAwODQsIDAuMzczMTUxLCAwLjQ5NzA0NiwgMC43NDUwMywgMC45MDAxMiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzM5MzMsIDAuMTExNzk1LCAwLjMzMTcyLCAwLjUyNzIsIDAuNzg5NDExLCAxLjMxMDM1LCAxLjYzOTEzIiwgXAotICAgICAgICAgICIwLjA3MzkzOSwgMC4xMTE4MzgsIDAuMzMyMjQsIDAuNTI4MTQyLCAwLjc4OTQyMiwgMS4zMTIyNiwgMS42MzkxNSIsIFwKLSAgICAgICAgICAiMC4wNzM5MzMsIDAuMTExODAxLCAwLjMzMTg0NiwgMC41Mjc0OTQsIDAuNzg5NDMsIDEuMzEwMjgsIDEuNjM2NTgiLCBcCi0gICAgICAgICAgIjAuMDczOTM2LCAwLjExMTc5NiwgMC4zMzIzMDcsIDAuNTI4MDk0LCAwLjc4ODY4MywgMS4zMTAyOCwgMS42MzY2MiIsIFwKLSAgICAgICAgICAiMC4wNzM5NjcsIDAuMTExODIxLCAwLjMzMTcyOCwgMC41MjcxMjksIDAuNzg5MzksIDEuMzA5ODEsIDEuNjM2MTgiLCBcCi0gICAgICAgICAgIjAuMDczODkxLCAwLjExMTg3NCwgMC4zMzE5LCAwLjUyODAxNSwgMC43ODg2OCwgMS4zMDk5OCwgMS42Mzg4NiIsIFwKLSAgICAgICAgICAiMC4wNzQwMTMsIDAuMTExODExLCAwLjMzMjIyMywgMC41MjcyNzEsIDAuNzg5MjkxLCAxLjMxMjA3LCAxLjYzNjU4Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwODYsIDAuMTI2NzQ1LCAwLjIyOTMzNywgMC4zMTk4MjksIDAuNDQwNDg4LCAwLjY4MTY4MiwgMC44MzI0MzMiLCBcCi0gICAgICAgICAgIjAuMTE2ODU3LCAwLjEzNTAwMywgMC4yMzc2MDEsIDAuMzI4MTAzLCAwLjQ0ODcwNCwgMC42ODk4OTQsIDAuODQwNyIsIFwKLSAgICAgICAgICAiMC4xMjY1NTEsIDAuMTQ0Njk3LCAwLjI0NzMsIDAuMzM3NzU4LCAwLjQ1ODM5LCAwLjY5OTYyMSwgMC44NTA0IiwgXAotICAgICAgICAgICIwLjEzNDY5NCwgMC4xNTI4NDEsIDAuMjU1NDM1LCAwLjM0NTkwNSwgMC40NjY1NzUsIDAuNzA3Nzc2LCAwLjg1ODQ4MyIsIFwKLSAgICAgICAgICAiMC4xNDEyOTMsIDAuMTU5NDMxLCAwLjI2MjAxOSwgMC4zNTI0ODksIDAuNDczMTU0LCAwLjcxNDM0MywgMC44NjUwOSIsIFwKLSAgICAgICAgICAiMC4xNDk3ODcsIDAuMTY3OTMzLCAwLjI3MDQ5OCwgMC4zNjA5NywgMC40ODE2MzgsIDAuNzIyODEzLCAwLjg3MzU3IiwgXAotICAgICAgICAgICIwLjE1NjE4OCwgMC4xNzQzNzEsIDAuMjc2ODk5LCAwLjM2NzM5NiwgMC40ODgwNTUsIDAuNzI5Mjc1LCAwLjg4MDAyMiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjc4ODcsIDAuMTA0NTIxLCAwLjMxNTMxNywgMC41MDEwMzYsIDAuNzQ5MDgsIDEuMjQ4MDksIDEuNTU2NzkiLCBcCi0gICAgICAgICAgIjAuMDY3ODczLCAwLjEwNDY2OSwgMC4zMTUwMDMsIDAuNTAwODUxLCAwLjc0OTI3LCAxLjI0Nzg3LCAxLjU1NzA0IiwgXAotICAgICAgICAgICIwLjA2Nzg4LCAwLjEwNDY3MywgMC4zMTU0ODEsIDAuNTAxMjM5LCAwLjc0OTEzNywgMS4yNDY3LCAxLjU1Njc0IiwgXAotICAgICAgICAgICIwLjA2Nzg3NCwgMC4xMDQ2NzMsIDAuMzE1NDU1LCAwLjUwMTM1NSwgMC43NDkyMTQsIDEuMjQ1NzgsIDEuNTU4NzMiLCBcCi0gICAgICAgICAgIjAuMDY3ODg3LCAwLjEwNDY3LCAwLjMxNTQ1LCAwLjUwMTM0NSwgMC43NDkxOTIsIDEuMjQ2NywgMS41NTY3OSIsIFwKLSAgICAgICAgICAiMC4wNjc5MDgsIDAuMTA0NzEsIDAuMzE1MzU1LCAwLjUwMTI0OSwgMC43NDkwNzgsIDEuMjQ2NDksIDEuNTU2NjIiLCBcCi0gICAgICAgICAgIjAuMDY3OTQ1LCAwLjEwNDQ2NiwgMC4zMTUzNTMsIDAuNTAxOTYyLCAwLjc1MDc1MiwgMS4yNDU3MywgMS41NTg5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiBjbGVhcjsKLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU0NDIyLCAwLjA3MjU5LCAwLjE3NTEyOCwgMC4yNjU2MjUsIDAuMzg2MjU4LCAwLjYyNzQ0OSwgMC43NzgzMDIiLCBcCi0gICAgICAgICAgIjAuMDYyNTExLCAwLjA4MDY4OSwgMC4xODMyNjgsIDAuMjczNzE3LCAwLjM5NDM0NiwgMC42MzU1OSwgMC43ODY0MzUiLCBcCi0gICAgICAgICAgIjAuMDcwOTE4LCAwLjA4OTA4OCwgMC4xOTE2NTEsIDAuMjgyMTIxLCAwLjQwMjc1OCwgMC42NDM5ODcsIDAuNzk0NzQiLCBcCi0gICAgICAgICAgIjAuMDc3MTk0LCAwLjA5NTM1MiwgMC4xOTc5MTcsIDAuMjg4Mzg0LCAwLjQwOTAxOSwgMC42NTAyNDYsIDAuODAwOTk2IiwgXAotICAgICAgICAgICIwLjA4MjEzMSwgMC4xMDAzNTcsIDAuMjAyODUyLCAwLjI5MzMyMywgMC40MTM5NDIsIDAuNjU1MTg4LCAwLjgwNTkzOSIsIFwKLSAgICAgICAgICAiMC4wODg1NDcsIDAuMTA2NzMyLCAwLjIwOTMxMiwgMC4yOTk3NjksIDAuNDIwNDAzLCAwLjY2MTYxLCAwLjgxMjQwNyIsIFwKLSAgICAgICAgICAiMC4wOTMyMTMsIDAuMTExMzg2LCAwLjIxMzkyOCwgMC4zMDQzOTksIDAuNDI0OTk2LCAwLjY2NjIyMSwgMC44MTY5NzkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY3OTU4LCAwLjEwNDU1NCwgMC4zMTUxNSwgMC41MDE1MTYsIDAuNzUwMzg2LCAxLjI0NzcyLCAxLjU1OSIsIFwKLSAgICAgICAgICAiMC4wNjc5NzQsIDAuMTA0NTQ0LCAwLjMxNTA1OCwgMC41MDE2MjUsIDAuNzUwMzc3LCAxLjI0Nzc2LCAxLjU1ODk1IiwgXAotICAgICAgICAgICIwLjA2ODM1MiwgMC4xMDQ3NTEsIDAuMzE0OTA5LCAwLjUwMTYzNCwgMC43NTAzNzcsIDEuMjQ3NjgsIDEuNTU4NDUiLCBcCi0gICAgICAgICAgIjAuMDY4OTQ3LCAwLjEwNTEyNSwgMC4zMTUxNDEsIDAuNTAxNjAzLCAwLjc0OTI4OCwgMS4yNDc2OCwgMS41NTg0NCIsIFwKLSAgICAgICAgICAiMC4wNjk1MTIsIDAuMTA1NDUzLCAwLjMxNTE1LCAwLjUwMTMxNSwgMC43NTAzMDksIDEuMjQ3NjcsIDEuNTU4NjIiLCBcCi0gICAgICAgICAgIjAuMDcwMzE0LCAwLjEwNjAyMywgMC4zMTUzMzUsIDAuNTAxMDc2LCAwLjc1MDMzLCAxLjI0Nzk0LCAxLjU1ODU2IiwgXAotICAgICAgICAgICIwLjA3MTAzNiwgMC4xMDY0NjMsIDAuMzE1MjMzLCAwLjUwMTY5OCwgMC43NDkzNDksIDEuMjQ3NywgMS41NTg0NCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDkyMDEsIDAuMDA5MTc2LCAwLjAwOTA5MywgMC4wMDkwNjQsIDAuMDA5MDQ1LCAwLjAwOTAyOSwgMC4wMDkwMjMiLCBcCi0gICAgICAgICAgIjAuMDA5MTkzLCAwLjAwOTE2OSwgMC4wMDkwODYsIDAuMDA5MDU2LCAwLjAwOTAzNywgMC4wMDkwMTksIDAuMDA5MDE1IiwgXAotICAgICAgICAgICIwLjAwOTI2NCwgMC4wMDkyNDIsIDAuMDA5MTU5LCAwLjAwOTEzLCAwLjAwOTExLCAwLjAwOTA5MSwgMC4wMDkwODUiLCBcCi0gICAgICAgICAgIjAuMDA5NDA1LCAwLjAwOTM4NCwgMC4wMDkzMDQsIDAuMDA5MjczLCAwLjAwOTI1MiwgMC4wMDkyMzIsIDAuMDA5MjI2IiwgXAotICAgICAgICAgICIwLjAwOTQ5OCwgMC4wMDk0NzksIDAuMDA5NCwgMC4wMDkzNywgMC4wMDkzNDgsIDAuMDA5MzI4LCAwLjAwOTMyMSIsIFwKLSAgICAgICAgICAiMC4wMDk3MzUsIDAuMDA5NzE3LCAwLjAwOTY0LCAwLjAwOTYwOSwgMC4wMDk1ODUsIDAuMDA5NTYzLCAwLjAwOTU1NiIsIFwKLSAgICAgICAgICAiMC4wMDk4NzgsIDAuMDA5ODYxLCAwLjAwOTgxNywgMC4wMDk3NTIsIDAuMDA5NzI4LCAwLjAwOTczNiwgMC4wMDk3MjgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDk1OTIsIDAuMDA5NjA1LCAwLjAwOTYyMywgMC4wMDk2MjcsIDAuMDA5NjI5LCAwLjAwOTYzMiwgMC4wMDk2MzIiLCBcCi0gICAgICAgICAgIjAuMDA5NTkxLCAwLjAwOTYwMywgMC4wMDk2MjIsIDAuMDA5NjI2LCAwLjAwOTYyOCwgMC4wMDk2MywgMC4wMDk2MzEiLCBcCi0gICAgICAgICAgIjAuMDA5Njg5LCAwLjAwOTcwMSwgMC4wMDk3MTgsIDAuMDA5NzIyLCAwLjAwOTcyNSwgMC4wMDk3MjcsIDAuMDA5NzI3IiwgXAotICAgICAgICAgICIwLjAwOTgxNCwgMC4wMDk4MjYsIDAuMDA5ODQzLCAwLjAwOTg0NiwgMC4wMDk4NDgsIDAuMDA5ODUsIDAuMDA5ODUiLCBcCi0gICAgICAgICAgIjAuMDA5OTQxLCAwLjAwOTk1MiwgMC4wMDk5NjcsIDAuMDA5OTcsIDAuMDA5OTcxLCAwLjAwOTk3MywgMC4wMDk5NzMiLCBcCi0gICAgICAgICAgIjAuMDEwMTg4LCAwLjAxMDE5OCwgMC4wMTAyMTIsIDAuMDEwMjE0LCAwLjAxMDIxNSwgMC4wMTAyMTUsIDAuMDEwMjE1IiwgXAotICAgICAgICAgICIwLjAxMDQxMSwgMC4wMTA0MDUsIDAuMDEwNDM2LCAwLjAxMDQzNSwgMC4wMTA0MTksIDAuMDEwNDE5LCAwLjAxMDQxOSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTA3ODcsIDAuMDEwNzk4LCAwLjAxMDgxLCAwLjAxMDgxMywgMC4wMTA4MTUsIDAuMDEwODE2LCAwLjAxMDgxNiIsIFwKLSAgICAgICAgICAiMC4wMTA3NDIsIDAuMDEwNzU3LCAwLjAxMDc3NCwgMC4wMTA3NzgsIDAuMDEwNzgsIDAuMDEwNzgyLCAwLjAxMDc4MyIsIFwKLSAgICAgICAgICAiMC4wMTA3NzYsIDAuMDEwNzksIDAuMDEwODEyLCAwLjAxMDgxOCwgMC4wMTA4MjEsIDAuMDEwODI0LCAwLjAxMDgyNCIsIFwKLSAgICAgICAgICAiMC4wMTA4NzEsIDAuMDEwODg2LCAwLjAxMDkwOSwgMC4wMTA5MTYsIDAuMDEwOTE5LCAwLjAxMDkyMywgMC4wMTA5MjQiLCBcCi0gICAgICAgICAgIjAuMDExMDA0LCAwLjAxMTAwOCwgMC4wMTEwMzcsIDAuMDExMDQ2LCAwLjAxMTA0OSwgMC4wMTEwNTMsIDAuMDExMDU0IiwgXAotICAgICAgICAgICIwLjAxMTI2MiwgMC4wMTEyNjcsIDAuMDExMjk0LCAwLjAxMTI5OSwgMC4wMTEzMDQsIDAuMDExMzA3LCAwLjAxMTMwOSIsIFwKLSAgICAgICAgICAiMC4wMTE1NDEsIDAuMDExNTQ3LCAwLjAxMTU3MSwgMC4wMTE1NzgsIDAuMDExNTgyLCAwLjAxMTU4NSwgMC4wMTE1ODciKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfcG93ZXIoc2NhbGFyKSB7Ci0gICAgICAgIHZhbHVlcygiMCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUk4pICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTY3MjUyOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTU0NDE7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNjcyNTI7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwODQyLCAwLjAwMDg0MSwgMC4wMDA4NDEsIDAuMDAwODQxLCAwLjAwMDg0MSwgMC4wMDA4NCwgMC4wMDA4NDEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA4NjQsIDAuMDAwODQ5LCAwLjAwMDg0NywgMC4wMDA4NDcsIDAuMDAwODQ2LCAwLjAwMDg0NSwgMC4wMDA4NDYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUk4iOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFEIjsKLSAgICAgIHNkZl9jb25kIDogIkQgPT0gMSdiMCI7Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wNTY5MTEsIDAuMDYzNTU3LCAwLjA3MDkxNiwgMC4wNzcxOTMsIDAuMDgyMTMxLCAwLjA4ODU0NywgMC4wOTMyMTMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiByZWNvdmVyeV9yaXNpbmc7Ci0gICAgICB3aGVuIDogIkQiOwotICAgICAgc2RmX2NvbmQgOiAiRCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChyZWNvdmVyeV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDMxMjUsIC0wLjAzNjI1LCAtMC4wNDg3NSwgLTAuMDU1LCAtMC4wNjEyNSwgLTAuMDcxMjUsIC0wLjA4IiwgXAotICAgICAgICAgICItMC4wMzI1LCAtMC4wMzc1LCAtMC4wNSwgLTAuMDU2MjUsIC0wLjA2MjUsIC0wLjA3MjUsIC0wLjA4MTI1IiwgXAotICAgICAgICAgICItMC4wMjYyNSwgLTAuMDMxMjUsIC0wLjA0Mzc1LCAtMC4wNSwgLTAuMDU2MjUsIC0wLjA2NjI1LCAtMC4wNzUiLCBcCi0gICAgICAgICAgIi0wLjAxMzc1LCAtMC4wMTg3NSwgLTAuMDMxMjUsIC0wLjA0Mzc1LCAtMC4wNSwgLTAuMDYsIC0wLjA2MjUiLCBcCi0gICAgICAgICAgIi0wLjAwMTI1LCAtMC4wMDYyNSwgLTAuMDE4NzUsIC0wLjAzMTI1LCAtMC4wMzc1LCAtMC4wNDc1LCAtMC4wNSIsIFwKLSAgICAgICAgICAiMC4wMjEyNSwgMC4wMTYyNSwgLTAuMDAyNSwgLTAuMDA4NzUsIC0wLjAxNSwgLTAuMDI1LCAtMC4wMzM3NSIsIFwKLSAgICAgICAgICAiMC4wNDI1LCAwLjAzMTI1LCAwLjAxODc1LCAwLjAwNjI1LCAwLCAtMC4wMSwgLTAuMDE4NzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiByZW1vdmFsX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiRCI7Ci0gICAgICBzZGZfY29uZCA6ICJEID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHJlbW92YWxfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQzNzUsIDAuMDU1LCAwLjA2MTI1LCAwLjA2NzUsIDAuMDczNzUsIDAuMDgzNzUsIDAuMDkyNSIsIFwKLSAgICAgICAgICAiMC4wNTEyNSwgMC4wNTYyNSwgMC4wNjg3NSwgMC4wNzUsIDAuMDgxMjUsIDAuMDkxMjUsIDAuMDkzNzUiLCBcCi0gICAgICAgICAgIjAuMDUxMjUsIDAuMDYyNSwgMC4wNjg3NSwgMC4wODEyNSwgMC4wODc1LCAwLjA5MTI1LCAwLjEiLCBcCi0gICAgICAgICAgIjAuMDU3NSwgMC4wNjI1LCAwLjA3NSwgMC4wODEyNSwgMC4wODc1LCAwLjA5NzUsIDAuMSIsIFwKLSAgICAgICAgICAiMC4wNTc1LCAwLjA2ODc1LCAwLjA4MTI1LCAwLjA4NzUsIDAuMDkzNzUsIDAuMDk3NSwgMC4xMDYyNSIsIFwKLSAgICAgICAgICAiMC4wNjYyNSwgMC4wNzEyNSwgMC4wODM3NSwgMC4wOSwgMC4wOTYyNSwgMC4xMDYyNSwgMC4xMDg3NSIsIFwKLSAgICAgICAgICAiMC4wNywgMC4wNzUsIDAuMDg3NSwgMC4wOTM3NSwgMC4xLCAwLjExLCAwLjExMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogREZGUkhRWDQgKgotICogLS0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKERGRlJIUVg0KSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDEuNDEzMzk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgZmYgKE4zMCxRQklOVCkgewotICAgIG5leHRfc3RhdGUgOiAiRCI7Ci0gICAgY2xvY2tlZF9vbiA6ICJDSyI7Ci0gICAgY2xlYXIgOiAiKCFSTikiOwotICB9Ci0gIHBpbihDSykgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjgyNTUzOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDY4MjU1MzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2ODI1MTk7Ci0gICAgY2xvY2sgOiB0cnVlOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNDM5NiwgMC4wMDQzODcsIDAuMDA0NDM3LCAwLjAwNDU1LCAwLjAwNDY0OSwgMC4wMDQ4NjEsIDAuMDA1MDciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMTAxNDksIDAuMDEwMTUsIDAuMDEwMTk5LCAwLjAxMDI5NCwgMC4wMTA0MDYsIDAuMDEwNjQ3LCAwLjAxMDc0MSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQmUk4iOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1JOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wODg5MSwgMC4wOTcxMTQsIDAuMTA2Njg1LCAwLjExNDU3NiwgMC4xMjA5MTUsIDAuMTI5MTE4LCAwLjEzNTM4MiIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDc2MjI3LCAwLjA4NDIxNSwgMC4wOTM4MDcsIDAuMTAxMTY4LCAwLjEwNjg3OSwgMC4xMTQ2MywgMC4xMjAyOTMiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEQpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDgwODQ1NDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA4MDY5MDU7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwODA4NDU0OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzMzLCAwLjAwMzI4NywgMC4wMDMzMjEsIDAuMDAzMzY5LCAwLjAwMzQ1MywgMC4wMDM2NDgsIDAuMDAzODA4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA0NjQxLCAwLjAwNDYxMywgMC4wMDQ2NDEsIDAuMDA0Njk3LCAwLjAwNDgsIDAuMDA0OTMsIDAuMDA1MDk3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlJOIjsKLSAgICAgIHNkZl9jb25kIDogIlJOID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAwNjI1LCAtMC4wMDEyNSwgLTAuMDAxMjUsIDAuMDA1LCAwLjAwNSwgMC4wMDg3NSwgMC4wMTEyNSIsIFwKLSAgICAgICAgICAiLTAuMDE3NSwgLTAuMDA2MjUsIC0wLjAwNjI1LCAwLCAwLCAwLjAwMzc1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDEyNSwgLTAuMDEyNSwgLTAuMDA2MjUsIC0wLjAwNjI1LCAtMC4wMDI1LCAwIiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAxMjUsIC0wLjAwNjI1LCAtMC4wMDI1LCAwIiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDEyNSwgLTAuMDA4NzUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wMzM3NSwgLTAuMDI4NzUsIC0wLjAyMjUsIC0wLjAyMjUsIC0wLjAxNjI1LCAtMC4wMTI1LCAtMC4wMSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDE1LCAtMC4wMTI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjUsIDAuMDMsIDAuMDM2MjUsIDAuMDQyNSwgMC4wNDg3NSwgMC4wNTg3NSwgMC4wNjEyNSIsIFwKLSAgICAgICAgICAiMC4wMiwgMC4wMjUsIDAuMDM3NSwgMC4wNDM3NSwgMC4wNDM3NSwgMC4wNTM3NSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiMC4wMTM3NSwgMC4wMjUsIDAuMDMxMjUsIDAuMDM3NSwgMC4wNDM3NSwgMC4wNTM3NSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiMC4wMTM3NSwgMC4wMjUsIDAuMDMxMjUsIDAuMDM3NSwgMC4wNDM3NSwgMC4wNDc1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICIwLjAxMzc1LCAwLjAxODc1LCAwLjAzMTI1LCAwLjAzNzUsIDAuMDQzNzUsIDAuMDQ3NSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiMC4wMTYyNSwgMC4wMjEyNSwgMC4wMjc1LCAwLjAzMzc1LCAwLjA0LCAwLjA1LCAwLjA1MjUiLCBcCi0gICAgICAgICAgIjAuMDEzNzUsIDAuMDE4NzUsIDAuMDMxMjUsIDAuMDM3NSwgMC4wNDM3NSwgMC4wNDc1LCAwLjA1NjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJSTiI7Ci0gICAgICBzZGZfY29uZCA6ICJSTiA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjUsIDAuMDIsIDAuMDEzNzUsIDAuMDA3NSwgMC4wMDc1LCAwLjAwMzc1LCAwLjAwMTI1IiwgXAotICAgICAgICAgICIwLjAzNjI1LCAwLjAyNSwgMC4wMTg3NSwgMC4wMTg3NSwgMC4wMTI1LCAwLjAwODc1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICIwLjA0MjUsIDAuMDMxMjUsIDAuMDI1LCAwLjAyNSwgMC4wMTg3NSwgMC4wMTUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4wNDg3NSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMjUsIDAuMDIxMjUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMDU1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDMxMjUsIDAuMDI3NSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4wNTg3NSwgMC4wNTM3NSwgMC4wNDEyNSwgMC4wNDEyNSwgMC4wMzUsIDAuMDMxMjUsIDAuMDI4NzUiLCBcCi0gICAgICAgICAgIjAuMDY3NSwgMC4wNTYyNSwgMC4wNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzMzc1LCAwLjAzMTI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2MjUsIC0wLjAwNSwgLTAuMDExMjUsIC0wLjAxNzUsIC0wLjAzLCAtMC4wMzM3NSwgLTAuMDQyNSIsIFwKLSAgICAgICAgICAiMC4wMTEyNSwgMC4wMDYyNSwgLTAuMDA2MjUsIC0wLjAxMjUsIC0wLjAxODc1LCAtMC4wMjg3NSwgLTAuMDM3NSIsIFwKLSAgICAgICAgICAiMC4wMTc1LCAwLjAxMjUsIDAsIC0wLjAwNjI1LCAtMC4wMTI1LCAtMC4wMjI1LCAtMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4wMjM3NSwgMC4wMTI1LCAwLjAwNjI1LCAtMC4wMDYyNSwgLTAuMDEyNSwgLTAuMDE2MjUsIC0wLjAyNSIsIFwKLSAgICAgICAgICAiMC4wMywgMC4wMTg3NSwgMC4wMDYyNSwgMCwgLTAuMDA2MjUsIC0wLjAxNjI1LCAtMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4wMzM3NSwgMC4wMjI1LCAwLjAxNjI1LCAwLjAwMzc1LCAtMC4wMDI1LCAtMC4wMTI1LCAtMC4wMTUiLCBcCi0gICAgICAgICAgIjAuMDM2MjUsIDAuMDI1LCAwLjAxODc1LCAwLjAwNjI1LCAwLCAtMC4wMSwgLTAuMDEyNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAxLjMzMTk0OwotICAgIGZ1bmN0aW9uIDogIk4zMCI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3NlbnNlIDogbm9uX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiByaXNpbmdfZWRnZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODg0OSwgMC4xNDYxNTksIDAuMjAxNDE5LCAwLjI0MDg3NSwgMC4zMDQwMjksIDAuMzU5Mjg3LCAwLjQzODA2MiIsIFwKLSAgICAgICAgICAiMC4wOTY2OSwgMC4xNTQzNTYsIDAuMjA5NjI2LCAwLjI0OTA5NiwgMC4zMTIyNDIsIDAuMzY3NDY5LCAwLjQ0NjM3MyIsIFwKLSAgICAgICAgICAiMC4xMDYxNTcsIDAuMTYzODMsIDAuMjE5MDkxLCAwLjI1ODU0NSwgMC4zMjE3MDQsIDAuMzc2OTUyLCAwLjQ1NTczMSIsIFwKLSAgICAgICAgICAiMC4xMTM4MTgsIDAuMTcxNDk0LCAwLjIyNjc1OSwgMC4yNjYyMTEsIDAuMzI5MzQzLCAwLjM4NDYxOCwgMC40NjM1ODkiLCBcCi0gICAgICAgICAgIjAuMTE5OTk4LCAwLjE3NzY3NiwgMC4yMzI5MzMsIDAuMjcyNDA5LCAwLjMzNTU1NiwgMC4zOTA3OTQsIDAuNDY5NjgiLCBcCi0gICAgICAgICAgIjAuMTI4MDc0LCAwLjE4NTc1NywgMC4yNDEwMDUsIDAuMjgwNDgyLCAwLjM0MzYzNywgMC4zOTg4NjgsIDAuNDc3NzQ3IiwgXAotICAgICAgICAgICIwLjEzNDIwMywgMC4xOTE4OCwgMC4yNDcxNjEsIDAuMjg2NjM3LCAwLjM0OTc5NSwgMC40MDQ5NzIsIDAuNDgzODY4Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDI4MDI4LCAwLjE0MTMxNCwgMC4yNTgwMDcsIDAuMzQyNDQyLCAwLjQ3NjQwOCwgMC41OTUzMjYsIDAuNzYyOTYiLCBcCi0gICAgICAgICAgIjAuMDI4MDQ3LCAwLjE0MTIyOSwgMC4yNTgzMzMsIDAuMzQyNTM3LCAwLjQ3NjYyMSwgMC41OTUzMjIsIDAuNzYzMTc2IiwgXAotICAgICAgICAgICIwLjAyODAyNiwgMC4xNDEzMTQsIDAuMjU4MDM0LCAwLjM0MjQ0MiwgMC40NzY0NjEsIDAuNTk1MzAxLCAwLjc2Mjk0OCIsIFwKLSAgICAgICAgICAiMC4wMjgwMzQsIDAuMTQxMzExLCAwLjI1ODM1OCwgMC4zNDI0NTMsIDAuNDc2NzkyLCAwLjU5NTI3NCwgMC43NjI3MzgiLCBcCi0gICAgICAgICAgIjAuMDI4MDM4LCAwLjE0MTMxNiwgMC4yNTgxMjcsIDAuMzQyNTI2LCAwLjQ3NjU4MiwgMC41OTUyNjQsIDAuNzYzMDU2IiwgXAotICAgICAgICAgICIwLjAyODA0MywgMC4xNDEzMTYsIDAuMjU4MzAxLCAwLjM0MjUwNywgMC40NzY2MjQsIDAuNTk1MTc2LCAwLjc2MzAxMSIsIFwKLSAgICAgICAgICAiMC4wMjgwMzQsIDAuMTQxMzU3LCAwLjI1ODM3MSwgMC4zNDE5NTUsIDAuNDc3MTY0LCAwLjU5NDY3NywgMC43NjMwMjMiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODg5MSwgMC4xNDM3MDIsIDAuMTk3NTI4LCAwLjIzNTk3MywgMC4yOTc0NjMsIDAuMzUxMjc0LCAwLjQyODEzMSIsIFwKLSAgICAgICAgICAiMC4wOTcxMTQsIDAuMTUxOTE0LCAwLjIwNTczLCAwLjI0NDE4NCwgMC4zMDU2NjYsIDAuMzU5NDU2LCAwLjQzNjMxNCIsIFwKLSAgICAgICAgICAiMC4xMDY2ODUsIDAuMTYxNDc0LCAwLjIxNTI5NywgMC4yNTM3NTIsIDAuMzE1Mjc1LCAwLjM2OTAyMiwgMC40NDU4OCIsIFwKLSAgICAgICAgICAiMC4xMTQ1NzYsIDAuMTY5MzY4LCAwLjIyMzE5MiwgMC4yNjE2NDQsIDAuMzIzMTI4LCAwLjM3NjkzNSwgMC40NTM3ODgiLCBcCi0gICAgICAgICAgIjAuMTIwOTE1LCAwLjE3NTcwNiwgMC4yMjk1MywgMC4yNjc5NzYsIDAuMzI5NDYzLCAwLjM4MzI3NSwgMC40NjAxMzkiLCBcCi0gICAgICAgICAgIjAuMTI5MTE4LCAwLjE4MzkyMSwgMC4yMzc3NSwgMC4yNzYxNzMsIDAuMzM3NjY4LCAwLjM5MTQ3NywgMC40NjgzNTUiLCBcCi0gICAgICAgICAgIjAuMTM1MzgyLCAwLjE5MDIyNiwgMC4yNDQwMDMsIDAuMjgyNDQ4LCAwLjM0Mzk3NCwgMC4zOTc3NDYsIDAuNDc0NjEyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDIzNDk2LCAwLjEzMjU5NywgMC4yNDQyMjQsIDAuMzIzODMyLCAwLjQ1MjIzNCwgMC41NjQzMDEsIDAuNzI0MzYxIiwgXAotICAgICAgICAgICIwLjAyMzQ5NiwgMC4xMzI1NjUsIDAuMjQ0MjI0LCAwLjMyMzY5MywgMC40NTIxODksIDAuNTY0MjM4LCAwLjcyMzQyIiwgXAotICAgICAgICAgICIwLjAyMzQ5NiwgMC4xMzI2MDQsIDAuMjQ0MjIyLCAwLjMyMzY5NywgMC40NTEyMzMsIDAuNTY0MjM2LCAwLjcyMzQwOCIsIFwKLSAgICAgICAgICAiMC4wMjM0OTEsIDAuMTMyNTk5LCAwLjI0NDIyMiwgMC4zMjQyNDgsIDAuNDUyMjI5LCAwLjU2NDI4NiwgMC43MjQzMyIsIFwKLSAgICAgICAgICAiMC4wMjM0ODksIDAuMTMyNjA1LCAwLjI0NDIyMywgMC4zMjM4NTYsIDAuNDUyMjI5LCAwLjU2NDMwNSwgMC43MjQzODgiLCBcCi0gICAgICAgICAgIjAuMDIzNTAyLCAwLjEzMjQ3MiwgMC4yNDQyODQsIDAuMzI0MTksIDAuNDUyMjI0LCAwLjU2NDI4NCwgMC43MjQ0MzMiLCBcCi0gICAgICAgICAgIjAuMDIzNDc4LCAwLjEzMjQ4MiwgMC4yNDM5NzYsIDAuMzIzOCwgMC40NTIxMTgsIDAuNTYzMzQxLCAwLjcyNDI1OSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogY2xlYXI7Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDMwMzMsIDAuMDg1MjEsIDAuMTM4OTg1LCAwLjE3NzQwNCwgMC4yMzg4OSwgMC4yOTI2NzIsIDAuMzY5NTMyIiwgXAotICAgICAgICAgICIwLjAzODQzLCAwLjA5MzMyOSwgMC4xNDcxMTgsIDAuMTg1NTI3LCAwLjI0NzAwNSwgMC4zMDA4MDUsIDAuMzc3NjY3IiwgXAotICAgICAgICAgICIwLjA0NjYxNywgMC4xMDE2NjYsIDAuMTU1NDUxLCAwLjE5Mzg1OSwgMC4yNTUzMzgsIDAuMzA5MTIyLCAwLjM4NTk2NSIsIFwKLSAgICAgICAgICAiMC4wNTI2NDIsIDAuMTA3ODIxLCAwLjE2MTU5MiwgMC4xOTk5OTksIDAuMjYxNDY4LCAwLjMxNTI3NSwgMC4zOTIxMTUiLCBcCi0gICAgICAgICAgIjAuMDU3Mzc4LCAwLjExMjc1MywgMC4xNjY1MDIsIDAuMjA0ODk5LCAwLjI2NjM2LCAwLjMyMDE2OCwgMC4zOTY5OTQiLCBcCi0gICAgICAgICAgIjAuMDYzNDkzLCAwLjExOTA5MywgMC4xNzI4NTYsIDAuMjExMjQ2LCAwLjI3MjcwNSwgMC4zMjY0OTEsIDAuNDAzMzMxIiwgXAotICAgICAgICAgICIwLjA2NzgyOCwgMC4xMjM2NjgsIDAuMTc3NDQsIDAuMjE1ODE5LCAwLjI3NzI2NCwgMC4zMzEwNTcsIDAuNDA3OTMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjMwNTUsIDAuMTMyMzAyLCAwLjI0Mzc5NSwgMC4zMjM3MjEsIDAuNDUxNDkxLCAwLjU2MzI5MiwgMC43MjM1MTQiLCBcCi0gICAgICAgICAgIjAuMDIzMTc4LCAwLjEzMjI4NiwgMC4yNDM3ODIsIDAuMzIzOCwgMC40NTE4MjYsIDAuNTYzMjk2LCAwLjcyMzYxMyIsIFwKLSAgICAgICAgICAiMC4wMjQyODcsIDAuMTMyNDM3LCAwLjI0MzcxNiwgMC4zMjM3MDEsIDAuNDUxNzU4LCAwLjU2MzM0MSwgMC43MjM1ODQiLCBcCi0gICAgICAgICAgIjAuMDI1NDg2LCAwLjEzMjcwNiwgMC4yNDM5OTUsIDAuMzIzODI0LCAwLjQ1MTc0MiwgMC41NjMyNjgsIDAuNzIzODcxIiwgXAotICAgICAgICAgICIwLjAyNjYwOSwgMC4xMzI5NiwgMC4yNDQwNTcsIDAuMzIzODU3LCAwLjQ1MTg0MSwgMC41NjM4MzksIDAuNzIzODc2IiwgXAotICAgICAgICAgICIwLjAyODIwMSwgMC4xMzMzMzksIDAuMjQ0MTMxLCAwLjMyMzkwNCwgMC40NTE4NTIsIDAuNTYzNTQyLCAwLjcyMzkxOCIsIFwKLSAgICAgICAgICAiMC4wMjk1MDcsIDAuMTMzODEsIDAuMjQ0MTk1LCAwLjMyMzkzNywgMC40NTE4NzUsIDAuNTYzODg3LCAwLjcyMzQ1MSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxNDM3NSwgMC4wMTQ0MTksIDAuMDE0MzkzLCAwLjAxNDM3OSwgMC4wMTQzNjMsIDAuMDE0MzU0LCAwLjAxNDM0NiIsIFwKLSAgICAgICAgICAiMC4wMTQzNiwgMC4wMTQ0MDEsIDAuMDE0MzczLCAwLjAxNDM1OSwgMC4wMTQzNDMsIDAuMDE0MzM0LCAwLjAxNDMyNSIsIFwKLSAgICAgICAgICAiMC4wMTQ0MjksIDAuMDE0NDc3LCAwLjAxNDQ1MSwgMC4wMTQ0MzcsIDAuMDE0NDIyLCAwLjAxNDQxMSwgMC4wMTQ0MDIiLCBcCi0gICAgICAgICAgIjAuMDE0NTM4LCAwLjAxNDU5MSwgMC4wMTQ1NjcsIDAuMDE0NTUyLCAwLjAxNDUzNSwgMC4wMTQ1MjYsIDAuMDE0NTE4IiwgXAotICAgICAgICAgICIwLjAxNDY1OCwgMC4wMTQ3MDUsIDAuMDE0NjgyLCAwLjAxNDY2NywgMC4wMTQ2NTEsIDAuMDE0NjQsIDAuMDE0NjMiLCBcCi0gICAgICAgICAgIjAuMDE0ODg4LCAwLjAxNDk0NywgMC4wMTQ5MTgsIDAuMDE0OTAyLCAwLjAxNDg5MSwgMC4wMTQ4NzUsIDAuMDE0ODY5IiwgXAotICAgICAgICAgICIwLjAxNTEwNCwgMC4wMTUxNTEsIDAuMDE1MTI3LCAwLjAxNTExNSwgMC4wMTUwNzMsIDAuMDE1MDgyLCAwLjAxNTA2OSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE0NDE4LCAwLjAxNDY1NCwgMC4wMTQ2OTEsIDAuMDE0NzAzLCAwLjAxNDcxMywgMC4wMTQ3MTksIDAuMDE0NzIzIiwgXAotICAgICAgICAgICIwLjAxNDQwMywgMC4wMTQ2NDEsIDAuMDE0NjgsIDAuMDE0NjkyLCAwLjAxNDcwMiwgMC4wMTQ3MDcsIDAuMDE0NzEyIiwgXAotICAgICAgICAgICIwLjAxNDUxNywgMC4wMTQ3NTMsIDAuMDE0Nzg5LCAwLjAxNDc5OSwgMC4wMTQ4MDksIDAuMDE0ODE1LCAwLjAxNDgxOSIsIFwKLSAgICAgICAgICAiMC4wMTQ2NCwgMC4wMTQ4NzYsIDAuMDE0OTEzLCAwLjAxNDkyMywgMC4wMTQ5MzQsIDAuMDE0OTM5LCAwLjAxNDk0MyIsIFwKLSAgICAgICAgICAiMC4wMTQ3NjQsIDAuMDE1MDAyLCAwLjAxNTAzNywgMC4wMTUwNDgsIDAuMDE1MDU2LCAwLjAxNTA2MSwgMC4wMTUwNjYiLCBcCi0gICAgICAgICAgIjAuMDE1MDE1LCAwLjAxNTI1NiwgMC4wMTUyODYsIDAuMDE1Mjk5LCAwLjAxNTMwOCwgMC4wMTUzMTIsIDAuMDE1MzE2IiwgXAotICAgICAgICAgICIwLjAxNTI0OCwgMC4wMTU0NTYsIDAuMDE1NTEzLCAwLjAxNTUyMSwgMC4wMTU1MDcsIDAuMDE1NTMzLCAwLjAxNTUxNCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxNTkyMiwgMC4wMTYxMTQsIDAuMDE2MTM4LCAwLjAxNjE0NCwgMC4wMTYxNTEsIDAuMDE2MTU0LCAwLjAxNjE1NyIsIFwKLSAgICAgICAgICAiMC4wMTU4MzgsIDAuMDE2MDQ5LCAwLjAxNjA4LCAwLjAxNjA5MiwgMC4wMTYxMDEsIDAuMDE2MTA2LCAwLjAxNjExIiwgXAotICAgICAgICAgICIwLjAxNTkyNSwgMC4wMTYxMTYsIDAuMDE2MTU4LCAwLjAxNjE3MiwgMC4wMTYxODQsIDAuMDE2MTg5LCAwLjAxNjE5NiIsIFwKLSAgICAgICAgICAiMC4wMTYxMzgsIDAuMDE2MjgxLCAwLjAxNjMyMiwgMC4wMTYzNCwgMC4wMTYzNTQsIDAuMDE2MzYyLCAwLjAxNjM2OCIsIFwKLSAgICAgICAgICAiMC4wMTY0MTgsIDAuMDE2NTIzLCAwLjAxNjU2OCwgMC4wMTY1NzUsIDAuMDE2NTk2LCAwLjAxNjU5NywgMC4wMTY2MTEiLCBcCi0gICAgICAgICAgIjAuMDE2OTMsIDAuMDE2OTUzLCAwLjAxNjk5MiwgMC4wMTcwMDMsIDAuMDE3MDE5LCAwLjAxNzAyOCwgMC4wMTcwMzQiLCBcCi0gICAgICAgICAgIjAuMDE3NDIyLCAwLjAxNzM4NCwgMC4wMTc0MTYsIDAuMDE3NDMxLCAwLjAxNzQ0NSwgMC4wMTc0NTYsIDAuMDE3NDYyIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3Bvd2VyKHNjYWxhcikgewotICAgICAgICB2YWx1ZXMoIjAiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFJOKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDI2MTM5OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMjQxNDI0OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMjYxMzk7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxMjYyLCAwLjAwMTI2MSwgMC4wMDEyNjEsIDAuMDAxMjYxLCAwLjAwMTI2LCAwLjAwMTI2MSwgMC4wMDEyNjEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDEzMDgsIDAuMDAxMjc5LCAwLjAwMTI3MiwgMC4wMDEyNjgsIDAuMDAxMjY3LCAwLjAwMTI2NiwgMC4wMDEyNjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUk4iOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFEIjsKLSAgICAgIHNkZl9jb25kIDogIkQgPT0gMSdiMCI7Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wNTk2NjcsIDAuMDY2MzYzLCAwLjA3MzAxNSwgMC4wNzg0NDYsIDAuMDgyODU2LCAwLjA4ODY1MywgMC4wOTI3OSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJlY292ZXJ5X3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiRCI7Ci0gICAgICBzZGZfY29uZCA6ICJEID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHJlY292ZXJ5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMjUsIC0wLjAzNjI1LCAtMC4wNDI1LCAtMC4wNDg3NSwgLTAuMDU1LCAtMC4wNjUsIC0wLjA2NzUiLCBcCi0gICAgICAgICAgIi0wLjAyNjI1LCAtMC4wMzc1LCAtMC4wNDM3NSwgLTAuMDUsIC0wLjA1NjI1LCAtMC4wNjYyNSwgLTAuMDc1IiwgXAotICAgICAgICAgICItMC4wMiwgLTAuMDMxMjUsIC0wLjA0Mzc1LCAtMC4wNSwgLTAuMDU2MjUsIC0wLjA2NjI1LCAtMC4wNjg3NSIsIFwKLSAgICAgICAgICAiLTAuMDEzNzUsIC0wLjAyNSwgLTAuMDMxMjUsIC0wLjA0Mzc1LCAtMC4wNSwgLTAuMDYsIC0wLjA2MjUiLCBcCi0gICAgICAgICAgIi0wLjAwMTI1LCAtMC4wMTI1LCAtMC4wMTg3NSwgLTAuMDMxMjUsIC0wLjAzNzUsIC0wLjA0NzUsIC0wLjA1NjI1IiwgXAotICAgICAgICAgICIwLjAyMTI1LCAwLjAxLCAtMC4wMDI1LCAtMC4wMDg3NSwgLTAuMDIxMjUsIC0wLjAzMTI1LCAtMC4wNCIsIFwKLSAgICAgICAgICAiMC4wNDI1LCAwLjAzMTI1LCAwLjAxODc1LCAwLjAwNjI1LCAwLCAtMC4wMTYyNSwgLTAuMDE4NzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiByZW1vdmFsX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiRCI7Ci0gICAgICBzZGZfY29uZCA6ICJEID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHJlbW92YWxfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM3NSwgMC4wNDg3NSwgMC4wNTUsIDAuMDY3NSwgMC4wNzM3NSwgMC4wNzc1LCAwLjA4NjI1IiwgXAotICAgICAgICAgICIwLjA0NSwgMC4wNSwgMC4wNjI1LCAwLjA2ODc1LCAwLjA3NSwgMC4wODUsIDAuMDg3NSIsIFwKLSAgICAgICAgICAiMC4wNTEyNSwgMC4wNTYyNSwgMC4wNjI1LCAwLjA3NSwgMC4wODEyNSwgMC4wODUsIDAuMDkzNzUiLCBcCi0gICAgICAgICAgIjAuMDUxMjUsIDAuMDYyNSwgMC4wNjg3NSwgMC4wNzUsIDAuMDgxMjUsIDAuMDkxMjUsIDAuMDkzNzUiLCBcCi0gICAgICAgICAgIjAuMDU3NSwgMC4wNjI1LCAwLjA2ODc1LCAwLjA4MTI1LCAwLjA4NzUsIDAuMDkxMjUsIDAuMSIsIFwKLSAgICAgICAgICAiMC4wNiwgMC4wNjUsIDAuMDc3NSwgMC4wODM3NSwgMC4wOSwgMC4wOTM3NSwgMC4xMDI1IiwgXAotICAgICAgICAgICIwLjA2Mzc1LCAwLjA2ODc1LCAwLjA4MTI1LCAwLjA4NzUsIDAuMDkzNzUsIDAuMDk3NSwgMC4xMDYyNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogREZGUlgyICoKLSAqIC0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoREZGUlgyKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDEuMTkwNjQ7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgZmYgKE4zMCxRQklOVCkgewotICAgIG5leHRfc3RhdGUgOiAiRCI7Ci0gICAgY2xvY2tlZF9vbiA6ICJDSyI7Ci0gICAgY2xlYXIgOiAiKCFSTikiOwotICB9Ci0gIHBpbihDSykgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjQzODU2OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDY0Mzg1NjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2NDM2MzQ7Ci0gICAgY2xvY2sgOiB0cnVlOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzc3LCAwLjAwMzc2MSwgMC4wMDM4NDcsIDAuMDAzOTM3LCAwLjAwNDA2NiwgMC4wMDQyOTgsIDAuMDA0NDcyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA4MTgzLCAwLjAwODE3OCwgMC4wMDgyNDcsIDAuMDA4MzUzLCAwLjAwODQ3MiwgMC4wMDg2MzIsIDAuMDA4OTE3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRCZSTiI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fUk5fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjExMDk5NiwgMC4xMTkxNjIsIDAuMTI4MTM0LCAwLjEzNTE3OCwgMC4xNDA4MTcsIDAuMTQ4MzMsIDAuMTUzODkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjA3MDU2OCwgMC4wNzg2MzcsIDAuMDg3NDg2LCAwLjA5NDA0OCwgMC4wOTkxOTUsIDAuMTA2MTI0LCAwLjExMTA2OSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjk4MDg0OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDY5Njg0NDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2OTgwODQ7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyNzc3LCAwLjAwMjc0OSwgMC4wMDI3NzksIDAuMDAyODM2LCAwLjAwMjkxMywgMC4wMDMwNjEsIDAuMDAzMjI3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzNDI4LCAwLjAwMzQwOSwgMC4wMDM0MzMsIDAuMDAzNDg3LCAwLjAwMzU3MSwgMC4wMDM2ODYsIDAuMDAzODI5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlJOIjsKLSAgICAgIHNkZl9jb25kIDogIlJOID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAxMjUsIC0wLjAwNzUsIC0wLjAwMTI1LCAwLjAwNSwgMC4wMDUsIDAuMDA4NzUsIDAuMDExMjUiLCBcCi0gICAgICAgICAgIi0wLjAxNzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAtMC4wMDYyNSwgMCwgMC4wMDM3NSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgLTAuMDA2MjUsIC0wLjAwMjUsIDAiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTg3NSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAxMjUsIC0wLjAwODc1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDg3NSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjAzMzc1LCAtMC4wMjg3NSwgLTAuMDIyNSwgLTAuMDIyNSwgLTAuMDIyNSwgLTAuMDE4NzUsIC0wLjAxNjI1IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzEyNSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDI1LCAtMC4wMjEyNSwgLTAuMDE4NzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxODc1LCAwLjAyMzc1LCAwLjAzLCAwLjAzNjI1LCAwLjA0MjUsIDAuMDUyNSwgMC4wNTUiLCBcCi0gICAgICAgICAgIjAuMDEzNzUsIDAuMDE4NzUsIDAuMDI1LCAwLjAzMTI1LCAwLjAzNzUsIDAuMDQ3NSwgMC4wNSIsIFwKLSAgICAgICAgICAiMC4wMDc1LCAwLjAxODc1LCAwLjAyNSwgMC4wMzEyNSwgMC4wMzc1LCAwLjA0MTI1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjAwNzUsIDAuMDEyNSwgMC4wMjUsIDAuMDMxMjUsIDAuMDMxMjUsIDAuMDQxMjUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMDA3NSwgMC4wMTI1LCAwLjAyNSwgMC4wMzEyNSwgMC4wMzEyNSwgMC4wNDEyNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4wMDM3NSwgMC4wMTUsIDAuMDIxMjUsIDAuMDI3NSwgMC4wMzM3NSwgMC4wMzc1LCAwLjA0IiwgXAotICAgICAgICAgICIwLjAwNzUsIDAuMDEyNSwgMC4wMTg3NSwgMC4wMjUsIDAuMDMxMjUsIDAuMDM1LCAwLjA0Mzc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJSTiI7Ci0gICAgICBzZGZfY29uZCA6ICJSTiA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzEyNSwgMC4wMiwgMC4wMTM3NSwgMC4wMTM3NSwgMC4wMDc1LCAwLjAxLCAwLjAwNzUiLCBcCi0gICAgICAgICAgIjAuMDM2MjUsIDAuMDI1LCAwLjAyNSwgMC4wMTg3NSwgMC4wMTg3NSwgMC4wMTUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4wNDI1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDI1LCAwLjAyNSwgMC4wMjEyNSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4wNDg3NSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMjEyNSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4wNTUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyNzUsIDAuMDI1IiwgXAotICAgICAgICAgICIwLjA1ODc1LCAwLjA1Mzc1LCAwLjA0NzUsIDAuMDQxMjUsIDAuMDM1LCAwLjAzMTI1LCAwLjAyODc1IiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDU2MjUsIDAuMDUsIDAuMDQzNzUsIDAuMDQzNzUsIDAuMDQsIDAuMDM3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMjUsIDAuMDAxMjUsIC0wLjAwNSwgLTAuMDExMjUsIC0wLjAxNzUsIC0wLjAyNzUsIC0wLjAzIiwgXAotICAgICAgICAgICIwLjAxNzUsIDAuMDEyNSwgMCwgLTAuMDA2MjUsIC0wLjAxMjUsIC0wLjAyMjUsIC0wLjAyNSIsIFwKLSAgICAgICAgICAiMC4wMjM3NSwgMC4wMTg3NSwgMC4wMDYyNSwgMCwgLTAuMDA2MjUsIC0wLjAxNjI1LCAtMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4wMywgMC4wMTg3NSwgMC4wMTI1LCAwLjAwNjI1LCAwLCAtMC4wMSwgLTAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMDM2MjUsIDAuMDI1LCAwLjAxMjUsIDAuMDA2MjUsIDAsIC0wLjAwMzc1LCAtMC4wMTI1IiwgXAotICAgICAgICAgICIwLjA0LCAwLjAyODc1LCAwLjAyMjUsIDAuMDEsIDAuMDAzNzUsIDAsIC0wLjAwODc1IiwgXAotICAgICAgICAgICIwLjA0MjUsIDAuMDMxMjUsIDAuMDI1LCAwLjAxODc1LCAwLjAxMjUsIDAuMDAyNSwgLTAuMDA2MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFEpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC42OTQ0MDQ7Ci0gICAgZnVuY3Rpb24gOiAiTjMwIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBub25fdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJpc2luZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDI0OTEsIDAuMTgyNDc3LCAwLjI0NDA5OSwgMC4zMjE0NjgsIDAuMzk4NTE3LCAwLjQ3NTk1LCAwLjU1MzA1MyIsIFwKLSAgICAgICAgICAiMC4xMTA2MSwgMC4xOTA2MzksIDAuMjUyMTc1LCAwLjMyOTY0MiwgMC40MDY5OCwgMC40ODQxMjIsIDAuNTYxMTE4IiwgXAotICAgICAgICAgICIwLjExOTM4NCwgMC4xOTk0MTIsIDAuMjYwOTUxLCAwLjMzODQyMywgMC40MTU3NjksIDAuNDkyNTY3LCAwLjU2OTkxMSIsIFwKLSAgICAgICAgICAiMC4xMjYyOTksIDAuMjA2MzA0LCAwLjI2ODAxNCwgMC4zNDUyODEsIDAuNDIyMzIyLCAwLjQ5OTc2MiwgMC41NzY2MzciLCBcCi0gICAgICAgICAgIjAuMTMxNzI5LCAwLjIxMTc0NSwgMC4yNzM0NDgsIDAuMzUwNzMsIDAuNDI3NzU1LCAwLjUwNTIyMiwgMC41ODIyMjIiLCBcCi0gICAgICAgICAgIjAuMTM5MDIyLCAwLjIxODkyNywgMC4yODA4NywgMC4zNTgwMzMsIDAuNDM1MDI5LCAwLjUxMjE4OSwgMC41ODk1MjIiLCBcCi0gICAgICAgICAgIjAuMTQ0NTA0LCAwLjIyNDUzNiwgMC4yODYzNjcsIDAuMzYzNDM4LCAwLjQ0MDQ4NSwgMC41MTc5NDYsIDAuNTk0ODk5Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0NjY5NywgMC4yMDI5ODksIDAuMzMxNzM2LCAwLjQ5NDU5MSwgMC42NTY3MiwgMC44MTkyNzUsIDAuOTgxNjQzIiwgXAotICAgICAgICAgICIwLjA0NjczNSwgMC4yMDMxOTYsIDAuMzMxNzMxLCAwLjQ5NDYxNiwgMC42NTY0OTUsIDAuODE5MDM2LCAwLjk4MzUxMiIsIFwKLSAgICAgICAgICAiMC4wNDY3NCwgMC4yMDI5NjUsIDAuMzMxNzM3LCAwLjQ5NDYyLCAwLjY1NjQ0NSwgMC44MTg5NjEsIDAuOTgxNzE4IiwgXAotICAgICAgICAgICIwLjA0NjU0MSwgMC4yMDI5NjMsIDAuMzMxOTgsIDAuNDk0NTk3LCAwLjY1NjY5MywgMC44MTkyMzQsIDAuOTgyMjkzIiwgXAotICAgICAgICAgICIwLjA0NjU1NiwgMC4yMDI5NSwgMC4zMzE5ODcsIDAuNDk0NjA2LCAwLjY1NjU5OSwgMC44MTg5NDksIDAuOTgzNDk1IiwgXAotICAgICAgICAgICIwLjA0NjcxNCwgMC4yMDMwNDMsIDAuMzMyMTkzLCAwLjQ5NDYwOSwgMC42NTY3MjgsIDAuODE5MTUsIDAuOTgzNDc1IiwgXAotICAgICAgICAgICIwLjA0Njc0OCwgMC4yMDMwNjEsIDAuMzMyMTU2LCAwLjQ5NDQ4MiwgMC42NTY0MjcsIDAuODE5MzQsIDAuOTgzMzM2Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5NjQwNiwgMC4xNzMyNSwgMC4yMzQwNjcsIDAuMzEwMzUzLCAwLjM4NjIxMSwgMC40NjIxMzYsIDAuNTM4MjQ0IiwgXAotICAgICAgICAgICIwLjEwNDU2MSwgMC4xODE0NjUsIDAuMjQyMTk3LCAwLjMxODcwOCwgMC4zOTQ1MzgsIDAuNDcwMjg5LCAwLjU0NTgzNyIsIFwKLSAgICAgICAgICAiMC4xMTM1MzcsIDAuMTkwNDU5LCAwLjI1MTYxOCwgMC4zMjc0NzgsIDAuNDAzMzQxLCAwLjQ3OTI5MiwgMC41NTUyMjYiLCBcCi0gICAgICAgICAgIjAuMTIwNTg4LCAwLjE5NzYwNywgMC4yNTgyNTMsIDAuMzM0Mzg4LCAwLjQxMDAwNCwgMC40ODY1NzYsIDAuNTYyMjgiLCBcCi0gICAgICAgICAgIjAuMTI2MjE5LCAwLjIwMzEwOSwgMC4yNjM4OTQsIDAuMzQwMTQyLCAwLjQxNjAxNiwgMC40OTE5ODIsIDAuNTY3ODczIiwgXAotICAgICAgICAgICIwLjEzMzczNSwgMC4yMTA3MTcsIDAuMjcxMzA5LCAwLjM0NzYwNCwgMC40MjM1MDIsIDAuNDk5NDMsIDAuNTc1MzU0IiwgXAotICAgICAgICAgICIwLjEzOTMwMSwgMC4yMTYxMTIsIDAuMjc2OTk1LCAwLjM1MjczNiwgMC40Mjg3NDEsIDAuNTA0OTIyLCAwLjU4MDk1NyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDA0ODMsIDAuMTk0MTE4LCAwLjMyMDIyOSwgMC40NzgxNDcsIDAuNjM2MjE3LCAwLjc5NDIyOSwgMC45NTIzMDciLCBcCi0gICAgICAgICAgIjAuMDQwNTU5LCAwLjE5NDgzMiwgMC4zMjA1NzQsIDAuNDc3OTAyLCAwLjYzNTA0NCwgMC43OTQyMywgMC45NTAwMTciLCBcCi0gICAgICAgICAgIjAuMDQwNDc2LCAwLjE5NTE0NCwgMC4zMTk3OSwgMC40NzgxMzQsIDAuNjM2MjEsIDAuNzk0MjM4LCAwLjk1MjIyMSIsIFwKLSAgICAgICAgICAiMC4wNDA0ODgsIDAuMTk1MTUyLCAwLjMyMDM2NCwgMC40NzgxMDksIDAuNjM1MTI1LCAwLjc5MjkzMSwgMC45NTIxODgiLCBcCi0gICAgICAgICAgIjAuMDQwNDI4LCAwLjE5NDc5MSwgMC4zMjAzNDgsIDAuNDc4MTQ3LCAwLjYzNjIxMiwgMC43OTQyMzYsIDAuOTUyMTk3IiwgXAotICAgICAgICAgICIwLjA0MDMyNywgMC4xOTUwOTUsIDAuMzIwNjI0LCAwLjQ3ODExNCwgMC42MzYwOTksIDAuNzk0MTE5LCAwLjk1MjA4NiIsIFwKLSAgICAgICAgICAiMC4wNDA0NzcsIDAuMTk1MTc3LCAwLjMyMDI5MywgMC40Nzc5ODIsIDAuNjM1MTg3LCAwLjc5NDE0NSwgMC45NTIwOTkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUk4iOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGNsZWFyOwotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDY1NzYsIDAuMTIzMzM2LCAwLjE4NDEzOSwgMC4yNTk5MTQsIDAuMzM2MDU3LCAwLjQxMjEzNywgMC40ODgwMTYiLCBcCi0gICAgICAgICAgIjAuMDU0NzQ2LCAwLjEzMTU0NCwgMC4xOTI0NDUsIDAuMjY4NTM5LCAwLjM0NDQ2MSwgMC40MjAyOTksIDAuNDk2MjExIiwgXAotICAgICAgICAgICIwLjA2NDQwNSwgMC4xNDExMjcsIDAuMjAyMTY0LCAwLjI3Nzg4NCwgMC4zNTM5NTksIDAuNDI5OTQ3LCAwLjUwNTk4OCIsIFwKLSAgICAgICAgICAiMC4wNzE5OSwgMC4xNDg3OSwgMC4yMDk2NzksIDAuMjg1NDk5LCAwLjM2MTM4MiwgMC40Mzc0NTUsIDAuNTEzMzM2IiwgXAotICAgICAgICAgICIwLjA3ODMwMiwgMC4xNTUwNjcsIDAuMjE2MDA2LCAwLjI5MjA0LCAwLjM2NzU0LCAwLjQ0MzkzNSwgMC41MTk4MjIiLCBcCi0gICAgICAgICAgIjAuMDg2Mjc3LCAwLjE2MzA3NSwgMC4yMjM5MjEsIDAuMjk5OTk2LCAwLjM3NTk2NywgMC40NTE4MzUsIDAuNTI3ODA1IiwgXAotICAgICAgICAgICIwLjA5MjEzLCAwLjE2ODgzNywgMC4yMjk2MTMsIDAuMzA1NjQ3LCAwLjM4MTY2NCwgMC40NTc3MzMsIDAuNTMzNjg4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0MDM0MiwgMC4xOTQxOTQsIDAuMzIwMjQxLCAwLjQ3NzE4MiwgMC42MzU4MzUsIDAuNzkzODU1LCAwLjk1MTc2OSIsIFwKLSAgICAgICAgICAiMC4wNDAyODEsIDAuMTk0ODY5LCAwLjMyMDE5MSwgMC40Nzc5NzcsIDAuNjM1OTA3LCAwLjc5Mzg1OSwgMC45NTE3ODMiLCBcCi0gICAgICAgICAgIjAuMDQwODgxLCAwLjE5NDcwMiwgMC4zMTk4MTIsIDAuNDc3MTcxLCAwLjYzNTg3LCAwLjc5MzgyLCAwLjk1MTkyOCIsIFwKLSAgICAgICAgICAiMC4wNDIxNDksIDAuMTk0ODU1LCAwLjMyMDI3NywgMC40Nzc0NjgsIDAuNjM1MDUxLCAwLjc5Mzc0NCwgMC45NTE3NjQiLCBcCi0gICAgICAgICAgIjAuMDQzMTk4LCAwLjE5NDk5NSwgMC4zMTk5MjQsIDAuNDc3OTE0LCAwLjYzNTEwNSwgMC43OTM4MjcsIDAuOTUxNzIyIiwgXAotICAgICAgICAgICIwLjA0NDY1MSwgMC4xOTUxNywgMC4zMjAyOTUsIDAuNDc3OTk1LCAwLjYzNTk3MiwgMC43OTM4NjIsIDAuOTUxODk4IiwgXAotICAgICAgICAgICIwLjA0NTg3MSwgMC4xOTQ5MjgsIDAuMzIwMzA0LCAwLjQ3Nzg5LCAwLjYzNTg4OSwgMC43OTM5NjgsIDAuOTUxNzk4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjY1LCAwLjAwNjY2MywgMC4wMDY2NTQsIDAuMDA2NjQ3LCAwLjAwNjY0MiwgMC4wMDY2MzksIDAuMDA2NjM3IiwgXAotICAgICAgICAgICIwLjAwNjY0MywgMC4wMDY2NTYsIDAuMDA2NjUsIDAuMDA2NjQsIDAuMDA2NjM1LCAwLjAwNjYzMywgMC4wMDY2MzMiLCBcCi0gICAgICAgICAgIjAuMDA2NjksIDAuMDA2NzA0LCAwLjAwNjY5OCwgMC4wMDY2ODcsIDAuMDA2NjgyLCAwLjAwNjY3OSwgMC4wMDY2NzciLCBcCi0gICAgICAgICAgIjAuMDA2NzM2LCAwLjAwNjc1MSwgMC4wMDY3NDIsIDAuMDA2NzMzLCAwLjAwNjcyOCwgMC4wMDY3MjUsIDAuMDA2NzIzIiwgXAotICAgICAgICAgICIwLjAwNjgwMywgMC4wMDY4MTgsIDAuMDA2ODA5LCAwLjAwNjgsIDAuMDA2Nzk1LCAwLjAwNjc5MiwgMC4wMDY3ODkiLCBcCi0gICAgICAgICAgIjAuMDA2ODk4LCAwLjAwNjkxNiwgMC4wMDY5MDcsIDAuMDA2ODk4LCAwLjAwNjg5MiwgMC4wMDY4ODgsIDAuMDA2ODg2IiwgXAotICAgICAgICAgICIwLjAwNjk5NCwgMC4wMDcwMTIsIDAuMDA3MDAxLCAwLjAwNjk5MywgMC4wMDY5ODgsIDAuMDA2OTgxLCAwLjAwNjk3OCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjkxOCwgMC4wMDY5NjksIDAuMDA2OTc2LCAwLjAwNjk4MSwgMC4wMDY5ODIsIDAuMDA2OTgyLCAwLjAwNjk4MiIsIFwKLSAgICAgICAgICAiMC4wMDY5MTcsIDAuMDA2OTY4LCAwLjAwNjk3NCwgMC4wMDY5NzgsIDAuMDA2OTc5LCAwLjAwNjk4LCAwLjAwNjk4IiwgXAotICAgICAgICAgICIwLjAwNjk3NCwgMC4wMDcwMjIsIDAuMDA3MDI4LCAwLjAwNzAzMSwgMC4wMDcwMzUsIDAuMDA3MDM2LCAwLjAwNzAzMyIsIFwKLSAgICAgICAgICAiMC4wMDcwMjUsIDAuMDA3MDczLCAwLjAwNzA3OSwgMC4wMDcwODIsIDAuMDA3MDg0LCAwLjAwNzA4NCwgMC4wMDcwODIiLCBcCi0gICAgICAgICAgIjAuMDA3MSwgMC4wMDcxNDksIDAuMDA3MTU0LCAwLjAwNzE1NywgMC4wMDcxNTgsIDAuMDA3MTU5LCAwLjAwNzE1OSIsIFwKLSAgICAgICAgICAiMC4wMDcyMTUsIDAuMDA3MjYyLCAwLjAwNzI2NiwgMC4wMDcyNzgsIDAuMDA3MjcsIDAuMDA3Mjc5LCAwLjAwNzI3OSIsIFwKLSAgICAgICAgICAiMC4wMDczMDgsIDAuMDA3MzY4LCAwLjAwNzM2LCAwLjAwNzM3MywgMC4wMDczNjIsIDAuMDA3Mzc1LCAwLjAwNzM2MyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDcxMjUsIDAuMDA3MTcyLCAwLjAwNzE3NywgMC4wMDcxOCwgMC4wMDcxODQsIDAuMDA3MTg1LCAwLjAwNzE4MiIsIFwKLSAgICAgICAgICAiMC4wMDcxLCAwLjAwNzE1MiwgMC4wMDcxNTksIDAuMDA3MTYzLCAwLjAwNzE3LCAwLjAwNzE2NywgMC4wMDcxNjciLCBcCi0gICAgICAgICAgIjAuMDA3MTIsIDAuMDA3MTcsIDAuMDA3MTc5LCAwLjAwNzE4NCwgMC4wMDcxODgsIDAuMDA3MTg4LCAwLjAwNzE5IiwgXAotICAgICAgICAgICIwLjAwNzE3MiwgMC4wMDcyMTQsIDAuMDA3MjI0LCAwLjAwNzIzLCAwLjAwNzIzNCwgMC4wMDcyMzUsIDAuMDA3MjM2IiwgXAotICAgICAgICAgICIwLjAwNzI1MiwgMC4wMDcyNzksIDAuMDA3Mjg4LCAwLjAwNzI5NCwgMC4wMDcyOTYsIDAuMDA3Mjk5LCAwLjAwNzMiLCBcCi0gICAgICAgICAgIjAuMDA3Mzg5LCAwLjAwNzQwMiwgMC4wMDc0MSwgMC4wMDc0MTYsIDAuMDA3NDE5LCAwLjAwNzQyMSwgMC4wMDc0MjMiLCBcCi0gICAgICAgICAgIjAuMDA3NTI4LCAwLjAwNzUyOSwgMC4wMDc1MzYsIDAuMDA3NTQ1LCAwLjAwNzU0NSwgMC4wMDc1NDgsIDAuMDA3NTQ3Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3Bvd2VyKHNjYWxhcikgewotICAgICAgICB2YWx1ZXMoIjAiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFFOKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuNjgzMTgxOwotICAgIGZ1bmN0aW9uIDogIlFCSU5UIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBub25fdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJpc2luZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTA5OTYsIDAuMTg4MDk2LCAwLjI0OTgxNCwgMC4zMjcxMDcsIDAuNDA0MjkzLCAwLjQ4MTUwMiwgMC41NTg3OSIsIFwKLSAgICAgICAgICAiMC4xMTkxNjIsIDAuMTk2MjU4LCAwLjI1ODAyNCwgMC4zMzUzNDEsIDAuNDEyNTE1LCAwLjQ4OTY2MiwgMC41NjY5MzciLCBcCi0gICAgICAgICAgIjAuMTI4MTM0LCAwLjIwNTI0OSwgMC4yNjcxMDYsIDAuMzQ0Mjk1LCAwLjQyMTQ4NSwgMC40OTg3MDQsIDAuNTc1OTE4IiwgXAotICAgICAgICAgICIwLjEzNTE3OCwgMC4yMTIzODUsIDAuMjc0MTQzLCAwLjM1MTMzNCwgMC40Mjg0NSwgMC41MDU4ODgsIDAuNTgzMDExIiwgXAotICAgICAgICAgICIwLjE0MDgxNywgMC4yMTc5MTYsIDAuMjc5Njc5LCAwLjM1NjkxOSwgMC40MzQxMTEsIDAuNTExMzM1LCAwLjU4ODUzMyIsIFwKLSAgICAgICAgICAiMC4xNDgzMywgMC4yMjU1MTUsIDAuMjg3MjgxLCAwLjM2NDQ3LCAwLjQ0MTY5OCwgMC41MTg4ODIsIDAuNTk2MDkyIiwgXAotICAgICAgICAgICIwLjE1Mzg5LCAwLjIzMDg2MywgMC4yOTI3OSwgMC4zNjk4NDYsIDAuNDQ3MjA0LCAwLjUyNDI5NSwgMC42MDE2MTMiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM5NDc2LCAwLjIwMDI4MiwgMC4zMzA3NzUsIDAuNDk0MTMyLCAwLjY1NzA3OSwgMC44MjAwOTMsIDAuOTgzMDk1IiwgXAotICAgICAgICAgICIwLjAzOTQ2MywgMC4yMDAzODYsIDAuMzMwNTkxLCAwLjQ5MzI4MSwgMC42NTYwMDUsIDAuODIwMTE4LCAwLjk4MTY5OSIsIFwKLSAgICAgICAgICAiMC4wMzk0NjYsIDAuMjAwNjE0LCAwLjMzMDMzNSwgMC40OTQxMzgsIDAuNjU3MDc2LCAwLjgyMDA5OCwgMC45ODMxNCIsIFwKLSAgICAgICAgICAiMC4wMzk0NzcsIDAuMjAwMjAzLCAwLjMzMDc4OSwgMC40OTQwNTgsIDAuNjU2MjA2LCAwLjgxODcxNiwgMC45ODMwNjEiLCBcCi0gICAgICAgICAgIjAuMDM5NDQ5LCAwLjIwMDM4NiwgMC4zMzA4LCAwLjQ5NDExNSwgMC42NTcwOCwgMC44MjAwNzUsIDAuOTgzMTEyIiwgXAotICAgICAgICAgICIwLjAzOTQ4NCwgMC4yMDA0MTUsIDAuMzMwNjI1LCAwLjQ5NDEwOCwgMC42NTcwMzYsIDAuODIwMDQzLCAwLjk4MzA4NiIsIFwKLSAgICAgICAgICAiMC4wMzk0NzUsIDAuMjAwNjI0LCAwLjMzMDY0OCwgMC40OTM0MjYsIDAuNjU2MzM1LCAwLjgyMDAxNCwgMC45ODMwNzIiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTE4MjMsIDAuMTk0MDcxLCAwLjI1NDc2NCwgMC4zMzA2NjgsIDAuNDA2NjMyLCAwLjQ4MjU5NCwgMC41NTg1IiwgXAotICAgICAgICAgICIwLjEyNjM2LCAwLjIwMjI2OSwgMC4yNjI5NjUsIDAuMzM4ODk2LCAwLjQxNDkwMywgMC40OTA4NCwgMC41NjY2NzkiLCBcCi0gICAgICAgICAgIjAuMTM1MTM2LCAwLjIxMTA0MSwgMC4yNzE3MzYsIDAuMzQ3NjcsIDAuNDIzNjg0LCAwLjQ5OTU0MiwgMC41NzU0NjQiLCBcCi0gICAgICAgICAgIjAuMTQyMDUsIDAuMjE3ODY0LCAwLjI3ODU1NSwgMC4zNTQ0ODEsIDAuNDMwNDMyLCAwLjUwNjQxLCAwLjU4MjI1MSIsIFwKLSAgICAgICAgICAiMC4xNDc0OTIsIDAuMjIzMzIxLCAwLjI4NDAxMiwgMC4zNTk5NDMsIDAuNDM1ODc5LCAwLjUxMTg4OCwgMC41ODc3MzEiLCBcCi0gICAgICAgICAgIjAuMTU0NzU1LCAwLjIzMDYyOCwgMC4yOTEzNDksIDAuMzY3MjU4LCAwLjQ0MzIwNywgMC41MTkxMzQsIDAuNTk1MDQ4IiwgXAotICAgICAgICAgICIwLjE2MDI1MSwgMC4yMzYwNzEsIDAuMjk2Nzc2LCAwLjM3MjY1OSwgMC40NDg1NTUsIDAuNTI0NTkyLCAwLjYwMDQxNCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzg5MjQsIDAuMTk0MDgyLCAwLjMyMDE0NSwgMC40NzgzMzIsIDAuNjM1NTAxLCAwLjc5MjUwNSwgMC45NTAzNDgiLCBcCi0gICAgICAgICAgIjAuMDM4OTE5LCAwLjE5NDIzNiwgMC4zMjAwNjYsIDAuNDc4MzY0LCAwLjYzNTI1NSwgMC43OTI4NDUsIDAuOTUyMDMiLCBcCi0gICAgICAgICAgIjAuMDM4OTIsIDAuMTk0MDgyLCAwLjMyMDA3NSwgMC40NzgzNywgMC42MzUyMzIsIDAuNzkyODI3LCAwLjk1MDM4MyIsIFwKLSAgICAgICAgICAiMC4wMzg5MzMsIDAuMTk0MDg5LCAwLjMyMDMsIDAuNDc4MzM0LCAwLjYzNTYxNywgMC43OTI0NzYsIDAuOTUxMTA3IiwgXAotICAgICAgICAgICIwLjAzODkyMiwgMC4xOTQwODksIDAuMzIwMzAzLCAwLjQ3ODM0NSwgMC42MzU2MDIsIDAuNzkyNzU5LCAwLjk1MjAwNCIsIFwKLSAgICAgICAgICAiMC4wMzg5MTIsIDAuMTk0MTczLCAwLjMyMDQ3NywgMC40NzgzNDUsIDAuNjM1NDYyLCAwLjc5MzA2OCwgMC45NTE5NzkiLCBcCi0gICAgICAgICAgIjAuMDM5MTMsIDAuMTk0MDY3LCAwLjMyMDQ0MywgMC40NzgxOTIsIDAuNjM1NDE3LCAwLjc5MjUzNywgMC45NTE3NTIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUk4iOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHByZXNldDsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDYxMTM0LCAwLjEzODI1NSwgMC4yMDAwMjIsIDAuMjc3MjMxLCAwLjM1NDQzLCAwLjQzMTY5OCwgMC41MDg4NjYiLCBcCi0gICAgICAgICAgIjAuMDY5MzI0LCAwLjE0NjQxNSwgMC4yMDgxODQsIDAuMjg1NDAxLCAwLjM2MjYyMywgMC40Mzk4NTMsIDAuNTE3MDQxIiwgXAotICAgICAgICAgICIwLjA3ODk1OSwgMC4xNTYwNDYsIDAuMjE3ODM1LCAwLjI5NTAyNiwgMC4zNzIyNDksIDAuNDQ5NDY0LCAwLjUyNjc0MSIsIFwKLSAgICAgICAgICAiMC4wODYzNzEsIDAuMTYzNDAyLCAwLjIyNTE0OCwgMC4zMDIzNTIsIDAuMzc5NTU2LCAwLjQ1Njc4NCwgMC41MzM5NzMiLCBcCi0gICAgICAgICAgIjAuMDkyNTEzLCAwLjE2OTQ3NywgMC4yMzEyNDIsIDAuMzA4NDIxLCAwLjM4NTYzMywgMC40NjI5MTMsIDAuNTQwMTE3IiwgXAotICAgICAgICAgICIwLjEwMDI5MywgMC4xNzcxNTMsIDAuMjM4ODg0LCAwLjMxNjEwMywgMC4zOTMyOTcsIDAuNDcwNTA0LCAwLjU0Nzc2NiIsIFwKLSAgICAgICAgICAiMC4xMDU5NjMsIDAuMTgyNzYzLCAwLjI0NDQ2NCwgMC4zMjE2NiwgMC4zOTg4OTEsIDAuNDc2MTQ5LCAwLjU1MzM4NyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzk0ODYsIDAuMjAwMzU0LCAwLjMzMDYwMiwgMC40OTMwODYsIDAuNjU2NzQxLCAwLjgxOTg2OCwgMC45ODI4OTgiLCBcCi0gICAgICAgICAgIjAuMDM5NDgzLCAwLjIwMDM0MywgMC4zMzA4MjYsIDAuNDkzNzcxLCAwLjY1Njg1MiwgMC44MTk4ODYsIDAuOTgyOTAxIiwgXAotICAgICAgICAgICIwLjAzOTUwMiwgMC4yMDAzNywgMC4zMzA4OTgsIDAuNDkzMzk1LCAwLjY1Njg3LCAwLjgxOTg1NSwgMC45ODI5NTMiLCBcCi0gICAgICAgICAgIjAuMDM5NjExLCAwLjIwMDM5NSwgMC4zMzA5MDcsIDAuNDkzNTA2LCAwLjY1NjM0NSwgMC44MTk4MDksIDAuOTgyOSIsIFwKLSAgICAgICAgICAiMC4wMzk3NDksIDAuMjAwMzM1LCAwLjMzMDg2MywgMC40OTM4MDMsIDAuNjU2MzksIDAuODE5ODQ2LCAwLjk4MjgyNyIsIFwKLSAgICAgICAgICAiMC4wMzk5MTEsIDAuMjAwNDAyLCAwLjMzMDg4OCwgMC40OTM4NjYsIDAuNjU2ODQ4LCAwLjgxOTg2NSwgMC45ODI5MyIsIFwKLSAgICAgICAgICAiMC4wNDAwMzcsIDAuMjAwMzAxLCAwLjMzMDUzOSwgMC40OTM4MDEsIDAuNjU2ODM5LCAwLjgxOTkxMSwgMC45ODI4MTMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2OTE4LCAwLjAwNjk2OSwgMC4wMDY5NzYsIDAuMDA2OTgxLCAwLjAwNjk4MiwgMC4wMDY5ODIsIDAuMDA2OTgyIiwgXAotICAgICAgICAgICIwLjAwNjkxNywgMC4wMDY5NjgsIDAuMDA2OTc0LCAwLjAwNjk3OCwgMC4wMDY5NzksIDAuMDA2OTgsIDAuMDA2OTgiLCBcCi0gICAgICAgICAgIjAuMDA2OTc0LCAwLjAwNzAyMiwgMC4wMDcwMjgsIDAuMDA3MDMxLCAwLjAwNzAzNSwgMC4wMDcwMzYsIDAuMDA3MDMzIiwgXAotICAgICAgICAgICIwLjAwNzAyNSwgMC4wMDcwNzMsIDAuMDA3MDc5LCAwLjAwNzA4MiwgMC4wMDcwODQsIDAuMDA3MDg0LCAwLjAwNzA4MiIsIFwKLSAgICAgICAgICAiMC4wMDcxLCAwLjAwNzE0OSwgMC4wMDcxNTQsIDAuMDA3MTU3LCAwLjAwNzE1OCwgMC4wMDcxNTksIDAuMDA3MTU5IiwgXAotICAgICAgICAgICIwLjAwNzIxNSwgMC4wMDcyNjIsIDAuMDA3MjY2LCAwLjAwNzI3OCwgMC4wMDcyNywgMC4wMDcyNzksIDAuMDA3Mjc5IiwgXAotICAgICAgICAgICIwLjAwNzMwOCwgMC4wMDczNjgsIDAuMDA3MzYsIDAuMDA3MzczLCAwLjAwNzM2MiwgMC4wMDczNzUsIDAuMDA3MzYzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2NjUsIDAuMDA2NjYzLCAwLjAwNjY1NCwgMC4wMDY2NDcsIDAuMDA2NjQyLCAwLjAwNjYzOSwgMC4wMDY2MzciLCBcCi0gICAgICAgICAgIjAuMDA2NjQzLCAwLjAwNjY1NiwgMC4wMDY2NSwgMC4wMDY2NCwgMC4wMDY2MzUsIDAuMDA2NjMzLCAwLjAwNjYzMyIsIFwKLSAgICAgICAgICAiMC4wMDY2OSwgMC4wMDY3MDQsIDAuMDA2Njk4LCAwLjAwNjY4NywgMC4wMDY2ODIsIDAuMDA2Njc5LCAwLjAwNjY3NyIsIFwKLSAgICAgICAgICAiMC4wMDY3MzYsIDAuMDA2NzUxLCAwLjAwNjc0MiwgMC4wMDY3MzMsIDAuMDA2NzI4LCAwLjAwNjcyNSwgMC4wMDY3MjMiLCBcCi0gICAgICAgICAgIjAuMDA2ODAzLCAwLjAwNjgxOCwgMC4wMDY4MDksIDAuMDA2OCwgMC4wMDY3OTUsIDAuMDA2NzkyLCAwLjAwNjc4OSIsIFwKLSAgICAgICAgICAiMC4wMDY4OTgsIDAuMDA2OTE2LCAwLjAwNjkwNywgMC4wMDY4OTgsIDAuMDA2ODkyLCAwLjAwNjg4OCwgMC4wMDY4ODYiLCBcCi0gICAgICAgICAgIjAuMDA2OTk0LCAwLjAwNzAxMiwgMC4wMDcwMDEsIDAuMDA2OTkzLCAwLjAwNjk4OCwgMC4wMDY5ODEsIDAuMDA2OTc4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUk4iOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNzEyNSwgMC4wMDcxNzIsIDAuMDA3MTc3LCAwLjAwNzE4LCAwLjAwNzE4NCwgMC4wMDcxODUsIDAuMDA3MTgyIiwgXAotICAgICAgICAgICIwLjAwNzEsIDAuMDA3MTUyLCAwLjAwNzE1OSwgMC4wMDcxNjMsIDAuMDA3MTcsIDAuMDA3MTY3LCAwLjAwNzE2NyIsIFwKLSAgICAgICAgICAiMC4wMDcxMiwgMC4wMDcxNywgMC4wMDcxNzksIDAuMDA3MTg0LCAwLjAwNzE4OCwgMC4wMDcxODgsIDAuMDA3MTkiLCBcCi0gICAgICAgICAgIjAuMDA3MTcyLCAwLjAwNzIxNCwgMC4wMDcyMjQsIDAuMDA3MjMsIDAuMDA3MjM0LCAwLjAwNzIzNSwgMC4wMDcyMzYiLCBcCi0gICAgICAgICAgIjAuMDA3MjUyLCAwLjAwNzI3OSwgMC4wMDcyODgsIDAuMDA3Mjk0LCAwLjAwNzI5NiwgMC4wMDcyOTksIDAuMDA3MyIsIFwKLSAgICAgICAgICAiMC4wMDczODksIDAuMDA3NDAyLCAwLjAwNzQxLCAwLjAwNzQxNiwgMC4wMDc0MTksIDAuMDA3NDIxLCAwLjAwNzQyMyIsIFwKLSAgICAgICAgICAiMC4wMDc1MjgsIDAuMDA3NTI5LCAwLjAwNzUzNiwgMC4wMDc1NDUsIDAuMDA3NTQ1LCAwLjAwNzU0OCwgMC4wMDc1NDciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoc2NhbGFyKSB7Ci0gICAgICAgIHZhbHVlcygiMCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUk4pICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTQ3MDM5OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTM2MDQyOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTQ3MDM5OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDcxNywgMC4wMDA3MTcsIDAuMDAwNzE3LCAwLjAwMDcxNywgMC4wMDA3MTcsIDAuMDAwNzE2LCAwLjAwMDcxNiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDc0MSwgMC4wMDA3MjUsIDAuMDAwNzI0LCAwLjAwMDcyNCwgMC4wMDA3MjMsIDAuMDAwNzIxLCAwLjAwMDcyMiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQiOwotICAgICAgc2RmX2NvbmQgOiAiRCA9PSAxJ2IwIjsKLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjA2MTEzNCwgMC4wNjkzMDQsIDAuMDc4OTUxLCAwLjA4NjM3MSwgMC4wOTI1MTMsIDAuMTAwMjkzLCAwLjEwNTg5NyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJlY292ZXJ5X3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiRCI7Ci0gICAgICBzZGZfY29uZCA6ICJEID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHJlY292ZXJ5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMjUsIC0wLjAzLCAtMC4wNDI1LCAtMC4wNDg3NSwgLTAuMDU1LCAtMC4wNTg3NSwgLTAuMDY3NSIsIFwKLSAgICAgICAgICAiLTAuMDI2MjUsIC0wLjAzNzUsIC0wLjA0Mzc1LCAtMC4wNSwgLTAuMDU2MjUsIC0wLjA2LCAtMC4wNjg3NSIsIFwKLSAgICAgICAgICAiLTAuMDIsIC0wLjAzMTI1LCAtMC4wMzc1LCAtMC4wNDM3NSwgLTAuMDUsIC0wLjA2LCAtMC4wNjI1IiwgXAotICAgICAgICAgICItMC4wMDc1LCAtMC4wMTg3NSwgLTAuMDI1LCAtMC4wMzEyNSwgLTAuMDM3NSwgLTAuMDQ3NSwgLTAuMDUiLCBcCi0gICAgICAgICAgIjAuMDA1LCAwLCAtMC4wMTI1LCAtMC4wMTg3NSwgLTAuMDI1LCAtMC4wMzUsIC0wLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjAzMzc1LCAwLjAyMjUsIDAuMDEsIDAuMDAzNzUsIC0wLjAwMjUsIC0wLjAxMjUsIC0wLjAyMTI1IiwgXAotICAgICAgICAgICIwLjA1NSwgMC4wNDM3NSwgMC4wMzEyNSwgMC4wMjUsIDAuMDEyNSwgMC4wMDg3NSwgMCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJlbW92YWxfcmlzaW5nOwotICAgICAgd2hlbiA6ICJEIjsKLSAgICAgIHNkZl9jb25kIDogIkQgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQocmVtb3ZhbF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzc1LCAwLjA0ODc1LCAwLjA1NSwgMC4wNjEyNSwgMC4wNjc1LCAwLjA3NzUsIDAuMDgiLCBcCi0gICAgICAgICAgIjAuMDQ1LCAwLjA1LCAwLjA2MjUsIDAuMDY4NzUsIDAuMDY4NzUsIDAuMDc4NzUsIDAuMDgxMjUiLCBcCi0gICAgICAgICAgIjAuMDQ1LCAwLjA1NjI1LCAwLjA2MjUsIDAuMDY4NzUsIDAuMDc1LCAwLjA4NSwgMC4wODc1IiwgXAotICAgICAgICAgICIwLjA1MTI1LCAwLjA1NjI1LCAwLjA2ODc1LCAwLjA3NSwgMC4wODEyNSwgMC4wODUsIDAuMDkzNzUiLCBcCi0gICAgICAgICAgIjAuMDUxMjUsIDAuMDYyNSwgMC4wNjg3NSwgMC4wNzUsIDAuMDgxMjUsIDAuMDkxMjUsIDAuMDkzNzUiLCBcCi0gICAgICAgICAgIjAuMDYsIDAuMDY1LCAwLjA3NzUsIDAuMDgzNzUsIDAuMDgzNzUsIDAuMDkzNzUsIDAuMDk2MjUiLCBcCi0gICAgICAgICAgIjAuMDYzNzUsIDAuMDY4NzUsIDAuMDgxMjUsIDAuMDg3NSwgMC4wODc1LCAwLjA5NzUsIDAuMSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogREZGU1JIUVg0ICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoREZGU1JIUVg0KSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDEuNTE1OTg7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgZmYgKE4zNSxRQklOVCkgewotICAgIG5leHRfc3RhdGUgOiAiRCI7Ci0gICAgY2xvY2tlZF9vbiA6ICJDSyI7Ci0gICAgY2xlYXIgOiAiKCFSTikiOwotICAgIHByZXNldCA6ICIoIVNOKSI7Ci0gICAgY2xlYXJfcHJlc2V0X3ZhcjEgOiBIOwotICB9Ci0gIHBpbihDSykgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjAxODUxOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYwMTg1MTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2MDE4MDQ7Ci0gICAgY2xvY2sgOiB0cnVlOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNDI0NSwgMC4wMDQyMzQsIDAuMDA0MzA4LCAwLjAwNDQwMywgMC4wMDQ1MTQsIDAuMDA0NzUsIDAuMDA0OTM4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDExMTU5LCAwLjAxMTEzNSwgMC4wMTEyMDEsIDAuMDExMzI1LCAwLjAxMTQ3LCAwLjAxMTU5NSwgMC4wMTE3OTIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFEJlJOJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9STl9FUV8xX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wOTg5MjMsIDAuMTA3MjE4LCAwLjExNjk5NywgMC4xMjUwNDksIDAuMTMyMDIzLCAwLjE0MDg5OSwgMC4xNDc3OTIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjA4ODc2NiwgMC4wOTY4NjcsIDAuMTA2NDYxLCAwLjExNDI1NywgMC4xMjA2MDMsIDAuMTI4OTY2LCAwLjEzNDkxMSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwODE0Nzc3OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDgxMjY2NjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA4MTQ3Nzc7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA0NjU2LCAwLjAwNDYxMSwgMC4wMDQ2MzIsIDAuMDA0Njg0LCAwLjAwNDc1OSwgMC4wMDQ5MTksIDAuMDA1MDg1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA0NTUyLCAwLjAwNDUyMSwgMC4wMDQ1MzUsIDAuMDA0NTgyLCAwLjAwNDY1MiwgMC4wMDQ4MDgsIDAuMDA0OTU1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlJOJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIlJOX0VRXzFfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMDYyNSwgLTAuMDAxMjUsIDAuMDA1LCAwLjAwNSwgMC4wMTEyNSwgMC4wMTUsIDAuMDE3NSIsIFwKLSAgICAgICAgICAiLTAuMDE3NSwgLTAuMDA2MjUsIC0wLjAwNjI1LCAwLCAwLCAwLjAwMzc1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgLTAuMDA2MjUsIDAsIDAuMDAzNzUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDEyNSwgLTAuMDA2MjUsIC0wLjAwMjUsIDAiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMTI1LCAtMC4wMDg3NSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjAzMzc1LCAtMC4wMjg3NSwgLTAuMDIyNSwgLTAuMDIyNSwgLTAuMDE2MjUsIC0wLjAxMjUsIC0wLjAxIiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTUsIC0wLjAxMjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxODc1LCAwLjAzLCAwLjAzNjI1LCAwLjA0MjUsIDAuMDQ4NzUsIDAuMDU4NzUsIDAuMDYxMjUiLCBcCi0gICAgICAgICAgIjAuMDEzNzUsIDAuMDI1LCAwLjAzMTI1LCAwLjAzNzUsIDAuMDQzNzUsIDAuMDUzNzUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIjAuMDEzNzUsIDAuMDE4NzUsIDAuMDMxMjUsIDAuMDM3NSwgMC4wNDM3NSwgMC4wNDc1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICIwLjAwNzUsIDAuMDE4NzUsIDAuMDI1LCAwLjAzMTI1LCAwLjAzNzUsIDAuMDQ3NSwgMC4wNSIsIFwKLSAgICAgICAgICAiMC4wMDc1LCAwLjAxMjUsIDAuMDI1LCAwLjAzMTI1LCAwLjAzNzUsIDAuMDQ3NSwgMC4wNSIsIFwKLSAgICAgICAgICAiMC4wMDM3NSwgMC4wMTUsIDAuMDIxMjUsIDAuMDI3NSwgMC4wMzM3NSwgMC4wNDM3NSwgMC4wNDYyNSIsIFwKLSAgICAgICAgICAiMC4wMDEyNSwgMC4wMTI1LCAwLjAxODc1LCAwLjAzMTI1LCAwLjAzMTI1LCAwLjA0MTI1LCAwLjA1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJSTiZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJSTl9FUV8xX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDUsIDAuMDQ1LCAwLjAzMjUsIDAuMDI2MjUsIDAuMDIsIDAuMDEsIDAuMDA3NSIsIFwKLSAgICAgICAgICAiMC4wNTUsIDAuMDUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMjUsIDAuMDE1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMDY3NSwgMC4wNTYyNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyMTI1LCAwLjAxODc1IiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDYyNSwgMC4wNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAyNzUsIDAuMDI1IiwgXAotICAgICAgICAgICIwLjA3Mzc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzM3NSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4wODM3NSwgMC4wNzI1LCAwLjA2LCAwLjA1Mzc1LCAwLjA0NzUsIDAuMDM3NSwgMC4wMzUiLCBcCi0gICAgICAgICAgIjAuMDg2MjUsIDAuMDc1LCAwLjA2ODc1LCAwLjA1NjI1LCAwLjA1LCAwLjA0NjI1LCAwLjAzNzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjUsIDAuMDIsIDAuMDA3NSwgMC4wMDEyNSwgLTAuMDA1LCAtMC4wMTUsIC0wLjAyMzc1IiwgXAotICAgICAgICAgICIwLjAzNjI1LCAwLjAyNSwgMC4wMTI1LCAwLjAwNjI1LCAwLCAtMC4wMSwgLTAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMDM2MjUsIDAuMDMxMjUsIDAuMDE4NzUsIDAuMDEyNSwgMC4wMDYyNSwgLTAuMDAzNzUsIC0wLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMDQyNSwgMC4wMzc1LCAwLjAyNSwgMC4wMTg3NSwgMC4wMDYyNSwgMC4wMDI1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiMC4wNDg3NSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAxODc1LCAwLjAxMjUsIDAuMDAyNSwgMCIsIFwKLSAgICAgICAgICAiMC4wNTI1LCAwLjA0MTI1LCAwLjAzNSwgMC4wMjI1LCAwLjAxNjI1LCAwLjAwNjI1LCAwLjAwMzc1IiwgXAotICAgICAgICAgICIwLjA1NSwgMC4wNSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMTUsIDAuMDA2MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFEpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMS4zNzQyMTsKLSAgICBmdW5jdGlvbiA6ICJOMzUiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5vbl91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcmlzaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDkwNDM3LCAwLjE0NTIyNCwgMC4xOTkwMzEsIDAuMjM3NDUxLCAwLjI5ODkzMSwgMC4zNTI3MywgMC40Mjk1NyIsIFwKLSAgICAgICAgICAiMC4wOTg2NDQsIDAuMTUzNDU3LCAwLjIwNzI2NCwgMC4yNDU2ODksIDAuMzA3MTYzLCAwLjM2MDk2NiwgMC40Mzc3NjYiLCBcCi0gICAgICAgICAgIjAuMTA4MzI4LCAwLjE2MzEyNywgMC4yMTY5NDksIDAuMjU1MzU0LCAwLjMxNjc5MiwgMC4zNzA2MjMsIDAuNDQ3NDciLCBcCi0gICAgICAgICAgIjAuMTE2MzQ5LCAwLjE3MTE3MywgMC4yMjQ5ODIsIDAuMjYzNDA3LCAwLjMyNDg3OCwgMC4zNzg2ODQsIDAuNDU1NTQ4IiwgXAotICAgICAgICAgICIwLjEyMzQyMSwgMC4xNzgyNDcsIDAuMjMyMDU4LCAwLjI3MDQ3NywgMC4zMzE5NTcsIDAuMzg1NzYxLCAwLjQ2MjU4NyIsIFwKLSAgICAgICAgICAiMC4xMzIyNzEsIDAuMTg3MDkxLCAwLjI0MDg5NiwgMC4yNzkzMTYsIDAuMzQwODEyLCAwLjM5NDU5MiwgMC40NzE0MzEiLCBcCi0gICAgICAgICAgIjAuMTM5MTY4LCAwLjE5Mzk4MiwgMC4yNDc3NzUsIDAuMjg2MjAxLCAwLjM0NzY2NSwgMC40MDE0ODQsIDAuNDc4MzM4Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDI1MTg2LCAwLjEzNDcwMSwgMC4yNDc3MTQsIDAuMzI4NjY5LCAwLjQ1NzY4LCAwLjU3MjIsIDAuNzM0NTAxIiwgXAotICAgICAgICAgICIwLjAyNTE1NywgMC4xMzQ3MTYsIDAuMjQ3NzE2LCAwLjMyODM5MSwgMC40NTc3NzcsIDAuNTcyMjMyLCAwLjczNDI1IiwgXAotICAgICAgICAgICIwLjAyNTE2NSwgMC4xMzQ2NTIsIDAuMjQ3NzI4LCAwLjMyODQ1MSwgMC40NTc3NjQsIDAuNTcyMjE5LCAwLjczNDQ5NCIsIFwKLSAgICAgICAgICAiMC4wMjUxMzksIDAuMTM0NjcsIDAuMjQ3NzE4LCAwLjMyODQwNiwgMC40NTc4MzYsIDAuNTcyMjI3LCAwLjczMzMxIiwgXAotICAgICAgICAgICIwLjAyNTA5MiwgMC4xMzQ2NywgMC4yNDc3MTksIDAuMzI4Njg0LCAwLjQ1Nzg5NywgMC41NzIyMDYsIDAuNzMzOTc1IiwgXAotICAgICAgICAgICIwLjAyNTI1NywgMC4xMzQ3NDQsIDAuMjQ3NzIyLCAwLjMyODYzOCwgMC40NTgwOCwgMC41NzIxOTcsIDAuNzM0NDExIiwgXAotICAgICAgICAgICIwLjAyNTExNywgMC4xMzQ3NzksIDAuMjQ3NzE4LCAwLjMyODYwNiwgMC40NTgwNjEsIDAuNTcyMTg3LCAwLjczNDU0OCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5ODkyMywgMC4xNTM3OTksIDAuMjA3NjE3LCAwLjI0NjAzMiwgMC4zMDc0OSwgMC4zNjEyNzIsIDAuNDM4MTIiLCBcCi0gICAgICAgICAgIjAuMTA3MjE4LCAwLjE2MjEwMywgMC4yMTU5MjIsIDAuMjU0MzQ1LCAwLjMxNTc5NiwgMC4zNjk1NzYsIDAuNDQ2NDMzIiwgXAotICAgICAgICAgICIwLjExNjk5NywgMC4xNzE4NjQsIDAuMjI1Njc2LCAwLjI2NDA5NSwgMC4zMjU1NTcsIDAuMzc5MzY5LCAwLjQ1NjIwMSIsIFwKLSAgICAgICAgICAiMC4xMjUwNDksIDAuMTc5OTA2LCAwLjIzMzcyNSwgMC4yNzIxMzMsIDAuMzMzNTk5LCAwLjM4NzM3NywgMC40NjQyMzYiLCBcCi0gICAgICAgICAgIjAuMTMyMDIzLCAwLjE4Njg5NCwgMC4yNDA3MTUsIDAuMjc5MTI1LCAwLjM0MDU4OSwgMC4zOTQzNjcsIDAuNDcxMjI3IiwgXAotICAgICAgICAgICIwLjE0MDg5OSwgMC4xOTU3NDgsIDAuMjQ5NTY0LCAwLjI4Nzk3MSwgMC4zNDk0MzYsIDAuNDAzMjE0LCAwLjQ4MDA3NiIsIFwKLSAgICAgICAgICAiMC4xNDc3OTIsIDAuMjAyNjU1LCAwLjI1NjM3MywgMC4yOTQ3ODksIDAuMzU2MzY5LCAwLjQxMDE1NiwgMC40ODY4OTIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjQzMzcsIDAuMTMyNzM1LCAwLjI0NDA5NSwgMC4zMjQxODcsIDAuNDUyMjM5LCAwLjU2NDE3MSwgMC43MjM0ODQiLCBcCi0gICAgICAgICAgIjAuMDI0MzI2LCAwLjEzMjczMywgMC4yNDQwOTgsIDAuMzIzODYzLCAwLjQ1MjIsIDAuNTY0MjA0LCAwLjcyMzQxMyIsIFwKLSAgICAgICAgICAiMC4wMjQzMjQsIDAuMTMyNzM2LCAwLjI0NDE0NiwgMC4zMjQxODMsIDAuNDUyMjQ4LCAwLjU2NDMyNSwgMC43MjQzNDIiLCBcCi0gICAgICAgICAgIjAuMDI0MzEyLCAwLjEzMjczMiwgMC4yNDQwOTUsIDAuMzI0MzAyLCAwLjQ1MjIzMSwgMC41NjQxNTksIDAuNzIzMzY1IiwgXAotICAgICAgICAgICIwLjAyNDI5NCwgMC4xMzI3MzEsIDAuMjQ0MDk3LCAwLjMyMzk1OSwgMC40NTIyMjQsIDAuNTY0MTYxLCAwLjcyMzM3MyIsIFwKLSAgICAgICAgICAiMC4wMjQzMTYsIDAuMTMyNzUxLCAwLjI0NDA4MiwgMC4zMjQyODMsIDAuNDUyMjEzLCAwLjU2NDE3NCwgMC43MjM0MDQiLCBcCi0gICAgICAgICAgIjAuMDI0Mjk4LCAwLjEzMjc4OCwgMC4yNDQxNDIsIDAuMzIzNzQ1LCAwLjQ1MTQzNywgMC41NjQzMjYsIDAuNzIzMzc0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiBjbGVhcjsKLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTYzMzQsIDAuMTcxMTY5LCAwLjIyNDk4NSwgMC4yNjM0MDQsIDAuMzI0ODgxLCAwLjM3ODY1OSwgMC40NTU1MjkiLCBcCi0gICAgICAgICAgIjAuMTI0MjM3LCAwLjE3OTA3NiwgMC4yMzI4OTIsIDAuMjcxMzA4LCAwLjMzMjc3NSwgMC4zODY1NzEsIDAuNDYzNDQ1IiwgXAotICAgICAgICAgICIwLjEzMjc5MiwgMC4xODc2NzQsIDAuMjQxNDkzLCAwLjI3OTkxLCAwLjM0MTM3OSwgMC4zOTUyMDYsIDAuNDcyMDI3IiwgXAotICAgICAgICAgICIwLjEzOTIxOSwgMC4xOTQxNSwgMC4yNDc5NjEsIDAuMjg2MzcyLCAwLjM0Nzg0LCAwLjQwMTYzMiwgMC40Nzg1MDgiLCBcCi0gICAgICAgICAgIjAuMTQ0NDUsIDAuMTk5MzM2LCAwLjI1MzE1MywgMC4yOTE1NzQsIDAuMzUzMDQsIDAuNDA2ODI4LCAwLjQ4MzY5NyIsIFwKLSAgICAgICAgICAiMC4xNTEyMzYsIDAuMjA1OTU1LCAwLjI1OTgyNiwgMC4yOTgyNDMsIDAuMzU5NzA5LCAwLjQxMzUsIDAuNDkwMzY2IiwgXAotICAgICAgICAgICIwLjE1NjI2NiwgMC4yMTEyMDEsIDAuMjY1MDA1LCAwLjMwMzQyNSwgMC4zNjQ5MDQsIDAuNDE4NjkzLCAwLjQ5NTUzOCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyNDYzNSwgMC4xMzI3NjIsIDAuMjQ0MzczLCAwLjMyNDM4NSwgMC40NTIyNzQsIDAuNTY0MywgMC43MjI5MjQiLCBcCi0gICAgICAgICAgIjAuMDI0NjM0LCAwLjEzMjc3NywgMC4yNDQzODgsIDAuMzI0MzksIDAuNDUyMzMzLCAwLjU2NDI3OCwgMC43MjMzMDQiLCBcCi0gICAgICAgICAgIjAuMDI0NjMsIDAuMTMyNzU1LCAwLjI0NDEzNiwgMC4zMjQzOTEsIDAuNDUyMzUyLCAwLjU2NDQ5NywgMC43MjQ0OTQiLCBcCi0gICAgICAgICAgIjAuMDI0NTc5LCAwLjEzMjc5OSwgMC4yNDQwNzEsIDAuMzI0MzU3LCAwLjQ1MjMyMiwgMC41NjQyMDcsIDAuNzIzMTY3IiwgXAotICAgICAgICAgICIwLjAyNDYxMywgMC4xMzI3NjEsIDAuMjQ0Mzk2LCAwLjMyNDM4MiwgMC40NTIzMzIsIDAuNTYzNjYyLCAwLjcyMzM0IiwgXAotICAgICAgICAgICIwLjAyNDU3OCwgMC4xMzI3OTUsIDAuMjQ0MzgyLCAwLjMyNDM3NiwgMC40NTIzNDEsIDAuNTY0MTU3LCAwLjcyMzYxNCIsIFwKLSAgICAgICAgICAiMC4wMjQ1NTcsIDAuMTMyNzYzLCAwLjI0NDE2NSwgMC4zMjQyNTMsIDAuNDUyMzc3LCAwLjU2NDM4NiwgMC43MjQ0MzMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiU04iOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHByZXNldDsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzc1NzEsIDAuMTMyMjgzLCAwLjE4NjA5NCwgMC4yMjQ1MTYsIDAuMjg2MDEyLCAwLjMzOTgzMSwgMC40MTY3MzIiLCBcCi0gICAgICAgICAgIjAuMDg0MDc5LCAwLjEzODc2MiwgMC4xOTI1NzIsIDAuMjMxMDI1LCAwLjI5MjUxMiwgMC4zNDYyOTUsIDAuNDIzMjE5IiwgXAotICAgICAgICAgICIwLjA5MjgxNywgMC4xNDc0NDYsIDAuMjAxMjY2LCAwLjIzOTY4MywgMC4zMDExMywgMC4zNTQ5OTcsIDAuNDMxOTA4IiwgXAotICAgICAgICAgICIwLjEwMTg0MywgMC4xNTY0ODIsIDAuMjEwMzAxLCAwLjI0ODcwOCwgMC4zMTAxOSwgMC4zNjQwMDksIDAuNDQwODY3IiwgXAotICAgICAgICAgICIwLjEwOTQ2NiwgMC4xNjQxMzEsIDAuMjE3OTUxLCAwLjI1NjM2MSwgMC4zMTc4NCwgMC4zNzE2NTEsIDAuNDQ4NTUxIiwgXAotICAgICAgICAgICIwLjExOTUzMiwgMC4xNzQxNzcsIDAuMjI3OTg0LCAwLjI2NjQwMiwgMC4zMjc4OTMsIDAuMzgxNjg1LCAwLjQ1ODU2IiwgXAotICAgICAgICAgICIwLjEyNzAyNCwgMC4xODE2OTQsIDAuMjM1NTAzLCAwLjI3MzkyLCAwLjMzNTM5MiwgMC4zODkyNDcsIDAuNDY2MDYzIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDI0NTcsIDAuMTM0NjExLCAwLjI0Nzg3MSwgMC4zMjg5NzksIDAuNDU4ODA5LCAwLjU3MjM0NCwgMC43MzQ2NzciLCBcCi0gICAgICAgICAgIjAuMDI0NTk2LCAwLjEzNDU3MywgMC4yNDc4MjQsIDAuMzI4OTgsIDAuNDU4ODAzLCAwLjU3MjQwNSwgMC43MzQ2NjUiLCBcCi0gICAgICAgICAgIjAuMDI0NTc0LCAwLjEzNDU0NywgMC4yNDc4NDMsIDAuMzI4OTcsIDAuNDU4NzM1LCAwLjU3MTcyOCwgMC43MzQ2MDEiLCBcCi0gICAgICAgICAgIjAuMDI0NTA4LCAwLjEzNDYxOSwgMC4yNDc3OTksIDAuMzI4OTQzLCAwLjQ1ODc3NiwgMC41NzI0MDMsIDAuNzM0NTk1IiwgXAotICAgICAgICAgICIwLjAyNDY1NCwgMC4xMzQ2NjMsIDAuMjQ3ODg5LCAwLjMyODk3OCwgMC40NTg4MjUsIDAuNTcyMzczLCAwLjczNDU5NyIsIFwKLSAgICAgICAgICAiMC4wMjQ4OTYsIDAuMTM0NjUyLCAwLjI0NzczMywgMC4zMjkwMDksIDAuNDU4Nzc3LCAwLjU3MjM2MiwgMC43MzQ1NjgiLCBcCi0gICAgICAgICAgIjAuMDI1MTE3LCAwLjEzNDYzNywgMC4yNDc4NDksIDAuMzI5MDgyLCAwLjQ1ODgwOSwgMC41NzIzMzUsIDAuNzM0NTc2Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTAwNTQ3LCAwLjE1NTQ1NCwgMC4yMDkyNzIsIDAuMjQ3Njk0LCAwLjMwOTE1OSwgMC4zNjI5NTQsIDAuNDM5ODI0IiwgXAotICAgICAgICAgICIwLjEwNzEyMSwgMC4xNjE5NjUsIDAuMjE1Nzc1LCAwLjI1NDE5NiwgMC4zMTU2NTksIDAuMzY5NDUzLCAwLjQ0NjMyNiIsIFwKLSAgICAgICAgICAiMC4xMTQ2NjIsIDAuMTY5NTYxLCAwLjIyMzM3NywgMC4yNjE3OTksIDAuMzIzMjY0LCAwLjM3NzA1NywgMC40NTM5MjIiLCBcCi0gICAgICAgICAgIjAuMTIyMTUxLCAwLjE3NzA3MiwgMC4yMzA4ODMsIDAuMjY5MzExLCAwLjMzMDc2MywgMC4zODQ1NTMsIDAuNDYxNDI5IiwgXAotICAgICAgICAgICIwLjEyOTMxNSwgMC4xODQxNjksIDAuMjM3OTgyLCAwLjI3NjQwMywgMC4zMzc4NywgMC4zOTE2NiwgMC40Njg1MjgiLCBcCi0gICAgICAgICAgIjAuMTM5NTYyLCAwLjE5NDQxOCwgMC4yNDgyMjksIDAuMjg2NjQ3LCAwLjM0ODEwOSwgMC40MDE4OTIsIDAuNDc4NzYxIiwgXAotICAgICAgICAgICIwLjE0NzQ4OCwgMC4yMDI0MDcsIDAuMjU2MjIyLCAwLjI5NDYzNywgMC4zNTYxMjUsIDAuNDA5OSwgMC40ODY3NDgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjQ2MDYsIDAuMTMyNzQ0LCAwLjI0NDE2OCwgMC4zMjM4MjIsIDAuNDUyMzQ1LCAwLjU2MzcsIDAuNzI0MjciLCBcCi0gICAgICAgICAgIjAuMDI0NjI4LCAwLjEzMjc2MiwgMC4yNDQwNTQsIDAuMzI0MzY4LCAwLjQ1MjMwNCwgMC41NjQzLCAwLjcyNDA4MiIsIFwKLSAgICAgICAgICAiMC4wMjQ1OTYsIDAuMTMyNzYyLCAwLjI0NDI3LCAwLjMyMzc3NSwgMC40NTIzMzYsIDAuNTY0MjQ0LCAwLjcyNDE5NCIsIFwKLSAgICAgICAgICAiMC4wMjQ1OTEsIDAuMTMyNzk4LCAwLjI0NDA3MiwgMC4zMjQ0ODcsIDAuNDUyMzEzLCAwLjU2MzU1MiwgMC43MjMxMjYiLCBcCi0gICAgICAgICAgIjAuMDI0NjQyLCAwLjEzMjc3MSwgMC4yNDQzNTksIDAuMzI0MzU1LCAwLjQ1MjI5NiwgMC41NjQxOTksIDAuNzIzNDE1IiwgXAotICAgICAgICAgICIwLjAyNDc3OSwgMC4xMzI4MTgsIDAuMjQ0MjAzLCAwLjMyMzkyNiwgMC40NTIzMTYsIDAuNTY0MzEyLCAwLjcyNDIwNSIsIFwKLSAgICAgICAgICAiMC4wMjQ4OTUsIDAuMTMyODYyLCAwLjI0NDE3NiwgMC4zMjQyMzYsIDAuNDUyMzk0LCAwLjU2NDM1LCAwLjcyNDA2NiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxNDg1NywgMC4wMTQ5ODYsIDAuMDE1MDA4LCAwLjAxNTAxNiwgMC4wMTUwMjIsIDAuMDE1MDI2LCAwLjAxNTAyNyIsIFwKLSAgICAgICAgICAiMC4wMTQ4MzksIDAuMDE0OTY5LCAwLjAxNDk5MywgMC4wMTUsIDAuMDE1MDA3LCAwLjAxNTAxNCwgMC4wMTUwMTMiLCBcCi0gICAgICAgICAgIjAuMDE0OTA4LCAwLjAxNTAzNywgMC4wMTUwNiwgMC4wMTUwNzEsIDAuMDE1MDc0LCAwLjAxNTA2OCwgMC4wMTUwOCIsIFwKLSAgICAgICAgICAiMC4wMTUwNDIsIDAuMDE1MTY5LCAwLjAxNTE5MiwgMC4wMTUxOTksIDAuMDE1MjA1LCAwLjAxNTIwOCwgMC4wMTUyMTEiLCBcCi0gICAgICAgICAgIjAuMDE1MDk2LCAwLjAxNTIzNywgMC4wMTUyNjIsIDAuMDE1Mjc0LCAwLjAxNTI3NywgMC4wMTUyNzQsIDAuMDE1Mjg5IiwgXAotICAgICAgICAgICIwLjAxNTM2NywgMC4wMTU0NzksIDAuMDE1NTA2LCAwLjAxNTUxMSwgMC4wMTU1MTcsIDAuMDE1NTIxLCAwLjAxNTUyNCIsIFwKLSAgICAgICAgICAiMC4wMTU0OTcsIDAuMDE1NjYxLCAwLjAxNTY0NCwgMC4wMTU2NSwgMC4wMTU2NTYsIDAuMDE1NjYsIDAuMDE1NjY1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTQyODQsIDAuMDE0NDg1LCAwLjAxNDUyMiwgMC4wMTQ1MzUsIDAuMDE0NTQ2LCAwLjAxNDU1MiwgMC4wMTQ1NTciLCBcCi0gICAgICAgICAgIjAuMDE0Mjg0LCAwLjAxNDQ4LCAwLjAxNDUxOSwgMC4wMTQ1MzIsIDAuMDE0NTQzLCAwLjAxNDU0OSwgMC4wMTQ1NTQiLCBcCi0gICAgICAgICAgIjAuMDE0MzczLCAwLjAxNDU3MywgMC4wMTQ2MTEsIDAuMDE0NjIzLCAwLjAxNDYzMywgMC4wMTQ2MzksIDAuMDE0NjQ0IiwgXAotICAgICAgICAgICIwLjAxNDUwNSwgMC4wMTQ3MDgsIDAuMDE0NzQ1LCAwLjAxNDc1OCwgMC4wMTQ3NjksIDAuMDE0Nzc1LCAwLjAxNDc4IiwgXAotICAgICAgICAgICIwLjAxNDU3MSwgMC4wMTQ3ODYsIDAuMDE0ODI1LCAwLjAxNDgzOCwgMC4wMTQ4NSwgMC4wMTQ4NTUsIDAuMDE0ODYxIiwgXAotICAgICAgICAgICIwLjAxNDg0OCwgMC4wMTUwNTMsIDAuMDE1MDksIDAuMDE1MTAyLCAwLjAxNTExMywgMC4wMTUxMTgsIDAuMDE1MTIzIiwgXAotICAgICAgICAgICIwLjAxNTAyNSwgMC4wMTUyMTgsIDAuMDE1MjY3LCAwLjAxNTI4LCAwLjAxNTI3OCwgMC4wMTUyODIsIDAuMDE1MyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxNzM1OSwgMC4wMTc1NjUsIDAuMDE3NjA3LCAwLjAxNzYyMiwgMC4wMTc2MzQsIDAuMDE3NjQsIDAuMDE3NjQ2IiwgXAotICAgICAgICAgICIwLjAxNzM1NywgMC4wMTc1NjQsIDAuMDE3NjA3LCAwLjAxNzYyMSwgMC4wMTc2MzMsIDAuMDE3NjQsIDAuMDE3NjQ3IiwgXAotICAgICAgICAgICIwLjAxNzQwOCwgMC4wMTc2MTcsIDAuMDE3NjYsIDAuMDE3Njc0LCAwLjAxNzY4NywgMC4wMTc2OTMsIDAuMDE3Njk5IiwgXAotICAgICAgICAgICIwLjAxNzQ5NiwgMC4wMTc3MDEsIDAuMDE3NzQ0LCAwLjAxNzc1OCwgMC4wMTc3NywgMC4wMTc3NzcsIDAuMDE3NzgzIiwgXAotICAgICAgICAgICIwLjAxNzU5OSwgMC4wMTc4MDMsIDAuMDE3ODQ2LCAwLjAxNzg2LCAwLjAxNzg3MywgMC4wMTc4OCwgMC4wMTc4ODYiLCBcCi0gICAgICAgICAgIjAuMDE3Nzk5LCAwLjAxODAyOSwgMC4wMTgwNzUsIDAuMDE4MDksIDAuMDE4MTA0LCAwLjAxODExMSwgMC4wMTgxMDIiLCBcCi0gICAgICAgICAgIjAuMDE3OTc3LCAwLjAxODE4NCwgMC4wMTgyMjUsIDAuMDE4MjM2LCAwLjAxODI1MSwgMC4wMTgyNTgsIDAuMDE4MjY0Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3Bvd2VyKHNjYWxhcikgewotICAgICAgICB2YWx1ZXMoIjAiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTc4NzIsIDAuMDE4MDAxLCAwLjAxODAyMSwgMC4wMTgwMywgMC4wMTgwMzQsIDAuMDE4MDM4LCAwLjAxODA0IiwgXAotICAgICAgICAgICIwLjAxNzgzMywgMC4wMTc5NjMsIDAuMDE3OTg1LCAwLjAxNzk5MiwgMC4wMTc5OTgsIDAuMDE4LCAwLjAxODAwMyIsIFwKLSAgICAgICAgICAiMC4wMTc4NzEsIDAuMDE4MDA0LCAwLjAxODAyNiwgMC4wMTgwMzMsIDAuMDE4MDM5LCAwLjAxODA0MSwgMC4wMTgwNDQiLCBcCi0gICAgICAgICAgIjAuMDE3OTU2LCAwLjAxODEwOCwgMC4wMTgxMzQsIDAuMDE4MTQyLCAwLjAxODE0OCwgMC4wMTgxNTIsIDAuMDE4MTU1IiwgXAotICAgICAgICAgICIwLjAxODExMiwgMC4wMTgyNTUsIDAuMDE4Mjc2LCAwLjAxODI4NiwgMC4wMTgyOTEsIDAuMDE4MjkyLCAwLjAxODI5NSIsIFwKLSAgICAgICAgICAiMC4wMTg0MTcsIDAuMDE4NTMsIDAuMDE4NTYzLCAwLjAxODU2LCAwLjAxODU2NywgMC4wMTg1NzcsIDAuMDE4NTgzIiwgXAotICAgICAgICAgICIwLjAxODY3NywgMC4wMTg4MTQsIDAuMDE4ODQsIDAuMDE4ODQ2LCAwLjAxODg1NywgMC4wMTg4NjEsIDAuMDE4ODYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMzYzNSwgMC4wMTM4NDEsIDAuMDEzODg0LCAwLjAxMzg5OCwgMC4wMTM5MTIsIDAuMDEzOTE4LCAwLjAxMzkyNCIsIFwKLSAgICAgICAgICAiMC4wMTM1NTMsIDAuMDEzNzYyLCAwLjAxMzgwNiwgMC4wMTM4MiwgMC4wMTM4MzIsIDAuMDEzODM5LCAwLjAxMzg0NSIsIFwKLSAgICAgICAgICAiMC4wMTM1MzIsIDAuMDEzNzM3LCAwLjAxMzc4MSwgMC4wMTM3OTUsIDAuMDEzODA4LCAwLjAxMzgxNSwgMC4wMTM4MjEiLCBcCi0gICAgICAgICAgIjAuMDEzNTUsIDAuMDEzNzU1LCAwLjAxMzc5OCwgMC4wMTM4MTMsIDAuMDEzODI1LCAwLjAxMzgzMiwgMC4wMTM4MzgiLCBcCi0gICAgICAgICAgIjAuMDEzNTg4LCAwLjAxMzc5OSwgMC4wMTM4NDQsIDAuMDEzODU5LCAwLjAxMzg3MiwgMC4wMTM4NzksIDAuMDEzODg2IiwgXAotICAgICAgICAgICIwLjAxMzcyOCwgMC4wMTM5MzIsIDAuMDEzOTk0LCAwLjAxNDAwOCwgMC4wMTQwMjIsIDAuMDE0MDI5LCAwLjAxNDAzNiIsIFwKLSAgICAgICAgICAiMC4wMTM4NzcsIDAuMDE0MDY2LCAwLjAxNDExMSwgMC4wMTQxMjYsIDAuMDE0MTQsIDAuMDE0MTQ4LCAwLjAxNDE1NCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUk4pICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYwNTkwNzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MDU5MDc7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjA1ODI1OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDkxOCwgMC4wMDA5MTcsIDAuMDAwOTgzLCAwLjAwMTA4MSwgMC4wMDExOTIsIDAuMDAxNDA2LCAwLjAwMTU5NSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzIxOCwgMC4wMDMyMjEsIDAuMDAzMjgyLCAwLjAwMzM3MiwgMC4wMDM0ODgsIDAuMDAzNzE5LCAwLjAwMzkwOCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQmU04iOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4xMTYzMzQsIDAuMTI0MjM3LCAwLjEzMjc5MiwgMC4xMzkyMTksIDAuMTQ0NDUsIDAuMTUxMjM2LCAwLjE1NjI2NiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJlY292ZXJ5X3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiRCZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzFfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChyZWNvdmVyeV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNSwgMC4wMzg3NSwgMC4wMjYyNSwgMC4wMiwgMC4wMTM3NSwgMC4wMSwgMC4wMDEyNSIsIFwKLSAgICAgICAgICAiMC4wNTUsIDAuMDUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMjUsIDAuMDE1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMDY3NSwgMC4wNTYyNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyNzUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMDczNzUsIDAuMDYyNSwgMC4wNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzMzc1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiMC4wNzM3NSwgMC4wNjg3NSwgMC4wNTYyNSwgMC4wNSwgMC4wNDM3NSwgMC4wMzM3NSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4wODM3NSwgMC4wNzI1LCAwLjA2NjI1LCAwLjA1Mzc1LCAwLjA0NzUsIDAuMDQzNzUsIDAuMDM1IiwgXAotICAgICAgICAgICIwLjA4NjI1LCAwLjA4MTI1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDQ2MjUsIDAuMDQzNzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiU04iOwotICAgICAgdGltaW5nX3R5cGUgOiByZWNvdmVyeV9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEIjsKLSAgICAgIHNkZl9jb25kIDogIkQgPT0gMSdiMCI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQocmVjb3ZlcnlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU2MjUsIDAuMDYxMjUsIDAuMDY3NSwgMC4wNzM3NSwgMC4wOCwgMC4wOSwgMC4wOTg3NSIsIFwKLSAgICAgICAgICAiMC4wNTEyNSwgMC4wNTYyNSwgMC4wNjI1LCAwLjA2ODc1LCAwLjA3NSwgMC4wODUsIDAuMDg3NSIsIFwKLSAgICAgICAgICAiMC4wNDUsIDAuMDUsIDAuMDU2MjUsIDAuMDYyNSwgMC4wNjg3NSwgMC4wNzg3NSwgMC4wODc1IiwgXAotICAgICAgICAgICIwLjAzODc1LCAwLjA1LCAwLjA1NjI1LCAwLjA2MjUsIDAuMDYyNSwgMC4wNzI1LCAwLjA4MTI1IiwgXAotICAgICAgICAgICIwLjAzODc1LCAwLjA0Mzc1LCAwLjA1LCAwLjA1NjI1LCAwLjA2MjUsIDAuMDcyNSwgMC4wODEyNSIsIFwKLSAgICAgICAgICAiMC4wMzUsIDAuMDQ2MjUsIDAuMDUyNSwgMC4wNTg3NSwgMC4wNTg3NSwgMC4wNjg3NSwgMC4wNzc1IiwgXAotICAgICAgICAgICIwLjAzODc1LCAwLjA0Mzc1LCAwLjA1LCAwLjA1NjI1LCAwLjA2MjUsIDAuMDY2MjUsIDAuMDc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogcmVtb3ZhbF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIkQmU04iOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8xX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQocmVtb3ZhbF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDA2MjUsIC0wLjAwMTI1LCAwLjAxMTI1LCAwLjAxNzUsIDAuMDIzNzUsIDAuMDI3NSwgMC4wMzYyNSIsIFwKLSAgICAgICAgICAiLTAuMDE3NSwgLTAuMDA2MjUsIDAsIDAuMDA2MjUsIDAuMDEyNSwgMC4wMjI1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxODc1LCAtMC4wMDYyNSwgMCwgMC4wMDYyNSwgMC4wMTYyNSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAyNSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAsIDAuMDEsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLjAwMzc1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wNCwgLTAuMDM1LCAtMC4wMjI1LCAtMC4wMTYyNSwgLTAuMDEsIC0wLjAwNjI1LCAwLjAwMjUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDA4NzUsIC0wLjAwNjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTTikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxOTE5NTM7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxOTE5MjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE5MTk1MzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA4NDIsIDAuMDAwODQxLCAwLjAwMDg0MSwgMC4wMDA4NDEsIDAuMDAwODQxLCAwLjAwMDg0LCAwLjAwMDg0MSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDg1MiwgMC4wMDA4NDUsIDAuMDAwODQ0LCAwLjAwMDg0NCwgMC4wMDA4NDQsIDAuMDAwODQyLCAwLjAwMDg0MyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQmIVJOIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9STl9FUV8wID09IDEnYjEiOwotICAgICAgZmFsbF9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDc3NTcxLCAwLjA4NDA0MiwgMC4wOTI4MTYsIDAuMTAxODQzLCAwLjEwOTQ1NiwgMC4xMTk1MzIsIDAuMTI3MDIzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogcmVjb3ZlcnlfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRCZSTiI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fUk5fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChyZWNvdmVyeV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDYyNSwgLTAuMDA1LCAtMC4wMTc1LCAtMC4wMjM3NSwgLTAuMDMsIC0wLjA0LCAtMC4wNDg3NSIsIFwKLSAgICAgICAgICAiMC4wMTEyNSwgMCwgLTAuMDA2MjUsIC0wLjAxODc1LCAtMC4wMjUsIC0wLjAzNSwgLTAuMDM3NSIsIFwKLSAgICAgICAgICAiMC4wMTc1LCAwLjAxMjUsIDAsIC0wLjAxMjUsIC0wLjAxODc1LCAtMC4wMjg3NSwgLTAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMDIzNzUsIDAuMDE4NzUsIDAuMDA2MjUsIDAsIC0wLjAwNjI1LCAtMC4wMTYyNSwgLTAuMDI1IiwgXAotICAgICAgICAgICIwLjAzNjI1LCAwLjAyNSwgMC4wMTI1LCAwLjAwNjI1LCAwLCAtMC4wMSwgLTAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMDQ2MjUsIDAuMDM1LCAwLjAyODc1LCAwLjAxNjI1LCAwLjAxLCAwLCAtMC4wMDg3NSIsIFwKLSAgICAgICAgICAiMC4wNTUsIDAuMDUsIDAuMDM3NSwgMC4wMjUsIDAuMDE4NzUsIDAuMDA4NzUsIDAuMDA2MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiByZW1vdmFsX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUQmUk4iOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1JOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQocmVtb3ZhbF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjUsIDAuMDM2MjUsIDAuMDQyNSwgMC4wNDg3NSwgMC4wNTUsIDAuMDY1LCAwLjA3Mzc1IiwgXAotICAgICAgICAgICIwLjAyLCAwLjAyNSwgMC4wMzc1LCAwLjA0Mzc1LCAwLjA1LCAwLjA2LCAwLjA2ODc1IiwgXAotICAgICAgICAgICIwLjAxMzc1LCAwLjAxODc1LCAwLjAzMTI1LCAwLjAzNzUsIDAuMDQzNzUsIDAuMDUzNzUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIjAuMDAxMjUsIDAuMDEyNSwgMC4wMTg3NSwgMC4wMzEyNSwgMC4wMzc1LCAwLjA0NzUsIDAuMDUiLCBcCi0gICAgICAgICAgIi0wLjAwNSwgMC4wMDYyNSwgMC4wMTI1LCAwLjAyNSwgMC4wMzEyNSwgMC4wMzUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIi0wLjAwODc1LCAtMC4wMDM3NSwgMC4wMDg3NSwgMC4wMTUsIDAuMDIxMjUsIDAuMDMxMjUsIDAuMDMzNzUiLCBcCi0gICAgICAgICAgIi0wLjAxNzUsIC0wLjAwNjI1LCAwLCAwLjAwNjI1LCAwLjAxMjUsIDAuMDIyNSwgMC4wMzEyNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IERGRlNSWDIgKgotICogLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoREZGU1JYMikgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAxLjMyNzk4OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIGZmIChOMzUsUUJJTlQpIHsKLSAgICBuZXh0X3N0YXRlIDogIkQiOwotICAgIGNsb2NrZWRfb24gOiAiQ0siOwotICAgIGNsZWFyIDogIighUk4pIjsKLSAgICBwcmVzZXQgOiAiKCFTTikiOwotICAgIGNsZWFyX3ByZXNldF92YXIxIDogSDsKLSAgICBjbGVhcl9wcmVzZXRfdmFyMiA6IEw7Ci0gIH0KLSAgcGluKENLKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA1ODQ2NTI7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNTg0NDYxOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDU4NDY1MjsKLSAgICBjbG9jayA6IHRydWU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzNTAxLCAwLjAwMzQ4OCwgMC4wMDM1NjUsIDAuMDAzNjYzLCAwLjAwMzc4NCwgMC4wMDQwMjgsIDAuMDA0MjIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDk3MzgsIDAuMDA5NzI2LCAwLjAwOTc5NiwgMC4wMDk5MDEsIDAuMDEwMDQ1LCAwLjAxMDE0MiwgMC4wMTAzMjIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFEJlJOJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9STl9FUV8xX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4xMjI1NTUsIDAuMTMwODQsIDAuMTQwMzksIDAuMTQ4MzkyLCAwLjE1NDc0OSwgMC4xNjI4NzQsIDAuMTY5MTkyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wODU4NjksIDAuMDk0MDU1LCAwLjEwMzQ5OCwgMC4xMTA5MiwgMC4xMTY3MDcsIDAuMTI0NjM4LCAwLjEzMDI1MSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjQ5OTkxOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDY0ODg1OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDY0OTk5MTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDM1MjgsIDAuMDAzNDk3LCAwLjAwMzUxMiwgMC4wMDM1NjIsIDAuMDAzNjIyLCAwLjAwMzc1MSwgMC4wMDM4ODgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDM4MDMsIDAuMDAzNzgxLCAwLjAwMzc5NSwgMC4wMDM4MzUsIDAuMDAzODk2LCAwLjAwNDAxNSwgMC4wMDQxNDQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiUk4mU04iOwotICAgICAgc2RmX2NvbmQgOiAiUk5fRVFfMV9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAxMjUsIC0wLjAwMTI1LCAtMC4wMDEyNSwgMC4wMDUsIDAuMDA1LCAwLjAwODc1LCAwLjAxMTI1IiwgXAotICAgICAgICAgICItMC4wMTc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMCwgMCwgMC4wMDM3NSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgLTAuMDA2MjUsIC0wLjAwMjUsIDAiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDEyNSwgLTAuMDA2MjUsIC0wLjAwMjUsIDAiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMTI1LCAtMC4wMDg3NSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjAzMzc1LCAtMC4wMjg3NSwgLTAuMDIyNSwgLTAuMDIyNSwgLTAuMDE2MjUsIC0wLjAxMjUsIC0wLjAxIiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzEyNSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDI1LCAtMC4wMjEyNSwgLTAuMDEyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEyNSwgMC4wMjM3NSwgMC4wMywgMC4wMzYyNSwgMC4wNDI1LCAwLjA1MjUsIDAuMDU1IiwgXAotICAgICAgICAgICIwLjAwNzUsIDAuMDE4NzUsIDAuMDI1LCAwLjAzMTI1LCAwLjAzNzUsIDAuMDQ3NSwgMC4wNSIsIFwKLSAgICAgICAgICAiMC4wMDc1LCAwLjAxMjUsIDAuMDI1LCAwLjAzMTI1LCAwLjAzNzUsIDAuMDQxMjUsIDAuMDUiLCBcCi0gICAgICAgICAgIjAuMDAxMjUsIDAuMDEyNSwgMC4wMTg3NSwgMC4wMjUsIDAuMDMxMjUsIDAuMDQxMjUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMDAxMjUsIDAuMDA2MjUsIDAuMDE4NzUsIDAuMDI1LCAwLjAzMTI1LCAwLjAzNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDAyNSwgMC4wMDI1LCAwLjAxNSwgMC4wMjEyNSwgMC4wMjc1LCAwLjAzMTI1LCAwLjA0IiwgXAotICAgICAgICAgICItMC4wMDUsIDAuMDA2MjUsIDAuMDEyNSwgMC4wMTg3NSwgMC4wMjUsIDAuMDI4NzUsIDAuMDM3NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiUk4mU04iOwotICAgICAgc2RmX2NvbmQgOiAiUk5fRVFfMV9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1NjI1LCAwLjA0NSwgMC4wMzI1LCAwLjAyNjI1LCAwLjAyLCAwLjAxNjI1LCAwLjAxMzc1IiwgXAotICAgICAgICAgICIwLjA2MTI1LCAwLjA1LCAwLjA0Mzc1LCAwLjAzMTI1LCAwLjAzMTI1LCAwLjAyMTI1LCAwLjAxODc1IiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDU2MjUsIDAuMDUsIDAuMDM3NSwgMC4wMzc1LCAwLjAyNzUsIDAuMDI1IiwgXAotICAgICAgICAgICIwLjA3Mzc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzM3NSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4wOCwgMC4wNjg3NSwgMC4wNTYyNSwgMC4wNSwgMC4wNDM3NSwgMC4wNCwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4wODM3NSwgMC4wNzI1LCAwLjA2NjI1LCAwLjA2LCAwLjA1Mzc1LCAwLjA0Mzc1LCAwLjA0MTI1IiwgXAotICAgICAgICAgICIwLjA4NjI1LCAwLjA4MTI1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDQ2MjUsIDAuMDQzNzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzEyNSwgMC4wMjYyNSwgMC4wMTM3NSwgMC4wMDc1LCAwLjAwMTI1LCAtMC4wMDg3NSwgLTAuMDE3NSIsIFwKLSAgICAgICAgICAiMC4wMzYyNSwgMC4wMzEyNSwgMC4wMTg3NSwgMC4wMTI1LCAwLjAwNjI1LCAtMC4wMDM3NSwgLTAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4wNDI1LCAwLjAzNzUsIDAuMDI1LCAwLjAxODc1LCAwLjAxMjUsIDAuMDAyNSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMDQ4NzUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMjUsIDAuMDE4NzUsIDAuMDA4NzUsIDAiLCBcCi0gICAgICAgICAgIjAuMDU1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDI1LCAwLjAxODc1LCAwLjAwODc1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICIwLjA1ODc1LCAwLjA0NzUsIDAuMDQxMjUsIDAuMDM1LCAwLjAyMjUsIDAuMDE4NzUsIDAuMDEiLCBcCi0gICAgICAgICAgIjAuMDYxMjUsIDAuMDU2MjUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMjEyNSwgMC4wMTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihRKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuNjgzMzcyOwotICAgIGZ1bmN0aW9uIDogIk4zNSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3NlbnNlIDogbm9uX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiByaXNpbmdfZWRnZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTAwNjQzLCAwLjE3ODk3NywgMC4yNDA2NDgsIDAuMzE4MTY5LCAwLjM5NTUxNCwgMC40NzI2MjQsIDAuNTQ5OTgxIiwgXAotICAgICAgICAgICIwLjEwODgyMywgMC4xODcxMjksIDAuMjQ4ODQ2LCAwLjMyNjIxLCAwLjQwMzY4LCAwLjQ4MTEyMiwgMC41NTgxNTQiLCBcCi0gICAgICAgICAgIjAuMTE4MzUzLCAwLjE5NjY1MywgMC4yNTg0NjYsIDAuMzM1OTA2LCAwLjQxMjk0NywgMC40OTA0OTIsIDAuNTY3NjY4IiwgXAotICAgICAgICAgICIwLjEyNjI3NywgMC4yMDQ1MDYsIDAuMjY2MzcyLCAwLjM0Mzg4MiwgMC40MjA4MjYsIDAuNDk4NDQ1LCAwLjU3NTU5IiwgXAotICAgICAgICAgICIwLjEzMjczLCAwLjIxMTAyNywgMC4yNzI5MzYsIDAuMzQ5OTUzLCAwLjQyNzU4OCwgMC41MDQ4MzcsIDAuNTgyMDQ3IiwgXAotICAgICAgICAgICIwLjE0MTM2NSwgMC4yMTk3MTksIDAuMjgxNTA1LCAwLjM1ODgzOCwgMC40MzYxNjcsIDAuNTEzNDc1LCAwLjU5MDYzNSIsIFwKLSAgICAgICAgICAiMC4xNDc0NCwgMC4yMjU3MjgsIDAuMjg3ODMyLCAwLjM2NTA3MSwgMC40NDIzMjQsIDAuNTE5NTMsIDAuNTk3MDI5Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0MjY2NywgMC4yMDA5NzcsIDAuMzMwODczLCAwLjQ5NDAwNywgMC42NTc2MDUsIDAuODE5MzYzLCAwLjk4MjcyNSIsIFwKLSAgICAgICAgICAiMC4wNDI2NTUsIDAuMjAxMjI3LCAwLjMzMDg0NSwgMC40OTM2NCwgMC42NTc1NDIsIDAuODE5MzE3LCAwLjk4Mjc3MiIsIFwKLSAgICAgICAgICAiMC4wNDI2NDgsIDAuMjAwOTc0LCAwLjMzMDYwNCwgMC40OTQxMTksIDAuNjU2NDU5LCAwLjgyMDg5LCAwLjk4Mjg1NSIsIFwKLSAgICAgICAgICAiMC4wNDI2NDksIDAuMjAxMjE3LCAwLjMzMDYwNywgMC40OTQwOSwgMC42NTY0NDksIDAuODIwODgxLCAwLjk4Mjg0NCIsIFwKLSAgICAgICAgICAiMC4wNDI3MSwgMC4yMDA5OTgsIDAuMzMwOTY2LCAwLjQ5Mjk2OSwgMC42NTc1NjUsIDAuODIwNzc2LCAwLjk4MjgxMiIsIFwKLSAgICAgICAgICAiMC4wNDI2ODgsIDAuMjAxMjQyLCAwLjMzMDc0OCwgMC40OTM5NjQsIDAuNjU3NDkzLCAwLjgyMDg1MywgMC45ODI4MzkiLCBcCi0gICAgICAgICAgIjAuMDQyNjgyLCAwLjIwMTAwNiwgMC4zMzA5ODksIDAuNDk0MDk0LCAwLjY1NzQwMiwgMC44MTk1NTUsIDAuOTgyMzcyIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwNzc4OCwgMC4xODQ4NTgsIDAuMjQ1ODg4LCAwLjMyMTg0MSwgMC4zOTc2NjUsIDAuNDc0MTc4LCAwLjU0OTY1NSIsIFwKLSAgICAgICAgICAiMC4xMTYwNzksIDAuMTkzMDkyLCAwLjI1NDEyMSwgMC4zMzAxNTYsIDAuNDA1OTMxLCAwLjQ4MTg5NiwgMC41NTg2NSIsIFwKLSAgICAgICAgICAiMC4xMjU2MywgMC4yMDI3MSwgMC4yNjM2NjksIDAuMzM5NzUyLCAwLjQxNTQ5NCwgMC40OTE0NDIsIDAuNTY4MTk3IiwgXAotICAgICAgICAgICIwLjEzMzYyNiwgMC4yMTA2OTQsIDAuMjcxNzE3LCAwLjM0NzY3LCAwLjQyMzQ3NiwgMC41MDAwMDIsIDAuNTc1NjQyIiwgXAotICAgICAgICAgICIwLjEzOTk5MiwgMC4yMTcxOTIsIDAuMjc4MDQ3LCAwLjM1Mzc4MSwgMC40MzAzMDcsIDAuNTA1ODE3LCAwLjU4MjU0NiIsIFwKLSAgICAgICAgICAiMC4xNDgxNjMsIDAuMjI1MjI2LCAwLjI4NjIyNCwgMC4zNjIwNzMsIDAuNDM4MDMxLCAwLjUxNDEyNiwgMC41ODk5ODQiLCBcCi0gICAgICAgICAgIjAuMTU0NDI3LCAwLjIzMTczMiwgMC4yOTIzMTYsIDAuMzY4MzE5LCAwLjQ0NDY1NCwgMC41MjA0NTEsIDAuNTk2NDE1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0MTE2MSwgMC4xOTUyMDksIDAuMzE5NjQxLCAwLjQ3ODY4OSwgMC42MzU2NjIsIDAuNzk1MTk3LCAwLjk1MTUwMSIsIFwKLSAgICAgICAgICAiMC4wNDEyODMsIDAuMTk1MDE4LCAwLjMyMDUxMywgMC40Nzg2OCwgMC42MzYxNTIsIDAuNzkzNzU0LCAwLjk1MTY3NSIsIFwKLSAgICAgICAgICAiMC4wNDExNjQsIDAuMTk1MTc0LCAwLjMyMDUyMiwgMC40Nzg2NjMsIDAuNjM1NTk0LCAwLjc5Mzc2LCAwLjk1MTQzMSIsIFwKLSAgICAgICAgICAiMC4wNDExNTgsIDAuMTk1MjIxLCAwLjMxOTYyNiwgMC40Nzg2OTMsIDAuNjM1NTQ1LCAwLjc5NTE4OSwgMC45NTE0NzQiLCBcCi0gICAgICAgICAgIjAuMDQxMjg3LCAwLjE5NTE1NSwgMC4zMjA1MTYsIDAuNDc4MDk2LCAwLjYzNjk1MiwgMC43OTM3NCwgMC45NTE0NDUiLCBcCi0gICAgICAgICAgIjAuMDQxMTQsIDAuMTk1MjAzLCAwLjMyMDUzNiwgMC40Nzg1MiwgMC42MzU2MTYsIDAuNzkzMzQ5LCAwLjk1MTQ3MSIsIFwKLSAgICAgICAgICAiMC4wNDEwNjMsIDAuMTk1MTc4LCAwLjMyMDk4OCwgMC40Nzc3NjksIDAuNjM1ODY5LCAwLjc5MzQzNiwgMC45NTE2MTciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUk4iOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGNsZWFyOwotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMzE0OTQsIDAuMjA4NDU1LCAwLjI2OTM5MiwgMC4zNDU2NTEsIDAuNDIxMzEsIDAuNDk3NzQ4LCAwLjU3MzY5MyIsIFwKLSAgICAgICAgICAiMC4xMzk1NjEsIDAuMjE2NDg5LCAwLjI3NzQ0OCwgMC4zNTM0MiwgMC40Mjk0MjEsIDAuNTA1ODExLCAwLjU4MTY3OCIsIFwKLSAgICAgICAgICAiMC4xNDgyNzEsIDAuMjI1MDk1LCAwLjI4NjEzNywgMC4zNjE5MTcsIDAuNDM4MDkxLCAwLjUxNDA0OSwgMC41OTA1MiIsIFwKLSAgICAgICAgICAiMC4xNTU1NDMsIDAuMjMyNTA1LCAwLjI5MzQzMSwgMC4zNjkxMjcsIDAuNDQ1MzcxLCAwLjUyMTgwMywgMC41OTc4NjQiLCBcCi0gICAgICAgICAgIjAuMTYxMTQ1LCAwLjIzODA5NCwgMC4yOTg4MjksIDAuMzc0ODA1LCAwLjQ1MDkxMiwgMC41MjczNjcsIDAuNjAyNzM3IiwgXAotICAgICAgICAgICIwLjE2ODM4NCwgMC4yNDUyMjMsIDAuMzA2MjYsIDAuMzgxOTI2LCAwLjQ1ODAyLCAwLjUzNDE1NywgMC42MTA2MjEiLCBcCi0gICAgICAgICAgIjAuMTczOTIxLCAwLjI1MDg4NiwgMC4zMTE3OSwgMC4zODc4NzMsIDAuNDYzNTMsIDAuNTM5Njk4LCAwLjYxNjE0MiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDEzMzksIDAuMTk1MzEzLCAwLjMyMDcyMywgMC40Nzg0NiwgMC42MzY5MzYsIDAuNzkzODQ1LCAwLjk1MzM4NiIsIFwKLSAgICAgICAgICAiMC4wNDEyOSwgMC4xOTUyNDYsIDAuMzIwNTgyLCAwLjQ3ODc0NywgMC42MzY4NjgsIDAuNzkzODMxLCAwLjk1MzQiLCBcCi0gICAgICAgICAgIjAuMDQxMjg3LCAwLjE5NTMzNSwgMC4zMjA3MTQsIDAuNDc4Njk4LCAwLjYzNjkwNSwgMC43OTQ3OTMsIDAuOTUzMzY2IiwgXAotICAgICAgICAgICIwLjA0MTI5MiwgMC4xOTUyOTksIDAuMzIwNzgsIDAuNDc4Njc2LCAwLjYzNTk4MywgMC43OTM4MTIsIDAuOTUzMzkzIiwgXAotICAgICAgICAgICIwLjA0MTI5NCwgMC4xOTU0MDMsIDAuMzIwODQyLCAwLjQ3ODQ4NiwgMC42MzYyNjQsIDAuNzk1MTM5LCAwLjk1MTQ4MSIsIFwKLSAgICAgICAgICAiMC4wNDEyNjgsIDAuMTk1MzE0LCAwLjMyMDcwNSwgMC40Nzg2NjgsIDAuNjM2Mjk1LCAwLjc5MzUxNSwgMC45NTM0MDIiLCBcCi0gICAgICAgICAgIjAuMDQxNDIyLCAwLjE5NTI3NCwgMC4zMjA2MDcsIDAuNDc4NTk4LCAwLjYzNjgzMSwgMC43OTM4MzcsIDAuOTUzMjIyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiBwcmVzZXQ7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5NDg1NCwgMC4xNzI5OTIsIDAuMjM1MTYyLCAwLjMxMjE5MSwgMC4zODk0MSwgMC40NjcwNDEsIDAuNTQ0MjY5IiwgXAotICAgICAgICAgICIwLjEwMTg3OCwgMC4xNzk5ODcsIDAuMjQyMTQ3LCAwLjMxOTE3OCwgMC4zOTY4NCwgMC40NzQwODUsIDAuNTUxMzIiLCBcCi0gICAgICAgICAgIjAuMTA5MDc1LCAwLjE4NzE5MSwgMC4yNDkzMjMsIDAuMzI2MzU4LCAwLjQwNDAzNCwgMC40ODEyNzgsIDAuNTU4NTMzIiwgXAotICAgICAgICAgICIwLjExNjI3OCwgMC4xOTQzODksIDAuMjU2NTM1LCAwLjMzMzUzOCwgMC40MTExOTEsIDAuNDg4Mzk0LCAwLjU2NTYwNSIsIFwKLSAgICAgICAgICAiMC4xMjM5NjEsIDAuMjAyMjIzLCAwLjI2NDE4OCwgMC4zNDE1ODYsIDAuNDE4OTE2LCAwLjQ5NjA4LCAwLjU3MzMyIiwgXAotICAgICAgICAgICIwLjEzNDExNSwgMC4yMTIyMjcsIDAuMjc0Mzg2LCAwLjM1MTQwOSwgMC40MjkwOTMsIDAuNTA2MzE3LCAwLjU4MzQwNyIsIFwKLSAgICAgICAgICAiMC4xNDE0NjgsIDAuMjE5NjY0LCAwLjI4MTU0NiwgMC4zNTg3NTIsIDAuNDM2Mzc0LCAwLjUxMzMyNywgMC41OTA5NjIiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQyMTQ1LCAwLjIwMTExMiwgMC4zMzExNTIsIDAuNDk0MjI2LCAwLjY1NzU1OCwgMC44MjA4NjYsIDAuOTg0MTU1IiwgXAotICAgICAgICAgICIwLjA0MjE0MywgMC4yMDEwNzMsIDAuMzMxMjA2LCAwLjQ5NDIyMSwgMC42NTc2MDIsIDAuODIwODQzLCAwLjk4NDExOCIsIFwKLSAgICAgICAgICAiMC4wNDIwODUsIDAuMjAxMDY4LCAwLjMzMTIxLCAwLjQ5NDI1NywgMC42NTc0OTIsIDAuODIwODQ4LCAwLjk4NDEyOCIsIFwKLSAgICAgICAgICAiMC4wNDIxMDcsIDAuMjAxMTA0LCAwLjMzMTE5OCwgMC40OTQyMzcsIDAuNjU3NTI1LCAwLjgyMDg1NSwgMC45ODQxNTIiLCBcCi0gICAgICAgICAgIjAuMDQyMTM2LCAwLjIwMTEyNiwgMC4zMzExODksIDAuNDkzNjc5LCAwLjY1NjgzMywgMC44MjA4MzksIDAuOTg0MTI2IiwgXAotICAgICAgICAgICIwLjA0MjU2NSwgMC4yMDExMzYsIDAuMzMxMTI0LCAwLjQ5NDEwNiwgMC42NTc0OCwgMC44MjA3OTEsIDAuOTg0MDM2IiwgXAotICAgICAgICAgICIwLjA0MjYwNSwgMC4yMDExNDksIDAuMzMwOTYzLCAwLjQ5NDE4NSwgMC42NTc0ODEsIDAuODE5OTgyLCAwLjk4NDA2Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExNDkyNCwgMC4xOTIxMzksIDAuMjUzMDQyLCAwLjMyODc2NiwgMC40MDUzMTIsIDAuNDgxMzYzLCAwLjU1NzQyNiIsIFwKLSAgICAgICAgICAiMC4xMjExOTgsIDAuMTk4MzQ4LCAwLjI1OTI1MywgMC4zMzUwMjUsIDAuNDExMTE3LCAwLjQ4NzMzMiwgMC41NjM2MTUiLCBcCi0gICAgICAgICAgIjAuMTI3NTQxLCAwLjIwNDUyNywgMC4yNjUzODMsIDAuMzQxMzc0LCAwLjQxNzU3MywgMC40OTM5OTIsIDAuNTY5NzU1IiwgXAotICAgICAgICAgICIwLjEzNDg3MywgMC4yMTE5MDIsIDAuMjcyOTE2LCAwLjM0ODk4NCwgMC40MjQ2MzksIDAuNTAwOTI3LCAwLjU3NzMwNyIsIFwKLSAgICAgICAgICAiMC4xNDE3NzIsIDAuMjE4NjYsIDAuMjc5NTQ3LCAwLjM1NTYxMiwgMC40MzE1MzYsIDAuNTA4MjI1LCAwLjU4MzY2IiwgXAotICAgICAgICAgICIwLjE1MTU3NywgMC4yMjg1MDUsIDAuMjg5NjExLCAwLjM2NTUwNiwgMC40NDE5OTIsIDAuNTE3NjI0LCAwLjU5MzUxNyIsIFwKLSAgICAgICAgICAiMC4xNTkxODEsIDAuMjM2MjY3LCAwLjI5NzIzNywgMC4zNzMwOTUsIDAuNDQ5MDEzLCAwLjUyNTAwNywgMC42MDE0OTYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQxMzI0LCAwLjE5NTMwMSwgMC4zMjA5NDksIDAuNDc4NDgzLCAwLjYzNjg2MywgMC43OTM4MDcsIDAuOTUzMjYyIiwgXAotICAgICAgICAgICIwLjA0MTI4NCwgMC4xOTU0ODIsIDAuMzIwOTcyLCAwLjQ3ODczOSwgMC42MzYyODUsIDAuNzk1MDk4LCAwLjk1MzM2OSIsIFwKLSAgICAgICAgICAiMC4wNDEyOTQsIDAuMTk1MTk0LCAwLjMyMDYxNSwgMC40Nzg4NDQsIDAuNjM2OTc3LCAwLjc5MzgxOCwgMC45NTE3OTYiLCBcCi0gICAgICAgICAgIjAuMDQxMzg0LCAwLjE5NTI3NywgMC4zMjA1OTYsIDAuNDc4NjI1LCAwLjYzNjQ5NSwgMC43OTUwNzYsIDAuOTUzMzA2IiwgXAotICAgICAgICAgICIwLjA0MTMyMiwgMC4xOTU0MjgsIDAuMzIwODI5LCAwLjQ3ODY4MiwgMC42MzY2NDEsIDAuNzkzODE2LCAwLjk1MzM2NyIsIFwKLSAgICAgICAgICAiMC4wNDE0NDgsIDAuMTk1MTYzLCAwLjMyMDYwNCwgMC40Nzg3NywgMC42MzYyMzEsIDAuNzkzNTQ1LCAwLjk1MTcxOCIsIFwKLSAgICAgICAgICAiMC4wNDE0NDMsIDAuMTk1MjM5LCAwLjMyMDUyNywgMC40Nzg2NCwgMC42MzY4NDgsIDAuNzkzNzI3LCAwLjk1MzE5NyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDY5NzYsIDAuMDA3MDMyLCAwLjAwNzAzOSwgMC4wMDcwNDQsIDAuMDA3MDQ2LCAwLjAwNzA0OCwgMC4wMDcwNDgiLCBcCi0gICAgICAgICAgIjAuMDA2OTY3LCAwLjAwNzAyMywgMC4wMDcwMywgMC4wMDcwMzUsIDAuMDA3MDM3LCAwLjAwNzAzOCwgMC4wMDcwNCIsIFwKLSAgICAgICAgICAiMC4wMDcwMDgsIDAuMDA3MDYzLCAwLjAwNzA3MiwgMC4wMDcwNzYsIDAuMDA3MDc5LCAwLjAwNzA4LCAwLjAwNzA4MSIsIFwKLSAgICAgICAgICAiMC4wMDcwNjEsIDAuMDA3MTE1LCAwLjAwNzEyMywgMC4wMDcxMjcsIDAuMDA3MTMsIDAuMDA3MTMxLCAwLjAwNzEzMiIsIFwKLSAgICAgICAgICAiMC4wMDcxMTMsIDAuMDA3MTcsIDAuMDA3MTc3LCAwLjAwNzE4MSwgMC4wMDcxODQsIDAuMDA3MTg1LCAwLjAwNzE4NiIsIFwKLSAgICAgICAgICAiMC4wMDcyMDgsIDAuMDA3MjcyLCAwLjAwNzI4MSwgMC4wMDcyODUsIDAuMDA3Mjg4LCAwLjAwNzI4OCwgMC4wMDcyODkiLCBcCi0gICAgICAgICAgIjAuMDA3MzIxLCAwLjAwNzM1OCwgMC4wMDczNjcsIDAuMDA3MzcxLCAwLjAwNzM3MiwgMC4wMDczNzQsIDAuMDA3MzkzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2NzQxLCAwLjAwNjc4NywgMC4wMDY3OTMsIDAuMDA2Nzk3LCAwLjAwNjc5OCwgMC4wMDY4LCAwLjAwNjgwMSIsIFwKLSAgICAgICAgICAiMC4wMDY3MzgsIDAuMDA2NzgxLCAwLjAwNjc4OCwgMC4wMDY3OTEsIDAuMDA2NzkyLCAwLjAwNjc5MywgMC4wMDY3OTUiLCBcCi0gICAgICAgICAgIjAuMDA2Nzg0LCAwLjAwNjgyOSwgMC4wMDY4MzUsIDAuMDA2ODM5LCAwLjAwNjg0MSwgMC4wMDY4NDIsIDAuMDA2ODQzIiwgXAotICAgICAgICAgICIwLjAwNjg0MywgMC4wMDY4ODgsIDAuMDA2ODk0LCAwLjAwNjg5OCwgMC4wMDY5LCAwLjAwNjkwMSwgMC4wMDY5MDIiLCBcCi0gICAgICAgICAgIjAuMDA2ODk2LCAwLjAwNjk0NCwgMC4wMDY5NTEsIDAuMDA2OTU0LCAwLjAwNjk1NiwgMC4wMDY5NTcsIDAuMDA2OTU4IiwgXAotICAgICAgICAgICIwLjAwNzAxNCwgMC4wMDcwNjEsIDAuMDA3MDY4LCAwLjAwNzA3MywgMC4wMDcwNzIsIDAuMDA3MDczLCAwLjAwNzA3NCIsIFwKLSAgICAgICAgICAiMC4wMDcxMTYsIDAuMDA3MTQ1LCAwLjAwNzE1MSwgMC4wMDcxNTUsIDAuMDA3MTU3LCAwLjAwNzE1OCwgMC4wMDcxNzIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA4NzM5LCAwLjAwODc2MSwgMC4wMDg3NTIsIDAuMDA4NzQ0LCAwLjAwODc0NCwgMC4wMDg3MzUsIDAuMDA4NzMyIiwgXAotICAgICAgICAgICIwLjAwODczNywgMC4wMDg3NTksIDAuMDA4NzUxLCAwLjAwODc0MywgMC4wMDg3MzcsIDAuMDA4NzM0LCAwLjAwODczNCIsIFwKLSAgICAgICAgICAiMC4wMDg3NywgMC4wMDg3OTEsIDAuMDA4NzgyLCAwLjAwODc3NCwgMC4wMDg3NzEsIDAuMDA4NzY5LCAwLjAwODc2MiIsIFwKLSAgICAgICAgICAiMC4wMDg4MDYsIDAuMDA4ODI4LCAwLjAwODgxOSwgMC4wMDg4MTIsIDAuMDA4ODA1LCAwLjAwODgwMSwgMC4wMDg3OTciLCBcCi0gICAgICAgICAgIjAuMDA4ODU1LCAwLjAwODg3OCwgMC4wMDg4NywgMC4wMDg4NjEsIDAuMDA4ODYsIDAuMDA4ODUxLCAwLjAwODg1MiIsIFwKLSAgICAgICAgICAiMC4wMDg5NDksIDAuMDA4OTcyLCAwLjAwODk2NSwgMC4wMDg5NTYsIDAuMDA4OTQ5LCAwLjAwODk0NSwgMC4wMDg5NDEiLCBcCi0gICAgICAgICAgIjAuMDA5MDMzLCAwLjAwOTA1OCwgMC4wMDkwNDksIDAuMDA5MDQsIDAuMDA5MDMzLCAwLjAwOTAyOCwgMC4wMDkwMjUiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfcG93ZXIoc2NhbGFyKSB7Ci0gICAgICAgIHZhbHVlcygiMCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDgxMjEsIDAuMDA4MTc0LCAwLjAwODE4MSwgMC4wMDgxODQsIDAuMDA4MTg2LCAwLjAwODE4NywgMC4wMDgxODciLCBcCi0gICAgICAgICAgIjAuMDA4MTA5LCAwLjAwODE2MSwgMC4wMDgxNjgsIDAuMDA4MTcxLCAwLjAwODE3MiwgMC4wMDgxNzQsIDAuMDA4MTc0IiwgXAotICAgICAgICAgICIwLjAwODEyNiwgMC4wMDgxNzgsIDAuMDA4MTg1LCAwLjAwODE4OCwgMC4wMDgxOSwgMC4wMDgxOTEsIDAuMDA4MTkxIiwgXAotICAgICAgICAgICIwLjAwODE1OCwgMC4wMDgyMTQsIDAuMDA4MjIxLCAwLjAwODIyNSwgMC4wMDgyMjcsIDAuMDA4MjI4LCAwLjAwODIyOCIsIFwKLSAgICAgICAgICAiMC4wMDgyMTEsIDAuMDA4MjY3LCAwLjAwODI3NCwgMC4wMDgyNzgsIDAuMDA4MjgsIDAuMDA4MjgsIDAuMDA4MjgxIiwgXAotICAgICAgICAgICIwLjAwODMzMywgMC4wMDgzODQsIDAuMDA4MzksIDAuMDA4Mzk0LCAwLjAwODM5NSwgMC4wMDgzOTYsIDAuMDA4Mzk2IiwgXAotICAgICAgICAgICIwLjAwODQzMiwgMC4wMDg0ODEsIDAuMDA4NDg4LCAwLjAwODQ5MSwgMC4wMDg0OTIsIDAuMDA4NDkzLCAwLjAwODQ5NCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjUyOSwgMC4wMDY1NzIsIDAuMDA2NTc5LCAwLjAwNjU4MiwgMC4wMDY1ODMsIDAuMDA2NTg0LCAwLjAwNjU5IiwgXAotICAgICAgICAgICIwLjAwNjUwMSwgMC4wMDY1NDQsIDAuMDA2NTUsIDAuMDA2NTUzLCAwLjAwNjU2MywgMC4wMDY1NTUsIDAuMDA2NTYxIiwgXAotICAgICAgICAgICIwLjAwNjQ5MiwgMC4wMDY1MzUsIDAuMDA2NTQxLCAwLjAwNjU0NSwgMC4wMDY1NDksIDAuMDA2NTQ2LCAwLjAwNjU0OCIsIFwKLSAgICAgICAgICAiMC4wMDY0OTYsIDAuMDA2NTM5LCAwLjAwNjU0NSwgMC4wMDY1NTEsIDAuMDA2NTUsIDAuMDA2NTUxLCAwLjAwNjU1MiIsIFwKLSAgICAgICAgICAiMC4wMDY1MTMsIDAuMDA2NTU3LCAwLjAwNjU2MywgMC4wMDY1NjcsIDAuMDA2NTY5LCAwLjAwNjU2OSwgMC4wMDY1NzQiLCBcCi0gICAgICAgICAgIjAuMDA2NTY2LCAwLjAwNjYxLCAwLjAwNjYxOCwgMC4wMDY2MjIsIDAuMDA2NjIzLCAwLjAwNjYyNSwgMC4wMDY2MjciLCBcCi0gICAgICAgICAgIjAuMDA2NjE5LCAwLjAwNjY1NywgMC4wMDY2NjQsIDAuMDA2NjY4LCAwLjAwNjY3LCAwLjAwNjY3MSwgMC4wMDY2NzEiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFFOKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuNjg0NTExOwotICAgIGZ1bmN0aW9uIDogIlFCSU5UIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBub25fdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJpc2luZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMjI1NTUsIDAuMTk5NzA0LCAwLjI2MTU1NSwgMC4zMzg4NCwgMC40MTYxODEsIDAuNDkzNTcsIDAuNTcwODg0IiwgXAotICAgICAgICAgICIwLjEzMDg0LCAwLjIwNzk5NSwgMC4yNjk4MzgsIDAuMzQ3MTM5LCAwLjQyNDUwNCwgMC41MDE4NDQsIDAuNTc5MjYxIiwgXAotICAgICAgICAgICIwLjE0MDM5LCAwLjIxNzU1MSwgMC4yNzkzOSwgMC4zNTY3MDQsIDAuNDM0MDI5LCAwLjUxMTM5NiwgMC41ODg4MTQiLCBcCi0gICAgICAgICAgIjAuMTQ4MzkyLCAwLjIyNTU0MiwgMC4yODczOTMsIDAuMzY0Njc3LCAwLjQ0MjAyNCwgMC41MTk0MDUsIDAuNTk2NzMzIiwgXAotICAgICAgICAgICIwLjE1NDc0OSwgMC4yMzE5MTQsIDAuMjkzNzQ3LCAwLjM3MTA1OCwgMC40NDg0MjIsIDAuNTI1NzUxLCAwLjYwMzE1NyIsIFwKLSAgICAgICAgICAiMC4xNjI4NzQsIDAuMjQwMDIsIDAuMzAxODY1LCAwLjM3OTE1NywgMC40NTY1NTcsIDAuNTMzODkyLCAwLjYxMTI0MiIsIFwKLSAgICAgICAgICAiMC4xNjkxOTIsIDAuMjQ2NDg1LCAwLjMwODI5NiwgMC4zODU2MTEsIDAuNDYzMDAzLCAwLjU0MDMxOCwgMC42MTc1NTMiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM5NTg3LCAwLjIwMDc3NSwgMC4zMzA2MDUsIDAuNDk0NDg2LCAwLjY1NzE3NiwgMC44MjEwNzksIDAuOTgyNzU5IiwgXAotICAgICAgICAgICIwLjAzOTU5LCAwLjIwMDU5OSwgMC4zMzEzMDEsIDAuNDk0NTMxLCAwLjY1Njc4MiwgMC44MTk4NjIsIDAuOTgyNzcyIiwgXAotICAgICAgICAgICIwLjAzOTU4NiwgMC4yMDA3NjgsIDAuMzMxMjk2LCAwLjQ5NDY2MiwgMC42NTcyMDgsIDAuODE5ODYxLCAwLjk4Mjc3MyIsIFwKLSAgICAgICAgICAiMC4wMzk1ODYsIDAuMjAwNzc3LCAwLjMzMDYwNSwgMC40OTQ0NjQsIDAuNjU2Mzk1LCAwLjgyMTA3OCwgMC45ODI0NjkiLCBcCi0gICAgICAgICAgIjAuMDM5NTg2LCAwLjIwMDU1NSwgMC4zMzEzLCAwLjQ5Mzk2NSwgMC42NTc4ODcsIDAuODE5ODcsIDAuOTgyNzIyIiwgXAotICAgICAgICAgICIwLjAzOTYyMSwgMC4yMDA3NzMsIDAuMzMxMjg5LCAwLjQ5Mzk5LCAwLjY1NzIyMiwgMC44MjAyMDUsIDAuOTgyNzcxIiwgXAotICAgICAgICAgICIwLjAzOTY0MywgMC4yMDA3OTUsIDAuMzMxMDE2LCAwLjQ5NDAyLCAwLjY1Njg4OCwgMC44MjAwMDEsIDAuOTgyOTA5Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExNzIwNSwgMC4xOTMyMTgsIDAuMjU0MDE0LCAwLjMzMDAxOCwgMC40MDYwNDYsIDAuNDgyMDY0LCAwLjU1ODA5OCIsIFwKLSAgICAgICAgICAiMC4xMjUzODQsIDAuMjAxNDAxLCAwLjI2MjE5NiwgMC4zMzgxOTksIDAuNDE0MjIzLCAwLjQ5MDMwNCwgMC41NjYyNzkiLCBcCi0gICAgICAgICAgIjAuMTM0OTE0LCAwLjIxMDkyNCwgMC4yNzE3MjcsIDAuMzQ3NzM0LCAwLjQyMzcxMSwgMC40OTk3NzEsIDAuNTc1ODExIiwgXAotICAgICAgICAgICIwLjE0MjgzMywgMC4yMTg4MjgsIDAuMjc5NjMyLCAwLjM1NTY1MSwgMC40MzE2MTUsIDAuNTA3Njg5LCAwLjU4MzcxNCIsIFwKLSAgICAgICAgICAiMC4xNDkyOTIsIDAuMjI1MzEyLCAwLjI4NjEwNSwgMC4zNjIwNTQsIDAuNDM4MTM1LCAwLjUxNDE0MiwgMC41OTAxODgiLCBcCi0gICAgICAgICAgIjAuMTU3OTE5LCAwLjIzMzg1OSwgMC4yOTQ2NTIsIDAuMzcwNjQ3LCAwLjQ0NjY2OSwgMC41MjI2OTksIDAuNTk4NzI3IiwgXAotICAgICAgICAgICIwLjE2NDAwOCwgMC4yNDAwNzQsIDAuMzAwODkxLCAwLjM3Njg4NSwgMC40NTI4ODcsIDAuNTI4OTA5LCAwLjYwNDk2OCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzg2MTYsIDAuMTk0MTQyLCAwLjMyMDQ4MywgMC40Nzg2NTgsIDAuNjM2OTE2LCAwLjc5MzIwMSwgMC45NTE5NCIsIFwKLSAgICAgICAgICAiMC4wMzg2MTUsIDAuMTk0MzksIDAuMzIwNDYsIDAuNDc4MzY3LCAwLjYzNjg1MiwgMC43OTM2ODcsIDAuOTUyMDA1IiwgXAotICAgICAgICAgICIwLjAzODU4NywgMC4xOTQyODMsIDAuMzIwMjE0LCAwLjQ3ODc0MSwgMC42MzU2ODEsIDAuNzk0OTYyLCAwLjk1MjEzOCIsIFwKLSAgICAgICAgICAiMC4wMzg2MjEsIDAuMTk0Mzc5LCAwLjMyMDIwMywgMC40Nzg3NDMsIDAuNjM1ODc5LCAwLjc5NDk2NCwgMC45NTIxMTUiLCBcCi0gICAgICAgICAgIjAuMDM4NjE4LCAwLjE5NDIzNCwgMC4zMjA2MywgMC40Nzc1MjksIDAuNjM2ODcxLCAwLjc5NDgyMiwgMC45NTIwNDYiLCBcCi0gICAgICAgICAgIjAuMDM4NTk1LCAwLjE5NDQyMywgMC4zMjAzNTYsIDAuNDc4NjIxLCAwLjYzNjc5NiwgMC43OTQ5MjIsIDAuOTUyMTA4IiwgXAotICAgICAgICAgICIwLjAzODYwMiwgMC4xOTQyNzEsIDAuMzIwNjY1LCAwLjQ3ODY5OCwgMC42MzY2ODYsIDAuNzkzOTE3LCAwLjk1MTUwNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcHJlc2V0OwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNDYyMzIsIDAuMjIzMzgxLCAwLjI4NTIwNywgMC4zNjI1ODMsIDAuNDM5ODkzLCAwLjUxNzI3LCAwLjU5NDU2MSIsIFwKLSAgICAgICAgICAiMC4xNTQzMDcsIDAuMjMxNDE0LCAwLjI5MzIzNywgMC4zNzA1MzYsIDAuNDQ3ODY1LCAwLjUyNTMzNiwgMC42MDI1NzQiLCBcCi0gICAgICAgICAgIjAuMTYzMDE1LCAwLjI0MDExOCwgMC4zMDE5NzIsIDAuMzc5MjczLCAwLjQ1NjY0LCAwLjUzMzgyOCwgMC42MTEzNiIsIFwKLSAgICAgICAgICAiMC4xNzAyODIsIDAuMjQ3NDE4LCAwLjMwOTI1NywgMC4zODY1NzEsIDAuNDYzOTM0LCAwLjU0MTMyMiwgMC42MTg2NzIiLCBcCi0gICAgICAgICAgIjAuMTc1ODk2LCAwLjI1MzAxOSwgMC4zMTQ4MTEsIDAuMzkyMTYsIDAuNDY5NTI5LCAwLjU0NjkwNywgMC42MjQwMzYiLCBcCi0gICAgICAgICAgIjAuMTgzMTQxLCAwLjI2MDI2NiwgMC4zMjIxMTQsIDAuMzk5MzgsIDAuNDc2Nzg1LCAwLjU1NDEyNSwgMC42MzE0OTIiLCBcCi0gICAgICAgICAgIjAuMTg4NjUzLCAwLjI2NTgxMywgMC4zMjc2NDYsIDAuNDA0OTY3LCAwLjQ4MjMxMywgMC41NTk2NTUsIDAuNjM3MDE3Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzOTYyLCAwLjIwMDgwMSwgMC4zMzE0MjksIDAuNDk0MDU5LCAwLjY1ODAxNiwgMC44MTk3NiwgMC45ODQyODciLCBcCi0gICAgICAgICAgIjAuMDM5NjE2LCAwLjIwMDc4OCwgMC4zMzE0MSwgMC40OTQ3MDQsIDAuNjU3NzIsIDAuODE5NzgzLCAwLjk4NDMzOSIsIFwKLSAgICAgICAgICAiMC4wMzk2MTgsIDAuMjAwNzk4LCAwLjMzMTQyOSwgMC40OTQzMTEsIDAuNjU3ODQ1LCAwLjgyMDQ2LCAwLjk4NDI0OCIsIFwKLSAgICAgICAgICAiMC4wMzk2MjIsIDAuMjAwNzg1LCAwLjMzMTQyNiwgMC40OTQ1ODMsIDAuNjU3MTA3LCAwLjgxOTgwNywgMC45ODQzMjgiLCBcCi0gICAgICAgICAgIjAuMDM5NjEzLCAwLjIwMDc5NiwgMC4zMzA2ODksIDAuNDk0MDM4LCAwLjY1Njc1NCwgMC44MjEyMTMsIDAuOTgyNzI2IiwgXAotICAgICAgICAgICIwLjAzOTU5MSwgMC4yMDA3OTEsIDAuMzMxNDI0LCAwLjQ5NDUyOCwgMC42NTY5NjQsIDAuODE5OTMyLCAwLjk4NDMyNSIsIFwKLSAgICAgICAgICAiMC4wMzk2MTQsIDAuMjAwNzg1LCAwLjMzMTM4MSwgMC40OTQ2NTIsIDAuNjU3NzkzLCAwLjgxOTkyMywgMC45ODQxOTgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiU04iOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGNsZWFyOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMjk3MDEsIDAuMjA2ODYyLCAwLjI2ODY5LCAwLjM0NTk3NiwgMC40MjMzNTksIDAuNTAwNzE5LCAwLjU3ODA2MiIsIFwKLSAgICAgICAgICAiMC4xMzU5NTIsIDAuMjEzMDg3LCAwLjI3NDkyMywgMC4zNTIxNDIsIDAuNDI5NTcyLCAwLjUwNjg3OCwgMC41ODQyNzIiLCBcCi0gICAgICAgICAgIjAuMTQyMjgsIDAuMjE5NDEsIDAuMjgxMjAxLCAwLjM1ODUxMSwgMC40MzU4MTYsIDAuNTEzMzI1LCAwLjU5MDQwOSIsIFwKLSAgICAgICAgICAiMC4xNDk2MDgsIDAuMjI2Nzk2LCAwLjI4ODY0NCwgMC4zNjU5NCwgMC40NDMyOSwgMC41MjA2NDMsIDAuNTk4IiwgXAotICAgICAgICAgICIwLjE1NjUxNSwgMC4yMzM2MTYsIDAuMjk1NDM2LCAwLjM3Mjc4NywgMC40NTAwMzYsIDAuNTI3NTQ2LCAwLjYwNDYyNSIsIFwKLSAgICAgICAgICAiMC4xNjYyNDEsIDAuMjQzMzQyLCAwLjMwNTE5OSwgMC4zODI0NDksIDAuNDU5OTE3LCAwLjUzNzIwNSwgMC42MTQ0NzMiLCBcCi0gICAgICAgICAgIjAuMTczODg4LCAwLjI1MTA0MywgMC4zMTI4OCwgMC4zOTAxNywgMC40Njc1MjcsIDAuNTQ0ODY2LCAwLjYyMjE4Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzOTYwMywgMC4yMDA4MDEsIDAuMzMxNDM2LCAwLjQ5NDA4NCwgMC42NTc0OTcsIDAuODE5NzkzLCAwLjk4NDI2MSIsIFwKLSAgICAgICAgICAiMC4wMzk2MTYsIDAuMjAwODMzLCAwLjMzMTQxOCwgMC40OTQyMjQsIDAuNjU3MDM1LCAwLjgyMTEzLCAwLjk4NDI0OCIsIFwKLSAgICAgICAgICAiMC4wMzk2MjIsIDAuMjAwNzcyLCAwLjMzMTQxNywgMC40OTQyNjUsIDAuNjU3ODMxLCAwLjgyMDE2NiwgMC45ODMzMjEiLCBcCi0gICAgICAgICAgIjAuMDM5NjE5LCAwLjIwMDc5NywgMC4zMzE0MTMsIDAuNDk0Njg5LCAwLjY1NzA3MSwgMC44MjExMTMsIDAuOTg0NDM1IiwgXAotICAgICAgICAgICIwLjAzOTYxOCwgMC4yMDA3NzYsIDAuMzMxNDE0LCAwLjQ5NDY1MSwgMC42NTcxMDMsIDAuODE5Nzk3LCAwLjk4NDI0OCIsIFwKLSAgICAgICAgICAiMC4wMzk2NjksIDAuMjAwNzc1LCAwLjMzMTQxNSwgMC40OTQzMSwgMC42NTY5OTIsIDAuODE5Nzk0LCAwLjk4MzI2NSIsIFwKLSAgICAgICAgICAiMC4wMzk3ODksIDAuMjAwNzU0LCAwLjMzMTM2NSwgMC40OTQ0NjQsIDAuNjU3NzQ0LCAwLjgxOTk5NCwgMC45ODQxNzIiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTExNTAxLCAwLjE4NzUyNSwgMC4yNDgzNTMsIDAuMzI0MzQ2LCAwLjQwMDM4NiwgMC40NzY0MzEsIDAuNTUyNDY4IiwgXAotICAgICAgICAgICIwLjExODUxNywgMC4xOTQ1MzEsIDAuMjU1MzUxLCAwLjMzMTM1MSwgMC40MDc0MzksIDAuNDgzNDU1LCAwLjU1OTQ2NSIsIFwKLSAgICAgICAgICAiMC4xMjU3MTksIDAuMjAxNzMzLCAwLjI2MjU1NSwgMC4zMzg1NTEsIDAuNDE0NjM3LCAwLjQ5MDY1MiwgMC41NjY2NzIiLCBcCi0gICAgICAgICAgIjAuMTMyOTIzLCAwLjIwODk0OCwgMC4yNjk3ODEsIDAuMzQ1NzcxLCAwLjQyMTg1MiwgMC40OTc4NTIsIDAuNTczODUyIiwgXAotICAgICAgICAgICIwLjE0MDU4NiwgMC4yMTY2NDMsIDAuMjc3NDU4LCAwLjM1MzUwMywgMC40Mjk1NTQsIDAuNTA1NTM4LCAwLjU4MTU1IiwgXAotICAgICAgICAgICIwLjE1MDczMywgMC4yMjY3OTYsIDAuMjg3NjI3LCAwLjM2MzYxNCwgMC40Mzk3MTcsIDAuNTE1NzI3LCAwLjU5MTY3MyIsIFwKLSAgICAgICAgICAiMC4xNTgwNjgsIDAuMjM0MDk3LCAwLjI5NDg4NywgMC4zNzA5LCAwLjQ0Njk3MywgMC41MjI5ODEsIDAuNTk5MDU1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzODU2MSwgMC4xOTQ0NTgsIDAuMzIwODM1LCAwLjQ3ODg4OCwgMC42MzY5NjgsIDAuNzk1MDExLCAwLjk1MzExNSIsIFwKLSAgICAgICAgICAiMC4wMzg1NjgsIDAuMTk0NDU4LCAwLjMyMDg0OSwgMC40Nzg4NzcsIDAuNjM2OTQ3LCAwLjc5NDk3NSwgMC45NTMwMTIiLCBcCi0gICAgICAgICAgIjAuMDM4NTc3LCAwLjE5NDQ2NiwgMC4zMjA4NTQsIDAuNDc4OTA1LCAwLjYzNjg3LCAwLjc5NDk4LCAwLjk1MzA0NiIsIFwKLSAgICAgICAgICAiMC4wMzg1NjgsIDAuMTk0NDk4LCAwLjMyMDg0MSwgMC40Nzg4NSwgMC42MzY4ODcsIDAuNzk0OTg4LCAwLjk1MzA5MyIsIFwKLSAgICAgICAgICAiMC4wMzg1NzIsIDAuMTk0NDk2LCAwLjMyMDgzLCAwLjQ3ODM3NiwgMC42MzYzODEsIDAuNzk0OTY0LCAwLjk1MzA0OSIsIFwKLSAgICAgICAgICAiMC4wMzg2MTYsIDAuMTk0NDc5LCAwLjMyMDc4OSwgMC40Nzg3MTEsIDAuNjM2ODM0LCAwLjc5NDg2NSwgMC45NTI4NzEiLCBcCi0gICAgICAgICAgIjAuMDM4NzQ5LCAwLjE5NDQwOSwgMC4zMjA2NDgsIDAuNDc4NzgxLCAwLjYzNjgxOSwgMC43OTQxNzEsIDAuOTUyODgzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjc0MSwgMC4wMDY3ODcsIDAuMDA2NzkzLCAwLjAwNjc5NywgMC4wMDY3OTgsIDAuMDA2OCwgMC4wMDY4MDEiLCBcCi0gICAgICAgICAgIjAuMDA2NzM4LCAwLjAwNjc4MSwgMC4wMDY3ODgsIDAuMDA2NzkxLCAwLjAwNjc5MiwgMC4wMDY3OTMsIDAuMDA2Nzk1IiwgXAotICAgICAgICAgICIwLjAwNjc4NCwgMC4wMDY4MjksIDAuMDA2ODM1LCAwLjAwNjgzOSwgMC4wMDY4NDEsIDAuMDA2ODQyLCAwLjAwNjg0MyIsIFwKLSAgICAgICAgICAiMC4wMDY4NDMsIDAuMDA2ODg4LCAwLjAwNjg5NCwgMC4wMDY4OTgsIDAuMDA2OSwgMC4wMDY5MDEsIDAuMDA2OTAyIiwgXAotICAgICAgICAgICIwLjAwNjg5NiwgMC4wMDY5NDQsIDAuMDA2OTUxLCAwLjAwNjk1NCwgMC4wMDY5NTYsIDAuMDA2OTU3LCAwLjAwNjk1OCIsIFwKLSAgICAgICAgICAiMC4wMDcwMTQsIDAuMDA3MDYxLCAwLjAwNzA2OCwgMC4wMDcwNzMsIDAuMDA3MDcyLCAwLjAwNzA3MywgMC4wMDcwNzQiLCBcCi0gICAgICAgICAgIjAuMDA3MTE2LCAwLjAwNzE0NSwgMC4wMDcxNTEsIDAuMDA3MTU1LCAwLjAwNzE1NywgMC4wMDcxNTgsIDAuMDA3MTcyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2OTc2LCAwLjAwNzAzMiwgMC4wMDcwMzksIDAuMDA3MDQ0LCAwLjAwNzA0NiwgMC4wMDcwNDgsIDAuMDA3MDQ4IiwgXAotICAgICAgICAgICIwLjAwNjk2NywgMC4wMDcwMjMsIDAuMDA3MDMsIDAuMDA3MDM1LCAwLjAwNzAzNywgMC4wMDcwMzgsIDAuMDA3MDQiLCBcCi0gICAgICAgICAgIjAuMDA3MDA4LCAwLjAwNzA2MywgMC4wMDcwNzIsIDAuMDA3MDc2LCAwLjAwNzA3OSwgMC4wMDcwOCwgMC4wMDcwODEiLCBcCi0gICAgICAgICAgIjAuMDA3MDYxLCAwLjAwNzExNSwgMC4wMDcxMjMsIDAuMDA3MTI3LCAwLjAwNzEzLCAwLjAwNzEzMSwgMC4wMDcxMzIiLCBcCi0gICAgICAgICAgIjAuMDA3MTEzLCAwLjAwNzE3LCAwLjAwNzE3NywgMC4wMDcxODEsIDAuMDA3MTg0LCAwLjAwNzE4NSwgMC4wMDcxODYiLCBcCi0gICAgICAgICAgIjAuMDA3MjA4LCAwLjAwNzI3MiwgMC4wMDcyODEsIDAuMDA3Mjg1LCAwLjAwNzI4OCwgMC4wMDcyODgsIDAuMDA3Mjg5IiwgXAotICAgICAgICAgICIwLjAwNzMyMSwgMC4wMDczNTgsIDAuMDA3MzY3LCAwLjAwNzM3MSwgMC4wMDczNzIsIDAuMDA3Mzc0LCAwLjAwNzM5MyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDg3MzksIDAuMDA4NzYxLCAwLjAwODc1MiwgMC4wMDg3NDQsIDAuMDA4NzQ0LCAwLjAwODczNSwgMC4wMDg3MzIiLCBcCi0gICAgICAgICAgIjAuMDA4NzM3LCAwLjAwODc1OSwgMC4wMDg3NTEsIDAuMDA4NzQzLCAwLjAwODczNywgMC4wMDg3MzQsIDAuMDA4NzM0IiwgXAotICAgICAgICAgICIwLjAwODc3LCAwLjAwODc5MSwgMC4wMDg3ODIsIDAuMDA4Nzc0LCAwLjAwODc3MSwgMC4wMDg3NjksIDAuMDA4NzYyIiwgXAotICAgICAgICAgICIwLjAwODgwNiwgMC4wMDg4MjgsIDAuMDA4ODE5LCAwLjAwODgxMiwgMC4wMDg4MDUsIDAuMDA4ODAxLCAwLjAwODc5NyIsIFwKLSAgICAgICAgICAiMC4wMDg4NTUsIDAuMDA4ODc4LCAwLjAwODg3LCAwLjAwODg2MSwgMC4wMDg4NiwgMC4wMDg4NTEsIDAuMDA4ODUyIiwgXAotICAgICAgICAgICIwLjAwODk0OSwgMC4wMDg5NzIsIDAuMDA4OTY1LCAwLjAwODk1NiwgMC4wMDg5NDksIDAuMDA4OTQ1LCAwLjAwODk0MSIsIFwKLSAgICAgICAgICAiMC4wMDkwMzMsIDAuMDA5MDU4LCAwLjAwOTA0OSwgMC4wMDkwNCwgMC4wMDkwMzMsIDAuMDA5MDI4LCAwLjAwOTAyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihzY2FsYXIpIHsKLSAgICAgICAgdmFsdWVzKCIwIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiU04iOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjUyOSwgMC4wMDY1NzIsIDAuMDA2NTc5LCAwLjAwNjU4MiwgMC4wMDY1ODMsIDAuMDA2NTg0LCAwLjAwNjU5IiwgXAotICAgICAgICAgICIwLjAwNjUwMSwgMC4wMDY1NDQsIDAuMDA2NTUsIDAuMDA2NTUzLCAwLjAwNjU2MywgMC4wMDY1NTUsIDAuMDA2NTYxIiwgXAotICAgICAgICAgICIwLjAwNjQ5MiwgMC4wMDY1MzUsIDAuMDA2NTQxLCAwLjAwNjU0NSwgMC4wMDY1NDksIDAuMDA2NTQ2LCAwLjAwNjU0OCIsIFwKLSAgICAgICAgICAiMC4wMDY0OTYsIDAuMDA2NTM5LCAwLjAwNjU0NSwgMC4wMDY1NTEsIDAuMDA2NTUsIDAuMDA2NTUxLCAwLjAwNjU1MiIsIFwKLSAgICAgICAgICAiMC4wMDY1MTMsIDAuMDA2NTU3LCAwLjAwNjU2MywgMC4wMDY1NjcsIDAuMDA2NTY5LCAwLjAwNjU2OSwgMC4wMDY1NzQiLCBcCi0gICAgICAgICAgIjAuMDA2NTY2LCAwLjAwNjYxLCAwLjAwNjYxOCwgMC4wMDY2MjIsIDAuMDA2NjIzLCAwLjAwNjYyNSwgMC4wMDY2MjciLCBcCi0gICAgICAgICAgIjAuMDA2NjE5LCAwLjAwNjY1NywgMC4wMDY2NjQsIDAuMDA2NjY4LCAwLjAwNjY3LCAwLjAwNjY3MSwgMC4wMDY2NzEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDgxMjEsIDAuMDA4MTc0LCAwLjAwODE4MSwgMC4wMDgxODQsIDAuMDA4MTg2LCAwLjAwODE4NywgMC4wMDgxODciLCBcCi0gICAgICAgICAgIjAuMDA4MTA5LCAwLjAwODE2MSwgMC4wMDgxNjgsIDAuMDA4MTcxLCAwLjAwODE3MiwgMC4wMDgxNzQsIDAuMDA4MTc0IiwgXAotICAgICAgICAgICIwLjAwODEyNiwgMC4wMDgxNzgsIDAuMDA4MTg1LCAwLjAwODE4OCwgMC4wMDgxOSwgMC4wMDgxOTEsIDAuMDA4MTkxIiwgXAotICAgICAgICAgICIwLjAwODE1OCwgMC4wMDgyMTQsIDAuMDA4MjIxLCAwLjAwODIyNSwgMC4wMDgyMjcsIDAuMDA4MjI4LCAwLjAwODIyOCIsIFwKLSAgICAgICAgICAiMC4wMDgyMTEsIDAuMDA4MjY3LCAwLjAwODI3NCwgMC4wMDgyNzgsIDAuMDA4MjgsIDAuMDA4MjgsIDAuMDA4MjgxIiwgXAotICAgICAgICAgICIwLjAwODMzMywgMC4wMDgzODQsIDAuMDA4MzksIDAuMDA4Mzk0LCAwLjAwODM5NSwgMC4wMDgzOTYsIDAuMDA4Mzk2IiwgXAotICAgICAgICAgICIwLjAwODQzMiwgMC4wMDg0ODEsIDAuMDA4NDg4LCAwLjAwODQ5MSwgMC4wMDg0OTIsIDAuMDA4NDkzLCAwLjAwODQ5NCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUk4pICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY1OTg0ODsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2NTk4NDg7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjU5ODI5OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDYzNywgMC4wMDA2NCwgMC4wMDA2OSwgMC4wMDA3ODEsIDAuMDAwODg5LCAwLjAwMTA5MywgMC4wMDEyNzciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDQwNiwgMC4wMDQwNTksIDAuMDA0MTE3LCAwLjAwNDIwMywgMC4wMDQzMTksIDAuMDA0NTQ5LCAwLjAwNDc0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRCZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjE0NjIyNSwgMC4xNTQzMDcsIDAuMTYzMDE1LCAwLjE3MDI4MiwgMC4xNzU4OTYsIDAuMTgzMTQxLCAwLjE4ODY1MyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJlY292ZXJ5X3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiRCZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzFfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChyZWNvdmVyeV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNSwgMC4wNDUsIDAuMDMyNSwgMC4wMjYyNSwgMC4wMiwgMC4wMSwgMC4wMDc1IiwgXAotICAgICAgICAgICIwLjA2MTI1LCAwLjA1LCAwLjA0Mzc1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMjEyNSwgMC4wMTI1IiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDYyNSwgMC4wNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAyNzUsIDAuMDI1IiwgXAotICAgICAgICAgICIwLjA3Mzc1LCAwLjA2ODc1LCAwLjA1NjI1LCAwLjA1LCAwLjA0Mzc1LCAwLjAzMzc1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICIwLjA4LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDUsIDAuMDQsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiMC4wOSwgMC4wNzg3NSwgMC4wNjYyNSwgMC4wNiwgMC4wNTM3NSwgMC4wNSwgMC4wNDEyNSIsIFwKLSAgICAgICAgICAiMC4wOTI1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1MjUsIDAuMDUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiU04iOwotICAgICAgdGltaW5nX3R5cGUgOiByZWNvdmVyeV9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEIjsKLSAgICAgIHNkZl9jb25kIDogIkQgPT0gMSdiMCI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQocmVjb3ZlcnlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU2MjUsIDAuMDYxMjUsIDAuMDY3NSwgMC4wNzM3NSwgMC4wOCwgMC4wOSwgMC4wOTI1IiwgXAotICAgICAgICAgICIwLjA1MTI1LCAwLjA1NjI1LCAwLjA2MjUsIDAuMDY4NzUsIDAuMDc1LCAwLjA3ODc1LCAwLjA4NzUiLCBcCi0gICAgICAgICAgIjAuMDQ1LCAwLjA1LCAwLjA1NjI1LCAwLjA2MjUsIDAuMDY4NzUsIDAuMDcyNSwgMC4wODEyNSIsIFwKLSAgICAgICAgICAiMC4wMzg3NSwgMC4wNSwgMC4wNTYyNSwgMC4wNjI1LCAwLjA2MjUsIDAuMDcyNSwgMC4wNzUiLCBcCi0gICAgICAgICAgIjAuMDM4NzUsIDAuMDQzNzUsIDAuMDUsIDAuMDU2MjUsIDAuMDYyNSwgMC4wNjYyNSwgMC4wNzUiLCBcCi0gICAgICAgICAgIjAuMDM1LCAwLjA0LCAwLjA0NjI1LCAwLjA1MjUsIDAuMDU4NzUsIDAuMDYyNSwgMC4wNzEyNSIsIFwKLSAgICAgICAgICAiMC4wMzI1LCAwLjA0Mzc1LCAwLjA0Mzc1LCAwLjA1LCAwLjA1NjI1LCAwLjA2NjI1LCAwLjA2ODc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogcmVtb3ZhbF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIkQmU04iOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8xX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQocmVtb3ZhbF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDEyNSwgLTAuMDAxMjUsIDAuMDA1LCAwLjAxMTI1LCAwLjAxNzUsIDAuMDI3NSwgMC4wMyIsIFwKLSAgICAgICAgICAiLTAuMDE3NSwgLTAuMDEyNSwgMCwgMC4wMDYyNSwgMC4wMTI1LCAwLjAxNjI1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMCwgMC4wMSwgMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAuMDAzNzUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDI1LCAwIiwgXAotICAgICAgICAgICItMC4wNDYyNSwgLTAuMDQxMjUsIC0wLjAyODc1LCAtMC4wMjI1LCAtMC4wMTYyNSwgLTAuMDEyNSwgLTAuMDAzNzUiLCBcCi0gICAgICAgICAgIi0wLjA1NSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAyNSwgLTAuMDI1LCAtMC4wMTUsIC0wLjAxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFNOKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE5NTgxMzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE5NTc5MzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE5NTgxMzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA1OTMsIDAuMDAwNTkzLCAwLjAwMDU5MywgMC4wMDA1OTMsIDAuMDAwNTkyLCAwLjAwMDU5MiwgMC4wMDA1OTIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA2MDEsIDAuMDAwNTk1LCAwLjAwMDU5NSwgMC4wMDA1OTUsIDAuMDAwNTk1LCAwLjAwMDU5NSwgMC4wMDA1OTUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiU04iOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFEJiFSTiI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fUk5fRVFfMCA9PSAxJ2IxIjsKLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjExMTUwMSwgMC4xMTg0ODMsIDAuMTI1NzE4LCAwLjEzMjkyMywgMC4xNDA1ODYsIDAuMTUwNzMyLCAwLjE1ODA2OCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJlY292ZXJ5X3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUQmUk4iOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1JOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQocmVjb3ZlcnlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2MjUsIDAuMDAxMjUsIC0wLjAxMTI1LCAtMC4wMTc1LCAtMC4wMjM3NSwgLTAuMDMzNzUsIC0wLjA0MjUiLCBcCi0gICAgICAgICAgIjAuMDE3NSwgMC4wMDYyNSwgLTAuMDA2MjUsIC0wLjAxMjUsIC0wLjAxODc1LCAtMC4wMjg3NSwgLTAuMDM3NSIsIFwKLSAgICAgICAgICAiMC4wMjM3NSwgMC4wMTI1LCAwLCAtMC4wMDYyNSwgLTAuMDEyNSwgLTAuMDIyNSwgLTAuMDI1IiwgXAotICAgICAgICAgICIwLjAzLCAwLjAxODc1LCAwLjAxMjUsIDAsIC0wLjAwNjI1LCAtMC4wMTYyNSwgLTAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMDM2MjUsIDAuMDI1LCAwLjAxODc1LCAwLjAwNjI1LCAwLCAtMC4wMDM3NSwgLTAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4wNDYyNSwgMC4wNDEyNSwgMC4wMjg3NSwgMC4wMjI1LCAwLjAxNjI1LCAwLjAwNjI1LCAtMC4wMDI1IiwgXAotICAgICAgICAgICIwLjA2MTI1LCAwLjA1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDI1LCAwLjAxNSwgMC4wMDYyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJlbW92YWxfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRCZSTiI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fUk5fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChyZW1vdmFsX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxODc1LCAwLjAzLCAwLjAzNjI1LCAwLjA0ODc1LCAwLjA1NSwgMC4wNTg3NSwgMC4wNjc1IiwgXAotICAgICAgICAgICIwLjAxMzc1LCAwLjAyNSwgMC4wMzEyNSwgMC4wMzc1LCAwLjA0Mzc1LCAwLjA1Mzc1LCAwLjA2MjUiLCBcCi0gICAgICAgICAgIjAuMDA3NSwgMC4wMTI1LCAwLjAyNSwgMC4wMzEyNSwgMC4wMzc1LCAwLjA0NzUsIDAuMDUiLCBcCi0gICAgICAgICAgIjAuMDAxMjUsIDAuMDA2MjUsIDAuMDE4NzUsIDAuMDI1LCAwLjAzMTI1LCAwLjA0MTI1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICItMC4wMDUsIDAsIDAuMDEyNSwgMC4wMTg3NSwgMC4wMjUsIDAuMDM1LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjAxNSwgLTAuMDAzNzUsIDAuMDAyNSwgMC4wMTUsIDAuMDE1LCAwLjAyNSwgMC4wMzM3NSIsIFwKLSAgICAgICAgICAiLTAuMDE3NSwgLTAuMDEyNSwgMCwgMC4wMDYyNSwgMC4wMTI1LCAwLjAyMjUsIDAuMDI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBERkZTWDQgKgotICogLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChERkZTWDQpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMS42NzY4MzsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBmZiAoTjM1LFFCSU5UKSB7Ci0gICAgbmV4dF9zdGF0ZSA6ICJEIjsKLSAgICBjbG9ja2VkX29uIDogIkNLIjsKLSAgICBwcmVzZXQgOiAiKCFTTikiOwotICB9Ci0gIHBpbihDSykgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjU4NTQ1OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDY1ODMzODsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2NTg1NDU7Ci0gICAgY2xvY2sgOiB0cnVlOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzIzNiwgMC4wMDMyMjcsIDAuMDAzMzA3LCAwLjAwMzM5OSwgMC4wMDM1MjMsIDAuMDAzNzUzLCAwLjAwMzk0MyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwODEzOCwgMC4wMDgxMzgsIDAuMDA4MjIsIDAuMDA4Mjk3LCAwLjAwODQ0NCwgMC4wMDg2OCwgMC4wMDg5MzEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFEJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMTExODE1LCAwLjEyMDA4LCAwLjEyODk0NSwgMC4xMzYsIDAuMTQxNTQ0LCAwLjE0ODkyMSwgMC4xNTQ0OTIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjA3Njk2MSwgMC4wODQ5NTEsIDAuMDkzNzc2LCAwLjEwMDMwOSwgMC4xMDU1NDIsIDAuMTEyMTksIDAuMTE3MTc4Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihEKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2NjM0NTQ7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjYyMjI4OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDY2MzQ1NDsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDMyMDMsIDAuMDAzMTczLCAwLjAwMzE5OCwgMC4wMDMyNDYsIDAuMDAzMzIyLCAwLjAwMzQ2MywgMC4wMDM2MDYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDM1NjYsIDAuMDAzNTQ1LCAwLjAwMzU2NSwgMC4wMDM2MTMsIDAuMDAzNjkxLCAwLjAwMzgxNCwgMC4wMDM5NTIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiU04iOwotICAgICAgc2RmX2NvbmQgOiAiU04gPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDA2MjUsIC0wLjAwMTI1LCAtMC4wMDEyNSwgMC4wMDUsIDAuMDA1LCAwLjAwODc1LCAwLjAxMTI1IiwgXAotICAgICAgICAgICItMC4wMTEyNSwgLTAuMDA2MjUsIC0wLjAwNjI1LCAwLCAwLCAwLjAwMzc1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wMTc1LCAtMC4wMTI1LCAtMC4wMTI1LCAtMC4wMDYyNSwgLTAuMDA2MjUsIC0wLjAwMjUsIDAiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDEyNSwgLTAuMDA2MjUsIC0wLjAwMjUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDEyNSwgLTAuMDA4NzUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wMzM3NSwgLTAuMDI4NzUsIC0wLjAyMjUsIC0wLjAyMjUsIC0wLjAxNjI1LCAtMC4wMTI1LCAtMC4wMSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxNSwgLTAuMDE4NzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMjUsIDAuMDIzNzUsIDAuMDMsIDAuMDM2MjUsIDAuMDM2MjUsIDAuMDQ2MjUsIDAuMDQ4NzUiLCBcCi0gICAgICAgICAgIjAuMDA3NSwgMC4wMTg3NSwgMC4wMjUsIDAuMDMxMjUsIDAuMDM3NSwgMC4wNDEyNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4wMDc1LCAwLjAxMjUsIDAuMDE4NzUsIDAuMDI1LCAwLjAzMTI1LCAwLjAzNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4wMDEyNSwgMC4wMTI1LCAwLjAxODc1LCAwLjAyNSwgMC4wMzEyNSwgMC4wMzUsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiMC4wMDEyNSwgMC4wMDYyNSwgMC4wMTg3NSwgMC4wMjUsIDAuMDI1LCAwLjAzNSwgMC4wMzc1IiwgXAotICAgICAgICAgICItMC4wMDI1LCAwLjAwODc1LCAwLjAxNSwgMC4wMjEyNSwgMC4wMjc1LCAwLjAzMTI1LCAwLjAzMzc1IiwgXAotICAgICAgICAgICItMC4wMDUsIDAuMDA2MjUsIDAuMDEyNSwgMC4wMTg3NSwgMC4wMjUsIDAuMDI4NzUsIDAuMDMxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlNOIjsKLSAgICAgIHNkZl9jb25kIDogIlNOID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzMTI1LCAwLjAyNjI1LCAwLjAyLCAwLjAxMzc1LCAwLjAwNzUsIDAuMDAzNzUsIDAuMDAxMjUiLCBcCi0gICAgICAgICAgIjAuMDM2MjUsIDAuMDMxMjUsIDAuMDI1LCAwLjAxODc1LCAwLjAxODc1LCAwLjAxNSwgMC4wMTI1IiwgXAotICAgICAgICAgICIwLjA0MjUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMjUsIDAuMDI1LCAwLjAyMTI1LCAwLjAxODc1IiwgXAotICAgICAgICAgICIwLjA0ODc1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDI1LCAwLjAyMTI1LCAwLjAxODc1IiwgXAotICAgICAgICAgICIwLjA1NSwgMC4wNSwgMC4wMzc1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDI3NSwgMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMDY1LCAwLjA1Mzc1LCAwLjA0NzUsIDAuMDQxMjUsIDAuMDM1LCAwLjAzMTI1LCAwLjAyODc1IiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDU2MjUsIDAuMDUsIDAuMDQzNzUsIDAuMDQzNzUsIDAuMDQsIDAuMDM3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzMTI1LCAwLjAyNjI1LCAwLjAxMzc1LCAwLjAwNzUsIDAuMDAxMjUsIC0wLjAwMjUsIC0wLjAxMTI1IiwgXAotICAgICAgICAgICIwLjA0MjUsIDAuMDMxMjUsIDAuMDE4NzUsIDAuMDEyNSwgMC4wMDYyNSwgMC4wMDI1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiMC4wNDg3NSwgMC4wMzc1LCAwLjAyNSwgMC4wMTg3NSwgMC4wMTI1LCAwLjAwODc1LCAwIiwgXAotICAgICAgICAgICIwLjA0ODc1LCAwLjA0Mzc1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMTg3NSwgMC4wMTUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMDU1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDI1LCAwLjAxNSwgMC4wMTI1IiwgXAotICAgICAgICAgICIwLjA1ODc1LCAwLjA1Mzc1LCAwLjA0MTI1LCAwLjAzNSwgMC4wMjg3NSwgMC4wMTg3NSwgMC4wMTYyNSIsIFwKLSAgICAgICAgICAiMC4wNjEyNSwgMC4wNTYyNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyNzUsIDAuMDE4NzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFEpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMS4zNTYyMzsKLSAgICBmdW5jdGlvbiA6ICJOMzUiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5vbl91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcmlzaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDgyNDA1LCAwLjEzODM1NywgMC4xOTMyNDUsIDAuMjMyNjA0LCAwLjI5NTE3OSwgMC4zNTAwMiwgMC40Mjg1OTUiLCBcCi0gICAgICAgICAgIjAuMDkwNTksIDAuMTQ2NTk5LCAwLjIwMTYwOCwgMC4yNDA5NjIsIDAuMzAzNTI4LCAwLjM1ODAzMSwgMC40MzY3NTQiLCBcCi0gICAgICAgICAgIjAuMDk5NCwgMC4xNTU0MDUsIDAuMjEwMzg4LCAwLjI0OTUxNCwgMC4zMTIyNiwgMC4zNjY4MTcsIDAuNDQ1NTY4IiwgXAotICAgICAgICAgICIwLjEwNjQzNiwgMC4xNjI0MTQsIDAuMjE3Mjk5LCAwLjI1NjY3NywgMC4zMTkyNjYsIDAuMzc0MTI4LCAwLjQ1MjI3MyIsIFwKLSAgICAgICAgICAiMC4xMTE5MDgsIDAuMTY3OTUzLCAwLjIyMjc1MiwgMC4yNjIxNDcsIDAuMzI0NzU5LCAwLjM3OTMxOCwgMC40NTgxMyIsIFwKLSAgICAgICAgICAiMC4xMTk0ODksIDAuMTc1NDc2LCAwLjIzMDM0NCwgMC4yNjk1NzEsIDAuMzMyMzIzLCAwLjM4Njg4LCAwLjQ2NTY1NSIsIFwKLSAgICAgICAgICAiMC4xMjUxNzQsIDAuMTgxMTIxLCAwLjIzNjIxMiwgMC4yNzUxMDgsIDAuMzM3OTc5LCAwLjM5MjU4OSwgMC40NzEzMjQiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjU5MiwgMC4xMzgwNzYsIDAuMjUzMDMsIDAuMzM1MjA0LCAwLjQ2Njk3LCAwLjU4MzM1NywgMC43NDc1MjYiLCBcCi0gICAgICAgICAgIjAuMDI2MDEsIDAuMTM4MTAxLCAwLjI1Mjk5NywgMC4zMzUwODcsIDAuNDY3NzUzLCAwLjU4MjgzOSwgMC43NDc1NzMiLCBcCi0gICAgICAgICAgIjAuMDI1OTA3LCAwLjEzNzY4NSwgMC4yNTI3MjIsIDAuMzM1NDEzLCAwLjQ2NzcyNywgMC41ODI4MjUsIDAuNzQ3NTYxIiwgXAotICAgICAgICAgICIwLjAyNTkzNSwgMC4xMzc4NzIsIDAuMjUyNTUxLCAwLjMzNDcyOSwgMC40Njc2NDgsIDAuNTgzNTE3LCAwLjc0Nzg1NCIsIFwKLSAgICAgICAgICAiMC4wMjU3MzcsIDAuMTM4MDk4LCAwLjI1MjU5NiwgMC4zMzU2MSwgMC40Njc2NDgsIDAuNTgyNDc0LCAwLjc0NzcxOCIsIFwKLSAgICAgICAgICAiMC4wMjU4MzEsIDAuMTM3NjIzLCAwLjI1MjU0NCwgMC4zMzUwNzYsIDAuNDY3NjU2LCAwLjU4MjUyLCAwLjc0NzU2MiIsIFwKLSAgICAgICAgICAiMC4wMjU5MDcsIDAuMTM4MDAzLCAwLjI1Mjc0NSwgMC4zMzUxODYsIDAuNDY3NTgzLCAwLjU4MjgzLCAwLjc0NzYxIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDkzODc5LCAwLjE0OTQxLCAwLjIwMzQ4NSwgMC4yNDIyMjQsIDAuMzA0MTU0LCAwLjM1ODI1MiwgMC40MzQ5NjQiLCBcCi0gICAgICAgICAgIjAuMTAyMTMsIDAuMTU3NjMyLCAwLjIxMTc4NywgMC4yNTA1MTcsIDAuMzEyMDA4LCAwLjM2NjM2NCwgMC40NDM5MTgiLCBcCi0gICAgICAgICAgIjAuMTEwOTk0LCAwLjE2NjUzMiwgMC4yMjA2NDcsIDAuMjU5Mzc4LCAwLjMyMDk1NywgMC4zNzUxNzcsIDAuNDUyNTkxIiwgXAotICAgICAgICAgICIwLjExODAxMSwgMC4xNzM1NTEsIDAuMjI3NjQxLCAwLjI2NjM2NCwgMC4zMjgwMTMsIDAuMzgyMzcsIDAuNDU5MTIyIiwgXAotICAgICAgICAgICIwLjEyMzU5NCwgMC4xNzkxMjcsIDAuMjMzMjgxLCAwLjI3MTk4LCAwLjMzMzkwOCwgMC4zODc4OTgsIDAuNDY1MTIxIiwgXAotICAgICAgICAgICIwLjEzMTAxLCAwLjE4NjUwNSwgMC4yNDA3MjgsIDAuMjc5NDYyLCAwLjM0MTMxOCwgMC4zOTUyNzksIDAuNDcyNTM0IiwgXAotICAgICAgICAgICIwLjEzNjU0NSwgMC4xOTIwNTMsIDAuMjQ2MzMzLCAwLjI4NTAwOCwgMC4zNDY3MzUsIDAuNDAxMDIxLCAwLjQ3ODEyOCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyNTQ5LCAwLjEzNTA5NSwgMC4yNDUzNTMsIDAuMzI2MzM2LCAwLjQ1NDA1OCwgMC41NjY2OTMsIDAuNzI2NTE0IiwgXAotICAgICAgICAgICIwLjAyNTQ3NSwgMC4xMzQ5ODMsIDAuMjQ2MTk1LCAwLjMyNjIxMywgMC40NTQ0NjgsIDAuNTY2NzQzLCAwLjcyNTk4NiIsIFwKLSAgICAgICAgICAiMC4wMjU0NDksIDAuMTM1MDkxLCAwLjI0NjE3NSwgMC4zMjYxOTksIDAuNDUzNTI0LCAwLjU2Njc2MSwgMC43Mjc2MTMiLCBcCi0gICAgICAgICAgIjAuMDI1NDgzLCAwLjEzNDE3NywgMC4yNDYwNTUsIDAuMzI1NDA0LCAwLjQ1MzY3NywgMC41NjY2OTQsIDAuNzI2NTcyIiwgXAotICAgICAgICAgICIwLjAyNTM4NywgMC4xMzQ5NywgMC4yNDU1NjQsIDAuMzI2MjM1LCAwLjQ1NDA3NiwgMC41NjY2OTksIDAuNzI3NTg4IiwgXAotICAgICAgICAgICIwLjAyNTUzLCAwLjEzNTA5NywgMC4yNDU1NzksIDAuMzI1NTIyLCAwLjQ1NDAzMSwgMC41NjY2OTIsIDAuNzI3NTg3IiwgXAotICAgICAgICAgICIwLjAyNTUwNywgMC4xMzQ5NiwgMC4yNDUyNTIsIDAuMzI2MjgyLCAwLjQ1NDExOCwgMC41NjY2ODUsIDAuNzI3NDkzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiBwcmVzZXQ7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc3MTYyLCAwLjEzMzA4NCwgMC4xODgwMTMsIDAuMjI3MjQ4LCAwLjI4OTY2OSwgMC4zNDQ1OTgsIDAuNDIyOTg3IiwgXAotICAgICAgICAgICIwLjA4NTA4OCwgMC4xNDA5NzYsIDAuMTk1ODA0LCAwLjIzNTM5OSwgMC4yOTc0OCwgMC4zNTI5MTcsIDAuNDMxMDE5IiwgXAotICAgICAgICAgICIwLjA5NDk0MiwgMC4xNTA4NTQsIDAuMjA1NTc5LCAwLjI0NDgwMiwgMC4zMDc2MTIsIDAuMzYyNjI3LCAwLjQ0MDQwNiIsIFwKLSAgICAgICAgICAiMC4xMDM1NzUsIDAuMTU5NDg0LCAwLjIxNDQxOCwgMC4yNTM5NjQsIDAuMzE2NDQ1LCAwLjM3MTQ3MiwgMC40NDk3MTQiLCBcCi0gICAgICAgICAgIjAuMTEwODE5LCAwLjE2Njc1NSwgMC4yMjE2NjYsIDAuMjYxMTQsIDAuMzIzODc3LCAwLjM3ODQ4NCwgMC40NTY3OTEiLCBcCi0gICAgICAgICAgIjAuMTIwNDg3LCAwLjE3NjM1NSwgMC4yMzE0MzUsIDAuMjcwNjA4LCAwLjMzMzMxMSwgMC4zODgyMDQsIDAuNDY2NDQ1IiwgXAotICAgICAgICAgICIwLjEyNzQ5NywgMC4xODMzODcsIDAuMjM4MjEyLCAwLjI3NzQzOCwgMC4zNDAxMjYsIDAuMzk1MTI5LCAwLjQ3MzQyNiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyNTg2MiwgMC4xMzgxOTcsIDAuMjUzMDEyLCAwLjMzNTEwNCwgMC40Njc2NTEsIDAuNTgzNDEsIDAuNzQ3Njk2IiwgXAotICAgICAgICAgICIwLjAyNTg1NiwgMC4xMzc5ODQsIDAuMjUyOTYyLCAwLjMzNTA2OSwgMC40Njc2NDcsIDAuNTgzNDc2LCAwLjc0ODkyNyIsIFwKLSAgICAgICAgICAiMC4wMjU4MiwgMC4xMzgxMzYsIDAuMjUyOTU4LCAwLjMzNTM2OCwgMC40Njc3MDMsIDAuNTgzNDU5LCAwLjc0ODg4MiIsIFwKLSAgICAgICAgICAiMC4wMjU4NTgsIDAuMTM3OTgyLCAwLjI1MzAyLCAwLjMzNDk5NSwgMC40Njc3NTQsIDAuNTgyNTU1LCAwLjc0ODg2MiIsIFwKLSAgICAgICAgICAiMC4wMjU4ODMsIDAuMTM4MDg1LCAwLjI1MzAzMywgMC4zMzU2NDMsIDAuNDY3NjcyLCAwLjU4MzQ3NCwgMC43NDg5MTciLCBcCi0gICAgICAgICAgIjAuMDI2Mzk5LCAwLjEzODE1NSwgMC4yNTMwMjIsIDAuMzM1NTc0LCAwLjQ2NzIxNCwgMC41ODM0MTksIDAuNzQ4ODMzIiwgXAotICAgICAgICAgICIwLjAyNjM5NCwgMC4xMzgwMzgsIDAuMjUzMDI1LCAwLjMzNTYxNiwgMC40NjcxMzgsIDAuNTgzMzk2LCAwLjc0ODgyNyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwOTc5MywgMC4wMDk5MzMsIDAuMDA5OTU2LCAwLjAwOTk2MSwgMC4wMDk5NjcsIDAuMDA5OTcsIDAuMDA5OTcyIiwgXAotICAgICAgICAgICIwLjAwOTc5MSwgMC4wMDk5MzIsIDAuMDA5OTU1LCAwLjAwOTk2MSwgMC4wMDk5NjcsIDAuMDA5OTcsIDAuMDA5OTcyIiwgXAotICAgICAgICAgICIwLjAwOTgzMSwgMC4wMDk5NzIsIDAuMDA5OTk0LCAwLjAxMDAwMSwgMC4wMTAwMDcsIDAuMDEwMDEsIDAuMDEwMDEyIiwgXAotICAgICAgICAgICIwLjAwOTg3MSwgMC4wMTAwMTQsIDAuMDEwMDM2LCAwLjAxMDA0MywgMC4wMTAwNDksIDAuMDEwMDU1LCAwLjAxMDA1MyIsIFwKLSAgICAgICAgICAiMC4wMDk5MzcsIDAuMDEwMDgxLCAwLjAxMDEwMywgMC4wMTAxMSwgMC4wMTAxMTYsIDAuMDEwMTE5LCAwLjAxMDEyMiIsIFwKLSAgICAgICAgICAiMC4wMTAwMzksIDAuMDEwMTc4LCAwLjAxMDIwNCwgMC4wMTAyMTEsIDAuMDEwMjE4LCAwLjAxMDIxOSwgMC4wMTAyMjMiLCBcCi0gICAgICAgICAgIjAuMDEwMTM2LCAwLjAxMDI3NiwgMC4wMTAyOTcsIDAuMDEwMzAzLCAwLjAxMDMxMSwgMC4wMTAzMTMsIDAuMDEwMzE1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDk3MDQsIDAuMDA5ODMzLCAwLjAwOTg1NywgMC4wMDk4NjQsIDAuMDA5ODczLCAwLjAwOTg3MywgMC4wMDk4NzYiLCBcCi0gICAgICAgICAgIjAuMDA5NzA1LCAwLjAwOTgzNiwgMC4wMDk4NiwgMC4wMDk4NjcsIDAuMDA5ODc0LCAwLjAwOTg3NywgMC4wMDk4OCIsIFwKLSAgICAgICAgICAiMC4wMDk3NTIsIDAuMDA5ODg0LCAwLjAwOTkwNywgMC4wMDk5MTUsIDAuMDA5OTIxLCAwLjAwOTkyNSwgMC4wMDk5MjgiLCBcCi0gICAgICAgICAgIjAuMDA5ODE1LCAwLjAwOTk0LCAwLjAwOTk2NSwgMC4wMDk5NywgMC4wMDk5NzcsIDAuMDA5OTgsIDAuMDA5OTgxIiwgXAotICAgICAgICAgICIwLjAwOTg4MiwgMC4wMTAwMTUsIDAuMDEwMDM4LCAwLjAxMDA0NiwgMC4wMTAwNTIsIDAuMDEwMDU1LCAwLjAxMDA1OCIsIFwKLSAgICAgICAgICAiMC4wMDk5OTksIDAuMDEwMTM2LCAwLjAxMDE1MywgMC4wMTAxNzIsIDAuMDEwMTY3LCAwLjAxMDE3OSwgMC4wMTAxNzMiLCBcCi0gICAgICAgICAgIjAuMDEwMDk0LCAwLjAxMDIxOCwgMC4wMTAyNDMsIDAuMDEwMjQ3LCAwLjAxMDI1NywgMC4wMTAyNTcsIDAuMDEwMjYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTAyMjIsIDAuMDEwMzU5LCAwLjAxMDM4MSwgMC4wMTAzOSwgMC4wMTAzOTYsIDAuMDEwMzk3LCAwLjAxMDQwMiIsIFwKLSAgICAgICAgICAiMC4wMTAyMSwgMC4wMTAzNDksIDAuMDEwMzcxLCAwLjAxMDM3NywgMC4wMTAzODQsIDAuMDEwMzg4LCAwLjAxMDM4NSIsIFwKLSAgICAgICAgICAiMC4wMTAyMTksIDAuMDEwMzU5LCAwLjAxMDM4MSwgMC4wMTAzODgsIDAuMDEwMzk0LCAwLjAxMDM5OCwgMC4wMTA0IiwgXAotICAgICAgICAgICIwLjAxMDI0OCwgMC4wMTAzOSwgMC4wMTA0MTMsIDAuMDEwNDIsIDAuMDEwNDI3LCAwLjAxMDQzLCAwLjAxMDQzMiIsIFwKLSAgICAgICAgICAiMC4wMTAzLCAwLjAxMDQ0LCAwLjAxMDQ2NCwgMC4wMTA0NzIsIDAuMDEwNDc4LCAwLjAxMDQ4MiwgMC4wMTA0ODkiLCBcCi0gICAgICAgICAgIjAuMDEwMzk4LCAwLjAxMDUzMSwgMC4wMTA1NjEsIDAuMDEwNTY5LCAwLjAxMDU3NSwgMC4wMTA1NzgsIDAuMDEwNTgxIiwgXAotICAgICAgICAgICIwLjAxMDQ4NywgMC4wMTA2MTcsIDAuMDEwNjQxLCAwLjAxMDY0OSwgMC4wMTA2NTIsIDAuMDEwNjU4LCAwLjAxMDY2MiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihzY2FsYXIpIHsKLSAgICAgICAgdmFsdWVzKCIwIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihRTikgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAxLjM1MDk7Ci0gICAgZnVuY3Rpb24gOiAiUUJJTlQiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5vbl91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcmlzaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTExODE1LCAwLjE2NzA5MiwgMC4yMjIwOTEsIDAuMjYxNCwgMC4zMjQzMTUsIDAuMzc5MzYzLCAwLjQ1OCIsIFwKLSAgICAgICAgICAiMC4xMjAwOCwgMC4xNzUzMzYsIDAuMjMwMzQsIDAuMjY5NjUsIDAuMzMyNTM0LCAwLjM4NzU3OSwgMC40NjYzMDYiLCBcCi0gICAgICAgICAgIjAuMTI4OTQ1LCAwLjE4NDIsIDAuMjM5MjAzLCAwLjI3ODUxNCwgMC4zNDE0MDMsIDAuMzk2NDMyLCAwLjQ3NTExNCIsIFwKLSAgICAgICAgICAiMC4xMzYsIDAuMTkxMjAzLCAwLjI0NjIwNiwgMC4yODU1MTQsIDAuMzQ4MzYyLCAwLjQwMzQ3MywgMC40ODE5ODciLCBcCi0gICAgICAgICAgIjAuMTQxNTQ0LCAwLjE5NjgxMywgMC4yNTE4MTgsIDAuMjkxMTIyLCAwLjM1NDA0LCAwLjQwOTA2NywgMC40ODc2OTciLCBcCi0gICAgICAgICAgIjAuMTQ4OTIxLCAwLjIwNDE0MiwgMC4yNTkxOTMsIDAuMjk4NDc2LCAwLjM2MTQxLCAwLjQxNjQwNCwgMC40OTUwNjkiLCBcCi0gICAgICAgICAgIjAuMTU0NDkyLCAwLjIwOTc3OCwgMC4yNjQ3NzYsIDAuMzA0MDY1LCAwLjM2Njk1LCAwLjQyMjA1NywgMC41MDA2NjciKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjUxOTQsIDAuMTM4MjU3LCAwLjI1NDA4NCwgMC4zMzY3NDUsIDAuNDcwNDI1LCAwLjU4Njg2LCAwLjc1MTYwNiIsIFwKLSAgICAgICAgICAiMC4wMjUyMDUsIDAuMTM4MTQ5LCAwLjI1NDEzMywgMC4zMzY5NCwgMC40Njk5MjYsIDAuNTg2NTgzLCAwLjc1MTc1NyIsIFwKLSAgICAgICAgICAiMC4wMjUyMDUsIDAuMTM4MjU3LCAwLjI1NDEzMSwgMC4zMzY5MzUsIDAuNDY5NTc5LCAwLjU4NjQzOCwgMC43NTMwMTYiLCBcCi0gICAgICAgICAgIjAuMDI1MTk0LCAwLjEzODIwNCwgMC4yNTQxMTcsIDAuMzM2ODQ5LCAwLjQ2OTM2NSwgMC41ODY4NTQsIDAuNzUyMDU3IiwgXAotICAgICAgICAgICIwLjAyNTE4NSwgMC4xMzgzNCwgMC4yNTQyNiwgMC4zMzY5OCwgMC40NzA0MDYsIDAuNTg2ODA3LCAwLjc1Mjk0NSIsIFwKLSAgICAgICAgICAiMC4wMjUxNTEsIDAuMTM4MjY0LCAwLjI1NDI3LCAwLjMzNzMyMSwgMC40NzA0MzEsIDAuNTg2ODM5LCAwLjc1MyIsIFwKLSAgICAgICAgICAiMC4wMjUxOCwgMC4xMzgzNTgsIDAuMjUzOTc1LCAwLjMzNzAwOCwgMC40NzAxODgsIDAuNTg2ODcxLCAwLjc1MjkzNSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwMTQzNiwgMC4xNTU4ODQsIDAuMjA5OTI3LCAwLjI0ODU1LCAwLjMxMDM0NCwgMC4zNjQzNjIsIDAuNDQxNzAyIiwgXAotICAgICAgICAgICIwLjEwOTU5MSwgMC4xNjQwNTQsIDAuMjE4MTAyLCAwLjI1NjczNywgMC4zMTg1MDcsIDAuMzcyNTYsIDAuNDQ5ODYiLCBcCi0gICAgICAgICAgIjAuMTE4Mzk4LCAwLjE3Mjg3NCwgMC4yMjY5MjEsIDAuMjY1NTIyLCAwLjMyNzMxMywgMC4zODEzOTUsIDAuNDU4Njg0IiwgXAotICAgICAgICAgICIwLjEyNTQzNywgMC4xNzk5MiwgMC4yMzM5NjIsIDAuMjcyNTg3LCAwLjMzNDM1LCAwLjM4ODQyMywgMC40NjU2NiIsIFwKLSAgICAgICAgICAiMC4xMzA5MjksIDAuMTg1MzkzLCAwLjIzOTQzOCwgMC4yNzgwNTYsIDAuMzM5ODI2LCAwLjM5MzkyMiwgMC40NzEyMTUiLCBcCi0gICAgICAgICAgIjAuMTM4NDkxLCAwLjE5Mjk1MywgMC4yNDcsIDAuMjg1NjE0LCAwLjM0NzM4OSwgMC40MDE0ODcsIDAuNDc4NzY0IiwgXAotICAgICAgICAgICIwLjE0NDE3NCwgMC4xOTg2MzUsIDAuMjUyNzAzLCAwLjI5MTMwNSwgMC4zNTMwNjksIDAuNDA3MTYsIDAuNDg0NDQ4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDI0Mjk5LCAwLjEzMzY5MywgMC4yNDU0MjIsIDAuMzI1NDM0LCAwLjQ1MzY5MiwgMC41NjcxNzcsIDAuNzI2Njk1IiwgXAotICAgICAgICAgICIwLjAyNDI5LCAwLjEzMzc3NCwgMC4yNDU4ODEsIDAuMzI1NzY0LCAwLjQ1NDgyOCwgMC41NjY3ODYsIDAuNzI2NzUiLCBcCi0gICAgICAgICAgIjAuMDI0MjgyLCAwLjEzMzY4NCwgMC4yNDU2NjksIDAuMzI2MTEyLCAwLjQ1NDc5MiwgMC41NjY3MTMsIDAuNzI2NzM5IiwgXAotICAgICAgICAgICIwLjAyNDI4LCAwLjEzMzU4MSwgMC4yNDU3MDQsIDAuMzI1NjA2LCAwLjQ1NDcxOCwgMC41NjczMTEsIDAuNzI3MDc2IiwgXAotICAgICAgICAgICIwLjAyNDMwNywgMC4xMzM3ODQsIDAuMjQ1Njc5LCAwLjMyNjIzOCwgMC40NTQ3MTUsIDAuNTY2MzQxLCAwLjcyNjY5IiwgXAotICAgICAgICAgICIwLjAyNDMzOCwgMC4xMzM2NzUsIDAuMjQ1NjkxLCAwLjMyNTgzLCAwLjQ1NDcsIDAuNTY2NDIzLCAwLjcyNjczNyIsIFwKLSAgICAgICAgICAiMC4wMjQyODYsIDAuMTMzNzAyLCAwLjI0NTY1OCwgMC4zMjU5NCwgMC40NTQ2MjksIDAuNTY2NzEzLCAwLjcyNjc4NyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogY2xlYXI7Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk2MDksIDAuMTUwNjE1LCAwLjIwNDY1NywgMC4yNDMyODksIDAuMzA1MDY2LCAwLjM1OTExMiwgMC40MzYzOTEiLCBcCi0gICAgICAgICAgIjAuMTA0MDAzLCAwLjE1ODUwMywgMC4yMTI1NDMsIDAuMjUxMTk2LCAwLjMxMjg4LCAwLjM2NzA4MywgMC40NDQyNjkiLCBcCi0gICAgICAgICAgIjAuMTEzODgzLCAwLjE2ODM4NSwgMC4yMjI0MDYsIDAuMjYxMDA2LCAwLjMyMjg2NCwgMC4zNzY5MTksIDAuNDU0MDA3IiwgXAotICAgICAgICAgICIwLjEyMjUyNiwgMC4xNzcwMzMsIDAuMjMxMDY5LCAwLjI2OTczMSwgMC4zMzE0ODUsIDAuMzg1NjE2LCAwLjQ2Mjg1MiIsIFwKLSAgICAgICAgICAiMC4xMjk3NzEsIDAuMTg0Mjk2LCAwLjIzODMzMiwgMC4yNzY5NzksIDAuMzM4NzkxLCAwLjM5MjgwNSwgMC40NzAwNTMiLCBcCi0gICAgICAgICAgIjAuMTM5NDUzLCAwLjE5MzkzOSwgMC4yNDc5OTUsIDAuMjg2NjAyLCAwLjM0ODQyNCwgMC40MDI0NzQsIDAuNDc5NyIsIFwKLSAgICAgICAgICAiMC4xNDY0NSwgMC4yMDA5MzYsIDAuMjU0OTg1LCAwLjI5MzYwOCwgMC4zNTUzOSwgMC40MDk0NDUsIDAuNDg2Njg2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDI0MzE5LCAwLjEzMzc3LCAwLjI0NTkxOCwgMC4zMjU4OTMsIDAuNDU0NzM1LCAwLjU2NzI1MywgMC43MjY4NzQiLCBcCi0gICAgICAgICAgIjAuMDI0MzA4LCAwLjEzMzY4NywgMC4yNDU4ODcsIDAuMzI1OTA3LCAwLjQ1NDc1NywgMC41NjczMDUsIDAuNzI4MDE2IiwgXAotICAgICAgICAgICIwLjAyNDMxNCwgMC4xMzM3ODYsIDAuMjQ1ODg0LCAwLjMyNjA5NywgMC40NTQ4MDgsIDAuNTY3MzA1LCAwLjcyNzk1OCIsIFwKLSAgICAgICAgICAiMC4wMjQzMzEsIDAuMTMzNzgyLCAwLjI0NTk1LCAwLjMyNTczOCwgMC40NTQ4NCwgMC41NjY0MzYsIDAuNzI3OTk5IiwgXAotICAgICAgICAgICIwLjAyNDMwOSwgMC4xMzM3OTEsIDAuMjQ1OTI5LCAwLjMyNjI5MSwgMC40NTQ3NzgsIDAuNTY3MjkyLCAwLjcyNzk5OCIsIFwKLSAgICAgICAgICAiMC4wMjQzNzksIDAuMTMzNzI1LCAwLjI0NTkyNywgMC4zMjYxOTYsIDAuNDU0MzgsIDAuNTY3MjI4LCAwLjcyNzg3OCIsIFwKLSAgICAgICAgICAiMC4wMjQzNDQsIDAuMTMzNzMyLCAwLjI0NTkzMSwgMC4zMjYyMzQsIDAuNDU0MjU0LCAwLjU2NzE5LCAwLjcyNzg2MiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwOTcwNCwgMC4wMDk4MzMsIDAuMDA5ODU3LCAwLjAwOTg2NCwgMC4wMDk4NzMsIDAuMDA5ODczLCAwLjAwOTg3NiIsIFwKLSAgICAgICAgICAiMC4wMDk3MDUsIDAuMDA5ODM2LCAwLjAwOTg2LCAwLjAwOTg2NywgMC4wMDk4NzQsIDAuMDA5ODc3LCAwLjAwOTg4IiwgXAotICAgICAgICAgICIwLjAwOTc1MiwgMC4wMDk4ODQsIDAuMDA5OTA3LCAwLjAwOTkxNSwgMC4wMDk5MjEsIDAuMDA5OTI1LCAwLjAwOTkyOCIsIFwKLSAgICAgICAgICAiMC4wMDk4MTUsIDAuMDA5OTQsIDAuMDA5OTY1LCAwLjAwOTk3LCAwLjAwOTk3NywgMC4wMDk5OCwgMC4wMDk5ODEiLCBcCi0gICAgICAgICAgIjAuMDA5ODgyLCAwLjAxMDAxNSwgMC4wMTAwMzgsIDAuMDEwMDQ2LCAwLjAxMDA1MiwgMC4wMTAwNTUsIDAuMDEwMDU4IiwgXAotICAgICAgICAgICIwLjAwOTk5OSwgMC4wMTAxMzYsIDAuMDEwMTUzLCAwLjAxMDE3MiwgMC4wMTAxNjcsIDAuMDEwMTc5LCAwLjAxMDE3MyIsIFwKLSAgICAgICAgICAiMC4wMTAwOTQsIDAuMDEwMjE4LCAwLjAxMDI0MywgMC4wMTAyNDcsIDAuMDEwMjU3LCAwLjAxMDI1NywgMC4wMTAyNiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA5NzkzLCAwLjAwOTkzMywgMC4wMDk5NTYsIDAuMDA5OTYxLCAwLjAwOTk2NywgMC4wMDk5NywgMC4wMDk5NzIiLCBcCi0gICAgICAgICAgIjAuMDA5NzkxLCAwLjAwOTkzMiwgMC4wMDk5NTUsIDAuMDA5OTYxLCAwLjAwOTk2NywgMC4wMDk5NywgMC4wMDk5NzIiLCBcCi0gICAgICAgICAgIjAuMDA5ODMxLCAwLjAwOTk3MiwgMC4wMDk5OTQsIDAuMDEwMDAxLCAwLjAxMDAwNywgMC4wMTAwMSwgMC4wMTAwMTIiLCBcCi0gICAgICAgICAgIjAuMDA5ODcxLCAwLjAxMDAxNCwgMC4wMTAwMzYsIDAuMDEwMDQzLCAwLjAxMDA0OSwgMC4wMTAwNTUsIDAuMDEwMDUzIiwgXAotICAgICAgICAgICIwLjAwOTkzNywgMC4wMTAwODEsIDAuMDEwMTAzLCAwLjAxMDExLCAwLjAxMDExNiwgMC4wMTAxMTksIDAuMDEwMTIyIiwgXAotICAgICAgICAgICIwLjAxMDAzOSwgMC4wMTAxNzgsIDAuMDEwMjA0LCAwLjAxMDIxMSwgMC4wMTAyMTgsIDAuMDEwMjE5LCAwLjAxMDIyMyIsIFwKLSAgICAgICAgICAiMC4wMTAxMzYsIDAuMDEwMjc2LCAwLjAxMDI5NywgMC4wMTAzMDMsIDAuMDEwMzExLCAwLjAxMDMxMywgMC4wMTAzMTUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTAyMjIsIDAuMDEwMzU5LCAwLjAxMDM4MSwgMC4wMTAzOSwgMC4wMTAzOTYsIDAuMDEwMzk3LCAwLjAxMDQwMiIsIFwKLSAgICAgICAgICAiMC4wMTAyMSwgMC4wMTAzNDksIDAuMDEwMzcxLCAwLjAxMDM3NywgMC4wMTAzODQsIDAuMDEwMzg4LCAwLjAxMDM4NSIsIFwKLSAgICAgICAgICAiMC4wMTAyMTksIDAuMDEwMzU5LCAwLjAxMDM4MSwgMC4wMTAzODgsIDAuMDEwMzk0LCAwLjAxMDM5OCwgMC4wMTA0IiwgXAotICAgICAgICAgICIwLjAxMDI0OCwgMC4wMTAzOSwgMC4wMTA0MTMsIDAuMDEwNDIsIDAuMDEwNDI3LCAwLjAxMDQzLCAwLjAxMDQzMiIsIFwKLSAgICAgICAgICAiMC4wMTAzLCAwLjAxMDQ0LCAwLjAxMDQ2NCwgMC4wMTA0NzIsIDAuMDEwNDc4LCAwLjAxMDQ4MiwgMC4wMTA0ODkiLCBcCi0gICAgICAgICAgIjAuMDEwMzk4LCAwLjAxMDUzMSwgMC4wMTA1NjEsIDAuMDEwNTY5LCAwLjAxMDU3NSwgMC4wMTA1NzgsIDAuMDEwNTgxIiwgXAotICAgICAgICAgICIwLjAxMDQ4NywgMC4wMTA2MTcsIDAuMDEwNjQxLCAwLjAxMDY0OSwgMC4wMTA2NTIsIDAuMDEwNjU4LCAwLjAxMDY2MiIpOwotICAgICAgfQotICAgICAgcmlzZV9wb3dlcihzY2FsYXIpIHsKLSAgICAgICAgdmFsdWVzKCIwIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTTikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNDU4MTQ7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxMzU3Nzk7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNDU4MTQ7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNTkzLCAwLjAwMDU5MiwgMC4wMDA1OTIsIDAuMDAwNTkyLCAwLjAwMDU5MiwgMC4wMDA1OTIsIDAuMDAwNTkyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNjEyLCAwLjAwMDYsIDAuMDAwNTk2LCAwLjAwMDU5NSwgMC4wMDA1OTQsIDAuMDAwNTk0LCAwLjAwMDU5NCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQiOwotICAgICAgc2RmX2NvbmQgOiAiRCA9PSAxJ2IwIjsKLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjA5NjA5LCAwLjEwNDAwMywgMC4xMTM4ODMsIDAuMTIyNTI2LCAwLjEyOTc2OSwgMC4xMzk0NTMsIDAuMTQ2NDUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiByZWNvdmVyeV9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEIjsKLSAgICAgIHNkZl9jb25kIDogIkQgPT0gMSdiMCI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQocmVjb3ZlcnlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEyNSwgMC4wMDEyNSwgLTAuMDExMjUsIC0wLjAxNzUsIC0wLjAyMzc1LCAtMC4wMjc1LCAtMC4wMzYyNSIsIFwKLSAgICAgICAgICAiMC4wMTc1LCAwLjAwNjI1LCAwLCAtMC4wMTI1LCAtMC4wMTI1LCAtMC4wMjI1LCAtMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4wMjM3NSwgMC4wMTI1LCAwLjAwNjI1LCAwLCAtMC4wMDYyNSwgLTAuMDE2MjUsIC0wLjAxODc1IiwgXAotICAgICAgICAgICIwLjAzLCAwLjAyNSwgMC4wMTI1LCAwLjAwNjI1LCAwLCAtMC4wMSwgLTAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4wMzYyNSwgMC4wMzEyNSwgMC4wMTg3NSwgMC4wMTI1LCAwLjAwNjI1LCAwLjAwMjUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICIwLjA1MjUsIDAuMDQxMjUsIDAuMDM1LCAwLjAyMjUsIDAuMDE2MjUsIDAuMDEyNSwgMC4wMDM3NSIsIFwKLSAgICAgICAgICAiMC4wNjEyNSwgMC4wNTYyNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyMTI1LCAwLjAxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiByZW1vdmFsX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUQiOwotICAgICAgc2RmX2NvbmQgOiAiRCA9PSAxJ2IwIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChyZW1vdmFsX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxODc1LCAwLjAyMzc1LCAwLjAzLCAwLjA0MjUsIDAuMDQyNSwgMC4wNTI1LCAwLjA1NSIsIFwKLSAgICAgICAgICAiMC4wMDc1LCAwLjAxODc1LCAwLjAyNSwgMC4wMzEyNSwgMC4wMzc1LCAwLjA0NzUsIDAuMDUiLCBcCi0gICAgICAgICAgIjAuMDAxMjUsIDAuMDEyNSwgMC4wMTg3NSwgMC4wMjUsIDAuMDMxMjUsIDAuMDQxMjUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIi0wLjAwNSwgMC4wMDYyNSwgMC4wMTI1LCAwLjAxODc1LCAwLjAyNSwgMC4wMjg3NSwgMC4wMzc1IiwgXAotICAgICAgICAgICItMC4wMTEyNSwgMCwgMC4wMDYyNSwgMC4wMTI1LCAwLjAxODc1LCAwLjAyODc1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wMTUsIC0wLjAxLCAtMC4wMDM3NSwgMC4wMDg3NSwgMC4wMDg3NSwgMC4wMTg3NSwgMC4wMjEyNSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLCAwLjAwNjI1LCAwLjAxLCAwLjAxODc1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBERkZTWEwgKgotICogLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChERkZTWEwpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC44OTgxNTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBmZiAoTjM1LFFCSU5UKSB7Ci0gICAgbmV4dF9zdGF0ZSA6ICJEIjsKLSAgICBjbG9ja2VkX29uIDogIkNLIjsKLSAgICBwcmVzZXQgOiAiKCFTTikiOwotICB9Ci0gIHBpbihDSykgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjU5NTQ7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjU5NTQ7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjU5NTQ7Ci0gICAgY2xvY2sgOiB0cnVlOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzAzOCwgMC4wMDMwMzUsIDAuMDAzMTI3LCAwLjAwMzIwNCwgMC4wMDMzMjMsIDAuMDAzNTU1LCAwLjAwMzc1MyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwOTE1NywgMC4wMDkxNjEsIDAuMDA5MjIyLCAwLjAwOTMyNSwgMC4wMDk0NTMsIDAuMDA5NjEzLCAwLjAwOTc5NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQmU04iOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4xMzkxNDIsIDAuMTQ3Mzc3LCAwLjE1NjQxOSwgMC4xNjM0NTMsIDAuMTY5MDkzLCAwLjE3NjU3MywgMC4xODIxNzQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjA4MTg3NywgMC4wODk4OTksIDAuMDk4ODc2LCAwLjEwNTUwNiwgMC4xMTA3MjUsIDAuMTE3NzA3LCAwLjEyMjYyOSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjc0NDMxOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDY3MzQ5NDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2NzQ0MzE7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzNTAyLCAwLjAwMzQ3MiwgMC4wMDM0OTYsIDAuMDAzNTUzLCAwLjAwMzYwNywgMC4wMDM3NDUsIDAuMDAzOTA3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzOTY3LCAwLjAwMzk0OCwgMC4wMDM5NywgMC4wMDQwMTksIDAuMDA0MDkzLCAwLjAwNDIyNCwgMC4wMDQzNTQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiU04iOwotICAgICAgc2RmX2NvbmQgOiAiU04gPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDEyNSwgLTAuMDA3NSwgLTAuMDAxMjUsIC0wLjAwMTI1LCAwLjAwNSwgMC4wMDg3NSwgMC4wMTEyNSIsIFwKLSAgICAgICAgICAiLTAuMDE3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIC0wLjAwNjI1LCAwLCAwLjAwMzc1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAxMjUsIC0wLjAwNjI1LCAtMC4wMDI1LCAwIiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDE4NzUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMTI1LCAtMC4wMDg3NSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDE1LCAtMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wNCwgLTAuMDI4NzUsIC0wLjAyODc1LCAtMC4wMjI1LCAtMC4wMjI1LCAtMC4wMTg3NSwgLTAuMDE2MjUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAyNSwgLTAuMDIxMjUsIC0wLjAxODc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTI1LCAwLjAxNzUsIDAuMDIzNzUsIDAuMDMsIDAuMDM2MjUsIDAuMDQsIDAuMDQ4NzUiLCBcCi0gICAgICAgICAgIjAuMDAxMjUsIDAuMDEyNSwgMC4wMTg3NSwgMC4wMjUsIDAuMDMxMjUsIDAuMDM1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjAwMTI1LCAwLjAwNjI1LCAwLjAxODc1LCAwLjAyNSwgMC4wMjUsIDAuMDM1LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjAwNSwgMC4wMDYyNSwgMC4wMTI1LCAwLjAxODc1LCAwLjAyNSwgMC4wMjg3NSwgMC4wMzc1IiwgXAotICAgICAgICAgICItMC4wMDUsIDAsIDAuMDEyNSwgMC4wMTg3NSwgMC4wMTg3NSwgMC4wMjg3NSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDA4NzUsIC0wLjAwMzc1LCAwLjAwODc1LCAwLjAxNSwgMC4wMTUsIDAuMDI1LCAwLjAyNzUiLCBcCi0gICAgICAgICAgIi0wLjAxMTI1LCAtMC4wMDYyNSwgMC4wMDYyNSwgMC4wMTI1LCAwLjAxODc1LCAwLjAyMjUsIDAuMDI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJTTiA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzEyNSwgMC4wMjYyNSwgMC4wMiwgMC4wMTM3NSwgMC4wMTM3NSwgMC4wMSwgMC4wMDc1IiwgXAotICAgICAgICAgICIwLjA0MjUsIDAuMDMxMjUsIDAuMDI1LCAwLjAxODc1LCAwLjAxODc1LCAwLjAxNSwgMC4wMTI1IiwgXAotICAgICAgICAgICIwLjA0ODc1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDMxMjUsIDAuMDI1LCAwLjAyMTI1LCAwLjAxODc1IiwgXAotICAgICAgICAgICIwLjA1NSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAzMTI1LCAwLjAyNzUsIDAuMDI1IiwgXAotICAgICAgICAgICIwLjA2MTI1LCAwLjA1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDM3NSwgMC4wMzM3NSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4wNjUsIDAuMDUzNzUsIDAuMDQ3NSwgMC4wNDc1LCAwLjA0MTI1LCAwLjAzNzUsIDAuMDM1IiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNSwgMC4wNDM3NSwgMC4wNCwgMC4wMzc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM3NSwgMC4wMjYyNSwgMC4wMiwgMC4wMTM3NSwgMC4wMDc1LCAtMC4wMDI1LCAtMC4wMDUiLCBcCi0gICAgICAgICAgIjAuMDQyNSwgMC4wMzEyNSwgMC4wMjUsIDAuMDE4NzUsIDAuMDEyNSwgMC4wMDI1LCAwIiwgXAotICAgICAgICAgICIwLjA0ODc1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDI1LCAwLjAxODc1LCAwLjAwODc1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICIwLjA1NSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMTUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4wNjEyNSwgMC4wNSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMjEyNSwgMC4wMTI1IiwgXAotICAgICAgICAgICIwLjA2NSwgMC4wNTM3NSwgMC4wNDc1LCAwLjA0MTI1LCAwLjAzNSwgMC4wMjUsIDAuMDIyNSIsIFwKLSAgICAgICAgICAiMC4wNjc1LCAwLjA2MjUsIDAuMDUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMjc1LCAwLjAyNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjIwMTAyNTsKLSAgICBmdW5jdGlvbiA6ICJOMzUiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5vbl91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcmlzaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEyMDU2MywgMC4xMzEwNDcsIDAuMjI2MTQzLCAwLjM4Mzc2MSwgMC41NDEzNzEsIDAuOTEyODkzLCAxLjEyMDEzIiwgXAotICAgICAgICAgICIwLjEyODc2OCwgMC4xMzkyNzQsIDAuMjMzOTYyLCAwLjM5MTkwMiwgMC41NTEzOTQsIDAuOTIxMjUxLCAxLjEzMjM2IiwgXAotICAgICAgICAgICIwLjEzNzY3LCAwLjE0ODE3NSwgMC4yNDMwMTQsIDAuNDAwNzc1LCAwLjU2MDMzNiwgMC45MjY3NjQsIDEuMTM3MiIsIFwKLSAgICAgICAgICAiMC4xNDQ4NzMsIDAuMTU1MzkxLCAwLjI1MDQzNCwgMC40MDc4ODEsIDAuNTY1Njk5LCAwLjkzNDA4OCwgMS4xNDgzNiIsIFwKLSAgICAgICAgICAiMC4xNTA0NTksIDAuMTYwOTM4LCAwLjI1NjA0MiwgMC40MTM2NTgsIDAuNTcxMzAxLCAwLjkzOTUwNSwgMS4xNDk4NSIsIFwKLSAgICAgICAgICAiMC4xNTgxMzMsIDAuMTY4NzM4LCAwLjI2MzQ3MSwgMC40MjEzMTgsIDAuNTc5MzY1LCAwLjk0NzIzOSwgMS4xNTc3NCIsIFwKLSAgICAgICAgICAiMC4xNjM2MzgsIDAuMTc0NTUxLCAwLjI2OTIyOCwgMC40MjcxNSwgMC41ODUwNDQsIDAuOTU2MjAyLCAxLjE2MzI0Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExNzkxMiwgMC4xMzk2MTIsIDAuMzM5MjUsIDAuNjcxNjg3LCAxLjAwMzE3LCAxLjc4MzEzLCAyLjIyNzk3IiwgXAotICAgICAgICAgICIwLjExNzkxOSwgMC4xMzk4OTIsIDAuMzM4NTA2LCAwLjY3MTQ2NSwgMS4wMDU0OSwgMS43ODMwNiwgMi4yMjY5IiwgXAotICAgICAgICAgICIwLjExNzkxNSwgMC4xMzk4OSwgMC4zMzk1MjIsIDAuNjcyNjA0LCAxLjAwNTIxLCAxLjc4MjI4LCAyLjIyNjQ5IiwgXAotICAgICAgICAgICIwLjExNzkxNCwgMC4xMzk4ODUsIDAuMzM5NDI0LCAwLjY3MTk2NywgMS4wMDQ4NiwgMS43ODI1MiwgMi4yMjg5NCIsIFwKLSAgICAgICAgICAiMC4xMTc5MiwgMC4xMzk2NzYsIDAuMzM5NTI1LCAwLjY3MjQ0OCwgMS4wMDUyNCwgMS43NzkzNywgMi4yMjY4MiIsIFwKLSAgICAgICAgICAiMC4xMTc3MTcsIDAuMTM5ODEyLCAwLjMzOTEwNywgMC42NzEyNjIsIDEuMDA0NzYsIDEuNzgxODcsIDIuMjIxODgiLCBcCi0gICAgICAgICAgIjAuMTE3NzI1LCAwLjE0MDI2MiwgMC4zMzk1NywgMC42NzI3MzgsIDEuMDA1NzcsIDEuNzg1LCAyLjIyNDAyIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEyOTAwNCwgMC4xMzg2MzMsIDAuMjI1Njc4LCAwLjM3MDYwNywgMC41MTU1MTksIDAuODUzNTc5LCAxLjA0NTk5IiwgXAotICAgICAgICAgICIwLjEzNzI1OCwgMC4xNDY4OTEsIDAuMjMzODk5LCAwLjM3OTI4OCwgMC41MjM3NzUsIDAuODYxNzk2LCAxLjA1NDI5IiwgXAotICAgICAgICAgICIwLjE0NjI4LCAwLjE1NTkzNiwgMC4yNDI5NDMsIDAuMzg4MDMzLCAwLjUzMjgwMywgMC44NzA2MjgsIDEuMDYzNzEiLCBcCi0gICAgICAgICAgIjAuMTUzMzE2LCAwLjE2Mjk0NiwgMC4yNDk5OTYsIDAuMzk0OTIyLCAwLjUzOTQxNywgMC44Nzc5MzYsIDEuMDcwNDQiLCBcCi0gICAgICAgICAgIjAuMTU4OTUxLCAwLjE2ODU2MiwgMC4yNTUzNDYsIDAuNDAwNjI5LCAwLjU0NTU4NywgMC44ODM5NTMsIDEuMDc2NDQiLCBcCi0gICAgICAgICAgIjAuMTY2NDI1LCAwLjE3NjA0MSwgMC4yNjMwMzMsIDAuNDA4MDkyLCAwLjU1MjU1OCwgMC44OTExMDgsIDEuMDg0MTgiLCBcCi0gICAgICAgICAgIjAuMTcxOTc1LCAwLjE4MTYwMiwgMC4yNjg3NTIsIDAuNDEzNywgMC41NTkwNzUsIDAuODk1NzUyLCAxLjA4OTI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwNjUwNywgMC4xMjYxOCwgMC4zMDQzNzUsIDAuNjAwMjc4LCAwLjkwMzEwOCwgMS41OTYxOCwgMS45OTI5NiIsIFwKLSAgICAgICAgICAiMC4xMDY4OTYsIDAuMTI2MTQ2LCAwLjMwMzcyNiwgMC42MDE0MTIsIDAuOTAzMDksIDEuNTk1NjgsIDEuOTkxNDkiLCBcCi0gICAgICAgICAgIjAuMTA2NiwgMC4xMjYxNTUsIDAuMzA0NTU5LCAwLjYwMjg5NiwgMC45MDMxMDEsIDEuNTkwMDgsIDEuOTg1MzEiLCBcCi0gICAgICAgICAgIjAuMTA2NjU4LCAwLjEyNjIwMiwgMC4zMDM2ODEsIDAuNjA0MjcsIDAuODk4NzEzLCAxLjU5NjAyLCAxLjk4ODA0IiwgXAotICAgICAgICAgICIwLjEwNjA5OSwgMC4xMjYyMzMsIDAuMzA0MjU5LCAwLjYwNDMwMiwgMC45MDMxMDYsIDEuNjAxODMsIDEuOTkyMzEiLCBcCi0gICAgICAgICAgIjAuMTA2NDk0LCAwLjEyNjIwNCwgMC4zMDQ5MTEsIDAuNjA0MTcsIDAuODk4ODgzLCAxLjYwMDUzLCAxLjk5MjA1IiwgXAotICAgICAgICAgICIwLjEwNTY2OSwgMC4xMjY2MDMsIDAuMzA0Nzk2LCAwLjYwNDEyOSwgMC45MDE1NTYsIDEuNTk3MTYsIDEuOTg1OTkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiU04iOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHByZXNldDsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTE5ODA0LCAwLjEzMDI4LCAwLjIyNTE0MywgMC4zODM4NDgsIDAuNTQyMzI5LCAwLjkxMTQzOCwgMS4xMjIwNyIsIFwKLSAgICAgICAgICAiMC4xMjY1ODMsIDAuMTM3MDcsIDAuMjMxODU0LCAwLjM5MDE0OSwgMC41NDkwNTIsIDAuOTE3NDE3LCAxLjEyNiIsIFwKLSAgICAgICAgICAiMC4xMzU1NzksIDAuMTQ2MDUxLCAwLjI0MTEzMSwgMC4zOTg2MTksIDAuNTU2NDA3LCAwLjkyNDYyOSwgMS4xMzUwNyIsIFwKLSAgICAgICAgICAiMC4xNDQxNTcsIDAuMTU0NjQ2LCAwLjI0OTY5OSwgMC40MDcyNTQsIDAuNTY0OTgxLCAwLjkzNDQ5NywgMS4xNDQzMyIsIFwKLSAgICAgICAgICAiMC4xNTExNzYsIDAuMTYxNjU3LCAwLjI1NjczMSwgMC40MTQyNTcsIDAuNTczNTMxLCAwLjk0MDQ3NiwgMS4xNTA2NSIsIFwKLSAgICAgICAgICAiMC4xNjA0NDgsIDAuMTcwOTEzLCAwLjI2NTk5NywgMC40MjM0OTcsIDAuNTgxNzg5LCAwLjk0OTc4NywgMS4xNTk5IiwgXAotICAgICAgICAgICIwLjE2NzEwNCwgMC4xNzc2MTMsIDAuMjcyNzE2LCAwLjQzMTE2LCAwLjU4ODUwNywgMC45NTYzMywgMS4xNjY2NyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTc4MzgsIDAuMTM5ODU0LCAwLjMzOTUzNCwgMC42NzI1MjUsIDEuMDA1NjUsIDEuNzg0NDUsIDIuMjI0OTkiLCBcCi0gICAgICAgICAgIjAuMTE3ODQyLCAwLjEzOTgzLCAwLjMzOTIyMSwgMC42NzE0MTcsIDEuMDA2NzYsIDEuNzc5MjYsIDIuMjIzMjgiLCBcCi0gICAgICAgICAgIjAuMTE3ODQyLCAwLjEzOTgxMSwgMC4zMzk3MjUsIDAuNjczMDE4LCAxLjAwNTc5LCAxLjc4MDExLCAyLjIyMzM5IiwgXAotICAgICAgICAgICIwLjExNzg1LCAwLjEzOTg0NywgMC4zMzkzMTIsIDAuNjcyOTY0LCAxLjAwNjA1LCAxLjc4NDU1LCAyLjIyNDc0IiwgXAotICAgICAgICAgICIwLjExNzg4LCAwLjEzOTU4MSwgMC4zMzk2NTgsIDAuNjcyMTQ1LCAxLjAwNzE0LCAxLjc4MjAxLCAyLjIyNjgzIiwgXAotICAgICAgICAgICIwLjExNzkwMiwgMC4xMzk3MjcsIDAuMzM5NjIsIDAuNjczMjgxLCAxLjAwNzIsIDEuNzg0MjEsIDIuMjI1NjEiLCBcCi0gICAgICAgICAgIjAuMTE3NzY5LCAwLjEzOTc1OSwgMC4zMzk1NTUsIDAuNjczMzc4LCAxLjAwNzI4LCAxLjc4MzIyLCAyLjIyNzMxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDc5NiwgMC4wMDQ3OTYsIDAuMDA0Nzk5LCAwLjAwNDc5OSwgMC4wMDQ3OTksIDAuMDA0Nzk5LCAwLjAwNDc5OSIsIFwKLSAgICAgICAgICAiMC4wMDQ3OTcsIDAuMDA0Nzk4LCAwLjAwNDc5OSwgMC4wMDQ4LCAwLjAwNDgsIDAuMDA0OCwgMC4wMDQ4IiwgXAotICAgICAgICAgICIwLjAwNDgzNywgMC4wMDQ4MzgsIDAuMDA0ODQsIDAuMDA0ODQsIDAuMDA0ODQsIDAuMDA0ODQsIDAuMDA0ODQxIiwgXAotICAgICAgICAgICIwLjAwNDg4MSwgMC4wMDQ4ODIsIDAuMDA0ODg0LCAwLjAwNDg4NCwgMC4wMDQ4ODQsIDAuMDA0ODg0LCAwLjAwNDg4NSIsIFwKLSAgICAgICAgICAiMC4wMDQ5NTIsIDAuMDA0OTUzLCAwLjAwNDk1NSwgMC4wMDQ5NTUsIDAuMDA0OTU1LCAwLjAwNDk1NiwgMC4wMDQ5NTYiLCBcCi0gICAgICAgICAgIjAuMDA1MDUzLCAwLjAwNTA0NiwgMC4wMDUwNDcsIDAuMDA1MDQ4LCAwLjAwNTA0OCwgMC4wMDUwNDksIDAuMDA1MDQ5IiwgXAotICAgICAgICAgICIwLjAwNTEzOSwgMC4wMDUxNDcsIDAuMDA1MTQsIDAuMDA1MTQxLCAwLjAwNTE0MiwgMC4wMDUxNDIsIDAuMDA1MTQyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0MTk1LCAwLjAwNDE5NiwgMC4wMDQxOTksIDAuMDA0MiwgMC4wMDQyLCAwLjAwNDIsIDAuMDA0MiIsIFwKLSAgICAgICAgICAiMC4wMDQyMDQsIDAuMDA0MjA2LCAwLjAwNDIwOCwgMC4wMDQyMDgsIDAuMDA0MjA5LCAwLjAwNDIwOSwgMC4wMDQyMDkiLCBcCi0gICAgICAgICAgIjAuMDA0MjQ1LCAwLjAwNDI0NiwgMC4wMDQyNDgsIDAuMDA0MjQ5LCAwLjAwNDI0OSwgMC4wMDQyNTEsIDAuMDA0MjQ5IiwgXAotICAgICAgICAgICIwLjAwNDMwMywgMC4wMDQzMDQsIDAuMDA0MzA2LCAwLjAwNDMwNywgMC4wMDQzMDgsIDAuMDA0MzA5LCAwLjAwNDMwOCIsIFwKLSAgICAgICAgICAiMC4wMDQzODEsIDAuMDA0MzgyLCAwLjAwNDM4NSwgMC4wMDQzODUsIDAuMDA0Mzg2LCAwLjAwNDM4NiwgMC4wMDQzODMiLCBcCi0gICAgICAgICAgIjAuMDA0NSwgMC4wMDQ1MDEsIDAuMDA0NTAyLCAwLjAwNDUwMywgMC4wMDQ0OTUsIDAuMDA0NTAzLCAwLjAwNDUwNCIsIFwKLSAgICAgICAgICAiMC4wMDQ1ODIsIDAuMDA0NTgyLCAwLjAwNDU4NSwgMC4wMDQ1ODYsIDAuMDA0NTg2LCAwLjAwNDU4NiwgMC4wMDQ1ODYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1NjQ1LCAwLjAwNTY0NSwgMC4wMDU2NDcsIDAuMDA1NjQ4LCAwLjAwNTY0OCwgMC4wMDU2NDYsIDAuMDA1NjQ4IiwgXAotICAgICAgICAgICIwLjAwNTYzNSwgMC4wMDU2MzUsIDAuMDA1NjM3LCAwLjAwNTYzOCwgMC4wMDU2MzgsIDAuMDA1NjM4LCAwLjAwNTYzOCIsIFwKLSAgICAgICAgICAiMC4wMDU2NiwgMC4wMDU2NjEsIDAuMDA1NjYzLCAwLjAwNTY2MywgMC4wMDU2NjMsIDAuMDA1NjYzLCAwLjAwNTY2NiIsIFwKLSAgICAgICAgICAiMC4wMDU3MDMsIDAuMDA1NzA0LCAwLjAwNTcwNSwgMC4wMDU3MDYsIDAuMDA1NzA2LCAwLjAwNTcwNiwgMC4wMDU3MDYiLCBcCi0gICAgICAgICAgIjAuMDA1NzY3LCAwLjAwNTc2OCwgMC4wMDU3NywgMC4wMDU3NywgMC4wMDU3NywgMC4wMDU3NywgMC4wMDU3NyIsIFwKLSAgICAgICAgICAiMC4wMDU4NywgMC4wMDU4NzEsIDAuMDA1ODcyLCAwLjAwNTg3MywgMC4wMDU4NzMsIDAuMDA1ODczLCAwLjAwNTg3MyIsIFwKLSAgICAgICAgICAiMC4wMDU5ODYsIDAuMDA1OTg5LCAwLjAwNTk4OCwgMC4wMDU5OTEsIDAuMDA1OTkxLCAwLjAwNTk5MiwgMC4wMDU5OTIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoc2NhbGFyKSB7Ci0gICAgICAgIHZhbHVlcygiMCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUU4pICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4yMDI2OTI7Ci0gICAgZnVuY3Rpb24gOiAiUUJJTlQiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5vbl91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcmlzaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEzOTE0MiwgMC4xNDk2NTYsIDAuMjQ0MzMxLCAwLjQwMjE2MiwgMC41NTk5MjUsIDAuOTI4MTk3LCAxLjEzODU2IiwgXAotICAgICAgICAgICIwLjE0NzM3NywgMC4xNTc4OTIsIDAuMjUyNTYyLCAwLjQxMDQ1MSwgMC41NjgxNTksIDAuOTM2NDI2LCAxLjE0NjgiLCBcCi0gICAgICAgICAgIjAuMTU2NDE5LCAwLjE2Njk0MSwgMC4yNjE2MTIsIDAuNDE5NDYyLCAwLjU3NzIwOCwgMC45NDU0NjMsIDEuMTU1ODciLCBcCi0gICAgICAgICAgIjAuMTYzNDUzLCAwLjE3Mzk2NywgMC4yNjg2NDQsIDAuNDI2NDQyLCAwLjU4NDI0MywgMC45NTI1MTIsIDEuMTYyODgiLCBcCi0gICAgICAgICAgIjAuMTY5MDkzLCAwLjE3OTYxNywgMC4yNzQyNDIsIDAuNDMyMTAyLCAwLjU4OTkwMywgMC45NTgwNzQsIDEuMTY4NTYiLCBcCi0gICAgICAgICAgIjAuMTc2NTczLCAwLjE4NzA4NSwgMC4yODE3NTEsIDAuNDM5NTY1LCAwLjU5NzM5NiwgMC45NjU1NDcsIDEuMTc2MDQiLCBcCi0gICAgICAgICAgIjAuMTgyMTc0LCAwLjE5MjY4OCwgMC4yODczNjksIDAuNDQ1MTY1LCAwLjYwMzA4MSwgMC45NzExNTUsIDEuMTgxNiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTYxMDMsIDAuMTM4MzA4LCAwLjMzNzI5LCAwLjY2OTU4NiwgMS4wMDI5MSwgMS43NzY2NSwgMi4yMTg3MSIsIFwKLSAgICAgICAgICAiMC4xMTYwNzMsIDAuMTM4MzA4LCAwLjMzNzQ1OSwgMC42Njk1MjgsIDEuMDAyOTEsIDEuNzc2NTksIDIuMjE4NzciLCBcCi0gICAgICAgICAgIjAuMTE2MDkxLCAwLjEzODMwOSwgMC4zMzc0MDcsIDAuNjY5MjA2LCAxLjAwMjkxLCAxLjc3NjQyLCAyLjIxOTEzIiwgXAotICAgICAgICAgICIwLjExNjA5LCAwLjEzODMwOCwgMC4zMzczMjMsIDAuNjcwNDkxLCAxLjAwMiwgMS43NzY4NCwgMi4yMTg3OCIsIFwKLSAgICAgICAgICAiMC4xMTYwNjEsIDAuMTM4MzAyLCAwLjMzNzU4NywgMC42NzA1MTcsIDEuMDAyOTQsIDEuNzc5MjYsIDIuMjE3NzQiLCBcCi0gICAgICAgICAgIjAuMTE2MTkyLCAwLjEzODMwOCwgMC4zMzc3NzYsIDAuNjcwNDU2LCAxLjAwMTk3LCAxLjc3ODY1LCAyLjIxOTU0IiwgXAotICAgICAgICAgICIwLjExNjE2NSwgMC4xMzgyMTMsIDAuMzM3Nzc1LCAwLjY3MDQzLCAxLjAwMTUyLCAxLjc3NzIzLCAyLjIxODgxIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEyMzQ0MSwgMC4xMzMwODcsIDAuMjE5ODk5LCAwLjM2NDU5MiwgMC41MDkyODMsIDAuODQ2OSwgMS4wMzk4OCIsIFwKLSAgICAgICAgICAiMC4xMzE2MzQsIDAuMTQxMjc5LCAwLjIyODA5MSwgMC4zNzI3ODcsIDAuNTE3NDMzLCAwLjg1NDk5MSwgMS4wNDgwMiIsIFwKLSAgICAgICAgICAiMC4xNDA1NDIsIDAuMTUwMTg3LCAwLjIzNjk5LCAwLjM4MTY5NywgMC41MjYzNDUsIDAuODY0MDMzLCAxLjA1Njk2IiwgXAotICAgICAgICAgICIwLjE0NzczNSwgMC4xNTczODIsIDAuMjQ0MTg5LCAwLjM4ODkxNywgMC41MzM2MTEsIDAuODcxMTYxLCAxLjA2NDExIiwgXAotICAgICAgICAgICIwLjE1MzI3LCAwLjE2MjkxOCwgMC4yNDk3MjQsIDAuMzk0NDEyLCAwLjUzOTExMSwgMC44NzY3NjIsIDEuMDY5NTgiLCBcCi0gICAgICAgICAgIjAuMTYxMDIxLCAwLjE3MDczNiwgMC4yNTc1NCwgMC40MDIyMzIsIDAuNTQ2ODkyLCAwLjg4NDQ4OCwgMS4wNzc0IiwgXAotICAgICAgICAgICIwLjE2NjUwNiwgMC4xNzY2MTUsIDAuMjYyOTc0LCAwLjQwNzY1MiwgMC41NTIzMDYsIDAuODg5ODU5LCAxLjA4MjgxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwNDAxMywgMC4xMjM0NjYsIDAuMzAyMjQ5LCAwLjU5ODkzNCwgMC44OTU1ODQsIDEuNTkxNiwgMS45ODQzMiIsIFwKLSAgICAgICAgICAiMC4xMDQwMTYsIDAuMTIzNzkxLCAwLjMwMTYyNywgMC41OTgzNTYsIDAuODk3MTQ3LCAxLjU5MTAyLCAxLjk4ODM3IiwgXAotICAgICAgICAgICIwLjEwNDAxOCwgMC4xMjM3OSwgMC4zMDIxMTksIDAuNTk4NDMyLCAwLjg5NzEyLCAxLjU4ODA4LCAxLjk4MzkxIiwgXAotICAgICAgICAgICIwLjEwMzk5OCwgMC4xMjM3ODQsIDAuMzAyMTk0LCAwLjU5ODUyMiwgMC44OTUzOCwgMS41ODc2NiwgMS45ODgxNiIsIFwKLSAgICAgICAgICAiMC4xMDQwMTQsIDAuMTIzNTg4LCAwLjMwMjIyNCwgMC41OTg4MTYsIDAuODk1NTAxLCAxLjU4Nzg3LCAxLjk4NDQ2IiwgXAotICAgICAgICAgICIwLjEwMzg5LCAwLjEyMzgwNiwgMC4zMDE4MTYsIDAuNTk5MDI4LCAwLjg5NTk0MSwgMS41ODg0NiwgMS45ODQ0NSIsIFwKLSAgICAgICAgICAiMC4xMDM4MDgsIDAuMTI0MTE3LCAwLjMwMjI1MiwgMC41OTk1MTIsIDAuODk1OTAzLCAxLjU5MDg3LCAxLjk4NTQ3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiBjbGVhcjsKLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTIyODI2LCAwLjEzMjQ3NiwgMC4yMTkyODUsIDAuMzYzOTkyLCAwLjUwODY2NSwgMC44NDYxNjYsIDEuMDM5MSIsIFwKLSAgICAgICAgICAiMC4xMjk1NjksIDAuMTM5MjA5LCAwLjIyNjAyNSwgMC4zNzA2MywgMC41MTU0MTYsIDAuODUyNzUzLCAxLjA0NTg2IiwgXAotICAgICAgICAgICIwLjEzODYxMSwgMC4xNDgyNTgsIDAuMjM1MDY5LCAwLjM3OTc2MSwgMC41MjQ0MzQsIDAuODYyMDE0LCAxLjA1NDkxIiwgXAotICAgICAgICAgICIwLjE0NzExMSwgMC4xNTY3NTIsIDAuMjQzNTY2LCAwLjM4ODI1LCAwLjUzMjkzNiwgMC44NzA0NDksIDEuMDYzMzciLCBcCi0gICAgICAgICAgIjAuMTU0MDUyLCAwLjE2MzcsIDAuMjUwNTA4LCAwLjM5NTE5MywgMC41Mzk3OTQsIDAuODc3NDMyLCAxLjA3MDM1IiwgXAotICAgICAgICAgICIwLjE2MzM0NSwgMC4xNzI5OTEsIDAuMjU5OCwgMC40MDQ0OCwgMC41NDkxMzUsIDAuODg2NzE1LCAxLjA3OTY0IiwgXAotICAgICAgICAgICIwLjE3MDA5OCwgMC4xNzk3NTIsIDAuMjY2NTY3LCAwLjQxMTIyNywgMC41NTU4OTksIDAuODkzNDg4LCAxLjA4NjM5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwNDAxOCwgMC4xMjM3OTIsIDAuMzAyMjQyLCAwLjU5OTg3MywgMC44OTczMywgMS41OTEyOCwgMS45ODgxMSIsIFwKLSAgICAgICAgICAiMC4xMDQwMzYsIDAuMTIzNzk4LCAwLjMwMjIzMywgMC41OTg4NzMsIDAuODk3Mzc3LCAxLjU4Njg4LCAxLjk4MTU3IiwgXAotICAgICAgICAgICIwLjEwNDAxNywgMC4xMjM4LCAwLjMwMjIsIDAuNTk5ODY5LCAwLjg5NzMxMSwgMS41ODczMSwgMS45ODE2NSIsIFwKLSAgICAgICAgICAiMC4xMDQwMTUsIDAuMTIzNzgzLCAwLjMwMjI5NCwgMC41OTk3MjUsIDAuODk3NDM3LCAxLjU5MDY5LCAxLjk4NzQ2IiwgXAotICAgICAgICAgICIwLjEwNDAyMywgMC4xMjM2NTQsIDAuMzAyMjQsIDAuNTk4NTAzLCAwLjg5NzE2NSwgMS41ODg2MywgMS45ODQ3OSIsIFwKLSAgICAgICAgICAiMC4xMDQwMjIsIDAuMTIzNjc2LCAwLjMwMjI3MiwgMC41OTk3MTUsIDAuODk3NDM0LCAxLjU4OTQyLCAxLjk4NDYiLCBcCi0gICAgICAgICAgIjAuMTAzNzk3LCAwLjEyMzYyNCwgMC4zMDIyODgsIDAuNTk5NzY4LCAwLjg5NzMwMywgMS41ODk3LCAxLjk4NTkxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDE5NSwgMC4wMDQxOTYsIDAuMDA0MTk5LCAwLjAwNDIsIDAuMDA0MiwgMC4wMDQyLCAwLjAwNDIiLCBcCi0gICAgICAgICAgIjAuMDA0MjA0LCAwLjAwNDIwNiwgMC4wMDQyMDgsIDAuMDA0MjA4LCAwLjAwNDIwOSwgMC4wMDQyMDksIDAuMDA0MjA5IiwgXAotICAgICAgICAgICIwLjAwNDI0NSwgMC4wMDQyNDYsIDAuMDA0MjQ4LCAwLjAwNDI0OSwgMC4wMDQyNDksIDAuMDA0MjUxLCAwLjAwNDI0OSIsIFwKLSAgICAgICAgICAiMC4wMDQzMDMsIDAuMDA0MzA0LCAwLjAwNDMwNiwgMC4wMDQzMDcsIDAuMDA0MzA4LCAwLjAwNDMwOSwgMC4wMDQzMDgiLCBcCi0gICAgICAgICAgIjAuMDA0MzgxLCAwLjAwNDM4MiwgMC4wMDQzODUsIDAuMDA0Mzg1LCAwLjAwNDM4NiwgMC4wMDQzODYsIDAuMDA0MzgzIiwgXAotICAgICAgICAgICIwLjAwNDUsIDAuMDA0NTAxLCAwLjAwNDUwMiwgMC4wMDQ1MDMsIDAuMDA0NDk1LCAwLjAwNDUwMywgMC4wMDQ1MDQiLCBcCi0gICAgICAgICAgIjAuMDA0NTgyLCAwLjAwNDU4MiwgMC4wMDQ1ODUsIDAuMDA0NTg2LCAwLjAwNDU4NiwgMC4wMDQ1ODYsIDAuMDA0NTg2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0Nzk2LCAwLjAwNDc5NiwgMC4wMDQ3OTksIDAuMDA0Nzk5LCAwLjAwNDc5OSwgMC4wMDQ3OTksIDAuMDA0Nzk5IiwgXAotICAgICAgICAgICIwLjAwNDc5NywgMC4wMDQ3OTgsIDAuMDA0Nzk5LCAwLjAwNDgsIDAuMDA0OCwgMC4wMDQ4LCAwLjAwNDgiLCBcCi0gICAgICAgICAgIjAuMDA0ODM3LCAwLjAwNDgzOCwgMC4wMDQ4NCwgMC4wMDQ4NCwgMC4wMDQ4NCwgMC4wMDQ4NCwgMC4wMDQ4NDEiLCBcCi0gICAgICAgICAgIjAuMDA0ODgxLCAwLjAwNDg4MiwgMC4wMDQ4ODQsIDAuMDA0ODg0LCAwLjAwNDg4NCwgMC4wMDQ4ODQsIDAuMDA0ODg1IiwgXAotICAgICAgICAgICIwLjAwNDk1MiwgMC4wMDQ5NTMsIDAuMDA0OTU1LCAwLjAwNDk1NSwgMC4wMDQ5NTUsIDAuMDA0OTU2LCAwLjAwNDk1NiIsIFwKLSAgICAgICAgICAiMC4wMDUwNTMsIDAuMDA1MDQ2LCAwLjAwNTA0NywgMC4wMDUwNDgsIDAuMDA1MDQ4LCAwLjAwNTA0OSwgMC4wMDUwNDkiLCBcCi0gICAgICAgICAgIjAuMDA1MTM5LCAwLjAwNTE0NywgMC4wMDUxNCwgMC4wMDUxNDEsIDAuMDA1MTQyLCAwLjAwNTE0MiwgMC4wMDUxNDIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1NjQ1LCAwLjAwNTY0NSwgMC4wMDU2NDcsIDAuMDA1NjQ4LCAwLjAwNTY0OCwgMC4wMDU2NDYsIDAuMDA1NjQ4IiwgXAotICAgICAgICAgICIwLjAwNTYzNSwgMC4wMDU2MzUsIDAuMDA1NjM3LCAwLjAwNTYzOCwgMC4wMDU2MzgsIDAuMDA1NjM4LCAwLjAwNTYzOCIsIFwKLSAgICAgICAgICAiMC4wMDU2NiwgMC4wMDU2NjEsIDAuMDA1NjYzLCAwLjAwNTY2MywgMC4wMDU2NjMsIDAuMDA1NjYzLCAwLjAwNTY2NiIsIFwKLSAgICAgICAgICAiMC4wMDU3MDMsIDAuMDA1NzA0LCAwLjAwNTcwNSwgMC4wMDU3MDYsIDAuMDA1NzA2LCAwLjAwNTcwNiwgMC4wMDU3MDYiLCBcCi0gICAgICAgICAgIjAuMDA1NzY3LCAwLjAwNTc2OCwgMC4wMDU3NywgMC4wMDU3NywgMC4wMDU3NywgMC4wMDU3NywgMC4wMDU3NyIsIFwKLSAgICAgICAgICAiMC4wMDU4NywgMC4wMDU4NzEsIDAuMDA1ODcyLCAwLjAwNTg3MywgMC4wMDU4NzMsIDAuMDA1ODczLCAwLjAwNTg3MyIsIFwKLSAgICAgICAgICAiMC4wMDU5ODYsIDAuMDA1OTg5LCAwLjAwNTk4OCwgMC4wMDU5OTEsIDAuMDA1OTkxLCAwLjAwNTk5MiwgMC4wMDU5OTIiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfcG93ZXIoc2NhbGFyKSB7Ci0gICAgICAgIHZhbHVlcygiMCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oU04pICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTA3MjMzOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDk3MjYyMzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDEwNzIzMzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA1OTMsIDAuMDAwNTkzLCAwLjAwMDU5MiwgMC4wMDA1OTIsIDAuMDAwNTkyLCAwLjAwMDU5MiwgMC4wMDA1OTIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA2MDksIDAuMDAwNTk5LCAwLjAwMDU5NiwgMC4wMDA1OTUsIDAuMDAwNTk1LCAwLjAwMDU5NSwgMC4wMDA1OTUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiU04iOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFEIjsKLSAgICAgIHNkZl9jb25kIDogIkQgPT0gMSdiMCI7Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4xMjI4MjYsIDAuMTI5NTY5LCAwLjEzODYxMSwgMC4xNDcxMTEsIDAuMTU0MDUyLCAwLjE2MzM0NSwgMC4xNzAwOTgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiByZWNvdmVyeV9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEIjsKLSAgICAgIHNkZl9jb25kIDogIkQgPT0gMSdiMCI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQocmVjb3ZlcnlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2MjUsIDAuMDAxMjUsIC0wLjAxMTI1LCAtMC4wMTc1LCAtMC4wMjM3NSwgLTAuMDI3NSwgLTAuMDM2MjUiLCBcCi0gICAgICAgICAgIjAuMDE3NSwgMC4wMDYyNSwgLTAuMDA2MjUsIC0wLjAxMjUsIC0wLjAxODc1LCAtMC4wMjI1LCAtMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4wMjM3NSwgMC4wMTI1LCAwLjAwNjI1LCAtMC4wMDYyNSwgLTAuMDA2MjUsIC0wLjAxNjI1LCAtMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMDMsIDAuMDE4NzUsIDAuMDEyNSwgMC4wMDYyNSwgMCwgLTAuMDEsIC0wLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMDM2MjUsIDAuMDMxMjUsIDAuMDE4NzUsIDAuMDEyNSwgMC4wMDYyNSwgLTAuMDAzNzUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICIwLjA0NjI1LCAwLjA0MTI1LCAwLjAyODc1LCAwLjAyMjUsIDAuMDE2MjUsIDAuMDA2MjUsIDAuMDAzNzUiLCBcCi0gICAgICAgICAgIjAuMDYxMjUsIDAuMDUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMjUsIDAuMDE1LCAwLjAxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiByZW1vdmFsX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUQiOwotICAgICAgc2RmX2NvbmQgOiAiRCA9PSAxJ2IwIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChyZW1vdmFsX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxODc1LCAwLjAyMzc1LCAwLjAzNjI1LCAwLjA0MjUsIDAuMDQ4NzUsIDAuMDUyNSwgMC4wNjEyNSIsIFwKLSAgICAgICAgICAiMC4wMTM3NSwgMC4wMTg3NSwgMC4wMzEyNSwgMC4wMzc1LCAwLjA0Mzc1LCAwLjA0NzUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIjAuMDA3NSwgMC4wMTI1LCAwLjAxODc1LCAwLjAzMTI1LCAwLjAzMTI1LCAwLjA0MTI1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjAwMTI1LCAwLjAwNjI1LCAwLjAxMjUsIDAuMDE4NzUsIDAuMDI1LCAwLjAzNSwgMC4wMzc1IiwgXAotICAgICAgICAgICItMC4wMDUsIDAsIDAuMDEyNSwgMC4wMTg3NSwgMC4wMTg3NSwgMC4wMjg3NSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDE1LCAtMC4wMDM3NSwgMC4wMDI1LCAwLjAwODc1LCAwLjAxNSwgMC4wMTg3NSwgMC4wMjc1IiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAsIDAuMDA2MjUsIDAuMDE2MjUsIDAuMDE4NzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBERkZUUlgxICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKERGRlRSWDEpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC45MTU5MDk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgZmYgKE4zMCxRQklOVCkgewotICAgIG5leHRfc3RhdGUgOiAiKEQgUk4pIjsKLSAgICBjbG9ja2VkX29uIDogIkNLIjsKLSAgfQotICBwaW4oQ0spICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYxMDQyMzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MTAzNDk7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjEwNDIzOwotICAgIGNsb2NrIDogdHJ1ZTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDM3NDgsIDAuMDAzNzQ0LCAwLjAwMzgyNiwgMC4wMDM5MiwgMC4wMDQwNDMsIDAuMDA0Mjc5LCAwLjAwNDQ1OSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNzM3NCwgMC4wMDczNzUsIDAuMDA3NDYyLCAwLjAwNzU5MiwgMC4wMDc3NDQsIDAuMDA3OTQsIDAuMDA4MjgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFEJiFSTiI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fUk5fRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjExNDc5OSwgMC4xMjI5NCwgMC4xMzE3MzMsIDAuMTM4MzA5LCAwLjE0MzUzNCwgMC4xNTA4NDUsIDAuMTU2MDUxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wNTYxNzIsIDAuMDY0MjE3LCAwLjA3Mjg5NiwgMC4wNzkyNDEsIDAuMDg0NDIxLCAwLjA5MTE4NywgMC4wOTYxMzciKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEQpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYzMDgwNTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MzA4MDM7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjMwODA1OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjgxNywgMC4wMDI4MDgsIDAuMDAyODc0LCAwLjAwMjk2NCwgMC4wMDMwNzIsIDAuMDAzMjY0LCAwLjAwMzQxNCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNDYzOSwgMC4wMDQ2MzUsIDAuMDA0NzAzLCAwLjAwNDc4MiwgMC4wMDQ4OTYsIDAuMDA1MDU5LCAwLjAwNTIyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlJOIjsKLSAgICAgIHNkZl9jb25kIDogIlJOID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAyNSwgLTAuMDIsIC0wLjAxMzc1LCAtMC4wMTM3NSwgLTAuMDEzNzUsIC0wLjAxLCAtMC4wMDc1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTg3NSwgLTAuMDE1LCAtMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDI3NSwgLTAuMDI1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDQzNzUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzc1LCAtMC4wMzM3NSwgLTAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjA1NSwgLTAuMDUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDQzNzUsIC0wLjA0LCAtMC4wMzc1IiwgXAotICAgICAgICAgICItMC4wNjUsIC0wLjA2LCAtMC4wNiwgLTAuMDUzNzUsIC0wLjA1Mzc1LCAtMC4wNSwgLTAuMDQ3NSIsIFwKLSAgICAgICAgICAiLTAuMDczNzUsIC0wLjA2ODc1LCAtMC4wNjI1LCAtMC4wNjI1LCAtMC4wNjI1LCAtMC4wNTg3NSwgLTAuMDU2MjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjI1LCAwLjAxMTI1LCAwLjAxNzUsIDAuMDIzNzUsIDAuMDMsIDAuMDMzNzUsIDAuMDQyNSIsIFwKLSAgICAgICAgICAiLTAuMDA1LCAwLjAwNjI1LCAwLjAxMjUsIDAuMDE4NzUsIDAuMDI1LCAwLjAyODc1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wMTEyNSwgMCwgMC4wMDYyNSwgMC4wMTI1LCAwLjAxMjUsIDAuMDIyNSwgMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjAxNzUsIC0wLjAwNjI1LCAwLCAwLjAwNjI1LCAwLjAxMjUsIDAuMDE2MjUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjAxNzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLCAwLjAwNjI1LCAwLjAxLCAwLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjAyMTI1LCAtMC4wMTYyNSwgLTAuMDEsIC0wLjAwMzc1LCAwLjAwMjUsIDAuMDA2MjUsIDAuMDA4NzUiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIC0wLjAwNjI1LCAwLjAwMzc1LCAwLjAwNjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJSTiI7Ci0gICAgICBzZGZfY29uZCA6ICJSTiA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDM3NSwgMC4wMzg3NSwgMC4wMzI1LCAwLjAzMjUsIDAuMDI2MjUsIDAuMDIyNSwgMC4wMiIsIFwKLSAgICAgICAgICAiMC4wNTUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyNzUsIDAuMDI1IiwgXAotICAgICAgICAgICIwLjA2MTI1LCAwLjA1NjI1LCAwLjA1LCAwLjA0Mzc1LCAwLjA0Mzc1LCAwLjA0LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIjAuMDczNzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNTYyNSwgMC4wNSwgMC4wNDYyNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4wOCwgMC4wNzUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNjI1LCAwLjA1ODc1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICIwLjA5LCAwLjA4NSwgMC4wNzg3NSwgMC4wNzI1LCAwLjA3MjUsIDAuMDY4NzUsIDAuMDY2MjUiLCBcCi0gICAgICAgICAgIjAuMDk4NzUsIDAuMDg3NSwgMC4wODEyNSwgMC4wODEyNSwgMC4wNzUsIDAuMDcxMjUsIDAuMDY4NzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTg3NSwgMC4wMDc1LCAwLjAwMTI1LCAtMC4wMDUsIC0wLjAxMTI1LCAtMC4wMTUsIC0wLjAyMzc1IiwgXAotICAgICAgICAgICIwLjAyMzc1LCAwLjAxODc1LCAwLjAwNjI1LCAwLCAwLCAtMC4wMSwgLTAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4wMzYyNSwgMC4wMjUsIDAuMDE4NzUsIDAuMDEyNSwgMC4wMDYyNSwgLTAuMDAzNzUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICIwLjA0MjUsIDAuMDMxMjUsIDAuMDI1LCAwLjAxODc1LCAwLjAxMjUsIDAuMDA4NzUsIDAiLCBcCi0gICAgICAgICAgIjAuMDQ4NzUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMjUsIDAuMDE4NzUsIDAuMDA4NzUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMDUyNSwgMC4wNDc1LCAwLjAzNSwgMC4wMjg3NSwgMC4wMjI1LCAwLjAxODc1LCAwLjAxNjI1IiwgXAotICAgICAgICAgICIwLjA2MTI1LCAwLjA1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDIxMjUsIDAuMDE4NzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFEpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4zNDQxMzsKLSAgICBmdW5jdGlvbiA6ICJOMzAiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5vbl91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcmlzaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5NTE4NiwgMC4xMTM3OTQsIDAuMjE5MTA5LCAwLjMxMjE3MSwgMC40MzYxMTUsIDAuNjg0ODE4LCAwLjg0MDI1NiIsIFwKLSAgICAgICAgICAiMC4xMDMyNSwgMC4xMjE4NTcsIDAuMjI3MTc1LCAwLjMyMDI1MywgMC40NDQxODEsIDAuNjkyNDY4LCAwLjg0ODMyMiIsIFwKLSAgICAgICAgICAiMC4xMTE3OTYsIDAuMTMwNDIyLCAwLjIzNTcyNiwgMC4zMjg3NzcsIDAuNDUyNzI0LCAwLjcwMTQyMywgMC44NTY4NTUiLCBcCi0gICAgICAgICAgIjAuMTE4MzQ3LCAwLjEzNjk2NiwgMC4yNDI1MTYsIDAuMzM1Mjg2LCAwLjQ1OTI3NywgMC43MDc5ODIsIDAuODYzNDA4IiwgXAotICAgICAgICAgICIwLjEyMzUxNiwgMC4xNDIxMzYsIDAuMjQ3NjgzLCAwLjM0MDUxMywgMC40NjQ0MzQsIDAuNzEzMTM1LCAwLjg2ODUzNSIsIFwKLSAgICAgICAgICAiMC4xMzA0MTYsIDAuMTQ5MDI2LCAwLjI1NDQ5MiwgMC4zNDczNTIsIDAuNDcxMzk3LCAwLjcyMDAzNSwgMC44NzQ2OTIiLCBcCi0gICAgICAgICAgIjAuMTM1NjU5LCAwLjE1NDMzNCwgMC4yNTk2OCwgMC4zNTI2OTIsIDAuNDc2NTc4LCAwLjcyNDgwMywgMC44Nzk5MTciKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDcyNzM3LCAwLjExMTI0NCwgMC4zMzIwODUsIDAuNTI4ODgsIDAuNzkwNzU1LCAxLjMxNDQ4LCAxLjY0MTkyIiwgXAotICAgICAgICAgICIwLjA3MjczMywgMC4xMTEyMiwgMC4zMzE5NDUsIDAuNTI4ODksIDAuNzkwNzUyLCAxLjMxMTUzLCAxLjY0MTkiLCBcCi0gICAgICAgICAgIjAuMDcyNzMxLCAwLjExMTI0OSwgMC4zMzIxNDMsIDAuNTI4ODgyLCAwLjc5MDc0OCwgMS4zMTQ1MiwgMS42NDE5MiIsIFwKLSAgICAgICAgICAiMC4wNzI4NjgsIDAuMTExMjI1LCAwLjMzMjAzOCwgMC41MjgxNTgsIDAuNzkwNjkxLCAxLjMxNDUyLCAxLjY0MTkxIiwgXAotICAgICAgICAgICIwLjA3Mjc0MiwgMC4xMTEyMjksIDAuMzMxOTM0LCAwLjUyODg1NCwgMC43OTA2NDQsIDEuMzE0NTEsIDEuNjQxODYiLCBcCi0gICAgICAgICAgIjAuMDcyNjc5LCAwLjExMTAzNywgMC4zMzI0NjQsIDAuNTI4MDI3LCAwLjc4OTAwMSwgMS4zMTQ0LCAxLjYzODU4IiwgXAotICAgICAgICAgICIwLjA3MjkzOCwgMC4xMTEwODEsIDAuMzMyNDM4LCAwLjUyODgyNywgMC43OTA1NDIsIDEuMzExMjMsIDEuNjM4OTQiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTA1OTA0LCAwLjEyNDEyNywgMC4yMjY4MTQsIDAuMzE3MzI0LCAwLjQzODMzNywgMC42Nzk5MTYsIDAuODMwOTEzIiwgXAotICAgICAgICAgICIwLjExNDAwOCwgMC4xMzIzMDcsIDAuMjM0ODg1LCAwLjMyNTc1NSwgMC40NDY3LCAwLjY4ODAzMywgMC44MzgyMjkiLCBcCi0gICAgICAgICAgIjAuMTIyNzkxLCAwLjE0MTAzMSwgMC4yNDM2MzYsIDAuMzM0NjE3LCAwLjQ1NDc0MiwgMC42OTY3NjYsIDAuODQ3ODUiLCBcCi0gICAgICAgICAgIjAuMTI5Mzg2LCAwLjE0NzU1OSwgMC4yNTA0NTgsIDAuMzQxMTY4LCAwLjQ2MTgxOCwgMC43MDMzMzQsIDAuODU0NDE3IiwgXAotICAgICAgICAgICIwLjEzNDY0NCwgMC4xNTI5MywgMC4yNTU0ODMsIDAuMzQ2MzUsIDAuNDY3MTYxLCAwLjcwODY0LCAwLjg1OTc1NiIsIFwKLSAgICAgICAgICAiMC4xNDE5LCAwLjE2MDIwMSwgMC4yNjMxMTgsIDAuMzUzNTk3LCAwLjQ3NDI5OCwgMC43MTU3MywgMC44NjY4OTciLCBcCi0gICAgICAgICAgIjAuMTQ3MTY1LCAwLjE2NTQzNSwgMC4yNjgzNjgsIDAuMzU4ODkyLCAwLjQ3OTQzOSwgMC43MjExNDcsIDAuODcyMTQ4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3MDAzMiwgMC4xMDY0NjksIDAuMzE2NDI3LCAwLjUwMjcyOCwgMC43NTE0NDgsIDEuMjQ5MzYsIDEuNTYwNTUiLCBcCi0gICAgICAgICAgIjAuMDcwMTU1LCAwLjEwNjUwOCwgMC4zMTY0NjgsIDAuNTAyNTUyLCAwLjc1MTA1NywgMS4yNDkzMywgMS41NTg2MSIsIFwKLSAgICAgICAgICAiMC4wNjk5NTMsIDAuMTA1OTc4LCAwLjMxNjQxNywgMC41MDI1OSwgMC43NDk5MTQsIDEuMjQ5MjMsIDEuNTYwNjIiLCBcCi0gICAgICAgICAgIjAuMDY5NjQyLCAwLjEwNjQyOSwgMC4zMTYxNDYsIDAuNTAyNjA0LCAwLjc1MTQ5MiwgMS4yNDkyOCwgMS41NjA2NCIsIFwKLSAgICAgICAgICAiMC4wNzAxMTUsIDAuMTA2NDk2LCAwLjMxNjI2NywgMC41MDI1NDksIDAuNzUxNjA1LCAxLjI0OTM5LCAxLjU2MDQ4IiwgXAotICAgICAgICAgICIwLjA2OTc4OCwgMC4xMDY0ODksIDAuMzE2NDQ1LCAwLjUwMjUzMSwgMC43NTEyODcsIDEuMjQ5MjUsIDEuNTYwNTQiLCBcCi0gICAgICAgICAgIjAuMDY5OSwgMC4xMDY0MTUsIDAuMzE2MTg3LCAwLjUwMjIsIDAuNzUxMjgyLCAxLjI0OTQ2LCAxLjU2MDU4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNTEwOCwgMC4wMDUxMDIsIDAuMDA1MDc5LCAwLjAwNTA3MSwgMC4wMDUwNjUsIDAuMDA1MDYxLCAwLjAwNTA1OCIsIFwKLSAgICAgICAgICAiMC4wMDUxMDEsIDAuMDA1MDk2LCAwLjAwNTA3MywgMC4wMDUwNjUsIDAuMDA1MDU5LCAwLjAwNTA1NCwgMC4wMDUwNTIiLCBcCi0gICAgICAgICAgIjAuMDA1MTQ4LCAwLjAwNTE0NCwgMC4wMDUxMjEsIDAuMDA1MTEyLCAwLjAwNTEwNiwgMC4wMDUxLCAwLjAwNTA5OSIsIFwKLSAgICAgICAgICAiMC4wMDUxOTcsIDAuMDA1MTk0LCAwLjAwNTE3MSwgMC4wMDUxNjIsIDAuMDA1MTU2LCAwLjAwNTE1LCAwLjAwNTE0OCIsIFwKLSAgICAgICAgICAiMC4wMDUyNjgsIDAuMDA1MjY1LCAwLjAwNTI0MiwgMC4wMDUyMzMsIDAuMDA1MjI2LCAwLjAwNTIyLCAwLjAwNTIxOCIsIFwKLSAgICAgICAgICAiMC4wMDUzNiwgMC4wMDUzNTcsIDAuMDA1MzM2LCAwLjAwNTMyNiwgMC4wMDUzMTgsIDAuMDA1MzExLCAwLjAwNTMwOSIsIFwKLSAgICAgICAgICAiMC4wMDU0NjIsIDAuMDA1NDYsIDAuMDA1NDM2LCAwLjAwNTQyOCwgMC4wMDU0MTksIDAuMDA1NDEyLCAwLjAwNTQwOSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNTI0LCAwLjAwNTI0OSwgMC4wMDUyNjIsIDAuMDA1MjY1LCAwLjAwNTI2NiwgMC4wMDUyNjgsIDAuMDA1MjY4IiwgXAotICAgICAgICAgICIwLjAwNTI0MiwgMC4wMDUyNTEsIDAuMDA1MjYzLCAwLjAwNTI2NiwgMC4wMDUyNjgsIDAuMDA1MjcxLCAwLjAwNTI3MSIsIFwKLSAgICAgICAgICAiMC4wMDUyODYsIDAuMDA1Mjk1LCAwLjAwNTMwNywgMC4wMDUzMDksIDAuMDA1MzExLCAwLjAwNTMxNCwgMC4wMDUzMTMiLCBcCi0gICAgICAgICAgIjAuMDA1MzUzLCAwLjAwNTM2MSwgMC4wMDUzNzMsIDAuMDA1Mzc1LCAwLjAwNTM3OCwgMC4wMDUzNzksIDAuMDA1Mzc4IiwgXAotICAgICAgICAgICIwLjAwNTQyNywgMC4wMDU0MzUsIDAuMDA1NDQ2LCAwLjAwNTQ0OCwgMC4wMDU0NSwgMC4wMDU0NTEsIDAuMDA1NDUiLCBcCi0gICAgICAgICAgIjAuMDA1NTQsIDAuMDA1NTQ4LCAwLjAwNTU1OCwgMC4wMDU1NiwgMC4wMDU1NTEsIDAuMDA1NTYxLCAwLjAwNTU1MSIsIFwKLSAgICAgICAgICAiMC4wMDU2NCwgMC4wMDU2NDcsIDAuMDA1NjU2LCAwLjAwNTY1NiwgMC4wMDU2NTgsIDAuMDA1NjU4LCAwLjAwNTY1OCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUU4pICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4zNDE5NDM7Ci0gICAgZnVuY3Rpb24gOiAiUUJJTlQiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5vbl91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcmlzaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExNDc5OSwgMC4xMzM0MDIsIDAuMjM4ODc1LCAwLjMzMTk2MiwgMC40NTYwMTYsIDAuNzA0MjIzLCAwLjg1OTM1MiIsIFwKLSAgICAgICAgICAiMC4xMjI5NCwgMC4xNDE1NDcsIDAuMjQ3MDE5LCAwLjM0MDEwNSwgMC40NjQyNjEsIDAuNzEyMzY5LCAwLjg2NzE1OCIsIFwKLSAgICAgICAgICAiMC4xMzE3MzMsIDAuMTUwMzQ2LCAwLjI1NTc2NiwgMC4zNDg5MywgMC40NzI3OTMsIDAuNzIxMTQzLCAwLjg3NjMxOCIsIFwKLSAgICAgICAgICAiMC4xMzgzMDksIDAuMTU2OTEzLCAwLjI2MjM1MiwgMC4zNTU1MDEsIDAuNDc5NTEsIDAuNzI3NzE1LCAwLjg4Mjg5NyIsIFwKLSAgICAgICAgICAiMC4xNDM1MzQsIDAuMTYyMTM4LCAwLjI2NzYyNSwgMC4zNjA2OTIsIDAuNDg0Nzk4LCAwLjczMjk2MiwgMC44ODgxNTciLCBcCi0gICAgICAgICAgIjAuMTUwODQ1LCAwLjE2OTQyOCwgMC4yNzQ5MzQsIDAuMzY3OTY5LCAwLjQ5MjAzMywgMC43NDAxNzEsIDAuODk1MzgyIiwgXAotICAgICAgICAgICIwLjE1NjA1MSwgMC4xNzQ2NTMsIDAuMjgwMTYyLCAwLjM3MzIyNSwgMC40OTcyNSwgMC43NDU0NTIsIDAuOTAwNjI3Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3MDQ4OCwgMC4xMDkzMSwgMC4zMzEzMjYsIDAuNTI2NzM3LCAwLjc4OTMxMiwgMS4zMTIyOCwgMS42MzkxNiIsIFwKLSAgICAgICAgICAiMC4wNzA0OTIsIDAuMTA5MzA1LCAwLjMzMTM3MiwgMC41Mjc4NzYsIDAuNzg4MjEzLCAxLjMxMjIsIDEuNjM3MTYiLCBcCi0gICAgICAgICAgIjAuMDcwNDE0LCAwLjEwOTQ4NSwgMC4zMzEzMTEsIDAuNTI2OTc5LCAwLjc4ODI0MSwgMS4zMTIxOSwgMS42MzkxNyIsIFwKLSAgICAgICAgICAiMC4wNzA0MzcsIDAuMTA5NDg4LCAwLjMzMTc3NywgMC41Mjc4NzgsIDAuNzg5MjU2LCAxLjMxMjIyLCAxLjYzOTE4IiwgXAotICAgICAgICAgICIwLjA3MDQ4OSwgMC4xMDk0MjcsIDAuMzMxMzg3LCAwLjUyNzg2MywgMC43ODk0NiwgMS4zMTIyOCwgMS42MzkwNyIsIFwKLSAgICAgICAgICAiMC4wNzA1MDcsIDAuMTA5NDM0LCAwLjMzMTc4MSwgMC41Mjc4NTcsIDAuNzg5MjQsIDEuMzEyMjYsIDEuNjM5MTciLCBcCi0gICAgICAgICAgIjAuMDcwNjAxLCAwLjEwOTM1MywgMC4zMzE3ODIsIDAuNTI2OTcsIDAuNzg5MjE1LCAxLjMxMjI5LCAxLjYzOTE3Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwNDMwMywgMC4xMjI0MDEsIDAuMjI0OTQ3LCAwLjMxNTQwNywgMC40MzYwMiwgMC42NzcyNTcsIDAuODI4MDU1IiwgXAotICAgICAgICAgICIwLjExMjM0NiwgMC4xMzA0NDEsIDAuMjMyOTk3LCAwLjMyMzQ1MywgMC40NDQwNTQsIDAuNjg1NDA5LCAwLjgzNjA4NiIsIFwKLSAgICAgICAgICAiMC4xMjA5MDEsIDAuMTM4OTk5LCAwLjI0MTU0NSwgMC4zMzE5OTgsIDAuNDUyNjEzLCAwLjY5Mzg1NiwgMC44NDQ2NTEiLCBcCi0gICAgICAgICAgIjAuMTI3NDM4LCAwLjE0NTUzMywgMC4yNDgxMTMsIDAuMzM4NTYsIDAuNDU5MTQ1LCAwLjcwMDM5OCwgMC44NTExODgiLCBcCi0gICAgICAgICAgIjAuMTMyNTgyLCAwLjE1MDY3OCwgMC4yNTMyNjMsIDAuMzQzNjg4LCAwLjQ2NDI4OSwgMC43MDU1NTEsIDAuODU2MzE2IiwgXAotICAgICAgICAgICIwLjEzOTUwMywgMC4xNTc2MDEsIDAuMjYwMTM5LCAwLjM1MDU4OSwgMC40NzEyNTUsIDAuNzEyNDc5LCAwLjg2MzMyNiIsIFwKLSAgICAgICAgICAiMC4xNDQ3NTIsIDAuMTYyODQ4LCAwLjI2NTM2NywgMC4zNTU4ODksIDAuNDc2NDc2LCAwLjcxNzc5MywgMC44Njg0OTkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY3MTA1LCAwLjEwNDEyNiwgMC4zMTQ4NzYsIDAuNTAxNjc4LCAwLjc1MDIzMiwgMS4yNDc0MywgMS41NTgyNiIsIFwKLSAgICAgICAgICAiMC4wNjcxMDQsIDAuMTA0MTE3LCAwLjMxNDczNCwgMC41MDE2ODQsIDAuNzUwMjE5LCAxLjI0NTMsIDEuNTU4MjIiLCBcCi0gICAgICAgICAgIjAuMDY3MTA1LCAwLjEwNDEzNywgMC4zMTQ4NjUsIDAuNTAxNjcyLCAwLjc1MDIyMywgMS4yNDc0NCwgMS41NTgyNiIsIFwKLSAgICAgICAgICAiMC4wNjcxMjgsIDAuMTA0MTE4LCAwLjMxNDcyNiwgMC41MDA5NiwgMC43NTAyMjIsIDEuMjQ3NDYsIDEuNTU4MjQiLCBcCi0gICAgICAgICAgIjAuMDY3MTE1LCAwLjEwNDEyNSwgMC4zMTQ2OTEsIDAuNTAxNjYzLCAwLjc1MDE5MywgMS4yNDc0NSwgMS41NTgxNCIsIFwKLSAgICAgICAgICAiMC4wNjcwNSwgMC4xMDQwMzcsIDAuMzE1MjE1LCAwLjUwMDk2MywgMC43NDg5NTUsIDEuMjQ3MzEsIDEuNTU1NTgiLCBcCi0gICAgICAgICAgIjAuMDY3MjE1LCAwLjEwMzk0MiwgMC4zMTUxNzEsIDAuNTAxNjEyLCAwLjc1MDA3LCAxLjI0NDgxLCAxLjU1NTkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1MjQsIDAuMDA1MjQ5LCAwLjAwNTI2MiwgMC4wMDUyNjUsIDAuMDA1MjY2LCAwLjAwNTI2OCwgMC4wMDUyNjgiLCBcCi0gICAgICAgICAgIjAuMDA1MjQyLCAwLjAwNTI1MSwgMC4wMDUyNjMsIDAuMDA1MjY2LCAwLjAwNTI2OCwgMC4wMDUyNzEsIDAuMDA1MjcxIiwgXAotICAgICAgICAgICIwLjAwNTI4NiwgMC4wMDUyOTUsIDAuMDA1MzA3LCAwLjAwNTMwOSwgMC4wMDUzMTEsIDAuMDA1MzE0LCAwLjAwNTMxMyIsIFwKLSAgICAgICAgICAiMC4wMDUzNTMsIDAuMDA1MzYxLCAwLjAwNTM3MywgMC4wMDUzNzUsIDAuMDA1Mzc4LCAwLjAwNTM3OSwgMC4wMDUzNzgiLCBcCi0gICAgICAgICAgIjAuMDA1NDI3LCAwLjAwNTQzNSwgMC4wMDU0NDYsIDAuMDA1NDQ4LCAwLjAwNTQ1LCAwLjAwNTQ1MSwgMC4wMDU0NSIsIFwKLSAgICAgICAgICAiMC4wMDU1NCwgMC4wMDU1NDgsIDAuMDA1NTU4LCAwLjAwNTU2LCAwLjAwNTU1MSwgMC4wMDU1NjEsIDAuMDA1NTUxIiwgXAotICAgICAgICAgICIwLjAwNTY0LCAwLjAwNTY0NywgMC4wMDU2NTYsIDAuMDA1NjU2LCAwLjAwNTY1OCwgMC4wMDU2NTgsIDAuMDA1NjU4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1MTA4LCAwLjAwNTEwMiwgMC4wMDUwNzksIDAuMDA1MDcxLCAwLjAwNTA2NSwgMC4wMDUwNjEsIDAuMDA1MDU4IiwgXAotICAgICAgICAgICIwLjAwNTEwMSwgMC4wMDUwOTYsIDAuMDA1MDczLCAwLjAwNTA2NSwgMC4wMDUwNTksIDAuMDA1MDU0LCAwLjAwNTA1MiIsIFwKLSAgICAgICAgICAiMC4wMDUxNDgsIDAuMDA1MTQ0LCAwLjAwNTEyMSwgMC4wMDUxMTIsIDAuMDA1MTA2LCAwLjAwNTEsIDAuMDA1MDk5IiwgXAotICAgICAgICAgICIwLjAwNTE5NywgMC4wMDUxOTQsIDAuMDA1MTcxLCAwLjAwNTE2MiwgMC4wMDUxNTYsIDAuMDA1MTUsIDAuMDA1MTQ4IiwgXAotICAgICAgICAgICIwLjAwNTI2OCwgMC4wMDUyNjUsIDAuMDA1MjQyLCAwLjAwNTIzMywgMC4wMDUyMjYsIDAuMDA1MjIsIDAuMDA1MjE4IiwgXAotICAgICAgICAgICIwLjAwNTM2LCAwLjAwNTM1NywgMC4wMDUzMzYsIDAuMDA1MzI2LCAwLjAwNTMxOCwgMC4wMDUzMTEsIDAuMDA1MzA5IiwgXAotICAgICAgICAgICIwLjAwNTQ2MiwgMC4wMDU0NiwgMC4wMDU0MzYsIDAuMDA1NDI4LCAwLjAwNTQxOSwgMC4wMDU0MTIsIDAuMDA1NDA5Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihSTikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNTkxOTAxOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDU5MTkwMTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA1OTE0MzM7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyODIzLCAwLjAwMjc5LCAwLjAwMjgyMywgMC4wMDI5LCAwLjAwMjk1OCwgMC4wMDMxMDgsIDAuMDAzMjM4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA0OTcyLCAwLjAwNDk3NSwgMC4wMDUwMzgsIDAuMDA1MTI5LCAwLjAwNTI0NywgMC4wMDU0MDgsIDAuMDA1NTY5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIkQiOwotICAgICAgc2RmX2NvbmQgOiAiRCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMjUsIC0wLjAyLCAtMC4wMiwgLTAuMDEzNzUsIC0wLjAxMzc1LCAtMC4wMSwgLTAuMDA3NSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDE4NzUsIC0wLjAxNSwgLTAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAyMTI1LCAtMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDI3NSwgLTAuMDI1IiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzMzc1LCAtMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDU4NzUsIC0wLjA1Mzc1LCAtMC4wNTM3NSwgLTAuMDQ3NSwgLTAuMDQ3NSwgLTAuMDQzNzUsIC0wLjA0MTI1IiwgXAotICAgICAgICAgICItMC4wNjc1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNDYyNSwgLTAuMDQzNzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjI1LCAwLjAxMTI1LCAwLjAxNzUsIDAuMDIzNzUsIDAuMDMsIDAuMDMzNzUsIDAuMDM2MjUiLCBcCi0gICAgICAgICAgIi0wLjAwNSwgMC4wMDYyNSwgMC4wMTI1LCAwLjAxODc1LCAwLjAxODc1LCAwLjAyODc1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wMTEyNSwgLTAuMDA2MjUsIDAsIDAuMDA2MjUsIDAuMDEyNSwgMC4wMTYyNSwgMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjAxNzUsIC0wLjAxMjUsIDAsIDAsIDAuMDA2MjUsIDAuMDEsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMCwgMCwgMC4wMSwgMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wMjc1LCAtMC4wMjI1LCAtMC4wMTYyNSwgLTAuMDEsIC0wLjAwMzc1LCAwLCAwLjAwODc1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIC0wLjAwMjUsIDAiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIkQiOwotICAgICAgc2RmX2NvbmQgOiAiRCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNSwgMC4wMzg3NSwgMC4wMzI1LCAwLjAzMjUsIDAuMDI2MjUsIDAuMDIyNSwgMC4wMiIsIFwKLSAgICAgICAgICAiMC4wNTUsIDAuMDQzNzUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzc1LCAwLjAzMzc1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICIwLjA2MTI1LCAwLjA1NjI1LCAwLjA1LCAwLjA0Mzc1LCAwLjA0Mzc1LCAwLjA0LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIjAuMDY3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1LCAwLjA1LCAwLjA0NjI1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjA3Mzc1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDU2MjUsIDAuMDUyNSwgMC4wNSIsIFwKLSAgICAgICAgICAiMC4wODM3NSwgMC4wNzI1LCAwLjA2NjI1LCAwLjA2NjI1LCAwLjA2LCAwLjA1NjI1LCAwLjA1Mzc1IiwgXAotICAgICAgICAgICIwLjA4NjI1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNzUsIDAuMDY4NzUsIDAuMDY1LCAwLjA2MjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTg3NSwgMC4wMDc1LCAwLjAwMTI1LCAtMC4wMDUsIC0wLjAxMTI1LCAtMC4wMTUsIC0wLjAxNzUiLCBcCi0gICAgICAgICAgIjAuMDIzNzUsIDAuMDE4NzUsIDAuMDEyNSwgMC4wMDYyNSwgMCwgLTAuMDEsIC0wLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMDM2MjUsIDAuMDI1LCAwLjAxODc1LCAwLjAxMjUsIDAuMDA2MjUsIDAuMDAyNSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMDQyNSwgMC4wMzc1LCAwLjAyNSwgMC4wMTg3NSwgMC4wMTI1LCAwLjAwODc1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICIwLjA0ODc1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDI1LCAwLjAxODc1LCAwLjAxNSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiMC4wNTg3NSwgMC4wNDc1LCAwLjA0MTI1LCAwLjAzNSwgMC4wMjg3NSwgMC4wMTg3NSwgMC4wMTYyNSIsIFwKLSAgICAgICAgICAiMC4wNjEyNSwgMC4wNTYyNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyNzUsIDAuMDI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogREZGVFJYNCAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChERkZUUlg0KSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDEuNjUzNzY7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgZmYgKE4zMCxRQklOVCkgewotICAgIG5leHRfc3RhdGUgOiAiKEQgUk4pIjsKLSAgICBjbG9ja2VkX29uIDogIkNLIjsKLSAgfQotICBwaW4oQ0spICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY3MjY2MjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2NzI2NjI7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjcyNjU3OwotICAgIGNsb2NrIDogdHJ1ZTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDM2OTIsIDAuMDAzNjg5LCAwLjAwMzc2NSwgMC4wMDM4NzIsIDAuMDAzOTg3LCAwLjAwNDIwOSwgMC4wMDQ0MDYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDcxODgsIDAuMDA3MTk1LCAwLjAwNzI5LCAwLjAwNzQwOSwgMC4wMDc1NjQsIDAuMDA3ODI3LCAwLjAwODEwOCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQmIVJOIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9STl9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMTAzMjE4LCAwLjExMTQwNiwgMC4xMjAxNjEsIDAuMTI2NzQxLCAwLjEzMTk5NiwgMC4xMzkyODUsIDAuMTQ0NDgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjA1NTU0MiwgMC4wNjM1ODIsIDAuMDcyMjgzLCAwLjA3ODYyLCAwLjA4Mzc2OCwgMC4wOTAzNDQsIDAuMDk1MyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjcwMjE2OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDY3MDIxNjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2Njk4NjQ7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyODU5LCAwLjAwMjg0NywgMC4wMDI5MTIsIDAuMDAzLCAwLjAwMzExMywgMC4wMDMzMDMsIDAuMDAzNDUyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA0NzI3LCAwLjAwNDcyMiwgMC4wMDQ3ODcsIDAuMDA0ODg5LCAwLjAwNDk3OCwgMC4wMDUxNDUsIDAuMDA1Mjk5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlJOIjsKLSAgICAgIHNkZl9jb25kIDogIlJOID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAyNSwgLTAuMDIsIC0wLjAxMzc1LCAtMC4wMTM3NSwgLTAuMDEzNzUsIC0wLjAxLCAtMC4wMDc1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTg3NSwgLTAuMDE1LCAtMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDMxMjUsIC0wLjAzMTI1LCAtMC4wMjc1LCAtMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wNDM3NSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzNzUsIC0wLjAzMzc1LCAtMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wNDM3NSwgLTAuMDQsIC0wLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjA2NSwgLTAuMDYsIC0wLjA2LCAtMC4wNTM3NSwgLTAuMDUzNzUsIC0wLjA1LCAtMC4wNDc1IiwgXAotICAgICAgICAgICItMC4wNzM3NSwgLTAuMDY4NzUsIC0wLjA2MjUsIC0wLjA2MjUsIC0wLjA2MjUsIC0wLjA1ODc1LCAtMC4wNTYyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2MjUsIDAuMDExMjUsIDAuMDE3NSwgMC4wMjM3NSwgMC4wMywgMC4wMzM3NSwgMC4wNDI1IiwgXAotICAgICAgICAgICItMC4wMDUsIDAuMDA2MjUsIDAuMDEyNSwgMC4wMTg3NSwgMC4wMjUsIDAuMDI4NzUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjAxMTI1LCAwLCAwLjAwNjI1LCAwLjAxMjUsIDAuMDEyNSwgMC4wMjI1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDE3NSwgLTAuMDA2MjUsIDAsIDAuMDA2MjUsIDAuMDA2MjUsIDAuMDE2MjUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjAxNzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLCAwLjAwNjI1LCAwLjAxLCAwLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjAyMTI1LCAtMC4wMTYyNSwgLTAuMDEsIC0wLjAwMzc1LCAwLjAwMjUsIDAuMDA2MjUsIDAuMDA4NzUiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIC0wLjAwNjI1LCAwLjAwMzc1LCAwLjAwNjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJSTiI7Ci0gICAgICBzZGZfY29uZCA6ICJSTiA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNSwgMC4wMzg3NSwgMC4wMzI1LCAwLjAzMjUsIDAuMDI2MjUsIDAuMDIyNSwgMC4wMiIsIFwKLSAgICAgICAgICAiMC4wNTUsIDAuMDUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzc1LCAwLjAzMzc1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDU2MjUsIDAuMDUsIDAuMDUsIDAuMDQzNzUsIDAuMDQsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiMC4wNzM3NSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1NjI1LCAwLjA1MjUsIDAuMDUiLCBcCi0gICAgICAgICAgIjAuMDgsIDAuMDc1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDYyNSwgMC4wNTg3NSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiMC4wOSwgMC4wODUsIDAuMDc4NzUsIDAuMDcyNSwgMC4wNzI1LCAwLjA2ODc1LCAwLjA2NjI1IiwgXAotICAgICAgICAgICIwLjA5ODc1LCAwLjA5Mzc1LCAwLjA4NzUsIDAuMDgxMjUsIDAuMDgxMjUsIDAuMDc3NSwgMC4wNzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTg3NSwgMC4wMTM3NSwgMC4wMDEyNSwgLTAuMDA1LCAtMC4wMDUsIC0wLjAxNSwgLTAuMDE3NSIsIFwKLSAgICAgICAgICAiMC4wMywgMC4wMTg3NSwgMC4wMTI1LCAwLjAwNjI1LCAwLCAtMC4wMDM3NSwgLTAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4wMzYyNSwgMC4wMzEyNSwgMC4wMTg3NSwgMC4wMTI1LCAwLjAwNjI1LCAwLjAwMjUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICIwLjA0MjUsIDAuMDM3NSwgMC4wMjUsIDAuMDE4NzUsIDAuMDEyNSwgMC4wMDg3NSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiMC4wNDg3NSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMTg3NSwgMC4wMTUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMDU4NzUsIDAuMDQ3NSwgMC4wNDEyNSwgMC4wMzUsIDAuMDI4NzUsIDAuMDE4NzUsIDAuMDE2MjUiLCBcCi0gICAgICAgICAgIjAuMDYxMjUsIDAuMDUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMjc1LCAwLjAxODc1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihRKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDEuMzY4MzQ7Ci0gICAgZnVuY3Rpb24gOiAiTjMwIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBub25fdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJpc2luZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3OTY5LCAwLjEzNTY5OSwgMC4xOTA2NzUsIDAuMjI5OTksIDAuMjkyNjg1LCAwLjM0NzQ4NywgMC40MjYwMDUiLCBcCi0gICAgICAgICAgIjAuMDg3NzM4LCAwLjE0Mzc0NCwgMC4xOTg3MjMsIDAuMjM4MDA5LCAwLjMwMDczMiwgMC4zNTU1MzUsIDAuNDM0MDQ0IiwgXAotICAgICAgICAgICIwLjA5NjQwOCwgMC4xNTI0MzMsIDAuMjA3Mzk1LCAwLjI0Njc0NywgMC4zMDkzNzYsIDAuMzY0NTg3LCAwLjQ0Mjg3MyIsIFwKLSAgICAgICAgICAiMC4xMDI5LCAwLjE1ODkxOSwgMC4yMTM4ODUsIDAuMjUzNDEyLCAwLjMxNTY0NCwgMC4zNzA1MTYsIDAuNDQ4OTA5IiwgXAotICAgICAgICAgICIwLjEwODEyMiwgMC4xNjQxMzksIDAuMjE5MTAyLCAwLjI1ODIyMywgMC4zMjA5NzMsIDAuMzc2MjgxLCAwLjQ1NDQyOSIsIFwKLSAgICAgICAgICAiMC4xMTUzNTMsIDAuMTcxMzUsIDAuMjI2Mzc3LCAwLjI2NTUwNiwgMC4zMjgzNDcsIDAuMzgzNDAxLCAwLjQ2MTYyNSIsIFwKLSAgICAgICAgICAiMC4xMjA1OTgsIDAuMTc2NjE0LCAwLjIzMTY3MywgMC4yNzA5NTIsIDAuMzMzNzcyLCAwLjM4ODM5NCwgMC40NjcwMTUiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjU2MjksIDAuMTM3NzIxLCAwLjI1MzIzNCwgMC4zMzU5MDUsIDAuNDY4MTY1LCAwLjU4MjksIDAuNzQ5NzIyIiwgXAotICAgICAgICAgICIwLjAyNTU3NSwgMC4xMzc3MTksIDAuMjUzMjM3LCAwLjMzNTg5NSwgMC40NjgxNjQsIDAuNTgyOTE1LCAwLjc0OTcwNyIsIFwKLSAgICAgICAgICAiMC4wMjU2NDUsIDAuMTM4MjE2LCAwLjI1MzIyNSwgMC4zMzUwNTMsIDAuNDY3NDIyLCAwLjU4MzE1OSwgMC43NDgzOTkiLCBcCi0gICAgICAgICAgIjAuMDI1NjAyLCAwLjEzODE5MSwgMC4yNTMyMiwgMC4zMzU0MDMsIDAuNDY3NjA3LCAwLjU4MywgMC43NDg4OTQiLCBcCi0gICAgICAgICAgIjAuMDI1NjExLCAwLjEzODEyOSwgMC4yNTMyMywgMC4zMzUzMTYsIDAuNDY3NTMxLCAwLjU4MzA2LCAwLjc0OTY3OSIsIFwKLSAgICAgICAgICAiMC4wMjU2ODksIDAuMTM3NjcxLCAwLjI1MjkwMywgMC4zMzU0MzMsIDAuNDY4MTMsIDAuNTgyOTQxLCAwLjc0ODQzMiIsIFwKLSAgICAgICAgICAiMC4wMjU2NTgsIDAuMTM3NzMzLCAwLjI1MzI1MywgMC4zMzU4NzksIDAuNDY4MTYyLCAwLjU4MzE3OCwgMC43NDgzNDgiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODUyODUsIDAuMTQwNjEzLCAwLjE5NTA3OCwgMC4yMzM1MTIsIDAuMjk1MDY1LCAwLjM0OTUxOCwgMC40MjY2MjQiLCBcCi0gICAgICAgICAgIjAuMDkzNDkxLCAwLjE0ODgzMywgMC4yMDMyMDIsIDAuMjQxNDU0LCAwLjMwMzg5OSwgMC4zNTc3MjMsIDAuNDM0ODY5IiwgXAotICAgICAgICAgICIwLjEwMjIwNywgMC4xNTc1NDgsIDAuMjExODgxLCAwLjI1MDQ3OSwgMC4zMTI1ODMsIDAuMzY2MDUyLCAwLjQ0MzY5OSIsIFwKLSAgICAgICAgICAiMC4xMDg3NzgsIDAuMTY0MTE4LCAwLjIxODQ3NCwgMC4yNTcwMDIsIDAuMzE4Mzg1LCAwLjM3Mjk5NSwgMC40NTAxMzQiLCBcCi0gICAgICAgICAgIjAuMTE0MDgsIDAuMTY5NDMsIDAuMjIzOTE1LCAwLjI2MjMzMywgMC4zMjM5NDksIDAuMzc4Mzc3LCAwLjQ1NTY1NCIsIFwKLSAgICAgICAgICAiMC4xMjEzNjUsIDAuMTc2NjYxLCAwLjIzMTE2NSwgMC4yNjk2MTEsIDAuMzMxNDcxLCAwLjM4NTc2NCwgMC40NjI3IiwgXAotICAgICAgICAgICIwLjEyNjYzMywgMC4xODE4NDMsIDAuMjM2MjEsIDAuMjc0ODg4LCAwLjMzNjg3NCwgMC4zOTAzOTgsIDAuNDY4MjUzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDI0NjY2LCAwLjEzNDczMSwgMC4yNDYxNywgMC4zMjYwNTgsIDAuNDU0MzU0LCAwLjU2Njc1NiwgMC43Mjc2MTkiLCBcCi0gICAgICAgICAgIjAuMDI0NjM4LCAwLjEzNDY5NywgMC4yNDU1MDcsIDAuMzI1ODQsIDAuNDUzNTA4LCAwLjU2Njc3NywgMC43Mjc2MzQiLCBcCi0gICAgICAgICAgIjAuMDI0NjE4LCAwLjEzNDcwNSwgMC4yNDU3MDUsIDAuMzI2MDU5LCAwLjQ1MzcxNiwgMC41NjY1NDYsIDAuNzI3Njg1IiwgXAotICAgICAgICAgICIwLjAyNDcxOCwgMC4xMzQ3MSwgMC4yNDYzMzMsIDAuMzI2MDY0LCAwLjQ1MjYzNCwgMC41NjY3NTYsIDAuNzI3NjI2IiwgXAotICAgICAgICAgICIwLjAyNDY1NiwgMC4xMzQ3MiwgMC4yNDU3NjQsIDAuMzI2MDcsIDAuNDU0MzkzLCAwLjU2Njc3NiwgMC43Mjc2NDciLCBcCi0gICAgICAgICAgIjAuMDI0NjY1LCAwLjEzNDUwNywgMC4yNDQ4LCAwLjMyNjA0LCAwLjQ1NDM4NCwgMC41NjY3MzksIDAuNzI3NTA3IiwgXAotICAgICAgICAgICIwLjAyNDU4MiwgMC4xMzM5MDEsIDAuMjQ0OTc1LCAwLjMyNjI2NiwgMC40NTQyMzMsIDAuNTY2NTEsIDAuNzI3Njg1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA5Njc2LCAwLjAwOTgzMiwgMC4wMDk4NTUsIDAuMDA5ODYyLCAwLjAwOTg3LCAwLjAwOTg3MiwgMC4wMDk4NzUiLCBcCi0gICAgICAgICAgIjAuMDA5Njc0LCAwLjAwOTgyOSwgMC4wMDk4NTIsIDAuMDA5ODU5LCAwLjAwOTg2OCwgMC4wMDk4NjksIDAuMDA5ODcyIiwgXAotICAgICAgICAgICIwLjAwOTcwNiwgMC4wMDk4NiwgMC4wMDk4ODQsIDAuMDA5ODkxLCAwLjAwOTg5NywgMC4wMDk5LCAwLjAwOTkwMyIsIFwKLSAgICAgICAgICAiMC4wMDk3NjcsIDAuMDA5OTIyLCAwLjAwOTk0NiwgMC4wMDk5NTMsIDAuMDA5OTU5LCAwLjAwOTk2MywgMC4wMDk5NjIiLCBcCi0gICAgICAgICAgIjAuMDA5ODM2LCAwLjAwOTk5MSwgMC4wMTAwMTQsIDAuMDEwMDIxLCAwLjAxMDAyNywgMC4wMTAwMjksIDAuMDEwMDMzIiwgXAotICAgICAgICAgICIwLjAwOTk0NCwgMC4wMTAwOTQsIDAuMDEwMTE0LCAwLjAxMDEyMSwgMC4wMTAxMjcsIDAuMDEwMTQsIDAuMDEwMTQzIiwgXAotICAgICAgICAgICIwLjAxMDAzOCwgMC4wMTAxODYsIDAuMDEwMjEyLCAwLjAxMDIyLCAwLjAxMDIyMywgMC4wMTAyMjUsIDAuMDEwMjMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMDAwOCwgMC4wMTAxNDQsIDAuMDEwMTY1LCAwLjAxMDE3MiwgMC4wMTAxNzgsIDAuMDEwMTc5LCAwLjAxMDE4MiIsIFwKLSAgICAgICAgICAiMC4wMTAwMTYsIDAuMDEwMTUyLCAwLjAxMDE3MywgMC4wMTAxNzksIDAuMDEwMTg0LCAwLjAxMDE4NywgMC4wMTAxOTUiLCBcCi0gICAgICAgICAgIjAuMDEwMDYsIDAuMDEwMTk1LCAwLjAxMDIxNSwgMC4wMTAyMjIsIDAuMDEwMjI2LCAwLjAxMDIzMSwgMC4wMTAyMzQiLCBcCi0gICAgICAgICAgIjAuMDEwMTI5LCAwLjAxMDI2NSwgMC4wMTAyODYsIDAuMDEwMjkzLCAwLjAxMDI5NywgMC4wMTAzLCAwLjAxMDMwMiIsIFwKLSAgICAgICAgICAiMC4wMTAyMDMsIDAuMDEwMzM5LCAwLjAxMDM1OSwgMC4wMTAzNjYsIDAuMDEwMzcxLCAwLjAxMDM3NCwgMC4wMTAzNzYiLCBcCi0gICAgICAgICAgIjAuMDEwMzI2LCAwLjAxMDQ0NywgMC4wMTA0NywgMC4wMTA0ODMsIDAuMDEwNDgxLCAwLjAxMDQ5MSwgMC4wMTA0ODciLCBcCi0gICAgICAgICAgIjAuMDEwNDE4LCAwLjAxMDU0NywgMC4wMTA1NjcsIDAuMDEwNTc4LCAwLjAxMDU4MywgMC4wMTA1ODMsIDAuMDEwNTg4Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihRTikgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAxLjM1MzUxOwotICAgIGZ1bmN0aW9uIDogIlFCSU5UIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBub25fdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJpc2luZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwMzIxOCwgMC4xNTgzOSwgMC4yMTMyODIsIDAuMjUyNDM4LCAwLjMxNTEyNSwgMC4zNzAwNjIsIDAuNDQ4NDI3IiwgXAotICAgICAgICAgICIwLjExMTQwNiwgMC4xNjY2MDEsIDAuMjIxNDczLCAwLjI2MDU5MywgMC4zMjM0NTYsIDAuMzc4MjY4LCAwLjQ1NjY0NiIsIFwKLSAgICAgICAgICAiMC4xMjAxNjEsIDAuMTc1MzEsIDAuMjMwMTczLCAwLjI2OTM2NiwgMC4zMzIxNTksIDAuMzg2OTU4LCAwLjQ2NTM5NSIsIFwKLSAgICAgICAgICAiMC4xMjY3NDEsIDAuMTgxODg5LCAwLjIzNjc2NCwgMC4yNzU5MjYsIDAuMzM4NTU1LCAwLjM5MzU1NSwgMC40NzE5MyIsIFwKLSAgICAgICAgICAiMC4xMzIwMzgsIDAuMTg3MTg1LCAwLjI0MjA4NCwgMC4yODEyMzgsIDAuMzQzOTYxLCAwLjM5ODg3NiwgMC40NzcyOTkiLCBcCi0gICAgICAgICAgIjAuMTM5Mjg1LCAwLjE5NDQ1OSwgMC4yNDkzNTYsIDAuMjg4NTExLCAwLjM1MTI3NSwgMC40MDYxODgsIDAuNDg0NDk2IiwgXAotICAgICAgICAgICIwLjE0NDU5NSwgMC4xOTk2NCwgMC4yNTQ1MSwgMC4yOTM4MjIsIDAuMzU2NTU2LCAwLjQxMTI5NSwgMC40ODk4NzIiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjUxMjksIDAuMTM3ODM3LCAwLjI1MzMxMSwgMC4zMzY0MjMsIDAuNDY4MjkyLCAwLjU4NDkzLCAwLjc1MDQ5NSIsIFwKLSAgICAgICAgICAiMC4wMjUxMTgsIDAuMTM3OTMxLCAwLjI1MzI0OSwgMC4zMzU5LCAwLjQ2Nzk2NywgMC41ODQ4OTUsIDAuNzUwNDkzIiwgXAotICAgICAgICAgICIwLjAyNTEzLCAwLjEzNzkzOCwgMC4yNTMyNTQsIDAuMzM2NDI5LCAwLjQ2Nzk3NiwgMC41ODQxODEsIDAuNzUwNSIsIFwKLSAgICAgICAgICAiMC4wMjUxMzIsIDAuMTM3OTA2LCAwLjI1MzYxMywgMC4zMzY0MjYsIDAuNDY3NjY4LCAwLjU4NDkyNywgMC43NTA1MDQiLCBcCi0gICAgICAgICAgIjAuMDI1MTM3LCAwLjEzNzkxNiwgMC4yNTMxMjcsIDAuMzM2NDI5LCAwLjQ2ODMyOSwgMC41ODQ5MTIsIDAuNzUwNDg5IiwgXAotICAgICAgICAgICIwLjAyNTExNiwgMC4xMzc2NDQsIDAuMjUzMTEsIDAuMzM2Mzk5LCAwLjQ2ODQxMywgMC41ODQ4ODYsIDAuNzUwNDQ4IiwgXAotICAgICAgICAgICIwLjAyNTEyMiwgMC4xMzc3NzUsIDAuMjUzMTM2LCAwLjMzNjA2NiwgMC40NjgxMzEsIDAuNTg0MTY0LCAwLjc1MDQ4MSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5ODU5MSwgMC4xNTMxLCAwLjIwNzEzOCwgMC4yNDU3NTQsIDAuMzA3NTI1LCAwLjM2MTY0LCAwLjQzODg1MSIsIFwKLSAgICAgICAgICAiMC4xMDY2MzgsIDAuMTYxMTQ2LCAwLjIxNTE4NCwgMC4yNTM3OTUsIDAuMzE1NTcxLCAwLjM2OTY4NSwgMC40NDY4OTQiLCBcCi0gICAgICAgICAgIjAuMTE1MzE4LCAwLjE2OTg0NSwgMC4yMjM4ODIsIDAuMjYyNTExLCAwLjMyNDMwNywgMC4zNzg0MjMsIDAuNDU1NjQ4IiwgXAotICAgICAgICAgICIwLjEyMTgwMiwgMC4xNzYzMzcsIDAuMjMwMzcyLCAwLjI2OTAyMiwgMC4zMzA3NzksIDAuMzg0ODU3LCAwLjQ2MjA2MiIsIFwKLSAgICAgICAgICAiMC4xMjcwMzYsIDAuMTgxNTMsIDAuMjM1NTY4LCAwLjI3NDE3OCwgMC4zMzU5NTcsIDAuMzkwMTA1LCAwLjQ2NzI3OCIsIFwKLSAgICAgICAgICAiMC4xMzQyNzMsIDAuMTg4NzY4LCAwLjI0MjgyNCwgMC4yODE0MzQsIDAuMzQzMjA1LCAwLjM5NzI1OCwgMC40NzQ0NTkiLCBcCi0gICAgICAgICAgIjAuMTM5NDkzLCAwLjE5NDA3NSwgMC4yNDgwNzEsIDAuMjg2NzI3LCAwLjM0ODUyNywgMC40MDI1NDMsIDAuNDc5ODExIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDI0MjgxLCAwLjEzMzY4MiwgMC4yNDU4OTIsIDAuMzI2MjQ1LCAwLjQ1NDc5NywgMC41NjYxOTQsIDAuNzI4MDgiLCBcCi0gICAgICAgICAgIjAuMDI0MjgyLCAwLjEzMzY4MiwgMC4yNDU4OTMsIDAuMzI2MjMzLCAwLjQ1NDc5MywgMC41NjYyMDksIDAuNzI4MDYiLCBcCi0gICAgICAgICAgIjAuMDI0MjYxLCAwLjEzMzc3LCAwLjI0NTg4MywgMC4zMjU1NzcsIDAuNDU0MTAyLCAwLjU2NjQ0OSwgMC43MjY2MzMiLCBcCi0gICAgICAgICAgIjAuMDI0MjcsIDAuMTMzNzY2LCAwLjI0NTg3OCwgMC4zMjU3NTYsIDAuNDU0MzI3LCAwLjU2NjI5NywgMC43Mjc0MTYiLCBcCi0gICAgICAgICAgIjAuMDI0MjkxLCAwLjEzMzc3MywgMC4yNDU4ODIsIDAuMzI1ODQyLCAwLjQ1NDIyNSwgMC41NjYzODMsIDAuNzI4MDM4IiwgXAotICAgICAgICAgICIwLjAyNDMyMiwgMC4xMzM2NTMsIDAuMjQ1NjksIDAuMzI1ODUsIDAuNDU0NzQsIDAuNTY2MjQxLCAwLjcyNjg1NSIsIFwKLSAgICAgICAgICAiMC4wMjQyNDMsIDAuMTMzNzA3LCAwLjI0NTkxOCwgMC4zMjYyMDMsIDAuNDU0Nzg4LCAwLjU2NjUxOSwgMC43MjY1ODgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTAwMDgsIDAuMDEwMTQ0LCAwLjAxMDE2NSwgMC4wMTAxNzIsIDAuMDEwMTc4LCAwLjAxMDE3OSwgMC4wMTAxODIiLCBcCi0gICAgICAgICAgIjAuMDEwMDE2LCAwLjAxMDE1MiwgMC4wMTAxNzMsIDAuMDEwMTc5LCAwLjAxMDE4NCwgMC4wMTAxODcsIDAuMDEwMTk1IiwgXAotICAgICAgICAgICIwLjAxMDA2LCAwLjAxMDE5NSwgMC4wMTAyMTUsIDAuMDEwMjIyLCAwLjAxMDIyNiwgMC4wMTAyMzEsIDAuMDEwMjM0IiwgXAotICAgICAgICAgICIwLjAxMDEyOSwgMC4wMTAyNjUsIDAuMDEwMjg2LCAwLjAxMDI5MywgMC4wMTAyOTcsIDAuMDEwMywgMC4wMTAzMDIiLCBcCi0gICAgICAgICAgIjAuMDEwMjAzLCAwLjAxMDMzOSwgMC4wMTAzNTksIDAuMDEwMzY2LCAwLjAxMDM3MSwgMC4wMTAzNzQsIDAuMDEwMzc2IiwgXAotICAgICAgICAgICIwLjAxMDMyNiwgMC4wMTA0NDcsIDAuMDEwNDcsIDAuMDEwNDgzLCAwLjAxMDQ4MSwgMC4wMTA0OTEsIDAuMDEwNDg3IiwgXAotICAgICAgICAgICIwLjAxMDQxOCwgMC4wMTA1NDcsIDAuMDEwNTY3LCAwLjAxMDU3OCwgMC4wMTA1ODMsIDAuMDEwNTgzLCAwLjAxMDU4OCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA5Njc2LCAwLjAwOTgzMiwgMC4wMDk4NTUsIDAuMDA5ODYyLCAwLjAwOTg3LCAwLjAwOTg3MiwgMC4wMDk4NzUiLCBcCi0gICAgICAgICAgIjAuMDA5Njc0LCAwLjAwOTgyOSwgMC4wMDk4NTIsIDAuMDA5ODU5LCAwLjAwOTg2OCwgMC4wMDk4NjksIDAuMDA5ODcyIiwgXAotICAgICAgICAgICIwLjAwOTcwNiwgMC4wMDk4NiwgMC4wMDk4ODQsIDAuMDA5ODkxLCAwLjAwOTg5NywgMC4wMDk5LCAwLjAwOTkwMyIsIFwKLSAgICAgICAgICAiMC4wMDk3NjcsIDAuMDA5OTIyLCAwLjAwOTk0NiwgMC4wMDk5NTMsIDAuMDA5OTU5LCAwLjAwOTk2MywgMC4wMDk5NjIiLCBcCi0gICAgICAgICAgIjAuMDA5ODM2LCAwLjAwOTk5MSwgMC4wMTAwMTQsIDAuMDEwMDIxLCAwLjAxMDAyNywgMC4wMTAwMjksIDAuMDEwMDMzIiwgXAotICAgICAgICAgICIwLjAwOTk0NCwgMC4wMTAwOTQsIDAuMDEwMTE0LCAwLjAxMDEyMSwgMC4wMTAxMjcsIDAuMDEwMTQsIDAuMDEwMTQzIiwgXAotICAgICAgICAgICIwLjAxMDAzOCwgMC4wMTAxODYsIDAuMDEwMjEyLCAwLjAxMDIyLCAwLjAxMDIyMywgMC4wMTAyMjUsIDAuMDEwMjMiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFJOKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2MzE0NjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MzE0NjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2MzA1Mzc7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyODYxLCAwLjAwMjgyOSwgMC4wMDI4NjYsIDAuMDAyOTM0LCAwLjAwMjk5OCwgMC4wMDMxMzUsIDAuMDAzMjkyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA1MDE0LCAwLjAwNTAxNiwgMC4wMDUwNzUsIDAuMDA1MTY5LCAwLjAwNTI4NywgMC4wMDU0NDgsIDAuMDA1NjA4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIkQiOwotICAgICAgc2RmX2NvbmQgOiAiRCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMjUsIC0wLjAyLCAtMC4wMiwgLTAuMDEzNzUsIC0wLjAxMzc1LCAtMC4wMSwgLTAuMDA3NSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDE4NzUsIC0wLjAxNSwgLTAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAyMTI1LCAtMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDI3NSwgLTAuMDI1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDQzNzUsIC0wLjA0Mzc1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDMzNzUsIC0wLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wNTg3NSwgLTAuMDUzNzUsIC0wLjA1Mzc1LCAtMC4wNDc1LCAtMC4wNDc1LCAtMC4wNDM3NSwgLTAuMDQxMjUiLCBcCi0gICAgICAgICAgIi0wLjA2MTI1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNDYyNSwgLTAuMDQzNzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjI1LCAwLjAxMTI1LCAwLjAxNzUsIDAuMDIzNzUsIDAuMDMsIDAuMDMzNzUsIDAuMDM2MjUiLCBcCi0gICAgICAgICAgIi0wLjAwNSwgMC4wMDYyNSwgMC4wMTI1LCAwLjAxODc1LCAwLjAxODc1LCAwLjAyODc1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wMTEyNSwgLTAuMDA2MjUsIDAuMDA2MjUsIDAuMDA2MjUsIDAuMDEyNSwgMC4wMTYyNSwgMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjAxNzUsIC0wLjAxMjUsIDAsIDAsIDAuMDA2MjUsIDAuMDEsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjAxNzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLCAwLCAwLjAxLCAwLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjAyNzUsIC0wLjAxNjI1LCAtMC4wMSwgLTAuMDEsIC0wLjAwMzc1LCAwLCAwLjAwODc1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIC0wLjAwMjUsIDAiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIkQiOwotICAgICAgc2RmX2NvbmQgOiAiRCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNSwgMC4wNDUsIDAuMDM4NzUsIDAuMDMyNSwgMC4wMzI1LCAwLjAyODc1LCAwLjAyNjI1IiwgXAotICAgICAgICAgICIwLjA1NSwgMC4wNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzNzUsIDAuMDMzNzUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMDYxMjUsIDAuMDU2MjUsIDAuMDUsIDAuMDQzNzUsIDAuMDQzNzUsIDAuMDQsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiMC4wNzM3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1NjI1LCAwLjA1LCAwLjA0NjI1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjA3Mzc1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDU2MjUsIDAuMDUyNSwgMC4wNSIsIFwKLSAgICAgICAgICAiMC4wODM3NSwgMC4wNzg3NSwgMC4wNzI1LCAwLjA2NjI1LCAwLjA2NjI1LCAwLjA2MjUsIDAuMDYiLCBcCi0gICAgICAgICAgIjAuMDkyNSwgMC4wODEyNSwgMC4wNzUsIDAuMDc1LCAwLjA2ODc1LCAwLjA2NSwgMC4wNjI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE4NzUsIDAuMDEzNzUsIDAuMDA3NSwgMC4wMDEyNSwgLTAuMDA1LCAtMC4wMTUsIC0wLjAxNzUiLCBcCi0gICAgICAgICAgIjAuMDMsIDAuMDE4NzUsIDAuMDEyNSwgMC4wMDYyNSwgMCwgLTAuMDAzNzUsIC0wLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMDM2MjUsIDAuMDMxMjUsIDAuMDE4NzUsIDAuMDEyNSwgMC4wMTI1LCAwLjAwMjUsIDAiLCBcCi0gICAgICAgICAgIjAuMDQyNSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMTg3NSwgMC4wMDg3NSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiMC4wNDg3NSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMTUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4wNTg3NSwgMC4wNDc1LCAwLjA0MTI1LCAwLjAzNSwgMC4wMjg3NSwgMC4wMjUsIDAuMDE2MjUiLCBcCi0gICAgICAgICAgIjAuMDY3NSwgMC4wNTYyNSwgMC4wNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAyNzUsIDAuMDI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IERGRlg0ICoKLSAqIC0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChERkZYNCkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAxLjU5MTY2OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIGZmIChOMzAsUUJJTlQpIHsKLSAgICBuZXh0X3N0YXRlIDogIkQiOwotICAgIGNsb2NrZWRfb24gOiAiQ0siOwotICB9Ci0gIHBpbihDSykgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjE1NDY2OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYxNTQ2NjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2MTU0MTk7Ci0gICAgY2xvY2sgOiB0cnVlOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzU4MiwgMC4wMDM1NzcsIDAuMDAzNjY0LCAwLjAwMzc0MSwgMC4wMDM4NTksIDAuMDA0MDkzLCAwLjAwNDI4NiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNzksIDAuMDA3ODkyLCAwLjAwNzk2MywgMC4wMDgwNTUsIDAuMDA4MTg3LCAwLjAwODMzOCwgMC4wMDg1MTgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFEIjsKLSAgICAgIHNkZl9jb25kIDogIkQgPT0gMSdiMCI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4xMDUyNDgsIDAuMTEzNDYsIDAuMTIyNTY4LCAwLjEyOTkwNCwgMC4xMzU3NDcsIDAuMTQzNTA2LCAwLjE0OTE5NiIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDcwMjI3LCAwLjA3ODMyNywgMC4wODczNDQsIDAuMDk0LCAwLjA5OTM1NiwgMC4xMDY0NDEsIDAuMTExNDgyIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihEKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2MzQzNTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MzMzMjk7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjM0MzU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyNjQ5LCAwLjAwMjYyMSwgMC4wMDI2NTQsIDAuMDAyNywgMC4wMDI3NzYsIDAuMDAyOTIxLCAwLjAwMzA2NiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzQyNywgMC4wMDM0MDgsIDAuMDAzNDMzLCAwLjAwMzQ4NywgMC4wMDM1NTcsIDAuMDAzNjk2LCAwLjAwMzg1OSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAwNjI1LCAtMC4wMDEyNSwgLTAuMDAxMjUsIDAuMDA1LCAwLjAwNSwgMC4wMDg3NSwgMC4wMTEyNSIsIFwKLSAgICAgICAgICAiLTAuMDE3NSwgLTAuMDA2MjUsIC0wLjAwNjI1LCAwLCAwLCAwLjAwMzc1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDEyNSwgLTAuMDEyNSwgLTAuMDA2MjUsIC0wLjAwNjI1LCAtMC4wMDI1LCAwIiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAxMjUsIC0wLjAwNjI1LCAtMC4wMDI1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAxMjUsIC0wLjAwODc1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDMzNzUsIC0wLjAyODc1LCAtMC4wMjI1LCAtMC4wMjI1LCAtMC4wMTYyNSwgLTAuMDEyNSwgLTAuMDEiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMjEyNSwgLTAuMDEyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEyNSwgMC4wMjM3NSwgMC4wMywgMC4wMzYyNSwgMC4wNDI1LCAwLjA0NjI1LCAwLjA1NSIsIFwKLSAgICAgICAgICAiMC4wMDc1LCAwLjAxODc1LCAwLjAyNSwgMC4wMzEyNSwgMC4wMzc1LCAwLjA0MTI1LCAwLjA1IiwgXAotICAgICAgICAgICIwLjAwNzUsIDAuMDEyNSwgMC4wMjUsIDAuMDMxMjUsIDAuMDMxMjUsIDAuMDQxMjUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMDA3NSwgMC4wMTI1LCAwLjAxODc1LCAwLjAyNSwgMC4wMzEyNSwgMC4wNDEyNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4wMDEyNSwgMC4wMTI1LCAwLjAxODc1LCAwLjAyNSwgMC4wMzEyNSwgMC4wMzUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMDAzNzUsIDAuMDA4NzUsIDAuMDE1LCAwLjAyMTI1LCAwLjAyNzUsIDAuMDM3NSwgMC4wNCIsIFwKLSAgICAgICAgICAiMC4wMDEyNSwgMC4wMDYyNSwgMC4wMTg3NSwgMC4wMjUsIDAuMDI1LCAwLjAzNSwgMC4wMzc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyNSwgMC4wMiwgMC4wMTM3NSwgMC4wMTM3NSwgMC4wMDc1LCAwLjAwMzc1LCAwLjAwMTI1IiwgXAotICAgICAgICAgICIwLjAzNjI1LCAwLjAyNSwgMC4wMTg3NSwgMC4wMTg3NSwgMC4wMTI1LCAwLjAwODc1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICIwLjA0MjUsIDAuMDMxMjUsIDAuMDI1LCAwLjAyNSwgMC4wMTg3NSwgMC4wMTUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4wNDg3NSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMjUsIDAuMDIxMjUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMDQ4NzUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMzEyNSwgMC4wMjc1LCAwLjAxODc1IiwgXAotICAgICAgICAgICIwLjA1ODc1LCAwLjA0NzUsIDAuMDQxMjUsIDAuMDQxMjUsIDAuMDM1LCAwLjAzMTI1LCAwLjAyODc1IiwgXAotICAgICAgICAgICIwLjA2MTI1LCAwLjA1NjI1LCAwLjA1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDMzNzUsIDAuMDMxMjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTI1LCAwLjAwNzUsIC0wLjAwNSwgLTAuMDExMjUsIC0wLjAxNzUsIC0wLjAyNzUsIC0wLjAzIiwgXAotICAgICAgICAgICIwLjAxNzUsIDAuMDEyNSwgMCwgLTAuMDA2MjUsIC0wLjAxMjUsIC0wLjAyMjUsIC0wLjAyNSIsIFwKLSAgICAgICAgICAiMC4wMjM3NSwgMC4wMTg3NSwgMC4wMDYyNSwgMCwgLTAuMDA2MjUsIC0wLjAxNjI1LCAtMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4wMywgMC4wMTg3NSwgMC4wMTI1LCAwLjAwNjI1LCAwLCAtMC4wMSwgLTAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4wMzYyNSwgMC4wMjUsIDAuMDE4NzUsIDAuMDA2MjUsIDAsIC0wLjAwMzc1LCAtMC4wMTI1IiwgXAotICAgICAgICAgICIwLjA0LCAwLjAyODc1LCAwLjAyMjUsIDAuMDE2MjUsIDAuMDEsIDAsIC0wLjAwODc1IiwgXAotICAgICAgICAgICIwLjA0MjUsIDAuMDM3NSwgMC4wMjUsIDAuMDE4NzUsIDAuMDEyNSwgMC4wMDI1LCAwIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihRKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDEuMzU3NTk7Ci0gICAgZnVuY3Rpb24gOiAiTjMwIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBub25fdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJpc2luZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4MTA5MSwgMC4xMzcwMDcsIDAuMTkxOTczLCAwLjIzMTMxMiwgMC4yOTM4NzYsIDAuMzQ4NDI2LCAwLjQyNzE0OSIsIFwKLSAgICAgICAgICAiMC4wODkyODcsIDAuMTQ1MjY2LCAwLjIwMDA2MSwgMC4yMzk2MjIsIDAuMzAxOSwgMC4zNTcyMDMsIDAuNDM1Mjc1IiwgXAotICAgICAgICAgICIwLjA5ODI3NCwgMC4xNTQyNDQsIDAuMjA5MDE0LCAwLjI0ODYxNCwgMC4zMTEwNzksIDAuMzY1OTE0LCAwLjQ0NDI0NCIsIFwKLSAgICAgICAgICAiMC4xMDU1NzcsIDAuMTYxNTQ3LCAwLjIxNjQ2NiwgMC4yNTU5NDcsIDAuMzE4NDA0LCAwLjM3MzI1OCwgMC40NTE1ODgiLCBcCi0gICAgICAgICAgIjAuMTExMzY1LCAwLjE2NzM0MiwgMC4yMjIyNDIsIDAuMjYxNzM2LCAwLjMyNDAxMywgMC4zNzg4NTgsIDAuNDU3Mjg1IiwgXAotICAgICAgICAgICIwLjExOTI2LCAwLjE3NTIzNywgMC4yMzAxNzYsIDAuMjY5NTE4LCAwLjMzMTkwMywgMC4zODY1OTIsIDAuNDY1MjE3IiwgXAotICAgICAgICAgICIwLjEyNDgyOSwgMC4xODA3NTQsIDAuMjM1OTcxLCAwLjI3NTA0OSwgMC4zMzczMzEsIDAuMzkyNDAyLCAwLjQ3MDkzIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDI1Nzc3LCAwLjEzODExNiwgMC4yNTMwOTgsIDAuMzM0OTE0LCAwLjQ2NzgzMywgMC41ODI2NTcsIDAuNzQ3OCIsIFwKLSAgICAgICAgICAiMC4wMjU3NDksIDAuMTM3ODI5LCAwLjI1MjY3MywgMC4zMzUwNSwgMC40NjcyNjMsIDAuNTgyNzUzLCAwLjc0OTE2OSIsIFwKLSAgICAgICAgICAiMC4wMjU3NjEsIDAuMTM3ODA0LCAwLjI1MjY5NCwgMC4zMzUwMjUsIDAuNDY3ODU4LCAwLjU4MzY2MiwgMC43NDkxODUiLCBcCi0gICAgICAgICAgIjAuMDI1NzQ5LCAwLjEzNzYyNiwgMC4yNTMwOTIsIDAuMzM1LCAwLjQ2Nzg2MiwgMC41ODM2NzIsIDAuNzQ3ODkzIiwgXAotICAgICAgICAgICIwLjAyNTY3NywgMC4xMzgxMzksIDAuMjUzMDk5LCAwLjMzNTE5NCwgMC40NjcyNDgsIDAuNTgyNzg2LCAwLjc0OTE1MSIsIFwKLSAgICAgICAgICAiMC4wMjU3NzYsIDAuMTM3NzU1LCAwLjI1MjY3NiwgMC4zMzU3MDIsIDAuNDY3MjI5LCAwLjU4MjY1OSwgMC43NDkwNDYiLCBcCi0gICAgICAgICAgIjAuMDI1NzU2LCAwLjEzODA1NywgMC4yNTI3MjIsIDAuMzM1MjQ0LCAwLjQ2NzMwNywgMC41ODM1MzYsIDAuNzQ3OTIzIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg3MjI1LCAwLjE0MjUyNywgMC4xOTY2MzgsIDAuMjM1MzE4LCAwLjI5NjYyNiwgMC4zNTExODksIDAuNDI4MjI1IiwgXAotICAgICAgICAgICIwLjA5NTQ1MiwgMC4xNTA2OTgsIDAuMjA0ODEyLCAwLjI0MzU0NSwgMC4zMDU1NzMsIDAuMzU5NDIsIDAuNDM2NDQ1IiwgXAotICAgICAgICAgICIwLjEwNDUzOCwgMC4xNTk4NDEsIDAuMjEzNzU1LCAwLjI1MjYzMSwgMC4zMTM5MzgsIDAuMzY4NDgsIDAuNDQ1NTU0IiwgXAotICAgICAgICAgICIwLjExMTg4MSwgMC4xNjcxODMsIDAuMjIxMDk4LCAwLjI1OTYzNSwgMC4zMjIwMTYsIDAuMzc1ODI5LCAwLjQ1MjkiLCBcCi0gICAgICAgICAgIjAuMTE3NzI2LCAwLjE3MzAwNywgMC4yMjcwNjksIDAuMjY1ODA4LCAwLjMyNzkxNCwgMC4zODE2NzcsIDAuNDU4NzA2IiwgXAotICAgICAgICAgICIwLjEyNTQ3NywgMC4xODA3MzUsIDAuMjM0ODg0LCAwLjI3MzU2NiwgMC4zMzU1MDIsIDAuMzg5MzUyLCAwLjQ2NjQ1NiIsIFwKLSAgICAgICAgICAiMC4xMzExNzksIDAuMTg2NDQ1LCAwLjI0MDQ4MiwgMC4yNzk0MDEsIDAuMzQxMzU1LCAwLjM5NTExNywgMC40NzIzODQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjQ3MzUsIDAuMTM0NjYyLCAwLjI0NjE3NCwgMC4zMjU4MjYsIDAuNDUyMjUzLCAwLjU2NjIzMywgMC43MjY5NDEiLCBcCi0gICAgICAgICAgIjAuMDI0Njg2LCAwLjEzNDY0OCwgMC4yNDU3MzMsIDAuMzI1ODI1LCAwLjQ1MzM3OCwgMC41NjYyMzEsIDAuNzI2OTM4IiwgXAotICAgICAgICAgICIwLjAyNDcxMSwgMC4xMzQ2NTMsIDAuMjQ1MjY4LCAwLjMyNTgyNCwgMC40NTIyMDgsIDAuNTY2MjMxLCAwLjcyNjk0NiIsIFwKLSAgICAgICAgICAiMC4wMjQ2MDUsIDAuMTM0NjQ4LCAwLjI0NDk4MiwgMC4zMjU3OTcsIDAuNDUzMjE5LCAwLjU2NjIzOCwgMC43MjY5NDgiLCBcCi0gICAgICAgICAgIjAuMDI0NzE1LCAwLjEzNDU1NCwgMC4yNDU2ODYsIDAuMzI1ODIxLCAwLjQ1MzA2NiwgMC41NjYyMywgMC43MjY5MzUiLCBcCi0gICAgICAgICAgIjAuMDI0NzIsIDAuMTM0Nzc4LCAwLjI0NjE0OCwgMC4zMjU3OTksIDAuNDUzNzQ4LCAwLjU2NjIwNiwgMC43MjY4MjgiLCBcCi0gICAgICAgICAgIjAuMDI0Nzc2LCAwLjEzNDY2MSwgMC4yNDU0ODMsIDAuMzI1Mjk0LCAwLjQ1MzExMywgMC41NjUxMTksIDAuNzI2MDQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDk2MTksIDAuMDA5Nzc1LCAwLjAwOTgsIDAuMDA5ODA4LCAwLjAwOTgxNCwgMC4wMDk4MTgsIDAuMDA5ODIiLCBcCi0gICAgICAgICAgIjAuMDA5NjA4LCAwLjAwOTc2OCwgMC4wMDk3OTQsIDAuMDA5ODAyLCAwLjAwOTgwOCwgMC4wMDk4MTIsIDAuMDA5ODE1IiwgXAotICAgICAgICAgICIwLjAwOTY1NSwgMC4wMDk4MSwgMC4wMDk4MzQsIDAuMDA5ODQyLCAwLjAwOTg0OSwgMC4wMDk4NDksIDAuMDA5ODUxIiwgXAotICAgICAgICAgICIwLjAwOTY5MiwgMC4wMDk4NTEsIDAuMDA5ODc2LCAwLjAwOTg4NCwgMC4wMDk4OTEsIDAuMDA5ODkxLCAwLjAwOTg5OCIsIFwKLSAgICAgICAgICAiMC4wMDk3NjksIDAuMDA5OTI1LCAwLjAwOTk1LCAwLjAwOTk1NywgMC4wMDk5NjQsIDAuMDA5OTY4LCAwLjAwOTk3MSIsIFwKLSAgICAgICAgICAiMC4wMDk4NjEsIDAuMDEwMDE4LCAwLjAxMDA1NCwgMC4wMTAwNTQsIDAuMDEwMDYsIDAuMDEwMDcyLCAwLjAxMDA2NSIsIFwKLSAgICAgICAgICAiMC4wMDk5NTksIDAuMDEwMTEzLCAwLjAxMDE1OCwgMC4wMTAxNDUsIDAuMDEwMTcxLCAwLjAxMDE3NiwgMC4wMTAxNiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEwMDI3LCAwLjAxMDE2OCwgMC4wMTAxOSwgMC4wMTAxOTcsIDAuMDEwMjAzLCAwLjAxMDIwMiwgMC4wMTAyMDkiLCBcCi0gICAgICAgICAgIjAuMDEwMDI5LCAwLjAxMDE3MSwgMC4wMTAxOTMsIDAuMDEwMiwgMC4wMTAyMDUsIDAuMDEwMjA1LCAwLjAxMDIxMiIsIFwKLSAgICAgICAgICAiMC4wMTAwOCwgMC4wMTAyMiwgMC4wMTAyNDIsIDAuMDEwMjQ5LCAwLjAxMDI1NSwgMC4wMTAyNTQsIDAuMDEwMjYxIiwgXAotICAgICAgICAgICIwLjAxMDEzLCAwLjAxMDI2OSwgMC4wMTAyOTEsIDAuMDEwMjk4LCAwLjAxMDMwMywgMC4wMTAzMDcsIDAuMDEwMzEiLCBcCi0gICAgICAgICAgIjAuMDEwMjA4LCAwLjAxMDM0NywgMC4wMTAzNywgMC4wMTAzNzUsIDAuMDEwMzgyLCAwLjAxMDM4NSwgMC4wMTAzODgiLCBcCi0gICAgICAgICAgIjAuMDEwMzMyLCAwLjAxMDQ3LCAwLjAxMDQ5MywgMC4wMTA0OTcsIDAuMDEwNTA1LCAwLjAxMDUwOSwgMC4wMTA1MTMiLCBcCi0gICAgICAgICAgIjAuMDEwNDIyLCAwLjAxMDU1OCwgMC4wMTA1NzksIDAuMDEwNTk5LCAwLjAxMDU5MiwgMC4wMTA2MDgsIDAuMDEwNjExIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihRTikgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAxLjM3MDU5OwotICAgIGZ1bmN0aW9uIDogIlFCSU5UIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBub25fdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJpc2luZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwNTI0OCwgMC4xNjAzODksIDAuMjE1MTg2LCAwLjI1NDM0MiwgMC4zMTY4OTYsIDAuMzcxODQ0LCAwLjQ1MDEzMyIsIFwKLSAgICAgICAgICAiMC4xMTM0NiwgMC4xNjg2MTcsIDAuMjIzNDE3LCAwLjI2MjU3MiwgMC4zMjUyOTUsIDAuMzgwMDc0LCAwLjQ1ODM1OSIsIFwKLSAgICAgICAgICAiMC4xMjI1NjgsIDAuMTc3NzA1LCAwLjIzMjQ3NywgMC4yNzE2NTksIDAuMzM0MjEyLCAwLjM4OTE1NCwgMC40Njc0NTQiLCBcCi0gICAgICAgICAgIjAuMTI5OTA0LCAwLjE4NTA0OSwgMC4yMzk4MjEsIDAuMjc4OTQ2LCAwLjM0MTcyOSwgMC4zOTY1MDEsIDAuNDc0OCIsIFwKLSAgICAgICAgICAiMC4xMzU3NDcsIDAuMTkwODkyLCAwLjI0NTY4NywgMC4yODQ4NDEsIDAuMzQ3NTg5LCAwLjQwMjM0MSwgMC40ODA2MjciLCBcCi0gICAgICAgICAgIjAuMTQzNTA2LCAwLjE5ODU5MSwgMC4yNTMzOTQsIDAuMjkyNTUzLCAwLjM1NTI1MSwgMC40MTAwMzMsIDAuNDg4MzQyIiwgXAotICAgICAgICAgICIwLjE0OTE5NiwgMC4yMDQzMjUsIDAuMjU5MTIzLCAwLjI5ODIzNywgMC4zNjEwMTYsIDAuNDE1NzExLCAwLjQ5NDA4MSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyNTE0OSwgMC4xMzc3OTMsIDAuMjUzMzk5LCAwLjMzNjEzNCwgMC40NjcyNTgsIDAuNTg0NDIsIDAuNzQ5ODQ2IiwgXAotICAgICAgICAgICIwLjAyNTEzOSwgMC4xMzc2MDUsIDAuMjUzMDg0LCAwLjMzNjEzNCwgMC40Njc1NzksIDAuNTg0NDI0LCAwLjc0OTg0MSIsIFwKLSAgICAgICAgICAiMC4wMjUxNSwgMC4xMzc3OTksIDAuMjUzMDI2LCAwLjMzNjEzNCwgMC40NjcyNDksIDAuNTg0NDEsIDAuNzQ5ODUxIiwgXAotICAgICAgICAgICIwLjAyNTEyNiwgMC4xMzc4MDIsIDAuMjUzMDU4LCAwLjMzNTYzMSwgMC40Njc1NjQsIDAuNTg0NDA0LCAwLjc0OTg1MSIsIFwKLSAgICAgICAgICAiMC4wMjUxNSwgMC4xMzc4NTIsIDAuMjUzMDgsIDAuMzM2MTMyLCAwLjQ2NzU1OCwgMC41ODQ0MTgsIDAuNzQ5ODQ4IiwgXAotICAgICAgICAgICIwLjAyNTE1NywgMC4xMzc3MDQsIDAuMjUzMzgyLCAwLjMzNjEwOCwgMC40Njc2ODIsIDAuNTg0Mzk2LCAwLjc0OTc4MiIsIFwKLSAgICAgICAgICAiMC4wMjUxNDUsIDAuMTM3ODA2LCAwLjI1MzA1NSwgMC4zMzU0ODksIDAuNDY3NTU3LCAwLjU4MzM3MiwgMC43NDg1MzYiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDAwOTMsIDAuMTU0NTYxLCAwLjIwODU1LCAwLjI0NzE0NSwgMC4zMDg4MzcsIDAuMzYyODg4LCAwLjQ0MDA2MyIsIFwKLSAgICAgICAgICAiMC4xMDgyOTgsIDAuMTYyNzY5LCAwLjIxNjc1OSwgMC4yNTUzNjMsIDAuMzE3MDUyLCAwLjM3MTE0NiwgMC40NDgyNDUiLCBcCi0gICAgICAgICAgIjAuMTE3Mjg0LCAwLjE3MTc1MywgMC4yMjU3NDEsIDAuMjY0MzQ4LCAwLjMyNjAzOCwgMC4zODAwNSwgMC40NTcyMjYiLCBcCi0gICAgICAgICAgIjAuMTI0NTk5LCAwLjE3OTA3MywgMC4yMzMwNTQsIDAuMjcxNjYzLCAwLjMzMzM0NywgMC4zODczNjUsIDAuNDY0NTQ0IiwgXAotICAgICAgICAgICIwLjEzMDM1NywgMC4xODQ4MzYsIDAuMjM4ODI0LCAwLjI3NzQ0OSwgMC4zMzkxMzIsIDAuMzkzMTQ1LCAwLjQ3MDI5NyIsIFwKLSAgICAgICAgICAiMC4xMzgyNjEsIDAuMTkyNzMzLCAwLjI0NjczNywgMC4yODUzMjUsIDAuMzQ3MDI1LCAwLjQwMTA2NCwgMC40NzgyMDMiLCBcCi0gICAgICAgICAgIjAuMTQzODI1LCAwLjE5ODI5MywgMC4yNTIyNTMsIDAuMjkwODkyLCAwLjM1MjUxLCAwLjQwNjUxOSwgMC40ODM4MTIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjQzMDcsIDAuMTMzNTkzLCAwLjI0NTY2NywgMC4zMjUzNDQsIDAuNDU0MzU5LCAwLjU2NTg5OSwgMC43MjYxNjQiLCBcCi0gICAgICAgICAgIjAuMDI0MzExLCAwLjEzMzU3OSwgMC4yNDU0NjEsIDAuMzI1NDI5LCAwLjQ1Mzg4NSwgMC41NjU5MzEsIDAuNzI3MzkzIiwgXAotICAgICAgICAgICIwLjAyNDMwOSwgMC4xMzM1NzcsIDAuMjQ1NDQ4LCAwLjMyNTQxMiwgMC40NTQzODEsIDAuNTY2ODE3LCAwLjcyNzM5NiIsIFwKLSAgICAgICAgICAiMC4wMjQyOTksIDAuMTMzNTY4LCAwLjI0NTY2MywgMC4zMjUzOTUsIDAuNDU0Mzg3LCAwLjU2NjgyOSwgMC43MjYxOSIsIFwKLSAgICAgICAgICAiMC4wMjQzMDgsIDAuMTMzNjU0LCAwLjI0NTY2NSwgMC4zMjU0OTYsIDAuNDUzODI4LCAwLjU2NjAzOSwgMC43MjczNTEiLCBcCi0gICAgICAgICAgIjAuMDI0MzUxLCAwLjEzMzU2LCAwLjI0NTUzMiwgMC4zMjU5MzIsIDAuNDUzODExLCAwLjU2NTksIDAuNzI3MjMyIiwgXAotICAgICAgICAgICIwLjAyNDI4MywgMC4xMzM1OTgsIDAuMjQ1MjgxLCAwLjMyNTUzMywgMC40NTM5MzEsIDAuNTY2NjgyLCAwLjcyNjIzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEwMDI3LCAwLjAxMDE2OCwgMC4wMTAxOSwgMC4wMTAxOTcsIDAuMDEwMjAzLCAwLjAxMDIwMiwgMC4wMTAyMDkiLCBcCi0gICAgICAgICAgIjAuMDEwMDI5LCAwLjAxMDE3MSwgMC4wMTAxOTMsIDAuMDEwMiwgMC4wMTAyMDUsIDAuMDEwMjA1LCAwLjAxMDIxMiIsIFwKLSAgICAgICAgICAiMC4wMTAwOCwgMC4wMTAyMiwgMC4wMTAyNDIsIDAuMDEwMjQ5LCAwLjAxMDI1NSwgMC4wMTAyNTQsIDAuMDEwMjYxIiwgXAotICAgICAgICAgICIwLjAxMDEzLCAwLjAxMDI2OSwgMC4wMTAyOTEsIDAuMDEwMjk4LCAwLjAxMDMwMywgMC4wMTAzMDcsIDAuMDEwMzEiLCBcCi0gICAgICAgICAgIjAuMDEwMjA4LCAwLjAxMDM0NywgMC4wMTAzNywgMC4wMTAzNzUsIDAuMDEwMzgyLCAwLjAxMDM4NSwgMC4wMTAzODgiLCBcCi0gICAgICAgICAgIjAuMDEwMzMyLCAwLjAxMDQ3LCAwLjAxMDQ5MywgMC4wMTA0OTcsIDAuMDEwNTA1LCAwLjAxMDUwOSwgMC4wMTA1MTMiLCBcCi0gICAgICAgICAgIjAuMDEwNDIyLCAwLjAxMDU1OCwgMC4wMTA1NzksIDAuMDEwNTk5LCAwLjAxMDU5MiwgMC4wMTA2MDgsIDAuMDEwNjExIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDk2MTksIDAuMDA5Nzc1LCAwLjAwOTgsIDAuMDA5ODA4LCAwLjAwOTgxNCwgMC4wMDk4MTgsIDAuMDA5ODIiLCBcCi0gICAgICAgICAgIjAuMDA5NjA4LCAwLjAwOTc2OCwgMC4wMDk3OTQsIDAuMDA5ODAyLCAwLjAwOTgwOCwgMC4wMDk4MTIsIDAuMDA5ODE1IiwgXAotICAgICAgICAgICIwLjAwOTY1NSwgMC4wMDk4MSwgMC4wMDk4MzQsIDAuMDA5ODQyLCAwLjAwOTg0OSwgMC4wMDk4NDksIDAuMDA5ODUxIiwgXAotICAgICAgICAgICIwLjAwOTY5MiwgMC4wMDk4NTEsIDAuMDA5ODc2LCAwLjAwOTg4NCwgMC4wMDk4OTEsIDAuMDA5ODkxLCAwLjAwOTg5OCIsIFwKLSAgICAgICAgICAiMC4wMDk3NjksIDAuMDA5OTI1LCAwLjAwOTk1LCAwLjAwOTk1NywgMC4wMDk5NjQsIDAuMDA5OTY4LCAwLjAwOTk3MSIsIFwKLSAgICAgICAgICAiMC4wMDk4NjEsIDAuMDEwMDE4LCAwLjAxMDA1NCwgMC4wMTAwNTQsIDAuMDEwMDYsIDAuMDEwMDcyLCAwLjAxMDA2NSIsIFwKLSAgICAgICAgICAiMC4wMDk5NTksIDAuMDEwMTEzLCAwLjAxMDE1OCwgMC4wMTAxNDUsIDAuMDEwMTcxLCAwLjAxMDE3NiwgMC4wMTAxNiIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogRExZMVgxICoKLSAqIC0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoRExZMVgxKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMzM5MjI0OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2NzE0MTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2NzExMzQ7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjcxNDE7Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4zNDQ5MTc7Ci0gICAgZnVuY3Rpb24gOiAiQSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc4MTI3LCAwLjA5Njc2MSwgMC4yMDIyNTMsIDAuMjk1MzQyLCAwLjQxOTQzMywgMC42Njc2MDcsIDAuODIyNjg1IiwgXAotICAgICAgICAgICIwLjA4NTAxMywgMC4xMDM2MzgsIDAuMjA5MTM3LCAwLjMwMjIxNiwgMC40MjYyOCwgMC42NzQ0OTIsIDAuODI5NTIiLCBcCi0gICAgICAgICAgIjAuMDkwMTg4LCAwLjEwODgyMiwgMC4yMTQzMzEsIDAuMzA3Mzk3LCAwLjQzMTQ3NiwgMC42Nzk2NjUsIDAuODM0NzgxIiwgXAotICAgICAgICAgICIwLjA5Mzk4NiwgMC4xMTI2MSwgMC4yMTgxMzUsIDAuMzExMiwgMC40MzUzMTEsIDAuNjgzNDIyLCAwLjgzODU0NSIsIFwKLSAgICAgICAgICAiMC4wOTcwNDgsIDAuMTE1NzE2LCAwLjIyMTIzNSwgMC4zMTQyODIsIDAuNDM4NDUxLCAwLjY4NjUxNiwgMC44NDE2MjciLCBcCi0gICAgICAgICAgIjAuMTAxMTQ3LCAwLjExOTc3MSwgMC4yMjUyNjEsIDAuMzE4Mzk5LCAwLjQ0MjQzNywgMC42OTA1OTIsIDAuODQ1ODM0IiwgXAotICAgICAgICAgICIwLjEwNDIwNywgMC4xMjI5NjIsIDAuMjI4MzA0LCAwLjMyMTM4MSwgMC40NDU1MzksIDAuNjkzNjg4LCAwLjg0ODk1NyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzA1MDgsIDAuMTA5NTE5LCAwLjMzMTcsIDAuNTI2OTc2LCAwLjc4ODE0MywgMS4zMTAyNSwgMS42Mzc3MiIsIFwKLSAgICAgICAgICAiMC4wNzA0NDQsIDAuMTA5NDQxLCAwLjMzMTY4MiwgMC41MjcxNjIsIDAuNzg4MzY1LCAxLjMwOTUsIDEuNjM4NzIiLCBcCi0gICAgICAgICAgIjAuMDcwNTA3LCAwLjEwOTUxNCwgMC4zMzE2NzcsIDAuNTI3MjI5LCAwLjc4OTE2OSwgMS4zMDk5NiwgMS42MzYzNCIsIFwKLSAgICAgICAgICAiMC4wNzA1NjksIDAuMTA5NDUzLCAwLjMzMTY1MywgMC41MjcyMjUsIDAuNzg4MjYzLCAxLjMxMTA1LCAxLjYzNzIiLCBcCi0gICAgICAgICAgIjAuMDcwNDUzLCAwLjEwOTM3NSwgMC4zMzE2NDYsIDAuNTI3Njg4LCAwLjc4ODA2MiwgMS4zMTA2OSwgMS42MzcxNCIsIFwKLSAgICAgICAgICAiMC4wNzA1NTcsIDAuMTA5MzE3LCAwLjMzMTE2OSwgMC41MjY5NjEsIDAuNzg5MDg3LCAxLjMxMDgxLCAxLjYzNjYiLCBcCi0gICAgICAgICAgIjAuMDcwNTMsIDAuMTA5NDg1LCAwLjMzMTE0NSwgMC41Mjc1MzMsIDAuNzg5MTc3LCAxLjMxMTk5LCAxLjYzNjkzIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3NzI3OSwgMC4wOTU0MDcsIDAuMTk3OTkyLCAwLjI4ODUyNCwgMC40MDkxNTMsIDAuNjUwMjUxLCAwLjgwMTI0MSIsIFwKLSAgICAgICAgICAiMC4wODQsIDAuMTAyMTIzLCAwLjIwNDcxLCAwLjI5NTIyMiwgMC40MTU4NjYsIDAuNjU3MiwgMC44MDc5MzIiLCBcCi0gICAgICAgICAgIjAuMDg4OTk0LCAwLjEwNzEyMywgMC4yMDk3MDksIDAuMzAwMjI4LCAwLjQyMDg1MSwgMC42NjIxOTgsIDAuODEyOTA4IiwgXAotICAgICAgICAgICIwLjA5MjU2NCwgMC4xMTA2NjksIDAuMjEzMjc1LCAwLjMwMzc0NSwgMC40MjQ0MTcsIDAuNjY1Nzc0LCAwLjgxNjU5NCIsIFwKLSAgICAgICAgICAiMC4wOTU0MDEsIDAuMTEzNTgyLCAwLjIxNjE3NywgMC4zMDY2NzYsIDAuNDI3MzA5LCAwLjY2ODYwNiwgMC44MTkzNjIiLCBcCi0gICAgICAgICAgIjAuMDk5Mjc0LCAwLjExNzM3OSwgMC4yMTk5NTcsIDAuMzEwNDksIDAuNDMxMDk4LCAwLjY3MjQyOSwgMC44MjMxOCIsIFwKLSAgICAgICAgICAiMC4xMDIwOTQsIDAuMTIwMTE3LCAwLjIyMjc4NiwgMC4zMTMxNjgsIDAuNDMzODIzLCAwLjY3NTE5OSwgMC44MjYwNCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjcxNDUsIDAuMTA0MDA2LCAwLjMxNTQxNSwgMC41MDA3MjYsIDAuNzUwODA0LCAxLjI0MzkxLCAxLjU1MzY2IiwgXAotICAgICAgICAgICIwLjA2NzIwNiwgMC4xMDQyMTYsIDAuMzE1MzM0LCAwLjUwMjAyMywgMC43NTA3NTgsIDEuMjQ1NTEsIDEuNTUzNzkiLCBcCi0gICAgICAgICAgIjAuMDY3MjA1LCAwLjEwNDIxNiwgMC4zMTQ5NzQsIDAuNTAwODgsIDAuNzUwNjgxLCAxLjI0NTUxLCAxLjU1Njc0IiwgXAotICAgICAgICAgICIwLjA2NzIzMiwgMC4xMDQxMTMsIDAuMzE0OTYsIDAuNTAxOTMzLCAwLjc1MDc5MywgMS4yNDU3MSwgMS41NTU5MSIsIFwKLSAgICAgICAgICAiMC4wNjcwODQsIDAuMTA0MDg0LCAwLjMxNTMyOCwgMC41MDE5NjcsIDAuNzQ4OTIzLCAxLjI0NiwgMS41NTYzMSIsIFwKLSAgICAgICAgICAiMC4wNjcwOTgsIDAuMTAzOTI5LCAwLjMxNDkyNSwgMC41MDA4NywgMC43NTA1MzcsIDEuMjQ1ODksIDEuNTU3MjciLCBcCi0gICAgICAgICAgIjAuMDY3MDg0LCAwLjEwNDA4MiwgMC4zMTUyNTksIDAuNTAxMDA5LCAwLjc0OTUwMiwgMS4yNDc4LCAxLjU1OSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzk5OSwgMC4wMDQwMDMsIDAuMDA0MDA4LCAwLjAwNDAxMywgMC4wMDQwMSwgMC4wMDQwMSwgMC4wMDQwMSIsIFwKLSAgICAgICAgICAiMC4wMDQwMTcsIDAuMDA0MDIxLCAwLjAwNDAyNiwgMC4wMDQwMjcsIDAuMDA0MDI4LCAwLjAwNDAyOCwgMC4wMDQwMjYiLCBcCi0gICAgICAgICAgIjAuMDA0MSwgMC4wMDQxMDQsIDAuMDA0MTA5LCAwLjAwNDExLCAwLjAwNDExMSwgMC4wMDQxMTEsIDAuMDA0MTExIiwgXAotICAgICAgICAgICIwLjAwNDIxNiwgMC4wMDQyMiwgMC4wMDQyMjcsIDAuMDA0MjI4LCAwLjAwNDIyOSwgMC4wMDQyMjgsIDAuMDA0MjI4IiwgXAotICAgICAgICAgICIwLjAwNDM2MywgMC4wMDQzNTQsIDAuMDA0MzU5LCAwLjAwNDM3MiwgMC4wMDQzNiwgMC4wMDQzNzMsIDAuMDA0MzczIiwgXAotICAgICAgICAgICIwLjAwNDU4NywgMC4wMDQ1OSwgMC4wMDQ1OTUsIDAuMDA0NTk2LCAwLjAwNDU5OCwgMC4wMDQ2MDEsIDAuMDA0NTg3IiwgXAotICAgICAgICAgICIwLjAwNDgwMSwgMC4wMDQ3ODQsIDAuMDA0ODEsIDAuMDA0ODEsIDAuMDA0ODExLCAwLjAwNDgxMSwgMC4wMDQ3OTYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQ4MDMsIDAuMDA0ODA5LCAwLjAwNDgxOCwgMC4wMDQ4MiwgMC4wMDQ4MjEsIDAuMDA0ODIyLCAwLjAwNDgyMiIsIFwKLSAgICAgICAgICAiMC4wMDQ4MTMsIDAuMDA0ODE5LCAwLjAwNDgyOCwgMC4wMDQ4MywgMC4wMDQ4MzEsIDAuMDA0ODMxLCAwLjAwNDgzMiIsIFwKLSAgICAgICAgICAiMC4wMDQ5LCAwLjAwNDkwNywgMC4wMDQ5MTYsIDAuMDA0OTE3LCAwLjAwNDkxOCwgMC4wMDQ5MTksIDAuMDA0OTE5IiwgXAotICAgICAgICAgICIwLjAwNTAyMiwgMC4wMDUwMjEsIDAuMDA1MDM4LCAwLjAwNTAzMiwgMC4wMDUwMzMsIDAuMDA1MDQxLCAwLjAwNTA0MSIsIFwKLSAgICAgICAgICAiMC4wMDUxNCwgMC4wMDUxNTYsIDAuMDA1MTY2LCAwLjAwNTE2NywgMC4wMDUxNTksIDAuMDA1MTY4LCAwLjAwNTE2IiwgXAotICAgICAgICAgICIwLjAwNTM2MSwgMC4wMDUzNzgsIDAuMDA1Mzc4LCAwLjAwNTM5LCAwLjAwNTM4LCAwLjAwNTM4MSwgMC4wMDUzOTEiLCBcCi0gICAgICAgICAgIjAuMDA1NTYzLCAwLjAwNTU4NiwgMC4wMDU1NzgsIDAuMDA1NTk1LCAwLjAwNTU5NiwgMC4wMDU1ODUsIDAuMDA1NTg1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBETFk0WDEgKgotICogLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChETFk0WDEpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC45NTczNjsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNzE1OTU4OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDcxNTk1ODsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA3MTU3OTQ7Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4zNDc1NTg7Ci0gICAgZnVuY3Rpb24gOiAiQSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjE4OTg0LCAwLjIzNzM0MiwgMC4zNDEyNzgsIDAuNDMyNzksIDAuNTU1MTMyLCAwLjc5OTQzMywgMC45NTIxMyIsIFwKLSAgICAgICAgICAiMC4yMjYxMjcsIDAuMjQ0NDg4LCAwLjM0ODM3NywgMC40Mzk5NTEsIDAuNTYyMjc5LCAwLjgwNjYwOSwgMC45NTkyODMiLCBcCi0gICAgICAgICAgIjAuMjMxNjQ3LCAwLjI1MDAwNCwgMC4zNTM4OTQsIDAuNDQ1NTQ4LCAwLjU2Nzc5NywgMC44MTIwODksIDAuOTY0Nzg5IiwgXAotICAgICAgICAgICIwLjIzNTcyLCAwLjI1NDA4LCAwLjM1Nzk2OSwgMC40NDk2NzYsIDAuNTcxODczLCAwLjgxNjI4NiwgMC45Njg4NzEiLCBcCi0gICAgICAgICAgIjAuMjM5MDk2LCAwLjI1NzQ1LCAwLjM2MTI1NywgMC40NTI5ODksIDAuNTc1MDAxLCAwLjgxOTQ1LCAwLjk3MjE1MiIsIFwKLSAgICAgICAgICAiMC4yNDM0NjcsIDAuMjYxODIsIDAuMzY1NjA3LCAwLjQ1NzMxNywgMC41Nzk1MTEsIDAuODIzODkyLCAwLjk3NjU5MiIsIFwKLSAgICAgICAgICAiMC4yNDY2OTgsIDAuMjY0OTUsIDAuMzY4ODM5LCAwLjQ2MDY1OCwgMC41ODI4MDksIDAuODI3MjA4LCAwLjk3OTkxMiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjk5MjEsIDAuMTA4MTg4LCAwLjMyNjAyNywgMC41MTg4MDgsIDAuNzc1MTAyLCAxLjI5MDgzLCAxLjYxMDU0IiwgXAotICAgICAgICAgICIwLjA2OTg2OSwgMC4xMDgxODIsIDAuMzI2NjE3LCAwLjUxODc1MSwgMC43NzU0NiwgMS4yODkxNSwgMS42MTA1IiwgXAotICAgICAgICAgICIwLjA2OTg2NywgMC4xMDgxNzMsIDAuMzI2NjE1LCAwLjUxOTQxMywgMC43NzUwOTIsIDEuMjkwNzksIDEuNjEwNjQiLCBcCi0gICAgICAgICAgIjAuMDY5ODY5LCAwLjEwODE4MiwgMC4zMjY2MTQsIDAuNTE4NDU3LCAwLjc3NTQ1NCwgMS4yODg5NSwgMS42MTA1MyIsIFwKLSAgICAgICAgICAiMC4wNjk4MjIsIDAuMTA4MTY3LCAwLjMyNjU4OSwgMC41MTgyNDYsIDAuNzc2MTE3LCAxLjI4ODE4LCAxLjYwODc3IiwgXAotICAgICAgICAgICIwLjA2OTgxOSwgMC4xMDgxNjMsIDAuMzI2NjE0LCAwLjUxODY5LCAwLjc3NTQ1MywgMS4yODgwMSwgMS42MDg5MiIsIFwKLSAgICAgICAgICAiMC4wNjk4NywgMC4xMDgwMzgsIDAuMzI2NTk1LCAwLjUxODg1NSwgMC43NzY2NjksIDEuMjg5MDMsIDEuNjEwNDgiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjE4MDI3LCAwLjIzNjE1OCwgMC4zMzg3NDUsIDAuNDI5MjA4LCAwLjU0OTgyOSwgMC43OTExMTcsIDAuOTQxOTEyIiwgXAotICAgICAgICAgICIwLjIyNTA2NiwgMC4yNDMxOTYsIDAuMzQ1Nzg3LCAwLjQzNjI0NCwgMC41NTY4NTcsIDAuNzk4MTY5LCAwLjk0ODk0NyIsIFwKLSAgICAgICAgICAiMC4yMzA0NjUsIDAuMjQ4NTk2LCAwLjM1MTE4NywgMC40NDE2NDIsIDAuNTYyMjU5LCAwLjgwMzUxMiwgMC45NTQzNSIsIFwKLSAgICAgICAgICAiMC4yMzQyMzMsIDAuMjUyMzY3LCAwLjM1NDk2MSwgMC40NDU0MjIsIDAuNTY2MDYxLCAwLjgwNzMzOCwgMC45NTgxMjUiLCBcCi0gICAgICAgICAgIjAuMjM3MzE5LCAwLjI1NTQ1LCAwLjM1Nzk0LCAwLjQ0ODUxMiwgMC41NjkxMzIsIDAuODEwNDAzLCAwLjk2MTEyMiIsIFwKLSAgICAgICAgICAiMC4yNDE0OTgsIDAuMjU5NjI5LCAwLjM2MjEyOCwgMC40NTI2MDUsIDAuNTczMjk1LCAwLjgxNDQ1NiwgMC45NjUyMzIiLCBcCi0gICAgICAgICAgIjAuMjQ0MzU5LCAwLjI2MjQ5MSwgMC4zNjUwNjcsIDAuNDU1NjEzLCAwLjU3NjE2MywgMC44MTc1MTcsIDAuOTY3OTYzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2NzY3NywgMC4xMDQ2OCwgMC4zMTU3NiwgMC41MDA1NTMsIDAuNzUwODcsIDEuMjQ1NjcsIDEuNTU1MzMiLCBcCi0gICAgICAgICAgIjAuMDY3Njc3LCAwLjEwNDY3MywgMC4zMTU3NjQsIDAuNTAwNTg5LCAwLjc0ODM5LCAxLjI0NTkxLCAxLjU1NTc0IiwgXAotICAgICAgICAgICIwLjA2NzY3NywgMC4xMDQ1NTIsIDAuMzE1MDgzLCAwLjUwMDU5LCAwLjc0ODQwMywgMS4yNDM5OSwgMS41NTUzNCIsIFwKLSAgICAgICAgICAiMC4wNjc2NzYsIDAuMTA0NjgsIDAuMzE1MTYsIDAuNTAyMjQ3LCAwLjc1MDk5NywgMS4yNDYwMiwgMS41NTYxNCIsIFwKLSAgICAgICAgICAiMC4wNjc3MTUsIDAuMTA0NDk5LCAwLjMxNTY2LCAwLjUwMjI4NSwgMC43NDk2NDksIDEuMjQ1NiwgMS41NTYyNiIsIFwKLSAgICAgICAgICAiMC4wNjc2NzYsIDAuMTA0NTczLCAwLjMxNTY5OCwgMC41MDE1MzcsIDAuNzQ4Mzg3LCAxLjI0ODIxLCAxLjU1NDA1IiwgXAotICAgICAgICAgICIwLjA2NzY3NywgMC4xMDQ2NDUsIDAuMzE1NzIsIDAuNTAxNTAxLCAwLjc0ODM1MywgMS4yNDU2LCAxLjU1NTA2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE0Mzk4LCAwLjAxNDQwNywgMC4wMTQ0MTcsIDAuMDE0NDIsIDAuMDE0NDIxLCAwLjAxNDQyMSwgMC4wMTQ0MjEiLCBcCi0gICAgICAgICAgIjAuMDE0NDAzLCAwLjAxNDQxMSwgMC4wMTQ0MjIsIDAuMDE0NDI0LCAwLjAxNDQyNiwgMC4wMTQ0MjYsIDAuMDE0NDI2IiwgXAotICAgICAgICAgICIwLjAxNDQ5MywgMC4wMTQ1MDEsIDAuMDE0NTEzLCAwLjAxNDUxNCwgMC4wMTQ1MTUsIDAuMDE0NTE3LCAwLjAxNDUxNyIsIFwKLSAgICAgICAgICAiMC4wMTQ2MDYsIDAuMDE0NjE0LCAwLjAxNDYyNSwgMC4wMTQ2MjYsIDAuMDE0NjI4LCAwLjAxNDYyOSwgMC4wMTQ2MjkiLCBcCi0gICAgICAgICAgIjAuMDE0NzM4LCAwLjAxNDc0NiwgMC4wMTQ3NjQsIDAuMDE0NzU5LCAwLjAxNDc2NywgMC4wMTQ3NjgsIDAuMDE0NzY5IiwgXAotICAgICAgICAgICIwLjAxNDk1OCwgMC4wMTQ5NjYsIDAuMDE0OTg4LCAwLjAxNDk4OSwgMC4wMTQ5OTEsIDAuMDE0OTgxLCAwLjAxNDk4MiIsIFwKLSAgICAgICAgICAiMC4wMTUxNTcsIDAuMDE1MTgxLCAwLjAxNTE5MiwgMC4wMTUxNzgsIDAuMDE1MTgsIDAuMDE1MTgsIDAuMDE1MTg0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE0NTE2LCAwLjAxNDUyNSwgMC4wMTQ1NCwgMC4wMTQ1NDMsIDAuMDE0NTQ0LCAwLjAxNDU0NSwgMC4wMTQ1NDUiLCBcCi0gICAgICAgICAgIjAuMDE0NTI0LCAwLjAxNDUzMywgMC4wMTQ1NDgsIDAuMDE0NTUsIDAuMDE0NTUyLCAwLjAxNDU1MywgMC4wMTQ1NTIiLCBcCi0gICAgICAgICAgIjAuMDE0NjA1LCAwLjAxNDYxNCwgMC4wMTQ2MjgsIDAuMDE0NjMyLCAwLjAxNDYzNCwgMC4wMTQ2MzUsIDAuMDE0NjM0IiwgXAotICAgICAgICAgICIwLjAxNDcxNCwgMC4wMTQ3MjQsIDAuMDE0NzM5LCAwLjAxNDc0MSwgMC4wMTQ3NDIsIDAuMDE0NzQ0LCAwLjAxNDc0NCIsIFwKLSAgICAgICAgICAiMC4wMTQ4NDQsIDAuMDE0ODU1LCAwLjAxNDg2MiwgMC4wMTQ4NzIsIDAuMDE0ODc0LCAwLjAxNDg3NCwgMC4wMTQ4NzUiLCBcCi0gICAgICAgICAgIjAuMDE1MDU1LCAwLjAxNTA2NSwgMC4wMTUwODcsIDAuMDE1MDksIDAuMDE1MDg0LCAwLjAxNTA5MywgMC4wMTUwOTMiLCBcCi0gICAgICAgICAgIjAuMDE1MjY0LCAwLjAxNTI3NSwgMC4wMTUyODgsIDAuMDE1MjgsIDAuMDE1MjkzLCAwLjAxNTI4MSwgMC4wMTUyOTQiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogRURGRkhRWDEgKgotICogLS0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKEVERkZIUVgxKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDEuMDIxNzM7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgZmYgKE4zMCxRQklOVCkgewotICAgIG5leHRfc3RhdGUgOiAiKChFIEQpICsgKCFFICghKCFOMzApKSkpIjsKLSAgICBjbG9ja2VkX29uIDogIkNLIjsKLSAgfQotICBwaW4oQ0spICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDcwNjE5OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDcwNjExNDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA3MDYxOTsKLSAgICBjbG9jayA6IHRydWU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA0Mjg1LCAwLjAwNDI4MywgMC4wMDQzNTIsIDAuMDA0NDU4LCAwLjAwNDU3NSwgMC4wMDQ3OTQsIDAuMDA0OTg4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA4NjQxLCAwLjAwODY1MywgMC4wMDg3MzMsIDAuMDA4ODY4LCAwLjAwOTAwNCwgMC4wMDkzMDMsIDAuMDA5NTc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRCZFIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9FX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4xMDIxNSwgMC4xMTAzMSwgMC4xMTkyMzksIDAuMTI1OTQ4LCAwLjEzMTM5MiwgMC4xMzg3NjEsIDAuMTQ0MTMzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wNjAwMjIsIDAuMDY3OTg4LCAwLjA3Njg4MywgMC4wODM1MTYsIDAuMDg4ODA0LCAwLjA5NTc1LCAwLjEwMDgwOCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwOTUwMzE2OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDk0ODY1OTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA5NTAzMTY7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzODksIDAuMDAzODQ3LCAwLjAwMzg3MSwgMC4wMDM5MjMsIDAuMDA0MDA4LCAwLjAwNDE2NiwgMC4wMDQzNSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwODI1MiwgMC4wMDgyMjQsIDAuMDA4MjUsIDAuMDA4MzAzLCAwLjAwODM1OSwgMC4wMDg1MjMsIDAuMDA4NjcxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIkUiOwotICAgICAgc2RmX2NvbmQgOiAiRSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMzEyNSwgLTAuMDI2MjUsIC0wLjAyLCAtMC4wMiwgLTAuMDEzNzUsIC0wLjAxLCAtMC4wMDc1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDI1LCAtMC4wMjUsIC0wLjAyMTI1LCAtMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDM3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAzMTI1LCAtMC4wMjc1LCAtMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wNDM3NSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzNzUsIC0wLjAzMzc1LCAtMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wNDM3NSwgLTAuMDQsIC0wLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjA2NSwgLTAuMDYsIC0wLjA2LCAtMC4wNTM3NSwgLTAuMDUzNzUsIC0wLjA1LCAtMC4wNDc1IiwgXAotICAgICAgICAgICItMC4wNzM3NSwgLTAuMDY4NzUsIC0wLjA2MjUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNTI1LCAtMC4wNTYyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAxMjUsIC0wLjAwMTI1LCAwLjAwNSwgMC4wMTEyNSwgMC4wMTc1LCAwLjAyMTI1LCAwLjAyMzc1IiwgXAotICAgICAgICAgICItMC4wMTc1LCAtMC4wMDYyNSwgMCwgMC4wMDYyNSwgMC4wMDYyNSwgMC4wMTYyNSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLCAwLCAwLjAxLCAwLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAsIDAuMDAzNzUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgLTAuMDAyNSwgMCIsIFwKLSAgICAgICAgICAiLTAuMDQsIC0wLjAyODc1LCAtMC4wMjI1LCAtMC4wMTYyNSwgLTAuMDE2MjUsIC0wLjAwNjI1LCAtMC4wMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxNSwgLTAuMDA2MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIkUiOwotICAgICAgc2RmX2NvbmQgOiAiRSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNSwgMC4wNDUsIDAuMDM4NzUsIDAuMDMyNSwgMC4wMzI1LCAwLjAyODc1LCAwLjAyNjI1IiwgXAotICAgICAgICAgICIwLjA1NSwgMC4wNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzNzUsIDAuMDMzNzUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMDYxMjUsIDAuMDU2MjUsIDAuMDUsIDAuMDUsIDAuMDQzNzUsIDAuMDQsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiMC4wNzM3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1NjI1LCAwLjA1LCAwLjA1MjUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMDgsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNjI1LCAwLjA2MjUsIDAuMDU4NzUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIjAuMDksIDAuMDc4NzUsIDAuMDcyNSwgMC4wNzI1LCAwLjA2NjI1LCAwLjA2MjUsIDAuMDYiLCBcCi0gICAgICAgICAgIjAuMDkyNSwgMC4wODc1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNzUsIDAuMDcxMjUsIDAuMDY4NzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzc1LCAwLjAyNjI1LCAwLjAyLCAwLjAxMzc1LCAwLjAwNzUsIDAuMDAzNzUsIC0wLjAwNSIsIFwKLSAgICAgICAgICAiMC4wNDI1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMTg3NSwgMC4wMTI1LCAwLjAwODc1LCAwIiwgXAotICAgICAgICAgICIwLjA0ODc1LCAwLjA0Mzc1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMTg3NSwgMC4wMTUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMDU1LCAwLjA1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDI1LCAwLjAyMTI1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMDYxMjUsIDAuMDUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMjc1LCAwLjAxODc1IiwgXAotICAgICAgICAgICIwLjA2NSwgMC4wNiwgMC4wNTM3NSwgMC4wNDc1LCAwLjA0MTI1LCAwLjAzMTI1LCAwLjAyODc1IiwgXAotICAgICAgICAgICIwLjA3Mzc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDUsIDAuMDQzNzUsIDAuMDQsIDAuMDMxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEUpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTg2MTE0OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTg2MDU7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxODYxMTQ7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA3NDkyLCAwLjAwNzUwOCwgMC4wMDc1OTgsIDAuMDA3NzA4LCAwLjAwNzgzOCwgMC4wMDgwNDYsIDAuMDA4MjQzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA4ODMzLCAwLjAwODg0NCwgMC4wMDg5NjIsIDAuMDA5MTU1LCAwLjAwOTQwNSwgMC4wMDk4MTYsIDAuMDEwMjAzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEIjsKLSAgICAgIHNkZl9jb25kIDogIkQgPT0gMSdiMCI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDMxMjUsIC0wLjAyLCAtMC4wMTM3NSwgLTAuMDA3NSwgLTAuMDAxMjUsIDAuMDAyNSwgMC4wMDUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDAyNSwgMCIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAwODc1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjA0Mzc1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMjUsIC0wLjAxNSwgLTAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDIxMjUsIC0wLjAxODc1IiwgXAotICAgICAgICAgICItMC4wNTg3NSwgLTAuMDUzNzUsIC0wLjA0MTI1LCAtMC4wMzUsIC0wLjAzNSwgLTAuMDI1LCAtMC4wMjI1IiwgXAotICAgICAgICAgICItMC4wNjEyNSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDI3NSwgLTAuMDI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDYyNSwgMC4wMTEyNSwgMC4wMTc1LCAwLjAyMzc1LCAwLjAzLCAwLjAzMzc1LCAwLjA0MjUiLCBcCi0gICAgICAgICAgIi0wLjAwNSwgMC4wMDYyNSwgMC4wMTI1LCAwLjAxODc1LCAwLjAxODc1LCAwLjAyODc1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wMTEyNSwgLTAuMDA2MjUsIDAuMDA2MjUsIDAuMDA2MjUsIDAuMDEyNSwgMC4wMjI1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDE3NSwgLTAuMDA2MjUsIDAsIDAuMDA2MjUsIDAuMDA2MjUsIDAuMDE2MjUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjAxNzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLCAwLjAwNjI1LCAwLjAxLCAwLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjAyNzUsIC0wLjAyMjUsIC0wLjAxLCAtMC4wMSwgLTAuMDAzNzUsIDAuMDA2MjUsIDAuMDA4NzUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgLTAuMDAyNSwgMCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJEIjsKLSAgICAgIHNkZl9jb25kIDogIkQgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDMxMjUsIC0wLjAyNjI1LCAtMC4wMiwgLTAuMDIsIC0wLjAxMzc1LCAtMC4wMSwgLTAuMDA3NSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAzMTI1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMjUsIC0wLjAyMTI1LCAtMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDI3NSwgLTAuMDI1IiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDQzNzUsIC0wLjA0Mzc1LCAtMC4wNCwgLTAuMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDYxMjUsIC0wLjA1NjI1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjA1LCAtMC4wNDYyNSwgLTAuMDQzNzUiLCBcCi0gICAgICAgICAgIi0wLjA3MTI1LCAtMC4wNjYyNSwgLTAuMDY2MjUsIC0wLjA2LCAtMC4wNiwgLTAuMDU2MjUsIC0wLjA1Mzc1IiwgXAotICAgICAgICAgICItMC4wOCwgLTAuMDc1LCAtMC4wNjg3NSwgLTAuMDY4NzUsIC0wLjA2MjUsIC0wLjA1ODc1LCAtMC4wNTYyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEyNSwgMC4wMTc1LCAwLjAzLCAwLjAzLCAwLjAzNjI1LCAwLjA0NjI1LCAwLjA0ODc1IiwgXAotICAgICAgICAgICIwLjAwNzUsIDAuMDEyNSwgMC4wMTg3NSwgMC4wMjUsIDAuMDMxMjUsIDAuMDM1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICItMC4wMDUsIDAuMDA2MjUsIDAuMDEyNSwgMC4wMTg3NSwgMC4wMjUsIDAuMDI4NzUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjAxMTI1LCAwLCAwLjAwNjI1LCAwLjAxMjUsIDAuMDE4NzUsIDAuMDIyNSwgMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjAxMTI1LCAtMC4wMDYyNSwgMCwgMC4wMDYyNSwgMC4wMTI1LCAwLjAxNjI1LCAwLjAxODc1IiwgXAotICAgICAgICAgICItMC4wMTUsIC0wLjAxLCAtMC4wMDM3NSwgMC4wMDI1LCAwLjAwMjUsIDAuMDEyNSwgMC4wMTUiLCBcCi0gICAgICAgICAgIi0wLjAxNzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAtMC4wMDYyNSwgMCwgMC4wMDM3NSwgMC4wMTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRCI7Ci0gICAgICBzZGZfY29uZCA6ICJEID09IDEnYjAiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0Mzc1LCAwLjAzMjUsIDAuMDI2MjUsIDAuMDIsIDAuMDEzNzUsIDAuMDEsIDAuMDAxMjUiLCBcCi0gICAgICAgICAgIjAuMDQ4NzUsIDAuMDQzNzUsIDAuMDMxMjUsIDAuMDI1LCAwLjAyNSwgMC4wMTUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4wNTUsIDAuMDUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMzEyNSwgMC4wMjEyNSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4wNjEyNSwgMC4wNTYyNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyNzUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMDY3NSwgMC4wNTYyNSwgMC4wNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAyNzUsIDAuMDI1IiwgXAotICAgICAgICAgICIwLjA3MTI1LCAwLjA2LCAwLjA1Mzc1LCAwLjA0NzUsIDAuMDQxMjUsIDAuMDM3NSwgMC4wMjg3NSIsIFwKLSAgICAgICAgICAiMC4wNzM3NSwgMC4wNjg3NSwgMC4wNTYyNSwgMC4wNSwgMC4wNDM3NSwgMC4wNCwgMC4wMzc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM3NSwgMC4wMzI1LCAwLjAyNjI1LCAwLjAyNjI1LCAwLjAyLCAwLjAyMjUsIDAuMDIiLCBcCi0gICAgICAgICAgIjAuMDQyNSwgMC4wMzc1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDMxMjUsIDAuMDI3NSwgMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMDU1LCAwLjA1LCAwLjA0Mzc1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDQsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiMC4wNjEyNSwgMC4wNTYyNSwgMC4wNSwgMC4wNSwgMC4wNDM3NSwgMC4wNCwgMC4wMzc1IiwgXAotICAgICAgICAgICIwLjA2MTI1LCAwLjA1NjI1LCAwLjA1NjI1LCAwLjA1LCAwLjA1LCAwLjA0NjI1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjA3MTI1LCAwLjA2NjI1LCAwLjA2LCAwLjA2LCAwLjA1Mzc1LCAwLjA1LCAwLjA0NzUiLCBcCi0gICAgICAgICAgIjAuMDczNzUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNjI1LCAwLjA2MjUsIDAuMDU4NzUsIDAuMDU2MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIkQiOwotICAgICAgc2RmX2NvbmQgOiAiRCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDM3NSwgMC4wMzg3NSwgMC4wMzI1LCAwLjAzMjUsIDAuMDI2MjUsIDAuMDIyNSwgMC4wMiIsIFwKLSAgICAgICAgICAiMC4wNTUsIDAuMDQzNzUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzc1LCAwLjAzMzc1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICIwLjA2MTI1LCAwLjA1NjI1LCAwLjA1LCAwLjA1LCAwLjA0Mzc1LCAwLjA0LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIjAuMDczNzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNTYyNSwgMC4wNSwgMC4wNTI1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjA4LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA2MjUsIDAuMDU4NzUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIjAuMDksIDAuMDg1LCAwLjA3ODc1LCAwLjA3MjUsIDAuMDcyNSwgMC4wNjg3NSwgMC4wNjYyNSIsIFwKLSAgICAgICAgICAiMC4wOTg3NSwgMC4wODc1LCAwLjA4MTI1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNzEyNSwgMC4wNjg3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxODc1LCAwLjAwNzUsIDAuMDAxMjUsIC0wLjAwNSwgLTAuMDA1LCAtMC4wMTUsIC0wLjAxNzUiLCBcCi0gICAgICAgICAgIjAuMDIzNzUsIDAuMDE4NzUsIDAuMDEyNSwgMC4wMDYyNSwgMCwgLTAuMDAzNzUsIC0wLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMDM2MjUsIDAuMDI1LCAwLjAxODc1LCAwLjAxMjUsIDAuMDA2MjUsIDAuMDAyNSwgMCIsIFwKLSAgICAgICAgICAiMC4wNDI1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMTg3NSwgMC4wMTg3NSwgMC4wMDg3NSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiMC4wNDg3NSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMjUsIDAuMDE1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMDU4NzUsIDAuMDQ3NSwgMC4wNDEyNSwgMC4wMzUsIDAuMDI4NzUsIDAuMDI1LCAwLjAyMjUiLCBcCi0gICAgICAgICAgIjAuMDYxMjUsIDAuMDU2MjUsIDAuMDUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzM3NSwgMC4wMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFEpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4zMzg3Mjk7Ci0gICAgZnVuY3Rpb24gOiAiTjMwIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBub25fdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJpc2luZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTE4MzMsIDAuMTEwNTM5LCAwLjIxNjM1OSwgMC4zMDk2NiwgMC40MzQwOTMsIDAuNjgyOTY0LCAwLjgzODM5IiwgXAotICAgICAgICAgICIwLjA5OTk1NCwgMC4xMTg2NTYsIDAuMjI0NDcyLCAwLjMxNzc4LCAwLjQ0MjIyNCwgMC42OTEwMTMsIDAuODQ2NTg5IiwgXAotICAgICAgICAgICIwLjEwODgxMSwgMC4xMjc1MTcsIDAuMjMzMzM2LCAwLjMyNjYzNywgMC40NTEwNjYsIDAuNjk5OTMzLCAwLjg1NTM3NSIsIFwKLSAgICAgICAgICAiMC4xMTU0MDIsIDAuMTM0MTA4LCAwLjIzOTkyNywgMC4zMzMxNDYsIDAuNDU3NjQ5LCAwLjcwNjUxNywgMC44NjIwMTQiLCBcCi0gICAgICAgICAgIjAuMTIwNzg1LCAwLjEzOTQ4NCwgMC4yNDUyOTYsIDAuMzM4Njc4LCAwLjQ2MzAzMiwgMC43MTE5MTcsIDAuODY3Mzg2IiwgXAotICAgICAgICAgICIwLjEyNzk4MSwgMC4xNDY3MDcsIDAuMjUyNTUzLCAwLjM0NTgyOCwgMC40NzAyMTYsIDAuNzE5MDY3LCAwLjg3NDU3NyIsIFwKLSAgICAgICAgICAiMC4xMzMyNDIsIDAuMTUyMDMxLCAwLjI1NzcyNCwgMC4zNTEwODUsIDAuNDc1NTU0LCAwLjcyNDM3MiwgMC44Nzk4NzkiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDcxNTY3LCAwLjExMDYzOSwgMC4zMzQyODgsIDAuNTMxMzM4LCAwLjc5NDU1MywgMS4zMjA4MywgMS42NTE5MyIsIFwKLSAgICAgICAgICAiMC4wNzE2MDYsIDAuMTEwNjM3LCAwLjMzNDI4OCwgMC41MzEzMzIsIDAuNzk0Mjc2LCAxLjMyMjU4LCAxLjY0OTY1IiwgXAotICAgICAgICAgICIwLjA3MTU3NiwgMC4xMTA2NDUsIDAuMzM0MjgxLCAwLjUzMTM1MiwgMC43OTQ2MjUsIDEuMzIxMDIsIDEuNjUyMDIiLCBcCi0gICAgICAgICAgIjAuMDcxNjA4LCAwLjExMDY0NSwgMC4zMzQyNjUsIDAuNTMxMzI0LCAwLjc5NDc2MywgMS4zMjA4MiwgMS42NDkyMiIsIFwKLSAgICAgICAgICAiMC4wNzE2MDgsIDAuMTEwNTc0LCAwLjMzMzY4OSwgMC41MzExNDQsIDAuNzk0NTQ5LCAxLjMyMjQsIDEuNjUwMTMiLCBcCi0gICAgICAgICAgIjAuMDcxNTg4LCAwLjExMDUzNiwgMC4zMzM3MSwgMC41MzE3NzksIDAuNzk1MzQsIDEuMzIxMjIsIDEuNjUwMTQiLCBcCi0gICAgICAgICAgIjAuMDcxNjM1LCAwLjExMDU2OCwgMC4zMzM4ODUsIDAuNTMxMDU0LCAwLjc5NDI4OSwgMS4zMjIzOCwgMS42NTAzNiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDIxNSwgMC4xMjAyOTIsIDAuMjIyOTEzLCAwLjMxMzQxOCwgMC40MzQwODYsIDAuNjc1Mzg4LCAwLjgyNjI0MyIsIFwKLSAgICAgICAgICAiMC4xMTAzMSwgMC4xMjg0NTQsIDAuMjMxMDcxLCAwLjMyMTU3NCwgMC40NDIyMjgsIDAuNjgzNTg5LCAwLjgzNDM5IiwgXAotICAgICAgICAgICIwLjExOTIzOSwgMC4xMzczODEsIDAuMjM5OTg5LCAwLjMzMDQ5MiwgMC40NTEyMTEsIDAuNjkyNDk0LCAwLjg0MzMwOSIsIFwKLSAgICAgICAgICAiMC4xMjU5NDgsIDAuMTQ0MDg1LCAwLjI0NjY5OCwgMC4zMzcxOTksIDAuNDU3ODgyLCAwLjY5OTIwNSwgMC44NTAwNzIiLCBcCi0gICAgICAgICAgIjAuMTMxMzkyLCAwLjE0OTUzNSwgMC4yNTIxNTMsIDAuMzQyNjQ4LCAwLjQ2MzMyMywgMC43MDQ3MTYsIDAuODU1NDg0IiwgXAotICAgICAgICAgICIwLjEzODc2MSwgMC4xNTY5NDIsIDAuMjU5NTU3LCAwLjM1MDA1NCwgMC40NzA3NDgsIDAuNzEyMDE1LCAwLjg2Mjg2IiwgXAotICAgICAgICAgICIwLjE0NDEzMywgMC4xNjI0MzQsIDAuMjY0ODg2LCAwLjM1NTQxNiwgMC40NzYyMTUsIDAuNzE3NTQxLCAwLjg2ODIwNSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjc3MDYsIDAuMTA0NTgxLCAwLjMxNTUxOCwgMC41MDIxMDYsIDAuNzQ5NTA0LCAxLjI0ODQzLCAxLjU1NzcxIiwgXAotICAgICAgICAgICIwLjA2Nzc2MywgMC4xMDQ1OCwgMC4zMTU0OTUsIDAuNTAxNDc1LCAwLjc1MDUsIDEuMjQ2MTQsIDEuNTU5NDciLCBcCi0gICAgICAgICAgIjAuMDY3NzQzLCAwLjEwNDYwNywgMC4zMTU0ODIsIDAuNTAxNDA4LCAwLjc0OTQwMywgMS4yNDcwNSwgMS41NTczOCIsIFwKLSAgICAgICAgICAiMC4wNjc3MTQsIDAuMTA0NTgsIDAuMzE1NDksIDAuNTAxMzkzLCAwLjc0OTcwNywgMS4yNDY3OCwgMS41NTk3NCIsIFwKLSAgICAgICAgICAiMC4wNjc3NCwgMC4xMDQ1NzgsIDAuMzE0ODQ4LCAwLjUwMTM2NiwgMC43NDk1MDcsIDEuMjQ4NzQsIDEuNTU3ODEiLCBcCi0gICAgICAgICAgIjAuMDY3NzA1LCAwLjEwNDM3MiwgMC4zMTU1MjYsIDAuNTAyMDk1LCAwLjc1MTAzNSwgMS4yNDcwNCwgMS41NTcyNyIsIFwKLSAgICAgICAgICAiMC4wNjc5MjEsIDAuMTA0MzE0LCAwLjMxNTQ5NywgMC41MDIwNjUsIDAuNzQ5ODYyLCAxLjI0NzAyLCAxLjU1NzI0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwOTIzMSwgMC4wMDkyNDEsIDAuMDA5MjU2LCAwLjAwOTI1OSwgMC4wMDkyNjEsIDAuMDA5MjY3LCAwLjAwOTI2MyIsIFwKLSAgICAgICAgICAiMC4wMDkyMzIsIDAuMDA5MjQxLCAwLjAwOTI1NywgMC4wMDkyNiwgMC4wMDkyNjQsIDAuMDA5MjY0LCAwLjAwOTI2MyIsIFwKLSAgICAgICAgICAiMC4wMDkyODksIDAuMDA5Mjk5LCAwLjAwOTMxNSwgMC4wMDkzMTgsIDAuMDA5MzIsIDAuMDA5MzIyLCAwLjAwOTMyMiIsIFwKLSAgICAgICAgICAiMC4wMDk0MTIsIDAuMDA5NDIyLCAwLjAwOTQzOCwgMC4wMDk0NDEsIDAuMDA5NDQ0LCAwLjAwOTQ0NiwgMC4wMDk0NDUiLCBcCi0gICAgICAgICAgIjAuMDA5NTU4LCAwLjAwOTU2NiwgMC4wMDk1ODEsIDAuMDA5NTg0LCAwLjAwOTU4OCwgMC4wMDk1OSwgMC4wMDk1ODgiLCBcCi0gICAgICAgICAgIjAuMDA5NzgyLCAwLjAwOTc3NSwgMC4wMDk3OSwgMC4wMDk3OTQsIDAuMDA5ODEzLCAwLjAwOTc5OCwgMC4wMDk4MTQiLCBcCi0gICAgICAgICAgIjAuMDA5OTc2LCAwLjAwOTk1NiwgMC4wMDk5OTcsIDAuMDEwMDA1LCAwLjAxMDAwOCwgMC4wMDk5NzksIDAuMDA5OTgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDk1NjIsIDAuMDA5NTcsIDAuMDA5NTgsIDAuMDA5NTgxLCAwLjAwOTU4MiwgMC4wMDk1ODIsIDAuMDA5NTgyIiwgXAotICAgICAgICAgICIwLjAwOTU3OCwgMC4wMDk1ODgsIDAuMDA5NTk3LCAwLjAwOTU5OSwgMC4wMDk1OTksIDAuMDA5NiwgMC4wMDk2IiwgXAotICAgICAgICAgICIwLjAwOTY3MiwgMC4wMDk2ODEsIDAuMDA5NjksIDAuMDA5NjkxLCAwLjAwOTY5MiwgMC4wMDk2OTIsIDAuMDA5NjkyIiwgXAotICAgICAgICAgICIwLjAwOTgwNiwgMC4wMDk4MTUsIDAuMDA5ODI0LCAwLjAwOTgyNSwgMC4wMDk4MjUsIDAuMDA5ODI1LCAwLjAwOTgyNSIsIFwKLSAgICAgICAgICAiMC4wMDk5NjcsIDAuMDA5OTc1LCAwLjAwOTk4NCwgMC4wMDk5ODUsIDAuMDA5OTg2LCAwLjAwOTk4NiwgMC4wMDk5ODYiLCBcCi0gICAgICAgICAgIjAuMDEwMjE5LCAwLjAxMDIxLCAwLjAxMDIxNywgMC4wMTAyMTgsIDAuMDEwMjE4LCAwLjAxMDIzNCwgMC4wMTAyMTgiLCBcCi0gICAgICAgICAgIjAuMDEwNDI5LCAwLjAxMDQwNiwgMC4wMTA0NDQsIDAuMDEwNDQ0LCAwLjAxMDQxNiwgMC4wMTA0MTQsIDAuMDEwNDQ0Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBFREZGWDIgKgotICogLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChFREZGWDIpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMS4yNTcyNDsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBmZiAoTjMwLFFCSU5UKSB7Ci0gICAgbmV4dF9zdGF0ZSA6ICIoKEUgRCkgKyAoIUUgKCEoIU4zMCkpKSkiOwotICAgIGNsb2NrZWRfb24gOiAiQ0siOwotICB9Ci0gIHBpbihDSykgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNzA1MzgzOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDcwNTM1OTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA3MDUzODM7Ci0gICAgY2xvY2sgOiB0cnVlOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzg3MiwgMC4wMDM4NjgsIDAuMDAzOTQzLCAwLjAwNDA1MSwgMC4wMDQxNjgsIDAuMDA0MzkxLCAwLjAwNDU4OCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNzI4NCwgMC4wMDczMDEsIDAuMDA3Mzc0LCAwLjAwNzUxLCAwLjAwNzY0OCwgMC4wMDc5MzQsIDAuMDA4MTkzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRCZFIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9FX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4xMDYyMzUsIDAuMTE0MzQxLCAwLjEyMywgMC4xMjk0MTMsIDAuMTM0NTY1LCAwLjE0MTczMywgMC4xNDY4OTkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjA1OTUwMSwgMC4wNjc0NTMsIDAuMDc2MDc5LCAwLjA4MjM4OSwgMC4wODc0MywgMC4wOTQwMzksIDAuMDk4ODc2Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihEKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA3MDkzNzc7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNzA3OTk7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNzA5Mzc3OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjk4LCAwLjAwMjk1NywgMC4wMDI5NzYsIDAuMDAzMDI1LCAwLjAwMzA4NCwgMC4wMDMyLCAwLjAwMzMyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNjAzNSwgMC4wMDYwMiwgMC4wMDYwNCwgMC4wMDYwODYsIDAuMDA2MTUzLCAwLjAwNjI1NSwgMC4wMDYzNzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiRSI7Ci0gICAgICBzZGZfY29uZCA6ICJFID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAzMTI1LCAtMC4wMzI1LCAtMC4wMjYyNSwgLTAuMDI2MjUsIC0wLjAyLCAtMC4wMTYyNSwgLTAuMDEzNzUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMjc1LCAtMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDM3NSwgLTAuMDM3NSwgLTAuMDMzNzUsIC0wLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjA0Mzc1LCAtMC4wNCwgLTAuMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDYxMjUsIC0wLjA1NjI1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjA1LCAtMC4wNDYyNSwgLTAuMDQzNzUiLCBcCi0gICAgICAgICAgIi0wLjA3MTI1LCAtMC4wNjYyNSwgLTAuMDYsIC0wLjA2LCAtMC4wNiwgLTAuMDU2MjUsIC0wLjA1Mzc1IiwgXAotICAgICAgICAgICItMC4wNzM3NSwgLTAuMDY4NzUsIC0wLjA2ODc1LCAtMC4wNjg3NSwgLTAuMDYyNSwgLTAuMDU4NzUsIC0wLjA1NjI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDEyNSwgLTAuMDA3NSwgLTAuMDAxMjUsIDAuMDA1LCAwLjAwNSwgMC4wMTUsIDAuMDE3NSIsIFwKLSAgICAgICAgICAiLTAuMDE3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAsIDAsIDAuMDEsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgLTAuMDA2MjUsIDAuMDAzNzUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMTI1LCAtMC4wMDI1LCAwIiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwODc1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDQsIC0wLjAzNSwgLTAuMDI4NzUsIC0wLjAyMjUsIC0wLjAyMjUsIC0wLjAxODc1LCAtMC4wMSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAyMTI1LCAtMC4wMTg3NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiRSI7Ci0gICAgICBzZGZfY29uZCA6ICJFID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1NjI1LCAwLjA1MTI1LCAwLjA0NSwgMC4wMzg3NSwgMC4wMzg3NSwgMC4wMzUsIDAuMDMyNSIsIFwKLSAgICAgICAgICAiMC4wNjc1LCAwLjA1NjI1LCAwLjA1LCAwLjA1LCAwLjA0Mzc1LCAwLjA0LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIjAuMDczNzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNTYyNSwgMC4wNSwgMC4wNDYyNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4wOCwgMC4wNjg3NSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA2MjUsIDAuMDU4NzUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIjAuMDg2MjUsIDAuMDgxMjUsIDAuMDc1LCAwLjA2ODc1LCAwLjA2ODc1LCAwLjA2NSwgMC4wNjI1IiwgXAotICAgICAgICAgICIwLjA5NjI1LCAwLjA4NSwgMC4wNzg3NSwgMC4wNzg3NSwgMC4wNzI1LCAwLjA2ODc1LCAwLjA2NjI1IiwgXAotICAgICAgICAgICIwLjEwNSwgMC4wOTM3NSwgMC4wODc1LCAwLjA4NzUsIDAuMDgxMjUsIDAuMDc3NSwgMC4wNzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDM3NSwgMC4wMzg3NSwgMC4wMzI1LCAwLjAyNjI1LCAwLjAyLCAwLjAxLCAwLjAwNzUiLCBcCi0gICAgICAgICAgIjAuMDU1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDI1LCAwLjAyMTI1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMDYxMjUsIDAuMDUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMjc1LCAwLjAxODc1IiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDU2MjUsIDAuMDUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzM3NSwgMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMDczNzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNSwgMC4wNDM3NSwgMC4wNCwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4wNzc1LCAwLjA3MjUsIDAuMDYsIDAuMDUzNzUsIDAuMDUzNzUsIDAuMDQzNzUsIDAuMDQxMjUiLCBcCi0gICAgICAgICAgIjAuMDg2MjUsIDAuMDc1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDUyNSwgMC4wNDM3NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNTI0Mzc7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNTI0Mzc7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNTIzOTY7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA1NjM5LCAwLjAwNTY0OSwgMC4wMDU3MzMsIDAuMDA1ODc2LCAwLjAwNjAwNiwgMC4wMDYyMTUsIDAuMDA2NDM2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA3MjA0LCAwLjAwNzIxNywgMC4wMDczNDMsIDAuMDA3NTMxLCAwLjAwNzc1OSwgMC4wMDgxMzksIDAuMDA4NDgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUQiOwotICAgICAgc2RmX2NvbmQgOiAiRCA9PSAxJ2IwIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wNDM3NSwgLTAuMDMyNSwgLTAuMDI2MjUsIC0wLjAyLCAtMC4wMTM3NSwgLTAuMDEsIC0wLjAwMTI1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDI1LCAtMC4wMTUsIC0wLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjA1NSwgLTAuMDUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMzEyNSwgLTAuMDIxMjUsIC0wLjAxODc1IiwgXAotICAgICAgICAgICItMC4wNjEyNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDI3NSwgLTAuMDI1IiwgXAotICAgICAgICAgICItMC4wNjEyNSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDMzNzUsIC0wLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDcxMjUsIC0wLjA2LCAtMC4wNTM3NSwgLTAuMDQ3NSwgLTAuMDQxMjUsIC0wLjAzNzUsIC0wLjAyODc1IiwgXAotICAgICAgICAgICItMC4wNzM3NSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDQsIC0wLjAzNzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLCAwLjAwNSwgMC4wMDUsIDAuMDExMjUsIDAuMDExMjUsIDAuMDAyNSwgMC4wMDUiLCBcCi0gICAgICAgICAgIi0wLjAxMTI1LCAtMC4wMDYyNSwgMCwgMCwgMCwgLTAuMDAyNSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjAxNzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAtMC4wMDYyNSwgLTAuMDA2MjUsIC0wLjAwODc1LCAtMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAxMjUsIC0wLjAxMjUsIC0wLjAxNSwgLTAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMTI1LCAtMC4wMjEyNSwgLTAuMDI1IiwgXAotICAgICAgICAgICItMC4wMzM3NSwgLTAuMDI4NzUsIC0wLjAyMjUsIC0wLjAyMjUsIC0wLjAyMjUsIC0wLjAyNSwgLTAuMDI4NzUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMzEyNSwgLTAuMDMxMjUsIC0wLjAzMzc1LCAtMC4wMzEyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJEIjsKLSAgICAgIHNkZl9jb25kIDogIkQgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDM3NSwgLTAuMDMyNSwgLTAuMDI2MjUsIC0wLjAyNjI1LCAtMC4wMiwgLTAuMDE2MjUsIC0wLjAxMzc1IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDMxMjUsIC0wLjAzMTI1LCAtMC4wMjc1LCAtMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjA1NSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDMzNzUsIC0wLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wNjEyNSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNSwgLTAuMDUsIC0wLjA0NjI1LCAtMC4wNDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDY3NSwgLTAuMDYyNSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA1NjI1LCAtMC4wNTI1LCAtMC4wNSIsIFwKLSAgICAgICAgICAiLTAuMDc3NSwgLTAuMDcyNSwgLTAuMDcyNSwgLTAuMDY2MjUsIC0wLjA2NjI1LCAtMC4wNjI1LCAtMC4wNiIsIFwKLSAgICAgICAgICAiLTAuMDg2MjUsIC0wLjA4MTI1LCAtMC4wNzUsIC0wLjA3NSwgLTAuMDc1LCAtMC4wNzEyNSwgLTAuMDY4NzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjI1LCAwLjAxMTI1LCAwLjAxNzUsIDAuMDIzNzUsIDAuMDMsIDAuMDMzNzUsIDAuMDM2MjUiLCBcCi0gICAgICAgICAgIjAuMDAxMjUsIDAuMDA2MjUsIDAuMDEyNSwgMC4wMTg3NSwgMC4wMTg3NSwgMC4wMjg3NSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDExMjUsIDAsIDAuMDA2MjUsIDAuMDA2MjUsIDAuMDEyNSwgMC4wMTYyNSwgMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjAxMTI1LCAtMC4wMDYyNSwgMCwgMC4wMDYyNSwgMC4wMDYyNSwgMC4wMSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDE3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAsIDAsIDAuMDEsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDI3NSwgLTAuMDE2MjUsIC0wLjAxNjI1LCAtMC4wMSwgLTAuMDAzNzUsIDAsIDAuMDAyNSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAxMjUsIC0wLjAwODc1LCAwIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRCI7Ci0gICAgICBzZGZfY29uZCA6ICJEID09IDEnYjAiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1NjI1LCAwLjA0NSwgMC4wMzg3NSwgMC4wMzI1LCAwLjAyNjI1LCAwLjAyMjUsIDAuMDEzNzUiLCBcCi0gICAgICAgICAgIjAuMDYxMjUsIDAuMDUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMjc1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiMC4wNjc1LCAwLjA1NjI1LCAwLjA1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDMzNzUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMDczNzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNSwgMC4wNDM3NSwgMC4wNCwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4wNzM3NSwgMC4wNjg3NSwgMC4wNTYyNSwgMC4wNTYyNSwgMC4wNSwgMC4wNCwgMC4wMzc1IiwgXAotICAgICAgICAgICIwLjA3NzUsIDAuMDcyNSwgMC4wNjYyNSwgMC4wNiwgMC4wNTM3NSwgMC4wNSwgMC4wNDEyNSIsIFwKLSAgICAgICAgICAiMC4wODYyNSwgMC4wNzUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNTI1LCAwLjA0Mzc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDMxMjUsIDAuMDI2MjUsIDAuMDI2MjUsIDAuMDIsIDAuMDIsIDAuMDE2MjUsIDAuMDEzNzUiLCBcCi0gICAgICAgICAgIjAuMDQyNSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMjc1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiMC4wNDg3NSwgMC4wNDM3NSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzNzUsIDAuMDMzNzUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMDU1LCAwLjA1LCAwLjA0Mzc1LCAwLjA0Mzc1LCAwLjA0Mzc1LCAwLjA0LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIjAuMDYxMjUsIDAuMDU2MjUsIDAuMDUsIDAuMDUsIDAuMDQzNzUsIDAuMDQsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiMC4wNjUsIDAuMDYsIDAuMDUzNzUsIDAuMDUzNzUsIDAuMDUzNzUsIDAuMDUsIDAuMDQ3NSIsIFwKLSAgICAgICAgICAiMC4wNjc1LCAwLjA2MjUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNTYyNSwgMC4wNTI1LCAwLjA1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJEIjsKLSAgICAgIHNkZl9jb25kIDogIkQgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU2MjUsIDAuMDQ1LCAwLjAzODc1LCAwLjAzODc1LCAwLjAzMjUsIDAuMDI4NzUsIDAuMDI2MjUiLCBcCi0gICAgICAgICAgIjAuMDYxMjUsIDAuMDU2MjUsIDAuMDUsIDAuMDQzNzUsIDAuMDQzNzUsIDAuMDQsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiMC4wNzM3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1NjI1LCAwLjA1LCAwLjA0NjI1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjA4LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA2MjUsIDAuMDU4NzUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIjAuMDg2MjUsIDAuMDgxMjUsIDAuMDc1LCAwLjA2ODc1LCAwLjA2ODc1LCAwLjA2NSwgMC4wNjI1IiwgXAotICAgICAgICAgICIwLjA5NjI1LCAwLjA5MTI1LCAwLjA4NSwgMC4wNzg3NSwgMC4wNzg3NSwgMC4wNzUsIDAuMDcyNSIsIFwKLSAgICAgICAgICAiMC4xMDUsIDAuMSwgMC4wOTM3NSwgMC4wODc1LCAwLjA4NzUsIDAuMDgzNzUsIDAuMDgxMjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTg3NSwgMC4wMDc1LCAwLjAwMTI1LCAtMC4wMDUsIC0wLjAxMTI1LCAtMC4wMTUsIC0wLjAxNzUiLCBcCi0gICAgICAgICAgIjAuMDIzNzUsIDAuMDE4NzUsIDAuMDA2MjUsIDAuMDA2MjUsIDAsIC0wLjAwMzc1LCAtMC4wMTI1IiwgXAotICAgICAgICAgICIwLjAzLCAwLjAyNSwgMC4wMTg3NSwgMC4wMTI1LCAwLjAwNjI1LCAwLjAwMjUsIDAiLCBcCi0gICAgICAgICAgIjAuMDQyNSwgMC4wMzEyNSwgMC4wMjUsIDAuMDE4NzUsIDAuMDE4NzUsIDAuMDA4NzUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMDQ4NzUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMjUsIDAuMDE4NzUsIDAuMDE1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMDUyNSwgMC4wNDc1LCAwLjA0MTI1LCAwLjAzNSwgMC4wMjg3NSwgMC4wMjUsIDAuMDIyNSIsIFwKLSAgICAgICAgICAiMC4wNjEyNSwgMC4wNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzNzUsIDAuMDI3NSwgMC4wMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFEpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC42ODk4OTY7Ci0gICAgZnVuY3Rpb24gOiAiTjMwIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBub25fdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJpc2luZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODI2NjEsIDAuMTYwMDYsIDAuMjIxNzcyLCAwLjI5ODcxMiwgMC4zNzUzMDEsIDAuNDUyMDA1LCAwLjUyODY5MiIsIFwKLSAgICAgICAgICAiMC4wOTA2OTksIDAuMTY4MTA0LCAwLjIyOTcwNCwgMC4zMDY4MjEsIDAuMzgzMTMxLCAwLjQ2MDA0MSwgMC41MzY1ODEiLCBcCi0gICAgICAgICAgIjAuMDk5MjE1LCAwLjE3NjYxMiwgMC4yMzc5OTksIDAuMzE1MjYyLCAwLjM5MTg1MywgMC40Njg1NTQsIDAuNTQ1MTcyIiwgXAotICAgICAgICAgICIwLjEwNTUxNywgMC4xODI4OTksIDAuMjQ0NjM2LCAwLjMyMTU2OCwgMC4zOTgxNTQsIDAuNDc0NTQ0LCAwLjU1MTUwNyIsIFwKLSAgICAgICAgICAiMC4xMTA2MzEsIDAuMTg4MDIzLCAwLjI0OTY5MSwgMC4zMjY2ODUsIDAuNDAzNDMyLCAwLjQ3OTk1OCwgMC41NTY1MDYiLCBcCi0gICAgICAgICAgIjAuMTE3NjQsIDAuMTk1MTQ5LCAwLjI1Njk0OSwgMC4zMzM1NDgsIDAuNDEwMTg5LCAwLjQ4Njk4NiwgMC41NjM2NjkiLCBcCi0gICAgICAgICAgIjAuMTIyNzE0LCAwLjIwMDAzMywgMC4yNjE2ODksIDAuMzM4NzQyLCAwLjQxNTM0MywgMC40OTIwNzgsIDAuNTY4OTI1Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0MDczMiwgMC4xOTkzMzIsIDAuMzI4MjMyLCAwLjQ4OTcwNywgMC42NTI2MDgsIDAuODE0NzgzLCAwLjk3Njk2NiIsIFwKLSAgICAgICAgICAiMC4wNDA3MzMsIDAuMTk5MzMzLCAwLjMyODc3NywgMC40ODk4NTIsIDAuNjUxNzcsIDAuODE0Nzc2LCAwLjk3NjQ0NCIsIFwKLSAgICAgICAgICAiMC4wNDA3NDEsIDAuMTk5MzM0LCAwLjMyODI5MiwgMC40ODk3MSwgMC42NTI1OTcsIDAuODE0NzY5LCAwLjk3NTM3IiwgXAotICAgICAgICAgICIwLjA0MDc1NCwgMC4xOTkzMzksIDAuMzI4MjIsIDAuNDg5NzEsIDAuNjUyNTcyLCAwLjgxMzUzNiwgMC45NzY5NDEiLCBcCi0gICAgICAgICAgIjAuMDQwNjQxLCAwLjE5OTM0MywgMC4zMjg3OTQsIDAuNDg5NzEyLCAwLjY1MTQyMiwgMC44MTQ3NDQsIDAuOTc1Nzc3IiwgXAotICAgICAgICAgICIwLjA0MDYwNCwgMC4xOTkxMzcsIDAuMzI4MjcxLCAwLjQ4OTgyLCAwLjY1MjQ4OSwgMC44MTQ2MzUsIDAuOTc2ODE5IiwgXAotICAgICAgICAgICIwLjA0MDY2NSwgMC4xOTkzMDcsIDAuMzI4NzMsIDAuNDg5NzcyLCAwLjY1MjQ2NSwgMC44MTQ2MjgsIDAuOTc2NzY1Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5MTAzOCwgMC4xNjc2ODUsIDAuMjI5MDE5LCAwLjMwNDY3MywgMC4zODAzNzcsIDAuNDU2NDc0LCAwLjUzMjM3OSIsIFwKLSAgICAgICAgICAiMC4wOTkxNTIsIDAuMTc1ODIxLCAwLjIzNjg0OCwgMC4zMTI4MDgsIDAuMzg4NjQ4LCAwLjQ2NDYwMiwgMC41NDA0OTkiLCBcCi0gICAgICAgICAgIjAuMTA3ODEsIDAuMTg0MzcsIDAuMjQ1MjAxLCAwLjMyMTUwMywgMC4zOTczMzksIDAuNDczMjIyLCAwLjU0ODkiLCBcCi0gICAgICAgICAgIjAuMTE0MjI2LCAwLjE5MDkyMSwgMC4yNTE2MDksIDAuMzI3NjI5LCAwLjQwMzgsIDAuNDc5NjkyLCAwLjU1NTYxMSIsIFwKLSAgICAgICAgICAiMC4xMTkzNjksIDAuMTk2MTc0LCAwLjI1Njk1NSwgMC4zMzMwMzksIDAuNDA4OTU3LCAwLjQ4NDc4NCwgMC41NjA0NTMiLCBcCi0gICAgICAgICAgIjAuMTI2NTQ5LCAwLjIwMzIyMywgMC4yNjQyNzYsIDAuMzQwMDY1LCAwLjQxNjA3OSwgMC40OTE3NjcsIDAuNTY3NzUxIiwgXAotICAgICAgICAgICIwLjEzMTcxLCAwLjIwODIzNSwgMC4yNjkwNDMsIDAuMzQ1MTY0LCAwLjQyMDk3MSwgMC40OTY5NTQsIDAuNTczMDI2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzOTU4OCwgMC4xOTQzNDgsIDAuMzE5Mzk5LCAwLjQ3ODA4NCwgMC42MzU5OTksIDAuNzk0MDk2LCAwLjk1MTk4OCIsIFwKLSAgICAgICAgICAiMC4wMzk2MjIsIDAuMTk0NzY1LCAwLjMyMDAxLCAwLjQ3ODA4NiwgMC42MzYwNzgsIDAuNzk0MDkyLCAwLjk1MjAxMiIsIFwKLSAgICAgICAgICAiMC4wMzk1NTgsIDAuMTk0NTA4LCAwLjMxOTcyNCwgMC40NzgwOTQsIDAuNjM2MTA3LCAwLjc5NDA4OCwgMC45NTAwNTQiLCBcCi0gICAgICAgICAgIjAuMDM5NzMzLCAwLjE5NDUzMSwgMC4zMjA0LCAwLjQ3ODE1NiwgMC42MzYxMzQsIDAuNzk0MDMxLCAwLjk1MTk0NiIsIFwKLSAgICAgICAgICAiMC4wMzk3MDUsIDAuMTk0ODc4LCAwLjMxOTc2NywgMC40NzgwNzksIDAuNjM2MTM5LCAwLjc5NDA3NCwgMC45NTAxODEiLCBcCi0gICAgICAgICAgIjAuMDM5NTk0LCAwLjE5NDc1MiwgMC4zMTk2NTIsIDAuNDc4LCAwLjYzNjAxNSwgMC43OTIyMTcsIDAuOTUxODc4IiwgXAotICAgICAgICAgICIwLjAzOTczLCAwLjE5NDIyOSwgMC4zMjAzMzUsIDAuNDc3NjI1LCAwLjYzNTAxNiwgMC43OTI0MDEsIDAuOTUxOTA1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjU5OCwgMC4wMDY2NjIsIDAuMDA2NjcxLCAwLjAwNjY3NSwgMC4wMDY2NzcsIDAuMDA2Njc5LCAwLjAwNjY3OSIsIFwKLSAgICAgICAgICAiMC4wMDY1OTksIDAuMDA2NjYzLCAwLjAwNjY3MiwgMC4wMDY2NzYsIDAuMDA2Njc3LCAwLjAwNjY4LCAwLjAwNjY4MSIsIFwKLSAgICAgICAgICAiMC4wMDY2MzEsIDAuMDA2Njk1LCAwLjAwNjcwMywgMC4wMDY3MDcsIDAuMDA2NzEsIDAuMDA2NzA5LCAwLjAwNjcxMSIsIFwKLSAgICAgICAgICAiMC4wMDY2OTIsIDAuMDA2NzU2LCAwLjAwNjc2NCwgMC4wMDY3NjgsIDAuMDA2NzcxLCAwLjAwNjc3MiwgMC4wMDY3NzMiLCBcCi0gICAgICAgICAgIjAuMDA2NzYsIDAuMDA2ODIzLCAwLjAwNjgzMSwgMC4wMDY4MzYsIDAuMDA2ODM4LCAwLjAwNjgzOSwgMC4wMDY4NCIsIFwKLSAgICAgICAgICAiMC4wMDY4NTYsIDAuMDA2OTIsIDAuMDA2OTI5LCAwLjAwNjk0NCwgMC4wMDY5NDcsIDAuMDA2OTM4LCAwLjAwNjk0OSIsIFwKLSAgICAgICAgICAiMC4wMDY5NTUsIDAuMDA3MDE5LCAwLjAwNzAyNywgMC4wMDcwMzIsIDAuMDA3MDMzLCAwLjAwNzAzNCwgMC4wMDcwMzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDcxOTcsIDAuMDA3MjQ2LCAwLjAwNzI1MiwgMC4wMDcyNTUsIDAuMDA3MjU3LCAwLjAwNzI1OCwgMC4wMDcyNiIsIFwKLSAgICAgICAgICAiMC4wMDcyMDgsIDAuMDA3MjU4LCAwLjAwNzI2NCwgMC4wMDcyNjcsIDAuMDA3MjY5LCAwLjAwNzI2OSwgMC4wMDcyNzEiLCBcCi0gICAgICAgICAgIjAuMDA3MjQ5LCAwLjAwNzI5OCwgMC4wMDczMDQsIDAuMDA3MzA3LCAwLjAwNzMwOSwgMC4wMDczMSwgMC4wMDczMDciLCBcCi0gICAgICAgICAgIjAuMDA3MzE2LCAwLjAwNzM2NSwgMC4wMDczNzEsIDAuMDA3Mzc1LCAwLjAwNzM3NywgMC4wMDczOCwgMC4wMDczNzYiLCBcCi0gICAgICAgICAgIjAuMDA3MzkzLCAwLjAwNzQ0MiwgMC4wMDc0NDgsIDAuMDA3NDUyLCAwLjAwNzQ1NCwgMC4wMDc0NTUsIDAuMDA3NDU2IiwgXAotICAgICAgICAgICIwLjAwNzQ5NywgMC4wMDc1NDgsIDAuMDA3NTY0LCAwLjAwNzU2NywgMC4wMDc1NTksIDAuMDA3NTYxLCAwLjAwNzU3IiwgXAotICAgICAgICAgICIwLjAwNzYwNiwgMC4wMDc2NTcsIDAuMDA3NjYyLCAwLjAwNzY2NiwgMC4wMDc2NjcsIDAuMDA3NjY4LCAwLjAwNzY2OCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUU4pICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC42ODgwMDI7Ci0gICAgZnVuY3Rpb24gOiAiUUJJTlQiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5vbl91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcmlzaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwNjIzNSwgMC4xODI5NzksIDAuMjQ0NTIsIDAuMzIxMjI4LCAwLjM5ODAwMiwgMC40NzQ4MDMsIDAuNTUxNTk2IiwgXAotICAgICAgICAgICIwLjExNDM0MSwgMC4xOTExMTUsIDAuMjUyNTczLCAwLjMyOTM3LCAwLjQwNjEzNywgMC40ODI5NDQsIDAuNTU5NzMxIiwgXAotICAgICAgICAgICIwLjEyMywgMC4xOTk3NTgsIDAuMjYxMTczLCAwLjMzODA1NSwgMC40MTQ4MiwgMC40OTE2MDIsIDAuNTY4NDAyIiwgXAotICAgICAgICAgICIwLjEyOTQxMywgMC4yMDYyMDEsIDAuMjY3NjQ5LCAwLjM0NDQzMywgMC40MjEyNDUsIDAuNDk4MDI4LCAwLjU3NDgyOSIsIFwKLSAgICAgICAgICAiMC4xMzQ1NjUsIDAuMjExMzE2LCAwLjI3Mjc4LCAwLjM0OTU1OCwgMC40MjYzNTEsIDAuNTAzMTE1LCAwLjU3OTkyMyIsIFwKLSAgICAgICAgICAiMC4xNDE3MzMsIDAuMjE4NTIyLCAwLjI3OTg5OCwgMC4zNTY2NSwgMC40MzM1NTEsIDAuNTEwMzQxLCAwLjU4NzAwNyIsIFwKLSAgICAgICAgICAiMC4xNDY4OTksIDAuMjIzNTc2LCAwLjI4NTAyNywgMC4zNjE4NzEsIDAuNDM4NjIsIDAuNTE1NTA0LCAwLjU5MjIxNSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzkyNzgsIDAuMTk5MTkxLCAwLjMyODU3MiwgMC40OTExOTgsIDAuNjUyODQxLCAwLjgxNTMyNCwgMC45NzczMzciLCBcCi0gICAgICAgICAgIjAuMDM5Mjg3LCAwLjE5OTQxMSwgMC4zMjkxMTksIDAuNDkxMjA2LCAwLjY1MzE4OSwgMC44MTUzMTEsIDAuOTc3NDAzIiwgXAotICAgICAgICAgICIwLjAzOTI3MiwgMC4xOTg5NDIsIDAuMzI4Mzc3LCAwLjQ5MTIyNCwgMC42NTMyMTksIDAuODE1MzI0LCAwLjk3NjMiLCBcCi0gICAgICAgICAgIjAuMDM5MjkxLCAwLjE5OTIxLCAwLjMyODY3OSwgMC40OTA4MzYsIDAuNjUzMjM4LCAwLjgxNTI0MiwgMC45NzczIiwgXAotICAgICAgICAgICIwLjAzOTI2NSwgMC4xOTk0NTEsIDAuMzI4NDY2LCAwLjQ5MTE4OCwgMC42NTMyNCwgMC44MTUzMDMsIDAuOTc2MzQ3IiwgXAotICAgICAgICAgICIwLjAzOTI1MywgMC4xOTk0MDEsIDAuMzI4Mzk0LCAwLjQ5MTEyOCwgMC42NTMxODEsIDAuODE0Mjk1LCAwLjk3NzMyNCIsIFwKLSAgICAgICAgICAiMC4wMzkyODgsIDAuMTk5Mjk0LCAwLjMyODYzNiwgMC40OTA0NzcsIDAuNjUyMzk0LCAwLjgxNDI1NywgMC45NzczMTciKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk5NzU3LCAwLjE3NTgzNCwgMC4yMzY1NTEsIDAuMzEyNTI5LCAwLjM4ODQxNiwgMC40NjQzMzQsIDAuNTQwMjA4IiwgXAotICAgICAgICAgICIwLjEwNzc5MywgMC4xODM4NzIsIDAuMjQ0NjE3LCAwLjMyMDYzNSwgMC4zOTY0OTQsIDAuNDcyMzcyLCAwLjU0ODE5NyIsIFwKLSAgICAgICAgICAiMC4xMTYzMSwgMC4xOTIzODYsIDAuMjUzMTM4LCAwLjMyOTA4MSwgMC40MDQ5NjksIDAuNDgwODg2LCAwLjU1NjgxMSIsIFwKLSAgICAgICAgICAiMC4xMjI2MTIsIDAuMTk4NjM5LCAwLjI1OTQwNSwgMC4zMzUzODIsIDAuNDExMjY4LCAwLjQ4NzA3MiwgMC41NjMwNDciLCBcCi0gICAgICAgICAgIjAuMTI3Njk3LCAwLjIwMzc5NywgMC4yNjQ1MjYsIDAuMzQwNTAxLCAwLjQxNjQzOCwgMC40OTIyOTYsIDAuNTY4MjUyIiwgXAotICAgICAgICAgICIwLjEzNDczMiwgMC4yMTA4MTMsIDAuMjcxNjE1LCAwLjM0NzQ2OCwgMC40MjMzNjgsIDAuNDk5MzU1LCAwLjU3NTIyNSIsIFwKLSAgICAgICAgICAiMC4xMzk4MDQsIDAuMjE1ODgsIDAuMjc2NjIzLCAwLjM1MjYxNywgMC40Mjg1MDgsIDAuNTA0NDM2LCAwLjU4MDQxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzODQ3MiwgMC4xOTQyMzIsIDAuMzE5OTIzLCAwLjQ3NzM2OCwgMC42MzYxOTMsIDAuNzk0MDQ5LCAwLjk1MTk2NSIsIFwKLSAgICAgICAgICAiMC4wMzg0NzEsIDAuMTk0MjQsIDAuMzIwNDI0LCAwLjQ3NzU5MywgMC42MzU0NzYsIDAuNzk0MDM4LCAwLjk1MTQ1NiIsIFwKLSAgICAgICAgICAiMC4wMzg0NzEsIDAuMTk0MjMyLCAwLjMyMDEwNSwgMC40NzczNzUsIDAuNjM2MTg1LCAwLjc5NDAyOCwgMC45NTA3MzYiLCBcCi0gICAgICAgICAgIjAuMDM4NDcxLCAwLjE5NDIxOSwgMC4zMTk5MjMsIDAuNDc3MzY4LCAwLjYzNjE2NCwgMC43OTMwOTEsIDAuOTUxOTIiLCBcCi0gICAgICAgICAgIjAuMDM4NDU4LCAwLjE5NDIxMywgMC4zMjA0MzksIDAuNDc3Mzc3LCAwLjYzNTAzOCwgMC43OTM5OTIsIDAuOTUwODYyIiwgXAotICAgICAgICAgICIwLjAzODQ4NCwgMC4xOTQwMjcsIDAuMzE5OTY1LCAwLjQ3NzU0MywgMC42MzYwNTIsIDAuNzkzODgzLCAwLjk1MTc2OSIsIFwKLSAgICAgICAgICAiMC4wMzg0MzIsIDAuMTk0MTMxLCAwLjMyMDM2OSwgMC40Nzc0MzQsIDAuNjM2MDQyLCAwLjc5Mzg3OSwgMC45NTE3ODIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA3MTk3LCAwLjAwNzI0NiwgMC4wMDcyNTIsIDAuMDA3MjU1LCAwLjAwNzI1NywgMC4wMDcyNTgsIDAuMDA3MjYiLCBcCi0gICAgICAgICAgIjAuMDA3MjA4LCAwLjAwNzI1OCwgMC4wMDcyNjQsIDAuMDA3MjY3LCAwLjAwNzI2OSwgMC4wMDcyNjksIDAuMDA3MjcxIiwgXAotICAgICAgICAgICIwLjAwNzI0OSwgMC4wMDcyOTgsIDAuMDA3MzA0LCAwLjAwNzMwNywgMC4wMDczMDksIDAuMDA3MzEsIDAuMDA3MzA3IiwgXAotICAgICAgICAgICIwLjAwNzMxNiwgMC4wMDczNjUsIDAuMDA3MzcxLCAwLjAwNzM3NSwgMC4wMDczNzcsIDAuMDA3MzgsIDAuMDA3Mzc2IiwgXAotICAgICAgICAgICIwLjAwNzM5MywgMC4wMDc0NDIsIDAuMDA3NDQ4LCAwLjAwNzQ1MiwgMC4wMDc0NTQsIDAuMDA3NDU1LCAwLjAwNzQ1NiIsIFwKLSAgICAgICAgICAiMC4wMDc0OTcsIDAuMDA3NTQ4LCAwLjAwNzU2NCwgMC4wMDc1NjcsIDAuMDA3NTU5LCAwLjAwNzU2MSwgMC4wMDc1NyIsIFwKLSAgICAgICAgICAiMC4wMDc2MDYsIDAuMDA3NjU3LCAwLjAwNzY2MiwgMC4wMDc2NjYsIDAuMDA3NjY3LCAwLjAwNzY2OCwgMC4wMDc2NjgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDY1OTgsIDAuMDA2NjYyLCAwLjAwNjY3MSwgMC4wMDY2NzUsIDAuMDA2Njc3LCAwLjAwNjY3OSwgMC4wMDY2NzkiLCBcCi0gICAgICAgICAgIjAuMDA2NTk5LCAwLjAwNjY2MywgMC4wMDY2NzIsIDAuMDA2Njc2LCAwLjAwNjY3NywgMC4wMDY2OCwgMC4wMDY2ODEiLCBcCi0gICAgICAgICAgIjAuMDA2NjMxLCAwLjAwNjY5NSwgMC4wMDY3MDMsIDAuMDA2NzA3LCAwLjAwNjcxLCAwLjAwNjcwOSwgMC4wMDY3MTEiLCBcCi0gICAgICAgICAgIjAuMDA2NjkyLCAwLjAwNjc1NiwgMC4wMDY3NjQsIDAuMDA2NzY4LCAwLjAwNjc3MSwgMC4wMDY3NzIsIDAuMDA2NzczIiwgXAotICAgICAgICAgICIwLjAwNjc2LCAwLjAwNjgyMywgMC4wMDY4MzEsIDAuMDA2ODM2LCAwLjAwNjgzOCwgMC4wMDY4MzksIDAuMDA2ODQiLCBcCi0gICAgICAgICAgIjAuMDA2ODU2LCAwLjAwNjkyLCAwLjAwNjkyOSwgMC4wMDY5NDQsIDAuMDA2OTQ3LCAwLjAwNjkzOCwgMC4wMDY5NDkiLCBcCi0gICAgICAgICAgIjAuMDA2OTU1LCAwLjAwNzAxOSwgMC4wMDcwMjcsIDAuMDA3MDMyLCAwLjAwNzAzMywgMC4wMDcwMzQsIDAuMDA3MDM1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBFREZGWEwgKgotICogLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChFREZGWEwpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC45NjQxNDg7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgZmYgKE4zMCxRQklOVCkgewotICAgIG5leHRfc3RhdGUgOiAiKChFIEQpICsgKCFFICghKCFOMzApKSkpIjsKLSAgICBjbG9ja2VkX29uIDogIkNLIjsKLSAgfQotICBwaW4oQ0spICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY5OTA5NzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2OTkwOTc7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjk5MDUzOwotICAgIGNsb2NrIDogdHJ1ZTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDM4NTMsIDAuMDAzODY1LCAwLjAwMzkxNywgMC4wMDQwMzIsIDAuMDA0MTQsIDAuMDA0MzU5LCAwLjAwNDU1OCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNzYyMywgMC4wMDc2MjgsIDAuMDA3NzIzLCAwLjAwNzgzOCwgMC4wMDc5ODMsIDAuMDA4MjU1LCAwLjAwODQ4NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQmRSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fRV9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMTM1MzgzLCAwLjE0MzYsIDAuMTUyNDcxLCAwLjE1OTE4MiwgMC4xNjQ1NjksIDAuMTcxODU5LCAwLjE3NzI4OSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDYxNjYsIDAuMDY5NzcyLCAwLjA3ODU4MywgMC4wODUxMDYsIDAuMDkwMzY3LCAwLjA5NzI1NiwgMC4xMDI0MTUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEQpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYzMTMwOTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2Mjk4ODQ7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjMxMzA5OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzI4OSwgMC4wMDMyNjQsIDAuMDAzMjc1LCAwLjAwMzMxOCwgMC4wMDMzNzMsIDAuMDAzNDgyLCAwLjAwMzU5OCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNjM0MywgMC4wMDYzMjQsIDAuMDA2MzMzLCAwLjAwNjM3NCwgMC4wMDY0MzYsIDAuMDA2NTI2LCAwLjAwNjY1NiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJFIjsKLSAgICAgIHNkZl9jb25kIDogIkUgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDM3NSwgLTAuMDMyNSwgLTAuMDI2MjUsIC0wLjAyNjI1LCAtMC4wMjYyNSwgLTAuMDIyNSwgLTAuMDIiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzNzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMzEyNSwgLTAuMDI3NSwgLTAuMDI1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDQzNzUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzc1LCAtMC4wMzM3NSwgLTAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjA2MTI1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDQsIC0wLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjA2NzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjA0NjI1LCAtMC4wNDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDcxMjUsIC0wLjA2NjI1LCAtMC4wNjYyNSwgLTAuMDYsIC0wLjA2LCAtMC4wNTYyNSwgLTAuMDUzNzUiLCBcCi0gICAgICAgICAgIi0wLjA4LCAtMC4wNzUsIC0wLjA2ODc1LCAtMC4wNjg3NSwgLTAuMDY4NzUsIC0wLjA2NSwgLTAuMDYyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAxODc1LCAtMC4wMTM3NSwgLTAuMDAxMjUsIC0wLjAwMTI1LCAwLjAwNSwgMC4wMDg3NSwgMC4wMTc1IiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLCAwLjAwMzc1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIC0wLjAwMjUsIDAiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA4NzUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxNSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA0NjI1LCAtMC4wNDEyNSwgLTAuMDM1LCAtMC4wMjg3NSwgLTAuMDI4NzUsIC0wLjAxODc1LCAtMC4wMTYyNSIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAyNzUsIC0wLjAxODc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJFIjsKLSAgICAgIHNkZl9jb25kIDogIkUgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU2MjUsIDAuMDUxMjUsIDAuMDQ1LCAwLjA0NSwgMC4wMzg3NSwgMC4wMzUsIDAuMDMyNSIsIFwKLSAgICAgICAgICAiMC4wNjc1LCAwLjA1NjI1LCAwLjA1LCAwLjA1LCAwLjA0Mzc1LCAwLjA0LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIjAuMDczNzUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNTYyNSwgMC4wNTI1LCAwLjA1IiwgXAotICAgICAgICAgICIwLjA4LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA2MjUsIDAuMDU4NzUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIjAuMDg2MjUsIDAuMDgxMjUsIDAuMDc1LCAwLjA2ODc1LCAwLjA2ODc1LCAwLjA2NSwgMC4wNjI1IiwgXAotICAgICAgICAgICIwLjA5NjI1LCAwLjA5MTI1LCAwLjA4NSwgMC4wNzg3NSwgMC4wNzg3NSwgMC4wNzUsIDAuMDcyNSIsIFwKLSAgICAgICAgICAiMC4xMDUsIDAuMDkzNzUsIDAuMDg3NSwgMC4wODc1LCAwLjA4MTI1LCAwLjA3NzUsIDAuMDc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDUsIDAuMDM4NzUsIDAuMDMyNSwgMC4wMjYyNSwgMC4wMiwgMC4wMTYyNSwgMC4wMDc1IiwgXAotICAgICAgICAgICIwLjA1NSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMjEyNSwgMC4wMTI1IiwgXAotICAgICAgICAgICIwLjA2MTI1LCAwLjA1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDI3NSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4wNjc1LCAwLjA1NjI1LCAwLjA1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDMzNzUsIDAuMDI1IiwgXAotICAgICAgICAgICIwLjA3Mzc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDUsIDAuMDQzNzUsIDAuMDQsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMDgzNzUsIDAuMDcyNSwgMC4wNjYyNSwgMC4wNiwgMC4wNTM3NSwgMC4wNDM3NSwgMC4wNDEyNSIsIFwKLSAgICAgICAgICAiMC4wODYyNSwgMC4wODEyNSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA2MjUsIDAuMDUyNSwgMC4wNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNDgwOTQ7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNDgwOTQ7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNDgwODk7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA1OTEsIDAuMDA1OTI3LCAwLjAwNjAwOCwgMC4wMDYxMjUsIDAuMDA2MjYsIDAuMDA2NDg5LCAwLjAwNjY5MSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNzMzNCwgMC4wMDczNDQsIDAuMDA3NDY0LCAwLjAwNzY0NCwgMC4wMDc4NzIsIDAuMDA4MjM5LCAwLjAwODU3MSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRCI7Ci0gICAgICBzZGZfY29uZCA6ICJEID09IDEnYjAiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjA0Mzc1LCAtMC4wMzI1LCAtMC4wMjYyNSwgLTAuMDIsIC0wLjAxMzc1LCAtMC4wMSwgLTAuMDAxMjUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wNDM3NSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDI1LCAtMC4wMTUsIC0wLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjA1NSwgLTAuMDUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMzEyNSwgLTAuMDIxMjUsIC0wLjAxODc1IiwgXAotICAgICAgICAgICItMC4wNjEyNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDI3NSwgLTAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjA2MTI1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMjc1LCAtMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjA3MTI1LCAtMC4wNiwgLTAuMDUzNzUsIC0wLjA0NzUsIC0wLjA0MTI1LCAtMC4wMzc1LCAtMC4wMjg3NSIsIFwKLSAgICAgICAgICAiLTAuMDczNzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjA0LCAtMC4wMzEyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAsIDAuMDA1LCAwLjAxNzUsIDAuMDE3NSwgMC4wMjM3NSwgMC4wMjc1LCAwLjAzNjI1IiwgXAotICAgICAgICAgICItMC4wMDUsIDAsIDAuMDA2MjUsIDAuMDEyNSwgMC4wMTg3NSwgMC4wMjI1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDE3NSwgLTAuMDA2MjUsIDAsIDAuMDA2MjUsIDAuMDA2MjUsIDAuMDE2MjUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjAxNzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLCAwLjAwNjI1LCAwLjAxLCAwLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAsIDAuMDAzNzUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDI3NSwgLTAuMDIyNSwgLTAuMDE2MjUsIC0wLjAxLCAtMC4wMDM3NSwgMCwgMC4wMDI1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDEyNSwgLTAuMDA4NzUsIDAiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiRCI7Ci0gICAgICBzZGZfY29uZCA6ICJEID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAzNzUsIC0wLjAzMjUsIC0wLjAyNjI1LCAtMC4wMjYyNSwgLTAuMDIsIC0wLjAyMjUsIC0wLjAyIiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDM3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAzMTI1LCAtMC4wMjc1LCAtMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjA1NSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDMzNzUsIC0wLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wNjc1LCAtMC4wNTYyNSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNSwgLTAuMDQ2MjUsIC0wLjA0Mzc1IiwgXAotICAgICAgICAgICItMC4wNzM3NSwgLTAuMDY4NzUsIC0wLjA2MjUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNTI1LCAtMC4wNSIsIFwKLSAgICAgICAgICAiLTAuMDgzNzUsIC0wLjA3ODc1LCAtMC4wNzI1LCAtMC4wNzI1LCAtMC4wNjYyNSwgLTAuMDYyNSwgLTAuMDYiLCBcCi0gICAgICAgICAgIi0wLjA5MjUsIC0wLjA4NzUsIC0wLjA4MTI1LCAtMC4wODEyNSwgLTAuMDc1LCAtMC4wNzEyNSwgLTAuMDY4NzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjI1LCAwLjAxMTI1LCAwLjAxNzUsIDAuMDIzNzUsIDAuMDMsIDAuMDMzNzUsIDAuMDM2MjUiLCBcCi0gICAgICAgICAgIi0wLjAwNSwgMC4wMDYyNSwgMC4wMTI1LCAwLjAxODc1LCAwLjAyNSwgMC4wMjg3NSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDExMjUsIC0wLjAwNjI1LCAwLjAwNjI1LCAwLjAwNjI1LCAwLjAxMjUsIDAuMDIyNSwgMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjAxNzUsIC0wLjAwNjI1LCAwLCAwLjAwNjI1LCAwLjAwNjI1LCAwLjAxNjI1LCAwLjAxODc1IiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAsIDAsIDAuMDEsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDI3NSwgLTAuMDIyNSwgLTAuMDE2MjUsIC0wLjAxLCAtMC4wMDM3NSwgMCwgMC4wMDI1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDEyNSwgLTAuMDAyNSwgMCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUQiOwotICAgICAgc2RmX2NvbmQgOiAiRCA9PSAxJ2IwIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNSwgMC4wNDUsIDAuMDM4NzUsIDAuMDMyNSwgMC4wMjYyNSwgMC4wMTYyNSwgMC4wMTM3NSIsIFwKLSAgICAgICAgICAiMC4wNjEyNSwgMC4wNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyNzUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMDY3NSwgMC4wNTYyNSwgMC4wNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzMzc1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiMC4wNzM3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1LCAwLjA0Mzc1LCAwLjA0LCAwLjAzMTI1IiwgXAotICAgICAgICAgICIwLjA3Mzc1LCAwLjA2ODc1LCAwLjA1NjI1LCAwLjA1LCAwLjA1LCAwLjA0LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIjAuMDc3NSwgMC4wNzI1LCAwLjA2NjI1LCAwLjA2LCAwLjA1Mzc1LCAwLjA0Mzc1LCAwLjA0MTI1IiwgXAotICAgICAgICAgICIwLjA4NjI1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA0NjI1LCAwLjA0Mzc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM3NSwgMC4wMzI1LCAwLjAzMjUsIDAuMDI2MjUsIDAuMDI2MjUsIDAuMDIyNSwgMC4wMiIsIFwKLSAgICAgICAgICAiMC4wNDg3NSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDI3NSwgMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMDU1LCAwLjA1LCAwLjA0Mzc1LCAwLjA0Mzc1LCAwLjA0Mzc1LCAwLjA0LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIjAuMDYxMjUsIDAuMDU2MjUsIDAuMDUsIDAuMDUsIDAuMDQzNzUsIDAuMDQ2MjUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMDY3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1NjI1LCAwLjA1LCAwLjA0NjI1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjA3MTI1LCAwLjA2NjI1LCAwLjA2LCAwLjA2LCAwLjA1Mzc1LCAwLjA1LCAwLjA0NzUiLCBcCi0gICAgICAgICAgIjAuMDczNzUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNjI1LCAwLjA2MjUsIDAuMDU4NzUsIDAuMDU2MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIkQiOwotICAgICAgc2RmX2NvbmQgOiAiRCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTYyNSwgMC4wNDUsIDAuMDM4NzUsIDAuMDM4NzUsIDAuMDMyNSwgMC4wMjg3NSwgMC4wMjYyNSIsIFwKLSAgICAgICAgICAiMC4wNjEyNSwgMC4wNTYyNSwgMC4wNSwgMC4wNDM3NSwgMC4wNDM3NSwgMC4wNCwgMC4wMzc1IiwgXAotICAgICAgICAgICIwLjA3Mzc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDU2MjUsIDAuMDUsIDAuMDQ2MjUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMDgsIDAuMDc1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDYyNSwgMC4wNTg3NSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiMC4wODYyNSwgMC4wODEyNSwgMC4wNzUsIDAuMDc1LCAwLjA2ODc1LCAwLjA2NSwgMC4wNjI1IiwgXAotICAgICAgICAgICIwLjEwMjUsIDAuMDkxMjUsIDAuMDg1LCAwLjA4NSwgMC4wNzg3NSwgMC4wNzUsIDAuMDcyNSIsIFwKLSAgICAgICAgICAiMC4xMTEyNSwgMC4xLCAwLjA5Mzc1LCAwLjA5Mzc1LCAwLjA4NzUsIDAuMDgzNzUsIDAuMDgxMjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTg3NSwgMC4wMTM3NSwgMC4wMDc1LCAwLjAwMTI1LCAtMC4wMDUsIC0wLjAwODc1LCAtMC4wMTEyNSIsIFwKLSAgICAgICAgICAiMC4wMywgMC4wMTg3NSwgMC4wMTI1LCAwLjAwNjI1LCAwLjAwNjI1LCAtMC4wMDM3NSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMDM2MjUsIDAuMDMxMjUsIDAuMDI1LCAwLjAxODc1LCAwLjAxMjUsIDAuMDA4NzUsIDAiLCBcCi0gICAgICAgICAgIjAuMDQ4NzUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMjUsIDAuMDE4NzUsIDAuMDE1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMDU1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDI1LCAwLjAyMTI1LCAwLjAxODc1IiwgXAotICAgICAgICAgICIwLjA1ODc1LCAwLjA1Mzc1LCAwLjA0NzUsIDAuMDQxMjUsIDAuMDM1LCAwLjAzMTI1LCAwLjAyODc1IiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDU2MjUsIDAuMDUsIDAuMDQzNzUsIDAuMDQzNzUsIDAuMDQsIDAuMDMxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFEpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4yMDAxODM7Ci0gICAgZnVuY3Rpb24gOiAiTjMwIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBub25fdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJpc2luZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTg4NzUsIDAuMTI5Mzk5LCAwLjIyNDMzNiwgMC4zODMxMTMsIDAuNTQxNjg0LCAwLjkwOTQ4NywgMS4xMTg5NiIsIFwKLSAgICAgICAgICAiMC4xMjY5ODgsIDAuMTM3NTEyLCAwLjIzMjMyMywgMC4zOTEyMjUsIDAuNTQ4MTUzLCAwLjkxOTY1OSwgMS4xMzEyMSIsIFwKLSAgICAgICAgICAiMC4xMzU3NzQsIDAuMTQ2Mjk3LCAwLjI0MTQwOCwgMC40MDAwMDMsIDAuNTU4NTg4LCAwLjkyODQwOCwgMS4xNDAwMSIsIFwKLSAgICAgICAgICAiMC4xNDIzMzYsIDAuMTUyODM2LCAwLjI0Nzc5NCwgMC40MDY1NDMsIDAuNTY1MTIzLCAwLjkzMjcwMiwgMS4xNDI1MiIsIFwKLSAgICAgICAgICAiMC4xNDc2NDYsIDAuMTU4MTY4LCAwLjI1Mjk4LCAwLjQxMTg0NSwgMC41NzA0MTYsIDAuOTQwMjI5LCAxLjE1MTY3IiwgXAotICAgICAgICAgICIwLjE1NDgxNCwgMC4xNjUzMjgsIDAuMjYwMTg0LCAwLjQxOSwgMC41Nzc1OTgsIDAuOTQ3NDg5LCAxLjE1NDk4IiwgXAotICAgICAgICAgICIwLjE2MDAyNywgMC4xNzA1OTMsIDAuMjY1NjM1LCAwLjQyMzMwNCwgMC41ODI2OTMsIDAuOTQ5NjU5LCAxLjE2NDE5Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExNzc3LCAwLjEzOTc0MSwgMC4zMzkxODYsIDAuNjcyNjIzLCAxLjAwNjA2LCAxLjc4MjUsIDIuMjI2MjQiLCBcCi0gICAgICAgICAgIjAuMTE3NzcyLCAwLjEzOTcyNCwgMC4zMzg1ODYsIDAuNjcyNzI2LCAxLjAwMzcxLCAxLjc4NDYxLCAyLjIyOTA2IiwgXAotICAgICAgICAgICIwLjExNzc3MSwgMC4xMzk3NCwgMC4zMzkzNjQsIDAuNjczMTY5LCAxLjAwNjkxLCAxLjc4NjAxLCAyLjIzMDYyIiwgXAotICAgICAgICAgICIwLjExNzc3MywgMC4xMzk1OSwgMC4zMzkyMSwgMC42NzI2ODIsIDEuMDA2MTEsIDEuNzc5MDYsIDIuMjIzIiwgXAotICAgICAgICAgICIwLjExNzc3NiwgMC4xMzk3NDIsIDAuMzM4NDY3LCAwLjY3MzIwMiwgMS4wMDcsIDEuNzg2MTIsIDIuMjMxMDYiLCBcCi0gICAgICAgICAgIjAuMTE3NzAzLCAwLjEzOTYzNSwgMC4zMzg5MjgsIDAuNjczMjYsIDEuMDA3LCAxLjc4NTc4LCAyLjIyODQzIiwgXAotICAgICAgICAgICIwLjExNzUwNCwgMC4xMzk0MTgsIDAuMzM4Nzc5LCAwLjY3MTkwMiwgMS4wMDcyNCwgMS43ODIzMSwgMi4yMzA2NSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMjQ3ODksIDAuMTM0NDUxLCAwLjIyMTQ3LCAwLjM2Njg4OSwgMC41MTE5MjUsIDAuODQ4ODY0LCAxLjA0MzY3IiwgXAotICAgICAgICAgICIwLjEzMzA2MiwgMC4xNDI3ODQsIDAuMjI5ODg5LCAwLjM3NTEyMSwgMC41MjAxNjcsIDAuODU4MjczLCAxLjA1MjA1IiwgXAotICAgICAgICAgICIwLjE0MTg1OCwgMC4xNTE1MjMsIDAuMjM5MDU2LCAwLjM4NCwgMC41MjkwNTUsIDAuODY4MjEsIDEuMDU4OTQiLCBcCi0gICAgICAgICAgIjAuMTQ4NTg1LCAwLjE1ODI0NiwgMC4yNDU2OTgsIDAuMzkwNzQ1LCAwLjUzNTY0NSwgMC44NzQ5NzEsIDEuMDY2MDIiLCBcCi0gICAgICAgICAgIjAuMTU0MDU0LCAwLjE2MzcyNSwgMC4yNTA2MjcsIDAuMzk1NDgzLCAwLjU0MTE3MSwgMC44Nzk4LCAxLjA3MzIxIiwgXAotICAgICAgICAgICIwLjE2MTM1OSwgMC4xNzEwMDMsIDAuMjU4Mzg0LCAwLjQwMzM2MywgMC41NDg0NzMsIDAuODg3NTg1LCAxLjA4IiwgXAotICAgICAgICAgICIwLjE2Njc1OCwgMC4xNzYzODMsIDAuMjYzNjUyLCAwLjQwODY2LCAwLjU1NDIyNiwgMC44OTI5NSwgMS4wODU5NCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDY1NTMsIDAuMTI2MTgsIDAuMzAyNjYsIDAuNjA0NzM5LCAwLjkwNDM0LCAxLjU5NzYzLCAxLjk5MzMzIiwgXAotICAgICAgICAgICIwLjEwNjM2MSwgMC4xMjYxNCwgMC4zMDUyODYsIDAuNjA0NzMyLCAwLjkwNDMxOSwgMS42MDM1NSwgMS45OTkxMiIsIFwKLSAgICAgICAgICAiMC4xMDY1ODYsIDAuMTI2MTU0LCAwLjMwMzIyNywgMC42MDQ3MjQsIDAuOTA0MjM1LCAxLjYwMzA5LCAxLjk5NjY1IiwgXAotICAgICAgICAgICIwLjEwNjU0MywgMC4xMjYyMjksIDAuMzAyODYzLCAwLjYwNDcxOCwgMC45MDQzMDcsIDEuNjAzMDksIDEuOTk5NzgiLCBcCi0gICAgICAgICAgIjAuMTA2MzQ0LCAwLjEyNTA5OCwgMC4zMDIwNjYsIDAuNjAyNjI3LCAwLjkwNDMwNCwgMS42MDMxNywgMS45OTg4NyIsIFwKLSAgICAgICAgICAiMC4xMDU3MjksIDAuMTI2NDM2LCAwLjMwMjc4OSwgMC42MDQ3MDksIDAuOTA0Mjc0LCAxLjYwMzA4LCAyLjAwMjgxIiwgXAotICAgICAgICAgICIwLjEwNjY4MywgMC4xMjU5NzcsIDAuMzA0NjcsIDAuNjA0Njc2LCAwLjkwNDE1MywgMS42MDMxMiwgMS45OTkwNyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQ2NjIsIDAuMDA0NjY0LCAwLjAwNDY2OSwgMC4wMDQ2NywgMC4wMDQ2NzEsIDAuMDA0NjcyLCAwLjAwNDY3MiIsIFwKLSAgICAgICAgICAiMC4wMDQ2NTYsIDAuMDA0NjU4LCAwLjAwNDY2MiwgMC4wMDQ2NjUsIDAuMDA0NjY1LCAwLjAwNDY2NiwgMC4wMDQ2NjYiLCBcCi0gICAgICAgICAgIjAuMDA0Njk0LCAwLjAwNDY5NiwgMC4wMDQ3MDEsIDAuMDA0NzAzLCAwLjAwNDcwMywgMC4wMDQ3MDQsIDAuMDA0NzA1IiwgXAotICAgICAgICAgICIwLjAwNDc1NSwgMC4wMDQ3NTcsIDAuMDA0NzYyLCAwLjAwNDc2NCwgMC4wMDQ3NjUsIDAuMDA0NzY2LCAwLjAwNDc2NiIsIFwKLSAgICAgICAgICAiMC4wMDQ4MjcsIDAuMDA0ODI4LCAwLjAwNDgzMywgMC4wMDQ4MzUsIDAuMDA0ODM2LCAwLjAwNDgzNiwgMC4wMDQ4MzciLCBcCi0gICAgICAgICAgIjAuMDA0OTIxLCAwLjAwNDkzNSwgMC4wMDQ5MjgsIDAuMDA0OTMsIDAuMDA0OTMsIDAuMDA0OTMxLCAwLjAwNDk0NCIsIFwKLSAgICAgICAgICAiMC4wMDUwMTksIDAuMDA1MDIxLCAwLjAwNTAyNywgMC4wMDUwMjgsIDAuMDA1MDI5LCAwLjAwNTAyOSwgMC4wMDUwMyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDg3MywgMC4wMDQ4NzUsIDAuMDA0ODgsIDAuMDA0ODgyLCAwLjAwNDg4MywgMC4wMDQ4ODQsIDAuMDA0ODg0IiwgXAotICAgICAgICAgICIwLjAwNDg3NywgMC4wMDQ4NzgsIDAuMDA0ODg0LCAwLjAwNDg4NiwgMC4wMDQ4ODcsIDAuMDA0ODg3LCAwLjAwNDg4NyIsIFwKLSAgICAgICAgICAiMC4wMDQ5MjUsIDAuMDA0OTI2LCAwLjAwNDkzMSwgMC4wMDQ5MzMsIDAuMDA0OTM0LCAwLjAwNDkzNSwgMC4wMDQ5MzUiLCBcCi0gICAgICAgICAgIjAuMDA0OTkxLCAwLjAwNDk5MywgMC4wMDQ5OTgsIDAuMDA1LCAwLjAwNTAwMSwgMC4wMDUwMDEsIDAuMDA1MDAxIiwgXAotICAgICAgICAgICIwLjAwNTA2NiwgMC4wMDUwNjgsIDAuMDA1MDczLCAwLjAwNTA3NSwgMC4wMDUwNzYsIDAuMDA1MDc2LCAwLjAwNTA3NyIsIFwKLSAgICAgICAgICAiMC4wMDUxODcsIDAuMDA1MTg4LCAwLjAwNTE4OCwgMC4wMDUxOTYsIDAuMDA1MTk3LCAwLjAwNTE5NywgMC4wMDUxOTEiLCBcCi0gICAgICAgICAgIjAuMDA1Mjc4LCAwLjAwNTI3OSwgMC4wMDUyODMsIDAuMDA1Mjg1LCAwLjAwNTI4NiwgMC4wMDUyODksIDAuMDA1Mjg3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihRTikgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjE5OTc4NjsKLSAgICBmdW5jdGlvbiA6ICJRQklOVCI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3NlbnNlIDogbm9uX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiByaXNpbmdfZWRnZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTM1MzgzLCAwLjE0NjA0NCwgMC4yNDIwMzMsIDAuNDAxOTk0LCAwLjU2MTkxOCwgMC45MzUwMzUsIDEuMTQ4MzgiLCBcCi0gICAgICAgICAgIjAuMTQzNiwgMC4xNTQyNTksIDAuMjUwMjM4LCAwLjQxMDIwOCwgMC41NzAxMzQsIDAuOTQzMjM2LCAxLjE1NjYiLCBcCi0gICAgICAgICAgIjAuMTUyNDcxLCAwLjE2MzEzMiwgMC4yNTkxNywgMC40MTkwODgsIDAuNTc5MDE3LCAwLjk1MjMxNSwgMS4xNjUzNSIsIFwKLSAgICAgICAgICAiMC4xNTkxODIsIDAuMTY5ODQzLCAwLjI2NTg2MiwgMC40MjU4MDEsIDAuNTg1Njk5LCAwLjk1OTAzMiwgMS4xNzIwOCIsIFwKLSAgICAgICAgICAiMC4xNjQ1NjksIDAuMTc1MjIzLCAwLjI3MTIxMSwgMC40MzExNDgsIDAuNTkxMTA4LCAwLjk2NDMxNSwgMS4xNzc1OSIsIFwKLSAgICAgICAgICAiMC4xNzE4NTksIDAuMTgyNTI5LCAwLjI3ODU0MSwgMC40Mzg0NjYsIDAuNTk4NDA1LCAwLjk3MTY5NSwgMS4xODQ3NCIsIFwKLSAgICAgICAgICAiMC4xNzcyODksIDAuMTg3OTcyLCAwLjI4NDAwNCwgMC40NDM5MiwgMC42MDM5NDUsIDAuOTc3MTE1LCAxLjE5MDM3Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExNjgxNCwgMC4xMzkxMywgMC4zNDAxOTUsIDAuNjc1OTk2LCAxLjAxMTQ1LCAxLjc5MjU5LCAyLjIzODgxIiwgXAotICAgICAgICAgICIwLjExNjgxOCwgMC4xMzkwNDgsIDAuMzQwNjAyLCAwLjY3NTk5OCwgMS4wMTE0NCwgMS43OTQxNCwgMi4yMzg1MiIsIFwKLSAgICAgICAgICAiMC4xMTY4MTMsIDAuMTM5MTI5LCAwLjM0MDAwNSwgMC42NzU5OTgsIDEuMDExNDEsIDEuNzk0MjUsIDIuMjM5NTMiLCBcCi0gICAgICAgICAgIjAuMTE2ODEzLCAwLjEzOTEzMSwgMC4zNDAwNDgsIDAuNjc2MDAxLCAxLjAxMTQsIDEuNzk0MjUsIDIuMjM5NTEiLCBcCi0gICAgICAgICAgIjAuMTE2ODIxLCAwLjEzOTE0MiwgMC4zNDAxOTcsIDAuNjc1NDMyLCAxLjAxMTQ0LCAxLjc5NDEzLCAyLjIzNzQ1IiwgXAotICAgICAgICAgICIwLjExNjgzMiwgMC4xMzkyMjMsIDAuMzQwMDQ4LCAwLjY3NTk3OCwgMS4wMTE0MywgMS43OTQyMiwgMi4yNDEzNiIsIFwKLSAgICAgICAgICAiMC4xMTY3MDgsIDAuMTM5MDQ4LCAwLjMzOTk4NywgMC42NzU5MjQsIDEuMDExNDQsIDEuNzk0MjIsIDIuMjM3NDMiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTIxNzM4LCAwLjEzMTQ4OCwgMC4yMTkyNDEsIDAuMzY1NDk4LCAwLjUxMTcwNSwgMC44NTI4NjEsIDEuMDQ3OTgiLCBcCi0gICAgICAgICAgIjAuMTI5ODM5LCAwLjEzOTU5LCAwLjIyNzM1NywgMC4zNzM1OTgsIDAuNTE5ODkxLCAwLjg2MTA0MiwgMS4wNTU5MiIsIFwKLSAgICAgICAgICAiMC4xMzg2MTksIDAuMTQ4MzcsIDAuMjM2MTI2LCAwLjM4MjM3MSwgMC41Mjg1ODksIDAuODY5ODMzLCAxLjA2NDY5IiwgXAotICAgICAgICAgICIwLjE0NTE5MiwgMC4xNTQ5NDMsIDAuMjQyNjk2LCAwLjM4ODk0NiwgMC41MzUxNiwgMC44NzYzMTgsIDEuMDcxMzYiLCBcCi0gICAgICAgICAgIjAuMTUwNDg2LCAwLjE2MDIzNiwgMC4yNDgsIDAuMzk0MjM2LCAwLjU0MDQ2NSwgMC44ODE3MSwgMS4wNzY2MyIsIFwKLSAgICAgICAgICAiMC4xNTc2NzksIDAuMTY3NDAxLCAwLjI1NTIwNiwgMC40MDE0NDcsIDAuNTQ3NjU5LCAwLjg4ODc4MSwgMS4wODM4IiwgXAotICAgICAgICAgICIwLjE2MjkwNiwgMC4xNzI2NTgsIDAuMjYwNDMsIDAuNDA2NzI1LCAwLjU1MjkxMywgMC44OTQwNjQsIDEuMDg4OTkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTA0NDg3LCAwLjEyNDQyNCwgMC4zMDQyMDksIDAuNjA0MjU5LCAwLjkwNDAxNiwgMS42MDE1LCAxLjk5OTQxIiwgXAotICAgICAgICAgICIwLjEwNDQ4OSwgMC4xMjQ0MzMsIDAuMzAzODE5LCAwLjYwNDIzMywgMC45MDI1MTMsIDEuNjAzODMsIDIuMDAzMjkiLCBcCi0gICAgICAgICAgIjAuMTA0NDksIDAuMTI0NDE4LCAwLjMwNDMyNywgMC42MDQyMTMsIDAuOTA0MDgsIDEuNjA0MDIsIDIuMDAzNDEiLCBcCi0gICAgICAgICAgIjAuMTA0NDg4LCAwLjEyNDMyNCwgMC4zMDQyMDEsIDAuNjA0MjIxLCAwLjkwNDAwNCwgMS41OTg3NywgMS45OTg4MSIsIFwKLSAgICAgICAgICAiMC4xMDQ0OSwgMC4xMjQ0MjUsIDAuMzAzOTUsIDAuNjA0MTk5LCAwLjkwNDA5NSwgMS42MDQwNSwgMi4wMDM2NiIsIFwKLSAgICAgICAgICAiMC4xMDQ0NTQsIDAuMTI0NDUsIDAuMzAzOTIxLCAwLjYwNDI0NiwgMC45MDQwOCwgMS42MDMyMiwgMi4wMDAzNyIsIFwKLSAgICAgICAgICAiMC4xMDQyNjksIDAuMTI0MjMyLCAwLjMwNDE4NCwgMC42MDI5NDEsIDAuOTA0MjE0LCAxLjYwMDgsIDIuMDAzMDkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0ODczLCAwLjAwNDg3NSwgMC4wMDQ4OCwgMC4wMDQ4ODIsIDAuMDA0ODgzLCAwLjAwNDg4NCwgMC4wMDQ4ODQiLCBcCi0gICAgICAgICAgIjAuMDA0ODc3LCAwLjAwNDg3OCwgMC4wMDQ4ODQsIDAuMDA0ODg2LCAwLjAwNDg4NywgMC4wMDQ4ODcsIDAuMDA0ODg3IiwgXAotICAgICAgICAgICIwLjAwNDkyNSwgMC4wMDQ5MjYsIDAuMDA0OTMxLCAwLjAwNDkzMywgMC4wMDQ5MzQsIDAuMDA0OTM1LCAwLjAwNDkzNSIsIFwKLSAgICAgICAgICAiMC4wMDQ5OTEsIDAuMDA0OTkzLCAwLjAwNDk5OCwgMC4wMDUsIDAuMDA1MDAxLCAwLjAwNTAwMSwgMC4wMDUwMDEiLCBcCi0gICAgICAgICAgIjAuMDA1MDY2LCAwLjAwNTA2OCwgMC4wMDUwNzMsIDAuMDA1MDc1LCAwLjAwNTA3NiwgMC4wMDUwNzYsIDAuMDA1MDc3IiwgXAotICAgICAgICAgICIwLjAwNTE4NywgMC4wMDUxODgsIDAuMDA1MTg4LCAwLjAwNTE5NiwgMC4wMDUxOTcsIDAuMDA1MTk3LCAwLjAwNTE5MSIsIFwKLSAgICAgICAgICAiMC4wMDUyNzgsIDAuMDA1Mjc5LCAwLjAwNTI4MywgMC4wMDUyODUsIDAuMDA1Mjg2LCAwLjAwNTI4OSwgMC4wMDUyODciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQ2NjIsIDAuMDA0NjY0LCAwLjAwNDY2OSwgMC4wMDQ2NywgMC4wMDQ2NzEsIDAuMDA0NjcyLCAwLjAwNDY3MiIsIFwKLSAgICAgICAgICAiMC4wMDQ2NTYsIDAuMDA0NjU4LCAwLjAwNDY2MiwgMC4wMDQ2NjUsIDAuMDA0NjY1LCAwLjAwNDY2NiwgMC4wMDQ2NjYiLCBcCi0gICAgICAgICAgIjAuMDA0Njk0LCAwLjAwNDY5NiwgMC4wMDQ3MDEsIDAuMDA0NzAzLCAwLjAwNDcwMywgMC4wMDQ3MDQsIDAuMDA0NzA1IiwgXAotICAgICAgICAgICIwLjAwNDc1NSwgMC4wMDQ3NTcsIDAuMDA0NzYyLCAwLjAwNDc2NCwgMC4wMDQ3NjUsIDAuMDA0NzY2LCAwLjAwNDc2NiIsIFwKLSAgICAgICAgICAiMC4wMDQ4MjcsIDAuMDA0ODI4LCAwLjAwNDgzMywgMC4wMDQ4MzUsIDAuMDA0ODM2LCAwLjAwNDgzNiwgMC4wMDQ4MzciLCBcCi0gICAgICAgICAgIjAuMDA0OTIxLCAwLjAwNDkzNSwgMC4wMDQ5MjgsIDAuMDA0OTMsIDAuMDA0OTMsIDAuMDA0OTMxLCAwLjAwNDk0NCIsIFwKLSAgICAgICAgICAiMC4wMDUwMTksIDAuMDA1MDIxLCAwLjAwNTAyNywgMC4wMDUwMjgsIDAuMDA1MDI5LCAwLjAwNTAyOSwgMC4wMDUwMyIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogSU5WWDIwICoKLSAqIC0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoSU5WWDIwKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDEuOTcyNTQ7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAxNTc3NjM7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDE1Nzc2MzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMTU3NzQ5OwotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDYuNTAwMzE7Ci0gICAgZnVuY3Rpb24gOiAiKCFBKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2Mzg5LCAwLjAxNDYxNCwgMC4wMjExMiwgMC4wMjkyMjQsIDAuMDM3Mjk3LCAwLjA0NTQxOCwgMC4wNTM0NjQiLCBcCi0gICAgICAgICAgIjAuMDExNDE0LCAwLjAyMjgzNSwgMC4wMjk0MTgsIDAuMDM3NTA2LCAwLjA0NTU5OSwgMC4wNTM3MTMsIDAuMDYxNzc5IiwgXAotICAgICAgICAgICIwLjAxNDU0MywgMC4wMzAwNiwgMC4wMzg4ODgsIDAuMDQ4MTMsIDAuMDU2MTc3LCAwLjA2NDIzNSwgMC4wNzIzNDMiLCBcCi0gICAgICAgICAgIjAuMDE2NTg1LCAwLjAzNTIxNCwgMC4wNDYwMDksIDAuMDU2Njk2LCAwLjA2NjMwMywgMC4wNzQ5NzMsIDAuMDgyODc0IiwgXAotICAgICAgICAgICIwLjAxNzk0MywgMC4wMzkzMDEsIDAuMDUxMjkxLCAwLjA2Mzk5NywgMC4wNzUwMzIsIDAuMDg0NzU1LCAwLjA5MzEzOCIsIFwKLSAgICAgICAgICAiMC4wMTk5OTMsIDAuMDQ0NTQ5LCAwLjA1ODU3NywgMC4wNzMxNTgsIDAuMDg1NzE1LCAwLjA5NzAzLCAwLjEwNzYyOCIsIFwKLSAgICAgICAgICAiMC4wMjEyNDEsIDAuMDQ4MDk5LCAwLjA2Mzg2OSwgMC4wNzk4NjgsIDAuMDkzOTEyLCAwLjEwNjA0MiwgMC4xMTc1OTgiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA4MDQ0LCAwLjAyNDYsIDAuMDM4MzA4LCAwLjA1NTQxMSwgMC4wNzI1MDEsIDAuMDg5Njg0LCAwLjEwNjkyMyIsIFwKLSAgICAgICAgICAiMC4wMTQ4ODksIDAuMDI5Nzk2LCAwLjA0MTkyMiwgMC4wNTc3NDEsIDAuMDc0MDY5LCAwLjA5MDQ3NiwgMC4xMDczNjgiLCBcCi0gICAgICAgICAgIjAuMDIwOTc3LCAwLjAzOTMwNiwgMC4wNTA5MTEsIDAuMDY1MzgzLCAwLjA4MDQzOCwgMC4wOTYwNCwgMC4xMTE5MDciLCBcCi0gICAgICAgICAgIjAuMDI2MjIsIDAuMDQ3MzcsIDAuMDU5OTQ4LCAwLjA3NDY0NywgMC4wODkwMywgMC4xMDM5NzgsIDAuMTE5MTAzIiwgXAotICAgICAgICAgICIwLjAzMTEzNSwgMC4wNTQ0MjEsIDAuMDY4ODQ0LCAwLjA4Mzk5OCwgMC4wOTgxMzksIDAuMTEyMzY1LCAwLjEyNzczIiwgXAotICAgICAgICAgICIwLjAzNzcyNywgMC4wNjQ2MzEsIDAuMDgwNTM0LCAwLjA5ODA0NiwgMC4xMTM1MjgsIDAuMTI3OTI1LCAwLjE0MjcxOSIsIFwKLSAgICAgICAgICAiMC4wNDM0MzQsIDAuMDcyNzk2LCAwLjA4OTc1NiwgMC4xMDkwMTgsIDAuMTI1NDYyLCAwLjE0MTU1MywgMC4xNTU3MTkiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2NDk4LCAwLjAxNDcyNywgMC4wMjEyMTksIDAuMDI5MzIsIDAuMDM3Mzk5LCAwLjA0NTQ2MSwgMC4wNTM1MjkiLCBcCi0gICAgICAgICAgIjAuMDExOTY1LCAwLjAyMzE3OSwgMC4wMjk3MTYsIDAuMDM3NzgxLCAwLjA0NTg2MSwgMC4wNTM5NDQsIDAuMDYyMDE3IiwgXAotICAgICAgICAgICIwLjAxNTc4NCwgMC4wMzA4NDIsIDAuMDM5NTUzLCAwLjA0ODU3OCwgMC4wNTY2ODcsIDAuMDY0NzE1LCAwLjA3Mjc3NiIsIFwKLSAgICAgICAgICAiMC4wMTgzODEsIDAuMDM2NjQ3LCAwLjA0Njg5OCwgMC4wNTc3MiwgMC4wNjcyMjcsIDAuMDc1MTk3LCAwLjA4MzU2MyIsIFwKLSAgICAgICAgICAiMC4wMjA2OCwgMC4wNDEyNTgsIDAuMDUzMjM4LCAwLjA2NTUyNCwgMC4wNzU4MTEsIDAuMDg1NDkzLCAwLjA5NDM3NCIsIFwKLSAgICAgICAgICAiMC4wMjMzOTUsIDAuMDQ3NDE3LCAwLjA2MTIyNiwgMC4wNzU0ODksIDAuMDg3OTI4LCAwLjA5OTIyNCwgMC4xMDk0ODMiLCBcCi0gICAgICAgICAgIjAuMDI1OCwgMC4wNTE5MDUsIDAuMDY3MTE2LCAwLjA4MjgxNiwgMC4wOTY0OCwgMC4xMDg4MjcsIDAuMTIwMjI5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNzU4LCAwLjAyMzgwNSwgMC4wMzcxOTcsIDAuMDUzODA3LCAwLjA3MDQ3OSwgMC4wODcyODgsIDAuMTAzODI4IiwgXAotICAgICAgICAgICIwLjAxNDM2NywgMC4wMjg2NjMsIDAuMDQwNDkxLCAwLjA1NTg5NCwgMC4wNzE3MzYsIDAuMDg4MDQzLCAwLjEwNDIyNiIsIFwKLSAgICAgICAgICAiMC4wMjA0OTgsIDAuMDM4MTQzLCAwLjA0OTEzMSwgMC4wNjMxOTYsIDAuMDc4MDU4LCAwLjA5MzE4NSwgMC4xMDg2MzciLCBcCi0gICAgICAgICAgIjAuMDI1ODMzLCAwLjA0NjE1NCwgMC4wNTg2MzMsIDAuMDcyNTQxLCAwLjA4NjIwMSwgMC4xMDAyNDcsIDAuMTE1NDI4IiwgXAotICAgICAgICAgICIwLjAzMDg2NCwgMC4wNTM1NzUsIDAuMDY2OTI3LCAwLjA4MTY5MywgMC4wOTU2MTMsIDAuMTA5MzkyLCAwLjEyMzcyNSIsIFwKLSAgICAgICAgICAiMC4wMzgxMTcsIDAuMDYzNzcxLCAwLjA3OTI1OSwgMC4wOTU5ODIsIDAuMTEwMzAxLCAwLjEyMzgyNSwgMC4xMzgyMTkiLCBcCi0gICAgICAgICAgIjAuMDQzNjQ1LCAwLjA3MTgyNywgMC4wODg4NzksIDAuMTA3NDM5LCAwLjEyMzI5NiwgMC4xMzgwOTUsIDAuMTUxMzA1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDI1OTkxLCAwLjAyNjg0LCAwLjAyNzA1NCwgMC4wMjcxNzYsIDAuMDI3MjUyLCAwLjAyNzMsIDAuMDI3MzMzIiwgXAotICAgICAgICAgICIwLjAyNjQ4MSwgMC4wMjY2MjcsIDAuMDI2NzE3LCAwLjAyNjg0OCwgMC4wMjY5NDksIDAuMDI3MDM1LCAwLjAyNzA5NCIsIFwKLSAgICAgICAgICAiMC4wMjkwOTYsIDAuMDI3ODI1LCAwLjAyNzM5NCwgMC4wMjcyNDYsIDAuMDI3MjEyLCAwLjAyNzE5OSwgMC4wMjcyMjIiLCBcCi0gICAgICAgICAgIjAuMDMyMjM4LCAwLjAyOTYzMiwgMC4wMjg3NDksIDAuMDI4NzMxLCAwLjAyODM3OSwgMC4wMjgxODYsIDAuMDI4MDM3IiwgXAotICAgICAgICAgICIwLjAzNTgyMSwgMC4wMzE4ODYsIDAuMDMwODUyLCAwLjAyOTg5NSwgMC4wMjkzNjgsIDAuMDI5MjEzLCAwLjAyOTU4OCIsIFwKLSAgICAgICAgICAiMC4wNDEzMDUsIDAuMDM2MjI1LCAwLjAzNDU4OSwgMC4wMzM1MDYsIDAuMDMyMzcyLCAwLjAzMzI4MywgMC4wMzI3MDEiLCBcCi0gICAgICAgICAgIjAuMDQ2OCwgMC4wNDA2MjUsIDAuMDM4MjQ5LCAwLjAzNjQ3MSwgMC4wMzU0MTMsIDAuMDM0OTQ0LCAwLjAzNDA4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyNDIxLCAwLjAwMTM5MywgMC4wMDExMjksIDAuMDAwOTY1LCAwLjAwMDg3NCwgMC4wMDA4MTYsIDAuMDAwNzc1IiwgXAotICAgICAgICAgICIwLjAwMTgyMiwgMC4wMDE4NjksIDAuMDAxNjg4LCAwLjAwMTQ4OCwgMC4wMDEzNDQsIDAuMDAxMjQxLCAwLjAwMTE1MSIsIFwKLSAgICAgICAgICAiMC4wMDA0OTgsIDAuMDAwNzUsIDAuMDAxMDcxLCAwLjAwMTE4NiwgMC4wMDExNzksIDAuMDAxMTU3LCAwLjAwMTEyIiwgXAotICAgICAgICAgICIwLjAwMzYyMiwgMC4wMDE0MTEsIDAuMDAwODI3LCAwLjAwMDIwNCwgMC4wMDAwOTUsIDAuMDAwMjcxLCAwLjAwMDQwMyIsIFwKLSAgICAgICAgICAiMC4wMDcxMTQsIDAuMDAzODQ1LCAwLjAwMjQxOCwgMC4wMDE2NjQsIDAuMDAxNzgxLCAwLjAwMTMzMSwgMC4wMDEwMzkiLCBcCi0gICAgICAgICAgIjAuMDEyODIyLCAwLjAwODIwNiwgMC4wMDYzOTYsIDAuMDA1MTEsIDAuMDAzODk0LCAwLjAwMzE5NCwgMC4wMDI2ODkiLCBcCi0gICAgICAgICAgIjAuMDE4ODIzLCAwLjAxMjczNiwgMC4wMTA0ODcsIDAuMDA5NjE5LCAwLjAwNzk4MSwgMC4wMDY2ODksIDAuMDA1Njg1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IElOVlg0ICoKLSAqIC0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChJTlZYNCkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjM2NDE3MzsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAzMTkxNjQ7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAzMTkxMjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDMxOTE2NDsKLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAxLjM2NDA3OwotICAgIGZ1bmN0aW9uIDogIighQSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEyNDg1LCAwLjA2NzMsIDAuMTIxOTM2LCAwLjE2MTAwMSwgMC4yMjM0NDQsIDAuMjc4MjksIDAuMzU2MTQ4IiwgXAotICAgICAgICAgICIwLjAyMDM1NywgMC4wNzU0ODUsIDAuMTMwMTIxLCAwLjE2OTE4OCwgMC4yMzE4NTgsIDAuMjg2MjQ3LCAwLjM2NDUyMSIsIFwKLSAgICAgICAgICAiMC4wMjY2NTEsIDAuMDg1Nzc4LCAwLjE0MDM5LCAwLjE3OTQzNiwgMC4yNDE4MzgsIDAuMjk2NzMsIDAuMzc0NjgyIiwgXAotICAgICAgICAgICIwLjAzMTA0MywgMC4wOTY1MTEsIDAuMTUxMDA3LCAwLjE5MDA0OCwgMC4yNTIxNjksIDAuMzA3MTU0LCAwLjM4NTEyOCIsIFwKLSAgICAgICAgICAiMC4wMzQ0NzQsIDAuMTA2OTM5LCAwLjE2MTMxMywgMC4yMDAzMTcsIDAuMjYyNzE2LCAwLjMxNzMzOCwgMC4zOTU1MzkiLCBcCi0gICAgICAgICAgIjAuMDM4OTE2LCAwLjEyMjkyMiwgMC4xNzgxODgsIDAuMjE3MDMyLCAwLjI3OTM2MSwgMC4zMzM5NzcsIDAuNDExOTc5IiwgXAotICAgICAgICAgICIwLjA0MjAyMiwgMC4xMzUwNjIsIDAuMTkzMDY5LCAwLjIzMTgzNSwgMC4yOTM5OTMsIDAuMzQ4NTk5LCAwLjQyNjYwOSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyMDM1NiwgMC4xMzU5NTcsIDAuMjUxNDQyLCAwLjMzNDEyOCwgMC40NjYwOCwgMC41ODE5NDMsIDAuNzQ2ODMiLCBcCi0gICAgICAgICAgIjAuMDI2MjE3LCAwLjEzNjAzOSwgMC4yNTE0MSwgMC4zMzQsIDAuNDY2MywgMC41ODEzNzksIDAuNzQ2NjgiLCBcCi0gICAgICAgICAgIjAuMDM1NDE1LCAwLjEzOTcwOSwgMC4yNTE5NzcsIDAuMzMzODM4LCAwLjQ2NTk5OSwgMC41ODE1ODIsIDAuNzQ2ODE1IiwgXAotICAgICAgICAgICIwLjA0MzAwNCwgMC4xNDU2MDIsIDAuMjU0OTEsIDAuMzM1MTU3LCAwLjQ2NjM2OSwgMC41ODIwMzgsIDAuNzQ2NTAxIiwgXAotICAgICAgICAgICIwLjA0OTUwNiwgMC4xNTMzMjQsIDAuMjYwMjY2LCAwLjMzODY4NiwgMC40NjcyNDksIDAuNTgyMTQsIDAuNzQ2Nzc2IiwgXAotICAgICAgICAgICIwLjA1OTE1MSwgMC4xNjY5OTQsIDAuMjcwMjU3LCAwLjM0NzE1OSwgMC40NzM0NjMsIDAuNTg1MDM2LCAwLjc0NzQwMyIsIFwKLSAgICAgICAgICAiMC4wNjY5NTIsIDAuMTgwMjg1LCAwLjI4MDQ5NSwgMC4zNTU4NTgsIDAuNDc5ODM0LCAwLjU5MDg1OCwgMC43NTA0NTgiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTI0NTMsIDAuMDY2NDE5LCAwLjEyMDIxNiwgMC4xNTg3MywgMC4yMjAxNywgMC4yNzQwODYsIDAuMzUwNzg4IiwgXAotICAgICAgICAgICIwLjAyMDUyNiwgMC4wNzQ3ODYsIDAuMTI4NjA3LCAwLjE2NzA2NSwgMC4yMjg1MTEsIDAuMjgyMzMyLCAwLjM1OTIzOCIsIFwKLSAgICAgICAgICAiMC4wMjczMzIsIDAuMDg1MzI3LCAwLjEzOTEsIDAuMTc3NTU2LCAwLjIzOTAxOSwgMC4yOTI4NDIsIDAuMzY5NjgyIiwgXAotICAgICAgICAgICIwLjAzMjI0NiwgMC4wOTYwMjIsIDAuMTQ5NjUsIDAuMTg4MDc0LCAwLjI0OTMwMSwgMC4zMDMxNTMsIDAuMzc5OTc0IiwgXAotICAgICAgICAgICIwLjAzNjE3NSwgMC4xMDY5MzMsIDAuMTYwNTYsIDAuMTk4OTAyLCAwLjI2MDM0NSwgMC4zMTQyODIsIDAuMzkwOTg3IiwgXAotICAgICAgICAgICIwLjA0MTQzNiwgMC4xMjMyODYsIDAuMTc3NTM2LCAwLjIxNTg1OCwgMC4yNzcxNjQsIDAuMzMwODg2LCAwLjQwNzY2MiIsIFwKLSAgICAgICAgICAiMC4wNDUzODYsIDAuMTM1NTQ5LCAwLjE5MjcxNCwgMC4yMzA5MjcsIDAuMjkyMTE0LCAwLjM0NTg0LCAwLjQyMjU3OCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxOTUzLCAwLjEzMTMzNiwgMC4yNDM1NTUsIDAuMzIzMDA5LCAwLjQ1MTY3NywgMC41NjI2MjgsIDAuNzIyMzA3IiwgXAotICAgICAgICAgICIwLjAyNTEzOCwgMC4xMzE2MzQsIDAuMjQzMTE1LCAwLjMyMzA1OSwgMC40NTE2OTcsIDAuNTYzMDMxLCAwLjcyMjM4NiIsIFwKLSAgICAgICAgICAiMC4wMzQyMDQsIDAuMTM0OTE5LCAwLjI0Mzk3OSwgMC4zMjI5ODMsIDAuNDUxNjg4LCAwLjU2MjYwOSwgMC43MjM1MDMiLCBcCi0gICAgICAgICAgIjAuMDQxODc1LCAwLjE0MTAzMSwgMC4yNDY0NTcsIDAuMzI0Mjc0LCAwLjQ1MDkyMiwgMC41NjI1MzQsIDAuNzIyMzU2IiwgXAotICAgICAgICAgICIwLjA0ODcyMiwgMC4xNDc5NDQsIDAuMjUxNTc4LCAwLjMyODEyLCAwLjQ1Mjg0OSwgMC41NjI4NzMsIDAuNzIyMjk5IiwgXAotICAgICAgICAgICIwLjA1ODE5MSwgMC4xNjE2ODIsIDAuMjYxNDAyLCAwLjMzNjAyOCwgMC40NTgxMTQsIDAuNTY1ODksIDAuNzIzMTMxIiwgXAotICAgICAgICAgICIwLjA2NTkyNSwgMC4xNzUyMzksIDAuMjcxNDg2LCAwLjM0NDcxOCwgMC40NjQ2OTcsIDAuNTcxNzgxLCAwLjcyNjUxOSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1MTk5LCAwLjAwNTMyMiwgMC4wMDUzMzQsIDAuMDA1MzM4LCAwLjAwNTM0MSwgMC4wMDUzNDIsIDAuMDA1MzQzIiwgXAotICAgICAgICAgICIwLjAwNTE0NiwgMC4wMDUyNjgsIDAuMDA1Mjk4LCAwLjAwNTMxMiwgMC4wMDUzMjIsIDAuMDA1MzI3LCAwLjAwNTMzMiIsIFwKLSAgICAgICAgICAiMC4wMDU0NiwgMC4wMDUzNDIsIDAuMDA1MzM4LCAwLjAwNTMzNywgMC4wMDUzNDEsIDAuMDA1MzQzLCAwLjAwNTM0NiIsIFwKLSAgICAgICAgICAiMC4wMDYxNzYsIDAuMDA1NTA1LCAwLjAwNTQ0LCAwLjAwNTQyNCwgMC4wMDU0MDgsIDAuMDA1MzkxLCAwLjAwNTM4NyIsIFwKLSAgICAgICAgICAiMC4wMDY1NTEsIDAuMDA1NzAyLCAwLjAwNTU0NiwgMC4wMDU1MDksIDAuMDA1NDY1LCAwLjAwNTQ0NywgMC4wMDU0MjgiLCBcCi0gICAgICAgICAgIjAuMDA3NTI5LCAwLjAwNjE3NCwgMC4wMDU4NDYsIDAuMDA1NzM3LCAwLjAwNTY1NywgMC4wMDU1OTYsIDAuMDA1NTUxIiwgXAotICAgICAgICAgICIwLjAwODUwMSwgMC4wMDY2NjYsIDAuMDA2MTczLCAwLjAwNTk5NiwgMC4wMDU4NDIsIDAuMDA1NzYxLCAwLjAwNTY4NCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwMjgyLCAwLjAwMDEyNSwgMC4wMDAxMDksIDAuMDAwMTA0LCAwLjAwMDEsIDAuMDAwMDk5LCAwLjAwMDA5NiIsIFwKLSAgICAgICAgICAiMC4wMDAzODIsIDAuMDAwMTk4LCAwLjAwMDE1NSwgMC4wMDAxNCwgMC4wMDAxMjcsIDAuMDAwMTIsIDAuMDAwMTEzIiwgXAotICAgICAgICAgICIwLjAwMDA3MywgMC4wMDAxNTMsIDAuMDAwMTM1LCAwLjAwMDEyNywgMC4wMDAxMTksIDAuMDAwMTE0LCAwLjAwMDEwOSIsIFwKLSAgICAgICAgICAiMC4wMDA0NTMsIDAuMDAwMTI5LCAwLjAwMDAzOCwgMC4wMDAwMDcsIDAuMDAwMDE5LCAwLjAwMDA1LCAwLjAwMDA1OSIsIFwKLSAgICAgICAgICAiMC4wMDEwODEsIDAuMDAwMTU2LCAwLjAwMDA0MiwgMC4wMDAwMDQsIDAuMDAwMDIsIDAuMDAwMDM1LCAwLjAwMDA0NyIsIFwKLSAgICAgICAgICAiMC4wMDIxNywgMC4wMDA3MjYsIDAuMDAwMzg5LCAwLjAwMDI4OSwgMC4wMDAxOTcsIDAuMDAwMTQ1LCAwLjAwMDA5MyIsIFwKLSAgICAgICAgICAiMC4wMDMxODUsIDAuMDAxMjQzLCAwLjAwMDczNCwgMC4wMDA1NjIsIDAuMDAwMzk4LCAwLjAwMDMyMSwgMC4wMDAyMzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogTURGRkhRWDEgKgotICogLS0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKE1ERkZIUVgxKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDEuMDcxNzM7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgZmYgKE4zMCxRQklOVCkgewotICAgIG5leHRfc3RhdGUgOiAiKChTMCBEMSkgKyAoIVMwIEQwKSkiOwotICAgIGNsb2NrZWRfb24gOiAiQ0siOwotICB9Ci0gIHBpbihDSykgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjUxOTgyOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDY1MTk4MjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2NTE5NzY7Ci0gICAgY2xvY2sgOiB0cnVlOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNDE3NywgMC4wMDQxNzcsIDAuMDA0MjQzLCAwLjAwNDMzNiwgMC4wMDQ0NDYsIDAuMDA0Njc1LCAwLjAwNDg3OSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwOTIyOCwgMC4wMDkyMjIsIDAuMDA5MzA5LCAwLjAwOTQzLCAwLjAwOTU4MSwgMC4wMDk4NjIsIDAuMDA5OTg2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRDAmIUQxJiFTMCI7Ci0gICAgICBzZGZfY29uZCA6ICJEMF9FUV8wX0FOX0QxX0VRXzBfQU5fUzBfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjEwMjA1MiwgMC4xMTAyOTcsIDAuMTE5NDIsIDAuMTI2NzE0LCAwLjEzMjU4OSwgMC4xNDA0MjgsIDAuMTQ2MjE4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wNjM1NSwgMC4wNzE2OCwgMC4wODA4NDEsIDAuMDg3OTEyLCAwLjA5MzU0OCwgMC4xMDA5MTMsIDAuMTA2Mzg2Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihEMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwOTI3NDExOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDkyNTQ2MjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA5Mjc0MTE7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA0Mzc4LCAwLjAwNDMzMywgMC4wMDQzNTcsIDAuMDA0NDE0LCAwLjAwNDQ5OCwgMC4wMDQ2NDYsIDAuMDA0ODE1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA3MTksIDAuMDA3MTYxLCAwLjAwNzE5LCAwLjAwNzI0OSwgMC4wMDczMTQsIDAuMDA3NDY4LCAwLjAwNzYyNiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhUzAiOwotICAgICAgc2RmX2NvbmQgOiAiUzAgPT0gMSdiMCI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDI1LCAtMC4wMiwgLTAuMDIsIC0wLjAxMzc1LCAtMC4wMTM3NSwgLTAuMDEsIC0wLjAwMTI1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTg3NSwgLTAuMDE1LCAtMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMjUsIC0wLjAyMTI1LCAtMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDI3NSwgLTAuMDI1IiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzMzc1LCAtMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDU4NzUsIC0wLjA1Mzc1LCAtMC4wNTM3NSwgLTAuMDQ3NSwgLTAuMDQ3NSwgLTAuMDQzNzUsIC0wLjA0MTI1IiwgXAotICAgICAgICAgICItMC4wNjc1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNDYyNSwgLTAuMDQzNzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMDYyNSwgMC4wMDUsIDAuMDExMjUsIDAuMDE3NSwgMC4wMjM3NSwgMC4wMjc1LCAwLjAzIiwgXAotICAgICAgICAgICItMC4wMTEyNSwgMCwgMC4wMDYyNSwgMC4wMTI1LCAwLjAxODc1LCAwLjAyMjUsIDAuMDI1IiwgXAotICAgICAgICAgICItMC4wMTc1LCAtMC4wMDYyNSwgMCwgMC4wMDYyNSwgMC4wMTI1LCAwLjAxNjI1LCAwLjAxODc1IiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAsIDAuMDA2MjUsIDAuMDEsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMCwgMC4wMDM3NSwgMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wMzM3NSwgLTAuMDIyNSwgLTAuMDE2MjUsIC0wLjAxLCAtMC4wMDM3NSwgMCwgMC4wMDI1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDMxMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMTI1LCAtMC4wMDI1LCAwIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhUzAiOwotICAgICAgc2RmX2NvbmQgOiAiUzAgPT0gMSdiMCI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQzNzUsIDAuMDM4NzUsIDAuMDMyNSwgMC4wMzI1LCAwLjAyNjI1LCAwLjAyMjUsIDAuMDIiLCBcCi0gICAgICAgICAgIjAuMDU1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMjc1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiMC4wNjEyNSwgMC4wNSwgMC4wNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzMzc1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNSwgMC4wNSwgMC4wNDYyNSwgMC4wMzc1IiwgXAotICAgICAgICAgICIwLjA3Mzc1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDU2MjUsIDAuMDUyNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4wODM3NSwgMC4wNzI1LCAwLjA2NjI1LCAwLjA2NjI1LCAwLjA2LCAwLjA1NjI1LCAwLjA1Mzc1IiwgXAotICAgICAgICAgICIwLjA4NjI1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjg3NSwgMC4wNjUsIDAuMDYyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzMTI1LCAwLjAyLCAwLjAxMzc1LCAwLjAwNzUsIDAuMDAxMjUsIC0wLjAwODc1LCAtMC4wMTEyNSIsIFwKLSAgICAgICAgICAiMC4wMzYyNSwgMC4wMjUsIDAuMDE4NzUsIDAuMDEyNSwgMC4wMDYyNSwgLTAuMDAzNzUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICIwLjA0MjUsIDAuMDM3NSwgMC4wMjUsIDAuMDE4NzUsIDAuMDEyNSwgMC4wMDg3NSwgMCIsIFwKLSAgICAgICAgICAiMC4wNDg3NSwgMC4wNDM3NSwgMC4wMzEyNSwgMC4wMjUsIDAuMDE4NzUsIDAuMDE1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICIwLjA1NSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMTUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4wNTg3NSwgMC4wNTM3NSwgMC4wNDEyNSwgMC4wMzUsIDAuMDI4NzUsIDAuMDI1LCAwLjAxNjI1IiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDU2MjUsIDAuMDUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMjc1LCAwLjAyNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRDEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDkzNTY4NTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA5MzMxOTU7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwOTM1Njg1OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNDA2NCwgMC4wMDQwMTksIDAuMDA0MDQzLCAwLjAwNDEwNywgMC4wMDQxODksIDAuMDA0MzQ0LCAwLjAwNDU0NCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNzUxOCwgMC4wMDc0OSwgMC4wMDc1MTIsIDAuMDA3NTU2LCAwLjAwNzYzNSwgMC4wMDc3NzQsIDAuMDA3OTQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiUzAiOwotICAgICAgc2RmX2NvbmQgOiAiUzAgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDI1LCAtMC4wMiwgLTAuMDEzNzUsIC0wLjAxMzc1LCAtMC4wMDc1LCAtMC4wMDM3NSwgLTAuMDAxMjUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMjUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxODc1LCAtMC4wMTUsIC0wLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAyNSwgLTAuMDIxMjUsIC0wLjAxODc1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMjc1LCAtMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjA1NSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzc1LCAtMC4wMzM3NSwgLTAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjA1ODc1LCAtMC4wNTM3NSwgLTAuMDUzNzUsIC0wLjA0NzUsIC0wLjA0NzUsIC0wLjA0Mzc1LCAtMC4wNDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDY3NSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDQ2MjUsIC0wLjA0Mzc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDA2MjUsIDAuMDA1LCAwLjAxMTI1LCAwLjAxNzUsIDAuMDIzNzUsIDAuMDI3NSwgMC4wMyIsIFwKLSAgICAgICAgICAiLTAuMDExMjUsIC0wLjAwNjI1LCAwLjAwNjI1LCAwLjAxMjUsIDAuMDEyNSwgMC4wMjI1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDE3NSwgLTAuMDEyNSwgMCwgMC4wMDYyNSwgMC4wMDYyNSwgMC4wMTYyNSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLCAwLjAwNjI1LCAwLjAxLCAwLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAsIDAuMDAzNzUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDMzNzUsIC0wLjAyMjUsIC0wLjAxNjI1LCAtMC4wMSwgLTAuMDAzNzUsIDAsIDAuMDAyNSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDEyNSwgLTAuMDAyNSwgMCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiUzAiOwotICAgICAgc2RmX2NvbmQgOiAiUzAgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQzNzUsIDAuMDM4NzUsIDAuMDMyNSwgMC4wMjYyNSwgMC4wMjYyNSwgMC4wMjI1LCAwLjAyIiwgXAotICAgICAgICAgICIwLjA1NSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDI3NSwgMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMDYxMjUsIDAuMDUsIDAuMDUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzM3NSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4wNjc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDUsIDAuMDUsIDAuMDQsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiMC4wNzM3NSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1NjI1LCAwLjA1MjUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMDgzNzUsIDAuMDcyNSwgMC4wNjYyNSwgMC4wNjYyNSwgMC4wNiwgMC4wNTYyNSwgMC4wNTM3NSIsIFwKLSAgICAgICAgICAiMC4wODYyNSwgMC4wODEyNSwgMC4wNzUsIDAuMDY4NzUsIDAuMDY4NzUsIDAuMDY1LCAwLjA2MjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzEyNSwgMC4wMiwgMC4wMTM3NSwgMC4wMDc1LCAwLjAwMTI1LCAtMC4wMDg3NSwgLTAuMDExMjUiLCBcCi0gICAgICAgICAgIjAuMDM2MjUsIDAuMDMxMjUsIDAuMDE4NzUsIDAuMDEyNSwgMC4wMDYyNSwgMC4wMDI1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiMC4wNDI1LCAwLjAzNzUsIDAuMDI1LCAwLjAxODc1LCAwLjAxMjUsIDAuMDA4NzUsIDAiLCBcCi0gICAgICAgICAgIjAuMDQ4NzUsIDAuMDQzNzUsIDAuMDMxMjUsIDAuMDI1LCAwLjAxODc1LCAwLjAxNSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiMC4wNTUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMjUsIDAuMDE1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMDU4NzUsIDAuMDUzNzUsIDAuMDQ3NSwgMC4wMzUsIDAuMDM1LCAwLjAyNSwgMC4wMTYyNSIsIFwKLSAgICAgICAgICAiMC4wNjc1LCAwLjA1NjI1LCAwLjA1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDI3NSwgMC4wMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFEpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4zNDkwMzE7Ci0gICAgZnVuY3Rpb24gOiAiTjMwIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBub25fdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJpc2luZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTA0MjQsIDAuMTA4OTYsIDAuMjE0MTk4LCAwLjMwNzE2MSwgMC40MzExNzYsIDAuNjc5MzA5LCAwLjgzNDM0IiwgXAotICAgICAgICAgICIwLjA5ODYzLCAwLjExNzE3LCAwLjIyMjQyNiwgMC4zMTUzNjgsIDAuNDM5Mzc3LCAwLjY4NzQ4NSwgMC44NDI1MzEiLCBcCi0gICAgICAgICAgIjAuMTA3NzA5LCAwLjEyNjI1NiwgMC4yMzE0OSwgMC4zMjQ0NTYsIDAuNDQ4NDQ1LCAwLjY5NjUyOCwgMC44NTE2NzYiLCBcCi0gICAgICAgICAgIjAuMTE0OTQ2LCAwLjEzMzQ5MywgMC4yMzg3NTMsIDAuMzMxNjc5LCAwLjQ1NTczNCwgMC43MDM3NjQsIDAuODU4ODQzIiwgXAotICAgICAgICAgICIwLjEyMDY2NCwgMC4xMzkyMTEsIDAuMjQ0NDg1LCAwLjMzNzQwNCwgMC40NjE0MDcsIDAuNzA5NDU3LCAwLjg2NDUyNiIsIFwKLSAgICAgICAgICAiMC4xMjgyMTQsIDAuMTQ2NzcyLCAwLjI1MjAyNywgMC4zNDQ5NjQsIDAuNDY4OTM1LCAwLjcxNjk5NywgMC44NzIyMTUiLCBcCi0gICAgICAgICAgIjAuMTMzOTAxLCAwLjE1MjQ3LCAwLjI1NzY5NiwgMC4zNTA2NjgsIDAuNDc0NzIyLCAwLjcyMjY5MSwgMC44Nzc3NDEiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDcwODg4LCAwLjEwOTUzMSwgMC4zMzA5NDMsIDAuNTI3NjE4LCAwLjc4ODMzMiwgMS4zMTAxMiwgMS42MzU4NSIsIFwKLSAgICAgICAgICAiMC4wNzA4OSwgMC4xMDk1NjUsIDAuMzMxNjEzLCAwLjUyNzYyNCwgMC43ODgzMzMsIDEuMzA5ODEsIDEuNjM2ODMiLCBcCi0gICAgICAgICAgIjAuMDcwOTE1LCAwLjEwOTY5OSwgMC4zMzE1OTksIDAuNTI3NjE4LCAwLjc4ODQwNCwgMS4zMTAzOCwgMS42Mzg3MyIsIFwKLSAgICAgICAgICAiMC4wNzA5MjEsIDAuMTA5NzA0LCAwLjMzMTA3MSwgMC41Mjc1OTgsIDAuNzg5MDM3LCAxLjMxMDUxLCAxLjYzNTg4IiwgXAotICAgICAgICAgICIwLjA3MDkxMiwgMC4xMDk2ODIsIDAuMzMxMDcxLCAwLjUyNzU0MywgMC43ODg5NTQsIDEuMzEwNjEsIDEuNjM3MDUiLCBcCi0gICAgICAgICAgIjAuMDcwODk5LCAwLjEwOTYwMiwgMC4zMzE1MzgsIDAuNTI3NTA3LCAwLjc4ODIxMSwgMS4zMTA3NSwgMS42MzYyMyIsIFwKLSAgICAgICAgICAiMC4wNzEwMTYsIDAuMTA5NTk2LCAwLjMzMDkzNiwgMC41Mjc1NzcsIDAuNzg3NTg3LCAxLjMxMTc2LCAxLjYzNzIzIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwMjA1MiwgMC4xMjAxOSwgMC4yMjI3ODMsIDAuMzEzMjUsIDAuNDMzODY5LCAwLjY3NTEwNywgMC44MjU4ODEiLCBcCi0gICAgICAgICAgIjAuMTEwMjk3LCAwLjEyODQzNCwgMC4yMzEwMjIsIDAuMzIxNDkzLCAwLjQ0MjExNiwgMC42ODMzMzUsIDAuODM0MTA1IiwgXAotICAgICAgICAgICIwLjExOTQyLCAwLjEzNzU1NiwgMC4yNDAxNDIsIDAuMzMwNjA3LCAwLjQ1MTIzOCwgMC42OTI0MzIsIDAuODQzMjA5IiwgXAotICAgICAgICAgICIwLjEyNjcxNCwgMC4xNDQ4NDksIDAuMjQ3NDMyLCAwLjMzNzg5OSwgMC40NTg1MTksIDAuNjk5NzUsIDAuODUwNTMxIiwgXAotICAgICAgICAgICIwLjEzMjU4OSwgMC4xNTA3MjUsIDAuMjUzMzA5LCAwLjM0Mzc2NSwgMC40NjQzODUsIDAuNzA1NjA5LCAwLjg1NjM4NCIsIFwKLSAgICAgICAgICAiMC4xNDA0NTIsIDAuMTU4NTcxLCAwLjI2MTE2OCwgMC4zNTE2MTQsIDAuNDcyMjMzLCAwLjcxMzQ2OCwgMC44NjQyNiIsIFwKLSAgICAgICAgICAiMC4xNDYyMTksIDAuMTY0MjU3LCAwLjI2NjkxNSwgMC4zNTc0MTYsIDAuNDc3OTg3LCAwLjcxOTIxNCwgMC44Njk5NjYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY3NDkyLCAwLjEwNDM4OSwgMC4zMTUzMzgsIDAuNTAxMTMyLCAwLjc0OTU0OSwgMS4yNDY1NCwgMS41NTg4MSIsIFwKLSAgICAgICAgICAiMC4wNjc0OTksIDAuMTA0MzksIDAuMzE1MjY2LCAwLjUwMTgwMywgMC43NDk4MTksIDEuMjQ3ODEsIDEuNTU2NjUiLCBcCi0gICAgICAgICAgIjAuMDY3NSwgMC4xMDQzODQsIDAuMzE1MzMzLCAwLjUwMTgxMywgMC43NDg5OTQsIDEuMjQ3NzQsIDEuNTU2NTgiLCBcCi0gICAgICAgICAgIjAuMDY3NDk3LCAwLjEwNDM5MiwgMC4zMTUzMzgsIDAuNTAxMTI3LCAwLjc1MDQyNCwgMS4yNDYzNCwgMS41NTcyOSIsIFwKLSAgICAgICAgICAiMC4wNjc1MDMsIDAuMTA0MzksIDAuMzE1MzQxLCAwLjUwMTEyMywgMC43NTA0MzIsIDEuMjQ2MTYsIDEuNTU2NzgiLCBcCi0gICAgICAgICAgIjAuMDY3NDgsIDAuMTA0MjI1LCAwLjMxNTM0OCwgMC41MDE3NjcsIDAuNzQ5NDMzLCAxLjI0NjM0LCAxLjU1ODg1IiwgXAotICAgICAgICAgICIwLjA2NzYyMSwgMC4xMDQxMjksIDAuMzE1MzUyLCAwLjUwMTEwNCwgMC43NTA2MTksIDEuMjQ2MTUsIDEuNTU5MTMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA4ODE5LCAwLjAwODc5NiwgMC4wMDg3MywgMC4wMDg3MSwgMC4wMDg2OTgsIDAuMDA4Njg5LCAwLjAwODY4MiIsIFwKLSAgICAgICAgICAiMC4wMDg4MTQsIDAuMDA4NzkyLCAwLjAwODcyNiwgMC4wMDg3MDYsIDAuMDA4NjkyLCAwLjAwODY4LCAwLjAwODY3OSIsIFwKLSAgICAgICAgICAiMC4wMDg4OTcsIDAuMDA4ODc2LCAwLjAwODgxLCAwLjAwODc4OCwgMC4wMDg3NzQsIDAuMDA4NzYzLCAwLjAwODc1NyIsIFwKLSAgICAgICAgICAiMC4wMDg5ODEsIDAuMDA4OTYzLCAwLjAwODg5OSwgMC4wMDg4NzUsIDAuMDA4ODYsIDAuMDA4ODQ3LCAwLjAwODg0MyIsIFwKLSAgICAgICAgICAiMC4wMDkxMzEsIDAuMDA5MTExLCAwLjAwOTA1MSwgMC4wMDkwMjcsIDAuMDA5MDEyLCAwLjAwODk5NywgMC4wMDg5OTIiLCBcCi0gICAgICAgICAgIjAuMDA5MzE3LCAwLjAwOTMwMiwgMC4wMDkyMzksIDAuMDA5MjE0LCAwLjAwOTE5NiwgMC4wMDkxNzksIDAuMDA5MTc1IiwgXAotICAgICAgICAgICIwLjAwOTU1NywgMC4wMDk1NDYsIDAuMDA5NDU0LCAwLjAwOTQ1OCwgMC4wMDk0MzksIDAuMDA5NDIyLCAwLjAwOTQxNSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwOTUwOSwgMC4wMDk1MjEsIDAuMDA5NTQsIDAuMDA5NTQzLCAwLjAwOTU0NiwgMC4wMDk1NDgsIDAuMDA5NTQ4IiwgXAotICAgICAgICAgICIwLjAwOTUwNCwgMC4wMDk1MTYsIDAuMDA5NTM0LCAwLjAwOTUzOCwgMC4wMDk1NCwgMC4wMDk1NDIsIDAuMDA5NTQyIiwgXAotICAgICAgICAgICIwLjAwOTYxNiwgMC4wMDk2MjcsIDAuMDA5NjQ0LCAwLjAwOTY0NywgMC4wMDk2NSwgMC4wMDk2NTEsIDAuMDA5NjUzIiwgXAotICAgICAgICAgICIwLjAwOTczMiwgMC4wMDk3NDMsIDAuMDA5NzU5LCAwLjAwOTc2MiwgMC4wMDk3NjUsIDAuMDA5NzY2LCAwLjAwOTc2NyIsIFwKLSAgICAgICAgICAiMC4wMDk4ODEsIDAuMDA5ODkzLCAwLjAwOTkwOCwgMC4wMDk5MSwgMC4wMDk5MTIsIDAuMDA5OTEzLCAwLjAwOTkxNCIsIFwKLSAgICAgICAgICAiMC4wMTAxMzIsIDAuMDEwMTQyLCAwLjAxMDE1NiwgMC4wMTAxNTYsIDAuMDEwMTU3LCAwLjAxMDE1NywgMC4wMTAxNTciLCBcCi0gICAgICAgICAgIjAuMDEwMzQsIDAuMDEwMzUsIDAuMDEwMzU5LCAwLjAxMDM2LCAwLjAxMDM2LCAwLjAxMDM2LCAwLjAxMDM1OSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUzApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTY4NDA3OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTY4NDA3OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTY4MjY1OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNjc1NSwgMC4wMDY3NTMsIDAuMDA2ODMsIDAuMDA2OTMzLCAwLjAwNzA1NiwgMC4wMDcyNjMsIDAuMDA3NDY1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA4NDU3LCAwLjAwODQ3MywgMC4wMDg1OTUsIDAuMDA4Nzk4LCAwLjAwOTA1MSwgMC4wMDk0NjIsIDAuMDA5ODU3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEMCZEMSI7Ci0gICAgICBzZGZfY29uZCA6ICJEMF9FUV8wX0FOX0QxX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDI1LCAtMC4wMTM3NSwgLTAuMDEzNzUsIC0wLjAwNzUsIC0wLjAwNzUsIC0wLjAwMzc1LCAtMC4wMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDg3NSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzMTI1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMjUsIC0wLjAyMTI1LCAtMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDMxMjUsIC0wLjAyNzUsIC0wLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzNzUsIC0wLjAzMzc1LCAtMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDY1LCAtMC4wNiwgLTAuMDUzNzUsIC0wLjA0NzUsIC0wLjA0NzUsIC0wLjA0Mzc1LCAtMC4wNDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDY3NSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDQ2MjUsIC0wLjA0Mzc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMCwgMC4wMDUsIDAuMDE3NSwgMC4wMjM3NSwgMC4wMjM3NSwgMC4wMzM3NSwgMC4wMzYyNSIsIFwKLSAgICAgICAgICAiLTAuMDA1LCAwLCAwLjAwNjI1LCAwLjAxMjUsIDAuMDE4NzUsIDAuMDI4NzUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjAxNzUsIC0wLjAwNjI1LCAwLCAwLjAwNjI1LCAwLjAxMjUsIDAuMDE2MjUsIDAuMDI1IiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAsIDAuMDA2MjUsIDAuMDEsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMCwgMC4wMDM3NSwgMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wMzM3NSwgLTAuMDIyNSwgLTAuMDE2MjUsIC0wLjAxLCAtMC4wMSwgMCwgMC4wMDI1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwODc1LCAwIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIkQwJiFEMSI7Ci0gICAgICBzZGZfY29uZCA6ICJEMF9FUV8xX0FOX0QxX0VRXzAgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDEyNSwgLTAuMDAxMjUsIDAuMDA1LCAwLjAxMTI1LCAwLjAxMTI1LCAwLjAyMTI1LCAwLjAyMzc1IiwgXAotICAgICAgICAgICItMC4wMTc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMCwgMC4wMDYyNSwgMC4wMTYyNSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMCwgMC4wMDM3NSwgMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDI1LCAtMC4wMTI1LCAtMC4wMDYyNSwgLTAuMDA2MjUsIDAuMDAzNzUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgLTAuMDAyNSwgMCIsIFwKLSAgICAgICAgICAiLTAuMDQsIC0wLjAzNSwgLTAuMDIyNSwgLTAuMDE2MjUsIC0wLjAxNjI1LCAtMC4wMDYyNSwgLTAuMDAzNzUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMDg3NSwgLTAuMDA2MjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMzc1LCAtMC4wMzI1LCAtMC4wMjYyNSwgLTAuMDIsIC0wLjAyLCAtMC4wMTYyNSwgLTAuMDEzNzUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMjEyNSwgLTAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAyNzUsIC0wLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzM3NSwgLTAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjA1NSwgLTAuMDUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDQzNzUsIC0wLjA0LCAtMC4wMzc1IiwgXAotICAgICAgICAgICItMC4wNjUsIC0wLjA2LCAtMC4wNTM3NSwgLTAuMDQ3NSwgLTAuMDQ3NSwgLTAuMDQzNzUsIC0wLjA0MTI1IiwgXAotICAgICAgICAgICItMC4wNjc1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNDYyNSwgLTAuMDQzNzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEMCZEMSI7Ci0gICAgICBzZGZfY29uZCA6ICJEMF9FUV8wX0FOX0QxX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQzNzUsIDAuMDMyNSwgMC4wMjYyNSwgMC4wMjYyNSwgMC4wMiwgMC4wMTYyNSwgMC4wMTM3NSIsIFwKLSAgICAgICAgICAiMC4wNDg3NSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAzMTI1LCAwLjAyNzUsIDAuMDI1IiwgXAotICAgICAgICAgICIwLjA2MTI1LCAwLjA1LCAwLjA0Mzc1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDMzNzUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMDY3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1LCAwLjA1LCAwLjA0LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIjAuMDczNzUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNTYyNSwgMC4wNTI1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjA4Mzc1LCAwLjA3ODc1LCAwLjA3MjUsIDAuMDY2MjUsIDAuMDY2MjUsIDAuMDU2MjUsIDAuMDUzNzUiLCBcCi0gICAgICAgICAgIjAuMDkyNSwgMC4wODEyNSwgMC4wNzUsIDAuMDc1LCAwLjA2ODc1LCAwLjA2NSwgMC4wNjI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDI1LCAwLjAyLCAwLjAwNzUsIDAuMDAxMjUsIC0wLjAwNSwgLTAuMDA4NzUsIC0wLjAxNzUiLCBcCi0gICAgICAgICAgIjAuMDMsIDAuMDI1LCAwLjAxODc1LCAwLjAwNjI1LCAwLjAwNjI1LCAtMC4wMDM3NSwgLTAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4wNDI1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMTg3NSwgMC4wMTI1LCAwLjAwMjUsIDAiLCBcCi0gICAgICAgICAgIjAuMDQ4NzUsIDAuMDQzNzUsIDAuMDMxMjUsIDAuMDI1LCAwLjAxODc1LCAwLjAxNSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiMC4wNTUsIDAuMDUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMjUsIDAuMDIxMjUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4wNjUsIDAuMDYsIDAuMDQ3NSwgMC4wNDEyNSwgMC4wMzUsIDAuMDMxMjUsIDAuMDIyNSIsIFwKLSAgICAgICAgICAiMC4wNzM3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1LCAwLjA0Mzc1LCAwLjAzMzc1LCAwLjAzMTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJEMCYhRDEiOwotICAgICAgc2RmX2NvbmQgOiAiRDBfRVFfMV9BTl9EMV9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzNzUsIDAuMDMyNSwgMC4wMiwgMC4wMTM3NSwgMC4wMDc1LCAwLjAwMzc1LCAtMC4wMDUiLCBcCi0gICAgICAgICAgIjAuMDQyNSwgMC4wMzc1LCAwLjAyNSwgMC4wMTg3NSwgMC4wMTI1LCAwLjAwODc1LCAwIiwgXAotICAgICAgICAgICIwLjA0ODc1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDI1LCAwLjAyNSwgMC4wMTUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4wNTUsIDAuMDUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMjUsIDAuMDIxMjUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4wNjEyNSwgMC4wNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyMTI1LCAwLjAxODc1IiwgXAotICAgICAgICAgICIwLjA2NSwgMC4wNiwgMC4wNDc1LCAwLjA0MTI1LCAwLjAzNSwgMC4wMzEyNSwgMC4wMjI1IiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDYyNSwgMC4wNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzMzc1LCAwLjAyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1NjI1LCAwLjA0NSwgMC4wMzg3NSwgMC4wMzg3NSwgMC4wMzI1LCAwLjAyODc1LCAwLjAyNjI1IiwgXAotICAgICAgICAgICIwLjA2MTI1LCAwLjA1NjI1LCAwLjA1LCAwLjA0Mzc1LCAwLjA0Mzc1LCAwLjA0LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIjAuMDY3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1LCAwLjA1LCAwLjA0NjI1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjA3Mzc1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDU2MjUsIDAuMDUyNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4wOCwgMC4wNjg3NSwgMC4wNjI1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDUyNSwgMC4wNSIsIFwKLSAgICAgICAgICAiMC4wODM3NSwgMC4wNzI1LCAwLjA2NjI1LCAwLjA2NjI1LCAwLjA2LCAwLjA1NjI1LCAwLjA1Mzc1IiwgXAotICAgICAgICAgICIwLjA4NjI1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjg3NSwgMC4wNTg3NSwgMC4wNTYyNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBNREZGSFFYMiAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoTURGRkhRWDIpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMS4xNzk0NzsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBmZiAoTjMwLFFCSU5UKSB7Ci0gICAgbmV4dF9zdGF0ZSA6ICIoKFMwIEQxKSArICghUzAgRDApKSI7Ci0gICAgY2xvY2tlZF9vbiA6ICJDSyI7Ci0gIH0KLSAgcGluKENLKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2NTY0NDI7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjU2NDQyOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDY1NjIwODsKLSAgICBjbG9jayA6IHRydWU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA0MTcxLCAwLjAwNDE2NiwgMC4wMDQyNDMsIDAuMDA0MzMzLCAwLjAwNDQ1NCwgMC4wMDQ2ODUsIDAuMDA0ODY3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA5MjU5LCAwLjAwOTI0OCwgMC4wMDkzMzcsIDAuMDA5NDY3LCAwLjAwOTYxOCwgMC4wMDk5MDEsIDAuMDEwMTMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFEMCYhRDEmIVMwIjsKLSAgICAgIHNkZl9jb25kIDogIkQwX0VRXzBfQU5fRDFfRVFfMF9BTl9TMF9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDkxNDM0LCAwLjA5OTYzNCwgMC4xMDg3NzYsIDAuMTE2MDQ0LCAwLjEyMTkxLCAwLjEyOTc3NywgMC4xMzU1MzgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjA2MzI4MSwgMC4wNzEzNzksIDAuMDgwNTYxLCAwLjA4NzU4NSwgMC4wOTMyNDgsIDAuMTAwNjAyLCAwLjEwNjEyNCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRDApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDkxMjQ5NzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA5MTA3OTU7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwOTEyNDk3OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNDMxNywgMC4wMDQyNzIsIDAuMDA0Mjk2LCAwLjAwNDM1NiwgMC4wMDQ0MjIsIDAuMDA0NTkyLCAwLjAwNDc0OSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNzIzNiwgMC4wMDcyMDcsIDAuMDA3MjM2LCAwLjAwNzI4NywgMC4wMDczNjIsIDAuMDA3NTA4LCAwLjAwNzY3MiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhUzAiOwotICAgICAgc2RmX2NvbmQgOiAiUzAgPT0gMSdiMCI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDI1LCAtMC4wMiwgLTAuMDIsIC0wLjAxMzc1LCAtMC4wMTM3NSwgLTAuMDEsIC0wLjAwNzUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMjUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxODc1LCAtMC4wMTUsIC0wLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAyNSwgLTAuMDIxMjUsIC0wLjAxODc1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMjc1LCAtMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjA1NSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDMzNzUsIC0wLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wNTg3NSwgLTAuMDUzNzUsIC0wLjA1Mzc1LCAtMC4wNDc1LCAtMC4wNDc1LCAtMC4wNDM3NSwgLTAuMDQxMjUiLCBcCi0gICAgICAgICAgIi0wLjA2NzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjA0NjI1LCAtMC4wNDM3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAwNjI1LCAwLjAwNSwgMC4wMTEyNSwgMC4wMTc1LCAwLjAyMzc1LCAwLjAyNzUsIDAuMDM2MjUiLCBcCi0gICAgICAgICAgIi0wLjAxMTI1LCAwLCAwLjAwNjI1LCAwLjAxMjUsIDAuMDE4NzUsIDAuMDIyNSwgMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjAxNzUsIC0wLjAwNjI1LCAwLCAwLjAwNjI1LCAwLjAxMjUsIDAuMDE2MjUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMCwgMC4wMDYyNSwgMC4wMSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMCwgMC4wMDM3NSwgMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wMjc1LCAtMC4wMjI1LCAtMC4wMTYyNSwgLTAuMDEsIC0wLjAwMzc1LCAwLCAwLjAwODc1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDEyNSwgLTAuMDAyNSwgMCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIVMwIjsKLSAgICAgIHNkZl9jb25kIDogIlMwID09IDEnYjAiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1LCAwLjAzODc1LCAwLjAzMjUsIDAuMDMyNSwgMC4wMjYyNSwgMC4wMjI1LCAwLjAyIiwgXAotICAgICAgICAgICIwLjA1NSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDI3NSwgMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMDYxMjUsIDAuMDU2MjUsIDAuMDUsIDAuMDQzNzUsIDAuMDQzNzUsIDAuMDQsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMDY3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1LCAwLjA1LCAwLjA0NjI1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjA3Mzc1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDU2MjUsIDAuMDUyNSwgMC4wNSIsIFwKLSAgICAgICAgICAiMC4wODM3NSwgMC4wNzg3NSwgMC4wNzI1LCAwLjA2NjI1LCAwLjA2LCAwLjA1NjI1LCAwLjA1Mzc1IiwgXAotICAgICAgICAgICIwLjA5MjUsIDAuMDgxMjUsIDAuMDc1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjUsIDAuMDYyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzMTI1LCAwLjAyLCAwLjAxMzc1LCAwLjAwNzUsIDAuMDAxMjUsIC0wLjAwODc1LCAtMC4wMTEyNSIsIFwKLSAgICAgICAgICAiMC4wMzYyNSwgMC4wMzEyNSwgMC4wMTg3NSwgMC4wMTI1LCAwLjAwNjI1LCAwLjAwMjUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICIwLjA0MjUsIDAuMDM3NSwgMC4wMjUsIDAuMDE4NzUsIDAuMDEyNSwgMC4wMDg3NSwgMCIsIFwKLSAgICAgICAgICAiMC4wNDg3NSwgMC4wNDM3NSwgMC4wMzEyNSwgMC4wMjUsIDAuMDE4NzUsIDAuMDE1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICIwLjA1NSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMTUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4wNjUsIDAuMDUzNzUsIDAuMDQ3NSwgMC4wMzUsIDAuMDM1LCAwLjAyNSwgMC4wMTYyNSIsIFwKLSAgICAgICAgICAiMC4wNjc1LCAwLjA1NjI1LCAwLjA1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDI3NSwgMC4wMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEQxKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA5Mjg3ODM7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwOTI2NDE4OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDkyODc4MzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDM5NDUsIDAuMDAzODk3LCAwLjAwMzkxNiwgMC4wMDM5ODUsIDAuMDA0MDcyLCAwLjAwNDIyNiwgMC4wMDQzODciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDc1NzQsIDAuMDA3NTQ2LCAwLjAwNzU2OSwgMC4wMDc2MTQsIDAuMDA3NjkxLCAwLjAwNzgzNywgMC4wMDgwMDEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiUzAiOwotICAgICAgc2RmX2NvbmQgOiAiUzAgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDI1LCAtMC4wMiwgLTAuMDEzNzUsIC0wLjAxMzc1LCAtMC4wMDc1LCAtMC4wMDM3NSwgLTAuMDAxMjUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMjUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxODc1LCAtMC4wMTUsIC0wLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAyNSwgLTAuMDIxMjUsIC0wLjAxODc1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMjc1LCAtMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjA1NSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzc1LCAtMC4wMzM3NSwgLTAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjA1ODc1LCAtMC4wNTM3NSwgLTAuMDUzNzUsIC0wLjA0NzUsIC0wLjA0NzUsIC0wLjA0Mzc1LCAtMC4wNDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDY3NSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDQ2MjUsIC0wLjA0Mzc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDA2MjUsIDAuMDA1LCAwLjAxMTI1LCAwLjAxNzUsIDAuMDIzNzUsIDAuMDI3NSwgMC4wMyIsIFwKLSAgICAgICAgICAiLTAuMDExMjUsIDAsIDAuMDA2MjUsIDAuMDEyNSwgMC4wMTg3NSwgMC4wMjI1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDE3NSwgLTAuMDA2MjUsIDAsIDAuMDA2MjUsIDAuMDEyNSwgMC4wMTYyNSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLCAwLjAwNjI1LCAwLjAxLCAwLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAsIDAuMDAzNzUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDI3NSwgLTAuMDIyNSwgLTAuMDE2MjUsIC0wLjAxLCAtMC4wMDM3NSwgMCwgMC4wMDI1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDEyNSwgLTAuMDAyNSwgMCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiUzAiOwotICAgICAgc2RmX2NvbmQgOiAiUzAgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQzNzUsIDAuMDM4NzUsIDAuMDMyNSwgMC4wMjYyNSwgMC4wMjYyNSwgMC4wMjI1LCAwLjAyIiwgXAotICAgICAgICAgICIwLjA1NSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDI3NSwgMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMDYxMjUsIDAuMDU2MjUsIDAuMDUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzM3NSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4wNjc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDUsIDAuMDUsIDAuMDQ2MjUsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiMC4wNzM3NSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1NjI1LCAwLjA1MjUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMDgzNzUsIDAuMDcyNSwgMC4wNjYyNSwgMC4wNjYyNSwgMC4wNiwgMC4wNTYyNSwgMC4wNTM3NSIsIFwKLSAgICAgICAgICAiMC4wOTI1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNzUsIDAuMDY4NzUsIDAuMDY1LCAwLjA2MjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzEyNSwgMC4wMiwgMC4wMTM3NSwgMC4wMDc1LCAwLjAwMTI1LCAtMC4wMDg3NSwgLTAuMDExMjUiLCBcCi0gICAgICAgICAgIjAuMDM2MjUsIDAuMDMxMjUsIDAuMDE4NzUsIDAuMDEyNSwgMC4wMDYyNSwgMC4wMDI1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiMC4wNDI1LCAwLjAzNzUsIDAuMDI1LCAwLjAxODc1LCAwLjAxMjUsIDAuMDA4NzUsIDAiLCBcCi0gICAgICAgICAgIjAuMDQ4NzUsIDAuMDQzNzUsIDAuMDMxMjUsIDAuMDI1LCAwLjAxODc1LCAwLjAxNSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiMC4wNTUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMjUsIDAuMDE1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMDY1LCAwLjA1Mzc1LCAwLjA0NzUsIDAuMDM1LCAwLjAzNSwgMC4wMjUsIDAuMDIyNSIsIFwKLSAgICAgICAgICAiMC4wNjc1LCAwLjA1NjI1LCAwLjA1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDI3NSwgMC4wMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFEpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC42ODE1Mzk7Ci0gICAgZnVuY3Rpb24gOiAiTjMwIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBub25fdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJpc2luZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzkwODYsIDAuMTU2Mzk5LCAwLjIxODE1NiwgMC4yOTUzMDYsIDAuMzcyNDYsIDAuNDQ5NjQ1LCAwLjUyNjg1NCIsIFwKLSAgICAgICAgICAiMC4wODcyNzYsIDAuMTY0NTk1LCAwLjIyNjM1MSwgMC4zMDM0NzIsIDAuMzgwNjc4LCAwLjQ1Nzg2NSwgMC41MzQ5MTUiLCBcCi0gICAgICAgICAgIjAuMDk2MzEyLCAwLjE3MzYzNywgMC4yMzUzOTgsIDAuMzEyNTA2LCAwLjM4OTY5NCwgMC40NjY5LCAwLjU0NDAxNCIsIFwKLSAgICAgICAgICAiMC4xMDM1NTEsIDAuMTgwODc1LCAwLjI0MjYyOCwgMC4zMTk3NDMsIDAuMzk2OTM2LCAwLjQ3NDEyMiwgMC41NTExNDMiLCBcCi0gICAgICAgICAgIjAuMTA5MjUsIDAuMTg2NTkzLCAwLjI0ODM0LCAwLjMyNTQ1NiwgMC40MDI2MzYsIDAuNDc5ODExLCAwLjU1NzAwNCIsIFwKLSAgICAgICAgICAiMC4xMTY3ODIsIDAuMTk0MTMyLCAwLjI1NTkwNSwgMC4zMzMwMDQsIDAuNDEwMTYzLCAwLjQ4NzM1NCwgMC41NjQ1MTMiLCBcCi0gICAgICAgICAgIjAuMTIyNDk3LCAwLjE5OTgzMywgMC4yNjE1NzUsIDAuMzM4NzM0LCAwLjQxNTkwNiwgMC40OTMwMzcsIDAuNTcwMjA0Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzOTYxOSwgMC4xOTk4NjEsIDAuMzI5OTQ3LCAwLjQ5MzQ4LCAwLjY1NTE0LCAwLjgxOTQ2MywgMC45ODExNTMiLCBcCi0gICAgICAgICAgIjAuMDM5NTg4LCAwLjIwMDIwMiwgMC4zMjk5NDMsIDAuNDkyOTY4LCAwLjY1NTE5OCwgMC44MTc5NjQsIDAuOTgyMDc0IiwgXAotICAgICAgICAgICIwLjAzOTYyMSwgMC4yMDAxOTgsIDAuMzI5OTg0LCAwLjQ5MjkxOCwgMC42NTU3MDQsIDAuODE4Mzc4LCAwLjk4MjM4NiIsIFwKLSAgICAgICAgICAiMC4wMzk2MzksIDAuMjAwMTk4LCAwLjMyOTk0LCAwLjQ5Mjk1OSwgMC42NTU0ODIsIDAuODE3OTQyLCAwLjk4MTU1NiIsIFwKLSAgICAgICAgICAiMC4wMzk2MDgsIDAuMjAwMTg0LCAwLjMyOTk2LCAwLjQ5Mjg3NiwgMC42NTU3MzYsIDAuODE5MzgyLCAwLjk4MDg5OCIsIFwKLSAgICAgICAgICAiMC4wMzk2MjMsIDAuMTk5OTY1LCAwLjMyOTk3MywgMC40OTMzNDQsIDAuNjU1ODIxLCAwLjgxODA0OSwgMC45ODE2MTUiLCBcCi0gICAgICAgICAgIjAuMDM5NjU3LCAwLjE5OTk5MywgMC4zMzA0NTQsIDAuNDkzNDAxLCAwLjY1NjMzMSwgMC44MTg1NzMsIDAuOTgyMzMxIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5MTQzNCwgMC4xNjc2MTUsIDAuMjI4MjQsIDAuMzAzOTkzLCAwLjM3OTc1MywgMC40NTU1NTUsIDAuNTMxMjU0IiwgXAotICAgICAgICAgICIwLjA5OTYzNCwgMC4xNzU4MTQsIDAuMjM2NDQ0LCAwLjMxMjE5NCwgMC4zODc5NDUsIDAuNDYzNzU2LCAwLjUzOTQ1NiIsIFwKLSAgICAgICAgICAiMC4xMDg3NzYsIDAuMTg0OTU2LCAwLjI0NTYwMSwgMC4zMjEzMzgsIDAuMzk3MTA0LCAwLjQ3Mjg0NywgMC41NDg2NDkiLCBcCi0gICAgICAgICAgIjAuMTE2MDQ1LCAwLjE5MjIyNCwgMC4yNTI4NTMsIDAuMzI4NjAyLCAwLjQwNDM2MiwgMC40ODAxNDksIDAuNTU1ODU0IiwgXAotICAgICAgICAgICIwLjEyMTkxLCAwLjE5ODA4MiwgMC4yNTg3MjIsIDAuMzM0NDYxLCAwLjQxMDIyNywgMC40ODU5NjcsIDAuNTYxNzYyIiwgXAotICAgICAgICAgICIwLjEyOTc3OCwgMC4yMDU5NTcsIDAuMjY2NTk2LCAwLjM0MjMzNSwgMC40MTgwOTQsIDAuNDkzODgsIDAuNTY5NTciLCBcCi0gICAgICAgICAgIjAuMTM1NTQxLCAwLjIxMTcxMywgMC4yNzIzNSwgMC4zNDgxMTYsIDAuNDIzODM3LCAwLjQ5OTU3NSwgMC41NzUzNTkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM4MzQzLCAwLjE5MzQ5OSwgMC4zMTkzODIsIDAuNDc2ODUsIDAuNjM0NTEyLCAwLjc5MDYsIDAuOTQ4MDcxIiwgXAotICAgICAgICAgICIwLjAzODM1NCwgMC4xOTMyNzEsIDAuMzE5Mjk3LCAwLjQ3Njg1NiwgMC42MzM2OTgsIDAuNzkwNTk3LCAwLjk0ODEyNyIsIFwKLSAgICAgICAgICAiMC4wMzgzNjcsIDAuMTkzNDk5LCAwLjMxODc2MiwgMC40NzY5MTMsIDAuNjMzNDkyLCAwLjc5MjAyLCAwLjk0NzgyNCIsIFwKLSAgICAgICAgICAiMC4wMzgzNjksIDAuMTkzNSwgMC4zMTkzNDMsIDAuNDc2MywgMC42MzM4NjksIDAuNzkwNTU1LCAwLjk0ODY3NyIsIFwKLSAgICAgICAgICAiMC4wMzgzOCwgMC4xOTM0OTUsIDAuMzE5NDI4LCAwLjQ3NjM3NSwgMC42MzM1MTYsIDAuNzkwNzkzLCAwLjk0NzgzMiIsIFwKLSAgICAgICAgICAiMC4wMzg0NzMsIDAuMTkzNTA2LCAwLjMxOTM5MiwgMC40NzYyODQsIDAuNjMzNDIzLCAwLjc5MDgyMiwgMC45NDg0MDUiLCBcCi0gICAgICAgICAgIjAuMDM4MzczLCAwLjE5MzQ4OSwgMC4zMTkwMjgsIDAuNDc2MDg3LCAwLjYzNDQ3MSwgMC43OTIwMjUsIDAuOTQ5NDMzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwOTk3OSwgMC4wMDk5NDMsIDAuMDA5OTE5LCAwLjAwOTkwNiwgMC4wMDk4OTYsIDAuMDA5ODkxLCAwLjAwOTg4OCIsIFwKLSAgICAgICAgICAiMC4wMDk5NTcsIDAuMDA5OTI0LCAwLjAwOTkwMSwgMC4wMDk4ODUsIDAuMDA5ODc4LCAwLjAwOTg3NCwgMC4wMDk4NjkiLCBcCi0gICAgICAgICAgIjAuMDEwMDU0LCAwLjAxMDAyMiwgMC4wMDk5OTgsIDAuMDA5OTgyLCAwLjAwOTk3MywgMC4wMDk5NjUsIDAuMDA5OTYxIiwgXAotICAgICAgICAgICIwLjAxMDEzOSwgMC4wMTAxMTIsIDAuMDEwMDg3LCAwLjAxMDA3MSwgMC4wMTAwNjMsIDAuMDEwMDUzLCAwLjAxMDA1MSIsIFwKLSAgICAgICAgICAiMC4wMTAyODIsIDAuMDEwMjYyLCAwLjAxMDIzOCwgMC4wMTAyMjEsIDAuMDEwMjEsIDAuMDEwMjA1LCAwLjAxMDE5OCIsIFwKLSAgICAgICAgICAiMC4wMTA0NjcsIDAuMDEwNDUyLCAwLjAxMDQyNywgMC4wMTA0MDUsIDAuMDEwMzk0LCAwLjAxMDM4NiwgMC4wMTAzOCIsIFwKLSAgICAgICAgICAiMC4wMTA3MDIsIDAuMDEwNjg3LCAwLjAxMDY2MywgMC4wMTA2NDIsIDAuMDEwNjAxLCAwLjAxMDYyLCAwLjAxMDYxNCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMDcxNywgMC4wMTA4MSwgMC4wMTA4MjMsIDAuMDEwODMxLCAwLjAxMDgzNCwgMC4wMTA4MzYsIDAuMDEwODM4IiwgXAotICAgICAgICAgICIwLjAxMDcxMywgMC4wMTA4MDUsIDAuMDEwODE4LCAwLjAxMDgyNiwgMC4wMTA4MjksIDAuMDEwODMyLCAwLjAxMDgzMyIsIFwKLSAgICAgICAgICAiMC4wMTA4MjQsIDAuMDEwOTE2LCAwLjAxMDkyOSwgMC4wMTA5MzUsIDAuMDEwOTM5LCAwLjAxMDk0MSwgMC4wMTA5NDMiLCBcCi0gICAgICAgICAgIjAuMDEwOTQsIDAuMDExMDMxLCAwLjAxMTA0MiwgMC4wMTEwNDksIDAuMDExMDUyLCAwLjAxMTA1NCwgMC4wMTEwNTYiLCBcCi0gICAgICAgICAgIjAuMDExMDksIDAuMDExMTgsIDAuMDExMTkxLCAwLjAxMTE5NywgMC4wMTEyLCAwLjAxMTIwMiwgMC4wMTEyMDIiLCBcCi0gICAgICAgICAgIjAuMDExMzQ0LCAwLjAxMTQyOSwgMC4wMTE0NCwgMC4wMTE0NDQsIDAuMDExNDQ3LCAwLjAxMTQ0OCwgMC4wMTE0NDkiLCBcCi0gICAgICAgICAgIjAuMDExNTQ4LCAwLjAxMTYzNiwgMC4wMTE2NDQsIDAuMDExNjQ5LCAwLjAxMTY1LCAwLjAxMTYxNSwgMC4wMTE2NTIiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFMwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE3MDczODsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE3MDczODsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE3MDY1MjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDY4NDEsIDAuMDA2ODM1LCAwLjAwNjkxMiwgMC4wMDcwMTcsIDAuMDA3MTcyLCAwLjAwNzM0NywgMC4wMDc1NDQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDg1MzYsIDAuMDA4NTUzLCAwLjAwODY3NiwgMC4wMDg4NzUsIDAuMDA5MTMxLCAwLjAwOTUzOSwgMC4wMDk5MjgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUQwJkQxIjsKLSAgICAgIHNkZl9jb25kIDogIkQwX0VRXzBfQU5fRDFfRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMjUsIC0wLjAxMzc1LCAtMC4wMTM3NSwgLTAuMDA3NSwgLTAuMDA3NSwgLTAuMDAzNzUsIC0wLjAwMTI1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwODc1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAzMTI1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMjUsIC0wLjAyMTI1LCAtMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDMxMjUsIC0wLjAyNzUsIC0wLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzNzUsIC0wLjAzMzc1LCAtMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDU4NzUsIC0wLjA1Mzc1LCAtMC4wNTM3NSwgLTAuMDQ3NSwgLTAuMDQ3NSwgLTAuMDQzNzUsIC0wLjA0MTI1IiwgXAotICAgICAgICAgICItMC4wNjc1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNDYyNSwgLTAuMDQzNzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLCAwLjAxMTI1LCAwLjAxNzUsIDAuMDIzNzUsIDAuMDIzNzUsIDAuMDMzNzUsIDAuMDM2MjUiLCBcCi0gICAgICAgICAgIi0wLjAwNSwgMCwgMC4wMDYyNSwgMC4wMTI1LCAwLjAxODc1LCAwLjAyODc1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wMTEyNSwgLTAuMDA2MjUsIDAsIDAuMDA2MjUsIDAuMDEyNSwgMC4wMTYyNSwgMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjAxNzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLCAwLjAwNjI1LCAwLjAxLCAwLjAxODc1IiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLCAwLjAwMzc1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjAzMzc1LCAtMC4wMjI1LCAtMC4wMTYyNSwgLTAuMDEsIC0wLjAxLCAwLCAwLjAwMjUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA4NzUsIDAiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiRDAmIUQxIjsKLSAgICAgIHNkZl9jb25kIDogIkQwX0VRXzFfQU5fRDFfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMTI1LCAtMC4wMDEyNSwgMC4wMDUsIDAuMDExMjUsIDAuMDE3NSwgMC4wMjEyNSwgMC4wMjM3NSIsIFwKLSAgICAgICAgICAiLTAuMDE3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAsIDAuMDA2MjUsIDAuMDE2MjUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAsIDAuMDAzNzUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAyNSwgLTAuMDEyNSwgLTAuMDA2MjUsIC0wLjAwNjI1LCAwLjAwMzc1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIC0wLjAwMjUsIDAiLCBcCi0gICAgICAgICAgIi0wLjA0LCAtMC4wMzUsIC0wLjAyMjUsIC0wLjAxNjI1LCAtMC4wMTYyNSwgLTAuMDA2MjUsIC0wLjAwMzc1IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDA4NzUsIC0wLjAwNjI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDM3NSwgLTAuMDMyNSwgLTAuMDI2MjUsIC0wLjAyLCAtMC4wMiwgLTAuMDE2MjUsIC0wLjAxMzc1IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDIxMjUsIC0wLjAxODc1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMjc1LCAtMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjA1NSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDMzNzUsIC0wLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wNjEyNSwgLTAuMDUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDQzNzUsIC0wLjA0LCAtMC4wMzc1IiwgXAotICAgICAgICAgICItMC4wNjUsIC0wLjA2LCAtMC4wNTM3NSwgLTAuMDQ3NSwgLTAuMDQ3NSwgLTAuMDQzNzUsIC0wLjA0MTI1IiwgXAotICAgICAgICAgICItMC4wNjc1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNDYyNSwgLTAuMDQzNzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEMCZEMSI7Ci0gICAgICBzZGZfY29uZCA6ICJEMF9FUV8wX0FOX0QxX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQzNzUsIDAuMDMyNSwgMC4wMjYyNSwgMC4wMjYyNSwgMC4wMiwgMC4wMTYyNSwgMC4wMTM3NSIsIFwKLSAgICAgICAgICAiMC4wNDg3NSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAzMTI1LCAwLjAyNzUsIDAuMDI1IiwgXAotICAgICAgICAgICIwLjA2MTI1LCAwLjA1LCAwLjA0Mzc1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDMzNzUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMDY3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1LCAwLjA1LCAwLjA0NjI1LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIjAuMDczNzUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNTYyNSwgMC4wNTI1LCAwLjA1IiwgXAotICAgICAgICAgICIwLjA4Mzc1LCAwLjA3ODc1LCAwLjA3MjUsIDAuMDY2MjUsIDAuMDY2MjUsIDAuMDYyNSwgMC4wNTM3NSIsIFwKLSAgICAgICAgICAiMC4wOTI1LCAwLjA4NzUsIDAuMDgxMjUsIDAuMDc1LCAwLjA2ODc1LCAwLjA2NSwgMC4wNjI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDI1LCAwLjAyLCAwLjAwNzUsIDAuMDAxMjUsIC0wLjAwNSwgLTAuMDA4NzUsIC0wLjAxNzUiLCBcCi0gICAgICAgICAgIjAuMDMsIDAuMDI1LCAwLjAxODc1LCAwLjAwNjI1LCAwLjAwNjI1LCAtMC4wMDM3NSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMDQyNSwgMC4wMzEyNSwgMC4wMjUsIDAuMDE4NzUsIDAuMDEyNSwgMC4wMDI1LCAwIiwgXAotICAgICAgICAgICIwLjA0ODc1LCAwLjA0Mzc1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMTg3NSwgMC4wMTUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMDU1LCAwLjA1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDI1LCAwLjAyMTI1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMDY1LCAwLjA2LCAwLjA0NzUsIDAuMDQxMjUsIDAuMDM1LCAwLjAzMTI1LCAwLjAyMjUiLCBcCi0gICAgICAgICAgIjAuMDczNzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNSwgMC4wNDM3NSwgMC4wMzM3NSwgMC4wMzEyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiRDAmIUQxIjsKLSAgICAgIHNkZl9jb25kIDogIkQwX0VRXzFfQU5fRDFfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzc1LCAwLjAzMjUsIDAuMDIsIDAuMDEzNzUsIDAuMDA3NSwgMC4wMDM3NSwgLTAuMDA1IiwgXAotICAgICAgICAgICIwLjA0ODc1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDI1LCAwLjAxODc1LCAwLjAwODc1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICIwLjA1NSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMTUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4wNTUsIDAuMDUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMjUsIDAuMDIxMjUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4wNjEyNSwgMC4wNTYyNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyNzUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMDY1LCAwLjA2LCAwLjA0NzUsIDAuMDQxMjUsIDAuMDM1LCAwLjAzMTI1LCAwLjAyMjUiLCBcCi0gICAgICAgICAgIjAuMDczNzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNDM3NSwgMC4wNDM3NSwgMC4wMzM3NSwgMC4wMzEyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1NjI1LCAwLjA1MTI1LCAwLjA0NSwgMC4wMzg3NSwgMC4wMzg3NSwgMC4wMjg3NSwgMC4wMjYyNSIsIFwKLSAgICAgICAgICAiMC4wNjEyNSwgMC4wNTYyNSwgMC4wNSwgMC4wNDM3NSwgMC4wNDM3NSwgMC4wNCwgMC4wMzc1IiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNTYyNSwgMC4wNSwgMC4wNDYyNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4wNzM3NSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1NjI1LCAwLjA1MjUsIDAuMDUiLCBcCi0gICAgICAgICAgIjAuMDgsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1MjUsIDAuMDUiLCBcCi0gICAgICAgICAgIjAuMDgzNzUsIDAuMDc4NzUsIDAuMDcyNSwgMC4wNjYyNSwgMC4wNjYyNSwgMC4wNTYyNSwgMC4wNTM3NSIsIFwKLSAgICAgICAgICAiMC4wODYyNSwgMC4wODEyNSwgMC4wNzUsIDAuMDY4NzUsIDAuMDY4NzUsIDAuMDY1LCAwLjA2MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogTURGRkhRWDQgKgotICogLS0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKE1ERkZIUVg0KSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDEuNDcwMTI7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgZmYgKE4zMCxRQklOVCkgewotICAgIG5leHRfc3RhdGUgOiAiKChTMCBEMSkgKyAoIVMwIEQwKSkiOwotICAgIGNsb2NrZWRfb24gOiAiQ0siOwotICB9Ci0gIHBpbihDSykgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjQ4NjE4OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDY0ODYxODsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2NDg0Mjc7Ci0gICAgY2xvY2sgOiB0cnVlOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNDI0NiwgMC4wMDQyMzcsIDAuMDA0MzE1LCAwLjAwNDQwMSwgMC4wMDQ1MTgsIDAuMDA0NzU0LCAwLjAwNDk0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA5Mzk1LCAwLjAwOTM4MiwgMC4wMDk0NzIsIDAuMDA5NTk4LCAwLjAwOTc2MiwgMC4wMDk5MzgsIDAuMDEwMTQ5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRDAmIUQxJiFTMCI7Ci0gICAgICBzZGZfY29uZCA6ICJEMF9FUV8wX0FOX0QxX0VRXzBfQU5fUzBfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjA4MzEwOCwgMC4wOTEzODQsIDAuMTAwNjM5LCAwLjEwODI2NSwgMC4xMTQzMiwgMC4xMjIyMTksIDAuMTI4Mjk2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wNjQ0MzQsIDAuMDcyNTQsIDAuMDgxODg2LCAwLjA4OTA3MywgMC4wOTQ5NjYsIDAuMTAyNjQ5LCAwLjEwODIwNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRDApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDkzNDU5MzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA5MzI2Mjk7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwOTM0NTkzOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNDI0NCwgMC4wMDQxOTYsIDAuMDA0MjE3LCAwLjAwNDI3NCwgMC4wMDQzNTEsIDAuMDA0NTIsIDAuMDA0NjgyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA3MTE2LCAwLjAwNzA4NiwgMC4wMDcxMTQsIDAuMDA3MTc3LCAwLjAwNzI0MSwgMC4wMDczOTksIDAuMDA3NTcxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFTMCI7Ci0gICAgICBzZGZfY29uZCA6ICJTMCA9PSAxJ2IwIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMjUsIC0wLjAyLCAtMC4wMTM3NSwgLTAuMDEzNzUsIC0wLjAwNzUsIC0wLjAwMzc1LCAtMC4wMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDg3NSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzMTI1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMjUsIC0wLjAyMTI1LCAtMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjAzNzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMzEyNSwgLTAuMDI3NSwgLTAuMDI1IiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA0Mzc1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDM3NSwgLTAuMDMzNzUsIC0wLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wNTg3NSwgLTAuMDUzNzUsIC0wLjA0NzUsIC0wLjA0NzUsIC0wLjA0MTI1LCAtMC4wMzc1LCAtMC4wMzUiLCBcCi0gICAgICAgICAgIi0wLjA2NzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDUsIC0wLjA0NjI1LCAtMC4wNDM3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAsIDAuMDA1LCAwLjAxMTI1LCAwLjAxNzUsIDAuMDIzNzUsIDAuMDMzNzUsIDAuMDM2MjUiLCBcCi0gICAgICAgICAgIi0wLjAwNSwgMCwgMC4wMDYyNSwgMC4wMTI1LCAwLjAxODc1LCAwLjAyODc1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wMTEyNSwgLTAuMDA2MjUsIDAsIDAuMDA2MjUsIDAuMDEyNSwgMC4wMjI1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDE3NSwgLTAuMDEyNSwgMCwgMCwgMC4wMDYyNSwgMC4wMTYyNSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLCAwLjAwNjI1LCAwLjAxLCAwLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjAyNzUsIC0wLjAyMjUsIC0wLjAxLCAtMC4wMSwgLTAuMDAzNzUsIDAuMDA2MjUsIDAuMDA4NzUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgLTAuMDAyNSwgMC4wMDYyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIVMwIjsKLSAgICAgIHNkZl9jb25kIDogIlMwID09IDEnYjAiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0Mzc1LCAwLjAzODc1LCAwLjAzMjUsIDAuMDI2MjUsIDAuMDI2MjUsIDAuMDIyNSwgMC4wMiIsIFwKLSAgICAgICAgICAiMC4wNTUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyNzUsIDAuMDI1IiwgXAotICAgICAgICAgICIwLjA2MTI1LCAwLjA1LCAwLjA0Mzc1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDMzNzUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMDY3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1LCAwLjA0Mzc1LCAwLjA0LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIjAuMDczNzUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNSwgMC4wNDYyNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4wODM3NSwgMC4wNzI1LCAwLjA2NjI1LCAwLjA2NjI1LCAwLjA2LCAwLjA1NjI1LCAwLjA1Mzc1IiwgXAotICAgICAgICAgICIwLjA4NjI1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjg3NSwgMC4wNjUsIDAuMDYyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzMTI1LCAwLjAyLCAwLjAxMzc1LCAwLjAwNzUsIDAuMDAxMjUsIC0wLjAwODc1LCAtMC4wMTEyNSIsIFwKLSAgICAgICAgICAiMC4wMzYyNSwgMC4wMjUsIDAuMDE4NzUsIDAuMDEyNSwgMC4wMDYyNSwgLTAuMDAzNzUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICIwLjA0MjUsIDAuMDMxMjUsIDAuMDI1LCAwLjAxODc1LCAwLjAxMjUsIDAuMDAyNSwgMCIsIFwKLSAgICAgICAgICAiMC4wNDg3NSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMTg3NSwgMC4wMDg3NSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiMC4wNTUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMjUsIDAuMDE1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMDU4NzUsIDAuMDUzNzUsIDAuMDQxMjUsIDAuMDM1LCAwLjAyODc1LCAwLjAyNSwgMC4wMTYyNSIsIFwKLSAgICAgICAgICAiMC4wNjc1LCAwLjA1NjI1LCAwLjA1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDI3NSwgMC4wMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEQxKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA5MjY5OTI7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwOTI0NTk7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwOTI2OTkyOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzg5NSwgMC4wMDM4NTIsIDAuMDAzODc2LCAwLjAwMzk0MSwgMC4wMDQwMjQsIDAuMDA0MTg3LCAwLjAwNDM3OSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNzQzOSwgMC4wMDc0MSwgMC4wMDc0MzUsIDAuMDA3NDkxLCAwLjAwNzU2MSwgMC4wMDc3MDgsIDAuMDA3ODgxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlMwIjsKLSAgICAgIHNkZl9jb25kIDogIlMwID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAyNSwgLTAuMDIsIC0wLjAxMzc1LCAtMC4wMTM3NSwgLTAuMDA3NSwgLTAuMDAzNzUsIC0wLjAwMTI1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwODc1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAzMTI1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMjUsIC0wLjAxNSwgLTAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjAzNzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMzEyNSwgLTAuMDI3NSwgLTAuMDI1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDQzNzUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzc1LCAtMC4wMzM3NSwgLTAuMDI1IiwgXAotICAgICAgICAgICItMC4wNTg3NSwgLTAuMDUzNzUsIC0wLjA0NzUsIC0wLjA0NzUsIC0wLjA0MTI1LCAtMC4wMzc1LCAtMC4wMzUiLCBcCi0gICAgICAgICAgIi0wLjA2NzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDUsIC0wLjA0NjI1LCAtMC4wNDM3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAsIDAuMDA1LCAwLjAxMTI1LCAwLjAxNzUsIDAuMDIzNzUsIDAuMDMzNzUsIDAuMDM2MjUiLCBcCi0gICAgICAgICAgIi0wLjAwNSwgMCwgMC4wMDYyNSwgMC4wMTI1LCAwLjAxODc1LCAwLjAyMjUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjAxMTI1LCAtMC4wMDYyNSwgMCwgMC4wMDYyNSwgMC4wMTI1LCAwLjAxNjI1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDE3NSwgLTAuMDEyNSwgMCwgMCwgMC4wMDYyNSwgMC4wMTYyNSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLCAwLjAwNjI1LCAwLjAxLCAwLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjAyNzUsIC0wLjAyMjUsIC0wLjAxLCAtMC4wMDM3NSwgLTAuMDAzNzUsIDAuMDA2MjUsIDAuMDA4NzUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgLTAuMDAyNSwgMC4wMDYyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiUzAiOwotICAgICAgc2RmX2NvbmQgOiAiUzAgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQzNzUsIDAuMDM4NzUsIDAuMDMyNSwgMC4wMjYyNSwgMC4wMjYyNSwgMC4wMjI1LCAwLjAxMzc1IiwgXAotICAgICAgICAgICIwLjA1NSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAzMTI1LCAwLjAyNzUsIDAuMDI1IiwgXAotICAgICAgICAgICIwLjA2MTI1LCAwLjA1LCAwLjA0Mzc1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDMzNzUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMDY3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1LCAwLjA0Mzc1LCAwLjA0LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIjAuMDczNzUsIDAuMDY4NzUsIDAuMDU2MjUsIDAuMDU2MjUsIDAuMDUsIDAuMDQ2MjUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMDgzNzUsIDAuMDcyNSwgMC4wNjYyNSwgMC4wNjYyNSwgMC4wNiwgMC4wNTYyNSwgMC4wNTM3NSIsIFwKLSAgICAgICAgICAiMC4wODYyNSwgMC4wODEyNSwgMC4wNzUsIDAuMDY4NzUsIDAuMDY4NzUsIDAuMDY1LCAwLjA1NjI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDMxMjUsIDAuMDIsIDAuMDEzNzUsIDAuMDA3NSwgMC4wMDEyNSwgLTAuMDA4NzUsIC0wLjAxMTI1IiwgXAotICAgICAgICAgICIwLjAzNjI1LCAwLjAyNSwgMC4wMTg3NSwgMC4wMTI1LCAwLjAwNjI1LCAtMC4wMDM3NSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMDQyNSwgMC4wMzEyNSwgMC4wMjUsIDAuMDE4NzUsIDAuMDEyNSwgMC4wMDI1LCAwIiwgXAotICAgICAgICAgICIwLjA0ODc1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDI1LCAwLjAxODc1LCAwLjAwODc1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICIwLjA1NSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMTUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4wNTg3NSwgMC4wNTM3NSwgMC4wNDEyNSwgMC4wMzUsIDAuMDI4NzUsIDAuMDI1LCAwLjAxNjI1IiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDU2MjUsIDAuMDUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMjc1LCAwLjAyNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAxLjMzMTY3OwotICAgIGZ1bmN0aW9uIDogIk4zMCI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3NlbnNlIDogbm9uX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiByaXNpbmdfZWRnZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzIzMiwgMC4xMjgwNjksIDAuMTgzMjgzLCAwLjIyMjcxMiwgMC4yODU3ODcsIDAuMzQxMTA1LCAwLjQxOTk4MSIsIFwKLSAgICAgICAgICAiMC4wODA1NzIsIDAuMTM2MzI1LCAwLjE5MTUzMywgMC4yMzA5OTQsIDAuMjk0MTM4LCAwLjM0OTM1MiwgMC40MjgyNDgiLCBcCi0gICAgICAgICAgIjAuMDg5NzkxLCAwLjE0NTU0NywgMC4yMDA3NSwgMC4yNDAxOTUsIDAuMzAzMzU0LCAwLjM1ODU3MSwgMC40Mzc0NDciLCBcCi0gICAgICAgICAgIjAuMDk3MzIsIDAuMTUzMDc5LCAwLjIwODI5MiwgMC4yNDc3NjksIDAuMzEwODkxLCAwLjM2NjEwNiwgMC40NDQ5OCIsIFwKLSAgICAgICAgICAiMC4xMDMyODIsIDAuMTU5MDQsIDAuMjE0MjUyLCAwLjI1MzczMywgMC4zMTY4NTIsIDAuMzcyMDY1LCAwLjQ1MDkzOSIsIFwKLSAgICAgICAgICAiMC4xMTEwNjIsIDAuMTY2ODI0LCAwLjIyMjA1MiwgMC4yNjE1MTEsIDAuMzI0NjEsIDAuMzc5OTAyLCAwLjQ1ODc0NCIsIFwKLSAgICAgICAgICAiMC4xMTcxNDEsIDAuMTcyOTA2LCAwLjIyODEyMywgMC4yNjc1NTcsIDAuMzMwNzA5LCAwLjM4NTkxMSwgMC40NjQ4MTQiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjQwNjEsIDAuMTM5MzYzLCAwLjI1NzI1NSwgMC4zNDEzMTYsIDAuNDc1OTQ4LCAwLjU5NDU0NiwgMC43NjMxMjUiLCBcCi0gICAgICAgICAgIjAuMDI0MDY2LCAwLjEzOTM2MSwgMC4yNTcyNjcsIDAuMzQxMTg3LCAwLjQ3NjUzMSwgMC41OTQ1NDUsIDAuNzYzMTE5IiwgXAotICAgICAgICAgICIwLjAyNDA1OSwgMC4xMzkzNjIsIDAuMjU3MjM0LCAwLjM0MTMwNCwgMC40NzY1MjEsIDAuNTk0NTQzLCAwLjc2MzEyIiwgXAotICAgICAgICAgICIwLjAyNDA1NiwgMC4xMzkzNTEsIDAuMjU3MjcsIDAuMzQxNjM3LCAwLjQ3NjUxNSwgMC41OTQ1MjQsIDAuNzYzMTI2IiwgXAotICAgICAgICAgICIwLjAyNDA5MywgMC4xMzkzMTcsIDAuMjU3MjY3LCAwLjM0MTE0OSwgMC40NzY0NjUsIDAuNTk0NDczLCAwLjc2MzA1OSIsIFwKLSAgICAgICAgICAiMC4wMjQwNjYsIDAuMTM5MzQ3LCAwLjI1NzIzNywgMC4zNDE1NjQsIDAuNDc2NDE5LCAwLjU5NDQzNSwgMC43NjIzNTgiLCBcCi0gICAgICAgICAgIjAuMDI0MDg4LCAwLjEzOTI5NywgMC4yNTczMywgMC4zNDE0OTgsIDAuNDc2NDM3LCAwLjU5NDM4MiwgMC43NjMwMTEiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODMxMDgsIDAuMTM3NjM5LCAwLjE5MTQ2NywgMC4yMjk4ODQsIDAuMjkxMzc3LCAwLjM0NTE2NSwgMC40MjIwMTciLCBcCi0gICAgICAgICAgIjAuMDkxMzg1LCAwLjE0NTkyLCAwLjE5OTczLCAwLjIzODIwMSwgMC4yOTk2NTcsIDAuMzUzNDkxLCAwLjQzMDI5IiwgXAotICAgICAgICAgICIwLjEwMDY0MywgMC4xNTUxNzMsIDAuMjA4OTgyLCAwLjI0NzQ1MywgMC4zMDg5MjQsIDAuMzYyNzQ1LCAwLjQzOTU1OSIsIFwKLSAgICAgICAgICAiMC4xMDgyNjgsIDAuMTYyODAyLCAwLjIxNjYxNSwgMC4yNTUwNzcsIDAuMzE2NTQsIDAuMzcwMzIyLCAwLjQ0NzE3MiIsIFwKLSAgICAgICAgICAiMC4xMTQzMjIsIDAuMTY4ODU5LCAwLjIyMjY2NSwgMC4yNjExMzMsIDAuMzIyNjE2LCAwLjM3NjM4NywgMC40NTMyNjgiLCBcCi0gICAgICAgICAgIjAuMTIyMjIsIDAuMTc2NzY4LCAwLjIzMDU3MiwgMC4yNjkwMjcsIDAuMzMwNTA4LCAwLjM4NDMsIDAuNDYxMTI0IiwgXAotICAgICAgICAgICIwLjEyODM5LCAwLjE4MjkyOCwgMC4yMzY3MywgMC4yNzUxOTksIDAuMzM2Njc5LCAwLjM5MDQ1NiwgMC40NjczNTEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjI4NjgsIDAuMTMyNDE3LCAwLjI0NDIzNCwgMC4zMjQxNDcsIDAuNDUyMjAzLCAwLjU2NDE3MiwgMC43MjM0MTEiLCBcCi0gICAgICAgICAgIjAuMDIyODY5LCAwLjEzMjM4MiwgMC4yNDQxNDcsIDAuMzIzNTc4LCAwLjQ1MjIxOSwgMC41NjMxNTUsIDAuNzI0MjM4IiwgXAotICAgICAgICAgICIwLjAyMjg2OSwgMC4xMzIzODcsIDAuMjQ0MTM0LCAwLjMyMzY1LCAwLjQ1MjI3NCwgMC41NjQzMzEsIDAuNzI0MzA2IiwgXAotICAgICAgICAgICIwLjAyMjg2MiwgMC4xMzI0MDMsIDAuMjQzODk3LCAwLjMyMzU2NCwgMC40NTIyMTYsIDAuNTY0MTksIDAuNzIzMzc3IiwgXAotICAgICAgICAgICIwLjAyMjg3OSwgMC4xMzIyMDIsIDAuMjQ0MTM3LCAwLjMyMzQ3MiwgMC40NTEzMzksIDAuNTYzNTQ1LCAwLjcyNDQyNiIsIFwKLSAgICAgICAgICAiMC4wMjI4NjIsIDAuMTMyMzgxLCAwLjI0NDE2MywgMC4zMjQyMzUsIDAuNDUyMjQ2LCAwLjU2NDI3MywgMC43MjQwMzYiLCBcCi0gICAgICAgICAgIjAuMDIyODYsIDAuMTMyMjQzLCAwLjI0NDEyMiwgMC4zMjQxMDUsIDAuNDUyMjc1LCAwLjU2MzQ5MSwgMC43MjQ0MzQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTMwODUsIDAuMDEzMTUsIDAuMDEzMTI0LCAwLjAxMzExMywgMC4wMTMxMDEsIDAuMDEzMDk1LCAwLjAxMzA4NyIsIFwKLSAgICAgICAgICAiMC4wMTMwNjMsIDAuMDEzMTM5LCAwLjAxMzExNSwgMC4wMTMxMDMsIDAuMDEzMDksIDAuMDEzMDg0LCAwLjAxMzA3NyIsIFwKLSAgICAgICAgICAiMC4wMTMxNDIsIDAuMDEzMjE2LCAwLjAxMzE5MSwgMC4wMTMxODIsIDAuMDEzMTc1LCAwLjAxMzE2MSwgMC4wMTMxNTYiLCBcCi0gICAgICAgICAgIjAuMDEzMjM0LCAwLjAxMzMxOSwgMC4wMTMyOTYsIDAuMDEzMjg0LCAwLjAxMzI3MSwgMC4wMTMyNjMsIDAuMDEzMjU1IiwgXAotICAgICAgICAgICIwLjAxMzM3OCwgMC4wMTM0NjYsIDAuMDEzNDQ0LCAwLjAxMzQzMiwgMC4wMTM0MTcsIDAuMDEzNDEsIDAuMDEzNDA4IiwgXAotICAgICAgICAgICIwLjAxMzYwNywgMC4wMTM2OTMsIDAuMDEzNjc0LCAwLjAxMzY2NCwgMC4wMTM2NDMsIDAuMDEzNjM2LCAwLjAxMzYzIiwgXAotICAgICAgICAgICIwLjAxMzc5MiwgMC4wMTM4ODgsIDAuMDEzODY3LCAwLjAxMzg1MywgMC4wMTM4MzEsIDAuMDEzODIsIDAuMDEzODEyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTM2MTQsIDAuMDEzODIyLCAwLjAxMzg1MywgMC4wMTM4NjMsIDAuMDEzODcxLCAwLjAxMzg3NiwgMC4wMTM4OCIsIFwKLSAgICAgICAgICAiMC4wMTM2MTUsIDAuMDEzODI0LCAwLjAxMzg1NiwgMC4wMTM4NjUsIDAuMDEzODc0LCAwLjAxMzg3OSwgMC4wMTM4ODQiLCBcCi0gICAgICAgICAgIjAuMDEzNzE5LCAwLjAxMzkyOCwgMC4wMTM5NTksIDAuMDEzOTY4LCAwLjAxMzk3NywgMC4wMTM5ODEsIDAuMDEzOTg2IiwgXAotICAgICAgICAgICIwLjAxMzgyMywgMC4wMTQwMzIsIDAuMDE0MDYzLCAwLjAxNDA3MSwgMC4wMTQwOCwgMC4wMTQwODUsIDAuMDE0MDg5IiwgXAotICAgICAgICAgICIwLjAxMzk3MiwgMC4wMTQxODEsIDAuMDE0MjExLCAwLjAxNDIyLCAwLjAxNDIyOCwgMC4wMTQyMzMsIDAuMDE0MjM3IiwgXAotICAgICAgICAgICIwLjAxNDIxOSwgMC4wMTQ0MjcsIDAuMDE0NDU0LCAwLjAxNDQ2NCwgMC4wMTQ0NzEsIDAuMDE0NDc0LCAwLjAxNDQ3NyIsIFwKLSAgICAgICAgICAiMC4wMTQ0MzEsIDAuMDE0NjM4LCAwLjAxNDY2NywgMC4wMTQ2NzMsIDAuMDE0NjQ5LCAwLjAxNDY4MywgMC4wMTQ2ODYiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFMwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE2Njk1OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTY2OTU7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNjY5MTI7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA2NjY0LCAwLjAwNjY2MywgMC4wMDY3NDIsIDAuMDA2ODQ0LCAwLjAwNjk2OSwgMC4wMDcxNzgsIDAuMDA3Mzc4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA4MzA5LCAwLjAwODMyNCwgMC4wMDg0NTMsIDAuMDA4NjU4LCAwLjAwODkxMSwgMC4wMDkzMjUsIDAuMDA5NzE3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEMCZEMSI7Ci0gICAgICBzZGZfY29uZCA6ICJEMF9FUV8wX0FOX0QxX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDE4NzUsIC0wLjAxMzc1LCAtMC4wMDc1LCAtMC4wMDc1LCAtMC4wMDEyNSwgMC4wMDI1LCAwLjAwNSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAxMjUsIC0wLjAwODc1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxNSwgLTAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDM3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAzMTI1LCAtMC4wMjc1LCAtMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjA0Mzc1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDM3NSwgLTAuMDMzNzUsIC0wLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDU4NzUsIC0wLjA1Mzc1LCAtMC4wNDc1LCAtMC4wNDc1LCAtMC4wNDEyNSwgLTAuMDM3NSwgLTAuMDM1IiwgXAotICAgICAgICAgICItMC4wNjc1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjA1LCAtMC4wNDYyNSwgLTAuMDQzNzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLCAwLjAxMTI1LCAwLjAxNzUsIDAuMDIzNzUsIDAuMDMsIDAuMDMzNzUsIDAuMDQyNSIsIFwKLSAgICAgICAgICAiLTAuMDA1LCAwLjAwNjI1LCAwLjAxMjUsIDAuMDE4NzUsIDAuMDI1LCAwLjAyODc1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wMTEyNSwgLTAuMDA2MjUsIDAuMDA2MjUsIDAuMDA2MjUsIDAuMDEyNSwgMC4wMjI1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDE3NSwgLTAuMDEyNSwgMCwgMC4wMDYyNSwgMC4wMDYyNSwgMC4wMTYyNSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLCAwLCAwLjAxLCAwLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjAyNzUsIC0wLjAyMjUsIC0wLjAxNjI1LCAtMC4wMSwgLTAuMDAzNzUsIDAsIDAuMDA4NzUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgLTAuMDAyNSwgMCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJEMCYhRDEiOwotICAgICAgc2RmX2NvbmQgOiAiRDBfRVFfMV9BTl9EMV9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAwNjI1LCAtMC4wMDEyNSwgMC4wMDUsIDAuMDExMjUsIDAuMDE3NSwgMC4wMjc1LCAwLjAzIiwgXAotICAgICAgICAgICItMC4wMTc1LCAtMC4wMDYyNSwgMCwgMC4wMDYyNSwgMC4wMTI1LCAwLjAxNjI1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLCAwLjAwNjI1LCAwLjAxLCAwLjAxODc1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLCAwLjAwMzc1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMjUsIC0wLjAxMjUsIC0wLjAwNjI1LCAtMC4wMDYyNSwgMC4wMDM3NSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDMzNzUsIC0wLjAyODc1LCAtMC4wMjI1LCAtMC4wMTYyNSwgLTAuMDEsIDAsIDAuMDAyNSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwODc1LCAwIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDMxMjUsIC0wLjAyNjI1LCAtMC4wMjYyNSwgLTAuMDIsIC0wLjAxMzc1LCAtMC4wMSwgLTAuMDA3NSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDI1LCAtMC4wMjEyNSwgLTAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAzMTI1LCAtMC4wMjc1LCAtMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjA1NSwgLTAuMDQzNzUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzc1LCAtMC4wMzM3NSwgLTAuMDI1IiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzMzc1LCAtMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDU4NzUsIC0wLjA1Mzc1LCAtMC4wNDc1LCAtMC4wNDc1LCAtMC4wNDEyNSwgLTAuMDM3NSwgLTAuMDM1IiwgXAotICAgICAgICAgICItMC4wNjEyNSwgLTAuMDU2MjUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDUsIC0wLjA0LCAtMC4wMzc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRDAmRDEiOwotICAgICAgc2RmX2NvbmQgOiAiRDBfRVFfMF9BTl9EMV9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0Mzc1LCAwLjAzMjUsIDAuMDI2MjUsIDAuMDI2MjUsIDAuMDIsIDAuMDE2MjUsIDAuMDEzNzUiLCBcCi0gICAgICAgICAgIjAuMDQ4NzUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMjUsIDAuMDIxMjUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMDYxMjUsIDAuMDUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzc1LCAwLjAzMzc1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDYyNSwgMC4wNSwgMC4wNSwgMC4wNDM3NSwgMC4wNCwgMC4wMzc1IiwgXAotICAgICAgICAgICIwLjA3Mzc1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDUsIDAuMDQ2MjUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMDgzNzUsIDAuMDc4NzUsIDAuMDcyNSwgMC4wNjYyNSwgMC4wNiwgMC4wNTYyNSwgMC4wNTM3NSIsIFwKLSAgICAgICAgICAiMC4wOTI1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNzUsIDAuMDY4NzUsIDAuMDY1LCAwLjA2MjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjUsIDAuMDEzNzUsIDAuMDA3NSwgMC4wMDEyNSwgLTAuMDA1LCAtMC4wMTUsIC0wLjAxNzUiLCBcCi0gICAgICAgICAgIjAuMDMsIDAuMDI1LCAwLjAxMjUsIDAuMDA2MjUsIDAsIC0wLjAwMzc1LCAtMC4wMTI1IiwgXAotICAgICAgICAgICIwLjA0MjUsIDAuMDMxMjUsIDAuMDI1LCAwLjAxODc1LCAwLjAxMjUsIDAuMDAyNSwgMCIsIFwKLSAgICAgICAgICAiMC4wNDg3NSwgMC4wNDM3NSwgMC4wMzEyNSwgMC4wMjUsIDAuMDE4NzUsIDAuMDA4NzUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMDU1LCAwLjA1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDI1LCAwLjAxNSwgMC4wMTI1IiwgXAotICAgICAgICAgICIwLjA2NSwgMC4wNTM3NSwgMC4wNDc1LCAwLjA0MTI1LCAwLjAzNSwgMC4wMjUsIDAuMDIyNSIsIFwKLSAgICAgICAgICAiMC4wNzM3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA0Mzc1LCAwLjA0Mzc1LCAwLjAzMzc1LCAwLjAyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiRDAmIUQxIjsKLSAgICAgIHNkZl9jb25kIDogIkQwX0VRXzFfQU5fRDFfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzc1LCAwLjAyNjI1LCAwLjAyLCAwLjAxMzc1LCAwLjAwNzUsIC0wLjAwMjUsIC0wLjAwNSIsIFwKLSAgICAgICAgICAiMC4wNDI1LCAwLjAzNzUsIDAuMDI1LCAwLjAxODc1LCAwLjAxMjUsIDAuMDA4NzUsIDAiLCBcCi0gICAgICAgICAgIjAuMDQ4NzUsIDAuMDQzNzUsIDAuMDMxMjUsIDAuMDI1LCAwLjAxODc1LCAwLjAxNSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiMC4wNTUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMjUsIDAuMDE1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMDYxMjUsIDAuMDUsIDAuMDQzNzUsIDAuMDMxMjUsIDAuMDMxMjUsIDAuMDIxMjUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4wNjUsIDAuMDUzNzUsIDAuMDQ3NSwgMC4wNDEyNSwgMC4wMzUsIDAuMDI1LCAwLjAyMjUiLCBcCi0gICAgICAgICAgIjAuMDY3NSwgMC4wNjI1LCAwLjA1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDI3NSwgMC4wMjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTYyNSwgMC4wNDUsIDAuMDM4NzUsIDAuMDM4NzUsIDAuMDMyNSwgMC4wMjg3NSwgMC4wMjYyNSIsIFwKLSAgICAgICAgICAiMC4wNjEyNSwgMC4wNTYyNSwgMC4wNSwgMC4wNDM3NSwgMC4wNDM3NSwgMC4wMzM3NSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4wNjc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDUsIDAuMDUsIDAuMDQsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiMC4wNzM3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1NjI1LCAwLjA1LCAwLjA0NjI1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjA3Mzc1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDU2MjUsIDAuMDUyNSwgMC4wNSIsIFwKLSAgICAgICAgICAiMC4wODM3NSwgMC4wNzI1LCAwLjA2NjI1LCAwLjA2NjI1LCAwLjA2LCAwLjA1NjI1LCAwLjA1Mzc1IiwgXAotICAgICAgICAgICIwLjA4NjI1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1ODc1LCAwLjA1NjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IE1YNFgxICoKLSAqIC0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChNWDRYMSkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjY4ODAxNDsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjU4ODUzOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDY1NzcwODsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2NTg4NTM7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwODI5LCAwLjAwMDgwNCwgMC4wMDA4MTksIDAuMDAwODYzLCAwLjAwMDkyNCwgMC4wMDEwNDgsIDAuMDAxMTc5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyOTgxLCAwLjAwMjk2NiwgMC4wMDI5OCwgMC4wMDMwMiwgMC4wMDMwOCwgMC4wMDMxOTgsIDAuMDAzMzIiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYyNTE0NjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MjM4NDg7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjI1MTQ2OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDI4NywgMC4wMDAyOSwgMC4wMDAyOSwgMC4wMDAyOTEsIDAuMDAwMjkxLCAwLjAwMDI5MSwgMC4wMDAyOTIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAzMTUsIDAuMDAwMzA0LCAwLjAwMDMwMiwgMC4wMDAzMDEsIDAuMDAwMywgMC4wMDAzLCAwLjAwMDI5OSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQykgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjQ4MTQ4OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDY0Njc1NzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2NDgxNDg7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwOTE1LCAwLjAwMDg5MSwgMC4wMDA5MSwgMC4wMDA5NTgsIDAuMDAxMDI2LCAwLjAwMTE1OSwgMC4wMDEyOTIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDI2MzMsIDAuMDAyNjE2LCAwLjAwMjYyOSwgMC4wMDI2NjYsIDAuMDAyNzIzLCAwLjAwMjg0MiwgMC4wMDI5NjYiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEQpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY4NTIwMTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2ODM5MDU7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjg1MjAxOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDI4OSwgMC4wMDAyOSwgMC4wMDAyOSwgMC4wMDAyOTEsIDAuMDAwMjksIDAuMDAwMjkxLCAwLjAwMDI5MSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDMxNiwgMC4wMDAzMDUsIDAuMDAwMzAzLCAwLjAwMDMwMiwgMC4wMDAzMDEsIDAuMDAwMywgMC4wMDAzIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAyMDkzNDM7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAyMDkzMzY7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAyMDkzNDM7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzY4LCAwLjAwMDM2OSwgMC4wMDA0MzksIDAuMDAwNTM4LCAwLjAwMDY1MSwgMC4wMDA4ODksIDAuMDAxMDc3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzOTM0LCAwLjAwMzk0NSwgMC4wMDM5OTksIDAuMDA0MDg3LCAwLjAwNDE5MywgMC4wMDQzOTksIDAuMDA0NTg1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTMSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxMTk1ODU7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxMTk1ODU7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxMTk1NzI7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMDI0LCAwLjAwMDAzNCwgMC4wMDAxMiwgMC4wMDAyMjQsIDAuMDAwMzY4LCAwLjAwMDU2NSwgMC4wMDA3NjMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDI0NTksIDAuMDAyNDc0LCAwLjAwMjU3MywgMC4wMDI2NiwgMC4wMDI3NjcsIDAuMDAyOTg0LCAwLjAwMzE3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMzQzMzE4OwotICAgIGZ1bmN0aW9uIDogIigoUzEgKChTMCBEKSArICghUzAgQykpKSArICghUzEgKChTMCBCKSArICghUzAgQSkpKSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwMDcwNywgMC4xMjA0NzMsIDAuMjI1NzU5LCAwLjMxNzg0MiwgMC40NDA1NTMsIDAuNjg1ODg4LCAwLjgzOTI0MSIsIFwKLSAgICAgICAgICAiMC4xMDY4NjYsIDAuMTI2Njc2LCAwLjIzMTk0NCwgMC4zMjQwMiwgMC40NDY3MjMsIDAuNjkyMDY3LCAwLjg0NTQxNiIsIFwKLSAgICAgICAgICAiMC4xMTQ2MzcsIDAuMTM0Mzc1LCAwLjIzOTY3MSwgMC4zMzE3MjksIDAuNDU0NDQ5LCAwLjY5OTgxLCAwLjg1MzEyOSIsIFwKLSAgICAgICAgICAiMC4xMjE4OCwgMC4xNDE2NTYsIDAuMjQ2OTYsIDAuMzM5MDMxLCAwLjQ2MTcyOCwgMC43MDcxMDIsIDAuODYwMzk3IiwgXAotICAgICAgICAgICIwLjEyODYzMSwgMC4xNDg0MzIsIDAuMjUzNzI4LCAwLjM0NTc5MSwgMC40Njg0ODUsIDAuNzEzODkzLCAwLjg2NzIwOSIsIFwKLSAgICAgICAgICAiMC4xMzgwOTEsIDAuMTU4MDA1LCAwLjI2MzQxNywgMC4zNTU0NTksIDAuNDc4MTcxLCAwLjcyMzUyMiwgMC44NzY4ODUiLCBcCi0gICAgICAgICAgIjAuMTQ1Mzk3LCAwLjE2NTUyNiwgMC4yNzEwMDUsIDAuMzYzMDQ2LCAwLjQ4NTc1MSwgMC43MzExOTIsIDAuODg0NDQzIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4MDUwMSwgMC4xMTcxNzQsIDAuMzMwOTA1LCAwLjUyMzUyNCwgMC43ODAzNCwgMS4yOTcxNywgMS42MTgyNCIsIFwKLSAgICAgICAgICAiMC4wODA0NywgMC4xMTcxNDgsIDAuMzMwOTE5LCAwLjUyMzUyOSwgMC43ODAyNjgsIDEuMjk3MTcsIDEuNjE4MjUiLCBcCi0gICAgICAgICAgIjAuMDgwNDksIDAuMTE3MTY5LCAwLjMzMDkxMSwgMC41MjI5NzgsIDAuNzgwMjIzLCAxLjI5NzExLCAxLjYxODQyIiwgXAotICAgICAgICAgICIwLjA4MDc1NSwgMC4xMTczNDcsIDAuMzMwOTQ5LCAwLjUyMzU0NywgMC43ODAxNzksIDEuMjk3MSwgMS42MTgyMSIsIFwKLSAgICAgICAgICAiMC4wODExODgsIDAuMTE3NjUxLCAwLjMzMTA1NCwgMC41MjM1OSwgMC43ODA5MDUsIDEuMjk1NDUsIDEuNjE3MDYiLCBcCi0gICAgICAgICAgIjAuMDgxOTU2LCAwLjExODM4MywgMC4zMzEyMzQsIDAuNTIzNDA1LCAwLjc4MDk2NCwgMS4yOTU5OCwgMS42MTcwOCIsIFwKLSAgICAgICAgICAiMC4wODMwMzEsIDAuMTE5MTA4LCAwLjMzMTQ4NCwgMC41MjM2MzYsIDAuNzgwMzkxLCAxLjI5Njk1LCAxLjYxOTYyIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwNzA2OCwgMC4xMjcxOTMsIDAuMjMxNjQxLCAwLjMyMjE5NiwgMC40NDI4MzgsIDAuNjg0MTk5LCAwLjgzNDg5NyIsIFwKLSAgICAgICAgICAiMC4xMTI5NTEsIDAuMTMzMDQyLCAwLjIzNzU1MiwgMC4zMjgxLCAwLjQ0ODc1OSwgMC42OTAxNDcsIDAuODQwODM4IiwgXAotICAgICAgICAgICIwLjExOTkxOCwgMC4xNDAwNTgsIDAuMjQ0NTAyLCAwLjMzNTA0OSwgMC40NTU3MSwgMC42OTcwNzcsIDAuODQ3Nzc2IiwgXAotICAgICAgICAgICIwLjEyNjU2MSwgMC4xNDY3MDEsIDAuMjUxMTM4LCAwLjM0MTY5MywgMC40NjIzNSwgMC43MDM3MzIsIDAuODU0NDI1IiwgXAotICAgICAgICAgICIwLjEzMjY2NiwgMC4xNTI4MzEsIDAuMjU3MzE1LCAwLjM0Nzg2NywgMC40Njg1MjgsIDAuNzA5ODA5LCAwLjg2MDY1NCIsIFwKLSAgICAgICAgICAiMC4xNDEzNzMsIDAuMTYxNTQ1LCAwLjI2NjE5NiwgMC4zNTY3NSwgMC40Nzc0MTIsIDAuNzE4NjkzLCAwLjg2OTQ2NCIsIFwKLSAgICAgICAgICAiMC4xNDc3NzMsIDAuMTY4MjA1LCAwLjI3MjkzNiwgMC4zNjM0NzQsIDAuNDg0MTQ1LCAwLjcyNTQ0NywgMC44NzYzMDIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDgwODg1LCAwLjExNjA3NSwgMC4zMjAzOTUsIDAuNTA1MjM0LCAwLjc1MjU0MSwgMS4yNDk0NiwgMS41NTk4IiwgXAotICAgICAgICAgICIwLjA4MDg3NiwgMC4xMTYxMDEsIDAuMzIwNDQ3LCAwLjUwNTE0OSwgMC43NTI1MzgsIDEuMjQ2OTgsIDEuNTU5ODciLCBcCi0gICAgICAgICAgIjAuMDgwODY4LCAwLjExNjA3LCAwLjMyMDY4NCwgMC41MDUxMjYsIDAuNzUyNTM5LCAxLjI0NjYzLCAxLjU1OTgiLCBcCi0gICAgICAgICAgIjAuMDgxMTEyLCAwLjExNjMwMiwgMC4zMjA0NzUsIDAuNTA1MTc3LCAwLjc1MjU0MSwgMS4yNDY2MSwgMS41NTk4NCIsIFwKLSAgICAgICAgICAiMC4wODE0NSwgMC4xMTY1NSwgMC4zMjA2NTEsIDAuNTA1MjMxLCAwLjc1MTc3MiwgMS4yNDc1NiwgMS41NjAxNCIsIFwKLSAgICAgICAgICAiMC4wODIzNjQsIDAuMTE3Mjk4LCAwLjMyMDg3MSwgMC41MDQ5NzcsIDAuNzUyNjU1LCAxLjI0NzY0LCAxLjU1OTc5IiwgXAotICAgICAgICAgICIwLjA4MzMxMywgMC4xMTgwMjUsIDAuMzIxMzUzLCAwLjUwNTUxNCwgMC43NTI1ODksIDEuMjQ3MDcsIDEuNTU2NjQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTAwODM0LCAwLjEyMDYxLCAwLjIyNTg5OCwgMC4zMTc5ODYsIDAuNDQwNzAxLCAwLjY4NjA0NiwgMC44Mzk0MDgiLCBcCi0gICAgICAgICAgIjAuMTA3MDM4LCAwLjEyNjg1MiwgMC4yMzIxMzUsIDAuMzI0MjE4LCAwLjQ0NjkyNSwgMC42OTIyNzksIDAuODQ1NjQzIiwgXAotICAgICAgICAgICIwLjExNDgxNCwgMC4xMzQ2NDQsIDAuMjM5OTU1LCAwLjMzMjAxNSwgMC40NTQ3MjYsIDAuNzAwMDgxLCAwLjg1MzQ0MyIsIFwKLSAgICAgICAgICAiMC4xMjIyMzksIDAuMTQyMDI0LCAwLjI0NzM0NCwgMC4zMzk0MTQsIDAuNDYyMTI4LCAwLjcwNzUxLCAwLjg2MDgxMSIsIFwKLSAgICAgICAgICAiMC4xMjkwMTIsIDAuMTQ4ODIsIDAuMjU0MTM1LCAwLjM0NjIyLCAwLjQ2ODk3NSwgMC43MTQyODIsIDAuODY3NjEzIiwgXAotICAgICAgICAgICIwLjEzODUxOSwgMC4xNTg0MDUsIDAuMjYzODUzLCAwLjM1NTk1NiwgMC40Nzg2MjIsIDAuNzI0MDAyLCAwLjg3NzI5MyIsIFwKLSAgICAgICAgICAiMC4xNDU5NDcsIDAuMTY2MDQxLCAwLjI3MTQ4NiwgMC4zNjM1NjUsIDAuNDg2Mjk3LCAwLjczMTcwMiwgMC44ODQ5NjEiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDgwNTI0LCAwLjExNzE5OSwgMC4zMzA5NDcsIDAuNTIzNTYxLCAwLjc4MDM2MSwgMS4yOTcyMSwgMS42MTgyMyIsIFwKLSAgICAgICAgICAiMC4wODA0OTIsIDAuMTE3MTcxLCAwLjMzMTE3LCAwLjUyMzU2MiwgMC43ODExMTcsIDEuMjk3MiwgMS42MTgxNSIsIFwKLSAgICAgICAgICAiMC4wODA0NzcsIDAuMTE3MTIyLCAwLjMzMDgxMSwgMC41MjM1NSwgMC43ODExODQsIDEuMjk3MTYsIDEuNjE4MTgiLCBcCi0gICAgICAgICAgIjAuMDgwNzQxLCAwLjExNzI5NSwgMC4zMzA5NzEsIDAuNTIzNDIzLCAwLjc4MDIxNSwgMS4yOTcxMywgMS42MTgyNiIsIFwKLSAgICAgICAgICAiMC4wODEwNDEsIDAuMTE3NTg3LCAwLjMzMTA2MSwgMC41MjM2MDcsIDAuNzc5ODQ2LCAxLjI5NzA0LCAxLjYxODQiLCBcCi0gICAgICAgICAgIjAuMDgxOTU5LCAwLjExODM3MywgMC4zMzEzMzMsIDAuNTIzNzAxLCAwLjc4MTAwNiwgMS4yOTY5OCwgMS42MTk2NSIsIFwKLSAgICAgICAgICAiMC4wODMxMSwgMC4xMTkxMDcsIDAuMzMxNjgzLCAwLjUyMzc0NywgMC43Nzk5MDksIDEuMjk2OTcsIDEuNjE5NjciKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTA3ODA2LCAwLjEyNzk2NCwgMC4yMzI0MDgsIDAuMzIyOTU0LCAwLjQ0MzYwNSwgMC42ODQ5NjYsIDAuODM1NjY0IiwgXAotICAgICAgICAgICIwLjExMzY1NCwgMC4xMzM3NjcsIDAuMjM4MjkyLCAwLjMyODgzMywgMC40NDk0OSwgMC42OTA4NDEsIDAuODQxNjI3IiwgXAotICAgICAgICAgICIwLjEyMDU1MSwgMC4xNDA3MDcsIDAuMjQ1MTg3LCAwLjMzNTczLCAwLjQ1NjM5OCwgMC42OTc3NjYsIDAuODQ4NDYyIiwgXAotICAgICAgICAgICIwLjEyNzIwOCwgMC4xNDczMDMsIDAuMjUxODE2LCAwLjM0MjM2NCwgMC40NjMwMjMsIDAuNzA0NDA5LCAwLjg1NTA5OSIsIFwKLSAgICAgICAgICAiMC4xMzMyMzgsIDAuMTUzNDM1LCAwLjI1NzkxMywgMC4zNDg0NjcsIDAuNDY5MTI5LCAwLjcxMDQxMSwgMC44NjEzMDMiLCBcCi0gICAgICAgICAgIjAuMTQxOTUyLCAwLjE2MjE3NiwgMC4yNjY4MTMsIDAuMzU3MzY2LCAwLjQ3ODAyMiwgMC43MTkzMDIsIDAuODcwMTIxIiwgXAotICAgICAgICAgICIwLjE0ODUwNSwgMC4xNjg5MTEsIDAuMjczNjE1LCAwLjM2NDE3LCAwLjQ4NDgzMywgMC43MjYxMTYsIDAuODc2OTU3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4MDkyOSwgMC4xMTYxOSwgMC4zMjA0MTYsIDAuNTA1MTQxLCAwLjc1MjU0NywgMS4yNDk0NSwgMS41NTk4MSIsIFwKLSAgICAgICAgICAiMC4wODA5MzIsIDAuMTE2MTU3LCAwLjMyMDUwNSwgMC41MDUxNjYsIDAuNzUyNTQ5LCAxLjI0OTQ0LCAxLjU2MDE3IiwgXAotICAgICAgICAgICIwLjA4MDkyMywgMC4xMTYxNjQsIDAuMzIwNTc2LCAwLjUwNTI5OCwgMC43NTI2NzYsIDEuMjQ5NDMsIDEuNTU5ODciLCBcCi0gICAgICAgICAgIjAuMDgxMTQ0LCAwLjExNjI5LCAwLjMyMDQ5NywgMC41MDUxODgsIDAuNzUyNTUzLCAxLjI0NzA2LCAxLjU1OTg1IiwgXAotICAgICAgICAgICIwLjA4MTUyLCAwLjExNjU3MiwgMC4zMjA4LCAwLjUwNTI1NSwgMC43NTI2MTEsIDEuMjQ3NzEsIDEuNTU3MTYiLCBcCi0gICAgICAgICAgIjAuMDgyMzc5LCAwLjExNzM4OCwgMC4zMjEwNzksIDAuNTA0NjI5LCAwLjc1MjY1NiwgMS4yNDc2NSwgMS41NjAwOCIsIFwKLSAgICAgICAgICAiMC4wODM0OTYsIDAuMTE4MDYxLCAwLjMyMTM2OCwgMC41MDU1MjksIDAuNzUyNjUsIDEuMjQ3NjQsIDEuNTYwMDgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk4NTMyLCAwLjExODI2MiwgMC4yMjM0NTcsIDAuMzE1NTM3LCAwLjQzODI3NCwgMC42ODM1OTIsIDAuODM2OTcyIiwgXAotICAgICAgICAgICIwLjEwNDY2NCwgMC4xMjQzNDYsIDAuMjI5NTg1LCAwLjMyMTY2MSwgMC40NDQzNzcsIDAuNjg5NzUxLCAwLjg0MzIwNiIsIFwKLSAgICAgICAgICAiMC4xMTI0MTIsIDAuMTMyMTAzLCAwLjIzNzM0LCAwLjMyOTQxNCwgMC40NTIxMzksIDAuNjk3NDg1LCAwLjg1MDkwMyIsIFwKLSAgICAgICAgICAiMC4xMTk2NjcsIDAuMTM5MzUsIDAuMjQ0NTg4LCAwLjMzNjcwOCwgMC40NTkzOSwgMC43MDQ3NDcsIDAuODU4MDU4IiwgXAotICAgICAgICAgICIwLjEyNjIwNSwgMC4xNDU5NiwgMC4yNTEyMTgsIDAuMzQzMzMzLCAwLjQ2NjEsIDAuNzExNDIzLCAwLjg2NDY4NyIsIFwKLSAgICAgICAgICAiMC4xMzU2NjEsIDAuMTU1NDQ4LCAwLjI2MDgwOSwgMC4zNTI4OTUsIDAuNDc1NjE0LCAwLjcyMTAxNywgMC44NzQyNzYiLCBcCi0gICAgICAgICAgIjAuMTQyODQ0LCAwLjE2Mjg3NywgMC4yNjgyODQsIDAuMzYwMzU2LCAwLjQ4MzEwOCwgMC43Mjg0ODcsIDAuODgxNzYyIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4MDA5MiwgMC4xMTY3ODksIDAuMzMwOTc2LCAwLjUyMzQ0MywgMC43ODAxNiwgMS4yOTcxOCwgMS42MTgxOSIsIFwKLSAgICAgICAgICAiMC4wODAxMTIsIDAuMTE2ODAyLCAwLjMzMDk1NSwgMC41MjI2ODksIDAuNzgwMjQ3LCAxLjI5NzEzLCAxLjYxOTk3IiwgXAotICAgICAgICAgICIwLjA4MDEyOCwgMC4xMTY4MDQsIDAuMzMwOTcxLCAwLjUyMzUsIDAuNzgwMzIzLCAxLjI5NzE1LCAxLjYxOTkiLCBcCi0gICAgICAgICAgIjAuMDgwMzczLCAwLjExNjk4MSwgMC4zMzEwMSwgMC41MjI2MDgsIDAuNzgwMzEsIDEuMjk3MTEsIDEuNjE4MzQiLCBcCi0gICAgICAgICAgIjAuMDgwNzY5LCAwLjExNzI4NCwgMC4zMzExLCAwLjUyMzUxNywgMC43ODA5OTcsIDEuMjk3MDIsIDEuNjE4NDQiLCBcCi0gICAgICAgICAgIjAuMDgxNjMzLCAwLjExODA0MSwgMC4zMzExODcsIDAuNTIyOTY2LCAwLjc4MDE3NiwgMS4yOTY5NSwgMS42MTk3MyIsIFwKLSAgICAgICAgICAiMC4wODI2NjgsIDAuMTE4Njk2LCAwLjMzMTUyLCAwLjUyMzQ1LCAwLjc4MDk1MywgMS4yOTY5MywgMS42MTk2NiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDQ5NDgsIDAuMTI0OTI2LCAwLjIyOTI0MywgMC4zMTk3ODksIDAuNDQwNDMzLCAwLjY4MTcyNSwgMC44MzI1NTciLCBcCi0gICAgICAgICAgIjAuMTEwOTA1LCAwLjEzMDkyMiwgMC4yMzUyMjgsIDAuMzI1Nzg4LCAwLjQ0NjQzNiwgMC42ODc3MjMsIDAuODM4NTciLCBcCi0gICAgICAgICAgIjAuMTE3ODIsIDAuMTM3ODc2LCAwLjI0MjE0NywgMC4zMzI2ODcsIDAuNDUzMzM5LCAwLjY5NDcwMSwgMC44NDU0MDUiLCBcCi0gICAgICAgICAgIjAuMTI0NDQ5LCAwLjE0NDQ2NiwgMC4yNDg3NzQsIDAuMzM5MzMsIDAuNDU5OTc3LCAwLjcwMTI2NywgMC44NTIxMDgiLCBcCi0gICAgICAgICAgIjAuMTMwMzg4LCAwLjE1MDQyOSwgMC4yNTQ3ODQsIDAuMzQ1MzA5LCAwLjQ2NTk2MywgMC43MDczMzcsIDAuODU4MDI1IiwgXAotICAgICAgICAgICIwLjEzODg4MywgMC4xNTkwMTYsIDAuMjYzNDcxLCAwLjM1NDAyMiwgMC40NzQ2NywgMC43MTU5NywgMC44NjY3MjMiLCBcCi0gICAgICAgICAgIjAuMTQ1MjU5LCAwLjE2NTU3OCwgMC4yNzAxNDQsIDAuMzYwNjY0LCAwLjQ4MTMxNCwgMC43MjI1ODUsIDAuODczMzYzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4MDM1OCwgMC4xMTU2MDMsIDAuMzIwMzQ4LCAwLjUwNDk4MywgMC43NTE1OCwgMS4yNDc3NCwgMS41NjAxMSIsIFwKLSAgICAgICAgICAiMC4wODAzNDMsIDAuMTE1NjExLCAwLjMyMDMyMSwgMC41MDQ5OCwgMC43NTE1NzIsIDEuMjQ3NjEsIDEuNTYwMTgiLCBcCi0gICAgICAgICAgIjAuMDgwMzI1LCAwLjExNTYxNywgMC4zMjAzMjgsIDAuNTA0OTgsIDAuNzUyNDQzLCAxLjI0OTA0LCAxLjU1OTgzIiwgXAotICAgICAgICAgICIwLjA4MDU2MywgMC4xMTU2OTUsIDAuMzIwMzg4LCAwLjUwNTAwMSwgMC43NTE1OTEsIDEuMjQ3NjksIDEuNTYwMTYiLCBcCi0gICAgICAgICAgIjAuMDgwOTgzLCAwLjExNjE5LCAwLjMyMDM4LCAwLjUwNTA3NCwgMC43NTI0OTgsIDEuMjQ3MDEsIDEuNTU5ODQiLCBcCi0gICAgICAgICAgIjAuMDgxODczLCAwLjExNjkyNCwgMC4zMjA2NTMsIDAuNTA0NzgxLCAwLjc1MjUzNiwgMS4yNDcwMywgMS41NTk4MSIsIFwKLSAgICAgICAgICAiMC4wODI5MDksIDAuMTE3NTcxLCAwLjMyMTA1OCwgMC41MDUzMiwgMC43NTI0OTMsIDEuMjQ3ODEsIDEuNTU2OTMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk3Njk1LCAwLjExNzM0OCwgMC4yMjI1MzcsIDAuMzE0NiwgMC40MzczMjcsIDAuNjgyNjUxLCAwLjgzNTk5NyIsIFwKLSAgICAgICAgICAiMC4xMDM4NjksIDAuMTIzNTksIDAuMjI4NzY1LCAwLjMyMDgzOSwgMC40NDM1NiwgMC42ODg4NzUsIDAuODQyMjQ1IiwgXAotICAgICAgICAgICIwLjExMTcwNCwgMC4xMzEzNiwgMC4yMzY1NjQsIDAuMzI4NjI5LCAwLjQ1MTM1NSwgMC42OTY2OTcsIDAuODUwMDE4IiwgXAotICAgICAgICAgICIwLjExODg2MiwgMC4xMzg1NDgsIDAuMjQzNzY0LCAwLjMzNTg0NCwgMC40NTg1NjYsIDAuNzAzODg1LCAwLjg1NzIzNSIsIFwKLSAgICAgICAgICAiMC4xMjU1MiwgMC4xNDUyNTcsIDAuMjUwNDg5LCAwLjM0MjU1NywgMC40NjUyNjcsIDAuNzEwNjMzLCAwLjg2MzkxOSIsIFwKLSAgICAgICAgICAiMC4xMzQ5NDUsIDAuMTU0Nzc1LCAwLjI2MDA0LCAwLjM1MjExMiwgMC40NzQ4MjYsIDAuNzIwMjA1LCAwLjg3MzQ2MiIsIFwKLSAgICAgICAgICAiMC4xNDIwNDYsIDAuMTYyMDg1LCAwLjI2NzQ3NSwgMC4zNTk1MzksIDAuNDgyMjQ0LCAwLjcyNzYxNSwgMC44ODA5NTciKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc5OTkyLCAwLjExNjczOSwgMC4zMzA5MDksIDAuNTIzMzQ5LCAwLjc4MDE0NCwgMS4yOTcxNiwgMS42MTgzMyIsIFwKLSAgICAgICAgICAiMC4wNzk5OTYsIDAuMTE2Njk5LCAwLjMzMDkxMiwgMC41MjM0MDUsIDAuNzgwMTI4LCAxLjI5NzE2LCAxLjYxNjg0IiwgXAotICAgICAgICAgICIwLjA4MDAxNCwgMC4xMTY3MTcsIDAuMzMwODk5LCAwLjUyMzI4OCwgMC43ODAyMzQsIDEuMjk3MTEsIDEuNjE4NDMiLCBcCi0gICAgICAgICAgIjAuMDgwMjYyLCAwLjExNjkxOSwgMC4zMzA5NTYsIDAuNTIzNDYyLCAwLjc4MDEzMywgMS4yOTcwOSwgMS42MTgyMyIsIFwKLSAgICAgICAgICAiMC4wODA1ODEsIDAuMTE3MTc1LCAwLjMzMTAzMiwgMC41MjMzNjQsIDAuNzgwMTUsIDEuMjk2OTYsIDEuNjE4MDQiLCBcCi0gICAgICAgICAgIjAuMDgxNTg1LCAwLjExODAyNywgMC4zMzEwNTgsIDAuNTIzMzE1LCAwLjc4MDE3NSwgMS4yOTY5MSwgMS42MTk1MiIsIFwKLSAgICAgICAgICAiMC4wODI2NDcsIDAuMTE4NjksIDAuMzMxNDE4LCAwLjUyMzU2MywgMC43Nzk5ODIsIDEuMjk2ODksIDEuNjE5NjEiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTA0ODUsIDAuMTI0OTIsIDAuMjI5MTcyLCAwLjMxOTcxNCwgMC40NDAzNjksIDAuNjgxNjQ0LCAwLjgzMjQxOCIsIFwKLSAgICAgICAgICAiMC4xMTA1NzMsIDAuMTMwNTYyLCAwLjIzNDg3NywgMC4zMjU0MzQsIDAuNDQ2MDk0LCAwLjY4NzM4LCAwLjgzODE4OCIsIFwKLSAgICAgICAgICAiMC4xMTc0NTQsIDAuMTM3NDY2LCAwLjI0MTc2OSwgMC4zMzIzMjgsIDAuNDUzMDEyLCAwLjY5NDMxMSwgMC44NDUwMTYiLCBcCi0gICAgICAgICAgIjAuMTIzOTk3LCAwLjE0NDAzMywgMC4yNDgzMjEsIDAuMzM4ODU2LCAwLjQ1OTUxMiwgMC43MDA4NzMsIDAuODUxNTY4IiwgXAotICAgICAgICAgICIwLjEyOTk1OSwgMC4xNTAwMjMsIDAuMjU0MzM5LCAwLjM0NDg3NCwgMC40NjU1MjQsIDAuNzA2OSwgMC44NTc1ODgiLCBcCi0gICAgICAgICAgIjAuMTM4MzYxLCAwLjE1ODQzMSwgMC4yNjI5MjIsIDAuMzUzNDgsIDAuNDc0MTI2LCAwLjcxNTQxNywgMC44NjYxOTgiLCBcCi0gICAgICAgICAgIjAuMTQ0NjQ4LCAwLjE2NTAzNSwgMC4yNjk1ODcsIDAuMzYwMTEzLCAwLjQ4MDgwNSwgMC43MjIwMzcsIDAuODcyNzk2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4MDMwMywgMC4xMTU2MDIsIDAuMzIwMTU1LCAwLjUwNDk3OCwgMC43NTI0NTUsIDEuMjQ3NiwgMS41NTc4MiIsIFwKLSAgICAgICAgICAiMC4wODAzMjksIDAuMTE1NTY0LCAwLjMyMDMxNCwgMC41MDQ5NzYsIDAuNzUxNjcyLCAxLjI0Nzc2LCAxLjU2MDAyIiwgXAotICAgICAgICAgICIwLjA4MDMzNiwgMC4xMTU1ODQsIDAuMzIwMzI0LCAwLjUwNDk3MiwgMC43NTI1OSwgMS4yNDkzMSwgMS41NTk3MiIsIFwKLSAgICAgICAgICAiMC4wODA1NjIsIDAuMTE1Nzg1LCAwLjMyMDMxMSwgMC41MDQ5NTcsIDAuNzUyNDQ1LCAxLjI0NjYsIDEuNTU5NzciLCBcCi0gICAgICAgICAgIjAuMDgwOTE2LCAwLjExNjA5MywgMC4zMjA1MzQsIDAuNTA0Mjk2LCAwLjc1MjQ5MSwgMS4yNDY4NSwgMS41NTk4MiIsIFwKLSAgICAgICAgICAiMC4wODE4NDYsIDAuMTE2ODQ5LCAwLjMyMDYzMywgMC41MDQ0MTgsIDAuNzUyNDEzLCAxLjI0Njc2LCAxLjU1OTkxIiwgXAotICAgICAgICAgICIwLjA4MjgzNSwgMC4xMTc1NjIsIDAuMzIxMTI1LCAwLjUwNTMwNSwgMC43NTI3MSwgMS4yNDc3MiwgMS41NTc2OCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk2NjQ3LCAwLjExNjQ1OCwgMC4yMjE3NDEsIDAuMzEzODE1LCAwLjQzNjU0NCwgMC42ODE4NzMsIDAuODM1MjUxIiwgXAotICAgICAgICAgICIwLjEwNDA4NSwgMC4xMjM4NjUsIDAuMjI5MTcxLCAwLjMyMTIzOCwgMC40NDM5NTQsIDAuNjg5MzY3LCAwLjg0MjY3IiwgXAotICAgICAgICAgICIwLjExMzY4MywgMC4xMzM0NDcsIDAuMjM4NzcyLCAwLjMzMDgzMiwgMC40NTM1NjYsIDAuNjk4OTM4LCAwLjg1MjI1MiIsIFwKLSAgICAgICAgICAiMC4xMjI5MzMsIDAuMTQyNzk0LCAwLjI0ODA2NywgMC4zNDAxNDgsIDAuNDYyOTA2LCAwLjcwODIxMSwgMC44NjE1NTEiLCBcCi0gICAgICAgICAgIjAuMTMxMjg3LCAwLjE1MTEyNywgMC4yNTY0NTMsIDAuMzQ4NTQ0LCAwLjQ3MTM3OCwgMC43MTY2MzUsIDAuODY5OTg2IiwgXAotICAgICAgICAgICIwLjE0Mjg2OCwgMC4xNjI4MjUsIDAuMjY4MjIxLCAwLjM2MDMwNiwgMC40ODI5ODksIDAuNzI4NDI5LCAwLjg4MTY5NCIsIFwKLSAgICAgICAgICAiMC4xNTE1OTgsIDAuMTcxODI2LCAwLjI3NzE5OSwgMC4zNjkzNDgsIDAuNDkyMDcxLCAwLjczNzM1NCwgMC44OTA4MjYiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDgwNDYyLCAwLjExNzE3LCAwLjMzMTE4NCwgMC41MjM1MDMsIDAuNzgxMjM0LCAxLjI5NzI2LCAxLjYxOTc4IiwgXAotICAgICAgICAgICIwLjA4MDQ3MiwgMC4xMTcxMDYsIDAuMzMxMTUsIDAuNTIzNTcsIDAuNzgxMiwgMS4yOTcyLCAxLjYxOTkyIiwgXAotICAgICAgICAgICIwLjA4MDUwNCwgMC4xMTcxOTgsIDAuMzMwOTU1LCAwLjUyMzYyNywgMC43ODA5NzIsIDEuMjk3MTgsIDEuNjE4NTMiLCBcCi0gICAgICAgICAgIjAuMDgwNzgzLCAwLjExNzM5NSwgMC4zMzEyMTcsIDAuNTIzNjA3LCAwLjc4MTE2NSwgMS4yOTcxNywgMS42MTk5NCIsIFwKLSAgICAgICAgICAiMC4wODEyODEsIDAuMTE3NzM5LCAwLjMzMTA5MSwgMC41MjM2MzIsIDAuNzgwOTY4LCAxLjI5NzA3LCAxLjYxOTc2IiwgXAotICAgICAgICAgICIwLjA4MjU5NiwgMC4xMTg3ODksIDAuMzMxNDIsIDAuNTIzNzk3LCAwLjc4MTAwNCwgMS4yOTcwOCwgMS42MTk1NSIsIFwKLSAgICAgICAgICAiMC4wODQwMzksIDAuMTE5ODM4LCAwLjMzMTkzMiwgMC41MjM5MzIsIDAuNzgxMjUxLCAxLjI5NzEyLCAxLjYxOTc2Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwMjY1OSwgMC4xMjI3OTcsIDAuMjI3MjYxLCAwLjMxNzgyNSwgMC40Mzg0NjEsIDAuNjc5ODQsIDAuODMwNjA5IiwgXAotICAgICAgICAgICIwLjExMDAwNSwgMC4xMzAxMDgsIDAuMjM0NTksIDAuMzI1MTU4LCAwLjQ0NTg2NSwgMC42ODcxMTksIDAuODM3ODQ2IiwgXAotICAgICAgICAgICIwLjExOTQ4OSwgMC4xMzk2MTMsIDAuMjQ0MDg0LCAwLjMzNDY0LCAwLjQ1NTI5MiwgMC42OTY2NTUsIDAuODQ3MzU1IiwgXAotICAgICAgICAgICIwLjEyODY3MSwgMC4xNDg4MTcsIDAuMjUzMjYyLCAwLjM0MzgxMiwgMC40NjQ0NzMsIDAuNzA1ODYsIDAuODU2NTUyIiwgXAotICAgICAgICAgICIwLjEzNjk1MiwgMC4xNTcwOTksIDAuMjYxNTY2LCAwLjM1MjEyOSwgMC40NzI4MTQsIDAuNzE0MTI5LCAwLjg2NDgyNiIsIFwKLSAgICAgICAgICAiMC4xNDg0MTUsIDAuMTY4Njg4LCAwLjI3MzI5MSwgMC4zNjM4NTIsIDAuNDg0NTA4LCAwLjcyNTgxLCAwLjg3NjU5NiIsIFwKLSAgICAgICAgICAiMC4xNTcxMDYsIDAuMTc3NTExLCAwLjI4MjM0LCAwLjM3Mjg0MiwgMC40OTM1MTYsIDAuNzM0ODQ1LCAwLjg4NTY0NSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODA4MzQsIDAuMTE2MDY4LCAwLjMyMDQ3OSwgMC41MDUxNiwgMC43NTI1NTMsIDEuMjQ5NDQsIDEuNTYwMDUiLCBcCi0gICAgICAgICAgIjAuMDgwODM4LCAwLjExNjEwNywgMC4zMjA2MzEsIDAuNTA1MTc2LCAwLjc1Mjc1NywgMS4yNDk0MiwgMS41NTk4OCIsIFwKLSAgICAgICAgICAiMC4wODA4OCwgMC4xMTYxNDEsIDAuMzIwNjg2LCAwLjUwNTI1MiwgMC43NTI1NTQsIDEuMjQ5NCwgMS41NTk4MyIsIFwKLSAgICAgICAgICAiMC4wODEwODIsIDAuMTE2Mjc1LCAwLjMyMDcyMSwgMC41MDUxNzksIDAuNzUyNjk0LCAxLjI0OTQyLCAxLjU2MDAyIiwgXAotICAgICAgICAgICIwLjA4MTgyOCwgMC4xMTY2NDUsIDAuMzIwODQ2LCAwLjUwNTIzLCAwLjc1MjY4MiwgMS4yNDk0LCAxLjU1OTg2IiwgXAotICAgICAgICAgICIwLjA4Mjg3MSwgMC4xMTc2NjksIDAuMzIxMTgsIDAuNTA1NDMxLCAwLjc1Mjc4MSwgMS4yNDkyNCwgMS41NjAxMSIsIFwKLSAgICAgICAgICAiMC4wODM5NTYsIDAuMTE4NjMxLCAwLjMyMTUwNywgMC41MDU2MjIsIDAuNzUyOTM1LCAxLjI0ODc1LCAxLjU1OTk5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlMwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTYxMDQsIDAuMTM1ODc0LCAwLjI0MTE2OCwgMC4zMzMyMywgMC40NTU5MywgMC43MDE0MDgsIDAuODU0NzU4IiwgXAotICAgICAgICAgICIwLjEyNDA1MiwgMC4xNDM4MywgMC4yNDkxMjMsIDAuMzQxMTc1LCAwLjQ2Mzg5LCAwLjcwOTI4NCwgMC44NjI2MzgiLCBcCi0gICAgICAgICAgIjAuMTMyMTczLCAwLjE1MTk4LCAwLjI1NzI0NiwgMC4zNDkzMjQsIDAuNDcyMDMsIDAuNzE3MzcyLCAwLjg3MDcyNSIsIFwKLSAgICAgICAgICAiMC4xMzgyODEsIDAuMTU4MDM3LCAwLjI2MzQ1MSwgMC4zNTU1MjEsIDAuNDc4MjMxLCAwLjcyMzU3LCAwLjg3NjkyMiIsIFwKLSAgICAgICAgICAiMC4xNDMwOTgsIDAuMTYyODgsIDAuMjY4MTY0LCAwLjM2MDI0NCwgMC40ODI5NDcsIDAuNzI4MzAyLCAwLjg4MTYxNiIsIFwKLSAgICAgICAgICAiMC4xNDkyOTEsIDAuMTY5MDkyLCAwLjI3NDUwNCwgMC4zNjY1NjMsIDAuNDg5MjU2LCAwLjczNDY1OSwgMC44ODc5MjQiLCBcCi0gICAgICAgICAgIjAuMTUzOTMyLCAwLjE3Mzc0NCwgMC4yNzkxNjIsIDAuMzcxMjI5LCAwLjQ5Mzk0NywgMC43MzkzMTEsIDAuODkyNjMyIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4MDQ5MSwgMC4xMTcxNjUsIDAuMzMxMTE5LCAwLjUyMzU5NCwgMC43ODExNDYsIDEuMjk3MTUsIDEuNjE5OTUiLCBcCi0gICAgICAgICAgIjAuMDgwNDg4LCAwLjExNzE2MSwgMC4zMzExNDksIDAuNTIzNjA3LCAwLjc4MTEwOCwgMS4yOTcxOCwgMS42MTk5MiIsIFwKLSAgICAgICAgICAiMC4wODA0OTIsIDAuMTE3MTY1LCAwLjMzMDk3MiwgMC41MjM2MDUsIDAuNzgwMjk1LCAxLjI5NzE1LCAxLjYxOTkzIiwgXAotICAgICAgICAgICIwLjA4MDQ3NCwgMC4xMTcxNjEsIDAuMzMwOTY4LCAwLjUyMzU3MywgMC43ODExMzksIDEuMjk3MTQsIDEuNjE4NTMiLCBcCi0gICAgICAgICAgIjAuMDgwNTk4LCAwLjExNzI2NiwgMC4zMzEyMDcsIDAuNTIzNTcyLCAwLjc4MTA3NSwgMS4yOTcxLCAxLjYxOTgyIiwgXAotICAgICAgICAgICIwLjA4MDUzLCAwLjExNzI5MywgMC4zMzExNjQsIDAuNTIzNDYyLCAwLjc4MDg1NywgMS4yOTY5NCwgMS42MTk2NyIsIFwKLSAgICAgICAgICAiMC4wODA2NzgsIDAuMTE3MjE5LCAwLjMzMTE4MywgMC41MjMzOTMsIDAuNzgwODY1LCAxLjI5Njg4LCAxLjYxOTU1Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExOTg5NiwgMC4xNDAwODgsIDAuMjQ0NTIsIDAuMzM1MDc2LCAwLjQ1NTczNSwgMC42OTcxMjMsIDAuODQ3ODEzIiwgXAotICAgICAgICAgICIwLjEyNzk5NCwgMC4xNDgxMDEsIDAuMjUyNiwgMC4zNDMxNTYsIDAuNDYzODA5LCAwLjcwNTA5NywgMC44NTU5NjIiLCBcCi0gICAgICAgICAgIjAuMTM2MjY1LCAwLjE1NjQwNywgMC4yNjA4ODIsIDAuMzUxNDM0LCAwLjQ3MjExMiwgMC43MTM0MzksIDAuODY0MTM5IiwgXAotICAgICAgICAgICIwLjE0MjU1MywgMC4xNjI2OTIsIDAuMjY3MTcsIDAuMzU3NzIxLCAwLjQ3ODQwMywgMC43MTk3MjYsIDAuODcwNDI2IiwgXAotICAgICAgICAgICIwLjE0NzU0MywgMC4xNjc3MTUsIDAuMjcyMTY3LCAwLjM2MjcyMywgMC40ODMzODQsIDAuNzI0NzA4LCAwLjg3NTQ2NCIsIFwKLSAgICAgICAgICAiMC4xNTQwMTcsIDAuMTc0MTY5LCAwLjI3ODc0LCAwLjM2OTI5MiwgMC40ODk5NDksIDAuNzMxMjMyLCAwLjg4MjA0MSIsIFwKLSAgICAgICAgICAiMC4xNTkxNTIsIDAuMTc5Mjc4LCAwLjI4Mzg0MywgMC4zNzQ0MiwgMC40OTUwODgsIDAuNzM2MzYzLCAwLjg4NzEwNiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODA5MzUsIDAuMTE2MTkyLCAwLjMyMDUzNCwgMC41MDUyMDYsIDAuNzUyNTgyLCAxLjI0OTUxLCAxLjU2MDI4IiwgXAotICAgICAgICAgICIwLjA4MDk0MSwgMC4xMTYxODIsIDAuMzIwNjcxLCAwLjUwNTE4OCwgMC43NTI2MjQsIDEuMjQ5NDMsIDEuNTYwMjMiLCBcCi0gICAgICAgICAgIjAuMDgwOTM0LCAwLjExNjE4MiwgMC4zMjA0OTksIDAuNTA1MTc0LCAwLjc1MjY3OSwgMS4yNDk0MywgMS41NjAyNSIsIFwKLSAgICAgICAgICAiMC4wODA5MTYsIDAuMTE2MTcyLCAwLjMyMDY4NCwgMC41MDUxNzUsIDAuNzUyNjg4LCAxLjI0OTQyLCAxLjU1OTg0IiwgXAotICAgICAgICAgICIwLjA4MTAwNCwgMC4xMTYyNTEsIDAuMzIwNzM4LCAwLjUwNTE5MiwgMC43NTI1NjIsIDEuMjQ5MTksIDEuNTU5ODgiLCBcCi0gICAgICAgICAgIjAuMDgwOTY3LCAwLjExNjIyMSwgMC4zMjA2NDIsIDAuNTA1MjAzLCAwLjc1MjQ1NywgMS4yNDkxNSwgMS41NjAwMyIsIFwKLSAgICAgICAgICAiMC4wODA5MDIsIDAuMTE2MTUxLCAwLjMyMDgxMSwgMC41MDUwMjgsIDAuNzUyMzA3LCAxLjI0ODg3LCAxLjU1ODEyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlMxIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzEzMzgsIDAuMDkwOTA3LCAwLjE5NTkyOCwgMC4yODc5MzcsIDAuNDEwNjQxLCAwLjY1NjE2NiwgMC44MDk4ODciLCBcCi0gICAgICAgICAgIjAuMDc5MDE1LCAwLjA5ODU3MSwgMC4yMDM1ODUsIDAuMjk1NjI1LCAwLjQxODMxOCwgMC42NjQwNzMsIDAuODE3MDg1IiwgXAotICAgICAgICAgICIwLjA4ODE1NywgMC4xMDc3NDIsIDAuMjEyNzMsIDAuMzA0NzM4LCAwLjQyNzQ0NywgMC42NzI4MjcsIDAuODI2MjM2IiwgXAotICAgICAgICAgICIwLjA5NTg1NiwgMC4xMTU0NjYsIDAuMjIwNDc0LCAwLjMxMjQ3NiwgMC40MzUxNjIsIDAuNjgwNTUsIDAuODMzOTQ1IiwgXAotICAgICAgICAgICIwLjEwMjIzMiwgMC4xMjE4NjUsIDAuMjI2OTUyLCAwLjMxODk0NiwgMC40NDE2MTcsIDAuNjg3NDQ2LCAwLjg0MDQwMiIsIFwKLSAgICAgICAgICAiMC4xMTEwMzUsIDAuMTMwNzM0LCAwLjIzNTkyOCwgMC4zMjc5MjIsIDAuNDUwNTk3LCAwLjY5NjAzOSwgMC44NDk0MDUiLCBcCi0gICAgICAgICAgIjAuMTE3NjU1LCAwLjEzNzQwNCwgMC4yNDI3MDgsIDAuMzM0NjgsIDAuNDU3MzM5LCAwLjcwMjg5NiwgMC44NTY0NzQiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc5MjM5LCAwLjExNjE4NiwgMC4zMzA2NTMsIDAuNTIzMTAxLCAwLjc3OTk3OCwgMS4yOTQ4OCwgMS42MTc2NSIsIFwKLSAgICAgICAgICAiMC4wNzkwODEsIDAuMTE2MDc0LCAwLjMzMDM3NSwgMC41MjMyMjYsIDAuNzc5NDA4LCAxLjI5NTM0LCAxLjYxNzI5IiwgXAotICAgICAgICAgICIwLjA3OTAwNSwgMC4xMTYwMDUsIDAuMzMwNTg2LCAwLjUyMzAzLCAwLjc3OTkyMiwgMS4yOTczOSwgMS42MTcyOSIsIFwKLSAgICAgICAgICAiMC4wNzk0MDQsIDAuMTE2Mjc1LCAwLjMzMDY4NCwgMC41MjMwNzksIDAuNzgwMDQ5LCAxLjI5NzI2LCAxLjYxOTQzIiwgXAotICAgICAgICAgICIwLjA3OTk2OCwgMC4xMTY3MjIsIDAuMzMwODc2LCAwLjUyMzI3NCwgMC43ODAwNzMsIDEuMjk0OTksIDEuNjE3MyIsIFwKLSAgICAgICAgICAiMC4wODEzMzEsIDAuMTE3NTE3LCAwLjMzMTAwMiwgMC41MjM0OTQsIDAuNzgxMDA0LCAxLjI5NiwgMS42MTcyOCIsIFwKLSAgICAgICAgICAiMC4wODIyNDEsIDAuMTE4NDE1LCAwLjMzMTMxNSwgMC41MjM1NDEsIDAuNzgwMSwgMS4yOTUyNiwgMS42MjAxNiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzYxNjMsIDAuMDk2MTIxLCAwLjIwMDQxNCwgMC4yOTA5MTksIDAuNDExNTM0LCAwLjY1Mjg0MSwgMC44MDM3OTMiLCBcCi0gICAgICAgICAgIjAuMDgzNjA1LCAwLjEwMzU4LCAwLjIwNzg1MywgMC4yOTgzNTksIDAuNDE5MDE5LCAwLjY2MDI4MSwgMC44MTEwNzkiLCBcCi0gICAgICAgICAgIjAuMDkyNTk1LCAwLjExMjU3MSwgMC4yMTY4NSwgMC4zMDczNTksIDAuNDI3OTc0LCAwLjY2OTI4NSwgMC44MjAyNTEiLCBcCi0gICAgICAgICAgIjAuMTAwMzY0LCAwLjEyMDM0OCwgMC4yMjQ2MjMsIDAuMzE1MTMsIDAuNDM1NzQ5LCAwLjY3NzA1NSwgMC44MjgwMTUiLCBcCi0gICAgICAgICAgIjAuMTA2ODg2LCAwLjEyNjg5MywgMC4yMzEyNTEsIDAuMzIxNzcxLCAwLjQ0MjM3NywgMC42ODM3MTMsIDAuODM0NTg0IiwgXAotICAgICAgICAgICIwLjExNTcwMywgMC4xMzU4MTcsIDAuMjQwMzMxLCAwLjMzMDg0NCwgMC40NTE0ODEsIDAuNjkyODM2LCAwLjg0MzU0NCIsIFwKLSAgICAgICAgICAiMC4xMjI1MTMsIDAuMTQyNTc2LCAwLjI0NzI4OCwgMC4zMzc3ODksIDAuNDU4Mzk1LCAwLjY5OTkxNiwgMC44NTA0NzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc5NzYxLCAwLjExNTI1NSwgMC4zMjAwOTgsIDAuNTA0ODk0LCAwLjc1MjMxMSwgMS4yNDkyMSwgMS41NTgxMyIsIFwKLSAgICAgICAgICAiMC4wNzk1NjEsIDAuMTE1MTUsIDAuMzIwMDc1LCAwLjUwNDg3NywgMC43NTI1MjEsIDEuMjQ5MiwgMS41NTk1MSIsIFwKLSAgICAgICAgICAiMC4wNzkyOTcsIDAuMTE0OTI4LCAwLjMyMDAzMiwgMC41MDQ4OTEsIDAuNzUyMjksIDEuMjQ5MjEsIDEuNTU4NDIiLCBcCi0gICAgICAgICAgIjAuMDc5NTQ5LCAwLjExNTEwNCwgMC4zMjAwMTcsIDAuNTA0ODg5LCAwLjc1MjMxLCAxLjI0OTI1LCAxLjU1ODEyIiwgXAotICAgICAgICAgICIwLjA4MDAwOCwgMC4xMTU0NjEsIDAuMzIwMjcsIDAuNTA1MDc3LCAwLjc1MjM2MywgMS4yNDkyOSwgMS41NTc5NiIsIFwKLSAgICAgICAgICAiMC4wODEwMDQsIDAuMTE2MTM2LCAwLjMyMDc5MSwgMC41MDUzNzYsIDAuNzUyNzM5LCAxLjI0NjQ4LCAxLjU1OTU1IiwgXAotICAgICAgICAgICIwLjA4MTc5NywgMC4xMTY4NjQsIDAuMzIxMDk5LCAwLjUwNTUwOCwgMC43NTI2NTgsIDEuMjQ3MTcsIDEuNTU5OTkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUzEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3Njk4MSwgMC4wOTY2NTUsIDAuMjAxODE3LCAwLjI5Mzg0NSwgMC40MTY1NDMsIDAuNjYyMDMyLCAwLjgxNTM5IiwgXAotICAgICAgICAgICIwLjA4NTE0NCwgMC4xMDQ4MjUsIDAuMjA5OTkzLCAwLjMwMjAyNSwgMC40MjQ3MjgsIDAuNjcwNTEsIDAuODIzNTIzIiwgXAotICAgICAgICAgICIwLjA5MzY4MywgMC4xMTMzNTgsIDAuMjE4NTE0LCAwLjMxMDU3MiwgMC40MzMyNDYsIDAuNjc5MTE2LCAwLjgzMjU4NiIsIFwKLSAgICAgICAgICAiMC4wOTkyNTksIDAuMTE4OTQ2LCAwLjIyNDA3OCwgMC4zMTYxMiwgMC40Mzg4NzksIDAuNjg0NTAxLCAwLjgzODI2MyIsIFwKLSAgICAgICAgICAiMC4xMDM0OTYsIDAuMTIzMDM4LCAwLjIyODE4MiwgMC4zMjAyMTEsIDAuNDQyOTMyLCAwLjY4ODY1MywgMC44NDE3IiwgXAotICAgICAgICAgICIwLjEwOTAwOSwgMC4xMjg1OTYsIDAuMjMzNTc4LCAwLjMyNTYzNywgMC40NDgyOCwgMC42OTM5MSwgMC44NDcxOTciLCBcCi0gICAgICAgICAgIjAuMTEyOTYxLCAwLjEzMjU1MiwgMC4yMzc0NDQsIDAuMzI5NDg4LCAwLjQ1MjIyMSwgMC42OTc2NzIsIDAuODUxNzQxIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3OTUwNSwgMC4xMTY0ODQsIDAuMzMwNjA3LCAwLjUyMzM2NywgMC43ODAxMjksIDEuMjk0NTIsIDEuNjE3MjkiLCBcCi0gICAgICAgICAgIjAuMDc5NTEyLCAwLjExNjQ1MywgMC4zMzA2MjIsIDAuNTIzMTkyLCAwLjc4MTAxNiwgMS4yOTUzNiwgMS42MTczMSIsIFwKLSAgICAgICAgICAiMC4wNzkyNjYsIDAuMTE2MzAxLCAwLjMzMDU1NSwgMC41MjMzMzQsIDAuNzgwMTMyLCAxLjI5NTQ4LCAxLjYxODA3IiwgXAotICAgICAgICAgICIwLjA3OTEwMSwgMC4xMTYxMzQsIDAuMzMwNzg5LCAwLjUyMzEzMiwgMC43ODA5MjksIDEuMjk2NTIsIDEuNjE4NjciLCBcCi0gICAgICAgICAgIjAuMDc4OTY3LCAwLjExNjAxMiwgMC4zMzA0MiwgMC41MjMyMzUsIDAuNzc5ODQyLCAxLjI5NTM1LCAxLjYxOTI5IiwgXAotICAgICAgICAgICIwLjA3OTA3NywgMC4xMTU4MzYsIDAuMzMwNTc0LCAwLjUyMzE2NywgMC43ODAwMTQsIDEuMjk1MjIsIDEuNjE5MjMiLCBcCi0gICAgICAgICAgIjAuMDc5MDg4LCAwLjExNjAxNCwgMC4zMzA1MTUsIDAuNTIzMDc0LCAwLjc3OTYxOSwgMS4yOTY0NywgMS42MTgxNyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODA1OSwgMC4xMDA1MjksIDAuMjA0NzMxLCAwLjI5NTIzOSwgMC40MTU5MDUsIDAuNjU3MTU3LCAwLjgwNzk5NCIsIFwKLSAgICAgICAgICAiMC4wODkwNzEsIDAuMTA5MDE5LCAwLjIxMzIxOCwgMC4zMDM3MjMsIDAuNDI0MzUxLCAwLjY2NTY2MiwgMC44MTY4NiIsIFwKLSAgICAgICAgICAiMC4wOTc4ODEsIDAuMTE3Nzc1LCAwLjIyMTk4NCwgMC4zMTI0ODgsIDAuNDMzMTIzLCAwLjY3NDQzNiwgMC44MjU0MjciLCBcCi0gICAgICAgICAgIjAuMTAzODQ2LCAwLjEyMzc0MiwgMC4yMjc5MjMsIDAuMzE4NDMyLCAwLjQzOTA2OCwgMC42ODAzODksIDAuODMxNDA1IiwgXAotICAgICAgICAgICIwLjEwODI5OCwgMC4xMjgxNTIsIDAuMjMyMzIxLCAwLjMyMjgzNywgMC40NDM0NjUsIDAuNjg0NzgyLCAwLjgzNjAwNyIsIFwKLSAgICAgICAgICAiMC4xMTQyMDYsIDAuMTM0MDE2LCAwLjIzODA2NSwgMC4zMjg1NywgMC40NDkyMjEsIDAuNjkwNTEyLCAwLjg0MTcyIiwgXAotICAgICAgICAgICIwLjExODU1NCwgMC4xMzgzNjcsIDAuMjQyMzIyLCAwLjMzMjg1LCAwLjQ1MzQ3MSwgMC42OTQ4NDMsIDAuODQ1ODExIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3OTY1MiwgMC4xMTUwODEsIDAuMzE5ODQ2LCAwLjUwNDgwNSwgMC43NTI1MTgsIDEuMjQ5MjMsIDEuNTU5NzEiLCBcCi0gICAgICAgICAgIjAuMDc5NTkxLCAwLjExNTAxOSwgMC4zMjAwNSwgMC41MDQ2OTEsIDAuNzUyMTM4LCAxLjI0OTIyLCAxLjU1NzM2IiwgXAotICAgICAgICAgICIwLjA3OTMwMywgMC4xMTQ4MjksIDAuMzE5OTc2LCAwLjUwNDcyNiwgMC43NTIyNTEsIDEuMjQ5MjIsIDEuNTU3MjUiLCBcCi0gICAgICAgICAgIjAuMDc5MDkzLCAwLjExNDYzNiwgMC4zMTk2OTMsIDAuNTA0NjYyLCAwLjc1MjEyMywgMS4yNDkyMSwgMS41NTcyIiwgXAotICAgICAgICAgICIwLjA3ODk3NywgMC4xMTQ0ODcsIDAuMzE5OTg1LCAwLjUwNDY2NiwgMC43NTIwOTcsIDEuMjQ5MiwgMS41NTc0NiIsIFwKLSAgICAgICAgICAiMC4wNzg5MzgsIDAuMTE0MzI2LCAwLjMxOTU2NiwgMC41MDQ1MTEsIDAuNzUxMjY5LCAxLjI0OTE2LCAxLjU1Njg5IiwgXAotICAgICAgICAgICIwLjA3ODkzMiwgMC4xMTQzNjksIDAuMzE5NjMyLCAwLjUwNDQ2MSwgMC43NTE5NTYsIDEuMjQ2NDMsIDEuNTU2OTUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI5MzgsIDAuMDAyOTQyLCAwLjAwMjk1NCwgMC4wMDI5NTgsIDAuMDAyOTU5LCAwLjAwMjk2MSwgMC4wMDI5NjIiLCBcCi0gICAgICAgICAgIjAuMDAyOTE1LCAwLjAwMjkyLCAwLjAwMjkzNCwgMC4wMDI5MzcsIDAuMDAyOTM5LCAwLjAwMjk0MywgMC4wMDI5NDIiLCBcCi0gICAgICAgICAgIjAuMDAyOTIzLCAwLjAwMjkyNywgMC4wMDI5NDIsIDAuMDAyOTQ2LCAwLjAwMjk0OSwgMC4wMDI5NTEsIDAuMDAyOTUyIiwgXAotICAgICAgICAgICIwLjAwMjk2MiwgMC4wMDI5NjQsIDAuMDAyOTc1LCAwLjAwMjk3OSwgMC4wMDI5ODEsIDAuMDAyOTg0LCAwLjAwMjk4NSIsIFwKLSAgICAgICAgICAiMC4wMDMwMjEsIDAuMDAzMDE3LCAwLjAwMzAyMywgMC4wMDMwMjcsIDAuMDAzMDI5LCAwLjAwMzAzLCAwLjAwMzAzMSIsIFwKLSAgICAgICAgICAiMC4wMDMxMTMsIDAuMDAzMTA5LCAwLjAwMzExNSwgMC4wMDMxMTksIDAuMDAzMTIyLCAwLjAwMzEyNSwgMC4wMDMxMjYiLCBcCi0gICAgICAgICAgIjAuMDAzMjIyLCAwLjAwMzIxNSwgMC4wMDMyMTUsIDAuMDAzMjE4LCAwLjAwMzIyMSwgMC4wMDMyMjQsIDAuMDAzMjI0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2MTA0LCAwLjAwNjEwOCwgMC4wMDYxMjEsIDAuMDA2MTI1LCAwLjAwNjEyOCwgMC4wMDYxMywgMC4wMDYxMzEiLCBcCi0gICAgICAgICAgIjAuMDA2MDg5LCAwLjAwNjA5MywgMC4wMDYxMDksIDAuMDA2MTEzLCAwLjAwNjExNiwgMC4wMDYxMTgsIDAuMDA2MTE5IiwgXAotICAgICAgICAgICIwLjAwNjA5NiwgMC4wMDYxMDEsIDAuMDA2MTE3LCAwLjAwNjEyMiwgMC4wMDYxMjUsIDAuMDA2MTI4LCAwLjAwNjEyOSIsIFwKLSAgICAgICAgICAiMC4wMDYxMzQsIDAuMDA2MTM0LCAwLjAwNjE0NiwgMC4wMDYxNTEsIDAuMDA2MTU0LCAwLjAwNjE1NiwgMC4wMDYxNTciLCBcCi0gICAgICAgICAgIjAuMDA2MTg0LCAwLjAwNjE4LCAwLjAwNjE5LCAwLjAwNjE5NSwgMC4wMDYxOTgsIDAuMDA2MiwgMC4wMDYyMDEiLCBcCi0gICAgICAgICAgIjAuMDA2Mjg1LCAwLjAwNjI3OSwgMC4wMDYyODIsIDAuMDA2Mjg2LCAwLjAwNjI4OCwgMC4wMDYyOTEsIDAuMDA2MjkyIiwgXAotICAgICAgICAgICIwLjAwNjM4MywgMC4wMDYzNzQsIDAuMDA2MzczLCAwLjAwNjM3OCwgMC4wMDYzODEsIDAuMDA2MzgzLCAwLjAwNjM4NCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjc3OSwgMC4wMDI3ODMsIDAuMDAyNzk0LCAwLjAwMjc5OSwgMC4wMDI4LCAwLjAwMjgwMSwgMC4wMDI4MDIiLCBcCi0gICAgICAgICAgIjAuMDAyNzU2LCAwLjAwMjc2MSwgMC4wMDI3NzQsIDAuMDAyNzc3LCAwLjAwMjc4LCAwLjAwMjc4MywgMC4wMDI3ODMiLCBcCi0gICAgICAgICAgIjAuMDAyNzYxLCAwLjAwMjc2NiwgMC4wMDI3ODEsIDAuMDAyNzg2LCAwLjAwMjc4OSwgMC4wMDI3OTEsIDAuMDAyNzkyIiwgXAotICAgICAgICAgICIwLjAwMjgsIDAuMDAyODAyLCAwLjAwMjgxNSwgMC4wMDI4MTksIDAuMDAyODIxLCAwLjAwMjgyNCwgMC4wMDI4MjUiLCBcCi0gICAgICAgICAgIjAuMDAyODUyLCAwLjAwMjg1MSwgMC4wMDI4NjEsIDAuMDAyODY1LCAwLjAwMjg2OCwgMC4wMDI4NywgMC4wMDI4NzEiLCBcCi0gICAgICAgICAgIjAuMDAyOTUzLCAwLjAwMjk0OCwgMC4wMDI5NTUsIDAuMDAyOTU5LCAwLjAwMjk2MywgMC4wMDI5NjUsIDAuMDAyOTY2IiwgXAotICAgICAgICAgICIwLjAwMzA2NywgMC4wMDMwNTcsIDAuMDAzMDU3LCAwLjAwMzA1OSwgMC4wMDMwNjIsIDAuMDAzMDY1LCAwLjAwMzA2NSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjMyNSwgMC4wMDYzMjksIDAuMDA2MzQ0LCAwLjAwNjM0OCwgMC4wMDYzNTEsIDAuMDA2MzUzLCAwLjAwNjM1MyIsIFwKLSAgICAgICAgICAiMC4wMDYzMTEsIDAuMDA2MzE2LCAwLjAwNjMzMSwgMC4wMDYzMzYsIDAuMDA2MzM5LCAwLjAwNjM0MSwgMC4wMDYzNDIiLCBcCi0gICAgICAgICAgIjAuMDA2MzE0LCAwLjAwNjMxOSwgMC4wMDYzMzcsIDAuMDA2MzQyLCAwLjAwNjM0NSwgMC4wMDYzNDgsIDAuMDA2MzQ5IiwgXAotICAgICAgICAgICIwLjAwNjM0OSwgMC4wMDYzNSwgMC4wMDYzNjMsIDAuMDA2MzY4LCAwLjAwNjM3LCAwLjAwNjM3MywgMC4wMDYzNzQiLCBcCi0gICAgICAgICAgIjAuMDA2NDAxLCAwLjAwNjM5NiwgMC4wMDY0MDUsIDAuMDA2NDA5LCAwLjAwNjQxMiwgMC4wMDY0MTQsIDAuMDA2NDE1IiwgXAotICAgICAgICAgICIwLjAwNjQ5MiwgMC4wMDY0ODUsIDAuMDA2NDksIDAuMDA2NDk0LCAwLjAwNjQ5NywgMC4wMDY1LCAwLjAwNjUwMSIsIFwKLSAgICAgICAgICAiMC4wMDY1OTUsIDAuMDA2NTg2LCAwLjAwNjU4NSwgMC4wMDY1ODgsIDAuMDA2NTkxLCAwLjAwNjU5MiwgMC4wMDY1OTMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI3MTIsIDAuMDAyNzE4LCAwLjAwMjczMywgMC4wMDI3MzYsIDAuMDAyNzM5LCAwLjAwMjc0MSwgMC4wMDI3NDEiLCBcCi0gICAgICAgICAgIjAuMDAyNjkyLCAwLjAwMjY5OCwgMC4wMDI3MTMsIDAuMDAyNzE3LCAwLjAwMjcyMSwgMC4wMDI3MjEsIDAuMDAyNzIyIiwgXAotICAgICAgICAgICIwLjAwMjcwNCwgMC4wMDI3MDksIDAuMDAyNzI0LCAwLjAwMjcyOSwgMC4wMDI3MzIsIDAuMDAyNzM1LCAwLjAwMjczNiIsIFwKLSAgICAgICAgICAiMC4wMDI3NDMsIDAuMDAyNzQ2LCAwLjAwMjc1OSwgMC4wMDI3NjQsIDAuMDAyNzY3LCAwLjAwMjc2OSwgMC4wMDI3NyIsIFwKLSAgICAgICAgICAiMC4wMDI3OTYsIDAuMDAyNzk3LCAwLjAwMjgwOSwgMC4wMDI4MTQsIDAuMDAyODE2LCAwLjAwMjgxOSwgMC4wMDI4MiIsIFwKLSAgICAgICAgICAiMC4wMDI5LCAwLjAwMjg5NywgMC4wMDI5MDcsIDAuMDAyOTExLCAwLjAwMjkxNSwgMC4wMDI5MTksIDAuMDAyOTE5IiwgXAotICAgICAgICAgICIwLjAwMzAxNCwgMC4wMDMwMDgsIDAuMDAzMDEyLCAwLjAwMzAxNSwgMC4wMDMwMTksIDAuMDAzMDIyLCAwLjAwMzAyMiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjA2NSwgMC4wMDYwNzEsIDAuMDA2MDg1LCAwLjAwNjA4OSwgMC4wMDYwOTIsIDAuMDA2MDk0LCAwLjAwNjA5NCIsIFwKLSAgICAgICAgICAiMC4wMDYwNDksIDAuMDA2MDU1LCAwLjAwNjA3MiwgMC4wMDYwNzYsIDAuMDA2MDc5LCAwLjAwNjA4MiwgMC4wMDYwODIiLCBcCi0gICAgICAgICAgIjAuMDA2MDU0LCAwLjAwNjA2LCAwLjAwNjA3OCwgMC4wMDYwODQsIDAuMDA2MDg3LCAwLjAwNjA5LCAwLjAwNjA5MSIsIFwKLSAgICAgICAgICAiMC4wMDYwOSwgMC4wMDYwOTIsIDAuMDA2MTA2LCAwLjAwNjExMSwgMC4wMDYxMTQsIDAuMDA2MTE3LCAwLjAwNjExNyIsIFwKLSAgICAgICAgICAiMC4wMDYxNDIsIDAuMDA2MTQzLCAwLjAwNjE0OSwgMC4wMDYxNTQsIDAuMDA2MTU2LCAwLjAwNjE1OSwgMC4wMDYxNiIsIFwKLSAgICAgICAgICAiMC4wMDYyNDEsIDAuMDA2MjM1LCAwLjAwNjIzOSwgMC4wMDYyNDEsIDAuMDA2MjQ0LCAwLjAwNjI0NiwgMC4wMDYyNDciLCBcCi0gICAgICAgICAgIjAuMDA2MzQ1LCAwLjAwNjMzNCwgMC4wMDYzMzUsIDAuMDA2MzM4LCAwLjAwNjM0MSwgMC4wMDYzNDMsIDAuMDA2MzQ0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyMzkyLCAwLjAwMjM5OCwgMC4wMDI0MTIsIDAuMDAyNDE1LCAwLjAwMjQxNywgMC4wMDI0MTksIDAuMDAyNDE5IiwgXAotICAgICAgICAgICIwLjAwMjM2OSwgMC4wMDIzNzYsIDAuMDAyMzkyLCAwLjAwMjM5NiwgMC4wMDIzOTgsIDAuMDAyNDAxLCAwLjAwMjQwMSIsIFwKLSAgICAgICAgICAiMC4wMDIzNzgsIDAuMDAyMzg1LCAwLjAwMjQwMiwgMC4wMDI0MDcsIDAuMDAyNDExLCAwLjAwMjQxMywgMC4wMDI0MTQiLCBcCi0gICAgICAgICAgIjAuMDAyNDE5LCAwLjAwMjQyMywgMC4wMDI0MzgsIDAuMDAyNDQzLCAwLjAwMjQ0NiwgMC4wMDI0NDksIDAuMDAyNDUiLCBcCi0gICAgICAgICAgIjAuMDAyNDcxLCAwLjAwMjQ3MywgMC4wMDI0ODcsIDAuMDAyNDkyLCAwLjAwMjQ5NSwgMC4wMDI0OTksIDAuMDAyNSIsIFwKLSAgICAgICAgICAiMC4wMDI1OCwgMC4wMDI1NzgsIDAuMDAyNTg3LCAwLjAwMjU5MiwgMC4wMDI1OTUsIDAuMDAyNTk5LCAwLjAwMjU5OSIsIFwKLSAgICAgICAgICAiMC4wMDI2OTMsIDAuMDAyNjg3LCAwLjAwMjY5MSwgMC4wMDI2OTUsIDAuMDAyNjk4LCAwLjAwMjcwMiwgMC4wMDI3MDIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDYzMDMsIDAuMDA2MzA5LCAwLjAwNjMyNCwgMC4wMDYzMjgsIDAuMDA2MzMxLCAwLjAwNjMzMywgMC4wMDYzMzQiLCBcCi0gICAgICAgICAgIjAuMDA2MjkxLCAwLjAwNjI5NiwgMC4wMDYzMTMsIDAuMDA2MzE3LCAwLjAwNjMyLCAwLjAwNjMyMiwgMC4wMDYzMjMiLCBcCi0gICAgICAgICAgIjAuMDA2MzAxLCAwLjAwNjMwNiwgMC4wMDYzMjIsIDAuMDA2MzI4LCAwLjAwNjMzMSwgMC4wMDYzMzQsIDAuMDA2MzM0IiwgXAotICAgICAgICAgICIwLjAwNjMzNywgMC4wMDYzMzksIDAuMDA2MzUzLCAwLjAwNjM1OCwgMC4wMDYzNjEsIDAuMDA2MzYzLCAwLjAwNjM2NSIsIFwKLSAgICAgICAgICAiMC4wMDYzOTMsIDAuMDA2MzkyLCAwLjAwNjQsIDAuMDA2NDA0LCAwLjAwNjQwNywgMC4wMDY0MSwgMC4wMDY0MTEiLCBcCi0gICAgICAgICAgIjAuMDA2NDg4LCAwLjAwNjQ4MywgMC4wMDY0OTEsIDAuMDA2NDk2LCAwLjAwNjQ5OSwgMC4wMDY1MDIsIDAuMDA2NTAzIiwgXAotICAgICAgICAgICIwLjAwNjU5NiwgMC4wMDY1ODgsIDAuMDA2NTksIDAuMDA2NTk0LCAwLjAwNjU5NywgMC4wMDY2LCAwLjAwNjYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTMCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA4ODEzLCAwLjAwODgxOCwgMC4wMDg4MzQsIDAuMDA4ODM4LCAwLjAwODg0MSwgMC4wMDg4NDMsIDAuMDA4ODQ0IiwgXAotICAgICAgICAgICIwLjAwODgwMiwgMC4wMDg4MDgsIDAuMDA4ODIzLCAwLjAwODgyNywgMC4wMDg4MywgMC4wMDg4MzEsIDAuMDA4ODMzIiwgXAotICAgICAgICAgICIwLjAwODkxNSwgMC4wMDg5MjEsIDAuMDA4OTM2LCAwLjAwODk0MSwgMC4wMDg5NDMsIDAuMDA4OTQ2LCAwLjAwODk0NiIsIFwKLSAgICAgICAgICAiMC4wMDkwODMsIDAuMDA5MDg5LCAwLjAwOTEwNSwgMC4wMDkxMDksIDAuMDA5MTEyLCAwLjAwOTExNCwgMC4wMDkxMTQiLCBcCi0gICAgICAgICAgIjAuMDA5MjcyLCAwLjAwOTI3OCwgMC4wMDkyODUsIDAuMDA5MjksIDAuMDA5MjkyLCAwLjAwOTI5NSwgMC4wMDkyOTYiLCBcCi0gICAgICAgICAgIjAuMDA5NjA2LCAwLjAwOTYxMywgMC4wMDk2MjcsIDAuMDA5NjMxLCAwLjAwOTYzNCwgMC4wMDk2MzgsIDAuMDA5NjM4IiwgXAotICAgICAgICAgICIwLjAxMDAyNiwgMC4wMTAwMzEsIDAuMDEwMDQ1LCAwLjAxMDA1LCAwLjAxMDA1NCwgMC4wMTAwNTUsIDAuMDEwMDU2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA4NTkyLCAwLjAwODU5NywgMC4wMDg2MTQsIDAuMDA4NjE5LCAwLjAwODYyMiwgMC4wMDg2MjUsIDAuMDA4NjI2IiwgXAotICAgICAgICAgICIwLjAwODU5LCAwLjAwODU5NiwgMC4wMDg2MTMsIDAuMDA4NjE3LCAwLjAwODYyLCAwLjAwODYyMywgMC4wMDg2MjQiLCBcCi0gICAgICAgICAgIjAuMDA4NjUzLCAwLjAwODY2LCAwLjAwODY3NiwgMC4wMDg2ODEsIDAuMDA4Njg0LCAwLjAwODY4NiwgMC4wMDg2ODciLCBcCi0gICAgICAgICAgIjAuMDA4NzQzLCAwLjAwODc0OSwgMC4wMDg3NjcsIDAuMDA4NzcyLCAwLjAwODc3NCwgMC4wMDg3NzgsIDAuMDA4Nzc5IiwgXAotICAgICAgICAgICIwLjAwODg1NywgMC4wMDg4NjMsIDAuMDA4ODgxLCAwLjAwODg4NiwgMC4wMDg4ODksIDAuMDA4ODkyLCAwLjAwODg5MyIsIFwKLSAgICAgICAgICAiMC4wMDkwNDUsIDAuMDA5MDUsIDAuMDA5MDY4LCAwLjAwOTA3MywgMC4wMDkwNzYsIDAuMDA5MDc5LCAwLjAwOTA4IiwgXAotICAgICAgICAgICIwLjAwOTIzMiwgMC4wMDkyMzcsIDAuMDA5MjU0LCAwLjAwOTI1OSwgMC4wMDkyNjIsIDAuMDA5MjY1LCAwLjAwOTI2NiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlMxIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQ3MDIsIDAuMDA0NzExLCAwLjAwNDcyNywgMC4wMDQ3MywgMC4wMDQ3MzIsIDAuMDA0NzM0LCAwLjAwNDczNCIsIFwKLSAgICAgICAgICAiMC4wMDQ3OCwgMC4wMDQ3ODksIDAuMDA0ODA2LCAwLjAwNDgxMiwgMC4wMDQ4MTQsIDAuMDA0ODE2LCAwLjAwNDgxNiIsIFwKLSAgICAgICAgICAiMC4wMDQ5MjgsIDAuMDA0OTM3LCAwLjAwNDk1NCwgMC4wMDQ5NjEsIDAuMDA0OTYzLCAwLjAwNDk2NiwgMC4wMDQ5NjciLCBcCi0gICAgICAgICAgIjAuMDA1MDksIDAuMDA1MDk3LCAwLjAwNTExNCwgMC4wMDUxMTksIDAuMDA1MTIyLCAwLjAwNTEyNSwgMC4wMDUxMjYiLCBcCi0gICAgICAgICAgIjAuMDA1MjY3LCAwLjAwNTI3MiwgMC4wMDUyODYsIDAuMDA1MjksIDAuMDA1MjkyLCAwLjAwNTI5NSwgMC4wMDUyOTciLCBcCi0gICAgICAgICAgIjAuMDA1NTgsIDAuMDA1NTg0LCAwLjAwNTYwMiwgMC4wMDU2MDYsIDAuMDA1NjA3LCAwLjAwNTYwOCwgMC4wMDU2MDgiLCBcCi0gICAgICAgICAgIjAuMDA1ODUsIDAuMDA1ODUzLCAwLjAwNTg3NCwgMC4wMDU4NzcsIDAuMDA1ODU5LCAwLjAwNTg3OSwgMC4wMDU4OCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzYyNSwgMC4wMDM2MzUsIDAuMDAzNjUxLCAwLjAwMzY1NSwgMC4wMDM2NTcsIDAuMDAzNjU5LCAwLjAwMzY2IiwgXAotICAgICAgICAgICIwLjAwMzcxMywgMC4wMDM3MjMsIDAuMDAzNzQyLCAwLjAwMzc0NywgMC4wMDM3NDksIDAuMDAzNzUyLCAwLjAwMzc1MiIsIFwKLSAgICAgICAgICAiMC4wMDM4NzIsIDAuMDAzODgyLCAwLjAwMzkwMywgMC4wMDM5MDksIDAuMDAzOTEzLCAwLjAwMzkxNiwgMC4wMDM5MTciLCBcCi0gICAgICAgICAgIjAuMDA0MDU1LCAwLjAwNDA2NCwgMC4wMDQwODUsIDAuMDA0MDkxLCAwLjAwNDA5NSwgMC4wMDQwOTksIDAuMDA0MSIsIFwKLSAgICAgICAgICAiMC4wMDQyNDcsIDAuMDA0MjU1LCAwLjAwNDI3NiwgMC4wMDQyODIsIDAuMDA0Mjg2LCAwLjAwNDI4OSwgMC4wMDQyOSIsIFwKLSAgICAgICAgICAiMC4wMDQ1NjMsIDAuMDA0NTcsIDAuMDA0NTg4LCAwLjAwNDU5NCwgMC4wMDQ1OTcsIDAuMDA0NjAxLCAwLjAwNDYwMiIsIFwKLSAgICAgICAgICAiMC4wMDQ4NjEsIDAuMDA0ODY3LCAwLjAwNDg4NCwgMC4wMDQ4ODksIDAuMDA0ODkzLCAwLjAwNDg5NiwgMC4wMDQ4OTciKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogTVg0WDIgKgotICogLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKE1YNFgyKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuNzc5MDI7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDU4MjI2NDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA1ODExNzg7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNTgyMjY0OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDkwOSwgMC4wMDA4ODIsIDAuMDAwODg3LCAwLjAwMDkyMSwgMC4wMDA5NzQsIDAuMDAxMDg1LCAwLjAwMTIwMiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzI5NiwgMC4wMDMyNzksIDAuMDAzMjg4LCAwLjAwMzMyLCAwLjAwMzM3MywgMC4wMDM0NzcsIDAuMDAzNTkyIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2NDY2NDg7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjQ1MjQzOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDY0NjY0ODsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyODcsIDAuMDAwMjg5LCAwLjAwMDI5LCAwLjAwMDI5MSwgMC4wMDAyOTEsIDAuMDAwMjkxLCAwLjAwMDI5MiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDMxNSwgMC4wMDAzMDQsIDAuMDAwMzAyLCAwLjAwMDMwMSwgMC4wMDAzLCAwLjAwMDMsIDAuMDAwMjk5Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihDKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA1ODY0Nzc7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNTg0OTU1OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDU4NjQ3NzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDEwODIsIDAuMDAxMDU3LCAwLjAwMTA2MywgMC4wMDEwOTcsIDAuMDAxMTQ3LCAwLjAwMTI1NCwgMC4wMDEzNjkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDM1OTUsIDAuMDAzNTc5LCAwLjAwMzU4NiwgMC4wMDM2MTQsIDAuMDAzNjYsIDAuMDAzNzYsIDAuMDAzODY4Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihEKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2ODEyMzM7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjgwMDk2OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDY4MTIzMzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyODgsIDAuMDAwMjksIDAuMDAwMjkxLCAwLjAwMDI5MSwgMC4wMDAyOTEsIDAuMDAwMjkyLCAwLjAwMDI5MiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDMxNSwgMC4wMDAzMDQsIDAuMDAwMzAxLCAwLjAwMDMwMSwgMC4wMDAzLCAwLjAwMDI5OSwgMC4wMDAyOTkiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFMwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDIyMTgwNDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDIyMTgwNDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDIyMTc4MzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA0NjQsIDAuMDAwNDY2LCAwLjAwMDU0LCAwLjAwMDY0NSwgMC4wMDA3NTYsIDAuMDAwOTM3LCAwLjAwMTEyMiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNDI4NSwgMC4wMDQyODYsIDAuMDA0MzQ5LCAwLjAwNDQ0MiwgMC4wMDQ1NDUsIDAuMDA0NzIsIDAuMDA0ODkxIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTMSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxMTgwOTk7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxMTgwOTk7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxMTgwOTM7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMDc4LCAwLjAwMDA4NiwgMC4wMDAxNzMsIDAuMDAwMjY3LCAwLjAwMDM4NSwgMC4wMDA2MDIsIDAuMDAwNzk5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyNjA2LCAwLjAwMjYxNCwgMC4wMDI2OTMsIDAuMDAyNzg4LCAwLjAwMjkwMywgMC4wMDMxMjIsIDAuMDAzMzA0Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuNjY4ODc3OwotICAgIGZ1bmN0aW9uIDogIigoUzEgKChTMCBEKSArICghUzAgQykpKSArICghUzEgKChTMCBCKSArICghUzAgQSkpKSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5MDk3MiwgMC4xNzU1NTcsIDAuMjM4MjgzLCAwLjMxNjM4OCwgMC4zOTQ1MDEsIDAuNDcyNTU0LCAwLjU1MDciLCBcCi0gICAgICAgICAgIjAuMDk3MjU0LCAwLjE4MTg0MywgMC4yNDQ1NTYsIDAuMzIyNzAxLCAwLjQwMDc5MiwgMC40Nzg4ODcsIDAuNTU3MDIiLCBcCi0gICAgICAgICAgIjAuMTA1MDMxLCAwLjE4OTYzOCwgMC4yNTIzNjUsIDAuMzMwNDc0LCAwLjQwODU5MSwgMC40ODY2NTIsIDAuNTY0Nzc3IiwgXAotICAgICAgICAgICIwLjExMjUzMiwgMC4xOTcxMSwgMC4yNTk4MTEsIDAuMzM3OTQxLCAwLjQxNjEwNSwgMC40OTQxNzEsIDAuNTcyMjMiLCBcCi0gICAgICAgICAgIjAuMTE5MzU5LCAwLjIwNDA4MSwgMC4yNjY3ODUsIDAuMzQ0OTMyLCAwLjQyMzAyOSwgMC41MDEwODUsIDAuNTc5MjA1IiwgXAotICAgICAgICAgICIwLjEyOTMwOSwgMC4yMTQyNzEsIDAuMjc3MDA1LCAwLjM1NTExLCAwLjQzMzE4MywgMC41MTEyNzYsIDAuNTg5MzUiLCBcCi0gICAgICAgICAgIjAuMTM2Njc4LCAwLjIyMjE1MSwgMC4yODQ5MDMsIDAuMzYzMDAxLCAwLjQ0MTA5NywgMC41MTkyMDUsIDAuNTk3MjY3Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1MzU2NiwgMC4yMTI3MjIsIDAuMzQzMTEsIDAuNTA3NTM0LCAwLjY3MzMyNCwgMC44NDAzMTksIDEuMDA1NzIiLCBcCi0gICAgICAgICAgIjAuMDUzNTAxLCAwLjIxMjcyMiwgMC4zNDMwOTUsIDAuNTA4MjY5LCAwLjY3NDE3NCwgMC44NDA1NjgsIDEuMDA1NTMiLCBcCi0gICAgICAgICAgIjAuMDUzNTAxLCAwLjIxMjcwNywgMC4zNDMwOTksIDAuNTA3NzYyLCAwLjY3MzM3OSwgMC44Mzk2MzYsIDEuMDA1ODIiLCBcCi0gICAgICAgICAgIjAuMDUzNjc4LCAwLjIxMjc2LCAwLjM0MzA5MywgMC41MDc2MTIsIDAuNjcyOTMzLCAwLjgzOTQzOSwgMS4wMDU5IiwgXAotICAgICAgICAgICIwLjA1NDAyMiwgMC4yMTI3ODksIDAuMzQzMTY1LCAwLjUwODI1NiwgMC42NzQzLCAwLjg0MDM3NywgMS4wMDU3NiIsIFwKLSAgICAgICAgICAiMC4wNTUyMTUsIDAuMjEzMzUyLCAwLjM0MzQ3NSwgMC41MDg0NCwgMC42NzQwODEsIDAuODQwNDIxLCAxLjAwNTk0IiwgXAotICAgICAgICAgICIwLjA1NjExNywgMC4yMTM4OTYsIDAuMzQzODE5LCAwLjUwODA4OSwgMC42NzQzNDYsIDAuODQwNDExLCAxLjAwNjc0Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5ODE1MiwgMC4xODI3ODQsIDAuMjQ0MDM2LCAwLjMxOTkzNywgMC4zOTU3ODQsIDAuNDcxNjM0LCAwLjU0NzM4NSIsIFwKLSAgICAgICAgICAiMC4xMDQwNzIsIDAuMTg4ODEzLCAwLjI1MDA0OCwgMC4zMjU5NTQsIDAuNDAxNzg5LCAwLjQ3NzU5NSwgMC41NTM0NTciLCBcCi0gICAgICAgICAgIjAuMTExMTE2LCAwLjE5NTc2LCAwLjI1NzAxMiwgMC4zMzI5MTgsIDAuNDA4NzU1LCAwLjQ4NDU1MywgMC41NjAzNjciLCBcCi0gICAgICAgICAgIjAuMTE3OTk1LCAwLjIwMjYxOSwgMC4yNjM4NzcsIDAuMzM5ODE2LCAwLjQxNTYyLCAwLjQ5MTQ0NSwgMC41NjcyMzMiLCBcCi0gICAgICAgICAgIjAuMTI0MTgzLCAwLjIwODk0OCwgMC4yNzAxOTgsIDAuMzQ2MTA3LCAwLjQyMTk0MSwgMC40OTc3NDIsIDAuNTczNTU1IiwgXAotICAgICAgICAgICIwLjEzMzI1NCwgMC4yMTgyMjUsIDAuMjc5NDk1LCAwLjM1NTQwOSwgMC40MzEyNDMsIDAuNTA3MDUsIDAuNTgyODk5IiwgXAotICAgICAgICAgICIwLjE0MDA4OCwgMC4yMjU2MTgsIDAuMjg2ODc5LCAwLjM2Mjc4MSwgMC40Mzg2MDgsIDAuNTE0NDI3LCAwLjU5MDIxMiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTQ2MjMsIDAuMjA0NjQxLCAwLjMyNzA1LCAwLjQ4MjA4OCwgMC42MzgxOTUsIDAuNzk2MDk1LCAwLjk1MzA5OSIsIFwKLSAgICAgICAgICAiMC4wNTQ0NTUsIDAuMjA0NzYxLCAwLjMyNzIyMiwgMC40ODI3MjksIDAuNjM5MTAzLCAwLjc5NTk1NywgMC45NTMyODkiLCBcCi0gICAgICAgICAgIjAuMDU0NTgyLCAwLjIwNDY4NCwgMC4zMjcyMTcsIDAuNDgyNzIsIDAuNjM5MDc5LCAwLjc5NTAxMywgMC45NTMwNzQiLCBcCi0gICAgICAgICAgIjAuMDU0NjMzLCAwLjIwNDY3MSwgMC4zMjcxODgsIDAuNDgyODM0LCAwLjYzOTAxNiwgMC43OTU5NzMsIDAuOTUzMDczIiwgXAotICAgICAgICAgICIwLjA1NDkzLCAwLjIwNDkzLCAwLjMyNzMsIDAuNDgyNzgxLCAwLjYzOTExNywgMC43OTUwNzIsIDAuOTUzMDk5IiwgXAotICAgICAgICAgICIwLjA1NTkzMiwgMC4yMDUzMDQsIDAuMzI3NjI3LCAwLjQ4Mjk1MiwgMC42MzkxNDMsIDAuNzk1OTQ0LCAwLjk1MzMxMSIsIFwKLSAgICAgICAgICAiMC4wNTY5NCwgMC4yMDU5NzcsIDAuMzI3OTUyLCAwLjQ4MzA4NywgMC42Mzg2ODksIDAuNzk2MDQxLCAwLjk1MzA2OSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODk4NTksIDAuMTc0NTMsIDAuMjM3MjYsIDAuMzE1NDE5LCAwLjM5MzU3NCwgMC40NzE2NzQsIDAuNTQ5NzQyIiwgXAotICAgICAgICAgICIwLjA5NjEzNiwgMC4xODA3NTUsIDAuMjQzNTA1LCAwLjMyMTY3MywgMC4zOTk3NzQsIDAuNDc3ODQ5LCAwLjU1NTk2OCIsIFwKLSAgICAgICAgICAiMC4xMDM4ODEsIDAuMTg4NTQyLCAwLjI1MTI5NCwgMC4zMjk0NTgsIDAuNDA3NTY0LCAwLjQ4NTY2NCwgMC41NjM4MjMiLCBcCi0gICAgICAgICAgIjAuMTExNDcyLCAwLjE5NjA5OSwgMC4yNTg4NDMsIDAuMzM2OTkzLCAwLjQxNTEwMiwgMC40OTMxODIsIDAuNTcxMzI4IiwgXAotICAgICAgICAgICIwLjExODI4NiwgMC4yMDMwNTksIDAuMjY1ODEsIDAuMzQzOTc2LCAwLjQyMjA4MiwgMC41MDAxNSwgMC41NzgyOTIiLCBcCi0gICAgICAgICAgIjAuMTI4MjY2LCAwLjIxMzI5MSwgMC4yNzYwMzMsIDAuMzU0MTk5LCAwLjQzMjI4OCwgMC41MTAzNjEsIDAuNTg4NDQ0IiwgXAotICAgICAgICAgICIwLjEzNTY4OSwgMC4yMjExNjIsIDAuMjgzOTMzLCAwLjM2MjA4NywgMC40NDAyMSwgMC41MTgyOTQsIDAuNTk2MzMiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDUzMzY1LCAwLjIxMjYwOCwgMC4zNDMwNjcsIDAuNTA4MjAzLCAwLjY3NDM1MywgMC44Mzk0ODcsIDEuMDA3IiwgXAotICAgICAgICAgICIwLjA1MzMzNSwgMC4yMTI2MDYsIDAuMzQzMTAyLCAwLjUwODIzMSwgMC42NzQxMTEsIDAuODM5NDcyLCAxLjAwNjk3IiwgXAotICAgICAgICAgICIwLjA1MzMxNiwgMC4yMTI1OTEsIDAuMzQzMDg0LCAwLjUwODIyLCAwLjY3NDEyOCwgMC44NDA1NDQsIDEuMDA1NjEiLCBcCi0gICAgICAgICAgIjAuMDUzNTE3LCAwLjIxMjY0MywgMC4zNDMwMTgsIDAuNTA3NTI4LCAwLjY3NDExMSwgMC44NDAzNDQsIDEuMDA1MTQiLCBcCi0gICAgICAgICAgIjAuMDUzOTAyLCAwLjIxMjgwNCwgMC4zNDMxODUsIDAuNTA4MjMzLCAwLjY3NDI2OSwgMC44NDAzMTMsIDEuMDA1MTIiLCBcCi0gICAgICAgICAgIjAuMDU1MDU5LCAwLjIxMzI0NSwgMC4zNDMzODIsIDAuNTA4MzY2LCAwLjY3NDMwMiwgMC44NDAzNzQsIDEuMDA2NzkiLCBcCi0gICAgICAgICAgIjAuMDU2MDIyLCAwLjIxMzc3NSwgMC4zNDM1MzUsIDAuNTA4NTA0LCAwLjY3NDMwNywgMC44NDA0MDIsIDEuMDA1ODYiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk3MjksIDAuMTgyMDAzLCAwLjI0MzIzNSwgMC4zMTkxMzUsIDAuMzk0OTYyLCAwLjQ3MDc2NSwgMC41NDY2NCIsIFwKLSAgICAgICAgICAiMC4xMDMyNywgMC4xODc5MzksIDAuMjQ5MTczLCAwLjMyNTA3MywgMC40MDA5MDEsIDAuNDc2NzQ4LCAwLjU1MjQ5MiIsIFwKLSAgICAgICAgICAiMC4xMTAwNjQsIDAuMTk0ODE4LCAwLjI1NjAyLCAwLjMzMTk1NCwgMC40MDc3ODMsIDAuNDgzNTg0LCAwLjU1OTM3IiwgXAotICAgICAgICAgICIwLjExNjk1NSwgMC4yMDE2NjEsIDAuMjYyODgyLCAwLjMzODgwMSwgMC40MTQ2MjksIDAuNDkwNDI4LCAwLjU2NjI2OSIsIFwKLSAgICAgICAgICAiMC4xMjMxMTYsIDAuMjA3ODc1LCAwLjI2OTEyNywgMC4zNDUwNDUsIDAuNDIwODcxLCAwLjQ5NjY5MywgMC41NzI0NzYiLCBcCi0gICAgICAgICAgIjAuMTMxOTA2LCAwLjIxNzAyNCwgMC4yNzgyNzUsIDAuMzU0MjA2LCAwLjQzMDAzMiwgMC41MDU4MzYsIDAuNTgxNjU2IiwgXAotICAgICAgICAgICIwLjEzODc1NCwgMC4yMjQyNzksIDAuMjg1NTg2LCAwLjM2MTQ5MywgMC40MzczMTUsIDAuNTEzMTUyLCAwLjU4ODkyNiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTQzNTgsIDAuMjA0NTkzLCAwLjMyNzA3NSwgMC40ODI2MDYsIDAuNjM4OTYsIDAuNzk1ODMzLCAwLjk1MzE1NyIsIFwKLSAgICAgICAgICAiMC4wNTQ0MDIsIDAuMjA0NTkxLCAwLjMyNzA3MywgMC40ODI2MDMsIDAuNjM4OTU1LCAwLjc5NTk2OSwgMC45NTI5MiIsIFwKLSAgICAgICAgICAiMC4wNTQyOTgsIDAuMjA0NTk0LCAwLjMyNzAyNCwgMC40ODI1NzYsIDAuNjM4OTc4LCAwLjc5NTgyLCAwLjk1MjkzMyIsIFwKLSAgICAgICAgICAiMC4wNTQ0MjEsIDAuMjA0NjI4LCAwLjMyNzA4MiwgMC40ODI1ODMsIDAuNjM4OTksIDAuNzk1ODE3LCAwLjk1MzA4NiIsIFwKLSAgICAgICAgICAiMC4wNTQ4MDIsIDAuMjA0NzEsIDAuMzI3MTAzLCAwLjQ4MjY1NywgMC42Mzg5MiwgMC43OTU3NjEsIDAuOTUyODM1IiwgXAotICAgICAgICAgICIwLjA1NTc0OSwgMC4yMDUxOTYsIDAuMzI3NTA1LCAwLjQ4MjgwMiwgMC42MzkwMjcsIDAuNzk1ODIxLCAwLjk1MzExOSIsIFwKLSAgICAgICAgICAiMC4wNTY4MDIsIDAuMjA1Nzk5LCAwLjMyNzgyNCwgMC40ODI5NjIsIDAuNjM4NTM3LCAwLjc5NjA2OCwgMC45NTI5NDEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk0MjQyLCAwLjE3OTQ5OCwgMC4yNDIzMzMsIDAuMzIwNDc5LCAwLjM5ODU3OCwgMC40NzY2NzUsIDAuNTU0Nzk3IiwgXAotICAgICAgICAgICIwLjEwMDUxNSwgMC4xODU3NjUsIDAuMjQ4NTgxLCAwLjMyNjc0NSwgMC40MDQ5MTYsIDAuNDgyOTgyLCAwLjU2MTA1NiIsIFwKLSAgICAgICAgICAiMC4xMDgzMiwgMC4xOTM1NDYsIDAuMjU2MzU5LCAwLjMzNDUzMSwgMC40MTI2NDEsIDAuNDkwNzE2LCAwLjU2OTAwMyIsIFwKLSAgICAgICAgICAiMC4xMTU5MjYsIDAuMjAxMTUsIDAuMjYzOTM4LCAwLjM0MjEyMSwgMC40MjAyNDIsIDAuNDk4Mjk0LCAwLjU3NjQxMyIsIFwKLSAgICAgICAgICAiMC4xMjI5MzksIDAuMjA4MjIsIDAuMjcxMDYyLCAwLjM0OTIwNSwgMC40MjczMzcsIDAuNTA1NDI5LCAwLjU4MzUxNSIsIFwKLSAgICAgICAgICAiMC4xMzMxMzIsIDAuMjE4NzA2LCAwLjI4MTUyMywgMC4zNTk2NTUsIDAuNDM3NzY2LCAwLjUxNTg3MywgMC41OTM5NTYiLCBcCi0gICAgICAgICAgIjAuMTQwODQ2LCAwLjIyNjkwMywgMC4yODk3MTksIDAuMzY3ODgzLCAwLjQ0NTk3OSwgMC41MjQwNDMsIDAuNjAyMTQxIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1NDE1MywgMC4yMTMyNDgsIDAuMzQzNDMzLCAwLjUwODQ2MiwgMC42NzM2NzgsIDAuODQwNTQ4LCAxLjAwNTk4IiwgXAotICAgICAgICAgICIwLjA1NDE1LCAwLjIxMzI0NiwgMC4zNDM1MiwgMC41MDg0NjcsIDAuNjczNDA4LCAwLjgzOTUzMiwgMS4wMDYxMiIsIFwKLSAgICAgICAgICAiMC4wNTQwNzgsIDAuMjEzMjMzLCAwLjM0MzQ2NSwgMC41MDg0NTEsIDAuNjc0MzM1LCAwLjg0MDQwNiwgMS4wMDU1NCIsIFwKLSAgICAgICAgICAiMC4wNTQxNDMsIDAuMjEzMjAxLCAwLjM0MzU1NCwgMC41MDg0NTcsIDAuNjc0NDkzLCAwLjg0MDUyNSwgMS4wMDQ5MyIsIFwKLSAgICAgICAgICAiMC4wNTQ2MDMsIDAuMjEzNDE5LCAwLjM0MzU1OCwgMC41MDg0ODcsIDAuNjczMTI2LCAwLjgzOTA5OSwgMS4wMDYwOCIsIFwKLSAgICAgICAgICAiMC4wNTU2NDMsIDAuMjEzNzk4LCAwLjM0MzgxMSwgMC41MDgzNjIsIDAuNjc0MjI0LCAwLjg0MDU1LCAxLjAwNTk2IiwgXAotICAgICAgICAgICIwLjA1NjcxOCwgMC4yMTQ0MjEsIDAuMzQzOTEyLCAwLjUwODcxNiwgMC42NzM1NzgsIDAuODQwNDA3LCAxLjAwNTk1Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwMjA4NSwgMC4xODc0NzksIDAuMjQ4ODE5LCAwLjMyNDc1OSwgMC40MDA1OTcsIDAuNDc2NDA4LCAwLjU1MjE5OCIsIFwKLSAgICAgICAgICAiMC4xMDgxMjUsIDAuMTkzNTUxLCAwLjI1NDg5MywgMC4zMzA4MzMsIDAuNDA2NjcyLCAwLjQ4MjQ4MSwgMC41NTgzIiwgXAotICAgICAgICAgICIwLjExNTE4NCwgMC4yMDA1MTUsIDAuMjYxODYzLCAwLjMzNzgwNSwgMC40MTM2NDksIDAuNDg5NDU3LCAwLjU2NTI2NiIsIFwKLSAgICAgICAgICAiMC4xMjIxMTIsIDAuMjA3NDIzLCAwLjI2ODc5NywgMC4zNDQ3NDEsIDAuNDIwNjA3LCAwLjQ5NjM5OCwgMC41NzIxOTEiLCBcCi0gICAgICAgICAgIjAuMTI4MzkzLCAwLjIxMzgyNiwgMC4yNzUxODMsIDAuMzUxMTI0LCAwLjQyNjk2NiwgMC41MDI3NjEsIDAuNTc4NTg2IiwgXAotICAgICAgICAgICIwLjEzNzc4LCAwLjIyMzM4NCwgMC4yODQ3NDcsIDAuMzYwNjg5LCAwLjQzNjUxLCAwLjUxMjM0MSwgMC41ODgxMyIsIFwKLSAgICAgICAgICAiMC4xNDQ2NDIsIDAuMjMwNzM5LCAwLjI5MjE0NCwgMC4zNjgxMTgsIDAuNDQzOTU1LCAwLjUxOTc0NiwgMC41OTU1NTgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU1MjMyLCAwLjIwNTQ4NCwgMC4zMjc3NzYsIDAuNDgzMTA4LCAwLjYzOTM1NCwgMC43OTYxMzUsIDAuOTUzMDY2IiwgXAotICAgICAgICAgICIwLjA1NTE0LCAwLjIwNTQ4MiwgMC4zMjc3NzEsIDAuNDgzMTA3LCAwLjYzOTM1NSwgMC43OTYxMzYsIDAuOTUyMTY1IiwgXAotICAgICAgICAgICIwLjA1NTI1NywgMC4yMDU0NjEsIDAuMzI3NzcsIDAuNDgzMTA3LCAwLjYzOTM0NCwgMC43OTUxNzUsIDAuOTUzMjE5IiwgXAotICAgICAgICAgICIwLjA1NTI5NSwgMC4yMDU0MjgsIDAuMzI3NzU3LCAwLjQ4MjQwOSwgMC42Mzg1ODksIDAuNzk2MTYzLCAwLjk1MzIyOSIsIFwKLSAgICAgICAgICAiMC4wNTU2MTcsIDAuMjA1NjM4LCAwLjMyNzgyMiwgMC40ODMxNTIsIDAuNjM5MzY5LCAwLjc5NjAzMiwgMC45NTMyMzciLCBcCi0gICAgICAgICAgIjAuMDU2Nzk2LCAwLjIwNjA4NSwgMC4zMjgyMDUsIDAuNDgyNzM0LCAwLjYzOTM2NSwgMC43OTYxNTMsIDAuOTUzMTYiLCBcCi0gICAgICAgICAgIjAuMDU3NTc1LCAwLjIwNjYxLCAwLjMyODQ3MSwgMC40ODMxMjcsIDAuNjM4NDk1LCAwLjc5NTQ4LCAwLjk1MzIwNiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJEIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTI5MjEsIDAuMTc4MDEzLCAwLjI0MDc5MSwgMC4zMTg5NDIsIDAuMzk3MDE4LCAwLjQ3NTExNSwgMC41NTMyNDMiLCBcCi0gICAgICAgICAgIjAuMDk5MTE5LCAwLjE4NDI1OCwgMC4yNDcwNiwgMC4zMjUyMDksIDAuNDAzMzM3LCAwLjQ4MTQxMiwgMC41NTk1MDUiLCBcCi0gICAgICAgICAgIjAuMTA2OTY1LCAwLjE5MjEzNiwgMC4yNTQ5MDcsIDAuMzMzMDQ5LCAwLjQxMTE0NiwgMC40ODkzMjMsIDAuNTY3MzY3IiwgXAotICAgICAgICAgICIwLjExNDU4NCwgMC4xOTk2OTQsIDAuMjYyNDgxLCAwLjM0MDYzOCwgMC40MTg3NDMsIDAuNDk2ODEzLCAwLjU3NDkwMyIsIFwKLSAgICAgICAgICAiMC4xMjE1OTMsIDAuMjA2ODQ0LCAwLjI2OTYzMywgMC4zNDc3NywgMC40MjU4NzEsIDAuNTA0MDk0LCAwLjU4MjA4MiIsIFwKLSAgICAgICAgICAiMC4xMzE3NTQsIDAuMjE3MzI2LCAwLjI4MDEwMSwgMC4zNTgyNDMsIDAuNDM2MzMyLCAwLjUxNDQzNSwgMC41OTI1MTQiLCBcCi0gICAgICAgICAgIjAuMTM5NDIzLCAwLjIyNTQwNywgMC4yODgyNTUsIDAuMzY2MzgxLCAwLjQ0NDQ4NywgMC41MjI1NjQsIDAuNjAwNjQzIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1Mzk5OCwgMC4yMTMwMTksIDAuMzQzMzY2LCAwLjUwODM4MSwgMC42NzQwNTUsIDAuODQwNDQ2LCAxLjAwNTgyIiwgXAotICAgICAgICAgICIwLjA1NDA0NiwgMC4yMTMxNDgsIDAuMzQzMzQ5LCAwLjUwODM5NywgMC42NzMwNjYsIDAuODM5NTE2LCAxLjAwNjA3IiwgXAotICAgICAgICAgICIwLjA1Mzk5NSwgMC4yMTMwMjMsIDAuMzQzMzMxLCAwLjUwODEyMSwgMC42NzM2MDUsIDAuODQwNTYsIDEuMDA1OTYiLCBcCi0gICAgICAgICAgIjAuMDU0MTYyLCAwLjIxMzA1OCwgMC4zNDM0MiwgMC41MDgzNzgsIDAuNjc0MzA4LCAwLjg0MDMzLCAxLjAwNjk1IiwgXAotICAgICAgICAgICIwLjA1NDQ5NCwgMC4yMTMzMDMsIDAuMzQzMzc5LCAwLjUwNzk4MSwgMC42NzM5ODQsIDAuODM5MTU0LCAxLjAwNjA4IiwgXAotICAgICAgICAgICIwLjA1NTU3MywgMC4yMTM2MzksIDAuMzQzNzIzLCAwLjUwODU0NCwgMC42NzM3NzMsIDAuODQwNDcsIDEuMDA1OTEiLCBcCi0gICAgICAgICAgIjAuMDU2NzY3LCAwLjIxNDMwNSwgMC4zNDM5NDIsIDAuNTA4NjA3LCAwLjY3NDMxOSwgMC44NDA0NTQsIDEuMDA1OTMiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTAxMzcxLCAwLjE4NjYzMSwgMC4yNDc5NzEsIDAuMzIzODk1LCAwLjM5OTczNSwgMC40NzU1MzcsIDAuNTUxMzM0IiwgXAotICAgICAgICAgICIwLjEwNzExNiwgMC4xOTI0NTEsIDAuMjUzODAyLCAwLjMyOTczNCwgMC40MDU1NzYsIDAuNDgxMzc4LCAwLjU1NzE2NiIsIFwKLSAgICAgICAgICAiMC4xMTQwOSwgMC4xOTkzNjEsIDAuMjYwNzA1LCAwLjMzNjYzOCwgMC40MTI0NzEsIDAuNDg4MzA0LCAwLjU2NDA4MyIsIFwKLSAgICAgICAgICAiMC4xMjA5OSwgMC4yMDYyMzgsIDAuMjY3NjE4LCAwLjM0MzUzNCwgMC40MTkzNzEsIDAuNDk1MTcxLCAwLjU3MDk2MSIsIFwKLSAgICAgICAgICAiMC4xMjczMDEsIDAuMjEyNjc0LCAwLjI3NDAxNywgMC4zNDk5NDgsIDAuNDI1NzgsIDAuNTAxNTk0LCAwLjU3NzM4OSIsIFwKLSAgICAgICAgICAiMC4xMzY0MzgsIDAuMjIyMDc3LCAwLjI4MzQzMywgMC4zNTkzNywgMC40MzUyLCAwLjUxMTA1OSwgMC41ODY4MTQiLCBcCi0gICAgICAgICAgIjAuMTQzMzEzLCAwLjIyOTM5MiwgMC4yOTA3ODksIDAuMzY2NzYxLCAwLjQ0MjYsIDAuNTE4MzYxLCAwLjU5NDE3MSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTUyMzIsIDAuMjA1MzA1LCAwLjMyNzcwMSwgMC40ODMwMjUsIDAuNjM4MzkxLCAwLjc5NTI1MywgMC45NTMxNzYiLCBcCi0gICAgICAgICAgIjAuMDU1MTY2LCAwLjIwNTI4OSwgMC4zMjc2NywgMC40ODMwMTksIDAuNjM5MzA0LCAwLjc5NjA4NSwgMC45NTMxNjEiLCBcCi0gICAgICAgICAgIjAuMDU1MjEzLCAwLjIwNTI5MSwgMC4zMjc2NjUsIDAuNDgzMDAyLCAwLjYzODYzLCAwLjc5NjE0NiwgMC45NTMxNjMiLCBcCi0gICAgICAgICAgIjAuMDU1MTQ5LCAwLjIwNTMzMywgMC4zMjc2ODMsIDAuNDgyNDU5LCAwLjYzOTI5LCAwLjc5NjA3LCAwLjk1MzE1NiIsIFwKLSAgICAgICAgICAiMC4wNTU2NTksIDAuMjA1NTY3LCAwLjMyNzc2OCwgMC40ODMwODYsIDAuNjM5MzAyLCAwLjc5NjA1OCwgMC45NTMxNzMiLCBcCi0gICAgICAgICAgIjAuMDU2NDIxLCAwLjIwNTkyMywgMC4zMjgwODcsIDAuNDgzMjYsIDAuNjM5MzIzLCAwLjc5NTE5NCwgMC45NTMwOSIsIFwKLSAgICAgICAgICAiMC4wNTc1NTcsIDAuMjA2NTQ2LCAwLjMyODQwNSwgMC40ODM0NiwgMC42Mzg0NTYsIDAuNzk2MDQ2LCAwLjk1MzEyNCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg4OTc4LCAwLjE3NDExOCwgMC4yMzY5MDIsIDAuMzE1MDYsIDAuMzkzMTYxLCAwLjQ3MTM0NywgMC41NDkzNzgiLCBcCi0gICAgICAgICAgIjAuMDk2MzkzLCAwLjE4MTU3OSwgMC4yNDQzNjgsIDAuMzIyNDg1LCAwLjQwMDU4OCwgMC40Nzg3MjMsIDAuNTU2ODI3IiwgXAotICAgICAgICAgICIwLjEwNjEsIDAuMTkxMjMsIDAuMjU0MDI0LCAwLjMzMjE4MywgMC40MTAyOTEsIDAuNDg4MzYsIDAuNTY2NDg3IiwgXAotICAgICAgICAgICIwLjExNTY1MSwgMC4yMDA3NzYsIDAuMjYzNTYyLCAwLjM0MTcyNCwgMC40MTk4NzksIDAuNDk3OTE5LCAwLjU3NjAxMyIsIFwKLSAgICAgICAgICAiMC4xMjQ0NjYsIDAuMjA5Njk5LCAwLjI3MjQ3MSwgMC4zNTA2MzUsIDAuNDI4NzQ0LCAwLjUwNjkwOCwgMC41ODQ5NjUiLCBcCi0gICAgICAgICAgIjAuMTM3MDE3LCAwLjIyMjYwMywgMC4yODUzNzksIDAuMzYzNTI0LCAwLjQ0MTYzNCwgMC41MTk3ODYsIDAuNTk3ODIzIiwgXAotICAgICAgICAgICIwLjE0NjQyMywgMC4yMzI1NDQsIDAuMjk1MzM2LCAwLjM3MzQ3MywgMC40NTE1OTIsIDAuNTI5NjU1LCAwLjYwNzcwNiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTM5NTIsIDAuMjEzMTIxLCAwLjM0MzM5MiwgMC41MDgzODksIDAuNjc0MjY2LCAwLjg0MDYyNywgMS4wMDY4MyIsIFwKLSAgICAgICAgICAiMC4wNTM5MjMsIDAuMjEzMTE4LCAwLjM0MzM2NiwgMC41MDgzOTEsIDAuNjc0Mjc0LCAwLjg0MDUzOSwgMS4wMDY5NiIsIFwKLSAgICAgICAgICAiMC4wNTM5NzEsIDAuMjEzMTMsIDAuMzQzNDQ0LCAwLjUwODM5NCwgMC42NzQzNzUsIDAuODQwNTU1LCAxLjAwNjkyIiwgXAotICAgICAgICAgICIwLjA1NDEyMywgMC4yMTMxNjEsIDAuMzQzNDY0LCAwLjUwODQwNSwgMC42NzQ0MTYsIDAuODQwNDA4LCAxLjAwNjkxIiwgXAotICAgICAgICAgICIwLjA1NDksIDAuMjEzMzQ0LCAwLjM0MzU2MSwgMC41MDg0NDIsIDAuNjc0MzU3LCAwLjg0MDQ3NSwgMS4wMDYwNyIsIFwKLSAgICAgICAgICAiMC4wNTYyODUsIDAuMjEzODExLCAwLjM0Mzc5MSwgMC41MDg1NjUsIDAuNjc0NDc1LCAwLjg0MDUxNiwgMS4wMDY4OCIsIFwKLSAgICAgICAgICAiMC4wNTc5MDIsIDAuMjE0NjA4LCAwLjM0NDIwNiwgMC41MDg1NjMsIDAuNjc0NjAyLCAwLjg0MDY2OCwgMS4wMDY5NyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTY3NiwgMC4xODIxMTYsIDAuMjQzNDU1LCAwLjMxOTQsIDAuMzk1MjQsIDAuNDcxMDQ5LCAwLjU0Njg2NyIsIFwKLSAgICAgICAgICAiMC4xMDQxMTgsIDAuMTg5NDg2LCAwLjI1MDgwMSwgMC4zMjY3NzYsIDAuNDAyNjE1LCAwLjQ3ODQyMywgMC41NTQyMzgiLCBcCi0gICAgICAgICAgIjAuMTEzNTI2LCAwLjE5ODg1OSwgMC4yNjAyMDUsIDAuMzM2MTUzLCAwLjQxMTk5NSwgMC40ODc4MDUsIDAuNTYzNjA2IiwgXAotICAgICAgICAgICIwLjEyMzA2MiwgMC4yMDgzODEsIDAuMjY5NzA1LCAwLjM0NTY4NSwgMC40MjE1MjgsIDAuNDk3MzM3LCAwLjU3MzE0OCIsIFwKLSAgICAgICAgICAiMC4xMzE4OCwgMC4yMTcyNjgsIDAuMjc4NjIyLCAwLjM1NDU2NywgMC40MzA0MDksIDAuNTA2MjIxLCAwLjU4MjAyNyIsIFwKLSAgICAgICAgICAiMC4xNDQzNzIsIDAuMjMwMDMsIDAuMjkxNDA0LCAwLjM2NzMyMywgMC40NDMxNzIsIDAuNTE4OTg0LCAwLjU5NDgxIiwgXAotICAgICAgICAgICIwLjE1Mzc3NSwgMC4yMzk5MzgsIDAuMzAxMzExLCAwLjM3NzI3NCwgMC40NTMxMjUsIDAuNTI4OTI0LCAwLjYwNDcxNyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTUxNTMsIDAuMjA1NDYzLCAwLjMyNzc2LCAwLjQ4MzE3OCwgMC42MzkzNTgsIDAuNzk2MTU0LCAwLjk1MzMxOSIsIFwKLSAgICAgICAgICAiMC4wNTUyMDUsIDAuMjA1NDksIDAuMzI3Nzc3LCAwLjQ4MzEyOSwgMC42MzkzNTYsIDAuNzk2MTcsIDAuOTUzMjMiLCBcCi0gICAgICAgICAgIjAuMDU1Mjk4LCAwLjIwNTQ3MiwgMC4zMjc3OTIsIDAuNDgzMTIxLCAwLjYzOTM1MSwgMC43OTYxNDksIDAuOTUzMzI0IiwgXAotICAgICAgICAgICIwLjA1NTM1NSwgMC4yMDU0OTQsIDAuMzI3ODE0LCAwLjQ4MzEzNiwgMC42MzkzNTksIDAuNzk2MTYsIDAuOTUzMjQ4IiwgXAotICAgICAgICAgICIwLjA1NTc1NiwgMC4yMDU2NTUsIDAuMzI3ODcxLCAwLjQ4MzE3MywgMC42MzkzOTgsIDAuNzk2MjI3LCAwLjk1MzI0MiIsIFwKLSAgICAgICAgICAiMC4wNTcwOTgsIDAuMjA2MTQ3LCAwLjMyODIxLCAwLjQ4MzM2MiwgMC42Mzk1MDEsIDAuNzk2MzA5LCAwLjk1MzM5MiIsIFwKLSAgICAgICAgICAiMC4wNTg1OTMsIDAuMjA2ODQxLCAwLjMyODY0LCAwLjQ4MzYwNCwgMC42Mzk3MTUsIDAuNzk2NDEzLCAwLjk1MzM4OSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTA5NDEsIDAuMTk0NTQ0LCAwLjI1NzM2MiwgMC4zMzU0OTEsIDAuNDEzNjUxLCAwLjQ5MTc5OSwgMC41Njk3ODMiLCBcCi0gICAgICAgICAgIjAuMTE3NDM2LCAwLjIwMjU3NCwgMC4yNjUzNDYsIDAuMzQzNDk5LCAwLjQyMTYwMywgMC40OTk2NywgMC41Nzc4MDkiLCBcCi0gICAgICAgICAgIjAuMTI1NjUsIDAuMjEwODA1LCAwLjI3MzU3MiwgMC4zNTE3MjgsIDAuNDI5ODM0LCAwLjUwNzg5OSwgMC41ODYwMjMiLCBcCi0gICAgICAgICAgIjAuMTMyMDExLCAwLjIxNzE1NiwgMC4yNzk5NzcsIDAuMzU4MTAzLCAwLjQzNjI2MywgMC41MTQ0MTMsIDAuNTkyMzk4IiwgXAotICAgICAgICAgICIwLjEzNzAwOCwgMC4yMjIxNDYsIDAuMjg0OTExLCAwLjM2MzA2NywgMC40NDExNzMsIDAuNTE5MjM3LCAwLjU5NzM2IiwgXAotICAgICAgICAgICIwLjE0MzMwNCwgMC4yMjg2MDgsIDAuMjkxNDA3LCAwLjM2OTU0LCAwLjQ0NzY2OSwgMC41MjU3NDEsIDAuNjAzODE5IiwgXAotICAgICAgICAgICIwLjE0NzgyLCAwLjIzMzIwNCwgMC4yOTYwNTcsIDAuMzc0MjEzLCAwLjQ1MjM0NiwgMC41MzAzODUsIDAuNjA4NDQ5Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1NDE2OSwgMC4yMTMyODIsIDAuMzQzNDkxLCAwLjUwODQ2OSwgMC42NzQ0MDYsIDAuODQwNDQxLCAxLjAwNzAzIiwgXAotICAgICAgICAgICIwLjA1NDE0MSwgMC4yMTMxNDYsIDAuMzQzNTQyLCAwLjUwODQ1OCwgMC42NzQ0ODcsIDAuODQwNTc4LCAxLjAwNjgiLCBcCi0gICAgICAgICAgIjAuMDU0MTY5LCAwLjIxMzIzOCwgMC4zNDM1NTUsIDAuNTA4NDU3LCAwLjY3NDQ2NSwgMC44NDA1MjksIDEuMDA2ODIiLCBcCi0gICAgICAgICAgIjAuMDU0MTYsIDAuMjEzMjc5LCAwLjM0MzQ5MSwgMC41MDg0NzIsIDAuNjc0MzA3LCAwLjg0MDY1NywgMS4wMDY5MSIsIFwKLSAgICAgICAgICAiMC4wNTQyMjEsIDAuMjEzMjgsIDAuMzQzNTY4LCAwLjUwODQ3OCwgMC42NzQ0NzMsIDAuODQwNDk2LCAxLjAwNjk4IiwgXAotICAgICAgICAgICIwLjA1NDIxMiwgMC4yMTM1MDUsIDAuMzQzNzI2LCAwLjUwODU1LCAwLjY3NDM5NSwgMC44NDA0NTcsIDEuMDA2NjUiLCBcCi0gICAgICAgICAgIjAuMDU0MTkyLCAwLjIxMzU0NCwgMC4zNDM3NTMsIDAuNTA4NTk3LCAwLjY3NDI3NSwgMC44NDAzNiwgMS4wMDY2MiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTQzMTMsIDAuMTk5NjM1LCAwLjI2MDk2OCwgMC4zMzY5MjIsIDAuNDEyNzUzLCAwLjQ4ODU1NywgMC41NjQzNDYiLCBcCi0gICAgICAgICAgIjAuMTIyNDIyLCAwLjIwNzc2NiwgMC4yNjkwNjQsIDAuMzQ1MDI0LCAwLjQyMDg1NiwgMC40OTY2NiwgMC41NzI0ODUiLCBcCi0gICAgICAgICAgIjAuMTMwODU5LCAwLjIxNjEyNSwgMC4yNzc0NTMsIDAuMzUzMzg2LCAwLjQyOTIyMiwgMC41MDUwNDgsIDAuNTgwODMxIiwgXAotICAgICAgICAgICIwLjEzNzIxNCwgMC4yMjI1NTMsIDAuMjgzODk4LCAwLjM1OTg1OSwgMC40MzU2NywgMC41MTE0ODQsIDAuNTg3MjcxIiwgXAotICAgICAgICAgICIwLjE0MjIzNCwgMC4yMjc1NTEsIDAuMjg4ODc3LCAwLjM2NDgxMiwgMC40NDA2NSwgMC41MTY0NzEsIDAuNTkyMjYxIiwgXAotICAgICAgICAgICIwLjE0OTEwNywgMC4yMzQ0NiwgMC4yOTU4MDcsIDAuMzcxNzM2LCAwLjQ0NzU3MSwgMC41MjM0LCAwLjU5OTE4NSIsIFwKLSAgICAgICAgICAiMC4xNTQxODcsIDAuMjM5NTUsIDAuMzAwOTYxLCAwLjM3NjkwNywgMC40NTI3MzIsIDAuNTI4NTUzLCAwLjYwNDM0NSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTUxMTIsIDAuMjA1Mzc0LCAwLjMyNzY3OCwgMC40ODMwNjEsIDAuNjM5MzY0LCAwLjc5NjI1MiwgMC45NTMzNDIiLCBcCi0gICAgICAgICAgIjAuMDU1MTEsIDAuMjA1Mzc3LCAwLjMyNzY4LCAwLjQ4MzA0MSwgMC42MzkyODUsIDAuNzk2MDg5LCAwLjk1MzI2MiIsIFwKLSAgICAgICAgICAiMC4wNTUyMDEsIDAuMjA1MzY1LCAwLjMyNzY2OCwgMC40ODMwMjMsIDAuNjM5MjY3LCAwLjc5NjIwMywgMC45NTMxNzciLCBcCi0gICAgICAgICAgIjAuMDU1MTY2LCAwLjIwNTM1NywgMC4zMjc2NzUsIDAuNDgzMDIyLCAwLjYzOTI3NSwgMC43OTYwOTEsIDAuOTUzMTc5IiwgXAotICAgICAgICAgICIwLjA1NTExOCwgMC4yMDUzODcsIDAuMzI3NjYsIDAuNDgyOTY1LCAwLjYzOTI3MSwgMC43OTU5NzQsIDAuOTUzMDIzIiwgXAotICAgICAgICAgICIwLjA1NTA3OCwgMC4yMDU0NiwgMC4zMjc4MTEsIDAuNDgzMDYzLCAwLjYzOTIzNCwgMC43OTYyMzEsIDAuOTUzMjI4IiwgXAotICAgICAgICAgICIwLjA1NTIyMiwgMC4yMDU0NDUsIDAuMzI3NzU3LCAwLjQ4MzE0NywgMC42MzkzNDQsIDAuNzk2MDA2LCAwLjk1MzAyNiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTMSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU4NjE2LCAwLjE0MzI5OSwgMC4yMDYwMywgMC4yODQxMzcsIDAuMzYyMjE3LCAwLjQ0MDI2NiwgMC41MTg0NjQiLCBcCi0gICAgICAgICAgIjAuMDY2Mzg3LCAwLjE1MTA1MiwgMC4yMTM3NjIsIDAuMjkxODczLCAwLjM2OTk1LCAwLjQ0ODA0OCwgMC41MjYxNSIsIFwKLSAgICAgICAgICAiMC4wNzU5MDgsIDAuMTYwNDQ3LCAwLjIyMzE2NSwgMC4zMDEyNzQsIDAuMzc5MzUsIDAuNDU3NDA5LCAwLjUzNTY2OCIsIFwKLSAgICAgICAgICAiMC4wODQyOTksIDAuMTY4Nzc1LCAwLjIzMTQ4MSwgMC4zMDk1ODUsIDAuMzg3NjYsIDAuNDY1NzEsIDAuNTQ0MDIzIiwgXAotICAgICAgICAgICIwLjA5MTM4MywgMC4xNzU5MTksIDAuMjM4NjI3LCAwLjMxNjcyNCwgMC4zOTQ3OTUsIDAuNDcyODQ5LCAwLjU1MTAxMyIsIFwKLSAgICAgICAgICAiMC4xMDA5NCwgMC4xODU2OTMsIDAuMjQ4NDE5LCAwLjMyNjUxLCAwLjQwNDYxMywgMC40ODI2NDcsIDAuNTYwNzExIiwgXAotICAgICAgICAgICIwLjEwODEwNSwgMC4xOTMxNTYsIDAuMjU1ODc3LCAwLjMzMzk0MywgMC40MTE5OTIsIDAuNDkwMDY1LCAwLjU2ODEzMiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTIzNDMsIDAuMjEyNTcxLCAwLjM0Mjk3NiwgMC41MDgxMDcsIDAuNjc0MDEyLCAwLjg0MDEyOCwgMS4wMDUzOSIsIFwKLSAgICAgICAgICAiMC4wNTIwMzgsIDAuMjEyNDc5LCAwLjM0MzAwOCwgMC41MDgwMjksIDAuNjczODg4LCAwLjg0MDM3LCAxLjAwNTAxIiwgXAotICAgICAgICAgICIwLjA1MTY0NiwgMC4yMTIzNzgsIDAuMzQyOTEyLCAwLjUwNzk5LCAwLjY3MzkwNiwgMC44MzkzMTcsIDEuMDA0ODYiLCBcCi0gICAgICAgICAgIjAuMDUyMTg2LCAwLjIxMjQyOSwgMC4zNDI5MjEsIDAuNTA4MDI5LCAwLjY3MzkwOSwgMC44NDAwMjEsIDEuMDA1MzUiLCBcCi0gICAgICAgICAgIjAuMDUzMTI4LCAwLjIxMjY1NSwgMC4zNDMxMzgsIDAuNTA4MTI1LCAwLjY3Mzk3NywgMC44NDAxMDgsIDEuMDA1MyIsIFwKLSAgICAgICAgICAiMC4wNTQ4NDUsIDAuMjEzMTU4LCAwLjM0MzQ5NiwgMC41MDc1OTcsIDAuNjc0MzI0LCAwLjg0MDQ0MiwgMS4wMDU4NiIsIFwKLSAgICAgICAgICAiMC4wNTY1MzYsIDAuMjEzNjU2LCAwLjM0Mzc0NywgMC41MDgyOTMsIDAuNjczNzI1LCAwLjg0MDQ0MiwgMS4wMDU4OSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjQ4NTMsIDAuMTQ5MjI3LCAwLjIxMDQwNiwgMC4yODYyNjksIDAuMzYyMDc2LCAwLjQzNzg2MiwgMC41MTM2MzYiLCBcCi0gICAgICAgICAgIjAuMDcyMzA3LCAwLjE1NjY1MiwgMC4yMTc4NCwgMC4yOTM3MDksIDAuMzY5NTE2LCAwLjQ0NTMzOSwgMC41MjEwOTYiLCBcCi0gICAgICAgICAgIjAuMDgxNDc4LCAwLjE2NTczMywgMC4yMjY5MDcsIDAuMzAyNzc1LCAwLjM3ODU4NCwgMC40NTQzNzMsIDAuNTMwMTQ3IiwgXAotICAgICAgICAgICIwLjA4OTc4NSwgMC4xNzM5NTEsIDAuMjM1MTQ0LCAwLjMxMTAwOCwgMC4zODY4MTcsIDAuNDYyNjA1LCAwLjUzODQ0NSIsIFwKLSAgICAgICAgICAiMC4wOTcwMDYsIDAuMTgxMTg4LCAwLjI0MjM0NywgMC4zMTgyMjIsIDAuMzk0MDE2LCAwLjQ2OTgxNywgMC41NDU1ODgiLCBcCi0gICAgICAgICAgIjAuMTA2NzE4LCAwLjE5MTEwMiwgMC4yNTIyNzQsIDAuMzI4MTU0LCAwLjQwMzkyNywgMC40Nzk3MzQsIDAuNTU1NTQ4IiwgXAotICAgICAgICAgICIwLjExNDA3NywgMC4xOTg1OSwgMC4yNTk4NDgsIDAuMzM1Njk0LCAwLjQxMTQ3MywgMC40ODcyMzksIDAuNTYzMDI0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1Mjg4MywgMC4yMDQwNTMsIDAuMzI2Njk3LCAwLjQ4MjMyMywgMC42Mzg3MjcsIDAuNzk1NjI2LCAwLjk1Mjc0NiIsIFwKLSAgICAgICAgICAiMC4wNTI3NTcsIDAuMjAzOTQxLCAwLjMyNjY2NiwgMC40ODIzMDMsIDAuNjM4NzAzLCAwLjc5NTc4OCwgMC45NTE4MzYiLCBcCi0gICAgICAgICAgIjAuMDUyMzIxLCAwLjIwMzg4NiwgMC4zMjY2MDksIDAuNDgyMjYzLCAwLjYzODY4OCwgMC43OTU1OTYsIDAuOTUyNzI3IiwgXAotICAgICAgICAgICIwLjA1MjUzMiwgMC4yMDM4OTYsIDAuMzI2NjI2LCAwLjQ4MjI4NSwgMC42Mzg2OTIsIDAuNzk1NTkzLCAwLjk1MzAzMiIsIFwKLSAgICAgICAgICAiMC4wNTMyNDcsIDAuMjA0MDk5LCAwLjMyNjgyOSwgMC40ODE3NzMsIDAuNjM4NzE3LCAwLjc5NTY1OCwgMC45NTI3NjgiLCBcCi0gICAgICAgICAgIjAuMDU0ODExLCAwLjIwNDY0NSwgMC4zMjcyMDQsIDAuNDgyNzUsIDAuNjM4ODg2LCAwLjc5NTg5OSwgMC45NTMxMjYiLCBcCi0gICAgICAgICAgIjAuMDU2MjI3LCAwLjIwNTE2MiwgMC4zMjc1MjQsIDAuNDgyOTc2LCAwLjYzOTEzOCwgMC43OTU4MzcsIDAuOTUyODQ4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlMxIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjUxMTgsIDAuMTQ5NDYyLCAwLjIxMjE1OSwgMC4yOTAyNzYsIDAuMzY4MzU1LCAwLjQ0NjQxMSwgMC41MjQ2OTYiLCBcCi0gICAgICAgICAgIjAuMDczMjcsIDAuMTU3NjEsIDAuMjIwMzA3LCAwLjI5ODQyNywgMC4zNzY1MDgsIDAuNDU0NTU2LCAwLjUzMjg2MSIsIFwKLSAgICAgICAgICAiMC4wODIzNDksIDAuMTY2NjM5LCAwLjIyOTMzNSwgMC4zMDc0MzUsIDAuMzg1NTE0LCAwLjQ2MzY0NiwgMC41NDE5MDciLCBcCi0gICAgICAgICAgIjAuMDg4NTgzLCAwLjE3MjgxNSwgMC4yMzU1MTcsIDAuMzEzNjM2LCAwLjM5MTcxOCwgMC40Njk3NDUsIDAuNTQ3OTc3IiwgXAotICAgICAgICAgICIwLjA5MzEzMSwgMC4xNzcyNTQsIDAuMjM5OTYyLCAwLjMxODA2LCAwLjM5NjE0MiwgMC40NzQxNjMsIDAuNTUyNDg3IiwgXAotICAgICAgICAgICIwLjA5OTAyNiwgMC4xODMwMDYsIDAuMjQ1NzExLCAwLjMyMzgwNSwgMC40MDE4OTksIDAuNDc5OTU2LCAwLjU1ODIyIiwgXAotICAgICAgICAgICIwLjEwMzMxMiwgMC4xODcyNTksIDAuMjQ5ODk4LCAwLjMyODAyOCwgMC40MDYxMTUsIDAuNDg0MTY4LCAwLjU2MjQ3NyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTIyMTUsIDAuMjEyMTg4LCAwLjM0Mjc4MSwgMC41MDc5MzUsIDAuNjczODk2LCAwLjgzOTI1NCwgMS4wMDQ4NCIsIFwKLSAgICAgICAgICAiMC4wNTIxNCwgMC4yMTIxNzEsIDAuMzQyNzg1LCAwLjUwNzkzOCwgMC42NzM5MDksIDAuODQwMDIyLCAxLjAwNTMxIiwgXAotICAgICAgICAgICIwLjA1MTkwMiwgMC4yMTIwODUsIDAuMzQyNzQxLCAwLjUwNzc4MiwgMC42NzM2NDksIDAuODQwMDY4LCAxLjAwNTMyIiwgXAotICAgICAgICAgICIwLjA1MTU4MywgMC4yMTIwMjksIDAuMzQyNjgxLCAwLjUwNzg3OCwgMC42NzQwNjMsIDAuODQwMDE4LCAxLjAwNjgzIiwgXAotICAgICAgICAgICIwLjA1MTQ2OSwgMC4yMTE4ODMsIDAuMzQyNTM0LCAwLjUwNzgxNiwgMC42NzM3NzcsIDAuODM5MzEsIDEuMDA2NzkiLCBcCi0gICAgICAgICAgIjAuMDUxNTY5LCAwLjIxMTc4NSwgMC4zNDI0MzQsIDAuNTA3MzEyLCAwLjY3MzkxOCwgMC44NDAwNjIsIDEuMDA0ODIiLCBcCi0gICAgICAgICAgIjAuMDUxNjUyLCAwLjIxMTY4MiwgMC4zNDIzMTYsIDAuNTA3ODM3LCAwLjY3MzgzNCwgMC44NDAwNzgsIDEuMDA1MzciKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY4MDYxLCAwLjE1MzA2LCAwLjIxNDM0MSwgMC4yOTAyMzUsIDAuMzY2MDQ2LCAwLjQ0MTgzNSwgMC41MTc3MTMiLCBcCi0gICAgICAgICAgIjAuMDc2NjMxLCAwLjE2MTYwNywgMC4yMjI4OTMsIDAuMjk4Nzg5LCAwLjM3NDYwMSwgMC40NTA0NSwgMC41MjYxODMiLCBcCi0gICAgICAgICAgIjAuMDg1OTMxLCAwLjE3MDg0LCAwLjIzMjExNywgMC4zMDgwMTgsIDAuMzgzODMxLCAwLjQ1OTYyNSwgMC41MzU0NSIsIFwKLSAgICAgICAgICAiMC4wOTI1MzEsIDAuMTc3MzYyLCAwLjIzODY0NSwgMC4zMTQ1MzgsIDAuMzkwMzYsIDAuNDY2MTUzLCAwLjU0MTkzMiIsIFwKLSAgICAgICAgICAiMC4wOTc0MjksIDAuMTgyMTEyLCAwLjI0MzM4NiwgMC4zMTkyNzIsIDAuMzk1MDc5LCAwLjQ3MDg4MSwgMC41NDY2NyIsIFwKLSAgICAgICAgICAiMC4xMDM2NTMsIDAuMTg4MTY0LCAwLjI0OTQyMSwgMC4zMjUzNDQsIDAuNDAxMTU1LCAwLjQ3Njk1NiwgMC41NTI3NDciLCBcCi0gICAgICAgICAgIjAuMTA4MzEyLCAwLjE5Mjc4LCAwLjI1NDAxMywgMC4zMjk5NDMsIDAuNDA1NzM2LCAwLjQ4MTUzOSwgMC41NTczMzciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDUzNTc3LCAwLjIwNDc5MywgMC4zMjcyNywgMC40ODI3NTMsIDAuNjM5MDM5LCAwLjc5NTg2LCAwLjk1MTMyIiwgXAotICAgICAgICAgICIwLjA1MzQ5MywgMC4yMDQ2ODIsIDAuMzI3MjM0LCAwLjQ4MjY4NywgMC42Mzg5MTksIDAuNzk0NiwgMC45NTI4MzgiLCBcCi0gICAgICAgICAgIjAuMDUzMDYxLCAwLjIwNDYyLCAwLjMyNzE2MywgMC40ODI2ODEsIDAuNjM4OTc1LCAwLjc5NTgyNSwgMC45NTMxNjEiLCBcCi0gICAgICAgICAgIjAuMDUyNjkzLCAwLjIwNDUyLCAwLjMyNzA5NiwgMC40ODI1ODgsIDAuNjM4ODc5LCAwLjc5NTY3OSwgMC45NTI3NTkiLCBcCi0gICAgICAgICAgIjAuMDUyNDQ3LCAwLjIwNDM2OCwgMC4zMjcwNzEsIDAuNDgyNTk5LCAwLjYzODgyNSwgMC43OTU2NzYsIDAuOTUyNzYyIiwgXAotICAgICAgICAgICIwLjA1MjQ4NiwgMC4yMDQwNzgsIDAuMzI2ODc1LCAwLjQ4MjA0LCAwLjYzODI1NywgMC43OTU2MywgMC45NTE3MzkiLCBcCi0gICAgICAgICAgIjAuMDUyNTA0LCAwLjIwNDExNSwgMC4zMjY4NDgsIDAuNDgxODgsIDAuNjM4MTY0LCAwLjc5NTUzNywgMC45NTI3OTkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQwOTIsIDAuMDA0LCAwLjAwMzk4NywgMC4wMDM5NzksIDAuMDAzOTc0LCAwLjAwMzk3MywgMC4wMDM5NyIsIFwKLSAgICAgICAgICAiMC4wMDQwNjcsIDAuMDAzOTc5LCAwLjAwMzk2NywgMC4wMDM5NTksIDAuMDAzOTU1LCAwLjAwMzk1MywgMC4wMDM5NTEiLCBcCi0gICAgICAgICAgIjAuMDA0MDY1LCAwLjAwMzk4MiwgMC4wMDM5NywgMC4wMDM5NjQsIDAuMDAzOTYxLCAwLjAwMzk1OCwgMC4wMDM5NTYiLCBcCi0gICAgICAgICAgIjAuMDA0MTIxLCAwLjAwNDAxNSwgMC4wMDQwMDIsIDAuMDAzOTk0LCAwLjAwMzk5MSwgMC4wMDM5ODcsIDAuMDAzOTg1IiwgXAotICAgICAgICAgICIwLjAwNDE2OSwgMC4wMDQwNTcsIDAuMDA0MDQzLCAwLjAwNDAzNCwgMC4wMDQwMywgMC4wMDQwMjcsIDAuMDA0MDI1IiwgXAotICAgICAgICAgICIwLjAwNDMwNywgMC4wMDQxNTgsIDAuMDA0MTQsIDAuMDA0MTI3LCAwLjAwNDEyNCwgMC4wMDQxMiwgMC4wMDQxMTQiLCBcCi0gICAgICAgICAgIjAuMDA0NDEyLCAwLjAwNDI1LCAwLjAwNDIzMSwgMC4wMDQyMTcsIDAuMDA0MjEyLCAwLjAwNDIxLCAwLjAwNDIwMyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNzM5MiwgMC4wMDczMDUsIDAuMDA3Mjk1LCAwLjAwNzI5MiwgMC4wMDcyODksIDAuMDA3Mjg4LCAwLjAwNzI4NyIsIFwKLSAgICAgICAgICAiMC4wMDczNzEsIDAuMDA3MjksIDAuMDA3MjgzLCAwLjAwNzI3OSwgMC4wMDcyNzcsIDAuMDA3Mjc1LCAwLjAwNzI3NSIsIFwKLSAgICAgICAgICAiMC4wMDczNzIsIDAuMDA3MjkyLCAwLjAwNzI4NiwgMC4wMDcyODMsIDAuMDA3MjgyLCAwLjAwNzI4MiwgMC4wMDcyODEiLCBcCi0gICAgICAgICAgIjAuMDA3NDE2LCAwLjAwNzMxOCwgMC4wMDczMSwgMC4wMDczMDcsIDAuMDA3MzA1LCAwLjAwNzMwNSwgMC4wMDczMDQiLCBcCi0gICAgICAgICAgIjAuMDA3NDcxLCAwLjAwNzM1OSwgMC4wMDczNTEsIDAuMDA3MzQ4LCAwLjAwNzM0NiwgMC4wMDczNDQsIDAuMDA3MzQ0IiwgXAotICAgICAgICAgICIwLjAwNzU5NCwgMC4wMDc0NSwgMC4wMDc0MzgsIDAuMDA3NDMyLCAwLjAwNzQyOSwgMC4wMDc0MjgsIDAuMDA3NDI2IiwgXAotICAgICAgICAgICIwLjAwNzczMSwgMC4wMDc1NTIsIDAuMDA3NTM0LCAwLjAwNzUyNSwgMC4wMDc1MTksIDAuMDA3NTE4LCAwLjAwNzUxNyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzkwMSwgMC4wMDM4OTQsIDAuMDAzOSwgMC4wMDM5MDYsIDAuMDAzOTA3LCAwLjAwMzkwOSwgMC4wMDM5MDkiLCBcCi0gICAgICAgICAgIjAuMDAzODc3LCAwLjAwMzg3MiwgMC4wMDM4NzksIDAuMDAzODg0LCAwLjAwMzg4NywgMC4wMDM4ODgsIDAuMDAzODg5IiwgXAotICAgICAgICAgICIwLjAwMzg3NSwgMC4wMDM4NzQsIDAuMDAzODg0LCAwLjAwMzg5LCAwLjAwMzg5NCwgMC4wMDM4OTcsIDAuMDAzODk4IiwgXAotICAgICAgICAgICIwLjAwMzk0LCAwLjAwMzkxMiwgMC4wMDM5MTgsIDAuMDAzOTIzLCAwLjAwMzkyNywgMC4wMDM5MjksIDAuMDAzOTMiLCBcCi0gICAgICAgICAgIjAuMDAzOTkzLCAwLjAwMzk1MywgMC4wMDM5NiwgMC4wMDM5NjYsIDAuMDAzOTY5LCAwLjAwMzk3MiwgMC4wMDM5NzMiLCBcCi0gICAgICAgICAgIjAuMDA0MTUsIDAuMDA0MDYxLCAwLjAwNDA2NSwgMC4wMDQwNjUsIDAuMDA0MDY4LCAwLjAwNDA3MSwgMC4wMDQwNjkiLCBcCi0gICAgICAgICAgIjAuMDA0MjY3LCAwLjAwNDE1NSwgMC4wMDQxNTUsIDAuMDA0MTU3LCAwLjAwNDE2MiwgMC4wMDQxNjUsIDAuMDA0MTYyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA3NDg0LCAwLjAwNzQ2NCwgMC4wMDc0NzEsIDAuMDA3NDc2LCAwLjAwNzQ3OSwgMC4wMDc0OCwgMC4wMDc0ODIiLCBcCi0gICAgICAgICAgIjAuMDA3NDcyLCAwLjAwNzQ1MSwgMC4wMDc0NTksIDAuMDA3NDY0LCAwLjAwNzQ2NywgMC4wMDc0NjksIDAuMDA3NDciLCBcCi0gICAgICAgICAgIjAuMDA3NDY3LCAwLjAwNzQ1MiwgMC4wMDc0NjEsIDAuMDA3NDY3LCAwLjAwNzQ3MSwgMC4wMDc0NzMsIDAuMDA3NDc1IiwgXAotICAgICAgICAgICIwLjAwNzUxNCwgMC4wMDc0NzYsIDAuMDA3NDg0LCAwLjAwNzQ5LCAwLjAwNzQ5NCwgMC4wMDc0OTYsIDAuMDA3NDk4IiwgXAotICAgICAgICAgICIwLjAwNzU3NCwgMC4wMDc1MTUsIDAuMDA3NTIyLCAwLjAwNzUyOCwgMC4wMDc1MzEsIDAuMDA3NTM0LCAwLjAwNzUzNiIsIFwKLSAgICAgICAgICAiMC4wMDc2ODQsIDAuMDA3NTk5LCAwLjAwNzYwNCwgMC4wMDc2MDksIDAuMDA3NjEyLCAwLjAwNzYxNSwgMC4wMDc2MTciLCBcCi0gICAgICAgICAgIjAuMDA3ODE5LCAwLjAwNzY5OSwgMC4wMDc2OTksIDAuMDA3NzAxLCAwLjAwNzcwMywgMC4wMDc3MDYsIDAuMDA3NzA3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0MDA5LCAwLjAwMzk5NSwgMC4wMDQwMDEsIDAuMDA0MDA0LCAwLjAwNDAwNywgMC4wMDQwMDgsIDAuMDA0MDA5IiwgXAotICAgICAgICAgICIwLjAwMzk4NywgMC4wMDM5NzMsIDAuMDAzOTc5LCAwLjAwMzk4MywgMC4wMDM5ODcsIDAuMDAzOTg4LCAwLjAwMzk4OSIsIFwKLSAgICAgICAgICAiMC4wMDM5NzYsIDAuMDAzOTY4LCAwLjAwMzk3NywgMC4wMDM5ODMsIDAuMDAzOTg3LCAwLjAwMzk5LCAwLjAwMzk5IiwgXAotICAgICAgICAgICIwLjAwNDAyNiwgMC4wMDM5OTQsIDAuMDA0MDAyLCAwLjAwNDAwOCwgMC4wMDQwMTIsIDAuMDA0MDE1LCAwLjAwNDAxNSIsIFwKLSAgICAgICAgICAiMC4wMDQwODUsIDAuMDA0MDM0LCAwLjAwNDA0MSwgMC4wMDQwNDYsIDAuMDA0MDUsIDAuMDA0MDUyLCAwLjAwNDA1NCIsIFwKLSAgICAgICAgICAiMC4wMDQyMTUsIDAuMDA0MTI3LCAwLjAwNDEzLCAwLjAwNDEzMiwgMC4wMDQxMzcsIDAuMDA0MTM5LCAwLjAwNDEzOCIsIFwKLSAgICAgICAgICAiMC4wMDQzMjYsIDAuMDA0MjE2LCAwLjAwNDIxOCwgMC4wMDQyMTksIDAuMDA0MjIzLCAwLjAwNDIyNCwgMC4wMDQyMjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDgwNTMsIDAuMDA4MDEyLCAwLjAwODAxNiwgMC4wMDgwMiwgMC4wMDgwMjIsIDAuMDA4MDIzLCAwLjAwODAyNCIsIFwKLSAgICAgICAgICAiMC4wMDgwMzQsIDAuMDA3OTk3LCAwLjAwODAwMywgMC4wMDgwMDcsIDAuMDA4MDEsIDAuMDA4MDExLCAwLjAwODAxMiIsIFwKLSAgICAgICAgICAiMC4wMDgwMzIsIDAuMDA3OTk1LCAwLjAwODAwMiwgMC4wMDgwMDgsIDAuMDA4MDEyLCAwLjAwODAxNCwgMC4wMDgwMTYiLCBcCi0gICAgICAgICAgIjAuMDA4MDY5LCAwLjAwODAxNSwgMC4wMDgwMjMsIDAuMDA4MDI4LCAwLjAwODAzMiwgMC4wMDgwMzQsIDAuMDA4MDM2IiwgXAotICAgICAgICAgICIwLjAwODExOSwgMC4wMDgwNTEsIDAuMDA4MDU3LCAwLjAwODA2MywgMC4wMDgwNjYsIDAuMDA4MDY4LCAwLjAwODA3IiwgXAotICAgICAgICAgICIwLjAwODI5NiwgMC4wMDgxNTUsIDAuMDA4MTUsIDAuMDA4MTUsIDAuMDA4MTUxLCAwLjAwODE1MSwgMC4wMDgxNTIiLCBcCi0gICAgICAgICAgIjAuMDA4MzY1LCAwLjAwODIyNywgMC4wMDgyMjQsIDAuMDA4MjI1LCAwLjAwODIyOSwgMC4wMDgyMywgMC4wMDgyMzEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJEIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDM2OTYsIDAuMDAzNjc5LCAwLjAwMzY4NiwgMC4wMDM2OSwgMC4wMDM2OTIsIDAuMDAzNjk0LCAwLjAwMzY5NSIsIFwKLSAgICAgICAgICAiMC4wMDM2NzgsIDAuMDAzNjYxLCAwLjAwMzY2NywgMC4wMDM2NzEsIDAuMDAzNjczLCAwLjAwMzY3NSwgMC4wMDM2NzciLCBcCi0gICAgICAgICAgIjAuMDAzNjY4LCAwLjAwMzY1OSwgMC4wMDM2NjksIDAuMDAzNjc1LCAwLjAwMzY3OSwgMC4wMDM2ODEsIDAuMDAzNjgyIiwgXAotICAgICAgICAgICIwLjAwMzczNiwgMC4wMDM2OTUsIDAuMDAzNywgMC4wMDM3MDUsIDAuMDAzNzA4LCAwLjAwMzcxMywgMC4wMDM3MTIiLCBcCi0gICAgICAgICAgIjAuMDAzNzc1LCAwLjAwMzczMSwgMC4wMDM3MzksIDAuMDAzNzQ0LCAwLjAwMzc1LCAwLjAwMzc1LCAwLjAwMzc1MiIsIFwKLSAgICAgICAgICAiMC4wMDM5MjEsIDAuMDAzODMyLCAwLjAwMzgzNCwgMC4wMDM4MzcsIDAuMDAzODQsIDAuMDAzODQ0LCAwLjAwMzg0MyIsIFwKLSAgICAgICAgICAiMC4wMDQwMywgMC4wMDM5MjMsIDAuMDAzOTI0LCAwLjAwMzkyNiwgMC4wMDM5MzEsIDAuMDAzOTM0LCAwLjAwMzkzMiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwODE5MSwgMC4wMDgxNSwgMC4wMDgxNTUsIDAuMDA4MTU5LCAwLjAwODE2MSwgMC4wMDgxNjIsIDAuMDA4MTYzIiwgXAotICAgICAgICAgICIwLjAwODE3MiwgMC4wMDgxMzcsIDAuMDA4MTQzLCAwLjAwODE0NywgMC4wMDgxNSwgMC4wMDgxNTEsIDAuMDA4MTUyIiwgXAotICAgICAgICAgICIwLjAwODE2NiwgMC4wMDgxMzUsIDAuMDA4MTQ0LCAwLjAwODE0OSwgMC4wMDgxNTMsIDAuMDA4MTU1LCAwLjAwODE1NyIsIFwKLSAgICAgICAgICAiMC4wMDgyMjksIDAuMDA4MTY2LCAwLjAwODE3MSwgMC4wMDgxNzYsIDAuMDA4MTc5LCAwLjAwODE4MSwgMC4wMDgxODIiLCBcCi0gICAgICAgICAgIjAuMDA4MjkyLCAwLjAwODIwOCwgMC4wMDgyMTEsIDAuMDA4MjE1LCAwLjAwODIxOCwgMC4wMDgyMiwgMC4wMDgyMjEiLCBcCi0gICAgICAgICAgIjAuMDA4Mzk3LCAwLjAwODI5LCAwLjAwODI5MywgMC4wMDgyOTYsIDAuMDA4Mjk4LCAwLjAwODMsIDAuMDA4MzAxIiwgXAotICAgICAgICAgICIwLjAwODUyNSwgMC4wMDgzODMsIDAuMDA4MzgxLCAwLjAwODM4MSwgMC4wMDgzODUsIDAuMDA4Mzg2LCAwLjAwODM4NyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlMwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTA4NTcsIDAuMDEwNzg1LCAwLjAxMDc3OCwgMC4wMTA3NzQsIDAuMDEwNzcyLCAwLjAxMDc3MiwgMC4wMTA3NzEiLCBcCi0gICAgICAgICAgIjAuMDEwODQsIDAuMDEwNzY4LCAwLjAxMDc2MSwgMC4wMTA3NTcsIDAuMDEwNzU2LCAwLjAxMDc1NSwgMC4wMTA3NTMiLCBcCi0gICAgICAgICAgIjAuMDEwOTU3LCAwLjAxMDg4NSwgMC4wMTA4NzgsIDAuMDEwODc1LCAwLjAxMDg3MiwgMC4wMTA4NzIsIDAuMDEwODciLCBcCi0gICAgICAgICAgIjAuMDExMTI5LCAwLjAxMTA2MywgMC4wMTEwNTYsIDAuMDExMDUyLCAwLjAxMTA1MSwgMC4wMTEwNTEsIDAuMDExMDQ5IiwgXAotICAgICAgICAgICIwLjAxMTMzOSwgMC4wMTEyNjgsIDAuMDExMjYsIDAuMDExMjU2LCAwLjAxMTI1NSwgMC4wMTEyNTMsIDAuMDExMjUyIiwgXAotICAgICAgICAgICIwLjAxMTYxLCAwLjAxMTU0LCAwLjAxMTUzMSwgMC4wMTE1MjUsIDAuMDExNTI1LCAwLjAxMTUyOCwgMC4wMTE1MjQiLCBcCi0gICAgICAgICAgIjAuMDExOTksIDAuMDExOTE5LCAwLjAxMTkxMSwgMC4wMTE5MDcsIDAuMDExOTA0LCAwLjAxMTkwNCwgMC4wMTE5MDMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTA2NzIsIDAuMDEwNjQsIDAuMDEwNjQ3LCAwLjAxMDY1MywgMC4wMTA2NTYsIDAuMDEwNjU4LCAwLjAxMDY1OSIsIFwKLSAgICAgICAgICAiMC4wMTA2NTYsIDAuMDEwNjIzLCAwLjAxMDYzLCAwLjAxMDYzNiwgMC4wMTA2MzksIDAuMDEwNjQxLCAwLjAxMDY0MiIsIFwKLSAgICAgICAgICAiMC4wMTA3MzgsIDAuMDEwNzAxLCAwLjAxMDcwOCwgMC4wMTA3MTQsIDAuMDEwNzE3LCAwLjAxMDcxOSwgMC4wMTA3MiIsIFwKLSAgICAgICAgICAiMC4wMTA4MDksIDAuMDEwNzgxLCAwLjAxMDc4OCwgMC4wMTA3OTMsIDAuMDEwNzk3LCAwLjAxMDc5OSwgMC4wMTA4MDEiLCBcCi0gICAgICAgICAgIjAuMDEwOTMyLCAwLjAxMDg5NSwgMC4wMTA5MDEsIDAuMDEwOTA2LCAwLjAxMDkwOSwgMC4wMTA5MTEsIDAuMDEwOTEzIiwgXAotICAgICAgICAgICIwLjAxMTEzNCwgMC4wMTEwOTYsIDAuMDExMTA0LCAwLjAxMTExLCAwLjAxMTExMywgMC4wMTExMTUsIDAuMDExMTE3IiwgXAotICAgICAgICAgICIwLjAxMTMwMywgMC4wMTEyNjksIDAuMDExMjc4LCAwLjAxMTI4NCwgMC4wMTEyODcsIDAuMDExMjg5LCAwLjAxMTI5MSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlMxIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDU5NDYsIDAuMDA1OTg1LCAwLjAwNTk5NSwgMC4wMDU5OTgsIDAuMDA1OTk4LCAwLjAwNjAwNSwgMC4wMDYwMDMiLCBcCi0gICAgICAgICAgIjAuMDA2MDE1LCAwLjAwNjA1NCwgMC4wMDYwNjQsIDAuMDA2MDcsIDAuMDA2MDc0LCAwLjAwNjA3NywgMC4wMDYwNzciLCBcCi0gICAgICAgICAgIjAuMDA2MTY2LCAwLjAwNjIwNiwgMC4wMDYyMTgsIDAuMDA2MjI1LCAwLjAwNjIyOSwgMC4wMDYyMzEsIDAuMDA2MjMzIiwgXAotICAgICAgICAgICIwLjAwNjMzMiwgMC4wMDYzNjcsIDAuMDA2Mzc5LCAwLjAwNjM4NiwgMC4wMDYzOTEsIDAuMDA2MzgxLCAwLjAwNjM5NSIsIFwKLSAgICAgICAgICAiMC4wMDY0OTgsIDAuMDA2NTI3LCAwLjAwNjUzOSwgMC4wMDY1NDYsIDAuMDA2NTUsIDAuMDA2NTUzLCAwLjAwNjU1NSIsIFwKLSAgICAgICAgICAiMC4wMDY4MTgsIDAuMDA2ODM2LCAwLjAwNjg0NywgMC4wMDY4NTIsIDAuMDA2ODU4LCAwLjAwNjg2MiwgMC4wMDY4NjEiLCBcCi0gICAgICAgICAgIjAuMDA3MTA4LCAwLjAwNzEyLCAwLjAwNzEyNCwgMC4wMDcxMzEsIDAuMDA3MTM0LCAwLjAwNzEzNywgMC4wMDcxMzciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQ2MzksIDAuMDA0Njc0LCAwLjAwNDY4MywgMC4wMDQ2ODgsIDAuMDA0NjksIDAuMDA0NjkyLCAwLjAwNDY5MyIsIFwKLSAgICAgICAgICAiMC4wMDQ3MiwgMC4wMDQ3NTcsIDAuMDA0NzY4LCAwLjAwNDc3NCwgMC4wMDQ3NzcsIDAuMDA0Nzc5LCAwLjAwNDc4IiwgXAotICAgICAgICAgICIwLjAwNDg2OCwgMC4wMDQ5MSwgMC4wMDQ5MjQsIDAuMDA0OTMyLCAwLjAwNDkzNiwgMC4wMDQ5MzksIDAuMDA0OTQxIiwgXAotICAgICAgICAgICIwLjAwNTA1LCAwLjAwNTA5MSwgMC4wMDUxMDUsIDAuMDA1MTE0LCAwLjAwNTExOSwgMC4wMDUxMjIsIDAuMDA1MTI1IiwgXAotICAgICAgICAgICIwLjAwNTIzNCwgMC4wMDUyNzEsIDAuMDA1Mjg1LCAwLjAwNTI5NCwgMC4wMDUzLCAwLjAwNTMwMywgMC4wMDUzMDUiLCBcCi0gICAgICAgICAgIjAuMDA1NTYyLCAwLjAwNTU4OCwgMC4wMDU2MDIsIDAuMDA1NjEsIDAuMDA1NjE1LCAwLjAwNTYxOCwgMC4wMDU2MjEiLCBcCi0gICAgICAgICAgIjAuMDA1ODcxLCAwLjAwNTg5MSwgMC4wMDU5MDIsIDAuMDA1OTEsIDAuMDA1OTE1LCAwLjAwNTkxOCwgMC4wMDU5MiIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBNWDRYTCAqCi0gKiAtLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoTVg0WEwpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC42NTU3NDE7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDcwMTM2NzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA3MDAxMzk7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNzAxMzY3OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDg1NCwgMC4wMDA4MjksIDAuMDAwODQ2LCAwLjAwMDg5MiwgMC4wMDA5NTYsIDAuMDAxMDg1LCAwLjAwMTIxNSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjg5MSwgMC4wMDI4NzUsIDAuMDAyODg4LCAwLjAwMjkyNSwgMC4wMDI5ODUsIDAuMDAzMDk5LCAwLjAwMzIyMSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjIxNDU3OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYyMDE2ODsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2MjE0NTc7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjg4LCAwLjAwMDI5LCAwLjAwMDI5MSwgMC4wMDAyOTEsIDAuMDAwMjkxLCAwLjAwMDI5MiwgMC4wMDAyOTIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAzMTUsIDAuMDAwMzAzLCAwLjAwMDMwMiwgMC4wMDAzMDEsIDAuMDAwMywgMC4wMDAyOTksIDAuMDAwMjk5Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihDKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2NTMzNzM7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjUxOTc3OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDY1MzM3MzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA4OTMsIDAuMDAwODY3LCAwLjAwMDg4NywgMC4wMDA5MzQsIDAuMDAxMDAxLCAwLjAwMTEzNCwgMC4wMDEyNjYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDI2MzgsIDAuMDAyNjIxLCAwLjAwMjYzNSwgMC4wMDI2NzIsIDAuMDAyNzI5LCAwLjAwMjg0NywgMC4wMDI5NzEiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEQpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY1NDc0OTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2NTM2NjU7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjU0NzQ5OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDI4OSwgMC4wMDAyOSwgMC4wMDAyOTEsIDAuMDAwMjkxLCAwLjAwMDI5MSwgMC4wMDAyOTEsIDAuMDAwMjkyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzE2LCAwLjAwMDMwNCwgMC4wMDAzMDIsIDAuMDAwMzAxLCAwLjAwMDMsIDAuMDAwMywgMC4wMDAyOTkiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFMwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDIwOTAwNzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDIwOTAwNzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDIwODk5NzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA0MTYsIDAuMDAwNDE1LCAwLjAwMDQ4NywgMC4wMDA1ODQsIDAuMDAwNjk4LCAwLjAwMDkzOCwgMC4wMDExMjYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDM5NTEsIDAuMDAzOTUzLCAwLjAwNDAxNywgMC4wMDQxMDIsIDAuMDA0MjA3LCAwLjAwNDQwNiwgMC4wMDQ1ODgiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFMxKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDExODQwODsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDExODQwODsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDExODQ7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMDI3LCAwLjAwMDAzNiwgMC4wMDAxMjQsIDAuMDAwMjI0LCAwLjAwMDM2NiwgMC4wMDA1NjUsIDAuMDAwNzg3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyNDcyLCAwLjAwMjQ4NywgMC4wMDI1OTEsIDAuMDAyNjYyLCAwLjAwMjc3OSwgMC4wMDI5OTUsIDAuMDAzMTgxIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMTk1MzY3OwotICAgIGZ1bmN0aW9uIDogIigoUzEgKChTMCBEKSArICghUzAgQykpKSArICghUzEgKChTMCBCKSArICghUzAgQSkpKSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExODIwOSwgMC4xMjg5NywgMC4yMjQwMDgsIDAuMzgxOTAyLCAwLjUzOTc4OCwgMC45MDgwMjgsIDEuMTE4NDEiLCBcCi0gICAgICAgICAgIjAuMTI0MzM4LCAwLjEzNTEwMywgMC4yMzAxNDksIDAuMzg4MDQyLCAwLjU0NTkyMiwgMC45MTQxNTcsIDEuMTI0NDciLCBcCi0gICAgICAgICAgIjAuMTMyMDU5LCAwLjE0Mjc4MywgMC4yMzc4NjQsIDAuMzk1NzQsIDAuNTUzNjQ1LCAwLjkyMTkwOCwgMS4xMzI1MSIsIFwKLSAgICAgICAgICAiMC4xMzkxNDEsIDAuMTQ5ODk2LCAwLjI0NDk3MSwgMC40MDI4NTEsIDAuNTYwNzU5LCAwLjkyODkxNSwgMS4xMzk0MiIsIFwKLSAgICAgICAgICAiMC4xNDU3NiwgMC4xNTY1MTIsIDAuMjUxNTg3LCAwLjQwOTQ2MywgMC41NjczNzgsIDAuOTM1NTc1LCAxLjE0NTk5IiwgXAotICAgICAgICAgICIwLjE1NTA0MSwgMC4xNjU4NDcsIDAuMjYwOTMzLCAwLjQxODgwMywgMC41NzY3NzIsIDAuOTQ1MDU5LCAxLjE1NTI2IiwgXAotICAgICAgICAgICIwLjE2MjI3MSwgMC4xNzMxMTIsIDAuMjY4MjI5LCAwLjQyNjA5NywgMC41ODM4NzgsIDAuOTUyMTIyLCAxLjE2MjQ3Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEyMzQ0LCAwLjE0NDg0NywgMC4zNDA2NDMsIDAuNjcxOTQzLCAxLjAwNDE1LCAxLjc3NzM1LCAyLjIyMzE5IiwgXAotICAgICAgICAgICIwLjEyMzUwNCwgMC4xNDQ4NDksIDAuMzQwNjIyLCAwLjY3MTk4NCwgMS4wMDI3MiwgMS43Nzc1MywgMi4yMjMyNCIsIFwKLSAgICAgICAgICAiMC4xMjM1MjEsIDAuMTQ0ODE4LCAwLjM0MDY0LCAwLjY3MTgxLCAxLjAwNDEzLCAxLjc3OTg1LCAyLjIyMDU1IiwgXAotICAgICAgICAgICIwLjEyMzcwMSwgMC4xNDQ5OSwgMC4zNDA2ODUsIDAuNjcxODE1LCAxLjAwNDExLCAxLjc3OTc5LCAyLjIyMDUiLCBcCi0gICAgICAgICAgIjAuMTIzOTg0LCAwLjE0NTIzOCwgMC4zNDA3NjgsIDAuNjcxODI5LCAxLjAwMzk4LCAxLjc3OTY0LCAyLjIxOTU3IiwgXAotICAgICAgICAgICIwLjEyNDc2NCwgMC4xNDU5NzUsIDAuMzQxMDA4LCAwLjY3MTg0MSwgMS4wMDI2MywgMS43NzcyNCwgMi4yMjEzNCIsIFwKLSAgICAgICAgICAiMC4xMjU0MjEsIDAuMTQ2NDg2LCAwLjM0MTEzOSwgMC42NzE4NCwgMS4wMDM4NiwgMS43Nzk1OCwgMi4yMjI2OSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMjAxOTUsIDAuMTMwMzMzLCAwLjIxODA1OSwgMC4zNjI4MTEsIDAuNTA3NTI0LCAwLjg0NTA3OSwgMS4wMzc5NiIsIFwKLSAgICAgICAgICAiMC4xMjYxNzUsIDAuMTM2MjY3LCAwLjIyNDAwNiwgMC4zNjg3ODgsIDAuNTEzNDYxLCAwLjg1MTAxMywgMS4wNDM5NCIsIFwKLSAgICAgICAgICAiMC4xMzMwNzQsIDAuMTQzMTg5LCAwLjIzMDkxNiwgMC4zNzU2NjksIDAuNTIwMzc1LCAwLjg1Nzk5NCwgMS4wNTA4MiIsIFwKLSAgICAgICAgICAiMC4xMzk2LCAwLjE0OTczOCwgMC4yMzc0NzMsIDAuMzgyMjMxLCAwLjUyNjkyNywgMC44NjQ0OTksIDEuMDU3MzgiLCBcCi0gICAgICAgICAgIjAuMTQ1NTE4LCAwLjE1NTY2MywgMC4yNDM0MTgsIDAuMzg4MTY3LCAwLjUzMjg3MywgMC44NzA0NCwgMS4wNjMzIiwgXAotICAgICAgICAgICIwLjE1Mzg4MiwgMC4xNjQwNjcsIDAuMjUxODk4LCAwLjM5NjYzNiwgMC41NDEzMywgMC44Nzg5MDksIDEuMDcxOCIsIFwKLSAgICAgICAgICAiMC4xNjAzODcsIDAuMTcwNTc0LCAwLjI1ODQ2MSwgMC40MDMyMTQsIDAuNTQ3ODk2LCAwLjg4NTU0OSwgMS4wNzgzNyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTQzNjgsIDAuMTMzMjUyLCAwLjMwNjU3MSwgMC42MDE3NDQsIDAuODk4NTEzLCAxLjU5MjEsIDEuOTg2MTUiLCBcCi0gICAgICAgICAgIjAuMTE0MzE0LCAwLjEzMzIzNywgMC4zMDY3MzMsIDAuNjAwNTc0LCAwLjg5NzMyNSwgMS41OTIwNCwgMS45ODg3MiIsIFwKLSAgICAgICAgICAiMC4xMTQzNTQsIDAuMTMzMjM5LCAwLjMwNjU5MiwgMC42MDE3OTQsIDAuODk3NDIyLCAxLjU5MjI3LCAxLjk4ODUzIiwgXAotICAgICAgICAgICIwLjExNDU5LCAwLjEzMzQ0MywgMC4zMDY2NTksIDAuNjAxNzU3LCAwLjg5ODQzOSwgMS41OTIwNiwgMS45ODYwNyIsIFwKLSAgICAgICAgICAiMC4xMTQ5NjYsIDAuMTMzNzc0LCAwLjMwNjcwOSwgMC42MDE4NTIsIDAuODk4NTEyLCAxLjU5MjExLCAxLjk4ODMiLCBcCi0gICAgICAgICAgIjAuMTE1ODAzLCAwLjEzNDUzNCwgMC4zMDcwNjMsIDAuNjAxMjUsIDAuODk4MzQ0LCAxLjU5MDA3LCAxLjk4NjA2IiwgXAotICAgICAgICAgICIwLjExNjUwOSwgMC4xMzUyLCAwLjMwNzQ3OSwgMC42MDIwMDMsIDAuODk3Mzk5LCAxLjU5MjQ1LCAxLjk4ODM3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExODI0NCwgMC4xMjg5NzUsIDAuMjI0MDYsIDAuMzgxOTM3LCAwLjUzOTc4NiwgMC45MDgxMTMsIDEuMTE4NTIiLCBcCi0gICAgICAgICAgIjAuMTI0NTE3LCAwLjEzNTI4NSwgMC4yMzAzMzMsIDAuMzg4MjIxLCAwLjU0NjEyNiwgMC45MTQzNjIsIDEuMTI0NzYiLCBcCi0gICAgICAgICAgIjAuMTMyMjU0LCAwLjE0Mjk4LCAwLjIzODA2NywgMC4zOTU5NTYsIDAuNTUzOTE5LCAwLjkyMjEwNSwgMS4xMzI1NCIsIFwKLSAgICAgICAgICAiMC4xMzk0NjYsIDAuMTUwMTk1LCAwLjI0NTI3NiwgMC40MDMxNjEsIDAuNTYxMTMzLCAwLjkyOTI5NCwgMS4xMzk3MyIsIFwKLSAgICAgICAgICAiMC4xNDYwNTgsIDAuMTU2ODA3LCAwLjI1MTg1OSwgMC40MDk3NDQsIDAuNTY3NjQ4LCAwLjkzNTgxNiwgMS4xNDYzIiwgXAotICAgICAgICAgICIwLjE1NTM4NCwgMC4xNjYxOSwgMC4yNjEyODksIDAuNDE5MTg0LCAwLjU3NzAyNCwgMC45NDUyMTQsIDEuMTU1NjQiLCBcCi0gICAgICAgICAgIjAuMTYyNjcyLCAwLjE3MzQ2MywgMC4yNjg1NzEsIDAuNDI2NDk5LCAwLjU4NDI3NiwgMC45NTI0NzUsIDEuMTYyODUiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTIzNTExLCAwLjE0NDgyMiwgMC4zNDA2MzEsIDAuNjcxMTI3LCAxLjAwMzEyLCAxLjc3NjYsIDIuMjIwMzYiLCBcCi0gICAgICAgICAgIjAuMTIzNTA0LCAwLjE0NDg0OSwgMC4zNDA2MzYsIDAuNjcxOTgzLCAxLjAwNDE1LCAxLjc3NzcyLCAyLjIyMDEiLCBcCi0gICAgICAgICAgIjAuMTIzNTIxLCAwLjE0NDgyMiwgMC4zNDAzNjEsIDAuNjcxMDg1LCAxLjAwMjU5LCAxLjc3NzY2LCAyLjIyMDQ3IiwgXAotICAgICAgICAgICIwLjEyMzY5MywgMC4xNDQ5NjgsIDAuMzQwNDA5LCAwLjY3MTc2MSwgMS4wMDI1OSwgMS43NzcwNiwgMi4yMjA0MyIsIFwKLSAgICAgICAgICAiMC4xMjQwNjcsIDAuMTQ1MzAyLCAwLjM0MDYzMSwgMC42NzE4MjQsIDEuMDA0LCAxLjc3ODE4LCAyLjIyMDQxIiwgXAotICAgICAgICAgICIwLjEyNDcxNiwgMC4xNDU5ODIsIDAuMzQxMDEsIDAuNjcxODYyLCAxLjAwMzAyLCAxLjc3ODA5LCAyLjIyMTIzIiwgXAotICAgICAgICAgICIwLjEyNTQyMSwgMC4xNDY1MTksIDAuMzQxMDgxLCAwLjY3MTg1NywgMS4wMDMyMSwgMS43Nzk1NSwgMi4yMjI2MSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMjEwNDIsIDAuMTMxMTMxLCAwLjIxODksIDAuMzYzNjM5LCAwLjUwODM2LCAwLjg0NjA1LCAxLjAzODg0IiwgXAotICAgICAgICAgICIwLjEyNjkwMiwgMC4xMzY5OTQsIDAuMjI0NzU3LCAwLjM2OTU0NSwgMC41MTQyMjQsIDAuODUxNzgzLCAxLjA0NDY3IiwgXAotICAgICAgICAgICIwLjEzMzc0LCAwLjE0MzgyOSwgMC4yMzE2LCAwLjM3NjM0NCwgMC41MjEwNjcsIDAuODU4NjkxLCAxLjA1MTYzIiwgXAotICAgICAgICAgICIwLjE0MDI1NywgMC4xNTAzODUsIDAuMjM4MTY5LCAwLjM4MjkxMSwgMC41Mjc2MjIsIDAuODY1MTg2LCAxLjA1ODA3IiwgXAotICAgICAgICAgICIwLjE0NjE2LCAwLjE1NjMxLCAwLjI0NDA3MywgMC4zODg4MzMsIDAuNTMzNTQyLCAwLjg3MTExOSwgMS4wNjM5OCIsIFwKLSAgICAgICAgICAiMC4xNTQ2MjQsIDAuMTY0NzUzLCAwLjI1MjYxOCwgMC4zOTczNzYsIDAuNTQyMTUsIDAuODc5NjYyLCAxLjA3MjUiLCBcCi0gICAgICAgICAgIjAuMTYwOTIxLCAwLjE3MTEzLCAwLjI1OTA2NSwgMC40MDM4NjksIDAuNTQ4NTY4LCAwLjg4NjIwNiwgMS4wNzkwMyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTQ0MzIsIDAuMTMzMjk4LCAwLjMwNjY2NSwgMC42MDE3NDksIDAuODk3NDA3LCAxLjU5MjY1LCAxLjk4NjMiLCBcCi0gICAgICAgICAgIjAuMTE0NDExLCAwLjEzMzMwNiwgMC4zMDY2NjEsIDAuNjAwNjM0LCAwLjg5NzM0NCwgMS41OTIwNywgMS45ODYwMyIsIFwKLSAgICAgICAgICAiMC4xMTQ0MDUsIDAuMTMzMzEsIDAuMzA2NTM5LCAwLjYwMTEyMywgMC44OTczNzEsIDEuNTkyMjksIDEuOTg5MDciLCBcCi0gICAgICAgICAgIjAuMTE0NjY3LCAwLjEzMzUwMiwgMC4zMDY2MTQsIDAuNjAxNzk2LCAwLjg5NzI4MiwgMS41OTIwOCwgMS45ODYwMyIsIFwKLSAgICAgICAgICAiMC4xMTUwMzEsIDAuMTMzODMxLCAwLjMwNjc1NSwgMC42MDE4OTUsIDAuODk4NTQxLCAxLjU5MjE0LCAxLjk4ODMzIiwgXAotICAgICAgICAgICIwLjExNTk4MiwgMC4xMzQ2MDMsIDAuMzA3MTg5LCAwLjYwMTEzNCwgMC44OTg2NTcsIDEuNTkxOTMsIDEuOTg4MjMiLCBcCi0gICAgICAgICAgIjAuMTE2NTMyLCAwLjEzNTI0OCwgMC4zMDc1NjYsIDAuNjAyMDgxLCAwLjg5Njk5NCwgMS41OTI0OCwgMS45ODgzOCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTYzMTgsIDAuMTI3MDI3LCAwLjIyMjA3LCAwLjM3OTk2LCAwLjUzNzg0OSwgMC45MDYwNTYsIDEuMTE2NzMiLCBcCi0gICAgICAgICAgIjAuMTIyNDM4LCAwLjEzMzE5MSwgMC4yMjgyMTcsIDAuMzg2MTEyLCAwLjU0Mzk5MywgMC45MTIyNDEsIDEuMTIyNjQiLCBcCi0gICAgICAgICAgIjAuMTMwMDk0LCAwLjE0MDg0MywgMC4yMzU4NzEsIDAuMzkzNzY2LCAwLjU1MTU5NCwgMC45MTk5LCAxLjEzMDMiLCBcCi0gICAgICAgICAgIjAuMTM3MTgxLCAwLjE0NzkwNSwgMC4yNDI5NDksIDAuNDAwODQsIDAuNTU4NzI3LCAwLjkyNjk2LCAxLjEzNzQiLCBcCi0gICAgICAgICAgIjAuMTQzNjc5LCAwLjE1NDQxNSwgMC4yNDk0OSwgMC40MDczOTQsIDAuNTY1MjQzLCAwLjkzMzQ3MSwgMS4xNDM4NyIsIFwKLSAgICAgICAgICAiMC4xNTI4NzQsIDAuMTYzNjAxLCAwLjI1ODcxMSwgMC40MTY2MjgsIDAuNTc0NDU3LCAwLjk0MjYzOCwgMS4xNTMwNCIsIFwKLSAgICAgICAgICAiMC4xNTk5ODIsIDAuMTcwNzYxLCAwLjI2NTgyLCAwLjQyMzc0MiwgMC41ODE1NjYsIDAuOTQ5NzgsIDEuMTYwMTgiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTIzMjA3LCAwLjE0NDUzNiwgMC4zNDA1MywgMC42NzEwNTEsIDEuMDA0MTYsIDEuNzc5OTQsIDIuMjIwMDciLCBcCi0gICAgICAgICAgIjAuMTIzMTk1LCAwLjE0NDU2LCAwLjM0MDQ5OCwgMC42NzE4OTgsIDEuMDA0MDksIDEuNzc3NTYsIDIuMjE5NjQiLCBcCi0gICAgICAgICAgIjAuMTIzMjA4LCAwLjE0NDU3LCAwLjM0MDUwNSwgMC42NzExNSwgMS4wMDQwNCwgMS43Nzc1NywgMi4yMTk2NiIsIFwKLSAgICAgICAgICAiMC4xMjM0MjQsIDAuMTQ0NzIyLCAwLjM0MDE4NCwgMC42NzEwNzMsIDEuMDA0MDksIDEuNzc2OTksIDIuMjIwMTMiLCBcCi0gICAgICAgICAgIjAuMTIzNjg3LCAwLjE0NDk3MSwgMC4zNDA2NCwgMC42NzE4MjMsIDEuMDAzOTQsIDEuNzc3ODEsIDIuMjIwOCIsIFwKLSAgICAgICAgICAiMC4xMjQ1MSwgMC4xNDU2NjUsIDAuMzQwODYzLCAwLjY3MTgxMywgMS4wMDIzNiwgMS43NzgwNSwgMi4yMjEwMSIsIFwKLSAgICAgICAgICAiMC4xMjUxNCwgMC4xNDYyNDMsIDAuMzQwOTk0LCAwLjY3MTc3MywgMS4wMDMwMSwgMS43Nzc5OCwgMi4yMjI4NiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTg0NywgMC4xMjg1MzYsIDAuMjE2MTksIDAuMzYwOTI1LCAwLjUwNTYzNiwgMC44NDMxNzQsIDEuMDM2MDgiLCBcCi0gICAgICAgICAgIjAuMTI0NDc2LCAwLjEzNDU0NCwgMC4yMjIyMDUsIDAuMzY2OTM5LCAwLjUxMTY1MiwgMC44NDkxOTEsIDEuMDQyMSIsIFwKLSAgICAgICAgICAiMC4xMzEzNDgsIDAuMTQxNDAzLCAwLjIyOTA4MSwgMC4zNzM4MTksIDAuNTE4NTM3LCAwLjg1NjEwNSwgMS4wNDkwOSIsIFwKLSAgICAgICAgICAiMC4xMzc4MDgsIDAuMTQ3ODk0LCAwLjIzNTU1MiwgMC4zODAyOTgsIDAuNTI1MDIsIDAuODYyNTU4LCAxLjA1NTQ1IiwgXAotICAgICAgICAgICIwLjE0MzU5NiwgMC4xNTM2ODMsIDAuMjQxMzY2LCAwLjM4NjEwMSwgMC41MzA4NjQsIDAuODY4MzU5LCAxLjA2MTI0IiwgXAotICAgICAgICAgICIwLjE1MTc4MiwgMC4xNjE5MjMsIDAuMjQ5Njc0LCAwLjM5NDM5NCwgMC41MzkwODcsIDAuODc2Nzg3LCAxLjA2OTciLCBcCi0gICAgICAgICAgIjAuMTU4MDg2LCAwLjE2ODI5MSwgMC4yNTYxMTcsIDAuNDAwODgsIDAuNTQ1NTU5LCAwLjg4MzE2MiwgMS4wNzYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTEzODY4LCAwLjEzMjgzNywgMC4zMDY1NCwgMC42MDE2NTQsIDAuODk3MzQ4LCAxLjU5MjAyLCAxLjk4NjI5IiwgXAotICAgICAgICAgICIwLjExMzg1NCwgMC4xMzI4MjUsIDAuMzA2MjQxLCAwLjYwMTY1MiwgMC44OTczMzUsIDEuNTkyMDEsIDEuOTg2MjkiLCBcCi0gICAgICAgICAgIjAuMTEzOTM3LCAwLjEzMjgwOCwgMC4zMDYzNzksIDAuNjAxNTcxLCAwLjg5NzMzNywgMS41OTE2MiwgMS45ODkwNyIsIFwKLSAgICAgICAgICAiMC4xMTQxMDMsIDAuMTMzMDM0LCAwLjMwNjQ1MywgMC42MDE2OCwgMC44OTg1MjMsIDEuNTkyMDcsIDEuOTg2MjciLCBcCi0gICAgICAgICAgIjAuMTE0NDkyLCAwLjEzMzI5MywgMC4zMDY0NzYsIDAuNjAxNzU5LCAwLjg5NjY5OSwgMS41OTIwNiwgMS45ODU5NSIsIFwKLSAgICAgICAgICAiMC4xMTU0NDcsIDAuMTM0MTc4LCAwLjMwNjkyOCwgMC42MDExMDgsIDAuODk4MzA2LCAxLjU4OTQzLCAxLjk4NTQ5IiwgXAotICAgICAgICAgICIwLjExNjA5MSwgMC4xMzQ3NjUsIDAuMzA3MjIxLCAwLjYwMDgyOCwgMC44OTgzNzUsIDEuNTkyMDksIDEuOTg4MzIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTE1NDk4LCAwLjEyNjIyMiwgMC4yMjEyNCwgMC4zNzkxNTIsIDAuNTM3MDA2LCAwLjkwNTE2MSwgMS4xMTU2NCIsIFwKLSAgICAgICAgICAiMC4xMjE3NjgsIDAuMTMyNTE4LCAwLjIyNzUyNSwgMC4zODU0MDYsIDAuNTQzMjQ0LCAwLjkxMTU0OCwgMS4xMjE5NSIsIFwKLSAgICAgICAgICAiMC4xMjk0NzIsIDAuMTQwMjE2LCAwLjIzNTIyMywgMC4zOTMxMDQsIDAuNTUwOTM3LCAwLjkxOTI0MSwgMS4xMjk2NCIsIFwKLSAgICAgICAgICAiMC4xMzY2MTcsIDAuMTQ3MzYyLCAwLjI0MjM3MSwgMC40MDAyNDgsIDAuNTU4MTE5LCAwLjkyNjM3NiwgMS4xMzY3OCIsIFwKLSAgICAgICAgICAiMC4xNDMwNzcsIDAuMTUzODE0LCAwLjI0ODg2NSwgMC40MDY3MjQsIDAuNTY0NjEzLCAwLjkzMjgxMSwgMS4xNDMyMSIsIFwKLSAgICAgICAgICAiMC4xNTIyMTcsIDAuMTYyOTQ1LCAwLjI1ODAyOSwgMC40MTU5MjMsIDAuNTczODQ2LCAwLjk0MTkyNiwgMS4xNTIzNiIsIFwKLSAgICAgICAgICAiMC4xNTkyMzIsIDAuMTcwMDM1LCAwLjI2NTA4OSwgMC40MjI5NiwgMC41ODA3OSwgMC45NDksIDEuMTU5NjMiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTIzMDg3LCAwLjE0NDM4OSwgMC4zNDA0NzQsIDAuNjcwNjE1LCAxLjAwNDEzLCAxLjc3OTk3LCAyLjIyMDY1IiwgXAotICAgICAgICAgICIwLjEyMzEyNSwgMC4xNDQ0ODgsIDAuMzQwNDQ0LCAwLjY3MTEzMiwgMS4wMDMxMywgMS43Nzc0MiwgMi4yMjAzOSIsIFwKLSAgICAgICAgICAiMC4xMjMwODMsIDAuMTQ0NDk5LCAwLjM0MDQ1NCwgMC42NzEwOTksIDEuMDA0MDQsIDEuNzc3NjEsIDIuMjIwMDQiLCBcCi0gICAgICAgICAgIjAuMTIzMjQ0LCAwLjE0NDY1MSwgMC4zNDA0OTQsIDAuNjcxODI2LCAxLjAwMzk1LCAxLjc3NzU1LCAyLjIxOTg3IiwgXAotICAgICAgICAgICIwLjEyMzczMiwgMC4xNDQ5NDIsIDAuMzQwNjEyLCAwLjY3MTc3LCAxLjAwMzkzLCAxLjc3Nzc1LCAyLjIyMzA4IiwgXAotICAgICAgICAgICIwLjEyNDQ0NSwgMC4xNDU2MDgsIDAuMzQwODI5LCAwLjY3MTc0OCwgMS4wMDI1NiwgMS43Nzc4MiwgMi4yMjEwNyIsIFwKLSAgICAgICAgICAiMC4xMjUwODMsIDAuMTQ2MjM0LCAwLjM0MDk1OCwgMC42NzE2OTMsIDEuMDAzMTcsIDEuNzc5NTcsIDIuMjE5ODgiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTE4NDUzLCAwLjEyODU2OCwgMC4yMTYyMDksIDAuMzYwOTYxLCAwLjUwNTY3NywgMC44NDMyMzQsIDEuMDM2MTEiLCBcCi0gICAgICAgICAgIjAuMTI0MjQzLCAwLjEzNDMwOSwgMC4yMjE5NjYsIDAuMzY2NzEsIDAuNTExNDIyLCAwLjg0ODk2NywgMS4wNDE4NyIsIFwKLSAgICAgICAgICAiMC4xMzEwNTYsIDAuMTQxMTU2LCAwLjIyODgwNiwgMC4zNzM1NTUsIDAuNTE4MjY5LCAwLjg1NTg0LCAxLjA0ODciLCBcCi0gICAgICAgICAgIjAuMTM3NDg0LCAwLjE0NzU2MywgMC4yMzUyMzYsIDAuMzgwMDEzLCAwLjUyNDY4NSwgMC44NjIyMzQsIDEuMDU1MTMiLCBcCi0gICAgICAgICAgIjAuMTQzMjk1LCAwLjE1MzM4MSwgMC4yNDEwNjcsIDAuMzg1OCwgMC41MzA1MDMsIDAuODY4MDY1LCAxLjA2MTAxIiwgXAotICAgICAgICAgICIwLjE1MTQ1OCwgMC4xNjE1NzEsIDAuMjQ5Mzg2LCAwLjM5NDEzNSwgMC41Mzg5MDIsIDAuODc2NDI4LCAxLjA2OTI2IiwgXAotICAgICAgICAgICIwLjE1NzcwNSwgMC4xNjc4NTMsIDAuMjU1NjY0LCAwLjQwMDQyMiwgMC41NDUxMzcsIDAuODgyNzgyLCAxLjA3NTU5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExMzkyNiwgMC4xMzI4MzMsIDAuMzA2MzY5LCAwLjYwMTY1NiwgMC44OTczMjksIDEuNTkyMTEsIDEuOTg2MDciLCBcCi0gICAgICAgICAgIjAuMTEzODU4LCAwLjEzMjgxOSwgMC4zMDYzNzEsIDAuNjAxNjU4LCAwLjg5NzMyMywgMS41OTIwMiwgMS45ODYxNyIsIFwKLSAgICAgICAgICAiMC4xMTM5NDYsIDAuMTMyODQ0LCAwLjMwNjM3NiwgMC42MDE2NjcsIDAuODk3MzIyLCAxLjU5MjEyLCAxLjk4ODMxIiwgXAotICAgICAgICAgICIwLjExNDEzNSwgMC4xMzMwMjYsIDAuMzA2NTc1LCAwLjYwMTgxNSwgMC44OTcyOTYsIDEuNTkyMDEsIDEuOTg2MTQiLCBcCi0gICAgICAgICAgIjAuMTE0NTMyLCAwLjEzMzMxMiwgMC4zMDY3MjksIDAuNjAxMDE0LCAwLjg5ODI2NSwgMS41OTIwMywgMS45ODg3NyIsIFwKLSAgICAgICAgICAiMC4xMTUzNDYsIDAuMTM0MSwgMC4zMDY5MjYsIDAuNjAxMjgxLCAwLjg5ODY2OSwgMS41OTE5NCwgMS45ODgyNiIsIFwKLSAgICAgICAgICAiMC4xMTYwNTQsIDAuMTM0NzMzLCAwLjMwNzIwMywgMC42MDA5NDUsIDAuODk4MzMxLCAxLjU5MjE0LCAxLjk4ODMyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlMwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTM5MTcsIDAuMTI0NjcsIDAuMjE5NzE1LCAwLjM3NzYwNywgMC41MzU0NjMsIDAuOTAzNzY1LCAxLjExNDMyIiwgXAotICAgICAgICAgICIwLjEyMTMzOCwgMC4xMzIxMDUsIDAuMjI3MTQyLCAwLjM4NTAyOSwgMC41NDI5ODMsIDAuOTExMTk3LCAxLjEyMTYiLCBcCi0gICAgICAgICAgIjAuMTMwODkyLCAwLjE0MTYyLCAwLjIzNjY5NiwgMC4zOTQ1ODEsIDAuNTUyNDkyLCAwLjkyMDg1LCAxLjEzMTI3IiwgXAotICAgICAgICAgICIwLjEzOTk4OCwgMC4xNTA3MywgMC4yNDU3OTcsIDAuNDAzNjk5LCAwLjU2MTYwMiwgMC45Mjk3NTksIDEuMTQwMjMiLCBcCi0gICAgICAgICAgIjAuMTQ4MDYxLCAwLjE1ODc4NiwgMC4yNTM4NjYsIDAuNDExODA2LCAwLjU2OTY3OCwgMC45Mzc4NjgsIDEuMTQ4MzciLCBcCi0gICAgICAgICAgIjAuMTU5MTM3LCAwLjE2OTg5NywgMC4yNjUwMzQsIDAuNDIyOTI3LCAwLjU4MDc2LCAwLjk0ODk3MywgMS4xNTk0OCIsIFwKLSAgICAgICAgICAiMC4xNjc1NDcsIDAuMTc4MzIyLCAwLjI3MzQ5NywgMC40MzE0NTYsIDAuNTg5MjIzLCAwLjk1NzQ1NiwgMS4xNjc5OCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMjM0OTksIDAuMTQ0ODE4LCAwLjM0MDY2NSwgMC42NzE5OTcsIDEuMDA0MjEsIDEuNzc5OTMsIDIuMjIzMzgiLCBcCi0gICAgICAgICAgIjAuMTIzNDkzLCAwLjE0NDgzMywgMC4zNDA2NTcsIDAuNjcxOTczLCAxLjAwNDE1LCAxLjc3OTYxLCAyLjIyMzMxIiwgXAotICAgICAgICAgICIwLjEyMzU0MSwgMC4xNDQ4NzEsIDAuMzQwNjUxLCAwLjY3MTk3MywgMS4wMDQxNSwgMS43NzgyNSwgMi4yMjEzNyIsIFwKLSAgICAgICAgICAiMC4xMjM3NTgsIDAuMTQ1MDQ5LCAwLjM0MDcwOSwgMC42NzE5ODQsIDEuMDA0MTQsIDEuNzc5ODYsIDIuMjIzMjMiLCBcCi0gICAgICAgICAgIjAuMTI0MTkzLCAwLjE0NTQzMiwgMC4zNDA3OTYsIDAuNjcxOTE3LCAxLjAwNDA1LCAxLjc3OTQ5LCAyLjIyMzA5IiwgXAotICAgICAgICAgICIwLjEyNTI2NiwgMC4xNDYzMjUsIDAuMzQxMDg2LCAwLjY3MjAzLCAxLjAwMzc1LCAxLjc3OTQzLCAyLjIyMzA3IiwgXAotICAgICAgICAgICIwLjEyNjE0NSwgMC4xNDcxMDEsIDAuMzQxMjc2LCAwLjY3MjExNSwgMS4wMDM3MiwgMS43Nzk2NiwgMi4yMjMwMyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTU1LCAwLjEyNTYyNSwgMC4yMTMzNTIsIDAuMzU4MDk3LCAwLjUwMjgwNSwgMC44NDAzODMsIDEuMDMzMjQiLCBcCi0gICAgICAgICAgIjAuMTIyODAxLCAwLjEzMjkxNiwgMC4yMjA2NTQsIDAuMzY1NDA5LCAwLjUxMDEwMSwgMC44NDc3MTQsIDEuMDQwNTYiLCBcCi0gICAgICAgICAgIjAuMTMyMzA0LCAwLjE0MjQxMiwgMC4yMzAxNiwgMC4zNzQ5MTIsIDAuNTE5NjEsIDAuODU3MTk2LCAxLjA1MDEyIiwgXAotICAgICAgICAgICIwLjE0MTI3NSwgMC4xNTEzNTQsIDAuMjM5MTIxLCAwLjM4Mzg2NCwgMC41Mjg1NzcsIDAuODY2MTMsIDEuMDU5MDIiLCBcCi0gICAgICAgICAgIjAuMTQ5MjIzLCAwLjE1OTM1NiwgMC4yNDcxMTgsIDAuMzkxODY5LCAwLjUzNjU4NywgMC44NzQxNDksIDEuMDY3MTEiLCBcCi0gICAgICAgICAgIjAuMTYwMTk2LCAwLjE3MDM5NSwgMC4yNTgyMywgMC40MDI5ODQsIDAuNTQ3Njk4LCAwLjg4NTI0NywgMS4wNzgxMSIsIFwKLSAgICAgICAgICAiMC4xNjg1NzQsIDAuMTc4NzczLCAwLjI2NjcxLCAwLjQxMTQxOSwgMC41NTYxODMsIDAuODkzNzI1LCAxLjA4NjY3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExNDMyNiwgMC4xMzMyMTUsIDAuMzA2NjE1LCAwLjYwMTc2NCwgMC44OTg0MDEsIDEuNTkyMjUsIDEuOTg4MzciLCBcCi0gICAgICAgICAgIjAuMTE0MzM5LCAwLjEzMzIxOCwgMC4zMDY2NDYsIDAuNjAxNzgyLCAwLjg5ODU0MywgMS41OTIxNCwgMS45ODg0OSIsIFwKLSAgICAgICAgICAiMC4xMTQzNzQsIDAuMTMzMjU4LCAwLjMwNjY1MiwgMC42MDE3NTcsIDAuODk4NTQxLCAxLjU5MjQ5LCAxLjk4ODg1IiwgXAotICAgICAgICAgICIwLjExNDYxNSwgMC4xMzM0NDgsIDAuMzA2NjY5LCAwLjYwMTgxNywgMC44OTg0NDIsIDEuNTkyMSwgMS45ODg4MSIsIFwKLSAgICAgICAgICAiMC4xMTUwNjEsIDAuMTMzODM1LCAwLjMwNjg1MiwgMC42MDE4MzUsIDAuODk4NjczLCAxLjU5MjQ3LCAxLjk4OTMiLCBcCi0gICAgICAgICAgIjAuMTE2MTk5LCAwLjEzNDg2NCwgMC4zMDcyMzMsIDAuNjAyMDUyLCAwLjg5ODMxNSwgMS41OTE5MywgMS45ODgzIiwgXAotICAgICAgICAgICIwLjExNzA4NywgMC4xMzU2OTQsIDAuMzA3NjczLCAwLjYwMjA1NiwgMC44OTg2MTgsIDEuNTkxOTEsIDEuOTg5MDkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUzAiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEzNDA1NiwgMC4xNDQ4MDYsIDAuMjM5ODY2LCAwLjM5Nzc4LCAwLjU1NTY2NiwgMC45MjM4NjUsIDEuMTM0NDIiLCBcCi0gICAgICAgICAgIjAuMTQxOTUxLCAwLjE1MjcwOCwgMC4yNDc3NTQsIDAuNDA1NjMxLCAwLjU2MzUwMywgMC45MzE3NzcsIDEuMTQyMTciLCBcCi0gICAgICAgICAgIjAuMTUwMjAxLCAwLjE2MDkyNywgMC4yNTU5OTksIDAuNDEzODg1LCAwLjU3MTc4MSwgMC45Mzk5OTIsIDEuMTUwNjYiLCBcCi0gICAgICAgICAgIjAuMTU2MzUsIDAuMTY3MTEzLCAwLjI2MjI0NSwgMC40MjAxMjEsIDAuNTc4MDAxLCAwLjk0NjI3MSwgMS4xNTY2NyIsIFwKLSAgICAgICAgICAiMC4xNjEwNDYsIDAuMTcxNzk5LCAwLjI2Njg2NywgMC40MjQ3NzYsIDAuNTgyNjEsIDAuOTUwODMxLCAxLjE2MTIzIiwgXAotICAgICAgICAgICIwLjE2NzM3OCwgMC4xNzgxNSwgMC4yNzMyODYsIDAuNDMxMTcxLCAwLjU4OTAwNSwgMC45NTcyMTgsIDEuMTY3NiIsIFwKLSAgICAgICAgICAiMC4xNzIwMzYsIDAuMTgyNzgzLCAwLjI3Nzk3MSwgMC40MzU4NzEsIDAuNTkzNzQxLCAwLjk2MTkwNywgMS4xNzI0OCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMjM0NTUsIDAuMTQ0ODQzLCAwLjM0MDYzMywgMC42NzE5NjUsIDEuMDA0MTQsIDEuNzc5ODcsIDIuMjIzMyIsIFwKLSAgICAgICAgICAiMC4xMjM1MDcsIDAuMTQ0ODQzLCAwLjM0MDYzLCAwLjY3MTk0NSwgMS4wMDQxMSwgMS43Nzk3NywgMi4yMjAzNyIsIFwKLSAgICAgICAgICAiMC4xMjM1MTQsIDAuMTQ0ODIyLCAwLjM0MDY0NywgMC42NzE5LCAxLjAwNDEyLCAxLjc3OTg4LCAyLjIyMzIzIiwgXAotICAgICAgICAgICIwLjEyMzUxNiwgMC4xNDQ4NCwgMC4zNDA2MywgMC42NzE5MzgsIDEuMDA0MTIsIDEuNzc5ODYsIDIuMjIzMjciLCBcCi0gICAgICAgICAgIjAuMTIzNjA4LCAwLjE0NDkzOSwgMC4zNDA2ODYsIDAuNjcxODUyLCAxLjAwNDA3LCAxLjc3OTc0LCAyLjIyMzE5IiwgXAotICAgICAgICAgICIwLjEyMzY1NywgMC4xNDUwMiwgMC4zNDA3ODEsIDAuNjcxNjk3LCAxLjAwMzgzLCAxLjc3OTYzLCAyLjIyMjg0IiwgXAotICAgICAgICAgICIwLjEyMzYxLCAwLjE0NDk0OSwgMC4zNDA2MzMsIDAuNjcxNzM1LCAxLjAwMzg1LCAxLjc3OTQzLCAyLjIyMjgiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTMzNDcyLCAwLjE0MzU5NiwgMC4yMzEzNjUsIDAuMzc2MTIyLCAwLjUyMDgyLCAwLjg1ODQxMiwgMS4wNTEyOSIsIFwKLSAgICAgICAgICAiMC4xNDE1NzMsIDAuMTUxNjcxLCAwLjIzOTQzMiwgMC4zODQyMTIsIDAuNTI4OTA2LCAwLjg2NjQ4OSwgMS4wNTkzNSIsIFwKLSAgICAgICAgICAiMC4xNDk5MDQsIDAuMTU5OTkzLCAwLjI0Nzc2NCwgMC4zOTI1MDcsIDAuNTM3MjM0LCAwLjg3NDkxMSwgMS4wNjc3MyIsIFwKLSAgICAgICAgICAiMC4xNTYyMDksIDAuMTY2MzMxLCAwLjI1NDEwMSwgMC4zOTg4NTksIDAuNTQzNTY0LCAwLjg4MTE0NiwgMS4wNzQwMyIsIFwKLSAgICAgICAgICAiMC4xNjEyMzIsIDAuMTcxMzU2LCAwLjI1OTE0LCAwLjQwMzg5OSwgMC41NDg1OTksIDAuODg2MTk0LCAxLjA3OTA2IiwgXAotICAgICAgICAgICIwLjE2Nzg3NiwgMC4xNzc5NzMsIDAuMjY1ODIxLCAwLjQxMDU4MiwgMC41NTUyNzksIDAuODkyODkxLCAxLjA4NTc1IiwgXAotICAgICAgICAgICIwLjE3Mjk0MiwgMC4xODMwMTEsIDAuMjcwODk0LCAwLjQxNTcwMywgMC41NjAzNzMsIDAuODk3OTU3LCAxLjA5MDk1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExNDQ0NSwgMC4xMzMzMTQsIDAuMzA2NjUzLCAwLjYwMTkzLCAwLjg5ODY1LCAxLjU5MjIsIDEuOTg4ODYiLCBcCi0gICAgICAgICAgIjAuMTE0NDM5LCAwLjEzMzMxMywgMC4zMDY2NTIsIDAuNjAxOTE0LCAwLjg5ODY0LCAxLjU5MjI3LCAxLjk4OTIzIiwgXAotICAgICAgICAgICIwLjExNDQzLCAwLjEzMzMyMiwgMC4zMDY2NTgsIDAuNjAxNzg4LCAwLjg5NzQ1NywgMS41OTI1OCwgMS45ODkzMSIsIFwKLSAgICAgICAgICAiMC4xMTQ0MjQsIDAuMTMzMzAxLCAwLjMwNjY1NywgMC42MDE3OTYsIDAuODk4NTI4LCAxLjU5MjU4LCAxLjk4ODk2IiwgXAotICAgICAgICAgICIwLjExNDUyOSwgMC4xMzM0MDIsIDAuMzA2NzA2LCAwLjYwMTczOSwgMC44OTgzMzMsIDEuNTkxOTIsIDEuOTg4NTEiLCBcCi0gICAgICAgICAgIjAuMTE0NTQyLCAwLjEzMzM4NiwgMC4zMDY3MzIsIDAuNjAxNzk2LCAwLjg5ODMzMSwgMS41OTIwNiwgMS45ODgzMSIsIFwKLSAgICAgICAgICAiMC4xMTQ0NSwgMC4xMzMzNzEsIDAuMzA2NzA1LCAwLjYwMTUzOCwgMC44OTgxNjMsIDEuNTkwNTcsIDEuOTg4NjciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUzEiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4ODc4NiwgMC4wOTk0NjcsIDAuMTk0MzYxLCAwLjM1MjE4MywgMC41MTAwNTYsIDAuODc5MTM3LCAxLjA4OTMxIiwgXAotICAgICAgICAgICIwLjA5NjUwNywgMC4xMDcxNzksIDAuMjAyMDcxLCAwLjM1OTg4NiwgMC41MTc4NzcsIDAuODg2NzY0LCAxLjA5NzAxIiwgXAotICAgICAgICAgICIwLjEwNTM5MSwgMC4xMTYwODEsIDAuMjEwOTU5LCAwLjM2ODc4NywgMC41MjY2NiwgMC44OTU2OTQsIDEuMTA1OTkiLCBcCi0gICAgICAgICAgIjAuMTEyNTM3LCAwLjEyMzIyNSwgMC4yMTgxMiwgMC4zNzU5MTgsIDAuNTMzODIyLCAwLjkwMjczOSwgMS4xMTMyNSIsIFwKLSAgICAgICAgICAiMC4xMTg1MTcsIDAuMTI5MjQyLCAwLjIyNDA5MywgMC4zODE5MjIsIDAuNTM5NzQ4LCAwLjkwODU3MSwgMS4xMTg5NSIsIFwKLSAgICAgICAgICAiMC4xMjYzODEsIDAuMTM3MTU5LCAwLjIzMjEyLCAwLjM4OTk4MSwgMC41NDc5NzIsIDAuOTE2Nzg0LCAxLjEyNzIxIiwgXAotICAgICAgICAgICIwLjEzMjQyMywgMC4xNDMxODcsIDAuMjM4Mjg4LCAwLjM5NjA1LCAwLjU1NDEwOCwgMC45MjIzMTUsIDEuMTMzODMiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTIyNTA0LCAwLjE0Mzg0NSwgMC4zMzk3NjQsIDAuNjcxMDAyLCAxLjAwMjg3LCAxLjc3NzksIDIuMjIwMzMiLCBcCi0gICAgICAgICAgIjAuMTIyMzcyLCAwLjE0MzgwOSwgMC4zNDAxNCwgMC42NzE2MDEsIDEuMDAyMTksIDEuNzc3MzgsIDIuMjIwMyIsIFwKLSAgICAgICAgICAiMC4xMjIzNTUsIDAuMTQzODA5LCAwLjMzOTY4OSwgMC42NzA5NzksIDEuMDAyODgsIDEuNzc3MjgsIDIuMjIwNDEiLCBcCi0gICAgICAgICAgIjAuMTIyNjY4LCAwLjE0NDAwOCwgMC4zNDAyNDYsIDAuNjcwOTM3LCAxLjAwMjM4LCAxLjc3NzQ2LCAyLjIyMDQyIiwgXAotICAgICAgICAgICIwLjEyMzA5MywgMC4xNDQ0NjIsIDAuMzQwNDExLCAwLjY3MTc1MywgMS4wMDQxLCAxLjc3NzU5LCAyLjIyMDI0IiwgXAotICAgICAgICAgICIwLjEyMzcwNiwgMC4xNDQ5NTgsIDAuMzQwNDY0LCAwLjY3MDc4MywgMS4wMDQxMSwgMS43NzgyMywgMi4yMjA0NCIsIFwKLSAgICAgICAgICAiMC4xMjQ1MTEsIDAuMTQ1NTYyLCAwLjM0MDcyNSwgMC42NzE4ODIsIDEuMDAyNjksIDEuNzc4MjcsIDIuMjIxMDkiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg5Mjc0LCAwLjA5OTM1MiwgMC4xODY5NTcsIDAuMzMxNjgxLCAwLjQ3NjM1MywgMC44MTQzODksIDEuMDA3MyIsIFwKLSAgICAgICAgICAiMC4wOTY4MTksIDAuMTA2ODk0LCAwLjE5NDQ5NiwgMC4zMzkxODcsIDAuNDgzOTE0LCAwLjgyMTc5NCwgMS4wMTQ1NSIsIFwKLSAgICAgICAgICAiMC4xMDU2NzksIDAuMTE1NzMyLCAwLjIwMzMzMSwgMC4zNDgwMTgsIDAuNDkyNzU4LCAwLjgzMDYwMSwgMS4wMjM0MyIsIFwKLSAgICAgICAgICAiMC4xMTI5NjEsIDAuMTIzMDM1LCAwLjIxMDY0NCwgMC4zNTUzNiwgMC41MDAwMzcsIDAuODM4MDgsIDEuMDMxMTYiLCBcCi0gICAgICAgICAgIjAuMTE5MDAxLCAwLjEyOTExNCwgMC4yMTY3ODYsIDAuMzYxNDU0LCAwLjUwNjE1NCwgMC44NDM5OTYsIDEuMDM2OTEiLCBcCi0gICAgICAgICAgIjAuMTI3MTgsIDAuMTM3MzUsIDAuMjI1MTY1LCAwLjM2OTg0MywgMC41MTQ1MjUsIDAuODUyNTYsIDEuMDQ1NDMiLCBcCi0gICAgICAgICAgIjAuMTMzNDYyLCAwLjE0MzU1NCwgMC4yMzE2MTEsIDAuMzc2MjYzLCAwLjUyMDkxNSwgMC44NTg4NzMsIDEuMDUxOTEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTEzMzgsIDAuMTMyMzc0LCAwLjMwNjE5NCwgMC42MDE3MDEsIDAuODk3MTgsIDEuNTk1MDcsIDEuOTg1MTQiLCBcCi0gICAgICAgICAgIjAuMTEzMTg1LCAwLjEzMjIxNCwgMC4zMDYxOTUsIDAuNjAxNDk2LCAwLjg5NjYxOSwgMS41ODkyOCwgMS45ODg1NyIsIFwKLSAgICAgICAgICAiMC4xMTMwNSwgMC4xMzIwODksIDAuMzA2MTQ3LCAwLjYwMTQ3OSwgMC44OTY4OTIsIDEuNTg5MzIsIDEuOTg4NTkiLCBcCi0gICAgICAgICAgIjAuMTEzMzI1LCAwLjEzMjMzMSwgMC4zMDYzNjgsIDAuNjAxNzEsIDAuODk3MjA0LCAxLjU5MDM3LCAxLjk4NjM0IiwgXAotICAgICAgICAgICIwLjExMzcwMywgMC4xMzI2NzEsIDAuMzA2MzU2LCAwLjYwMTU4MywgMC44OTg0OTIsIDEuNTg5MzEsIDEuOTg2MzQiLCBcCi0gICAgICAgICAgIjAuMTE0MjM1LCAwLjEzMzE5NCwgMC4zMDY3MzMsIDAuNjAxOTk4LCAwLjg5ODU2OSwgMS41OTAyNiwgMS45ODg1OSIsIFwKLSAgICAgICAgICAiMC4xMTQ5NjcsIDAuMTMzNjU3LCAwLjMwNzA1OCwgMC42MDIwODIsIDAuODk4NDA5LCAxLjU5MTcxLCAxLjk4NTUxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlMxIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTU1MzksIDAuMTA2MjU1LCAwLjIwMTIxMiwgMC4zNTkwNDUsIDAuNTE2OTA3LCAwLjg4NTI5MywgMS4wOTYyMSIsIFwKLSAgICAgICAgICAiMC4xMDM3NTEsIDAuMTE0NDczLCAwLjIwOTQ1LCAwLjM2NzI4OSwgMC41MjUzOTYsIDAuODk0MjI1LCAxLjEwNDYzIiwgXAotICAgICAgICAgICIwLjExMjE2MiwgMC4xMjI4NzgsIDAuMjE3ODQ0LCAwLjM3NTY5NCwgMC41MzM1NjcsIDAuOTAyNzEyLCAxLjExMjk1IiwgXAotICAgICAgICAgICIwLjExNzY1NywgMC4xMjgzNzIsIDAuMjIzMzQyLCAwLjM4MTE4MywgMC41MzkwNTQsIDAuOTA3OTQ5LCAxLjExODE0IiwgXAotICAgICAgICAgICIwLjEyMTczMSwgMC4xMzI0NTYsIDAuMjI3Mzk5LCAwLjM4NTM2OSwgMC41NDMzNjQsIDAuOTEyMjEsIDEuMTIyNDYiLCBcCi0gICAgICAgICAgIjAuMTI3MjY0LCAwLjEzNzkzLCAwLjIzMjc0OSwgMC4zOTA2NjIsIDAuNTQ4NTE2LCAwLjkxNzM3OSwgMS4xMjc1MyIsIFwKLSAgICAgICAgICAiMC4xMzEyMTYsIDAuMTQxODg0LCAwLjIzNjYwOCwgMC4zOTQ1NzcsIDAuNTUyNDIyLCAwLjkyMTAzOSwgMS4xMzEzMyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMjI3NjYsIDAuMTQ0MTY4LCAwLjM0MDI5NSwgMC42NzE3NDksIDEuMDA0MTgsIDEuNzgwNCwgMi4yMjM3NCIsIFwKLSAgICAgICAgICAiMC4xMjI2OTUsIDAuMTQ0MTIsIDAuMzQwMjg5LCAwLjY3MDk5MiwgMS4wMDI1OCwgMS43NzczMywgMi4yMjA0NSIsIFwKLSAgICAgICAgICAiMC4xMjI1NDUsIDAuMTQzOTM2LCAwLjM0MDEwNiwgMC42NzA5OTUsIDEuMDAyODEsIDEuNzc3MjYsIDIuMjIwNDQiLCBcCi0gICAgICAgICAgIjAuMTIyNDE5LCAwLjE0Mzg4MSwgMC4zNDAyMzksIDAuNjcwOTg2LCAxLjAwMzM4LCAxLjc3OTQ2LCAyLjIxOTU5IiwgXAotICAgICAgICAgICIwLjEyMjMwNiwgMC4xNDM3OCwgMC4zNDAwNzQsIDAuNjcwNjUzLCAxLjAwNDEsIDEuNzc3NDcsIDIuMjIwNCIsIFwKLSAgICAgICAgICAiMC4xMjIxODYsIDAuMTQzNjI2LCAwLjM0MDAyNiwgMC42NzA1MDQsIDEuMDAzMTEsIDEuNzc3NTYsIDIuMjE5MiIsIFwKLSAgICAgICAgICAiMC4xMjIzOTQsIDAuMTQzNjExLCAwLjMzOTYzLCAwLjY3MDY1MiwgMS4wMDIxOCwgMS43Nzc1LCAyLjIxOTI3Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5NDc3NCwgMC4xMDQ4MzMsIDAuMTkyNDA3LCAwLjMzNzEzNSwgMC40ODE4NDUsIDAuODE5ODU4LCAxLjAxMjM3IiwgXAotICAgICAgICAgICIwLjEwMzI4MiwgMC4xMTMzNjMsIDAuMjAwOTI4LCAwLjM0NTYzLCAwLjQ5MDMyNCwgMC44MjgxMTMsIDEuMDIxMDMiLCBcCi0gICAgICAgICAgIjAuMTExOTM0LCAwLjEyMTk5OCwgMC4yMDk1NywgMC4zNTQyOTksIDAuNDk5MDIsIDAuODM2NzYxLCAxLjAyOTgxIiwgXAotICAgICAgICAgICIwLjExNzY5OSwgMC4xMjc3NDQsIDAuMjE1MzIyLCAwLjM2MDAyMiwgMC41MDQ4NDYsIDAuODQyNTU5LCAxLjAzNTU0IiwgXAotICAgICAgICAgICIwLjEyMjA0MSwgMC4xMzIwODEsIDAuMjE5NjM5LCAwLjM2NDMzOCwgMC41MDkxNzEsIDAuODQ2ODQzLCAxLjAzOTkyIiwgXAotICAgICAgICAgICIwLjEyNzg1NSwgMC4xMzc4MzYsIDAuMjI1MzE5LCAwLjM3MDAyOSwgMC41MTQ3MDIsIDAuODUyNTE1LCAxLjA0NTQ2IiwgXAotICAgICAgICAgICIwLjEzMjE2NSwgMC4xNDIxODYsIDAuMjI5NTQxLCAwLjM3NDI2NiwgMC41MTg5NjYsIDAuODU2NjM3LCAxLjA1MDAzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExMzI2OCwgMC4xMzIyMTMsIDAuMzA1OTQxLCAwLjYwMTY1OCwgMC44OTY2NDQsIDEuNTg5OTQsIDEuOTg4NjEiLCBcCi0gICAgICAgICAgIjAuMTEzMTczLCAwLjEzMjE2LCAwLjMwNjAzOCwgMC42MDE0NDIsIDAuODk3MjM2LCAxLjU4ODU4LCAxLjk4ODY3IiwgXAotICAgICAgICAgICIwLjExMjk4OSwgMC4xMzE5OTEsIDAuMzA1OTYyLCAwLjYwMTU4MywgMC44OTcyMDgsIDEuNTg4NTgsIDEuOTg1NTMiLCBcCi0gICAgICAgICAgIjAuMTEyODAyLCAwLjEzMTgxOSwgMC4zMDU4MDIsIDAuNjAxMzE5LCAwLjg5NjgyNCwgMS41ODk2MSwgMS45ODYzMiIsIFwKLSAgICAgICAgICAiMC4xMTI2MzcsIDAuMTMxNjkzLCAwLjMwNTgyOSwgMC42MDEyNzMsIDAuODk3MTczLCAxLjU5MjUzLCAxLjk4NjUzIiwgXAotICAgICAgICAgICIwLjExMjQ3MiwgMC4xMzE1MTMsIDAuMzA1NTcyLCAwLjYwMTQyOCwgMC44OTc4NDgsIDEuNTkxODksIDEuOTg4NDciLCBcCi0gICAgICAgICAgIjAuMTEyNjQxLCAwLjEzMTQ3NywgMC4zMDU4ODcsIDAuNjAwNDY0LCAwLjg5NjkxMSwgMS41OTE3OCwgMS45ODUxOCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjQyOSwgMC4wMDI0MywgMC4wMDI0MzMsIDAuMDAyNDM1LCAwLjAwMjQzNiwgMC4wMDI0MzcsIDAuMDAyNDM3IiwgXAotICAgICAgICAgICIwLjAwMjQwOCwgMC4wMDI0MDksIDAuMDAyNDEzLCAwLjAwMjQxNSwgMC4wMDI0MTcsIDAuMDAyNDE3LCAwLjAwMjQxNyIsIFwKLSAgICAgICAgICAiMC4wMDI0MTgsIDAuMDAyNDE5LCAwLjAwMjQyMywgMC4wMDI0MjcsIDAuMDAyNDI4LCAwLjAwMjQyOSwgMC4wMDI0MjkiLCBcCi0gICAgICAgICAgIjAuMDAyNDU1LCAwLjAwMjQ1NSwgMC4wMDI0NTgsIDAuMDAyNDYxLCAwLjAwMjQ2MiwgMC4wMDI0NjMsIDAuMDAyNDYzIiwgXAotICAgICAgICAgICIwLjAwMjUwNSwgMC4wMDI1MDUsIDAuMDAyNTA3LCAwLjAwMjUxLCAwLjAwMjUxMSwgMC4wMDI1MTIsIDAuMDAyNTEyIiwgXAotICAgICAgICAgICIwLjAwMjYwOSwgMC4wMDI2MDgsIDAuMDAyNjA4LCAwLjAwMjYxLCAwLjAwMjYxMSwgMC4wMDI2MTIsIDAuMDAyNjEzIiwgXAotICAgICAgICAgICIwLjAwMjcxOSwgMC4wMDI3MiwgMC4wMDI3MTYsIDAuMDAyNzE1LCAwLjAwMjcxNSwgMC4wMDI3MTcsIDAuMDAyNzE2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1NDgyLCAwLjAwNTQ4MywgMC4wMDU0ODYsIDAuMDA1NDg4LCAwLjAwNTQ4OSwgMC4wMDU0ODksIDAuMDA1NDg5IiwgXAotICAgICAgICAgICIwLjAwNTQ2OCwgMC4wMDU0NjksIDAuMDA1NDczLCAwLjAwNTQ3NSwgMC4wMDU0NzYsIDAuMDA1NDc3LCAwLjAwNTQ3NyIsIFwKLSAgICAgICAgICAiMC4wMDU0NzYsIDAuMDA1NDc3LCAwLjAwNTQ4MiwgMC4wMDU0ODUsIDAuMDA1NDg2LCAwLjAwNTQ4NiwgMC4wMDU0ODciLCBcCi0gICAgICAgICAgIjAuMDA1NTA4LCAwLjAwNTUwOCwgMC4wMDU1MTEsIDAuMDA1NTEzLCAwLjAwNTUxMywgMC4wMDU1MTQsIDAuMDA1NTE1IiwgXAotICAgICAgICAgICIwLjAwNTU1NSwgMC4wMDU1NTUsIDAuMDA1NTU1LCAwLjAwNTU1NywgMC4wMDU1NTcsIDAuMDA1NTU4LCAwLjAwNTU1OCIsIFwKLSAgICAgICAgICAiMC4wMDU2NDcsIDAuMDA1NjQ1LCAwLjAwNTY0NiwgMC4wMDU2NDcsIDAuMDA1NjQ4LCAwLjAwNTY0OSwgMC4wMDU2NDkiLCBcCi0gICAgICAgICAgIjAuMDA1NzU4LCAwLjAwNTc1NSwgMC4wMDU3NDksIDAuMDA1NzQ4LCAwLjAwNTc0OCwgMC4wMDU3NDgsIDAuMDA1NzQ4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyMjE5LCAwLjAwMjIyLCAwLjAwMjIyNCwgMC4wMDIyMjYsIDAuMDAyMjI2LCAwLjAwMjIyNywgMC4wMDIyMjgiLCBcCi0gICAgICAgICAgIjAuMDAyMTk4LCAwLjAwMjE5OSwgMC4wMDIyMDMsIDAuMDAyMjA1LCAwLjAwMjIwNiwgMC4wMDIyMDgsIDAuMDAyMjA4IiwgXAotICAgICAgICAgICIwLjAwMjIwNSwgMC4wMDIyMDYsIDAuMDAyMjExLCAwLjAwMjIxNCwgMC4wMDIyMTUsIDAuMDAyMjE2LCAwLjAwMjIxNyIsIFwKLSAgICAgICAgICAiMC4wMDIyMzksIDAuMDAyMjQsIDAuMDAyMjQ0LCAwLjAwMjI0NywgMC4wMDIyNDgsIDAuMDAyMjQ5LCAwLjAwMjI0OSIsIFwKLSAgICAgICAgICAiMC4wMDIyOTQsIDAuMDAyMjkzLCAwLjAwMjI5NCwgMC4wMDIyOTUsIDAuMDAyMjk2LCAwLjAwMjI5NiwgMC4wMDIyOTciLCBcCi0gICAgICAgICAgIjAuMDAyMzkxLCAwLjAwMjM4OSwgMC4wMDIzOSwgMC4wMDIzOTEsIDAuMDAyMzkyLCAwLjAwMjM5MywgMC4wMDIzOTQiLCBcCi0gICAgICAgICAgIjAuMDAyNTA1LCAwLjAwMjUwMiwgMC4wMDI0OTYsIDAuMDAyNDk3LCAwLjAwMjQ5NywgMC4wMDI0OTcsIDAuMDAyNDk3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1NzQ5LCAwLjAwNTc1LCAwLjAwNTc1MywgMC4wMDU3NTUsIDAuMDA1NzU1LCAwLjAwNTc1NiwgMC4wMDU3NTYiLCBcCi0gICAgICAgICAgIjAuMDA1NzM1LCAwLjAwNTczNSwgMC4wMDU3MzksIDAuMDA1NzQxLCAwLjAwNTc0MiwgMC4wMDU3NDMsIDAuMDA1NzQzIiwgXAotICAgICAgICAgICIwLjAwNTc0MSwgMC4wMDU3NDIsIDAuMDA1NzQ3LCAwLjAwNTc1LCAwLjAwNTc1MSwgMC4wMDU3NTIsIDAuMDA1NzUyIiwgXAotICAgICAgICAgICIwLjAwNTc3MywgMC4wMDU3NzMsIDAuMDA1Nzc1LCAwLjAwNTc3NywgMC4wMDU3NzgsIDAuMDA1Nzc5LCAwLjAwNTc3OSIsIFwKLSAgICAgICAgICAiMC4wMDU4MTksIDAuMDA1ODE4LCAwLjAwNTgxOSwgMC4wMDU4MiwgMC4wMDU4MjEsIDAuMDA1ODIyLCAwLjAwNTgyMSIsIFwKLSAgICAgICAgICAiMC4wMDU5MTcsIDAuMDA1OTE1LCAwLjAwNTkxMSwgMC4wMDU5MTIsIDAuMDA1OTEyLCAwLjAwNTkxMiwgMC4wMDU5MTIiLCBcCi0gICAgICAgICAgIjAuMDA2MDExLCAwLjAwNjAwOSwgMC4wMDYwMDUsIDAuMDA2MDA2LCAwLjAwNjAwNiwgMC4wMDYwMDcsIDAuMDA2MDA3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyMTU2LCAwLjAwMjE1OCwgMC4wMDIxNjIsIDAuMDAyMTY1LCAwLjAwMjE2NSwgMC4wMDIxNjYsIDAuMDAyMTY3IiwgXAotICAgICAgICAgICIwLjAwMjEzNiwgMC4wMDIxMzcsIDAuMDAyMTQyLCAwLjAwMjE0NSwgMC4wMDIxNDYsIDAuMDAyMTQ2LCAwLjAwMjE0NyIsIFwKLSAgICAgICAgICAiMC4wMDIxNDcsIDAuMDAyMTQ4LCAwLjAwMjE1NCwgMC4wMDIxNTcsIDAuMDAyMTU4LCAwLjAwMjE2LCAwLjAwMjE2IiwgXAotICAgICAgICAgICIwLjAwMjE4NSwgMC4wMDIxODUsIDAuMDAyMTksIDAuMDAyMTkzLCAwLjAwMjE5NCwgMC4wMDIxOTUsIDAuMDAyMTk1IiwgXAotICAgICAgICAgICIwLjAwMjIzNSwgMC4wMDIyMzUsIDAuMDAyMjQsIDAuMDAyMjQzLCAwLjAwMjI0NCwgMC4wMDIyNDUsIDAuMDAyMjQ1IiwgXAotICAgICAgICAgICIwLjAwMjM0MiwgMC4wMDIzNDEsIDAuMDAyMzQyLCAwLjAwMjM0NSwgMC4wMDIzNDYsIDAuMDAyMzQ4LCAwLjAwMjM0OCIsIFwKLSAgICAgICAgICAiMC4wMDI0NTMsIDAuMDAyNDUxLCAwLjAwMjQ1LCAwLjAwMjQ1MiwgMC4wMDI0NTMsIDAuMDAyNDU0LCAwLjAwMjQ1NCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNTU0MSwgMC4wMDU1NDIsIDAuMDA1NTQ1LCAwLjAwNTU0NywgMC4wMDU1NDgsIDAuMDA1NTQ4LCAwLjAwNTU0OCIsIFwKLSAgICAgICAgICAiMC4wMDU1MjcsIDAuMDA1NTI4LCAwLjAwNTUzMiwgMC4wMDU1MzUsIDAuMDA1NTM1LCAwLjAwNTUzNiwgMC4wMDU1MzciLCBcCi0gICAgICAgICAgIjAuMDA1NTM0LCAwLjAwNTUzNSwgMC4wMDU1NCwgMC4wMDU1NDMsIDAuMDA1NTQ0LCAwLjAwNTU0NSwgMC4wMDU1NDUiLCBcCi0gICAgICAgICAgIjAuMDA1NTY2LCAwLjAwNTU2NiwgMC4wMDU1NjksIDAuMDA1NTcxLCAwLjAwNTU3MiwgMC4wMDU1NzIsIDAuMDA1NTcyIiwgXAotICAgICAgICAgICIwLjAwNTYxMiwgMC4wMDU2MTIsIDAuMDA1NjEyLCAwLjAwNTYxNCwgMC4wMDU2MTQsIDAuMDA1NjE1LCAwLjAwNTYxNSIsIFwKLSAgICAgICAgICAiMC4wMDU3MDMsIDAuMDA1NzAzLCAwLjAwNTcwMSwgMC4wMDU3MDMsIDAuMDA1NzA0LCAwLjAwNTcwNSwgMC4wMDU3MDUiLCBcCi0gICAgICAgICAgIjAuMDA1ODE3LCAwLjAwNTgxMywgMC4wMDU4MDYsIDAuMDA1ODA1LCAwLjAwNTgwNiwgMC4wMDU4MDYsIDAuMDA1ODA2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxODQ0LCAwLjAwMTg0NSwgMC4wMDE4NDksIDAuMDAxODUyLCAwLjAwMTg1MywgMC4wMDE4NTMsIDAuMDAxODU0IiwgXAotICAgICAgICAgICIwLjAwMTgyMywgMC4wMDE4MjQsIDAuMDAxODMsIDAuMDAxODMyLCAwLjAwMTgzMywgMC4wMDE4MzUsIDAuMDAxODM0IiwgXAotICAgICAgICAgICIwLjAwMTgzNCwgMC4wMDE4MzUsIDAuMDAxODQxLCAwLjAwMTg0NCwgMC4wMDE4NDYsIDAuMDAxODQ3LCAwLjAwMTg0NyIsIFwKLSAgICAgICAgICAiMC4wMDE4NzEsIDAuMDAxODcxLCAwLjAwMTg3NywgMC4wMDE4OCwgMC4wMDE4ODEsIDAuMDAxODgzLCAwLjAwMTg4MyIsIFwKLSAgICAgICAgICAiMC4wMDE5MjksIDAuMDAxOTI4LCAwLjAwMTkzLCAwLjAwMTkzMiwgMC4wMDE5MzIsIDAuMDAxOTMzLCAwLjAwMTkzMyIsIFwKLSAgICAgICAgICAiMC4wMDIwMjgsIDAuMDAyMDI4LCAwLjAwMjAzLCAwLjAwMjAzMiwgMC4wMDIwMzQsIDAuMDAyMDM1LCAwLjAwMjAzNSIsIFwKLSAgICAgICAgICAiMC4wMDIxNDUsIDAuMDAyMTQzLCAwLjAwMjEzOSwgMC4wMDIxMzksIDAuMDAyMTQsIDAuMDAyMTQsIDAuMDAyMTQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDU3ODcsIDAuMDA1Nzg4LCAwLjAwNTc5MiwgMC4wMDU3OTMsIDAuMDA1Nzk0LCAwLjAwNTc5NSwgMC4wMDU3OTUiLCBcCi0gICAgICAgICAgIjAuMDA1Nzc0LCAwLjAwNTc3NSwgMC4wMDU3NzksIDAuMDA1NzgyLCAwLjAwNTc4MiwgMC4wMDU3ODMsIDAuMDA1NzgzIiwgXAotICAgICAgICAgICIwLjAwNTc4NCwgMC4wMDU3ODYsIDAuMDA1NzksIDAuMDA1NzkyLCAwLjAwNTc5MywgMC4wMDU3OTQsIDAuMDA1Nzk0IiwgXAotICAgICAgICAgICIwLjAwNTgxNywgMC4wMDU4MTcsIDAuMDA1ODIsIDAuMDA1ODIyLCAwLjAwNTgyMywgMC4wMDU4MjMsIDAuMDA1ODI0IiwgXAotICAgICAgICAgICIwLjAwNTg3LCAwLjAwNTg2OCwgMC4wMDU4NjksIDAuMDA1ODcxLCAwLjAwNTg3MSwgMC4wMDU4NzIsIDAuMDA1ODcyIiwgXAotICAgICAgICAgICIwLjAwNTk2NiwgMC4wMDU5NjUsIDAuMDA1OTY0LCAwLjAwNTk2NiwgMC4wMDU5NjYsIDAuMDA1OTY3LCAwLjAwNTk2OCIsIFwKLSAgICAgICAgICAiMC4wMDYwNywgMC4wMDYwNjgsIDAuMDA2MDY0LCAwLjAwNjA2NiwgMC4wMDYwNjUsIDAuMDA2MDY1LCAwLjAwNjA2NSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlMwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDgyMTcsIDAuMDA4MjE4LCAwLjAwODIyMywgMC4wMDgyMjUsIDAuMDA4MjI2LCAwLjAwODIyNywgMC4wMDgyMjkiLCBcCi0gICAgICAgICAgIjAuMDA4MjEsIDAuMDA4MjExLCAwLjAwODIxNSwgMC4wMDgyMTgsIDAuMDA4MjE5LCAwLjAwODIxOSwgMC4wMDgyMTgiLCBcCi0gICAgICAgICAgIjAuMDA4MzI3LCAwLjAwODMyOCwgMC4wMDgzMzIsIDAuMDA4MzM1LCAwLjAwODMzNiwgMC4wMDgzMzgsIDAuMDA4MzM3IiwgXAotICAgICAgICAgICIwLjAwODUwMiwgMC4wMDg1MDMsIDAuMDA4NTA3LCAwLjAwODUxLCAwLjAwODUxMSwgMC4wMDg1MTIsIDAuMDA4NTEyIiwgXAotICAgICAgICAgICIwLjAwODcwNSwgMC4wMDg3MDYsIDAuMDA4NzEsIDAuMDA4NzEzLCAwLjAwODcxNCwgMC4wMDg3MTUsIDAuMDA4NzE1IiwgXAotICAgICAgICAgICIwLjAwOTAyOSwgMC4wMDkwMzMsIDAuMDA5MDM3LCAwLjAwOTAzOSwgMC4wMDkwNCwgMC4wMDkwNDEsIDAuMDA5MDQxIiwgXAotICAgICAgICAgICIwLjAwOTQxNywgMC4wMDk0MTcsIDAuMDA5NDIzLCAwLjAwOTQyNywgMC4wMDk0MjcsIDAuMDA5NDI5LCAwLjAwOTQyOCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwODA0NiwgMC4wMDgwNDcsIDAuMDA4MDUyLCAwLjAwODA1NCwgMC4wMDgwNTUsIDAuMDA4MDU2LCAwLjAwODA1NiIsIFwKLSAgICAgICAgICAiMC4wMDgwMzIsIDAuMDA4MDMzLCAwLjAwODAzOCwgMC4wMDgwNCwgMC4wMDgwNDEsIDAuMDA4MDQyLCAwLjAwODA0MiIsIFwKLSAgICAgICAgICAiMC4wMDgxMDYsIDAuMDA4MTA3LCAwLjAwODExMiwgMC4wMDgxMTQsIDAuMDA4MTE1LCAwLjAwODExNywgMC4wMDgxMTciLCBcCi0gICAgICAgICAgIjAuMDA4MTk4LCAwLjAwODE5OSwgMC4wMDgyMDQsIDAuMDA4MjA3LCAwLjAwODIwOCwgMC4wMDgyMDgsIDAuMDA4MjA5IiwgXAotICAgICAgICAgICIwLjAwODMxMSwgMC4wMDgzMTIsIDAuMDA4MzE3LCAwLjAwODMyLCAwLjAwODMyMSwgMC4wMDgzMjIsIDAuMDA4MzIyIiwgXAotICAgICAgICAgICIwLjAwODUyNCwgMC4wMDg1MjQsIDAuMDA4NTQ3LCAwLjAwODUzMSwgMC4wMDg1MzIsIDAuMDA4NTMzLCAwLjAwODUzNCIsIFwKLSAgICAgICAgICAiMC4wMDg2NzYsIDAuMDA4NjkzLCAwLjAwODY4MiwgMC4wMDg2OTIsIDAuMDA4Njg2LCAwLjAwODY4NywgMC4wMDg3MDMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTMSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0MjAyLCAwLjAwNDIwNCwgMC4wMDQyMSwgMC4wMDQyMTMsIDAuMDA0MjEzLCAwLjAwNDIxNCwgMC4wMDQyMTQiLCBcCi0gICAgICAgICAgIjAuMDA0MjgxLCAwLjAwNDI4MywgMC4wMDQyOTEsIDAuMDA0Mjk1LCAwLjAwNDI5NSwgMC4wMDQyOTYsIDAuMDA0Mjk2IiwgXAotICAgICAgICAgICIwLjAwNDQzMSwgMC4wMDQ0MzMsIDAuMDA0NDQsIDAuMDA0NDQ1LCAwLjAwNDQ0NiwgMC4wMDQ0NDcsIDAuMDA0NDQ3IiwgXAotICAgICAgICAgICIwLjAwNDU5OCwgMC4wMDQ1OTksIDAuMDA0NjA2LCAwLjAwNDYwOSwgMC4wMDQ2MTEsIDAuMDA0NjEyLCAwLjAwNDYxMyIsIFwKLSAgICAgICAgICAiMC4wMDQ3NzcsIDAuMDA0Nzc4LCAwLjAwNDc4MywgMC4wMDQ3ODYsIDAuMDA0Nzg3LCAwLjAwNDc4OCwgMC4wMDQ3ODkiLCBcCi0gICAgICAgICAgIjAuMDA1MDg0LCAwLjAwNTA4NSwgMC4wMDUwOTQsIDAuMDA1MDk2LCAwLjAwNTA5NywgMC4wMDUwOTgsIDAuMDA1MDk4IiwgXAotICAgICAgICAgICIwLjAwNTM1MiwgMC4wMDUzNTMsIDAuMDA1MzY5LCAwLjAwNTM3LCAwLjAwNTM3LCAwLjAwNTM3MiwgMC4wMDUzNzIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDMxMTgsIDAuMDAzMTE5LCAwLjAwMzEyNSwgMC4wMDMxMjgsIDAuMDAzMTI4LCAwLjAwMzEyOSwgMC4wMDMxMjkiLCBcCi0gICAgICAgICAgIjAuMDAzMjA2LCAwLjAwMzIwOCwgMC4wMDMyMTYsIDAuMDAzMjE5LCAwLjAwMzIyLCAwLjAwMzIyMSwgMC4wMDMyMjIiLCBcCi0gICAgICAgICAgIjAuMDAzMzY4LCAwLjAwMzM3LCAwLjAwMzM3OCwgMC4wMDMzODIsIDAuMDAzMzg0LCAwLjAwMzM4NSwgMC4wMDMzODYiLCBcCi0gICAgICAgICAgIjAuMDAzNTU0LCAwLjAwMzU1NiwgMC4wMDM1NjQsIDAuMDAzNTY4LCAwLjAwMzU2OSwgMC4wMDM1NzEsIDAuMDAzNTcxIiwgXAotICAgICAgICAgICIwLjAwMzczNCwgMC4wMDM3MzUsIDAuMDAzNzQyLCAwLjAwMzc0NiwgMC4wMDM3NDgsIDAuMDAzNzQ5LCAwLjAwMzc1IiwgXAotICAgICAgICAgICIwLjAwNDA1NywgMC4wMDQwNTgsIDAuMDA0MDY0LCAwLjAwNDA2NywgMC4wMDQwNjksIDAuMDA0MDcsIDAuMDA0MDcxIiwgXAotICAgICAgICAgICIwLjAwNDM1MiwgMC4wMDQzNTQsIDAuMDA0MzU4LCAwLjAwNDM2MiwgMC4wMDQzNjMsIDAuMDA0MzY0LCAwLjAwNDM2NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogTVhJMlgyICoKLSAqIC0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoTVhJMlgyKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuNTM3NjIxOwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2NTAzMDU7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjQ5MzM3OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDY1MDMwNTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyODIsIDAuMDAwMjg0LCAwLjAwMDI4NiwgMC4wMDAyODYsIDAuMDAwMjg3LCAwLjAwMDI4NywgMC4wMDAyODgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAzMTQsIDAuMDAwMzA0LCAwLjAwMDMwMSwgMC4wMDAzMDEsIDAuMDAwMywgMC4wMDAyOTksIDAuMDAwMjk4Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2MjU4OTY7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjI0NTcyOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDYyNTg5NjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyODcsIDAuMDAwMjg5LCAwLjAwMDI5LCAwLjAwMDI5MSwgMC4wMDAyOTEsIDAuMDAwMjkxLCAwLjAwMDI5MSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDMxNCwgMC4wMDAzMDMsIDAuMDAwMzAxLCAwLjAwMDMwMSwgMC4wMDAzLCAwLjAwMDI5OSwgMC4wMDAyOTkiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFMwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE0MjY3NjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE0MjY2NTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE0MjY3NjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyNDMsIDAuMDAwMjY4LCAwLjAwMDM1LCAwLjAwMDQ2OCwgMC4wMDA1OTgsIDAuMDAwODY2LCAwLjAwMTA3OCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjI2NiwgMC4wMDIyOTcsIDAuMDAyMzcxLCAwLjAwMjQ3OSwgMC4wMDI2MDgsIDAuMDAyODI5LCAwLjAwMzAyOCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjY4MTIzODsKLSAgICBmdW5jdGlvbiA6ICIoISgoUzAgQikgKyAoIVMwIEEpKSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2NTk0MywgMC4xNDM4MzgsIDAuMjA1OTY3LCAwLjI4MzY1MSwgMC4zNjEzNDksIDAuNDM5MDg2LCAwLjUxNjgzMSIsIFwKLSAgICAgICAgICAiMC4wNzE3OTEsIDAuMTQ5NjUyLCAwLjIxMTgwMiwgMC4yODk0ODgsIDAuMzY3MjA2LCAwLjQ0NDg4OSwgMC41MjI2MjgiLCBcCi0gICAgICAgICAgIjAuMDc4MDQ1LCAwLjE1NTkxOSwgMC4yMTgwMzksIDAuMjk1NzYsIDAuMzczNDU5LCAwLjQ1MTE2MiwgMC41Mjg3ODgiLCBcCi0gICAgICAgICAgIjAuMDgzMjM3LCAwLjE2MTA5OSwgMC4yMjMyOTYsIDAuMzAwOTM2LCAwLjM3ODYxOSwgMC40NTYzMDUsIDAuNTMzOTc5IiwgXAotICAgICAgICAgICIwLjA4NzQ1MSwgMC4xNjUzMTYsIDAuMjI3NDgzLCAwLjMwNTE4LCAwLjM4MjgzMywgMC40NjA1MjcsIDAuNTM4MTc1IiwgXAotICAgICAgICAgICIwLjA5MzIwNCwgMC4xNzEwMjksIDAuMjMzMjA2LCAwLjMxMDg2OCwgMC4zODg1NzEsIDAuNDY2MjQ2LCAwLjU0Mzg5NyIsIFwKLSAgICAgICAgICAiMC4wOTc0NDUsIDAuMTc1NDc1LCAwLjIzNzUzMSwgMC4zMTUyMjUsIDAuMzkyOTEzLCAwLjQ3MDQyMSwgMC41NDgwOTIiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM5Njg5LCAwLjIwMTgyNSwgMC4zMzI2OCwgMC40OTcwMTksIDAuNjYxMjc0LCAwLjgyMzY2NiwgMC45ODgxNTciLCBcCi0gICAgICAgICAgIjAuMDM5Njc4LCAwLjIwMTg0LCAwLjMzMzE1OSwgMC40OTY2OTksIDAuNjYwNTA1LCAwLjgyMzYwNiwgMC45ODc4ODgiLCBcCi0gICAgICAgICAgIjAuMDM5NjkxLCAwLjIwMTg0LCAwLjMzMjYxMSwgMC40OTY3MTYsIDAuNjYwMjE4LCAwLjgyMzk1NiwgMC45ODg2MzYiLCBcCi0gICAgICAgICAgIjAuMDM5NzgxLCAwLjIwMTgzNiwgMC4zMzI1NTEsIDAuNDk3MTksIDAuNjYwNzYsIDAuODI1MzgzLCAwLjk4ODQ2MiIsIFwKLSAgICAgICAgICAiMC4wMzk5MjQsIDAuMjAxNzk0LCAwLjMzMzA3MywgMC40OTY1NTUsIDAuNjYxMjE1LCAwLjgyNDA0OSwgMC45ODg2NzYiLCBcCi0gICAgICAgICAgIjAuMDM5OTg3LCAwLjIwMTY3OCwgMC4zMzMwMDMsIDAuNDk3MDA4LCAwLjY2MDQyNiwgMC44MjUyMTUsIDAuOTg4NDIxIiwgXAotICAgICAgICAgICIwLjA0MDA0OSwgMC4yMDE2MTYsIDAuMzMyNTk2LCAwLjQ5Njc0MiwgMC42NjAzMTMsIDAuODI1MDc5LCAwLjk4OTE4OCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjUxMDMsIDAuMTQxMjE1LCAwLjIwMTg4MywgMC4yNzc2NTQsIDAuMzUzNTAxLCAwLjQyOTI2MiwgMC41MDUwMzgiLCBcCi0gICAgICAgICAgIjAuMDcxMTg3LCAwLjE0NzMyMiwgMC4yMDc5NzgsIDAuMjgzNzY3LCAwLjM1OTU4NiwgMC40MzUzMzEsIDAuNTExMTIzIiwgXAotICAgICAgICAgICIwLjA3ODE0MSwgMC4xNTQyNTQsIDAuMjE0OTE2LCAwLjI5MDY5OSwgMC4zNjY1MiwgMC40NDIyNzgsIDAuNTE4MDcyIiwgXAotICAgICAgICAgICIwLjA4Mzg2NywgMC4xNTk5NzUsIDAuMjIwNjM0LCAwLjI5NjQ0OSwgMC4zNzIyMiwgMC40NDc5OCwgMC41MjM4MzIiLCBcCi0gICAgICAgICAgIjAuMDg4NTgsIDAuMTY0NzU0LCAwLjIyNTM5OCwgMC4zMDExODUsIDAuMzc2OTU4LCAwLjQ1Mjc0LCAwLjUyODUzMiIsIFwKLSAgICAgICAgICAiMC4wOTUwOTksIDAuMTcxMTk3LCAwLjIzMTgzNSwgMC4zMDc2NCwgMC4zODMzOTQsIDAuNDU5MTkyLCAwLjUzNDk2MyIsIFwKLSAgICAgICAgICAiMC4wOTk5ODksIDAuMTc2MDY4LCAwLjIzNjcwMiwgMC4zMTI0ODMsIDAuMzg4MjYzLCAwLjQ2NDA2MywgMC41Mzk4MTMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM4MzM1LCAwLjE5Mzk0NCwgMC4zMTkyMiwgMC40Nzc0NjcsIDAuNjMzOTA1LCAwLjc5Mjk3LCAwLjk0ODI3OSIsIFwKLSAgICAgICAgICAiMC4wMzgzMTYsIDAuMTkzNTYsIDAuMzE5MzA0LCAwLjQ3NzU1OSwgMC42MzQsIDAuNzkyODI0LCAwLjk1MDUzNiIsIFwKLSAgICAgICAgICAiMC4wMzgzMjgsIDAuMTkzOTA1LCAwLjMxOTk0OCwgMC40Nzc1MTksIDAuNjM1MjY0LCAwLjc5MjgyOCwgMC45NTA1MDIiLCBcCi0gICAgICAgICAgIjAuMDM4NDA4LCAwLjE5Mzg4MiwgMC4zMTk5MTksIDAuNDc2NjM4LCAwLjYzNDE0LCAwLjc5MTgxNCwgMC45NDg3MTIiLCBcCi0gICAgICAgICAgIjAuMDM4NTI4LCAwLjE5Mzk0LCAwLjMxOTUyNywgMC40Nzc0MTIsIDAuNjM0MzI2LCAwLjc5MjU2LCAwLjk0OTIxIiwgXAotICAgICAgICAgICIwLjAzODU3OSwgMC4xOTM4NDMsIDAuMzE5NzU5LCAwLjQ3NzMyOCwgMC42MzQ5MzMsIDAuNzkyNjA0LCAwLjk0OTIxNiIsIFwKLSAgICAgICAgICAiMC4wMzg2OSwgMC4xOTM1NzYsIDAuMzE5NjQxLCAwLjQ3Njg0OSwgMC42MzQzMDQsIDAuNzkxNTI3LCAwLjk1MDExMSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjY4MjIsIDAuMTQ0NzI1LCAwLjIwNjg5NSwgMC4yODQ1MDgsIDAuMzYyMjUyLCAwLjQzOTg5OCwgMC41MTc3MDIiLCBcCi0gICAgICAgICAgIjAuMDcyNjk3LCAwLjE1MDU1NiwgMC4yMTI3MzUsIDAuMjkwNDMsIDAuMzY4MTQ4LCAwLjQ0NTgzNCwgMC41MjM1NzYiLCBcCi0gICAgICAgICAgIjAuMDc4OTU1LCAwLjE1Njg1NywgMC4yMTkwMTIsIDAuMjk2NjkxLCAwLjM3NDQsIDAuNDUyMDcsIDAuNTI5ODM1IiwgXAotICAgICAgICAgICIwLjA4NDA4MSwgMC4xNjE5NTQsIDAuMjI0MTM5LCAwLjMwMTc4OSwgMC4zNzk0NzYsIDAuNDU3MjExLCAwLjUzNDgzOSIsIFwKLSAgICAgICAgICAiMC4wODgyNTIsIDAuMTY2MTM0LCAwLjIyODMsIDAuMzA1OTgzLCAwLjM4MzY0MiwgMC40NjEzODEsIDAuNTM4OTg3IiwgXAotICAgICAgICAgICIwLjA5Mzk3NywgMC4xNzE4MDgsIDAuMjMzOTgsIDAuMzExNjUyLCAwLjM4OTMzNSwgMC40NjcwMTQsIDAuNTQ0NjY4IiwgXAotICAgICAgICAgICIwLjA5ODIyMSwgMC4xNzY0ODIsIDAuMjM4MTgsIDAuMzE1ODgyLCAwLjM5MzU3NSwgMC40NzEyMzksIDAuNTQ4ODg1Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzOTY4LCAwLjIwMTkwNSwgMC4zMzMxODUsIDAuNDk2MzkxLCAwLjY2MDYwMiwgMC44MjM3NSwgMC45ODgyMDMiLCBcCi0gICAgICAgICAgIjAuMDM5NzE1LCAwLjIwMTQwNSwgMC4zMzMxMDUsIDAuNDk2NzQ5LCAwLjY2MDQ3MSwgMC44MjQxNjMsIDAuOTg4MTgzIiwgXAotICAgICAgICAgICIwLjAzOTcxMywgMC4yMDE1MTQsIDAuMzMzMTcsIDAuNDk3MjE4LCAwLjY1OTY5MiwgMC44MjQyODksIDAuOTg4MTkyIiwgXAotICAgICAgICAgICIwLjAzOTc5MywgMC4yMDE4NjMsIDAuMzMyNjAyLCAwLjQ5NzE5MiwgMC42NjA3MywgMC44MjU0MjMsIDAuOTg3OTIzIiwgXAotICAgICAgICAgICIwLjAzOTk2OSwgMC4yMDE4MjksIDAuMzMzMDgzLCAwLjQ5NjQ4NCwgMC42NjEyMjMsIDAuODI1MzksIDAuOTg4NjcyIiwgXAotICAgICAgICAgICIwLjA0MDA0OSwgMC4yMDE2NDUsIDAuMzMzMDE4LCAwLjQ5NzAzMywgMC42NjA1MzQsIDAuODI1MjIxLCAwLjk4ODQ0IiwgXAotICAgICAgICAgICIwLjA0MDEyNSwgMC4yMDIsIDAuMzMyNjI1LCAwLjQ5NjM1MywgMC42NjEwNjEsIDAuODI0MjY1LCAwLjk4OTIxMyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjUzNjEsIDAuMTQxNDg1LCAwLjIwMjE2NiwgMC4yNzc5MTIsIDAuMzUzNzI2LCAwLjQyOTQ3OCwgMC41MDUzMDkiLCBcCi0gICAgICAgICAgIjAuMDcxNjA4LCAwLjE0NzgwNiwgMC4yMDg0NjYsIDAuMjg0MjUsIDAuMzYwMDY1LCAwLjQzNTg0OSwgMC41MTE3MDMiLCBcCi0gICAgICAgICAgIjAuMDc4NjA5LCAwLjE1NDc2NiwgMC4yMTU0MzEsIDAuMjkxMjExLCAwLjM2NzAzNCwgMC40NDI3NzgsIDAuNTE4NTgyIiwgXAotICAgICAgICAgICIwLjA4NDQ3LCAwLjE2MDU4NSwgMC4yMjEyNTUsIDAuMjk3MDI5LCAwLjM3MjgyNCwgMC40NDg2MjIsIDAuNTI0NDMyIiwgXAotICAgICAgICAgICIwLjA4OTI3NCwgMC4xNjUzOTQsIDAuMjI2MDM2LCAwLjMwMTg0NSwgMC4zNzc2MTEsIDAuNDUzNDAyLCAwLjUyOTE5MyIsIFwKLSAgICAgICAgICAiMC4wOTU5MDEsIDAuMTcyMDA4LCAwLjIzMjY0NSwgMC4zMDg0MzgsIDAuMzg0MjQsIDAuNDYwMDEzLCAwLjUzNTgwMSIsIFwKLSAgICAgICAgICAiMC4xMDA4OCwgMC4xNzY5NzEsIDAuMjM3NTk5LCAwLjMxMzM5OSwgMC4zODkxODEsIDAuNDY1MDAyLCAwLjU0MDcyNSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzgzNTksIDAuMTkzOTUsIDAuMzE5MzQ3LCAwLjQ3NzQ4OSwgMC42MzM4OTQsIDAuNzkyNTg5LCAwLjk1MDYzOCIsIFwKLSAgICAgICAgICAiMC4wMzgzNTcsIDAuMTkzOTUyLCAwLjMxOTE1MSwgMC40Nzc0MDQsIDAuNjMzNjksIDAuNzkwNDkzLCAwLjk0ODc4OSIsIFwKLSAgICAgICAgICAiMC4wMzgzNywgMC4xOTM4OTQsIDAuMzE5OTYyLCAwLjQ3NzUwOSwgMC42MzUyNTIsIDAuNzkyNzgyLCAwLjk1MDUzMiIsIFwKLSAgICAgICAgICAiMC4wMzg0MzcsIDAuMTkzOTc1LCAwLjMxOTMwOSwgMC40Nzc1NDIsIDAuNjM1MjA0LCAwLjc5MjkwNywgMC45NDg3MjEiLCBcCi0gICAgICAgICAgIjAuMDM4NTM3LCAwLjE5Mzk3MywgMC4zMTk5MDgsIDAuNDc2ODIxLCAwLjYzNDM0OSwgMC43OTE4ODQsIDAuOTQ4ODIzIiwgXAotICAgICAgICAgICIwLjAzODYwMywgMC4xOTM4ODEsIDAuMzE5ODE1LCAwLjQ3NzQwMSwgMC42MzQxODIsIDAuNzkyNjQyLCAwLjk1MDI3NyIsIFwKLSAgICAgICAgICAiMC4wMzg3MTcsIDAuMTkzNSwgMC4zMTk0ODgsIDAuNDc2ODk2LCAwLjYzNDQwMSwgMC43OTI1NjYsIDAuOTUwMTI4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlMwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzIwNDksIDAuMTQ5OTI1LCAwLjIxMjA3MywgMC4yODk2NywgMC4zNjc0MDgsIDAuNDQ1MTU2LCAwLjUyMjg5NyIsIFwKLSAgICAgICAgICAiMC4wNzkyNTQsIDAuMTU3MDk1LCAwLjIxOTMwOSwgMC4yOTY5NzMsIDAuMzc0NjgsIDAuNDUyNDE4LCAwLjUyOTk5NCIsIFwKLSAgICAgICAgICAiMC4wODUxMDYsIDAuMTYyOTU4LCAwLjIyNTEzNCwgMC4zMDI4MjEsIDAuMzgwNTM1LCAwLjQ1ODIwOSwgMC41MzU5MDEiLCBcCi0gICAgICAgICAgIjAuMDg5MjA4LCAwLjE2NzEzMSwgMC4yMjkyNzksIDAuMzA2OTU5LCAwLjM4NDYzMiwgMC40NjIzMSwgMC41NDAwMDEiLCBcCi0gICAgICAgICAgIjAuMDkyNjk2LCAwLjE3MDU2NiwgMC4yMzI3MjEsIDAuMzEwMzg0LCAwLjM4ODA3NywgMC40NjU4MDIsIDAuNTQzNDQ5IiwgXAotICAgICAgICAgICIwLjA5NzQ4NywgMC4xNzUzNCwgMC4yMzc0NTQsIDAuMzE1MTYyLCAwLjM5Mjg0MiwgMC40NzA1NDYsIDAuNTQ4MTU3IiwgXAotICAgICAgICAgICIwLjEwMDk2LCAwLjE3ODg2NSwgMC4yNDA5NzcsIDAuMzE4NjcxLCAwLjM5NjM1NywgMC40NzQwMTMsIDAuNTUxNjgyIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzOTY5MiwgMC4yMDE1OTksIDAuMzMyNDEsIDAuNDk2MjY3LCAwLjY2MDMxNywgMC44MjQzMjksIDAuOTg4MTU2IiwgXAotICAgICAgICAgICIwLjAzOTY5OCwgMC4yMDEzNjYsIDAuMzMyNiwgMC40OTY4MSwgMC42NjA0MTQsIDAuODI0MDI1LCAwLjk4OTUyOSIsIFwKLSAgICAgICAgICAiMC4wMzk3MTQsIDAuMjAxNjQ0LCAwLjMzMjgwMSwgMC40OTY2NTEsIDAuNjYxMjg1LCAwLjgyNDM0NiwgMC45ODc3NyIsIFwKLSAgICAgICAgICAiMC4wMzk2ODYsIDAuMjAxODU1LCAwLjMzMzAzNSwgMC40OTcwOTgsIDAuNjYwNjE5LCAwLjgyNDcwNiwgMC45ODk0MDUiLCBcCi0gICAgICAgICAgIjAuMDM5NzIxLCAwLjIwMTc1NywgMC4zMzI1MTEsIDAuNDk2NzU5LCAwLjY2MDM3LCAwLjgyNTI3NywgMC45ODkzMjkiLCBcCi0gICAgICAgICAgIjAuMDM5NzMzLCAwLjIwMTU5MywgMC4zMzI2NDgsIDAuNDk2NDQ5LCAwLjY2MDMxNSwgMC44MjQyMiwgMC45ODg0MjQiLCBcCi0gICAgICAgICAgIjAuMDM5NzE5LCAwLjIwMTQ1NSwgMC4zMzI2MjcsIDAuNDk2NjA3LCAwLjY2MDMxOSwgMC44MjQ1NDQsIDAuOTg5MDA5Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3MjM1NCwgMC4xNDg0NTcsIDAuMjA5MTIzLCAwLjI4NDkxNywgMC4zNjA3MTEsIDAuNDM2NDg5LCAwLjUxMjI3NiIsIFwKLSAgICAgICAgICAiMC4wNzk1MTEsIDAuMTU1NjM3LCAwLjIxNjMxNSwgMC4yOTIwOTUsIDAuMzY3OTI5LCAwLjQ0MzcyNSwgMC41MTk0NTUiLCBcCi0gICAgICAgICAgIjAuMDg1MjI0LCAwLjE2MTM0LCAwLjIyMjAwNSwgMC4yOTc3ODcsIDAuMzczNjAzLCAwLjQ0OTM2NiwgMC41MjUxOTEiLCBcCi0gICAgICAgICAgIjAuMDg5MDY0LCAwLjE2NTE5NSwgMC4yMjU4NDEsIDAuMzAxNjE1LCAwLjM3NzQxMiwgMC40NTMyMSwgMC41Mjg5NzEiLCBcCi0gICAgICAgICAgIjAuMDkyMzk3LCAwLjE2ODUyOSwgMC4yMjkxNjUsIDAuMzA0OTU0LCAwLjM4MDc1LCAwLjQ1NjUxMywgMC41MzIzMjEiLCBcCi0gICAgICAgICAgIjAuMDk2NjE3LCAwLjE3MjcxOSwgMC4yMzMzNTEsIDAuMzA5MTMxLCAwLjM4NDkyMywgMC40NjA2OTMsIDAuNTM2NDc2IiwgXAotICAgICAgICAgICIwLjA5OTc1MywgMC4xNzYxNTQsIDAuMjM2NTMyLCAwLjMxMjMwNSwgMC4zODgwOTIsIDAuNDYzODc3LCAwLjUzOTYzNiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzgzMjcsIDAuMTkzOTEyLCAwLjMxOTMsIDAuNDc2NjY3LCAwLjYzNTI0MSwgMC43OTI4NzQsIDAuOTQ4NzMyIiwgXAotICAgICAgICAgICIwLjAzODI5OSwgMC4xOTM5MzgsIDAuMzE5MjQxLCAwLjQ3NzU3NywgMC42MzQwMjMsIDAuNzkxMzg2LCAwLjk1MDU0IiwgXAotICAgICAgICAgICIwLjAzODMzOSwgMC4xOTM5MiwgMC4zMTkzMDYsIDAuNDc2ODE3LCAwLjYzMzk5NSwgMC43OTI4NzQsIDAuOTQ4NzE0IiwgXAotICAgICAgICAgICIwLjAzODMyNSwgMC4xOTM5NDMsIDAuMzE5OTEyLCAwLjQ3NzQwNSwgMC42MzUxNTEsIDAuNzkxNTU4LCAwLjk0OTMxMSIsIFwKLSAgICAgICAgICAiMC4wMzgzMTksIDAuMTkzNjg5LCAwLjMxOTgxOCwgMC40NzY5MzUsIDAuNjM1MDExLCAwLjc5MjU2NywgMC45NTAyNTgiLCBcCi0gICAgICAgICAgIjAuMDM4Mjk3LCAwLjE5MzU3MiwgMC4zMTk0ODIsIDAuNDc3MDY5LCAwLjYzNDY5NCwgMC43OTI0NzgsIDAuOTQ5MjIxIiwgXAotICAgICAgICAgICIwLjAzODMzMiwgMC4xOTM2OTksIDAuMzE5MzAxLCAwLjQ3Njc1OCwgMC42MzQxMTIsIDAuNzkxNjg1LCAwLjk0OTgzNiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDYxMjUxLCAwLjEzOTA5MiwgMC4yMDEzMTIsIDAuMjc4OTYzLCAwLjM1NjY2MywgMC40MzQ0MTUsIDAuNTEyMDI0IiwgXAotICAgICAgICAgICIwLjA2ODU0OSwgMC4xNDY0MDUsIDAuMjA4NTc4LCAwLjI4NjI1MiwgMC4zNjM5ODksIDAuNDQxNjI4LCAwLjUxOTM5IiwgXAotICAgICAgICAgICIwLjA3NzA0NSwgMC4xNTQ5MjEsIDAuMjE3MDg3LCAwLjI5NDc1NiwgMC4zNzI0NjYsIDAuNDUwMTI4LCAwLjUyNzg5OSIsIFwKLSAgICAgICAgICAiMC4wODM1MTgsIDAuMTYxMzY3LCAwLjIyMzU2NSwgMC4zMDEyNTksIDAuMzc4ODc0LCAwLjQ1NjU5NywgMC41MzQyNzEiLCBcCi0gICAgICAgICAgIjAuMDg4OTA4LCAwLjE2NjgxOCwgMC4yMjg5NTMsIDAuMzA2Njc2LCAwLjM4NDI1NCwgMC40NjIwMDEsIDAuNTM5NjI5IiwgXAotICAgICAgICAgICIwLjA5NjExNSwgMC4xNzM5NCwgMC4yMzYwODEsIDAuMzEzNzkxLCAwLjM5MTQ2NiwgMC40NjkxNDQsIDAuNTQ2ODQ3IiwgXAotICAgICAgICAgICIwLjEwMTQ5NywgMC4xNzkzNiwgMC4yNDE0NjQsIDAuMzE5MTU3LCAwLjM5NjgzMSwgMC40NzQ1MzgsIDAuNTUyMjc3Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzOTY3LCAwLjIwMTYzOCwgMC4zMzI1ODksIDAuNDk2NzQyLCAwLjY2MDMyMiwgMC44MjM5NDQsIDAuOTg3OTM1IiwgXAotICAgICAgICAgICIwLjAzOTY3MiwgMC4yMDE4NTIsIDAuMzMzMTY4LCAwLjQ5Njc0OSwgMC42NjEzMzYsIDAuODI0MTMxLCAwLjk4NzgwOCIsIFwKLSAgICAgICAgICAiMC4wMzk3MTMsIDAuMjAxODQxLCAwLjMzMzE2LCAwLjQ5NzIxNiwgMC42NjA1NDgsIDAuODI0MDc1LCAwLjk4ODE3OCIsIFwKLSAgICAgICAgICAiMC4wMzk4MzgsIDAuMjAxODM3LCAwLjMzMjYwNiwgMC40OTY0NjksIDAuNjYxMjcsIDAuODI0NDQ3LCAwLjk4ODQyNSIsIFwKLSAgICAgICAgICAiMC4wMzk5NTMsIDAuMjAxNzk4LCAwLjMzMjk4LCAwLjQ5NzIxNywgMC42NjEyMjQsIDAuODI0NjA0LCAwLjk4ODA5NSIsIFwKLSAgICAgICAgICAiMC4wNDAwMzQsIDAuMjAxNjY5LCAwLjMzMjg3OCwgMC40OTcyMDksIDAuNjYxMjcxLCAwLjgyNTMyMiwgMC45ODk0MTEiLCBcCi0gICAgICAgICAgIjAuMDQwMTIsIDAuMjAxNDkyLCAwLjMzMjY3NCwgMC40OTY1MDEsIDAuNjYxMjY4LCAwLjgyNTM3OCwgMC45ODk0ODQiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDYwNzc0LCAwLjEzNjkyNiwgMC4xOTc1OCwgMC4yNzMzNzYsIDAuMzQ5MTQyLCAwLjQyNDk0NCwgMC41MDA3MzYiLCBcCi0gICAgICAgICAgIjAuMDY4MTg4LCAwLjE0NDI5OCwgMC4yMDQ5NiwgMC4yODA3OTUsIDAuMzU2NTQ0LCAwLjQzMjMzMiwgMC41MDgwODciLCBcCi0gICAgICAgICAgIjAuMDc2NzUyLCAwLjE1Mjg3MSwgMC4yMTM1OTEsIDAuMjg5MzcsIDAuMzY1MTcxLCAwLjQ0MDkyMSwgMC41MTY3MjIiLCBcCi0gICAgICAgICAgIjAuMDgzMzkzLCAwLjE1OTUwOCwgMC4yMjAxNywgMC4yOTU5NywgMC4zNzE3NjksIDAuNDQ3NTg2LCAwLjUyMzMyNiIsIFwKLSAgICAgICAgICAiMC4wODg3OTQsIDAuMTY0OTYxLCAwLjIyNTU4NSwgMC4zMDEzNjYsIDAuMzc3MTcxLCAwLjQ1MzAzMiwgMC41Mjg3MTciLCBcCi0gICAgICAgICAgIjAuMDk2MDg5LCAwLjE3MjI0OCwgMC4yMzI4OSwgMC4zMDg2NDEsIDAuMzg0NTAyLCAwLjQ2MDIyOCwgMC41MzYwMzciLCBcCi0gICAgICAgICAgIjAuMTAxNDk4LCAwLjE3NzczMiwgMC4yMzgzNjgsIDAuMzE0MTU0LCAwLjM4OTk3NSwgMC40NjU4MTcsIDAuNTQxNTUyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzODM1MiwgMC4xOTM1OCwgMC4zMTk1NTIsIDAuNDc3NjIsIDAuNjM0OTk3LCAwLjc5MjksIDAuOTUwNTcxIiwgXAotICAgICAgICAgICIwLjAzODM2MSwgMC4xOTM5MjYsIDAuMzE5OTcsIDAuNDc2NTUxLCAwLjYzNTIxNSwgMC43OTI4OTQsIDAuOTUwMzA0IiwgXAotICAgICAgICAgICIwLjAzODM2MywgMC4xOTM5MTgsIDAuMzE5NDA1LCAwLjQ3NjgwNSwgMC42MzQwMTYsIDAuNzkyODUsIDAuOTUwNTYyIiwgXAotICAgICAgICAgICIwLjAzODQ4OSwgMC4xOTM5MDcsIDAuMzE5OTYxLCAwLjQ3NzU2OSwgMC42MzUyNTQsIDAuNzkxMzc4LCAwLjk1MDUxOCIsIFwKLSAgICAgICAgICAiMC4wMzg1ODMsIDAuMTkzODkxLCAwLjMxOTk4LCAwLjQ3NzM5MSwgMC42MzQ1LCAwLjc5MTM3MSwgMC45NDkzMjEiLCBcCi0gICAgICAgICAgIjAuMDM4Njk4LCAwLjE5MzY4OSwgMC4zMTk4MDcsIDAuNDc3NDIxLCAwLjYzMzk0NywgMC43OTI1ODcsIDAuOTUwMjczIiwgXAotICAgICAgICAgICIwLjAzODgxMywgMC4xOTM1MjYsIDAuMzE5MzMsIDAuNDc3MzQxLCAwLjYzNDQ0OSwgMC43OTEzNzIsIDAuOTQ5NDAxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1ODA3LCAwLjAwNTg1LCAwLjAwNTg2MywgMC4wMDU4NTUsIDAuMDA1ODYsIDAuMDA1ODQ5LCAwLjAwNTg2MiIsIFwKLSAgICAgICAgICAiMC4wMDU3ODQsIDAuMDA1ODMsIDAuMDA1ODM1LCAwLjAwNTgzOCwgMC4wMDU4MzksIDAuMDA1ODQsIDAuMDA1ODQxIiwgXAotICAgICAgICAgICIwLjAwNTgwMiwgMC4wMDU4NTEsIDAuMDA1ODU3LCAwLjAwNTg2LCAwLjAwNTg2LCAwLjAwNTg2MywgMC4wMDU4NjMiLCBcCi0gICAgICAgICAgIjAuMDA1ODYxLCAwLjAwNTkwMSwgMC4wMDU5MDcsIDAuMDA1OTEsIDAuMDA1OTEyLCAwLjAwNTkxMiwgMC4wMDU5MTMiLCBcCi0gICAgICAgICAgIjAuMDA1OTM0LCAwLjAwNTk4LCAwLjAwNTk4NSwgMC4wMDU5ODksIDAuMDA1OTkxLCAwLjAwNTk5MSwgMC4wMDU5OTIiLCBcCi0gICAgICAgICAgIjAuMDA2MDU1LCAwLjAwNjA5MSwgMC4wMDYwOTcsIDAuMDA2MTAzLCAwLjAwNjEwNSwgMC4wMDYxMDYsIDAuMDA2MTA2IiwgXAotICAgICAgICAgICIwLjAwNjIxMiwgMC4wMDYyNiwgMC4wMDYyNjUsIDAuMDA2MjY2LCAwLjAwNjI2NywgMC4wMDYyNjksIDAuMDA2MjcyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0MjI2LCAwLjAwNDI5NiwgMC4wMDQzMDUsIDAuMDA0MzEsIDAuMDA0MzEyLCAwLjAwNDMxNCwgMC4wMDQzMTUiLCBcCi0gICAgICAgICAgIjAuMDA0MiwgMC4wMDQyNywgMC4wMDQyNzgsIDAuMDA0MjgzLCAwLjAwNDI4NiwgMC4wMDQyODcsIDAuMDA0Mjg4IiwgXAotICAgICAgICAgICIwLjAwNDIxMSwgMC4wMDQyODYsIDAuMDA0Mjk2LCAwLjAwNDMwMSwgMC4wMDQzMDMsIDAuMDA0MzA1LCAwLjAwNDMwNiIsIFwKLSAgICAgICAgICAiMC4wMDQyNzMsIDAuMDA0MzQ0LCAwLjAwNDM1MywgMC4wMDQzNTgsIDAuMDA0MzYsIDAuMDA0MzYyLCAwLjAwNDM2MyIsIFwKLSAgICAgICAgICAiMC4wMDQzNTcsIDAuMDA0NDI4LCAwLjAwNDQ0LCAwLjAwNDQ0MSwgMC4wMDQ0NDMsIDAuMDA0NDQ1LCAwLjAwNDQ0NiIsIFwKLSAgICAgICAgICAiMC4wMDQ0NzIsIDAuMDA0NTQxLCAwLjAwNDU1LCAwLjAwNDU1NSwgMC4wMDQ1NTgsIDAuMDA0NTU5LCAwLjAwNDU2IiwgXAotICAgICAgICAgICIwLjAwNDYxMywgMC4wMDQ2ODEsIDAuMDA0NjkxLCAwLjAwNDY5NiwgMC4wMDQ2OTgsIDAuMDA0NywgMC4wMDQ3MDEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDYwNTMsIDAuMDA2MTAxLCAwLjAwNjEwNywgMC4wMDYxMTUsIDAuMDA2MTEyLCAwLjAwNjExOCwgMC4wMDYxMTUiLCBcCi0gICAgICAgICAgIjAuMDA2MDMyLCAwLjAwNjA4LCAwLjAwNjA5MSwgMC4wMDYwODksIDAuMDA2MDkxLCAwLjAwNjA5OSwgMC4wMDYwOTIiLCBcCi0gICAgICAgICAgIjAuMDA2MDQ1LCAwLjAwNjA5OCwgMC4wMDYxMDUsIDAuMDA2MTExLCAwLjAwNjExMiwgMC4wMDYxMTQsIDAuMDA2MTEzIiwgXAotICAgICAgICAgICIwLjAwNjEsIDAuMDA2MTQ0LCAwLjAwNjE1MSwgMC4wMDYxNTUsIDAuMDA2MTU1LCAwLjAwNjE1NywgMC4wMDYxNTciLCBcCi0gICAgICAgICAgIjAuMDA2MTYyLCAwLjAwNjIwMywgMC4wMDYyMDcsIDAuMDA2MjE2LCAwLjAwNjIxOCwgMC4wMDYyMTksIDAuMDA2MjIiLCBcCi0gICAgICAgICAgIjAuMDA2MzA5LCAwLjAwNjM0OSwgMC4wMDYzNTMsIDAuMDA2MzU0LCAwLjAwNjM1OSwgMC4wMDYzNTcsIDAuMDA2MzU4IiwgXAotICAgICAgICAgICIwLjAwNjQwMSwgMC4wMDY0MzMsIDAuMDA2NDU0LCAwLjAwNjQ0OSwgMC4wMDY0NTcsIDAuMDA2NDU4LCAwLjAwNjQ1MiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDA2NCwgMC4wMDQxMzcsIDAuMDA0MTQ3LCAwLjAwNDE1MiwgMC4wMDQxNTUsIDAuMDA0MTU3LCAwLjAwNDE1OCIsIFwKLSAgICAgICAgICAiMC4wMDQwMzQsIDAuMDA0MTA3LCAwLjAwNDExNiwgMC4wMDQxMjIsIDAuMDA0MTI0LCAwLjAwNDEyNiwgMC4wMDQxMjgiLCBcCi0gICAgICAgICAgIjAuMDA0MDQ5LCAwLjAwNDEyNiwgMC4wMDQxMzcsIDAuMDA0MTQzLCAwLjAwNDE0NiwgMC4wMDQxNDgsIDAuMDA0MTQ5IiwgXAotICAgICAgICAgICIwLjAwNDEwNywgMC4wMDQxNzksIDAuMDA0MTg5LCAwLjAwNDE5NCwgMC4wMDQxOTcsIDAuMDA0MTk5LCAwLjAwNDIiLCBcCi0gICAgICAgICAgIjAuMDA0MTY4LCAwLjAwNDIzOSwgMC4wMDQyNDksIDAuMDA0MjU0LCAwLjAwNDI1NywgMC4wMDQyNTksIDAuMDA0MjYiLCBcCi0gICAgICAgICAgIjAuMDA0MzA2LCAwLjAwNDM3NCwgMC4wMDQzODMsIDAuMDA0Mzg4LCAwLjAwNDM5MSwgMC4wMDQzOTMsIDAuMDA0Mzk1IiwgXAotICAgICAgICAgICIwLjAwNDQ0NCwgMC4wMDQ1MTIsIDAuMDA0NTE5LCAwLjAwNDUyNCwgMC4wMDQ1MjcsIDAuMDA0NTI5LCAwLjAwNDUzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUzAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNTU4MSwgMC4wMDU2MjUsIDAuMDA1NjMxLCAwLjAwNTYzNCwgMC4wMDU2MzksIDAuMDA1NjM2LCAwLjAwNTYzNiIsIFwKLSAgICAgICAgICAiMC4wMDU1OTcsIDAuMDA1NjQyLCAwLjAwNTY0OCwgMC4wMDU2NDUsIDAuMDA1NjQ5LCAwLjAwNTY1NCwgMC4wMDU2NTQiLCBcCi0gICAgICAgICAgIjAuMDA1NjcsIDAuMDA1NzE4LCAwLjAwNTcyMywgMC4wMDU3MjgsIDAuMDA1NzIzLCAwLjAwNTczMiwgMC4wMDU3MjUiLCBcCi0gICAgICAgICAgIjAuMDA1NzgzLCAwLjAwNTgzMSwgMC4wMDU4MzUsIDAuMDA1ODQsIDAuMDA1ODQxLCAwLjAwNTg0MywgMC4wMDU4NDMiLCBcCi0gICAgICAgICAgIjAuMDA1OTIyLCAwLjAwNTk2OSwgMC4wMDU5NjksIDAuMDA1OTcxLCAwLjAwNTk3MywgMC4wMDU5NzMsIDAuMDA1OTcyIiwgXAotICAgICAgICAgICIwLjAwNjE4OCwgMC4wMDYyMywgMC4wMDYyMzksIDAuMDA2MjQsIDAuMDA2MjQyLCAwLjAwNjI0LCAwLjAwNjI0IiwgXAotICAgICAgICAgICIwLjAwNjM0NywgMC4wMDYzOTYsIDAuMDA2NDAxLCAwLjAwNjQwMywgMC4wMDY0MDUsIDAuMDA2NDA3LCAwLjAwNjQwNyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjQyLCAwLjAwNjQ5LCAwLjAwNjQ5OSwgMC4wMDY1MDQsIDAuMDA2NTA2LCAwLjAwNjUwOCwgMC4wMDY1MDkiLCBcCi0gICAgICAgICAgIjAuMDA2NDMxLCAwLjAwNjUwMiwgMC4wMDY1MSwgMC4wMDY1MTUsIDAuMDA2NTE3LCAwLjAwNjUxOCwgMC4wMDY1MiIsIFwKLSAgICAgICAgICAiMC4wMDY1MTIsIDAuMDA2NTg1LCAwLjAwNjU5NCwgMC4wMDY1OTksIDAuMDA2NjAxLCAwLjAwNjYwMiwgMC4wMDY2MDMiLCBcCi0gICAgICAgICAgIjAuMDA2NjI5LCAwLjAwNjcwMywgMC4wMDY3MTIsIDAuMDA2NzE2LCAwLjAwNjcxOSwgMC4wMDY3MiwgMC4wMDY3MjEiLCBcCi0gICAgICAgICAgIjAuMDA2NzUsIDAuMDA2ODE5LCAwLjAwNjgyNiwgMC4wMDY4MzIsIDAuMDA2ODM0LCAwLjAwNjgzNiwgMC4wMDY4MzciLCBcCi0gICAgICAgICAgIjAuMDA3MDEyLCAwLjAwNzA4LCAwLjAwNzA4OSwgMC4wMDcwOTUsIDAuMDA3MDk1LCAwLjAwNzA5OSwgMC4wMDcxIiwgXAotICAgICAgICAgICIwLjAwNzIxMSwgMC4wMDcyNywgMC4wMDcyOTIsIDAuMDA3MjkxLCAwLjAwNzI5NiwgMC4wMDczLCAwLjAwNzI5NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogTVhJM1gyICoKLSAqIC0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoTVhJM1gyKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuNzc4NTQyOwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2ODUyNTg7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjg0MTQ0OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDY4NTI1ODsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA5MjUsIDAuMDAwODk4LCAwLjAwMDkxLCAwLjAwMDk1MywgMC4wMDEwMTUsIDAuMDAxMTQsIDAuMDAxMjY4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyNzYzLCAwLjAwMjc0NywgMC4wMDI3NjIsIDAuMDAyODAxLCAwLjAwMjg2MSwgMC4wMDI5ODIsIDAuMDAzMTA2Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2ODQ5NzE7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjgzNzA2OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDY4NDk3MTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyODcsIDAuMDAwMjg5LCAwLjAwMDI5LCAwLjAwMDI5LCAwLjAwMDI5LCAwLjAwMDI5MSwgMC4wMDAyOTEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAzMTYsIDAuMDAwMzA1LCAwLjAwMDMwMywgMC4wMDAzMDIsIDAuMDAwMzAxLCAwLjAwMDMsIDAuMDAwMyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQykgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjIwMzU7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjIwMzQ2OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDYyMDM1OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDI1MSwgMC4wMDAyOCwgMC4wMDAzNjYsIDAuMDAwNDc0LCAwLjAwMDYwOCwgMC4wMDA4MzksIDAuMDAxMDQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDE3MTMsIDAuMDAxNzI4LCAwLjAwMTgxMiwgMC4wMDE5MjcsIDAuMDAyMDYsIDAuMDAyMjg2LCAwLjAwMjQ4MiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUzApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTQ1ODIxOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTQ1ODIxOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTQ1ODA4OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDEzOSwgMC4wMDAxNTQsIDAuMDAwMjUyLCAwLjAwMDM2NywgMC4wMDA0OTgsIDAuMDAwNzIyLCAwLjAwMDk5MSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjMwMywgMC4wMDIzMjgsIDAuMDAyNDExLCAwLjAwMjUxNywgMC4wMDI2NDYsIDAuMDAyODY1LCAwLjAwMzA2NiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUzEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTM2MzYxOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTM2MzYxOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTM2MzQ4OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDMzNCwgMC4wMDAzNDQsIDAuMDAwNDMsIDAuMDAwNTQyLCAwLjAwMDY3NCwgMC4wMDA5MDQsIDAuMDAxMSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjMwOSwgMC4wMDIzNDMsIDAuMDAyNDIsIDAuMDAyNTI4LCAwLjAwMjY2MiwgMC4wMDI4ODEsIDAuMDAzMDgiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC42ODc4NjE7Ci0gICAgZnVuY3Rpb24gOiAiKCEoKFMxIEMpICsgKCFTMSAoKFMwIEIpICsgKCFTMCBBKSkpKSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4NjEwNSwgMC4xNjQ3MjQsIDAuMjI2MjU0LCAwLjMwMzEwNSwgMC4zNzk5NjksIDAuNDU2NzQzLCAwLjUzMzU0OSIsIFwKLSAgICAgICAgICAiMC4wOTE4OCwgMC4xNzA1MDcsIDAuMjMyMDMzLCAwLjMwODg4LCAwLjM4NTcxMiwgMC40NjI0MDgsIDAuNTM5MzYxIiwgXAotICAgICAgICAgICIwLjA5ODAyNSwgMC4xNzY2NTksIDAuMjM4MTg1LCAwLjMxNTA0MywgMC4zOTE4OTcsIDAuNDY4Njc1LCAwLjU0NTM1MyIsIFwKLSAgICAgICAgICAiMC4xMDMwMzksIDAuMTgxNjMzLCAwLjI0MzE1MywgMC4zMjAwMDYsIDAuMzk2ODU5LCAwLjQ3MzY0LCAwLjU1MDQ1MyIsIFwKLSAgICAgICAgICAiMC4xMDcxMzksIDAuMTg1NzkyLCAwLjI0NzMyMiwgMC4zMjQxNTksIDAuNDAxMDI1LCAwLjQ3Nzc5NywgMC41NTQ2MDMiLCBcCi0gICAgICAgICAgIjAuMTEyNzA0LCAwLjE5MTM1OCwgMC4yNTI4OTMsIDAuMzI5NzA5LCAwLjQwNjYyNywgMC40ODMzNSwgMC41NjAxNjEiLCBcCi0gICAgICAgICAgIjAuMTE2ODg3LCAwLjE5NTUxNCwgMC4yNTcwNTQsIDAuMzMzOTI5LCAwLjQxMDcwMiwgMC40ODc1MTksIDAuNTY0MzI4Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0NDc2NCwgMC4yMDE1NjcsIDAuMzMwNjE5LCAwLjQ5MTkyNSwgMC42NTQzNzEsIDAuODE2NDEzLCAwLjk3NzYzNyIsIFwKLSAgICAgICAgICAiMC4wNDQ3MjYsIDAuMjAxNTYyLCAwLjMzMDEzNywgMC40OTE3MTMsIDAuNjUzMDE2LCAwLjgxNTUxOCwgMC45Nzc0NDYiLCBcCi0gICAgICAgICAgIjAuMDQ0NzQ2LCAwLjIwMTUxOSwgMC4zMzA2MjQsIDAuNDkxODQ2LCAwLjY1NDM2NiwgMC44MTY0MTMsIDAuOTc3MzM2IiwgXAotICAgICAgICAgICIwLjA0NDgxLCAwLjIwMTU3MiwgMC4zMzA2MjEsIDAuNDkyMzUyLCAwLjY1NDM1OCwgMC44MTY0MTIsIDAuOTc3NTQiLCBcCi0gICAgICAgICAgIjAuMDQ0NzgxLCAwLjIwMTczMywgMC4zMzA2MjUsIDAuNDkxOTU2LCAwLjY1NDM1OCwgMC44MTY0MDQsIDAuOTc3NjIiLCBcCi0gICAgICAgICAgIjAuMDQ0ODA4LCAwLjIwMTYzLCAwLjMzMDU4NywgMC40OTIzNCwgMC42NTM0MjksIDAuODE2MzYxLCAwLjk3NzU0MSIsIFwKLSAgICAgICAgICAiMC4wNDQ4ODcsIDAuMjAxNDgyLCAwLjMzMDU5NCwgMC40OTIzMDksIDAuNjU0MTYyLCAwLjgxNjIzOCwgMC45NzgzNzUiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg4MDIyLCAwLjE2NjM4NiwgMC4yMjcxMjQsIDAuMzAyOTcxLCAwLjM3ODgyLCAwLjQ1NDY1NywgMC41MzA0MjQiLCBcCi0gICAgICAgICAgIjAuMDk0MTM4LCAwLjE3MjUzNCwgMC4yMzMyNzMsIDAuMzA5MTEsIDAuMzg0OTQ2LCAwLjQ2MDc4OSwgMC41MzY1NTUiLCBcCi0gICAgICAgICAgIjAuMTAwODU3LCAwLjE3OTI4NiwgMC4yNDAwMjIsIDAuMzE1OTE2LCAwLjM5MTY4OCwgMC40Njc1MDQsIDAuNTQzMzM1IiwgXAotICAgICAgICAgICIwLjEwNjM2MywgMC4xODQ3NjcsIDAuMjQ1NDkyLCAwLjMyMTMzOSwgMC4zOTcyLCAwLjQ3Mjk4OSwgMC41NDg3OTEiLCBcCi0gICAgICAgICAgIjAuMTEwOTAyLCAwLjE4OTM1MywgMC4yNTAwOTYsIDAuMzI1OTI1LCAwLjQwMTc2MiwgMC40Nzc2MDgsIDAuNTUzMzY5IiwgXAotICAgICAgICAgICIwLjExNzE2OSwgMC4xOTU1NzYsIDAuMjU2MzA0LCAwLjMzMjE4NywgMC40MDc5NzgsIDAuNDgzODE3LCAwLjU1OTYzMyIsIFwKLSAgICAgICAgICAiMC4xMjE4ODEsIDAuMjAwMjc1LCAwLjI2MTAxMywgMC4zMzY4NjgsIDAuNDEyNjc0LCAwLjQ4ODQ4NSwgMC41NjQzNDMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQ0ODU1LCAwLjE5Njg2MywgMC4zMjIwMjMsIDAuNDc5MDcyLCAwLjYzNjYwMSwgMC43OTQyMTMsIDAuOTUxNzQ5IiwgXAotICAgICAgICAgICIwLjA0NDg0NCwgMC4xOTY5MjksIDAuMzIyLCAwLjQ3OTA1MSwgMC42MzU3MTgsIDAuNzk0MjE5LCAwLjk1MTY1OCIsIFwKLSAgICAgICAgICAiMC4wNDQ4NDEsIDAuMTk2OTMyLCAwLjMyMjAwOCwgMC40NzgyMjksIDAuNjM2NDcxLCAwLjc5MzI0MSwgMC45NTAyMzkiLCBcCi0gICAgICAgICAgIjAuMDQ0ODcxLCAwLjE5NjkwNCwgMC4zMjE5NTcsIDAuNDc4OTc3LCAwLjYzNjYwOSwgMC43OTQxMDQsIDAuOTUxNTI3IiwgXAotICAgICAgICAgICIwLjA0NDgzNCwgMC4xOTY5NSwgMC4zMjIwNjYsIDAuNDc4OTgzLCAwLjYzNTY5MywgMC43OTQyMiwgMC45NTE1MDkiLCBcCi0gICAgICAgICAgIjAuMDQ0OTksIDAuMTk2ODc1LCAwLjMyMTYzOCwgMC40NzkxOTMsIDAuNjM1NzUyLCAwLjc5NDE1NiwgMC45NTE4MTMiLCBcCi0gICAgICAgICAgIjAuMDQ0ODk5LCAwLjE5Njk1MywgMC4zMjE5NDYsIDAuNDc5MDAxLCAwLjYzNjM0NCwgMC43OTM4OTIsIDAuOTUxODU1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4NTg2OSwgMC4xNjQ0ODMsIDAuMjI2MDEsIDAuMzAyODU4LCAwLjM3OTcyNiwgMC40NTY1LCAwLjUzMzMwMiIsIFwKLSAgICAgICAgICAiMC4wOTE1NTEsIDAuMTcwMTUxLCAwLjIzMTY3NywgMC4zMDg1MjEsIDAuMzg1Mzg5LCAwLjQ2MjE2NCwgMC41Mzg5NjgiLCBcCi0gICAgICAgICAgIjAuMDk3NTg0LCAwLjE3NjIwNCwgMC4yMzc3MjgsIDAuMzE0NTc1LCAwLjM5MTM5NywgMC40NjgyNDMsIDAuNTQ1MDEyIiwgXAotICAgICAgICAgICIwLjEwMjQ5OSwgMC4xODEwODEsIDAuMjQyNjM0LCAwLjMxOTQ1MSwgMC4zOTYyODUsIDAuNDczMTgyLCAwLjU0OTg5MiIsIFwKLSAgICAgICAgICAiMC4xMDY1MDEsIDAuMTg1MTc4LCAwLjI0NjcwNywgMC4zMjM1NDcsIDAuNDAwMzczLCAwLjQ3NzE4NCwgMC41NTM5ODIiLCBcCi0gICAgICAgICAgIjAuMTExOTg3LCAwLjE5MDYyNCwgMC4yNTIxMjEsIDAuMzI4OTk4LCAwLjQwNTgyMSwgMC40ODI2MTMsIDAuNTU5NDA5IiwgXAotICAgICAgICAgICIwLjExNjA3OCwgMC4xOTQ3MDIsIDAuMjU2MjM1LCAwLjMzMzEwNCwgMC40MDk5NDUsIDAuNDg2NzAzLCAwLjU2MzUyIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0NDc1NywgMC4yMDE1NTksIDAuMzMwNjA5LCAwLjQ5MTk0NSwgMC42NTQzNjMsIDAuODE2Mzk0LCAwLjk3NzYzOSIsIFwKLSAgICAgICAgICAiMC4wNDQ3MDQsIDAuMjAxNTYxLCAwLjMzMDYwNywgMC40OTIzNDMsIDAuNjU0MzU3LCAwLjgxNjQwNywgMC45Nzc1NzQiLCBcCi0gICAgICAgICAgIjAuMDQ0NzI3LCAwLjIwMTU1NywgMC4zMzAxMSwgMC40OTE4ODUsIDAuNjUzMzQ4LCAwLjgxNTI2OCwgMC45Nzg0NTciLCBcCi0gICAgICAgICAgIjAuMDQ0ODA5LCAwLjIwMTU2OCwgMC4zMzAwODYsIDAuNDkxODcyLCAwLjY1MzY1NCwgMC44MTUwODcsIDAuOTc4NDg1IiwgXAotICAgICAgICAgICIwLjA0NDcxMiwgMC4yMDE1OTEsIDAuMzMwMTQxLCAwLjQ5MTg2OCwgMC42NTQyNSwgMC44MTU1ODYsIDAuOTc4NDIzIiwgXAotICAgICAgICAgICIwLjA0NDg2OSwgMC4yMDE1NjEsIDAuMzMwNDYxLCAwLjQ5MjI4OSwgMC42NTMyODcsIDAuODE2Mjk1LCAwLjk3ODMxMSIsIFwKLSAgICAgICAgICAiMC4wNDQ5LCAwLjIwMTQ3NiwgMC4zMzA1MSwgMC40OTIyMiwgMC42NTQxOTYsIDAuODE2MTgxLCAwLjk3NzM5Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4NzEyMiwgMC4xNjU1MDEsIDAuMjI2MjE5LCAwLjMwMjA2NSwgMC4zNzc5MTUsIDAuNDUzNzM0LCAwLjUyOTUwNCIsIFwKLSAgICAgICAgICAiMC4wOTMyNzIsIDAuMTcxNjYxLCAwLjIzMjQxNCwgMC4zMDgyNzEsIDAuMzg0MDkxLCAwLjQ1OTkyMSwgMC41MzU2MjgiLCBcCi0gICAgICAgICAgIjAuMTAwMDMxLCAwLjE3ODQ3MSwgMC4yMzkyMTYsIDAuMzE1MDM5LCAwLjM5MDg4NywgMC40NjY3MjQsIDAuNTQyNDg1IiwgXAotICAgICAgICAgICIwLjEwNTUzNSwgMC4xODM5MTMsIDAuMjQ0NjQ0LCAwLjMyMDU0MSwgMC4zOTYzMDcsIDAuNDcyMTI3LCAwLjU0NzkzNiIsIFwKLSAgICAgICAgICAiMC4xMTAwOTQsIDAuMTg4NTExLCAwLjI0OTI0MywgMC4zMjUwNzksIDAuNDAwOTI0LCAwLjQ3Njc0NSwgMC41NTI1MTYiLCBcCi0gICAgICAgICAgIjAuMTE2MzYzLCAwLjE5NDgwNSwgMC4yNTU1MTIsIDAuMzMxMzk3LCAwLjQwNzE4NywgMC40ODMwMjEsIDAuNTU4ODA1IiwgXAotICAgICAgICAgICIwLjEyMTEzNSwgMC4xOTk1MzksIDAuMjYwMjc2LCAwLjMzNjE3NiwgMC40MTE5NjIsIDAuNDg3Nzc1LCAwLjU2MzU0NiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDQ3NjQsIDAuMTk2NTU3LCAwLjMyMTYxLCAwLjQ3OTA0LCAwLjYzNDYxMiwgMC43OTQxNjcsIDAuOTUxNjc1IiwgXAotICAgICAgICAgICIwLjA0NDg0NywgMC4xOTY5ODEsIDAuMzIxOTgxLCAwLjQ3OTA5MywgMC42MzQ2MzQsIDAuNzk0MTY2LCAwLjk0OTAwMyIsIFwKLSAgICAgICAgICAiMC4wNDQ4MjksIDAuMTk2ODg3LCAwLjMyMTQ5NCwgMC40NzkwMzQsIDAuNjM2NTMzLCAwLjc5NDIwMywgMC45NTE2NjMiLCBcCi0gICAgICAgICAgIjAuMDQ0ODQzLCAwLjE5NjkyMiwgMC4zMjE5ODksIDAuNDc4MjI3LCAwLjYzNjQzNCwgMC43OTMxMjksIDAuOTUwNTA4IiwgXAotICAgICAgICAgICIwLjA0NDgyMiwgMC4xOTcwNCwgMC4zMjE5MzcsIDAuNDc4OTU2LCAwLjYzNTgxMywgMC43OTQxMjYsIDAuOTUxNDcyIiwgXAotICAgICAgICAgICIwLjA0NDgyNywgMC4xOTY4NjUsIDAuMzIxOTIzLCAwLjQ3ODIwNiwgMC42MzU3ODUsIDAuNzk0MTI2LCAwLjk1MDU1MSIsIFwKLSAgICAgICAgICAiMC4wNDQ4NzcsIDAuMTk2OTI5LCAwLjMyMTkxNywgMC40NzgyMywgMC42MzUzODcsIDAuNzk0MDg0LCAwLjk1MTQ1MSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjc1MjksIDAuMTQ2MjE4LCAwLjIwNzc0OSwgMC4yODQ2MDcsIDAuMzYxNDY3LCAwLjQzODI1MiwgMC41MTUwNzMiLCBcCi0gICAgICAgICAgIjAuMDc0NDQ3LCAwLjE1MzExMiwgMC4yMTQ2NTEsIDAuMjkxNTE5LCAwLjM2ODM3MiwgMC40NDUxNTQsIDAuNTIxOTY5IiwgXAotICAgICAgICAgICIwLjA3OTc4MSwgMC4xNTg0MDEsIDAuMjE5OTQ5LCAwLjI5NjgwNCwgMC4zNzM2MjMsIDAuNDUwNDUsIDAuNTI3MjU0IiwgXAotICAgICAgICAgICIwLjA4MzQ4MSwgMC4xNjIxMzMsIDAuMjIzNjcxLCAwLjMwMDUyOCwgMC4zNzczOTQsIDAuNDU0MTc0LCAwLjUzMDk5MSIsIFwKLSAgICAgICAgICAiMC4wODY1ODMsIDAuMTY1MjQ0LCAwLjIyNjc3OCwgMC4zMDM2MzMsIDAuMzgwNDkyLCAwLjQ1NzI4MSwgMC41MzQxMjEiLCBcCi0gICAgICAgICAgIjAuMDkwNjUzLCAwLjE2OTMxLCAwLjIzMDg0MywgMC4zMDc3MzksIDAuMzg0NTQzLCAwLjQ2MTQ1NywgMC41MzgyNjkiLCBcCi0gICAgICAgICAgIjAuMDkzNjg2LCAwLjE3MjMwNCwgMC4yMzM3OTksIDAuMzEwNzM0LCAwLjM4NzU0NCwgMC40NjQzNjUsIDAuNTQxMTk1Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0NDUyOSwgMC4yMDE1MDUsIDAuMzMwNjAxLCAwLjQ5MTc5NSwgMC42NTQzODQsIDAuODE2NDUsIDAuOTc2NTg5IiwgXAotICAgICAgICAgICIwLjA0NDU1MSwgMC4yMDE2NTQsIDAuMzMwNjE3LCAwLjQ5MTc4NSwgMC42NTQzNzcsIDAuODE2NDI2LCAwLjk3NzY4NSIsIFwKLSAgICAgICAgICAiMC4wNDQ1NDIsIDAuMjAxNjQ5LCAwLjMzMDEyMywgMC40OTE5MTcsIDAuNjUzNjU5LCAwLjgxNTcxMSwgMC45Nzc1MTkiLCBcCi0gICAgICAgICAgIjAuMDQ0NTM4LCAwLjIwMTY4NCwgMC4zMzA1NjcsIDAuNDkxOTQ1LCAwLjY1NDMzMiwgMC44MTYzOTMsIDAuOTc3NjUyIiwgXAotICAgICAgICAgICIwLjA0NDY0NSwgMC4yMDE2NTQsIDAuMzMwNTg5LCAwLjQ5MTg1MywgMC42NTQzMTMsIDAuODE2MzUzLCAwLjk3ODQ0MyIsIFwKLSAgICAgICAgICAiMC4wNDQ1NzcsIDAuMjAxNTY0LCAwLjMzMDU5MSwgMC40OTE4MjEsIDAuNjU0MjUsIDAuODE1MjQ2LCAwLjk3ODQ2IiwgXAotICAgICAgICAgICIwLjA0NDYxOCwgMC4yMDE0MjIsIDAuMzMwMTU1LCAwLjQ5MTY2NiwgMC42NTQzNzYsIDAuODE2MzU0LCAwLjk3ODM5NCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzE4MzgsIDAuMTUwMzA0LCAwLjIxMTA0OCwgMC4yODY4OSwgMC4zNjI3MjksIDAuNDM4NTc2LCAwLjUxNDM0MyIsIFwKLSAgICAgICAgICAiMC4wNzg4ODUsIDAuMTU3MzUsIDAuMjE4MDk3LCAwLjI5MzkzOSwgMC4zNjk3NzIsIDAuNDQ1NjI4LCAwLjUyMTM5MiIsIFwKLSAgICAgICAgICAiMC4wODQzMSwgMC4xNjI3ODcsIDAuMjIzNTMsIDAuMjk5MzgzLCAwLjM3NTIxOCwgMC40NTEwMSwgMC41MjY4NDYiLCBcCi0gICAgICAgICAgIjAuMDg4MTYyLCAwLjE2NjY0NSwgMC4yMjczODcsIDAuMzAzMjQxLCAwLjM3OTA3NywgMC40NTQ5MjEsIDAuNTMwNjg1IiwgXAotICAgICAgICAgICIwLjA5MTUyOSwgMC4xNzAwMDgsIDAuMjMwNzUyLCAwLjMwNjYxMSwgMC4zODI0NDMsIDAuNDU4MjczLCAwLjUzNDA2MSIsIFwKLSAgICAgICAgICAiMC4wOTU5MDIsIDAuMTc0MzU3LCAwLjIzNTEwNCwgMC4zMTA5NTMsIDAuMzg2Nzc4LCAwLjQ2MjYwMywgMC41Mzg0MTQiLCBcCi0gICAgICAgICAgIjAuMDk5MTI1LCAwLjE3NzYyNSwgMC4yMzgzNSwgMC4zMTQyMzEsIDAuMzkwMDM5LCAwLjQ2NTg5NSwgMC41NDE2OTQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQ0ODMyLCAwLjE5Njk2MywgMC4zMjIwMzcsIDAuNDc5MDg5LCAwLjYzNTc1OSwgMC43OTQyNDksIDAuOTUxNzE0IiwgXAotICAgICAgICAgICIwLjA0NDg2NSwgMC4xOTY5NTcsIDAuMzIyMDQ0LCAwLjQ3OTA3NCwgMC42MzU4MDMsIDAuNzk0MjA2LCAwLjk1MTY4MyIsIFwKLSAgICAgICAgICAiMC4wNDQ3ODYsIDAuMTk2ODgyLCAwLjMyMjAzMywgMC40NzkwNjUsIDAuNjM2NTE2LCAwLjc5NDAwNywgMC45NTE3IiwgXAotICAgICAgICAgICIwLjA0NDgzNiwgMC4xOTcxMTgsIDAuMzIxOTc4LCAwLjQ3OTA5MiwgMC42MzU5MzMsIDAuNzk0MTk4LCAwLjk1MTUxMyIsIFwKLSAgICAgICAgICAiMC4wNDQ4MywgMC4xOTY5NzEsIDAuMzIyMDg2LCAwLjQ3OTE2NywgMC42MzYzNjksIDAuNzk0MTkzLCAwLjk1MTcyMSIsIFwKLSAgICAgICAgICAiMC4wNDQ4NDcsIDAuMTk3MTE0LCAwLjMyMTk5OCwgMC40Nzg5OTUsIDAuNjM2MzQ1LCAwLjc5Mzk1NiwgMC45NTE1NTgiLCBcCi0gICAgICAgICAgIjAuMDQ0OTA1LCAwLjE5Njg1NSwgMC4zMjE5MzQsIDAuNDc5MTI4LCAwLjYzNjU4MywgMC43OTM5MjEsIDAuOTUxNDk3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlMwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTE0MDUsIDAuMTY5OTksIDAuMjMxNTQxLCAwLjMwODM2NSwgMC4zODUyMzIsIDAuNDYyMDA4LCAwLjUzODgwOCIsIFwKLSAgICAgICAgICAiMC4wOTg0OTMsIDAuMTc3MDU3LCAwLjIzODU3NSwgMC4zMTU0MjQsIDAuMzkyMjg0LCAwLjQ2OTA2MywgMC41NDU4NzUiLCBcCi0gICAgICAgICAgIjAuMTA0MjY3LCAwLjE4Mjg4MiwgMC4yNDQ0MDEsIDAuMzIxMjczLCAwLjM5ODEwMywgMC40NzQ3NjYsIDAuNTUxNzA2IiwgXAotICAgICAgICAgICIwLjEwODQwMiwgMC4xODY5OTgsIDAuMjQ4NTIxLCAwLjMyNTM3LCAwLjQwMjE4OSwgMC40Nzg5MDgsIDAuNTU1ODEyIiwgXAotICAgICAgICAgICIwLjExMTgxOCwgMC4xOTA0MzgsIDAuMjUxOTYyLCAwLjMyODgwMywgMC40MDU2NywgMC40ODI0NDYsIDAuNTU5MjUiLCBcCi0gICAgICAgICAgIjAuMTE2NTA5LCAwLjE5NTEzMywgMC4yNTY2MjQsIDAuMzMzNDgsIDAuNDEwMzAzLCAwLjQ4NzEwNywgMC41NjM5MTQiLCBcCi0gICAgICAgICAgIjAuMTE5OTc4LCAwLjE5ODU5MywgMC4yNjAwOTUsIDAuMzM2OTIzLCAwLjQxMzc0MiwgMC40OTA1OSwgMC41NjczOTUiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQ0NzYzLCAwLjIwMTU1NCwgMC4zMzAwODksIDAuNDkxODk4LCAwLjY1NDM3OCwgMC44MTY0MDYsIDAuOTc3NjQ5IiwgXAotICAgICAgICAgICIwLjA0NDc0MiwgMC4yMDE1NDksIDAuMzMwNjEzLCAwLjQ5MjM0OSwgMC42NTQzNiwgMC44MTY0MTIsIDAuOTc3NjYzIiwgXAotICAgICAgICAgICIwLjA0NDcxLCAwLjIwMTU1MSwgMC4zMzA2MTYsIDAuNDkxNzYsIDAuNjUyOTI5LCAwLjgxNDYzNSwgMC45Nzg1MTMiLCBcCi0gICAgICAgICAgIjAuMDQ0NzMzLCAwLjIwMTU1NywgMC4zMzAxMjYsIDAuNDkxOTEzLCAwLjY1NDI4OCwgMC44MTU0NjcsIDAuOTc3NTQ1IiwgXAotICAgICAgICAgICIwLjA0NDcwNCwgMC4yMDE1NjMsIDAuMzMwNTkyLCAwLjQ5MjI4OSwgMC42NTQyNjYsIDAuODE2MzA0LCAwLjk3NzUyNiIsIFwKLSAgICAgICAgICAiMC4wNDQ3NjEsIDAuMjAxNTgzLCAwLjMzMDE5MywgMC40OTE2NTEsIDAuNjU0MTEyLCAwLjgxNjE1NSwgMC45NzgyMzIiLCBcCi0gICAgICAgICAgIjAuMDQ0NywgMC4yMDE0MjcsIDAuMzI5OTY3LCAwLjQ5MTY2OCwgMC42NTM1MTYsIDAuODE1OTksIDAuOTc4MTUiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk0NjgyLCAwLjE3MzExMywgMC4yMzM4MzUsIDAuMzA5NjcxLCAwLjM4NTQ5NywgMC40NjEzNCwgMC41MzcxMTQiLCBcCi0gICAgICAgICAgIjAuMTAxNzk4LCAwLjE4MDIyNCwgMC4yNDA5MzgsIDAuMzE2ODQxLCAwLjM5MjYxMywgMC40Njg0NTUsIDAuNTQ0MjMiLCBcCi0gICAgICAgICAgIjAuMTA3NDEzLCAwLjE4NTgzOCwgMC4yNDY1NjMsIDAuMzIyNDI3LCAwLjM5ODIyNSwgMC40NzQwNDYsIDAuNTQ5ODQxIiwgXAotICAgICAgICAgICIwLjExMTIwNywgMC4xODk2NSwgMC4yNTAzNzUsIDAuMzI2MjMzLCAwLjQwMjAzOSwgMC40Nzc4NTYsIDAuNTUzNjUxIiwgXAotICAgICAgICAgICIwLjExNDQwNiwgMC4xOTI4NzUsIDAuMjUzNjAxLCAwLjMyOTQ0NSwgMC40MDUyODUsIDAuNDgxMTIzLCAwLjU1Njg4NyIsIFwKLSAgICAgICAgICAiMC4xMTg1OTksIDAuMTk3MDA5LCAwLjI1NzcyOSwgMC4zMzM1NywgMC40MDkzODUsIDAuNDg1MTgzLCAwLjU2MDk5MiIsIFwKLSAgICAgICAgICAiMC4xMjE3NTYsIDAuMjAwMTc3LCAwLjI2MDg5NCwgMC4zMzY3MzgsIDAuNDEyNTQ0LCAwLjQ4ODM1OSwgMC41NjQxNzEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQ0NzU5LCAwLjE5NjY5LCAwLjMyMjAzMSwgMC40NzkwNjIsIDAuNjM1NzQ0LCAwLjc5NDE3NCwgMC45NTE2NzMiLCBcCi0gICAgICAgICAgIjAuMDQ0NzYsIDAuMTk2ODk0LCAwLjMyMTk4NCwgMC40NzgyNDEsIDAuNjM1NzQ2LCAwLjc5NDE3MiwgMC45NTE2NzIiLCBcCi0gICAgICAgICAgIjAuMDQ0ODY0LCAwLjE5Njg4NCwgMC4zMjE5OTcsIDAuNDc4MzMxLCAwLjYzNjQ2NSwgMC43OTMxNDksIDAuOTUxNTA0IiwgXAotICAgICAgICAgICIwLjA0NDgxNiwgMC4xOTY4ODUsIDAuMzIxOTkzLCAwLjQ3ODU1MiwgMC42MzY0NzYsIDAuNzkzMjUxLCAwLjk1MTQ5MiIsIFwKLSAgICAgICAgICAiMC4wNDQ4MjUsIDAuMTk2OTU0LCAwLjMyMTY2MywgMC40NzkwNTUsIDAuNjM1NzU4LCAwLjc5NDE5OCwgMC45NTE2NTgiLCBcCi0gICAgICAgICAgIjAuMDQ0OTEyLCAwLjE5Njg4LCAwLjMyMTkwNiwgMC40Nzg5NjUsIDAuNjM2NDM1LCAwLjc5Mzk0MSwgMC45NTA2MDciLCBcCi0gICAgICAgICAgIjAuMDQ0ODU4LCAwLjE5NjczMywgMC4zMjE1NDcsIDAuNDc4MzA0LCAwLjYzNTY4MywgMC43OTMxODgsIDAuOTUwMjM1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlMwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODEyMzYsIDAuMTU5ODU2LCAwLjIyMTM4NSwgMC4yOTgyMzQsIDAuMzc1MTAxLCAwLjQ1MTg3NSwgMC41Mjg2NzgiLCBcCi0gICAgICAgICAgIjAuMDg4NDg0LCAwLjE2NzEyMSwgMC4yMjg2MzQsIDAuMzA1NDk0LCAwLjM4MjM3MiwgMC40NTkxNzcsIDAuNTM1OTM2IiwgXAotICAgICAgICAgICIwLjA5NjczNSwgMC4xNzUzNiwgMC4yMzY4ODksIDAuMzEzNzM3LCAwLjM5MDYwNywgMC40NjczODEsIDAuNTQ0MTgzIiwgXAotICAgICAgICAgICIwLjEwMzAxMywgMC4xODE2MDksIDAuMjQzMTYyLCAwLjMxOTk4LCAwLjM5NjgxNiwgMC40NzM3MDMsIDAuNTUwNDM3IiwgXAotICAgICAgICAgICIwLjEwODE4NiwgMC4xODY3OTgsIDAuMjQ4MjQyLCAwLjMyNTA4OSwgMC40MDIwNDEsIDAuNDc4ODEyLCAwLjU1NTYxNSIsIFwKLSAgICAgICAgICAiMC4xMTUwODgsIDAuMTkzNzU0LCAwLjI1NTI4NywgMC4zMzIxMiwgMC40MDkwMDUsIDAuNDg1NzYxLCAwLjU2MjYwOSIsIFwKLSAgICAgICAgICAiMC4xMjAzMjYsIDAuMTk4OTI0LCAwLjI2MDQ1NiwgMC4zMzczMDksIDAuNDE0MTc3LCAwLjQ5MDk5OSwgMC41Njc3NjUiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQ0NzY2LCAwLjIwMTU2OCwgMC4zMzA2MTcsIDAuNDkxOTUyLCAwLjY1NDM3MSwgMC44MTY0MDcsIDAuOTc3NjQxIiwgXAotICAgICAgICAgICIwLjA0NDc1NSwgMC4yMDE1NjYsIDAuMzMwNTEyLCAwLjQ5MTkyMiwgMC42NTQzNzIsIDAuODE2NDE2LCAwLjk3NzUzMyIsIFwKLSAgICAgICAgICAiMC4wNDQ3NzcsIDAuMjAxNTcsIDAuMzMwNjE3LCAwLjQ5MTk0OSwgMC42NTQzNjksIDAuODE2Mzk0LCAwLjk3NzY1IiwgXAotICAgICAgICAgICIwLjA0NDgyOCwgMC4yMDE1NzksIDAuMzMwMDk4LCAwLjQ5MTg3NCwgMC42NTM2MDksIDAuODE2NDYxLCAwLjk3NzY5MSIsIFwKLSAgICAgICAgICAiMC4wNDQ4MjgsIDAuMjAxNzY0LCAwLjMzMDA5MywgMC40OTE4ODUsIDAuNjU0MzU3LCAwLjgxNjQsIDAuOTc4NDMiLCBcCi0gICAgICAgICAgIjAuMDQ0ODU5LCAwLjIwMTc2MywgMC4zMzA1ODgsIDAuNDkyMzA2LCAwLjY1MzQwNSwgMC44MTYzMjksIDAuOTc3NTQ3IiwgXAotICAgICAgICAgICIwLjA0NDk1OCwgMC4yMDE2NDQsIDAuMzMwNTE0LCAwLjQ5MjI1MSwgMC42NTM1MDYsIDAuODE1MjUsIDAuOTc3NjciKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDgzMTA5LCAwLjE2MTUzNiwgMC4yMjIyNzksIDAuMjk4MTE2LCAwLjM3Mzk2MiwgMC40NDk3ODgsIDAuNTI1NTU2IiwgXAotICAgICAgICAgICIwLjA5MDQyNCwgMC4xNjg4MjksIDAuMjI5NTY1LCAwLjMwNTQyNywgMC4zODEyMzIsIDAuNDU3MDU3LCAwLjUzMjkyOCIsIFwKLSAgICAgICAgICAiMC4wOTg2NjYsIDAuMTc3MDQyLCAwLjIzNzc3OSwgMC4zMTM2MTcsIDAuMzg5NDU1LCAwLjQ2NTI5MywgMC41NDEwNTkiLCBcCi0gICAgICAgICAgIjAuMTA0ODU2LCAwLjE4MzI0MywgMC4yNDM5NzcsIDAuMzE5ODI1LCAwLjM5NTY0NiwgMC40NzE0NTcsIDAuNTQ3MjU1IiwgXAotICAgICAgICAgICIwLjEwOTg5NywgMC4xODgzMywgMC4yNDkwNjEsIDAuMzI0OTA1LCAwLjQwMDczOCwgMC40NzY1NTUsIDAuNTUyMzcyIiwgXAotICAgICAgICAgICIwLjExNjc4MiwgMC4xOTUyNDIsIDAuMjU1OTQzLCAwLjMzMTgyOSwgMC40MDc2MzMsIDAuNDgzNDY4LCAwLjU1OTI0NyIsIFwKLSAgICAgICAgICAiMC4xMjE5MzUsIDAuMjAwMzQsIDAuMjYxMDc4LCAwLjMzNjk4LCAwLjQxMjc4NCwgMC40ODg1ODksIDAuNTY0NDI3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0NDc2MiwgMC4xOTY1MjEsIDAuMzIxOTg5LCAwLjQ3OTAzOSwgMC42MzQ2MDMsIDAuNzk0MjAxLCAwLjk1MTY2NyIsIFwKLSAgICAgICAgICAiMC4wNDQ4NDIsIDAuMTk2OTIxLCAwLjMyMTk3NCwgMC40NzkxMDUsIDAuNjM2NDE4LCAwLjc5MzMwMywgMC45NDk5NjYiLCBcCi0gICAgICAgICAgIjAuMDQ0ODM1LCAwLjE5Njg5NSwgMC4zMjE5NzMsIDAuNDc5MDIxLCAwLjYzNTcxNiwgMC43OTQxODIsIDAuOTUxNjI2IiwgXAotICAgICAgICAgICIwLjA0NDgyNywgMC4xOTY4ODksIDAuMzIxOTg1LCAwLjQ3ODQ5NywgMC42MzY0NSwgMC43OTMxNzMsIDAuOTUxNTI5IiwgXAotICAgICAgICAgICIwLjA0NDg3NSwgMC4xOTcwMzgsIDAuMzIxOTM3LCAwLjQ3OTA2NiwgMC42MzUzNCwgMC43OTQxMTMsIDAuOTUxNzc1IiwgXAotICAgICAgICAgICIwLjA0NDkxNiwgMC4xOTY5MjQsIDAuMzIxNTk5LCAwLjQ3OTE4NSwgMC42MzU3MTUsIDAuNzk0MTQ0LCAwLjk1MTciLCBcCi0gICAgICAgICAgIjAuMDQ0OTQ2LCAwLjE5NjkwMiwgMC4zMjE2NjMsIDAuNDc4MTk3LCAwLjYzNTYwNCwgMC43OTI4NjgsIDAuOTQ5OTUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUzEiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1MzQ4NywgMC4xMzIxMTIsIDAuMTkzNjQyLCAwLjI3MDU2NywgMC4zNDczOTUsIDAuNDI0MjA4LCAwLjUwMDk5NSIsIFwKLSAgICAgICAgICAiMC4wNjA4OSwgMC4xMzk1MSwgMC4yMDEwNTQsIDAuMjc3OTI4LCAwLjM1NDc3NSwgMC40MzE1NTgsIDAuNTA4Mzc3IiwgXAotICAgICAgICAgICIwLjA3MDMzNSwgMC4xNDg5OTcsIDAuMjEwNTM2LCAwLjI4NzQwOCwgMC4zNjQyOTIsIDAuNDQxMTE2LCAwLjUxNzg2NCIsIFwKLSAgICAgICAgICAiMC4wNzg0NzksIDAuMTU3MjEsIDAuMjE4NzQ1LCAwLjI5NTU5MiwgMC4zNzI0NzEsIDAuNDQ5MjQzLCAwLjUyNjE3OSIsIFwKLSAgICAgICAgICAiMC4wODUyNTgsIDAuMTY0MjY4LCAwLjIyNTc5MiwgMC4zMDI2MzksIDAuMzc5NDY4LCAwLjQ1NjM0OCwgMC41MzMxMzMiLCBcCi0gICAgICAgICAgIjAuMDk0NDA0LCAwLjE3MzY4OSwgMC4yMzUxNTQsIDAuMzEyMDE5LCAwLjM4ODc3NywgMC40NjU2ODYsIDAuNTQyNTA0IiwgXAotICAgICAgICAgICIwLjEwMTEyLCAwLjE4MDc0MywgMC4yNDIyMTksIDAuMzE5MDM3LCAwLjM5NTg5MSwgMC40NzI3MSwgMC41NDk1MzEiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQ0NDgyLCAwLjIwMTYzOSwgMC4zMzA1NzgsIDAuNDkxNTUxLCAwLjY1NDQxMiwgMC44MTY0NTMsIDAuOTc3NDc5IiwgXAotICAgICAgICAgICIwLjA0NDQ5NSwgMC4yMDE2NDIsIDAuMzMwNTkyLCAwLjQ5MTc4MiwgMC42NTQyOTQsIDAuODE2NDI4LCAwLjk3NzY5NCIsIFwKLSAgICAgICAgICAiMC4wNDQ5MTIsIDAuMjAxNjc5LCAwLjMzMDUzMSwgMC40OTE5NTQsIDAuNjU0MzcyLCAwLjgxNjQzMSwgMC45Nzc1NzMiLCBcCi0gICAgICAgICAgIjAuMDQ1OTMyLCAwLjIwMTg3NiwgMC4zMzA2NjQsIDAuNDkxOCwgMC42NTQzMTUsIDAuODE2MzYsIDAuOTc3MTY3IiwgXAotICAgICAgICAgICIwLjA0NzMwMiwgMC4yMDIwNzcsIDAuMzMwODA5LCAwLjQ5MjM4NywgMC42NTM3OTMsIDAuODE2Mzc0LCAwLjk3ODQzOCIsIFwKLSAgICAgICAgICAiMC4wNDkyNjgsIDAuMjAyNywgMC4zMzA5MjcsIDAuNDkxOTM1LCAwLjY1Mzc1MywgMC44MTYzOSwgMC45Nzg0NDEiLCBcCi0gICAgICAgICAgIjAuMDUwODA2LCAwLjIwMzEzNiwgMC4zMzExNTMsIDAuNDkyMTE2LCAwLjY1NDUyOSwgMC44MTY1MDQsIDAuOTc4NTA4Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1NzIwOSwgMC4xMzU2MjcsIDAuMTk2MzY1LCAwLjI3MjIxNiwgMC4zNDgwNTksIDAuNDIzOTA4LCAwLjQ5OTY0NSIsIFwKLSAgICAgICAgICAiMC4wNjQ1MTcsIDAuMTQyOTIzLCAwLjIwMzY2NSwgMC4yNzk1MTksIDAuMzU1MzU4LCAwLjQzMTE3LCAwLjUwNjk4NCIsIFwKLSAgICAgICAgICAiMC4wNzM5MTEsIDAuMTUyMzMsIDAuMjEzMDY0LCAwLjI4ODkxLCAwLjM2NDczOSwgMC40NDA2MTEsIDAuNTE2Mzc0IiwgXAotICAgICAgICAgICIwLjA4MjA4NywgMC4xNjA2MjMsIDAuMjIxMzQ1LCAwLjI5NzE5OCwgMC4zNzMwMywgMC40NDg4NzcsIDAuNTI0NjM5IiwgXAotICAgICAgICAgICIwLjA4ODkwMSwgMC4xNjc2MDcsIDAuMjI4MzMxLCAwLjMwNDE4LCAwLjM3OTk5MywgMC40NTU4MzEsIDAuNTMxNjE5IiwgXAotICAgICAgICAgICIwLjA5ODExLCAwLjE3NzA5OCwgMC4yMzc3NzIsIDAuMzEzNTg3LCAwLjM4OTQ5NCwgMC40NjUyODksIDAuNTQxMDY1IiwgXAotICAgICAgICAgICIwLjEwNDkwNiwgMC4xODQwODEsIDAuMjQ0ODc3LCAwLjMyMDY5NiwgMC4zOTY0OTgsIDAuNDcyMzE5LCAwLjU0ODEzMiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDQ3MDYsIDAuMTk2OTI2LCAwLjMyMTk4MSwgMC40Nzg1MzQsIDAuNjM1NTMxLCAwLjc5MjU3OSwgMC45NTE2MTUiLCBcCi0gICAgICAgICAgIjAuMDQ0NzM5LCAwLjE5Njg5NywgMC4zMjE5ODYsIDAuNDc5MDc4LCAwLjYzNTU2MiwgMC43OTQxMTgsIDAuOTUxNzczIiwgXAotICAgICAgICAgICIwLjA0NDk4NywgMC4xOTY4ODksIDAuMzIyMDA3LCAwLjQ3OTA0NSwgMC42MzYzODQsIDAuNzkyODI1LCAwLjk1MTY5NSIsIFwKLSAgICAgICAgICAiMC4wNDU5MjUsIDAuMTk3MDU2LCAwLjMyMTk2OCwgMC40NzkwMTMsIDAuNjM1NzM2LCAwLjc5NDE5NywgMC45NTE0OTUiLCBcCi0gICAgICAgICAgIjAuMDQ3MDEsIDAuMTk3NDQzLCAwLjMyMTY1MSwgMC40NzkxODksIDAuNjM1NzE4LCAwLjc5MjkwMiwgMC45NTE1MzQiLCBcCi0gICAgICAgICAgIjAuMDQ4NzcxLCAwLjE5ODA3MywgMC4zMjI1NTksIDAuNDc5MjIzLCAwLjYzNjY0NywgMC43OTQxNjQsIDAuOTUwMjEyIiwgXAotICAgICAgICAgICIwLjA1MDI2NiwgMC4xOTg1MTcsIDAuMzIyODU0LCAwLjQ3OTM4NywgMC42MzY2NjgsIDAuNzk0MjQ3LCAwLjk1MTg4NiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTMSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY1MjgxLCAwLjE0MzkxMywgMC4yMDU0NzIsIDAuMjgyMjk2LCAwLjM1OTEzMSwgMC40MzYwMjcsIDAuNTEyNzQ5IiwgXAotICAgICAgICAgICIwLjA3MjUwOSwgMC4xNTExMzUsIDAuMjEyNjcxLCAwLjI4OTUyMiwgMC4zNjYzOTcsIDAuNDQzMTcyLCAwLjUxOTk3MyIsIFwKLSAgICAgICAgICAiMC4wNzg1MjYsIDAuMTU3MTEsIDAuMjE4NjQyLCAwLjI5NTQ5NiwgMC4zNzIzNTQsIDAuNDQ5MTMzLCAwLjUyNTk3NyIsIFwKLSAgICAgICAgICAiMC4wODI0ODUsIDAuMTYxMjA1LCAwLjIyMjcyOSwgMC4yOTk2MDMsIDAuMzc2NDE5LCAwLjQ1MzI5MSwgMC41MzAwNzIiLCBcCi0gICAgICAgICAgIjAuMDg1ODUzLCAwLjE2NDYyOCwgMC4yMjYxODYsIDAuMzAzMDUzLCAwLjM3OTgzMSwgMC40NTY2NjYsIDAuNTMzNTU5IiwgXAotICAgICAgICAgICIwLjA5MDE4NywgMC4xNjg5MzgsIDAuMjMwNTA5LCAwLjMwNzM3MSwgMC4zODQyLCAwLjQ2MTAzNSwgMC41Mzc4NTQiLCBcCi0gICAgICAgICAgIjAuMDkzNDE4LCAwLjE3MjE4NiwgMC4yMzM4LCAwLjMxMDY4MiwgMC4zODc1MDksIDAuNDY0MzQzLCAwLjU0MTE2MSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDQ1OTEsIDAuMjAxNTMyLCAwLjMzMDA3MiwgMC40OTE4ODUsIDAuNjUzNjc4LCAwLjgxNTI1NiwgMC45Nzc1MDMiLCBcCi0gICAgICAgICAgIjAuMDQ0NjI4LCAwLjIwMTUzNCwgMC4zMzA2MDQsIDAuNDkxOTMsIDAuNjU0MzY5LCAwLjgxNjM4MiwgMC45Nzc2NDQiLCBcCi0gICAgICAgICAgIjAuMDQ0NjE2LCAwLjIwMTUyMywgMC4zMzA2MDQsIDAuNDkyMzQ3LCAwLjY1NDM0NSwgMC44MTY0MTMsIDAuOTc4NTE0IiwgXAotICAgICAgICAgICIwLjA0NDYzOSwgMC4yMDE3ODEsIDAuMzMwNTk2LCAwLjQ5MTcyOCwgMC42NTM2MTcsIDAuODE2NDA5LCAwLjk3ODQ3IiwgXAotICAgICAgICAgICIwLjA0NDY3NSwgMC4yMDE3MTgsIDAuMzMwMDgxLCAwLjQ5MTY2NywgMC42NTQxNzQsIDAuODE1NTc4LCAwLjk3ODQxMiIsIFwKLSAgICAgICAgICAiMC4wNDQ1NzMsIDAuMjAxNjQ0LCAwLjMzMDE3NCwgMC40OTE5MzQsIDAuNjU0MTg5LCAwLjgxNTU2OCwgMC45NzgyNjEiLCBcCi0gICAgICAgICAgIjAuMDQ0NTYyLCAwLjIwMTYyNiwgMC4zMzAyMzEsIDAuNDkyMDU0LCAwLjY1MzU3MywgMC44MTU1NTEsIDAuOTc3NTA3Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2ODY3NCwgMC4xNDcxMjQsIDAuMjA3ODcxLCAwLjI4MzcxNSwgMC4zNTk1NTQsIDAuNDM1NDAyLCAwLjUxMTE2OSIsIFwKLSAgICAgICAgICAiMC4wNzYwMTgsIDAuMTU0NDY4LCAwLjIxNTIyMywgMC4yOTEwNTksIDAuMzY2ODk0LCAwLjQ0Mjc1LCAwLjUxODUxNCIsIFwKLSAgICAgICAgICAiMC4wODIwMzUsIDAuMTYwNTA2LCAwLjIyMTI0MywgMC4yOTcwOTYsIDAuMzcyOTUzLCAwLjQ0ODc0OCwgMC41MjQ1NTkiLCBcCi0gICAgICAgICAgIjAuMDg2MjM3LCAwLjE2NDg1OSwgMC4yMjU2MDYsIDAuMzAxNDUzLCAwLjM3NzI4NCwgMC40NTMxNDgsIDAuNTI4OTEiLCBcCi0gICAgICAgICAgIjAuMDg5NzIsIDAuMTY4Mzk4LCAwLjIyOTE1NywgMC4zMDUwMDksIDAuMzgwODI0LCAwLjQ1NjY0NiwgMC41MzI0MzYiLCBcCi0gICAgICAgICAgIjAuMDk0NDYyLCAwLjE3MzEzNCwgMC4yMzM5MjYsIDAuMzA5Nzg1LCAwLjM4NTYyMywgMC40NjE0MzMsIDAuNTM3MjIiLCBcCi0gICAgICAgICAgIjAuMDk4MjYzLCAwLjE3NzE3NywgMC4yMzc2NTEsIDAuMzEzNTI3LCAwLjM4OTI2NSwgMC40NjUxODIsIDAuNTQwODY4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0NDg5LCAwLjE5Njk1NywgMC4zMjIwMzIsIDAuNDc5MDc5LCAwLjYzNTc0MiwgMC43OTQyNzMsIDAuOTUxNzAxIiwgXAotICAgICAgICAgICIwLjA0NDg3NiwgMC4xOTY5NDcsIDAuMzIyMDY3LCAwLjQ3OTA2MiwgMC42MzU3NzIsIDAuNzk0MiwgMC45NTE2NjYiLCBcCi0gICAgICAgICAgIjAuMDQ0ODI2LCAwLjE5NjkyOCwgMC4zMjE5NzUsIDAuNDc4OTksIDAuNjM2NTc5LCAwLjc5Mzk2LCAwLjk1MTUzNCIsIFwKLSAgICAgICAgICAiMC4wNDQ4NzIsIDAuMTk3MDYxLCAwLjMyMTU5MSwgMC40NzkwMSwgMC42MzU4MjMsIDAuNzkzOTg1LCAwLjk1MTUzIiwgXAotICAgICAgICAgICIwLjA0NDgwMSwgMC4xOTcxMzMsIDAuMzIxNjkxLCAwLjQ3ODYzLCAwLjYzNTc1MSwgMC43OTMxOTksIDAuOTUxNDU1IiwgXAotICAgICAgICAgICIwLjA0NDc2NiwgMC4xOTcwMDMsIDAuMzIxODA4LCAwLjQ3ODcyNywgMC42MzU2NTIsIDAuNzkzNjk1LCAwLjk1MTQxNyIsIFwKLSAgICAgICAgICAiMC4wNDQ4MTYsIDAuMTk3NDIzLCAwLjMyMTc0OCwgMC40Nzg2NDUsIDAuNjM1ODE4LCAwLjc5MzAyNywgMC45NTA4NCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjU5LCAwLjAwNjYwOCwgMC4wMDY2MTEsIDAuMDA2NjEzLCAwLjAwNjYxNCwgMC4wMDY2MTUsIDAuMDA2NjE1IiwgXAotICAgICAgICAgICIwLjAwNjU2OSwgMC4wMDY1OSwgMC4wMDY1OTQsIDAuMDA2NTk2LCAwLjAwNjU5NywgMC4wMDY1OTgsIDAuMDA2NTk5IiwgXAotICAgICAgICAgICIwLjAwNjU4MiwgMC4wMDY2MDEsIDAuMDA2NjA1LCAwLjAwNjYwOSwgMC4wMDY2MDksIDAuMDA2NjA5LCAwLjAwNjYxMSIsIFwKLSAgICAgICAgICAiMC4wMDY2MjMsIDAuMDA2NjM4LCAwLjAwNjY0MSwgMC4wMDY2NDQsIDAuMDA2NjQ0LCAwLjAwNjY0NSwgMC4wMDY2NDUiLCBcCi0gICAgICAgICAgIjAuMDA2NjgyLCAwLjAwNjY5NCwgMC4wMDY2OTcsIDAuMDA2Njk5LCAwLjAwNjcsIDAuMDA2Njk5LCAwLjAwNjcwMSIsIFwKLSAgICAgICAgICAiMC4wMDY4MDMsIDAuMDA2ODE2LCAwLjAwNjgxNywgMC4wMDY4MTgsIDAuMDA2ODE3LCAwLjAwNjgxOSwgMC4wMDY4MTgiLCBcCi0gICAgICAgICAgIjAuMDA2OTMxLCAwLjAwNjk0LCAwLjAwNjk0LCAwLjAwNjk0LCAwLjAwNjk0LCAwLjAwNjk0MywgMC4wMDY5NCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNTEyNiwgMC4wMDUxODYsIDAuMDA1MTk3LCAwLjAwNTIwMywgMC4wMDUyMDYsIDAuMDA1MjA4LCAwLjAwNTIxIiwgXAotICAgICAgICAgICIwLjAwNTA5NywgMC4wMDUxNTksIDAuMDA1MTcsIDAuMDA1MTc2LCAwLjAwNTE3OSwgMC4wMDUxODEsIDAuMDA1MTgyIiwgXAotICAgICAgICAgICIwLjAwNTEwNywgMC4wMDUxNjcsIDAuMDA1MTc4LCAwLjAwNTE4NCwgMC4wMDUxODgsIDAuMDA1MTksIDAuMDA1MTkxIiwgXAotICAgICAgICAgICIwLjAwNTE1NiwgMC4wMDUyMTEsIDAuMDA1MjIxLCAwLjAwNTIyNywgMC4wMDUyMywgMC4wMDUyMzIsIDAuMDA1MjMzIiwgXAotICAgICAgICAgICIwLjAwNTIxMywgMC4wMDUyNywgMC4wMDUyODEsIDAuMDA1Mjg3LCAwLjAwNTI5LCAwLjAwNTI5MiwgMC4wMDUyOTMiLCBcCi0gICAgICAgICAgIjAuMDA1MzM2LCAwLjAwNTM5MiwgMC4wMDU0MDMsIDAuMDA1NDEsIDAuMDA1NDEyLCAwLjAwNTQxNCwgMC4wMDU0MTUiLCBcCi0gICAgICAgICAgIjAuMDA1NDY2LCAwLjAwNTUyNCwgMC4wMDU1MzMsIDAuMDA1NTM4LCAwLjAwNTUzOSwgMC4wMDU1NDEsIDAuMDA1NTQyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2NzI4LCAwLjAwNjc0NCwgMC4wMDY3NDcsIDAuMDA2NzQ4LCAwLjAwNjc0OSwgMC4wMDY3NDksIDAuMDA2NzQ5IiwgXAotICAgICAgICAgICIwLjAwNjcxLCAwLjAwNjcyNywgMC4wMDY3MywgMC4wMDY3MzMsIDAuMDA2NzMxLCAwLjAwNjczMiwgMC4wMDY3MzIiLCBcCi0gICAgICAgICAgIjAuMDA2NzE5LCAwLjAwNjczOCwgMC4wMDY3NDIsIDAuMDA2NzQ0LCAwLjAwNjc0NCwgMC4wMDY3NDUsIDAuMDA2NzQ1IiwgXAotICAgICAgICAgICIwLjAwNjc2MywgMC4wMDY3NzcsIDAuMDA2NzgsIDAuMDA2NzgyLCAwLjAwNjc4MiwgMC4wMDY3ODMsIDAuMDA2NzgzIiwgXAotICAgICAgICAgICIwLjAwNjgyLCAwLjAwNjgzNiwgMC4wMDY4MzgsIDAuMDA2ODM5LCAwLjAwNjg0LCAwLjAwNjg0LCAwLjAwNjg0MSIsIFwKLSAgICAgICAgICAiMC4wMDY5NDIsIDAuMDA2OTU4LCAwLjAwNjk2LCAwLjAwNjk2LCAwLjAwNjk2MiwgMC4wMDY5NjQsIDAuMDA2OTYzIiwgXAotICAgICAgICAgICIwLjAwNzA3MSwgMC4wMDcwODQsIDAuMDA3MDksIDAuMDA3MDksIDAuMDA3MDkyLCAwLjAwNzA5MiwgMC4wMDcwODkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQ4ODYsIDAuMDA0OTQ5LCAwLjAwNDk2LCAwLjAwNDk2NiwgMC4wMDQ5NjksIDAuMDA0OTcxLCAwLjAwNDk3MiIsIFwKLSAgICAgICAgICAiMC4wMDQ4NjUsIDAuMDA0OTI1LCAwLjAwNDkzNSwgMC4wMDQ5NCwgMC4wMDQ5NDMsIDAuMDA0OTQ1LCAwLjAwNDk0NiIsIFwKLSAgICAgICAgICAiMC4wMDQ4ODIsIDAuMDA0OTQxLCAwLjAwNDk1MSwgMC4wMDQ5NTcsIDAuMDA0OTYsIDAuMDA0OTYyLCAwLjAwNDk2MyIsIFwKLSAgICAgICAgICAiMC4wMDQ5MzUsIDAuMDA0OTksIDAuMDA1LCAwLjAwNTAwNSwgMC4wMDUwMDksIDAuMDA1MDExLCAwLjAwNTAxMiIsIFwKLSAgICAgICAgICAiMC4wMDUwMDMsIDAuMDA1MDU3LCAwLjAwNTA2NywgMC4wMDUwNzMsIDAuMDA1MDc2LCAwLjAwNTA3OCwgMC4wMDUwNzkiLCBcCi0gICAgICAgICAgIjAuMDA1MTMxLCAwLjAwNTE5LCAwLjAwNTE5OCwgMC4wMDUyMDQsIDAuMDA1MjA3LCAwLjAwNTIwOSwgMC4wMDUyMSIsIFwKLSAgICAgICAgICAiMC4wMDUyNjcsIDAuMDA1MzIyLCAwLjAwNTMzNCwgMC4wMDUzMzgsIDAuMDA1MzQyLCAwLjAwNTM0NCwgMC4wMDUzNDYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDUzNzMsIDAuMDA1NDM0LCAwLjAwNTQ0NCwgMC4wMDU0NDksIDAuMDA1NDUzLCAwLjAwNTQ1MywgMC4wMDU0NTYiLCBcCi0gICAgICAgICAgIjAuMDA1MzgyLCAwLjAwNTQ0NCwgMC4wMDU0NTQsIDAuMDA1NDYsIDAuMDA1NDYyLCAwLjAwNTQ2NCwgMC4wMDU0NjUiLCBcCi0gICAgICAgICAgIjAuMDA1NDY1LCAwLjAwNTUyNSwgMC4wMDU1MzQsIDAuMDA1NTQsIDAuMDA1NTQyLCAwLjAwNTU0MywgMC4wMDU1NDQiLCBcCi0gICAgICAgICAgIjAuMDA1NTc4LCAwLjAwNTY0MiwgMC4wMDU2NTIsIDAuMDA1NjU3LCAwLjAwNTY2LCAwLjAwNTY2NCwgMC4wMDU2NjQiLCBcCi0gICAgICAgICAgIjAuMDA1NzA5LCAwLjAwNTc3LCAwLjAwNTc3OSwgMC4wMDU3ODUsIDAuMDA1Nzg3LCAwLjAwNTc5LCAwLjAwNTc5IiwgXAotICAgICAgICAgICIwLjAwNTkyOSwgMC4wMDU5ODksIDAuMDA1OTk5LCAwLjAwNjAwNCwgMC4wMDYwMDcsIDAuMDA2MDA4LCAwLjAwNjAwOSIsIFwKLSAgICAgICAgICAiMC4wMDYxMywgMC4wMDYxOTIsIDAuMDA2MjAyLCAwLjAwNjIwOCwgMC4wMDYyMSwgMC4wMDYyMTUsIDAuMDA2MjE0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0NzQzLCAwLjAwNDgyMSwgMC4wMDQ4MzQsIDAuMDA0ODQxLCAwLjAwNDg0NSwgMC4wMDQ4NDcsIDAuMDA0ODQ5IiwgXAotICAgICAgICAgICIwLjAwNDc1LCAwLjAwNDgyOSwgMC4wMDQ4NDIsIDAuMDA0ODUsIDAuMDA0ODU0LCAwLjAwNDg1NiwgMC4wMDQ4NTgiLCBcCi0gICAgICAgICAgIjAuMDA0ODM1LCAwLjAwNDkxNCwgMC4wMDQ5MjgsIDAuMDA0OTM1LCAwLjAwNDkzOSwgMC4wMDQ5NDEsIDAuMDA0OTQzIiwgXAotICAgICAgICAgICIwLjAwNDk2MiwgMC4wMDUwNDEsIDAuMDA1MDU0LCAwLjAwNTA2MSwgMC4wMDUwNjUsIDAuMDA1MDY3LCAwLjAwNTA2OSIsIFwKLSAgICAgICAgICAiMC4wMDUwOTMsIDAuMDA1MTczLCAwLjAwNTE4NiwgMC4wMDUxOTQsIDAuMDA1MTk4LCAwLjAwNTIsIDAuMDA1MjAyIiwgXAotICAgICAgICAgICIwLjAwNTMxOCwgMC4wMDUzOTYsIDAuMDA1NDEsIDAuMDA1NDE3LCAwLjAwNTQyMSwgMC4wMDU0MjUsIDAuMDA1NDI2IiwgXAotICAgICAgICAgICIwLjAwNTUyNSwgMC4wMDU2MDcsIDAuMDA1NjIsIDAuMDA1NjMsIDAuMDA1NjMyLCAwLjAwNTYzMywgMC4wMDU2MzciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTMCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2MjIyLCAwLjAwNjIzNywgMC4wMDYyNCwgMC4wMDYyNDEsIDAuMDA2MjQxLCAwLjAwNjI0MiwgMC4wMDYyNDIiLCBcCi0gICAgICAgICAgIjAuMDA2MjMxLCAwLjAwNjI0NiwgMC4wMDYyNDgsIDAuMDA2MjQ5LCAwLjAwNjI0NiwgMC4wMDYyNDksIDAuMDA2MjUxIiwgXAotICAgICAgICAgICIwLjAwNjMxMywgMC4wMDYzMywgMC4wMDYzMzIsIDAuMDA2MzMzLCAwLjAwNjMzNSwgMC4wMDYzMzQsIDAuMDA2MzM0IiwgXAotICAgICAgICAgICIwLjAwNjQzOSwgMC4wMDY0NTQsIDAuMDA2NDU2LCAwLjAwNjQ1NywgMC4wMDY0NTcsIDAuMDA2NDU3LCAwLjAwNjQ1OCIsIFwKLSAgICAgICAgICAiMC4wMDY1NjIsIDAuMDA2NTc4LCAwLjAwNjU4LCAwLjAwNjU4MywgMC4wMDY1ODEsIDAuMDA2NTgxLCAwLjAwNjU4MiIsIFwKLSAgICAgICAgICAiMC4wMDY3ODEsIDAuMDA2Nzk2LCAwLjAwNjc5OCwgMC4wMDY3OTksIDAuMDA2Nzk5LCAwLjAwNjgwMSwgMC4wMDY3OTkiLCBcCi0gICAgICAgICAgIjAuMDA2OTg2LCAwLjAwNzAwNCwgMC4wMDcwMDUsIDAuMDA3MDA2LCAwLjAwNzAwNSwgMC4wMDcwMDQsIDAuMDA3MDA1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA3MzA3LCAwLjAwNzM2OCwgMC4wMDczNzcsIDAuMDA3MzgzLCAwLjAwNzM4NiwgMC4wMDczODcsIDAuMDA3Mzg4IiwgXAotICAgICAgICAgICIwLjAwNzMxOSwgMC4wMDczNzksIDAuMDA3Mzg5LCAwLjAwNzM5NCwgMC4wMDczOTcsIDAuMDA3Mzk5LCAwLjAwNzQiLCBcCi0gICAgICAgICAgIjAuMDA3NDA2LCAwLjAwNzQ2NCwgMC4wMDc0NzQsIDAuMDA3NDc5LCAwLjAwNzQ4MiwgMC4wMDc0ODQsIDAuMDA3NDg1IiwgXAotICAgICAgICAgICIwLjAwNzUyLCAwLjAwNzU4LCAwLjAwNzU4OSwgMC4wMDc1OTUsIDAuMDA3NTk4LCAwLjAwNzYsIDAuMDA3NjAxIiwgXAotICAgICAgICAgICIwLjAwNzY0OCwgMC4wMDc3MDksIDAuMDA3NzE4LCAwLjAwNzcyNCwgMC4wMDc3MjYsIDAuMDA3NzI4LCAwLjAwNzcyOSIsIFwKLSAgICAgICAgICAiMC4wMDc5MDQsIDAuMDA3OTY0LCAwLjAwNzk3MywgMC4wMDc5NzgsIDAuMDA3OTgxLCAwLjAwNzk4MiwgMC4wMDc5ODMiLCBcCi0gICAgICAgICAgIjAuMDA4MDcsIDAuMDA4MTI5LCAwLjAwODEzOSwgMC4wMDgxNDQsIDAuMDA4MTQ3LCAwLjAwODE0OSwgMC4wMDgxNSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlMxIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDU3MTcsIDAuMDA1NzUzLCAwLjAwNTc2LCAwLjAwNTc2NCwgMC4wMDU3NjYsIDAuMDA1NzY3LCAwLjAwNTc2OCIsIFwKLSAgICAgICAgICAiMC4wMDU3MzksIDAuMDA1NzczLCAwLjAwNTc4LCAwLjAwNTc4MywgMC4wMDU3ODYsIDAuMDA1Nzg4LCAwLjAwNTc4OCIsIFwKLSAgICAgICAgICAiMC4wMDU4MzIsIDAuMDA1ODYzLCAwLjAwNTg2OSwgMC4wMDU4NzMsIDAuMDA1ODc1LCAwLjAwNTg3NiwgMC4wMDU4NzciLCBcCi0gICAgICAgICAgIjAuMDA1OTQyLCAwLjAwNTk3NSwgMC4wMDU5OCwgMC4wMDU5ODQsIDAuMDA1OTg1LCAwLjAwNTk4NiwgMC4wMDU5ODciLCBcCi0gICAgICAgICAgIjAuMDA2MDcyLCAwLjAwNjEwNSwgMC4wMDYxMTEsIDAuMDA2MTE0LCAwLjAwNjExNywgMC4wMDYxMTcsIDAuMDA2MTE4IiwgXAotICAgICAgICAgICIwLjAwNjMzNSwgMC4wMDYzNjgsIDAuMDA2MzczLCAwLjAwNjM3NywgMC4wMDYzOCwgMC4wMDYzNzksIDAuMDA2MzgiLCBcCi0gICAgICAgICAgIjAuMDA2NTM5LCAwLjAwNjU2OSwgMC4wMDY1NzQsIDAuMDA2NTc3LCAwLjAwNjU4LCAwLjAwNjU4LCAwLjAwNjU4MSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDM0NSwgMC4wMDQ0MjUsIDAuMDA0NDQsIDAuMDA0NDQ4LCAwLjAwNDQ1MiwgMC4wMDQ0NTUsIDAuMDA0NDU3IiwgXAotICAgICAgICAgICIwLjAwNDM1NSwgMC4wMDQ0MzQsIDAuMDA0NDQ5LCAwLjAwNDQ1NywgMC4wMDQ0NjIsIDAuMDA0NDY0LCAwLjAwNDQ2NiIsIFwKLSAgICAgICAgICAiMC4wMDQ0NDksIDAuMDA0NTI3LCAwLjAwNDU0MSwgMC4wMDQ1NDksIDAuMDA0NTUzLCAwLjAwNDU1NSwgMC4wMDQ1NTciLCBcCi0gICAgICAgICAgIjAuMDA0NTU1LCAwLjAwNDYzOCwgMC4wMDQ2NTIsIDAuMDA0NjYsIDAuMDA0NjY0LCAwLjAwNDY2NywgMC4wMDQ2NjkiLCBcCi0gICAgICAgICAgIjAuMDA0Njg3LCAwLjAwNDc2NywgMC4wMDQ3ODEsIDAuMDA0Nzg5LCAwLjAwNDc5MywgMC4wMDQ3OTYsIDAuMDA0Nzk4IiwgXAotICAgICAgICAgICIwLjAwNDkxMywgMC4wMDQ5ODksIDAuMDA1MDA3LCAwLjAwNTAxMywgMC4wMDUwMTksIDAuMDA1MDIsIDAuMDA1MDIyIiwgXAotICAgICAgICAgICIwLjAwNTE3NSwgMC4wMDUyNDksIDAuMDA1MjY2LCAwLjAwNTI3NSwgMC4wMDUyNzksIDAuMDA1MjgyLCAwLjAwNTI4NCIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogTVhJM1hMICoKLSAqIC0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoTVhJM1hMKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuNjQxNTI0OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA3MTA3OTU7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNzA5NTUyOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDcxMDc5NTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA5MjksIDAuMDAwOTA0LCAwLjAwMDkyNiwgMC4wMDA5NzYsIDAuMDAxMDQ2LCAwLjAwMTE4MSwgMC4wMDEzMTciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDI1NDYsIDAuMDAyNTMsIDAuMDAyNTQ2LCAwLjAwMjU4NiwgMC4wMDI2NSwgMC4wMDI3NzMsIDAuMDAyOSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjU0MjgzOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDY1MzMzMTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2NTQyODM7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjg4LCAwLjAwMDI4OSwgMC4wMDAyOSwgMC4wMDAyOSwgMC4wMDAyOSwgMC4wMDAyOTEsIDAuMDAwMjkxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzE0LCAwLjAwMDMwMywgMC4wMDAzMDEsIDAuMDAwMywgMC4wMDAyOTksIDAuMDAwMjk5LCAwLjAwMDI5OSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQykgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjM2Mjg5OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYzNjI4NzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2MzYyODk7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzMyLCAwLjAwMDM0NSwgMC4wMDA0MzUsIDAuMDAwNTUsIDAuMDAwNjgyLCAwLjAwMDkxMywgMC4wMDExMTIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDE3MTUsIDAuMDAxNzI4LCAwLjAwMTgxMSwgMC4wMDE5MjcsIDAuMDAyMDYsIDAuMDAyMjg5LCAwLjAwMjQ3NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUzApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTI4MzI0OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTI4MzI0OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTI4MzI7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjA4LCAwLjAwMDIzMiwgMC4wMDAzMSwgMC4wMDA0MjIsIDAuMDAwNTQ5LCAwLjAwMDgxNCwgMC4wMDEwMTkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDI0MTMsIDAuMDAyNDQzLCAwLjAwMjUxMiwgMC4wMDI2MTgsIDAuMDAyNzQ1LCAwLjAwMjk2NiwgMC4wMDMxNTgiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFMxKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDEzMTUzOTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDEzMTUzOTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDEzMTUyMTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyOTMsIDAuMDAwMzA4LCAwLjAwMDM4MSwgMC4wMDA0ODQsIDAuMDAwNjA1LCAwLjAwMDgyOSwgMC4wMDEwMjIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDI2MjYsIDAuMDAyNjQ5LCAwLjAwMjcyLCAwLjAwMjgzLCAwLjAwMjk0MywgMC4wMDMxNTIsIDAuMDAzMzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4xOTYxODM7Ci0gICAgZnVuY3Rpb24gOiAiKCEoKFMxIEMpICsgKCFTMSAoKFMwIEIpICsgKCFTMCBBKSkpKSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExMjMwNCwgMC4xMjI4NDgsIDAuMjE3NjkzLCAwLjM3NTYwMSwgMC41MzM0MjQsIDAuOTAxNzUsIDEuMTEyMTYiLCBcCi0gICAgICAgICAgIjAuMTE4MDg4LCAwLjEyODY0MiwgMC4yMjM0NiwgMC4zODEzMzksIDAuNTM5MiwgMC45MDc1ODIsIDEuMTE3OTciLCBcCi0gICAgICAgICAgIjAuMTI0MTQ3LCAwLjEzNDcsIDAuMjI5NTE4LCAwLjM4NzQyNSwgMC41NDUyNjYsIDAuOTEzNTQxLCAxLjEyNDEzIiwgXAotICAgICAgICAgICIwLjEyODg5OCwgMC4xMzk0NDUsIDAuMjM0MjY2LCAwLjM5MjE0NSwgMC41NTAwNTUsIDAuOTE4MzIyLCAxLjEyODgxIiwgXAotICAgICAgICAgICIwLjEzMjg0MSwgMC4xNDMzOTcsIDAuMjM4MjE2LCAwLjM5NjA4NCwgMC41NTM5ODcsIDAuOTIyMjU2LCAxLjEzMjczIiwgXAotICAgICAgICAgICIwLjEzODEyNywgMC4xNDg2ODQsIDAuMjQzNDk1LCAwLjQwMTQ0NiwgMC41NTkyNzksIDAuOTI3NTE0LCAxLjEzODI1IiwgXAotICAgICAgICAgICIwLjE0MjExOCwgMC4xNTI2NzUsIDAuMjQ3NDU5LCAwLjQwNTM2OCwgMC41NjMxOTQsIDAuOTMxNTgsIDEuMTQyMDIiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTE3ODU4LCAwLjEzOTcwMywgMC4zMzg0OTcsIDAuNjcwOTQ1LCAxLjAwMjU1LCAxLjc3Nzc5LCAyLjIyMzIiLCBcCi0gICAgICAgICAgIjAuMTE3OTA2LCAwLjEzOTcsIDAuMzM4MTYxLCAwLjY3MDkzMSwgMS4wMDI3MiwgMS43Nzk2OCwgMi4yMjEzIiwgXAotICAgICAgICAgICIwLjExNzgwNywgMC4xMzk2OTgsIDAuMzM4MTQ2LCAwLjY2OTg0NCwgMS4wMDI3NywgMS43Nzk0MywgMi4yMjMxNyIsIFwKLSAgICAgICAgICAiMC4xMTc4NjQsIDAuMTM5NzMyLCAwLjMzODE5OCwgMC42NzAyNzMsIDEuMDAzNTIsIDEuNzc4MjEsIDIuMjIwOCIsIFwKLSAgICAgICAgICAiMC4xMTc4NTEsIDAuMTM5NzM4LCAwLjMzODQ3MSwgMC42NzA4NiwgMS4wMDM0LCAxLjc3ODExLCAyLjIyMTAzIiwgXAotICAgICAgICAgICIwLjExNzgzNCwgMC4xMzk3MjMsIDAuMzM4MTE5LCAwLjY2OTk5NCwgMS4wMDMzNCwgMS43NzkzMiwgMi4yMTk5MiIsIFwKLSAgICAgICAgICAiMC4xMTc5MzksIDAuMTM5NzA5LCAwLjMzODExMywgMC42Njk4MTEsIDEuMDAzMTUsIDEuNzc5MjYsIDIuMjIyNzIiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTA4OTg0LCAwLjExODY5LCAwLjIwNTYzNSwgMC4zNTA0MjcsIDAuNDk1MTcsIDAuODMyOTIyLCAxLjAyNTgxIiwgXAotICAgICAgICAgICIwLjExNTAxMSwgMC4xMjQ3MTUsIDAuMjExNjYyLCAwLjM1NjQ1NywgMC41MDExMTksIDAuODM4ODUsIDEuMDMxODQiLCBcCi0gICAgICAgICAgIjAuMTIxNjQ3LCAwLjEzMTM1LCAwLjIxODI5NywgMC4zNjMwOTQsIDAuNTA3ODI0LCAwLjg0NTU2OSwgMS4wMzg0NyIsIFwKLSAgICAgICAgICAiMC4xMjY5NDEsIDAuMTM2NjQ0LCAwLjIyMzU5MywgMC4zNjgzOTIsIDAuNTEzMTEzLCAwLjg1MDgxNywgMS4wNDM3OCIsIFwKLSAgICAgICAgICAiMC4xMzE0NTYsIDAuMTQxMTQ5LCAwLjIyODEwNSwgMC4zNzI5LCAwLjUxNzYxNCwgMC44NTUzMjEsIDEuMDQ4MjkiLCBcCi0gICAgICAgICAgIjAuMTM3NTc3LCAwLjE0NzI4LCAwLjIzNDI1LCAwLjM3OTAxLCAwLjUyMzc1MywgMC44NjE0NDYsIDEuMDU0NCIsIFwKLSAgICAgICAgICAiMC4xNDIxOTQsIDAuMTUxODg1LCAwLjIzODgzMywgMC4zODM2MjUsIDAuNTI4NDA3LCAwLjg2NjA2MywgMS4wNTkwMiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDY1NTIsIDAuMTI1OTM4LCAwLjMwMzExNCwgMC42MDAzODEsIDAuODk2ODk3LCAxLjU5MjQzLCAxLjk4NjI1IiwgXAotICAgICAgICAgICIwLjEwNjU1OCwgMC4xMjU5NDYsIDAuMzAzMTA4LCAwLjYwMDM2MiwgMC44OTQ5NywgMS41ODcxMSwgMS45ODYyIiwgXAotICAgICAgICAgICIwLjEwNjU1MiwgMC4xMjU5MzksIDAuMzAzMTAzLCAwLjYwMDM1NiwgMC44OTY3MiwgMS41OTIyNSwgMS45ODgzIiwgXAotICAgICAgICAgICIwLjEwNjU5MiwgMC4xMjU5NDMsIDAuMzAzMDc1LCAwLjU5OTc1MywgMC44OTc2NywgMS41OTAwMywgMS45ODYyOCIsIFwKLSAgICAgICAgICAiMC4xMDY1NzcsIDAuMTI1OTQyLCAwLjMwMzA1NywgMC42MDAyNTIsIDAuODk3NjA1LCAxLjU4OTk0LCAxLjk4NjMzIiwgXAotICAgICAgICAgICIwLjEwNjU0MiwgMC4xMjU5NDksIDAuMzAzMTAyLCAwLjYwMDE5NywgMC44OTY2NDYsIDEuNTkxNzksIDEuOTg4MzUiLCBcCi0gICAgICAgICAgIjAuMTA2NjA1LCAwLjEyNTgyNiwgMC4zMDI5MTksIDAuNjAwMTc0LCAwLjg5NzcxNiwgMS41OTE4LCAxLjk4ODQ2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExMzA2LCAwLjEyMzYxNCwgMC4yMTg0MzMsIDAuMzc2MzEzLCAwLjUzNDIzOSwgMC45MDI0NzksIDEuMTEyOTYiLCBcCi0gICAgICAgICAgIjAuMTE4NzEsIDAuMTI5MjYyLCAwLjIyNDA4MSwgMC4zODE5NjEsIDAuNTM5ODg0LCAwLjkwODEyOCwgMS4xMTg2MSIsIFwKLSAgICAgICAgICAiMC4xMjQ3NDUsIDAuMTM1Mjg4LCAwLjIzMDExOSwgMC4zODgwMiwgMC41NDU4NjMsIDAuOTE0MTk2LCAxLjEyNDY0IiwgXAotICAgICAgICAgICIwLjEyOTU3MywgMC4xNDAxMjcsIDAuMjM0OTQ5LCAwLjM5MjgzLCAwLjU1MDc0LCAwLjkxODk5NywgMS4xMjk0OSIsIFwKLSAgICAgICAgICAiMC4xMzM1NjMsIDAuMTQ0MTIyLCAwLjIzODkzMywgMC4zOTY4NDgsIDAuNTU0NjgxLCAwLjkyMjk5OSwgMS4xMzM0NiIsIFwKLSAgICAgICAgICAiMC4xMzg5MjksIDAuMTQ5NDc5LCAwLjI0NDM0LCAwLjQwMjE3NSwgMC41NjAwMjEsIDAuOTI4MzE2LCAxLjEzODc2IiwgXAotICAgICAgICAgICIwLjE0Mjk1MiwgMC4xNTM1MTksIDAuMjQ4MzIsIDAuNDA2MjA2LCAwLjU2NDA4LCAwLjkzMjM2NCwgMS4xNDI4MSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTc5MDQsIDAuMTM5NzA0LCAwLjMzODE4LCAwLjY3MDI1OSwgMS4wMDM1NCwgMS43NzgwNSwgMi4yMjEiLCBcCi0gICAgICAgICAgIjAuMTE3ODc4LCAwLjEzOTcwNCwgMC4zMzgxODMsIDAuNjcwMjY1LCAxLjAwMTc1LCAxLjc3ODA3LCAyLjIyMTAxIiwgXAotICAgICAgICAgICIwLjExNzg2NywgMC4xMzk2OTcsIDAuMzM4MTY5LCAwLjY3MDkyMywgMS4wMDI3MiwgMS43Nzc3OCwgMi4yMjE0MiIsIFwKLSAgICAgICAgICAiMC4xMTc5MDUsIDAuMTM5NzI3LCAwLjMzODE4NiwgMC42NzAyNjYsIDEuMDAyMzUsIDEuNzc4MDYsIDIuMjIxMDEiLCBcCi0gICAgICAgICAgIjAuMTE3OTE0LCAwLjEzOTcyOCwgMC4zMzg0NzEsIDAuNjcwODYsIDEuMDAyNzEsIDEuNzc3OTksIDIuMjIxMDMiLCBcCi0gICAgICAgICAgIjAuMTE3ODY5LCAwLjEzOTcwMywgMC4zMzgwMDUsIDAuNjcwODA2LCAxLjAwMjU5LCAxLjc3Nzc4LCAyLjIyMDg3IiwgXAotICAgICAgICAgICIwLjExNzk3NCwgMC4xMzk2ODMsIDAuMzM4Mzk2LCAwLjY3MDI4MSwgMS4wMDMyNSwgMS43NzkyNywgMi4yMjI3NCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDkwMDcsIDAuMTE4NzExLCAwLjIwNTY1NiwgMC4zNTAzNzcsIDAuNDk1MTQ4LCAwLjgzMjg1LCAxLjAyNTg0IiwgXAotICAgICAgICAgICIwLjExNTE4NCwgMC4xMjQ4ODUsIDAuMjExODQ2LCAwLjM1NjYyMSwgMC41MDEzNDcsIDAuODM5MDQ4LCAxLjAzMjAyIiwgXAotICAgICAgICAgICIwLjEyMTk4NiwgMC4xMzE2OSwgMC4yMTg2MzcsIDAuMzYzNDMzLCAwLjUwODE2LCAwLjg0NTkxNSwgMS4wMzg4MSIsIFwKLSAgICAgICAgICAiMC4xMjczMjUsIDAuMTM3MDMzLCAwLjIyMzk4OCwgMC4zNjg3NzcsIDAuNTEzNDkyLCAwLjg1MTE5OCwgMS4wNDQxOCIsIFwKLSAgICAgICAgICAiMC4xMzE4MzEsIDAuMTQxNTIyLCAwLjIyODUwMiwgMC4zNzMyNjQsIDAuNTE3OTkxLCAwLjg1NTY5NSwgMS4wNDg2NiIsIFwKLSAgICAgICAgICAiMC4xMzc5MTcsIDAuMTQ3NjIyLCAwLjIzNDU3NCwgMC4zNzkzNzcsIDAuNTI0MTU4LCAwLjg2MTc3OSwgMS4wNTQ3NCIsIFwKLSAgICAgICAgICAiMC4xNDI1MzksIDAuMTUyMjQyLCAwLjIzOTE5NywgMC4zODM5OTQsIDAuNTI4NzA2LCAwLjg2NjQyNSwgMS4wNTkzOCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDY1NTUsIDAuMTI1OTQxLCAwLjMwMzExMywgMC42MDAxODksIDAuODk3ODU1LCAxLjU5MjIzLCAxLjk4MzA0IiwgXAotICAgICAgICAgICIwLjEwNjU1MSwgMC4xMjU4ODEsIDAuMzAyNjI4LCAwLjYwMDMxMiwgMC44OTc3MzUsIDEuNTkwMDIsIDEuOTg2NDkiLCBcCi0gICAgICAgICAgIjAuMTA2NTU0LCAwLjEyNTk0MSwgMC4zMDMxMDMsIDAuNjAwMzU1LCAwLjg5Njc5NSwgMS41OTIyOCwgMS45ODgyMyIsIFwKLSAgICAgICAgICAiMC4xMDY1NzksIDAuMTI1OTYxLCAwLjMwMjc5NiwgMC42MDAzNSwgMC44OTc3MjgsIDEuNTg5OTYsIDEuOTg2NTQiLCBcCi0gICAgICAgICAgIjAuMTA2NTc4LCAwLjEyNTk1MiwgMC4zMDMxOTUsIDAuNjAwMiwgMC44OTc2MTEsIDEuNTg5OSwgMS45ODYyOSIsIFwKLSAgICAgICAgICAiMC4xMDY1NSwgMC4xMjU5NDEsIDAuMzAzMDYzLCAwLjYwMDQxNywgMC44OTYwMzUsIDEuNTkxNjksIDEuOTg4MTkiLCBcCi0gICAgICAgICAgIjAuMTA2NjAxLCAwLjEyNTgyOSwgMC4zMDMwMTQsIDAuNTk5Mzk5LCAwLjg5NjU2NSwgMS41OTE4MiwgMS45ODg0NyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTYyOTksIDAuMTA2ODU2LCAwLjIwMTY5NiwgMC4zNTk1OTIsIDAuNTE3NDc2LCAwLjg4NTc3MiwgMS4wOTYyNSIsIFwKLSAgICAgICAgICAiMC4xMDMyOTYsIDAuMTEzODUzLCAwLjIwODY4NCwgMC4zNjY2MzYsIDAuNTI0NDcyLCAwLjg5Mjc0NSwgMS4xMDMyNCIsIFwKLSAgICAgICAgICAiMC4xMDg3MDYsIDAuMTE5MjYyLCAwLjIxNDEwMiwgMC4zNzE5OTQsIDAuNTI5ODY4LCAwLjg5ODIwMiwgMS4xMDg2NyIsIFwKLSAgICAgICAgICAiMC4xMTI1MzksIDAuMTIzMDkzLCAwLjIxNzkzNywgMC4zNzU4MDgsIDAuNTMzNjg4LCAwLjkwMTk3MiwgMS4xMTI3NCIsIFwKLSAgICAgICAgICAiMC4xMTU2NjUsIDAuMTI2MjEyLCAwLjIyMTA0MywgMC4zNzg5MjcsIDAuNTM2OTIzLCAwLjkwNTEzMSwgMS4xMTU2IiwgXAotICAgICAgICAgICIwLjExOTgyNiwgMC4xMzAzOCwgMC4yMjUxNjQsIDAuMzgzMTMyLCAwLjU0MDkzLCAwLjkwOTI0NSwgMS4xMTk3NCIsIFwKLSAgICAgICAgICAiMC4xMjI4NjEsIDAuMTMzNDEsIDAuMjI4MTc1LCAwLjM4NjA5MywgMC41NDM5ODIsIDAuOTEyMjkzLCAxLjEyMjY5Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExNzg5OSwgMC4xMzk2OTgsIDAuMzM4MjE1LCAwLjY3MDk4NywgMS4wMDI1MSwgMS43Nzk3OSwgMi4yMjEyNiIsIFwKLSAgICAgICAgICAiMC4xMTc4ODUsIDAuMTM5Njk5LCAwLjMzODU0LCAwLjY2OTgwOSwgMS4wMDI1MSwgMS43Nzk1NSwgMi4yMjE0MyIsIFwKLSAgICAgICAgICAiMC4xMTc4MTMsIDAuMTM5NzAzLCAwLjMzODI0MywgMC42NzAzMiwgMS4wMDI3MiwgMS43NzgwMywgMi4yMjA5NSIsIFwKLSAgICAgICAgICAiMC4xMTc4MzgsIDAuMTM5NzUzLCAwLjMzODUyMSwgMC42NzA5MTgsIDEuMDAyNiwgMS43Nzc3NCwgMi4yMjAwMiIsIFwKLSAgICAgICAgICAiMC4xMTc4MDMsIDAuMTM5Njk1LCAwLjMzODUxNiwgMC42NzA5MjYsIDEuMDAyMiwgMS43Nzc4MSwgMi4yMjA2OCIsIFwKLSAgICAgICAgICAiMC4xMTc4MTUsIDAuMTM5NTg5LCAwLjMzODA5NiwgMC42NzA5NjIsIDEuMDAzNDUsIDEuNzc4MDIsIDIuMjIwODkiLCBcCi0gICAgICAgICAgIjAuMTE4MDc1LCAwLjEzOTczLCAwLjMzODE3NSwgMC42NzEwMzUsIDEuMDAzNDQsIDEuNzc5NTcsIDIuMjIwOTkiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk1MDQzLCAwLjEwNDc1NCwgMC4xOTE3MzcsIDAuMzM2NTEsIDAuNDgxMjUyLCAwLjgxODk1NywgMS4wMTE5MyIsIFwKLSAgICAgICAgICAiMC4xMDIxNDIsIDAuMTExODQ1LCAwLjE5ODgyLCAwLjM0MzYzMiwgMC40ODgzNDksIDAuODI2MDU1LCAxLjAxOTAyIiwgXAotICAgICAgICAgICIwLjEwNzcwNiwgMC4xMTc0MTQsIDAuMjA0Mzg3LCAwLjM0OTE5NywgMC40OTM5MDYsIDAuODMxNjIsIDEuMDI0NTkiLCBcCi0gICAgICAgICAgIjAuMTExNywgMC4xMjE0MDQsIDAuMjA4MzY5LCAwLjM1MzE5LCAwLjQ5Nzg5OSwgMC44MzU2MDUsIDEuMDI4NjYiLCBcCi0gICAgICAgICAgIjAuMTE1MTA0LCAwLjEyNDc5NiwgMC4yMTE3NjgsIDAuMzU2NTgsIDAuNTAxMjk3LCAwLjgzOTA3NiwgMS4wMzE5NiIsIFwKLSAgICAgICAgICAiMC4xMTk1MTMsIDAuMTI5MjAxLCAwLjIxNjE4MSwgMC4zNjA5ODksIDAuNTA1NzIxLCAwLjg0MzM5OSwgMS4wMzY0IiwgXAotICAgICAgICAgICIwLjEyMjg2MSwgMC4xMzI1NTksIDAuMjE5NDk3LCAwLjM2NDM1OCwgMC41MDkwNjcsIDAuODQ2Nzk2LCAxLjAzOTY4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwNjYzNSwgMC4xMjYwMjIsIDAuMzAzMjMzLCAwLjYwMDE4MywgMC44OTc4MDksIDEuNTkwMDQsIDEuOTg2NDkiLCBcCi0gICAgICAgICAgIjAuMTA2NjE0LCAwLjEyNTk5NCwgMC4zMDMxNTMsIDAuNjAwNDI2LCAwLjg5NzYxMywgMS41OTAwNSwgMS45ODg0NSIsIFwKLSAgICAgICAgICAiMC4xMDY2MjMsIDAuMTI2MDA3LCAwLjMwMzE1OSwgMC42MDA0MjEsIDAuODk3NzQ4LCAxLjU5MDAyLCAxLjk4ODQ3IiwgXAotICAgICAgICAgICIwLjEwNjYzNSwgMC4xMjYwMTEsIDAuMzAzMTEyLCAwLjYwMDMxNSwgMC44OTc2NzUsIDEuNTg5OTQsIDEuOTg4NzUiLCBcCi0gICAgICAgICAgIjAuMTA2NjQ4LCAwLjEyNjAyNCwgMC4zMDI4LCAwLjYwMDMyNywgMC44OTc2NTIsIDEuNTkyMDYsIDEuOTg4MzMiLCBcCi0gICAgICAgICAgIjAuMTA2NTMxLCAwLjEyNTg3MiwgMC4zMDMyMDUsIDAuNjAwMjc3LCAwLjg5Nzc0MiwgMS41OTAwMywgMS45ODg1NCIsIFwKLSAgICAgICAgICAiMC4xMDY3MzMsIDAuMTI1OTc1LCAwLjMwMjc3NywgMC41OTkxODYsIDAuODk2OTU4LCAxLjU5MiwgMS45ODgzOCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTE5NzM4LCAwLjEzMDI4MSwgMC4yMjUxMDIsIDAuMzgyOTgxLCAwLjU0MDg0LCAwLjkwOTE2MywgMS4xMTk2NSIsIFwKLSAgICAgICAgICAiMC4xMjcwOSwgMC4xMzc2NDYsIDAuMjMyNDYzLCAwLjM5MDM0MiwgMC41NDgyMDIsIDAuOTE2NjIsIDEuMTI2OTciLCBcCi0gICAgICAgICAgIjAuMTMzMTg0LCAwLjE0MzczNiwgMC4yMzg1NTcsIDAuMzk2NDg2LCAwLjU1NDI5OSwgMC45MjI2MzEsIDEuMTMzMDUiLCBcCi0gICAgICAgICAgIjAuMTM3NDk0LCAwLjE0ODAzNCwgMC4yNDI4NjQsIDAuNDAwNzY0LCAwLjU1ODYwNiwgMC45MjY5MjcsIDEuMTM3MzgiLCBcCi0gICAgICAgICAgIjAuMTQxMTkxLCAwLjE1MTc0NiwgMC4yNDY1NTEsIDAuNDA0NDQzLCAwLjU2MjM1NiwgMC45MzA1NzgsIDEuMTQxMDEiLCBcCi0gICAgICAgICAgIjAuMTQ2MTc1LCAwLjE1NjcxNSwgMC4yNTE1MDgsIDAuNDA5Mzk0LCAwLjU2NzI0NywgMC45MzU1MjEsIDEuMTQ2MTUiLCBcCi0gICAgICAgICAgIjAuMTQ5ODYxLCAwLjE2MDQxNSwgMC4yNTUyMDcsIDAuNDEzMDgzLCAwLjU3MDk1MywgMC45MzkyMzksIDEuMTQ5NjUiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTE3ODQ5LCAwLjEzOTcwMiwgMC4zMzgyMDEsIDAuNjcwMjg3LCAxLjAwMzU3LCAxLjc3ODI4LCAyLjIyMDY4IiwgXAotICAgICAgICAgICIwLjExNzg4LCAwLjEzOTcwNCwgMC4zMzgxNjQsIDAuNjcwOTI1LCAxLjAwMjcsIDEuNzc5NjcsIDIuMjIxMzEiLCBcCi0gICAgICAgICAgIjAuMTE3ODI0LCAwLjEzOTY5OSwgMC4zMzg0ODMsIDAuNjcwOTUsIDEuMDAyNzMsIDEuNzc3NzgsIDIuMjIwOTciLCBcCi0gICAgICAgICAgIjAuMTE3ODM5LCAwLjEzOTcxNiwgMC4zMzg0OTEsIDAuNjcwOTMyLCAxLjAwMjY1LCAxLjc3NzkyLCAyLjIyMSIsIFwKLSAgICAgICAgICAiMC4xMTc4NzQsIDAuMTM5NjgzLCAwLjMzODE0MSwgMC42NzA4MDgsIDEuMDAzMzcsIDEuNzc3ODIsIDIuMjIyNjkiLCBcCi0gICAgICAgICAgIjAuMTE3Nzk5LCAwLjEzOTY3OCwgMC4zMzgwOTYsIDAuNjcwNjcxLCAxLjAwMzE4LCAxLjc3Nzc3LCAyLjIyMjcxIiwgXAotICAgICAgICAgICIwLjExNzgxMywgMC4xMzk2MjcsIDAuMzM4MDY4LCAwLjY2OTgxNCwgMS4wMDMwOSwgMS43NzkwMiwgMi4yMjA5NyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTc2NzcsIDAuMTI3MzY5LCAwLjIxNDMyOSwgMC4zNTkxMywgMC41MDM4MzgsIDAuODQxNTQsIDEuMDM0NTQiLCBcCi0gICAgICAgICAgIjAuMTI0OTAzLCAwLjEzNDU5NiwgMC4yMjE1NTUsIDAuMzY2MzU3LCAwLjUxMTA2NCwgMC44NDg3NjcsIDEuMDQxNzYiLCBcCi0gICAgICAgICAgIjAuMTMwOTA0LCAwLjE0MDYxLCAwLjIyNzU1MywgMC4zNzIzNDgsIDAuNTE3MTMxLCAwLjg1NDc5NSwgMS4wNDc3MyIsIFwKLSAgICAgICAgICAiMC4xMzUwMDEsIDAuMTQ0Njk5LCAwLjIzMTY1NCwgMC4zNzY0NSwgMC41MjExNjMsIDAuODU4ODY0LCAxLjA1MTgxIiwgXAotICAgICAgICAgICIwLjEzODQxOSwgMC4xNDgxMDgsIDAuMjM1MDYsIDAuMzc5ODU3LCAwLjUyNDU5NywgMC44NjIzMzMsIDEuMDU1MjMiLCBcCi0gICAgICAgICAgIjAuMTQyOTE3LCAwLjE1MjYxMywgMC4yMzk1NTgsIDAuMzg0MzUxLCAwLjUyOTA2OSwgMC44NjY4NTYsIDEuMDU5NzUiLCBcCi0gICAgICAgICAgIjAuMTQ2MTg5LCAwLjE1NTg5NSwgMC4yNDI4MzQsIDAuMzg3NTk4LCAwLjUzMjM1LCAwLjg3MDA1NCwgMS4wNjI5OSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDY1NTEsIDAuMTI1OTg4LCAwLjMwMzExNCwgMC42MDA0MDQsIDAuODk3Njc5LCAxLjU5MDE2LCAxLjk4ODkyIiwgXAotICAgICAgICAgICIwLjEwNjU1LCAwLjEyNTk5LCAwLjMwMzExNCwgMC42MDA0MDQsIDAuODk3Njc0LCAxLjU5MDE3LCAxLjk4ODg4IiwgXAotICAgICAgICAgICIwLjEwNjU1NCwgMC4xMjU5NDEsIDAuMzAzMTAzLCAwLjYwMDM1MiwgMC44OTgwMDYsIDEuNTkyMTQsIDEuOTg4NTEiLCBcCi0gICAgICAgICAgIjAuMTA2NTcxLCAwLjEyNTk0OCwgMC4zMDMxMTIsIDAuNjAwMzY4LCAwLjg5NzYyNywgMS41OTAwNywgMS45ODg2NyIsIFwKLSAgICAgICAgICAiMC4xMDY1NTUsIDAuMTI1OTY4LCAwLjMwMzEwMiwgMC42MDAyNjgsIDAuODk2ODg2LCAxLjU5MTk3LCAxLjk4ODUxIiwgXAotICAgICAgICAgICIwLjEwNjQ3NiwgMC4xMjU4NzQsIDAuMzAyODEsIDAuNTk5OTUyLCAwLjg5NzYzMiwgMS41OTI0NywgMS45ODY0OSIsIFwKLSAgICAgICAgICAiMC4xMDY0NjUsIDAuMTI1NzkxLCAwLjMwMjYyNiwgMC41OTkyMjQsIDAuODk3MjA4LCAxLjU5MTgzLCAxLjk4NjAyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlMwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDc1NzMsIDAuMTE4MTI3LCAwLjIxMjk0NCwgMC4zNzA4MjYsIDAuNTI4Njg4LCAwLjg5Njk5NywgMS4xMDc0NSIsIFwKLSAgICAgICAgICAiMC4xMTQ4MjcsIDAuMTI1MzgxLCAwLjIyMDE5OCwgMC4zNzgwNzgsIDAuNTM1OTQsIDAuOTA0Mjk2LCAxLjExNDcxIiwgXAotICAgICAgICAgICIwLjEyMjc3MiwgMC4xMzMzMjMsIDAuMjI4MTQ1LCAwLjM4NjAyNiwgMC41NDM5MiwgMC45MTIyNjYsIDEuMTIyNjgiLCBcCi0gICAgICAgICAgIjAuMTI4NjYzLCAwLjEzOTIxNywgMC4yMzQwMzYsIDAuMzkxOTE4LCAwLjU0OTc3MywgMC45MTgyMDUsIDEuMTI4NTQiLCBcCi0gICAgICAgICAgIjAuMTMzNjA0LCAwLjE0NDE0OSwgMC4yMzg5NjgsIDAuMzk2ODQ3LCAwLjU1NDY0LCAwLjkyMzAyMiwgMS4xMzM0OSIsIFwKLSAgICAgICAgICAiMC4xNDAxNTUsIDAuMTUwNjUxLCAwLjI0NTU0OSwgMC40MDM0MjgsIDAuNTYxMjgzLCAwLjkyOTUzNSwgMS4xNDAyOCIsIFwKLSAgICAgICAgICAiMC4xNDUwOTMsIDAuMTU1NjUsIDAuMjUwNDQzLCAwLjQwODQyNSwgMC41NjYyMDksIDAuOTM0NzQyLCAxLjE0NDk1Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExNzkwOCwgMC4xMzk2OTksIDAuMzM4MTQ3LCAwLjY3MDkzMywgMS4wMDI3NywgMS43Nzk3LCAyLjIyMTIiLCBcCi0gICAgICAgICAgIjAuMTE3OTA5LCAwLjEzOTcwMSwgMC4zMzgxNTksIDAuNjcwOTMyLCAxLjAwMjc0LCAxLjc3OTY4LCAyLjIyMTI2IiwgXAotICAgICAgICAgICIwLjExNzgzOCwgMC4xMzk3MDIsIDAuMzM4MTgyLCAwLjY3MDI1NSwgMS4wMDM1MywgMS43Nzk2NiwgMi4yMjExIiwgXAotICAgICAgICAgICIwLjExNzkxNywgMC4xMzk3MzIsIDAuMzM4MTUsIDAuNjcwODk0LCAxLjAwMjYyLCAxLjc3OTYsIDIuMjIxMTYiLCBcCi0gICAgICAgICAgIjAuMTE3OTMsIDAuMTM5NzQ0LCAwLjMzODE2OSwgMC42NzA4ODYsIDEuMDAyNTUsIDEuNzc3LCAyLjIyMTM0IiwgXAotICAgICAgICAgICIwLjExNzg3MywgMC4xMzk2NzgsIDAuMzM4NTA2LCAwLjY3MDMzMSwgMS4wMDM0NiwgMS43NzgwMiwgMi4yMjEzMiIsIFwKLSAgICAgICAgICAiMC4xMTc5NDgsIDAuMTM5NjM5LCAwLjMzODI5NiwgMC42NzAwMDIsIDEuMDAyNTYsIDEuNzc3ODQsIDIuMjIwOTkiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTA0MzM0LCAwLjExNDAzOCwgMC4yMDA5ODMsIDAuMzQ1NzE2LCAwLjQ5MDQxNywgMC44MjgxMDQsIDEuMDIxMTciLCBcCi0gICAgICAgICAgIjAuMTExNjg4LCAwLjEyMTM5MiwgMC4yMDgzMzgsIDAuMzUzMTM0LCAwLjQ5Nzg2OSwgMC44MzU1NjcsIDEuMDI4NTEiLCBcCi0gICAgICAgICAgIjAuMTE5NjM2LCAwLjEyOTMzOCwgMC4yMTYyOTEsIDAuMzYxMTIsIDAuNTA1ODAyLCAwLjg0MzUxMiwgMS4wMzY0OCIsIFwKLSAgICAgICAgICAiMC4xMjU1MTksIDAuMTM1MjE0LCAwLjIyMjE3NiwgMC4zNjY5NzYsIDAuNTExNjg2LCAwLjg0OTM4OSwgMS4wNDI0NiIsIFwKLSAgICAgICAgICAiMC4xMzA0ODMsIDAuMTQwMTQsIDAuMjI3MTM2LCAwLjM3MTg2NywgMC41MTY1OTksIDAuODU0MzA5LCAxLjA0NzMxIiwgXAotICAgICAgICAgICIwLjEzNjk5NywgMC4xNDY3MDMsIDAuMjMzNjYsIDAuMzc4NDQ0LCAwLjUyMzE5MywgMC44NjA4NzgsIDEuMDUzODQiLCBcCi0gICAgICAgICAgIjAuMTQxODY2LCAwLjE1MTU4MSwgMC4yMzg1MSwgMC4zODMzMjgsIDAuNTI4MTA0LCAwLjg2NTc0OCwgMS4wNTg3MyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDY1NTYsIDAuMTI1OTQyLCAwLjMwMzExMywgMC41OTkyMTEsIDAuODk0OTUxLCAxLjU5MTksIDEuOTgzMDQiLCBcCi0gICAgICAgICAgIjAuMTA2NTU4LCAwLjEyNTk0NCwgMC4zMDMxMDksIDAuNjAwMzY2LCAwLjg5Nzg0NywgMS41OTAxNSwgMS45ODYyMyIsIFwKLSAgICAgICAgICAiMC4xMDY1NDksIDAuMTI1OTEsIDAuMzAzMDA1LCAwLjYwMDM3MiwgMC44OTc3MjYsIDEuNTkwMTUsIDEuOTg2NSIsIFwKLSAgICAgICAgICAiMC4xMDY2MDIsIDAuMTI2MDExLCAwLjMwMzA3MSwgMC42MDAyODcsIDAuODk3NjU2LCAxLjU5LCAxLjk4OTE5IiwgXAotICAgICAgICAgICIwLjEwNjU5OCwgMC4xMjYwMDEsIDAuMzAyNzc1LCAwLjYwMDE2NiwgMC44OTc1OTMsIDEuNTg5OTcsIDEuOTg2MjUiLCBcCi0gICAgICAgICAgIjAuMTA2NTUxLCAwLjEyNTk4LCAwLjMwMzA3NiwgMC41OTk1NSwgMC44OTc2OTgsIDEuNTkwMDksIDEuOTg2MTQiLCBcCi0gICAgICAgICAgIjAuMTA2NjEsIDAuMTI1ODg0LCAwLjMwMzAzMSwgMC42MDAyNTIsIDAuODk3Nzk4LCAxLjU5MTc2LCAxLjk4NjI5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlMxIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODIxNTksIDAuMDkyNzA1LCAwLjE4NzUzNywgMC4zNDU0MjUsIDAuNTAzMjg0LCAwLjg3MTYzNywgMS4wODIxMyIsIFwKLSAgICAgICAgICAiMC4wODk0ODMsIDAuMTAwMDQxLCAwLjE5NDg3NywgMC4zNTI3NzUsIDAuNTEwNjQsIDAuODc4OTQzLCAxLjA4OTQ0IiwgXAotICAgICAgICAgICIwLjA5ODAzNCwgMC4xMDg1OSwgMC4yMDM0MTcsIDAuMzYxMzE1LCAwLjUxOTIxMywgMC44ODc0OTIsIDEuMDk3OTciLCBcCi0gICAgICAgICAgIjAuMTA0ODA1LCAwLjExNTM2NSwgMC4yMTAxODksIDAuMzY4MDkzLCAwLjUyNTkzMywgMC44OTQzNzgsIDEuMTA0NzIiLCBcCi0gICAgICAgICAgIjAuMTEwNDM2LCAwLjEyMDk4MywgMC4yMTU4MTcsIDAuMzczNzQ2LCAwLjUzMTU5NSwgMC44OTk5MzksIDEuMTEwMzUiLCBcCi0gICAgICAgICAgIjAuMTE3OTE1LCAwLjEyODUyLCAwLjIyMzM2NSwgMC4zODEyNzksIDAuNTM5MTM2LCAwLjkwNzQ1LCAxLjExNzk0IiwgXAotICAgICAgICAgICIwLjEyMzU3MSwgMC4xMzQxMTgsIDAuMjI5MDM1LCAwLjM4NjkzNCwgMC41NDQ4MTUsIDAuOTEzMDk1LCAxLjEyMzU4Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExNzg3OCwgMC4xMzk3MzcsIDAuMzM4MjY3LCAwLjY3MDMzNywgMS4wMDM1NywgMS43Nzc5NCwgMi4yMTk0NyIsIFwKLSAgICAgICAgICAiMC4xMTc5NDcsIDAuMTM5NzQ4LCAwLjMzODE4MSwgMC42NzA5NCwgMS4wMDI3OSwgMS43Nzk2NSwgMi4yMjE0NiIsIFwKLSAgICAgICAgICAiMC4xMTgxNjcsIDAuMTM5ODMsIDAuMzM4NTEzLCAwLjY3MDkyNCwgMS4wMDM0OSwgMS43Nzc3NywgMi4yMjEzNyIsIFwKLSAgICAgICAgICAiMC4xMTg1NSwgMC4xNDAzMSwgMC4zMzgzMzQsIDAuNjcwOTE0LCAxLjAwMjU0LCAxLjc3OTUyLCAyLjIyMTIiLCBcCi0gICAgICAgICAgIjAuMTE5MDg3LCAwLjE0MDc1NCwgMC4zMzg3MjYsIDAuNjcwOTA1LCAxLjAwMzQ3LCAxLjc3NjcyLCAyLjIyMTMiLCBcCi0gICAgICAgICAgIjAuMTE5Nzc0LCAwLjE0MTIwNywgMC4zMzgzNTUsIDAuNjcxMDQ3LCAxLjAwMzQ2LCAxLjc3ODA0LCAyLjIyMDk2IiwgXAotICAgICAgICAgICIwLjEyMDY1MywgMC4xNDE5MDksIDAuMzM4NzA1LCAwLjY3MDU0MiwgMS4wMDM1MiwgMS43Nzk1MywgMi4yMjI4Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4MDIxMSwgMC4wODk5MSwgMC4xNzY4NiwgMC4zMjE2NTcsIDAuNDY2MzU4LCAwLjgwNDA2MiwgMC45OTcxIiwgXAotICAgICAgICAgICIwLjA4NzUyNCwgMC4wOTcyMjksIDAuMTg0MjA0LCAwLjMyODk2MSwgMC40NzM3MDIsIDAuODExMzk3LCAxLjAwNDM3IiwgXAotICAgICAgICAgICIwLjA5NTk4NiwgMC4xMDU2ODYsIDAuMTkyNjUzLCAwLjMzNzQ2OSwgMC40ODIxNTgsIDAuODE5ODU5LCAxLjAxMjgyIiwgXAotICAgICAgICAgICIwLjEwMjYxOCwgMC4xMTIzMjgsIDAuMTk5Mjk1LCAwLjM0NDA4NSwgMC40ODg4NjYsIDAuODI2NDkyLCAxLjAxOTQ2IiwgXAotICAgICAgICAgICIwLjEwODExMiwgMC4xMTc4MjQsIDAuMjA0Nzg0LCAwLjM0OTU3NywgMC40OTQzMjIsIDAuODMxOTk2LCAxLjAyNDk2IiwgXAotICAgICAgICAgICIwLjExNTM4NywgMC4xMjUxNzYsIDAuMjEyMjQ0LCAwLjM1NzAyNSwgMC41MDE3ODYsIDAuODM5NDQzLCAxLjAzMjQxIiwgXAotICAgICAgICAgICIwLjEyMDkxMywgMC4xMzA2OTMsIDAuMjE3ODYxLCAwLjM2MjYyMSwgMC41MDc0MiwgMC44NDUxMywgMS4wMzc5OCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDY1MjcsIDAuMTI1OTIsIDAuMzAzMDk3LCAwLjYwMDM1NywgMC44OTc3MDUsIDEuNTg5OTUsIDEuOTg1NDMiLCBcCi0gICAgICAgICAgIjAuMTA2NTY4LCAwLjEyNTkyNCwgMC4zMDMxNjQsIDAuNjAwMjQ2LCAwLjg5NzczMywgMS41OTE4MywgMS45ODYyIiwgXAotICAgICAgICAgICIwLjEwNjc5MSwgMC4xMjYxMywgMC4zMDMxNTQsIDAuNjAwMzI1LCAwLjg5NzcxNSwgMS41OTE3NSwgMS45ODgxMSIsIFwKLSAgICAgICAgICAiMC4xMDczNDYsIDAuMTI2NjI1LCAwLjMwMzI4NywgMC41OTkzNDgsIDAuODk3OTI4LCAxLjU5MTc3LCAxLjk4ODY5IiwgXAotICAgICAgICAgICIwLjEwNzgwNywgMC4xMjcwNzUsIDAuMzAzNDQ3LCAwLjYwMDI3NSwgMC44OTc2OTcsIDEuNTkxNzgsIDEuOTg4MTQiLCBcCi0gICAgICAgICAgIjAuMTA4NTQ5LCAwLjEyNzYxOSwgMC4zMDM3NzIsIDAuNTk5NDE1LCAwLjg5Nzc5MiwgMS41OTE3MywgMS45ODgzNCIsIFwKLSAgICAgICAgICAiMC4xMDkzMDEsIDAuMTI4MzA4LCAwLjMwMzUyMywgMC42MDA1MTIsIDAuODk3ODM3LCAxLjU5MjUyLCAxLjk4ODU5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlMxIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTU3ODEsIDAuMTA2MzM2LCAwLjIwMTE1NywgMC4zNTkwNTgsIDAuNTE2OTExLCAwLjg4NTE4MSwgMS4wOTU3OSIsIFwKLSAgICAgICAgICAiMC4xMDMyMzQsIDAuMTEzNzc3LCAwLjIwODYzMywgMC4zNjY1MjIsIDAuNTI0MzY5LCAwLjg5MjY4NywgMS4xMDMyMiIsIFwKLSAgICAgICAgICAiMC4xMDk3MTYsIDAuMTIwMjY4LCAwLjIxNTA3OSwgMC4zNzI5NzEsIDAuNTMwODQ1LCAwLjg5OTE3NSwgMS4xMDk2OSIsIFwKLSAgICAgICAgICAiMC4xMTQyODQsIDAuMTI0ODM4LCAwLjIxOTY1MywgMC4zNzc1NDEsIDAuNTM1NDA3LCAwLjkwMzY4NSwgMS4xMTQxNiIsIFwKLSAgICAgICAgICAiMC4xMTc5MzksIDAuMTI4NTExLCAwLjIyMzM1NCwgMC4zODEyNjIsIDAuNTM5MTE4LCAwLjkwNzQ4NCwgMS4xMTc5IiwgXAotICAgICAgICAgICIwLjEyMjc3NSwgMC4xMzMzMzgsIDAuMjI4MjMsIDAuMzg2MTUzLCAwLjU0NDA1NSwgMC45MTIyNjUsIDEuMTIyNzkiLCBcCi0gICAgICAgICAgIjAuMTI2MzM0LCAwLjEzNjg5NywgMC4yMzE4MDYsIDAuMzg5NzE5LCAwLjU0NzU5NywgMC45MTU4ODIsIDEuMTI2NCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTc4NTIsIDAuMTM5NjU0LCAwLjMzODE0NywgMC42NzAzNTMsIDEuMDAyNjIsIDEuNzc5NCwgMi4yMjAyNCIsIFwKLSAgICAgICAgICAiMC4xMTc3ODMsIDAuMTM5NjU0LCAwLjMzODUwOCwgMC42NzAwNjcsIDEuMDAyNDIsIDEuNzc3NzEsIDIuMjIzMjYiLCBcCi0gICAgICAgICAgIjAuMTE3ODMyLCAwLjEzOTY2NiwgMC4zMzg0NjYsIDAuNjcwMjczLCAxLjAwMjUzLCAxLjc3NzY5LCAyLjIyMDE3IiwgXAotICAgICAgICAgICIwLjExNzkyMywgMC4xMzk3NTcsIDAuMzM4MTg4LCAwLjY3MDM2MiwgMS4wMDM0MSwgMS43NzkyNiwgMi4yMjEwMiIsIFwKLSAgICAgICAgICAiMC4xMTc5MjgsIDAuMTM5NzAzLCAwLjMzODEwNSwgMC42NzA4MTQsIDEuMDAyNDEsIDEuNzc5NTEsIDIuMjIzIiwgXAotICAgICAgICAgICIwLjExNzkwMiwgMC4xMzk3MDUsIDAuMzM4MTUzLCAwLjY3MDMxLCAxLjAwMzI5LCAxLjc3ODkzLCAyLjIyMjcxIiwgXAotICAgICAgICAgICIwLjExNzk5NiwgMC4xMzk3ODcsIDAuMzM4MDI2LCAwLjY3MDI2NCwgMS4wMDMxNCwgMS43NzgxMiwgMi4yMjI1MSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTM2NDYsIDAuMTAzMzQ0LCAwLjE5MDMyNywgMC4zMzUxNDUsIDAuNDc5ODQ5LCAwLjgxNzU2NiwgMS4wMTA2IiwgXAotICAgICAgICAgICIwLjEwMTIxNCwgMC4xMTA5MjQsIDAuMTk3ODg5LCAwLjM0MjcsIDAuNDg3NDQyLCAwLjgyNTE2MSwgMS4wMTgwOSIsIFwKLSAgICAgICAgICAiMC4xMDc3MzksIDAuMTE3NDUyLCAwLjIwNDQyMSwgMC4zNDkyMjIsIDAuNDkzOTU1LCAwLjgzMTY1NCwgMS4wMjQ2MyIsIFwKLSAgICAgICAgICAiMC4xMTI0NjgsIDAuMTIyMTcxLCAwLjIwOTE2MiwgMC4zNTM5NjIsIDAuNDk4NzA1LCAwLjgzNjM5NSwgMS4wMjkzNSIsIFwKLSAgICAgICAgICAiMC4xMTY0MzcsIDAuMTI2MTczLCAwLjIxMzE5MSwgMC4zNTc5OTQsIDAuNTAyNzI1LCAwLjg0MDUwNCwgMS4wMzM0NCIsIFwKLSAgICAgICAgICAiMC4xMjE2NzUsIDAuMTMxMzg4LCAwLjIxODQ2OSwgMC4zNjMyODksIDAuNTA4MDI3LCAwLjg0NTczNiwgMS4wMzg2OSIsIFwKLSAgICAgICAgICAiMC4xMjU2MSwgMC4xMzUzMjQsIDAuMjIyNDEzLCAwLjM2NzIyNywgMC41MTE5NzUsIDAuODQ5NzAyLCAxLjA0Mjc3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwNjYyOCwgMC4xMjYwNTUsIDAuMzAzMTcsIDAuNjAwNDE0LCAwLjg5Nzc2NiwgMS41OTAxNywgMS45ODkxNSIsIFwKLSAgICAgICAgICAiMC4xMDY2MywgMC4xMjYwMTcsIDAuMzAzMTU3LCAwLjYwMDQsIDAuODk2OTYzLCAxLjU5MjE3LCAxLjk4ODU1IiwgXAotICAgICAgICAgICIwLjEwNjY0MiwgMC4xMjYwMjMsIDAuMzAzMTEsIDAuNTk5Njg0LCAwLjg5Nzc4NCwgMS41OTE4MywgMS45ODYzMSIsIFwKLSAgICAgICAgICAiMC4xMDY3NDEsIDAuMTI2MDk3LCAwLjMwMjg2LCAwLjU5OTIwNywgMC44OTc3MDgsIDEuNTkxNzYsIDEuOTg4MzUiLCBcCi0gICAgICAgICAgIjAuMTA2NjY5LCAwLjEyNjEzNiwgMC4zMDI3ODksIDAuNjAwMDc0LCAwLjg5Njc2OSwgMS41OTIwMSwgMS45ODg2IiwgXAotICAgICAgICAgICIwLjEwNjY0MywgMC4xMjYwMTgsIDAuMzAyODczLCAwLjU5OTUsIDAuODk2ODIzLCAxLjU5MTgsIDEuOTg2MzQiLCBcCi0gICAgICAgICAgIjAuMTA2ODQ2LCAwLjEyNjEwNiwgMC4zMDI2NTksIDAuNTk5NTExLCAwLjg5NzAxLCAxLjU5MTUyLCAxLjk4ODA1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0NDA0LCAwLjAwNDQwNiwgMC4wMDQ0MTEsIDAuMDA0NDEzLCAwLjAwNDQxNCwgMC4wMDQ0MTUsIDAuMDA0NDE1IiwgXAotICAgICAgICAgICIwLjAwNDM4NiwgMC4wMDQzODgsIDAuMDA0Mzk0LCAwLjAwNDM5NiwgMC4wMDQzOTYsIDAuMDA0Mzk3LCAwLjAwNDM5OCIsIFwKLSAgICAgICAgICAiMC4wMDQzOTksIDAuMDA0NDAxLCAwLjAwNDQwNiwgMC4wMDQ0MSwgMC4wMDQ0MSwgMC4wMDQ0MTEsIDAuMDA0NDExIiwgXAotICAgICAgICAgICIwLjAwNDQ0LCAwLjAwNDQ0MSwgMC4wMDQ0NDcsIDAuMDA0NDQ5LCAwLjAwNDQ1LCAwLjAwNDQ1LCAwLjAwNDQ1MSIsIFwKLSAgICAgICAgICAiMC4wMDQ1LCAwLjAwNDUwMSwgMC4wMDQ1MDgsIDAuMDA0NTEsIDAuMDA0NTExLCAwLjAwNDUxMSwgMC4wMDQ1MTEiLCBcCi0gICAgICAgICAgIjAuMDA0NjI2LCAwLjAwNDYyOSwgMC4wMDQ2MzUsIDAuMDA0NjM1LCAwLjAwNDYzNiwgMC4wMDQ2MzgsIDAuMDA0NjM3IiwgXAotICAgICAgICAgICIwLjAwNDc1OCwgMC4wMDQ3NiwgMC4wMDQ3NjUsIDAuMDA0NzY3LCAwLjAwNDc2OCwgMC4wMDQ3NywgMC4wMDQ3NjkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDM4MTQsIDAuMDAzODE2LCAwLjAwMzgyMiwgMC4wMDM4MjUsIDAuMDAzODI1LCAwLjAwMzgyNiwgMC4wMDM4MjYiLCBcCi0gICAgICAgICAgIjAuMDAzNzg4LCAwLjAwMzc4OSwgMC4wMDM3OTYsIDAuMDAzNzk4LCAwLjAwMzc5OSwgMC4wMDM4LCAwLjAwMzgiLCBcCi0gICAgICAgICAgIjAuMDAzODA3LCAwLjAwMzgwOSwgMC4wMDM4MTUsIDAuMDAzODE4LCAwLjAwMzgxOCwgMC4wMDM4MTksIDAuMDAzODE5IiwgXAotICAgICAgICAgICIwLjAwMzg1OCwgMC4wMDM4NTksIDAuMDAzODY2LCAwLjAwMzg2OSwgMC4wMDM4NjksIDAuMDAzODcsIDAuMDAzODciLCBcCi0gICAgICAgICAgIjAuMDAzOTI2LCAwLjAwMzkyOCwgMC4wMDM5MzQsIDAuMDAzOTM3LCAwLjAwMzkzOCwgMC4wMDM5MzksIDAuMDAzOTM5IiwgXAotICAgICAgICAgICIwLjAwNDA2MywgMC4wMDQwNjUsIDAuMDA0MDcyLCAwLjAwNDA3NCwgMC4wMDQwNzUsIDAuMDA0MDc2LCAwLjAwNDA3NiIsIFwKLSAgICAgICAgICAiMC4wMDQyMDEsIDAuMDA0MjAzLCAwLjAwNDIwOSwgMC4wMDQyMTIsIDAuMDA0MjEyLCAwLjAwNDIxMywgMC4wMDQyMTQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQ3MTcsIDAuMDA0NzE4LCAwLjAwNDcyNCwgMC4wMDQ3MjYsIDAuMDA0NzI3LCAwLjAwNDcyOCwgMC4wMDQ3MjgiLCBcCi0gICAgICAgICAgIjAuMDA0NywgMC4wMDQ3MDEsIDAuMDA0NzA3LCAwLjAwNDcwOSwgMC4wMDQ3MSwgMC4wMDQ3MTEsIDAuMDA0NzExIiwgXAotICAgICAgICAgICIwLjAwNDcxNCwgMC4wMDQ3MTUsIDAuMDA0NzIxLCAwLjAwNDcyNCwgMC4wMDQ3MjUsIDAuMDA0NzI2LCAwLjAwNDcyNiIsIFwKLSAgICAgICAgICAiMC4wMDQ3NTMsIDAuMDA0NzU1LCAwLjAwNDc2MSwgMC4wMDQ3NjMsIDAuMDA0NzY0LCAwLjAwNDc2NSwgMC4wMDQ3NjUiLCBcCi0gICAgICAgICAgIjAuMDA0ODEzLCAwLjAwNDgxNCwgMC4wMDQ4MiwgMC4wMDQ4MjIsIDAuMDA0ODI0LCAwLjAwNDgyNCwgMC4wMDQ4MjQiLCBcCi0gICAgICAgICAgIjAuMDA0OTM4LCAwLjAwNDk0LCAwLjAwNDk0NSwgMC4wMDQ5NDcsIDAuMDA0OTQ4LCAwLjAwNDk0OSwgMC4wMDQ5NDkiLCBcCi0gICAgICAgICAgIjAuMDA1MDY4LCAwLjAwNTA2OCwgMC4wMDUwNzQsIDAuMDA1MDc4LCAwLjAwNTA3OCwgMC4wMDUwOCwgMC4wMDUwOCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzU1NiwgMC4wMDM1NTgsIDAuMDAzNTY0LCAwLjAwMzU2NywgMC4wMDM1NjgsIDAuMDAzNTY4LCAwLjAwMzU2OSIsIFwKLSAgICAgICAgICAiMC4wMDM1MjksIDAuMDAzNTMxLCAwLjAwMzUzNywgMC4wMDM1NCwgMC4wMDM1NDEsIDAuMDAzNTQyLCAwLjAwMzU0MiIsIFwKLSAgICAgICAgICAiMC4wMDM1NDQsIDAuMDAzNTQ2LCAwLjAwMzU1MiwgMC4wMDM1NTUsIDAuMDAzNTU2LCAwLjAwMzU1NywgMC4wMDM1NTciLCBcCi0gICAgICAgICAgIjAuMDAzNTkxLCAwLjAwMzU5MiwgMC4wMDM1OTksIDAuMDAzNjAyLCAwLjAwMzYwMywgMC4wMDM2MDMsIDAuMDAzNjA0IiwgXAotICAgICAgICAgICIwLjAwMzY1NiwgMC4wMDM2NTYsIDAuMDAzNjY0LCAwLjAwMzY2NywgMC4wMDM2NjcsIDAuMDAzNjY4LCAwLjAwMzY2OCIsIFwKLSAgICAgICAgICAiMC4wMDM3ODYsIDAuMDAzNzg4LCAwLjAwMzc5NCwgMC4wMDM3OTgsIDAuMDAzNzk5LCAwLjAwMzc5OSwgMC4wMDM4IiwgXAotICAgICAgICAgICIwLjAwMzkyMSwgMC4wMDM5MjEsIDAuMDAzOTI4LCAwLjAwMzkzMiwgMC4wMDM5MzMsIDAuMDAzOTMyLCAwLjAwMzkzMiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzQyNCwgMC4wMDM0MjYsIDAuMDAzNDMyLCAwLjAwMzQzNCwgMC4wMDM0MzUsIDAuMDAzNDM3LCAwLjAwMzQzNyIsIFwKLSAgICAgICAgICAiMC4wMDM0MywgMC4wMDM0MzIsIDAuMDAzNDM4LCAwLjAwMzQ0MSwgMC4wMDM0NDIsIDAuMDAzNDQzLCAwLjAwMzQ0NCIsIFwKLSAgICAgICAgICAiMC4wMDM1MSwgMC4wMDM1MTIsIDAuMDAzNTE3LCAwLjAwMzUyLCAwLjAwMzUyMSwgMC4wMDM1MjEsIDAuMDAzNTIyIiwgXAotICAgICAgICAgICIwLjAwMzYyNywgMC4wMDM2MjcsIDAuMDAzNjMxLCAwLjAwMzYzMywgMC4wMDM2MzQsIDAuMDAzNjM1LCAwLjAwMzYzNCIsIFwKLSAgICAgICAgICAiMC4wMDM3NTIsIDAuMDAzNzUyLCAwLjAwMzc1NSwgMC4wMDM3NTcsIDAuMDAzNzU3LCAwLjAwMzc1OCwgMC4wMDM3NTgiLCBcCi0gICAgICAgICAgIjAuMDAzOTY5LCAwLjAwMzk3LCAwLjAwMzk3MiwgMC4wMDM5NzIsIDAuMDAzOTcxLCAwLjAwMzk3LCAwLjAwMzk3IiwgXAotICAgICAgICAgICIwLjAwNDE3MiwgMC4wMDQxNzMsIDAuMDA0MTczLCAwLjAwNDE3MiwgMC4wMDQxNzEsIDAuMDA0MTcxLCAwLjAwNDE3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzNTIxLCAwLjAwMzUyMywgMC4wMDM1MzEsIDAuMDAzNTMzLCAwLjAwMzUzNCwgMC4wMDM1MzUsIDAuMDAzNTM2IiwgXAotICAgICAgICAgICIwLjAwMzUyNSwgMC4wMDM1MjcsIDAuMDAzNTM1LCAwLjAwMzUzNywgMC4wMDM1MzgsIDAuMDAzNTM5LCAwLjAwMzU0IiwgXAotICAgICAgICAgICIwLjAwMzYxLCAwLjAwMzYxMiwgMC4wMDM2MTgsIDAuMDAzNjIxLCAwLjAwMzYyMiwgMC4wMDM2MjMsIDAuMDAzNjIzIiwgXAotICAgICAgICAgICIwLjAwMzcyNSwgMC4wMDM3MjQsIDAuMDAzNzMsIDAuMDAzNzMzLCAwLjAwMzczNCwgMC4wMDM3MzQsIDAuMDAzNzM1IiwgXAotICAgICAgICAgICIwLjAwMzg2MSwgMC4wMDM4NjMsIDAuMDAzODY5LCAwLjAwMzg3LCAwLjAwMzg3MSwgMC4wMDM4NzIsIDAuMDAzODcyIiwgXAotICAgICAgICAgICIwLjAwNDA4NSwgMC4wMDQwODcsIDAuMDA0MDksIDAuMDA0MDkxLCAwLjAwNDA5MiwgMC4wMDQwOTIsIDAuMDA0MDkyIiwgXAotICAgICAgICAgICIwLjAwNDI5MiwgMC4wMDQyOTMsIDAuMDA0Mjk2LCAwLjAwNDI5NiwgMC4wMDQyOTYsIDAuMDA0Mjk2LCAwLjAwNDI5NiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlMwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQyMiwgMC4wMDQyMjEsIDAuMDA0MjI3LCAwLjAwNDIyOSwgMC4wMDQyMjksIDAuMDA0MjI5LCAwLjAwNDIzMiIsIFwKLSAgICAgICAgICAiMC4wMDQyMywgMC4wMDQyMzEsIDAuMDA0MjM3LCAwLjAwNDIzOSwgMC4wMDQyNCwgMC4wMDQyNCwgMC4wMDQyNDEiLCBcCi0gICAgICAgICAgIjAuMDA0MzA0LCAwLjAwNDMwNSwgMC4wMDQzMTEsIDAuMDA0MzEzLCAwLjAwNDMxNCwgMC4wMDQzMTMsIDAuMDA0MzE0IiwgXAotICAgICAgICAgICIwLjAwNDQyMiwgMC4wMDQ0MjQsIDAuMDA0NDI5LCAwLjAwNDQzMSwgMC4wMDQ0MzIsIDAuMDA0NDMzLCAwLjAwNDQzMyIsIFwKLSAgICAgICAgICAiMC4wMDQ1NDgsIDAuMDA0NTQ5LCAwLjAwNDU1NSwgMC4wMDQ1NTcsIDAuMDA0NTU4LCAwLjAwNDU1OSwgMC4wMDQ1NTgiLCBcCi0gICAgICAgICAgIjAuMDA0ODA3LCAwLjAwNDgwOCwgMC4wMDQ4MTMsIDAuMDA0ODE2LCAwLjAwNDgxNSwgMC4wMDQ4MTYsIDAuMDA0ODE2IiwgXAotICAgICAgICAgICIwLjAwNTAwNCwgMC4wMDUwMDUsIDAuMDA1MDEsIDAuMDA1MDEyLCAwLjAwNTAxMiwgMC4wMDUwMTQsIDAuMDA1MDEzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2MjQ3LCAwLjAwNjI0OSwgMC4wMDYyNTUsIDAuMDA2MjU4LCAwLjAwNjI1OSwgMC4wMDYyNTksIDAuMDA2MjYiLCBcCi0gICAgICAgICAgIjAuMDA2MjUsIDAuMDA2MjUyLCAwLjAwNjI1OCwgMC4wMDYyNjEsIDAuMDA2MjYyLCAwLjAwNjI2MiwgMC4wMDYyNjIiLCBcCi0gICAgICAgICAgIjAuMDA2MzM1LCAwLjAwNjMzNywgMC4wMDYzNDMsIDAuMDA2MzQ1LCAwLjAwNjM0NiwgMC4wMDYzNDcsIDAuMDA2MzQ2IiwgXAotICAgICAgICAgICIwLjAwNjQ0MiwgMC4wMDY0NDQsIDAuMDA2NDUsIDAuMDA2NDUyLCAwLjAwNjQ1MywgMC4wMDY0NTQsIDAuMDA2NDU0IiwgXAotICAgICAgICAgICIwLjAwNjU1OSwgMC4wMDY1NTcsIDAuMDA2NTY4LCAwLjAwNjU3LCAwLjAwNjU3LCAwLjAwNjU3MiwgMC4wMDY1NzEiLCBcCi0gICAgICAgICAgIjAuMDA2ODEzLCAwLjAwNjgxNSwgMC4wMDY4MjEsIDAuMDA2ODIzLCAwLjAwNjgyNCwgMC4wMDY4MjUsIDAuMDA2ODI1IiwgXAotICAgICAgICAgICIwLjAwNzAwOCwgMC4wMDcwMSwgMC4wMDcwMTYsIDAuMDA3MDE5LCAwLjAwNzAxOCwgMC4wMDcwMiwgMC4wMDcwMjEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTMSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0MTg0LCAwLjAwNDE4NiwgMC4wMDQxOTMsIDAuMDA0MTk1LCAwLjAwNDE5NiwgMC4wMDQxOTcsIDAuMDA0MTk3IiwgXAotICAgICAgICAgICIwLjAwNDE4OCwgMC4wMDQxODksIDAuMDA0MTk2LCAwLjAwNDE5OCwgMC4wMDQxOTksIDAuMDA0MiwgMC4wMDQyIiwgXAotICAgICAgICAgICIwLjAwNDI2OCwgMC4wMDQyNywgMC4wMDQyNzYsIDAuMDA0Mjc5LCAwLjAwNDI4LCAwLjAwNDI4LCAwLjAwNDI4MiIsIFwKLSAgICAgICAgICAiMC4wMDQzNjksIDAuMDA0MzcsIDAuMDA0Mzc1LCAwLjAwNDM3OSwgMC4wMDQzNzksIDAuMDA0MzgsIDAuMDA0MzgiLCBcCi0gICAgICAgICAgIjAuMDA0NTI3LCAwLjAwNDUyOSwgMC4wMDQ1MzUsIDAuMDA0NTM2LCAwLjAwNDUzNywgMC4wMDQ1MzksIDAuMDA0NTM5IiwgXAotICAgICAgICAgICIwLjAwNDcwNSwgMC4wMDQ3MDcsIDAuMDA0NzE0LCAwLjAwNDcxNywgMC4wMDQ3MTgsIDAuMDA0NzE5LCAwLjAwNDcxOSIsIFwKLSAgICAgICAgICAiMC4wMDQ5MDMsIDAuMDA0OTA2LCAwLjAwNDkxMSwgMC4wMDQ5MTQsIDAuMDA0OTE2LCAwLjAwNDkxNywgMC4wMDQ5MTgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDMwNjIsIDAuMDAzMDY0LCAwLjAwMzA3MSwgMC4wMDMwNzQsIDAuMDAzMDc1LCAwLjAwMzA3NSwgMC4wMDMwNzYiLCBcCi0gICAgICAgICAgIjAuMDAzMDUzLCAwLjAwMzA1NiwgMC4wMDMwNjMsIDAuMDAzMDY1LCAwLjAwMzA2NiwgMC4wMDMwNjcsIDAuMDAzMDY4IiwgXAotICAgICAgICAgICIwLjAwMzEzMiwgMC4wMDMxMzQsIDAuMDAzMTQyLCAwLjAwMzE0NSwgMC4wMDMxNDYsIDAuMDAzMTQ3LCAwLjAwMzE0NyIsIFwKLSAgICAgICAgICAiMC4wMDMyNDQsIDAuMDAzMjQ1LCAwLjAwMzI1MywgMC4wMDMyNTUsIDAuMDAzMjU2LCAwLjAwMzI1NywgMC4wMDMyNTgiLCBcCi0gICAgICAgICAgIjAuMDAzNDAxLCAwLjAwMzQwMywgMC4wMDM0MSwgMC4wMDM0MTMsIDAuMDAzNDE0LCAwLjAwMzQxNSwgMC4wMDM0MTUiLCBcCi0gICAgICAgICAgIjAuMDAzNjE4LCAwLjAwMzYxOSwgMC4wMDM2MjYsIDAuMDAzNjMsIDAuMDAzNjMsIDAuMDAzNjMxLCAwLjAwMzYzMiIsIFwKLSAgICAgICAgICAiMC4wMDM4MjIsIDAuMDAzODI0LCAwLjAwMzgzMiwgMC4wMDM4MzQsIDAuMDAzODM2LCAwLjAwMzgzNywgMC4wMDM4MjYiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IE1YSTRYNCAqCi0gKiAtLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKE1YSTRYNCkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAxLjEyMjI0OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2NTczNjY7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjU2MDg4OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDY1NzM2NjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDExOTMsIDAuMDAxMTY4LCAwLjAwMTE4LCAwLjAwMTIyLCAwLjAwMTI3NywgMC4wMDEzOTQsIDAuMDAxNTE3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzMjU2LCAwLjAwMzI0LCAwLjAwMzI1LCAwLjAwMzI4MSwgMC4wMDMzMzIsIDAuMDAzNDM3LCAwLjAwMzU1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2NjU4MTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2NjQ2NDE7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjY1ODE7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjg4LCAwLjAwMDI5LCAwLjAwMDI5LCAwLjAwMDI5MSwgMC4wMDAyOTEsIDAuMDAwMjkxLCAwLjAwMDI5MiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDMxMiwgMC4wMDAzMDEsIDAuMDAwMywgMC4wMDAyOTksIDAuMDAwMjk5LCAwLjAwMDI5OCwgMC4wMDAyOTgiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEMpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY5Njg3MjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2OTU3ODQ7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjk2ODcyOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTA1NCwgMC4wMDEwMywgMC4wMDEwNDMsIDAuMDAxMDg2LCAwLjAwMTE0NSwgMC4wMDEyNjYsIDAuMDAxMzkzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzMDQ4LCAwLjAwMzAzMiwgMC4wMDMwNDcsIDAuMDAzMDgzLCAwLjAwMzE0MSwgMC4wMDMyNTYsIDAuMDAzMzc1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihEKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2NDQzMjM7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjQyODk3OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDY0NDMyMzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyODYsIDAuMDAwMjg5LCAwLjAwMDI5LCAwLjAwMDI5LCAwLjAwMDI5MSwgMC4wMDAyOTEsIDAuMDAwMjkxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzE0LCAwLjAwMDMwMiwgMC4wMDAzMDEsIDAuMDAwMywgMC4wMDAyOTksIDAuMDAwMjk5LCAwLjAwMDI5OCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUzApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMjI0NjA2OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMjI0NTY5OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMjI0NjA2OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDQ5NywgMC4wMDA0OTgsIDAuMDAwNTc2LCAwLjAwMDY4NSwgMC4wMDA4MDYsIDAuMDAxMDAzLCAwLjAwMTE5MiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzg5NSwgMC4wMDM4OTYsIDAuMDAzOTU5LCAwLjAwNDA1NiwgMC4wMDQyMTIsIDAuMDA0MzQyLCAwLjAwNDUxNyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUzEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTgyMTAzOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTgyMDk3OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTgyMTAzOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDUyOSwgMC4wMDA1MjksIDAuMDAwNTkxLCAwLjAwMDY4OCwgMC4wMDA4MDEsIDAuMDAxMDEsIDAuMDAxMjA0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzNTQ4LCAwLjAwMzU1MywgMC4wMDM2MjUsIDAuMDAzNzE2LCAwLjAwMzgzMSwgMC4wMDQwMzIsIDAuMDA0MjE3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDEuMzI5NDY7Ci0gICAgZnVuY3Rpb24gOiAiKCEoKFMxICgoUzAgRCkgKyAoIVMwIEMpKSkgKyAoIVMxICgoUzAgQikgKyAoIVMwIEEpKSkpKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTMyNTcsIDAuMTU0MzkxLCAwLjIxMDAzNiwgMC4yNDk2NTIsIDAuMzEyOTkzLCAwLjM2ODM4OCwgMC40NDc2MjkiLCBcCi0gICAgICAgICAgIjAuMDk5MjI5LCAwLjE2MDM3NiwgMC4yMTYwMjYsIDAuMjU1NjQzLCAwLjMxODk4NSwgMC4zNzQzNzEsIDAuNDUzNTYzIiwgXAotICAgICAgICAgICIwLjEwNTczNiwgMC4xNjY4ODksIDAuMjIyNTIsIDAuMjYyMTM3LCAwLjMyNTQ3OSwgMC4zODA4NjUsIDAuNDYwMDQ5IiwgXAotICAgICAgICAgICIwLjExMTM5OSwgMC4xNzI1NDYsIDAuMjI4MTkzLCAwLjI2NzgxMiwgMC4zMzExNTUsIDAuMzg2NTQxLCAwLjQ2NTc5OCIsIFwKLSAgICAgICAgICAiMC4xMTU5MjYsIDAuMTc3MDYzLCAwLjIzMjY5MiwgMC4yNzIzMDUsIDAuMzM1NjUxLCAwLjM5MTAzNSwgMC40NzAyMTIiLCBcCi0gICAgICAgICAgIjAuMTIyMjkxLCAwLjE4MzQ0NSwgMC4yMzkwNzksIDAuMjc4NjgzLCAwLjM0MjAyMSwgMC4zOTc0MjcsIDAuNDc2NjA0IiwgXAotICAgICAgICAgICIwLjEyNzA0MSwgMC4xODgyMDgsIDAuMjQzODU3LCAwLjI4MzQ1OSwgMC4zNDY4MTksIDAuNDAyMjU0LCAwLjQ4MTM0MSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzNDExNCwgMC4xNDY0NzEsIDAuMjYyMjYxLCAwLjM0NjE5NCwgMC40ODA4NzYsIDAuNTk4Mjc4LCAwLjc2NjcyMSIsIFwKLSAgICAgICAgICAiMC4wMzQxMjcsIDAuMTQ2NDY4LCAwLjI2MjI1NywgMC4zNDYxOSwgMC40ODA4NjksIDAuNTk4ODMzLCAwLjc2NjM5MyIsIFwKLSAgICAgICAgICAiMC4wMzQxMzEsIDAuMTQ2NDU1LCAwLjI2MjI1NCwgMC4zNDYxODEsIDAuNDgwODYsIDAuNTk4ODcxLCAwLjc2Njg1MiIsIFwKLSAgICAgICAgICAiMC4wMzQxMTMsIDAuMTQ2NDYzLCAwLjI2MjI1OCwgMC4zNDYxODQsIDAuNDgwODcsIDAuNTk4ODMxLCAwLjc2NjcxOSIsIFwKLSAgICAgICAgICAiMC4wMzQxMDIsIDAuMTQ2NDgyLCAwLjI2MjI2NSwgMC4zNDYxODMsIDAuNDgwODU4LCAwLjU5ODg3MywgMC43NjY4NDUiLCBcCi0gICAgICAgICAgIjAuMDM0MjQyLCAwLjE0NjQ5NSwgMC4yNjIyMDQsIDAuMzQ2MTMsIDAuNDgwNzk3LCAwLjU5ODMzNiwgMC43NjY4MDciLCBcCi0gICAgICAgICAgIjAuMDM0MzE3LCAwLjE0NjQyNCwgMC4yNjIzMDIsIDAuMzQ1OTM3LCAwLjQ4MDgwMiwgMC41OTg4MywgMC43NjcxNjEiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTM4MzUsIDAuMTU0NTMzLCAwLjIwODg0NCwgMC4yNDc0MTYsIDAuMzA5MDk4LCAwLjM2MzA0MiwgMC40NDAxMTEiLCBcCi0gICAgICAgICAgIjAuMTAwMDM5LCAwLjE2MDYzNywgMC4yMTQ5MzEsIDAuMjUzNTIsIDAuMzE1MjA5LCAwLjM2OTE1MSwgMC40NDYyMDYiLCBcCi0gICAgICAgICAgIjAuMTA3MTg2LCAwLjE2NzgsIDAuMjIyMTQzLCAwLjI2MDcyNCwgMC4zMjI0MTMsIDAuMzc2MzYsIDAuNDUzNDM0IiwgXAotICAgICAgICAgICIwLjExMzM3MywgMC4xNzM5NywgMC4yMjgzMDUsIDAuMjY2ODg2LCAwLjMyODU3NSwgMC4zODI1NTEsIDAuNDU5NTgxIiwgXAotICAgICAgICAgICIwLjExODUyNSwgMC4xNzkwOTksIDAuMjMzMzk0LCAwLjI3MTk5MSwgMC4zMzM2NjYsIDAuMzg3NjE4LCAwLjQ2NDY3NyIsIFwKLSAgICAgICAgICAiMC4xMjU2MTIsIDAuMTg2MjU5LCAwLjI0MDU4MSwgMC4yNzkxNiwgMC4zNDA4NDEsIDAuMzk0Nzg3LCAwLjQ3MTg1MyIsIFwKLSAgICAgICAgICAiMC4xMzA5OTEsIDAuMTkxNjM5LCAwLjI0NTk2NywgMC4yODQ1NTUsIDAuMzQ2MjE2LCAwLjQwMDIsIDAuNDc3MjM1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDMzODg5LCAwLjE0MDU1NCwgMC4yNTAwNzIsIDAuMzI5NDYxLCAwLjQ1Njk0MywgMC41Njg4MiwgMC43MjgxODMiLCBcCi0gICAgICAgICAgIjAuMDMzODc3LCAwLjE0MDUzOSwgMC4yNTAwMjksIDAuMzI5NDY2LCAwLjQ1Njk1LCAwLjU2ODgxOSwgMC43Mjg2OTUiLCBcCi0gICAgICAgICAgIjAuMDMzODkzLCAwLjE0MDU1MiwgMC4yNTAwNDQsIDAuMzI5NDYzLCAwLjQ1Njk2MywgMC41NjgxMTcsIDAuNzI4OTY1IiwgXAotICAgICAgICAgICIwLjAzMzg4NywgMC4xNDA1MzUsIDAuMjUwMDE2LCAwLjMyOTQ0NiwgMC40NTY5NSwgMC41Njg5MDMsIDAuNzI4MDQ0IiwgXAotICAgICAgICAgICIwLjAzMzkyMywgMC4xNDA1ODcsIDAuMjUwMDUsIDAuMzI5NDQzLCAwLjQ1Njg5OSwgMC41Njg4MTQsIDAuNzI4MDQ1IiwgXAotICAgICAgICAgICIwLjAzNDEyNCwgMC4xNDA1NTcsIDAuMjQ5ODY5LCAwLjMyOTE3NCwgMC40NTY4NjMsIDAuNTY4OCwgMC43MjgwNjgiLCBcCi0gICAgICAgICAgIjAuMDM0LCAwLjE0MDUyNywgMC4yNTAwNTcsIDAuMzI5MDczLCAwLjQ1Njc5LCAwLjU2ODAwMSwgMC43Mjg5MyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5Mzg0NCwgMC4xNTQ5ODksIDAuMjEwNjM2LCAwLjI1MDI1MywgMC4zMTM1OTQsIDAuMzY4OTg3LCAwLjQ0ODIzNCIsIFwKLSAgICAgICAgICAiMC4wOTk3MDgsIDAuMTYwODM2LCAwLjIxNjQ2NiwgMC4yNTYwNzcsIDAuMzE5NDIxLCAwLjM3NDgwNiwgMC40NTM5ODciLCBcCi0gICAgICAgICAgIjAuMTA2MTY0LCAwLjE2NzI2OSwgMC4yMjI4OTEsIDAuMjYyNSwgMC4zMjU4NDYsIDAuMzgxMjQyLCAwLjQ2MDM3MyIsIFwKLSAgICAgICAgICAiMC4xMTE4MDEsIDAuMTcyOTE0LCAwLjIyODU0MiwgMC4yNjgxNjYsIDAuMzMxNTE3LCAwLjM4Njg5NiwgMC40NjYwMjQiLCBcCi0gICAgICAgICAgIjAuMTE2MzgyLCAwLjE3NzQ2NSwgMC4yMzMxMDEsIDAuMjcyNzE5LCAwLjMzNjA2NSwgMC4zOTE0NDksIDAuNDcwNjM0IiwgXAotICAgICAgICAgICIwLjEyMjcyMiwgMC4xODM4MzcsIDAuMjM5NDc0LCAwLjI3OTA4MiwgMC4zNDI0MywgMC4zOTc4NCwgMC40NzY5NjIiLCBcCi0gICAgICAgICAgIjAuMTI3NTA4LCAwLjE4ODY2NCwgMC4yNDQzMjIsIDAuMjgzOTE2LCAwLjM0NzI3OSwgMC40MDI2NDksIDAuNDgxNzk3Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM0MDkxLCAwLjE0NjQ3NSwgMC4yNjIyNjIsIDAuMzQ2MTk5LCAwLjQ4MDg3LCAwLjU5ODgzOSwgMC43NjY3MzQiLCBcCi0gICAgICAgICAgIjAuMDM0MjEsIDAuMTQ2NDM1LCAwLjI2MjMyNSwgMC4zNDYxNzksIDAuNDgwODUyLCAwLjU5ODg4MSwgMC43NjY4NTQiLCBcCi0gICAgICAgICAgIjAuMDM0MTkyLCAwLjE0NjM3OSwgMC4yNjIyNjksIDAuMzQ1OTY2LCAwLjQ4MDMxLCAwLjU5ODI4MiwgMC43Njc3MzkiLCBcCi0gICAgICAgICAgIjAuMDM0MTQzLCAwLjE0NjQyNCwgMC4yNjIyNjcsIDAuMzQ2MTY1LCAwLjQ4MDg2MSwgMC41OTg5MDMsIDAuNzY3NzIiLCBcCi0gICAgICAgICAgIjAuMDM0MTY5LCAwLjE0NjQyNywgMC4yNjIyNzUsIDAuMzQ2MTgyLCAwLjQ4MDg2NSwgMC41OTg4NTQsIDAuNzY2ODcxIiwgXAotICAgICAgICAgICIwLjAzNDI1OCwgMC4xNDY0OTMsIDAuMjYyMjYzLCAwLjM0NjEyNCwgMC40ODA4NjIsIDAuNTk4ODY1LCAwLjc2NzE0NSIsIFwKLSAgICAgICAgICAiMC4wMzQyNDEsIDAuMTQ2NDk4LCAwLjI2MjE3NywgMC4zNDYxMzgsIDAuNDgwNzk2LCAwLjU5ODI1OSwgMC43NjcxMDgiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTM3MzcsIDAuMTU0MzUxLCAwLjIwODY4LCAwLjI0NzI1MiwgMC4zMDg5MzcsIDAuMzYyODk4LCAwLjQzOTk1MyIsIFwKLSAgICAgICAgICAiMC4wOTk5NjUsIDAuMTYwNTc4LCAwLjIxNDk4NCwgMC4yNTM1NjMsIDAuMzE1MjUzLCAwLjM2OTE4LCAwLjQ0NjI2NSIsIFwKLSAgICAgICAgICAiMC4xMDcyNiwgMC4xNjc5NCwgMC4yMjIyNTEsIDAuMjYwODI4LCAwLjMyMjUxNCwgMC4zNzY0NTgsIDAuNDUzNTIyIiwgXAotICAgICAgICAgICIwLjExMzQ1MSwgMC4xNzQxMTUsIDAuMjI4MzkzLCAwLjI2Njk4OCwgMC4zMjg2NzksIDAuMzgyNjIxLCAwLjQ1OTY4IiwgXAotICAgICAgICAgICIwLjExODY0OSwgMC4xNzkyMTcsIDAuMjMzNTQ2LCAwLjI3MjEyNSwgMC4zMzM4MTQsIDAuMzg3NzY0LCAwLjQ2NDgzOSIsIFwKLSAgICAgICAgICAiMC4xMjU3MjEsIDAuMTg2Mjg5LCAwLjI0MDYxMiwgMC4yNzkyMTksIDAuMzQwODg3LCAwLjM5NDgzMiwgMC40NzE4OTQiLCBcCi0gICAgICAgICAgIjAuMTMxMDYsIDAuMTkxNzA0LCAwLjI0NjA3NCwgMC4yODQ2NTIsIDAuMzQ2MzE0LCAwLjQwMDI3NSwgMC40NzczMzMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzM4OTksIDAuMTQwNTM0LCAwLjI0OTkyOSwgMC4zMjk0MzIsIDAuNDU2OTY2LCAwLjU2ODgzNCwgMC43Mjg5NjUiLCBcCi0gICAgICAgICAgIjAuMDMzODI2LCAwLjE0MDMwMSwgMC4yNDk3MzUsIDAuMzI5NDYyLCAwLjQ1Njk1OCwgMC41Njg3ODksIDAuNzI4OTYxIiwgXAotICAgICAgICAgICIwLjAzMzg4MywgMC4xNDA1NTgsIDAuMjQ5OTgxLCAwLjMyOTQ0NiwgMC40NTY5MzgsIDAuNTY4ODEzLCAwLjcyODExMiIsIFwKLSAgICAgICAgICAiMC4wMzM4MiwgMC4xNDA1MjMsIDAuMjQ5OTcsIDAuMzI5NDQ3LCAwLjQ1Njk0MiwgMC41Njg4MTMsIDAuNzI4MDA2IiwgXAotICAgICAgICAgICIwLjAzMzgxMywgMC4xNDA1NTksIDAuMjUwMDQ5LCAwLjMyOTQ1NCwgMC40NTY5NDcsIDAuNTY4MjI2LCAwLjcyODk2MyIsIFwKLSAgICAgICAgICAiMC4wMzQwMzQsIDAuMTQwNTgzLCAwLjI1MDExNywgMC4zMjk1NzEsIDAuNDU2NDg2LCAwLjU2ODgxMywgMC43MjgwMSIsIFwKLSAgICAgICAgICAiMC4wMzM5NzYsIDAuMTQwNTczLCAwLjI1MDA3MiwgMC4zMjkwNCwgMC40NTY3OTUsIDAuNTY4MTYsIDAuNzI4NzQyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDkxMTU0LCAwLjE1MjIwMSwgMC4yMDc4MzksIDAuMjQ3NDUzLCAwLjMxMDc5MiwgMC4zNjYxNzcsIDAuNDQ1NDM4IiwgXAotICAgICAgICAgICIwLjA5Njk0MywgMC4xNTc5ODgsIDAuMjEzNjIzLCAwLjI1MzIzNywgMC4zMTY1NzcsIDAuMzcxOTY3LCAwLjQ1MTIxMyIsIFwKLSAgICAgICAgICAiMC4xMDMzMzcsIDAuMTY0NDIsIDAuMjIwMDYxLCAwLjI1OTY3NCwgMC4zMjMwMTQsIDAuMzc4Mzk4LCAwLjQ1NzY2IiwgXAotICAgICAgICAgICIwLjEwODgxOCwgMC4xNjk4NjcsIDAuMjI1NSwgMC4yNjUxMTYsIDAuMzI4NDU2LCAwLjM4Mzg0LCAwLjQ2MzAzNyIsIFwKLSAgICAgICAgICAiMC4xMTMyNCwgMC4xNzQzMiwgMC4yMjk5MywgMC4yNjk1NDksIDAuMzMyODk0LCAwLjM4ODI3NywgMC40Njc0NjEiLCBcCi0gICAgICAgICAgIjAuMTE5MzYxLCAwLjE4MDQxOCwgMC4yMzYwNTYsIDAuMjc1NjYsIDAuMzM5MDI3LCAwLjM5NDQxMSwgMC40NzM1NDEiLCBcCi0gICAgICAgICAgIjAuMTIzOTM0LCAwLjE4NTA2LCAwLjI0MDY3NiwgMC4yODAzMTksIDAuMzQzNjI4LCAwLjM5OTAyMSwgMC40NzgxNiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzNDE1NSwgMC4xNDY0NzUsIDAuMjYyMjYzLCAwLjM0NjE5MiwgMC40ODA5MTMsIDAuNTk4ODQzLCAwLjc2Njc0MSIsIFwKLSAgICAgICAgICAiMC4wMzQxNTIsIDAuMTQ2NDc3LCAwLjI2MjI2MywgMC4zNDYxOTksIDAuNDgwOTEyLCAwLjU5ODI3NCwgMC43NjY0IiwgXAotICAgICAgICAgICIwLjAzNDExMSwgMC4xNDY0NzUsIDAuMjYyMjYyLCAwLjM0NjE5LCAwLjQ4MDkwNiwgMC41OTg4NDksIDAuNzY2NzI1IiwgXAotICAgICAgICAgICIwLjAzNDEwNCwgMC4xNDY0NjUsIDAuMjYyMjYxLCAwLjM0NjE3OSwgMC40ODA5MDQsIDAuNTk4ODU2LCAwLjc2Njc4OCIsIFwKLSAgICAgICAgICAiMC4wMzQwODksIDAuMTQ2NDQ2LCAwLjI2MjI2MywgMC4zNDYxOTUsIDAuNDgwODg5LCAwLjU5ODg4NSwgMC43NjY5MTMiLCBcCi0gICAgICAgICAgIjAuMDM0MTcsIDAuMTQ2NTAzLCAwLjI2MjI3NywgMC4zNDU3NTYsIDAuNDgwODY3LCAwLjU5ODkwMSwgMC43NjcxMzgiLCBcCi0gICAgICAgICAgIjAuMDM0MjUsIDAuMTQ2NDg2LCAwLjI2MjI4LCAwLjM0NjE1OSwgMC40ODA4MzEsIDAuNTk4MzQ2LCAwLjc2NzY0NiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5MjY2LCAwLjE1MzM0NiwgMC4yMDc3NTgsIDAuMjQ2MzM4LCAwLjMwODAyNCwgMC4zNjE5ODIsIDAuNDM5MDYyIiwgXAotICAgICAgICAgICIwLjA5ODg3OSwgMC4xNTk1NDcsIDAuMjEzODQ4LCAwLjI1MjQzOCwgMC4zMTQxMjgsIDAuMzY4MDcxLCAwLjQ0NTEyNiIsIFwKLSAgICAgICAgICAiMC4xMDU4NjYsIDAuMTY2NjI2LCAwLjIyMDk1MSwgMC4yNTk1MjEsIDAuMzIxMjA3LCAwLjM3NTE1MiwgMC40NTIyMTYiLCBcCi0gICAgICAgICAgIjAuMTExNzk0LCAwLjE3MjQ4MiwgMC4yMjY4MTgsIDAuMjY1NCwgMC4zMjcwODksIDAuMzgxMDM1LCAwLjQ1ODA5NCIsIFwKLSAgICAgICAgICAiMC4xMTY3MzUsIDAuMTc3Mzg5LCAwLjIzMTcxMywgMC4yNzAyOTcsIDAuMzMxOTg2LCAwLjM4NTkzLCAwLjQ2Mjk5IiwgXAotICAgICAgICAgICIwLjEyMzQ1NywgMC4xODQxODEsIDAuMjM4NDU1LCAwLjI3NzEwMywgMC4zMzg3ODQsIDAuMzkyNzI5LCAwLjQ2OTc5NSIsIFwKLSAgICAgICAgICAiMC4xMjg2MTQsIDAuMTg5MzI4LCAwLjI0MzY4LCAwLjI4MjI1OSwgMC4zNDM5MDUsIDAuMzk3ODQ4LCAwLjQ3NDkzOCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzMzk5NywgMC4xNDA2OTksIDAuMjQ5NzUyLCAwLjMyOTYwOCwgMC40NTcwNiwgMC41Njc2NDYsIDAuNzI5MTUzIiwgXAotICAgICAgICAgICIwLjAzNDA0NSwgMC4xNDA3MSwgMC4yNTAxMDIsIDAuMzI5NTc2LCAwLjQ1NzA0LCAwLjU2ODg5NSwgMC43Mjg3OCIsIFwKLSAgICAgICAgICAiMC4wMzQwNDMsIDAuMTQwNzIxLCAwLjI1MDIyNywgMC4zMjk1MjMsIDAuNDU3MDI5LCAwLjU2ODg4NSwgMC43MjgxMjgiLCBcCi0gICAgICAgICAgIjAuMDMzOTYyLCAwLjE0MDcwMywgMC4yNTAxNTEsIDAuMzI5NTU1LCAwLjQ1NzAzLCAwLjU2ODg4MiwgMC43MjgwNzIiLCBcCi0gICAgICAgICAgIjAuMDMzOTMxLCAwLjE0MDc1MSwgMC4yNTAxMDcsIDAuMzI5NTYzLCAwLjQ1NzAzOSwgMC41Njg4ODQsIDAuNzI4ODU2IiwgXAotICAgICAgICAgICIwLjAzNDE1NiwgMC4xNDA3NTIsIDAuMjUwMDI5LCAwLjMyOTUzOSwgMC40NTY5NTMsIDAuNTY4Nzg3LCAwLjcyODEwMSIsIFwKLSAgICAgICAgICAiMC4wMzQxMDEsIDAuMTQwNzc2LCAwLjI1MDEyNywgMC4zMjk1NjksIDAuNDU2OTM4LCAwLjU2ODc2NywgMC43Mjc5MTIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTIzMSwgMC4xNTMzNzcsIDAuMjA5MDA5LCAwLjI0ODYyMywgMC4zMTE5NjIsIDAuMzY3MzQ3LCAwLjQ0NjU0NSIsIFwKLSAgICAgICAgICAiMC4wOTgyNTcsIDAuMTU5MywgMC4yMTQ5MTksIDAuMjU0NTMxLCAwLjMxNzkwOCwgMC4zNzMzMjEsIDAuNDUyNDUyIiwgXAotICAgICAgICAgICIwLjEwNDYyMiwgMC4xNjU2NzMsIDAuMjIxMjgxLCAwLjI2MDkwMiwgMC4zMjQyNDMsIDAuMzc5NjI4LCAwLjQ1ODgxMyIsIFwKLSAgICAgICAgICAiMC4xMTAwNDIsIDAuMTcxMTU2LCAwLjIyNjc4MSwgMC4yNjYzOTEsIDAuMzI5NzMyLCAwLjM4NTExOCwgMC40NjQzMTQiLCBcCi0gICAgICAgICAgIjAuMTE0NDc5LCAwLjE3NTUyNCwgMC4yMzExNDksIDAuMjcwNzY0LCAwLjMzNDEwNywgMC4zODk0OTEsIDAuNDY4Njg0IiwgXAotICAgICAgICAgICIwLjEyMDU5MSwgMC4xODE2NSwgMC4yMzcyODUsIDAuMjc2ODg1LCAwLjM0MDI0OSwgMC4zOTU2NDcsIDAuNDc0NzY1IiwgXAotICAgICAgICAgICIwLjEyNTEzMiwgMC4xODYyNTcsIDAuMjQxODg4LCAwLjI4MTUxMywgMC4zNDQ4MzQsIDAuNDAwMjU5LCAwLjQ3OTM0NSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzNDE3MiwgMC4xNDY0NzUsIDAuMjYyMjYyLCAwLjM0NjE5NSwgMC40ODA5MDEsIDAuNTk4ODY4LCAwLjc2Njc2MyIsIFwKLSAgICAgICAgICAiMC4wMzQxNTUsIDAuMTQ2Mzk0LCAwLjI2MjI2OCwgMC4zNDYxODksIDAuNDgwODk1LCAwLjU5ODg2NiwgMC43NjcxOTciLCBcCi0gICAgICAgICAgIjAuMDM0MjMyLCAwLjE0NjQzNiwgMC4yNjIxMTEsIDAuMzQ2MTgyLCAwLjQ4MDg4OSwgMC41OTg4OTUsIDAuNzY2ODg1IiwgXAotICAgICAgICAgICIwLjAzNDA5MiwgMC4xNDYzODMsIDAuMjYyMzE4LCAwLjM0NjE4NSwgMC40ODA4OTQsIDAuNTk4ODcyLCAwLjc2NjQyNyIsIFwKLSAgICAgICAgICAiMC4wMzQxNzksIDAuMTQ2NTEzLCAwLjI2MjI4LCAwLjM0NjE5NCwgMC40ODA4OTksIDAuNTk4ODU1LCAwLjc2NjgwMSIsIFwKLSAgICAgICAgICAiMC4wMzQyMTUsIDAuMTQ2NTE0LCAwLjI2MjI0NywgMC4zNDU5OTYsIDAuNDgwODgsIDAuNTk4ODk4LCAwLjc2NzE0NyIsIFwKLSAgICAgICAgICAiMC4wMzQyNjQsIDAuMTQ2NDYzLCAwLjI2MjI5NywgMC4zNDYxNTcsIDAuNDgwMjQzLCAwLjU5ODIsIDAuNzY3NjU1Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDkzMjkzLCAwLjE1Mzk3NywgMC4yMDgyOTcsIDAuMjQ2ODkyLCAwLjMwODU3MSwgMC4zNjI1MzQsIDAuNDM5NjA2IiwgXAotICAgICAgICAgICIwLjA5OTU4LCAwLjE2MDI0OSwgMC4yMTQ1NTMsIDAuMjUzMTM2LCAwLjMxNDgyNywgMC4zNjg3NzEsIDAuNDQ1ODI2IiwgXAotICAgICAgICAgICIwLjEwNjY3OCwgMC4xNjczODcsIDAuMjIxNzEzLCAwLjI2MDMwNCwgMC4zMjE5NywgMC4zNzU5MjksIDAuNDUyOTk3IiwgXAotICAgICAgICAgICIwLjExMjczMiwgMC4xNzM0MjcsIDAuMjI3NzY5LCAwLjI2NjM1MSwgMC4zMjgwNDEsIDAuMzgyLCAwLjQ1OTA1OSIsIFwKLSAgICAgICAgICAiMC4xMTc3NjYsIDAuMTc4NDMxLCAwLjIzMjczNSwgMC4yNzEzMzIsIDAuMzMzMDIxLCAwLjM4Njk2NCwgMC40NjQwMjEiLCBcCi0gICAgICAgICAgIjAuMTI0NzA4LCAwLjE4NTM5NiwgMC4yMzk3MSwgMC4yNzgzMDcsIDAuMzM5OTksIDAuMzkzOTM1LCAwLjQ3MTAwMSIsIFwKLSAgICAgICAgICAiMC4xMjk5MjMsIDAuMTkwNiwgMC4yNDQ5OTQsIDAuMjgzNTc1LCAwLjM0NTIzMywgMC4zOTkxOCwgMC40NzYyNjIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzM5ODksIDAuMTQwNzAxLCAwLjI1MDE3OSwgMC4zMjk1NjQsIDAuNDU2OTczLCAwLjU2ODkyOCwgMC43MjgxNjIiLCBcCi0gICAgICAgICAgIjAuMDM0MDUxLCAwLjE0MDcxOSwgMC4yNTAxNjEsIDAuMzI5NTc5LCAwLjQ1NzA0MywgMC41Njg4OTksIDAuNzI4Nzc5IiwgXAotICAgICAgICAgICIwLjAzNDAyMSwgMC4xNDA2NDYsIDAuMjUwMTg5LCAwLjMyOTU0NSwgMC40NTY5MTUsIDAuNTY4ODUyLCAwLjcyODk3NyIsIFwKLSAgICAgICAgICAiMC4wMzQwMDQsIDAuMTQwNzA1LCAwLjI1MDE1OCwgMC4zMjk1NjEsIDAuNDU3MDQ3LCAwLjU2ODAyLCAwLjcyOTAxNyIsIFwKLSAgICAgICAgICAiMC4wMzQwNTYsIDAuMTQwNzY4LCAwLjI1MDIyMSwgMC4zMjk1NjMsIDAuNDU3MDQzLCAwLjU2ODg4OCwgMC43Mjg4NTIiLCBcCi0gICAgICAgICAgIjAuMDM0MjYyLCAwLjE0MDY4OCwgMC4yNTAzOTYsIDAuMzI5Mjk2LCAwLjQ1Njk1NywgMC41Njg3ODksIDAuNzI4MSIsIFwKLSAgICAgICAgICAiMC4wMzQwODksIDAuMTQwNzQ4LCAwLjI1MDEyOCwgMC4zMjk2MjIsIDAuNDU2NTQsIDAuNTY4NzM5LCAwLjcyOTAxNCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDU2NTEsIDAuMTY2ODAxLCAwLjIyMjQ0NSwgMC4yNjIwNTQsIDAuMzI1Mzk0LCAwLjM4MDc5NCwgMC40NjAwMjQiLCBcCi0gICAgICAgICAgIjAuMTEzNjY5LCAwLjE3NDgxNywgMC4yMzA0NywgMC4yNzAwNzksIDAuMzMzNDE5LCAwLjM4ODgyNSwgMC40NjgwMzciLCBcCi0gICAgICAgICAgIjAuMTIxNjg3LCAwLjE4Mjg3MSwgMC4yMzg0OTQsIDAuMjc4MTA3LCAwLjM0MTQ0OCwgMC4zOTY4MzYsIDAuNDc2MDMyIiwgXAotICAgICAgICAgICIwLjEyNzY1NSwgMC4xODg3OTIsIDAuMjQ0NDIsIDAuMjg0MDIzLCAwLjM0NzM2NCwgMC40MDI3NiwgMC40ODIwMDIiLCBcCi0gICAgICAgICAgIjAuMTMyNDk4LCAwLjE5MzY0MiwgMC4yNDkyNzQsIDAuMjg4ODgxLCAwLjM1MjIyMywgMC40MDc2MjIsIDAuNDg2ODUxIiwgXAotICAgICAgICAgICIwLjEzODczNywgMC4xOTk4ODYsIDAuMjU1NTE4LCAwLjI5NTEyOSwgMC4zNTg0NjgsIDAuNDEzODY5LCAwLjQ5MzEwOSIsIFwKLSAgICAgICAgICAiMC4xNDM1OTEsIDAuMjA0NzIsIDAuMjYwMzUxLCAwLjI5OTk3MSwgMC4zNjMyOTgsIDAuNDE4NywgMC40OTc4MiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzNDE3OCwgMC4xNDY0ODIsIDAuMjYyMzQ4LCAwLjM0NjIyLCAwLjQ4MDkxOCwgMC41OTg4NzcsIDAuNzY2ODYiLCBcCi0gICAgICAgICAgIjAuMDM0MTQzLCAwLjE0NjQ4MiwgMC4yNjIzMzYsIDAuMzQ2MjEzLCAwLjQ4MDkxNywgMC41OTkwMDQsIDAuNzY2ODYyIiwgXAotICAgICAgICAgICIwLjAzNDIxOCwgMC4xNDY0ODYsIDAuMjYyMzIxLCAwLjM0NjIxNiwgMC40ODA5MTUsIDAuNTk5MDA1LCAwLjc2Njg1IiwgXAotICAgICAgICAgICIwLjAzNDIyOSwgMC4xNDY0ODcsIDAuMjYyMzI3LCAwLjM0NjIwNywgMC40ODA5MTUsIDAuNTk4OTQxLCAwLjc2NzcyNCIsIFwKLSAgICAgICAgICAiMC4wMzQwOTUsIDAuMTQ2NDUsIDAuMjYyMzIyLCAwLjM0NjE5MiwgMC40ODA4ODksIDAuNTk4OTk3LCAwLjc2Nzc2MyIsIFwKLSAgICAgICAgICAiMC4wMzQwOTUsIDAuMTQ2NTExLCAwLjI2MjI5MSwgMC4zNDYyMjIsIDAuNDgwODM5LCAwLjU5ODc5NSwgMC43NjY4OCIsIFwKLSAgICAgICAgICAiMC4wMzQxNzYsIDAuMTQ2NDkyLCAwLjI2MjI4OSwgMC4zNDYwODksIDAuNDgwNjQ2LCAwLjU5ODcxMSwgMC43Njc0NSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwODY3LCAwLjE2OTI5OCwgMC4yMjM2MjYsIDAuMjYyMTk4LCAwLjMyMzg3NywgMC4zNzc4NDIsIDAuNDU0ODkxIiwgXAotICAgICAgICAgICIwLjExNjU0OSwgMC4xNzcxNzMsIDAuMjMxNDk3LCAwLjI3MDA3MiwgMC4zMzE3NTMsIDAuMzg1NzQsIDAuNDYyNzgxIiwgXAotICAgICAgICAgICIwLjEyNDQ4OSwgMC4xODUwNjMsIDAuMjM5NDQzLCAwLjI3ODA0MywgMC4zMzk3MzIsIDAuMzkzNjc4LCAwLjQ3MDc0NSIsIFwKLSAgICAgICAgICAiMC4xMzAyMDcsIDAuMTkwODU2LCAwLjI0NTE1LCAwLjI4Mzc0NCwgMC4zNDU0NDUsIDAuMzk5MzcsIDAuNDc2NDMxIiwgXAotICAgICAgICAgICIwLjEzNDc0NywgMC4xOTUzNjUsIDAuMjQ5Njg1LCAwLjI4ODI2MiwgMC4zNDk5NDYsIDAuNDAzODksIDAuNDgwOTU1IiwgXAotICAgICAgICAgICIwLjE0MDg4NCwgMC4yMDE0NzUsIDAuMjU1Nzc0LCAwLjI5NDM3MSwgMC4zNTYwMzIsIDAuNDA5OTg4LCAwLjQ4NzA0NyIsIFwKLSAgICAgICAgICAiMC4xNDUxNDcsIDAuMjA1NzQsIDAuMjYwMDYzLCAwLjI5ODY1OSwgMC4zNjAzMzEsIDAuNDE0Mjg4LCAwLjQ5MTMyMyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzNDA3MywgMC4xNDA3MiwgMC4yNTAxNzQsIDAuMzI5NTg4LCAwLjQ1NzA0NCwgMC41NjkwMTgsIDAuNzI5MDQzIiwgXAotICAgICAgICAgICIwLjAzNDA1NiwgMC4xNDA3MjYsIDAuMjUwMTcyLCAwLjMyOTU3NiwgMC40NTcwNTMsIDAuNTY4OTI4LCAwLjcyOTA5NCIsIFwKLSAgICAgICAgICAiMC4wMzQxMTQsIDAuMTQwNzM5LCAwLjI1MDIwNSwgMC4zMjk1NzYsIDAuNDU3MDU2LCAwLjU2ODkzNCwgMC43Mjg5NjciLCBcCi0gICAgICAgICAgIjAuMDM0MDg1LCAwLjE0MDczLCAwLjI1MDIxMiwgMC4zMjk2MDQsIDAuNDU3MDUzLCAwLjU2ODkyMiwgMC43MjkwMzQiLCBcCi0gICAgICAgICAgIjAuMDM0MDE2LCAwLjE0MDcyLCAwLjI1MDIyMywgMC4zMjk1ODYsIDAuNDU3MDQ5LCAwLjU2ODk2OSwgMC43MjkwMDEiLCBcCi0gICAgICAgICAgIjAuMDM0MDI0LCAwLjE0MDc1NCwgMC4yNTAyNjEsIDAuMzI5NjE4LCAwLjQ1NzA1MiwgMC41Njg5MzEsIDAuNzI4ODg5IiwgXAotICAgICAgICAgICIwLjAzNDAyNCwgMC4xNDA3NDcsIDAuMjUwMjA4LCAwLjMyOTU0NywgMC40NTcwMTIsIDAuNTY4OTMsIDAuNzI4OTQ1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlMwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4ODI1NCwgMC4xNDkzNjksIDAuMjA0OTk3LCAwLjI0NDYwNiwgMC4zMDc5NDcsIDAuMzYzNDE3LCAwLjQ0MjU3NSIsIFwKLSAgICAgICAgICAiMC4wOTU1MjksIDAuMTU2NjQzLCAwLjIxMjI3NCwgMC4yNTE4ODgsIDAuMzE1MjMxLCAwLjM3MDYxNywgMC40NDk4MzgiLCBcCi0gICAgICAgICAgIjAuMTA0MzU1LCAwLjE2NTQ5MywgMC4yMjExMTYsIDAuMjYwNzMsIDAuMzI0MDk0LCAwLjM3OTQ5OSwgMC40NTg3MDkiLCBcCi0gICAgICAgICAgIjAuMTExNzE5LCAwLjE3Mjg5LCAwLjIyODUyNiwgMC4yNjgxMzUsIDAuMzMxNTE3LCAwLjM4NjkzLCAwLjQ2NjA0IiwgXAotICAgICAgICAgICIwLjExNzY5LCAwLjE3ODc5OCwgMC4yMzQ0MjksIDAuMjc0MDQsIDAuMzM3Mzg0LCAwLjM5Mjc5NywgMC40NzE5OTkiLCBcCi0gICAgICAgICAgIjAuMTI1NjYzLCAwLjE4Njc3MiwgMC4yNDI0MDMsIDAuMjgyMDA5LCAwLjM0NTMzOSwgMC40MDA3NTksIDAuNDc5OTQxIiwgXAotICAgICAgICAgICIwLjEzMTY1NCwgMC4xOTI4MzQsIDAuMjQ4NDc3LCAwLjI4ODA3MiwgMC4zNTEzOSwgMC40MDY4NDIsIDAuNDg2MDQxIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM0MjE5LCAwLjE0NjQ3NSwgMC4yNjIzNDIsIDAuMzQ2MiwgMC40ODA4ODUsIDAuNTk4OTMyLCAwLjc2Nzc0MSIsIFwKLSAgICAgICAgICAiMC4wMzQyMjEsIDAuMTQ2NDc3LCAwLjI2MjMzOSwgMC4zNDYyMTcsIDAuNDgwOTExLCAwLjU5ODg5NiwgMC43NjY4OTYiLCBcCi0gICAgICAgICAgIjAuMDM0MTgyLCAwLjE0NjQ4NiwgMC4yNjIzMywgMC4zNDYyMDksIDAuNDgwOTExLCAwLjU5ODkzMiwgMC43Njc3NDQiLCBcCi0gICAgICAgICAgIjAuMDM0MTQ2LCAwLjE0NjQ3MywgMC4yNjIyNjgsIDAuMzQ2MTk2LCAwLjQ4MDksIDAuNTk4OTQ3LCAwLjc2Nzc1OCIsIFwKLSAgICAgICAgICAiMC4wMzQzOTEsIDAuMTQ2NTM0LCAwLjI2MjM1NywgMC4zNDYyMTYsIDAuNDgwODk4LCAwLjU5ODk1NywgMC43NjY5MDQiLCBcCi0gICAgICAgICAgIjAuMDM0NDY2LCAwLjE0NjUyNywgMC4yNjIzMDIsIDAuMzQ2MTk2LCAwLjQ4MDg0OSwgMC41OTg3ODMsIDAuNzY3MTYxIiwgXAotICAgICAgICAgICIwLjAzNDM3NiwgMC4xNDY1MzEsIDAuMjYyNDY5LCAwLjM0NjE3MywgMC40ODA2NjMsIDAuNTk4ODg4LCAwLjc2NzQ4Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg5MTgsIDAuMTQ5ODQ2LCAwLjIwNDE0NiwgMC4yNDI3NDEsIDAuMzA0NDI1LCAwLjM1ODM2OSwgMC40MzU0NDIiLCBcCi0gICAgICAgICAgIjAuMDk2NjAzLCAwLjE1NzE5NSwgMC4yMTE1NzYsIDAuMjUwMTUxLCAwLjMxMTgzOCwgMC4zNjU3ODMsIDAuNDQyODkiLCBcCi0gICAgICAgICAgIjAuMTA1NDM4LCAwLjE2NjA3OCwgMC4yMjA0MDIsIDAuMjU4OTc4LCAwLjMyMDY2MiwgMC4zNzQ2MDksIDAuNDUxNjgxIiwgXAotICAgICAgICAgICIwLjExMjU5MiwgMC4xNzMxODQsIDAuMjI3NTA3LCAwLjI2NjA5NiwgMC4zMjc3NjUsIDAuMzgxNzI4LCAwLjQ1ODc5MyIsIFwKLSAgICAgICAgICAiMC4xMTgzNCwgMC4xNzg5MzMsIDAuMjMzMjY3LCAwLjI3MTg1OSwgMC4zMzM1MywgMC4zODc0ODgsIDAuNDY0NTU2IiwgXAotICAgICAgICAgICIwLjEyNjA4OSwgMC4xODY3MzYsIDAuMjQxMDc1LCAwLjI3OTY1LCAwLjM0MTMyNiwgMC4zOTUyNzIsIDAuNDcyMzM0IiwgXAotICAgICAgICAgICIwLjEzMTkyLCAwLjE5MjU3MywgMC4yNDY5MSwgMC4yODU0ODQsIDAuMzQ3MTY1LCAwLjQwMTExNCwgMC40NzgxNzYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzQwOTMsIDAuMTQwNzMxLCAwLjI1MDE2NSwgMC4zMjk2MzYsIDAuNDU3MDYsIDAuNTY4OTE2LCAwLjcyODgzNSIsIFwKLSAgICAgICAgICAiMC4wMzQwNzgsIDAuMTQwNzUsIDAuMjUwMTg3LCAwLjMyOTU5NiwgMC40NTcxMDksIDAuNTY4OTE3LCAwLjcyOTEzMyIsIFwKLSAgICAgICAgICAiMC4wMzQxMTgsIDAuMTQwNzMyLCAwLjI1MDIzNiwgMC4zMjk1ODksIDAuNDU3MDQ1LCAwLjU2ODkyMiwgMC43Mjg5NjQiLCBcCi0gICAgICAgICAgIjAuMDM0MDYxLCAwLjE0MDcxOSwgMC4yNTAzMDQsIDAuMzI5NTg4LCAwLjQ1NzA0LCAwLjU2ODkxMSwgMC43MjkwMiIsIFwKLSAgICAgICAgICAiMC4wMzQzMiwgMC4xNDA3OTMsIDAuMjUwMTIzLCAwLjMyOTU5OSwgMC40NTcwNTUsIDAuNTY4OTE5LCAwLjcyODg2NSIsIFwKLSAgICAgICAgICAiMC4wMzQyODQsIDAuMTQwNzgzLCAwLjI1MDMwMywgMC4zMjk1ODIsIDAuNDU3MDY3LCAwLjU2ODkwNywgMC43MjkxNDIiLCBcCi0gICAgICAgICAgIjAuMDM0MjAzLCAwLjE0MDc5NywgMC4yNTAyMzMsIDAuMzI5MzExLCAwLjQ1NjkwMiwgMC41Njg5MTcsIDAuNzI4ODEzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlMxIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1NDM2MiwgMC4xMTUzMDIsIDAuMTcwODk3LCAwLjIxMDUwMiwgMC4yNzM5MDEsIDAuMzI5MjQsIDAuNDA4NDE0IiwgXAotICAgICAgICAgICIwLjA2MTgxMiwgMC4xMjI3NzMsIDAuMTc4Mzg3LCAwLjIxNzk5OSwgMC4yODEzMzUsIDAuMzM2NzI4LCAwLjQxNTk3MSIsIFwKLSAgICAgICAgICAiMC4wNzE1ODYsIDAuMTMyNDk4LCAwLjE4ODEyLCAwLjIyNzczMiwgMC4yOTEwNywgMC4zNDY0NzQsIDAuNDI1Njk3IiwgXAotICAgICAgICAgICIwLjA4MDg4MiwgMC4xNDE4OTQsIDAuMTk3NDk2LCAwLjIzNzEwNSwgMC4zMDA0NDQsIDAuMzU1ODIzLCAwLjQzNTAwMiIsIFwKLSAgICAgICAgICAiMC4wODg3ODcsIDAuMTUwMTYzLCAwLjIwNTc3MiwgMC4yNDUzNzgsIDAuMzA4NjY1LCAwLjM2NDA3MSwgMC40NDMyMTEiLCBcCi0gICAgICAgICAgIjAuMDk5MjkzLCAwLjE2MTQ1NywgMC4yMTcwMTgsIDAuMjU2NTg2LCAwLjMxOTg5NiwgMC4zNzUyOTcsIDAuNDU0NDgiLCBcCi0gICAgICAgICAgIjAuMTA3MDUzLCAwLjE2OTkzNiwgMC4yMjU1NzEsIDAuMjY1MTEyLCAwLjMyODM5NiwgMC4zODM3NzMsIDAuNDYyOTA3Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDMzOTM4LCAwLjE0NjM4NywgMC4yNjIyNDgsIDAuMzQ1OTM4LCAwLjQ4MDEzNCwgMC41OTg4NzQsIDAuNzY3NzY2IiwgXAotICAgICAgICAgICIwLjAzMzkwNCwgMC4xNDYzNTUsIDAuMjYyMjI5LCAwLjM0NjE4NCwgMC40ODA4OTEsIDAuNTk4MjUyLCAwLjc2NjM5NiIsIFwKLSAgICAgICAgICAiMC4wMzQwMDQsIDAuMTQ2NDY4LCAwLjI2MjI1MywgMC4zNDYyMDgsIDAuNDgwOTA1LCAwLjU5ODk0LCAwLjc2NjYxNCIsIFwKLSAgICAgICAgICAiMC4wMzUwODgsIDAuMTQ2NjU5LCAwLjI2MjM0NSwgMC4zNDYyMjIsIDAuNDgwODc0LCAwLjU5ODg3NywgMC43NjY5MSIsIFwKLSAgICAgICAgICAiMC4wMzY2ODIsIDAuMTQ3MTg5LCAwLjI2MjU4OSwgMC4zNDU5NCwgMC40ODA2OSwgMC41OTg5MzcsIDAuNzY3NzE5IiwgXAotICAgICAgICAgICIwLjAzOTA4MiwgMC4xNDgyODQsIDAuMjYzMTM4LCAwLjM0NjQ4LCAwLjQ4MDkxMiwgMC41OTkwNTUsIDAuNzY2OTk5IiwgXAotICAgICAgICAgICIwLjA0MTAxNSwgMC4xNDkyMDQsIDAuMjYzNTI5LCAwLjM0Njg3LCAwLjQ4MTExMiwgMC41OTkwNjQsIDAuNzY3MjYiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTc1MzIsIDAuMTE4MDQsIDAuMTcyMzU3LCAwLjIxMDkzMiwgMC4yNzI2MTQsIDAuMzI2NTU2LCAwLjQwMzYxOSIsIFwKLSAgICAgICAgICAiMC4wNjQ5NDEsIDAuMTI1NDYsIDAuMTc5NzcsIDAuMjE4MzQ0LCAwLjI4MDAyNiwgMC4zMzM5NjksIDAuNDExMDMxIiwgXAotICAgICAgICAgICIwLjA3NDU5OSwgMC4xMzUwOTIsIDAuMTg5NCwgMC4yMjc5NzksIDAuMjg5NjY0LCAwLjM0MzYwNiwgMC40MjA2NjYiLCBcCi0gICAgICAgICAgIjAuMDgzNjYxLCAwLjE0NDI0MSwgMC4xOTg1NTksIDAuMjM3MTM3LCAwLjI5ODgyMiwgMC4zNTI3NjUsIDAuNDI5ODI2IiwgXAotICAgICAgICAgICIwLjA5MTYxNiwgMC4xNTI0NDcsIDAuMjA2NzYzLCAwLjI0NTMzOSwgMC4zMDcwMDksIDAuMzYwOTQ5LCAwLjQzNzk5OSIsIFwKLSAgICAgICAgICAiMC4xMDIwMzgsIDAuMTYzNTQzLCAwLjIxNzg1MSwgMC4yNTYzOTEsIDAuMzE4MDQyLCAwLjM3MTk5MSwgMC40NDkwOTMiLCBcCi0gICAgICAgICAgIjAuMTA5NzI4LCAwLjE3MTc2OSwgMC4yMjYxMzEsIDAuMjY0Njc3LCAwLjMyNjI5MSwgMC4zODAyNDgsIDAuNDU3MjkyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDMzNjk2LCAwLjE0MDQzOSwgMC4yNTAwMTEsIDAuMzI5NDM3LCAwLjQ1Njk0MywgMC41Njg3OTQsIDAuNzI4MTI1IiwgXAotICAgICAgICAgICIwLjAzMzY5NywgMC4xNDA1MzEsIDAuMjUwMDA3LCAwLjMyOTQzNywgMC40NTY5NDEsIDAuNTY4NzkzLCAwLjcyODEyMiIsIFwKLSAgICAgICAgICAiMC4wMzM3OTIsIDAuMTQwNTYxLCAwLjI0OTk4MywgMC4zMjk0MzcsIDAuNDU2OTQ4LCAwLjU2ODc5NywgMC43MjgwNyIsIFwKLSAgICAgICAgICAiMC4wMzQ1MSwgMC4xNDA3NjcsIDAuMjUwMTEzLCAwLjMyOTQ2NCwgMC40NTY5NzYsIDAuNTY4ODEyLCAwLjcyODA3NiIsIFwKLSAgICAgICAgICAiMC4wMzU4OTIsIDAuMTQxMjI4LCAwLjI1MDI4NywgMC4zMjk3MTEsIDAuNDU3MDY0LCAwLjU2ODg3MywgMC43Mjg4MDUiLCBcCi0gICAgICAgICAgIjAuMDM4MDkyLCAwLjE0MjI3MSwgMC4yNTA5MDgsIDAuMzMwMDM1LCAwLjQ1NzE1LCAwLjU2OTAyMSwgMC43MjkxNjkiLCBcCi0gICAgICAgICAgIjAuMDM5OTk5LCAwLjE0MzA5NiwgMC4yNTEyNzksIDAuMzMwMDYyLCAwLjQ1NzQwNywgMC41NjkyNzIsIDAuNzI5MjA0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlMxIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3MjY3NSwgMC4xMzM3NTcsIDAuMTg5Mzg0LCAwLjIyOTAyNSwgMC4yOTIzMzgsIDAuMzQ3ODExLCAwLjQyNjkxMyIsIFwKLSAgICAgICAgICAiMC4wODA0NzQsIDAuMTQxNTU3LCAwLjE5NzE5NSwgMC4yMzY4MTUsIDAuMzAwMTU4LCAwLjM1NTU0NiwgMC40MzQ3MzkiLCBcCi0gICAgICAgICAgIjAuMDg4MzMxLCAwLjE0OTQzNywgMC4yMDUwNzksIDAuMjQ0Njk5LCAwLjMwODA0MiwgMC4zNjM0MjksIDAuNDQyNjIzIiwgXAotICAgICAgICAgICIwLjA5NDA3LCAwLjE1NTIxNywgMC4yMTA4MzQsIDAuMjUwNDY2LCAwLjMxMzgzOSwgMC4zNjkxOTgsIDAuNDQ4NDEyIiwgXAotICAgICAgICAgICIwLjA5ODQ0OCwgMC4xNTk1NzUsIDAuMjE1MzI4LCAwLjI1NDk0MywgMC4zMTgyOTUsIDAuMzczNjkxLCAwLjQ1MjgyOSIsIFwKLSAgICAgICAgICAiMC4xMDQyMzcsIDAuMTY1NDIyLCAwLjIyMTEzOSwgMC4yNjA3NDgsIDAuMzI0MTA0LCAwLjM3OTQ4MiwgMC40NTg2MjIiLCBcCi0gICAgICAgICAgIjAuMTA4NjIsIDAuMTY5ODAzLCAwLjIyNTU1NCwgMC4yNjUxODksIDAuMzI4NTMyLCAwLjM4Mzk0MiwgMC40NjMwNjUiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzQwMDEsIDAuMTQ2MzEzLCAwLjI2MjIzOCwgMC4zNDU2ODMsIDAuNDgwNzUsIDAuNTk4MDQsIDAuNzY3NzQzIiwgXAotICAgICAgICAgICIwLjAzMzk5OSwgMC4xNDYzOTYsIDAuMjYyMjI0LCAwLjM0NjE1OSwgMC40ODA4ODYsIDAuNTk4ODU0LCAwLjc2Njc5IiwgXAotICAgICAgICAgICIwLjAzMzkzLCAwLjE0NjQwOSwgMC4yNjIyMzEsIDAuMzQ2MTc3LCAwLjQ4MDg1NywgMC41OTg4NDUsIDAuNzY2NDE2IiwgXAotICAgICAgICAgICIwLjAzNDAyLCAwLjE0NjM5OCwgMC4yNjIyNDQsIDAuMzQ2MTY0LCAwLjQ4MDg0MywgMC41OTg4ODUsIDAuNzY2Njg3IiwgXAotICAgICAgICAgICIwLjAzMzgzNCwgMC4xNDYzNTEsIDAuMjYyMzQzLCAwLjM0NjI2NiwgMC40ODAxODYsIDAuNTk4ODQ5LCAwLjc2NzY2NSIsIFwKLSAgICAgICAgICAiMC4wMzM4MSwgMC4xNDY1ODgsIDAuMjYyMzc2LCAwLjM0NjA5LCAwLjQ4MDU2LCAwLjU5ODczOCwgMC43Njc1MzYiLCBcCi0gICAgICAgICAgIjAuMDMzOTAyLCAwLjE0NjUyNSwgMC4yNjI0NTcsIDAuMzQ2MTMzLCAwLjQ4MDQ3OSwgMC41OTgyNTEsIDAuNzY3MDUyIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc0Mzk1LCAwLjEzNTA2NCwgMC4xODk0MjEsIDAuMjI3OTcyLCAwLjI4OTY2MiwgMC4zNDM2MDgsIDAuNDIwNjY4IiwgXAotICAgICAgICAgICIwLjA4MjM4NiwgMC4xNDMwNTMsIDAuMTk3MzY4LCAwLjIzNTk2MywgMC4yOTc2NTQsIDAuMzUxNiwgMC40Mjg2NjEiLCBcCi0gICAgICAgICAgIjAuMDkwMzMzLCAwLjE1MTAyNiwgMC4yMDUzNywgMC4yNDM5NTUsIDAuMzA1NjQ2LCAwLjM1OTYzMSwgMC40MzY2NTQiLCBcCi0gICAgICAgICAgIjAuMDk2MjE0LCAwLjE1Njg3MiwgMC4yMTEyMDMsIDAuMjQ5NzgzLCAwLjMxMTQ3NCwgMC4zNjU0MjEsIDAuNDQyNDgyIiwgXAotICAgICAgICAgICIwLjEwMDkxMywgMC4xNjE1NzksIDAuMjE1OTExLCAwLjI1NDUwNCwgMC4zMTYxODgsIDAuMzcwMTQsIDAuNDQ3MjEyIiwgXAotICAgICAgICAgICIwLjEwNzMzOSwgMC4xNjc5OTcsIDAuMjIyNDAxLCAwLjI2MDk5NCwgMC4zMjI2ODIsIDAuMzc2NjM0LCAwLjQ1MzY3NyIsIFwKLSAgICAgICAgICAiMC4xMTIwMzQsIDAuMTcyNzEsIDAuMjI3MTMyLCAwLjI2NTczNywgMC4zMjc0NDUsIDAuMzgxNDAyLCAwLjQ1ODQ3MSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzNDAxMiwgMC4xNDA2ODYsIDAuMjUwMTQ0LCAwLjMyOTU2NywgMC40NTcwMjEsIDAuNTY4OSwgMC43MjgwNzQiLCBcCi0gICAgICAgICAgIjAuMDM0MDEsIDAuMTQwNjkzLCAwLjI1MDE4NCwgMC4zMjk1MywgMC40NTcwMywgMC41Njg4ODcsIDAuNzI4ODc1IiwgXAotICAgICAgICAgICIwLjAzMzkzMywgMC4xNDA2NzYsIDAuMjUwMTQ0LCAwLjMyOTU0OSwgMC40NTcwMzUsIDAuNTY4OTg4LCAwLjcyODA3MiIsIFwKLSAgICAgICAgICAiMC4wMzM5NTIsIDAuMTQwNywgMC4yNTAwOTIsIDAuMzI5NTQ2LCAwLjQ1NzAyOCwgMC41Njg4NzUsIDAuNzI4MTEzIiwgXAotICAgICAgICAgICIwLjAzMzg0MywgMC4xNDA3NDMsIDAuMjUwMzg1LCAwLjMyOTE3MiwgMC40NTY1NjIsIDAuNTY4MjU0LCAwLjcyOTAwMSIsIFwKLSAgICAgICAgICAiMC4wMzM4NTgsIDAuMTQwNzc4LCAwLjI1MDI3OSwgMC4zMjkyNTMsIDAuNDU2NDEsIDAuNTY4MDU1LCAwLjcyODg1NCIsIFwKLSAgICAgICAgICAiMC4wMzM4OTEsIDAuMTQwNjczLCAwLjI1MDE3NCwgMC4zMjkyNzIsIDAuNDU2NTI3LCAwLjU2ODE3OSwgMC43Mjc5OTQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMDE3LCAwLjAxMDIwMiwgMC4wMTAyMywgMC4wMTAyMzksIDAuMDEwMjUsIDAuMDEwMjUzLCAwLjAxMDI2IiwgXAotICAgICAgICAgICIwLjAxMDE0OSwgMC4wMTAxODUsIDAuMDEwMjEzLCAwLjAxMDIyMiwgMC4wMTAyMzQsIDAuMDEwMjM2LCAwLjAxMDI0MiIsIFwKLSAgICAgICAgICAiMC4wMTAxNTQsIDAuMDEwMTk1LCAwLjAxMDIxOSwgMC4wMTAyMjksIDAuMDEwMjQyLCAwLjAxMDI0MywgMC4wMTAyNDYiLCBcCi0gICAgICAgICAgIjAuMDEwMTY0LCAwLjAxMDIxMiwgMC4wMTAyNDMsIDAuMDEwMjU0LCAwLjAxMDI2NywgMC4wMTAyNjksIDAuMDEwMjc0IiwgXAotICAgICAgICAgICIwLjAxMDIzMiwgMC4wMTAyNjYsIDAuMDEwMjk1LCAwLjAxMDMwNywgMC4wMTAzMTYsIDAuMDEwMzE5LCAwLjAxMDMyNCIsIFwKLSAgICAgICAgICAiMC4wMTAzNjIsIDAuMDEwMzc1LCAwLjAxMDQwMiwgMC4wMTA0MTcsIDAuMDEwNDIxLCAwLjAxMDQyOCwgMC4wMTA0MzIiLCBcCi0gICAgICAgICAgIjAuMDEwNDcyLCAwLjAxMDQ4OSwgMC4wMTA1MTksIDAuMDEwNTI3LCAwLjAxMDUzNiwgMC4wMTA1NCwgMC4wMTA1NDYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwOTEyNCwgMC4wMDkxOTYsIDAuMDA5MjMzLCAwLjAwOTI0NSwgMC4wMDkyNTYsIDAuMDA5MjYzLCAwLjAwOTI2OSIsIFwKLSAgICAgICAgICAiMC4wMDkxLCAwLjAwOTE2OCwgMC4wMDkyMDQsIDAuMDA5MjE3LCAwLjAwOTIyOSwgMC4wMDkyMzYsIDAuMDA5MjQyIiwgXAotICAgICAgICAgICIwLjAwOTExMiwgMC4wMDkxNzUsIDAuMDA5MjEzLCAwLjAwOTIyNiwgMC4wMDkyMzgsIDAuMDA5MjQ1LCAwLjAwOTI1IiwgXAotICAgICAgICAgICIwLjAwOTEzNSwgMC4wMDkyMDcsIDAuMDA5MjQ3LCAwLjAwOTI2MSwgMC4wMDkyNzQsIDAuMDA5MjgxLCAwLjAwOTI4NiIsIFwKLSAgICAgICAgICAiMC4wMDkyMTUsIDAuMDA5MjczLCAwLjAwOTMwOSwgMC4wMDkzMjIsIDAuMDA5MzMzLCAwLjAwOTM0LCAwLjAwOTM0NSIsIFwKLSAgICAgICAgICAiMC4wMDkzNDMsIDAuMDA5MzkxLCAwLjAwOTQyOCwgMC4wMDk0NDEsIDAuMDA5NDUzLCAwLjAwOTQ2LCAwLjAwOTQ2NiIsIFwKLSAgICAgICAgICAiMC4wMDk0NTMsIDAuMDA5NTExLCAwLjAwOTU0NiwgMC4wMDk1NjIsIDAuMDA5NTczLCAwLjAwOTU3OSwgMC4wMDk1ODUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMDQ0NSwgMC4wMTA0NzksIDAuMDEwNTA4LCAwLjAxMDUxNiwgMC4wMTA1MjksIDAuMDEwNTMxLCAwLjAxMDUzNCIsIFwKLSAgICAgICAgICAiMC4wMTA0MjYsIDAuMDEwNDYzLCAwLjAxMDQ5LCAwLjAxMDQ5OSwgMC4wMTA1MTUsIDAuMDEwNTE1LCAwLjAxMDUxNyIsIFwKLSAgICAgICAgICAiMC4wMTA0NDMsIDAuMDEwNDcsIDAuMDEwNDk3LCAwLjAxMDUwNiwgMC4wMTA1MTUsIDAuMDEwNTIyLCAwLjAxMDUyNCIsIFwKLSAgICAgICAgICAiMC4wMTA0NDgsIDAuMDEwNDksIDAuMDEwNTIxLCAwLjAxMDUzMywgMC4wMTA1NDQsIDAuMDEwNTQ3LCAwLjAxMDU1NCIsIFwKLSAgICAgICAgICAiMC4wMTA1MTEsIDAuMDEwNTQzLCAwLjAxMDU3MywgMC4wMTA1ODUsIDAuMDEwNTk0LCAwLjAxMDU5NywgMC4wMTA2MDIiLCBcCi0gICAgICAgICAgIjAuMDEwNjM5LCAwLjAxMDY1NSwgMC4wMTA2ODQsIDAuMDEwNjk2LCAwLjAxMDcwMSwgMC4wMTA3MDYsIDAuMDEwNzEiLCBcCi0gICAgICAgICAgIjAuMDEwNzU0LCAwLjAxMDc2OSwgMC4wMTA3OTgsIDAuMDEwODA2LCAwLjAxMDgxNiwgMC4wMTA4MjEsIDAuMDEwODI2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDg4ODMsIDAuMDA4OTQ0LCAwLjAwODk4MSwgMC4wMDg5OTQsIDAuMDA5MDA2LCAwLjAwOTAxMiwgMC4wMDkwMTgiLCBcCi0gICAgICAgICAgIjAuMDA4ODQ2LCAwLjAwODkxNiwgMC4wMDg5NTMsIDAuMDA4OTY3LCAwLjAwODk3OCwgMC4wMDg5ODUsIDAuMDA4OTkiLCBcCi0gICAgICAgICAgIjAuMDA4ODU0LCAwLjAwODkyNCwgMC4wMDg5NjEsIDAuMDA4OTczLCAwLjAwODk4NSwgMC4wMDg5OTEsIDAuMDA4OTk3IiwgXAotICAgICAgICAgICIwLjAwODg3NywgMC4wMDg5NTIsIDAuMDA4OTkyLCAwLjAwOTAwNiwgMC4wMDkwMTksIDAuMDA5MDI2LCAwLjAwOTAzMiIsIFwKLSAgICAgICAgICAiMC4wMDg5NDQsIDAuMDA5MDEsIDAuMDA5MDQ5LCAwLjAwOTA2MiwgMC4wMDkwNzUsIDAuMDA5MDgxLCAwLjAwOTA4NyIsIFwKLSAgICAgICAgICAiMC4wMDkwODMsIDAuMDA5MTI2LCAwLjAwOTE3NCwgMC4wMDkxNzksIDAuMDA5MTksIDAuMDA5MTk3LCAwLjAwOTIwMyIsIFwKLSAgICAgICAgICAiMC4wMDkxOTMsIDAuMDA5MjQ3LCAwLjAwOTI4NywgMC4wMDkyOTksIDAuMDA5MzExLCAwLjAwOTMxNywgMC4wMDkzMjMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwOTY3OSwgMC4wMDk2NDEsIDAuMDA5NjUsIDAuMDA5NjUyLCAwLjAwOTY1OCwgMC4wMDk2NTUsIDAuMDA5NjU5IiwgXAotICAgICAgICAgICIwLjAwOTY2NCwgMC4wMDk2MjUsIDAuMDA5NjMyLCAwLjAwOTYzNSwgMC4wMDk2MzksIDAuMDA5NjM4LCAwLjAwOTY0MyIsIFwKLSAgICAgICAgICAiMC4wMDk2NywgMC4wMDk2MzUsIDAuMDA5NjQzLCAwLjAwOTY0NSwgMC4wMDk2NSwgMC4wMDk2NDksIDAuMDA5NjQ5IiwgXAotICAgICAgICAgICIwLjAwOTY5MiwgMC4wMDk2NjMsIDAuMDA5Njc0LCAwLjAwOTY3OCwgMC4wMDk2ODMsIDAuMDA5NjgxLCAwLjAwOTY4NSIsIFwKLSAgICAgICAgICAiMC4wMDk3NDksIDAuMDA5NzE2LCAwLjAwOTcyNywgMC4wMDk3MzMsIDAuMDA5NzM3LCAwLjAwOTczNiwgMC4wMDk3MzgiLCBcCi0gICAgICAgICAgIjAuMDA5ODk4LCAwLjAwOTg0MiwgMC4wMDk4NDcsIDAuMDA5ODUyLCAwLjAwOTg1MSwgMC4wMDk4NTQsIDAuMDA5ODU0IiwgXAotICAgICAgICAgICIwLjAxMDAxNCwgMC4wMDk5NjQsIDAuMDA5OTcxLCAwLjAwOTk3OSwgMC4wMDk5NzIsIDAuMDA5OTc3LCAwLjAwOTk4MiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA5MzUxLCAwLjAwOTM1NCwgMC4wMDkzNzQsIDAuMDA5MzgsIDAuMDA5Mzg2LCAwLjAwOTM5LCAwLjAwOTM5MyIsIFwKLSAgICAgICAgICAiMC4wMDkzMjcsIDAuMDA5MzI5LCAwLjAwOTM0NywgMC4wMDkzNTQsIDAuMDA5MzYsIDAuMDA5MzYzLCAwLjAwOTM2NiIsIFwKLSAgICAgICAgICAiMC4wMDkzMzksIDAuMDA5MzQxLCAwLjAwOTM1OSwgMC4wMDkzNjUsIDAuMDA5MzcxLCAwLjAwOTM3NCwgMC4wMDkzNzYiLCBcCi0gICAgICAgICAgIjAuMDA5MzYyLCAwLjAwOTM3MSwgMC4wMDkzOTMsIDAuMDA5NDAxLCAwLjAwOTQwNywgMC4wMDk0MTEsIDAuMDA5NDE1IiwgXAotICAgICAgICAgICIwLjAwOTQyMiwgMC4wMDk0MjksIDAuMDA5NDUzLCAwLjAwOTQ2MiwgMC4wMDk0NjgsIDAuMDA5NDcyLCAwLjAwOTQ3NSIsIFwKLSAgICAgICAgICAiMC4wMDk1NjYsIDAuMDA5NTYzLCAwLjAwOTU4MSwgMC4wMDk1ODksIDAuMDA5NTk0LCAwLjAwOTU5OCwgMC4wMDk2MDEiLCBcCi0gICAgICAgICAgIjAuMDA5Njk0LCAwLjAwOTY4NiwgMC4wMDk3MDYsIDAuMDA5NzE1LCAwLjAwOTcxOSwgMC4wMDk3MjksIDAuMDA5NzI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDk5NDMsIDAuMDA5OTA4LCAwLjAwOTkxOCwgMC4wMDk5MTksIDAuMDA5OTI2LCAwLjAwOTkyMywgMC4wMDk5MjMiLCBcCi0gICAgICAgICAgIjAuMDA5OTMyLCAwLjAwOTg5MiwgMC4wMDk4OTgsIDAuMDA5OTAxLCAwLjAwOTkwMywgMC4wMDk5MDYsIDAuMDA5OTEiLCBcCi0gICAgICAgICAgIjAuMDA5OTMxLCAwLjAwOTg5NywgMC4wMDk5MDQsIDAuMDA5OTA2LCAwLjAwOTkxNCwgMC4wMDk5MTEsIDAuMDA5OTExIiwgXAotICAgICAgICAgICIwLjAwOTkzNiwgMC4wMDk5MTQsIDAuMDA5OTI1LCAwLjAwOTkyOSwgMC4wMDk5MzcsIDAuMDA5OTM1LCAwLjAwOTkzOSIsIFwKLSAgICAgICAgICAiMC4wMTAwMDMsIDAuMDA5OTY4LCAwLjAwOTk3OCwgMC4wMDk5ODIsIDAuMDA5OTg0LCAwLjAwOTk4NSwgMC4wMDk5ODgiLCBcCi0gICAgICAgICAgIjAuMDEwMTM4LCAwLjAxMDA3OSwgMC4wMTAwODYsIDAuMDEwMDg2LCAwLjAxMDA4OCwgMC4wMTAwOSwgMC4wMTAwOTEiLCBcCi0gICAgICAgICAgIjAuMDEwMjQ1LCAwLjAxMDE5MywgMC4wMTAyMDEsIDAuMDEwMjA2LCAwLjAxMDIwMywgMC4wMTAyMDYsIDAuMDEwMjExIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDkyMzgsIDAuMDA5MjMyLCAwLjAwOTI1MSwgMC4wMDkyNTcsIDAuMDA5MjYzLCAwLjAwOTI2NywgMC4wMDkyNyIsIFwKLSAgICAgICAgICAiMC4wMDkyMDMsIDAuMDA5MjA0LCAwLjAwOTIyMywgMC4wMDkyMjksIDAuMDA5MjM2LCAwLjAwOTIzOSwgMC4wMDkyNDIiLCBcCi0gICAgICAgICAgIjAuMDA5MjIsIDAuMDA5MjEzLCAwLjAwOTIzMSwgMC4wMDkyMzgsIDAuMDA5MjQ0LCAwLjAwOTI0NywgMC4wMDkyNSIsIFwKLSAgICAgICAgICAiMC4wMDkyMzMsIDAuMDA5MjQ0LCAwLjAwOTI2NiwgMC4wMDkyNzQsIDAuMDA5MjgxLCAwLjAwOTI4NSwgMC4wMDkyODgiLCBcCi0gICAgICAgICAgIjAuMDA5MzIxLCAwLjAwOTMxMSwgMC4wMDkzMywgMC4wMDkzMzcsIDAuMDA5MzQyLCAwLjAwOTM0NiwgMC4wMDkzNDkiLCBcCi0gICAgICAgICAgIjAuMDA5NDQxLCAwLjAwOTQzLCAwLjAwOTQ2LCAwLjAwOTQ1OCwgMC4wMDk0NjMsIDAuMDA5NDY2LCAwLjAwOTQ2OSIsIFwKLSAgICAgICAgICAiMC4wMDk1NjEsIDAuMDA5NTUxLCAwLjAwOTU3NCwgMC4wMDk1ODEsIDAuMDA5NTg2LCAwLjAwOTU4OCwgMC4wMDk1OTIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTMCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTI4MTMsIDAuMDEyODQ0LCAwLjAxMjg2OSwgMC4wMTI4NzksIDAuMDEyODg2LCAwLjAxMjg5LCAwLjAxMjg5MyIsIFwKLSAgICAgICAgICAiMC4wMTI4MDMsIDAuMDEyODMxLCAwLjAxMjg1NiwgMC4wMTI4NjUsIDAuMDEyODc3LCAwLjAxMjg3OCwgMC4wMTI4OCIsIFwKLSAgICAgICAgICAiMC4wMTI4NjQsIDAuMDEyODk2LCAwLjAxMjkyLCAwLjAxMjkyOSwgMC4wMTI5MzcsIDAuMDEyOTQ1LCAwLjAxMjk0NSIsIFwKLSAgICAgICAgICAiMC4wMTI5NjgsIDAuMDEyOTk4LCAwLjAxMzAyMiwgMC4wMTMwMzEsIDAuMDEzMDM5LCAwLjAxMzA0MywgMC4wMTMwNDYiLCBcCi0gICAgICAgICAgIjAuMDEzMDYzLCAwLjAxMzA5OCwgMC4wMTMxMjYsIDAuMDEzMTM1LCAwLjAxMzE0NCwgMC4wMTMxNDcsIDAuMDEzMTU0IiwgXAotICAgICAgICAgICIwLjAxMzI1OSwgMC4wMTMzLCAwLjAxMzMyNSwgMC4wMTMzMzYsIDAuMDEzMzQxLCAwLjAxMzM1LCAwLjAxMzM1MiIsIFwKLSAgICAgICAgICAiMC4wMTM1MDEsIDAuMDEzNTMxLCAwLjAxMzU1NCwgMC4wMTM1NjMsIDAuMDEzNTcsIDAuMDEzNTc0LCAwLjAxMzU3OCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE1NjQsIDAuMDE1NjM2LCAwLjAxNTY1NSwgMC4wMTU2NjEsIDAuMDE1NjY3LCAwLjAxNTY3MSwgMC4wMTU2NzMiLCBcCi0gICAgICAgICAgIjAuMDE1NjIyLCAwLjAxNTYxOSwgMC4wMTU2MzcsIDAuMDE1NjQ0LCAwLjAxNTY1LCAwLjAxNTY1MywgMC4wMTU2NTYiLCBcCi0gICAgICAgICAgIjAuMDE1NzQ5LCAwLjAxNTc0MiwgMC4wMTU3NiwgMC4wMTU3NjcsIDAuMDE1NzcyLCAwLjAxNTc3NiwgMC4wMTU3NzgiLCBcCi0gICAgICAgICAgIjAuMDE1ODk3LCAwLjAxNTg5NSwgMC4wMTU5MTQsIDAuMDE1OTIsIDAuMDE1OTI2LCAwLjAxNTkyOCwgMC4wMTU5MzEiLCBcCi0gICAgICAgICAgIjAuMDE2MDg4LCAwLjAxNjA4OCwgMC4wMTYxMDgsIDAuMDE2MTE2LCAwLjAxNjEyMSwgMC4wMTYxMjQsIDAuMDE2MTI4IiwgXAotICAgICAgICAgICIwLjAxNjQ1LCAwLjAxNjQyLCAwLjAxNjQ0MywgMC4wMTY0NSwgMC4wMTY0NTUsIDAuMDE2NDU5LCAwLjAxNjQ2MiIsIFwKLSAgICAgICAgICAiMC4wMTY2OTcsIDAuMDE2Njk4LCAwLjAxNjcyLCAwLjAxNjcyNywgMC4wMTY3MjgsIDAuMDE2NzM1LCAwLjAxNjczOCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlMxIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwOTkxMywgMC4wMDk5NTgsIDAuMDA5OTksIDAuMDEwMDA1LCAwLjAxMDAxNiwgMC4wMTAwMTksIDAuMDEwMDI0IiwgXAotICAgICAgICAgICIwLjAwOTkxNSwgMC4wMDk5NjQsIDAuMDA5OTk4LCAwLjAxMDAwOCwgMC4wMTAwMjQsIDAuMDEwMDI1LCAwLjAxMDAzMyIsIFwKLSAgICAgICAgICAiMC4wMDk5NzMsIDAuMDEwMDI1LCAwLjAxMDA1NiwgMC4wMTAwNjcsIDAuMDEwMDgxLCAwLjAxMDA4NCwgMC4wMTAwODkiLCBcCi0gICAgICAgICAgIjAuMDEwMDc0LCAwLjAxMDExOCwgMC4wMTAxNDksIDAuMDEwMTYxLCAwLjAxMDE3MiwgMC4wMTAxNzUsIDAuMDEwMTgiLCBcCi0gICAgICAgICAgIjAuMDEwMTkzLCAwLjAxMDIzNSwgMC4wMTAyNTUsIDAuMDEwMjY3LCAwLjAxMDI3NSwgMC4wMTAyOCwgMC4wMTAyODUiLCBcCi0gICAgICAgICAgIjAuMDEwNDQ3LCAwLjAxMDQ4MSwgMC4wMTA1MDgsIDAuMDEwNTE2LCAwLjAxMDUzMiwgMC4wMTA1MzQsIDAuMDEwNTQxIiwgXAotICAgICAgICAgICIwLjAxMDY0LCAwLjAxMDY3MSwgMC4wMTA2OTYsIDAuMDEwNzA0LCAwLjAxMDcwOSwgMC4wMTA3MTIsIDAuMDEwNzE1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDgxNSwgMC4wMDgxNzIsIDAuMDA4MjAyLCAwLjAwODIxMywgMC4wMDgyMjQsIDAuMDA4MjI5LCAwLjAwODIzNSIsIFwKLSAgICAgICAgICAiMC4wMDgxNTksIDAuMDA4MTc3LCAwLjAwODIwNiwgMC4wMDgyMTYsIDAuMDA4MjI2LCAwLjAwODIzMiwgMC4wMDgyMzciLCBcCi0gICAgICAgICAgIjAuMDA4MjI3LCAwLjAwODI1NSwgMC4wMDgyODQsIDAuMDA4Mjk0LCAwLjAwODMwNCwgMC4wMDgzMSwgMC4wMDgzMTUiLCBcCi0gICAgICAgICAgIjAuMDA4MzE5LCAwLjAwODMzOCwgMC4wMDgzNjUsIDAuMDA4Mzc1LCAwLjAwODM4NCwgMC4wMDgzODksIDAuMDA4Mzk0IiwgXAotICAgICAgICAgICIwLjAwODQ0MSwgMC4wMDg0NSwgMC4wMDg0NzgsIDAuMDA4NDg4LCAwLjAwODQ5NywgMC4wMDg1MDIsIDAuMDA4NTA3IiwgXAotICAgICAgICAgICIwLjAwODY4OCwgMC4wMDg2OTUsIDAuMDA4NzE5LCAwLjAwODcyOCwgMC4wMDg3MzYsIDAuMDA4NzQsIDAuMDA4NzQ0IiwgXAotICAgICAgICAgICIwLjAwODg4NiwgMC4wMDg4OTEsIDAuMDA4OTE0LCAwLjAwODkyMiwgMC4wMDg5MywgMC4wMDg5MzMsIDAuMDA4OTM3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IE5BTkQyQlg0ICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChOQU5EMkJYNCkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjgzMzEwNTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQU4pICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDk5MjQ4MTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA5OTI0MDQ7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwOTkyNDgxOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjA3MywgMC4wMDIwNDcsIDAuMDAyMTA5LCAwLjAwMjIyMSwgMC4wMDIzNTYsIDAuMDAyNjEsIDAuMDAyODQ5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA1MDY3LCAwLjAwNTA1OCwgMC4wMDUxMTcsIDAuMDA1MjMxLCAwLjAwNTM2NSwgMC4wMDU2NCwgMC4wMDU5Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDM0NDEyNzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDM0NDAxNDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDM0NDEyNzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDEzMDEsIDAuMDAxMjk5LCAwLjAwMTI5OCwgMC4wMDEyOTcsIDAuMDAxMjk3LCAwLjAwMTI5OCwgMC4wMDEyOTciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDIzODIsIDAuMDAyMzgzLCAwLjAwMjM4NCwgMC4wMDIzODQsIDAuMDAyMzg0LCAwLjAwMjM4NCwgMC4wMDIzODQiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC44MTQ2NjsKLSAgICBmdW5jdGlvbiA6ICIoISgoIUFOKSBCKSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkFOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzNDczNCwgMC4wOTA0ODcsIDAuMTQ1NDQsIDAuMTg0NzY1LCAwLjI0NzQxNywgMC4zMDI0MzEsIDAuMzgxMDMyIiwgXAotICAgICAgICAgICIwLjA0MzA4OSwgMC4wOTg3OTgsIDAuMTUzNzcsIDAuMTkzMDE1LCAwLjI1NTg0NywgMC4zMTA3OTQsIDAuMzg5MjY5IiwgXAotICAgICAgICAgICIwLjA1MjM2MywgMC4xMDgxMzgsIDAuMTYzMDgyLCAwLjIwMjM3MiwgMC4yNjUyNTIsIDAuMzIwMjQzLCAwLjM5ODY2NiIsIFwKLSAgICAgICAgICAiMC4wNTk1NzIsIDAuMTE1NDkyLCAwLjE3MDM3NSwgMC4yMDk2MzMsIDAuMjcyNDMzLCAwLjMyNzM3OSwgMC40MDYwOTYiLCBcCi0gICAgICAgICAgIjAuMDY1MzIxLCAwLjEyMTYsIDAuMTc2NDg4LCAwLjIxNTcxMywgMC4yNzg2MzcsIDAuMzMzNjE0LCAwLjQxMTk1NSIsIFwKLSAgICAgICAgICAiMC4wNzI5MzgsIDAuMTI5Njc0LCAwLjE4NDQwNywgMC4yMjM2MjUsIDAuMjg2Mzc5LCAwLjM0MTI5MSwgMC40MTk4NzgiLCBcCi0gICAgICAgICAgIjAuMDc4ODE3LCAwLjEzNTgyNiwgMC4xOTA3MDcsIDAuMjI5ODc4LCAwLjI5MjYyLCAwLjM0NzUyMSwgMC40MjYxMTQiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjg1MDUsIDAuMTQxMzk2LCAwLjI1NjY0MiwgMC4zMzkzNzcsIDAuNDcxNTcxLCAwLjU4NzM1NCwgMC43NTI2MDkiLCBcCi0gICAgICAgICAgIjAuMDI4NTcsIDAuMTQxMzkzLCAwLjI1Njc4MSwgMC4zMzkzODgsIDAuNDcxNjU5LCAwLjU4NzIxNCwgMC43NTI2OTIiLCBcCi0gICAgICAgICAgIjAuMDI5ODExLCAwLjE0MTU1NiwgMC4yNTY3OTksIDAuMzM5Mzk3LCAwLjQ3MTY2OSwgMC41ODc0NTYsIDAuNzUyNzU0IiwgXAotICAgICAgICAgICIwLjAzMTI5NiwgMC4xNDE5MTIsIDAuMjU2ODcsIDAuMzM5NDE1LCAwLjQ3MTU3NiwgMC41ODcxMzIsIDAuNzUyNjM4IiwgXAotICAgICAgICAgICIwLjAzMjc3NCwgMC4xNDIzNjksIDAuMjU3MDEsIDAuMzM5NDY4LCAwLjQ3MTU5MywgMC41ODczMzUsIDAuNzUyNDMyIiwgXAotICAgICAgICAgICIwLjAzNTExOCwgMC4xNDI5NzEsIDAuMjU3MjI4LCAwLjMzOTY4NywgMC40NzE1NzQsIDAuNTg3MzY3LCAwLjc1MjYzMiIsIFwKLSAgICAgICAgICAiMC4wMzYzOTYsIDAuMTQzNjk2LCAwLjI1NzQwNCwgMC4zMzk2ODcsIDAuNDcxNzQyLCAwLjU4NzM1LCAwLjc1MjYzNCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0MzAxOSwgMC4xMzcwMzUsIDAuMjMwNjgxLCAwLjI5NzQ5NCwgMC40MDQ1NDgsIDAuNDk4MDQyLCAwLjYzMTc0MSIsIFwKLSAgICAgICAgICAiMC4wNTExNTgsIDAuMTQ1MjE2LCAwLjIzODg0NiwgMC4zMDU3MTksIDAuNDEyODMzLCAwLjUwNjI0OSwgMC42NDAyNDgiLCBcCi0gICAgICAgICAgIjAuMDYwMDA1LCAwLjE1NDEwMiwgMC4yNDc3MzYsIDAuMzE0NjA5LCAwLjQyMTYzNCwgMC41MTUxNTIsIDAuNjQ4ODY1IiwgXAotICAgICAgICAgICIwLjA2Njg3MywgMC4xNjEwMTUsIDAuMjU0Njc2LCAwLjMyMTYzLCAwLjQyODY2MywgMC41MjIxMjcsIDAuNjU1ODIxIiwgXAotICAgICAgICAgICIwLjA3MjI3LCAwLjE2NjQ1NSwgMC4yNjAwNzgsIDAuMzI2OTUsIDAuNDMzOTIsIDAuNTI3ODYsIDAuNjYxMjYzIiwgXAotICAgICAgICAgICIwLjA3OTQ0NiwgMC4xNzM2NDcsIDAuMjY3MjY4LCAwLjMzNDE1NCwgMC40NDEwODQsIDAuNTM0NzQyLCAwLjY2ODQyIiwgXAotICAgICAgICAgICIwLjA4NDU1NywgMC4xNzg4OTQsIDAuMjcyNDYyLCAwLjMzOTI5MywgMC40NDYyNTYsIDAuNTM5ODQ3LCAwLjY3NDAyNiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0MDMxNCwgMC4yMzI2NDMsIDAuNDI1NTgzLCAwLjU2NTAxNiwgMC43ODQ3MiwgMC45ODAwOSwgMS4yNTQ0NSIsIFwKLSAgICAgICAgICAiMC4wNDAzNjEsIDAuMjMyNzY2LCAwLjQyNTg3MSwgMC41NjQxMTIsIDAuNzg0NzI1LCAwLjk4MDUzMiwgMS4yNTQ5MSIsIFwKLSAgICAgICAgICAiMC4wNDA4MzUsIDAuMjMyNzU4LCAwLjQyNTgzNSwgMC41NjUwMzYsIDAuNzg0ODE4LCAwLjk4MDUsIDEuMjU0NDUiLCBcCi0gICAgICAgICAgIjAuMDQxNTY1LCAwLjIzMjcwNCwgMC40MjY1NywgMC41NjM2NzMsIDAuNzg1MDk1LCAwLjk3ODE4OCwgMS4yNTQ1NSIsIFwKLSAgICAgICAgICAiMC4wNDIyNzUsIDAuMjMyNDA4LCAwLjQyNTkwMiwgMC41NjQwOSwgMC43ODY1OTEsIDAuOTc4NDI4LCAxLjI1NDU1IiwgXAotICAgICAgICAgICIwLjA0MzQ4OCwgMC4yMzI1MTIsIDAuNDI2NTY0LCAwLjU2NTAzOCwgMC43ODY1NDQsIDAuOTc4OTg2LCAxLjI1NTM0IiwgXAotICAgICAgICAgICIwLjA0NDQ1MiwgMC4yMzI3MTUsIDAuNDI2MzQzLCAwLjU2NDcyNSwgMC43ODUzMDIsIDAuOTgwMzkzLCAxLjI1NDU2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEzOTA2LCAwLjA2OTU3NiwgMC4xMjUyNDUsIDAuMTY0ODg5LCAwLjIyODQ1OSwgMC4yODQxMjgsIDAuMzYzNjQ2IiwgXAotICAgICAgICAgICIwLjAyMTk0NywgMC4wNzc4MjksIDAuMTMzNDg2LCAwLjE3MzE1NSwgMC4yMzY2NTksIDAuMjkyMjQ1LCAwLjM3MTc4NyIsIFwKLSAgICAgICAgICAiMC4wMjg3MjMsIDAuMDg4MTE3LCAwLjE0MzcxOCwgMC4xODMzMzQsIDAuMjQ2NzcsIDAuMzAyNDY5LCAwLjM4MTY5MiIsIFwKLSAgICAgICAgICAiMC4wMzM0NjIsIDAuMDk4NTIyLCAwLjE1NDAwOCwgMC4xOTM3MDIsIDAuMjU2ODczLCAwLjMxMjg3LCAwLjM5MjE1NiIsIFwKLSAgICAgICAgICAiMC4wMzcyMjEsIDAuMTA5MTk1LCAwLjE2NDU0NywgMC4yMDQxOTIsIDAuMjY3NjU1LCAwLjMyMjgzNiwgMC40MDI2NTMiLCBcCi0gICAgICAgICAgIjAuMDQxNjM0LCAwLjEyNTM4OSwgMC4xODE0MiwgMC4yMjA5NjMsIDAuMjg0MzgxLCAwLjMzOTk2MSwgMC40MTkzMiIsIFwKLSAgICAgICAgICAiMC4wNDQ2NzIsIDAuMTM3NDk1LCAwLjE5NjI2LCAwLjIzNTc0MywgMC4yOTkwMiwgMC4zNTQ1NTcsIDAuNDM0MDg5Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDIzMTEsIDAuMTQwMTYzLCAwLjI1NzMyOSwgMC4zNDEyMDksIDAuNDc0OTY3LCAwLjU5MjAxLCAwLjc1OTMyNSIsIFwKLSAgICAgICAgICAiMC4wMjg0MjIsIDAuMTQwMzkxLCAwLjI1NzM4NSwgMC4zNDA4NzEsIDAuNDc0NzIsIDAuNTkyNzcyLCAwLjc1OTUwNSIsIFwKLSAgICAgICAgICAiMC4wMzgwMDIsIDAuMTQzNjYsIDAuMjU3ODE5LCAwLjM0MTA2OCwgMC40NzUxMDUsIDAuNTkyMTIyLCAwLjc1OTA0OCIsIFwKLSAgICAgICAgICAiMC4wNDYyMDQsIDAuMTQ5NzIsIDAuMjYxMDY5LCAwLjM0MjEzNSwgMC40NzQ4NDcsIDAuNTkyMTA4LCAwLjc1OTA3NyIsIFwKLSAgICAgICAgICAiMC4wNTMzMjYsIDAuMTU3MTE1LCAwLjI2NTgyMSwgMC4zNDYwMjgsIDAuNDc2OTI2LCAwLjU5MjEwNCwgMC43NTkwOSIsIFwKLSAgICAgICAgICAiMC4wNjM2MTQsIDAuMTcwNzE3LCAwLjI3NTU2NSwgMC4zNTM3NjcsIDAuNDgxOTc0LCAwLjU5NDkwMiwgMC43NTk5MTQiLCBcCi0gICAgICAgICAgIjAuMDcyMTkxLCAwLjE4NDczNSwgMC4yODU4MzQsIDAuMzYyMjM4LCAwLjQ4ODIzNiwgMC42MDA4ODQsIDAuNzYyOTI2Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDIxODg2LCAwLjExNTcxNSwgMC4yMDkzNTUsIDAuMjc2MTg0LCAwLjM4MzA5OSwgMC40NzY4MDgsIDAuNjEwNjM1IiwgXAotICAgICAgICAgICIwLjAyOTQyLCAwLjEyMzM0NywgMC4yMTY5ODIsIDAuMjgzOTA2LCAwLjM5MDgwMywgMC40ODQ1MzEsIDAuNjE3OTkzIiwgXAotICAgICAgICAgICIwLjAzODI0NCwgMC4xMzI5MTIsIDAuMjI2NTgyLCAwLjI5MzM1OSwgMC40MDA0MywgMC40OTQxMTYsIDAuNjI3NjI2IiwgXAotICAgICAgICAgICIwLjA0NTI4LCAwLjE0MjgyLCAwLjIzNjMzNCwgMC4zMDMxNjgsIDAuNDEwMDc0LCAwLjUwMzY2MiwgMC42Mzc1MjQiLCBcCi0gICAgICAgICAgIjAuMDUwNzA1LCAwLjE1MjY2LCAwLjI0NjEwNSwgMC4zMTMwMTksIDAuNDE5NzIxLCAwLjUxMzMzNSwgMC42NDcyMzgiLCBcCi0gICAgICAgICAgIjAuMDU4MTU3LCAwLjE2ODYyNywgMC4yNjE3NTcsIDAuMzI4NTc2LCAwLjQzNTQ0MywgMC41MjkyODUsIDAuNjYyNjgzIiwgXAotICAgICAgICAgICIwLjA2MzY5OCwgMC4xODI5LCAwLjI3NTgxNiwgMC4zNDIzMDIsIDAuNDQ5MzIyLCAwLjU0MjY1NCwgMC42NzYzNzkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzg3OCwgMC4yMzI3MDgsIDAuNDI1NjAzLCAwLjU2NDE1MiwgMC43ODYxMjgsIDAuOTc4MDc5LCAxLjI1NDc3IiwgXAotICAgICAgICAgICIwLjA0MTk1NCwgMC4yMzI2NzgsIDAuNDI1NTgyLCAwLjU2Mzc1MSwgMC43ODg2NTMsIDAuOTc4MDgzLCAxLjI1NzQiLCBcCi0gICAgICAgICAgIjAuMDUwMjI5LCAwLjIzMjc0MSwgMC40MjU2MTYsIDAuNTY1MDA2LCAwLjc4NDc0MiwgMC45NzgxMTEsIDEuMjU1MzUiLCBcCi0gICAgICAgICAgIjAuMDU4NzI4LCAwLjIzNjQzNCwgMC40MjYwMTIsIDAuNTY0OTY5LCAwLjc4NjUxMSwgMC45Nzg4MDEsIDEuMjU1NzIiLCBcCi0gICAgICAgICAgIjAuMDY2MTg1LCAwLjI0MTE4OCwgMC40Mjc2NjcsIDAuNTY0MDA4LCAwLjc4NjQ3NCwgMC45Nzg3OTEsIDEuMjU0NCIsIFwKLSAgICAgICAgICAiMC4wNzY4MjUsIDAuMjUxMzIsIDAuNDMzNTk3LCAwLjU2ODU5NCwgMC43ODUxODQsIDAuOTc4MjQ1LCAxLjI1NDM1IiwgXAotICAgICAgICAgICIwLjA4NTQyOCwgMC4yNjE1MjQsIDAuNDQwNDk5LCAwLjU3MjU3MSwgMC43ODc2NDYsIDAuOTgwOTAyLCAxLjI1NDU5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQU4iOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA4NzA4LCAwLjAwODc1NCwgMC4wMDg3NTksIDAuMDA4NzYxLCAwLjAwODc1MiwgMC4wMDg3NjMsIDAuMDA4Nzc0IiwgXAotICAgICAgICAgICIwLjAwODY2LCAwLjAwODcyNiwgMC4wMDg3MzcsIDAuMDA4NzQsIDAuMDA4NzQsIDAuMDA4NzQxLCAwLjAwODc0MSIsIFwKLSAgICAgICAgICAiMC4wMDg3ODUsIDAuMDA4ODI2LCAwLjAwODgzNiwgMC4wMDg4MzksIDAuMDA4ODQxLCAwLjAwODg0MywgMC4wMDg4NDMiLCBcCi0gICAgICAgICAgIjAuMDA4OTE5LCAwLjAwODkwOSwgMC4wMDg5MTgsIDAuMDA4OTIsIDAuMDA4OTIyLCAwLjAwODkyMywgMC4wMDg5MjQiLCBcCi0gICAgICAgICAgIjAuMDA5MTI4LCAwLjAwOTA2LCAwLjAwOTA2MSwgMC4wMDkwNiwgMC4wMDkwNjIsIDAuMDA5MDYxLCAwLjAwOTA2MiIsIFwKLSAgICAgICAgICAiMC4wMDk0NTksIDAuMDA5MzM1LCAwLjAwOTMyNCwgMC4wMDkzMjIsIDAuMDA5MzIsIDAuMDA5MzE4LCAwLjAwOTMxNyIsIFwKLSAgICAgICAgICAiMC4wMDk3NDIsIDAuMDA5NTY5LCAwLjAwOTU2MiwgMC4wMDk1NjEsIDAuMDA5NTU5LCAwLjAwOTU2LCAwLjAwOTU2MiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA4MzkxLCAwLjAwODU5LCAwLjAwODYxNiwgMC4wMDg2MjQsIDAuMDA4NjMxLCAwLjAwODYzNCwgMC4wMDg2MzciLCBcCi0gICAgICAgICAgIjAuMDA4MzM0LCAwLjAwODU1OCwgMC4wMDg1OTQsIDAuMDA4NjA1LCAwLjAwODYxNSwgMC4wMDg2MiwgMC4wMDg2MjUiLCBcCi0gICAgICAgICAgIjAuMDA4Mzc2LCAwLjAwODYxMywgMC4wMDg2NiwgMC4wMDg2NzUsIDAuMDA4Njg5LCAwLjAwODY5NywgMC4wMDg3MDMiLCBcCi0gICAgICAgICAgIjAuMDA4NDQ4LCAwLjAwODY3OCwgMC4wMDg3MjgsIDAuMDA4NzQ2LCAwLjAwODc2NSwgMC4wMDg3NzMsIDAuMDA4NzgxIiwgXAotICAgICAgICAgICIwLjAwODU3OCwgMC4wMDg3OTQsIDAuMDA4ODUsIDAuMDA4ODY5LCAwLjAwODg4NywgMC4wMDg4OTcsIDAuMDA4OTA1IiwgXAotICAgICAgICAgICIwLjAwODgzMywgMC4wMDkwMDMsIDAuMDA5MDYxLCAwLjAwOTA5MywgMC4wMDkxMTIsIDAuMDA5MTExLCAwLjAwOTEzMiIsIFwKLSAgICAgICAgICAiMC4wMDkwNjIsIDAuMDA5MjE4LCAwLjAwOTI3NCwgMC4wMDkyOTYsIDAuMDA5MzE2LCAwLjAwOTMyNywgMC4wMDkzMzciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjQ2LCAwLjAwNjU2NSwgMC4wMDY1NzUsIDAuMDA2NTc5LCAwLjAwNjU4MSwgMC4wMDY1ODMsIDAuMDA2NTg0IiwgXAotICAgICAgICAgICIwLjAwNjM1NywgMC4wMDY1MzIsIDAuMDA2NTY0LCAwLjAwNjU3NCwgMC4wMDY1ODQsIDAuMDA2NTg1LCAwLjAwNjU5MiIsIFwKLSAgICAgICAgICAiMC4wMDY1NiwgMC4wMDY2MjMsIDAuMDA2NjE3LCAwLjAwNjYxMiwgMC4wMDY2MDYsIDAuMDA2NjExLCAwLjAwNjYxMiIsIFwKLSAgICAgICAgICAiMC4wMDY5NTQsIDAuMDA2NzA5LCAwLjAwNjY3MSwgMC4wMDY2NjEsIDAuMDA2NjQsIDAuMDA2NjQzLCAwLjAwNjYzOCIsIFwKLSAgICAgICAgICAiMC4wMDczODksIDAuMDA2ODU4LCAwLjAwNjc1MywgMC4wMDY3MTgsIDAuMDA2Njk0LCAwLjAwNjY4MywgMC4wMDY2NzIiLCBcCi0gICAgICAgICAgIjAuMDA4Mjk1LCAwLjAwNzIyMSwgMC4wMDY5NzksIDAuMDA2OTAxLCAwLjAwNjgzNiwgMC4wMDY3OTksIDAuMDA2NzY2IiwgXAotICAgICAgICAgICIwLjAwOTAzMywgMC4wMDc2MTksIDAuMDA3MjQxLCAwLjAwNzEwMiwgMC4wMDY5ODUsIDAuMDA2OTMxLCAwLjAwNjg3MyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxMTkyLCAwLjAwMTMzNSwgMC4wMDEzNTEsIDAuMDAxMzU2LCAwLjAwMTM2LCAwLjAwMTM2MiwgMC4wMDEzNjQiLCBcCi0gICAgICAgICAgIjAuMDAxMDIyLCAwLjAwMTI1MywgMC4wMDEzMDEsIDAuMDAxMzE3LCAwLjAwMTMzMSwgMC4wMDEzMzksIDAuMDAxMzQ2IiwgXAotICAgICAgICAgICIwLjAwMTMxNywgMC4wMDEyNzUsIDAuMDAxMzA1LCAwLjAwMTMxOCwgMC4wMDEzMzEsIDAuMDAxMzM4LCAwLjAwMTM0NSIsIFwKLSAgICAgICAgICAiMC4wMDE4MjksIDAuMDAxNDAyLCAwLjAwMTM3NiwgMC4wMDEzNywgMC4wMDEzNjgsIDAuMDAxMzY3LCAwLjAwMTM2NyIsIFwKLSAgICAgICAgICAiMC4wMDIxNDcsIDAuMDAxNTM0LCAwLjAwMTQ2LCAwLjAwMTQzNiwgMC4wMDE0MTUsIDAuMDAxNDA2LCAwLjAwMTM5OCIsIFwKLSAgICAgICAgICAiMC4wMDMwNjIsIDAuMDAxODkxLCAwLjAwMTY4MywgMC4wMDE2MTIsIDAuMDAxNTYxLCAwLjAwMTUyNiwgMC4wMDE0OTMiLCBcCi0gICAgICAgICAgIjAuMDAzOTA0LCAwLjAwMjI5MiwgMC4wMDE5NTIsIDAuMDAxODIyLCAwLjAwMTcyNywgMC4wMDE2NjYsIDAuMDAxNjA3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogTkFORDJYNCAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChOQU5EMlg0KSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuNzI2NDY7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMzU4NDM2OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMzU4NDM2OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMzU3OTc0OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjA5NywgMC4wMDIwOTUsIDAuMDAyMDk1LCAwLjAwMjA5NSwgMC4wMDIwOTQsIDAuMDAyMDk0LCAwLjAwMjA5NCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjIxNCwgMC4wMDIxMzgsIDAuMDAyMTI2LCAwLjAwMjEwOSwgMC4wMDIxMDgsIDAuMDAyMTA0LCAwLjAwMjEwNCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAzNDIwNTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDM0MTk1MjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDM0MjA1OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTMyNCwgMC4wMDEzMjIsIDAuMDAxMzIyLCAwLjAwMTMyLCAwLjAwMTMxOSwgMC4wMDEzMiwgMC4wMDEzMiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjM4MiwgMC4wMDIzODMsIDAuMDAyMzg2LCAwLjAwMjM4NCwgMC4wMDIzODQsIDAuMDAyMzg0LCAwLjAwMjM4NCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjgwNzYxMzsKLSAgICBmdW5jdGlvbiA6ICIoIShBIEIpKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTQ2NDMsIDAuMDY5NTUsIDAuMTI0NDA0LCAwLjE2MzQ5NSwgMC4yMjYwOTksIDAuMjgwOTUsIDAuMzU5MTc0IiwgXAotICAgICAgICAgICIwLjAyMjgzMiwgMC4wNzc4LCAwLjEzMjU3MywgMC4xNzE3NzQsIDAuMjM0NDI4LCAwLjI4OTA1MSwgMC4zNjc0NjEiLCBcCi0gICAgICAgICAgIjAuMDMwMDYxLCAwLjA4ODEzNywgMC4xNDI4NzIsIDAuMTgxODEsIDAuMjQ0Mzk0LCAwLjI5OTMyOSwgMC4zNzc0MDYiLCBcCi0gICAgICAgICAgIjAuMDM1MDg3LCAwLjA5ODUzOSwgMC4xNTMxOTIsIDAuMTkyMjgzLCAwLjI1NDU3NCwgMC4zMDk2OTIsIDAuMzg3Nzk4IiwgXAotICAgICAgICAgICIwLjAzOTE5OSwgMC4xMDkyMjksIDAuMTYzNzQsIDAuMjAyODI4LCAwLjI2NTI5NywgMC4zMjAxOTEsIDAuMzk4MjgzIiwgXAotICAgICAgICAgICIwLjA0NDE5MywgMC4xMjU0NTIsIDAuMTgwNTU2LCAwLjIxOTU3MywgMC4yODIwNDUsIDAuMzM2NzkxLCAwLjQxNDkzNyIsIFwKLSAgICAgICAgICAiMC4wNDc2NTUsIDAuMTM3NTgyLCAwLjE5NTQ4NCwgMC4yMzQzNjIsIDAuMjk2NzYzLCAwLjM1MTQwNCwgMC40Mjk1NyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyMzkxMSwgMC4xMzkzOTIsIDAuMjU0OTg2LCAwLjMzNzQ0MSwgMC40NjkyNzUsIDAuNTg0ODE0LCAwLjc0OTY1MSIsIFwKLSAgICAgICAgICAiMC4wMjkwOSwgMC4xMzk0ODEsIDAuMjU0ODc2LCAwLjMzNzQzMSwgMC40Njk0MzksIDAuNTg0NzU5LCAwLjc0OTYzOSIsIFwKLSAgICAgICAgICAiMC4wMzg0NzcsIDAuMTQyNzg1LCAwLjI1NTI1OCwgMC4zMzcyMjIsIDAuNDY5MTgzLCAwLjU4NDg4NiwgMC43NDk2ODQiLCBcCi0gICAgICAgICAgIjAuMDQ2NTk4LCAwLjE0ODk1MSwgMC4yNTgyMzMsIDAuMzM4NjAxLCAwLjQ2OTI5NiwgMC41ODQ3MDgsIDAuNzQ5NDA3IiwgXAotICAgICAgICAgICIwLjA1MzY2NCwgMC4xNTY0NTgsIDAuMjYzMDcsIDAuMzQxODM2LCAwLjQ3MDc3MSwgMC41ODQ4OTQsIDAuNzQ5NDM2IiwgXAotICAgICAgICAgICIwLjA2Mzg2NiwgMC4xNzAwNDQsIDAuMjczMTE1LCAwLjM0OTk2OSwgMC40NzU5OTQsIDAuNTg3OTQ3LCAwLjc1MDE2NSIsIFwKLSAgICAgICAgICAiMC4wNzIwODMsIDAuMTgzMjIsIDAuMjgzNjM1LCAwLjM1ODc4OSwgMC40ODI1MTQsIDAuNTkzMjI0LCAwLjc1MzE4MiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyMzA5LCAwLjExNjk1OCwgMC4yMTA2MSwgMC4yNzczMDksIDAuMzg0NTI0LCAwLjQ3Nzg2NywgMC42MTE4MiIsIFwKLSAgICAgICAgICAiMC4wMjk0NDcsIDAuMTIzNDYzLCAwLjIxNzEzNCwgMC4yODQwMTIsIDAuMzkwOTA1LCAwLjQ4NDYyMSwgMC42MTgwNzciLCBcCi0gICAgICAgICAgIjAuMDM2NjUzLCAwLjEzMTc5LCAwLjIyNTQ0NCwgMC4yOTIyOTgsIDAuMzk5MzMzLCAwLjQ5MjkyOCwgMC42MjY0NTkiLCBcCi0gICAgICAgICAgIjAuMDQyMjc1LCAwLjEzOTkxMiwgMC4yMzM4NiwgMC4zMDA2MiwgMC40MDc3NDQsIDAuNTAxMTg4LCAwLjYzNDk5MiIsIFwKLSAgICAgICAgICAiMC4wNDY5NDUsIDAuMTQ4NTA3LCAwLjI0MjA4MSwgMC4zMDg4OTEsIDAuNDE1OTI1LCAwLjUwOTY1MSwgMC42NDMyMjkiLCBcCi0gICAgICAgICAgIjAuMDUzMzY4LCAwLjE2MjE4OSwgMC4yNTUyODEsIDAuMzIyNTQ0LCAwLjQyOTU1NSwgMC41MjMwMjcsIDAuNjU3MDI3IiwgXAotICAgICAgICAgICIwLjA1ODA2LCAwLjE3MzE1NywgMC4yNjczNTYsIDAuMzMzODEyLCAwLjQ0MTI4MiwgMC41MzQ4OTMsIDAuNjY3NjcyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM4MDkzLCAwLjIzMTU2NiwgMC40MjUwNDIsIDAuNTYyOTg5LCAwLjc4NDM0OSwgMC45NzcyODksIDEuMjU0MDEiLCBcCi0gICAgICAgICAgIjAuMDQwMTUyLCAwLjIzMTk1MywgMC40MjQ4MjYsIDAuNTYzMDE3LCAwLjc4NTgwOSwgMC45NzcyNDEsIDEuMjU2NDkiLCBcCi0gICAgICAgICAgIjAuMDQ2MDY2LCAwLjIzMjExNCwgMC40MjU3OTEsIDAuNTYzNzEsIDAuNzg0MDA1LCAwLjk3NzQ0MiwgMS4yNTY0OCIsIFwKLSAgICAgICAgICAiMC4wNTI5MTUsIDAuMjM0NjA5LCAwLjQyNTEwMSwgMC41NjMyODUsIDAuNzgzODcyLCAwLjk3OTUxNSwgMS4yNTM3IiwgXAotICAgICAgICAgICIwLjA1OTEzNiwgMC4yMzgwNzcsIDAuNDI3Mzc4LCAwLjU2NDUsIDAuNzg0NDk5LCAwLjk3NzM1NywgMS4yNTQzOSIsIFwKLSAgICAgICAgICAiMC4wNjgzNCwgMC4yNDU2NTYsIDAuNDMwNzQ5LCAwLjU2NjI0NCwgMC43ODYxMDUsIDAuOTc3MjQyLCAxLjI1NDI3IiwgXAotICAgICAgICAgICIwLjA3NTgzMywgMC4yNTI0MjksIDAuNDM2MDE3LCAwLjU2OTEwNiwgMC43ODc4ODEsIDAuOTc4NzA2LCAxLjI1Mzc5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEzNzkxLCAwLjA2OTU2MSwgMC4xMjUxOTIsIDAuMTY0ODYsIDAuMjI4NDY0LCAwLjI4NDExMywgMC4zNjM3MDUiLCBcCi0gICAgICAgICAgIjAuMDIxODEyLCAwLjA3NzczNywgMC4xMzM0MzYsIDAuMTczMTE3LCAwLjIzNjY1NywgMC4yOTIyNzMsIDAuMzcxODYxIiwgXAotICAgICAgICAgICIwLjAyODU0NSwgMC4wODgxMDgsIDAuMTQzNzI3LCAwLjE4MzQ0MSwgMC4yNDcwMTEsIDAuMzAyNjk2LCAwLjM4MjA2MSIsIFwKLSAgICAgICAgICAiMC4wMzMyNzUsIDAuMDk4NDQxLCAwLjE1Mzk1NiwgMC4xOTM2NjQsIDAuMjU2ODgxLCAwLjMxMjkxMSwgMC4zOTIxOTgiLCBcCi0gICAgICAgICAgIjAuMDM2OTYxLCAwLjEwOTExMSwgMC4xNjQ0OTQsIDAuMjA0MTYzLCAwLjI2NzY1NywgMC4zMjI4NzQsIDAuNDAyNzM2IiwgXAotICAgICAgICAgICIwLjA0MTM0MiwgMC4xMjUyNzksIDAuMTgxMzU2LCAwLjIyMDkyMSwgMC4yODQzNzcsIDAuMzQwMDE5LCAwLjQxOTM4NSIsIFwKLSAgICAgICAgICAiMC4wNDQzMTUsIDAuMTM3Mzg4LCAwLjE5NjE5MSwgMC4yMzU2OTksIDAuMjk5MDA3LCAwLjM1NDU4NCwgMC40MzQxNDMiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjI4NTksIDAuMTQwMjU4LCAwLjI1NzUxOCwgMC4zNDE1NDksIDAuNDc1NTQ2LCAwLjU5MjkwNSwgMC43NjA0MDMiLCBcCi0gICAgICAgICAgIjAuMDI4MjM3LCAwLjE0MDM3MiwgMC4yNTc1NzgsIDAuMzQxMjEsIDAuNDc1Mjg3LCAwLjU5MzU1NSwgMC43NjA1OTQiLCBcCi0gICAgICAgICAgIjAuMDM3Nzg3LCAwLjE0MzcxNCwgMC4yNTc5OTgsIDAuMzQxMjg4LCAwLjQ3NTgzLCAwLjU5MjkwNiwgMC43NjAxMzUiLCBcCi0gICAgICAgICAgIjAuMDQ1OTgyLCAwLjE0OTcwOCwgMC4yNjEyNSwgMC4zNDMxMDIsIDAuNDc1NDI0LCAwLjU5Mjg5OSwgMC43NjAzNTgiLCBcCi0gICAgICAgICAgIjAuMDUzMDUzLCAwLjE1NzA5OSwgMC4yNjYwMDgsIDAuMzQ2MzUzLCAwLjQ3NzQ5NiwgMC41OTI4OSwgMC43NjAxNjUiLCBcCi0gICAgICAgICAgIjAuMDYzMzEzLCAwLjE3MDcxOSwgMC4yNzU3NywgMC4zNTQwODYsIDAuNDgyNTM3LCAwLjU5NTYxOSwgMC43NjEwMDIiLCBcCi0gICAgICAgICAgIjAuMDcxODYxLCAwLjE4NDc3NywgMC4yODYwMzcsIDAuMzYyNTg4LCAwLjQ4ODc2NiwgMC42MDE2NDQsIDAuNzYzOTkiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjE2NjEsIDAuMTE1NDgyLCAwLjIwOTEwNiwgMC4yNzU5OTgsIDAuMzgzMDQ3LCAwLjQ3Njc2LCAwLjYxMDEzOSIsIFwKLSAgICAgICAgICAiMC4wMjkxODksIDAuMTIzMDMyLCAwLjIxNjcxMywgMC4yODM1NjIsIDAuMzkwNDQ5LCAwLjQ4NDIyMywgMC42MTc2MTMiLCBcCi0gICAgICAgICAgIjAuMDM4MTkyLCAwLjEzMjYxLCAwLjIyNjI0OSwgMC4yOTI5ODUsIDAuNDAwMDUxLCAwLjQ5MzUyOCwgMC42MjcyMzkiLCBcCi0gICAgICAgICAgIjAuMDQ0Nzc0LCAwLjE0MjU1NiwgMC4yMzYxNTUsIDAuMzAyOTEyLCAwLjQwOTg0OSwgMC41MDM0MjUsIDAuNjM3MDQyIiwgXAotICAgICAgICAgICIwLjA1MDQyMSwgMC4xNTIzNjgsIDAuMjQ1ODQzLCAwLjMxMjY3NiwgMC40MTkzNjksIDAuNTEyOTU4LCAwLjY0NjkiLCBcCi0gICAgICAgICAgIjAuMDU3NzM4LCAwLjE2ODM1MiwgMC4yNjE0NDcsIDAuMzI4MjQzLCAwLjQzNTEwMSwgMC41Mjg4NjgsIDAuNjYyNTMiLCBcCi0gICAgICAgICAgIjAuMDYzMjU4LCAwLjE4MjYyNCwgMC4yNzU1MDYsIDAuMzQxOTgxLCAwLjQ0ODk1LCAwLjU0MjI5MywgMC42NzU5OTMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzgxNjYsIDAuMjMxNTY2LCAwLjQyNDgxNCwgMC41NjI5OTEsIDAuNzg0MjE0LCAwLjk3NzgzLCAxLjI1MzYiLCBcCi0gICAgICAgICAgIjAuMDQxMzk2LCAwLjIzMTk1NywgMC40MjQ4MiwgMC41NjI5ODksIDAuNzg3ODE5LCAwLjk3NzQwMiwgMS4yNTY1MSIsIFwKLSAgICAgICAgICAiMC4wNDk1NjUsIDAuMjMyMDYsIDAuNDI0Nzg2LCAwLjU2Mzc2MywgMC43ODM4NzgsIDAuOTc3MzA3LCAxLjI1NDU3IiwgXAotICAgICAgICAgICIwLjA1ODMzNSwgMC4yMzU2NDYsIDAuNDI1MTM4LCAwLjU2NDE3NiwgMC43ODU3MzEsIDAuOTgyMTQ4LCAxLjI1NjQ1IiwgXAotICAgICAgICAgICIwLjA2NTQzMywgMC4yNDA1MzgsIDAuNDI2ODYzLCAwLjU2MzE5NSwgMC43ODU2NjYsIDAuOTc4NTk0LCAxLjI1MzU1IiwgXAotICAgICAgICAgICIwLjA3NjI3OSwgMC4yNTA3MDMsIDAuNDMyNTMsIDAuNTY3ODUyLCAwLjc4NDQyNCwgMC45NzczOTQsIDEuMjUzNzciLCBcCi0gICAgICAgICAgIjAuMDg0ODY3LCAwLjI2MDkwMSwgMC40Mzk4MzEsIDAuNTcxOTA1LCAwLjc4NjkwNywgMC45ODAwNzQsIDEuMjUzNjQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwODYxMiwgMC4wMDg2NTUsIDAuMDA4NjU5LCAwLjAwODY2LCAwLjAwODY2MiwgMC4wMDg2NjEsIDAuMDA4NjYzIiwgXAotICAgICAgICAgICIwLjAwODU3LCAwLjAwODYxNywgMC4wMDg2MjksIDAuMDA4NjMzLCAwLjAwODYzNSwgMC4wMDg2MzcsIDAuMDA4NjM4IiwgXAotICAgICAgICAgICIwLjAwODgwMiwgMC4wMDg3NDIsIDAuMDA4NzAzLCAwLjAwODY4MywgMC4wMDg2NzMsIDAuMDA4NjY2LCAwLjAwODY1NCIsIFwKLSAgICAgICAgICAiMC4wMDkyMTksIDAuMDA4ODUsIDAuMDA4NzczLCAwLjAwODc0MywgMC4wMDg3MTIsIDAuMDA4NzA1LCAwLjAwODY5MiIsIFwKLSAgICAgICAgICAiMC4wMDk3MzIsIDAuMDA5MDIzLCAwLjAwODg3MywgMC4wMDg4MjgsIDAuMDA4Nzg0LCAwLjAwODc2LCAwLjAwODczOCIsIFwKLSAgICAgICAgICAiMC4wMTA1ODUsIDAuMDA5NDI1LCAwLjAwOTEyMywgMC4wMDkwMjUsIDAuMDA4OTM5LCAwLjAwODg4OCwgMC4wMDg4NDEiLCBcCi0gICAgICAgICAgIjAuMDExNDkyLCAwLjAwOTg1NSwgMC4wMDk0MTEsIDAuMDA5MjUsIDAuMDA5MTExLCAwLjAwOTAzNCwgMC4wMDg5NjEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDY4OSwgMC4wMDA4MTYsIDAuMDAwODI5LCAwLjAwMDgzMywgMC4wMDA4MzcsIDAuMDAwODM5LCAwLjAwMDg0IiwgXAotICAgICAgICAgICIwLjAwMDQyOSwgMC4wMDA3MTgsIDAuMDAwNzcxLCAwLjAwMDc4OSwgMC4wMDA4MDQsIDAuMDAwODEyLCAwLjAwMDgyIiwgXAotICAgICAgICAgICIwLjAwMDQ5LCAwLjAwMDY2NiwgMC4wMDA3MzMsIDAuMDAwNzU3LCAwLjAwMDc4LCAwLjAwMDc5MiwgMC4wMDA4MDMiLCBcCi0gICAgICAgICAgIjAuMDAwNzI5LCAwLjAwMDY5LCAwLjAwMDczNiwgMC4wMDA3NTcsIDAuMDAwNzc3LCAwLjAwMDc4OSwgMC4wMDA4IiwgXAotICAgICAgICAgICIwLjAwMTA3NiwgMC4wMDA3NywgMC4wMDA3NzYsIDAuMDAwNzg1LCAwLjAwMDc5NSwgMC4wMDA4MDMsIDAuMDAwODExIiwgXAotICAgICAgICAgICIwLjAwMTc5NCwgMC4wMDEwMSwgMC4wMDA5MDYsIDAuMDAwODg2LCAwLjAwMDg3MSwgMC4wMDA4NjksIDAuMDAwODU4IiwgXAotICAgICAgICAgICIwLjAwMjUxMywgMC4wMDEyNzUsIDAuMDAxMDc3LCAwLjAwMTAyMSwgMC4wMDA5ODQsIDAuMDAwOTU4LCAwLjAwMDkyNiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2NzEsIDAuMDA2ODEzLCAwLjAwNjgyNSwgMC4wMDY4MjksIDAuMDA2ODMxLCAwLjAwNjgzMywgMC4wMDY4MzYiLCBcCi0gICAgICAgICAgIjAuMDA2NjA4LCAwLjAwNjc4NCwgMC4wMDY4MTQsIDAuMDA2ODI4LCAwLjAwNjgzNSwgMC4wMDY4MzcsIDAuMDA2ODQ0IiwgXAotICAgICAgICAgICIwLjAwNjgyLCAwLjAwNjg2NiwgMC4wMDY4NjYsIDAuMDA2ODY1LCAwLjAwNjg2MiwgMC4wMDY4NjIsIDAuMDA2ODYiLCBcCi0gICAgICAgICAgIjAuMDA3MjA5LCAwLjAwNjk1NSwgMC4wMDY5MjEsIDAuMDA2OTE3LCAwLjAwNjg5LCAwLjAwNjg5MywgMC4wMDY4ODciLCBcCi0gICAgICAgICAgIjAuMDA3NjQ2LCAwLjAwNzEwNywgMC4wMDcwMDMsIDAuMDA2OTcsIDAuMDA2OTUsIDAuMDA2OTM0LCAwLjAwNjkyMyIsIFwKLSAgICAgICAgICAiMC4wMDg1NTUsIDAuMDA3NDczLCAwLjAwNzIzMSwgMC4wMDcxNTUsIDAuMDA3MDk3LCAwLjAwNzA1MSwgMC4wMDcwMTgiLCBcCi0gICAgICAgICAgIjAuMDA5Mjk1LCAwLjAwNzg3MSwgMC4wMDc0OTEsIDAuMDA3MzU0LCAwLjAwNzI0MiwgMC4wMDcxNzYsIDAuMDA3MTIyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDA2NzksIDAuMDAwODIyLCAwLjAwMDgzOCwgMC4wMDA4NDIsIDAuMDAwODQ3LCAwLjAwMDg0OCwgMC4wMDA4NSIsIFwKLSAgICAgICAgICAiMC4wMDA1MDksIDAuMDAwNzQsIDAuMDAwNzg4LCAwLjAwMDgwNCwgMC4wMDA4MTgsIDAuMDAwODI1LCAwLjAwMDgzMiIsIFwKLSAgICAgICAgICAiMC4wMDA3MiwgMC4wMDA3NjgsIDAuMDAwNzk2LCAwLjAwMDgxMiwgMC4wMDA4MiwgMC4wMDA4MjYsIDAuMDAwODMzIiwgXAotICAgICAgICAgICIwLjAwMTE3NywgMC4wMDA4NDYsIDAuMDAwODM0LCAwLjAwMDg0MiwgMC4wMDA4MzksIDAuMDAwODQxLCAwLjAwMDg0NCIsIFwKLSAgICAgICAgICAiMC4wMDE2NDMsIDAuMDAxMDIyLCAwLjAwMDk0NywgMC4wMDA5MjMsIDAuMDAwOTAyLCAwLjAwMDg5MywgMC4wMDA4ODUiLCBcCi0gICAgICAgICAgIjAuMDAyNTU3LCAwLjAwMTM3OSwgMC4wMDExNzEsIDAuMDAxMDk5LCAwLjAwMTA0OSwgMC4wMDEwMTMsIDAuMDAwOTgiLCBcCi0gICAgICAgICAgIjAuMDAzNDAxLCAwLjAwMTc4LCAwLjAwMTQ0LCAwLjAwMTMwOSwgMC4wMDEyMTQsIDAuMDAxMTUzLCAwLjAwMTA5NCIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IE5BTkQyWEwgKgotICogLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoTkFORDJYTCkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjExNzE0MjsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjEwMDAxOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYxMDAwMTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2MDkzMjc7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjk2LCAwLjAwMDI5NiwgMC4wMDAyOTYsIDAuMDAwMjk2LCAwLjAwMDI5NiwgMC4wMDAyOTYsIDAuMDAwMjk2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzE3LCAwLjAwMDMwNiwgMC4wMDAzMDEsIDAuMDAwMjk4LCAwLjAwMDI5OCwgMC4wMDAyOTgsIDAuMDAwMjk4Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2NzM5OTI7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjczODk7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjczOTkyOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDE2MSwgMC4wMDAxNjEsIDAuMDAwMTYxLCAwLjAwMDE2MSwgMC4wMDAxNjEsIDAuMDAwMTYxLCAwLjAwMDE2MSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDMzNywgMC4wMDAzMzgsIDAuMDAwMzM4LCAwLjAwMDMzOCwgMC4wMDAzMzgsIDAuMDAwMzM4LCAwLjAwMDMzOCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjEyODYwODsKLSAgICBmdW5jdGlvbiA6ICIoIShBIEIpKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDYwMzQyLCAwLjA3MDg3MiwgMC4xNjU2NTksIDAuMzIzODM4LCAwLjQ4MTQ1MywgMC44NDk4OTksIDEuMDYxNDUiLCBcCi0gICAgICAgICAgIjAuMDY4NDE4LCAwLjA3ODk0LCAwLjE3MzcwOCwgMC4zMzE1MzgsIDAuNDg5ODU5LCAwLjg1NzU2MSwgMS4wNjgxNyIsIFwKLSAgICAgICAgICAiMC4wNzgzNTYsIDAuMDg4ODUxLCAwLjE4MzY0NCwgMC4zNDE0MjQsIDAuNDk5MTk4LCAwLjg2NzUxOCwgMS4wNzg5NiIsIFwKLSAgICAgICAgICAiMC4wODg3MzYsIDAuMDk5MTc3LCAwLjE5MzcyMSwgMC4zNTE3NDYsIDAuNTA5MzY5LCAwLjg3NzU5MiwgMS4wODg2NyIsIFwKLSAgICAgICAgICAiMC4wOTkwODgsIDAuMTA5NTMzLCAwLjIwMzg4NywgMC4zNjA5NjUsIDAuNTE5NDc4LCAwLjg4ODIzNSwgMS4wOTgxNSIsIFwKLSAgICAgICAgICAiMC4xMTM1MzYsIDAuMTI1Mzc5LCAwLjIyMDEyOSwgMC4zNzc3NTQsIDAuNTM1NTg3LCAwLjkwMzkwNiwgMS4xMTQyOSIsIFwKLSAgICAgICAgICAiMC4xMjQwNjIsIDAuMTM3MTU4LCAwLjIzNDU2MiwgMC4zOTE5NywgMC41NDk4NzcsIDAuOTE3OTk2LCAxLjEyODY4Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEyMDE0NSwgMC4xNDIzNDIsIDAuMzQxNjk3LCAwLjY3Mzk2NywgMS4wMDYwOCwgMS43ODA4NSwgMi4yMjQzOSIsIFwKLSAgICAgICAgICAiMC4xMjA0NiwgMC4xNDIzOTIsIDAuMzQxNzE3LCAwLjY3Mzc5OSwgMS4wMDYyOSwgMS43ODA0MiwgMi4yMjUwMiIsIFwKLSAgICAgICAgICAiMC4xMjQ4MTQsIDAuMTQ1ODAxLCAwLjM0MTY2MywgMC42NzM4OCwgMS4wMDU3OSwgMS43ODE2NywgMi4yMjQwNSIsIFwKLSAgICAgICAgICAiMC4xMzE2NTEsIDAuMTUxODc5LCAwLjM0Mjk1NywgMC42NzM4MDgsIDEuMDA2MzEsIDEuNzgyMzEsIDIuMjIzOTIiLCBcCi0gICAgICAgICAgIjAuMTM5ODI2LCAwLjE1OTQ4LCAwLjM0NjMyNiwgMC42NzM5MTQsIDEuMDA1NjEsIDEuNzgxNDYsIDIuMjIyNDgiLCBcCi0gICAgICAgICAgIjAuMTU0MzA0LCAwLjE3MzE5OSwgMC4zNTQ0MDQsIDAuNjc1NzMzLCAxLjAwNjMsIDEuNzgwMDQsIDIuMjIzMDIiLCBcCi0gICAgICAgICAgIjAuMTY3NzU4LCAwLjE4NjM2MSwgMC4zNjM0NDksIDAuNjc5NzM0LCAxLjAwNjMyLCAxLjc4MjEsIDIuMjIzMjciKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk1NDQsIDAuMTEyMzQsIDAuMjY0OTA0LCAwLjUxODkxOSwgMC43NzI4MjMsIDEuMzY1MjYsIDEuNzA1MTMiLCBcCi0gICAgICAgICAgIjAuMTAxNzA2LCAwLjExODY5MSwgMC4yNzEzNjMsIDAuNTI1MDQzLCAwLjc3ODk0MiwgMS4zNzE3OSwgMS43MTA1NSIsIFwKLSAgICAgICAgICAiMC4xMDk1MTMsIDAuMTI2NTcsIDAuMjc5MDY2LCAwLjUzMzAwOSwgMC43ODY5NDYsIDEuMzgwMTQsIDEuNzE4NDYiLCBcCi0gICAgICAgICAgIjAuMTE3NDU5LCAwLjEzNDQ1NywgMC4yODczLCAwLjU0MTMwNiwgMC43OTUyMTEsIDEuMzg4OTIsIDEuNzI2IiwgXAotICAgICAgICAgICIwLjEyNjA1MywgMC4xNDIyNzMsIDAuMjk0ODc4LCAwLjU0OTAzNywgMC44MDMzNDksIDEuMzk1MjIsIDEuNzM0MDkiLCBcCi0gICAgICAgICAgIjAuMTM4NTI4LCAwLjE1NTUwMiwgMC4zMDc1NTEsIDAuNTYxOTQxLCAwLjgxNTk2OCwgMS40MDgyOSwgMS43NDY1NyIsIFwKLSAgICAgICAgICAiMC4xNDg0NzMsIDAuMTY2MjE0LCAwLjMxODYyNiwgMC41NzM0NzcsIDAuODI3NzMxLCAxLjQxOTk2LCAxLjc1ODYzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE4Njk2NiwgMC4yMjE5NDcsIDAuNTM1MjI3LCAxLjA1NzE2LCAxLjU3OTA4LCAyLjc5Nzk5LCAzLjQ5NTQ2IiwgXAotICAgICAgICAgICIwLjE4NzM4NiwgMC4yMjE4MTEsIDAuNTM1MzI4LCAxLjA1ODY0LCAxLjU4MzA5LCAyLjc5NzUxLCAzLjQ5NjEzIiwgXAotICAgICAgICAgICIwLjE4ODQ1OCwgMC4yMjI5NTUsIDAuNTM3NjYxLCAxLjA2MjE4LCAxLjU4MTcxLCAyLjc5ODM4LCAzLjQ5MzUxIiwgXAotICAgICAgICAgICIwLjE5MTI3MSwgMC4yMjUxNTMsIDAuNTM2MjIsIDEuMDU3OTksIDEuNTg3MSwgMi44MTIzLCAzLjUwMTU4IiwgXAotICAgICAgICAgICIwLjE5NjIyNywgMC4yMjg3ODMsIDAuNTM1ODY3LCAxLjA1OTU4LCAxLjU3OTExLCAyLjgwMzgsIDMuNDk2MTMiLCBcCi0gICAgICAgICAgIjAuMjA0NDAxLCAwLjIzNjg0OCwgMC41MzgyNDgsIDEuMDU5NTksIDEuNTc5MjUsIDIuNzk3MzYsIDMuNTAxNTUiLCBcCi0gICAgICAgICAgIjAuMjEyMzIxLCAwLjI0NDI0NSwgMC41NDI1NzIsIDEuMDU3NSwgMS41ODA0NCwgMi44MDMwNSwgMy40OTM1NiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTkyNDMsIDAuMDY5Nzg0LCAwLjE2NDU2OCwgMC4zMjI3MTMsIDAuNDgwNjgzLCAwLjg0ODgxMSwgMS4wNjAzNSIsIFwKLSAgICAgICAgICAiMC4wNjczMzYsIDAuMDc3ODQxLCAwLjE3MjYzNiwgMC4zMzA2OTMsIDAuNDg4NjA4LCAwLjg1NzA2OCwgMS4wNjcxOCIsIFwKLSAgICAgICAgICAiMC4wNzcyMjgsIDAuMDg3NzMxLCAwLjE4MjU0MSwgMC4zNDAyODMsIDAuNDk4MTI2LCAwLjg2NjQ2OCwgMS4wNzc5MSIsIFwKLSAgICAgICAgICAiMC4wODc1OSwgMC4wOTgwMzIsIDAuMTkyNjA5LCAwLjM1MDY0OSwgMC41MDgyODYsIDAuODc2NTM2LCAxLjA4NzYxIiwgXAotICAgICAgICAgICIwLjA5Nzg1NiwgMC4xMDgzNjEsIDAuMjAyNzYxLCAwLjM1OTgyOCwgMC41MTgzOTIsIDAuODg3MTgxLCAxLjA5NzEiLCBcCi0gICAgICAgICAgIjAuMTEyMDI5LCAwLjEyNDA0NCwgMC4yMTg5OSwgMC4zNzY3MTMsIDAuNTM0NDkxLCAwLjkwMjgzMiwgMS4xMTMyMyIsIFwKLSAgICAgICAgICAiMC4xMjIzOTUsIDAuMTM1NTUyLCAwLjIzMzQwMSwgMC4zOTA5MjEsIDAuNTQ4ODA4LCAwLjkxNjkyLCAxLjEyNzI4Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExODY2MSwgMC4xNDA4MTYsIDAuMzQwMjgzLCAwLjY3MjQzNywgMS4wMDQxOSwgMS43NzkzMiwgMi4yMjMxOSIsIFwKLSAgICAgICAgICAiMC4xMTg4NzgsIDAuMTQwNzMyLCAwLjM0MDE4NywgMC42NzIwNjcsIDEuMDA0MzMsIDEuNzc5NDYsIDIuMjIzMDEiLCBcCi0gICAgICAgICAgIjAuMTIzMzg5LCAwLjE0NDQ1NSwgMC4zNDAwNDMsIDAuNjcxODI1LCAxLjAwMzc5LCAxLjc4MTE4LCAyLjIyMTkiLCBcCi0gICAgICAgICAgIjAuMTMwMjEzLCAwLjE1MDQyNCwgMC4zNDE0MjcsIDAuNjcyMTg0LCAxLjAwNDU5LCAxLjc4MTY4LCAyLjIyMjI1IiwgXAotICAgICAgICAgICIwLjEzODM4NSwgMC4xNTc5NzUsIDAuMzQ0ODA3LCAwLjY3MjM2NiwgMS4wMDQwMiwgMS43Nzk2OCwgMi4yMjExMiIsIFwKLSAgICAgICAgICAiMC4xNTM0NywgMC4xNzE4NjUsIDAuMzUzMzc0LCAwLjY3NDQ5MSwgMS4wMDUzMiwgMS43Nzg1NSwgMi4yMjEwMiIsIFwKLSAgICAgICAgICAiMC4xNjY3OTgsIDAuMTg1ODE3LCAwLjM2MjAwNCwgMC42NzkwNDksIDEuMDA0MjksIDEuNzgxMTgsIDIuMjI0NzEiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk0MDM5LCAwLjExMDk1NSwgMC4yNjMyNjIsIDAuNTE3MTU3LCAwLjc3MDk3OCwgMS4zNjMyMiwgMS43MDE5NyIsIFwKLSAgICAgICAgICAiMC4xMDEzOSwgMC4xMTgzOTcsIDAuMjcwNzI5LCAwLjUyNDg0OSwgMC43NzkwMjEsIDEuMzcxODEsIDEuNzA5MTgiLCBcCi0gICAgICAgICAgIjAuMTEwODk1LCAwLjEyNzg1MSwgMC4yODAyNjcsIDAuNTM0NjAyLCAwLjc4Nzk1NywgMS4zODEsIDEuNzIwMjMiLCBcCi0gICAgICAgICAgIjAuMTIwNTU3LCAwLjEzNzQwNywgMC4yODk5NTIsIDAuNTQzODExLCAwLjc5ODA3MywgMS4zODk2NSwgMS43MjkyNCIsIFwKLSAgICAgICAgICAiMC4xMzAzOCwgMC4xNDcyNiwgMC4yOTkyNjQsIDAuNTUzMjI1LCAwLjgwNzIxLCAxLjM5OTQxLCAxLjczODg0IiwgXAotICAgICAgICAgICIwLjE0NjI1NSwgMC4xNjMwMjUsIDAuMzE0NTc1LCAwLjU2ODM3NSwgMC44MjIyNTEsIDEuNDE0NDksIDEuNzU0MDMiLCBcCi0gICAgICAgICAgIjAuMTU5Nzg5LCAwLjE3NjExNSwgMC4zMjgxODgsIDAuNTgxODAzLCAwLjgzNTYwMiwgMS40MjgwMSwgMS43Njc2NyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xODcxNDQsIDAuMjIyMzExLCAwLjUzNjI1NCwgMS4wNTk2MiwgMS41ODI4OCwgMi43OTkwNiwgMy40OTU4OSIsIFwKLSAgICAgICAgICAiMC4xODcwOTMsIDAuMjIxNzg5LCAwLjUzNTc3MiwgMS4wNTcwMywgMS41NzkyNywgMi43OTc1MSwgMy40OTkiLCBcCi0gICAgICAgICAgIjAuMTg4OTUyLCAwLjIyMzA2MywgMC41MzU0NDgsIDEuMDU3MjgsIDEuNTgyODMsIDIuNzk3MTYsIDMuNDk0NTIiLCBcCi0gICAgICAgICAgIjAuMTkzMjkzLCAwLjIyNjUwNSwgMC41MzUwNzUsIDEuMDU4MjUsIDEuNTc5NywgMi44MDM3LCAzLjQ5NDQzIiwgXAotICAgICAgICAgICIwLjE5OTI3MSwgMC4yMzE2NDIsIDAuNTM2NzU2LCAxLjA1NzIyLCAxLjU3OTA0LCAyLjgwMTU4LCAzLjQ5MzU5IiwgXAotICAgICAgICAgICIwLjIxMDc1MSwgMC4yNDIzNTQsIDAuNTQwNjU0LCAxLjA1OTU0LCAxLjU4NzE3LCAyLjgxMTIxLCAzLjQ5MzY0IiwgXAotICAgICAgICAgICIwLjIyMTk2LCAwLjI1MTk0NSwgMC41NDYxMTcsIDEuMDU4MDYsIDEuNTgyODUsIDIuNzk3NSwgMy40OTQ2OCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTUxMiwgMC4wMDE1MTIsIDAuMDAxNTEzLCAwLjAwMTUxMiwgMC4wMDE1MTIsIDAuMDAxNTEyLCAwLjAwMTUxMiIsIFwKLSAgICAgICAgICAiMC4wMDE1MDgsIDAuMDAxNTA5LCAwLjAwMTUxLCAwLjAwMTUxMSwgMC4wMDE1MDksIDAuMDAxNTEsIDAuMDAxNTExIiwgXAotICAgICAgICAgICIwLjAwMTUzLCAwLjAwMTUyOCwgMC4wMDE1MTksIDAuMDAxNTE0LCAwLjAwMTUxMiwgMC4wMDE1MSwgMC4wMDE1MSIsIFwKLSAgICAgICAgICAiMC4wMDE1NiwgMC4wMDE1NTMsIDAuMDAxNTMxLCAwLjAwMTUyMiwgMC4wMDE1MTgsIDAuMDAxNTEzLCAwLjAwMTUxMiIsIFwKLSAgICAgICAgICAiMC4wMDE2MDMsIDAuMDAxNTkxLCAwLjAwMTU1LCAwLjAwMTUzLCAwLjAwMTUyNiwgMC4wMDE1MTcsIDAuMDAxNTE2IiwgXAotICAgICAgICAgICIwLjAwMTY5NCwgMC4wMDE2NzIsIDAuMDAxNTkyLCAwLjAwMTU1NywgMC4wMDE1NDQsIDAuMDAxNTMsIDAuMDAxNTI0IiwgXAotICAgICAgICAgICIwLjAwMTc5MywgMC4wMDE3NTcsIDAuMDAxNjM2LCAwLjAwMTU4MiwgMC4wMDE1NjIsIDAuMDAxNTQyLCAwLjAwMTUzNiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDIxMSwgMC4wMDAyMTEsIDAuMDAwMjE0LCAwLjAwMDIxNSwgMC4wMDAyMTUsIDAuMDAwMjE1LCAwLjAwMDIxNSIsIFwKLSAgICAgICAgICAiMC4wMDAxOTYsIDAuMDAwMTk4LCAwLjAwMDIwOCwgMC4wMDAyMTIsIDAuMDAwMjEzLCAwLjAwMDIxNCwgMC4wMDAyMTQiLCBcCi0gICAgICAgICAgIjAuMDAwMTkzLCAwLjAwMDE5NSwgMC4wMDAyMDUsIDAuMDAwMjEsIDAuMDAwMjEyLCAwLjAwMDIxMywgMC4wMDAyMTQiLCBcCi0gICAgICAgICAgIjAuMDAwMjA1LCAwLjAwMDIwNiwgMC4wMDAyMDksIDAuMDAwMjEyLCAwLjAwMDIxMywgMC4wMDAyMTQsIDAuMDAwMjE0IiwgXAotICAgICAgICAgICIwLjAwMDIzMSwgMC4wMDAyMjYsIDAuMDAwMjE5LCAwLjAwMDIxNywgMC4wMDAyMTYsIDAuMDAwMjE2LCAwLjAwMDIxNiIsIFwKLSAgICAgICAgICAiMC4wMDAyODgsIDAuMDAwMjgsIDAuMDAwMjQ1LCAwLjAwMDIzMSwgMC4wMDAyMjYsIDAuMDAwMjIxLCAwLjAwMDIyIiwgXAotICAgICAgICAgICIwLjAwMDM0OSwgMC4wMDAzMzIsIDAuMDAwMjcxLCAwLjAwMDI1LCAwLjAwMDI0LCAwLjAwMDIzLCAwLjAwMDIyNyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTIyNSwgMC4wMDEyMjUsIDAuMDAxMjI3LCAwLjAwMTIyOCwgMC4wMDEyMjksIDAuMDAxMjI5LCAwLjAwMTIyOSIsIFwKLSAgICAgICAgICAiMC4wMDEyMiwgMC4wMDEyMjEsIDAuMDAxMjI3LCAwLjAwMTIyOSwgMC4wMDEyMywgMC4wMDEyMywgMC4wMDEyMyIsIFwKLSAgICAgICAgICAiMC4wMDEyMzcsIDAuMDAxMjM2LCAwLjAwMTIzNCwgMC4wMDEyMzMsIDAuMDAxMjMyLCAwLjAwMTIzMywgMC4wMDEyMzMiLCBcCi0gICAgICAgICAgIjAuMDAxMjYxLCAwLjAwMTI1NywgMC4wMDEyNDQsIDAuMDAxMjM5LCAwLjAwMTIzNiwgMC4wMDEyMzUsIDAuMDAxMjM0IiwgXAotICAgICAgICAgICIwLjAwMTMwMSwgMC4wMDEyOTIsIDAuMDAxMjYxLCAwLjAwMTI0NywgMC4wMDEyNDMsIDAuMDAxMjM4LCAwLjAwMTIzNyIsIFwKLSAgICAgICAgICAiMC4wMDEzODYsIDAuMDAxMzY3LCAwLjAwMTI5OCwgMC4wMDEyNzEsIDAuMDAxMjYsIDAuMDAxMjQ4LCAwLjAwMTI0NCIsIFwKLSAgICAgICAgICAiMC4wMDE0NzksIDAuMDAxNDQ3LCAwLjAwMTM0LCAwLjAwMTI5NSwgMC4wMDEyNzgsIDAuMDAxMjU5LCAwLjAwMTI1NSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDIxLCAwLjAwMDIxMSwgMC4wMDAyMTQsIDAuMDAwMjE1LCAwLjAwMDIxNSwgMC4wMDAyMTUsIDAuMDAwMjE1IiwgXAotICAgICAgICAgICIwLjAwMDIwMywgMC4wMDAyMDQsIDAuMDAwMjEsIDAuMDAwMjEzLCAwLjAwMDIxNCwgMC4wMDAyMTUsIDAuMDAwMjE1IiwgXAotICAgICAgICAgICIwLjAwMDIxLCAwLjAwMDIxMSwgMC4wMDAyMTMsIDAuMDAwMjE0LCAwLjAwMDIxNCwgMC4wMDAyMTUsIDAuMDAwMjE1IiwgXAotICAgICAgICAgICIwLjAwMDIzNywgMC4wMDAyMzMsIDAuMDAwMjI0LCAwLjAwMDIyLCAwLjAwMDIxOCwgMC4wMDAyMTcsIDAuMDAwMjE3IiwgXAotICAgICAgICAgICIwLjAwMDI3NSwgMC4wMDAyNjgsIDAuMDAwMjQxLCAwLjAwMDIyOSwgMC4wMDAyMjUsIDAuMDAwMjIxLCAwLjAwMDIyIiwgXAotICAgICAgICAgICIwLjAwMDM1NiwgMC4wMDAzMzksIDAuMDAwMjc3LCAwLjAwMDI1MywgMC4wMDAyNDEsIDAuMDAwMjMxLCAwLjAwMDIyOCIsIFwKLSAgICAgICAgICAiMC4wMDA0NCwgMC4wMDA0MTIsIDAuMDAwMzIsIDAuMDAwMjc4LCAwLjAwMDI2MSwgMC4wMDAyNDIsIDAuMDAwMjM3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogTkFORDNYMiAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChOQU5EM1gyKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuNTQyOTQ0OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE5MDgzNTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE5MDgzNTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE5MDQ1NzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDEwNDksIDAuMDAxMDQ3LCAwLjAwMTA0NywgMC4wMDEwNDYsIDAuMDAxMDQ3LCAwLjAwMTA0NywgMC4wMDEwNDciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDEwNDksIDAuMDAxMDUsIDAuMDAxMDUsIDAuMDAxMDUxLCAwLjAwMTA0OSwgMC4wMDEwNTEsIDAuMDAxMDUxIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE4MzAxMzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE4MzAxMzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE4Mjc3ODsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDEwNDksIDAuMDAxMDQ4LCAwLjAwMTA0NywgMC4wMDEwNDcsIDAuMDAxMDQ3LCAwLjAwMTA0NywgMC4wMDEwNDciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDEwNDksIDAuMDAxMDUsIDAuMDAxMDUxLCAwLjAwMTA1MiwgMC4wMDEwNTIsIDAuMDAxMDUyLCAwLjAwMTA1MiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQykgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNjkxNTU7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNjkxMDI7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNjkxNTU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNjIxLCAwLjAwMDYxOSwgMC4wMDA2MiwgMC4wMDA2MTksIDAuMDAwNjE5LCAwLjAwMDYxOCwgMC4wMDA2MTkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDExOTEsIDAuMDAxMTkyLCAwLjAwMTE5MiwgMC4wMDExOTIsIDAuMDAxMTkyLCAwLjAwMTE5MiwgMC4wMDExOTIiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4yNzYyMDc7Ci0gICAgZnVuY3Rpb24gOiAiKCEoKEEgQikgQykpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjQzMzMsIDAuMTAxNjkzLCAwLjE2MzMyMSwgMC4yNDA0OCwgMC4zMTc0ODcsIDAuMzk0NzI0LCAwLjQ3MTczNyIsIFwKLSAgICAgICAgICAiMC4wMzI1NywgMC4xMDk4NjIsIDAuMTcxNTY1LCAwLjI0ODU2NCwgMC4zMjU1OTYsIDAuNDAyODY5LCAwLjQ3OTY5NCIsIFwKLSAgICAgICAgICAiMC4wNDI3OTMsIDAuMTIwMDM4LCAwLjE4MTcxLCAwLjI1ODg3OCwgMC4zMzU4ODQsIDAuNDEyODk1LCAwLjQ4OTgxMiIsIFwKLSAgICAgICAgICAiMC4wNTA0MjUsIDAuMTMwNTA1LCAwLjE5MjA5MSwgMC4yNjkwNzcsIDAuMzQ2MjU1LCAwLjQyMzM4NywgMC41MDAxODkiLCBcCi0gICAgICAgICAgIjAuMDU2NTAyLCAwLjE0MTA2MywgMC4yMDI2MzUsIDAuMjc5NjIsIDAuMzU1ODc4LCAwLjQzMzc3NSwgMC41MTA3OTkiLCBcCi0gICAgICAgICAgIjAuMDY0Mjg1LCAwLjE1ODEyNiwgMC4yMTk0MjcsIDAuMjk2MzE1LCAwLjM3MzMyMiwgMC40NTA0OTIsIDAuNTI3NTA1IiwgXAotICAgICAgICAgICIwLjA2OTgxOCwgMC4xNzI5MjYsIDAuMjM0MjAzLCAwLjMxMDk4MSwgMC4zODc5OTUsIDAuNDY0OTI3LCAwLjU0MjA5OCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDM2NjYsIDAuMjA1OTI3LCAwLjMzNTcwOCwgMC40OTgwNzcsIDAuNjYwMTM3LCAwLjgyMjY0OCwgMC45ODQ0ODgiLCBcCi0gICAgICAgICAgIjAuMDQ2NzIsIDAuMjA1ODQ1LCAwLjMzNTY1OCwgMC40OTc5MDEsIDAuNjYwMTQyLCAwLjgyMjUwOCwgMC45ODQ1MzIiLCBcCi0gICAgICAgICAgIjAuMDU0Nzg0LCAwLjIwNzAzNSwgMC4zMzU1ODQsIDAuNDk4MDM2LCAwLjY2MDM2NSwgMC44MjI1NjYsIDAuOTg0NTU2IiwgXAotICAgICAgICAgICIwLjA2NDM5NCwgMC4yMTExOTQsIDAuMzM2ODkxLCAwLjQ5NzU4NiwgMC42NjAxMDksIDAuODIyNDYxLCAwLjk4NDg5NyIsIFwKLSAgICAgICAgICAiMC4wNzM0MzIsIDAuMjE2OTkyLCAwLjM0MDIzMSwgMC40OTg4LCAwLjY2MDA0NCwgMC44MjIzMzMsIDAuOTg0NjMxIiwgXAotICAgICAgICAgICIwLjA4NjQ0OSwgMC4yMjg2NTMsIDAuMzQ4Mjk0LCAwLjUwMzQ4MSwgMC42NjIxLCAwLjgyMjY1OCwgMC45ODQ2MDkiLCBcCi0gICAgICAgICAgIjAuMDk2ODExLCAwLjI0MDIxNCwgMC4zNTcxNDYsIDAuNTA5NTk1LCAwLjY2NTg0NywgMC44MjQ5LCAwLjk4NTAzMSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTUzOTgsIDAuMjQ0MzMyLCAwLjM5NTQ0OSwgMC41ODQ3MTQsIDAuNzczMDg4LCAwLjk2MTY4NSwgMS4xNTE1NiIsIFwKLSAgICAgICAgICAiMC4wNjA1LCAwLjI0OTc0MywgMC40MDEyMywgMC41ODk3MjQsIDAuNzc4NDY1LCAwLjk2NzMxMiwgMS4xNTY1OCIsIFwKLSAgICAgICAgICAiMC4wNjY0NSwgMC4yNTU4NTIsIDAuNDA3MTI0LCAwLjU5NTgwNiwgMC43ODQ3MDIsIDAuOTc0MTA3LCAxLjE2MjA1IiwgXAotICAgICAgICAgICIwLjA3MjUxMSwgMC4yNjE5NTQsIDAuNDEzMzg2LCAwLjYwMTk5MywgMC43OTA5MTcsIDAuOTc5NTU5LCAxLjE2ODQzIiwgXAotICAgICAgICAgICIwLjA3Nzk3MiwgMC4yNjgwMDQsIDAuNDE5MTA3LCAwLjYwNzk4NiwgMC43OTcyMTEsIDAuOTg2MTYsIDEuMTc0MzQiLCBcCi0gICAgICAgICAgIjAuMDg1ODQ5LCAwLjI3NzcxMywgMC40MjkxMjEsIDAuNjE4MjQ0LCAwLjgwNzA1LCAwLjk5NTkyNSwgMS4xODUyNCIsIFwKLSAgICAgICAgICAiMC4wOTIyNTYsIDAuMjg2MzYzLCAwLjQzNzUwMiwgMC42MjY3MzMsIDAuODE1MzI0LCAxLjAwNDQ0LCAxLjE5MzAyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5OTI1LCAwLjQ4ODc2NywgMC43OTkzNTUsIDEuMTg4NTYsIDEuNTc3MDgsIDEuOTcwMzQsIDIuMzU1NTQiLCBcCi0gICAgICAgICAgIjAuMDk5NDI1LCAwLjQ4ODg5NSwgMC43OTkzNjIsIDEuMTg4NzEsIDEuNTgwNTEsIDEuOTY2OSwgMi4zNTQ4OCIsIFwKLSAgICAgICAgICAiMC4xMDE2MTMsIDAuNDg4MzAxLCAwLjc5OTMzOCwgMS4xOTA2MywgMS41Nzc3OCwgMS45NjYwMiwgMi4zNTg2NCIsIFwKLSAgICAgICAgICAiMC4xMDUxMDUsIDAuNDg4MTgxLCAwLjc5OTMzMywgMS4xOTA4NCwgMS41Nzc5LCAxLjk3MDE3LCAyLjM1NjI2IiwgXAotICAgICAgICAgICIwLjEwOTU1OCwgMC40ODk3NzYsIDAuNzk5Nzg1LCAxLjE4ODg2LCAxLjU3NzA0LCAxLjk2NjYzLCAyLjM1NjMiLCBcCi0gICAgICAgICAgIjAuMTE4MDc1LCAwLjQ5MjIyNSwgMC44MDE2NDUsIDEuMTg4MTMsIDEuNTc3MjEsIDEuOTY1OTUsIDIuMzU1MDQiLCBcCi0gICAgICAgICAgIjAuMTI1NTM4LCAwLjQ5NTM2NiwgMC44MDE2NDEsIDEuMTg4MywgMS41ODAzNCwgMS45NjYxLCAyLjM1OTk2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyMzU2LCAwLjEwMTM1NSwgMC4xNjM0MzgsIDAuMjQxMTIzLCAwLjMxODk0MSwgMC4zOTY0NjUsIDAuNDczOTU1IiwgXAotICAgICAgICAgICIwLjAzMTc3NywgMC4xMDk1MDMsIDAuMTcxNjcxLCAwLjI0OTIzLCAwLjMyNjk3OSwgMC40MDQ4MjEsIDAuNDgyMTI1IiwgXAotICAgICAgICAgICIwLjA0MTg1NiwgMC4xMTk2MzcsIDAuMTgxNzI1LCAwLjI1OTM1NCwgMC4zMzY5MjgsIDAuNDE0NjU5LCAwLjQ5MjE5NSIsIFwKLSAgICAgICAgICAiMC4wNDkxNTYsIDAuMTI5OTY2LCAwLjE5MjAzNCwgMC4yNjk2MDMsIDAuMzQ3MzMzLCAwLjQyNDk3NCwgMC41MDIzOSIsIFwKLSAgICAgICAgICAiMC4wNTQ5ODksIDAuMTQwNDczLCAwLjIwMjQ4NSwgMC4yODAwNjEsIDAuMzU3NTc0LCAwLjQzNTU1OSwgMC41MTMzMDUiLCBcCi0gICAgICAgICAgIjAuMDYyNTc0LCAwLjE1NzU4MywgMC4yMTkzMTYsIDAuMjk2ODMxLCAwLjM3NDQzMiwgMC40NTIxMzgsIDAuNTI5NjQiLCBcCi0gICAgICAgICAgIjAuMDY3ODEsIDAuMTcyNDI5LCAwLjIzNDE2MiwgMC4zMTE1ODIsIDAuMzg5MDM1LCAwLjQ2NjY3OCwgMC41NDQ0NDYiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQyNTA3LCAwLjIwNjIxMSwgMC4zMzcwNTEsIDAuNTAwNTQsIDAuNjY0NDEzLCAwLjgyNzY1OSwgMC45OTA5NjgiLCBcCi0gICAgICAgICAgIjAuMDQ1Njk0LCAwLjIwNjEzNiwgMC4zMzcwNTIsIDAuNTAwNTQ0LCAwLjY2NDE1NSwgMC44Mjc3ODYsIDAuOTkxNTciLCBcCi0gICAgICAgICAgIjAuMDUzOTUzLCAwLjIwNzI5OSwgMC4zMzY4NzQsIDAuNTAwMzk1LCAwLjY2NDA3MiwgMC44Mjc4OTMsIDAuOTkxMTA4IiwgXAotICAgICAgICAgICIwLjA2MzU3NywgMC4yMTE1MzUsIDAuMzM4MzMzLCAwLjUwMDY3NSwgMC42NjQwNDUsIDAuODI3NzA1LCAwLjk5MDkxOCIsIFwKLSAgICAgICAgICAiMC4wNzI2MjIsIDAuMjE3NDIzLCAwLjM0MTY2NSwgMC41MDE1ODksIDAuNjYzOTA0LCAwLjgyNzYzNCwgMC45OTEzMDMiLCBcCi0gICAgICAgICAgIjAuMDg1Mzk1LCAwLjIyOTA4MSwgMC4zNDk3MDUsIDAuNTA2MjczLCAwLjY2NTg4OSwgMC44Mjc3ODcsIDAuOTkxNTE4IiwgXAotICAgICAgICAgICIwLjA5NTU3MywgMC4yNDA2MzgsIDAuMzU4NTAzLCAwLjUxMjI5NSwgMC42Njk3ODYsIDAuODI5ODQ4LCAwLjk5MTU2MSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTM4OTIsIDAuMjQyODcsIDAuMzkzODMzLCAwLjU4MjkxNSwgMC43NzE0NjYsIDAuOTYxMDg2LCAxLjE0OTQiLCBcCi0gICAgICAgICAgIjAuMDYwMTA1LCAwLjI0OTM2NywgMC40MDA0NjYsIDAuNTg5ODQxLCAwLjc3ODc0LCAwLjk2Njk1NCwgMS4xNTU2MSIsIFwKLSAgICAgICAgICAiMC4wNjgyMzIsIDAuMjU3NjE3LCAwLjQwODk3NywgMC41OTgwNzUsIDAuNzg2NDY0LCAwLjk3NTcsIDEuMTYzOTQiLCBcCi0gICAgICAgICAgIjAuMDc2NjAyLCAwLjI2NTIzNCwgMC40MTcwMTYsIDAuNjA1ODcsIDAuNzk0Njg5LCAwLjk4NDA2OSwgMS4xNzIyNSIsIFwKLSAgICAgICAgICAiMC4wODQyMjEsIDAuMjc0MTQyLCAwLjQyNTI1NiwgMC42MTQ1NTMsIDAuODAzMDI0LCAwLjk5MTkyNCwgMS4xODA3MyIsIFwKLSAgICAgICAgICAiMC4wOTQ4NzQsIDAuMjg3Mjk2LCAwLjQzODU0NiwgMC42Mjc0ODksIDAuODE2MzExLCAxLjAwNTcsIDEuMTkzOTEiLCBcCi0gICAgICAgICAgIjAuMTAzMDQ4LCAwLjI5OTM1MSwgMC40NTAzMjUsIDAuNjM5Mzc2LCAwLjgyODQyOCwgMS4wMTY4NSwgMS4yMDYxMSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTkyNzIsIDAuNDg4MTA3LCAwLjc5OTU4MywgMS4xODgxNiwgMS41ODA1OSwgMS45NjY0MiwgMi4zNTQ5MiIsIFwKLSAgICAgICAgICAiMC4wOTk2OTgsIDAuNDg4ODkzLCAwLjgwMDk1MiwgMS4xODg1MSwgMS41ODA1OSwgMS45NjYzMywgMi4zNTYiLCBcCi0gICAgICAgICAgIjAuMTAyOTA4LCAwLjQ4OTExOSwgMC43OTk1MjUsIDEuMTg4MjgsIDEuNTc4MDUsIDEuOTY1OTgsIDIuMzU5ODMiLCBcCi0gICAgICAgICAgIjAuMTA4MTQzLCAwLjQ4ODg5MywgMC44MDA4OTgsIDEuMTg5MzYsIDEuNTgwNCwgMS45NjYwMiwgMi4zNTczIiwgXAotICAgICAgICAgICIwLjExNDE4NCwgMC40ODk3MzIsIDAuODAwNTAzLCAxLjE4ODE3LCAxLjU3ODY5LCAxLjk3MDQ1LCAyLjM1NTk5IiwgXAotICAgICAgICAgICIwLjEyNDg1NiwgMC40OTIyOTUsIDAuNzk5OTIzLCAxLjE4ODcxLCAxLjU3OTYxLCAxLjk2NTk4LCAyLjM1ODc0IiwgXAotICAgICAgICAgICIwLjEzNDY2LCAwLjQ5NjkyOCwgMC44MDE1MTQsIDEuMTkwODEsIDEuNTc3MDMsIDEuOTY2NjUsIDIuMzU0ODUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDIyNDQ3LCAwLjEwMDI4MywgMC4xNjI1MDIsIDAuMjQwMzk3LCAwLjMxODE2NCwgMC4zOTYwNDQsIDAuNDczOTAxIiwgXAotICAgICAgICAgICIwLjAzMDczLCAwLjEwODU5MiwgMC4xNzA4ODksIDAuMjQ4NjI2LCAwLjMyNjYyNiwgMC40MDQxNiwgMC40ODE3NjIiLCBcCi0gICAgICAgICAgIjAuMDQwNTExLCAwLjExODc2MywgMC4xODA5NTIsIDAuMjU4NzYsIDAuMzM2NTgsIDAuNDE0Mjk4LCAwLjQ5MjEwNCIsIFwKLSAgICAgICAgICAiMC4wNDc0NzYsIDAuMTI5Mzg3LCAwLjE5MTU2LCAwLjI2OTMzNywgMC4zNDcxNCwgMC40MjUyNzUsIDAuNTAyNzQ5IiwgXAotICAgICAgICAgICIwLjA1Mjk5OSwgMC4xMzk2LCAwLjIwMTc1NywgMC4yNzk1MDIsIDAuMzU3MTUyLCAwLjQzNDk5NCwgMC41MTMwNjMiLCBcCi0gICAgICAgICAgIjAuMDYwMjA3LCAwLjE1NjU5NSwgMC4yMTg1NzQsIDAuMjk2MjgyLCAwLjM3Mzk1MSwgMC40NTExOTIsIDAuNTI5NTQ3IiwgXAotICAgICAgICAgICIwLjA2NTE1MSwgMC4xNzEzODEsIDAuMjMzMzE5LCAwLjMxMDk0MywgMC4zODg1MSwgMC40NjYzMDgsIDAuNTQ0MjIiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQxMjI0LCAwLjIwNTgxLCAwLjMzNzE3OCwgMC41MDE4NzgsIDAuNjY2ODcxLCAwLjgzMDg3MywgMC45OTUyNDEiLCBcCi0gICAgICAgICAgIjAuMDQ0NDk0LCAwLjIwNTg4MiwgMC4zMzczNDksIDAuNTAxODQ1LCAwLjY2NjI2OCwgMC44MzE4MDksIDAuOTk2MjQ3IiwgXAotICAgICAgICAgICIwLjA1MzA4NCwgMC4yMDY4MjEsIDAuMzM3NjgyLCAwLjUwMTYwNSwgMC42NjYzNywgMC44MzE5MjksIDAuOTk0ODg3IiwgXAotICAgICAgICAgICIwLjA2MjcyMiwgMC4yMTA5NzYsIDAuMzM5MDY2LCAwLjUwMTc2MiwgMC42NjYwNDEsIDAuODMxMTY3LCAwLjk5NTM2MSIsIFwKLSAgICAgICAgICAiMC4wNzE3NTYsIDAuMjE3MDQ5LCAwLjM0MjQ1NCwgMC41MDM1MDgsIDAuNjY2OTI0LCAwLjgzMTc5NCwgMC45OTUzNTYiLCBcCi0gICAgICAgICAgIjAuMDg0NDMyLCAwLjIyODU1MiwgMC4zNTAwMjIsIDAuNTA3NTg5LCAwLjY2OTE0NiwgMC44MzA5MjksIDAuOTk1NzQ1IiwgXAotICAgICAgICAgICIwLjA5NDYzNSwgMC4yNDAyMDUsIDAuMzU4OTMsIDAuNTE0MzIsIDAuNjczMDk3LCAwLjgzMzM2MiwgMC45OTU3OTkiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDUwOTIyLCAwLjIzOTkzNCwgMC4zOTExMjksIDAuNTc5Njk5LCAwLjc2ODczNywgMC45NTcwNzUsIDEuMTQ3MjQiLCBcCi0gICAgICAgICAgIjAuMDU3Nzg0LCAwLjI0NjkxOCwgMC4zOTgwMTEsIDAuNTg2NzYxLCAwLjc3NTYwMiwgMC45NjQxMjUsIDEuMTUzMTciLCBcCi0gICAgICAgICAgIjAuMDY3MTA2LCAwLjI1NTg4MywgMC40MDY5MywgMC41OTU3ODUsIDAuNzg0Njc3LCAwLjk3MzI2NiwgMS4xNjIyMiIsIFwKLSAgICAgICAgICAiMC4wNzY3NjEsIDAuMjY0ODU1LCAwLjQxNjA1NywgMC42MDQ4OTksIDAuNzkzNTg5LCAwLjk4MjI1NywgMS4xNzEyMSIsIFwKLSAgICAgICAgICAiMC4wODU3MTIsIDAuMjc0MTg1LCAwLjQyNTE3NywgMC42MTQxNTksIDAuODAyNjk5LCAwLjk5MTU2LCAxLjE4MDg4IiwgXAotICAgICAgICAgICIwLjA5ODEwMywgMC4yODkxMjksIDAuNDM5OTMxLCAwLjYyODYzMiwgMC44MTcyNzIsIDEuMDA2NzcsIDEuMTk0ODEiLCBcCi0gICAgICAgICAgIjAuMTA3MTc3LCAwLjMwMjM4MywgMC40NTMwMSwgMC42MzkyMjMsIDAuODMwMTE5LCAxLjAxODg3LCAxLjIwNzU1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5OTIyMiwgMC40ODgxMjIsIDAuNzk5MjgxLCAxLjE5MDgxLCAxLjU3NzEsIDEuOTY3MTUsIDIuMzU1NzQiLCBcCi0gICAgICAgICAgIjAuMDk5NzQ1LCAwLjQ4ODI2NCwgMC44MDA1MjgsIDEuMTkwMDYsIDEuNTgwNDYsIDEuOTY5MDEsIDIuMzYwMDMiLCBcCi0gICAgICAgICAgIjAuMTA0MjUyLCAwLjQ4ODg5OCwgMC44MDA1MTYsIDEuMTkwNjcsIDEuNTc3OTcsIDEuOTY5MTYsIDIuMzU2MDIiLCBcCi0gICAgICAgICAgIjAuMTExMjI4LCAwLjQ4ODE2LCAwLjgwMDkwOCwgMS4xODg4NywgMS41NzkwMywgMS45NjkxMSwgMi4zNTY0OCIsIFwKLSAgICAgICAgICAiMC4xMTg4NzcsIDAuNDg5MjQ3LCAwLjgwMDUwMywgMS4xODgyNywgMS41ODAzNiwgMS45NzAyMiwgMi4zNTU2IiwgXAotICAgICAgICAgICIwLjEzMjA5NywgMC40OTM2MTksIDAuODAwODUzLCAxLjE4ODU2LCAxLjU3ODIzLCAxLjk2NjA1LCAyLjM1NjUiLCBcCi0gICAgICAgICAgIjAuMTQzNjI0LCAwLjQ5OTc2OSwgMC44MDM1NTQsIDEuMTkwNTksIDEuNTc5NTksIDEuOTcwMDEsIDIuMzU5NzMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDYxOTksIDAuMDA2MjA0LCAwLjAwNjIwNSwgMC4wMDYyMDQsIDAuMDA2MjA0LCAwLjAwNjIwNSwgMC4wMDYyMDQiLCBcCi0gICAgICAgICAgIjAuMDA2MTgsIDAuMDA2MTgzLCAwLjAwNjE4NCwgMC4wMDYxOCwgMC4wMDYxNzksIDAuMDA2MTg0LCAwLjAwNjE4MSIsIFwKLSAgICAgICAgICAiMC4wMDYyMzEsIDAuMDA2MjEyLCAwLjAwNjIwMiwgMC4wMDYxOTYsIDAuMDA2MTg4LCAwLjAwNjE4NSwgMC4wMDYxODMiLCBcCi0gICAgICAgICAgIjAuMDA2MzQ2LCAwLjAwNjI1NCwgMC4wMDYyMzEsIDAuMDA2MjEyLCAwLjAwNjIwOCwgMC4wMDYyMDMsIDAuMDA2MTk0IiwgXAotICAgICAgICAgICIwLjAwNjUxNywgMC4wMDYzMSwgMC4wMDYyNjgsIDAuMDA2MjQzLCAwLjAwNjIxOCwgMC4wMDYyMjEsIDAuMDA2MjE1IiwgXAotICAgICAgICAgICIwLjAwNjg1OSwgMC4wMDY0NDQsIDAuMDA2MzU1LCAwLjAwNjMwMywgMC4wMDYyNzksIDAuMDA2MjYzLCAwLjAwNjI1MSIsIFwKLSAgICAgICAgICAiMC4wMDcxOTMsIDAuMDA2NTksIDAuMDA2NDUzLCAwLjAwNjM3OSwgMC4wMDYzMzgsIDAuMDA2MzEsIDAuMDA2MjkxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwODQ5LCAwLjAwMDg4NSwgMC4wMDA4ODksIDAuMDAwODksIDAuMDAwODkyLCAwLjAwMDg5MiwgMC4wMDA4OTMiLCBcCi0gICAgICAgICAgIjAuMDAwNzMzLCAwLjAwMDg0OCwgMC4wMDA4NjUsIDAuMDAwODc0LCAwLjAwMDg3OSwgMC4wMDA4ODIsIDAuMDAwODg0IiwgXAotICAgICAgICAgICIwLjAwMDY4NSwgMC4wMDA4MTUsIDAuMDAwODQyLCAwLjAwMDg1OCwgMC4wMDA4NjYsIDAuMDAwODcyLCAwLjAwMDg3NSIsIFwKLSAgICAgICAgICAiMC4wMDA3MDUsIDAuMDAwOCwgMC4wMDA4MywgMC4wMDA4NDgsIDAuMDAwODU5LCAwLjAwMDg2NSwgMC4wMDA4NyIsIFwKLSAgICAgICAgICAiMC4wMDA3NzMsIDAuMDAwODA2LCAwLjAwMDgzLCAwLjAwMDg0NywgMC4wMDA4NTcsIDAuMDAwODYzLCAwLjAwMDg2OCIsIFwKLSAgICAgICAgICAiMC4wMDA5NTgsIDAuMDAwODUsIDAuMDAwODU2LCAwLjAwMDg2MiwgMC4wMDA4NjgsIDAuMDAwODcyLCAwLjAwMDg3NSIsIFwKLSAgICAgICAgICAiMC4wMDExODEsIDAuMDAwOTIyLCAwLjAwMDkwMSwgMC4wMDA4OTMsIDAuMDAwODkxLCAwLjAwMDg5LCAwLjAwMDg5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1MjIyLCAwLjAwNTIzMywgMC4wMDUyMzUsIDAuMDA1MjM1LCAwLjAwNTIzNSwgMC4wMDUyMzYsIDAuMDA1MjM2IiwgXAotICAgICAgICAgICIwLjAwNTIwMiwgMC4wMDUyMjgsIDAuMDA1MjMxLCAwLjAwNTIzMiwgMC4wMDUyMzQsIDAuMDA1MjM0LCAwLjAwNTIzNCIsIFwKLSAgICAgICAgICAiMC4wMDUyNCwgMC4wMDUyNiwgMC4wMDUyNTIsIDAuMDA1MjQ4LCAwLjAwNTI0MywgMC4wMDUyNDIsIDAuMDA1MjQxIiwgXAotICAgICAgICAgICIwLjAwNTM1MiwgMC4wMDUzMDgsIDAuMDA1Mjg1LCAwLjAwNTI2NywgMC4wMDUyNjUsIDAuMDA1MjU2LCAwLjAwNTI1MyIsIFwKLSAgICAgICAgICAiMC4wMDU1MTYsIDAuMDA1MzY3LCAwLjAwNTMyNSwgMC4wMDUzMDEsIDAuMDA1MjY5LCAwLjAwNTI3OSwgMC4wMDUyNzIiLCBcCi0gICAgICAgICAgIjAuMDA1ODA3LCAwLjAwNTQ5MSwgMC4wMDU0MDYsIDAuMDA1MzYzLCAwLjAwNTMzNiwgMC4wMDUzMiwgMC4wMDUzMDciLCBcCi0gICAgICAgICAgIjAuMDA2MTMxLCAwLjAwNTYyMiwgMC4wMDU0OTcsIDAuMDA1NDI1LCAwLjAwNTM4MiwgMC4wMDUzNjMsIDAuMDA1MzQ2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwODUyLCAwLjAwMDg4NywgMC4wMDA4OTEsIDAuMDAwODkzLCAwLjAwMDg5NCwgMC4wMDA4OTUsIDAuMDAwODk1IiwgXAotICAgICAgICAgICIwLjAwMDczOSwgMC4wMDA4NTIsIDAuMDAwODcxLCAwLjAwMDg3OCwgMC4wMDA4ODIsIDAuMDAwODg1LCAwLjAwMDg4NyIsIFwKLSAgICAgICAgICAiMC4wMDA3MSwgMC4wMDA4MjMsIDAuMDAwODQ4LCAwLjAwMDg2MywgMC4wMDA4NzEsIDAuMDAwODc2LCAwLjAwMDg3OSIsIFwKLSAgICAgICAgICAiMC4wMDA3NTksIDAuMDAwODE0LCAwLjAwMDg0MSwgMC4wMDA4NTYsIDAuMDAwODY2LCAwLjAwMDg3MSwgMC4wMDA4NzUiLCBcCi0gICAgICAgICAgIjAuMDAwODYsIDAuMDAwODMsIDAuMDAwODQ2LCAwLjAwMDg1OSwgMC4wMDA4NjYsIDAuMDAwODcyLCAwLjAwMDg3NSIsIFwKLSAgICAgICAgICAiMC4wMDEwNzcsIDAuMDAwODg5LCAwLjAwMDg4LCAwLjAwMDg4LCAwLjAwMDg4MiwgMC4wMDA4ODQsIDAuMDAwODg1IiwgXAotICAgICAgICAgICIwLjAwMTMxNywgMC4wMDA5NzEsIDAuMDAwOTMyLCAwLjAwMDkxNSwgMC4wMDA5MDksIDAuMDAwOTA1LCAwLjAwMDkwMiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDE3NiwgMC4wMDQyMDIsIDAuMDA0MjA3LCAwLjAwNDIwNywgMC4wMDQyMDksIDAuMDA0MjA5LCAwLjAwNDIwOSIsIFwKLSAgICAgICAgICAiMC4wMDQxNDgsIDAuMDA0MjEsIDAuMDA0MjE4LCAwLjAwNDIyNCwgMC4wMDQyMjUsIDAuMDA0MjI4LCAwLjAwNDIzIiwgXAotICAgICAgICAgICIwLjAwNDE4NCwgMC4wMDQyMzQsIDAuMDA0MjM0LCAwLjAwNDIzNCwgMC4wMDQyMzQsIDAuMDA0MjM0LCAwLjAwNDIzNCIsIFwKLSAgICAgICAgICAiMC4wMDQyOTIsIDAuMDA0MjUyLCAwLjAwNDI1LCAwLjAwNDI0NCwgMC4wMDQyNDIsIDAuMDA0MjQxLCAwLjAwNDI0IiwgXAotICAgICAgICAgICIwLjAwNDQzMSwgMC4wMDQzMTgsIDAuMDA0Mjk1LCAwLjAwNDI4LCAwLjAwNDI4LCAwLjAwNDI2NSwgMC4wMDQyNiIsIFwKLSAgICAgICAgICAiMC4wMDQ3NTUsIDAuMDA0NDM1LCAwLjAwNDM2NiwgMC4wMDQzMywgMC4wMDQzMTMsIDAuMDA0Mjk5LCAwLjAwNDI5MiIsIFwKLSAgICAgICAgICAiMC4wMDUwNDUsIDAuMDA0NTY2LCAwLjAwNDQ1NiwgMC4wMDQzOTgsIDAuMDA0MzU1LCAwLjAwNDM0MywgMC4wMDQzMzEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDA4NDIsIDAuMDAwODgyLCAwLjAwMDg4NiwgMC4wMDA4ODksIDAuMDAwODksIDAuMDAwODksIDAuMDAwODkxIiwgXAotICAgICAgICAgICIwLjAwMDc1OSwgMC4wMDA4NTEsIDAuMDAwODY2LCAwLjAwMDg3NSwgMC4wMDA4NzksIDAuMDAwODgyLCAwLjAwMDg4NCIsIFwKLSAgICAgICAgICAiMC4wMDA4MzMsIDAuMDAwODUzLCAwLjAwMDg2NSwgMC4wMDA4NzMsIDAuMDAwODc4LCAwLjAwMDg4NCwgMC4wMDA4ODIiLCBcCi0gICAgICAgICAgIjAuMDAwOTM4LCAwLjAwMDg3MSwgMC4wMDA4NzYsIDAuMDAwODc5LCAwLjAwMDg4MiwgMC4wMDA4ODQsIDAuMDAwODg1IiwgXAotICAgICAgICAgICIwLjAwMTExMSwgMC4wMDA5MjIsIDAuMDAwOTEsIDAuMDAwOTAyLCAwLjAwMDg5OSwgMC4wMDA4OTgsIDAuMDAwODk3IiwgXAotICAgICAgICAgICIwLjAwMTQ3NSwgMC4wMDEwNDMsIDAuMDAwOTkzLCAwLjAwMDk2LCAwLjAwMDk0MywgMC4wMDA5MzMsIDAuMDAwOTI2IiwgXAotICAgICAgICAgICIwLjAwMTgwNywgMC4wMDExODEsIDAuMDAxMDc2LCAwLjAwMTAxMywgMC4wMDA5ODcsIDAuMDAwOTc3LCAwLjAwMDk2NCIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogTkFORDRCQlg0ICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoTkFORDRCQlg0KSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDEuNjUwODM7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEFOKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA5NDE0NDE7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwOTQxMzc4OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDk0MTQ0MTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDIwODksIDAuMDAyMDYzLCAwLjAwMjEzNywgMC4wMDIyNTMsIDAuMDAyMzk4LCAwLjAwMjY2MSwgMC4wMDI5MDgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDQ4NjQsIDAuMDA0ODY3LCAwLjAwNDkyMywgMC4wMDUwNDUsIDAuMDA1MTc5LCAwLjAwNTQ2NCwgMC4wMDU3MzciKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEJOKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA5NjM3NTQ7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwOTYzNjc3OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDk2Mzc1NDsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDIwMTYsIDAuMDAxOTkzLCAwLjAwMjA3MiwgMC4wMDIxODgsIDAuMDAyMzI5LCAwLjAwMjU5MiwgMC4wMDI4MzciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDQ3NywgMC4wMDQ3NzEsIDAuMDA0ODI2LCAwLjAwNDkzOCwgMC4wMDUwNzYsIDAuMDA1MzU2LCAwLjAwNTYyNCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQykgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAzMTg3NTg7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAzMTg3NTg7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAzMTgxNTI7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyMDk4LCAwLjAwMjA5NiwgMC4wMDIwOTUsIDAuMDAyMDk0LCAwLjAwMjA5NSwgMC4wMDIwOTQsIDAuMDAyMDk0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyMjY0LCAwLjAwMjEyNywgMC4wMDIxMTQsIDAuMDAyMTA3LCAwLjAwMjEwOCwgMC4wMDIxMDYsIDAuMDAyMTA0Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihEKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDMyNzE3NTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDMyNzA4MTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDMyNzE3NTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAzOTQsIDAuMDAwMzkxLCAwLjAwMDM5LCAwLjAwMDM4OSwgMC4wMDAzODksIDAuMDAwMzg4LCAwLjAwMDM4OSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjM4MSwgMC4wMDIzODMsIDAuMDAyMzg0LCAwLjAwMjM4MywgMC4wMDIzODQsIDAuMDAyMzg1LCAwLjAwMjM4NCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjM5NjQ4OTsKLSAgICBmdW5jdGlvbiA6ICIoISgoKCghQk4pICghQU4pKSBDKSBEKSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkFOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzNzE4MiwgMC4wOTM1OSwgMC4xNDg3MzIsIDAuMTg3OTAyLCAwLjI1MDYzOCwgMC4zMDU2NDgsIDAuMzg0MDM2IiwgXAotICAgICAgICAgICIwLjA0NTQyNywgMC4xMDE4MzksIDAuMTU2OTU3LCAwLjE5NjI2OSwgMC4yNTkwMzMsIDAuMzE0MDUxLCAwLjM5MjQ0MiIsIFwKLSAgICAgICAgICAiMC4wNTQzLCAwLjExMDcxMiwgMC4xNjU4MjksIDAuMjA1MDk4LCAwLjI2Nzg3NCwgMC4zMjI5ODksIDAuNDAxMTg2IiwgXAotICAgICAgICAgICIwLjA2MTIwNywgMC4xMTc2NzgsIDAuMTcyNzQ2LCAwLjIxMjA0NSwgMC4yNzQ4MywgMC4zMjk3MDksIDAuNDA4MDk4IiwgXAotICAgICAgICAgICIwLjA2Njc0MywgMC4xMjMzNzcsIDAuMTc4NDU1LCAwLjIxNzczMSwgMC4yODA1NTEsIDAuMzM1NDI2LCAwLjQxMzg2NCIsIFwKLSAgICAgICAgICAiMC4wNzQzNTUsIDAuMTMxMTAyLCAwLjE4NjEzMSwgMC4yMjUzOTUsIDAuMjg4MTE0LCAwLjM0Mjk3OSwgMC40MjE0MyIsIFwKLSAgICAgICAgICAiMC4wNzk5MzEsIDAuMTM2ODYxLCAwLjE5MjAxMSwgMC4yMzEyNywgMC4yOTM5MDQsIDAuMzQ4ODksIDAuNDI3MTk3Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM1OTYsIDAuMTQ5OTc4LCAwLjI2NTU1MiwgMC4zNDgwNzYsIDAuNDgwODU4LCAwLjU5NjczOCwgMC43NjI0MzEiLCBcCi0gICAgICAgICAgIjAuMDM2MDE1LCAwLjE0OTk4MywgMC4yNjU2OCwgMC4zNDg0OSwgMC40ODEwNDMsIDAuNTk2ODc5LCAwLjc2MjQ1NyIsIFwKLSAgICAgICAgICAiMC4wMzcwMjMsIDAuMTUwMDY1LCAwLjI2NTYxNCwgMC4zNDgzODEsIDAuNDgwODk0LCAwLjU5NzA4MywgMC43NjI0MTMiLCBcCi0gICAgICAgICAgIjAuMDM4MywgMC4xNTAzMDEsIDAuMjY1NzU1LCAwLjM0ODM5OSwgMC40ODA5OTIsIDAuNTk3MDE2LCAwLjc2MjQxMiIsIFwKLSAgICAgICAgICAiMC4wMzk1NTcsIDAuMTUwNjY2LCAwLjI2NTgzMywgMC4zNDg0NjcsIDAuNDgxMDE1LCAwLjU5Njc4NSwgMC43NjI0MTIiLCBcCi0gICAgICAgICAgIjAuMDQxMzU4LCAwLjE1MTEyNywgMC4yNjU5OTgsIDAuMzQ4NjEzLCAwLjQ4MDk1NSwgMC41OTY4NDgsIDAuNzYyNDUzIiwgXAotICAgICAgICAgICIwLjA0MzAwMSwgMC4xNTE2OTYsIDAuMjY2MTA4LCAwLjM0ODUyOCwgMC40ODEsIDAuNTk2ODk1LCAwLjc2MjU0OSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3NjUzOCwgMC4yNjMzODIsIDAuNDQ5Mzk5LCAwLjU4MjU3MiwgMC43OTUxNTcsIDAuOTgwODk4LCAxLjI0NyIsIFwKLSAgICAgICAgICAiMC4wODQ1ODgsIDAuMjcxNTE2LCAwLjQ1NzQ5NiwgMC41OTA0MDMsIDAuODAzMDc3LCAwLjk4OTEwNSwgMS4yNTUxIiwgXAotICAgICAgICAgICIwLjA5MjY2NCwgMC4yNzk3NzcsIDAuNDY1ODY2LCAwLjU5ODYyMSwgMC44MTE4OTUsIDAuOTk4MjEsIDEuMjYzMTEiLCBcCi0gICAgICAgICAgIjAuMDk4NDk0LCAwLjI4NTQxNCwgMC40NzE1OSwgMC42MDQ1OTIsIDAuODE3NDc1LCAxLjAwNDE4LCAxLjI2ODg5IiwgXAotICAgICAgICAgICIwLjEwMzEzOSwgMC4yOTAwNTIsIDAuNDc2NSwgMC42MDkyMjQsIDAuODIxODMsIDEuMDA3NzgsIDEuMjc0OTUiLCBcCi0gICAgICAgICAgIjAuMTA5MzExLCAwLjI5NjE5OSwgMC40ODI0MDQsIDAuNjE1MzQzLCAwLjgyODUzMSwgMS4wMTQ2NCwgMS4yNzk4NSIsIFwKLSAgICAgICAgICAiMC4xMTM2OTcsIDAuMzAwNTIsIDAuNDg2OTY5LCAwLjYyMDAzLCAwLjgzMjQxNiwgMS4wMTkzLCAxLjI4NDQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTQ2OTUsIDAuNDc5OTE3LCAwLjg2NzE0NSwgMS4xNDEyMiwgMS41ODE4MSwgMS45NjgyNywgMi41MjMyOSIsIFwKLSAgICAgICAgICAiMC4wOTQ2OTgsIDAuNDc5OTU1LCAwLjg2NzE3LCAxLjE0MzE2LCAxLjU4NDY1LCAxLjk2NzkxLCAyLjUyMzIyIiwgXAotICAgICAgICAgICIwLjA5NDcyMywgMC40Nzk5NzgsIDAuODY1NzY1LCAxLjE0MzE3LCAxLjU4MjAxLCAxLjk2NzczLCAyLjUyMjkzIiwgXAotICAgICAgICAgICIwLjA5NDc4NiwgMC40ODAyMTMsIDAuODY2MjQ4LCAxLjE0MzE1LCAxLjU4MjA1LCAxLjk2NzcyLCAyLjUxODY5IiwgXAotICAgICAgICAgICIwLjA5NDc5MSwgMC40ODAwMzEsIDAuODY1NTc3LCAxLjE0MzE3LCAxLjU4MzMzLCAxLjk3MTIsIDIuNTE4NzQiLCBcCi0gICAgICAgICAgIjAuMDk0OTc5LCAwLjQ4MDA2NywgMC44NjU4NjIsIDEuMTQxNCwgMS41ODIwNSwgMS45Njc3NywgMi41MTkzNCIsIFwKLSAgICAgICAgICAiMC4wOTUxMTksIDAuNDgwMjQsIDAuODY3MTI2LCAxLjE0MzE4LCAxLjU4NDc4LCAxLjk2NzcyLCAyLjUyMjk5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkJOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzNzc5NiwgMC4wOTM5MDcsIDAuMTQ5MTQ0LCAwLjE4ODU3MSwgMC4yNTE2NTcsIDAuMzA2NjE5LCAwLjM4NTczNyIsIFwKLSAgICAgICAgICAiMC4wNDYwODUsIDAuMTAyMTgsIDAuMTU3NDMzLCAwLjE5Njg3MSwgMC4yNTk5MzgsIDAuMzE1MjYyLCAwLjM5MzkzNiIsIFwKLSAgICAgICAgICAiMC4wNTUxODMsIDAuMTExMzAyLCAwLjE2NjUzOSwgMC4yMDYwMjEsIDAuMjY5MDQ1LCAwLjMyNDM4MiwgMC40MDMxMTQiLCBcCi0gICAgICAgICAgIjAuMDYyMjk0LCAwLjExODUyOSwgMC4xNzM3MzUsIDAuMjEzMTY5LCAwLjI3NjI2NiwgMC4zMzEzNzEsIDAuNDEwMjgiLCBcCi0gICAgICAgICAgIjAuMDY4MDMsIDAuMTI0NDc4LCAwLjE3OTY5NSwgMC4yMTkwOTQsIDAuMjgyMTMxLCAwLjMzNzI5OCwgMC40MTYxNDEiLCBcCi0gICAgICAgICAgIjAuMDc1NjM2LCAwLjEzMjUxNCwgMC4xODc2NzgsIDAuMjI3MDc2LCAwLjI5MDA1OCwgMC4zNDUyMTEsIDAuNDI0MDAyIiwgXAotICAgICAgICAgICIwLjA4MTUzOSwgMC4xMzg0OTgsIDAuMTkzNzUxLCAwLjIzMzA3NCwgMC4yOTYwNjUsIDAuMzUxMjE2LCAwLjQyOTk2NyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzNDQyMiwgMC4xNDg4NzUsIDAuMjY1NDExLCAwLjM0ODgwOCwgMC40ODIxOTEsIDAuNTk4ODc2LCAwLjc2NTYzNSIsIFwKLSAgICAgICAgICAiMC4wMzQ0ODcsIDAuMTQ4OTE0LCAwLjI2NTQxMiwgMC4zNDg4MTYsIDAuNDgyMTQ1LCAwLjU5OTE4NCwgMC43NjU5MDciLCBcCi0gICAgICAgICAgIjAuMDM1NTE5LCAwLjE0OTA2MywgMC4yNjU0NiwgMC4zNDg3NjUsIDAuNDgyMTQ5LCAwLjU5OTI0NywgMC43NjYwODYiLCBcCi0gICAgICAgICAgIjAuMDM2ODU1LCAwLjE0OTM4OCwgMC4yNjU1MjgsIDAuMzQ4ODMsIDAuNDgyNDM3LCAwLjU5OTAwMiwgMC43NjYwODkiLCBcCi0gICAgICAgICAgIjAuMDM4MDkzLCAwLjE0OTcyOCwgMC4yNjU2MTgsIDAuMzQ4ODc3LCAwLjQ4MjI2NCwgMC41OTg5MzYsIDAuNzY1ODM4IiwgXAotICAgICAgICAgICIwLjA0MDE5OSwgMC4xNTAzMDIsIDAuMjY1ODI5LCAwLjM0ODk3MywgMC40ODIyOTgsIDAuNTk5MDcxLCAwLjc2NTkwNyIsIFwKLSAgICAgICAgICAiMC4wNDE4MTUsIDAuMTUwODk3LCAwLjI2NjEyLCAwLjM0OTA3NiwgMC40ODI0MjEsIDAuNTk5MTc2LCAwLjc2NTg4MiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3NDU0NCwgMC4yNjEyNTIsIDAuNDQ3MzYxLCAwLjU4MDI4MywgMC43OTI3NzcsIDAuOTc5MzU5LCAxLjI0NDYzIiwgXAotICAgICAgICAgICIwLjA4MjU5NiwgMC4yNjk0NzUsIDAuNDU1NjIyLCAwLjU4ODQyOCwgMC44MDE2NTksIDAuOTg2OTIxLCAxLjI1MzQ3IiwgXAotICAgICAgICAgICIwLjA5MDk3NCwgMC4yNzc4NjgsIDAuNDY0MDU4LCAwLjU5Njk3NCwgMC44MDk0OSwgMC45OTY2OTYsIDEuMjYxNjEiLCBcCi0gICAgICAgICAgIjAuMDk3MTIzLCAwLjI4NDA3LCAwLjQ3MDI4MywgMC42MDMxNDIsIDAuODE1NzYxLCAxLjAwMjMxLCAxLjI2NzY1IiwgXAotICAgICAgICAgICIwLjEwMjAzOSwgMC4yODg5NTUsIDAuNDc1NDU5LCAwLjYwODE1NiwgMC44MjA3MzEsIDEuMDA2NjksIDEuMjczODYiLCBcCi0gICAgICAgICAgIjAuMTA4NTQ1LCAwLjI5NTQyNiwgMC40ODE4MjYsIDAuNjE0NjM5LCAwLjgyNzgzOSwgMS4wMTM2NiwgMS4yNzkwMyIsIFwKLSAgICAgICAgICAiMC4xMTMyNCwgMC4zMDAxMDQsIDAuNDg2Mjk3LCAwLjYxOTI1NywgMC44MzE5NDcsIDEuMDE4ODYsIDEuMjg0MjkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTQ3MDYsIDAuNDgwMDU5LCAwLjg2NjE5NiwgMS4xNDE0NywgMS41ODM3NiwgMS45Njc3MSwgMi41MTkzMyIsIFwKLSAgICAgICAgICAiMC4wOTQ3MTIsIDAuNDgwMDY5LCAwLjg2NzE0MSwgMS4xNDMxNCwgMS41ODIwMSwgMS45NzEyNCwgMi41MTg4NCIsIFwKLSAgICAgICAgICAiMC4wOTQ3MjcsIDAuNDgwMDU3LCAwLjg2NzE2LCAxLjE0MzE2LCAxLjU4MjM5LCAxLjk2ODMxLCAyLjUyMzA0IiwgXAotICAgICAgICAgICIwLjA5NDg4MiwgMC40ODA3MzksIDAuODY3MTI1LCAxLjE0Mjc4LCAxLjU4NDc5LCAxLjk2NzY5LCAyLjUxOTMyIiwgXAotICAgICAgICAgICIwLjA5NDk5NCwgMC40ODAwNDMsIDAuODY1NjY2LCAxLjE0MzE2LCAxLjU4NDc5LCAxLjk3MTIsIDIuNTE4NzQiLCBcCi0gICAgICAgICAgIjAuMDk1MzY3LCAwLjQ4MDAzMiwgMC44NjcxMDgsIDEuMTQxLCAxLjU4MjA2LCAxLjk2Nzk3LCAyLjUyMDMzIiwgXAotICAgICAgICAgICIwLjA5NTU0MiwgMC40ODAwOTUsIDAuODY1NzY0LCAxLjE0MzE5LCAxLjU4NDc4LCAxLjk2NzU2LCAyLjUxODU2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE3MjI4LCAwLjA3MjY0MSwgMC4xMjc4MjgsIDAuMTY3MjQ3LCAwLjIzMDM5NSwgMC4yODU3MDQsIDAuMzY0MzAzIiwgXAotICAgICAgICAgICIwLjAyNTU4MywgMC4wODA3MTMsIDAuMTM2MDM2LCAwLjE3NTQ2NiwgMC4yMzg0OTgsIDAuMjkzODE4LCAwLjM3MjUxIiwgXAotICAgICAgICAgICIwLjAzMzY0MSwgMC4wOTEzNjYsIDAuMTQ2NTU0LCAwLjE4NjAzNywgMC4yNDkwNjIsIDAuMzA0MzQ5LCAwLjM4MzExOCIsIFwKLSAgICAgICAgICAiMC4wMzkyOTMsIDAuMTAxNzYyLCAwLjE1Njg4MywgMC4xOTYzMjksIDAuMjU5NDM3LCAwLjMxNDU4NywgMC4zOTMzMyIsIFwKLSAgICAgICAgICAiMC4wNDM2NzgsIDAuMTEyMDgxLCAwLjE2NzEzOSwgMC4yMDY1MDUsIDAuMjY5NTg5LCAwLjMyNDI2MSwgMC40MDM1NSIsIFwKLSAgICAgICAgICAiMC4wNDg5LCAwLjEyOTAyMywgMC4xODM5NDcsIDAuMjIzMjkzLCAwLjI4NjI0NCwgMC4zNDE0MTgsIDAuNDIwMjc2IiwgXAotICAgICAgICAgICIwLjA1MjU4MywgMC4xNDE0MywgMC4xOTg5NTgsIDAuMjM4MjI2LCAwLjMwMTE2MywgMC4zNTYyODUsIDAuNDM1MDA3Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDI4OTAyLCAwLjE0NTgyNSwgMC4yNjI4MDgsIDAuMzQ2MjI1LCAwLjQ3OTkyNiwgMC41OTY5NTEsIDAuNzYzNjY0IiwgXAotICAgICAgICAgICIwLjAzMzE0MSwgMC4xNDU4MjgsIDAuMjYyNjk3LCAwLjM0NjIwMiwgMC40Nzk2MzUsIDAuNTk2ODY0LCAwLjc2MzY0MyIsIFwKLSAgICAgICAgICAiMC4wNDI1MzUsIDAuMTQ4NzU4LCAwLjI2Mjk2NywgMC4zNDYzNSwgMC40Nzk4MDksIDAuNTk2ODEzLCAwLjc2MzYxMSIsIFwKLSAgICAgICAgICAiMC4wNTEzMzMsIDAuMTU0NTQsIDAuMjY1Njk4LCAwLjM0NzMxOSwgMC40Nzk3OTEsIDAuNTk2NTgzLCAwLjc2MzQ4OSIsIFwKLSAgICAgICAgICAiMC4wNTkxNTQsIDAuMTYyMDg4LCAwLjI3MDQzOSwgMC4zNTA0NTMsIDAuNDgwOTkxLCAwLjU5NjgyMiwgMC43NjM1OTYiLCBcCi0gICAgICAgICAgIjAuMDcwOTIyLCAwLjE3NDk3MiwgMC4yODAzNDEsIDAuMzU4Mjc5LCAwLjQ4NTkxNiwgMC41OTk3MDYsIDAuNzY0MjU2IiwgXAotICAgICAgICAgICIwLjA3OTk1MywgMC4xODg0NzksIDAuMjkwMzIsIDAuMzY2NzI5LCAwLjQ5MjM1NSwgMC42MDQ3NSwgMC43NjcwNTEiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTE5MDQsIDAuMjM4MzAzLCAwLjQyNDM3NywgMC41NTc0MTYsIDAuNzcwMTM5LCAwLjk1NjM2OCwgMS4yMjIzOSIsIFwKLSAgICAgICAgICAiMC4wNTc4MDMsIDAuMjQ0NzQxLCAwLjQzMDg2MywgMC41NjM3OTgsIDAuNzc2ODcsIDAuOTYyMzAyLCAxLjIyODczIiwgXAotICAgICAgICAgICIwLjA2NTUzMywgMC4yNTI1MTQsIDAuNDM4NzAzLCAwLjU3MTY2NywgMC43ODQxMjcsIDAuOTcwNjQ5LCAxLjIzNjE0IiwgXAotICAgICAgICAgICIwLjA3MzUyNiwgMC4yNTk5NDcsIDAuNDQ2ODAyLCAwLjU3OTcxNiwgMC43OTIyNTUsIDAuOTc4NTQ5LCAxLjI0NDYyIiwgXAotICAgICAgICAgICIwLjA4MDc2LCAwLjI2ODU4NCwgMC40NTQ4ODUsIDAuNTg3Njc3LCAwLjgwMDMyNCwgMC45ODYzNTIsIDEuMjUyMTciLCBcCi0gICAgICAgICAgIjAuMDkwOTMsIDAuMjgxNDM5LCAwLjQ2NzkxLCAwLjYwMDg1MiwgMC44MTM0NjYsIDAuOTk5NzM0LCAxLjI2NTE3IiwgXAotICAgICAgICAgICIwLjA5ODk1NSwgMC4yOTMwNDUsIDAuNDc5MzQ4LCAwLjYxMjY1MiwgMC44MjUxNjksIDEuMDEwODYsIDEuMjc3MzMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTQ0NCwgMC40ODA3MzUsIDAuODY1ODU2LCAxLjE0MTI3LCAxLjU4MTk0LCAxLjk2Nzc4LCAyLjUxODc0IiwgXAotICAgICAgICAgICIwLjA5NDQ1NSwgMC40ODA3NDUsIDAuODY3MTY5LCAxLjE0MzE1LCAxLjU4MjA2LCAxLjk2ODk4LCAyLjUxODcxIiwgXAotICAgICAgICAgICIwLjA5NzYzMSwgMC40ODAwMzgsIDAuODY1ODA0LCAxLjE0MDUyLCAxLjU4MjA1LCAxLjk3MTA2LCAyLjUyMjk2IiwgXAotICAgICAgICAgICIwLjEwMjgzLCAwLjQ3OTg2MywgMC44NjU2MTMsIDEuMTQzMTUsIDEuNTgxNTksIDEuOTcxMDQsIDIuNTIzMSIsIFwKLSAgICAgICAgICAiMC4xMDkyODYsIDAuNDgxNjI2LCAwLjg2NTYzLCAxLjE0MTM2LCAxLjU4MTczLCAxLjk2ODAyLCAyLjUyMzI1IiwgXAotICAgICAgICAgICIwLjExOTk1OCwgMC40ODQyOTMsIDAuODY3MjU1LCAxLjE0MzE4LCAxLjU4NDgsIDEuOTcwOTQsIDIuNTE4MjEiLCBcCi0gICAgICAgICAgIjAuMTI4ODU3LCAwLjQ4ODgyOCwgMC44Njg1MTYsIDEuMTQxMywgMS41ODIxNywgMS45NjgwMSwgMi41MTg2OSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJEIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxNTYwMywgMC4wNzA2NjIsIDAuMTI1NzUyLCAwLjE2NDk4NCwgMC4yMjc4MDEsIDAuMjgyOTk1LCAwLjM2MTM4IiwgXAotICAgICAgICAgICIwLjAyMzgyNCwgMC4wNzg5NDQsIDAuMTMzOTM4LCAwLjE3MzI0NiwgMC4yMzYyNzUsIDAuMjkxMTE3LCAwLjM2OTY3MiIsIFwKLSAgICAgICAgICAiMC4wMzEzMjEsIDAuMDg5NDU4LCAwLjE0NDQ3NCwgMC4xODM3NDEsIDAuMjQ2NjQsIDAuMzAxODgzLCAwLjM4MDMyNiIsIFwKLSAgICAgICAgICAiMC4wMzY0MjcsIDAuMDk5OTYyLCAwLjE1NDgzOSwgMC4xOTQxODUsIDAuMjU2NzE1LCAwLjMxMTk4NCwgMC4zOTA1NjciLCBcCi0gICAgICAgICAgIjAuMDQwMjU3LCAwLjExMDMxNSwgMC4xNjUxOTMsIDAuMjA0NDM5LCAwLjI2NzI5NiwgMC4zMjE4MTQsIDAuNDAwODU0IiwgXAotICAgICAgICAgICIwLjA0NDc4MSwgMC4xMjcwNCwgMC4xODE2MzEsIDAuMjIwNzg5LCAwLjI4MzU3MSwgMC4zMzg0OSwgMC40MTcwODQiLCBcCi0gICAgICAgICAgIjAuMDQ3ODIxLCAwLjEzOTAzNywgMC4xOTY5MzQsIDAuMjM2MDg1LCAwLjI5ODgzOSwgMC4zNTM3NzIsIDAuNDMyMjg3Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDI2Njk3LCAwLjE0MzQwMiwgMC4yNTk2NSwgMC4zNDMwNTYsIDAuNDc2NDcsIDAuNTkyNTY3LCAwLjc1ODUyNCIsIFwKLSAgICAgICAgICAiMC4wMzE0ODIsIDAuMTQzMTM0LCAwLjI1OTYxNSwgMC4zNDI2OTgsIDAuNDc1OTMsIDAuNTkyNjg0LCAwLjc1ODUxNSIsIFwKLSAgICAgICAgICAiMC4wNDA5NTMsIDAuMTQ2Mzk3LCAwLjI1OTgxNiwgMC4zNDMwMjIsIDAuNDc1OTg1LCAwLjU5MjY0NCwgMC43NTg5MTciLCBcCi0gICAgICAgICAgIjAuMDQ5NTQ3LCAwLjE1MjEyOSwgMC4yNjMwOCwgMC4zNDM5NDUsIDAuNDc1NzU2LCAwLjU5MjI2NSwgMC43NTg4MzkiLCBcCi0gICAgICAgICAgIjAuMDU3MzMzLCAwLjE1OTU0NSwgMC4yNjc1MywgMC4zNDc3MTMsIDAuNDc3MzQxLCAwLjU5MzU1MSwgMC43NTg1MDgiLCBcCi0gICAgICAgICAgIjAuMDY4ODIsIDAuMTcyNjA3LCAwLjI3Nzk3MiwgMC4zNTUzMiwgMC40ODIzMDYsIDAuNTk1ODc4LCAwLjc2MDAwNCIsIFwKLSAgICAgICAgICAiMC4wNzc5MTgsIDAuMTg2OTE1LCAwLjI4NzU3MywgMC4zNjM2NjIsIDAuNDg4ODk3LCAwLjYwMTMyNywgMC43NjI2MDkiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDQ4NDIsIDAuMjMxNDE1LCAwLjQxNzM0NCwgMC41NTAxMywgMC43NjMxOTcsIDAuOTQ4NzYsIDEuMjE1MTEiLCBcCi0gICAgICAgICAgIjAuMDUxMzM5LCAwLjIzODA0LCAwLjQyNDI1NCwgMC41NTcxMTIsIDAuNzY5NjE3LCAwLjk1NTU2MSwgMS4yMjEzNiIsIFwKLSAgICAgICAgICAiMC4wNjA0ODEsIDAuMjQ2NjQyLCAwLjQzMjg0MiwgMC41NjU2MjYsIDAuNzc4MTc1LCAwLjk2NDM0LCAxLjIzMDM3IiwgXAotICAgICAgICAgICIwLjA3MDEyLCAwLjI1NTUyNCwgMC40NDE1MTMsIDAuNTc0NzU1LCAwLjc4NzA4NywgMC45NzM4OTYsIDEuMjM4NjQiLCBcCi0gICAgICAgICAgIjAuMDc5MDQsIDAuMjY0NDc4LCAwLjQ1MDI2OCwgMC41ODMzMjUsIDAuNzk1NjYsIDAuOTgxNzQ4LCAxLjI0NzQ1IiwgXAotICAgICAgICAgICIwLjA5MDYxNSwgMC4yNzg5MzYsIDAuNDY0NDM1LCAwLjU5NzUxLCAwLjgwOTU5NSwgMC45OTU2ODgsIDEuMjYxODgiLCBcCi0gICAgICAgICAgIjAuMDk5MzEsIDAuMjkxOTQ0LCAwLjQ3NzEyNiwgMC42MDk2NTYsIDAuODIyNjgsIDEuMDA3ODMsIDEuMjc0MzMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTQwOTcsIDAuNDc5OTY5LCAwLjg2NzExLCAxLjE0MTQ3LCAxLjU4MTk5LCAxLjk2ODE5LCAyLjUxODcyIiwgXAotICAgICAgICAgICIwLjA5NDEwNCwgMC40ODAxMywgMC44NjcwNjksIDEuMTQxMzUsIDEuNTgyOCwgMS45NzExOCwgMi41MTkxNCIsIFwKLSAgICAgICAgICAiMC4wOTg4MzIsIDAuNDgwMDAzLCAwLjg2NzA3NiwgMS4xNDEzMSwgMS41ODIwMywgMS45NzExOSwgMi41MjI5NyIsIFwKLSAgICAgICAgICAiMC4xMDU1NjMsIDAuNDc5NTYyLCAwLjg2NzE1OSwgMS4xNDEyMywgMS41ODQ2NCwgMS45Njc2OSwgMi41MjEzIiwgXAotICAgICAgICAgICIwLjExMjc3LCAwLjQ4MDkwNCwgMC44NjU3MTcsIDEuMTQzMDcsIDEuNTg0OCwgMS45NzA5NCwgMi41MjMxNSIsIFwKLSAgICAgICAgICAiMC4xMjQ1MTYsIDAuNDg1MTYzLCAwLjg2NTU1OCwgMS4xNDExNiwgMS41ODQ3OSwgMS45Njc4NCwgMi41MTg2OSIsIFwKLSAgICAgICAgICAiMC4xMzQzOTUsIDAuNDkxMzU0LCAwLjg2NzQ5OSwgMS4xNDEyMiwgMS41ODE5NiwgMS45NzEyMiwgMi41MTg4MiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkFOIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxNTk3NSwgMC4wMTU5ODQsIDAuMDE1OTg3LCAwLjAxNTk4NiwgMC4wMTU5ODUsIDAuMDE1OTg1LCAwLjAxNTk4NCIsIFwKLSAgICAgICAgICAiMC4wMTU5MzIsIDAuMDE1OTU2LCAwLjAxNTk1OCwgMC4wMTU5NTksIDAuMDE1OTU4LCAwLjAxNTk1OCwgMC4wMTU5NiIsIFwKLSAgICAgICAgICAiMC4wMTYwMSwgMC4wMTYwMjYsIDAuMDE2MDI5LCAwLjAxNjAzMiwgMC4wMTYwMzIsIDAuMDE2MDI5LCAwLjAxNjAyOSIsIFwKLSAgICAgICAgICAiMC4wMTYxMzgsIDAuMDE2MTM5LCAwLjAxNjE0MSwgMC4wMTYxNDMsIDAuMDE2MTM5LCAwLjAxNjE0MywgMC4wMTYxNDEiLCBcCi0gICAgICAgICAgIjAuMDE2MjksIDAuMDE2MjkyLCAwLjAxNjI4OCwgMC4wMTYyODgsIDAuMDE2Mjg2LCAwLjAxNjI4NywgMC4wMTYyODkiLCBcCi0gICAgICAgICAgIjAuMDE2NiwgMC4wMTY1NDQsIDAuMDE2NTQ5LCAwLjAxNjU1MiwgMC4wMTY1NDYsIDAuMDE2NTQ1LCAwLjAxNjUzNCIsIFwKLSAgICAgICAgICAiMC4wMTY4ODUsIDAuMDE2OCwgMC4wMTY3OTMsIDAuMDE2ODA2LCAwLjAxNjc4NSwgMC4wMTY3OTksIDAuMDE2NzgyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTEyNTYsIDAuMDExNDU1LCAwLjAxMTQ4MywgMC4wMTE0OTIsIDAuMDExNDk5LCAwLjAxMTUwMywgMC4wMTE1MDYiLCBcCi0gICAgICAgICAgIjAuMDExMTc2LCAwLjAxMTQxMSwgMC4wMTE0NSwgMC4wMTE0NjMsIDAuMDExNDc0LCAwLjAxMTQ3OSwgMC4wMTE0ODQiLCBcCi0gICAgICAgICAgIjAuMDExMTg2LCAwLjAxMTQ1MiwgMC4wMTE1MDUsIDAuMDExNTIzLCAwLjAxMTUzOCwgMC4wMTE1NDcsIDAuMDExNTU0IiwgXAotICAgICAgICAgICIwLjAxMTI2MSwgMC4wMTE1MzgsIDAuMDExNiwgMC4wMTE2MjIsIDAuMDExNjQxLCAwLjAxMTY1MiwgMC4wMTE2NjEiLCBcCi0gICAgICAgICAgIjAuMDExMzcyLCAwLjAxMTY1MywgMC4wMTE3MjIsIDAuMDExNzQ2LCAwLjAxMTc2OSwgMC4wMTE3ODEsIDAuMDExNzkyIiwgXAotICAgICAgICAgICIwLjAxMTU5MiwgMC4wMTE4NjMsIDAuMDExOTQxLCAwLjAxMTk4LCAwLjAxMTk5MywgMC4wMTIwMDcsIDAuMDEyMDIiLCBcCi0gICAgICAgICAgIjAuMDExODE1LCAwLjAxMjA3OCwgMC4wMTIxNTksIDAuMDEyMTg5LCAwLjAxMjIxOCwgMC4wMTIyMzQsIDAuMDEyMjQ4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQk4iOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE0MTgsIDAuMDE0MjA3LCAwLjAxNDIxMSwgMC4wMTQyMTEsIDAuMDE0MjEzLCAwLjAxNDIxMiwgMC4wMTQyMTEiLCBcCi0gICAgICAgICAgIjAuMDE0MTI4LCAwLjAxNDE3NiwgMC4wMTQxODIsIDAuMDE0MTg1LCAwLjAxNDE4NSwgMC4wMTQxODYsIDAuMDE0MTg4IiwgXAotICAgICAgICAgICIwLjAxNDIwNCwgMC4wMTQyNSwgMC4wMTQyNTYsIDAuMDE0MjYsIDAuMDE0MjYsIDAuMDE0MjYxLCAwLjAxNDI2MyIsIFwKLSAgICAgICAgICAiMC4wMTQzMjIsIDAuMDE0MzU3LCAwLjAxNDM2NCwgMC4wMTQzNjcsIDAuMDE0MzcsIDAuMDE0MzY4LCAwLjAxNDM3IiwgXAotICAgICAgICAgICIwLjAxNDQ4OSwgMC4wMTQ1MDYsIDAuMDE0NTEsIDAuMDE0NTEzLCAwLjAxNDUxNCwgMC4wMTQ1MTIsIDAuMDE0NTEyIiwgXAotICAgICAgICAgICIwLjAxNDc4MiwgMC4wMTQ3NzMsIDAuMDE0NzcsIDAuMDE0NzcsIDAuMDE0NzU5LCAwLjAxNDc1NywgMC4wMTQ3NzMiLCBcCi0gICAgICAgICAgIjAuMDE1MDYyLCAwLjAxNTAyOSwgMC4wMTUwMjUsIDAuMDE1MDA1LCAwLjAxNTAwOCwgMC4wMTUwMDYsIDAuMDE1MDA3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTA2MTYsIDAuMDEwODIxLCAwLjAxMDg1LCAwLjAxMDg1OSwgMC4wMTA4NjcsIDAuMDEwODcxLCAwLjAxMDg3NCIsIFwKLSAgICAgICAgICAiMC4wMTA1NDIsIDAuMDEwNzc3LCAwLjAxMDgxNywgMC4wMTA4MywgMC4wMTA4NDEsIDAuMDEwODQ3LCAwLjAxMDg1MyIsIFwKLSAgICAgICAgICAiMC4wMTA1NTIsIDAuMDEwODE5LCAwLjAxMDg3MywgMC4wMTA4OSwgMC4wMTA5MDYsIDAuMDEwOTE1LCAwLjAxMDkyMyIsIFwKLSAgICAgICAgICAiMC4wMTA2MTgsIDAuMDEwODk1LCAwLjAxMDk1OCwgMC4wMTA5OCwgMC4wMTA5OTksIDAuMDExMDA5LCAwLjAxMTAxOSIsIFwKLSAgICAgICAgICAiMC4wMTA3MjYsIDAuMDExMDA4LCAwLjAxMTA3OCwgMC4wMTExMDIsIDAuMDExMTI1LCAwLjAxMTEzNywgMC4wMTExNDgiLCBcCi0gICAgICAgICAgIjAuMDEwOTMxLCAwLjAxMTIyNSwgMC4wMTEyOSwgMC4wMTEzMTgsIDAuMDExMzQ0LCAwLjAxMTM3LCAwLjAxMTM4MyIsIFwKLSAgICAgICAgICAiMC4wMTExNTYsIDAuMDExNDIzLCAwLjAxMTUwNCwgMC4wMTE1MzUsIDAuMDExNTY0LCAwLjAxMTU4LCAwLjAxMTU5NCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDExMDA2LCAwLjAxMTAzNywgMC4wMTEwMzksIDAuMDExMDQsIDAuMDExMDQyLCAwLjAxMTA0MiwgMC4wMTEwNDEiLCBcCi0gICAgICAgICAgIjAuMDEwOTcyLCAwLjAxMTA1MiwgMC4wMTEwNywgMC4wMTEwNzMsIDAuMDExMDc1LCAwLjAxMTA3NiwgMC4wMTEwNzgiLCBcCi0gICAgICAgICAgIjAuMDExMDk3LCAwLjAxMTA4NywgMC4wMTEwODksIDAuMDExMDg5LCAwLjAxMTA4OSwgMC4wMTEwOSwgMC4wMTEwOSIsIFwKLSAgICAgICAgICAiMC4wMTEyOTksIDAuMDExMTcyLCAwLjAxMTE0MywgMC4wMTExMzMsIDAuMDExMTI2LCAwLjAxMTExNiwgMC4wMTExMTQiLCBcCi0gICAgICAgICAgIjAuMDExNTk5LCAwLjAxMTMzNSwgMC4wMTEyNDcsIDAuMDExMjE1LCAwLjAxMTE4OCwgMC4wMTExNjQsIDAuMDExMTU3IiwgXAotICAgICAgICAgICIwLjAxMjIzMiwgMC4wMTE1MDIsIDAuMDExNTI1LCAwLjAxMTQ1NSwgMC4wMTEzNzQsIDAuMDExMzI5LCAwLjAxMTI4MyIsIFwKLSAgICAgICAgICAiMC4wMTI4OTEsIDAuMDExODM1LCAwLjAxMTU2NSwgMC4wMTE0NzQsIDAuMDExMzkyLCAwLjAxMTMzOCwgMC4wMTEyOTgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzY1NCwgMC4wMDM3NTgsIDAuMDAzNzcsIDAuMDAzNzczLCAwLjAwMzc3NiwgMC4wMDM3NzgsIDAuMDAzNzgiLCBcCi0gICAgICAgICAgIjAuMDAzMzc3LCAwLjAwMzY1NywgMC4wMDM3MSwgMC4wMDM3MjcsIDAuMDAzNzQzLCAwLjAwMzc1MSwgMC4wMDM3NTgiLCBcCi0gICAgICAgICAgIjAuMDAzMjk2LCAwLjAwMzU3MiwgMC4wMDM2NTIsIDAuMDAzNjgsIDAuMDAzNzA4LCAwLjAwMzcyMiwgMC4wMDM3MzUiLCBcCi0gICAgICAgICAgIjAuMDAzMzU2LCAwLjAwMzUxOCwgMC4wMDM2MTcsIDAuMDAzNjUsIDAuMDAzNjgzLCAwLjAwMzcwMSwgMC4wMDM3MTgiLCBcCi0gICAgICAgICAgIjAuMDAzNTI0LCAwLjAwMzU0MSwgMC4wMDM2MSwgMC4wMDM2NDEsIDAuMDAzNjczLCAwLjAwMzY5MiwgMC4wMDM3MDkiLCBcCi0gICAgICAgICAgIjAuMDAzOTQyLCAwLjAwMzYzOCwgMC4wMDM2NTIsIDAuMDAzNjY5LCAwLjAwMzY4OSwgMC4wMDM3MDIsIDAuMDAzNzE2IiwgXAotICAgICAgICAgICIwLjAwNDM4OSwgMC4wMDM3OTUsIDAuMDAzNzM1LCAwLjAwMzcyNywgMC4wMDM3MjgsIDAuMDAzNzMyLCAwLjAwMzczOCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkQiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA3OTkyLCAwLjAwODA3MywgMC4wMDgwNzksIDAuMDA4MDg1LCAwLjAwODA4NywgMC4wMDgwODgsIDAuMDA4MDkyIiwgXAotICAgICAgICAgICIwLjAwODAwOSwgMC4wMDgxMjksIDAuMDA4MTQ5LCAwLjAwODE1NiwgMC4wMDgxNiwgMC4wMDgxNjIsIDAuMDA4MTY3IiwgXAotICAgICAgICAgICIwLjAwODEyLCAwLjAwODE2LCAwLjAwODE3MywgMC4wMDgxNzgsIDAuMDA4MTgxLCAwLjAwODE4MywgMC4wMDgxODUiLCBcCi0gICAgICAgICAgIjAuMDA4MzQ1LCAwLjAwODIzNiwgMC4wMDgyMjEsIDAuMDA4MjE5LCAwLjAwODIxLCAwLjAwODIxMSwgMC4wMDgyMDgiLCBcCi0gICAgICAgICAgIjAuMDA4NjM1LCAwLjAwODM3NSwgMC4wMDgzMTMsIDAuMDA4MjkzLCAwLjAwODI3MSwgMC4wMDgyNTcsIDAuMDA4MjQ5IiwgXAotICAgICAgICAgICIwLjAwOTI0NywgMC4wMDg1NTUsIDAuMDA4NTQ3LCAwLjAwODQ3OCwgMC4wMDg0MjEsIDAuMDA4Mzg4LCAwLjAwODM1NCIsIFwKLSAgICAgICAgICAiMC4wMDk5MDUsIDAuMDA4ODczLCAwLjAwODYzLCAwLjAwODU0NywgMC4wMDg0NzMsIDAuMDA4NDE4LCAwLjAwODM4NyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzNjMyLCAwLjAwMzc1LCAwLjAwMzc2NCwgMC4wMDM3NjgsIDAuMDAzNzcyLCAwLjAwMzc3NCwgMC4wMDM3NzUiLCBcCi0gICAgICAgICAgIjAuMDAzNDU5LCAwLjAwMzY2OSwgMC4wMDM3MTUsIDAuMDAzNzMxLCAwLjAwMzc0NCwgMC4wMDM3NTIsIDAuMDAzNzU4IiwgXAotICAgICAgICAgICIwLjAwMzU3NCwgMC4wMDM2MzksIDAuMDAzNjg5LCAwLjAwMzcwOCwgMC4wMDM3MjcsIDAuMDAzNzM3LCAwLjAwMzc0NiIsIFwKLSAgICAgICAgICAiMC4wMDM4NTMsIDAuMDAzNjksIDAuMDAzNzA2LCAwLjAwMzcxOSwgMC4wMDM3MzMsIDAuMDAzNzQsIDAuMDAzNzQ5IiwgXAotICAgICAgICAgICIwLjAwNDMwMiwgMC4wMDM4MTUsIDAuMDAzNzc0LCAwLjAwMzc2OCwgMC4wMDM3NjcsIDAuMDAzNzY4LCAwLjAwMzc3IiwgXAotICAgICAgICAgICIwLjAwNDk4NywgMC4wMDQwOTYsIDAuMDAzOTM2LCAwLjAwMzg5MSwgMC4wMDM4NTUsIDAuMDAzODM4LCAwLjAwMzgyNCIsIFwKLSAgICAgICAgICAiMC4wMDU1NTYsIDAuMDA0MzQ2LCAwLjAwNDA5NSwgMC4wMDQwMTUsIDAuMDAzOTM4LCAwLjAwMzkwNSwgMC4wMDM4OCIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBOQU5ENEJYNCAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoTkFORDRCWDQpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMS41NDM5NTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQU4pICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDkyMDgzOTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA5MjA4Mzk7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwOTIwODI4OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjAxLCAwLjAwMTk4OSwgMC4wMDIwNzIsIDAuMDAyMTgxLCAwLjAwMjMyOSwgMC4wMDI1OTksIDAuMDAyODQ5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA0Mzc5LCAwLjAwNDM3OSwgMC4wMDQ0NCwgMC4wMDQ1NTgsIDAuMDA0NzAxLCAwLjAwNDk4NCwgMC4wMDUyNTkiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMzI2NDU5OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMzI2NDU5OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMzI1NjI2OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjA5NywgMC4wMDIwOTYsIDAuMDAyMDk1LCAwLjAwMjA5NCwgMC4wMDIwOTQsIDAuMDAyMDk0LCAwLjAwMjA5NCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjA5OSwgMC4wMDIxMDEsIDAuMDAyMTAzLCAwLjAwMjEsIDAuMDAyMTAxLCAwLjAwMjEwMiwgMC4wMDIxMDIiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEMpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMzQxNTU1OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMzQxNTU1OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMzQwODk5OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjA5NywgMC4wMDIwOTYsIDAuMDAyMDk0LCAwLjAwMjA5NSwgMC4wMDIwOTQsIDAuMDAyMDk0LCAwLjAwMjA5MyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjA5OSwgMC4wMDIxMDEsIDAuMDAyMTAxLCAwLjAwMjEwMiwgMC4wMDIxMDMsIDAuMDAyMTA0LCAwLjAwMjEwNCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAzMzE3Mzc7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAzMzE1ODg7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAzMzE3Mzc7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjc2LCAwLjAwMDI3MywgMC4wMDAyNzMsIDAuMDAwMjcyLCAwLjAwMDI3MiwgMC4wMDAyNzMsIDAuMDAwMjcyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyMzgyLCAwLjAwMjM4NSwgMC4wMDIzODUsIDAuMDAyMzgzLCAwLjAwMjM4MywgMC4wMDIzODMsIDAuMDAyMzgzIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMzg3MzgxOwotICAgIGZ1bmN0aW9uIDogIighKCgoKCFBTikgQikgQykgRCkpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzgwNSwgMC4wOTQzNzEsIDAuMTQ5Mzk5LCAwLjE4ODYwNSwgMC4yNTEzMTcsIDAuMzA2MzAzLCAwLjM4NDY2IiwgXAotICAgICAgICAgICIwLjA0NjI4OCwgMC4xMDI1OTcsIDAuMTU3NjY4LCAwLjE5Njk1NCwgMC4yNTk2NjgsIDAuMzE0NjA5LCAwLjM5Mjk0OSIsIFwKLSAgICAgICAgICAiMC4wNTUzMzYsIDAuMTExNjYzLCAwLjE2Njc0NywgMC4yMDU5NTgsIDAuMjY4NjY3LCAwLjMyMzY4MiwgMC40MDE5NTQiLCBcCi0gICAgICAgICAgIjAuMDYyMTQ5LCAwLjExODUwNywgMC4xNzM1NDUsIDAuMjEyNzcsIDAuMjc1NTQ5LCAwLjMzMDMzOSwgMC40MDg4OTQiLCBcCi0gICAgICAgICAgIjAuMDY3NzMsIDAuMTI0MjMzLCAwLjE3OTI2NywgMC4yMTg1MjgsIDAuMjgxMjY0LCAwLjMzNjA3MSwgMC40MTQ0NjQiLCBcCi0gICAgICAgICAgIjAuMDc1NDIzLCAwLjEzMTk5NSwgMC4xODY2NTEsIDAuMjI1ODQ4LCAwLjI4ODUxNywgMC4zNDM3MTYsIDAuNDIyMTI3IiwgXAotICAgICAgICAgICIwLjA4MDk3NiwgMC4xMzc3NzQsIDAuMTkyODYzLCAwLjIzMjA5MiwgMC4yOTQ2ODEsIDAuMzQ5NTE0LCAwLjQyNzkzMyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzNzM4NiwgMC4xNTExOTgsIDAuMjY2NTg1LCAwLjM0ODk5MywgMC40ODE0MjYsIDAuNTk3MjgyLCAwLjc2MjQzNyIsIFwKLSAgICAgICAgICAiMC4wMzc0MzgsIDAuMTUxMjI1LCAwLjI2NjcwNiwgMC4zNDkzNTEsIDAuNDgxNjQ4LCAwLjU5NzIxOCwgMC43NjI0ODIiLCBcCi0gICAgICAgICAgIjAuMDM4MzMzLCAwLjE1MTMyNywgMC4yNjY3MTEsIDAuMzQ5MjM4LCAwLjQ4MTQ3OSwgMC41OTczNTIsIDAuNzYyNDY0IiwgXAotICAgICAgICAgICIwLjAzOTYzNywgMC4xNTE1NjEsIDAuMjY2NzEzLCAwLjM0OTMzNywgMC40ODE1OTcsIDAuNTk3MTk1LCAwLjc2MjcxNSIsIFwKLSAgICAgICAgICAiMC4wNDA4ODUsIDAuMTUxODYzLCAwLjI2Njg1MSwgMC4zNDkzNzEsIDAuNDgxNjM4LCAwLjU5NzMyMiwgMC43NjI0MTYiLCBcCi0gICAgICAgICAgIjAuMDQyNTg0LCAwLjE1MjM2LCAwLjI2NzAxNiwgMC4zNDk0NzEsIDAuNDgxNTIzLCAwLjU5NzMwMywgMC43NjI0MjEiLCBcCi0gICAgICAgICAgIjAuMDQ0MzA4LCAwLjE1Mjk1NCwgMC4yNjcxNTIsIDAuMzQ5NCwgMC40ODE2MDQsIDAuNTk3MjMsIDAuNzYyNjc3Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc4NjQxLCAwLjI2NTQxNiwgMC40NTEzNzYsIDAuNTg0MjY0LCAwLjc5NzEzNSwgMC45ODI5NzMsIDEuMjQ5MDQiLCBcCi0gICAgICAgICAgIjAuMDg2NjgzLCAwLjI3MzQyNSwgMC40NTk3NTQsIDAuNTkzMDM1LCAwLjgwNTA4NCwgMC45OTEzODksIDEuMjU3IiwgXAotICAgICAgICAgICIwLjA5NDg3NCwgMC4yODE3MTIsIDAuNDY3OTcxLCAwLjYwMDkxNywgMC44MTMzNTUsIDAuOTk5OTYzLCAxLjI2NTY5IiwgXAotICAgICAgICAgICIwLjEwMDc4LCAwLjI4NzcwOSwgMC40NzM5MzYsIDAuNjA2NzA1LCAwLjgxOTgzMSwgMS4wMDU0MSwgMS4yNzE2NCIsIFwKLSAgICAgICAgICAiMC4xMDU1NTUsIDAuMjkyNTcxLCAwLjQ3ODgyNywgMC42MTE1OSwgMC44MjQxODcsIDEuMDEwMzcsIDEuMjc3NDUiLCBcCi0gICAgICAgICAgIjAuMTExNzEyLCAwLjI5ODUzNiwgMC40ODQ5MSwgMC42MTc3NjgsIDAuODMwNDM1LCAxLjAxNjM5LCAxLjI4MjIxIiwgXAotICAgICAgICAgICIwLjExNjEzOCwgMC4zMDI5NDMsIDAuNDg5MjgsIDAuNjIyMjQ2LCAwLjgzNDk4OCwgMS4wMjEwNiwgMS4yODY3NSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5OTAyNywgMC40ODUzOTMsIDAuODcwOTQ5LCAxLjE0NzY5LCAxLjU4OTM1LCAxLjk3MjI2LCAyLjUyNzc2IiwgXAotICAgICAgICAgICIwLjA5OTE0OSwgMC40ODQ5NDIsIDAuODcwMTY5LCAxLjE0NTcyLCAxLjU4Njk1LCAxLjk3NTc2LCAyLjUyMzI1IiwgXAotICAgICAgICAgICIwLjA5OTE1MywgMC40ODQ2MzUsIDAuODcwMjIxLCAxLjE0NTc0LCAxLjU4NzU3LCAxLjk3MjI3LCAyLjUyMzA5IiwgXAotICAgICAgICAgICIwLjA5OTE0MywgMC40ODUyOTQsIDAuODcxNjQyLCAxLjE0NjI4LCAxLjU4NjU2LCAxLjk3MjcxLCAyLjUyMjg4IiwgXAotICAgICAgICAgICIwLjA5OTE4MiwgMC40ODUzNzIsIDAuODcxNzIyLCAxLjE0NzcsIDEuNTg3OTQsIDEuOTc1NDUsIDIuNTIzMyIsIFwKLSAgICAgICAgICAiMC4wOTk0MTEsIDAuNDg1MTU5LCAwLjg3MDI5NSwgMS4xNDU2MywgMS41ODY0MywgMS45NzU2NywgMi41Mjc2MiIsIFwKLSAgICAgICAgICAiMC4wOTk1NzYsIDAuNDg0Nzg4LCAwLjg2OTk0LCAxLjE0NTc5LCAxLjU4NjU2LCAxLjk3NTQ3LCAyLjUyNzQ5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE5MDAxLCAwLjA3NDcxLCAwLjEyOTg2OCwgMC4xNjkyMDYsIDAuMjMyMTc4LCAwLjI4NzI1LCAwLjM2NjAwNCIsIFwKLSAgICAgICAgICAiMC4wMjcyOTIsIDAuMDgyODQ3LCAwLjEzODEyNSwgMC4xNzc1NDIsIDAuMjQwNDg3LCAwLjI5NTUyNCwgMC4zNzQyMTciLCBcCi0gICAgICAgICAgIjAuMDM2MywgMC4wOTMxOTEsIDAuMTQ4MzYxLCAwLjE4NzYwOCwgMC4yNTA2MTcsIDAuMzA1NjQyLCAwLjM4NDI4MSIsIFwKLSAgICAgICAgICAiMC4wNDI1ODgsIDAuMTAzNDA1LCAwLjE1ODQ4LCAwLjE5NzgzNywgMC4yNjA0NDMsIDAuMzE1ODM3LCAwLjM5NDQwOCIsIFwKLSAgICAgICAgICAiMC4wNDczNTksIDAuMTEzOTI2LCAwLjE2ODc4NSwgMC4yMDgxMiwgMC4yNzA5OTcsIDAuMzI1NjcsIDAuNDA0NzU0IiwgXAotICAgICAgICAgICIwLjA1Mzc1MSwgMC4xMzEyNzMsIDAuMTg1NTYyLCAwLjIyNDc2NiwgMC4yODc2MDcsIDAuMzQyNjY3LCAwLjQyMTI3MiIsIFwKLSAgICAgICAgICAiMC4wNTgwMTcsIDAuMTQ0MDQ2LCAwLjIwMDM2OCwgMC4yMzk0MTIsIDAuMzAyMTI1LCAwLjM1NzEzNiwgMC40MzU4MTQiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzI0NjIsIDAuMTQ4NTk1LCAwLjI2NDg0MiwgMC4zNDc4NzksIDAuNDgwNzI4LCAwLjU5NzE2OCwgMC43NjMyODUiLCBcCi0gICAgICAgICAgIjAuMDM2MjY2LCAwLjE0ODYwMiwgMC4yNjQ5NTIsIDAuMzQ3OTY1LCAwLjQ4MDk1NywgMC41OTcyMTEsIDAuNzYzMjk4IiwgXAotICAgICAgICAgICIwLjA0NTIwMywgMC4xNTE1LCAwLjI2NTEwNiwgMC4zNDc5MjIsIDAuNDgwNzg5LCAwLjU5NzA3NSwgMC43NjMwNTkiLCBcCi0gICAgICAgICAgIjAuMDU0NjMsIDAuMTU3NDcyLCAwLjI2Nzg5MiwgMC4zNDkwNTUsIDAuNDgwODAzLCAwLjU5NzA2OSwgMC43NjMwNjQiLCBcCi0gICAgICAgICAgIjAuMDYyOTUxLCAwLjE2NDk0MiwgMC4yNzI2NjIsIDAuMzUyMTk0LCAwLjQ4MTk1OCwgMC41OTcwMzgsIDAuNzYzMDM2IiwgXAotICAgICAgICAgICIwLjA3NDU2OSwgMC4xNzcyMzMsIDAuMjgyNjgyLCAwLjM2MDExLCAwLjQ4NzAyNiwgMC42MDAyNTksIDAuNzYzNjczIiwgXAotICAgICAgICAgICIwLjA4NDExNSwgMC4xODk4MjgsIDAuMjkzMTgyLCAwLjM2ODk1NywgMC40OTM2MDcsIDAuNjA1MDE2LCAwLjc2NjcwNyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1OTAyLCAwLjI0NTUyOCwgMC40MzE1MjMsIDAuNTY0NDc0LCAwLjc3Nzc3MywgMC45NjMzNzUsIDEuMjI4NzIiLCBcCi0gICAgICAgICAgIjAuMDY0NDg4LCAwLjI1MTQ4NSwgMC40Mzc0OTQsIDAuNTcwNTI4LCAwLjc4MzA0LCAwLjk2OTM1MSwgMS4yMzUwNCIsIFwKLSAgICAgICAgICAiMC4wNzA1MjMsIDAuMjU3NTU0LCAwLjQ0Mzg3NiwgMC41NzcyNTksIDAuNzg5MjcyLCAwLjk3NTkyMiwgMS4yNDEwNiIsIFwKLSAgICAgICAgICAiMC4wNzY1NzksIDAuMjYzNjc2LCAwLjQ0OTgsIDAuNTgzMDE5LCAwLjc5NjI0MywgMC45ODE0NDcsIDEuMjQ4MDciLCBcCi0gICAgICAgICAgIjAuMDgxOTU3LCAwLjI2OTQ2NCwgMC40NTU5NjMsIDAuNTg5MzQ3LCAwLjgwMTQ5NSwgMC45ODc2MTMsIDEuMjU0MTIiLCBcCi0gICAgICAgICAgIjAuMDg5ODYyLCAwLjI3OTE5OSwgMC40NjU4MDksIDAuNTk4NTYxLCAwLjgxMTI4NiwgMC45OTc1NjksIDEuMjYzNzYiLCBcCi0gICAgICAgICAgIjAuMDk1OTg1LCAwLjI4ODEwOSwgMC40NzQ0OTQsIDAuNjA3NDc1LCAwLjgyMDcxNiwgMS4wMDYwNCwgMS4yNzIxOCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5ODk3NywgMC40ODQ1NDksIDAuODcwMjY3LCAxLjE0Nzc1LCAxLjU4NjksIDEuOTcyMjcsIDIuNTI3NTUiLCBcCi0gICAgICAgICAgIjAuMDk5MTI5LCAwLjQ4NDYyNCwgMC44NzE2ODYsIDEuMTQ1NzksIDEuNTg5MTIsIDEuOTcyNjUsIDIuNTI3NSIsIFwKLSAgICAgICAgICAiMC4xMDA3MTcsIDAuNDg0NTgsIDAuODcxNzA3LCAxLjE0NTcxLCAxLjU4Njc5LCAxLjk3MjI3LCAyLjUyMzU5IiwgXAotICAgICAgICAgICIwLjEwMzc4NSwgMC40ODQ1NDksIDAuODcxNzA4LCAxLjE0NTU2LCAxLjU4NjUxLCAxLjk3NTY3LCAyLjUyMzI5IiwgXAotICAgICAgICAgICIwLjEwNzk3OCwgMC40ODUzNTYsIDAuODcwMzQyLCAxLjE0NTg5LCAxLjU4NzM4LCAxLjk3NTY1LCAyLjUyMzI5IiwgXAotICAgICAgICAgICIwLjExNjM5NiwgMC40ODc0OTksIDAuODcwNDUxLCAxLjE0NzY5LCAxLjU4OTI1LCAxLjk3NTUsIDIuNTIzNjYiLCBcCi0gICAgICAgICAgIjAuMTI0MTk2LCAwLjQ5MDcyLCAwLjg3MTE5MiwgMS4xNDc4NiwgMS41ODY2NywgMS45NzU2OSwgMi41Mjc0NCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxNzc5LCAwLjA3MzA5OCwgMC4xMjgyMTIsIDAuMTY3NTg4LCAwLjIzMDY0NiwgMC4yODU2MDUsIDAuMzY0NTE1IiwgXAotICAgICAgICAgICIwLjAyNjEzMywgMC4wODE0MzIsIDAuMTM2NTQ0LCAwLjE3NTg5NiwgMC4yMzg4NTksIDAuMjk0MDU2LCAwLjM3MjY0NSIsIFwKLSAgICAgICAgICAiMC4wMzQ2MDQsIDAuMDkxNjE0LCAwLjE0NjcxNSwgMC4xODYwNTksIDAuMjQ5MDE4LCAwLjMwNDE2OSwgMC4zODI4OTEiLCBcCi0gICAgICAgICAgIjAuMDQwMjM1LCAwLjEwMjM1NiwgMC4xNTczNzksIDAuMTk2NzExLCAwLjI1OTY0NSwgMC4zMTQ4MTMsIDAuMzkzNTg4IiwgXAotICAgICAgICAgICIwLjA0NDk0MywgMC4xMTIzNTQsIDAuMTY3Mjg3LCAwLjIwNjU0NiwgMC4yNjk0NzEsIDAuMzI0MTMyLCAwLjQwMzI3OCIsIFwKLSAgICAgICAgICAiMC4wNTA0MjksIDAuMTI5NTQ0LCAwLjE4Mzk5MywgMC4yMjMxOTEsIDAuMjg2MDQ4LCAwLjM0MTA2MiwgMC40MTk3ODIiLCBcCi0gICAgICAgICAgIjAuMDU0MTcxLCAwLjE0MjIxOCwgMC4xOTg4MDIsIDAuMjM3ODM1LCAwLjMwMDU3MywgMC4zNTU1OTcsIDAuNDM0MjY4Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDMwMjUxLCAwLjE0NjYzNCwgMC4yNjMwMDIsIDAuMzQ2MTk2LCAwLjQ3OTMxOSwgMC41OTU1NjgsIDAuNzYxODQ2IiwgXAotICAgICAgICAgICIwLjAzNDM3MSwgMC4xNDY2MzUsIDAuMjYzMDg2LCAwLjM0NjAwOSwgMC40NzkxNjgsIDAuNTk1Njc3LCAwLjc2MTcxOCIsIFwKLSAgICAgICAgICAiMC4wNDM1MDQsIDAuMTQ5NjM2LCAwLjI2MzI2NywgMC4zNDYyMDMsIDAuNDc5MTgzLCAwLjU5NTQ2OCwgMC43NjE2NTQiLCBcCi0gICAgICAgICAgIjAuMDUyOTM5LCAwLjE1NTI4OSwgMC4yNjU5MzcsIDAuMzQ3MTY0LCAwLjQ3OTE2OSwgMC41OTU0NywgMC43NjE3ODQiLCBcCi0gICAgICAgICAgIjAuMDYwNTcyLCAwLjE2MzE0OCwgMC4yNzA5MzcsIDAuMzUwNTE3LCAwLjQ4MDQ2OSwgMC41OTU1MjQsIDAuNzYxNzA3IiwgXAotICAgICAgICAgICIwLjA3MjM0OCwgMC4xNzU3MTcsIDAuMjgxMDI0LCAwLjM1ODQ4NiwgMC40ODU1MDcsIDAuNTk4NjE4LCAwLjc2MjA4IiwgXAotICAgICAgICAgICIwLjA4MTgyMSwgMC4xODgzMDYsIDAuMjkxNjc0LCAwLjM2NzM2MiwgMC40OTIxMTUsIDAuNjAzNjQ2LCAwLjc2NTExIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU0MjQ1LCAwLjI0MDc5OCwgMC40MjY4MDIsIDAuNTU5NjQxLCAwLjc3MjI0OCwgMC45NTgyNDYsIDEuMjI0NDYiLCBcCi0gICAgICAgICAgIjAuMDYwMTMsIDAuMjQ2OTczLCAwLjQzMzA5NiwgMC41NjYwOTEsIDAuNzc4NTI3LCAwLjk2NTQzNSwgMS4yMzAxOCIsIFwKLSAgICAgICAgICAiMC4wNjc4NTIsIDAuMjU0OTA4LCAwLjQ0MTMzNSwgMC41NzM4NTUsIDAuNzg2NTk5LCAwLjk3MjQ1OCwgMS4yMzg0OSIsIFwKLSAgICAgICAgICAiMC4wNzU5MTYsIDAuMjYyMTUzLCAwLjQ0OTIwOCwgMC41ODIwNDgsIDAuNzk0NjgxLCAwLjk4MTQ0MywgMS4yNDYzOCIsIFwKLSAgICAgICAgICAiMC4wODMyNjEsIDAuMjcwODE0LCAwLjQ1NzM2LCAwLjU5MDE3LCAwLjgwMjk0OCwgMC45ODg3OTQsIDEuMjU1MjMiLCBcCi0gICAgICAgICAgIjAuMDkzNjk4LCAwLjI4MzcyOCwgMC40NzAxNTcsIDAuNjAzMDgyLCAwLjgxNTg0NiwgMS4wMDIzNywgMS4yNjgwOSIsIFwKLSAgICAgICAgICAiMC4xMDE4MjUsIDAuMjk1NTYxLCAwLjQ4MTY2NSwgMC42MTQ4MDIsIDAuODI3MjQ4LCAxLjAxMzI3LCAxLjI3ODczIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk5MDUzLCAwLjQ4NDU1NCwgMC44NzE3ODMsIDEuMTQ1ODUsIDEuNTg5MjYsIDEuOTc1NiwgMi41MjMyOCIsIFwKLSAgICAgICAgICAiMC4wOTkxOTcsIDAuNDg1MzQsIDAuODcxNzE4LCAxLjE0NTcxLCAxLjU4OTMzLCAxLjk3MTc1LCAyLjUyNzY4IiwgXAotICAgICAgICAgICIwLjEwMTk4NywgMC40ODUzMjgsIDAuODcwMjA3LCAxLjE0NTkzLCAxLjU4Njc0LCAxLjk3MjUsIDIuNTIzIiwgXAotICAgICAgICAgICIwLjEwNzAwMywgMC40ODQ2MTEsIDAuODcxNjksIDEuMTQ3NjksIDEuNTg5MjcsIDEuOTcyMjUsIDIuNTI0MzQiLCBcCi0gICAgICAgICAgIjAuMTEyOTg5LCAwLjQ4NTM1MiwgMC44NzAxOTgsIDEuMTQ3NTksIDEuNTg2NTYsIDEuOTc1NjMsIDIuNTIzMjciLCBcCi0gICAgICAgICAgIjAuMTIzODIzLCAwLjQ4ODY1OCwgMC44NzE3ODQsIDEuMTQ1NTYsIDEuNTg2NSwgMS45NzIyNSwgMi41MjM4NiIsIFwKLSAgICAgICAgICAiMC4xMzI5NjcsIDAuNDkzMjg2LCAwLjg3MTMsIDEuMTQ1NzYsIDEuNTg5MTEsIDEuOTcyMTcsIDIuNTIzNjEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTYwNywgMC4wNzEwMzIsIDAuMTI1OTksIDAuMTY1MTg0LCAwLjIyNzk0NywgMC4yODI4MjYsIDAuMzYxNzMiLCBcCi0gICAgICAgICAgIjAuMDI0MzgxLCAwLjA3OTM3NCwgMC4xMzQzMDksIDAuMTczNTQyLCAwLjIzNjI1OCwgMC4yOTEyMDYsIDAuMzY5NjY5IiwgXAotICAgICAgICAgICIwLjAzMjA4NSwgMC4wODk3MzUsIDAuMTQ0NjAzLCAwLjE4Mzg1MiwgMC4yNDYzNzUsIDAuMzAxNDIxLCAwLjM3OTgzMSIsIFwKLSAgICAgICAgICAiMC4wMzczNjMsIDAuMTAwMDYyLCAwLjE1NDg5NywgMC4xOTQxMzgsIDAuMjU2NTQ2LCAwLjMxMTk1OSwgMC4zOTAxNzkiLCBcCi0gICAgICAgICAgIjAuMDQxMzQ0LCAwLjExMDY1MiwgMC4xNjUzNTgsIDAuMjA0NTQ2LCAwLjI2NzIzNiwgMC4zMjE3NjIsIDAuNDAwNjY4IiwgXAotICAgICAgICAgICIwLjA0NjEzNiwgMC4xMjY5MDYsIDAuMTgyMjEzLCAwLjIyMTMsIDAuMjgzOTc5LCAwLjMzODk4MywgMC40MTcyODgiLCBcCi0gICAgICAgICAgIjAuMDQ5MjgyLCAwLjEzOTAzNSwgMC4xOTY5NjEsIDAuMjM2MDAzLCAwLjI5ODUzNiwgMC4zNTM0MzMsIDAuNDMyIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDI3OTIzLCAwLjE0NDEwNSwgMC4yNTk5MzEsIDAuMzQyNjA3LCAwLjQ3NTA1NSwgMC41OTExMzQsIDAuNzU3MzM5IiwgXAotICAgICAgICAgICIwLjAzMjQ2NSwgMC4xNDQxMzQsIDAuMjU5NzU3LCAwLjM0MjU2MywgMC40NzU4MzQsIDAuNTkxOTc0LCAwLjc1NjYwMSIsIFwKLSAgICAgICAgICAiMC4wNDE5ODIsIDAuMTQ3MjQ2LCAwLjI2MDU0OSwgMC4zNDI4MjksIDAuNDc1MDg0LCAwLjU5MTI5NiwgMC43NTcwMiIsIFwKLSAgICAgICAgICAiMC4wNTA5MDEsIDAuMTUzMDUyLCAwLjI2MzA4MywgMC4zNDM4NTgsIDAuNDc1MDU0LCAwLjU5MTQzNiwgMC43NTczNTkiLCBcCi0gICAgICAgICAgIjAuMDU4NjgzLCAwLjE2MDQsIDAuMjY4MTU1LCAwLjM0NzY1LCAwLjQ3NzI3NSwgMC41OTEzMDUsIDAuNzU2OTQ4IiwgXAotICAgICAgICAgICIwLjA3MDIzOCwgMC4xNzM5ODksIDAuMjc3OTAzLCAwLjM1NTMyNCwgMC40ODIyODksIDAuNTk0NDAxLCAwLjc1NzQ5OSIsIFwKLSAgICAgICAgICAiMC4wNzk2MDgsIDAuMTg3ODkzLCAwLjI4ODE4LCAwLjM2Mzg4NSwgMC40ODgzNSwgMC42MDAwNzgsIDAuNzYwNTA0Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQ2NjU0LCAwLjIzMzA5OSwgMC40MTk1MTUsIDAuNTUxODk4LCAwLjc2NDg4NiwgMC45NTA0NzEsIDEuMjE2NzIiLCBcCi0gICAgICAgICAgIjAuMDUzMTQzLCAwLjIzOTg0NCwgMC40MjYwNjYsIDAuNTU5MDcxLCAwLjc3MTQ2MywgMC45NTczODksIDEuMjIzMiIsIFwKLSAgICAgICAgICAiMC4wNjIzMjYsIDAuMjQ4NDA5LCAwLjQzNDY4NiwgMC41Njc1NTMsIDAuNzc5OTQ4LCAwLjk2NjA3NSwgMS4yMzE1MSIsIFwKLSAgICAgICAgICAiMC4wNzE4NTUsIDAuMjU3MjMzLCAwLjQ0MzQ2MiwgMC41NzYxNTEsIDAuNzg5Njg2LCAwLjk3NDczOSwgMS4yNDEyMyIsIFwKLSAgICAgICAgICAiMC4wODEwMDcsIDAuMjY2MDY1LCAwLjQ1MTgxMywgMC41ODQ3NzEsIDAuNzk3Mjk4LCAwLjk4MzI5OCwgMS4yNDk2NyIsIFwKLSAgICAgICAgICAiMC4wOTI5OTgsIDAuMjgwNDk1LCAwLjQ2NjA4MiwgMC41OTg4NjgsIDAuODExNTY1LCAwLjk5NzExMiwgMS4yNjI4IiwgXAotICAgICAgICAgICIwLjEwMTcxNywgMC4yOTM0ODMsIDAuNDc4NTc4LCAwLjYxMTA3NSwgMC44MjM3MSwgMS4wMDkyOSwgMS4yNzUwNiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5ODc2NCwgMC40ODUzMzIsIDAuODcwNCwgMS4xNDc3MywgMS41ODY0NywgMS45NzI2NiwgMi41MjI5MiIsIFwKLSAgICAgICAgICAiMC4wOTg1NjcsIDAuNDg0NDY0LCAwLjg3MTY1NywgMS4xNDc3MiwgMS41ODkxOCwgMS45NzU3MiwgMi41MjczNiIsIFwKLSAgICAgICAgICAiMC4xMDMxMjUsIDAuNDg0NjI3LCAwLjg3MTY5OSwgMS4xNDc2MSwgMS41ODkzMSwgMS45NzIwMSwgMi41MjM2NCIsIFwKLSAgICAgICAgICAiMC4xMDk3NzYsIDAuNDg1MTM5LCAwLjg3MDM1LCAxLjE0Njk4LCAxLjU4Njc1LCAxLjk3NTY3LCAyLjUyMzI4IiwgXAotICAgICAgICAgICIwLjExNzMzNSwgMC40ODUxNzYsIDAuODcxNzI0LCAxLjE0NTc0LCAxLjU4NjgyLCAxLjk3NTYyLCAyLjUyMzI2IiwgXAotICAgICAgICAgICIwLjEyOTAwNiwgMC40ODk3ODQsIDAuODcxNjExLCAxLjE0NzY1LCAxLjU4NjQ3LCAxLjk3NTY0LCAyLjUyNzUiLCBcCi0gICAgICAgICAgIjAuMTM5MzcsIDAuNDk1NzYxLCAwLjg3MTk5OSwgMS4xNDU4MSwgMS41ODkxOSwgMS45NzU2NiwgMi41MjMyOSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkFOIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxOTE4OSwgMC4wMTkyMDIsIDAuMDE5MjAxLCAwLjAxOTIwMiwgMC4wMTkyMDEsIDAuMDE5MiwgMC4wMTkxOTgiLCBcCi0gICAgICAgICAgIjAuMDE5MTQ2LCAwLjAxOTE2OSwgMC4wMTkxNzEsIDAuMDE5MTc0LCAwLjAxOTE3MSwgMC4wMTkxNzEsIDAuMDE5MTciLCBcCi0gICAgICAgICAgIjAuMDE5MjE3LCAwLjAxOTI0LCAwLjAxOTI0NSwgMC4wMTkyNDMsIDAuMDE5MjQ0LCAwLjAxOTI0MSwgMC4wMTkyNDIiLCBcCi0gICAgICAgICAgIjAuMDE5MzQ2LCAwLjAxOTM1MiwgMC4wMTkzNDksIDAuMDE5MzUxLCAwLjAxOTM1MSwgMC4wMTkzNDksIDAuMDE5MzQ3IiwgXAotICAgICAgICAgICIwLjAxOTUwMSwgMC4wMTk0OTgsIDAuMDE5NDk2LCAwLjAxOTQ5NywgMC4wMTk0OTcsIDAuMDE5NDk3LCAwLjAxOTQ5NCIsIFwKLSAgICAgICAgICAiMC4wMTk3NzcsIDAuMDE5NzcxLCAwLjAxOTc2MywgMC4wMTk3NjMsIDAuMDE5NzY0LCAwLjAxOTc1NywgMC4wMTk3NTUiLCBcCi0gICAgICAgICAgIjAuMDIwMDg2LCAwLjAyMDAyNywgMC4wMjAwMDIsIDAuMDIwMDEyLCAwLjAxOTk5NSwgMC4wMTk5OTMsIDAuMDIwMDA3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDk4NDksIDAuMDEwMDQ0LCAwLjAxMDA3MiwgMC4wMTAwODEsIDAuMDEwMDg4LCAwLjAxMDA5MiwgMC4wMTAwOTYiLCBcCi0gICAgICAgICAgIjAuMDA5NzY3LCAwLjAwOTk5NiwgMC4wMTAwMzYsIDAuMDEwMDQ4LCAwLjAxMDA2LCAwLjAxMDA2NiwgMC4wMTAwNzEiLCBcCi0gICAgICAgICAgIjAuMDA5NzgsIDAuMDEwMDQxLCAwLjAxMDA5NSwgMC4wMTAxMTIsIDAuMDEwMTI5LCAwLjAxMDEzNywgMC4wMTAxNDUiLCBcCi0gICAgICAgICAgIjAuMDA5ODUxLCAwLjAxMDEyNCwgMC4wMTAxODcsIDAuMDEwMjA4LCAwLjAxMDIyOCwgMC4wMTAyMzgsIDAuMDEwMjQ4IiwgXAotICAgICAgICAgICIwLjAwOTk2LCAwLjAxMDIzOCwgMC4wMTAzMDgsIDAuMDEwMzIzLCAwLjAxMDM0NiwgMC4wMTAzNjYsIDAuMDEwMzc3IiwgXAotICAgICAgICAgICIwLjAxMDE4MiwgMC4wMTA0NjEsIDAuMDEwNTM4LCAwLjAxMDU1NCwgMC4wMTA1OTMsIDAuMDEwNTk0LCAwLjAxMDYyIiwgXAotICAgICAgICAgICIwLjAxMDM5OSwgMC4wMTA2NzgsIDAuMDEwNzQzLCAwLjAxMDc3NSwgMC4wMTA4MTksIDAuMDEwODM1LCAwLjAxMDg1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTYwMjIsIDAuMDE2MDMxLCAwLjAxNjAzMSwgMC4wMTYwMzIsIDAuMDE2MDMxLCAwLjAxNjAzLCAwLjAxNjAzIiwgXAotICAgICAgICAgICIwLjAxNTk0NSwgMC4wMTU5NjMsIDAuMDE1OTgyLCAwLjAxNTk4NCwgMC4wMTU5ODcsIDAuMDE1OTg2LCAwLjAxNTk4NSIsIFwKLSAgICAgICAgICAiMC4wMTYwMzYsIDAuMDE2MDQ4LCAwLjAxNjAyNywgMC4wMTYwMDksIDAuMDE2MDAzLCAwLjAxNTk5OCwgMC4wMTU5OTciLCBcCi0gICAgICAgICAgIjAuMDE2MjgxLCAwLjAxNjE1MiwgMC4wMTYwOTEsIDAuMDE2MDY5LCAwLjAxNjAzNCwgMC4wMTYwMzYsIDAuMDE2MDI0IiwgXAotICAgICAgICAgICIwLjAxNjYxNywgMC4wMTYzMTUsIDAuMDE2MTksIDAuMDE2MTQ4LCAwLjAxNjEwOSwgMC4wMTYwNzIsIDAuMDE2MDY3IiwgXAotICAgICAgICAgICIwLjAxNzIwNSwgMC4wMTY0OTMsIDAuMDE2MzkxLCAwLjAxNjMwOCwgMC4wMTYyMzQsIDAuMDE2MTg5LCAwLjAxNjE1NCIsIFwKLSAgICAgICAgICAiMC4wMTc3NzIsIDAuMDE2NjgyLCAwLjAxNjYyOCwgMC4wMTY0OTEsIDAuMDE2Mzc2LCAwLjAxNjMxMywgMC4wMTYyNDgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzI3MywgMC4wMDMzNzMsIDAuMDAzMzg1LCAwLjAwMzM4OSwgMC4wMDMzOTIsIDAuMDAzMzk0LCAwLjAwMzM5NiIsIFwKLSAgICAgICAgICAiMC4wMDI5OTUsIDAuMDAzMjcyLCAwLjAwMzMyNiwgMC4wMDMzNDMsIDAuMDAzMzU5LCAwLjAwMzM2NywgMC4wMDMzNzQiLCBcCi0gICAgICAgICAgIjAuMDAyODcyLCAwLjAwMzE3NSwgMC4wMDMyNjEsIDAuMDAzMjkxLCAwLjAwMzMxOSwgMC4wMDMzMzQsIDAuMDAzMzQ4IiwgXAotICAgICAgICAgICIwLjAwMjg0OSwgMC4wMDMxMTEsIDAuMDAzMjEsIDAuMDAzMjQ4LCAwLjAwMzI4NSwgMC4wMDMzMDYsIDAuMDAzMzI1IiwgXAotICAgICAgICAgICIwLjAwMjksIDAuMDAzMDgyLCAwLjAwMzE4LCAwLjAwMzIyLCAwLjAwMzI2MiwgMC4wMDMyODYsIDAuMDAzMzA4IiwgXAotICAgICAgICAgICIwLjAwMzExNCwgMC4wMDMxMDgsIDAuMDAzMTc1LCAwLjAwMzIxLCAwLjAwMzI0OSwgMC4wMDMyNzIsIDAuMDAzMjk2IiwgXAotICAgICAgICAgICIwLjAwMzQyLCAwLjAwMzE5OSwgMC4wMDMyMTksIDAuMDAzMjM5LCAwLjAwMzI2NiwgMC4wMDMyODQsIDAuMDAzMzAzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTMwMTIsIDAuMDEzMDM4LCAwLjAxMzA0MSwgMC4wMTMwNDMsIDAuMDEzMDQ0LCAwLjAxMzA0MiwgMC4wMTMwNDYiLCBcCi0gICAgICAgICAgIjAuMDEyOTg0LCAwLjAxMzA2LCAwLjAxMzA3MiwgMC4wMTMwNzcsIDAuMDEzMDc5LCAwLjAxMzA4MSwgMC4wMTMwODEiLCBcCi0gICAgICAgICAgIjAuMDEzMDc0LCAwLjAxMzEyMSwgMC4wMTMxMTMsIDAuMDEzMTA5LCAwLjAxMzEwNCwgMC4wMTMxMDMsIDAuMDEzMTAxIiwgXAotICAgICAgICAgICIwLjAxMzM4NywgMC4wMTMxNjgsIDAuMDEzMTQxLCAwLjAxMzEyNSwgMC4wMTMxMjcsIDAuMDEzMTIsIDAuMDEzMTE3IiwgXAotICAgICAgICAgICIwLjAxMzYwMiwgMC4wMTM0MDQsIDAuMDEzMjkxLCAwLjAxMzI1MywgMC4wMTMyMiwgMC4wMTMxODcsIDAuMDEzMTgyIiwgXAotICAgICAgICAgICIwLjAxNDI0MiwgMC4wMTM1MjcsIDAuMDEzNDg5LCAwLjAxMzQxLCAwLjAxMzM0MywgMC4wMTMzMDQsIDAuMDEzMjY2IiwgXAotICAgICAgICAgICIwLjAxNDc5MiwgMC4wMTM3NTUsIDAuMDEzNzIxLCAwLjAxMzU5NCwgMC4wMTM0ODMsIDAuMDEzNDI0LCAwLjAxMzM2MyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzMjczLCAwLjAwMzM3MywgMC4wMDMzODUsIDAuMDAzMzg5LCAwLjAwMzM5MiwgMC4wMDMzOTQsIDAuMDAzMzk1IiwgXAotICAgICAgICAgICIwLjAwMjk5OSwgMC4wMDMyNzMsIDAuMDAzMzI2LCAwLjAwMzM0MywgMC4wMDMzNTgsIDAuMDAzMzY2LCAwLjAwMzM3NCIsIFwKLSAgICAgICAgICAiMC4wMDI5MDksIDAuMDAzMTg1LCAwLjAwMzI2NiwgMC4wMDMyOTUsIDAuMDAzMzIyLCAwLjAwMzMzNiwgMC4wMDMzNSIsIFwKLSAgICAgICAgICAiMC4wMDI5NTUsIDAuMDAzMTM0LCAwLjAwMzIyOCwgMC4wMDMyNjIsIDAuMDAzMjk1LCAwLjAwMzMxNCwgMC4wMDMzMzEiLCBcCi0gICAgICAgICAgIjAuMDAzMTA1LCAwLjAwMzE0NSwgMC4wMDMyMTcsIDAuMDAzMjUsIDAuMDAzMjgzLCAwLjAwMzMwMywgMC4wMDMzMjEiLCBcCi0gICAgICAgICAgIjAuMDAzNDkzLCAwLjAwMzIzNiwgMC4wMDMyNTUsIDAuMDAzMjcyLCAwLjAwMzI5NCwgMC4wMDMzMDksIDAuMDAzMzI1IiwgXAotICAgICAgICAgICIwLjAwMzkyMiwgMC4wMDMzNzksIDAuMDAzMzI5LCAwLjAwMzMyNSwgMC4wMDMzMjksIDAuMDAzMzM2LCAwLjAwMzM0NCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkQiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA5Nzk1LCAwLjAwOTg3MiwgMC4wMDk4ODEsIDAuMDA5ODgzLCAwLjAwOTg4NSwgMC4wMDk4ODcsIDAuMDA5ODg4IiwgXAotICAgICAgICAgICIwLjAwOTc5NCwgMC4wMDk5MjYsIDAuMDA5OTQ3LCAwLjAwOTk1NCwgMC4wMDk5NiwgMC4wMDk5NTksIDAuMDA5OTY2IiwgXAotICAgICAgICAgICIwLjAwOTkxLCAwLjAxMDAwOCwgMC4wMTAwMDEsIDAuMDA5OTk5LCAwLjAwOTk5OCwgMC4wMDk5OTUsIDAuMDA5OTk0IiwgXAotICAgICAgICAgICIwLjAxMDE0OCwgMC4wMTAwNzgsIDAuMDEwMDU2LCAwLjAxMDA0MiwgMC4wMTAwMiwgMC4wMTAwMjcsIDAuMDEwMDIxIiwgXAotICAgICAgICAgICIwLjAxMDQ1NywgMC4wMTAxOTcsIDAuMDEwMTE4LCAwLjAxMDA5NSwgMC4wMTAwNzUsIDAuMDEwMDU5LCAwLjAxMDA1NiIsIFwKLSAgICAgICAgICAiMC4wMTEwOTksIDAuMDEwNDYzLCAwLjAxMDI4OSwgMC4wMTAyMjgsIDAuMDEwMTgzLCAwLjAxMDE1MywgMC4wMTAxMjgiLCBcCi0gICAgICAgICAgIjAuMDExNjU3LCAwLjAxMDc1OSwgMC4wMTA0OTIsIDAuMDEwMzg3LCAwLjAxMDMwMywgMC4wMTAyNTIsIDAuMDEwMjExIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDMyNTMsIDAuMDAzMzY1LCAwLjAwMzM4LCAwLjAwMzM4NCwgMC4wMDMzODcsIDAuMDAzMzg5LCAwLjAwMzM5MSIsIFwKLSAgICAgICAgICAiMC4wMDMwNjIsIDAuMDAzMjc5LCAwLjAwMzMyNiwgMC4wMDMzNDMsIDAuMDAzMzU3LCAwLjAwMzM2NSwgMC4wMDMzNzIiLCBcCi0gICAgICAgICAgIjAuMDAzMjMxLCAwLjAwMzI2NiwgMC4wMDMzMSwgMC4wMDMzMjgsIDAuMDAzMzQ1LCAwLjAwMzM1NCwgMC4wMDMzNjMiLCBcCi0gICAgICAgICAgIjAuMDAzNDkzLCAwLjAwMzMxNSwgMC4wMDMzMjksIDAuMDAzMzM5LCAwLjAwMzM1MSwgMC4wMDMzNTgsIDAuMDAzMzY2IiwgXAotICAgICAgICAgICIwLjAwMzkzNywgMC4wMDM0MzYsIDAuMDAzMzkzLCAwLjAwMzM4NiwgMC4wMDMzODQsIDAuMDAzMzg0LCAwLjAwMzM4NSIsIFwKLSAgICAgICAgICAiMC4wMDQ2NjMsIDAuMDAzNzA4LCAwLjAwMzU1LCAwLjAwMzUwNiwgMC4wMDM0NjksIDAuMDAzNDUzLCAwLjAwMzQzOSIsIFwKLSAgICAgICAgICAiMC4wMDUyMjgsIDAuMDA0MDE2LCAwLjAwMzc0NiwgMC4wMDM2NTYsIDAuMDAzNTc3LCAwLjAwMzU0LCAwLjAwMzUwNyIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IE5BTkQ0WDQgKgotICogLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoTkFORDRYNCkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAxLjQzNzE2OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDMyNTkwOTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDMyNTkwOTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDMyNDkxOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjA5NywgMC4wMDIwOTYsIDAuMDAyMDk1LCAwLjAwMjA5NSwgMC4wMDIwOTUsIDAuMDAyMDk0LCAwLjAwMjA5MyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjA5OSwgMC4wMDIxMDEsIDAuMDAyMTAyLCAwLjAwMjEwMSwgMC4wMDIxMDIsIDAuMDAyMTAyLCAwLjAwMjEwMiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAzMjgzOTQ7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAzMjgzOTQ7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAzMjc1MzQ7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyMDk3LCAwLjAwMjA5NSwgMC4wMDIwOTYsIDAuMDAyMDk1LCAwLjAwMjA5MywgMC4wMDIwOTQsIDAuMDAyMDk0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyMDk5LCAwLjAwMjEwMSwgMC4wMDIxMDEsIDAuMDAyMTAyLCAwLjAwMjEwMywgMC4wMDIxMDQsIDAuMDAyMTA0Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihDKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDMzOTU3MjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDMzOTU3MjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDMzODkwOTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDIwOTcsIDAuMDAyMDk1LCAwLjAwMjA5NCwgMC4wMDIwOTUsIDAuMDAyMDk0LCAwLjAwMjA5NCwgMC4wMDIwOTQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDIwOTksIDAuMDAyMTAxLCAwLjAwMjEwMiwgMC4wMDIxMDIsIDAuMDAyMTAzLCAwLjAwMjEwMywgMC4wMDIxMDQiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEQpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMzI4MTI5OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMzI3OTc4OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMzI4MTI5OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDM0NywgMC4wMDAzNDUsIDAuMDAwMzQ0LCAwLjAwMDM0NCwgMC4wMDAzNDQsIDAuMDAwMzQ0LCAwLjAwMDM0MiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjM4MSwgMC4wMDIzODUsIDAuMDAyMzg0LCAwLjAwMjM4MywgMC4wMDIzODMsIDAuMDAyMzgzLCAwLjAwMjM4NCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjM5OTc1OwotICAgIGZ1bmN0aW9uIDogIighKCgoQSBCKSBDKSBEKSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE5NjQ0LCAwLjA3NTc5NCwgMC4xMzA4NywgMC4xNzAxMDEsIDAuMjMyNzU3LCAwLjI4NzY2NCwgMC4zNjYxODciLCBcCi0gICAgICAgICAgIjAuMDI4MDI0LCAwLjA4MzkwOCwgMC4xMzkwNywgMC4xNzgzNTUsIDAuMjQwOTg4LCAwLjI5NTg1MiwgMC4zNzQyMjEiLCBcCi0gICAgICAgICAgIjAuMDM3NTA1LCAwLjA5NDI3MSwgMC4xNDkyODQsIDAuMTg4NTU4LCAwLjI1MTI5OCwgMC4zMDYwOSwgMC4zODQzOTQiLCBcCi0gICAgICAgICAgIjAuMDQ0MDY1LCAwLjEwNDk2LCAwLjE1OTk0MywgMC4xOTkxOTEsIDAuMjYxNDc3LCAwLjMxNjgzNiwgMC4zOTUwNDEiLCBcCi0gICAgICAgICAgIjAuMDQ5MzQ1LCAwLjExNTI2NiwgMC4xNzAwNjMsIDAuMjA5MjY4LCAwLjI3MTkxNCwgMC4zMjYzMTEsIDAuNDA1MDM4IiwgXAotICAgICAgICAgICIwLjA1NTk0NywgMC4xMzE5NDYsIDAuMTg2OTM2LCAwLjIyNjA0MiwgMC4yODg2MjEsIDAuMzQzNDA1LCAwLjQyMTcyMyIsIFwKLSAgICAgICAgICAiMC4wNjA3OSwgMC4xNDQ4NTEsIDAuMjAxNzksIDAuMjQwNzQzLCAwLjMwMzI5NSwgMC4zNTc5ODksIDAuNDM2MjMyIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM0NDMxLCAwLjE1MDA0OSwgMC4yNjU4MjgsIDAuMzQ4NDc2LCAwLjQ4MDQ2MiwgMC41OTYzNywgMC43NjE2MDgiLCBcCi0gICAgICAgICAgIjAuMDM4MTA2LCAwLjE1MDA1OSwgMC4yNjU3NzQsIDAuMzQ4NDI4LCAwLjQ4MDYzOSwgMC41OTYzOTQsIDAuNzYxMzg4IiwgXAotICAgICAgICAgICIwLjA0Njg0MiwgMC4xNTI3ODksIDAuMjY1OTY3LCAwLjM0ODQxNSwgMC40ODA1NDIsIDAuNTk2MTMyLCAwLjc2MTM1MSIsIFwKLSAgICAgICAgICAiMC4wNTY0NTIsIDAuMTU4MywgMC4yNjg0NDYsIDAuMzQ5MjIxLCAwLjQ4MDQ1NywgMC41OTYzNzYsIDAuNzYxMzQxIiwgXAotICAgICAgICAgICIwLjA2NDcwNCwgMC4xNjU3ODksIDAuMjczMjI3LCAwLjM1MjQyMSwgMC40ODE1OTQsIDAuNTk2MzMzLCAwLjc2MTMzNyIsIFwKLSAgICAgICAgICAiMC4wNzY5NTIsIDAuMTc5MDA2LCAwLjI4Mjk5MSwgMC4zNjAxNTcsIDAuNDg2NTg3LCAwLjU5OTE0NywgMC43NjE5NTMiLCBcCi0gICAgICAgICAgIjAuMDg2ODAzLCAwLjE5MjEwOSwgMC4yOTMzNzUsIDAuMzY4ODQ3LCAwLjQ5MzAwNiwgMC42MDM5ODEsIDAuNzY0ODc4Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDYxNDk4LCAwLjI0Nzk0OCwgMC40MzM5MjgsIDAuNTY3MzE1LCAwLjc3OTM3MywgMC45NjYzMiwgMS4yMzE0NCIsIFwKLSAgICAgICAgICAiMC4wNjY2MjcsIDAuMjUzNDgzLCAwLjQzOTkxMywgMC41NzI4MSwgMC43ODUzMjksIDAuOTcxNzgyLCAxLjIzNzAyIiwgXAotICAgICAgICAgICIwLjA3MTY2LCAwLjI1ODU3MiwgMC40NDQ3NzEsIDAuNTc3NzA3LCAwLjc5MDE3MywgMC45NzYzMDcsIDEuMjQxNzMiLCBcCi0gICAgICAgICAgIjAuMDc2MjIsIDAuMjYzMjMsIDAuNDQ5NjYyLCAwLjU4MjQyMiwgMC43OTQ5NjgsIDAuOTgxODY5LCAxLjI0NzY2IiwgXAotICAgICAgICAgICIwLjA4MDA3OSwgMC4yNjczOTQsIDAuNDUzODE0LCAwLjU4NjU4OCwgMC43OTkyNjgsIDAuOTg1MzcsIDEuMjUxMDEiLCBcCi0gICAgICAgICAgIjAuMDg1NTc4LCAwLjI3NDIzNywgMC40NjA0OTUsIDAuNTkzNDQsIDAuODA2MzU4LCAwLjk5MjQ3MywgMS4yNTc5NyIsIFwKLSAgICAgICAgICAiMC4wODk5NCwgMC4yODAyMjgsIDAuNDY2NTI1LCAwLjU5OTMxNiwgMC44MTE5NzcsIDAuOTk4ODEzLCAxLjI2Mzg1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk5MTI2LCAwLjQ4NDU3MSwgMC44NzE3MzQsIDEuMTQ1OTMsIDEuNTg5MTgsIDEuOTcyMDUsIDIuNTIyOTgiLCBcCi0gICAgICAgICAgIjAuMDk5MTQ4LCAwLjQ4NDYwMiwgMC44NzAyNTEsIDEuMTQ1NzQsIDEuNTg5MjQsIDEuOTcyMTIsIDIuNTI3MzYiLCBcCi0gICAgICAgICAgIjAuMTAwMDk5LCAwLjQ4NTM1NCwgMC44NzE3MjUsIDEuMTQ3NjksIDEuNTg2NjYsIDEuOTcyMDcsIDIuNTI0NDciLCBcCi0gICAgICAgICAgIjAuMTAxOTU2LCAwLjQ4NDU4MiwgMC44NzAyNjMsIDEuMTQ3NiwgMS41ODkyLCAxLjk3MjEsIDIuNTIzMDYiLCBcCi0gICAgICAgICAgIjAuMTA0NzI1LCAwLjQ4NTIwMiwgMC44NzAzMzQsIDEuMTQ3NjksIDEuNTg2MjUsIDEuOTcyNDgsIDIuNTI3NTIiLCBcCi0gICAgICAgICAgIjAuMTEwNTQyLCAwLjQ4NzA3LCAwLjg3MTkzMSwgMS4xNDU1NCwgMS41ODY1MiwgMS45NzU1MiwgMi41MjM1OCIsIFwKLSAgICAgICAgICAiMC4xMTYxNTMsIDAuNDg5MjEsIDAuODcyOTU2LCAxLjE0NTc4LCAxLjU4OTI0LCAxLjk3MjE3LCAyLjUyNzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTkwMzEsIDAuMDc0NzIxLCAwLjEyOTg2NiwgMC4xNjkyMDgsIDAuMjMyMjUzLCAwLjI4NzE5OSwgMC4zNjU5MzYiLCBcCi0gICAgICAgICAgIjAuMDI3MzMyLCAwLjA4Mjg3MSwgMC4xMzgxMzIsIDAuMTc3NTM3LCAwLjI0MDQ2NywgMC4yOTU0ODYsIDAuMzc0MTU1IiwgXAotICAgICAgICAgICIwLjAzNjQwNiwgMC4wOTMxNzIsIDAuMTQ4MzI2LCAwLjE4NzY4NywgMC4yNTA2MzUsIDAuMzA1NjY3LCAwLjM4NDI4NiIsIFwKLSAgICAgICAgICAiMC4wNDI1MjQsIDAuMTAzOTE5LCAwLjE1ODk2MSwgMC4xOTgyNzksIDAuMjYxMDI4LCAwLjMxNjI2OSwgMC4zOTQ4NTkiLCBcCi0gICAgICAgICAgIjAuMDQ3NDE4LCAwLjExMzk0MSwgMC4xNjg4MjgsIDAuMjA4MTA5LCAwLjI3MDk2OCwgMC4zMjU2MjYsIDAuNDA0Njg4IiwgXAotICAgICAgICAgICIwLjA1MzY1MiwgMC4xMzEyODYsIDAuMTg1NTYsIDAuMjI0NzUyLCAwLjI4NzU3NiwgMC4zNDI2MTYsIDAuNDIxMjAyIiwgXAotICAgICAgICAgICIwLjA1ODA3MSwgMC4xNDQwNiwgMC4yMDAzNjIsIDAuMjM5Mzk1LCAwLjMwMjA5MywgMC4zNTcwODUsIDAuNDM1NzQxIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDMyNTE2LCAwLjE0ODYxMywgMC4yNjQ4MjgsIDAuMzQ3ODQxLCAwLjQ4MDc5OCwgMC41OTcwNDcsIDAuNzYzMTEzIiwgXAotICAgICAgICAgICIwLjAzNjMwNSwgMC4xNDg2MTksIDAuMjY0OTM1LCAwLjM0NzkyMiwgMC40ODA4NzYsIDAuNTk3MDksIDAuNzYzMTI2IiwgXAotICAgICAgICAgICIwLjA0NTE2LCAwLjE1MTUyOCwgMC4yNjUwNjcsIDAuMzQ3OTUsIDAuNDgwNjY5LCAwLjU5Njk1NSwgMC43NjI4ODgiLCBcCi0gICAgICAgICAgIjAuMDU0NzgsIDAuMTU3MDk2LCAwLjI2NzYxOCwgMC4zNDg4MDksIDAuNDgwNjg4LCAwLjU5Njg1MywgMC43NjMwMjIiLCBcCi0gICAgICAgICAgIjAuMDYyOTk5LCAwLjE2NDk3MiwgMC4yNzI1OTMsIDAuMzUyMTUxLCAwLjQ4MTg3NCwgMC41OTY5MTksIDAuNzYyODY2IiwgXAotICAgICAgICAgICIwLjA3NDYwNiwgMC4xNzcyNDksIDAuMjgyNjY0LCAwLjM2MDA2OSwgMC40ODY5NDUsIDAuNjAwMTcsIDAuNzYzNTA2IiwgXAotICAgICAgICAgICIwLjA4NDI2NSwgMC4xODk4NDMsIDAuMjkzMTY4LCAwLjM2ODkxOSwgMC40OTM1MzMsIDAuNjA0OTAyLCAwLjc2NjU0MyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1OTEyOCwgMC4yNDU2MjIsIDAuNDMxNTY4LCAwLjU2NDUyLCAwLjc3NzI3NCwgMC45NjM0MDcsIDEuMjI4NyIsIFwKLSAgICAgICAgICAiMC4wNjQ1ODQsIDAuMjUxNjgxLCAwLjQzNzg1NiwgMC41NzA3MTEsIDAuNzgyODc2LCAwLjk3MDAyNywgMS4yMzUwMSIsIFwKLSAgICAgICAgICAiMC4wNzA2MjgsIDAuMjU3NjAzLCAwLjQ0MzkzOSwgMC41NzY5MDcsIDAuNzg5Mjk1LCAwLjk3NTE0MywgMS4yNDA5OCIsIFwKLSAgICAgICAgICAiMC4wNzY3MTEsIDAuMjYzNzQ0LCAwLjQ0OTg0MiwgMC41ODI4OTksIDAuNzk2MjM3LCAwLjk4MTQ0MiwgMS4yNDc5OSIsIFwKLSAgICAgICAgICAiMC4wODIwNywgMC4yNjk1NDQsIDAuNDU2MDEyLCAwLjU4OTM1NSwgMC44MDE1MzQsIDAuOTg3NjA5LCAxLjI1NDA1IiwgXAotICAgICAgICAgICIwLjA4OTk0LCAwLjI3OTI5OSwgMC40NjU1NzEsIDAuNTk4NjAxLCAwLjgxMTI5OCwgMC45OTc0NjUsIDEuMjY0NTkiLCBcCi0gICAgICAgICAgIjAuMDk2MDk5LCAwLjI4ODIyLCAwLjQ3NDUxLCAwLjYwNzM1MiwgMC44MjA3MTcsIDEuMDA2MDIsIDEuMjcyMTUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTg5ODIsIDAuNDg0NTk3LCAwLjg3MDI3MywgMS4xNDc3NiwgMS41ODY4NSwgMS45NzIxOSwgMi41Mjc0NSIsIFwKLSAgICAgICAgICAiMC4wOTkwNDEsIDAuNDg0NjgsIDAuODcwMjQxLCAxLjE0NTg2LCAxLjU4OTI2LCAxLjk3MTg5LCAyLjUyNzM3IiwgXAotICAgICAgICAgICIwLjEwMDc1NywgMC40ODQ2MTcsIDAuODcxNzMsIDEuMTQ1OTQsIDEuNTg2NjksIDEuOTcyNCwgMi41MjM0MiIsIFwKLSAgICAgICAgICAiMC4xMDM4MzMsIDAuNDg0NjAzLCAwLjg3MTcxOSwgMS4xNDc1NiwgMS41ODY0NSwgMS45NzU1OCwgMi41MjMxNSIsIFwKLSAgICAgICAgICAiMC4xMDgwMTQsIDAuNDg1NCwgMC44NzAzNTMsIDEuMTQ1NzEsIDEuNTg3LCAxLjk3NTU2LCAyLjUyMzE0IiwgXAotICAgICAgICAgICIwLjExNjYyMywgMC40ODc4MDQsIDAuODcwNjY4LCAxLjE0NzY4LCAxLjU4OTIxLCAxLjk3NTM5LCAyLjUyMzIzIiwgXAotICAgICAgICAgICIwLjEyNDIyNywgMC40OTA2NzMsIDAuODcyMDUxLCAxLjE0Nzg3LCAxLjU4NjYyLCAxLjk3NTYsIDIuNTI3MzEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTc4MSwgMC4wNzMxMDksIDAuMTI4MjExLCAwLjE2NzU2NSwgMC4yMzA2MTYsIDAuMjg1NTcyLCAwLjM2NDQzMyIsIFwKLSAgICAgICAgICAiMC4wMjYxNTMsIDAuMDgxNDMyLCAwLjEzNjUyOCwgMC4xNzU4NywgMC4yMzg4MTgsIDAuMjkzOTkzLCAwLjM3MjU2NyIsIFwKLSAgICAgICAgICAiMC4wMzQ2MzIsIDAuMDkxNTk1LCAwLjE0NjY3OSwgMC4xODYwMSwgMC4yNDg5NzMsIDAuMzA0MDk0LCAwLjM4Mjc5NSIsIFwKLSAgICAgICAgICAiMC4wNDA0NTYsIDAuMTAyMjUsIDAuMTU3MjkyLCAwLjE5NjYwMiwgMC4yNTkyOTksIDAuMzE0Njg4LCAwLjM5MzI1OCIsIFwKLSAgICAgICAgICAiMC4wNDQ5NDUsIDAuMTEyMzYsIDAuMTY3Mjc5LCAwLjIwNjUyOCwgMC4yNjk0MzYsIDAuMzI0MDgyLCAwLjQwMzIwOSIsIFwKLSAgICAgICAgICAiMC4wNTA0NzEsIDAuMTI5NTQ1LCAwLjE4Mzk4NSwgMC4yMjMxNzIsIDAuMjg2MDEzLCAwLjM0MTAxNiwgMC40MTk3MTEiLCBcCi0gICAgICAgICAgIjAuMDU0MjA1LCAwLjE0MjIyMSwgMC4xOTg3OTMsIDAuMjM3ODE1LCAwLjMwMDUzNywgMC4zNTU1NDcsIDAuNDM0MTk3Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDMwMjg4LCAwLjE0NjYxNCwgMC4yNjMwMDIsIDAuMzQ2MDkzLCAwLjQ3OTIyOSwgMC41OTU0NTYsIDAuNzYxNjIzIiwgXAotICAgICAgICAgICIwLjAzNDQwNSwgMC4xNDY2NDUsIDAuMjYzMDYsIDAuMzQ1OTYyLCAwLjQ3OTA4MSwgMC41OTU1NjEsIDAuNzYxNTYiLCBcCi0gICAgICAgICAgIjAuMDQzNTQ5LCAwLjE0OTY1NCwgMC4yNjMyNTYsIDAuMzQ2MTYyLCAwLjQ3OTA5NSwgMC41OTUzNTEsIDAuNzYxNDk0IiwgXAotICAgICAgICAgICIwLjA1MjU5OCwgMC4xNTUzMTIsIDAuMjY1OTQzLCAwLjM0NzE4OSwgMC40NzkwNzksIDAuNTk1MzUyLCAwLjc2MTMiLCBcCi0gICAgICAgICAgIjAuMDYwNjgxLCAwLjE2MzE0OCwgMC4yNzA5MTMsIDAuMzUwNDczLCAwLjQ4MDM4NywgMC41OTUzNjIsIDAuNzYxNTQ2IiwgXAotICAgICAgICAgICIwLjA3MjM5MiwgMC4xNzU3MjYsIDAuMjgwOTk4LCAwLjM1ODQ0LCAwLjQ4NTQyNiwgMC41OTg0ODEsIDAuNzYxOTIiLCBcCi0gICAgICAgICAgIjAuMDgxOTA1LCAwLjE4ODMxLCAwLjI5MTY0OCwgMC4zNjczMTYsIDAuNDkyMDM3LCAwLjYwMzUzNiwgMC43NjQ5NDgiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTQyODMsIDAuMjQwNTYzLCAwLjQyNjg3LCAwLjU1OTc1NiwgMC43NzIyNDQsIDAuOTU4NjU0LCAxLjIyMzMzIiwgXAotICAgICAgICAgICIwLjA2MDE2LCAwLjI0NzAyLCAwLjQzMzE0NSwgMC41NjU5MTQsIDAuNzc4NTA4LCAwLjk2NDE5NywgMS4yMzAxIiwgXAotICAgICAgICAgICIwLjA2Nzg2NSwgMC4yNTQ3OTUsIDAuNDQxMTIsIDAuNTc0MDAzLCAwLjc4NjczNSwgMC45NzI0NTIsIDEuMjM5MjYiLCBcCi0gICAgICAgICAgIjAuMDc2MDYzLCAwLjI2MjE1NiwgMC40NDkxODEsIDAuNTgyMDE5LCAwLjc5NDYyOSwgMC45ODEzMzIsIDEuMjQ2MyIsIFwKLSAgICAgICAgICAiMC4wODMzMTEsIDAuMjcwODEzLCAwLjQ1NzA5MywgMC41OTAxNjksIDAuODAyODE1LCAwLjk4ODczLCAxLjI1NTIiLCBcCi0gICAgICAgICAgIjAuMDkzNzU4LCAwLjI4MzcyNCwgMC40NzAxMzQsIDAuNjAzMDQ3LCAwLjgxNTczNSwgMS4wMDIzMiwgMS4yNjgiLCBcCi0gICAgICAgICAgIjAuMTAxODkzLCAwLjI5NTU0NywgMC40ODE1OTQsIDAuNjE0NzI0LCAwLjgyNzE2NSwgMS4wMTMwOSwgMS4yNzg2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk5MTExLCAwLjQ4NTM4LCAwLjg3MDI1OCwgMS4xNDU2OSwgMS41ODkyNiwgMS45NzIxNiwgMi41MjM1MiIsIFwKLSAgICAgICAgICAiMC4wOTkyNiwgMC40ODUzNDYsIDAuODcxNjEzLCAxLjE0NzcsIDEuNTg5MjYsIDEuOTcyMzQsIDIuNTI3NTMiLCBcCi0gICAgICAgICAgIjAuMTAyMDMyLCAwLjQ4NTM0OCwgMC44NzE2ODksIDEuMTQ3NTYsIDEuNTg2NjcsIDEuOTc1NjIsIDIuNTIzMDUiLCBcCi0gICAgICAgICAgIjAuMTA3MTg0LCAwLjQ4NDY1MSwgMC44NzE2OSwgMS4xNDc2NywgMS41ODkyMiwgMS45NzIxOSwgMi41MjQyIiwgXAotICAgICAgICAgICIwLjExMzA2NywgMC40ODUzNjIsIDAuODcxNzA4LCAxLjE0NzYxLCAxLjU4NjQxLCAxLjk3NTU0LCAyLjUyMzE1IiwgXAotICAgICAgICAgICIwLjEyMzg4MSwgMC40ODg3LCAwLjg3MTc5OCwgMS4xNDU1NiwgMS41ODYzMSwgMS45NzIxNywgMi41MjM3NCIsIFwKLSAgICAgICAgICAiMC4xMzMwNDUsIDAuNDkzMzMzLCAwLjg3MzA5NCwgMS4xNDU3MywgMS41ODkwNiwgMS45NzE5MSwgMi41Mjc1NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJEIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxNjA5NywgMC4wNzEwNDEsIDAuMTI1OTgsIDAuMTY1MTY2LCAwLjIyNzkxOCwgMC4yODI3ODYsIDAuMzYxNjczIiwgXAotICAgICAgICAgICIwLjAyNDQxMywgMC4wNzkzODksIDAuMTM0MzEsIDAuMTczNTMzLCAwLjIzNjIzMiwgMC4yOTExNjcsIDAuMzY5NjE0IiwgXAotICAgICAgICAgICIwLjAzMjI0OSwgMC4wODk2NTIsIDAuMTQ0NTE3LCAwLjE4MzY3MSwgMC4yNDYzOTQsIDAuMzAxNDIzLCAwLjM3OTgxNiIsIFwKLSAgICAgICAgICAiMC4wMzc0ODUsIDAuMTAwMDY5LCAwLjE1NDg4OSwgMC4xOTQxMTIsIDAuMjU2NTA3LCAwLjMxMTc5NCwgMC4zOTAxMDgiLCBcCi0gICAgICAgICAgIjAuMDQxNDExLCAwLjExMDY1OSwgMC4xNjUzNTgsIDAuMjA0NTMsIDAuMjY3MjA2LCAwLjMyMTcxOCwgMC40MDA2MDciLCBcCi0gICAgICAgICAgIjAuMDQ2MTkzLCAwLjEyNjkxNCwgMC4xODIyMDcsIDAuMjIxMjg1LCAwLjI4Mzk1LCAwLjMzODk0MiwgMC40MTcyMjgiLCBcCi0gICAgICAgICAgIjAuMDQ5MzQyLCAwLjEzOTA1MSwgMC4xOTY5NTYsIDAuMjM1OTg4LCAwLjI5ODUyNSwgMC4zNTMzOSwgMC40MzE5MzkiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjc5NjYsIDAuMTQ0MTM0LCAwLjI1OTg3MywgMC4zNDI1OSwgMC40NzQ5ODMsIDAuNTkxMDE2LCAwLjc1NzIwMSIsIFwKLSAgICAgICAgICAiMC4wMzI0OTUsIDAuMTQ0MTQ3LCAwLjI1OTc0MSwgMC4zNDI1MjcsIDAuNDc1MTM1LCAwLjU5MTksIDAuNzU2NDU5IiwgXAotICAgICAgICAgICIwLjA0MTc3NywgMC4xNDcyODIsIDAuMjYwNTQzLCAwLjM0MjYzOCwgMC40NzUwMiwgMC41OTEyMDUsIDAuNzU2ODc2IiwgXAotICAgICAgICAgICIwLjA1MDk2NiwgMC4xNTMwNjUsIDAuMjYzMDgsIDAuMzQzODE4LCAwLjQ3NDk4OCwgMC41OTE0MDEsIDAuNzU3MTc0IiwgXAotICAgICAgICAgICIwLjA1ODcxOSwgMC4xNjA0MTMsIDAuMjY4MTQ4LCAwLjM0NzYxNSwgMC40NzcyMDUsIDAuNTkxMjA2LCAwLjc1NjgwNiIsIFwKLSAgICAgICAgICAiMC4wNzAyODYsIDAuMTc0MDAxLCAwLjI3Nzg4NywgMC4zNTUyOSwgMC40ODIyMjMsIDAuNTk0MzAzLCAwLjc1NzM1NyIsIFwKLSAgICAgICAgICAiMC4wNzk2NjEsIDAuMTg3OTEsIDAuMjg4MTY2LCAwLjM2Mzg1MSwgMC40ODg3NjIsIDAuNTk5OTg0LCAwLjc2MDM2MiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0NjcxNywgMC4yMzMxMSwgMC40MTk1MTQsIDAuNTUxOTU2LCAwLjc2NDg1NCwgMC45NTAyODEsIDEuMjE3MzMiLCBcCi0gICAgICAgICAgIjAuMDUzMjExLCAwLjIzOTg2NCwgMC40MjYwNjEsIDAuNTU5MDYsIDAuNzcxMjIsIDAuOTU3MzMzLCAxLjIyMjY5IiwgXAotICAgICAgICAgICIwLjA2MjM5NSwgMC4yNDg0MjUsIDAuNDM0NjkzLCAwLjU2NzU0LCAwLjc3OTg0MSwgMC45NjYwNSwgMS4yMzE2MiIsIFwKLSAgICAgICAgICAiMC4wNzE5MjksIDAuMjU3MjM0LCAwLjQ0MzY5MSwgMC41NzYxMTgsIDAuNzg5NjE0LCAwLjk3NDY2NiwgMS4yNDExIiwgXAotICAgICAgICAgICIwLjA4MTA4NSwgMC4yNjU5ODksIDAuNDUxODE5LCAwLjU4NDc2OCwgMC43OTcyNzMsIDAuOTgzMjQ0LCAxLjI0OTQ0IiwgXAotICAgICAgICAgICIwLjA5MzExNiwgMC4yODA1MjQsIDAuNDY2MDg5LCAwLjU5ODg1OSwgMC44MTE1MzYsIDAuOTk3MDY0LCAxLjI2MjcyIiwgXAotICAgICAgICAgICIwLjEwMTgxOSwgMC4yOTM1MDksIDAuNDc4NTg2LCAwLjYxMTEwNCwgMC44MjM2ODEsIDEuMDA5MjUsIDEuMjc0OTgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTg4MzIsIDAuNDg1MzQyLCAwLjg3MDIzOCwgMS4xNDU2MSwgMS41ODY0LCAxLjk3MjU2LCAyLjUyMzA0IiwgXAotICAgICAgICAgICIwLjA5ODY0MSwgMC40ODQ0OSwgMC44NzE2NTUsIDEuMTQ3NzEsIDEuNTg2NjgsIDEuOTc1NjQsIDIuNTIzNzEiLCBcCi0gICAgICAgICAgIjAuMTAzMTg5LCAwLjQ4NTM4NSwgMC44NzE3MjMsIDEuMTQ3NjEsIDEuNTg2OTksIDEuOTcxODksIDIuNTIyNzEiLCBcCi0gICAgICAgICAgIjAuMTA5ODQ2LCAwLjQ4NTE4MiwgMC44NzAyMTcsIDEuMTQ3MTMsIDEuNTg2ODYsIDEuOTc1NTksIDIuNTIzMTUiLCBcCi0gICAgICAgICAgIjAuMTE3Mzk3LCAwLjQ4NTQ5NywgMC44NzE3MzEsIDEuMTQ1NzQsIDEuNTg2NzYsIDEuOTc1NTQsIDIuNTIzIiwgXAotICAgICAgICAgICIwLjEyOTEwNSwgMC40ODk4MjcsIDAuODcxNjIyLCAxLjE0NzYzLCAxLjU4NjQyLCAxLjk3NTU2LCAyLjUyNzM2IiwgXAotICAgICAgICAgICIwLjEzOTQ2NCwgMC40OTYyNzMsIDAuODcyMDExLCAxLjE0NTQ2LCAxLjU4OTE0LCAxLjk3NTU3LCAyLjUyMzEyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTkzMTcsIDAuMDE5MzE4LCAwLjAxOTMyLCAwLjAxOTMxOSwgMC4wMTkzMTcsIDAuMDE5MzE2LCAwLjAxOTMxNCIsIFwKLSAgICAgICAgICAiMC4wMTkyMjcsIDAuMDE5MjE0LCAwLjAxOTIzNCwgMC4wMTkyMzUsIDAuMDE5MjM3LCAwLjAxOTIzNiwgMC4wMTkyMzIiLCBcCi0gICAgICAgICAgIjAuMDE5MzE5LCAwLjAxOTI3OCwgMC4wMTkyNTUsIDAuMDE5MjQ3LCAwLjAxOTIzOSwgMC4wMTkyMzgsIDAuMDE5MjM1IiwgXAotICAgICAgICAgICIwLjAxOTYzMiwgMC4wMTkzNDEsIDAuMDE5Mjk3LCAwLjAxOTI4MiwgMC4wMTkyNCwgMC4wMTkyNTksIDAuMDE5MjQ2IiwgXAotICAgICAgICAgICIwLjAxOTg4NSwgMC4wMTk1MDEsIDAuMDE5MzkzLCAwLjAxOTM1OSwgMC4wMTkzMjIsIDAuMDE5MjksIDAuMDE5Mjg3IiwgXAotICAgICAgICAgICIwLjAyMDUyOCwgMC4wMTk3NzMsIDAuMDE5NTYsIDAuMDE5NDg5LCAwLjAxOTQyMiwgMC4wMTkzODUsIDAuMDE5MzUzIiwgXAotICAgICAgICAgICIwLjAyMTE3MiwgMC4wMjAwOTIsIDAuMDE5Nzc0LCAwLjAxOTY1NywgMC4wMTk1NTMsIDAuMDE5NDk2LCAwLjAxOTQzOCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyODQxLCAwLjAwMjk0LCAwLjAwMjk1MiwgMC4wMDI5NTYsIDAuMDAyOTYsIDAuMDAyOTYxLCAwLjAwMjk2MyIsIFwKLSAgICAgICAgICAiMC4wMDI1NjQsIDAuMDAyODM5LCAwLjAwMjg5MywgMC4wMDI5MSwgMC4wMDI5MjYsIDAuMDAyOTM0LCAwLjAwMjk0MiIsIFwKLSAgICAgICAgICAiMC4wMDI0MzcsIDAuMDAyNzQxLCAwLjAwMjgyNywgMC4wMDI4NTcsIDAuMDAyODg2LCAwLjAwMjkwMSwgMC4wMDI5MTUiLCBcCi0gICAgICAgICAgIjAuMDAyMzk4LCAwLjAwMjY3MywgMC4wMDI3NzUsIDAuMDAyODEzLCAwLjAwMjg1MSwgMC4wMDI4NzIsIDAuMDAyODkyIiwgXAotICAgICAgICAgICIwLjAwMjQxOSwgMC4wMDI2MzcsIDAuMDAyNzM5LCAwLjAwMjc4MiwgMC4wMDI4MjUsIDAuMDAyODUsIDAuMDAyODczIiwgXAotICAgICAgICAgICIwLjAwMjU2NCwgMC4wMDI2MzcsIDAuMDAyNzIsIDAuMDAyNzYsIDAuMDAyODA0LCAwLjAwMjgyOSwgMC4wMDI4NTUiLCBcCi0gICAgICAgICAgIjAuMDAyNzk4LCAwLjAwMjcwMSwgMC4wMDI3NDksIDAuMDAyNzc2LCAwLjAwMjgxMSwgMC4wMDI4MzMsIDAuMDAyODU2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTY1MjQsIDAuMDE2NTMyLCAwLjAxNjUzMywgMC4wMTY1MzIsIDAuMDE2NTM0LCAwLjAxNjUzNSwgMC4wMTY1MzQiLCBcCi0gICAgICAgICAgIjAuMDE2NDQ2LCAwLjAxNjQ2NCwgMC4wMTY0ODMsIDAuMDE2NDg3LCAwLjAxNjQ4OSwgMC4wMTY0ODgsIDAuMDE2NDg2IiwgXAotICAgICAgICAgICIwLjAxNjUzNCwgMC4wMTY1MjgsIDAuMDE2NTA1LCAwLjAxNjUwNSwgMC4wMTY1MDEsIDAuMDE2NDk4LCAwLjAxNjQ5NiIsIFwKLSAgICAgICAgICAiMC4wMTY4MjQsIDAuMDE2NTc5LCAwLjAxNjU0MSwgMC4wMTY1MjgsIDAuMDE2NTA5LCAwLjAxNjUxLCAwLjAxNjUwNyIsIFwKLSAgICAgICAgICAiMC4wMTcxMDgsIDAuMDE2ODE0LCAwLjAxNjY5MSwgMC4wMTY2NSwgMC4wMTY2MSwgMC4wMTY1NzMsIDAuMDE2NTY4IiwgXAotICAgICAgICAgICIwLjAxNzY1OSwgMC4wMTY5OTUsIDAuMDE2ODkzLCAwLjAxNjgwOCwgMC4wMTY3MzUsIDAuMDE2NjkzLCAwLjAxNjY1NiIsIFwKLSAgICAgICAgICAiMC4wMTgzMjksIDAuMDE3MTg0LCAwLjAxNzEzLCAwLjAxNjk5NCwgMC4wMTY4NzgsIDAuMDE2ODE1LCAwLjAxNjc0OSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyODQ1LCAwLjAwMjk0NCwgMC4wMDI5NTYsIDAuMDAyOTYsIDAuMDAyOTYzLCAwLjAwMjk2NSwgMC4wMDI5NjYiLCBcCi0gICAgICAgICAgIjAuMDAyNTY3LCAwLjAwMjg0MywgMC4wMDI4OTYsIDAuMDAyOTE0LCAwLjAwMjkyOSwgMC4wMDI5MzgsIDAuMDAyOTQ1IiwgXAotICAgICAgICAgICIwLjAwMjQ0MywgMC4wMDI3NDYsIDAuMDAyODMxLCAwLjAwMjg2MSwgMC4wMDI4OSwgMC4wMDI5MDUsIDAuMDAyOTE5IiwgXAotICAgICAgICAgICIwLjAwMjQyLCAwLjAwMjY4MiwgMC4wMDI3ODEsIDAuMDAyODE5LCAwLjAwMjg1NiwgMC4wMDI4NzcsIDAuMDAyODk2IiwgXAotICAgICAgICAgICIwLjAwMjQ3MSwgMC4wMDI2NTIsIDAuMDAyNzUsIDAuMDAyNzkxLCAwLjAwMjgzMywgMC4wMDI4NTYsIDAuMDAyODc5IiwgXAotICAgICAgICAgICIwLjAwMjY4MywgMC4wMDI2NzYsIDAuMDAyNzQ2LCAwLjAwMjc4MSwgMC4wMDI4MiwgMC4wMDI4NDMsIDAuMDAyODY2IiwgXAotICAgICAgICAgICIwLjAwMjk4NywgMC4wMDI3NjksIDAuMDAyNzksIDAuMDAyODA5LCAwLjAwMjgzNiwgMC4wMDI4NTQsIDAuMDAyODc0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTM0ODYsIDAuMDEzNTE0LCAwLjAxMzUxNiwgMC4wMTM1MTYsIDAuMDEzNTE2LCAwLjAxMzUxNywgMC4wMTM1MTkiLCBcCi0gICAgICAgICAgIjAuMDEzNDU5LCAwLjAxMzUzNSwgMC4wMTM1NDgsIDAuMDEzNTUyLCAwLjAxMzU1NSwgMC4wMTM1NTcsIDAuMDEzNTU4IiwgXAotICAgICAgICAgICIwLjAxMzU1MSwgMC4wMTM1OTgsIDAuMDEzNTksIDAuMDEzNTg1LCAwLjAxMzU4NCwgMC4wMTM1NzksIDAuMDEzNTc3IiwgXAotICAgICAgICAgICIwLjAxMzc3MywgMC4wMTM2NTIsIDAuMDEzNjIyLCAwLjAxMzYxNywgMC4wMTM1ODksIDAuMDEzNTk2LCAwLjAxMzU5MyIsIFwKLSAgICAgICAgICAiMC4wMTQxMDEsIDAuMDEzODc4LCAwLjAxMzc2NSwgMC4wMTM3MzMsIDAuMDEzNjk4LCAwLjAxMzY2MSwgMC4wMTM2NTYiLCBcCi0gICAgICAgICAgIjAuMDE0NzE2LCAwLjAxNDAwMywgMC4wMTM5NjMsIDAuMDEzODg3LCAwLjAxMzgxOCwgMC4wMTM3ODEsIDAuMDEzNzQxIiwgXAotICAgICAgICAgICIwLjAxNTMyOCwgMC4wMTQyMjksIDAuMDE0MTk1LCAwLjAxNDA2OSwgMC4wMTM5NTcsIDAuMDEzODk4LCAwLjAxMzgzOCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyODQ0LCAwLjAwMjk0MywgMC4wMDI5NTYsIDAuMDAyOTU5LCAwLjAwMjk2MywgMC4wMDI5NjUsIDAuMDAyOTY2IiwgXAotICAgICAgICAgICIwLjAwMjU3LCAwLjAwMjg0NCwgMC4wMDI4OTcsIDAuMDAyOTE0LCAwLjAwMjkyOSwgMC4wMDI5MzgsIDAuMDAyOTQ1IiwgXAotICAgICAgICAgICIwLjAwMjQ4LCAwLjAwMjc1NSwgMC4wMDI4MzYsIDAuMDAyODY1LCAwLjAwMjg5MiwgMC4wMDI5MDcsIDAuMDAyOTIiLCBcCi0gICAgICAgICAgIjAuMDAyNTI3LCAwLjAwMjcwNiwgMC4wMDI3OTksIDAuMDAyODMzLCAwLjAwMjg2NiwgMC4wMDI4ODUsIDAuMDAyOTAyIiwgXAotICAgICAgICAgICIwLjAwMjY3OCwgMC4wMDI3MTYsIDAuMDAyNzg4LCAwLjAwMjgyMSwgMC4wMDI4NTQsIDAuMDAyODczLCAwLjAwMjg5MiIsIFwKLSAgICAgICAgICAiMC4wMDMwNjQsIDAuMDAyODA3LCAwLjAwMjgyNiwgMC4wMDI4NDMsIDAuMDAyODY1LCAwLjAwMjg4LCAwLjAwMjg5NiIsIFwKLSAgICAgICAgICAiMC4wMDM0OTUsIDAuMDAyOTUsIDAuMDAyOSwgMC4wMDI4OTYsIDAuMDAyOSwgMC4wMDI5MDYsIDAuMDAyOTE0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTAyNzgsIDAuMDEwMzUyLCAwLjAxMDM2MywgMC4wMTAzNjYsIDAuMDEwMzY4LCAwLjAxMDM2OSwgMC4wMTAzNyIsIFwKLSAgICAgICAgICAiMC4wMTAyNzYsIDAuMDEwNDAyLCAwLjAxMDQzLCAwLjAxMDQzNiwgMC4wMTA0NDIsIDAuMDEwNDQ1LCAwLjAxMDQ0OCIsIFwKLSAgICAgICAgICAiMC4wMTAzNzQsIDAuMDEwNDk1LCAwLjAxMDQ4NCwgMC4wMTA0OCwgMC4wMTA0NzgsIDAuMDEwNDc2LCAwLjAxMDQ3NiIsIFwKLSAgICAgICAgICAiMC4wMTA2MzEsIDAuMDEwNTYxLCAwLjAxMDUzOCwgMC4wMTA1MjUsIDAuMDEwNTAzLCAwLjAxMDUxLCAwLjAxMDUwNCIsIFwKLSAgICAgICAgICAiMC4wMTA5NiwgMC4wMTA2OCwgMC4wMTA2LCAwLjAxMDU4NSwgMC4wMTA1NjEsIDAuMDEwNTQxLCAwLjAxMDUzNyIsIFwKLSAgICAgICAgICAiMC4wMTE1ODEsIDAuMDEwOTUxLCAwLjAxMDc3MiwgMC4wMTA3MTEsIDAuMDEwNjY2LCAwLjAxMDYzNSwgMC4wMTA2MSIsIFwKLSAgICAgICAgICAiMC4wMTIxNSwgMC4wMTEyNDIsIDAuMDEwOTc1LCAwLjAxMDg3LCAwLjAxMDc4MiwgMC4wMTA3NDEsIDAuMDEwNjk0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI4MjQsIDAuMDAyOTM2LCAwLjAwMjk1LCAwLjAwMjk1NCwgMC4wMDI5NTgsIDAuMDAyOTYsIDAuMDAyOTYyIiwgXAotICAgICAgICAgICIwLjAwMjYzMiwgMC4wMDI4NDksIDAuMDAyODk3LCAwLjAwMjkxMywgMC4wMDI5MjgsIDAuMDAyOTM1LCAwLjAwMjk0MyIsIFwKLSAgICAgICAgICAiMC4wMDI4MDEsIDAuMDAyODM2LCAwLjAwMjg4LCAwLjAwMjg5OCwgMC4wMDI5MTUsIDAuMDAyOTI0LCAwLjAwMjkzMyIsIFwKLSAgICAgICAgICAiMC4wMDMwNjMsIDAuMDAyODg1LCAwLjAwMjg5OSwgMC4wMDI5MDksIDAuMDAyOTIxLCAwLjAwMjkyOSwgMC4wMDI5MzYiLCBcCi0gICAgICAgICAgIjAuMDAzNTA3LCAwLjAwMzAwNiwgMC4wMDI5NjMsIDAuMDAyOTU2LCAwLjAwMjk1NSwgMC4wMDI5NTUsIDAuMDAyOTU2IiwgXAotICAgICAgICAgICIwLjAwNDIyNywgMC4wMDMyNzksIDAuMDAzMTIxLCAwLjAwMzA3NiwgMC4wMDMwNCwgMC4wMDMwMjQsIDAuMDAzMDA5IiwgXAotICAgICAgICAgICIwLjAwNDc5NiwgMC4wMDM1ODYsIDAuMDAzMzE3LCAwLjAwMzIyNiwgMC4wMDMxNDgsIDAuMDAzMTExLCAwLjAwMzA3OCIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IE5BTkQ0WDggKgotICogLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoTkFORDRYOCkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAyLjc4ODU2OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDYwOTc7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDA2MDk3OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwNjA3ODQ0OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNDE2OSwgMC4wMDQxNjQsIDAuMDA0MTYzLCAwLjAwNDE2MiwgMC4wMDQxNjEsIDAuMDA0MTYyLCAwLjAwNDE2MSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNDE3MSwgMC4wMDQxNzQsIDAuMDA0MTc2LCAwLjAwNDE3OSwgMC4wMDQxNzIsIDAuMDA0MTc3LCAwLjAwNDE3OCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDA2MDkzNjg7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDA2MDkzNjg7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDA2MDc3NjY7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA0MTY5LCAwLjAwNDE2NCwgMC4wMDQxNjUsIDAuMDA0MTYxLCAwLjAwNDE2NiwgMC4wMDQxNjIsIDAuMDA0MTYxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA0MTcxLCAwLjAwNDE3NSwgMC4wMDQxNzYsIDAuMDA0MTc5LCAwLjAwNDE3NiwgMC4wMDQxNzksIDAuMDA0MTgiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEMpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwNjA5NTQ1OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwNjA5NTQ1OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwNjA4MjkzOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNDE2OSwgMC4wMDQxNjYsIDAuMDA0MTYzLCAwLjAwNDE2MSwgMC4wMDQxNjEsIDAuMDA0MTYsIDAuMDA0MTYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDQxNzEsIDAuMDA0MTc0LCAwLjAwNDE3NywgMC4wMDQxNzgsIDAuMDA0MTc4LCAwLjAwNDE3OCwgMC4wMDQxNzkiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEQpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwNjE1OTc1OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwNjE1NzYzOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwNjE1OTc1OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTUzLCAwLjAwMTUyNiwgMC4wMDE1MjMsIDAuMDAxNTIzLCAwLjAwMTUyMywgMC4wMDE1MjEsIDAuMDAxNTIxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA0NzMxLCAwLjAwNDczMywgMC4wMDQ3MzcsIDAuMDA0NzM0LCAwLjAwNDczNiwgMC4wMDQ3MzYsIDAuMDA0NzM1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuNzUyMjQ2OwotICAgIGZ1bmN0aW9uIDogIighKCgoQSBCKSBDKSBEKSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE0NjExLCAwLjA0Mzk5OSwgMC4wNzI0MDgsIDAuMDkyNjA5LCAwLjEyNDg0NywgMC4xNTI5ODMsIDAuMTkzMjIyIiwgXAotICAgICAgICAgICIwLjAyMzEzMSwgMC4wNTIyODUsIDAuMDgwNTgyLCAwLjEwMDg3MiwgMC4xMzMxMywgMC4xNjEzNjUsIDAuMjAxNDgzIiwgXAotICAgICAgICAgICIwLjAzMDg0MiwgMC4wNjI4MzQsIDAuMDkxMTksIDAuMTExMzU3LCAwLjE0MzU3MiwgMC4xNzE3MzMsIDAuMjExOTIiLCBcCi0gICAgICAgICAgIjAuMDM2MjAxLCAwLjA3MzQwNiwgMC4xMDE2NCwgMC4xMjE3NzksIDAuMTUzOTU5LCAwLjE4MjE3OCwgMC4yMjIyOTMiLCBcCi0gICAgICAgICAgIjAuMDQwNDU0LCAwLjA4MzA0OCwgMC4xMTIwMDMsIDAuMTMyMTEyLCAwLjE2NDI2MSwgMC4xOTIzNzksIDAuMjMyNTIzIiwgXAotICAgICAgICAgICIwLjA0NTYyNCwgMC4wOTUwNzQsIDAuMTI4ODE1LCAwLjE0OTMzMSwgMC4xODE0NjIsIDAuMjA5NTg0LCAwLjI0OTYxNCIsIFwKLSAgICAgICAgICAiMC4wNDkyMTEsIDAuMTAzNjU4LCAwLjE0MTM3OSwgMC4xNjM5MDUsIDAuMTk2MjYzLCAwLjIyNDM4OSwgMC4yNjQ0NjIiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjQ1NDksIDAuMDg0MTcsIDAuMTQzNjY5LCAwLjE4NjMsIDAuMjU0NDYxLCAwLjMxMzg5NCwgMC4zOTkyMzYiLCBcCi0gICAgICAgICAgIjAuMDI5MzkzLCAwLjA4NTAzMSwgMC4xNDM3MDgsIDAuMTg2MjQyLCAwLjI1NDM2MywgMC4zMTQwMzUsIDAuMzk5MDE2IiwgXAotICAgICAgICAgICIwLjAzODgwMywgMC4wOTA2NjksIDAuMTQ2NjU5LCAwLjE4Nzc1LCAwLjI1NDYyMSwgMC4zMTM5ODEsIDAuMzk5MDQ5IiwgXAotICAgICAgICAgICIwLjA0NzA2MywgMC4wOTg3MTEsIDAuMTUyNDg0LCAwLjE5MjMzNywgMC4yNTc0NTYsIDAuMzE1NTE4LCAwLjM5OTM5NCIsIFwKLSAgICAgICAgICAiMC4wNTQzNDIsIDAuMTA3MjMzLCAwLjE2MDAyMiwgMC4xOTg3NTEsIDAuMjYyNDcsIDAuMzE5MzUzLCAwLjQwMTc0NyIsIFwKLSAgICAgICAgICAiMC4wNjUzOCwgMC4xMjMwMDgsIDAuMTczMzgzLCAwLjIxMDY5OCwgMC4yNzIzOTcsIDAuMzI3NzgxLCAwLjQwODI3MiIsIFwKLSAgICAgICAgICAiMC4wNzQyMywgMC4xMzY3NzcsIDAuMTg2MjAxLCAwLjIyMjYyMywgMC4yODI3MTUsIDAuMzM2ODk5LCAwLjQxNTk2OCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0NjAxNywgMC4xNDQwMSwgMC4yNDE2NDQsIDAuMzExNDE4LCAwLjQyMzMwMywgMC41MjA1MjcsIDAuNjU5OTg0IiwgXAotICAgICAgICAgICIwLjA1MDg5MSwgMC4xNDkzNDIsIDAuMjQ3Mjk0LCAwLjMxNjkwNCwgMC40Mjg1MDYsIDAuNTI2Mjk1LCAwLjY2NTYxIiwgXAotICAgICAgICAgICIwLjA1NTg1NSwgMC4xNTQxOTMsIDAuMjUyMTI2LCAwLjMyMTg3OCwgMC40MzM2ODksIDAuNTMxMDgsIDAuNjcwNDk3IiwgXAotICAgICAgICAgICIwLjA1OTg1LCAwLjE1ODU5NSwgMC4yNTY1NDgsIDAuMzI2MzEyLCAwLjQzNzg2NiwgMC41MzU1MzksIDAuNjc1MzEyIiwgXAotICAgICAgICAgICIwLjA2MzI0MywgMC4xNjI4ODgsIDAuMjYwNzExLCAwLjMzMDU2NCwgMC40NDIyNDcsIDAuNTQwMDEzLCAwLjY3OTI2NCIsIFwKLSAgICAgICAgICAiMC4wNjc5MDgsIDAuMTY5Nzc1LCAwLjI2NzQ5MiwgMC4zMzcyNTksIDAuNDQ4ODcyLCAwLjU0NjU2MSwgMC42ODYzODUiLCBcCi0gICAgICAgICAgIjAuMDcxNzQ4LCAwLjE3NjE2NiwgMC4yNzM2MjYsIDAuMzQzNDUzLCAwLjQ1NTE0NSwgMC41NTI2OSwgMC42OTIwNjkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjkxMjMsIDAuMjcxODE1LCAwLjQ3Mzk4MywgMC42MTk1MzQsIDAuODUwMDczLCAxLjA1NDE0LCAxLjM0MTMzIiwgXAotICAgICAgICAgICIwLjA2OTEyMiwgMC4yNzE4MjMsIDAuNDczODc0LCAwLjYxODYwNCwgMC44NTEyNTMsIDEuMDUyNjQsIDEuMzQzODciLCBcCi0gICAgICAgICAgIjAuMDcwNjUzLCAwLjI3MTM5MSwgMC40NzQ2MDMsIDAuNjE4NDI1LCAwLjg1MTM0NywgMS4wNTQxMSwgMS4zNDM4NyIsIFwKLSAgICAgICAgICAiMC4wNzMxODIsIDAuMjcyMzkxLCAwLjQ3NDY3NywgMC42MTg1MDIsIDAuODQ5OTM3LCAxLjA1MjUxLCAxLjM0MzkyIiwgXAotICAgICAgICAgICIwLjA3NjYxMywgMC4yNzM3NjUsIDAuNDc0NjE0LCAwLjYxODYyLCAwLjg1MTI4NCwgMS4wNTQwNSwgMS4zNDE3NyIsIFwKLSAgICAgICAgICAiMC4wODI1NjcsIDAuMjc2ODQyLCAwLjQ3NjkzNywgMC42MTk5NDYsIDAuODUwMzU2LCAxLjA1MjUxLCAxLjM0MTM3IiwgXAotICAgICAgICAgICIwLjA4ODAxLCAwLjI4MDM3NywgMC40Nzg5NzYsIDAuNjIyMzgzLCAwLjg1MjY0NCwgMS4wNTI4MSwgMS4zNDIwOCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxNDIzNSwgMC4wNDMxMDgsIDAuMDcxNDU0LCAwLjA5MTY4MSwgMC4xMjM5NzIsIDAuMTUyMjAzLCAwLjE5MjU5NyIsIFwKLSAgICAgICAgICAiMC4wMjI1LCAwLjA1MTM5MiwgMC4wNzk3NTcsIDAuMDk5OTcxLCAwLjEzMjMyMSwgMC4xNjA1NjEsIDAuMjAwODM1IiwgXAotICAgICAgICAgICIwLjAyOTcyMiwgMC4wNjE5MzEsIDAuMDkwMjM1LCAwLjExMDQzNSwgMC4xNDI3MTIsIDAuMTcwOTEzLCAwLjIxMTI4NiIsIFwKLSAgICAgICAgICAiMC4wMzQ3NSwgMC4wNzIzNDMsIDAuMTAwNjY4LCAwLjEyMDgyOCwgMC4xNTMwNzIsIDAuMTgxMzQsIDAuMjIxNjIxIiwgXAotICAgICAgICAgICIwLjAzODU0MiwgMC4wODE5ODcsIDAuMTExMDQ1LCAwLjEzMTEzNCwgMC4xNjMzNSwgMC4xOTE1MzksIDAuMjMxODE2IiwgXAotICAgICAgICAgICIwLjA0MzE5MywgMC4wOTM1OTMsIDAuMTI4MDQyLCAwLjE0ODQ3MywgMC4xODA3NjMsIDAuMjA4ODkzLCAwLjI0OTE1NyIsIFwKLSAgICAgICAgICAiMC4wNDYyNDksIDAuMTAyNDU4LCAwLjE0MDA3LCAwLjE2MjczNCwgMC4xOTUyNDUsIDAuMjIzNDMsIDAuMjYzNjI2Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDIyNzQ2LCAwLjA4MjQzOSwgMC4xNDIyMDUsIDAuMTg0OTQ1LCAwLjI1MzI3LCAwLjMxMzIxMSwgMC4zOTg2NTQiLCBcCi0gICAgICAgICAgIjAuMDI3NzI2LCAwLjA4MzQyMiwgMC4xNDIyNDQsIDAuMTg0OTIyLCAwLjI1MzMzMywgMC4zMTMxMDYsIDAuMzk4NDk3IiwgXAotICAgICAgICAgICIwLjAzNzEwNywgMC4wODkxMzksIDAuMTQ1MjY5LCAwLjE4NjU0NywgMC4yNTM2MDMsIDAuMzEzMTQ2LCAwLjM5ODU4MSIsIFwKLSAgICAgICAgICAiMC4wNDQ5ODIsIDAuMDk3MzUyLCAwLjE1MTE5OCwgMC4xOTExNzgsIDAuMjU2NTcxLCAwLjMxNDcxLCAwLjM5ODkxNCIsIFwKLSAgICAgICAgICAiMC4wNTIxNDgsIDAuMTA2MDE0LCAwLjE1ODg3MywgMC4xOTc2ODMsIDAuMjYxNTAzLCAwLjMxODU4OCwgMC40MDEyMTkiLCBcCi0gICAgICAgICAgIjAuMDYyNzI2LCAwLjEyMTY2MSwgMC4xNzE5MTcsIDAuMjA5MzkyLCAwLjI3MTM3MSwgMC4zMjY4MjgsIDAuNDA3Njg2IiwgXAotICAgICAgICAgICIwLjA3MTQ2NSwgMC4xMzQzNzQsIDAuMTg1NDkyLCAwLjIyMTg0MiwgMC4yODE5NTYsIDAuMzM2MzMyLCAwLjQxNTU4Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQzODk1LCAwLjE0MTg5NiwgMC4yMzk3MDksIDAuMzA5MjM1LCAwLjQyMDkyNSwgMC41MTg1NzgsIDAuNjU4Mjk0IiwgXAotICAgICAgICAgICIwLjA0OTIxNywgMC4xNDc3MDgsIDAuMjQ1NTA1LCAwLjMxNTUwNiwgMC40MjcxODIsIDAuNTI0MzY0LCAwLjY2MzY5MyIsIFwKLSAgICAgICAgICAiMC4wNTUzMTUsIDAuMTUzNzEsIDAuMjUxNTc0LCAwLjMyMTYxOCwgMC40MzMxMTcsIDAuNTMwOTIyLCAwLjY2OTk5NCIsIFwKLSAgICAgICAgICAiMC4wNjA3MjQsIDAuMTU5NzA1LCAwLjI1NzU3NSwgMC4zMjc0NDIsIDAuNDM5MTU3LCAwLjUzNjY1MSwgMC42NzYzNjYiLCBcCi0gICAgICAgICAgIjAuMDY1NTE2LCAwLjE2NTgxMiwgMC4yNjM2NzEsIDAuMzMzNDgzLCAwLjQ0NTQyMiwgMC41NDI4ODYsIDAuNjgyMjEyIiwgXAotICAgICAgICAgICIwLjA3MjM0MiwgMC4xNzU3MjIsIDAuMjczNDI5LCAwLjM0MzQxNiwgMC40NTUwMDMsIDAuNTUyOTA2LCAwLjY5MjIyOSIsIFwKLSAgICAgICAgICAiMC4wNzc2NjYsIDAuMTg0OTE0LCAwLjI4MjMzNSwgMC4zNTIyOTIsIDAuNDY0MTEsIDAuNTYxNjE4LCAwLjcwMTIwNSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2OTEyMSwgMC4yNzE1MjMsIDAuNDczODczLCAwLjYxODQ0OCwgMC44NDk4NTYsIDEuMDUyMzQsIDEuMzQxNTUiLCBcCi0gICAgICAgICAgIjAuMDY5MzgxLCAwLjI3MTg1OSwgMC40NzQ2NCwgMC42MTg0NzgsIDAuODQ5ODIzLCAxLjA1NDAyLCAxLjM0MTc1IiwgXAotICAgICAgICAgICIwLjA3MTc0NiwgMC4yNzE5LCAwLjQ3NDYxMSwgMC42MTg0MTMsIDAuODUxMjc4LCAxLjA1MjA1LCAxLjM0Mzg3IiwgXAotICAgICAgICAgICIwLjA3NTcyOSwgMC4yNzI2NjEsIDAuNDczODgyLCAwLjYxODU3OCwgMC44NTEyMDUsIDEuMDUyMDYsIDEuMzQzODIiLCBcCi0gICAgICAgICAgIjAuMDgwOTc2LCAwLjI3NDYzMywgMC40NzQ3MzUsIDAuNjE4NTI2LCAwLjg0OTc0MiwgMS4wNTIzNSwgMS4zNDE3NiIsIFwKLSAgICAgICAgICAiMC4wODk3NjYsIDAuMjc5MjQ5LCAwLjQ3NzA1MSwgMC42MjExMjIsIDAuODUwMzc0LCAxLjA1MjMzLCAxLjM0MTMyIiwgXAotICAgICAgICAgICIwLjA5NjQ3OCwgMC4yODQ2NTIsIDAuNDgwMTk3LCAwLjYyMzI3NiwgMC44NTI3NTUsIDEuMDUyOTUsIDEuMzQxNDgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTMyNzMsIDAuMDQxNzMxLCAwLjA3MDAyOCwgMC4wOTAyNDYsIDAuMTIyNTA5LCAwLjE1MDgsIDAuMTkxMTI4IiwgXAotICAgICAgICAgICIwLjAyMTM0NiwgMC4wNTAxMDIsIDAuMDc4NDEzLCAwLjA5ODU5NCwgMC4xMzA4OTIsIDAuMTU5MjQ5LCAwLjE5OTUiLCBcCi0gICAgICAgICAgIjAuMDI3ODMxLCAwLjA2MDY0LCAwLjA4ODg2MSwgMC4xMDkwNTYsIDAuMTQxMzM2LCAwLjE2OTUxMywgMC4yMDk5NTYiLCBcCi0gICAgICAgICAgIjAuMDMyNDE1LCAwLjA3MDkzMiwgMC4wOTkyNDcsIDAuMTE5Mzk1LCAwLjE1MTY2NCwgMC4xNzk4OTIsIDAuMjIwMjI5IiwgXAotICAgICAgICAgICIwLjAzNTY5MywgMC4wODAyMzEsIDAuMTEwMTUzLCAwLjEyOTc3NywgMC4xNjIwMDgsIDAuMTkwMiwgMC4yMzA1NzEiLCBcCi0gICAgICAgICAgIjAuMDM5NzA0LCAwLjA5MTUzMiwgMC4xMjY0MTUsIDAuMTQ3MTc0LCAwLjE3OTI5NywgMC4yMDc0OTYsIDAuMjQ3NzUxIiwgXAotICAgICAgICAgICIwLjA0MjE2OCwgMC4xMDAzMzgsIDAuMTM5MjI2LCAwLjE2MTg4OSwgMC4xOTM1MTEsIDAuMjIxNjMsIDAuMjYxODI3Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDIwNzQzLCAwLjA4MDUzNSwgMC4xNDAzNzMsIDAuMTgzMDU2LCAwLjI1MTQ2NywgMC4zMTEyODMsIDAuMzk2NjkyIiwgXAotICAgICAgICAgICIwLjAyNjA0MiwgMC4wODE1NSwgMC4xNDAzNjQsIDAuMTgzMDk2LCAwLjI1MTMwMSwgMC4zMTEzNTUsIDAuMzk2NDgyIiwgXAotICAgICAgICAgICIwLjAzNTQ0OCwgMC4wODc0NzgsIDAuMTQzNDgxLCAwLjE4NDY5MywgMC4yNTE4MDQsIDAuMzExMjU4LCAwLjM5NjY2OCIsIFwKLSAgICAgICAgICAiMC4wNDMwMzMsIDAuMDk1ODAyLCAwLjE0OTUyNSwgMC4xODk0MDcsIDAuMjU0NzM5LCAwLjMxMjksIDAuMzk3MTI3IiwgXAotICAgICAgICAgICIwLjA1MDE5NiwgMC4xMDQ1NDUsIDAuMTU2NjMsIDAuMTk1OTQ0LCAwLjI1OTc4MSwgMC4zMTY2OTksIDAuMzk5MzMzIiwgXAotICAgICAgICAgICIwLjA2MDQ0NSwgMC4xMjA0MzksIDAuMTcwNDMsIDAuMjA3ODQ2LCAwLjI2OTYsIDAuMzI1MTIsIDAuNDA1ODg4IiwgXAotICAgICAgICAgICIwLjA2OTIwMSwgMC4xMzI3MjgsIDAuMTgzMDk0LCAwLjIxOTMzNiwgMC4yODA5MjQsIDAuMzM1MTEzLCAwLjQxNDIwNCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzOTU4MywgMC4xMzc1ODMsIDAuMjM1Mjc1LCAwLjMwNDk3NywgMC40MTY4NDYsIDAuNTE0MDk1LCAwLjY1Mzc3MiIsIFwKLSAgICAgICAgICAiMC4wNDUzMzcsIDAuMTQzNzc4LCAwLjI0MTU0OCwgMC4zMTEzMDcsIDAuNDIyODc1LCAwLjUyMDk1OCwgMC42NTk4MTIiLCBcCi0gICAgICAgICAgIjAuMDUzMjE0LCAwLjE1MTUzLCAwLjI0OTQwNSwgMC4zMTkyMzgsIDAuNDMwNzc5LCAwLjUyODM3MSwgMC42Njc5NDMiLCBcCi0gICAgICAgICAgIjAuMDYwNDA3LCAwLjE1OTQzNiwgMC4yNTY4MTksIDAuMzI3MjY1LCAwLjQzODg2MiwgMC41MzY0ODMsIDAuNjc1OTQxIiwgXAotICAgICAgICAgICIwLjA2NjU5NCwgMC4xNjc1NjIsIDAuMjY1NTIyLCAwLjMzNTQyLCAwLjQ0Njk3MiwgMC41NDQ3ODksIDAuNjg0NDY0IiwgXAotICAgICAgICAgICIwLjA3NTM0LCAwLjE4MDk5MiwgMC4yNzgzNzYsIDAuMzQ4NDE2LCAwLjQ2MDI1NywgMC41NTc2MTgsIDAuNjk3MjU4IiwgXAotICAgICAgICAgICIwLjA4MjIzOSwgMC4xOTI2ODMsIDAuMjkwMTM0LCAwLjM1OTY4OSwgMC40NzE1MTEsIDAuNTY5MDEyLCAwLjcwODUzMyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2OTEyMiwgMC4yNzE1MDIsIDAuNDczOTQxLCAwLjYxOTUyNywgMC44NDk4NjksIDEuMDU0MTcsIDEuMzQxNTkiLCBcCi0gICAgICAgICAgIjAuMDY5NTgzLCAwLjI3MTM3NiwgMC40NzQ2MTYsIDAuNjE4ODEsIDAuODUxMjg0LCAxLjA1MjMzLCAxLjM0Mzg3IiwgXAotICAgICAgICAgICIwLjA3Mzc1NSwgMC4yNzE1ODMsIDAuNDczOTE5LCAwLjYxOTQ2MSwgMC44NDk2NzgsIDEuMDUyMTYsIDEuMzQzNzEiLCBcCi0gICAgICAgICAgIjAuMDc5Njk0LCAwLjI3MzE4NiwgMC40NzM4MjQsIDAuNjE5NDU5LCAwLjg1MDAxMSwgMS4wNTIxMSwgMS4zNDE0IiwgXAotICAgICAgICAgICIwLjA4NjQ0LCAwLjI3NjIyNiwgMC40NzQ4MywgMC42MTg1NjUsIDAuODQ5OTIzLCAxLjA1NDA3LCAxLjM0MTU0IiwgXAotICAgICAgICAgICIwLjA5NjM5MSwgMC4yODMwMjQsIDAuNDc4NjI3LCAwLjYyMDQxMywgMC44NTAwMjIsIDEuMDU0MTEsIDEuMzQxNzYiLCBcCi0gICAgICAgICAgIjAuMTA0NDUxLCAwLjI5MDE0NiwgMC40ODI5NjYsIDAuNjIzMzk3LCAwLjg1MTY2NiwgMS4wNTI3MywgMS4zNDEzOCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJEIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMTc3NSwgMC4wNDAwODgsIDAuMDY4MzMyLCAwLjA4ODQ2LCAwLjEyMDcxOCwgMC4xNDg5OTQsIDAuMTg5MjY2IiwgXAotICAgICAgICAgICIwLjAxOTU1MSwgMC4wNDg0NzQsIDAuMDc2NzAzLCAwLjA5Njg2OCwgMC4xMjkwOTUsIDAuMTU3MzIsIDAuMTk3NjU4IiwgXAotICAgICAgICAgICIwLjAyNTMxNSwgMC4wNTkwNTEsIDAuMDg3MjEsIDAuMTA3Mzg2LCAwLjEzOTYxMSwgMC4xNjc1OTcsIDAuMjA4MTQ0IiwgXAotICAgICAgICAgICIwLjAyOTIwNywgMC4wNjkzMjYsIDAuMDk3Njg3LCAwLjExNzgwOCwgMC4xNTAwMjYsIDAuMTc4MjI0LCAwLjIxODUxMiIsIFwKLSAgICAgICAgICAiMC4wMzIwMDMsIDAuMDc4Mzc4LCAwLjEwODExNSwgMC4xMjgxOTIsIDAuMTYwMzM3LCAwLjE4ODUxLCAwLjIyODgwOCIsIFwKLSAgICAgICAgICAiMC4wMzUyMTYsIDAuMDg5MzUsIDAuMTI0MzkxLCAwLjE0NTM2NiwgMC4xNzc0NCwgMC4yMDU1MjYsIDAuMjQ1NzM3IiwgXAotICAgICAgICAgICIwLjAzNzEwNSwgMC4wOTcxNDIsIDAuMTM2MzcxLCAwLjE1OTY1OCwgMC4xOTIzNjYsIDAuMjIwNTAyLCAwLjI2MDY3NiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxODgwNywgMC4wNzgzOCwgMC4xMzc5MzgsIDAuMTgwODkyLCAwLjI0ODcxMSwgMC4zMDg0MzUsIDAuMzkzNDE5IiwgXAotICAgICAgICAgICIwLjAyNDU5OCwgMC4wNzk2MjEsIDAuMTM4MDQ1LCAwLjE4MDYzOSwgMC4yNDkxNDgsIDAuMzA4NDk1LCAwLjM5MzQxNiIsIFwKLSAgICAgICAgICAiMC4wMzM4MzYsIDAuMDg1NTAyLCAwLjE0MTM4NSwgMC4xODIyODEsIDAuMjQ5MTExLCAwLjMwODQ2NCwgMC4zOTM0NjgiLCBcCi0gICAgICAgICAgIjAuMDQxMzIzLCAwLjA5MzgyNiwgMC4xNDczNDksIDAuMTg3MDQsIDAuMjUyNDk0LCAwLjMxMDYyMiwgMC4zOTQ2MTgiLCBcCi0gICAgICAgICAgIjAuMDQ4NDY3LCAwLjEwMzMwMSwgMC4xNTUwNjksIDAuMTkzNzM4LCAwLjI1NzI0NCwgMC4zMTM5NjIsIDAuMzk3MDQiLCBcCi0gICAgICAgICAgIjAuMDU4NjI2LCAwLjExODkwMSwgMC4xNjg3MjcsIDAuMjA1OTQ4LCAwLjI2NzU2OSwgMC4zMjI3MTcsIDAuNDAzNDUiLCBcCi0gICAgICAgICAgIjAuMDY2NzcyLCAwLjEzMjkwMiwgMC4xODI2MTQsIDAuMjE3ODEsIDAuMjc3ODE1LCAwLjMzMjAzNSwgMC40MTA5MSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzMjk1OSwgMC4xMzEwNjUsIDAuMjI4Njc0LCAwLjI5ODQwNCwgMC40MTAxODEsIDAuNTA3Mzg2LCAwLjY0NzUxMiIsIFwKLSAgICAgICAgICAiMC4wMzk1MDgsIDAuMTM3NzQsIDAuMjM1NTAxLCAwLjMwNTMwNCwgMC40MTY3NzQsIDAuNTE0NDcyLCAwLjY1MzY4NSIsIFwKLSAgICAgICAgICAiMC4wNDkwNjQsIDAuMTQ2NTI2LCAwLjI0NDEzNiwgMC4zMTM5MjIsIDAuNDI1NDEyLCAwLjUyMzA2OSwgMC42NjI0OTgiLCBcCi0gICAgICAgICAgIjAuMDU3NzAzLCAwLjE1NTQ1MiwgMC4yNTMwNiwgMC4zMjI3MDQsIDAuNDM0NjEzLCAwLjUzMTkzNiwgMC42NzEzNjgiLCBcCi0gICAgICAgICAgIjAuMDY1MzIxLCAwLjE2NDkxNSwgMC4yNjIxMTQsIDAuMzMxNjc1LCAwLjQ0MzQxNiwgMC41NDA2NTYsIDAuNjc5OTk3IiwgXAotICAgICAgICAgICIwLjA3NTIxMywgMC4xODAxMDEsIDAuMjc2ODM3LCAwLjM0NjE2OSwgMC40NTc2MTMsIDAuNTU1MDQsIDAuNjk0MzM5IiwgXAotICAgICAgICAgICIwLjA4Mjg2MiwgMC4xOTM0NDcsIDAuMjg5OTQzLCAwLjM1OTE5NiwgMC40NzAyOCwgMC41Njc2MjEsIDAuNzA2ODAxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY4NjU0LCAwLjI3MTgzOSwgMC40NzQ1OTksIDAuNjE5NDcxLCAwLjg0OTg4MywgMS4wNTQxLCAxLjM0MTU2IiwgXAotICAgICAgICAgICIwLjA2OTQ2LCAwLjI3MTMwOSwgMC40NzQ1OTcsIDAuNjE5NDkyLCAwLjg1MTMsIDEuMDU0MDYsIDEuMzQyMDciLCBcCi0gICAgICAgICAgIjAuMDc1NDgzLCAwLjI3MTE0OCwgMC40NzM3MjUsIDAuNjE4NDU2LCAwLjg0OTYyOSwgMS4wNTIyNCwgMS4zNDE1OCIsIFwKLSAgICAgICAgICAiMC4wODMwMDUsIDAuMjczNDQ5LCAwLjQ3NDQ0LCAwLjYxODkxNCwgMC44NDk4OTcsIDEuMDU0MDUsIDEuMzQzOCIsIFwKLSAgICAgICAgICAiMC4wOTAxNDgsIDAuMjc3NjYxLCAwLjQ3NDg5LCAwLjYxODQ0NiwgMC44NDk3NzcsIDEuMDUyMzgsIDEuMzQxNzciLCBcCi0gICAgICAgICAgIjAuMTAwODY3LCAwLjI4NjA4MiwgMC40Nzk1NDcsIDAuNjIwNTc2LCAwLjg1MTMxOCwgMS4wNTQwNCwgMS4zNDE2NiIsIFwKLSAgICAgICAgICAiMC4xMDg3NzksIDAuMjk1MDU2LCAwLjQ4NTQ1LCAwLjYyNDc1NSwgMC44NTE3NzEsIDEuMDUyNywgMS4zNDM4NiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDMzNTIzLCAwLjAzMzUzNCwgMC4wMzM1MzYsIDAuMDMzNTM5LCAwLjAzMzU0MiwgMC4wMzM1MzksIDAuMDMzNTM1IiwgXAotICAgICAgICAgICIwLjAzMzM4NywgMC4wMzMzOSwgMC4wMzMzNjcsIDAuMDMzMzk2LCAwLjAzMzM5NiwgMC4wMzMzOTYsIDAuMDMzMzkxIiwgXAotICAgICAgICAgICIwLjAzMzY1NywgMC4wMzM0NjQsIDAuMDMzNDI3LCAwLjAzMzQxNywgMC4wMzMzOTcsIDAuMDMzMzc3LCAwLjAzMzM4MiIsIFwKLSAgICAgICAgICAiMC4wMzQxLCAwLjAzMzc0MiwgMC4wMzM2LCAwLjAzMzU1NiwgMC4wMzM1MDIsIDAuMDMzNDc1LCAwLjAzMzQ1OSIsIFwKLSAgICAgICAgICAiMC4wMzQ3MzQsIDAuMDMzOTYxLCAwLjAzMzkyNywgMC4wMzM4MTIsIDAuMDMzNzE4LCAwLjAzMzY2MSwgMC4wMzM2IiwgXAotICAgICAgICAgICIwLjAzNjA3NSwgMC4wMzQ2NzksIDAuMDM0NjM5LCAwLjAzNDQxOSwgMC4wMzQxODksIDAuMDM0MDU1LCAwLjAzMzkyNyIsIFwKLSAgICAgICAgICAiMC4wMzc1NzgsIDAuMDM1NzY1LCAwLjAzNDkxNiwgMC4wMzQ2NDMsIDAuMDM0MzQ3LCAwLjAzNDE4OSwgMC4wMzQwMzkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNTEwMiwgMC4wMDUzNDksIDAuMDA1MzksIDAuMDA1NDAzLCAwLjAwNTQxNSwgMC4wMDU0MjEsIDAuMDA1NDI3IiwgXAotICAgICAgICAgICIwLjAwNDQ5NCwgMC4wMDUwMjgsIDAuMDA1MTgyLCAwLjAwNTIzOCwgMC4wMDUyOTEsIDAuMDA1MzIsIDAuMDA1MzQ2IiwgXAotICAgICAgICAgICIwLjAwNDI4MiwgMC4wMDQ3NzUsIDAuMDA0OTgzLCAwLjAwNTA2OSwgMC4wMDUxNTYsIDAuMDA1MjA1LCAwLjAwNTI1MiIsIFwKLSAgICAgICAgICAiMC4wMDQyNSwgMC4wMDQ2MzYsIDAuMDA0ODQ5LCAwLjAwNDk0NiwgMC4wMDUwNTEsIDAuMDA1MTEzLCAwLjAwNTE3NSIsIFwKLSAgICAgICAgICAiMC4wMDQzNDEsIDAuMDA0NTg2LCAwLjAwNDc3NywgMC4wMDQ4NzMsIDAuMDA0OTgyLCAwLjAwNTA0OSwgMC4wMDUxMTgiLCBcCi0gICAgICAgICAgIjAuMDA0NzUsIDAuMDA0NywgMC4wMDQ4MDEsIDAuMDA0ODY5LCAwLjAwNDk1NywgMC4wMDUwMjEsIDAuMDA1MDgzIiwgXAotICAgICAgICAgICIwLjAwNTMyMiwgMC4wMDQ5NjQsIDAuMDA0OTQ0LCAwLjAwNDk2OCwgMC4wMDUwMTgsIDAuMDA1MDYsIDAuMDA1MTA4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjg1NjgsIDAuMDI4NjA0LCAwLjAyODYwOCwgMC4wMjg2MDgsIDAuMDI4NjA2LCAwLjAyODYxLCAwLjAyODYwOSIsIFwKLSAgICAgICAgICAiMC4wMjg0MywgMC4wMjg0OTcsIDAuMDI4NTE2LCAwLjAyODUyLCAwLjAyODUyMSwgMC4wMjg1MjQsIDAuMDI4NTI4IiwgXAotICAgICAgICAgICIwLjAyODY5MiwgMC4wMjg1NjMsIDAuMDI4NTQ4LCAwLjAyODU0NCwgMC4wMjg1MzUsIDAuMDI4NTE2LCAwLjAyODUzNyIsIFwKLSAgICAgICAgICAiMC4wMjkxNDQsIDAuMDI4ODQxLCAwLjAyODcyNCwgMC4wMjg2ODksIDAuMDI4NjQ0LCAwLjAyODYyNCwgMC4wMjg2MDEiLCBcCi0gICAgICAgICAgIjAuMDI5NzU2LCAwLjAyOTA0OSwgMC4wMjkwNzQsIDAuMDI4OTU2LCAwLjAyODg2NiwgMC4wMjg4LCAwLjAyODc1NCIsIFwKLSAgICAgICAgICAiMC4wMzEwMDgsIDAuMDMwMTMyLCAwLjAyOTYyMSwgMC4wMjkzNDgsIDAuMDI5MTkyLCAwLjAyOTEwMywgMC4wMjkwMSIsIFwKLSAgICAgICAgICAiMC4wMzIzNjMsIDAuMDMwNDA2LCAwLjAzMDA3NSwgMC4wMjk4MTcsIDAuMDI5NTIzLCAwLjAyOTM2NCwgMC4wMjkyMTMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNTEwOSwgMC4wMDUzNTgsIDAuMDA1NCwgMC4wMDU0MTMsIDAuMDA1NDI1LCAwLjAwNTQzMiwgMC4wMDU0MzciLCBcCi0gICAgICAgICAgIjAuMDA0NDk3LCAwLjAwNTAzNSwgMC4wMDUxOTEsIDAuMDA1MjQ3LCAwLjAwNTMwMSwgMC4wMDUzMjksIDAuMDA1MzU2IiwgXAotICAgICAgICAgICIwLjAwNDI5NiwgMC4wMDQ3ODgsIDAuMDA0OTk0LCAwLjAwNTA4LCAwLjAwNTE2NywgMC4wMDUyMTYsIDAuMDA1MjY0IiwgXAotICAgICAgICAgICIwLjAwNDMxMSwgMC4wMDQ2NTgsIDAuMDA0ODcxLCAwLjAwNDk2NCwgMC4wMDUwNjgsIDAuMDA1MTI5LCAwLjAwNTE4OSIsIFwKLSAgICAgICAgICAiMC4wMDQ0OCwgMC4wMDQ2NDQsIDAuMDA0ODE2LCAwLjAwNDkwNiwgMC4wMDUwMTQsIDAuMDA1MDcyLCAwLjAwNTEzOCIsIFwKLSAgICAgICAgICAiMC4wMDUwNTEsIDAuMDA0ODIsIDAuMDA0ODgsIDAuMDA0OTM0LCAwLjAwNTAwOCwgMC4wMDUwNjEsIDAuMDA1MTE5IiwgXAotICAgICAgICAgICIwLjAwNTc2MywgMC4wMDUxMzQsIDAuMDA1MDYsIDAuMDA1MDY3LCAwLjAwNTA5OCwgMC4wMDUxMjYsIDAuMDA1MTYyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjMyOSwgMC4wMjMzNzIsIDAuMDIzMzgzLCAwLjAyMzM4NywgMC4wMjMzODksIDAuMDIzMzk2LCAwLjAyMzM5NCIsIFwKLSAgICAgICAgICAiMC4wMjMyNTgsIDAuMDIzNDAyLCAwLjAyMzQzNCwgMC4wMjM0NDYsIDAuMDIzNDU0LCAwLjAyMzQ2LCAwLjAyMzQ2NCIsIFwKLSAgICAgICAgICAiMC4wMjM1NDQsIDAuMDIzNDczLCAwLjAyMzQ4MiwgMC4wMjM0ODUsIDAuMDIzNDg3LCAwLjAyMzQ4LCAwLjAyMzQ5MyIsIFwKLSAgICAgICAgICAiMC4wMjM5NjMsIDAuMDIzNzc1LCAwLjAyMzY3MywgMC4wMjM2NDUsIDAuMDIzNjE0LCAwLjAyMzYwNSwgMC4wMjM1NzYiLCBcCi0gICAgICAgICAgIjAuMDI0NjI0LCAwLjAyMzk0OSwgMC4wMjM4MTQsIDAuMDI0MDQ0LCAwLjAyMzkyMiwgMC4wMjM4NTksIDAuMDIzNzk2IiwgXAotICAgICAgICAgICIwLjAyNjAwMSwgMC4wMjQ3NiwgMC4wMjQzMjksIDAuMDI0MTgxLCAwLjAyNDAxOCwgMC4wMjM5MzcsIDAuMDIzODY1IiwgXAotICAgICAgICAgICIwLjAyNzEwOCwgMC4wMjUxNzIsIDAuMDI0NzIsIDAuMDI0NTE0LCAwLjAyNDY3MywgMC4wMjQ0NzUsIDAuMDI0MzExIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDUxMTIsIDAuMDA1MzY0LCAwLjAwNTQwNiwgMC4wMDU0MiwgMC4wMDU0MzIsIDAuMDA1NDM4LCAwLjAwNTQ0NCIsIFwKLSAgICAgICAgICAiMC4wMDQ1MDgsIDAuMDA1MDQyLCAwLjAwNTE5OCwgMC4wMDUyNTQsIDAuMDA1MzA3LCAwLjAwNTMzNiwgMC4wMDUzNjMiLCBcCi0gICAgICAgICAgIjAuMDA0Mzk3LCAwLjAwNDgxOCwgMC4wMDUwMTcsIDAuMDA1MDk5LCAwLjAwNTE4MiwgMC4wMDUyMywgMC4wMDUyNzYiLCBcCi0gICAgICAgICAgIjAuMDA0NTg0LCAwLjAwNDc2NCwgMC4wMDQ5MTgsIDAuMDA1MDE4LCAwLjAwNTEwOSwgMC4wMDUxNjQsIDAuMDA1MjE5IiwgXAotICAgICAgICAgICIwLjAwNDk4NiwgMC4wMDQ4NTEsIDAuMDA0OTUsIDAuMDA1MDEyLCAwLjAwNTA5MSwgMC4wMDUxNDEsIDAuMDA1MTk0IiwgXAotICAgICAgICAgICIwLjAwNTg2NSwgMC4wMDUyMDUsIDAuMDA1MTI1LCAwLjAwNTEzNCwgMC4wMDUxNiwgMC4wMDUxODcsIDAuMDA1MjIxIiwgXAotICAgICAgICAgICIwLjAwNjg0MiwgMC4wMDU2NTMsIDAuMDA1NDEzLCAwLjAwNTM0NywgMC4wMDUzMTIsIDAuMDA1MzAzLCAwLjAwNTMwNSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkQiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE3ODQsIDAuMDE4MDU4LCAwLjAxODA5NCwgMC4wMTgxLCAwLjAxODEwNywgMC4wMTgxMTEsIDAuMDE4MTE1IiwgXAotICAgICAgICAgICIwLjAxNzg5MiwgMC4wMTgxMzksIDAuMDE4MTkyLCAwLjAxODIxLCAwLjAxODIyNiwgMC4wMTgyMzcsIDAuMDE4MjQzIiwgXAotICAgICAgICAgICIwLjAxODE4NiwgMC4wMTgxOTIsIDAuMDE4MjM2LCAwLjAxODI1MywgMC4wMTgyNjgsIDAuMDE4MjY4LCAwLjAxODI4NSIsIFwKLSAgICAgICAgICAiMC4wMTg2MTYsIDAuMDE4NDQ3LCAwLjAxODM5MiwgMC4wMTgzODQsIDAuMDE4MzcyLCAwLjAxODM0OCwgMC4wMTgzNiIsIFwKLSAgICAgICAgICAiMC4wMTkzNTksIDAuMDE4NjQyLCAwLjAxODcwOSwgMC4wMTg2MjMsIDAuMDE4NTY0LCAwLjAxODUyNywgMC4wMTg0OTMiLCBcCi0gICAgICAgICAgIjAuMDIwNjA3LCAwLjAxOTMyNCwgMC4wMTk0NDgsIDAuMDE5MjU5LCAwLjAxOTA2MywgMC4wMTg5NDksIDAuMDE4ODU5IiwgXAotICAgICAgICAgICIwLjAyMTk0NywgMC4wMjAzMDUsIDAuMDE5NjEsIDAuMDE5MzU0LCAwLjAxOTE0MiwgMC4wMTkwMTcsIDAuMDE4ODk2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDUwNTYsIDAuMDA1MzQ5LCAwLjAwNTM5OSwgMC4wMDU0MTUsIDAuMDA1NDMsIDAuMDA1NDM3LCAwLjAwNTQ0MyIsIFwKLSAgICAgICAgICAiMC4wMDQ2OTUsIDAuMDA1MDgyLCAwLjAwNTIxOSwgMC4wMDUyNywgMC4wMDUzMTksIDAuMDA1MzQ2LCAwLjAwNTM3MSIsIFwKLSAgICAgICAgICAiMC4wMDQ5ODgsIDAuMDA1MDMsIDAuMDA1MTM5LCAwLjAwNTE5NCwgMC4wMDUyNTIsIDAuMDA1Mjg3LCAwLjAwNTMyMSIsIFwKLSAgICAgICAgICAiMC4wMDU2MTQsIDAuMDA1MjIxLCAwLjAwNTIxOSwgMC4wMDUyMzUsIDAuMDA1MjcxLCAwLjAwNTI5NiwgMC4wMDUzMjQiLCBcCi0gICAgICAgICAgIjAuMDA2NTIyLCAwLjAwNTU5OCwgMC4wMDU0MzYsIDAuMDA1Mzk5LCAwLjAwNTM4NCwgMC4wMDUzODMsIDAuMDA1Mzg4IiwgXAotICAgICAgICAgICIwLjAwNzk0OSwgMC4wMDY0MDksIDAuMDA1OTc5LCAwLjAwNTgzMSwgMC4wMDU2OTYsIDAuMDA1NjMzLCAwLjAwNTU4MSIsIFwKLSAgICAgICAgICAiMC4wMDkxMjIsIDAuMDA2OTYzLCAwLjAwNjQxOSwgMC4wMDYxODksIDAuMDA1OTcxLCAwLjAwNTg1OCwgMC4wMDU3NDMiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IE5PUjNYNiAqCi0gKiAtLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKE5PUjNYNikgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAxLjM2MzA5OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDU1MDI0ODsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDU0NzUyMzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDU1MDI0ODsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDI3MDksIDAuMDAyODg3LCAwLjAwMjkzNSwgMC4wMDI5NTMsIDAuMDAzMDE2LCAwLjAwMzA0MiwgMC4wMDMwNTUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDU3MjIsIDAuMDA1NzI1LCAwLjAwNTcyNiwgMC4wMDU3MjcsIDAuMDA1NzI3LCAwLjAwNTcyOCwgMC4wMDU3MjgiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwNTU3NzE4OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwNTU1NTU3OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwNTU3NzE4OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjY0NCwgMC4wMDI5NDksIDAuMDAzMDE2LCAwLjAwMzAzOSwgMC4wMDMwMjMsIDAuMDAzMDMyLCAwLjAwMzAzOSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzIzNCwgMC4wMDMyMzYsIDAuMDAzMjM2LCAwLjAwMzIzNiwgMC4wMDMyMzcsIDAuMDAzMjM3LCAwLjAwMzIzNyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQykgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDA1MjY5NTE7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDA1MjY5NTE7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDA1MjY3ODQ7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNzUyLCAwLjAwMDc1MiwgMC4wMDA3NTIsIDAuMDAwNzUzLCAwLjAwMDc1MywgMC4wMDA3NTMsIDAuMDAwNzUyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyNDI0LCAwLjAwMjQyNCwgMC4wMDI0MjQsIDAuMDAyNDIzLCAwLjAwMjQyMywgMC4wMDI0MjMsIDAuMDAyNDIyIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuNzY2NzAxOwotICAgIGZ1bmN0aW9uIDogIighKChBK0IpK0MpKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzI0MDYsIDAuMTI5MTg4LCAwLjIyNTc4NiwgMC4yOTUwNTEsIDAuNDA1MTE2LCAwLjUwMjIxMSwgMC42Mzk3NjkiLCBcCi0gICAgICAgICAgIjAuMDM3NTgyLCAwLjEzNDY2OCwgMC4yMzEzNTQsIDAuMzAwNTg4LCAwLjQxMDkyNCwgMC41MDczODksIDAuNjQ1NDc3IiwgXAotICAgICAgICAgICIwLjA0MjU0LCAwLjEzOTk0NywgMC4yMzY2NDIsIDAuMzA1NTU1LCAwLjQxNTk2NSwgMC41MTI1NzMsIDAuNjUwNjgyIiwgXAotICAgICAgICAgICIwLjA0NjMzMywgMC4xNDQ5LCAwLjI0MTc5NCwgMC4zMTA2NDcsIDAuNDIxMDcxLCAwLjUxNzcyNSwgMC42NTU1OTciLCBcCi0gICAgICAgICAgIjAuMDQ5NDYxLCAwLjE0OTk2MSwgMC4yNDY3MzIsIDAuMzE1NjY5LCAwLjQyNjAxOCwgMC41MjI2MywgMC42NjEwODciLCBcCi0gICAgICAgICAgIjAuMDUzNDQ4LCAwLjE1ODIwMSwgMC4yNTQ3NSwgMC4zMjM3OTcsIDAuNDM0MjQ0LCAwLjUzMDg4LCAwLjY2ODcwOCIsIFwKLSAgICAgICAgICAiMC4wNTY0NTYsIDAuMTY1MzY4LCAwLjI2MTg3OSwgMC4zMzEwMTcsIDAuNDQxNDczLCAwLjUzODAyMiwgMC42NzU3OTEiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTI1MjgsIDAuMjU2OTc4LCAwLjQ2MDg3NywgMC42MDcwMjksIDAuODQwNTk4LCAxLjA0NTI4LCAxLjMzNjUxIiwgXAotICAgICAgICAgICIwLjA1MzIxNiwgMC4yNTY3MTEsIDAuNDYwOTgxLCAwLjYwNzA5OCwgMC44NDA3NjMsIDEuMDQ0NjUsIDEuMzM2ODEiLCBcCi0gICAgICAgICAgIjAuMDU2MDQ2LCAwLjI1NzAxOSwgMC40NjExMDcsIDAuNjA3MDg2LCAwLjg0MTU1OSwgMS4wNDYyNiwgMS4zMzY3OSIsIFwKLSAgICAgICAgICAiMC4wNjA0NTQsIDAuMjU4NTE3LCAwLjQ2MTExNSwgMC42MDc2MTYsIDAuODQwNTc2LCAxLjA0NDU0LCAxLjMzODQ2IiwgXAotICAgICAgICAgICIwLjA2NTIxNywgMC4yNjA1NDksIDAuNDYyNzY4LCAwLjYwNzgwNCwgMC44NDEzNjgsIDEuMDQ2MSwgMS4zMzYyOSIsIFwKLSAgICAgICAgICAiMC4wNzI2ODIsIDAuMjY1MzI4LCAwLjQ2NTE5NiwgMC42MDkwOTYsIDAuODQxOTI0LCAxLjA0NDk2LCAxLjMzNjY5IiwgXAotICAgICAgICAgICIwLjA3OTI0MywgMC4yNzAzMzgsIDAuNDY4MjIyLCAwLjYxMTYzNywgMC44NDM0NDQsIDEuMDQ2NTQsIDEuMzM2NzgiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTQ4MjgsIDAuMDUzMTg3LCAwLjA5MDc5NywgMC4xMTc1NTgsIDAuMTYwMzU0LCAwLjE5NzgwOSwgMC4yNTEyNTgiLCBcCi0gICAgICAgICAgIjAuMDIzNCwgMC4wNjE2NTMsIDAuMDk5MjMxLCAwLjEyNTk5OSwgMC4xNjg4MzcsIDAuMjA2MjY3LCAwLjI1OTc2OSIsIFwKLSAgICAgICAgICAiMC4wMzE1ODcsIDAuMDcyMzksIDAuMTA5NzYyLCAwLjEzNjU0NSwgMC4xNzkzMjcsIDAuMjE2NzU4LCAwLjI3MDIyNSIsIFwKLSAgICAgICAgICAiMC4wMzc0NzQsIDAuMDgzMjgxLCAwLjEyMDgwNCwgMC4xNDc1MTMsIDAuMTkwMzIxLCAwLjIyNzczMiwgMC4yODEyMSIsIFwKLSAgICAgICAgICAiMC4wNDIxMDQsIDAuMDkzNzgsIDAuMTMxMzUsIDAuMTU3NzI3LCAwLjIwMDQsIDAuMjM3NzY5LCAwLjI5MTIzOCIsIFwKLSAgICAgICAgICAiMC4wNDg2NDYsIDAuMTA5MDg0LCAwLjE0OTAyMywgMC4xNzU2OTIsIDAuMjE4MzM2LCAwLjI1NTU4OCwgMC4zMDg5ODUiLCBcCi0gICAgICAgICAgIjAuMDUzMzgyLCAwLjExOTg3OCwgMC4xNjM0NDEsIDAuMTkwMzc3LCAwLjIzMjg4MiwgMC4yNzAxODMsIDAuMzIzMzg0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDIyOTQ0LCAwLjA5OTg5NiwgMC4xNzY5MzMsIDAuMjMxOTk0LCAwLjMyMDA1MSwgMC4zOTcxNTMsIDAuNTA3MTk0IiwgXAotICAgICAgICAgICIwLjAyNzQ3MSwgMC4xMDAyNCwgMC4xNzY4OSwgMC4yMzE5NzMsIDAuMzIwMDM0LCAwLjM5NzEyOSwgMC41MDcyNTIiLCBcCi0gICAgICAgICAgIjAuMDM2NTcsIDAuMTA0NzAxLCAwLjE3ODQ0MywgMC4yMzI0MTgsIDAuMzIwMDYzLCAwLjM5NzE5NiwgMC41MDcyNTUiLCBcCi0gICAgICAgICAgIjAuMDQ0ODc0LCAwLjExMTU1MSwgMC4xODI3NTUsIDAuMjM1MzU2LCAwLjMyMTE2NSwgMC4zOTc0MjYsIDAuNTA3MzY2IiwgXAotICAgICAgICAgICIwLjA1MjU2NCwgMC4xMjAwNDEsIDAuMTg5MDc5LCAwLjI0MDU5NiwgMC4zMjQ2MDEsIDAuMzk5NDk0LCAwLjUwNzkyOSIsIFwKLSAgICAgICAgICAiMC4wNjI3MTUsIDAuMTMzODQ5LCAwLjIwMDY4MSwgMC4yNTAyNzgsIDAuMzMyMDgzLCAwLjQwNTE4NiwgMC41MTE2NDEiLCBcCi0gICAgICAgICAgIjAuMDcxMzI3LCAwLjE0NzQ5NywgMC4yMTI5NTEsIDAuMjYxMzcyLCAwLjM0MTE4NCwgMC40MTI5NjMsIDAuNTE3MzgyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDMwMTYsIDAuMTI2OTg5LCAwLjIyMzc5NywgMC4yOTI3OCwgMC40MDI5NjQsIDAuNDk5ODA5LCAwLjYzNzQ0IiwgXAotICAgICAgICAgICIwLjAzNjEyNiwgMC4xMzMxMzksIDAuMjI5ODExLCAwLjI5OTA3NSwgMC40MDkxOTUsIDAuNTA1OTMzLCAwLjY0Mzg4NiIsIFwKLSAgICAgICAgICAiMC4wNDMwODcsIDAuMTQwNTk2LCAwLjIzNzUyNCwgMC4zMDYxNDIsIDAuNDE2OTk4LCAwLjUxMzg2OCwgMC42NTEyMDkiLCBcCi0gICAgICAgICAgIjAuMDQ4NTkzLCAwLjE0ODA4OCwgMC4yNDQ4MDksIDAuMzEzODI2LCAwLjQyNDM0LCAwLjUyMTM3NCwgMC42NTg2NSIsIFwKLSAgICAgICAgICAiMC4wNTMyMiwgMC4xNTU2OCwgMC4yNTI1NTYsIDAuMzIxODExLCAwLjQzMTkyMSwgMC41Mjg2MywgMC42NjcwMzciLCBcCi0gICAgICAgICAgIjAuMDU5MjkxLCAwLjE2NzkzMiwgMC4yNjQ0NDEsIDAuMzMzNDg2LCAwLjQ0MzkyOSwgMC41NDA2NDQsIDAuNjc5MzA4IiwgXAotICAgICAgICAgICIwLjA2Mzg4NSwgMC4xNzg5MjMsIDAuMjc1NzcxLCAwLjM0NDM2MywgMC40NTQ5NDEsIDAuNTUxODQ0LCAwLjY4OTQ1OCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1MjU2OSwgMC4yNTY3MTQsIDAuNDYxMTcxLCAwLjYwNzAyNywgMC44NDA2NjQsIDEuMDQ0NzUsIDEuMzM2NDciLCBcCi0gICAgICAgICAgIjAuMDUzODYzLCAwLjI1Njc2NCwgMC40NjE2OTIsIDAuNjA3MTE5LCAwLjg0MDU4NSwgMS4wNDQ2MywgMS4zMzY5MSIsIFwKLSAgICAgICAgICAiMC4wNTg3OTIsIDAuMjU3Mzk0LCAwLjQ2MTAxMSwgMC42MDY4MjIsIDAuODQwMjg5LCAxLjA0NDk5LCAxLjMzODM3IiwgXAotICAgICAgICAgICIwLjA2NTQ4MywgMC4yNTkyODIsIDAuNDYxMTk3LCAwLjYwNzc1NiwgMC44NDA1MzksIDEuMDQ1LCAxLjMzNzY0IiwgXAotICAgICAgICAgICIwLjA3MTkxOCwgMC4yNjI0ODksIDAuNDYyODQ1LCAwLjYwNzMxNiwgMC44NDA4NzcsIDEuMDQ2MDcsIDEuMzM2MyIsIFwKLSAgICAgICAgICAiMC4wODE0MDMsIDAuMjY5NDE0LCAwLjQ2NjEzOCwgMC42MDkyOTMsIDAuODQxNjI0LCAxLjA0NTgyLCAxLjMzNjciLCBcCi0gICAgICAgICAgIjAuMDg4OTU3LCAwLjI3Njk5OCwgMC40NzE0NjYsIDAuNjEyNzksIDAuODQzNDIyLCAxLjA0NTM1LCAxLjMzNjU5Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEzNTA4LCAwLjA1MDQwMSwgMC4wODcwNDYsIDAuMTEzMTg0LCAwLjE1NDk5NSwgMC4xOTE1NjksIDAuMjQzODU2IiwgXAotICAgICAgICAgICIwLjAyMTc5NCwgMC4wNTg5MTYsIDAuMDk1NTQ4LCAwLjEyMTY3MSwgMC4xNjM0OTUsIDAuMjAwMDg5LCAwLjI1MjM5MSIsIFwKLSAgICAgICAgICAiMC4wMjkyMTMsIDAuMDY5NTksIDAuMTA2MTE1LCAwLjEzMjQxMSwgMC4xNzQyNDEsIDAuMjEwODMzLCAwLjI2MzA1MiIsIFwKLSAgICAgICAgICAiMC4wMzQ0MSwgMC4wODAzMjYsIDAuMTE2ODg1LCAwLjE0MjU1LCAwLjE4NDM0NSwgMC4yMjA5OSwgMC4yNzMyNDMiLCBcCi0gICAgICAgICAgIjAuMDM4NjI5LCAwLjA5MDg0NSwgMC4xMjc2NjksIDAuMTUzNzQyLCAwLjE5NTQ1NiwgMC4yMzE1MzgsIDAuMjgzNzgiLCBcCi0gICAgICAgICAgIjAuMDQzOTkyLCAwLjEwNTE3OSwgMC4xNDU0NywgMC4xNzEyNzIsIDAuMjEzMDM3LCAwLjI0OTQ4MiwgMC4zMDE3ODQiLCBcCi0gICAgICAgICAgIjAuMDQ3NTU5LCAwLjExNTk0OCwgMC4xNjAzNDUsIDAuMTg1ODM2LCAwLjIyNzI0NywgMC4yNjM3NDQsIDAuMzE1NzIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTk5NTgsIDAuMDk1MTI3LCAwLjE3MDQ4NCwgMC4yMjQyMDIsIDAuMzEwMjM3LCAwLjM4NTQwNiwgMC40OTMwMDIiLCBcCi0gICAgICAgICAgIjAuMDI0OTI3LCAwLjA5NTYyNSwgMC4xNzA0MjYsIDAuMjI0MjIyLCAwLjMxMDE3MiwgMC4zODU0MzYsIDAuNDkyOTM4IiwgXAotICAgICAgICAgICIwLjAzMzk0MywgMC4xMDA0MjcsIDAuMTcyMDkxLCAwLjIyNDcwMSwgMC4zMTAxNzIsIDAuMzg1NjkzLCAwLjQ5Mjk5OSIsIFwKLSAgICAgICAgICAiMC4wNDE4NzksIDAuMTA3NDYsIDAuMTc2NzQ3LCAwLjIyODA4MywgMC4zMTE1ODYsIDAuMzg1NzE0LCAwLjQ5MzEwNiIsIFwKLSAgICAgICAgICAiMC4wNDkwMjQsIDAuMTE1OTc2LCAwLjE4MzA0NywgMC4yMzI5NjYsIDAuMzE0OTU1LCAwLjM4ODE4MywgMC40OTM3MjUiLCBcCi0gICAgICAgICAgIjAuMDU5MzU2LCAwLjEzMDYzMywgMC4xOTQ4ODgsIDAuMjQyOTk4LCAwLjMyMjcwNSwgMC4zOTM5NzUsIDAuNDk3ODMxIiwgXAotICAgICAgICAgICIwLjA2NzkxMSwgMC4xNDM2ODIsIDAuMjA1Nzc3LCAwLjI1NDcwNiwgMC4zMzIxOTgsIDAuNDAyMTA5LCAwLjUwMzc2NyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyNTIxLCAwLjEyMjE2MiwgMC4yMTg2ODUsIDAuMjg4MDYxLCAwLjM5ODA1MSwgMC40OTQ5ODMsIDAuNjMyNDI0IiwgXAotICAgICAgICAgICIwLjAzMjE0NywgMC4xMjkxMjUsIDAuMjI1OTYsIDAuMjk0NzYsIDAuNDA1MDgsIDAuNTAxOTg5LCAwLjYzOTc1NSIsIFwKLSAgICAgICAgICAiMC4wNDEyODQsIDAuMTM4MDM5LCAwLjIzNDY2NywgMC4zMDM2MjMsIDAuNDE0Mzc0LCAwLjUxMDU3MywgMC42NDc4NTUiLCBcCi0gICAgICAgICAgIjAuMDQ4MjE3LCAwLjE0NzM1MiwgMC4yNDM5NDUsIDAuMzEyODM2LCAwLjQyMzE2MiwgMC41MTk4MTksIDAuNjU3NzY0IiwgXAotICAgICAgICAgICIwLjA1Mzg5NiwgMC4xNTY0NjIsIDAuMjUyODQ0LCAwLjMyMTY4NywgMC40MzE5NjIsIDAuNTI4NDMyLCAwLjY2NjQ5MiIsIFwKLSAgICAgICAgICAiMC4wNjE2MDYsIDAuMTcxNTgzLCAwLjI2NzY1MiwgMC4zMzY0NjQsIDAuNDQ2ODg2LCAwLjU0MjkxNSwgMC42ODA3NTQiLCBcCi0gICAgICAgICAgIjAuMDY3MjU2LCAwLjE4NTAzOCwgMC4yODA2MjcsIDAuMzQ5MzQ4LCAwLjQ1OTQ5LCAwLjU1NTY4MywgMC42OTM1MDkiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTIyMTgsIDAuMjU2NzE1LCAwLjQ2MTU5NiwgMC42MDcxOSwgMC44NDA1NzgsIDEuMDQ0NzMsIDEuMzM2NzIiLCBcCi0gICAgICAgICAgIjAuMDU0NzQ2LCAwLjI1NzA5LCAwLjQ2MTE1NywgMC42MDc3NTQsIDAuODQwOTYzLCAxLjA0NDU4LCAxLjMzNjg4IiwgXAotICAgICAgICAgICIwLjA2MjIxOSwgMC4yNTczMDMsIDAuNDYxNTU0LCAwLjYwNjk5NywgMC44NDA0MTIsIDEuMDQ2MDgsIDEuMzM2MSIsIFwKLSAgICAgICAgICAiMC4wNzAzMzYsIDAuMjYwMTI0LCAwLjQ2MTEwMiwgMC42MDY5NDksIDAuODQxNDI4LCAxLjA0NjI2LCAxLjMzODYxIiwgXAotICAgICAgICAgICIwLjA3Nzc4NCwgMC4yNjQ4NTQsIDAuNDYzMTg5LCAwLjYwNzc2NCwgMC44NDE0NDMsIDEuMDQ1OTUsIDEuMzM2MyIsIFwKLSAgICAgICAgICAiMC4wODcxMjMsIDAuMjc0NjkyLCAwLjQ2ODUwNCwgMC42MTA4NDcsIDAuODQwNTk2LCAxLjA0NTc3LCAxLjMzODA0IiwgXAotICAgICAgICAgICIwLjA5NTA4MSwgMC4yODQ3NDMsIDAuNDc0ODg1LCAwLjYxNDc4MiwgMC44NDM5MywgMS4wNDYwNSwgMS4zMzgxNCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMTgwMiwgMC4wNDg1MDQsIDAuMDg1MDg5LCAwLjExMTI5MSwgMC4xNTMwNTQsIDAuMTg5NjEzLCAwLjI0MTkzMyIsIFwKLSAgICAgICAgICAiMC4wMTk3OTcsIDAuMDU3MDgsIDAuMDkzNjY1LCAwLjExOTgzLCAwLjE2MTY0OCwgMC4xOTgxODksIDAuMjUwNDMzIiwgXAotICAgICAgICAgICIwLjAyNjI1LCAwLjA2Nzg5OCwgMC4xMDQ0NTEsIDAuMTMwNjA0LCAwLjE3MTY0NSwgMC4yMDg5MDIsIDAuMjYxMDgyIiwgXAotICAgICAgICAgICIwLjAzMDcwNywgMC4wNzg1MzQsIDAuMTE0OTM2LCAwLjE0MTI1MiwgMC4xODI3NjIsIDAuMjE5Mjk1LCAwLjI3MTU4NSIsIFwKLSAgICAgICAgICAiMC4wMzQyOCwgMC4wODg4MiwgMC4xMjU3ODQsIDAuMTUyMTkzLCAwLjE5MzkxNCwgMC4yMzA1MzEsIDAuMjgyNzc1IiwgXAotICAgICAgICAgICIwLjAzODY1NiwgMC4xMDI5MzYsIDAuMTQyOTY4LCAwLjE2OTEzLCAwLjIxMDgzMiwgMC4yNDcyMTUsIDAuMjk5NDc4IiwgXAotICAgICAgICAgICIwLjA0MTgxLCAwLjExMzMzLCAwLjE1NzM1NSwgMC4xODQxMSwgMC4yMjU2NjYsIDAuMjYyMTc2LCAwLjMxNDE0MyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxNzYzOCwgMC4wOTI4NzIsIDAuMTY4NDc4LCAwLjIyMTk5OCwgMC4zMDgwMjIsIDAuMzgzOTI2LCAwLjQ5MTA5NSIsIFwKLSAgICAgICAgICAiMC4wMjMwMzIsIDAuMDkzNTU5LCAwLjE2ODQ2LCAwLjIyMTk0MywgMC4zMDc5NzMsIDAuMzg0MDA1LCAwLjQ5MTU1NCIsIFwKLSAgICAgICAgICAiMC4wMzIwNjksIDAuMDk4MTgyLCAwLjE3MDE0NSwgMC4yMjI4NjEsIDAuMzA3Nzg2LCAwLjM4MzI0MiwgMC40OTE3MTkiLCBcCi0gICAgICAgICAgIjAuMDM5ODU5LCAwLjEwNTU3NSwgMC4xNzQ5NjIsIDAuMjI2MDk2LCAwLjMwOTUwMywgMC4zODQzMDEsIDAuNDkxNiIsIFwKLSAgICAgICAgICAiMC4wNDY2NzEsIDAuMTEzOTUsIDAuMTgxMDAyLCAwLjIzMTAwNCwgMC4zMTMxOTUsIDAuMzg2MDA5LCAwLjQ5MTQ1NiIsIFwKLSAgICAgICAgICAiMC4wNTcxOTQsIDAuMTI4MzUzLCAwLjE5MzQxNCwgMC4yNDEzMDMsIDAuMzIxMzQ4LCAwLjM5MjM0NCwgMC40OTU1MTIiLCBcCi0gICAgICAgICAgIjAuMDY1MDgsIDAuMTQyMDcsIDAuMjA1MTkzLCAwLjI1MjIzOCwgMC4zMjk5NzUsIDAuNDAwMzc2LCAwLjUwMTY5OSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE4NTIxLCAwLjAxODY1MiwgMC4wMTg2NjksIDAuMDE4Njc0LCAwLjAxODY3OSwgMC4wMTg2ODEsIDAuMDE4NjgzIiwgXAotICAgICAgICAgICIwLjAxODI0MywgMC4wMTg1MTksIDAuMDE4NTg4LCAwLjAxODYwNiwgMC4wMTg2MzUsIDAuMDE4NjQ1LCAwLjAxODY1MiIsIFwKLSAgICAgICAgICAiMC4wMTgxOTEsIDAuMDE4NDI2LCAwLjAxODUxOSwgMC4wMTg1NTMsIDAuMDE4NTc0LCAwLjAxODYwNSwgMC4wMTg2MzUiLCBcCi0gICAgICAgICAgIjAuMDE4Mjc5LCAwLjAxODQwNSwgMC4wMTg0ODQsIDAuMDE4NTIxLCAwLjAxODU2MiwgMC4wMTg1ODMsIDAuMDE4NjAyIiwgXAotICAgICAgICAgICIwLjAxODQ4NCwgMC4wMTg0NDQsIDAuMDE4NSwgMC4wMTg1MywgMC4wMTg1NjIsIDAuMDE4NTkxLCAwLjAxODU5NyIsIFwKLSAgICAgICAgICAiMC4wMTkwMzgsIDAuMDE4NjM3LCAwLjAxODYxNSwgMC4wMTg2MTIsIDAuMDE4NjIsIDAuMDE4NjI1LCAwLjAxODYzMyIsIFwKLSAgICAgICAgICAiMC4wMTk3MTYsIDAuMDE4OTE5LCAwLjAxODc5MSwgMC4wMTg3NiwgMC4wMTg3MzUsIDAuMDE4NzE5LCAwLjAxODcwNSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0MjA3LCAwLjAwNDIyMSwgMC4wMDQyMjEsIDAuMDA0MjIzLCAwLjAwNDIyNCwgMC4wMDQyMjQsIDAuMDA0MjIyIiwgXAotICAgICAgICAgICIwLjAwNDAyOCwgMC4wMDQwNjYsIDAuMDA0MDY4LCAwLjAwNDA3LCAwLjAwNDA2OCwgMC4wMDQwNzEsIDAuMDA0MDcxIiwgXAotICAgICAgICAgICIwLjAwNDI1NiwgMC4wMDQxODIsIDAuMDA0MTA5LCAwLjAwNDA4OSwgMC4wMDQwODIsIDAuMDA0MDc0LCAwLjAwNDA2OCIsIFwKLSAgICAgICAgICAiMC4wMDQ3NjUsIDAuMDA0NDExLCAwLjAwNDI0NCwgMC4wMDQyMDcsIDAuMDA0MTY4LCAwLjAwNDE0NiwgMC4wMDQxMjciLCBcCi0gICAgICAgICAgIjAuMDA1NTA5LCAwLjAwNDY0NywgMC4wMDQ0MjEsIDAuMDA0NDIsIDAuMDA0MzI3LCAwLjAwNDI3NywgMC4wMDQyMzIiLCBcCi0gICAgICAgICAgIjAuMDA2NTk0LCAwLjAwNTIxOSwgMC4wMDUwMzIsIDAuMDA0ODQxLCAwLjAwNDY2NCwgMC4wMDQ1NjMsIDAuMDA0NDY3IiwgXAotICAgICAgICAgICIwLjAwNzczMywgMC4wMDU2NDEsIDAuMDA1NDI2LCAwLjAwNTE1OCwgMC4wMDQ4OTgsIDAuMDA0NzUyLCAwLjAwNDYwOSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE1ODU4LCAwLjAxNTk4NCwgMC4wMTU5OTgsIDAuMDE2MDA4LCAwLjAxNjAxMSwgMC4wMTYwMTQsIDAuMDE2MDE3IiwgXAotICAgICAgICAgICIwLjAxNTU5NSwgMC4wMTU4NiwgMC4wMTU5MjUsIDAuMDE1OTQ2LCAwLjAxNTk2MiwgMC4wMTU5NzcsIDAuMDE1OTkyIiwgXAotICAgICAgICAgICIwLjAxNTU5NiwgMC4wMTU3ODMsIDAuMDE1ODYzLCAwLjAxNTg5NSwgMC4wMTU5MjMsIDAuMDE1OTQ4LCAwLjAxNTk1OSIsIFwKLSAgICAgICAgICAiMC4wMTU3ODcsIDAuMDE1NzkyLCAwLjAxNTg1NCwgMC4wMTU4ODIsIDAuMDE1OTE1LCAwLjAxNTkyOSwgMC4wMTU5NDQiLCBcCi0gICAgICAgICAgIjAuMDE2MDk3LCAwLjAxNTg3OSwgMC4wMTU4OTQsIDAuMDE1OTEsIDAuMDE1OTI5LCAwLjAxNTk0LCAwLjAxNTk1NSIsIFwKLSAgICAgICAgICAiMC4wMTY4MzMsIDAuMDE2MTQ1LCAwLjAxNjA1LCAwLjAxNjAyOCwgMC4wMTYwMTYsIDAuMDE2MDA2LCAwLjAxNjAwNSIsIFwKLSAgICAgICAgICAiMC4wMTc2MjYsIDAuMDE2NDgzLCAwLjAxNjI4MSwgMC4wMTYyMSwgMC4wMTYxNDgsIDAuMDE2MTE4LCAwLjAxNjA4OCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyMjIxLCAwLjAwMjI4NCwgMC4wMDIyOTIsIDAuMDAyMjk1LCAwLjAwMjI5NywgMC4wMDIyOTgsIDAuMDAyMjk5IiwgXAotICAgICAgICAgICIwLjAwMjA1OSwgMC4wMDIyMTIsIDAuMDAyMjQ4LCAwLjAwMjI2LCAwLjAwMjI3MSwgMC4wMDIyNzcsIDAuMDAyMjgyIiwgXAotICAgICAgICAgICIwLjAwMjIyNiwgMC4wMDIyODMsIDAuMDAyMjg3LCAwLjAwMjMyLCAwLjAwMjMxNCwgMC4wMDIyODUsIDAuMDAyMjg5IiwgXAotICAgICAgICAgICIwLjAwMjczNCwgMC4wMDI0NTgsIDAuMDAyMzk4LCAwLjAwMjQ1OCwgMC4wMDI0MjUsIDAuMDAyNDA3LCAwLjAwMjM4NyIsIFwKLSAgICAgICAgICAiMC4wMDMzODIsIDAuMDAyNzQ0LCAwLjAwMjU3MywgMC4wMDI1MTcsIDAuMDAyNDY2LCAwLjAwMjUyMSwgMC4wMDI0ODEiLCBcCi0gICAgICAgICAgIjAuMDA0NTc3LCAwLjAwMzU0NCwgMC4wMDMxNjMsIDAuMDAzLCAwLjAwMjg1MSwgMC4wMDI3NjUsIDAuMDAyNjg0IiwgXAotICAgICAgICAgICIwLjAwNTcyOCwgMC4wMDM2ODUsIDAuMDAzMzY5LCAwLjAwMzQ0NCwgMC4wMDMxNzMsIDAuMDAzMDM4LCAwLjAwMjg5OSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEzMDUzLCAwLjAxMzI0MywgMC4wMTMyNzEsIDAuMDEzMjc5LCAwLjAxMzI4NSwgMC4wMTMyODgsIDAuMDEzMjkyIiwgXAotICAgICAgICAgICIwLjAxMjg2OCwgMC4wMTMxMDksIDAuMDEzMTgxLCAwLjAxMzIwNiwgMC4wMTMyMywgMC4wMTMyNDMsIDAuMDEzMjU1IiwgXAotICAgICAgICAgICIwLjAxMzI3NiwgMC4wMTMxMzksIDAuMDEzMTc5LCAwLjAxMzIsIDAuMDEzMjIxLCAwLjAxMzIyOSwgMC4wMTMyNDYiLCBcCi0gICAgICAgICAgIjAuMDEzNjY2LCAwLjAxMzI2NCwgMC4wMTMyMzMsIDAuMDEzMjM0LCAwLjAxMzI0MiwgMC4wMTMyNDQsIDAuMDEzMjU1IiwgXAotICAgICAgICAgICIwLjAxNDI5NywgMC4wMTM1NTMsIDAuMDEzNDAzLCAwLjAxMzM2NywgMC4wMTMzMzYsIDAuMDEzMzIsIDAuMDEzMzEzIiwgXAotICAgICAgICAgICIwLjAxNTQxNywgMC4wMTQwNzIsIDAuMDEzNzc1LCAwLjAxMzY2LCAwLjAxMzU1MywgMC4wMTM0OTksIDAuMDEzNDUyIiwgXAotICAgICAgICAgICIwLjAxNjQ3MiwgMC4wMTQ2NjgsIDAuMDE0MTg0LCAwLjAxMzk5OCwgMC4wMTM4MTUsIDAuMDEzNzA5LCAwLjAxMzYyOSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwMDQ4LCAwLjAwMDE3MSwgMC4wMDAxOTcsIDAuMDAwMjA1LCAwLjAwMDIxMiwgMC4wMDAyMTYsIDAuMDAwMjE5IiwgXAotICAgICAgICAgICIwLjAwMDE5NCwgMC4wMDAyLCAwLjAwMDI3NiwgMC4wMDAzMDIsIDAuMDAwMzI2LCAwLjAwMDMzOCwgMC4wMDAzNDkiLCBcCi0gICAgICAgICAgIjAuMDAwMDU0LCAwLjAwMDI0OCwgMC4wMDAzMTIsIDAuMDAwMzM2LCAwLjAwMDM1NiwgMC4wMDAzNTksIDAuMDAwMzcxIiwgXAotICAgICAgICAgICIwLjAwMDUwNiwgMC4wMDA0MTgsIDAuMDAwNDM4LCAwLjAwMDM3LCAwLjAwMDQyOSwgMC4wMDA0MjcsIDAuMDAwNDI4IiwgXAotICAgICAgICAgICIwLjAwMTEwMiwgMC4wMDA2NjgsIDAuMDAwNTU0LCAwLjAwMDU3NiwgMC4wMDA1NDYsIDAuMDAwNTI4LCAwLjAwMDUwOSIsIFwKLSAgICAgICAgICAiMC4wMDIzNDcsIDAuMDAxMDM2LCAwLjAwMTAzOCwgMC4wMDA4MTksIDAuMDAwNzMyLCAwLjAwMDY3NCwgMC4wMDA2MzQiLCBcCi0gICAgICAgICAgIjAuMDAzMzM0LCAwLjAwMTUxOSwgMC4wMDE0NDcsIDAuMDAxMjUxLCAwLjAwMTA1MywgMC4wMDA5NTksIDAuMDAwODU0Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IE5PUjRCQlgxICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChOT1I0QkJYMSkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjQyMzExNjsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQU4pICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY3OTA2NjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2NzkwNjY7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjc5MDYxOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDUzNCwgMC4wMDA1NDQsIDAuMDAwNjI1LCAwLjAwMDczNiwgMC4wMDA4NjEsIDAuMDAxMDg5LCAwLjAwMTI4NSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTg1OCwgMC4wMDE4NzEsIDAuMDAxOTQ4LCAwLjAwMjA1OSwgMC4wMDIxODksIDAuMDAyNDE1LCAwLjAwMjU5OSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQk4pICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDU4NjE2ODsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA1ODYxNjg7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNTg2MTM4OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDQzMywgMC4wMDA0NDEsIDAuMDAwNTI0LCAwLjAwMDYzNSwgMC4wMDA3NjIsIDAuMDAwOTk0LCAwLjAwMTE4MiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTk5NCwgMC4wMDIwMTEsIDAuMDAyMDk5LCAwLjAwMjIxNCwgMC4wMDIzNSwgMC4wMDI1NzcsIDAuMDAyNzYyIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihDKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA5NjE2NjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA5NTgzOTU7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwOTYxNjY7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMTcyLCAwLjAwMDE3MiwgMC4wMDAxNzIsIDAuMDAwMTcyLCAwLjAwMDE3MiwgMC4wMDAxNzIsIDAuMDAwMTcyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNDA0LCAwLjAwMDQwNCwgMC4wMDA0MDQsIDAuMDAwNDA0LCAwLjAwMDQwNCwgMC4wMDA0MDQsIDAuMDAwNDAzIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihEKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA5NTAzMzk7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwOTUwMzM5OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDk0OTk2MzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxMywgMC4wMDAxMywgMC4wMDAxMywgMC4wMDAxMywgMC4wMDAxMywgMC4wMDAxMywgMC4wMDAxMyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDI4MywgMC4wMDAyODMsIDAuMDAwMjgzLCAwLjAwMDI4MywgMC4wMDAyODMsIDAuMDAwMjgzLCAwLjAwMDI4MyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjA5MTQwNzsKLSAgICBmdW5jdGlvbiA6ICIoISgoKCghQU4pKyghQk4pKStDKStEKSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkFOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNDc4OSwgMC4yMTMwMTMsIDAuNTgwODc3LCAwLjkwNDk2NCwgMS4zMzYyOCwgMi4yMDE2NCwgMi43NDEiLCBcCi0gICAgICAgICAgIjAuMTU1NDg3LCAwLjIyMDMxOSwgMC41ODgzOTksIDAuOTEyNDI2LCAxLjM0NDQxLCAyLjIwOTIxLCAyLjc0ODAyIiwgXAotICAgICAgICAgICIwLjE2MTQ5OSwgMC4yMjY0MSwgMC41OTQzNjYsIDAuOTE4NjQyLCAxLjM1MDExLCAyLjIxNSwgMi43NTQzNSIsIFwKLSAgICAgICAgICAiMC4xNjU4MzcsIDAuMjMwODc3LCAwLjU5ODcwNiwgMC45MjI4NDksIDEuMzU1NTksIDIuMjIxMjcsIDIuNzU5OTUiLCBcCi0gICAgICAgICAgIjAuMTY5Mjg5LCAwLjIzNDEyNSwgMC42MDIwOTEsIDAuOTI2NTk0LCAxLjM1Nzk4LCAyLjIyMzY3LCAyLjc2MzI5IiwgXAotICAgICAgICAgICIwLjE3Mzg5MSwgMC4yMzg3NTMsIDAuNjA2NTMxLCAwLjkzMTAyMSwgMS4zNjI2NSwgMi4yMjY1MiwgMi43NjY1IiwgXAotICAgICAgICAgICIwLjE3ODI3MSwgMC4yNDIxMiwgMC42MDk1NTgsIDAuOTMzNjM4LCAxLjM2NTYyLCAyLjIzMDEyLCAyLjc3MDg1Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI2NjA1LCAwLjQwMjIsIDEuMTc0MjQsIDEuODU1NDIsIDIuNzY1MzcsIDQuNTg2NiwgNS43MTI0MiIsIFwKLSAgICAgICAgICAiMC4yNjYzMDIsIDAuNDAyNTYsIDEuMTc0MzQsIDEuODU1NDQsIDIuNzY3MTgsIDQuNTg2NTIsIDUuNzE4NiIsIFwKLSAgICAgICAgICAiMC4yNjYwNTQsIDAuNDAyNzUzLCAxLjE3Mzk0LCAxLjg1NTM2LCAyLjc2MjI1LCA0LjU4NTgzLCA1LjcxMjUzIiwgXAotICAgICAgICAgICIwLjI2NjE4NiwgMC40MDIxNTIsIDEuMTczODMsIDEuODU0NjMsIDIuNzYyMzksIDQuNTgwMDIsIDUuNzIwNjYiLCBcCi0gICAgICAgICAgIjAuMjY2MTMsIDAuNDAyMjU2LCAxLjE3MzcsIDEuODU0ODEsIDIuNzYzMTMsIDQuNTc5OTYsIDUuNzIwNTUiLCBcCi0gICAgICAgICAgIjAuMjY1OTI2LCAwLjQwMjMwMSwgMS4xNzM2OCwgMS44NTQ2OSwgMi43NjYxNCwgNC41ODEyMiwgNS43MTU5OSIsIFwKLSAgICAgICAgICAiMC4yNjY2OTEsIDAuNDAyMTc2LCAxLjE3MzY1LCAxLjg1NTg5LCAyLjc2NDE5LCA0LjU4MzUzLCA1LjcxMzgiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU0Mjc3LCAwLjA3MjcyNCwgMC4xNzU4MzksIDAuMjY2NDc3LCAwLjM4NzIxMSwgMC42Mjg4MjEsIDAuNzc5NTIxIiwgXAotICAgICAgICAgICIwLjA2MTc1MywgMC4wODAyMSwgMC4xODMzNDYsIDAuMjczOTkxLCAwLjM5NDc5LCAwLjYzNjQyNywgMC43ODcwNzgiLCBcCi0gICAgICAgICAgIjAuMDY4Mjg3LCAwLjA4NjYxNiwgMC4xODk3MjYsIDAuMjgwNDcxLCAwLjQwMTMwOSwgMC42NDI2MzIsIDAuNzkzNzU0IiwgXAotICAgICAgICAgICIwLjA3Mjk3OSwgMC4wOTEzNDYsIDAuMTk0NDA1LCAwLjI4NTA1MiwgMC40MDU5MjksIDAuNjQ3MzAxLCAwLjc5ODI0MyIsIFwKLSAgICAgICAgICAiMC4wNzY1MjEsIDAuMDk0OTU1LCAwLjE5ODAzMiwgMC4yODg3NTUsIDAuNDA5NTMzLCAwLjY1MTA4OSwgMC44MDE4NjgiLCBcCi0gICAgICAgICAgIjAuMDgxNDE1LCAwLjEwMDA5OSwgMC4yMDMxNTcsIDAuMjkzNzIxLCAwLjQxNDUzNCwgMC42NTU5OTYsIDAuODA2ODI3IiwgXAotICAgICAgICAgICIwLjA4NTI4NCwgMC4xMDM4OTcsIDAuMjA2ODcyLCAwLjI5NzU5NywgMC40MTgxNzUsIDAuNjU5NjIzLCAwLjgxMDcyNiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzc3NjcsIDAuMTE0NzIyLCAwLjMyNTM0NiwgMC41MTE0NjMsIDAuNzU5NTc5LCAxLjI1NTI1LCAxLjU2NjA0IiwgXAotICAgICAgICAgICIwLjA3NzgxOSwgMC4xMTQ3NjQsIDAuMzI1MzE2LCAwLjUxMTQxNiwgMC43NTk1NCwgMS4yNTY0NCwgMS41NjYwNyIsIFwKLSAgICAgICAgICAiMC4wNzgxNDQsIDAuMTE0OTY1LCAwLjMyNTM2MiwgMC41MTE2MzYsIDAuNzU5NzM2LCAxLjI1NTkxLCAxLjU2NjQ2IiwgXAotICAgICAgICAgICIwLjA3ODQ1LCAwLjExNTE3MiwgMC4zMjU0NTIsIDAuNTExNTM2LCAwLjc1OTg4MiwgMS4yNTU4NiwgMS41NjYyOSIsIFwKLSAgICAgICAgICAiMC4wNzg4ODEsIDAuMTE1MzQsIDAuMzI1NDk0LCAwLjUxMTQ3NywgMC43NTk1NiwgMS4yNTYwOCwgMS41NjYxMyIsIFwKLSAgICAgICAgICAiMC4wNzk0NzcsIDAuMTE1ODE4LCAwLjMyNTU2LCAwLjUxMTU0OCwgMC43NTk4OTgsIDEuMjU1ODQsIDEuNTY2NTIiLCBcCi0gICAgICAgICAgIjAuMDc5OTYyLCAwLjExNjA3NiwgMC4zMjU3NDYsIDAuNTExNjEyLCAwLjc1OTc1MywgMS4yNTYxMiwgMS41NjY1MiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTQ1OTE4LCAwLjIxMDc4NCwgMC41Nzc5MzQsIDAuOTAzMjEzLCAxLjMzNTQ4LCAyLjE5OTM2LCAyLjczODg3IiwgXAotICAgICAgICAgICIwLjE1MzI2NiwgMC4yMTc5NTksIDAuNTg1NTkxLCAwLjkxMDA2LCAxLjM0MjY4LCAyLjIwODM0LCAyLjc0NzMzIiwgXAotICAgICAgICAgICIwLjE1OTQ0NSwgMC4yMjQzNzcsIDAuNTkxNzA1LCAwLjkxNjQzNywgMS4zNDg1OCwgMi4yMTM2MywgMi43NTM5MyIsIFwKLSAgICAgICAgICAiMC4xNjM3NzksIDAuMjI4OTA0LCAwLjU5NjYwNSwgMC45MjEyNTMsIDEuMzUzNDEsIDIuMjE4NDYsIDIuNzU4NjUiLCBcCi0gICAgICAgICAgIjAuMTY3NDA1LCAwLjIzMjI3OCwgMC41OTk5MjIsIDAuOTI0NTk1LCAxLjM1NzQyLCAyLjIyMzA3LCAyLjc2MDc4IiwgXAotICAgICAgICAgICIwLjE3MjA3NiwgMC4yMzcwMDIsIDAuNjA1MDIxLCAwLjkyOTQ2MiwgMS4zNjEyMSwgMi4yMjY4MiwgMi43NjUxMiIsIFwKLSAgICAgICAgICAiMC4xNzU4NDcsIDAuMjQwNTAxLCAwLjYwODM3NywgMC45MzI1MjMsIDEuMzY0ODgsIDIuMjMwMTgsIDIuNzcwMDMiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjY2MzkxLCAwLjQwMjcxNSwgMS4xNzQ0OSwgMS44NTQyOSwgMi43NjI2MiwgNC41ODU4NCwgNS43MTIyNSIsIFwKLSAgICAgICAgICAiMC4yNjU5NzMsIDAuNDAyMDMsIDEuMTc0MiwgMS44NTQ1MSwgMi43NjI0MiwgNC41Nzg3NSwgNS43MjA2OCIsIFwKLSAgICAgICAgICAiMC4yNjYwMTcsIDAuNDAyMTM1LCAxLjE3NDYzLCAxLjg1NDYsIDIuNzY3MzIsIDQuNTc4MDIsIDUuNzEyNjQiLCBcCi0gICAgICAgICAgIjAuMjY1OTU2LCAwLjQwMjE1NywgMS4xNzQxNCwgMS44NTQ3NiwgMi43NjM0NiwgNC41ODAwMywgNS43MTE2MyIsIFwKLSAgICAgICAgICAiMC4yNjU5NiwgMC40MDIwOSwgMS4xNzUzMSwgMS44NTQ1LCAyLjc2MjcyLCA0LjU3OTY5LCA1LjcxOTgzIiwgXAotICAgICAgICAgICIwLjI2NTk3MSwgMC40MDIzMDgsIDEuMTczNzEsIDEuODU0NjIsIDIuNzY2MjIsIDQuNTc3NzIsIDUuNzE0OTMiLCBcCi0gICAgICAgICAgIjAuMjY1OTkxLCAwLjQwMjEyMywgMS4xNzM4LCAxLjg1NDYsIDIuNzY2MTMsIDQuNTc5NjYsIDUuNzIwNSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTM0MjUsIDAuMDcxNjczLCAwLjE3NDQ4MywgMC4yNjUwMDUsIDAuMzg1NzY1LCAwLjYyNzA1OSwgMC43Nzc4NTciLCBcCi0gICAgICAgICAgIjAuMDYwOTQ2LCAwLjA3OTE4NiwgMC4xODE5ODYsIDAuMjcyNTcxLCAwLjM5MzM1OCwgMC42MzQ3NzUsIDAuNzg1NTM4IiwgXAotICAgICAgICAgICIwLjA2NzYzNSwgMC4wODU3NzUsIDAuMTg4NTQ4LCAwLjI3OTI0NSwgMC4zOTk4MzQsIDAuNjQxNDA2LCAwLjc5MjExIiwgXAotICAgICAgICAgICIwLjA3MjMzOCwgMC4wOTA0OTYsIDAuMTkzMjUyLCAwLjI4Mzc3NCwgMC40MDQ1OTgsIDAuNjQ1OTczLCAwLjc5Njc0OSIsIFwKLSAgICAgICAgICAiMC4wNzYwNjcsIDAuMDk0MzU1LCAwLjE5NzA5OSwgMC4yODc2NDYsIDAuNDA4MjU4LCAwLjY0OTczOCwgMC44MDA1NzQiLCBcCi0gICAgICAgICAgIjAuMDgxMDg5LCAwLjA5OTYyMSwgMC4yMDIzMDYsIDAuMjkyODUxLCAwLjQxMzQzNCwgMC42NTQ5MzQsIDAuODA1NzYyIiwgXAotICAgICAgICAgICIwLjA4NTA4NywgMC4xMDMzOTYsIDAuMjA2MjQxLCAwLjI5NjcxOCwgMC40MTczOTMsIDAuNjU4Nzc4LCAwLjgwOTc2OCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzUzNDIsIDAuMTEyMzM4LCAwLjMyMjk0NSwgMC41MDkxOTcsIDAuNzU3NjUxLCAxLjI1MzU3LCAxLjU2MzQ3IiwgXAotICAgICAgICAgICIwLjA3NTQwOSwgMC4xMTIzMzMsIDAuMzIyOTcsIDAuNTA5MTQxLCAwLjc1NzM1NSwgMS4yNTM4LCAxLjU2NDE0IiwgXAotICAgICAgICAgICIwLjA3NTc5NiwgMC4xMTI1NTgsIDAuMzIzMDExLCAwLjUwOTIzMiwgMC43NTcyNDcsIDEuMjUzOCwgMS41NjQxNCIsIFwKLSAgICAgICAgICAiMC4wNzYxNTUsIDAuMTEyNzY3LCAwLjMyMzAzMiwgMC41MDkxNDksIDAuNzU3NTkxLCAxLjI1MzY2LCAxLjU2NDEyIiwgXAotICAgICAgICAgICIwLjA3NjYwNywgMC4xMTMwMjgsIDAuMzIzMTgxLCAwLjUwOTEwNiwgMC43NTc0OTMsIDEuMjUzNTcsIDEuNTYzNjUiLCBcCi0gICAgICAgICAgIjAuMDc3MjQzLCAwLjExMzQ4NSwgMC4zMjMxNjEsIDAuNTA5MTk1LCAwLjc1NzQzMiwgMS4yNTM2NCwgMS41NjM2NyIsIFwKLSAgICAgICAgICAiMC4wNzc3ODYsIDAuMTEzODM4LCAwLjMyMzM0NiwgMC41MDkxNzksIDAuNzU3Mzc1LCAxLjI1MzI3LCAxLjU2MzgxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEzMTA3OSwgMC4xOTU4NDksIDAuNTYzNDU3LCAwLjg4ODA5MiwgMS4zMTk3MSwgMi4xODM5LCAyLjcyNDA1IiwgXAotICAgICAgICAgICIwLjEzNzA4NywgMC4yMDE5NjgsIDAuNTY5NDQzLCAwLjg5MzI5MSwgMS4zMjU5NSwgMi4xOTA4NCwgMi43MzEiLCBcCi0gICAgICAgICAgIjAuMTQ0MzA5LCAwLjIwOTQwMiwgMC41NzY2ODMsIDAuOTAxMDQ2LCAxLjMzNDMzLCAyLjE5OTA3LCAyLjczODgxIiwgXAotICAgICAgICAgICIwLjE1MTc4MiwgMC4yMTY2NzUsIDAuNTg0Mjg0LCAwLjkwODQ3LCAxLjM0MTQ1LCAyLjIwNjI3LCAyLjc0NTIiLCBcCi0gICAgICAgICAgIjAuMTU5NTg2LCAwLjIyNDI2NCwgMC41OTIxODIsIDAuOTE2Mzg3LCAxLjM0OTcsIDIuMjE0NTIsIDIuNzUyNTQiLCBcCi0gICAgICAgICAgIjAuMTcxNzczLCAwLjIzNjgzNSwgMC42MDQxMzgsIDAuOTI4MzEsIDEuMzYxMTgsIDIuMjI0NzksIDIuNzY0OSIsIFwKLSAgICAgICAgICAiMC4xODMwMTEsIDAuMjQ3NjI0LCAwLjYxNTI3MiwgMC45Mzg5MjcsIDEuMzcxNzMsIDIuMjM4MzMsIDIuNzc1NjciKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjY2MDEyLCAwLjQwMjU5LCAxLjE3NTg1LCAxLjg1NDc5LCAyLjc2NjQsIDQuNTgzODUsIDUuNzEyNDMiLCBcCi0gICAgICAgICAgIjAuMjY2MDQxLCAwLjQwMjc2NSwgMS4xNzQxNSwgMS44NTYyMiwgMi43NjYxNCwgNC41ODU5OSwgNS43MTQwMiIsIFwKLSAgICAgICAgICAiMC4yNjYzMjksIDAuNDAyMTk4LCAxLjE3NDgzLCAxLjg1NDksIDIuNzYzNzYsIDQuNTgwMiwgNS43MTI2NiIsIFwKLSAgICAgICAgICAiMC4yNjgyMjIsIDAuNDAzMDIxLCAxLjE3NDE2LCAxLjg1NjQ2LCAyLjc2MjQyLCA0LjU3ODAyLCA1LjcxMjEyIiwgXAotICAgICAgICAgICIwLjI3MTYyLCAwLjQwNDU3NCwgMS4xNzUzMSwgMS44NTcxNiwgMi43NjI0MiwgNC41Nzg0NiwgNS43MTg5NCIsIFwKLSAgICAgICAgICAiMC4yNzg0MzgsIDAuNDA5NDA3LCAxLjE3NDAxLCAxLjg1NjIzLCAyLjc2MzExLCA0LjU4MzA0LCA1LjcxNDA0IiwgXAotICAgICAgICAgICIwLjI4NjAyNiwgMC40MTQ2NDksIDEuMTczOTEsIDEuODU0OTksIDIuNzY2ODMsIDQuNTgwNTIsIDUuNzE5NDMiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM5MTY3LCAwLjA1NzMwNywgMC4xNTk5MzQsIDAuMjUwNDIyLCAwLjM3MTMyNSwgMC42MTI3MjgsIDAuNzYzMjI2IiwgXAotICAgICAgICAgICIwLjA0NzU2OSwgMC4wNjU3MDEsIDAuMTY4MzE0LCAwLjI1ODg1LCAwLjM3OTUyOSwgMC42MjA5MzMsIDAuNzcxNzQ5IiwgXAotICAgICAgICAgICIwLjA1ODM4MywgMC4wNzY0MzgsIDAuMTc4ODg2LCAwLjI2OTQzMSwgMC4zOTAxMjUsIDAuNjMxNjM1LCAwLjc4MjA3MiIsIFwKLSAgICAgICAgICAiMC4wNjg5NzcsIDAuMDg2OTUsIDAuMTg5NDA2LCAwLjI3OTkyNiwgMC40MDA3ODksIDAuNjQxOTMzLCAwLjc5MjgzNyIsIFwKLSAgICAgICAgICAiMC4wNzgwMywgMC4wOTc3NDMsIDAuMjAwMDQ1LCAwLjI5MDQ4OCwgMC40MTA2LCAwLjY1MTk4OCwgMC44MDI2NTQiLCBcCi0gICAgICAgICAgIjAuMDg5NDUxLCAwLjExMzQxOSwgMC4yMTY0NDMsIDAuMzA2NjkxLCAwLjQyNzQ5NiwgMC42Njk3NDksIDAuODIwODY4IiwgXAotICAgICAgICAgICIwLjA5ODA2LCAwLjEyNDMxLCAwLjIzMTIzOCwgMC4zMjEzNDksIDAuNDQxOTMsIDAuNjgzMzE2LCAwLjgzNDA2NyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzIzOTUsIDAuMTA5NjQzLCAwLjMyMDYyNiwgMC41MDY3OTEsIDAuNzU1MTA1LCAxLjI1MTA3LCAxLjU2MTkyIiwgXAotICAgICAgICAgICIwLjA3MzU2NSwgMC4xMDk4NjUsIDAuMzIwNjgzLCAwLjUwNjc0NCwgMC43NTQ3NzgsIDEuMjUxNDIsIDEuNTYwNjMiLCBcCi0gICAgICAgICAgIjAuMDc5NDYsIDAuMTEzODQ3LCAwLjMyMDYxOSwgMC41MDY3MDYsIDAuNzU0NzMyLCAxLjI1MTQxLCAxLjU2MDYzIiwgXAotICAgICAgICAgICIwLjA4NzQ0MSwgMC4xMjA2NDIsIDAuMzIxNzcsIDAuNTA2Njg0LCAwLjc1NTAxMywgMS4yNTA4OSwgMS41NjEwNyIsIFwKLSAgICAgICAgICAiMC4wOTY3MSwgMC4xMjg2NjgsIDAuMzI1MDg2LCAwLjUwNzI2OSwgMC43NTQ2MjMsIDEuMjUxMDIsIDEuNTYxMiIsIFwKLSAgICAgICAgICAiMC4xMTIzNzksIDAuMTQyNjUzLCAwLjMzMzMzNSwgMC41MTEzOTMsIDAuNzU1MjQyLCAxLjI1MDg5LCAxLjU2MTI2IiwgXAotICAgICAgICAgICIwLjEyNTMzNiwgMC4xNTYxMTYsIDAuMzQyMjQsIDAuNTE3MTc2LCAwLjc1Nzc5NSwgMS4yNTA5NywgMS41NjA2MyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJEIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMjQzOTksIDAuMTg5NDQ0LCAwLjU1NzI4OSwgMC44ODE1MzEsIDEuMzEzNSwgMi4xNzc3LCAyLjcxOTI3IiwgXAotICAgICAgICAgICIwLjEzMTAzNywgMC4xOTU5NjUsIDAuNTYzNTIsIDAuODg3NjUzLCAxLjMyMTI4LCAyLjE4NjA3LCAyLjcyNTEyIiwgXAotICAgICAgICAgICIwLjEzOTY3NSwgMC4yMDQ1NDksIDAuNTcyMzgyLCAwLjg5NjE0NiwgMS4zMjk1NiwgMi4xOTM3LCAyLjczMjc3IiwgXAotICAgICAgICAgICIwLjE0ODU2NiwgMC4yMTMyNzksIDAuNTgwODMsIDAuOTA1Nzc2LCAxLjMzNjg4LCAyLjIwMTA4LCAyLjc0MTMzIiwgXAotICAgICAgICAgICIwLjE1NzczMywgMC4yMjIyNzMsIDAuNTg5OTQ2LCAwLjkxMzYxNCwgMS4zNDU0OSwgMi4yMTA4OSwgMi43NTE1MSIsIFwKLSAgICAgICAgICAiMC4xNzI1MSwgMC4yMzY3ODIsIDAuNjAzNTMsIDAuOTI3Mzg2LCAxLjM1OTk4LCAyLjIyMzYsIDIuNzYzNTkiLCBcCi0gICAgICAgICAgIjAuMTg1NDMzLCAwLjI0OTIyNSwgMC42MTU0MTEsIDAuOTM5MDQzLCAxLjM3MTE5LCAyLjIzNzUyLCAyLjc3NTA1Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI2NjIzMSwgMC40MDIxNjEsIDEuMTczOTMsIDEuODU0NjksIDIuNzYzMTcsIDQuNTc4MjMsIDUuNzEyODQiLCBcCi0gICAgICAgICAgIjAuMjY1OTQsIDAuNDAyMzk2LCAxLjE3NDk2LCAxLjg1NjY3LCAyLjc2Mjc5LCA0LjU3ODQ1LCA1LjcxMTc3IiwgXAotICAgICAgICAgICIwLjI2NjE2NSwgMC40MDIzODMsIDEuMTczNzQsIDEuODU2NTEsIDIuNzYyNjcsIDQuNTc5MDQsIDUuNzEyODciLCBcCi0gICAgICAgICAgIjAuMjY4NjI4LCAwLjQwMjM4NCwgMS4xNzU0NSwgMS44NTQ4OSwgMi43NjUzMSwgNC41Nzc4MSwgNS43MTMwNCIsIFwKLSAgICAgICAgICAiMC4yNzMwNDEsIDAuNDA0OTM3LCAxLjE3MzcsIDEuODU2OTcsIDIuNzY0NTYsIDQuNTc4OTIsIDUuNzEyNzIiLCBcCi0gICAgICAgICAgIjAuMjgyMDk5LCAwLjQxMTIwMSwgMS4xNzUyOSwgMS44NTY3OCwgMi43NjI4NiwgNC41ODMyNCwgNS43MTQxNCIsIFwKLSAgICAgICAgICAiMC4yOTE5MDUsIDAuNDE4NTk4LCAxLjE3MzY5LCAxLjg1Njc2LCAyLjc2NjIzLCA0LjU3OTYxLCA1LjcxMjY1Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzNzQ4MywgMC4wNTU1OTQsIDAuMTU4MTY4LCAwLjI0ODY3NiwgMC4zNjkyOTgsIDAuNjExMDcxLCAwLjc2MTYxNyIsIFwKLSAgICAgICAgICAiMC4wNDU5MzIsIDAuMDY0MDQ5LCAwLjE2NjYzNSwgMC4yNTcxOTcsIDAuMzc3NywgMC42MTkwNjIsIDAuNzY5Nzc2IiwgXAotICAgICAgICAgICIwLjA1NjM5OSwgMC4wNzQ0ODYsIDAuMTc3MTg4LCAwLjI2NzY3MSwgMC4zODg2MjQsIDAuNjI5ODI4LCAwLjc4MDMyOSIsIFwKLSAgICAgICAgICAiMC4wNjcxOTIsIDAuMDg1MzY1LCAwLjE4NzczOSwgMC4yNzc5NTQsIDAuMzk4NjUyLCAwLjYzOTcxNiwgMC43OTA0MjEiLCBcCi0gICAgICAgICAgIjAuMDc1OTg2LCAwLjA5NTc1NSwgMC4xOTgzMzcsIDAuMjg4Nzg0LCAwLjQwOTM5LCAwLjY1MDQ4MSwgMC44MDExMzYiLCBcCi0gICAgICAgICAgIjAuMDg3MzI2LCAwLjExMDQ3OSwgMC4yMTUxNDksIDAuMzA1Mzk5LCAwLjQyNjc0NSwgMC42Njc4NjEsIDAuODE5MDI1IiwgXAotICAgICAgICAgICIwLjA5NTY1OSwgMC4xMjEzNDYsIDAuMjMwMTQsIDAuMzIwMjI2LCAwLjQ0MDc5LCAwLjY4MjM0LCAwLjgzMjkwNyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzA0OTMsIDAuMTA3ODI0LCAwLjMxOTE0OSwgMC41MDQ4ODQsIDAuNzUyNzU5LCAxLjI0OTk5LCAxLjU1OTg4IiwgXAotICAgICAgICAgICIwLjA3MTU4NCwgMC4xMDgwNjksIDAuMzE4NzYzLCAwLjUwNDc0NSwgMC43NTQxMzYsIDEuMjQ5NjksIDEuNTU5MzYiLCBcCi0gICAgICAgICAgIjAuMDc3OTM2LCAwLjExMjM5LCAwLjMxODUxMiwgMC41MDQ2NDQsIDAuNzUyOTYzLCAxLjI1MDkzLCAxLjU1ODk1IiwgXAotICAgICAgICAgICIwLjA4NTY2LCAwLjExODg1LCAwLjMxOTY3OSwgMC41MDQ1MTMsIDAuNzUzNTUxLCAxLjI0OTczLCAxLjU2MjU3IiwgXAotICAgICAgICAgICIwLjA5NTA1MSwgMC4xMjcyNTQsIDAuMzIzNzA5LCAwLjUwNTQwNywgMC43NTI4MTgsIDEuMjQ5NDcsIDEuNTU5NjciLCBcCi0gICAgICAgICAgIjAuMTEwMzkzLCAwLjE0MjQ1MiwgMC4zMzE3NjksIDAuNTEwMzE0LCAwLjc1MzM3MywgMS4yNTE2NCwgMS41NTk0OSIsIFwKLSAgICAgICAgICAiMC4xMjM0OTQsIDAuMTU1ODc0LCAwLjM0MDUwNSwgMC41MTUzNzcsIDAuNzU3MzU5LCAxLjI0OTQxLCAxLjU1OTE4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQU4iOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDAzMywgMC4wMDQwMzMsIDAuMDA0MDM1LCAwLjAwNDAzNSwgMC4wMDQwMzYsIDAuMDA0MDM0LCAwLjAwNDAzNCIsIFwKLSAgICAgICAgICAiMC4wMDQwNSwgMC4wMDQwNTMsIDAuMDA0MDU2LCAwLjAwNDA1NSwgMC4wMDQwNTcsIDAuMDA0MDU2LCAwLjAwNDA1NiIsIFwKLSAgICAgICAgICAiMC4wMDQxMjEsIDAuMDA0MTI0LCAwLjAwNDEyOSwgMC4wMDQxMjgsIDAuMDA0MTMsIDAuMDA0MTMsIDAuMDA0MTI5IiwgXAotICAgICAgICAgICIwLjAwNDIyMywgMC4wMDQyMjYsIDAuMDA0MjMsIDAuMDA0MjMxLCAwLjAwNDIzMSwgMC4wMDQyMzIsIDAuMDA0MjMxIiwgXAotICAgICAgICAgICIwLjAwNDM1MywgMC4wMDQzNDcsIDAuMDA0MzYsIDAuMDA0MzYxLCAwLjAwNDM1MiwgMC4wMDQzNTIsIDAuMDA0MzYyIiwgXAotICAgICAgICAgICIwLjAwNDU2NSwgMC4wMDQ1NjksIDAuMDA0NTcxLCAwLjAwNDU2MSwgMC4wMDQ1NzMsIDAuMDA0NTcyLCAwLjAwNDU2IiwgXAotICAgICAgICAgICIwLjAwNDc1OSwgMC4wMDQ3NjUsIDAuMDA0NzY4LCAwLjAwNDc1NCwgMC4wMDQ3NTMsIDAuMDA0NzY2LCAwLjAwNDc2NSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzQ4OCwgMC4wMDM0ODgsIDAuMDAzNDg4LCAwLjAwMzQ4OCwgMC4wMDM0ODgsIDAuMDAzNDg3LCAwLjAwMzQ4NiIsIFwKLSAgICAgICAgICAiMC4wMDM1MDMsIDAuMDAzNTAyLCAwLjAwMzUwMywgMC4wMDM1MDMsIDAuMDAzNTAzLCAwLjAwMzUwMywgMC4wMDM1MDIiLCBcCi0gICAgICAgICAgIjAuMDAzNTczLCAwLjAwMzU3MywgMC4wMDM1NzQsIDAuMDAzNTc0LCAwLjAwMzU3MywgMC4wMDM1NzMsIDAuMDAzNTczIiwgXAotICAgICAgICAgICIwLjAwMzY3MywgMC4wMDM2NzIsIDAuMDAzNjczLCAwLjAwMzY3MywgMC4wMDM2NzMsIDAuMDAzNjcyLCAwLjAwMzY3MiIsIFwKLSAgICAgICAgICAiMC4wMDM3ODksIDAuMDAzODAxLCAwLjAwMzgsIDAuMDAzNzg4LCAwLjAwMzc5OCwgMC4wMDM3OTgsIDAuMDAzNzg3IiwgXAotICAgICAgICAgICIwLjAwMzk5OCwgMC4wMDQwMDIsIDAuMDA0MDAxLCAwLjAwMzk5NCwgMC4wMDM5OTQsIDAuMDAzOTkyLCAwLjAwNDAwOCIsIFwKLSAgICAgICAgICAiMC4wMDQxODgsIDAuMDA0MTc5LCAwLjAwNDE3OCwgMC4wMDQxODcsIDAuMDA0MTc3LCAwLjAwNDE3OCwgMC4wMDQxODUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzNjE4LCAwLjAwMzYyMiwgMC4wMDM2MjYsIDAuMDAzNjI4LCAwLjAwMzYyOCwgMC4wMDM2MjgsIDAuMDAzNjI3IiwgXAotICAgICAgICAgICIwLjAwMzYyMSwgMC4wMDM2MjcsIDAuMDAzNjM2LCAwLjAwMzYzOCwgMC4wMDM2MzksIDAuMDAzNjQsIDAuMDAzNjQiLCBcCi0gICAgICAgICAgIjAuMDAzNjk0LCAwLjAwMzcwMSwgMC4wMDM3MTUsIDAuMDAzNzE3LCAwLjAwMzcxOSwgMC4wMDM3MiwgMC4wMDM3MiIsIFwKLSAgICAgICAgICAiMC4wMDM3OTUsIDAuMDAzODA1LCAwLjAwMzgyLCAwLjAwMzgyMywgMC4wMDM4MjUsIDAuMDAzODI3LCAwLjAwMzgyNiIsIFwKLSAgICAgICAgICAiMC4wMDM5MTYsIDAuMDAzOTM0LCAwLjAwMzk0MiwgMC4wMDM5NDYsIDAuMDAzOTQ4LCAwLjAwMzk1OCwgMC4wMDM5NSIsIFwKLSAgICAgICAgICAiMC4wMDQxMzgsIDAuMDA0MTQ5LCAwLjAwNDE1NiwgMC4wMDQxNzIsIDAuMDA0MTc2LCAwLjAwNDE3OCwgMC4wMDQxNjciLCBcCi0gICAgICAgICAgIjAuMDA0MzI3LCAwLjAwNDM0OSwgMC4wMDQzNTcsIDAuMDA0MzYzLCAwLjAwNDM2NiwgMC4wMDQzNzksIDAuMDA0MzgxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzMjE2LCAwLjAwMzIxNywgMC4wMDMyMTgsIDAuMDAzMjE4LCAwLjAwMzIxOCwgMC4wMDMyMTcsIDAuMDAzMjE3IiwgXAotICAgICAgICAgICIwLjAwMzIyMiwgMC4wMDMyMjQsIDAuMDAzMjI2LCAwLjAwMzIyNiwgMC4wMDMyMjYsIDAuMDAzMjI2LCAwLjAwMzIyNiIsIFwKLSAgICAgICAgICAiMC4wMDMzLCAwLjAwMzMwMywgMC4wMDMzMDcsIDAuMDAzMzA3LCAwLjAwMzMwNywgMC4wMDMzMDgsIDAuMDAzMzA3IiwgXAotICAgICAgICAgICIwLjAwMzQxLCAwLjAwMzQxMSwgMC4wMDM0MTQsIDAuMDAzNDE1LCAwLjAwMzQxNCwgMC4wMDM0MTQsIDAuMDAzNDA4IiwgXAotICAgICAgICAgICIwLjAwMzUyMiwgMC4wMDM1MzYsIDAuMDAzNTI5LCAwLjAwMzUyOSwgMC4wMDM1MzcsIDAuMDAzNTM4LCAwLjAwMzUyOSIsIFwKLSAgICAgICAgICAiMC4wMDM3MzUsIDAuMDAzNzQyLCAwLjAwMzc0OCwgMC4wMDM3NDksIDAuMDAzNzQsIDAuMDAzNzUsIDAuMDAzNzUiLCBcCi0gICAgICAgICAgIjAuMDAzOTMyLCAwLjAwMzkzNywgMC4wMDM5NDMsIDAuMDAzOTQ0LCAwLjAwMzk0NCwgMC4wMDM5NDYsIDAuMDAzOTQ2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzMTkyLCAwLjAwMzE5NSwgMC4wMDMxOTksIDAuMDAzMTk5LCAwLjAwMzIsIDAuMDAzMiwgMC4wMDMxOTkiLCBcCi0gICAgICAgICAgIjAuMDAzMTY2LCAwLjAwMzE3NiwgMC4wMDMxOTEsIDAuMDAzMTk0LCAwLjAwMzE5NiwgMC4wMDMxOTcsIDAuMDAzMTk3IiwgXAotICAgICAgICAgICIwLjAwMzE1MiwgMC4wMDMxNjIsIDAuMDAzMTg0LCAwLjAwMzE4OSwgMC4wMDMxOTMsIDAuMDAzMTk1LCAwLjAwMzE5NiIsIFwKLSAgICAgICAgICAiMC4wMDMxNTUsIDAuMDAzMTYyLCAwLjAwMzE4MSwgMC4wMDMxODcsIDAuMDAzMTkxLCAwLjAwMzE5NCwgMC4wMDMxOTUiLCBcCi0gICAgICAgICAgIjAuMDAzMTcxLCAwLjAwMzE3MSwgMC4wMDMxODIsIDAuMDAzMTg3LCAwLjAwMzE4OSwgMC4wMDMxOTMsIDAuMDAzMTk1IiwgXAotICAgICAgICAgICIwLjAwMzIyLCAwLjAwMzIwNywgMC4wMDMxOTMsIDAuMDAzMTk0LCAwLjAwMzE5NCwgMC4wMDMxOTYsIDAuMDAzMTk2IiwgXAotICAgICAgICAgICIwLjAwMzI4LCAwLjAwMzI1MywgMC4wMDMyMTEsIDAuMDAzMjA0LCAwLjAwMzIwMiwgMC4wMDMxOTksIDAuMDAzMiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDI3OCwgMC4wMDAyOCwgMC4wMDAyODEsIDAuMDAwMjgyLCAwLjAwMDI4MiwgMC4wMDAyODIsIDAuMDAwMjgyIiwgXAotICAgICAgICAgICIwLjAwMDI4NCwgMC4wMDAyODksIDAuMDAwMjk2LCAwLjAwMDI5NywgMC4wMDAyOTksIDAuMDAwMjk4LCAwLjAwMDI5OCIsIFwKLSAgICAgICAgICAiMC4wMDAzMDIsIDAuMDAwMzAyLCAwLjAwMDMwMSwgMC4wMDAzMDIsIDAuMDAwMzAyLCAwLjAwMDMwMywgMC4wMDAzMDMiLCBcCi0gICAgICAgICAgIjAuMDAwMzE5LCAwLjAwMDM1MSwgMC4wMDAzMTEsIDAuMDAwMzA5LCAwLjAwMDMwNywgMC4wMDAzMDYsIDAuMDAwMzA1IiwgXAotICAgICAgICAgICIwLjAwMDM2MSwgMC4wMDAzNjIsIDAuMDAwMzI4LCAwLjAwMDMxOSwgMC4wMDAzMjMsIDAuMDAwMzE2LCAwLjAwMDMxNCIsIFwKLSAgICAgICAgICAiMC4wMDA0NjgsIDAuMDAwNDE2LCAwLjAwMDM5MSwgMC4wMDAzNjMsIDAuMDAwMzQ3LCAwLjAwMDMzLCAwLjAwMDMyNSIsIFwKLSAgICAgICAgICAiMC4wMDA1NzUsIDAuMDAwNDk0LCAwLjAwMDQ0NCwgMC4wMDA0LCAwLjAwMDM3NCwgMC4wMDAzNDksIDAuMDAwMzQxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyNzQ2LCAwLjAwMjc1LCAwLjAwMjc1NiwgMC4wMDI3NTYsIDAuMDAyNzU3LCAwLjAwMjc2LCAwLjAwMjc1NyIsIFwKLSAgICAgICAgICAiMC4wMDI3MTcsIDAuMDAyNzI4LCAwLjAwMjc0NiwgMC4wMDI3NSwgMC4wMDI3NTIsIDAuMDAyNzU1LCAwLjAwMjc1NSIsIFwKLSAgICAgICAgICAiMC4wMDI3MjIsIDAuMDAyNzI2LCAwLjAwMjc0MiwgMC4wMDI3NDgsIDAuMDAyNzUxLCAwLjAwMjc1MywgMC4wMDI3NTMiLCBcCi0gICAgICAgICAgIjAuMDAyNzUsIDAuMDAyNzQ0LCAwLjAwMjc0NiwgMC4wMDI3NDksIDAuMDAyNzUxLCAwLjAwMjc1MywgMC4wMDI3NTMiLCBcCi0gICAgICAgICAgIjAuMDAyNzksIDAuMDAyNzcxLCAwLjAwMjc1NCwgMC4wMDI3NTQsIDAuMDAyNzUzLCAwLjAwMjc1NCwgMC4wMDI3NTUiLCBcCi0gICAgICAgICAgIjAuMDAyODg3LCAwLjAwMjg0NiwgMC4wMDI3ODIsIDAuMDAyNzcyLCAwLjAwMjc2NiwgMC4wMDI3NjEsIDAuMDAyNzYiLCBcCi0gICAgICAgICAgIjAuMDAzMDAzLCAwLjAwMjkzNywgMC4wMDI4MjQsIDAuMDAyNzk4LCAwLjAwMjc4NSwgMC4wMDI3NzIsIDAuMDAyNzY5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwMDEsIDAuMDAwMDA2LCAwLCAwLjAwMDAwMSwgMC4wMDAwMDEsIDAuMDAwMDAyLCAwLjAwMDAwMiIsIFwKLSAgICAgICAgICAiMC4wMDAwMDMsIDAuMDAwMDE0LCAwLjAwMDAyOCwgMC4wMDAwMzEsIDAuMDAwMDM1LCAwLjAwMDAzOCwgMC4wMDAwMzgiLCBcCi0gICAgICAgICAgIjAuMDAwMDI5LCAwLjAwMDAzMywgMC4wMDAwMzUsIDAuMDAwMDM4LCAwLjAwMDAzOCwgMC4wMDAwNDMsIDAuMDAwMDQ0IiwgXAotICAgICAgICAgICIwLjAwMDAzNywgMC4wMDAwNDcsIDAuMDAwMDQ1LCAwLjAwMDA1LCAwLjAwMDA0OCwgMC4wMDAwNSwgMC4wMDAwNSIsIFwKLSAgICAgICAgICAiMC4wMDAwNzQsIDAuMDAwMTAyLCAwLjAwMDA2MSwgMC4wMDAwNTYsIDAuMDAwMDUzLCAwLjAwMDA1MywgMC4wMDAwNTQiLCBcCi0gICAgICAgICAgIjAuMDAwMTYxLCAwLjAwMDE4MSwgMC4wMDAxMDQsIDAuMDAwMDg2LCAwLjAwMDA4MiwgMC4wMDAwNjgsIDAuMDAwMDY0IiwgXAotICAgICAgICAgICIwLjAwMDI2NCwgMC4wMDAyNzYsIDAuMDAwMTQ1LCAwLjAwMDExMywgMC4wMDAwOTUsIDAuMDAwMDc5LCAwLjAwMDA3MyIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IE5PUjRCWDIgKgotICogLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoTk9SNEJYMikgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjY1MzE5NjsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQU4pICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDU4MjE5NjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA1ODIxOTY7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNTgyMTY0OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzc1NiwgMC4wMDM3NTcsIDAuMDAzODMzLCAwLjAwMzkzNCwgMC4wMDQwNSwgMC4wMDQyNzUsIDAuMDA0NDYyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyMzMxLCAwLjAwMjMyMywgMC4wMDIzODIsIDAuMDAyNDc4LCAwLjAwMjYsIDAuMDAyODM3LCAwLjAwMjk4NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNjc2MjE7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNjY2Nzc7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNjc2MjE7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzMxLCAwLjAwMDMzMSwgMC4wMDAzMzEsIDAuMDAwMzMyLCAwLjAwMDMzMiwgMC4wMDAzMzIsIDAuMDAwMzMyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNzUxLCAwLjAwMDc1MSwgMC4wMDA3NSwgMC4wMDA3NSwgMC4wMDA3NSwgMC4wMDA3NDksIDAuMDAwNzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEMpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTY1MjY1OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTY0NDY3OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTY1MjY1OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDI3MiwgMC4wMDAyNzIsIDAuMDAwMjczLCAwLjAwMDI3MywgMC4wMDAyNzMsIDAuMDAwMjczLCAwLjAwMDI3MyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDU1NSwgMC4wMDA1NTUsIDAuMDAwNTU0LCAwLjAwMDU1NCwgMC4wMDA1NTUsIDAuMDAwNTU1LCAwLjAwMDU1NCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNjc0ODc7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNjc0ODc7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNjc0MzY7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMTk3LCAwLjAwMDE5NywgMC4wMDAxOTcsIDAuMDAwMTk3LCAwLjAwMDE5NywgMC4wMDAxOTcsIDAuMDAwMTk3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNjU5LCAwLjAwMDY1OSwgMC4wMDA2NTksIDAuMDAwNjU5LCAwLjAwMDY1OSwgMC4wMDA2NTksIDAuMDAwNjU4Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMTg1MzcyOwotICAgIGZ1bmN0aW9uIDogIighKCgoKCFBTikrQikrQykrRCkpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTA0NDQ2LCAwLjM4Njc4NywgMC42MTI2ODUsIDAuODkzNjczLCAxLjE3NzUyLCAxLjQ1Nzk4LCAxLjc0MjQiLCBcCi0gICAgICAgICAgIjAuMTEyMzE4LCAwLjM5NDg2MSwgMC42MjExMjQsIDAuOTAxOTIzLCAxLjE4NTEsIDEuNDY2MDUsIDEuNzUwNTgiLCBcCi0gICAgICAgICAgIjAuMTE5NjM3LCAwLjQwMjE1MSwgMC42Mjc2NDksIDAuOTEwMjkyLCAxLjE5MjYxLCAxLjQ3NTExLCAxLjc1NjQ5IiwgXAotICAgICAgICAgICIwLjEyNDkzNiwgMC40MDc1MiwgMC42MzM3NDksIDAuOTE2MTk4LCAxLjE5ODQzLCAxLjQ3OTgxLCAxLjc2MjIxIiwgXAotICAgICAgICAgICIwLjEyOTMxLCAwLjQxMjA2OCwgMC42Mzc4MjgsIDAuOTIwNjAzLCAxLjIwMjEsIDEuNDg0MzgsIDEuNzY2OSIsIFwKLSAgICAgICAgICAiMC4xMzUwNDUsIDAuNDE3ODg0LCAwLjY0MzI1NSwgMC45MjU5MTUsIDEuMjA3NjgsIDEuNDg5MzUsIDEuNzcxNTUiLCBcCi0gICAgICAgICAgIjAuMTM5MjcsIDAuNDIxODA0LCAwLjY0NzUzOSwgMC45Mjk0NzIsIDEuMjExNzEsIDEuNDk0NjEsIDEuNzc1NDIiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTYxMTU4LCAwLjc1NzYyNiwgMS4yMzQxNiwgMS44MzAxLCAyLjQyNjE4LCAzLjAyNDc5LCAzLjYxOTA5IiwgXAotICAgICAgICAgICIwLjE2MTIyNCwgMC43NTcxNTgsIDEuMjM0MDMsIDEuODMwODcsIDIuNDI1ODQsIDMuMDI0NTMsIDMuNjE5ODIiLCBcCi0gICAgICAgICAgIjAuMTYxMzU5LCAwLjc1Nzg3NiwgMS4yMzQ5NywgMS44Mjk4MiwgMi40MjY5NiwgMy4wMjIyNCwgMy42MjM3MyIsIFwKLSAgICAgICAgICAiMC4xNjEyMTIsIDAuNzU3OTI1LCAxLjIzMzg2LCAxLjgzMDIzLCAyLjQyNjE3LCAzLjAyNjg1LCAzLjYxOTE1IiwgXAotICAgICAgICAgICIwLjE2MTIxNywgMC43NTcyMTksIDEuMjM0MTEsIDEuODMwMDQsIDIuNDI2MjUsIDMuMDIxNzUsIDMuNjE4NDkiLCBcCi0gICAgICAgICAgIjAuMTYxMTkzLCAwLjc1Njk4MywgMS4yMzQ1NCwgMS44MzA1NCwgMi40MjU4OCwgMy4wMjQ4MiwgMy42MTg1NiIsIFwKLSAgICAgICAgICAiMC4xNjEzNTcsIDAuNzU3NzU0LCAxLjIzNDk4LCAxLjgzMTM5LCAyLjQyODQxLCAzLjAyMywgMy42MTkzIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0MzY5OCwgMC4xMjE0ODQsIDAuMTgyNDI5LCAwLjI1ODQzMSwgMC4zMzQzMzQsIDAuNDEwMjcxLCAwLjQ4NjA4MSIsIFwKLSAgICAgICAgICAiMC4wNTE1MDEsIDAuMTI5Mjg2LCAwLjE5MDI3MiwgMC4yNjYzMTcsIDAuMzQyMjEsIDAuNDE4MDE0LCAwLjQ5Mzg5MyIsIFwKLSAgICAgICAgICAiMC4wNTkzNjcsIDAuMTM3MjA4LCAwLjE5ODE3MiwgMC4yNzQxODgsIDAuMzUwMTc1LCAwLjQyNjA2OSwgMC41MDE4NjUiLCBcCi0gICAgICAgICAgIjAuMDY1MDE3LCAwLjE0Mjk4MiwgMC4yMDM3MDIsIDAuMjc5NjY0LCAwLjM1NTY2MiwgMC40MzE1NTIsIDAuNTA3Mzg0IiwgXAotICAgICAgICAgICIwLjA2OTUyMiwgMC4xNDcyNTQsIDAuMjA4MTY1LCAwLjI4NDE1NSwgMC4zNjAwNDksIDAuNDM1OTYyLCAwLjUxMTgwNCIsIFwKLSAgICAgICAgICAiMC4wNzU3NjksIDAuMTUzNDgzLCAwLjIxNDM1NSwgMC4yOTAyODgsIDAuMzY2MjExLCAwLjQ0MjAzNywgMC41MTc4OCIsIFwKLSAgICAgICAgICAiMC4wODAyOTgsIDAuMTU3OTk4LCAwLjIxODc4NywgMC4yOTQ3OTIsIDAuMzcwNjgsIDAuNDQ2NDgzLCAwLjUyMjQxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1MDE3LCAwLjIwNjI0NCwgMC4zMzE5NzEsIDAuNDg5MjUzLCAwLjY0NjYzLCAwLjgwMzc0NiwgMC45NjEwNTMiLCBcCi0gICAgICAgICAgIjAuMDUwMjI3LCAwLjIwNjIxNSwgMC4zMzE5NiwgMC40ODkzODEsIDAuNjQ2NTEzLCAwLjgwMzc1NiwgMC45NjEwOCIsIFwKLSAgICAgICAgICAiMC4wNTA4NTUsIDAuMjA2Mjk5LCAwLjMzMTk5LCAwLjQ4OTM1MywgMC42NDY2MzMsIDAuODAzOTgyLCAwLjk2MTQ5NSIsIFwKLSAgICAgICAgICAiMC4wNTE1ODMsIDAuMjA2NDMxLCAwLjMzMTkzOCwgMC40ODkxODYsIDAuNjQ2Njk1LCAwLjgwMzk1NCwgMC45NjEzMjgiLCBcCi0gICAgICAgICAgIjAuMDUyMzI5LCAwLjIwNjU3OSwgMC4zMzIwOCwgMC40ODkzMDYsIDAuNjQ2NTA0LCAwLjgwMzc2NCwgMC45NjEzODUiLCBcCi0gICAgICAgICAgIjAuMDUzMjYxLCAwLjIwNjg0NCwgMC4zMzIxMjcsIDAuNDg5MjkxLCAwLjY0NjU0NiwgMC44MDM5OTEsIDAuOTYxMjYzIiwgXAotICAgICAgICAgICIwLjA1NDE4LCAwLjIwNjkwNywgMC4zMzIxNzIsIDAuNDg5MzkzLCAwLjY0NjY3LCAwLjgwNDEyMywgMC45NjExNDEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg3NDExLCAwLjM3MDA1NywgMC41OTU5OTYsIDAuODc3MjU1LCAxLjE1OTM2LCAxLjQ0MTkyLCAxLjcyMzI5IiwgXAotICAgICAgICAgICIwLjA5MzIxLCAwLjM3NTczMywgMC42MDEzNywgMC44ODM4NSwgMS4xNjY3OSwgMS40NDgxNSwgMS43Mjk1MiIsIFwKLSAgICAgICAgICAiMC4wOTg5MjIsIDAuMzgxNTU0LCAwLjYwNzI5LCAwLjg4OTg4NCwgMS4xNzIwMSwgMS40NTQyNSwgMS43MzU0IiwgXAotICAgICAgICAgICIwLjEwNDM0NywgMC4zODY5NzgsIDAuNjEyNzc3LCAwLjg5NTEyMSwgMS4xNzgyLCAxLjQ1ODk2LCAxLjc0MTcxIiwgXAotICAgICAgICAgICIwLjEwOTc1NywgMC4zOTIzMywgMC42MTg0OTgsIDAuOTAwNjU2LCAxLjE4MzI2LCAxLjQ2NDA4LCAxLjc0Nzg2IiwgXAotICAgICAgICAgICIwLjExNzYzNiwgMC40MDEwOTYsIDAuNjI2NTkyLCAwLjkwODYzMiwgMS4xOTA4MywgMS40NzMwOCwgMS43NTQ0MiIsIFwKLSAgICAgICAgICAiMC4xMjM5MjQsIDAuNDA4NDA5LCAwLjYzNDM4LCAwLjkxNjk5NiwgMS4xOTk1OSwgMS40ODA4MSwgMS43NjI3MSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNjExODcsIDAuNzU3MTYzLCAxLjIzNDA4LCAxLjgzMTc3LCAyLjQyODU2LCAzLjAyMTc0LCAzLjYyMTg3IiwgXAotICAgICAgICAgICIwLjE2MTM2MSwgMC43NTc4OTYsIDEuMjM0NDcsIDEuODI5OCwgMi40MjcxMSwgMy4wMjE3NywgMy42MjIiLCBcCi0gICAgICAgICAgIjAuMTYyMDIzLCAwLjc1NzY2MywgMS4yMzUxNywgMS44Mjk4NywgMi40MjY3MywgMy4wMjE4NSwgMy42MjE3NSIsIFwKLSAgICAgICAgICAiMC4xNjQwNTEsIDAuNzU3MTE0LCAxLjIzNTI5LCAxLjgzMjQsIDIuNDI2NDIsIDMuMDI1MjksIDMuNjE4OCIsIFwKLSAgICAgICAgICAiMC4xNjY4OTQsIDAuNzU3NzM3LCAxLjIzMzg2LCAxLjgyOTc4LCAyLjQyNTg0LCAzLjAyNDk3LCAzLjYxNzc3IiwgXAotICAgICAgICAgICIwLjE3Mjk1NiwgMC43NTc4NDcsIDEuMjM0NDMsIDEuODI5NzMsIDIuNDI5LCAzLjAyNTk4LCAzLjYyMTgxIiwgXAotICAgICAgICAgICIwLjE3OTc3LCAwLjc2MDIxOCwgMS4yMzQxOSwgMS44Mjk4NywgMi40MjYwOSwgMy4wMjE5NiwgMy42MjI2NSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjYwODYsIDAuMTAyNzQxLCAwLjE2MzQ5MSwgMC4yMzk0MTcsIDAuMzE1MjQxLCAwLjM5MTAzOCwgMC40NjY5MjQiLCBcCi0gICAgICAgICAgIjAuMDM0NDg0LCAwLjExMTA2OCwgMC4xNzE4MjUsIDAuMjQ3Njk3LCAwLjMyMzU4NywgMC4zOTk0NDUsIDAuNDc1MTc1IiwgXAotICAgICAgICAgICIwLjA0NTEzOSwgMC4xMjE0MzgsIDAuMTgyMTgyLCAwLjI1ODAzNiwgMC4zMzM4NzksIDAuNDA5NzIyLCAwLjQ4NTU1NSIsIFwKLSAgICAgICAgICAiMC4wNTM0MDcsIDAuMTMyMDk4LCAwLjE5Mjk0MiwgMC4yNjg4MjYsIDAuMzQ0NjUxLCAwLjQyMDYzMSwgMC40OTYzMDIiLCBcCi0gICAgICAgICAgIjAuMDYwNDIzLCAwLjE0MjM2OCwgMC4yMDI5MTYsIDAuMjc4NjksIDAuMzU0NzY1LCAwLjQzMDc4NSwgMC41MDYxNTkiLCBcCi0gICAgICAgICAgIjAuMDY5NDQ0LCAwLjE1OTQ0NiwgMC4yMTk4ODgsIDAuMjk1NTg2LCAwLjM3MjIwOCwgMC40NDgwODEsIDAuNTIzODc0IiwgXAotICAgICAgICAgICIwLjA3NTg1MywgMC4xNzU1NzMsIDAuMjM0NjYyLCAwLjMxMDIzNSwgMC4zODU5ODMsIDAuNDYxNjczLCAwLjUzNzYwNiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDUzMTksIDAuMjAyNDY0LCAwLjMyODI4NiwgMC40ODU4MDksIDAuNjQzMTksIDAuODAwMzA0LCAwLjk1Nzk0OSIsIFwKLSAgICAgICAgICAiMC4wNDc2MzcsIDAuMjAyNDA5LCAwLjMyODM0MSwgMC40ODU2MDUsIDAuNjQyOTIzLCAwLjgwMDM0NiwgMC45NTgxNDYiLCBcCi0gICAgICAgICAgIjAuMDU1MDg3LCAwLjIwMzQ5LCAwLjMyODM3MiwgMC40ODU3MDEsIDAuNjQyODcsIDAuODAwMzA4LCAwLjk1NzY2MyIsIFwKLSAgICAgICAgICAiMC4wNjQ4MzIsIDAuMjA3MjIxLCAwLjMyOTM1MSwgMC40ODU2MTIsIDAuNjQzMDU3LCAwLjgwMDU1MywgMC45NTc2OTIiLCBcCi0gICAgICAgICAgIjAuMDc0MDQ3LCAwLjIxMzMxMiwgMC4zMzI3NTcsIDAuNDg2NTg0LCAwLjY0Mjg0LCAwLjgwMDUzMywgMC45NTc1NTkiLCBcCi0gICAgICAgICAgIjAuMDg3NTQyLCAwLjIyNDcwMSwgMC4zNDA3NTcsIDAuNDkxMDkyLCAwLjY0NDY1NywgMC44MDA2NTksIDAuOTU3NzU5IiwgXAotICAgICAgICAgICIwLjA5ODUzOCwgMC4yMzQ1MTIsIDAuMzQ5NTM0LCAwLjQ5NzIzNywgMC42NDg5OTgsIDAuODAyNzE5LCAwLjk1ODM4NCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODEzMjIsIDAuMzYzNjA1LCAwLjU4OTQxOSwgMC44NzE5NTcsIDEuMTUyOTgsIDEuNDM2OTUsIDEuNzE4NTQiLCBcCi0gICAgICAgICAgIjAuMDg3NDMzLCAwLjM3MDMwMiwgMC41OTU1NzMsIDAuODc3NDc1LCAxLjE2MDAzLCAxLjQ0MTM1LCAxLjcyNDU1IiwgXAotICAgICAgICAgICIwLjA5NDY4MywgMC4zNzc1MjEsIDAuNjAzMDkzLCAwLjg4NTY4NywgMS4xNjc3OCwgMS40NTAxOSwgMS43MzI2MyIsIFwKLSAgICAgICAgICAiMC4xMDIyMTcsIDAuMzg1MTg0LCAwLjYxMDY3NCwgMC44OTM4MSwgMS4xNzQ2MiwgMS40NTc5OSwgMS43Mzg1NSIsIFwKLSAgICAgICAgICAiMC4xMDk3MzMsIDAuMzkyNTM0LCAwLjYxODM2MiwgMC45MDEzNSwgMS4xODI0NSwgMS40NjUyMSwgMS43NDY0NSIsIFwKLSAgICAgICAgICAiMC4xMjE0NjYsIDAuNDA0NTA3LCAwLjYzMDY1NiwgMC45MTMwNDgsIDEuMTk0NDksIDEuNDc2NTEsIDEuNzU4MiIsIFwKLSAgICAgICAgICAiMC4xMzA0MDcsIDAuNDE1MDc2LCAwLjY0MDU3LCAwLjkyMzI3MSwgMS4yMDQ3OCwgMS40ODY5NywgMS43Njg4OSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNjExODgsIDAuNzU3MjI2LCAxLjIzMzgyLCAxLjgyOTg4LCAyLjQyNTksIDMuMDIyODgsIDMuNjE4MSIsIFwKLSAgICAgICAgICAiMC4xNjEzNDMsIDAuNzU3MTgyLCAxLjIzMzgsIDEuODMxNTEsIDIuNDI5MjUsIDMuMDI0MzgsIDMuNjE3NzQiLCBcCi0gICAgICAgICAgIjAuMTYyNTMsIDAuNzU3MjcyLCAxLjIzNTE3LCAxLjgyOTg3LCAyLjQyNjY2LCAzLjAyMTk1LCAzLjYxNzc4IiwgXAotICAgICAgICAgICIwLjE2NTkyLCAwLjc1NzA4MywgMS4yMzQ0LCAxLjgzMDMxLCAyLjQyODE1LCAzLjAyMTcsIDMuNjE4MDIiLCBcCi0gICAgICAgICAgIjAuMTcwNTAxLCAwLjc1NzkyNiwgMS4yMzUzOSwgMS44MzAwNCwgMi40MjY3NiwgMy4wMjE4LCAzLjYxOTM5IiwgXAotICAgICAgICAgICIwLjE3OTg1OSwgMC43NTg1MjQsIDEuMjMzODksIDEuODMwMDcsIDIuNDI2MTcsIDMuMDI1NDksIDMuNjIxNDEiLCBcCi0gICAgICAgICAgIjAuMTg4NDg4LCAwLjc2MDYzMywgMS4yMzQ5MiwgMS44MzE5NCwgMi40MjcwMSwgMy4wMjM1MSwgMy42MjEzOCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjQ1NDcsIDAuMTAwNjIxLCAwLjE2MTMzNiwgMC4yMzcxMywgMC4zMTMxNCwgMC4zODg4MDgsIDAuNDY0OTE3IiwgXAotICAgICAgICAgICIwLjAzMzAzNiwgMC4xMDkwODIsIDAuMTY5NzYxLCAwLjI0NTU3NiwgMC4zMjEzNywgMC4zOTczMTksIDAuNDczMDEiLCBcCi0gICAgICAgICAgIjAuMDQzNDAxLCAwLjExOTY0NiwgMC4xODAyNTYsIDAuMjU2MDg3LCAwLjMzMTg5NCwgMC40MDc3NzcsIDAuNDgzNjU4IiwgXAotICAgICAgICAgICIwLjA1MTQyNSwgMC4xMzAzMiwgMC4xOTA3NzMsIDAuMjY2NzEzLCAwLjM0MjU5LCAwLjQxODQyLCAwLjQ5NDI0NSIsIFwKLSAgICAgICAgICAiMC4wNTc5MTEsIDAuMTQwODg5LCAwLjIwMTM2NywgMC4yNzY2MTksIDAuMzUwOTg3LCAwLjQyODQ1NiwgMC41MDQwNzgiLCBcCi0gICAgICAgICAgIjAuMDY2MjIyLCAwLjE1NzQxOCwgMC4yMTg2ODIsIDAuMjk0NDcsIDAuMzY5MjI2LCAwLjQ0NTE0MywgMC41MjA4NjgiLCBcCi0gICAgICAgICAgIjAuMDcyMDkyLCAwLjE3MzUzOSwgMC4yMzI2MzMsIDAuMzA4MDY4LCAwLjM4Mzg4NywgMC40NTk1OTUsIDAuNTM1NTg5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0MjQzMSwgMC4xOTk3NzMsIDAuMzI1Nzk5LCAwLjQ4MzEwMywgMC42NDA5NTgsIDAuNzk3OTc1LCAwLjk1NTY2NyIsIFwKLSAgICAgICAgICAiMC4wNDUwNDcsIDAuMTk5NzYzLCAwLjMyNTcxNSwgMC40ODMxNjUsIDAuNjQwNDI5LCAwLjc5Nzg5LCAwLjk1NTI4OSIsIFwKLSAgICAgICAgICAiMC4wNTI3NDEsIDAuMjAwNzg0LCAwLjMyNTczNCwgMC40ODI5NTYsIDAuNjQwNDc4LCAwLjc5NzkwOCwgMC45NTUzMzMiLCBcCi0gICAgICAgICAgIjAuMDYyMjIsIDAuMjA0NjcxLCAwLjMyNjgwNCwgMC40ODMyMDgsIDAuNjQwNDg5LCAwLjc5Nzk5LCAwLjk1NTE2NSIsIFwKLSAgICAgICAgICAiMC4wNzE0NTcsIDAuMjEwNTM1LCAwLjMzMDAxNCwgMC40ODQwNSwgMC42NDA5NDMsIDAuNzk4MDIsIDAuOTU1MzUzIiwgXAotICAgICAgICAgICIwLjA4NDg2NSwgMC4yMjIzMTEsIDAuMzM3Njk5LCAwLjQ4ODQ5MywgMC42NDIzMTYsIDAuNzk4Mjg1LCAwLjk1NTUwMyIsIFwKLSAgICAgICAgICAiMC4wOTU5NDIsIDAuMjMyMjQ3LCAwLjM0NzE1MiwgMC40OTQ3MjgsIDAuNjQ2NDUyLCAwLjgwMDMwMiwgMC45NTU4NTQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDcwNzY1LCAwLjM1MjcwNywgMC41Nzg1NzQsIDAuODYwNTA0LCAxLjE0MzY3LCAxLjQyNDk1LCAxLjcwNzQ1IiwgXAotICAgICAgICAgICIwLjA3NzMyNiwgMC4zNjAyMzEsIDAuNTg1NjMzLCAwLjg2ODM3OSwgMS4xNTA1NiwgMS40MzE4MSwgMS43MTUzMSIsIFwKLSAgICAgICAgICAiMC4wODYyOTQsIDAuMzY4NTE3LCAwLjU5NDE5MywgMC44NzY4MTksIDEuMTU5NDYsIDEuNDQyMDUsIDEuNzIzMTgiLCBcCi0gICAgICAgICAgIjAuMDk1NDM2LCAwLjM3NzA4OCwgMC42MDMyNjMsIDAuODg0OTAyLCAxLjE2NjYzLCAxLjQ1MDc2LCAxLjczMTkxIiwgXAotICAgICAgICAgICIwLjEwNDkzNiwgMC4zODU4NDgsIDAuNjExMzg4LCAwLjg5MzQ0OCwgMS4xNzUzNCwgMS40NTg1LCAxLjczOTkzIiwgXAotICAgICAgICAgICIwLjExOTQ0OCwgMC4zOTk3NywgMC42MjUyMjMsIDAuOTA2OTcsIDEuMTg4NzgsIDEuNDcwNjYsIDEuNzUzMzkiLCBcCi0gICAgICAgICAgIjAuMTMwNTc5LCAwLjQxMjYyLCAwLjYzNzcxLCAwLjkxOTI2NiwgMS4yMDEyNiwgMS40ODMwMSwgMS43NjUxNSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNjA4ODcsIDAuNzU2NzEyLCAxLjIzNTA3LCAxLjgzMTg1LCAyLjQyNjAzLCAzLjAyMjM3LCAzLjYxOTA5IiwgXAotICAgICAgICAgICIwLjE1OTg4NiwgMC43NTcxMjcsIDEuMjM1MjgsIDEuODMwMjksIDIuNDI1NzMsIDMuMDI1NDQsIDMuNjE5NDEiLCBcCi0gICAgICAgICAgIjAuMTYyNTUzLCAwLjc1NzgxNSwgMS4yMzUyOCwgMS44MzA1LCAyLjQyNjgyLCAzLjAyMzIxLCAzLjYxNzczIiwgXAotICAgICAgICAgICIwLjE2NzczMSwgMC43NTc3NTIsIDEuMjMzOTIsIDEuODMyMDMsIDIuNDI3MDEsIDMuMDIxNjEsIDMuNjE3ODciLCBcCi0gICAgICAgICAgIjAuMTc0NDA3LCAwLjc1NjY3NywgMS4yMzUzOSwgMS44MzI0LCAyLjQyODg1LCAzLjAyMjE2LCAzLjYxOTA1IiwgXAotICAgICAgICAgICIwLjE4NTkwNiwgMC43NTgyODgsIDEuMjM1MTksIDEuODMxNTcsIDIuNDI1OTQsIDMuMDI1MiwgMy42MjI4MyIsIFwKLSAgICAgICAgICAiMC4xOTY0MTYsIDAuNzYxNDg3LCAxLjIzNTEyLCAxLjgzMTc0LCAyLjQyODgsIDMuMDI1MDcsIDMuNjIyNDQiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDIyMjU1LCAwLjA5ODEyMiwgMC4xNTg3ODIsIDAuMjM0Njg5LCAwLjMxMDUwNywgMC4zODYzNDksIDAuNDYyMjE2IiwgXAotICAgICAgICAgICIwLjAzMDgxLCAwLjEwNjY3NiwgMC4xNjczNTMsIDAuMjQzMTYsIDAuMzE4OTk2LCAwLjM5NDkxOSwgMC40NzA2MjUiLCBcCi0gICAgICAgICAgIjAuMDQwNjkxLCAwLjExNzIyMywgMC4xNzc5OTMsIDAuMjUzODU3LCAwLjMyOTY0MSwgMC40MDU2NzQsIDAuNDgxNDI3IiwgXAotICAgICAgICAgICIwLjA0ODE3NywgMC4xMjc3NDEsIDAuMTg4MTcxLCAwLjI2MzkzOSwgMC4zMzk5MjksIDAuNDE1NTkzLCAwLjQ5MTYyOSIsIFwKLSAgICAgICAgICAiMC4wNTM4OTksIDAuMTM4NTAzLCAwLjE5OTE4NiwgMC4yNzUwMTYsIDAuMzUwNzMsIDAuNDI2NzE4LCAwLjUwMjUwNyIsIFwKLSAgICAgICAgICAiMC4wNjE3OTMsIDAuMTU1MzQ2LCAwLjIxNjI2OSwgMC4yOTE0NDcsIDAuMzY3MTM3LCAwLjQ0Mjk5OCwgMC41MTg4MjkiLCBcCi0gICAgICAgICAgIjAuMDY3MDQ5LCAwLjE3MDMwNiwgMC4yMzA3MTYsIDAuMzA2MjQ3LCAwLjM4MjMwOCwgMC40NTgxMDYsIDAuNTMzNjk0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzOTU1NiwgMC4xOTcwNzgsIDAuMzIzNTE5LCAwLjQ4MDMzMywgMC42Mzc4OTMsIDAuNzk1MzYxLCAwLjk1NDQyMyIsIFwKLSAgICAgICAgICAiMC4wNDI0NTMsIDAuMTk3MzE5LCAwLjMyMjgwNiwgMC40ODAzMDUsIDAuNjM3NjQ5LCAwLjc5NTMyMSwgMC45NTMyNzMiLCBcCi0gICAgICAgICAgIjAuMDUwNzQyLCAwLjE5ODQsIDAuMzIyODAxLCAwLjQ4MDQxNywgMC42Mzg3OTMsIDAuNzk1MjgsIDAuOTUyNzgxIiwgXAotICAgICAgICAgICIwLjA2MDM2MSwgMC4yMDIxNTQsIDAuMzI0NzQ4LCAwLjQ4MTA5NiwgMC42Mzc4ODgsIDAuNzk1MTg3LCAwLjk1MjgwMSIsIFwKLSAgICAgICAgICAiMC4wNjk3MjUsIDAuMjA3OTE5LCAwLjMyNzg2MiwgMC40ODExMTUsIDAuNjM4NzExLCAwLjc5NTc1NCwgMC45NTQzMDciLCBcCi0gICAgICAgICAgIjAuMDgyMzU1LCAwLjIxOTM0OCwgMC4zMzU1ODMsIDAuNDg2MjQ0LCAwLjY0MDg0OCwgMC43OTY3ODEsIDAuOTUyNDM0IiwgXAotICAgICAgICAgICIwLjA5MzI1MywgMC4yMzA5NSwgMC4zNDQ2OTgsIDAuNDkyMTE1LCAwLjY0NDQ4MywgMC43OTg4MDcsIDAuOTUzMzQ0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQU4iOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwOTQxNSwgMC4wMDk0NSwgMC4wMDk0NTMsIDAuMDA5NDU0LCAwLjAwOTQ1NiwgMC4wMDk0NTYsIDAuMDA5NDU1IiwgXAotICAgICAgICAgICIwLjAwOTM5OSwgMC4wMDk0NSwgMC4wMDk0NTcsIDAuMDA5NDYsIDAuMDA5NDYyLCAwLjAwOTQ2NCwgMC4wMDk0NjMiLCBcCi0gICAgICAgICAgIjAuMDA5NDQ5LCAwLjAwOTUxMiwgMC4wMDk1MiwgMC4wMDk1MjYsIDAuMDA5NTI4LCAwLjAwOTUzLCAwLjAwOTUzMSIsIFwKLSAgICAgICAgICAiMC4wMDk1MzcsIDAuMDA5NjA2LCAwLjAwOTYxOCwgMC4wMDk2MjQsIDAuMDA5NjI3LCAwLjAwOTYyOSwgMC4wMDk2MzIiLCBcCi0gICAgICAgICAgIjAuMDA5NjM4LCAwLjAwOTcxOCwgMC4wMDk3MjMsIDAuMDA5NzMxLCAwLjAwOTc0MSwgMC4wMDk3NDQsIDAuMDA5NzM5IiwgXAotICAgICAgICAgICIwLjAwOTg0MSwgMC4wMDk5MTcsIDAuMDA5OTMyLCAwLjAwOTkzMiwgMC4wMDk5NDUsIDAuMDA5OTQ5LCAwLjAwOTkzOSIsIFwKLSAgICAgICAgICAiMC4wMTAwMjEsIDAuMDEwMTA2LCAwLjAxMDExNiwgMC4wMTAxMzcsIDAuMDEwMTQyLCAwLjAxMDE0MywgMC4wMTAxNDYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDU2MDMsIDAuMDA1NjAyLCAwLjAwNTYwNiwgMC4wMDU2MDIsIDAuMDA1NiwgMC4wMDU2MDEsIDAuMDA1NjAxIiwgXAotICAgICAgICAgICIwLjAwNTU5NywgMC4wMDU2MDEsIDAuMDA1NjAyLCAwLjAwNTYwMiwgMC4wMDU2MDEsIDAuMDA1NjAxLCAwLjAwNTYwMiIsIFwKLSAgICAgICAgICAiMC4wMDU2NTMsIDAuMDA1NjU1LCAwLjAwNTY1NiwgMC4wMDU2NTUsIDAuMDA1NjU1LCAwLjAwNTY1NSwgMC4wMDU2NTUiLCBcCi0gICAgICAgICAgIjAuMDA1NzQ5LCAwLjAwNTc0MSwgMC4wMDU3NDgsIDAuMDA1NzQ4LCAwLjAwNTc0MiwgMC4wMDU3NDgsIDAuMDA1NzQyIiwgXAotICAgICAgICAgICIwLjAwNTg2NywgMC4wMDU4NTksIDAuMDA1ODU3LCAwLjAwNTg1NiwgMC4wMDU4NTYsIDAuMDA1ODU1LCAwLjAwNTg1NCIsIFwKLSAgICAgICAgICAiMC4wMDYwNDUsIDAuMDA2MDUxLCAwLjAwNjA1LCAwLjAwNjA1LCAwLjAwNjA1LCAwLjAwNjA1LCAwLjAwNjA0OSIsIFwKLSAgICAgICAgICAiMC4wMDYyMzEsIDAuMDA2MjM1LCAwLjAwNjIyOCwgMC4wMDYyMzEsIDAuMDA2MjMyLCAwLjAwNjIyNSwgMC4wMDYyMjgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDc5MjQsIDAuMDA3OTQ1LCAwLjAwNzk0NCwgMC4wMDc5NDgsIDAuMDA3OTQ5LCAwLjAwNzk0OSwgMC4wMDc5NDkiLCBcCi0gICAgICAgICAgIjAuMDA3ODU0LCAwLjAwNzkyMywgMC4wMDc5MzMsIDAuMDA3OTM4LCAwLjAwNzk0MSwgMC4wMDc5NDMsIDAuMDA3OTQiLCBcCi0gICAgICAgICAgIjAuMDA3ODEzLCAwLjAwNzksIDAuMDA3OTE3LCAwLjAwNzkyNywgMC4wMDc5MzIsIDAuMDA3OTM1LCAwLjAwNzkzOCIsIFwKLSAgICAgICAgICAiMC4wMDc4MDIsIDAuMDA3ODgzLCAwLjAwNzkwNSwgMC4wMDc5MTgsIDAuMDA3OTI1LCAwLjAwNzkzLCAwLjAwNzkzMiIsIFwKLSAgICAgICAgICAiMC4wMDc4MSwgMC4wMDc4NzUsIDAuMDA3ODk2LCAwLjAwNzkxMSwgMC4wMDc5MTksIDAuMDA3OTI0LCAwLjAwNzkyNiIsIFwKLSAgICAgICAgICAiMC4wMDc4NjcsIDAuMDA3ODgxLCAwLjAwNzg5OCwgMC4wMDc5MSwgMC4wMDc5MTcsIDAuMDA3OTIzLCAwLjAwNzkyNSIsIFwKLSAgICAgICAgICAiMC4wMDc5NTcsIDAuMDA3OTA1LCAwLjAwNzkxMiwgMC4wMDc5MTgsIDAuMDA3OTI0LCAwLjAwNzkyNywgMC4wMDc5MzEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDE0NjgsIDAuMDAxNDcsIDAuMDAxNDcsIDAuMDAxNDcsIDAuMDAxNDcsIDAuMDAxNDY5LCAwLjAwMTQ2OSIsIFwKLSAgICAgICAgICAiMC4wMDE0MTcsIDAuMDAxNDI4LCAwLjAwMTQzLCAwLjAwMTQzMSwgMC4wMDE0MzEsIDAuMDAxNDMxLCAwLjAwMTQzMSIsIFwKLSAgICAgICAgICAiMC4wMDE0MzYsIDAuMDAxNDQsIDAuMDAxNDM0LCAwLjAwMTQzMiwgMC4wMDE0MywgMC4wMDE0MjksIDAuMDAxNDI5IiwgXAotICAgICAgICAgICIwLjAwMTU0MSwgMC4wMDE0NjMsIDAuMDAxNDQ2LCAwLjAwMTQzOCwgMC4wMDE0MzQsIDAuMDAxNDMyLCAwLjAwMTQzIiwgXAotICAgICAgICAgICIwLjAwMTY0OCwgMC4wMDE1NSwgMC4wMDE1MDgsIDAuMDAxNDgzLCAwLjAwMTQ4MywgMC4wMDE0NywgMC4wMDE0NTUiLCBcCi0gICAgICAgICAgIjAuMDAxODc1LCAwLjAwMTY3OCwgMC4wMDE1OTQsIDAuMDAxNTQ2LCAwLjAwMTUxOCwgMC4wMDE1MDEsIDAuMDAxNDg4IiwgXAotICAgICAgICAgICIwLjAwMjEzNSwgMC4wMDE2ODUsIDAuMDAxNzAyLCAwLjAwMTYyMSwgMC4wMDE1ODEsIDAuMDAxNTUsIDAuMDAxNTMzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2NjIsIDAuMDA2NjQxLCAwLjAwNjY0MywgMC4wMDY2NDUsIDAuMDA2NjQ1LCAwLjAwNjY0NSwgMC4wMDY2NDUiLCBcCi0gICAgICAgICAgIjAuMDA2NTUsIDAuMDA2NjE4LCAwLjAwNjYyOSwgMC4wMDY2MzUsIDAuMDA2NjM3LCAwLjAwNjYzNCwgMC4wMDY2MzkiLCBcCi0gICAgICAgICAgIjAuMDA2NTE3LCAwLjAwNjU5OCwgMC4wMDY2MTQsIDAuMDA2NjI0LCAwLjAwNjYzLCAwLjAwNjYzMSwgMC4wMDY2MzQiLCBcCi0gICAgICAgICAgIjAuMDA2NTIxLCAwLjAwNjU4NiwgMC4wMDY2MDMsIDAuMDA2NjE2LCAwLjAwNjYyNCwgMC4wMDY2MjYsIDAuMDA2NjMxIiwgXAotICAgICAgICAgICIwLjAwNjU1NSwgMC4wMDY1ODYsIDAuMDA2NjAzLCAwLjAwNjYxNCwgMC4wMDY2MiwgMC4wMDY2MjUsIDAuMDA2NjI4IiwgXAotICAgICAgICAgICIwLjAwNjY3LCAwLjAwNjYxLCAwLjAwNjYxNCwgMC4wMDY2MTksIDAuMDA2NjI2LCAwLjAwNjYyOCwgMC4wMDY2MyIsIFwKLSAgICAgICAgICAiMC4wMDY4MDUsIDAuMDA2NjUxLCAwLjAwNjYzOCwgMC4wMDY2MzgsIDAuMDA2NjM2LCAwLjAwNjYzNywgMC4wMDY2MzgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDA3NiwgMC4wMDA3NjksIDAuMDAwNzcsIDAuMDAwNzcxLCAwLjAwMDc3MSwgMC4wMDA3NzEsIDAuMDAwNzcxIiwgXAotICAgICAgICAgICIwLjAwMDc2MiwgMC4wMDA3OTcsIDAuMDAwODAyLCAwLjAwMDgwNCwgMC4wMDA4MDYsIDAuMDAwODA2LCAwLjAwMDgwNyIsIFwKLSAgICAgICAgICAiMC4wMDA3ODUsIDAuMDAwODI0LCAwLjAwMDgxNSwgMC4wMDA4MTYsIDAuMDAwODE3LCAwLjAwMDgxNiwgMC4wMDA4MTciLCBcCi0gICAgICAgICAgIjAuMDAwODY0LCAwLjAwMDg2MiwgMC4wMDA4MzYsIDAuMDAwODQxLCAwLjAwMDgzNywgMC4wMDA4MzMsIDAuMDAwODMxIiwgXAotICAgICAgICAgICIwLjAwMDk3MywgMC4wMDA4OTIsIDAuMDAwODY5LCAwLjAwMDg3NSwgMC4wMDA4NiwgMC4wMDA4NTYsIDAuMDAwODUxIiwgXAotICAgICAgICAgICIwLjAwMTIxMywgMC4wMDEwNTcsIDAuMDAwOTc5LCAwLjAwMDkzNywgMC4wMDA5MTEsIDAuMDAwODk3LCAwLjAwMDg4NiIsIFwKLSAgICAgICAgICAiMC4wMDE0OTgsIDAuMDAxMDU3LCAwLjAwMTA4NywgMC4wMDEwMTIsIDAuMDAwOTc1LCAwLjAwMDk0NywgMC4wMDA5MyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkQiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNTE0LCAwLjAwNTE3MiwgMC4wMDUxNzYsIDAuMDA1MTc3LCAwLjAwNTE3OCwgMC4wMDUxNzcsIDAuMDA1MTc3IiwgXAotICAgICAgICAgICIwLjAwNTA3MiwgMC4wMDUxNDYsIDAuMDA1MTU4LCAwLjAwNTE2NSwgMC4wMDUxNjYsIDAuMDA1MTY5LCAwLjAwNTE3MSIsIFwKLSAgICAgICAgICAiMC4wMDUxMDQsIDAuMDA1MTM2LCAwLjAwNTE0OSwgMC4wMDUxNTgsIDAuMDA1MTYyLCAwLjAwNTE2NSwgMC4wMDUxNjciLCBcCi0gICAgICAgICAgIjAuMDA1MjA0LCAwLjAwNTE1MiwgMC4wMDUxNTcsIDAuMDA1MTYyLCAwLjAwNTE2MywgMC4wMDUxNjcsIDAuMDA1MTY4IiwgXAotICAgICAgICAgICIwLjAwNTM2MSwgMC4wMDUxOTQsIDAuMDA1MTg1LCAwLjAwNTE4LCAwLjAwNTE3OCwgMC4wMDUxNzcsIDAuMDA1MTc0IiwgXAotICAgICAgICAgICIwLjAwNTYyMiwgMC4wMDUyOSwgMC4wMDUyNCwgMC4wMDUyMTksIDAuMDA1MjA2LCAwLjAwNTE5NiwgMC4wMDUxOTYiLCBcCi0gICAgICAgICAgIjAuMDA1ODc0LCAwLjAwNTM5NiwgMC4wMDUzMDksIDAuMDA1MjY0LCAwLjAwNTI0MSwgMC4wMDUyMjgsIDAuMDA1MjE5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwMDE4LCAwLjAwMDA1MywgMC4wMDAwNTcsIDAuMDAwMDU4LCAwLjAwMDA1OSwgMC4wMDAwNiwgMC4wMDAwNiIsIFwKLSAgICAgICAgICAiMC4wMDAwNDEsIDAuMDAwMTE2LCAwLjAwMDEyNywgMC4wMDAxMzIsIDAuMDAwMTM1LCAwLjAwMDEzNiwgMC4wMDAxMzgiLCBcCi0gICAgICAgICAgIjAuMDAwMDk5LCAwLjAwMDE0LCAwLjAwMDE0OCwgMC4wMDAxNTQsIDAuMDAwMTU2LCAwLjAwMDE1NywgMC4wMDAxNTgiLCBcCi0gICAgICAgICAgIjAuMDAwMTYxLCAwLjAwMDE3NCwgMC4wMDAxODIsIDAuMDAwMTc4LCAwLjAwMDE3NCwgMC4wMDAxNzMsIDAuMDAwMTcyIiwgXAotICAgICAgICAgICIwLjAwMDMyMSwgMC4wMDAyMjIsIDAuMDAwMTkxLCAwLjAwMDE4NiwgMC4wMDAxODMsIDAuMDAwMTgxLCAwLjAwMDE3OCIsIFwKLSAgICAgICAgICAiMC4wMDA1MTYsIDAuMDAwMzQ2LCAwLjAwMDMxNCwgMC4wMDAyNiwgMC4wMDAyMzksIDAuMDAwMjI4LCAwLjAwMDIyIiwgXAotICAgICAgICAgICIwLjAwMDc5MSwgMC4wMDA0NjUsIDAuMDAwMzc0LCAwLjAwMDMxNywgMC4wMDAzMzUsIDAuMDAwMzA4LCAwLjAwMDI1NiIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IE5PUjRCWDQgKgotICogLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoTk9SNEJYNCkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAxLjI3OTkyOwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBTikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwODY3MjQ4OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDg2NzAwNDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA4NjcyNDg7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA3MTM3LCAwLjAwNzEyMSwgMC4wMDcyMDYsIDAuMDA3MzIxLCAwLjAwNzQ3MiwgMC4wMDc3NCwgMC4wMDgwMDIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDQzMjcsIDAuMDA0Mjk4LCAwLjAwNDM0NCwgMC4wMDQ0NDgsIDAuMDA0NTgxLCAwLjAwNDg2NywgMC4wMDUxMTkiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMzE0MjU1OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMzEyMzgzOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMzE0MjU1OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDY4NiwgMC4wMDA2ODYsIDAuMDAwNjg2LCAwLjAwMDY4NywgMC4wMDA2ODcsIDAuMDAwNjg3LCAwLjAwMDY4NyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTUyNiwgMC4wMDE1MjcsIDAuMDAxNTI4LCAwLjAwMTUyNSwgMC4wMDE1MjUsIDAuMDAxNTI3LCAwLjAwMTUyNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQykgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAzMTYzMzk7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAzMTQ3OTg7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAzMTYzMzk7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNTU3LCAwLjAwMDU1NywgMC4wMDA1NTcsIDAuMDAwNTU3LCAwLjAwMDU1NywgMC4wMDA1NTcsIDAuMDAwNTU3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxMTMsIDAuMDAxMTI4LCAwLjAwMTEyOSwgMC4wMDExMjksIDAuMDAxMTMsIDAuMDAxMTI5LCAwLjAwMTEyOCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAzMjMxMTY7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAzMjMxMTY7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAzMjI5ODI7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNDA2LCAwLjAwMDQwNiwgMC4wMDA0MDYsIDAuMDAwNDA2LCAwLjAwMDQwNiwgMC4wMDA0MDYsIDAuMDAwNDA2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxMzM4LCAwLjAwMTMzNywgMC4wMDEzMzgsIDAuMDAxMzM3LCAwLjAwMTMzNywgMC4wMDEzMzcsIDAuMDAxMzM2Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMzY5NDIxOwotICAgIGZ1bmN0aW9uIDogIighKCgoKCFBTikrQikrQykrRCkpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzgxOTksIDAuMjc4NzI4LCAwLjQ3ODI2MiwgMC42MjEwMjMsIDAuODQ5NTY1LCAxLjA0ODk5LCAxLjMzNDg5IiwgXAotICAgICAgICAgICIwLjA4NjI4OSwgMC4yODY4NTQsIDAuNDg3MzU4LCAwLjYzMDI4OCwgMC44NTg2NTksIDEuMDU4OTksIDEuMzQ0OTEiLCBcCi0gICAgICAgICAgIjAuMDk0NjE4LCAwLjI5NTMxMywgMC40OTU3NDQsIDAuNjM4NTI4LCAwLjg2NzQ5MSwgMS4wNjc4OSwgMS4zNTIyIiwgXAotICAgICAgICAgICIwLjEwMDczOCwgMC4zMDEzOTIsIDAuNTAxODM5LCAwLjY0NTE1NSwgMC44NzMzNzYsIDEuMDczNDcsIDEuMzU5MzUiLCBcCi0gICAgICAgICAgIjAuMTA1NjkzLCAwLjMwNjQwNSwgMC41MDY0NTcsIDAuNjQ5NjM4LCAwLjg3ODAyMSwgMS4wNzg5LCAxLjM2NDUzIiwgXAotICAgICAgICAgICIwLjExMjQ1NCwgMC4zMTMwOTQsIDAuNTEzNDQ1LCAwLjY1NjY2NywgMC44ODQ3NTIsIDEuMDg0OTUsIDEuMzcxNzkiLCBcCi0gICAgICAgICAgIjAuMTE3NDQ2LCAwLjMxOCwgMC41MTgyMywgMC42NjExNjgsIDAuODg5NTgsIDEuMDg5OCwgMS4zNzU2NSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwMjQyOSwgMC41MjYxODUsIDAuOTQ4NjM2LCAxLjI1MTY2LCAxLjczNjQ0LCAyLjE1Njk3LCAyLjc2NTU5IiwgXAotICAgICAgICAgICIwLjEwMjQzMywgMC41MjYyNjYsIDAuOTQ4NTQsIDEuMjUxNjcsIDEuNzM2MDUsIDIuMTU5MjksIDIuNzY0NCIsIFwKLSAgICAgICAgICAiMC4xMDI0NjYsIDAuNTI2MjE1LCAwLjk0OTE5NywgMS4yNTIwNywgMS43MzU2OSwgMi4xNTk2LCAyLjc2NjY3IiwgXAotICAgICAgICAgICIwLjEwMjUyMiwgMC41MjU4MiwgMC45NDkxNTYsIDEuMjUxODIsIDEuNzM2MjEsIDIuMTU5MTgsIDIuNzY1MjYiLCBcCi0gICAgICAgICAgIjAuMTAyNDk4LCAwLjUyNTYwOCwgMC45NTAyNDUsIDEuMjUxOTMsIDEuNzM3NjMsIDIuMTU5MjgsIDIuNzY0MzIiLCBcCi0gICAgICAgICAgIjAuMTAyNjg4LCAwLjUyNTQ1OCwgMC45NDkyNjYsIDEuMjUxNzIsIDEuNzM2ODQsIDIuMTYxOTEsIDIuNzY0NzgiLCBcCi0gICAgICAgICAgIjAuMTAyOTAxLCAwLjUyNTgwNSwgMC45NDk5ODMsIDEuMjUyODcsIDEuNzM2MTksIDIuMTYxNTgsIDIuNzY3NzIiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzcxODUsIDAuMDkzNjI2LCAwLjE0Nzk0MSwgMC4xODY1ODUsIDAuMjQ4MjY5LCAwLjMwMjE1NSwgMC4zNzkxNzciLCBcCi0gICAgICAgICAgIjAuMDQ1MzQ5LCAwLjEwMTc2NywgMC4xNTYxLCAwLjE5NDcwNywgMC4yNTYzODYsIDAuMzEwMzk1LCAwLjM4NzM2NyIsIFwKLSAgICAgICAgICAiMC4wNTM5MDcsIDAuMTEwMjk2LCAwLjE2NDYwMywgMC4yMDMyMjUsIDAuMjY0OTkyLCAwLjMxODk1LCAwLjM5NTgyMyIsIFwKLSAgICAgICAgICAiMC4wNjAxOSwgMC4xMTY3NTQsIDAuMTcxMTM0LCAwLjIwOTY3NywgMC4yNzEzMzQsIDAuMzI1MzUsIDAuNDAyNDEyIiwgXAotICAgICAgICAgICIwLjA2NTE2NCwgMC4xMjE4NSwgMC4xNzU5MDMsIDAuMjE0NDg3LCAwLjI3NjE2NiwgMC4zMzAxODUsIDAuNDA3MDU5IiwgXAotICAgICAgICAgICIwLjA3MTk0MiwgMC4xMjg1NjIsIDAuMTgyNDU1LCAwLjIyMTAyNywgMC4yODI2MjYsIDAuMzM2NTQ5LCAwLjQxMzQ5NCIsIFwKLSAgICAgICAgICAiMC4wNzY3NDQsIDAuMTMzNDY4LCAwLjE4NzQ1OCwgMC4yMjYwMDUsIDAuMjg3NjI2LCAwLjM0MTUwOSwgMC40MTg0NCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzNTM5NSwgMC4xNDU1NjYsIDAuMjU3MTE1LCAwLjMzNjg5NCwgMC40NjQ2OTYsIDAuNTc2NjcsIDAuNzM2NTEzIiwgXAotICAgICAgICAgICIwLjAzNTQ0NiwgMC4xNDU2NjUsIDAuMjU3MTE2LCAwLjMzNzAzMSwgMC40NjQ3MjEsIDAuNTc2ODA2LCAwLjczNjM1NyIsIFwKLSAgICAgICAgICAiMC4wMzYyNTgsIDAuMTQ1Nzc1LCAwLjI1NzE4NSwgMC4zMzY5MjEsIDAuNDY0ODI5LCAwLjU3NjczNywgMC43MzY1ODciLCBcCi0gICAgICAgICAgIjAuMDM3MzU4LCAwLjE0NjAwNSwgMC4yNTcxOTYsIDAuMzM3MDg0LCAwLjQ2NDgwMiwgMC41NzY1NzIsIDAuNzM2NjI0IiwgXAotICAgICAgICAgICIwLjAzODMxMSwgMC4xNDYyODUsIDAuMjU3MzYxLCAwLjMzNzA2NiwgMC40NjQ4NCwgMC41NzY1NjgsIDAuNzM2NDkiLCBcCi0gICAgICAgICAgIjAuMDM5NjQ5LCAwLjE0NjY0LCAwLjI1NzQ5NCwgMC4zMzcyNTgsIDAuNDY0OTA0LCAwLjU3Njc0NywgMC43MzY1MTIiLCBcCi0gICAgICAgICAgIjAuMDQwODQyLCAwLjE0NzIxMywgMC4yNTc2OTEsIDAuMzM3Mjk4LCAwLjQ2NDk1NCwgMC41NzY2NSwgMC43MzY1NDYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTkwOTMsIDAuMjU5MjM2LCAwLjQ1OTk5NiwgMC42MDI1NzEsIDAuODMxODkzLCAxLjAzMTI3LCAxLjMxNjE1IiwgXAotICAgICAgICAgICIwLjA2NDc3MSwgMC4yNjU2MzMsIDAuNDY1ODkzLCAwLjYwODM5NiwgMC44MzczOTQsIDEuMDM3NTcsIDEuMzIzNzIiLCBcCi0gICAgICAgICAgIjAuMDcwNDc2LCAwLjI3MTQ3NiwgMC40NzE0MjYsIDAuNjE0MTUyLCAwLjg0MzYxMSwgMS4wNDM2NywgMS4zMjk2NCIsIFwKLSAgICAgICAgICAiMC4wNzU4NjEsIDAuMjc2Njk2LCAwLjQ3Njk5MywgMC42MTk2MjksIDAuODQ4MTg5LCAxLjA0OTExLCAxLjMzNDI1IiwgXAotICAgICAgICAgICIwLjA4MDM3NiwgMC4yODIwMDUsIDAuNDgyNDU2LCAwLjYyNTMzNiwgMC44NTQxMzgsIDEuMDUzNzMsIDEuMzM5MDUiLCBcCi0gICAgICAgICAgIjAuMDg2NzI1LCAwLjI5MDMyOSwgMC40OTAyNjEsIDAuNjMzMTQ5LCAwLjg2MTc0MiwgMS4wNjE4NSwgMS4zNDc0MyIsIFwKLSAgICAgICAgICAiMC4wOTE3NjksIDAuMjk3NzU3LCAwLjQ5ODA3MSwgMC42NDA5ODIsIDAuODY5Nzk2LCAxLjA3MDM0LCAxLjM1NTUiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDIyNzMsIDAuNTI1NjksIDAuOTQ5Mjg0LCAxLjI1MTYsIDEuNzM2MDgsIDIuMTU5MTUsIDIuNzY1MzEiLCBcCi0gICAgICAgICAgIjAuMTAyMzc2LCAwLjUyNTc3OSwgMC45NDg4NzcsIDEuMjUyMjMsIDEuNzM1NjUsIDIuMTU5MjUsIDIuNzY0MjMiLCBcCi0gICAgICAgICAgIjAuMTAzOTcyLCAwLjUyNTY1NywgMC45NTAyNTMsIDEuMjUyMzUsIDEuNzM1OTcsIDIuMTU5NCwgMi43NjQyMyIsIFwKLSAgICAgICAgICAiMC4xMDY2NTgsIDAuNTI2MjMsIDAuOTQ4OTU5LCAxLjI1MzE2LCAxLjczNzc0LCAyLjE1OTM4LCAyLjc2NDU3IiwgXAotICAgICAgICAgICIwLjExMDU3LCAwLjUyNjE2OCwgMC45NDkxODMsIDEuMjUxNjEsIDEuNzM2NDIsIDIuMTYxNzUsIDIuNzY1NCIsIFwKLSAgICAgICAgICAiMC4xMTg0MDEsIDAuNTI4NzE1LCAwLjk1MDI1MiwgMS4yNTI0NywgMS43MzYzNCwgMi4xNjA3OSwgMi43Njc1MiIsIFwKLSAgICAgICAgICAiMC4xMjU1ODYsIDAuNTMxMjkyLCAwLjk1MTI4LCAxLjI1MTY2LCAxLjczNzc2LCAyLjE1OTI2LCAyLjc2NzQ2Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE4MTYsIDAuMDczMTU5LCAwLjEyNzIxMSwgMC4xNjU3MzIsIDAuMjI3MzQzLCAwLjI4MTI5NCwgMC4zNTgzODEiLCBcCi0gICAgICAgICAgIjAuMDI2NjQxLCAwLjA4MTUxNiwgMC4xMzU1MjgsIDAuMTc0MDYxLCAwLjIzNTY2NSwgMC4yODk2MjIsIDAuMzY2NTMiLCBcCi0gICAgICAgICAgIjAuMDM1OTMzLCAwLjA5MTg4NSwgMC4xNDU4OTIsIDAuMTg0NDQyLCAwLjI0NjA1OSwgMC4yOTk5MTcsIDAuMzc2OTczIiwgXAotICAgICAgICAgICIwLjA0MjM5NSwgMC4xMDI2MzQsIDAuMTU2NzA3LCAwLjE5NTIxOSwgMC4yNTY3NTMsIDAuMzEwNzQyLCAwLjM4NzgyNiIsIFwKLSAgICAgICAgICAiMC4wNDc3MjEsIDAuMTEzNjkxLCAwLjE2Njk4NCwgMC4yMDU0NDYsIDAuMjY2OTk1LCAwLjMyMDg2MSwgMC4zOTc4NDIiLCBcCi0gICAgICAgICAgIjAuMDU0NzE5LCAwLjEzMDcyNywgMC4xODM2NTksIDAuMjIyMDk2LCAwLjI4MzUzNywgMC4zMzczMjksIDAuNDE0MzI3IiwgXAotICAgICAgICAgICIwLjA1OTYwNSwgMC4xNDM5MzcsIDAuMTk5ODYzLCAwLjIzNjg2OSwgMC4yOTgxNTcsIDAuMzUyMDEyLCAwLjQyODg0OCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyOTgwNSwgMC4xNDE1MTQsIDAuMjUzMzk1LCAwLjMzMzI4OSwgMC40NjEyMDMsIDAuNTczMjM4LCAwLjczMzQ4NCIsIFwKLSAgICAgICAgICAiMC4wMzM0MjQsIDAuMTQxNDUzLCAwLjI1MzQwMSwgMC4zMzMzNTMsIDAuNDYxMjc2LCAwLjU3MzE3OCwgMC43MzMxNjIiLCBcCi0gICAgICAgICAgIjAuMDQyMTUzLCAwLjE0NDM2MywgMC4yNTM2NTksIDAuMzMzMzYyLCAwLjQ2MTE3OSwgMC41NzMyOCwgMC43MzM0MzYiLCBcCi0gICAgICAgICAgIjAuMDUxNTMxLCAwLjE0OTg1MiwgMC4yNTYxNjcsIDAuMzM0MzMyLCAwLjQ2MTIyNSwgMC41NzMxMiwgMC43MzMxOTgiLCBcCi0gICAgICAgICAgIjAuMDU5NDkzLCAwLjE1NjY1NCwgMC4yNjA5NjMsIDAuMzM3NDk0LCAwLjQ2MjQ1NSwgMC41NzMzMjQsIDAuNzMzMTc0IiwgXAotICAgICAgICAgICIwLjA3MTM2MiwgMC4xNjk1NDgsIDAuMjcwOTYxLCAwLjM0NTQ2NywgMC40Njc1MDYsIDAuNTc2MzQ4LCAwLjczMzgwMyIsIFwKLSAgICAgICAgICAiMC4wODEyNjcsIDAuMTgyMzIxLCAwLjI4MDIxNywgMC4zNTQyNTMsIDAuNDc0MDA1LCAwLjU4MTI0NCwgMC43MzY3NDciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTMwNCwgMC4yNTMzNDEsIDAuNDUzNzc4LCAwLjU5NjE0OSwgMC44MjUxODgsIDEuMDI1MjcsIDEuMzExMzgiLCBcCi0gICAgICAgICAgIjAuMDU4OTgsIDAuMjU5Njk2LCAwLjQ1OTY1NiwgMC42MDMxNywgMC44MzE3NjIsIDEuMDMyMDYsIDEuMzE2NzMiLCBcCi0gICAgICAgICAgIjAuMDY2MjY1LCAwLjI2NzE2OCwgMC40NjcyNTEsIDAuNjA5ODk5LCAwLjgzOTUzLCAxLjAzOTMzLCAxLjMyNTkzIiwgXAotICAgICAgICAgICIwLjA3MzU4NywgMC4yNzQ0OTIsIDAuNDc0NjA0LCAwLjYxNzUzOSwgMC44NDYwODgsIDEuMDQ1OCwgMS4zMzIyNCIsIFwKLSAgICAgICAgICAiMC4wODAxNzIsIDAuMjgxNzgxLCAwLjQ4MjA5MiwgMC42MjUwNTcsIDAuODUzNDk2LCAxLjA1NDQyLCAxLjM0MDQ1IiwgXAotICAgICAgICAgICIwLjA4OTMzMywgMC4yOTM5NDUsIDAuNDk0NDQ0LCAwLjYzNzM0OCwgMC44NjU5NywgMS4wNjYyNywgMS4zNTE4IiwgXAotICAgICAgICAgICIwLjA5NjM5NiwgMC4zMDQ4NDcsIDAuNTA1MDk4LCAwLjY0NzcyOCwgMC44NzYzNiwgMS4wNzcwMSwgMS4zNjI2Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTAyMjMsIDAuNTI1NzQ1LCAwLjk0OTI4LCAxLjI1MjE4LCAxLjczNTY4LCAyLjE1OTIzLCAyLjc2NDIyIiwgXAotICAgICAgICAgICIwLjEwMjQ1NCwgMC41MjYxOTUsIDAuOTQ5NzYzLCAxLjI1MTgzLCAxLjczNTc4LCAyLjE1OTUxLCAyLjc2NjkiLCBcCi0gICAgICAgICAgIjAuMTA1MTQsIDAuNTI1NzA1LCAwLjk1MDI3OSwgMS4yNTI2NCwgMS43MzU4NCwgMi4xNTkzLCAyLjc2NTQ5IiwgXAotICAgICAgICAgICIwLjEwOTk4MiwgMC41MjU2MiwgMC45NTAyODQsIDEuMjUxNzMsIDEuNzM2MDksIDIuMTYwMDcsIDIuNzY0ODQiLCBcCi0gICAgICAgICAgIjAuMTE1ODcsIDAuNTI2ODg0LCAwLjk1MDE2NSwgMS4yNTMyLCAxLjczNzM5LCAyLjE2MDEsIDIuNzY0NCIsIFwKLSAgICAgICAgICAiMC4xMjY2NjYsIDAuNTI5Njg4LCAwLjk0OTM4LCAxLjI1MzEzLCAxLjczNzgxLCAyLjE1OTEsIDIuNzY3NyIsIFwKLSAgICAgICAgICAiMC4xMzU4NTYsIDAuNTMzNzgxLCAwLjk1MDEzNiwgMS4yNTE2OCwgMS43MzczMywgMi4xNTkyMywgMi43Njg0NiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxNjg1OCwgMC4wNzExMTEsIDAuMTI1MDY1LCAwLjE2MzU5NywgMC4yMjUxNzksIDAuMjc5MTAxLCAwLjM1NjA2NCIsIFwKLSAgICAgICAgICAiMC4wMjUzNDQsIDAuMDc5NTY5LCAwLjEzMzUwOCwgMC4xNzIwMSwgMC4yMzM2NzQsIDAuMjg3NTMyLCAwLjM2NDU4OCIsIFwKLSAgICAgICAgICAiMC4wMzM4NjUsIDAuMDkwMTU3LCAwLjE0NDA4OSwgMC4xODI1NDcsIDAuMjQ0MTUyLCAwLjI5ODA1LCAwLjM3NTE1MyIsIFwKLSAgICAgICAgICAiMC4wMzk3MjUsIDAuMTAwODEsIDAuMTU0NTc0LCAwLjE5MzA1NiwgMC4yNTQ2MzIsIDAuMzA4NjEyLCAwLjM4NTg3IiwgXAotICAgICAgICAgICIwLjA0NDYyMiwgMC4xMTE3MzgsIDAuMTY1MTU2LCAwLjIwMzYxMiwgMC4yNjUxNjEsIDAuMzE4OTA5LCAwLjM5NTgzNCIsIFwKLSAgICAgICAgICAiMC4wNTA2ODcsIDAuMTI4NjM0LCAwLjE4MTY4MywgMC4yMjA5MzMsIDAuMjgyNDEsIDAuMzM2MjE5LCAwLjQxMzI5NSIsIFwKLSAgICAgICAgICAiMC4wNTQ3MjUsIDAuMTQxNzI2LCAwLjE5NzksIDAuMjM0ODY3LCAwLjI5NjEzOCwgMC4zNTAwMjcsIDAuNDI3ODQ4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDI2ODksIDAuMTM4ODcyLCAwLjI1MDk0OSwgMC4zMzEwNTgsIDAuNDU5MDg4LCAwLjU3MTA5NiwgMC43MzExMTMiLCBcCi0gICAgICAgICAgIjAuMDMwODcxLCAwLjEzODkwOSwgMC4yNTA5NDMsIDAuMzMxMDAxLCAwLjQ1OTAwNywgMC41NzExMzcsIDAuNzMxMTE5IiwgXAotICAgICAgICAgICIwLjAzOTkyNywgMC4xNDE3MTEsIDAuMjUxMTkyLCAwLjMzMTExNCwgMC40NTkwMzcsIDAuNTcxMDc0LCAwLjczMTQzMSIsIFwKLSAgICAgICAgICAiMC4wNDg5NDYsIDAuMTQ3NTU4LCAwLjI1MzkyMSwgMC4zMzIxNTksIDAuNDU5MTExLCAwLjU3MTIyNiwgMC43MzE0MjUiLCBcCi0gICAgICAgICAgIjAuMDU2NTYxLCAwLjE1NDM0NSwgMC4yNTg0MDYsIDAuMzM1MDkxLCAwLjQ2MDIxOSwgMC41NzEyMDksIDAuNzMwOTI2IiwgXAotICAgICAgICAgICIwLjA2ODMzMSwgMC4xNjczNjUsIDAuMjY4NzA3LCAwLjM0MjY5NiwgMC40NjUwNzcsIDAuNTc0MDM3LCAwLjczMTg3MyIsIFwKLSAgICAgICAgICAiMC4wNzc5MTIsIDAuMTgwMjgyLCAwLjI3ODEwOSwgMC4zNTIxNjksIDAuNDcxODk0LCAwLjU3OTIyNiwgMC43MzQ4MjIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDI3NDMsIDAuMjQzMzkxLCAwLjQ0MzgyOSwgMC41ODYzMDUsIDAuODE1MTc0LCAxLjAxNTEyLCAxLjMwMDk1IiwgXAotICAgICAgICAgICIwLjA0OTM0MiwgMC4yNDk5NjMsIDAuNDUwMzI4LCAwLjU5MzA2MywgMC44MjIyNjQsIDEuMDIyMywgMS4zMDc1IiwgXAotICAgICAgICAgICIwLjA1ODU4MywgMC4yNTg4MzcsIDAuNDU5MTYzLCAwLjYwMTY1OCwgMC44MzEzODUsIDEuMDMwMDgsIDEuMzE3NDUiLCBcCi0gICAgICAgICAgIjAuMDY4MzY0LCAwLjI2NzU2NCwgMC40NjczOTksIDAuNjEwNiwgMC44Mzg5MDYsIDEuMDM5MDksIDEuMzI0NjMiLCBcCi0gICAgICAgICAgIjAuMDc2NzY2LCAwLjI3NjAyMiwgMC40NzU3OTQsIDAuNjE4NzAzLCAwLjg0NzUzNywgMS4wNDczMywgMS4zMzQxNiIsIFwKLSAgICAgICAgICAiMC4wODgxMjUsIDAuMjkwNTIyLCAwLjQ5MDI2NCwgMC42MzMyMjgsIDAuODYxMDQ1LCAxLjA2MTMyLCAxLjM0NzAxIiwgXAotICAgICAgICAgICIwLjA5NjIyLCAwLjMwMzI1MSwgMC41MDI1OTEsIDAuNjQ0Mzk4LCAwLjg3NDA1OSwgMS4wNzM5NSwgMS4zNTk3NSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwMDkzLCAwLjUyNTYxLCAwLjk0OTI5MywgMS4yNTE5LCAxLjczNTcyLCAyLjE1OTE4LCAyLjc2NDI3IiwgXAotICAgICAgICAgICIwLjEwMTA5NSwgMC41MjYxMTUsIDAuOTQ5Mzg3LCAxLjI1MzA5LCAxLjczNTY2LCAyLjE1OTM1LCAyLjc2NDQzIiwgXAotICAgICAgICAgICIwLjEwNjE4LCAwLjUyNTUzNSwgMC45NDkxOTcsIDEuMjUyNDQsIDEuNzM2MTcsIDIuMTYwMjIsIDIuNzY0MDUiLCBcCi0gICAgICAgICAgIjAuMTEyOTgxLCAwLjUyNTE4NiwgMC45NTAxMjYsIDEuMjUxNzIsIDEuNzM1OTEsIDIuMTU5ODQsIDIuNzY0NjgiLCBcCi0gICAgICAgICAgIjAuMTIwNTM5LCAwLjUyNjM3NywgMC45NDk4OTcsIDEuMjUyOTEsIDEuNzM1NDEsIDIuMTYxODUsIDIuNzY0NzUiLCBcCi0gICAgICAgICAgIjAuMTMyNjksIDAuNTMwNTI3LCAwLjk0OTk1LCAxLjI1MTY2LCAxLjczNzE4LCAyLjE2MTk2LCAyLjc2NzkyIiwgXAotICAgICAgICAgICIwLjE0MjU3LCAwLjUzNTg1MywgMC45NTEwMDMsIDEuMjUxNDIsIDEuNzM1NzYsIDIuMTU5MjcsIDIuNzY0MzMiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTQ3NTMsIDAuMDY4NzY0LCAwLjEyMjY5NywgMC4xNjEyMTcsIDAuMjIyODYxLCAwLjI3Njg5NSwgMC4zNTM5MTQiLCBcCi0gICAgICAgICAgIjAuMDIzMTc0LCAwLjA3NzI5OSwgMC4xMzEyMTgsIDAuMTY5NzU3LCAwLjIzMTM2NSwgMC4yODUzNTMsIDAuMzYyMzU2IiwgXAotICAgICAgICAgICIwLjAzMDc1MiwgMC4wODc4ODgsIDAuMTQxNzIsIDAuMTgwMjUzLCAwLjI0MTk0OSwgMC4yOTU4MSwgMC4zNzI5MzgiLCBcCi0gICAgICAgICAgIjAuMDM2MDU2LCAwLjA5ODQ5MywgMC4xNTIzLCAwLjE5MDgwNCwgMC4yNTI0MDUsIDAuMzA2MTY0LCAwLjM4MzE0MyIsIFwKLSAgICAgICAgICAiMC4wNDAwODgsIDAuMTA4OTY4LCAwLjE2MjkxNywgMC4yMDEzODQsIDAuMjYyNjkzLCAwLjMxNjYyNiwgMC4zOTM3MzIiLCBcCi0gICAgICAgICAgIjAuMDQ1MTYxLCAwLjEyNTU5NCwgMC4xODAyNywgMC4yMTg2ODQsIDAuMjgwMzA5LCAwLjMzNDAzOCwgMC40MTA1MDQiLCBcCi0gICAgICAgICAgIjAuMDQ4Njk3LCAwLjEzNzgwMiwgMC4xOTQ3OTksIDAuMjMzMTU2LCAwLjI5NDUzMiwgMC4zNDg2NzcsIDAuNDI1Nzk5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDI0MDE5LCAwLjEzNjM4NSwgMC4yNDg0MjQsIDAuMzI4OTg0LCAwLjQ1NzQzMSwgMC41Njg4NTEsIDAuNzI5MDc3IiwgXAotICAgICAgICAgICIwLjAyODQ5MSwgMC4xMzY0MiwgMC4yNDg3NTIsIDAuMzI4Mzk5LCAwLjQ1NzQ2MywgMC41Njg3NjgsIDAuNzI5NSIsIFwKLSAgICAgICAgICAiMC4wMzc4NzksIDAuMTM5Mzg4LCAwLjI0OTAzNiwgMC4zMjkwMiwgMC40NTY3MTIsIDAuNTY5ODksIDAuNzI5NjIxIiwgXAotICAgICAgICAgICIwLjA0NjM0NywgMC4xNDUyNDEsIDAuMjUxMzk0LCAwLjMyOTUwOCwgMC40NTc0NzksIDAuNTY4ODM1LCAwLjcyODk2MyIsIFwKLSAgICAgICAgICAiMC4wNTQzODksIDAuMTUyNTIxLCAwLjI1NjQzOCwgMC4zMzMzMjcsIDAuNDU4NzY0LCAwLjU3MDAxMywgMC43MjkwNzciLCBcCi0gICAgICAgICAgIjAuMDY1NTUxLCAwLjE2NjA1OCwgMC4yNjU4MjksIDAuMzQwODMxLCAwLjQ2MzcyOSwgMC41NzI4NjMsIDAuNzMwODY5IiwgXAotICAgICAgICAgICIwLjA3NDU5OSwgMC4xNzk3NCwgMC4yNzY0MywgMC4zNDk4NjQsIDAuNDcwMjk4LCAwLjU3Njc5NSwgMC43MzI2NDkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTgwNDYsIDAuMDE4MTY1LCAwLjAxODE3OSwgMC4wMTgxODQsIDAuMDE4MTg3LCAwLjAxODE5LCAwLjAxODE5MSIsIFwKLSAgICAgICAgICAiMC4wMTc5ODMsIDAuMDE4MTMsIDAuMDE4MTU0LCAwLjAxODE1MywgMC4wMTgxNjcsIDAuMDE4MTcsIDAuMDE4MTcyIiwgXAotICAgICAgICAgICIwLjAxODAxOSwgMC4wMTgxOCwgMC4wMTgyMjEsIDAuMDE4MjMsIDAuMDE4MjQxLCAwLjAxODI0NSwgMC4wMTgyNDciLCBcCi0gICAgICAgICAgIjAuMDE4MTE4LCAwLjAxODI5MSwgMC4wMTgzMywgMC4wMTgzNDUsIDAuMDE4MzU0LCAwLjAxODM2LCAwLjAxODM2OCIsIFwKLSAgICAgICAgICAiMC4wMTgyNTYsIDAuMDE4NDMzLCAwLjAxODQ3MiwgMC4wMTg0ODksIDAuMDE4NTAyLCAwLjAxODUxLCAwLjAxODUxNSIsIFwKLSAgICAgICAgICAiMC4wMTg0ODksIDAuMDE4Njc1LCAwLjAxODcyNCwgMC4wMTg3NCwgMC4wMTg3NTUsIDAuMDE4NzY4LCAwLjAxODc3NSIsIFwKLSAgICAgICAgICAiMC4wMTg3NDcsIDAuMDE4OTIsIDAuMDE4OTU3LCAwLjAxODk4OSwgMC4wMTkwMDYsIDAuMDE5MDE1LCAwLjAxOTAyMyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEwOTQ3LCAwLjAxMDk0NywgMC4wMTA5NDQsIDAuMDEwOTQ2LCAwLjAxMDk0MywgMC4wMTA5NDUsIDAuMDEwOTQyIiwgXAotICAgICAgICAgICIwLjAxMDkyMiwgMC4wMTA5MzUsIDAuMDEwOTM3LCAwLjAxMDkzNiwgMC4wMTA5MzcsIDAuMDEwOTM3LCAwLjAxMDkzNyIsIFwKLSAgICAgICAgICAiMC4wMTA5NTQsIDAuMDEwOTY3LCAwLjAxMDk2OSwgMC4wMTA5NjksIDAuMDEwOTY5LCAwLjAxMDk2OCwgMC4wMTA5NjkiLCBcCi0gICAgICAgICAgIjAuMDExMDgyLCAwLjAxMTA3MywgMC4wMTEwODEsIDAuMDExMDczLCAwLjAxMTA3MywgMC4wMTEwNzcsIDAuMDExMDcxIiwgXAotICAgICAgICAgICIwLjAxMTI1MywgMC4wMTEyMiwgMC4wMTEyMTcsIDAuMDExMjE3LCAwLjAxMTIxNywgMC4wMTEyMDYsIDAuMDExMjE2IiwgXAotICAgICAgICAgICIwLjAxMTQ1NCwgMC4wMTE0NjcsIDAuMDExNDc3LCAwLjAxMTQ3NSwgMC4wMTE0NzIsIDAuMDExNDY2LCAwLjAxMTQ2NiIsIFwKLSAgICAgICAgICAiMC4wMTE2OTQsIDAuMDExNywgMC4wMTE2OTMsIDAuMDExNjg1LCAwLjAxMTY4NCwgMC4wMTE2OCwgMC4wMTE2NzgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxNTM1NywgMC4wMTU0MjQsIDAuMDE1NDMyLCAwLjAxNTQzNCwgMC4wMTU0MzYsIDAuMDE1NDM2LCAwLjAxNTQzNiIsIFwKLSAgICAgICAgICAiMC4wMTUxODMsIDAuMDE1MzYxLCAwLjAxNTM5NSwgMC4wMTU0MDYsIDAuMDE1NDE0LCAwLjAxNTQxOSwgMC4wMTU0MjUiLCBcCi0gICAgICAgICAgIjAuMDE1MTEzLCAwLjAxNTMwMSwgMC4wMTUzNTUsIDAuMDE1MzczLCAwLjAxNTM4OCwgMC4wMTUzOTksIDAuMDE1NDA2IiwgXAotICAgICAgICAgICIwLjAxNTEwMiwgMC4wMTUyNjUsIDAuMDE1MzI0LCAwLjAxNTM0MywgMC4wMTUzNywgMC4wMTUzODIsIDAuMDE1MzkzIiwgXAotICAgICAgICAgICIwLjAxNTE0MywgMC4wMTUyNSwgMC4wMTUzMDgsIDAuMDE1MzMyLCAwLjAxNTM1NCwgMC4wMTUzNjcsIDAuMDE1Mzg0IiwgXAotICAgICAgICAgICIwLjAxNTMwNywgMC4wMTUyNzksIDAuMDE1MzE0LCAwLjAxNTMzLCAwLjAxNTM1NSwgMC4wMTUzNywgMC4wMTUzODUiLCBcCi0gICAgICAgICAgIjAuMDE1NTQ2LCAwLjAxNTM1MiwgMC4wMTUzNTUsIDAuMDE1MzYzLCAwLjAxNTM3NSwgMC4wMTUzODEsIDAuMDE1MzkyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI5NzUsIDAuMDAyOTgyLCAwLjAwMjk4MywgMC4wMDI5ODMsIDAuMDAyOTgzLCAwLjAwMjk4MywgMC4wMDI5ODIiLCBcCi0gICAgICAgICAgIjAuMDAyODYsIDAuMDAyODkzLCAwLjAwMjg5OCwgMC4wMDI5LCAwLjAwMjkwMiwgMC4wMDI5MDIsIDAuMDAyOTAzIiwgXAotICAgICAgICAgICIwLjAwMjkyOCwgMC4wMDI5MjgsIDAuMDAyOTEyLCAwLjAwMjkwNywgMC4wMDI5MDMsIDAuMDAyOTAxLCAwLjAwMjg5OCIsIFwKLSAgICAgICAgICAiMC4wMDMyMTMsIDAuMDAyOTk1LCAwLjAwMjkzOCwgMC4wMDI5MjYsIDAuMDAyOTE3LCAwLjAwMjkxLCAwLjAwMjkwNCIsIFwKLSAgICAgICAgICAiMC4wMDM0MTQsIDAuMDAzMDcxLCAwLjAwMzEzNCwgMC4wMDMwODMsIDAuMDAzMDM0LCAwLjAwMzAwNSwgMC4wMDI5ODQiLCBcCi0gICAgICAgICAgIjAuMDA0MDMyLCAwLjAwMzMxMiwgMC4wMDMzMDYsIDAuMDAzMjIzLCAwLjAwMzE0MywgMC4wMDMwOTgsIDAuMDAzMDU0IiwgXAotICAgICAgICAgICIwLjAwNDY1NCwgMC4wMDM1ODIsIDAuMDAzMzYsIDAuMDAzNDM3LCAwLjAwMzMwMiwgMC4wMDMyMzQsIDAuMDAzMTY0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTI4NDMsIDAuMDEyOTExLCAwLjAxMjkxOCwgMC4wMTI5MiwgMC4wMTI5MjEsIDAuMDEyOTIyLCAwLjAxMjkyNiIsIFwKLSAgICAgICAgICAiMC4wMTI2NywgMC4wMTI4NDcsIDAuMDEyODc5LCAwLjAxMjg4OCwgMC4wMTI5LCAwLjAxMjkwNiwgMC4wMTI5MDgiLCBcCi0gICAgICAgICAgIjAuMDEyNjE5LCAwLjAxMjc5LCAwLjAxMjg0MSwgMC4wMTI4NTYsIDAuMDEyODc3LCAwLjAxMjg4NSwgMC4wMTI4OTMiLCBcCi0gICAgICAgICAgIjAuMDEyNjYxLCAwLjAxMjc3MSwgMC4wMTI4MjMsIDAuMDEyODQzLCAwLjAxMjg2LCAwLjAxMjg3NiwgMC4wMTI4ODQiLCBcCi0gICAgICAgICAgIjAuMDEyNzY2LCAwLjAxMjc4MywgMC4wMTI4MjIsIDAuMDEyODQzLCAwLjAxMjg1OCwgMC4wMTI4NzMsIDAuMDEyODgxIiwgXAotICAgICAgICAgICIwLjAxMzA3OCwgMC4wMTI4NTQsIDAuMDEyODU3LCAwLjAxMjg2NCwgMC4wMTI4NzMsIDAuMDEyODgsIDAuMDEyODg2IiwgXAotICAgICAgICAgICIwLjAxMzQzNiwgMC4wMTI5NzcsIDAuMDEyOTI1LCAwLjAxMjg5MiwgMC4wMTI5MTQsIDAuMDEyOTA4LCAwLjAxMjkwOCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxNTIxLCAwLjAwMTU0OSwgMC4wMDE1NTIsIDAuMDAxNTUzLCAwLjAwMTU1NCwgMC4wMDE1NTQsIDAuMDAxNTU0IiwgXAotICAgICAgICAgICIwLjAwMTUwMywgMC4wMDE1OTgsIDAuMDAxNjEyLCAwLjAwMTYxNywgMC4wMDE2MjIsIDAuMDAxNjIzLCAwLjAwMTYyNSIsIFwKLSAgICAgICAgICAiMC4wMDE1OCwgMC4wMDE2NTYsIDAuMDAxNjUzLCAwLjAwMTY0NCwgMC4wMDE2NDUsIDAuMDAxNjQ2LCAwLjAwMTY0NiIsIFwKLSAgICAgICAgICAiMC4wMDE4NDQsIDAuMDAxNzIxLCAwLjAwMTY5NywgMC4wMDE2ODUsIDAuMDAxNjc2LCAwLjAwMTY3MywgMC4wMDE2OCIsIFwKLSAgICAgICAgICAiMC4wMDIwOTEsIDAuMDAxNzkxLCAwLjAwMTc3MiwgMC4wMDE3NSwgMC4wMDE3MjQsIDAuMDAxNzc0LCAwLjAwMTc0NiIsIFwKLSAgICAgICAgICAiMC4wMDI2ODMsIDAuMDAyMDIzLCAwLjAwMjA0NywgMC4wMDE5NjYsIDAuMDAxODk3LCAwLjAwMTg1NywgMC4wMDE4MiIsIFwKLSAgICAgICAgICAiMC4wMDMzNDgsIDAuMDAyMjgzLCAwLjAwMjA5NCwgMC4wMDIxODMsIDAuMDAyMDU3LCAwLjAwMTk5NSwgMC4wMDE5NDkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJEIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMDA0NCwgMC4wMTAxNDUsIDAuMDEwMTU4LCAwLjAxMDE2MSwgMC4wMTAxNjMsIDAuMDEwMTY0LCAwLjAxMDE2NiIsIFwKLSAgICAgICAgICAiMC4wMDk5MDQsIDAuMDEwMDc1LCAwLjAxMDExMywgMC4wMTAxMjYsIDAuMDEwMTM1LCAwLjAxMDE0MiwgMC4wMTAxNDciLCBcCi0gICAgICAgICAgIjAuMDEwMDMyLCAwLjAxMDA1NCwgMC4wMTAwOTQsIDAuMDEwMTA4LCAwLjAxMDEyMywgMC4wMTAxMywgMC4wMTAxMzciLCBcCi0gICAgICAgICAgIjAuMDEwMzcsIDAuMDEwMTIzLCAwLjAxMDEyNCwgMC4wMTAxMjksIDAuMDEwMTM2LCAwLjAxMDE0LCAwLjAxMDE0NCIsIFwKLSAgICAgICAgICAiMC4wMTA3NzMsIDAuMDEwMjM5LCAwLjAxMDE4MywgMC4wMTAxNzQsIDAuMDEwMTY1LCAwLjAxMDE2MiwgMC4wMTAxNjMiLCBcCi0gICAgICAgICAgIjAuMDExNDMyLCAwLjAxMDUxLCAwLjAxMDM0OCwgMC4wMTAyOTEsIDAuMDEwMjUyLCAwLjAxMDIzNiwgMC4wMTAyMTgiLCBcCi0gICAgICAgICAgIjAuMDExOTU4LCAwLjAxMDc2OCwgMC4wMTA1MSwgMC4wMTA0MTEsIDAuMDEwMzQ2LCAwLjAxMDMwNSwgMC4wMTAyNjkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDAwMSwgMC4wMDAxMTQsIDAuMDAwMTI3LCAwLjAwMDEzLCAwLjAwMDEzMywgMC4wMDAxMzUsIDAuMDAwMTM2IiwgXAotICAgICAgICAgICIwLjAwMDAxOCwgMC4wMDAyMjUsIDAuMDAwMjU3LCAwLjAwMDI2NywgMC4wMDAyNzYsIDAuMDAwMjgsIDAuMDAwMjg0IiwgXAotICAgICAgICAgICIwLjAwMDEyOSwgMC4wMDAzMDcsIDAuMDAwMjk5LCAwLjAwMDMwOCwgMC4wMDAzMTQsIDAuMDAwMzE3LCAwLjAwMDMyIiwgXAotICAgICAgICAgICIwLjAwMDM1OCwgMC4wMDAzNjIsIDAuMDAwMzU2LCAwLjAwMDM1MywgMC4wMDAzNSwgMC4wMDAzNjQsIDAuMDAwMzU5IiwgXAotICAgICAgICAgICIwLjAwMDcwNSwgMC4wMDA1MzUsIDAuMDAwNDMyLCAwLjAwMDQxOCwgMC4wMDA0MjEsIDAuMDAwNDExLCAwLjAwMDM5OSIsIFwKLSAgICAgICAgICAiMC4wMDEzMTMsIDAuMDAwODAyLCAwLjAwMDY5MywgMC4wMDA2MzIsIDAuMDAwNTcsIDAuMDAwNTM1LCAwLjAwMDQ3MiIsIFwKLSAgICAgICAgICAiMC4wMDE5MTYsIDAuMDAxMDk5LCAwLjAwMDgzOSwgMC4wMDA3NDYsIDAuMDAwNjUzLCAwLjAwMDcwNSwgMC4wMDA2NDQiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IE9BMjJYNCAqCi0gKiAtLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKE9BMjJYNCkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjcyMTgwMTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQTApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDkwOTM4OTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA5MDc1NDI7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwOTA5Mzg5OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDUyNCwgMC4wMDA1MjQsIDAuMDAwNTI0LCAwLjAwMDUyNCwgMC4wMDA1MjMsIDAuMDAwNTIzLCAwLjAwMDUyMyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDUzMiwgMC4wMDA1MjYsIDAuMDAwNTI2LCAwLjAwMDUyNiwgMC4wMDA1MjYsIDAuMDAwNTI1LCAwLjAwMDUyNiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQTEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDk1ODQ5NjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA5NTg0OTY7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwOTU2NDk0OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDUyNCwgMC4wMDA1MjQsIDAuMDAwNTI0LCAwLjAwMDUyNCwgMC4wMDA1MjQsIDAuMDAwNTI0LCAwLjAwMDUyNCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDUzMSwgMC4wMDA1MjYsIDAuMDAwNTI1LCAwLjAwMDUyNSwgMC4wMDA1MjUsIDAuMDAwNTI1LCAwLjAwMDUyNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQjApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDkxODcxOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDkxNDk2MTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA5MTg3MTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA1NzMsIDAuMDAwNTc0LCAwLjAwMDU3MywgMC4wMDA1NzMsIDAuMDAwNTczLCAwLjAwMDU3MywgMC4wMDA1NzMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA1OTYsIDAuMDAwNTk2LCAwLjAwMDU5NiwgMC4wMDA1OTYsIDAuMDAwNTk2LCAwLjAwMDU5NiwgMC4wMDA1OTYiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIxKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA5NjY4MzM7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwOTY2ODMzOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDk2NjcyOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDU3MiwgMC4wMDA1NzMsIDAuMDAwNTcyLCAwLjAwMDU3MywgMC4wMDA1NzMsIDAuMDAwNTcyLCAwLjAwMDU3MiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDU5NSwgMC4wMDA1OTYsIDAuMDAwNTk2LCAwLjAwMDU5NSwgMC4wMDA1OTYsIDAuMDAwNTk2LCAwLjAwMDU5NiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAxLjI5NTg4OwotICAgIGZ1bmN0aW9uIDogIigoQTArQTEpIChCMCtCMSkpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTg1MjEsIDAuMTE4MzQzLCAwLjE3MzU3NiwgMC4yMTI5NDMsIDAuMjc1OSwgMC4zMzA5MzksIDAuNDA5NTUiLCBcCi0gICAgICAgICAgIjAuMDY1NjYyLCAwLjEyNTQ5MSwgMC4xODA3MzIsIDAuMjIwMTAyLCAwLjI4MzAzNSwgMC4zMzgwOTQsIDAuNDE2Nzc2IiwgXAotICAgICAgICAgICIwLjA3MzY1NSwgMC4xMzMzNzgsIDAuMTg4NjMxLCAwLjIyODAwMiwgMC4yOTA5MzgsIDAuMzQ2MDA1LCAwLjQyNDY3OSIsIFwKLSAgICAgICAgICAiMC4wODEwNiwgMC4xNDA4MzcsIDAuMTk2MDcsIDAuMjM1NDI3LCAwLjI5ODM3MiwgMC4zNTM0MzcsIDAuNDMyMDk2IiwgXAotICAgICAgICAgICIwLjA4NzU0OSwgMC4xNDc1NTgsIDAuMjAyODE1LCAwLjI0MjE5OSwgMC4zMDUxNywgMC4zNjAxNTQsIDAuNDM4OTI3IiwgXAotICAgICAgICAgICIwLjA5NjU2NSwgMC4xNTcyMzgsIDAuMjEyNTQ5LCAwLjI1MTg2MywgMC4zMTQ4MDQsIDAuMzY5ODQ3LCAwLjQ0ODQ1OCIsIFwKLSAgICAgICAgICAiMC4xMDMzNTMsIDAuMTY0NTMyLCAwLjIxOTc4NiwgMC4yNTkxNTYsIDAuMzIyMDgyLCAwLjM3NzA4NCwgMC40NTU2OTgiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzE3MjEsIDAuMTQyNTgsIDAuMjU2ODY0LCAwLjMzOTUsIDAuNDcyMTMzLCAwLjU4ODI4MiwgMC43NTQzMTkiLCBcCi0gICAgICAgICAgIjAuMDMxNjgxLCAwLjE0MjU1OSwgMC4yNTY5ODksIDAuMzM5NjIsIDAuNDcyMDkxLCAwLjU4NzczNSwgMC43NTQzMzMiLCBcCi0gICAgICAgICAgIjAuMDMxNzAyLCAwLjE0MjU4NCwgMC4yNTcwMDQsIDAuMzM5NjM3LCAwLjQ3MjA3LCAwLjU4NzY0MywgMC43NTQzIiwgXAotICAgICAgICAgICIwLjAzMjM5NiwgMC4xNDI3NzYsIDAuMjU3MDg2LCAwLjMzOTQ2OSwgMC40NzIwNzIsIDAuNTg3NjQ3LCAwLjc1NDIzNyIsIFwKLSAgICAgICAgICAiMC4wMzMxMzUsIDAuMTQzMDc4LCAwLjI1NzAwNiwgMC4zMzk1MDUsIDAuNDcxODg0LCAwLjU4ODAwNywgMC43NTM0NTIiLCBcCi0gICAgICAgICAgIjAuMDM0NTI1LCAwLjE0Mzc3NiwgMC4yNTc0MjQsIDAuMzM5NjgyLCAwLjQ3MjA4OSwgMC41ODc5NjgsIDAuNzUzOTgyIiwgXAotICAgICAgICAgICIwLjAzNTg5NywgMC4xNDQzNTIsIDAuMjU3OTA1LCAwLjMzOTY2OSwgMC40NzE4MTQsIDAuNTg4MTQ4LCAwLjc1NDEyMSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2MDA0MywgMC4xMjA1NjgsIDAuMTc0ODYyLCAwLjIxMzQyNCwgMC4yNzUwNiwgMC4zMjg5NDUsIDAuNDA1OTE0IiwgXAotICAgICAgICAgICIwLjA2NjE2MywgMC4xMjY2ODksIDAuMTgwOTc5LCAwLjIxOTU0MywgMC4yODExNzgsIDAuMzM1MDk0LCAwLjQxMjAzOSIsIFwKLSAgICAgICAgICAiMC4wNzM0MDYsIDAuMTMzOTEzLCAwLjE4ODIwNywgMC4yMjY3NzEsIDAuMjg4NDA3LCAwLjM0MjI5NCwgMC40MTkyNjUiLCBcCi0gICAgICAgICAgIjAuMDgwMTQ4LCAwLjE0MDcwNywgMC4xOTQ5OTQsIDAuMjMzNTYsIDAuMjk1MTk5LCAwLjM0OTA4MiwgMC40MjYwNDUiLCBcCi0gICAgICAgICAgIjAuMDg2MDMzLCAwLjE0NjgyNCwgMC4yMDExMzEsIDAuMjM5Njc5LCAwLjMwMTMyLCAwLjM1NTIwNSwgMC40MzIxNTYiLCBcCi0gICAgICAgICAgIjAuMDkzOTU5LCAwLjE1NTQzNSwgMC4yMDk3NiwgMC4yNDgzMDMsIDAuMzA5OTIxLCAwLjM2Mzg0OSwgMC40NDA4IiwgXAotICAgICAgICAgICIwLjA5OTk5NywgMC4xNjE5NDcsIDAuMjE2MzMzLCAwLjI1NDkwOSwgMC4zMTY1MTQsIDAuMzcwNDI4LCAwLjQ0NzM5NyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzMzM1MiwgMC4xMzk2MzUsIDAuMjQ5MTkxLCAwLjMyODM2LCAwLjQ1NTcxLCAwLjU2NzM5MiwgMC43MjY0MjMiLCBcCi0gICAgICAgICAgIjAuMDMzMzQ1LCAwLjEzOTYyOCwgMC4yNDkyLCAwLjMyODM2NiwgMC40NTU3MDQsIDAuNTY3NDc0LCAwLjcyNjQ5OSIsIFwKLSAgICAgICAgICAiMC4wMzM0ODUsIDAuMTM5NjYxLCAwLjI0OTIwOSwgMC4zMjgzNzIsIDAuNDU1NzExLCAwLjU2NzM5OSwgMC43MjY0NDkiLCBcCi0gICAgICAgICAgIjAuMDM0MDUyLCAwLjEzOTgzLCAwLjI0OTA0LCAwLjMyODQzMSwgMC40NTU3NDEsIDAuNTY3NDE3LCAwLjcyNzEzNyIsIFwKLSAgICAgICAgICAiMC4wMzUxNTMsIDAuMTQwMjEsIDAuMjQ4OTIxLCAwLjMyODI2NywgMC40NTU4MTIsIDAuNTY3NDYxLCAwLjcyNzI1NCIsIFwKLSAgICAgICAgICAiMC4wMzYzNzksIDAuMTQwOTY4LCAwLjI0OTYzOCwgMC4zMjg4MTMsIDAuNDU1NDY4LCAwLjU2NzY0NiwgMC43MjczNzUiLCBcCi0gICAgICAgICAgIjAuMDM3NjA0LCAwLjE0MTU2LCAwLjI1MDEyNiwgMC4zMjkxMTMsIDAuNDU1NiwgMC41Njc3MzYsIDAuNzI3NDkzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkExIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1NTI3MywgMC4xMTQ4MDcsIDAuMTY5OTkyLCAwLjIwOTMzNCwgMC4yNzIyNDcsIDAuMzI3MywgMC40MDU5NDQiLCBcCi0gICAgICAgICAgIjAuMDYyMjMyLCAwLjEyMTc5OSwgMC4xNzY5ODYsIDAuMjE2MzQsIDAuMjc5MjQzLCAwLjMzNDMwMSwgMC40MTI5MzUiLCBcCi0gICAgICAgICAgIjAuMDcwMDM0LCAwLjEyOTUxMiwgMC4xODQ3MDYsIDAuMjI0MDY4LCAwLjI4Njk2MiwgMC4zNDIwMDUsIDAuNDIwNjQ3IiwgXAotICAgICAgICAgICIwLjA3NzE1NCwgMC4xMzY3NywgMC4xOTE5NTMsIDAuMjMxMzAyLCAwLjI5NDIxMywgMC4zNDkyNjQsIDAuNDI3OTA4IiwgXAotICAgICAgICAgICIwLjA4MzI4LCAwLjE0MzIxNCwgMC4xOTg0MDYsIDAuMjM3NzIzLCAwLjMwMDY0NywgMC4zNTU2ODMsIDAuNDM0MzcyIiwgXAotICAgICAgICAgICIwLjA5MTc1MiwgMC4xNTIzNjEsIDAuMjA3NTYzLCAwLjI0Njg4NiwgMC4zMDk3OSwgMC4zNjQ4NjEsIDAuNDQzNDU0IiwgXAotICAgICAgICAgICIwLjA5ODAyNywgMC4xNTkxNTQsIDAuMjE0MzM1LCAwLjI1MzY2NSwgMC4zMTY1NzIsIDAuMzcxNjY3LCAwLjQ1MDIwOCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzMTIxMiwgMC4xNDIyNTgsIDAuMjU2NzgzLCAwLjMzOTMzMSwgMC40NzE5MTMsIDAuNTg3NDYzLCAwLjc1NDE5IiwgXAotICAgICAgICAgICIwLjAzMTEzNSwgMC4xNDIyNDMsIDAuMjU2Nzc1LCAwLjMzOTA0LCAwLjQ3MTg4NiwgMC41ODc4OTMsIDAuNzU0MTU4IiwgXAotICAgICAgICAgICIwLjAzMTMzNiwgMC4xNDIyODgsIDAuMjU2NzkzLCAwLjMzOTQ0LCAwLjQ3MTg0NCwgMC41ODc0NDQsIDAuNzU0MTQ5IiwgXAotICAgICAgICAgICIwLjAzMjA1MywgMC4xNDI0NzcsIDAuMjU2ODUsIDAuMzM5NDY2LCAwLjQ3MTg5LCAwLjU4NzQ1MSwgMC43NTQwNzYiLCBcCi0gICAgICAgICAgIjAuMDMyOTQyLCAwLjE0Mjg5MiwgMC4yNTcwMDEsIDAuMzM5MzQsIDAuNDcxOTU4LCAwLjU4NzUwNiwgMC43NTQwNDEiLCBcCi0gICAgICAgICAgIjAuMDM0MzMsIDAuMTQzNTQ1LCAwLjI1NzA3NywgMC4zMzk2NzksIDAuNDcxODUsIDAuNTg4MTIxLCAwLjc1MzQzMyIsIFwKLSAgICAgICAgICAiMC4wMzU5MzMsIDAuMTQ0MjI3LCAwLjI1NzY1MiwgMC4zMzk4OTcsIDAuNDcyMjg2LCAwLjU4NzM1NiwgMC43NTM0ODYiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTc4ODgsIDAuMTE4MzY2LCAwLjE3MjY1NywgMC4yMTEyMTgsIDAuMjcyODUyLCAwLjMyNjczNiwgMC40MDM3MDIiLCBcCi0gICAgICAgICAgIjAuMDY1MzM0LCAwLjEyNTg1NiwgMC4xODAxNTcsIDAuMjE4NzIxLCAwLjI4MDM1NywgMC4zMzQyNDQsIDAuNDExMjEzIiwgXAotICAgICAgICAgICIwLjA3NTAwOCwgMC4xMzU1MDEsIDAuMTg5OCwgMC4yMjgzNjQsIDAuMjkwMDA0LCAwLjM0Mzg5MiwgMC40MjA4NjUiLCBcCi0gICAgICAgICAgIjAuMDg0MzU3LCAwLjE0NDg2OSwgMC4xOTkxNywgMC4yMzc3MTEsIDAuMjk5MzM2LCAwLjM1MzI5NSwgMC40MzAyMjkiLCBcCi0gICAgICAgICAgIjAuMDkyNDg1LCAwLjE1MzE2MywgMC4yMDc0NDUsIDAuMjQ1OTk2LCAwLjMwNzYwNywgMC4zNjE1MTIsIDAuNDM4NDU4IiwgXAotICAgICAgICAgICIwLjEwMzY5NCwgMC4xNjQ5OTMsIDAuMjE5MzA2LCAwLjI1Nzg1LCAwLjMxOTQzNSwgMC4zNzMzMDcsIDAuNDUwMjk1IiwgXAotICAgICAgICAgICIwLjExMTc3NywgMC4xNzM2MDEsIDAuMjI3ODk4LCAwLjI2NjQwOSwgMC4zMjgwMDQsIDAuMzgxODc1LCAwLjQ1ODgzOCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzMzM0MSwgMC4xMzk2NDcsIDAuMjQ5MTk2LCAwLjMyODM4MiwgMC40NTU3MDQsIDAuNTY3NDExLCAwLjcyNjQwNyIsIFwKLSAgICAgICAgICAiMC4wMzMzNiwgMC4xMzk2MjksIDAuMjQ5MjA0LCAwLjMyODM2OCwgMC40NTU3MDQsIDAuNTY3Mzk5LCAwLjcyNjQzOCIsIFwKLSAgICAgICAgICAiMC4wMzM0NDIsIDAuMTM5NjY2LCAwLjI0OTIxOSwgMC4zMjgzNzMsIDAuNDU1NzE0LCAwLjU2NzM5NiwgMC43MjY5OTQiLCBcCi0gICAgICAgICAgIjAuMDM0MTc5LCAwLjEzOTg0MiwgMC4yNDg5NDIsIDAuMzI4MzYyLCAwLjQ1NTYwOSwgMC41NjcyMjEsIDAuNzI3MTc5IiwgXAotICAgICAgICAgICIwLjAzNTU4NCwgMC4xNDAyMTksIDAuMjQ5MjM3LCAwLjMyODU4MywgMC40NTUzNTEsIDAuNTY3NDc5LCAwLjcyNzI1NyIsIFwKLSAgICAgICAgICAiMC4wMzc2MzcsIDAuMTQxMTk0LCAwLjI0OTgwOCwgMC4zMjg5NTYsIDAuNDU1NDk5LCAwLjU2NzQ5NiwgMC43MjcxMjYiLCBcCi0gICAgICAgICAgIjAuMDM5NDgzLCAwLjE0MjAyOCwgMC4yNTAyODMsIDAuMzI4OTU5LCAwLjQ1NTcyLCAwLjU2NzEwMywgMC43Mjc0MjgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjAiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDUzNTU4LCAwLjExMzM5OCwgMC4xNjg2MzgsIDAuMjA4MDAyLCAwLjI3MDk0MSwgMC4zMjU5OTgsIDAuNDA0Njc5IiwgXAotICAgICAgICAgICIwLjA2MTI0NSwgMC4xMjEwODksIDAuMTc2MzQsIDAuMjE1NzEyLCAwLjI3ODY0NiwgMC4zMzM3MDQsIDAuNDEyMzk5IiwgXAotICAgICAgICAgICIwLjA3MTI3MiwgMC4xMzA5NDQsIDAuMTg2MiwgMC4yMjU1OTksIDAuMjg4NTEsIDAuMzQzNTg0LCAwLjQyMjIzOCIsIFwKLSAgICAgICAgICAiMC4wODA3NjksIDAuMTQwNTkyLCAwLjE5NTg2LCAwLjIzNTIxLCAwLjI5ODE0NywgMC4zNTMyMjMsIDAuNDMxODM5IiwgXAotICAgICAgICAgICIwLjA4ODgyMiwgMC4xNDkwMDQsIDAuMjA0MjE0LCAwLjI0MzU5NCwgMC4zMDY1MTEsIDAuMzYxNTQ5LCAwLjQ0MDIxIiwgXAotICAgICAgICAgICIwLjEwMDAzMiwgMC4xNjA2MTQsIDAuMjE1ODMzLCAwLjI1NTE4NSwgMC4zMTgxLCAwLjM3MzEzNCwgMC40NTE3NTMiLCBcCi0gICAgICAgICAgIjAuMTA4MzU2LCAwLjE2OTMzMSwgMC4yMjQ1OSwgMC4yNjM4OTksIDAuMzI2ODMzLCAwLjM4MTg2NywgMC40NjA0NDUiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzE3MzgsIDAuMTQyNTc1LCAwLjI1NzAxMywgMC4zMzkwNjksIDAuNDcyMTE0LCAwLjU4ODI1NywgMC43NTQzNTQiLCBcCi0gICAgICAgICAgIjAuMDMxNTk0LCAwLjE0MjU2MywgMC4yNTY4MTMsIDAuMzM5NjU0LCAwLjQ3MjA4LCAwLjU4ODA2MSwgMC43NTQxNTMiLCBcCi0gICAgICAgICAgIjAuMDMxNjQ0LCAwLjE0MjUyNCwgMC4yNTcwMTksIDAuMzM5NDU1LCAwLjQ3MjA3MywgMC41ODc1NjgsIDAuNzU0MjU5IiwgXAotICAgICAgICAgICIwLjAzMjQ5MiwgMC4xNDI3NTQsIDAuMjU3MDc3LCAwLjMzOTY4MSwgMC40NzIwODgsIDAuNTg3NjgzLCAwLjc1NDIyMSIsIFwKLSAgICAgICAgICAiMC4wMzQyNTYsIDAuMTQzMDc5LCAwLjI1NzAyMywgMC4zMzkyNywgMC40NzIwOTgsIDAuNTg3NTkyLCAwLjc1MzQ1NiIsIFwKLSAgICAgICAgICAiMC4wMzYwODUsIDAuMTQzOTk4LCAwLjI1NzQ4NSwgMC4zMzk5MTYsIDAuNDcyMTY1LCAwLjU4ODE5NywgMC43NTM5OTQiLCBcCi0gICAgICAgICAgIjAuMDM3NzQ3LCAwLjE0NDY2NSwgMC4yNTc4NjgsIDAuMzM5OTYyLCAwLjQ3MjI2NywgMC41ODgyMjksIDAuNzU0Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDUzNzc2LCAwLjExMzYyNCwgMC4xNjc3MzgsIDAuMjA2MjE4LCAwLjI2Nzc1NywgMC4zMjE1OTMsIDAuMzk4NTMyIiwgXAotICAgICAgICAgICIwLjA1OTgzNSwgMC4xMTk2OTUsIDAuMTczODAxLCAwLjIxMjI4NCwgMC4yNzM4MjQsIDAuMzI3Njk5LCAwLjQwNDY1NCIsIFwKLSAgICAgICAgICAiMC4wNjY4NzgsIDAuMTI2NzI5LCAwLjE4MDgzNiwgMC4yMTkzMjMsIDAuMjgwODc1LCAwLjMzNDcwNiwgMC40MTE2NzUiLCBcCi0gICAgICAgICAgIjAuMDczMTUyLCAwLjEzMzE2NiwgMC4xODcyNzQsIDAuMjI1NzYsIDAuMjg3MzA2LCAwLjM0MTE3NCwgMC40MTgxMDgiLCBcCi0gICAgICAgICAgIjAuMDc4Mzk3LCAwLjEzODg1NSwgMC4xOTI5NjgsIDAuMjMxNDU2LCAwLjI5MzAxMywgMC4zNDY4NDUsIDAuNDIzNzY4IiwgXAotICAgICAgICAgICIwLjA4NTU0NiwgMC4xNDY2OTQsIDAuMjAwODE1LCAwLjIzOTMwNywgMC4zMDA4MjcsIDAuMzU0NjYsIDAuNDMxNTc0IiwgXAotICAgICAgICAgICIwLjA5MDg3OSwgMC4xNTI1NTEsIDAuMjA2NzQ2LCAwLjI0NTE3MSwgMC4zMDY3MDQsIDAuMzYwNTMyLCAwLjQzNzQ2NyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzMjMyOSwgMC4xMzg4MDEsIDAuMjQ4MjM1LCAwLjMyNzY5OSwgMC40NTQ1MzMsIDAuNTY2Njg0LCAwLjcyNjgzIiwgXAotICAgICAgICAgICIwLjAzMjM1MSwgMC4xMzg3ODUsIDAuMjQ4MjcsIDAuMzI3NjQ0LCAwLjQ1NDcwNCwgMC41NjY5MTUsIDAuNzI2Nzc4IiwgXAotICAgICAgICAgICIwLjAzMjYyMiwgMC4xMzg4NDksIDAuMjQ4NDg3LCAwLjMyNzcwNiwgMC40NTUxMjMsIDAuNTY2ODE3LCAwLjcyNjAzMSIsIFwKLSAgICAgICAgICAiMC4wMzM1LCAwLjEzOTExMywgMC4yNDgzOCwgMC4zMjc4MjQsIDAuNDU1MTY2LCAwLjU2Njk3MywgMC43MjYwNzEiLCBcCi0gICAgICAgICAgIjAuMDM0NDc4LCAwLjEzOTYwNCwgMC4yNDg2MTcsIDAuMzI3NjE2LCAwLjQ1NTI1MywgMC41NjY5MjcsIDAuNzI1OTE1IiwgXAotICAgICAgICAgICIwLjAzNjEwNCwgMC4xNDA0OTIsIDAuMjQ5MTY0LCAwLjMyODMxOSwgMC40NTUzMjgsIDAuNTY2MzY1LCAwLjcyNjg3MyIsIFwKLSAgICAgICAgICAiMC4wMzc0ODMsIDAuMTQxMTkxLCAwLjI0OTc0MiwgMC4zMjgzMTcsIDAuNDU1MTEzLCAwLjU2NjQ3LCAwLjcyNzA1OSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTAxMDYsIDAuMTA5Njc4LCAwLjE2NDg2MiwgMC4yMDQyMDIsIDAuMjY3MTE1LCAwLjMyMjE2OCwgMC40MDA4MDkiLCBcCi0gICAgICAgICAgIjAuMDU3NzQzLCAwLjExNzI5OSwgMC4xNzI0OSwgMC4yMTE4NCwgMC4yNzQ3NDYsIDAuMzI5ODA2LCAwLjQwODQzNyIsIFwKLSAgICAgICAgICAiMC4wNjc1NDgsIDAuMTI2OTU5LCAwLjE4MjE0OCwgMC4yMjE0OTQsIDAuMjg0NDA1LCAwLjMzOTQ2NCwgMC40MTgwOTciLCBcCi0gICAgICAgICAgIjAuMDc2NjE4LCAwLjEzNjI3MiwgMC4xOTE0NTgsIDAuMjMwNzkxLCAwLjI5MzcwOSwgMC4zNDg3NjEsIDAuNDI3NDAyIiwgXAotICAgICAgICAgICIwLjA4NDIwOSwgMC4xNDQxNDQsIDAuMTk5MzEsIDAuMjM4NjM1LCAwLjMwMTU0OSwgMC4zNTY2MzIsIDAuNDM1MjAzIiwgXAotICAgICAgICAgICIwLjA5NDM1MSwgMC4xNTQ4MzUsIDAuMjA5OTQsIDAuMjQ5MjQzLCAwLjMxMjE1MSwgMC4zNjcyMjYsIDAuNDQ1NzY0IiwgXAotICAgICAgICAgICIwLjEwMTY3NSwgMC4xNjI2MjMsIDAuMjE3ODI5LCAwLjI1NzEyLCAwLjMyMDAwNywgMC4zNzUwMjksIDAuNDUzNjExIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDMxMjM2LCAwLjE0MjI1NSwgMC4yNTY3NzksIDAuMzM5MzAyLCAwLjQ3MTksIDAuNTg3NDI5LCAwLjc1NDE2OSIsIFwKLSAgICAgICAgICAiMC4wMzExMjMsIDAuMTQyMTIsIDAuMjU2NzY3LCAwLjMzODkxMywgMC40NzE4NjMsIDAuNTg3MzY0LCAwLjc1NDE1NCIsIFwKLSAgICAgICAgICAiMC4wMzEzMzQsIDAuMTQyMzIxLCAwLjI1Njc5NywgMC4zMzk0MSwgMC40NzE4NzksIDAuNTg3Mzc3LCAwLjc1NDA5NSIsIFwKLSAgICAgICAgICAiMC4wMzIzOSwgMC4xNDI1MDYsIDAuMjU2ODgsIDAuMzM5MTQ2LCAwLjQ3MTkzLCAwLjU4NzQ1OSwgMC43NTQwOTQiLCBcCi0gICAgICAgICAgIjAuMDMzODI3LCAwLjE0MjkxLCAwLjI1NjkyLCAwLjMzOTM1MywgMC40NzE4OTksIDAuNTg4MDQ4LCAwLjc1NDA3IiwgXAotICAgICAgICAgICIwLjAzNjExNywgMC4xNDM4NDcsIDAuMjU3MTU1LCAwLjMzOTQ1LCAwLjQ3MjEyNSwgMC41ODc0MjIsIDAuNzU0MTM0IiwgXAotICAgICAgICAgICIwLjAzODAwNSwgMC4xNDQ2MTcsIDAuMjU3NjI1LCAwLjMzOTk2MSwgMC40NzIzNDQsIDAuNTg4MzAzLCAwLjc1MzY0OCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1MTQ3NiwgMC4xMTEzNDYsIDAuMTY1NDUxLCAwLjIwMzk0MSwgMC4yNjU0ODksIDAuMzE5MzMyLCAwLjM5NjI1NSIsIFwKLSAgICAgICAgICAiMC4wNTg5MjMsIDAuMTE4Nzk1LCAwLjE3MjkwNywgMC4yMTEzOTcsIDAuMjcyOTQ3LCAwLjMyNjc5LCAwLjQwMzcxNSIsIFwKLSAgICAgICAgICAiMC4wNjg0NzEsIDAuMTI4MzA2LCAwLjE4MjQyMiwgMC4yMjA5MTMsIDAuMjgyNDY4LCAwLjMzNjMwMiwgMC40MTMyNzQiLCBcCi0gICAgICAgICAgIjAuMDc3MTE1LCAwLjEzNzA1MiwgMC4xOTExMzksIDAuMjI5NjE0LCAwLjI5MTE1NSwgMC4zNDUwNDEsIDAuNDIxOTYxIiwgXAotICAgICAgICAgICIwLjA4NDU5MSwgMC4xNDQ5MjUsIDAuMTk5MDIsIDAuMjM3NDk1LCAwLjI5OTA2MiwgMC4zNTI4OTYsIDAuNDI5NzkxIiwgXAotICAgICAgICAgICIwLjA5NDIyOSwgMC4xNTUzMjQsIDAuMjA5NDQyLCAwLjI0Nzg5NSwgMC4zMDk0MjIsIDAuMzYzMjU5LCAwLjQ0MDE4IiwgXAotICAgICAgICAgICIwLjEwMTM0NiwgMC4xNjI5ODcsIDAuMjE3MTgyLCAwLjI1NTYzNywgMC4zMTcxMzksIDAuMzcwOTUsIDAuNDQ3ODYxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDMyMzQzLCAwLjEzODc5MSwgMC4yNDg0NDcsIDAuMzI3NjYzLCAwLjQ1NDYyOCwgMC41NjYyMzMsIDAuNzI2ODExIiwgXAotICAgICAgICAgICIwLjAzMjM4NiwgMC4xMzg3OTUsIDAuMjQ4NDU1LCAwLjMyNzY2NCwgMC40NTQ2NSwgMC41NjYyMDQsIDAuNzI2ODE2IiwgXAotICAgICAgICAgICIwLjAzMjY5NCwgMC4xMzg4NiwgMC4yNDg0ODksIDAuMzI3NzAzLCAwLjQ1NTEyMSwgMC41NjY4MTMsIDAuNzI2NTI0IiwgXAotICAgICAgICAgICIwLjAzMzk1MSwgMC4xMzkyMiwgMC4yNDg0NjMsIDAuMzI3NzQyLCAwLjQ1NTAyMSwgMC41NjY5NzQsIDAuNzI2OTEzIiwgXAotICAgICAgICAgICIwLjAzNTQ5NSwgMC4xMzk3NjMsIDAuMjQ4NzQxLCAwLjMyNzkyOSwgMC40NTQ5MjEsIDAuNTY2NjQsIDAuNzI2ODQyIiwgXAotICAgICAgICAgICIwLjAzNzcwOSwgMC4xNDA4NzQsIDAuMjQ5MzE3LCAwLjMyODM4MSwgMC40NTU0NjksIDAuNTY2Nzk5LCAwLjcyNjk2NyIsIFwKLSAgICAgICAgICAiMC4wMzk3MzMsIDAuMTQxNjYyLCAwLjI0OTgyNywgMC4zMjg3MDcsIDAuNDU1NjQ3LCAwLjU2NzMwOSwgMC43MjcxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2MzQxLCAwLjAwNjQyLCAwLjAwNjQ1MSwgMC4wMDY0NTUsIDAuMDA2NDYzLCAwLjAwNjQ2MywgMC4wMDY0NjkiLCBcCi0gICAgICAgICAgIjAuMDA2MjY5LCAwLjAwNjM2MywgMC4wMDYzOTUsIDAuMDA2NDA2LCAwLjAwNjQxNiwgMC4wMDY0MjEsIDAuMDA2NDI1IiwgXAotICAgICAgICAgICIwLjAwNjI3NCwgMC4wMDYzMzgsIDAuMDA2MzcyLCAwLjAwNjM4NCwgMC4wMDYzOTUsIDAuMDA2NDAzLCAwLjAwNjQwNyIsIFwKLSAgICAgICAgICAiMC4wMDYzNzgsIDAuMDA2MzYxLCAwLjAwNjM4OCwgMC4wMDYzOTgsIDAuMDA2NDExLCAwLjAwNjQxMiwgMC4wMDY0MjEiLCBcCi0gICAgICAgICAgIjAuMDA2NDQ1LCAwLjAwNjQsIDAuMDA2NDIxLCAwLjAwNjQzMSwgMC4wMDY0NCwgMC4wMDY0NDYsIDAuMDA2NDQ4IiwgXAotICAgICAgICAgICIwLjAwNjU4MSwgMC4wMDY0NzUsIDAuMDA2NTAxLCAwLjAwNjUxMiwgMC4wMDY1MTYsIDAuMDA2NTIyLCAwLjAwNjUyOCIsIFwKLSAgICAgICAgICAiMC4wMDY5MzMsIDAuMDA2NjUxLCAwLjAwNjY0MSwgMC4wMDY2NCwgMC4wMDY2NDQsIDAuMDA2NjQ2LCAwLjAwNjY1MiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA5ODcyLCAwLjAwOTk1MywgMC4wMDk5ODgsIDAuMDEwMDAxLCAwLjAxMDAxMiwgMC4wMTAwMTgsIDAuMDEwMDIyIiwgXAotICAgICAgICAgICIwLjAwOTgyNiwgMC4wMDk5MTMsIDAuMDA5OTU0LCAwLjAwOTk2NiwgMC4wMDk5NzksIDAuMDA5OTg1LCAwLjAwOTk5MSIsIFwKLSAgICAgICAgICAiMC4wMDk4NzMsIDAuMDA5OTExLCAwLjAwOTk1MSwgMC4wMDk5NjUsIDAuMDA5OTc4LCAwLjAwOTk4NSwgMC4wMDk5OTIiLCBcCi0gICAgICAgICAgIjAuMDA5OTgyLCAwLjAwOTk0OCwgMC4wMDk5ODIsIDAuMDA5OTk2LCAwLjAxMDAwOSwgMC4wMTAwMTcsIDAuMDEwMDIzIiwgXAotICAgICAgICAgICIwLjAxMDE2MiwgMC4wMTAwMjEsIDAuMDEwMDQsIDAuMDEwMDU0LCAwLjAxMDA2NSwgMC4wMTAwNywgMC4wMTAwNzYiLCBcCi0gICAgICAgICAgIjAuMDEwMjUzLCAwLjAxMDA5NywgMC4wMTAxMzEsIDAuMDEwMTQ1LCAwLjAxMDE2LCAwLjAxMDE2NywgMC4wMTAxNzYiLCBcCi0gICAgICAgICAgIjAuMDEwNDc3LCAwLjAxMDI0LCAwLjAxMDI2MSwgMC4wMTAyNzMsIDAuMDEwMjg2LCAwLjAxMDI5NiwgMC4wMTAzMDIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDYwMTgsIDAuMDA2MTI4LCAwLjAwNjE1NSwgMC4wMDYxNzEsIDAuMDA2MTcxLCAwLjAwNjE4MSwgMC4wMDYxODciLCBcCi0gICAgICAgICAgIjAuMDA1OTI5LCAwLjAwNjA1MiwgMC4wMDYwODMsIDAuMDA2MDkyLCAwLjAwNjEwMSwgMC4wMDYxMDYsIDAuMDA2MTEiLCBcCi0gICAgICAgICAgIjAuMDA1OTI5LCAwLjAwNjAwOSwgMC4wMDYwNDEsIDAuMDA2MDUyLCAwLjAwNjA2MiwgMC4wMDYwNjcsIDAuMDA2MDcxIiwgXAotICAgICAgICAgICIwLjAwNTk1NywgMC4wMDYwMDUsIDAuMDA2MDM5LCAwLjAwNjA0NiwgMC4wMDYwNjUsIDAuMDA2MDY3LCAwLjAwNjA3NSIsIFwKLSAgICAgICAgICAiMC4wMDYxMTIsIDAuMDA2MDU3LCAwLjAwNjA3NSwgMC4wMDYwOTEsIDAuMDA2MDk5LCAwLjAwNjEsIDAuMDA2MTAzIiwgXAotICAgICAgICAgICIwLjAwNjIzLCAwLjAwNjExOSwgMC4wMDYxNDIsIDAuMDA2MTU0LCAwLjAwNjE2NCwgMC4wMDYxNjksIDAuMDA2MTc1IiwgXAotICAgICAgICAgICIwLjAwNjUxNywgMC4wMDYyNzEsIDAuMDA2MjcyLCAwLjAwNjI3MywgMC4wMDYyOCwgMC4wMDYyODQsIDAuMDA2MjgzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDk0MjMsIDAuMDA5NTE0LCAwLjAwOTU0MywgMC4wMDk1NTQsIDAuMDA5NTYzLCAwLjAwOTU2OCwgMC4wMDk1NzIiLCBcCi0gICAgICAgICAgIjAuMDA5MzgxLCAwLjAwOTQ2LCAwLjAwOTUwMSwgMC4wMDk1MTUsIDAuMDA5NTI4LCAwLjAwOTUzNSwgMC4wMDk1NDIiLCBcCi0gICAgICAgICAgIjAuMDA5NDYsIDAuMDA5NDgzLCAwLjAwOTUyNywgMC4wMDk1NDQsIDAuMDA5NTU5LCAwLjAwOTU2OSwgMC4wMDk1NzYiLCBcCi0gICAgICAgICAgIjAuMDA5NjI4LCAwLjAwOTU1NiwgMC4wMDk1OTUsIDAuMDA5NjExLCAwLjAwOTYyNywgMC4wMDk2MzYsIDAuMDA5NjQ2IiwgXAotICAgICAgICAgICIwLjAwOTk0NywgMC4wMDk3MDMsIDAuMDA5NzE0LCAwLjAwOTcyNiwgMC4wMDk3MzcsIDAuMDA5NzQzLCAwLjAwOTc1IiwgXAotICAgICAgICAgICIwLjAxMDIwMSwgMC4wMDk4NTEsIDAuMDA5ODUzLCAwLjAwOTg2LCAwLjAwOTg2NiwgMC4wMDk4NzMsIDAuMDA5ODgxIiwgXAotICAgICAgICAgICIwLjAxMDU5NCwgMC4wMTAwNzcsIDAuMDEwMDQ5LCAwLjAxMDA0NywgMC4wMTAwNDgsIDAuMDEwMDUsIDAuMDEwMDUyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2MzI2LCAwLjAwNjQxMiwgMC4wMDY0NDEsIDAuMDA2NDUxLCAwLjAwNjQ1OCwgMC4wMDY0NjIsIDAuMDA2NDY4IiwgXAotICAgICAgICAgICIwLjAwNjI3NSwgMC4wMDYzNywgMC4wMDY0MDUsIDAuMDA2NDE2LCAwLjAwNjQyOSwgMC4wMDY0MzQsIDAuMDA2NDQiLCBcCi0gICAgICAgICAgIjAuMDA2MzQ4LCAwLjAwNjM5LCAwLjAwNjQyOCwgMC4wMDY0NDMsIDAuMDA2NDU4LCAwLjAwNjQ2NCwgMC4wMDY0NzQiLCBcCi0gICAgICAgICAgIjAuMDA2NTAyLCAwLjAwNjQ1NywgMC4wMDY0ODYsIDAuMDA2NTAzLCAwLjAwNjUxNiwgMC4wMDY1MjQsIDAuMDA2NTMzIiwgXAotICAgICAgICAgICIwLjAwNjc1NCwgMC4wMDY1NTgsIDAuMDA2NTg0LCAwLjAwNjU5NSwgMC4wMDY2MTQsIDAuMDA2NjE0LCAwLjAwNjYyIiwgXAotICAgICAgICAgICIwLjAwNzAxLCAwLjAwNjc2NSwgMC4wMDY3NzcsIDAuMDA2Nzg3LCAwLjAwNjc5NCwgMC4wMDY4MDQsIDAuMDA2ODExIiwgXAotICAgICAgICAgICIwLjAwNzI1OCwgMC4wMDY5NjMsIDAuMDA2OTY1LCAwLjAwNjk2OSwgMC4wMDY5NzgsIDAuMDA2OTc2LCAwLjAwNjk4OCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA4MzU1LCAwLjAwODQyMSwgMC4wMDg0NCwgMC4wMDg0NDYsIDAuMDA4NDUxLCAwLjAwODQ1MywgMC4wMDg0NTYiLCBcCi0gICAgICAgICAgIjAuMDA4MjkxLCAwLjAwODM3MiwgMC4wMDgzOTYsIDAuMDA4NDAzLCAwLjAwODQxLCAwLjAwODQxMywgMC4wMDg0MTYiLCBcCi0gICAgICAgICAgIjAuMDA4MzQ2LCAwLjAwODM3LCAwLjAwODM5MywgMC4wMDg0LCAwLjAwODQwNywgMC4wMDg0MSwgMC4wMDg0MTMiLCBcCi0gICAgICAgICAgIjAuMDA4NDg2LCAwLjAwODM5OCwgMC4wMDg0MjQsIDAuMDA4NDMzLCAwLjAwODQ0LCAwLjAwODQ0NCwgMC4wMDg0NDgiLCBcCi0gICAgICAgICAgIjAuMDA4NTE2LCAwLjAwODQ1MSwgMC4wMDg0NzMsIDAuMDA4NDc5LCAwLjAwODQ5MSwgMC4wMDg0OTUsIDAuMDA4NDk5IiwgXAotICAgICAgICAgICIwLjAwODc3NSwgMC4wMDg1OTQsIDAuMDA4NjA1LCAwLjAwODYxLCAwLjAwODYxNiwgMC4wMDg2MTksIDAuMDA4NjIyIiwgXAotICAgICAgICAgICIwLjAwOTA2MywgMC4wMDg3NjcsIDAuMDA4NzU3LCAwLjAwODc1NiwgMC4wMDg3NTYsIDAuMDA4NzU4LCAwLjAwODc1OCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIxIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNTk4NiwgMC4wMDYwOTYsIDAuMDA2MTIzLCAwLjAwNjEyNCwgMC4wMDYxMzQsIDAuMDA2MTQ0LCAwLjAwNjE1NSIsIFwKLSAgICAgICAgICAiMC4wMDU5MTQsIDAuMDA2MDM4LCAwLjAwNjA3MywgMC4wMDYwODUsIDAuMDA2MDk1LCAwLjAwNjEwMSwgMC4wMDYxMDkiLCBcCi0gICAgICAgICAgIjAuMDA2MDAxLCAwLjAwNjA0NywgMC4wMDYwODIsIDAuMDA2MDksIDAuMDA2MTA3LCAwLjAwNjExMywgMC4wMDYxMjQiLCBcCi0gICAgICAgICAgIjAuMDA2MTEyLCAwLjAwNjEwNywgMC4wMDYxMzYsIDAuMDA2MTUsIDAuMDA2MTYyLCAwLjAwNjE2OCwgMC4wMDYxOCIsIFwKLSAgICAgICAgICAiMC4wMDYzMTksIDAuMDA2MjA3LCAwLjAwNjIzLCAwLjAwNjI0MywgMC4wMDYyNTQsIDAuMDA2MjU2LCAwLjAwNjI2NSIsIFwKLSAgICAgICAgICAiMC4wMDY3MjQsIDAuMDA2NDI0LCAwLjAwNjQxOCwgMC4wMDY0MjYsIDAuMDA2NDI5LCAwLjAwNjQ0MywgMC4wMDY0MzkiLCBcCi0gICAgICAgICAgIjAuMDA3MDg4LCAwLjAwNjYzOCwgMC4wMDY2MSwgMC4wMDY2MDgsIDAuMDA2NjEyLCAwLjAwNjYwNCwgMC4wMDY2MDciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNzg5MSwgMC4wMDc5NzksIDAuMDA4MDAzLCAwLjAwODAxMSwgMC4wMDgwMTgsIDAuMDA4MDIyLCAwLjAwODAyNSIsIFwKLSAgICAgICAgICAiMC4wMDc4NDksIDAuMDA3OTQxLCAwLjAwNzk3MiwgMC4wMDc5ODIsIDAuMDA3OTkxLCAwLjAwNzk5NiwgMC4wMDgiLCBcCi0gICAgICAgICAgIjAuMDA3OTY1LCAwLjAwNzk3NiwgMC4wMDgwMDYsIDAuMDA4MDE3LCAwLjAwODAyNywgMC4wMDgwMzMsIDAuMDA4MDM4IiwgXAotICAgICAgICAgICIwLjAwODIwNywgMC4wMDgwNzcsIDAuMDA4MDkyLCAwLjAwODA5OSwgMC4wMDgxMDcsIDAuMDA4MTExLCAwLjAwODExNSIsIFwKLSAgICAgICAgICAiMC4wMDgzNDgsIDAuMDA4MTUxLCAwLjAwODE2NiwgMC4wMDgxNjUsIDAuMDA4MTcyLCAwLjAwODE3NSwgMC4wMDgxNzkiLCBcCi0gICAgICAgICAgIjAuMDA4NjI2LCAwLjAwODM1MywgMC4wMDgzMTcsIDAuMDA4MzIzLCAwLjAwODMyOSwgMC4wMDgzMzEsIDAuMDA4MzM2IiwgXAotICAgICAgICAgICIwLjAwOTExMiwgMC4wMDg0OTgsIDAuMDA4NDg3LCAwLjAwODQ4OCwgMC4wMDg0OTEsIDAuMDA4NDksIDAuMDA4NDkyIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogT0FJMjFYMSAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChPQUkyMVgxKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMjUwMjk5OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwOTEyOTQyOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDkxMDkxMTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA5MTI5NDI7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNTI0LCAwLjAwMDUyNCwgMC4wMDA1MjQsIDAuMDAwNTI0LCAwLjAwMDUyNCwgMC4wMDA1MjMsIDAuMDAwNTIzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNTMzLCAwLjAwMDUyNiwgMC4wMDA1MjYsIDAuMDAwNTI2LCAwLjAwMDUyNiwgMC4wMDA1MjYsIDAuMDAwNTI2Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihBMSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwOTQ4NzY0OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDk0ODc2NDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA5NDY2NTc7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNTI1LCAwLjAwMDUyNCwgMC4wMDA1MjQsIDAuMDAwNTI0LCAwLjAwMDUyNCwgMC4wMDA1MjQsIDAuMDAwNTI0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNTMyLCAwLjAwMDUyNiwgMC4wMDA1MjUsIDAuMDAwNTI1LCAwLjAwMDUyNiwgMC4wMDA1MjYsIDAuMDAwNTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwOTU2NDM0OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDk1NjE3MTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA5NTY0MzQ7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjExLCAwLjAwMDIxMiwgMC4wMDAyMTIsIDAuMDAwMjEyLCAwLjAwMDIxMiwgMC4wMDAyMTIsIDAuMDAwMjEyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNTk1LCAwLjAwMDU5NiwgMC4wMDA1OTYsIDAuMDAwNTk2LCAwLjAwMDU5NiwgMC4wMDA1OTYsIDAuMDAwNTk2Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMTg5NjY3OwotICAgIGZ1bmN0aW9uIDogIighKChBMCtBMSkgQjApKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTAiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3MTI2NiwgMC4xMDUwMDEsIDAuMjk1NTk4LCAwLjQ2MzM0OCwgMC42ODc0MzQsIDEuMTM1ODQsIDEuNDE1MjYiLCBcCi0gICAgICAgICAgIjAuMDc3NDE1LCAwLjExMTE2NywgMC4zMDE1MjIsIDAuNDY5NzYxLCAwLjY5MzY5NCwgMS4xNDEyOSwgMS40MjA4MSIsIFwKLSAgICAgICAgICAiMC4wODQ4MzgsIDAuMTE4NDk0LCAwLjMwOTE2MiwgMC40NzcxMTcsIDAuNzAxMTg1LCAxLjE0OTA0LCAxLjQzMDU0IiwgXAotICAgICAgICAgICIwLjA5MjIyMiwgMC4xMjU4NjUsIDAuMzE2Njg1LCAwLjQ4NDcwNSwgMC43MDg5MjgsIDEuMTU3MjcsIDEuNDM2NzUiLCBcCi0gICAgICAgICAgIjAuMDk5NTg3LCAwLjEzMzI3NCwgMC4zMjQzMzUsIDAuNDkyMzA1LCAwLjcxNjY4NSwgMS4xNjUxOCwgMS40NDQ0NCIsIFwKLSAgICAgICAgICAiMC4xMTAwOCwgMC4xNDUyNDIsIDAuMzM1ODU2LCAwLjUwNDQxOSwgMC43MjgxMTYsIDEuMTc1OTksIDEuNDU1OTYiLCBcCi0gICAgICAgICAgIjAuMTE4MTY1LCAwLjE1NDk1NCwgMC4zNDYzMjMsIDAuNTE0MzAzLCAwLjczODcxMSwgMS4xODY0MywgMS40NjY1MSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMzY3NTUsIDAuMjA3NzY1LCAwLjYwOTg3MiwgMC45NjM2NzIsIDEuNDM2NCwgMi4zODE4MiwgMi45NzE1OCIsIFwKLSAgICAgICAgICAiMC4xMzY4NzEsIDAuMjA3NzE3LCAwLjYwOTU0NywgMC45NjQwODMsIDEuNDM2NTUsIDIuMzgwOCwgMi45NzMwOCIsIFwKLSAgICAgICAgICAiMC4xMzg5MjQsIDAuMjA4NDEzLCAwLjYwOTYsIDAuOTYzODI4LCAxLjQzNjUsIDIuMzgxNSwgMi45NzMwOCIsIFwKLSAgICAgICAgICAiMC4xNDI4MDUsIDAuMjExMDY4LCAwLjYwOTYxNSwgMC45NjM2NDcsIDEuNDM2NTUsIDIuMzgxODIsIDIuOTczMDEiLCBcCi0gICAgICAgICAgIjAuMTQ3Njk4LCAwLjIxNDg4NiwgMC42MDk1MjYsIDAuOTYzNjU2LCAxLjQzNjY2LCAyLjM4MjEzLCAyLjk3MjM3IiwgXAotICAgICAgICAgICIwLjE1Njk4NywgMC4yMjI1NjgsIDAuNjEyMDQsIDAuOTYzOTc1LCAxLjQzNjQ1LCAyLjM4MjQ0LCAyLjk3MTMyIiwgXAotICAgICAgICAgICIwLjE2NTkyNSwgMC4yMywgMC42MTUxNywgMC45NjQ5NDMsIDEuNDM2NjcsIDIuMzgyNDEsIDIuOTczMzUiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY5ODY2LCAwLjEwMjQ5LCAwLjI4NzIwOSwgMC40NTAxMDgsIDAuNjY3NjI3LCAxLjEwMjU1LCAxLjM3MzQ0IiwgXAotICAgICAgICAgICIwLjA3NjYzLCAwLjEwOTM0OSwgMC4yOTQwODQsIDAuNDU2OSwgMC42NzM5OTgsIDEuMTA4MjEsIDEuMzc5ODEiLCBcCi0gICAgICAgICAgIjAuMDg0Njk1LCAwLjExNzQ3MiwgMC4zMDIzMzcsIDAuNDY1MjUyLCAwLjY4MjE4MywgMS4xMTY0OCwgMS4zODg1NyIsIFwKLSAgICAgICAgICAiMC4wOTI2OTgsIDAuMTI1NDk0LCAwLjMxMDUwNSwgMC40NzM1MDEsIDAuNjkwNTE4LCAxLjEyNDgsIDEuMzk3MDIiLCBcCi0gICAgICAgICAgIjAuMTAxMDM4LCAwLjEzMzYyLCAwLjMxODU2NSwgMC40ODE1NzgsIDAuNjk4ODQ5LCAxLjEzMywgMS40MDU1OCIsIFwKLSAgICAgICAgICAiMC4xMTI1NCwgMC4xNDY4MiwgMC4zMzEzMTQsIDAuNDk0NzM0LCAwLjcxMTg0MywgMS4xNDYyMywgMS40MTc3MSIsIFwKLSAgICAgICAgICAiMC4xMjE2NjYsIDAuMTU3Njc5LCAwLjM0Mjc3MywgMC41MDU3NjYsIDAuNzIzMTEsIDEuMTU4MDYsIDEuNDI5NSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMjgzMTcsIDAuMTk1NjgyLCAwLjU3NjQ2MSwgMC45MTIyMTgsIDEuMzYwMzMsIDIuMjU2MzIsIDIuODE1MjIiLCBcCi0gICAgICAgICAgIjAuMTI4MzYsIDAuMTk1NTYsIDAuNTc2Mzc2LCAwLjkxMjA4OSwgMS4zNTk4OSwgMi4yNTUyMywgMi44MTUxMyIsIFwKLSAgICAgICAgICAiMC4xMzAyMzEsIDAuMTk2Mjg3LCAwLjU3NjQ0NiwgMC45MTI0MDEsIDEuMzU5ODcsIDIuMjU2MiwgMi44MTYwMiIsIFwKLSAgICAgICAgICAiMC4xMzQwMDgsIDAuMTk4Njg1LCAwLjU3NjQwOCwgMC45MTIwNjMsIDEuMzU5ODUsIDIuMjU1NTEsIDIuODE2NCIsIFwKLSAgICAgICAgICAiMC4xMzkxODUsIDAuMjAyNTIzLCAwLjU3NjU3NiwgMC45MTIwNiwgMS4zNTk4NiwgMi4yNTU2MywgMi44MTYyIiwgXAotICAgICAgICAgICIwLjE0ODEyMSwgMC4yMTAzNDksIDAuNTc4NTUyLCAwLjkxMjM5NCwgMS4zNTk4NiwgMi4yNTUzNywgMi44MTUwOSIsIFwKLSAgICAgICAgICAiMC4xNTcyNDIsIDAuMjE4MDE5LCAwLjU4MTg1MywgMC45MTMxNTEsIDEuMzYwNjMsIDIuMjU1NzQsIDIuODE1MDYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2OTAzLCAwLjEwMjczNiwgMC4yOTMyNTEsIDAuNDYxNDk3LCAwLjY4NTQ5NiwgMS4xMzM4MiwgMS40MTQyNiIsIFwKLSAgICAgICAgICAiMC4wNzY1MjYsIDAuMTEwMjA2LCAwLjMwMDY5NiwgMC40Njg1NzQsIDAuNjkyNDA0LCAxLjE0MDE3LCAxLjQyMDEiLCBcCi0gICAgICAgICAgIjAuMDg2MjE0LCAwLjExOTg4NSwgMC4zMTAyNzUsIDAuNDc4MzI0LCAwLjcwMjE4MiwgMS4xNDk4MSwgMS40MzA3NyIsIFwKLSAgICAgICAgICAiMC4wOTU4OTYsIDAuMTI5NDUyLCAwLjMxOTc4MSwgMC40ODc3NzEsIDAuNzExOTg3LCAxLjE2MDMxLCAxLjQzOTg0IiwgXAotICAgICAgICAgICIwLjEwNTg2MiwgMC4xMzkyOTIsIDAuMzI5NDQzLCAwLjQ5NzUwMSwgMC43MjEzNTEsIDEuMTY4OTcsIDEuNDQ5ODMiLCBcCi0gICAgICAgICAgIjAuMTIwNjUxLCAwLjE1NTEzOSwgMC4zNDQ5MzQsIDAuNTEwOTkzLCAwLjczNzA1NywgMS4xODQ0NCwgMS40NjQyNyIsIFwKLSAgICAgICAgICAiMC4xMzE2OTcsIDAuMTY5MDA0LCAwLjM1ODUzNCwgMC41MjYyNjksIDAuNzUwMjMsIDEuMTk4MjEsIDEuNDc3NzIiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTM2NzY0LCAwLjIwNzc5OCwgMC42MDk2MTYsIDAuOTY0NDQ3LCAxLjQzNTk3LCAyLjM4MTgzLCAyLjk3Mjc4IiwgXAotICAgICAgICAgICIwLjEzNjgxMSwgMC4yMDc3NjgsIDAuNjA5NTE5LCAwLjk2NDE0NSwgMS40MzYzOSwgMi4zODE4MiwgMi45NzEzMSIsIFwKLSAgICAgICAgICAiMC4xNDAxNjQsIDAuMjA4ODgxLCAwLjYwOTU2NCwgMC45NjM2NjUsIDEuNDM2MTUsIDIuMzgxMzUsIDIuOTcyNzUiLCBcCi0gICAgICAgICAgIjAuMTQ2MjcsIDAuMjEyOTgxLCAwLjYwOTU1MiwgMC45NjQzNzIsIDEuNDM2NTcsIDIuMzgxODMsIDIuOTcyODYiLCBcCi0gICAgICAgICAgIjAuMTUzNzM5LCAwLjIxODc1MywgMC42MDk5MjcsIDAuOTY0MTQsIDEuNDM2MTcsIDIuMzgyMTcsIDIuOTcyMyIsIFwKLSAgICAgICAgICAiMC4xNjY5MDksIDAuMjI5OTc2LCAwLjYxMjY0MywgMC45NjQxMjksIDEuNDM2NjQsIDIuMzgxNywgMi45NzEzMSIsIFwKLSAgICAgICAgICAiMC4xNzk0MDIsIDAuMjQxMzYyLCAwLjYxNzM1MywgMC45NjQ5NDcsIDEuNDM2MzIsIDIuMzgxNTgsIDIuOTcyMzUiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY1MTU3LCAwLjA5Njg5LCAwLjI3Njc0MSwgMC40MzUzMjUsIDAuNjQ2ODA5LCAxLjA3MDI1LCAxLjMzMzkiLCBcCi0gICAgICAgICAgIjAuMDcyMDYyLCAwLjEwMzkxNCwgMC4yODM3MTgsIDAuNDQyMjU4LCAwLjY1MzYyNCwgMS4wNzY0NiwgMS4zNDA1IiwgXAotICAgICAgICAgICIwLjA4MDE3MSwgMC4xMTIxMjcsIDAuMjkyMTcxLCAwLjQ1MDY3NCwgMC42NjIzNjMsIDEuMDg1MDcsIDEuMzQ5NDQiLCBcCi0gICAgICAgICAgIjAuMDg4NDU2LCAwLjEyMDMzNCwgMC4zMDA0ODQsIDAuNDU5MTEsIDAuNjcwNDM2LCAxLjA5MzE5LCAxLjM1ODExIiwgXAotICAgICAgICAgICIwLjA5NjUzOCwgMC4xMjg1NDcsIDAuMzA4Nzk4LCAwLjQ2NzU2NywgMC42NzkwODMsIDEuMTAxNTgsIDEuMzY3NCIsIFwKLSAgICAgICAgICAiMC4xMDc5NzMsIDAuMTQxOTU3LCAwLjMyMTcyMywgMC40ODA4NzgsIDAuNjkyMTgzLCAxLjExNTM0LCAxLjM4MDExIiwgXAotICAgICAgICAgICIwLjExNjk0NiwgMC4xNTI3ODMsIDAuMzMzMzc1LCAwLjQ5MjM3NiwgMC43MDM4NSwgMS4xMjc0MiwgMS4zOTE2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEyMDY5OSwgMC4xODU4OTksIDAuNTU0NjAxLCAwLjg3OTgzNSwgMS4zMTM4MiwgMi4xODMyMSwgMi43MjQ1NCIsIFwKLSAgICAgICAgICAiMC4xMjA0NDQsIDAuMTg1NTA4LCAwLjU1NTc3NSwgMC44ODEzODMsIDEuMzE2MDIsIDIuMTgzNjcsIDIuNzMxMTUiLCBcCi0gICAgICAgICAgIjAuMTIyNTkzLCAwLjE4NjczMywgMC41NTQzNjYsIDAuODg0NDUyLCAxLjMxMzgyLCAyLjE4MjUyLCAyLjcyNzUiLCBcCi0gICAgICAgICAgIjAuMTI2NzM3LCAwLjE4OTA5NSwgMC41NTQzMjksIDAuODgwMDM2LCAxLjMyMDY5LCAyLjE5MzExLCAyLjcyNTIxIiwgXAotICAgICAgICAgICIwLjEzMTkxLCAwLjE5MzIxMywgMC41NTQ5OTMsIDAuODc5OTkzLCAxLjMxMzksIDIuMTg1MzMsIDIuNzI1MiIsIFwKLSAgICAgICAgICAiMC4xNDE0NTgsIDAuMjAxMjYxLCAwLjU1Nzk2OSwgMC44Nzk5NzYsIDEuMzE3MDQsIDIuMTgxODQsIDIuNzI1MTUiLCBcCi0gICAgICAgICAgIjAuMTUwOTczLCAwLjIwOTM5NSwgMC41NjE0MzksIDAuODgzMTcyLCAxLjMxNDk4LCAyLjE4MjQ5LCAyLjcyNDI5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzczMzYsIDAuMDU2MDMsIDAuMTYxODUyLCAwLjI1NTE1MiwgMC4zNzk0OTUsIDAuNjI3ODI1LCAwLjc4MzE3MiIsIFwKLSAgICAgICAgICAiMC4wNDU1NzIsIDAuMDY0Mjc5LCAwLjE3MDEsIDAuMjYzMzc2LCAwLjM4NzY4OSwgMC42MzU5OTYsIDAuNzkxMDk5IiwgXAotICAgICAgICAgICIwLjA1NTk3LCAwLjA3NDYwNCwgMC4xODAzODMsIDAuMjczNjY4LCAwLjM5NzgzNywgMC42NDYxMzUsIDAuODAxMjE3IiwgXAotICAgICAgICAgICIwLjA2NjA2OCwgMC4wODUyMjYsIDAuMTkwNzk2LCAwLjI4NDEwNCwgMC40MDgzNjksIDAuNjU2NDY3LCAwLjgxMTU4IiwgXAotICAgICAgICAgICIwLjA3NDI2NywgMC4wOTU3MDIsIDAuMjAxMzA0LCAwLjI5NDU5LCAwLjQxODg1MywgMC42NjY4NzUsIDAuODIyMDEyIiwgXAotICAgICAgICAgICIwLjA4NDg3OCwgMC4xMDk4NiwgMC4yMTgwNjYsIDAuMzExMjExLCAwLjQzNTQ4LCAwLjY4MzY0NSwgMC44Mzg4MjUiLCBcCi0gICAgICAgICAgIjAuMDkzMjI0LCAwLjEyMDQxNSwgMC4yMzI4MzksIDAuMzI1ODc5LCAwLjQ1MDAyNiwgMC42OTgyNjQsIDAuODUzMzcyIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3NTgyMSwgMC4xMTQ5ODQsIDAuMzM3MDE2LCAwLjUzMzI3MiwgMC43OTQ3MTQsIDEuMzE3NzEsIDEuNjQ0MDMiLCBcCi0gICAgICAgICAgIjAuMDc3Mjc5LCAwLjExNTMzMSwgMC4zMzcxMzUsIDAuNTMzMTY5LCAwLjc5NDcxMSwgMS4zMTc3MSwgMS42NDQ4IiwgXAotICAgICAgICAgICIwLjA4MzkyNSwgMC4xMTk5MDcsIDAuMzM3MTI0LCAwLjUzMzE4MSwgMC43OTQ2NjQsIDEuMzE3NjgsIDEuNjQ0NyIsIFwKLSAgICAgICAgICAiMC4wOTI0NjYsIDAuMTI2OTY1LCAwLjMzODM5NiwgMC41MzMwNjEsIDAuNzk0NzU2LCAxLjMxNzY5LCAxLjY0NDA5IiwgXAotICAgICAgICAgICIwLjEwMTg3MiwgMC4xMzUyMiwgMC4zNDE3MDUsIDAuNTMzNzUsIDAuNzk0NzY4LCAxLjMxNzY5LCAxLjY0NDc4IiwgXAotICAgICAgICAgICIwLjExNzY3OCwgMC4xNDk5MTgsIDAuMzQ5OTQ0LCAwLjUzNzc3NywgMC43OTUxMTIsIDEuMzE3NjksIDEuNjQ0ODEiLCBcCi0gICAgICAgICAgIjAuMTI5MzQ3LCAwLjE2MzU5NiwgMC4zNTg3NTMsIDAuNTQzNTI4LCAwLjc5NzQ3NCwgMS4zMTc0MSwgMS42NDQwNSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjY2NzcsIDAuMDk5MzYyLCAwLjI4NDA4NiwgMC40NDcxMDksIDAuNjY0MzU5LCAxLjA5ODE1LCAxLjM3MDk4IiwgXAotICAgICAgICAgICIwLjA3NDI2MiwgMC4xMDY5NDQsIDAuMjkxNjg5LCAwLjQ1NDU0OCwgMC42NzE2NjQsIDEuMTA2LCAxLjM3NzkzIiwgXAotICAgICAgICAgICIwLjA4NDEwNiwgMC4xMTY3NjUsIDAuMzAxNTg1LCAwLjQ2NDM5LCAwLjY4MTU2OCwgMS4xMTY1LCAxLjM4Nzk2IiwgXAotICAgICAgICAgICIwLjA5Mzk5MiwgMC4xMjY1MDQsIDAuMzExMDk5LCAwLjQ3NDAyNCwgMC42OTE1MDMsIDEuMTI1NTYsIDEuMzk4MzMiLCBcCi0gICAgICAgICAgIjAuMTA0MTU3LCAwLjEzNjU1NCwgMC4zMjA5MTcsIDAuNDgzOTAxLCAwLjcwMTQyMSwgMS4xMzUxMSwgMS40MDcxMiIsIFwKLSAgICAgICAgICAiMC4xMTk0MDQsIDAuMTUyNzQ4LCAwLjMzNjY0MSwgMC40OTczNTcsIDAuNzE2NDU3LCAxLjE1MDcxLCAxLjQyMjA2IiwgXAotICAgICAgICAgICIwLjEzMDg2OCwgMC4xNjY5MiwgMC4zNTA1NTMsIDAuNTEzMjc0LCAwLjczMDI1OSwgMS4xNjQ2NCwgMS40MzU4OCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMjgzMTcsIDAuMTk1NjIxLCAwLjU3NjQ5MywgMC45MTI0MzMsIDEuMzYwMzQsIDIuMjU1NTEsIDIuODE2MjQiLCBcCi0gICAgICAgICAgIjAuMTI4MzI2LCAwLjE5NTYyMSwgMC41NzY0NDQsIDAuOTEyMjQsIDEuMzYwMDQsIDIuMjU2MSwgMi44MTU0NyIsIFwKLSAgICAgICAgICAiMC4xMzE1NTUsIDAuMTk2NjQ4LCAwLjU3NjQ5MiwgMC45MTI3MDUsIDEuMzU5OTcsIDIuMjU2MDYsIDIuODE2NjQiLCBcCi0gICAgICAgICAgIjAuMTM3NTUzLCAwLjIwMDYxNiwgMC41NzY0MDQsIDAuOTEyMTEyLCAxLjM2MDM3LCAyLjI1NjE3LCAyLjgxNjg5IiwgXAotICAgICAgICAgICIwLjE0NDgyNSwgMC4yMDYzNjEsIDAuNTc2NTM0LCAwLjkxMjQ0NCwgMS4zNjAzMiwgMi4yNTU2NSwgMi44MTUxMiIsIFwKLSAgICAgICAgICAiMC4xNTc4MzcsIDAuMjE3NDY5LCAwLjU3OTQ0NywgMC45MTIzNiwgMS4zNTk4OCwgMi4yNTU2MiwgMi44MTY0MyIsIFwKLSAgICAgICAgICAiMC4xNzAwODYsIDAuMjI4NDQyLCAwLjU4NDE4LCAwLjkxMjk4OSwgMS4zNTk5MSwgMi4yNTUzNywgMi44MTUxNSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDMzNDgsIDAuMDAzMzQ4LCAwLjAwMzM0OCwgMC4wMDMzNDksIDAuMDAzMzQ4LCAwLjAwMzM0NywgMC4wMDMzNDYiLCBcCi0gICAgICAgICAgIjAuMDAzMzMxLCAwLjAwMzMzNCwgMC4wMDMzMzksIDAuMDAzMzQsIDAuMDAzMzM5LCAwLjAwMzM0LCAwLjAwMzMzOCIsIFwKLSAgICAgICAgICAiMC4wMDMzMjksIDAuMDAzMzMyLCAwLjAwMzMzNywgMC4wMDMzMzgsIDAuMDAzMzQxLCAwLjAwMzM0LCAwLjAwMzMzNyIsIFwKLSAgICAgICAgICAiMC4wMDMzNDQsIDAuMDAzMzQzLCAwLjAwMzM0MiwgMC4wMDMzNDEsIDAuMDAzMzM5LCAwLjAwMzMzOSwgMC4wMDMzNCIsIFwKLSAgICAgICAgICAiMC4wMDMzNywgMC4wMDMzNjMsIDAuMDAzMzUxLCAwLjAwMzM0NywgMC4wMDMzNDQsIDAuMDAzMzQxLCAwLjAwMzM0IiwgXAotICAgICAgICAgICIwLjAwMzQ0LCAwLjAwMzQxNSwgMC4wMDMzNzUsIDAuMDAzMzY0LCAwLjAwMzM1NSwgMC4wMDMzNDksIDAuMDAzMzQ2IiwgXAotICAgICAgICAgICIwLjAwMzUyMSwgMC4wMDM0NzUsIDAuMDAzNDA1LCAwLjAwMzM4NCwgMC4wMDMzNzEsIDAuMDAzMzU5LCAwLjAwMzM1MyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDU1MSwgMC4wMDA1NTIsIDAuMDAwNTU0LCAwLjAwMDU1NCwgMC4wMDA1NTQsIDAuMDAwNTU0LCAwLjAwMDU1NCIsIFwKLSAgICAgICAgICAiMC4wMDA1MjMsIDAuMDAwNTI5LCAwLjAwMDUzNywgMC4wMDA1MzksIDAuMDAwNTQsIDAuMDAwNTQxLCAwLjAwMDU0MSIsIFwKLSAgICAgICAgICAiMC4wMDA1MTIsIDAuMDAwNTIsIDAuMDAwNTMzLCAwLjAwMDUzNiwgMC4wMDA1MzcsIDAuMDAwNTM4LCAwLjAwMDUzOCIsIFwKLSAgICAgICAgICAiMC4wMDA1MTksIDAuMDAwNTIzLCAwLjAwMDUzMywgMC4wMDA1MzUsIDAuMDAwNTM3LCAwLjAwMDUzOCwgMC4wMDA1MzgiLCBcCi0gICAgICAgICAgIjAuMDAwNTQyLCAwLjAwMDUzOSwgMC4wMDA1MzksIDAuMDAwNTM5LCAwLjAwMDUzOSwgMC4wMDA1MzksIDAuMDAwNTM5IiwgXAotICAgICAgICAgICIwLjAwMDYwMSwgMC4wMDA1ODUsIDAuMDAwNTU3LCAwLjAwMDU1MSwgMC4wMDA1NDgsIDAuMDAwNTQ0LCAwLjAwMDU0MyIsIFwKLSAgICAgICAgICAiMC4wMDA2NzgsIDAuMDAwNjQ1LCAwLjAwMDU4NCwgMC4wMDA1NywgMC4wMDA1NiwgMC4wMDA1NTIsIDAuMDAwNTQ5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjg5NywgMC4wMDI4OTgsIDAuMDAyODk5LCAwLjAwMjg5OSwgMC4wMDI4OTgsIDAuMDAyODk4LCAwLjAwMjg5NyIsIFwKLSAgICAgICAgICAiMC4wMDI4NzksIDAuMDAyODgzLCAwLjAwMjg4OCwgMC4wMDI4ODksIDAuMDAyODksIDAuMDAyODg5LCAwLjAwMjg4NyIsIFwKLSAgICAgICAgICAiMC4wMDI4OTIsIDAuMDAyODkxLCAwLjAwMjg5LCAwLjAwMjg5LCAwLjAwMjg4OSwgMC4wMDI4ODksIDAuMDAyODg4IiwgXAotICAgICAgICAgICIwLjAwMjkzMywgMC4wMDI5MjIsIDAuMDAyOTA0LCAwLjAwMjg5OSwgMC4wMDI4OTYsIDAuMDAyODkyLCAwLjAwMjg5IiwgXAotICAgICAgICAgICIwLjAwMjk4NywgMC4wMDI5NiwgMC4wMDI5MjEsIDAuMDAyOTExLCAwLjAwMjkwMywgMC4wMDI4OTcsIDAuMDAyODk1IiwgXAotICAgICAgICAgICIwLjAwMzEwMSwgMC4wMDMwNDYsIDAuMDAyOTU5LCAwLjAwMjkzMSwgMC4wMDI5MjEsIDAuMDAyOTA4LCAwLjAwMjkwNCIsIFwKLSAgICAgICAgICAiMC4wMDMyMjcsIDAuMDAzMTM5LCAwLjAwMzAwNCwgMC4wMDI5NjcsIDAuMDAyOTQ3LCAwLjAwMjkyMiwgMC4wMDI5MTQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDAyNDcsIDAuMDAwMjUyLCAwLjAwMDI1NywgMC4wMDAyNTgsIDAuMDAwMjU5LCAwLjAwMDI1OSwgMC4wMDAyNiIsIFwKLSAgICAgICAgICAiMC4wMDAyMTYsIDAuMDAwMjMzLCAwLjAwMDI1OCwgMC4wMDAyNjMsIDAuMDAwMjY2LCAwLjAwMDI2OSwgMC4wMDAyNyIsIFwKLSAgICAgICAgICAiMC4wMDAxODcsIDAuMDAwMjEsIDAuMDAwMjQ5LCAwLjAwMDI1OCwgMC4wMDAyNjMsIDAuMDAwMjY3LCAwLjAwMDI2OSIsIFwKLSAgICAgICAgICAiMC4wMDAxODIsIDAuMDAwMjAzLCAwLjAwMDI0NCwgMC4wMDAyNTUsIDAuMDAwMjYxLCAwLjAwMDI2NiwgMC4wMDAyNjgiLCBcCi0gICAgICAgICAgIjAuMDAwMTk0LCAwLjAwMDIwOCwgMC4wMDAyNDQsIDAuMDAwMjU0LCAwLjAwMDI2MSwgMC4wMDAyNjYsIDAuMDAwMjY4IiwgXAotICAgICAgICAgICIwLjAwMDI0NSwgMC4wMDAyNDMsIDAuMDAwMjU1LCAwLjAwMDI2MiwgMC4wMDAyNjYsIDAuMDAwMjY5LCAwLjAwMDI3MSIsIFwKLSAgICAgICAgICAiMC4wMDAzMTQsIDAuMDAwMjk0LCAwLjAwMDI3NSwgMC4wMDAyNzQsIDAuMDAwMjc1LCAwLjAwMDI3NSwgMC4wMDAyNzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyMzI0LCAwLjAwMjMyOCwgMC4wMDIzMzMsIDAuMDAyMzM0LCAwLjAwMjMzNCwgMC4wMDIzMzUsIDAuMDAyMzM1IiwgXAotICAgICAgICAgICIwLjAwMjMxNCwgMC4wMDIzMjMsIDAuMDAyMzM2LCAwLjAwMjMzOCwgMC4wMDIzNDEsIDAuMDAyMzQsIDAuMDAyMzQyIiwgXAotICAgICAgICAgICIwLjAwMjMzOCwgMC4wMDIzMzgsIDAuMDAyMzQzLCAwLjAwMjM0NCwgMC4wMDIzNDUsIDAuMDAyMzQ1LCAwLjAwMjM0NyIsIFwKLSAgICAgICAgICAiMC4wMDIzODMsIDAuMDAyMzY5LCAwLjAwMjM1NSwgMC4wMDIzNTMsIDAuMDAyMzUsIDAuMDAyMzQ4LCAwLjAwMjM0OSIsIFwKLSAgICAgICAgICAiMC4wMDI0NTMsIDAuMDAyNDE3LCAwLjAwMjM3NCwgMC4wMDIzNjQsIDAuMDAyMzU5LCAwLjAwMjM1NCwgMC4wMDIzNTIiLCBcCi0gICAgICAgICAgIjAuMDAyNjAyLCAwLjAwMjUyOCwgMC4wMDI0MTksIDAuMDAyMzk4LCAwLjAwMjM4MywgMC4wMDIzNjksIDAuMDAyMzY1IiwgXAotICAgICAgICAgICIwLjAwMjY5NiwgMC4wMDI2NDYsIDAuMDAyNDcsIDAuMDAyNDMxLCAwLjAwMjQwOSwgMC4wMDIzODcsIDAuMDAyMzgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDA1OTcsIDAuMDAwNjAyLCAwLjAwMDYwOSwgMC4wMDA2MSwgMC4wMDA2MTEsIDAuMDAwNjExLCAwLjAwMDYxMSIsIFwKLSAgICAgICAgICAiMC4wMDA1NjksIDAuMDAwNTgsIDAuMDAwNiwgMC4wMDA2MDQsIDAuMDAwNjA3LCAwLjAwMDYwOCwgMC4wMDA2MDkiLCBcCi0gICAgICAgICAgIjAuMDAwNTc1LCAwLjAwMDU4LCAwLjAwMDU5OCwgMC4wMDA2MDIsIDAuMDAwNjA1LCAwLjAwMDYwOCwgMC4wMDA2MDgiLCBcCi0gICAgICAgICAgIjAuMDAwNjI0LCAwLjAwMDYxNSwgMC4wMDA2MDksIDAuMDAwNjEsIDAuMDAwNjEsIDAuMDAwNjExLCAwLjAwMDYxMSIsIFwKLSAgICAgICAgICAiMC4wMDA2OSwgMC4wMDA2NjMsIDAuMDAwNjI5LCAwLjAwMDYyMiwgMC4wMDA2MTgsIDAuMDAwNjE2LCAwLjAwMDYxNSIsIFwKLSAgICAgICAgICAiMC4wMDA4MjksIDAuMDAwNzY3LCAwLjAwMDY3MiwgMC4wMDA2NSwgMC4wMDA2NDEsIDAuMDAwNjI5LCAwLjAwMDYyNiIsIFwKLSAgICAgICAgICAiMC4wMDA5NzUsIDAuMDAwODc2LCAwLjAwMDcyNSwgMC4wMDA2OTIsIDAuMDAwNjY3LCAwLjAwMDY0NiwgMC4wMDA2MzkiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogT0FJMjIxWDQgKgotICogLS0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKE9BSTIyMVg0KSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDEuNjM0OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAzNDY1Njg7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAzNDU5NzM7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAzNDY1Njg7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyMDk3LCAwLjAwMjA5NSwgMC4wMDIwOTQsIDAuMDAyMDkzLCAwLjAwMjA5NCwgMC4wMDIwOTQsIDAuMDAyMDk0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyMDk5LCAwLjAwMjEwMSwgMC4wMDIxMDEsIDAuMDAyMTAyLCAwLjAwMjEwMywgMC4wMDIxMDMsIDAuMDAyMTAxIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihBMSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAzNDAyMDI7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAzNDAyMDI7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAzMzkyNTI7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyMDk3LCAwLjAwMjA5NywgMC4wMDIwOTYsIDAuMDAyMDk1LCAwLjAwMjA5NSwgMC4wMDIwOTUsIDAuMDAyMDk2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyMDk4LCAwLjAwMjA5OSwgMC4wMDIxLCAwLjAwMjEwMSwgMC4wMDIxMDEsIDAuMDAyMTAyLCAwLjAwMjEiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDM0Mzg4NzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDM0Mjk4ODsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDM0Mzg4NzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDIwOTcsIDAuMDAyMDk2LCAwLjAwMjA5NCwgMC4wMDIwOTQsIDAuMDAyMDk0LCAwLjAwMjA5MywgMC4wMDIwOTMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDIwOTksIDAuMDAyMTAxLCAwLjAwMjEwMSwgMC4wMDIxMDMsIDAuMDAyMTAzLCAwLjAwMjEwNCwgMC4wMDIxMDQiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIxKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDMyOTAwODsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDMyOTAwODsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDMyODI5OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjA5NywgMC4wMDIwOTYsIDAuMDAyMDk1LCAwLjAwMjA5NiwgMC4wMDIwOTYsIDAuMDAyMDk1LCAwLjAwMjA5NCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjA5OSwgMC4wMDIwOTksIDAuMDAyMSwgMC4wMDIxMDEsIDAuMDAyMTAyLCAwLjAwMjEwMiwgMC4wMDIxMDIiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEMwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDMyNTY3MzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDMyNTU4OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMzI1NjczOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDYxNCwgMC4wMDA2MTYsIDAuMDAwNjE3LCAwLjAwMDYxOSwgMC4wMDA2MTgsIDAuMDAwNjE3LCAwLjAwMDYxNyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjM4MiwgMC4wMDIzODMsIDAuMDAyMzg0LCAwLjAwMjM4NCwgMC4wMDIzODQsIDAuMDAyMzgzLCAwLjAwMjM4NCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjUzMzMzOTsKLSAgICBmdW5jdGlvbiA6ICIoISgoKEEwK0ExKSAoQjArQjEpKSBDMCkpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzQ5NDYsIDAuMTM2MzE4LCAwLjIzNjM5OSwgMC4zMDc4MjcsIDAuNDIxOTQyLCAwLjUyMTU4MSwgMC42NjQxNzQiLCBcCi0gICAgICAgICAgIjAuMDQxMDUyLCAwLjE0MjUxNiwgMC4yNDI3MTcsIDAuMzEzOTg3LCAwLjQyODA2NCwgMC41Mjc3ODgsIDAuNjcwMTEyIiwgXAotICAgICAgICAgICIwLjA0ODM0NiwgMC4xNDk5MTUsIDAuMjUwMTMyLCAwLjMyMTU3MSwgMC40MzU2ODksIDAuNTM1MzM1LCAwLjY3Nzc3NSIsIFwKLSAgICAgICAgICAiMC4wNTQ2MTksIDAuMTU3MjE5LCAwLjI1NzY1MywgMC4zMjkxNjgsIDAuNDQzMDEsIDAuNTQyNzE4LCAwLjY4NDkyNCIsIFwKLSAgICAgICAgICAiMC4wNTk3NiwgMC4xNjQ3MywgMC4yNjUwMDcsIDAuMzM2NDM1LCAwLjQ1MDQ5MiwgMC41NTAyNDEsIDAuNjkyNTk3IiwgXAotICAgICAgICAgICIwLjA2NjU2NywgMC4xNzY1MjUsIDAuMjc2ODksIDAuMzQ4NjIyLCAwLjQ2MjY3NiwgMC41NjE5NjMsIDAuNzA0NDkyIiwgXAotICAgICAgICAgICIwLjA3MTg0MiwgMC4xODY5NjgsIDAuMjg3MjMsIDAuMzU4NTc3LCAwLjQ3MzAyOCwgMC41NzM0MjQsIDAuNzE1NjMiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjUzNTcsIDAuMjc2OTQ4LCAwLjQ4ODk4OSwgMC42NDA0MTksIDAuODgyNzg3LCAxLjA5NDY5LCAxLjM5ODAzIiwgXAotICAgICAgICAgICIwLjA2NjI3LCAwLjI3Njk1NiwgMC40ODg4OTQsIDAuNjQwMzQ0LCAwLjg4MjcwNCwgMS4wOTQ4OCwgMS4zOTc4MyIsIFwKLSAgICAgICAgICAiMC4wNzA0NzIsIDAuMjc3MjA1LCAwLjQ4OTAxOCwgMC42NDAzNDMsIDAuODgyNzYxLCAxLjA5NDg1LCAxLjM5NzgzIiwgXAotICAgICAgICAgICIwLjA3NjIwMywgMC4yNzg4NjIsIDAuNDg5MDk3LCAwLjY0MDQwNiwgMC44ODI3NywgMS4wOTQ3OSwgMS4zOTc4NiIsIFwKLSAgICAgICAgICAiMC4wODI2OTMsIDAuMjgxOTA0LCAwLjQ5MDE0NCwgMC42NDA1OTQsIDAuODgyNjksIDEuMDk0NjcsIDEuMzk3ODEiLCBcCi0gICAgICAgICAgIjAuMDkyODk3LCAwLjI4ODM4MywgMC40OTM2MTEsIDAuNjQyNjMzLCAwLjg4MzE3NiwgMS4wOTQ4NiwgMS4zOTc4NiIsIFwKLSAgICAgICAgICAiMC4xMDEzOTQsIDAuMjk1MDEyLCAwLjQ5ODA3MywgMC42NDU1MDgsIDAuODg0NjI4LCAxLjA5NTQ0LCAxLjM5NzgyIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDUyNTE5LCAwLjE5MjE0NSwgMC4zMzE0MSwgMC40MzA1MTEsIDAuNTg5NzUzLCAwLjcyODU2MSwgMC45Mjk4NzgiLCBcCi0gICAgICAgICAgIjAuMDU4OTg1LCAwLjE5ODg0OSwgMC4zMzc4NzYsIDAuNDM3NDU0LCAwLjU5NjI1MiwgMC43MzUzNjUsIDAuOTM1MzQ3IiwgXAotICAgICAgICAgICIwLjA2NTM0NywgMC4yMDUyNzYsIDAuMzQ0MzQyLCAwLjQ0MzY2MywgMC42MDI5MTgsIDAuNzQxODA2LCAwLjk0MjYxMiIsIFwKLSAgICAgICAgICAiMC4wNzExMjIsIDAuMjExMTY0LCAwLjM1MDM1OCwgMC40NDk5ODksIDAuNjA4ODk4LCAwLjc0ODI3LCAwLjk0ODExMyIsIFwKLSAgICAgICAgICAiMC4wNzYxNDIsIDAuMjE2OTY0LCAwLjM1NjIxMSwgMC40NTU1NzcsIDAuNjE0NjgyLCAwLjc1NDAzNywgMC45NTQyMTIiLCBcCi0gICAgICAgICAgIjAuMDgzMjQ4LCAwLjIyNjQyOSwgMC4zNjU2NzgsIDAuNDY1MTA3LCAwLjYyMzk5OSwgMC43NjM2NjgsIDAuOTYzMzk4IiwgXAotICAgICAgICAgICIwLjA4ODY2NSwgMC4yMzQ3NzUsIDAuMzczODA4LCAwLjQ3MzMxMSwgMC42MzIyOTYsIDAuNzcxMTY1LCAwLjk3MTc3NSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3NjM1NywgMC4zNjUwNDUsIDAuNjUzNzE1LCAwLjg2MTgwNiwgMS4xOTQ0OCwgMS40ODUzMiwgMS45MDIxMSIsIFwKLSAgICAgICAgICAiMC4wNzY0NjYsIDAuMzY1MDQzLCAwLjY1Mzc4NSwgMC44NjE0MjMsIDEuMTk0MjYsIDEuNDg1ODUsIDEuOTAxOTMiLCBcCi0gICAgICAgICAgIjAuMDc3OTIyLCAwLjM2NTAwNSwgMC42NTM1MDgsIDAuODYxNTM4LCAxLjE5NDU4LCAxLjQ4NTM0LCAxLjkwMTIzIiwgXAotICAgICAgICAgICIwLjA4MDY5NywgMC4zNjUyOTQsIDAuNjUzODEsIDAuODYxNDc3LCAxLjE5NDU3LCAxLjQ4NTM5LCAxLjkwMjMiLCBcCi0gICAgICAgICAgIjAuMDg0NjQ1LCAwLjM2NjQyNywgMC42NTM4MDksIDAuODYxNzgxLCAxLjE5NDQ1LCAxLjQ4NTYyLCAxLjkwMTg5IiwgXAotICAgICAgICAgICIwLjA5MTg5NCwgMC4zNjkzMiwgMC42NTQ5MiwgMC44NjIyNzYsIDEuMTk0MTMsIDEuNDg1ODksIDEuOTAxNDciLCBcCi0gICAgICAgICAgIjAuMDk4NTk5LCAwLjM3Mjk2OSwgMC42NTY2NjgsIDAuODYyNzA0LCAxLjE5NDM5LCAxLjQ4NTMsIDEuOTAxNTciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDMyNzE2LCAwLjEzNDA4NSwgMC4yMzQxNTgsIDAuMzA1NjE2LCAwLjQxOTY1OCwgMC41MTkzNDksIDAuNjYxOTAzIiwgXAotICAgICAgICAgICIwLjA0MDE0OCwgMC4xNDE2NTEsIDAuMjQxNjU2LCAwLjMxMzA5MiwgMC40MjcxNzMsIDAuNTI2OTM1LCAwLjY2OTMwNSIsIFwKLSAgICAgICAgICAiMC4wNTAxMTksIDAuMTUwOTc1LCAwLjI1MTA2OCwgMC4zMjI0OTQsIDAuNDM2NjE5LCAwLjUzNjI2MywgMC42Nzg1NjQiLCBcCi0gICAgICAgICAgIjAuMDU4NCwgMC4xNjA2MDYsIDAuMjYwNDQxLCAwLjMzMjEzLCAwLjQ0NjIyMiwgMC41NDU4OTUsIDAuNjg4NDgzIiwgXAotICAgICAgICAgICIwLjA2NTcyNiwgMC4xNzAzNjQsIDAuMjcwMzI4LCAwLjM0MTc3NSwgMC40NTU4MTYsIDAuNTU1NDc4LCAwLjY5Nzg0IiwgXAotICAgICAgICAgICIwLjA3NDk1OCwgMC4xODU5NjksIDAuMjg1ODk1LCAwLjM1NzI4NSwgMC40NzEyOTMsIDAuNTcwODgxLCAwLjcxMzQ2MSIsIFwKLSAgICAgICAgICAiMC4wODE3OCwgMC4xOTk5NDUsIDAuMjk5NTA1LCAwLjM3MDc2NCwgMC40ODQ2OTgsIDAuNTg0MzY2LCAwLjcyNjYyOSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2NTM5OSwgMC4yNzY5MDEsIDAuNDg4OTc2LCAwLjY0MDM5MiwgMC44ODI3NDMsIDEuMDk0NjksIDEuMzk3OSIsIFwKLSAgICAgICAgICAiMC4wNjcwOTcsIDAuMjc2OTU0LCAwLjQ4ODkwNiwgMC42NDAzNDYsIDAuODgyNzMxLCAxLjA5NDg5LCAxLjM5NzY2IiwgXAotICAgICAgICAgICIwLjA3Mzk0NiwgMC4yNzcxNywgMC40ODg5MjQsIDAuNjQwMzQ4LCAwLjg4Mjc4NSwgMS4wOTQ5LCAxLjM5Nzg0IiwgXAotICAgICAgICAgICIwLjA4Mjc0MSwgMC4yNzk3NjIsIDAuNDg4OTA1LCAwLjY0MDMyMSwgMC44ODI3NTYsIDEuMDk0ODksIDEuMzk3NzkiLCBcCi0gICAgICAgICAgIjAuMDkxMjY5LCAwLjI4NDI5NCwgMC40OTAxNjksIDAuNjQwNDQzLCAwLjg4Mjc4OCwgMS4wOTQ4NCwgMS4zOTc5MiIsIFwKLSAgICAgICAgICAiMC4xMDQzMTksIDAuMjkzODcyLCAwLjQ5NTM0NSwgMC42NDMwMTksIDAuODgyOTY2LCAxLjA5NDY2LCAxLjM5NzY1IiwgXAotICAgICAgICAgICIwLjExNDYwNywgMC4zMDQxMjEsIDAuNTAxODgsIDAuNjQ3NDY1LCAwLjg4NDczMywgMS4wOTUwMywgMS4zOTc3OSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0ODM3MywgMC4xODg4NDcsIDAuMzI5MDE0LCAwLjQyODksIDAuNTg5MTU4LCAwLjcyOTAzMSwgMC45MzA0MTQiLCBcCi0gICAgICAgICAgIjAuMDU0Njc0LCAwLjE5NTY2OCwgMC4zMzU2NjUsIDAuNDM1NzE3LCAwLjU5NTUzMywgMC43MzYzMTEsIDAuOTM3MDgyIiwgXAotICAgICAgICAgICIwLjA2MDg1LCAwLjIwMjAwOSwgMC4zNDIyNzQsIDAuNDQyMjg5LCAwLjYwMjYxMSwgMC43NDIyNDUsIDAuOTQ0MTY1IiwgXAotICAgICAgICAgICIwLjA2NjM4MywgMC4yMDc4MzQsIDAuMzQ4MTA2LCAwLjQ0ODQwOCwgMC42MDgxNzcsIDAuNzQ4Mjg1LCAwLjk1MDAwMyIsIFwKLSAgICAgICAgICAiMC4wNzExNDYsIDAuMjEzNTYsIDAuMzU0MDE3LCAwLjQ1NDAzNCwgMC42MTQyNDYsIDAuNzU0NTQ4LCAwLjk1NjAwNyIsIFwKLSAgICAgICAgICAiMC4wNzc4NjQsIDAuMjIyOTU3LCAwLjM2MzI4OSwgMC40NjMzMDUsIDAuNjIzNDczLCAwLjc2MzkyOSwgMC45NjUwNjMiLCBcCi0gICAgICAgICAgIjAuMDgzMDA2LCAwLjIzMTI2LCAwLjM3MTM3OCwgMC40NzE0NjYsIDAuNjMxNzcsIDAuNzcxNTM2LCAwLjk3Mzg4MiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3MTA1OSwgMC4zNjE0MTMsIDAuNjUxOTM0LCAwLjg2MTAzMSwgMS4xOTYzNCwgMS40ODksIDEuOTEwNzUiLCBcCi0gICAgICAgICAgIjAuMDcxMTQ5LCAwLjM2MTQzOSwgMC42NTI3NDMsIDAuODYxMDk4LCAxLjE5Nzc3LCAxLjQ4OTExLCAxLjkwODQ3IiwgXAotICAgICAgICAgICIwLjA3Mjc4MywgMC4zNjE0MjcsIDAuNjUxNzU4LCAwLjg2MjM2OSwgMS4xOTYwMywgMS40ODk5MiwgMS45MDc4NyIsIFwKLSAgICAgICAgICAiMC4wNzU3MjcsIDAuMzYxNjg3LCAwLjY1MTg5MywgMC44NjEyMDYsIDEuMTk3OTIsIDEuNDg5NzUsIDEuOTA4NjYiLCBcCi0gICAgICAgICAgIjAuMDc5OTgyLCAwLjM2Mjc4OCwgMC42NTI3NSwgMC44NjExMzUsIDEuMTk2MjksIDEuNDg4OTUsIDEuOTA4NzciLCBcCi0gICAgICAgICAgIjAuMDg3NDYyLCAwLjM2NTc3NywgMC42NTM4NDksIDAuODYxNDQzLCAxLjE5Nzc3LCAxLjQ4OTA0LCAxLjkwOTg5IiwgXAotICAgICAgICAgICIwLjA5NDA3MSwgMC4zNjk0NjgsIDAuNjU1NTkzLCAwLjg2MzYxLCAxLjE5ODA0LCAxLjQ5MDEzLCAxLjkwNzc5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzMDc2MSwgMC4xMzEyMzYsIDAuMjMxMzM4LCAwLjMwMjgwNSwgMC40MTY3OTksIDAuNTE2NTk3LCAwLjY1ODc4NiIsIFwKLSAgICAgICAgICAiMC4wMzY4NTQsIDAuMTM3NTU0LCAwLjIzNzY1MywgMC4zMDkwMjgsIDAuNDIzMTczLCAwLjUyMjgwOCwgMC42NjUyOTYiLCBcCi0gICAgICAgICAgIjAuMDQzODk5LCAwLjE0NDk3MSwgMC4yNDUyMTUsIDAuMzE2NjM0LCAwLjQzMDY2MSwgMC41MzAzNzUsIDAuNjcyNzAxIiwgXAotICAgICAgICAgICIwLjA0OTU3NCwgMC4xNTIzMzQsIDAuMjUyNjU1LCAwLjMyNDEwMiwgMC40MzgxMzgsIDAuNTM3ODY5LCAwLjY4MDE5NiIsIFwKLSAgICAgICAgICAiMC4wNTQyNDYsIDAuMTU5OTA0LCAwLjI2MDE1NywgMC4zMzE1MTYsIDAuNDQ1NzA4LCAwLjU0NTQ2NiwgMC42ODc3MTIiLCBcCi0gICAgICAgICAgIjAuMDYwMzYsIDAuMTcxNjA1LCAwLjI3MTg5MywgMC4zNDMyNywgMC40NTczMDgsIDAuNTU3MDc2LCAwLjY5OTQxNiIsIFwKLSAgICAgICAgICAiMC4wNjQ2MzcsIDAuMTgyMDA2LCAwLjI4MjQzNSwgMC4zNTM3NDEsIDAuNDY4MjYxLCAwLjU2ODQyMiwgMC43MTA3NjgiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTg3NTksIDAuMjcwNTI1LCAwLjQ4MjYyLCAwLjYzNDE1MSwgMC44NzYzNzMsIDEuMDg4NjksIDEuMzkxMiIsIFwKLSAgICAgICAgICAiMC4wNTk5NTMsIDAuMjcwNTgyLCAwLjQ4MjU4NiwgMC42MzQwMjUsIDAuODc2NDY0LCAxLjA4ODMyLCAxLjM5MTU1IiwgXAotICAgICAgICAgICIwLjA2NDYwNywgMC4yNzA4OSwgMC40ODI1NTcsIDAuNjM0MDYsIDAuODc2NDIyLCAxLjA4ODMxLCAxLjM5MTIzIiwgXAotICAgICAgICAgICIwLjA3MDY2NywgMC4yNzI3NDIsIDAuNDgyNjk5LCAwLjYzNDA4MiwgMC44NzY0MzYsIDEuMDg4MzcsIDEuMzkxMzMiLCBcCi0gICAgICAgICAgIjAuMDc3MjY4LCAwLjI3NTgzNywgMC40ODM5MzMsIDAuNjM0MTkyLCAwLjg3NjQ4NiwgMS4wODg2MywgMS4zOTE0IiwgXAotICAgICAgICAgICIwLjA4NzM0NSwgMC4yODIzMTksIDAuNDg3MzExLCAwLjYzNjMyNCwgMC44NzY4MzMsIDEuMDg4NTQsIDEuMzkxNDIiLCBcCi0gICAgICAgICAgIjAuMDk1NzA4LCAwLjI4OTM4NywgMC40OTE4OTYsIDAuNjM5NDQ4LCAwLjg3ODIxNywgMS4wODg4NiwgMS4zOTEzNCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0ODE4MywgMC4xODc4NDcsIDAuMzI3MDUxLCAwLjQyNjE0MywgMC41ODUzODksIDAuNzI0MjA1LCAwLjkyNDE2MiIsIFwKLSAgICAgICAgICAiMC4wNTQ3NTUsIDAuMTk0NTc5LCAwLjMzMzczMywgMC40MzI5ODQsIDAuNTkxNzg2LCAwLjczMDg5NywgMC45Mjk5MTIiLCBcCi0gICAgICAgICAgIjAuMDYyNjgzLCAwLjIwMjYwNywgMC4zNDE4MzMsIDAuNDQxMzQyLCAwLjU5OTk1OCwgMC43Mzg5NDEsIDAuOTM4NDYxIiwgXAotICAgICAgICAgICIwLjA3MDUyMSwgMC4yMTA2MzQsIDAuMzUwMDQ0LCAwLjQ0OTM5OCwgMC42MDgxNzgsIDAuNzQ3MjYsIDAuOTQ3MjEyIiwgXAotICAgICAgICAgICIwLjA3NzMzNiwgMC4yMTg4ODUsIDAuMzU4MzAzLCAwLjQ1NzcyNSwgMC42MTY2MzksIDAuNzU1NzM2LCAwLjk1NDY4OSIsIFwKLSAgICAgICAgICAiMC4wODcwMjIsIDAuMjMxOTQ2LCAwLjM3MTI2MSwgMC40NzA2NjUsIDAuNjI5OTQ3LCAwLjc2ODU0NSwgMC45Njg0NDciLCBcCi0gICAgICAgICAgIjAuMDk0MTUyLCAwLjI0MzU3LCAwLjM4MjQ2MSwgMC40ODIzMjgsIDAuNjM5ODQ3LCAwLjc4MDgzMSwgMC45NzkyODQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzYzNDgsIDAuMzY1MDgyLCAwLjY1MzQ0LCAwLjg1OTgyOSwgMS4xOTA0LCAxLjQ4MDg1LCAxLjg5NTc5IiwgXAotICAgICAgICAgICIwLjA3NjY2OCwgMC4zNjQ5NzQsIDAuNjUzNjQsIDAuODU5MTQ0LCAxLjE5MDI3LCAxLjQ4MDYyLCAxLjg5NjIiLCBcCi0gICAgICAgICAgIjAuMDc5NzcxLCAwLjM2NDk3OSwgMC42NTMyNzcsIDAuODU5MjEsIDEuMTkwNywgMS40ODA0MiwgMS44OTQ5MyIsIFwKLSAgICAgICAgICAiMC4wODQ5MDksIDAuMzY1NTAyLCAwLjY1MzUwNSwgMC44NTkyNTcsIDEuMTkwMjksIDEuNDgwOCwgMS44OTU1MiIsIFwKLSAgICAgICAgICAiMC4wOTEwNDUsIDAuMzY3MzM3LCAwLjY1MzUyNiwgMC44NTkxNzgsIDEuMTkwMywgMS40ODA0MywgMS44OTU0NyIsIFwKLSAgICAgICAgICAiMC4xMDE0NDYsIDAuMzcxOCwgMC42NTQ4NjEsIDAuODU5MjYxLCAxLjE5MDY0LCAxLjQ4MDQ5LCAxLjg5NTE3IiwgXAotICAgICAgICAgICIwLjExMDQwNSwgMC4zNzc0OSwgMC42NTczMDYsIDAuODYwNTYyLCAxLjE5MDk0LCAxLjQ4MDgxLCAxLjg5NDk0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIxIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyODQ1MSwgMC4xMjg5OTIsIDAuMjI5MTI1LCAwLjMwMDQ2NSwgMC40MTQ1OTUsIDAuNTE0MjA4LCAwLjY1NjYzMyIsIFwKLSAgICAgICAgICAiMC4wMzU5MzMsIDAuMTM2NTY2LCAwLjIzNjY5NCwgMC4zMDgwODksIDAuNDIyMjEzLCAwLjUyMTg2NSwgMC42NjQxMzgiLCBcCi0gICAgICAgICAgIjAuMDQ1NDk1LCAwLjE0NjA4MiwgMC4yNDYxOTgsIDAuMzE3NTYxLCAwLjQzMTYzLCAwLjUzMTMwMSwgMC42NzM2NjgiLCBcCi0gICAgICAgICAgIjAuMDUzMjk0LCAwLjE1NTUsIDAuMjU1NjEsIDAuMzI2OTUzLCAwLjQ0MTAyNSwgMC41NDA3MSwgMC42ODMwMjIiLCBcCi0gICAgICAgICAgIjAuMDU5NTM1LCAwLjE2NTI0LCAwLjI2NTIyMiwgMC4zMzY1ODIsIDAuNDUwNjEzLCAwLjU1MDI1MiwgMC42OTI1MzQiLCBcCi0gICAgICAgICAgIjAuMDY3NTg2LCAwLjE4MDk0OCwgMC4yODA3NjMsIDAuMzUyMDUyLCAwLjQ2NjEwNSwgMC41NjU3OSwgMC43MDgwMDgiLCBcCi0gICAgICAgICAgIjAuMDczMTk3LCAwLjE5NDgxNiwgMC4yOTQ0MzcsIDAuMzY1NjQyLCAwLjQ3OTU0MSwgMC41NzkyNDEsIDAuNzIxNjEyIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU4NzYsIDAuMjcwNTExLCAwLjQ4MjU3MywgMC42MzQwOTQsIDAuODc2NTU1LCAxLjA4ODU4LCAxLjM5MTM1IiwgXAotICAgICAgICAgICIwLjA2MTA0OCwgMC4yNzA1MjIsIDAuNDgyNjA0LCAwLjYzNDA3NSwgMC44NzY0NTUsIDEuMDg4MjMsIDEuMzkxMzkiLCBcCi0gICAgICAgICAgIjAuMDY4NjMzLCAwLjI3MDg1OSwgMC40ODI1ODQsIDAuNjMzOTQ0LCAwLjg3NjQzMiwgMS4wODgzLCAxLjM5MTI2IiwgXAotICAgICAgICAgICIwLjA3NzI0MSwgMC4yNzM3NjIsIDAuNDgyNjY1LCAwLjYzNDAyOSwgMC44NzY0NjIsIDEuMDg4MzQsIDEuMzkxMjciLCBcCi0gICAgICAgICAgIjAuMDg2MjM1LCAwLjI3ODUxNCwgMC40ODQwMzgsIDAuNjM0MTczLCAwLjg3NjM1OCwgMS4wODgzMywgMS4zOTEzNyIsIFwKLSAgICAgICAgICAiMC4wOTg3NzYsIDAuMjg4NDM4LCAwLjQ4OTMxMywgMC42MzY4OTQsIDAuODc2NjA3LCAxLjA4ODYzLCAxLjM5MTE5IiwgXAotICAgICAgICAgICIwLjEwODg2MywgMC4yOTg3MjQsIDAuNDk2MDMxLCAwLjY0MTM5NywgMC44Nzg0OCwgMS4wODg1MSwgMS4zOTE0NyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0Mzk1OSwgMC4xODQ2NDIsIDAuMzI1MDM5LCAwLjQyNTA2OCwgMC41ODU1ODQsIDAuNzI1NDc4LCAwLjkyNjQxIiwgXAotICAgICAgICAgICIwLjA1MDMxNywgMC4xOTE0OTksIDAuMzMxODczLCAwLjQzMTk0OCwgMC41OTE5ODgsIDAuNzMyMjQ3LCAwLjkzMjc0OCIsIFwKLSAgICAgICAgICAiMC4wNTgwMDQsIDAuMTk5NDAyLCAwLjMzOTg4OSwgMC40Mzk4ODcsIDAuNjAwMTczLCAwLjc0MDIzMywgMC45NDE4MDgiLCBcCi0gICAgICAgICAgIjAuMDY1NDM4LCAwLjIwNzI5MywgMC4zNDc4MjcsIDAuNDQ4MDIxLCAwLjYwODYyNSwgMC43NDg0MTQsIDAuOTQ5MTkyIiwgXAotICAgICAgICAgICIwLjA3MTg4MSwgMC4yMTUzNTcsIDAuMzU2MDExLCAwLjQ1NjMxOCwgMC42MTY2MDksIDAuNzU2ODU4LCAwLjk1NzIiLCBcCi0gICAgICAgICAgIjAuMDgwNjQyLCAwLjIyODE4OCwgMC4zNjg3OTQsIDAuNDY5MDkyLCAwLjYyOTcyMSwgMC43Njk1MjMsIDAuOTcxMDAzIiwgXAotICAgICAgICAgICIwLjA4NzMxNywgMC4yMzk3MzksIDAuMzc5ODQ3LCAwLjQ4MDY4OCwgMC42Mzk2MDUsIDAuNzgxNjI0LCAwLjk4MTc1NiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3MTEzMiwgMC4zNjI0ODYsIDAuNjUzODY2LCAwLjg2MTYsIDEuMTk2MzgsIDEuNDg5MDUsIDEuOTA3NjUiLCBcCi0gICAgICAgICAgIjAuMDcxNDgzLCAwLjM2MjQzOCwgMC42NTM1NzcsIDAuODYyMzU2LCAxLjE5Nzc4LCAxLjQ5MTQxLCAxLjkxMDQ4IiwgXAotICAgICAgICAgICIwLjA3NDg4NSwgMC4zNjI1MTgsIDAuNjUzNjIsIDAuODYyNDM3LCAxLjE5NjUsIDEuNDkxMzEsIDEuOTA3OSIsIFwKLSAgICAgICAgICAiMC4wODAxODQsIDAuMzYyODk3LCAwLjY1Mzg2MSwgMC44NjIzMzUsIDEuMTk1OTEsIDEuNDg5OCwgMS45MTA2MSIsIFwKLSAgICAgICAgICAiMC4wODY3NSwgMC4zNjQ4MDgsIDAuNjUzNTg2LCAwLjg2MTY2NCwgMS4xOTYwOSwgMS40ODkxNiwgMS45MTA1IiwgXAotICAgICAgICAgICIwLjA5NzA5MiwgMC4zNjkyMjIsIDAuNjU1MTE3LCAwLjg2MjUyMywgMS4xOTU5NywgMS40OTEzMiwgMS45MDc3MyIsIFwKLSAgICAgICAgICAiMC4xMDU1OTgsIDAuMzc1MTEzLCAwLjY1NzQ4NSwgMC44NjM3NzMsIDEuMTk2MjgsIDEuNDg4OTUsIDEuOTEwNTQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQzAiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE0NzY2LCAwLjA3MDA1NSwgMC4xMjUyMjEsIDAuMTY0NjEzLCAwLjIyNzYwMiwgMC4yODI3MDMsIDAuMzYxMjg5IiwgXAotICAgICAgICAgICIwLjAyMzAxLCAwLjA3ODM2NSwgMC4xMzM1NTUsIDAuMTcyOTM4LCAwLjIzNTk0MiwgMC4yOTA5OTgsIDAuMzY5NjIxIiwgXAotICAgICAgICAgICIwLjAzMDIwMywgMC4wODg2NjcsIDAuMTQzODIsIDAuMTgzMDczLCAwLjI0NjA1NywgMC4zMDExNDksIDAuMzc5NzI4IiwgXAotICAgICAgICAgICIwLjAzNTI2MywgMC4wOTkxMjIsIDAuMTU0MjAyLCAwLjE5MzU0MiwgMC4yNTYyMzgsIDAuMzExNjMxLCAwLjM5MDIyNyIsIFwKLSAgICAgICAgICAiMC4wMzkyMDYsIDAuMTA5NzMxLCAwLjE2NDcwOCwgMC4yMDQwNTUsIDAuMjY3MDAxLCAwLjMyMTY2MiwgMC40MDA2NTgiLCBcCi0gICAgICAgICAgIjAuMDQzOTQ1LCAwLjEyNTk2OCwgMC4xODE1NDcsIDAuMjIwODE2LCAwLjI4MzczNCwgMC4zMzg3MTcsIDAuNDE3MzU5IiwgXAotICAgICAgICAgICIwLjA0NjkxMywgMC4xMzgwNTcsIDAuMTk2MzQyLCAwLjIzNTU0MywgMC4yOTgzNDYsIDAuMzUzNDA1LCAwLjQzMTg3OCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzMjY2OSwgMC4xNDgxMTUsIDAuMjYzNzYyLCAwLjM0NjUwNywgMC40Nzg4MjMsIDAuNTk0NjEsIDAuNzYwMDQ1IiwgXAotICAgICAgICAgICIwLjAzNzcxOCwgMC4xNDgxNDEsIDAuMjYzNzkyLCAwLjM0NjQ4MSwgMC40Nzg5NTcsIDAuNTk0ODA1LCAwLjc2MDEyNiIsIFwKLSAgICAgICAgICAiMC4wNDcyMjMsIDAuMTUxMzU4LCAwLjI2NDE5OSwgMC4zNDY0NTMsIDAuNDc4ODAxLCAwLjU5NDU5OSwgMC43NjAxNzMiLCBcCi0gICAgICAgICAgIjAuMDU2NzQxLCAwLjE1NzQ1OSwgMC4yNjcwMywgMC4zNDc2NzEsIDAuNDc4OTQ0LCAwLjU5NDU5LCAwLjc2MDMxNyIsIFwKLSAgICAgICAgICAiMC4wNjUxNCwgMC4xNjQ5NjIsIDAuMjcxOTQ5LCAwLjM1MDk4NiwgMC40ODAyMjQsIDAuNTk0OTcyLCAwLjc2MDAxMiIsIFwKLSAgICAgICAgICAiMC4wNzc0OTcsIDAuMTc4NzE4LCAwLjI4MjA5LCAwLjM1ODk1LCAwLjQ4NTQyOCwgMC41OTc5NzYsIDAuNzYwOTU1IiwgXAotICAgICAgICAgICIwLjA4NzQ1NSwgMC4xOTE3NDIsIDAuMjkyNTE3LCAwLjM2Nzg1NywgMC40OTE4NDMsIDAuNjAzMDI0LCAwLjc2MzYxMSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0MjEwNCwgMC4xODE5MTYsIDAuMzIxMjU4LCAwLjQyMDU4NiwgMC41Nzk0NzksIDAuNzE4NDIsIDAuOTIwMDUyIiwgXAotICAgICAgICAgICIwLjA0OTEzMiwgMC4xODkwOTIsIDAuMzI4MzUxLCAwLjQyNzczNCwgMC41ODY2ODQsIDAuNzI1NzYsIDAuOTI2NDk2IiwgXAotICAgICAgICAgICIwLjA1ODYxOCwgMC4xOTgxMzQsIDAuMzM3MzEzLCAwLjQzNjc4NCwgMC41OTU1ODQsIDAuNzM1MTI0LCAwLjkzNTM4MSIsIFwKLSAgICAgICAgICAiMC4wNjg0NywgMC4yMDczODEsIDAuMzQ2NDI1LCAwLjQ0NTgxNiwgMC42MDQ5NzgsIDAuNzQ0MTA0LCAwLjk0NDU5MiIsIFwKLSAgICAgICAgICAiMC4wNzY1MTIsIDAuMjE2NjQ5LCAwLjM1NTQsIDAuNDU0OTIzLCAwLjYxMzkyOSwgMC43NTMyMjMsIDAuOTUzODM2IiwgXAotICAgICAgICAgICIwLjA4Nzg2MiwgMC4yMzE4NjcsIDAuMzcwNDYsIDAuNDY5OTkzLCAwLjYyODUzNSwgMC43NjgwNzksIDAuOTY5Mjg0IiwgXAotICAgICAgICAgICIwLjA5Njc5OSwgMC4yNDU0MDQsIDAuMzgzNjU4LCAwLjQ4Mjc1LCAwLjYzOTI4OCwgMC43ODA5MDUsIDAuOTgxMzk4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc2MjI3LCAwLjM2NTA2MSwgMC42NTM3NywgMC44NjE2LCAxLjE5NjA1LCAxLjQ4OTk2LCAxLjkwODIxIiwgXAotICAgICAgICAgICIwLjA3NjU1NSwgMC4zNjUwMDMsIDAuNjUzNTc0LCAwLjg2MTQ4MywgMS4xOTYxLCAxLjQ5MTI5LCAxLjkxMDc4IiwgXAotICAgICAgICAgICIwLjA4MTY2NiwgMC4zNjQ5NiwgMC42NTM4OTgsIDAuODYxNDcyLCAxLjE5NzkxLCAxLjQ5MTQ2LCAxLjkxMDUzIiwgXAotICAgICAgICAgICIwLjA4ODgsIDAuMzY1NTM2LCAwLjY1MzU3MywgMC44NjE3MjIsIDEuMTk3ODksIDEuNDg5NTgsIDEuOTEwNjYiLCBcCi0gICAgICAgICAgIjAuMDk2NzEyLCAwLjM2ODAwMSwgMC42NTM2OTgsIDAuODYxNzY4LCAxLjE5NjA3LCAxLjQ5MTQxLCAxLjkxMDc1IiwgXAotICAgICAgICAgICIwLjEwOTEzOSwgMC4zNzQ0MjgsIDAuNjU1NTY1LCAwLjg2MTUwOCwgMS4xOTY3LCAxLjQ5MTQ5LCAxLjkwODA4IiwgXAotICAgICAgICAgICIwLjExODI0MSwgMC4zODIxNjgsIDAuNjU5MjMxLCAwLjg2MzM2MSwgMS4xOTYyNiwgMS40ODk3NSwgMS45MTA2NCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyMDQ5LCAwLjAyMDQ4NywgMC4wMjA0ODcsIDAuMDIwNDg4LCAwLjAyMDQ4MywgMC4wMjA0ODIsIDAuMDIwNDc5IiwgXAotICAgICAgICAgICIwLjAyMDM3NiwgMC4wMjA0MDUsIDAuMDIwNDA4LCAwLjAyMDQwOCwgMC4wMjA0MDYsIDAuMDIwNDA5LCAwLjAyMDQwMyIsIFwKLSAgICAgICAgICAiMC4wMjAzNzMsIDAuMDIwMzk1LCAwLjAyMDM5MywgMC4wMjAzOTYsIDAuMDIwMzk3LCAwLjAyMDM5NCwgMC4wMjAzOTMiLCBcCi0gICAgICAgICAgIjAuMDIwNDYyLCAwLjAyMDQxOSwgMC4wMjA0MTQsIDAuMDIwNDA4LCAwLjAyMDQwMiwgMC4wMjAzOTksIDAuMDIwMzg5IiwgXAotICAgICAgICAgICIwLjAyMDYyNSwgMC4wMjA0NzYsIDAuMDIwNDQ4LCAwLjAyMDQyMywgMC4wMjA0MiwgMC4wMjA0MTMsIDAuMDIwNDE0IiwgXAotICAgICAgICAgICIwLjAyMTAxLCAwLjAyMDYyMywgMC4wMjA1NDQsIDAuMDIwNTE3LCAwLjAyMDQ4MiwgMC4wMjA0NTksIDAuMDIwNDQxIiwgXAotICAgICAgICAgICIwLjAyMTQ2NCwgMC4wMjA3OTksIDAuMDIwNjY0LCAwLjAyMDYxMywgMC4wMjA1NjUsIDAuMDIwNTM1LCAwLjAyMDUwNCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0NjM5LCAwLjAwNDY2MSwgMC4wMDQ2NjQsIDAuMDA0NjY0LCAwLjAwNDY2NSwgMC4wMDQ2NjQsIDAuMDA0NjYzIiwgXAotICAgICAgICAgICIwLjAwNDQ2NSwgMC4wMDQ1NzUsIDAuMDA0NTkzLCAwLjAwNDU5OCwgMC4wMDQ2MDMsIDAuMDA0NjA1LCAwLjAwNDYwNiIsIFwKLSAgICAgICAgICAiMC4wMDQzNzMsIDAuMDA0NTI5LCAwLjAwNDU2MiwgMC4wMDQ1NzMsIDAuMDA0NTgyLCAwLjAwNDU4NiwgMC4wMDQ1OTEiLCBcCi0gICAgICAgICAgIjAuMDA0MzQ1LCAwLjAwNDUsIDAuMDA0NTQyLCAwLjAwNDU1NywgMC4wMDQ1NzEsIDAuMDA0NTc4LCAwLjAwNDU4IiwgXAotICAgICAgICAgICIwLjAwNDM3NiwgMC4wMDQ0OTMsIDAuMDA0NTMzLCAwLjAwNDU0OSwgMC4wMDQ1NjMsIDAuMDA0NTY5LCAwLjAwNDU3NyIsIFwKLSAgICAgICAgICAiMC4wMDQ1MjQsIDAuMDA0NTMsIDAuMDA0NTU0LCAwLjAwNDU2MywgMC4wMDQ1NzEsIDAuMDA0NTc3LCAwLjAwNDU4MSIsIFwKLSAgICAgICAgICAiMC4wMDQ3NTcsIDAuMDA0NjE0LCAwLjAwNDYwNSwgMC4wMDQ2MDUsIDAuMDA0NjAyLCAwLjAwNDYwMiwgMC4wMDQ2MDIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTg3MTUsIDAuMDE4NzIyLCAwLjAxODcyLCAwLjAxODcyMywgMC4wMTg3MTgsIDAuMDE4NzE0LCAwLjAxODcxNiIsIFwKLSAgICAgICAgICAiMC4wMTg1OTIsIDAuMDE4NjMsIDAuMDE4NjM4LCAwLjAxODYzOCwgMC4wMTg2MzUsIDAuMDE4NjM0LCAwLjAxODYzMiIsIFwKLSAgICAgICAgICAiMC4wMTg2NjMsIDAuMDE4NjY1LCAwLjAxODY1MiwgMC4wMTg2NDcsIDAuMDE4NjQzLCAwLjAxODYzNiwgMC4wMTg2MzUiLCBcCi0gICAgICAgICAgIjAuMDE4OTU5LCAwLjAxODcyOCwgMC4wMTg2NzUsIDAuMDE4Njc3LCAwLjAxODY2NCwgMC4wMTg2NTIsIDAuMDE4NjQyIiwgXAotICAgICAgICAgICIwLjAxOTE5MSwgMC4wMTg4MzcsIDAuMDE4NzU0LCAwLjAxODczMywgMC4wMTg3MDUsIDAuMDE4NjkxLCAwLjAxODY3MSIsIFwKLSAgICAgICAgICAiMC4wMTk3NzIsIDAuMDE5MDY1LCAwLjAxODkxNywgMC4wMTg4NiwgMC4wMTg4MDQsIDAuMDE4NzczLCAwLjAxODc0NSIsIFwKLSAgICAgICAgICAiMC4wMjAzOTYsIDAuMDE5MzM3LCAwLjAxOTEwMSwgMC4wMTkwMDcsIDAuMDE4OTEzLCAwLjAxODg3MSwgMC4wMTg4MjEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzM1OSwgMC4wMDM0NTMsIDAuMDAzNDY0LCAwLjAwMzQ2NywgMC4wMDM0NywgMC4wMDM0NzEsIDAuMDAzNDcyIiwgXAotICAgICAgICAgICIwLjAwMzA5OSwgMC4wMDM0MDksIDAuMDAzNDU5LCAwLjAwMzQ3NSwgMC4wMDM0ODksIDAuMDAzNDk2LCAwLjAwMzUwMiIsIFwKLSAgICAgICAgICAiMC4wMDI5MTIsIDAuMDAzMzE2LCAwLjAwMzQwMywgMC4wMDM0MzIsIDAuMDAzNDU4LCAwLjAwMzQ3MiwgMC4wMDM0ODQiLCBcCi0gICAgICAgICAgIjAuMDAyODQyLCAwLjAwMzI0MywgMC4wMDMzNTMsIDAuMDAzMzkyLCAwLjAwMzQyOSwgMC4wMDM0NDgsIDAuMDAzNDY2IiwgXAotICAgICAgICAgICIwLjAwMjg1NiwgMC4wMDMxOTksIDAuMDAzMzIsIDAuMDAzMzY0LCAwLjAwMzQwNiwgMC4wMDM0MjksIDAuMDAzNDUxIiwgXAotICAgICAgICAgICIwLjAwMjk5OCwgMC4wMDMxODksIDAuMDAzMzAyLCAwLjAwMzM0NiwgMC4wMDMzOSwgMC4wMDM0MTUsIDAuMDAzNDM5IiwgXAotICAgICAgICAgICIwLjAwMzIzMiwgMC4wMDMyNDUsIDAuMDAzMzI1LCAwLjAwMzM2MiwgMC4wMDM0LCAwLjAwMzQyMiwgMC4wMDM0NDMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTU1NjMsIDAuMDE1NTc5LCAwLjAxNTU4LCAwLjAxNTU4LCAwLjAxNTU3OSwgMC4wMTU1NzksIDAuMDE1NTc4IiwgXAotICAgICAgICAgICIwLjAxNTQ1MSwgMC4wMTU1NTUsIDAuMDE1NTY5LCAwLjAxNTU3NCwgMC4wMTU1NzcsIDAuMDE1NTc3LCAwLjAxNTU3OCIsIFwKLSAgICAgICAgICAiMC4wMTU0MzEsIDAuMDE1NTQxLCAwLjAxNTU2MiwgMC4wMTU1NjgsIDAuMDE1NTczLCAwLjAxNTU3NSwgMC4wMTU1NzMiLCBcCi0gICAgICAgICAgIjAuMDE1NTI3LCAwLjAxNTU2NCwgMC4wMTU1NzcsIDAuMDE1NTgsIDAuMDE1NTgyLCAwLjAxNTU4MiwgMC4wMTU1ODciLCBcCi0gICAgICAgICAgIjAuMDE1NzAxLCAwLjAxNTYxOSwgMC4wMTU2MTEsIDAuMDE1NjA2LCAwLjAxNTYwMywgMC4wMTU1OTcsIDAuMDE1NTk3IiwgXAotICAgICAgICAgICIwLjAxNjExNCwgMC4wMTU3NiwgMC4wMTU3MDUsIDAuMDE1NjgsIDAuMDE1NjU2LCAwLjAxNTY0NCwgMC4wMTU2MzQiLCBcCi0gICAgICAgICAgIjAuMDE2NTc5LCAwLjAxNTkzLCAwLjAxNTgyMiwgMC4wMTU3NzUsIDAuMDE1NzQ1LCAwLjAxNTcyNCwgMC4wMTU3MDEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDY0MSwgMC4wMDQ2NjMsIDAuMDA0NjY1LCAwLjAwNDY2NSwgMC4wMDQ2NjYsIDAuMDA0NjY1LCAwLjAwNDY2NSIsIFwKLSAgICAgICAgICAiMC4wMDQ0NjcsIDAuMDA0NTc3LCAwLjAwNDU5NCwgMC4wMDQ1OTksIDAuMDA0NjA0LCAwLjAwNDYwNiwgMC4wMDQ2MDgiLCBcCi0gICAgICAgICAgIjAuMDA0NDAzLCAwLjAwNDUzNywgMC4wMDQ1NjcsIDAuMDA0NTc3LCAwLjAwNDU4NSwgMC4wMDQ1OSwgMC4wMDQ1OTMiLCBcCi0gICAgICAgICAgIjAuMDA0NDQ0LCAwLjAwNDUzMiwgMC4wMDQ1NiwgMC4wMDQ1NzEsIDAuMDA0NTgsIDAuMDA0NTg1LCAwLjAwNDU4OSIsIFwKLSAgICAgICAgICAiMC4wMDQ1NjMsIDAuMDA0NTU1LCAwLjAwNDU3MywgMC4wMDQ1NzcsIDAuMDA0NTg0LCAwLjAwNDU4NywgMC4wMDQ1OTEiLCBcCi0gICAgICAgICAgIjAuMDA0ODg3LCAwLjAwNDY2MiwgMC4wMDQ2MzUsIDAuMDA0NjI3LCAwLjAwNDYyLCAwLjAwNDYxNywgMC4wMDQ2MTMiLCBcCi0gICAgICAgICAgIjAuMDA1Mjg0LCAwLjAwNDgwOSwgMC4wMDQ3MjcsIDAuMDA0NywgMC4wMDQ2NjcsIDAuMDA0NjYxLCAwLjAwNDY0OCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIxIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMzc0OCwgMC4wMTM3NzUsIDAuMDEzNzc4LCAwLjAxMzc3OCwgMC4wMTM3NzksIDAuMDEzNzc5LCAwLjAxMzc3NiIsIFwKLSAgICAgICAgICAiMC4wMTM2NiwgMC4wMTM3NTQsIDAuMDEzNzY4LCAwLjAxMzc3NiwgMC4wMTM3NzUsIDAuMDEzNzgsIDAuMDEzNzgyIiwgXAotICAgICAgICAgICIwLjAxMzgxOSwgMC4wMTM3ODUsIDAuMDEzNzg2LCAwLjAxMzc4NiwgMC4wMTM3ODUsIDAuMDEzNzg2LCAwLjAxMzc4MyIsIFwKLSAgICAgICAgICAiMC4wMTM5NDYsIDAuMDEzODcsIDAuMDEzODQzLCAwLjAxMzgzLCAwLjAxMzgxOSwgMC4wMTM4MTIsIDAuMDEzODAzIiwgXAotICAgICAgICAgICIwLjAxNDI2LCAwLjAxMzk4NiwgMC4wMTM5MTIsIDAuMDEzODkzLCAwLjAxMzg2NiwgMC4wMTM4NTEsIDAuMDEzODM2IiwgXAotICAgICAgICAgICIwLjAxNDkwMSwgMC4wMTQxOTgsIDAuMDE0MDY2LCAwLjAxNDAxMSwgMC4wMTM5NjcsIDAuMDEzOTM4LCAwLjAxMzkwNiIsIFwKLSAgICAgICAgICAiMC4wMTU1MTcsIDAuMDE0NDYyLCAwLjAxNDI0MiwgMC4wMTQxNTYsIDAuMDE0MDY5LCAwLjAxNDAzNiwgMC4wMTM5ODciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzMzNiwgMC4wMDM0MzIsIDAuMDAzNDQzLCAwLjAwMzQ0NSwgMC4wMDM0NDgsIDAuMDAzNDQ5LCAwLjAwMzQ1IiwgXAotICAgICAgICAgICIwLjAwMzA4LCAwLjAwMzM4OCwgMC4wMDM0MzgsIDAuMDAzNDU0LCAwLjAwMzQ2OCwgMC4wMDM0NzUsIDAuMDAzNDgxIiwgXAotICAgICAgICAgICIwLjAwMjkzNCwgMC4wMDMzMDYsIDAuMDAzMzg3LCAwLjAwMzQxNSwgMC4wMDM0NCwgMC4wMDM0NTMsIDAuMDAzNDY1IiwgXAotICAgICAgICAgICIwLjAwMjkzMywgMC4wMDMyNTcsIDAuMDAzMzUyLCAwLjAwMzM4NiwgMC4wMDM0MTksIDAuMDAzNDM2LCAwLjAwMzQ1MSIsIFwKLSAgICAgICAgICAiMC4wMDMwNTQsIDAuMDAzMjQ3LCAwLjAwMzM0MSwgMC4wMDMzNzUsIDAuMDAzNDA4LCAwLjAwMzQyNiwgMC4wMDM0NDQiLCBcCi0gICAgICAgICAgIjAuMDAzMzY5LCAwLjAwMzMxMSwgMC4wMDMzNjcsIDAuMDAzMzkzLCAwLjAwMzQyLCAwLjAwMzQzNiwgMC4wMDM0NSIsIFwKLSAgICAgICAgICAiMC4wMDM3NDYsIDAuMDAzNDI5LCAwLjAwMzQzMSwgMC4wMDM0NDIsIDAuMDAzNDQ4LCAwLjAwMzQ2MywgMC4wMDM0NzEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDMCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTE0NzgsIDAuMDExNTY5LCAwLjAxMTU3OCwgMC4wMTE1ODEsIDAuMDExNTg0LCAwLjAxMTU4NCwgMC4wMTE1ODUiLCBcCi0gICAgICAgICAgIjAuMDExNDQzLCAwLjAxMTU5OSwgMC4wMTE2MjYsIDAuMDExNjM1LCAwLjAxMTY0LCAwLjAxMTY0NSwgMC4wMTE2NDgiLCBcCi0gICAgICAgICAgIjAuMDExNTgzLCAwLjAxMTY4OSwgMC4wMTE2ODEsIDAuMDExNjc3LCAwLjAxMTY3NywgMC4wMTE2NzQsIDAuMDExNjc1IiwgXAotICAgICAgICAgICIwLjAxMTkwNSwgMC4wMTE3NTIsIDAuMDExNzI3LCAwLjAxMTcxOCwgMC4wMTE3MDMsIDAuMDExNzA0LCAwLjAxMTY5OCIsIFwKLSAgICAgICAgICAiMC4wMTIyNzEsIDAuMDExODg0LCAwLjAxMTgwNSwgMC4wMTE3ODMsIDAuMDExNzU1LCAwLjAxMTc0MiwgMC4wMTE3MzQiLCBcCi0gICAgICAgICAgIjAuMDEyOTc5LCAwLjAxMjIwMSwgMC4wMTIsIDAuMDExOTM1LCAwLjAxMTg4LCAwLjAxMTg0NiwgMC4wMTE4MTkiLCBcCi0gICAgICAgICAgIjAuMDEzNzI1LCAwLjAxMjU0LCAwLjAxMjIyNCwgMC4wMTIxMSwgMC4wMTIwMTEsIDAuMDExOTYzLCAwLjAxMTkxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQ3NiwgMC4wMDQ4NjUsIDAuMDA0ODc4LCAwLjAwNDg4MiwgMC4wMDQ4ODUsIDAuMDA0ODg1LCAwLjAwNDg4NyIsIFwKLSAgICAgICAgICAiMC4wMDQ1OTgsIDAuMDA0Nzg1LCAwLjAwNDgyOCwgMC4wMDQ4NDMsIDAuMDA0ODU2LCAwLjAwNDg2MywgMC4wMDQ4NjkiLCBcCi0gICAgICAgICAgIjAuMDA0Nzc2LCAwLjAwNDc4OSwgMC4wMDQ4MjMsIDAuMDA0ODM3LCAwLjAwNDg1LCAwLjAwNDg1NywgMC4wMDQ4NjQiLCBcCi0gICAgICAgICAgIjAuMDA1MDcxLCAwLjAwNDg3OCwgMC4wMDQ4NjksIDAuMDA0ODcsIDAuMDA0ODczLCAwLjAwNDg3NCwgMC4wMDQ4NzciLCBcCi0gICAgICAgICAgIjAuMDA1Mzk3LCAwLjAwNDk4NCwgMC4wMDQ5MiwgMC4wMDQ5MTQsIDAuMDA0OTAzLCAwLjAwNDg5OSwgMC4wMDQ4OTYiLCBcCi0gICAgICAgICAgIjAuMDA2MTg1LCAwLjAwNTI5MSwgMC4wMDUxMTYsIDAuMDA1MDc3LCAwLjAwNTAyNCwgMC4wMDQ5OTcsIDAuMDA0OTcyIiwgXAotICAgICAgICAgICIwLjAwNjg2LCAwLjAwNTYxLCAwLjAwNTMzMywgMC4wMDUyMzMsIDAuMDA1MTIsIDAuMDA1MDkyLCAwLjAwNTA0OCIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBPQUkyMjJYMSAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoT0FJMjIyWDEpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC40NzcxODI7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA5MzM0NjQ7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwOTMxODg1OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDkzMzQ2NDsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA1MjQsIDAuMDAwNTI0LCAwLjAwMDUyMywgMC4wMDA1MjQsIDAuMDAwNTI0LCAwLjAwMDUyMywgMC4wMDA1MjMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA1MjUsIDAuMDAwNTI1LCAwLjAwMDUyNSwgMC4wMDA1MjYsIDAuMDAwNTI2LCAwLjAwMDUyNSwgMC4wMDA1MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEExKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA5NTYyNjc7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwOTU2MjY3OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDk1MzcxNTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA1MjQsIDAuMDAwNTI0LCAwLjAwMDUyMywgMC4wMDA1MjQsIDAuMDAwNTI0LCAwLjAwMDUyNCwgMC4wMDA1MjQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA1MjUsIDAuMDAwNTI1LCAwLjAwMDUyNSwgMC4wMDA1MjUsIDAuMDAwNTI1LCAwLjAwMDUyNSwgMC4wMDA1MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA5MTA2MjI7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwOTA4NTI7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwOTEwNjIyOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDUyNCwgMC4wMDA1MjQsIDAuMDAwNTI0LCAwLjAwMDUyNCwgMC4wMDA1MjMsIDAuMDAwNTIzLCAwLjAwMDUyMyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDUyNSwgMC4wMDA1MjUsIDAuMDAwNTI2LCAwLjAwMDUyNiwgMC4wMDA1MjQsIDAuMDAwNTI1LCAwLjAwMDUyNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQjEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDkyNzUxODsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA5Mjc1MTg7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwOTI1NDc0OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDUyNCwgMC4wMDA1MjQsIDAuMDAwNTI0LCAwLjAwMDUyNCwgMC4wMDA1MjQsIDAuMDAwNTI0LCAwLjAwMDUyNCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDUyNSwgMC4wMDA1MjUsIDAuMDAwNTI1LCAwLjAwMDUyNSwgMC4wMDA1MjUsIDAuMDAwNTI1LCAwLjAwMDUyNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQzApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDk2MDUxNTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA5NTY4MzU7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwOTYwNTE1OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDU0NCwgMC4wMDA1NDUsIDAuMDAwNTQ1LCAwLjAwMDU0NSwgMC4wMDA1NDUsIDAuMDAwNTQ1LCAwLjAwMDU0NSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDU5NSwgMC4wMDA1OTYsIDAuMDAwNTk2LCAwLjAwMDU5NiwgMC4wMDA1OTYsIDAuMDAwNTk2LCAwLjAwMDU5NiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQzEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTAwNzU1OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTAwNzU1OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTAwNzQ1OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDU0NCwgMC4wMDA1NDUsIDAuMDAwNTQ1LCAwLjAwMDU0NCwgMC4wMDA1NDUsIDAuMDAwNTQ1LCAwLjAwMDU0NSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDU5NSwgMC4wMDA1OTYsIDAuMDAwNTk2LCAwLjAwMDU5NiwgMC4wMDA1OTYsIDAuMDAwNTk2LCAwLjAwMDU5NiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjEzNzk4MTsKLSAgICBmdW5jdGlvbiA6ICIoISgoKEMwK0MxKSAoQTArQTEpKSAoQjArQjEpKSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODM4MzIsIDAuMTE4MDA5LCAwLjMxMDg2NiwgMC40ODA1NzEsIDAuNzA2MDkxLCAxLjE1NjgyLCAxLjQzODQiLCBcCi0gICAgICAgICAgIjAuMDkwMDM0LCAwLjEyNDE1MiwgMC4zMTY5ODQsIDAuNDg2NzYyLCAwLjcxMjI3NCwgMS4xNjMyNCwgMS40NDQ2MSIsIFwKLSAgICAgICAgICAiMC4wOTczODksIDAuMTMxNTQzLCAwLjMyNDU2LCAwLjQ5NDIyOSwgMC43MTk4MDMsIDEuMTcwNTEsIDEuNDUyODgiLCBcCi0gICAgICAgICAgIjAuMTA0ODMxLCAwLjEzODk2OSwgMC4zMzIxLCAwLjUwMTg4NywgMC43MjczNDcsIDEuMTc4LCAxLjQ1OTk4IiwgXAotICAgICAgICAgICIwLjExMjI3MywgMC4xNDYzMzEsIDAuMzM5Nzk2LCAwLjUwOTUzNiwgMC43MzUyMDksIDEuMTg1NzEsIDEuNDY3MzQiLCBcCi0gICAgICAgICAgIjAuMTIzNTQ2LCAwLjE1ODM0MiwgMC4zNTEzODUsIDAuNTIxMzA1LCAwLjc0Njg4MiwgMS4xOTc1NiwgMS40NzkxNSIsIFwKLSAgICAgICAgICAiMC4xMzIzNjgsIDAuMTY4NTg2LCAwLjM2MTc3OCwgMC41MzE2NDIsIDAuNzU3NTQzLCAxLjIwODM0LCAxLjQ4OTkiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTY4MDM3LCAwLjIzOTMzLCAwLjY0MzkzLCAxLjAwMDgxLCAxLjQ3Njg1LCAyLjQyODcsIDMuMDIyNjQiLCBcCi0gICAgICAgICAgIjAuMTY4MDIxLCAwLjIzOTMwMywgMC42NDM5MDcsIDEuMDAwODYsIDEuNDc2ODUsIDIuNDI4OCwgMy4wMjMxMiIsIFwKLSAgICAgICAgICAiMC4xNjk1OTEsIDAuMjM5OTAxLCAwLjY0Mzc2OCwgMS4wMDA3LCAxLjQ3NjksIDIuNDI4ODEsIDMuMDIyNjciLCBcCi0gICAgICAgICAgIjAuMTcyOTg5LCAwLjI0MjA2MSwgMC42NDM5NDUsIDEuMDAwODYsIDEuNDc2NzIsIDIuNDI4NTgsIDMuMDIyNjMiLCBcCi0gICAgICAgICAgIjAuMTc3NTU1LCAwLjI0NTYxMSwgMC42NDQwODksIDEuMDAwNzMsIDEuNDc3MTgsIDIuNDI4NzcsIDMuMDIyNzQiLCBcCi0gICAgICAgICAgIjAuMTg2MTQsIDAuMjUyODczLCAwLjY0NTkxMywgMS4wMDA2NywgMS40NzY4MiwgMi40Mjc5OSwgMy4wMjI1NiIsIFwKLSAgICAgICAgICAiMC4xOTQ2MiwgMC4yNjAwNTQsIDAuNjQ5MTQ5LCAxLjAwMTcsIDEuNDc2NjUsIDIuNDI4LCAzLjAyMjc4Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEyMDc3MSwgMC4xNjcyMzgsIDAuNDMxOTI0LCAwLjY2NzMyNiwgMC45ODEwNCwgMS42MDg5OSwgMi4wMDE3IiwgXAotICAgICAgICAgICIwLjEyNzU3OSwgMC4xNzQwNDYsIDAuNDM4Mzg1LCAwLjY3NDAxNywgMC45ODgwODIsIDEuNjE2NjEsIDIuMDA4MDciLCBcCi0gICAgICAgICAgIjAuMTM0MjU5LCAwLjE4MDgwMiwgMC40NDUxOCwgMC42ODA4MDgsIDAuOTk0NTIxLCAxLjYyMjQ1LCAyLjAxNjM5IiwgXAotICAgICAgICAgICIwLjE0MDI5NiwgMC4xODY4NTgsIDAuNDUxNDgxLCAwLjY4NzE3MiwgMS4wMDE1NCwgMS42MjgwNSwgMi4wMjI3OSIsIFwKLSAgICAgICAgICAiMC4xNDYyNzEsIDAuMTkyODEyLCAwLjQ1NzM2NywgMC42OTMwODYsIDEuMDA2NTEsIDEuNjM0MzcsIDIuMDI3MjQiLCBcCi0gICAgICAgICAgIjAuMTU1OTA4LCAwLjIwMjUyOSwgMC40NjY2NjQsIDAuNzAyMTcsIDEuMDE2MSwgMS42NDM1NiwgMi4wMzg0NCIsIFwKLSAgICAgICAgICAiMC4xNjQwNTIsIDAuMjEwOTg2LCAwLjQ3NDg3MiwgMC43MTA0ODYsIDEuMDI0NjMsIDEuNjUyNDMsIDIuMDQ0OTkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjA3NDAxLCAwLjMwMjg3LCAwLjg1MzM4NywgMS4zMzg5NSwgMS45ODYxOSwgMy4yODAxOCwgNC4wODkwNyIsIFwKLSAgICAgICAgICAiMC4yMDcyMSwgMC4zMDI4OTEsIDAuODUzNDAyLCAxLjMzODU4LCAxLjk4NTgsIDMuMjgwMzMsIDQuMDg5MjciLCBcCi0gICAgICAgICAgIjAuMjA3MzIyLCAwLjMwMjkxMiwgMC44NTM0MjQsIDEuMzM4OTEsIDEuOTg2NzQsIDMuMjgwNzksIDQuMDg5NzkiLCBcCi0gICAgICAgICAgIjAuMjA4NDY1LCAwLjMwMzU0NSwgMC44NTMzMjcsIDEuMzM5MzcsIDEuOTg2NTQsIDMuMjc5ODQsIDQuMDkwMzUiLCBcCi0gICAgICAgICAgIjAuMjEwMzkyLCAwLjMwNDY4OSwgMC44NTMxMTgsIDEuMzM4OTEsIDEuOTg1OTEsIDMuMjgxMzYsIDQuMDg5MjEiLCBcCi0gICAgICAgICAgIjAuMjE0ODQ4LCAwLjMwODAyOSwgMC44NTM1NTYsIDEuMzM4NTksIDEuOTg2MjUsIDMuMjc5NzksIDQuMDkwNjkiLCBcCi0gICAgICAgICAgIjAuMjE5Njk4LCAwLjMxMTk5NSwgMC44NTQ2MzYsIDEuMzM4NTcsIDEuOTg1OTMsIDMuMjgxMjYsIDQuMDkwMjYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4MTY5MywgMC4xMTU4NDIsIDAuMzA4NjgsIDAuNDc4Mzc3LCAwLjcwMzg5NSwgMS4xNTQ3NSwgMS40MzYwOSIsIFwKLSAgICAgICAgICAiMC4wODkxMDUsIDAuMTIzMjE5LCAwLjMxNjEyMywgMC40ODU4NzgsIDAuNzExMzU2LCAxLjE2MjAzLCAxLjQ0MzU5IiwgXAotICAgICAgICAgICIwLjA5ODYxLCAwLjEzMjc1NywgMC4zMjU1NzgsIDAuNDk1MjQsIDAuNzIwOTM0LCAxLjE3MTc1LCAxLjQ1MzA5IiwgXAotICAgICAgICAgICIwLjEwODM2MywgMC4xNDI0MzYsIDAuMzM1Mjc3LCAwLjUwNTAwNSwgMC43MzA0NTQsIDEuMTgxMDgsIDEuNDYzMSIsIFwKLSAgICAgICAgICAiMC4xMTgyMDUsIDAuMTUyMTk3LCAwLjM0NDUyMywgMC41MTQ1MjgsIDAuNzQwMDc0LCAxLjE5MDY5LCAxLjQ3Mjg0IiwgXAotICAgICAgICAgICIwLjEzMzk1MSwgMC4xNjc5MiwgMC4zNjAzNDgsIDAuNTMwMDYxLCAwLjc1NTM5NywgMS4yMDU5OSwgMS40ODc1NiIsIFwKLSAgICAgICAgICAiMC4xNDYzOSwgMC4xODE5MjksIDAuMzczOTI1LCAwLjU0MzQ2NSwgMC43Njg5ODMsIDEuMjE5NTUsIDEuNTAxMDMiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTY4MDQ5LCAwLjIzOTMyMywgMC42NDM4NjIsIDEuMDAwODIsIDEuNDc2OTEsIDIuNDI4NzQsIDMuMDIyNzQiLCBcCi0gICAgICAgICAgIjAuMTY3OTg4LCAwLjIzOTMzLCAwLjY0Mzk1NiwgMS4wMDA4LCAxLjQ3NjU5LCAyLjQyODQ5LCAzLjAyMjY5IiwgXAotICAgICAgICAgICIwLjE3MDUwNiwgMC4yNDAwMDUsIDAuNjQzOTE1LCAxLjAwMDY1LCAxLjQ3NjksIDIuNDI4OCwgMy4wMjI2OCIsIFwKLSAgICAgICAgICAiMC4xNzU4MSwgMC4yNDM1MzIsIDAuNjQzOTI3LCAxLjAwMDg1LCAxLjQ3Njk0LCAyLjQyODMyLCAzLjAyMjkxIiwgXAotICAgICAgICAgICIwLjE4Mjc1NiwgMC4yNDg3ODksIDAuNjQzOTg0LCAxLjAwMDgxLCAxLjQ3Njc4LCAyLjQyODMsIDMuMDIzMDMiLCBcCi0gICAgICAgICAgIjAuMTk1NDI3LCAwLjI1OTYwMSwgMC42NDY0MjYsIDEuMDAwODUsIDEuNDc2NzMsIDIuNDI3OTMsIDMuMDIyNDYiLCBcCi0gICAgICAgICAgIjAuMjA3NzA4LCAwLjI3MDMyNSwgMC42NTA3ODcsIDEuMDAxNDIsIDEuNDc2NzksIDIuNDI4NjIsIDMuMDIyNzUiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTE2MzcsIDAuMTYyODI2LCAwLjQyNzQzNiwgMC42NjI3OTEsIDAuOTc2NTQ3LCAxLjYwNDU5LCAxLjk5NTg5IiwgXAotICAgICAgICAgICIwLjEyMzE0LCAwLjE2OTY3MSwgMC40MzQwMDksIDAuNjY5ODE5LCAwLjk4NDI3MSwgMS42MTEyNCwgMi4wMDM3NiIsIFwKLSAgICAgICAgICAiMC4xMjk2NywgMC4xNzYyNjcsIDAuNDQwOTA5LCAwLjY3Njg2OCwgMC45OTA0NCwgMS42MTgzMSwgMi4wMTE2NSIsIFwKLSAgICAgICAgICAiMC4xMzU2MzUsIDAuMTgyMzAzLCAwLjQ0Njc2MiwgMC42ODIzMzcsIDAuOTk2NDY2LCAxLjYyMzc4LCAyLjAxODUxIiwgXAotICAgICAgICAgICIwLjE0MTUxNCwgMC4xODgxNTMsIDAuNDUyNzQ3LCAwLjY4ODYxOSwgMS4wMDIxNiwgMS42MzAwMSwgMi4wMjMxNSIsIFwKLSAgICAgICAgICAiMC4xNTEwMywgMC4xOTc3NzYsIDAuNDYyMDk2LCAwLjY5NzcwOSwgMS4wMTE3NCwgMS42MzkzMiwgMi4wMzM5OCIsIFwKLSAgICAgICAgICAiMC4xNTkxODEsIDAuMjA2MDk1LCAwLjQ3MDMwNiwgMC43MDU4OTYsIDEuMDE5OTEsIDEuNjQ3NjcsIDIuMDM5ODEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjAxNTY3LCAwLjI5NzExNCwgMC44NDcyMjQsIDEuMzMyNjIsIDEuOTc5OTEsIDMuMjczODUsIDQuMDgyMiIsIFwKLSAgICAgICAgICAiMC4yMDEzNzYsIDAuMjk3MDgxLCAwLjg0NzI3MywgMS4zMzIzNCwgMS45ODAxMywgMy4yNzQyOCwgNC4wODQyIiwgXAotICAgICAgICAgICIwLjIwMTQ4NiwgMC4yOTY5MzIsIDAuODQ3MjgzLCAxLjMzMjk4LCAxLjk4MDEsIDMuMjczNzcsIDQuMDgyOTMiLCBcCi0gICAgICAgICAgIjAuMjAyNjkzLCAwLjI5NzM2NSwgMC44NDcyOTcsIDEuMzMyNDIsIDEuOTc5NzksIDMuMjczNTYsIDQuMDg0MTkiLCBcCi0gICAgICAgICAgIjAuMjA0Njk5LCAwLjI5ODY5NiwgMC44NDY5NjQsIDEuMzMyOCwgMS45Nzk3NSwgMy4yNzU0MiwgNC4wODI3OSIsIFwKLSAgICAgICAgICAiMC4yMDkyMTgsIDAuMzAyMTkyLCAwLjg0NzM5MywgMS4zMzIzNSwgMS45ODEyNCwgMy4yNzU5NCwgNC4wODQyMiIsIFwKLSAgICAgICAgICAiMC4yMTQ0MDIsIDAuMzA2MjgzLCAwLjg0ODQ5MiwgMS4zMzIzNiwgMS45Nzk3MSwgMy4yNzcxOCwgNC4wODI1MSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc4OTQyLCAwLjExMjk3OSwgMC4zMDU4NzMsIDAuNDc1MzQzLCAwLjcwMDcyLCAxLjE1MTMsIDEuNDMzOCIsIFwKLSAgICAgICAgICAiMC4wODUyNzksIDAuMTE5MzY0LCAwLjMxMjIwMSwgMC40ODE3NjIsIDAuNzA3MTM0LCAxLjE1Nzc4LCAxLjQ0MDA3IiwgXAotICAgICAgICAgICIwLjA5MjU3NCwgMC4xMjY3NTEsIDAuMzE5NzUsIDAuNDg5MjQ2LCAwLjcxNDc1NSwgMS4xNjU1NSwgMS40NDciLCBcCi0gICAgICAgICAgIjAuMTAwMDA4LCAwLjEzNDEwMSwgMC4zMjcxNjYsIDAuNDk2NzE3LCAwLjcyMjE0MiwgMS4xNzI3NSwgMS40NTQzOSIsIFwKLSAgICAgICAgICAiMC4xMDczMjMsIDAuMTQxNjE5LCAwLjMzNDYyMSwgMC41MDQyMTUsIDAuNzI5NTk3LCAxLjE4MDIzLCAxLjQ2MjEiLCBcCi0gICAgICAgICAgIjAuMTE4MzgzLCAwLjE1MzI2NywgMC4zNDY0MzgsIDAuNTE2MTcxLCAwLjc0MTYyMywgMS4xOTIyNiwgMS40NzM4NyIsIFwKLSAgICAgICAgICAiMC4xMjcwMTMsIDAuMTYzNjg0LCAwLjM1NzA0NCwgMC41MjY1MzgsIDAuNzUyMjUzLCAxLjIwMjk4LCAxLjQ4NDUyIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE2MDg0OSwgMC4yMzIyMDcsIDAuNjM2NzMxLCAwLjk5Mzc2NiwgMS40Njk2OCwgMi40MjEwNiwgMy4wMTU3MyIsIFwKLSAgICAgICAgICAiMC4xNjA4NzEsIDAuMjMyMjE2LCAwLjYzNjcwNywgMC45OTM3NywgMS40NjkzMSwgMi40MjA5OSwgMy4wMTU2NiIsIFwKLSAgICAgICAgICAiMC4xNjI1NTgsIDAuMjMyNzYsIDAuNjM2NjMsIDAuOTkzNzE1LCAxLjQ2OTc4LCAyLjQyMDg0LCAzLjAxNTYzIiwgXAotICAgICAgICAgICIwLjE2NjE0MSwgMC4yMzUxMDYsIDAuNjM2NDU1LCAwLjk5Mzc0MSwgMS40Njk2OSwgMi40MjEwNywgMy4wMTU1MiIsIFwKLSAgICAgICAgICAiMC4xNzA3NjIsIDAuMjM4ODA3LCAwLjYzNjg0NywgMC45OTM3MTUsIDEuNDY5NjQsIDIuNDIxMDgsIDMuMDE1NjIiLCBcCi0gICAgICAgICAgIjAuMTc5NTIyLCAwLjI0NTk2LCAwLjYzODgzNywgMC45OTM3MzMsIDEuNDY5NjcsIDIuNDIxMDYsIDMuMDE1NjEiLCBcCi0gICAgICAgICAgIjAuMTg4MjIzLCAwLjI1MzQ0MSwgMC42NDIwMywgMC45OTQ2NjMsIDEuNDY5NjksIDIuNDIwOTYsIDMuMDE1NTYiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTE2Mzc0LCAwLjE2Mjg0MiwgMC40Mjc0NCwgMC42NjI2NzEsIDAuOTc2NjcxLCAxLjYwNDgyLCAxLjk5Njc0IiwgXAotICAgICAgICAgICIwLjEyMzUxNSwgMC4xNjk5NTgsIDAuNDM0MjMzLCAwLjY2OTU2OCwgMC45ODQwMTMsIDEuNjEyMDUsIDIuMDAzNSIsIFwKLSAgICAgICAgICAiMC4xMzE2MSwgMC4xNzgxODgsIDAuNDQyNDUyLCAwLjY3NzgzOSwgMC45OTIwOTUsIDEuNjIwMTMsIDIuMDExNjkiLCBcCi0gICAgICAgICAgIjAuMTM5ODEyLCAwLjE4NjM4NywgMC40NTA4MTIsIDAuNjg2MjU3LCAxLjAwMDY1LCAxLjYyODUxLCAyLjAxOTc1IiwgXAotICAgICAgICAgICIwLjE0ODA5NSwgMC4xOTQ2NjQsIDAuNDU4OTc3LCAwLjY5NDU5MywgMS4wMDgxNSwgMS42MzU4MSwgMi4wMzAzOSIsIFwKLSAgICAgICAgICAiMC4xNjE2MTcsIDAuMjA4Mjg5LCAwLjQ3MjM5MiwgMC43MDc3MzksIDEuMDIxOTcsIDEuNjQ5MjUsIDIuMDQyOCIsIFwKLSAgICAgICAgICAiMC4xNzMwODcsIDAuMjE5ODY1LCAwLjQ4MzY2NCwgMC43MTk2MDcsIDEuMDMzMTcsIDEuNjYxODgsIDIuMDUzMTkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjA3NDAxLCAwLjMwMjg3MSwgMC44NTM0LCAxLjMzODcxLCAxLjk4NjIyLCAzLjI4MDIsIDQuMDg5MTgiLCBcCi0gICAgICAgICAgIjAuMjA3MjE5LCAwLjMwMjg3MSwgMC44NTMwMjgsIDEuMzM4NTUsIDEuOTg1NzksIDMuMjgwMTgsIDQuMDg4OTIiLCBcCi0gICAgICAgICAgIjAuMjA3NDYsIDAuMzAyODYsIDAuODUzMzk4LCAxLjMzODQ2LCAxLjk4NTkxLCAzLjI4MDIxLCA0LjA4ODc1IiwgXAotICAgICAgICAgICIwLjIwOTM3MywgMC4zMDM2MjEsIDAuODUzMTQyLCAxLjMzODcxLCAxLjk4NTc5LCAzLjI4MDE4LCA0LjA5MjkxIiwgXAotICAgICAgICAgICIwLjIxMjc4NiwgMC4zMDU3NjksIDAuODUzMjQsIDEuMzM5MzEsIDEuOTg1ODQsIDMuMjgxMTksIDQuMDkwNTciLCBcCi0gICAgICAgICAgIjAuMjIwMzA2LCAwLjMxMTUzOSwgMC44NTMyODMsIDEuMzM4NjEsIDEuOTg1NzgsIDMuMjc5OTQsIDQuMDg5MjEiLCBcCi0gICAgICAgICAgIjAuMjI3OTA1LCAwLjMxNzY5OSwgMC44NTQzOTMsIDEuMzM4NTUsIDEuOTg1NzUsIDMuMjgxMzIsIDQuMDg5NTciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3NjMxNCwgMC4xMTAzNzEsIDAuMzAzMjA1LCAwLjQ3MjY3LCAwLjY5ODIwNSwgMS4xNDg5NiwgMS40MzAzNyIsIFwKLSAgICAgICAgICAiMC4wODM4MiwgMC4xMTc5MTgsIDAuMzEwNzUyLCAwLjQ4MDI3NywgMC43MDU2MzYsIDEuMTU2NDYsIDEuNDM3OTMiLCBcCi0gICAgICAgICAgIjAuMDkzMzM2LCAwLjEyNzQyLCAwLjMyMDE0OSwgMC40ODk2MTQsIDAuNzE1MTI2LCAxLjE2NTg3LCAxLjQ0NzkxIiwgXAotICAgICAgICAgICIwLjEwMzA1MiwgMC4xMzcwNzMsIDAuMzI5ODI0LCAwLjQ5OTI3MywgMC43MjQ2MzcsIDEuMTc1MjgsIDEuNDU2OTIiLCBcCi0gICAgICAgICAgIjAuMTEyOTMsIDAuMTQ2ODU4LCAwLjMzOTQzMSwgMC41MDg4NywgMC43MzQyOTUsIDEuMTg0ODIsIDEuNDY2NzciLCBcCi0gICAgICAgICAgIjAuMTI4NDM1LCAwLjE2MjcxNSwgMC4zNTQ4OTUsIDAuNTI0MzU4LCAwLjc0OTcwNywgMS4yMDAyNiwgMS40ODE4MyIsIFwKLSAgICAgICAgICAiMC4xNDAwODksIDAuMTc2NTI1LCAwLjM2ODQ5LCAwLjUzNzkwOSwgMC43NjMyMzksIDEuMjEzNzQsIDEuNDk1MjMiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTYwODQ5LCAwLjIzMjE2NywgMC42MzY2NDQsIDAuOTkzNjQ4LCAxLjQ2OTc4LCAyLjQyMTE2LCAzLjAxNTUzIiwgXAotICAgICAgICAgICIwLjE2MDgzOCwgMC4yMzIyMTMsIDAuNjM2ODQ2LCAwLjk5MzczMywgMS40Njk2NiwgMi40MjExMywgMy4wMTU1MyIsIFwKLSAgICAgICAgICAiMC4xNjM3MTksIDAuMjMzMTEsIDAuNjM2NjQyLCAwLjk5MzcxNSwgMS40NjkzLCAyLjQyMTA3LCAzLjAxNTY1IiwgXAotICAgICAgICAgICIwLjE2OTM1LCAwLjIzNjc3NywgMC42MzY2NDYsIDAuOTkzNzgyLCAxLjQ2OTQ0LCAyLjQyMDk0LCAzLjAxNTY2IiwgXAotICAgICAgICAgICIwLjE3NjU1NCwgMC4yNDIzMzIsIDAuNjM2NzY3LCAwLjk5MzcxLCAxLjQ2OTY1LCAyLjQyMTA1LCAzLjAxNTcxIiwgXAotICAgICAgICAgICIwLjE4OTY2NSwgMC4yNTM0NjUsIDAuNjM5MjU0LCAwLjk5Mzc1OSwgMS40Njk2MSwgMi40MjEwOCwgMy4wMTU1MiIsIFwKLSAgICAgICAgICAiMC4yMDE5MzgsIDAuMjY0MzQxLCAwLjY0Mzc3NCwgMC45OTQ0NTIsIDEuNDY5NTIsIDIuNDIxMTYsIDMuMDE1MjYiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTEzMDg4LCAwLjE2MDI5NCwgMC40Mjc0OTMsIDAuNjYzMTcxLCAwLjk3NjQyNCwgMS42MDQ0OCwgMS45OTc1NiIsIFwKLSAgICAgICAgICAiMC4xMjAxOTYsIDAuMTY3NDM2LCAwLjQzNDQxNiwgMC42Njk4MTYsIDAuOTg0MTY3LCAxLjYxMjI4LCAyLjAwNDc5IiwgXAotICAgICAgICAgICIwLjEyODA3NiwgMC4xNzU0NTUsIDAuNDQyNjgzLCAwLjY3ODIxMywgMC45OTI1MjksIDEuNjE5NzQsIDIuMDE0MTEiLCBcCi0gICAgICAgICAgIjAuMTM1OTc2LCAwLjE4MzQ2MiwgMC40NTA4ODEsIDAuNjg2MjQ0LCAxLjAwMDgsIDEuNjI4NjgsIDIuMDIwMTEiLCBcCi0gICAgICAgICAgIjAuMTQ0MDU3LCAwLjE5MTQyNCwgMC40NTg4ODksIDAuNjk0NjcsIDEuMDA4MjUsIDEuNjM2MzEsIDIuMDMwNSIsIFwKLSAgICAgICAgICAiMC4xNTcwNzEsIDAuMjA0ODEsIDAuNDcxOTM1LCAwLjcwNzc2LCAxLjAyMTg4LCAxLjY0OTQsIDIuMDQyOTEiLCBcCi0gICAgICAgICAgIjAuMTY4NDE4LCAwLjIxNjE0OSwgMC40ODM0NjcsIDAuNzE5NTA0LCAxLjAzMzI4LCAxLjY2MzAyLCAyLjA1MzM3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIwNDg5MiwgMC4zMDE4NzUsIDAuODUyNDQ3LCAxLjMzNzk0LCAxLjk4NDg4LCAzLjI3OTM3LCA0LjA4Nzk4IiwgXAotICAgICAgICAgICIwLjIwNDY4LCAwLjMwMTg5OSwgMC44NTIwMTIsIDEuMzM3NTMsIDEuOTg0NzgsIDMuMjc5MDUsIDQuMDg4MDciLCBcCi0gICAgICAgICAgIjAuMjA0OTYzLCAwLjMwMTksIDAuODUyMTA1LCAxLjMzODMzLCAxLjk4NDY2LCAzLjI3ODk1LCA0LjA4ODkxIiwgXAotICAgICAgICAgICIwLjIwNjkzLCAwLjMwMjc3MiwgMC44NTIwOTksIDEuMzM3NTUsIDEuOTg0NzMsIDMuMjc5MDksIDQuMDg5ODgiLCBcCi0gICAgICAgICAgIjAuMjEwMzMxLCAwLjMwNDYxLCAwLjg1MjU3MiwgMS4zMzc1MywgMS45ODQ3NiwgMy4yODAwNiwgNC4wODg5IiwgXAotICAgICAgICAgICIwLjIxNzY3MiwgMC4zMTA0MDYsIDAuODUyMjQsIDEuMzM3NTMsIDEuOTg1MDIsIDMuMjc4ODEsIDQuMDg4MDUiLCBcCi0gICAgICAgICAgIjAuMjI1NDYyLCAwLjMxNjU4MywgMC44NTMxNTksIDEuMzM3NiwgMS45ODQ3MiwgMy4yNzk4OCwgNC4wODc2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzE4OTksIDAuMTA2MDM2LCAwLjI5OTE2OSwgMC40Njg3ODgsIDAuNjk0MzI0LCAxLjE0NDkyLCAxLjQyNjYzIiwgXAotICAgICAgICAgICIwLjA3ODEyNCwgMC4xMTIzMjIsIDAuMzA1NTA4LCAwLjQ3NTE2LCAwLjcwMDY4NywgMS4xNTE0MiwgMS40MzI4NyIsIFwKLSAgICAgICAgICAiMC4wODU1NTMsIDAuMTE5NzE1LCAwLjMxMzAxOSwgMC40ODI3MjksIDAuNzA4MjM3LCAxLjE1ODgzLCAxLjQ0MDUyIiwgXAotICAgICAgICAgICIwLjA5MjkwNSwgMC4xMjcxNjIsIDAuMzIwNTksIDAuNDkwMzc3LCAwLjcxNTgxNywgMS4xNjY0NCwgMS40NDgxMSIsIFwKLSAgICAgICAgICAiMC4xMDAyNzYsIDAuMTM0NjU2LCAwLjMyODExOCwgMC40OTc5MTksIDAuNzIzNDY5LCAxLjE3NDA2LCAxLjQ1NTciLCBcCi0gICAgICAgICAgIjAuMTEwNzA4LCAwLjE0NjI1OCwgMC4zMzk3MiwgMC41MDk2NjQsIDAuNzM1MDQ5LCAxLjE4NTksIDEuNDY3NSIsIFwKLSAgICAgICAgICAiMC4xMTg5MDMsIDAuMTU2MjM3LCAwLjM1MDQxNywgMC41MjA1MjUsIDAuNzQ2MDEsIDEuMTk2NjEsIDEuNDc4MTkiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTU0NjE5LCAwLjIyNTc3OSwgMC42Mjk4NiwgMC45ODYzNDYsIDEuNDYxNzgsIDIuNDEyNzgsIDMuMDA3MjgiLCBcCi0gICAgICAgICAgIjAuMTU0NjQ2LCAwLjIyNTc3NSwgMC42Mjk3NDUsIDAuOTg2NDUxLCAxLjQ2MTc0LCAyLjQxMzEsIDMuMDA2ODgiLCBcCi0gICAgICAgICAgIjAuMTU2NzY0LCAwLjIyNjU1OSwgMC42Mjk3NCwgMC45ODY0MTgsIDEuNDYxOTQsIDIuNDEyOTQsIDMuMDA3MjIiLCBcCi0gICAgICAgICAgIjAuMTYwNjA4LCAwLjIyOTE2NSwgMC42Mjk3NjQsIDAuOTg2Mzg5LCAxLjQ2MTgxLCAyLjQxMjg2LCAzLjAwNzQzIiwgXAotICAgICAgICAgICIwLjE2NTYsIDAuMjMzMDc3LCAwLjYzMDAyMSwgMC45ODYzMjUsIDEuNDYxODIsIDIuNDEyOTgsIDMuMDA3MjciLCBcCi0gICAgICAgICAgIjAuMTc0NjQ3LCAwLjI0MDU3MSwgMC42MzIxMjEsIDAuOTg2MzE1LCAxLjQ2MTkyLCAyLjQxMjk3LCAzLjAwNzIxIiwgXAotICAgICAgICAgICIwLjE4MzY4NSwgMC4yNDgyOCwgMC42MzUzOTgsIDAuOTg3NDQ0LCAxLjQ2MTg4LCAyLjQxMjkxLCAzLjAwNzY5Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwNjk5OCwgMC4xNTM0ODQsIDAuNDE2OTUzLCAwLjY1MjQxOSwgMC45NjYzOTksIDEuNTk0MzUsIDEuOTg2MjciLCBcCi0gICAgICAgICAgIjAuMTE0MTg0LCAwLjE2MDY2MywgMC40MjQzMDksIDAuNjU5NTU4LCAwLjk3MzM2LCAxLjYwMDg2LCAxLjk5NDEzIiwgXAotICAgICAgICAgICIwLjEyMzMyMiwgMC4xNjk3ODUsIDAuNDMzMzUzLCAwLjY2OTM0NiwgMC45ODM2MDQsIDEuNjExOTQsIDIuMDAyOTQiLCBcCi0gICAgICAgICAgIjAuMTMyODY4LCAwLjE3OTAzOCwgMC40NDI3MTksIDAuNjc4MjM1LCAwLjk5MTkwOCwgMS42MjAwNiwgMi4wMTI0MiIsIFwKLSAgICAgICAgICAiMC4xNDIyODMsIDAuMTg4NTY1LCAwLjQ1MjE4OSwgMC42ODcyODIsIDEuMDAwOTgsIDEuNjMwMTEsIDIuMDIxMjUiLCBcCi0gICAgICAgICAgIjAuMTU3MzA4LCAwLjIwMzI2NiwgMC40NjY0NjIsIDAuNzAxNzUsIDEuMDE1NTUsIDEuNjQ0MDMsIDIuMDM0OTUiLCBcCi0gICAgICAgICAgIjAuMTcwOTYsIDAuMjE2ODgyLCAwLjQ3OTM4OSwgMC43MTQ4MDMsIDEuMDI4NjcsIDEuNjU1ODUsIDIuMDQ5NTIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjA3MTkyLCAwLjMwMjU1OCwgMC44NTI3OTIsIDEuMzM3OTksIDEuOTg1MTksIDMuMjc5MSwgNC4wODc5NSIsIFwKLSAgICAgICAgICAiMC4yMDcwODcsIDAuMzAyNTA2LCAwLjg1MjE0NiwgMS4zMzc2MSwgMS45ODQ3OCwgMy4yNzg2MywgNC4wODg3MyIsIFwKLSAgICAgICAgICAiMC4yMDc0OTMsIDAuMzAyMjI2LCAwLjg1MjEwNCwgMS4zMzgxOSwgMS45ODU2NCwgMy4yODAyOCwgNC4wODgyMiIsIFwKLSAgICAgICAgICAiMC4yMTA2NjcsIDAuMzAzNjQ5LCAwLjg1MjA2LCAxLjMzNzc3LCAxLjk4NDc5LCAzLjI4MDQzLCA0LjA4Nzg2IiwgXAotICAgICAgICAgICIwLjIxNTYxNywgMC4zMDY3OTIsIDAuODUyMTc3LCAxLjMzNzYyLCAxLjk4NTkzLCAzLjI4MDY2LCA0LjA4Nzk3IiwgXAotICAgICAgICAgICIwLjIyNjE2NCwgMC4zMTQ3NjcsIDAuODUyMTQyLCAxLjMzNzgxLCAxLjk4NDc5LCAzLjI3OTE2LCA0LjA4ODA3IiwgXAotICAgICAgICAgICIwLjIzNjQyNiwgMC4zMjM0NzEsIDAuODUzNTgzLCAxLjMzNzUzLCAxLjk4NTIzLCAzLjI3OTU3LCA0LjA4ODE1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMxIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjk4NDcsIDAuMTAzOTg1LCAwLjI5NzA5LCAwLjQ2Njc2LCAwLjY5MjIxNSwgMS4xNDMxOCwgMS40MjQ1NyIsIFwKLSAgICAgICAgICAiMC4wNzc0NzcsIDAuMTExNjQ0LCAwLjMwNDgxOCwgMC40NzQ1MzUsIDAuNzAwMTA1LCAxLjE1MDYyLCAxLjQzMjQzIiwgXAotICAgICAgICAgICIwLjA4NzEyMiwgMC4xMjEzMTksIDAuMzE0NDcyLCAwLjQ4NDE1NiwgMC43MDk3NTMsIDEuMTYwNTYsIDEuNDQxODkiLCBcCi0gICAgICAgICAgIjAuMDk2NzIyLCAwLjEzMDgzNywgMC4zMjM5NiwgMC40OTM1MjcsIDAuNzE5MDg3LCAxLjE2OTY2LCAxLjQ1MTMyIiwgXAotICAgICAgICAgICIwLjEwNjUyNSwgMC4xNDA2MjQsIDAuMzMzNjA0LCAwLjUwMzE5NSwgMC43Mjg3NjcsIDEuMTc5MzMsIDEuNDYxMTgiLCBcCi0gICAgICAgICAgIjAuMTIxNTIyLCAwLjE1NjM0MiwgMC4zNDkwMjYsIDAuNTE4NjgzLCAwLjc0NDA4MiwgMS4xOTQ1OCwgMS40NzYxOSIsIFwKLSAgICAgICAgICAiMC4xMzI0NjIsIDAuMTcwMDkxLCAwLjM2MjU3OCwgMC41MzIxMzQsIDAuNzU3NTQ3LCAxLjIwODA0LCAxLjQ4OTYxIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE1NDU4MSwgMC4yMjU3NzIsIDAuNjI5Nzc2LCAwLjk4NjMzNSwgMS40NjE3NSwgMi40MTMyMywgMy4wMDc3NiIsIFwKLSAgICAgICAgICAiMC4xNTQ2NDQsIDAuMjI1NzczLCAwLjYyOTg5MiwgMC45ODY0MjEsIDEuNDYxOTIsIDIuNDEyODUsIDMuMDA3NDYiLCBcCi0gICAgICAgICAgIjAuMTU3OTA4LCAwLjIyNjkwNywgMC42Mjk3NywgMC45ODYzNjksIDEuNDYxOTUsIDIuNDEzMjEsIDMuMDA3NzIiLCBcCi0gICAgICAgICAgIjAuMTY0MDM5LCAwLjIzMDk2NSwgMC42Mjk3NywgMC45ODYzMjIsIDEuNDYxOTgsIDIuNDEyOTQsIDMuMDA3OCIsIFwKLSAgICAgICAgICAiMC4xNzE0NjMsIDAuMjM2NzYyLCAwLjYyOTg3OCwgMC45ODYzOTYsIDEuNDYxOCwgMi40MTI5NSwgMy4wMDc5MyIsIFwKLSAgICAgICAgICAiMC4xODQ5MDYsIDAuMjQ4MTA4LCAwLjYzMjYxOCwgMC45ODYzMjIsIDEuNDYxNzgsIDIuNDEyODYsIDMuMDA3MTYiLCBcCi0gICAgICAgICAgIjAuMTk3NDUxLCAwLjI1OTM1NiwgMC42MzczMDMsIDAuOTg3MTYxLCAxLjQ2MTY5LCAyLjQxMjc4LCAzLjAwNzcxIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwNDY0MywgMC4xNTE4NzgsIDAuNDE4ODUzLCAwLjY1NDMyNywgMC45NjgzMDYsIDEuNTk2MjgsIDEuOTg4NTEiLCBcCi0gICAgICAgICAgIjAuMTExODc2LCAwLjE1OTE1NywgMC40MjYyODIsIDAuNjYxNjM4LCAwLjk3NTQ2NSwgMS42MDI5OCwgMS45OTYyMiIsIFwKLSAgICAgICAgICAiMC4xMjEwNDgsIDAuMTY4Mzk4LCAwLjQzNTM4NCwgMC42NzE0MTYsIDAuOTg1MjYzLCAxLjYxNDMsIDIuMDA1MjkiLCBcCi0gICAgICAgICAgIjAuMTMwMTg4LCAwLjE3NzYxNSwgMC40NDQ4OTEsIDAuNjgwMTA4LCAwLjk5Mzk5LCAxLjYyMjIsIDIuMDE0NTQiLCBcCi0gICAgICAgICAgIjAuMTM5ODQ2LCAwLjE4Njk3LCAwLjQ1Mzc3OSwgMC42ODkyNDMsIDEuMDA0MDksIDEuNjMyMDksIDIuMDIzMTkiLCBcCi0gICAgICAgICAgIjAuMTU0ODc4LCAwLjIwMTc0OSwgMC40NjgzNDgsIDAuNzAzNjMzLCAxLjAxNzUyLCAxLjY0NjEsIDIuMDM3MDgiLCBcCi0gICAgICAgICAgIjAuMTY4NDM4LCAwLjIxNTE3MiwgMC40ODEyOCwgMC43MTY0NDcsIDEuMDMxMDcsIDEuNjU3OTYsIDIuMDUxNjIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjA1NjAzLCAwLjMwMjkwNCwgMC44NTM2NTUsIDEuMzM4OTksIDEuOTg2MjIsIDMuMjgwMjQsIDQuMDg4OTUiLCBcCi0gICAgICAgICAgIjAuMjA1NTAxLCAwLjMwMjgwOSwgMC44NTMxMjksIDEuMzM4NTIsIDEuOTg1OCwgMy4yNzk3OCwgNC4wOTAwOCIsIFwKLSAgICAgICAgICAiMC4yMDU4MzksIDAuMzAyNTMyLCAwLjg1MzQyNiwgMS4zMzg5MSwgMS45ODYyMywgMy4yODE1NSwgNC4wODk0MSIsIFwKLSAgICAgICAgICAiMC4yMDkyMjgsIDAuMzAzNzU2LCAwLjg1MzM0NSwgMS4zMzg2MiwgMS45ODYyNywgMy4yODEzMSwgNC4wODg5NCIsIFwKLSAgICAgICAgICAiMC4yMTQxNjUsIDAuMzA3MDY1LCAwLjg1MzM1LCAxLjMzODYzLCAxLjk4NjU5LCAzLjI4MDk5LCA0LjA4ODgzIiwgXAotICAgICAgICAgICIwLjIyNDgzNSwgMC4zMTUyNDksIDAuODUzMzY5LCAxLjMzODc0LCAxLjk4NjE5LCAzLjI4MDIxLCA0LjA4OTEyIiwgXAotICAgICAgICAgICIwLjIzNTI4NSwgMC4zMjM2OTEsIDAuODU0Nzc4LCAxLjMzODQ0LCAxLjk4NjA2LCAzLjI4MDEyLCA0LjA4OTI0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjcwMywgMC4wMDY3MDIsIDAuMDA2NzAyLCAwLjAwNjcwMiwgMC4wMDY3LCAwLjAwNjY5NiwgMC4wMDY2OTQiLCBcCi0gICAgICAgICAgIjAuMDA2NjgxLCAwLjAwNjY4MiwgMC4wMDY2ODMsIDAuMDA2NjgyLCAwLjAwNjY4MSwgMC4wMDY2NzgsIDAuMDA2Njc4IiwgXAotICAgICAgICAgICIwLjAwNjY3NywgMC4wMDY2NzksIDAuMDA2NjgsIDAuMDA2NjgsIDAuMDA2Njc4LCAwLjAwNjY3NiwgMC4wMDY2NzIiLCBcCi0gICAgICAgICAgIjAuMDA2Njg3LCAwLjAwNjY4NywgMC4wMDY2ODMsIDAuMDA2NjgxLCAwLjAwNjY3OCwgMC4wMDY2NzYsIDAuMDA2NjczIiwgXAotICAgICAgICAgICIwLjAwNjcwNywgMC4wMDY3MDEsIDAuMDA2Njg5LCAwLjAwNjY4NiwgMC4wMDY2ODIsIDAuMDA2Njc2LCAwLjAwNjY3NCIsIFwKLSAgICAgICAgICAiMC4wMDY3NjEsIDAuMDA2NzQyLCAwLjAwNjcxLCAwLjAwNjY5OSwgMC4wMDY2OTEsIDAuMDA2NjgzLCAwLjAwNjY3OCIsIFwKLSAgICAgICAgICAiMC4wMDY4MjYsIDAuMDA2NzkxLCAwLjAwNjczNCwgMC4wMDY3MTUsIDAuMDA2NzAzLCAwLjAwNjY5LCAwLjAwNjY4NiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTczOCwgMC4wMDE3MzksIDAuMDAxNzQsIDAuMDAxNzQsIDAuMDAxNzM5LCAwLjAwMTczOCwgMC4wMDE3MzgiLCBcCi0gICAgICAgICAgIjAuMDAxNzEyLCAwLjAwMTcxNiwgMC4wMDE3MjQsIDAuMDAxNzI1LCAwLjAwMTcyNSwgMC4wMDE3MjUsIDAuMDAxNzI1IiwgXAotICAgICAgICAgICIwLjAwMTY5NSwgMC4wMDE3MDMsIDAuMDAxNzE3LCAwLjAwMTcyLCAwLjAwMTcyMiwgMC4wMDE3MjIsIDAuMDAxNzIyIiwgXAotICAgICAgICAgICIwLjAwMTY4NSwgMC4wMDE2OTUsIDAuMDAxNzEyLCAwLjAwMTcxNywgMC4wMDE3MTksIDAuMDAxNzIsIDAuMDAxNzIiLCBcCi0gICAgICAgICAgIjAuMDAxNjgyLCAwLjAwMTY5MSwgMC4wMDE3MSwgMC4wMDE3MTUsIDAuMDAxNzE4LCAwLjAwMTcxOSwgMC4wMDE3MTkiLCBcCi0gICAgICAgICAgIjAuMDAxNjkxLCAwLjAwMTY5NiwgMC4wMDE3MTEsIDAuMDAxNzE1LCAwLjAwMTcxNywgMC4wMDE3MTksIDAuMDAxNzE5IiwgXAotICAgICAgICAgICIwLjAwMTcxNSwgMC4wMDE3MTQsIDAuMDAxNzE4LCAwLjAwMTcyLCAwLjAwMTcyMSwgMC4wMDE3MjEsIDAuMDAxNzIxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjI1OSwgMC4wMDYyNTksIDAuMDA2MjU4LCAwLjAwNjI1NywgMC4wMDYyNTcsIDAuMDA2MjUzLCAwLjAwNjI1MSIsIFwKLSAgICAgICAgICAiMC4wMDYyMzYsIDAuMDA2MjM4LCAwLjAwNjIzOSwgMC4wMDYyMzksIDAuMDA2MjM2LCAwLjAwNjIzMywgMC4wMDYyMzIiLCBcCi0gICAgICAgICAgIjAuMDA2MjQ4LCAwLjAwNjI0NSwgMC4wMDYyMzksIDAuMDA2MjM4LCAwLjAwNjIzNiwgMC4wMDYyMzIsIDAuMDA2MjMxIiwgXAotICAgICAgICAgICIwLjAwNjI3MiwgMC4wMDYyNjMsIDAuMDA2MjQ4LCAwLjAwNjI0MywgMC4wMDYyMzksIDAuMDA2MjM1LCAwLjAwNjIzMyIsIFwKLSAgICAgICAgICAiMC4wMDYzMTMsIDAuMDA2Mjk1LCAwLjAwNjI1NywgMC4wMDYyNTEsIDAuMDA2MjQ1LCAwLjAwNjIzOSwgMC4wMDYyMzUiLCBcCi0gICAgICAgICAgIjAuMDA2NDAxLCAwLjAwNjM2LCAwLjAwNjI5NCwgMC4wMDYyNzYsIDAuMDA2MjYxLCAwLjAwNjI0NiwgMC4wMDYyNDEiLCBcCi0gICAgICAgICAgIjAuMDA2NTAxLCAwLjAwNjQzNiwgMC4wMDYzMzEsIDAuMDA2MywgMC4wMDYyODIsIDAuMDA2MjU5LCAwLjAwNjI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxNDM0LCAwLjAwMTQzOCwgMC4wMDE0NDMsIDAuMDAxNDQzLCAwLjAwMTQ0MywgMC4wMDE0NDMsIDAuMDAxNDQyIiwgXAotICAgICAgICAgICIwLjAwMTQwOSwgMC4wMDE0MjIsIDAuMDAxNDQ0LCAwLjAwMTQ0OSwgMC4wMDE0NTEsIDAuMDAxNDUyLCAwLjAwMTQ1MyIsIFwKLSAgICAgICAgICAiMC4wMDEzNzQsIDAuMDAxMzk2LCAwLjAwMTQzMywgMC4wMDE0NDIsIDAuMDAxNDQ3LCAwLjAwMTQ1LCAwLjAwMTQ1MSIsIFwKLSAgICAgICAgICAiMC4wMDEzNDksIDAuMDAxMzc0LCAwLjAwMTQyMiwgMC4wMDE0MzUsIDAuMDAxNDQyLCAwLjAwMTQ0OCwgMC4wMDE0NDkiLCBcCi0gICAgICAgICAgIjAuMDAxMzM1LCAwLjAwMTM2LCAwLjAwMTQxNCwgMC4wMDE0MjgsIDAuMDAxNDM3LCAwLjAwMTQ0NSwgMC4wMDE0NDciLCBcCi0gICAgICAgICAgIjAuMDAxMzMzLCAwLjAwMTM1NCwgMC4wMDE0MDYsIDAuMDAxNDIzLCAwLjAwMTQzMywgMC4wMDE0NDIsIDAuMDAxNDQ1IiwgXAotICAgICAgICAgICIwLjAwMTM1MiwgMC4wMDEzNjQsIDAuMDAxNDA4LCAwLjAwMTQyMiwgMC4wMDE0MzMsIDAuMDAxNDQyLCAwLjAwMTQ0NCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDU0NDgsIDAuMDA1NDQ4LCAwLjAwNTQ0OCwgMC4wMDU0NDcsIDAuMDA1NDQ3LCAwLjAwNTQ0NiwgMC4wMDU0NDMiLCBcCi0gICAgICAgICAgIjAuMDA1NDM0LCAwLjAwNTQzOSwgMC4wMDU0NDUsIDAuMDA1NDQ1LCAwLjAwNTQ0NSwgMC4wMDU0NDUsIDAuMDA1NDQ0IiwgXAotICAgICAgICAgICIwLjAwNTQyNiwgMC4wMDU0MzIsIDAuMDA1NDQyLCAwLjAwNTQ0NCwgMC4wMDU0NDQsIDAuMDA1NDQ0LCAwLjAwNTQ0MiIsIFwKLSAgICAgICAgICAiMC4wMDU0MzIsIDAuMDA1NDM3LCAwLjAwNTQ0NCwgMC4wMDU0NDUsIDAuMDA1NDQ0LCAwLjAwNTQ0NCwgMC4wMDU0NDQiLCBcCi0gICAgICAgICAgIjAuMDA1NDQ5LCAwLjAwNTQ0OSwgMC4wMDU0NSwgMC4wMDU0NDksIDAuMDA1NDQ3LCAwLjAwNTQ0NywgMC4wMDU0NDUiLCBcCi0gICAgICAgICAgIjAuMDA1NSwgMC4wMDU0ODcsIDAuMDA1NDY4LCAwLjAwNTQ2MiwgMC4wMDU0NTYsIDAuMDA1NDUyLCAwLjAwNTQ0OSIsIFwKLSAgICAgICAgICAiMC4wMDU1NjIsIDAuMDA1NTM2LCAwLjAwNTQ5MiwgMC4wMDU0NzgsIDAuMDA1NDY5LCAwLjAwNTQ1OSwgMC4wMDU0NTUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDE3NCwgMC4wMDE3NCwgMC4wMDE3NDEsIDAuMDAxNzQxLCAwLjAwMTc0MSwgMC4wMDE3MzksIDAuMDAxNzM5IiwgXAotICAgICAgICAgICIwLjAwMTcxMiwgMC4wMDE3MTcsIDAuMDAxNzI0LCAwLjAwMTcyNiwgMC4wMDE3MjUsIDAuMDAxNzI1LCAwLjAwMTcyNSIsIFwKLSAgICAgICAgICAiMC4wMDE2OTcsIDAuMDAxNzA1LCAwLjAwMTcxOCwgMC4wMDE3MjEsIDAuMDAxNzIyLCAwLjAwMTcyMiwgMC4wMDE3MjIiLCBcCi0gICAgICAgICAgIjAuMDAxNjkyLCAwLjAwMTY5OSwgMC4wMDE3MTQsIDAuMDAxNzE4LCAwLjAwMTcyLCAwLjAwMTcyMSwgMC4wMDE3MjEiLCBcCi0gICAgICAgICAgIjAuMDAxNjk2LCAwLjAwMTcwMiwgMC4wMDE3MTUsIDAuMDAxNzE3LCAwLjAwMTcxOSwgMC4wMDE3MiwgMC4wMDE3MiIsIFwKLSAgICAgICAgICAiMC4wMDE3MjIsIDAuMDAxNzIsIDAuMDAxNzE5LCAwLjAwMTcyMiwgMC4wMDE3MjIsIDAuMDAxNzIxLCAwLjAwMTcyMSIsIFwKLSAgICAgICAgICAiMC4wMDE3NjUsIDAuMDAxNzUzLCAwLjAwMTczNSwgMC4wMDE3MzEsIDAuMDAxNzI4LCAwLjAwMTcyNSwgMC4wMDE3MjQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0OTg3LCAwLjAwNDk4NywgMC4wMDQ5ODgsIDAuMDA0OTg4LCAwLjAwNDk4NywgMC4wMDQ5ODYsIDAuMDA0OTg1IiwgXAotICAgICAgICAgICIwLjAwNDk3MiwgMC4wMDQ5NzksIDAuMDA0OTg1LCAwLjAwNDk4NSwgMC4wMDQ5ODYsIDAuMDA0OTg0LCAwLjAwNDk4NCIsIFwKLSAgICAgICAgICAiMC4wMDQ5ODgsIDAuMDA0OTg5LCAwLjAwNDk4OCwgMC4wMDQ5ODcsIDAuMDA0OTg3LCAwLjAwNDk4NSwgMC4wMDQ5ODQiLCBcCi0gICAgICAgICAgIjAuMDA1MDExLCAwLjAwNTAwNywgMC4wMDQ5OTYsIDAuMDA0OTkzLCAwLjAwNDk5LCAwLjAwNDk4OCwgMC4wMDQ5ODYiLCBcCi0gICAgICAgICAgIjAuMDA1MDUyLCAwLjAwNTAzNywgMC4wMDUwMTEsIDAuMDA1MDAzLCAwLjAwNDk5OCwgMC4wMDQ5OTEsIDAuMDA0OTg5IiwgXAotICAgICAgICAgICIwLjAwNTEzOSwgMC4wMDUxLCAwLjAwNTA0MSwgMC4wMDUwMjYsIDAuMDA1MDE0LCAwLjAwNTAwMiwgMC4wMDQ5OTgiLCBcCi0gICAgICAgICAgIjAuMDA1MjM3LCAwLjAwNTE3MiwgMC4wMDUwNzYsIDAuMDA1MDUyLCAwLjAwNTAzNCwgMC4wMDUwMTEsIDAuMDA1MDA0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxMzQyLCAwLjAwMTM0NiwgMC4wMDEzNTEsIDAuMDAxMzUxLCAwLjAwMTM1MiwgMC4wMDEzNTEsIDAuMDAxMzUxIiwgXAotICAgICAgICAgICIwLjAwMTMxOCwgMC4wMDEzMzIsIDAuMDAxMzUzLCAwLjAwMTM1OCwgMC4wMDEzNiwgMC4wMDEzNjIsIDAuMDAxMzYyIiwgXAotICAgICAgICAgICIwLjAwMTI4NSwgMC4wMDEzMDYsIDAuMDAxMzQzLCAwLjAwMTM1MiwgMC4wMDEzNTcsIDAuMDAxMzYsIDAuMDAxMzYxIiwgXAotICAgICAgICAgICIwLjAwMTI2NiwgMC4wMDEyODgsIDAuMDAxMzM0LCAwLjAwMTM0NSwgMC4wMDEzNTIsIDAuMDAxMzU4LCAwLjAwMTM1OSIsIFwKLSAgICAgICAgICAiMC4wMDEyNjEsIDAuMDAxMjgyLCAwLjAwMTMyOCwgMC4wMDEzNDEsIDAuMDAxMzQ5LCAwLjAwMTM1NiwgMC4wMDEzNTgiLCBcCi0gICAgICAgICAgIjAuMDAxMjc2LCAwLjAwMTI4OCwgMC4wMDEzMjYsIDAuMDAxMzM5LCAwLjAwMTM0OCwgMC4wMDEzNTUsIDAuMDAxMzU3IiwgXAotICAgICAgICAgICIwLjAwMTMxMywgMC4wMDEzMTUsIDAuMDAxMzM1LCAwLjAwMTM0NCwgMC4wMDEzNTEsIDAuMDAxMzU2LCAwLjAwMTM1OCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDM5NzcsIDAuMDAzOTc5LCAwLjAwMzk4MywgMC4wMDM5ODMsIDAuMDAzOTgzLCAwLjAwMzk4MywgMC4wMDM5ODMiLCBcCi0gICAgICAgICAgIjAuMDAzOTczLCAwLjAwMzk4MywgMC4wMDM5OTYsIDAuMDAzOTk5LCAwLjAwMzk5NiwgMC4wMDQwMDIsIDAuMDA0MDAyIiwgXAotICAgICAgICAgICIwLjAwMzk2NiwgMC4wMDM5NzgsIDAuMDAzOTk2LCAwLjAwNCwgMC4wMDQwMDQsIDAuMDA0MDA0LCAwLjAwNDAwNyIsIFwKLSAgICAgICAgICAiMC4wMDM5NzMsIDAuMDAzOTgyLCAwLjAwMzk5OSwgMC4wMDQwMDIsIDAuMDA0MDA0LCAwLjAwNDAwNSwgMC4wMDQwMDUiLCBcCi0gICAgICAgICAgIjAuMDAzOTkyLCAwLjAwMzk5OCwgMC4wMDQwMDUsIDAuMDA0MDA2LCAwLjAwNDAwNywgMC4wMDQwMDgsIDAuMDA0MDA4IiwgXAotICAgICAgICAgICIwLjAwNDA0OSwgMC4wMDQwMzYsIDAuMDA0MDIzLCAwLjAwNDAxOSwgMC4wMDQwMTYsIDAuMDA0MDE1LCAwLjAwNDAxNCIsIFwKLSAgICAgICAgICAiMC4wMDQxMTcsIDAuMDA0MDg2LCAwLjAwNDA0OSwgMC4wMDQwMzcsIDAuMDA0MDI5LCAwLjAwNDAyMiwgMC4wMDQwMTkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDE3MzYsIDAuMDAxNzM3LCAwLjAwMTczOSwgMC4wMDE3MzgsIDAuMDAxNzM4LCAwLjAwMTczNywgMC4wMDE3MzYiLCBcCi0gICAgICAgICAgIjAuMDAxNzE4LCAwLjAwMTcxOSwgMC4wMDE3MjQsIDAuMDAxNzI2LCAwLjAwMTcyNiwgMC4wMDE3MjUsIDAuMDAxNzI0IiwgXAotICAgICAgICAgICIwLjAwMTczMywgMC4wMDE3MzEsIDAuMDAxNzI4LCAwLjAwMTcyNywgMC4wMDE3MjYsIDAuMDAxNzI1LCAwLjAwMTcyNCIsIFwKLSAgICAgICAgICAiMC4wMDE3NTEsIDAuMDAxNzUyLCAwLjAwMTczMiwgMC4wMDE3MjksIDAuMDAxNzI3LCAwLjAwMTcyNSwgMC4wMDE3MjQiLCBcCi0gICAgICAgICAgIjAuMDAxNzk1LCAwLjAwMTc3NywgMC4wMDE3NDYsIDAuMDAxNzM5LCAwLjAwMTczNCwgMC4wMDE3MzEsIDAuMDAxNzI4IiwgXAotICAgICAgICAgICIwLjAwMTkwNiwgMC4wMDE4NjUsIDAuMDAxNzg5LCAwLjAwMTc2NywgMC4wMDE3NTQsIDAuMDAxNzQxLCAwLjAwMTczNyIsIFwKLSAgICAgICAgICAiMC4wMDIwMDEsIDAuMDAxOTQzLCAwLjAwMTgyOCwgMC4wMDE3OTQsIDAuMDAxNzczLCAwLjAwMTc1MywgMC4wMDE3NDciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDMSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzNTMzLCAwLjAwMzUzNywgMC4wMDM1NDEsIDAuMDAzNTQyLCAwLjAwMzU0MywgMC4wMDM1NDMsIDAuMDAzNTQzIiwgXAotICAgICAgICAgICIwLjAwMzUzNSwgMC4wMDM1NDMsIDAuMDAzNTU2LCAwLjAwMzU1OCwgMC4wMDM1NiwgMC4wMDM1NjEsIDAuMDAzNTYiLCBcCi0gICAgICAgICAgIjAuMDAzNTQxLCAwLjAwMzU0NywgMC4wMDM1NTgsIDAuMDAzNTYxLCAwLjAwMzU2MiwgMC4wMDM1NjQsIDAuMDAzNTY0IiwgXAotICAgICAgICAgICIwLjAwMzU3LCAwLjAwMzU3LCAwLjAwMzU3LCAwLjAwMzU2OSwgMC4wMDM1NjgsIDAuMDAzNTY3LCAwLjAwMzU2NyIsIFwKLSAgICAgICAgICAiMC4wMDM2MTEsIDAuMDAzNTk3LCAwLjAwMzU4MywgMC4wMDM1NzksIDAuMDAzNTc1LCAwLjAwMzU3MiwgMC4wMDM1NzEiLCBcCi0gICAgICAgICAgIjAuMDAzNjk5LCAwLjAwMzY2MiwgMC4wMDM2MTEsIDAuMDAzNjAxLCAwLjAwMzU4OCwgMC4wMDM1OCwgMC4wMDM1NzgiLCBcCi0gICAgICAgICAgIjAuMDAzNzk5LCAwLjAwMzczMywgMC4wMDM2NDUsIDAuMDAzNjI3LCAwLjAwMzYwNSwgMC4wMDM1OTIsIDAuMDAzNTg3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxNDc1LCAwLjAwMTQ3OSwgMC4wMDE0ODQsIDAuMDAxNDg1LCAwLjAwMTQ4NSwgMC4wMDE0ODUsIDAuMDAxNDg0IiwgXAotICAgICAgICAgICIwLjAwMTQ1OCwgMC4wMDE0NywgMC4wMDE0ODgsIDAuMDAxNDkxLCAwLjAwMTQ5NCwgMC4wMDE0OTUsIDAuMDAxNDk1IiwgXAotICAgICAgICAgICIwLjAwMTQ1MSwgMC4wMDE0NjIsIDAuMDAxNDg1LCAwLjAwMTQ5LCAwLjAwMTQ5MywgMC4wMDE0OTUsIDAuMDAxNDk1IiwgXAotICAgICAgICAgICIwLjAwMTQ3NSwgMC4wMDE0NywgMC4wMDE0ODUsIDAuMDAxNDksIDAuMDAxNDkzLCAwLjAwMTQ5NSwgMC4wMDE0OTUiLCBcCi0gICAgICAgICAgIjAuMDAxNTAxLCAwLjAwMTQ5NiwgMC4wMDE0OTQsIDAuMDAxNDk2LCAwLjAwMTQ5NywgMC4wMDE0OTksIDAuMDAxNDk4IiwgXAotICAgICAgICAgICIwLjAwMTU5NCwgMC4wMDE1NzEsIDAuMDAxNTI4LCAwLjAwMTUxOCwgMC4wMDE1MTIsIDAuMDAxNTA3LCAwLjAwMTUwNSIsIFwKLSAgICAgICAgICAiMC4wMDE2OCwgMC4wMDE2MzQsIDAuMDAxNTY2LCAwLjAwMTU0NCwgMC4wMDE1MjcsIDAuMDAxNTE4LCAwLjAwMTUxNCIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IE9BSTIyWDQgKgotICogLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoT0FJMjJYNCkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAxLjM4NTQ2OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAzNDU2NTU7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAzNDQ5MzM7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAzNDU2NTU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyMDk3LCAwLjAwMjA5NiwgMC4wMDIwOTUsIDAuMDAyMDk1LCAwLjAwMjA5NCwgMC4wMDIwOTQsIDAuMDAyMDk0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyMTI5LCAwLjAwMjEwNiwgMC4wMDIxMDQsIDAuMDAyMTA0LCAwLjAwMjEwNCwgMC4wMDIxMDUsIDAuMDAyMTAyIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihBMSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAzMzk3Nzc7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAzMzk3Nzc7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAzMzg5NjI7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyMDk4LCAwLjAwMjA5NywgMC4wMDIwOTcsIDAuMDAyMDk2LCAwLjAwMjA5NiwgMC4wMDIwOTYsIDAuMDAyMDk1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyMTI5LCAwLjAwMjEwNCwgMC4wMDIxMDMsIDAuMDAyMTAyLCAwLjAwMjEwMywgMC4wMDIxMDMsIDAuMDAyMTAyIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAzNTk3ODc7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAzNTgzMDk7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAzNTk3ODc7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxOTMzLCAwLjAwMTkzNiwgMC4wMDE5MzcsIDAuMDAxOTM5LCAwLjAwMTkzNywgMC4wMDE5MzYsIDAuMDAxOTM4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyMzgyLCAwLjAwMjM4MywgMC4wMDIzODQsIDAuMDAyMzg1LCAwLjAwMjM4NSwgMC4wMDIzODQsIDAuMDAyMzg0Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCMSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAzNDMxMDY7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAzNDMxMDY7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAzNDMwNzc7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxOTMzLCAwLjAwMTkzNCwgMC4wMDE5MzUsIDAuMDAxOTMzLCAwLjAwMTkzNSwgMC4wMDE5MzQsIDAuMDAxOTM3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyMzgxLCAwLjAwMjM4MiwgMC4wMDIzODMsIDAuMDAyMzgzLCAwLjAwMjM4MywgMC4wMDIzODMsIDAuMDAyMzgzIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuNzM4MjYyOwotICAgIGZ1bmN0aW9uIDogIighKChCMCtCMSkgKEEwK0ExKSkpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzIxMjksIDAuMTMxOTkxLCAwLjIzMTM1MiwgMC4zMDIxNjksIDAuNDE1ODQxLCAwLjUxNTA1MiwgMC42NTY3MzkiLCBcCi0gICAgICAgICAgIjAuMDM4MTg2LCAwLjEzODA2NywgMC4yMzc0NzgsIDAuMzA4NDMxLCAwLjQyMTk3MywgMC41MjEyNjEsIDAuNjYyOTIyIiwgXAotICAgICAgICAgICIwLjA0NTM1NiwgMC4xNDU0NDksIDAuMjQ0OTA3LCAwLjMxNTk0LCAwLjQyOTUyMywgMC41Mjg3MDgsIDAuNjcwNDgzIiwgXAotICAgICAgICAgICIwLjA1MTI5LCAwLjE1Mjg1NiwgMC4yNTIzNzksIDAuMzIzMzgxLCAwLjQzNjkwMywgMC41MzY0MywgMC42NzgzMzIiLCBcCi0gICAgICAgICAgIjAuMDU2MDY2LCAwLjE2MDQzNSwgMC4yNTk4MTEsIDAuMzMwODM4LCAwLjQ0NDQ2OCwgMC41NDM3MDMsIDAuNjg1MzQ5IiwgXAotICAgICAgICAgICIwLjA2MjUwNiwgMC4xNzIxMDcsIDAuMjcxNzIyLCAwLjM0MjU5NCwgMC40NTYxOTEsIDAuNTU1NTQ4LCAwLjY5NzQyIiwgXAotICAgICAgICAgICIwLjA2NzMxNCwgMC4xODI3MjMsIDAuMjgyMTUzLCAwLjM1MzE0MywgMC40NjY5NDQsIDAuNTY2OTI1LCAwLjcwODUyNyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1ODUyMywgMC4yNjgyNjMsIDAuNDc4MzE5LCAwLjYyODE4OSwgMC44NjgzMDksIDEuMDc4MjgsIDEuMzc4MjUiLCBcCi0gICAgICAgICAgIjAuMDU5NzExLCAwLjI2ODQ4LCAwLjQ3ODI0NiwgMC42MjgxNzgsIDAuODY4MjYyLCAxLjA3ODExLCAxLjM3ODI1IiwgXAotICAgICAgICAgICIwLjA2NDMzNCwgMC4yNjg1NzEsIDAuNDc4MjYsIDAuNjI4MTk3LCAwLjg2ODM0MiwgMS4wNzgyLCAxLjM3ODIzIiwgXAotICAgICAgICAgICIwLjA3MDM0MSwgMC4yNzA1MjMsIDAuNDc4Mzg1LCAwLjYyODE0NCwgMC44NjgxNywgMS4wNzgxOCwgMS4zNzgwMyIsIFwKLSAgICAgICAgICAiMC4wNzY4NDUsIDAuMjczNjQ1LCAwLjQ3OTQ4OCwgMC42Mjg0MTgsIDAuODY4MzUzLCAxLjA3ODE4LCAxLjM3ODE3IiwgXAotICAgICAgICAgICIwLjA4Njc5OSwgMC4yODAwNzQsIDAuNDgzMDksIDAuNjMwNDgyLCAwLjg2ODcwNywgMS4wNzgyOCwgMS4zNzgyMyIsIFwKLSAgICAgICAgICAiMC4wOTQ5NjEsIDAuMjg3MTcxLCAwLjQ4NzYxMywgMC42MzM2MTIsIDAuODcwMTY1LCAxLjA3ODY4LCAxLjM3ODE5Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDMzODM4LCAwLjEzMDEwMSwgMC4yMjU4ODksIDAuMjk0NDczLCAwLjQwNTM4LCAwLjUwMjUwOCwgMC42NDEzMzYiLCBcCi0gICAgICAgICAgIjAuMDQwNzkyLCAwLjEzNzIwNCwgMC4yMzI5NTIsIDAuMzAxNTY4LCAwLjQxMjMzMSwgMC41MDk0NjksIDAuNjQ3Nzk1IiwgXAotICAgICAgICAgICIwLjA0ODc1OSwgMC4xNDUxOSwgMC4yNDEwODcsIDAuMzA5NTMzLCAwLjQyMDUyNCwgMC41MTczOTUsIDAuNjU2MDE5IiwgXAotICAgICAgICAgICIwLjA1NTM4NywgMC4xNTMxNjcsIDAuMjQ5MTQ1LCAwLjMxNzUwMSwgMC40MjgzODcsIDAuNTI1NjczLCAwLjY2NDI4NSIsIFwKLSAgICAgICAgICAiMC4wNjEwNDEsIDAuMTYxNDE1LCAwLjI1NzIzNywgMC4zMjU1OTksIDAuNDM2NTMxLCAwLjUzMzUxNCwgMC42NzIwMzYiLCBcCi0gICAgICAgICAgIjAuMDY4Njk2LCAwLjE3NDI3OCwgMC4yNzAxMiwgMC4zMzg2NzEsIDAuNDQ5NDU0LCAwLjU0NjY5NSwgMC42ODU0NTciLCBcCi0gICAgICAgICAgIjAuMDc0MzQ1LCAwLjE4NTc3NCwgMC4yODEzNjIsIDAuMzQ5NjkxLCAwLjQ2MDUzMiwgMC41NTc3ODQsIDAuNjk2NDc2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQ5ODYyLCAwLjI0NzgxMiwgMC40NDg0NjIsIDAuNTkxODc3LCAwLjgyMTI0OCwgMS4wMjIyMSwgMS4zMDg4NCIsIFwKLSAgICAgICAgICAiMC4wNTA1MTEsIDAuMjQ3NzU4LCAwLjQ0ODMyMSwgMC41OTE3MTIsIDAuODIwOTczLCAxLjAyMTg3LCAxLjMwODQ0IiwgXAotICAgICAgICAgICIwLjA1NDQxMiwgMC4yNDc5MTYsIDAuNDQ4MzIyLCAwLjU5MTc3OCwgMC44MjExNjIsIDEuMDIxNywgMS4zMDg0OSIsIFwKLSAgICAgICAgICAiMC4wNjAxNjQsIDAuMjQ5MzcsIDAuNDQ4NTAyLCAwLjU5MTc3MywgMC44MjEyNDMsIDEuMDIxODUsIDEuMzA4NzkiLCBcCi0gICAgICAgICAgIjAuMDY2MzYyLCAwLjI1MjQ0MiwgMC40NDkzNzgsIDAuNTkxOTE2LCAwLjgyMTA1OSwgMS4wMjE3MiwgMS4zMDg0NSIsIFwKLSAgICAgICAgICAiMC4wNzU5MzUsIDAuMjU4NjU1LCAwLjQ1MjcxOCwgMC41OTM2NjUsIDAuODIxNjksIDEuMDIxNTYsIDEuMzA4NTkiLCBcCi0gICAgICAgICAgIjAuMDgzODg0LCAwLjI2NTY5NywgMC40NTY4MTEsIDAuNTk2NzU4LCAwLjgyMjk2OSwgMS4wMjIxOSwgMS4zMDg0NiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjk5MDUsIDAuMTI5Njg0LCAwLjIyOTE5NywgMC4zMDAwMjgsIDAuNDEzNjEsIDAuNTEyODcxLCAwLjY1NDgzMSIsIFwKLSAgICAgICAgICAiMC4wMzczOSwgMC4xMzczNTEsIDAuMjM2NDkxLCAwLjMwNzUzNCwgMC40MjExMjYsIDAuNTIwNDA1LCAwLjY2MjA2MyIsIFwKLSAgICAgICAgICAiMC4wNDY5OCwgMC4xNDY2ODMsIDAuMjQ2MTcyLCAwLjMxNzEzNiwgMC40MzA2NCwgMC41Mjk5MDYsIDAuNjcxNDc1IiwgXAotICAgICAgICAgICIwLjA1NDk1MiwgMC4xNTY0MiwgMC4yNTU3MjMsIDAuMzI2NzE5LCAwLjQ0MDE5NywgMC41Mzk0NTIsIDAuNjgxMzYiLCBcCi0gICAgICAgICAgIjAuMDYxNjgzLCAwLjE2NjEsIDAuMjY1MjUxLCAwLjMzNjMxLCAwLjQ0OTgyNywgMC41NDkwODgsIDAuNjkwOTEyIiwgXAotICAgICAgICAgICIwLjA3MDExNiwgMC4xODE4NDUsIDAuMjgwODQ0LCAwLjM1MTg1LCAwLjQ2NTI4OCwgMC41NjQ1MDcsIDAuNzA2MzQxIiwgXAotICAgICAgICAgICIwLjA3NjcxMSwgMC4xOTU3NzgsIDAuMjk0NTQ4LCAwLjM2NTM4LCAwLjQ3ODc0MSwgMC41Nzc5NzcsIDAuNzE5NjA4Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU4NTIyLCAwLjI2ODI0NCwgMC40NzgxODMsIDAuNjI4MjMzLCAwLjg2ODM3NiwgMS4wNzgyNywgMS4zNzgzNyIsIFwKLSAgICAgICAgICAiMC4wNjA3NzcsIDAuMjY4MjQ4LCAwLjQ3ODI5MiwgMC42MjgyNDUsIDAuODY4MjgzLCAxLjA3ODIsIDEuMzc4MjEiLCBcCi0gICAgICAgICAgIjAuMDY4MzYxLCAwLjI2ODYzOCwgMC40NzgxNzMsIDAuNjI4MiwgMC44NjgxMiwgMS4wNzgxLCAxLjM3ODE4IiwgXAotICAgICAgICAgICIwLjA3Njc4NCwgMC4yNzE0MTIsIDAuNDc4MjY3LCAwLjYyODE5MiwgMC44NjgyOTksIDEuMDc4MDcsIDEuMzc4MjQiLCBcCi0gICAgICAgICAgIjAuMDg1NTA0LCAwLjI3NjExLCAwLjQ3OTYxMiwgMC42MjgzNzksIDAuODY4MzQ2LCAxLjA3ODE0LCAxLjM3ODIxIiwgXAotICAgICAgICAgICIwLjA5NzY3LCAwLjI4NTk2OSwgMC40ODQ5NTYsIDAuNjMxMDM5LCAwLjg2ODQyMSwgMS4wNzgyNCwgMS4zNzgzMyIsIFwKLSAgICAgICAgICAiMC4xMDczMDQsIDAuMjk2MTMsIDAuNDkxNSwgMC42MzU1ODEsIDAuODcwMzI0LCAxLjA3ODUsIDEuMzc4MTkiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzEyODgsIDAuMTI4NzgsIDAuMjI1ODE2LCAwLjI5NTIyMywgMC40MDU5OTEsIDAuNTAzMjEyLCAwLjY0MjIwNSIsIFwKLSAgICAgICAgICAiMC4wMzgwNTksIDAuMTM1ODUyLCAwLjIzMjkyNiwgMC4zMDIyNTYsIDAuNDEzMTQ5LCAwLjUxMDM5NywgMC42NDkwNyIsIFwKLSAgICAgICAgICAiMC4wNDU2NiwgMC4xNDM3NDMsIDAuMjQwOTY3LCAwLjMxMDIwNywgMC40MjExMSwgMC41MTgwMzIsIDAuNjU3MTk4IiwgXAotICAgICAgICAgICIwLjA1MTg2OCwgMC4xNTE1NjYsIDAuMjQ4ODcyLCAwLjMxODE1OCwgMC40MjkxMDYsIDAuNTI2MjgsIDAuNjY1MzIzIiwgXAotICAgICAgICAgICIwLjA1NzEyOCwgMC4xNTk1OTQsIDAuMjU2ODU4LCAwLjMyNjI1OSwgMC40MzcxNjUsIDAuNTM0MzMzLCAwLjY3MzI0OCIsIFwKLSAgICAgICAgICAiMC4wNjM5MTksIDAuMTcyMzk4LCAwLjI2OTUyOSwgMC4zMzkwOTEsIDAuNDUwMTkyLCAwLjU0NzMxOSwgMC42ODYxNjUiLCBcCi0gICAgICAgICAgIjAuMDY5MDE0LCAwLjE4MzQ1MiwgMC4yODA1NTQsIDAuMzQ5OTI4LCAwLjQ2MTEzNywgMC41NTg5NzUsIDAuNjk3NDc4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQ2NzAzLCAwLjI0NzU2NywgMC40NDgzOTQsIDAuNTkyMzQ1LCAwLjgyMzEwOCwgMS4wMjU2NSwgMS4zMTQxMiIsIFwKLSAgICAgICAgICAiMC4wNDc0MywgMC4yNDc0NjksIDAuNDQ4MzM0LCAwLjU5MjMzNywgMC44MjQ5NjQsIDEuMDI1NzgsIDEuMzE3MTkiLCBcCi0gICAgICAgICAgIjAuMDUxNDg5LCAwLjI0NzYzLCAwLjQ0ODMyNCwgMC41OTMyOSwgMC44MjM2MDYsIDEuMDI3NjcsIDEuMzIwNjUiLCBcCi0gICAgICAgICAgIjAuMDU3NDY2LCAwLjI0OTIzNSwgMC40NDgzNzksIDAuNTkzMjUxLCAwLjgyNDM0MywgMS4wMjU0MiwgMS4zMTQ1NSIsIFwKLSAgICAgICAgICAiMC4wNjM2MjIsIDAuMjUyMjUyLCAwLjQ0OTU0NCwgMC41OTM0MTksIDAuODIzNzg1LCAxLjAyNTQ5LCAxLjMxNDI5IiwgXAotICAgICAgICAgICIwLjA3MzA3NiwgMC4yNTg0NDgsIDAuNDUyODAxLCAwLjU5NTE0NywgMC44MjUyMDQsIDEuMDI1MjIsIDEuMzE3MjMiLCBcCi0gICAgICAgICAgIjAuMDgxMTAyLCAwLjI2NTI5OCwgMC40NTY3NDQsIDAuNTk3MTQ0LCAwLjgyNjU4MywgMS4wMjgsIDEuMzE1OTUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjAiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDI2MjE1LCAwLjEyNjA2NywgMC4yMjU3NDQsIDAuMjk2OTUxLCAwLjQxMDU0OCwgMC41MDk5NTMsIDAuNjUxNjgyIiwgXAotICAgICAgICAgICIwLjAzMjE3MywgMC4xMzIzMzgsIDAuMjMyMDUyLCAwLjMwMzE5NCwgMC40MTY4MzUsIDAuNTE2MjQzLCAwLjY1ODAzMiIsIFwKLSAgICAgICAgICAiMC4wMzg4NDYsIDAuMTM5Nzc2LCAwLjIzOTU4MywgMC4zMTA3MjgsIDAuNDI0Mzg3LCAwLjUyMzc0MywgMC42NjU2NjUiLCBcCi0gICAgICAgICAgIjAuMDQzOTIxLCAwLjE0NzExMiwgMC4yNDY5NDYsIDAuMzE4MTM4LCAwLjQzMTgwMiwgMC41MzExODQsIDAuNjcyOTkiLCBcCi0gICAgICAgICAgIjAuMDQ4MDUyLCAwLjE1NDcyMywgMC4yNTQzNjcsIDAuMzI1NjIsIDAuNDM5Mzc2LCAwLjUzODcwMywgMC42ODA1MTMiLCBcCi0gICAgICAgICAgIjAuMDUzMjc5LCAwLjE2NjMyNywgMC4yNjYzODEsIDAuMzM3MjQyLCAwLjQ1MDk1NSwgMC41NTAyOTYsIDAuNjkyMTA3IiwgXAotICAgICAgICAgICIwLjA1NzA5MiwgMC4xNzY2NzUsIDAuMjc2Njc1LCAwLjM0Nzk1LCAwLjQ2MjIyLCAwLjU2MTQzMSwgMC43MDM1NjEiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTE4ODYsIDAuMjYxODg4LCAwLjQ3MjIxNSwgMC42MjI2NDEsIDAuODYyNzY1LCAxLjA3MzQxLCAxLjM3MzkxIiwgXAotICAgICAgICAgICIwLjA1MzQ1MywgMC4yNjE4NTgsIDAuNDcyMTksIDAuNjIyNDk4LCAwLjg2Mjg5NywgMS4wNzMyOCwgMS4zNzM4NCIsIFwKLSAgICAgICAgICAiMC4wNTg2MzgsIDAuMjYyMjg3LCAwLjQ3MjE5NywgMC42MjI0ODUsIDAuODYyOTI1LCAxLjA3MzQxLCAxLjM3MzkzIiwgXAotICAgICAgICAgICIwLjA2NTEwMSwgMC4yNjQzMjEsIDAuNDcyMzA1LCAwLjYyMjQ5OSwgMC44NjI4NDEsIDEuMDczMjIsIDEuMzczODIiLCBcCi0gICAgICAgICAgIjAuMDcxNjU1LCAwLjI2NzY0NCwgMC40NzM1NzIsIDAuNjIyNzc4LCAwLjg2Mjk0OCwgMS4wNzMxOSwgMS4zNzM3OCIsIFwKLSAgICAgICAgICAiMC4wODE0NSwgMC4yNzQyMiwgMC40NzczMTEsIDAuNjI0ODQ1LCAwLjg2MzMwNywgMS4wNzMyMywgMS4zNzM4OSIsIFwKLSAgICAgICAgICAiMC4wODk1NjEsIDAuMjgxMjg4LCAwLjQ4MTc1OSwgMC42MjgxNTksIDAuODY1MTI1LCAxLjA3Mzc4LCAxLjM3MzgxIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDI5MjA1LCAwLjEyNTQ2OSwgMC4yMjEyMTYsIDAuMjg5OTMxLCAwLjQwMDY1MSwgMC40OTc5MzcsIDAuNjM2Mjc4IiwgXAotICAgICAgICAgICIwLjAzNjg3NywgMC4xMzMwNzUsIDAuMjI4ODUsIDAuMjk3MzY3LCAwLjQwODE3MSwgMC41MDUzMzUsIDAuNjQzNjAzIiwgXAotICAgICAgICAgICIwLjA0NjY2NCwgMC4xNDI3NjMsIDAuMjM4Njg2LCAwLjMwNzE1OSwgMC40MTc5NzUsIDAuNTE0ODcxLCAwLjY1MzQ1IiwgXAotICAgICAgICAgICIwLjA1NTQ1NSwgMC4xNTI1ODMsIDAuMjQ4MzkxLCAwLjMxNzA1NywgMC40Mjc5NDUsIDAuNTI1MjAzLCAwLjY2MzQ1NCIsIFwKLSAgICAgICAgICAiMC4wNjE5ODUsIDAuMTYyMjQzLCAwLjI1Nzg5NywgMC4zMjY0OTgsIDAuNDM3Mjc0LCAwLjUzNDUzNiwgMC42NzMxNTkiLCBcCi0gICAgICAgICAgIjAuMDcxNDUsIDAuMTc4NDU4LCAwLjI3Mzc2OCwgMC4zNDIzMTMsIDAuNDUzMDgxLCAwLjU0OTkzNSwgMC42ODg2MTMiLCBcCi0gICAgICAgICAgIjAuMDc4MjM5LCAwLjE5MjY4NiwgMC4yODc3LCAwLjM1NjMyOCwgMC40NjcwMTQsIDAuNTYzODQ5LCAwLjcwMjU5MyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0OTc5NSwgMC4yNDc3NjUsIDAuNDQ4MzA4LCAwLjU5MTk1NywgMC44MjExNywgMS4wMjE5NywgMS4zMDgzMSIsIFwKLSAgICAgICAgICAiMC4wNTE2MTcsIDAuMjQ3NjYxLCAwLjQ0ODI3OCwgMC41OTE2OTUsIDAuODIxMjM0LCAxLjAyMTUzLCAxLjMwODYzIiwgXAotICAgICAgICAgICIwLjA1ODg1MywgMC4yNDc5MjIsIDAuNDQ4MzA4LCAwLjU5MTc4OSwgMC44MjA4ODQsIDEuMDIxNjYsIDEuMzA4NDIiLCBcCi0gICAgICAgICAgIjAuMDY3MDk0LCAwLjI1MDY5OCwgMC40NDg0NTksIDAuNTkxNzU2LCAwLjgyMTE5OCwgMS4wMjE5NSwgMS4zMDgyOSIsIFwKLSAgICAgICAgICAiMC4wNzU2MTQsIDAuMjU1NDU1LCAwLjQ1MDE0OSwgMC41OTE3OTgsIDAuODIxMjM1LCAxLjAyMTcxLCAxLjMwODI0IiwgXAotICAgICAgICAgICIwLjA4NzA4MiwgMC4yNjU0MDgsIDAuNDU1MjgsIDAuNTk0NjMxLCAwLjgyMTQ1OCwgMS4wMjE3NywgMS4zMDgyIiwgXAotICAgICAgICAgICIwLjA5NjQ5OSwgMC4yNzU1NDUsIDAuNDYxNjIzLCAwLjU5OTE3LCAwLjgyMzExLCAxLjAyMTg3LCAxLjMwODk3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIxIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyMzk5LCAwLjEyMzkwNiwgMC4yMjM2MjksIDAuMjk0NzI5LCAwLjQwODQ1OCwgMC41MDc2OTUsIDAuNjQ5NjIxIiwgXAotICAgICAgICAgICIwLjAzMTQ1MSwgMC4xMzE1NSwgMC4yMzEyNTYsIDAuMzAyMzYyLCAwLjQxNjA2NSwgMC41MTU0MzEsIDAuNjU3MTkzIiwgXAotICAgICAgICAgICIwLjA0MDU4LCAwLjE0MDk5OCwgMC4yNDA2OSwgMC4zMTE4NzMsIDAuNDI1NTEzLCAwLjUyNDkxLCAwLjY2NjcyOSIsIFwKLSAgICAgICAgICAiMC4wNDcyNDMsIDAuMTUwNzUyLCAwLjI1MDM4NCwgMC4zMjE0OTksIDAuNDM1MTU0LCAwLjUzNDQ5NCwgMC42NzYyNyIsIFwKLSAgICAgICAgICAiMC4wNTI4NTUsIDAuMTYwMzcyLCAwLjI2MDAwNywgMC4zMzExMDIsIDAuNDQ0NzM4LCAwLjU0NDA5LCAwLjY4NTgyOSIsIFwKLSAgICAgICAgICAiMC4wNTk3MSwgMC4xNzYwOTgsIDAuMjc1NTA3LCAwLjM0NjU5MSwgMC40NjAxMzgsIDAuNTU5NTQyLCAwLjcwMTE2IiwgXAotICAgICAgICAgICIwLjA2NDkzMywgMC4xODk5NjEsIDAuMjg5MTk0LCAwLjM2MDE1LCAwLjQ3MzY4MywgMC41NzI5NzcsIDAuNzE0NjIxIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDUxODc5LCAwLjI2MTg4NSwgMC40NzIyNzYsIDAuNjIyNDA1LCAwLjg2Mjk3MywgMS4wNzMzMiwgMS4zNzM5IiwgXAotICAgICAgICAgICIwLjA1NDg3OSwgMC4yNjE4ODEsIDAuNDcyMjAzLCAwLjYyMjQ3MywgMC44NjMwNTUsIDEuMDczMjQsIDEuMzczNzUiLCBcCi0gICAgICAgICAgIjAuMDYyODgsIDAuMjYyMzA5LCAwLjQ3MjIxNiwgMC42MjI0MjcsIDAuODYyODgyLCAxLjA3MzQsIDEuMzczOTIiLCBcCi0gICAgICAgICAgIjAuMDcxODc1LCAwLjI2NTI4MiwgMC40NzIyMzIsIDAuNjIyMzg5LCAwLjg2MjkyNiwgMS4wNzMyNiwgMS4zNzM3NiIsIFwKLSAgICAgICAgICAiMC4wODA0MTYsIDAuMjcwMjY1LCAwLjQ3Mzg0NSwgMC42MjI1NzksIDAuODYyOTEsIDEuMDczMjgsIDEuMzczNzUiLCBcCi0gICAgICAgICAgIjAuMDkyMjU5LCAwLjI4MDQxOSwgMC40NzkyNTMsIDAuNjI1NDc3LCAwLjg2MzA2OCwgMS4wNzMzNiwgMS4zNzM3NCIsIFwKLSAgICAgICAgICAiMC4xMDE1NDIsIDAuMjkwODQyLCAwLjQ4NTk5MiwgMC42MzAwODgsIDAuODY1MDUxLCAxLjA3MzQyLCAxLjM3MzciKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjY2OTIsIDAuMTI0MTY3LCAwLjIyMTI1MiwgMC4yOTA1OTYsIDAuNDAxMzA4LCAwLjQ5ODYzOCwgMC42Mzc1NzciLCBcCi0gICAgICAgICAgIjAuMDM0Mjk5LCAwLjEzMTkxMywgMC4yMjg5MzIsIDAuMjk4MjQ4LCAwLjQwOTI3MiwgMC41MDYxMTMsIDAuNjQ1MzUxIiwgXAotICAgICAgICAgICIwLjA0MzkyMywgMC4xNDE0MzIsIDAuMjM4NDc2LCAwLjMwNzc3OSwgMC40MTg2NjQsIDAuNTE1NzgzLCAwLjY1NDcwMiIsIFwKLSAgICAgICAgICAiMC4wNTE2NjIsIDAuMTUxMzEzLCAwLjI0ODU5NSwgMC4zMTc5ODksIDAuNDI4NzU2LCAwLjUyNjA3MywgMC42NjQ3NTIiLCBcCi0gICAgICAgICAgIjAuMDU4MDk4LCAwLjE2MTAwNCwgMC4yNTgwMTksIDAuMzI3MzI2LCAwLjQzODQzNSwgMC41MzU0MzcsIDAuNjc0NjUiLCBcCi0gICAgICAgICAgIjAuMDY2NTAzLCAwLjE3NzA5NiwgMC4yNzM4NTgsIDAuMzQzMTE5LCAwLjQ1MzkxNiwgMC41NTA4MDcsIDAuNjg5OTUxIiwgXAotICAgICAgICAgICIwLjA3MjYxMSwgMC4xOTEzNTgsIDAuMjg3ODM3LCAwLjM1Njk2NSwgMC40Njc3OTQsIDAuNTY0NywgMC43MDQwODIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDY2MTUsIDAuMjQ3NTM1LCAwLjQ0ODM5MSwgMC41OTI1MjMsIDAuODI1MDgxLCAxLjAyNTk1LCAxLjMxNDEyIiwgXAotICAgICAgICAgICIwLjA0ODYyNywgMC4yNDc0ODcsIDAuNDQ4Mjk4LCAwLjU5MjMzMywgMC44MjMxNzksIDEuMDI3NzgsIDEuMzE0MDciLCBcCi0gICAgICAgICAgIjAuMDU2MTU1LCAwLjI0NzgwMywgMC40NDg1MTUsIDAuNTkzMzUxLCAwLjgyMzY1MSwgMS4wMjUyMSwgMS4zMTc0IiwgXAotICAgICAgICAgICIwLjA2NDk1OCwgMC4yNTA0MjgsIDAuNDQ4MzE2LCAwLjU5MjMwMSwgMC44MjM2NSwgMS4wMjU2MiwgMS4zMTcyOCIsIFwKLSAgICAgICAgICAiMC4wNzI4NTksIDAuMjU1MDk1LCAwLjQ1MDAxMywgMC41OTIwMjYsIDAuODIzODMxLCAxLjAyNTMzLCAxLjMxNDcyIiwgXAotICAgICAgICAgICIwLjA4NDQ3MSwgMC4yNjQ5NjQsIDAuNDU1MzIxLCAwLjU5NjA2OSwgMC44MjMxODgsIDEuMDI1OTUsIDEuMzE0MzUiLCBcCi0gICAgICAgICAgIjAuMDkzOTE5LCAwLjI3NTA2MywgMC40NjEzNjksIDAuNTk5NjE3LCAwLjgyNzA5MiwgMS4wMjc4OCwgMS4zMTQyNiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxNzI1NCwgMC4wMTcyNjUsIDAuMDE3MjY1LCAwLjAxNzI2NiwgMC4wMTcyNjUsIDAuMDE3MjYzLCAwLjAxNzI2IiwgXAotICAgICAgICAgICIwLjAxNzE0MSwgMC4wMTcyMDgsIDAuMDE3MjE3LCAwLjAxNzIyLCAwLjAxNzIyMSwgMC4wMTcyMjEsIDAuMDE3MjIxIiwgXAotICAgICAgICAgICIwLjAxNzE1MiwgMC4wMTcxOTksIDAuMDE3MjEsIDAuMDE3MjEzLCAwLjAxNzIxNSwgMC4wMTcyMTQsIDAuMDE3MjE1IiwgXAotICAgICAgICAgICIwLjAxNzI3OCwgMC4wMTcyMjksIDAuMDE3MjI5LCAwLjAxNzIyNSwgMC4wMTcyMzEsIDAuMDE3MjMyLCAwLjAxNzIxOSIsIFwKLSAgICAgICAgICAiMC4wMTc0OTEsIDAuMDE3MzAyLCAwLjAxNzI3MywgMC4wMTcyNiwgMC4wMTcyNSwgMC4wMTcyNDYsIDAuMDE3MjQzIiwgXAotICAgICAgICAgICIwLjAxNzk2OSwgMC4wMTc0NjksIDAuMDE3Mzg5LCAwLjAxNzM1MywgMC4wMTczMiwgMC4wMTczMDUsIDAuMDE3MjgyIiwgXAotICAgICAgICAgICIwLjAxODQ5NSwgMC4wMTc2OTgsIDAuMDE3NTMyLCAwLjAxNzQ3MywgMC4wMTc0MTcsIDAuMDE3Mzg3LCAwLjAxNzM1OCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzNDExLCAwLjAwMzQzNiwgMC4wMDM0MzksIDAuMDAzNDM5LCAwLjAwMzQ0LCAwLjAwMzQ0LCAwLjAwMzQ0IiwgXAotICAgICAgICAgICIwLjAwMzIzNiwgMC4wMDMzNTEsIDAuMDAzMzcsIDAuMDAzMzc1LCAwLjAwMzM4MSwgMC4wMDMzODMsIDAuMDAzMzgzIiwgXAotICAgICAgICAgICIwLjAwMzE3NywgMC4wMDMzMTQsIDAuMDAzMzQ0LCAwLjAwMzM1NCwgMC4wMDMzNjIsIDAuMDAzMzY3LCAwLjAwMzM3MSIsIFwKLSAgICAgICAgICAiMC4wMDMyMzIsIDAuMDAzMzEyLCAwLjAwMzM0MSwgMC4wMDMzNTEsIDAuMDAzMzYsIDAuMDAzMzY1LCAwLjAwMzM2OCIsIFwKLSAgICAgICAgICAiMC4wMDMzNjMsIDAuMDAzMzQ2LCAwLjAwMzM2LCAwLjAwMzM2NCwgMC4wMDMzNjksIDAuMDAzMzcxLCAwLjAwMzM3NCIsIFwKLSAgICAgICAgICAiMC4wMDM3MTEsIDAuMDAzNDY5LCAwLjAwMzQzNiwgMC4wMDM0MjUsIDAuMDAzNDE2LCAwLjAwMzQwOSwgMC4wMDM0MDQiLCBcCi0gICAgICAgICAgIjAuMDA0MTU0LCAwLjAwMzY0NywgMC4wMDM1NSwgMC4wMDM1MTYsIDAuMDAzNDg2LCAwLjAwMzQ3MSwgMC4wMDM0NTMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTU0NDksIDAuMDE1NDc1LCAwLjAxNTQ3NywgMC4wMTU0NzgsIDAuMDE1NDc2LCAwLjAxNTQ3NSwgMC4wMTU0NzgiLCBcCi0gICAgICAgICAgIjAuMDE1MzQzLCAwLjAxNTQxMiwgMC4wMTU0MjIsIDAuMDE1NDI2LCAwLjAxNTQyNywgMC4wMTU0MjksIDAuMDE1NDM0IiwgXAotICAgICAgICAgICIwLjAxNTUxMywgMC4wMTU0NDYsIDAuMDE1NDQ0LCAwLjAxNTQ0MSwgMC4wMTU0MzcsIDAuMDE1NDM2LCAwLjAxNTQzMyIsIFwKLSAgICAgICAgICAiMC4wMTU3NCwgMC4wMTU1NjMsIDAuMDE1NTEsIDAuMDE1NDkzLCAwLjAxNTQ3NCwgMC4wMTU0NjgsIDAuMDE1NDU2IiwgXAotICAgICAgICAgICIwLjAxNjEzOSwgMC4wMTU2NzUsIDAuMDE1NTc5LCAwLjAxNTU1NCwgMC4wMTU1MjUsIDAuMDE1NTA3LCAwLjAxNTQ4OCIsIFwKLSAgICAgICAgICAiMC4wMTY4MDksIDAuMDE1OTQzLCAwLjAxNTc3LCAwLjAxNTcwMiwgMC4wMTU2NDMsIDAuMDE1NjA3LCAwLjAxNTU3IiwgXAotICAgICAgICAgICIwLjAxNzUwMiwgMC4wMTYyNjQsIDAuMDE1OTg3LCAwLjAxNTg3OSwgMC4wMTU3NjksIDAuMDE1NzIyLCAwLjAxNTY2NSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyMjIyLCAwLjAwMjMyNSwgMC4wMDIzMzcsIDAuMDAyMzQsIDAuMDAyMzQzLCAwLjAwMjM0NSwgMC4wMDIzNDYiLCBcCi0gICAgICAgICAgIjAuMDAxOTUzLCAwLjAwMjI3NywgMC4wMDIzMjksIDAuMDAyMzQ1LCAwLjAwMjM2LCAwLjAwMjM2OCwgMC4wMDIzNzQiLCBcCi0gICAgICAgICAgIjAuMDAxODEsIDAuMDAyMTkyLCAwLjAwMjI3OCwgMC4wMDIzMDYsIDAuMDAyMzMzLCAwLjAwMjM0NiwgMC4wMDIzNTkiLCBcCi0gICAgICAgICAgIjAuMDAxODMyLCAwLjAwMjE1MiwgMC4wMDIyNDcsIDAuMDAyMjgxLCAwLjAwMjMxNCwgMC4wMDIzMzEsIDAuMDAyMzQ2IiwgXAotICAgICAgICAgICIwLjAwMTk1OSwgMC4wMDIxNSwgMC4wMDIyNDIsIDAuMDAyMjc0LCAwLjAwMjMwNywgMC4wMDIzMjUsIDAuMDAyMzQyIiwgXAotICAgICAgICAgICIwLjAwMjMwNywgMC4wMDIyMjgsIDAuMDAyMjc5LCAwLjAwMjMwMywgMC4wMDIzMjgsIDAuMDAyMzQzLCAwLjAwMjM1NiIsIFwKLSAgICAgICAgICAiMC4wMDI3MzYsIDAuMDAyMzY4LCAwLjAwMjM2NSwgMC4wMDIzNjksIDAuMDAyMzc4LCAwLjAwMjM4NiwgMC4wMDIzOTEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTE4NjcsIDAuMDExOTQ1LCAwLjAxMTk1MywgMC4wMTE5NTUsIDAuMDExOTU3LCAwLjAxMTk1NywgMC4wMTE5NTkiLCBcCi0gICAgICAgICAgIjAuMDExNjk4LCAwLjAxMTkyMiwgMC4wMTE5NTUsIDAuMDExOTY1LCAwLjAxMTk2MiwgMC4wMTE5OCwgMC4wMTE5ODQiLCBcCi0gICAgICAgICAgIjAuMDExNjg2LCAwLjAxMTg4OSwgMC4wMTE5MzYsIDAuMDExOTUsIDAuMDExOTcsIDAuMDExOTgsIDAuMDExOTgxIiwgXAotICAgICAgICAgICIwLjAxMTgyMSwgMC4wMTE4OTksIDAuMDExOTM3LCAwLjAxMTk1NSwgMC4wMTE5NywgMC4wMTE5NzYsIDAuMDExOTg0IiwgXAotICAgICAgICAgICIwLjAxMjA1NCwgMC4wMTE5NTQsIDAuMDExOTc0LCAwLjAxMTk4LCAwLjAxMTk5MiwgMC4wMTE5OTIsIDAuMDEyMDAxIiwgXAotICAgICAgICAgICIwLjAxMjU2NCwgMC4wMTIxMDYsIDAuMDEyMDcsIDAuMDEyMDUxLCAwLjAxMjAzOCwgMC4wMTIwMzUsIDAuMDEyMDMyIiwgXAotICAgICAgICAgICIwLjAxMzExNywgMC4wMTIyOTQsIDAuMDEyMiwgMC4wMTIxNjcsIDAuMDEyMTI3LCAwLjAxMjExMiwgMC4wMTIwOTIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzM5OSwgMC4wMDM0MzEsIDAuMDAzNDM0LCAwLjAwMzQzNiwgMC4wMDM0MzYsIDAuMDAzNDM2LCAwLjAwMzQzNiIsIFwKLSAgICAgICAgICAiMC4wMDMyOTQsIDAuMDAzMzY3LCAwLjAwMzM4LCAwLjAwMzM4NCwgMC4wMDMzODIsIDAuMDAzMzgzLCAwLjAwMzM4NCIsIFwKLSAgICAgICAgICAiMC4wMDM0ODEsIDAuMDAzNDA3LCAwLjAwMzM4OCwgMC4wMDMzOTUsIDAuMDAzMzkyLCAwLjAwMzM5MSwgMC4wMDMzODkiLCBcCi0gICAgICAgICAgIjAuMDAzODA3LCAwLjAwMzQ5OCwgMC4wMDM0NTgsIDAuMDAzNDM0LCAwLjAwMzQyNCwgMC4wMDM0MTIsIDAuMDAzNDA2IiwgXAotICAgICAgICAgICIwLjAwNDA2NiwgMC4wMDM2OTUsIDAuMDAzNTg2LCAwLjAwMzU0MiwgMC4wMDM0ODQsIDAuMDAzNDY0LCAwLjAwMzQ0NyIsIFwKLSAgICAgICAgICAiMC4wMDQ4MjUsIDAuMDAzOTg2LCAwLjAwMzc3NSwgMC4wMDM2OTYsIDAuMDAzNjMsIDAuMDAzNTg4LCAwLjAwMzU0NSIsIFwKLSAgICAgICAgICAiMC4wMDU1NTMsIDAuMDA0Mjk5LCAwLjAwMzk5OCwgMC4wMDM4NzYsIDAuMDAzNzU4LCAwLjAwMzcxMSwgMC4wMDM2NDciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTAwNjMsIDAuMDEwMTY3LCAwLjAxMDE3OCwgMC4wMTAxODEsIDAuMDEwMTgyLCAwLjAxMDE4NSwgMC4wMTAxODYiLCBcCi0gICAgICAgICAgIjAuMDA5OTM4LCAwLjAxMDE0OSwgMC4wMTAxODMsIDAuMDEwMTk0LCAwLjAxMDIwNywgMC4wMTAyMTMsIDAuMDEwMjA5IiwgXAotICAgICAgICAgICIwLjAxMDA1MSwgMC4wMTAxNjksIDAuMDEwMTk0LCAwLjAxMDIwMiwgMC4wMTAyMTEsIDAuMDEwMjEyLCAwLjAxMDIxOCIsIFwKLSAgICAgICAgICAiMC4wMTA0NzksIDAuMDEwMjQ3LCAwLjAxMDIzNywgMC4wMTAyMzYsIDAuMDEwMjMxLCAwLjAxMDIzMiwgMC4wMTAyMyIsIFwKLSAgICAgICAgICAiMC4wMTA3MzMsIDAuMDEwMzU1LCAwLjAxMDMxMiwgMC4wMTAyOTgsIDAuMDEwMjgxLCAwLjAxMDI3MywgMC4wMTAyNjQiLCBcCi0gICAgICAgICAgIjAuMDExNDM4LCAwLjAxMDYwMiwgMC4wMTA0NzEsIDAuMDEwNDIyLCAwLjAxMDM4OSwgMC4wMTAzNjcsIDAuMDEwMzI1IiwgXAotICAgICAgICAgICIwLjAxMjA1NywgMC4wMTA5LCAwLjAxMDY3LCAwLjAxMDU4MiwgMC4wMTA1MTYsIDAuMDEwNDYzLCAwLjAxMDQwOCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyMjIxLCAwLjAwMjMzMSwgMC4wMDIzNDMsIDAuMDAyMzQ4LCAwLjAwMjM1MSwgMC4wMDIzNTMsIDAuMDAyMzUzIiwgXAotICAgICAgICAgICIwLjAwMjA1OCwgMC4wMDIzMDUsIDAuMDAyMzUxLCAwLjAwMjM2NCwgMC4wMDIzNzUsIDAuMDAyMzgxLCAwLjAwMjM4NyIsIFwKLSAgICAgICAgICAiMC4wMDIxNzEsIDAuMDAyMzIzLCAwLjAwMjM1OCwgMC4wMDIzNywgMC4wMDIzODEsIDAuMDAyMzg3LCAwLjAwMjM5MyIsIFwKLSAgICAgICAgICAiMC4wMDI0NCwgMC4wMDIzNjEsIDAuMDAyMzcyLCAwLjAwMjM4NCwgMC4wMDIzOTIsIDAuMDAyMzk2LCAwLjAwMjQwMSIsIFwKLSAgICAgICAgICAiMC4wMDI3MTUsIDAuMDAyNTIxLCAwLjAwMjQ4NCwgMC4wMDI0NjcsIDAuMDAyNDM4LCAwLjAwMjQzNCwgMC4wMDI0MyIsIFwKLSAgICAgICAgICAiMC4wMDM0MywgMC4wMDI3NDgsIDAuMDAyNjMyLCAwLjAwMjYwNSwgMC4wMDI1NTcsIDAuMDAyNTMzLCAwLjAwMjUwOSIsIFwKLSAgICAgICAgICAiMC4wMDQxMTgsIDAuMDAzMDMzLCAwLjAwMjgyMSwgMC4wMDI3MzksIDAuMDAyNjgzLCAwLjAwMjYzNywgMC4wMDI1OTMiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IE9BSTJCQjFYMSAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKE9BSTJCQjFYMSkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjI5NTQ4MTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQTBOKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2ODUzMTM7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjg1MzEzOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDY4NDU1NzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyOTYsIDAuMDAwMjk2LCAwLjAwMDI5NiwgMC4wMDAyOTYsIDAuMDAwMjk2LCAwLjAwMDI5NiwgMC4wMDAyOTYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAzMTYsIDAuMDAwMzA1LCAwLjAwMDMwMSwgMC4wMDAyOTksIDAuMDAwMjk4LCAwLjAwMDI5OCwgMC4wMDAyOTgiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEExTikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjQ2NDQyOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDY0NjM1OTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2NDY0NDI7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMTQzLCAwLjAwMDE0MywgMC4wMDAxNDMsIDAuMDAwMTQzLCAwLjAwMDE0MywgMC4wMDAxNDMsIDAuMDAwMTQzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzM3LCAwLjAwMDMzOCwgMC4wMDAzMzgsIDAuMDAwMzM4LCAwLjAwMDMzOCwgMC4wMDAzMzgsIDAuMDAwMzM4Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwOTU4MjMxOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDk1ODIzMTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA5NTY3OTE7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNTI0LCAwLjAwMDUyNCwgMC4wMDA1MjQsIDAuMDAwNTIzLCAwLjAwMDUyMywgMC4wMDA1MjQsIDAuMDAwNTI0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNTUyLCAwLjAwMDUzNSwgMC4wMDA1MjksIDAuMDAwNTI3LCAwLjAwMDUyNiwgMC4wMDA1MjYsIDAuMDAwNTI3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMjAyMzUyOwotICAgIGZ1bmN0aW9uIDogIighKCghKEEwTiBBMU4pKSBCMCkpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBME4iOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2MTg4NSwgMC4wODAzMjEsIDAuMTg0MjM2LCAwLjI3NTk2NiwgMC4zOTgxOTcsIDAuNjQyNjI0LCAwLjc5NTQzMyIsIFwKLSAgICAgICAgICAiMC4wNjc4OTMsIDAuMDg2MzMzLCAwLjE5MDI2NywgMC4yODIwODIsIDAuNDA0MjMsIDAuNjQ4Nzk5LCAwLjgwMTUwOCIsIFwKLSAgICAgICAgICAiMC4wNzQ2NzcsIDAuMDkzMTA3LCAwLjE5NzAxOCwgMC4yODg3NDMsIDAuNDExMzExLCAwLjY1NTU3MSwgMC44MDg3OTYiLCBcCi0gICAgICAgICAgIjAuMDgwMzcxLCAwLjA5ODgyMSwgMC4yMDI3NDYsIDAuMjk0NDE4LCAwLjQxNjcxMSwgMC42NjEzNzIsIDAuODEzODYyIiwgXAotICAgICAgICAgICIwLjA4NTA0MywgMC4xMDM1NzQsIDAuMjA3NDksIDAuMjk5MTY3LCAwLjQyMTQ1MSwgMC42NjU5NDgsIDAuODE4Nzc5IiwgXAotICAgICAgICAgICIwLjA5MTU0LCAwLjExMDE1NSwgMC4yMTQwOSwgMC4zMDU4MTEsIDAuNDI4MDgsIDAuNjcyNTcsIDAuODI1NDE0IiwgXAotICAgICAgICAgICIwLjA5NjcyMywgMC4xMTUzNjUsIDAuMjE5MzI1LCAwLjMxMDk0MywgMC40MzMxNDcsIDAuNjc3NzM2LCAwLjgzMDUyNCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzM2MDMsIDAuMTExMjM0LCAwLjMyODQyNiwgMC41MjAzNDIsIDAuNzc3OTEsIDEuMjkwNzksIDEuNjE0NjMiLCBcCi0gICAgICAgICAgIjAuMDczNjAzLCAwLjExMTI1NCwgMC4zMjgyMiwgMC41MjA4MjEsIDAuNzc4MDI1LCAxLjI5MTkyLCAxLjYxMTQ5IiwgXAotICAgICAgICAgICIwLjA3NDAyLCAwLjExMTQ3OCwgMC4zMjgzMjgsIDAuNTIxMDgzLCAwLjc3Nzg1MSwgMS4yOTEyNiwgMS42MTI3MSIsIFwKLSAgICAgICAgICAiMC4wNzQ1OTgsIDAuMTExODkxLCAwLjMyODgyMSwgMC41MjE1ODYsIDAuNzc3ODQ1LCAxLjI5MTMxLCAxLjYxMzg5IiwgXAotICAgICAgICAgICIwLjA3NTI4NiwgMC4xMTIzMywgMC4zMjg5NDQsIDAuNTIwOTc3LCAwLjc3NzIwMSwgMS4yOTA2MSwgMS42MTIyNiIsIFwKLSAgICAgICAgICAiMC4wNzYyMTgsIDAuMTEzMDUsIDAuMzI4ODMxLCAwLjUyMDc2OCwgMC43NzcyMzIsIDEuMjkxMjEsIDEuNjEzMzMiLCBcCi0gICAgICAgICAgIjAuMDc2OTQxLCAwLjExMzcxNywgMC4zMjg4MzQsIDAuNTIxMTA2LCAwLjc3ODgxNywgMS4yOTA2NCwgMS42MTE1OSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzc2MTMsIDAuMTA5Mzc2LCAwLjI4OTA3MSwgMC40NDc1NjYsIDAuNjU4ODU2LCAxLjA4MTQ1LCAxLjM0NTY2IiwgXAotICAgICAgICAgICIwLjA4NTM3LCAwLjExNzE1NywgMC4yOTY4NzYsIDAuNDU1MzczLCAwLjY2NjY3NiwgMS4wODkyNywgMS4zNTMzOSIsIFwKLSAgICAgICAgICAiMC4wOTI5NDYsIDAuMTI0NzQxLCAwLjMwNDQ3MSwgMC40NjI5NywgMC42NzQyNjcsIDEuMDk2ODcsIDEuMzYxMDUiLCBcCi0gICAgICAgICAgIjAuMDk4MzQsIDAuMTMwMTE0LCAwLjMwOTg3MSwgMC40NjgzNTIsIDAuNjc5Njk3LCAxLjEwMjIzLCAxLjM2NjM0IiwgXAotICAgICAgICAgICIwLjEwMjY2NSwgMC4xMzQ0MTksIDAuMzE0MjA3LCAwLjQ3MjczMiwgMC42ODQwMDgsIDEuMTA2NTcsIDEuMzcwNzMiLCBcCi0gICAgICAgICAgIjAuMTA4MzQ5LCAwLjEzOTk2NywgMC4zMTk5NDIsIDAuNDc4MTU0LCAwLjY4OTQzOSwgMS4xMTIxOSwgMS4zNzYyNCIsIFwKLSAgICAgICAgICAiMC4xMTI0ODIsIDAuMTQ0MjY3LCAwLjMyMzk5OSwgMC40ODI1MjIsIDAuNjkzODAyLCAxLjExNjQ0LCAxLjM4MDc4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEyMDcxMywgMC4xODU1NDgsIDAuNTU1MTU2LCAwLjg4MDQ5MywgMS4zMTQ1NiwgMi4xODM0NiwgMi43MjI4MyIsIFwKLSAgICAgICAgICAiMC4xMjA3MjgsIDAuMTg1NDQ4LCAwLjU1NDY0NSwgMC44ODA0MjYsIDEuMzE0NjQsIDIuMTgzMzUsIDIuNzI1ODUiLCBcCi0gICAgICAgICAgIjAuMTIwNzc2LCAwLjE4NTQ2LCAwLjU1NTE3NywgMC44ODAyMTgsIDEuMzE1OTEsIDIuMTgzMTUsIDIuNzI5MzYiLCBcCi0gICAgICAgICAgIjAuMTIwOTEyLCAwLjE4NTkyNywgMC41NTUxNTIsIDAuODgxMTk4LCAxLjMxNTkyLCAyLjE4NTY1LCAyLjcyNTU4IiwgXAotICAgICAgICAgICIwLjEyMTIzNiwgMC4xODU4NzYsIDAuNTU1MDc2LCAwLjg3OTk1OCwgMS4zMTU5NCwgMi4xODU2NCwgMi43MjkyNiIsIFwKLSAgICAgICAgICAiMC4xMjE1ODcsIDAuMTg1OTM0LCAwLjU1NDYyOCwgMC44ODEwMDksIDEuMzE1NiwgMi4xODU0NCwgMi43Mjg5NSIsIFwKLSAgICAgICAgICAiMC4xMjIxNTIsIDAuMTg2MTA2LCAwLjU1NDY0NiwgMC44ODEwMTgsIDEuMzE1NjYsIDIuMTgxNDcsIDIuNzIzODkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTFOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjAzNzYsIDAuMDc4ODQ1LCAwLjE4Mjc0MSwgMC4yNzQzNjQsIDAuMzk2NzI0LCAwLjY0MTQ1MiwgMC43OTM4NzEiLCBcCi0gICAgICAgICAgIjAuMDY3NzY1LCAwLjA4NjE5OSwgMC4xOTAxNTQsIDAuMjgxNjg0LCAwLjQwNDE3LCAwLjY0ODYwOSwgMC44MDEzMDUiLCBcCi0gICAgICAgICAgIjAuMDc2NDksIDAuMDk0OTIsIDAuMTk4ODM3LCAwLjI5MDUxNiwgMC40MTI4NTksIDAuNjU3MzA3LCAwLjgwOTk3MSIsIFwKLSAgICAgICAgICAiMC4wODMzNzQsIDAuMTAxNzY3LCAwLjIwNTcxMSwgMC4yOTczODQsIDAuNDE5NjY2LCAwLjY2NDMyMiwgMC44MTY5MDIiLCBcCi0gICAgICAgICAgIjAuMDg5MTczLCAwLjEwNzc2MSwgMC4yMTE1NTUsIDAuMzAzMzY2LCAwLjQyNTYzLCAwLjY3MDEzNCwgMC44MjI3OTIiLCBcCi0gICAgICAgICAgIjAuMDk2OTEsIDAuMTE1NDUxLCAwLjIxOTQyOCwgMC4zMTEwNzMsIDAuNDMzMzE5LCAwLjY3Nzc2OSwgMC44MzA4ODEiLCBcCi0gICAgICAgICAgIjAuMTAyODk4LCAwLjEyMTUwMSwgMC4yMjU0NCwgMC4zMTcwNTcsIDAuNDM5MjgzLCAwLjY4Mzc4OCwgMC44MzY5MTQiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDczNjA1LCAwLjExMTE5NywgMC4zMjgwNjYsIDAuNTIwMjM1LCAwLjc3Nzg4NiwgMS4yOTEzMSwgMS42MTE5OCIsIFwKLSAgICAgICAgICAiMC4wNzM1NTgsIDAuMTExMjU2LCAwLjMyODE5NywgMC41MjA4NzUsIDAuNzc4MDMyLCAxLjI5MDYxLCAxLjYxMTciLCBcCi0gICAgICAgICAgIjAuMDc0MDc2LCAwLjExMTQzNSwgMC4zMjgzNTEsIDAuNTIxMjM3LCAwLjc3ODA5MywgMS4yOTA2MiwgMS42MTQzNiIsIFwKLSAgICAgICAgICAiMC4wNzQ5MzMsIDAuMTEyMDU4LCAwLjMyODgzNCwgMC41MjE1OTQsIDAuNzc3Mjk3LCAxLjI5MTMsIDEuNjExNjciLCBcCi0gICAgICAgICAgIjAuMDc1NDE5LCAwLjExMjQwNSwgMC4zMjg1NzQsIDAuNTIwNzAzLCAwLjc3NzYxNCwgMS4yOTEyNSwgMS42MTE1MiIsIFwKLSAgICAgICAgICAiMC4wNzY0NTcsIDAuMTEzMTI1LCAwLjMyODQ2NywgMC41MjE3MywgMC43Nzc1MDcsIDEuMjkxLCAxLjYxMjM3IiwgXAotICAgICAgICAgICIwLjA3NzM0MSwgMC4xMTM5OSwgMC4zMjg4MDMsIDAuNTIxNDk3LCAwLjc3ODkxMiwgMS4yOTA5NiwgMS42MTIzOCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzYyMDksIDAuMTA3OTYyLCAwLjI4NzcwNSwgMC40NDYyNTYsIDAuNjU3NjYzLCAxLjA4MDg2LCAxLjM0NDUxIiwgXAotICAgICAgICAgICIwLjA4Mzc4NSwgMC4xMTU1NTYsIDAuMjk1NDMyLCAwLjQ1Mzg5LCAwLjY2NTI3OSwgMS4wODgzMiwgMS4zNTI3MyIsIFwKLSAgICAgICAgICAiMC4wOTA3NjYsIDAuMTIyNTU3LCAwLjMwMjUzMSwgMC40NjA5ODgsIDAuNjcyMjk5LCAxLjA5NTI3LCAxLjM1OTk4IiwgXAotICAgICAgICAgICIwLjA5NTYyNSwgMC4xMjc1MDksIDAuMzA3MjgyLCAwLjQ2NTg5MiwgMC42NzcyMzMsIDEuMTAwNDEsIDEuMzY0MjciLCBcCi0gICAgICAgICAgIjAuMDk5NywgMC4xMzEyNjYsIDAuMzExMjIsIDAuNDY5Njg0LCAwLjY4MTE2MiwgMS4xMDQwNCwgMS4zNjkxNyIsIFwKLSAgICAgICAgICAiMC4xMDQ3MDksIDAuMTM2NDA0LCAwLjMxNjI4MiwgMC40NzQ4OTgsIDAuNjg2NjM3LCAxLjEwODk3LCAxLjM3MzI0IiwgXAotICAgICAgICAgICIwLjEwODQzMSwgMC4xNDAyMDcsIDAuMzE5OTA2LCAwLjQ3ODU0NCwgMC42ODk4ODEsIDEuMTEzMTgsIDEuMzc3MDIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTIwNjE1LCAwLjE4NTUwNywgMC41NTQ2MTQsIDAuODgxODg2LCAxLjMxNDY3LCAyLjE4MjY5LCAyLjczMDg5IiwgXAotICAgICAgICAgICIwLjEyMDY0NiwgMC4xODUzNjMsIDAuNTU0MTIyLCAwLjg4NDE3OSwgMS4zMTYwNywgMi4xODQwNywgMi43MjQxIiwgXAotICAgICAgICAgICIwLjEyMDcyNSwgMC4xODU4ODcsIDAuNTU0MzA4LCAwLjg3OTgyNiwgMS4zMjA0NCwgMi4xODM1NiwgMi43MjQwOCIsIFwKLSAgICAgICAgICAiMC4xMjA5OTUsIDAuMTg1NzE5LCAwLjU1NDEzNSwgMC44Nzk1ODksIDEuMzE0NzksIDIuMTgxNTcsIDIuNzI2MzEiLCBcCi0gICAgICAgICAgIjAuMTIxMTYxLCAwLjE4NTgyNSwgMC41NTU1MTgsIDAuODc5ODQyLCAxLjMxNjg5LCAyLjE5MzExLCAyLjcyNTA1IiwgXAotICAgICAgICAgICIwLjEyMTcwOCwgMC4xODU5MiwgMC41NTU1NDksIDAuODgwNTczLCAxLjMxMzYxLCAyLjE5MzIxLCAyLjczODAzIiwgXAotICAgICAgICAgICIwLjEyMjE0MSwgMC4xODYwODksIDAuNTU1NTcxLCAwLjg4MTg4OCwgMS4zMTY3MSwgMi4xODMwMiwgMi43Mzg0NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM4MjE1LCAwLjA1Njg1LCAwLjE2MjUyNCwgMC4yNTU2MzIsIDAuMzc5ODQsIDAuNjI4NTIyLCAwLjc4MzgxOCIsIFwKLSAgICAgICAgICAiMC4wNDYzOTEsIDAuMDY1MDI4LCAwLjE3MDUwOSwgMC4yNjM2NywgMC4zODgxNzIsIDAuNjM2NjE5LCAwLjc5MTU4IiwgXAotICAgICAgICAgICIwLjA1NjgzNCwgMC4wNzUzNjMsIDAuMTgwODM2LCAwLjI3Mzg3NiwgMC4zOTgxMywgMC42NDY2NDYsIDAuODAxNzA5IiwgXAotICAgICAgICAgICIwLjA2NzA0NCwgMC4wODYwMiwgMC4xOTEyNjMsIDAuMjg0NDYyLCAwLjQwODQ4OSwgMC42NTY4NywgMC44MTE2ODgiLCBcCi0gICAgICAgICAgIjAuMDc1NDQ0LCAwLjA5NjU2NSwgMC4yMDE3OTUsIDAuMjk0ODM3LCAwLjQxODk2NywgMC42NjY5ODcsIDAuODIyMDk3IiwgXAotICAgICAgICAgICIwLjA4NjI5NiwgMC4xMTA5OTcsIDAuMjE4NTUsIDAuMzExNTE2LCAwLjQzNTYyNywgMC42ODM3NjMsIDAuODM4OTgxIiwgXAotICAgICAgICAgICIwLjA5NTA4MywgMC4xMjE2MDMsIDAuMjMzMzUzLCAwLjMyNjE1OSwgMC40NTAxMzYsIDAuNjk4NDQ1LCAwLjg1MzQ1NyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzMzMzYsIDAuMTEyNTM4LCAwLjMzNDY0MiwgMC41MzA0NjgsIDAuNzkxNDQ1LCAxLjMxNDAzLCAxLjY0MDU5IiwgXAotICAgICAgICAgICIwLjA3NDc0OCwgMC4xMTI4NzMsIDAuMzM0NTA2LCAwLjUzMDM4MSwgMC43OTE3NzYsIDEuMzE0MDgsIDEuNjQwNTUiLCBcCi0gICAgICAgICAgIjAuMDgxMzk2LCAwLjExNzQwNywgMC4zMzQ1MDEsIDAuNTMwMzksIDAuNzkxNywgMS4zMTM5NywgMS42NDAxIiwgXAotICAgICAgICAgICIwLjA4OTgyNywgMC4xMjQ0MTMsIDAuMzM1NzU2LCAwLjUzMDMzOSwgMC43OTE1OTUsIDEuMzE0MDIsIDEuNjM5NjciLCBcCi0gICAgICAgICAgIjAuMDk5MTc0LCAwLjEzMjYwNSwgMC4zMzkxNTcsIDAuNTMwNzE1LCAwLjc5MTIxOSwgMS4zMTMzMywgMS42NDA3NSIsIFwKLSAgICAgICAgICAiMC4xMTQ4OTksIDAuMTQ3MzQ3LCAwLjM0NzIyOCwgMC41MzQ5NTUsIDAuNzkxNzc4LCAxLjMxNDA3LCAxLjYzOTg1IiwgXAotICAgICAgICAgICIwLjEyNjI4NiwgMC4xNjA3NzYsIDAuMzU2MDcyLCAwLjU0MDUzOSwgMC43OTQyMzUsIDEuMzE0MDQsIDEuNjQwODEiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDYzNjksIDAuMDk1NDM1LCAwLjI3NTE4NSwgMC40MzM5NzgsIDAuNjQ1MTE3LCAxLjA2ODU1LCAxLjMzMzYiLCBcCi0gICAgICAgICAgIjAuMDcwMDc5LCAwLjEwMTkwMSwgMC4yODE3NjcsIDAuNDQwMjcyLCAwLjY1MTY0NSwgMS4wNzQzMiwgMS4zMzk2OCIsIFwKLSAgICAgICAgICAiMC4wNzgyMzYsIDAuMTA5OTkyLCAwLjI5MDI0MSwgMC40NDg2ODUsIDAuNjYwMDIsIDEuMDgyOTMsIDEuMzQ3NzciLCBcCi0gICAgICAgICAgIjAuMDg2NTUzLCAwLjExODIzOSwgMC4yOTg0MjQsIDAuNDU3MjQxLCAwLjY2ODUzNywgMS4wOTEyOSwgMS4zNTY1NSIsIFwKLSAgICAgICAgICAiMC4wOTQ2MzYsIDAuMTI2OTQ2LCAwLjMwNzAxNywgMC40NjU1NTUsIDAuNjc3MDc1LCAxLjEwMDAzLCAxLjM2Mzk4IiwgXAotICAgICAgICAgICIwLjEwNjE0NiwgMC4xMzk5MTQsIDAuMzIwMTc0LCAwLjQ3ODk0NSwgMC42OTA2ODcsIDEuMTEzNDcsIDEuMzc3OCIsIFwKLSAgICAgICAgICAiMC4xMTUyMTQsIDAuMTUwOTQzLCAwLjMzMTM5OCwgMC40OTA5OCwgMC43MDI2MzQsIDEuMTI1OCwgMS4zODk5NSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMjAzMDUsIDAuMTg1NzQ1LCAwLjU1NzA0MiwgMC44ODExMDcsIDEuMzE1NjUsIDIuMTg3MDgsIDIuNzI1NjgiLCBcCi0gICAgICAgICAgIjAuMTIwMzk5LCAwLjE4NTc2MywgMC41NTQyNzUsIDAuODgxODY3LCAxLjMyMDA3LCAyLjE4NywgMi43MjUyMiIsIFwKLSAgICAgICAgICAiMC4xMjI5NTcsIDAuMTg2NzYxLCAwLjU1NDMxMiwgMC44Nzk3MiwgMS4zMjA1NCwgMi4xOTI4OCwgMi43MjcwNCIsIFwKLSAgICAgICAgICAiMC4xMjc0NTQsIDAuMTg5MjcsIDAuNTU0OTk3LCAwLjg4MDYzOCwgMS4zMTY1OSwgMi4xOTI4OCwgMi43MjUzNyIsIFwKLSAgICAgICAgICAiMC4xMzI3NjMsIDAuMTkzOTY5LCAwLjU1NDY0LCAwLjg4MTc0NSwgMS4zMTUwMywgMi4xOTI1LCAyLjczODI3IiwgXAotICAgICAgICAgICIwLjE0MjYyLCAwLjIwMTg4NiwgMC41NTc2NDMsIDAuODgxODgzLCAxLjMxMzUxLCAyLjE4MjEyLCAyLjcyNTk5IiwgXAotICAgICAgICAgICIwLjE1MjI0NywgMC4yMTAxNywgMC41NjEyMDIsIDAuODgzMDcyLCAxLjMxNjc1LCAyLjE4MzE0LCAyLjcyNDQ1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTBOIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDIwNDMsIDAuMDAyMDQ2LCAwLjAwMjA1MiwgMC4wMDIwNTEsIDAuMDAyMDUyLCAwLjAwMjA1NCwgMC4wMDIwNTUiLCBcCi0gICAgICAgICAgIjAuMDAyMDA1LCAwLjAwMjAxMSwgMC4wMDIwMTgsIDAuMDAyMDIsIDAuMDAyMDIxLCAwLjAwMjAyMSwgMC4wMDIwMjIiLCBcCi0gICAgICAgICAgIjAuMDAyMDMzLCAwLjAwMjAzOSwgMC4wMDIwNDcsIDAuMDAyMDQ5LCAwLjAwMjA1LCAwLjAwMjA1MSwgMC4wMDIwNTEiLCBcCi0gICAgICAgICAgIjAuMDAyMDg5LCAwLjAwMjA5NywgMC4wMDIxMDgsIDAuMDAyMTEsIDAuMDAyMTExLCAwLjAwMjExMiwgMC4wMDIxMTEiLCBcCi0gICAgICAgICAgIjAuMDAyMTc5LCAwLjAwMjE4MywgMC4wMDIxOSwgMC4wMDIxOSwgMC4wMDIxOTIsIDAuMDAyMTkzLCAwLjAwMjE5MiIsIFwKLSAgICAgICAgICAiMC4wMDIzMzUsIDAuMDAyMzM4LCAwLjAwMjM0MiwgMC4wMDIzNDIsIDAuMDAyMzQ0LCAwLjAwMjM0NCwgMC4wMDIzNDQiLCBcCi0gICAgICAgICAgIjAuMDAyNDczLCAwLjAwMjQ4MSwgMC4wMDI0ODgsIDAuMDAyNDksIDAuMDAyNDkyLCAwLjAwMjQ5MiwgMC4wMDI0OTMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDM0MDYsIDAuMDAzNDE1LCAwLjAwMzQyNywgMC4wMDM0MjksIDAuMDAzNDMsIDAuMDAzNDMyLCAwLjAwMzQzMiIsIFwKLSAgICAgICAgICAiMC4wMDM0MDEsIDAuMDAzNDEzLCAwLjAwMzQzMSwgMC4wMDM0MzQsIDAuMDAzNDM2LCAwLjAwMzQzOCwgMC4wMDM0MzkiLCBcCi0gICAgICAgICAgIjAuMDAzNDQ4LCAwLjAwMzQ2MiwgMC4wMDM0ODQsIDAuMDAzNDg5LCAwLjAwMzQ5MiwgMC4wMDM0OTUsIDAuMDAzNDk1IiwgXAotICAgICAgICAgICIwLjAwMzUzNywgMC4wMDM1NDksIDAuMDAzNTcyLCAwLjAwMzU3OCwgMC4wMDM1ODEsIDAuMDAzNTg0LCAwLjAwMzU4NSIsIFwKLSAgICAgICAgICAiMC4wMDM2NCwgMC4wMDM2NTEsIDAuMDAzNjY4LCAwLjAwMzY3MywgMC4wMDM2ODIsIDAuMDAzNjg1LCAwLjAwMzY4MSIsIFwKLSAgICAgICAgICAiMC4wMDM4MDYsIDAuMDAzODIzLCAwLjAwMzg1LCAwLjAwMzg1MiwgMC4wMDM4NTYsIDAuMDAzODYsIDAuMDAzODYxIiwgXAotICAgICAgICAgICIwLjAwMzk3NCwgMC4wMDM5ODQsIDAuMDA0MDEsIDAuMDA0MDE5LCAwLjAwNDAyMywgMC4wMDQwMjgsIDAuMDA0MDMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMU4iOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjA0MywgMC4wMDIwNDksIDAuMDAyMDU5LCAwLjAwMjA1NiwgMC4wMDIwNTYsIDAuMDAyMDU5LCAwLjAwMjA2IiwgXAotICAgICAgICAgICIwLjAwMjAzNCwgMC4wMDIwNDEsIDAuMDAyMDUyLCAwLjAwMjA1NCwgMC4wMDIwNTYsIDAuMDAyMDU3LCAwLjAwMjA1NyIsIFwKLSAgICAgICAgICAiMC4wMDIwODYsIDAuMDAyMDk0LCAwLjAwMjEwNSwgMC4wMDIxMDcsIDAuMDAyMTA5LCAwLjAwMjExLCAwLjAwMjExIiwgXAotICAgICAgICAgICIwLjAwMjE2OSwgMC4wMDIxNzcsIDAuMDAyMTg5LCAwLjAwMjE5MywgMC4wMDIxOTQsIDAuMDAyMTk1LCAwLjAwMjE5NiIsIFwKLSAgICAgICAgICAiMC4wMDIyNzYsIDAuMDAyMjgyLCAwLjAwMjI5NCwgMC4wMDIyOTYsIDAuMDAyMjk4LCAwLjAwMjI5OSwgMC4wMDIyOTkiLCBcCi0gICAgICAgICAgIjAuMDAyNDYsIDAuMDAyNDYxLCAwLjAwMjQ3LCAwLjAwMjQ3MiwgMC4wMDI0NzIsIDAuMDAyNDczLCAwLjAwMjQ3NCIsIFwKLSAgICAgICAgICAiMC4wMDI2MywgMC4wMDI2MzUsIDAuMDAyNjM4LCAwLjAwMjYzNywgMC4wMDI2NDEsIDAuMDAyNjQxLCAwLjAwMjY0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzMDksIDAuMDAzMDk5LCAwLjAwMzExLCAwLjAwMzExMiwgMC4wMDMxMTMsIDAuMDAzMTE0LCAwLjAwMzExNCIsIFwKLSAgICAgICAgICAiMC4wMDMwODMsIDAuMDAzMDk0LCAwLjAwMzExLCAwLjAwMzExMywgMC4wMDMxMTUsIDAuMDAzMTE3LCAwLjAwMzExNyIsIFwKLSAgICAgICAgICAiMC4wMDMxMiwgMC4wMDMxMzQsIDAuMDAzMTU1LCAwLjAwMzE2LCAwLjAwMzE2MywgMC4wMDMxNjUsIDAuMDAzMTY2IiwgXAotICAgICAgICAgICIwLjAwMzIwOSwgMC4wMDMyMTEsIDAuMDAzMjQxLCAwLjAwMzI0NiwgMC4wMDMyNDksIDAuMDAzMjUxLCAwLjAwMzI1MiIsIFwKLSAgICAgICAgICAiMC4wMDMyOTUsIDAuMDAzMzA3LCAwLjAwMzMzNiwgMC4wMDMzMzYsIDAuMDAzMzQ3LCAwLjAwMzM1LCAwLjAwMzM1MSIsIFwKLSAgICAgICAgICAiMC4wMDM0NiwgMC4wMDM0NywgMC4wMDM1MSwgMC4wMDM1MTcsIDAuMDAzNTIyLCAwLjAwMzUxLCAwLjAwMzUyNyIsIFwKLSAgICAgICAgICAiMC4wMDM2MiwgMC4wMDM2MjksIDAuMDAzNjU5LCAwLjAwMzY2NiwgMC4wMDM2NjcsIDAuMDAzNjc2LCAwLjAwMzY3MiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDE5MjgsIDAuMDAxOTMsIDAuMDAxOTMyLCAwLjAwMTkzMywgMC4wMDE5MzMsIDAuMDAxOTMzLCAwLjAwMTkzMyIsIFwKLSAgICAgICAgICAiMC4wMDE5MjIsIDAuMDAxOTIzLCAwLjAwMTkyNSwgMC4wMDE5MjUsIDAuMDAxOTI4LCAwLjAwMTkyOCwgMC4wMDE5MjkiLCBcCi0gICAgICAgICAgIjAuMDAxOTU5LCAwLjAwMTk0OSwgMC4wMDE5MzYsIDAuMDAxOTMyLCAwLjAwMTkyOSwgMC4wMDE5MjgsIDAuMDAxOTI3IiwgXAotICAgICAgICAgICIwLjAwMjAxMSwgMC4wMDE5ODcsIDAuMDAxOTUxLCAwLjAwMTk0NCwgMC4wMDE5MzksIDAuMDAxOTMyLCAwLjAwMTkzMSIsIFwKLSAgICAgICAgICAiMC4wMDIwODUsIDAuMDAyMDM5LCAwLjAwMTk3NCwgMC4wMDE5NTgsIDAuMDAxOTQ5LCAwLjAwMTkzOSwgMC4wMDE5MzYiLCBcCi0gICAgICAgICAgIjAuMDAyMjUsIDAuMDAyMTYsIDAuMDAyMDI1LCAwLjAwMTk5MywgMC4wMDE5NzYsIDAuMDAxOTU4LCAwLjAwMTk1IiwgXAotICAgICAgICAgICIwLjAwMjM1MiwgMC4wMDIyODgsIDAuMDAyMDgxLCAwLjAwMjAzMywgMC4wMDIwMDQsIDAuMDAxOTc4LCAwLjAwMTk2OCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDYxOSwgMC4wMDA2MjMsIDAuMDAwNjI5LCAwLjAwMDYzMSwgMC4wMDA2MzEsIDAuMDAwNjMyLCAwLjAwMDYzMiIsIFwKLSAgICAgICAgICAiMC4wMDA1NzksIDAuMDAwNTk0LCAwLjAwMDYxOCwgMC4wMDA2MjMsIDAuMDAwNjI3LCAwLjAwMDYyOSwgMC4wMDA2MyIsIFwKLSAgICAgICAgICAiMC4wMDA1NjUsIDAuMDAwNTgsIDAuMDAwNjEsIDAuMDAwNjE4LCAwLjAwMDYyMiwgMC4wMDA2MjYsIDAuMDAwNjI4IiwgXAotICAgICAgICAgICIwLjAwMDU4MywgMC4wMDA1ODgsIDAuMDAwNjEsIDAuMDAwNjE3LCAwLjAwMDYyMiwgMC4wMDA2MjYsIDAuMDAwNjI3IiwgXAotICAgICAgICAgICIwLjAwMDYyMSwgMC4wMDA2MTQsIDAuMDAwNjE3LCAwLjAwMDYyMSwgMC4wMDA2MjQsIDAuMDAwNjI3LCAwLjAwMDYyOCIsIFwKLSAgICAgICAgICAiMC4wMDA3MTMsIDAuMDAwNjgyLCAwLjAwMDY0MywgMC4wMDA2MzcsIDAuMDAwNjM1LCAwLjAwMDYzMywgMC4wMDA2MzMiLCBcCi0gICAgICAgICAgIjAuMDAwODIzLCAwLjAwMDc2NiwgMC4wMDA2NzUsIDAuMDAwNjYxLCAwLjAwMDY1MiwgMC4wMDA2NDQsIDAuMDAwNjQxIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBPQUkyQkIxWDQgKgotICogLS0tLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChPQUkyQkIxWDQpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC44OTQ3MzQ7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEwTikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwODc3NzA0OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDg3NzcwNDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA4NzY0NzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA1MjQsIDAuMDAwNTI0LCAwLjAwMDUyNCwgMC4wMDA1MjQsIDAuMDAwNTI0LCAwLjAwMDUyMywgMC4wMDA1MjMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA1NTEsIDAuMDAwNTM0LCAwLjAwMDUyOSwgMC4wMDA1MjcsIDAuMDAwNTI2LCAwLjAwMDUyNiwgMC4wMDA1MjciKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEExTikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwOTMwNDA0OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDkzMDA4NjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA5MzA0MDQ7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzAxLCAwLjAwMDMsIDAuMDAwMywgMC4wMDAzLCAwLjAwMDMsIDAuMDAwMywgMC4wMDAzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNTk1LCAwLjAwMDU5NiwgMC4wMDA1OTYsIDAuMDAwNTk2LCAwLjAwMDU5NiwgMC4wMDA1OTYsIDAuMDAwNTk2Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAzNTAyOTU7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAzNTAyOTU7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAzNDk3NDI7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyMDk3LCAwLjAwMjA5NSwgMC4wMDIwOTUsIDAuMDAyMDk0LCAwLjAwMjA5NCwgMC4wMDIwOTMsIDAuMDAyMDkzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyMjA2LCAwLjAwMjEzMSwgMC4wMDIxMjIsIDAuMDAyMTA4LCAwLjAwMjEwNywgMC4wMDIxMDQsIDAuMDAyMTA0Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuODExNjQyOwotICAgIGZ1bmN0aW9uIDogIighKCghKEEwTiBBMU4pKSBCMCkpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBME4iOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQ4Njk0LCAwLjEwNzcxNywgMC4xNjM0NzEsIDAuMjAzMjM4LCAwLjI2Njc0OSwgMC4zMjI0MzksIDAuNDAxODIxIiwgXAotICAgICAgICAgICIwLjA1NTE5MywgMC4xMTQxNjQsIDAuMTY5ODMzLCAwLjIwOTU1OCwgMC4yNzMxMDUsIDAuMzI4NzY0LCAwLjQwODIiLCBcCi0gICAgICAgICAgIjAuMDYyOTI4LCAwLjEyMTg3MSwgMC4xNzc1MzEsIDAuMjE3MjU5LCAwLjI4MDgwMywgMC4zMzY0NTcsIDAuNDE1OTQ3IiwgXAotICAgICAgICAgICIwLjA2OTczNSwgMC4xMjg4NTMsIDAuMTg0NTE3LCAwLjIyNDI1MSwgMC4yODc3NjYsIDAuMzQzNDcsIDAuNDIyODY1IiwgXAotICAgICAgICAgICIwLjA3NTU5MSwgMC4xMzUxMzgsIDAuMTkwODA4LCAwLjIzMDYyMiwgMC4yOTQxNDcsIDAuMzQ5ODYxLCAwLjQyOTIxMSIsIFwKLSAgICAgICAgICAiMC4wODM2MjksIDAuMTQzNzk5LCAwLjE5OTU1MiwgMC4yMzkyNDMsIDAuMzAyODE3LCAwLjM1ODQ5MSwgMC40Mzc3OTkiLCBcCi0gICAgICAgICAgIjAuMDg5ODYxLCAwLjE1MDQwMiwgMC4yMDYwNywgMC4yNDU3NzIsIDAuMzA5MjkyLCAwLjM2NDg5MSwgMC40NDQyOTciKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzIzODMsIDAuMTQ0NzUxLCAwLjI2MDYyNCwgMC4zNDQ0OTIsIDAuNDc3ODI2LCAwLjU5NDc3LCAwLjc2Mjg5IiwgXAotICAgICAgICAgICIwLjAzMjMzNywgMC4xNDQ3OTgsIDAuMjYwODYyLCAwLjM0NDQwNywgMC40Nzc4ODMsIDAuNTk0ODY1LCAwLjc2MzAyMSIsIFwKLSAgICAgICAgICAiMC4wMzI3NzIsIDAuMTQ0OTE1LCAwLjI2MDkyNiwgMC4zNDQ0NTksIDAuNDc3OTA1LCAwLjU5NDg3MiwgMC43NjI3OTQiLCBcCi0gICAgICAgICAgIjAuMDMzNzczLCAwLjE0NTIxOCwgMC4yNjA3NTMsIDAuMzQ0NTUyLCAwLjQ3ODM2LCAwLjU5NDcwNCwgMC43NjI5MjkiLCBcCi0gICAgICAgICAgIjAuMDM0NjkxLCAwLjE0NTYxOSwgMC4yNjA5MjgsIDAuMzQ0NjM5LCAwLjQ3ODUxMSwgMC41OTQ5OCwgMC43NjI0MzgiLCBcCi0gICAgICAgICAgIjAuMDM2MjU5LCAwLjE0NjI1OCwgMC4yNjE0OTEsIDAuMzQ0Njg3LCAwLjQ3ODY3MywgMC41OTUwNDEsIDAuNzYzNzQ3IiwgXAotICAgICAgICAgICIwLjAzNzU2OSwgMC4xNDcwMDQsIDAuMjYxNzU1LCAwLjM0NDQ5LCAwLjQ3ODU2OSwgMC41OTUyNTEsIDAuNzYzODA2Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQzNjE4LCAwLjEzNzc5MSwgMC4yMzEzODksIDAuMjk4MTg3LCAwLjQwNTA4LCAwLjQ5ODYwMSwgMC42MzIyMDgiLCBcCi0gICAgICAgICAgIjAuMDUxODExLCAwLjE0NjAyNiwgMC4yMzk2MjYsIDAuMzA2NDM1LCAwLjQxMzQyMywgMC41MDY4NjMsIDAuNjQwNDczIiwgXAotICAgICAgICAgICIwLjA2MTA1NCwgMC4xNTUxOTMsIDAuMjQ4ODEsIDAuMzE1NjE2LCAwLjQyMjUyMywgMC41MTYwNDYsIDAuNjQ5NzA1IiwgXAotICAgICAgICAgICIwLjA2ODIyNCwgMC4xNjIzNDQsIDAuMjU1OTQzLCAwLjMyMjc3OCwgMC40Mjk2NiwgMC41MjMxNzksIDAuNjU2Nzc2IiwgXAotICAgICAgICAgICIwLjA3Mzg4MywgMC4xNjc5NDcsIDAuMjYxNTEsIDAuMzI4MzM2LCAwLjQzNTI0NywgMC41Mjg3NywgMC42NjIzNjkiLCBcCi0gICAgICAgICAgIjAuMDgxNDAzLCAwLjE3NTM4NCwgMC4yNjg5MjEsIDAuMzM1NzI1LCAwLjQ0MjYzMSwgMC41MzYxNTksIDAuNjY5ODUxIiwgXAotICAgICAgICAgICIwLjA4NjY5MiwgMC4xODA3MzQsIDAuMjc0MjI2LCAwLjM0MTAyMywgMC40NDc4NzksIDAuNTQxNDAzLCAwLjY3NTAzNiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0MTY4MiwgMC4yMzMzNzMsIDAuNDI2ODY3LCAwLjU2NTE3MSwgMC43ODY1NywgMC45NzkzNzUsIDEuMjU1OSIsIFwKLSAgICAgICAgICAiMC4wNDE3MTUsIDAuMjMyOTUxLCAwLjQyNjg2NywgMC41NjUxNjksIDAuNzg1MDY0LCAwLjk3OTM1NSwgMS4yNTU4OSIsIFwKLSAgICAgICAgICAiMC4wNDI0MTEsIDAuMjMzMzY0LCAwLjQyNjIxMiwgMC41NjUxNDksIDAuNzg1ODU2LCAwLjk3OTI1NCwgMS4yNTY5NCIsIFwKLSAgICAgICAgICAiMC4wNDMzNzUsIDAuMjMzMjEsIDAuNDI2ODE0LCAwLjU2NTE0NSwgMC43ODY1MTksIDAuOTgwMTU1LCAxLjI1Njc3IiwgXAotICAgICAgICAgICIwLjA0NDM1MiwgMC4yMzM1MjcsIDAuNDI2NDQ3LCAwLjU2NTA5OSwgMC43ODY0MzMsIDAuOTgwMTIzLCAxLjI1Njg1IiwgXAotICAgICAgICAgICIwLjA0NTk1NywgMC4yMzM1NzMsIDAuNDI2NTYyLCAwLjU2NDY4NSwgMC43ODYzNDgsIDAuOTgwMDE5LCAxLjI1NDgiLCBcCi0gICAgICAgICAgIjAuMDQ3MTk3LCAwLjIzMzU5NiwgMC40MjY0MywgMC41NjQzOTUsIDAuNzg1Nzc3LCAwLjk3OTE1NiwgMS4yNTQ1NyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMU4iOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQ3MjAzLCAwLjEwNjIyNSwgMC4xNjE5MjksIDAuMjAxNjUzLCAwLjI2NTE3NywgMC4zMjA4ODcsIDAuNDAwMjQ2IiwgXAotICAgICAgICAgICIwLjA1NDc5NCwgMC4xMTM4MjMsIDAuMTY5NTAxLCAwLjIwOTIzNiwgMC4yNzI3NzYsIDAuMzI4NTM1LCAwLjQwNzk0NSIsIFwKLSAgICAgICAgICAiMC4wNjQ0ODQsIDAuMTIzNDQsIDAuMTc5MTA4LCAwLjIxODg0NywgMC4yODIzODIsIDAuMzM4MDQsIDAuNDE3NTE5IiwgXAotICAgICAgICAgICIwLjA3Mjk3NCwgMC4xMzIxMjQsIDAuMTg3NzgzLCAwLjIyNzUwNSwgMC4yOTEwMjksIDAuMzQ2NzQ2LCAwLjQyNjE2NSIsIFwKLSAgICAgICAgICAiMC4wODAyMSwgMC4xMzk4MjIsIDAuMTk1NDY5LCAwLjIzNTE3NSwgMC4yOTg3MjcsIDAuMzU0NDQsIDAuNDMzNzQ2IiwgXAotICAgICAgICAgICIwLjA4OTkwOCwgMC4xNTAxMzYsIDAuMjA1OTg4LCAwLjI0NTc3LCAwLjMwOTMzNiwgMC4zNjQ5MzIsIDAuNDQ0NDExIiwgXAotICAgICAgICAgICIwLjA5NzE1OCwgMC4xNTc4MjYsIDAuMjEzNjk1LCAwLjI1MzU3OCwgMC4zMTY2NTIsIDAuMzcyMjExLCAwLjQ1MTY2NyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzMjM3NSwgMC4xNDQ2NDQsIDAuMjYwNzk0LCAwLjM0NDQ2NywgMC40NzgyOSwgMC41OTQ2ODcsIDAuNzYyODAyIiwgXAotICAgICAgICAgICIwLjAzMjMsIDAuMTQ0ODA2LCAwLjI2MDgzOCwgMC4zNDQ0NzQsIDAuNDc4NDc4LCAwLjU5NDc1MiwgMC43NjI2MzUiLCBcCi0gICAgICAgICAgIjAuMDMyOTkyLCAwLjE0NDk0MywgMC4yNjA5MTYsIDAuMzQzNzYzLCAwLjQ3NzkwNiwgMC41OTQ4NywgMC43NjI4MzgiLCBcCi0gICAgICAgICAgIjAuMDM0MjI1LCAwLjE0NTI2MSwgMC4yNjEwMjYsIDAuMzQ0NTQ2LCAwLjQ3ODQxNSwgMC41OTQ2ODMsIDAuNzYyMjA5IiwgXAotICAgICAgICAgICIwLjAzNTY0OCwgMC4xNDU4MzIsIDAuMjYxMjEsIDAuMzQ0MjIzLCAwLjQ3ODUzNSwgMC41OTQ5OTUsIDAuNzYzMjUiLCBcCi0gICAgICAgICAgIjAuMDM3OTA0LCAwLjE0NjcxOCwgMC4yNjE0MjgsIDAuMzQ0MywgMC40Nzg1MTYsIDAuNTk1OTYyLCAwLjc2MjQ2NiIsIFwKLSAgICAgICAgICAiMC4wMzk1MDMsIDAuMTQ3MzY2LCAwLjI2MTg3MywgMC4zNDUwMjEsIDAuNDc4NTUsIDAuNTk1NDgsIDAuNzYyNDQ0Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQyNjE2LCAwLjEzNjc1NiwgMC4yMzAzNDcsIDAuMjk3Mjc4LCAwLjQwNDA5NiwgMC40OTc3MTMsIDAuNjMxMzc5IiwgXAotICAgICAgICAgICIwLjA1MDY3OCwgMC4xNDQ4MTksIDAuMjM4NTUsIDAuMzA1MjkzLCAwLjQxMjM3MiwgMC41MDU4NywgMC42Mzk2MjUiLCBcCi0gICAgICAgICAgIjAuMDU5Njg4LCAwLjE1Mzc2NSwgMC4yNDc0NDQsIDAuMzE0MjcsIDAuNDIxMzE1LCAwLjUxNDgwNSwgMC42NDg1MDIiLCBcCi0gICAgICAgICAgIjAuMDY2NTE5LCAwLjE2MDUxOSwgMC4yNTQxNTcsIDAuMzIxMDMzLCAwLjQyODI2MSwgMC41MjE1NzgsIDAuNjU1MTg4IiwgXAotICAgICAgICAgICIwLjA3MTg1OSwgMC4xNjU4OCwgMC4yNTk0ODMsIDAuMzI2MzEzLCAwLjQzMzI2LCAwLjUyNzEyMywgMC42NjA2MjQiLCBcCi0gICAgICAgICAgIjAuMDc4NjYzLCAwLjE3Mjg1NSwgMC4yNjYzODYsIDAuMzMzMjY1LCAwLjQ0MDIyMSwgMC41MzM4ODgsIDAuNjY3MzY4IiwgXAotICAgICAgICAgICIwLjA4Mzc4LCAwLjE3Nzk4NiwgMC4yNzE0MjgsIDAuMzM4MjksIDAuNDQ1MTY2LCAwLjUzODM5NSwgMC42NzI0NyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0MTYwMywgMC4yMzMyODUsIDAuNDI2Mzk5LCAwLjU2NDMyNywgMC43ODcwNCwgMC45Nzg2OTEsIDEuMjU3OSIsIFwKLSAgICAgICAgICAiMC4wNDE2OTgsIDAuMjMzMjYzLCAwLjQyNjExMSwgMC41NjQ2NSwgMC43ODUyMDYsIDAuOTc4NzE1LCAxLjI1NDgyIiwgXAotICAgICAgICAgICIwLjA0MjQ1OCwgMC4yMzMzNzcsIDAuNDI2MjE5LCAwLjU2NDY0NywgMC43ODUyNTIsIDAuOTgxMDE2LCAxLjI1NDk3IiwgXAotICAgICAgICAgICIwLjA0MzUyLCAwLjIzMzE4OCwgMC40MjcxNDcsIDAuNTY1NjI5LCAwLjc4NTMxMywgMC45ODA5NDYsIDEuMjU3OTIiLCBcCi0gICAgICAgICAgIjAuMDQ0NTEsIDAuMjMzNTk3LCAwLjQyNjU0NSwgMC41NjU1NDQsIDAuNzg3MDg1LCAwLjk3ODY5NywgMS4yNTUwNiIsIFwKLSAgICAgICAgICAiMC4wNDYyNCwgMC4yMzM1NzIsIDAuNDI2OTU3LCAwLjU2NTY0MywgMC43ODUyOCwgMC45Nzg3NDYsIDEuMjU2ODciLCBcCi0gICAgICAgICAgIjAuMDQ3MzU3LCAwLjIzMzU2OCwgMC40MjYzOTgsIDAuNTY1NjY1LCAwLjc4NTg4LCAwLjk4MDg3OSwgMS4yNTc5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxNDc0NiwgMC4wNjk3NjUsIDAuMTI0NjgyLCAwLjE2MzgxNiwgMC4yMjYzOCwgMC4yODE0MDcsIDAuMzU5NzM5IiwgXAotICAgICAgICAgICIwLjAyMjk4MSwgMC4wNzgwMjUsIDAuMTMyODY3LCAwLjE3MjA1NywgMC4yMzQ3NTMsIDAuMjg5NDksIDAuMzY3OTYyIiwgXAotICAgICAgICAgICIwLjAzMDMwOSwgMC4wODgyMywgMC4xNDMwMzEsIDAuMTgyMTc4LCAwLjI0NDgwNiwgMC4yOTk4MjYsIDAuMzc3OTg0IiwgXAotICAgICAgICAgICIwLjAzNTUwOSwgMC4wOTg5MjgsIDAuMTUzNjc3LCAwLjE5Mjc5NiwgMC4yNTU0NjEsIDAuMzEwMzg3LCAwLjM4ODUzNCIsIFwKLSAgICAgICAgICAiMC4wMzk1MDUsIDAuMTA5NDMxLCAwLjE2NDAwNSwgMC4yMDMxLCAwLjI2NTY3MiwgMC4zMjA1NzksIDAuMzk4OTUiLCBcCi0gICAgICAgICAgIjAuMDQ0NjI0LCAwLjEyNTY4NywgMC4xODA5MDIsIDAuMjE5ODg3LCAwLjI4MjQyMywgMC4zMzcyMTIsIDAuNDE1NDQ4IiwgXAotICAgICAgICAgICIwLjA0ODA1OSwgMC4xMzc5MDQsIDAuMTk1NzU4LCAwLjIzNDY4LCAwLjI5NzE0NiwgMC4zNTE4NDIsIDAuNDMwMDkxIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDI0MzIyLCAwLjEzOTgzNSwgMC4yNTU1MTUsIDAuMzM4MDYxLCAwLjQ3MDEzMywgMC41ODU3NjEsIDAuNzUwNzMzIiwgXAotICAgICAgICAgICIwLjAyOTQ1NiwgMC4xMzk5MDcsIDAuMjU1NDM4LCAwLjMzNzk0OCwgMC40NzAwODYsIDAuNTg1NzQxLCAwLjc1MDczNyIsIFwKLSAgICAgICAgICAiMC4wMzg4MzIsIDAuMTQzMjU2LCAwLjI1NTc5OCwgMC4zMzgsIDAuNDY5OTA2LCAwLjU4NTcwNSwgMC43NTA2ODMiLCBcCi0gICAgICAgICAgIjAuMDQ2OTI2LCAwLjE0OTE1NywgMC4yNTg3NTYsIDAuMzM5MDU4LCAwLjQ3MDEwNCwgMC41ODU2NjUsIDAuNzUwNDc2IiwgXAotICAgICAgICAgICIwLjA1NDExMiwgMC4xNTY4MzMsIDAuMjYzNjIyLCAwLjM0MjY0LCAwLjQ3MTQxNSwgMC41ODU3MDksIDAuNzUwNzAyIiwgXAotICAgICAgICAgICIwLjA2NDYyMiwgMC4xNzA0MzUsIDAuMjczNzE1LCAwLjM1MDU2OCwgMC40NzY3MjksIDAuNTg4Nzg4LCAwLjc1MTIzNiIsIFwKLSAgICAgICAgICAiMC4wNzI1NjUsIDAuMTgzNjI0LCAwLjI4NDA2LCAwLjM1OTM4NSwgMC40ODMyNTMsIDAuNTk0MDY0LCAwLjc1NDIzIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDI0NTI5LCAwLjExODQ4LCAwLjIxMjIyLCAwLjI3ODkyOCwgMC4zODU4MzIsIDAuNDc5NDI3LCAwLjYxMzU1MiIsIFwKLSAgICAgICAgICAiMC4wMzA0NDQsIDAuMTI0NzMyLCAwLjIxODM4NiwgMC4yODUyMDksIDAuMzkyMTIzLCAwLjQ4NTc3MiwgMC42MTk2MDMiLCBcCi0gICAgICAgICAgIjAuMDM3MzkxLCAwLjEzMjgzNywgMC4yMjY1OTksIDAuMjkzNDMsIDAuNDAwNTE0LCAwLjQ5NDAzLCAwLjYyNzgwOSIsIFwKLSAgICAgICAgICAiMC4wNDMwMTYsIDAuMTQxMDEzLCAwLjIzNDc2OCwgMC4zMDE2OTgsIDAuNDA4NjUxLCAwLjUwMjU2MywgMC42MzYxMDgiLCBcCi0gICAgICAgICAgIjAuMDQ3NjgzLCAwLjE0OTE3NywgMC4yNDMxOTQsIDAuMzEwMDI5LCAwLjQxNzA0OCwgMC41MTA2ODMsIDAuNjQ0ODE3IiwgXAotICAgICAgICAgICIwLjA1MzkwMiwgMC4xNjI1MjgsIDAuMjU2MjEsIDAuMzIzMDk2LCAwLjQzMDIxMywgMC41MjM0NTIsIDAuNjU3NjQ2IiwgXAotICAgICAgICAgICIwLjA1ODg2MywgMC4xNzQxMywgMC4yNjc5NzgsIDAuMzM0NzgsIDAuNDQyMTAxLCAwLjUzNTc0OSwgMC42Njk0ODIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzk3MDEsIDAuMjMzMzQsIDAuNDI2MjUyLCAwLjU2NTYyLCAwLjc4NjY0MiwgMC45Nzg2NjUsIDEuMjU1NSIsIFwKLSAgICAgICAgICAiMC4wNDE0MTgsIDAuMjMyOTIyLCAwLjQyNjQxNCwgMC41NjU1MjMsIDAuNzg3MDEyLCAwLjk4MDk2OCwgMS4yNTU0MyIsIFwKLSAgICAgICAgICAiMC4wNDY5MDcsIDAuMjMzMzUzLCAwLjQyNjU2NywgMC41NjU1NDIsIDAuNzg1MjY4LCAwLjk4MDk5NywgMS4yNTQ5IiwgXAotICAgICAgICAgICIwLjA1MzQ2NiwgMC4yMzYwMjQsIDAuNDI3MzI1LCAwLjU2NDc1OCwgMC43ODY5OTMsIDAuOTc4Nzk2LCAxLjI1Nzc5IiwgXAotICAgICAgICAgICIwLjA1OTgwNywgMC4yMzkwNzYsIDAuNDI4NjE2LCAwLjU2NTgxNiwgMC43ODU3NzEsIDAuOTgwODk4LCAxLjI1NTIzIiwgXAotICAgICAgICAgICIwLjA2ODk4NiwgMC4yNDYyNSwgMC40MzE5MDcsIDAuNTY4MTQ3LCAwLjc4NzQzNSwgMC45ODAyNywgMS4yNTc2MSIsIFwKLSAgICAgICAgICAiMC4wNzYzNTYsIDAuMjUzNzIzLCAwLjQzNjgyNSwgMC41NzE1ODUsIDAuNzg5Mzg0LCAwLjk4MTQyMSwgMS4yNTUzNCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEwTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDcwMjcsIDAuMDA3MTM1LCAwLjAwNzE0MywgMC4wMDcxNTksIDAuMDA3MTU4LCAwLjAwNzE2LCAwLjAwNzE2MiIsIFwKLSAgICAgICAgICAiMC4wMDY4OTIsIDAuMDA3MDUsIDAuMDA3MDY4LCAwLjAwNzA3NywgMC4wMDcwODksIDAuMDA3MDkyLCAwLjAwNzA5NCIsIFwKLSAgICAgICAgICAiMC4wMDY5NzMsIDAuMDA3MDcyLCAwLjAwNzA5MSwgMC4wMDcwOTcsIDAuMDA3MTAxLCAwLjAwNzEwOCwgMC4wMDcxMSIsIFwKLSAgICAgICAgICAiMC4wMDcwMDksIDAuMDA3MTMsIDAuMDA3MTQ5LCAwLjAwNzE1MiwgMC4wMDcxNjcsIDAuMDA3MTY0LCAwLjAwNzE2NyIsIFwKLSAgICAgICAgICAiMC4wMDcwODcsIDAuMDA3MTkyLCAwLjAwNzIxOSwgMC4wMDcyMjgsIDAuMDA3MjM2LCAwLjAwNzIzOCwgMC4wMDcyNDQiLCBcCi0gICAgICAgICAgIjAuMDA3Mjk3LCAwLjAwNzM2MSwgMC4wMDczODcsIDAuMDA3Mzk3LCAwLjAwNzQwMSwgMC4wMDc0MDYsIDAuMDA3NDExIiwgXAotICAgICAgICAgICIwLjAwNzU2NCwgMC4wMDc1OTEsIDAuMDA3NTk0LCAwLjAwNzU5NSwgMC4wMDc1OTEsIDAuMDA3NTg5LCAwLjAwNzU5NiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA4ODE5LCAwLjAwOTA1MiwgMC4wMDkwODYsIDAuMDA5MDk3LCAwLjAwOTEwNiwgMC4wMDkxMTEsIDAuMDA5MTE1IiwgXAotICAgICAgICAgICIwLjAwODc2NywgMC4wMDkwMjQsIDAuMDA5MDcxLCAwLjAwOTA4NiwgMC4wMDkwOTksIDAuMDA5MTA3LCAwLjAwOTExMyIsIFwKLSAgICAgICAgICAiMC4wMDg4MTYsIDAuMDA5MDM5LCAwLjAwOTA5MywgMC4wMDkxMTIsIDAuMDA5MTI4LCAwLjAwOTEzNywgMC4wMDkxNDUiLCBcCi0gICAgICAgICAgIjAuMDA4OTQxLCAwLjAwOTExNiwgMC4wMDkxNzQsIDAuMDA5MTk0LCAwLjAwOTIxMiwgMC4wMDkyMjMsIDAuMDA5MjMyIiwgXAotICAgICAgICAgICIwLjAwOTEzLCAwLjAwOTIzNiwgMC4wMDkyODcsIDAuMDA5MzA4LCAwLjAwOTMyNywgMC4wMDkzMzgsIDAuMDA5MzQ4IiwgXAotICAgICAgICAgICIwLjAwOTQ2NSwgMC4wMDk0NjIsIDAuMDA5NTA2LCAwLjAwOTUyNSwgMC4wMDk1NDMsIDAuMDA5NTUzLCAwLjAwOTU2MyIsIFwKLSAgICAgICAgICAiMC4wMDk3MTksIDAuMDA5NjU4LCAwLjAwOTY5NywgMC4wMDk3MTUsIDAuMDA5NzMzLCAwLjAwOTc0NCwgMC4wMDk3NTQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMU4iOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA3MDAxLCAwLjAwNzEzNSwgMC4wMDcxNTQsIDAuMDA3MTYsIDAuMDA3MTgyLCAwLjAwNzE2NywgMC4wMDcxNyIsIFwKLSAgICAgICAgICAiMC4wMDY5MDgsIDAuMDA3MDc2LCAwLjAwNzEwMywgMC4wMDcxMTMsIDAuMDA3MTIyLCAwLjAwNzEyNSwgMC4wMDcxMjgiLCBcCi0gICAgICAgICAgIjAuMDA3MDE1LCAwLjAwNzEyNywgMC4wMDcxNTQsIDAuMDA3MTY0LCAwLjAwNzE3MSwgMC4wMDcxNzcsIDAuMDA3MTgxIiwgXAotICAgICAgICAgICIwLjAwNzE2OSwgMC4wMDcyNTUsIDAuMDA3Mjg0LCAwLjAwNzI5NCwgMC4wMDczMDQsIDAuMDA3MzA5LCAwLjAwNzMxMyIsIFwKLSAgICAgICAgICAiMC4wMDczNDEsIDAuMDA3MzQ0LCAwLjAwNzM2NCwgMC4wMDczNzUsIDAuMDA3Mzg1LCAwLjAwNzM4MiwgMC4wMDczODciLCBcCi0gICAgICAgICAgIjAuMDA3NTg5LCAwLjAwNzU2NCwgMC4wMDc1ODksIDAuMDA3NTk3LCAwLjAwNzYwOSwgMC4wMDc2MDQsIDAuMDA3NjExIiwgXAotICAgICAgICAgICIwLjAwNzg4MSwgMC4wMDc3ODMsIDAuMDA3OCwgMC4wMDc4MDYsIDAuMDA3ODA0LCAwLjAwNzgxMiwgMC4wMDc4MTYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwODMxOSwgMC4wMDg1NTMsIDAuMDA4NTg2LCAwLjAwODU5NSwgMC4wMDg2MDQsIDAuMDA4NjA5LCAwLjAwODYxMyIsIFwKLSAgICAgICAgICAiMC4wMDgyNTgsIDAuMDA4NTA2LCAwLjAwODU1LCAwLjAwODU2MywgMC4wMDg1NzYsIDAuMDA4NTgyLCAwLjAwODU4OCIsIFwKLSAgICAgICAgICAiMC4wMDgyOTEsIDAuMDA4NTE3LCAwLjAwODU3LCAwLjAwODU4OCwgMC4wMDg2MDQsIDAuMDA4NjEyLCAwLjAwODYyIiwgXAotICAgICAgICAgICIwLjAwODQ0OSwgMC4wMDg2MDEsIDAuMDA4NjUzLCAwLjAwODY3MSwgMC4wMDg2ODEsIDAuMDA4NjksIDAuMDA4NzA1IiwgXAotICAgICAgICAgICIwLjAwODU4OSwgMC4wMDg2ODIsIDAuMDA4NzU5LCAwLjAwODc2NiwgMC4wMDg3OTYsIDAuMDA4ODA1LCAwLjAwODgwNCIsIFwKLSAgICAgICAgICAiMC4wMDg4ODcsIDAuMDA4ODc3LCAwLjAwODk0MiwgMC4wMDg5NjEsIDAuMDA4OTgsIDAuMDA4OTk2LCAwLjAwOTAwOCIsIFwKLSAgICAgICAgICAiMC4wMDkwNDQsIDAuMDA5MDY5LCAwLjAwOTEyOSwgMC4wMDkxNTMsIDAuMDA5MTc2LCAwLjAwOTE4NiwgMC4wMDkyMDMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDcyNzUsIDAuMDA3MzIxLCAwLjAwNzMyNSwgMC4wMDczMjYsIDAuMDA3MzI4LCAwLjAwNzMyOCwgMC4wMDczMjgiLCBcCi0gICAgICAgICAgIjAuMDA3MjM0LCAwLjAwNzI4MywgMC4wMDcyOTUsIDAuMDA3Mjk5LCAwLjAwNzMwMSwgMC4wMDczMDMsIDAuMDA3MzA2IiwgXAotICAgICAgICAgICIwLjAwNzQ2MSwgMC4wMDczODMsIDAuMDA3MzUyLCAwLjAwNzM0MiwgMC4wMDczMzQsIDAuMDA3MzMsIDAuMDA3MzI1IiwgXAotICAgICAgICAgICIwLjAwNzg2NiwgMC4wMDc0NjYsIDAuMDA3Mzk3LCAwLjAwNzM4MywgMC4wMDczNjMsIDAuMDA3MzUyLCAwLjAwNzM0NiIsIFwKLSAgICAgICAgICAiMC4wMDgzOTUsIDAuMDA3NjksIDAuMDA3NTQsIDAuMDA3NDk2LCAwLjAwNzQ0OCwgMC4wMDc0MzEsIDAuMDA3NDAzIiwgXAotICAgICAgICAgICIwLjAwOTMsIDAuMDA4MDg4LCAwLjAwNzc5MywgMC4wMDc2OSwgMC4wMDc2MDYsIDAuMDA3NTU1LCAwLjAwNzUwNyIsIFwKLSAgICAgICAgICAiMC4wMTAxNSwgMC4wMDg1MTYsIDAuMDA4MDc0LCAwLjAwNzkxMiwgMC4wMDc3NzQsIDAuMDA3Njk5LCAwLjAwNzYyNiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyMzY5LCAwLjAwMjQ5NiwgMC4wMDI1MDksIDAuMDAyNTEzLCAwLjAwMjUxNywgMC4wMDI1MTksIDAuMDAyNTIiLCBcCi0gICAgICAgICAgIjAuMDAyMTA3LCAwLjAwMjM5NywgMC4wMDI0NTEsIDAuMDAyNDY4LCAwLjAwMjQ4NCwgMC4wMDI0OTIsIDAuMDAyNSIsIFwKLSAgICAgICAgICAiMC4wMDIxNTMsIDAuMDAyMzQyLCAwLjAwMjQxLCAwLjAwMjQzNSwgMC4wMDI0NTgsIDAuMDAyNDcsIDAuMDAyNDgyIiwgXAotICAgICAgICAgICIwLjAwMjM4LCAwLjAwMjM1OSwgMC4wMDI0MSwgMC4wMDI0MzIsIDAuMDAyNDU0LCAwLjAwMjQ2NiwgMC4wMDI0NzgiLCBcCi0gICAgICAgICAgIjAuMDAyNzI4LCAwLjAwMjQzNSwgMC4wMDI0NDgsIDAuMDAyNDU4LCAwLjAwMjQ3MSwgMC4wMDI0NzksIDAuMDAyNDg4IiwgXAotICAgICAgICAgICIwLjAwMzQyMSwgMC4wMDI2NTksIDAuMDAyNTgsIDAuMDAyNTY2LCAwLjAwMjU0OSwgMC4wMDI1MzgsIDAuMDAyNTM3IiwgXAotICAgICAgICAgICIwLjAwNDEyNCwgMC4wMDI5MjgsIDAuMDAyNzQzLCAwLjAwMjY5NywgMC4wMDI2NTEsIDAuMDAyNjI3LCAwLjAwMjYwNCIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogT0FJMkJCMlg0ICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoT0FJMkJCMlg0KSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDEuNTgxNjM7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEwTikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwOTM3MTMyOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDkzNzEzOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDkzNzEzMjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDIwMTUsIDAuMDAxOTk3LCAwLjAwMjA3MSwgMC4wMDIxOSwgMC4wMDIzMjUsIDAuMDAyNTksIDAuMDAyODMxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA0OTksIDAuMDA0OTk2LCAwLjAwNTA0OSwgMC4wMDUxNjIsIDAuMDA1MywgMC4wMDU1ODksIDAuMDA1ODU3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihBMU4pICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDk2MjAyOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDk2MTkwOTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA5NjIwMjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDIwMTcsIDAuMDAxOTk0LCAwLjAwMjA3LCAwLjAwMjE4NCwgMC4wMDIzMjQsIDAuMDAyNTg1LCAwLjAwMjgyNiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNTAyOCwgMC4wMDUwMzIsIDAuMDA1MDg0LCAwLjAwNTE5NCwgMC4wMDUzMzQsIDAuMDA1NjEzLCAwLjAwNTg4NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQjApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMzQzNTg1OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMzQyMDAyOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMzQzNTg1OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTg2MiwgMC4wMDE5OTcsIDAuMDAyMDA5LCAwLjAwMjAyNiwgMC4wMDIwNDIsIDAuMDAyMDY1LCAwLjAwMjA2MiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjE1NiwgMC4wMDIxNTcsIDAuMDAyMTU4LCAwLjAwMjE1OCwgMC4wMDIxNTgsIDAuMDAyMTU4LCAwLjAwMjE1OCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQjEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMzQ2MTU7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAzNDYxNTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDM0NjA5OTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA1MjEsIDAuMDAwNTIyLCAwLjAwMDUyMiwgMC4wMDA1MjIsIDAuMDAwNTIyLCAwLjAwMDUyMiwgMC4wMDA1MjIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDE4MDIsIDAuMDAxODAzLCAwLjAwMTgwMywgMC4wMDE4MDMsIDAuMDAxODAzLCAwLjAwMTgwMiwgMC4wMDE4MDMiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC43MzQ0Mzk7Ci0gICAgZnVuY3Rpb24gOiAiKCEoKEIwK0IxKSAoIShBME4gQTFOKSkpKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTBOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1NDQxMywgMC4xNTQ5MTIsIDAuMjU0NzM2LCAwLjMyNjE3MSwgMC40NDAyNTksIDAuNTM5OTg2LCAwLjY4MjMyOCIsIFwKLSAgICAgICAgICAiMC4wNjI2NzYsIDAuMTYzMzI1LCAwLjI2MzE1MiwgMC4zMzQ1MiwgMC40NDg1NjMsIDAuNTQ4MzA5LCAwLjY5MDgwNiIsIFwKLSAgICAgICAgICAiMC4wNzE2NTEsIDAuMTcyMjg1LCAwLjI3MjEyLCAwLjM0MzY0OCwgMC40NTc2OTUsIDAuNTU3NDY3LCAwLjcwMDE1OCIsIFwKLSAgICAgICAgICAiMC4wNzg2MzQsIDAuMTc5Mjk3LCAwLjI3OTE0LCAwLjM1MDU3MywgMC40NjQ3MSwgMC41NjQ0MzksIDAuNzA2NzI4IiwgXAotICAgICAgICAgICIwLjA4NDMwNCwgMC4xODUwNTEsIDAuMjg0OTQzLCAwLjM1NjMwMSwgMC40NzA0MTksIDAuNTcwMjQxLCAwLjcxMjUxIiwgXAotICAgICAgICAgICIwLjA5MTg1NiwgMC4xOTI2NTcsIDAuMjkyNTA2LCAwLjM2Mzk3NSwgMC40NzgwNzksIDAuNTc3ODUzLCAwLjcyMDI4OCIsIFwKLSAgICAgICAgICAiMC4wOTc2ODcsIDAuMTk4NTQ4LCAwLjI5ODQxNCwgMC4zNjk4NTcsIDAuNDg0MDE3LCAwLjU4MzcwOCwgMC43MjYwNjkiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjQ1MDQsIDAuMjc1Mzc5LCAwLjQ4NzMxMSwgMC42MzgzNjEsIDAuODgwNjg4LCAxLjA5MjIyLCAxLjM5NDciLCBcCi0gICAgICAgICAgIjAuMDY0NTQxLCAwLjI3NTA5OSwgMC40ODcxMjEsIDAuNjM4ODMxLCAwLjg4MDUwMSwgMS4wOTIyMiwgMS4zOTU2MSIsIFwKLSAgICAgICAgICAiMC4wNjQ3ODIsIDAuMjc1MTUxLCAwLjQ4NzA3OSwgMC42Mzg1MDgsIDAuODgwNzQ4LCAxLjA5MjYsIDEuMzk1NTEiLCBcCi0gICAgICAgICAgIjAuMDY1MjYxLCAwLjI3NTE5MywgMC40ODcwOTcsIDAuNjM4MzQ3LCAwLjg4MDU4MSwgMS4wOTI2NiwgMS4zOTUyOCIsIFwKLSAgICAgICAgICAiMC4wNjU3NzQsIDAuMjc1MjE1LCAwLjQ4NzEyLCAwLjYzODQ5LCAwLjg4MDYzOCwgMS4wOTI5MSwgMS4zOTU0OCIsIFwKLSAgICAgICAgICAiMC4wNjY1ODIsIDAuMjc1NDEzLCAwLjQ4NzE0LCAwLjYzODQ2MywgMC44ODA1NTIsIDEuMDkyODgsIDEuMzk1NTgiLCBcCi0gICAgICAgICAgIjAuMDY3MzA5LCAwLjI3NTUzOCwgMC40ODcwNjUsIDAuNjM4MzQ1LCAwLjg4MDc3NCwgMS4wOTI2MywgMS4zOTU0Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU2NDUxLCAwLjE1MzA3NCwgMC4yNDkwOTIsIDAuMzE3NTYsIDAuNDI4MDc5LCAwLjUyNTIwMywgMC42NjM4NjgiLCBcCi0gICAgICAgICAgIjAuMDY0Njk0LCAwLjE2MTM0MywgMC4yNTczNjcsIDAuMzI1ODU2LCAwLjQzNjQxNywgMC41MzM0OTEsIDAuNjcyMTU0IiwgXAotICAgICAgICAgICIwLjA3MzU4LCAwLjE3MDI3OSwgMC4yNjYzMTgsIDAuMzM0NzU2LCAwLjQ0NTM3MiwgMC41NDI0MzIsIDAuNjgxMDc4IiwgXAotICAgICAgICAgICIwLjA4MDIwMywgMC4xNzY5MDYsIDAuMjcyOTA1LCAwLjM0MTQzMywgMC40NTE5MzYsIDAuNTQ5MDQ1LCAwLjY4Nzc2NCIsIFwKLSAgICAgICAgICAiMC4wODU2NDQsIDAuMTgyMzk5LCAwLjI3ODM2NiwgMC4zNDY5MjQsIDAuNDU3NDkzLCAwLjU1NDUyOCwgMC42OTMxMSIsIFwKLSAgICAgICAgICAiMC4wOTI2NjEsIDAuMTg5NDQ0LCAwLjI4NTQ3NSwgMC4zNTM5OTYsIDAuNDY0NDI0LCAwLjU2MTc0LCAwLjcwMDMwMyIsIFwKLSAgICAgICAgICAiMC4wOTc3OTcsIDAuMTk0NjE5LCAwLjI5MDU3LCAwLjM1OTEwOSwgMC40Njk2NTcsIDAuNTY2NjAzLCAwLjcwNTQzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDUyNjIyLCAwLjI1MDA3NiwgMC40NTAwMTUsIDAuNTkzNTk4LCAwLjgyMzM3NiwgMS4wMjQzMSwgMS4zMTEiLCBcCi0gICAgICAgICAgIjAuMDUyNjM0LCAwLjI1MDA2OSwgMC40NTAwNzksIDAuNTkzNTkyLCAwLjgyMjk3OCwgMS4wMjM4NCwgMS4zMTExNyIsIFwKLSAgICAgICAgICAiMC4wNTI4MDYsIDAuMjUwMDA2LCAwLjQ1MDAyNSwgMC41OTM2MjksIDAuODIyOTc1LCAxLjAyMzg0LCAxLjMxMTI3IiwgXAotICAgICAgICAgICIwLjA1MzE0NywgMC4yNTAwNTksIDAuNDUwMDIyLCAwLjU5MzY0LCAwLjgyMjk4LCAxLjAyMzk4LCAxLjMxMDgzIiwgXAotICAgICAgICAgICIwLjA1MzU3NCwgMC4yNTAwNzUsIDAuNDUwMDM1LCAwLjU5MzU5LCAwLjgyMzMwOCwgMS4wMjM5OCwgMS4zMTA5IiwgXAotICAgICAgICAgICIwLjA1NDA4MiwgMC4yNTAxNTIsIDAuNDQ5OTc0LCAwLjU5MzU1NiwgMC44MjMyNzksIDEuMDI0MTksIDEuMzExMTIiLCBcCi0gICAgICAgICAgIjAuMDU0NjA0LCAwLjI1MDIsIDAuNDQ5OTM4LCAwLjU5MzYwMywgMC44MjMzMzgsIDEuMDI0MTUsIDEuMzExMTYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTFOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1MDc2MiwgMC4xNTEzMTEsIDAuMjUwOTcyLCAwLjMyMjUxNywgMC40MzY2MDYsIDAuNTM2NDEyLCAwLjY3ODY1MiIsIFwKLSAgICAgICAgICAiMC4wNTg5NzQsIDAuMTU5NDkxLCAwLjI1OTMzNCwgMC4zMzA3NTcsIDAuNDQ0OTEsIDAuNTQ0NjA2LCAwLjY4NzAyNiIsIFwKLSAgICAgICAgICAiMC4wNjc5OSwgMC4xNjg1NTUsIDAuMjY4NDIyLCAwLjMzOTgyMiwgMC40NTM4NzYsIDAuNTUzNzQxLCAwLjY5NTg4NiIsIFwKLSAgICAgICAgICAiMC4wNzUxMDksIDAuMTc1NDk2LCAwLjI3NTQ2MiwgMC4zNDY3NDQsIDAuNDYwOTE3LCAwLjU2MDY0NCwgMC43MDI5NjYiLCBcCi0gICAgICAgICAgIjAuMDgwNzQzLCAwLjE4MTI1OCwgMC4yODEwMzcsIDAuMzUyNDg0LCAwLjQ2NjYyMywgMC41NjYzODEsIDAuNzA4NzUiLCBcCi0gICAgICAgICAgIjAuMDg4NTA2LCAwLjE4ODc3OCwgMC4yODg1NCwgMC4zNTk5NDYsIDAuNDc0MDg2LCAwLjU3Mzc5OCwgMC43MTYwOTYiLCBcCi0gICAgICAgICAgIjAuMDk0NTQ0LCAwLjE5NDcwNiwgMC4yOTQ0NzIsIDAuMzY1ODg1LCAwLjQ3OTk2MSwgMC41Nzk2OTEsIDAuNzIyMDEiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjQ0NjUsIDAuMjc1MTI2LCAwLjQ4NzA1NywgMC42Mzg4OTIsIDAuODgwODQ3LCAxLjA5MjY2LCAxLjM5NTY0IiwgXAotICAgICAgICAgICIwLjA2NDQ5NSwgMC4yNzUwODcsIDAuNDg3MDk1LCAwLjYzODMzMSwgMC44ODA3ODksIDEuMDkyODIsIDEuMzk1NTEiLCBcCi0gICAgICAgICAgIjAuMDY1MDM5LCAwLjI3NTExNCwgMC40ODcwOTYsIDAuNjM4NTAzLCAwLjg4MDc0OCwgMS4wOTI3LCAxLjM5NTU3IiwgXAotICAgICAgICAgICIwLjA2NTg4NCwgMC4yNzUxNzcsIDAuNDg3MDUsIDAuNjM4NTAzLCAwLjg4MDc5MSwgMS4wOTI3NCwgMS4zOTU2MSIsIFwKLSAgICAgICAgICAiMC4wNjY3OTMsIDAuMjc1Mjg2LCAwLjQ4NzA2MiwgMC42MzgzMDksIDAuODgwNzc2LCAxLjA5Mjc2LCAxLjM5NTI4IiwgXAotICAgICAgICAgICIwLjA2ODE0NCwgMC4yNzU0MzgsIDAuNDg3MDE4LCAwLjYzODQxMiwgMC44ODA3MTYsIDEuMDkyNjksIDEuMzk1NTEiLCBcCi0gICAgICAgICAgIjAuMDY5MTEzLCAwLjI3NTYyLCAwLjQ4NzEyOSwgMC42Mzg0NTYsIDAuODgwNTU5LCAxLjA5MjY2LCAxLjM5NTExIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDUzNDk5LCAwLjE1MTQxNCwgMC4yNDg3MzUsIDAuMzE4Mjg2LCAwLjQyOTM0NiwgMC41MjY1MSwgMC42NjUyNzQiLCBcCi0gICAgICAgICAgIjAuMDYxNjgyLCAwLjE1OTY1OCwgMC4yNTY5OSwgMC4zMjY1LCAwLjQzNzU0NiwgMC41MzQ3ODcsIDAuNjczNDk0IiwgXAotICAgICAgICAgICIwLjA3MDU0NCwgMC4xNjg2MTMsIDAuMjY1OTY1LCAwLjMzNTM3OCwgMC40NDY2MzUsIDAuNTQzNzYsIDAuNjgyNTQzIiwgXAotICAgICAgICAgICIwLjA3NzEzNywgMC4xNzUyNDIsIDAuMjcyNiwgMC4zNDIwMzgsIDAuNDUzMzYxLCAwLjU1MDM3NiwgMC42ODkyNTkiLCBcCi0gICAgICAgICAgIjAuMDgyNTYyLCAwLjE4MDcyMywgMC4yNzgxMTcsIDAuMzQ3NTMxLCAwLjQ1ODcwMSwgMC41NTU5NjEsIDAuNjk0ODQ2IiwgXAotICAgICAgICAgICIwLjA4OTU2MywgMC4xODc3NTcsIDAuMjg1MDY5LCAwLjM1NDY0OSwgMC40NjU2NTIsIDAuNTYyODgzLCAwLjcwMTg4OCIsIFwKLSAgICAgICAgICAiMC4wOTQ2ODEsIDAuMTkyOTI5LCAwLjI5MDIyMiwgMC4zNTk3MzMsIDAuNDcwODQzLCAwLjU2ODAwMSwgMC43MDY5ODYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDkxNjMsIDAuMjQ5Njc1LCAwLjQ1MDkxOCwgMC41OTQ2NywgMC44MjQ4NDUsIDEuMDI4MTUsIDEuMzIzMzEiLCBcCi0gICAgICAgICAgIjAuMDQ5MTgyLCAwLjI0OTY2MywgMC40NTA4OTIsIDAuNTk0NjI2LCAwLjgyNDkzNCwgMS4wMjc0LCAxLjMxODYyIiwgXAotICAgICAgICAgICIwLjA0OTM1OCwgMC4yNDk2MjEsIDAuNDUwODU2LCAwLjU5NDYyNSwgMC44MjQ5MTYsIDEuMDI3NTksIDEuMzE3NTMiLCBcCi0gICAgICAgICAgIjAuMDQ5NzE3LCAwLjI0OTY2OCwgMC40NTA5MDUsIDAuNTk0OTk2LCAwLjgyNDkyNywgMS4wMzI2LCAxLjMxNjY0IiwgXAotICAgICAgICAgICIwLjA1MDE4NiwgMC4yNDk3MTMsIDAuNDUwODY3LCAwLjU5NDYwMiwgMC44MjU3NzIsIDEuMDI3NDMsIDEuMzE2NTIiLCBcCi0gICAgICAgICAgIjAuMDUwNzYxLCAwLjI0OTg0LCAwLjQ1MDg3NSwgMC41OTQ2MTQsIDAuODI2ODM0LCAxLjAyOTgxLCAxLjMxNzg1IiwgXAotICAgICAgICAgICIwLjA1MTMxMywgMC4yNDk5MjEsIDAuNDUwODIzLCAwLjU5NDk3NCwgMC44MjU0MjMsIDEuMDI5NywgMS4zMTg0MiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjY3NjYsIDAuMTI3MDI4LCAwLjIyNzExMiwgMC4yOTg1MTYsIDAuNDEyNzE5LCAwLjUxMjQxMiwgMC42NTQ4NTYiLCBcCi0gICAgICAgICAgIjAuMDMyODIsIDAuMTMzMzUyLCAwLjIzMzQ1MSwgMC4zMDQ4NjksIDAuNDE5MDk5LCAwLjUxODgyMSwgMC42NjEzOTgiLCBcCi0gICAgICAgICAgIjAuMDM5NTQ1LCAwLjE0MDc3LCAwLjI0MDk1NSwgMC4zMTI0MTcsIDAuNDI2NjMxLCAwLjUyNjM3MSwgMC42Njg3NzUiLCBcCi0gICAgICAgICAgIjAuMDQ0NTgxLCAwLjE0ODE0OSwgMC4yNDg0OTEsIDAuMzIwMDIyLCAwLjQzNDIzMSwgMC41MzQwMDQsIDAuNjc2MzkzIiwgXAotICAgICAgICAgICIwLjA0ODY3NiwgMC4xNTU1MDcsIDAuMjU2MDEsIDAuMzI3NDM3LCAwLjQ0MTc1MiwgMC41NDE1OTcsIDAuNjgzOTU3IiwgXAotICAgICAgICAgICIwLjA1NDAzOSwgMC4xNjc1NDYsIDAuMjY3NzQyLCAwLjMzOTQ0OSwgMC40NTM5MzIsIDAuNTUzOTYxLCAwLjY5NjI5IiwgXAotICAgICAgICAgICIwLjA1ODA3MSwgMC4xNzc3MTEsIDAuMjc4Mzk5LCAwLjM0OTQ3MSwgMC40NjQwNTYsIDAuNTYzNjUzLCAwLjcwNjI3MyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1MzQ0OSwgMC4yNjQ4OTYsIDAuNDc2Njc1LCAwLjYyODA2NCwgMC44NzAzMDIsIDEuMDgyMjgsIDEuMzg1MDIiLCBcCi0gICAgICAgICAgIjAuMDU0OTE1LCAwLjI2NDgzMiwgMC40NzY3NCwgMC42MjgwNTcsIDAuODcwMzU3LCAxLjA4MjIsIDEuMzg1MTUiLCBcCi0gICAgICAgICAgIjAuMDU5OTIyLCAwLjI2NTE4MywgMC40NzY3MzIsIDAuNjI4MDA5LCAwLjg3MDMxNiwgMS4wODIyNywgMS4zODQ5OCIsIFwKLSAgICAgICAgICAiMC4wNjYyMjUsIDAuMjY3MTM5LCAwLjQ3NjkwNSwgMC42MjgxMjcsIDAuODcwMjg5LCAxLjA4MjMxLCAxLjM4NDk1IiwgXAotICAgICAgICAgICIwLjA3Mjc5MSwgMC4yNzAzMjgsIDAuNDc4MTE1LCAwLjYyODM1MiwgMC44NzA4NDMsIDEuMDgyMjMsIDEuMzg1MTMiLCBcCi0gICAgICAgICAgIjAuMDgyNjIzLCAwLjI3NzE2NiwgMC40ODE3MjYsIDAuNjMwMzU0LCAwLjg3MDY1NSwgMS4wODIyOCwgMS4zODQ5OCIsIFwKLSAgICAgICAgICAiMC4wOTA4MTIsIDAuMjg0MDI5LCAwLjQ4NjM5NiwgMC42MzM1MjMsIDAuODcyNDk0LCAxLjA4Mjc4LCAxLjM4NDk2Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDI5NzAxLCAwLjEyNjIzOSwgMC4yMjIyNDcsIDAuMjkwNzM1LCAwLjQwMTg4OCwgMC40OTkwMTcsIDAuNjM3ODgzIiwgXAotICAgICAgICAgICIwLjAzNzM2OSwgMC4xMzM5NDEsIDAuMjI5ODk5LCAwLjI5ODU0MSwgMC40MDk1MzgsIDAuNTA2NzQzLCAwLjY0NTc3IiwgXAotICAgICAgICAgICIwLjA0NzUyNywgMC4xNDM1NTgsIDAuMjM5NDc3LCAwLjMwODI4OCwgMC40MTkyMTUsIDAuNTE2MzAzLCAwLjY1NTEzNiIsIFwKLSAgICAgICAgICAiMC4wNTU3OCwgMC4xNTM0NTQsIDAuMjQ5NTMyLCAwLjMxODE3NywgMC40MjkyNzYsIDAuNTI2NjUxLCAwLjY2NTIyMiIsIFwKLSAgICAgICAgICAiMC4wNjMwMjIsIDAuMTYzMTU2LCAwLjI1OTI3MywgMC4zMjc5MTcsIDAuNDM4ODc1LCAwLjUzNTk3OCwgMC42NzQ5OTEiLCBcCi0gICAgICAgICAgIjAuMDcyNTAzLCAwLjE3OTMzNywgMC4yNzQ4NzYsIDAuMzQzNDUzLCAwLjQ1NDQ3NywgMC41NTE0NzMsIDAuNjkwNDQ5IiwgXAotICAgICAgICAgICIwLjA3OTU2NiwgMC4xOTM1MzMsIDAuMjg4ODY4LCAwLjM1NzM4MywgMC40NjgyNzQsIDAuNTY1NDE1LCAwLjcwNDI3MyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1MTYyMiwgMC4yNDk5MjEsIDAuNDUwOTA2LCAwLjU5NDU5OSwgMC44MjQ3NjksIDEuMDI1NDksIDEuMzEyNzQiLCBcCi0gICAgICAgICAgIjAuMDUzMzMxLCAwLjI0OTk4NCwgMC40NTA4MzMsIDAuNTk0NTkxLCAwLjgyNDQ0MiwgMS4wMjU1MSwgMS4zMTI5OSIsIFwKLSAgICAgICAgICAiMC4wNjAwOTIsIDAuMjUwMTUyLCAwLjQ1MDgzLCAwLjU5NDYxNiwgMC44MjQ0MjQsIDEuMDI1NSwgMS4zMTI5MiIsIFwKLSAgICAgICAgICAiMC4wNjg3NzUsIDAuMjUyNzQ0LCAwLjQ1MDkyOSwgMC41OTQ2MzcsIDAuODI0NjY0LCAxLjAyNTYxLCAxLjMxMjkxIiwgXAotICAgICAgICAgICIwLjA3Njg5NywgMC4yNTczODksIDAuNDUyMjQzLCAwLjU5NDczNSwgMC44MjQ2NDYsIDEuMDI1NDgsIDEuMzEzIiwgXAotICAgICAgICAgICIwLjA4ODU5OCwgMC4yNjcyMzgsIDAuNDU3NTg0LCAwLjU5NzQwOSwgMC44MjQ0MzgsIDEuMDI1NDMsIDEuMzEyNjgiLCBcCi0gICAgICAgICAgIjAuMDk4MDg0LCAwLjI3NzI4OCwgMC40NjQwMDYsIDAuNjAxNzg0LCAwLjgyNjQ0NiwgMS4wMjU3LCAxLjMxMjg4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIxIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyNDQwNSwgMC4xMjQ2NjcsIDAuMjI0NzgxLCAwLjI5NjE4MSwgMC40MTA0MTksIDAuNTEwMTYxLCAwLjY1MjYxNCIsIFwKLSAgICAgICAgICAiMC4wMzE4MzYsIDAuMTMyMjY1LCAwLjIzMjM3NiwgMC4zMDM4MjUsIDAuNDE3OTg4LCAwLjUxNzcxOSwgMC42NjAxNCIsIFwKLSAgICAgICAgICAiMC4wNDEwMDksIDAuMTQxODEzLCAwLjI0MTkxNiwgMC4zMTMzOCwgMC40Mjc0ODgsIDAuNTI3MjQ2LCAwLjY2OTcxIiwgXAotICAgICAgICAgICIwLjA0NzY1NywgMC4xNTE1NywgMC4yNTE2ODIsIDAuMzIzMDk1LCAwLjQzNzI0NywgMC41MzY5ODIsIDAuNjc5MzkyIiwgXAotICAgICAgICAgICIwLjA1MzA1NSwgMC4xNjEzNTUsIDAuMjYxMjU1LCAwLjMzMjczNiwgMC40NDY4NjEsIDAuNTQ2NjU1LCAwLjY4OTExNyIsIFwKLSAgICAgICAgICAiMC4wNjAzODEsIDAuMTc2ODcsIDAuMjc2NzA0LCAwLjM0ODAzOCwgMC40NjIxMjEsIDAuNTYxODAyLCAwLjcwNDMyIiwgXAotICAgICAgICAgICIwLjA2NTU5LCAwLjE5MDg3NiwgMC4yOTA1NjUsIDAuMzYxODM5LCAwLjQ3NTg2MiwgMC41NzU2OTUsIDAuNzE4MDU4Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDUzNDM1LCAwLjI2NDg2NywgMC40NzY2ODYsIDAuNjI4MDg1LCAwLjg3MDM0NCwgMS4wODIyOSwgMS4zODUyNCIsIFwKLSAgICAgICAgICAiMC4wNTYzNTEsIDAuMjY0OTA3LCAwLjQ3NjcxOCwgMC42MjgwMzksIDAuODcwMjQ0LCAxLjA4MjE4LCAxLjM4NTEyIiwgXAotICAgICAgICAgICIwLjA2NDM1MywgMC4yNjUyNTksIDAuNDc2NjMyLCAwLjYyODEyMywgMC44NzAyMDUsIDEuMDgyMTUsIDEuMzg0OTMiLCBcCi0gICAgICAgICAgIjAuMDczMjczLCAwLjI2ODE3MywgMC40NzY3NDgsIDAuNjI4MTI0LCAwLjg3MDIsIDEuMDgyMjQsIDEuMzg1MSIsIFwKLSAgICAgICAgICAiMC4wODIwMTksIDAuMjczMDE1LCAwLjQ3ODE5NiwgMC42MjgxODQsIDAuODcwMjI0LCAxLjA4MjI0LCAxLjM4NTE3IiwgXAotICAgICAgICAgICIwLjA5MzM1OSwgMC4yODMxNjksIDAuNDgzNjg4LCAwLjYzMDk0NiwgMC44NzA0NDEsIDEuMDgyMiwgMS4zODUwMSIsIFwKLSAgICAgICAgICAiMC4xMDI3OCwgMC4yOTMyMjksIDAuNDkwMTI2LCAwLjYzNTUyNiwgMC44NzIzMzMsIDEuMDgyNDcsIDEuMzg1MDUiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjY5NjMsIDAuMTI0NjE0LCAwLjIyMTgyOCwgMC4yOTExMzgsIDAuNDAyMTAyLCAwLjQ5OTMwMSwgMC42Mzg0MiIsIFwKLSAgICAgICAgICAiMC4wMzQ1OTcsIDAuMTMyMzMzLCAwLjIyOTU4MiwgMC4yOTg5LCAwLjQwOTk1LCAwLjUwNjkyMywgMC42NDU5MDEiLCBcCi0gICAgICAgICAgIjAuMDQ0NDUzLCAwLjE0MjA5MiwgMC4yMzkyNzgsIDAuMzA4NjYyLCAwLjQxOTc5MywgMC41MTY3NDUsIDAuNjU1Njg1IiwgXAotICAgICAgICAgICIwLjA1MjI2MiwgMC4xNTIwMjUsIDAuMjQ5Mjg5LCAwLjMxODYwNSwgMC40Mjk2MDIsIDAuNTI2NTUxLCAwLjY2NTcyNyIsIFwKLSAgICAgICAgICAiMC4wNTg2MTksIDAuMTYxOTM4LCAwLjI1ODkzOCwgMC4zMjgzNjIsIDAuNDM5MzUxLCAwLjUzNjMwMiwgMC42NzUzNzEiLCBcCi0gICAgICAgICAgIjAuMDY3NDA1LCAwLjE3NzkzNSwgMC4yNzQ3NTYsIDAuMzQ0MTUsIDAuNDU0OTY5LCAwLjU1MjA2LCAwLjY5MDk0OCIsIFwKLSAgICAgICAgICAiMC4wNzMyMzksIDAuMTkyMDcxLCAwLjI4ODkwOCwgMC4zNTgwNTMsIDAuNDY5MDc2LCAwLjU2NjAzMSwgMC43MDUwMDUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDc5OTEsIDAuMjQ5MDM1LCAwLjQ1MDAwOCwgMC41OTY0OSwgMC44MjYzNjMsIDEuMDI3MzQsIDEuMzE3NjIiLCBcCi0gICAgICAgICAgIjAuMDQ5OTAzLCAwLjI0OTE3NCwgMC40NTAwMTcsIDAuNTkzNjg2LCAwLjgyNTY3OCwgMS4wMjc4NCwgMS4zMTk1OCIsIFwKLSAgICAgICAgICAiMC4wNTcyNDUsIDAuMjQ5MjQ4LCAwLjQ1MDA2NSwgMC41OTM2ODQsIDAuODI0ODk4LCAxLjAyODE1LCAxLjMxODkyIiwgXAotICAgICAgICAgICIwLjA2NTkxMSwgMC4yNTE3OTYsIDAuNDUwMDcxLCAwLjU5NDAwNywgMC44MjY3NzcsIDEuMDI3OTUsIDEuMzE2NjUiLCBcCi0gICAgICAgICAgIjAuMDc0MTM3LCAwLjI1NjMxMywgMC40NTExNjgsIDAuNTk0OTY0LCAwLjgyNjcyMywgMS4wMjk2MywgMS4zMTk3MSIsIFwKLSAgICAgICAgICAiMC4wODU1MzIsIDAuMjY2MTI3LCAwLjQ1NjMzNSwgMC41OTc1MzMsIDAuODI2ODA2LCAxLjAyNzQxLCAxLjMxOTM4IiwgXAotICAgICAgICAgICIwLjA5NTIzNSwgMC4yNzU3MjQsIDAuNDYyNzg0LCAwLjYwMTc4NSwgMC44Mjg2NjQsIDEuMDI4MzcsIDEuMzE5NDUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBME4iOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE4NjQ3LCAwLjAxODY4MiwgMC4wMTg2ODEsIDAuMDE4Njg1LCAwLjAxODY4NCwgMC4wMTg2ODIsIDAuMDE4NjgxIiwgXAotICAgICAgICAgICIwLjAxODYxLCAwLjAxODY1NiwgMC4wMTg2NjMsIDAuMDE4NjYsIDAuMDE4NjYyLCAwLjAxODY2MiwgMC4wMTg2NjEiLCBcCi0gICAgICAgICAgIjAuMDE4NjU5LCAwLjAxODcyMywgMC4wMTg3MzQsIDAuMDE4NzM1LCAwLjAxODczNiwgMC4wMTg3MzYsIDAuMDE4NzM0IiwgXAotICAgICAgICAgICIwLjAxODc1NywgMC4wMTg4MjMsIDAuMDE4ODMyLCAwLjAxODgzNCwgMC4wMTg4MzgsIDAuMDE4ODM3LCAwLjAxODgzNyIsIFwKLSAgICAgICAgICAiMC4wMTg4OTIsIDAuMDE4OTU4LCAwLjAxODk3LCAwLjAxODk3NiwgMC4wMTg5NzgsIDAuMDE4OTc4LCAwLjAxODk3NyIsIFwKLSAgICAgICAgICAiMC4wMTkxNTEsIDAuMDE5MjExLCAwLjAxOTIyNSwgMC4wMTkyMzEsIDAuMDE5MjMsIDAuMDE5MjMyLCAwLjAxOTIzMiIsIFwKLSAgICAgICAgICAiMC4wMTk0LCAwLjAxOTQ1NywgMC4wMTk0NzQsIDAuMDE5NDc0LCAwLjAxOTQ3OCwgMC4wMTk0ODEsIDAuMDE5NDc4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTE3NiwgMC4wMTE4MywgMC4wMTE4MzksIDAuMDExODQxLCAwLjAxMTg0MywgMC4wMTE4NDMsIDAuMDExODQzIiwgXAotICAgICAgICAgICIwLjAxMTcxNywgMC4wMTE4MDUsIDAuMDExODE3LCAwLjAxMTgyMSwgMC4wMTE4MjMsIDAuMDExODI1LCAwLjAxMTgyNyIsIFwKLSAgICAgICAgICAiMC4wMTE3NTcsIDAuMDExODY3LCAwLjAxMTg4NiwgMC4wMTE4OSwgMC4wMTE4OTYsIDAuMDExODk4LCAwLjAxMTg5OSIsIFwKLSAgICAgICAgICAiMC4wMTE4MzksIDAuMDExOTYsIDAuMDExOTgzLCAwLjAxMTk4OSwgMC4wMTE5OTUsIDAuMDExOTk5LCAwLjAxMiIsIFwKLSAgICAgICAgICAiMC4wMTE5NDksIDAuMDEyMDc5LCAwLjAxMjEwMiwgMC4wMTIxMTMsIDAuMDEyMTIsIDAuMDEyMTI0LCAwLjAxMjEyMiIsIFwKLSAgICAgICAgICAiMC4wMTIxNzIsIDAuMDEyMzA5LCAwLjAxMjMzNywgMC4wMTIzMzYsIDAuMDEyMzU1LCAwLjAxMjM0OSwgMC4wMTIzNjUiLCBcCi0gICAgICAgICAgIjAuMDEyMzkyLCAwLjAxMjUxNCwgMC4wMTI1NDYsIDAuMDEyNTU2LCAwLjAxMjU2NywgMC4wMTI1NywgMC4wMTI1NzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMU4iOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE2ODI2LCAwLjAxNjg4MSwgMC4wMTY4ODUsIDAuMDE2ODg3LCAwLjAxNjg4NSwgMC4wMTY4ODMsIDAuMDE2ODgzIiwgXAotICAgICAgICAgICIwLjAxNjc3LCAwLjAxNjg0OCwgMC4wMTY4NiwgMC4wMTY4NjMsIDAuMDE2ODY0LCAwLjAxNjg2NCwgMC4wMTY4NjMiLCBcCi0gICAgICAgICAgIjAuMDE2ODM0LCAwLjAxNjkwOSwgMC4wMTY5MjQsIDAuMDE2OTI1LCAwLjAxNjkyOCwgMC4wMTY5MjksIDAuMDE2OTMxIiwgXAotICAgICAgICAgICIwLjAxNjk1MSwgMC4wMTcwMTQsIDAuMDE3MDI1LCAwLjAxNzAyOCwgMC4wMTcwMzMsIDAuMDE3MDMzLCAwLjAxNzAzMyIsIFwKLSAgICAgICAgICAiMC4wMTcwOTQsIDAuMDE3MTUsIDAuMDE3MTY3LCAwLjAxNzE2OCwgMC4wMTcxNzMsIDAuMDE3MTc3LCAwLjAxNzE3MyIsIFwKLSAgICAgICAgICAiMC4wMTc0MDksIDAuMDE3NDEyLCAwLjAxNzQyNSwgMC4wMTc0MjYsIDAuMDE3NDI4LCAwLjAxNzQzMiwgMC4wMTc0MzEiLCBcCi0gICAgICAgICAgIjAuMDE3Njc2LCAwLjAxNzY1NCwgMC4wMTc2NjgsIDAuMDE3NjcsIDAuMDE3Njc2LCAwLjAxNzY3OSwgMC4wMTc2NzciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMDUzNSwgMC4wMTA3NDgsIDAuMDEwNzc1LCAwLjAxMDc4MywgMC4wMTA3OTEsIDAuMDEwNzk1LCAwLjAxMDc5OCIsIFwKLSAgICAgICAgICAiMC4wMTA0NTUsIDAuMDEwNzEsIDAuMDEwNzQ4LCAwLjAxMDc2LCAwLjAxMDc3MSwgMC4wMTA3NzYsIDAuMDEwNzgxIiwgXAotICAgICAgICAgICIwLjAxMDQ0OCwgMC4wMTA3NTcsIDAuMDEwODEsIDAuMDEwODI2LCAwLjAxMDg0MSwgMC4wMTA4NDksIDAuMDEwODU2IiwgXAotICAgICAgICAgICIwLjAxMDUwMSwgMC4wMTA4MzUsIDAuMDEwODk4LCAwLjAxMDkxOCwgMC4wMTA5MzYsIDAuMDEwOTQ2LCAwLjAxMDk1NCIsIFwKLSAgICAgICAgICAiMC4wMTA1OTcsIDAuMDEwOTQ2LCAwLjAxMTAxNSwgMC4wMTEwMzksIDAuMDExMDUyLCAwLjAxMTA3MSwgMC4wMTEwODEiLCBcCi0gICAgICAgICAgIjAuMDEwNzk1LCAwLjAxMTE0OSwgMC4wMTEyMjksIDAuMDExMjU2LCAwLjAxMTI4MSwgMC4wMTEzMDUsIDAuMDExMzA2IiwgXAotICAgICAgICAgICIwLjAxMDk5OCwgMC4wMTEzNTIsIDAuMDExNDQyLCAwLjAxMTQ3MiwgMC4wMTE0OTksIDAuMDExNTE0LCAwLjAxMTUyNiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMTUxNywgMC4wMTE1OTEsIDAuMDExNjAxLCAwLjAxMTYwMywgMC4wMTE2MDUsIDAuMDExNjA2LCAwLjAxMTYwOCIsIFwKLSAgICAgICAgICAiMC4wMTEzNTMsIDAuMDExNTc0LCAwLjAxMTYwOSwgMC4wMTE2MTksIDAuMDExNjI5LCAwLjAxMTYzNCwgMC4wMTE2MzYiLCBcCi0gICAgICAgICAgIjAuMDExMzMsIDAuMDExNTQsIDAuMDExNTg5LCAwLjAxMTYwNSwgMC4wMTE2MTcsIDAuMDExNjI3LCAwLjAxMTYzNSIsIFwKLSAgICAgICAgICAiMC4wMTE0NDYsIDAuMDExNTQ3LCAwLjAxMTU5MiwgMC4wMTE2MDgsIDAuMDExNjI3LCAwLjAxMTYzNSwgMC4wMTE2NCIsIFwKLSAgICAgICAgICAiMC4wMTE2NjUsIDAuMDExNTk1LCAwLjAxMTYyMSwgMC4wMTE2MjksIDAuMDExNjM4LCAwLjAxMTY0NCwgMC4wMTE2NDgiLCBcCi0gICAgICAgICAgIjAuMDEyMTUzLCAwLjAxMTc1MSwgMC4wMTE3MTIsIDAuMDExNzAzLCAwLjAxMTY5OSwgMC4wMTE2OTIsIDAuMDExNjkxIiwgXAotICAgICAgICAgICIwLjAxMjY4NiwgMC4wMTE5MywgMC4wMTE4MzQsIDAuMDExNzk5LCAwLjAxMTc3MywgMC4wMTE3NTMsIDAuMDExNzM5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQ1MzMsIDAuMDA0NTY0LCAwLjAwNDU2NywgMC4wMDQ1NjgsIDAuMDA0NTY4LCAwLjAwNDU2OSwgMC4wMDQ1NjgiLCBcCi0gICAgICAgICAgIjAuMDA0NDIyLCAwLjAwNDQ5NSwgMC4wMDQ1MDQsIDAuMDA0NTA4LCAwLjAwNDUxLCAwLjAwNDUxMSwgMC4wMDQ1MTQiLCBcCi0gICAgICAgICAgIjAuMDA0NTc1LCAwLjAwNDUzOSwgMC4wMDQ1MjcsIDAuMDA0NTE0LCAwLjAwNDUyLCAwLjAwNDUxOCwgMC4wMDQ1MTYiLCBcCi0gICAgICAgICAgIjAuMDA0ODQ0LCAwLjAwNDYyMSwgMC4wMDQ1NjQsIDAuMDA0NTU2LCAwLjAwNDU0NCwgMC4wMDQ1MzYsIDAuMDA0NTI5IiwgXAotICAgICAgICAgICIwLjAwNTE3MiwgMC4wMDQ4MTEsIDAuMDA0NjY4LCAwLjAwNDY0LCAwLjAwNDYwNywgMC4wMDQ1ODksIDAuMDA0NTciLCBcCi0gICAgICAgICAgIjAuMDA1OTI4LCAwLjAwNTA5NSwgMC4wMDQ4ODksIDAuMDA0ODEyLCAwLjAwNDc0OCwgMC4wMDQ3MDYsIDAuMDA0NjY1IiwgXAotICAgICAgICAgICIwLjAwNjY0MSwgMC4wMDU0MDYsIDAuMDA1MTExLCAwLjAwNDk5MiwgMC4wMDQ4OCwgMC4wMDQ4MywgMC4wMDQ3NjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDk2ODksIDAuMDA5NzkzLCAwLjAwOTgwNCwgMC4wMDk4MDgsIDAuMDA5ODExLCAwLjAwOTgxMiwgMC4wMDk4MTMiLCBcCi0gICAgICAgICAgIjAuMDA5NjA2LCAwLjAwOTc4NSwgMC4wMDk4MTMsIDAuMDA5ODI3LCAwLjAwOTgzNiwgMC4wMDk4MzcsIDAuMDA5ODQ2IiwgXAotICAgICAgICAgICIwLjAwOTc4MywgMC4wMDk4MDEsIDAuMDA5ODI1LCAwLjAwOTgzNCwgMC4wMDk4NDMsIDAuMDA5ODQ2LCAwLjAwOTg0OSIsIFwKLSAgICAgICAgICAiMC4wMTAwMTcsIDAuMDA5ODQ0LCAwLjAwOTg1MiwgMC4wMDk4NTEsIDAuMDA5ODU0LCAwLjAwOTg1NywgMC4wMDk4NTkiLCBcCi0gICAgICAgICAgIjAuMDEwNDI2LCAwLjAwOTk1MiwgMC4wMDk5MTMsIDAuMDA5OTEyLCAwLjAwOTg5MywgMC4wMDk4ODgsIDAuMDA5ODgzIiwgXAotICAgICAgICAgICIwLjAxMTAyNiwgMC4wMTAyMTQsIDAuMDEwMDk2LCAwLjAxMDA0OCwgMC4wMTAwMTgsIDAuMDA5OTc3LCAwLjAwOTk1NSIsIFwKLSAgICAgICAgICAiMC4wMTE3MzcsIDAuMDEwNDQ5LCAwLjAxMDI2LCAwLjAxMDE4LCAwLjAxMDEwMiwgMC4wMTAwNzksIDAuMDEwMDQyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDMwMDIsIDAuMDAzMTExLCAwLjAwMzEyNCwgMC4wMDMxMjgsIDAuMDAzMTMsIDAuMDAzMTMyLCAwLjAwMzEzMyIsIFwKLSAgICAgICAgICAiMC4wMDI4NjUsIDAuMDAzMTAzLCAwLjAwMzEzOCwgMC4wMDMxNSwgMC4wMDMxNiwgMC4wMDMxNjYsIDAuMDAzMTciLCBcCi0gICAgICAgICAgIjAuMDAzMDU0LCAwLjAwMzExMSwgMC4wMDMxNDMsIDAuMDAzMTU0LCAwLjAwMzE2NCwgMC4wMDMxNywgMC4wMDMxNzUiLCBcCi0gICAgICAgICAgIjAuMDAzMTgxLCAwLjAwMzEyOCwgMC4wMDMxNTksIDAuMDAzMTY4LCAwLjAwMzE3NSwgMC4wMDMxOCwgMC4wMDMxODQiLCBcCi0gICAgICAgICAgIjAuMDAzNTgzLCAwLjAwMzI2MywgMC4wMDMyMzIsIDAuMDAzMjI0LCAwLjAwMzIxNSwgMC4wMDMyMTMsIDAuMDAzMjEiLCBcCi0gICAgICAgICAgIjAuMDA0MTkzLCAwLjAwMzQ4NiwgMC4wMDMzOCwgMC4wMDMzNiwgMC4wMDMzMjIsIDAuMDAzMzAxLCAwLjAwMzI4MSIsIFwKLSAgICAgICAgICAiMC4wMDUwMiwgMC4wMDM3MTMsIDAuMDAzNTUxLCAwLjAwMzQ3NywgMC4wMDM0MDgsIDAuMDAzMzkxLCAwLjAwMzM1OSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IE9BSTMxWDQgKgotICogLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoT0FJMzFYNCkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAxLjI3NTQ1OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAzNjM5OTY7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAzNjI5MTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDM2Mzk5NjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDIwOTcsIDAuMDAyMDk0LCAwLjAwMjA5NCwgMC4wMDIwOTQsIDAuMDAyMDkzLCAwLjAwMjA5NCwgMC4wMDIwOTMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDIxMTMsIDAuMDAyMTAyLCAwLjAwMjEwMiwgMC4wMDIxMDMsIDAuMDAyMTAzLCAwLjAwMjEwNCwgMC4wMDIxMDIiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEExKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDM2MTIwMzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDM2MDQ2MzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDM2MTIwMzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDIwOTgsIDAuMDAyMDk2LCAwLjAwMjA5NiwgMC4wMDIwOTYsIDAuMDAyMDk1LCAwLjAwMjA5NSwgMC4wMDIwOTUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDIxMTEsIDAuMDAyMTAyLCAwLjAwMjEwMSwgMC4wMDIxMDIsIDAuMDAyMTAyLCAwLjAwMjEwMSwgMC4wMDIxIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihBMikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAzMzk0OTQ7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAzMzk0OTQ7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAzMzg2NzI7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyMDk3LCAwLjAwMjA5NywgMC4wMDIwOTcsIDAuMDAyMDk2LCAwLjAwMjA5NiwgMC4wMDIwOTUsIDAuMDAyMDk1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyMTExLCAwLjAwMjEsIDAuMDAyMTAxLCAwLjAwMjEwMSwgMC4wMDIxMDEsIDAuMDAyMTAyLCAwLjAwMjEiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDMyNTExNzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDMyNTA2MTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDMyNTExNzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDIxODgsIDAuMDAyMTkyLCAwLjAwMjE5NCwgMC4wMDIxOTMsIDAuMDAyMTk0LCAwLjAwMjE5MiwgMC4wMDIxOTQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDIzODIsIDAuMDAyMzgzLCAwLjAwMjM4NCwgMC4wMDIzODUsIDAuMDAyMzg1LCAwLjAwMjM4NSwgMC4wMDIzODUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC41MDk3NzU7Ci0gICAgZnVuY3Rpb24gOiAiKCEoKChBMCtBMSkrQTIpIEIwKSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0NTk1LCAwLjE5MTAyNywgMC4zMzU2ODUsIDAuNDM4NDk5LCAwLjYwMjg4LCAwLjc0NzEwMiwgMC45NTQ1MzkiLCBcCi0gICAgICAgICAgIjAuMDUxMjkzLCAwLjE5NjU0NSwgMC4zNDA4OTcsIDAuNDQ0MjkxLCAwLjYwOTM0NiwgMC43NTM4MjcsIDAuOTU5MTg4IiwgXAotICAgICAgICAgICIwLjA1NjYwOSwgMC4yMDE5OTgsIDAuMzQ2NDY3LCAwLjQ0OTIwOCwgMC42MTQ5MDEsIDAuNzU4NTUxLCAwLjk2NTU0NCIsIFwKLSAgICAgICAgICAiMC4wNjEyOTMsIDAuMjA2OTk1LCAwLjM1MTQ0LCAwLjQ1NDc4NSwgMC42MTk4MzMsIDAuNzYzODI2LCAwLjk2OTkyMiIsIFwKLSAgICAgICAgICAiMC4wNjUyMDcsIDAuMjEyMTE3LCAwLjM1NjY2MywgMC40NTk2NTYsIDAuNjI0NDUsIDAuNzY4ODMsIDAuOTc1OTMiLCBcCi0gICAgICAgICAgIjAuMDcwNTMxLCAwLjIyMDIzNCwgMC4zNjQ2MjIsIDAuNDY3NzIyLCAwLjYzMjk1NiwgMC43NzcxMzEsIDAuOTgzMjE1IiwgXAotICAgICAgICAgICIwLjA3NDU4LCAwLjIyNzU0NCwgMC4zNzIwMTksIDAuNDc1MDA3LCAwLjYzOTczOSwgMC43ODQxMzMsIDAuOTkwNzI4Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc0OTksIDAuMzc5ODAxLCAwLjY4NDQzNywgMC45MDEzNTksIDEuMjQ5MDcsIDEuNTUzNjYsIDEuOTg4NDciLCBcCi0gICAgICAgICAgIjAuMDc1MjksIDAuMzc5ODc3LCAwLjY4NDExMiwgMC45MDEzMywgMS4yNDkzMSwgMS41NTM2OSwgMS45ODg2NCIsIFwKLSAgICAgICAgICAiMC4wNzczODksIDAuMzc5NjgsIDAuNjg0MjMsIDAuOTAxNjQxLCAxLjI0OTQzLCAxLjU1Mzg3LCAxLjk4ODU5IiwgXAotICAgICAgICAgICIwLjA4MDg2MywgMC4zODAxMjMsIDAuNjg0MTI0LCAwLjkwMTU3OSwgMS4yNDkzNCwgMS41NTM2NSwgMS45ODgzMSIsIFwKLSAgICAgICAgICAiMC4wODU0MDUsIDAuMzgxNTMyLCAwLjY4NDIwNSwgMC45MDE1OCwgMS4yNDkyNywgMS41NTM3NiwgMS45ODg1NSIsIFwKLSAgICAgICAgICAiMC4wOTMwODYsIDAuMzg0ODI0LCAwLjY4NTQ3NiwgMC45MDE4MiwgMS4yNDk3LCAxLjU1Mzc0LCAxLjk4ODgiLCBcCi0gICAgICAgICAgIjAuMDk5ODM2LCAwLjM4ODcwOSwgMC42ODc4NTcsIDAuOTAyOTA5LCAxLjI0OTg2LCAxLjU1MzgsIDEuOTg4MDciKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzI4NTQsIDAuMTI5ODg0LCAwLjIyNTg5LCAwLjI5NDUzMiwgMC40MDM5NzYsIDAuNTAwMzExLCAwLjYzNzA3NSIsIFwKLSAgICAgICAgICAiMC4wMzk4MjQsIDAuMTM2ODYsIDAuMjMyOTE5LCAwLjMwMTQ2NiwgMC40MTEwNDMsIDAuNTA2OTgyLCAwLjY0MzkyMSIsIFwKLSAgICAgICAgICAiMC4wNDc3NDIsIDAuMTQ0OTI3LCAwLjI0MTA5NCwgMC4zMDk1NTUsIDAuNDE5MjE5LCAwLjUxNTE0NSwgMC42NTIxOTYiLCBcCi0gICAgICAgICAgIjAuMDU0MzksIDAuMTUyOTM2LCAwLjI0OTIzMSwgMC4zMTc3MTMsIDAuNDI3NTQsIDAuNTIzNTM5LCAwLjY2MDMwOSIsIFwKLSAgICAgICAgICAiMC4wNTk4NzUsIDAuMTYxMDk2LCAwLjI1NzIyNywgMC4zMjU3NjMsIDAuNDM1NTA5LCAwLjUzMTM1NiwgMC42NjgzNTciLCBcCi0gICAgICAgICAgIjAuMDY3Mjc4LCAwLjE3Mzg5OCwgMC4yNjk5NDQsIDAuMzM4NjEsIDAuNDQ4NDU5LCAwLjU0NDQ1MiwgMC42ODE2NjMiLCBcCi0gICAgICAgICAgIjAuMDcyODU1LCAwLjE4NTA5MiwgMC4yODEyNTMsIDAuMzQ5Nzk4LCAwLjQ1OTY2NiwgMC41NTU3NTYsIDAuNjkyODk3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQ5MjM2LCAwLjI0ODM2OCwgMC40NDc1NjQsIDAuNTkwMTg0LCAwLjgxNzg1NSwgMS4wMTcxOSwgMS4zMDE2MSIsIFwKLSAgICAgICAgICAiMC4wNDk5NTksIDAuMjQ4MzM5LCAwLjQ0Nzc1LCAwLjU4OTg0NywgMC44MTc5LCAxLjAxNjg5LCAxLjMwMTQ1IiwgXAotICAgICAgICAgICIwLjA1Mzg3MiwgMC4yNDg0NjIsIDAuNDQ3NTM1LCAwLjU5MDA0MywgMC44MTc2LCAxLjAxNzQ4LCAxLjMwMTEzIiwgXAotICAgICAgICAgICIwLjA1OTU0MSwgMC4yNTAwNDYsIDAuNDQ3NzczLCAwLjU5MDA0LCAwLjgxNzk3NiwgMS4wMTY4NSwgMS4zMDE1NiIsIFwKLSAgICAgICAgICAiMC4wNjU4MzcsIDAuMjUzMTM4LCAwLjQ0ODY4NCwgMC41OTAyNDQsIDAuODE3NTc2LCAxLjAxNzM0LCAxLjMwMTUxIiwgXAotICAgICAgICAgICIwLjA3NTYwMiwgMC4yNTkzMTIsIDAuNDUxOTc1LCAwLjU5MTkzMiwgMC44MTc5MDksIDEuMDE2ODIsIDEuMzAxNzUiLCBcCi0gICAgICAgICAgIjAuMDgzNjUxLCAwLjI2NjEzOSwgMC40NTYxMzUsIDAuNTk0NzczLCAwLjgxOTE0MSwgMS4wMTczMiwgMS4zMDE1NyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDM3NDEsIDAuMTg4NzI2LCAwLjMzMzUsIDAuNDM2NDI4LCAwLjYwMTYzNywgMC43NDU2OTUsIDAuOTUyNjY5IiwgXAotICAgICAgICAgICIwLjA0OTgxOSwgMC4xOTUwNzksIDAuMzM5Nzk5LCAwLjQ0MzA0LCAwLjYwNzg2MSwgMC43NTIzODksIDAuOTU4NjIiLCBcCi0gICAgICAgICAgIjAuMDU3MjkxLCAwLjIwMjYxNywgMC4zNDcyMTksIDAuNDUwMjE4LCAwLjYxNTA3LCAwLjc2MDIyMSwgMC45NjU0MDEiLCBcCi0gICAgICAgICAgIjAuMDY0MjUsIDAuMjEwMzA5LCAwLjM1NDY3LCAwLjQ1NzcwNCwgMC42MjI5NzgsIDAuNzY3MTUxLCAwLjk3MzIwMyIsIFwKLSAgICAgICAgICAiMC4wNzAyNSwgMC4yMTc3OTMsIDAuMzYyMDk1LCAwLjQ2NTY3MywgMC42MzA0MjIsIDAuNzc0Njg5LCAwLjk4MDczOCIsIFwKLSAgICAgICAgICAiMC4wNzg1MzYsIDAuMjI5OTc0LCAwLjM3NDU0MiwgMC40Nzc5MzQsIDAuNjQyOTExLCAwLjc4NzUyOSwgMC45OTMxMTciLCBcCi0gICAgICAgICAgIjAuMDg0NTYxLCAwLjI0MDg2NSwgMC4zODUwODEsIDAuNDg4NzI1LCAwLjY1MzgwMiwgMC43OTc3MzgsIDEuMDAzNjEiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzQ5OTIsIDAuMzc5NTc3LCAwLjY4NDMxNiwgMC45MDE1MDMsIDEuMjQ5MzcsIDEuNTUzMTQsIDEuOTg4NjYiLCBcCi0gICAgICAgICAgIjAuMDc1NTk0LCAwLjM3OTg3MSwgMC42ODQ0MSwgMC45MDE2NzUsIDEuMjQ5NDgsIDEuNTUzNzEsIDEuOTg4NjIiLCBcCi0gICAgICAgICAgIjAuMDc5MzY4LCAwLjM3OTU3MiwgMC42ODQzMTEsIDAuOTAxNzI5LCAxLjI0OTQzLCAxLjU1Mzg2LCAxLjk4ODc0IiwgXAotICAgICAgICAgICIwLjA4NDczNywgMC4zODAyMzIsIDAuNjg0NDE3LCAwLjkwMTQ3MSwgMS4yNDg5OSwgMS41NTM5MywgMS45ODgyNCIsIFwKLSAgICAgICAgICAiMC4wOTE0MjksIDAuMzgyMTQsIDAuNjg0NjMxLCAwLjkwMTU0NiwgMS4yNDkzMywgMS41NTQwNSwgMS45ODg0MiIsIFwKLSAgICAgICAgICAiMC4xMDE3MDcsIDAuMzg2ODM4LCAwLjY4NTgxMSwgMC45MDE2OSwgMS4yNDkwNiwgMS41NTQxNiwgMS45ODc2NCIsIFwKLSAgICAgICAgICAiMC4xMTAxNDksIDAuMzkyNDczLCAwLjY4ODQwNCwgMC45MDMwNzYsIDEuMjQ5NDUsIDEuNTUzOTQsIDEuOTg5MDQiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzAzNjUsIDAuMTI2NjYxLCAwLjIyMjcxMywgMC4yOTEyNDcsIDAuNDAwOTI1LCAwLjQ5NjY0NywgMC42MzQxMzUiLCBcCi0gICAgICAgICAgIjAuMDM3MjkxLCAwLjEzMzg2MywgMC4yMjk3OTEsIDAuMjk4MzM3LCAwLjQwNzk1OSwgMC41MDM4NDYsIDAuNjQxMzQ1IiwgXAotICAgICAgICAgICIwLjA0NDk2NywgMC4xNDE4NzQsIDAuMjM3OTc3LCAwLjMwNjYxLCAwLjQxNjE3OSwgMC41MTIwNiwgMC42NDkyODUiLCBcCi0gICAgICAgICAgIjAuMDUxMTczLCAwLjE0OTg3NiwgMC4yNDYxMzIsIDAuMzE0NjM2LCAwLjQyNDI2OCwgMC41MjA1MDcsIDAuNjU3NzgxIiwgXAotICAgICAgICAgICIwLjA1NjIzNCwgMC4xNTgwMTIsIDAuMjU0MDMzLCAwLjMyMjU5MSwgMC40MzIzOTMsIDAuNTI4NDA4LCAwLjY2NTIyMiIsIFwKLSAgICAgICAgICAiMC4wNjMxNDYsIDAuMTcwNjgzLCAwLjI2Njc0NywgMC4zMzU0MzcsIDAuNDQ1MjEsIDAuNTQxMzU3LCAwLjY3ODMyNiIsIFwKLSAgICAgICAgICAiMC4wNjc5MjgsIDAuMTgyMjE0LCAwLjI3ODA0MSwgMC4zNDY1NzQsIDAuNDU2NTQ3LCAwLjU1Mjg5NCwgMC42OTAwNzkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDUwNzcsIDAuMjQ0NTM5LCAwLjQ0Mzk1MiwgMC41ODYxOTgsIDAuODE0MDA4LCAxLjAxMzAxLCAxLjI5NzkzIiwgXAotICAgICAgICAgICIwLjA0NTg4OCwgMC4yNDQ0NCwgMC40NDM3OCwgMC41ODYyMzMsIDAuODEzNzI5LCAxLjAxMjkzLCAxLjI5Nzk2IiwgXAotICAgICAgICAgICIwLjA1MDA2OSwgMC4yNDQ2MTYsIDAuNDQzODE5LCAwLjU4NjE2MywgMC44MTM2NzksIDEuMDEzMjgsIDEuMjk3NzQiLCBcCi0gICAgICAgICAgIjAuMDU2MDEsIDAuMjQ2MjQ4LCAwLjQ0Mzk1NiwgMC41ODYyMTUsIDAuODEzOTU5LCAxLjAxMzA5LCAxLjI5ODAxIiwgXAotICAgICAgICAgICIwLjA2MjI1NiwgMC4yNDkyODMsIDAuNDQ0OTYsIDAuNTg2MzIzLCAwLjgxMzgyNSwgMS4wMTMyMSwgMS4yOTc1OSIsIFwKLSAgICAgICAgICAiMC4wNzE3NTIsIDAuMjU1NTk0LCAwLjQ0ODA3LCAwLjU4ODEzMywgMC44MTQzMDMsIDEuMDEyODIsIDEuMjk3NjkiLCBcCi0gICAgICAgICAgIjAuMDc5OTU0LCAwLjI2MjgwNywgMC40NTI0NTIsIDAuNTkxMDMsIDAuODE1NzU3LCAxLjAxMzM3LCAxLjI5NzYyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEyIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzODc2NCwgMC4xODM4OTUsIDAuMzI4NTgsIDAuNDMxNDMzLCAwLjU5NjcwMywgMC43NDA5NDQsIDAuOTQ3NjM5IiwgXAotICAgICAgICAgICIwLjA0NTY3MSwgMC4xOTA5NDYsIDAuMzM1MjgsIDAuNDM4NzUsIDAuNjAzMjg4LCAwLjc0ODIyOSwgMC45NTQwNjkiLCBcCi0gICAgICAgICAgIjAuMDU1MDEsIDAuMjAwMDA5LCAwLjM0NDQxLCAwLjQ0NzYzNywgMC42MTI0MDEsIDAuNzU3MDksIDAuOTYyNTM2IiwgXAotICAgICAgICAgICIwLjA2NDEwNCwgMC4yMDkwNiwgMC4zNTMzNDgsIDAuNDU2NDQ1LCAwLjYyMTYyLCAwLjc2NjQwNywgMC45NzE1NzkiLCBcCi0gICAgICAgICAgIjAuMDcxNTczLCAwLjIxODM3MSwgMC4zNjI1MywgMC40NjU3NzYsIDAuNjMxMDMxLCAwLjc3NDcxMiwgMC45ODE5NjEiLCBcCi0gICAgICAgICAgIjAuMDgxMzc2LCAwLjIzMjkzMywgMC4zNzY4NzgsIDAuNDgwMjM0LCAwLjY0NDY2MSwgMC43ODg3NDksIDAuOTk0OTkzIiwgXAotICAgICAgICAgICIwLjA4OTMwNywgMC4yNDU5NDYsIDAuMzg5NywgMC40OTI1NjksIDAuNjU3NDE5LCAwLjgwMTY2NiwgMS4wMDc3NSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3NDkzMywgMC4zNzk4NywgMC42ODQzOCwgMC45MDE2MDksIDEuMjQ5NTEsIDEuNTUzNTQsIDEuOTg4NTciLCBcCi0gICAgICAgICAgIjAuMDc1ODE1LCAwLjM3OTY1NiwgMC42ODQ0MzEsIDAuOTAxNjEzLCAxLjI0OTQyLCAxLjU1MzczLCAxLjk4NzYxIiwgXAotICAgICAgICAgICIwLjA4MTY0OCwgMC4zNzk1OTcsIDAuNjg0MzkzLCAwLjkwMTQ5NywgMS4yNDk1MywgMS41NTMzMiwgMS45ODgzMiIsIFwKLSAgICAgICAgICAiMC4wODk0ODEsIDAuMzgwMjU1LCAwLjY4NDAzOSwgMC45MDE1NywgMS4yNDg5MiwgMS41NTM3OCwgMS45ODg0MiIsIFwKLSAgICAgICAgICAiMC4wOTc1MzcsIDAuMzgyODMxLCAwLjY4NDAwMSwgMC45MDE3MzYsIDEuMjQ5MzksIDEuNTUzODgsIDEuOTg4NjQiLCBcCi0gICAgICAgICAgIjAuMTEwMzk5LCAwLjM4OTc2NCwgMC42ODU5MiwgMC45MDE2MDcsIDEuMjQ5MzksIDEuNTU0MjYsIDEuOTg4ODYiLCBcCi0gICAgICAgICAgIjAuMTE4OTc0LCAwLjM5NzY2MiwgMC42ODk3MzcsIDAuOTAzMDY5LCAxLjI0OTYxLCAxLjU1MzM0LCAxLjk4Nzk5Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDI3NTMsIDAuMTI1Mzc4LCAwLjIyMzAyNiwgMC4yOTMwMzksIDAuNDA0Mzk2LCAwLjUwMjI1NiwgMC42NDE0NDkiLCBcCi0gICAgICAgICAgIjAuMDM0NDQyLCAwLjEzMjY2MSwgMC4yMzAzNTcsIDAuMzAwMSwgMC40MTE2OTIsIDAuNTA5Nzg4LCAwLjY0ODc0OSIsIFwKLSAgICAgICAgICAiMC4wNDE4MTQsIDAuMTQwNzI5LCAwLjIzODU1NCwgMC4zMDgyNjQsIDAuNDE5OTE2LCAwLjUxNzUyMiwgMC42NTcwMSIsIFwKLSAgICAgICAgICAiMC4wNDc1NjMsIDAuMTQ4NzAyLCAwLjI0NjU2NCwgMC4zMTYzOTEsIDAuNDI4MDIxLCAwLjUyNjAwMywgMC42NjUxNTEiLCBcCi0gICAgICAgICAgIjAuMDUyMjQ5LCAwLjE1NjYzOSwgMC4yNTQ3MTIsIDAuMzI0Njg5LCAwLjQzNjUxMSwgMC41MzM5NDUsIDAuNjczNTk0IiwgXAotICAgICAgICAgICIwLjA1ODI3MiwgMC4xNjk0NzIsIDAuMjY3NDE2LCAwLjMzNzMwNCwgMC40NDkwMzUsIDAuNTQ2ODI3LCAwLjY4NjMyMiIsIFwKLSAgICAgICAgICAiMC4wNjI2NTgsIDAuMTgwOTIsIDAuMjc4NjUzLCAwLjM0ODQ1MiwgMC40NjA0MDgsIDAuNTU4MzI1LCAwLjY5NzgxNiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0MTc0NiwgMC4yNDQ2ODMsIDAuNDQ3NDExLCAwLjU5MjU4OSwgMC44MjQ4MzksIDEuMDI3MjgsIDEuMzE3OTEiLCBcCi0gICAgICAgICAgIjAuMDQyNjAyLCAwLjI0NTA3MiwgMC40NDg0NCwgMC41OTMzMDUsIDAuODI2MTI4LCAxLjAyNzU5LCAxLjMxOTk4IiwgXAotICAgICAgICAgICIwLjA0NzA4NywgMC4yNDUyMzksIDAuNDQ3MzgyLCAwLjU5MzY5LCAwLjgyNDMxMiwgMS4wMjk1MSwgMS4zMjAwNiIsIFwKLSAgICAgICAgICAiMC4wNTM0MzQsIDAuMjQ2MzI0LCAwLjQ0Nzc0NywgMC41OTI3MzIsIDAuODI0ODY4LCAxLjAyNzM5LCAxLjMxODA4IiwgXAotICAgICAgICAgICIwLjA1OTUyMSwgMC4yNDkzNjUsIDAuNDQ5NDM3LCAwLjU5MzgyNywgMC44MjQ0NTgsIDEuMDI3MDksIDEuMzE3NjMiLCBcCi0gICAgICAgICAgIjAuMDY5MDk1LCAwLjI1NTgxNCwgMC40NTI2MjgsIDAuNTk1NDc3LCAwLjgyNjE4OSwgMS4wMjk0NiwgMS4zMTk5OSIsIFwKLSAgICAgICAgICAiMC4wNzcxMTgsIDAuMjYyODkzLCAwLjQ1NjMsIDAuNTk3MTgzLCAwLjgyNzYzLCAxLjAyODA5LCAxLjMxODcxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMzkzMywgMC4wNjkwMjcsIDAuMTI0MDMzLCAwLjE2MzI5OCwgMC4yMjYxMjksIDAuMjgxMTEyLCAwLjM1OTYxIiwgXAotICAgICAgICAgICIwLjAyMjAzNSwgMC4wNzczMzksIDAuMTMyMzQsIDAuMTcxNTk4LCAwLjIzNDQ2OCwgMC4yODkzOTQsIDAuMzY3OTQyIiwgXAotICAgICAgICAgICIwLjAyODk3NiwgMC4wODc1NTIsIDAuMTQyNTI2LCAwLjE4MTc4LCAwLjI0NDYzNywgMC4yOTk1ODcsIDAuMzc4MDk0IiwgXAotICAgICAgICAgICIwLjAzMzgsIDAuMDk4MjYzLCAwLjE1MzE5NCwgMC4xOTI0NDksIDAuMjU0OTc1LCAwLjMxMDI1OSwgMC4zODg3NDMiLCBcCi0gICAgICAgICAgIjAuMDM3MzE2LCAwLjEwODcxNSwgMC4xNjM1MTIsIDAuMjAyNzU5LCAwLjI2NTU0NSwgMC4zMjA1MTQsIDAuMzk4OTc1IiwgXAotICAgICAgICAgICIwLjA0MjEzNywgMC4xMjQ4OCwgMC4xODAzNjksIDAuMjE5NTE0LCAwLjI4MjI1LCAwLjMzNzExOCwgMC40MTU2NDIiLCBcCi0gICAgICAgICAgIjAuMDQ1NjA0LCAwLjEzNjg4OSwgMC4xOTUyMDQsIDAuMjM0Mjc0LCAwLjI5NjkyMiwgMC4zNTE4MjUsIDAuNDMwMTc2Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDMyMDg0LCAwLjE0NzAwOCwgMC4yNjI1LCAwLjM0NTE0MSwgMC40NzczNDcsIDAuNTkyOTQ5LCAwLjc1ODA4NiIsIFwKLSAgICAgICAgICAiMC4wMzc0MTQsIDAuMTQ3MDY5LCAwLjI2MjU0MywgMC4zNDUxNDUsIDAuNDc3MjcyLCAwLjU5MzAzMywgMC43NTgxODUiLCBcCi0gICAgICAgICAgIjAuMDQ2NzA2LCAwLjE1MDQ2NCwgMC4yNjI4OTcsIDAuMzQ1MDM0LCAwLjQ3NzIxNCwgMC41OTI4MjcsIDAuNzU4MTQyIiwgXAotICAgICAgICAgICIwLjA1NTkwNSwgMC4xNTYzNTEsIDAuMjY1NzgxLCAwLjM0NjIyOCwgMC40NzcyNzIsIDAuNTkyODA2LCAwLjc1ODM4OSIsIFwKLSAgICAgICAgICAiMC4wNjQzMTksIDAuMTY0MDQxLCAwLjI3MDcxNSwgMC4zNDk2NjYsIDAuNDc4NTcsIDAuNTkyOTczLCAwLjc1ODE1MSIsIFwKLSAgICAgICAgICAiMC4wNzU5NSwgMC4xNzc4MywgMC4yODA4NzYsIDAuMzU3NzY3LCAwLjQ4MzkxMiwgMC41OTYwMjcsIDAuNzU4OTQ2IiwgXAotICAgICAgICAgICIwLjA4NTQ2NCwgMC4xOTA4MTIsIDAuMjkxMzkzLCAwLjM2NjU5NiwgMC40OTAzNzcsIDAuNjAxMTQxLCAwLjc2MTY5OCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyODM1NywgMC4xMjU0NDQsIDAuMjIxNjA5LCAwLjI5MDE0NCwgMC4zOTk3ODEsIDAuNDk2OTU2LCAwLjYzNjUwNSIsIFwKLSAgICAgICAgICAiMC4wMzU5ODksIDAuMTMzMTMsIDAuMjI5MjI4LCAwLjI5Nzc2OSwgMC40MDczNzcsIDAuNTA0NTc5LCAwLjY0MzkwMSIsIFwKLSAgICAgICAgICAiMC4wNDU5LCAwLjE0Mjc3LCAwLjIzODgzMywgMC4zMDc0MzgsIDAuNDE3MDc4LCAwLjUxNDA2MywgMC42NTM1MzQiLCBcCi0gICAgICAgICAgIjAuMDU0NjAzLCAwLjE1MjcyNSwgMC4yNDg3OTcsIDAuMzE3Mjg4LCAwLjQyNzEyMiwgMC41MjQxOTIsIDAuNjYzNDYyIiwgXAotICAgICAgICAgICIwLjA2MTE0NCwgMC4xNjI1NjUsIDAuMjU4NTUyLCAwLjMyNzA4NywgMC40MzY2OCwgMC41MzM2OTEsIDAuNjczMTc1IiwgXAotICAgICAgICAgICIwLjA3MDM0OSwgMC4xNzg2OTgsIDAuMjc0MzMyLCAwLjM0Mjc3MSwgMC40NTIzNjYsIDAuNTQ5MTksIDAuNjg4ODA3IiwgXAotICAgICAgICAgICIwLjA3NzM5NywgMC4xOTI5MTgsIDAuMjg4MzA1LCAwLjM1NjY3LCAwLjQ2NjI2NSwgMC41NjMwMjIsIDAuNzAyODgxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQ5MTU1LCAwLjI0ODI4MiwgMC40NDc1MDgsIDAuNTkyODE4LCAwLjgyNDE5NiwgMS4wMjc0MiwgMS4zMTcwMiIsIFwKLSAgICAgICAgICAiMC4wNTA4OTYsIDAuMjQ4MzM2LCAwLjQ0NzY2MywgMC41OTM2ODcsIDAuODI2MDEzLCAxLjAyNzA2LCAxLjMxNjg4IiwgXAotICAgICAgICAgICIwLjA1NzkxOCwgMC4yNDg1NTksIDAuNDQ4MzY5LCAwLjU5MjM4NywgMC44MjQ4NSwgMS4wMjk1LCAxLjMyMDA3IiwgXAotICAgICAgICAgICIwLjA2NTg5NiwgMC4yNTExNDEsIDAuNDQ3NjY4LCAwLjU5MzY2OSwgMC44MjQ0NDQsIDEuMDI3MjQsIDEuMzE2OTYiLCBcCi0gICAgICAgICAgIjAuMDc0MzI0LCAwLjI1NTY4MywgMC40NDk5NzUsIDAuNTkyNDc0LCAwLjgyNDc1MywgMS4wMjcwNCwgMS4zMTY4OCIsIFwKLSAgICAgICAgICAiMC4wODU3NTgsIDAuMjY1MzQsIDAuNDU1MjYsIDAuNTk2NDk4LCAwLjgyNjMwNCwgMS4wMjgzNywgMS4zMTY4OSIsIFwKLSAgICAgICAgICAiMC4wOTM5NTcsIDAuMjc1MTI4LCAwLjQ2MDg0OSwgMC41OTk3NjYsIDAuODI2MzU4LCAxLjAyOTY3LCAxLjMxNzE2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE2MTY3LCAwLjAxNjE3NiwgMC4wMTYxNzUsIDAuMDE2MTc2LCAwLjAxNjE3MywgMC4wMTYxNzEsIDAuMDE2MTY5IiwgXAotICAgICAgICAgICIwLjAxNjA0LCAwLjAxNjExNSwgMC4wMTYxMjMsIDAuMDE2MTI1LCAwLjAxNjEyNSwgMC4wMTYxMjgsIDAuMDE2MTI3IiwgXAotICAgICAgICAgICIwLjAxNTk5NSwgMC4wMTYwODUsIDAuMDE2MTA1LCAwLjAxNjEwOSwgMC4wMTYxMTMsIDAuMDE2MTEzLCAwLjAxNjExNCIsIFwKLSAgICAgICAgICAiMC4wMTYwMjgsIDAuMDE2MDg1LCAwLjAxNjEwMiwgMC4wMTYxMDgsIDAuMDE2MTExLCAwLjAxNjExMiwgMC4wMTYxMTMiLCBcCi0gICAgICAgICAgIjAuMDE2MTIxLCAwLjAxNjEwOCwgMC4wMTYxMTYsIDAuMDE2MTE4LCAwLjAxNjExOCwgMC4wMTYxMTgsIDAuMDE2MTE3IiwgXAotICAgICAgICAgICIwLjAxNjM5OCwgMC4wMTYyMDMsIDAuMDE2MTc3LCAwLjAxNjE1OCwgMC4wMTYxNTMsIDAuMDE2MTQ3LCAwLjAxNjE0NSIsIFwKLSAgICAgICAgICAiMC4wMTY3NSwgMC4wMTYzNDUsIDAuMDE2MjcsIDAuMDE2MjQyLCAwLjAxNjIxNCwgMC4wMTYxOTUsIDAuMDE2MTc5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDM5NjMsIDAuMDAzOTY3LCAwLjAwMzk2OSwgMC4wMDM5NjcsIDAuMDAzOTY3LCAwLjAwMzk2NywgMC4wMDM5NjciLCBcCi0gICAgICAgICAgIjAuMDAzNzg4LCAwLjAwMzg1LCAwLjAwMzg1OCwgMC4wMDM4NjIsIDAuMDAzODYzLCAwLjAwMzg2NCwgMC4wMDM4NjQiLCBcCi0gICAgICAgICAgIjAuMDAzNzMxLCAwLjAwMzgxNywgMC4wMDM4MzMsIDAuMDAzODM3LCAwLjAwMzg0MiwgMC4wMDM4NDMsIDAuMDAzODQ0IiwgXAotICAgICAgICAgICIwLjAwMzc3MSwgMC4wMDM4MTQsIDAuMDAzODI5LCAwLjAwMzgzMywgMC4wMDM4MzcsIDAuMDAzODM4LCAwLjAwMzg0IiwgXAotICAgICAgICAgICIwLjAwMzg3OCwgMC4wMDM4NTMsIDAuMDAzODUsIDAuMDAzODQ5LCAwLjAwMzg1LCAwLjAwMzg0OCwgMC4wMDM4NDYiLCBcCi0gICAgICAgICAgIjAuMDA0MjA5LCAwLjAwMzk1NCwgMC4wMDM5MTUsIDAuMDAzOTAyLCAwLjAwMzg4OCwgMC4wMDM4OCwgMC4wMDM4NzIiLCBcCi0gICAgICAgICAgIjAuMDA0NjAzLCAwLjAwNDExOCwgMC4wMDQwMjMsIDAuMDAzOTg3LCAwLjAwMzk1NSwgMC4wMDM5MzUsIDAuMDAzOTE3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE0NDAzLCAwLjAxNDQxMiwgMC4wMTQ0MTIsIDAuMDE0NDEsIDAuMDE0NDExLCAwLjAxNDQxMSwgMC4wMTQ0MDQiLCBcCi0gICAgICAgICAgIjAuMDE0Mjc4LCAwLjAxNDM1LCAwLjAxNDM1OSwgMC4wMTQzNiwgMC4wMTQzNiwgMC4wMTQzNjIsIDAuMDE0MzYzIiwgXAotICAgICAgICAgICIwLjAxNDI1MSwgMC4wMTQzMjksIDAuMDE0MzQyLCAwLjAxNDM0OCwgMC4wMTQzNSwgMC4wMTQzNSwgMC4wMTQzNTEiLCBcCi0gICAgICAgICAgIjAuMDE0MzMsIDAuMDE0MzM5LCAwLjAxNDM0NywgMC4wMTQzNDksIDAuMDE0MzQ5LCAwLjAxNDM1LCAwLjAxNDM0OSIsIFwKLSAgICAgICAgICAiMC4wMTQ0OCwgMC4wMTQzNzgsIDAuMDE0MzY4LCAwLjAxNDM2NiwgMC4wMTQzNjIsIDAuMDE0MzYyLCAwLjAxNDM1NiIsIFwKLSAgICAgICAgICAiMC4wMTQ4NDgsIDAuMDE0NTAzLCAwLjAxNDQ0OCwgMC4wMTQ0MywgMC4wMTQ0MSwgMC4wMTQzOTksIDAuMDE0Mzg2IiwgXAotICAgICAgICAgICIwLjAxNTI2NiwgMC4wMTQ2NjQsIDAuMDE0NTUsIDAuMDE0NTExLCAwLjAxNDQ3LCAwLjAxNDQ1MywgMC4wMTQ0MjkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjYwNCwgMC4wMDI2MzgsIDAuMDAyNjQyLCAwLjAwMjY0MiwgMC4wMDI2NDIsIDAuMDAyNjQzLCAwLjAwMjY0MyIsIFwKLSAgICAgICAgICAiMC4wMDIzOTgsIDAuMDAyNTg3LCAwLjAwMjYxMywgMC4wMDI2MiwgMC4wMDI2MjcsIDAuMDAyNjMsIDAuMDAyNjMzIiwgXAotICAgICAgICAgICIwLjAwMjI4MywgMC4wMDI1MzYsIDAuMDAyNTgyLCAwLjAwMjU5NiwgMC4wMDI2MSwgMC4wMDI2MTYsIDAuMDAyNjIyIiwgXAotICAgICAgICAgICIwLjAwMjI5NCwgMC4wMDI1MTgsIDAuMDAyNTY5LCAwLjAwMjU4NiwgMC4wMDI2MDIsIDAuMDAyNjEsIDAuMDAyNjE3IiwgXAotICAgICAgICAgICIwLjAwMjQwNiwgMC4wMDI1MzMsIDAuMDAyNTc3LCAwLjAwMjU5MiwgMC4wMDI2MDYsIDAuMDAyNjEyLCAwLjAwMjYxOSIsIFwKLSAgICAgICAgICAiMC4wMDI3MzIsIDAuMDAyNjIsIDAuMDAyNjI5LCAwLjAwMjYzNCwgMC4wMDI2NDEsIDAuMDAyNjM5LCAwLjAwMjY0IiwgXAotICAgICAgICAgICIwLjAwMzEzMiwgMC4wMDI3NjQsIDAuMDAyNzIxLCAwLjAwMjcwNywgMC4wMDI2OTQsIDAuMDAyNjg4LCAwLjAwMjY4MSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEyIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMjU2NiwgMC4wMTI1OTUsIDAuMDEyNTk0LCAwLjAxMjU5NSwgMC4wMTI1OTYsIDAuMDEyNTkyLCAwLjAxMjU4OCIsIFwKLSAgICAgICAgICAiMC4wMTI0MzksIDAuMDEyNTIyLCAwLjAxMjUzNSwgMC4wMTI1MzksIDAuMDEyNTQxLCAwLjAxMjU0NCwgMC4wMTI1MzkiLCBcCi0gICAgICAgICAgIjAuMDEyNTI0LCAwLjAxMjUyNSwgMC4wMTI1MzMsIDAuMDEyNTMxLCAwLjAxMjUzNSwgMC4wMTI1MzYsIDAuMDEyNTMzIiwgXAotICAgICAgICAgICIwLjAxMjc4MSwgMC4wMTI1OTIsIDAuMDEyNTY3LCAwLjAxMjU2MSwgMC4wMTI1NTIsIDAuMDEyNTUyLCAwLjAxMjU0NCIsIFwKLSAgICAgICAgICAiMC4wMTMxNDksIDAuMDEyNjkzLCAwLjAxMjYyNSwgMC4wMTI2MDgsIDAuMDEyNTksIDAuMDEyNTc2LCAwLjAxMjU2NSIsIFwKLSAgICAgICAgICAiMC4wMTM4NzIsIDAuMDEyOTczLCAwLjAxMjgwNywgMC4wMTI3NDksIDAuMDEyNjkyLCAwLjAxMjY2NCwgMC4wMTI2MzQiLCBcCi0gICAgICAgICAgIjAuMDE0Mjk3LCAwLjAxMzIzNiwgMC4wMTI5OTUsIDAuMDEyOTAyLCAwLjAxMjgyNCwgMC4wMTI3NTcsIDAuMDEyNzEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTA0NiwgMC4wMDExNjQsIDAuMDAxMTc2LCAwLjAwMTE4LCAwLjAwMTE4MywgMC4wMDExODQsIDAuMDAxMTg1IiwgXAotICAgICAgICAgICIwLjAwMDgwNywgMC4wMDExNzgsIDAuMDAxMjI3LCAwLjAwMTI0MywgMC4wMDEyNTYsIDAuMDAxMjYzLCAwLjAwMTI2OSIsIFwKLSAgICAgICAgICAiMC4wMDA2NTYsIDAuMDAxMTEsIDAuMDAxMTkyLCAwLjAwMTIxOSwgMC4wMDEyNDMsIDAuMDAxMjU1LCAwLjAwMTI2NiIsIFwKLSAgICAgICAgICAiMC4wMDA2NzYsIDAuMDAxMDczLCAwLjAwMTE2NywgMC4wMDEyLCAwLjAwMTIzLCAwLjAwMTI0NSwgMC4wMDEyNiIsIFwKLSAgICAgICAgICAiMC4wMDA3NzQsIDAuMDAxMDY4LCAwLjAwMTE2MiwgMC4wMDExOTUsIDAuMDAxMjI2LCAwLjAwMTI0MywgMC4wMDEyNTgiLCBcCi0gICAgICAgICAgIjAuMDAxMDk3LCAwLjAwMTEzNiwgMC4wMDExOTYsIDAuMDAxMjIzLCAwLjAwMTI0NywgMC4wMDEyNiwgMC4wMDEyNzIiLCBcCi0gICAgICAgICAgIjAuMDAxNTA3LCAwLjAwMTI1NSwgMC4wMDEyNzMsIDAuMDAxMjgzLCAwLjAwMTI5NCwgMC4wMDEzLCAwLjAwMTMwNCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMDYxNiwgMC4wMTA3MTgsIDAuMDEwNzI4LCAwLjAxMDczMiwgMC4wMTA3MzQsIDAuMDEwNzM0LCAwLjAxMDczNiIsIFwKLSAgICAgICAgICAiMC4wMTA1MzksIDAuMDEwNzEsIDAuMDEwNzQyLCAwLjAxMDc1MSwgMC4wMTA3NjEsIDAuMDEwNzY1LCAwLjAxMDc2OSIsIFwKLSAgICAgICAgICAiMC4wMTA3MiwgMC4wMTA3NzcsIDAuMDEwNzgzLCAwLjAxMDc4NCwgMC4wMTA3ODUsIDAuMDEwNzg2LCAwLjAxMDc4NyIsIFwKLSAgICAgICAgICAiMC4wMTExMDIsIDAuMDEwODMyLCAwLjAxMDgxNSwgMC4wMTA4MDUsIDAuMDEwODAyLCAwLjAxMDgwMywgMC4wMTA4IiwgXAotICAgICAgICAgICIwLjAxMTU4NywgMC4wMTEwMzEsIDAuMDEwOTMsIDAuMDEwOTA0LCAwLjAxMDg3NywgMC4wMTA4NjIsIDAuMDEwODUiLCBcCi0gICAgICAgICAgIjAuMDEyNDQzLCAwLjAxMTQsIDAuMDExMTYzLCAwLjAxMTA4NSwgMC4wMTEwMjEsIDAuMDEwOTgyLCAwLjAxMDk0OSIsIFwKLSAgICAgICAgICAiMC4wMTMyNDQsIDAuMDExODA0LCAwLjAxMTQyNSwgMC4wMTEyODQsIDAuMDExMTc1LCAwLjAxMTExNCwgMC4wMTEwNTYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDEsIDAuMDA0MjE3LCAwLjAwNDIzMSwgMC4wMDQyMzUsIDAuMDA0MjM5LCAwLjAwNDI0LCAwLjAwNDI0MSIsIFwKLSAgICAgICAgICAiMC4wMDM5NjEsIDAuMDA0MTQxLCAwLjAwNDE4NSwgMC4wMDQxOTksIDAuMDA0MjEyLCAwLjAwNDIxOSwgMC4wMDQyMjUiLCBcCi0gICAgICAgICAgIjAuMDA0MTc1LCAwLjAwNDE2NCwgMC4wMDQxOSwgMC4wMDQxOTgsIDAuMDA0MjEyLCAwLjAwNDIxOSwgMC4wMDQyMjQiLCBcCi0gICAgICAgICAgIjAuMDA0NTY0LCAwLjAwNDI3MywgMC4wMDQyNSwgMC4wMDQyNDYsIDAuMDA0MjQ0LCAwLjAwNDI0MiwgMC4wMDQyNDMiLCBcCi0gICAgICAgICAgIjAuMDA1MDE4LCAwLjAwNDQwOCwgMC4wMDQzNCwgMC4wMDQzMTUsIDAuMDA0Mjk1LCAwLjAwNDI4NSwgMC4wMDQyNzYiLCBcCi0gICAgICAgICAgIjAuMDA1OTA5LCAwLjAwNDc1NSwgMC4wMDQ1NTUsIDAuMDA0NDg3LCAwLjAwNDQzNywgMC4wMDQ0MDEsIDAuMDA0MzY5IiwgXAotICAgICAgICAgICIwLjAwNjQyNiwgMC4wMDUxMzEsIDAuMDA0ODEzLCAwLjAwNDY5NCwgMC4wMDQ2MDMsIDAuMDA0NTQsIDAuMDA0NDgiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBPQUkzMlg0ICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKE9BSTMyWDQpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMS42NTk0ODsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQTApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMzY2OTcyOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMzY1OTA1OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMzY2OTcyOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjA5NywgMC4wMDIwOTUsIDAuMDAyMDkyLCAwLjAwMjA5NCwgMC4wMDIwOTQsIDAuMDAyMDk0LCAwLjAwMjA5NCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjExNiwgMC4wMDIxMDMsIDAuMDAyMTAzLCAwLjAwMjEwNCwgMC4wMDIxMDQsIDAuMDAyMTA1LCAwLjAwMjEwMSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQTEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMzYxMjI1OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMzYwNTQ3OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMzYxMjI1OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjA5OCwgMC4wMDIwOTcsIDAuMDAyMDk2LCAwLjAwMjA5NiwgMC4wMDIwOTUsIDAuMDAyMDk1LCAwLjAwMjA5NSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjExOCwgMC4wMDIxMDMsIDAuMDAyMTAyLCAwLjAwMjEwMSwgMC4wMDIxMDMsIDAuMDAyMTAyLCAwLjAwMjEiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEEyKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDMzNDI5OTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDMzNDI5OTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDMzMzQ1MjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDIwOTcsIDAuMDAyMDk4LCAwLjAwMjA5NywgMC4wMDIwOTcsIDAuMDAyMDk2LCAwLjAwMjA5NiwgMC4wMDIwOTYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDIxMTgsIDAuMDAyMTAyLCAwLjAwMjEwMSwgMC4wMDIxMDEsIDAuMDAyMTAxLCAwLjAwMjEwMSwgMC4wMDIxMDEiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDM1MzY0OTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDM1MjE2ODsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDM1MzY0OTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDMwOTMsIDAuMDAzMDk1LCAwLjAwMzA5NCwgMC4wMDMwOTUsIDAuMDAzMDk2LCAwLjAwMzA5NiwgMC4wMDMwOTciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDIzODIsIDAuMDAyMzg1LCAwLjAwMjM4NSwgMC4wMDIzODYsIDAuMDAyMzg0LCAwLjAwMjM4NCwgMC4wMDIzODUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIxKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDMzODEyODsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDMzODEyODsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDMzODA2NTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDMwOTIsIDAuMDAzMDk0LCAwLjAwMzA5NCwgMC4wMDMwOTIsIDAuMDAzMDk0LCAwLjAwMzA5NCwgMC4wMDMwOTMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDIzODEsIDAuMDAyMzgyLCAwLjAwMjM4MywgMC4wMDIzODMsIDAuMDAyMzg0LCAwLjAwMjM4MywgMC4wMDIzODMiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC41MDcwNjk7Ci0gICAgZnVuY3Rpb24gOiAiKCEoKEIwK0IxKSAoKEEwK0ExKStBMikpKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTAiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDUwNTgzLCAwLjE5NTk2NywgMC4zNDA5MDEsIDAuNDQ0MzM0LCAwLjYwOTYxMiwgMC43NTQzMjgsIDAuOTYxNDc2IiwgXAotICAgICAgICAgICIwLjA1NTkyMSwgMC4yMDE0ODEsIDAuMzQ2NDY5LCAwLjQ0OTk5NywgMC42MTUxNzYsIDAuNzYwNDA1LCAwLjk2NjM4MiIsIFwKLSAgICAgICAgICAiMC4wNjEyMzksIDAuMjA2OTQ0LCAwLjM1MTg5NywgMC40NTUzOCwgMC42MjEwMzMsIDAuNzY1MTU0LCAwLjk3MjQ3OSIsIFwKLSAgICAgICAgICAiMC4wNjYxMDIsIDAuMjExOTE1LCAwLjM1NzA0NCwgMC40NjA0NzksIDAuNjI1NzkzLCAwLjc3MDI1OCwgMC45NzY4OTEiLCBcCi0gICAgICAgICAgIjAuMDcwMjcsIDAuMjE2OTk2LCAwLjM2MjA5MiwgMC40NjU1MDQsIDAuNjMwNzk1LCAwLjc3NTI4OSwgMC45ODE5MjciLCBcCi0gICAgICAgICAgIjAuMDc1ODksIDAuMjI1MDI0LCAwLjM3MDM1OCwgMC40NzM4MjMsIDAuNjM5MDU1LCAwLjc4MzU4LCAwLjk5MDc4MSIsIFwKLSAgICAgICAgICAiMC4wODA0MzMsIDAuMjMyNTUyLCAwLjM3NzY0NCwgMC40ODA5MDUsIDAuNjQ2MjEyLCAwLjc5MDc2OSwgMC45OTgxMiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4OTU3LCAwLjM5NTU0NywgMC43MDE0ODgsIDAuOTIwMjEzLCAxLjI2OTY2LCAxLjU3NTUsIDIuMDEyNjEiLCBcCi0gICAgICAgICAgIjAuMDg5ODQsIDAuMzk1NDkxLCAwLjcwMTUzMiwgMC45MjAwMiwgMS4yNjk5OCwgMS41NzU4NCwgMi4wMTI1OCIsIFwKLSAgICAgICAgICAiMC4wOTE4MzUsIDAuMzk1NDcsIDAuNzAxNTc2LCAwLjkyMDI3MywgMS4yNywgMS41NzU3MiwgMi4wMTMwMSIsIFwKLSAgICAgICAgICAiMC4wOTUwOTcsIDAuMzk2MDk2LCAwLjcwMTYzNCwgMC45MjAxNTksIDEuMjcwMDMsIDEuNTc2MDYsIDIuMDEyNjgiLCBcCi0gICAgICAgICAgIjAuMDk5Mjg4LCAwLjM5NzM1NSwgMC43MDE3MDMsIDAuOTIwMTAzLCAxLjI2OTg1LCAxLjU3NTYyLCAyLjAxMjYxIiwgXAotICAgICAgICAgICIwLjEwNzIxOCwgMC40MDA2OCwgMC43MDMwMTksIDAuOTIwNTU4LCAxLjI2OTk5LCAxLjU3NjA1LCAyLjAxMjY4IiwgXAotICAgICAgICAgICIwLjExNDE5NCwgMC40MDQ1NTYsIDAuNzA1MTYxLCAwLjkyMTYyMywgMS4yNzAwOCwgMS41NzYwNCwgMi4wMTI1NSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzNzc5NSwgMC4xMzQ3MSwgMC4yMzA1ODYsIDAuMjk5NTQxLCAwLjQxMDMsIDAuNTA3NjU1LCAwLjY0NjA2NyIsIFwKLSAgICAgICAgICAiMC4wNDQ5NjUsIDAuMTQxOTA3LCAwLjIzNzc5MSwgMC4zMDY1NTYsIDAuNDE3NTA5LCAwLjUxNDQ2NiwgMC42NTMxNjYiLCBcCi0gICAgICAgICAgIjAuMDUzMDUyLCAwLjE1MDA2MywgMC4yNDU5OTQsIDAuMzE0ODU4LCAwLjQyNTc2MywgMC41MjI2MjcsIDAuNjYxMjg1IiwgXAotICAgICAgICAgICIwLjA2MDI1NiwgMC4xNTgwNjEsIDAuMjUzOTIxLCAwLjMyMjcyMiwgMC40MzM3MSwgMC41MzA4OTQsIDAuNjY5MjU3IiwgXAotICAgICAgICAgICIwLjA2NjIyOCwgMC4xNjYxNjQsIDAuMjYyMTIyLCAwLjMzMDY0OCwgMC40NDE2NzEsIDAuNTM4NzM5LCAwLjY3NzM3NSIsIFwKLSAgICAgICAgICAiMC4wNzQzMTgsIDAuMTc5MDUyLCAwLjI3NTA2NiwgMC4zNDM2NzcsIDAuNDU0NDkzLCAwLjU1MTc4NCwgMC42OTAyOTMiLCBcCi0gICAgICAgICAgIjAuMDgwNDc2LCAwLjE5MDIxNCwgMC4yODYyMywgMC4zNTQ1NjUsIDAuNDY1NiwgMC41NjI2NDcsIDAuNzAxNDEyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU0NTU4LCAwLjI1MjUxLCAwLjQ1MzE4OCwgMC41OTY3NTgsIDAuODI2NCwgMS4wMjc0NywgMS4zMTQxOCIsIFwKLSAgICAgICAgICAiMC4wNTUwNTMsIDAuMjUyNDI5LCAwLjQ1MzE0NiwgMC41OTY2ODIsIDAuODI2MTQsIDEuMDI3MTYsIDEuMzE0MjciLCBcCi0gICAgICAgICAgIjAuMDU4MzI0LCAwLjI1MjUyNCwgMC40NTMyNjMsIDAuNTk2NjY3LCAwLjgyNjE3LCAxLjAyNzcsIDEuMzE0MTkiLCBcCi0gICAgICAgICAgIjAuMDYzNTA5LCAwLjI1MzkxNSwgMC40NTMzMDcsIDAuNTk2ODgyLCAwLjgyNjUzNiwgMS4wMjcyOSwgMS4zMTQxOCIsIFwKLSAgICAgICAgICAiMC4wNjk2NzQsIDAuMjU2Njk2LCAwLjQ1NDAxOCwgMC41OTY3NDIsIDAuODI2MjQ3LCAxLjAyNzEzLCAxLjMxNDE5IiwgXAotICAgICAgICAgICIwLjA3OTQ3NiwgMC4yNjI3MjIsIDAuNDU3MjUsIDAuNTk4NjE4LCAwLjgyNjY2NSwgMS4wMjcyLCAxLjMxNDEzIiwgXAotICAgICAgICAgICIwLjA4NzQ4NiwgMC4yNjkzMTcsIDAuNDYxNDM1LCAwLjYwMTM4NSwgMC44MjgwODYsIDEuMDI3NDgsIDEuMzE0MDQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQ4MzM0LCAwLjE5MzcyNSwgMC4zMzg4MzgsIDAuNDQyMjA3LCAwLjYwNzc2OSwgMC43NTIwNTksIDAuOTU5MDI0IiwgXAotICAgICAgICAgICIwLjA1NDM4OSwgMC4yMDAwMDMsIDAuMzQ1MDE2LCAwLjQ0ODYwOCwgMC42MTM3MjYsIDAuNzU4ODc0LCAwLjk2NTg4MiIsIFwKLSAgICAgICAgICAiMC4wNjE3NjYsIDAuMjA3NDc1LCAwLjM1MjQ3LCAwLjQ1NjExOCwgMC42MjExODEsIDAuNzY2NDk4LCAwLjk3MzIzOCIsIFwKLSAgICAgICAgICAiMC4wNjkxOTcsIDAuMjE1MTMxLCAwLjM2MDM0MywgMC40NjM3ODcsIDAuNjI5MTI1LCAwLjc3NDQxOSwgMC45Nzk5NjciLCBcCi0gICAgICAgICAgIjAuMDc1NDE3LCAwLjIyMjU2OCwgMC4zNjc3MzYsIDAuNDcxNDgxLCAwLjYzNjcxNSwgMC43ODEyMDUsIDAuOTg3ODE4IiwgXAotICAgICAgICAgICIwLjA4NDI1OCwgMC4yMzUwNCwgMC4zODAwNzQsIDAuNDgzNDgxLCAwLjY0ODgxNiwgMC43OTMyODQsIDAuOTk5ODQiLCBcCi0gICAgICAgICAgIjAuMDkxMDA4LCAwLjI0NTY3NywgMC4zOTA1NjgsIDAuNDk0MzY5LCAwLjY1OTYzMiwgMC44MDQxMjgsIDEuMDExMzkiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODk1NzksIDAuMzk1NTE1LCAwLjcwMTQ5NiwgMC45MjAzMTcsIDEuMjcsIDEuNTc2MjYsIDIuMDEzMTEiLCBcCi0gICAgICAgICAgIjAuMDkwMDg3LCAwLjM5NTQ0MywgMC43MDE1OTgsIDAuOTIwMjg0LCAxLjI2OTk1LCAxLjU3NjAyLCAyLjAxMjY2IiwgXAotICAgICAgICAgICIwLjA5MzU3NCwgMC4zOTU1MjEsIDAuNzAxNTcyLCAwLjkyMDA3NSwgMS4yNzAwMSwgMS41NzYwMiwgMi4wMTI2NSIsIFwKLSAgICAgICAgICAiMC4wOTg4ODgsIDAuMzk2MDQ3LCAwLjcwMTU2NiwgMC45MjAwMTMsIDEuMjcwMTMsIDEuNTc1OTMsIDIuMDEyNTUiLCBcCi0gICAgICAgICAgIjAuMTA0OTkxLCAwLjM5Nzc2NSwgMC43MDE1MzIsIDAuOTIwMjE0LCAxLjI3MDAxLCAxLjU3NTYsIDIuMDEyNjUiLCBcCi0gICAgICAgICAgIjAuMTE1ODYzLCAwLjQwMjc5OCwgMC43MDMxMDMsIDAuOTIwNDg2LCAxLjI2OTk2LCAxLjU3NjAyLCAyLjAxMjgzIiwgXAotICAgICAgICAgICIwLjEyNDcwMywgMC40MDgyOSwgMC43MDU2MDEsIDAuOTIxODM2LCAxLjI2OTkxLCAxLjU3NTYzLCAyLjAxMjU2Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM1MTkzLCAwLjEzMTUzMywgMC4yMjczMjQsIDAuMjk1ODY5LCAwLjQwNTM3OSwgMC41MDEyMTYsIDAuNjM4NDM5IiwgXAotICAgICAgICAgICIwLjA0MjM3MSwgMC4xMzg4NCwgMC4yMzQ3MzEsIDAuMzAzMTA2LCAwLjQxMjUzNSwgMC41MDgzNTMsIDAuNjQ1NTc3IiwgXAotICAgICAgICAgICIwLjA1MDM0OCwgMC4xNDcwMDEsIDAuMjQyODgsIDAuMzExNDA1LCAwLjQyMDgxNiwgMC41MTY3MzMsIDAuNjU0MzQxIiwgXAotICAgICAgICAgICIwLjA1NzA4MSwgMC4xNTUwMzMsIDAuMjUwOTk0LCAwLjMxOTU5MywgMC40MjkxNTYsIDAuNTI0OTIxLCAwLjY2MjQwMiIsIFwKLSAgICAgICAgICAiMC4wNjI4MDksIDAuMTYyOTI4LCAwLjI1OTE3OSwgMC4zMjc1ODYsIDAuNDM3MjcsIDAuNTMyODk5LCAwLjY3MDI4OCIsIFwKLSAgICAgICAgICAiMC4wNzAzMDMsIDAuMTc1OTMyLCAwLjI3MTg4MywgMC4zNDA0OTEsIDAuNDQ5OTUzLCAwLjU0NTgyMywgMC42ODMyMTYiLCBcCi0gICAgICAgICAgIjAuMDc1ODMsIDAuMTg3MzExLCAwLjI4MzA1OSwgMC4zNTE0NzEsIDAuNDYxNTE1LCAwLjU1NzI5MywgMC42OTQ1MDIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTA0OTMsIDAuMjQ4NTQxLCAwLjQ0NjQwNSwgMC41ODgzNTIsIDAuODE2MDMxLCAxLjAxNTMsIDEuMjk5NjciLCBcCi0gICAgICAgICAgIjAuMDUwOTkxLCAwLjI0ODYwMSwgMC40NDY0MDQsIDAuNTg4MjA4LCAwLjgxNTc1NSwgMS4wMTUzNywgMS4yOTk4NyIsIFwKLSAgICAgICAgICAiMC4wNTQ1NDEsIDAuMjQ4NTc0LCAwLjQ0NjM3OCwgMC41ODgyOTIsIDAuODE1NzIyLCAxLjAxNTM1LCAxLjMwMDAxIiwgXAotICAgICAgICAgICIwLjA1OTk1OCwgMC4yNTAwNDIsIDAuNDQ2NDA3LCAwLjU4ODIzOSwgMC44MTU4MzksIDEuMDE1MzksIDEuMzAwMTEiLCBcCi0gICAgICAgICAgIjAuMDY2MjEyLCAwLjI1Mjc1MiwgMC40NDcyNzUsIDAuNTg4MzI0LCAwLjgxNTg1MiwgMS4wMTU0LCAxLjI5OTg4IiwgXAotICAgICAgICAgICIwLjA3NTgwNCwgMC4yNTkwNCwgMC40NTA0OTYsIDAuNTkwMTIsIDAuODE2MjMsIDEuMDE1MDEsIDEuMjk5ODUiLCBcCi0gICAgICAgICAgIjAuMDgzOTkzLCAwLjI2NTgyMywgMC40NTQ1OTgsIDAuNTkyOTI2LCAwLjgxNzI3MSwgMS4wMTU1NCwgMS4yOTk3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEyIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0MzQwMSwgMC4xODg4MTksIDAuMzMzODc2LCAwLjQzNzI3OCwgMC42MDI3MjEsIDAuNzQ3NDM1LCAwLjk1NDU3NiIsIFwKLSAgICAgICAgICAiMC4wNTAyNzQsIDAuMTk2MDIyLCAwLjM0MDg1MSwgMC40NDQ0MjksIDAuNjA5NjAxLCAwLjc1NDg5OSwgMC45NjEwOTUiLCBcCi0gICAgICAgICAgIjAuMDU5NTk1LCAwLjIwNDk1MiwgMC4zNDk5NzQsIDAuNDUzNDMxLCAwLjYxODc2NSwgMC43NjM0NDEsIDAuOTY5NjIiLCBcCi0gICAgICAgICAgIjAuMDY4OTczLCAwLjIxMzk2NSwgMC4zNTg5MjgsIDAuNDYyNDE4LCAwLjYyNzcwOSwgMC43NzI4MzcsIDAuOTc4NDM1IiwgXAotICAgICAgICAgICIwLjA3Njc0MSwgMC4yMjMyODcsIDAuMzY4MTU1LCAwLjQ3MTUyNSwgMC42MzY4NTMsIDAuNzgxNDE2LCAwLjk4ODk0NCIsIFwKLSAgICAgICAgICAiMC4wODc1OTMsIDAuMjM3ODQ4LCAwLjM4MjQ3OSwgMC40ODU4NTMsIDAuNjUwOTI0LCAwLjc5NTM0NCwgMS4wMDE4OCIsIFwKLSAgICAgICAgICAiMC4wOTYwOSwgMC4yNTA5NzEsIDAuMzk1Mzc4LCAwLjQ5ODYxLCAwLjY2MzgxNCwgMC44MDgwNDcsIDEuMDE1MjIiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODk1NSwgMC4zOTU1MSwgMC43MDE2MTgsIDAuOTIwMzE5LCAxLjI3MDA3LCAxLjU3NjAyLCAyLjAxMjcxIiwgXAotICAgICAgICAgICIwLjA5MDIwOSwgMC4zOTU0NTMsIDAuNzAxNTE4LCAwLjkyMDIwNiwgMS4yNjk5MywgMS41NzYxMSwgMi4wMTMwNyIsIFwKLSAgICAgICAgICAiMC4wOTU3NDgsIDAuMzk1NSwgMC43MDE2MDEsIDAuOTIwMjgzLCAxLjI2OTg0LCAxLjU3NTQ0LCAyLjAxMjk4IiwgXAotICAgICAgICAgICIwLjEwMzI3NSwgMC4zOTYwODYsIDAuNzAxNTcsIDAuOTIwMjM1LCAxLjI2OTk4LCAxLjU3NjA0LCAyLjAxMjkyIiwgXAotICAgICAgICAgICIwLjExMTU4MSwgMC4zOTg1NjMsIDAuNzAxNDIsIDAuOTIwMiwgMS4yNzAwOSwgMS41NzU2OSwgMi4wMTI2MSIsIFwKLSAgICAgICAgICAiMC4xMjQ2NzcsIDAuNDA1NDQyLCAwLjcwMzIxMiwgMC45MjAxNTgsIDEuMjcwMDIsIDEuNTc1NjcsIDIuMDEyOSIsIFwKLSAgICAgICAgICAiMC4xMzQzOCwgMC40MTMxNTksIDAuNzA2OTUxLCAwLjkyMTgxOSwgMS4yNjk5MSwgMS41NzU5OCwgMi4wMTI3Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDMyNDMzLCAwLjEzMDM2OSwgMC4yMjc5MjgsIDAuMjk3NTY1LCAwLjQwODg3NSwgMC41MDY2MTQsIDAuNjQ2MjM0IiwgXAotICAgICAgICAgICIwLjAzOTYxNSwgMC4xMzc4MzgsIDAuMjM1MzUsIDAuMzA1MDgsIDAuNDE2Mzg4LCAwLjUxMzk0OCwgMC42NTM1ODciLCBcCi0gICAgICAgICAgIjAuMDQ3NDQ0LCAwLjE0NTk0NiwgMC4yNDM2MSwgMC4zMTMyMSwgMC40MjQ4ODksIDAuNTIyMzE4LCAwLjY2MjA0MyIsIFwKLSAgICAgICAgICAiMC4wNTM4MTUsIDAuMTUzODgzLCAwLjI1MTU1MywgMC4zMjEzODgsIDAuNDMyOTI5LCAwLjUzMDUwNSwgMC42Njk5NDgiLCBcCi0gICAgICAgICAgIjAuMDU5MTk2LCAwLjE2MTg4MywgMC4yNTk4MzEsIDAuMzI5NTk4LCAwLjQ0MTIyNiwgMC41Mzg1LCAwLjY3ODM0NCIsIFwKLSAgICAgICAgICAiMC4wNjU5NDUsIDAuMTc0NzI4LCAwLjI3MjYwMiwgMC4zNDI0NzgsIDAuNDUzOTQxLCAwLjU1MTUxNCwgMC42OTEyODkiLCBcCi0gICAgICAgICAgIjAuMDcxMTYzLCAwLjE4NjA5MSwgMC4yODQyMSwgMC4zNTM0NjMsIDAuNDY1MjQ1LCAwLjU2Mjc5LCAwLjcwMjg0NSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0NzI5OCwgMC4yNDg4NDYsIDAuNDUwNDU5LCAwLjU5NTA2OSwgMC44MjYzODgsIDEuMDI5OTUsIDEuMzE5MTEiLCBcCi0gICAgICAgICAgIjAuMDQ3ODYsIDAuMjQ4ODY2LCAwLjQ1MDUwNCwgMC41OTUwMjIsIDAuODI3NTY2LCAxLjAyOTU0LCAxLjMyMDkyIiwgXAotICAgICAgICAgICIwLjA1MTY1NiwgMC4yNDg5MDQsIDAuNDUwNDQ4LCAwLjU5NTc5NiwgMC44MjY1OTYsIDEuMDMwNjIsIDEuMzIwNTIiLCBcCi0gICAgICAgICAgIjAuMDU3MzU1LCAwLjI1MDMzMSwgMC40NTA1MDEsIDAuNTk0NDk3LCAwLjgyNjU4NSwgMS4wMjkzNywgMS4zMjAzMiIsIFwKLSAgICAgICAgICAiMC4wNjM1NzYsIDAuMjUzMDYzLCAwLjQ1MTM5MiwgMC41OTQ1NzUsIDAuODI2NDA3LCAxLjAzMDYxLCAxLjMxOTA2IiwgXAotICAgICAgICAgICIwLjA3MzMxMiwgMC4yNTkyNzEsIDAuNDU0NTQ1LCAwLjU5NzU5MSwgMC44MjgzNzEsIDEuMDI5OSwgMS4zMTkxMSIsIFwKLSAgICAgICAgICAiMC4wODEyMzUsIDAuMjY2MDI3LCAwLjQ1ODg0NSwgMC42MDA0NzgsIDAuODI4NDIsIDEuMDMwMTcsIDEuMzIxMDciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjAiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDI2MjY0LCAwLjEyNjUyNiwgMC4yMjY2MTUsIDAuMjk4MDUyLCAwLjQxMjIxNSwgMC41MTIwOTYsIDAuNjU0ODUxIiwgXAotICAgICAgICAgICIwLjAzMjIyLCAwLjEzMjc3NiwgMC4yMzI4OTMsIDAuMzA0MzU3LCAwLjQxODU3MywgMC41MTg0MDUsIDAuNjYxMTkzIiwgXAotICAgICAgICAgICIwLjAzODkxMiwgMC4xNDAxNTgsIDAuMjQwNDg2LCAwLjMxMTkzOCwgMC40MjYxMzEsIDAuNTI1OTcsIDAuNjY4NTU5IiwgXAotICAgICAgICAgICIwLjA0NDAwMywgMC4xNDc1NCwgMC4yNDc4ODgsIDAuMzE5Mzk5LCAwLjQzMzU5OSwgMC41MzM0OTQsIDAuNjc2MTQ3IiwgXAotICAgICAgICAgICIwLjA0ODE1MSwgMC4xNTUwNCwgMC4yNTUxODUsIDAuMzI2ODYzLCAwLjQ0MTE0MSwgMC41NDA5OTQsIDAuNjgzNjcyIiwgXAotICAgICAgICAgICIwLjA1MzczNSwgMC4xNjY5NTIsIDAuMjY3MTA2LCAwLjMzODcwMywgMC40NTMwNjcsIDAuNTUyMzg2LCAwLjY5NTM5MiIsIFwKLSAgICAgICAgICAiMC4wNTc0MjcsIDAuMTc3MTE5LCAwLjI3NzQ1NCwgMC4zNDkwMzUsIDAuNDYzOTA4LCAwLjU2NCwgMC43MDY3NCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2MTI2MywgMC4yNzE5NzUsIDAuNDgzNDgyLCAwLjYzNDg3OCwgMC44NzY3MTIsIDEuMDg4NjQsIDEuMzkxNjkiLCBcCi0gICAgICAgICAgIjAuMDYyODM4LCAwLjI3MTk2LCAwLjQ4MzYwOSwgMC42MzQ4ODUsIDAuODc2ODcyLCAxLjA4ODc3LCAxLjM5MTI5IiwgXAotICAgICAgICAgICIwLjA2Nzk2LCAwLjI3MjM2OSwgMC40ODM1MTcsIDAuNjM0ODUzLCAwLjg3Njc4MywgMS4wODg2OCwgMS4zOTEzNyIsIFwKLSAgICAgICAgICAiMC4wNzQyMzUsIDAuMjc0MjgxLCAwLjQ4MzcxNCwgMC42MzQ4ODIsIDAuODc2OTExLCAxLjA4ODcyLCAxLjM5MTI4IiwgXAotICAgICAgICAgICIwLjA4MTA5NywgMC4yNzc2MzIsIDAuNDg0ODIzLCAwLjYzNTA4NSwgMC44NzY5ODcsIDEuMDg4NjYsIDEuMzkxMTgiLCBcCi0gICAgICAgICAgIjAuMDkxMzE4LCAwLjI4NDQ3MiwgMC40ODgzODQsIDAuNjM3MjQsIDAuODc3Mzc1LCAxLjA4ODc1LCAxLjM5MTYyIiwgXAotICAgICAgICAgICIwLjA5OTc3LCAwLjI5MTM2MywgMC40OTMwMzYsIDAuNjQwMzIyLCAwLjg3ODgzMywgMS4wODkzMSwgMS4zOTE0NCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzMjE1LCAwLjEyOTA2NCwgMC4yMjQ5MzgsIDAuMjkzNTYsIDAuNDAyODM3LCAwLjUwMDAzLCAwLjYzODk5NyIsIFwKLSAgICAgICAgICAiMC4wMzk4MzQsIDAuMTM2Nzg3LCAwLjIzMjU1NywgMC4zMDEwNzksIDAuNDEwNTM0LCAwLjUwNzM2NCwgMC42NDY3MzQiLCBcCi0gICAgICAgICAgIjAuMDQ5ODI2LCAwLjE0NjQ2OCwgMC4yNDIyODgsIDAuMzEwNzU5LCAwLjQyMDE5MSwgMC41MTcxNSwgMC42NTYyNTEiLCBcCi0gICAgICAgICAgIjAuMDU5MDgyLCAwLjE1NjIyNiwgMC4yNTIxMDUsIDAuMzIwNTM2LCAwLjQyOTk0NiwgMC41MjcwNTksIDAuNjY2MDE2IiwgXAotICAgICAgICAgICIwLjA2NjQ1NywgMC4xNjU5MTcsIDAuMjYxNzIxLCAwLjMzMDEwNiwgMC40Mzk0MywgMC41MzYyMzUsIDAuNjc1NjMyIiwgXAotICAgICAgICAgICIwLjA3NjUzNiwgMC4xODIwNjgsIDAuMjc3NTQ2LCAwLjM0NTg3NywgMC40NTUyNDgsIDAuNTUxOTU1LCAwLjY5MTMxNyIsIFwKLSAgICAgICAgICAiMC4wODM0OTgsIDAuMTk2Mjc0LCAwLjI5MTU0NywgMC4zNTk3OSwgMC40NjkwMjMsIDAuNTY1ODc0LCAwLjcwNTExMyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1NDUyNiwgMC4yNTI0ODEsIDAuNDUwNCwgMC41OTQxNjksIDAuODI0NDkxLCAxLjAyNTk3LCAxLjMxMzk1IiwgXAotICAgICAgICAgICIwLjA1NTc4MiwgMC4yNTI0NzEsIDAuNDUwMjUxLCAwLjU5NDIwOSwgMC44MjQxOTYsIDEuMDI1NiwgMS4zMTMxNyIsIFwKLSAgICAgICAgICAiMC4wNjIzNTYsIDAuMjUyNDYxLCAwLjQ1MDI2NywgMC41OTQyMDUsIDAuODI0MzcsIDEuMDI1NTEsIDEuMzEzMzYiLCBcCi0gICAgICAgICAgIjAuMDcwNDMxLCAwLjI1NTAwNSwgMC40NTAyNjksIDAuNTk0MjY0LCAwLjgyNDY3MywgMS4wMjYxNywgMS4zMTMzNiIsIFwKLSAgICAgICAgICAiMC4wNzg3NiwgMC4yNTk1MiwgMC40NTE3OTEsIDAuNTk0MzQ3LCAwLjgyNDU3MiwgMS4wMjU2MSwgMS4zMTM1MSIsIFwKLSAgICAgICAgICAiMC4wOTA0OTcsIDAuMjY5MDc0LCAwLjQ1NzAxOSwgMC41OTcwMzIsIDAuODI0MzI1LCAxLjAyNTU4LCAxLjMxMzIiLCBcCi0gICAgICAgICAgIjAuMTAwMTE0LCAwLjI3ODgzNiwgMC40NjM0NDIsIDAuNjAxMzkyLCAwLjgyNjMzNCwgMS4wMjU4NCwgMS4zMTMzOSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjQxMywgMC4xMjQ0NDcsIDAuMjI0NTIzLCAwLjI5NTk1OCwgMC40MTAxMzUsIDAuNTEwMDI1LCAwLjY1Mjc4MiIsIFwKLSAgICAgICAgICAiMC4wMzE1ODIsIDAuMTMyMDc2LCAwLjIzMjE1OCwgMC4zMDM2NSwgMC40MTc4OTksIDAuNTE3NzQ5LCAwLjY2MDMxNyIsIFwKLSAgICAgICAgICAiMC4wNDA3MTIsIDAuMTQxNzAyLCAwLjI0MTgyNCwgMC4zMTMyNzksIDAuNDI3NDczLCAwLjUyNzQ0MSwgMC42Njk5NTUiLCBcCi0gICAgICAgICAgIjAuMDQ3NTEzLCAwLjE1MTI5MiwgMC4yNTE0MjMsIDAuMzIyODU2LCAwLjQzNzA3MywgMC41MzY5MzksIDAuNjc5NTU5IiwgXAotICAgICAgICAgICIwLjA1MzA5NiwgMC4xNjA4NDgsIDAuMjYwOTIsIDAuMzMyMzI5LCAwLjQ0NjUxLCAwLjU0NjQxOSwgMC42ODg5NSIsIFwKLSAgICAgICAgICAiMC4wNjA0MTUsIDAuMTc2NjAyLCAwLjI3NjQxMywgMC4zNDc4MDMsIDAuNDYxOTE2LCAwLjU2MTg2NSwgMC43MDQyNjkiLCBcCi0gICAgICAgICAgIjAuMDY1NTQ2LCAwLjE5MDQ3NywgMC4yOTAwOTgsIDAuMzYxMzE0LCAwLjQ3NTUsIDAuNTc1MjY1LCAwLjcxNzcxNSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2MTI1NSwgMC4yNzE5ODYsIDAuNDgzNTQ5LCAwLjYzNDg1OCwgMC44NzY5MjQsIDEuMDg4NjEsIDEuMzkxNjIiLCBcCi0gICAgICAgICAgIjAuMDY0MjQ0LCAwLjI3MTk2NywgMC40ODM0ODYsIDAuNjM0ODM1LCAwLjg3Njk2NCwgMS4wODg4OCwgMS4zOTE0MyIsIFwKLSAgICAgICAgICAiMC4wNzIyMjMsIDAuMjcyMzg2LCAwLjQ4MzQyNywgMC42MzQ4NjQsIDAuODc2NzIyLCAxLjA4ODg4LCAxLjM5MTQyIiwgXAotICAgICAgICAgICIwLjA4MTE0NiwgMC4yNzUzNzIsIDAuNDgzNTgxLCAwLjYzNDcsIDAuODc2OTE5LCAxLjA4ODgyLCAxLjM5MTM4IiwgXAotICAgICAgICAgICIwLjA4OTg0NiwgMC4yODAyODcsIDAuNDg1MDczLCAwLjYzNDk2NiwgMC44NzY5NDcsIDEuMDg4NiwgMS4zOTEzOCIsIFwKLSAgICAgICAgICAiMC4xMDI0OCwgMC4yOTA0NDYsIDAuNDkwNDMsIDAuNjM3NjkzLCAwLjg3Njg2OSwgMS4wODg4NywgMS4zOTEzNiIsIFwKLSAgICAgICAgICAiMC4xMTIyNDgsIDAuMzAwNzk5LCAwLjQ5NzI4NCwgMC42NDI0MjIsIDAuODc5MDk4LCAxLjA4OTAxLCAxLjM5MTQ2Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDI5NTkyLCAwLjEyNzg1NSwgMC4yMjUwMjMsIDAuMjk0NDM2LCAwLjQwNTU2MywgMC41MDI1MDEsIDAuNjQxMjUzIiwgXAotICAgICAgICAgICIwLjAzNzIzOSwgMC4xMzU1OTQsIDAuMjMyNzc2LCAwLjMwMjIzNSwgMC40MTMyMDMsIDAuNTEwMTg0LCAwLjY0ODkwNiIsIFwKLSAgICAgICAgICAiMC4wNDcwNzcsIDAuMTQ1MTg1LCAwLjI0MjQyNCwgMC4zMTE3OSwgMC40MjI4NjEsIDAuNTE5ODEzLCAwLjY1ODM3NyIsIFwKLSAgICAgICAgICAiMC4wNTU1OTMsIDAuMTU1MDQsIDAuMjUxOTYyLCAwLjMyMTYyLCAwLjQzMjczNiwgMC41Mjk4MjEsIDAuNjY4NDIiLCBcCi0gICAgICAgICAgIjAuMDYyNzA2LCAwLjE2NDY3OCwgMC4yNjE3ODIsIDAuMzMxMjQ5LCAwLjQ0MjA5OCwgMC41Mzk0MzQsIDAuNjc4Mjk4IiwgXAotICAgICAgICAgICIwLjA3MTk3NiwgMC4xODA4MDYsIDAuMjc3NjcyLCAwLjM0NzAzNiwgMC40NTc5MTYsIDAuNTU0ODcxLCAwLjY5MzQ5NCIsIFwKLSAgICAgICAgICAiMC4wNzg3NzEsIDAuMTk0OTg5LCAwLjI5MTY1MSwgMC4zNjA3OCwgMC40NzE3NjUsIDAuNTY4NzY3LCAwLjcwNzU0MyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1MTU2MiwgMC4yNTIzNzMsIDAuNDUzMzU3LCAwLjU5NjY1LCAwLjgyNjYyNSwgMS4wMjkzNiwgMS4zMjIzOCIsIFwKLSAgICAgICAgICAiMC4wNTI5NDcsIDAuMjUyMzEyLCAwLjQ1MzIsIDAuNTk2Nzk1LCAwLjgyNjI1NywgMS4wMzE3NCwgMS4zMTkxNSIsIFwKLSAgICAgICAgICAiMC4wNTk3OTcsIDAuMjUyMzgxLCAwLjQ1MzIxNiwgMC41OTY2MTcsIDAuODI2NTk1LCAxLjAyOTE1LCAxLjMyMjM1IiwgXAotICAgICAgICAgICIwLjA2ODEwNywgMC4yNTQ4NDUsIDAuNDUzMiwgMC41OTY4MTIsIDAuODI3MTA4LCAxLjAyOTQ3LCAxLjMyMjIyIiwgXAotICAgICAgICAgICIwLjA3NjQxMiwgMC4yNTk0MTYsIDAuNDU0NDY2LCAwLjU5NjYzNiwgMC44MjY4ODksIDEuMDI5MjQsIDEuMzE5NzciLCBcCi0gICAgICAgICAgIjAuMDg4MDczLCAwLjI2OSwgMC40NTk2MDgsIDAuNTk5MzEsIDAuODI2NTU4LCAxLjAzMDYsIDEuMzE5MjYiLCBcCi0gICAgICAgICAgIjAuMDk3NTE1LCAwLjI3ODg1MywgMC40NjU3NzIsIDAuNjAzNTE1LCAwLjgzMDI2NCwgMS4wMzE4OCwgMS4zMTk2NSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyMDEzNiwgMC4wMjAxNDUsIDAuMDIwMTQyLCAwLjAyMDE0LCAwLjAyMDEzOCwgMC4wMjAxNCwgMC4wMjAxMzMiLCBcCi0gICAgICAgICAgIjAuMDIwMDEsIDAuMDIwMDc3LCAwLjAyMDA4NywgMC4wMjAwODksIDAuMDIwMDksIDAuMDIwMDg3LCAwLjAyMDA4OCIsIFwKLSAgICAgICAgICAiMC4wMTk5NjIsIDAuMDIwMDUsIDAuMDIwMDY3LCAwLjAyMDA3MiwgMC4wMjAwNzQsIDAuMDIwMDc2LCAwLjAyMDA3NSIsIFwKLSAgICAgICAgICAiMC4wMTk5ODgsIDAuMDIwMDQ2LCAwLjAyMDA2MiwgMC4wMjAwNjgsIDAuMDIwMDcsIDAuMDIwMDcyLCAwLjAyMDA3MSIsIFwKLSAgICAgICAgICAiMC4wMjAwNjMsIDAuMDIwMDY3LCAwLjAyMDA3NiwgMC4wMjAwNzcsIDAuMDIwMDc3LCAwLjAyMDA3NywgMC4wMjAwNzYiLCBcCi0gICAgICAgICAgIjAuMDIwMzM1LCAwLjAyMDE2MiwgMC4wMjAxMzUsIDAuMDIwMTI2LCAwLjAyMDExNCwgMC4wMjAxMDcsIDAuMDIwMTAzIiwgXAotICAgICAgICAgICIwLjAyMDY3NiwgMC4wMjAzMDEsIDAuMDIwMjI0LCAwLjAyMDE5NywgMC4wMjAxNjksIDAuMDIwMTU1LCAwLjAyMDEzOSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1MjcsIDAuMDA1Mjc0LCAwLjAwNTI3NCwgMC4wMDUyNzUsIDAuMDA1MjcyLCAwLjAwNTI3MiwgMC4wMDUyNzMiLCBcCi0gICAgICAgICAgIjAuMDA1MTA0LCAwLjAwNTE1NiwgMC4wMDUxNjMsIDAuMDA1MTY3LCAwLjAwNTE2NSwgMC4wMDUxNjcsIDAuMDA1MTY4IiwgXAotICAgICAgICAgICIwLjAwNTA0MywgMC4wMDUxMjIsIDAuMDA1MTM2LCAwLjAwNTE0MiwgMC4wMDUxNDUsIDAuMDA1MTQ4LCAwLjAwNTE0OSIsIFwKLSAgICAgICAgICAiMC4wMDUwNTUsIDAuMDA1MTE3LCAwLjAwNTEzLCAwLjAwNTEzNiwgMC4wMDUxNCwgMC4wMDUxNDIsIDAuMDA1MTQyIiwgXAotICAgICAgICAgICIwLjAwNTE0MywgMC4wMDUxNDIsIDAuMDA1MTQ2LCAwLjAwNTE0NiwgMC4wMDUxNTEsIDAuMDA1MTQ3LCAwLjAwNTE0NyIsIFwKLSAgICAgICAgICAiMC4wMDUzODgsIDAuMDA1MjI3LCAwLjAwNTIwMSwgMC4wMDUxOTIsIDAuMDA1MTgsIDAuMDA1MTc0LCAwLjAwNTE2NyIsIFwKLSAgICAgICAgICAiMC4wMDU3MDgsIDAuMDA1MzczLCAwLjAwNTI5NywgMC4wMDUyNjYsIDAuMDA1MjQyLCAwLjAwNTIyMywgMC4wMDUyMDkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTgzNjcsIDAuMDE4Mzc1LCAwLjAxODM3MiwgMC4wMTgzNywgMC4wMTgzNywgMC4wMTgzNjcsIDAuMDE4MzY2IiwgXAotICAgICAgICAgICIwLjAxODI0MSwgMC4wMTgzMDYsIDAuMDE4MzE0LCAwLjAxODMxNywgMC4wMTgzMTksIDAuMDE4MzE2LCAwLjAxODMxNiIsIFwKLSAgICAgICAgICAiMC4wMTgyMTcsIDAuMDE4MjgzLCAwLjAxODI5OCwgMC4wMTgzMDEsIDAuMDE4MzA0LCAwLjAxODMwNywgMC4wMTgzMDUiLCBcCi0gICAgICAgICAgIjAuMDE4MjgyLCAwLjAxODI5NCwgMC4wMTgzMDIsIDAuMDE4MzAzLCAwLjAxODMwNSwgMC4wMTgzMDgsIDAuMDE4MzA1IiwgXAotICAgICAgICAgICIwLjAxODQyLCAwLjAxODMzMywgMC4wMTgzMjcsIDAuMDE4MzIyLCAwLjAxODMxOSwgMC4wMTgzMTQsIDAuMDE4MzE0IiwgXAotICAgICAgICAgICIwLjAxODc4LCAwLjAxODQ1NCwgMC4wMTgzOTksIDAuMDE4MzgxLCAwLjAxODM2MSwgMC4wMTgzNTIsIDAuMDE4MzM5IiwgXAotICAgICAgICAgICIwLjAxOTE3NSwgMC4wMTg2MSwgMC4wMTg1MDIsIDAuMDE4NDU1LCAwLjAxODQyNSwgMC4wMTg0MDQsIDAuMDE4MzgxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDM4OTksIDAuMDAzOTI3LCAwLjAwMzkzMSwgMC4wMDM5MywgMC4wMDM5MzEsIDAuMDAzOTMyLCAwLjAwMzkzMSIsIFwKLSAgICAgICAgICAiMC4wMDM3MTgsIDAuMDAzODc4LCAwLjAwMzkwMiwgMC4wMDM5MDgsIDAuMDAzOTE1LCAwLjAwMzkxOCwgMC4wMDM5MiIsIFwKLSAgICAgICAgICAiMC4wMDM2LCAwLjAwMzgyNywgMC4wMDM4NywgMC4wMDM4ODMsIDAuMDAzODk2LCAwLjAwMzkwMywgMC4wMDM5MTEiLCBcCi0gICAgICAgICAgIjAuMDAzNTg3LCAwLjAwMzgwMywgMC4wMDM4NTMsIDAuMDAzODY5LCAwLjAwMzg4NSwgMC4wMDM4OTQsIDAuMDAzOTA0IiwgXAotICAgICAgICAgICIwLjAwMzY2MywgMC4wMDM4MSwgMC4wMDM4NTUsIDAuMDAzODcxLCAwLjAwMzg4NywgMC4wMDM4OTUsIDAuMDAzOTAyIiwgXAotICAgICAgICAgICIwLjAwMzkwNiwgMC4wMDM4NzgsIDAuMDAzODk4LCAwLjAwMzkwNiwgMC4wMDM5MTIsIDAuMDAzOTE2LCAwLjAwMzkxOSIsIFwKLSAgICAgICAgICAiMC4wMDQyMzcsIDAuMDA0MDAxLCAwLjAwMzk3NiwgMC4wMDM5NjksIDAuMDAzOTY2LCAwLjAwMzk1NywgMC4wMDM5NTIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTY1MzksIDAuMDE2NTYxLCAwLjAxNjU2MywgMC4wMTY1NjEsIDAuMDE2NTYxLCAwLjAxNjU1OSwgMC4wMTY1NTgiLCBcCi0gICAgICAgICAgIjAuMDE2NDA4LCAwLjAxNjQ4OCwgMC4wMTY0OTksIDAuMDE2NTAxLCAwLjAxNjUwNSwgMC4wMTY1MDUsIDAuMDE2NTA0IiwgXAotICAgICAgICAgICIwLjAxNjQ4MiwgMC4wMTY0ODYsIDAuMDE2NDk1LCAwLjAxNjQ5NiwgMC4wMTY0OTYsIDAuMDE2NDk3LCAwLjAxNjQ5NSIsIFwKLSAgICAgICAgICAiMC4wMTY3MjEsIDAuMDE2NTUyLCAwLjAxNjUzLCAwLjAxNjUyMSwgMC4wMTY1MTQsIDAuMDE2NTEsIDAuMDE2NTA1IiwgXAotICAgICAgICAgICIwLjAxNzEyMSwgMC4wMTY2NTMsIDAuMDE2NTg2LCAwLjAxNjU2OSwgMC4wMTY1NSwgMC4wMTY1MzksIDAuMDE2NTI1IiwgXAotICAgICAgICAgICIwLjAxNzc2MSwgMC4wMTY5MjgsIDAuMDE2NzY1LCAwLjAxNjcwNywgMC4wMTY2NTEsIDAuMDE2NjI1LCAwLjAxNjU5NiIsIFwKLSAgICAgICAgICAiMC4wMTgxODIsIDAuMDE3MTg2LCAwLjAxNjk0OSwgMC4wMTY4NTUsIDAuMDE2NzgyLCAwLjAxNjcxNywgMC4wMTY2NjgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjM3MywgMC4wMDI0NjgsIDAuMDAyNDc5LCAwLjAwMjQ4MiwgMC4wMDI0ODQsIDAuMDAyNDg2LCAwLjAwMjQ4NyIsIFwKLSAgICAgICAgICAiMC4wMDIxNzksIDAuMDAyNDg3LCAwLjAwMjUzMywgMC4wMDI1NDcsIDAuMDAyNTYsIDAuMDAyNTY2LCAwLjAwMjU3MiIsIFwKLSAgICAgICAgICAiMC4wMDIwMTksIDAuMDAyNDIsIDAuMDAyNDk4LCAwLjAwMjUyMywgMC4wMDI1NDUsIDAuMDAyNTU4LCAwLjAwMjU2OSIsIFwKLSAgICAgICAgICAiMC4wMDE5ODksIDAuMDAyMzc2LCAwLjAwMjQ3LCAwLjAwMjUwMiwgMC4wMDI1MzEsIDAuMDAyNTQ2LCAwLjAwMjU2IiwgXAotICAgICAgICAgICIwLjAwMjA2NCwgMC4wMDIzNjUsIDAuMDAyNDYxLCAwLjAwMjQ5MywgMC4wMDI1MjUsIDAuMDAyNTQzLCAwLjAwMjU1NyIsIFwKLSAgICAgICAgICAiMC4wMDIzMTEsIDAuMDAyNDEsIDAuMDAyNDgzLCAwLjAwMjUxMiwgMC4wMDI1MzksIDAuMDAyNTU0LCAwLjAwMjU2NyIsIFwKLSAgICAgICAgICAiMC4wMDI2MiwgMC4wMDI1MDcsIDAuMDAyNTUxLCAwLjAwMjU2MywgMC4wMDI1ODQsIDAuMDAyNTg5LCAwLjAwMjU5NiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMzU3NCwgMC4wMTM2NTEsIDAuMDEzNjU4LCAwLjAxMzY2MSwgMC4wMTM2NjMsIDAuMDEzNjY0LCAwLjAxMzY2NCIsIFwKLSAgICAgICAgICAiMC4wMTM0MTEsIDAuMDEzNjMyLCAwLjAxMzY2NiwgMC4wMTM2NzcsIDAuMDEzNjg2LCAwLjAxMzY5LCAwLjAxMzY5NCIsIFwKLSAgICAgICAgICAiMC4wMTM0MDIsIDAuMDEzNiwgMC4wMTM2NDksIDAuMDEzNjY0LCAwLjAxMzY3OCwgMC4wMTM2ODUsIDAuMDEzNjg4IiwgXAotICAgICAgICAgICIwLjAxMzU0MSwgMC4wMTM2MTUsIDAuMDEzNjU2LCAwLjAxMzY2OSwgMC4wMTM2ODMsIDAuMDEzNjgsIDAuMDEzNjkyIiwgXAotICAgICAgICAgICIwLjAxMzc3NSwgMC4wMTM2NjksIDAuMDEzNjg2LCAwLjAxMzY5NiwgMC4wMTM3MDIsIDAuMDEzNzA3LCAwLjAxMzcxMyIsIFwKLSAgICAgICAgICAiMC4wMTQyOTMsIDAuMDEzODIzLCAwLjAxMzc4OSwgMC4wMTM3NzgsIDAuMDEzNzY0LCAwLjAxMzc0OSwgMC4wMTM3NDciLCBcCi0gICAgICAgICAgIjAuMDE0ODM5LCAwLjAxNDAwOCwgMC4wMTM5MTEsIDAuMDEzODc2LCAwLjAxMzg0NiwgMC4wMTM4MjcsIDAuMDEzODExIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDUyODgsIDAuMDA1MzE2LCAwLjAwNTMyMSwgMC4wMDUzMjEsIDAuMDA1MzIxLCAwLjAwNTMyMSwgMC4wMDUzMjEiLCBcCi0gICAgICAgICAgIjAuMDA1MTkyLCAwLjAwNTI1LCAwLjAwNTI2OCwgMC4wMDUyNjUsIDAuMDA1MjcsIDAuMDA1MjY3LCAwLjAwNTI2OCIsIFwKLSAgICAgICAgICAiMC4wMDUzNDEsIDAuMDA1MzA0LCAwLjAwNTI4LCAwLjAwNTI4OCwgMC4wMDUyODMsIDAuMDA1MjgsIDAuMDA1Mjc3IiwgXAotICAgICAgICAgICIwLjAwNTU0OSwgMC4wMDUzODEsIDAuMDA1MzQxLCAwLjAwNTMyMywgMC4wMDUzMDksIDAuMDA1MzAxLCAwLjAwNTI5MSIsIFwKLSAgICAgICAgICAiMC4wMDU4OCwgMC4wMDU1NjksIDAuMDA1NDY2LCAwLjAwNTQyMiwgMC4wMDUzODMsIDAuMDA1MzYyLCAwLjAwNTM0MyIsIFwKLSAgICAgICAgICAiMC4wMDY2MTIsIDAuMDA1ODUyLCAwLjAwNTY1MywgMC4wMDU1NzYsIDAuMDA1NTEyLCAwLjAwNTQ2OCwgMC4wMDU0MjYiLCBcCi0gICAgICAgICAgIjAuMDA3Mjc5LCAwLjAwNjE1NiwgMC4wMDU4NjksIDAuMDA1NzUxLCAwLjAwNTYzNywgMC4wMDU1ODksIDAuMDA1NTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDExNzcxLCAwLjAxMTg3NCwgMC4wMTE4ODYsIDAuMDExODg5LCAwLjAxMTg4NCwgMC4wMTE4OTMsIDAuMDExODkzIiwgXAotICAgICAgICAgICIwLjAxMTY1MywgMC4wMTE4NjIsIDAuMDExODk4LCAwLjAxMTkwOSwgMC4wMTE5MTksIDAuMDExOTI0LCAwLjAxMTkyNiIsIFwKLSAgICAgICAgICAiMC4wMTE3NjgsIDAuMDExODYzLCAwLjAxMTg5NCwgMC4wMTE5MDYsIDAuMDExOTE3LCAwLjAxMTkyMiwgMC4wMTE5MjciLCBcCi0gICAgICAgICAgIjAuMDEyMTE1LCAwLjAxMTkyNywgMC4wMTE5MzgsIDAuMDExOTMzLCAwLjAxMTkzNywgMC4wMTE5MzcsIDAuMDExOTQxIiwgXAotICAgICAgICAgICIwLjAxMjQ0NiwgMC4wMTIwNjksIDAuMDEyMDIzLCAwLjAxMjAxNCwgMC4wMTE5OTgsIDAuMDExOTg4LCAwLjAxMTk4IiwgXAotICAgICAgICAgICIwLjAxMzE1LCAwLjAxMjMxNywgMC4wMTIxODcsIDAuMDEyMTMxLCAwLjAxMjEwNiwgMC4wMTIwODIsIDAuMDEyMDQiLCBcCi0gICAgICAgICAgIjAuMDEzODE3LCAwLjAxMjYxNCwgMC4wMTIzODUsIDAuMDEyMjk3LCAwLjAxMjIzMiwgMC4wMTIxODgsIDAuMDEyMTI0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQxNTYsIDAuMDA0MjU5LCAwLjAwNDI3MiwgMC4wMDQyNzUsIDAuMDA0Mjc3LCAwLjAwNDI3OSwgMC4wMDQyOCIsIFwKLSAgICAgICAgICAiMC4wMDQwMjEsIDAuMDA0MjQyLCAwLjAwNDI3OSwgMC4wMDQyODksIDAuMDA0MzAzLCAwLjAwNDMwNywgMC4wMDQzMTIiLCBcCi0gICAgICAgICAgIjAuMDA0MTIyLCAwLjAwNDI1LCAwLjAwNDI4NCwgMC4wMDQyOTUsIDAuMDA0MzA3LCAwLjAwNDMxMiwgMC4wMDQzMTgiLCBcCi0gICAgICAgICAgIjAuMDA0MzA2LCAwLjAwNDI5NCwgMC4wMDQzMDgsIDAuMDA0MzE5LCAwLjAwNDMyMywgMC4wMDQzMjcsIDAuMDA0MzI1IiwgXAotICAgICAgICAgICIwLjAwNDU5NCwgMC4wMDQ0NSwgMC4wMDQ0MTMsIDAuMDA0Mzk3LCAwLjAwNDM4MywgMC4wMDQzNiwgMC4wMDQzNTYiLCBcCi0gICAgICAgICAgIjAuMDA1MjYsIDAuMDA0NjgzLCAwLjAwNDU2MSwgMC4wMDQ1MzQsIDAuMDA0NDg2LCAwLjAwNDQ2LCAwLjAwNDQzNiIsIFwKLSAgICAgICAgICAiMC4wMDU5MTQsIDAuMDA0OTUzLCAwLjAwNDc0OCwgMC4wMDQ2NjcsIDAuMDA0NjExLCAwLjAwNDU2NCwgMC4wMDQ1MiIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBPUjJYNCAqCi0gKiAtLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoT1IyWDQpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC41ODgwMDE7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDk1MTA1NjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA5NDc0MjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA5NTEwNTY7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNDYxLCAwLjAwMDQ5NSwgMC4wMDA1LCAwLjAwMDUwNSwgMC4wMDA1MTEsIDAuMDAwNTE1LCAwLjAwMDUxNCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDUzOCwgMC4wMDA1MzksIDAuMDAwNTM5LCAwLjAwMDUzOSwgMC4wMDA1MzksIDAuMDAwNTM5LCAwLjAwMDUzOSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwOTcxNTk5OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDk3MTU5OTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA5NzEyNTQ7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMTIyLCAwLjAwMDEyMiwgMC4wMDAxMjIsIDAuMDAwMTIyLCAwLjAwMDEyMiwgMC4wMDAxMjIsIDAuMDAwMTIyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzUsIDAuMDAwMzUsIDAuMDAwMzUsIDAuMDAwMzUsIDAuMDAwMzUsIDAuMDAwMzUsIDAuMDAwMzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMS4zODgzNjsKLSAgICBmdW5jdGlvbiA6ICIoQStCKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzMyMzcsIDAuMDg4MjksIDAuMTQyMzA1LCAwLjE4MDg4NSwgMC4yNDI1NzMsIDAuMjk2NTM5LCAwLjM3MzY2NCIsIFwKLSAgICAgICAgICAiMC4wNDE2NTUsIDAuMDk2NjU0LCAwLjE1MDY4MywgMC4xODkyODcsIDAuMjUwOTQzLCAwLjMwNDkyMiwgMC4zODIwMzUiLCBcCi0gICAgICAgICAgIjAuMDUxMDU5LCAwLjEwNjEwMSwgMC4xNjAxMTMsIDAuMTk4NjkxLCAwLjI2MDM4NiwgMC4zMTQzNDMsIDAuMzkxNDU3IiwgXAotICAgICAgICAgICIwLjA1ODQ5MSwgMC4xMTM4NTcsIDAuMTY3ODUxLCAwLjIwNjQwNCwgMC4yNjgxNCwgMC4zMjIwODIsIDAuMzk5MTc4IiwgXAotICAgICAgICAgICIwLjA2NDQ5NywgMC4xMjAxNTcsIDAuMTc0MDgxLCAwLjIxMjYzNSwgMC4yNzQzMDgsIDAuMzI4MzI5LCAwLjQwNTQwMyIsIFwKLSAgICAgICAgICAiMC4wNzIzMjgsIDAuMTI4NDgxLCAwLjE4MjQzLCAwLjIyMDk1NiwgMC4yODI2MjUsIDAuMzM2NTg4LCAwLjQxMzczOCIsIFwKLSAgICAgICAgICAiMC4wNzgwNTIsIDAuMTM0NzI2LCAwLjE4ODcsIDAuMjI3MjA0LCAwLjI4ODg3LCAwLjM0MjgyNiwgMC40MTk5MDgiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjUwMDMsIDAuMTM1NjUzLCAwLjI0OTQyMSwgMC4zMzAwNDcsIDAuNDYwOTU4LCAwLjU3NDM5NCwgMC43MzcwMjkiLCBcCi0gICAgICAgICAgIjAuMDI1MDMzLCAwLjEzNTgxMiwgMC4yNDkxNjgsIDAuMzMwMjcsIDAuNDYwNDk4LCAwLjU3NDQ4MSwgMC43MzcyMDIiLCBcCi0gICAgICAgICAgIjAuMDI2MjU1LCAwLjEzNTk0NSwgMC4yNDkxNTQsIDAuMzMwMjk5LCAwLjQ2MDk0NSwgMC41NzQ4NjIsIDAuNzM3MTM1IiwgXAotICAgICAgICAgICIwLjAyNzY5OSwgMC4xMzYyMzQsIDAuMjQ5NDQ4LCAwLjMzMDQ5NSwgMC40NjAxNTYsIDAuNTc0ODU0LCAwLjczNzY4NCIsIFwKLSAgICAgICAgICAiMC4wMjkyMTUsIDAuMTM2NTE1LCAwLjI0OTUyOSwgMC4zMzAyOTIsIDAuNDYwNTU2LCAwLjU3NDg1NywgMC43MzY2MzciLCBcCi0gICAgICAgICAgIjAuMDMxMjU1LCAwLjEzNzA2NCwgMC4yNDk1NywgMC4zMzA2ODQsIDAuNDYwODQxLCAwLjU3NDc1OSwgMC43Mzc2MjYiLCBcCi0gICAgICAgICAgIjAuMDMyODk0LCAwLjEzNzg3NCwgMC4yNDk3MjgsIDAuMzMwNjU1LCAwLjQ2MDU4NSwgMC41NzQwNjgsIDAuNzM3MDMzIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQ5MzI2LCAwLjEwNzE5NiwgMC4xNjExNDUsIDAuMTk5NjA5LCAwLjI2MTExMywgMC4zMTQ5MTcsIDAuMzkxODM1IiwgXAotICAgICAgICAgICIwLjA1NTM4LCAwLjExMzIxOCwgMC4xNjcxNDgsIDAuMjA1NjUsIDAuMjY3MTU2LCAwLjMyMDk3MywgMC4zOTc4ODEiLCBcCi0gICAgICAgICAgIjAuMDYyMzc5LCAwLjEyMDE4NywgMC4xNzQxMjgsIDAuMjEyNTg4LCAwLjI3NDA5NSwgMC4zMjc5NjQsIDAuNDA0ODI2IiwgXAotICAgICAgICAgICIwLjA2ODM5OSwgMC4xMjY1MjIsIDAuMTgwNDU0LCAwLjIxODkwOCwgMC4yODA0MDcsIDAuMzM0MjQ5LCAwLjQxMTEzNyIsIFwKLSAgICAgICAgICAiMC4wNzM0NjMsIDAuMTMxODk1LCAwLjE4NTgzNywgMC4yMjQyNzYsIDAuMjg1NzgzLCAwLjMzOTU5NSwgMC40MTY1MjUiLCBcCi0gICAgICAgICAgIjAuMDgwMzY0LCAwLjEzOTMzNiwgMC4xOTMzNTYsIDAuMjMxNzkzLCAwLjI5MzI5MywgMC4zNDcwODgsIDAuNDIzOTY3IiwgXAotICAgICAgICAgICIwLjA4NTYzMywgMC4xNDQ5NTYsIDAuMTk4OTcsIDAuMjM3NCwgMC4yOTg4OTYsIDAuMzUyNzQxLCAwLjQyOTUzNiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyOTc1MSwgMC4xMzY2NTIsIDAuMjQ3MTUzLCAwLjMyNjAxNCwgMC40NTQzNDUsIDAuNTY2MTU2LCAwLjcyNDc2NyIsIFwKLSAgICAgICAgICAiMC4wMjk2NDksIDAuMTM2NzQyLCAwLjI0NzE1OCwgMC4zMjYxODYsIDAuNDU0MjYyLCAwLjU2NjE5NiwgMC43MjYyOTEiLCBcCi0gICAgICAgICAgIjAuMDI5OTE2LCAwLjEzNjg0OCwgMC4yNDcyMDksIDAuMzI2NzA4LCAwLjQ1NDI5MywgMC41NjUzNCwgMC43MjYyOTEiLCBcCi0gICAgICAgICAgIjAuMDMwOTc4LCAwLjEzNzE1MSwgMC4yNDc0MSwgMC4zMjY4MjIsIDAuNDU0MzQzLCAwLjU2NTUzNiwgMC43MjYzMDgiLCBcCi0gICAgICAgICAgIjAuMDMxNjY0LCAwLjEzNzY0NCwgMC4yNDczNjUsIDAuMzI2ODU2LCAwLjQ1Mzg3MiwgMC41NjYyMzQsIDAuNzI0ODQ4IiwgXAotICAgICAgICAgICIwLjAzMzA2OSwgMC4xMzgyOTgsIDAuMjQ3OTQ0LCAwLjMyNzE3MywgMC40NTQ2MjksIDAuNTY1NjQxLCAwLjcyNjA3MSIsIFwKLSAgICAgICAgICAiMC4wMzQzMjksIDAuMTM4OTgxLCAwLjI0ODE0LCAwLjMyNzM5MSwgMC40NTQyOCwgMC41NjU1MjUsIDAuNzI2Mjg2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDMxNjE5LCAwLjA4NjU0NywgMC4xNDA1MiwgMC4xNzkwNDcsIDAuMjQwOTM3LCAwLjI5NDgyOCwgMC4zNzIxODIiLCBcCi0gICAgICAgICAgIjAuMDM5ODkzLCAwLjA5NDgzOCwgMC4xNDg4NTksIDAuMTg3NDI1LCAwLjI0OTMxOSwgMC4zMDMxNDksIDAuMzgwMzA0IiwgXAotICAgICAgICAgICIwLjA0ODkyOCwgMC4xMDM4NjksIDAuMTU3ODY1LCAwLjE5NjQ4NCwgMC4yNTgyNDIsIDAuMzEyMjMyLCAwLjM4OTM4NiIsIFwKLSAgICAgICAgICAiMC4wNTU0NzcsIDAuMTEwODY4LCAwLjE2NDgzNiwgMC4yMDM0NDUsIDAuMjY1MTEzLCAwLjMxOTE0LCAwLjM5NjUxNCIsIFwKLSAgICAgICAgICAiMC4wNjA5NDcsIDAuMTE2NzI3LCAwLjE3MDczNCwgMC4yMDkyODcsIDAuMjcxMDQyLCAwLjMyNTEwOSwgMC40MDIyODYiLCBcCi0gICAgICAgICAgIjAuMDY4MjI0LCAwLjEyNDQyLCAwLjE3ODE2NSwgMC4yMTY3MDIsIDAuMjc4Njg2LCAwLjMzMjM1NSwgMC40MDk4NTIiLCBcCi0gICAgICAgICAgIjAuMDczNTE1LCAwLjEyOTg0NiwgMC4xODM3MSwgMC4yMjIxNzcsIDAuMjgzODY3LCAwLjMzNzc5LCAwLjQxNDk0MiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyNDcwNiwgMC4xMzU2NTUsIDAuMjQ4ODU1LCAwLjMyOTg2NCwgMC40NjAzMzUsIDAuNTc1MTIzLCAwLjczNjgyNyIsIFwKLSAgICAgICAgICAiMC4wMjQ4MTIsIDAuMTM1NTM5LCAwLjI0OTAzOSwgMC4zMzA3ODQsIDAuNDYwMjg2LCAwLjU3NDMyNSwgMC43MzY1MDQiLCBcCi0gICAgICAgICAgIjAuMDI2MjI5LCAwLjEzNTg3LCAwLjI0OTQwMSwgMC4zMzAzMywgMC40NjAzMzQsIDAuNTc0NTQxLCAwLjczNjc5IiwgXAotICAgICAgICAgICIwLjAyNzk2NiwgMC4xMzYwNjIsIDAuMjQ5NDIzLCAwLjMzMDM2LCAwLjQ2MDc2LCAwLjU3NDAxMSwgMC43MzY3MTciLCBcCi0gICAgICAgICAgIjAuMDI5NjMyLCAwLjEzNjU0NSwgMC4yNDk1NCwgMC4zMzA1MTYsIDAuNDYwMzI0LCAwLjU3NDE4OSwgMC43MzY4NDEiLCBcCi0gICAgICAgICAgIjAuMDMxMzk2LCAwLjEzNzE3MSwgMC4yNDk1ODUsIDAuMzMwOTc0LCAwLjQ2MTAyNiwgMC41NzQ1MDEsIDAuNzM2NjQyIiwgXAotICAgICAgICAgICIwLjAzMzI3MiwgMC4xMzgwNjcsIDAuMjQ5NjMyLCAwLjMzMDcyNywgMC40NjA0NTIsIDAuNTc1MTA1LCAwLjczNjYwNSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0NzI5NSwgMC4xMDUxOTQsIDAuMTU5MTUxLCAwLjE5NzYwOCwgMC4yNTkxMTksIDAuMzEyOTMzLCAwLjM4OTg2NiIsIFwKLSAgICAgICAgICAiMC4wNTQ4MDgsIDAuMTEyNzAyLCAwLjE2NjY0OCwgMC4yMDUxMTEsIDAuMjY2NjE3LCAwLjMyMDQ2NiwgMC4zOTczMjkiLCBcCi0gICAgICAgICAgIjAuMDY0MzMsIDAuMTIyMzEzLCAwLjE3NjI1NSwgMC4yMTQ3MTcsIDAuMjc2MjU5LCAwLjMzMDA4NiwgMC40MDY5ODciLCBcCi0gICAgICAgICAgIjAuMDcyODc3LCAwLjEzMDY1NSwgMC4xODQ1NzQsIDAuMjIzMDI0LCAwLjI4NDUyOCwgMC4zMzgzNTksIDAuNDE1MjU3IiwgXAotICAgICAgICAgICIwLjA3OTc2NiwgMC4xMzgwNjMsIDAuMTkyMDk3LCAwLjIzMDU1MywgMC4yOTIwOSwgMC4zNDU4NzksIDAuNDIyODk5IiwgXAotICAgICAgICAgICIwLjA4ODkyNywgMC4xNDc3MjgsIDAuMjAxNzkxLCAwLjI0MDMxNywgMC4zMDE0MywgMC4zNTUyNSwgMC40MzIyMzIiLCBcCi0gICAgICAgICAgIjAuMDk1Njg0LCAwLjE1NDc4NSwgMC4yMDkwMjksIDAuMjQ3MTI3LCAwLjMwODU2OSwgMC4zNjIzODMsIDAuNDM5MjEyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDI5NzM0LCAwLjEzNjcxNiwgMC4yNDcxNDksIDAuMzI2NjM3LCAwLjQ1NDM0LCAwLjU2NjAzNCwgMC43MjQ4NDIiLCBcCi0gICAgICAgICAgIjAuMDI5NTg2LCAwLjEzNjc0MywgMC4yNDcxNjMsIDAuMzI2Njk0LCAwLjQ1Mzc3MSwgMC41NjYyODUsIDAuNzI2MjMiLCBcCi0gICAgICAgICAgIjAuMDMwMTQ0LCAwLjEzNjg3MywgMC4yNDcyMSwgMC4zMjY3MzYsIDAuNDU0NDIzLCAwLjU2NTU4MywgMC43MjQ4NDMiLCBcCi0gICAgICAgICAgIjAuMDMxMTY4LCAwLjEzNzI3MywgMC4yNDc0MjYsIDAuMzI2ODMxLCAwLjQ1NDM3NCwgMC41NjU2MTQsIDAuNzI2MzEzIiwgXAotICAgICAgICAgICIwLjAzMjYwNCwgMC4xMzc4NDksIDAuMjQ3NDU0LCAwLjMyNjQwOCwgMC40NTQ1MzcsIDAuNTY2MTI5LCAwLjcyNDk2IiwgXAotICAgICAgICAgICIwLjAzNDU1OSwgMC4xMzg3MjksIDAuMjQ4MDk1LCAwLjMyNjY4NSwgMC40NTQ1ODMsIDAuNTY1NDMyLCAwLjcyNTA1MiIsIFwKLSAgICAgICAgICAiMC4wMzYzMDgsIDAuMTM5Mzc1LCAwLjI0ODM3NywgMC4zMjc1NjcsIDAuNDU0MzE3LCAwLjU2NjY4NiwgMC43MjY0NzciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNTUxOSwgMC4wMDU2MzMsIDAuMDA1NjQ4LCAwLjAwNTY1MiwgMC4wMDU2NzMsIDAuMDA1NjQxLCAwLjAwNTY3NyIsIFwKLSAgICAgICAgICAiMC4wMDU0ODQsIDAuMDA1NjA2LCAwLjAwNTYyOCwgMC4wMDU2MzYsIDAuMDA1NjQxLCAwLjAwNTY0OCwgMC4wMDU2NDgiLCBcCi0gICAgICAgICAgIjAuMDA1NjA3LCAwLjAwNTY2NywgMC4wMDU2OSwgMC4wMDU2OTcsIDAuMDA1NzA0LCAwLjAwNTcwNSwgMC4wMDU3MSIsIFwKLSAgICAgICAgICAiMC4wMDU3NTIsIDAuMDA1NzU1LCAwLjAwNTc3MiwgMC4wMDU3ODEsIDAuMDA1Nzg1LCAwLjAwNTc4NiwgMC4wMDU3OTUiLCBcCi0gICAgICAgICAgIjAuMDA1ODk5LCAwLjAwNTg3NiwgMC4wMDU4OTQsIDAuMDA1OTA2LCAwLjAwNTkxLCAwLjAwNTkxMiwgMC4wMDU5MiIsIFwKLSAgICAgICAgICAiMC4wMDYyMzMsIDAuMDA2MTE3LCAwLjAwNjEyNCwgMC4wMDYxMjksIDAuMDA2MTM1LCAwLjAwNjEzNCwgMC4wMDYxNDYiLCBcCi0gICAgICAgICAgIjAuMDA2NTU5LCAwLjAwNjM2MiwgMC4wMDYzNTYsIDAuMDA2MzU3LCAwLjAwNjM2LCAwLjAwNjM1NywgMC4wMDYzNjQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNzczOCwgMC4wMDc4NDMsIDAuMDA3ODY1LCAwLjAwNzg3MiwgMC4wMDc4NzksIDAuMDA3ODgyLCAwLjAwNzg4NSIsIFwKLSAgICAgICAgICAiMC4wMDc2NTgsIDAuMDA3Nzg4LCAwLjAwNzgxOSwgMC4wMDc4MjksIDAuMDA3ODM4LCAwLjAwNzg0MiwgMC4wMDc4NDYiLCBcCi0gICAgICAgICAgIjAuMDA3NzQyLCAwLjAwNzgwNiwgMC4wMDc4MzQsIDAuMDA3ODQ0LCAwLjAwNzg1MywgMC4wMDc4NTcsIDAuMDA3ODYxIiwgXAotICAgICAgICAgICIwLjAwNzg2NywgMC4wMDc4NjMsIDAuMDA3ODg1LCAwLjAwNzg5NCwgMC4wMDc5MDEsIDAuMDA3OTA1LCAwLjAwNzkwOSIsIFwKLSAgICAgICAgICAiMC4wMDc5MjMsIDAuMDA3OTI5LCAwLjAwNzk1MSwgMC4wMDc5NTksIDAuMDA3OTY3LCAwLjAwNzk3MSwgMC4wMDc5NzUiLCBcCi0gICAgICAgICAgIjAuMDA4MTEyLCAwLjAwODA2OCwgMC4wMDgwOSwgMC4wMDgwOTksIDAuMDA4MTA5LCAwLjAwODExNCwgMC4wMDgxMTYiLCBcCi0gICAgICAgICAgIjAuMDA4NTQ2LCAwLjAwODI1OSwgMC4wMDgyNjUsIDAuMDA4MjY5LCAwLjAwODI3MiwgMC4wMDgyNzYsIDAuMDA4Mjc4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDUzMTYsIDAuMDA1NDkxLCAwLjAwNTUwOCwgMC4wMDU1MiwgMC4wMDU1MjEsIDAuMDA1NTM0LCAwLjAwNTUyNiIsIFwKLSAgICAgICAgICAiMC4wMDUyNTMsIDAuMDA1NDMyLCAwLjAwNTQ1OCwgMC4wMDU0NzEsIDAuMDA1NDc5LCAwLjAwNTQ4MiwgMC4wMDU0ODciLCBcCi0gICAgICAgICAgIjAuMDA1MzE0LCAwLjAwNTQ1NywgMC4wMDU0OTEsIDAuMDA1NTA0LCAwLjAwNTUxMywgMC4wMDU1MTgsIDAuMDA1NTI0IiwgXAotICAgICAgICAgICIwLjAwNTUyNiwgMC4wMDU1NjIsIDAuMDA1NTk2LCAwLjAwNTYwOSwgMC4wMDU2MjIsIDAuMDA1NjI2LCAwLjAwNTYzMSIsIFwKLSAgICAgICAgICAiMC4wMDU2OTUsIDAuMDA1Njc0LCAwLjAwNTY5OSwgMC4wMDU3MTQsIDAuMDA1NzI0LCAwLjAwNTczMSwgMC4wMDU3MzYiLCBcCi0gICAgICAgICAgIjAuMDA1OTI1LCAwLjAwNTg4LCAwLjAwNTkyNCwgMC4wMDU5MzIsIDAuMDA1OTIyLCAwLjAwNTk0NiwgMC4wMDU5MzQiLCBcCi0gICAgICAgICAgIjAuMDA2Mjc3LCAwLjAwNjEyNiwgMC4wMDYxMzYsIDAuMDA2MTQyLCAwLjAwNjEyMiwgMC4wMDYxNTUsIDAuMDA2MTYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNzI4NywgMC4wMDc0MDIsIDAuMDA3NDMxLCAwLjAwNzQ0LCAwLjAwNzQ0OCwgMC4wMDc0NTIsIDAuMDA3NDU2IiwgXAotICAgICAgICAgICIwLjAwNzIwOCwgMC4wMDczNTMsIDAuMDA3MzksIDAuMDA3NDAzLCAwLjAwNzQxNCwgMC4wMDc0MiwgMC4wMDc0MjYiLCBcCi0gICAgICAgICAgIjAuMDA3MzY3LCAwLjAwNzQxOSwgMC4wMDc0NjEsIDAuMDA3NDc2LCAwLjAwNzQ5LCAwLjAwNzQ5NywgMC4wMDc1MDMiLCBcCi0gICAgICAgICAgIjAuMDA3NTU5LCAwLjAwNzUxNCwgMC4wMDc1NDQsIDAuMDA3NTU1LCAwLjAwNzU2NSwgMC4wMDc1NywgMC4wMDc1NzYiLCBcCi0gICAgICAgICAgIjAuMDA3NzI2LCAwLjAwNzYxOSwgMC4wMDc2NDIsIDAuMDA3NjUxLCAwLjAwNzY1OCwgMC4wMDc2NjQsIDAuMDA3NjY5IiwgXAotICAgICAgICAgICIwLjAwODE0MSwgMC4wMDc4MzMsIDAuMDA3ODQ1LCAwLjAwNzg1MiwgMC4wMDc4NTUsIDAuMDA3ODYxLCAwLjAwNzg2NiIsIFwKLSAgICAgICAgICAiMC4wMDg1MjksIDAuMDA4MDYyLCAwLjAwODA1MiwgMC4wMDgwNSwgMC4wMDgwNTQsIDAuMDA4MDU2LCAwLjAwODA1OCIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBPUjJYNiAqCi0gKiAtLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoT1IyWDYpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC45NTczNjc7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTg1OTc4OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTg1MjU1OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTg1OTc4OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDkyNSwgMC4wMDA5OTMsIDAuMDAxMDAxLCAwLjAwMTAxMSwgMC4wMDEwMjEsIDAuMDAxMDMxLCAwLjAwMTAyOSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTA3NywgMC4wMDEwNzgsIDAuMDAxMDc4LCAwLjAwMTA3OCwgMC4wMDEwNzksIDAuMDAxMDc5LCAwLjAwMTA3OSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNzU3ODg7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNzU3ODg7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNzU3ODI7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjQ4LCAwLjAwMDI0OSwgMC4wMDAyNDgsIDAuMDAwMjQ5LCAwLjAwMDI0OCwgMC4wMDAyNDgsIDAuMDAwMjQ5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNzQxLCAwLjAwMDc0MSwgMC4wMDA3NDEsIDAuMDAwNzQxLCAwLjAwMDc0MSwgMC4wMDA3NDEsIDAuMDAwNzQiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMi4wMDY3ODsKLSAgICBmdW5jdGlvbiA6ICIoQStCKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjYzMTksIDAuMDYzNzUyLCAwLjEwMDMwNSwgMC4xMjYzNiwgMC4xNjgxMzEsIDAuMjA0NTcxLCAwLjI1Njc4MiIsIFwKLSAgICAgICAgICAiMC4wMzQ1OTUsIDAuMDcyMDIxLCAwLjEwODU4MiwgMC4xMzQ2ODUsIDAuMTc2NDE3LCAwLjIxMjkxOSwgMC4yNjUwNjQiLCBcCi0gICAgICAgICAgIjAuMDQzMTc0LCAwLjA4MDc5MiwgMC4xMTczNjEsIDAuMTQzNDM5LCAwLjE4NTE3NywgMC4yMjE3MTUsIDAuMjczODIyIiwgXAotICAgICAgICAgICIwLjA0OTM3MSwgMC4wODcyNTcsIDAuMTIzNzk2LCAwLjE0OTg4LCAwLjE5MTU5LCAwLjIyODA5MywgMC4yODAyODEiLCBcCi0gICAgICAgICAgIjAuMDU0NTIyLCAwLjA5MjgxLCAwLjEyOTM0NiwgMC4xNTU0MzksIDAuMTk3MTUsIDAuMjMzNjc0LCAwLjI4NTgwNCIsIFwKLSAgICAgICAgICAiMC4wNjEyMTcsIDAuMDk5OTcyLCAwLjEzNjQ4NywgMC4xNjI1NDYsIDAuMjA0MjM3LCAwLjI0MDczNiwgMC4yOTI4NzgiLCBcCi0gICAgICAgICAgIjAuMDY2MTA4LCAwLjEwNTUxNiwgMC4xNDIwNTksIDAuMTY4MjA5LCAwLjIwOTQ1MSwgMC4yNDYzNDksIDAuMjk4MDUxIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE4NjE3LCAwLjA5MzQsIDAuMTY5OSwgMC4yMjQ3MTQsIDAuMzEyOTIxLCAwLjM4OTg1NiwgMC41MDAxMjYiLCBcCi0gICAgICAgICAgIjAuMDE4ODA1LCAwLjA5MzQ1OSwgMC4xNzAyMywgMC4yMjQ5MzMsIDAuMzEyOTE2LCAwLjM4OTY4NCwgMC41MDAxODQiLCBcCi0gICAgICAgICAgIjAuMDIwMjQsIDAuMDkzNjQ4LCAwLjE3MDI3NywgMC4yMjUyMjgsIDAuMzEyODI4LCAwLjM4OTg4OSwgMC41MDA1NzEiLCBcCi0gICAgICAgICAgIjAuMDIxNjI4LCAwLjA5NDA0OCwgMC4xNzAyNTksIDAuMjI0OTQ1LCAwLjMxMzI3OCwgMC4zOTAzNjMsIDAuNTAwNTU2IiwgXAotICAgICAgICAgICIwLjAyMjkxLCAwLjA5NDQ0LCAwLjE3MDM5NSwgMC4yMjUyLCAwLjMxMzI5LCAwLjM4OTc3MiwgMC41MDA1MDIiLCBcCi0gICAgICAgICAgIjAuMDI0ODM2LCAwLjA5NTQxLCAwLjE3MDY0MywgMC4yMjU0MjgsIDAuMzEzMTY5LCAwLjM5MDIzNiwgMC41MDAwNDciLCBcCi0gICAgICAgICAgIjAuMDI2NDI4LCAwLjA5NTk2MSwgMC4xNzA5MzMsIDAuMjI1NDAyLCAwLjMxMzMxNywgMC4zOTAxMDksIDAuNTAwMTc0Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM4NzgsIDAuMDc5NTg0LCAwLjExNzI1OCwgMC4xNDQwOTQsIDAuMTg2OTk4LCAwLjIyNDUyLCAwLjI3ODE1IiwgXAotICAgICAgICAgICIwLjA0NDczNywgMC4wODU1MTYsIDAuMTIzMTk2LCAwLjE1MDAyOCwgMC4xOTI5MzIsIDAuMjMwNDc2LCAwLjI4NDExMiIsIFwKLSAgICAgICAgICAiMC4wNTEzMTQsIDAuMDkyMjQzLCAwLjEyOTkyOCwgMC4xNTY3NTksIDAuMTk5NjY2LCAwLjIzNzIwMSwgMC4yOTA4NjEiLCBcCi0gICAgICAgICAgIjAuMDU2NTcxLCAwLjA5Nzc5MSwgMC4xMzU1MSwgMC4xNjIzNDIsIDAuMjA1MjM1LCAwLjI0Mjc3NCwgMC4yOTY0NTciLCBcCi0gICAgICAgICAgIjAuMDYwODM3LCAwLjEwMjQ0MiwgMC4xNDAxMzQsIDAuMTY2OTQ4LCAwLjIwOTg2OSwgMC4yNDczNzMsIDAuMzAxMDc2IiwgXAotICAgICAgICAgICIwLjA2NjYyNywgMC4xMDg3MTEsIDAuMTQ2NTU5LCAwLjE3MzM2NCwgMC4yMTYyODMsIDAuMjUzNzkzLCAwLjMwNzM3NCIsIFwKLSAgICAgICAgICAiMC4wNzEwMDIsIDAuMTEzNDk0LCAwLjE1MTI0NCwgMC4xNzgxMjYsIDAuMjIwOTk0LCAwLjI1ODUxLCAwLjMxMjA5OSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyMjM1NCwgMC4wOTYzMjksIDAuMTcyMzU2LCAwLjIyNzQ3OSwgMC4zMTU2MDQsIDAuMzkyOTA0LCAwLjUwMjM5MyIsIFwKLSAgICAgICAgICAiMC4wMjIyMzksIDAuMDk2MzcyLCAwLjE3MjU3MywgMC4yMjc0NjEsIDAuMzE1NTksIDAuMzkyNDU2LCAwLjUwMzYxMSIsIFwKLSAgICAgICAgICAiMC4wMjI5MzEsIDAuMDk2NTg5LCAwLjE3MjY4MiwgMC4yMjc1MjMsIDAuMzE1NjQyLCAwLjM5Mjg4OSwgMC41MDI0OTciLCBcCi0gICAgICAgICAgIjAuMDIzODI5LCAwLjA5NzA4NiwgMC4xNzI3NjYsIDAuMjI3Njk0LCAwLjMxNTY4NywgMC4zOTMwMTYsIDAuNTAyNyIsIFwKLSAgICAgICAgICAiMC4wMjQ2NDgsIDAuMDk3NTQ4LCAwLjE3MzA3NywgMC4yMjc4OTcsIDAuMzE1MzE2LCAwLjM5MzAyNCwgMC41MDI2NjUiLCBcCi0gICAgICAgICAgIjAuMDI2MDUxLCAwLjA5ODM0LCAwLjE3MzUyLCAwLjIyNzk5OCwgMC4zMTYxMTgsIDAuMzkyNDgzLCAwLjUwMzY0MSIsIFwKLSAgICAgICAgICAiMC4wMjcxNjgsIDAuMDk5MTUsIDAuMTczNzM2LCAwLjIyODA4NywgMC4zMTU5MDcsIDAuMzkzMjc4LCAwLjUwMzY2NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyNTA4OSwgMC4wNjI0ODQsIDAuMDk5MDMxLCAwLjEyNTA4LCAwLjE2NjgzNiwgMC4yMDM0MTEsIDAuMjU1NTE1IiwgXAotICAgICAgICAgICIwLjAzMzEyOCwgMC4wNzA1MzcsIDAuMTA3MDc2LCAwLjEzMzIwMSwgMC4xNzQ5NCwgMC4yMTE0NTgsIDAuMjYzNjA2IiwgXAotICAgICAgICAgICIwLjA0MTAxOCwgMC4wNzg2NTksIDAuMTE1MTgyLCAwLjE0MTI3NiwgMC4xODMwMDYsIDAuMjE5NTgxLCAwLjI3MTc4OSIsIFwKLSAgICAgICAgICAiMC4wNDY4NSwgMC4wODQ3MzUsIDAuMTIxMjg4LCAwLjE0NzM3NCwgMC4xODkwODMsIDAuMjI1NjQ0LCAwLjI3NzgxNCIsIFwKLSAgICAgICAgICAiMC4wNTEzMjUsIDAuMDg5NzU4LCAwLjEyNjI2MSwgMC4xNTIzMTMsIDAuMTk0MDQ2LCAwLjIzMDU5LCAwLjI4MjgxOCIsIFwKLSAgICAgICAgICAiMC4wNTcyNzUsIDAuMDk2MjM5LCAwLjEzMjU0MSwgMC4xNTg4MzcsIDAuMjAwNTA3LCAwLjIzNjczOSwgMC4yODkyIiwgXAotICAgICAgICAgICIwLjA2MTQ1OCwgMC4xMDEwNzIsIDAuMTM3Njc4LCAwLjE2MzYzMSwgMC4yMDU0NDYsIDAuMjQxNzEyLCAwLjI5NDA4MyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxODQ2NiwgMC4wOTMzMDMsIDAuMTY5OTQ5LCAwLjIyNDg5NCwgMC4zMTMxNjEsIDAuMzg5OTAyLCAwLjUwMDQwMSIsIFwKLSAgICAgICAgICAiMC4wMTg4MTEsIDAuMDkzNDE5LCAwLjE3MDE2OCwgMC4yMjQ3OTEsIDAuMzEyNzQxLCAwLjM4OTc0NSwgMC40OTk4MTYiLCBcCi0gICAgICAgICAgIjAuMDIwMzc4LCAwLjA5MzcxMSwgMC4xNzAxMTcsIDAuMjI1Mjc3LCAwLjMxMzQwNywgMC4zODk5MDgsIDAuNTAwMTcxIiwgXAotICAgICAgICAgICIwLjAyMTkyMiwgMC4wOTQyMTQsIDAuMTcwMzg4LCAwLjIyNTAzNCwgMC4zMTMsIDAuMzg5ODA2LCAwLjUwMDI0OCIsIFwKLSAgICAgICAgICAiMC4wMjMzMjMsIDAuMDk0NjUzLCAwLjE3MDQ4LCAwLjIyNTE4MSwgMC4zMTM0MywgMC4zODk5MTQsIDAuNSIsIFwKLSAgICAgICAgICAiMC4wMjUyMjcsIDAuMDk1NjU4LCAwLjE3MDc1MiwgMC4yMjUyNzIsIDAuMzEzMTYyLCAwLjM5MDE4OCwgMC40OTk5NjYiLCBcCi0gICAgICAgICAgIjAuMDI3MDAxLCAwLjA5NjQ0NSwgMC4xNzExMTcsIDAuMjI1NDkyLCAwLjMxMzA2MywgMC4zOTAxNTYsIDAuNTAwODI4Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM2NjcyLCAwLjA3NzQ2NSwgMC4xMTUxNTYsIDAuMTQxOTkxLCAwLjE4NDg5MiwgMC4yMjI0MzgsIDAuMjc2MDk0IiwgXAotICAgICAgICAgICIwLjA0NDE5NywgMC4wODQ5NjIsIDAuMTIyNjQ5LCAwLjE0OTQ4MiwgMC4xOTIzODksIDAuMjI5OTM2LCAwLjI4MzU3IiwgXAotICAgICAgICAgICIwLjA1MzI2OCwgMC4wOTM5NTEsIDAuMTMxNjA5LCAwLjE1ODQzNSwgMC4yMDEzNDgsIDAuMjM4ODc0LCAwLjI5MjUxNyIsIFwKLSAgICAgICAgICAiMC4wNjAyMDcsIDAuMTAxMzc4LCAwLjEzODk1LCAwLjE2NTcyNywgMC4yMDg2NSwgMC4yNDYxNTcsIDAuMjk5ODU4IiwgXAotICAgICAgICAgICIwLjA2NjAyNiwgMC4xMDc1MDcsIDAuMTQ1MzE4LCAwLjE3MjE2NywgMC4yMTUwNTksIDAuMjUyNTgzLCAwLjMwNjE4OSIsIFwKLSAgICAgICAgICAiMC4wNzM2NiwgMC4xMTU0MjIsIDAuMTUzMjYyLCAwLjE4MDA4LCAwLjIyMjkwNywgMC4yNjAzOTcsIDAuMzEzOTk1IiwgXAotICAgICAgICAgICIwLjA3OTUzOSwgMC4xMjE0ODEsIDAuMTU5NjA5LCAwLjE4NjYsIDAuMjI5MTIzLCAwLjI2NjU2NywgMC4zMjAxNDUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjIzMjksIDAuMDk2MzUzLCAwLjE3MjUyNSwgMC4yMjc0NDUsIDAuMzE1NjE2LCAwLjM5Mjk5NCwgMC41MDI0MSIsIFwKLSAgICAgICAgICAiMC4wMjIyNDksIDAuMDk2MzgyLCAwLjE3MjU4MywgMC4yMjc0NTgsIDAuMzE1NTk0LCAwLjM5MjQzOCwgMC41MDM2MDgiLCBcCi0gICAgICAgICAgIjAuMDIzMTIyLCAwLjA5NjY3NywgMC4xNzI3MiwgMC4yMjc1MywgMC4zMTUxNDMsIDAuMzkyOTc1LCAwLjUwMzYyNyIsIFwKLSAgICAgICAgICAiMC4wMjQ0MDIsIDAuMDk3MjcxLCAwLjE3Mjg2MywgMC4yMjc3NzYsIDAuMzE1ODQyLCAwLjM5Mjk5MSwgMC41MDI2ODgiLCBcCi0gICAgICAgICAgIjAuMDI1NTcsIDAuMDk3ODQ1LCAwLjE3MzIyNiwgMC4yMjgwMiwgMC4zMTU5OCwgMC4zOTMxNTEsIDAuNTAzNDk0IiwgXAotICAgICAgICAgICIwLjAyNzYwOCwgMC4wOTg3MjIsIDAuMTczNTkzLCAwLjIyODE0NCwgMC4zMTYyODcsIDAuMzkyODYxLCAwLjUwMzc2NSIsIFwKLSAgICAgICAgICAiMC4wMjg1OTYsIDAuMDk5NTk2LCAwLjE3Mzk4NCwgMC4yMjgzNzUsIDAuMzE1OTM2LCAwLjM5MjgyOSwgMC41MDMwOTEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwODM4NSwgMC4wMDg2MjUsIDAuMDA4NjU5LCAwLjAwODY3NiwgMC4wMDg2OCwgMC4wMDg2OTYsIDAuMDA4Njg5IiwgXAotICAgICAgICAgICIwLjAwODM0LCAwLjAwODU2NywgMC4wMDg2MTcsIDAuMDA4NjM0LCAwLjAwODY0NywgMC4wMDg2NTUsIDAuMDA4NjYyIiwgXAotICAgICAgICAgICIwLjAwODUyNSwgMC4wMDg3MTMsIDAuMDA4NzYxLCAwLjAwODc5MSwgMC4wMDg4MTQsIDAuMDA4ODIyLCAwLjAwODg0MiIsIFwKLSAgICAgICAgICAiMC4wMDg4NjEsIDAuMDA4OTAyLCAwLjAwODk1MSwgMC4wMDg5NjgsIDAuMDA4OTg4LCAwLjAwODk5NywgMC4wMDkiLCBcCi0gICAgICAgICAgIjAuMDA5MTUyLCAwLjAwOTE3MywgMC4wMDkyMjMsIDAuMDA5MjQyLCAwLjAwOTI2NywgMC4wMDkyNzIsIDAuMDA5Mjc4IiwgXAotICAgICAgICAgICIwLjAwOTgyLCAwLjAwOTY5LCAwLjAwOTcyMiwgMC4wMDk3MzIsIDAuMDA5NzQ4LCAwLjAwOTc1OSwgMC4wMDk3NzIiLCBcCi0gICAgICAgICAgIjAuMDEwNDY1LCAwLjAxMDE1NSwgMC4wMTAxNzQsIDAuMDEwMTg1LCAwLjAxMDE2OCwgMC4wMTAyMDcsIDAuMDEwMTgzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTE4OTEsIDAuMDEyMjE5LCAwLjAxMjI4NSwgMC4wMTIzMDYsIDAuMDEyMzI1LCAwLjAxMjMzNSwgMC4wMTIzNDUiLCBcCi0gICAgICAgICAgIjAuMDExNzY5LCAwLjAxMjEwOCwgMC4wMTIxODYsIDAuMDEyMjEyLCAwLjAxMjIzNSwgMC4wMTIyNDcsIDAuMDEyMjU5IiwgXAotICAgICAgICAgICIwLjAxMTg5NiwgMC4wMTIxMjgsIDAuMDEyMjA4LCAwLjAxMjIzNiwgMC4wMTIyNjEsIDAuMDEyMjc1LCAwLjAxMjI4NyIsIFwKLSAgICAgICAgICAiMC4wMTIwOTMsIDAuMDEyMjM0LCAwLjAxMjMxMSwgMC4wMTIzMzcsIDAuMDEyMzYzLCAwLjAxMjM3NiwgMC4wMTIzODkiLCBcCi0gICAgICAgICAgIjAuMDEyMjA5LCAwLjAxMjM3MiwgMC4wMTI0NTEsIDAuMDEyNDc5LCAwLjAxMjUwOCwgMC4wMTI1MjMsIDAuMDEyNTM5IiwgXAotICAgICAgICAgICIwLjAxMjYxNSwgMC4wMTI2NzMsIDAuMDEyNzU2LCAwLjAxMjc4OSwgMC4wMTI4MjMsIDAuMDEyODM5LCAwLjAxMjg1NyIsIFwKLSAgICAgICAgICAiMC4wMTMxMjUsIDAuMDEzMTE3LCAwLjAxMzE1NiwgMC4wMTMxNzQsIDAuMDEzMTk5LCAwLjAxMzIxLCAwLjAxMzIyNCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA3ODYxLCAwLjAwODE1LCAwLjAwODE4OSwgMC4wMDgyMDUsIDAuMDA4MjM1LCAwLjAwODIxOCwgMC4wMDgyMDIiLCBcCi0gICAgICAgICAgIjAuMDA3NzUzLCAwLjAwODAzNywgMC4wMDgwOTIsIDAuMDA4MTA3LCAwLjAwODEyOCwgMC4wMDgxMzQsIDAuMDA4MTQiLCBcCi0gICAgICAgICAgIjAuMDA3ODk2LCAwLjAwODA5NywgMC4wMDgxNzUsIDAuMDA4MjAyLCAwLjAwODIxOSwgMC4wMDgyMzEsIDAuMDA4MjQiLCBcCi0gICAgICAgICAgIjAuMDA4MjEyLCAwLjAwODMyOSwgMC4wMDgzOTksIDAuMDA4NDIxLCAwLjAwODQ0NCwgMC4wMDg0NjEsIDAuMDA4NDY2IiwgXAotICAgICAgICAgICIwLjAwODU0OCwgMC4wMDg1NDEsIDAuMDA4NTg4LCAwLjAwODYyMiwgMC4wMDg2NTcsIDAuMDA4NjcyLCAwLjAwODY5IiwgXAotICAgICAgICAgICIwLjAwOTE4MSwgMC4wMDkwNTMsIDAuMDA5MDcyLCAwLjAwOTE0NSwgMC4wMDkxNjQsIDAuMDA5MTM4LCAwLjAwOTE5NSIsIFwKLSAgICAgICAgICAiMC4wMDk3ODksIDAuMDA5NTQyLCAwLjAwOTU4NCwgMC4wMDk1MzgsIDAuMDA5NjIzLCAwLjAwOTU3NCwgMC4wMDk2NSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEwOTgyLCAwLjAxMTMwNiwgMC4wMTEzNzgsIDAuMDExNDAxLCAwLjAxMTQyMiwgMC4wMTE0MzMsIDAuMDExNDQzIiwgXAotICAgICAgICAgICIwLjAxMDg4MywgMC4wMTEyMTQsIDAuMDExMywgMC4wMTEzMywgMC4wMTEzNTcsIDAuMDExMzcxLCAwLjAxMTM4NCIsIFwKLSAgICAgICAgICAiMC4wMTExMTUsIDAuMDExMzQ5LCAwLjAxMTQyNiwgMC4wMTE0NTUsIDAuMDExNDgyLCAwLjAxMTQ5NywgMC4wMTE1MTEiLCBcCi0gICAgICAgICAgIjAuMDExNTM0LCAwLjAxMTU0NCwgMC4wMTE2MjUsIDAuMDExNjgsIDAuMDExNjkxLCAwLjAxMTcxLCAwLjAxMTcyNyIsIFwKLSAgICAgICAgICAiMC4wMTE4ODEsIDAuMDExNzYyLCAwLjAxMTgzOCwgMC4wMTE4NzEsIDAuMDExOTAzLCAwLjAxMTkyMSwgMC4wMTE5MzUiLCBcCi0gICAgICAgICAgIjAuMDEyNTc5LCAwLjAxMjI1LCAwLjAxMjI5MSwgMC4wMTIzMTYsIDAuMDEyMzM5LCAwLjAxMjM1NiwgMC4wMTIzNzEiLCBcCi0gICAgICAgICAgIjAuMDEyODg2LCAwLjAxMjcyNCwgMC4wMTI2NzgsIDAuMDEyNywgMC4wMTI3MjMsIDAuMDEyNzc5LCAwLjAxMjc5MiIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBPUjJYOCAqCi0gKiAtLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoT1IyWDgpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMS4xMzY4NjsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxODY1MDY7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxODU3ODU7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxODY1MDY7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwOTI1LCAwLjAwMDk5MiwgMC4wMDEwMDEsIDAuMDAxMDExLCAwLjAwMTAyMSwgMC4wMDEwMzEsIDAuMDAxMDI5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxMDc3LCAwLjAwMTA3OCwgMC4wMDEwNzgsIDAuMDAxMDc4LCAwLjAwMTA3OSwgMC4wMDEwNzksIDAuMDAxMDc5Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE3Njc4MjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE3Njc3OTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE3Njc4MjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyNDgsIDAuMDAwMjQ4LCAwLjAwMDI0OCwgMC4wMDAyNDgsIDAuMDAwMjQ4LCAwLjAwMDI0OCwgMC4wMDAyNDgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA3MzgsIDAuMDAwNzM4LCAwLjAwMDczOCwgMC4wMDA3MzgsIDAuMDAwNzM4LCAwLjAwMDczOCwgMC4wMDA3MzgiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMi42NjE1OTsKLSAgICBmdW5jdGlvbiA6ICIoQStCKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjc1NDUsIDAuMDU2NzExLCAwLjA4NDI2OSwgMC4xMDM4OTMsIDAuMTM1MzQ4LCAwLjE2Mjg1LCAwLjIwMjAzNyIsIFwKLSAgICAgICAgICAiMC4wMzU5MzMsIDAuMDY1MDY4LCAwLjA5MjYyOCwgMC4xMTIyNzgsIDAuMTQzNzE3LCAwLjE3MTIzLCAwLjIxMDQ3MSIsIFwKLSAgICAgICAgICAiMC4wNDUxMywgMC4wNzQ0OTcsIDAuMTAyMDQ1LCAwLjEyMTcxMywgMC4xNTMxMjYsIDAuMTgwNjE1LCAwLjIxOTg5NCIsIFwKLSAgICAgICAgICAiMC4wNTE5MzMsIDAuMDgxODAyLCAwLjEwOTI5OCwgMC4xMjg5NSwgMC4xNjAzNjIsIDAuMTg3ODQ1LCAwLjIyNzExMSIsIFwKLSAgICAgICAgICAiMC4wNTc1MTYsIDAuMDg3ODg2LCAwLjExNTQ0NCwgMC4xMzUwMjgsIDAuMTY2NDM4LCAwLjE5MzkyMiwgMC4yMzMxOTYiLCBcCi0gICAgICAgICAgIjAuMDY0ODE5LCAwLjA5NTk3MywgMC4xMjM1MjEsIDAuMTQzMTcyLCAwLjE3NDU1NSwgMC4yMDIwMjQsIDAuMjQxMjc0IiwgXAotICAgICAgICAgICIwLjA3MDEwOSwgMC4xMDE5ODQsIDAuMTI5NTQxLCAwLjE0OTA3NCwgMC4xODA1MDYsIDAuMjA3OTQ4LCAwLjI0NzE2OSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxNzA3MiwgMC4wNzI0MzIsIDAuMTI5NjY3LCAwLjE3MDcyMSwgMC4yMzcyNzgsIDAuMjk1MzY4LCAwLjM3NzQzMyIsIFwKLSAgICAgICAgICAiMC4wMTcxNDUsIDAuMDcyNDc5LCAwLjEyOTY4NywgMC4xNzEwNDcsIDAuMjM3MTQ4LCAwLjI5NTM3NSwgMC4zNzgyNTUiLCBcCi0gICAgICAgICAgIjAuMDE4NTg0LCAwLjA3Mjg2NiwgMC4xMjk4MzgsIDAuMTcxMTgzLCAwLjIzNzMyNywgMC4yOTUxMjEsIDAuMzc4MjI1IiwgXAotICAgICAgICAgICIwLjAyMDI0OCwgMC4wNzM1MjcsIDAuMTMwMjQ2LCAwLjE3MTMzOSwgMC4yMzczODYsIDAuMjk1MzMxLCAwLjM3ODI0NiIsIFwKLSAgICAgICAgICAiMC4wMjE2ODMsIDAuMDc0MjI3LCAwLjEzMDU1NiwgMC4xNzEzNDgsIDAuMjM3MzMyLCAwLjI5NTIzNSwgMC4zNzgyNCIsIFwKLSAgICAgICAgICAiMC4wMjM1NzksIDAuMDc1NCwgMC4xMzEwODgsIDAuMTcxNzgxLCAwLjIzNzU5LCAwLjI5NTM3MiwgMC4zNzgwMTciLCBcCi0gICAgICAgICAgIjAuMDI1MTM1LCAwLjA3NjQ3MywgMC4xMzE5MDIsIDAuMTcyMTIsIDAuMjM3NjE2LCAwLjI5NTMzNCwgMC4zNzgxMDIiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDIwMTcsIDAuMDc1MDI2LCAwLjEwMzc1MywgMC4xMjM5OTMsIDAuMTU2MjkyLCAwLjE4NDUyOSwgMC4yMjQ4NTEiLCBcCi0gICAgICAgICAgIjAuMDQ4MDQ4LCAwLjA4MTAzMSwgMC4xMDk3NjMsIDAuMTI5OTg4LCAwLjE2MjI4MiwgMC4xOTA1MiwgMC4yMzA4NzEiLCBcCi0gICAgICAgICAgIjAuMDU0OTYzLCAwLjA4Nzk1OCwgMC4xMTY2NTcsIDAuMTM2ODgzLCAwLjE2OTE3NiwgMC4xOTc0MTIsIDAuMjM3NzQzIiwgXAotICAgICAgICAgICIwLjA2MDcxNSwgMC4wOTQwNDEsIDAuMTIyNzYxLCAwLjE0Mjk5NywgMC4xNzUyODksIDAuMjAzNTMsIDAuMjQzODQxIiwgXAotICAgICAgICAgICIwLjA2NTQ4NywgMC4wOTkyMjIsIDAuMTI4MDM3LCAwLjE0ODI1NiwgMC4xODA1NDMsIDAuMjA4NzU4LCAwLjI0OTA5IiwgXAotICAgICAgICAgICIwLjA3MTg4NiwgMC4xMDYxMzQsIDAuMTM1MDc3LCAwLjE1NTQyMiwgMC4xODc2NDcsIDAuMjE1ODgxLCAwLjI1NjE4NiIsIFwKLSAgICAgICAgICAiMC4wNzY4MiwgMC4xMTE1MzIsIDAuMTQwNDY1LCAwLjE2MDc0OSwgMC4xOTMwNTksIDAuMjIxMjc1LCAwLjI2MTU2NSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyMTQwMywgMC4wNzczNDMsIDAuMTM0MTQ5LCAwLjE3NTMzNywgMC4yNDE4NzgsIDAuMjk5OTk1LCAwLjM4MzQyIiwgXAotICAgICAgICAgICIwLjAyMTM2NCwgMC4wNzcyOSwgMC4xMzQxNSwgMC4xNzUzMiwgMC4yNDE4NjQsIDAuMzAwMjY1LCAwLjM4Mzk3NyIsIFwKLSAgICAgICAgICAiMC4wMjE3OTMsIDAuMDc3NTAzLCAwLjEzNDI4MSwgMC4xNzU0MTgsIDAuMjQxOTI2LCAwLjMwMDI1MiwgMC4zODM5MDYiLCBcCi0gICAgICAgICAgIjAuMDIyNjU3LCAwLjA3ODA5MSwgMC4xMzQ1OTIsIDAuMTc1NjMxLCAwLjI0MjA3MSwgMC4zMDA0MzEsIDAuMzgzOTUiLCBcCi0gICAgICAgICAgIjAuMDIzNjEsIDAuMDc4NzkzLCAwLjEzNTA2NiwgMC4xNzU5MjQsIDAuMjQyMzM3LCAwLjMwMDUwMiwgMC4zODM0NjEiLCBcCi0gICAgICAgICAgIjAuMDI0OTQ3LCAwLjA3OTkyOCwgMC4xMzU2ODcsIDAuMTc2NDAzLCAwLjI0MjY2MywgMC4zMDA3OTUsIDAuMzgzNzg4IiwgXAotICAgICAgICAgICIwLjAyNjEyMywgMC4wODA2NTIsIDAuMTM2Mzg3LCAwLjE3Njg2MSwgMC4yNDI2OTIsIDAuMzAwNjY2LCAwLjM4Mzk5NyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyNjM0MywgMC4wNTU1NCwgMC4wODMwODksIDAuMTAyNzMzLCAwLjEzNDE2MywgMC4xNjE2MzcsIDAuMjAwOTEyIiwgXAotICAgICAgICAgICIwLjAzNDYyMSwgMC4wNjM3NjYsIDAuMDkxMzE2LCAwLjExMDk2LCAwLjE0MjM4OSwgMC4xNjk5LCAwLjIwOTIwNSIsIFwKLSAgICAgICAgICAiMC4wNDMyOTQsIDAuMDcyNjU1LCAwLjEwMDE5LCAwLjExOTgyNiwgMC4xNTEyNCwgMC4xNzg3OTcsIDAuMjE4MDA4IiwgXAotICAgICAgICAgICIwLjA0OTY5NiwgMC4wNzk2OTgsIDAuMTA3MjUzLCAwLjEyNjg3MywgMC4xNTgyOTEsIDAuMTg1ODE4LCAwLjIyNTA4IiwgXAotICAgICAgICAgICIwLjA1NDc5MiwgMC4wODUyNTIsIDAuMTEyNzM0LCAwLjEzMjM2MywgMC4xNjM3NDUsIDAuMTkxMjUsIDAuMjMwNDc0IiwgXAotICAgICAgICAgICIwLjA2MTI2OSwgMC4wOTI2MTYsIDAuMTIwMTkxLCAwLjEzOTkwNiwgMC4xNzA5OTYsIDAuMTk4NDQ3LCAwLjIzNzY3IiwgXAotICAgICAgICAgICIwLjA2NjAxOSwgMC4wOTgxNDUsIDAuMTI1NTQzLCAwLjE0NTM1MiwgMC4xNzY4MiwgMC4yMDQxNjUsIDAuMjQzMzcyIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE2OTI3LCAwLjA3MjQyMywgMC4xMjk1OTMsIDAuMTcxMDg2LCAwLjIzNzM3OCwgMC4yOTUsIDAuMzc4MTM0IiwgXAotICAgICAgICAgICIwLjAxNzExLCAwLjA3MjQ2NSwgMC4xMjk4MDUsIDAuMTcxMDkyLCAwLjIzNzM2NiwgMC4yOTQ4OTgsIDAuMzc3NTgyIiwgXAotICAgICAgICAgICIwLjAxODgwNiwgMC4wNzI5OTEsIDAuMTI5OCwgMC4xNzA5NzgsIDAuMjM3MzkzLCAwLjI5NDk1MiwgMC4zNzgxMjUiLCBcCi0gICAgICAgICAgIjAuMDIwNDMyLCAwLjA3MzcxOCwgMC4xMzAyNDIsIDAuMTcxMjU2LCAwLjIzNzM3OSwgMC4yOTQ5NDUsIDAuMzc3NzI1IiwgXAotICAgICAgICAgICIwLjAyMTk5MSwgMC4wNzQ2NjYsIDAuMTMwNzEzLCAwLjE3MTYxOCwgMC4yMzczNjYsIDAuMjk1NTc1LCAwLjM3ODQxOCIsIFwKLSAgICAgICAgICAiMC4wMjQwODYsIDAuMDc2MTExLCAwLjEzMTM0MywgMC4xNzE5NjMsIDAuMjM3NDg0LCAwLjI5NTA4MSwgMC4zNzgwNDciLCBcCi0gICAgICAgICAgIjAuMDI1NzUxLCAwLjA3NzEyOCwgMC4xMzIyNTMsIDAuMTcyMzY0LCAwLjIzODAzMiwgMC4yOTU1NDUsIDAuMzc4MDgxIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM5OTI4LCAwLjA3Mjk0OCwgMC4xMDE2NzIsIDAuMTIxOTExLCAwLjE1NDIxLCAwLjE4MjQ0NCwgMC4yMjI3NzIiLCBcCi0gICAgICAgICAgIjAuMDQ3NDg0LCAwLjA4MDQ5MywgMC4xMDkyMTUsIDAuMTI5NDQ2LCAwLjE2MTc0NiwgMC4xODk5ODUsIDAuMjMwMzA5IiwgXAotICAgICAgICAgICIwLjA1NzAxNSwgMC4wOTAwMTQsIDAuMTE4NzE1LCAwLjEzODk0MSwgMC4xNzEyMzYsIDAuMTk5NDgsIDAuMjM5ODE5IiwgXAotICAgICAgICAgICIwLjA2NDg3NiwgMC4wOTgxNjEsIDAuMTI2ODY3LCAwLjE0NzEsIDAuMTc5MzgsIDAuMjA3NjIsIDAuMjQ3OTQiLCBcCi0gICAgICAgICAgIjAuMDcxNDIyLCAwLjEwNDk2NCwgMC4xMzM3MzcsIDAuMTUzOTg3LCAwLjE4NjQ1NywgMC4yMTQ3MjMsIDAuMjU1MTE3IiwgXAotICAgICAgICAgICIwLjA4MDA0NSwgMC4xMTQxNTgsIDAuMTQzMDYzLCAwLjE2MzM3MywgMC4xOTU3NCwgMC4yMjM5OTcsIDAuMjYzOTQ4IiwgXAotICAgICAgICAgICIwLjA4NjM5MSwgMC4xMjEwMDQsIDAuMTQ5Nzg4LCAwLjE3MDIzLCAwLjIwMjYyNywgMC4yMzA1MzIsIDAuMjcwODA0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDIxNDI1LCAwLjA3NzM0NSwgMC4xMzQxNTEsIDAuMTc1MzMyLCAwLjI0MTg3NiwgMC4yOTk5MjIsIDAuMzgzODY1IiwgXAotICAgICAgICAgICIwLjAyMTMxNywgMC4wNzczMTEsIDAuMTM0MTY2LCAwLjE3NTMyNCwgMC4yNDE1MzYsIDAuMzAwMjU4LCAwLjM4Mzg4IiwgXAotICAgICAgICAgICIwLjAyMjAzMywgMC4wNzc2NiwgMC4xMzQzMzYsIDAuMTc1NDU4LCAwLjI0MTkzNywgMC4yOTk4NjgsIDAuMzgzMzQ2IiwgXAotICAgICAgICAgICIwLjAyMzMzOSwgMC4wNzgyODYsIDAuMTM0NzA1LCAwLjE3NTYwOCwgMC4yNDIwOTIsIDAuMzAwNDM3LCAwLjM4Mzk5MyIsIFwKLSAgICAgICAgICAiMC4wMjQ2MzQsIDAuMDc5MTkyLCAwLjEzNTI1MSwgMC4xNzYxMDUsIDAuMjQyMTU2LCAwLjMwMDU1NiwgMC4zODQxNzgiLCBcCi0gICAgICAgICAgIjAuMDI2NjMxLCAwLjA4MDMzNCwgMC4xMzYwNDQsIDAuMTc2Nzk3LCAwLjI0MjU0NiwgMC4zMDA5NTEsIDAuMzgzOTc3IiwgXAotICAgICAgICAgICIwLjAyODAyNCwgMC4wODE0NTMsIDAuMTM2Njk0LCAwLjE3NzE0MiwgMC4yNDI5MTYsIDAuMzAwODYsIDAuMzg0NTI5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTA2MzksIDAuMDEwOTYxLCAwLjAxMTAzLCAwLjAxMTA0MiwgMC4wMTEwNjEsIDAuMDExMDc2LCAwLjAxMTA4NiIsIFwKLSAgICAgICAgICAiMC4wMTA1OSwgMC4wMTA4NzMsIDAuMDEwOTU1LCAwLjAxMDk4NCwgMC4wMTEwMSwgMC4wMTEwMjUsIDAuMDExMDM3IiwgXAotICAgICAgICAgICIwLjAxMDg1OSwgMC4wMTA5OTEsIDAuMDExMDg0LCAwLjAxMTEwOCwgMC4wMTExNSwgMC4wMTExNzMsIDAuMDExMTkiLCBcCi0gICAgICAgICAgIjAuMDExMjIyLCAwLjAxMTE4OCwgMC4wMTEyNDksIDAuMDExMjY0LCAwLjAxMTMwNiwgMC4wMTEzMTksIDAuMDExMzM5IiwgXAotICAgICAgICAgICIwLjAxMTU0OCwgMC4wMTE0NCwgMC4wMTE0OTUsIDAuMDExNTI3LCAwLjAxMTU0OCwgMC4wMTE1NzQsIDAuMDExNjA2IiwgXAotICAgICAgICAgICIwLjAxMjI4NywgMC4wMTE5NTcsIDAuMDExOTg3LCAwLjAxMjAwOSwgMC4wMTIwMjcsIDAuMDEyMDQ2LCAwLjAxMjA2MyIsIFwKLSAgICAgICAgICAiMC4wMTMwMywgMC4wMTI0ODMsIDAuMDEyNDc3LCAwLjAxMjQ3OSwgMC4wMTI0OTIsIDAuMDEyNTAzLCAwLjAxMjUxMiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE0NDUyLCAwLjAxNDc0OCwgMC4wMTQ4NTcsIDAuMDE0ODk1LCAwLjAxNDkzMSwgMC4wMTQ5NDksIDAuMDE0OTY4IiwgXAotICAgICAgICAgICIwLjAxNDI5NCwgMC4wMTQ2MiwgMC4wMTQ3NDcsIDAuMDE0NzkzLCAwLjAxNDgzNSwgMC4wMTQ4NTgsIDAuMDE0ODc5IiwgXAotICAgICAgICAgICIwLjAxNDUxOSwgMC4wMTQ2NTgsIDAuMDE0NzY5LCAwLjAxNDgxMiwgMC4wMTQ4NTUsIDAuMDE0ODc4LCAwLjAxNDkiLCBcCi0gICAgICAgICAgIjAuMDE0NzQsIDAuMDE0NzY3LCAwLjAxNDg2NSwgMC4wMTQ5MDIsIDAuMDE0OTQ0LCAwLjAxNDk2NywgMC4wMTQ5ODkiLCBcCi0gICAgICAgICAgIjAuMDE0OTEyLCAwLjAxNDkxNCwgMC4wMTQ5OTUsIDAuMDE1MDM2LCAwLjAxNTA3NSwgMC4wMTUxLCAwLjAxNTEyMyIsIFwKLSAgICAgICAgICAiMC4wMTUzNDgsIDAuMDE1MTkxLCAwLjAxNTI3MSwgMC4wMTUzMTYsIDAuMDE1MzU3LCAwLjAxNTM4MywgMC4wMTU0MSIsIFwKLSAgICAgICAgICAiMC4wMTYyNTMsIDAuMDE1NjkzLCAwLjAxNTYzNywgMC4wMTU2NzEsIDAuMDE1NywgMC4wMTU3MjUsIDAuMDE1NzQyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTAxMDMsIDAuMDEwNSwgMC4wMTA1NywgMC4wMTA1OTEsIDAuMDEwNjExLCAwLjAxMDYyMywgMC4wMTA2MzIiLCBcCi0gICAgICAgICAgIjAuMDEwMDIsIDAuMDEwMzY3LCAwLjAxMDQ1NywgMC4wMTA0OTQsIDAuMDEwNTIxLCAwLjAxMDUzMiwgMC4wMTA1NDkiLCBcCi0gICAgICAgICAgIjAuMDEwMjA1LCAwLjAxMDQxLCAwLjAxMDUxMSwgMC4wMTA1NDYsIDAuMDEwNTg4LCAwLjAxMDU5NSwgMC4wMTA2MTQiLCBcCi0gICAgICAgICAgIjAuMDEwNDk5LCAwLjAxMDYwOSwgMC4wMTA3LCAwLjAxMDczOCwgMC4wMTA3ODEsIDAuMDEwODAzLCAwLjAxMDgyMSIsIFwKLSAgICAgICAgICAiMC4wMTA5ODQsIDAuMDEwODA0LCAwLjAxMDksIDAuMDEwOTQxLCAwLjAxMDk3OCwgMC4wMTA5NzgsIDAuMDExMDA5IiwgXAotICAgICAgICAgICIwLjAxMTUzNywgMC4wMTE0MTEsIDAuMDExMzcyLCAwLjAxMTM5NywgMC4wMTE0NjUsIDAuMDExNDgsIDAuMDExNDkyIiwgXAotICAgICAgICAgICIwLjAxMjQzMywgMC4wMTE3ODksIDAuMDExODEsIDAuMDExODYzLCAwLjAxMTgxNCwgMC4wMTE4OTIsIDAuMDExOTE3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTM1NDQsIDAuMDEzODQ4LCAwLjAxMzk1OSwgMC4wMTM5OTgsIDAuMDE0MDM0LCAwLjAxNDA1NCwgMC4wMTQwNzMiLCBcCi0gICAgICAgICAgIjAuMDEzNDA5LCAwLjAxMzcxMiwgMC4wMTM4NDcsIDAuMDEzODk3LCAwLjAxMzk0NSwgMC4wMTM5NywgMC4wMTM5OTUiLCBcCi0gICAgICAgICAgIjAuMDEzODgyLCAwLjAxMzg0NCwgMC4wMTM5NTEsIDAuMDEzOTk2LCAwLjAxNDA0MywgMC4wMTQwNjksIDAuMDE0MDk0IiwgXAotICAgICAgICAgICIwLjAxNDIwNywgMC4wMTQwNzUsIDAuMDE0MTU0LCAwLjAxNDE5MywgMC4wMTQyNCwgMC4wMTQyNjcsIDAuMDE0MjkzIiwgXAotICAgICAgICAgICIwLjAxNDU4MSwgMC4wMTQyNTYsIDAuMDE0MzM5LCAwLjAxNDM4LCAwLjAxNDQzMiwgMC4wMTQ0NTgsIDAuMDE0NDg1IiwgXAotICAgICAgICAgICIwLjAxNTUwOCwgMC4wMTQ4NDYsIDAuMDE0Nzc3LCAwLjAxNDgwNCwgMC4wMTQ4NDIsIDAuMDE0ODY3LCAwLjAxNDg4NSIsIFwKLSAgICAgICAgICAiMC4wMTU4NjksIDAuMDE1MzQxLCAwLjAxNTI0NCwgMC4wMTUyNDksIDAuMDE1MjcyLCAwLjAxNTI4LCAwLjAxNTI5NyIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBPUjNYMSAqCi0gKiAtLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoT1IzWDEpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4zMjEyNjg7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY4MzA1NTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2ODA3ODI7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjgzMDU1OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDI1OCwgMC4wMDAyNzMsIDAuMDAwMjc5LCAwLjAwMDI4NCwgMC4wMDAyODYsIDAuMDAwMjg0LCAwLjAwMDI4NSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDUxOCwgMC4wMDA1MTgsIDAuMDAwNTE4LCAwLjAwMDUxOCwgMC4wMDA1MTgsIDAuMDAwNTE4LCAwLjAwMDUxOCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjc2Mjk0OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDY3NDYwMzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2NzYyOTQ7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjQ3LCAwLjAwMDI3OCwgMC4wMDAyODQsIDAuMDAwMjg2LCAwLjAwMDI4NiwgMC4wMDAyODksIDAuMDAwMjkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAzMDQsIDAuMDAwMzA1LCAwLjAwMDMwNSwgMC4wMDAzMDUsIDAuMDAwMzA1LCAwLjAwMDMwNSwgMC4wMDAzMDUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEMpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY2NzY1MjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2Njc2NTI7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjY3Mzk2OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDA3MiwgMC4wMDAwNzIsIDAuMDAwMDcyLCAwLjAwMDA3MiwgMC4wMDAwNzIsIDAuMDAwMDcyLCAwLjAwMDA3MiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDI2NSwgMC4wMDAyNjUsIDAuMDAwMjY0LCAwLjAwMDI2NCwgMC4wMDAyNjUsIDAuMDAwMjY1LCAwLjAwMDI2NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjMzOTY5NTsKLSAgICBmdW5jdGlvbiA6ICIoKEErQikrQykiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1NDQyOCwgMC4wNzMxMjEsIDAuMTc4NzQ4LCAwLjI3MTgyNSwgMC4zOTU5MzMsIDAuNjQ0MDk0LCAwLjc5OTE5NSIsIFwKLSAgICAgICAgICAiMC4wNjI2NDIsIDAuMDgxMzQsIDAuMTg2OTU3LCAwLjI4MDA0OCwgMC40MDQxNDcsIDAuNjUyMzEsIDAuODA3NDk1IiwgXAotICAgICAgICAgICIwLjA3MTQzMiwgMC4wOTAxMTcsIDAuMTk1NzA1LCAwLjI4ODgwNCwgMC40MTI5LCAwLjY2MTE4NCwgMC44MTYxODciLCBcCi0gICAgICAgICAgIjAuMDc4MTIzLCAwLjA5NjgxNSwgMC4yMDI0MTYsIDAuMjk1NDkxLCAwLjQxOTY0OCwgMC42Njc4MDIsIDAuODIyODQ3IiwgXAotICAgICAgICAgICIwLjA4MzYxNCwgMC4xMDIyNTgsIDAuMjA3OCwgMC4zMDA4OTMsIDAuNDI0OTk5LCAwLjY3MzE3MSwgMC44MjgyNjQiLCBcCi0gICAgICAgICAgIjAuMDkwNjE5LCAwLjEwOTI5MSwgMC4yMTQ3ODYsIDAuMzA3OTE0LCAwLjQzMTk5MiwgMC42ODAxMjEsIDAuODM1MzgzIiwgXAotICAgICAgICAgICIwLjA5NTcwOSwgMC4xMTQzODcsIDAuMjE5ODkxLCAwLjMxMjk2LCAwLjQzNzA2LCAwLjY4NTE4OSwgMC44NDAzMTciKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDcxMjYyLCAwLjExMDAwNywgMC4zMzE3NzcsIDAuNTI3Nzc0LCAwLjc4OTE3LCAxLjMxMTk2LCAxLjYzNzIyIiwgXAotICAgICAgICAgICIwLjA3MTIzOCwgMC4xMDk5MjMsIDAuMzMxNzQ4LCAwLjUyNzc2NywgMC43ODkxNTYsIDEuMzExOTQsIDEuNjM2ODEiLCBcCi0gICAgICAgICAgIjAuMDcxNTUyLCAwLjExMDA1NSwgMC4zMzE0OTUsIDAuNTI3NzU0LCAwLjc4OTExMiwgMS4zMTE5NywgMS42Mzg2NSIsIFwKLSAgICAgICAgICAiMC4wNzIxMDMsIDAuMTEwNDU2LCAwLjMzMTMzOSwgMC41Mjc3MjYsIDAuNzg4MDY4LCAxLjMxMDQyLCAxLjYzODY1IiwgXAotICAgICAgICAgICIwLjA3MjcwNiwgMC4xMTA2NTEsIDAuMzMxNTUzLCAwLjUyNzcxOSwgMC43ODgwNDcsIDEuMzExODcsIDEuNjM4NjQiLCBcCi0gICAgICAgICAgIjAuMDczNjkzLCAwLjExMTMzOCwgMC4zMzE1NDQsIDAuNTI3NjkyLCAwLjc4OTEsIDEuMzEwOTksIDEuNjM4NjciLCBcCi0gICAgICAgICAgIjAuMDc0Njc1LCAwLjExMjAyMywgMC4zMzE2NTUsIDAuNTI3NjY5LCAwLjc4OTA1NSwgMS4zMTE3NSwgMS42Mzg1MiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODQ5MzQsIDAuMTAzOTgzLCAwLjIwNzExOCwgMC4yOTc1ODcsIDAuNDE4MjM5LCAwLjY1OTgwMSwgMC44MTAzNzIiLCBcCi0gICAgICAgICAgIjAuMDkwMDkyLCAwLjEwOTE0NywgMC4yMTIyNTQsIDAuMzAyNzMyLCAwLjQyMzQxOCwgMC42NjQ4NDIsIDAuODE1NjU1IiwgXAotICAgICAgICAgICIwLjA5NDkzNywgMC4xMTQwMTIsIDAuMjE3MTE3LCAwLjMwNzYwNCwgMC40MjgzNDksIDAuNjY5NzE3LCAwLjgyMDU2OCIsIFwKLSAgICAgICAgICAiMC4wOTkyODUsIDAuMTE4NDAxLCAwLjIyMTUxNywgMC4zMTE5OTMsIDAuNDMyNjI2LCAwLjY3NDI1NywgMC44MjUxNDUiLCBcCi0gICAgICAgICAgIjAuMTAzMDY4LCAwLjEyMjIwNSwgMC4yMjUzODUsIDAuMzE1ODgxLCAwLjQzNjU1LCAwLjY3ODAyNCwgMC44Mjg3OTciLCBcCi0gICAgICAgICAgIjAuMTA4MzA3LCAwLjEyNzYxMSwgMC4yMzA5MTMsIDAuMzIxMzg2LCAwLjQ0MjA1OCwgMC42ODM2MjUsIDAuODM0MTcxIiwgXAotICAgICAgICAgICIwLjExMjQwMiwgMC4xMzE4ODEsIDAuMjM1MjcxLCAwLjMyNTc0NywgMC40NDY0MjEsIDAuNjg3NzY2LCAwLjgzODY1MSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzUzMTksIDAuMTEwNzUyLCAwLjMxNzgxLCAwLjUwMjYzNywgMC43NTA1MDcsIDEuMjQ2MywgMS41NTkyOSIsIFwKLSAgICAgICAgICAiMC4wNzUyNiwgMC4xMTA2NjksIDAuMzE3NzkzLCAwLjUwMzIyLCAwLjc0OTkxNywgMS4yNDY0OCwgMS41NTY5OSIsIFwKLSAgICAgICAgICAiMC4wNzUzNDEsIDAuMTEwODEzLCAwLjMxNzgxLCAwLjUwMzIzLCAwLjc1MDI2NywgMS4yNDY0MiwgMS41NTc3NSIsIFwKLSAgICAgICAgICAiMC4wNzU3MzksIDAuMTExMDk4LCAwLjMxNzg5MywgMC41MDMyNjIsIDAuNzUxNDc3LCAxLjI0NjM0LCAxLjU1NjU3IiwgXAotICAgICAgICAgICIwLjA3NjM5NCwgMC4xMTE1OTQsIDAuMzE3NzY2LCAwLjUwMzQxNywgMC43NTAxLCAxLjI0NjMzLCAxLjU1NzU1IiwgXAotICAgICAgICAgICIwLjA3NzQ5OSwgMC4xMTIzNDYsIDAuMzE3OTQ1LCAwLjUwMzYwMywgMC43NTAwMTEsIDEuMjQ2NzUsIDEuNTU5NDEiLCBcCi0gICAgICAgICAgIjAuMDc4MjY1LCAwLjExMzMsIDAuMzE4NjgyLCAwLjUwMzcxNiwgMC43NTAxMjMsIDEuMjQ3MDgsIDEuNTU2NzYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDUyODg0LCAwLjA3MTUyNCwgMC4xNzcwMjYsIDAuMjcwMTU2LCAwLjM5NDI0LCAwLjY0MjQwOSwgMC43OTc1MTMiLCBcCi0gICAgICAgICAgIjAuMDYwOTUzLCAwLjA3OTYxOSwgMC4xODUxODIsIDAuMjc4Mjk5LCAwLjQwMjM0NiwgMC42NTA1MDQsIDAuODA1NjE0IiwgXAotICAgICAgICAgICIwLjA2OTE2OCwgMC4wODc4NDEsIDAuMTkzNDIzLCAwLjI4NjQ3NywgMC40MTA1NjQsIDAuNjU4NzI4LCAwLjgxMzkwNyIsIFwKLSAgICAgICAgICAiMC4wNzU1MTYsIDAuMDk0MDUzLCAwLjE5OTYyOCwgMC4yOTI2ODUsIDAuNDE2Nzc2LCAwLjY2NDkxMiwgMC44MjAxMzMiLCBcCi0gICAgICAgICAgIjAuMDgwMTU1LCAwLjA5ODc5NSwgMC4yMDQzMzMsIDAuMjk3NDE2LCAwLjQyMTUsIDAuNjY5NjQzLCAwLjgyNDc4MSIsIFwKLSAgICAgICAgICAiMC4wODY0NzEsIDAuMTA1MTA3LCAwLjIxMDY0NCwgMC4zMDM3MzksIDAuNDI3ODY4LCAwLjY3NTk1MiwgMC44MzEwOTkiLCBcCi0gICAgICAgICAgIjAuMDkwOTYsIDAuMTA5NjI3LCAwLjIxNTIzNywgMC4zMDgyMTcsIDAuNDMyMzkyLCAwLjY4MDYyNiwgMC44MzU2MzUiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDcwODQsIDAuMTA5NzA1LCAwLjMzMTEzNiwgMC41Mjc2OTYsIDAuNzg4NDAyLCAxLjMxMDk0LCAxLjYzNzA2IiwgXAotICAgICAgICAgICIwLjA3MDg1OSwgMC4xMDk3MzQsIDAuMzMxMjk4LCAwLjUyNzcsIDAuNzg4NTE3LCAxLjMxMDg2LCAxLjYzNzI3IiwgXAotICAgICAgICAgICIwLjA3MTMxMywgMC4xMDk4OTksIDAuMzMxNTg0LCAwLjUyNzYxNywgMC43ODgyOCwgMS4zMTA4NSwgMS42Mzg3IiwgXAotICAgICAgICAgICIwLjA3MTkxNCwgMC4xMTAxNSwgMC4zMzE2MDgsIDAuNTI2NzkxLCAwLjc4OTAwNCwgMS4zMTE4MywgMS42Mzg2OCIsIFwKLSAgICAgICAgICAiMC4wNzI1NjEsIDAuMTEwNDgsIDAuMzMxNTc2LCAwLjUyNzU2NSwgMC43ODc3ODYsIDEuMzExODEsIDEuNjM4NiIsIFwKLSAgICAgICAgICAiMC4wNzM1NTIsIDAuMTExMTY1LCAwLjMzMTM5MywgMC41MjcxODIsIDAuNzg3OTEzLCAxLjMxMTU4LCAxLjYzNjQyIiwgXAotICAgICAgICAgICIwLjA3NDM1NywgMC4xMTE3MzEsIDAuMzMxNDIxLCAwLjUyNzIyMywgMC43ODgwMzksIDEuMzExNzUsIDEuNjM4NCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODIxOTMsIDAuMTAxMjQ5LCAwLjIwNDQxLCAwLjI5NDg4MiwgMC40MTU1MzcsIDAuNjU3MTI0LCAwLjgwNzY0MyIsIFwKLSAgICAgICAgICAiMC4wODc5NSwgMC4xMDcwMzIsIDAuMjEwMTQzLCAwLjMwMDYyNiwgMC40MjEyNzcsIDAuNjYyNzIzLCAwLjgxMzYwMiIsIFwKLSAgICAgICAgICAiMC4wOTQ3OTIsIDAuMTEzODg2LCAwLjIxNzAxOCwgMC4zMDc1MDMsIDAuNDI4MjQ4LCAwLjY2OTYwNSwgMC44MjA1MjUiLCBcCi0gICAgICAgICAgIjAuMTAxMjQ0LCAwLjEyMDM5MywgMC4yMjM1MzQsIDAuMzE0MDIzLCAwLjQzNDc3NywgMC42NzYxMzMsIDAuODI3MDIiLCBcCi0gICAgICAgICAgIjAuMTA2OTM2LCAwLjEyNjE3NSwgMC4yMjkzNTksIDAuMzE5ODUxLCAwLjQ0MDQ4MiwgMC42ODE3OTMsIDAuODMyNzM3IiwgXAotICAgICAgICAgICIwLjExNDgzNiwgMC4xMzQyNTEsIDAuMjM3NTkyLCAwLjMyODA1NSwgMC40NDg3MzYsIDAuNjkwMTUsIDAuODQwODU0IiwgXAotICAgICAgICAgICIwLjEyMDk3NCwgMC4xNDA0NCwgMC4yNDM5MTYsIDAuMzM0MzQ5LCAwLjQ1NDk4MiwgMC42OTYyNzQsIDAuODQ3MjkzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3NTMwNSwgMC4xMTA3MzcsIDAuMzE3Nzk4LCAwLjUwMjYyOSwgMC43NTA1MDEsIDEuMjQ2MzIsIDEuNTU5MzEiLCBcCi0gICAgICAgICAgIjAuMDc1MjM0LCAwLjExMDY5NywgMC4zMTc4MDIsIDAuNTAzMjEyLCAwLjc1MDQ2MiwgMS4yNDY1NSwgMS41NTc3OCIsIFwKLSAgICAgICAgICAiMC4wNzUzODksIDAuMTEwODQ2LCAwLjMxNzM1LCAwLjUwMzIyNywgMC43NTAxODUsIDEuMjQ2NTIsIDEuNTU3NyIsIFwKLSAgICAgICAgICAiMC4wNzU5ODgsIDAuMTExMjYyLCAwLjMxNzkyMywgMC41MDMzMTYsIDAuNzUwMTMxLCAxLjI0NjQyLCAxLjU1Nzc3IiwgXAotICAgICAgICAgICIwLjA3Njc3NywgMC4xMTE4ODcsIDAuMzE4MjA0LCAwLjUwMzQ3NSwgMC43NTA1NzYsIDEuMjQ4NTMsIDEuNTU3NCIsIFwKLSAgICAgICAgICAiMC4wNzc5NjgsIDAuMTEyNzI2LCAwLjMxODU0OSwgMC41MDM1MSwgMC43NTE3MDksIDEuMjQ3NDksIDEuNTU2MjgiLCBcCi0gICAgICAgICAgIjAuMDc4OTk1LCAwLjExMzgxLCAwLjMxODY1NCwgMC41MDMzMDUsIDAuNzUxNzg0LCAxLjI0ODg4LCAxLjU1NjYzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1MDg1MiwgMC4wNjk0OTcsIDAuMTc1MDczLCAwLjI2Nzk2NywgMC4zOTIyODcsIDAuNjQwNzkzLCAwLjc5NTY1NCIsIFwKLSAgICAgICAgICAiMC4wNTg4MDUsIDAuMDc3MzUzLCAwLjE4Mjk0MiwgMC4yNzYwNiwgMC40MDAyODgsIDAuNjQ4NTcxLCAwLjgwMzcwMyIsIFwKLSAgICAgICAgICAiMC4wNjYzMTYsIDAuMDg0OTkyLCAwLjE5MDU1MSwgMC4yODM4MzEsIDAuNDA3OTMzLCAwLjY1NjA1NCwgMC44MTE4MTgiLCBcCi0gICAgICAgICAgIjAuMDcxODE3LCAwLjA5MDQ5NiwgMC4xOTYxMTYsIDAuMjg5Mjc2LCAwLjQxMzM4NCwgMC42NjE2NTYsIDAuODE3NDg2IiwgXAotICAgICAgICAgICIwLjA3NTkyNiwgMC4wOTQ2NTQsIDAuMjAwMTc4LCAwLjI5MzM1OCwgMC40MTczOSwgMC42NjU5ODgsIDAuODIwNjcyIiwgXAotICAgICAgICAgICIwLjA4MTI2NSwgMC4xMDAyMTMsIDAuMjA1NjQ5LCAwLjI5ODc1LCAwLjQyMjg2NywgMC42NzEzODYsIDAuODI2MTM3IiwgXAotICAgICAgICAgICIwLjA4NTQ0OSwgMC4xMDQwNjgsIDAuMjA5MzEsIDAuMzAyNjQ0LCAwLjQyNjg1LCAwLjY3NTIxNSwgMC44Mjk5MzMiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDcwNjYyLCAwLjEwOTYwNCwgMC4zMzExMDcsIDAuNTI3MDQzLCAwLjc4NzcyNywgMS4zMTAyNCwgMS42MzYyMSIsIFwKLSAgICAgICAgICAiMC4wNzA3MjgsIDAuMTA5NDUyLCAwLjMzMTEwMywgMC41MjY5NDQsIDAuNzg4NzE2LCAxLjMxMDM0LCAxLjYzNzU1IiwgXAotICAgICAgICAgICIwLjA3MTIzNiwgMC4xMDk3NzksIDAuMzMxMjgxLCAwLjUyNjg5MiwgMC43ODgxMTcsIDEuMzA5NzQsIDEuNjM2NDgiLCBcCi0gICAgICAgICAgIjAuMDcxOTA5LCAwLjExMDIwNSwgMC4zMzExNDcsIDAuNTI2OTgsIDAuNzg4MDg2LCAxLjMxMDI5LCAxLjYzNzMzIiwgXAotICAgICAgICAgICIwLjA3Mjc3LCAwLjExMDUwOCwgMC4zMzE3MjIsIDAuNTI2OTc2LCAwLjc4OTAwNiwgMS4zMTAxNSwgMS42MzYyOCIsIFwKLSAgICAgICAgICAiMC4wNzM4MzgsIDAuMTExMzM3LCAwLjMzMTYzOSwgMC41Mjc4NTMsIDAuNzg4MTAxLCAxLjMxMDUzLCAxLjYzODM3IiwgXAotICAgICAgICAgICIwLjA3NDYxOSwgMC4xMTE4NTQsIDAuMzMxNDAxLCAwLjUyNzg0NSwgMC43ODc3NDUsIDEuMzEwMzIsIDEuNjM2MzIiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc3MTAxLCAwLjA5NjE3NCwgMC4xOTkzNDksIDAuMjg5ODUzLCAwLjQxMDQ4OCwgMC42NTIwMDMsIDAuODAyNjY5IiwgXAotICAgICAgICAgICIwLjA4Mzk5OSwgMC4xMDMxMDcsIDAuMjA2MjQ5LCAwLjI5Njc0NSwgMC40MTc1MDEsIDAuNjU4ODg5LCAwLjgwOTY1NSIsIFwKLSAgICAgICAgICAiMC4wOTMyMTQsIDAuMTEyMjgsIDAuMjE1NDEyLCAwLjMwNTkzNCwgMC40MjY2MTQsIDAuNjY3ODg3LCAwLjgxODgyIiwgXAotICAgICAgICAgICIwLjEwMTQzMywgMC4xMjA1MzYsIDAuMjIzNjg3LCAwLjMxNDE3OCwgMC40MzQ4MDksIDAuNjc2NTMxLCAwLjgyNzAxMSIsIFwKLSAgICAgICAgICAiMC4xMDg0NDksIDAuMTI3NjQ4LCAwLjIzMDkxMywgMC4zMjEzOTIsIDAuNDQyMDgzLCAwLjY4MzUzMiwgMC44MzQzMjMiLCBcCi0gICAgICAgICAgIjAuMTE4MTc1LCAwLjEzNzU0MSwgMC4yNDA4MjIsIDAuMzMxMjk0LCAwLjQ1MjAwOSwgMC42OTMzNTUsIDAuODQ0MDgyIiwgXAotICAgICAgICAgICIwLjEyNTYxOCwgMC4xNDQ4ODcsIDAuMjQ4NDY3LCAwLjMzODkyMywgMC40NTk1MzgsIDAuNzAwODMsIDAuODUxODkxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3NTI0OSwgMC4xMTA2ODgsIDAuMzE3NDU0LCAwLjUwMzIxNCwgMC43NTE0NDUsIDEuMjQ2MzYsIDEuNTU5MzkiLCBcCi0gICAgICAgICAgIjAuMDc1MTg0LCAwLjExMDY3OCwgMC4zMTc0NjEsIDAuNTAzMjIsIDAuNzUwMDQsIDEuMjQ2MzcsIDEuNTU5NDUiLCBcCi0gICAgICAgICAgIjAuMDc1NDI0LCAwLjExMDg3OCwgMC4zMTc4MSwgMC41MDMzNjcsIDAuNzUwMjIzLCAxLjI0ODksIDEuNTU2OSIsIFwKLSAgICAgICAgICAiMC4wNzYwMjIsIDAuMTExMjY3LCAwLjMxNzkyNiwgMC41MDMyOCwgMC43NTE0NTksIDEuMjQ2NTMsIDEuNTU2MjUiLCBcCi0gICAgICAgICAgIjAuMDc2NjQ4LCAwLjExMTk4LCAwLjMxODIzOCwgMC41MDM0MTgsIDAuNzUwMjQ2LCAxLjI0NjM2LCAxLjU1NzM5IiwgXAotICAgICAgICAgICIwLjA3NzYwOSwgMC4xMTI3MTQsIDAuMzE4NTY2LCAwLjUwMzEyNSwgMC43NDk5NSwgMS4yNDcxNywgMS41NTYyOCIsIFwKLSAgICAgICAgICAiMC4wNzgyNzYsIDAuMTEzMzU0LCAwLjMxODM4OCwgMC41MDM4ODUsIDAuNzUxODIxLCAxLjI0ODg1LCAxLjU1NjU5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxOTI1LCAwLjAwMTkyNywgMC4wMDE5MywgMC4wMDE5MjgsIDAuMDAxOTMzLCAwLjAwMTkzLCAwLjAwMTkzMSIsIFwKLSAgICAgICAgICAiMC4wMDE5MTMsIDAuMDAxOTE1LCAwLjAwMTkxOSwgMC4wMDE5MTksIDAuMDAxOTE5LCAwLjAwMTkxOSwgMC4wMDE5MTkiLCBcCi0gICAgICAgICAgIjAuMDAxOTUzLCAwLjAwMTk1NSwgMC4wMDE5NTgsIDAuMDAxOTU4LCAwLjAwMTk1OCwgMC4wMDE5NTksIDAuMDAxOTU3IiwgXAotICAgICAgICAgICIwLjAwMjAzMSwgMC4wMDIwMjksIDAuMDAyMDI3LCAwLjAwMjAyNiwgMC4wMDIwMjYsIDAuMDAyMDI2LCAwLjAwMjAyNiIsIFwKLSAgICAgICAgICAiMC4wMDIxMTYsIDAuMDAyMTExLCAwLjAwMjEwNCwgMC4wMDIxMDMsIDAuMDAyMTAyLCAwLjAwMjEwMSwgMC4wMDIxIiwgXAotICAgICAgICAgICIwLjAwMjI4MiwgMC4wMDIyNzIsIDAuMDAyMjU4LCAwLjAwMjI1NSwgMC4wMDIyNTMsIDAuMDAyMjUyLCAwLjAwMjI1IiwgXAotICAgICAgICAgICIwLjAwMjQ0LCAwLjAwMjQyOCwgMC4wMDI0MSwgMC4wMDI0MDUsIDAuMDAyNDA0LCAwLjAwMjQwMiwgMC4wMDI0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzODMsIDAuMDAzODMxLCAwLjAwMzgyOSwgMC4wMDM4MjksIDAuMDAzODI4LCAwLjAwMzgyNywgMC4wMDM4MjciLCBcCi0gICAgICAgICAgIjAuMDAzODAxLCAwLjAwMzgwMywgMC4wMDM4MDMsIDAuMDAzODAzLCAwLjAwMzgwMiwgMC4wMDM4MDIsIDAuMDAzODAyIiwgXAotICAgICAgICAgICIwLjAwMzc5OSwgMC4wMDM4MDEsIDAuMDAzODAzLCAwLjAwMzgwMywgMC4wMDM4MDIsIDAuMDAzODAyLCAwLjAwMzgwMiIsIFwKLSAgICAgICAgICAiMC4wMDM4MiwgMC4wMDM4MTksIDAuMDAzODIxLCAwLjAwMzgyLCAwLjAwMzgyLCAwLjAwMzgyLCAwLjAwMzgxOSIsIFwKLSAgICAgICAgICAiMC4wMDM4NTUsIDAuMDAzODU0LCAwLjAwMzg1MywgMC4wMDM4NTMsIDAuMDAzODUyLCAwLjAwMzg1MiwgMC4wMDM4NTIiLCBcCi0gICAgICAgICAgIjAuMDAzOTQxLCAwLjAwMzkzOSwgMC4wMDM5MzYsIDAuMDAzOTM1LCAwLjAwMzkzMywgMC4wMDM5MzIsIDAuMDAzOTMyIiwgXAotICAgICAgICAgICIwLjAwNDA0MiwgMC4wMDQwMzgsIDAuMDA0MDMyLCAwLjAwNDAzMSwgMC4wMDQwMjksIDAuMDA0MDI4LCAwLjAwNDAyOCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTcwNiwgMC4wMDE3MTQsIDAuMDAxNzI0LCAwLjAwMTcyNiwgMC4wMDE3MjcsIDAuMDAxNzI4LCAwLjAwMTcyOCIsIFwKLSAgICAgICAgICAiMC4wMDE2OTEsIDAuMDAxNywgMC4wMDE3MTMsIDAuMDAxNzE2LCAwLjAwMTcxNywgMC4wMDE3MiwgMC4wMDE3MjEiLCBcCi0gICAgICAgICAgIjAuMDAxNzI2LCAwLjAwMTczNiwgMC4wMDE3NTIsIDAuMDAxNzU1LCAwLjAwMTc1OCwgMC4wMDE3NiwgMC4wMDE3NjEiLCBcCi0gICAgICAgICAgIjAuMDAxNzg0LCAwLjAwMTc5MiwgMC4wMDE4MDgsIDAuMDAxODEzLCAwLjAwMTgxNSwgMC4wMDE4MTcsIDAuMDAxODE4IiwgXAotICAgICAgICAgICIwLjAwMTg2OCwgMC4wMDE4NzQsIDAuMDAxODg5LCAwLjAwMTg5MiwgMC4wMDE4OTUsIDAuMDAxODk3LCAwLjAwMTg5NyIsIFwKLSAgICAgICAgICAiMC4wMDIwMTIsIDAuMDAyMDE3LCAwLjAwMjA0MiwgMC4wMDIwMzcsIDAuMDAyMDUsIDAuMDAyMDQzLCAwLjAwMjA1NCIsIFwKLSAgICAgICAgICAiMC4wMDIxNjcsIDAuMDAyMTU4LCAwLjAwMjE4NiwgMC4wMDIxNzYsIDAuMDAyMTk1LCAwLjAwMjE5OSwgMC4wMDIxOTgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDM1NjcsIDAuMDAzNTcxLCAwLjAwMzU3NywgMC4wMDM1NzcsIDAuMDAzNTc4LCAwLjAwMzU3OSwgMC4wMDM1NzkiLCBcCi0gICAgICAgICAgIjAuMDAzNTM4LCAwLjAwMzU0NCwgMC4wMDM1NTEsIDAuMDAzNTUzLCAwLjAwMzU1NCwgMC4wMDM1NTQsIDAuMDAzNTU1IiwgXAotICAgICAgICAgICIwLjAwMzU0OSwgMC4wMDM1NTMsIDAuMDAzNTYxLCAwLjAwMzU2MiwgMC4wMDM1NjMsIDAuMDAzNTY0LCAwLjAwMzU2NCIsIFwKLSAgICAgICAgICAiMC4wMDM1ODYsIDAuMDAzNTg5LCAwLjAwMzU5MiwgMC4wMDM1OTMsIDAuMDAzNTkzLCAwLjAwMzU5NCwgMC4wMDM1OTQiLCBcCi0gICAgICAgICAgIjAuMDAzNjUsIDAuMDAzNjQ4LCAwLjAwMzY0NiwgMC4wMDM2NDUsIDAuMDAzNjQ0LCAwLjAwMzY0NCwgMC4wMDM2NDQiLCBcCi0gICAgICAgICAgIjAuMDAzNzQxLCAwLjAwMzc0MiwgMC4wMDM3NDQsIDAuMDAzNzQ1LCAwLjAwMzc0NSwgMC4wMDM3NDYsIDAuMDAzNzQ2IiwgXAotICAgICAgICAgICIwLjAwMzkxMywgMC4wMDM4OTUsIDAuMDAzODcxLCAwLjAwMzg2NiwgMC4wMDM4NjMsIDAuMDAzODYxLCAwLjAwMzg2MSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTQ2MiwgMC4wMDE0NjgsIDAuMDAxNDc2LCAwLjAwMTQ3OCwgMC4wMDE0NzksIDAuMDAxNDgsIDAuMDAxNDgiLCBcCi0gICAgICAgICAgIjAuMDAxNDUsIDAuMDAxNDYsIDAuMDAxNDcyLCAwLjAwMTQ3NCwgMC4wMDE0NzUsIDAuMDAxNDc2LCAwLjAwMTQ3NiIsIFwKLSAgICAgICAgICAiMC4wMDE0ODEsIDAuMDAxNDkxLCAwLjAwMTUwOCwgMC4wMDE1MTEsIDAuMDAxNTEzLCAwLjAwMTUxNSwgMC4wMDE1MTUiLCBcCi0gICAgICAgICAgIjAuMDAxNTQ1LCAwLjAwMTU2LCAwLjAwMTU3MSwgMC4wMDE1NzgsIDAuMDAxNTgsIDAuMDAxNTc4LCAwLjAwMTU3OSIsIFwKLSAgICAgICAgICAiMC4wMDE2MzUsIDAuMDAxNjM0LCAwLjAwMTY0OCwgMC4wMDE2NTMsIDAuMDAxNjU1LCAwLjAwMTY2MiwgMC4wMDE2NjMiLCBcCi0gICAgICAgICAgIjAuMDAxNzYsIDAuMDAxNzgxLCAwLjAwMTc5NywgMC4wMDE4MDIsIDAuMDAxNzkzLCAwLjAwMTgwNywgMC4wMDE3OTYiLCBcCi0gICAgICAgICAgIjAuMDAxODk3LCAwLjAwMTkwNiwgMC4wMDE5MjIsIDAuMDAxOTIzLCAwLjAwMTkyNywgMC4wMDE5MjksIDAuMDAxOTM1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzMjk5LCAwLjAwMzMwNSwgMC4wMDMzMTYsIDAuMDAzMzE5LCAwLjAwMzMyMSwgMC4wMDMzMjIsIDAuMDAzMzIzIiwgXAotICAgICAgICAgICIwLjAwMzI5LCAwLjAwMzI5OCwgMC4wMDMzMTIsIDAuMDAzMzE1LCAwLjAwMzMxNywgMC4wMDMzMTgsIDAuMDAzMzE5IiwgXAotICAgICAgICAgICIwLjAwMzM0OSwgMC4wMDMzNTUsIDAuMDAzMzY2LCAwLjAwMzM2OSwgMC4wMDMzNzEsIDAuMDAzMzcyLCAwLjAwMzM3MyIsIFwKLSAgICAgICAgICAiMC4wMDM0MSwgMC4wMDM0MTUsIDAuMDAzNDI2LCAwLjAwMzQyOCwgMC4wMDM0MywgMC4wMDM0MzEsIDAuMDAzNDMyIiwgXAotICAgICAgICAgICIwLjAwMzQ5NSwgMC4wMDM0OSwgMC4wMDM0OTUsIDAuMDAzNDk3LCAwLjAwMzQ5OCwgMC4wMDM0OTksIDAuMDAzNDk5IiwgXAotICAgICAgICAgICIwLjAwMzY0NSwgMC4wMDM2MzQsIDAuMDAzNjM5LCAwLjAwMzY0LCAwLjAwMzY0LCAwLjAwMzY0MSwgMC4wMDM2NDEiLCBcCi0gICAgICAgICAgIjAuMDAzNzgyLCAwLjAwMzc2NywgMC4wMDM3NzEsIDAuMDAzNzcsIDAuMDAzNzcsIDAuMDAzNzcsIDAuMDAzNzY5Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IE9SM1g4ICoKLSAqIC0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChPUjNYOCkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAxLjM1MDQyOwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE5NjUxOTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE5NTcwNjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE5NjUxOTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA5MDMsIDAuMDAwOTY1LCAwLjAwMDk3NCwgMC4wMDA5OTIsIDAuMDAxMDA3LCAwLjAwMTAxNCwgMC4wMDEwMTciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDE5MDIsIDAuMDAxOTAzLCAwLjAwMTkwNCwgMC4wMDE5MDQsIDAuMDAxOTA0LCAwLjAwMTkwNCwgMC4wMDE5MDQiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTgxNDE3OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTgwODAxOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTgxNDE3OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDg4LCAwLjAwMDk4MywgMC4wMDEwMDUsIDAuMDAxMDExLCAwLjAwMTAxMiwgMC4wMDEwMTUsIDAuMDAxMDExIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxMDc4LCAwLjAwMTA3OCwgMC4wMDEwNzgsIDAuMDAxMDc5LCAwLjAwMTA3OSwgMC4wMDEwNzksIDAuMDAxMDc5Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihDKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE2NTc2OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTY1NzY7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNjU3NDI7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjQ5LCAwLjAwMDI0OSwgMC4wMDAyNDksIDAuMDAwMjQ5LCAwLjAwMDI0OSwgMC4wMDAyNDksIDAuMDAwMjQ5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNzc3LCAwLjAwMDc3NywgMC4wMDA3NzcsIDAuMDAwNzc3LCAwLjAwMDc3NywgMC4wMDA3NzYsIDAuMDAwNzc2Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDIuNjkyOTY7Ci0gICAgZnVuY3Rpb24gOiAiKChBK0IpK0MpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzMDQ5OSwgMC4wNjAyNSwgMC4wODc5NTgsIDAuMTA3Njk0LCAwLjEzOTIzLCAwLjE2NjgzOSwgMC4yMDYyNiIsIFwKLSAgICAgICAgICAiMC4wMzg5MzQsIDAuMDY4NjI5LCAwLjA5NjMzMiwgMC4xMTYwNywgMC4xNDc2MTgsIDAuMTc1MjA5LCAwLjIxNDY0IiwgXAotICAgICAgICAgICIwLjA0ODgwNywgMC4wNzg1MDIsIDAuMTA2MTk2LCAwLjEyNTkyOSwgMC4xNTc0NzEsIDAuMTg1MDUzLCAwLjIyNDQ1MSIsIFwKLSAgICAgICAgICAiMC4wNTYzNzEsIDAuMDg2NTg5LCAwLjExNDI5NSwgMC4xMzQwMTEsIDAuMTY1NTQ5LCAwLjE5MzEzNiwgMC4yMzI1MzciLCBcCi0gICAgICAgICAgIjAuMDYyMzA5LCAwLjA5MzA1LCAwLjEyMDcwMSwgMC4xNDA0MjMsIDAuMTcxOTUzLCAwLjE5OTUzMiwgMC4yMzg5MiIsIFwKLSAgICAgICAgICAiMC4wNzAyMzQsIDAuMTAxNzYyLCAwLjEyOTM3NywgMC4xNDkxMjgsIDAuMTgwNjA4LCAwLjIwODE4NywgMC4yNDc1NTkiLCBcCi0gICAgICAgICAgIjAuMDc1OTcyLCAwLjEwODE4MywgMC4xMzU4MjMsIDAuMTU1NTE3LCAwLjE4Njk0OCwgMC4yMTQ1MDIsIDAuMjUzODY1Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE4MDA5LCAwLjA3MzI4MSwgMC4xMzAzOCwgMC4xNzE5NzEsIDAuMjM3OTQ0LCAwLjI5NjU0OCwgMC4zNzk2OTIiLCBcCi0gICAgICAgICAgIjAuMDE3OTcxLCAwLjA3MzI3MSwgMC4xMzA1MTIsIDAuMTcxOTc3LCAwLjIzODMzMywgMC4yOTYyOTksIDAuMzc5NyIsIFwKLSAgICAgICAgICAiMC4wMTkwNjgsIDAuMDczNTUsIDAuMTMwNzI2LCAwLjE3MjAzMiwgMC4yMzgzMzIsIDAuMjk2MjIzLCAwLjM3OTMyNyIsIFwKLSAgICAgICAgICAiMC4wMjA2MTUsIDAuMDc0MjA4LCAwLjEzMDk1NSwgMC4xNzIwMTMsIDAuMjM4Mzk4LCAwLjI5NjMxNiwgMC4zNzk0MDQiLCBcCi0gICAgICAgICAgIjAuMDIyMjMsIDAuMDc0OTI4LCAwLjEzMTM0MywgMC4xNzIyNTgsIDAuMjM4MzM2LCAwLjI5NjU1OSwgMC4zNzkzODkiLCBcCi0gICAgICAgICAgIjAuMDI0MTE1LCAwLjA3NjQzNCwgMC4xMzE5NDksIDAuMTcyNzA5LCAwLjIzODQ4MiwgMC4yOTY0OTYsIDAuMzc5Njk5IiwgXAotICAgICAgICAgICIwLjAyNTY3NiwgMC4wNzc2NjUsIDAuMTMyNzEzLCAwLjE3MzEzOCwgMC4yMzg4MDQsIDAuMjk2NTU0LCAwLjM3OTUzOSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2MTY3NSwgMC4wOTg4ODIsIDAuMTI4ODU1LCAwLjE0OTQyOSwgMC4xODE5NTIsIDAuMjEwMjM4LCAwLjI1MDYyNSIsIFwKLSAgICAgICAgICAiMC4wNjY4NDcsIDAuMTA0MDk3LCAwLjEzNDAyOSwgMC4xNTQ1OTcsIDAuMTg3MTE5LCAwLjIxNTM5OSwgMC4yNTU3ODIiLCBcCi0gICAgICAgICAgIjAuMDcyMTYxLCAwLjEwOTMxNSwgMC4xMzkyNTcsIDAuMTU5ODE1LCAwLjE5MjMxOCwgMC4yMjA2MDUsIDAuMjYwOTc4IiwgXAotICAgICAgICAgICIwLjA3Njg1OSwgMC4xMTQwODUsIDAuMTQ0MDM0LCAwLjE2NDYxMSwgMC4xOTcwOTksIDAuMjI1NCwgMC4yNjU3NjYiLCBcCi0gICAgICAgICAgIjAuMDgwOTM1LCAwLjExODQ4NiwgMC4xNDg1MjcsIDAuMTY5MTI5LCAwLjIwMTYzOCwgMC4yMjk5NDEsIDAuMjcwMzA3IiwgXAotICAgICAgICAgICIwLjA4NjYyMywgMC4xMjQ3NzIsIDAuMTU0OTU3LCAwLjE3NTU2NCwgMC4yMDgwODQsIDAuMjM2Mzc2LCAwLjI3NjczMyIsIFwKLSAgICAgICAgICAiMC4wOTEwMzMsIDAuMTI5NjA5LCAwLjE1OTkzNywgMC4xODA2MzgsIDAuMjEzMTQ4LCAwLjI0MTQ3MiwgMC4yODE4MiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyNjc4MywgMC4wODM5OTIsIDAuMTM5ODk3LCAwLjE4MDMyNiwgMC4yNDU4MDYsIDAuMzAzNzU3LCAwLjM4Njc4OCIsIFwKLSAgICAgICAgICAiMC4wMjY2NzIsIDAuMDgzOTY2LCAwLjEzOTg1NywgMC4xODAzMTEsIDAuMjQ1Nzg3LCAwLjMwMzc2NywgMC4zODY3OCIsIFwKLSAgICAgICAgICAiMC4wMjY3MDQsIDAuMDgzOTMyLCAwLjEzOTg0OCwgMC4xODAzMzEsIDAuMjQ1Nzg1LCAwLjMwMzU2NCwgMC4zODY3MTYiLCBcCi0gICAgICAgICAgIjAuMDI3Mjk1LCAwLjA4NDEwMiwgMC4xMzk5NzYsIDAuMTgwNDc5LCAwLjI0NTksIDAuMzAzNTIsIDAuMzg2ODM0IiwgXAotICAgICAgICAgICIwLjAyNzg4NywgMC4wODQ3NTUsIDAuMTQwMzgsIDAuMTgwNzQ4LCAwLjI0NjA5NCwgMC4zMDM3LCAwLjM4Njk4NCIsIFwKLSAgICAgICAgICAiMC4wMjg5MiwgMC4wODU3NzYsIDAuMTQxMjE0LCAwLjE4MTM4NiwgMC4yNDY1NywgMC4zMDQwOTYsIDAuMzg3MjE0IiwgXAotICAgICAgICAgICIwLjAyOTYwNywgMC4wODY4NjUsIDAuMTQxODM3LCAwLjE4MTkzNywgMC4yNDcwOTQsIDAuMzA0NTQ5LCAwLjM4NzE3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDI5MTI4LCAwLjA1ODcwMiwgMC4wODYzMjMsIDAuMTA2MDUsIDAuMTM3NTc0LCAwLjE2NTE5MSwgMC4yMDQ1NSIsIFwKLSAgICAgICAgICAiMC4wMzc1MDUsIDAuMDY3MDA0LCAwLjA5NDY3MiwgMC4xMTQ0MDQsIDAuMTQ1OTMsIDAuMTczNTMsIDAuMjEyOTEzIiwgXAotICAgICAgICAgICIwLjA0Njk4NSwgMC4wNzY2MzEsIDAuMTA0Mjg0LCAwLjEyNDAxLCAwLjE1NTUyNSwgMC4xODMxMDcsIDAuMjIyNDkzIiwgXAotICAgICAgICAgICIwLjA1NDAwOCwgMC4wODQyNTUsIDAuMTExOTMyLCAwLjEzMTYyOSwgMC4xNjMxNTcsIDAuMTkwNzM3LCAwLjIzMDExMiIsIFwKLSAgICAgICAgICAiMC4wNTk2MTcsIDAuMDkwMzgyLCAwLjExODAwOCwgMC4xMzc3MTksIDAuMTY5MjIxLCAwLjE5Njc5LCAwLjIzNjE5NCIsIFwKLSAgICAgICAgICAiMC4wNjY5OSwgMC4wOTg2NjEsIDAuMTI2MjEzLCAwLjE0NTkxMSwgMC4xNzczODUsIDAuMjA0OTMzLCAwLjI0NDMxMyIsIFwKLSAgICAgICAgICAiMC4wNzIxNTEsIDAuMTA0NzA1LCAwLjEzMjM5NSwgMC4xNTIwOCwgMC4xODM2MTMsIDAuMjEwNjkzLCAwLjI1MDAzNyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxNzUzNywgMC4wNzI5OTgsIDAuMTMwMzk5LCAwLjE3MTU2NiwgMC4yMzc5NjIsIDAuMjk1OTU2LCAwLjM3OTYwNSIsIFwKLSAgICAgICAgICAiMC4wMTc1NzEsIDAuMDcyOTk5LCAwLjEzMDQxLCAwLjE3MTQ4NCwgMC4yMzc5NDgsIDAuMjk2MDA3LCAwLjM3OTU4NCIsIFwKLSAgICAgICAgICAiMC4wMTg5NjUsIDAuMDczMzk4LCAwLjEzMDUwMSwgMC4xNzE4OTEsIDAuMjM4MjE1LCAwLjI5NjM4MiwgMC4zNzkyNzIiLCBcCi0gICAgICAgICAgIjAuMDIwNTU4LCAwLjA3NDA4LCAwLjEzMDg3NSwgMC4xNzE5MDYsIDAuMjM4MTI2LCAwLjI5NjM4NSwgMC4zNzk1NTMiLCBcCi0gICAgICAgICAgIjAuMDIyMTQ2LCAwLjA3NDg0LCAwLjEzMTE1OCwgMC4xNzIxNTQsIDAuMjM4MjU3LCAwLjI5NjI1LCAwLjM3OTU2NiIsIFwKLSAgICAgICAgICAiMC4wMjQxMjQsIDAuMDc2MzM0LCAwLjEzMTc5MSwgMC4xNzI1NDgsIDAuMjM4NDQ5LCAwLjI5NjM1NiwgMC4zNzk0MDgiLCBcCi0gICAgICAgICAgIjAuMDI1NTQxLCAwLjA3NzI4NiwgMC4xMzI2MjksIDAuMTcyOTI5LCAwLjIzODY1OCwgMC4yOTY0NjcsIDAuMzc5NDQxIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU5NjY0LCAwLjA5Njg3LCAwLjEyNjg1LCAwLjE0NzQxMywgMC4xNzk5MDcsIDAuMjA4MjEzLCAwLjI0ODU4OCIsIFwKLSAgICAgICAgICAiMC4wNjU3MjQsIDAuMTAyOTExLCAwLjEzMjkxNSwgMC4xNTM0NjQsIDAuMTg1OTc1LCAwLjIxNDI1NywgMC4yNTQ2NCIsIFwKLSAgICAgICAgICAiMC4wNzMxNjEsIDAuMTEwMjY2LCAwLjE0MDIxMiwgMC4xNjA3NzEsIDAuMTkzMjc5LCAwLjIyMTU2MSwgMC4yNjE5NDYiLCBcCi0gICAgICAgICAgIjAuMDgwMjMsIDAuMTE3NDczLCAwLjE0NzQzMiwgMC4xNjc5ODIsIDAuMjAwNTE2LCAwLjIyODc5NiwgMC4yNjkxNzkiLCBcCi0gICAgICAgICAgIjAuMDg2NDQxLCAwLjEyMzg4NywgMC4xNTM5MjcsIDAuMTc0NDg3LCAwLjIwNjk4NCwgMC4yMzUzMDcsIDAuMjc1NjQ1IiwgXAotICAgICAgICAgICIwLjA5NTA1OCwgMC4xMzMxMiwgMC4xNjM0MDcsIDAuMTgzOTkzLCAwLjIxNjU0NiwgMC4yNDQ4MzgsIDAuMjg1MTk3IiwgXAotICAgICAgICAgICIwLjEwMTc0MSwgMC4xNDAxMDYsIDAuMTcwNzE1LCAwLjE5MTMxMSwgMC4yMjM4NTEsIDAuMjUyMTc0LCAwLjI5MjUxNyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyNjgzNywgMC4wODQwMTcsIDAuMTM5ODgxLCAwLjE4MDM3NiwgMC4yNDU2NTEsIDAuMzAzNDcsIDAuMzg2ODE5IiwgXAotICAgICAgICAgICIwLjAyNjcyOSwgMC4wODM5NjgsIDAuMTM5ODQ0LCAwLjE4MDMyMiwgMC4yNDU3ODYsIDAuMzAzNzc4LCAwLjM4Njc4NCIsIFwKLSAgICAgICAgICAiMC4wMjY3MzEsIDAuMDgzOTY5LCAwLjEzOTg4MiwgMC4xODAzNTEsIDAuMjQ1ODAzLCAwLjMwMzc4NSwgMC4zODY3ODIiLCBcCi0gICAgICAgICAgIjAuMDI3Mjk5LCAwLjA4NDM1MiwgMC4xNDAxMjEsIDAuMTgwNTM1LCAwLjI0NTkwNiwgMC4zMDM2NzEsIDAuMzg2ODA0IiwgXAotICAgICAgICAgICIwLjAyODI4LCAwLjA4NTA1MiwgMC4xNDA1NDksIDAuMTgwOTI3LCAwLjI0NjE1NywgMC4zMDQwMTUsIDAuMzg2OTkxIiwgXAotICAgICAgICAgICIwLjAyOTQ0LCAwLjA4NjI1OSwgMC4xNDE2MDMsIDAuMTgxNjc4LCAwLjI0NjgyMiwgMC4zMDQxOTIsIDAuMzg3NDExIiwgXAotICAgICAgICAgICIwLjAzMDYwOCwgMC4wODc2NzMsIDAuMTQyMzUyLCAwLjE4MjI4LCAwLjI0NzI4NiwgMC4zMDQ2NDQsIDAuMzg3NjYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjczNTksIDAuMDU2ODgyLCAwLjA4NDUyLCAwLjEwNDIyNywgMC4xMzU3NDIsIDAuMTYzMzY0LCAwLjIwMjc0IiwgXAotICAgICAgICAgICIwLjAzNTcxNCwgMC4wNjUyLCAwLjA5MjgyOCwgMC4xMTI1NDksIDAuMTQ0MDYxLCAwLjE3MTY4MSwgMC4yMTEwNiIsIFwKLSAgICAgICAgICAiMC4wNDQ1MzYsIDAuMDc0MjMxLCAwLjEwMTg1OCwgMC4xMjE1NzEsIDAuMTUzMDg0LCAwLjE4MDY4MiwgMC4yMjAwNjUiLCBcCi0gICAgICAgICAgIjAuMDUwOTQyLCAwLjA4MTI4NCwgMC4xMDg4OTgsIDAuMTI4NTk0LCAwLjE2MDExMSwgMC4xODc2NzcsIDAuMjI3MDc5IiwgXAotICAgICAgICAgICIwLjA1NTk2MiwgMC4wODY5MTksIDAuMTE0NjcsIDAuMTM0MzYyLCAwLjE2NTg4MSwgMC4xOTM0NDYsIDAuMjMyODU0IiwgXAotICAgICAgICAgICIwLjA2MjY1NCwgMC4wOTQ0NCwgMC4xMjIxODQsIDAuMTQxOTIzLCAwLjE3MzQzNiwgMC4yMDA2NjIsIDAuMjQwMzc2IiwgXAotICAgICAgICAgICIwLjA2NzI0LCAwLjA5OTc5MiwgMC4xMjczNzIsIDAuMTQ3MjQ5LCAwLjE3ODQ5NywgMC4yMDYwNDksIDAuMjQ1Mjc5Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE3MzM3LCAwLjA3Mjk0NCwgMC4xMzAzNDgsIDAuMTcxNzQ0LCAwLjIzNzkwMiwgMC4yOTU4MzgsIDAuMzc5MjIzIiwgXAotICAgICAgICAgICIwLjAxNzQ2NywgMC4wNzI5MjcsIDAuMTMwMzc0LCAwLjE3MTc2MSwgMC4yMzc5MiwgMC4yOTYwMTIsIDAuMzc5MjYiLCBcCi0gICAgICAgICAgIjAuMDE5MDc3LCAwLjA3MzQ1NywgMC4xMzAzNjgsIDAuMTcxOTA2LCAwLjIzODI2MywgMC4yOTU4ODIsIDAuMzc5Njc0IiwgXAotICAgICAgICAgICIwLjAyMDgzNiwgMC4wNzQyOTYsIDAuMTMwOTEzLCAwLjE3MTg4NywgMC4yMzc5NTYsIDAuMjk2NDUxLCAwLjM3OTY3NyIsIFwKLSAgICAgICAgICAiMC4wMjI1MTksIDAuMDc1MjA0LCAwLjEzMTQwOSwgMC4xNzIyMjgsIDAuMjM4NDE3LCAwLjI5NjYxMSwgMC4zNzkwOTciLCBcCi0gICAgICAgICAgIjAuMDI0MjU4LCAwLjA3Njc3LCAwLjEzMjA5MywgMC4xNzI3NDYsIDAuMjM4NTE2LCAwLjI5NjM4MiwgMC4zNzk2MjkiLCBcCi0gICAgICAgICAgIjAuMDI1OTIxLCAwLjA3Nzk2MywgMC4xMzMwNzMsIDAuMTczMTU3LCAwLjIzODY3OCwgMC4yOTYzNSwgMC4zNzk0NDIiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTQ5MjcsIDAuMDkyMTMsIDAuMTIyMDc2LCAwLjE0MjY0MSwgMC4xNzUxNzIsIDAuMjAzNDU5LCAwLjI0Mzg1MSIsIFwKLSAgICAgICAgICAiMC4wNjE5MjQsIDAuMDk5MTIzLCAwLjEyOTA4NSwgMC4xNDk2NzYsIDAuMTgyMTg1LCAwLjIxMDQ4OCwgMC4yNTA4NjUiLCBcCi0gICAgICAgICAgIjAuMDcxNDI4LCAwLjEwODUzMywgMC4xMzg0NjMsIDAuMTU5MDEzLCAwLjE5MTUxNiwgMC4yMTk4MjIsIDAuMjYwMTk2IiwgXAotICAgICAgICAgICIwLjA4MDUxMiwgMC4xMTc2ODgsIDAuMTQ3NjAyLCAwLjE2ODE4NywgMC4yMDA2ODEsIDAuMjI4OTg1LCAwLjI2OTM2IiwgXAotICAgICAgICAgICIwLjA4ODcwOSwgMC4xMjU5MDQsIDAuMTU1ODg3LCAwLjE3NjQxNiwgMC4yMDg5MzQsIDAuMjM3MjI3LCAwLjI3NzYwMSIsIFwKLSAgICAgICAgICAiMC4wOTk1MjQsIDAuMTM3MjcxLCAwLjE2NzQ4OSwgMC4xODgxMzksIDAuMjIwNzE1LCAwLjI0OTA1LCAwLjI4OTA5OSIsIFwKLSAgICAgICAgICAiMC4xMDc1NDIsIDAuMTQ1NjU0LCAwLjE3NTg0MSwgMC4xOTY1ODksIDAuMjI5MjM5LCAwLjI1NzU3NCwgMC4yOTc5NzMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjY2NTMsIDAuMDg0MDM4LCAwLjEzOTg5NiwgMC4xODAzMjQsIDAuMjQ1ODA0LCAwLjMwMzc3NywgMC4zODY3OTEiLCBcCi0gICAgICAgICAgIjAuMDI2NjYzLCAwLjA4Mzk0NCwgMC4xMzk3OTEsIDAuMTgwMzExLCAwLjI0NTc0NywgMC4zMDM0MzcsIDAuMzg2Nzg4IiwgXAotICAgICAgICAgICIwLjAyNjc4NCwgMC4wODQwMDEsIDAuMTM5ODkzLCAwLjE4MDM2NSwgMC4yNDU3NjQsIDAuMzAzNTksIDAuMzg2ODAzIiwgXAotICAgICAgICAgICIwLjAyNzI5MiwgMC4wODQ1MTMsIDAuMTQwMTg1LCAwLjE4MDUxOCwgMC4yNDU4MjUsIDAuMzAzODkxLCAwLjM4Njg1OSIsIFwKLSAgICAgICAgICAiMC4wMjg2LCAwLjA4NTIwNiwgMC4xNDA2MTUsIDAuMTgwODA1LCAwLjI0NjE4NywgMC4zMDM5MDksIDAuMzg2OTk4IiwgXAotICAgICAgICAgICIwLjAzMDM1MywgMC4wODY1MjIsIDAuMTQxNDg4LCAwLjE4MTY5NiwgMC4yNDY3OTksIDAuMzA0MjUzLCAwLjM4NzMyMyIsIFwKLSAgICAgICAgICAiMC4wMzE4NzgsIDAuMDg3NDEsIDAuMTQyMzg4LCAwLjE4MjUxNCwgMC4yNDc0MDgsIDAuMzA0Nzg1LCAwLjM4NzcxOSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDExNTYxLCAwLjAxMTg0NSwgMC4wMTE5MTIsIDAuMDExOTM0LCAwLjAxMTk1NCwgMC4wMTE5NjUsIDAuMDExOTc5IiwgXAotICAgICAgICAgICIwLjAxMTQ4MywgMC4wMTE3NDMsIDAuMDExODI4LCAwLjAxMTg1NywgMC4wMTE4ODUsIDAuMDExOSwgMC4wMTE5MTEiLCBcCi0gICAgICAgICAgIjAuMDExNzc0LCAwLjAxMTgxMSwgMC4wMTE4ODUsIDAuMDExOTA1LCAwLjAxMTk1NSwgMC4wMTE5NjMsIDAuMDExOTg2IiwgXAotICAgICAgICAgICIwLjAxMjAwNiwgMC4wMTE5NjQsIDAuMDEyMDIsIDAuMDEyMDU4LCAwLjAxMjA4OCwgMC4wMTIxMDUsIDAuMDEyMTE2IiwgXAotICAgICAgICAgICIwLjAxMjU1MSwgMC4wMTIyNywgMC4wMTIyODYsIDAuMDEyMzAyLCAwLjAxMjMyNCwgMC4wMTIzMzUsIDAuMDEyMzQ5IiwgXAotICAgICAgICAgICIwLjAxMzA2MSwgMC4wMTI3NjcsIDAuMDEyNzMyLCAwLjAxMjczMiwgMC4wMTI3MzgsIDAuMDEyNzM5LCAwLjAxMjc0NyIsIFwKLSAgICAgICAgICAiMC4wMTM2MDYsIDAuMDEzMjA5LCAwLjAxMzE0MiwgMC4wMTMxMzEsIDAuMDEzMTM3LCAwLjAxMzEzNSwgMC4wMTMxMzgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxNjgwNywgMC4wMTY2MDcsIDAuMDE2NjYzLCAwLjAxNjY4NywgMC4wMTY3MTIsIDAuMDE2NzI2LCAwLjAxNjczOSIsIFwKLSAgICAgICAgICAiMC4wMTY2MzksIDAuMDE2NDgzLCAwLjAxNjU1MywgMC4wMTY1ODMsIDAuMDE2NjE0LCAwLjAxNjYzMiwgMC4wMTY2NSIsIFwKLSAgICAgICAgICAiMC4wMTY2NSwgMC4wMTY0NSwgMC4wMTY1MjUsIDAuMDE2NTU3LCAwLjAxNjU5LCAwLjAxNjYwOSwgMC4wMTY2MjYiLCBcCi0gICAgICAgICAgIjAuMDE2ODMsIDAuMDE2NTIsIDAuMDE2NTc2LCAwLjAxNjYwMywgMC4wMTY2MzEsIDAuMDE2NjQ4LCAwLjAxNjY2NCIsIFwKLSAgICAgICAgICAiMC4wMTcwNTksIDAuMDE2NjAzLCAwLjAxNjY0NywgMC4wMTY2NzIsIDAuMDE2Njk3LCAwLjAxNjcxNCwgMC4wMTY3MyIsIFwKLSAgICAgICAgICAiMC4wMTc1MSwgMC4wMTY4MzgsIDAuMDE2ODU2LCAwLjAxNjg2OSwgMC4wMTY4ODcsIDAuMDE2OTAzLCAwLjAxNjkxNiIsIFwKLSAgICAgICAgICAiMC4wMTc3MzksIDAuMDE3MTkxLCAwLjAxNzE2MSwgMC4wMTcxNjEsIDAuMDE3MTU4LCAwLjAxNzE2NCwgMC4wMTcxNjciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMTAwOSwgMC4wMTEzOTIsIDAuMDExNDcxLCAwLjAxMTQ5NywgMC4wMTE1MjEsIDAuMDExNTMyLCAwLjAxMTU1IiwgXAotICAgICAgICAgICIwLjAxMDkzOSwgMC4wMTEyODQsIDAuMDExMzg1LCAwLjAxMTQyMywgMC4wMTE0NTUsIDAuMDExNDcxLCAwLjAxMTQ4NiIsIFwKLSAgICAgICAgICAiMC4wMTEyOTgsIDAuMDExMzY3LCAwLjAxMTQ1MSwgMC4wMTE0NywgMC4wMTE1MTYsIDAuMDExNTM0LCAwLjAxMTU1IiwgXAotICAgICAgICAgICIwLjAxMTQyNSwgMC4wMTE0NDksIDAuMDExNTM3LCAwLjAxMTU3LCAwLjAxMTYxLCAwLjAxMTYyOCwgMC4wMTE2NTkiLCBcCi0gICAgICAgICAgIjAuMDExODc1LCAwLjAxMTcsIDAuMDExNzUzLCAwLjAxMTc4OCwgMC4wMTE4MSwgMC4wMTE4MzQsIDAuMDExODUzIiwgXAotICAgICAgICAgICIwLjAxMjU5MywgMC4wMTIxMzEsIDAuMDEyMTM5LCAwLjAxMjE1NCwgMC4wMTIxNzcsIDAuMDEyMTk3LCAwLjAxMjIwOCIsIFwKLSAgICAgICAgICAiMC4wMTI4OTIsIDAuMDEyNTQsIDAuMDEyNTQ4LCAwLjAxMjU2NCwgMC4wMTI1OTIsIDAuMDEyNTY4LCAwLjAxMjU4NCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE1OTE4LCAwLjAxNTczMiwgMC4wMTU4MDQsIDAuMDE1ODM0LCAwLjAxNTg2MywgMC4wMTU4OCwgMC4wMTU4OTUiLCBcCi0gICAgICAgICAgIjAuMDE1NzYzLCAwLjAxNTYwOCwgMC4wMTU2OTMsIDAuMDE1NzI4LCAwLjAxNTc2MywgMC4wMTU3ODMsIDAuMDE1ODAyIiwgXAotICAgICAgICAgICIwLjAxNTkwOCwgMC4wMTU2MzIsIDAuMDE1Njk2LCAwLjAxNTcyNywgMC4wMTU3NiwgMC4wMTU3NzksIDAuMDE1Nzk3IiwgXAotICAgICAgICAgICIwLjAxNjE2NywgMC4wMTU2OTcsIDAuMDE1NzQ2LCAwLjAxNTc3NSwgMC4wMTU4MDgsIDAuMDE1ODI4LCAwLjAxNTg0NyIsIFwKLSAgICAgICAgICAiMC4wMTY2MzMsIDAuMDE1ODY5LCAwLjAxNTg4MiwgMC4wMTU5MTUsIDAuMDE1OTQsIDAuMDE1OTQxLCAwLjAxNTk2NyIsIFwKLSAgICAgICAgICAiMC4wMTY3NzgsIDAuMDE2MjMzLCAwLjAxNjI0NywgMC4wMTYyMzQsIDAuMDE2MjMxLCAwLjAxNjIzMSwgMC4wMTYyMzQiLCBcCi0gICAgICAgICAgIjAuMDE3MjcyLCAwLjAxNjYwOCwgMC4wMTY1NDcsIDAuMDE2NTIsIDAuMDE2NTA3LCAwLjAxNjUsIDAuMDE2NSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEwMzIzLCAwLjAxMDcwNywgMC4wMTA3NzYsIDAuMDEwODA2LCAwLjAxMDgyNywgMC4wMTA4MzcsIDAuMDEwODUiLCBcCi0gICAgICAgICAgIjAuMDEwMjcsIDAuMDEwNjE3LCAwLjAxMDcxLCAwLjAxMDc0MSwgMC4wMTA3NywgMC4wMTA3ODQsIDAuMDEwNzk5IiwgXAotICAgICAgICAgICIwLjAxMDQ0OSwgMC4wMTA2NDQsIDAuMDEwNzM1LCAwLjAxMDc3LCAwLjAxMDgxMiwgMC4wMTA4MjUsIDAuMDEwODI4IiwgXAotICAgICAgICAgICIwLjAxMDgyNywgMC4wMTA3NjgsIDAuMDEwODYyLCAwLjAxMDkwMSwgMC4wMTA5MzIsIDAuMDEwOTUzLCAwLjAxMDk4IiwgXAotICAgICAgICAgICIwLjAxMTI0NiwgMC4wMTEwMTEsIDAuMDExMDc2LCAwLjAxMTEwMywgMC4wMTExMzIsIDAuMDExMTUyLCAwLjAxMTE2OCIsIFwKLSAgICAgICAgICAiMC4wMTE1ODIsIDAuMDExNDgyLCAwLjAxMTQzNCwgMC4wMTE1MDQsIDAuMDExNDgsIDAuMDExNTM0LCAwLjAxMTUxOCIsIFwKLSAgICAgICAgICAiMC4wMTIxNDUsIDAuMDExODE0LCAwLjAxMTc5OSwgMC4wMTE4MjIsIDAuMDExODc0LCAwLjAxMTg0OSwgMC4wMTE5MDEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxNDkwOCwgMC4wMTQ4MjQsIDAuMDE0ODkzLCAwLjAxNDkyMywgMC4wMTQ5NTQsIDAuMDE0OTcxLCAwLjAxNDk4OCIsIFwKLSAgICAgICAgICAiMC4wMTQ4MTUsIDAuMDE0NjgyLCAwLjAxNDc3NiwgMC4wMTQ4MTgsIDAuMDE0ODYsIDAuMDE0ODg0LCAwLjAxNDkwNyIsIFwKLSAgICAgICAgICAiMC4wMTUxMTMsIDAuMDE0OCwgMC4wMTQ4NjQsIDAuMDE0ODk4LCAwLjAxNDkzNiwgMC4wMTQ5NTgsIDAuMDE0OTgxIiwgXAotICAgICAgICAgICIwLjAxNTQ0NiwgMC4wMTUwMjQsIDAuMDE1MDQ5LCAwLjAxNTA3NCwgMC4wMTUxMDUsIDAuMDE1MTI2LCAwLjAxNTE0NyIsIFwKLSAgICAgICAgICAiMC4wMTYxMTYsIDAuMDE1MjQ5LCAwLjAxNTI2NSwgMC4wMTUyNzksIDAuMDE1MzEsIDAuMDE1MzI5LCAwLjAxNTM0OSIsIFwKLSAgICAgICAgICAiMC4wMTY0ODEsIDAuMDE1NjM0LCAwLjAxNTY0NSwgMC4wMTU2NTUsIDAuMDE1Njc1LCAwLjAxNTY4OSwgMC4wMTU2OTUiLCBcCi0gICAgICAgICAgIjAuMDE3NDM5LCAwLjAxNjIzMSwgMC4wMTU5ODQsIDAuMDE1OTg0LCAwLjAxNTk5LCAwLjAxNTk5NywgMC4wMTYwMDYiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogU0RGRkhRWDEgKgotICogLS0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKFNERkZIUVgxKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDEuMDcxNzQ7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgZmYgKE4zMCxRQklOVCkgewotICAgIG5leHRfc3RhdGUgOiAiKChTRSBTSSkgKyAoIVNFIEQpKSI7Ci0gICAgY2xvY2tlZF9vbiA6ICJDSyI7Ci0gIH0KLSAgcGluKENLKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2NTE5ODI7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjUxOTgyOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDY1MTk3NjsKLSAgICBjbG9jayA6IHRydWU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA0MTc3LCAwLjAwNDE3NywgMC4wMDQyNDMsIDAuMDA0MzM2LCAwLjAwNDQ0NiwgMC4wMDQ2NzUsIDAuMDA0ODc5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA5MjI4LCAwLjAwOTIyMiwgMC4wMDkzMDksIDAuMDA5NDMsIDAuMDA5NTgxLCAwLjAwOTg2MiwgMC4wMDk5ODYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFEJiFTRSYhU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1NFX0VRXzBfQU5fU0lfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjEwMjA1MiwgMC4xMTAyOTcsIDAuMTE5NDIsIDAuMTI2NzE0LCAwLjEzMjU4OSwgMC4xNDA0NTIsIDAuMTQ2MTE4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wNjM1NSwgMC4wNzE2OCwgMC4wODA4NDEsIDAuMDg3OTEyLCAwLjA5MzU0OCwgMC4xMDA5MTMsIDAuMTA2Mzg2Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihEKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA5Mjc0MTE7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwOTI1NDYyOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDkyNzQxMTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDQzNzgsIDAuMDA0MzMzLCAwLjAwNDM1NywgMC4wMDQ0MTQsIDAuMDA0NDk4LCAwLjAwNDY0NiwgMC4wMDQ4MTUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDcxOSwgMC4wMDcxNjEsIDAuMDA3MTksIDAuMDA3MjQ5LCAwLjAwNzMxNCwgMC4wMDc0NjgsIDAuMDA3NjI2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJTRSA9PSAxJ2IwIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMjUsIC0wLjAyLCAtMC4wMiwgLTAuMDEzNzUsIC0wLjAxMzc1LCAtMC4wMSwgLTAuMDAxMjUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMjUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxODc1LCAtMC4wMTUsIC0wLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAyNSwgLTAuMDIxMjUsIC0wLjAxODc1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMjc1LCAtMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjA1NSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDMzNzUsIC0wLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wNTg3NSwgLTAuMDUzNzUsIC0wLjA1Mzc1LCAtMC4wNDc1LCAtMC4wNDc1LCAtMC4wNDM3NSwgLTAuMDQxMjUiLCBcCi0gICAgICAgICAgIi0wLjA2NzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjA0NjI1LCAtMC4wNDM3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAwNjI1LCAwLjAwNSwgMC4wMTEyNSwgMC4wMTc1LCAwLjAyMzc1LCAwLjAyNzUsIDAuMDMiLCBcCi0gICAgICAgICAgIi0wLjAxMTI1LCAwLCAwLjAwNjI1LCAwLjAxMjUsIDAuMDE4NzUsIDAuMDIyNSwgMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjAxNzUsIC0wLjAwNjI1LCAwLCAwLjAwNjI1LCAwLjAxMjUsIDAuMDE2MjUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMCwgMC4wMDYyNSwgMC4wMSwgMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLCAwLjAwMzc1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjAzMzc1LCAtMC4wMjI1LCAtMC4wMTYyNSwgLTAuMDEsIC0wLjAwMzc1LCAwLCAwLjAwMjUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAxMjUsIC0wLjAwMjUsIDAiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJTRSA9PSAxJ2IwIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDM3NSwgMC4wMzg3NSwgMC4wMzI1LCAwLjAzMjUsIDAuMDI2MjUsIDAuMDIyNSwgMC4wMiIsIFwKLSAgICAgICAgICAiMC4wNTUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyNzUsIDAuMDI1IiwgXAotICAgICAgICAgICIwLjA2MTI1LCAwLjA1LCAwLjA1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDMzNzUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMDY3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1LCAwLjA1LCAwLjA0NjI1LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIjAuMDczNzUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNTYyNSwgMC4wNTI1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjA4Mzc1LCAwLjA3MjUsIDAuMDY2MjUsIDAuMDY2MjUsIDAuMDYsIDAuMDU2MjUsIDAuMDUzNzUiLCBcCi0gICAgICAgICAgIjAuMDg2MjUsIDAuMDgxMjUsIDAuMDc1LCAwLjA2ODc1LCAwLjA2ODc1LCAwLjA2NSwgMC4wNjI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDMxMjUsIDAuMDIsIDAuMDEzNzUsIDAuMDA3NSwgMC4wMDEyNSwgLTAuMDA4NzUsIC0wLjAxMTI1IiwgXAotICAgICAgICAgICIwLjAzNjI1LCAwLjAyNSwgMC4wMTg3NSwgMC4wMTI1LCAwLjAwNjI1LCAtMC4wMDM3NSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMDQyNSwgMC4wMzc1LCAwLjAyNSwgMC4wMTg3NSwgMC4wMTI1LCAwLjAwODc1LCAwIiwgXAotICAgICAgICAgICIwLjA0ODc1LCAwLjA0Mzc1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMTg3NSwgMC4wMTUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMDU1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDI1LCAwLjAxNSwgMC4wMTI1IiwgXAotICAgICAgICAgICIwLjA1ODc1LCAwLjA1Mzc1LCAwLjA0MTI1LCAwLjAzNSwgMC4wMjg3NSwgMC4wMjUsIDAuMDE2MjUiLCBcCi0gICAgICAgICAgIjAuMDY3NSwgMC4wNTYyNSwgMC4wNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAyNzUsIDAuMDI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihRKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMzQ5MDMxOwotICAgIGZ1bmN0aW9uIDogIk4zMCI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3NlbnNlIDogbm9uX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiByaXNpbmdfZWRnZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDkwNDI0LCAwLjEwODk2LCAwLjIxNDE5OCwgMC4zMDcxNjEsIDAuNDMxMTc2LCAwLjY3OTMwOSwgMC44MzQzNCIsIFwKLSAgICAgICAgICAiMC4wOTg2MywgMC4xMTcxNywgMC4yMjI0MjYsIDAuMzE1MzY4LCAwLjQzOTM3NywgMC42ODc0ODUsIDAuODQyNTMxIiwgXAotICAgICAgICAgICIwLjEwNzcwOSwgMC4xMjYyNTYsIDAuMjMxNDksIDAuMzI0NDU2LCAwLjQ0ODQ0NSwgMC42OTY1MjgsIDAuODUxNjc2IiwgXAotICAgICAgICAgICIwLjExNDk0NiwgMC4xMzM0OTMsIDAuMjM4NzUzLCAwLjMzMTY3OSwgMC40NTU3MzQsIDAuNzAzNzY0LCAwLjg1ODg0MyIsIFwKLSAgICAgICAgICAiMC4xMjA2NjQsIDAuMTM5MjExLCAwLjI0NDQ4NSwgMC4zMzc0MDQsIDAuNDYxNDA3LCAwLjcwOTQ1NywgMC44NjQ1MjYiLCBcCi0gICAgICAgICAgIjAuMTI4MjE0LCAwLjE0Njc3MiwgMC4yNTIwMjcsIDAuMzQ0OTY0LCAwLjQ2ODkzNSwgMC43MTY5OTcsIDAuODcyMjE1IiwgXAotICAgICAgICAgICIwLjEzMzkwMSwgMC4xNTI0NywgMC4yNTc2OTYsIDAuMzUwNjU4LCAwLjQ3NDcyMiwgMC43MjI2OTEsIDAuODc3NzQxIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3MDg4OCwgMC4xMDk1MzEsIDAuMzMwOTQzLCAwLjUyNzYxOCwgMC43ODgzMzIsIDEuMzEwMTIsIDEuNjM1ODUiLCBcCi0gICAgICAgICAgIjAuMDcwODksIDAuMTA5NTY1LCAwLjMzMTYxMywgMC41Mjc2MjQsIDAuNzg4MzMzLCAxLjMwOTgxLCAxLjYzNjgzIiwgXAotICAgICAgICAgICIwLjA3MDkxNSwgMC4xMDk2OTksIDAuMzMxNTk5LCAwLjUyNzYxOCwgMC43ODg0MDQsIDEuMzEwMzgsIDEuNjM4NzMiLCBcCi0gICAgICAgICAgIjAuMDcwOTIxLCAwLjEwOTcwNCwgMC4zMzEwNzEsIDAuNTI3NTk4LCAwLjc4OTAzNywgMS4zMTA1MSwgMS42MzU4OCIsIFwKLSAgICAgICAgICAiMC4wNzA5MTIsIDAuMTA5NjgyLCAwLjMzMTA3MSwgMC41Mjc1NDMsIDAuNzg4OTU0LCAxLjMxMDYxLCAxLjYzNzA1IiwgXAotICAgICAgICAgICIwLjA3MDg5OSwgMC4xMDk2MDIsIDAuMzMxNTM4LCAwLjUyNzUwNywgMC43ODgyMTEsIDEuMzEwNzUsIDEuNjM2MjMiLCBcCi0gICAgICAgICAgIjAuMDcxMDE2LCAwLjEwOTU5NiwgMC4zMzE1NDUsIDAuNTI3NTc3LCAwLjc4NzU4NywgMS4zMTE3NiwgMS42MzcyMyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDIwNTIsIDAuMTIwMTksIDAuMjIyNzgzLCAwLjMxMzI1LCAwLjQzMzg2OSwgMC42NzUxMDcsIDAuODI1ODgxIiwgXAotICAgICAgICAgICIwLjExMDI5NywgMC4xMjg0MzQsIDAuMjMxMDIyLCAwLjMyMTQ5MywgMC40NDIxMTYsIDAuNjgzMzM1LCAwLjgzNDEwNSIsIFwKLSAgICAgICAgICAiMC4xMTk0MiwgMC4xMzc1NTYsIDAuMjQwMTQyLCAwLjMzMDYwNywgMC40NTEyMzgsIDAuNjkyNDMyLCAwLjg0MzIwOSIsIFwKLSAgICAgICAgICAiMC4xMjY3MTQsIDAuMTQ0ODQ5LCAwLjI0NzQzMiwgMC4zMzc4OTksIDAuNDU4NTE5LCAwLjY5OTc1LCAwLjg1MDUzMSIsIFwKLSAgICAgICAgICAiMC4xMzI1ODksIDAuMTUwNzI1LCAwLjI1MzMwOSwgMC4zNDM3NjUsIDAuNDY0Mzg1LCAwLjcwNTYwOSwgMC44NTYzODQiLCBcCi0gICAgICAgICAgIjAuMTQwNDUzLCAwLjE1ODU5MywgMC4yNjExNjgsIDAuMzUxNjE1LCAwLjQ3MjIzMywgMC43MTM0NDUsIDAuODY0MjYiLCBcCi0gICAgICAgICAgIjAuMTQ2MjE5LCAwLjE2NDM1NCwgMC4yNjY5MTUsIDAuMzU3NDE4LCAwLjQ3Nzk4OCwgMC43MTkyMTQsIDAuODY5OTY0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2NzQ5MiwgMC4xMDQzODksIDAuMzE1MzM4LCAwLjUwMTEzMiwgMC43NDk1NDksIDEuMjQ2NTQsIDEuNTU4ODEiLCBcCi0gICAgICAgICAgIjAuMDY3NDk5LCAwLjEwNDM5LCAwLjMxNTI2NiwgMC41MDE4MDMsIDAuNzQ5ODE5LCAxLjI0NzgxLCAxLjU1NjY1IiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMTA0Mzg0LCAwLjMxNTMzMywgMC41MDE4MTMsIDAuNzQ4OTk0LCAxLjI0Nzc0LCAxLjU1NjU4IiwgXAotICAgICAgICAgICIwLjA2NzQ5NywgMC4xMDQzOTIsIDAuMzE1MzM4LCAwLjUwMTEyNywgMC43NTA0MjQsIDEuMjQ2MzQsIDEuNTU3MjkiLCBcCi0gICAgICAgICAgIjAuMDY3NTAzLCAwLjEwNDM5LCAwLjMxNTM0MSwgMC41MDExMjMsIDAuNzUwNDMyLCAxLjI0NjE2LCAxLjU1Njc4IiwgXAotICAgICAgICAgICIwLjA2NzQ4LCAwLjEwNDIyNSwgMC4zMTUzNDgsIDAuNTAxNzY3LCAwLjc0OTQzMywgMS4yNDYzNCwgMS41NTg4NSIsIFwKLSAgICAgICAgICAiMC4wNjc2MjEsIDAuMTA0MTI5LCAwLjMxNTM1MSwgMC41MDExMDQsIDAuNzQ5MzUsIDEuMjQ2MTUsIDEuNTU5MTMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA4ODE5LCAwLjAwODc5NiwgMC4wMDg3MywgMC4wMDg3MSwgMC4wMDg2OTgsIDAuMDA4Njg2LCAwLjAwODY4MiIsIFwKLSAgICAgICAgICAiMC4wMDg4MTQsIDAuMDA4NzkyLCAwLjAwODcyNiwgMC4wMDg3MDYsIDAuMDA4NjkyLCAwLjAwODY4LCAwLjAwODY3OSIsIFwKLSAgICAgICAgICAiMC4wMDg4OTcsIDAuMDA4ODc2LCAwLjAwODgxLCAwLjAwODc4OCwgMC4wMDg3NzQsIDAuMDA4NzYzLCAwLjAwODc1NiIsIFwKLSAgICAgICAgICAiMC4wMDg5ODEsIDAuMDA4OTYzLCAwLjAwODg5OSwgMC4wMDg4NzUsIDAuMDA4ODYxLCAwLjAwODg0NywgMC4wMDg4NDMiLCBcCi0gICAgICAgICAgIjAuMDA5MTMxLCAwLjAwOTExMSwgMC4wMDkwNTEsIDAuMDA5MDI4LCAwLjAwOTAxMiwgMC4wMDg5OTYsIDAuMDA4OTkyIiwgXAotICAgICAgICAgICIwLjAwOTMxNywgMC4wMDkzMDIsIDAuMDA5MjM5LCAwLjAwOTIxNCwgMC4wMDkxOTYsIDAuMDA5MTc5LCAwLjAwOTE3NSIsIFwKLSAgICAgICAgICAiMC4wMDk1NTgsIDAuMDA5NTQ2LCAwLjAwOTQ4NCwgMC4wMDk0NTgsIDAuMDA5NDM5LCAwLjAwOTM5NCwgMC4wMDk0MTUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDk1MDksIDAuMDA5NTIxLCAwLjAwOTU0LCAwLjAwOTU0MywgMC4wMDk1NDYsIDAuMDA5NTQ4LCAwLjAwOTU0OCIsIFwKLSAgICAgICAgICAiMC4wMDk1MDQsIDAuMDA5NTE2LCAwLjAwOTUzNCwgMC4wMDk1MzgsIDAuMDA5NTQsIDAuMDA5NTQyLCAwLjAwOTU0MiIsIFwKLSAgICAgICAgICAiMC4wMDk2MTYsIDAuMDA5NjI3LCAwLjAwOTY0NCwgMC4wMDk2NDcsIDAuMDA5NjUsIDAuMDA5NjUxLCAwLjAwOTY1MyIsIFwKLSAgICAgICAgICAiMC4wMDk3MzIsIDAuMDA5NzQzLCAwLjAwOTc1OSwgMC4wMDk3NjIsIDAuMDA5NzY1LCAwLjAwOTc2NiwgMC4wMDk3NjciLCBcCi0gICAgICAgICAgIjAuMDA5ODgxLCAwLjAwOTg5MywgMC4wMDk5MDgsIDAuMDA5OTEsIDAuMDA5OTEyLCAwLjAwOTkxMywgMC4wMDk5MTQiLCBcCi0gICAgICAgICAgIjAuMDEwMTMyLCAwLjAxMDE0MiwgMC4wMTAxNTYsIDAuMDEwMTU2LCAwLjAxMDE1NywgMC4wMTAxNTcsIDAuMDEwMTM1IiwgXAotICAgICAgICAgICIwLjAxMDM0LCAwLjAxMDM0OCwgMC4wMTAzNTksIDAuMDEwMzYsIDAuMDEwMzI1LCAwLjAxMDM2LCAwLjAxMDM1OSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oU0UpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTY4NDA3OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTY4NDA3OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTY4MjY1OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNjc1NSwgMC4wMDY3NTMsIDAuMDA2ODMsIDAuMDA2OTMzLCAwLjAwNzA1NiwgMC4wMDcyNjMsIDAuMDA3NDY1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA4NDU3LCAwLjAwODQ3MywgMC4wMDg1OTUsIDAuMDA4Nzk4LCAwLjAwOTA1MSwgMC4wMDk0NjIsIDAuMDA5ODU3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEJlNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9TSV9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAyNSwgLTAuMDEzNzUsIC0wLjAxMzc1LCAtMC4wMDc1LCAtMC4wMDc1LCAtMC4wMDM3NSwgLTAuMDAxMjUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA4NzUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzEyNSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDI1LCAtMC4wMjEyNSwgLTAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAzMTI1LCAtMC4wMjc1LCAtMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjA1NSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzc1LCAtMC4wMzM3NSwgLTAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjA2NSwgLTAuMDYsIC0wLjA1Mzc1LCAtMC4wNDc1LCAtMC4wNDc1LCAtMC4wNDM3NSwgLTAuMDQxMjUiLCBcCi0gICAgICAgICAgIi0wLjA2NzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjA0NjI1LCAtMC4wNDM3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAsIDAuMDA1LCAwLjAxNzUsIDAuMDIzNzUsIDAuMDIzNzUsIDAuMDMzNzUsIDAuMDM2MjUiLCBcCi0gICAgICAgICAgIi0wLjAwNSwgMCwgMC4wMDYyNSwgMC4wMTI1LCAwLjAxODc1LCAwLjAyODc1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wMTc1LCAtMC4wMDYyNSwgMCwgMC4wMDYyNSwgMC4wMTI1LCAwLjAxNjI1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLCAwLjAwNjI1LCAwLjAxLCAwLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAsIDAuMDAzNzUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDMzNzUsIC0wLjAyMjUsIC0wLjAxNjI1LCAtMC4wMSwgLTAuMDEsIDAsIDAuMDAyNSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDg3NSwgMCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJEJiFTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzFfQU5fU0lfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMTI1LCAtMC4wMDEyNSwgMC4wMDUsIDAuMDExMjUsIDAuMDExMjUsIDAuMDIxMjUsIDAuMDIzNzUiLCBcCi0gICAgICAgICAgIi0wLjAxNzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLCAwLjAwNjI1LCAwLjAxNjI1LCAwLjAxODc1IiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLCAwLjAwMzc1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMjUsIC0wLjAxMjUsIC0wLjAwNjI1LCAtMC4wMDYyNSwgMC4wMDM3NSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAtMC4wMDI1LCAwIiwgXAotICAgICAgICAgICItMC4wNCwgLTAuMDM1LCAtMC4wMjI1LCAtMC4wMTYyNSwgLTAuMDE2MjUsIC0wLjAwNjI1LCAtMC4wMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAwODc1LCAtMC4wMDYyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAzNzUsIC0wLjAzMjUsIC0wLjAyNjI1LCAtMC4wMiwgLTAuMDIsIC0wLjAxNjI1LCAtMC4wMTM3NSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAyMTI1LCAtMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDI3NSwgLTAuMDI1IiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzMzc1LCAtMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wNDM3NSwgLTAuMDQsIC0wLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjA2NSwgLTAuMDYsIC0wLjA1Mzc1LCAtMC4wNDc1LCAtMC4wNDc1LCAtMC4wNDM3NSwgLTAuMDQxMjUiLCBcCi0gICAgICAgICAgIi0wLjA2NzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjA0NjI1LCAtMC4wNDM3NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUQmU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1NJX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQzNzUsIDAuMDMyNSwgMC4wMjYyNSwgMC4wMjYyNSwgMC4wMiwgMC4wMTYyNSwgMC4wMTM3NSIsIFwKLSAgICAgICAgICAiMC4wNDg3NSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAzMTI1LCAwLjAyNzUsIDAuMDI1IiwgXAotICAgICAgICAgICIwLjA2MTI1LCAwLjA1LCAwLjA0Mzc1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDMzNzUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMDY3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1LCAwLjA1LCAwLjA0LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIjAuMDczNzUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNTYyNSwgMC4wNTI1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjA4Mzc1LCAwLjA3ODc1LCAwLjA3MjUsIDAuMDY2MjUsIDAuMDY2MjUsIDAuMDU2MjUsIDAuMDUzNzUiLCBcCi0gICAgICAgICAgIjAuMDkyNSwgMC4wODEyNSwgMC4wNzUsIDAuMDc1LCAwLjA2ODc1LCAwLjA2NSwgMC4wNjI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDI1LCAwLjAyLCAwLjAwNzUsIDAuMDAxMjUsIC0wLjAwNSwgLTAuMDA4NzUsIC0wLjAxNzUiLCBcCi0gICAgICAgICAgIjAuMDMsIDAuMDI1LCAwLjAxODc1LCAwLjAwNjI1LCAwLjAwNjI1LCAtMC4wMDM3NSwgLTAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4wNDI1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMTg3NSwgMC4wMTI1LCAwLjAwMjUsIDAiLCBcCi0gICAgICAgICAgIjAuMDQ4NzUsIDAuMDQzNzUsIDAuMDMxMjUsIDAuMDI1LCAwLjAxODc1LCAwLjAxNSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiMC4wNTUsIDAuMDUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMjUsIDAuMDIxMjUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4wNjUsIDAuMDYsIDAuMDQ3NSwgMC4wNDEyNSwgMC4wMzUsIDAuMDMxMjUsIDAuMDIyNSIsIFwKLSAgICAgICAgICAiMC4wNzM3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1LCAwLjA0Mzc1LCAwLjAzMzc1LCAwLjAzMTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJEJiFTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzFfQU5fU0lfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzc1LCAwLjAzMjUsIDAuMDIsIDAuMDEzNzUsIDAuMDA3NSwgMC4wMDM3NSwgLTAuMDA1IiwgXAotICAgICAgICAgICIwLjA0MjUsIDAuMDM3NSwgMC4wMjUsIDAuMDE4NzUsIDAuMDEyNSwgMC4wMDg3NSwgMCIsIFwKLSAgICAgICAgICAiMC4wNDg3NSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAyNSwgMC4wMjUsIDAuMDE1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMDU1LCAwLjA1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDI1LCAwLjAyMTI1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMDYxMjUsIDAuMDUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMjEyNSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4wNjUsIDAuMDYsIDAuMDQ3NSwgMC4wNDEyNSwgMC4wMzUsIDAuMDMxMjUsIDAuMDIyNSIsIFwKLSAgICAgICAgICAiMC4wNjc1LCAwLjA2MjUsIDAuMDUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzM3NSwgMC4wMjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTYyNSwgMC4wNDUsIDAuMDM4NzUsIDAuMDM4NzUsIDAuMDMyNSwgMC4wMjg3NSwgMC4wMjYyNSIsIFwKLSAgICAgICAgICAiMC4wNjEyNSwgMC4wNTYyNSwgMC4wNSwgMC4wNDM3NSwgMC4wNDM3NSwgMC4wNCwgMC4wMzc1IiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNSwgMC4wNSwgMC4wNDYyNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4wNzM3NSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1NjI1LCAwLjA1MjUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMDgsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1MjUsIDAuMDUiLCBcCi0gICAgICAgICAgIjAuMDgzNzUsIDAuMDcyNSwgMC4wNjYyNSwgMC4wNjYyNSwgMC4wNiwgMC4wNTYyNSwgMC4wNTM3NSIsIFwKLSAgICAgICAgICAiMC4wODYyNSwgMC4wODEyNSwgMC4wNzUsIDAuMDY4NzUsIDAuMDY4NzUsIDAuMDU4NzUsIDAuMDU2MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFNJKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA5MzU2ODU7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwOTMzMTk1OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDkzNTY4NTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDQwNjQsIDAuMDA0MDE5LCAwLjAwNDA0MywgMC4wMDQxMDcsIDAuMDA0MTg5LCAwLjAwNDM0NCwgMC4wMDQ1NDQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDc1MTgsIDAuMDA3NDksIDAuMDA3NTEyLCAwLjAwNzU1NiwgMC4wMDc2MzUsIDAuMDA3Nzc0LCAwLjAwNzk0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlNFIjsKLSAgICAgIHNkZl9jb25kIDogIlNFID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAyNSwgLTAuMDIsIC0wLjAxMzc1LCAtMC4wMTM3NSwgLTAuMDA3NSwgLTAuMDAzNzUsIC0wLjAwMTI1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTg3NSwgLTAuMDE1LCAtMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMjUsIC0wLjAyMTI1LCAtMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDI3NSwgLTAuMDI1IiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDM3NSwgLTAuMDMzNzUsIC0wLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wNTg3NSwgLTAuMDUzNzUsIC0wLjA1Mzc1LCAtMC4wNDc1LCAtMC4wNDc1LCAtMC4wNDM3NSwgLTAuMDQxMjUiLCBcCi0gICAgICAgICAgIi0wLjA2NzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjA0NjI1LCAtMC4wNDM3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAwNjI1LCAwLjAwNSwgMC4wMTEyNSwgMC4wMTc1LCAwLjAyMzc1LCAwLjAyNzUsIDAuMDMiLCBcCi0gICAgICAgICAgIi0wLjAxMTI1LCAtMC4wMDYyNSwgMC4wMDYyNSwgMC4wMTI1LCAwLjAxMjUsIDAuMDIyNSwgMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjAxNzUsIC0wLjAxMjUsIDAsIDAuMDA2MjUsIDAuMDA2MjUsIDAuMDE2MjUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMCwgMC4wMDYyNSwgMC4wMSwgMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLCAwLjAwMzc1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjAzMzc1LCAtMC4wMjI1LCAtMC4wMTYyNSwgLTAuMDEsIC0wLjAwMzc1LCAwLCAwLjAwMjUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAxMjUsIC0wLjAwMjUsIDAiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlNFIjsKLSAgICAgIHNkZl9jb25kIDogIlNFID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0Mzc1LCAwLjAzODc1LCAwLjAzMjUsIDAuMDI2MjUsIDAuMDI2MjUsIDAuMDIyNSwgMC4wMiIsIFwKLSAgICAgICAgICAiMC4wNTUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyNzUsIDAuMDI1IiwgXAotICAgICAgICAgICIwLjA2MTI1LCAwLjA1LCAwLjA1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDMzNzUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMDY3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1LCAwLjA1LCAwLjA0LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIjAuMDczNzUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNTYyNSwgMC4wNTI1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjA4Mzc1LCAwLjA3MjUsIDAuMDY2MjUsIDAuMDY2MjUsIDAuMDYsIDAuMDU2MjUsIDAuMDUzNzUiLCBcCi0gICAgICAgICAgIjAuMDg2MjUsIDAuMDgxMjUsIDAuMDc1LCAwLjA2ODc1LCAwLjA2ODc1LCAwLjA2NSwgMC4wNjI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDMxMjUsIDAuMDIsIDAuMDEzNzUsIDAuMDA3NSwgMC4wMDEyNSwgLTAuMDA4NzUsIC0wLjAxMTI1IiwgXAotICAgICAgICAgICIwLjAzNjI1LCAwLjAzMTI1LCAwLjAxODc1LCAwLjAxMjUsIDAuMDA2MjUsIDAuMDAyNSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMDQyNSwgMC4wMzc1LCAwLjAyNSwgMC4wMTg3NSwgMC4wMTI1LCAwLjAwODc1LCAwIiwgXAotICAgICAgICAgICIwLjA0ODc1LCAwLjA0Mzc1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMTg3NSwgMC4wMTUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMDU1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDI1LCAwLjAxNSwgMC4wMTI1IiwgXAotICAgICAgICAgICIwLjA1ODc1LCAwLjA1Mzc1LCAwLjA0NzUsIDAuMDM1LCAwLjAzNSwgMC4wMjUsIDAuMDE2MjUiLCBcCi0gICAgICAgICAgIjAuMDY3NSwgMC4wNTYyNSwgMC4wNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAyNzUsIDAuMDI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IFNERkZIUVgyICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChTREZGSFFYMikgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAxLjE3OTQ3OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIGZmIChOMzAsUUJJTlQpIHsKLSAgICBuZXh0X3N0YXRlIDogIigoU0UgU0kpICsgKCFTRSBEKSkiOwotICAgIGNsb2NrZWRfb24gOiAiQ0siOwotICB9Ci0gIHBpbihDSykgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjU2NDQyOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDY1NjQ0MjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2NTYyMDg7Ci0gICAgY2xvY2sgOiB0cnVlOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNDE3MSwgMC4wMDQxNjYsIDAuMDA0MjQzLCAwLjAwNDMzMywgMC4wMDQ0NTQsIDAuMDA0Njg1LCAwLjAwNDg2NyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwOTI1OSwgMC4wMDkyNDgsIDAuMDA5MzM3LCAwLjAwOTQ2NywgMC4wMDk2MTgsIDAuMDA5OTAxLCAwLjAxMDEzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRCYhU0UmIVNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9TRV9FUV8wX0FOX1NJX0VRXzAgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wOTE0MzQsIDAuMDk5NjM0LCAwLjEwODc3NiwgMC4xMTYwNDQsIDAuMTIxOTEsIDAuMTI5NzQ2LCAwLjEzNTUzOCIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDYzMjgxLCAwLjA3MTM3OSwgMC4wODA1NjEsIDAuMDg3NTg1LCAwLjA5MzI0OCwgMC4xMDA2MDIsIDAuMTA2MTI0Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihEKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA5MTI0OTc7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwOTEwNzk1OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDkxMjQ5NzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDQzMTcsIDAuMDA0MjcyLCAwLjAwNDI5NiwgMC4wMDQzNTYsIDAuMDA0NDIyLCAwLjAwNDU5MiwgMC4wMDQ3NDkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDcyMzYsIDAuMDA3MjA3LCAwLjAwNzIzNiwgMC4wMDcyODcsIDAuMDA3MzYyLCAwLjAwNzUwOCwgMC4wMDc2NzIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIVNFIjsKLSAgICAgIHNkZl9jb25kIDogIlNFID09IDEnYjAiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAyNSwgLTAuMDIsIC0wLjAyLCAtMC4wMTM3NSwgLTAuMDEzNzUsIC0wLjAxLCAtMC4wMDc1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTg3NSwgLTAuMDE1LCAtMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMjUsIC0wLjAyMTI1LCAtMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDI3NSwgLTAuMDI1IiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzMzc1LCAtMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDU4NzUsIC0wLjA1Mzc1LCAtMC4wNTM3NSwgLTAuMDQ3NSwgLTAuMDQ3NSwgLTAuMDQzNzUsIC0wLjA0MTI1IiwgXAotICAgICAgICAgICItMC4wNjc1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNDYyNSwgLTAuMDQzNzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMDYyNSwgMC4wMDUsIDAuMDExMjUsIDAuMDE3NSwgMC4wMjM3NSwgMC4wMjc1LCAwLjAzNjI1IiwgXAotICAgICAgICAgICItMC4wMTEyNSwgMCwgMC4wMDYyNSwgMC4wMTI1LCAwLjAxODc1LCAwLjAyMjUsIDAuMDI1IiwgXAotICAgICAgICAgICItMC4wMTc1LCAtMC4wMDYyNSwgMCwgMC4wMDYyNSwgMC4wMTI1LCAwLjAxNjI1LCAwLjAxODc1IiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAsIDAuMDA2MjUsIDAuMDEsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAsIDAuMDAzNzUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDI3NSwgLTAuMDIyNSwgLTAuMDE2MjUsIC0wLjAxLCAtMC4wMDM3NSwgMCwgMC4wMDg3NSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAxMjUsIC0wLjAwMjUsIDAiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJTRSA9PSAxJ2IwIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNSwgMC4wMzg3NSwgMC4wMzI1LCAwLjAzMjUsIDAuMDI2MjUsIDAuMDIyNSwgMC4wMiIsIFwKLSAgICAgICAgICAiMC4wNTUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyNzUsIDAuMDI1IiwgXAotICAgICAgICAgICIwLjA2MTI1LCAwLjA1NjI1LCAwLjA1LCAwLjA0Mzc1LCAwLjA0Mzc1LCAwLjA0LCAwLjAzMTI1IiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNSwgMC4wNSwgMC4wNDYyNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4wNzM3NSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1NjI1LCAwLjA1MjUsIDAuMDUiLCBcCi0gICAgICAgICAgIjAuMDgzNzUsIDAuMDc4NzUsIDAuMDcyNSwgMC4wNjYyNSwgMC4wNiwgMC4wNTYyNSwgMC4wNTM3NSIsIFwKLSAgICAgICAgICAiMC4wOTI1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNzUsIDAuMDY4NzUsIDAuMDY1LCAwLjA2MjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzEyNSwgMC4wMiwgMC4wMTM3NSwgMC4wMDc1LCAwLjAwMTI1LCAtMC4wMDg3NSwgLTAuMDExMjUiLCBcCi0gICAgICAgICAgIjAuMDM2MjUsIDAuMDMxMjUsIDAuMDE4NzUsIDAuMDEyNSwgMC4wMDYyNSwgMC4wMDI1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiMC4wNDI1LCAwLjAzNzUsIDAuMDI1LCAwLjAxODc1LCAwLjAxMjUsIDAuMDA4NzUsIDAiLCBcCi0gICAgICAgICAgIjAuMDQ4NzUsIDAuMDQzNzUsIDAuMDMxMjUsIDAuMDI1LCAwLjAxODc1LCAwLjAxNSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiMC4wNTUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMjUsIDAuMDE1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMDY1LCAwLjA1Mzc1LCAwLjA0NzUsIDAuMDM1LCAwLjAzNSwgMC4wMjUsIDAuMDE2MjUiLCBcCi0gICAgICAgICAgIjAuMDY3NSwgMC4wNTYyNSwgMC4wNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAyNzUsIDAuMDI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihRKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuNjgxNTM5OwotICAgIGZ1bmN0aW9uIDogIk4zMCI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3NlbnNlIDogbm9uX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiByaXNpbmdfZWRnZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc5MDg2LCAwLjE1NjM5OSwgMC4yMTgxNTYsIDAuMjk1MzA2LCAwLjM3MjQ2LCAwLjQ0OTY0NSwgMC41MjY4NTQiLCBcCi0gICAgICAgICAgIjAuMDg3Mjc2LCAwLjE2NDU5NSwgMC4yMjYzNTEsIDAuMzAzNDcyLCAwLjM4MDY3OCwgMC40NTc4NjUsIDAuNTM0OTE1IiwgXAotICAgICAgICAgICIwLjA5NjMxMiwgMC4xNzM2MzcsIDAuMjM1Mzk4LCAwLjMxMjUwNiwgMC4zODk2OTQsIDAuNDY2OSwgMC41NDQwMTQiLCBcCi0gICAgICAgICAgIjAuMTAzNTUxLCAwLjE4MDg3NSwgMC4yNDI2MjgsIDAuMzE5NzQzLCAwLjM5NjkzNiwgMC40NzQxMjIsIDAuNTUxMTQzIiwgXAotICAgICAgICAgICIwLjEwOTI1LCAwLjE4NjU5MywgMC4yNDgzNCwgMC4zMjU0NTYsIDAuNDAyNjM2LCAwLjQ3OTgxMSwgMC41NTcwMDQiLCBcCi0gICAgICAgICAgIjAuMTE2NzgyLCAwLjE5NDEzMiwgMC4yNTU5MDUsIDAuMzMzMDA0LCAwLjQxMDE2MywgMC40ODczNTQsIDAuNTY0NTEzIiwgXAotICAgICAgICAgICIwLjEyMjQ5NywgMC4xOTk4MzMsIDAuMjYxNTc1LCAwLjMzODczNCwgMC40MTU5MDYsIDAuNDkzMDM3LCAwLjU3MDIwNCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzk2MTksIDAuMTk5ODYxLCAwLjMyOTk0NywgMC40OTM0OCwgMC42NTUxNCwgMC44MTk0NjMsIDAuOTgxMTUzIiwgXAotICAgICAgICAgICIwLjAzOTU4OCwgMC4yMDAyMDIsIDAuMzI5OTQzLCAwLjQ5Mjk2OCwgMC42NTUxOTgsIDAuODE3OTY0LCAwLjk4MjA3NCIsIFwKLSAgICAgICAgICAiMC4wMzk2MjEsIDAuMjAwMTk4LCAwLjMyOTk4NCwgMC40OTI5MTgsIDAuNjU1NzA0LCAwLjgxODM3OCwgMC45ODIzODYiLCBcCi0gICAgICAgICAgIjAuMDM5NjM5LCAwLjIwMDE5OCwgMC4zMjk5NCwgMC40OTI5NTksIDAuNjU1NDgyLCAwLjgxNzk0MiwgMC45ODE1NTYiLCBcCi0gICAgICAgICAgIjAuMDM5NjA4LCAwLjIwMDE4NCwgMC4zMjk5NiwgMC40OTI4NzYsIDAuNjU1NzM2LCAwLjgxOTM4MiwgMC45ODA4OTgiLCBcCi0gICAgICAgICAgIjAuMDM5NjIzLCAwLjE5OTk2NSwgMC4zMjk5NzMsIDAuNDkzMzQ0LCAwLjY1NTgyMSwgMC44MTgwNDksIDAuOTgxNjE1IiwgXAotICAgICAgICAgICIwLjAzOTY1NywgMC4xOTk5OTEsIDAuMzMwNDU0LCAwLjQ5MzQwMSwgMC42NTYzMzEsIDAuODE4NTczLCAwLjk4MjMzMSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTE0MzQsIDAuMTY3NjE1LCAwLjIyODI0LCAwLjMwMzk5MywgMC4zNzk3NTMsIDAuNDU1NTU1LCAwLjUzMTI1NCIsIFwKLSAgICAgICAgICAiMC4wOTk2MzQsIDAuMTc1ODE0LCAwLjIzNjQ0NCwgMC4zMTIxOTQsIDAuMzg3OTQ1LCAwLjQ2Mzc1NiwgMC41Mzk0NTYiLCBcCi0gICAgICAgICAgIjAuMTA4Nzc2LCAwLjE4NDk1NiwgMC4yNDU2MDEsIDAuMzIxMzM4LCAwLjM5NzEwNCwgMC40NzI4NDcsIDAuNTQ4NjQ5IiwgXAotICAgICAgICAgICIwLjExNjA0NSwgMC4xOTIyMjQsIDAuMjUyODUzLCAwLjMyODYwMiwgMC40MDQzNjIsIDAuNDgwMTQ5LCAwLjU1NTg1NCIsIFwKLSAgICAgICAgICAiMC4xMjE5MSwgMC4xOTgwODIsIDAuMjU4NzIyLCAwLjMzNDQ2MSwgMC40MTAyMjcsIDAuNDg1OTY3LCAwLjU2MTc2MiIsIFwKLSAgICAgICAgICAiMC4xMjk3NzcsIDAuMjA1OTU3LCAwLjI2NjU5NSwgMC4zNDIzMzQsIDAuNDE4MDk3LCAwLjQ5Mzg3OSwgMC41Njk1NjciLCBcCi0gICAgICAgICAgIjAuMTM1NTQxLCAwLjIxMTcxMywgMC4yNzIzNSwgMC4zNDgxMTYsIDAuNDIzODM3LCAwLjQ5OTU3NCwgMC41NzUzNTkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM4MzQzLCAwLjE5MzQ5OSwgMC4zMTkzODIsIDAuNDc2ODUsIDAuNjM0NTEyLCAwLjc5MDYsIDAuOTQ4MDcxIiwgXAotICAgICAgICAgICIwLjAzODM1NCwgMC4xOTMyNzEsIDAuMzE5Mjk3LCAwLjQ3Njg1NiwgMC42MzM2OTgsIDAuNzkwNTk3LCAwLjk0ODEyNyIsIFwKLSAgICAgICAgICAiMC4wMzgzNjcsIDAuMTkzNDk5LCAwLjMxODc2MiwgMC40NzY5MTMsIDAuNjMzNDkyLCAwLjc5MjAyLCAwLjk0NzgyNCIsIFwKLSAgICAgICAgICAiMC4wMzgzNjksIDAuMTkzNSwgMC4zMTkzNDMsIDAuNDc2MywgMC42MzM4NjksIDAuNzkwNTU1LCAwLjk0ODY3NyIsIFwKLSAgICAgICAgICAiMC4wMzgzOCwgMC4xOTM0OTUsIDAuMzE5NDI4LCAwLjQ3NjM3NSwgMC42MzM1MTYsIDAuNzkwNzkzLCAwLjk0NzgzMiIsIFwKLSAgICAgICAgICAiMC4wMzg0NzMsIDAuMTkzNTA2LCAwLjMxOTQyNiwgMC40NzYyODQsIDAuNjMzNTE3LCAwLjc5MDgyMiwgMC45NDg0MDUiLCBcCi0gICAgICAgICAgIjAuMDM4MzY3LCAwLjE5MzQ4OSwgMC4zMTkwMjcsIDAuNDc2MDg3LCAwLjYzNDQ3MSwgMC43OTIyMTQsIDAuOTQ5NCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDk5NzksIDAuMDA5OTQzLCAwLjAwOTkxOSwgMC4wMDk5MDYsIDAuMDA5ODk2LCAwLjAwOTg5MSwgMC4wMDk4ODciLCBcCi0gICAgICAgICAgIjAuMDA5OTU3LCAwLjAwOTkyNCwgMC4wMDk5LCAwLjAwOTg4OCwgMC4wMDk4NzYsIDAuMDA5ODc0LCAwLjAwOTg2OSIsIFwKLSAgICAgICAgICAiMC4wMTAwNTQsIDAuMDEwMDIyLCAwLjAwOTk5OCwgMC4wMDk5ODIsIDAuMDA5OTczLCAwLjAwOTk2NSwgMC4wMDk5NjEiLCBcCi0gICAgICAgICAgIjAuMDEwMTM5LCAwLjAxMDExMiwgMC4wMTAwODgsIDAuMDEwMDcxLCAwLjAxMDA2MSwgMC4wMTAwNTQsIDAuMDEwMDQ5IiwgXAotICAgICAgICAgICIwLjAxMDI4MiwgMC4wMTAyNjIsIDAuMDEwMjM4LCAwLjAxMDIyMSwgMC4wMTAyMSwgMC4wMTAyMDUsIDAuMDEwMTk3IiwgXAotICAgICAgICAgICIwLjAxMDQ2NywgMC4wMTA0NTIsIDAuMDEwNDI3LCAwLjAxMDQwNSwgMC4wMTAzOTQsIDAuMDEwMzg1LCAwLjAxMDM4IiwgXAotICAgICAgICAgICIwLjAxMDY3LCAwLjAxMDY1NywgMC4wMTA2NjQsIDAuMDEwNjQyLCAwLjAxMDYzNSwgMC4wMTA2MiwgMC4wMTA2MTUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTA3MTcsIDAuMDEwODEsIDAuMDEwODIzLCAwLjAxMDgzMSwgMC4wMTA4MzQsIDAuMDEwODM2LCAwLjAxMDgzOCIsIFwKLSAgICAgICAgICAiMC4wMTA3MTMsIDAuMDEwODA1LCAwLjAxMDgxOCwgMC4wMTA4MjYsIDAuMDEwODI5LCAwLjAxMDgzMiwgMC4wMTA4MzMiLCBcCi0gICAgICAgICAgIjAuMDEwODI0LCAwLjAxMDkxNiwgMC4wMTA5MjksIDAuMDEwOTM1LCAwLjAxMDkzOSwgMC4wMTA5NDEsIDAuMDEwOTQzIiwgXAotICAgICAgICAgICIwLjAxMDk0LCAwLjAxMTAzMSwgMC4wMTEwNDIsIDAuMDExMDQ5LCAwLjAxMTA1MiwgMC4wMTEwNTQsIDAuMDExMDU2IiwgXAotICAgICAgICAgICIwLjAxMTA5LCAwLjAxMTE4LCAwLjAxMTE5MSwgMC4wMTExOTcsIDAuMDExMiwgMC4wMTEyMDIsIDAuMDExMjAyIiwgXAotICAgICAgICAgICIwLjAxMTM0NCwgMC4wMTE0MjksIDAuMDExNDQsIDAuMDExNDQ0LCAwLjAxMTQyNSwgMC4wMTE0NDgsIDAuMDExNDQ5IiwgXAotICAgICAgICAgICIwLjAxMTUxMiwgMC4wMTE2MzYsIDAuMDExNjQ0LCAwLjAxMTY0OSwgMC4wMTE2NSwgMC4wMTE2NTIsIDAuMDExNjUyIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTRSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNzA3Mzg7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNzA3Mzg7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNzA2NTI7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA2ODQxLCAwLjAwNjgzNSwgMC4wMDY5MTIsIDAuMDA3MDE3LCAwLjAwNzE3MiwgMC4wMDczNDcsIDAuMDA3NTQ0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA4NTM2LCAwLjAwODU1MywgMC4wMDg2NzYsIDAuMDA4ODc1LCAwLjAwOTEzMSwgMC4wMDk1MzksIDAuMDA5OTI4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEJlNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9TSV9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAyNSwgLTAuMDEzNzUsIC0wLjAxMzc1LCAtMC4wMDc1LCAtMC4wMDc1LCAtMC4wMDM3NSwgLTAuMDAxMjUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA4NzUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDMxMjUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAyNSwgLTAuMDIxMjUsIC0wLjAxODc1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMzEyNSwgLTAuMDI3NSwgLTAuMDI1IiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDM3NSwgLTAuMDMzNzUsIC0wLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wNTg3NSwgLTAuMDUzNzUsIC0wLjA1Mzc1LCAtMC4wNDc1LCAtMC4wNDc1LCAtMC4wNDM3NSwgLTAuMDQxMjUiLCBcCi0gICAgICAgICAgIi0wLjA2NzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjA0NjI1LCAtMC4wNDM3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAsIDAuMDExMjUsIDAuMDE3NSwgMC4wMjM3NSwgMC4wMjM3NSwgMC4wMzM3NSwgMC4wMzYyNSIsIFwKLSAgICAgICAgICAiLTAuMDA1LCAwLCAwLjAwNjI1LCAwLjAxMjUsIDAuMDE4NzUsIDAuMDI4NzUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjAxMTI1LCAtMC4wMDYyNSwgMCwgMC4wMDYyNSwgMC4wMTI1LCAwLjAxNjI1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDE3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAsIDAuMDA2MjUsIDAuMDEsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAsIDAuMDAzNzUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDMzNzUsIC0wLjAyMjUsIC0wLjAxNjI1LCAtMC4wMSwgLTAuMDEsIDAsIDAuMDAyNSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDg3NSwgMCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJEJiFTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzFfQU5fU0lfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMTI1LCAtMC4wMDEyNSwgMC4wMDUsIDAuMDExMjUsIDAuMDE3NSwgMC4wMjEyNSwgMC4wMjM3NSIsIFwKLSAgICAgICAgICAiLTAuMDE3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAsIDAuMDA2MjUsIDAuMDE2MjUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAsIDAuMDAzNzUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAyNSwgLTAuMDEyNSwgLTAuMDA2MjUsIC0wLjAwNjI1LCAwLjAwMzc1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIC0wLjAwMjUsIDAiLCBcCi0gICAgICAgICAgIi0wLjA0LCAtMC4wMzUsIC0wLjAyMjUsIC0wLjAxNjI1LCAtMC4wMTYyNSwgLTAuMDA2MjUsIC0wLjAwMzc1IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDA4NzUsIC0wLjAwNjI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDM3NSwgLTAuMDMyNSwgLTAuMDI2MjUsIC0wLjAyLCAtMC4wMiwgLTAuMDE2MjUsIC0wLjAxMzc1IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDIxMjUsIC0wLjAxODc1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMjc1LCAtMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjA1NSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDMzNzUsIC0wLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wNjEyNSwgLTAuMDUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDQzNzUsIC0wLjA0LCAtMC4wMzc1IiwgXAotICAgICAgICAgICItMC4wNjUsIC0wLjA2LCAtMC4wNTM3NSwgLTAuMDQ3NSwgLTAuMDQ3NSwgLTAuMDQzNzUsIC0wLjA0MTI1IiwgXAotICAgICAgICAgICItMC4wNjc1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNDYyNSwgLTAuMDQzNzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEJlNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9TSV9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0Mzc1LCAwLjAzMjUsIDAuMDI2MjUsIDAuMDI2MjUsIDAuMDIsIDAuMDE2MjUsIDAuMDEzNzUiLCBcCi0gICAgICAgICAgIjAuMDQ4NzUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMzEyNSwgMC4wMjc1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiMC4wNjEyNSwgMC4wNSwgMC4wNDM3NSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzMzc1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNSwgMC4wNSwgMC4wNDYyNSwgMC4wMzc1IiwgXAotICAgICAgICAgICIwLjA3Mzc1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDU2MjUsIDAuMDUyNSwgMC4wNSIsIFwKLSAgICAgICAgICAiMC4wODM3NSwgMC4wNzg3NSwgMC4wNzI1LCAwLjA2NjI1LCAwLjA2NjI1LCAwLjA2MjUsIDAuMDUzNzUiLCBcCi0gICAgICAgICAgIjAuMDkyNSwgMC4wODc1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjUsIDAuMDYyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyNSwgMC4wMiwgMC4wMDc1LCAwLjAwMTI1LCAtMC4wMDUsIC0wLjAwODc1LCAtMC4wMTc1IiwgXAotICAgICAgICAgICIwLjAzLCAwLjAyNSwgMC4wMTg3NSwgMC4wMDYyNSwgMC4wMDYyNSwgLTAuMDAzNzUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICIwLjA0MjUsIDAuMDMxMjUsIDAuMDI1LCAwLjAxODc1LCAwLjAxMjUsIDAuMDAyNSwgMCIsIFwKLSAgICAgICAgICAiMC4wNDg3NSwgMC4wNDM3NSwgMC4wMzEyNSwgMC4wMjUsIDAuMDE4NzUsIDAuMDE1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICIwLjA1NSwgMC4wNSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMjEyNSwgMC4wMTI1IiwgXAotICAgICAgICAgICIwLjA2NSwgMC4wNiwgMC4wNDc1LCAwLjA0MTI1LCAwLjAzNSwgMC4wMzEyNSwgMC4wMjI1IiwgXAotICAgICAgICAgICIwLjA3Mzc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDUsIDAuMDQzNzUsIDAuMDMzNzUsIDAuMDMxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIkQmIVNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMV9BTl9TSV9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzNzUsIDAuMDMyNSwgMC4wMiwgMC4wMTM3NSwgMC4wMDc1LCAwLjAwMzc1LCAtMC4wMDUiLCBcCi0gICAgICAgICAgIjAuMDQ4NzUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMjUsIDAuMDE4NzUsIDAuMDA4NzUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMDU1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDI1LCAwLjAxNSwgMC4wMTI1IiwgXAotICAgICAgICAgICIwLjA1NSwgMC4wNSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMjEyNSwgMC4wMTI1IiwgXAotICAgICAgICAgICIwLjA2MTI1LCAwLjA1NjI1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDI3NSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4wNjUsIDAuMDYsIDAuMDQ3NSwgMC4wNDEyNSwgMC4wMzUsIDAuMDMxMjUsIDAuMDIyNSIsIFwKLSAgICAgICAgICAiMC4wNzM3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA0Mzc1LCAwLjA0Mzc1LCAwLjAzMzc1LCAwLjAzMTI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU2MjUsIDAuMDUxMjUsIDAuMDQ1LCAwLjAzODc1LCAwLjAzODc1LCAwLjAyODc1LCAwLjAyNjI1IiwgXAotICAgICAgICAgICIwLjA2MTI1LCAwLjA1NjI1LCAwLjA1LCAwLjA0Mzc1LCAwLjA0Mzc1LCAwLjA0LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIjAuMDY3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1NjI1LCAwLjA1LCAwLjA0NjI1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjA3Mzc1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDU2MjUsIDAuMDUyNSwgMC4wNSIsIFwKLSAgICAgICAgICAiMC4wOCwgMC4wNjg3NSwgMC4wNjI1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDUyNSwgMC4wNSIsIFwKLSAgICAgICAgICAiMC4wODM3NSwgMC4wNzg3NSwgMC4wNzI1LCAwLjA2NjI1LCAwLjA2NjI1LCAwLjA1NjI1LCAwLjA1Mzc1IiwgXAotICAgICAgICAgICIwLjA4NjI1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjg3NSwgMC4wNjUsIDAuMDYyNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oU0kpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDkyODc4MzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA5MjY0MTg7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwOTI4NzgzOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzk0NSwgMC4wMDM4OTcsIDAuMDAzOTE2LCAwLjAwMzk4NSwgMC4wMDQwNzIsIDAuMDA0MjI2LCAwLjAwNDM4NyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNzU3NCwgMC4wMDc1NDYsIDAuMDA3NTY5LCAwLjAwNzYxNCwgMC4wMDc2OTEsIDAuMDA3ODM3LCAwLjAwODAwMSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJTRSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMjUsIC0wLjAyLCAtMC4wMTM3NSwgLTAuMDEzNzUsIC0wLjAwNzUsIC0wLjAwMzc1LCAtMC4wMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDE4NzUsIC0wLjAxNSwgLTAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDI1LCAtMC4wMjEyNSwgLTAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAyNzUsIC0wLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzNzUsIC0wLjAzMzc1LCAtMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDU4NzUsIC0wLjA1Mzc1LCAtMC4wNTM3NSwgLTAuMDQ3NSwgLTAuMDQ3NSwgLTAuMDQzNzUsIC0wLjA0MTI1IiwgXAotICAgICAgICAgICItMC4wNjc1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNDYyNSwgLTAuMDQzNzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMDYyNSwgMC4wMDUsIDAuMDExMjUsIDAuMDE3NSwgMC4wMjM3NSwgMC4wMjc1LCAwLjAzIiwgXAotICAgICAgICAgICItMC4wMTEyNSwgMCwgMC4wMDYyNSwgMC4wMTI1LCAwLjAxODc1LCAwLjAyMjUsIDAuMDI1IiwgXAotICAgICAgICAgICItMC4wMTc1LCAtMC4wMDYyNSwgMCwgMC4wMDYyNSwgMC4wMTI1LCAwLjAxNjI1LCAwLjAxODc1IiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAsIDAuMDA2MjUsIDAuMDEsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMCwgMC4wMDM3NSwgMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wMjc1LCAtMC4wMjI1LCAtMC4wMTYyNSwgLTAuMDEsIC0wLjAwMzc1LCAwLCAwLjAwMjUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMTI1LCAtMC4wMDI1LCAwIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJTRSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDM3NSwgMC4wMzg3NSwgMC4wMzI1LCAwLjAyNjI1LCAwLjAyNjI1LCAwLjAyMjUsIDAuMDIiLCBcCi0gICAgICAgICAgIjAuMDU1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMjc1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiMC4wNjEyNSwgMC4wNTYyNSwgMC4wNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzMzc1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNSwgMC4wNSwgMC4wNDYyNSwgMC4wMzc1IiwgXAotICAgICAgICAgICIwLjA3Mzc1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDU2MjUsIDAuMDUyNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4wODM3NSwgMC4wNzI1LCAwLjA2NjI1LCAwLjA2NjI1LCAwLjA2LCAwLjA1NjI1LCAwLjA1Mzc1IiwgXAotICAgICAgICAgICIwLjA5MjUsIDAuMDgxMjUsIDAuMDc1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjUsIDAuMDYyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzMTI1LCAwLjAyLCAwLjAxMzc1LCAwLjAwNzUsIDAuMDAxMjUsIC0wLjAwODc1LCAtMC4wMTEyNSIsIFwKLSAgICAgICAgICAiMC4wMzYyNSwgMC4wMzEyNSwgMC4wMTg3NSwgMC4wMTI1LCAwLjAwNjI1LCAwLjAwMjUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICIwLjA0MjUsIDAuMDM3NSwgMC4wMjUsIDAuMDE4NzUsIDAuMDEyNSwgMC4wMDg3NSwgMCIsIFwKLSAgICAgICAgICAiMC4wNDg3NSwgMC4wNDM3NSwgMC4wMzEyNSwgMC4wMjUsIDAuMDE4NzUsIDAuMDE1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICIwLjA1NSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMTUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4wNjUsIDAuMDUzNzUsIDAuMDQ3NSwgMC4wMzUsIDAuMDM1LCAwLjAyNSwgMC4wMjI1IiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDU2MjUsIDAuMDUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMjc1LCAwLjAyNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IFNERkZRWDQgKgotICogLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoU0RGRlFYNCkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAxLjMwMzA5OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIGZmIChOMzAsUUJJTlQpIHsKLSAgICBuZXh0X3N0YXRlIDogIigoU0UgU0kpICsgKCFTRSBEKSkiOwotICAgIGNsb2NrZWRfb24gOiAiQ0siOwotICB9Ci0gIHBpbihDSykgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjI5NjE3OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYyOTQ3NjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2Mjk2MTc7Ci0gICAgY2xvY2sgOiB0cnVlOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzcyOSwgMC4wMDM3MiwgMC4wMDM4MDQsIDAuMDAzODk0LCAwLjAwNDAyNSwgMC4wMDQyNjIsIDAuMDA0NDMxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA4MTkzLCAwLjAwODIwNCwgMC4wMDgyOCwgMC4wMDg0MDQsIDAuMDA4NTYzLCAwLjAwODcyOSwgMC4wMDg5MzgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFEJiFTRSYhU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1NFX0VRXzBfQU5fU0lfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjA4MzMyLCAwLjA5MTUxNiwgMC4xMDA2NDUsIDAuMTA4MDAyLCAwLjExMzgzMywgMC4xMjE2MTUsIDAuMTI3MjczIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wNjQxNTcsIDAuMDcyMjczLCAwLjA4MTM5MywgMC4wODgzMzYsIDAuMDkzOTkyLCAwLjEwMTQwMiwgMC4xMDY3MDMiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEQpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY2MTY1ODsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2NjAzNDM7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjYxNjU4OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzIyNywgMC4wMDMyMDUsIDAuMDAzMjI0LCAwLjAwMzI3MSwgMC4wMDMzMzIsIDAuMDAzNDQ3LCAwLjAwMzU3MSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNTc3LCAwLjAwNTc1NCwgMC4wMDU3NzQsIDAuMDA1ODI0LCAwLjAwNTg4NCwgMC4wMDU5OTUsIDAuMDA2MTEyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJTRSA9PSAxJ2IwIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMzEyNSwgLTAuMDI2MjUsIC0wLjAyLCAtMC4wMiwgLTAuMDIsIC0wLjAxNjI1LCAtMC4wMTM3NSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAzMTI1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMjUsIC0wLjAyMTI1LCAtMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDMxMjUsIC0wLjAyNzUsIC0wLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzM3NSwgLTAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjA2MTI1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDQsIC0wLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjA2NSwgLTAuMDYsIC0wLjA2LCAtMC4wNTM3NSwgLTAuMDUzNzUsIC0wLjA1LCAtMC4wNDc1IiwgXAotICAgICAgICAgICItMC4wNzM3NSwgLTAuMDY4NzUsIC0wLjA2MjUsIC0wLjA2MjUsIC0wLjA2MjUsIC0wLjA1MjUsIC0wLjA1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDEyNSwgLTAuMDAxMjUsIDAuMDA1LCAwLjAxMTI1LCAwLjAxMTI1LCAwLjAyMTI1LCAwLjAyMzc1IiwgXAotICAgICAgICAgICItMC4wMTc1LCAtMC4wMDYyNSwgMCwgMC4wMDYyNSwgMC4wMDYyNSwgMC4wMTYyNSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLCAwLCAwLjAxLCAwLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIC0wLjAwNjI1LCAwLjAwMzc1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIC0wLjAwMjUsIDAiLCBcCi0gICAgICAgICAgIi0wLjAzMzc1LCAtMC4wMjg3NSwgLTAuMDIyNSwgLTAuMDIyNSwgLTAuMDE2MjUsIC0wLjAxMjUsIC0wLjAwMzc1IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzEyNSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxNSwgLTAuMDEyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIVNFIjsKLSAgICAgIHNkZl9jb25kIDogIlNFID09IDEnYjAiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1NjI1LCAwLjA1MTI1LCAwLjA0NSwgMC4wMzg3NSwgMC4wMzg3NSwgMC4wMzUsIDAuMDI2MjUiLCBcCi0gICAgICAgICAgIjAuMDYxMjUsIDAuMDU2MjUsIDAuMDUsIDAuMDQzNzUsIDAuMDQzNzUsIDAuMDQsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiMC4wNzM3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1NjI1LCAwLjA1LCAwLjA0NjI1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjA4LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNTI1LCAwLjA1IiwgXAotICAgICAgICAgICIwLjA4NjI1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1ODc1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICIwLjA5NjI1LCAwLjA4NSwgMC4wNzg3NSwgMC4wNzg3NSwgMC4wNzI1LCAwLjA2ODc1LCAwLjA2NjI1IiwgXAotICAgICAgICAgICIwLjA5ODc1LCAwLjA5Mzc1LCAwLjA4NzUsIDAuMDgxMjUsIDAuMDgxMjUsIDAuMDc3NSwgMC4wNzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDM3NSwgMC4wMzg3NSwgMC4wMjYyNSwgMC4wMiwgMC4wMTM3NSwgMC4wMSwgMC4wMDEyNSIsIFwKLSAgICAgICAgICAiMC4wNDg3NSwgMC4wNDM3NSwgMC4wMzEyNSwgMC4wMjUsIDAuMDE4NzUsIDAuMDE1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICIwLjA1NSwgMC4wNSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMjEyNSwgMC4wMTI1IiwgXAotICAgICAgICAgICIwLjA2MTI1LCAwLjA1NjI1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDM3NSwgMC4wMjc1LCAwLjAxODc1IiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDYyNSwgMC4wNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzMzc1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiMC4wNzc1LCAwLjA2NjI1LCAwLjA2LCAwLjA1Mzc1LCAwLjA0NzUsIDAuMDM3NSwgMC4wMzUiLCBcCi0gICAgICAgICAgIjAuMDgsIDAuMDc1LCAwLjA2ODc1LCAwLjA1NjI1LCAwLjA1NjI1LCAwLjA0NjI1LCAwLjA0Mzc1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihRKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDEuMzczODY7Ci0gICAgZnVuY3Rpb24gOiAiTjMwIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBub25fdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJpc2luZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3NzA5NCwgMC4xMzE2MjUsIDAuMTg1NTQ4LCAwLjIyNDA3LCAwLjI4NTcyNSwgMC4zMzk3NzcsIDAuNDE2Nzk4IiwgXAotICAgICAgICAgICIwLjA4NTIzNSwgMC4xMzk3NjgsIDAuMTkzNjg0LCAwLjIzMjIxMiwgMC4yOTM5MjksIDAuMzQ3OTE2LCAwLjQyNDk0IiwgXAotICAgICAgICAgICIwLjA5NDI1NywgMC4xNDg3OTIsIDAuMjAyNzE3LCAwLjI0MTIzNSwgMC4zMDI4OTMsIDAuMzU2OTMzLCAwLjQzMzk1OSIsIFwKLSAgICAgICAgICAiMC4xMDE1NDgsIDAuMTU2MDg4LCAwLjIxMDAwNiwgMC4yNDg1MzIsIDAuMzEwMTkyLCAwLjM2NDIzMywgMC40NDEyNTgiLCBcCi0gICAgICAgICAgIjAuMTA3MzM2LCAwLjE2MTg3MiwgMC4yMTU4MDEsIDAuMjU0MzM3LCAwLjMxNTk3NSwgMC4zNzAwMDMsIDAuNDQ3MDg2IiwgXAotICAgICAgICAgICIwLjExNTAwMiwgMC4xNjk1NCwgMC4yMjM0NjQsIDAuMjYxOTg0LCAwLjMyMzY3LCAwLjM3NzYwNCwgMC40NTQ3MDIiLCBcCi0gICAgICAgICAgIjAuMTIwODA1LCAwLjE3NTM0OSwgMC4yMjkyNywgMC4yNjc2OTksIDAuMzI5NTE5LCAwLjM4MzQwNywgMC40NjA0ODgiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjQxNDQsIDAuMTM1MDczLCAwLjI0ODc3OSwgMC4zMzAxNDgsIDAuNDYwMDYxLCAwLjU3MzU4NywgMC43MzcyMTYiLCBcCi0gICAgICAgICAgIjAuMDI0MTQzLCAwLjEzNTA3MywgMC4yNDg2NjksIDAuMzMwMTQxLCAwLjQ1OTc3NiwgMC41NzM1ODgsIDAuNzM3MiIsIFwKLSAgICAgICAgICAiMC4wMjQxNTMsIDAuMTM1MDczLCAwLjI0ODc5MSwgMC4zMzAxMzgsIDAuNDYwMDY2LCAwLjU3MzQ0MiwgMC43MzcxOTQiLCBcCi0gICAgICAgICAgIjAuMDI0MTUxLCAwLjEzNTA3MywgMC4yNDg2MDcsIDAuMzMwMTI5LCAwLjQ1OTk0MywgMC41NzM1ODEsIDAuNzM3MTc5IiwgXAotICAgICAgICAgICIwLjAyNDEzOCwgMC4xMzUwNjcsIDAuMjQ4NzczLCAwLjMzMDIxNywgMC40NjAwMTIsIDAuNTczNDk4LCAwLjczNjA2OSIsIFwKLSAgICAgICAgICAiMC4wMjQxNDgsIDAuMTM0OTkxLCAwLjI0ODY0MSwgMC4zMjk5MiwgMC40NTk4MjUsIDAuNTczOTEyLCAwLjczNzA3OCIsIFwKLSAgICAgICAgICAiMC4wMjQxNjYsIDAuMTM1MDIzLCAwLjI0ODc0MiwgMC4zMzAyNDQsIDAuNDU5NzY1LCAwLjU3Mzg0NCwgMC43MzcwMyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4MzMyLCAwLjEzNzg2LCAwLjE5MTY2NSwgMC4yMzAwOTQsIDAuMjkxNTkxLCAwLjM0NTM2NSwgMC40MjIxODQiLCBcCi0gICAgICAgICAgIjAuMDkxNTE2LCAwLjE0NjA1OCwgMC4xOTk4NjUsIDAuMjM4MjkyLCAwLjI5OTc5MywgMC4zNTM1ODgsIDAuNDMwNDEzIiwgXAotICAgICAgICAgICIwLjEwMDY0NSwgMC4xNTUxODcsIDAuMjA4OTk4LCAwLjI0NzQyLCAwLjMwODkyNSwgMC4zNjI2OTQsIDAuNDM5NTA2IiwgXAotICAgICAgICAgICIwLjEwODAwMiwgMC4xNjI1NDIsIDAuMjE2MzU5LCAwLjI1NDc3MSwgMC4zMTYyNzEsIDAuMzcwMDQ0LCAwLjQ0Njg2NCIsIFwKLSAgICAgICAgICAiMC4xMTM4MzMsIDAuMTY4Mzc1LCAwLjIyMjE4LCAwLjI2MDYsIDAuMzIyMTA0LCAwLjM3NTg3NSwgMC40NTI3MDciLCBcCi0gICAgICAgICAgIjAuMTIxNjE1LCAwLjE3NjE2NSwgMC4yMjk5NjMsIDAuMjY4MzgzLCAwLjMyOTg5MywgMC4zODM2MjgsIDAuNDYwNDkiLCBcCi0gICAgICAgICAgIjAuMTI3MzY5LCAwLjE4MTkxNSwgMC4yMzU3MTIsIDAuMjc0MTgyLCAwLjMzNTYyOSwgMC4zODk0NTQsIDAuNDY2MjI5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDIzNDEyLCAwLjEzMjYyNSwgMC4yNDQyNDIsIDAuMzI0NDc2LCAwLjQ1MjUyNiwgMC41NjQ0ODUsIDAuNzI0MzQ5IiwgXAotICAgICAgICAgICIwLjAyMzM5OCwgMC4xMzI2MjQsIDAuMjQ0NDk2LCAwLjMyNDQ4NCwgMC40NTI1MzcsIDAuNTY0NDgyLCAwLjcyNDUzNCIsIFwKLSAgICAgICAgICAiMC4wMjM0MDcsIDAuMTMyNjU3LCAwLjI0NDQ5NiwgMC4zMjQxMDIsIDAuNDUyNTQyLCAwLjU2NDQ4NiwgMC43MjQ0MDgiLCBcCi0gICAgICAgICAgIjAuMDIzNDE1LCAwLjEzMjYyMywgMC4yNDQ1NSwgMC4zMjQ0NjIsIDAuNDUyNTI1LCAwLjU2NDQ4MywgMC43MjQzNSIsIFwKLSAgICAgICAgICAiMC4wMjM0MzUsIDAuMTMyNjI1LCAwLjI0NDQ5OSwgMC4zMjQ0NDgsIDAuNDUyNTMyLCAwLjU2NDQ3OSwgMC43MjQ0NjgiLCBcCi0gICAgICAgICAgIjAuMDIzNDEsIDAuMTMyNjE4LCAwLjI0NDQ1NiwgMC4zMjQ1MjUsIDAuNDUxNzcxLCAwLjU2NDQ3MiwgMC43MjQ0NzMiLCBcCi0gICAgICAgICAgIjAuMDIzNDA3LCAwLjEzMjY2MiwgMC4yNDQyMTQsIDAuMzIzOTg0LCAwLjQ1MjUwMiwgMC41NjMzNzksIDAuNzI0NDQ3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEyODExLCAwLjAxMjg5MSwgMC4wMTI4NywgMC4wMTI4NjMsIDAuMDEyODUxLCAwLjAxMjgzOSwgMC4wMTI4MzMiLCBcCi0gICAgICAgICAgIjAuMDEyNzk0LCAwLjAxMjg3NywgMC4wMTI4NTUsIDAuMDEyODQ5LCAwLjAxMjgzMiwgMC4wMTI4MjUsIDAuMDEyODE4IiwgXAotICAgICAgICAgICIwLjAxMjg3NywgMC4wMTI5NjMsIDAuMDEyOTQyLCAwLjAxMjkzNSwgMC4wMTI5MjMsIDAuMDEyOTEsIDAuMDEyOTAzIiwgXAotICAgICAgICAgICIwLjAxMjk2MiwgMC4wMTMwNTIsIDAuMDEzMDM1LCAwLjAxMzAyLCAwLjAxMzAwOSwgMC4wMTI5OTksIDAuMDEyOTkxIiwgXAotICAgICAgICAgICIwLjAxMzExNiwgMC4wMTMyMDIsIDAuMDEzMTgyLCAwLjAxMzE3LCAwLjAxMzE1OCwgMC4wMTMxNDcsIDAuMDEzMTQiLCBcCi0gICAgICAgICAgIjAuMDEzMzA0LCAwLjAxMzM4OCwgMC4wMTMzNzUsIDAuMDEzMzU4LCAwLjAxMzM0NCwgMC4wMTMzMzMsIDAuMDEzMzI2IiwgXAotICAgICAgICAgICIwLjAxMzUyMSwgMC4wMTM2MjUsIDAuMDEzNTYzLCAwLjAxMzU4NSwgMC4wMTM1NjksIDAuMDEzNTY5LCAwLjAxMzU1NyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEyNzQ2LCAwLjAxMjk3NiwgMC4wMTMwMTQsIDAuMDEzMDI1LCAwLjAxMzAzNywgMC4wMTMwNDIsIDAuMDEzMDQ3IiwgXAotICAgICAgICAgICIwLjAxMjczNywgMC4wMTI5NywgMC4wMTMwMDgsIDAuMDEzMDE5LCAwLjAxMzAzLCAwLjAxMzAzNiwgMC4wMTMwNDEiLCBcCi0gICAgICAgICAgIjAuMDEyODQ0LCAwLjAxMzA3OCwgMC4wMTMxMTUsIDAuMDEzMTI3LCAwLjAxMzEzNywgMC4wMTMxNDMsIDAuMDEzMTQ4IiwgXAotICAgICAgICAgICIwLjAxMjk0MSwgMC4wMTMxNzMsIDAuMDEzMjA5LCAwLjAxMzIyLCAwLjAxMzIzMSwgMC4wMTMyMzcsIDAuMDEzMjQxIiwgXAotICAgICAgICAgICIwLjAxMzA5OCwgMC4wMTMzMzMsIDAuMDEzMzY5LCAwLjAxMzM3OSwgMC4wMTMzOSwgMC4wMTMzOTUsIDAuMDEzNCIsIFwKLSAgICAgICAgICAiMC4wMTMzNTEsIDAuMDEzNTc4LCAwLjAxMzYxMywgMC4wMTM2MjIsIDAuMDEzNjMxLCAwLjAxMzYzNiwgMC4wMTM2NCIsIFwKLSAgICAgICAgICAiMC4wMTM1NCwgMC4wMTM3NzUsIDAuMDEzODA3LCAwLjAxMzgxNywgMC4wMTM4MjgsIDAuMDEzODMyLCAwLjAxMzgzMiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oU0UpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTQxMTY3OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTQxMTY3OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTQxMTM7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA1NDEzLCAwLjAwNTQzNywgMC4wMDU1MTgsIDAuMDA1NjM1LCAwLjAwNTc5MSwgMC4wMDYwMTYsIDAuMDA2MjE1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA3MTE4LCAwLjAwNzE0NywgMC4wMDcyNzIsIDAuMDA3NDQ1LCAwLjAwNzY3MSwgMC4wMDgwNDcsIDAuMDA4MzkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUQmU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1NJX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDI1LCAtMC4wMiwgLTAuMDIsIC0wLjAxMzc1LCAtMC4wMTM3NSwgLTAuMDEsIC0wLjAwNzUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTUsIC0wLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzNzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMzEyNSwgLTAuMDI3NSwgLTAuMDI1IiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzMzc1LCAtMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDYxMjUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wNCwgLTAuMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDcxMjUsIC0wLjA2NjI1LCAtMC4wNiwgLTAuMDYsIC0wLjA1Mzc1LCAtMC4wNSwgLTAuMDQ3NSIsIFwKLSAgICAgICAgICAiLTAuMDczNzUsIC0wLjA2ODc1LCAtMC4wNjg3NSwgLTAuMDYyNSwgLTAuMDYyNSwgLTAuMDU4NzUsIC0wLjA1NjI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDA2MjUsIC0wLjAwMTI1LCAwLjAxMTI1LCAwLjAxMTI1LCAwLjAxNzUsIDAuMDIxMjUsIDAuMDMiLCBcCi0gICAgICAgICAgIi0wLjAxMTI1LCAtMC4wMDYyNSwgMCwgMC4wMDYyNSwgMC4wMTI1LCAwLjAxNjI1LCAwLjAxODc1IiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAsIDAsIDAuMDEsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMTI1LCAtMC4wMDYyNSwgLTAuMDAyNSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAxMjUsIC0wLjAwODc1LCAwIiwgXAotICAgICAgICAgICItMC4wNCwgLTAuMDM1LCAtMC4wMjg3NSwgLTAuMDIyNSwgLTAuMDIyNSwgLTAuMDEyNSwgLTAuMDEiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMjEyNSwgLTAuMDE4NzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiRCYhU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8xX0FOX1NJX0VRXzAgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDEyNSwgLTAuMDA3NSwgLTAuMDAxMjUsIDAuMDA1LCAwLjAxMTI1LCAwLjAxNSwgMC4wMTc1IiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAsIDAsIDAuMDEsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgLTAuMDA2MjUsIDAuMDAzNzUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgLTAuMDAyNSwgMCIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwODc1LCAwIiwgXAotICAgICAgICAgICItMC4wNCwgLTAuMDM1LCAtMC4wMjg3NSwgLTAuMDIyNSwgLTAuMDE2MjUsIC0wLjAxMjUsIC0wLjAwMzc1IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDE1LCAtMC4wMDYyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAzNzUsIC0wLjAzMjUsIC0wLjAyNjI1LCAtMC4wMjYyNSwgLTAuMDI2MjUsIC0wLjAyMjUsIC0wLjAyIiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDM3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAzMTI1LCAtMC4wMjc1LCAtMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wNDM3NSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzNzUsIC0wLjAzMzc1LCAtMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzM3NSwgLTAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjA2MTI1LCAtMC4wNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wNDM3NSwgLTAuMDQsIC0wLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjA2NSwgLTAuMDYsIC0wLjA1Mzc1LCAtMC4wNDc1LCAtMC4wNDc1LCAtMC4wNDM3NSwgLTAuMDQxMjUiLCBcCi0gICAgICAgICAgIi0wLjA2NzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjA0NjI1LCAtMC4wNDM3NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUQmU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1NJX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU2MjUsIDAuMDQ1LCAwLjAzODc1LCAwLjAzMjUsIDAuMDMyNSwgMC4wMjg3NSwgMC4wMjYyNSIsIFwKLSAgICAgICAgICAiMC4wNjEyNSwgMC4wNSwgMC4wNDM3NSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzMzc1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICIwLjA3Mzc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDUsIDAuMDUsIDAuMDQ2MjUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMDgsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1MjUsIDAuMDUiLCBcCi0gICAgICAgICAgIjAuMDg2MjUsIDAuMDgxMjUsIDAuMDc1LCAwLjA2ODc1LCAwLjA2ODc1LCAwLjA1ODc1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICIwLjA5NjI1LCAwLjA5MTI1LCAwLjA4NSwgMC4wNzg3NSwgMC4wNzg3NSwgMC4wNzUsIDAuMDY2MjUiLCBcCi0gICAgICAgICAgIjAuMTA1LCAwLjEsIDAuMDkzNzUsIDAuMDg3NSwgMC4wODEyNSwgMC4wNzc1LCAwLjA3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzNzUsIDAuMDMyNSwgMC4wMiwgMC4wMTM3NSwgMC4wMTM3NSwgMC4wMDM3NSwgLTAuMDA1IiwgXAotICAgICAgICAgICIwLjA0ODc1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDI1LCAwLjAxODc1LCAwLjAwODc1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICIwLjA1NSwgMC4wNSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMjEyNSwgMC4wMTI1IiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDU2MjUsIDAuMDUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMjc1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiMC4wNzM3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1LCAwLjA0Mzc1LCAwLjAzMzc1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICIwLjA4Mzc1LCAwLjA3MjUsIDAuMDY2MjUsIDAuMDYsIDAuMDUzNzUsIDAuMDUsIDAuMDQxMjUiLCBcCi0gICAgICAgICAgIjAuMDkyNSwgMC4wODEyNSwgMC4wNzUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNTI1LCAwLjA1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJEJiFTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzFfQU5fU0lfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNSwgMC4wMzg3NSwgMC4wMzI1LCAwLjAyNjI1LCAwLjAyLCAwLjAxLCAwLjAwNzUiLCBcCi0gICAgICAgICAgIjAuMDU1LCAwLjA1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDI1LCAwLjAyMTI1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMDYxMjUsIDAuMDU2MjUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMjc1LCAwLjAxODc1IiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDU2MjUsIDAuMDUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMjc1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiMC4wNjc1LCAwLjA2MjUsIDAuMDUsIDAuMDQzNzUsIDAuMDQzNzUsIDAuMDMzNzUsIDAuMDI1IiwgXAotICAgICAgICAgICIwLjA3MTI1LCAwLjA2NjI1LCAwLjA2LCAwLjA1Mzc1LCAwLjA0NzUsIDAuMDM3NSwgMC4wMzUiLCBcCi0gICAgICAgICAgIjAuMDgsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNSwgMC4wNCwgMC4wMzc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDYyNSwgMC4wNTc1LCAwLjA1MTI1LCAwLjA0NSwgMC4wNDUsIDAuMDQxMjUsIDAuMDMyNSIsIFwKLSAgICAgICAgICAiMC4wNzM3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1LCAwLjA1LCAwLjA0NjI1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjA4LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDU2MjUsIDAuMDUyNSwgMC4wNSIsIFwKLSAgICAgICAgICAiMC4wOCwgMC4wNzUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNTI1LCAwLjA1IiwgXAotICAgICAgICAgICIwLjA4NjI1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA2MjUsIDAuMDU4NzUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIjAuMDksIDAuMDc4NzUsIDAuMDcyNSwgMC4wNzI1LCAwLjA2NjI1LCAwLjA2MjUsIDAuMDYiLCBcCi0gICAgICAgICAgIjAuMDkyNSwgMC4wODEyNSwgMC4wNzUsIDAuMDc1LCAwLjA2ODc1LCAwLjA2NSwgMC4wNjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTSSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNzA0MjAzOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDcwMjM1OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDcwNDIwMzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDMwMDksIDAuMDAyOTkxLCAwLjAwMzAxNiwgMC4wMDMwNTYsIDAuMDAzMTI3LCAwLjAwMzI0NiwgMC4wMDMzNzEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDU5MzcsIDAuMDA1OTIyLCAwLjAwNTk0MywgMC4wMDU5OTEsIDAuMDA2MDU1LCAwLjAwNjE2MSwgMC4wMDYyNzkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiU0UiOwotICAgICAgc2RmX2NvbmQgOiAiU0UgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDMxMjUsIC0wLjAyNjI1LCAtMC4wMiwgLTAuMDIsIC0wLjAxMzc1LCAtMC4wMSwgLTAuMDA3NSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAzMTI1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMjUsIC0wLjAyMTI1LCAtMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjAzNzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMzEyNSwgLTAuMDI3NSwgLTAuMDI1IiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDM3NSwgLTAuMDMzNzUsIC0wLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wNjEyNSwgLTAuMDUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDQzNzUsIC0wLjA0LCAtMC4wMzc1IiwgXAotICAgICAgICAgICItMC4wNjUsIC0wLjA2LCAtMC4wNiwgLTAuMDUzNzUsIC0wLjA1Mzc1LCAtMC4wNSwgLTAuMDQ3NSIsIFwKLSAgICAgICAgICAiLTAuMDczNzUsIC0wLjA2ODc1LCAtMC4wNjI1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDUyNSwgLTAuMDUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMTI1LCAtMC4wMDEyNSwgMC4wMDUsIDAuMDExMjUsIDAuMDExMjUsIDAuMDIxMjUsIDAuMDIzNzUiLCBcCi0gICAgICAgICAgIi0wLjAxNzUsIC0wLjAwNjI1LCAwLCAwLjAwNjI1LCAwLjAwNjI1LCAwLjAxNjI1LCAwLjAxODc1IiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAsIDAsIDAuMDEsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgLTAuMDA2MjUsIDAuMDAzNzUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgLTAuMDAyNSwgMCIsIFwKLSAgICAgICAgICAiLTAuMDMzNzUsIC0wLjAyODc1LCAtMC4wMjI1LCAtMC4wMTYyNSwgLTAuMDE2MjUsIC0wLjAxMjUsIC0wLjAwMzc1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDMxMjUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTUsIC0wLjAxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlNFIjsKLSAgICAgIHNkZl9jb25kIDogIlNFID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1NjI1LCAwLjA1MTI1LCAwLjA0NSwgMC4wMzg3NSwgMC4wMzI1LCAwLjAyODc1LCAwLjAyNjI1IiwgXAotICAgICAgICAgICIwLjA2MTI1LCAwLjA1NjI1LCAwLjA1LCAwLjA0Mzc1LCAwLjA0Mzc1LCAwLjA0LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIjAuMDczNzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNSwgMC4wNSwgMC4wNDYyNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4wOCwgMC4wNjg3NSwgMC4wNjI1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDUyNSwgMC4wNSIsIFwKLSAgICAgICAgICAiMC4wODYyNSwgMC4wNzUsIDAuMDY4NzUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNTg3NSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiMC4wOTYyNSwgMC4wODUsIDAuMDc4NzUsIDAuMDcyNSwgMC4wNzI1LCAwLjA2ODc1LCAwLjA2NjI1IiwgXAotICAgICAgICAgICIwLjA5ODc1LCAwLjA5Mzc1LCAwLjA4NzUsIDAuMDgxMjUsIDAuMDgxMjUsIDAuMDc3NSwgMC4wNjg3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0Mzc1LCAwLjAzODc1LCAwLjAyNjI1LCAwLjAyLCAwLjAxMzc1LCAwLjAxLCAwLjAwMTI1IiwgXAotICAgICAgICAgICIwLjA0ODc1LCAwLjA0Mzc1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMTg3NSwgMC4wMTUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMDU1LCAwLjA1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDI1LCAwLjAyMTI1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMDYxMjUsIDAuMDU2MjUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMjc1LCAwLjAxODc1IiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDYyNSwgMC4wNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzMzc1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiMC4wNzc1LCAwLjA2NjI1LCAwLjA2LCAwLjA1Mzc1LCAwLjA0NzUsIDAuMDM3NSwgMC4wMzUiLCBcCi0gICAgICAgICAgIjAuMDgsIDAuMDc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDU2MjUsIDAuMDQ2MjUsIDAuMDQzNzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBTREZGUVhMICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKFNERkZRWEwpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC44NjE1Nzg7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgZmYgKE4zMCxRQklOVCkgewotICAgIG5leHRfc3RhdGUgOiAiKChTRSBTSSkgKyAoIVNFIEQpKSI7Ci0gICAgY2xvY2tlZF9vbiA6ICJDSyI7Ci0gIH0KLSAgcGluKENLKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2ODM4OTY7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjgzODk2OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDY4MzY2NzsKLSAgICBjbG9jayA6IHRydWU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzNDczLCAwLjAwMzQ3NiwgMC4wMDM1MzMsIDAuMDAzNjQzLCAwLjAwMzc0OCwgMC4wMDM5NjksIDAuMDA0MTciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDc1MTksIDAuMDA3NTI4LCAwLjAwNzU5OCwgMC4wMDc3MjUsIDAuMDA3ODY3LCAwLjAwODEzOCwgMC4wMDgzNzMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFEJiFTRSYhU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1NFX0VRXzBfQU5fU0lfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjExNjM1MywgMC4xMjQ0NjUsIDAuMTMzNTIyLCAwLjE0MDMxLCAwLjE0NTc1MSwgMC4xNTMwNDYsIDAuMTU4NTIzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wNjA1MjYsIDAuMDY4NTc0LCAwLjA3NzQ0NiwgMC4wODQxMDQsIDAuMDg5MzgxLCAwLjA5NjMzMiwgMC4xMDE1MjgiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEQpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY0Njk1NzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2NDU3Mjk7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjQ2OTU3OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzI4NSwgMC4wMDMyNjMsIDAuMDAzMjg0LCAwLjAwMzMzOCwgMC4wMDMzOTMsIDAuMDAzNTExLCAwLjAwMzY0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA1MjA0LCAwLjAwNTE4NywgMC4wMDUyMTIsIDAuMDA1MjU4LCAwLjAwNTMyMiwgMC4wMDU0MzQsIDAuMDA1NTUxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJTRSA9PSAxJ2IwIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMzEyNSwgLTAuMDI2MjUsIC0wLjAyLCAtMC4wMiwgLTAuMDEzNzUsIC0wLjAxLCAtMC4wMDc1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDMxMjUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAyNSwgLTAuMDIxMjUsIC0wLjAxODc1IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzc1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDMxMjUsIC0wLjAyNzUsIC0wLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjA0Mzc1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDM3NSwgLTAuMDMzNzUsIC0wLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjA0Mzc1LCAtMC4wNCwgLTAuMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDY1LCAtMC4wNiwgLTAuMDUzNzUsIC0wLjA1Mzc1LCAtMC4wNTM3NSwgLTAuMDUsIC0wLjA0NzUiLCBcCi0gICAgICAgICAgIi0wLjA3Mzc1LCAtMC4wNjg3NSwgLTAuMDYyNSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA1MjUsIC0wLjA1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDEyNSwgLTAuMDA3NSwgMC4wMDUsIDAuMDA1LCAwLjAxMTI1LCAwLjAxNSwgMC4wMjM3NSIsIFwKLSAgICAgICAgICAiLTAuMDE3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAsIDAuMDA2MjUsIDAuMDEsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAsIDAuMDAzNzUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAtMC4wMDI1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDEyNSwgLTAuMDAyNSwgMCIsIFwKLSAgICAgICAgICAiLTAuMDQsIC0wLjAzNSwgLTAuMDI4NzUsIC0wLjAyMjUsIC0wLjAxNjI1LCAtMC4wMTI1LCAtMC4wMSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDI1LCAtMC4wMTUsIC0wLjAxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJTRSA9PSAxJ2IwIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNSwgMC4wNDUsIDAuMDM4NzUsIDAuMDMyNSwgMC4wMzI1LCAwLjAyODc1LCAwLjAyNjI1IiwgXAotICAgICAgICAgICIwLjA1NSwgMC4wNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzNzUsIDAuMDMzNzUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMDY3NSwgMC4wNTYyNSwgMC4wNSwgMC4wNSwgMC4wNDM3NSwgMC4wNCwgMC4wMzc1IiwgXAotICAgICAgICAgICIwLjA3Mzc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDU2MjUsIDAuMDUsIDAuMDQ2MjUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMDgsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1MjUsIDAuMDUiLCBcCi0gICAgICAgICAgIjAuMDgzNzUsIDAuMDc4NzUsIDAuMDcyNSwgMC4wNzI1LCAwLjA2NjI1LCAwLjA2MjUsIDAuMDYiLCBcCi0gICAgICAgICAgIjAuMDkyNSwgMC4wODc1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNzUsIDAuMDcxMjUsIDAuMDY4NzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzc1LCAwLjAzMjUsIDAuMDIsIDAuMDEzNzUsIDAuMDEzNzUsIDAuMDAzNzUsIDAuMDAxMjUiLCBcCi0gICAgICAgICAgIjAuMDQyNSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMTg3NSwgMC4wMDg3NSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiMC4wNTUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMjUsIDAuMDE1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMDYxMjUsIDAuMDUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMjEyNSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4wNjEyNSwgMC4wNTYyNSwgMC4wNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAyNzUsIDAuMDI1IiwgXAotICAgICAgICAgICIwLjA3MTI1LCAwLjA2NjI1LCAwLjA1Mzc1LCAwLjA0NzUsIDAuMDQxMjUsIDAuMDM3NSwgMC4wMjg3NSIsIFwKLSAgICAgICAgICAiMC4wOCwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1LCAwLjA0LCAwLjAzNzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFEpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4xOTQ3NzY7Ci0gICAgZnVuY3Rpb24gOiAiTjMwIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBub25fdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJpc2luZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTA3MDQsIDAuMTIxMTk0LCAwLjIxNTcxOCwgMC4zNzM0NjEsIDAuNTMxMTczLCAwLjg5OTMzMywgMS4xMDk3MSIsIFwKLSAgICAgICAgICAiMC4xMTg3MTQsIDAuMTI5MiwgMC4yMjM2ODYsIDAuMzgxMzg2LCAwLjUzOTE2NCwgMC45MDczNTQsIDEuMTE3NyIsIFwKLSAgICAgICAgICAiMC4xMjc0NjEsIDAuMTM3OTM2LCAwLjIzMjQ1NCwgMC4zOTAxNTcsIDAuNTQ3ODk2LCAwLjkxNjIxNSwgMS4xMjY0MiIsIFwKLSAgICAgICAgICAiMC4xMzQzNjUsIDAuMTQ0ODUyLCAwLjIzOTM3NywgMC4zOTcwMjMsIDAuNTU0Nzc1LCAwLjkyMjkyMywgMS4xMzMzNCIsIFwKLSAgICAgICAgICAiMC4xMzk3NTksIDAuMTUwMjM1LCAwLjI0NDc2MywgMC40MDI0MTMsIDAuNTYwMTU2LCAwLjkyODMxMiwgMS4xMzg2MyIsIFwKLSAgICAgICAgICAiMC4xNDY4NDksIDAuMTU3MzMzLCAwLjI1MTg0NSwgMC40MDk1MDEsIDAuNTY3MzI5LCAwLjkzNTM2LCAxLjE0NTc1IiwgXAotICAgICAgICAgICIwLjE1MjI5MSwgMC4xNjI3ODYsIDAuMjU3MjY5LCAwLjQxNTA0MiwgMC41NzI2NjgsIDAuOTQwNzc5LCAxLjE1MTI1Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExNjg4NCwgMC4xMzkwNTksIDAuMzM4NDM1LCAwLjY2OTkyNSwgMS4wMDIxNCwgMS43NzY2NSwgMi4yMjAyMSIsIFwKLSAgICAgICAgICAiMC4xMTY4NzksIDAuMTM4ODk4LCAwLjMzODMyMiwgMC42NzAyMTIsIDEuMDAzNCwgMS43NzY4NCwgMi4yMjAxNCIsIFwKLSAgICAgICAgICAiMC4xMTcwMDMsIDAuMTM5MDI5LCAwLjMzODQxLCAwLjY3MDIxMiwgMS4wMDM0LCAxLjc3NzMzLCAyLjIyMDcyIiwgXAotICAgICAgICAgICIwLjExNjg0MywgMC4xMzkwNTMsIDAuMzM3ODg1LCAwLjY3MDMxNiwgMS4wMDI2MiwgMS43Nzc0OSwgMi4yMTkxIiwgXAotICAgICAgICAgICIwLjExNjg2OCwgMC4xMzkwMTksIDAuMzM4MzYzLCAwLjY3MDgwOSwgMS4wMDI0OCwgMS43NzcyOSwgMi4yMjI0NyIsIFwKLSAgICAgICAgICAiMC4xMTY4OTUsIDAuMTM4OTQxLCAwLjMzODM0MiwgMC42NzA3NzYsIDEuMDAzMjksIDEuNzc3NzksIDIuMjIwNTEiLCBcCi0gICAgICAgICAgIjAuMTE2ODY0LCAwLjEzODgzMywgMC4zMzgyMzksIDAuNjcwMjQ0LCAxLjAwMzI3LCAxLjc3NzY4LCAyLjIyMjQ5Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExNjM1MywgMC4xMjYwMSwgMC4yMTI4NTgsIDAuMzU3NTM4LCAwLjUwMjE5NywgMC44Mzk3MzcsIDEuMDMyNTciLCBcCi0gICAgICAgICAgIjAuMTI0NDY1LCAwLjEzNDEyNCwgMC4yMjA5NjksIDAuMzY1NjUzLCAwLjUxMDMxMSwgMC44NDc4NSwgMS4wNDA2OCIsIFwKLSAgICAgICAgICAiMC4xMzM1MjIsIDAuMTQzMTc0LCAwLjIzMDAzNywgMC4zNzQ2OTgsIDAuNTE5MzYxLCAwLjg1Njg4NSwgMS4wNDk3OCIsIFwKLSAgICAgICAgICAiMC4xNDAzMSwgMC4xNDk5NjIsIDAuMjM2ODA2LCAwLjM4MTQ4NCwgMC41MjYxNzEsIDAuODYzNjY4LCAxLjA1NjU2IiwgXAotICAgICAgICAgICIwLjE0NTc1MSwgMC4xNTU0MDIsIDAuMjQyMjM5LCAwLjM4Njk0NywgMC41MzE2MTcsIDAuODY5MTA1LCAxLjA2MTk4IiwgXAotICAgICAgICAgICIwLjE1MzA4LCAwLjE2MjcyOSwgMC4yNDk1NTksIDAuMzk0MTc4LCAwLjUzODkyMywgMC44NzYzOTYsIDEuMDY5MzciLCBcCi0gICAgICAgICAgIjAuMTU4NTU3LCAwLjE2ODIwOSwgMC4yNTUwMzUsIDAuMzk5Njc5LCAwLjU0NDM1OSwgMC44ODE4NjcsIDEuMDc0NzYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTA0ODg0LCAwLjEyNDM4MSwgMC4zMDI3MzIsIDAuNTk5MSwgMC44OTU4MjUsIDEuNTg5ODMsIDEuOTg4MDQiLCBcCi0gICAgICAgICAgIjAuMTA0ODgzLCAwLjEyNDU2MSwgMC4zMDI3MjcsIDAuNTk5MjE2LCAwLjg5NTkwNywgMS41ODk5MiwgMS45ODgxMSIsIFwKLSAgICAgICAgICAiMC4xMDQ4ODQsIDAuMTI0NTYxLCAwLjMwMjU5NywgMC41OTkxLCAwLjg5NzY2NCwgMS41ODk2MywgMS45ODU5IiwgXAotICAgICAgICAgICIwLjEwNDg4MSwgMC4xMjQ1NTksIDAuMzAyNzI3LCAwLjU5OTEwNCwgMC44OTc3OTMsIDEuNTg5NjEsIDEuOTg2MDYiLCBcCi0gICAgICAgICAgIjAuMTA0OTM0LCAwLjEyNDU5NiwgMC4zMDI3MzgsIDAuNTk5MjYyLCAwLjg5Nzc2MiwgMS41ODk4MywgMS45ODgiLCBcCi0gICAgICAgICAgIjAuMTA0NzY5LCAwLjEyNDU0NCwgMC4zMDI2MjUsIDAuNjAwMSwgMC44OTc4MjQsIDEuNTkxMDYsIDEuOTg4NjQiLCBcCi0gICAgICAgICAgIjAuMTA0NjU4LCAwLjEyNDI5LCAwLjMwMjc0NCwgMC42MDAxMDEsIDAuODk3ODA0LCAxLjU5MTY0LCAxLjk4NTYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2OTU1LCAwLjAwNjk0OSwgMC4wMDY5MTgsIDAuMDA2OTAxLCAwLjAwNjg5NSwgMC4wMDY4OSwgMC4wMDY4ODkiLCBcCi0gICAgICAgICAgIjAuMDA2OTQ3LCAwLjAwNjk0MSwgMC4wMDY5MDksIDAuMDA2ODkyLCAwLjAwNjg4NiwgMC4wMDY4NzksIDAuMDA2ODc3IiwgXAotICAgICAgICAgICIwLjAwNzA0NCwgMC4wMDcwMzcsIDAuMDA3MDA2LCAwLjAwNjk4OCwgMC4wMDY5ODEsIDAuMDA2OTc0LCAwLjAwNjk3MSIsIFwKLSAgICAgICAgICAiMC4wMDcxNDEsIDAuMDA3MTM1LCAwLjAwNzEwNCwgMC4wMDcwODUsIDAuMDA3MDc3LCAwLjAwNzA3LCAwLjAwNzA2OCIsIFwKLSAgICAgICAgICAiMC4wMDcyODQsIDAuMDA3Mjc5LCAwLjAwNzI0OSwgMC4wMDcyMjksIDAuMDA3MjIxLCAwLjAwNzIxMywgMC4wMDcyMSIsIFwKLSAgICAgICAgICAiMC4wMDc0NjYsIDAuMDA3NDY0LCAwLjAwNzQzMywgMC4wMDc0MTIsIDAuMDA3NDAzLCAwLjAwNzM5NCwgMC4wMDczOTEiLCBcCi0gICAgICAgICAgIjAuMDA3NjgyLCAwLjAwNzY3OCwgMC4wMDc2NDIsIDAuMDA3NjI1LCAwLjAwNzYxMywgMC4wMDc1OTksIDAuMDA3NiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNzMyMSwgMC4wMDczMjMsIDAuMDA3MzMsIDAuMDA3MzMzLCAwLjAwNzMzNCwgMC4wMDczMzUsIDAuMDA3MzM1IiwgXAotICAgICAgICAgICIwLjAwNzMyNywgMC4wMDczMjksIDAuMDA3MzM2LCAwLjAwNzMzOSwgMC4wMDczNCwgMC4wMDczNDEsIDAuMDA3MzQxIiwgXAotICAgICAgICAgICIwLjAwNzQwOCwgMC4wMDc0MSwgMC4wMDc0MTYsIDAuMDA3NDE5LCAwLjAwNzQyLCAwLjAwNzQyMSwgMC4wMDc0MjEiLCBcCi0gICAgICAgICAgIjAuMDA3NTQxLCAwLjAwNzU0MywgMC4wMDc1NDksIDAuMDA3NTUxLCAwLjAwNzU1MiwgMC4wMDc1NTMsIDAuMDA3NTUzIiwgXAotICAgICAgICAgICIwLjAwNzY5NCwgMC4wMDc2OTYsIDAuMDA3NzAzLCAwLjAwNzcwNSwgMC4wMDc3MDUsIDAuMDA3NzA2LCAwLjAwNzcwNiIsIFwKLSAgICAgICAgICAiMC4wMDc5MzMsIDAuMDA3OTMyLCAwLjAwNzkzOSwgMC4wMDc5NCwgMC4wMDc5NCwgMC4wMDc5NCwgMC4wMDc5NCIsIFwKLSAgICAgICAgICAiMC4wMDgxMTIsIDAuMDA4MTE1LCAwLjAwODExNiwgMC4wMDgxMTcsIDAuMDA4MTE3LCAwLjAwODExNiwgMC4wMDgxMTYiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFNFKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDEzOTIxOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTM5MjE7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxMzkyMDg7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA0ODM1LCAwLjAwNDg1NiwgMC4wMDQ5NCwgMC4wMDUwNTYsIDAuMDA1MjExLCAwLjAwNTQzNiwgMC4wMDU2MzkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDY0OTIsIDAuMDA2NTIxLCAwLjAwNjY1NCwgMC4wMDY4MywgMC4wMDcwNTksIDAuMDA3NDQyLCAwLjAwNzc4NyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRCZTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fU0lfRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMjUsIC0wLjAyLCAtMC4wMiwgLTAuMDEzNzUsIC0wLjAxMzc1LCAtMC4wMSwgLTAuMDA3NSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTg3NSwgLTAuMDE1LCAtMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDMxMjUsIC0wLjAzMTI1LCAtMC4wMjc1LCAtMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wNDM3NSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzNzUsIC0wLjAzMzc1LCAtMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDYxMjUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjA0Mzc1LCAtMC4wNCwgLTAuMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDY1LCAtMC4wNiwgLTAuMDYsIC0wLjA1Mzc1LCAtMC4wNTM3NSwgLTAuMDUsIC0wLjA0NzUiLCBcCi0gICAgICAgICAgIi0wLjA3Mzc1LCAtMC4wNjg3NSwgLTAuMDYyNSwgLTAuMDYyNSwgLTAuMDYyNSwgLTAuMDU4NzUsIC0wLjA1NjI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDA2MjUsIC0wLjAwMTI1LCAwLjAwNSwgMC4wMTEyNSwgMC4wMTc1LCAwLjAyMTI1LCAwLjAyMzc1IiwgXAotICAgICAgICAgICItMC4wMTc1LCAtMC4wMDYyNSwgMCwgMC4wMDYyNSwgMC4wMDYyNSwgMC4wMTYyNSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMCwgMC4wMDM3NSwgMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIC0wLjAwMjUsIDAiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA4NzUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wNDYyNSwgLTAuMDM1LCAtMC4wMjg3NSwgLTAuMDI4NzUsIC0wLjAyMjUsIC0wLjAxODc1LCAtMC4wMSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMjEyNSwgLTAuMDE4NzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiRCYhU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8xX0FOX1NJX0VRXzAgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDE4NzUsIC0wLjAwNzUsIC0wLjAwMTI1LCAwLjAwNSwgMC4wMDUsIDAuMDE1LCAwLjAxNzUiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAsIDAuMDAzNzUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAyNSwgLTAuMDEyNSwgLTAuMDEyNSwgLTAuMDA2MjUsIC0wLjAwMjUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMTI1LCAtMC4wMDI1LCAwIiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwODc1LCAwIiwgXAotICAgICAgICAgICItMC4wNCwgLTAuMDM1LCAtMC4wMjg3NSwgLTAuMDIyNSwgLTAuMDE2MjUsIC0wLjAxMjUsIC0wLjAxIiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDE1LCAtMC4wMTI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDM3NSwgLTAuMDMyNSwgLTAuMDI2MjUsIC0wLjAyNjI1LCAtMC4wMiwgLTAuMDE2MjUsIC0wLjAxMzc1IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzc1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDMxMjUsIC0wLjAyNzUsIC0wLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzc1LCAtMC4wMzc1LCAtMC4wMzM3NSwgLTAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjA1NSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDMzNzUsIC0wLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjA0Mzc1LCAtMC4wNCwgLTAuMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDU4NzUsIC0wLjA1Mzc1LCAtMC4wNTM3NSwgLTAuMDQ3NSwgLTAuMDQ3NSwgLTAuMDQzNzUsIC0wLjA0MTI1IiwgXAotICAgICAgICAgICItMC4wNjEyNSwgLTAuMDU2MjUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDUsIC0wLjA0NjI1LCAtMC4wNDM3NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUQmU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1NJX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQzNzUsIDAuMDM4NzUsIDAuMDMyNSwgMC4wMzI1LCAwLjAyNjI1LCAwLjAyMjUsIDAuMDIiLCBcCi0gICAgICAgICAgIjAuMDU1LCAwLjA0Mzc1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDI3NSwgMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMDYxMjUsIDAuMDU2MjUsIDAuMDUsIDAuMDQzNzUsIDAuMDQzNzUsIDAuMDQsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiMC4wNzM3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1NjI1LCAwLjA1LCAwLjA0NjI1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjA4LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA2MjUsIDAuMDU4NzUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIjAuMDksIDAuMDg1LCAwLjA3ODc1LCAwLjA3MjUsIDAuMDcyNSwgMC4wNjg3NSwgMC4wNiIsIFwKLSAgICAgICAgICAiMC4wOTg3NSwgMC4wODc1LCAwLjA4MTI1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNzEyNSwgMC4wNjg3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzNzUsIDAuMDI2MjUsIDAuMDIsIDAuMDEzNzUsIDAuMDA3NSwgLTAuMDAyNSwgLTAuMDA1IiwgXAotICAgICAgICAgICIwLjA0MjUsIDAuMDMxMjUsIDAuMDI1LCAwLjAxODc1LCAwLjAxMjUsIDAuMDA4NzUsIDAiLCBcCi0gICAgICAgICAgIjAuMDQ4NzUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMjUsIDAuMDE1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMDYxMjUsIDAuMDUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMjc1LCAwLjAxODc1IiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDYyNSwgMC4wNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzMzc1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiMC4wNzc1LCAwLjA2NjI1LCAwLjA2LCAwLjA1Mzc1LCAwLjA0NzUsIDAuMDQzNzUsIDAuMDM1IiwgXAotICAgICAgICAgICIwLjA4NjI1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1MjUsIDAuMDQzNzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIkQmIVNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMV9BTl9TSV9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0Mzc1LCAwLjAzODc1LCAwLjAyNjI1LCAwLjAyLCAwLjAxMzc1LCAwLjAxLCAwLjAwMTI1IiwgXAotICAgICAgICAgICIwLjA0ODc1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDI1LCAwLjAxNSwgMC4wMTI1IiwgXAotICAgICAgICAgICIwLjA1NSwgMC4wNSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAzMTI1LCAwLjAyMTI1LCAwLjAxODc1IiwgXAotICAgICAgICAgICIwLjA2MTI1LCAwLjA1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDI3NSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4wNjEyNSwgMC4wNTYyNSwgMC4wNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAyNzUsIDAuMDI1IiwgXAotICAgICAgICAgICIwLjA3MTI1LCAwLjA2LCAwLjA1Mzc1LCAwLjA0NzUsIDAuMDQxMjUsIDAuMDMxMjUsIDAuMDI4NzUiLCBcCi0gICAgICAgICAgIjAuMDczNzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNSwgMC4wNDM3NSwgMC4wNCwgMC4wMzEyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1NjI1LCAwLjA1MTI1LCAwLjA0NSwgMC4wMzg3NSwgMC4wMzg3NSwgMC4wMzUsIDAuMDMyNSIsIFwKLSAgICAgICAgICAiMC4wNjEyNSwgMC4wNTYyNSwgMC4wNSwgMC4wNSwgMC4wNDM3NSwgMC4wNCwgMC4wMzc1IiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNSwgMC4wNSwgMC4wNDYyNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4wNzM3NSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1NjI1LCAwLjA1MjUsIDAuMDUiLCBcCi0gICAgICAgICAgIjAuMDczNzUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1MjUsIDAuMDUiLCBcCi0gICAgICAgICAgIjAuMDc3NSwgMC4wNzI1LCAwLjA2NjI1LCAwLjA2NjI1LCAwLjA2LCAwLjA1NjI1LCAwLjA1Mzc1IiwgXAotICAgICAgICAgICIwLjA4NjI1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1ODc1LCAwLjA1NjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTSSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNzEwMzE1OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDcwOTA0NTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA3MTAzMTU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzMDM4LCAwLjAwMzAxNiwgMC4wMDMwNSwgMC4wMDMwOSwgMC4wMDMxNjcsIDAuMDAzMjgzLCAwLjAwMzQxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA1MzU2LCAwLjAwNTM0MSwgMC4wMDUzNjYsIDAuMDA1NDEzLCAwLjAwNTQ3OSwgMC4wMDU1ODgsIDAuMDA1NzEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiU0UiOwotICAgICAgc2RmX2NvbmQgOiAiU0UgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDMxMjUsIC0wLjAyNjI1LCAtMC4wMiwgLTAuMDIsIC0wLjAxMzc1LCAtMC4wMSwgLTAuMDA3NSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxNSwgLTAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDM3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAzMTI1LCAtMC4wMjc1LCAtMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wNDM3NSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzNzUsIC0wLjAzMzc1LCAtMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wNDM3NSwgLTAuMDQsIC0wLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjA2NSwgLTAuMDYsIC0wLjA1Mzc1LCAtMC4wNTM3NSwgLTAuMDQ3NSwgLTAuMDQzNzUsIC0wLjA0MTI1IiwgXAotICAgICAgICAgICItMC4wNjc1LCAtMC4wNjI1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDU2MjUsIC0wLjA1MjUsIC0wLjA1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDEyNSwgLTAuMDA3NSwgMC4wMDUsIDAuMDA1LCAwLjAxMTI1LCAwLjAxNSwgMC4wMjM3NSIsIFwKLSAgICAgICAgICAiLTAuMDE3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAsIDAuMDA2MjUsIDAuMDEsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAsIDAuMDAzNzUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAyNSwgLTAuMDEyNSwgLTAuMDEyNSwgLTAuMDA2MjUsIC0wLjAwMjUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMTI1LCAtMC4wMDI1LCAwIiwgXAotICAgICAgICAgICItMC4wNCwgLTAuMDM1LCAtMC4wMjg3NSwgLTAuMDIyNSwgLTAuMDE2MjUsIC0wLjAxMjUsIC0wLjAxIiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDE1LCAtMC4wMTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJTRSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNSwgMC4wNDUsIDAuMDM4NzUsIDAuMDMyNSwgMC4wMzI1LCAwLjAyODc1LCAwLjAyNjI1IiwgXAotICAgICAgICAgICIwLjA1NSwgMC4wNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzNzUsIDAuMDMzNzUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMDYxMjUsIDAuMDU2MjUsIDAuMDUsIDAuMDUsIDAuMDQzNzUsIDAuMDQsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiMC4wNzM3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1NjI1LCAwLjA1LCAwLjA0NjI1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjA4LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNTI1LCAwLjA1IiwgXAotICAgICAgICAgICIwLjA4Mzc1LCAwLjA3ODc1LCAwLjA3MjUsIDAuMDY2MjUsIDAuMDY2MjUsIDAuMDYyNSwgMC4wNiIsIFwKLSAgICAgICAgICAiMC4wOTI1LCAwLjA4NzUsIDAuMDgxMjUsIDAuMDc1LCAwLjA3NSwgMC4wNzEyNSwgMC4wNjg3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzNzUsIDAuMDMyNSwgMC4wMiwgMC4wMTM3NSwgMC4wMTM3NSwgMC4wMDM3NSwgMC4wMDEyNSIsIFwKLSAgICAgICAgICAiMC4wNDI1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDI1LCAwLjAxODc1LCAwLjAwODc1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICIwLjA0ODc1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDI1LCAwLjAxNSwgMC4wMTI1IiwgXAotICAgICAgICAgICIwLjA1NSwgMC4wNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyMTI1LCAwLjAxODc1IiwgXAotICAgICAgICAgICIwLjA2MTI1LCAwLjA1NjI1LCAwLjA1LCAwLjAzNzUsIDAuMDM3NSwgMC4wMjc1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiMC4wNzEyNSwgMC4wNiwgMC4wNTM3NSwgMC4wNDc1LCAwLjA0MTI1LCAwLjAzNzUsIDAuMDI4NzUiLCBcCi0gICAgICAgICAgIjAuMDczNzUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNSwgMC4wNCwgMC4wMzc1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBTREZGUkhRWDggKgotICogLS0tLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChTREZGUkhRWDgpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMi4zMDEzNzsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBmZiAoTjMwLFFCSU5UKSB7Ci0gICAgbmV4dF9zdGF0ZSA6ICIoKFNFIFNJKSArICghU0UgRCkpIjsKLSAgICBjbG9ja2VkX29uIDogIkNLIjsKLSAgICBjbGVhciA6ICIoIVJOKSI7Ci0gIH0KLSAgcGluKENLKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2MjI3NTg7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjIyNzU4OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDYyMjcyNzsKLSAgICBjbG9jayA6IHRydWU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA0MDcsIDAuMDA0MDYxLCAwLjAwNDE0MiwgMC4wMDQyMjgsIDAuMDA0MzQ3LCAwLjAwNDU3NSwgMC4wMDQ3OCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAxMDMyOCwgMC4wMTAzMTIsIDAuMDEwNDIzLCAwLjAxMDUzOCwgMC4wMTA2OCwgMC4wMTA4MzksIDAuMDExMDQyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRCZSTiYhU0UmIVNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9STl9FUV8xX0FOX1NFX0VRXzBfQU5fU0lfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjA5MjQ5MSwgMC4xMDA4MDQsIDAuMTEwNDE3LCAwLjExODUyNSwgMC4xMjQ5NSwgMC4xMzM0NSwgMC4xMzk5MDQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjA2NjU2NCwgMC4wNzQ2NzgsIDAuMDg0MzM3LCAwLjA5MjAzMywgMC4wOTgyNjYsIDAuMTA2NDQ3LCAwLjExMjMzOCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwODg3OTgzOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDg4NjA5NjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA4ODc5ODM7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA0MzkxLCAwLjAwNDM0NywgMC4wMDQzNjUsIDAuMDA0NDI4LCAwLjAwNDQ5MywgMC4wMDQ2NiwgMC4wMDQ4MTciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDczOCwgMC4wMDczNTEsIDAuMDA3Mzc4LCAwLjAwNzQzMSwgMC4wMDc1MDIsIDAuMDA3NjM5LCAwLjAwNzgzMSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJSTiYhU0UiOwotICAgICAgc2RmX2NvbmQgOiAiUk5fRVFfMV9BTl9TRV9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAyNSwgLTAuMDIsIC0wLjAxMzc1LCAtMC4wMTM3NSwgLTAuMDA3NSwgLTAuMDAzNzUsIC0wLjAwMTI1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwODc1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDI1LCAtMC4wMTUsIC0wLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAzMTI1LCAtMC4wMjc1LCAtMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzNzUsIC0wLjAzMzc1LCAtMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjA1ODc1LCAtMC4wNTM3NSwgLTAuMDQ3NSwgLTAuMDQ3NSwgLTAuMDQxMjUsIC0wLjAzNzUsIC0wLjAzNSIsIFwKLSAgICAgICAgICAiLTAuMDY3NSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNSwgLTAuMDQ2MjUsIC0wLjA0Mzc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMCwgMC4wMTEyNSwgMC4wMTc1LCAwLjAyMzc1LCAwLjAzLCAwLjAzMzc1LCAwLjA0MjUiLCBcCi0gICAgICAgICAgIi0wLjAwNSwgMCwgMC4wMTI1LCAwLjAxODc1LCAwLjAyNSwgMC4wMjg3NSwgMC4wMzc1IiwgXAotICAgICAgICAgICItMC4wMTEyNSwgLTAuMDA2MjUsIDAuMDA2MjUsIDAuMDEyNSwgMC4wMTg3NSwgMC4wMjI1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wMTc1LCAtMC4wMDYyNSwgMCwgMC4wMDYyNSwgMC4wMTI1LCAwLjAxNjI1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDE3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAsIDAuMDA2MjUsIDAuMDE2MjUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjAyMTI1LCAtMC4wMTYyNSwgLTAuMDEsIC0wLjAwMzc1LCAwLjAwMjUsIDAuMDA2MjUsIDAuMDE1IiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLCAwLjAwMzc1LCAwLjAwNjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJSTiYhU0UiOwotICAgICAgc2RmX2NvbmQgOiAiUk5fRVFfMV9BTl9TRV9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1LCAwLjAzODc1LCAwLjAzMjUsIDAuMDMyNSwgMC4wMjYyNSwgMC4wMjI1LCAwLjAyIiwgXAotICAgICAgICAgICIwLjA1NSwgMC4wNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyNzUsIDAuMDI1IiwgXAotICAgICAgICAgICIwLjA2MTI1LCAwLjA1NjI1LCAwLjA1LCAwLjA0Mzc1LCAwLjA0Mzc1LCAwLjAzMzc1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICIwLjA3Mzc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDUsIDAuMDUsIDAuMDQ2MjUsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiMC4wOCwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1NjI1LCAwLjA1MjUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMDgzNzUsIDAuMDc4NzUsIDAuMDcyNSwgMC4wNjYyNSwgMC4wNiwgMC4wNTYyNSwgMC4wNTM3NSIsIFwKLSAgICAgICAgICAiMC4wOTI1LCAwLjA4NzUsIDAuMDgxMjUsIDAuMDc1LCAwLjA2ODc1LCAwLjA2NSwgMC4wNjI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDMxMjUsIDAuMDIsIDAuMDEzNzUsIDAuMDAxMjUsIC0wLjAwNSwgLTAuMDA4NzUsIC0wLjAxNzUiLCBcCi0gICAgICAgICAgIjAuMDM2MjUsIDAuMDI1LCAwLjAxODc1LCAwLjAxMjUsIDAuMDA2MjUsIC0wLjAwMzc1LCAtMC4wMTI1IiwgXAotICAgICAgICAgICIwLjA0MjUsIDAuMDM3NSwgMC4wMjUsIDAuMDE4NzUsIDAuMDEyNSwgMC4wMDI1LCAwIiwgXAotICAgICAgICAgICIwLjA0ODc1LCAwLjA0Mzc1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMTg3NSwgMC4wMDg3NSwgMCIsIFwKLSAgICAgICAgICAiMC4wNTUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMjUsIDAuMDE1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICIwLjA1ODc1LCAwLjA1Mzc1LCAwLjA0MTI1LCAwLjAzNSwgMC4wMjg3NSwgMC4wMTg3NSwgMC4wMTYyNSIsIFwKLSAgICAgICAgICAiMC4wNjc1LCAwLjA1NjI1LCAwLjA1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDI3NSwgMC4wMTg3NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAyLjY2OTE2OwotICAgIGZ1bmN0aW9uIDogIk4zMCI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3NlbnNlIDogbm9uX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiByaXNpbmdfZWRnZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTY2OTcsIDAuMTI4MTQ0LCAwLjE1NTc2NCwgMC4xNzUzMTcsIDAuMjA2NTY4LCAwLjIzMzg5NCwgMC4yNzI5MTYiLCBcCi0gICAgICAgICAgIjAuMTA0OTgxLCAwLjEzNjQzMiwgMC4xNjQwNTIsIDAuMTgzNjA0LCAwLjIxNDg1NiwgMC4yNDIxODIsIDAuMjgxMjA0IiwgXAotICAgICAgICAgICIwLjExNDUxNiwgMC4xNDU5NjIsIDAuMTczNTc4LCAwLjE5MzEzMiwgMC4yMjQzODUsIDAuMjUxNzExLCAwLjI5MDczMyIsIFwKLSAgICAgICAgICAiMC4xMjIxNDYsIDAuMTUzNTkzLCAwLjE4MTIxMywgMC4yMDA3NjUsIDAuMjMyMDE2LCAwLjI1OTM0MiwgMC4yOTgzNjUiLCBcCi0gICAgICAgICAgIjAuMTI4ODYxLCAwLjE2MDMxNSwgMC4xODc5MjksIDAuMjA3NDgxLCAwLjIzODc0NiwgMC4yNjYwNjgsIDAuMzA1MDkxIiwgXAotICAgICAgICAgICIwLjEzNzI5OSwgMC4xNjg3MzIsIDAuMTk2MzYzLCAwLjIxNTkxNSwgMC4yNDcxNjQsIDAuMjc0NDgyLCAwLjMxMzUxIiwgXAotICAgICAgICAgICIwLjE0Mzk4NSwgMC4xNzU1MjksIDAuMjAzMDYyLCAwLjIyMjYxNywgMC4yNTM4NywgMC4yODExODYsIDAuMzIwMjI4Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDIwNTksIDAuMDc0OTE5LCAwLjEzMDczLCAwLjE3MTI3MiwgMC4yMzY1MDgsIDAuMjk0MDcxLCAwLjM3NjMxIiwgXAotICAgICAgICAgICIwLjAyMDU4NSwgMC4wNzQ5MTksIDAuMTMwNzQ4LCAwLjE3MTI3NCwgMC4yMzY1MSwgMC4yOTQwNywgMC4zNzYzMDQiLCBcCi0gICAgICAgICAgIjAuMDIwNTg4LCAwLjA3NDkyNCwgMC4xMzA4MDMsIDAuMTcxMjc3LCAwLjIzNjUxMywgMC4yOTQwNzUsIDAuMzc2MzAyIiwgXAotICAgICAgICAgICIwLjAyMDU2NiwgMC4wNzQ5MTgsIDAuMTMwNzMsIDAuMTcxMjczLCAwLjIzNjUwOSwgMC4yOTQwNjksIDAuMzc2MzAxIiwgXAotICAgICAgICAgICIwLjAyMDU5MSwgMC4wNzQ5MjIsIDAuMTMwODQ2LCAwLjE3MTI3MywgMC4yMzY1MTgsIDAuMjk0MDcyLCAwLjM3NjI5OSIsIFwKLSAgICAgICAgICAiMC4wMjA2NjYsIDAuMDc0OTAxLCAwLjEzMDgxOCwgMC4xNzEyNzQsIDAuMjM2NTAxLCAwLjI5MzY1MywgMC4zNzU3ODYiLCBcCi0gICAgICAgICAgIjAuMDIwNTc5LCAwLjA3NDk5OCwgMC4xMzA4MTQsIDAuMTcxMjgyLCAwLjIzNjUxNywgMC4yOTQwMjEsIDAuMzc2MzA0Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDkyNDkxLCAwLjEyMjUzMiwgMC4xNTA4MTQsIDAuMTcwOTcsIDAuMjAzMTkyLCAwLjIzMTM4MSwgMC4yNzE2NTgiLCBcCi0gICAgICAgICAgIjAuMTAwODA0LCAwLjEzMDg0MSwgMC4xNTkxMTYsIDAuMTc5MjcyLCAwLjIxMTUwMSwgMC4yMzk2ODksIDAuMjc5OTU0IiwgXAotICAgICAgICAgICIwLjExMDQxNywgMC4xNDA0NTUsIDAuMTY4NzQsIDAuMTg4ODk0LCAwLjIyMTExOSwgMC4yNDkzMTEsIDAuMjg5NTc1IiwgXAotICAgICAgICAgICIwLjExODUyNSwgMC4xNDg1NjUsIDAuMTc2ODQxLCAwLjE5Njk5NywgMC4yMjkyMjYsIDAuMjU3NDE0LCAwLjI5NzY4IiwgXAotICAgICAgICAgICIwLjEyNDk1MywgMC4xNTQ5OTMsIDAuMTgzMjcsIDAuMjAzNDI2LCAwLjIzNTY1NiwgMC4yNjM4NDUsIDAuMzA0MTEiLCBcCi0gICAgICAgICAgIjAuMTMzNDU0LCAwLjE2MzQ5MywgMC4xOTE3NzIsIDAuMjExOTI3LCAwLjI0NDE1MiwgMC4yNzIzNDYsIDAuMzEyNjA4IiwgXAotICAgICAgICAgICIwLjEzOTkwOSwgMC4xNjk5NDMsIDAuMTk4MjMyLCAwLjIxODM5LCAwLjI1MDYxLCAwLjI3ODgwMSwgMC4zMTkwNjYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTcyMzUsIDAuMDcyOTkyLCAwLjEzMDcyNCwgMC4xNzIzMjYsIDAuMjM5NDQ0LCAwLjI5ODAzMiwgMC4zODE0NDQiLCBcCi0gICAgICAgICAgIjAuMDE3MjI5LCAwLjA3Mjk5NCwgMC4xMzA3MjcsIDAuMTcyMzI4LCAwLjIzOTQ3NCwgMC4yOTgwNzIsIDAuMzgxODU1IiwgXAotICAgICAgICAgICIwLjAxNzIzMiwgMC4wNzI5ODcsIDAuMTMwNzM3LCAwLjE3MjM4OCwgMC4yMzk0NjUsIDAuMjk4MDU1LCAwLjM4MTg2IiwgXAotICAgICAgICAgICIwLjAxNzIzNiwgMC4wNzI5OTUsIDAuMTMwNzI3LCAwLjE3MjMyOCwgMC4yMzk0OTEsIDAuMjk4MDY5LCAwLjM4MTg2OSIsIFwKLSAgICAgICAgICAiMC4wMTcyNDIsIDAuMDcyOTk0LCAwLjEzMDcyNiwgMC4xNzIzMjcsIDAuMjM5NDc3LCAwLjI5ODA2NCwgMC4zODE4NTkiLCBcCi0gICAgICAgICAgIjAuMDE3MjgxLCAwLjA3Mjk5MywgMC4xMzA3ODIsIDAuMTcyMzI3LCAwLjIzOTQ3NCwgMC4yOTgwOTksIDAuMzgxODU5IiwgXAotICAgICAgICAgICIwLjAxNzIyOCwgMC4wNzI5NDQsIDAuMTMwNzMyLCAwLjE3MjM0LCAwLjIzOTQwOCwgMC4yOTc3NDYsIDAuMzgxNDIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUk4iOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGNsZWFyOwotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyNjYzOCwgMC4wNTY1ODgsIDAuMDg0OTI5LCAwLjEwNTA5MiwgMC4xMzcyOTYsIDAuMTY1NDY0LCAwLjIwNTcxMyIsIFwKLSAgICAgICAgICAiMC4wMzQ4MzIsIDAuMDY0NzQzLCAwLjA5MzEzLCAwLjExMzMwNiwgMC4xNDU1MTMsIDAuMTczNjgxLCAwLjIxMzkzNSIsIFwKLSAgICAgICAgICAiMC4wNDMwOSwgMC4wNzMxODgsIDAuMTAxNTkzLCAwLjEyMTc2NCwgMC4xNTM5NjgsIDAuMTgyMTM3LCAwLjIyMjM4NyIsIFwKLSAgICAgICAgICAiMC4wNDg5MjksIDAuMDc5NDgsIDAuMTA3ODU3LCAwLjEyODAxOSwgMC4xNjAyMTYsIDAuMTg4Mzg0LCAwLjIyODYzNyIsIFwKLSAgICAgICAgICAiMC4wNTM2OTcsIDAuMDg0NTQxLCAwLjExMjk1NiwgMC4xMzMwOTcsIDAuMTY1Mjg1LCAwLjE5MzQ1LCAwLjIzMzY5MSIsIFwKLSAgICAgICAgICAiMC4wNTk3NTIsIDAuMDkxMTM4LCAwLjExOTUxNCwgMC4xMzk2NjQsIDAuMTcxODU1LCAwLjIwMDAxMSwgMC4yNDAyNDgiLCBcCi0gICAgICAgICAgIjAuMDY0MDM4LCAwLjA5NTk1MiwgMC4xMjQyNDMsIDAuMTQ0MzczLCAwLjE3NjU3NSwgMC4yMDQ3MzQsIDAuMjQ0OTc2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE2MjExLCAwLjA3Mjc1OSwgMC4xMzA1ODksIDAuMTcyMTUzLCAwLjIzODkzOCwgMC4yOTc1NzcsIDAuMzgxMzYzIiwgXAotICAgICAgICAgICIwLjAxNjM5MiwgMC4wNzI3NzIsIDAuMTMwNTc3LCAwLjE3MjEyNSwgMC4yMzg5NSwgMC4yOTc1NTYsIDAuMzgxMzU3IiwgXAotICAgICAgICAgICIwLjAxNzczNiwgMC4wNzMxMzUsIDAuMTMwNzMzLCAwLjE3MjE3NywgMC4yMzg4NjIsIDAuMjk3NTg2LCAwLjM4MTQ1NiIsIFwKLSAgICAgICAgICAiMC4wMTg5OCwgMC4wNzM2OSwgMC4xMzEwMDMsIDAuMTcyMzg2LCAwLjIzODk1NiwgMC4yOTc2MjMsIDAuMzgxMzQ4IiwgXAotICAgICAgICAgICIwLjAyMDA5MiwgMC4wNzQyLCAwLjEzMTIzOSwgMC4xNzI1NDIsIDAuMjM5MTMxLCAwLjI5NzY5OSwgMC4zODE0OTQiLCBcCi0gICAgICAgICAgIjAuMDIxNzY4LCAwLjA3NTAxNSwgMC4xMzE2MzcsIDAuMTcyODA3LCAwLjIzOTI3OSwgMC4yOTc3OTEsIDAuMzgxNCIsIFwKLSAgICAgICAgICAiMC4wMjMwNDgsIDAuMDc1NywgMC4xMzIxMiwgMC4xNzMwMzMsIDAuMjM5NDc5LCAwLjI5NzkxMSwgMC4zODE2MSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyMTU5MiwgMC4wMjE3MzgsIDAuMDIxODIsIDAuMDIxODUsIDAuMDIxODc5LCAwLjAyMTg5MywgMC4wMjE5MDkiLCBcCi0gICAgICAgICAgIjAuMDIxNTgyLCAwLjAyMTcyOCwgMC4wMjE4MSwgMC4wMjE4NDIsIDAuMDIxODcsIDAuMDIxODg2LCAwLjAyMTkwMSIsIFwKLSAgICAgICAgICAiMC4wMjE2ODIsIDAuMDIxODA5LCAwLjAyMTg5LCAwLjAyMTkyLCAwLjAyMTk0OSwgMC4wMjE5NjMsIDAuMDIxOTgyIiwgXAotICAgICAgICAgICIwLjAyMTc5NCwgMC4wMjE5MzcsIDAuMDIyMDIsIDAuMDIyMDUsIDAuMDIyMDc5LCAwLjAyMjA5NSwgMC4wMjIxMTEiLCBcCi0gICAgICAgICAgIjAuMDIxODc4LCAwLjAyMjAxOSwgMC4wMjIxMDMsIDAuMDIyMTMzLCAwLjAyMjE2NiwgMC4wMjIxNzgsIDAuMDIyMTkzIiwgXAotICAgICAgICAgICIwLjAyMjE1LCAwLjAyMjI2MywgMC4wMjIzMzgsIDAuMDIyMzcxLCAwLjAyMjM5OCwgMC4wMjI0MTMsIDAuMDIyNDMxIiwgXAotICAgICAgICAgICIwLjAyMjMzNSwgMC4wMjI0NzUsIDAuMDIyNTMyLCAwLjAyMjU2MSwgMC4wMjI1ODgsIDAuMDIyNjAyLCAwLjAyMjY0MiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDIxMTg4LCAwLjAyMTYzOSwgMC4wMjE3NzEsIDAuMDIxODE3LCAwLjAyMTg2MSwgMC4wMjE4ODIsIDAuMDIxOTAyIiwgXAotICAgICAgICAgICIwLjAyMTIwOCwgMC4wMjE2NDUsIDAuMDIxNzczLCAwLjAyMTgxOSwgMC4wMjE4NjEsIDAuMDIxODgzLCAwLjAyMTkwMiIsIFwKLSAgICAgICAgICAiMC4wMjEyODgsIDAuMDIxNzM4LCAwLjAyMTg2OSwgMC4wMjE5MTUsIDAuMDIxOTU4LCAwLjAyMTk3OSwgMC4wMjIwMDEiLCBcCi0gICAgICAgICAgIjAuMDIxNDI0LCAwLjAyMTg2NCwgMC4wMjE5OTUsIDAuMDIyMDQsIDAuMDIyMDgyLCAwLjAyMjEwNCwgMC4wMjIxMjQiLCBcCi0gICAgICAgICAgIjAuMDIxNTI2LCAwLjAyMTk3MywgMC4wMjIxMDMsIDAuMDIyMTQ5LCAwLjAyMjE5MiwgMC4wMjIyMTQsIDAuMDIyMjMzIiwgXAotICAgICAgICAgICIwLjAyMTc5OSwgMC4wMjIyNjIsIDAuMDIyMzgyLCAwLjAyMjQzNiwgMC4wMjI0ODEsIDAuMDIyNTAzLCAwLjAyMjUyMyIsIFwKLSAgICAgICAgICAiMC4wMjIwMDksIDAuMDIyNDY1LCAwLjAyMjU5OCwgMC4wMjI2NDMsIDAuMDIyNjY5LCAwLjAyMjcwNiwgMC4wMjI3MjYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjQyMzksIDAuMDI0NzA4LCAwLjAyNDc5MywgMC4wMjQ4MjIsIDAuMDI0ODQ4LCAwLjAyNDg2LCAwLjAyNDg3MyIsIFwKLSAgICAgICAgICAiMC4wMjQxMjEsIDAuMDI0NTYxLCAwLjAyNDY3NywgMC4wMjQ3MTgsIDAuMDI0NzU1LCAwLjAyNDc3MywgMC4wMjQ3OTIiLCBcCi0gICAgICAgICAgIjAuMDI0MzIzLCAwLjAyNDY0LCAwLjAyNDc3MSwgMC4wMjQ4MTUsIDAuMDI0ODYyLCAwLjAyNDg4NiwgMC4wMjQ5MDkiLCBcCi0gICAgICAgICAgIjAuMDI0Njk4LCAwLjAyNDkyMywgMC4wMjUwNDYsIDAuMDI1MDkzLCAwLjAyNTE0MywgMC4wMjUxNzEsIDAuMDI1MTk5IiwgXAotICAgICAgICAgICIwLjAyNTE4MywgMC4wMjUyNSwgMC4wMjUzNjQsIDAuMDI1NDExLCAwLjAyNTQ2NCwgMC4wMjU0OTIsIDAuMDI1NTIzIiwgXAotICAgICAgICAgICIwLjAyNTk5NywgMC4wMjU5MTYsIDAuMDI2MDE1LCAwLjAyNjA1MSwgMC4wMjYxMTEsIDAuMDI2MTQyLCAwLjAyNjE3MyIsIFwKLSAgICAgICAgICAiMC4wMjY4MzMsIDAuMDI2NjE1LCAwLjAyNjY5LCAwLjAyNjczMywgMC4wMjY3NzksIDAuMDI2ODE3LCAwLjAyNjg0NiIpOwotICAgICAgfQotICAgICAgcmlzZV9wb3dlcihzY2FsYXIpIHsKLSAgICAgICAgdmFsdWVzKCIwIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihSTikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAzNjE3MDk7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAzMjk0MTg7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAzNjE3MDk7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxOTk0LCAwLjAwMTk5MywgMC4wMDE5OTIsIDAuMDAxOTkxLCAwLjAwMTk5MSwgMC4wMDE5OTEsIDAuMDAxOTkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDIwNzcsIDAuMDAyMDIyLCAwLjAwMjAxMSwgMC4wMDIwMSwgMC4wMDIwMDcsIDAuMDAyMDA0LCAwLjAwMjAwNyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQmIVNFJiFTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fU0VfRVFfMF9BTl9TSV9FUV8wID09IDEnYjEiOwotICAgICAgZmFsbF9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDY0NzA5LCAwLjA3MTI3MSwgMC4wNzc4MDQsIDAuMDgzMDQ5LCAwLjA4NzQ4OSwgMC4wOTMyMzMsIDAuMDk3MzY3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogcmVjb3ZlcnlfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRCZTRSZTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fU0VfRVFfMV9BTl9TSV9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHJlY292ZXJ5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMjUsIC0wLjAzNjI1LCAtMC4wNDI1LCAtMC4wNDg3NSwgLTAuMDU1LCAtMC4wNjUsIC0wLjA3Mzc1IiwgXAotICAgICAgICAgICItMC4wMjYyNSwgLTAuMDM3NSwgLTAuMDQzNzUsIC0wLjA1NjI1LCAtMC4wNjI1LCAtMC4wNjYyNSwgLTAuMDc1IiwgXAotICAgICAgICAgICItMC4wMjYyNSwgLTAuMDM3NSwgLTAuMDQzNzUsIC0wLjA1NjI1LCAtMC4wNjI1LCAtMC4wNjYyNSwgLTAuMDc1IiwgXAotICAgICAgICAgICItMC4wMiwgLTAuMDMxMjUsIC0wLjAzNzUsIC0wLjA1LCAtMC4wNTYyNSwgLTAuMDY2MjUsIC0wLjA2ODc1IiwgXAotICAgICAgICAgICItMC4wMTM3NSwgLTAuMDE4NzUsIC0wLjAzMTI1LCAtMC4wNDM3NSwgLTAuMDUsIC0wLjA2LCAtMC4wNjI1IiwgXAotICAgICAgICAgICIwLjAwODc1LCAtMC4wMDI1LCAtMC4wMTUsIC0wLjAyNzUsIC0wLjAzMzc1LCAtMC4wNDM3NSwgLTAuMDUyNSIsIFwKLSAgICAgICAgICAiMC4wMjM3NSwgMC4wMTI1LCAwLCAtMC4wMTI1LCAtMC4wMTg3NSwgLTAuMDI4NzUsIC0wLjAzNzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiByZW1vdmFsX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUQmU0UmU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1NFX0VRXzFfQU5fU0lfRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChyZW1vdmFsX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzNzUsIDAuMDQ4NzUsIDAuMDU1LCAwLjA2NzUsIDAuMDczNzUsIDAuMDc3NSwgMC4wODYyNSIsIFwKLSAgICAgICAgICAiMC4wNDUsIDAuMDUsIDAuMDYyNSwgMC4wNjg3NSwgMC4wNzUsIDAuMDg1LCAwLjA4NzUiLCBcCi0gICAgICAgICAgIjAuMDQ1LCAwLjA1NjI1LCAwLjA2MjUsIDAuMDc1LCAwLjA4MTI1LCAwLjA4NSwgMC4wOTM3NSIsIFwKLSAgICAgICAgICAiMC4wNTEyNSwgMC4wNTYyNSwgMC4wNjg3NSwgMC4wNzUsIDAuMDgxMjUsIDAuMDkxMjUsIDAuMDkzNzUiLCBcCi0gICAgICAgICAgIjAuMDUxMjUsIDAuMDYyNSwgMC4wNjg3NSwgMC4wODEyNSwgMC4wODEyNSwgMC4wOTEyNSwgMC4xIiwgXAotICAgICAgICAgICIwLjA2LCAwLjA2NSwgMC4wNzc1LCAwLjA4Mzc1LCAwLjA5LCAwLjA5Mzc1LCAwLjEwMjUiLCBcCi0gICAgICAgICAgIjAuMDU3NSwgMC4wNjg3NSwgMC4wNzUsIDAuMDg3NSwgMC4wOTM3NSwgMC4wOTc1LCAwLjEwNjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTRSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNjYzOTY7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNjYzODY7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNjYzOTY7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA2ODgzLCAwLjAwNjg4MywgMC4wMDY5NjIsIDAuMDA3MDYzLCAwLjAwNzE5LCAwLjAwNzM5OCwgMC4wMDc1OTQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDg1OTgsIDAuMDA4NjE0LCAwLjAwODc0MywgMC4wMDg5MzksIDAuMDA5MTk1LCAwLjAwOTYxMiwgMC4wMDk5OTYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiUk4iOwotICAgICAgc2RmX2NvbmQgOiAiUk4gPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDA2MjUsIC0wLjAwMTI1LCAwLjAxMTI1LCAwLjAxNzUsIDAuMDIzNzUsIDAuMDI3NSwgMC4wMzYyNSIsIFwKLSAgICAgICAgICAiLTAuMDExMjUsIC0wLjAwNjI1LCAwLCAwLjAwNjI1LCAwLjAxMjUsIDAuMDIyNSwgMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjAxNzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLCAwLjAwNjI1LCAwLjAxNjI1LCAwLjAxODc1IiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLCAwLCAwLjAxLCAwLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAsIDAuMDAzNzUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDMzNzUsIC0wLjAyODc1LCAtMC4wMTYyNSwgLTAuMDEsIC0wLjAwMzc1LCAwLCAwLjAwODc1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDMxMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMTI1LCAtMC4wMDI1LCAwIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDYyNSwgMC4wMTEyNSwgMC4wMjM3NSwgMC4wMywgMC4wMywgMC4wNCwgMC4wNDI1IiwgXAotICAgICAgICAgICIwLjAwMTI1LCAwLjAwNjI1LCAwLjAxMjUsIDAuMDE4NzUsIDAuMDI1LCAwLjAzNSwgMC4wMzc1IiwgXAotICAgICAgICAgICItMC4wMTEyNSwgMCwgMC4wMDYyNSwgMC4wMTI1LCAwLjAxODc1LCAwLjAyMjUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjAxMTI1LCAtMC4wMDYyNSwgMCwgMC4wMDYyNSwgMC4wMTI1LCAwLjAxNjI1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDE3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAsIDAuMDA2MjUsIDAuMDE2MjUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjAyMTI1LCAtMC4wMTYyNSwgLTAuMDEsIC0wLjAwMzc1LCAwLjAwMjUsIDAuMDA2MjUsIDAuMDA4NzUiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIC0wLjAwNjI1LCAwLjAwMzc1LCAwLjAwNjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJSTiI7Ci0gICAgICBzZGZfY29uZCA6ICJSTiA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDM3NSwgMC4wMzg3NSwgMC4wMzI1LCAwLjAyNjI1LCAwLjAyLCAwLjAxNjI1LCAwLjAxMzc1IiwgXAotICAgICAgICAgICIwLjA0ODc1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDMxMjUsIDAuMDIxMjUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMDYxMjUsIDAuMDU2MjUsIDAuMDQzNzUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzM3NSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4wNjc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDUsIDAuMDUsIDAuMDQsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiMC4wOCwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1NjI1LCAwLjA0NjI1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjA5LCAwLjA3ODc1LCAwLjA3MjUsIDAuMDY2MjUsIDAuMDY2MjUsIDAuMDU2MjUsIDAuMDUzNzUiLCBcCi0gICAgICAgICAgIjAuMDk4NzUsIDAuMDg3NSwgMC4wODEyNSwgMC4wNzUsIDAuMDY4NzUsIDAuMDY1LCAwLjA2MjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTYyNSwgMC4wNTEyNSwgMC4wNDUsIDAuMDM4NzUsIDAuMDMyNSwgMC4wMjg3NSwgMC4wMjYyNSIsIFwKLSAgICAgICAgICAiMC4wNjc1LCAwLjA1NjI1LCAwLjA1LCAwLjA0Mzc1LCAwLjA0Mzc1LCAwLjA0LCAwLjAzMTI1IiwgXAotICAgICAgICAgICIwLjA3Mzc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDUsIDAuMDUsIDAuMDQ2MjUsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiMC4wNzM3NSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1NjI1LCAwLjA0NjI1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjA4LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNTI1LCAwLjA1IiwgXAotICAgICAgICAgICIwLjA4Mzc1LCAwLjA3ODc1LCAwLjA3MjUsIDAuMDY2MjUsIDAuMDYsIDAuMDU2MjUsIDAuMDUzNzUiLCBcCi0gICAgICAgICAgIjAuMDg2MjUsIDAuMDgxMjUsIDAuMDc1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDU4NzUsIDAuMDU2MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFNJKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA5NzE4ODk7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwOTY5NTE3OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDk3MTg4OTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDM5NTYsIDAuMDAzOTE2LCAwLjAwMzkzOSwgMC4wMDQsIDAuMDA0MDg0LCAwLjAwNDI0NiwgMC4wMDQ0MzMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDc2NzksIDAuMDA3NjUyLCAwLjAwNzY3NywgMC4wMDc3MzIsIDAuMDA3OCwgMC4wMDc5NjMsIDAuMDA4MTE1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlJOJlNFIjsKLSAgICAgIHNkZl9jb25kIDogIlJOX0VRXzFfQU5fU0VfRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMjUsIC0wLjAyLCAtMC4wMTM3NSwgLTAuMDA3NSwgLTAuMDA3NSwgLTAuMDAzNzUsIC0wLjAwMTI1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwODc1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDMxMjUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTUsIC0wLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wMzc1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDMxMjUsIC0wLjAyMTI1LCAtMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNDM3NSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMjc1LCAtMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjA1ODc1LCAtMC4wNTM3NSwgLTAuMDQ3NSwgLTAuMDQ3NSwgLTAuMDQxMjUsIC0wLjAzNzUsIC0wLjAzNSIsIFwKLSAgICAgICAgICAiLTAuMDY3NSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNSwgLTAuMDQ2MjUsIC0wLjA0Mzc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMCwgMC4wMTEyNSwgMC4wMTc1LCAwLjAyMzc1LCAwLjAzLCAwLjAzMzc1LCAwLjA0MjUiLCBcCi0gICAgICAgICAgIi0wLjAwNSwgMCwgMC4wMTI1LCAwLjAxODc1LCAwLjAyNSwgMC4wMjg3NSwgMC4wMzc1IiwgXAotICAgICAgICAgICItMC4wMTEyNSwgLTAuMDA2MjUsIDAuMDA2MjUsIDAuMDEyNSwgMC4wMTg3NSwgMC4wMjI1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wMTc1LCAtMC4wMDYyNSwgMCwgMC4wMDYyNSwgMC4wMTI1LCAwLjAxNjI1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDE3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAsIDAuMDA2MjUsIDAuMDE2MjUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjAyMTI1LCAtMC4wMTYyNSwgLTAuMDEsIC0wLjAwMzc1LCAwLjAwMjUsIDAuMDA2MjUsIDAuMDE1IiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLCAwLjAwMzc1LCAwLjAxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlJOJlNFIjsKLSAgICAgIHNkZl9jb25kIDogIlJOX0VRXzFfQU5fU0VfRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNSwgMC4wMzg3NSwgMC4wMzI1LCAwLjAyNjI1LCAwLjAyNjI1LCAwLjAyMjUsIDAuMDIiLCBcCi0gICAgICAgICAgIjAuMDU1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMjc1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiMC4wNjEyNSwgMC4wNTYyNSwgMC4wNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzMzc1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNSwgMC4wNSwgMC4wNCwgMC4wMzc1IiwgXAotICAgICAgICAgICIwLjA3Mzc1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDU2MjUsIDAuMDQ2MjUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMDgzNzUsIDAuMDc4NzUsIDAuMDcyNSwgMC4wNjYyNSwgMC4wNiwgMC4wNTYyNSwgMC4wNTM3NSIsIFwKLSAgICAgICAgICAiMC4wOTI1LCAwLjA4NzUsIDAuMDc1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjUsIDAuMDYyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzMTI1LCAwLjAyLCAwLjAxMzc1LCAwLjAwMTI1LCAtMC4wMDUsIC0wLjAwODc1LCAtMC4wMTc1IiwgXAotICAgICAgICAgICIwLjAzNjI1LCAwLjAyNSwgMC4wMTg3NSwgMC4wMTI1LCAwLjAwNjI1LCAtMC4wMDM3NSwgLTAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4wNDI1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMTg3NSwgMC4wMTI1LCAwLjAwMjUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICIwLjA0ODc1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDI1LCAwLjAxODc1LCAwLjAwODc1LCAwIiwgXAotICAgICAgICAgICIwLjA1NSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAyNSwgMC4wMTg3NSwgMC4wMTUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMDU4NzUsIDAuMDUzNzUsIDAuMDQxMjUsIDAuMDM1LCAwLjAyODc1LCAwLjAxODc1LCAwLjAxNjI1IiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDU2MjUsIDAuMDUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMjc1LCAwLjAxODc1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogU0RGRlJYNCAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChTREZGUlg0KSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDEuOTcwNTM7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgZmYgKE4zMCxRQklOVCkgewotICAgIG5leHRfc3RhdGUgOiAiKChTRSBTSSkgKyAoIVNFIEQpKSI7Ci0gICAgY2xvY2tlZF9vbiA6ICJDSyI7Ci0gICAgY2xlYXIgOiAiKCFSTikiOwotICB9Ci0gIHBpbihDSykgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjk3NjI5OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDY5NzYyOTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2OTc1OTk7Ci0gICAgY2xvY2sgOiB0cnVlOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzE0NSwgMC4wMDMxNDMsIDAuMDAzMjExLCAwLjAwMzMxMywgMC4wMDM0MTgsIDAuMDAzNjI4LCAwLjAwMzgzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA4MzIzLCAwLjAwODMyOCwgMC4wMDg0MjQsIDAuMDA4NTQ2LCAwLjAwODY3MSwgMC4wMDg5MjksIDAuMDA5MTY4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRCZSTiYhU0UmIVNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9STl9FUV8xX0FOX1NFX0VRXzBfQU5fU0lfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjEwODgxMywgMC4xMTY5NSwgMC4xMjYxMywgMC4xMzMyOTYsIDAuMTM5MDQ2LCAwLjE0NjU5NywgMC4xNTIyOCIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDYyNDE4LCAwLjA3MDQxNSwgMC4wNzk2MjUsIDAuMDg2NTA3LCAwLjA5MjExMywgMC4wOTkyNywgMC4xMDQ2MDQiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEQpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDcyNDY4MTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA3MjM3MjY7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNzI0NjgxOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzUzMiwgMC4wMDM1MDksIDAuMDAzNTI1LCAwLjAwMzU3NiwgMC4wMDM2MzIsIDAuMDAzNzM4LCAwLjAwMzg1NiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNTkxMiwgMC4wMDU4OTYsIDAuMDA1OTE0LCAwLjAwNTk2MiwgMC4wMDYwMjIsIDAuMDA2MTU1LCAwLjAwNjI0NiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJSTiYhU0UiOwotICAgICAgc2RmX2NvbmQgOiAiUk5fRVFfMV9BTl9TRV9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAzMTI1LCAtMC4wMjYyNSwgLTAuMDI2MjUsIC0wLjAyLCAtMC4wMiwgLTAuMDE2MjUsIC0wLjAxMzc1IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMjUsIC0wLjAyMTI1LCAtMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDI3NSwgLTAuMDI1IiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzMzc1LCAtMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDYxMjUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wNCwgLTAuMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDcxMjUsIC0wLjA2NjI1LCAtMC4wNiwgLTAuMDYsIC0wLjA1Mzc1LCAtMC4wNSwgLTAuMDQ3NSIsIFwKLSAgICAgICAgICAiLTAuMDczNzUsIC0wLjA2ODc1LCAtMC4wNjg3NSwgLTAuMDYyNSwgLTAuMDYyNSwgLTAuMDU4NzUsIC0wLjA1NjI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDEyNSwgLTAuMDAxMjUsIDAuMDA1LCAwLjAxMTI1LCAwLjAxMTI1LCAwLjAyMTI1LCAwLjAyMzc1IiwgXAotICAgICAgICAgICItMC4wMTc1LCAtMC4wMDYyNSwgMCwgMC4wMDYyNSwgMC4wMDYyNSwgMC4wMSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAtMC4wMDYyNSwgMCwgMC4wMDM3NSwgMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAtMC4wMDYyNSwgLTAuMDAyNSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAxMjUsIC0wLjAwMjUsIDAiLCBcCi0gICAgICAgICAgIi0wLjAzMzc1LCAtMC4wMjg3NSwgLTAuMDIyNSwgLTAuMDE2MjUsIC0wLjAxNjI1LCAtMC4wMTI1LCAtMC4wMSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxNSwgLTAuMDEyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiUk4mIVNFIjsKLSAgICAgIHNkZl9jb25kIDogIlJOX0VRXzFfQU5fU0VfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjI1LCAwLjA1MTI1LCAwLjA0NSwgMC4wNDUsIDAuMDM4NzUsIDAuMDM1LCAwLjAzMjUiLCBcCi0gICAgICAgICAgIjAuMDY3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1LCAwLjA0Mzc1LCAwLjA0LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIjAuMDczNzUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNSwgMC4wNDYyNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4wODYyNSwgMC4wNzUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNjI1LCAwLjA1ODc1LCAwLjA1IiwgXAotICAgICAgICAgICIwLjA5MjUsIDAuMDgxMjUsIDAuMDc1LCAwLjA2ODc1LCAwLjA2ODc1LCAwLjA2NSwgMC4wNjI1IiwgXAotICAgICAgICAgICIwLjEwMjUsIDAuMDkxMjUsIDAuMDg1LCAwLjA3ODc1LCAwLjA3ODc1LCAwLjA2ODc1LCAwLjA2NjI1IiwgXAotICAgICAgICAgICIwLjEwNSwgMC4xLCAwLjA5Mzc1LCAwLjA4NzUsIDAuMDgxMjUsIDAuMDc3NSwgMC4wNzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDM3NSwgMC4wMzg3NSwgMC4wMzI1LCAwLjAyNjI1LCAwLjAyLCAwLjAxLCAwLjAwNzUiLCBcCi0gICAgICAgICAgIjAuMDU1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDI1LCAwLjAxNSwgMC4wMTI1IiwgXAotICAgICAgICAgICIwLjA2MTI1LCAwLjA1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDIxMjUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMDY3NSwgMC4wNTYyNSwgMC4wNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAyNzUsIDAuMDI1IiwgXAotICAgICAgICAgICIwLjA3Mzc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDUsIDAuMDQzNzUsIDAuMDMzNzUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMDc3NSwgMC4wNzI1LCAwLjA2LCAwLjA1Mzc1LCAwLjA0NzUsIDAuMDQzNzUsIDAuMDM1IiwgXAotICAgICAgICAgICIwLjA4NjI1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA0NjI1LCAwLjA0Mzc1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihRKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDEuMzczODI7Ci0gICAgZnVuY3Rpb24gOiAiTjMwIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBub25fdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJpc2luZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5ODU0LCAwLjE1NzUzNSwgMC4yMTI2ODIsIDAuMjUxNjk2LCAwLjMxNDQ5MywgMC4zNjk4MzIsIDAuNDQ4MDQ1IiwgXAotICAgICAgICAgICIwLjEwNjY2OCwgMC4xNjU2NywgMC4yMjA3ODQsIDAuMjU5ODEzLCAwLjMyMjgxNywgMC4zNzc0ODUsIDAuNDU2MjQ4IiwgXAotICAgICAgICAgICIwLjExNTY4OCwgMC4xNzQ3MTQsIDAuMjI5ODU0LCAwLjI2ODg1MywgMC4zMzE4ODEsIDAuMzg2OTE0LCAwLjQ2NTI5OSIsIFwKLSAgICAgICAgICAiMC4xMjI3NDMsIDAuMTgxNzQxLCAwLjIzNjg2MiwgMC4yNzU4ODksIDAuMzM4ODk1LCAwLjM5MzU2MywgMC40NzIzMTEiLCBcCi0gICAgICAgICAgIjAuMTI4MzgyLCAwLjE4NzQyNSwgMC4yNDI0NzEsIDAuMjgxODI5LCAwLjM0NDU2NywgMC4zOTkyMjYsIDAuNDc3OTgzIiwgXAotICAgICAgICAgICIwLjEzNjA0NCwgMC4xOTUwNCwgMC4yNTAxNDgsIDAuMjg5NTE2LCAwLjM1MjE2OSwgMC40MDY4MjQsIDAuNDg1NTQ3IiwgXAotICAgICAgICAgICIwLjE0MTc1NywgMC4yMDA3ODksIDAuMjU1OSwgMC4yOTUxNDYsIDAuMzU3ODkzLCAwLjQxMjU0OCwgMC40OTEzMDgiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzA0NDIsIDAuMTQwODA2LCAwLjI1NTEwNywgMC4zMzY5MDUsIDAuNDY4NjQyLCAwLjU4NDA3MSwgMC43NTA2OTQiLCBcCi0gICAgICAgICAgIjAuMDMwNTQxLCAwLjE0MDczMywgMC4yNTUwODYsIDAuMzM2ODk4LCAwLjQ2OTIwMSwgMC41ODQzNDQsIDAuNzQ5NDE5IiwgXAotICAgICAgICAgICIwLjAzMDU0OCwgMC4xNDExNTksIDAuMjU1MTI0LCAwLjMzNjkwNywgMC40NjkyMTMsIDAuNTg0MjIsIDAuNzUwNjcyIiwgXAotICAgICAgICAgICIwLjAzMDU0OCwgMC4xNDA3MzUsIDAuMjU1MDk0LCAwLjMzNjg5OCwgMC40NjkyMDIsIDAuNTg0MzIyLCAwLjc0OTA2MSIsIFwKLSAgICAgICAgICAiMC4wMzA1NjcsIDAuMTQxMDg0LCAwLjI1NTA1MywgMC4zMzcyMDEsIDAuNDY5MjEzLCAwLjU4NDI4MywgMC43NDkzNTQiLCBcCi0gICAgICAgICAgIjAuMDMwNTQsIDAuMTQwNzQzLCAwLjI1NTEyOSwgMC4zMzcyMTgsIDAuNDY5MjA3LCAwLjU4NDI3OSwgMC43NDkxODQiLCBcCi0gICAgICAgICAgIjAuMDMwNDQzLCAwLjE0MDc1LCAwLjI1NDUyNCwgMC4zMzcwODUsIDAuNDY5MTQ4LCAwLjU4NDA2NywgMC43NDkxOTkiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTAwMDUsIDAuMTQ1ODYzLCAwLjIsIDAuMjM4OTI0LCAwLjMwMDgzNiwgMC4zNTUwNjUsIDAuNDMyMjUyIiwgXAotICAgICAgICAgICIwLjA5ODE1NiwgMC4xNTQwNDEsIDAuMjA4Mjc0LCAwLjI0Njg5NSwgMC4zMDkzNDMsIDAuMzYzMjE4LCAwLjQ0MDQyNiIsIFwKLSAgICAgICAgICAiMC4xMDcyOTUsIDAuMTYzMTgsIDAuMjE3NDE2LCAwLjI1NTk3NiwgMC4zMTg0OCwgMC4zNzIzNTMsIDAuNDQ5NTYzIiwgXAotICAgICAgICAgICIwLjExNDQ2MiwgMC4xNzAzNDcsIDAuMjI0NTg2LCAwLjI2MzE4NiwgMC4zMjU2NDcsIDAuMzc5NTIyLCAwLjQ1NjczMSIsIFwKLSAgICAgICAgICAiMC4xMjAyNTksIDAuMTc2MTQ2LCAwLjIzMDIwMywgMC4yNjkyMDQsIDAuMzMxNDY0LCAwLjM4NTMxMiwgMC40NjI1NjkiLCBcCi0gICAgICAgICAgIjAuMTI3ODcsIDAuMTgzNzU5LCAwLjIzODE2OSwgMC4yNzY3NjMsIDAuMzM5MDM3LCAwLjM5Mjg4NSwgMC40NzA0NDIiLCBcCi0gICAgICAgICAgIjAuMTMzNTE0LCAwLjE4OTM3MywgMC4yNDM1MDEsIDAuMjgyNDU2LCAwLjM0NDMxMywgMC4zOTg3NDgsIDAuNDc1NzcyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDI1NTUzLCAwLjEzNTM0LCAwLjI0NjEsIDAuMzI2NjQ5LCAwLjQ1NDYzMSwgMC41Njc0NjQsIDAuNzI4NTExIiwgXAotICAgICAgICAgICIwLjAyNTU3NywgMC4xMzQxNTYsIDAuMjQ2NjAyLCAwLjMyNTkxNywgMC40NTM4NjksIDAuNTY3NDg3LCAwLjcyODUyMyIsIFwKLSAgICAgICAgICAiMC4wMjU2OSwgMC4xMzQxNTYsIDAuMjQ2NjA4LCAwLjMyNTk3MywgMC40NTM4NzMsIDAuNTY3NDg4LCAwLjcyODUyIiwgXAotICAgICAgICAgICIwLjAyNTY5MSwgMC4xMzQxNTYsIDAuMjQ2NjE2LCAwLjMyNTg3NCwgMC40NTM4NzIsIDAuNTY3NDg5LCAwLjcyODUyMSIsIFwKLSAgICAgICAgICAiMC4wMjU2MTcsIDAuMTM0MTQ4LCAwLjI0NjgxNiwgMC4zMjY2NzMsIDAuNDUzOTgsIDAuNTY3NDc4LCAwLjcyODUyOCIsIFwKLSAgICAgICAgICAiMC4wMjU2NTEsIDAuMTM1MzU4LCAwLjI0Njg2OCwgMC4zMjY2LCAwLjQ1NDc4NCwgMC41Njc0NCwgMC43Mjg0MDQiLCBcCi0gICAgICAgICAgIjAuMDI1NTcyLCAwLjEzNTMyOSwgMC4yNDYwODYsIDAuMzI2NjM2LCAwLjQ1NDk4MiwgMC41NjcxMDYsIDAuNzI4NDA3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiBjbGVhcjsKLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzQ2MzcsIDAuMDkwNTE4LCAwLjE0NDU5LCAwLjE4MzMyLCAwLjI0NTIsIDAuMjk5NDA0LCAwLjM3NjkyMiIsIFwKLSAgICAgICAgICAiMC4wNDI3OTUsIDAuMDk4NzE4LCAwLjE1MjgxLCAwLjE5MTQ4MiwgMC4yNTMzNjEsIDAuMzA3NTk2LCAwLjM4NDk4NCIsIFwKLSAgICAgICAgICAiMC4wNTE4MiwgMC4xMDc3NTIsIDAuMTYxODY1LCAwLjIwMDYxNywgMC4yNjI2MzcsIDAuMzE2Mzk2LCAwLjM5NDAzNCIsIFwKLSAgICAgICAgICAiMC4wNTg2MTksIDAuMTE0ODMyLCAwLjE2ODg4MywgMC4yMDc1NDEsIDAuMjY5NDU4LCAwLjMyMzgxMywgMC40MDEwODMiLCBcCi0gICAgICAgICAgIjAuMDY0MDI5LCAwLjEyMDUwMSwgMC4xNzQ1NTMsIDAuMjEzMTY0LCAwLjI3NTM2NSwgMC4zMjkzNzUsIDAuNDA2MzEiLCBcCi0gICAgICAgICAgIjAuMDcwOTc0LCAwLjEyNzgzNywgMC4xODE5NjEsIDAuMjIwNTc5LCAwLjI4MjU2LCAwLjMzNjY3MiwgMC40MTM4MzgiLCBcCi0gICAgICAgICAgIjAuMDc1OTc1LCAwLjEzMzA5LCAwLjE4NzEyMSwgMC4yMjU4MDQsIDAuMjg4MDM5LCAwLjM0MjAxMywgMC40MTk0NTgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjUwMzUsIDAuMTM1MTk0LCAwLjI0NjY0MiwgMC4zMjU4NTQsIDAuNDU0Njg5LCAwLjU2NzMxMiwgMC43MjgzNjgiLCBcCi0gICAgICAgICAgIjAuMDI1MDQzLCAwLjEzNTIxLCAwLjI0NTgyMywgMC4zMjU3MTUsIDAuNDU0NjkyLCAwLjU2NzI4NSwgMC43MjgzNDkiLCBcCi0gICAgICAgICAgIjAuMDI2MDg5LCAwLjEzNTM1MywgMC4yNDY2MTUsIDAuMzI2MzU1LCAwLjQ1NDY5LCAwLjU2Njg5MSwgMC43MjgyNTUiLCBcCi0gICAgICAgICAgIjAuMDI3NTU4LCAwLjEzNTY1MSwgMC4yNDY2NjUsIDAuMzI2MzgzLCAwLjQ1NDY5NywgMC41NjczNTksIDAuNzI4MjYxIiwgXAotICAgICAgICAgICIwLjAyODg0OCwgMC4xMzU5NTEsIDAuMjQ2NjMxLCAwLjMyNjUsIDAuNDU0NzI0LCAwLjU2NzMsIDAuNzI3MjgzIiwgXAotICAgICAgICAgICIwLjAzMDcxNywgMC4xMzYwNCwgMC4yNDYxMjksIDAuMzI2NjY2LCAwLjQ1NDU5MSwgMC41NjczLCAwLjcyODE2MiIsIFwKLSAgICAgICAgICAiMC4wMzIzOTMsIDAuMTM2NjMzLCAwLjI0NjczMywgMC4zMjY1MzMsIDAuNDU0Njc5LCAwLjU2NzQsIDAuNzI3NDUxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA5OTk2LCAwLjAxMDEwNiwgMC4wMTAxMjksIDAuMDEwMTM3LCAwLjAxMDE0OSwgMC4wMTAxNSwgMC4wMTAxNTEiLCBcCi0gICAgICAgICAgIjAuMDA5OTk1LCAwLjAxMDEsIDAuMDEwMTI0LCAwLjAxMDEzMiwgMC4wMTAxMzgsIDAuMDEwMTQ1LCAwLjAxMDE0NCIsIFwKLSAgICAgICAgICAiMC4wMTAwMjUsIDAuMDEwMTM1LCAwLjAxMDE1OCwgMC4wMTAxNjYsIDAuMDEwMTc2LCAwLjAxMDE3NiwgMC4wMTAxNzkiLCBcCi0gICAgICAgICAgIjAuMDEwMDg4LCAwLjAxMDE5MSwgMC4wMTAyMTMsIDAuMDEwMjIxLCAwLjAxMDIyNywgMC4wMTAyMzIsIDAuMDEwMjMzIiwgXAotICAgICAgICAgICIwLjAxMDE0OCwgMC4wMTAyNTUsIDAuMDEwMjc5LCAwLjAxMDI4NiwgMC4wMTAyOTMsIDAuMDEwMjk2LCAwLjAxMDI5OSIsIFwKLSAgICAgICAgICAiMC4wMTAyNTYsIDAuMDEwMzcsIDAuMDEwNDAxLCAwLjAxMDQwOSwgMC4wMTA0MTYsIDAuMDEwNDE5LCAwLjAxMDQyMiIsIFwKLSAgICAgICAgICAiMC4wMTAzMzQsIDAuMDEwNDQ0LCAwLjAxMDQ2OSwgMC4wMTA0NzcsIDAuMDEwNDg1LCAwLjAxMDQ4OSwgMC4wMTA0OTIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMDA1NywgMC4wMTAxODcsIDAuMDEwMjA4LCAwLjAxMDIxNSwgMC4wMTAyMiwgMC4wMTAyMjMsIDAuMDEwMjI2IiwgXAotICAgICAgICAgICIwLjAxMDA1NywgMC4wMTAxODgsIDAuMDEwMjA5LCAwLjAxMDIxNSwgMC4wMTAyMjIsIDAuMDEwMjI0LCAwLjAxMDIzNCIsIFwKLSAgICAgICAgICAiMC4wMTAxMDQsIDAuMDEwMjM2LCAwLjAxMDI1NiwgMC4wMTAyNjMsIDAuMDEwMjY4LCAwLjAxMDI3LCAwLjAxMDI4IiwgXAotICAgICAgICAgICIwLjAxMDE2MiwgMC4wMTAyOTIsIDAuMDEwMzEzLCAwLjAxMDMyLCAwLjAxMDMyNiwgMC4wMTAzMjcsIDAuMDEwMzM4IiwgXAotICAgICAgICAgICIwLjAxMDIzOSwgMC4wMTAzNjgsIDAuMDEwMzg5LCAwLjAxMDM5NSwgMC4wMTA0MDIsIDAuMDEwNDA0LCAwLjAxMDQwNiIsIFwKLSAgICAgICAgICAiMC4wMTAzNiwgMC4wMTA0OTYsIDAuMDEwNTA5LCAwLjAxMDUyMiwgMC4wMTA1MjcsIDAuMDEwNTMxLCAwLjAxMDUzNCIsIFwKLSAgICAgICAgICAiMC4wMTA0NTcsIDAuMDEwNTc3LCAwLjAxMDU5OSwgMC4wMTA2MDUsIDAuMDEwNjEyLCAwLjAxMDYxMiwgMC4wMTA2MTYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTEwMjIsIDAuMDExMTQ2LCAwLjAxMTE2MywgMC4wMTExNjksIDAuMDExMTczLCAwLjAxMTE3OCwgMC4wMTExNzgiLCBcCi0gICAgICAgICAgIjAuMDEwOTc3LCAwLjAxMTEwNiwgMC4wMTExMjgsIDAuMDExMTM2LCAwLjAxMTE0MiwgMC4wMTExNDYsIDAuMDExMTQ4IiwgXAotICAgICAgICAgICIwLjAxMTAxOCwgMC4wMTExMzIsIDAuMDExMTU5LCAwLjAxMTE2NywgMC4wMTExNzUsIDAuMDExMTc5LCAwLjAxMTE4MyIsIFwKLSAgICAgICAgICAiMC4wMTExMjEsIDAuMDExMjEzLCAwLjAxMTI0LCAwLjAxMTI0OSwgMC4wMTEyNTcsIDAuMDExMjYyLCAwLjAxMTI2NyIsIFwKLSAgICAgICAgICAiMC4wMTEyNzUsIDAuMDExMzE2LCAwLjAxMTMzOCwgMC4wMTEzNSwgMC4wMTEzNTYsIDAuMDExMzYxLCAwLjAxMTM2NSIsIFwKLSAgICAgICAgICAiMC4wMTE1MzQsIDAuMDExNTI5LCAwLjAxMTU1MiwgMC4wMTE1NjMsIDAuMDExNTcsIDAuMDExNTc2LCAwLjAxMTU3NyIsIFwKLSAgICAgICAgICAiMC4wMTE3ODgsIDAuMDExNzQ0LCAwLjAxMTc2MiwgMC4wMTE3NywgMC4wMTE3NzksIDAuMDExNzgzLCAwLjAxMTc4OCIpOwotICAgICAgfQotICAgICAgcmlzZV9wb3dlcihzY2FsYXIpIHsKLSAgICAgICAgdmFsdWVzKCIwIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihRTikgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAxLjM1NzAzOwotICAgIGZ1bmN0aW9uIDogIlFCSU5UIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBub25fdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJpc2luZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwODgxMywgMC4xNjQwMDgsIDAuMjE4OTEyLCAwLjI1ODE2NSwgMC4zMjA5NjcsIDAuMzc1OTQ5LCAwLjQ1NDQxOCIsIFwKLSAgICAgICAgICAiMC4xMTY5NSwgMC4xNzIxNjQsIDAuMjI3MDc0LCAwLjI2NjI4NCwgMC4zMjkyMjcsIDAuMzg0MTA4LCAwLjQ2MjU4NiIsIFwKLSAgICAgICAgICAiMC4xMjYxMywgMC4xODEzMDMsIDAuMjM2MjEzLCAwLjI3NTQxNywgMC4zMzgzNjUsIDAuMzkzMjQ2LCAwLjQ3MTcyMyIsIFwKLSAgICAgICAgICAiMC4xMzMyOTcsIDAuMTg4NDcxLCAwLjI0MzM4MiwgMC4yODI1ODksIDAuMzQ1NTMzLCAwLjQwMDQxNCwgMC40Nzg4OTEiLCBcCi0gICAgICAgICAgIjAuMTM5MDQ2LCAwLjE5NDI1MiwgMC4yNDkxMzMsIDAuMjg4NDIyLCAwLjM1MTMyNiwgMC40MDYxOTksIDAuNDg0NzEzIiwgXAotICAgICAgICAgICIwLjE0NjYzNSwgMC4yMDE4MzQsIDAuMjU2NzcyLCAwLjI5NjAxNCwgMC4zNTg5MTgsIDAuNDEzNzksIDAuNDkyMzYzIiwgXAotICAgICAgICAgICIwLjE1MjMxNCwgMC4yMDc0NTYsIDAuMjYyMzkxLCAwLjMwMTYyOSwgMC4zNjQ0MzMsIDAuNDE5NDc3LCAwLjQ5Nzg4OCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyNTM1LCAwLjEzODE1OCwgMC4yNTM2MjMsIDAuMzM2ODgxLCAwLjQ2OTU5NiwgMC41ODU3MzksIDAuNzUxNDg1IiwgXAotICAgICAgICAgICIwLjAyNTMyOCwgMC4xMzc5ODcsIDAuMjUzNjcsIDAuMzM2NjcsIDAuNDY4ODAzLCAwLjU4NTcwNSwgMC43NTE0ODgiLCBcCi0gICAgICAgICAgIjAuMDI1MzQ4LCAwLjEzNzk4NywgMC4yNTM2NzEsIDAuMzM2NTk3LCAwLjQ2ODgwMiwgMC41ODU2OTgsIDAuNzUxNDk4IiwgXAotICAgICAgICAgICIwLjAyNTM0NiwgMC4xMzc5ODcsIDAuMjUzNjczLCAwLjMzNjY0OCwgMC40Njg4MDIsIDAuNTg1Njk3LCAwLjc1MTQ5NyIsIFwKLSAgICAgICAgICAiMC4wMjUzMjcsIDAuMTM3OTg1LCAwLjI1MzMwMiwgMC4zMzY4OTEsIDAuNDY4ODE5LCAwLjU4NTcxNCwgMC43NTE1NjMiLCBcCi0gICAgICAgICAgIjAuMDI1MzMxLCAwLjEzODE1LCAwLjI1Mzk1LCAwLjMzNjg0NCwgMC40Njg3OTYsIDAuNTg1NzE5LCAwLjc1MTQ0OCIsIFwKLSAgICAgICAgICAiMC4wMjUzMTksIDAuMTM4MDM5LCAwLjI1MzYyMywgMC4zMzY4NjIsIDAuNDY5NTQ1LCAwLjU4NDU4OSwgMC43NTE0MjIiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTg0NiwgMC4xNzI4MzMsIDAuMjI2OTU0LCAwLjI2NTYwMywgMC4zMjc0NTcsIDAuMzgxNjUyLCAwLjQ1ODk1NCIsIFwKLSAgICAgICAgICAiMC4xMjY1ODUsIDAuMTgwOTI5LCAwLjIzNTAwOSwgMC4yNzM2NiwgMC4zMzU1MTYsIDAuMzg5NjU2LCAwLjQ2NzA0NyIsIFwKLSAgICAgICAgICAiMC4xMzU2MDUsIDAuMTg5OTc1LCAwLjI0NDA3NiwgMC4yODI3MjYsIDAuMzQ0NTk2LCAwLjM5ODc3OCwgMC40NzYxMTYiLCBcCi0gICAgICAgICAgIjAuMTQyNjcxLCAwLjE5NzAwNywgMC4yNTEwOSwgMC4yODk3NDEsIDAuMzUxNTk4LCAwLjQwNTczNiwgMC40ODMxMjQiLCBcCi0gICAgICAgICAgIjAuMTQ4MzA3LCAwLjIwMjY1NywgMC4yNTY3NTYsIDAuMjk1NDA4LCAwLjM1NzI3NCwgMC40MTEzOTksIDAuNDg4ODAzIiwgXAotICAgICAgICAgICIwLjE1NTkxOCwgMC4yMTAxMzgsIDAuMjY0MTksIDAuMzAyODM3LCAwLjM2NDY5NCwgMC40MTg4NSwgMC40OTYyMTIiLCBcCi0gICAgICAgICAgIjAuMTYxNzE5LCAwLjIxNjAzMywgMC4yNzAxMSwgMC4zMDg3NTMsIDAuMzcwNjA2LCAwLjQyNDc3OSwgMC41MDIxMjMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjUwMDUsIDAuMTMzOTg2LCAwLjI0NjI4NiwgMC4zMjY0MTEsIDAuNDU0OTg2LCAwLjU2NzI0MiwgMC43MjkwODYiLCBcCi0gICAgICAgICAgIjAuMDI1MDQ1LCAwLjEzMzk5MywgMC4yNDYyNjgsIDAuMzI2NDE5LCAwLjQ1NTQwMiwgMC41Njc1NTksIDAuNzI3NjE1IiwgXAotICAgICAgICAgICIwLjAyNTAyOCwgMC4xMzQwMjksIDAuMjQ2Mjk4LCAwLjMyNjQxNCwgMC40NTU0MiwgMC41Njc0NTUsIDAuNzI5MDUyIiwgXAotICAgICAgICAgICIwLjAyNTAzOCwgMC4xMzM5OTMsIDAuMjQ2MjcxLCAwLjMyNjQxNiwgMC40NTU0MDIsIDAuNTY3NTQsIDAuNzI3NjQ0IiwgXAotICAgICAgICAgICIwLjAyNTAzNSwgMC4xMzQwMywgMC4yNDYyNCwgMC4zMjY3MDYsIDAuNDU1NDE4LCAwLjU2NzQ2NiwgMC43Mjc2NzciLCBcCi0gICAgICAgICAgIjAuMDI1MDc2LCAwLjEzNDAxMSwgMC4yNDYyODEsIDAuMzI2NzI0LCAwLjQ1NTQwMSwgMC41Njc0MTcsIDAuNzI3Nzc4IiwgXAotICAgICAgICAgICIwLjAyNTA0NiwgMC4xMzM5OTMsIDAuMjQ1ODk4LCAwLjMyNjYwNSwgMC40NTUzMjksIDAuNTY3MjU4LCAwLjcyNzc4MSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcHJlc2V0OwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1MzQzNCwgMC4xMDg2NzMsIDAuMTYzNTg0LCAwLjIwMjgxNSwgMC4yNjU2MTgsIDAuMzIwNTc2LCAwLjM5OTE1MSIsIFwKLSAgICAgICAgICAiMC4wNjE1NSwgMC4xMTY3ODIsIDAuMTcxNjc4LCAwLjIxMDkxMywgMC4yNzM3MDgsIDAuMzI4NjczLCAwLjQwNzE5NiIsIFwKLSAgICAgICAgICAiMC4wNzA3MTMsIDAuMTI1ODQ3LCAwLjE4MDc0LCAwLjIxOTk3OSwgMC4yODI3OTIsIDAuMzM3NzI2LCAwLjQxNjI2MSIsIFwKLSAgICAgICAgICAiMC4wNzc2NDIsIDAuMTMyNjksIDAuMTg3NTgxLCAwLjIyNjgxOCwgMC4yODk2MTUsIDAuMzQ0NjAxLCAwLjQyMzExMyIsIFwKLSAgICAgICAgICAiMC4wODMyNDcsIDAuMTM4MTksIDAuMTkzMDYsIDAuMjMyMzM1LCAwLjI5NTE4MSwgMC4zNTAwOCwgMC40Mjg1ODEiLCBcCi0gICAgICAgICAgIjAuMDkwNTA1LCAwLjE0NTMyNiwgMC4yMDAxNzcsIDAuMjM5NDAzLCAwLjMwMjIwOSwgMC4zNTcxNjQsIDAuNDM1NjI4IiwgXAotICAgICAgICAgICIwLjA5NTc1NCwgMC4xNTA0NTYsIDAuMjA1Mjg5LCAwLjI0NDUwNCwgMC4zMDcyOTYsIDAuMzYyMjUzLCAwLjQ0MDgzMiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyNTMxOSwgMC4xMzc5MjEsIDAuMjUzNjI2LCAwLjMzNjYyLCAwLjQ2OTM1OSwgMC41ODU0NTUsIDAuNzUxMzU5IiwgXAotICAgICAgICAgICIwLjAyNTMyLCAwLjEzNzk2NSwgMC4yNTM1MDIsIDAuMzM2NjA2LCAwLjQ2OTIxNCwgMC41ODU0ODcsIDAuNzUxMzQ0IiwgXAotICAgICAgICAgICIwLjAyNTM0MSwgMC4xMzc5MjEsIDAuMjUzNjExLCAwLjMzNjcwNCwgMC40NjkyOTYsIDAuNTg0OTY2LCAwLjc1MTI2NCIsIFwKLSAgICAgICAgICAiMC4wMjU0OTksIDAuMTM4MDIyLCAwLjI1MzYyMywgMC4zMzY1OSwgMC40NjkyODksIDAuNTg1NDI4LCAwLjc1MTI3NSIsIFwKLSAgICAgICAgICAiMC4wMjU2NzgsIDAuMTM3OTYsIDAuMjUzNjM1LCAwLjMzNjYxMiwgMC40Njk0MTYsIDAuNTg1NDE3LCAwLjc1MDY3OCIsIFwKLSAgICAgICAgICAiMC4wMjU5MTksIDAuMTM4MDMsIDAuMjUzNjExLCAwLjMzNjQ1NCwgMC40NjkzNTgsIDAuNTg1NDQzLCAwLjc1MTIwMyIsIFwKLSAgICAgICAgICAiMC4wMjYwNywgMC4xMzc5ODksIDAuMjUzNTQsIDAuMzM2NDI0LCAwLjQ2OTM2NCwgMC41ODU0MjgsIDAuNzUwNjIzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEwMDU3LCAwLjAxMDE4NywgMC4wMTAyMDgsIDAuMDEwMjE1LCAwLjAxMDIyLCAwLjAxMDIyMywgMC4wMTAyMjYiLCBcCi0gICAgICAgICAgIjAuMDEwMDU3LCAwLjAxMDE4OCwgMC4wMTAyMDksIDAuMDEwMjE1LCAwLjAxMDIyMiwgMC4wMTAyMjQsIDAuMDEwMjM0IiwgXAotICAgICAgICAgICIwLjAxMDEwNCwgMC4wMTAyMzYsIDAuMDEwMjU2LCAwLjAxMDI2MywgMC4wMTAyNjgsIDAuMDEwMjcsIDAuMDEwMjgiLCBcCi0gICAgICAgICAgIjAuMDEwMTYyLCAwLjAxMDI5MiwgMC4wMTAzMTMsIDAuMDEwMzIsIDAuMDEwMzI2LCAwLjAxMDMyNywgMC4wMTAzMzgiLCBcCi0gICAgICAgICAgIjAuMDEwMjM5LCAwLjAxMDM2OCwgMC4wMTAzODksIDAuMDEwMzk1LCAwLjAxMDQwMiwgMC4wMTA0MDQsIDAuMDEwNDA2IiwgXAotICAgICAgICAgICIwLjAxMDM2LCAwLjAxMDQ5NiwgMC4wMTA1MDksIDAuMDEwNTIyLCAwLjAxMDUyNywgMC4wMTA1MzEsIDAuMDEwNTM0IiwgXAotICAgICAgICAgICIwLjAxMDQ1NywgMC4wMTA1NzcsIDAuMDEwNTk5LCAwLjAxMDYwNSwgMC4wMTA2MTIsIDAuMDEwNjEyLCAwLjAxMDYxNiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA5OTk2LCAwLjAxMDEwNiwgMC4wMTAxMjksIDAuMDEwMTM3LCAwLjAxMDE0OSwgMC4wMTAxNSwgMC4wMTAxNTEiLCBcCi0gICAgICAgICAgIjAuMDA5OTk1LCAwLjAxMDEsIDAuMDEwMTI0LCAwLjAxMDEzMiwgMC4wMTAxMzgsIDAuMDEwMTQ1LCAwLjAxMDE0NCIsIFwKLSAgICAgICAgICAiMC4wMTAwMjUsIDAuMDEwMTM1LCAwLjAxMDE1OCwgMC4wMTAxNjYsIDAuMDEwMTc2LCAwLjAxMDE3NiwgMC4wMTAxNzkiLCBcCi0gICAgICAgICAgIjAuMDEwMDg4LCAwLjAxMDE5MSwgMC4wMTAyMTMsIDAuMDEwMjIxLCAwLjAxMDIyNywgMC4wMTAyMzIsIDAuMDEwMjMzIiwgXAotICAgICAgICAgICIwLjAxMDE0OCwgMC4wMTAyNTUsIDAuMDEwMjc5LCAwLjAxMDI4NiwgMC4wMTAyOTMsIDAuMDEwMjk2LCAwLjAxMDI5OSIsIFwKLSAgICAgICAgICAiMC4wMTAyNTYsIDAuMDEwMzcsIDAuMDEwNDAxLCAwLjAxMDQwOSwgMC4wMTA0MTYsIDAuMDEwNDE5LCAwLjAxMDQyMiIsIFwKLSAgICAgICAgICAiMC4wMTAzMzQsIDAuMDEwNDQ0LCAwLjAxMDQ2OSwgMC4wMTA0NzcsIDAuMDEwNDg1LCAwLjAxMDQ4OSwgMC4wMTA0OTIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTEwMjIsIDAuMDExMTQ2LCAwLjAxMTE2MywgMC4wMTExNjksIDAuMDExMTczLCAwLjAxMTE3OCwgMC4wMTExNzgiLCBcCi0gICAgICAgICAgIjAuMDEwOTc3LCAwLjAxMTEwNiwgMC4wMTExMjgsIDAuMDExMTM2LCAwLjAxMTE0MiwgMC4wMTExNDYsIDAuMDExMTQ4IiwgXAotICAgICAgICAgICIwLjAxMTAxOCwgMC4wMTExMzIsIDAuMDExMTU5LCAwLjAxMTE2NywgMC4wMTExNzUsIDAuMDExMTc5LCAwLjAxMTE4MyIsIFwKLSAgICAgICAgICAiMC4wMTExMjEsIDAuMDExMjEzLCAwLjAxMTI0LCAwLjAxMTI0OSwgMC4wMTEyNTcsIDAuMDExMjYyLCAwLjAxMTI2NyIsIFwKLSAgICAgICAgICAiMC4wMTEyNzUsIDAuMDExMzE2LCAwLjAxMTMzOCwgMC4wMTEzNSwgMC4wMTEzNTYsIDAuMDExMzYxLCAwLjAxMTM2NSIsIFwKLSAgICAgICAgICAiMC4wMTE1MzQsIDAuMDExNTI5LCAwLjAxMTU1MiwgMC4wMTE1NjMsIDAuMDExNTcsIDAuMDExNTc2LCAwLjAxMTU3NyIsIFwKLSAgICAgICAgICAiMC4wMTE3ODgsIDAuMDExNzQ0LCAwLjAxMTc2MiwgMC4wMTE3NywgMC4wMTE3NzksIDAuMDExNzgzLCAwLjAxMTc4OCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihzY2FsYXIpIHsKLSAgICAgICAgdmFsdWVzKCIwIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihSTikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAyNDEzMzY7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAyMjMwNjI7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAyNDEzMzY7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxMTM4LCAwLjAwMTEzOCwgMC4wMDExMzcsIDAuMDAxMTM2LCAwLjAwMTEzNiwgMC4wMDExMzYsIDAuMDAxMTM3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxMTgsIDAuMDAxMTU1LCAwLjAwMTE0NiwgMC4wMDExNDMsIDAuMDAxMTQxLCAwLjAwMTE0LCAwLjAwMTEzOSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQmIVNFJiFTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fU0VfRVFfMF9BTl9TSV9FUV8wID09IDEnYjEiOwotICAgICAgZmFsbF9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDYzMDgyLCAwLjA2OTc1MiwgMC4wNzYzMTIsIDAuMDgxNjE0LCAwLjA4NTk2OCwgMC4wOTE1ODIsIDAuMDk1NzU0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogcmVjb3ZlcnlfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRCZTRSZTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fU0VfRVFfMV9BTl9TSV9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHJlY292ZXJ5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMjUsIC0wLjAzLCAtMC4wNDI1LCAtMC4wNDg3NSwgLTAuMDU1LCAtMC4wNjUsIC0wLjA2NzUiLCBcCi0gICAgICAgICAgIi0wLjAyNjI1LCAtMC4wMzc1LCAtMC4wNDM3NSwgLTAuMDUsIC0wLjA1NjI1LCAtMC4wNjYyNSwgLTAuMDY4NzUiLCBcCi0gICAgICAgICAgIi0wLjAyNjI1LCAtMC4wMzEyNSwgLTAuMDQzNzUsIC0wLjA1LCAtMC4wNTYyNSwgLTAuMDY2MjUsIC0wLjA2ODc1IiwgXAotICAgICAgICAgICItMC4wMTM3NSwgLTAuMDI1LCAtMC4wMzc1LCAtMC4wNDM3NSwgLTAuMDUsIC0wLjA2LCAtMC4wNjI1IiwgXAotICAgICAgICAgICItMC4wMDEyNSwgLTAuMDEyNSwgLTAuMDI1LCAtMC4wMzEyNSwgLTAuMDM3NSwgLTAuMDQ3NSwgLTAuMDU2MjUiLCBcCi0gICAgICAgICAgIjAuMDIxMjUsIDAuMDEsIC0wLjAwMjUsIC0wLjAxNSwgLTAuMDIxMjUsIC0wLjAzMTI1LCAtMC4wMzM3NSIsIFwKLSAgICAgICAgICAiMC4wMzYyNSwgMC4wMjUsIDAuMDEyNSwgMC4wMDYyNSwgMCwgLTAuMDEsIC0wLjAxODc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogcmVtb3ZhbF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEJlNFJlNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9TRV9FUV8xX0FOX1NJX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQocmVtb3ZhbF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzc1LCAwLjA0ODc1LCAwLjA1NSwgMC4wNjEyNSwgMC4wNjc1LCAwLjA3NzUsIDAuMDgiLCBcCi0gICAgICAgICAgIjAuMDQ1LCAwLjA1LCAwLjA2MjUsIDAuMDY4NzUsIDAuMDc1LCAwLjA3ODc1LCAwLjA4NzUiLCBcCi0gICAgICAgICAgIjAuMDQ1LCAwLjA1NjI1LCAwLjA2MjUsIDAuMDY4NzUsIDAuMDc1LCAwLjA4NSwgMC4wODc1IiwgXAotICAgICAgICAgICIwLjA1MTI1LCAwLjA1NjI1LCAwLjA2ODc1LCAwLjA3NSwgMC4wODEyNSwgMC4wODUsIDAuMDkzNzUiLCBcCi0gICAgICAgICAgIjAuMDUxMjUsIDAuMDYyNSwgMC4wNjg3NSwgMC4wNzUsIDAuMDgxMjUsIDAuMDkxMjUsIDAuMDkzNzUiLCBcCi0gICAgICAgICAgIjAuMDYsIDAuMDY1LCAwLjA3MTI1LCAwLjA3NzUsIDAuMDgzNzUsIDAuMDkzNzUsIDAuMDk2MjUiLCBcCi0gICAgICAgICAgIjAuMDU3NSwgMC4wNjg3NSwgMC4wNzUsIDAuMDgxMjUsIDAuMDg3NSwgMC4wOTc1LCAwLjEiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFNFKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE2NjQ0ODsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE2NjQ0ODsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE2NjQyNTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDU1NCwgMC4wMDU1NTgsIDAuMDA1NjQ4LCAwLjAwNTc2MywgMC4wMDU4OTMsIDAuMDA2MTM5LCAwLjAwNjM0MyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNzI2NCwgMC4wMDcyOSwgMC4wMDc0MTMsIDAuMDA3NTg3LCAwLjAwNzgwNSwgMC4wMDgxODYsIDAuMDA4NTI5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlJOIjsKLSAgICAgIHNkZl9jb25kIDogIlJOID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAxMjUsIC0wLjAwNzUsIC0wLjAwMTI1LCAwLjAwNSwgMC4wMTEyNSwgMC4wMTUsIDAuMDE3NSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLCAwLCAwLjAwMzc1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIC0wLjAwNjI1LCAwLjAwMzc1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIC0wLjAwMjUsIDAiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDg3NSwgMCIsIFwKLSAgICAgICAgICAiLTAuMDQsIC0wLjAzNSwgLTAuMDI4NzUsIC0wLjAyMjUsIC0wLjAxNjI1LCAtMC4wMTI1LCAtMC4wMSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxNSwgLTAuMDEyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAwNjI1LCAtMC4wMDEyNSwgMC4wMTEyNSwgMC4wMTEyNSwgMC4wMTc1LCAwLjAyMTI1LCAwLjAzIiwgXAotICAgICAgICAgICItMC4wMTEyNSwgLTAuMDA2MjUsIDAsIDAuMDA2MjUsIDAuMDEyNSwgMC4wMTYyNSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDE3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAsIDAsIDAuMDAzNzUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMTI1LCAtMC4wMDYyNSwgLTAuMDAyNSwgMCIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAxMjUsIC0wLjAwODc1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDMzNzUsIC0wLjAyODc1LCAtMC4wMjI1LCAtMC4wMjI1LCAtMC4wMjI1LCAtMC4wMTI1LCAtMC4wMSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAzMTI1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMjUsIC0wLjAyMTI1LCAtMC4wMTg3NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiUk4iOwotICAgICAgc2RmX2NvbmQgOiAiUk4gPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU2MjUsIDAuMDUxMjUsIDAuMDQ1LCAwLjAzODc1LCAwLjAzMjUsIDAuMDI4NzUsIDAuMDI2MjUiLCBcCi0gICAgICAgICAgIjAuMDY3NSwgMC4wNTYyNSwgMC4wNSwgMC4wNDM3NSwgMC4wNDM3NSwgMC4wNCwgMC4wMzc1IiwgXAotICAgICAgICAgICIwLjA3Mzc1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDUsIDAuMDQ2MjUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMDg2MjUsIDAuMDc1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDYyNSwgMC4wNTg3NSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiMC4wOTI1LCAwLjA4NzUsIDAuMDc1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjUsIDAuMDYyNSIsIFwKLSAgICAgICAgICAiMC4xMDI1LCAwLjA5NzUsIDAuMDkxMjUsIDAuMDg1LCAwLjA3ODc1LCAwLjA3NSwgMC4wNzI1IiwgXAotICAgICAgICAgICIwLjExMTI1LCAwLjEwNjI1LCAwLjEsIDAuMDkzNzUsIDAuMDg3NSwgMC4wODM3NSwgMC4wODEyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2ODc1LCAwLjA1NzUsIDAuMDUxMjUsIDAuMDUxMjUsIDAuMDQ1LCAwLjA0MTI1LCAwLjAzODc1IiwgXAotICAgICAgICAgICIwLjA3Mzc1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDUsIDAuMDQ2MjUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMDgsIDAuMDc1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDUyNSwgMC4wNSIsIFwKLSAgICAgICAgICAiMC4wODYyNSwgMC4wNzUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNjI1LCAwLjA1ODc1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICIwLjA4NjI1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1ODc1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICIwLjA5LCAwLjA4NSwgMC4wNzg3NSwgMC4wNzI1LCAwLjA2NjI1LCAwLjA2MjUsIDAuMDYiLCBcCi0gICAgICAgICAgIjAuMDkyNSwgMC4wODc1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNzUsIDAuMDY1LCAwLjA2MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFNJKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2ODQwMjY7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjgyOTg7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjg0MDI2OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzM0MywgMC4wMDMzMjYsIDAuMDAzMzQ2LCAwLjAwMzM4NiwgMC4wMDM0NTcsIDAuMDAzNTcsIDAuMDAzNjk0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA2MDcxLCAwLjAwNjA1NSwgMC4wMDYwNzIsIDAuMDA2MTE3LCAwLjAwNjE3MiwgMC4wMDYyODMsIDAuMDA2Mzk5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlJOJlNFIjsKLSAgICAgIHNkZl9jb25kIDogIlJOX0VRXzFfQU5fU0VfRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMzEyNSwgLTAuMDI2MjUsIC0wLjAyNjI1LCAtMC4wMiwgLTAuMDIsIC0wLjAxNjI1LCAtMC4wMTM3NSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDI1LCAtMC4wMjEyNSwgLTAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAyNzUsIC0wLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wNCwgLTAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjA2MTI1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDQ2MjUsIC0wLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjA3MTI1LCAtMC4wNjYyNSwgLTAuMDYsIC0wLjA2LCAtMC4wNTM3NSwgLTAuMDUsIC0wLjA0NzUiLCBcCi0gICAgICAgICAgIi0wLjA3Mzc1LCAtMC4wNjg3NSwgLTAuMDY4NzUsIC0wLjA2MjUsIC0wLjA2MjUsIC0wLjA1ODc1LCAtMC4wNTYyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAxMjUsIC0wLjAwMTI1LCAwLjAwNSwgMC4wMTEyNSwgMC4wMTEyNSwgMC4wMjEyNSwgMC4wMjM3NSIsIFwKLSAgICAgICAgICAiLTAuMDE3NSwgLTAuMDA2MjUsIDAsIDAuMDA2MjUsIDAuMDA2MjUsIDAuMDEsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgLTAuMDA2MjUsIDAsIDAuMDAzNzUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgLTAuMDA2MjUsIDAuMDAzNzUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgLTAuMDAyNSwgMCIsIFwKLSAgICAgICAgICAiLTAuMDMzNzUsIC0wLjAyODc1LCAtMC4wMjI1LCAtMC4wMTYyNSwgLTAuMDE2MjUsIC0wLjAxMjUsIC0wLjAwMzc1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDE1LCAtMC4wMTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJSTiZTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJSTl9FUV8xX0FOX1NFX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDYyNSwgMC4wNTEyNSwgMC4wNDUsIDAuMDQ1LCAwLjAzODc1LCAwLjAzNSwgMC4wMzI1IiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDYyNSwgMC4wNSwgMC4wNSwgMC4wNDM3NSwgMC4wNCwgMC4wMzc1IiwgXAotICAgICAgICAgICIwLjA3Mzc1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDUsIDAuMDQ2MjUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMDgsIDAuMDc1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDYyNSwgMC4wNTg3NSwgMC4wNSIsIFwKLSAgICAgICAgICAiMC4wOTI1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjg3NSwgMC4wNjUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIjAuMDk2MjUsIDAuMDkxMjUsIDAuMDg1LCAwLjA3ODc1LCAwLjA3ODc1LCAwLjA2ODc1LCAwLjA2NjI1IiwgXAotICAgICAgICAgICIwLjEwNSwgMC4xLCAwLjA5Mzc1LCAwLjA4NzUsIDAuMDgxMjUsIDAuMDc3NSwgMC4wNzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDM3NSwgMC4wMzg3NSwgMC4wMzI1LCAwLjAyNjI1LCAwLjAyLCAwLjAxLCAwLjAwNzUiLCBcCi0gICAgICAgICAgIjAuMDU1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDI1LCAwLjAxNSwgMC4wMTI1IiwgXAotICAgICAgICAgICIwLjA2MTI1LCAwLjA1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDIxMjUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMDY3NSwgMC4wNTYyNSwgMC4wNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAyNzUsIDAuMDI1IiwgXAotICAgICAgICAgICIwLjA3Mzc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDUsIDAuMDQzNzUsIDAuMDMzNzUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMDc3NSwgMC4wNzI1LCAwLjA2LCAwLjA1Mzc1LCAwLjA0NzUsIDAuMDQzNzUsIDAuMDM1IiwgXAotICAgICAgICAgICIwLjA4NjI1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA0NjI1LCAwLjA0Mzc1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBTREZGU0hRWDIgKgotICogLS0tLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChTREZGU0hRWDIpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMS4zMDQ0NTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBmZiAoTjMwLFFCSU5UKSB7Ci0gICAgbmV4dF9zdGF0ZSA6ICIoKFNFIFNJKSArICghU0UgRCkpIjsKLSAgICBjbG9ja2VkX29uIDogIkNLIjsKLSAgICBwcmVzZXQgOiAiKCFTTikiOwotICB9Ci0gIHBpbihDSykgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjQ5MjAxOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDY0OTEzNDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2NDkyMDE7Ci0gICAgY2xvY2sgOiB0cnVlOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzkzNywgMC4wMDM5MjksIDAuMDA0MDA1LCAwLjAwNDEwMSwgMC4wMDQyMTcsIDAuMDA0NDU5LCAwLjAwNDY2MiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwOTk3NSwgMC4wMDk5NjMsIDAuMDEwMDU3LCAwLjAxMDE4MywgMC4wMTAzMjYsIDAuMDEwNTEzLCAwLjAxMDcxNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQmIVNFJiFTSSZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fU0VfRVFfMF9BTl9TSV9FUV8wX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wOTg5NDgsIDAuMTA3MjM4LCAwLjExNjg1NSwgMC4xMjQ5MywgMC4xMzEzOTIsIDAuMTM5Nzg4LCAwLjE0NjE4NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDc0NzI4LCAwLjA4MjgzNSwgMC4wOTI1LCAwLjEwMDI5NCwgMC4xMDY0NzIsIDAuMTE0NjkxLCAwLjEyMDY2NyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwOTgyNjM4OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDk4MDIxNjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA5ODI2Mzg7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA0OTQ0LCAwLjAwNDksIDAuMDA0OTI1LCAwLjAwNDk2NiwgMC4wMDUwNTEsIDAuMDA1MjA1LCAwLjAwNTM5MSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNzQ4OSwgMC4wMDc0NjIsIDAuMDA3NDc5LCAwLjAwNzUzMSwgMC4wMDc1OTgsIDAuMDA3NzQ0LCAwLjAwNzg4NyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhU0UmU04iOwotICAgICAgc2RmX2NvbmQgOiAiU0VfRVFfMF9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAyNSwgLTAuMDIsIC0wLjAxMzc1LCAtMC4wMDc1LCAtMC4wMDc1LCAtMC4wMDM3NSwgMC4wMDUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA4NzUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzEyNSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxNSwgLTAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMjEyNSwgLTAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjA1NSwgLTAuMDQzNzUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDI3NSwgLTAuMDI1IiwgXAotICAgICAgICAgICItMC4wNTg3NSwgLTAuMDUzNzUsIC0wLjA0NzUsIC0wLjA0NzUsIC0wLjA0MTI1LCAtMC4wMzc1LCAtMC4wMzUiLCBcCi0gICAgICAgICAgIi0wLjA2NzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDUsIC0wLjA0NjI1LCAtMC4wNDM3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAwNjI1LCAwLjAwNSwgMC4wMTEyNSwgMC4wMTc1LCAwLjAyMzc1LCAwLjAzMzc1LCAwLjAzNjI1IiwgXAotICAgICAgICAgICItMC4wMTEyNSwgMCwgMC4wMDYyNSwgMC4wMTI1LCAwLjAxODc1LCAwLjAyMjUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjAxNzUsIC0wLjAwNjI1LCAwLCAwLjAwNjI1LCAwLjAxMjUsIDAuMDE2MjUsIDAuMDI1IiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAsIDAuMDA2MjUsIDAuMDEsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAsIDAuMDEsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDMzNzUsIC0wLjAyMjUsIC0wLjAxNjI1LCAtMC4wMSwgLTAuMDAzNzUsIDAsIDAuMDA4NzUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAtMC4wMDI1LCAwLjAwNjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhU0UmU04iOwotICAgICAgc2RmX2NvbmQgOiAiU0VfRVFfMF9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1LCAwLjAzODc1LCAwLjAzMjUsIDAuMDI2MjUsIDAuMDI2MjUsIDAuMDIyNSwgMC4wMiIsIFwKLSAgICAgICAgICAiMC4wNTUsIDAuMDUsIDAuMDM3NSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyNzUsIDAuMDI1IiwgXAotICAgICAgICAgICIwLjA2MTI1LCAwLjA1NjI1LCAwLjA1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDMzNzUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMDY3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1LCAwLjA0Mzc1LCAwLjA0LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIjAuMDczNzUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNTYyNSwgMC4wNDYyNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4wODM3NSwgMC4wNzg3NSwgMC4wNzI1LCAwLjA2NjI1LCAwLjA2LCAwLjA1NjI1LCAwLjA1Mzc1IiwgXAotICAgICAgICAgICIwLjA5MjUsIDAuMDgxMjUsIDAuMDc1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjUsIDAuMDYyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0Mzc1LCAwLjAzMjUsIDAuMDI2MjUsIDAuMDIsIDAuMDEzNzUsIDAuMDAzNzUsIC0wLjAwNSIsIFwKLSAgICAgICAgICAiMC4wNDg3NSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMTg3NSwgMC4wMDg3NSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiMC4wNTUsIDAuMDUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMjUsIDAuMDE1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMDYxMjUsIDAuMDU2MjUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMjEyNSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4wNjc1LCAwLjA1NjI1LCAwLjA1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDI3NSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4wNzc1LCAwLjA2NjI1LCAwLjA1Mzc1LCAwLjA0NzUsIDAuMDQxMjUsIDAuMDM3NSwgMC4wMjg3NSIsIFwKLSAgICAgICAgICAiMC4wOCwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1LCAwLjA0LCAwLjAzMTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihRKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuNjg2NTY3OwotICAgIGZ1bmN0aW9uIDogIk4zMCI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3NlbnNlIDogbm9uX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiByaXNpbmdfZWRnZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDgyNjc1LCAwLjE1OTU1MSwgMC4yMjA4NCwgMC4yOTc0NTgsIDAuMzc0MDYzLCAwLjQ1MDc4LCAwLjUyNzI5OSIsIFwKLSAgICAgICAgICAiMC4wOTA5MDUsIDAuMTY3Nzc3LCAwLjIyOTA4LCAwLjMwNTY5MSwgMC4zODIzMDIsIDAuNDU4OTI0LCAwLjUzNTUyMyIsIFwKLSAgICAgICAgICAiMC4xMDA1MiwgMC4xNzc0MDgsIDAuMjM4Njk4LCAwLjMxNTI5NywgMC4zOTE5MTYsIDAuNDY4NTQ3LCAwLjU0NTE3NyIsIFwKLSAgICAgICAgICAiMC4xMDgxMywgMC4xODUwMjEsIDAuMjQ2MzQ1LCAwLjMyMjkyNSwgMC4zOTk1MjksIDAuNDc2MTUsIDAuNTUyNzc1IiwgXAotICAgICAgICAgICIwLjExNDcxOSwgMC4xOTE2MDgsIDAuMjUyODk5LCAwLjMyOTUxMiwgMC40MDYxMjksIDAuNDgyNzIzLCAwLjU1OTM0OSIsIFwKLSAgICAgICAgICAiMC4xMjI5OTgsIDAuMTk5ODk0LCAwLjI2MTE3OCwgMC4zMzc3NzksIDAuNDE0Mzc3LCAwLjQ5MDk4NywgMC41Njc2MDMiLCBcCi0gICAgICAgICAgIjAuMTI5NDEzLCAwLjIwNjI4NSwgMC4yNjc1ODYsIDAuMzQ0MjAxLCAwLjQyMDgxOSwgMC40OTc0MjQsIDAuNTc0MDUxIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzOTQ5MywgMC4xOTg2NDYsIDAuMzI3ODU2LCAwLjQ4OTU2NywgMC42NTEyMjEsIDAuODEyMTExLCAwLjk3MzY0MSIsIFwKLSAgICAgICAgICAiMC4wMzk0OTIsIDAuMTk4NDgxLCAwLjMyNzEzMSwgMC40ODk1NjQsIDAuNjUwNzAzLCAwLjgxMjA3LCAwLjk3MzgyNSIsIFwKLSAgICAgICAgICAiMC4wMzk0OTMsIDAuMTk4NjU1LCAwLjMyNzU1NCwgMC40ODk1NTcsIDAuNjUxMiwgMC44MTIxNTIsIDAuOTczNDM3IiwgXAotICAgICAgICAgICIwLjAzOTQ3NywgMC4xOTg2NSwgMC4zMjczODgsIDAuNDg5NTQyLCAwLjY1MTIyMSwgMC44MTIxMzksIDAuOTczMTMiLCBcCi0gICAgICAgICAgIjAuMDM5NDk5LCAwLjE5ODY1LCAwLjMyNzg3OSwgMC40ODk1MzIsIDAuNjUwNzMxLCAwLjgxMjI4MywgMC45NzM1NSIsIFwKLSAgICAgICAgICAiMC4wMzk2OTIsIDAuMTk4NjUzLCAwLjMyNzgxNSwgMC40ODk0NDYsIDAuNjUxMDk4LCAwLjgxMjEzLCAwLjk3MzgxMyIsIFwKLSAgICAgICAgICAiMC4wMzk1MTEsIDAuMTk4NTQyLCAwLjMyNzg0MiwgMC40ODk0NDIsIDAuNjUxMTEyLCAwLjgxMjgyNiwgMC45NzQ1MzEiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk4OTUsIDAuMTc1MTMyLCAwLjIzNTczNiwgMC4zMTE1MjUsIDAuMzg3MjU4LCAwLjQ2Mjk5MywgMC41Mzg3NDgiLCBcCi0gICAgICAgICAgIjAuMTA3MjM4LCAwLjE4MzQxOSwgMC4yNDQwMTgsIDAuMzE5Nzg2LCAwLjM5NTU0NSwgMC40NzEzNTEsIDAuNTQ3MDE3IiwgXAotICAgICAgICAgICIwLjExNjg1NSwgMC4xOTMwMzYsIDAuMjUzNjM5LCAwLjMyOTM5OSwgMC40MDUxNjUsIDAuNDgwOTQ0LCAwLjU1NjY0IiwgXAotICAgICAgICAgICIwLjEyNDkzLCAwLjIwMTEwNywgMC4yNjE3MjEsIDAuMzM3NDczLCAwLjQxMzI0MiwgMC40ODkwMzUsIDAuNTY0NzE3IiwgXAotICAgICAgICAgICIwLjEzMTM5MiwgMC4yMDc1NzIsIDAuMjY4MTc1LCAwLjM0Mzk1OSwgMC40MTk2OTQsIDAuNDk1NDI4LCAwLjU3MTIwMSIsIFwKLSAgICAgICAgICAiMC4xMzk3ODgsIDAuMjE1OTY0LCAwLjI3NjU3MiwgMC4zNTIzNiwgMC40MjgwOTIsIDAuNTAzODIzLCAwLjU3OTYyIiwgXAotICAgICAgICAgICIwLjE0NjE4NSwgMC4yMjIzMjIsIDAuMjgyOTg0LCAwLjM1ODczNywgMC40MzQ1MDMsIDAuNTEwMjQ3LCAwLjU4NTk0NiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzg3MzEsIDAuMTkzNTI5LCAwLjMxOTM4NiwgMC40NzcwNDksIDAuNjM0NTUyLCAwLjc5MjA2OSwgMC45NDk2MzUiLCBcCi0gICAgICAgICAgIjAuMDM4NzMzLCAwLjE5MzM2NSwgMC4zMTkzOCwgMC40NzY5NjEsIDAuNjM0NTYyLCAwLjc5MTAxOSwgMC45NDk2MyIsIFwKLSAgICAgICAgICAiMC4wMzg3MDUsIDAuMTkzNTI3LCAwLjMxOTM4LCAwLjQ3Njk0LCAwLjYzNDU1OSwgMC43OTIyNDIsIDAuOTQ5NjM2IiwgXAotICAgICAgICAgICIwLjAzODY5NiwgMC4xOTMzOTksIDAuMzE5NDI5LCAwLjQ3Njk0MiwgMC42MzM4NDEsIDAuNzkwNjQzLCAwLjk0OTU2NCIsIFwKLSAgICAgICAgICAiMC4wMzg2OTEsIDAuMTkzNTMxLCAwLjMxOTM4MiwgMC40NzcwMiwgMC42MzQ1MzYsIDAuNzkyMDU1LCAwLjk0ODU3NSIsIFwKLSAgICAgICAgICAiMC4wMzg2ODcsIDAuMTkzNTYyLCAwLjMxOTAxMiwgMC40NzcwNSwgMC42MzQ1NDYsIDAuNzkxOTI5LCAwLjk0OTgwNCIsIFwKLSAgICAgICAgICAiMC4wMzg3MTcsIDAuMTkzNTY4LCAwLjMxOTQzMiwgMC40NzY5NDYsIDAuNjMzODg4LCAwLjc5MjExOSwgMC45NDg1MiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcHJlc2V0OwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzEzNjMsIDAuMTQ4MjQ5LCAwLjIwOTU2OSwgMC4yODYxNDcsIDAuMzYyNzYzLCAwLjQzOTM4MywgMC41MTU5OTIiLCBcCi0gICAgICAgICAgIjAuMDc5MzY5LCAwLjE1NjIzNiwgMC4yMTc1NzEsIDAuMjk0MTUzLCAwLjM3MDc4NCwgMC40NDc0LCAwLjUyMzk4MSIsIFwKLSAgICAgICAgICAiMC4wODg3MjksIDAuMTY1NjIyLCAwLjIyNjk0MiwgMC4zMDM1MDgsIDAuMzgwMTYsIDAuNDU2NzksIDAuNTMzNDkiLCBcCi0gICAgICAgICAgIjAuMDk2MjksIDAuMTczMTcsIDAuMjM0NDg0LCAwLjMxMTA3OSwgMC4zODc3MDgsIDAuNDY0MzA1LCAwLjU0MDk2IiwgXAotICAgICAgICAgICIwLjEwMjU5NCwgMC4xNzk0NTIsIDAuMjQwNjk1LCAwLjMxNzMwMiwgMC4zOTM5NDUsIDAuNDcwNTYyLCAwLjU0NzE2MiIsIFwKLSAgICAgICAgICAiMC4xMTA1NjQsIDAuMTg3NDAyLCAwLjI0ODczLCAwLjMyNTMzMSwgMC40MDE5NTksIDAuNDc4NTk2LCAwLjU1NTI3NyIsIFwKLSAgICAgICAgICAiMC4xMTYzMTksIDAuMTkzMTY4LCAwLjI1NDQ4NSwgMC4zMzExODksIDAuNDA3NzQ5LCAwLjQ4NDQ0NSwgMC41NjA5MjkiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM5NDA0LCAwLjE5ODY2NywgMC4zMjc5MTUsIDAuNDg5NTU4LCAwLjY1MDczOSwgMC44MTI5NzcsIDAuOTc0NjA4IiwgXAotICAgICAgICAgICIwLjAzOTQyMSwgMC4xOTg3MDQsIDAuMzI3ODcxLCAwLjQ4OTQwNSwgMC42NTExMzksIDAuODEyOTIxLCAwLjk3Mzg4NiIsIFwKLSAgICAgICAgICAiMC4wMzkzOTQsIDAuMTk4NjU2LCAwLjMyNzkzMSwgMC40ODk2NzMsIDAuNjUxMTA2LCAwLjgxMywgMC45NzQ2NTUiLCBcCi0gICAgICAgICAgIjAuMDM5NDgsIDAuMTk4NzE5LCAwLjMyNzkxNywgMC40ODk0NzMsIDAuNjUwNjY3LCAwLjgxMjk4MywgMC45NzQ0NzEiLCBcCi0gICAgICAgICAgIjAuMDM5NTA0LCAwLjE5ODY0NCwgMC4zMjc4MzEsIDAuNDg5NTMxLCAwLjY1MTI1MSwgMC44MTI4NDIsIDAuOTczODI2IiwgXAotICAgICAgICAgICIwLjAzOTU5NCwgMC4xOTg1NzMsIDAuMzI3ODkyLCAwLjQ4OTUxMiwgMC42NTExODUsIDAuODEyODU0LCAwLjk3NDYwMiIsIFwKLSAgICAgICAgICAiMC4wMzk2NTIsIDAuMTk4NDM4LCAwLjMyNzkwMSwgMC40ODkzMzMsIDAuNjUxMDg2LCAwLjgxMjc4MiwgMC45NzQ1NjciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEwMzIsIDAuMDEwMzU1LCAwLjAxMDM1OCwgMC4wMTAzNiwgMC4wMTAzNjIsIDAuMDEwMzYzLCAwLjAxMDM2NCIsIFwKLSAgICAgICAgICAiMC4wMTAzLCAwLjAxMDMzNSwgMC4wMTAzMzksIDAuMDEwMzQxLCAwLjAxMDM0MywgMC4wMTAzNDIsIDAuMDEwMzQzIiwgXAotICAgICAgICAgICIwLjAxMDM4NCwgMC4wMTA0MTgsIDAuMDEwNDIzLCAwLjAxMDQyNiwgMC4wMTA0MjUsIDAuMDEwNDI3LCAwLjAxMDQzIiwgXAotICAgICAgICAgICIwLjAxMDUxNSwgMC4wMTA1NTMsIDAuMDEwNTU3LCAwLjAxMDU2LCAwLjAxMDU2MSwgMC4wMTA1NjQsIDAuMDEwNTYyIiwgXAotICAgICAgICAgICIwLjAxMDYwOSwgMC4wMTA2NDUsIDAuMDEwNjQ5LCAwLjAxMDY1MSwgMC4wMTA2NTMsIDAuMDEwNjUzLCAwLjAxMDY1MyIsIFwKLSAgICAgICAgICAiMC4wMTA4NSwgMC4wMTA4ODQsIDAuMDEwODg1LCAwLjAxMDg4NywgMC4wMTA4ODksIDAuMDEwODg5LCAwLjAxMDg5IiwgXAotICAgICAgICAgICIwLjAxMTAxLCAwLjAxMTA0NSwgMC4wMTEwNTUsIDAuMDExMDU3LCAwLjAxMTA1NSwgMC4wMTEwNTgsIDAuMDExMDU3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEwMTc1LCAwLjAxMDI1NCwgMC4wMTAyNjUsIDAuMDEwMjcxLCAwLjAxMDI3NCwgMC4wMTAyNzYsIDAuMDEwMjc3IiwgXAotICAgICAgICAgICIwLjAxMDE2NCwgMC4wMTAyNDIsIDAuMDEwMjUzLCAwLjAxMDI1OCwgMC4wMTAyNjEsIDAuMDEwMjYyLCAwLjAxMDI2NCIsIFwKLSAgICAgICAgICAiMC4wMTAyNzIsIDAuMDEwMzUxLCAwLjAxMDM2MiwgMC4wMTAzNjgsIDAuMDEwMzcsIDAuMDEwMzcyLCAwLjAxMDM3NCIsIFwKLSAgICAgICAgICAiMC4wMTA0MDEsIDAuMDEwNDgsIDAuMDEwNDksIDAuMDEwNDk1LCAwLjAxMDQ5OCwgMC4wMTA1LCAwLjAxMDUwMSIsIFwKLSAgICAgICAgICAiMC4wMTA1MjQsIDAuMDEwNjAyLCAwLjAxMDYxMywgMC4wMTA2MTksIDAuMDEwNjIyLCAwLjAxMDYyMywgMC4wMTA2MjUiLCBcCi0gICAgICAgICAgIjAuMDEwNzc1LCAwLjAxMDg1NSwgMC4wMTA4NjcsIDAuMDEwODczLCAwLjAxMDg3NiwgMC4wMTA4NzcsIDAuMDEwODc5IiwgXAotICAgICAgICAgICIwLjAxMSwgMC4wMTEwNzgsIDAuMDExMDg4LCAwLjAxMTA5NSwgMC4wMTEwOTYsIDAuMDExMDk4LCAwLjAxMTA5OSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTE0MTYsIDAuMDExNDUyLCAwLjAxMTQ2MSwgMC4wMTE0NTksIDAuMDExNDYsIDAuMDExNDYxLCAwLjAxMTQ2NyIsIFwKLSAgICAgICAgICAiMC4wMTEzNzUsIDAuMDExNDExLCAwLjAxMTQxNiwgMC4wMTE0MTgsIDAuMDExNDIyLCAwLjAxMTQyMiwgMC4wMTE0MjIiLCBcCi0gICAgICAgICAgIjAuMDExMzgyLCAwLjAxMTQyLCAwLjAxMTQyNSwgMC4wMTE0MjcsIDAuMDExNDI5LCAwLjAxMTQyOSwgMC4wMTE0MyIsIFwKLSAgICAgICAgICAiMC4wMTE0NTQsIDAuMDExNDk0LCAwLjAxMTQ5OSwgMC4wMTE1MDIsIDAuMDExNTAzLCAwLjAxMTUwNSwgMC4wMTE1MDYiLCBcCi0gICAgICAgICAgIjAuMDExNTM5LCAwLjAxMTU3NCwgMC4wMTE1OSwgMC4wMTE1OTIsIDAuMDExNTkzLCAwLjAxMTU5NSwgMC4wMTE1OTYiLCBcCi0gICAgICAgICAgIjAuMDExNzEsIDAuMDExNzQ2LCAwLjAxMTc1MSwgMC4wMTE3NTQsIDAuMDExNzU2LCAwLjAxMTc1OCwgMC4wMTE3NTciLCBcCi0gICAgICAgICAgIjAuMDExODc4LCAwLjAxMTkxMSwgMC4wMTE5MTcsIDAuMDExOTIxLCAwLjAxMTkyNSwgMC4wMTE5MjIsIDAuMDExOTIzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHNjYWxhcikgewotICAgICAgICB2YWx1ZXMoIjAiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFNFKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE1ODY0MTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE1ODY0MTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE1ODU2ODsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDcxMTEsIDAuMDA3MTA4LCAwLjAwNzE3NSwgMC4wMDcyODMsIDAuMDA3NDAyLCAwLjAwNzY1NywgMC4wMDc4NTkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDkxMTgsIDAuMDA5MTExLCAwLjAwOTI0NSwgMC4wMDk0MjksIDAuMDA5NjY4LCAwLjAxMDA3MiwgMC4wMTA0NTMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiU04iOwotICAgICAgc2RmX2NvbmQgOiAiU04gPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDEyNSwgLTAuMDA3NSwgMC4wMDUsIDAuMDExMjUsIDAuMDE3NSwgMC4wMjEyNSwgMC4wMyIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLCAwLjAwNjI1LCAwLjAxNjI1LCAwLjAxODc1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLCAwLjAxLCAwLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMC4wMDM3NSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIC0wLjAwMjUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA0LCAtMC4wMzUsIC0wLjAyODc1LCAtMC4wMjI1LCAtMC4wMTYyNSwgLTAuMDA2MjUsIC0wLjAwMzc1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAwODc1LCAtMC4wMDYyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAsIDAuMDExMjUsIDAuMDE3NSwgMC4wMjM3NSwgMC4wMywgMC4wMzM3NSwgMC4wNDI1IiwgXAotICAgICAgICAgICItMC4wMDUsIDAsIDAuMDEyNSwgMC4wMTg3NSwgMC4wMTg3NSwgMC4wMjg3NSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDE3NSwgLTAuMDA2MjUsIDAsIDAuMDA2MjUsIDAuMDEyNSwgMC4wMjI1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLCAwLjAwNjI1LCAwLjAxLCAwLjAxODc1IiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLCAwLjAxLCAwLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjAzMzc1LCAtMC4wMjg3NSwgLTAuMDE2MjUsIC0wLjAxLCAtMC4wMSwgMCwgMC4wMDI1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwMjUsIDAiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlNOIjsKLSAgICAgIHNkZl9jb25kIDogIlNOID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1LCAwLjA0NSwgMC4wMzI1LCAwLjAyNjI1LCAwLjAyLCAwLjAxNjI1LCAwLjAxMzc1IiwgXAotICAgICAgICAgICIwLjA2MTI1LCAwLjA1LCAwLjA0Mzc1LCAwLjAzMTI1LCAwLjAzMTI1LCAwLjAyMTI1LCAwLjAxODc1IiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDU2MjUsIDAuMDUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzM3NSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4wNzM3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1LCAwLjA0Mzc1LCAwLjA0LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIjAuMDczNzUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNSwgMC4wNDYyNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4wODM3NSwgMC4wNzg3NSwgMC4wNzI1LCAwLjA2NjI1LCAwLjA2LCAwLjA1NjI1LCAwLjA1Mzc1IiwgXAotICAgICAgICAgICIwLjA5MjUsIDAuMDg3NSwgMC4wODEyNSwgMC4wNzUsIDAuMDY4NzUsIDAuMDY1LCAwLjA2MjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTYyNSwgMC4wNTEyNSwgMC4wNDUsIDAuMDM4NzUsIDAuMDM4NzUsIDAuMDI4NzUsIDAuMDI2MjUiLCBcCi0gICAgICAgICAgIjAuMDY3NSwgMC4wNTYyNSwgMC4wNSwgMC4wNSwgMC4wNDM3NSwgMC4wNCwgMC4wMzc1IiwgXAotICAgICAgICAgICIwLjA3Mzc1LCAwLjA2ODc1LCAwLjA1NjI1LCAwLjA1NjI1LCAwLjA1LCAwLjA0NjI1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjA4LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDU2MjUsIDAuMDUyNSwgMC4wNSIsIFwKLSAgICAgICAgICAiMC4wOCwgMC4wNzUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNTI1LCAwLjA1IiwgXAotICAgICAgICAgICIwLjA5LCAwLjA3ODc1LCAwLjA3MjUsIDAuMDY2MjUsIDAuMDY2MjUsIDAuMDYyNSwgMC4wNTM3NSIsIFwKLSAgICAgICAgICAiMC4wOTI1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNzUsIDAuMDY4NzUsIDAuMDY1LCAwLjA2MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFNJKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA5NTc4MDE7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwOTU1ODc5OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDk1NzgwMTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDQ0NDgsIDAuMDA0NDA0LCAwLjAwNDQyNiwgMC4wMDQ0NjksIDAuMDA0NTU2LCAwLjAwNDcwNSwgMC4wMDQ4NTgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDc5MzYsIDAuMDA3OTA5LCAwLjAwNzkzMiwgMC4wMDc5OCwgMC4wMDgwNDgsIDAuMDA4MjAyLCAwLjAwODM1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlNFJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIlNFX0VRXzFfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMjUsIC0wLjAyLCAtMC4wMTM3NSwgLTAuMDA3NSwgLTAuMDA3NSwgLTAuMDAzNzUsIC0wLjAwMTI1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwODc1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDMxMjUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTUsIC0wLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wMzc1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDMxMjUsIC0wLjAyMTI1LCAtMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNDM3NSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMjc1LCAtMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjA1ODc1LCAtMC4wNTM3NSwgLTAuMDQ3NSwgLTAuMDQ3NSwgLTAuMDQxMjUsIC0wLjAzNzUsIC0wLjAzNSIsIFwKLSAgICAgICAgICAiLTAuMDY3NSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNSwgLTAuMDQ2MjUsIC0wLjA0Mzc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDA2MjUsIDAuMDA1LCAwLjAxMTI1LCAwLjAxNzUsIDAuMDIzNzUsIDAuMDI3NSwgMC4wMzYyNSIsIFwKLSAgICAgICAgICAiLTAuMDExMjUsIDAsIDAuMDA2MjUsIDAuMDEyNSwgMC4wMTg3NSwgMC4wMjI1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wMTc1LCAtMC4wMDYyNSwgMCwgMC4wMDYyNSwgMC4wMTI1LCAwLjAxNjI1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLCAwLjAwNjI1LCAwLjAxLCAwLjAxODc1IiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLCAwLjAxLCAwLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjAzMzc1LCAtMC4wMjI1LCAtMC4wMTYyNSwgLTAuMDEsIC0wLjAwMzc1LCAwLCAwLjAwODc1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDMxMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMTI1LCAtMC4wMDI1LCAwIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJTRSZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJTRV9FUV8xX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDUsIDAuMDM4NzUsIDAuMDMyNSwgMC4wMjYyNSwgMC4wMjYyNSwgMC4wMjI1LCAwLjAxMzc1IiwgXAotICAgICAgICAgICIwLjA1NSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDI3NSwgMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMDYxMjUsIDAuMDU2MjUsIDAuMDUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzM3NSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4wNjc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDUsIDAuMDQzNzUsIDAuMDQsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiMC4wNzM3NSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1LCAwLjA0NjI1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjA4Mzc1LCAwLjA3ODc1LCAwLjA3MjUsIDAuMDY2MjUsIDAuMDYsIDAuMDU2MjUsIDAuMDUzNzUiLCBcCi0gICAgICAgICAgIjAuMDkyNSwgMC4wODEyNSwgMC4wNzUsIDAuMDY4NzUsIDAuMDY4NzUsIDAuMDY1LCAwLjA2MjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDM3NSwgMC4wMzI1LCAwLjAyNjI1LCAwLjAyLCAwLjAxMzc1LCAwLjAwMzc1LCAtMC4wMDUiLCBcCi0gICAgICAgICAgIjAuMDQ4NzUsIDAuMDQzNzUsIDAuMDMxMjUsIDAuMDI1LCAwLjAxODc1LCAwLjAwODc1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICIwLjA1NSwgMC4wNSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMTUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4wNjEyNSwgMC4wNTYyNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyMTI1LCAwLjAxODc1IiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDU2MjUsIDAuMDUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMjc1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiMC4wNzc1LCAwLjA2NjI1LCAwLjA1Mzc1LCAwLjA0NzUsIDAuMDQxMjUsIDAuMDM3NSwgMC4wMjg3NSIsIFwKLSAgICAgICAgICAiMC4wOCwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1LCAwLjA0LCAwLjAzNzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFNOKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE3NzUxMzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE2MzUxMzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE3NzUxMzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA4NDIsIDAuMDAwODQxLCAwLjAwMDg0LCAwLjAwMDg0MSwgMC4wMDA4NDEsIDAuMDAwODQsIDAuMDAwODQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA4NzIsIDAuMDAwODUyLCAwLjAwMDg0OCwgMC4wMDA4NDUsIDAuMDAwODQ0LCAwLjAwMDg0NCwgMC4wMDA4NDMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiU04iOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFEJiFTRSYhU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1NFX0VRXzBfQU5fU0lfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjA3MTM2MywgMC4wNzkzNjksIDAuMDg4NzI5LCAwLjA5NjI5LCAwLjEwMjU5NCwgMC4xMTA1NjQsIDAuMTE2MzE5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogcmVjb3ZlcnlfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRCYhU0UmIVNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9TRV9FUV8wX0FOX1NJX0VRXzAgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQocmVjb3ZlcnlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAsIC0wLjAxMTI1LCAtMC4wMjM3NSwgLTAuMDMsIC0wLjAzNjI1LCAtMC4wNDYyNSwgLTAuMDU1IiwgXAotICAgICAgICAgICIwLjAwNSwgLTAuMDA2MjUsIC0wLjAxODc1LCAtMC4wMjUsIC0wLjAzMTI1LCAtMC4wNDEyNSwgLTAuMDUiLCBcCi0gICAgICAgICAgIjAuMDExMjUsIDAsIC0wLjAwNjI1LCAtMC4wMTg3NSwgLTAuMDI1LCAtMC4wMzUsIC0wLjAzNzUiLCBcCi0gICAgICAgICAgIjAuMDE3NSwgMC4wMDYyNSwgMCwgLTAuMDEyNSwgLTAuMDE4NzUsIC0wLjAyMjUsIC0wLjAzMTI1IiwgXAotICAgICAgICAgICIwLjAyMzc1LCAwLjAxODc1LCAwLjAwNjI1LCAwLCAtMC4wMDYyNSwgLTAuMDE2MjUsIC0wLjAyNSIsIFwKLSAgICAgICAgICAiMC4wNCwgMC4wMjg3NSwgMC4wMTYyNSwgMC4wMSwgMC4wMDM3NSwgLTAuMDA2MjUsIC0wLjAxNSIsIFwKLSAgICAgICAgICAiMC4wNDg3NSwgMC4wMzc1LCAwLjAyNSwgMC4wMTg3NSwgMC4wMTI1LCAwLjAwMjUsIC0wLjAwNjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogcmVtb3ZhbF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEJiFTRSYhU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1NFX0VRXzBfQU5fU0lfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChyZW1vdmFsX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzMTI1LCAwLjAzNjI1LCAwLjA0ODc1LCAwLjA1NSwgMC4wNjEyNSwgMC4wNzEyNSwgMC4wNzM3NSIsIFwKLSAgICAgICAgICAiMC4wMjYyNSwgMC4wMzEyNSwgMC4wNDM3NSwgMC4wNSwgMC4wNTYyNSwgMC4wNjYyNSwgMC4wNjg3NSIsIFwKLSAgICAgICAgICAiMC4wMTM3NSwgMC4wMjUsIDAuMDMxMjUsIDAuMDQzNzUsIDAuMDUsIDAuMDUzNzUsIDAuMDYyNSIsIFwKLSAgICAgICAgICAiMC4wMDc1LCAwLjAxODc1LCAwLjAyNSwgMC4wMzc1LCAwLjA0Mzc1LCAwLjA0NzUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIjAuMDA3NSwgMC4wMTI1LCAwLjAyNSwgMC4wMzEyNSwgMC4wMzc1LCAwLjA0MTI1LCAwLjA1IiwgXAotICAgICAgICAgICItMC4wMDI1LCAwLjAwMjUsIDAuMDE1LCAwLjAyMTI1LCAwLjAyNzUsIDAuMDM3NSwgMC4wNCIsIFwKLSAgICAgICAgICAiLTAuMDExMjUsIDAsIDAuMDA2MjUsIDAuMDE4NzUsIDAuMDI1LCAwLjAyODc1LCAwLjAzNzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogU0RGRlNSWDIgKgotICogLS0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKFNERkZTUlgyKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDEuNTA5NDsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBmZiAoTjM1LFFCSU5UKSB7Ci0gICAgbmV4dF9zdGF0ZSA6ICIoKFNFIFNJKSArICghU0UgRCkpIjsKLSAgICBjbG9ja2VkX29uIDogIkNLIjsKLSAgICBjbGVhciA6ICIoIVJOKSI7Ci0gICAgcHJlc2V0IDogIighU04pIjsKLSAgICBjbGVhcl9wcmVzZXRfdmFyMSA6IEg7Ci0gICAgY2xlYXJfcHJlc2V0X3ZhcjIgOiBMOwotICB9Ci0gIHBpbihDSykgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjYwNDY3OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDY2MDQ2NzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2NjA0Mjc7Ci0gICAgY2xvY2sgOiB0cnVlOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzc5NywgMC4wMDM3OTEsIDAuMDAzODQ1LCAwLjAwMzk2MSwgMC4wMDQwNTgsIDAuMDA0MjY5LCAwLjAwNDQ3MyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwOTU2MSwgMC4wMDk1NiwgMC4wMDk2NjMsIDAuMDA5NzU0LCAwLjAwOTg5OCwgMC4wMTAxNjIsIDAuMDEwMjk2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRCZSTiYhU0UmIVNJJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9STl9FUV8xX0FOX1NFX0VRXzBfQU5fU0lfRVFfMF9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMTIwNzkyLCAwLjEyODk3NSwgMC4xMzgzMTcsIDAuMTQ1ODkyLCAwLjE1MTk4NCwgMC4xNTk5MjEsIDAuMTY1OTc0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wODAyODcsIDAuMDg4MjcyLCAwLjA5NzczLCAwLjEwNTA5OSwgMC4xMTA5ODEsIDAuMTE4NjQxLCAwLjEyNDI5NiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjU0MjE3OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDY1Mjk3NzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2NTQyMTc7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA0MDk5LCAwLjAwNDA3OCwgMC4wMDQwODcsIDAuMDA0MTI4LCAwLjAwNDE3NiwgMC4wMDQyODMsIDAuMDA0NDE0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA2Mjg5LCAwLjAwNjI3NCwgMC4wMDYyODQsIDAuMDA2MzIyLCAwLjAwNjM3MiwgMC4wMDY0NzUsIDAuMDA2NTc5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlJOJiFTRSZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJSTl9FUV8xX0FOX1NFX0VRXzBfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMzc1LCAtMC4wMzI1LCAtMC4wMjYyNSwgLTAuMDIsIC0wLjAyLCAtMC4wMTYyNSwgLTAuMDEzNzUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMjEyNSwgLTAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAyNzUsIC0wLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wNCwgLTAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjA2MTI1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjA1LCAtMC4wNSwgLTAuMDQ2MjUsIC0wLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjA3MTI1LCAtMC4wNjYyNSwgLTAuMDYsIC0wLjA2LCAtMC4wNTM3NSwgLTAuMDUsIC0wLjA0NzUiLCBcCi0gICAgICAgICAgIi0wLjA3Mzc1LCAtMC4wNjg3NSwgLTAuMDY4NzUsIC0wLjA2MjUsIC0wLjA2MjUsIC0wLjA1ODc1LCAtMC4wNTYyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAxMjUsIC0wLjAwNzUsIC0wLjAwMTI1LCAwLjAwNSwgMC4wMTEyNSwgMC4wMTUsIDAuMDIzNzUiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMCwgMC4wMDYyNSwgMC4wMSwgMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLCAwLjAwMzc1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIC0wLjAwMjUsIDAiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA4NzUsIDAiLCBcCi0gICAgICAgICAgIi0wLjA0NjI1LCAtMC4wMzUsIC0wLjAyODc1LCAtMC4wMjI1LCAtMC4wMjI1LCAtMC4wMTI1LCAtMC4wMSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMjEyNSwgLTAuMDEyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiUk4mIVNFJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIlJOX0VRXzFfQU5fU0VfRVFfMF9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4NzUsIDAuMDc2MjUsIDAuMDYzNzUsIDAuMDU3NSwgMC4wNTc1LCAwLjA0NzUsIDAuMDQ1IiwgXAotICAgICAgICAgICIwLjA5MjUsIDAuMDgxMjUsIDAuMDc1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDUyNSwgMC4wNSIsIFwKLSAgICAgICAgICAiMC4wOTg3NSwgMC4wODc1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIjAuMTA1LCAwLjEsIDAuMDg3NSwgMC4wODEyNSwgMC4wNzUsIDAuMDcxMjUsIDAuMDYyNSIsIFwKLSAgICAgICAgICAiMC4xMTEyNSwgMC4xMDYyNSwgMC4wOTM3NSwgMC4wODc1LCAwLjA4MTI1LCAwLjA3NzUsIDAuMDY4NzUiLCBcCi0gICAgICAgICAgIjAuMTIxMjUsIDAuMTE2MjUsIDAuMTAzNzUsIDAuMDk3NSwgMC4wOTEyNSwgMC4wODc1LCAwLjA3ODc1IiwgXAotICAgICAgICAgICIwLjEzLCAwLjExODc1LCAwLjExMjUsIDAuMTA2MjUsIDAuMSwgMC4wOSwgMC4wODc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY4NzUsIDAuMDU3NSwgMC4wNDUsIDAuMDM4NzUsIDAuMDMyNSwgMC4wMjg3NSwgMC4wMiIsIFwKLSAgICAgICAgICAiMC4wNzM3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDMzNzUsIDAuMDI1IiwgXAotICAgICAgICAgICIwLjA4LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDUsIDAuMDQsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiMC4wODYyNSwgMC4wNzUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNDYyNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4wOTI1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1MjUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMDk2MjUsIDAuMDkxMjUsIDAuMDc4NzUsIDAuMDcyNSwgMC4wNjYyNSwgMC4wNjI1LCAwLjA1Mzc1IiwgXAotICAgICAgICAgICIwLjEwNSwgMC4wOTM3NSwgMC4wODc1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNjUsIDAuMDYyNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjY4MTIwNDsKLSAgICBmdW5jdGlvbiA6ICJOMzUiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5vbl91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcmlzaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5ODU1MywgMC4xNzY4NTMsIDAuMjM4NjE2LCAwLjMxNjEzNCwgMC4zOTM1MywgMC40NzA2NzUsIDAuNTQ4MTE1IiwgXAotICAgICAgICAgICIwLjEwNjY2OSwgMC4xODUwMDEsIDAuMjQ2Nzc2LCAwLjMyNDM5NiwgMC40MDE2NSwgMC40Nzg5MzIsIDAuNTU2MzcxIiwgXAotICAgICAgICAgICIwLjExNTk1NSwgMC4xOTQyNjEsIDAuMjU2MDIxLCAwLjMzMzQwMSwgMC40MTA5MiwgMC40ODg0MDksIDAuNTY1NDU0IiwgXAotICAgICAgICAgICIwLjEyMzUxOSwgMC4yMDE3NywgMC4yNjM3NzMsIDAuMzQwOTExLCAwLjQxODM1MSwgMC40OTU4ODksIDAuNTczMDA2IiwgXAotICAgICAgICAgICIwLjEyOTYwMiwgMC4yMDc5MjIsIDAuMjY5NjgsIDAuMzQ3Mjk5LCAwLjQyNDU3NCwgMC41MDE4NSwgMC41NzkyNTciLCBcCi0gICAgICAgICAgIjAuMTM3ODE4LCAwLjIxNjExMywgMC4yNzgxMjUsIDAuMzU1NTM2LCAwLjQzMjc5MSwgMC41MTAwNzksIDAuNTg3MzExIiwgXAotICAgICAgICAgICIwLjE0MzYyMiwgMC4yMjE4NzgsIDAuMjgzOTc3LCAwLjM2MTAxNCwgMC40Mzg2MTMsIDAuNTE1OTUxLCAwLjU5MzIwNSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDI1MjQsIDAuMjAxMDQ4LCAwLjMzMTAyLCAwLjQ5NDE4OCwgMC42NTc4NzIsIDAuODIwMjcsIDAuOTg0NTExIiwgXAotICAgICAgICAgICIwLjA0MjUyNCwgMC4yMDEyODksIDAuMzMwOTUsIDAuNDk0MjkxLCAwLjY1Nzg3MiwgMC44MjExNzMsIDAuOTg0NTUiLCBcCi0gICAgICAgICAgIjAuMDQyNDgsIDAuMjAxMDc5LCAwLjMzMTAxNiwgMC40OTM4NjQsIDAuNjU3ODM5LCAwLjgxOTY2NywgMC45ODMxNTEiLCBcCi0gICAgICAgICAgIjAuMDQyNTg4LCAwLjIwMTI4MiwgMC4zMzExMTUsIDAuNDkzNzQ4LCAwLjY1NzQ0NCwgMC44MjEyMDksIDAuOTgzMjEyIiwgXAotICAgICAgICAgICIwLjA0MjYxMSwgMC4yMDEyOTgsIDAuMzMxMDIzLCAwLjQ5NDMwMywgMC42NTc4NywgMC44MjExMzQsIDAuOTg0NTQ0IiwgXAotICAgICAgICAgICIwLjA0MjU2OSwgMC4yMDEyODMsIDAuMzMxMTI0LCAwLjQ5NDI5NCwgMC42NTc4NzYsIDAuODIxMTY4LCAwLjk4MzE2NiIsIFwKLSAgICAgICAgICAiMC4wNDI1ODYsIDAuMjAxMjg3LCAwLjMzMTExMiwgMC40OTM3MzMsIDAuNjU3ODA5LCAwLjgyMTEwNSwgMC45ODQzOTYiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTA1OTgsIDAuMTgzMDEyLCAwLjI0NDExLCAwLjMyMDA3LCAwLjM5NTkwMiwgMC40NzE5MTUsIDAuNTQ4NDI3IiwgXAotICAgICAgICAgICIwLjExNDE2NCwgMC4xOTExOTIsIDAuMjUyMjMyLCAwLjMyODI2MywgMC40MDQxMDQsIDAuNDgwNTg0LCAwLjU1NjMwOSIsIFwKLSAgICAgICAgICAiMC4xMjM1MDgsIDAuMjAwNTgxLCAwLjI2MTYyNSwgMC4zMzc2MTUsIDAuNDEzNDU0LCAwLjQ4OTk1OCwgMC41NjU3MDIiLCBcCi0gICAgICAgICAgIjAuMTMxMDc5LCAwLjIwODIzOSwgMC4yNjkxMzcsIDAuMzQ1MDg4LCAwLjQyMTAyMSwgMC40OTcsIDAuNTczNzk0IiwgXAotICAgICAgICAgICIwLjEzNzE3OSwgMC4yMTQyNTgsIDAuMjc1MzA1LCAwLjM1MTE0NywgMC40MjcxMDgsIDAuNTAzMTM3LCAwLjU3OTI3OSIsIFwKLSAgICAgICAgICAiMC4xNDUxNjQsIDAuMjIyMzU3LCAwLjI4MzI0NCwgMC4zNTk0NDYsIDAuNDM1MTM4LCAwLjUxMTc3MiwgMC41ODc4OTIiLCBcCi0gICAgICAgICAgIjAuMTUxMTU2LCAwLjIyODIxMywgMC4yODg5NjYsIDAuMzY1MzAxLCAwLjQ0MTA5NSwgMC41MTcxNjYsIDAuNTkzOTAyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0MTA0NSwgMC4xOTUxNjgsIDAuMzIwNjc3LCAwLjQ3ODg5MSwgMC42MzYxNjgsIDAuNzk0MjMxLCAwLjk1MzY3NiIsIFwKLSAgICAgICAgICAiMC4wNDExMiwgMC4xOTUyMTcsIDAuMzIwNjI4LCAwLjQ3ODg4OSwgMC42MzU4ODIsIDAuNzk1NDc0LCAwLjk1MjA1NCIsIFwKLSAgICAgICAgICAiMC4wNDEwMDcsIDAuMTk1Mjg0LCAwLjMyMDY2NiwgMC40Nzg4OTMsIDAuNjM1ODU0LCAwLjc5NTQ5LCAwLjk1MTkwNSIsIFwKLSAgICAgICAgICAiMC4wNDExNzcsIDAuMTk1MjU5LCAwLjMyMDYyOCwgMC40Nzc2MDMsIDAuNjM2MzA3LCAwLjc5NDIxLCAwLjk1MTkyNSIsIFwKLSAgICAgICAgICAiMC4wNDA5NDEsIDAuMTk1MjgyLCAwLjMyMDY2NSwgMC40Nzg3NDQsIDAuNjM2MzAzLCAwLjc5NDE4MywgMC45NTIxMTMiLCBcCi0gICAgICAgICAgIjAuMDQwOTY4LCAwLjE5NTI1LCAwLjMyMDY1MSwgMC40Nzg4NzQsIDAuNjM1OTY2LCAwLjc5NDEyOSwgMC45NTE5NDciLCBcCi0gICAgICAgICAgIjAuMDQwOSwgMC4xOTU0MDcsIDAuMzIxMTQ3LCAwLjQ3ODgwMywgMC42MzYwMTIsIDAuNzk0MTg3LCAwLjk1MjA5NiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogY2xlYXI7Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEzMzAwNSwgMC4yMTAwOSwgMC4yNzA5NjcsIDAuMzQ2NjMsIDAuNDIyNzE4LCAwLjQ5OTA3LCAwLjU3NTQxNiIsIFwKLSAgICAgICAgICAiMC4xNDEwMzgsIDAuMjE4MTI3LCAwLjI3OSwgMC4zNTQ2NSwgMC40MzA3MTEsIDAuNTA3MTQ4LCAwLjU4MzQ1IiwgXAotICAgICAgICAgICIwLjE0OTUxNCwgMC4yMjY1LCAwLjI4NzI3MiwgMC4zNjMyODMsIDAuNDM5NjQyLCAwLjUxNTkxNCwgMC41OTE5MjkiLCBcCi0gICAgICAgICAgIjAuMTU2MzE2LCAwLjIzMzMzOSwgMC4yOTQzNiwgMC4zNzA1NDYsIDAuNDQ2NDI3LCAwLjUyMjQ5MiwgMC41OTg3MTkiLCBcCi0gICAgICAgICAgIjAuMTYxNzEsIDAuMjM4NzAzLCAwLjI5OTc0NCwgMC4zNzU0NjUsIDAuNDUxNjU5LCAwLjUyODExNCwgMC42MDQyMjQiLCBcCi0gICAgICAgICAgIjAuMTY4NTgzLCAwLjI0NTY2OCwgMC4zMDY1MjgsIDAuMzgyNjE2LCAwLjQ1ODY0NCwgMC41MzQ3NTgsIDAuNjEwOTczIiwgXAotICAgICAgICAgICIwLjE3MzgyNiwgMC4yNTA4MzQsIDAuMzExNzAzLCAwLjM4NzUwNywgMC40NjM5NTksIDAuNTQwMjIyLCAwLjYxNjI5OCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDEzNjYsIDAuMTk1MzQsIDAuMzIwOTI5LCAwLjQ3ODY2MiwgMC42MzY0NDcsIDAuNzk0MDE2LCAwLjk1MjE1NCIsIFwKLSAgICAgICAgICAiMC4wNDEyMTIsIDAuMTk1NTE3LCAwLjMyMTEwOSwgMC40Nzg2NTcsIDAuNjM2ODQ0LCAwLjc5NDIxMSwgMC45NTM3OTIiLCBcCi0gICAgICAgICAgIjAuMDQxMzI5LCAwLjE5NTM5NSwgMC4zMjA4NTcsIDAuNDc4NzQxLCAwLjYzNjgwMSwgMC43OTQxODYsIDAuOTUzMzk1IiwgXAotICAgICAgICAgICIwLjA0MTE2OCwgMC4xOTU1MTUsIDAuMzIwODQyLCAwLjQ3ODc4OSwgMC42MzYzODIsIDAuNzk1NDQ5LCAwLjk1MzgxMyIsIFwKLSAgICAgICAgICAiMC4wNDEyOTUsIDAuMTk1MzQ1LCAwLjMyMDk5NCwgMC40Nzg2OTksIDAuNjM2MjY3LCAwLjc5NDE5OSwgMC45NTE5MDkiLCBcCi0gICAgICAgICAgIjAuMDQxMTg3LCAwLjE5NTIzOCwgMC4zMjEyNzcsIDAuNDc4ODczLCAwLjYzNjQyNiwgMC43OTU0MzUsIDAuOTUzODEyIiwgXAotICAgICAgICAgICIwLjA0MTI4MywgMC4xOTU0NiwgMC4zMjEwMjksIDAuNDc4NjA2LCAwLjYzNzIxMSwgMC43OTQxODQsIDAuOTUzNzkzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiBwcmVzZXQ7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5NDkxNiwgMC4xNzMwMzksIDAuMjM1MjI4LCAwLjMxMjMwNCwgMC4zODk1NCwgMC40NjcyNTksIDAuNTQ0MzU5IiwgXAotICAgICAgICAgICIwLjEwMjA2NiwgMC4xODAxNzUsIDAuMjQyMjk5LCAwLjMxOTQ4MiwgMC4zOTY5NDQsIDAuNDc0MzksIDAuNTUxNjgzIiwgXAotICAgICAgICAgICIwLjEwOTM3MiwgMC4xODc1MTcsIDAuMjQ5NjY5LCAwLjMyNzAwOCwgMC40MDQwMzIsIDAuNDgxNzA3LCAwLjU1ODk4OSIsIFwKLSAgICAgICAgICAiMC4xMTU5NDMsIDAuMTk0MjcsIDAuMjU2MjQxLCAwLjMzMzUyOSwgMC40MTA5NzEsIDAuNDg4MzAzLCAwLjU2NTYwMiIsIFwKLSAgICAgICAgICAiMC4xMjM0NzIsIDAuMjAxNjE5LCAwLjI2Mzc3NywgMC4zNDEwNDIsIDAuNDE4NTI3LCAwLjQ5NTc1MiwgMC41NzMwMjIiLCBcCi0gICAgICAgICAgIjAuMTMzODUxLCAwLjIxMTk1NCwgMC4yNzQxMjcsIDAuMzUxMjExLCAwLjQyODQ4NSwgMC41MDU4NjUsIDAuNTgzNDc4IiwgXAotICAgICAgICAgICIwLjE0MTIyNiwgMC4yMTk0MjQsIDAuMjgxNDY0LCAwLjM1ODU5NiwgMC40MzYwODMsIDAuNTEzNTczLCAwLjU5MDg5Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0MTk5NiwgMC4yMDExNjgsIDAuMzMxMzA1LCAwLjQ5NDQxMiwgMC42NTc4MTUsIDAuODIxMTY0LCAwLjk4NDUzNSIsIFwKLSAgICAgICAgICAiMC4wNDIwMDksIDAuMjAxMTU5LCAwLjMzMTMzNSwgMC40OTQxMTYsIDAuNjU3NzksIDAuODIxMTgyLCAwLjk4NDUyNiIsIFwKLSAgICAgICAgICAiMC4wNDE5ODksIDAuMjAxMTcxLCAwLjMzMTI5OSwgMC40OTQ0ODcsIDAuNjU3Nzk2LCAwLjgyMTE4MiwgMC45ODQ1MjMiLCBcCi0gICAgICAgICAgIjAuMDQyMDEzLCAwLjIwMTE3NCwgMC4zMzEzMDQsIDAuNDk0NDEyLCAwLjY1Nzc4NiwgMC44MjExNjIsIDAuOTg0NTQ2IiwgXAotICAgICAgICAgICIwLjA0MjAyOCwgMC4yMDExNzYsIDAuMzMxMzExLCAwLjQ5NDQxOSwgMC42NTc3NSwgMC44MjExNjEsIDAuOTg0NTE3IiwgXAotICAgICAgICAgICIwLjA0MjUwOSwgMC4yMDExNzcsIDAuMzMxMjU4LCAwLjQ5NDM3NiwgMC42NTc3NDUsIDAuODIxMTEsIDAuOTg0NDMiLCBcCi0gICAgICAgICAgIjAuMDQyNDE1LCAwLjIwMTIwNSwgMC4zMzExMjMsIDAuNDk0NDIxLCAwLjY1Nzc0MSwgMC44MjAyMDEsIDAuOTg0NDMzIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExNjgwNiwgMC4xOTM4MTUsIDAuMjU0ODg4LCAwLjMzMDY0LCAwLjQwNzMsIDAuNDgzMzM4LCAwLjU1ODkyNCIsIFwKLSAgICAgICAgICAiMC4xMjMwNTYsIDAuMjAwMDkyLCAwLjI2MTEyNywgMC4zMzcwMzYsIDAuNDEzNDAzLCAwLjQ4OTU5MSwgMC41NjU2OTUiLCBcCi0gICAgICAgICAgIjAuMTI5MTU4LCAwLjIwNjIxLCAwLjI2Njg4OCwgMC4zNDMwODYsIDAuNDE5MjMxLCAwLjQ5NTc1MSwgMC41NzE3NDUiLCBcCi0gICAgICAgICAgIjAuMTM0ODgzLCAwLjIxMTkwMiwgMC4yNzI5NjIsIDAuMzQ4NjcsIDAuNDI0NzM5LCAwLjUwMTMzNCwgMC41Nzc1IiwgXAotICAgICAgICAgICIwLjE0MTI4NiwgMC4yMTgzMTcsIDAuMjc5MzM2LCAwLjM1NTM3NSwgMC40MzExNiwgMC41MDc4NDgsIDAuNTgzOTQ1IiwgXAotICAgICAgICAgICIwLjE1MTA2NiwgMC4yMjgwOTUsIDAuMjg4ODU1LCAwLjM2NDk4NSwgMC40NDA5ODEsIDAuNTE3NywgMC41OTMwNzUiLCBcCi0gICAgICAgICAgIjAuMTU4NTQsIDAuMjM1Njk4LCAwLjI5NjUwOSwgMC4zNzI0ODksIDAuNDQ4NDY2LCAwLjUyNDQ2NSwgMC42MDA1NyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDEyODYsIDAuMTk1MzM2LCAwLjMyMDY5OSwgMC40Nzg2MjEsIDAuNjM2MDY2LCAwLjc5NDE0MywgMC45NTI3MTkiLCBcCi0gICAgICAgICAgIjAuMDQxMjQ0LCAwLjE5NTQwNCwgMC4zMjExMzIsIDAuNDc4NzIsIDAuNjM3MjIyLCAwLjc5NDE2MywgMC45NTM3MzEiLCBcCi0gICAgICAgICAgIjAuMDQxMzE3LCAwLjE5NTI4NSwgMC4zMjA1OTIsIDAuNDc4NzQ1LCAwLjYzNTkxLCAwLjc5NDE5MSwgMC45NTM3NTciLCBcCi0gICAgICAgICAgIjAuMDQxMTkxLCAwLjE5NTQ0LCAwLjMyMDc1OSwgMC40Nzg4ODcsIDAuNjM3MTMxLCAwLjc5NTM5MiwgMC45NTExODEiLCBcCi0gICAgICAgICAgIjAuMDQxMzIxLCAwLjE5NTM4MiwgMC4zMjA3NywgMC40Nzg4ODksIDAuNjM2NDg2LCAwLjc5NTQ0NSwgMC45NTE1NDYiLCBcCi0gICAgICAgICAgIjAuMDQxNDM1LCAwLjE5NTM5LCAwLjMyMTE3MiwgMC40Nzg3MzgsIDAuNjM2NDY1LCAwLjc5NDA0MSwgMC45NTM2ODgiLCBcCi0gICAgICAgICAgIjAuMDQxMzQ3LCAwLjE5NTEwNCwgMC4zMjA3MDYsIDAuNDc4ODI0LCAwLjYzNjEwNCwgMC43OTUzMDgsIDAuOTUyMzE0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNzA0MywgMC4wMDcwOTcsIDAuMDA3MTA1LCAwLjAwNzEwOSwgMC4wMDcxMTQsIDAuMDA3MTE1LCAwLjAwNzExMyIsIFwKLSAgICAgICAgICAiMC4wMDcwMzUsIDAuMDA3MDg5LCAwLjAwNzA5NiwgMC4wMDcxLCAwLjAwNzEwNCwgMC4wMDcxMDUsIDAuMDA3MTA1IiwgXAotICAgICAgICAgICIwLjAwNzA3MiwgMC4wMDcxMjYsIDAuMDA3MTM2LCAwLjAwNzEzNywgMC4wMDcxMzksIDAuMDA3MTQsIDAuMDA3MTQ1IiwgXAotICAgICAgICAgICIwLjAwNzEyOSwgMC4wMDcxODIsIDAuMDA3MTg5LCAwLjAwNzE5MywgMC4wMDcxOTYsIDAuMDA3MTk4LCAwLjAwNzE5OCIsIFwKLSAgICAgICAgICAiMC4wMDcxODksIDAuMDA3MjQxLCAwLjAwNzI0OCwgMC4wMDcyNTIsIDAuMDA3MjU1LCAwLjAwNzI1NSwgMC4wMDcyNTYiLCBcCi0gICAgICAgICAgIjAuMDA3Mjg2LCAwLjAwNzM0MiwgMC4wMDczNSwgMC4wMDczNTMsIDAuMDA3MzU2LCAwLjAwNzM1NiwgMC4wMDczNTciLCBcCi0gICAgICAgICAgIjAuMDA3Mzk0LCAwLjAwNzQ0NSwgMC4wMDc0NTMsIDAuMDA3NDM5LCAwLjAwNzQ0LCAwLjAwNzQ1OSwgMC4wMDc0NjEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDY4OTgsIDAuMDA2OTQsIDAuMDA2OTQ2LCAwLjAwNjk1LCAwLjAwNjk1MSwgMC4wMDY5NTIsIDAuMDA2OTU0IiwgXAotICAgICAgICAgICIwLjAwNjg5NiwgMC4wMDY5MzgsIDAuMDA2OTQ0LCAwLjAwNjk0NywgMC4wMDY5NDksIDAuMDA2OTUxLCAwLjAwNjk1MyIsIFwKLSAgICAgICAgICAiMC4wMDY5MzgsIDAuMDA2OTgyLCAwLjAwNjk4OCwgMC4wMDY5OTEsIDAuMDA2OTkyLCAwLjAwNjk5MywgMC4wMDY5OTQiLCBcCi0gICAgICAgICAgIjAuMDA2OTg5LCAwLjAwNzAzMSwgMC4wMDcwMzgsIDAuMDA3MDQsIDAuMDA3MDQyLCAwLjAwNzA0MywgMC4wMDcwNDQiLCBcCi0gICAgICAgICAgIjAuMDA3MDUzLCAwLjAwNzA5OSwgMC4wMDcxMDYsIDAuMDA3MTA5LCAwLjAwNzExLCAwLjAwNzExMSwgMC4wMDcxMTEiLCBcCi0gICAgICAgICAgIjAuMDA3MTYyLCAwLjAwNzIxNiwgMC4wMDcyMjIsIDAuMDA3MjI2LCAwLjAwNzIyNywgMC4wMDcyMjgsIDAuMDA3MjI5IiwgXAotICAgICAgICAgICIwLjAwNzI3MSwgMC4wMDczMTksIDAuMDA3MzI2LCAwLjAwNzMzLCAwLjAwNzMzMSwgMC4wMDczMzIsIDAuMDA3MzMyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUk4iOwotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwODgyNSwgMC4wMDg4NDIsIDAuMDA4ODMzLCAwLjAwODgyNSwgMC4wMDg4MjMsIDAuMDA4ODE2LCAwLjAwODgxOCIsIFwKLSAgICAgICAgICAiMC4wMDg4MiwgMC4wMDg4NCwgMC4wMDg4MzEsIDAuMDA4ODI2LCAwLjAwODgxNywgMC4wMDg4MTMsIDAuMDA4ODEiLCBcCi0gICAgICAgICAgIjAuMDA4ODU0LCAwLjAwODg3NCwgMC4wMDg4NjUsIDAuMDA4ODU3LCAwLjAwODg1MSwgMC4wMDg4NDcsIDAuMDA4ODQ0IiwgXAotICAgICAgICAgICIwLjAwODg5LCAwLjAwODkxLCAwLjAwODkwMSwgMC4wMDg4OTIsIDAuMDA4ODg3LCAwLjAwODg4MiwgMC4wMDg4NzkiLCBcCi0gICAgICAgICAgIjAuMDA4OTQxLCAwLjAwODk2MiwgMC4wMDg5NTMsIDAuMDA4OTQ0LCAwLjAwODkzOCwgMC4wMDg5MzMsIDAuMDA4OTMiLCBcCi0gICAgICAgICAgIjAuMDA5MDM2LCAwLjAwOTA1NiwgMC4wMDkwNDcsIDAuMDA5MDM3LCAwLjAwOTAzMSwgMC4wMDkwMjYsIDAuMDA5MDI1IiwgXAotICAgICAgICAgICIwLjAwOTEyOSwgMC4wMDkxNDMsIDAuMDA5MTM0LCAwLjAwOTEyNCwgMC4wMDkxMTcsIDAuMDA5MTEzLCAwLjAwOTEwOSIpOwotICAgICAgfQotICAgICAgcmlzZV9wb3dlcihzY2FsYXIpIHsKLSAgICAgICAgdmFsdWVzKCIwIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiU04iOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwODA3LCAwLjAwODEyMiwgMC4wMDgxMjcsIDAuMDA4MTMxLCAwLjAwODEzMiwgMC4wMDgxMzQsIDAuMDA4MTMzIiwgXAotICAgICAgICAgICIwLjAwODA1OCwgMC4wMDgxMDksIDAuMDA4MTE1LCAwLjAwODExOCwgMC4wMDgxMTksIDAuMDA4MTIsIDAuMDA4MTIiLCBcCi0gICAgICAgICAgIjAuMDA4MDc2LCAwLjAwODEyNSwgMC4wMDgxMywgMC4wMDgxMzQsIDAuMDA4MTM1LCAwLjAwODEzNSwgMC4wMDgxMzYiLCBcCi0gICAgICAgICAgIjAuMDA4MTA3LCAwLjAwODE2MSwgMC4wMDgxNjcsIDAuMDA4MTcsIDAuMDA4MTcyLCAwLjAwODE3MywgMC4wMDgxNzQiLCBcCi0gICAgICAgICAgIjAuMDA4MTU4LCAwLjAwODIxMiwgMC4wMDgyMTgsIDAuMDA4MjIxLCAwLjAwODIyMywgMC4wMDgyMjQsIDAuMDA4MjI0IiwgXAotICAgICAgICAgICIwLjAwODI3NiwgMC4wMDgzMjUsIDAuMDA4MzMxLCAwLjAwODMzNCwgMC4wMDgzMzYsIDAuMDA4MzM2LCAwLjAwODMzNyIsIFwKLSAgICAgICAgICAiMC4wMDgzNzYsIDAuMDA4NDI0LCAwLjAwODQyOSwgMC4wMDg0MzIsIDAuMDA4NDMzLCAwLjAwODQzNCwgMC4wMDg0MzYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDY2MzMsIDAuMDA2Njc0LCAwLjAwNjY4LCAwLjAwNjY4MiwgMC4wMDY2ODQsIDAuMDA2Njg1LCAwLjAwNjY4NSIsIFwKLSAgICAgICAgICAiMC4wMDY2MDgsIDAuMDA2NjQ5LCAwLjAwNjY1NCwgMC4wMDY2NiwgMC4wMDY2NTksIDAuMDA2NjU5LCAwLjAwNjY2IiwgXAotICAgICAgICAgICIwLjAwNjU5NywgMC4wMDY2MzgsIDAuMDA2NjQ0LCAwLjAwNjY0NywgMC4wMDY2NDgsIDAuMDA2NjQ5LCAwLjAwNjY0OSIsIFwKLSAgICAgICAgICAiMC4wMDY2MDEsIDAuMDA2NjQyLCAwLjAwNjY0OCwgMC4wMDY2NTEsIDAuMDA2NjU1LCAwLjAwNjY1OCwgMC4wMDY2NTQiLCBcCi0gICAgICAgICAgIjAuMDA2NjEzLCAwLjAwNjY1NSwgMC4wMDY2NjEsIDAuMDA2NjY0LCAwLjAwNjY3MiwgMC4wMDY2NjcsIDAuMDA2NjY4IiwgXAotICAgICAgICAgICIwLjAwNjY2MiwgMC4wMDY3MDIsIDAuMDA2NzA4LCAwLjAwNjcxMiwgMC4wMDY3MTMsIDAuMDA2NzE0LCAwLjAwNjcxNSIsIFwKLSAgICAgICAgICAiMC4wMDY3MDYsIDAuMDA2NzQ5LCAwLjAwNjc1NiwgMC4wMDY3NTksIDAuMDA2NzYsIDAuMDA2NzYyLCAwLjAwNjc2MyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUU4pICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC42NzY2MDE7Ci0gICAgZnVuY3Rpb24gOiAiUUJJTlQiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5vbl91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcmlzaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEyMDc5MiwgMC4xOTc5NzksIDAuMjU5ODY0LCAwLjMzNzE4MywgMC40MTQ1NywgMC40OTE5NjIsIDAuNTY5MzEzIiwgXAotICAgICAgICAgICIwLjEyODk3NSwgMC4yMDYxNjksIDAuMjY4MDQ0LCAwLjM0NTM3MiwgMC40MjI3NTUsIDAuNTAwMTQzLCAwLjU3NzU0IiwgXAotICAgICAgICAgICIwLjEzODMxOCwgMC4yMTU1MTYsIDAuMjc3Mzk0LCAwLjM1NDcxNSwgMC40MzIxMDEsIDAuNTA5NDk0LCAwLjU4Njg4NSIsIFwKLSAgICAgICAgICAiMC4xNDU4OTMsIDAuMjIzMDg4LCAwLjI4NDk0NSwgMC4zNjIyMzMsIDAuNDM5NTUxLCAwLjUxNzA1NywgMC41OTQ1MDkiLCBcCi0gICAgICAgICAgIjAuMTUxOTg1LCAwLjIyOTE4NywgMC4yOTEwNjYsIDAuMzY4Mzg4LCAwLjQ0NTc4MSwgMC41MjMxNjMsIDAuNjAwNTQ5IiwgXAotICAgICAgICAgICIwLjE1OTkyMywgMC4yMzcwODQsIDAuMjk4OTQxLCAwLjM3NjMxMiwgMC40NTM2NDYsIDAuNTMxMTEyLCAwLjYwODUwNSIsIFwKLSAgICAgICAgICAiMC4xNjU5NzgsIDAuMjQzMTgzLCAwLjMwNTAzNCwgMC4zODIzODMsIDAuNDU5NzYxLCAwLjUzNzE1NCwgMC42MTQ2MTkiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM5NzAyLCAwLjIwMDk5NCwgMC4zMzE2MjMsIDAuNDk0ODQ5LCAwLjY1NzYyNSwgMC44MjAyOTMsIDAuOTg0OTE2IiwgXAotICAgICAgICAgICIwLjAzOTcwMSwgMC4yMDEwMDEsIDAuMzMxNjE5LCAwLjQ5NDg2NSwgMC42NTc3MTYsIDAuODIxNjcxLCAwLjk4MzYwMyIsIFwKLSAgICAgICAgICAiMC4wMzk2OTQsIDAuMjAxMDE3LCAwLjMzMTYxMywgMC40OTQ4NiwgMC42NTY4OTgsIDAuODIxNjU4LCAwLjk4MzE1MyIsIFwKLSAgICAgICAgICAiMC4wMzk3MjIsIDAuMjAxMDMxLCAwLjMzMTYxOCwgMC40OTM3OTIsIDAuNjU3NDYxLCAwLjgyMDM1MSwgMC45ODMzNTMiLCBcCi0gICAgICAgICAgIjAuMDM5NzA2LCAwLjIwMTAyLCAwLjMzMTYxNywgMC40OTQ0MDEsIDAuNjU3NTY2LCAwLjgyMDIyMiwgMC45ODM0NzEiLCBcCi0gICAgICAgICAgIjAuMDM5NzcyLCAwLjIwMTA0LCAwLjMzMTYxOCwgMC40OTUxMDgsIDAuNjU3NjczLCAwLjgyMDM1LCAwLjk4MzI1IiwgXAotICAgICAgICAgICIwLjAzOTg2MSwgMC4yMDA4ODYsIDAuMzMxMzA0LCAwLjQ5NDk2MywgMC42NTc2NjYsIDAuODIwNjUzLCAwLjk4MzQ1MiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTUxNzMsIDAuMTkxMjA4LCAwLjI1MjAzMiwgMC4zMjgwNjQsIDAuNDA0MTI4LCAwLjQ4MDE5NywgMC41NTYyMTUiLCBcCi0gICAgICAgICAgIjAuMTIzMjk1LCAwLjE5OTMzLCAwLjI2MDE0NSwgMC4zMzYyMTIsIDAuNDEyMjQ0LCAwLjQ4ODI4MywgMC41NjQzOTUiLCBcCi0gICAgICAgICAgIjAuMTMyNTc2LCAwLjIwODYxMSwgMC4yNjk0MzUsIDAuMzQ1NDcxLCAwLjQyMTUyNywgMC40OTc2NDgsIDAuNTczNjQxIiwgXAotICAgICAgICAgICIwLjE0MDEzNywgMC4yMTYxNzUsIDAuMjc2OTk3LCAwLjM1MzAzOSwgMC40MjkwMzUsIDAuNTA1MTc2LCAwLjU4MTIwNiIsIFwKLSAgICAgICAgICAiMC4xNDYyMywgMC4yMjIyOCwgMC4yODMwOTgsIDAuMzU5MTU2LCAwLjQzNTE5MiwgMC41MTEyMjgsIDAuNTg3MzI4IiwgXAotICAgICAgICAgICIwLjE1NDQzMywgMC4yMzA0NjQsIDAuMjkxMjgyLCAwLjM2NzM0NiwgMC40NDMzNzEsIDAuNTE5NDE5LCAwLjU5NTQ4NyIsIFwKLSAgICAgICAgICAiMC4xNjAyNDksIDAuMjM2MjY2LCAwLjI5NzEwOCwgMC4zNzMxMzUsIDAuNDQ5MTkyLCAwLjUyNTI1MSwgMC42MDEyOTYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM4NzU1LCAwLjE5NDUxMSwgMC4zMjA3NTksIDAuNDc4OTUzLCAwLjYzNzI4NywgMC43OTQ1MzMsIDAuOTUzNDQ4IiwgXAotICAgICAgICAgICIwLjAzODc0NiwgMC4xOTQ2MDQsIDAuMzIwNjk4LCAwLjQ3OTA3MiwgMC42MzcyODYsIDAuNzk1MzIyLCAwLjk1MzU0MyIsIFwKLSAgICAgICAgICAiMC4wMzg3NTMsIDAuMTk0NDYxLCAwLjMyMDc1NCwgMC40Nzg2OTksIDAuNjM3MjUsIDAuNzk0MTE0LCAwLjk1MjQ2MiIsIFwKLSAgICAgICAgICAiMC4wMzg3MjcsIDAuMTk0NTk1LCAwLjMyMDksIDAuNDc4NTU4LCAwLjYzNjg5OSwgMC43OTU0MTIsIDAuOTUyNTUyIiwgXAotICAgICAgICAgICIwLjAzODc0NywgMC4xOTQ2MSwgMC4zMjA3NSwgMC40NzkwNjYsIDAuNjM3MjgyLCAwLjc5NTI3OSwgMC45NTM1MTYiLCBcCi0gICAgICAgICAgIjAuMDM4NzI0LCAwLjE5NDYwNCwgMC4zMjA5MiwgMC40NzkwNjMsIDAuNjM3Mjg1LCAwLjc5NTMwOSwgMC45NTI0NzIiLCBcCi0gICAgICAgICAgIjAuMDM4OTQ0LCAwLjE5NDU5NywgMC4zMjA5MTIsIDAuNDc4NTQsIDAuNjM3MTk0LCAwLjc5NTI1NSwgMC45NTMyOTciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUk4iOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHByZXNldDsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTQ3ODEzLCAwLjIyNDk3MiwgMC4yODY4MzcsIDAuMzY0MDk1LCAwLjQ0MTU2LCAwLjUxODgzNywgMC41OTYzNDYiLCBcCi0gICAgICAgICAgIjAuMTU1ODQ3LCAwLjIzMzAxMSwgMC4yOTQ4NzEsIDAuMzcyMTMsIDAuNDQ5NTk1LCAwLjUyNjg3NCwgMC42MDQzOCIsIFwKLSAgICAgICAgICAiMC4xNjQzMzcsIDAuMjQxNTA2LCAwLjMwMzMwOSwgMC4zODA3MDUsIDAuNDU4MTE4LCAwLjUzNTUzNCwgMC42MTI4ODMiLCBcCi0gICAgICAgICAgIjAuMTcxMTM2LCAwLjI0ODMwNiwgMC4zMTAxODksIDAuMzg3NTc0LCAwLjQ2NDg5NSwgMC41NDIyNDIsIDAuNjE5Njc1IiwgXAotICAgICAgICAgICIwLjE3NjUwMiwgMC4yNTM2OTMsIDAuMzE1NTY5LCAwLjM5Mjg4OSwgMC40NzAyOTgsIDAuNTQ3NzE1LCAwLjYyNTExMSIsIFwKLSAgICAgICAgICAiMC4xODMzOTMsIDAuMjYwNTYxLCAwLjMyMjQxNSwgMC4zOTk3NjgsIDAuNDc3MTQyLCAwLjU1NDQ4NCwgMC42MzE5MjEiLCBcCi0gICAgICAgICAgIjAuMTg4NjM5LCAwLjI2NTgwNywgMC4zMjc2NjksIDAuNDA1MDE3LCAwLjQ4MjQxNywgMC41NTk4MzUsIDAuNjM3MjExIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzOTc2OCwgMC4yMDEwMywgMC4zMzE3MzQsIDAuNDk0NTI0LCAwLjY1NzMxOCwgMC44MjA2ODEsIDAuOTgzNDE5IiwgXAotICAgICAgICAgICIwLjAzOTc2MiwgMC4yMDEwNzcsIDAuMzMxNzU1LCAwLjQ5NDQ3MywgMC42NTcxOTIsIDAuODIwNjkzLCAwLjk4NDk4MyIsIFwKLSAgICAgICAgICAiMC4wMzk3NCwgMC4yMDEwMzksIDAuMzMxNzQ2LCAwLjQ5NDUyNSwgMC42NTcwNDYsIDAuODIwMzU3LCAwLjk4NDQwMiIsIFwKLSAgICAgICAgICAiMC4wMzk3MzgsIDAuMjAxMDY2LCAwLjMzMTczNywgMC40OTQ1MzEsIDAuNjU3NDE4LCAwLjgyMTYwNywgMC45ODUwMDUiLCBcCi0gICAgICAgICAgIjAuMDM5NzYyLCAwLjIwMTAzMSwgMC4zMzE3MjcsIDAuNDk0NDg5LCAwLjY1NzM2MywgMC44MjAzNTksIDAuOTg0MDgzIiwgXAotICAgICAgICAgICIwLjAzOTc0NywgMC4yMDEwMjUsIDAuMzMxNzI1LCAwLjQ5NTA3OCwgMC42NTczNDEsIDAuODIxNTY5LCAwLjk4NTAwMiIsIFwKLSAgICAgICAgICAiMC4wMzk3NTQsIDAuMjAxMDI2LCAwLjMzMTcwMywgMC40OTQ0NzcsIDAuNjU4MzU3LCAwLjgyMDUwNywgMC45ODQ5NjgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiU04iOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGNsZWFyOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMzE2MDQsIDAuMjA4Nzc0LCAwLjI3MDYyNiwgMC4zNDc5ODQsIDAuNDI1NDE5LCAwLjUwMjc4OSwgMC41ODAwOTgiLCBcCi0gICAgICAgICAgIjAuMTM3ODYzLCAwLjIxNTA1NywgMC4yNzY5MjYsIDAuMzU0MjYyLCAwLjQzMTY2LCAwLjUwOTAzNSwgMC41ODY0MiIsIFwKLSAgICAgICAgICAiMC4xNDM5NzksIDAuMjIxMTUsIDAuMjgyOTUsIDAuMzYwMzQ2LCAwLjQzNzc1NywgMC41MTUxNzgsIDAuNTkyNTEzIiwgXAotICAgICAgICAgICIwLjE0OTY5LCAwLjIyNjgyMywgMC4yODg3MTUsIDAuMzY1OTc1LCAwLjQ0MzQzOCwgMC41MjA3NjMsIDAuNTk4MjIxIiwgXAotICAgICAgICAgICIwLjE1NjA3LCAwLjIzMzI3NCwgMC4yOTUxNDEsIDAuMzcyNDcsIDAuNDQ5ODY4LCAwLjUyNzI5NiwgMC42MDQ2NzgiLCBcCi0gICAgICAgICAgIjAuMTY1ODM4LCAwLjI0MzAwNSwgMC4zMDQ4NTYsIDAuMzgyMjAzLCAwLjQ1OTYwNCwgMC41MzcwNTIsIDAuNjE0MzE1IiwgXAotICAgICAgICAgICIwLjE3MzMzMywgMC4yNTA0OTEsIDAuMzEyMzM3LCAwLjM4OTY4NCwgMC40NjcwNzUsIDAuNTQ0NDQ0LCAwLjYyMTc4NSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzk3NDksIDAuMjAxMDM4LCAwLjMzMTcyMywgMC40OTQ1MjIsIDAuNjU3MzAyLCAwLjgyMDQwNCwgMC45ODMyOTkiLCBcCi0gICAgICAgICAgIjAuMDM5NzQ5LCAwLjIwMTAzNiwgMC4zMzE3MywgMC40OTQ0NjcsIDAuNjU4MzA4LCAwLjgyMDM0OSwgMC45ODQ4NjYiLCBcCi0gICAgICAgICAgIjAuMDM5NzM3LCAwLjIwMTAxOSwgMC4zMzE2MTQsIDAuNDk0NTA3LCAwLjY1NzQ2NCwgMC44MjAzMzgsIDAuOTg0OTE4IiwgXAotICAgICAgICAgICIwLjAzOTc1LCAwLjIwMTA1MywgMC4zMzE3MzIsIDAuNDk0ODY1LCAwLjY1ODI0NywgMC44MjE2MzEsIDAuOTgzNDM0IiwgXAotICAgICAgICAgICIwLjAzOTc0OCwgMC4yMDEwMjcsIDAuMzMxNzM5LCAwLjQ5NDk0OCwgMC42NTc1NTIsIDAuODIxNzM3LCAwLjk4MzQzMiIsIFwKLSAgICAgICAgICAiMC4wMzk4MDcsIDAuMjAxMDA2LCAwLjMzMTcyNSwgMC40OTQ0MzcsIDAuNjU3MzU0LCAwLjgyMDQ4OCwgMC45ODQ4NjgiLCBcCi0gICAgICAgICAgIjAuMDM5ODYyLCAwLjIwMDk5MSwgMC4zMzE2OTIsIDAuNDk0OTg0LCAwLjY1NzY4OCwgMC44MjE1MTIsIDAuOTgzOTU1Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExMTYyOSwgMC4xODc2NzQsIDAuMjQ4NTI0LCAwLjMyNDUxMywgMC40MDA1OTYsIDAuNDc2NzE0LCAwLjU1MjcwNCIsIFwKLSAgICAgICAgICAiMC4xMTg3NjYsIDAuMTk0ODI5LCAwLjI1NTY2MiwgMC4zMzE3LCAwLjQwNzcyOSwgMC40ODM4MTksIDAuNTU5ODgyIiwgXAotICAgICAgICAgICIwLjEyNjA3OCwgMC4yMDIxNjEsIDAuMjYzMDA1LCAwLjMzOTA0NCwgMC40MTUxMDMsIDAuNDkxMTYyLCAwLjU2NzIzNiIsIFwKLSAgICAgICAgICAiMC4xMzI2MzMsIDAuMjA4Njk4LCAwLjI2OTU0NywgMC4zNDU1OTYsIDAuNDIxNjkzLCAwLjQ5NzcxMywgMC41NzM3NyIsIFwKLSAgICAgICAgICAiMC4xNDAxNjUsIDAuMjE2MjgxLCAwLjI3NzEzMiwgMC4zNTMxNjcsIDAuNDI5MjgsIDAuNTA1Mjc4LCAwLjU4MTM0OSIsIFwKLSAgICAgICAgICAiMC4xNTA1MjMsIDAuMjI2NTY1LCAwLjI4NzQxNiwgMC4zNjM0MzUsIDAuNDM5NTE2LCAwLjUxNTU0NiwgMC41OTE2NjkiLCBcCi0gICAgICAgICAgIjAuMTU3ODg0LCAwLjIzMzkyOCwgMC4yOTQ3NjcsIDAuMzcwNzksIDAuNDQ2ODQ2LCAwLjUyMjk3NSwgMC41OTkwNDQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM4NzAyLCAwLjE5NDY3NywgMC4zMjExMDUsIDAuNDc5MTc4LCAwLjYzNzMzMSwgMC43OTUzNzEsIDAuOTUzNTE4IiwgXAotICAgICAgICAgICIwLjAzODcxMiwgMC4xOTQ2NjYsIDAuMzIxMDk2LCAwLjQ3ODkzOSwgMC42MzcyODcsIDAuNzk1NDE0LCAwLjk1MzUyOSIsIFwKLSAgICAgICAgICAiMC4wMzg2ODgsIDAuMTk0NjgxLCAwLjMyMTA5OSwgMC40NzkyMjYsIDAuNjM3Mjk1LCAwLjc5NTQxNiwgMC45NTM1MTIiLCBcCi0gICAgICAgICAgIjAuMDM4NzA1LCAwLjE5NDcwMSwgMC4zMjEwOTIsIDAuNDc5MTczLCAwLjYzNzI1NCwgMC43OTUzNTcsIDAuOTUzNTY5IiwgXAotICAgICAgICAgICIwLjAzODcsIDAuMTk0NywgMC4zMjEwODYsIDAuNDc5MTY4LCAwLjYzNzIxNywgMC43OTUzNTksIDAuOTUzNTA5IiwgXAotICAgICAgICAgICIwLjAzODc1NCwgMC4xOTQ2NywgMC4zMjEwMzYsIDAuNDc5MDc0LCAwLjYzNzIwNCwgMC43OTUyODMsIDAuOTUzMzQ5IiwgXAotICAgICAgICAgICIwLjAzODk5OSwgMC4xOTQ2MDcsIDAuMzIwOTYyLCAwLjQ3OTE1MSwgMC42MzcxODMsIDAuNzk0NjAyLCAwLjk1MzM1MSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDY4OTgsIDAuMDA2OTQsIDAuMDA2OTQ2LCAwLjAwNjk1LCAwLjAwNjk1MSwgMC4wMDY5NTIsIDAuMDA2OTU0IiwgXAotICAgICAgICAgICIwLjAwNjg5NiwgMC4wMDY5MzgsIDAuMDA2OTQ0LCAwLjAwNjk0NywgMC4wMDY5NDksIDAuMDA2OTUxLCAwLjAwNjk1MyIsIFwKLSAgICAgICAgICAiMC4wMDY5MzgsIDAuMDA2OTgyLCAwLjAwNjk4OCwgMC4wMDY5OTEsIDAuMDA2OTkyLCAwLjAwNjk5MywgMC4wMDY5OTQiLCBcCi0gICAgICAgICAgIjAuMDA2OTg5LCAwLjAwNzAzMSwgMC4wMDcwMzgsIDAuMDA3MDQsIDAuMDA3MDQyLCAwLjAwNzA0MywgMC4wMDcwNDQiLCBcCi0gICAgICAgICAgIjAuMDA3MDUzLCAwLjAwNzA5OSwgMC4wMDcxMDYsIDAuMDA3MTA5LCAwLjAwNzExLCAwLjAwNzExMSwgMC4wMDcxMTEiLCBcCi0gICAgICAgICAgIjAuMDA3MTYyLCAwLjAwNzIxNiwgMC4wMDcyMjIsIDAuMDA3MjI2LCAwLjAwNzIyNywgMC4wMDcyMjgsIDAuMDA3MjI5IiwgXAotICAgICAgICAgICIwLjAwNzI3MSwgMC4wMDczMTksIDAuMDA3MzI2LCAwLjAwNzMzLCAwLjAwNzMzMSwgMC4wMDczMzIsIDAuMDA3MzMyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA3MDQzLCAwLjAwNzA5NywgMC4wMDcxMDUsIDAuMDA3MTA5LCAwLjAwNzExNCwgMC4wMDcxMTUsIDAuMDA3MTEzIiwgXAotICAgICAgICAgICIwLjAwNzAzNSwgMC4wMDcwODksIDAuMDA3MDk2LCAwLjAwNzEsIDAuMDA3MTA0LCAwLjAwNzEwNSwgMC4wMDcxMDUiLCBcCi0gICAgICAgICAgIjAuMDA3MDcyLCAwLjAwNzEyNiwgMC4wMDcxMzYsIDAuMDA3MTM3LCAwLjAwNzEzOSwgMC4wMDcxNCwgMC4wMDcxNDUiLCBcCi0gICAgICAgICAgIjAuMDA3MTI5LCAwLjAwNzE4MiwgMC4wMDcxODksIDAuMDA3MTkzLCAwLjAwNzE5NiwgMC4wMDcxOTgsIDAuMDA3MTk4IiwgXAotICAgICAgICAgICIwLjAwNzE4OSwgMC4wMDcyNDEsIDAuMDA3MjQ4LCAwLjAwNzI1MiwgMC4wMDcyNTUsIDAuMDA3MjU1LCAwLjAwNzI1NiIsIFwKLSAgICAgICAgICAiMC4wMDcyODYsIDAuMDA3MzQyLCAwLjAwNzM1LCAwLjAwNzM1MywgMC4wMDczNTYsIDAuMDA3MzU2LCAwLjAwNzM1NyIsIFwKLSAgICAgICAgICAiMC4wMDczOTQsIDAuMDA3NDQ1LCAwLjAwNzQ1MywgMC4wMDc0MzksIDAuMDA3NDQsIDAuMDA3NDU5LCAwLjAwNzQ2MSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDg4MjUsIDAuMDA4ODQyLCAwLjAwODgzMywgMC4wMDg4MjUsIDAuMDA4ODIzLCAwLjAwODgxNiwgMC4wMDg4MTgiLCBcCi0gICAgICAgICAgIjAuMDA4ODIsIDAuMDA4ODQsIDAuMDA4ODMxLCAwLjAwODgyNiwgMC4wMDg4MTcsIDAuMDA4ODEzLCAwLjAwODgxIiwgXAotICAgICAgICAgICIwLjAwODg1NCwgMC4wMDg4NzQsIDAuMDA4ODY1LCAwLjAwODg1NywgMC4wMDg4NTEsIDAuMDA4ODQ3LCAwLjAwODg0NCIsIFwKLSAgICAgICAgICAiMC4wMDg4OSwgMC4wMDg5MSwgMC4wMDg5MDEsIDAuMDA4ODkyLCAwLjAwODg4NywgMC4wMDg4ODIsIDAuMDA4ODc5IiwgXAotICAgICAgICAgICIwLjAwODk0MSwgMC4wMDg5NjIsIDAuMDA4OTUzLCAwLjAwODk0NCwgMC4wMDg5MzgsIDAuMDA4OTMzLCAwLjAwODkzIiwgXAotICAgICAgICAgICIwLjAwOTAzNiwgMC4wMDkwNTYsIDAuMDA5MDQ3LCAwLjAwOTAzNywgMC4wMDkwMzEsIDAuMDA5MDI2LCAwLjAwOTAyNSIsIFwKLSAgICAgICAgICAiMC4wMDkxMjksIDAuMDA5MTQzLCAwLjAwOTEzNCwgMC4wMDkxMjQsIDAuMDA5MTE3LCAwLjAwOTExMywgMC4wMDkxMDkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoc2NhbGFyKSB7Ci0gICAgICAgIHZhbHVlcygiMCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDY2MzMsIDAuMDA2Njc0LCAwLjAwNjY4LCAwLjAwNjY4MiwgMC4wMDY2ODQsIDAuMDA2Njg1LCAwLjAwNjY4NSIsIFwKLSAgICAgICAgICAiMC4wMDY2MDgsIDAuMDA2NjQ5LCAwLjAwNjY1NCwgMC4wMDY2NiwgMC4wMDY2NTksIDAuMDA2NjU5LCAwLjAwNjY2IiwgXAotICAgICAgICAgICIwLjAwNjU5NywgMC4wMDY2MzgsIDAuMDA2NjQ0LCAwLjAwNjY0NywgMC4wMDY2NDgsIDAuMDA2NjQ5LCAwLjAwNjY0OSIsIFwKLSAgICAgICAgICAiMC4wMDY2MDEsIDAuMDA2NjQyLCAwLjAwNjY0OCwgMC4wMDY2NTEsIDAuMDA2NjU1LCAwLjAwNjY1OCwgMC4wMDY2NTQiLCBcCi0gICAgICAgICAgIjAuMDA2NjEzLCAwLjAwNjY1NSwgMC4wMDY2NjEsIDAuMDA2NjY0LCAwLjAwNjY3MiwgMC4wMDY2NjcsIDAuMDA2NjY4IiwgXAotICAgICAgICAgICIwLjAwNjY2MiwgMC4wMDY3MDIsIDAuMDA2NzA4LCAwLjAwNjcxMiwgMC4wMDY3MTMsIDAuMDA2NzE0LCAwLjAwNjcxNSIsIFwKLSAgICAgICAgICAiMC4wMDY3MDYsIDAuMDA2NzQ5LCAwLjAwNjc1NiwgMC4wMDY3NTksIDAuMDA2NzYsIDAuMDA2NzYyLCAwLjAwNjc2MyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwODA3LCAwLjAwODEyMiwgMC4wMDgxMjcsIDAuMDA4MTMxLCAwLjAwODEzMiwgMC4wMDgxMzQsIDAuMDA4MTMzIiwgXAotICAgICAgICAgICIwLjAwODA1OCwgMC4wMDgxMDksIDAuMDA4MTE1LCAwLjAwODExOCwgMC4wMDgxMTksIDAuMDA4MTIsIDAuMDA4MTIiLCBcCi0gICAgICAgICAgIjAuMDA4MDc2LCAwLjAwODEyNSwgMC4wMDgxMywgMC4wMDgxMzQsIDAuMDA4MTM1LCAwLjAwODEzNSwgMC4wMDgxMzYiLCBcCi0gICAgICAgICAgIjAuMDA4MTA3LCAwLjAwODE2MSwgMC4wMDgxNjcsIDAuMDA4MTcsIDAuMDA4MTcyLCAwLjAwODE3MywgMC4wMDgxNzQiLCBcCi0gICAgICAgICAgIjAuMDA4MTU4LCAwLjAwODIxMiwgMC4wMDgyMTgsIDAuMDA4MjIxLCAwLjAwODIyMywgMC4wMDgyMjQsIDAuMDA4MjI0IiwgXAotICAgICAgICAgICIwLjAwODI3NiwgMC4wMDgzMjUsIDAuMDA4MzMxLCAwLjAwODMzNCwgMC4wMDgzMzYsIDAuMDA4MzM2LCAwLjAwODMzNyIsIFwKLSAgICAgICAgICAiMC4wMDgzNzYsIDAuMDA4NDI0LCAwLjAwODQyOSwgMC4wMDg0MzIsIDAuMDA4NDMzLCAwLjAwODQzNCwgMC4wMDg0MzYiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFJOKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2NTE1Mjc7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjUxNDYzOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDY1MTUyNzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA2MzYsIDAuMDAwNjMsIDAuMDAwNjkyLCAwLjAwMDc4NiwgMC4wMDA5MDMsIDAuMDAxMTE0LCAwLjAwMTI3NyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNDAyLCAwLjAwNDAxOSwgMC4wMDQwNzYsIDAuMDA0MTYyLCAwLjAwNDI3OCwgMC4wMDQ1MDYsIDAuMDA0Njk1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRCYhU0UmIVNJJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9TRV9FUV8wX0FOX1NJX0VRXzBfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjE0NzUyMiwgMC4xNTU1NTEsIDAuMTY0MDg0LCAwLjE3MDkxNSwgMC4xNzYzMzIsIDAuMTgzMTczLCAwLjE4ODMxNiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJlY292ZXJ5X3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiU04iOwotICAgICAgc2RmX2NvbmQgOiAiU04gPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQocmVjb3ZlcnlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDUsIDAuMDQ1LCAwLjAzMjUsIDAuMDI2MjUsIDAuMDIsIDAuMDE2MjUsIDAuMDA3NSIsIFwKLSAgICAgICAgICAiMC4wNjEyNSwgMC4wNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyMTI1LCAwLjAxODc1IiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDYyNSwgMC4wNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzMzc1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiMC4wNzM3NSwgMC4wNjg3NSwgMC4wNTYyNSwgMC4wNSwgMC4wNDM3NSwgMC4wNCwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4wOCwgMC4wNzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNSwgMC4wNDYyNSwgMC4wMzc1IiwgXAotICAgICAgICAgICIwLjA5LCAwLjA3ODc1LCAwLjA3MjUsIDAuMDYsIDAuMDYsIDAuMDUsIDAuMDQ3NSIsIFwKLSAgICAgICAgICAiMC4wOTI1LCAwLjA4NzUsIDAuMDc1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDUyNSwgMC4wNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJlY292ZXJ5X3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUQmIVNFJiFTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fU0VfRVFfMF9BTl9TSV9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHJlY292ZXJ5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1NjI1LCAwLjA2NzUsIDAuMDczNzUsIDAuMDgsIDAuMDgsIDAuMDksIDAuMDkyNSIsIFwKLSAgICAgICAgICAiMC4wNTEyNSwgMC4wNTYyNSwgMC4wNjI1LCAwLjA2ODc1LCAwLjA3NSwgMC4wODUsIDAuMDg3NSIsIFwKLSAgICAgICAgICAiMC4wNDUsIDAuMDU2MjUsIDAuMDYyNSwgMC4wNjI1LCAwLjA2ODc1LCAwLjA3ODc1LCAwLjA4MTI1IiwgXAotICAgICAgICAgICIwLjA0NSwgMC4wNSwgMC4wNTYyNSwgMC4wNjI1LCAwLjA2ODc1LCAwLjA3MjUsIDAuMDgxMjUiLCBcCi0gICAgICAgICAgIjAuMDM4NzUsIDAuMDUsIDAuMDU2MjUsIDAuMDU2MjUsIDAuMDYyNSwgMC4wNzI1LCAwLjA3NSIsIFwKLSAgICAgICAgICAiMC4wNDEyNSwgMC4wNDYyNSwgMC4wNTI1LCAwLjA1ODc1LCAwLjA1ODc1LCAwLjA2ODc1LCAwLjA3MTI1IiwgXAotICAgICAgICAgICIwLjAzODc1LCAwLjA0Mzc1LCAwLjA1LCAwLjA1NjI1LCAwLjA1NjI1LCAwLjA2NjI1LCAwLjA2ODc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogcmVtb3ZhbF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlNOIjsKLSAgICAgIHNkZl9jb25kIDogIlNOID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHJlbW92YWxfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAxMjUsIC0wLjAwMTI1LCAwLjAwNSwgMC4wMTEyNSwgMC4wMTc1LCAwLjAyMTI1LCAwLjAzIiwgXAotICAgICAgICAgICItMC4wMTc1LCAtMC4wMTI1LCAwLCAwLjAwNjI1LCAwLjAwNjI1LCAwLjAxNjI1LCAwLjAxODc1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLCAwLjAxLCAwLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMC4wMDM3NSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwMjUsIDAiLCBcCi0gICAgICAgICAgIi0wLjA0NjI1LCAtMC4wNDEyNSwgLTAuMDI4NzUsIC0wLjAyMjUsIC0wLjAxNjI1LCAtMC4wMTI1LCAtMC4wMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDE1LCAtMC4wMTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTRSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNjE5MDE7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNjE4NTM7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNjE5MDE7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA1OTY0LCAwLjAwNTk4LCAwLjAwNjA3LCAwLjAwNjE4NCwgMC4wMDYzNDgsIDAuMDA2NTcxLCAwLjAwNjc3MyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNzczNSwgMC4wMDc3NiwgMC4wMDc4NzMsIDAuMDA4MDMzLCAwLjAwODI0MiwgMC4wMDg2MDQsIDAuMDA4OTM3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlJOJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIlJOX0VRXzFfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMTg3NSwgLTAuMDEzNzUsIC0wLjAwNzUsIC0wLjAwMTI1LCAwLjAwNSwgMC4wMDg3NSwgMC4wMTc1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLCAwLjAwMzc1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIC0wLjAwMjUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA4NzUsIDAiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDg3NSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA0NjI1LCAtMC4wNDEyNSwgLTAuMDI4NzUsIC0wLjAyMjUsIC0wLjAyMjUsIC0wLjAxMjUsIC0wLjAxIiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDQzNzUsIC0wLjAzMTI1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMTUsIC0wLjAxMjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMTI1LCAtMC4wMDEyNSwgMC4wMDUsIDAuMDExMjUsIDAuMDE3NSwgMC4wMjEyNSwgMC4wMjM3NSIsIFwKLSAgICAgICAgICAiLTAuMDE3NSwgLTAuMDEyNSwgMCwgMC4wMDYyNSwgMC4wMDYyNSwgMC4wMTYyNSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMCwgMC4wMDM3NSwgMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIC0wLjAwMjUsIDAiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTg3NSwgLTAuMDA4NzUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wNDYyNSwgLTAuMDQxMjUsIC0wLjAzNSwgLTAuMDI4NzUsIC0wLjAyMjUsIC0wLjAxODc1LCAtMC4wMTYyNSIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAyNzUsIC0wLjAxODc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJSTiZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJSTl9FUV8xX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDgxMjUsIDAuMDcsIDAuMDYzNzUsIDAuMDU3NSwgMC4wNTEyNSwgMC4wNDEyNSwgMC4wMzg3NSIsIFwKLSAgICAgICAgICAiMC4wODYyNSwgMC4wODEyNSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1MjUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMDk4NzUsIDAuMDg3NSwgMC4wODEyNSwgMC4wNjg3NSwgMC4wNjg3NSwgMC4wNTg3NSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiMC4xMDUsIDAuMSwgMC4wODc1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNzEyNSwgMC4wNjI1IiwgXAotICAgICAgICAgICIwLjExNzUsIDAuMTA2MjUsIDAuMDkzNzUsIDAuMDg3NSwgMC4wODEyNSwgMC4wNzc1LCAwLjA3NSIsIFwKLSAgICAgICAgICAiMC4xMjc1LCAwLjExNjI1LCAwLjExLCAwLjA5NzUsIDAuMDk3NSwgMC4wODc1LCAwLjA4NSIsIFwKLSAgICAgICAgICAiMC4xMzYyNSwgMC4xMjUsIDAuMTE4NzUsIDAuMTA2MjUsIDAuMTA2MjUsIDAuMDk2MjUsIDAuMDkzNzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTM3NSwgMC4wODI1LCAwLjA3NjI1LCAwLjA2Mzc1LCAwLjA2Mzc1LCAwLjA1Mzc1LCAwLjA1MTI1IiwgXAotICAgICAgICAgICIwLjA5ODc1LCAwLjA4NzUsIDAuMDgxMjUsIDAuMDc1LCAwLjA2ODc1LCAwLjA2NSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiMC4xMDUsIDAuMDkzNzUsIDAuMDg3NSwgMC4wODEyNSwgMC4wNzUsIDAuMDY1LCAwLjA2MjUiLCBcCi0gICAgICAgICAgIjAuMTExMjUsIDAuMSwgMC4wODc1LCAwLjA4MTI1LCAwLjA4MTI1LCAwLjA3MTI1LCAwLjA2ODc1IiwgXAotICAgICAgICAgICIwLjExMTI1LCAwLjEwNjI1LCAwLjA5Mzc1LCAwLjA4NzUsIDAuMDgxMjUsIDAuMDc3NSwgMC4wNjg3NSIsIFwKLSAgICAgICAgICAiMC4xMTUsIDAuMTEsIDAuMDk3NSwgMC4wOTEyNSwgMC4wODUsIDAuMDgxMjUsIDAuMDcyNSIsIFwKLSAgICAgICAgICAiMC4xMTc1LCAwLjExMjUsIDAuMSwgMC4wOTM3NSwgMC4wODc1LCAwLjA4Mzc1LCAwLjA4MTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTSSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjU0MjM4OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDY1MzE4ODsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2NTQyMzg7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzOTA0LCAwLjAwMzg4MSwgMC4wMDM4OTIsIDAuMDAzOTMzLCAwLjAwMzk4MywgMC4wMDQwOTIsIDAuMDA0MjA4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA2NTAzLCAwLjAwNjQ4OCwgMC4wMDY0OTUsIDAuMDA2NTMxLCAwLjAwNjU4MiwgMC4wMDY2NzYsIDAuMDA2Nzg4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlJOJlNFJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIlJOX0VRXzFfQU5fU0VfRVFfMV9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAzNzUsIC0wLjAzMjUsIC0wLjAyNjI1LCAtMC4wMiwgLTAuMDIsIC0wLjAxNjI1LCAtMC4wMTM3NSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAyMTI1LCAtMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDI3NSwgLTAuMDI1IiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDQzNzUsIC0wLjA0Mzc1LCAtMC4wNCwgLTAuMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDYxMjUsIC0wLjA1NjI1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjA1LCAtMC4wNDYyNSwgLTAuMDQzNzUiLCBcCi0gICAgICAgICAgIi0wLjA3MTI1LCAtMC4wNjYyNSwgLTAuMDYsIC0wLjA2LCAtMC4wNiwgLTAuMDU2MjUsIC0wLjA0NzUiLCBcCi0gICAgICAgICAgIi0wLjA4LCAtMC4wNzUsIC0wLjA2ODc1LCAtMC4wNjg3NSwgLTAuMDYyNSwgLTAuMDU4NzUsIC0wLjA1NjI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDEyNSwgLTAuMDA3NSwgLTAuMDAxMjUsIDAuMDA1LCAwLjAxMTI1LCAwLjAxNSwgMC4wMjM3NSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLCAwLjAwNjI1LCAwLjAxLCAwLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAsIDAuMDAzNzUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgLTAuMDAyNSwgMCIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDg3NSwgMCIsIFwKLSAgICAgICAgICAiLTAuMDQ2MjUsIC0wLjAzNSwgLTAuMDI4NzUsIC0wLjAyMjUsIC0wLjAyMjUsIC0wLjAxMjUsIC0wLjAxIiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAyMTI1LCAtMC4wMTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJSTiZTRSZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJSTl9FUV8xX0FOX1NFX0VRXzFfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODc1LCAwLjA3NjI1LCAwLjA2Mzc1LCAwLjA1NzUsIDAuMDUxMjUsIDAuMDQ3NSwgMC4wNDUiLCBcCi0gICAgICAgICAgIjAuMDkyNSwgMC4wODEyNSwgMC4wNzUsIDAuMDYyNSwgMC4wNjI1LCAwLjA1MjUsIDAuMDUiLCBcCi0gICAgICAgICAgIjAuMDk4NzUsIDAuMDg3NSwgMC4wODEyNSwgMC4wNzUsIDAuMDY4NzUsIDAuMDU4NzUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIjAuMTA1LCAwLjEsIDAuMDg3NSwgMC4wODEyNSwgMC4wNzUsIDAuMDcxMjUsIDAuMDYyNSIsIFwKLSAgICAgICAgICAiMC4xMTEyNSwgMC4xMDYyNSwgMC4wOTM3NSwgMC4wODc1LCAwLjA4MTI1LCAwLjA3NzUsIDAuMDY4NzUiLCBcCi0gICAgICAgICAgIjAuMTIxMjUsIDAuMTEsIDAuMTAzNzUsIDAuMDk3NSwgMC4wOTEyNSwgMC4wODEyNSwgMC4wNzg3NSIsIFwKLSAgICAgICAgICAiMC4xMywgMC4xMTg3NSwgMC4xMTI1LCAwLjEwNjI1LCAwLjEsIDAuMDksIDAuMDg3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2ODc1LCAwLjA1NzUsIDAuMDQ1LCAwLjAzODc1LCAwLjAzMjUsIDAuMDI4NzUsIDAuMDIiLCBcCi0gICAgICAgICAgIjAuMDczNzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNDM3NSwgMC4wNDM3NSwgMC4wMzM3NSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4wOCwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1LCAwLjA0LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIjAuMDg2MjUsIDAuMDc1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDQ2MjUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMDkyNSwgMC4wODEyNSwgMC4wNzUsIDAuMDYyNSwgMC4wNjI1LCAwLjA1MjUsIDAuMDUiLCBcCi0gICAgICAgICAgIjAuMDk2MjUsIDAuMDkxMjUsIDAuMDc4NzUsIDAuMDcyNSwgMC4wNjYyNSwgMC4wNjI1LCAwLjA1Mzc1IiwgXAotICAgICAgICAgICIwLjEwNSwgMC4wOTM3NSwgMC4wODc1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNjUsIDAuMDYyNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oU04pICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTkxMTUzOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTkxMDU5OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTkxMTUzOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDU5MywgMC4wMDA1OTMsIDAuMDAwNTkyLCAwLjAwMDU5MywgMC4wMDA1OTMsIDAuMDAwNTkyLCAwLjAwMDU5MiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDU5OSwgMC4wMDA1OTQsIDAuMDAwNTk1LCAwLjAwMDU5NSwgMC4wMDA1OTUsIDAuMDAwNTk1LCAwLjAwMDU5NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQmIVJOJiFTRSYhU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1JOX0VRXzBfQU5fU0VfRVFfMF9BTl9TSV9FUV8wID09IDEnYjEiOwotICAgICAgZmFsbF9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMTExNjI5LCAwLjExODczNCwgMC4xMjYwNzgsIDAuMTMyNjMyLCAwLjE0MDE1LCAwLjE1MDUyMywgMC4xNTc4ODQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiByZWNvdmVyeV9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlJOIjsKLSAgICAgIHNkZl9jb25kIDogIlJOID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHJlY292ZXJ5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMjUsIDAuMDAxMjUsIC0wLjAxMTI1LCAtMC4wMTc1LCAtMC4wMjM3NSwgLTAuMDMzNzUsIC0wLjAzNjI1IiwgXAotICAgICAgICAgICIwLjAxNzUsIDAuMDA2MjUsIDAsIC0wLjAxMjUsIC0wLjAxODc1LCAtMC4wMjI1LCAtMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4wMjM3NSwgMC4wMTI1LCAwLjAwNjI1LCAwLCAtMC4wMTI1LCAtMC4wMTYyNSwgLTAuMDI1IiwgXAotICAgICAgICAgICIwLjAzLCAwLjAyNSwgMC4wMTI1LCAwLjAwNjI1LCAwLCAtMC4wMSwgLTAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMDM2MjUsIDAuMDMxMjUsIDAuMDE4NzUsIDAuMDEyNSwgMC4wMDYyNSwgLTAuMDAzNzUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICIwLjA1MjUsIDAuMDQxMjUsIDAuMDI4NzUsIDAuMDIyNSwgMC4wMTYyNSwgMC4wMDYyNSwgMC4wMDM3NSIsIFwKLSAgICAgICAgICAiMC4wNjEyNSwgMC4wNSwgMC4wNDM3NSwgMC4wMzEyNSwgMC4wMjUsIDAuMDE1LCAwLjAxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiByZW1vdmFsX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiUk4iOwotICAgICAgc2RmX2NvbmQgOiAiUk4gPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQocmVtb3ZhbF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTg3NSwgMC4wMywgMC4wMzYyNSwgMC4wNDI1LCAwLjA0ODc1LCAwLjA1ODc1LCAwLjA2MTI1IiwgXAotICAgICAgICAgICIwLjAxMzc1LCAwLjAxODc1LCAwLjAzMTI1LCAwLjAzNzUsIDAuMDQzNzUsIDAuMDUzNzUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIjAuMDA3NSwgMC4wMTI1LCAwLjAyNSwgMC4wMzEyNSwgMC4wMzc1LCAwLjA0MTI1LCAwLjA1IiwgXAotICAgICAgICAgICItMC4wMDUsIDAuMDA2MjUsIDAuMDEyNSwgMC4wMjUsIDAuMDMxMjUsIDAuMDM1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICItMC4wMDUsIDAsIDAuMDEyNSwgMC4wMTg3NSwgMC4wMjUsIDAuMDI4NzUsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDE1LCAtMC4wMSwgMC4wMDI1LCAwLjAwODc1LCAwLjAxNSwgMC4wMjUsIDAuMDI3NSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLjAwNjI1LCAwLjAwNjI1LCAwLjAxNjI1LCAwLjAyNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IFNERkZTWDIgKgotICogLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoU0RGRlNYMikgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAxLjM1OTQ7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgZmYgKE4zNSxRQklOVCkgewotICAgIG5leHRfc3RhdGUgOiAiKChTRSBTSSkgKyAoIVNFIEQpKSI7Ci0gICAgY2xvY2tlZF9vbiA6ICJDSyI7Ci0gICAgcHJlc2V0IDogIighU04pIjsKLSAgfQotICBwaW4oQ0spICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY5NDY0MjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2OTQ1MDc7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjk0NjQyOwotICAgIGNsb2NrIDogdHJ1ZTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDMyOTgsIDAuMDAzMjksIDAuMDAzMzUyLCAwLjAwMzQ1MiwgMC4wMDM1NiwgMC4wMDM3NjIsIDAuMDAzOTY3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA4NjY3LCAwLjAwODY2OCwgMC4wMDg3NDUsIDAuMDA4ODg2LCAwLjAwOTAwMiwgMC4wMDkyNTgsIDAuMDA5NDk5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRCYhU0UmIVNJJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9TRV9FUV8wX0FOX1NJX0VRXzBfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjExMzkyNywgMC4xMjIxNTYsIDAuMTMxNDk1LCAwLjEzODg0NywgMC4xNDQ4NzEsIDAuMTUyNzQ2LCAwLjE1ODUxOSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDc3NTQ2LCAwLjA4NTY0MSwgMC4wOTQ5MTEsIDAuMTAyMTc4LCAwLjEwNzk4NSwgMC4xMTU0NjUsIDAuMTIxMDUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEQpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYxODk0OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYxNzg1NjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2MTg5NDsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDQxMjcsIDAuMDA0MTA0LCAwLjAwNDExNSwgMC4wMDQxNiwgMC4wMDQyMTMsIDAuMDA0MzEzLCAwLjAwNDQyNiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNTkyLCAwLjAwNTkwNCwgMC4wMDU5MTcsIDAuMDA1OTU2LCAwLjAwNjAxMSwgMC4wMDYxMTcsIDAuMDA2MjE5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFTRSZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJTRV9FUV8wX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDMxMjUsIC0wLjAyNjI1LCAtMC4wMiwgLTAuMDIsIC0wLjAxMzc1LCAtMC4wMSwgLTAuMDA3NSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxNSwgLTAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjAzNzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMzEyNSwgLTAuMDI3NSwgLTAuMDI1IiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDM3NSwgLTAuMDMzNzUsIC0wLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wNjEyNSwgLTAuMDUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDQzNzUsIC0wLjA0LCAtMC4wMzc1IiwgXAotICAgICAgICAgICItMC4wNjUsIC0wLjA2LCAtMC4wNTM3NSwgLTAuMDUzNzUsIC0wLjA1Mzc1LCAtMC4wNSwgLTAuMDQxMjUiLCBcCi0gICAgICAgICAgIi0wLjA3Mzc1LCAtMC4wNjg3NSwgLTAuMDYyNSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA1MjUsIC0wLjA1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDEyNSwgLTAuMDA3NSwgLTAuMDAxMjUsIDAuMDA1LCAwLjAxMTI1LCAwLjAxNSwgMC4wMjM3NSIsIFwKLSAgICAgICAgICAiLTAuMDE3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAsIDAuMDA2MjUsIDAuMDEsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAsIDAuMDAzNzUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgLTAuMDAyNSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDg3NSwgMCIsIFwKLSAgICAgICAgICAiLTAuMDQsIC0wLjAzNSwgLTAuMDI4NzUsIC0wLjAyMjUsIC0wLjAyMjUsIC0wLjAxMjUsIC0wLjAxIiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAyMTI1LCAtMC4wMTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhU0UmU04iOwotICAgICAgc2RmX2NvbmQgOiAiU0VfRVFfMF9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2MjUsIDAuMDUxMjUsIDAuMDQ1LCAwLjAzODc1LCAwLjAzODc1LCAwLjAzNSwgMC4wMzI1IiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDYyNSwgMC4wNSwgMC4wNSwgMC4wNDM3NSwgMC4wNCwgMC4wMzc1IiwgXAotICAgICAgICAgICIwLjA3Mzc1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDUsIDAuMDQ2MjUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMDg2MjUsIDAuMDc1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDUyNSwgMC4wNSIsIFwKLSAgICAgICAgICAiMC4wOTI1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjg3NSwgMC4wNTg3NSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiMC4wOTYyNSwgMC4wOTEyNSwgMC4wODUsIDAuMDc4NzUsIDAuMDcyNSwgMC4wNjg3NSwgMC4wNjYyNSIsIFwKLSAgICAgICAgICAiMC4xMDUsIDAuMSwgMC4wODc1LCAwLjA4NzUsIDAuMDgxMjUsIDAuMDc3NSwgMC4wNzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjI1LCAwLjA1NzUsIDAuMDQ1LCAwLjAzODc1LCAwLjAzMjUsIDAuMDI4NzUsIDAuMDIiLCBcCi0gICAgICAgICAgIjAuMDY3NSwgMC4wNjI1LCAwLjA1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDMzNzUsIDAuMDI1IiwgXAotICAgICAgICAgICIwLjA3Mzc1LCAwLjA2ODc1LCAwLjA1NjI1LCAwLjA1LCAwLjA0Mzc1LCAwLjA0LCAwLjAzMTI1IiwgXAotICAgICAgICAgICIwLjA4LCAwLjA3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1LCAwLjA0NjI1LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIjAuMDg2MjUsIDAuMDgxMjUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNTI1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjA5NjI1LCAwLjA4NSwgMC4wNzg3NSwgMC4wNzI1LCAwLjA2NjI1LCAwLjA1NjI1LCAwLjA1Mzc1IiwgXAotICAgICAgICAgICIwLjEwNSwgMC4wOTM3NSwgMC4wODc1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjUsIDAuMDU2MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFEpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC42NzA2NTk7Ci0gICAgZnVuY3Rpb24gOiAiTjM1IjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBub25fdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJpc2luZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODUxNzgsIDAuMTYzMzY3LCAwLjIyNTc1MywgMC4zMDM2ODksIDAuMzgxMTkyLCAwLjQ1ODgyNiwgMC41MzY0NSIsIFwKLSAgICAgICAgICAiMC4wOTMzNCwgMC4xNzE1MjksIDAuMjMzOTQ2LCAwLjMxMTgyMiwgMC4zODkzMzgsIDAuNDY2OTQ0LCAwLjU0NDUyMyIsIFwKLSAgICAgICAgICAiMC4xMDI2NjksIDAuMTgwOTM2LCAwLjI0MzIzNCwgMC4zMjExMjUsIDAuMzk4MTgsIDAuNDc2MzU4LCAwLjU1MzkxNyIsIFwKLSAgICAgICAgICAiMC4xMDk5OCwgMC4xODgzMTcsIDAuMjUwNzg0LCAwLjMyODQ2LCAwLjQwNjEwNSwgMC40ODM1OTgsIDAuNTYxMjU3IiwgXAotICAgICAgICAgICIwLjExNTgyNSwgMC4xOTQyOTUsIDAuMjU2NjI5LCAwLjMzNDMxMSwgMC40MTE4ODEsIDAuNDg5NDIsIDAuNTY3MTA2IiwgXAotICAgICAgICAgICIwLjEyMzg0OSwgMC4yMDIxNjUsIDAuMjY0NTgxLCAwLjM0MjI5NywgMC40MTk4MjgsIDAuNDk3NDg3LCAwLjU3NTExMyIsIFwKLSAgICAgICAgICAiMC4xMjk0ODcsIDAuMjA3NzYsIDAuMjY5ODI0LCAwLjM0NzU5NiwgMC40MjU0MjEsIDAuNTAyODM4LCAwLjU4MDczNCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDEwMzcsIDAuMjAxNzI3LCAwLjMzMjc2MiwgMC40OTU4MzQsIDAuNjYwOTMxLCAwLjgyNTExOSwgMC45ODkzMzkiLCBcCi0gICAgICAgICAgIjAuMDQwOTg2LCAwLjIwMTcyOSwgMC4zMzI3NzYsIDAuNDk1ODY0LCAwLjY2MDkyNCwgMC44MjUxMjEsIDAuOTg5MzA3IiwgXAotICAgICAgICAgICIwLjA0MTA0MywgMC4yMDE3NTEsIDAuMzMyNzU2LCAwLjQ5NTgzNCwgMC42NTk2OTEsIDAuODI1MTUzLCAwLjk4OTM0OCIsIFwKLSAgICAgICAgICAiMC4wNDA5OTQsIDAuMjAxNzI0LCAwLjMzMjc2OCwgMC40OTU4OCwgMC42NjA4OTUsIDAuODI1MTIsIDAuOTg5MzQiLCBcCi0gICAgICAgICAgIjAuMDQwOTYxLCAwLjIwMTU3NywgMC4zMzIyNzksIDAuNDk1ODY2LCAwLjY2MDg3MSwgMC44MjUxMSwgMC45ODkzMyIsIFwKLSAgICAgICAgICAiMC4wNDA5NjksIDAuMjAxNzM1LCAwLjMzMjc1MSwgMC40OTU4OTUsIDAuNjYwNzkzLCAwLjgyNTAyNSwgMC45ODkyNCIsIFwKLSAgICAgICAgICAiMC4wNDEwMjMsIDAuMjAxNzI1LCAwLjMzMjI5NCwgMC40OTYwMDEsIDAuNjYwNzc0LCAwLjgyNDIwMiwgMC45ODkyMzQiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk4NzcsIDAuMTc1MiwgMC4yMzYxMzQsIDAuMzExNjQ2LCAwLjM4NzgwNiwgMC40NjM2NjgsIDAuNTM5MjcxIiwgXAotICAgICAgICAgICIwLjEwNjk5OSwgMC4xODM1NzUsIDAuMjQ0MzQ1LCAwLjMxOTk2MSwgMC4zOTU4MTcsIDAuNDcyMDY4LCAwLjU0ODMwMiIsIFwKLSAgICAgICAgICAiMC4xMTYzMzUsIDAuMTkyOTkzLCAwLjI1MzY2MSwgMC4zMjkyODYsIDAuNDA1MTU5LCAwLjQ4MTA3MiwgMC41NTc2MDYiLCBcCi0gICAgICAgICAgIjAuMTIzNjkxLCAwLjIwMDM1MywgMC4yNjEwMiwgMC4zMzY2NDMsIDAuNDEyNTE4LCAwLjQ4ODQzMywgMC41NjQ5NjYiLCBcCi0gICAgICAgICAgIjAuMTI5NzE1LCAwLjIwNjE1NCwgMC4yNjcwNjgsIDAuMzQyNTg5LCAwLjQxODcxMywgMC40OTQ2OSwgMC41NzA0NiIsIFwKLSAgICAgICAgICAiMC4xMzc1OTcsIDAuMjE0MjM2LCAwLjI3NDkyMiwgMC4zNTA3MjEsIDAuNDI2Njk0LCAwLjUwMzAyNywgMC41Nzg4MzciLCBcCi0gICAgICAgICAgIjAuMTQzMzczLCAwLjIxOTg5OSwgMC4yODA2OTIsIDAuMzU2NzM0LCAwLjQzMjkyNywgMC41MDg3MzksIDAuNTg0NTE4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzOTgyOSwgMC4xOTM0MjcsIDAuMzIwMDEzLCAwLjQ3NzY3OSwgMC42MzUwMjksIDAuNzkwNTU4LCAwLjk0OTY2NCIsIFwKLSAgICAgICAgICAiMC4wMzk5MDIsIDAuMTk0Njc1LCAwLjMyMDEwMywgMC40Nzc1OTYsIDAuNjMzODM0LCAwLjc5MjI4MSwgMC45NDc2NzYiLCBcCi0gICAgICAgICAgIjAuMDM5OTA5LCAwLjE5NDU0MywgMC4zMjAxMjgsIDAuNDc3NTk2LCAwLjYzMzg1NSwgMC43OTI0MDksIDAuOTQ5ODcxIiwgXAotICAgICAgICAgICIwLjAzOTkwMiwgMC4xOTQ1NDksIDAuMzIwMTI2LCAwLjQ3NzYwMiwgMC42MzM4NTUsIDAuNzkyNDEyLCAwLjk0OTg2OCIsIFwKLSAgICAgICAgICAiMC4wMzk4MzEsIDAuMTkzNTAzLCAwLjMyMDA5NywgMC40Nzc2NzYsIDAuNjM0OTc4LCAwLjc5MjIxNCwgMC45NDg2NzIiLCBcCi0gICAgICAgICAgIjAuMDM5ODk1LCAwLjE5NDY3NSwgMC4zMjAwMjcsIDAuNDc3NjQ4LCAwLjYzNTAxNywgMC43OTIyNzksIDAuOTQ5OTU4IiwgXAotICAgICAgICAgICIwLjAzOTc3OSwgMC4xOTQ3NiwgMC4zMjAwMDUsIDAuNDc3MTkxLCAwLjYzNDc0MywgMC43OTIzNTgsIDAuOTQ5Nzk5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiBwcmVzZXQ7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3OTYsIDAuMTU3NzQsIDAuMjIwMzcsIDAuMjk3ODI1LCAwLjM3NTMwNiwgMC40NTI5ODcsIDAuNTMwOTU4IiwgXAotICAgICAgICAgICIwLjA4NzU0NSwgMC4xNjU2NjksIDAuMjI4MzEsIDAuMzA1NzQzLCAwLjM4MzIzOCwgMC40NjA4OTgsIDAuNTM4ODgxIiwgXAotICAgICAgICAgICIwLjA5NzI1NywgMC4xNzU0OTYsIDAuMjM4MDE1LCAwLjMxNTI4NCwgMC4zOTMzNzYsIDAuNDcwOTc5LCAwLjU0ODUxMyIsIFwKLSAgICAgICAgICAiMC4xMDU0OTgsIDAuMTgzNzA0LCAwLjI0NTY3OSwgMC4zMjM0NjMsIDAuNDAxMTgsIDAuNDc5MTI0LCAwLjU1Njg3OSIsIFwKLSAgICAgICAgICAiMC4xMTIyNzQsIDAuMTkwNDU0LCAwLjI1Mjg3LCAwLjMzMDc0NiwgMC40MDgyNzMsIDAuNDg1ODgsIDAuNTYzMzQ2IiwgXAotICAgICAgICAgICIwLjEyMTE1LCAwLjE5OTM3OSwgMC4yNjE3MTMsIDAuMzM5NDg5LCAwLjQxNzA4OCwgMC40OTQ3NjYsIDAuNTcyNTc3IiwgXAotICAgICAgICAgICIwLjEyNzQzNiwgMC4yMDU1MzUsIDAuMjY3NzYxLCAwLjM0NTc4NCwgMC40MjM0MDUsIDAuNTAxMTI3LCAwLjU3ODc2NiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDA4OTUsIDAuMjAxNzEzLCAwLjMzMjc3MywgMC40OTY3NjIsIDAuNjYwMTQsIDAuODI1MDg5LCAwLjk4OTM1NyIsIFwKLSAgICAgICAgICAiMC4wNDA4OTksIDAuMjAxNzIsIDAuMzMyNzkyLCAwLjQ5NjY4NywgMC42NTk2NzksIDAuODI1MDk5LCAwLjk4OTM1MiIsIFwKLSAgICAgICAgICAiMC4wNDA4OTgsIDAuMjAxNzI5LCAwLjMzMjM3MywgMC40OTY2ODIsIDAuNjYwNzM0LCAwLjgyNTA5LCAwLjk4OTM5NiIsIFwKLSAgICAgICAgICAiMC4wNDA4OTIsIDAuMjAxNzMxLCAwLjMzMjc3MiwgMC40OTU5LCAwLjY2MDc4LCAwLjgyNTEyNywgMC45ODkzNTUiLCBcCi0gICAgICAgICAgIjAuMDQxMDIzLCAwLjIwMTczOCwgMC4zMzI3NzgsIDAuNDk2MDY1LCAwLjY2MDg3MiwgMC44MjUxMzIsIDAuOTg5MjkiLCBcCi0gICAgICAgICAgIjAuMDQxMDk3LCAwLjIwMTc0MywgMC4zMzI3NDgsIDAuNDk2NjY5LCAwLjY2MDgxMywgMC44MjUwNDQsIDAuOTg5MjE4IiwgXAotICAgICAgICAgICIwLjA0MTE5LCAwLjIwMTU1NCwgMC4zMzI3MjIsIDAuNDk2Njk0LCAwLjY2MDgzNiwgMC44MjUwMjUsIDAuOTg5MjMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2MzA0LCAwLjAwNjM2NSwgMC4wMDYzNzIsIDAuMDA2Mzc2LCAwLjAwNjM3OCwgMC4wMDYzOCwgMC4wMDYzOCIsIFwKLSAgICAgICAgICAiMC4wMDYyOTUsIDAuMDA2MzU2LCAwLjAwNjM2MywgMC4wMDYzNjcsIDAuMDA2MzcsIDAuMDA2MzcxLCAwLjAwNjM3MiIsIFwKLSAgICAgICAgICAiMC4wMDYzMzUsIDAuMDA2Mzk1LCAwLjAwNjQwMywgMC4wMDY0MDYsIDAuMDA2NDA5LCAwLjAwNjQxMSwgMC4wMDY0MTEiLCBcCi0gICAgICAgICAgIjAuMDA2MzgyLCAwLjAwNjQ0NCwgMC4wMDY0NTIsIDAuMDA2NDU2LCAwLjAwNjQ1OCwgMC4wMDY0NTksIDAuMDA2NDYiLCBcCi0gICAgICAgICAgIjAuMDA2NDUxLCAwLjAwNjUxNCwgMC4wMDY1MjIsIDAuMDA2NTI1LCAwLjAwNjUyNywgMC4wMDY1MjksIDAuMDA2NTI5IiwgXAotICAgICAgICAgICIwLjAwNjU1MiwgMC4wMDY2MTMsIDAuMDA2NjIyLCAwLjAwNjYxNywgMC4wMDY2MjksIDAuMDA2NjMxLCAwLjAwNjYzMSIsIFwKLSAgICAgICAgICAiMC4wMDY2NjIsIDAuMDA2NzIyLCAwLjAwNjcyOSwgMC4wMDY3MzMsIDAuMDA2NzM2LCAwLjAwNjczNywgMC4wMDY3MzkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDYxNDgsIDAuMDA2MjEzLCAwLjAwNjIyMiwgMC4wMDYyMjYsIDAuMDA2MjMxLCAwLjAwNjIzLCAwLjAwNjIzNCIsIFwKLSAgICAgICAgICAiMC4wMDYxNDIsIDAuMDA2MjA5LCAwLjAwNjIxOCwgMC4wMDYyMjMsIDAuMDA2MjI4LCAwLjAwNjIyNiwgMC4wMDYyMjgiLCBcCi0gICAgICAgICAgIjAuMDA2MTkyLCAwLjAwNjI1OCwgMC4wMDYyNjcsIDAuMDA2MjcxLCAwLjAwNjI3NCwgMC4wMDYyNzYsIDAuMDA2Mjc2IiwgXAotICAgICAgICAgICIwLjAwNjI0MywgMC4wMDYzMSwgMC4wMDYzMTksIDAuMDA2MzI0LCAwLjAwNjMyNiwgMC4wMDYzMjcsIDAuMDA2MzI4IiwgXAotICAgICAgICAgICIwLjAwNjMyLCAwLjAwNjM4NiwgMC4wMDYzOTUsIDAuMDA2Mzk5LCAwLjAwNjQwMywgMC4wMDY0MDMsIDAuMDA2NDA0IiwgXAotICAgICAgICAgICIwLjAwNjQ0NCwgMC4wMDY1MSwgMC4wMDY1MTksIDAuMDA2NTIzLCAwLjAwNjUyNiwgMC4wMDY1MjcsIDAuMDA2NTI4IiwgXAotICAgICAgICAgICIwLjAwNjU0NCwgMC4wMDY1OTEsIDAuMDA2NjE3LCAwLjAwNjYyMywgMC4wMDY2MjQsIDAuMDA2NjI1LCAwLjAwNjYyNiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDY3MTEsIDAuMDA2NzcxLCAwLjAwNjc3OSwgMC4wMDY3ODMsIDAuMDA2Nzg1LCAwLjAwNjc4OCwgMC4wMDY3ODgiLCBcCi0gICAgICAgICAgIjAuMDA2Njk5LCAwLjAwNjc1OSwgMC4wMDY3NjcsIDAuMDA2NzcxLCAwLjAwNjc3MywgMC4wMDY3NzQsIDAuMDA2Nzc3IiwgXAotICAgICAgICAgICIwLjAwNjcwOCwgMC4wMDY3NjksIDAuMDA2Nzc2LCAwLjAwNjc4LCAwLjAwNjc4MywgMC4wMDY3ODQsIDAuMDA2Nzg2IiwgXAotICAgICAgICAgICIwLjAwNjczNiwgMC4wMDY3OTgsIDAuMDA2ODA1LCAwLjAwNjgxLCAwLjAwNjgxMiwgMC4wMDY4MTMsIDAuMDA2ODE0IiwgXAotICAgICAgICAgICIwLjAwNjc3NCwgMC4wMDY4MzcsIDAuMDA2ODQ1LCAwLjAwNjg1LCAwLjAwNjg1MywgMC4wMDY4NTMsIDAuMDA2ODU0IiwgXAotICAgICAgICAgICIwLjAwNjg1NSwgMC4wMDY5MTQsIDAuMDA2OTIxLCAwLjAwNjkyNiwgMC4wMDY5MjgsIDAuMDA2OTMsIDAuMDA2OTMiLCBcCi0gICAgICAgICAgIjAuMDA2OTUyLCAwLjAwNzAxMSwgMC4wMDcwMiwgMC4wMDcwMjQsIDAuMDA3MDI0LCAwLjAwNzAyNiwgMC4wMDcwMjciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoc2NhbGFyKSB7Ci0gICAgICAgIHZhbHVlcygiMCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUU4pICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC42NzUzOTI7Ci0gICAgZnVuY3Rpb24gOiAiUUJJTlQiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5vbl91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcmlzaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExMzkyNywgMC4xOTI1NzEsIDAuMjU1NTI2LCAwLjMzNDE4OSwgMC40MTI5MjUsIDAuNDkxNjExLCAwLjU3MDI4MyIsIFwKLSAgICAgICAgICAiMC4xMjIxNTYsIDAuMjAwODMxLCAwLjI2Mzc1OSwgMC4zNDI0MjIsIDAuNDIxMTUsIDAuNDk5ODE1LCAwLjU3ODYxMyIsIFwKLSAgICAgICAgICAiMC4xMzE0OTUsIDAuMjEwMTIxLCAwLjI3MzA1MiwgMC4zNTE3MTgsIDAuNDMwNDQ1LCAwLjUwOTEzNCwgMC41ODc4OTciLCBcCi0gICAgICAgICAgIjAuMTM4ODQ4LCAwLjIxNzQ3NiwgMC4yODA0MDcsIDAuMzU5MDc0LCAwLjQzNzgsIDAuNTE2NDg5LCAwLjU5NTI1MyIsIFwKLSAgICAgICAgICAiMC4xNDQ4NzIsIDAuMjIzNTE5LCAwLjI4NjQ3MywgMC4zNjUxMzksIDAuNDQzODczLCAwLjUyMjUwNCwgMC42MDEyNDkiLCBcCi0gICAgICAgICAgIjAuMTUyNzQ2LCAwLjIzMTMyLCAwLjI5NDM1LCAwLjM3MzAzOCwgMC40NTE2NiwgMC41MzA1MjQsIDAuNjA5MTkyIiwgXAotICAgICAgICAgICIwLjE1ODUyMSwgMC4yMzcxNzcsIDAuMzAwMTEzLCAwLjM3ODgxMSwgMC40NTc1ODIsIDAuNTM2MjU2LCAwLjYxNDg3NCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzkyODEsIDAuMjAyMjY0LCAwLjMzNDQyLCAwLjQ5ODg5NSwgMC42NjM0MzgsIDAuODI4MDU1LCAwLjk5Mjc3MSIsIFwKLSAgICAgICAgICAiMC4wMzkyODMsIDAuMjAyNDQyLCAwLjMzNDQzNiwgMC40OTg4MjcsIDAuNjYzMTk4LCAwLjgyOTI4MiwgMC45OTI3MjkiLCBcCi0gICAgICAgICAgIjAuMDM5Mjc0LCAwLjIwMjMzNywgMC4zMzQ0NDIsIDAuNDk4ODMyLCAwLjY2MzE5NSwgMC44MjgxMTMsIDAuOTkyNzQ4IiwgXAotICAgICAgICAgICIwLjAzOTI3MywgMC4yMDIzMzUsIDAuMzM0NDQyLCAwLjQ5ODgzNCwgMC42NjMxOTQsIDAuODI4MTE0LCAwLjk5Mjc0NSIsIFwKLSAgICAgICAgICAiMC4wMzkyODEsIDAuMjAyMjY1LCAwLjMzNDQzNywgMC40OTg4OTYsIDAuNjYzNDA2LCAwLjgyOTM0NiwgMC45OTIzMyIsIFwKLSAgICAgICAgICAiMC4wMzkyNzcsIDAuMjAyNDQsIDAuMzM0NDA2LCAwLjQ5OTMxMSwgMC42NjM1MjQsIDAuODI4MDY0LCAwLjk5NDE3OSIsIFwKLSAgICAgICAgICAiMC4wMzk0ODEsIDAuMjAyNDUzLCAwLjMzNDM5MywgMC40OTk0NzUsIDAuNjYzNDU5LCAwLjgyODEwMSwgMC45OTI3NTMiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTAxODk3LCAwLjE3ODk4NCwgMC4yNDA2MDcsIDAuMzE3NjgyLCAwLjM5NDY1NywgMC40NzE2NjgsIDAuNTQ4NjcxIiwgXAotICAgICAgICAgICIwLjExMDA2MSwgMC4xODcxNiwgMC4yNDg3ODgsIDAuMzI1ODQ4LCAwLjQwMjgyNywgMC40Nzk4MjYsIDAuNTU2ODEzIiwgXAotICAgICAgICAgICIwLjExOTM4NiwgMC4xOTY0ODUsIDAuMjU4MDk5LCAwLjMzNTE2MSwgMC40MTIwNjIsIDAuNDg5MTc0LCAwLjU2NjE1NiIsIFwKLSAgICAgICAgICAiMC4xMjY2OTIsIDAuMjAzNzk2LCAwLjI2NTQ1MywgMC4zNDI0NzYsIDAuNDE5NDk1LCAwLjQ5NjQ1NywgMC41NzM0NzUiLCBcCi0gICAgICAgICAgIjAuMTMyNTMyLCAwLjIwOTY2NiwgMC4yNzEzMDQsIDAuMzQ4MzMsIDAuNDI1MzI1LCAwLjUwMjMwMiwgMC41NzkzMjkiLCBcCi0gICAgICAgICAgIjAuMTQwNTYxLCAwLjIxNzY3NiwgMC4yNzkzMDMsIDAuMzU2MzQ3LCAwLjQzMzMyOSwgMC41MTAzNDUsIDAuNTg3MzQ5IiwgXAotICAgICAgICAgICIwLjE0NjE5NywgMC4yMjMyODgsIDAuMjg0OTE1LCAwLjM2MTk0NiwgMC40Mzg5MzksIDAuNTE1OTUyLCAwLjU5Mjk2NiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzgyMjEsIDAuMTk1NTc5LCAwLjMyMzAxNCwgMC40ODE0MzcsIDAuNjQxNzAxLCAwLjgwMDk5MywgMC45NjAzNDEiLCBcCi0gICAgICAgICAgIjAuMDM4MjE4LCAwLjE5NTU3LCAwLjMyMzAyOCwgMC40ODE0NiwgMC42NDE2OTMsIDAuODAwOTU3LCAwLjk2MDIzOSIsIFwKLSAgICAgICAgICAiMC4wMzgyMjEsIDAuMTk1NjM5LCAwLjMyMzAwNywgMC40ODE0OTUsIDAuNjQwNjYzLCAwLjgwMTA0MywgMC45NjAzMTciLCBcCi0gICAgICAgICAgIjAuMDM4MjIsIDAuMTk1NTY2LCAwLjMyMzAxOSwgMC40ODE1MzMsIDAuNjQxNjU4LCAwLjgwMDk2MSwgMC45NjAzMDUiLCBcCi0gICAgICAgICAgIjAuMDM4MTkzLCAwLjE5NTM5OCwgMC4zMjI1ODQsIDAuNDgxNDYzLCAwLjY0MTY2NywgMC44MDA5MzUsIDAuOTYwMjkzIiwgXAotICAgICAgICAgICIwLjAzODIwMiwgMC4xOTU2MTksIDAuMzIyOTksIDAuNDgxNTY2LCAwLjY0MTU0MiwgMC44MDA4NDQsIDAuOTYwMTY5IiwgXAotICAgICAgICAgICIwLjAzODIyMiwgMC4xOTU1ODYsIDAuMzIyNjM4LCAwLjQ4MTcwNywgMC42NDE1MDUsIDAuODAwMjcxLCAwLjk2MDE1NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogY2xlYXI7Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5NjMzLCAwLjE3MzQ2OCwgMC4yMzUxMjYsIDAuMzEyMDkyLCAwLjM4OTExNiwgMC40NjYxMiwgMC41NDMxODMiLCBcCi0gICAgICAgICAgIjAuMTA0Mjc0LCAwLjE4MTQxMywgMC4yNDMwNzEsIDAuMzIwMDMzLCAwLjM5NzA2NiwgMC40NzQwNzYsIDAuNTUxMTIzIiwgXAotICAgICAgICAgICIwLjExMzk4NiwgMC4xOTExMjgsIDAuMjUyNzc3LCAwLjMyOTc2MywgMC40MDY4MjcsIDAuNDgzODI3LCAwLjU2MDc5NiIsIFwKLSAgICAgICAgICAiMC4xMjIyMjEsIDAuMTk5MzUzLCAwLjI2MDkxNiwgMC4zMzgsIDAuNDE0OTIyLCAwLjQ5MjAyMywgMC41NjkwNzUiLCBcCi0gICAgICAgICAgIjAuMTI5MDE4LCAwLjIwNjE2MSwgMC4yNjc3ODUsIDAuMzQ0ODQ0LCAwLjQyMTgxOCwgMC40OTg4MTUsIDAuNTc1ODA5IiwgXAotICAgICAgICAgICIwLjEzNzg1OCwgMC4yMTUwMDgsIDAuMjc2NjIyLCAwLjM1MzY1NSwgMC40MzA2NDksIDAuNTA3NjY5LCAwLjU4NDc0NSIsIFwKLSAgICAgICAgICAiMC4xNDQxMzEsIDAuMjIxMjE5LCAwLjI4Mjg1NSwgMC4zNTk4ODUsIDAuNDM2ODk2LCAwLjUxMzkyNCwgMC41OTA5MzciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM4MjI5LCAwLjE5NTU5MiwgMC4zMjMwMzgsIDAuNDgyMzQsIDAuNjQxMDgzLCAwLjgwMTA0OCwgMC45NjA0MDYiLCBcCi0gICAgICAgICAgIjAuMDM4MjMsIDAuMTk1NjE3LCAwLjMyMzA1NiwgMC40ODIyNzYsIDAuNjQwNTI0LCAwLjgwMTA0OSwgMC45NjA0NTEiLCBcCi0gICAgICAgICAgIjAuMDM4MjI5LCAwLjE5NTYzNiwgMC4zMjI2OTMsIDAuNDgyMzE5LCAwLjY0MTUyOSwgMC44MDEwMDMsIDAuOTYwNDQ2IiwgXAotICAgICAgICAgICIwLjAzODIzLCAwLjE5NTY3NywgMC4zMjMwMzUsIDAuNDgxNTY1LCAwLjY0MTU4NCwgMC44MDA5OTksIDAuOTYwNDM3IiwgXAotICAgICAgICAgICIwLjAzODIyMywgMC4xOTU2NiwgMC4zMjMwMjQsIDAuNDgxODE4LCAwLjY0MTY1NCwgMC44MDA5NjcsIDAuOTYwMzQ0IiwgXAotICAgICAgICAgICIwLjAzODM2MSwgMC4xOTU2NDksIDAuMzIyOTc3LCAwLjQ4MjI2LCAwLjY0MTU2NSwgMC44MDA5MiwgMC45NjAyMTUiLCBcCi0gICAgICAgICAgIjAuMDM4MjIyLCAwLjE5NTQ1OCwgMC4zMjI5NTgsIDAuNDgyMjg5LCAwLjY0MTYxNywgMC44MDA4ODQsIDAuOTYwMTk4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjE0OCwgMC4wMDYyMTMsIDAuMDA2MjIyLCAwLjAwNjIyNiwgMC4wMDYyMzEsIDAuMDA2MjMsIDAuMDA2MjM0IiwgXAotICAgICAgICAgICIwLjAwNjE0MiwgMC4wMDYyMDksIDAuMDA2MjE4LCAwLjAwNjIyMywgMC4wMDYyMjgsIDAuMDA2MjI2LCAwLjAwNjIyOCIsIFwKLSAgICAgICAgICAiMC4wMDYxOTIsIDAuMDA2MjU4LCAwLjAwNjI2NywgMC4wMDYyNzEsIDAuMDA2Mjc0LCAwLjAwNjI3NiwgMC4wMDYyNzYiLCBcCi0gICAgICAgICAgIjAuMDA2MjQzLCAwLjAwNjMxLCAwLjAwNjMxOSwgMC4wMDYzMjQsIDAuMDA2MzI2LCAwLjAwNjMyNywgMC4wMDYzMjgiLCBcCi0gICAgICAgICAgIjAuMDA2MzIsIDAuMDA2Mzg2LCAwLjAwNjM5NSwgMC4wMDYzOTksIDAuMDA2NDAzLCAwLjAwNjQwMywgMC4wMDY0MDQiLCBcCi0gICAgICAgICAgIjAuMDA2NDQ0LCAwLjAwNjUxLCAwLjAwNjUxOSwgMC4wMDY1MjMsIDAuMDA2NTI2LCAwLjAwNjUyNywgMC4wMDY1MjgiLCBcCi0gICAgICAgICAgIjAuMDA2NTQ0LCAwLjAwNjU5MSwgMC4wMDY2MTcsIDAuMDA2NjIzLCAwLjAwNjYyNCwgMC4wMDY2MjUsIDAuMDA2NjI2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2MzA0LCAwLjAwNjM2NSwgMC4wMDYzNzIsIDAuMDA2Mzc2LCAwLjAwNjM3OCwgMC4wMDYzOCwgMC4wMDYzOCIsIFwKLSAgICAgICAgICAiMC4wMDYyOTUsIDAuMDA2MzU2LCAwLjAwNjM2MywgMC4wMDYzNjcsIDAuMDA2MzcsIDAuMDA2MzcxLCAwLjAwNjM3MiIsIFwKLSAgICAgICAgICAiMC4wMDYzMzUsIDAuMDA2Mzk1LCAwLjAwNjQwMywgMC4wMDY0MDYsIDAuMDA2NDA5LCAwLjAwNjQxMSwgMC4wMDY0MTEiLCBcCi0gICAgICAgICAgIjAuMDA2MzgyLCAwLjAwNjQ0NCwgMC4wMDY0NTIsIDAuMDA2NDU2LCAwLjAwNjQ1OCwgMC4wMDY0NTksIDAuMDA2NDYiLCBcCi0gICAgICAgICAgIjAuMDA2NDUxLCAwLjAwNjUxNCwgMC4wMDY1MjIsIDAuMDA2NTI1LCAwLjAwNjUyNywgMC4wMDY1MjksIDAuMDA2NTI5IiwgXAotICAgICAgICAgICIwLjAwNjU1MiwgMC4wMDY2MTMsIDAuMDA2NjIyLCAwLjAwNjYxNywgMC4wMDY2MjksIDAuMDA2NjMxLCAwLjAwNjYzMSIsIFwKLSAgICAgICAgICAiMC4wMDY2NjIsIDAuMDA2NzIyLCAwLjAwNjcyOSwgMC4wMDY3MzMsIDAuMDA2NzM2LCAwLjAwNjczNywgMC4wMDY3MzkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2NzExLCAwLjAwNjc3MSwgMC4wMDY3NzksIDAuMDA2NzgzLCAwLjAwNjc4NSwgMC4wMDY3ODgsIDAuMDA2Nzg4IiwgXAotICAgICAgICAgICIwLjAwNjY5OSwgMC4wMDY3NTksIDAuMDA2NzY3LCAwLjAwNjc3MSwgMC4wMDY3NzMsIDAuMDA2Nzc0LCAwLjAwNjc3NyIsIFwKLSAgICAgICAgICAiMC4wMDY3MDgsIDAuMDA2NzY5LCAwLjAwNjc3NiwgMC4wMDY3OCwgMC4wMDY3ODMsIDAuMDA2Nzg0LCAwLjAwNjc4NiIsIFwKLSAgICAgICAgICAiMC4wMDY3MzYsIDAuMDA2Nzk4LCAwLjAwNjgwNSwgMC4wMDY4MSwgMC4wMDY4MTIsIDAuMDA2ODEzLCAwLjAwNjgxNCIsIFwKLSAgICAgICAgICAiMC4wMDY3NzQsIDAuMDA2ODM3LCAwLjAwNjg0NSwgMC4wMDY4NSwgMC4wMDY4NTMsIDAuMDA2ODUzLCAwLjAwNjg1NCIsIFwKLSAgICAgICAgICAiMC4wMDY4NTUsIDAuMDA2OTE0LCAwLjAwNjkyMSwgMC4wMDY5MjYsIDAuMDA2OTI4LCAwLjAwNjkzLCAwLjAwNjkzIiwgXAotICAgICAgICAgICIwLjAwNjk1MiwgMC4wMDcwMTEsIDAuMDA3MDIsIDAuMDA3MDI0LCAwLjAwNzAyNCwgMC4wMDcwMjYsIDAuMDA3MDI3Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3Bvd2VyKHNjYWxhcikgewotICAgICAgICB2YWx1ZXMoIjAiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFNFKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDEzOTYyNTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDEzOTYyNTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDEzOTUzNTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDU0OTgsIDAuMDA1NTE2LCAwLjAwNTU5OSwgMC4wMDU3MTQsIDAuMDA1ODY2LCAwLjAwNjA5LCAwLjAwNjI4OSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNzM2NCwgMC4wMDczOTEsIDAuMDA3NTA5LCAwLjAwNzY3NCwgMC4wMDc4ODYsIDAuMDA4MjU0LCAwLjAwODU5NiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJTTiA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMTg3NSwgLTAuMDEzNzUsIC0wLjAwMTI1LCAwLjAwNSwgMC4wMDUsIDAuMDE1LCAwLjAxNzUiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAsIDAuMDAzNzUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAtMC4wMDI1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDMxMjUsIC0wLjAxODc1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDAyNSwgMCIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwODc1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDQ2MjUsIC0wLjAzNSwgLTAuMDI4NzUsIC0wLjAyMjUsIC0wLjAxNjI1LCAtMC4wMTI1LCAtMC4wMSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjA0Mzc1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMjUsIC0wLjAxNSwgLTAuMDEyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAwNjI1LCAtMC4wMDEyNSwgMC4wMDUsIDAuMDExMjUsIDAuMDE3NSwgMC4wMjEyNSwgMC4wMjM3NSIsIFwKLSAgICAgICAgICAiLTAuMDE3NSwgLTAuMDA2MjUsIDAsIDAuMDA2MjUsIDAuMDA2MjUsIDAuMDE2MjUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAsIDAuMDAzNzUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAtMC4wMDI1LCAwIiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwODc1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDQ2MjUsIC0wLjA0MTI1LCAtMC4wMzUsIC0wLjAyODc1LCAtMC4wMjI1LCAtMC4wMTg3NSwgLTAuMDE2MjUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAzMTI1LCAtMC4wMjEyNSwgLTAuMDE4NzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlNOIjsKLSAgICAgIHNkZl9jb25kIDogIlNOID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2ODc1LCAwLjA1NzUsIDAuMDUxMjUsIDAuMDQ1LCAwLjAzODc1LCAwLjAyODc1LCAwLjAyNjI1IiwgXAotICAgICAgICAgICIwLjA3Mzc1LCAwLjA2ODc1LCAwLjA1NjI1LCAwLjA1LCAwLjA0Mzc1LCAwLjA0LCAwLjAzMTI1IiwgXAotICAgICAgICAgICIwLjA4LCAwLjA3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1LCAwLjA0NjI1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjA4NjI1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1MjUsIDAuMDUiLCBcCi0gICAgICAgICAgIjAuMDkyNSwgMC4wODEyNSwgMC4wNzUsIDAuMDY4NzUsIDAuMDY4NzUsIDAuMDY1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICIwLjEwMjUsIDAuMDkxMjUsIDAuMDg1LCAwLjA3ODc1LCAwLjA3ODc1LCAwLjA3NSwgMC4wNjYyNSIsIFwKLSAgICAgICAgICAiMC4xMTEyNSwgMC4xLCAwLjA5Mzc1LCAwLjA4NzUsIDAuMDg3NSwgMC4wNzc1LCAwLjA3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2ODc1LCAwLjA1NzUsIDAuMDUxMjUsIDAuMDUxMjUsIDAuMDQ1LCAwLjA0MTI1LCAwLjAzODc1IiwgXAotICAgICAgICAgICIwLjA3Mzc1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDUsIDAuMDQ2MjUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMDgsIDAuMDc1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDUyNSwgMC4wNSIsIFwKLSAgICAgICAgICAiMC4wODYyNSwgMC4wNzUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNjI1LCAwLjA1ODc1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICIwLjA5MjUsIDAuMDgxMjUsIDAuMDc1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDU4NzUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIjAuMTAyNSwgMC4wOTEyNSwgMC4wODUsIDAuMDc4NzUsIDAuMDcyNSwgMC4wNjI1LCAwLjA2IiwgXAotICAgICAgICAgICIwLjExMTI1LCAwLjEsIDAuMDkzNzUsIDAuMDg3NSwgMC4wODEyNSwgMC4wNzEyNSwgMC4wNjg3NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oU0kpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDc0MDk3MTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA3Mzk3ODk7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNzQwOTcxOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzgxNCwgMC4wMDM3OTMsIDAuMDAzODE2LCAwLjAwMzg1MSwgMC4wMDM5MjUsIDAuMDA0MDMyLCAwLjAwNDE1NCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNjAxNSwgMC4wMDYsIDAuMDA2MDE5LCAwLjAwNjA2LCAwLjAwNjEyNSwgMC4wMDYyNDYsIDAuMDA2MzQxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlNFJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIlNFX0VRXzFfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMzEyNSwgLTAuMDI2MjUsIC0wLjAyLCAtMC4wMiwgLTAuMDEzNzUsIC0wLjAxLCAtMC4wMDc1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDE1LCAtMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzc1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDMxMjUsIC0wLjAyNzUsIC0wLjAxODc1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDQzNzUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzc1LCAtMC4wMzM3NSwgLTAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjA1NSwgLTAuMDUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDQzNzUsIC0wLjA0LCAtMC4wMzc1IiwgXAotICAgICAgICAgICItMC4wNjUsIC0wLjA2LCAtMC4wNTM3NSwgLTAuMDUzNzUsIC0wLjA0NzUsIC0wLjA0Mzc1LCAtMC4wNDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDY3NSwgLTAuMDYyNSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA1NjI1LCAtMC4wNTI1LCAtMC4wNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAxMjUsIC0wLjAwNzUsIDAuMDA1LCAwLjAwNSwgMC4wMTEyNSwgMC4wMjEyNSwgMC4wMjM3NSIsIFwKLSAgICAgICAgICAiLTAuMDE3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAsIDAuMDA2MjUsIDAuMDEsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAsIDAuMDAzNzUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAtMC4wMDI1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDMxMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMTI1LCAtMC4wMDI1LCAwIiwgXAotICAgICAgICAgICItMC4wNCwgLTAuMDM1LCAtMC4wMjg3NSwgLTAuMDIyNSwgLTAuMDE2MjUsIC0wLjAxMjUsIC0wLjAxIiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDI1LCAtMC4wMTUsIC0wLjAxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlNFJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIlNFX0VRXzFfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjI1LCAwLjA1MTI1LCAwLjA0NSwgMC4wMzg3NSwgMC4wMzg3NSwgMC4wMzUsIDAuMDI2MjUiLCBcCi0gICAgICAgICAgIjAuMDY3NSwgMC4wNTYyNSwgMC4wNSwgMC4wNDM3NSwgMC4wNDM3NSwgMC4wNCwgMC4wMzc1IiwgXAotICAgICAgICAgICIwLjA3Mzc1LCAwLjA2ODc1LCAwLjA1NjI1LCAwLjA1NjI1LCAwLjA1LCAwLjA0NjI1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjA4LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1MjUsIDAuMDUiLCBcCi0gICAgICAgICAgIjAuMDg2MjUsIDAuMDgxMjUsIDAuMDc1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDU4NzUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIjAuMDk2MjUsIDAuMDkxMjUsIDAuMDc4NzUsIDAuMDc4NzUsIDAuMDcyNSwgMC4wNjg3NSwgMC4wNjYyNSIsIFwKLSAgICAgICAgICAiMC4xMDUsIDAuMDkzNzUsIDAuMDg3NSwgMC4wODEyNSwgMC4wODEyNSwgMC4wNzc1LCAwLjA3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2MjUsIDAuMDUxMjUsIDAuMDQ1LCAwLjAzODc1LCAwLjAzMjUsIDAuMDIyNSwgMC4wMiIsIFwKLSAgICAgICAgICAiMC4wNjc1LCAwLjA1NjI1LCAwLjA1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDI3NSwgMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMDczNzUsIDAuMDY4NzUsIDAuMDU2MjUsIDAuMDUsIDAuMDQzNzUsIDAuMDQsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMDgsIDAuMDc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDUsIDAuMDQ2MjUsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiMC4wODYyNSwgMC4wODEyNSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA0NjI1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjA5NjI1LCAwLjA4NSwgMC4wNzg3NSwgMC4wNzI1LCAwLjA2NjI1LCAwLjA1NjI1LCAwLjA1Mzc1IiwgXAotICAgICAgICAgICIwLjA5ODc1LCAwLjA5Mzc1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjUsIDAuMDU2MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFNOKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE2MDAyMjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE1MDA0OTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE2MDAyMjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA1OTMsIDAuMDAwNTkzLCAwLjAwMDU5MiwgMC4wMDA1OTIsIDAuMDAwNTkyLCAwLjAwMDU5MiwgMC4wMDA1OTIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA2MTcsIDAuMDAwNjAxLCAwLjAwMDU5NywgMC4wMDA1OTUsIDAuMDAwNTk1LCAwLjAwMDU5NCwgMC4wMDA1OTQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiU04iOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFEJiFTRSYhU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1NFX0VRXzBfQU5fU0lfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjA5NjMzLCAwLjEwNDI3NCwgMC4xMTM5ODYsIDAuMTIyMjIxLCAwLjEyOTAxOCwgMC4xMzc4NTgsIDAuMTQ0MTMxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogcmVjb3ZlcnlfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRCYhU0UmIVNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9TRV9FUV8wX0FOX1NJX0VRXzAgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQocmVjb3ZlcnlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2MjUsIC0wLjAwNSwgLTAuMDExMjUsIC0wLjAxNzUsIC0wLjAyMzc1LCAtMC4wMzM3NSwgLTAuMDQyNSIsIFwKLSAgICAgICAgICAiMC4wMTEyNSwgMC4wMDYyNSwgLTAuMDA2MjUsIC0wLjAxMjUsIC0wLjAxODc1LCAtMC4wMjg3NSwgLTAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMDE3NSwgMC4wMTI1LCAwLCAtMC4wMDYyNSwgLTAuMDEyNSwgLTAuMDIyNSwgLTAuMDI1IiwgXAotICAgICAgICAgICIwLjAzLCAwLjAxODc1LCAwLjAwNjI1LCAwLCAtMC4wMDYyNSwgLTAuMDE2MjUsIC0wLjAxODc1IiwgXAotICAgICAgICAgICIwLjAzNjI1LCAwLjAyNSwgMC4wMTg3NSwgMC4wMDYyNSwgMCwgLTAuMDAzNzUsIC0wLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMDQ2MjUsIDAuMDM1LCAwLjAyODc1LCAwLjAyMjUsIDAuMDEsIDAuMDA2MjUsIC0wLjAwMjUiLCBcCi0gICAgICAgICAgIjAuMDU1LCAwLjA1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDI1LCAwLjAxNSwgMC4wMDYyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJlbW92YWxfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRCYhU0UmIVNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9TRV9FUV8wX0FOX1NJX0VRXzAgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQocmVtb3ZhbF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTg3NSwgMC4wMywgMC4wMzYyNSwgMC4wNDg3NSwgMC4wNDg3NSwgMC4wNTg3NSwgMC4wNjc1IiwgXAotICAgICAgICAgICIwLjAxMzc1LCAwLjAyNSwgMC4wMzEyNSwgMC4wMzc1LCAwLjA0Mzc1LCAwLjA1Mzc1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICIwLjAwNzUsIDAuMDE4NzUsIDAuMDI1LCAwLjAzMTI1LCAwLjAzNzUsIDAuMDQ3NSwgMC4wNSIsIFwKLSAgICAgICAgICAiMC4wMDEyNSwgMC4wMTI1LCAwLjAxODc1LCAwLjAyNSwgMC4wMzEyNSwgMC4wNDEyNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDA1LCAwLjAwNjI1LCAwLjAxMjUsIDAuMDE4NzUsIDAuMDI1LCAwLjAzNSwgMC4wMzc1IiwgXAotICAgICAgICAgICItMC4wMDg3NSwgLTAuMDAzNzUsIDAuMDA4NzUsIDAuMDE1LCAwLjAyMTI1LCAwLjAyNSwgMC4wMzM3NSIsIFwKLSAgICAgICAgICAiLTAuMDE3NSwgLTAuMDA2MjUsIDAsIDAuMDA2MjUsIDAuMDEyNSwgMC4wMjI1LCAwLjAyNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogU0RGRlgyICoKLSAqIC0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoU0RGRlgyKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDEuMjc1MDE7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgZmYgKE4zMCxRQklOVCkgewotICAgIG5leHRfc3RhdGUgOiAiKChTRSBTSSkgKyAoIVNFIEQpKSI7Ci0gICAgY2xvY2tlZF9vbiA6ICJDSyI7Ci0gIH0KLSAgcGluKENLKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2NDk1OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDY0OTQ2MTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2NDk1OwotICAgIGNsb2NrIDogdHJ1ZTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDM3NDYsIDAuMDAzNzM4LCAwLjAwMzgxOSwgMC4wMDM5MTUsIDAuMDA0MDM3LCAwLjAwNDI2OCwgMC4wMDQ0NiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNzQ2NCwgMC4wMDc0NjQsIDAuMDA3NTQ4LCAwLjAwNzY3NywgMC4wMDc4MzEsIDAuMDA4MDIxLCAwLjAwODM3MSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQmIVNFJiFTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fU0VfRVFfMF9BTl9TSV9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMTA3NTQ1LCAwLjExNTcwMSwgMC4xMjQ1NjIsIDAuMTMxMTcsIDAuMTM2NTIyLCAwLjE0Mzc2OCwgMC4xNDkxODQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjA2MDU4MSwgMC4wNjg2MzEsIDAuMDc3MzEsIDAuMDgzNjY0LCAwLjA4ODkwNywgMC4wOTU3MjQsIDAuMTAwNjg5Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihEKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2ODQ2MDg7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjgzNTg1OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDY4NDYwODsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDMyNTQsIDAuMDAzMjMyLCAwLjAwMzI2MSwgMC4wMDMyOTcsIDAuMDAzMzc2LCAwLjAwMzQ5MSwgMC4wMDM2MjEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDUzMTgsIDAuMDA1MzAzLCAwLjAwNTMyNSwgMC4wMDUzNzEsIDAuMDA1NDM2LCAwLjAwNTU0OCwgMC4wMDU2NjQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIVNFIjsKLSAgICAgIHNkZl9jb25kIDogIlNFID09IDEnYjAiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAzMTI1LCAtMC4wMjYyNSwgLTAuMDIsIC0wLjAyLCAtMC4wMiwgLTAuMDE2MjUsIC0wLjAxMzc1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDMxMjUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAyNSwgLTAuMDIxMjUsIC0wLjAxODc1IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzc1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDMxMjUsIC0wLjAyNzUsIC0wLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzM3NSwgLTAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjA1NSwgLTAuMDUsIC0wLjA1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjA0LCAtMC4wMzc1IiwgXAotICAgICAgICAgICItMC4wNjUsIC0wLjA2LCAtMC4wNiwgLTAuMDUzNzUsIC0wLjA1Mzc1LCAtMC4wNSwgLTAuMDQ3NSIsIFwKLSAgICAgICAgICAiLTAuMDczNzUsIC0wLjA2ODc1LCAtMC4wNjI1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDUyNSwgLTAuMDUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMTI1LCAtMC4wMDEyNSwgMC4wMDUsIDAuMDExMjUsIDAuMDExMjUsIDAuMDIxMjUsIDAuMDIzNzUiLCBcCi0gICAgICAgICAgIi0wLjAxNzUsIC0wLjAwNjI1LCAwLCAwLCAwLjAwNjI1LCAwLjAxLCAwLjAxODc1IiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDE4NzUsIC0wLjAwNjI1LCAtMC4wMDYyNSwgMCwgMC4wMDM3NSwgMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAxMjUsIC0wLjAwNjI1LCAtMC4wMDI1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDEyNSwgLTAuMDAyNSwgMCIsIFwKLSAgICAgICAgICAiLTAuMDQsIC0wLjAyODc1LCAtMC4wMjI1LCAtMC4wMjI1LCAtMC4wMTYyNSwgLTAuMDEyNSwgLTAuMDAzNzUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTUsIC0wLjAxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJTRSA9PSAxJ2IwIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTYyNSwgMC4wNDUsIDAuMDM4NzUsIDAuMDM4NzUsIDAuMDMyNSwgMC4wMjg3NSwgMC4wMjYyNSIsIFwKLSAgICAgICAgICAiMC4wNjEyNSwgMC4wNSwgMC4wNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjA0LCAwLjAzMTI1IiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNSwgMC4wNSwgMC4wNDYyNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4wNzM3NSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1NjI1LCAwLjA1MjUsIDAuMDUiLCBcCi0gICAgICAgICAgIjAuMDgsIDAuMDc1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDYyNSwgMC4wNTg3NSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiMC4wOSwgMC4wODUsIDAuMDc4NzUsIDAuMDcyNSwgMC4wNzI1LCAwLjA2ODc1LCAwLjA2NjI1IiwgXAotICAgICAgICAgICIwLjA5ODc1LCAwLjA4NzUsIDAuMDgxMjUsIDAuMDgxMjUsIDAuMDc1LCAwLjA3MTI1LCAwLjA2ODc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQzNzUsIDAuMDMyNSwgMC4wMjYyNSwgMC4wMiwgMC4wMTM3NSwgMC4wMDM3NSwgMC4wMDEyNSIsIFwKLSAgICAgICAgICAiMC4wNDg3NSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMTg3NSwgMC4wMTUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMDU1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDI1LCAwLjAyMTI1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMDYxMjUsIDAuMDUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMjc1LCAwLjAxODc1IiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDU2MjUsIDAuMDUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzM3NSwgMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMDcxMjUsIDAuMDY2MjUsIDAuMDYsIDAuMDUzNzUsIDAuMDQ3NSwgMC4wMzc1LCAwLjAzNSIsIFwKLSAgICAgICAgICAiMC4wOCwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1LCAwLjA0NjI1LCAwLjAzNzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFEpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC42OTA4Nzk7Ci0gICAgZnVuY3Rpb24gOiAiTjMwIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBub25fdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJpc2luZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODI2NiwgMC4xNTk4MjUsIDAuMjIxMzk3LCAwLjI5ODIxMiwgMC4zNzQ2NDksIDAuNDUxMjMxLCAwLjUyNzY5MiIsIFwKLSAgICAgICAgICAiMC4wOTA3MTgsIDAuMTY3ODc3LCAwLjIyOTQxNywgMC4zMDYxODQsIDAuMzgyNjczLCAwLjQ1OTAxMywgMC41MzU4MzYiLCBcCi0gICAgICAgICAgIjAuMDk5MzAxLCAwLjE3NjQxOCwgMC4yMzgwNzUsIDAuMzE0MzQsIDAuMzkxMDU3LCAwLjQ2NzYyNiwgMC41NDQ0MzciLCBcCi0gICAgICAgICAgIjAuMTA1OTg0LCAwLjE4MzE2OSwgMC4yNDQ3NjksIDAuMzIxNTg0LCAwLjM5Nzk5LCAwLjQ3NDU2LCAwLjU1MTEzMyIsIFwKLSAgICAgICAgICAiMC4xMTEyMzksIDAuMTg4MzczLCAwLjI0OTk0OSwgMC4zMjYzMTEsIDAuNDAzMTY4LCAwLjQ3OTg4LCAwLjU1NjQxNSIsIFwKLSAgICAgICAgICAiMC4xMTg0MDksIDAuMTk1NjgyLCAwLjI1NzIzNiwgMC4zMzM4NjcsIDAuNDEwMzk1LCAwLjQ4Njk0OSwgMC41NjM0OTciLCBcCi0gICAgICAgICAgIjAuMTIzNjYyLCAwLjIwMDg2LCAwLjI2MjA1NiwgMC4zMzg3NDUsIDAuNDE1NjE3LCAwLjQ5MTk1MiwgMC41NjkwMjgiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQwOTYyLCAwLjE5OTEwMSwgMC4zMjgzMTEsIDAuNDg5MDYxLCAwLjY1MTUwMywgMC44MTMyNzksIDAuOTczNjY0IiwgXAotICAgICAgICAgICIwLjA0MDg4OCwgMC4xOTkwOTcsIDAuMzI4Mjk2LCAwLjQ4ODk4NywgMC42NTE0NiwgMC44MTE5MjEsIDAuOTc1MTA5IiwgXAotICAgICAgICAgICIwLjA0MDk0NiwgMC4xOTkwOTEsIDAuMzI3NjYyLCAwLjQ4OTE5MiwgMC42NTA2NSwgMC44MTI0MzcsIDAuOTc1MTQ4IiwgXAotICAgICAgICAgICIwLjA0MDk4MiwgMC4xOTkxMDQsIDAuMzI3NjUsIDAuNDg5MDI3LCAwLjY1MTQ3LCAwLjgxMzI1MiwgMC45NzUwNzkiLCBcCi0gICAgICAgICAgIjAuMDQwOTM2LCAwLjE5OTEwNSwgMC4zMjgyOTUsIDAuNDg5MjU1LCAwLjY1MTQ0LCAwLjgxMzI1MiwgMC45NzUxMTciLCBcCi0gICAgICAgICAgIjAuMDQwOTA5LCAwLjE5OTA5OSwgMC4zMjc2NywgMC40ODkwMDksIDAuNjUxMzcyLCAwLjgxMzIwMiwgMC45NzUwNDYiLCBcCi0gICAgICAgICAgIjAuMDQwOTY0LCAwLjE5OTA5LCAwLjMyNzg4NywgMC40ODkyNDYsIDAuNjUxMzM5LCAwLjgxMjI4NiwgMC45NzM2NTEiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDkyNzExLCAwLjE2OTQ4NiwgMC4yMzAyMjYsIDAuMzA2NTM2LCAwLjM4MjQyOCwgMC40NTg0MTcsIDAuNTM0MyIsIFwKLSAgICAgICAgICAiMC4xMDA4NywgMC4xNzc2NjIsIDAuMjM4Mzc4LCAwLjMxNDczNiwgMC4zOTA2MDEsIDAuNDY2NTY1LCAwLjU0MjQ1MiIsIFwKLSAgICAgICAgICAiMC4xMDk3MzUsIDAuMTg2NjgyLCAwLjI0NzMxNiwgMC4zMjM3NzEsIDAuMzk5NjIxLCAwLjQ3NTU3OCwgMC41NTEzNDYiLCBcCi0gICAgICAgICAgIjAuMTE2MzM2LCAwLjE5MzQwMSwgMC4yNTQwMzYsIDAuMzMwMzQ4LCAwLjQwNjE2NywgMC40ODE5ODgsIDAuNTU3OTM5IiwgXAotICAgICAgICAgICIwLjEyMTY5MiwgMC4xOTg0NiwgMC4yNTkxODgsIDAuMzM1NSwgMC40MTEzOTEsIDAuNDg3Mzg2LCAwLjU2MzI2NSIsIFwKLSAgICAgICAgICAiMC4xMjg5NTIsIDAuMjA1NzUzLCAwLjI2Njc3MywgMC4zNDI3NzUsIDAuNDE4NjMxLCAwLjQ5NDYwOCwgMC41NzA1NTciLCBcCi0gICAgICAgICAgIjAuMTM0MzY0LCAwLjIxMTE1NiwgMC4yNzIxNDQsIDAuMzQ4MjAxLCAwLjQyNDAxMSwgMC41MDAxOTEsIDAuNTc2MjM4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0MDAxLCAwLjE5NDY2NywgMC4zMjA2MzQsIDAuNDc4MTgyLCAwLjYzNjI2NSwgMC43OTQzMDgsIDAuOTUyMjY1IiwgXAotICAgICAgICAgICIwLjA0MDExNSwgMC4xOTUwOTcsIDAuMzIwNjY3LCAwLjQ3ODE4MSwgMC42MzYyNjUsIDAuNzk0MzA2LCAwLjk1MjI4NCIsIFwKLSAgICAgICAgICAiMC4wMzk5NzQsIDAuMTk1MTA2LCAwLjMyMDY1LCAwLjQ3ODAxOSwgMC42MzYyNzMsIDAuNzk0MjgzLCAwLjk1MjI2NCIsIFwKLSAgICAgICAgICAiMC4wNDAxMTgsIDAuMTk1MTYsIDAuMzE5ODkyLCAwLjQ3ODE4MywgMC42MzYzMSwgMC43OTQyOTMsIDAuOTUyMjg2IiwgXAotICAgICAgICAgICIwLjA0MDExNCwgMC4xOTQ2NjMsIDAuMzIwNjU2LCAwLjQ3ODE4LCAwLjYzNjI2MSwgMC43OTQzMDcsIDAuOTUyMjY1IiwgXAotICAgICAgICAgICIwLjA0MDI4NSwgMC4xOTUxMzUsIDAuMzIwNDYzLCAwLjQ3ODE1NywgMC42MzYxNTYsIDAuNzk0MTksIDAuOTUyMTYxIiwgXAotICAgICAgICAgICIwLjAzOTk1OCwgMC4xOTQ4NjUsIDAuMzIwMzIxLCAwLjQ3ODE2MiwgMC42MzYxNywgMC43OTQyMTEsIDAuOTUyMjQ0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjM1NiwgMC4wMDYzNzEsIDAuMDA2MzYzLCAwLjAwNjM1OCwgMC4wMDYzNTUsIDAuMDA2MzUzLCAwLjAwNjM1MSIsIFwKLSAgICAgICAgICAiMC4wMDYzNDcsIDAuMDA2MzYzLCAwLjAwNjM1NSwgMC4wMDYzNDksIDAuMDA2MzQ2LCAwLjAwNjM0NSwgMC4wMDYzNDIiLCBcCi0gICAgICAgICAgIjAuMDA2Mzk1LCAwLjAwNjQxMSwgMC4wMDY0MDMsIDAuMDA2Mzk3LCAwLjAwNjM5MywgMC4wMDYzOSwgMC4wMDYzODgiLCBcCi0gICAgICAgICAgIjAuMDA2NDQzLCAwLjAwNjQ2MiwgMC4wMDY0NTQsIDAuMDA2NDQ3LCAwLjAwNjQ0NSwgMC4wMDY0NDEsIDAuMDA2NDQxIiwgXAotICAgICAgICAgICIwLjAwNjUxMywgMC4wMDY1MzMsIDAuMDA2NTI1LCAwLjAwNjUxOSwgMC4wMDY1MTQsIDAuMDA2NTExLCAwLjAwNjUwOSIsIFwKLSAgICAgICAgICAiMC4wMDY2MjMsIDAuMDA2NjQxLCAwLjAwNjYzNCwgMC4wMDY2MjcsIDAuMDA2NjIyLCAwLjAwNjYxOSwgMC4wMDY2MTciLCBcCi0gICAgICAgICAgIjAuMDA2NzA4LCAwLjAwNjcyOCwgMC4wMDY3MiwgMC4wMDY3MTIsIDAuMDA2NzA4LCAwLjAwNjcwMiwgMC4wMDY3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2Nzg0LCAwLjAwNjgzMiwgMC4wMDY4MzgsIDAuMDA2ODQzLCAwLjAwNjg0MywgMC4wMDY4NDUsIDAuMDA2ODQ2IiwgXAotICAgICAgICAgICIwLjAwNjc4NSwgMC4wMDY4MzMsIDAuMDA2ODM4LCAwLjAwNjg0MSwgMC4wMDY4NDQsIDAuMDA2ODQ1LCAwLjAwNjg0NCIsIFwKLSAgICAgICAgICAiMC4wMDY4MywgMC4wMDY4NzcsIDAuMDA2ODgyLCAwLjAwNjg4NSwgMC4wMDY4ODYsIDAuMDA2ODg3LCAwLjAwNjg4NyIsIFwKLSAgICAgICAgICAiMC4wMDY4OTYsIDAuMDA2OTQzLCAwLjAwNjk0OCwgMC4wMDY5NTEsIDAuMDA2OTUzLCAwLjAwNjk1MywgMC4wMDY5NTQiLCBcCi0gICAgICAgICAgIjAuMDA2OTY5LCAwLjAwNzAxNywgMC4wMDcwMjIsIDAuMDA3MDI3LCAwLjAwNzAyNiwgMC4wMDcwMjksIDAuMDA3MDI3IiwgXAotICAgICAgICAgICIwLjAwNzA5NCwgMC4wMDcxNCwgMC4wMDcxNDYsIDAuMDA3MTQ4LCAwLjAwNzE0OSwgMC4wMDcxNTEsIDAuMDA3MTUiLCBcCi0gICAgICAgICAgIjAuMDA3MTg0LCAwLjAwNzIzMSwgMC4wMDcyMzUsIDAuMDA3MjM3LCAwLjAwNzIzOCwgMC4wMDcyMzksIDAuMDA3MjM5Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihRTikgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjY4NjIzNjsKLSAgICBmdW5jdGlvbiA6ICJRQklOVCI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3NlbnNlIDogbm9uX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiByaXNpbmdfZWRnZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTA3NTQ5LCAwLjE4NDY3MywgMC4yNDY0NjUsIDAuMzIzNzE5LCAwLjQwMDkzOCwgMC40NzgxOTMsIDAuNTU1NDA5IiwgXAotICAgICAgICAgICIwLjExNTcwNiwgMC4xOTI5MDUsIDAuMjU0NzAxLCAwLjMzMTk2NiwgMC40MDkxNzYsIDAuNDg2NDAzLCAwLjU2MzY0MiIsIFwKLSAgICAgICAgICAiMC4xMjQ1NjQsIDAuMjAxNzU2LCAwLjI2MzU0OSwgMC4zNDA4MTUsIDAuNDE4MDI3LCAwLjQ5NTMyOSwgMC41NzI1MDMiLCBcCi0gICAgICAgICAgIjAuMTMxMTcsIDAuMjA4MzM3LCAwLjI3MDExOCwgMC4zNDc0MTEsIDAuNDI0NjA2LCAwLjUwMTc5NSwgMC41NzkxMDkiLCBcCi0gICAgICAgICAgIjAuMTM2NTIzLCAwLjIxMzY1MiwgMC4yNzU0NDYsIDAuMzUyNjk0LCAwLjQyOTkxNCwgMC41MDcxNjksIDAuNTg0Mzg1IiwgXAotICAgICAgICAgICIwLjE0Mzc5LCAwLjIyMDg4NywgMC4yODI2OTIsIDAuMzU5OTU3LCAwLjQzNzE2NSwgMC41MTQ0MTMsIDAuNTkxNjU2IiwgXAotICAgICAgICAgICIwLjE0OTE4NCwgMC4yMjYzNjcsIDAuMjg4MTczLCAwLjM2NTQzNywgMC40NDI2NTgsIDAuNTE5OTA3LCAwLjU5NzE4MyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzkzNjksIDAuMjAwMzU3LCAwLjMzMDYzMSwgMC40OTQxNzcsIDAuNjU3MjMxLCAwLjgyMDI3LCAwLjk4MzM1NSIsIFwKLSAgICAgICAgICAiMC4wMzkzOTQsIDAuMjAwNTc4LCAwLjMzMDY0NywgMC40OTQxNjksIDAuNjU3MjI5LCAwLjgyMDMyMSwgMC45ODMzNTkiLCBcCi0gICAgICAgICAgIjAuMDM5Mzk0LCAwLjIwMDU4MywgMC4zMzA2NjEsIDAuNDkzMzY0LCAwLjY1NzIyMSwgMC44MjAzMDIsIDAuOTgzMzIzIiwgXAotICAgICAgICAgICIwLjAzOTM4NSwgMC4yMDA2MDksIDAuMzMwNDI2LCAwLjQ5NDE3MiwgMC42NTcyMzIsIDAuODIwMjk1LCAwLjk4MzM2MiIsIFwKLSAgICAgICAgICAiMC4wMzkzOTIsIDAuMjAwMzU3LCAwLjMzMDY0MywgMC40OTQxNzQsIDAuNjU3MjMxLCAwLjgyMDI3NCwgMC45ODMzNjMiLCBcCi0gICAgICAgICAgIjAuMDM5NDE4LCAwLjIwMDU5OSwgMC4zMzA0NzIsIDAuNDk0MTg0LCAwLjY1NzE4OCwgMC44MjAyNTIsIDAuOTgzMjY0IiwgXAotICAgICAgICAgICIwLjAzOTM3NCwgMC4yMDA0NjYsIDAuMzMxMDQxLCAwLjQ5NDE5MywgMC42NTcxNSwgMC44MjAyMjUsIDAuOTgzMjg2Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5OTQ5NCwgMC4xNzU1MDgsIDAuMjM2MjczLCAwLjMxMjI1OSwgMC4zODgxNSwgMC40NjQwNzgsIDAuNTQwMDA0IiwgXAotICAgICAgICAgICIwLjEwNzU0OCwgMC4xODM1MjcsIDAuMjQ0Mjg3LCAwLjMyMDI2LCAwLjM5NjE2MywgMC40NzIxMjcsIDAuNTQ4MDEyIiwgXAotICAgICAgICAgICIwLjExNjEyNywgMC4xOTIxMjEsIDAuMjUyODkzLCAwLjMyODg0NCwgMC40MDQ3NTQsIDAuNDgwNzA4LCAwLjU1NjYxNiIsIFwKLSAgICAgICAgICAiMC4xMjI4MTgsIDAuMTk4ODMzLCAwLjI1OTYwMiwgMC4zMzU1OTYsIDAuNDExNDc3LCAwLjQ4NzQwMiwgMC41NjMzMjQiLCBcCi0gICAgICAgICAgIjAuMTI4MDY0LCAwLjIwNDA0OCwgMC4yNjQ4MDYsIDAuMzQwNzU2LCAwLjQxNjY2OCwgMC40OTI2MzcsIDAuNTY4NTQ4IiwgXAotICAgICAgICAgICIwLjEzNTIzOSwgMC4yMTEyMjEsIDAuMjcxOTk4LCAwLjM0NzkyOSwgMC40MjM4NDMsIDAuNDk5NzcxLCAwLjU3NTY5OSIsIFwKLSAgICAgICAgICAiMC4xNDA0OTYsIDAuMjE2NDcyLCAwLjI3NzIxOCwgMC4zNTMxNjgsIDAuNDI5MDk4LCAwLjUwNTA0NiwgMC41ODEwNTEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM4NDAyLCAwLjE5NDE3MSwgMC4zMjA0MjksIDAuNDc3NjIsIDAuNjM2MTkyLCAwLjc5NDA0MiwgMC45NTA3OCIsIFwKLSAgICAgICAgICAiMC4wMzgzNzUsIDAuMTk0MTU4LCAwLjMyMDQxMSwgMC40Nzc0OTksIDAuNjM2MTQ0LCAwLjc5Mjg3NSwgMC45NTE4NzciLCBcCi0gICAgICAgICAgIjAuMDM4Mzc4LCAwLjE5NDExNiwgMC4zMTk4OTMsIDAuNDc3NzU5LCAwLjYzNTQ4NCwgMC43OTMzMTksIDAuOTUxOTEyIiwgXAotICAgICAgICAgICIwLjAzODQsIDAuMTk0MTgxLCAwLjMxOTg5NCwgMC40Nzc1NjMsIDAuNjM2MTcsIDAuNzk0MDIsIDAuOTUxODY4IiwgXAotICAgICAgICAgICIwLjAzODM5MywgMC4xOTQxMTIsIDAuMzIwNDEsIDAuNDc3ODcsIDAuNjM2MTE3LCAwLjc5NDA0NywgMC45NTE4OTgiLCBcCi0gICAgICAgICAgIjAuMDM4NDA0LCAwLjE5NDE5MywgMC4zMTk4OTQsIDAuNDc3NTIsIDAuNjM2MDQ0LCAwLjc5MzkxMywgMC45NTE3ODMiLCBcCi0gICAgICAgICAgIjAuMDM4Mzc2LCAwLjE5NDE2NiwgMC4zMjAxMTUsIDAuNDc3ODI4LCAwLjYzNjAxOCwgMC43OTMxMTcsIDAuOTUwNTI4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjc4NCwgMC4wMDY4MzIsIDAuMDA2ODM4LCAwLjAwNjg0MywgMC4wMDY4NDMsIDAuMDA2ODQ1LCAwLjAwNjg0NiIsIFwKLSAgICAgICAgICAiMC4wMDY3ODUsIDAuMDA2ODMzLCAwLjAwNjgzOCwgMC4wMDY4NDEsIDAuMDA2ODQ0LCAwLjAwNjg0NSwgMC4wMDY4NDQiLCBcCi0gICAgICAgICAgIjAuMDA2ODMsIDAuMDA2ODc3LCAwLjAwNjg4MiwgMC4wMDY4ODUsIDAuMDA2ODg2LCAwLjAwNjg4NywgMC4wMDY4ODciLCBcCi0gICAgICAgICAgIjAuMDA2ODk2LCAwLjAwNjk0MywgMC4wMDY5NDgsIDAuMDA2OTUxLCAwLjAwNjk1MywgMC4wMDY5NTMsIDAuMDA2OTU0IiwgXAotICAgICAgICAgICIwLjAwNjk2OSwgMC4wMDcwMTcsIDAuMDA3MDIyLCAwLjAwNzAyNywgMC4wMDcwMjYsIDAuMDA3MDI5LCAwLjAwNzAyNyIsIFwKLSAgICAgICAgICAiMC4wMDcwOTQsIDAuMDA3MTQsIDAuMDA3MTQ2LCAwLjAwNzE0OCwgMC4wMDcxNDksIDAuMDA3MTUxLCAwLjAwNzE1IiwgXAotICAgICAgICAgICIwLjAwNzE4NCwgMC4wMDcyMzEsIDAuMDA3MjM1LCAwLjAwNzIzNywgMC4wMDcyMzgsIDAuMDA3MjM5LCAwLjAwNzIzOSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjM1NiwgMC4wMDYzNzEsIDAuMDA2MzYzLCAwLjAwNjM1OCwgMC4wMDYzNTUsIDAuMDA2MzUzLCAwLjAwNjM1MSIsIFwKLSAgICAgICAgICAiMC4wMDYzNDcsIDAuMDA2MzYzLCAwLjAwNjM1NSwgMC4wMDYzNDksIDAuMDA2MzQ2LCAwLjAwNjM0NSwgMC4wMDYzNDIiLCBcCi0gICAgICAgICAgIjAuMDA2Mzk1LCAwLjAwNjQxMSwgMC4wMDY0MDMsIDAuMDA2Mzk3LCAwLjAwNjM5MywgMC4wMDYzOSwgMC4wMDYzODgiLCBcCi0gICAgICAgICAgIjAuMDA2NDQzLCAwLjAwNjQ2MiwgMC4wMDY0NTQsIDAuMDA2NDQ3LCAwLjAwNjQ0NSwgMC4wMDY0NDEsIDAuMDA2NDQxIiwgXAotICAgICAgICAgICIwLjAwNjUxMywgMC4wMDY1MzMsIDAuMDA2NTI1LCAwLjAwNjUxOSwgMC4wMDY1MTQsIDAuMDA2NTExLCAwLjAwNjUwOSIsIFwKLSAgICAgICAgICAiMC4wMDY2MjMsIDAuMDA2NjQxLCAwLjAwNjYzNCwgMC4wMDY2MjcsIDAuMDA2NjIyLCAwLjAwNjYxOSwgMC4wMDY2MTciLCBcCi0gICAgICAgICAgIjAuMDA2NzA4LCAwLjAwNjcyOCwgMC4wMDY3MiwgMC4wMDY3MTIsIDAuMDA2NzA4LCAwLjAwNjcwMiwgMC4wMDY3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTRSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxMjUwMjU7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxMjUwMjU7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxMjUwMDE7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA1MDkzLCAwLjAwNTEwMSwgMC4wMDUxODIsIDAuMDA1Mjk2LCAwLjAwNTQ1NywgMC4wMDU2NzksIDAuMDA1ODg1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA3MTY5LCAwLjAwNzE5MywgMC4wMDcyOTYsIDAuMDA3NDczLCAwLjAwNzY5OCwgMC4wMDgwNzYsIDAuMDA4NDAyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEJlNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9TSV9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAyNSwgLTAuMDIsIC0wLjAyLCAtMC4wMTM3NSwgLTAuMDEzNzUsIC0wLjAxLCAtMC4wMDc1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDE1LCAtMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzc1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDMxMjUsIC0wLjAyNzUsIC0wLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzM3NSwgLTAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjA2MTI1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDQsIC0wLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjA3MTI1LCAtMC4wNjYyNSwgLTAuMDYsIC0wLjA2LCAtMC4wNTM3NSwgLTAuMDUsIC0wLjA0NzUiLCBcCi0gICAgICAgICAgIi0wLjA3Mzc1LCAtMC4wNjg3NSwgLTAuMDY4NzUsIC0wLjA2MjUsIC0wLjA2MjUsIC0wLjA1ODc1LCAtMC4wNTYyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAwNjI1LCAtMC4wMDEyNSwgMC4wMDUsIDAuMDExMjUsIDAuMDE3NSwgMC4wMjEyNSwgMC4wMjM3NSIsIFwKLSAgICAgICAgICAiLTAuMDExMjUsIC0wLjAwNjI1LCAwLCAwLjAwNjI1LCAwLjAxMjUsIDAuMDE2MjUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgLTAuMDA2MjUsIDAsIDAuMDAzNzUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAtMC4wMDI1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwODc1LCAwIiwgXAotICAgICAgICAgICItMC4wNCwgLTAuMDM1LCAtMC4wMjg3NSwgLTAuMDIyNSwgLTAuMDIyNSwgLTAuMDEyNSwgLTAuMDEiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMjEyNSwgLTAuMDE4NzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiRCYhU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8xX0FOX1NJX0VRXzAgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDE4NzUsIC0wLjAxMzc1LCAtMC4wMDc1LCAtMC4wMDEyNSwgMC4wMDUsIDAuMDA4NzUsIDAuMDE3NSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMCwgMC4wMDM3NSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAxMjUsIC0wLjAwMjUsIDAiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA4NzUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wNDYyNSwgLTAuMDQxMjUsIC0wLjAzNSwgLTAuMDI4NzUsIC0wLjAyMjUsIC0wLjAxODc1LCAtMC4wMTYyNSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMjEyNSwgLTAuMDE4NzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wNDM3NSwgLTAuMDM4NzUsIC0wLjAzMjUsIC0wLjAyNjI1LCAtMC4wMjYyNSwgLTAuMDIyNSwgLTAuMDIiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDM3NSwgLTAuMDM3NSwgLTAuMDMzNzUsIC0wLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDQzNzUsIC0wLjA0Mzc1LCAtMC4wNCwgLTAuMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDYxMjUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wNCwgLTAuMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDYxMjUsIC0wLjA1NjI1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjA1LCAtMC4wNDYyNSwgLTAuMDQzNzUiLCBcCi0gICAgICAgICAgIi0wLjA2NSwgLTAuMDYsIC0wLjA2LCAtMC4wNTM3NSwgLTAuMDUzNzUsIC0wLjA1LCAtMC4wNDc1IiwgXAotICAgICAgICAgICItMC4wNzM3NSwgLTAuMDY4NzUsIC0wLjA2MjUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNTI1LCAtMC4wNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUQmU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1NJX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDUsIDAuMDQ1LCAwLjAzODc1LCAwLjAzMjUsIDAuMDMyNSwgMC4wMjg3NSwgMC4wMjYyNSIsIFwKLSAgICAgICAgICAiMC4wNTUsIDAuMDUsIDAuMDQzNzUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzM3NSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4wNjc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDUsIDAuMDUsIDAuMDQ2MjUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMDczNzUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNTYyNSwgMC4wNTI1LCAwLjA1IiwgXAotICAgICAgICAgICIwLjA4NjI1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1ODc1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICIwLjA5NjI1LCAwLjA4NSwgMC4wNzg3NSwgMC4wNzg3NSwgMC4wNzI1LCAwLjA2ODc1LCAwLjA2NjI1IiwgXAotICAgICAgICAgICIwLjEwNSwgMC4wOTM3NSwgMC4wODc1LCAwLjA4NzUsIDAuMDgxMjUsIDAuMDc3NSwgMC4wNzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzc1LCAwLjAyNjI1LCAwLjAyLCAwLjAxMzc1LCAwLjAwNzUsIDAuMDAzNzUsIC0wLjAwNSIsIFwKLSAgICAgICAgICAiMC4wNDI1LCAwLjAzNzUsIDAuMDI1LCAwLjAxODc1LCAwLjAxODc1LCAwLjAwODc1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICIwLjA1NSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMjEyNSwgMC4wMTI1IiwgXAotICAgICAgICAgICIwLjA2MTI1LCAwLjA1NjI1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDI3NSwgMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMDY3NSwgMC4wNjI1LCAwLjA1LCAwLjA0Mzc1LCAwLjA0Mzc1LCAwLjAzMzc1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICIwLjA3NzUsIDAuMDcyNSwgMC4wNiwgMC4wNTM3NSwgMC4wNTM3NSwgMC4wNDM3NSwgMC4wNDEyNSIsIFwKLSAgICAgICAgICAiMC4wODYyNSwgMC4wODEyNSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1MjUsIDAuMDUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIkQmIVNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMV9BTl9TSV9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1LCAwLjAzODc1LCAwLjAzMjUsIDAuMDI2MjUsIDAuMDIsIDAuMDE2MjUsIDAuMDA3NSIsIFwKLSAgICAgICAgICAiMC4wNTUsIDAuMDUsIDAuMDM3NSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyMTI1LCAwLjAxODc1IiwgXAotICAgICAgICAgICIwLjA2MTI1LCAwLjA1NjI1LCAwLjA1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDI3NSwgMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMDY3NSwgMC4wNjI1LCAwLjA1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDMzNzUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMDczNzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNSwgMC4wNDM3NSwgMC4wNCwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4wNzc1LCAwLjA2NjI1LCAwLjA2LCAwLjA1Mzc1LCAwLjA0NzUsIDAuMDQzNzUsIDAuMDM1IiwgXAotICAgICAgICAgICIwLjA4LCAwLjA3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1NjI1LCAwLjA0NjI1LCAwLjA0Mzc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDYyNSwgMC4wNTc1LCAwLjA1MTI1LCAwLjA0NSwgMC4wNDUsIDAuMDQxMjUsIDAuMDM4NzUiLCBcCi0gICAgICAgICAgIjAuMDczNzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNTYyNSwgMC4wNSwgMC4wNDYyNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4wOCwgMC4wNjg3NSwgMC4wNjI1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDUyNSwgMC4wNSIsIFwKLSAgICAgICAgICAiMC4wOCwgMC4wNzUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNjI1LCAwLjA1ODc1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICIwLjA4NjI1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjg3NSwgMC4wNjUsIDAuMDYyNSIsIFwKLSAgICAgICAgICAiMC4wOSwgMC4wODUsIDAuMDc4NzUsIDAuMDcyNSwgMC4wNzI1LCAwLjA2ODc1LCAwLjA2NjI1IiwgXAotICAgICAgICAgICIwLjA5MjUsIDAuMDg3NSwgMC4wODEyNSwgMC4wNzUsIDAuMDc1LCAwLjA3MTI1LCAwLjA2ODc1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTSSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjM2OTY0OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYzNTc2MTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2MzY5NjQ7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzMDcsIDAuMDAzMDQ2LCAwLjAwMzA2OSwgMC4wMDMxMTksIDAuMDAzMTc4LCAwLjAwMzI5LCAwLjAwMzQzNCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNTYwNywgMC4wMDU1OSwgMC4wMDU2MDgsIDAuMDA1NjUsIDAuMDA1NzIxLCAwLjAwNTgyNiwgMC4wMDU5NDQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiU0UiOwotICAgICAgc2RmX2NvbmQgOiAiU0UgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDMxMjUsIC0wLjAyNjI1LCAtMC4wMjYyNSwgLTAuMDIsIC0wLjAyLCAtMC4wMTYyNSwgLTAuMDEzNzUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMzEyNSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDI1LCAtMC4wMjEyNSwgLTAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAyNzUsIC0wLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzM3NSwgLTAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjA2MTI1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDQsIC0wLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjA2NSwgLTAuMDYsIC0wLjA2LCAtMC4wNTM3NSwgLTAuMDUzNzUsIC0wLjA1LCAtMC4wNDc1IiwgXAotICAgICAgICAgICItMC4wNzM3NSwgLTAuMDY4NzUsIC0wLjA2MjUsIC0wLjA2MjUsIC0wLjA2MjUsIC0wLjA1ODc1LCAtMC4wNTYyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAxMjUsIC0wLjAwMTI1LCAwLjAwNSwgMC4wMDUsIDAuMDExMjUsIDAuMDE1LCAwLjAyMzc1IiwgXAotICAgICAgICAgICItMC4wMTc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMCwgMC4wMDYyNSwgMC4wMSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMCwgMC4wMDM3NSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAyNSwgLTAuMDEyNSwgLTAuMDEyNSwgLTAuMDA2MjUsIC0wLjAwMjUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMTI1LCAtMC4wMDI1LCAwIiwgXAotICAgICAgICAgICItMC4wNCwgLTAuMDM1LCAtMC4wMjg3NSwgLTAuMDIyNSwgLTAuMDE2MjUsIC0wLjAxMjUsIC0wLjAxIiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMjUsIC0wLjAxNSwgLTAuMDEyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiU0UiOwotICAgICAgc2RmX2NvbmQgOiAiU0UgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU2MjUsIDAuMDQ1LCAwLjAzODc1LCAwLjAzODc1LCAwLjAzMjUsIDAuMDI4NzUsIDAuMDI2MjUiLCBcCi0gICAgICAgICAgIjAuMDYxMjUsIDAuMDU2MjUsIDAuMDUsIDAuMDQzNzUsIDAuMDQzNzUsIDAuMDQsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiMC4wNjc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDUsIDAuMDUsIDAuMDQ2MjUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMDczNzUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNTYyNSwgMC4wNTI1LCAwLjA1IiwgXAotICAgICAgICAgICIwLjA4LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA2MjUsIDAuMDU4NzUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIjAuMDksIDAuMDg1LCAwLjA3ODc1LCAwLjA3MjUsIDAuMDcyNSwgMC4wNjg3NSwgMC4wNjYyNSIsIFwKLSAgICAgICAgICAiMC4wOTg3NSwgMC4wODc1LCAwLjA4MTI1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNzEyNSwgMC4wNjg3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0Mzc1LCAwLjAzMjUsIDAuMDI2MjUsIDAuMDIsIDAuMDEzNzUsIDAuMDEsIDAuMDAxMjUiLCBcCi0gICAgICAgICAgIjAuMDQ4NzUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMjUsIDAuMDE4NzUsIDAuMDE1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICIwLjA1NSwgMC4wNSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMjEyNSwgMC4wMTI1IiwgXAotICAgICAgICAgICIwLjA2MTI1LCAwLjA1NjI1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDI3NSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4wNjc1LCAwLjA1NjI1LCAwLjA1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDMzNzUsIDAuMDI1IiwgXAotICAgICAgICAgICIwLjA3NzUsIDAuMDY2MjUsIDAuMDYsIDAuMDUzNzUsIDAuMDQ3NSwgMC4wMzc1LCAwLjAzNSIsIFwKLSAgICAgICAgICAiMC4wOCwgMC4wNzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNSwgMC4wNDYyNSwgMC4wNDM3NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogU0RGRlg0ICoKLSAqIC0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoU0RGRlg0KSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDEuNzc0NTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBmZiAoTjMwLFFCSU5UKSB7Ci0gICAgbmV4dF9zdGF0ZSA6ICIoKFNFIFNJKSArICghU0UgRCkpIjsKLSAgICBjbG9ja2VkX29uIDogIkNLIjsKLSAgfQotICBwaW4oQ0spICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY0MzY0MjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2NDM2NDI7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjQzNTkzOwotICAgIGNsb2NrIDogdHJ1ZTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDM4OTEsIDAuMDAzODkxLCAwLjAwMzk1MiwgMC4wMDQwNTYsIDAuMDA0MTcyLCAwLjAwNDM5MiwgMC4wMDQ1OTEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDcxMTYsIDAuMDA3MTIzLCAwLjAwNzIwMSwgMC4wMDczMywgMC4wMDc0NzIsIDAuMDA3NzU5LCAwLjAwODAwOSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQmIVNFJiFTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fU0VfRVFfMF9BTl9TSV9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMTAzMjQ2LCAwLjExMTI4NSwgMC4xMTk5MDYsIDAuMTI2MjM4LCAwLjEzMTQ0NywgMC4xMzg1OTEsIDAuMTQzNzY5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wNTk1MTYsIDAuMDY3NTA0LCAwLjA3NTg5NywgMC4wODIwOTUsIDAuMDg3MTM3LCAwLjA5MzY3LCAwLjA5ODQ3NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjc5NjY1OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDY3ODQ5OTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2Nzk2NjU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzMjY0LCAwLjAwMzI0NSwgMC4wMDMyNjgsIDAuMDAzMzEyLCAwLjAwMzM3NCwgMC4wMDM0ODgsIDAuMDAzNjE1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA1NjI0LCAwLjAwNTYwOCwgMC4wMDU2MjksIDAuMDA1Njc0LCAwLjAwNTczMywgMC4wMDU4NDYsIDAuMDA1OTY2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJTRSA9PSAxJ2IwIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMzEyNSwgLTAuMDI2MjUsIC0wLjAyNjI1LCAtMC4wMiwgLTAuMDIsIC0wLjAxNjI1LCAtMC4wMTM3NSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMjEyNSwgLTAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDM3NSwgLTAuMDM3NSwgLTAuMDMzNzUsIC0wLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDQzNzUsIC0wLjA0Mzc1LCAtMC4wNCwgLTAuMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDYxMjUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDUsIC0wLjA1LCAtMC4wNDYyNSwgLTAuMDQzNzUiLCBcCi0gICAgICAgICAgIi0wLjA2NSwgLTAuMDYsIC0wLjA2LCAtMC4wNiwgLTAuMDUzNzUsIC0wLjA1LCAtMC4wNTM3NSIsIFwKLSAgICAgICAgICAiLTAuMDczNzUsIC0wLjA2ODc1LCAtMC4wNjg3NSwgLTAuMDYyNSwgLTAuMDYyNSwgLTAuMDU4NzUsIC0wLjA1NjI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDEyNSwgLTAuMDA3NSwgLTAuMDAxMjUsIDAuMDA1LCAwLjAxMTI1LCAwLjAxNSwgMC4wMTc1IiwgXAotICAgICAgICAgICItMC4wMTc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMCwgMC4wMDYyNSwgMC4wMSwgMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLCAwLjAwMzc1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIC0wLjAwMjUsIDAiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA4NzUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wNCwgLTAuMDM1LCAtMC4wMjg3NSwgLTAuMDIyNSwgLTAuMDIyNSwgLTAuMDEyNSwgLTAuMDEiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMjEyNSwgLTAuMDE4NzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJTRSA9PSAxJ2IwIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTYyNSwgMC4wNTEyNSwgMC4wNDUsIDAuMDM4NzUsIDAuMDM4NzUsIDAuMDM1LCAwLjAzMjUiLCBcCi0gICAgICAgICAgIjAuMDY3NSwgMC4wNTYyNSwgMC4wNSwgMC4wNSwgMC4wNDM3NSwgMC4wNCwgMC4wMzc1IiwgXAotICAgICAgICAgICIwLjA3Mzc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDU2MjUsIDAuMDUsIDAuMDQ2MjUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMDgsIDAuMDY4NzUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNjI1LCAwLjA1ODc1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICIwLjA4NjI1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjg3NSwgMC4wNjUsIDAuMDYyNSIsIFwKLSAgICAgICAgICAiMC4wOTYyNSwgMC4wODUsIDAuMDc4NzUsIDAuMDc4NzUsIDAuMDcyNSwgMC4wNjg3NSwgMC4wNjYyNSIsIFwKLSAgICAgICAgICAiMC4wOTg3NSwgMC4wOTM3NSwgMC4wODc1LCAwLjA4MTI1LCAwLjA4MTI1LCAwLjA3NzUsIDAuMDc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQzNzUsIDAuMDM4NzUsIDAuMDMyNSwgMC4wMjYyNSwgMC4wMiwgMC4wMSwgMC4wMDc1IiwgXAotICAgICAgICAgICIwLjA0ODc1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDI1LCAwLjAxNSwgMC4wMTI1IiwgXAotICAgICAgICAgICIwLjA2MTI1LCAwLjA1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDI3NSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4wNjc1LCAwLjA1NjI1LCAwLjA1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDMzNzUsIDAuMDI1IiwgXAotICAgICAgICAgICIwLjA3Mzc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDUsIDAuMDQzNzUsIDAuMDQsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMDc3NSwgMC4wNzI1LCAwLjA2LCAwLjA1Mzc1LCAwLjA1Mzc1LCAwLjA0Mzc1LCAwLjA0MTI1IiwgXAotICAgICAgICAgICIwLjA4NjI1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1MjUsIDAuMDQzNzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFEpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMS4zNjY0ODsKLSAgICBmdW5jdGlvbiA6ICJOMzAiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5vbl91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcmlzaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc5MTE0LCAwLjEzNTE0NSwgMC4xOTAxNTUsIDAuMjI5NjExLCAwLjI5MjIyNywgMC4zNDcwMjQsIDAuNDI1NjI3IiwgXAotICAgICAgICAgICIwLjA4NzA3NiwgMC4xNDMxMTQsIDAuMTk4MTE2LCAwLjIzNzQ1NCwgMC4zMDAxNzYsIDAuMzU1MzkxLCAwLjQzMzU3OCIsIFwKLSAgICAgICAgICAiMC4wOTU1OTUsIDAuMTUxNjQxLCAwLjIwNjYzMiwgMC4yNDYxNzMsIDAuMzA4NDY0LCAwLjM2MzM0NywgMC40NDIxNjMiLCBcCi0gICAgICAgICAgIjAuMTAxODQ5LCAwLjE1NzkwMywgMC4yMTI4OTksIDAuMjUyMjc4LCAwLjMxNDc2MSwgMC4zNjk3MjQsIDAuNDQ3OTg2IiwgXAotICAgICAgICAgICIwLjEwNjk0NiwgMC4xNjI5OTUsIDAuMjE3OTkyLCAwLjI1NzEyOCwgMC4zMjAwNTYsIDAuMzc1MjY5LCAwLjQ1MzQ1NSIsIFwKLSAgICAgICAgICAiMC4xMTQwMzYsIDAuMTcwMDg0LCAwLjIyNTEyMywgMC4yNjQ0NjIsIDAuMzI3MDcsIDAuMzgxODAyLCAwLjQ2MDU0MiIsIFwKLSAgICAgICAgICAiMC4xMTkxOTMsIDAuMTc1MTgyLCAwLjIzMDM2OSwgMC4yNjk2MDYsIDAuMzMyNTkyLCAwLjM4NzMxOCwgMC40NjUzMTUiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjU3MDksIDAuMTM3NzgxLCAwLjI1MzM2OCwgMC4zMzYwMDIsIDAuNDY4NDEsIDAuNTgzNDI4LCAwLjc1MDEwNyIsIFwKLSAgICAgICAgICAiMC4wMjU3MTksIDAuMTM3ODE2LCAwLjI1MzM1OSwgMC4zMzYwODIsIDAuNDY3NjM1LCAwLjU4MzQ1OSwgMC43NTAwODkiLCBcCi0gICAgICAgICAgIjAuMDI1NjU1LCAwLjEzODI4LCAwLjI1MzM1NCwgMC4zMzU1NjcsIDAuNDY3OTA4LCAwLjU4MzM5NiwgMC43NDg3OCIsIFwKLSAgICAgICAgICAiMC4wMjU2NSwgMC4xMzgyNzgsIDAuMjUzMzYsIDAuMzM1MjE4LCAwLjQ2NzYzMywgMC41ODM0MzUsIDAuNzQ4OTI0IiwgXAotICAgICAgICAgICIwLjAyNTcwOCwgMC4xMzc4MjksIDAuMjUzMzU4LCAwLjMzNTUxMywgMC40NjgzODksIDAuNTgzMzE0LCAwLjc1MDA2MSIsIFwKLSAgICAgICAgICAiMC4wMjU3MDUsIDAuMTM4MTY4LCAwLjI1MzM4OSwgMC4zMzYwNjksIDAuNDY4MzQ5LCAwLjU4MzQ4OCwgMC43NDk5NzkiLCBcCi0gICAgICAgICAgIjAuMDI1NjM3LCAwLjEzNzk3NCwgMC4yNTMzOTEsIDAuMzM2MDYxLCAwLjQ2ODQwNCwgMC41ODQyMzEsIDAuNzQ4OTg1Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg1MjY5LCAwLjE0MDYzNCwgMC4xOTQ4NjYsIDAuMjMzNTczLCAwLjI5NTAyNywgMC4zNDk2MzQsIDAuNDI2NzgiLCBcCi0gICAgICAgICAgIjAuMDkzMzE4LCAwLjE0ODY4OSwgMC4yMDI3MjQsIDAuMjQxNjI2LCAwLjMwMzAyOCwgMC4zNTc2NzksIDAuNDM0ODUxIiwgXAotICAgICAgICAgICIwLjEwMTkzOCwgMC4xNTcyOTYsIDAuMjExNTE5LCAwLjI1MDIzOSwgMC4zMTIzMjcsIDAuMzY2MzA3LCAwLjQ0MzQ1MiIsIFwKLSAgICAgICAgICAiMC4xMDgyNzMsIDAuMTYzNjUyLCAwLjIxODAzNywgMC4yNTY2MTIsIDAuMzE4MTM5LCAwLjM3MjU5MSwgMC40NDk0NTUiLCBcCi0gICAgICAgICAgIjAuMTEzNDg4LCAwLjE2ODg1OCwgMC4yMjI4MzYsIDAuMjYxNjA5LCAwLjMyMzk3NiwgMC4zNzc4NiwgMC40NTUwMzkiLCBcCi0gICAgICAgICAgIjAuMTIwNjI0LCAwLjE3NTk1NywgMC4yMzAyMDgsIDAuMjY4ODQxLCAwLjMzMTAwMywgMC4zODQ5OCwgMC40NjIwMjkiLCBcCi0gICAgICAgICAgIjAuMTI1ODAxLCAwLjE4MTExMSwgMC4yMzU3MDUsIDAuMjc0NDM2LCAwLjMzNjA3OCwgMC4zODk4MzMsIDAuNDY3NjE0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDI0NjQ2LCAwLjEzNDIyNCwgMC4yNDYwNjcsIDAuMzI2MjIzLCAwLjQ1NDQ2OCwgMC41NjcwMjQsIDAuNzI3OTYzIiwgXAotICAgICAgICAgICIwLjAyNDY2MywgMC4xMzQ3NzMsIDAuMjQ1OTc4LCAwLjMyNzA0NiwgMC40NTI3NDQsIDAuNTY3MDI1LCAwLjcyNzk3MiIsIFwKLSAgICAgICAgICAiMC4wMjQ2OTYsIDAuMTM0ODQ3LCAwLjI0NjI4MSwgMC4zMjYyMzIsIDAuNDU0MjQ4LCAwLjU2NzAyNiwgMC43Mjc5NjciLCBcCi0gICAgICAgICAgIjAuMDI0NjE2LCAwLjEzNDc4NiwgMC4yNDU4NzMsIDAuMzI2MjMsIDAuNDU0NjIsIDAuNTY3MDIxLCAwLjcyNjYzNCIsIFwKLSAgICAgICAgICAiMC4wMjQ2NywgMC4xMzM1NzgsIDAuMjQ1NTk3LCAwLjMyNTI0NSwgMC40NTM3MywgMC41NjcwMzksIDAuNzI3OTgiLCBcCi0gICAgICAgICAgIjAuMDI0NTkzLCAwLjEzNDcwMSwgMC4yNDY0MzIsIDAuMzI2MTkyLCAwLjQ1NDQ1MiwgMC41NjcwMTQsIDAuNzI3ODQ5IiwgXAotICAgICAgICAgICIwLjAyNDY1LCAwLjEzMzg1LCAwLjI0NjIxMSwgMC4zMjUwOTYsIDAuNDU0NTQ5LCAwLjU2NjgzOSwgMC43MjgwMTEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDk3NzEsIDAuMDA5OTI0LCAwLjAwOTk0NiwgMC4wMDk5NTQsIDAuMDA5OTYsIDAuMDA5OTY0LCAwLjAwOTk2NSIsIFwKLSAgICAgICAgICAiMC4wMDk3NzEsIDAuMDA5OTIxLCAwLjAwOTk0NCwgMC4wMDk5NTEsIDAuMDA5OTU5LCAwLjAwOTk2LCAwLjAwOTk2NSIsIFwKLSAgICAgICAgICAiMC4wMDk4MDEsIDAuMDA5OTUsIDAuMDA5OTczLCAwLjAwOTk3OSwgMC4wMDk5ODcsIDAuMDA5OTkxLCAwLjAwOTk5MSIsIFwKLSAgICAgICAgICAiMC4wMDk4NTMsIDAuMDEwMDA3LCAwLjAxMDAzLCAwLjAxMDAzNywgMC4wMTAwNDMsIDAuMDEwMDQ2LCAwLjAxMDA0OSIsIFwKLSAgICAgICAgICAiMC4wMDk5MjcsIDAuMDEwMDc4LCAwLjAxMDEwMiwgMC4wMTAxMTEsIDAuMDEwMTE3LCAwLjAxMDExOCwgMC4wMTAxMiIsIFwKLSAgICAgICAgICAiMC4wMTAwMzcsIDAuMDEwMTg4LCAwLjAxMDIwNywgMC4wMTAyMTMsIDAuMDEwMjIsIDAuMDEwMjIzLCAwLjAxMDIyMyIsIFwKLSAgICAgICAgICAiMC4wMTAxMywgMC4wMTAyNzgsIDAuMDEwMzAzLCAwLjAxMDMwNywgMC4wMTAzMTMsIDAuMDEwMzE5LCAwLjAxMDMxOCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEwMTI2LCAwLjAxMDI2MiwgMC4wMTAyNzksIDAuMDEwMjg3LCAwLjAxMDI5MSwgMC4wMTAyOTMsIDAuMDEwMjk1IiwgXAotICAgICAgICAgICIwLjAxMDEzMiwgMC4wMTAyNjQsIDAuMDEwMjg1LCAwLjAxMDI5LCAwLjAxMDI5NSwgMC4wMTAyOTcsIDAuMDEwMyIsIFwKLSAgICAgICAgICAiMC4wMTAxNzcsIDAuMDEwMzA3LCAwLjAxMDMyNywgMC4wMTAzMzUsIDAuMDEwMzM4LCAwLjAxMDM0LCAwLjAxMDM0MyIsIFwKLSAgICAgICAgICAiMC4wMTAyMzYsIDAuMDEwMzY5LCAwLjAxMDM4OSwgMC4wMTAzOTUsIDAuMDEwNCwgMC4wMTA0MDMsIDAuMDEwNDA1IiwgXAotICAgICAgICAgICIwLjAxMDMxOCwgMC4wMTA0NSwgMC4wMTA0NywgMC4wMTA0NzUsIDAuMDEwNDgsIDAuMDEwNDgzLCAwLjAxMDQ4NSIsIFwKLSAgICAgICAgICAiMC4wMTA0MzMsIDAuMDEwNTY2LCAwLjAxMDU3NywgMC4wMTA1OTQsIDAuMDEwNTk4LCAwLjAxMDYwMiwgMC4wMTA2MDMiLCBcCi0gICAgICAgICAgIjAuMDEwNTMyLCAwLjAxMDY2NiwgMC4wMTA2ODYsIDAuMDEwNjkyLCAwLjAxMDY5NywgMC4wMTA3LCAwLjAxMDcwMiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUU4pICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMS4zNTM3NzsKLSAgICBmdW5jdGlvbiA6ICJRQklOVCI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3NlbnNlIDogbm9uX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiByaXNpbmdfZWRnZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDMyNDYsIDAuMTU4NDQ4LCAwLjIxMzMyOSwgMC4yNTI1MzgsIDAuMzE1MTkxLCAwLjM3MDIxOCwgMC40NDg2MjIiLCBcCi0gICAgICAgICAgIjAuMTExMjg1LCAwLjE2NjQ5NywgMC4yMjEzNDYsIDAuMjYwNTg5LCAwLjMyMzIzNywgMC4zNzgyNjgsIDAuNDU2NjgiLCBcCi0gICAgICAgICAgIjAuMTE5OTA2LCAwLjE3NTExLCAwLjIyOTk5NSwgMC4yNjkyMDUsIDAuMzMyMDA1LCAwLjM4Njg4OSwgMC40NjUyOTIiLCBcCi0gICAgICAgICAgIjAuMTI2MjM4LCAwLjE4MTQ0OCwgMC4yMzYzNDksIDAuMjc1NTQ4LCAwLjMzODMwNywgMC4zOTMyMDgsIDAuNDcxNjM4IiwgXAotICAgICAgICAgICIwLjEzMTQ0NywgMC4xODY2NzEsIDAuMjQxNTAxLCAwLjI4MDcxNywgMC4zNDM1OTksIDAuMzk4NDQ4LCAwLjQ3Njg2MiIsIFwKLSAgICAgICAgICAiMC4xMzg1OTEsIDAuMTkzNzk2LCAwLjI0ODY3NiwgMC4yODc3OTMsIDAuMzUwNjgzLCAwLjQwNTU2OCwgMC40ODM5ODgiLCBcCi0gICAgICAgICAgIjAuMTQzNzY5LCAwLjE5ODk3NCwgMC4yNTM5MTYsIDAuMjkzMTQ3LCAwLjM1NTg5NSwgMC40MTA3MzYsIDAuNDg5MjY2Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDI1MTIzLCAwLjEzNzg4OCwgMC4yNTMyOTUsIDAuMzM2NTc5LCAwLjQ2ODAzOSwgMC41ODUxOTYsIDAuNzUwODQzIiwgXAotICAgICAgICAgICIwLjAyNTE1MywgMC4xMzc5NzgsIDAuMjUzMzg2LCAwLjMzNjUyLCAwLjQ2Nzg3OCwgMC41ODUxOTcsIDAuNzUwODQzIiwgXAotICAgICAgICAgICIwLjAyNTE1MiwgMC4xMzc4NjQsIDAuMjUzNDU4LCAwLjMzNjU4MSwgMC40NjgyNjQsIDAuNTg1MjAzLCAwLjc1MDgzOSIsIFwKLSAgICAgICAgICAiMC4wMjUxNCwgMC4xMzc5ODcsIDAuMjUzMTE4LCAwLjMzNjU4NCwgMC40Njg2MSwgMC41ODUxNTksIDAuNzUwMDY1IiwgXAotICAgICAgICAgICIwLjAyNTE0LCAwLjEzNzgzMSwgMC4yNTMwNDYsIDAuMzM1ODYyLCAwLjQ2ODE3OSwgMC41ODUxODIsIDAuNzUwODQzIiwgXAotICAgICAgICAgICIwLjAyNTIzNCwgMC4xMzgwMjksIDAuMjUzNzE0LCAwLjMzNjU1LCAwLjQ2ODMzNiwgMC41ODUxOCwgMC43NTA3ODMiLCBcCi0gICAgICAgICAgIjAuMDI1MTUyLCAwLjEzNzg2NywgMC4yNTMzMzEsIDAuMzM1ODc1LCAwLjQ2ODQ3OCwgMC41ODQ0NzksIDAuNzUwODI0Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk4MDcxLCAwLjE1MjU4OCwgMC4yMDY2NTQsIDAuMjQ1Mjk2LCAwLjMwNzA5NCwgMC4zNjEyMzUsIDAuNDM4NDkyIiwgXAotICAgICAgICAgICIwLjEwNjAxNiwgMC4xNjA1NzIsIDAuMjE0NjM3LCAwLjI1MzI3MiwgMC4zMTUwNzMsIDAuMzY5MjU1LCAwLjQ0NjQ2OSIsIFwKLSAgICAgICAgICAiMC4xMTQ1MzMsIDAuMTY5MDk1LCAwLjIyMzE1NywgMC4yNjE4MjUsIDAuMzIzNjEyLCAwLjM3NzcyNiwgMC40NTUwMDciLCBcCi0gICAgICAgICAgIjAuMTIwNzk2LCAwLjE3NTM1MiwgMC4yMjk0MTYsIDAuMjY4MDY1LCAwLjMyOTg4MiwgMC4zODM5OTIsIDAuNDYxMjU2IiwgXAotICAgICAgICAgICIwLjEyNTksIDAuMTgwNDUyLCAwLjIzNDUxOCwgMC4yNzMxNDcsIDAuMzM0OTU1LCAwLjM4OTEzNywgMC40NjYzNDkiLCBcCi0gICAgICAgICAgIjAuMTMzMDAyLCAwLjE4NzUzLCAwLjI0MTU5NywgMC4yODAyMzQsIDAuMzQyMDQ0LCAwLjM5NjE2LCAwLjQ3MzQyOSIsIFwKLSAgICAgICAgICAiMC4xMzgxMywgMC4xOTI2OTgsIDAuMjQ2NzY4LCAwLjI4NTM5MywgMC4zNDcyNTcsIDAuNDAxMzE1LCAwLjQ3ODU4NyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyNDMwOCwgMC4xMzM3NTEsIDAuMjQ2MDExLCAwLjMyNjM0MiwgMC40NTUwMTYsIDAuNTY2NzM1LCAwLjcyODQzMiIsIFwKLSAgICAgICAgICAiMC4wMjQyOTEsIDAuMTMzNzQ1LCAwLjI0NTk5NywgMC4zMjYzOTgsIDAuNDU0MjkyLCAwLjU2NjczNCwgMC43Mjg0MDkiLCBcCi0gICAgICAgICAgIjAuMDI0MjkzLCAwLjEzMzgzNCwgMC4yNDU5OTgsIDAuMzI1OTQ0LCAwLjQ1NDY0NiwgMC41NjYyNTksIDAuNzI3MjEyIiwgXAotICAgICAgICAgICIwLjAyNDI5MiwgMC4xMzM4MzQsIDAuMjQ2MDA0LCAwLjMyNTc1MiwgMC40NTQyMzQsIDAuNTY2NzI5LCAwLjcyNzI2NCIsIFwKLSAgICAgICAgICAiMC4wMjQyOSwgMC4xMzM3NDYsIDAuMjQ1OTk1LCAwLjMyNjAwOCwgMC40NTQ5OTMsIDAuNTY2NTkzLCAwLjcyODM4NCIsIFwKLSAgICAgICAgICAiMC4wMjQzNjEsIDAuMTMzNzg4LCAwLjI0NjAzMywgMC4zMjYzNzQsIDAuNDU0OTMxLCAwLjU2NjgzNSwgMC43MjgyNyIsIFwKLSAgICAgICAgICAiMC4wMjQyNzEsIDAuMTMzNzk0LCAwLjI0NjA0MywgMC4zMjYzNjYsIDAuNDU1MDAzLCAwLjU2NzQ4OCwgMC43Mjc0NTciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTAxMjYsIDAuMDEwMjYyLCAwLjAxMDI3OSwgMC4wMTAyODcsIDAuMDEwMjkxLCAwLjAxMDI5MywgMC4wMTAyOTUiLCBcCi0gICAgICAgICAgIjAuMDEwMTMyLCAwLjAxMDI2NCwgMC4wMTAyODUsIDAuMDEwMjksIDAuMDEwMjk1LCAwLjAxMDI5NywgMC4wMTAzIiwgXAotICAgICAgICAgICIwLjAxMDE3NywgMC4wMTAzMDcsIDAuMDEwMzI3LCAwLjAxMDMzNSwgMC4wMTAzMzgsIDAuMDEwMzQsIDAuMDEwMzQzIiwgXAotICAgICAgICAgICIwLjAxMDIzNiwgMC4wMTAzNjksIDAuMDEwMzg5LCAwLjAxMDM5NSwgMC4wMTA0LCAwLjAxMDQwMywgMC4wMTA0MDUiLCBcCi0gICAgICAgICAgIjAuMDEwMzE4LCAwLjAxMDQ1LCAwLjAxMDQ3LCAwLjAxMDQ3NSwgMC4wMTA0OCwgMC4wMTA0ODMsIDAuMDEwNDg1IiwgXAotICAgICAgICAgICIwLjAxMDQzMywgMC4wMTA1NjYsIDAuMDEwNTc3LCAwLjAxMDU5NCwgMC4wMTA1OTgsIDAuMDEwNjAyLCAwLjAxMDYwMyIsIFwKLSAgICAgICAgICAiMC4wMTA1MzIsIDAuMDEwNjY2LCAwLjAxMDY4NiwgMC4wMTA2OTIsIDAuMDEwNjk3LCAwLjAxMDcsIDAuMDEwNzAyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDk3NzEsIDAuMDA5OTI0LCAwLjAwOTk0NiwgMC4wMDk5NTQsIDAuMDA5OTYsIDAuMDA5OTY0LCAwLjAwOTk2NSIsIFwKLSAgICAgICAgICAiMC4wMDk3NzEsIDAuMDA5OTIxLCAwLjAwOTk0NCwgMC4wMDk5NTEsIDAuMDA5OTU5LCAwLjAwOTk2LCAwLjAwOTk2NSIsIFwKLSAgICAgICAgICAiMC4wMDk4MDEsIDAuMDA5OTUsIDAuMDA5OTczLCAwLjAwOTk3OSwgMC4wMDk5ODcsIDAuMDA5OTkxLCAwLjAwOTk5MSIsIFwKLSAgICAgICAgICAiMC4wMDk4NTMsIDAuMDEwMDA3LCAwLjAxMDAzLCAwLjAxMDAzNywgMC4wMTAwNDMsIDAuMDEwMDQ2LCAwLjAxMDA0OSIsIFwKLSAgICAgICAgICAiMC4wMDk5MjcsIDAuMDEwMDc4LCAwLjAxMDEwMiwgMC4wMTAxMTEsIDAuMDEwMTE3LCAwLjAxMDExOCwgMC4wMTAxMiIsIFwKLSAgICAgICAgICAiMC4wMTAwMzcsIDAuMDEwMTg4LCAwLjAxMDIwNywgMC4wMTAyMTMsIDAuMDEwMjIsIDAuMDEwMjIzLCAwLjAxMDIyMyIsIFwKLSAgICAgICAgICAiMC4wMTAxMywgMC4wMTAyNzgsIDAuMDEwMzAzLCAwLjAxMDMwNywgMC4wMTAzMTMsIDAuMDEwMzE5LCAwLjAxMDMxOCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oU0UpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTMwNjcyOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTMwNjUxOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTMwNjcyOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNTM5OSwgMC4wMDU0MTMsIDAuMDA1NDg3LCAwLjAwNTYsIDAuMDA1NzM0LCAwLjAwNTk5MSwgMC4wMDYxOTQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDc1MTYsIDAuMDA3NTQsIDAuMDA3NjM3LCAwLjAwNzgxMywgMC4wMDgwMzEsIDAuMDA4NDA5LCAwLjAwODczOCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRCZTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fU0lfRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMzEyNSwgLTAuMDI2MjUsIC0wLjAyLCAtMC4wMiwgLTAuMDEzNzUsIC0wLjAxLCAtMC4wMDc1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDI1LCAtMC4wMjUsIC0wLjAyMTI1LCAtMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMjc1LCAtMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjA1NSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wNDM3NSwgLTAuMDQzNzUsIC0wLjA0LCAtMC4wMzc1IiwgXAotICAgICAgICAgICItMC4wNjEyNSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNSwgLTAuMDUsIC0wLjA0NjI1LCAtMC4wNDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDcxMjUsIC0wLjA2NjI1LCAtMC4wNiwgLTAuMDYsIC0wLjA2LCAtMC4wNTYyNSwgLTAuMDUzNzUiLCBcCi0gICAgICAgICAgIi0wLjA3Mzc1LCAtMC4wNjg3NSwgLTAuMDY4NzUsIC0wLjA2ODc1LCAtMC4wNjI1LCAtMC4wNjUsIC0wLjA2MjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMDYyNSwgLTAuMDAxMjUsIDAuMDA1LCAwLjAxMTI1LCAwLjAxMTI1LCAwLjAyMTI1LCAwLjAyMzc1IiwgXAotICAgICAgICAgICItMC4wMTc1LCAtMC4wMDYyNSwgMCwgMCwgMC4wMDYyNSwgMC4wMSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMCwgMC4wMDM3NSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAxMjUsIC0wLjAwMjUsIDAiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDE4NzUsIC0wLjAwODc1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDQsIC0wLjAzNSwgLTAuMDI4NzUsIC0wLjAyODc1LCAtMC4wMjI1LCAtMC4wMTg3NSwgLTAuMDE2MjUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzNzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMzEyNSwgLTAuMDI3NSwgLTAuMDE4NzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiRCYhU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8xX0FOX1NJX0VRXzAgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDE4NzUsIC0wLjAxMzc1LCAtMC4wMDc1LCAtMC4wMDEyNSwgLTAuMDAxMjUsIDAuMDA4NzUsIDAuMDExMjUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDEyNSwgLTAuMDA2MjUsIC0wLjAwMjUsIDAiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA4NzUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDE4NzUsIC0wLjAxNSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTUsIC0wLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjA0NjI1LCAtMC4wNDEyNSwgLTAuMDM1LCAtMC4wMjg3NSwgLTAuMDI4NzUsIC0wLjAxODc1LCAtMC4wMTYyNSIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAyNzUsIC0wLjAxODc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDQzNzUsIC0wLjAzODc1LCAtMC4wMzI1LCAtMC4wMzI1LCAtMC4wMzI1LCAtMC4wMjg3NSwgLTAuMDI2MjUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wNDM3NSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzNzUsIC0wLjAzMzc1LCAtMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wNDM3NSwgLTAuMDQsIC0wLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjA2MTI1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjA1LCAtMC4wNSwgLTAuMDQ2MjUsIC0wLjA0Mzc1IiwgXAotICAgICAgICAgICItMC4wNjc1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNTI1LCAtMC4wNSIsIFwKLSAgICAgICAgICAiLTAuMDcxMjUsIC0wLjA2NjI1LCAtMC4wNiwgLTAuMDYsIC0wLjA2LCAtMC4wNTYyNSwgLTAuMDUzNzUiLCBcCi0gICAgICAgICAgIi0wLjA3Mzc1LCAtMC4wNjg3NSwgLTAuMDYyNSwgLTAuMDYyNSwgLTAuMDYyNSwgLTAuMDU4NzUsIC0wLjA1NjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRCZTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fU0lfRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTYyNSwgMC4wNDUsIDAuMDM4NzUsIDAuMDM4NzUsIDAuMDMyNSwgMC4wMjg3NSwgMC4wMjYyNSIsIFwKLSAgICAgICAgICAiMC4wNjEyNSwgMC4wNTYyNSwgMC4wNSwgMC4wNDM3NSwgMC4wNDM3NSwgMC4wNCwgMC4wMzc1IiwgXAotICAgICAgICAgICIwLjA3Mzc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDU2MjUsIDAuMDUsIDAuMDQ2MjUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMDgsIDAuMDc1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDYyNSwgMC4wNTg3NSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiMC4wODYyNSwgMC4wODEyNSwgMC4wNzUsIDAuMDY4NzUsIDAuMDY4NzUsIDAuMDY1LCAwLjA2MjUiLCBcCi0gICAgICAgICAgIjAuMDk2MjUsIDAuMDkxMjUsIDAuMDg1LCAwLjA3ODc1LCAwLjA3ODc1LCAwLjA3NSwgMC4wNzI1IiwgXAotICAgICAgICAgICIwLjEwNSwgMC4xLCAwLjA5Mzc1LCAwLjA4NzUsIDAuMDg3NSwgMC4wODM3NSwgMC4wODEyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0Mzc1LCAwLjAzMjUsIDAuMDI2MjUsIDAuMDIsIDAuMDEzNzUsIDAuMDEsIDAuMDAxMjUiLCBcCi0gICAgICAgICAgIjAuMDQ4NzUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMjUsIDAuMDE4NzUsIDAuMDE1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMDU1LCAwLjA1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDI3NSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4wNjc1LCAwLjA1NjI1LCAwLjA1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDMzNzUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMDczNzUsIDAuMDY4NzUsIDAuMDU2MjUsIDAuMDUsIDAuMDUsIDAuMDQsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiMC4wODM3NSwgMC4wNzg3NSwgMC4wNjYyNSwgMC4wNiwgMC4wNiwgMC4wNSwgMC4wNDc1IiwgXAotICAgICAgICAgICIwLjA5MjUsIDAuMDgxMjUsIDAuMDc1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDU4NzUsIDAuMDU2MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIkQmIVNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMV9BTl9TSV9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1NjI1LCAwLjA0NSwgMC4wMzg3NSwgMC4wMzI1LCAwLjAyNjI1LCAwLjAyMjUsIDAuMDEzNzUiLCBcCi0gICAgICAgICAgIjAuMDYxMjUsIDAuMDU2MjUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzc1LCAwLjAyNzUsIDAuMDI1IiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDYyNSwgMC4wNSwgMC4wNDM3NSwgMC4wNDM3NSwgMC4wMzM3NSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4wNzM3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1LCAwLjA0Mzc1LCAwLjA0LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIjAuMDgsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNSwgMC4wNDYyNSwgMC4wMzc1IiwgXAotICAgICAgICAgICIwLjA4Mzc1LCAwLjA3MjUsIDAuMDY2MjUsIDAuMDYsIDAuMDUzNzUsIDAuMDUsIDAuMDQxMjUiLCBcCi0gICAgICAgICAgIjAuMDg2MjUsIDAuMDc1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDUyNSwgMC4wNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2ODc1LCAwLjA1NzUsIDAuMDUxMjUsIDAuMDUxMjUsIDAuMDQ1LCAwLjA0MTI1LCAwLjAzODc1IiwgXAotICAgICAgICAgICIwLjA3Mzc1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDU2MjUsIDAuMDUyNSwgMC4wNSIsIFwKLSAgICAgICAgICAiMC4wOCwgMC4wNzUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNjI1LCAwLjA1ODc1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICIwLjA4NjI1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjg3NSwgMC4wNjUsIDAuMDYyNSIsIFwKLSAgICAgICAgICAiMC4wOTI1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNzUsIDAuMDY4NzUsIDAuMDY1LCAwLjA2MjUiLCBcCi0gICAgICAgICAgIjAuMDk2MjUsIDAuMDg1LCAwLjA3ODc1LCAwLjA3ODc1LCAwLjA3MjUsIDAuMDY4NzUsIDAuMDY2MjUiLCBcCi0gICAgICAgICAgIjAuMDk4NzUsIDAuMDkzNzUsIDAuMDg3NSwgMC4wODEyNSwgMC4wODEyNSwgMC4wNzc1LCAwLjA3NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oU0kpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY1NDI2NTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2NTMzNzU7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjU0MjY1OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzA0NywgMC4wMDMwMjUsIDAuMDAzMDQ1LCAwLjAwMzA5MywgMC4wMDMxNTMsIDAuMDAzMjU3LCAwLjAwMzM3NyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNTkyNCwgMC4wMDU5MDMsIDAuMDA1OTIxLCAwLjAwNTk2OSwgMC4wMDYwMzcsIDAuMDA2MTM3LCAwLjAwNjI1MiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJTRSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMzEyNSwgLTAuMDI2MjUsIC0wLjAyNjI1LCAtMC4wMiwgLTAuMDIsIC0wLjAxNjI1LCAtMC4wMTM3NSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMjEyNSwgLTAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAzMzc1LCAtMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjA0Mzc1LCAtMC4wNDM3NSwgLTAuMDQsIC0wLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjA2MTI1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjA1LCAtMC4wNSwgLTAuMDQ2MjUsIC0wLjA0Mzc1IiwgXAotICAgICAgICAgICItMC4wNjUsIC0wLjA2LCAtMC4wNiwgLTAuMDYsIC0wLjA1Mzc1LCAtMC4wNSwgLTAuMDUzNzUiLCBcCi0gICAgICAgICAgIi0wLjA3Mzc1LCAtMC4wNjg3NSwgLTAuMDY4NzUsIC0wLjA2MjUsIC0wLjA2MjUsIC0wLjA1ODc1LCAtMC4wNTYyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAxMjUsIC0wLjAwNzUsIC0wLjAwMTI1LCAwLjAwNSwgMC4wMTEyNSwgMC4wMTUsIDAuMDE3NSIsIFwKLSAgICAgICAgICAiLTAuMDE3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAsIDAsIDAuMDEsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgLTAuMDA2MjUsIDAuMDAzNzUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgLTAuMDAyNSwgMCIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA4NzUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wNCwgLTAuMDM1LCAtMC4wMjg3NSwgLTAuMDIyNSwgLTAuMDIyNSwgLTAuMDE4NzUsIC0wLjAxIiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDIxMjUsIC0wLjAxODc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJTRSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTYyNSwgMC4wNTEyNSwgMC4wNDUsIDAuMDM4NzUsIDAuMDM4NzUsIDAuMDM1LCAwLjAzMjUiLCBcCi0gICAgICAgICAgIjAuMDY3NSwgMC4wNTYyNSwgMC4wNSwgMC4wNSwgMC4wNDM3NSwgMC4wNCwgMC4wMzc1IiwgXAotICAgICAgICAgICIwLjA3Mzc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDU2MjUsIDAuMDUsIDAuMDQ2MjUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMDgsIDAuMDc1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDYyNSwgMC4wNTg3NSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiMC4wODYyNSwgMC4wODEyNSwgMC4wNzUsIDAuMDY4NzUsIDAuMDY4NzUsIDAuMDY1LCAwLjA2MjUiLCBcCi0gICAgICAgICAgIjAuMDk2MjUsIDAuMDg1LCAwLjA3ODc1LCAwLjA3ODc1LCAwLjA3MjUsIDAuMDY4NzUsIDAuMDY2MjUiLCBcCi0gICAgICAgICAgIjAuMTA1LCAwLjA5Mzc1LCAwLjA4NzUsIDAuMDg3NSwgMC4wODEyNSwgMC4wNzc1LCAwLjA3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0Mzc1LCAwLjAzODc1LCAwLjAzMjUsIDAuMDI2MjUsIDAuMDIsIDAuMDE2MjUsIDAuMDA3NSIsIFwKLSAgICAgICAgICAiMC4wNTUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMjUsIDAuMDIxMjUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4wNjEyNSwgMC4wNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyNzUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMDY3NSwgMC4wNTYyNSwgMC4wNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzMzc1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiMC4wNzM3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1LCAwLjA0Mzc1LCAwLjA0LCAwLjAzMTI1IiwgXAotICAgICAgICAgICIwLjA3NzUsIDAuMDcyNSwgMC4wNiwgMC4wNiwgMC4wNTM3NSwgMC4wNDM3NSwgMC4wNDEyNSIsIFwKLSAgICAgICAgICAiMC4wODYyNSwgMC4wNzUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNTI1LCAwLjA1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBTREZGWEwgKgotICogLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChTREZGWEwpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC45OTc7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgZmYgKE4zMCxRQklOVCkgewotICAgIG5leHRfc3RhdGUgOiAiKChTRSBTSSkgKyAoIVNFIEQpKSI7Ci0gICAgY2xvY2tlZF9vbiA6ICJDSyI7Ci0gIH0KLSAgcGluKENLKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2MzcwNjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MzcwNjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2MzY5NDk7Ci0gICAgY2xvY2sgOiB0cnVlOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzUxMywgMC4wMDM1MDYsIDAuMDAzNTg3LCAwLjAwMzY3OCwgMC4wMDM4MDMsIDAuMDA0MDMzLCAwLjAwNDIxOSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNzU4LCAwLjAwNzU3OSwgMC4wMDc2NjQsIDAuMDA3NzkyLCAwLjAwNzk0LCAwLjAwODIxOSwgMC4wMDg0MzciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFEJiFTRSYhU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1NFX0VRXzBfQU5fU0lfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjEzMzA1MywgMC4xNDEyNCwgMC4xNTAyMzIsIDAuMTU3MDQyLCAwLjE2MjUsIDAuMTY5OTAxLCAwLjE3NTM4OSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDYxNjU2LCAwLjA2OTcyNiwgMC4wNzg1OTQsIDAuMDg1MjUxLCAwLjA5MDU2MywgMC4wOTc1MTYsIDAuMTAyNzMzIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihEKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2NTUxMDc7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjU0MjQ0OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDY1NTEwNzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDMzNzYsIDAuMDAzMzUzLCAwLjAwMzM3OCwgMC4wMDM0MjYsIDAuMDAzNDg1LCAwLjAwMzYwMSwgMC4wMDM3MzEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDUzMDEsIDAuMDA1Mjg0LCAwLjAwNTMwOCwgMC4wMDUzNTQsIDAuMDA1NDE2LCAwLjAwNTUyOCwgMC4wMDU2NDgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIVNFIjsKLSAgICAgIHNkZl9jb25kIDogIlNFID09IDEnYjAiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAzMTI1LCAtMC4wMjYyNSwgLTAuMDIsIC0wLjAyLCAtMC4wMiwgLTAuMDE2MjUsIC0wLjAxMzc1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDMxMjUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAyNSwgLTAuMDIxMjUsIC0wLjAxODc1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMzEyNSwgLTAuMDI3NSwgLTAuMDI1IiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDM3NSwgLTAuMDMzNzUsIC0wLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wNjEyNSwgLTAuMDUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDQzNzUsIC0wLjA0LCAtMC4wMzc1IiwgXAotICAgICAgICAgICItMC4wNjUsIC0wLjA2LCAtMC4wNiwgLTAuMDUzNzUsIC0wLjA1Mzc1LCAtMC4wNSwgLTAuMDQ3NSIsIFwKLSAgICAgICAgICAiLTAuMDczNzUsIC0wLjA2ODc1LCAtMC4wNjI1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDUyNSwgLTAuMDUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMTI1LCAtMC4wMDc1LCAtMC4wMDEyNSwgMC4wMDUsIDAuMDExMjUsIDAuMDE1LCAwLjAyMzc1IiwgXAotICAgICAgICAgICItMC4wMTc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMCwgMC4wMDYyNSwgMC4wMSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMCwgMC4wMDM3NSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAtMC4wMDI1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwMjUsIDAiLCBcCi0gICAgICAgICAgIi0wLjA0LCAtMC4wMzUsIC0wLjAyODc1LCAtMC4wMjI1LCAtMC4wMTYyNSwgLTAuMDEyNSwgLTAuMDEiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMjUsIC0wLjAxNSwgLTAuMDEyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIVNFIjsKLSAgICAgIHNkZl9jb25kIDogIlNFID09IDEnYjAiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1LCAwLjA0NSwgMC4wMzg3NSwgMC4wMzI1LCAwLjAzMjUsIDAuMDI4NzUsIDAuMDI2MjUiLCBcCi0gICAgICAgICAgIjAuMDYxMjUsIDAuMDUsIDAuMDQzNzUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzM3NSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4wNjc1LCAwLjA1NjI1LCAwLjA1LCAwLjA1LCAwLjA0Mzc1LCAwLjA0LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIjAuMDczNzUsIDAuMDYyNSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1NjI1LCAwLjA1MjUsIDAuMDUiLCBcCi0gICAgICAgICAgIjAuMDgsIDAuMDc1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDYyNSwgMC4wNTg3NSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiMC4wOSwgMC4wNzg3NSwgMC4wNzI1LCAwLjA3MjUsIDAuMDY2MjUsIDAuMDYyNSwgMC4wNiIsIFwKLSAgICAgICAgICAiMC4wOTI1LCAwLjA4NzUsIDAuMDgxMjUsIDAuMDc1LCAwLjA3NSwgMC4wNzEyNSwgMC4wNjg3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0Mzc1LCAwLjAzMjUsIDAuMDI2MjUsIDAuMDIsIDAuMDEzNzUsIDAuMDAzNzUsIDAuMDAxMjUiLCBcCi0gICAgICAgICAgIjAuMDQ4NzUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMjUsIDAuMDE4NzUsIDAuMDA4NzUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMDU1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDI1LCAwLjAyMTI1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMDYxMjUsIDAuMDUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMjc1LCAwLjAxODc1IiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDU2MjUsIDAuMDUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMjc1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiMC4wNzEyNSwgMC4wNjYyNSwgMC4wNTM3NSwgMC4wNDc1LCAwLjA0NzUsIDAuMDM3NSwgMC4wMzUiLCBcCi0gICAgICAgICAgIjAuMDgsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNSwgMC4wNDYyNSwgMC4wMzc1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihRKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMjAwMTgyOwotICAgIGZ1bmN0aW9uIDogIk4zMCI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3NlbnNlIDogbm9uX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiByaXNpbmdfZWRnZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTE3MzM5LCAwLjEyNzgwOSwgMC4yMjI3MTcsIDAuMzgxMTQ1LCAwLjUzOTU2NCwgMC45MDkzNDgsIDEuMTE3NDIiLCBcCi0gICAgICAgICAgIjAuMTI1NDMyLCAwLjEzNTkwMywgMC4yMzA4MTMsIDAuMzg5MjMyLCAwLjU0NzY2MywgMC45MTczOTEsIDEuMTI4OSIsIFwKLSAgICAgICAgICAiMC4xMzQyMDcsIDAuMTQ0Njc4LCAwLjIzOTU5NCwgMC4zOTc5OSwgMC41NTY0MjMsIDAuOTI2MTM0LCAxLjEzNzgxIiwgXAotICAgICAgICAgICIwLjE0MTAyOSwgMC4xNTE1MzcsIDAuMjQ2MTc0LCAwLjQwNDc3MywgMC41NjMyNjksIDAuOTMzMTU1LCAxLjE0MDIiLCBcCi0gICAgICAgICAgIjAuMTQ2NTE1LCAwLjE1Njk1OSwgMC4yNTE4NjQsIDAuNDEwMjIyLCAwLjU2ODY1NSwgMC45MzUxNzMsIDEuMTQ5NTgiLCBcCi0gICAgICAgICAgIjAuMTUzNjQzLCAwLjE2NDEyOCwgMC4yNTg2NDYsIDAuNDE3MzMsIDAuNTc1Nzc0LCAwLjk0NTQwNSwgMS4xNTI2IiwgXAotICAgICAgICAgICIwLjE1OTE4OSwgMC4xNjk2NDgsIDAuMjY0NDMsIDAuNDIyODY3LCAwLjU4MTE1OCwgMC45NDc5MDUsIDEuMTYyNTUiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTE4MjgxLCAwLjE0MDI2MywgMC4zMzk4MTYsIDAuNjczMzAyLCAxLjAwNjkzLCAxLjc4NTAxLCAyLjIyODEiLCBcCi0gICAgICAgICAgIjAuMTE4MjgsIDAuMTQwMjYzLCAwLjMzOTkyOSwgMC42NzM2MzEsIDEuMDA3NDEsIDEuNzg2MDgsIDIuMjMwNyIsIFwKLSAgICAgICAgICAiMC4xMTgyOCwgMC4xNDAyNjMsIDAuMzM5OTE3LCAwLjY3MzY1NywgMS4wMDc0MiwgMS43ODYxMSwgMi4yMzAyNCIsIFwKLSAgICAgICAgICAiMC4xMTgxNTQsIDAuMTQwMjM0LCAwLjM0MDA4NCwgMC42NzM4MywgMS4wMDczOCwgMS43ODU2NiwgMi4yMjc0MiIsIFwKLSAgICAgICAgICAiMC4xMTgxNjUsIDAuMTQwMjU4LCAwLjMzOTkzMSwgMC42NzM3NTEsIDEuMDA3NDYsIDEuNzgyMTUsIDIuMjMxMzEiLCBcCi0gICAgICAgICAgIjAuMTE4MjczLCAwLjE0MDMwNSwgMC4zMzk2MiwgMC42NzM4NjgsIDEuMDA3NTYsIDEuNzg2NDEsIDIuMjI3MzYiLCBcCi0gICAgICAgICAgIjAuMTE4MTQxLCAwLjE0MDA1OCwgMC4zMzk0MzMsIDAuNjczNzkyLCAxLjAwNzcxLCAxLjc4MDQ5LCAyLjIzMTMiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTIyOTQ4LCAwLjEzMjY1LCAwLjIxOTg4NywgMC4zNjQ4NiwgMC41MDg5OTYsIDAuODQ4NzcsIDEuMDM5OTIiLCBcCi0gICAgICAgICAgIjAuMTMxMTE0LCAwLjE0MDc2NiwgMC4yMjc5NjMsIDAuMzczMDI1LCAwLjUxODI3NywgMC44NTY5MzgsIDEuMDQ5MTUiLCBcCi0gICAgICAgICAgIjAuMTQwMTIsIDAuMTQ5ODI3LCAwLjIzNzA2NSwgMC4zODIwNDgsIDAuNTI2NzUxLCAwLjg2NTk5MywgMS4wNTk1NSIsIFwKLSAgICAgICAgICAiMC4xNDY5MTQsIDAuMTU2NTc2LCAwLjI0NDA3NCwgMC4zODg3ODYsIDAuNTMzNzY2LCAwLjg3MjcwMSwgMS4wNjU1OSIsIFwKLSAgICAgICAgICAiMC4xNTIzOCwgMC4xNjIwNDksIDAuMjQ5MTIyLCAwLjM5NDIwNywgMC41Mzk0MzQsIDAuODc3NDk1LCAxLjA3MTc5IiwgXAotICAgICAgICAgICIwLjE1OTg3OSwgMC4xNjk1NjIsIDAuMjU2OTA5LCAwLjQwMTU1OSwgMC41NDY3MjUsIDAuODg1NDYxLCAxLjA3ODA3IiwgXAotICAgICAgICAgICIwLjE2NTI4MywgMC4xNzQ5MDEsIDAuMjYyMzkxLCAwLjQwNzA1NywgMC41NTE0MjUsIDAuODkxMDI3LCAxLjA4NDY3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwNjg4MywgMC4xMjY2NiwgMC4zMDU0NjIsIDAuNjA0MzYzLCAwLjkwMTIxOSwgMS41OTcxMiwgMS45OTYzIiwgXAotICAgICAgICAgICIwLjEwNjkyOCwgMC4xMjYyNjQsIDAuMzA1NDg2LCAwLjYwNDM2NywgMC45MDMxNDMsIDEuNTk3MTksIDIuMDAwMTUiLCBcCi0gICAgICAgICAgIjAuMTA2OTE2LCAwLjEyNjY2NSwgMC4zMDU0NzMsIDAuNjA0MzUsIDAuOTAzNDkzLCAxLjU4NzMsIDEuOTk2MyIsIFwKLSAgICAgICAgICAiMC4xMDY4OSwgMC4xMjYzNTYsIDAuMzA1NDgzLCAwLjYwNDM5OCwgMC45MDM0MjEsIDEuNTk4MjUsIDIuMDAwMDciLCBcCi0gICAgICAgICAgIjAuMTA2ODI2LCAwLjEyNjQzMSwgMC4zMDUwNjgsIDAuNjA0NjQzLCAwLjkwMzI3LCAxLjU5MTUxLCAxLjk5Nzg1IiwgXAotICAgICAgICAgICIwLjEwNjk1MiwgMC4xMjY2NTIsIDAuMzA1MTQxLCAwLjYwNDM4NCwgMC45MDMzNywgMS41OTkwOSwgMS45OTU3OCIsIFwKLSAgICAgICAgICAiMC4xMDY5NjMsIDAuMTI2MzMzLCAwLjMwMzM0OCwgMC42MDQyMTgsIDAuOTAyODY1LCAxLjU5OTgxLCAxLjk5NTU4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDU4NiwgMC4wMDQ1ODMsIDAuMDA0NTY4LCAwLjAwNDU2LCAwLjAwNDU1NiwgMC4wMDQ1NTMsIDAuMDA0NTUzIiwgXAotICAgICAgICAgICIwLjAwNDU3NywgMC4wMDQ1NzQsIDAuMDA0NTYsIDAuMDA0NTUxLCAwLjAwNDU0OCwgMC4wMDQ1NDQsIDAuMDA0NTQ0IiwgXAotICAgICAgICAgICIwLjAwNDYyOSwgMC4wMDQ2MjcsIDAuMDA0NjEyLCAwLjAwNDYwMywgMC4wMDQ1OTksIDAuMDA0NTk1LCAwLjAwNDU5NSIsIFwKLSAgICAgICAgICAiMC4wMDQ2NzYsIDAuMDA0Njc0LCAwLjAwNDY1OSwgMC4wMDQ2NDksIDAuMDA0NjQ1LCAwLjAwNDY0MiwgMC4wMDQ2NDEiLCBcCi0gICAgICAgICAgIjAuMDA0NzQ3LCAwLjAwNDc0NCwgMC4wMDQ3MywgMC4wMDQ3MjEsIDAuMDA0NzE2LCAwLjAwNDcxMiwgMC4wMDQ3MTEiLCBcCi0gICAgICAgICAgIjAuMDA0ODM2LCAwLjAwNDgzNSwgMC4wMDQ4MjEsIDAuMDA0ODEsIDAuMDA0ODA2LCAwLjAwNDgwMSwgMC4wMDQ4IiwgXAotICAgICAgICAgICIwLjAwNDk0MiwgMC4wMDQ5NCwgMC4wMDQ5MjQsIDAuMDA0OTE1LCAwLjAwNDkxLCAwLjAwNDkwNSwgMC4wMDQ5MDMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQ1OTksIDAuMDA0NjAxLCAwLjAwNDYwNSwgMC4wMDQ2MDcsIDAuMDA0NjA4LCAwLjAwNDYwOCwgMC4wMDQ2MSIsIFwKLSAgICAgICAgICAiMC4wMDQ1OTksIDAuMDA0NiwgMC4wMDQ2MDUsIDAuMDA0NjA3LCAwLjAwNDYwOCwgMC4wMDQ2MDgsIDAuMDA0NjA5IiwgXAotICAgICAgICAgICIwLjAwNDY0NCwgMC4wMDQ2NDUsIDAuMDA0NjUsIDAuMDA0NjUyLCAwLjAwNDY1MiwgMC4wMDQ2NTIsIDAuMDA0NjUzIiwgXAotICAgICAgICAgICIwLjAwNDcxMSwgMC4wMDQ3MTIsIDAuMDA0NzE2LCAwLjAwNDcxOCwgMC4wMDQ3MTksIDAuMDA0NzE5LCAwLjAwNDcyIiwgXAotICAgICAgICAgICIwLjAwNDc4MiwgMC4wMDQ3ODQsIDAuMDA0Nzg4LCAwLjAwNDc4OSwgMC4wMDQ3ODksIDAuMDA0NzksIDAuMDA0NzkiLCBcCi0gICAgICAgICAgIjAuMDA0OTA0LCAwLjAwNDkwNywgMC4wMDQ5MDgsIDAuMDA0OTA5LCAwLjAwNDkwOSwgMC4wMDQ5MSwgMC4wMDQ5MSIsIFwKLSAgICAgICAgICAiMC4wMDQ5OTUsIDAuMDA0OTk2LCAwLjAwNDk5OSwgMC4wMDQ5OTksIDAuMDA0OTk5LCAwLjAwNDk5OSwgMC4wMDQ5OTkiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFFOKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMTk4ODM2OwotICAgIGZ1bmN0aW9uIDogIlFCSU5UIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBub25fdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJpc2luZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMzMwNTMsIDAuMTQzNTc1LCAwLjIzODMwMywgMC4zOTYxMjQsIDAuNTUzOTExLCAwLjkyMjMwOSwgMS4xMzIzNSIsIFwKLSAgICAgICAgICAiMC4xNDEyNCwgMC4xNTE3NTcsIDAuMjQ2NDYyLCAwLjQwNDI5MywgMC41NjIxNjEsIDAuOTMwNDc4LCAxLjE0MDY1IiwgXAotICAgICAgICAgICIwLjE1MDI1MSwgMC4xNjA3NzQsIDAuMjU1NDk2LCAwLjQxMzI5LCAwLjU3MTA0OCwgMC45Mzk0ODYsIDEuMTQ5OTciLCBcCi0gICAgICAgICAgIjAuMTU3MDQ5LCAwLjE2NzU2NiwgMC4yNjIzNCwgMC40MjAwOTIsIDAuNTc3OTA2LCAwLjk0NjI3NCwgMS4xNTY2MSIsIFwKLSAgICAgICAgICAiMC4xNjI1LCAwLjE3MzAyLCAwLjI2Nzc0MSwgMC40MjU1MjUsIDAuNTgzNDAyLCAwLjk1MTY0MSwgMS4xNjIyNCIsIFwKLSAgICAgICAgICAiMC4xNjk5MDEsIDAuMTgwMzUsIDAuMjc1MTgsIDAuNDMyOTQsIDAuNTkwNzcyLCAwLjk1OTA0NiwgMS4xNjk0NSIsIFwKLSAgICAgICAgICAiMC4xNzUzOTEsIDAuMTg1ODk5LCAwLjI4MDY2NCwgMC40Mzg0MTcsIDAuNTk2MjI4LCAwLjk2NDYyLCAxLjE3NTE0Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExNjA5OSwgMC4xMzgzNCwgMC4zMzc5NjMsIDAuNjcwNDExLCAxLjAwMjA1LCAxLjc3NjM3LCAyLjIxNzYyIiwgXAotICAgICAgICAgICIwLjExNjA5OSwgMC4xMzgyMTcsIDAuMzM3OTQ2LCAwLjY3MDQxMiwgMS4wMDI5NCwgMS43NzYzNywgMi4yMjIyNSIsIFwKLSAgICAgICAgICAiMC4xMTYxLCAwLjEzODM0NSwgMC4zMzc5NzQsIDAuNjcwNDE1LCAxLjAwMjkyLCAxLjc3NjA4LCAyLjIxOTE0IiwgXAotICAgICAgICAgICIwLjExNjEsIDAuMTM4MjE5LCAwLjMzNzk1NCwgMC42NzA0MTMsIDEuMDAyOTUsIDEuNzc2MzQsIDIuMjIyMjYiLCBcCi0gICAgICAgICAgIjAuMTE2MDk0LCAwLjEzODIyMSwgMC4zMzc1NSwgMC42NzA1NCwgMS4wMDI5NSwgMS43NzU4MywgMi4yMTkwMiIsIFwKLSAgICAgICAgICAiMC4xMTYxOTksIDAuMTM4MzMxLCAwLjMzNzU3OCwgMC42NzA0MDEsIDEuMDAyOTQsIDEuNzc3MzcsIDIuMjE5MTMiLCBcCi0gICAgICAgICAgIjAuMTE1OTg1LCAwLjEzODEzNCwgMC4zMzczODksIDAuNjcwMzIzLCAxLjAwMTkyLCAxLjc3NjQ4LCAyLjIxOTE3Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEyMDAyNiwgMC4xMjk2NzEsIDAuMjE2NSwgMC4zNjExOTIsIDAuNTA1ODgyLCAwLjg0MzQ2NywgMS4wMzYyOCIsIFwKLSAgICAgICAgICAiMC4xMjgxMDgsIDAuMTM3NzUzLCAwLjIyNDU4MiwgMC4zNjkyNywgMC41MTM5NTcsIDAuODUxNTYyLCAxLjA0NDMzIiwgXAotICAgICAgICAgICIwLjEzNjg3MywgMC4xNDY1MTcsIDAuMjMzMzUsIDAuMzc4MDM0LCAwLjUyMjcyLCAwLjg2MDMzLCAxLjA1MzExIiwgXAotICAgICAgICAgICIwLjE0MzczMiwgMC4xNTMzNzgsIDAuMjQwMTksIDAuMzg0OTA4LCAwLjUyOTU2OCwgMC44NjcwODgsIDEuMDYwMTUiLCBcCi0gICAgICAgICAgIjAuMTQ5MTQ0LCAwLjE1ODc4MSwgMC4yNDU2MDEsIDAuMzkwMjk4LCAwLjUzNDk4NSwgMC44NzI2MTUsIDEuMDY1NTIiLCBcCi0gICAgICAgICAgIjAuMTU2MzA5LCAwLjE2NTk1MSwgMC4yNTI4MDMsIDAuMzk3NDcsIDAuNTQyMTU2LCAwLjg3OTc1MSwgMS4wNzI2MSIsIFwKLSAgICAgICAgICAiMC4xNjE4MTUsIDAuMTcxNDU1LCAwLjI1ODI1MSwgMC40MDI5NjQsIDAuNTQ3Njc0LCAwLjg4NTE4NiwgMS4wNzgxNSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDM5NDEsIDAuMTIzNzEyLCAwLjMwMjIxOSwgMC41OTk3MjYsIDAuODk3MjM4LCAxLjU5MTM5LCAxLjk4NTQxIiwgXAotICAgICAgICAgICIwLjEwMzkzOSwgMC4xMjM3MTEsIDAuMzAyMjE1LCAwLjU5OTcwNiwgMC44OTcxOTcsIDEuNTkxNDIsIDEuOTg3NDkiLCBcCi0gICAgICAgICAgIjAuMTAzOTM5LCAwLjEyMzcxLCAwLjMwMjIzMSwgMC41OTk3MDYsIDAuODk3MjAyLCAxLjU5MTQ1LCAxLjk4NzYyIiwgXAotICAgICAgICAgICIwLjEwMzg0OCwgMC4xMjM3MTYsIDAuMzAyMDY2LCAwLjU5OTc2MiwgMC44OTcxODgsIDEuNTkxMTIsIDEuOTgzODIiLCBcCi0gICAgICAgICAgIjAuMTAzODA4LCAwLjEyMzcwNywgMC4zMDIxOTcsIDAuNTk5NzE0LCAwLjg5NzI0OSwgMS41ODgsIDEuOTg4MjYiLCBcCi0gICAgICAgICAgIjAuMTAzOTA4LCAwLjEyMzY4LCAwLjMwMTQ2NywgMC41OTk3MzYsIDAuODk3MjY3LCAxLjU5MTQ2LCAxLjk4NDQyIiwgXAotICAgICAgICAgICIwLjEwMzcxNywgMC4xMjM0ODksIDAuMzAyMDM2LCAwLjU5OTY5MywgMC44OTcyNzYsIDEuNTg5NDQsIDEuOTg4MDYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0NTk5LCAwLjAwNDYwMSwgMC4wMDQ2MDUsIDAuMDA0NjA3LCAwLjAwNDYwOCwgMC4wMDQ2MDgsIDAuMDA0NjEiLCBcCi0gICAgICAgICAgIjAuMDA0NTk5LCAwLjAwNDYsIDAuMDA0NjA1LCAwLjAwNDYwNywgMC4wMDQ2MDgsIDAuMDA0NjA4LCAwLjAwNDYwOSIsIFwKLSAgICAgICAgICAiMC4wMDQ2NDQsIDAuMDA0NjQ1LCAwLjAwNDY1LCAwLjAwNDY1MiwgMC4wMDQ2NTIsIDAuMDA0NjUyLCAwLjAwNDY1MyIsIFwKLSAgICAgICAgICAiMC4wMDQ3MTEsIDAuMDA0NzEyLCAwLjAwNDcxNiwgMC4wMDQ3MTgsIDAuMDA0NzE5LCAwLjAwNDcxOSwgMC4wMDQ3MiIsIFwKLSAgICAgICAgICAiMC4wMDQ3ODIsIDAuMDA0Nzg0LCAwLjAwNDc4OCwgMC4wMDQ3ODksIDAuMDA0Nzg5LCAwLjAwNDc5LCAwLjAwNDc5IiwgXAotICAgICAgICAgICIwLjAwNDkwNCwgMC4wMDQ5MDcsIDAuMDA0OTA4LCAwLjAwNDkwOSwgMC4wMDQ5MDksIDAuMDA0OTEsIDAuMDA0OTEiLCBcCi0gICAgICAgICAgIjAuMDA0OTk1LCAwLjAwNDk5NiwgMC4wMDQ5OTksIDAuMDA0OTk5LCAwLjAwNDk5OSwgMC4wMDQ5OTksIDAuMDA0OTk5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0NTg2LCAwLjAwNDU4MywgMC4wMDQ1NjgsIDAuMDA0NTYsIDAuMDA0NTU2LCAwLjAwNDU1MywgMC4wMDQ1NTMiLCBcCi0gICAgICAgICAgIjAuMDA0NTc3LCAwLjAwNDU3NCwgMC4wMDQ1NiwgMC4wMDQ1NTEsIDAuMDA0NTQ4LCAwLjAwNDU0NCwgMC4wMDQ1NDQiLCBcCi0gICAgICAgICAgIjAuMDA0NjI5LCAwLjAwNDYyNywgMC4wMDQ2MTIsIDAuMDA0NjAzLCAwLjAwNDU5OSwgMC4wMDQ1OTUsIDAuMDA0NTk1IiwgXAotICAgICAgICAgICIwLjAwNDY3NiwgMC4wMDQ2NzQsIDAuMDA0NjU5LCAwLjAwNDY0OSwgMC4wMDQ2NDUsIDAuMDA0NjQyLCAwLjAwNDY0MSIsIFwKLSAgICAgICAgICAiMC4wMDQ3NDcsIDAuMDA0NzQ0LCAwLjAwNDczLCAwLjAwNDcyMSwgMC4wMDQ3MTYsIDAuMDA0NzEyLCAwLjAwNDcxMSIsIFwKLSAgICAgICAgICAiMC4wMDQ4MzYsIDAuMDA0ODM1LCAwLjAwNDgyMSwgMC4wMDQ4MSwgMC4wMDQ4MDYsIDAuMDA0ODAxLCAwLjAwNDgiLCBcCi0gICAgICAgICAgIjAuMDA0OTQyLCAwLjAwNDk0LCAwLjAwNDkyNCwgMC4wMDQ5MTUsIDAuMDA0OTEsIDAuMDA0OTA1LCAwLjAwNDkwMyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oU0UpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTQxNDIzOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTQxNDIzOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTQxNDA3OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNDk1NywgMC4wMDQ5NzYsIDAuMDA1MDU5LCAwLjAwNTE3MywgMC4wMDUzMzMsIDAuMDA1NTUzLCAwLjAwNTc1OCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNjYzMywgMC4wMDY2NjQsIDAuMDA2NzkyLCAwLjAwNjk2NywgMC4wMDcxOTEsIDAuMDA3NTczLCAwLjAwNzkyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEJlNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9TSV9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAyNSwgLTAuMDIsIC0wLjAyLCAtMC4wMTM3NSwgLTAuMDEzNzUsIC0wLjAxLCAtMC4wMDc1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDE1LCAtMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzc1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDMxMjUsIC0wLjAyNzUsIC0wLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzNzUsIC0wLjAzMzc1LCAtMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDYxMjUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wNCwgLTAuMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDcxMjUsIC0wLjA2NjI1LCAtMC4wNiwgLTAuMDUzNzUsIC0wLjA1Mzc1LCAtMC4wNSwgLTAuMDQ3NSIsIFwKLSAgICAgICAgICAiLTAuMDczNzUsIC0wLjA2ODc1LCAtMC4wNjg3NSwgLTAuMDYyNSwgLTAuMDYyNSwgLTAuMDU4NzUsIC0wLjA1NjI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDA2MjUsIC0wLjAwMTI1LCAwLjAwNSwgMC4wMTEyNSwgMC4wMTc1LCAwLjAyMTI1LCAwLjAyMzc1IiwgXAotICAgICAgICAgICItMC4wMTc1LCAtMC4wMDYyNSwgMCwgMC4wMDYyNSwgMC4wMDYyNSwgMC4wMTYyNSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMCwgMC4wMDM3NSwgMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIC0wLjAwMjUsIDAiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA4NzUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wNDYyNSwgLTAuMDM1LCAtMC4wMjg3NSwgLTAuMDI4NzUsIC0wLjAyMjUsIC0wLjAxODc1LCAtMC4wMSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDMxMjUsIC0wLjAyMTI1LCAtMC4wMTg3NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJEJiFTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzFfQU5fU0lfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMTg3NSwgLTAuMDA3NSwgLTAuMDAxMjUsIDAuMDA1LCAwLjAwNSwgMC4wMTUsIDAuMDE3NSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMCwgMC4wMDM3NSwgMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIC0wLjAwMjUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMTI1LCAtMC4wMDI1LCAwIiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwODc1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDQsIC0wLjAzNSwgLTAuMDI4NzUsIC0wLjAyMjUsIC0wLjAxNjI1LCAtMC4wMTI1LCAtMC4wMSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAyNSwgLTAuMDE1LCAtMC4wMTI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDM3NSwgLTAuMDMyNSwgLTAuMDI2MjUsIC0wLjAyNjI1LCAtMC4wMjYyNSwgLTAuMDIyNSwgLTAuMDIiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzNzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMzEyNSwgLTAuMDI3NSwgLTAuMDI1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDQzNzUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzc1LCAtMC4wMzM3NSwgLTAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjA1NSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDMzNzUsIC0wLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjA0Mzc1LCAtMC4wNCwgLTAuMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDY1LCAtMC4wNTM3NSwgLTAuMDUzNzUsIC0wLjA0NzUsIC0wLjA0NzUsIC0wLjA0Mzc1LCAtMC4wNDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDY3NSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNSwgLTAuMDQ2MjUsIC0wLjA0Mzc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRCZTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fU0lfRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNSwgMC4wMzg3NSwgMC4wMzI1LCAwLjAzMjUsIDAuMDI2MjUsIDAuMDIyNSwgMC4wMiIsIFwKLSAgICAgICAgICAiMC4wNTUsIDAuMDUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzc1LCAwLjAzMzc1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDU2MjUsIDAuMDUsIDAuMDUsIDAuMDQzNzUsIDAuMDQsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiMC4wNzM3NSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1NjI1LCAwLjA1MjUsIDAuMDUiLCBcCi0gICAgICAgICAgIjAuMDgsIDAuMDc1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDYyNSwgMC4wNTg3NSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiMC4wOSwgMC4wODUsIDAuMDc4NzUsIDAuMDcyNSwgMC4wNzI1LCAwLjA2ODc1LCAwLjA2NjI1IiwgXAotICAgICAgICAgICIwLjA5ODc1LCAwLjA5Mzc1LCAwLjA4NzUsIDAuMDgxMjUsIDAuMDgxMjUsIDAuMDc3NSwgMC4wNzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzc1LCAwLjAyNjI1LCAwLjAyLCAwLjAxMzc1LCAwLjAwNzUsIDAuMDAzNzUsIC0wLjAwNSIsIFwKLSAgICAgICAgICAiMC4wNDI1LCAwLjAzNzUsIDAuMDI1LCAwLjAxODc1LCAwLjAxMjUsIDAuMDA4NzUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMDU1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDI1LCAwLjAxNSwgMC4wMTI1IiwgXAotICAgICAgICAgICIwLjA2MTI1LCAwLjA1NjI1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDI3NSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4wNjc1LCAwLjA2MjUsIDAuMDUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzM3NSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4wNzc1LCAwLjA3MjUsIDAuMDYsIDAuMDUzNzUsIDAuMDQ3NSwgMC4wNDM3NSwgMC4wNDEyNSIsIFwKLSAgICAgICAgICAiMC4wODYyNSwgMC4wNzUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNTI1LCAwLjA0Mzc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJEJiFTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzFfQU5fU0lfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDM3NSwgMC4wMzg3NSwgMC4wMjYyNSwgMC4wMiwgMC4wMiwgMC4wMSwgMC4wMDc1IiwgXAotICAgICAgICAgICIwLjA1NSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMTUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4wNjEyNSwgMC4wNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyMTI1LCAwLjAxODc1IiwgXAotICAgICAgICAgICIwLjA2MTI1LCAwLjA1NjI1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDM3NSwgMC4wMjc1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiMC4wNjc1LCAwLjA1NjI1LCAwLjA1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDMzNzUsIDAuMDI1IiwgXAotICAgICAgICAgICIwLjA3MTI1LCAwLjA2LCAwLjA1Mzc1LCAwLjA0NzUsIDAuMDQxMjUsIDAuMDM3NSwgMC4wMjg3NSIsIFwKLSAgICAgICAgICAiMC4wNzM3NSwgMC4wNjg3NSwgMC4wNTYyNSwgMC4wNSwgMC4wNDM3NSwgMC4wNCwgMC4wMzEyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1NjI1LCAwLjA1MTI1LCAwLjA0NSwgMC4wNDUsIDAuMDM4NzUsIDAuMDM1LCAwLjAzMjUiLCBcCi0gICAgICAgICAgIjAuMDY3NSwgMC4wNTYyNSwgMC4wNSwgMC4wNSwgMC4wNDM3NSwgMC4wNCwgMC4wMzc1IiwgXAotICAgICAgICAgICIwLjA3Mzc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDU2MjUsIDAuMDUsIDAuMDQ2MjUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMDczNzUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNTYyNSwgMC4wNTI1LCAwLjA1IiwgXAotICAgICAgICAgICIwLjA4LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNTI1LCAwLjA1IiwgXAotICAgICAgICAgICIwLjA4Mzc1LCAwLjA3MjUsIDAuMDY2MjUsIDAuMDY2MjUsIDAuMDYsIDAuMDU2MjUsIDAuMDUzNzUiLCBcCi0gICAgICAgICAgIjAuMDg2MjUsIDAuMDgxMjUsIDAuMDc1LCAwLjA2ODc1LCAwLjA2ODc1LCAwLjA2NSwgMC4wNjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTSSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNzI2NzIxOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDcyNTU0OTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA3MjY3MjE7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzMTMsIDAuMDAzMTA4LCAwLjAwMzE0MSwgMC4wMDMxOCwgMC4wMDMyNTcsIDAuMDAzMzczLCAwLjAwMzQ5OSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNTQ2NiwgMC4wMDU0NTEsIDAuMDA1NDc2LCAwLjAwNTUyMiwgMC4wMDU1NzgsIDAuMDA1Njk1LCAwLjAwNTgxNyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJTRSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMzEyNSwgLTAuMDI2MjUsIC0wLjAyLCAtMC4wMiwgLTAuMDEzNzUsIC0wLjAxLCAtMC4wMDc1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDI1LCAtMC4wMjUsIC0wLjAyMTI1LCAtMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDM3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAzMTI1LCAtMC4wMjc1LCAtMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wNDM3NSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzNzUsIC0wLjAzMzc1LCAtMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wNDM3NSwgLTAuMDQsIC0wLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjA2NSwgLTAuMDYsIC0wLjA1Mzc1LCAtMC4wNTM3NSwgLTAuMDUzNzUsIC0wLjA1LCAtMC4wNDc1IiwgXAotICAgICAgICAgICItMC4wNzM3NSwgLTAuMDY4NzUsIC0wLjA2MjUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNTI1LCAtMC4wNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAxMjUsIC0wLjAwNzUsIDAuMDA1LCAwLjAwNSwgMC4wMTEyNSwgMC4wMTUsIDAuMDIzNzUiLCBcCi0gICAgICAgICAgIi0wLjAxNzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLCAwLjAwNjI1LCAwLjAxLCAwLjAxODc1IiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLCAwLjAwMzc1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgLTAuMDAyNSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAxMjUsIC0wLjAwMjUsIDAiLCBcCi0gICAgICAgICAgIi0wLjA0LCAtMC4wMzUsIC0wLjAyODc1LCAtMC4wMjI1LCAtMC4wMTYyNSwgLTAuMDEyNSwgLTAuMDEiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAyNSwgLTAuMDE1LCAtMC4wMTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJTRSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNSwgMC4wNDUsIDAuMDM4NzUsIDAuMDMyNSwgMC4wMzI1LCAwLjAyODc1LCAwLjAyNjI1IiwgXAotICAgICAgICAgICIwLjA1NSwgMC4wNSwgMC4wNDM3NSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzMzc1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDU2MjUsIDAuMDUsIDAuMDUsIDAuMDQzNzUsIDAuMDQsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiMC4wNzM3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1NjI1LCAwLjA1LCAwLjA0NjI1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjA4LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNTI1LCAwLjA1IiwgXAotICAgICAgICAgICIwLjA5LCAwLjA3ODc1LCAwLjA3MjUsIDAuMDcyNSwgMC4wNjYyNSwgMC4wNjI1LCAwLjA2IiwgXAotICAgICAgICAgICIwLjA5MjUsIDAuMDg3NSwgMC4wODEyNSwgMC4wNzUsIDAuMDc1LCAwLjA3MTI1LCAwLjA2ODc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM3NSwgMC4wMzI1LCAwLjAyNjI1LCAwLjAyLCAwLjAxMzc1LCAwLjAwMzc1LCAwLjAwMTI1IiwgXAotICAgICAgICAgICIwLjA0ODc1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDI1LCAwLjAxODc1LCAwLjAwODc1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICIwLjA1NSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMTUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4wNjEyNSwgMC4wNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyMTI1LCAwLjAxODc1IiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDU2MjUsIDAuMDUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMjc1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiMC4wNzEyNSwgMC4wNjYyNSwgMC4wNTM3NSwgMC4wNDc1LCAwLjA0MTI1LCAwLjAzNzUsIDAuMDM1IiwgXAotICAgICAgICAgICIwLjA4LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDUsIDAuMDQsIDAuMDM3NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IFRCVUZYMTIgKgotICogLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoVEJVRlgxMikgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAyLjI2MjU1OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDU5MTE0MTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDU5MDU7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDA1OTExNDE7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzMDM0LCAwLjAwMzEyOCwgMC4wMDMxNDIsIDAuMDAzMTQ2LCAwLjAwMzE0OSwgMC4wMDMxNTIsIDAuMDAzMTUzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzMjk5LCAwLjAwMzI0NCwgMC4wMDMyMzUsIDAuMDAzMjMxLCAwLjAwMzIyOCwgMC4wMDMyMjUsIDAuMDAzMjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihPRSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAzNjA0MzU7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAzNjAzODc7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAzNjA0MzU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHNjYWxhcikgewotICAgICAgICB2YWx1ZXMoIjAiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMTQ3MTQsIDAuMDE0NzAxLCAwLjAxNDkzLCAwLjAxNTM3MSwgMC4wMTU5MjIsIDAuMDE2OTQ4LCAwLjAxNzc4OCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDY0MjI5ODsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDY0MjI5ODsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDY0MTQ2ODsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiA0LjEyMTczOwotICAgIGZ1bmN0aW9uIDogIkEiOwotICAgIHRocmVlX3N0YXRlIDogIighT0UpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxNjQyMywgMC4wMjI0MjMsIDAuMDU2NDIzLCAwLjA4NjQyMywgMC4xMjY0MjMsIDAuMjA2NDIzLCAwLjI1NjQyMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDMxMjc0LCAwLjAzMzc2NiwgMC4wNDUxMzEsIDAuMDUzNzI4LCAwLjA2NDU1OCwgMC4wODU1NzgsIDAuMDk4NTkiLCBcCi0gICAgICAgICAgIjAuMDM3MzE0LCAwLjAzOTgxOCwgMC4wNTExODksIDAuMDU5ODE1LCAwLjA3MDY3MSwgMC4wOTE3MDIsIDAuMTA0NzE1IiwgXAotICAgICAgICAgICIwLjA0MzgzNywgMC4wNDY0NDUsIDAuMDU4MDI4LCAwLjA2NjcxNSwgMC4wNzc2MDMsIDAuMDk4NjU3LCAwLjExMTY4MiIsIFwKLSAgICAgICAgICAiMC4wNDkwOTgsIDAuMDUxNzM4LCAwLjA2MzY2MiwgMC4wNzI0OCwgMC4wODM0MzUsIDAuMTA0NTQsIDAuMTE3NTY0IiwgXAotICAgICAgICAgICIwLjA1MzQ4NCwgMC4wNTYyNzEsIDAuMDY4NDg0LCAwLjA3NzM5NSwgMC4wODg0NTksIDAuMTA5NjMzLCAwLjEyMjY2OSIsIFwKLSAgICAgICAgICAiMC4wNTk0MzgsIDAuMDYyNDQ1LCAwLjA3NTE2NCwgMC4wODQyNTksIDAuMDk1NDMyLCAwLjExNjY3MiwgMC4xMjk3NDUiLCBcCi0gICAgICAgICAgIjAuMDY0MDEzLCAwLjA2NzE0MiwgMC4wODAyNzQsIDAuMDg5NTM5LCAwLjEwMDgyNywgMC4xMjIxNTEsIDAuMTM1MjEiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMTY0MjMsIDAuMDIyNDIzLCAwLjA1NjQyMywgMC4wODY0MjMsIDAuMTI2NDIzLCAwLjIwNjQyMywgMC4yNTY0MjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxNjIyNiwgMC4wMTk3MTQsIDAuMDM3ODYyLCAwLjA1MzQ4NiwgMC4wNzQ1MzQsIDAuMTE3MTMyLCAwLjE0MzkzNiIsIFwKLSAgICAgICAgICAiMC4wMTY0NzEsIDAuMDE5ODkxLCAwLjAzNzkyOSwgMC4wNTM1NjIsIDAuMDc0NTE5LCAwLjExNzE0NywgMC4xNDQwNCIsIFwKLSAgICAgICAgICAiMC4wMTc2MDksIDAuMDIwODYyLCAwLjAzODU5NiwgMC4wNTQwOTIsIDAuMDc0OTM2LCAwLjExNzM3NSwgMC4xNDQwODMiLCBcCi0gICAgICAgICAgIjAuMDE4NiwgMC4wMjIwMjksIDAuMDM5NjM2LCAwLjA1NDg4MiwgMC4wNzU2MTUsIDAuMTE3ODI3LCAwLjE0NDU4NiIsIFwKLSAgICAgICAgICAiMC4wMTk2MDUsIDAuMDIzMDY3LCAwLjA0MDU1NywgMC4wNTU3ODIsIDAuMDc2MjU0LCAwLjExODIwOCwgMC4xNDQ5NTciLCBcCi0gICAgICAgICAgIjAuMDIxMzAzLCAwLjAyNDU5MSwgMC4wNDE5ODcsIDAuMDU3MDA5LCAwLjA3NzMwMSwgMC4xMTkwMTMsIDAuMTQ1NDQ5IiwgXAotICAgICAgICAgICIwLjAyMjUwNywgMC4wMjU5MzgsIDAuMDQzMjUyLCAwLjA1ODEyLCAwLjA3ODMxNiwgMC4xMTk3NjQsIDAuMTQ2MDk3Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDE2NDE0NywgMC4wMjI0MTQ3LCAwLjA1NjQxNDcsIDAuMDg2NDE0NywgMC4xMjY0MTUsIDAuMjA2NDE1LCAwLjI1NjQxNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDI4NDkxLCAwLjAzMDgyOCwgMC4wNDE3MjEsIDAuMDUwMTcxLCAwLjA2MDk1MiwgMC4wODIwMjEsIDAuMDk1MTAxIiwgXAotICAgICAgICAgICIwLjAzMzg2NSwgMC4wMzYxNjcsIDAuMDQ2OTksIDAuMDU1NDM1LCAwLjA2NjIxOSwgMC4wODcyOTcsIDAuMTAwMzgxIiwgXAotICAgICAgICAgICIwLjAzOTEzLCAwLjA0MTQ3MSwgMC4wNTIzODIsIDAuMDYwODcsIDAuMDcxNjY3LCAwLjA5Mjc0LCAwLjEwNTgyMSIsIFwKLSAgICAgICAgICAiMC4wNDMyNDcsIDAuMDQ1NTI4LCAwLjA1NjU4NiwgMC4wNjUxMzMsIDAuMDc2MDIsIDAuMDk3MTQsIDAuMTEwMjE3IiwgXAotICAgICAgICAgICIwLjA0NjY2NSwgMC4wNDg5NTcsIDAuMDYwMDYsIDAuMDY4NzE4LCAwLjA3OTYxOCwgMC4xMDA3NjQsIDAuMTEzODYiLCBcCi0gICAgICAgICAgIjAuMDUxMjgsIDAuMDUzNjQ4LCAwLjA2NDg5OCwgMC4wNzM1NzEsIDAuMDg0NTc2LCAwLjEwNTc0NCwgMC4xMTg4MjkiLCBcCi0gICAgICAgICAgIjAuMDU0NzMsIDAuMDU3MTY0LCAwLjA2ODY0NSwgMC4wNzc0NzUsIDAuMDg4NDU2LCAwLjEwOTcwNiwgMC4xMjI3OTEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMTY0MTQ3LCAwLjAyMjQxNDcsIDAuMDU2NDE0NywgMC4wODY0MTQ3LCAwLjEyNjQxNSwgMC4yMDY0MTUsIDAuMjU2NDE1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTQ2ODgsIDAuMDE3OTc5LCAwLjAzNTgyNywgMC4wNTE0NCwgMC4wNzI0NDEsIDAuMTE0OTksIDAuMTQxOTEzIiwgXAotICAgICAgICAgICIwLjAxNDgzNywgMC4wMTgxNjcsIDAuMDM1OTQ5LCAwLjA1MTUyNCwgMC4wNzI0OTIsIDAuMTE0OTk0LCAwLjE0MTkyOSIsIFwKLSAgICAgICAgICAiMC4wMTU2NzYsIDAuMDE5MDg4LCAwLjAzNjcyOCwgMC4wNTIxNTksIDAuMDcyOTg5LCAwLjExNTI5NywgMC4xNDIxMzYiLCBcCi0gICAgICAgICAgIjAuMDE2NTM1LCAwLjAxOTg4NiwgMC4wMzc1ODUsIDAuMDUyODMyLCAwLjA3MzUyNiwgMC4xMTU3NDQsIDAuMTQyMzg2IiwgXAotICAgICAgICAgICIwLjAxNzUwMywgMC4wMjA3MjcsIDAuMDM4MjYsIDAuMDUzNTI0LCAwLjA3NDE4NywgMC4xMTYxMiwgMC4xNDI3MTIiLCBcCi0gICAgICAgICAgIjAuMDE4ODQ0LCAwLjAyMTk5MywgMC4wMzk1NDMsIDAuMDU0NTkzLCAwLjA3NTA1MiwgMC4xMTY4NDUsIDAuMTQzMTUzIiwgXAotICAgICAgICAgICIwLjAxOTkwMiwgMC4wMjMxODEsIDAuMDQwNTM3LCAwLjA1NTUyNiwgMC4wNzU3ODcsIDAuMTE3NTgsIDAuMTQzODg3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIk9FIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiB0aHJlZV9zdGF0ZV9lbmFibGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDE2NDIzLCAwLjAyMjQyMywgMC4wNTY0MjMsIDAuMDg2NDIzLCAwLjEyNjQyMywgMC4yMDY0MjMsIDAuMjU2NDIzIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjk1NCwgMC4wMzIwMTgsIDAuMDQzMzM0LCAwLjA1MTkyNSwgMC4wNjI3NiwgMC4wODM3NzUsIDAuMDk2NzgzIiwgXAotICAgICAgICAgICIwLjAzNjk5MywgMC4wMzk1MDIsIDAuMDUwODE4LCAwLjA1OTQyOSwgMC4wNzAyNjUsIDAuMDkxMjgyLCAwLjEwNDI4OCIsIFwKLSAgICAgICAgICAiMC4wNDU0NzIsIDAuMDQ4MDczLCAwLjA1OTY3MiwgMC4wNjgzMiwgMC4wNzkyLCAwLjEwMDIyMiwgMC4xMTMyMzciLCBcCi0gICAgICAgICAgIjAuMDUxNzYsIDAuMDU0NTI4LCAwLjA2NjU2MiwgMC4wNzUzNzksIDAuMDg2Mjk3LCAwLjEwNzM2NiwgMC4xMjAzNzQiLCBcCi0gICAgICAgICAgIjAuMDU3MDcyLCAwLjA2MDAxNCwgMC4wNzI0MzIsIDAuMDgxMzI0LCAwLjA5MjM2MSwgMC4xMTM1MTEsIDAuMTI2NTQxIiwgXAotICAgICAgICAgICIwLjA2Mzk0NCwgMC4wNjcxNjQsIDAuMDgwMjI3LCAwLjA4OTM4MiwgMC4xMDA1MiwgMC4xMjE3MjQsIDAuMTM0Nzc5IiwgXAotICAgICAgICAgICIwLjA2OTE1NiwgMC4wNzI1NjYsIDAuMDg2MjQ1LCAwLjA5NTYxLCAwLjEwNjgzNywgMC4xMjgwNSwgMC4xNDExMjkiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMTY0MjMsIDAuMDIyNDIzLCAwLjA1NjQyMywgMC4wODY0MjMsIDAuMTI2NDIzLCAwLjIwNjQyMywgMC4yNTY0MjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxNjgwNSwgMC4wMjAyNDQsIDAuMDM4MjMzLCAwLjA1Mzc5NCwgMC4wNzQ3MzUsIDAuMTE3MTg5LCAwLjE0NDEwNCIsIFwKLSAgICAgICAgICAiMC4wMTY5ODQsIDAuMDIwNDA2LCAwLjAzODMxMiwgMC4wNTM4MzEsIDAuMDc0NzgxLCAwLjExNzI5NCwgMC4xNDQxMjgiLCBcCi0gICAgICAgICAgIjAuMDE4Mjc5LCAwLjAyMTU0NiwgMC4wMzkxMzIsIDAuMDU0NDY1LCAwLjA3NTE5OSwgMC4xMTc1MjgsIDAuMTQ0MzI0IiwgXAotICAgICAgICAgICIwLjAxOTk3MywgMC4wMjMyMTUsIDAuMDQwNDY3LCAwLjA1NTU0NCwgMC4wNzYwMjksIDAuMTE4MDk1LCAwLjE0NDY3NiIsIFwKLSAgICAgICAgICAiMC4wMjEzNDcsIDAuMDI0NjA3LCAwLjA0MTY0NSwgMC4wNTY2MzgsIDAuMDc2ODQsIDAuMTE4NTc4LCAwLjE0NTI1MSIsIFwKLSAgICAgICAgICAiMC4wMjM3MDEsIDAuMDI2ODQyLCAwLjA0MzU2MSwgMC4wNTgyMTcsIDAuMDc4MjksIDAuMTE5NDkzLCAwLjE0NTg0NSIsIFwKLSAgICAgICAgICAiMC4wMjUzNzMsIDAuMDI4NjYxLCAwLjA0NTEwOCwgMC4wNTk1NDksIDAuMDc5MzU5LCAwLjEyMDQ2MSwgMC4xNDY1OTUiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMTY0MTQ3LCAwLjAyMjQxNDcsIDAuMDU2NDE0NywgMC4wODY0MTQ3LCAwLjEyNjQxNSwgMC4yMDY0MTUsIDAuMjU2NDE1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDE3MjEsIDAuMDQ0MDU2LCAwLjA1NDg5NywgMC4wNjMzMzEsIDAuMDc0MDk3LCAwLjA5NTEzOSwgMC4xMDgyMDQiLCBcCi0gICAgICAgICAgIjAuMDQ5OTcxLCAwLjA1MjI2OCwgMC4wNjMxNDksIDAuMDcxNTg3LCAwLjA4MjM0NywgMC4xMDMzOSwgMC4xMTY0NTciLCBcCi0gICAgICAgICAgIjAuMDU4NzEzLCAwLjA2MTA1MiwgMC4wNzE5MzIsIDAuMDgwMzU1LCAwLjA5MTExNSwgMC4xMTIxNTMsIDAuMTI1MjI3IiwgXAotICAgICAgICAgICIwLjA2NTMwNSwgMC4wNjc2MjMsIDAuMDc4NTM0LCAwLjA4Njk2NiwgMC4wOTc3NDcsIDAuMTE4Nzk1LCAwLjEzMTg2MiIsIFwKLSAgICAgICAgICAiMC4wNzA3NiwgMC4wNzMxMSwgMC4wODQwNjEsIDAuMDkyNTM2LCAwLjEwMzMyNiwgMC4xMjQzNywgMC4xMzc0NDUiLCBcCi0gICAgICAgICAgIjAuMDc3OTQ1LCAwLjA4MDM0NiwgMC4wOTEzMzMsIDAuMDk5ODE1LCAwLjExMDYxNiwgMC4xMzE2NzIsIDAuMTQ0NzQ4IiwgXAotICAgICAgICAgICIwLjA4MzI3NywgMC4wODU2MTYsIDAuMDk2NywgMC4xMDUyMDgsIDAuMTE2MDI0LCAwLjEzNzA4MiwgMC4xNTAxNDciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMTY0MTQ3LCAwLjAyMjQxNDcsIDAuMDU2NDE0NywgMC4wODY0MTQ3LCAwLjEyNjQxNSwgMC4yMDY0MTUsIDAuMjU2NDE1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTUyNywgMC4wMTg1NzIsIDAuMDM2MjgsIDAuMDUxNzQ2LCAwLjA3MjY0OSwgMC4xMTUwNjgsIDAuMTQyMDIzIiwgXAotICAgICAgICAgICIwLjAxNTI3MiwgMC4wMTg1MjgsIDAuMDM2MjgxLCAwLjA1MTc2MywgMC4wNzI2OTQsIDAuMTE1MTYzLCAwLjE0MjAyNSIsIFwKLSAgICAgICAgICAiMC4wMTUzNjcsIDAuMDE4NjcyLCAwLjAzNjM0NywgMC4wNTE4NDIsIDAuMDcyNzE0LCAwLjExNTEyMiwgMC4xNDE4ODIiLCBcCi0gICAgICAgICAgIjAuMDE1NTY2LCAwLjAxODkyMSwgMC4wMzY0MjcsIDAuMDUxOTEsIDAuMDcyNzk0LCAwLjExNTE3OSwgMC4xNDE5NTgiLCBcCi0gICAgICAgICAgIjAuMDE1Njc3LCAwLjAxODg4OSwgMC4wMzY1MTksIDAuMDUxOTIyLCAwLjA3MjgwMSwgMC4xMTUxNDMsIDAuMTQxOTAzIiwgXAotICAgICAgICAgICIwLjAxNTkyNiwgMC4wMTkxOTMsIDAuMDM2NzA4LCAwLjA1MjEwNywgMC4wNzMwMTgsIDAuMTE1MTM5LCAwLjE0MTg3OCIsIFwKLSAgICAgICAgICAiMC4wMTYxNTEsIDAuMDE5NDcxLCAwLjAzNjkyNCwgMC4wNTIyODMsIDAuMDczMDMsIDAuMTE1MzI2LCAwLjE0MTkxOCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJPRSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogdGhyZWVfc3RhdGVfZGlzYWJsZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAzMzcxNywgMC4wNDE5MzEsIDAuMDUwNjQ0LCAwLjA1NzIyMywgMC4wNjI0NSwgMC4wNjkzOCwgMC4wNzQxMzQiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihzY2FsYXIpIHsKLSAgICAgICAgdmFsdWVzKCIwIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMjA2OTMsIDAuMDI4NTk0LCAwLjAzNzIzMiwgMC4wNDMyNTUsIDAuMDQ4MjE3LCAwLjA1NDI3NiwgMC4wNTg3MjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihzY2FsYXIpIHsKLSAgICAgICAgdmFsdWVzKCIwIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMTY0MjMsIDAuMDIyNDIzLCAwLjA1NjQyMywgMC4wODY0MjMsIDAuMTI2NDIzLCAwLjIwNjQyMywgMC4yNTY0MjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxNzcwOSwgMC4wMTc4NDcsIDAuMDE4MTksIDAuMDE4Mjk4LCAwLjAxODM2OSwgMC4wMTg0MywgMC4wMTg0NDkiLCBcCi0gICAgICAgICAgIjAuMDE3MjcyLCAwLjAxNzM5MiwgMC4wMTc3NjYsIDAuMDE3OTE3LCAwLjAxODAyNiwgMC4wMTgxMzEsIDAuMDE4MTc0IiwgXAotICAgICAgICAgICIwLjAxNzYxNiwgMC4wMTc2OTYsIDAuMDE4MDIzLCAwLjAxODE4LCAwLjAxODMwNSwgMC4wMTg0NDEsIDAuMDE4NDg4IiwgXAotICAgICAgICAgICIwLjAxODI4MywgMC4wMTgzMjIsIDAuMDE4NjA3LCAwLjAxODc1OCwgMC4wMTg4ODksIDAuMDE5MDI4LCAwLjAxOTA4NCIsIFwKLSAgICAgICAgICAiMC4wMTkwNzQsIDAuMDE5MTM4LCAwLjAxOTQyNiwgMC4wMTk1NTcsIDAuMDE5Njc0LCAwLjAxOTgxOSwgMC4wMTk4NzUiLCBcCi0gICAgICAgICAgIjAuMDIwNjE4LCAwLjAyMDY0NywgMC4wMjA4NDIsIDAuMDIwOTczLCAwLjAyMTEwNCwgMC4wMjEyNSwgMC4wMjEzMjciLCBcCi0gICAgICAgICAgIjAuMDIyMTUsIDAuMDIyMTY3LCAwLjAyMjMxMiwgMC4wMjI0MiwgMC4wMjI1MzgsIDAuMDIyNjkyLCAwLjAyMjc1NCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDE2NDE0NywgMC4wMjI0MTQ3LCAwLjA1NjQxNDcsIDAuMDg2NDE0NywgMC4xMjY0MTUsIDAuMjA2NDE1LCAwLjI1NjQxNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDMwMDExLCAwLjAzMDE3MywgMC4wMzA2OCwgMC4wMzA4NzMsIDAuMDMxMDA4LCAwLjAzMTEzNSwgMC4wMzExNzciLCBcCi0gICAgICAgICAgIjAuMDMwMjE2LCAwLjAzMDI0NiwgMC4wMzA1NDIsIDAuMDMwNzAzLCAwLjAzMDgzMywgMC4wMzA5NzEsIDAuMDMxMDIiLCBcCi0gICAgICAgICAgIjAuMDMxNTY1LCAwLjAzMTQxMiwgMC4wMzExOTcsIDAuMDMxMjIsIDAuMDMxMjc3LCAwLjAzMTM2OCwgMC4wMzE0IiwgXAotICAgICAgICAgICIwLjAzMzI2OCwgMC4wMzI4OTIsIDAuMDMyMjE4LCAwLjAzMjA4LCAwLjAzMjA0NywgMC4wMzIwNzMsIDAuMDMyMDcxIiwgXAotICAgICAgICAgICIwLjAzNTA1MSwgMC4wMzQ2MTcsIDAuMDMzNDgyLCAwLjAzMzIxMSwgMC4wMzMwODQsIDAuMDMyOTc1LCAwLjAzMjk2NyIsIFwKLSAgICAgICAgICAiMC4wMzc2MDYsIDAuMDM2OTgsIDAuMDM1NzE5LCAwLjAzNTI3NSwgMC4wMzUwMSwgMC4wMzQ3MzcsIDAuMDM0NjkxIiwgXAotICAgICAgICAgICIwLjAzOTkxNCwgMC4wMzkzOSwgMC4wMzc0MjksIDAuMDM2ODc0LCAwLjAzNjUyLCAwLjAzNjI1NywgMC4wMzYxNTQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJPRSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMTY0MjMsIDAuMDIyNDIzLCAwLjA1NjQyMywgMC4wODY0MjMsIDAuMTI2NDIzLCAwLjIwNjQyMywgMC4yNTY0MjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxNjk3MSwgMC4wMTY5NjYsIDAuMDE2OTY5LCAwLjAxNjk2NSwgMC4wMTY5NiwgMC4wMTY5NTksIDAuMDE2OTU4IiwgXAotICAgICAgICAgICIwLjAxNjg4NiwgMC4wMTY4ODQsIDAuMDE2ODg3LCAwLjAxNjg4MSwgMC4wMTY4NzksIDAuMDE2ODc2LCAwLjAxNjg3NyIsIFwKLSAgICAgICAgICAiMC4wMTcyNDQsIDAuMDE3MjM3LCAwLjAxNzIzMiwgMC4wMTcyMywgMC4wMTcyMjksIDAuMDE3MjIzLCAwLjAxNzIxOCIsIFwKLSAgICAgICAgICAiMC4wMTc3NzUsIDAuMDE3Nzc5LCAwLjAxNzc3OCwgMC4wMTc4MDEsIDAuMDE3NzY5LCAwLjAxNzc2LCAwLjAxNzc2NCIsIFwKLSAgICAgICAgICAiMC4wMTgzNzksIDAuMDE4Mzc5LCAwLjAxODM4MywgMC4wMTgzNzUsIDAuMDE4Mzc0LCAwLjAxODM3MywgMC4wMTgzNjEiLCBcCi0gICAgICAgICAgIjAuMDE5NDUyLCAwLjAxOTQ0OSwgMC4wMTk0NDIsIDAuMDE5NDQyLCAwLjAxOTQzOCwgMC4wMTk0MzksIDAuMDE5NDM2IiwgXAotICAgICAgICAgICIwLjAyMDQyMywgMC4wMjA0MTcsIDAuMDIwNDE1LCAwLjAyMDQyLCAwLjAyMDQxNSwgMC4wMjA0MTEsIDAuMDIwNDA3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMTY0MTQ3LCAwLjAyMjQxNDcsIDAuMDU2NDE0NywgMC4wODY0MTQ3LCAwLjEyNjQxNSwgMC4yMDY0MTUsIDAuMjU2NDE1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTU3OTksIDAuMDE1ODAxLCAwLjAxNTgsIDAuMDE1OCwgMC4wMTU4LCAwLjAxNTgwMiwgMC4wMTU4IiwgXAotICAgICAgICAgICIwLjAxNTc4MywgMC4wMTU3ODIsIDAuMDE1NzgzLCAwLjAxNTc4MiwgMC4wMTU3ODQsIDAuMDE1Nzg0LCAwLjAxNTc4NCIsIFwKLSAgICAgICAgICAiMC4wMTU4OTMsIDAuMDE1ODk0LCAwLjAxNTg5NywgMC4wMTU4OTgsIDAuMDE1ODk5LCAwLjAxNTksIDAuMDE1OSIsIFwKLSAgICAgICAgICAiMC4wMTYxMDUsIDAuMDE2MTE3LCAwLjAxNjEwMywgMC4wMTYxMDQsIDAuMDE2MTAzLCAwLjAxNjEwMywgMC4wMTYxMDQiLCBcCi0gICAgICAgICAgIjAuMDE2MjgsIDAuMDE2MjgyLCAwLjAxNjI3OSwgMC4wMTYyOCwgMC4wMTYyNzksIDAuMDE2MjgsIDAuMDE2Mjc3IiwgXAotICAgICAgICAgICIwLjAxNjczNiwgMC4wMTY3MzYsIDAuMDE2NzM3LCAwLjAxNjc0LCAwLjAxNjczNywgMC4wMTY3MzYsIDAuMDE2NzM2IiwgXAotICAgICAgICAgICIwLjAxNjkwOCwgMC4wMTY5MDgsIDAuMDE2OTA3LCAwLjAxNjkwOCwgMC4wMTY5MTEsIDAuMDE2OTA5LCAwLjAxNjkwOCIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IFRCVUZYMjAgKgotICogLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoVEJVRlgyMCkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAzLjcxOTk3OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDk0Nzg4MjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDk0NjQ2MTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDk0Nzg4MjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDUwMzQsIDAuMDA1MTg4LCAwLjAwNTIxMSwgMC4wMDUyMTYsIDAuMDA1MjIxLCAwLjAwNTIyNiwgMC4wMDUyMjgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDU0NzEsIDAuMDA1MzgsIDAuMDA1MzY1LCAwLjAwNTM1OSwgMC4wMDUzNTQsIDAuMDA1MzUsIDAuMDA1MzQ5Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihPRSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDA1OTEzNzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDU5MTI2NTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDU5MTM3OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihzY2FsYXIpIHsKLSAgICAgICAgdmFsdWVzKCIwIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDIxNzQxLCAwLjAyMTgyOSwgMC4wMjIyODIsIDAuMDIzMDYyLCAwLjAyNDEzMSwgMC4wMjU5MDQsIDAuMDI3Mzc4Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAxMDM4MTc7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDEwMzgxNzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMTAzNzA4OwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDYuNzc0MTQ7Ci0gICAgZnVuY3Rpb24gOiAiQSI7Ci0gICAgdGhyZWVfc3RhdGUgOiAiKCFPRSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDIwMzgxNywgMC4wNzAzODE3LCAwLjExMDM4MiwgMC4xNjAzODIsIDAuMjEwMzgyLCAwLjI2MDM4MiwgMC4zMTAzODIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyOTQzNSwgMC4wNDEzMzIsIDAuMDQ4OTI2LCAwLjA1NzcyNiwgMC4wNjYxNTksIDAuMDc0NDIxLCAwLjA4MjYxNyIsIFwKLSAgICAgICAgICAiMC4wMzU1NDYsIDAuMDQ3NDUsIDAuMDU1MDc0LCAwLjA2Mzg4NCwgMC4wNzIzMTcsIDAuMDgwNTk1LCAwLjA4ODc5NSIsIFwKLSAgICAgICAgICAiMC4wNDE5MzEsIDAuMDU0MTQ5LCAwLjA2MTg0NiwgMC4wNzA2OTUsIDAuMDc5MTc3LCAwLjA4NzQ2NiwgMC4wOTU2NjUiLCBcCi0gICAgICAgICAgIjAuMDQ2OTU5LCAwLjA1OTU3NywgMC4wNjczOTUsIDAuMDc2MzQ4LCAwLjA4NDg2NCwgMC4wOTMxODEsIDAuMTAxNDA0IiwgXAotICAgICAgICAgICIwLjA1MTIyOCwgMC4wNjQxOTMsIDAuMDcyMTQ1LCAwLjA4MTE2NCwgMC4wODk3NDksIDAuMDk4MDkxLCAwLjEwNjMzNCIsIFwKLSAgICAgICAgICAiMC4wNTcwMiwgMC4wNzA1NDIsIDAuMDc4NzQxLCAwLjA4Nzg5NiwgMC4wOTY1MzQsIDAuMTA0OTIzLCAwLjExMzE5MSIsIFwKLSAgICAgICAgICAiMC4wNjE0MDMsIDAuMDc1NTI0LCAwLjA4Mzg0OSwgMC4wOTMxMjEsIDAuMTAxODYsIDAuMTEwMjgsIDAuMTE4NTU0Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDIwMzgxNywgMC4wNzAzODE3LCAwLjExMDM4MiwgMC4xNjAzODIsIDAuMjEwMzgyLCAwLjI2MDM4MiwgMC4zMTAzODIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxNDQzNiwgMC4wMzE5NjksIDAuMDQ1MTg1LCAwLjA2MTYzMSwgMC4wNzgwNzQsIDAuMDk0NzgsIDAuMTExNDk5IiwgXAotICAgICAgICAgICIwLjAxNDY1LCAwLjAzMjA3NywgMC4wNDUyNDksIDAuMDYxNjcyLCAwLjA3ODE2NiwgMC4wOTQ3OTQsIDAuMTExNTE3IiwgXAotICAgICAgICAgICIwLjAxNTY3OCwgMC4wMzI4NCwgMC4wNDU4MzksIDAuMDYyMTQ0LCAwLjA3ODUyMiwgMC4wOTUwOTYsIDAuMTExNzY5IiwgXAotICAgICAgICAgICIwLjAxNjc0MywgMC4wMzM4NjYsIDAuMDQ2NjcxLCAwLjA2Mjc4LCAwLjA3OTEzMSwgMC4wOTU2MjYsIDAuMTEyMjE4IiwgXAotICAgICAgICAgICIwLjAxNzY2MiwgMC4wMzQ3NTUsIDAuMDQ3NTE0LCAwLjA2MzU4OCwgMC4wNzk3MTcsIDAuMDk2MDk3LCAwLjExMjYyNCIsIFwKLSAgICAgICAgICAiMC4wMTkxNywgMC4wMzYzNCwgMC4wNDg4NjIsIDAuMDY0NzU1LCAwLjA4MDg3NCwgMC4wOTcwNzcsIDAuMTEzMzk3IiwgXAotICAgICAgICAgICIwLjAyMDI4NywgMC4wMzc0MjEsIDAuMDQ5OTc5LCAwLjA2NTcwOCwgMC4wODE2OTEsIDAuMDk3OCwgMC4xMTQxNTMiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMjAzNzA4LCAwLjA3MDM3MDgsIDAuMTEwMzcxLCAwLjE2MDM3MSwgMC4yMTAzNzEsIDAuMjYwMzcxLCAwLjMxMDM3MSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDI3MjMzLCAwLjAzODI1OCwgMC4wNDU0ODcsIDAuMDUzOTQ1LCAwLjA2MjEzMiwgMC4wNzAxOTIsIDAuMDc4MTkzIiwgXAotICAgICAgICAgICIwLjAzMjc0NiwgMC4wNDM2MywgMC4wNTA4NDgsIDAuMDU5MzA0LCAwLjA2NzQ4NywgMC4wNzU1NDcsIDAuMDgzNTU0IiwgXAotICAgICAgICAgICIwLjAzODA3NiwgMC4wNDkwMzMsIDAuMDU2MjksIDAuMDY0Nzg0LCAwLjA3Mjk3NywgMC4wODEwNDEsIDAuMDg5MDQ5IiwgXAotICAgICAgICAgICIwLjA0MjIxNywgMC4wNTMxNywgMC4wNjA1MzQsIDAuMDY5MDU5LCAwLjA3NzMxMiwgMC4wODU0MDMsIDAuMDkzNDE1IiwgXAotICAgICAgICAgICIwLjA0NTYzNCwgMC4wNTY1ODgsIDAuMDYzOTksIDAuMDcyNTk4LCAwLjA4MDg1OSwgMC4wODg5NzMsIDAuMDk3MDAyIiwgXAotICAgICAgICAgICIwLjA1MDEzOCwgMC4wNjEzMTgsIDAuMDY4ODQ1LCAwLjA3NzUzNSwgMC4wODU4MTQsIDAuMDkzOTQzLCAwLjEwMTk5OSIsIFwKLSAgICAgICAgICAiMC4wNTM1MzUsIDAuMDY0OTM5LCAwLjA3MjUyMSwgMC4wODEyOTksIDAuMDg5NiwgMC4wOTc3NzgsIDAuMTA1ODMxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDIwMzcwOCwgMC4wNzAzNzA4LCAwLjExMDM3MSwgMC4xNjAzNzEsIDAuMjEwMzcxLCAwLjI2MDM3MSwgMC4zMTAzNzEiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMjYzNiwgMC4wMjkyMjIsIDAuMDQxODY2LCAwLjA1NzgzNSwgMC4wNzM4NywgMC4wODk5NzksIDAuMTA2MjMyIiwgXAotICAgICAgICAgICIwLjAxMjc4MSwgMC4wMjkzNjksIDAuMDQyMDA1LCAwLjA1NzkyNCwgMC4wNzM4NzksIDAuMDkwMDQ0LCAwLjEwNjI0NyIsIFwKLSAgICAgICAgICAiMC4wMTM2MjUsIDAuMDMwMTU3LCAwLjA0MjcsIDAuMDU4NDc3LCAwLjA3NDM1OSwgMC4wOTA0MjgsIDAuMTA2NTcxIiwgXAotICAgICAgICAgICIwLjAxNDU0NCwgMC4wMzA5NTgsIDAuMDQzNTEyLCAwLjA1OTEwMSwgMC4wNzQ5MzksIDAuMDkwOTA1LCAwLjEwNzAzNyIsIFwKLSAgICAgICAgICAiMC4wMTU0MTQsIDAuMDMxNzE2LCAwLjA0NDE0MiwgMC4wNTk4NzksIDAuMDc1NTIyLCAwLjA5MTM1OSwgMC4xMDczODEiLCBcCi0gICAgICAgICAgIjAuMDE2ODA4LCAwLjAzMjk2MSwgMC4wNDUyNzYsIDAuMDYwNzQzLCAwLjA3NjM3LCAwLjA5MjMzMSwgMC4xMDgyMzUiLCBcCi0gICAgICAgICAgIjAuMDE3OTA2LCAwLjAzNDAzNywgMC4wNDYyOTksIDAuMDYxNjY1LCAwLjA3NzE1OSwgMC4wOTI4OTYsIDAuMTA4NzQzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIk9FIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiB0aHJlZV9zdGF0ZV9lbmFibGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDIwMzgxNywgMC4wNzAzODE3LCAwLjExMDM4MiwgMC4xNjAzODIsIDAuMjEwMzgyLCAwLjI2MDM4MiwgMC4zMTAzODIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyNzc1MywgMC4wMzk1NzQsIDAuMDQ3MTY2LCAwLjA1NTk1MSwgMC4wNjQzNzgsIDAuMDcyNjM4LCAwLjA4MDgyOSIsIFwKLSAgICAgICAgICAiMC4wMzUyOTIsIDAuMDQ3MTI4LCAwLjA1NDcyOCwgMC4wNjM1MiwgMC4wNzE5NDMsIDAuMDgwMjA3LCAwLjA4ODM5OSIsIFwKLSAgICAgICAgICAiMC4wNDMzNzUsIDAuMDU1NjE5LCAwLjA2MzI5NywgMC4wNzIxMzEsIDAuMDgwNTg0LCAwLjA4ODg2NSwgMC4wOTcwNTIiLCBcCi0gICAgICAgICAgIjAuMDQ5MzkyLCAwLjA2MjE5OSwgMC4wNzAwNDUsIDAuMDc4OTk0LCAwLjA4NzQ4NiwgMC4wOTU3OTgsIDAuMTAzOTkxIiwgXAotICAgICAgICAgICIwLjA1NDM5MywgMC4wNjc3NDYsIDAuMDc1NzIsIDAuMDg0NzIyLCAwLjA5MzI5MiwgMC4xMDE2NTksIDAuMTA5ODgiLCBcCi0gICAgICAgICAgIjAuMDYxMDE5LCAwLjA3NTE1OSwgMC4wODMzNywgMC4wOTI2OCwgMC4xMDEzMTUsIDAuMTA5NjcxLCAwLjExNzkyOCIsIFwKLSAgICAgICAgICAiMC4wNjYwNzcsIDAuMDgxMDg5LCAwLjA4OTUwOCwgMC4wOTg2NDQsIDAuMTA3MzA5LCAwLjExNTcwOSwgMC4xMjM5ODMiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMjAzODE3LCAwLjA3MDM4MTcsIDAuMTEwMzgyLCAwLjE2MDM4MiwgMC4yMTAzODIsIDAuMjYwMzgyLCAwLjMxMDM4MiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE0ODU5LCAwLjAzMjM1NiwgMC4wNDU0OTgsIDAuMDYxODY4LCAwLjA3ODMxMSwgMC4wOTQ5MzMsIDAuMTExNjI4IiwgXAotICAgICAgICAgICIwLjAxNDk5LCAwLjAzMjQxMiwgMC4wNDU1MzIsIDAuMDYxODk5LCAwLjA3ODI5MywgMC4wOTQ5NDgsIDAuMTExNjQxIiwgXAotICAgICAgICAgICIwLjAxNjQ2LCAwLjAzMzM3NiwgMC4wNDYyNSwgMC4wNjI0NjgsIDAuMDc4NzY0LCAwLjA5NTMxLCAwLjExMTk0MSIsIFwKLSAgICAgICAgICAiMC4wMTc5OTgsIDAuMDM0NjgxLCAwLjA0NzMwMiwgMC4wNjMzMDcsIDAuMDc5NTM2LCAwLjA5NTk2NSwgMC4xMTI0OTIiLCBcCi0gICAgICAgICAgIjAuMDE5Mjk0LCAwLjAzNTgwNywgMC4wNDg0ODMsIDAuMDY0MjU4LCAwLjA4MDI1OSwgMC4wOTY1MzMsIDAuMTEzMDUiLCBcCi0gICAgICAgICAgIjAuMDIxMzM2LCAwLjAzNzg0NSwgMC4wNTAxMzMsIDAuMDY1NTM2LCAwLjA4MTYwMSwgMC4wOTc2MSwgMC4xMTM5MzkiLCBcCi0gICAgICAgICAgIjAuMDIyODQ2LCAwLjAzOTEyMywgMC4wNTEyNzMsIDAuMDY2OTAyLCAwLjA4MjYwMSwgMC4wOTg1ODIsIDAuMTE0ODkxIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDIwMzcwOCwgMC4wNzAzNzA4LCAwLjExMDM3MSwgMC4xNjAzNzEsIDAuMjEwMzcxLCAwLjI2MDM3MSwgMC4zMTAzNzEiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzNjY1NywgMC4wNDc2MTgsIDAuMDU0ODU3LCAwLjA2MzI4NywgMC4wNzE0NTcsIDAuMDc5NTAxLCAwLjA4NzQ5OCIsIFwKLSAgICAgICAgICAiMC4wNDQ1NTYsIDAuMDU1NTUzLCAwLjA2Mjc4NiwgMC4wNzEyMSwgMC4wNzkzODEsIDAuMDg3NDI1LCAwLjA5NTQyMyIsIFwKLSAgICAgICAgICAiMC4wNTIwNjUsIDAuMDYzMDg2LCAwLjA3MDMyMiwgMC4wNzg3NjEsIDAuMDg2OTI5LCAwLjA5NDk4LCAwLjEwMjk3NiIsIFwKLSAgICAgICAgICAiMC4wNTc1ODgsIDAuMDY4NjQ3LCAwLjA3NTg5LCAwLjA4NDMwOSwgMC4wOTI0OTIsIDAuMTAwNTQ5LCAwLjEwODU0IiwgXAotICAgICAgICAgICIwLjA2MjE2NywgMC4wNzMyNjYsIDAuMDgwNTE1LCAwLjA4ODk1MiwgMC4wOTcxMywgMC4xMDUxNzgsIDAuMTEzMTc2IiwgXAotICAgICAgICAgICIwLjA2ODIxNSwgMC4wNzkzNywgMC4wODY2MzgsIDAuMDk1MTA0LCAwLjEwMzI4LCAwLjExMTM1MiwgMC4xMTkzMjQiLCBcCi0gICAgICAgICAgIjAuMDcyNzY3LCAwLjA4NDAxMywgMC4wOTEzMDUsIDAuMDk5NzcxLCAwLjEwNzk1OSwgMC4xMTYwMTQsIDAuMTI0MDE1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDIwMzcwOCwgMC4wNzAzNzA4LCAwLjExMDM3MSwgMC4xNjAzNzEsIDAuMjEwMzcxLCAwLjI2MDM3MSwgMC4zMTAzNzEiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMzE3NiwgMC4wMjk2NzUsIDAuMDQyMzIyLCAwLjA1ODA4MiwgMC4wNzQwNjcsIDAuMDkwMTk2LCAwLjEwNjM4IiwgXAotICAgICAgICAgICIwLjAxMzE1OSwgMC4wMjk2ODksIDAuMDQyMzE2LCAwLjA1ODE1LCAwLjA3NDEwMSwgMC4wOTAxOTgsIDAuMTA2Mzc5IiwgXAotICAgICAgICAgICIwLjAxMzI0LCAwLjAyOTczNSwgMC4wNDIzNzcsIDAuMDU4MTk5LCAwLjA3NDE1NywgMC4wOTAyMzcsIDAuMTA2NDE0IiwgXAotICAgICAgICAgICIwLjAxMzQsIDAuMDI5ODI4LCAwLjA0MjQwNiwgMC4wNTgyMzUsIDAuMDc0MTg0LCAwLjA5MDI1OCwgMC4xMDY0MzQiLCBcCi0gICAgICAgICAgIjAuMDEzNTMyLCAwLjAyOTkwMiwgMC4wNDI1NjMsIDAuMDU4MjU2LCAwLjA3NDE0NSwgMC4wOTAyMzEsIDAuMTA2NDA1IiwgXAotICAgICAgICAgICIwLjAxMzc4NiwgMC4wMzAwNzQsIDAuMDQyNjA2LCAwLjA1ODM4OSwgMC4wNzQzOTQsIDAuMDkwNDIxLCAwLjEwNjM5NCIsIFwKLSAgICAgICAgICAiMC4wMTM5NjUsIDAuMDMwMjE3LCAwLjA0Mjc1OSwgMC4wNTg0OTcsIDAuMDc0NDA2LCAwLjA5MDQzMSwgMC4xMDY2MiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJPRSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogdGhyZWVfc3RhdGVfZGlzYWJsZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAzMDk1MiwgMC4wMzg3NTgsIDAuMDQ2MjUyLCAwLjA1MTY5OCwgMC4wNTU5MzcsIDAuMDYxNTM1LCAwLjA2NTY0MyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKHNjYWxhcikgewotICAgICAgICB2YWx1ZXMoIjAiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAyMTgyOSwgMC4wMjk3MzcsIDAuMDM3ODc3LCAwLjA0MzYyOCwgMC4wNDg0OTIsIDAuMDU0NDYyLCAwLjA1ODY3NCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKHNjYWxhcikgewotICAgICAgICB2YWx1ZXMoIjAiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAyMDM4MTcsIDAuMDcwMzgxNywgMC4xMTAzODIsIDAuMTYwMzgyLCAwLjIxMDM4MiwgMC4yNjAzODIsIDAuMzEwMzgyIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjgwOTUsIDAuMDI4OTU5LCAwLjAyOTE4OCwgMC4wMjkzMywgMC4wMjk0MDksIDAuMDI5NDU4LCAwLjAyOTQ5NCIsIFwKLSAgICAgICAgICAiMC4wMjc1MjksIDAuMDI4Mjk5LCAwLjAyODU3OSwgMC4wMjg3ODIsIDAuMDI4OTA0LCAwLjAyODk4NSwgMC4wMjkwNDMiLCBcCi0gICAgICAgICAgIjAuMDI4MTAxLCAwLjAyODczLCAwLjAyODk4OSwgMC4wMjkyMDgsIDAuMDI5MzU5LCAwLjAyOTQ1MywgMC4wMjk1MjciLCBcCi0gICAgICAgICAgIjAuMDI5MzQ1LCAwLjAyOTc2MywgMC4wMzAwMDEsIDAuMDMwMjIzLCAwLjAzMDM2LCAwLjAzMDQ3MSwgMC4wMzA1NDQiLCBcCi0gICAgICAgICAgIjAuMDMwNzM2LCAwLjAzMTAwNywgMC4wMzEyMjYsIDAuMDMxNDE2LCAwLjAzMTU3MywgMC4wMzE2OCwgMC4wMzE3NTUiLCBcCi0gICAgICAgICAgIjAuMDMzNDg5LCAwLjAzMzUwMSwgMC4wMzM2ODgsIDAuMDMzODM0LCAwLjAzMzk2MiwgMC4wMzQwNTMsIDAuMDM0MTMyIiwgXAotICAgICAgICAgICIwLjAzNTY5NSwgMC4wMzU3MzYsIDAuMDM1ODc3LCAwLjAzNjAzNywgMC4wMzYxNSwgMC4wMzYyNTUsIDAuMDM2MzQxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMjAzNzA4LCAwLjA3MDM3MDgsIDAuMTEwMzcxLCAwLjE2MDM3MSwgMC4yMTAzNzEsIDAuMjYwMzcxLCAwLjMxMDM3MSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQ4MDQ3LCAwLjA0OTA4OCwgMC4wNDk0NTcsIDAuMDQ5NzA4LCAwLjA0OTg1NywgMC4wNDk5NTUsIDAuMDUwMDI0IiwgXAotICAgICAgICAgICIwLjA0ODY3NiwgMC4wNDkwMDcsIDAuMDQ5MjczLCAwLjA0OTQ5MiwgMC4wNDk2MzUsIDAuMDQ5NzM2LCAwLjA0OTgxIiwgXAotICAgICAgICAgICIwLjA1MTE0NSwgMC4wNTAyNDUsIDAuMDUwMjE4LCAwLjA1MDI5NSwgMC4wNTAzNzUsIDAuMDUwNDM1LCAwLjA1MDQ2NiIsIFwKLSAgICAgICAgICAiMC4wNTQwMjgsIDAuMDUxOTc4LCAwLjA1MTczNSwgMC4wNTE2MDUsIDAuMDUxNTk0LCAwLjA1MTU3OSwgMC4wNTE2MDciLCBcCi0gICAgICAgICAgIjAuMDU3MTM3LCAwLjA1NDIxMSwgMC4wNTM1NjYsIDAuMDUzMzU1LCAwLjA1MzIxOCwgMC4wNTMxNzgsIDAuMDUzMTE0IiwgXAotICAgICAgICAgICIwLjA2MTUyOSwgMC4wNTc0NTQsIDAuMDU2NjIyLCAwLjA1NjE3NSwgMC4wNTU5MjUsIDAuMDU1NzQ0LCAwLjA1NTcwNyIsIFwKLSAgICAgICAgICAiMC4wNjUxMjYsIDAuMDYxMDI1LCAwLjA1OTY2OSwgMC4wNTkwOCwgMC4wNTg2NzcsIDAuMDU4NDkyLCAwLjA1ODMyOSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIk9FIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAyMDM4MTcsIDAuMDcwMzgxNywgMC4xMTAzODIsIDAuMTYwMzgyLCAwLjIxMDM4MiwgMC4yNjAzODIsIDAuMzEwMzgyIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjcyNTMsIDAuMDI3MjUyLCAwLjAyNzI1NSwgMC4wMjcyNTEsIDAuMDI3MjQ5LCAwLjAyNzI0NiwgMC4wMjcyNDYiLCBcCi0gICAgICAgICAgIjAuMDI3MjQxLCAwLjAyNzI0MywgMC4wMjcyNDIsIDAuMDI3MjQsIDAuMDI3MjQxLCAwLjAyNzIzNiwgMC4wMjcyMzciLCBcCi0gICAgICAgICAgIjAuMDI3OTE1LCAwLjAyNzg3NCwgMC4wMjc4NzUsIDAuMDI3ODc1LCAwLjAyNzg3NSwgMC4wMjc4NzQsIDAuMDI3ODcyIiwgXAotICAgICAgICAgICIwLjAyODg2MywgMC4wMjg4NiwgMC4wMjg4NTQsIDAuMDI4ODUzLCAwLjAyODg0NiwgMC4wMjg4NDQsIDAuMDI4ODQ2IiwgXAotICAgICAgICAgICIwLjAyOTg2NSwgMC4wMjk4NiwgMC4wMjk4NjIsIDAuMDI5ODU5LCAwLjAyOTg1NywgMC4wMjk4NDYsIDAuMDI5ODUiLCBcCi0gICAgICAgICAgIjAuMDMxNzUsIDAuMDMxNzQ3LCAwLjAzMTc0NiwgMC4wMzE3NTIsIDAuMDMxNzQzLCAwLjAzMTcxNSwgMC4wMzE3NDMiLCBcCi0gICAgICAgICAgIjAuMDMzMzgxLCAwLjAzMzQ5LCAwLjAzMzQ4OCwgMC4wMzMzNzMsIDAuMDMzMzgzLCAwLjAzMzM2OCwgMC4wMzMzNjYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAyMDM3MDgsIDAuMDcwMzcwOCwgMC4xMTAzNzEsIDAuMTYwMzcxLCAwLjIxMDM3MSwgMC4yNjAzNzEsIDAuMzEwMzcxIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjU3OTMsIDAuMDI1NzkzLCAwLjAyNTc5NCwgMC4wMjU3OTQsIDAuMDI1Nzk0LCAwLjAyNTc5NCwgMC4wMjU3OTciLCBcCi0gICAgICAgICAgIjAuMDI1ODE0LCAwLjAyNTgxMSwgMC4wMjU4MTEsIDAuMDI1ODExLCAwLjAyNTgxMSwgMC4wMjU4MTEsIDAuMDI1ODExIiwgXAotICAgICAgICAgICIwLjAyNTk2OCwgMC4wMjU5NzEsIDAuMDI1OTcyLCAwLjAyNTk3MywgMC4wMjU5NzMsIDAuMDI1OTczLCAwLjAyNTk3MyIsIFwKLSAgICAgICAgICAiMC4wMjYzNDUsIDAuMDI2MzQyLCAwLjAyNjMzNywgMC4wMjYzMzcsIDAuMDI2MzM3LCAwLjAyNjMzNCwgMC4wMjYzMzciLCBcCi0gICAgICAgICAgIjAuMDI2NzU3LCAwLjAyNjc2MiwgMC4wMjY3NTcsIDAuMDI2NzU1LCAwLjAyNjc1MywgMC4wMjY3NTUsIDAuMDI2NzUyIiwgXAotICAgICAgICAgICIwLjAyNzU1LCAwLjAyNzU1NCwgMC4wMjc1NTUsIDAuMDI3NTU4LCAwLjAyNzU1NiwgMC4wMjc1NTQsIDAuMDI3NTUxIiwgXAotICAgICAgICAgICIwLjAyODE0MywgMC4wMjgxNDUsIDAuMDI4MTQ1LCAwLjAyODE0OCwgMC4wMjgxNSwgMC4wMjgxNSwgMC4wMjgxNDkiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IFRCVUZYNCAqCi0gKiAtLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKFRCVUZYNCkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjc1ODI1MjsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAyMDY1NDg7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAyMDY0MDc7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAyMDY1NDg7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwOTk5LCAwLjAwMTAyOSwgMC4wMDEwMzMsIDAuMDAxMDM1LCAwLjAwMTAzNSwgMC4wMDEwMzcsIDAuMDAxMDM3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxMDg0LCAwLjAwMTA2NywgMC4wMDEwNjQsIDAuMDAxMDYzLCAwLjAwMTA2MiwgMC4wMDEwNjEsIDAuMDAxMDYxIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihPRSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNDY3NDc7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNDY3NDc7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNDY3Mjk7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHNjYWxhcikgewotICAgICAgICB2YWx1ZXMoIjAiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDU0MzcsIDAuMDA1NDE0LCAwLjAwNTUzMSwgMC4wMDU3MjUsIDAuMDA1OTgxLCAwLjAwNjQxNywgMC4wMDY3NzgiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAyMDk0NzU7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAyMDk0NzU7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAyMDkyNTk7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMS4zNzkzMTsKLSAgICBmdW5jdGlvbiA6ICJBIjsKLSAgICB0aHJlZV9zdGF0ZSA6ICIoIU9FKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMTIwOTQ4LCAwLjA4MjA5NDcsIDAuMTUyMDk1LCAwLjIwMjA5NSwgMC4yODIwOTUsIDAuMzUyMDk1LCAwLjQ1MjA5NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM4NDc1LCAwLjA5NTY5MywgMC4xNTA0MzYsIDAuMTg5NTE1LCAwLjI1MjEyNSwgMC4zMDY3NjksIDAuMzg0OTI2IiwgXAotICAgICAgICAgICIwLjA0NDY5NCwgMC4xMDE5NjIsIDAuMTU2NzIyLCAwLjE5NTgwNSwgMC4yNTgzOSwgMC4zMTMwNDUsIDAuMzkxMTg5IiwgXAotICAgICAgICAgICIwLjA1MTc0NSwgMC4xMDkyMTksIDAuMTYzOTgzLCAwLjIwMzA1NywgMC4yNjU2MTcsIDAuMzIwMzEzLCAwLjM5ODQyNCIsIFwKLSAgICAgICAgICAiMC4wNTc0NjYsIDAuMTE1MzM2LCAwLjE3MDA4MSwgMC4yMDkxNjIsIDAuMjcxNjg3LCAwLjMyNjQxMiwgMC40MDQ1NTYiLCBcCi0gICAgICAgICAgIjAuMDYyMzk2LCAwLjEyMDY2NiwgMC4xNzU0MTksIDAuMjE0NDkxLCAwLjI3NzAxOSwgMC4zMzE3MTgsIDAuNDA5ODQ5IiwgXAotICAgICAgICAgICIwLjA2OTE0MiwgMC4xMjgwNDIsIDAuMTgyNzk4LCAwLjIyMTkwMiwgMC4yODQzOSwgMC4zMzkwOTUsIDAuNDE3MjU1IiwgXAotICAgICAgICAgICIwLjA3NDI4MywgMC4xMzM3MzksIDAuMTg4NTI0LCAwLjIyNzU5MiwgMC4yOTAxMDQsIDAuMzQ0Nzc3LCAwLjQyMjkxNyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxMjA5NDgsIDAuMDgyMDk0NywgMC4xNTIwOTUsIDAuMjAyMDk1LCAwLjI4MjA5NSwgMC4zNTIwOTUsIDAuNDUyMDk1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjcxNzcsIDAuMTM4NzY2LCAwLjI1MzcyNiwgMC4zMzYxNDEsIDAuNDY3NDUsIDAuNTg0MDg4LCAwLjc0ODEyNSIsIFwKLSAgICAgICAgICAiMC4wMjcyNTYsIDAuMTM4OTE0LCAwLjI1Mzc1OCwgMC4zMzYxNzMsIDAuNDY3NTgxLCAwLjU4NDA4MSwgMC43NDg2MDkiLCBcCi0gICAgICAgICAgIjAuMDI4MTEzLCAwLjEzOTEwOCwgMC4yNTM4NDcsIDAuMzM1ODQyLCAwLjQ2NzczOSwgMC41ODM5NTEsIDAuNzQ4NTcyIiwgXAotICAgICAgICAgICIwLjAyOTI4MiwgMC4xMzk1MDMsIDAuMjUzNTM3LCAwLjMzNjIwMywgMC40Njc4NTgsIDAuNTgzMzAzLCAwLjc0OTIzOSIsIFwKLSAgICAgICAgICAiMC4wMzAyMzksIDAuMTM5ODY1LCAwLjI1NDA1MywgMC4zMzYyNCwgMC40NjgyMDUsIDAuNTgzNDMyLCAwLjc0OTE2NiIsIFwKLSAgICAgICAgICAiMC4wMzE5MDEsIDAuMTQwNDc2LCAwLjI1NDIxMiwgMC4zMzYyMjMsIDAuNDY3OTI5LCAwLjU4MzMsIDAuNzQ5MTkxIiwgXAotICAgICAgICAgICIwLjAzMzIzOSwgMC4xNDExODMsIDAuMjU0NDM5LCAwLjMzNjM3NywgMC40Njc5NjgsIDAuNTgzNTk4LCAwLjc0OTA1NCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxMjA5MjYsIDAuMDgyMDkyNiwgMC4xNTIwOTMsIDAuMjAyMDkzLCAwLjI4MjA5MywgMC4zNTIwOTMsIDAuNDUyMDkzIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzQ0MjYsIDAuMDkwMjIzLCAwLjE0NDEyMywgMC4xODI1OSwgMC4yNDQxNjksIDAuMjk3OTkyLCAwLjM3NDkwMSIsIFwKLSAgICAgICAgICAiMC4wNDAwNDMsIDAuMDk1ODA3LCAwLjE0OTcxNCwgMC4xODgxNzgsIDAuMjQ5NzYsIDAuMzAzNTgzLCAwLjM4MDQ4NyIsIFwKLSAgICAgICAgICAiMC4wNDU3MDcsIDAuMTAxNjE1LCAwLjE1NTUxNSwgMC4xOTM5NzMsIDAuMjU1NTEzLCAwLjMwOTM4MywgMC4zODYyODMiLCBcCi0gICAgICAgICAgIjAuMDUwMDc0LCAwLjEwNjI0LCAwLjE2MDExNSwgMC4xOTg1NzQsIDAuMjYwMTI1LCAwLjMxMzk1MiwgMC4zOTA4OTEiLCBcCi0gICAgICAgICAgIjAuMDUzNjgxLCAwLjExMDA1NiwgMC4xNjM5MDQsIDAuMjAyMzc1LCAwLjI2Mzg4NCwgMC4zMTc3NTgsIDAuMzk0Njc2IiwgXAotICAgICAgICAgICIwLjA1ODYxLCAwLjExNTE1OCwgMC4xNjkwNTIsIDAuMjA3NDkxLCAwLjI2ODk5OSwgMC4zMjI4NiwgMC4zOTk3NjkiLCBcCi0gICAgICAgICAgIjAuMDYyMjk4LCAwLjExOTE5NiwgMC4xNzMxMTksIDAuMjExNTYxLCAwLjI3MzA2NCwgMC4zMjY5MTksIDAuNDAzODMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMTIwOTI2LCAwLjA4MjA5MjYsIDAuMTUyMDkzLCAwLjIwMjA5MywgMC4yODIwOTMsIDAuMzUyMDkzLCAwLjQ1MjA5MyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDI0NjY5LCAwLjEzMzY1LCAwLjI0NTA1MywgMC4zMjQ1NjUsIDAuNDUyMTQ3LCAwLjU2NTA2LCAwLjcyNDkzOCIsIFwKLSAgICAgICAgICAiMC4wMjQ4NDYsIDAuMTMzNjM3LCAwLjI0NTA2NiwgMC4zMjQ1NzcsIDAuNDUyMTQxLCAwLjU2NTA1MSwgMC43MjUxNTQiLCBcCi0gICAgICAgICAgIjAuMDI1NzAyLCAwLjEzMzc1MiwgMC4yNDQ2NiwgMC4zMjQ2LCAwLjQ1Mjg1OCwgMC41NjUwODEsIDAuNzI1MTY5IiwgXAotICAgICAgICAgICIwLjAyNjU0NSwgMC4xMzQxMzUsIDAuMjQ1MjAzLCAwLjMyNDk3MywgMC40NTI4NDEsIDAuNTY0MzY5LCAwLjcyNDI1NyIsIFwKLSAgICAgICAgICAiMC4wMjc1MDQsIDAuMTM0NDY3LCAwLjI0NTIsIDAuMzI0NzI2LCAwLjQ1MjUyOSwgMC41NjQxODMsIDAuNzI1MDk2IiwgXAotICAgICAgICAgICIwLjAyODY1NCwgMC4xMzQ5MTksIDAuMjQ1NDc0LCAwLjMyNDg3OCwgMC40NTI1MTEsIDAuNTY0MTg0LCAwLjcyNDg4NyIsIFwKLSAgICAgICAgICAiMC4wMjk4MDEsIDAuMTM1NTg4LCAwLjI0NTU0NywgMC4zMjUxNDUsIDAuNDUyNzQ0LCAwLjU2NDQ1NywgMC43MjQzMDQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiT0UiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHRocmVlX3N0YXRlX2VuYWJsZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMTIwOTQ4LCAwLjA4MjA5NDcsIDAuMTUyMDk1LCAwLjIwMjA5NSwgMC4yODIwOTUsIDAuMzUyMDk1LCAwLjQ1MjA5NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM2ODcyLCAwLjA5NDA1MywgMC4xNDg3OTcsIDAuMTg3ODgxLCAwLjI1MDQ3MiwgMC4zMDUxMTcsIDAuMzgzMjMxIiwgXAotICAgICAgICAgICIwLjA0NDQyNywgMC4xMDE2MTEsIDAuMTU2MzQ4LCAwLjE5NTQyNiwgMC4yNTc5NTEsIDAuMzEyNzMzLCAwLjM5MDgwOSIsIFwKLSAgICAgICAgICAiMC4wNTM1MDYsIDAuMTEwODU5LCAwLjE2NTU5OSwgMC4yMDQ2NzUsIDAuMjY3MjA4LCAwLjMyMTkzOSwgMC40MDAwMzUiLCBcCi0gICAgICAgICAgIjAuMDYwNjA5LCAwLjExODM5OSwgMC4xNzMxMSwgMC4yMTIyMjEsIDAuMjc0NzEyLCAwLjMyOTQ3NywgMC40MDc1NTYiLCBcCi0gICAgICAgICAgIjAuMDY2NDE4LCAwLjEyNDcxNCwgMC4xNzk0MzIsIDAuMjE4NDk4LCAwLjI4MTAyNywgMC4zMzU3MTgsIDAuNDEzODgzIiwgXAotICAgICAgICAgICIwLjA3NDMxMSwgMC4xMzMzNDIsIDAuMTg4MDY3LCAwLjIyNzEzNCwgMC4yODk2MjQsIDAuMzQ0MzUxLCAwLjQyMjQ0MiIsIFwKLSAgICAgICAgICAiMC4wODAyNjEsIDAuMTM5OTM4LCAwLjE5NDY3NSwgMC4yMzM3MTksIDAuMjk2Mjg5LCAwLjM1MDkwNCwgMC40MjkwNjkiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMTIwOTQ4LCAwLjA4MjA5NDcsIDAuMTUyMDk1LCAwLjIwMjA5NSwgMC4yODIwOTUsIDAuMzUyMDk1LCAwLjQ1MjA5NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDI3NTcyLCAwLjEzOSwgMC4yNTMzNDYsIDAuMzM2MywgMC40Njc2NzQsIDAuNTg0MTEzLCAwLjc0ODY1NSIsIFwKLSAgICAgICAgICAiMC4wMjc2MiwgMC4xMzkwMiwgMC4yNTM4MzQsIDAuMzM2MjEzLCAwLjQ2Nzg5LCAwLjU4MzI1MiwgMC43NDg2NDIiLCBcCi0gICAgICAgICAgIjAuMDI4NjcsIDAuMTM5MjI1LCAwLjI1MzkyNSwgMC4zMzYyODUsIDAuNDY3ODk2LCAwLjU4NDA0MywgMC43NDg3MjQiLCBcCi0gICAgICAgICAgIjAuMDMwMTkxLCAwLjEzOTcwMiwgMC4yNTM3NzksIDAuMzM2MzgxLCAwLjQ2NzkzOCwgMC41ODMyMjQsIDAuNzQ5MzkyIiwgXAotICAgICAgICAgICIwLjAzMTY0NSwgMC4xNDAyMDYsIDAuMjU0MTk2LCAwLjMzNjM5LCAwLjQ2ODUwNywgMC41ODM1MTEsIDAuNzQ5NDEyIiwgXAotICAgICAgICAgICIwLjAzMzc5NiwgMC4xNDA5MTgsIDAuMjU0Mzg1LCAwLjMzNjY1NSwgMC40NjgxNjMsIDAuNTgzNDA2LCAwLjc0OTU0IiwgXAotICAgICAgICAgICIwLjAzNTU0OSwgMC4xNDE2MTcsIDAuMjU0NTgsIDAuMzM2NTY5LCAwLjQ2ODUyNiwgMC41ODQyMjMsIDAuNzQ5NzA3Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEyMDkyNiwgMC4wODIwOTI2LCAwLjE1MjA5MywgMC4yMDIwOTMsIDAuMjgyMDkzLCAwLjM1MjA5MywgMC40NTIwOTMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0MTUzOSwgMC4wOTcyMjUsIDAuMTUxMDkyLCAwLjE4OTU1OSwgMC4yNTExNDUsIDAuMzA0OTYzLCAwLjM4MTkwNCIsIFwKLSAgICAgICAgICAiMC4wNDg5NzcsIDAuMTA0NTU1LCAwLjE1ODQyNCwgMC4xOTY4OSwgMC4yNTg0NzMsIDAuMzEyMzEzLCAwLjM4OTIyMSIsIFwKLSAgICAgICAgICAiMC4wNTUyNDcsIDAuMTEwOTU2LCAwLjE2NDgyOSwgMC4yMDMzMiwgMC4yNjQ4NzMsIDAuMzE4Njg5LCAwLjM5NTU5MSIsIFwKLSAgICAgICAgICAiMC4wNTk5MTgsIDAuMTE1NjA4LCAwLjE2OTQ3LCAwLjIwNzkzOSwgMC4yNjk0NjgsIDAuMzIzMzE5LCAwLjQwMDI4OSIsIFwKLSAgICAgICAgICAiMC4wNjM2MTMsIDAuMTE5MzUxLCAwLjE3MzIxNywgMC4yMTE2NzUsIDAuMjczMjE4LCAwLjMyNzA1OSwgMC40MDM5ODciLCBcCi0gICAgICAgICAgIjAuMDY4ODI4LCAwLjEyNDUxOCwgMC4xNzgzNjgsIDAuMjE2ODIyLCAwLjI3ODQzNywgMC4zMzIxOTgsIDAuNDA5MTMxIiwgXAotICAgICAgICAgICIwLjA3MjYxMSwgMC4xMjg0MDUsIDAuMTgyMjU5LCAwLjIyMDcwOSwgMC4yODIyNTQsIDAuMzM2MDg4LCAwLjQxMjk5NSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxMjA5MjYsIDAuMDgyMDkyNiwgMC4xNTIwOTMsIDAuMjAyMDkzLCAwLjI4MjA5MywgMC4zNTIwOTMsIDAuNDUyMDkzIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjUxMTksIDAuMTMzNjYyLCAwLjI0NTA4MiwgMC4zMjQ5MzUsIDAuNDUyMjI1LCAwLjU2NTE5MSwgMC43MjQ1MDQiLCBcCi0gICAgICAgICAgIjAuMDI1MTQ1LCAwLjEzMzc1NywgMC4yNDUwNzksIDAuMzI0OSwgMC40NTIyMTEsIDAuNTY1MjA5LCAwLjcyNDYyNyIsIFwKLSAgICAgICAgICAiMC4wMjUxNjksIDAuMTMzNjk5LCAwLjI0NTEwMywgMC4zMjQ0MDMsIDAuNDUyMDY2LCAwLjU2NTEzLCAwLjcyNTI2MyIsIFwKLSAgICAgICAgICAiMC4wMjUyOCwgMC4xMzM2NDQsIDAuMjQ0OTUsIDAuMzI0NDg2LCAwLjQ1MjQzMSwgMC41NjQ0NTEsIDAuNzI0MDk5IiwgXAotICAgICAgICAgICIwLjAyNTM0OSwgMC4xMzM2MzQsIDAuMjQ0NzU4LCAwLjMyNDQ2NiwgMC40NTIyNzUsIDAuNTY0NDQxLCAwLjcyNDEyOCIsIFwKLSAgICAgICAgICAiMC4wMjU1MDEsIDAuMTMzNTU4LCAwLjI0NDU2NCwgMC4zMjQ1MzYsIDAuNDUyMzgsIDAuNTY0NDM4LCAwLjcyMzk3OSIsIFwKLSAgICAgICAgICAiMC4wMjU2MDgsIDAuMTMzODE0LCAwLjI0NDQ5OSwgMC4zMjQyNzcsIDAuNDUyMjg2LCAwLjU2NDMxNiwgMC43MjQxOTMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiT0UiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHRocmVlX3N0YXRlX2Rpc2FibGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMjYyNTEsIDAuMDMzNjkxLCAwLjA0MDA2NCwgMC4wNDQ4MTEsIDAuMDQ4NDg1LCAwLjA1MzQxMSwgMC4wNTcwNDciKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihzY2FsYXIpIHsKLSAgICAgICAgdmFsdWVzKCIwIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMTkxNzMsIDAuMDI3MzgsIDAuMDM2MDY2LCAwLjA0MjM1NiwgMC4wNDcyNzIsIDAuMDUzNjE3LCAwLjA1ODM1NiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKHNjYWxhcikgewotICAgICAgICB2YWx1ZXMoIjAiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxMjA5NDgsIDAuMDgyMDk0NywgMC4xNTIwOTUsIDAuMjAyMDk1LCAwLjI4MjA5NSwgMC4zNTIwOTUsIDAuNDUyMDk1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDU0NzksIDAuMDA1NTk2LCAwLjAwNTYxMSwgMC4wMDU2MDksIDAuMDA1NjExLCAwLjAwNTYxLCAwLjAwNTYxNSIsIFwKLSAgICAgICAgICAiMC4wMDUzMjMsIDAuMDA1NDkzLCAwLjAwNTUxMywgMC4wMDU1MiwgMC4wMDU1MjUsIDAuMDA1NTI2LCAwLjAwNTUyNyIsIFwKLSAgICAgICAgICAiMC4wMDUzODEsIDAuMDA1NTY2LCAwLjAwNTU5OCwgMC4wMDU2MDUsIDAuMDA1NjEzLCAwLjAwNTYxNywgMC4wMDU2MjEiLCBcCi0gICAgICAgICAgIjAuMDA1NTU2LCAwLjAwNTc0LCAwLjAwNTc3NCwgMC4wMDU3ODYsIDAuMDA1Nzk1LCAwLjAwNTgsIDAuMDA1ODA1IiwgXAotICAgICAgICAgICIwLjAwNTc2NywgMC4wMDU5NDgsIDAuMDA1OTg1LCAwLjAwNjAwNCwgMC4wMDYwMjEsIDAuMDA2MDIxLCAwLjAwNjAyOCIsIFwKLSAgICAgICAgICAiMC4wMDYyNDQsIDAuMDA2MzgyLCAwLjAwNjQyLCAwLjAwNjQzMywgMC4wMDY0NDksIDAuMDA2NDUxLCAwLjAwNjQ1NyIsIFwKLSAgICAgICAgICAiMC4wMDY2NjYsIDAuMDA2Nzk2LCAwLjAwNjgzNCwgMC4wMDY4NSwgMC4wMDY4NjEsIDAuMDA2ODY4LCAwLjAwNjg3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEyMDkyNiwgMC4wODIwOTI2LCAwLjE1MjA5MywgMC4yMDIwOTMsIDAuMjgyMDkzLCAwLjM1MjA5MywgMC40NTIwOTMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMDUxNiwgMC4wMTA3NTksIDAuMDEwNzg4LCAwLjAxMDc5NywgMC4wMTA4MDQsIDAuMDEwODA5LCAwLjAxMDgxMiIsIFwKLSAgICAgICAgICAiMC4wMTA0NzYsIDAuMDEwNjksIDAuMDEwNzI1LCAwLjAxMDczNywgMC4wMTA3NDYsIDAuMDEwNzUxLCAwLjAxMDc1NiIsIFwKLSAgICAgICAgICAiMC4wMTA3MjUsIDAuMDEwNzg4LCAwLjAxMDgxLCAwLjAxMDgyLCAwLjAxMDgyOSwgMC4wMTA4MzQsIDAuMDEwODM4IiwgXAotICAgICAgICAgICIwLjAxMTExMSwgMC4wMTA5NzcsIDAuMDEwOTkzLCAwLjAxMDk5NywgMC4wMTA5OTcsIDAuMDEwOTk5LCAwLjAxMTAwMiIsIFwKLSAgICAgICAgICAiMC4wMTE1MzEsIDAuMDExMjQsIDAuMDExMjMyLCAwLjAxMTIyNywgMC4wMTEyMjYsIDAuMDExMjI4LCAwLjAxMTIyNiIsIFwKLSAgICAgICAgICAiMC4wMTIyMzQsIDAuMDExNzQxLCAwLjAxMTY4NiwgMC4wMTE2NzgsIDAuMDExNjY2LCAwLjAxMTY1NiwgMC4wMTE2NTMiLCBcCi0gICAgICAgICAgIjAuMDEyODM4LCAwLjAxMjE0LCAwLjAxMjA5MiwgMC4wMTIwNzIsIDAuMDEyMDYxLCAwLjAxMjA1OSwgMC4wMTIwNTMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJPRSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMTIwOTQ4LCAwLjA4MjA5NDcsIDAuMTUyMDk1LCAwLjIwMjA5NSwgMC4yODIwOTUsIDAuMzUyMDk1LCAwLjQ1MjA5NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1MjA1LCAwLjAwNTE5NywgMC4wMDUxOTQsIDAuMDA1MTkyLCAwLjAwNTE2OCwgMC4wMDUxNjcsIDAuMDA1MTMyIiwgXAotICAgICAgICAgICIwLjAwNTE4NSwgMC4wMDUxNzcsIDAuMDA1MTU2LCAwLjAwNTE3NSwgMC4wMDUxNTksIDAuMDA1MTE5LCAwLjAwNTEyOSIsIFwKLSAgICAgICAgICAiMC4wMDUzNDMsIDAuMDA1MzI1LCAwLjAwNTMzNywgMC4wMDUzMjksIDAuMDA1MzA4LCAwLjAwNTMwNSwgMC4wMDUyODEiLCBcCi0gICAgICAgICAgIjAuMDA1NTU0LCAwLjAwNTUzOSwgMC4wMDU1MzksIDAuMDA1NTM2LCAwLjAwNTUyMiwgMC4wMDU0OSwgMC4wMDU0OTMiLCBcCi0gICAgICAgICAgIjAuMDA1ODA0LCAwLjAwNTc5NiwgMC4wMDU3ODIsIDAuMDA1NzYzLCAwLjAwNTc3MiwgMC4wMDU3NTUsIDAuMDA1NzQzIiwgXAotICAgICAgICAgICIwLjAwNjI3MiwgMC4wMDYyNTcsIDAuMDA2MjU3LCAwLjAwNjIzNCwgMC4wMDYyNDMsIDAuMDA2MjA4LCAwLjAwNjE4OSIsIFwKLSAgICAgICAgICAiMC4wMDY2NjUsIDAuMDA2NjYxLCAwLjAwNjY3OSwgMC4wMDY2NzEsIDAuMDA2NjE0LCAwLjAwNjY1NiwgMC4wMDY2MjkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxMjA5MjYsIDAuMDgyMDkyNiwgMC4xNTIwOTMsIDAuMjAyMDkzLCAwLjI4MjA5MywgMC4zNTIwOTMsIDAuNDUyMDkzIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDU0NDYsIDAuMDA1NDQ2LCAwLjAwNTQ0NiwgMC4wMDU0NDYsIDAuMDA1NDQ2LCAwLjAwNTQ0NiwgMC4wMDU0NDYiLCBcCi0gICAgICAgICAgIjAuMDA1NDQ1LCAwLjAwNTQ0NCwgMC4wMDU0NDQsIDAuMDA1NDQ0LCAwLjAwNTQ0NCwgMC4wMDU0NDQsIDAuMDA1NDQ0IiwgXAotICAgICAgICAgICIwLjAwNTUzOCwgMC4wMDU1MzgsIDAuMDA1NTM4LCAwLjAwNTUzOCwgMC4wMDU1MzgsIDAuMDA1NTM4LCAwLjAwNTUzOCIsIFwKLSAgICAgICAgICAiMC4wMDU2NTIsIDAuMDA1NjUsIDAuMDA1NjUsIDAuMDA1NjUxLCAwLjAwNTY1MSwgMC4wMDU2NTEsIDAuMDA1NjUiLCBcCi0gICAgICAgICAgIjAuMDA1NzgzLCAwLjAwNTc4MiwgMC4wMDU3ODIsIDAuMDA1NzgzLCAwLjAwNTc4MywgMC4wMDU3ODIsIDAuMDA1NzgyIiwgXAotICAgICAgICAgICIwLjAwNjAwNiwgMC4wMDYwMTgsIDAuMDA2MDE3LCAwLjAwNjAxNywgMC4wMDYwMDUsIDAuMDA2MDE4LCAwLjAwNjAxNyIsIFwKLSAgICAgICAgICAiMC4wMDYyMTcsIDAuMDA2MjE1LCAwLjAwNjIxNSwgMC4wMDYyMTUsIDAuMDA2MjE3LCAwLjAwNjIxNSwgMC4wMDYyMTUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBUTEFUTkNBWDE2ICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKFRMQVROQ0FYMTYpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMi43ODczMzsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBjbG9ja19nYXRpbmdfaW50ZWdyYXRlZF9jZWxsIDogImxhdGNoX3Bvc2VkZ2UiOwotICBzdGF0ZXRhYmxlKCIgQ0sgIEUgIiwgIiBFSU5UICIpIHsKLSAgICAgdGFibGUgOiAiICBMICBMIDogLSA6IEwgLCBcCi0gICAgICAgICAgICAgICAgTCAgSCA6IC0gOiBIICwgXAotICAgICAgICAgICAgICAgIEggIC0gOiAtIDogTiAiOwotICB9Ci0gIHBpbihFSU5UKSB7Ci0gICAgZGlyZWN0aW9uIDogaW50ZXJuYWw7Ci0gICAgaW50ZXJuYWxfbm9kZSA6ICJFSU5UIjsKLSAgfQotICBwaW4oQ0spICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYxMDE3NzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MTAxNzc7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjEwMDk7Ci0gICAgY2xvY2tfZ2F0ZV9jbG9ja19waW4gOiB0cnVlOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNTgzNywgMC4wMDU4MjUsIDAuMDA1ODksIDAuMDA1OTc3LCAwLjAwNjA5OCwgMC4wMDYzMjEsIDAuMDA2NTAxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA3OTMxLCAwLjAwNzkxOCwgMC4wMDc5OTEsIDAuMDA4MDgsIDAuMDA4MjEzLCAwLjAwODMxOCwgMC4wMDg0OTIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFFIjsKLSAgICAgIHNkZl9jb25kIDogIkUgPT0gMSdiMCI7Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4xMDUxMTgsIDAuMTEzMTU4LCAwLjEyMjQyOCwgMC4xMzAxOTEsIDAuMTM2Mjc2LCAwLjE0NDA1OCwgMC4xNTAwMTQiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEUpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYwNzg4MjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MDY3Nzg7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjA3ODgyOwotICAgIGNsb2NrX2dhdGVfZW5hYmxlX3BpbiA6IHRydWU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA2NzcsIDAuMDA2NzI3LCAwLjAwNjc3MSwgMC4wMDY4NjcsIDAuMDA2OTAxLCAwLjAwNzA0NiwgMC4wMDcxOTciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDY2NjcsIDAuMDA2NjM2LCAwLjAwNjY3NCwgMC4wMDY3MjcsIDAuMDA2ODE5LCAwLjAwNjkyMiwgMC4wMDcwNDkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMTg3NSwgLTAuMDEzNzUsIC0wLjAwNzUsIC0wLjAwNzUsIC0wLjAwMTI1LCAwLjAwMjUsIDAuMDA1IiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAxMjUsIC0wLjAwNjI1LCAtMC4wMDg3NSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMjUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxODc1LCAtMC4wMTUsIC0wLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzMTI1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDE1LCAtMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDIxMjUsIC0wLjAxODc1IiwgXAotICAgICAgICAgICItMC4wNTI1LCAtMC4wNDc1LCAtMC4wNDEyNSwgLTAuMDM1LCAtMC4wMzUsIC0wLjAzMTI1LCAtMC4wMjg3NSIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzM3NSwgLTAuMDMxMjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjI1LCAwLjAxNzUsIDAuMDIzNzUsIDAuMDMsIDAuMDM2MjUsIDAuMDQ2MjUsIDAuMDQ4NzUiLCBcCi0gICAgICAgICAgIjAuMDAxMjUsIDAuMDA2MjUsIDAuMDE4NzUsIDAuMDI1LCAwLjAzMTI1LCAwLjA0MTI1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICItMC4wMDUsIDAsIDAuMDEyNSwgMC4wMTg3NSwgMC4wMjUsIDAuMDM1LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjAxMTI1LCAwLCAwLjAwNjI1LCAwLjAxMjUsIDAuMDE4NzUsIDAuMDI4NzUsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDE3NSwgLTAuMDA2MjUsIDAsIDAuMDEyNSwgMC4wMTg3NSwgMC4wMjI1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wMjEyNSwgLTAuMDEsIC0wLjAwMzc1LCAwLjAwMjUsIDAuMDA4NzUsIDAuMDE4NzUsIDAuMDI3NSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxODc1LCAtMC4wMDYyNSwgMCwgMC4wMDYyNSwgMC4wMTYyNSwgMC4wMTg3NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjUsIDAuMDIsIDAuMDEzNzUsIDAuMDEzNzUsIDAuMDA3NSwgMC4wMDM3NSwgMC4wMDEyNSIsIFwKLSAgICAgICAgICAiMC4wMywgMC4wMjUsIDAuMDE4NzUsIDAuMDE4NzUsIDAuMDEyNSwgMC4wMTUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4wNDI1LCAwLjAzMTI1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMjUsIDAuMDIxMjUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMDQ4NzUsIDAuMDM3NSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMjEyNSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4wNDg3NSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDI3NSwgMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMDU4NzUsIDAuMDUzNzUsIDAuMDQ3NSwgMC4wNDEyNSwgMC4wNDEyNSwgMC4wMzc1LCAwLjAzNSIsIFwKLSAgICAgICAgICAiMC4wNjEyNSwgMC4wNTYyNSwgMC4wNSwgMC4wNSwgMC4wNDM3NSwgMC4wNCwgMC4wMzc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAsIC0wLjAxMTI1LCAtMC4wMTc1LCAtMC4wMjM3NSwgLTAuMDMsIC0wLjA0LCAtMC4wNDI1IiwgXAotICAgICAgICAgICIwLjAwNSwgMCwgLTAuMDEyNSwgLTAuMDE4NzUsIC0wLjAyNSwgLTAuMDM1LCAtMC4wMzc1IiwgXAotICAgICAgICAgICIwLjAxMTI1LCAwLjAwNjI1LCAtMC4wMDYyNSwgLTAuMDEyNSwgLTAuMDE4NzUsIC0wLjAyODc1LCAtMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4wMTc1LCAwLjAwNjI1LCAwLCAtMC4wMDYyNSwgLTAuMDEyNSwgLTAuMDIyNSwgLTAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMDIzNzUsIDAuMDEyNSwgMC4wMDYyNSwgLTAuMDA2MjUsIC0wLjAxMjUsIC0wLjAxNjI1LCAtMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMDI3NSwgMC4wMTYyNSwgMC4wMSwgMC4wMDM3NSwgLTAuMDAyNSwgLTAuMDEyNSwgLTAuMDIxMjUiLCBcCi0gICAgICAgICAgIjAuMDMsIDAuMDI1LCAwLjAxMjUsIDAuMDA2MjUsIDAsIC0wLjAxLCAtMC4wMTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihFQ0spICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogNS41MTgxNTsKLSAgICBjbG9ja19nYXRlX291dF9waW4gOiB0cnVlOwotICAgIHN0YXRlX2Z1bmN0aW9uIDogIihDSyBFSU5UKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5MzIsIDAuMDk1NDQsIDAuMTA1NTIxLCAwLjExMjg5NCwgMC4xMjE5MTksIDAuMTM4ODM0LCAwLjE0OTE0MSIsIFwKLSAgICAgICAgICAiMC4xMDE0NjIsIDAuMTAzNzA3LCAwLjExMzc4MiwgMC4xMjExNjcsIDAuMTMwMTg2LCAwLjE0NzEwOCwgMC4xNTc0MjUiLCBcCi0gICAgICAgICAgIjAuMTEwOTkyLCAwLjExMzIzMSwgMC4xMjMzMTUsIDAuMTMwNjQyLCAwLjEzOTY3MiwgMC4xNTY2MTMsIDAuMTY2OTMiLCBcCi0gICAgICAgICAgIjAuMTE4OTMxLCAwLjEyMTE3OCwgMC4xMzEyNDUsIDAuMTM4NTgzLCAwLjE0NzYwOSwgMC4xNjQ1NTcsIDAuMTc0ODY4IiwgXAotICAgICAgICAgICIwLjEyNTE4NCwgMC4xMjc0MjUsIDAuMTM3NTA0LCAwLjE0NDg5OSwgMC4xNTM5MDgsIDAuMTcwODMxLCAwLjE4MTE1MyIsIFwKLSAgICAgICAgICAiMC4xMzM5MzMsIDAuMTM2MTc2LCAwLjE0NjIzLCAwLjE1MzQ3MSwgMC4xNjI1MDMsIDAuMTc5NTY5LCAwLjE4OTc2MiIsIFwKLSAgICAgICAgICAiMC4xMzk5MjksIDAuMTQyMDgxLCAwLjE1MjE2MiwgMC4xNTk1NDksIDAuMTY4NTE4LCAwLjE4NTQ0OCwgMC4xOTU4MTIiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE3NDc4LCAwLjAyMDI4LCAwLjAzNDg0MSwgMC4wNDcxNTQsIDAuMDYzNTIsIDAuMDk2NTU1LCAwLjExNzYyMyIsIFwKLSAgICAgICAgICAiMC4wMTc1MDksIDAuMDIwMzM2LCAwLjAzNDg0MywgMC4wNDcxNDcsIDAuMDYzNTIzLCAwLjA5NjYzMSwgMC4xMTc2MTUiLCBcCi0gICAgICAgICAgIjAuMDE3NDYsIDAuMDIwMjgzLCAwLjAzNDg1NiwgMC4wNDcxMjQsIDAuMDYzNDk4LCAwLjA5NjU0NywgMC4xMTc2MDciLCBcCi0gICAgICAgICAgIjAuMDE3NDcyLCAwLjAyMDI2OCwgMC4wMzQ4NywgMC4wNDcxMzEsIDAuMDYzNDksIDAuMDk2NTUxLCAwLjExNzYxNCIsIFwKLSAgICAgICAgICAiMC4wMTc0MTUsIDAuMDIwMjcyLCAwLjAzNDg0MywgMC4wNDcxMjMsIDAuMDYzNTA2LCAwLjA5NjYyNCwgMC4xMTc2MTQiLCBcCi0gICAgICAgICAgIjAuMDE3NDQ4LCAwLjAyMDM2OCwgMC4wMzQ4MDgsIDAuMDQ3MTIzLCAwLjA2MzQ5NywgMC4wOTY2MjIsIDAuMTE3Njc3IiwgXAotICAgICAgICAgICIwLjAxNzQ3OSwgMC4wMjAzMjIsIDAuMDM0ODc2LCAwLjA0NzM2LCAwLjA2MzQ5NCwgMC4wOTY2MDQsIDAuMTE3NTk1Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4NDYzNiwgMC4wODY0OTQsIDAuMDk1MjQyLCAwLjEwMTk1NiwgMC4xMTA0NDQsIDAuMTI2ODUyLCAwLjEzNjk4NCIsIFwKLSAgICAgICAgICAiMC4wOTI2NjUsIDAuMDk0NTcxLCAwLjEwMzI4MSwgMC4xMTAwMTksIDAuMTE4NDk2LCAwLjEzNDkxNSwgMC4xNDUwMyIsIFwKLSAgICAgICAgICAiMC4xMDE5NjYsIDAuMTAzODE5LCAwLjExMjU3MiwgMC4xMTkzMDEsIDAuMTI3Nzg0LCAwLjE0NDE5NywgMC4xNTQzMTEiLCBcCi0gICAgICAgICAgIjAuMTA5NzUyLCAwLjExMTYwNiwgMC4xMjAzNjIsIDAuMTI3MDc5LCAwLjEzNTU2NSwgMC4xNTE5NzIsIDAuMTYyMTA0IiwgXAotICAgICAgICAgICIwLjExNTg0MywgMC4xMTc3NCwgMC4xMjY0NTgsIDAuMTMzMTg5LCAwLjE0MTY3MywgMC4xNTgwODksIDAuMTY4MjIiLCBcCi0gICAgICAgICAgIjAuMTIzNjk1LCAwLjEyNTU2NywgMC4xMzQzMjgsIDAuMTQxMDM2LCAwLjE0OTUyOCwgMC4xNjU5NDEsIDAuMTc2MDY0IiwgXAotICAgICAgICAgICIwLjEyOTcsIDAuMTMxNTU5LCAwLjE0MDMwOSwgMC4xNDcwMjcsIDAuMTU1NTExLCAwLjE3MTkyLCAwLjE4MjA2MSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTQwNDksIDAuMDE2NTQzLCAwLjAzMDEwMSwgMC4wNDE4NjksIDAuMDU3OTA1LCAwLjA5MDUzMiwgMC4xMTEyNzMiLCBcCi0gICAgICAgICAgIjAuMDE0MDM0LCAwLjAxNjU4NiwgMC4wMzAwNzEsIDAuMDQxODg2LCAwLjA1NzkxLCAwLjA5MDU0NCwgMC4xMTEyNzEiLCBcCi0gICAgICAgICAgIjAuMDE0MDYzLCAwLjAxNjUzNCwgMC4wMzAwOSwgMC4wNDE4OTEsIDAuMDU3ODU3LCAwLjA5MDU4OSwgMC4xMTEyNzIiLCBcCi0gICAgICAgICAgIjAuMDE0MDY1LCAwLjAxNjU4OCwgMC4wMzAxMDksIDAuMDQxODc0LCAwLjA1NzkyNywgMC4wOTA2MTYsIDAuMTExMjEyIiwgXAotICAgICAgICAgICIwLjAxNDAwMiwgMC4wMTY1NCwgMC4wMzAwMzEsIDAuMDQxODYzLCAwLjA1Nzg5MiwgMC4wOTA2MTYsIDAuMTExMjY3IiwgXAotICAgICAgICAgICIwLjAxNDAyNywgMC4wMTY1OTksIDAuMDMwMTE5LCAwLjA0MTg5MywgMC4wNTc5NSwgMC4wOTA2MzIsIDAuMTExMjk5IiwgXAotICAgICAgICAgICIwLjAxNDEwNiwgMC4wMTY1OTQsIDAuMDMwMTQzLCAwLjA0MTkwMiwgMC4wNTgwNzQsIDAuMDkwNTgsIDAuMTExMjgyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyODUxLCAwLjAyODMzLCAwLjAyODEzNywgMC4wMjgxOTEsIDAuMDI4Mjc4LCAwLjAyODM5MiwgMC4wMjg0MzMiLCBcCi0gICAgICAgICAgIjAuMDI4NDY0LCAwLjAyODI5MiwgMC4wMjgxMzIsIDAuMDI4MTg1LCAwLjAyODI2OCwgMC4wMjgzNzcsIDAuMDI4NDIiLCBcCi0gICAgICAgICAgIjAuMDI4NTc5LCAwLjAyODM3OCwgMC4wMjgxNzYsIDAuMDI4MjM2LCAwLjAyODMzNCwgMC4wMjg0NDgsIDAuMDI4NDg5IiwgXAotICAgICAgICAgICIwLjAyODY3NiwgMC4wMjg0ODMsIDAuMDI4MjcyLCAwLjAyODMyNywgMC4wMjg0MjYsIDAuMDI4NTQsIDAuMDI4NTgzIiwgXAotICAgICAgICAgICIwLjAyODYyNiwgMC4wMjg0NCwgMC4wMjgyNzQsIDAuMDI4MzQ3LCAwLjAyODQ0MywgMC4wMjg1NzQsIDAuMDI4NjIxIiwgXAotICAgICAgICAgICIwLjAyODg1NiwgMC4wMjg3MDMsIDAuMDI4NDk3LCAwLjAyODYyOSwgMC4wMjg2OTEsIDAuMDI4NzgxLCAwLjAyODg2OSIsIFwKLSAgICAgICAgICAiMC4wMjkxODksIDAuMDI4OTgzLCAwLjAyODgxLCAwLjAyODg1MSwgMC4wMjg5MjcsIDAuMDI5MDMzLCAwLjAyOTA2NSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzNjI1MiwgMC4wMzYyMDYsIDAuMDM2MzgzLCAwLjAzNjU4OSwgMC4wMzY3NzEsIDAuMDM2OTcxLCAwLjAzNzA0MSIsIFwKLSAgICAgICAgICAiMC4wMzYyMjIsIDAuMDM2MjA5LCAwLjAzNjQwOCwgMC4wMzY2LCAwLjAzNjc3OSwgMC4wMzY5NzYsIDAuMDM3MDQzIiwgXAotICAgICAgICAgICIwLjAzNjI5MiwgMC4wMzYyNDYsIDAuMDM2NDQxLCAwLjAzNjYzNSwgMC4wMzY4MjEsIDAuMDM3MDE3LCAwLjAzNzA4OCIsIFwKLSAgICAgICAgICAiMC4wMzYzNzUsIDAuMDM2Mjg0LCAwLjAzNjUwMSwgMC4wMzY3MDksIDAuMDM2ODg5LCAwLjAzNzA5MiwgMC4wMzcxNiIsIFwKLSAgICAgICAgICAiMC4wMzYzNzQsIDAuMDM2MzU5LCAwLjAzNjU4NywgMC4wMzY3OTQsIDAuMDM2OTgzLCAwLjAzNzE5OSwgMC4wMzcyNzYiLCBcCi0gICAgICAgICAgIjAuMDM2NjgsIDAuMDM2NTgzLCAwLjAzNjgwNSwgMC4wMzcwMDgsIDAuMDM3MTk5LCAwLjAzNzQwNCwgMC4wMzc0NzQiLCBcCi0gICAgICAgICAgIjAuMDM2OTI2LCAwLjAzNjg2NywgMC4wMzcwMDQsIDAuMDM3MjEsIDAuMDM3Mzg5LCAwLjAzNzU3NiwgMC4wMzc2NTkiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IFRMQVROU1JYMiAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKFRMQVROU1JYMikgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAxLjE4NTEyOwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIGxhdGNoIChRSU5ULE41KSB7Ci0gICAgZGF0YV9pbiA6ICJEIjsKLSAgICBlbmFibGUgOiAiKCghR04pIFJOKSI7Ci0gICAgcHJlc2V0IDogIighU04pIjsKLSAgfQotICBwaW4oRCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjQxMzM2OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDY0MDA3MTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2NDEzMzY7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjg2LCAwLjAwMDI4OSwgMC4wMDAyODksIDAuMDAwMjksIDAuMDAwMjksIDAuMDAwMjkxLCAwLjAwMDI5MSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDMxMywgMC4wMDAzMDIsIDAuMDAwMywgMC4wMDAzLCAwLjAwMDI5OSwgMC4wMDAyOTgsIDAuMDAwMjk4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkdOIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlJOJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIlJOX0VRXzFfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLCAwLjAxMTI1LCAwLjAxNzUsIDAuMDIzNzUsIDAuMDIzNzUsIDAuMDMzNzUsIDAuMDM2MjUiLCBcCi0gICAgICAgICAgIi0wLjAwNSwgMC4wMDYyNSwgMC4wMTI1LCAwLjAxODc1LCAwLjAxODc1LCAwLjAyMjUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjAxMTI1LCAtMC4wMDYyNSwgMCwgMC4wMDYyNSwgMC4wMTI1LCAwLjAxNjI1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDE3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAsIDAuMDA2MjUsIDAuMDEsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTg3NSwgLTAuMDA2MjUsIC0wLjAwNjI1LCAwLCAwLjAwMzc1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjAzMzc1LCAtMC4wMjI1LCAtMC4wMTYyNSwgLTAuMDEsIC0wLjAwMzc1LCAwLCAwLjAwMjUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDg3NSwgMCIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAxODc1LCAtMC4wMDc1LCAtMC4wMDEyNSwgMC4wMDUsIDAuMDA1LCAwLjAwODc1LCAwLjAxNzUiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMCwgMCwgMC4wMDM3NSwgMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAxMjUsIC0wLjAwNjI1LCAtMC4wMDI1LCAwIiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDEyNSwgLTAuMDA4NzUsIDAiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDE4NzUsIC0wLjAwODc1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDQ2MjUsIC0wLjAzNSwgLTAuMDI4NzUsIC0wLjAyODc1LCAtMC4wMjI1LCAtMC4wMTg3NSwgLTAuMDE2MjUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDIxMjUsIC0wLjAxODc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkdOIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJSTiZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJSTl9FUV8xX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEyNSwgMC4wMDEyNSwgLTAuMDA1LCAtMC4wMTEyNSwgLTAuMDExMjUsIC0wLjAyMTI1LCAtMC4wMjM3NSIsIFwKLSAgICAgICAgICAiMC4wMTc1LCAwLjAxMjUsIDAsIDAsIC0wLjAwNjI1LCAtMC4wMSwgLTAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMDIzNzUsIDAuMDE4NzUsIDAuMDEyNSwgMC4wMDYyNSwgMCwgLTAuMDAzNzUsIC0wLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMDMsIDAuMDI1LCAwLjAxODc1LCAwLjAxMjUsIDAuMDA2MjUsIDAuMDAyNSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMDM2MjUsIDAuMDMxMjUsIDAuMDE4NzUsIDAuMDE4NzUsIDAuMDEyNSwgMC4wMDg3NSwgMCIsIFwKLSAgICAgICAgICAiMC4wNDYyNSwgMC4wMzUsIDAuMDI4NzUsIDAuMDIyNSwgMC4wMTYyNSwgMC4wMTI1LCAwLjAxIiwgXAotICAgICAgICAgICIwLjA0ODc1LCAwLjA0Mzc1LCAwLjAzMTI1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMjEyNSwgMC4wMTI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDMxMjUsIDAuMDI2MjUsIDAuMDEzNzUsIDAuMDEzNzUsIDAuMDA3NSwgMC4wMDM3NSwgMC4wMDEyNSIsIFwKLSAgICAgICAgICAiMC4wMzYyNSwgMC4wMzEyNSwgMC4wMjUsIDAuMDE4NzUsIDAuMDEyNSwgMC4wMDg3NSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiMC4wNDI1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDI1LCAwLjAxODc1LCAwLjAxNSwgMC4wMTI1IiwgXAotICAgICAgICAgICIwLjA0ODc1LCAwLjA0Mzc1LCAwLjAzMTI1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMjEyNSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4wNTUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMzEyNSwgMC4wMjc1LCAwLjAxODc1IiwgXAotICAgICAgICAgICIwLjA1ODc1LCAwLjA1Mzc1LCAwLjA0NzUsIDAuMDQxMjUsIDAuMDM1LCAwLjAzMTI1LCAwLjAyODc1IiwgXAotICAgICAgICAgICIwLjA2MTI1LCAwLjA1NjI1LCAwLjA1LCAwLjA0Mzc1LCAwLjA0Mzc1LCAwLjAzMzc1LCAwLjAzMTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihHTikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjI3NDAzOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYyNzQwMzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2MjczNDk7Ci0gICAgY2xvY2sgOiB0cnVlOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDM2NSwgMC4wMDAzNzEsIDAuMDAwNDUyLCAwLjAwMDU1OSwgMC4wMDA2ODUsIDAuMDAwOTE2LCAwLjAwMTEwMSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNTQsIDAuMDA1Mzk5LCAwLjAwNTQ3NCwgMC4wMDU1ODYsIDAuMDA1NzE0LCAwLjAwNTk2NCwgMC4wMDYxNCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJHTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQmU04iOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4xMzk1MzksIDAuMTQ2OTA0LCAwLjE1Mzc0MiwgMC4xNTg1NywgMC4xNjIzNzQsIDAuMTY3NTUyLCAwLjE3MTMzOCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjY2NTQ5NDsKLSAgICBmdW5jdGlvbiA6ICJRSU5UIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJEIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODQ5NDIsIDAuMTYzODUxLCAwLjIyNzY3NiwgMC4zMDYwODYsIDAuMzg1Njk0LCAwLjQ2NDA3MiwgMC41NDQ1MTMiLCBcCi0gICAgICAgICAgIjAuMDkxMTIsIDAuMTcwMzIsIDAuMjMzODI1LCAwLjMxMjIyMywgMC4zOTIyOTIsIDAuNDcwMjY1LCAwLjU1MDcwNyIsIFwKLSAgICAgICAgICAiMC4wOTgyMjMsIDAuMTc3MzU5LCAwLjI0MDc4NiwgMC4zMTkzMSwgMC4zOTgyODksIDAuNDc4NDQ1LCAwLjU1NzczIiwgXAotICAgICAgICAgICIwLjEwNDM3NSwgMC4xODM1MjksIDAuMjQ2NzE3LCAwLjMyNTQ4NywgMC40MDU1MDYsIDAuNDgzNjI5LCAwLjU2Mzg1MiIsIFwKLSAgICAgICAgICAiMC4xMDk3NjUsIDAuMTg4ODksIDAuMjUyNDMzLCAwLjMzMDgzMywgMC40MTA4NDIsIDAuNDg4OTIyLCAwLjU2OTE0NSIsIFwKLSAgICAgICAgICAiMC4xMTY4MzgsIDAuMTk2MDcxLCAwLjI1OTAwNywgMC4zMzg3MDMsIDAuNDE3ODU4LCAwLjQ5NjI1OSwgMC41NzYyODgiLCBcCi0gICAgICAgICAgIjAuMTIyMjU2LCAwLjIwMTIwNCwgMC4yNjQ4NTcsIDAuMzQzNjgsIDAuNDIyNTQ2LCAwLjUwMjM1NCwgMC41ODE1NjIiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM4MjU5LCAwLjIwNTkzOCwgMC4zNDA1MzgsIDAuNTA4NTA4LCAwLjY3NzYxMSwgMC44NDQ3NCwgMS4wMTM3MyIsIFwKLSAgICAgICAgICAiMC4wMzgxOTgsIDAuMjA2MTYzLCAwLjM0MDM2NSwgMC41MDg1NDcsIDAuNjc2NzIsIDAuODQ0MjE3LCAxLjAxMzI2IiwgXAotICAgICAgICAgICIwLjAzODIwMiwgMC4yMDU4MzUsIDAuMzQwMzUyLCAwLjUwODY4NiwgMC42NzU0OTMsIDAuODQ0NzExLCAxLjAxMjkzIiwgXAotICAgICAgICAgICIwLjAzODMxNywgMC4yMDU1MzUsIDAuMzM5NzYzLCAwLjUwODU4NCwgMC42NzY3NjUsIDAuODQ0MTY4LCAxLjAxMzgyIiwgXAotICAgICAgICAgICIwLjAzODMxMSwgMC4yMDYxOTksIDAuMzQwMzUsIDAuNTA4NTA5LCAwLjY3NzA2NiwgMC44NDQwMjUsIDEuMDEzOTUiLCBcCi0gICAgICAgICAgIjAuMDM4MjI0LCAwLjIwNjE1LCAwLjM0MDA4NSwgMC41MDg5MzMsIDAuNjc3MzA2LCAwLjg0NDc1MSwgMS4wMTM3NyIsIFwKLSAgICAgICAgICAiMC4wMzgyNjgsIDAuMjA1NjExLCAwLjM0MDY0OCwgMC41MDc5NjQsIDAuNjc2NjUsIDAuODQ1NjQ4LCAxLjAxMzkxIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwMDg4MywgMC4xNzc0NDgsIDAuMjM4NjA0LCAwLjMxNTM0NiwgMC4zOTE5MjksIDAuNDY4MjM5LCAwLjU0NDcwNiIsIFwKLSAgICAgICAgICAiMC4xMDY3MTQsIDAuMTgzMDk0LCAwLjI0NDQ1MiwgMC4zMjEwMjYsIDAuMzk3NDU1LCAwLjQ3NDI5NiwgMC41NTA3MDgiLCBcCi0gICAgICAgICAgIjAuMTEzMDQxLCAwLjE4OTU4NywgMC4yNTA3MzIsIDAuMzI3NDE1LCAwLjQwNDAyLCAwLjQ4MDM5NCwgMC41NTY5ODQiLCBcCi0gICAgICAgICAgIjAuMTE4NjM2LCAwLjE5NTA4MiwgMC4yNTYyMjUsIDAuMzMyNzgxLCAwLjQwOTUxMywgMC40ODU4NzUsIDAuNTYyNDQzIiwgXAotICAgICAgICAgICIwLjEyMzE3NCwgMC4xOTk2MTUsIDAuMjYwOTY0LCAwLjMzNzM3NSwgMC40MTM5NTksIDAuNDkwNzgsIDAuNTY3Mjc2IiwgXAotICAgICAgICAgICIwLjEyOTU2NiwgMC4yMDU5NzQsIDAuMjY3MjUzLCAwLjM0Mzg0NywgMC40MjA0NDMsIDAuNDk2ODA0LCAwLjU3MzQxNCIsIFwKLSAgICAgICAgICAiMC4xMzQzNjgsIDAuMjEwODM3LCAwLjI3MjA2NiwgMC4zNDg2ODEsIDAuNDI1MDExLCAwLjUwMTU1MSwgMC41NzgzNTgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM2NDY3LCAwLjE5NDQwMywgMC4zMjExOTIsIDAuNDgwNDA4LCAwLjYzODQwMywgMC43OTY2MjEsIDAuOTU0MTM4IiwgXAotICAgICAgICAgICIwLjAzNjQzNiwgMC4xOTQxNjQsIDAuMzIxNTU0LCAwLjQ4MDM5OCwgMC42MzgyNzgsIDAuNzk2OTk0LCAwLjk1NzA2MiIsIFwKLSAgICAgICAgICAiMC4wMzY0NDEsIDAuMTk0NDAxLCAwLjMyMDY2LCAwLjQ4MDM2MSwgMC42MzkyOSwgMC43OTY3NzQsIDAuOTU0NjY2IiwgXAotICAgICAgICAgICIwLjAzNjQzNCwgMC4xOTQwODcsIDAuMzIxMTIsIDAuNDc5Nzg5LCAwLjYzOTI4OCwgMC43OTY4NjYsIDAuOTU0OTk3IiwgXAotICAgICAgICAgICIwLjAzNjQ2LCAwLjE5NDE2MiwgMC4zMjE1MzgsIDAuNDc5MzQ4LCAwLjYzODA2MiwgMC43OTY3MTMsIDAuOTU3MDc5IiwgXAotICAgICAgICAgICIwLjAzNjcxOCwgMC4xOTQxNDgsIDAuMzIxMjk0LCAwLjQ4MDMwMSwgMC42MzkxOSwgMC43OTcxNywgMC45NTUyNiIsIFwKLSAgICAgICAgICAiMC4wMzY2NSwgMC4xOTQ0MzcsIDAuMzIxNDcsIDAuNDgwMzI1LCAwLjYzNzg1NSwgMC43OTY5OTYsIDAuOTU2ODciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiR04iOwotICAgICAgdGltaW5nX3NlbnNlIDogbm9uX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiBmYWxsaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEzMzcxMSwgMC4yMTI2NzQsIDAuMjc2NDIzLCAwLjM1NDgyNywgMC40MzQ0MjYsIDAuNTEyODM1LCAwLjU5MzI0OSIsIFwKLSAgICAgICAgICAiMC4xNDEwNzUsIDAuMjIwMjQ2LCAwLjI4MzgsIDAuMzYyMjAxLCAwLjQ0MTg0MywgMC41MjAyMjMsIDAuNjAwNjE1IiwgXAotICAgICAgICAgICIwLjE0NzkzMiwgMC4yMjY5MzMsIDAuMjkwNjU2LCAwLjM2OTA1NywgMC40NDg2NCwgMC41MjcwNTUsIDAuNjA3NDc2IiwgXAotICAgICAgICAgICIwLjE1MjYzNywgMC4yMzE4NjIsIDAuMjk1MzY4LCAwLjM3NDEyNSwgMC40NTMzMzQsIDAuNTMxNzg4LCAwLjYxMjE3OSIsIFwKLSAgICAgICAgICAiMC4xNTY1NDMsIDAuMjM1NzE5LCAwLjI5ODgxMSwgMC4zNzc2NDgsIDAuNDU2NjIsIDAuNTM1NTgzLCAwLjYxNjA0IiwgXAotICAgICAgICAgICIwLjE2MTY3OCwgMC4yNDA2MDIsIDAuMzA0Mjg0LCAwLjM4MzMyOSwgMC40NjIxODksIDAuNTQwNjkxLCAwLjYxOTkxOSIsIFwKLSAgICAgICAgICAiMC4xNjU0OSwgMC4yNDQ3MDcsIDAuMzA4MTQzLCAwLjM4NjYzNiwgMC40NjYyMjYsIDAuNTQ0Njk4LCAwLjYyNTAzOSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzgyMjgsIDAuMjA1NzcxLCAwLjM0MDM3OSwgMC41MDg2MzIsIDAuNjc3NTgzLCAwLjg0NDQyOCwgMS4wMTM3MyIsIFwKLSAgICAgICAgICAiMC4wMzgyMiwgMC4yMDYyMTcsIDAuMzQwMzg4LCAwLjUwODY1OCwgMC42Nzc1NywgMC44NDM5MTYsIDEuMDEzNzciLCBcCi0gICAgICAgICAgIjAuMDM4MjQsIDAuMjA1OTEsIDAuMzQwMzc2LCAwLjUwODY0MSwgMC42Nzc1ODIsIDAuODQ1MDAyLCAxLjAxMzc0IiwgXAotICAgICAgICAgICIwLjAzODIzNiwgMC4yMDYxOTQsIDAuMzQwMzY5LCAwLjUwODA4LCAwLjY3NzU5MywgMC44NDQ5NTUsIDEuMDEzNzYiLCBcCi0gICAgICAgICAgIjAuMDM4MjM2LCAwLjIwNjE5MSwgMC4zNDAwODMsIDAuNTA4NTM0LCAwLjY3NTk4NCwgMC44NDQzNDgsIDEuMDEzODIiLCBcCi0gICAgICAgICAgIjAuMDM4MzcsIDAuMjA1NTA3LCAwLjM0MDM0MywgMC41MDg0ODUsIDAuNjc1MzI0LCAwLjg0Mjg3MiwgMS4wMTA1IiwgXAotICAgICAgICAgICIwLjAzODQ4NywgMC4yMDYyMjIsIDAuMzQwNjc5LCAwLjUwODY4LCAwLjY3NzUyMywgMC44NDM3ODYsIDEuMDEzNjUiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTM5NTM5LCAwLjIxNTk1MiwgMC4yNzcwNjcsIDAuMzUzNjE4LCAwLjQzMDMxOCwgMC41MDY2NjgsIDAuNTgzMjg2IiwgXAotICAgICAgICAgICIwLjE0NjkwNCwgMC4yMjMzNzIsIDAuMjg0NSwgMC4zNjEyMzMsIDAuNDM3OTIsIDAuNTE0MTkzLCAwLjU5MDY2MyIsIFwKLSAgICAgICAgICAiMC4xNTM3NDIsIDAuMjMwMjEsIDAuMjkxMzQyLCAwLjM2ODA2OCwgMC40NDQ1MjcsIDAuNTIxMiwgMC41OTc5NTYiLCBcCi0gICAgICAgICAgIjAuMTU4NTcsIDAuMjM1MDM2LCAwLjI5NjE2NCwgMC4zNzI4OTcsIDAuNDQ5NTY0LCAwLjUyNTg0MywgMC42MDIyOTQiLCBcCi0gICAgICAgICAgIjAuMTYyMzc0LCAwLjIzODc5MSwgMC4yOTk5MjEsIDAuMzc2NjQ3LCAwLjQ1MzAyLCAwLjUyOTc0NiwgMC42MDYzMTQiLCBcCi0gICAgICAgICAgIjAuMTY3NTUyLCAwLjI0Mzk4NywgMC4zMDUzMDYsIDAuMzgxNjQ5LCAwLjQ1ODI1NywgMC41MzUwMjEsIDAuNjExMjQ3IiwgXAotICAgICAgICAgICIwLjE3MTMzOCwgMC4yNDc4NjcsIDAuMzA4OTk2LCAwLjM4NTYzNCwgMC40NjIxMTIsIDAuNTM4OTc3LCAwLjYxNTEyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzNjM5MiwgMC4xOTQxOTQsIDAuMzIwNzUsIDAuNDc5MzEsIDAuNjM5Mjc4LCAwLjc5Njc1OCwgMC45NTUyNjYiLCBcCi0gICAgICAgICAgIjAuMDM2NDM3LCAwLjE5NDQzMSwgMC4zMjExMjYsIDAuNDgwNDA2LCAwLjYzODM0MywgMC43OTcxNTMsIDAuOTU1MDgxIiwgXAotICAgICAgICAgICIwLjAzNjQyNiwgMC4xOTQ0MjksIDAuMzIxMDc4LCAwLjQ4MDQwNSwgMC42MzkyMjUsIDAuNzk4MjI2LCAwLjk1NTMyMyIsIFwKLSAgICAgICAgICAiMC4wMzY0MzUsIDAuMTk0NDMxLCAwLjMyMTExNCwgMC40ODA0MDYsIDAuNjM4NDE2LCAwLjc5NzAyNSwgMC45NTM4NyIsIFwKLSAgICAgICAgICAiMC4wMzY0NDMsIDAuMTk0NDM4LCAwLjMyMDk5OSwgMC40ODA0MDQsIDAuNjM4MjUyLCAwLjc5ODIsIDAuOTU3MDgyIiwgXAotICAgICAgICAgICIwLjAzNjQwMSwgMC4xOTQwMjEsIDAuMzIxNTQ2LCAwLjQ3OTU2NSwgMC42MzgxOSwgMC43OTgyMzIsIDAuOTU0OTUzIiwgXAotICAgICAgICAgICIwLjAzNjc1MywgMC4xOTQ0MjUsIDAuMzIxMDk1LCAwLjQ4MDMxNywgMC42MzgzODUsIDAuNzk2OTYyLCAwLjk1NTI5NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcmlzaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEyMjQ0NSwgMC4yMDE0MDcsIDAuMjY1MTU3LCAwLjM0MzU1OSwgMC40MjMxNTEsIDAuNTAxNTYyLCAwLjU4MTk3OSIsIFwKLSAgICAgICAgICAiMC4xMjg0NDUsIDAuMjA3NjQ0LCAwLjI3MTA1OSwgMC4zNDk1ODMsIDAuNDI4NjA3LCAwLjUwNzU2NSwgMC41ODgwMDIiLCBcCi0gICAgICAgICAgIjAuMTM1NjQ2LCAwLjIxNDc5OCwgMC4yNzc5NjIsIDAuMzU2NzU3LCAwLjQzNjg0MiwgMC41MTYwMTMsIDAuNTk1MTY4IiwgXAotICAgICAgICAgICIwLjE0MTQ3MSwgMC4yMjA2NTIsIDAuMjg0MTgzLCAwLjM2MjYwNCwgMC40NDE1NjksIDAuNTIwNTU3LCAwLjYwMDk4IiwgXAotICAgICAgICAgICIwLjE0NjUzNCwgMC4yMjU3MDUsIDAuMjg5MjQzLCAwLjM2NzY0MSwgMC40NDc3MTMsIDAuNTI2NDA0LCAwLjYwNjA0MiIsIFwKLSAgICAgICAgICAiMC4xNTMzMSwgMC4yMzI0OTcsIDAuMjk2MDMzLCAwLjM3NDU0OCwgMC40NTQwNzYsIDAuNTMyNDA0LCAwLjYxMTg4OSIsIFwKLSAgICAgICAgICAiMC4xNTg2MDgsIDAuMjM3NTQsIDAuMzAxMzQ3LCAwLjM4MDU3NSwgMC40NTkwNDMsIDAuNTM3NzE0LCAwLjYxODExNCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzgyNjYsIDAuMjA1ODA3LCAwLjM0MDM3NiwgMC41MDg2MjgsIDAuNjc3NTg2LCAwLjg0NDcxNSwgMS4wMTM3MyIsIFwKLSAgICAgICAgICAiMC4wMzgyODQsIDAuMjA2MjA4LCAwLjM0MDc0NCwgMC41MDg1MiwgMC42NzY1MjEsIDAuODQ0NTc5LCAxLjAxMzc2IiwgXAotICAgICAgICAgICIwLjAzODI0NCwgMC4yMDYyMjUsIDAuMzQwMTU4LCAwLjUwODcwMiwgMC42NzY3MzUsIDAuODQ1MDA0LCAxLjAxMzc4IiwgXAotICAgICAgICAgICIwLjAzODIzMiwgMC4yMDYxOTQsIDAuMzQwMzc4LCAwLjUwODMyMSwgMC42NzY2MDQsIDAuODQ0NjMsIDEuMDEzODIiLCBcCi0gICAgICAgICAgIjAuMDM4MjMsIDAuMjA2MjA0LCAwLjM0MDM2NSwgMC41MDg3MTQsIDAuNjc2NzIzLCAwLjg0NTkzOCwgMS4wMTM4IiwgXAotICAgICAgICAgICIwLjAzODI3OSwgMC4yMDYyMDgsIDAuMzQwMzgsIDAuNTA4NzQzLCAwLjY3NzYwMywgMC44NDM1MTMsIDEuMDEyNjkiLCBcCi0gICAgICAgICAgIjAuMDM4NDY3LCAwLjIwNTcwNiwgMC4zNDA0MDEsIDAuNTA4NTMsIDAuNjc2NTM0LCAwLjg0NDUwNywgMS4wMTM3MSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogZmFsbGluZ19lZGdlOwotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMjkzNTMsIDAuMjA1Nzc3LCAwLjI2Njk3MiwgMC4zNDM1MDEsIDAuNDIwMTIxLCAwLjQ5NjU0NSwgMC41NzMzMDQiLCBcCi0gICAgICAgICAgIjAuMTM3MjI2LCAwLjIxMzcyLCAwLjI3NDkxNSwgMC4zNTE1OTksIDAuNDI4MjA3LCAwLjUwNDYwNiwgMC41ODEyOTEiLCBcCi0gICAgICAgICAgIjAuMTQ1ODc4LCAwLjIyMjM0OSwgMC4yODM1MTUsIDAuMzYwMTM3LCAwLjQzNjYzMywgMC41MTMwNTYsIDAuNTg5NjMyIiwgXAotICAgICAgICAgICIwLjE1Mjg5LCAwLjIyOTI0MywgMC4yOTA1OTUsIDAuMzY3MTczLCAwLjQ0MzY3NywgMC41MjAwMzksIDAuNTk2ODY0IiwgXAotICAgICAgICAgICIwLjE1OTIxNCwgMC4yMzU1OTEsIDAuMjk2ODAzLCAwLjM3MzUyMiwgMC40NDk5NTksIDAuNTI2Mzg2LCAwLjYwMzIxMSIsIFwKLSAgICAgICAgICAiMC4xNjgzMDYsIDAuMjQ0NzU0LCAwLjMwNjAyNCwgMC4zODI2NzQsIDAuNDU5MTc5LCAwLjUzNTU0MywgMC42MTIzNjUiLCBcCi0gICAgICAgICAgIjAuMTc1MjE4LCAwLjI1MTcxNiwgMC4zMTMwMTIsIDAuMzg5NTUyLCAwLjQ2NjEyMSwgMC41NDI0ODksIDAuNjE5MzAzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzNjQ0MSwgMC4xOTQ0MSwgMC4zMjEzNzIsIDAuNDgwMzI5LCAwLjYzODI5MSwgMC43OTc1MjUsIDAuOTU3MTAxIiwgXAotICAgICAgICAgICIwLjAzNjYwMywgMC4xOTQ0MTksIDAuMzIwNzc2LCAwLjQ4MDM2NCwgMC42MzkyNzksIDAuNzk4MDk4LCAwLjk1Njk2NyIsIFwKLSAgICAgICAgICAiMC4wMzY0NDIsIDAuMTk0NDA3LCAwLjMyMTUxMywgMC40ODA0MDgsIDAuNjM5MjI3LCAwLjc5NzIyNiwgMC45NTcwMzEiLCBcCi0gICAgICAgICAgIjAuMDM2NDQ3LCAwLjE5NDQyMiwgMC4zMjE1NDEsIDAuNDgwNDAyLCAwLjYzOTIxNCwgMC43OTcyNjUsIDAuOTU3MDIzIiwgXAotICAgICAgICAgICIwLjAzNjQ2MiwgMC4xOTQyOTYsIDAuMzIwOTk4LCAwLjQ4MDQwMiwgMC42MzkyODIsIDAuNzk2ODI1LCAwLjk1NzAxOSIsIFwKLSAgICAgICAgICAiMC4wMzY1NDIsIDAuMTk0NDA3LCAwLjMyMTMsIDAuNDgwNCwgMC42MzkyMTUsIDAuNzk2OTY2LCAwLjk1NzAxNCIsIFwKLSAgICAgICAgICAiMC4wMzY2LCAwLjE5NDQxOCwgMC4zMjE0NjYsIDAuNDgwMzE3LCAwLjYzOTE3NiwgMC43OTY5MTIsIDAuOTU2OTI4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiBwcmVzZXQ7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1Mzg3NSwgMC4xMzMwMjEsIDAuMTk2NTQ4LCAwLjI3NTQ4OCwgMC4zNTQ4MzEsIDAuNDMzODEzLCAwLjUxMzAxMiIsIFwKLSAgICAgICAgICAiMC4wNjIxMTcsIDAuMTQxMjUxLCAwLjIwNDc5MiwgMC4yODM3MzYsIDAuMzYyODk4LCAwLjQ0MjIxNCwgMC41MjEyNjEiLCBcCi0gICAgICAgICAgIjAuMDcxOTU2LCAwLjE1MTEwNCwgMC4yMTQwOTEsIDAuMjkzNTQ1LCAwLjM3Mjg4MSwgMC40NTIwNjgsIDAuNTMxMDg5IiwgXAotICAgICAgICAgICIwLjA3OTc5NiwgMC4xNTg5MDIsIDAuMjIyMzE1LCAwLjMwMDk1OSwgMC4zODA2MTIsIDAuNDU5ODQzLCAwLjUzODc3NCIsIFwKLSAgICAgICAgICAiMC4wODU5NzIsIDAuMTY0Nzg2LCAwLjIyODM5MywgMC4zMDc1NTcsIDAuMzg2Njk2LCAwLjQ2NTkwOCwgMC41NDUwNTgiLCBcCi0gICAgICAgICAgIjAuMDkzOTc3LCAwLjE3MjgyLCAwLjIzNjE3MSwgMC4zMTUyOTQsIDAuMzk0NDY2LCAwLjQ3MzY1MywgMC41NTI3NTIiLCBcCi0gICAgICAgICAgIjAuMDk5NjgxLCAwLjE3ODQ3NSwgMC4yNDE2NDIsIDAuMzIwOTg5LCAwLjQwMDE4OCwgMC40NzkzNTksIDAuNTU4NTA1Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzODM3NywgMC4yMDYxOTcsIDAuMzQwMzQ5LCAwLjUwODQ3LCAwLjY3NzUwNCwgMC44NDU4MjQsIDEuMDE0IiwgXAotICAgICAgICAgICIwLjAzODI5MSwgMC4yMDYxOTksIDAuMzQwMzQ5LCAwLjUwODQ2OCwgMC42Nzc0OTYsIDAuODQ0Nzg2LCAxLjAxMjg3IiwgXAotICAgICAgICAgICIwLjAzODI5NiwgMC4yMDYyMDcsIDAuMzM5NzA0LCAwLjUwODk5NSwgMC42Nzc0NjYsIDAuODQ1ODQ3LCAxLjAxNDMiLCBcCi0gICAgICAgICAgIjAuMDM4NDQsIDAuMjA2MTUzLCAwLjM0MDY4MSwgMC41MDg1MzQsIDAuNjc3NDczLCAwLjg0NTgxMiwgMS4wMTQyNSIsIFwKLSAgICAgICAgICAiMC4wMzg2LCAwLjIwNTc0NywgMC4zNDA3ODUsIDAuNTA5MTI5LCAwLjY3NzUzNiwgMC44NDU4MTEsIDEuMDE0MjQiLCBcCi0gICAgICAgICAgIjAuMDM4NjE5LCAwLjIwNjA0LCAwLjM0MDc0LCAwLjUwOTEwMSwgMC42Nzc0NDUsIDAuODQ1NzA1LCAxLjAxNDA1IiwgXAotICAgICAgICAgICIwLjAzODY1OSwgMC4yMDU2OCwgMC4zNDAzNTQsIDAuNTA4OTIxLCAwLjY3NzMxNCwgMC44NDU3MTMsIDEuMDE0MSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjc1NzUsIDAuMTQ0MDc4LCAwLjIwNTI0MSwgMC4yODE5NjcsIDAuMzU4NjAyLCAwLjQzNDkxMiwgMC41MTE2NzIiLCBcCi0gICAgICAgICAgIjAuMDczNjYzLCAwLjE1MDA5NiwgMC4yMTEyOTEsIDAuMjg3ODI3LCAwLjM2NDQyNiwgMC40NDEyNTEsIDAuNTE3NTg0IiwgXAotICAgICAgICAgICIwLjA4MTQ0OCwgMC4xNTc5MjIsIDAuMjE5MDU0LCAwLjI5NTU5MywgMC4zNzIyMTMsIDAuNDQ5MDQ2LCAwLjUyNTM2IiwgXAotICAgICAgICAgICIwLjA4ODQ0OSwgMC4xNjQ5MjQsIDAuMjI2MDcyLCAwLjMwMjgyNSwgMC4zNzk1MzUsIDAuNDU2MjA4LCAwLjUzMjgzOCIsIFwKLSAgICAgICAgICAiMC4wOTQ0MywgMC4xNzA4NjYsIDAuMjMyMDYsIDAuMzA4NzE3LCAwLjM4NTI0NCwgMC40NjE5NzUsIDAuNTM4NTM0IiwgXAotICAgICAgICAgICIwLjEwMjg3OSwgMC4xNzkzMTIsIDAuMjQwNTk3LCAwLjMxNzA3LCAwLjM5MzYsIDAuNDcwNDI4LCAwLjU0Njc4NyIsIFwKLSAgICAgICAgICAiMC4xMDkzNDcsIDAuMTg1NjE1LCAwLjI0NzAxMSwgMC4zMjM1MDEsIDAuNDAwMTA2LCAwLjQ3NjQzNSwgMC41NTMzMDIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM2NDQ4LCAwLjE5NDM5MywgMC4zMjExNTMsIDAuNDgwNDEyLCAwLjYzODEzLCAwLjc5NzEyNSwgMC45NTcxMDIiLCBcCi0gICAgICAgICAgIjAuMDM2NDM4LCAwLjE5NDIyOCwgMC4zMjE1NDgsIDAuNDgwNDA2LCAwLjYzODE4NSwgMC43OTY5NzYsIDAuOTU1NjgzIiwgXAotICAgICAgICAgICIwLjAzNjQ0NSwgMC4xOTQ0MDEsIDAuMzIwOTg5LCAwLjQ3OTQ3MywgMC42MzgxMjcsIDAuNzk2OTI2LCAwLjk1NzEzMyIsIFwKLSAgICAgICAgICAiMC4wMzY1NDgsIDAuMTk0NDI5LCAwLjMyMTQ4OSwgMC40ODA0MDUsIDAuNjM5MTY4LCAwLjc5NjcxMSwgMC45NTUzNTQiLCBcCi0gICAgICAgICAgIjAuMDM2NjU3LCAwLjE5NDQ3MSwgMC4zMjE0ODIsIDAuNDgwMzAxLCAwLjYzOTE2NSwgMC43OTcwNzUsIDAuOTU2OTQ4IiwgXAotICAgICAgICAgICIwLjAzNjc0MywgMC4xOTQ0OCwgMC4zMjE0MTksIDAuNDgwMjUzLCAwLjYzODQxNiwgMC43OTgwMjcsIDAuOTU2OTA5IiwgXAotICAgICAgICAgICIwLjAzNzA3MywgMC4xOTQyNTQsIDAuMzIxNDgsIDAuNDgwMjMyLCAwLjYzOTA3NSwgMC43OTcyNDcsIDAuOTU2ODYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJEIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDUyMywgMC4wMDUyOTEsIDAuMDA1Mjk5LCAwLjAwNTMwMywgMC4wMDUzMDYsIDAuMDA1MzA3LCAwLjAwNTMwOCIsIFwKLSAgICAgICAgICAiMC4wMDUyMTEsIDAuMDA1MjczLCAwLjAwNTI4MSwgMC4wMDUyODUsIDAuMDA1Mjg3LCAwLjAwNTI4OSwgMC4wMDUyOSIsIFwKLSAgICAgICAgICAiMC4wMDUyMTYsIDAuMDA1Mjc3LCAwLjAwNTI4NSwgMC4wMDUyOSwgMC4wMDUyOTIsIDAuMDA1Mjk0LCAwLjAwNTI5MSIsIFwKLSAgICAgICAgICAiMC4wMDUyMzcsIDAuMDA1Mjk5LCAwLjAwNTMwOCwgMC4wMDUzMTMsIDAuMDA1MzE4LCAwLjAwNTMxNiwgMC4wMDUzMTQiLCBcCi0gICAgICAgICAgIjAuMDA1MjgyLCAwLjAwNTM0MywgMC4wMDUzNTIsIDAuMDA1MzU2LCAwLjAwNTM1OSwgMC4wMDUzNTksIDAuMDA1MzYxIiwgXAotICAgICAgICAgICIwLjAwNTMzOSwgMC4wMDU0LCAwLjAwNTQwOCwgMC4wMDU0MTQsIDAuMDA1NDE1LCAwLjAwNTQxOCwgMC4wMDU0MTgiLCBcCi0gICAgICAgICAgIjAuMDA1NDIsIDAuMDA1NDgsIDAuMDA1NDg5LCAwLjAwNTQ5NCwgMC4wMDU0OTcsIDAuMDA1NDk5LCAwLjAwNTUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDU5NiwgMC4wMDU5ODMsIDAuMDA1OTg2LCAwLjAwNTk4NywgMC4wMDU5ODgsIDAuMDA1OTg5LCAwLjAwNTk5NCIsIFwKLSAgICAgICAgICAiMC4wMDU5NTIsIDAuMDA1OTc1LCAwLjAwNTk3OCwgMC4wMDU5NzksIDAuMDA1OTgsIDAuMDA1OTgxLCAwLjAwNTk4IiwgXAotICAgICAgICAgICIwLjAwNTk1OSwgMC4wMDU5ODIsIDAuMDA1OTg1LCAwLjAwNTk4NiwgMC4wMDU5ODcsIDAuMDA1OTg3LCAwLjAwNTk4OCIsIFwKLSAgICAgICAgICAiMC4wMDU5NjgsIDAuMDA1OTkzLCAwLjAwNTk5NiwgMC4wMDU5OTgsIDAuMDA2LCAwLjAwNTk5OSwgMC4wMDU5OTkiLCBcCi0gICAgICAgICAgIjAuMDA1OTk4LCAwLjAwNjAyNCwgMC4wMDYwMjcsIDAuMDA2MDI5LCAwLjAwNjAyOCwgMC4wMDYwMywgMC4wMDYwMyIsIFwKLSAgICAgICAgICAiMC4wMDYwODUsIDAuMDA2MTAyLCAwLjAwNjEwNSwgMC4wMDYxMDcsIDAuMDA2MTA4LCAwLjAwNjEwOCwgMC4wMDYxMDgiLCBcCi0gICAgICAgICAgIjAuMDA2MTM5LCAwLjAwNjE1NywgMC4wMDYxNjQsIDAuMDA2MTYyLCAwLjAwNjE2MywgMC4wMDYxNjMsIDAuMDA2MTYyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiR04iOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNzg4NSwgMC4wMDc5NDksIDAuMDA3OTU3LCAwLjAwNzk2MSwgMC4wMDc5NjMsIDAuMDA3OTY0LCAwLjAwNzk2NSIsIFwKLSAgICAgICAgICAiMC4wMDc4OTIsIDAuMDA3OTU1LCAwLjAwNzk2MywgMC4wMDc5NjcsIDAuMDA3OTY5LCAwLjAwNzk2OSwgMC4wMDc5NzIiLCBcCi0gICAgICAgICAgIjAuMDA3OTI1LCAwLjAwNzk4OSwgMC4wMDc5OTYsIDAuMDA4LCAwLjAwODAwMiwgMC4wMDgwMDQsIDAuMDA4MDA1IiwgXAotICAgICAgICAgICIwLjAwNzk4NiwgMC4wMDgwNDcsIDAuMDA4MDU2LCAwLjAwODA1OCwgMC4wMDgwNjIsIDAuMDA4MDYxLCAwLjAwODA2MyIsIFwKLSAgICAgICAgICAiMC4wMDgwNDQsIDAuMDA4MTA1LCAwLjAwODExMSwgMC4wMDgxMTUsIDAuMDA4MTE2LCAwLjAwODExNywgMC4wMDgxMTYiLCBcCi0gICAgICAgICAgIjAuMDA4MTQ3LCAwLjAwODIxMiwgMC4wMDgyMTgsIDAuMDA4MjIxLCAwLjAwODIyMiwgMC4wMDgyMjMsIDAuMDA4MjIyIiwgXAotICAgICAgICAgICIwLjAwODI1OSwgMC4wMDgzMTgsIDAuMDA4MzIyLCAwLjAwODMyMSwgMC4wMDgzMzIsIDAuMDA4MzMyLCAwLjAwODMyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA4NDYyLCAwLjAwODQ3NSwgMC4wMDg0NjksIDAuMDA4NDYyLCAwLjAwODQ1OSwgMC4wMDg0NTQsIDAuMDA4NDU0IiwgXAotICAgICAgICAgICIwLjAwODQ2OCwgMC4wMDg0NzgsIDAuMDA4NDcyLCAwLjAwODQ2NiwgMC4wMDg0NjIsIDAuMDA4NDU5LCAwLjAwODQ1NyIsIFwKLSAgICAgICAgICAiMC4wMDg1MDMsIDAuMDA4NTE0LCAwLjAwODUxMiwgMC4wMDg1MDQsIDAuMDA4NDk4LCAwLjAwODQ5NSwgMC4wMDg0OTMiLCBcCi0gICAgICAgICAgIjAuMDA4NTYsIDAuMDA4NTcxLCAwLjAwODU2NSwgMC4wMDg1NTgsIDAuMDA4NTUzLCAwLjAwODU1MSwgMC4wMDg1NDgiLCBcCi0gICAgICAgICAgIjAuMDA4NjE3LCAwLjAwODYyOSwgMC4wMDg2MjMsIDAuMDA4NjE2LCAwLjAwODYwOSwgMC4wMDg2MTEsIDAuMDA4NjA2IiwgXAotICAgICAgICAgICIwLjAwODcxOCwgMC4wMDg3MywgMC4wMDg3MjQsIDAuMDA4NzE3LCAwLjAwODcxMiwgMC4wMDg3MSwgMC4wMDg3MDYiLCBcCi0gICAgICAgICAgIjAuMDA4ODI2LCAwLjAwODg0MiwgMC4wMDg4MzUsIDAuMDA4ODIxLCAwLjAwODgyMiwgMC4wMDg4MTgsIDAuMDA4ODA5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUk4iOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjQ5NCwgMC4wMDY1NTgsIDAuMDA2NTY1LCAwLjAwNjU3LCAwLjAwNjU3MiwgMC4wMDY1NzMsIDAuMDA2NTc0IiwgXAotICAgICAgICAgICIwLjAwNjQ3NywgMC4wMDY1NDEsIDAuMDA2NTQ5LCAwLjAwNjU1MywgMC4wMDY1NTUsIDAuMDA2NTU3LCAwLjAwNjU1NyIsIFwKLSAgICAgICAgICAiMC4wMDY0OTQsIDAuMDA2NTU3LCAwLjAwNjU2NSwgMC4wMDY1NjksIDAuMDA2NTcxLCAwLjAwNjU3MiwgMC4wMDY1NzQiLCBcCi0gICAgICAgICAgIjAuMDA2NTI1LCAwLjAwNjU4NywgMC4wMDY1OTUsIDAuMDA2NiwgMC4wMDY2MDEsIDAuMDA2NjAzLCAwLjAwNjYwMyIsIFwKLSAgICAgICAgICAiMC4wMDY1NjksIDAuMDA2NjM0LCAwLjAwNjY0MiwgMC4wMDY2NDUsIDAuMDA2NjQ4LCAwLjAwNjY0OSwgMC4wMDY2NSIsIFwKLSAgICAgICAgICAiMC4wMDY2NDIsIDAuMDA2NzA2LCAwLjAwNjcxNCwgMC4wMDY3MTgsIDAuMDA2NzIsIDAuMDA2NzIxLCAwLjAwNjcyMiIsIFwKLSAgICAgICAgICAiMC4wMDY3MjIsIDAuMDA2NzgzLCAwLjAwNjc5MSwgMC4wMDY3OTUsIDAuMDA2Nzk5LCAwLjAwNjc5OSwgMC4wMDY4MDEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDc4NzEsIDAuMDA3ODkyLCAwLjAwNzg5NSwgMC4wMDc4OTcsIDAuMDA3ODk4LCAwLjAwNzg5OCwgMC4wMDc4OTgiLCBcCi0gICAgICAgICAgIjAuMDA3ODYzLCAwLjAwNzg4NiwgMC4wMDc4OTEsIDAuMDA3ODkxLCAwLjAwNzg5MiwgMC4wMDc4OTIsIDAuMDA3ODkzIiwgXAotICAgICAgICAgICIwLjAwNzg5OSwgMC4wMDc5MjEsIDAuMDA3OTIzLCAwLjAwNzkyNSwgMC4wMDc5MjYsIDAuMDA3OTI2LCAwLjAwNzkyNyIsIFwKLSAgICAgICAgICAiMC4wMDc5NDgsIDAuMDA3OTcyLCAwLjAwNzk3NCwgMC4wMDc5NzYsIDAuMDA3OTc0LCAwLjAwNzk3NywgMC4wMDc5NzciLCBcCi0gICAgICAgICAgIjAuMDA4MDA3LCAwLjAwODAzMSwgMC4wMDgwMzQsIDAuMDA4MDM2LCAwLjAwODAzNywgMC4wMDgwMzgsIDAuMDA4MDM3IiwgXAotICAgICAgICAgICIwLjAwODA4NywgMC4wMDgxMTEsIDAuMDA4MTE0LCAwLjAwODExNiwgMC4wMDgxMTcsIDAuMDA4MTE4LCAwLjAwODExOSIsIFwKLSAgICAgICAgICAiMC4wMDgxOTIsIDAuMDA4MjE0LCAwLjAwODIxOCwgMC4wMDgyMTksIDAuMDA4MjIsIDAuMDA4MjIxLCAwLjAwODIyMSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDU4LCAwLjAwNTg0MSwgMC4wMDU4NDYsIDAuMDA1ODQ4LCAwLjAwNTg1LCAwLjAwNTg1MSwgMC4wMDU4NTEiLCBcCi0gICAgICAgICAgIjAuMDA1NzgxLCAwLjAwNTgyNywgMC4wMDU4MzMsIDAuMDA1ODM2LCAwLjAwNTgzOCwgMC4wMDU4NCwgMC4wMDU4NCIsIFwKLSAgICAgICAgICAiMC4wMDU4MTksIDAuMDA1ODYsIDAuMDA1ODY2LCAwLjAwNTg3LCAwLjAwNTg3MiwgMC4wMDU4NzMsIDAuMDA1ODczIiwgXAotICAgICAgICAgICIwLjAwNTg3NiwgMC4wMDU5MSwgMC4wMDU5MTcsIDAuMDA1OTIxLCAwLjAwNTkyMywgMC4wMDU5MjQsIDAuMDA1OTI1IiwgXAotICAgICAgICAgICIwLjAwNTk1NCwgMC4wMDU5NzcsIDAuMDA1OTgzLCAwLjAwNTk4NywgMC4wMDU5ODksIDAuMDA1OTksIDAuMDA1OTkxIiwgXAotICAgICAgICAgICIwLjAwNjEwMywgMC4wMDYxMDQsIDAuMDA2MTA5LCAwLjAwNjExMSwgMC4wMDYxMTQsIDAuMDA2MTE0LCAwLjAwNjExNiIsIFwKLSAgICAgICAgICAiMC4wMDYyMzgsIDAuMDA2MjE3LCAwLjAwNjIyMSwgMC4wMDYyMjIsIDAuMDA2MjIzLCAwLjAwNjIyMywgMC4wMDYyMjQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQyNjQsIDAuMDA0Mjg0LCAwLjAwNDI4NiwgMC4wMDQyODcsIDAuMDA0Mjg3LCAwLjAwNDI4NywgMC4wMDQyODciLCBcCi0gICAgICAgICAgIjAuMDA0MjI4LCAwLjAwNDI1MywgMC4wMDQyNTUsIDAuMDA0MjU2LCAwLjAwNDI1NywgMC4wMDQyNTcsIDAuMDA0MjU4IiwgXAotICAgICAgICAgICIwLjAwNDI3NywgMC4wMDQyOTEsIDAuMDA0MjkzLCAwLjAwNDI5NCwgMC4wMDQyOTUsIDAuMDA0Mjk1LCAwLjAwNDI5NiIsIFwKLSAgICAgICAgICAiMC4wMDQzNTUsIDAuMDA0MzU3LCAwLjAwNDM1NywgMC4wMDQzNTgsIDAuMDA0MzU3LCAwLjAwNDMzNywgMC4wMDQzNTciLCBcCi0gICAgICAgICAgIjAuMDA0MzY5LCAwLjAwNDM3NCwgMC4wMDQzNzQsIDAuMDA0Mzc1LCAwLjAwNDM3NSwgMC4wMDQzNzUsIDAuMDA0Mzc1IiwgXAotICAgICAgICAgICIwLjAwNDQ4NywgMC4wMDQ0ODEsIDAuMDA0NDc4LCAwLjAwNDQ4MSwgMC4wMDQ0ODEsIDAuMDA0NDgxLCAwLjAwNDQ4IiwgXAotICAgICAgICAgICIwLjAwNDU5NywgMC4wMDQ1ODMsIDAuMDA0NTgxLCAwLjAwNDU4LCAwLjAwNDU3OSwgMC4wMDQ1ODIsIDAuMDA0NTc4Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihRTikgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjY2ODgzNTsKLSAgICBmdW5jdGlvbiA6ICJONSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTAwMjE2LCAwLjE4MTk2NSwgMC4yNDQ0OTcsIDAuMzIyNjcxLCAwLjQwMDg2OSwgMC40Nzg5NDMsIDAuNTU3MTAzIiwgXAotICAgICAgICAgICIwLjEwNTk5LCAwLjE4NzczOCwgMC4yNTAyOTMsIDAuMzI4NDM1LCAwLjQwNjU0NywgMC40ODQ3OTcsIDAuNTYyODMxIiwgXAotICAgICAgICAgICIwLjExMjMzNSwgMC4xOTQwODYsIDAuMjU2NjIyLCAwLjMzNDc1OCwgMC40MTI5MTMsIDAuNDkxMTEyLCAwLjU2OTE4IiwgXAotICAgICAgICAgICIwLjExNzk0MiwgMC4xOTk3MDUsIDAuMjYyMjM2LCAwLjM0MDM4MywgMC40MTg1MzEsIDAuNDk2NzI5LCAwLjU3NDgxMyIsIFwKLSAgICAgICAgICAiMC4xMjI2MTYsIDAuMjA0Mzg5LCAwLjI2Njk0MSwgMC4zNDUwNTksIDAuNDIzMjA2LCAwLjUwMTQyNiwgMC41Nzk1MTYiLCBcCi0gICAgICAgICAgIjAuMTI4OTQ4LCAwLjIxMDcxOSwgMC4yNzMyNDMsIDAuMzUxMzg4LCAwLjQyOTUzNywgMC41MDc2ODcsIDAuNTg1NzgzIiwgXAotICAgICAgICAgICIwLjEzMzczNSwgMC4yMTU1MjIsIDAuMjc4MDUyLCAwLjM1NjIxMiwgMC40MzQzNjgsIDAuNTEyNDc4LCAwLjU5MDYwMSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDk3MzYsIDAuMjA4MjMsIDAuMzM5NDE1LCAwLjUwNTg0LCAwLjY3MTI3MSwgMC44MzgxMzgsIDEuMDAzNTgiLCBcCi0gICAgICAgICAgIjAuMDQ5NzE0LCAwLjIwODA5MiwgMC4zMzk4MTksIDAuNTA1OTE5LCAwLjY3MTU3NiwgMC44Mzc2NzgsIDEuMDA1ODQiLCBcCi0gICAgICAgICAgIjAuMDQ5NzQ4LCAwLjIwODIzNCwgMC4zMzk0MjYsIDAuNTA1NzU0LCAwLjY3MjM5NSwgMC44Mzc0LCAxLjAwNDc1IiwgXAotICAgICAgICAgICIwLjA0OTcyNywgMC4yMDgxNDcsIDAuMzM5NDc2LCAwLjUwNTIxOSwgMC42NzIzOTYsIDAuODM3ODg5LCAxLjAwMzc1IiwgXAotICAgICAgICAgICIwLjA0OTc2LCAwLjIwODIyMSwgMC4zMzk4MjgsIDAuNTA1Mzc4LCAwLjY3MTYxMiwgMC44Mzc3NzEsIDEuMDA1NzEiLCBcCi0gICAgICAgICAgIjAuMDQ5OTc4LCAwLjIwODIzOCwgMC4zMzk1OTQsIDAuNTA1NzUxLCAwLjY3MjMxOSwgMC44MzgwMTEsIDEuMDA0NjMiLCBcCi0gICAgICAgICAgIjAuMDQ5OTg3LCAwLjIwODI4NCwgMC4zMzk3OTQsIDAuNTA1NzcxLCAwLjY3MTQxOSwgMC44Mzc3MzUsIDEuMDA1NCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODEwMDYsIDAuMTU4MDMxLCAwLjIxODcyOCwgMC4yOTQ2NSwgMC4zNzA0NDMsIDAuNDQ2MzM0LCAwLjUyMjE1NSIsIFwKLSAgICAgICAgICAiMC4wODcxNjIsIDAuMTY0MTg2LCAwLjIyNDg4NCwgMC4zMDA3OTUsIDAuMzc2NTg2LCAwLjQ1MjQ4MiwgMC41MjgzMjEiLCBcCi0gICAgICAgICAgIjAuMDk0MjcxLCAwLjE3MTMwMSwgMC4yMzE5ODYsIDAuMzA3OTE3LCAwLjM4Mzc2LCAwLjQ1OTQ5OSwgMC41MzU0MjkiLCBcCi0gICAgICAgICAgIjAuMTAwNDgsIDAuMTc3NTAyLCAwLjIzODE3NywgMC4zMTQxMzIsIDAuMzg5ODgxLCAwLjQ2NTc4OSwgMC41NDE2NDYiLCBcCi0gICAgICAgICAgIjAuMTA1ODE4LCAwLjE4Mjg1NSwgMC4yNDM1NTUsIDAuMzE5NDY0LCAwLjM5NTI1MiwgMC40NzExMjQsIDAuNTQ2OTg4IiwgXAotICAgICAgICAgICIwLjExMjk3MiwgMC4xOTAwMTcsIDAuMjUwNzIzLCAwLjMyNjU4LCAwLjQwMjQzNCwgMC40NzgyNDYsIDAuNTU0MDg2IiwgXAotICAgICAgICAgICIwLjExODM4MSwgMC4xOTU0MywgMC4yNTYxMzEsIDAuMzMxOTc1LCAwLjQwNzgyLCAwLjQ4MzY2LCAwLjU1OTQ5OSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDEzOTcsIDAuMTk0MDM0LCAwLjMxOTgxNCwgMC40NzY2MTQsIDAuNjM0NzQzLCAwLjc5MTAyLCAwLjk1MDQ4NCIsIFwKLSAgICAgICAgICAiMC4wNDEzNjYsIDAuMTk0MjU0LCAwLjMxOTgxNCwgMC40NzYzMSwgMC42MzUwMTcsIDAuNzkxMzYyLCAwLjk1MDQ5NiIsIFwKLSAgICAgICAgICAiMC4wNDEzODIsIDAuMTk0MjMzLCAwLjMxOTcxNSwgMC40NzY1OTYsIDAuNjMzODU5LCAwLjc5MjU1NiwgMC45NTA0NTEiLCBcCi0gICAgICAgICAgIjAuMDQxNTEzLCAwLjE5MzkwOSwgMC4zMTkxMTEsIDAuNDc2NjEsIDAuNjM0OTM4LCAwLjc5MDU0NywgMC45NTA1MTEiLCBcCi0gICAgICAgICAgIjAuMDQxNTI2LCAwLjE5NDI1MiwgMC4zMTk3NzEsIDAuNDc2MzI5LCAwLjYzNDg3NCwgMC43OTEyMTcsIDAuOTUwNDQiLCBcCi0gICAgICAgICAgIjAuMDQxNTY3LCAwLjE5NDI2OCwgMC4zMTkyMzEsIDAuNDc3MjEzLCAwLjYzNDg1MSwgMC43OTE4MjYsIDAuOTUwMTUxIiwgXAotICAgICAgICAgICIwLjA0MTY4LCAwLjE5NDExOCwgMC4zMTk3MzgsIDAuNDc2NjM0LCAwLjYzNDI2OSwgMC43OTI0MTYsIDAuOTUwMTAyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkdOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5vbl91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogZmFsbGluZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMzg5NjcsIDAuMjIwNzcsIDAuMjgzMywgMC4zNjE0MywgMC40Mzk1ODQsIDAuNTE3ODE0LCAwLjU5NTg1NiIsIFwKLSAgICAgICAgICAiMC4xNDYzNiwgMC4yMjgxNDksIDAuMjkwNjc4LCAwLjM2ODg1OSwgMC40NDcwODIsIDAuNTI1MTA5LCAwLjYwMzI1MyIsIFwKLSAgICAgICAgICAiMC4xNTMxOTIsIDAuMjM0OTgxLCAwLjI5NzUwOCwgMC4zNzU2ODgsIDAuNDUzNzc2LCAwLjUzMTk4LCAwLjYxMDI0NSIsIFwKLSAgICAgICAgICAiMC4xNTgwMjQsIDAuMjM5ODEyLCAwLjMwMjM0LCAwLjM4MDUyMiwgMC40NTg3MzMsIDAuNTM2Nzc0LCAwLjYxNDk0NSIsIFwKLSAgICAgICAgICAiMC4xNjE4MiwgMC4yNDM2MDksIDAuMzA2MTM3LCAwLjM4NDMxNiwgMC40NjI0MTYsIDAuNTQwNTg4LCAwLjYxODcyNiIsIFwKLSAgICAgICAgICAiMC4xNjcwMSwgMC4yNDg4MDcsIDAuMzExMzU4LCAwLjM4OTQ5NSwgMC40Njc2MTgsIDAuNTQ1ODEsIDAuNjIzOTcxIiwgXAotICAgICAgICAgICIwLjE3MDc4NiwgMC4yNTI2MzUsIDAuMzE1MTYxLCAwLjM5MzI2MywgMC40NzE0NDEsIDAuNTQ5NzE3LCAwLjYyNzY1OCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDk5NzYsIDAuMjA4MTc5LCAwLjMzOTQ1MywgMC41MDUzODUsIDAuNjcyMzk2LCAwLjgzNzQ2OSwgMS4wMDQ3IiwgXAotICAgICAgICAgICIwLjA0OTk4LCAwLjIwODI4MSwgMC4zMzk0MDYsIDAuNTA1OTM2LCAwLjY3MTE1MiwgMC44MzgwNjIsIDEuMDAzODIiLCBcCi0gICAgICAgICAgIjAuMDQ5OTgzLCAwLjIwODI4NSwgMC4zMzk1NiwgMC41MDU5MzQsIDAuNjcyMjE2LCAwLjgzOTE1OSwgMS4wMDM5NiIsIFwKLSAgICAgICAgICAiMC4wNDk5ODEsIDAuMjA4MjgxLCAwLjMzOTQwMywgMC41MDU5MzYsIDAuNjcxMjAxLCAwLjgzODA3NSwgMS4wMDM2MiIsIFwKLSAgICAgICAgICAiMC4wNDk5ODEsIDAuMjA4Mjc3LCAwLjMzOTM5MSwgMC41MDU5MzcsIDAuNjcxNTc3LCAwLjgzOTEyOSwgMS4wMDU4MiIsIFwKLSAgICAgICAgICAiMC4wNTAwMjQsIDAuMjA4MzAxLCAwLjMzOTgzOSwgMC41MDUxNjMsIDAuNjcxNTk3LCAwLjgzOTE2NywgMS4wMDQyNyIsIFwKLSAgICAgICAgICAiMC4wNDk5OTIsIDAuMjA4MjcxLCAwLjMzOTU3MSwgMC41MDU4OTEsIDAuNjcxNTQxLCAwLjgzNzU1NSwgMS4wMDQ2NiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMjk3OTEsIDAuMjA2ODE5LCAwLjI2NzUyLCAwLjM0MzQzNSwgMC40MTkyMywgMC40OTUxNjcsIDAuNTcwOTQxIiwgXAotICAgICAgICAgICIwLjEzNzE1MSwgMC4yMTQxNzgsIDAuMjc0ODgsIDAuMzUwNzk0LCAwLjQyNjU4OSwgMC41MDI0NzQsIDAuNTc4Mjk1IiwgXAotICAgICAgICAgICIwLjE0NDAyNCwgMC4yMjEwNTMsIDAuMjgxNzU0LCAwLjM1NzY2OSwgMC40MzM0NjYsIDAuNTA5Mzk5LCAwLjU4NTE3NSIsIFwKLSAgICAgICAgICAiMC4xNDg3MjIsIDAuMjI1Nzc4LCAwLjI4NjQ1NCwgMC4zNjIyODcsIDAuNDM4MTY0LCAwLjUxNDEyMiwgMC41ODk4NjUiLCBcCi0gICAgICAgICAgIjAuMTUyNTk1LCAwLjIyOTYyNCwgMC4yOTAyMzYsIDAuMzY2MjQzLCAwLjQ0MjA4MywgMC41MTc5MTIsIDAuNTkzNzUyIiwgXAotICAgICAgICAgICIwLjE1Nzc4MywgMC4yMzQ4MDIsIDAuMjk1NTAyLCAwLjM3MTMzMywgMC40NDcyMSwgMC41MjMwOTgsIDAuNTk4OTA5IiwgXAotICAgICAgICAgICIwLjE2MTU3NSwgMC4yMzg2MzYsIDAuMjk5MzE1LCAwLjM3NTIzOCwgMC40NTExMSwgMC41MjY5OTcsIDAuNjAyNzM0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0MTQ0MSwgMC4xOTQwOCwgMC4zMTk4MTIsIDAuNDc2NjA1LCAwLjYzNDcwOSwgMC43OTE0NTgsIDAuOTUwNDg0IiwgXAotICAgICAgICAgICIwLjA0MTQzMiwgMC4xOTQyMzksIDAuMzE5ODA1LCAwLjQ3NjYxMSwgMC42MzQ2NzksIDAuNzkxNDg3LCAwLjk1MDQzOSIsIFwKLSAgICAgICAgICAiMC4wNDE0NDUsIDAuMTk0MTEzLCAwLjMxOTgxNCwgMC40NzY2MDgsIDAuNjM0NzE2LCAwLjc5MTU3NCwgMC45NTA0NzUiLCBcCi0gICAgICAgICAgIjAuMDQxNDM5LCAwLjE5NDI0OCwgMC4zMTk4MjcsIDAuNDc2NiwgMC42MzQ3MjYsIDAuNzkxNTQ3LCAwLjk1MDQzMyIsIFwKLSAgICAgICAgICAiMC4wNDE0NjIsIDAuMTk0MjQ1LCAwLjMxOTM3MSwgMC40NzY2MTgsIDAuNjMzNzcxLCAwLjc5MTMxMywgMC45NTA0NTgiLCBcCi0gICAgICAgICAgIjAuMDQxNDYxLCAwLjE5MzgyOSwgMC4zMTk3OTcsIDAuNDc3MTk3LCAwLjYzMzQxOCwgMC43OTA0NzQsIDAuOTQ3NzU0IiwgXAotICAgICAgICAgICIwLjA0MTYyNSwgMC4xOTQyNjksIDAuMzE5Njk2LCAwLjQ3NjYyMywgMC42MzQ2NzEsIDAuNzkxNTY2LCAwLjk1MDI4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiByaXNpbmdfZWRnZTsKLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTE4NTI2LCAwLjE5NTU1OSwgMC4yNTYyNjEsIDAuMzMyMTc3LCAwLjQwNzk3MywgMC40ODM5MDksIDAuNTU5Njg0IiwgXAotICAgICAgICAgICIwLjEyNDU0MiwgMC4yMDE1NzQsIDAuMjYyMjYzLCAwLjMzODE4NCwgMC40MTQwNzIsIDAuNDg5OTA1LCAwLjU2NTY5MyIsIFwKLSAgICAgICAgICAiMC4xMzE3MTIsIDAuMjA4NzQxLCAwLjI2OTQzNSwgMC4zNDUzNTYsIDAuNDIxMTcsIDAuNDk2OTkyLCAwLjU3Mjg2NSIsIFwKLSAgICAgICAgICAiMC4xMzc1MzIsIDAuMjE0NTU5LCAwLjI3NTI2MiwgMC4zNTExOTEsIDAuNDI3MDMyLCAwLjUwMjg4OCwgMC41Nzg2OTQiLCBcCi0gICAgICAgICAgIjAuMTQyNjAzLCAwLjIxOTYzOCwgMC4yODAzNDEsIDAuMzU2MjUyLCAwLjQzMjA0OCwgMC41MDc4ODgsIDAuNTgzNzY0IiwgXAotICAgICAgICAgICIwLjE0OTQwNCwgMC4yMjY0MzcsIDAuMjg3MTM2LCAwLjM2MzAyLCAwLjQzODg0NywgMC41MTQ3NDYsIDAuNTkwNTMzIiwgXAotICAgICAgICAgICIwLjE1NDcxNCwgMC4yMzE3NTcsIDAuMjkyNDU4LCAwLjM2ODMwOCwgMC40NDQxNjIsIDAuNTIwMDc1LCAwLjU5NTg2NiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDE0NDEsIDAuMTk0MDc4LCAwLjMxOTgxNCwgMC40NzY2MDcsIDAuNjM0NzE3LCAwLjc5MTUwNiwgMC45NTA0OCIsIFwKLSAgICAgICAgICAiMC4wNDE0NDYsIDAuMTk0MjQyLCAwLjMxOTcxMywgMC40NzYzMjMsIDAuNjM0MDIyLCAwLjc5MTEwNCwgMC45NTA0NCIsIFwKLSAgICAgICAgICAiMC4wNDE0NTEsIDAuMTk0MjQsIDAuMzE5NDA3LCAwLjQ3NjYyMiwgMC42MzUwNjMsIDAuNzkyNjk2LCAwLjk1MDQ0NyIsIFwKLSAgICAgICAgICAiMC4wNDE0NjEsIDAuMTk0MjQ4LCAwLjMxOTgxNCwgMC40NzY1NzUsIDAuNjMzNjc1LCAwLjc5MTA4NCwgMC45NTA0NjkiLCBcCi0gICAgICAgICAgIjAuMDQxNDUsIDAuMTk0MjQsIDAuMzE5ODI2LCAwLjQ3NjYxNSwgMC42MzUwMzYsIDAuNzkyMzY2LCAwLjk1MDQzOCIsIFwKLSAgICAgICAgICAiMC4wNDE0NDMsIDAuMTk0MjQ4LCAwLjMxOTgwNywgMC40NzY3NTcsIDAuNjM0NzM2LCAwLjc5MTI5MywgMC45NDkzNzYiLCBcCi0gICAgICAgICAgIjAuMDQxNTY5LCAwLjE5NDA0NiwgMC4zMTk4NDksIDAuNDc3MzQ2LCAwLjYzNDI2NCwgMC43OTExMjMsIDAuOTUwMjgzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiBmYWxsaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEyODYxOSwgMC4yMTAzNTMsIDAuMjcyOTA0LCAwLjM1MTAyNywgMC40MjkxNzQsIDAuNTA3MzQ1LCAwLjU4NTM4NyIsIFwKLSAgICAgICAgICAiMC4xMzY1MDgsIDAuMjE4MjU0LCAwLjI4MDc5NSwgMC4zNTg5MzUsIDAuNDM3MDk0LCAwLjUxNTE4NiwgMC41OTMzMjgiLCBcCi0gICAgICAgICAgIjAuMTQ1MTQ3LCAwLjIyNjg5MiwgMC4yODk0MzUsIDAuMzY3NTU4LCAwLjQ0NTcwMiwgMC41MjM4NzMsIDAuNjAxOTYzIiwgXAotICAgICAgICAgICIwLjE1MjE2MSwgMC4yMzM5MTEsIDAuMjk2NDYzLCAwLjM3NDYxMSwgMC40NTI3MTcsIDAuNTMwODc1LCAwLjYwOTAxNSIsIFwKLSAgICAgICAgICAiMC4xNTg0OTUsIDAuMjQwMjU1LCAwLjMwMjc4NCwgMC4zODA5NTQsIDAuNDU5MDY1LCAwLjUzNzIyMSwgMC42MTUzNTYiLCBcCi0gICAgICAgICAgIjAuMTY3NjE1LCAwLjI0OTM3MiwgMC4zMTE4OTcsIDAuMzkwMDczLCAwLjQ2ODE3OCwgMC41NDYzMzcsIDAuNjI0NDc0IiwgXAotICAgICAgICAgICIwLjE3NDUzLCAwLjI1NjI4OSwgMC4zMTg4NCwgMC4zOTY5NjksIDAuNDc1MTA3LCAwLjU1MzIxNiwgMC42MzE0MDEiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQ5Njk1LCAwLjIwODIzMSwgMC4zMzkzODEsIDAuNTA1NiwgMC42NzE1ODIsIDAuODM3NTY0LCAxLjAwNTQ4IiwgXAotICAgICAgICAgICIwLjA0OTY5OSwgMC4yMDgyNDIsIDAuMzM5NDM1LCAwLjUwNTc1OCwgMC42NzIxNiwgMC44Mzg3MzMsIDEuMDA1NDIiLCBcCi0gICAgICAgICAgIjAuMDQ5Njk4LCAwLjIwODIzNywgMC4zMzk4NDMsIDAuNTA1NzY0LCAwLjY3MjEzNywgMC44Mzc3MDgsIDEuMDA1NDMiLCBcCi0gICAgICAgICAgIjAuMDQ5Njk1LCAwLjIwODIyMywgMC4zMzk4MzcsIDAuNTA1NzY0LCAwLjY3MjEyLCAwLjgzNzc4MSwgMS4wMDU0MyIsIFwKLSAgICAgICAgICAiMC4wNDk3OTcsIDAuMjA4Mjg0LCAwLjMzOTQ3MiwgMC41MDU3NjcsIDAuNjcyMTU2LCAwLjgzODExLCAxLjAwNTQzIiwgXAotICAgICAgICAgICIwLjA0OTgwMiwgMC4yMDgyNSwgMC4zMzk2NDcsIDAuNTA1NzY1LCAwLjY3MjEyMiwgMC44MzgyMjQsIDEuMDA1NDIiLCBcCi0gICAgICAgICAgIjAuMDQ5ODY1LCAwLjIwODI1NywgMC4zMzk3NTksIDAuNTA1NzQsIDAuNjcyMTA0LCAwLjgzODIxNCwgMS4wMDUzNCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogY2xlYXI7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2NjgwNiwgMC4xNDg1MDIsIDAuMjExMDI3LCAwLjI4OTE5OSwgMC4zNjczNzYsIDAuNDQ1NDY0LCAwLjUyMzYwNyIsIFwKLSAgICAgICAgICAiMC4wNzI4OSwgMC4xNTQ1OTcsIDAuMjE3MTM3LCAwLjI5NTI3NCwgMC4zNzM0MTIsIDAuNDUxNjM0LCAwLjUyOTcwMiIsIFwKLSAgICAgICAgICAiMC4wODA2NDEsIDAuMTYyMzMyLCAwLjIyNDg2NywgMC4zMDMwMTQsIDAuMzgxMTM3LCAwLjQ1OTM3MywgMC41Mzc0NDMiLCBcCi0gICAgICAgICAgIjAuMDg3OSwgMC4xNjk2NTksIDAuMjMyMTgxLCAwLjMxMDM1MiwgMC4zODg1NzksIDAuNDY2ODE1LCAwLjU0NSIsIFwKLSAgICAgICAgICAiMC4wOTQzMjgsIDAuMTc2MzA4LCAwLjIzODgzMSwgMC4zMTY5OTcsIDAuMzk1MTE0LCAwLjQ3MzM0NSwgMC41NTE0OCIsIFwKLSAgICAgICAgICAiMC4xMDM0MzQsIDAuMTg1OTE0LCAwLjI0ODQxMiwgMC4zMjY1MywgMC40MDQ3MDgsIDAuNDgyODQ3LCAwLjU2MTAzMSIsIFwKLSAgICAgICAgICAiMC4xMTA0NzUsIDAuMTkzNDE1LCAwLjI1NTkzMywgMC4zMzQwMywgMC40MTIxNjEsIDAuNDkwMzcxLCAwLjU2ODQ0NSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDk0NCwgMC4yMDgxODIsIDAuMzM5MzMzLCAwLjUwNTkxNCwgMC42NzE1NDgsIDAuODM3Nzk5LCAxLjAwNTkyIiwgXAotICAgICAgICAgICIwLjA0OTQ1NCwgMC4yMDgxODcsIDAuMzM5NzkyLCAwLjUwNTkwMiwgMC42NzE2MTIsIDAuODM3Nzc0LCAxLjAwNDgiLCBcCi0gICAgICAgICAgIjAuMDQ5NjEsIDAuMjA4MjAxLCAwLjMzOTM4NywgMC41MDUzNjksIDAuNjcxNjIyLCAwLjgzNzc3LCAxLjAwNTk0IiwgXAotICAgICAgICAgICIwLjA1MDI1MiwgMC4yMDgzMiwgMC4zMzk3OTcsIDAuNTA1OTM0LCAwLjY3MjI1OCwgMC44Mzc4NTEsIDEuMDA0NzYiLCBcCi0gICAgICAgICAgIjAuMDUxMTM1LCAwLjIwODU4MSwgMC4zMzk5MjksIDAuNTA1OTM2LCAwLjY3MjM1NiwgMC44Mzc2OSwgMS4wMDU4NSIsIFwKLSAgICAgICAgICAiMC4wNTI3MjQsIDAuMjA5MTU4LCAwLjM0MDAxNCwgMC41MDU5OCwgMC42NzE2MjksIDAuODM5MDkzLCAxLjAwNTg2IiwgXAotICAgICAgICAgICIwLjA1NDEwNCwgMC4yMDk3MTUsIDAuMzQwNTAzLCAwLjUwNTk0MiwgMC42NzI0MzksIDAuODM3OTAzLCAxLjAwNTg1Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0OTgxLCAwLjEyNjk0OCwgMC4xODc1OTgsIDAuMjYzNDA5LCAwLjMzOTI0OSwgMC40MTUwNzcsIDAuNDkwOTM1IiwgXAotICAgICAgICAgICIwLjA1ODAzMiwgMC4xMzUxODcsIDAuMTk1ODM3LCAwLjI3MTY1MiwgMC4zNDc0ODksIDAuNDIzMzMsIDAuNDk5MTg2IiwgXAotICAgICAgICAgICIwLjA2Nzk5OSwgMC4xNDUxNDQsIDAuMjA1NzgyLCAwLjI4MTYwNywgMC4zNTc0MzgsIDAuNDMzMjg2LCAwLjUwOTE2OSIsIFwKLSAgICAgICAgICAiMC4wNzYzNTcsIDAuMTUzNTQ1LCAwLjIxNDE4NCwgMC4yOTAwMDIsIDAuMzY1ODI3LCAwLjQ0MTY3NSwgMC41MTc1NDYiLCBcCi0gICAgICAgICAgIjAuMDgzMTY5LCAwLjE2MDUwNywgMC4yMjExMzUsIDAuMjk2OTQ5LCAwLjM3Mjc4NywgMC40NDg2MzIsIDAuNTI0NTEiLCBcCi0gICAgICAgICAgIjAuMDkyMDU4LCAwLjE2OTY1NywgMC4yMzAyNywgMC4zMDYwODIsIDAuMzgxOTE5LCAwLjQ1Nzc2MSwgMC41MzM1NzYiLCBcCi0gICAgICAgICAgIjAuMDk4NTMzLCAwLjE3NjQ1MSwgMC4yMzcwNTMsIDAuMzEyODk5LCAwLjM4ODczNSwgMC40NjQ1NTUsIDAuNTQwNDExIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0MTQxOCwgMC4xOTQzNjcsIDAuMzE5ODc3LCAwLjQ3NzI0OCwgMC42MzQ5NTksIDAuNzkyMTc5LCAwLjk1MDMyNiIsIFwKLSAgICAgICAgICAiMC4wNDE0MjcsIDAuMTk0MzI3LCAwLjMxOTkwNCwgMC40NzcyMjYsIDAuNjM0NDkyLCAwLjc5MjY1NSwgMC45NTAyNzYiLCBcCi0gICAgICAgICAgIjAuMDQxODIsIDAuMTk0MzQ3LCAwLjMxOTEzNSwgMC40NzcyNTYsIDAuNjM1MDczLCAwLjc5MjcxOCwgMC45NTAzMTgiLCBcCi0gICAgICAgICAgIjAuMDQzMDc3LCAwLjE5NDUyOCwgMC4zMTk5MzEsIDAuNDc2ODgzLCAwLjYzNDk3NCwgMC43OTI1ODgsIDAuOTUwMzE1IiwgXAotICAgICAgICAgICIwLjA0NDUwMywgMC4xOTQ2MjEsIDAuMzIwMDM4LCAwLjQ3NzM5NywgMC42MzUwNzIsIDAuNzkyNjEzLCAwLjk1MDQ0NCIsIFwKLSAgICAgICAgICAiMC4wNDY0MzEsIDAuMTk1MzIxLCAwLjMyMDEyMywgMC40NzczNzEsIDAuNjM0ODg5LCAwLjc5MjQ4OCwgMC45NDk5NjMiLCBcCi0gICAgICAgICAgIjAuMDQ4MDIsIDAuMTk1NTY5LCAwLjMyMDAxOSwgMC40NzcyNjYsIDAuNjM0ODY2LCAwLjc5MjQyMywgMC45NTAyMDQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJEIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDU5NiwgMC4wMDU5ODMsIDAuMDA1OTg2LCAwLjAwNTk4NywgMC4wMDU5ODgsIDAuMDA1OTg5LCAwLjAwNTk5NCIsIFwKLSAgICAgICAgICAiMC4wMDU5NTIsIDAuMDA1OTc1LCAwLjAwNTk3OCwgMC4wMDU5NzksIDAuMDA1OTgsIDAuMDA1OTgxLCAwLjAwNTk4IiwgXAotICAgICAgICAgICIwLjAwNTk1OSwgMC4wMDU5ODIsIDAuMDA1OTg1LCAwLjAwNTk4NiwgMC4wMDU5ODcsIDAuMDA1OTg3LCAwLjAwNTk4OCIsIFwKLSAgICAgICAgICAiMC4wMDU5NjgsIDAuMDA1OTkzLCAwLjAwNTk5NiwgMC4wMDU5OTgsIDAuMDA2LCAwLjAwNTk5OSwgMC4wMDU5OTkiLCBcCi0gICAgICAgICAgIjAuMDA1OTk4LCAwLjAwNjAyNCwgMC4wMDYwMjcsIDAuMDA2MDI5LCAwLjAwNjAyOCwgMC4wMDYwMywgMC4wMDYwMyIsIFwKLSAgICAgICAgICAiMC4wMDYwODUsIDAuMDA2MTAyLCAwLjAwNjEwNSwgMC4wMDYxMDcsIDAuMDA2MTA4LCAwLjAwNjEwOCwgMC4wMDYxMDgiLCBcCi0gICAgICAgICAgIjAuMDA2MTM5LCAwLjAwNjE1NywgMC4wMDYxNjQsIDAuMDA2MTYyLCAwLjAwNjE2MywgMC4wMDYxNjMsIDAuMDA2MTYyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1MjMsIDAuMDA1MjkxLCAwLjAwNTI5OSwgMC4wMDUzMDMsIDAuMDA1MzA2LCAwLjAwNTMwNywgMC4wMDUzMDgiLCBcCi0gICAgICAgICAgIjAuMDA1MjExLCAwLjAwNTI3MywgMC4wMDUyODEsIDAuMDA1Mjg1LCAwLjAwNTI4NywgMC4wMDUyODksIDAuMDA1MjkiLCBcCi0gICAgICAgICAgIjAuMDA1MjE2LCAwLjAwNTI3NywgMC4wMDUyODUsIDAuMDA1MjksIDAuMDA1MjkyLCAwLjAwNTI5NCwgMC4wMDUyOTEiLCBcCi0gICAgICAgICAgIjAuMDA1MjM3LCAwLjAwNTI5OSwgMC4wMDUzMDgsIDAuMDA1MzEzLCAwLjAwNTMxOCwgMC4wMDUzMTYsIDAuMDA1MzE0IiwgXAotICAgICAgICAgICIwLjAwNTI4MiwgMC4wMDUzNDMsIDAuMDA1MzUyLCAwLjAwNTM1NiwgMC4wMDUzNTksIDAuMDA1MzU5LCAwLjAwNTM2MSIsIFwKLSAgICAgICAgICAiMC4wMDUzMzksIDAuMDA1NCwgMC4wMDU0MDgsIDAuMDA1NDE0LCAwLjAwNTQxNSwgMC4wMDU0MTgsIDAuMDA1NDE4IiwgXAotICAgICAgICAgICIwLjAwNTQyLCAwLjAwNTQ4LCAwLjAwNTQ4OSwgMC4wMDU0OTQsIDAuMDA1NDk3LCAwLjAwNTQ5OSwgMC4wMDU1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiR04iOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwODQ2MiwgMC4wMDg0NzUsIDAuMDA4NDY5LCAwLjAwODQ2MiwgMC4wMDg0NTksIDAuMDA4NDU0LCAwLjAwODQ1NCIsIFwKLSAgICAgICAgICAiMC4wMDg0NjgsIDAuMDA4NDc4LCAwLjAwODQ3MiwgMC4wMDg0NjYsIDAuMDA4NDYyLCAwLjAwODQ1OSwgMC4wMDg0NTciLCBcCi0gICAgICAgICAgIjAuMDA4NTAzLCAwLjAwODUxNCwgMC4wMDg1MTIsIDAuMDA4NTA0LCAwLjAwODQ5OCwgMC4wMDg0OTUsIDAuMDA4NDkzIiwgXAotICAgICAgICAgICIwLjAwODU2LCAwLjAwODU3MSwgMC4wMDg1NjUsIDAuMDA4NTU4LCAwLjAwODU1MywgMC4wMDg1NTEsIDAuMDA4NTQ4IiwgXAotICAgICAgICAgICIwLjAwODYxNywgMC4wMDg2MjksIDAuMDA4NjIzLCAwLjAwODYxNiwgMC4wMDg2MDksIDAuMDA4NjExLCAwLjAwODYwNiIsIFwKLSAgICAgICAgICAiMC4wMDg3MTgsIDAuMDA4NzMsIDAuMDA4NzI0LCAwLjAwODcxNywgMC4wMDg3MTIsIDAuMDA4NzEsIDAuMDA4NzA2IiwgXAotICAgICAgICAgICIwLjAwODgyNiwgMC4wMDg4NDIsIDAuMDA4ODM1LCAwLjAwODgyMSwgMC4wMDg4MjIsIDAuMDA4ODE4LCAwLjAwODgwOSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNzg4NSwgMC4wMDc5NDksIDAuMDA3OTU3LCAwLjAwNzk2MSwgMC4wMDc5NjMsIDAuMDA3OTY0LCAwLjAwNzk2NSIsIFwKLSAgICAgICAgICAiMC4wMDc4OTIsIDAuMDA3OTU1LCAwLjAwNzk2MywgMC4wMDc5NjcsIDAuMDA3OTY5LCAwLjAwNzk2OSwgMC4wMDc5NzIiLCBcCi0gICAgICAgICAgIjAuMDA3OTI1LCAwLjAwNzk4OSwgMC4wMDc5OTYsIDAuMDA4LCAwLjAwODAwMiwgMC4wMDgwMDQsIDAuMDA4MDA1IiwgXAotICAgICAgICAgICIwLjAwNzk4NiwgMC4wMDgwNDcsIDAuMDA4MDU2LCAwLjAwODA1OCwgMC4wMDgwNjIsIDAuMDA4MDYxLCAwLjAwODA2MyIsIFwKLSAgICAgICAgICAiMC4wMDgwNDQsIDAuMDA4MTA1LCAwLjAwODExMSwgMC4wMDgxMTUsIDAuMDA4MTE2LCAwLjAwODExNywgMC4wMDgxMTYiLCBcCi0gICAgICAgICAgIjAuMDA4MTQ3LCAwLjAwODIxMiwgMC4wMDgyMTgsIDAuMDA4MjIxLCAwLjAwODIyMiwgMC4wMDgyMjMsIDAuMDA4MjIyIiwgXAotICAgICAgICAgICIwLjAwODI1OSwgMC4wMDgzMTgsIDAuMDA4MzIyLCAwLjAwODMyMSwgMC4wMDgzMzIsIDAuMDA4MzMyLCAwLjAwODMyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUk4iOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNzg3MSwgMC4wMDc4OTIsIDAuMDA3ODk1LCAwLjAwNzg5NywgMC4wMDc4OTgsIDAuMDA3ODk4LCAwLjAwNzg5OCIsIFwKLSAgICAgICAgICAiMC4wMDc4NjMsIDAuMDA3ODg2LCAwLjAwNzg5MSwgMC4wMDc4OTEsIDAuMDA3ODkyLCAwLjAwNzg5MiwgMC4wMDc4OTMiLCBcCi0gICAgICAgICAgIjAuMDA3ODk5LCAwLjAwNzkyMSwgMC4wMDc5MjMsIDAuMDA3OTI1LCAwLjAwNzkyNiwgMC4wMDc5MjYsIDAuMDA3OTI3IiwgXAotICAgICAgICAgICIwLjAwNzk0OCwgMC4wMDc5NzIsIDAuMDA3OTc0LCAwLjAwNzk3NiwgMC4wMDc5NzQsIDAuMDA3OTc3LCAwLjAwNzk3NyIsIFwKLSAgICAgICAgICAiMC4wMDgwMDcsIDAuMDA4MDMxLCAwLjAwODAzNCwgMC4wMDgwMzYsIDAuMDA4MDM3LCAwLjAwODAzOCwgMC4wMDgwMzciLCBcCi0gICAgICAgICAgIjAuMDA4MDg3LCAwLjAwODExMSwgMC4wMDgxMTQsIDAuMDA4MTE2LCAwLjAwODExNywgMC4wMDgxMTgsIDAuMDA4MTE5IiwgXAotICAgICAgICAgICIwLjAwODE5MiwgMC4wMDgyMTQsIDAuMDA4MjE4LCAwLjAwODIxOSwgMC4wMDgyMiwgMC4wMDgyMjEsIDAuMDA4MjIxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2NDk0LCAwLjAwNjU1OCwgMC4wMDY1NjUsIDAuMDA2NTcsIDAuMDA2NTcyLCAwLjAwNjU3MywgMC4wMDY1NzQiLCBcCi0gICAgICAgICAgIjAuMDA2NDc3LCAwLjAwNjU0MSwgMC4wMDY1NDksIDAuMDA2NTUzLCAwLjAwNjU1NSwgMC4wMDY1NTcsIDAuMDA2NTU3IiwgXAotICAgICAgICAgICIwLjAwNjQ5NCwgMC4wMDY1NTcsIDAuMDA2NTY1LCAwLjAwNjU2OSwgMC4wMDY1NzEsIDAuMDA2NTcyLCAwLjAwNjU3NCIsIFwKLSAgICAgICAgICAiMC4wMDY1MjUsIDAuMDA2NTg3LCAwLjAwNjU5NSwgMC4wMDY2LCAwLjAwNjYwMSwgMC4wMDY2MDMsIDAuMDA2NjAzIiwgXAotICAgICAgICAgICIwLjAwNjU2OSwgMC4wMDY2MzQsIDAuMDA2NjQyLCAwLjAwNjY0NSwgMC4wMDY2NDgsIDAuMDA2NjQ5LCAwLjAwNjY1IiwgXAotICAgICAgICAgICIwLjAwNjY0MiwgMC4wMDY3MDYsIDAuMDA2NzE0LCAwLjAwNjcxOCwgMC4wMDY3MiwgMC4wMDY3MjEsIDAuMDA2NzIyIiwgXAotICAgICAgICAgICIwLjAwNjcyMiwgMC4wMDY3ODMsIDAuMDA2NzkxLCAwLjAwNjc5NSwgMC4wMDY3OTksIDAuMDA2Nzk5LCAwLjAwNjgwMSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQyNjQsIDAuMDA0Mjg0LCAwLjAwNDI4NiwgMC4wMDQyODcsIDAuMDA0Mjg3LCAwLjAwNDI4NywgMC4wMDQyODciLCBcCi0gICAgICAgICAgIjAuMDA0MjI4LCAwLjAwNDI1MywgMC4wMDQyNTUsIDAuMDA0MjU2LCAwLjAwNDI1NywgMC4wMDQyNTcsIDAuMDA0MjU4IiwgXAotICAgICAgICAgICIwLjAwNDI3NywgMC4wMDQyOTEsIDAuMDA0MjkzLCAwLjAwNDI5NCwgMC4wMDQyOTUsIDAuMDA0Mjk1LCAwLjAwNDI5NiIsIFwKLSAgICAgICAgICAiMC4wMDQzNTUsIDAuMDA0MzU3LCAwLjAwNDM1NywgMC4wMDQzNTgsIDAuMDA0MzU3LCAwLjAwNDMzNywgMC4wMDQzNTciLCBcCi0gICAgICAgICAgIjAuMDA0MzY5LCAwLjAwNDM3NCwgMC4wMDQzNzQsIDAuMDA0Mzc1LCAwLjAwNDM3NSwgMC4wMDQzNzUsIDAuMDA0Mzc1IiwgXAotICAgICAgICAgICIwLjAwNDQ4NywgMC4wMDQ0ODEsIDAuMDA0NDc4LCAwLjAwNDQ4MSwgMC4wMDQ0ODEsIDAuMDA0NDgxLCAwLjAwNDQ4IiwgXAotICAgICAgICAgICIwLjAwNDU5NywgMC4wMDQ1ODMsIDAuMDA0NTgxLCAwLjAwNDU4LCAwLjAwNDU3OSwgMC4wMDQ1ODIsIDAuMDA0NTc4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1OCwgMC4wMDU4NDEsIDAuMDA1ODQ2LCAwLjAwNTg0OCwgMC4wMDU4NSwgMC4wMDU4NTEsIDAuMDA1ODUxIiwgXAotICAgICAgICAgICIwLjAwNTc4MSwgMC4wMDU4MjcsIDAuMDA1ODMzLCAwLjAwNTgzNiwgMC4wMDU4MzgsIDAuMDA1ODQsIDAuMDA1ODQiLCBcCi0gICAgICAgICAgIjAuMDA1ODE5LCAwLjAwNTg2LCAwLjAwNTg2NiwgMC4wMDU4NywgMC4wMDU4NzIsIDAuMDA1ODczLCAwLjAwNTg3MyIsIFwKLSAgICAgICAgICAiMC4wMDU4NzYsIDAuMDA1OTEsIDAuMDA1OTE3LCAwLjAwNTkyMSwgMC4wMDU5MjMsIDAuMDA1OTI0LCAwLjAwNTkyNSIsIFwKLSAgICAgICAgICAiMC4wMDU5NTQsIDAuMDA1OTc3LCAwLjAwNTk4MywgMC4wMDU5ODcsIDAuMDA1OTg5LCAwLjAwNTk5LCAwLjAwNTk5MSIsIFwKLSAgICAgICAgICAiMC4wMDYxMDMsIDAuMDA2MTA0LCAwLjAwNjEwOSwgMC4wMDYxMTEsIDAuMDA2MTE0LCAwLjAwNjExNCwgMC4wMDYxMTYiLCBcCi0gICAgICAgICAgIjAuMDA2MjM4LCAwLjAwNjIxNywgMC4wMDYyMjEsIDAuMDA2MjIyLCAwLjAwNjIyMywgMC4wMDYyMjMsIDAuMDA2MjI0Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihSTikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxMDYyNjk7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxMDYyNjk7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxMDQ5NjE7Ci0gICAgY2xvY2sgOiB0cnVlOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzM0MywgMC4wMDMzMTUsIDAuMDAzNDIzLCAwLjAwMzU3MiwgMC4wMDM3NCwgMC4wMDQwNDEsIDAuMDA0MzI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNjE0LCAwLjAwMDYwMiwgMC4wMDA1OTgsIDAuMDAwNTk2LCAwLjAwMDU5NSwgMC4wMDA1OTQsIDAuMDAwNTk0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkdOIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIkQmU04iOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8xX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDM3NSwgLTAuMDMyNSwgLTAuMDI2MjUsIC0wLjAyNjI1LCAtMC4wMiwgLTAuMDE2MjUsIC0wLjAyIiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAyNzUsIC0wLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAzMzc1LCAtMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDYxMjUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjA0LCAtMC4wMzc1IiwgXAotICAgICAgICAgICItMC4wNjc1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDQsIC0wLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjA3MTI1LCAtMC4wNjYyNSwgLTAuMDYsIC0wLjA1Mzc1LCAtMC4wNTM3NSwgLTAuMDUsIC0wLjA0NzUiLCBcCi0gICAgICAgICAgIi0wLjA4LCAtMC4wNjg3NSwgLTAuMDYyNSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA1MjUsIC0wLjA1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRCZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjEwNzE4OSwgMC4xMTM3MjMsIDAuMTIwNDkxLCAwLjEyNjQxMSwgMC4xMzEyNjUsIDAuMTM3ODksIDAuMTQzMDA0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkdOIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJEJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMV9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1LCAwLjA0NSwgMC4wMzg3NSwgMC4wMzI1LCAwLjAzMjUsIDAuMDI4NzUsIDAuMDMyNSIsIFwKLSAgICAgICAgICAiMC4wNjEyNSwgMC4wNSwgMC4wNDM3NSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzMzc1LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIjAuMDY3NSwgMC4wNTYyNSwgMC4wNSwgMC4wNSwgMC4wNDM3NSwgMC4wNCwgMC4wMzc1IiwgXAotICAgICAgICAgICIwLjA3Mzc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDU2MjUsIDAuMDUsIDAuMDQ2MjUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMDczNzUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNTYyNSwgMC4wNTI1LCAwLjA1IiwgXAotICAgICAgICAgICIwLjA4Mzc1LCAwLjA3ODc1LCAwLjA2NjI1LCAwLjA2NjI1LCAwLjA2LCAwLjA1NjI1LCAwLjA1Mzc1IiwgXAotICAgICAgICAgICIwLjA4NjI1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjg3NSwgMC4wNjUsIDAuMDYyNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oU04pICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDc4NTUwOTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA3ODU1MDk7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNzg0NDYxOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDQyMSwgMC4wMDA0MiwgMC4wMDA0MiwgMC4wMDA0MiwgMC4wMDA0MiwgMC4wMDA0MiwgMC4wMDA0MiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDQ0NSwgMC4wMDA0MzEsIDAuMDAwNDI1LCAwLjAwMDQyMiwgMC4wMDA0MjIsIDAuMDAwNDIxLCAwLjAwMDQyMiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQiOwotICAgICAgc2RmX2NvbmQgOiAiRCA9PSAxJ2IwIjsKLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjA2NTU5MiwgMC4wNzM2NTMsIDAuMDgzMDQ3LCAwLjA5MDgxMywgMC4wOTcxODMsIDAuMTA1NTE1LCAwLjExMTYwMyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJHTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJlY292ZXJ5X3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUQmUk4iOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1JOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQocmVjb3ZlcnlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAwNjI1LCAtMC4wMTEyNSwgLTAuMDE3NSwgLTAuMDIzNzUsIC0wLjAzLCAtMC4wMzM3NSwgLTAuMDM2MjUiLCBcCi0gICAgICAgICAgIi0wLjAwMTI1LCAtMC4wMDYyNSwgLTAuMDEyNSwgLTAuMDE4NzUsIC0wLjAyNSwgLTAuMDI4NzUsIC0wLjAzMTI1IiwgXAotICAgICAgICAgICIwLjAwNSwgMCwgLTAuMDA2MjUsIC0wLjAxMjUsIC0wLjAxODc1LCAtMC4wMjI1LCAtMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMDExMjUsIDAuMDA2MjUsIDAsIC0wLjAwNjI1LCAtMC4wMTI1LCAtMC4wMTYyNSwgLTAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMDE3NSwgMC4wMDYyNSwgMCwgLTAuMDA2MjUsIC0wLjAwNjI1LCAtMC4wMTYyNSwgLTAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMDIxMjUsIDAuMDEsIDAuMDAzNzUsIDAuMDAzNzUsIC0wLjAwMjUsIC0wLjAwNjI1LCAtMC4wMTUiLCBcCi0gICAgICAgICAgIjAuMDIzNzUsIDAuMDE4NzUsIDAuMDEyNSwgMC4wMDYyNSwgMCwgLTAuMDAzNzUsIC0wLjAwNjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIHRpbWluZ190eXBlIDogcmVjb3ZlcnlfcmlzaW5nOwotICAgICAgd2hlbiA6ICJHTiI7Ci0gICAgICBzZGZfY29uZCA6ICJHTiA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChyZWNvdmVyeV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTI1LCAwLjAwNzUsIDAuMDA3NSwgMC4wMDc1LCAwLjAwNzUsIDAuMDEsIDAuMDEzNzUiLCBcCi0gICAgICAgICAgIjAuMDE3NSwgMC4wMTI1LCAwLjAxMjUsIDAuMDEyNSwgMC4wMTI1LCAwLjAxNSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4wMjM3NSwgMC4wMTg3NSwgMC4wMTg3NSwgMC4wMTg3NSwgMC4wMTg3NSwgMC4wMTUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMDIzNzUsIDAuMDI1LCAwLjAxODc1LCAwLjAxODc1LCAwLjAxODc1LCAwLjAyMTI1LCAwLjAxODc1IiwgXAotICAgICAgICAgICIwLjAzLCAwLjAyNSwgMC4wMjUsIDAuMDI1LCAwLjAyNSwgMC4wMjEyNSwgMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMDMzNzUsIDAuMDI4NzUsIDAuMDI4NzUsIDAuMDI4NzUsIDAuMDI4NzUsIDAuMDI1LCAwLjAyODc1IiwgXAotICAgICAgICAgICIwLjAzNjI1LCAwLjAzMTI1LCAwLjAzMTI1LCAwLjAzMTI1LCAwLjAzMTI1LCAwLjAyNzUsIDAuMDI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkdOIjsKLSAgICAgIHRpbWluZ190eXBlIDogcmVtb3ZhbF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEJlJOIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9STl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHJlbW92YWxfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDI1LCAwLjAzLCAwLjA0MjUsIDAuMDQyNSwgMC4wNDg3NSwgMC4wNTI1LCAwLjA2MTI1IiwgXAotICAgICAgICAgICIwLjAyLCAwLjAyNSwgMC4wMzc1LCAwLjAzNzUsIDAuMDQzNzUsIDAuMDQ3NSwgMC4wNSIsIFwKLSAgICAgICAgICAiMC4wMTM3NSwgMC4wMjUsIDAuMDMxMjUsIDAuMDMxMjUsIDAuMDM3NSwgMC4wNDEyNSwgMC4wNSIsIFwKLSAgICAgICAgICAiMC4wMDc1LCAwLjAxODc1LCAwLjAyNSwgMC4wMzEyNSwgMC4wMzEyNSwgMC4wNDEyNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4wMDc1LCAwLjAxMjUsIDAuMDE4NzUsIDAuMDI1LCAwLjAzMTI1LCAwLjAzNSwgMC4wMzc1IiwgXAotICAgICAgICAgICIwLjAwMzc1LCAwLjAwODc1LCAwLjAxNSwgMC4wMjEyNSwgMC4wMjc1LCAwLjAzMTI1LCAwLjAzMzc1IiwgXAotICAgICAgICAgICItMC4wMDUsIDAuMDA2MjUsIDAuMDEyNSwgMC4wMTg3NSwgMC4wMTg3NSwgMC4wMjg3NSwgMC4wMzEyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJlbW92YWxfcmlzaW5nOwotICAgICAgd2hlbiA6ICJHTiI7Ci0gICAgICBzZGZfY29uZCA6ICJHTiA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChyZW1vdmFsX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjI1LCAwLjAxMTI1LCAwLjAxMTI1LCAwLjAxNzUsIDAuMDE3NSwgMC4wMjEyNSwgMC4wMjM3NSIsIFwKLSAgICAgICAgICAiMC4wMDEyNSwgMC4wMDYyNSwgMC4wMDYyNSwgMC4wMTI1LCAwLjAxMjUsIDAuMDE2MjUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjAwNSwgMCwgMC4wMDYyNSwgMC4wMDYyNSwgMC4wMDYyNSwgMC4wMSwgMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wMTEyNSwgLTAuMDA2MjUsIDAsIDAsIDAuMDA2MjUsIDAuMDEsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDExMjUsIC0wLjAwNjI1LCAtMC4wMDYyNSwgMCwgMCwgMC4wMDM3NSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDE1LCAtMC4wMSwgLTAuMDEsIC0wLjAwMzc1LCAtMC4wMDM3NSwgMCwgMC4wMDI1IiwgXAotICAgICAgICAgICItMC4wMTc1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIC0wLjAwNjI1LCAtMC4wMDI1LCAwIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBUTEFUTlRTQ0FYMTIgKgotICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChUTEFUTlRTQ0FYMTIpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMi4yNzIzOTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBjbG9ja19nYXRpbmdfaW50ZWdyYXRlZF9jZWxsIDogImxhdGNoX3Bvc2VkZ2VfcHJlY29udHJvbCI7Ci0gIHN0YXRldGFibGUoIiBDSyAgRSBTRSAiLCAiIEVJTlQgIikgewotICAgICB0YWJsZSA6ICIgIEwgIEwgIEwgOiAtIDogTCAsIFwKLSAgICAgICAgICAgICAgICBMICBIICBMIDogLSA6IEggLCBcCi0gICAgICAgICAgICAgICAgTCAgTCAgSCA6IC0gOiBIICwgXAotICAgICAgICAgICAgICAgIEwgIEggIEggOiAtIDogSCAsIFwKLSAgICAgICAgICAgICAgICBIICAtICAtIDogLSA6IE4gIjsKLSAgfQotICBwaW4oRUlOVCkgewotICAgIGRpcmVjdGlvbiA6IGludGVybmFsOwotICAgIGludGVybmFsX25vZGUgOiAiRUlOVCI7Ci0gIH0KLSAgcGluKENLKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2OTMxNjM7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjkzMTYzOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDY5MzA3NDsKLSAgICBjbG9ja19nYXRlX2Nsb2NrX3BpbiA6IHRydWU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA1MzIsIDAuMDA1MzE4LCAwLjAwNTM3OCwgMC4wMDU0ODksIDAuMDA1NjA3LCAwLjAwNTgyNiwgMC4wMDYwMjkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDUyNjgsIDAuMDA1MjczLCAwLjAwNTMyNiwgMC4wMDU0MjUsIDAuMDA1NTUsIDAuMDA1NzkzLCAwLjAwNTk4MiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUUmIVNFIjsKLSAgICAgIHNkZl9jb25kIDogIkVfRVFfMF9BTl9TRV9FUV8wID09IDEnYjEiOwotICAgICAgZmFsbF9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDgyMzE1LCAwLjA5MDIxMSwgMC4wOTgxNywgMC4xMDM5NjksIDAuMTA4NTQ1LCAwLjExNDk1MSwgMC4xMTk1NDQiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEUpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDczNTI5NzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA3MzUyOTc7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNzM0NjQ5OwotICAgIGNsb2NrX2dhdGVfZW5hYmxlX3BpbiA6IHRydWU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA1NTE2LCAwLjAwNTUwNiwgMC4wMDU1NTEsIDAuMDA1NjMyLCAwLjAwNTcyOSwgMC4wMDU5MDMsIDAuMDA2MDY4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA3MDE1LCAwLjAwNzAwOCwgMC4wMDcwNjMsIDAuMDA3MTYyLCAwLjAwNzI5MSwgMC4wMDc0NTIsIDAuMDA3NTk5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJTRSA9PSAxJ2IwIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMjUsIC0wLjAyLCAtMC4wMTM3NSwgLTAuMDEzNzUsIC0wLjAwNzUsIC0wLjAxLCAtMC4wMDc1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTg3NSwgLTAuMDE1LCAtMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDI3NSwgLTAuMDI1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzNzUsIC0wLjAzNzUsIC0wLjAzMzc1LCAtMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjA0Mzc1LCAtMC4wNDM3NSwgLTAuMDQsIC0wLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjA2NSwgLTAuMDYsIC0wLjA1Mzc1LCAtMC4wNTM3NSwgLTAuMDQ3NSwgLTAuMDQzNzUsIC0wLjA0MTI1IiwgXAotICAgICAgICAgICItMC4wNjc1LCAtMC4wNjI1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDU2MjUsIC0wLjA1MjUsIC0wLjA1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDI1LCAtMC4wMTM3NSwgLTAuMDA3NSwgLTAuMDAxMjUsIC0wLjAwMTI1LCAwLjAwODc1LCAwLjAxMTI1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIC0wLjAwMjUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTg3NSwgLTAuMDA4NzUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAyMTI1LCAtMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAyNzUsIC0wLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDY1LCAtMC4wNiwgLTAuMDUzNzUsIC0wLjA0NzUsIC0wLjA0MTI1LCAtMC4wMzc1LCAtMC4wMzUiLCBcCi0gICAgICAgICAgIi0wLjA3Mzc1LCAtMC4wNjg3NSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNDYyNSwgLTAuMDM3NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIVNFIjsKLSAgICAgIHNkZl9jb25kIDogIlNFID09IDEnYjAiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzMTI1LCAwLjAyNjI1LCAwLjAyLCAwLjAyLCAwLjAxMzc1LCAwLjAxNjI1LCAwLjAxMzc1IiwgXAotICAgICAgICAgICIwLjAzNjI1LCAwLjAzMTI1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMjUsIDAuMDIxMjUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMDQ4NzUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAzMzc1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICIwLjA1NSwgMC4wNSwgMC4wNDM3NSwgMC4wNDM3NSwgMC4wNDM3NSwgMC4wNCwgMC4wMzc1IiwgXAotICAgICAgICAgICIwLjA2MTI1LCAwLjA1NjI1LCAwLjA1LCAwLjA1LCAwLjA1LCAwLjA0NjI1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjA3MTI1LCAwLjA2NjI1LCAwLjA2LCAwLjA2LCAwLjA1Mzc1LCAwLjA1LCAwLjA0NzUiLCBcCi0gICAgICAgICAgIjAuMDczNzUsIDAuMDY4NzUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNjI1LCAwLjA1ODc1LCAwLjA1NjI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDMxMjUsIDAuMDIsIDAuMDEzNzUsIDAuMDA3NSwgMC4wMDc1LCAtMC4wMDI1LCAtMC4wMDUiLCBcCi0gICAgICAgICAgIjAuMDM2MjUsIDAuMDMxMjUsIDAuMDI1LCAwLjAxODc1LCAwLjAxMjUsIDAuMDA4NzUsIDAiLCBcCi0gICAgICAgICAgIjAuMDQ4NzUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMjUsIDAuMDI1LCAwLjAxNSwgMC4wMTI1IiwgXAotICAgICAgICAgICIwLjA1NSwgMC4wNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyNzUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMDYxMjUsIDAuMDU2MjUsIDAuMDUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzM3NSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4wNzEyNSwgMC4wNjYyNSwgMC4wNiwgMC4wNTM3NSwgMC4wNDc1LCAwLjA0Mzc1LCAwLjA0MTI1IiwgXAotICAgICAgICAgICIwLjA4LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1MjUsIDAuMDQzNzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEVDSykgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiA0LjIwMzk7Ci0gICAgY2xvY2tfZ2F0ZV9vdXRfcGluIDogdHJ1ZTsKLSAgICBzdGF0ZV9mdW5jdGlvbiA6ICIoQ0sgRUlOVCkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODQwOTYsIDAuMDg2Nzk3LCAwLjA5ODk0NCwgMC4xMDgwMDcsIDAuMTE5MjIxLCAwLjE0MDY3MiwgMC4xNTM4NTIiLCBcCi0gICAgICAgICAgIjAuMDkyMDU3LCAwLjA5NDc0NiwgMC4xMDY5NTgsIDAuMTE1OTUzLCAwLjEyNzE2LCAwLjE0ODYwNiwgMC4xNjE4IiwgXAotICAgICAgICAgICIwLjEwMDA4NCwgMC4xMDI3MzksIDAuMTE0OTUsIDAuMTIzOTQzLCAwLjEzNTE1MywgMC4xNTY2MDMsIDAuMTY5NzkzIiwgXAotICAgICAgICAgICIwLjEwNTkzNywgMC4xMDg2NDQsIDAuMTIwODIyLCAwLjEyOTg1MiwgMC4xNDEwNDksIDAuMTYyNTE2LCAwLjE3NTcxMSIsIFwKLSAgICAgICAgICAiMC4xMTA4NjMsIDAuMTEzNTIsIDAuMTI1Njc0LCAwLjEzNDY5NiwgMC4xNDU4NzcsIDAuMTY3Mjg0LCAwLjE4MDQ1NiIsIFwKLSAgICAgICAgICAiMC4xMTcyMDQsIDAuMTE5OTAxLCAwLjEzMjA0NywgMC4xNDEwODksIDAuMTUyMjU2LCAwLjE3MzcxNywgMC4xODY4ODEiLCBcCi0gICAgICAgICAgIjAuMTIyMjE1LCAwLjEyNDg2MiwgMC4xMzcwNDQsIDAuMTQ2MDU2LCAwLjE1NzI1MywgMC4xNzg3MjUsIDAuMTkxNzE5Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxOTU1NywgMC4wMjMwMzgsIDAuMDQxMDk5LCAwLjA1NjcyNiwgMC4wNzc1OCwgMC4xMjAxMjUsIDAuMTQ3MTIyIiwgXAotICAgICAgICAgICIwLjAxOTUsIDAuMDIzMDM2LCAwLjA0MTExOCwgMC4wNTY2NjMsIDAuMDc3NjAyLCAwLjEyMDA2MywgMC4xNDY5NzMiLCBcCi0gICAgICAgICAgIjAuMDE5NTIxLCAwLjAyMzA0MywgMC4wNDExMDgsIDAuMDU2NjU4LCAwLjA3NzYwMywgMC4xMjAxMzIsIDAuMTQ3MTI0IiwgXAotICAgICAgICAgICIwLjAxOTQ5NCwgMC4wMjI5ODcsIDAuMDQxMTM3LCAwLjA1NjcyMiwgMC4wNzc1OTksIDAuMTIwMTM1LCAwLjE0NzA0OSIsIFwKLSAgICAgICAgICAiMC4wMTk1MDEsIDAuMDIzMTA2LCAwLjA0MTE5OCwgMC4wNTY3NDcsIDAuMDc3NjM0LCAwLjEyMDE1NCwgMC4xNDcwNjIiLCBcCi0gICAgICAgICAgIjAuMDE5NTE5LCAwLjAyMzA0MSwgMC4wNDExNjcsIDAuMDU2NjUzLCAwLjA3NzYwNiwgMC4xMjAxMDMsIDAuMTQ2OTQ5IiwgXAotICAgICAgICAgICIwLjAxOTUzNywgMC4wMjMwNjcsIDAuMDQxMTM1LCAwLjA1Njg1MywgMC4wNzc2NjMsIDAuMTIwMDksIDAuMTQ3MDM1Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3Mzk3MSwgMC4wNzYyMzYsIDAuMDg2ODYyLCAwLjA5NTEsIDAuMTA1Nzg5LCAwLjEyNjg0NywgMC4xNDAwMjUiLCBcCi0gICAgICAgICAgIjAuMDgxODE2LCAwLjA4NDA4NywgMC4wOTQ3MDQsIDAuMTAyOTQ2LCAwLjExMzYyLCAwLjEzNDY5OSwgMC4xNDc4NzUiLCBcCi0gICAgICAgICAgIjAuMDg5NjM4LCAwLjA5MTkwMSwgMC4xMDI1MjksIDAuMTEwNzcyLCAwLjEyMTQ0NiwgMC4xNDI1MjYsIDAuMTU1NjciLCBcCi0gICAgICAgICAgIjAuMDk1MTU1LCAwLjA5NzQ1MiwgMC4xMDgwNTEsIDAuMTE2MzA3LCAwLjEyNzA1MywgMC4xNDgyMjgsIDAuMTYxMzY4IiwgXAotICAgICAgICAgICIwLjA5OTYxOCwgMC4xMDE4NzMsIDAuMTEyNTAxLCAwLjEyMDc2MSwgMC4xMzE1MDksIDAuMTUyNzAyLCAwLjE2NTgyOCIsIFwKLSAgICAgICAgICAiMC4xMDU3ODQsIDAuMTA4MDUyLCAwLjExODY5LCAwLjEyNjk1OCwgMC4xMzc3MDEsIDAuMTU4ODc2LCAwLjE3MjAxMyIsIFwKLSAgICAgICAgICAiMC4xMTAxOTIsIDAuMTEyNDA5LCAwLjEyMzA1MywgMC4xMzEzNzcsIDAuMTQyMTI5LCAwLjE2MzI5MiwgMC4xNzY0NzQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE1NjY1LCAwLjAxODc2NSwgMC4wMzU5MjcsIDAuMDUxMjczLCAwLjA3MjE0MSwgMC4xMTQ2NDcsIDAuMTQxMzk2IiwgXAotICAgICAgICAgICIwLjAxNTY0NywgMC4wMTg3NzQsIDAuMDM1OTA2LCAwLjA1MTMyNiwgMC4wNzIxOTIsIDAuMTE0NjIzLCAwLjE0MTUzOCIsIFwKLSAgICAgICAgICAiMC4wMTU2NDIsIDAuMDE4NzczLCAwLjAzNTkzMywgMC4wNTEzMjYsIDAuMDcyMTk0LCAwLjExNDY2LCAwLjE0MTU1MyIsIFwKLSAgICAgICAgICAiMC4wMTU2MzgsIDAuMDE4Nzc1LCAwLjAzNTkwMywgMC4wNTEzMTEsIDAuMDcyMjA1LCAwLjExNDc1MSwgMC4xNDE1OTgiLCBcCi0gICAgICAgICAgIjAuMDE1NjQ4LCAwLjAxODc2MSwgMC4wMzU5MjIsIDAuMDUxMzIyLCAwLjA3MjIwMywgMC4xMTQ4MTYsIDAuMTQxNjI1IiwgXAotICAgICAgICAgICIwLjAxNTcwNCwgMC4wMTg3ODYsIDAuMDM1OTE3LCAwLjA1MTM2OSwgMC4wNzIxNDksIDAuMTE0Nzg0LCAwLjE0MTQ3IiwgXAotICAgICAgICAgICIwLjAxNTcwOSwgMC4wMTg4MiwgMC4wMzU5NDIsIDAuMDUxMjgzLCAwLjA3MjM0LCAwLjExNDUzMywgMC4xNDE0MTEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDI0MzU0LCAwLjAyNDI2MiwgMC4wMjQyNDksIDAuMDI0MzI2LCAwLjAyNDQwOSwgMC4wMjQ1MTQsIDAuMDI0NTUzIiwgXAotICAgICAgICAgICIwLjAyNDM4MiwgMC4wMjQyNDQsIDAuMDI0MjQ1LCAwLjAyNDMyLCAwLjAyNDQwMywgMC4wMjQ1MDksIDAuMDI0NTQ5IiwgXAotICAgICAgICAgICIwLjAyNDQ2NCwgMC4wMjQzMTksIDAuMDI0MzIsIDAuMDI0Mzk1LCAwLjAyNDQ4LCAwLjAyNDU4NSwgMC4wMjQ2MjQiLCBcCi0gICAgICAgICAgIjAuMDI0NTE3LCAwLjAyNDQxMywgMC4wMjQzODksIDAuMDI0NDcxLCAwLjAyNDU1OSwgMC4wMjQ2NzMsIDAuMDI0NzE1IiwgXAotICAgICAgICAgICIwLjAyNDY2MywgMC4wMjQ1NDMsIDAuMDI0NTM2LCAwLjAyNDYxNSwgMC4wMjQ3LCAwLjAyNDgwMywgMC4wMjQ4NDMiLCBcCi0gICAgICAgICAgIjAuMDI0ODgyLCAwLjAyNDc5LCAwLjAyNDc1OCwgMC4wMjQ4MzEsIDAuMDI0OTE3LCAwLjAyNTAxNSwgMC4wMjUwNjQiLCBcCi0gICAgICAgICAgIjAuMDI1MDg3LCAwLjAyNDk2MSwgMC4wMjQ5MzIsIDAuMDI1MDA2LCAwLjAyNTEwMywgMC4wMjUyLCAwLjAyNTIzNiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyODkzOCwgMC4wMjg5NTcsIDAuMDI5MTk2LCAwLjAyOTM0OSwgMC4wMjk0NzksIDAuMDI5NjE0LCAwLjAyOTY2NCIsIFwKLSAgICAgICAgICAiMC4wMjg5NDksIDAuMDI4OTYsIDAuMDI5MTk5LCAwLjAyOTM1MiwgMC4wMjk0ODMsIDAuMDI5NjIxLCAwLjAyOTY3MSIsIFwKLSAgICAgICAgICAiMC4wMjkwMzksIDAuMDI5MDUxLCAwLjAyOTI4OSwgMC4wMjk0NDMsIDAuMDI5NTc0LCAwLjAyOTcxLCAwLjAyOTc1OCIsIFwKLSAgICAgICAgICAiMC4wMjkwNzcsIDAuMDI5MTA5LCAwLjAyOTM2NSwgMC4wMjk1MjYsIDAuMDI5NjYyLCAwLjAyOTgxMSwgMC4wMjk4NjUiLCBcCi0gICAgICAgICAgIjAuMDI5Mjk1LCAwLjAyOTM0MiwgMC4wMjk1NTQsIDAuMDI5NzI3LCAwLjAyOTgzMiwgMC4wMjk5OTMsIDAuMDMwMDQyIiwgXAotICAgICAgICAgICIwLjAyOTUyMywgMC4wMjk1MjIsIDAuMDI5NzkzLCAwLjAyOTk0NCwgMC4wMzAwNTYsIDAuMDMwMTk1LCAwLjAzMDIzOSIsIFwKLSAgICAgICAgICAiMC4wMjk3NTUsIDAuMDI5NzExLCAwLjAyOTk2LCAwLjAzMDExOSwgMC4wMzAyNjEsIDAuMDMwMzk0LCAwLjAzMDQ0NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oU0UpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDc1NDM3MTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA3NTI3OTc7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNzU0MzcxOwotICAgIGNsb2NrX2dhdGVfdGVzdF9waW4gOiB0cnVlOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNTY4MSwgMC4wMDU2NzYsIDAuMDA1NzIsIDAuMDA1ODAxLCAwLjAwNTkwNywgMC4wMDYwNzgsIDAuMDA2MjU4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA3Mjc5LCAwLjAwNzI1NSwgMC4wMDcyODMsIDAuMDA3MzQsIDAuMDA3NDE2LCAwLjAwNzU3NCwgMC4wMDc2NzgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUUiOwotICAgICAgc2RmX2NvbmQgOiAiRSA9PSAxJ2IwIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMjUsIC0wLjAyLCAtMC4wMTM3NSwgLTAuMDEzNzUsIC0wLjAxMzc1LCAtMC4wMSwgLTAuMDA3NSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTg3NSwgLTAuMDE1LCAtMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDMxMjUsIC0wLjAzMTI1LCAtMC4wMjc1LCAtMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wNDM3NSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzNzUsIC0wLjAzMzc1LCAtMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wNDM3NSwgLTAuMDQsIC0wLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjA2NSwgLTAuMDYsIC0wLjA2LCAtMC4wNTM3NSwgLTAuMDUzNzUsIC0wLjA1LCAtMC4wNDc1IiwgXAotICAgICAgICAgICItMC4wNzM3NSwgLTAuMDY4NzUsIC0wLjA2MjUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNTg3NSwgLTAuMDU2MjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMjUsIC0wLjAyLCAtMC4wMTM3NSwgLTAuMDA3NSwgLTAuMDAxMjUsIDAuMDAyNSwgMC4wMTEyNSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAtMC4wMDI1LCAwIiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwODc1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxNSwgLTAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMjEyNSwgLTAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDU4NzUsIC0wLjA0NzUsIC0wLjA0MTI1LCAtMC4wMzUsIC0wLjAzNSwgLTAuMDI1LCAtMC4wMjI1IiwgXAotICAgICAgICAgICItMC4wNjEyNSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDMzNzUsIC0wLjAzMTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRSI7Ci0gICAgICBzZGZfY29uZCA6ICJFID09IDEnYjAiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzMTI1LCAwLjAyNjI1LCAwLjAyLCAwLjAyLCAwLjAyLCAwLjAxNjI1LCAwLjAxMzc1IiwgXAotICAgICAgICAgICIwLjA0MjUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMjUsIDAuMDI1LCAwLjAyMTI1LCAwLjAxODc1IiwgXAotICAgICAgICAgICIwLjA0ODc1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDM3NSwgMC4wMzc1LCAwLjAzMzc1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICIwLjA1NSwgMC4wNSwgMC4wNSwgMC4wNDM3NSwgMC4wNDM3NSwgMC4wNCwgMC4wMzc1IiwgXAotICAgICAgICAgICIwLjA2MTI1LCAwLjA1NjI1LCAwLjA1NjI1LCAwLjA1LCAwLjA1LCAwLjA0NjI1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjA3MTI1LCAwLjA2NjI1LCAwLjA2NjI1LCAwLjA2LCAwLjA2LCAwLjA1NjI1LCAwLjA1Mzc1IiwgXAotICAgICAgICAgICIwLjA4LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA2NSwgMC4wNjI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDMxMjUsIDAuMDI2MjUsIDAuMDIsIDAuMDEzNzUsIDAuMDA3NSwgMC4wMDM3NSwgLTAuMDA1IiwgXAotICAgICAgICAgICIwLjAzNjI1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMTg3NSwgMC4wMTI1LCAwLjAwODc1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICIwLjA0MjUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMjUsIDAuMDE4NzUsIDAuMDE1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMDQ4NzUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMjUsIDAuMDIxMjUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMDU1LCAwLjA1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDI3NSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4wNjUsIDAuMDUzNzUsIDAuMDQ3NSwgMC4wNDEyNSwgMC4wNDEyNSwgMC4wMzEyNSwgMC4wMjg3NSIsIFwKLSAgICAgICAgICAiMC4wNjc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDUsIDAuMDQzNzUsIDAuMDQsIDAuMDM3NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBUTEFUTlRTQ0FYMiAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoVExBVE5UU0NBWDIpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC43Nzk3NTI7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgY2xvY2tfZ2F0aW5nX2ludGVncmF0ZWRfY2VsbCA6ICJsYXRjaF9wb3NlZGdlX3ByZWNvbnRyb2wiOwotICBzdGF0ZXRhYmxlKCIgQ0sgIEUgU0UgIiwgIiBFSU5UICIpIHsKLSAgICAgdGFibGUgOiAiICBMICBMICBMIDogLSA6IEwgLCBcCi0gICAgICAgICAgICAgICAgTCAgSCAgTCA6IC0gOiBIICwgXAotICAgICAgICAgICAgICAgIEwgIEwgIEggOiAtIDogSCAsIFwKLSAgICAgICAgICAgICAgICBMICBIICBIIDogLSA6IEggLCBcCi0gICAgICAgICAgICAgICAgSCAgLSAgLSA6IC0gOiBOICI7Ci0gIH0KLSAgcGluKEVJTlQpIHsKLSAgICBkaXJlY3Rpb24gOiBpbnRlcm5hbDsKLSAgICBpbnRlcm5hbF9ub2RlIDogIkVJTlQiOwotICB9Ci0gIHBpbihDSykgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNzAyNjI2OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDcwMjU5NTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA3MDI2MjY7Ci0gICAgY2xvY2tfZ2F0ZV9jbG9ja19waW4gOiB0cnVlOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzMzMywgMC4wMDMzNDEsIDAuMDAzMzk1LCAwLjAwMzUwNiwgMC4wMDM2MTksIDAuMDAzODQ0LCAwLjAwNDA0NiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNDExNiwgMC4wMDQxMTUsIDAuMDA0MTgzLCAwLjAwNDI4NywgMC4wMDQ0MjEsIDAuMDA0NjU5LCAwLjAwNDg3NyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUUmIVNFIjsKLSAgICAgIHNkZl9jb25kIDogIkVfRVFfMF9BTl9TRV9FUV8wID09IDEnYjEiOwotICAgICAgZmFsbF9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDcyMTMzLCAwLjA4MDA1MiwgMC4wODgwNzksIDAuMDkzODM1LCAwLjA5ODUyOSwgMC4xMDQ2NTYsIDAuMTA5MSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNzE5MTczOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDcxOTE3MzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA3MTg5NzM7Ci0gICAgY2xvY2tfZ2F0ZV9lbmFibGVfcGluIDogdHJ1ZTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDMwNzksIDAuMDAzMDcxLCAwLjAwMzEyNywgMC4wMDMyMDgsIDAuMDAzMjk3LCAwLjAwMzQ3NSwgMC4wMDM2MDUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDUzMzksIDAuMDA1MzM0LCAwLjAwNTM5NCwgMC4wMDU0ODcsIDAuMDA1NTY5LCAwLjAwNTc0OCwgMC4wMDU5MjciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIVNFIjsKLSAgICAgIHNkZl9jb25kIDogIlNFID09IDEnYjAiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAxODc1LCAtMC4wMTM3NSwgLTAuMDA3NSwgLTAuMDA3NSwgLTAuMDA3NSwgLTAuMDAzNzUsIC0wLjAwMTI1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDEyNSwgLTAuMDA4NzUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDIxMjUsIC0wLjAxODc1IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzc1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDMxMjUsIC0wLjAyNzUsIC0wLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzc1LCAtMC4wMzc1LCAtMC4wMzM3NSwgLTAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjA1ODc1LCAtMC4wNTM3NSwgLTAuMDQ3NSwgLTAuMDQ3NSwgLTAuMDQxMjUsIC0wLjAzNzUsIC0wLjAzNSIsIFwKLSAgICAgICAgICAiLTAuMDYxMjUsIC0wLjA1NjI1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjA1LCAtMC4wNDYyNSwgLTAuMDQzNzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMjUsIC0wLjAxMzc1LCAtMC4wMDc1LCAtMC4wMDEyNSwgLTAuMDAxMjUsIDAuMDA4NzUsIDAuMDExMjUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgLTAuMDAyNSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwODc1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjA0Mzc1LCAtMC4wMzEyNSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDIxMjUsIC0wLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjA1NSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDI3NSwgLTAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjA2NSwgLTAuMDYsIC0wLjA1Mzc1LCAtMC4wNDc1LCAtMC4wNDEyNSwgLTAuMDM3NSwgLTAuMDI4NzUiLCBcCi0gICAgICAgICAgIi0wLjA3Mzc1LCAtMC4wNjg3NSwgLTAuMDU2MjUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDQsIC0wLjAzNzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJTRSA9PSAxJ2IwIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjUsIDAuMDIsIDAuMDEzNzUsIDAuMDEzNzUsIDAuMDEzNzUsIDAuMDEsIDAuMDA3NSIsIFwKLSAgICAgICAgICAiMC4wMzYyNSwgMC4wMzEyNSwgMC4wMjUsIDAuMDE4NzUsIDAuMDE4NzUsIDAuMDE1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMDQyNSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMjc1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiMC4wNDg3NSwgMC4wNDM3NSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzNzUsIDAuMDMzNzUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMDU1LCAwLjA1LCAwLjA0Mzc1LCAwLjA0Mzc1LCAwLjA0Mzc1LCAwLjA0LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIjAuMDY1LCAwLjA2LCAwLjA1Mzc1LCAwLjA1Mzc1LCAwLjA0NzUsIDAuMDQzNzUsIDAuMDQxMjUiLCBcCi0gICAgICAgICAgIjAuMDY3NSwgMC4wNjI1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDU2MjUsIDAuMDUyNSwgMC4wNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzMTI1LCAwLjAyLCAwLjAxMzc1LCAwLjAwNzUsIDAuMDA3NSwgLTAuMDAyNSwgLTAuMDA1IiwgXAotICAgICAgICAgICIwLjAzNjI1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMTg3NSwgMC4wMTI1LCAwLjAwODc1LCAwIiwgXAotICAgICAgICAgICIwLjA0ODc1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDI1LCAwLjAxODc1LCAwLjAxNSwgMC4wMTI1IiwgXAotICAgICAgICAgICIwLjA1NSwgMC4wNSwgMC4wMzc1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDI3NSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4wNjEyNSwgMC4wNTYyNSwgMC4wNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzMzc1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiMC4wNzEyNSwgMC4wNjYyNSwgMC4wNiwgMC4wNTM3NSwgMC4wNDc1LCAwLjA0Mzc1LCAwLjAzNSIsIFwKLSAgICAgICAgICAiMC4wOCwgMC4wNzUsIDAuMDYyNSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA0NjI1LCAwLjA0Mzc1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihFQ0spICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC42OTIyNTQ7Ci0gICAgY2xvY2tfZ2F0ZV9vdXRfcGluIDogdHJ1ZTsKLSAgICBzdGF0ZV9mdW5jdGlvbiA6ICIoQ0sgRUlOVCkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODEzMjYsIDAuMTU5Njc0LCAwLjIyMTQxNCwgMC4yOTg2MzQsIDAuMzc1NzE0LCAwLjQ1Mjg3OCwgMC41Mjk5OCIsIFwKLSAgICAgICAgICAiMC4wODk0MzcsIDAuMTY3NzcxLCAwLjIyOTUxMSwgMC4zMDY3NjIsIDAuMzgzODA2LCAwLjQ2MDk2MSwgMC41MzgxMjIiLCBcCi0gICAgICAgICAgIjAuMDk3Njc2LCAwLjE3NjAzOCwgMC4yMzc3ODEsIDAuMzE0OTksIDAuMzkyMDc1LCAwLjQ2OTI0OSwgMC41NDYzOTciLCBcCi0gICAgICAgICAgIjAuMTAzNzMzLCAwLjE4MjA1NywgMC4yNDM4MDIsIDAuMzIxMDA2LCAwLjM5ODE0NiwgMC40NzUwOTQsIDAuNTUyNDM1IiwgXAotICAgICAgICAgICIwLjEwODUyMywgMC4xODY5MTUsIDAuMjQ4NjU4LCAwLjMyNTg2NCwgMC40MDI5NDcsIDAuNDgwMDgsIDAuNTU3MzA1IiwgXAotICAgICAgICAgICIwLjExNTI1NiwgMC4xOTM2MiwgMC4yNTUyNDgsIDAuMzMyNTIzLCAwLjQwOTY0MiwgMC40ODY4NzgsIDAuNTYzOTE4IiwgXAotICAgICAgICAgICIwLjEyMDEsIDAuMTk4NDIsIDAuMjYwMTUzLCAwLjMzNzM1MywgMC40MTQ0NDIsIDAuNDkxNjYyLCAwLjU2ODczNSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDMwNTMsIDAuMjAxNjc2LCAwLjMzMTQ4OSwgMC40OTMyOTIsIDAuNjU2MTgzLCAwLjgxODQ2OCwgMC45ODE4MyIsIFwKLSAgICAgICAgICAiMC4wNDMwNTIsIDAuMjAxNjU2LCAwLjMzMTQ5NSwgMC40OTMyMDMsIDAuNjU3MDk5LCAwLjgxODQ3MSwgMC45ODEyMzQiLCBcCi0gICAgICAgICAgIjAuMDQzMDA3LCAwLjIwMTY5NiwgMC4zMzA5NjEsIDAuNDkzMzM3LCAwLjY1NjE3MiwgMC44MTg2MDksIDAuOTgyNzczIiwgXAotICAgICAgICAgICIwLjA0MzAzNSwgMC4yMDE2OTksIDAuMzMxMDQ2LCAwLjQ5MzM0NywgMC42NTU5NTcsIDAuODE4MjYzLCAwLjk4MTIyMSIsIFwKLSAgICAgICAgICAiMC4wNDMwMTMsIDAuMjAxNzA1LCAwLjMzMTQ4OCwgMC40OTMzMDcsIDAuNjU2OTY0LCAwLjgxOTc4MiwgMC45ODEyMTQiLCBcCi0gICAgICAgICAgIjAuMDQzMDYyLCAwLjIwMTY4OCwgMC4zMzE0ODcsIDAuNDkzNTY1LCAwLjY1NjI1NywgMC44MTg1NzMsIDAuOTgyNjIxIiwgXAotICAgICAgICAgICIwLjA0MzA3LCAwLjIwMTUzOSwgMC4zMzEzMTcsIDAuNDk0MjEzLCAwLjY1NjkyMSwgMC44MTk3NTUsIDAuOTgyNjAzIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3MjEzMywgMC4xNDgxMTgsIDAuMjA4ODEyLCAwLjI4NDY1NywgMC4zNjA0ODksIDAuNDM2NDM4LCAwLjUxMjQyNCIsIFwKLSAgICAgICAgICAiMC4wODAwNTIsIDAuMTU2MDM2LCAwLjIxNjczLCAwLjI5MjU1MywgMC4zNjg0MTIsIDAuNDQ0MjE1LCAwLjUyMDIxMiIsIFwKLSAgICAgICAgICAiMC4wODgwNzksIDAuMTY0MDkzLCAwLjIyNDc5NywgMC4zMDA2OTIsIDAuMzc2NDkzLCAwLjQ1MjU0NSwgMC41MjgyNDciLCBcCi0gICAgICAgICAgIjAuMDkzODM1LCAwLjE2OTg2NywgMC4yMzA1NDQsIDAuMzA2NDMxLCAwLjM4MjI4LCAwLjQ1ODE1NiwgMC41MzQwOTciLCBcCi0gICAgICAgICAgIjAuMDk4NTI5LCAwLjE3NDY2MiwgMC4yMzUzNSwgMC4zMTEyMjMsIDAuMzg3MjQzLCAwLjQ2MzA2OSwgMC41Mzg4NDMiLCBcCi0gICAgICAgICAgIjAuMTA0NjU2LCAwLjE4MDc1NywgMC4yNDE0NDYsIDAuMzE3MjkzLCAwLjM5MzIwMSwgMC40NjkxOTUsIDAuNTQ0ODUzIiwgXAotICAgICAgICAgICIwLjEwOTEsIDAuMTg1MjI2LCAwLjI0NTkzLCAwLjMyMTc4MSwgMC4zOTc2OTQsIDAuNDczNjA1LCAwLjU0OTM1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzODMzOSwgMC4xOTM3NDYsIDAuMzIwMDYsIDAuNDc3ODM1LCAwLjYzNTM4MywgMC43OTI5MzYsIDAuOTUwNTg5IiwgXAotICAgICAgICAgICIwLjAzODMzOSwgMC4xOTM1NzMsIDAuMzIwMDYzLCAwLjQ3Nzc4NSwgMC42MzUzMTYsIDAuNzkzMzIzLCAwLjk0OTQwNCIsIFwKLSAgICAgICAgICAiMC4wMzgzMjksIDAuMTkzOTY2LCAwLjMxOTQxNCwgMC40NzcxNDIsIDAuNjM1MzkxLCAwLjc5MjkwOSwgMC45NTA1MzgiLCBcCi0gICAgICAgICAgIjAuMDM4Mzk3LCAwLjE5NCwgMC4zMjAwMzMsIDAuNDc3MTI2LCAwLjYzNDg0NSwgMC43OTE5OTgsIDAuOTUwNTU0IiwgXAotICAgICAgICAgICIwLjAzODM0LCAwLjE5Mzk1NSwgMC4zMjAwNDgsIDAuNDc3MTI3LCAwLjYzNDg1MywgMC43OTI3MzYsIDAuOTUwNTczIiwgXAotICAgICAgICAgICIwLjAzODMwOCwgMC4xOTM5MTYsIDAuMzIwMDIzLCAwLjQ3Nzc3OCwgMC42MzUwNjIsIDAuNzkxODQ1LCAwLjk1MDU1NCIsIFwKLSAgICAgICAgICAiMC4wMzgzNiwgMC4xOTM2NTcsIDAuMzE5OTA3LCAwLjQ3NzI0LCAwLjYzNTUyNywgMC43OTI1NzMsIDAuOTQ5NDMxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjU4OSwgMC4wMDY2NTIsIDAuMDA2NjYxLCAwLjAwNjY2NiwgMC4wMDY2NjgsIDAuMDA2NjcsIDAuMDA2NjcxIiwgXAotICAgICAgICAgICIwLjAwNjU4MiwgMC4wMDY2NDYsIDAuMDA2NjU1LCAwLjAwNjY1OSwgMC4wMDY2NjIsIDAuMDA2NjY0LCAwLjAwNjY2NSIsIFwKLSAgICAgICAgICAiMC4wMDY2NTMsIDAuMDA2NzE3LCAwLjAwNjcyOCwgMC4wMDY3MywgMC4wMDY3MzMsIDAuMDA2NzM1LCAwLjAwNjczNyIsIFwKLSAgICAgICAgICAiMC4wMDY3NzEsIDAuMDA2ODM1LCAwLjAwNjg0NCwgMC4wMDY4NDgsIDAuMDA2ODUsIDAuMDA2ODUyLCAwLjAwNjg1MyIsIFwKLSAgICAgICAgICAiMC4wMDY4ODQsIDAuMDA2OTUsIDAuMDA2OTU5LCAwLjAwNjk2NSwgMC4wMDY5NjgsIDAuMDA2OTcxLCAwLjAwNjk3IiwgXAotICAgICAgICAgICIwLjAwNzA5MSwgMC4wMDcxNTYsIDAuMDA3MTY0LCAwLjAwNzE2OSwgMC4wMDcxNzEsIDAuMDA3MTczLCAwLjAwNzE3NCIsIFwKLSAgICAgICAgICAiMC4wMDcyNzcsIDAuMDA3MzQzLCAwLjAwNzM1MiwgMC4wMDczNTgsIDAuMDA3MzU5LCAwLjAwNzM2NiwgMC4wMDczNjEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTA4MTcsIDAuMDEwODgyLCAwLjAxMDg4OSwgMC4wMTA4OTQsIDAuMDEwODk2LCAwLjAxMDg5NywgMC4wMTA4OTgiLCBcCi0gICAgICAgICAgIjAuMDEwODM2LCAwLjAxMDkwMSwgMC4wMTA5MSwgMC4wMTA5MTMsIDAuMDEwOTE1LCAwLjAxMDkxNiwgMC4wMTA5MTciLCBcCi0gICAgICAgICAgIjAuMDEwOTE2LCAwLjAxMDk4MywgMC4wMTA5OSwgMC4wMTA5OTQsIDAuMDEwOTk2LCAwLjAxMDk5NywgMC4wMTA5OTgiLCBcCi0gICAgICAgICAgIjAuMDExMDU1LCAwLjAxMTEyMywgMC4wMTExMzIsIDAuMDExMTM2LCAwLjAxMTEzOCwgMC4wMTExMzksIDAuMDExMTQxIiwgXAotICAgICAgICAgICIwLjAxMTE3NCwgMC4wMTEyMzksIDAuMDExMjQ4LCAwLjAxMTI1MiwgMC4wMTEyNTQsIDAuMDExMjU2LCAwLjAxMTI1NyIsIFwKLSAgICAgICAgICAiMC4wMTEzOTcsIDAuMDExNDYzLCAwLjAxMTQ3MiwgMC4wMTE0NzYsIDAuMDExNDc4LCAwLjAxMTQ3OSwgMC4wMTE0OCIsIFwKLSAgICAgICAgICAiMC4wMTE1OTcsIDAuMDExNjY1LCAwLjAxMTY3MywgMC4wMTE2NzUsIDAuMDExNjc1LCAwLjAxMTY4LCAwLjAxMTY4MSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oU0UpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDc1MjU4NDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA3NTA4OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDc1MjU4NDsKLSAgICBjbG9ja19nYXRlX3Rlc3RfcGluIDogdHJ1ZTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDMyNDUsIDAuMDAzMjQzLCAwLjAwMzI5MywgMC4wMDMzNzksIDAuMDAzNDc3LCAwLjAwMzY1NywgMC4wMDM4MzMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDU2MDIsIDAuMDA1NTgxLCAwLjAwNTYwOSwgMC4wMDU2NjMsIDAuMDA1NzM2LCAwLjAwNTg1OSwgMC4wMDU5OTYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUUiOwotICAgICAgc2RmX2NvbmQgOiAiRSA9PSAxJ2IwIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMTg3NSwgLTAuMDEzNzUsIC0wLjAxMzc1LCAtMC4wMDc1LCAtMC4wMDc1LCAtMC4wMDM3NSwgLTAuMDAxMjUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA4NzUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDMxMjUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAyNSwgLTAuMDIxMjUsIC0wLjAxODc1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMzEyNSwgLTAuMDI3NSwgLTAuMDI1IiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDM3NSwgLTAuMDMzNzUsIC0wLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wNTg3NSwgLTAuMDUzNzUsIC0wLjA1Mzc1LCAtMC4wNDc1LCAtMC4wNDc1LCAtMC4wNDM3NSwgLTAuMDQxMjUiLCBcCi0gICAgICAgICAgIi0wLjA2NzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjA0NjI1LCAtMC4wNDM3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAyNSwgLTAuMDIsIC0wLjAwNzUsIC0wLjAwNzUsIC0wLjAwMTI1LCAwLjAwMjUsIDAuMDExMjUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgLTAuMDAyNSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDg3NSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAyMTI1LCAtMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wNTg3NSwgLTAuMDQ3NSwgLTAuMDQxMjUsIC0wLjAzNSwgLTAuMDI4NzUsIC0wLjAyNSwgLTAuMDIyNSIsIFwKLSAgICAgICAgICAiLTAuMDYxMjUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzMzc1LCAtMC4wMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFFIjsKLSAgICAgIHNkZl9jb25kIDogIkUgPT0gMSdiMCI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDI1LCAwLjAyLCAwLjAyLCAwLjAxMzc1LCAwLjAxMzc1LCAwLjAxLCAwLjAwNzUiLCBcCi0gICAgICAgICAgIjAuMDM2MjUsIDAuMDMxMjUsIDAuMDI1LCAwLjAyNSwgMC4wMTg3NSwgMC4wMTUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4wNDI1LCAwLjAzNzUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMzEyNSwgMC4wMjc1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiMC4wNTUsIDAuMDUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzc1LCAwLjAzMzc1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICIwLjA2MTI1LCAwLjA1NjI1LCAwLjA1LCAwLjA0Mzc1LCAwLjA0Mzc1LCAwLjA0LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIjAuMDY1LCAwLjA2LCAwLjA2LCAwLjA1Mzc1LCAwLjA1Mzc1LCAwLjA1LCAwLjA0NzUiLCBcCi0gICAgICAgICAgIjAuMDczNzUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1MjUsIDAuMDUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzEyNSwgMC4wMjYyNSwgMC4wMTM3NSwgMC4wMTM3NSwgMC4wMDc1LCAwLjAwMzc1LCAtMC4wMDUiLCBcCi0gICAgICAgICAgIjAuMDM2MjUsIDAuMDMxMjUsIDAuMDI1LCAwLjAxODc1LCAwLjAxMjUsIDAuMDA4NzUsIDAiLCBcCi0gICAgICAgICAgIjAuMDQyNSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMTg3NSwgMC4wMTUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4wNDg3NSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMjEyNSwgMC4wMTI1IiwgXAotICAgICAgICAgICIwLjA1NSwgMC4wNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyNzUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMDY1LCAwLjA1Mzc1LCAwLjA0NzUsIDAuMDQxMjUsIDAuMDM1LCAwLjAzMTI1LCAwLjAyODc1IiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNSwgMC4wNDM3NSwgMC4wNCwgMC4wMzEyNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogVExBVE5UU0NBWDIwICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoVExBVE5UU0NBWDIwKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDMuNTQ5MjQ7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgY2xvY2tfZ2F0aW5nX2ludGVncmF0ZWRfY2VsbCA6ICJsYXRjaF9wb3NlZGdlX3ByZWNvbnRyb2wiOwotICBzdGF0ZXRhYmxlKCIgQ0sgIEUgU0UgIiwgIiBFSU5UICIpIHsKLSAgICAgdGFibGUgOiAiICBMICBMICBMIDogLSA6IEwgLCBcCi0gICAgICAgICAgICAgICAgTCAgSCAgTCA6IC0gOiBIICwgXAotICAgICAgICAgICAgICAgIEwgIEwgIEggOiAtIDogSCAsIFwKLSAgICAgICAgICAgICAgICBMICBIICBIIDogLSA6IEggLCBcCi0gICAgICAgICAgICAgICAgSCAgLSAgLSA6IC0gOiBOICI7Ci0gIH0KLSAgcGluKEVJTlQpIHsKLSAgICBkaXJlY3Rpb24gOiBpbnRlcm5hbDsKLSAgICBpbnRlcm5hbF9ub2RlIDogIkVJTlQiOwotICB9Ci0gIHBpbihDSykgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjMyNTg1OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYzMjQ1OTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2MzI1ODU7Ci0gICAgY2xvY2tfZ2F0ZV9jbG9ja19waW4gOiB0cnVlOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNjk5LCAwLjAwNjk4MywgMC4wMDcwNTUsIDAuMDA3MTUxLCAwLjAwNzI2NiwgMC4wMDc0OTMsIDAuMDA3Njg3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA2NjExLCAwLjAwNjYwNywgMC4wMDY2NzQsIDAuMDA2NzgxLCAwLjAwNjkxMiwgMC4wMDcwNjcsIDAuMDA3MzI2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRSYhU0UiOwotICAgICAgc2RmX2NvbmQgOiAiRV9FUV8wX0FOX1NFX0VRXzAgPT0gMSdiMSI7Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wOTY0MDMsIDAuMTA0MjI0LCAwLjExMjQ1NCwgMC4xMTg0NzMsIDAuMTIzMTczLCAwLjEyOTcyNywgMC4xMzQ1MTYiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEUpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY2MjA1NTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2NjIwNTU7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjYxNTk5OwotICAgIGNsb2NrX2dhdGVfZW5hYmxlX3BpbiA6IHRydWU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA4MTY3LCAwLjAwODE1MiwgMC4wMDgyMTgsIDAuMDA4MzE1LCAwLjAwODQyMiwgMC4wMDg2MTIsIDAuMDA4ODY0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA5NDY5LCAwLjAwOTQ3MiwgMC4wMDk1MSwgMC4wMDk2ODMsIDAuMDA5ODEyLCAwLjAxMDA4LCAwLjAxMDIyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJTRSA9PSAxJ2IwIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMzEyNSwgLTAuMDIsIC0wLjAyLCAtMC4wMTM3NSwgLTAuMDEzNzUsIC0wLjAxLCAtMC4wMDc1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDI1LCAtMC4wMjUsIC0wLjAyMTI1LCAtMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjAzNzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMzEyNSwgLTAuMDI3NSwgLTAuMDI1IiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjA0LCAtMC4wMzc1IiwgXAotICAgICAgICAgICItMC4wNjEyNSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjA0NjI1LCAtMC4wNDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDcxMjUsIC0wLjA2NjI1LCAtMC4wNiwgLTAuMDYsIC0wLjA1Mzc1LCAtMC4wNSwgLTAuMDQ3NSIsIFwKLSAgICAgICAgICAiLTAuMDczNzUsIC0wLjA2ODc1LCAtMC4wNjg3NSwgLTAuMDYyNSwgLTAuMDYyNSwgLTAuMDU4NzUsIC0wLjA1NjI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDI1LCAtMC4wMiwgLTAuMDEzNzUsIC0wLjAwNzUsIC0wLjAwMTI1LCAwLjAwMjUsIDAuMDExMjUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgLTAuMDAyNSwgMCIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxNSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA1NSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAyMTI1LCAtMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDYxMjUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDM3NSwgLTAuMDI3NSwgLTAuMDI1IiwgXAotICAgICAgICAgICItMC4wNzEyNSwgLTAuMDY2MjUsIC0wLjA1Mzc1LCAtMC4wNTM3NSwgLTAuMDQ3NSwgLTAuMDM3NSwgLTAuMDM1IiwgXAotICAgICAgICAgICItMC4wOCwgLTAuMDc1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDU2MjUsIC0wLjA0NjI1LCAtMC4wNDM3NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIVNFIjsKLSAgICAgIHNkZl9jb25kIDogIlNFID09IDEnYjAiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzNzUsIDAuMDI2MjUsIDAuMDI2MjUsIDAuMDIsIDAuMDIsIDAuMDE2MjUsIDAuMDEzNzUiLCBcCi0gICAgICAgICAgIjAuMDQyNSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAzMTI1LCAwLjAzMTI1LCAwLjAyNzUsIDAuMDI1IiwgXAotICAgICAgICAgICIwLjA1NSwgMC4wNDM3NSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzNzUsIDAuMDMzNzUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMDYxMjUsIDAuMDU2MjUsIDAuMDUsIDAuMDUsIDAuMDQzNzUsIDAuMDQ2MjUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMDY3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1NjI1LCAwLjA1LCAwLjA1MjUsIDAuMDUiLCBcCi0gICAgICAgICAgIjAuMDc3NSwgMC4wNzI1LCAwLjA2NjI1LCAwLjA2NjI1LCAwLjA2LCAwLjA1NjI1LCAwLjA1Mzc1IiwgXAotICAgICAgICAgICIwLjA4LCAwLjA3NSwgMC4wNzUsIDAuMDY4NzUsIDAuMDY4NzUsIDAuMDY1LCAwLjA2MjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzEyNSwgMC4wMjYyNSwgMC4wMiwgMC4wMTM3NSwgMC4wMDc1LCAwLjAwMzc1LCAtMC4wMDUiLCBcCi0gICAgICAgICAgIjAuMDQyNSwgMC4wMzEyNSwgMC4wMjUsIDAuMDE4NzUsIDAuMDEyNSwgMC4wMDg3NSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiMC4wNDg3NSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMjEyNSwgMC4wMTI1IiwgXAotICAgICAgICAgICIwLjA2MTI1LCAwLjA1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDI3NSwgMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMDY3NSwgMC4wNTYyNSwgMC4wNSwgMC4wNDM3NSwgMC4wNDM3NSwgMC4wMzM3NSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4wNzc1LCAwLjA3MjUsIDAuMDYsIDAuMDYsIDAuMDUzNzUsIDAuMDQzNzUsIDAuMDQxMjUiLCBcCi0gICAgICAgICAgIjAuMDg2MjUsIDAuMDgxMjUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNjI1LCAwLjA1MjUsIDAuMDUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEVDSykgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiA2Ljg3MDU3OwotICAgIGNsb2NrX2dhdGVfb3V0X3BpbiA6IHRydWU7Ci0gICAgc3RhdGVfZnVuY3Rpb24gOiAiKENLIEVJTlQpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk3NDYzLCAwLjExMDI3NywgMC4xMTgzMjMsIDAuMTI3Mzg0LCAwLjEzNTk5MSwgMC4xNDQzMTcsIDAuMTUyNDk0IiwgXAotICAgICAgICAgICIwLjEwNTQ3MiwgMC4xMTgyNDUsIDAuMTI2MzAyLCAwLjEzNTQwMSwgMC4xNDM5NiwgMC4xNTIyOTQsIDAuMTYwNDgyIiwgXAotICAgICAgICAgICIwLjExMzc4OSwgMC4xMjY1NjIsIDAuMTM0NTk4LCAwLjE0MzcyNCwgMC4xNTIzMTYsIDAuMTYwNjAyLCAwLjE2ODc5MSIsIFwKLSAgICAgICAgICAiMC4xMTk3MywgMC4xMzI1NjEsIDAuMTQwNTU0LCAwLjE0OTY1OCwgMC4xNTgyNjQsIDAuMTY2NTg1LCAwLjE3NDc1MiIsIFwKLSAgICAgICAgICAiMC4xMjQ2MTQsIDAuMTM3NDE2LCAwLjE0NTQ0NiwgMC4xNTQ1NjUsIDAuMTYzMTU1LCAwLjE3MTQ3MywgMC4xNzk2NjQiLCBcCi0gICAgICAgICAgIjAuMTMxMzM2LCAwLjE0NDA4OCwgMC4xNTIwOTksIDAuMTYxMjIxLCAwLjE2OTg0OCwgMC4xNzgxODUsIDAuMTg2MzI0IiwgXAotICAgICAgICAgICIwLjEzNjQ2MiwgMC4xNDkwMzUsIDAuMTU3MzA1LCAwLjE2NjQzLCAwLjE3NDk3NCwgMC4xODMzMTMsIDAuMTkxNDUzIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxODM4MSwgMC4wMzU3MjIsIDAuMDQ4NTA0LCAwLjA2NDMyLCAwLjA4MDIyLCAwLjA5NjIzNiwgMC4xMTIyNjEiLCBcCi0gICAgICAgICAgIjAuMDE4MzE2LCAwLjAzNTcxMiwgMC4wNDg1MTQsIDAuMDY0MzUzLCAwLjA4MDE3NSwgMC4wOTYyMTYsIDAuMTEyMzY3IiwgXAotICAgICAgICAgICIwLjAxODQyNiwgMC4wMzU3MjQsIDAuMDQ4NTEyLCAwLjA2NDM0OSwgMC4wODAyMDksIDAuMDk2MjMsIDAuMTEyMzY1IiwgXAotICAgICAgICAgICIwLjAxODM3NCwgMC4wMzU3NjcsIDAuMDQ4NDgzLCAwLjA2NDMyNCwgMC4wODAxODYsIDAuMDk2MjM3LCAwLjExMjMyNiIsIFwKLSAgICAgICAgICAiMC4wMTgyNzgsIDAuMDM1NjcxLCAwLjA0ODQ3LCAwLjA2NDMxNiwgMC4wODAxODcsIDAuMDk2MTk4LCAwLjExMjMxNiIsIFwKLSAgICAgICAgICAiMC4wMTgzMDUsIDAuMDM1NzQyLCAwLjA0ODQ4MywgMC4wNjQzMDEsIDAuMDgwMjAxLCAwLjA5NjIxMiwgMC4xMTI1MzUiLCBcCi0gICAgICAgICAgIjAuMDE4Mzk0LCAwLjAzNTczMiwgMC4wNDg3MjEsIDAuMDY0MzQyLCAwLjA4MDE2NywgMC4wOTYyMDQsIDAuMTEyMzg4Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4NjM5NywgMC4wOTc0OTcsIDAuMTA0NjY0LCAwLjExMzAzLCAwLjEyMTE0OCwgMC4xMjkxNTksIDAuMTM3MTQ4IiwgXAotICAgICAgICAgICIwLjA5NDIwMywgMC4xMDUyOTIsIDAuMTEyNDgzLCAwLjEyMDg0NSwgMC4xMjg5NTcsIDAuMTM2OTcsIDAuMTQ0OTU4IiwgXAotICAgICAgICAgICIwLjEwMjI4MiwgMC4xMTMzODUsIDAuMTIwNTUsIDAuMTI4OTIsIDAuMTM3MDMsIDAuMTQ1MDUsIDAuMTUzMDEzIiwgXAotICAgICAgICAgICIwLjEwODAxOSwgMC4xMTkxMjMsIDAuMTI2MywgMC4xMzQ2NzUsIDAuMTQyNzkyLCAwLjE1MDg0NiwgMC4xNTg4NTgiLCBcCi0gICAgICAgICAgIjAuMTEyNjY1LCAwLjEyMzc0MSwgMC4xMzA5MywgMC4xMzkyODMsIDAuMTQ3NDY1LCAwLjE1NTUyNSwgMC4xNjM1MzgiLCBcCi0gICAgICAgICAgIjAuMTE5MDI0LCAwLjEzMDA4MywgMC4xMzcyNjgsIDAuMTQ1NjYxLCAwLjE1Mzg1NCwgMC4xNjE5MzMsIDAuMTY5OTQ2IiwgXAotICAgICAgICAgICIwLjEyMzU3LCAwLjEzNDY3NiwgMC4xNDE4MzgsIDAuMTUwMjk5LCAwLjE1ODUwNywgMC4xNjY1ODYsIDAuMTc0NTk1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxNTAxLCAwLjAzMDc5LCAwLjA0MzA4MywgMC4wNTg1ODIsIDAuMDc0MjMyLCAwLjA5MDA4MiwgMC4xMDYwNDYiLCBcCi0gICAgICAgICAgIjAuMDE1MDUxLCAwLjAzMDc5MSwgMC4wNDMwNDgsIDAuMDU4NTg2LCAwLjA3NDI3MSwgMC4wOTAwODgsIDAuMTA2MTEyIiwgXAotICAgICAgICAgICIwLjAxNDk5OSwgMC4wMzA3ODgsIDAuMDQzMDksIDAuMDU4NTczLCAwLjA3NDI4NSwgMC4wOTAxNCwgMC4xMDYxMDgiLCBcCi0gICAgICAgICAgIjAuMDE1MDIsIDAuMDMwNzkxLCAwLjA0MzA4NSwgMC4wNTg1ODgsIDAuMDc0MjQsIDAuMDkwMTIsIDAuMTA2MDI0IiwgXAotICAgICAgICAgICIwLjAxNTA0MSwgMC4wMzA3NjEsIDAuMDQzMDcsIDAuMDU4NTc3LCAwLjA3NDI2NiwgMC4wOTAxNDIsIDAuMTA2MDgiLCBcCi0gICAgICAgICAgIjAuMDE1MDI5LCAwLjAzMDc3NCwgMC4wNDMwMzUsIDAuMDU4NTg2LCAwLjA3NDI3NiwgMC4wOTAxNTUsIDAuMTA2MTAxIiwgXAotICAgICAgICAgICIwLjAxNTAxNiwgMC4wMzA3NjIsIDAuMDQzMDg2LCAwLjA1ODgxMywgMC4wNzQyNiwgMC4wOTAwODIsIDAuMTA2MDUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM5OTY4LCAwLjAzOTAwMiwgMC4wMzg5OTIsIDAuMDM5MDU1LCAwLjAzOTEyOCwgMC4wMzkxODcsIDAuMDM5MjMzIiwgXAotICAgICAgICAgICIwLjAzOTk4NSwgMC4wMzkwMiwgMC4wMzg5ODgsIDAuMDM5MDQ5LCAwLjAzOTEwOCwgMC4wMzkxNywgMC4wMzkyMTYiLCBcCi0gICAgICAgICAgIjAuMDQwMDUsIDAuMDM5MDczLCAwLjAzOTA1NCwgMC4wMzkxMDksIDAuMDM5MTcyLCAwLjAzOTIzMiwgMC4wMzkyNzgiLCBcCi0gICAgICAgICAgIjAuMDQwMTMyLCAwLjAzOTE2OCwgMC4wMzkxNDgsIDAuMDM5MjI0LCAwLjAzOTI5LCAwLjAzOTM0NSwgMC4wMzkzOTEiLCBcCi0gICAgICAgICAgIjAuMDM5OTk4LCAwLjAzOTEzMiwgMC4wMzkxNDIsIDAuMDM5MjMsIDAuMDM5MzEyLCAwLjAzOTM4NSwgMC4wMzk0NCIsIFwKLSAgICAgICAgICAiMC4wNDAzMDIsIDAuMDM5NDkzLCAwLjAzOTQ4MywgMC4wMzk1NzQsIDAuMDM5NjI1LCAwLjAzOTY4NCwgMC4wMzk3NjEiLCBcCi0gICAgICAgICAgIjAuMDQwNzAyLCAwLjAzOTc0OCwgMC4wMzk3NTUsIDAuMDM5NzgyLCAwLjAzOTgwOCwgMC4wMzk4NzIsIDAuMDM5OTMyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQ2MDc4LCAwLjA0NTg0LCAwLjA0NjAxNCwgMC4wNDYxOTMsIDAuMDQ2MzIxLCAwLjA0NjQxOSwgMC4wNDY0OTMiLCBcCi0gICAgICAgICAgIjAuMDQ2MDgxLCAwLjA0NTg0NCwgMC4wNDYwMTMsIDAuMDQ2MTk4LCAwLjA0NjMzLCAwLjA0NjQyNywgMC4wNDY0OTkiLCBcCi0gICAgICAgICAgIjAuMDQ2MTU2LCAwLjA0NTkyNSwgMC4wNDYwOTYsIDAuMDQ2Mjc0LCAwLjA0NjQwMywgMC4wNDY1LCAwLjA0NjU3MSIsIFwKLSAgICAgICAgICAiMC4wNDYyNjcsIDAuMDQ2MDA5LCAwLjA0NjE5MywgMC4wNDYzNzMsIDAuMDQ2NTA1LCAwLjA0NjYwMSwgMC4wNDY2NzUiLCBcCi0gICAgICAgICAgIjAuMDQ2Mzk2LCAwLjA0NjIwMSwgMC4wNDYzNzMsIDAuMDQ2NTQ5LCAwLjA0NjY3OSwgMC4wNDY3NzYsIDAuMDQ2ODUiLCBcCi0gICAgICAgICAgIjAuMDQ2NjUxLCAwLjA0NjQsIDAuMDQ2NTY3LCAwLjA0Njc1OCwgMC4wNDY4NzgsIDAuMDQ2OTc1LCAwLjA0NzA1MiIsIFwKLSAgICAgICAgICAiMC4wNDY4MzMsIDAuMDQ2NjE4LCAwLjA0Njc2MiwgMC4wNDY5ODYsIDAuMDQ3MDcxLCAwLjA0NzE2MiwgMC4wNDcyMzciKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFNFKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2MjUyNzI7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjIzNTg7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjI1MjcyOwotICAgIGNsb2NrX2dhdGVfdGVzdF9waW4gOiB0cnVlOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwODMzMiwgMC4wMDgzMjcsIDAuMDA4MzgsIDAuMDA4NDc5LCAwLjAwODYxNiwgMC4wMDg4LCAwLjAwOTAxNiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwOTczNywgMC4wMDk3MTYsIDAuMDA5NzM0LCAwLjAwOTgyNywgMC4wMDk4OCwgMC4wMTAxMjYsIDAuMDEwMjIyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFFIjsKLSAgICAgIHNkZl9jb25kIDogIkUgPT0gMSdiMCI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDMxMjUsIC0wLjAyNjI1LCAtMC4wMiwgLTAuMDIsIC0wLjAxMzc1LCAtMC4wMSwgLTAuMDA3NSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAzMTI1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMjUsIC0wLjAyMTI1LCAtMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDMzNzUsIC0wLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjA0Mzc1LCAtMC4wNCwgLTAuMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDYxMjUsIC0wLjA1NjI1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjA1LCAtMC4wNDYyNSwgLTAuMDQzNzUiLCBcCi0gICAgICAgICAgIi0wLjA3MTI1LCAtMC4wNjYyNSwgLTAuMDY2MjUsIC0wLjA2LCAtMC4wNiwgLTAuMDU2MjUsIC0wLjA1Mzc1IiwgXAotICAgICAgICAgICItMC4wOCwgLTAuMDc1LCAtMC4wNjg3NSwgLTAuMDY4NzUsIC0wLjA2MjUsIC0wLjA2NSwgLTAuMDYyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAzMTI1LCAtMC4wMiwgLTAuMDEzNzUsIC0wLjAwNzUsIC0wLjAwMTI1LCAwLjAwMjUsIDAuMDA1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIC0wLjAwMjUsIDAiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTg3NSwgLTAuMDA4NzUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDI1LCAtMC4wMTUsIC0wLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjA1NSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMzEyNSwgLTAuMDIxMjUsIC0wLjAxODc1IiwgXAotICAgICAgICAgICItMC4wNTg3NSwgLTAuMDUzNzUsIC0wLjA0NzUsIC0wLjA0MTI1LCAtMC4wMzUsIC0wLjAzMTI1LCAtMC4wMjI1IiwgXAotICAgICAgICAgICItMC4wNjc1LCAtMC4wNjI1LCAtMC4wNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wMzM3NSwgLTAuMDMxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFFIjsKLSAgICAgIHNkZl9jb25kIDogIkUgPT0gMSdiMCI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM3NSwgMC4wMzI1LCAwLjAyNjI1LCAwLjAyNjI1LCAwLjAyLCAwLjAxNjI1LCAwLjAxMzc1IiwgXAotICAgICAgICAgICIwLjA0MjUsIDAuMDM3NSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAzMTI1LCAwLjAyNzUsIDAuMDI1IiwgXAotICAgICAgICAgICIwLjA1NSwgMC4wNSwgMC4wNDM3NSwgMC4wNDM3NSwgMC4wMzc1LCAwLjA0LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIjAuMDYxMjUsIDAuMDU2MjUsIDAuMDU2MjUsIDAuMDUsIDAuMDUsIDAuMDQ2MjUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMDY3NSwgMC4wNjI1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDU2MjUsIDAuMDUyNSwgMC4wNSIsIFwKLSAgICAgICAgICAiMC4wNzc1LCAwLjA3MjUsIDAuMDcyNSwgMC4wNjYyNSwgMC4wNjYyNSwgMC4wNjI1LCAwLjA2IiwgXAotICAgICAgICAgICIwLjA4NjI1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNzUsIDAuMDY4NzUsIDAuMDcxMjUsIDAuMDY4NzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzc1LCAwLjAyNjI1LCAwLjAyLCAwLjAxMzc1LCAwLjAwNzUsIDAuMDAzNzUsIDAuMDAxMjUiLCBcCi0gICAgICAgICAgIjAuMDQyNSwgMC4wMzEyNSwgMC4wMjUsIDAuMDE4NzUsIDAuMDEyNSwgMC4wMDg3NSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiMC4wNDg3NSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMjUsIDAuMDE1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMDU1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDMxMjUsIDAuMDIxMjUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMDYxMjUsIDAuMDUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzc1LCAwLjAyNzUsIDAuMDI1IiwgXAotICAgICAgICAgICIwLjA2NSwgMC4wNiwgMC4wNTM3NSwgMC4wNDc1LCAwLjA0MTI1LCAwLjAzNzUsIDAuMDI4NzUiLCBcCi0gICAgICAgICAgIjAuMDczNzUsIDAuMDY4NzUsIDAuMDU2MjUsIDAuMDU2MjUsIDAuMDUsIDAuMDQsIDAuMDM3NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBUTEFUTlRTQ0FYNiAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoVExBVE5UU0NBWDYpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMS4zNzcwNTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBjbG9ja19nYXRpbmdfaW50ZWdyYXRlZF9jZWxsIDogImxhdGNoX3Bvc2VkZ2VfcHJlY29udHJvbCI7Ci0gIHN0YXRldGFibGUoIiBDSyAgRSBTRSAiLCAiIEVJTlQgIikgewotICAgICB0YWJsZSA6ICIgIEwgIEwgIEwgOiAtIDogTCAsIFwKLSAgICAgICAgICAgICAgICBMICBIICBMIDogLSA6IEggLCBcCi0gICAgICAgICAgICAgICAgTCAgTCAgSCA6IC0gOiBIICwgXAotICAgICAgICAgICAgICAgIEwgIEggIEggOiAtIDogSCAsIFwKLSAgICAgICAgICAgICAgICBIICAtICAtIDogLSA6IE4gIjsKLSAgfQotICBwaW4oRUlOVCkgewotICAgIGRpcmVjdGlvbiA6IGludGVybmFsOwotICAgIGludGVybmFsX25vZGUgOiAiRUlOVCI7Ci0gIH0KLSAgcGluKENLKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2OTI1ODQ7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjkyNTg0OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDY5MjQ0OwotICAgIGNsb2NrX2dhdGVfY2xvY2tfcGluIDogdHJ1ZTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDQwNTQsIDAuMDA0MDUyLCAwLjAwNDExNSwgMC4wMDQyMywgMC4wMDQzNTMsIDAuMDA0NTcyLCAwLjAwNDc3MSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNDU4MSwgMC4wMDQ1OTUsIDAuMDA0NjQyLCAwLjAwNDc0NCwgMC4wMDQ4NzIsIDAuMDA1MTIxLCAwLjAwNTMxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRSYhU0UiOwotICAgICAgc2RmX2NvbmQgOiAiRV9FUV8wX0FOX1NFX0VRXzAgPT0gMSdiMSI7Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wNzM0MjUsIDAuMDgxMjg5LCAwLjA4OTE1NiwgMC4wOTQ3MjUsIDAuMDk5MzAxLCAwLjEwNTUxLCAwLjExMDA1MiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNzI0MjM1OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDcyNDIzNTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA3MjQwNTc7Ci0gICAgY2xvY2tfZ2F0ZV9lbmFibGVfcGluIDogdHJ1ZTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDQ1MDgsIDAuMDA0NTAyLCAwLjAwNDU3OSwgMC4wMDQ2MjcsIDAuMDA0NzIxLCAwLjAwNDg5NiwgMC4wMDUwNTYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDYyOTgsIDAuMDA2MjkzLCAwLjAwNjM1MSwgMC4wMDY0NDQsIDAuMDA2NTcyLCAwLjAwNjcxMSwgMC4wMDY4NzgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIVNFIjsKLSAgICAgIHNkZl9jb25kIDogIlNFID09IDEnYjAiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAyNSwgLTAuMDIsIC0wLjAxMzc1LCAtMC4wMTM3NSwgLTAuMDA3NSwgLTAuMDAzNzUsIC0wLjAwNzUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMjUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxODc1LCAtMC4wMTUsIC0wLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMjEyNSwgLTAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAzMzc1LCAtMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzM3NSwgLTAuMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDU4NzUsIC0wLjA1Mzc1LCAtMC4wNTM3NSwgLTAuMDQ3NSwgLTAuMDQ3NSwgLTAuMDQzNzUsIC0wLjA0MTI1IiwgXAotICAgICAgICAgICItMC4wNjc1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDU2MjUsIC0wLjA1NjI1LCAtMC4wNTI1LCAtMC4wNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAyNSwgLTAuMDIsIC0wLjAxMzc1LCAtMC4wMDc1LCAtMC4wMDEyNSwgMC4wMDI1LCAwLjAxMTI1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIC0wLjAwMjUsIDAiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzNzUsIC0wLjAyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDE1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMjEyNSwgLTAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjA2MTI1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzNzUsIC0wLjAyNzUsIC0wLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDcxMjUsIC0wLjA2LCAtMC4wNTM3NSwgLTAuMDQ3NSwgLTAuMDQ3NSwgLTAuMDM3NSwgLTAuMDM1IiwgXAotICAgICAgICAgICItMC4wNzM3NSwgLTAuMDY4NzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDQ2MjUsIC0wLjA0Mzc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhU0UiOwotICAgICAgc2RmX2NvbmQgOiAiU0UgPT0gMSdiMCI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDMxMjUsIDAuMDI2MjUsIDAuMDIsIDAuMDIsIDAuMDEzNzUsIDAuMDEsIDAuMDEzNzUiLCBcCi0gICAgICAgICAgIjAuMDM2MjUsIDAuMDMxMjUsIDAuMDMxMjUsIDAuMDI1LCAwLjAyNSwgMC4wMjEyNSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4wNDg3NSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDI3NSwgMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMDU1LCAwLjA1LCAwLjA0Mzc1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDQsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiMC4wNjEyNSwgMC4wNTYyNSwgMC4wNSwgMC4wNSwgMC4wNDM3NSwgMC4wNCwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4wNjUsIDAuMDYsIDAuMDYsIDAuMDUzNzUsIDAuMDUzNzUsIDAuMDUsIDAuMDQ3NSIsIFwKLSAgICAgICAgICAiMC4wNzM3NSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA2MjUsIDAuMDYyNSwgMC4wNTg3NSwgMC4wNTYyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzMTI1LCAwLjAyNjI1LCAwLjAyLCAwLjAxMzc1LCAwLjAwNzUsIDAuMDAzNzUsIC0wLjAwNSIsIFwKLSAgICAgICAgICAiMC4wMzYyNSwgMC4wMzEyNSwgMC4wMjUsIDAuMDE4NzUsIDAuMDEyNSwgMC4wMDg3NSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiMC4wNDg3NSwgMC4wNDM3NSwgMC4wMzEyNSwgMC4wMzEyNSwgMC4wMjUsIDAuMDIxMjUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4wNTUsIDAuMDUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMjc1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiMC4wNjc1LCAwLjA1NjI1LCAwLjA1LCAwLjA0Mzc1LCAwLjA0Mzc1LCAwLjAzMzc1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICIwLjA3NzUsIDAuMDY2MjUsIDAuMDYsIDAuMDUzNzUsIDAuMDUzNzUsIDAuMDQzNzUsIDAuMDQxMjUiLCBcCi0gICAgICAgICAgIjAuMDgsIDAuMDc1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDUyNSwgMC4wNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRUNLKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDIuMDQwNDQ7Ci0gICAgY2xvY2tfZ2F0ZV9vdXRfcGluIDogdHJ1ZTsKLSAgICBzdGF0ZV9mdW5jdGlvbiA6ICIoQ0sgRUlOVCkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3MzI5MSwgMC4xMTMwMTEsIDAuMTQ5NjA3LCAwLjE3NTY4OSwgMC4yMTczNywgMC4yNTM4NzEsIDAuMzA2MDIyIiwgXAotICAgICAgICAgICIwLjA4MTE4OCwgMC4xMjA5MTYsIDAuMTU3NTEsIDAuMTgzNTg0LCAwLjIyNTI3OCwgMC4yNjE3NjQsIDAuMzEzOTAxIiwgXAotICAgICAgICAgICIwLjA4OTAwOCwgMC4xMjg3MywgMC4xNjUzMjUsIDAuMTkxMzk3LCAwLjIzMzEwOSwgMC4yNjk2MTcsIDAuMzIxNjU4IiwgXAotICAgICAgICAgICIwLjA5NDg3MywgMC4xMzQ1OTEsIDAuMTcxMjAyLCAwLjE5NzI3NywgMC4yMzg5NywgMC4yNzU0NTgsIDAuMzI3NTg4IiwgXAotICAgICAgICAgICIwLjA5OTY2NSwgMC4xMzkzNzksIDAuMTc1OTc3LCAwLjIwMjA0OCwgMC4yNDM3NDQsIDAuMjgwMjMzLCAwLjMzMjM2MyIsIFwKLSAgICAgICAgICAiMC4xMDU5NzksIDAuMTQ1Njk5LCAwLjE4MjE2NiwgMC4yMDgzNjcsIDAuMjUwMDcyLCAwLjI4NjUzOSwgMC4zMzg2NDkiLCBcCi0gICAgICAgICAgIjAuMTEwNjUzLCAwLjE1MDM0NiwgMC4xODY5NDEsIDAuMjEyOTk1LCAwLjI1NDcwMiwgMC4yOTExNzksIDAuMzQzMzI1Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDIyNjY1LCAwLjA5NjA1LCAwLjE3MTU4NiwgMC4yMjYzMTcsIDAuMzEzOTQ2LCAwLjM5MTAyMywgMC41MDEwMDkiLCBcCi0gICAgICAgICAgIjAuMDIyNjk2LCAwLjA5NjA0NywgMC4xNzE1ODYsIDAuMjI2MzE3LCAwLjMxMzU3NywgMC4zOTEwMTEsIDAuNTAxMDU3IiwgXAotICAgICAgICAgICIwLjAyMjY1NSwgMC4wOTYwNDcsIDAuMTcxNTg3LCAwLjIyNjI4OSwgMC4zMTM1NzgsIDAuMzkwMzIyLCAwLjUwMDMwMyIsIFwKLSAgICAgICAgICAiMC4wMjI2MjIsIDAuMDk2MDQ0LCAwLjE3MTU4LCAwLjIyNjM1MiwgMC4zMTQwMTIsIDAuMzkwNTkyLCAwLjUwMTA0OCIsIFwKLSAgICAgICAgICAiMC4wMjI2MzQsIDAuMDk2MDQ0LCAwLjE3MTcyMSwgMC4yMjYzMDUsIDAuMzE0MDA1LCAwLjM5MDU3MywgMC41MDA5OTIiLCBcCi0gICAgICAgICAgIjAuMDIyNzE1LCAwLjA5NjAyNiwgMC4xNzE2OTUsIDAuMjI2MjY1LCAwLjMxNDA5LCAwLjM5MDk3OCwgMC41MDA5NzMiLCBcCi0gICAgICAgICAgIjAuMDIyNzQzLCAwLjA5NjA1NywgMC4xNzE1NjIsIDAuMjI2MTA3LCAwLjMxMzkyMSwgMC4zOTA5MjgsIDAuNTAwOTY1Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY1MDU3LCAwLjEwMzA0MywgMC4xMzk2OTEsIDAuMTY1ODYxLCAwLjIwNzc0NCwgMC4yNDQzOTMsIDAuMjk2NzQ4IiwgXAotICAgICAgICAgICIwLjA3Mjg2NywgMC4xMTA4NTEsIDAuMTQ3NDk4LCAwLjE3MzY3NywgMC4yMTU1NTIsIDAuMjUyMTk3LCAwLjMwNDU2IiwgXAotICAgICAgICAgICIwLjA4MDUwMSwgMC4xMTg0OTgsIDAuMTU1MTQyLCAwLjE4MTMyNiwgMC4yMjMyMDEsIDAuMjU5ODQ2LCAwLjMxMjIwNiIsIFwKLSAgICAgICAgICAiMC4wODU4NzYsIDAuMTIzODMzLCAwLjE2MDQ4NywgMC4xODY2NTcsIDAuMjI4NTYxLCAwLjI2NTMwMywgMC4zMTc2NjUiLCBcCi0gICAgICAgICAgIjAuMDkwMzU2LCAwLjEyODMwMiwgMC4xNjUwMDMsIDAuMTkxMTk4LCAwLjIzMzE0MSwgMC4yNjk4ODYsIDAuMzIyMTgxIiwgXAotICAgICAgICAgICIwLjA5NjIwOSwgMC4xMzQyMDgsIDAuMTcwODc2LCAwLjE5NzA3OSwgMC4yMzg5ODgsIDAuMjc1NjUyLCAwLjMyODA4NSIsIFwKLSAgICAgICAgICAiMC4xMDA1LCAwLjEzODUwMiwgMC4xNzUzMDQsIDAuMjAxMzYyLCAwLjI0MzI0NCwgMC4yNzk5MiwgMC4zMzIzMDgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTg5OCwgMC4wOTE3MTEsIDAuMTY2ODIxLCAwLjIyMDY1NSwgMC4zMDYyMTksIDAuMzgyNTAxLCAwLjQ4OTgzNyIsIFwKLSAgICAgICAgICAiMC4wMTg5OTMsIDAuMDkxODAzLCAwLjE2NjgwOCwgMC4yMjAyMTQsIDAuMzA2Mjg0LCAwLjM4MjM5NCwgMC40ODk4NDMiLCBcCi0gICAgICAgICAgIjAuMDE4OTg3LCAwLjA5MTgwNSwgMC4xNjY2NiwgMC4yMjAyMDgsIDAuMzA2OTcsIDAuMzgxOTcsIDAuNDg5ODIzIiwgXAotICAgICAgICAgICIwLjAxOTA4NCwgMC4wOTE4MTYsIDAuMTY2ODI0LCAwLjIyMDY0NSwgMC4zMDY5NjgsIDAuMzgxOTI0LCAwLjQ4OTM1NSIsIFwKLSAgICAgICAgICAiMC4wMTkwMTMsIDAuMDkxNzkxLCAwLjE2NjgxNywgMC4yMjA2NzQsIDAuMzA2OTU1LCAwLjM4MjQ4OCwgMC40OTAzNDUiLCBcCi0gICAgICAgICAgIjAuMDE5MDE1LCAwLjA5MTY2MSwgMC4xNjY4MTQsIDAuMjIwNjc1LCAwLjMwNjk0NCwgMC4zODE4NzIsIDAuNDg5OTEyIiwgXAotICAgICAgICAgICIwLjAxOTAyNCwgMC4wOTE3NCwgMC4xNjY1MjksIDAuMjIwMzQ1LCAwLjMwNjM5MSwgMC4zODI0OTksIDAuNDg5ODA4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEzOTcxLCAwLjAxNDE0OCwgMC4wMTQyMDMsIDAuMDE0MjEsIDAuMDE0MjMsIDAuMDE0MjQyLCAwLjAxNDIzOCIsIFwKLSAgICAgICAgICAiMC4wMTM5NjQsIDAuMDE0MTQzLCAwLjAxNDE4OSwgMC4wMTQyMDUsIDAuMDE0MjE5LCAwLjAxNDIzMiwgMC4wMTQyMzMiLCBcCi0gICAgICAgICAgIjAuMDE0MDQ3LCAwLjAxNDIyNCwgMC4wMTQyNywgMC4wMTQyODYsIDAuMDE0MywgMC4wMTQzMDcsIDAuMDE0MzEzIiwgXAotICAgICAgICAgICIwLjAxNDEzMiwgMC4wMTQzMTksIDAuMDE0MzY4LCAwLjAxNDM4NSwgMC4wMTQzOTgsIDAuMDE0NDAzLCAwLjAxNDQxMiIsIFwKLSAgICAgICAgICAiMC4wMTQyNTUsIDAuMDE0NDQ3LCAwLjAxNDQ5NSwgMC4wMTQ1MiwgMC4wMTQ1MiwgMC4wMTQ1MzQsIDAuMDE0NTQ2IiwgXAotICAgICAgICAgICIwLjAxNDQ4MiwgMC4wMTQ2NTUsIDAuMDE0NzA3LCAwLjAxNDcyNCwgMC4wMTQ3MywgMC4wMTQ3NDQsIDAuMDE0NzU3IiwgXAotICAgICAgICAgICIwLjAxNDY3NywgMC4wMTQ4NDYsIDAuMDE0ODkyLCAwLjAxNDkwOCwgMC4wMTQ5MiwgMC4wMTQ5MywgMC4wMTQ5MzgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxODc3NSwgMC4wMTkxNDMsIDAuMDE5MjEyLCAwLjAxOTIzNCwgMC4wMTkyNTMsIDAuMDE5MjYzLCAwLjAxOTI3MyIsIFwKLSAgICAgICAgICAiMC4wMTg3ODIsIDAuMDE5MTUxLCAwLjAxOTIyMSwgMC4wMTkyNDMsIDAuMDE5MjYyLCAwLjAxOTI3MywgMC4wMTkyODIiLCBcCi0gICAgICAgICAgIjAuMDE4ODY5LCAwLjAxOTIzNywgMC4wMTkzMDUsIDAuMDE5MzI4LCAwLjAxOTM0NywgMC4wMTkzNTksIDAuMDE5MzY4IiwgXAotICAgICAgICAgICIwLjAxOTAxNiwgMC4wMTkzODUsIDAuMDE5NDU1LCAwLjAxOTQ3NiwgMC4wMTk0OTYsIDAuMDE5NTA1LCAwLjAxOTUxNCIsIFwKLSAgICAgICAgICAiMC4wMTkxNTEsIDAuMDE5NTE1LCAwLjAxOTU4NiwgMC4wMTk2MDcsIDAuMDE5NjI4LCAwLjAxOTYzOCwgMC4wMTk2NDgiLCBcCi0gICAgICAgICAgIjAuMDE5MzY0LCAwLjAxOTcyMiwgMC4wMTk3OTIsIDAuMDE5ODE4LCAwLjAxOTgzNSwgMC4wMTk4NDUsIDAuMDE5ODU1IiwgXAotICAgICAgICAgICIwLjAxOTU4LCAwLjAxOTkzMiwgMC4wMjAwMDYsIDAuMDIwMDMxLCAwLjAyMDA0NywgMC4wMjAwNTYsIDAuMDIwMDY2Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTRSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNzU5NzQ5OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDc1Nzg4MTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA3NTk3NDk7Ci0gICAgY2xvY2tfZ2F0ZV90ZXN0X3BpbiA6IHRydWU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA0NjczLCAwLjAwNDY2NywgMC4wMDQ3MTYsIDAuMDA0Nzk5LCAwLjAwNDg5OSwgMC4wMDUwNzQsIDAuMDA1MjUyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA2NTYyLCAwLjAwNjUzOCwgMC4wMDY1NjcsIDAuMDA2NjI0LCAwLjAwNjY5OSwgMC4wMDY4MTQsIDAuMDA2OTUyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFFIjsKLSAgICAgIHNkZl9jb25kIDogIkUgPT0gMSdiMCI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDI1LCAtMC4wMiwgLTAuMDEzNzUsIC0wLjAxMzc1LCAtMC4wMDc1LCAtMC4wMSwgLTAuMDA3NSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDE4NzUsIC0wLjAxNSwgLTAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAyNzUsIC0wLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjA0Mzc1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDM3NSwgLTAuMDMzNzUsIC0wLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjA0Mzc1LCAtMC4wNCwgLTAuMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDY1LCAtMC4wNiwgLTAuMDUzNzUsIC0wLjA1Mzc1LCAtMC4wNTM3NSwgLTAuMDUsIC0wLjA0NzUiLCBcCi0gICAgICAgICAgIi0wLjA3Mzc1LCAtMC4wNjg3NSwgLTAuMDYyNSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA1MjUsIC0wLjA1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDI1LCAtMC4wMiwgLTAuMDEzNzUsIC0wLjAwNzUsIC0wLjAwMTI1LCAwLjAwMjUsIDAuMDA1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIC0wLjAwMjUsIDAiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTg3NSwgLTAuMDA4NzUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDI1LCAtMC4wMTUsIC0wLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDIxMjUsIC0wLjAxODc1IiwgXAotICAgICAgICAgICItMC4wNTg3NSwgLTAuMDUzNzUsIC0wLjA0NzUsIC0wLjA0MTI1LCAtMC4wMzUsIC0wLjAzMTI1LCAtMC4wMjI1IiwgXAotICAgICAgICAgICItMC4wNjc1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wNDM3NSwgLTAuMDMzNzUsIC0wLjAzMTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRSI7Ci0gICAgICBzZGZfY29uZCA6ICJFID09IDEnYjAiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzMTI1LCAwLjAyNjI1LCAwLjAyLCAwLjAyLCAwLjAxMzc1LCAwLjAxNjI1LCAwLjAxMzc1IiwgXAotICAgICAgICAgICIwLjAzNjI1LCAwLjAzMTI1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMjUsIDAuMDIxMjUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMDQ4NzUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAzMzc1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICIwLjA1NSwgMC4wNSwgMC4wNSwgMC4wNDM3NSwgMC4wNDM3NSwgMC4wNCwgMC4wMzc1IiwgXAotICAgICAgICAgICIwLjA2MTI1LCAwLjA1NjI1LCAwLjA1NjI1LCAwLjA1LCAwLjA1LCAwLjA0NjI1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjA3MTI1LCAwLjA2NjI1LCAwLjA2LCAwLjA2LCAwLjA2LCAwLjA1NjI1LCAwLjA1Mzc1IiwgXAotICAgICAgICAgICIwLjA4LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1ODc1LCAwLjA1NjI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDMxMjUsIDAuMDI2MjUsIDAuMDIsIDAuMDEzNzUsIDAuMDA3NSwgMC4wMDM3NSwgMC4wMDEyNSIsIFwKLSAgICAgICAgICAiMC4wNDI1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMTg3NSwgMC4wMTI1LCAwLjAwODc1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICIwLjA0ODc1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDI1LCAwLjAyNSwgMC4wMTUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4wNTUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMzEyNSwgMC4wMjEyNSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4wNTUsIDAuMDUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMjc1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiMC4wNjUsIDAuMDYsIDAuMDUzNzUsIDAuMDQ3NSwgMC4wNDEyNSwgMC4wMzc1LCAwLjAyODc1IiwgXAotICAgICAgICAgICIwLjA3Mzc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDUsIDAuMDUsIDAuMDQsIDAuMDM3NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IFRMQVROWDQgKgotICogLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoVExBVE5YNCkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAxLjY5OTA1OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIGxhdGNoIChRSU5ULE4wKSB7Ci0gICAgZGF0YV9pbiA6ICJEIjsKLSAgICBlbmFibGUgOiAiKCFHTikiOwotICB9Ci0gIHBpbihEKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA3MDU3ODg7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNzA1MDI1OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDcwNTc4ODsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyODgsIDAuMDAwMjksIDAuMDAwMjksIDAuMDAwMjksIDAuMDAwMjkxLCAwLjAwMDI4OSwgMC4wMDAyODkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAzMTQsIDAuMDAwMzA0LCAwLjAwMDMwMiwgMC4wMDAzMDEsIDAuMDAwMjk5LCAwLjAwMDI5OSwgMC4wMDAyOTgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiR04iOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMjUsIC0wLjAyLCAtMC4wMTM3NSwgLTAuMDA3NSwgLTAuMDA3NSwgLTAuMDAzNzUsIC0wLjAwMTI1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDEyNSwgLTAuMDA4NzUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDE1LCAtMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDIxMjUsIC0wLjAxODc1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMzEyNSwgLTAuMDI3NSwgLTAuMDI1IiwgXAotICAgICAgICAgICItMC4wNTI1LCAtMC4wNDc1LCAtMC4wNDEyNSwgLTAuMDQxMjUsIC0wLjAzNSwgLTAuMDMxMjUsIC0wLjAyODc1IiwgXAotICAgICAgICAgICItMC4wNjEyNSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDQzNzUsIC0wLjA0LCAtMC4wMzc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDEyNSwgLTAuMDAxMjUsIDAuMDA1LCAwLjAxMTI1LCAwLjAxNzUsIDAuMDIxMjUsIDAuMDMiLCBcCi0gICAgICAgICAgIi0wLjAxNzUsIC0wLjAwNjI1LCAwLCAwLjAwNjI1LCAwLjAxMjUsIDAuMDE2MjUsIDAuMDI1IiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLCAwLjAwNjI1LCAwLjAxLCAwLjAxODc1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLCAwLjAwMzc1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMC4wMDM3NSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDQsIC0wLjAzNSwgLTAuMDIyNSwgLTAuMDE2MjUsIC0wLjAxLCAtMC4wMDYyNSwgMC4wMDI1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAwODc1LCAtMC4wMDYyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJHTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzc1LCAwLjAzMjUsIDAuMDI2MjUsIDAuMDI2MjUsIDAuMDI2MjUsIDAuMDI4NzUsIDAuMDI2MjUiLCBcCi0gICAgICAgICAgIjAuMDQyNSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAzMTI1LCAwLjAzMTI1LCAwLjAyNzUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMDQ4NzUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzc1LCAwLjAzNzUsIDAuMDMzNzUsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiMC4wNTUsIDAuMDUsIDAuMDQzNzUsIDAuMDQzNzUsIDAuMDQzNzUsIDAuMDQsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiMC4wNjEyNSwgMC4wNTYyNSwgMC4wNSwgMC4wNSwgMC4wNDM3NSwgMC4wNDYyNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4wNjUsIDAuMDYsIDAuMDUzNzUsIDAuMDUzNzUsIDAuMDUzNzUsIDAuMDUsIDAuMDQ3NSIsIFwKLSAgICAgICAgICAiMC4wNzM3NSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1NjI1LCAwLjA1MjUsIDAuMDU2MjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjUsIDAuMDEzNzUsIDAuMDA3NSwgMC4wMDEyNSwgLTAuMDA1LCAtMC4wMTUsIC0wLjAxNzUiLCBcCi0gICAgICAgICAgIjAuMDMsIDAuMDE4NzUsIDAuMDEyNSwgMC4wMDYyNSwgMCwgLTAuMDAzNzUsIC0wLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMDM2MjUsIDAuMDI1LCAwLjAxODc1LCAwLjAxMjUsIDAuMDA2MjUsIDAuMDAyNSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMDQyNSwgMC4wMzEyNSwgMC4wMjUsIDAuMDE4NzUsIDAuMDEyNSwgMC4wMDI1LCAwIiwgXAotICAgICAgICAgICIwLjA0ODc1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDI1LCAwLjAxODc1LCAwLjAwODc1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICIwLjA1MjUsIDAuMDQxMjUsIDAuMDM1LCAwLjAyODc1LCAwLjAyMjUsIDAuMDE4NzUsIDAuMDEiLCBcCi0gICAgICAgICAgIjAuMDU1LCAwLjA1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDI1LCAwLjAyMTI1LCAwLjAxODc1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihHTikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjM4Mzg1OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYzODM4NTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2MzgxNDE7Ci0gICAgY2xvY2sgOiB0cnVlOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjM1NiwgMC4wMDIzNTIsIDAuMDAyNDUxLCAwLjAwMjUzNCwgMC4wMDI2NjgsIDAuMDAyOTA5LCAwLjAwMzA5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA0NjU2LCAwLjAwNDY1MiwgMC4wMDQ3MywgMC4wMDQ4MzEsIDAuMDA0OTYyLCAwLjAwNTIxNiwgMC4wMDUzMTQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiR04iOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFEIjsKLSAgICAgIHNkZl9jb25kIDogIkQgPT0gMSdiMCI7Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4xMDU4NywgMC4xMTM5OTYsIDAuMTIyNDEsIDAuMTI4OTM1LCAwLjEzMzg5MSwgMC4xNDAzMjUsIDAuMTQ1MTUyIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihRKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDEuMzY4MzY7Ci0gICAgZnVuY3Rpb24gOiAiUUlOVCI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzY0NjIsIDAuMTMxMjU5LCAwLjE4NjQ5OCwgMC4yMjU5MzcsIDAuMjg4NjE2LCAwLjM0MzQ2NCwgMC40MjIwNTMiLCBcCi0gICAgICAgICAgIjAuMDgyNjMsIDAuMTM3NDcyLCAwLjE5MjQxNCwgMC4yMzIxMDUsIDAuMjk0NTg3LCAwLjM0OTY3NywgMC40Mjc3NTkiLCBcCi0gICAgICAgICAgIjAuMDg5ODc0LCAwLjE0NDcxOSwgMC4xOTk3MjQsIDAuMjM5MzUyLCAwLjMwMTYyMiwgMC4zNTY1NTEsIDAuNDM1NTgyIiwgXAotICAgICAgICAgICIwLjA5NjE4NSwgMC4xNTEwMTUsIDAuMjA2MDY0LCAwLjI0NTE2NiwgMC4zMDc5NDgsIDAuMzYyODExLCAwLjQ0MTMwOCIsIFwKLSAgICAgICAgICAiMC4xMDE2MzcsIDAuMTU2NDg2LCAwLjIxMTQwOSwgMC4yNTExMDUsIDAuMzEzMzY4LCAwLjM2ODkxNywgMC40NDY5NyIsIFwKLSAgICAgICAgICAiMC4xMDg5NzUsIDAuMTYzOTUsIDAuMjE4Njk4LCAwLjI1ODM2NCwgMC4zMjExOTUsIDAuMzc2MTY4LCAwLjQ1NDcyNSIsIFwKLSAgICAgICAgICAiMC4xMTQ1MjcsIDAuMTY5Mzg1LCAwLjIyNDQyMywgMC4yNjM0NjksIDAuMzI2Njk3LCAwLjM4MTY1NSwgMC40NTk3OTIiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjIxMDgsIDAuMTM2NTY5LCAwLjI1MjYxNywgMC4zMzU1MDQsIDAuNDY3NjYsIDAuNTgzNDcsIDAuNzQ4ODgzIiwgXAotICAgICAgICAgICIwLjAyMjEwMiwgMC4xMzY1MjksIDAuMjUyMTk3LCAwLjMzNTUwMiwgMC40Njc3NywgMC41ODM1NjksIDAuNzQ3NjE2IiwgXAotICAgICAgICAgICIwLjAyMjIxMiwgMC4xMzY1NjQsIDAuMjUyMTAzLCAwLjMzNTQ5OCwgMC40NjczNDcsIDAuNTgyNjkzLCAwLjc0OTE5NCIsIFwKLSAgICAgICAgICAiMC4wMjIwOTcsIDAuMTM2NTY2LCAwLjI1MjM0MiwgMC4zMzQ4NjIsIDAuNDY3NTk1LCAwLjU4Mjg0NCwgMC43NDc0NTkiLCBcCi0gICAgICAgICAgIjAuMDIyMDkyLCAwLjEzNjc3LCAwLjI1MjY1LCAwLjMzNTczOSwgMC40NjczLCAwLjU4NDA1OCwgMC43NDgzNjMiLCBcCi0gICAgICAgICAgIjAuMDIyMjg4LCAwLjEzNzAxNiwgMC4yNTI1NjUsIDAuMzM1NzAzLCAwLjQ2Nzk3MywgMC41ODM4MzYsIDAuNzQ5MjAzIiwgXAotICAgICAgICAgICIwLjAyMjEzMSwgMC4xMzY3MiwgMC4yNTI1LCAwLjMzNTE5NywgMC40Njc3NzksIDAuNTgzNDk3LCAwLjc0ODU5NiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3OTI0NiwgMC4xMzMzODEsIDAuMTg3MTU5LCAwLjIyNTg2OCwgMC4yODczMjcsIDAuMzQxMjc4LCAwLjQxODI1NiIsIFwKLSAgICAgICAgICAiMC4wODQ5MzIsIDAuMTM5MDU1LCAwLjE5MjkwMSwgMC4yMzE1NDgsIDAuMjkzMDcsIDAuMzQ2OTU2LCAwLjQyMzkzMyIsIFwKLSAgICAgICAgICAiMC4wOTE1MzgsIDAuMTQ1NjM5LCAwLjE5OTU5MiwgMC4yMzgxMzUsIDAuMjk5NTk1LCAwLjM1MzUwOCwgMC40MzA0NTkiLCBcCi0gICAgICAgICAgIjAuMDk3MjUzLCAwLjE1MTM1NiwgMC4yMDUxODMsIDAuMjQzODYyLCAwLjMwNTMyNCwgMC4zNTkyMzgsIDAuNDM2MjQ4IiwgXAotICAgICAgICAgICIwLjEwMjIyMiwgMC4xNTYyNDUsIDAuMjEwMjIyLCAwLjI0ODg3MywgMC4zMTAzMjksIDAuMzY0Mjc4LCAwLjQ0MTI0NyIsIFwKLSAgICAgICAgICAiMC4xMDg4NCwgMC4xNjI4OTMsIDAuMjE2OTIzLCAwLjI1NTI5MywgMC4zMTY5ODcsIDAuMzcwODE2LCAwLjQ0Nzg4MyIsIFwKLSAgICAgICAgICAiMC4xMTM4MjEsIDAuMTY3NzQ4LCAwLjIyMTc0MSwgMC4yNjAyOTQsIDAuMzIxODI3LCAwLjM3NTc1NywgMC40NTI3NDciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjEyODgsIDAuMTMyMjE2LCAwLjI0NDExMiwgMC4zMjQ2NTksIDAuNDUxNzU5LCAwLjU2NTI4LCAwLjcyMzQ1NCIsIFwKLSAgICAgICAgICAiMC4wMjE0NDgsIDAuMTMyMjE4LCAwLjI0Mzk3NSwgMC4zMjQ2NywgMC40NTI4MzEsIDAuNTY1MjcxLCAwLjcyMzU3MSIsIFwKLSAgICAgICAgICAiMC4wMjE0NTEsIDAuMTMyMjE5LCAwLjI0NDM5NCwgMC4zMjQ2NzMsIDAuNDUxNzc0LCAwLjU2NDcxNCwgMC43MjQ0MDkiLCBcCi0gICAgICAgICAgIjAuMDIxNDA5LCAwLjEzMjIyNSwgMC4yNDQxNDksIDAuMzI0NjY5LCAwLjQ1MjI3NywgMC41NjQ1NTgsIDAuNzI0NzM1IiwgXAotICAgICAgICAgICIwLjAyMTU3LCAwLjEzMjIxNCwgMC4yNDQzMzEsIDAuMzI0NjMxLCAwLjQ1MjMzNiwgMC41NjUwNjYsIDAuNzI0NTk0IiwgXAotICAgICAgICAgICIwLjAyMTQ1NiwgMC4xMzIyNCwgMC4yNDQzOTIsIDAuMzI0MTQ4LCAwLjQ1MjcxNSwgMC41NjQ1NCwgMC43MjUyNTYiLCBcCi0gICAgICAgICAgIjAuMDIxNDk1LCAwLjEzMjA5MywgMC4yNDQyODIsIDAuMzI0Mzg1LCAwLjQ1MjUzNiwgMC41NjQ4NTUsIDAuNzI1MDUxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkdOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5vbl91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogZmFsbGluZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5NDAxNCwgMC4xNDg5MjMsIDAuMjAzOTEzLCAwLjI0MzAyNCwgMC4zMDU4MDksIDAuMzYxNDIzLCAwLjQzOTI3MSIsIFwKLSAgICAgICAgICAiMC4xMDIwMzMsIDAuMTU2ODYzLCAwLjIxMTg1LCAwLjI1MTUzNCwgMC4zMTM3OSwgMC4zNjk0MDQsIDAuNDQ3MjMyIiwgXAotICAgICAgICAgICIwLjExMDY4OCwgMC4xNjU1MjcsIDAuMjIwNDUzLCAwLjI2MDE4NiwgMC4zMjI3MzgsIDAuMzc3MzQsIDAuNDU1ODMzIiwgXAotICAgICAgICAgICIwLjExNzYzMSwgMC4xNzI1MzcsIDAuMjI3NTM0LCAwLjI2NzE2NiwgMC4zMjk0MjYsIDAuMzg1MDM3LCAwLjQ2MjgwNiIsIFwKLSAgICAgICAgICAiMC4xMjMwNjYsIDAuMTc3OTIxLCAwLjIzMjkyLCAwLjI3MjU3LCAwLjMzNDgzMywgMC4zOTA0NDMsIDAuNDY5MDAyIiwgXAotICAgICAgICAgICIwLjEzMDMzNiwgMC4xODUzNTksIDAuMjQwMDg5LCAwLjI3OTg1MiwgMC4zNDI3MzMsIDAuMzk3NzI0LCAwLjQ3NTQ3NyIsIFwKLSAgICAgICAgICAiMC4xMzU2NCwgMC4xOTA0NDYsIDAuMjQ1NDQ2LCAwLjI4NDYxMiwgMC4zNDczMzUsIDAuNDAyNTM5LCAwLjQ4MDg0NSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyMjEyOSwgMC4xMzY2MDksIDAuMjUyNCwgMC4zMzUyLCAwLjQ2NzIwOSwgMC41ODM4MDcsIDAuNzQ3NDIxIiwgXAotICAgICAgICAgICIwLjAyMjA0MiwgMC4xMzY3MjgsIDAuMjUyMjU4LCAwLjMzNTUwNSwgMC40NjcyMTUsIDAuNTg0MTk2LCAwLjc0ODIwNSIsIFwKLSAgICAgICAgICAiMC4wMjIxNzUsIDAuMTM2Njg3LCAwLjI1MjE1MiwgMC4zMzU0NDMsIDAuNDY3Mzg0LCAwLjU4Mjg5OCwgMC43NDgzNDgiLCBcCi0gICAgICAgICAgIjAuMDIyMTMyLCAwLjEzNjU1MiwgMC4yNTIzOTQsIDAuMzM1NDM1LCAwLjQ2NzI5OSwgMC41ODM4MTMsIDAuNzQ4MTA0IiwgXAotICAgICAgICAgICIwLjAyMjA5MSwgMC4xMzY1NSwgMC4yNTIxMjQsIDAuMzM1NzQ5LCAwLjQ2NzMwNSwgMC41ODQyMDIsIDAuNzQ5NzE2IiwgXAotICAgICAgICAgICIwLjAyMjE1NywgMC4xMzY5OTIsIDAuMjUyNTAzLCAwLjMzNTc0LCAwLjQ2ODI3NSwgMC41ODQxODksIDAuNzQ4MDk0IiwgXAotICAgICAgICAgICIwLjAyMjMwMSwgMC4xMzY2NjQsIDAuMjUyNDk5LCAwLjMzNTAxLCAwLjQ2NzIxMSwgMC41ODMwNDksIDAuNzQ4MjgxIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTA1ODcsIDAuMTU5OTg3LCAwLjIxMzg0NywgMC4yNTI0MTgsIDAuMzEzOTMxLCAwLjM2Nzg3OSwgMC40NDQ4NTIiLCBcCi0gICAgICAgICAgIjAuMTEzOTk2LCAwLjE2OCwgMC4yMjE5ODEsIDAuMjYwNTkyLCAwLjMyMjA0NywgMC4zNzU5OTEsIDAuNDUyOTc0IiwgXAotICAgICAgICAgICIwLjEyMjQxLCAwLjE3NjUzMSwgMC4yMzAzMzUsIDAuMjY4OTk5LCAwLjMzMDUxNiwgMC4zODQzOTcsIDAuNDYxMzgxIiwgXAotICAgICAgICAgICIwLjEyODkzNSwgMC4xODMwNTEsIDAuMjM2OTg3LCAwLjI3NTM1NywgMC4zMzY5ODMsIDAuMzkwOTM0LCAwLjQ2NzkxNSIsIFwKLSAgICAgICAgICAiMC4xMzM4OTEsIDAuMTg3ODQ5LCAwLjI0MTk2NiwgMC4yODA0NzEsIDAuMzQxOTI5LCAwLjM5NTg2NywgMC40NzI4NTQiLCBcCi0gICAgICAgICAgIjAuMTQwMzI1LCAwLjE5NDMzNSwgMC4yNDg0MTMsIDAuMjg2OTEzLCAwLjM0ODM3NSwgMC40MDIyOTQsIDAuNDc5MzI2IiwgXAotICAgICAgICAgICIwLjE0NTE1MiwgMC4xOTkxOTcsIDAuMjUzMjQzLCAwLjI5MTYxOCwgMC4zNTMxOTUsIDAuNDA3MTM3LCAwLjQ4NDEyMiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyMTM0OCwgMC4xMzIyMjIsIDAuMjQ0MzE4LCAwLjMyNDQ0LCAwLjQ1MTczOSwgMC41NjUyOTEsIDAuNzI0OTAzIiwgXAotICAgICAgICAgICIwLjAyMTQxMywgMC4xMzIxMzcsIDAuMjQ0Mjk4LCAwLjMyNDY2MywgMC40NTIzMjEsIDAuNTY1MjgsIDAuNzI1MDYxIiwgXAotICAgICAgICAgICIwLjAyMTQyOSwgMC4xMzIxOTgsIDAuMjQ0MTgyLCAwLjMyNDY2NCwgMC40NTI4MTgsIDAuNTY1Mjc0LCAwLjcyMzYxNyIsIFwKLSAgICAgICAgICAiMC4wMjE0MSwgMC4xMzIyMTcsIDAuMjQ0MzkxLCAwLjMyNDIwNywgMC40NTIwMDEsIDAuNTY1MjY4LCAwLjcyMzU2MyIsIFwKLSAgICAgICAgICAiMC4wMjEzODYsIDAuMTMyMTQ0LCAwLjI0NDQyOCwgMC4zMjQ2NjMsIDAuNDUyMjI4LCAwLjU2NTI2MiwgMC43MjUwNjciLCBcCi0gICAgICAgICAgIjAuMDIxNDM3LCAwLjEzMjIxOCwgMC4yNDQzOTIsIDAuMzI0NjEsIDAuNDUyNjI0LCAwLjU2NDMzOSwgMC43MjU0MDYiLCBcCi0gICAgICAgICAgIjAuMDIxNDUsIDAuMTMyMjU2LCAwLjI0NDQyMywgMC4zMjQ0MDYsIDAuNDUyMjk1LCAwLjU2NTEzOSwgMC43MjUwMDQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJEIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwOTQ3OCwgMC4wMDk2NDYsIDAuMDA5NjczLCAwLjAwOTY4MSwgMC4wMDk2ODgsIDAuMDA5NjkyLCAwLjAwOTY4MSIsIFwKLSAgICAgICAgICAiMC4wMDk0NiwgMC4wMDk2MjUsIDAuMDA5NjUyLCAwLjAwOTY2LCAwLjAwOTY2NywgMC4wMDk2NjMsIDAuMDA5NjgiLCBcCi0gICAgICAgICAgIjAuMDA5NDU4LCAwLjAwOTYyNiwgMC4wMDk2NTQsIDAuMDA5NjYyLCAwLjAwOTY3LCAwLjAwOTY3NCwgMC4wMDk2NzgiLCBcCi0gICAgICAgICAgIjAuMDA5NDk1LCAwLjAwOTY2NCwgMC4wMDk2OTIsIDAuMDA5NywgMC4wMDk3MTMsIDAuMDA5NzEyLCAwLjAwOTcyIiwgXAotICAgICAgICAgICIwLjAwOTU3MywgMC4wMDk3MjQsIDAuMDA5NzU4LCAwLjAwOTc2NSwgMC4wMDk3NzMsIDAuMDA5Nzc4LCAwLjAwOTc4MiIsIFwKLSAgICAgICAgICAiMC4wMDk2NTIsIDAuMDA5ODAxLCAwLjAwOTgyOCwgMC4wMDk4MzcsIDAuMDA5ODQ1LCAwLjAwOTg0OSwgMC4wMDk4NTMiLCBcCi0gICAgICAgICAgIjAuMDA5NzU1LCAwLjAwOTkyMiwgMC4wMDk5MzYsIDAuMDA5OTQ1LCAwLjAwOTk1MywgMC4wMDk5NTcsIDAuMDA5OTYxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTAwMTIsIDAuMDEwMTY4LCAwLjAxMDE5LCAwLjAxMDE5OCwgMC4wMTAyMDcsIDAuMDEwMjA3LCAwLjAxMDIxIiwgXAotICAgICAgICAgICIwLjAwOTk5OCwgMC4wMTAxNTUsIDAuMDEwMTc3LCAwLjAxMDE4NCwgMC4wMTAxOSwgMC4wMTAyLCAwLjAxMDE5NiIsIFwKLSAgICAgICAgICAiMC4wMTAwMDksIDAuMDEwMTY0LCAwLjAxMDE4NywgMC4wMTAxOTUsIDAuMDEwMiwgMC4wMTAyMDQsIDAuMDEwMjA3IiwgXAotICAgICAgICAgICIwLjAxMDAwNCwgMC4wMTAxNjgsIDAuMDEwMTkzLCAwLjAxMDIsIDAuMDEwMjA2LCAwLjAxMDIxLCAwLjAxMDIxNCIsIFwKLSAgICAgICAgICAiMC4wMTAxMTksIDAuMDEwMjYzLCAwLjAxMDI4MSwgMC4wMTAyODcsIDAuMDEwMjk0LCAwLjAxMDI5NSwgMC4wMTAzIiwgXAotICAgICAgICAgICIwLjAxMDE4LCAwLjAxMDMyNSwgMC4wMTAzNDgsIDAuMDEwMzU1LCAwLjAxMDM2NSwgMC4wMTAzNjcsIDAuMDEwMzY3IiwgXAotICAgICAgICAgICIwLjAxMDI3LCAwLjAxMDQyLCAwLjAxMDQ0MywgMC4wMTA0NTEsIDAuMDEwNDU3LCAwLjAxMDQ2MSwgMC4wMTA0NjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJHTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTE2OTQsIDAuMDExODY4LCAwLjAxMTg5NSwgMC4wMTE5MDQsIDAuMDExOTEyLCAwLjAxMTkyMywgMC4wMTE5MiIsIFwKLSAgICAgICAgICAiMC4wMTE2ODUsIDAuMDExODYxLCAwLjAxMTg4OCwgMC4wMTE4OTcsIDAuMDExOTA0LCAwLjAxMTkwNiwgMC4wMTE5MDkiLCBcCi0gICAgICAgICAgIjAuMDExNzM0LCAwLjAxMTkwOCwgMC4wMTE5MzYsIDAuMDExOTQxLCAwLjAxMTk1MiwgMC4wMTE5NTUsIDAuMDExOTU5IiwgXAotICAgICAgICAgICIwLjAxMTc4MiwgMC4wMTE5NTUsIDAuMDExOTgyLCAwLjAxMTk5LCAwLjAxMTk5OCwgMC4wMTIwMDEsIDAuMDEyMDA0IiwgXAotICAgICAgICAgICIwLjAxMTg1LCAwLjAxMjAyNCwgMC4wMTIwNTEsIDAuMDEyMDU5LCAwLjAxMjA2NiwgMC4wMTIwNjksIDAuMDEyMDY4IiwgXAotICAgICAgICAgICIwLjAxMTk0LCAwLjAxMjEwNCwgMC4wMTIxMywgMC4wMTIxMzcsIDAuMDEyMTQ0LCAwLjAxMjE0NywgMC4wMTIxNSIsIFwKLSAgICAgICAgICAiMC4wMTIwNDMsIDAuMDEyMjA0LCAwLjAxMjIzMSwgMC4wMTIyMzgsIDAuMDEyMjQ0LCAwLjAxMjI0OCwgMC4wMTIyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDExOTg2LCAwLjAxMjE0NCwgMC4wMTIxNjIsIDAuMDEyMTY1LCAwLjAxMjE2OCwgMC4wMTIxNywgMC4wMTIxNzIiLCBcCi0gICAgICAgICAgIjAuMDExOTg2LCAwLjAxMjE0NCwgMC4wMTIxNjIsIDAuMDEyMTY3LCAwLjAxMjE3NCwgMC4wMTIxNzEsIDAuMDEyMTc2IiwgXAotICAgICAgICAgICIwLjAxMjA0MSwgMC4wMTIxOTcsIDAuMDEyMjE0LCAwLjAxMjIxOSwgMC4wMTIyMjEsIDAuMDEyMjIzLCAwLjAxMjIyMyIsIFwKLSAgICAgICAgICAiMC4wMTIwNzUsIDAuMDEyMjM2LCAwLjAxMjI1NCwgMC4wMTIyNTgsIDAuMDEyMjYxLCAwLjAxMjI2MiwgMC4wMTIyNjMiLCBcCi0gICAgICAgICAgIjAuMDEyMTM0LCAwLjAxMjI5NCwgMC4wMTIzMTEsIDAuMDEyMzE2LCAwLjAxMjMxOCwgMC4wMTIzMiwgMC4wMTIzMjEiLCBcCi0gICAgICAgICAgIjAuMDEyMjIzLCAwLjAxMjM5NSwgMC4wMTI0MTMsIDAuMDEyNDE1LCAwLjAxMjQyLCAwLjAxMjQyLCAwLjAxMjQyMiIsIFwKLSAgICAgICAgICAiMC4wMTIzMjEsIDAuMDEyNDc3LCAwLjAxMjQ5NCwgMC4wMTI0OTksIDAuMDEyNSwgMC4wMTI1LCAwLjAxMjUwMiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUU4pICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMS4zNDQxOTsKLSAgICBmdW5jdGlvbiA6ICJOMCI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzI1MiwgMC4xMjk0MDYsIDAuMTg0MTcsIDAuMjIzMjUsIDAuMjg1ODE1LCAwLjM0MDUyOCwgMC40MTg2OTMiLCBcCi0gICAgICAgICAgIjAuMDc4MTk4LCAwLjEzNTA4NCwgMC4xODk4MjMsIDAuMjI4OTMzLCAwLjI5MTQ1NCwgMC4zNDYyMDksIDAuNDI0MzcxIiwgXAotICAgICAgICAgICIwLjA4NDgwOCwgMC4xNDE2OTYsIDAuMTk2NDM1LCAwLjIzNTU0OCwgMC4yOTgwOSwgMC4zNTI4MTgsIDAuNDMwOTA2IiwgXAotICAgICAgICAgICIwLjA5MDU3MywgMC4xNDc0OSwgMC4yMDIyMzcsIDAuMjQxMzQyLCAwLjMwMzkyOCwgMC4zNTg2MDUsIDAuNDM2NzY4IiwgXAotICAgICAgICAgICIwLjA5NTUwOCwgMC4xNTI0NzYsIDAuMjA3MjEyLCAwLjI0NjMyNCwgMC4zMDg4NjQsIDAuMzYzNjAxLCAwLjQ0MTczOCIsIFwKLSAgICAgICAgICAiMC4xMDIxNjQsIDAuMTU5MTE4LCAwLjIxMzg2MywgMC4yNTI5NDcsIDAuMzE1NDk3LCAwLjM3MDIxMywgMC40NDg0MjYiLCBcCi0gICAgICAgICAgIjAuMTA3MTk0LCAwLjE2NDE5MiwgMC4yMTg5MTQsIDAuMjU4MDA4LCAwLjMyMDU1OCwgMC4zNzUzMTksIDAuNDUzNDQ2Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDI3NiwgMC4xMzgzODksIDAuMjUyOTg2LCAwLjMzNjA3MiwgMC40Njc1MzgsIDAuNTg0NDI0LCAwLjc0ODYxNCIsIFwKLSAgICAgICAgICAiMC4wMjc2MDEsIDAuMTM4Mzg5LCAwLjI1MjkxNywgMC4zMzYwNzgsIDAuNDY4MzY4LCAwLjU4NDQxNiwgMC43NDg1MTQiLCBcCi0gICAgICAgICAgIjAuMDI3NjEsIDAuMTM4MzkxLCAwLjI1MzMwOSwgMC4zMzYwOCwgMC40NjczNjcsIDAuNTgzNzQ3LCAwLjc0OTAxNiIsIFwKLSAgICAgICAgICAiMC4wMjc3MjIsIDAuMTM4NDExLCAwLjI1MzAxNCwgMC4zMzYwNzgsIDAuNDY3NzA4LCAwLjU4MzY3OCwgMC43NDkxMzgiLCBcCi0gICAgICAgICAgIjAuMDI3ODk0LCAwLjEzODQyLCAwLjI1MzIwMiwgMC4zMzYwNTgsIDAuNDY3ODQ4LCAwLjU4NDI2MiwgMC43NDkwNzIiLCBcCi0gICAgICAgICAgIjAuMDI4MDA3LCAwLjEzODUwMiwgMC4yNTMzMjksIDAuMzM1NDc3LCAwLjQ2ODI5LCAwLjU4MzY0NywgMC43NDk3NDYiLCBcCi0gICAgICAgICAgIjAuMDI4MTMzLCAwLjEzODM4MywgMC4yNTMxNDcsIDAuMzM1ODUzLCAwLjQ2NzkwNiwgMC41ODQxMiwgMC43NDk2MTEiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjk4MjUsIDAuMTI1OTI0LCAwLjE3OTg0NiwgMC4yMTgzNTYsIDAuMjc5OTE0LCAwLjMzMzc3NywgMC40MTA3NDgiLCBcCi0gICAgICAgICAgIjAuMDc1OTk4LCAwLjEzMjA5OSwgMC4xODYwMTUsIDAuMjI0NTE1LCAwLjI4NjA1NywgMC4zMzk5OTgsIDAuNDE2OTEzIiwgXAotICAgICAgICAgICIwLjA4MzI2LCAwLjEzOTM2OCwgMC4xOTMyODQsIDAuMjMxNzg4LCAwLjI5MzQ0NSwgMC4zNDczMTksIDAuNDI0MTk5IiwgXAotICAgICAgICAgICIwLjA4OTU4NSwgMC4xNDU3MSwgMC4xOTk2MDUsIDAuMjM4MTI5LCAwLjI5OTY3LCAwLjM1MzY1NCwgMC40MzA2MjYiLCBcCi0gICAgICAgICAgIjAuMDk1MDMsIDAuMTUxMTUxLCAwLjIwNTA2NywgMC4yNDM1NjksIDAuMzA1MjE5LCAwLjM1OTA1NiwgMC40MzYwMjIiLCBcCi0gICAgICAgICAgIjAuMTAyMzgyLCAwLjE1ODUzMiwgMC4yMTI0NjYsIDAuMjUwOTYyLCAwLjMxMjUzLCAwLjM2NjQ0MiwgMC40NDMzNzYiLCBcCi0gICAgICAgICAgIjAuMTA3OTc0LCAwLjE2NDE0NCwgMC4yMTgwNTcsIDAuMjU2NTY0LCAwLjMxODE1NywgMC4zNzIwNDUsIDAuNDQ5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDI2NTE2LCAwLjEzMzc0NSwgMC4yNDUxMzYsIDAuMzI1MTAxLCAwLjQ1MzAyOSwgMC41NjUxMzQsIDAuNzI1Mzk1IiwgXAotICAgICAgICAgICIwLjAyNjUyMywgMC4xMzM3MzksIDAuMjQ0Njc4LCAwLjMyNTEwMiwgMC40NTI5ODcsIDAuNTY1MTQ5LCAwLjcyMzU5IiwgXAotICAgICAgICAgICIwLjAyNjUzNSwgMC4xMzM3NTcsIDAuMjQ0NTgxLCAwLjMyNTA5NywgMC40NTI1NTksIDAuNTYzODgzLCAwLjcyNTQ4MyIsIFwKLSAgICAgICAgICAiMC4wMjY2NjMsIDAuMTMzNzcxLCAwLjI0NDg3MiwgMC4zMjQ1MjQsIDAuNDUyNjMsIDAuNTY0NDAyLCAwLjcyMzY5NCIsIFwKLSAgICAgICAgICAiMC4wMjY3MTgsIDAuMTMzOTQ1LCAwLjI0NDkyNiwgMC4zMjUxMjUsIDAuNDUyNDQ0LCAwLjU2NTM4MywgMC43MjQ4MDIiLCBcCi0gICAgICAgICAgIjAuMDI2ODg4LCAwLjEzNDEyMSwgMC4yNDQ4NDMsIDAuMzI1MTM1LCAwLjQ1MzA3MSwgMC41NjUzNzcsIDAuNzI1NDA5IiwgXAotICAgICAgICAgICIwLjAyNzA1LCAwLjEzMzg4NCwgMC4yNDQ4OTgsIDAuMzI0NjMzLCAwLjQ1MzA1NSwgMC41NjUyMTgsIDAuNzI0ODc5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkdOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5vbl91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogZmFsbGluZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5OTE0OCwgMC4xNTYwNDYsIDAuMjEwNzg2LCAwLjI0OTg3MSwgMC4zMTI0NDYsIDAuMzY3MTc1LCAwLjQ0NTMyOSIsIFwKLSAgICAgICAgICAiMC4xMDcyNjgsIDAuMTY0MTY3LCAwLjIxODkwNCwgMC4yNTgwMTMsIDAuMzIwNTc2LCAwLjM3NTI4OSwgMC40NTM0NTgiLCBcCi0gICAgICAgICAgIjAuMTE1Njg0LCAwLjE3MjU3OSwgMC4yMjczMjEsIDAuMjY2NDI0LCAwLjMyODk0NywgMC4zODM2OTcsIDAuNDYxODY2IiwgXAotICAgICAgICAgICIwLjEyMjIxMSwgMC4xNzkxMSwgMC4yMzM4NDcsIDAuMjcyOTUyLCAwLjMzNTUwOSwgMC4zOTAyNDMsIDAuNDY4NDA5IiwgXAotICAgICAgICAgICIwLjEyNzE3NSwgMC4xODQwNzcsIDAuMjM4ODIyLCAwLjI3NzkyMiwgMC4zNDA0OTMsIDAuMzk1MTk0LCAwLjQ3MzM2NSIsIFwKLSAgICAgICAgICAiMC4xMzM2MTgsIDAuMTkwNTE4LCAwLjI0NTI1OSwgMC4yODQzNTksIDAuMzQ2OTAyLCAwLjQwMTY3OSwgMC40Nzk4MzUiLCBcCi0gICAgICAgICAgIjAuMTM4NDIzLCAwLjE5NTMyNSwgMC4yNTAwODQsIDAuMjg5MTU3LCAwLjM1MTc1LCAwLjQwNjQzNywgMC40ODQ2MDYiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjc1OTEsIDAuMTM4Mzg5LCAwLjI1MzE1OCwgMC4zMzU4NzgsIDAuNDY3NDA1LCAwLjU4NDQyNywgMC43NDkyMTUiLCBcCi0gICAgICAgICAgIjAuMDI3NTkxLCAwLjEzODMxNCwgMC4yNTMxMzIsIDAuMzM2MDczLCAwLjQ2NzcxLCAwLjU4NDQyMywgMC43NDkzMjgiLCBcCi0gICAgICAgICAgIjAuMDI3NTk5LCAwLjEzODM4MSwgMC4yNTMxMDcsIDAuMzM2MDc0LCAwLjQ2ODM1NywgMC41ODQ0MiwgMC43NDgzOTMiLCBcCi0gICAgICAgICAgIjAuMDI3NTg2LCAwLjEzODM4NywgMC4yNTMyOTcsIDAuMzM1NDg1LCAwLjQ2NzYxMiwgMC41ODQ0MSwgMC43NDg1MTEiLCBcCi0gICAgICAgICAgIjAuMDI3NTg5LCAwLjEzODMxNSwgMC4yNTMzNzcsIDAuMzM2MDczLCAwLjQ2NzczMSwgMC41ODQ0MTEsIDAuNzQ5MzMiLCBcCi0gICAgICAgICAgIjAuMDI3NTc1LCAwLjEzODM4LCAwLjI1MzM3NywgMC4zMzYwNDQsIDAuNDY3OTgyLCAwLjU4MzQ1MiwgMC43NDk4NTEiLCBcCi0gICAgICAgICAgIjAuMDI3NTgxLCAwLjEzODQzNCwgMC4yNTMzNjUsIDAuMzM1NjYyLCAwLjQ2NzY5NiwgMC41ODQzMTgsIDAuNzQ5MjkyIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg3NDAxLCAwLjE0MzUxNiwgMC4xOTc0MzIsIDAuMjM1OTY4LCAwLjI5NzU4NywgMC4zNTE0MjQsIDAuNDI4NDMiLCBcCi0gICAgICAgICAgIjAuMDk1NDE5LCAwLjE1MTUzNCwgMC4yMDU0NTIsIDAuMjQzOTU1LCAwLjMwNTYwMiwgMC4zNTk0NDIsIDAuNDM2NDUyIiwgXAotICAgICAgICAgICIwLjEwNDA3NywgMC4xNjAxOTMsIDAuMjE0MTEyLCAwLjI1MjYxMSwgMC4zMTQyMDUsIDAuMzY4MTM4LCAwLjQ0NTE2MSIsIFwKLSAgICAgICAgICAiMC4xMTEwMTgsIDAuMTY3MTM0LCAwLjIyMTA1LCAwLjI1OTU1NiwgMC4zMjEyMDksIDAuMzc1MDQ0LCAwLjQ1MjEwMyIsIFwKLSAgICAgICAgICAiMC4xMTY0NTcsIDAuMTcyNTc1LCAwLjIyNjQ5MSwgMC4yNjQ5OTUsIDAuMzI2NjQ5LCAwLjM4MDQ4NSwgMC40NTc0OTIiLCBcCi0gICAgICAgICAgIjAuMTIzNzMzLCAwLjE3OTg1OCwgMC4yMzM3NzgsIDAuMjcyMjc0LCAwLjMzMzg4NCwgMC4zODc3NjQsIDAuNDY0ODExIiwgXAotICAgICAgICAgICIwLjEyOTAyMywgMC4xODUxMjEsIDAuMjM5MDQ0LCAwLjI3NzU2NywgMC4zMzkxNjksIDAuMzkzMDQ5LCAwLjQ3MDA0NCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyNjQ5NCwgMC4xMzM3NTksIDAuMjQ0OTIxLCAwLjMyNDYxMSwgMC40NTI1NiwgMC41NjU0MzEsIDAuNzIzNjA3IiwgXAotICAgICAgICAgICIwLjAyNjQ5NCwgMC4xMzM4MzMsIDAuMjQ0NTA3LCAwLjMyNTEwMSwgMC40NTIyNjQsIDAuNTY1NDMzLCAwLjcyNDQyNyIsIFwKLSAgICAgICAgICAiMC4wMjY1LCAwLjEzMzgyOSwgMC4yNDQ1OCwgMC4zMjUwOTgsIDAuNDUyNTY0LCAwLjU2NDQwMiwgMC43MjQxOTIiLCBcCi0gICAgICAgICAgIjAuMDI2NTA1LCAwLjEzMzc0NiwgMC4yNDQ5MTgsIDAuMzI1MDkzLCAwLjQ1MjU1NywgMC41NjU0MzcsIDAuNzI0NjI2IiwgXAotICAgICAgICAgICIwLjAyNjUyOCwgMC4xMzM3MDUsIDAuMjQ0NTc4LCAwLjMyNTEwMSwgMC40NTI1NTksIDAuNTY1NDQxLCAwLjcyNTczNiIsIFwKLSAgICAgICAgICAiMC4wMjY1MTcsIDAuMTM0MDExLCAwLjI0NDgyNSwgMC4zMjUxMjEsIDAuNDUzMjczLCAwLjU2NTQzLCAwLjcyNDI2NCIsIFwKLSAgICAgICAgICAiMC4wMjY1MjcsIDAuMTMzODMzLCAwLjI0NDkxNywgMC4zMjQ2NDIsIDAuNDUyNDEyLCAwLjU2NDY4OCwgMC43MjQ4MDIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJEIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMDAxMiwgMC4wMTAxNjgsIDAuMDEwMTksIDAuMDEwMTk4LCAwLjAxMDIwNywgMC4wMTAyMDcsIDAuMDEwMjEiLCBcCi0gICAgICAgICAgIjAuMDA5OTk4LCAwLjAxMDE1NSwgMC4wMTAxNzcsIDAuMDEwMTg0LCAwLjAxMDE5LCAwLjAxMDIsIDAuMDEwMTk2IiwgXAotICAgICAgICAgICIwLjAxMDAwOSwgMC4wMTAxNjQsIDAuMDEwMTg3LCAwLjAxMDE5NSwgMC4wMTAyLCAwLjAxMDIwNCwgMC4wMTAyMDciLCBcCi0gICAgICAgICAgIjAuMDEwMDA0LCAwLjAxMDE2OCwgMC4wMTAxOTMsIDAuMDEwMiwgMC4wMTAyMDYsIDAuMDEwMjEsIDAuMDEwMjE0IiwgXAotICAgICAgICAgICIwLjAxMDExOSwgMC4wMTAyNjMsIDAuMDEwMjgxLCAwLjAxMDI4NywgMC4wMTAyOTQsIDAuMDEwMjk1LCAwLjAxMDMiLCBcCi0gICAgICAgICAgIjAuMDEwMTgsIDAuMDEwMzI1LCAwLjAxMDM0OCwgMC4wMTAzNTUsIDAuMDEwMzY1LCAwLjAxMDM2NywgMC4wMTAzNjciLCBcCi0gICAgICAgICAgIjAuMDEwMjcsIDAuMDEwNDIsIDAuMDEwNDQzLCAwLjAxMDQ1MSwgMC4wMTA0NTcsIDAuMDEwNDYxLCAwLjAxMDQ2NSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA5NDc4LCAwLjAwOTY0NiwgMC4wMDk2NzMsIDAuMDA5NjgxLCAwLjAwOTY4OCwgMC4wMDk2OTIsIDAuMDA5NjgxIiwgXAotICAgICAgICAgICIwLjAwOTQ2LCAwLjAwOTYyNSwgMC4wMDk2NTIsIDAuMDA5NjYsIDAuMDA5NjY3LCAwLjAwOTY2MywgMC4wMDk2OCIsIFwKLSAgICAgICAgICAiMC4wMDk0NTgsIDAuMDA5NjI2LCAwLjAwOTY1NCwgMC4wMDk2NjIsIDAuMDA5NjcsIDAuMDA5Njc0LCAwLjAwOTY3OCIsIFwKLSAgICAgICAgICAiMC4wMDk0OTUsIDAuMDA5NjY0LCAwLjAwOTY5MiwgMC4wMDk3LCAwLjAwOTcxMywgMC4wMDk3MTIsIDAuMDA5NzIiLCBcCi0gICAgICAgICAgIjAuMDA5NTczLCAwLjAwOTcyNCwgMC4wMDk3NTgsIDAuMDA5NzY1LCAwLjAwOTc3MywgMC4wMDk3NzgsIDAuMDA5NzgyIiwgXAotICAgICAgICAgICIwLjAwOTY1MiwgMC4wMDk4MDEsIDAuMDA5ODI4LCAwLjAwOTgzNywgMC4wMDk4NDUsIDAuMDA5ODQ5LCAwLjAwOTg1MyIsIFwKLSAgICAgICAgICAiMC4wMDk3NTUsIDAuMDA5OTIyLCAwLjAwOTkzNiwgMC4wMDk5NDUsIDAuMDA5OTUzLCAwLjAwOTk1NywgMC4wMDk5NjEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJHTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTE5ODYsIDAuMDEyMTQ0LCAwLjAxMjE2MiwgMC4wMTIxNjUsIDAuMDEyMTY4LCAwLjAxMjE3LCAwLjAxMjE3MiIsIFwKLSAgICAgICAgICAiMC4wMTE5ODYsIDAuMDEyMTQ0LCAwLjAxMjE2MiwgMC4wMTIxNjcsIDAuMDEyMTc0LCAwLjAxMjE3MSwgMC4wMTIxNzYiLCBcCi0gICAgICAgICAgIjAuMDEyMDQxLCAwLjAxMjE5NywgMC4wMTIyMTQsIDAuMDEyMjE5LCAwLjAxMjIyMSwgMC4wMTIyMjMsIDAuMDEyMjIzIiwgXAotICAgICAgICAgICIwLjAxMjA3NSwgMC4wMTIyMzYsIDAuMDEyMjU0LCAwLjAxMjI1OCwgMC4wMTIyNjEsIDAuMDEyMjYyLCAwLjAxMjI2MyIsIFwKLSAgICAgICAgICAiMC4wMTIxMzQsIDAuMDEyMjk0LCAwLjAxMjMxMSwgMC4wMTIzMTYsIDAuMDEyMzE4LCAwLjAxMjMyLCAwLjAxMjMyMSIsIFwKLSAgICAgICAgICAiMC4wMTIyMjMsIDAuMDEyMzk1LCAwLjAxMjQxMywgMC4wMTI0MTUsIDAuMDEyNDIsIDAuMDEyNDIsIDAuMDEyNDIyIiwgXAotICAgICAgICAgICIwLjAxMjMyMSwgMC4wMTI0NzcsIDAuMDEyNDk0LCAwLjAxMjQ5OSwgMC4wMTI1LCAwLjAxMjUsIDAuMDEyNTAyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTE2OTQsIDAuMDExODY4LCAwLjAxMTg5NSwgMC4wMTE5MDQsIDAuMDExOTEyLCAwLjAxMTkyMywgMC4wMTE5MiIsIFwKLSAgICAgICAgICAiMC4wMTE2ODUsIDAuMDExODYxLCAwLjAxMTg4OCwgMC4wMTE4OTcsIDAuMDExOTA0LCAwLjAxMTkwNiwgMC4wMTE5MDkiLCBcCi0gICAgICAgICAgIjAuMDExNzM0LCAwLjAxMTkwOCwgMC4wMTE5MzYsIDAuMDExOTQxLCAwLjAxMTk1MiwgMC4wMTE5NTUsIDAuMDExOTU5IiwgXAotICAgICAgICAgICIwLjAxMTc4MiwgMC4wMTE5NTUsIDAuMDExOTgyLCAwLjAxMTk5LCAwLjAxMTk5OCwgMC4wMTIwMDEsIDAuMDEyMDA0IiwgXAotICAgICAgICAgICIwLjAxMTg1LCAwLjAxMjAyNCwgMC4wMTIwNTEsIDAuMDEyMDU5LCAwLjAxMjA2NiwgMC4wMTIwNjksIDAuMDEyMDY4IiwgXAotICAgICAgICAgICIwLjAxMTk0LCAwLjAxMjEwNCwgMC4wMTIxMywgMC4wMTIxMzcsIDAuMDEyMTQ0LCAwLjAxMjE0NywgMC4wMTIxNSIsIFwKLSAgICAgICAgICAiMC4wMTIwNDMsIDAuMDEyMjA0LCAwLjAxMjIzMSwgMC4wMTIyMzgsIDAuMDEyMjQ0LCAwLjAxMjI0OCwgMC4wMTIyNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBUTEFUU1JYMSAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoVExBVFNSWDEpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC43OTExNjQ7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgbGF0Y2ggKFFJTlQsTjUpIHsKLSAgICBkYXRhX2luIDogIkQiOwotICAgIGVuYWJsZSA6ICIoRyBSTikiOwotICAgIHByZXNldCA6ICIoIVNOKSI7Ci0gIH0KLSAgcGluKEQpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY0MTkzOTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2NDA1ODM7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjQxOTM5OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDI4OCwgMC4wMDAyOSwgMC4wMDAyOTEsIDAuMDAwMjkxLCAwLjAwMDI5MSwgMC4wMDAyOTIsIDAuMDAwMjkyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzE2LCAwLjAwMDMwNCwgMC4wMDAzMDIsIDAuMDAwMzAyLCAwLjAwMDMsIDAuMDAwMywgMC4wMDAyOTkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfZmFsbGluZzsKLSAgICAgIHdoZW4gOiAiUk4mU04iOwotICAgICAgc2RmX2NvbmQgOiAiUk5fRVFfMV9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAwNjI1LCAtMC4wMDEyNSwgMC4wMDUsIDAuMDExMjUsIDAuMDE3NSwgMC4wMjEyNSwgMC4wMyIsIFwKLSAgICAgICAgICAiLTAuMDE3NSwgLTAuMDA2MjUsIDAsIDAuMDA2MjUsIDAuMDEyNSwgMC4wMTYyNSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLCAwLjAwNjI1LCAwLjAxLCAwLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAsIDAuMDAzNzUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgLTAuMDAyNSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDQsIC0wLjAzNSwgLTAuMDIyNSwgLTAuMDE2MjUsIC0wLjAxNjI1LCAtMC4wMDYyNSwgLTAuMDAzNzUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDE1LCAtMC4wMDYyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAyNSwgLTAuMDIsIC0wLjAxMzc1LCAtMC4wMTM3NSwgLTAuMDEzNzUsIC0wLjAxLCAtMC4wMDc1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDE4NzUsIC0wLjAxODc1LCAtMC4wMTUsIC0wLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMjUsIC0wLjAyNSwgLTAuMDIxMjUsIC0wLjAxODc1IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDI3NSwgLTAuMDI1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDM3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAzMTI1LCAtMC4wMjc1LCAtMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjA1MjUsIC0wLjA0NzUsIC0wLjA0MTI1LCAtMC4wMzUsIC0wLjAzNSwgLTAuMDMxMjUsIC0wLjAzNSIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wNCwgLTAuMDM3NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJHIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfZmFsbGluZzsKLSAgICAgIHdoZW4gOiAiUk4mU04iOwotICAgICAgc2RmX2NvbmQgOiAiUk5fRVFfMV9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyNSwgMC4wMTM3NSwgMC4wMDEyNSwgMC4wMDEyNSwgLTAuMDA1LCAtMC4wMTUsIC0wLjAxNzUiLCBcCi0gICAgICAgICAgIjAuMDMsIDAuMDE4NzUsIDAuMDEyNSwgMC4wMDYyNSwgMCwgLTAuMDAzNzUsIC0wLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMDM2MjUsIDAuMDI1LCAwLjAxODc1LCAwLjAxMjUsIDAuMDA2MjUsIDAuMDAyNSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMDQyNSwgMC4wMzEyNSwgMC4wMjUsIDAuMDE4NzUsIDAuMDEyNSwgMC4wMDg3NSwgMCIsIFwKLSAgICAgICAgICAiMC4wNDI1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDI1LCAwLjAxODc1LCAwLjAwODc1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICIwLjA1MjUsIDAuMDQxMjUsIDAuMDM1LCAwLjAyODc1LCAwLjAyMjUsIDAuMDE4NzUsIDAuMDE2MjUiLCBcCi0gICAgICAgICAgIjAuMDU1LCAwLjA1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDMxMjUsIDAuMDIxMjUsIDAuMDE4NzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzc1LCAwLjAzMjUsIDAuMDI2MjUsIDAuMDI2MjUsIDAuMDI2MjUsIDAuMDIyNSwgMC4wMjYyNSIsIFwKLSAgICAgICAgICAiMC4wNDI1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDMxMjUsIDAuMDMxMjUsIDAuMDI3NSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4wNDg3NSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzNzUsIDAuMDM3NSwgMC4wMzM3NSwgMC4wMzc1IiwgXAotICAgICAgICAgICIwLjA1NSwgMC4wNSwgMC4wNDM3NSwgMC4wNDM3NSwgMC4wMzc1LCAwLjA0LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIjAuMDU1LCAwLjA1LCAwLjA1LCAwLjA0Mzc1LCAwLjA0Mzc1LCAwLjA0LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjA2NSwgMC4wNiwgMC4wNTM3NSwgMC4wNDc1LCAwLjA0NzUsIDAuMDUsIDAuMDQ3NSIsIFwKLSAgICAgICAgICAiMC4wNjc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDU2MjUsIDAuMDUsIDAuMDUyNSwgMC4wNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRykgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjY1MDU2OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDY2NTA1NjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA1NDY1OTU7Ci0gICAgY2xvY2sgOiB0cnVlOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjI5OCwgMC4wMDIyOSwgMC4wMDIzNjcsIDAuMDAyNDUzLCAwLjAwMjU4MywgMC4wMDI3OTIsIDAuMDAyOTQ2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzM3LCAwLjAwMDMzOCwgMC4wMDAzMzcsIDAuMDAwMzM3LCAwLjAwMDMzNywgMC4wMDAzMzcsIDAuMDAwMzM4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkciOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFEJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMTM2MzU1LCAwLjE0MzgxOSwgMC4xNTI5OCwgMC4xNjA5NDEsIDAuMTY3MzIyLCAwLjE3NjIzMywgMC4xODI5OTIiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFEpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4zNDc2OTsKLSAgICBmdW5jdGlvbiA6ICJRSU5UIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJEIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTY3NTQsIDAuMTE1MDk1LCAwLjIxOTE5LCAwLjMxMDY2NiwgMC40MzMwMzUsIDAuNjc3MDE3LCAwLjgzMDE3NSIsIFwKLSAgICAgICAgICAiMC4xMDI4MjEsIDAuMTIxMjM5LCAwLjIyNTQxNiwgMC4zMTcyMDgsIDAuNDM5MzA1LCAwLjY4MzMsIDAuODM3MDQxIiwgXAotICAgICAgICAgICIwLjEwOTgwMiwgMC4xMjgxODQsIDAuMjMyMzA5LCAwLjMyNDEyMSwgMC40NDU4MzksIDAuNjkxMDUsIDAuODQyOTM3IiwgXAotICAgICAgICAgICIwLjExNTYxNiwgMC4xMzQxLCAwLjIzODI4OCwgMC4zMjk2MTYsIDAuNDUyMzczLCAwLjY5NjI4NCwgMC44NDk4ODciLCBcCi0gICAgICAgICAgIjAuMTIwNjcyLCAwLjEzOTAxOSwgMC4yNDMyMDEsIDAuMzM0NTI5LCAwLjQ1NzIyNywgMC43MDE4NTksIDAuODU0ODA0IiwgXAotICAgICAgICAgICIwLjEyNzQxMywgMC4xNDU2MzgsIDAuMjQ5NTM0LCAwLjM0MTU4MiwgMC40NjM2MjQsIDAuNzA3ODg0LCAwLjg2MDcwMSIsIFwKLSAgICAgICAgICAiMC4xMzIzNTEsIDAuMTUwNjUsIDAuMjU0ODA3LCAwLjM0NjU2NSwgMC40Njg1MDIsIDAuNzEzNTE1LCAwLjg2NjM2NSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjg5NzgsIDAuMTA3MzEyLCAwLjMyNTk4OCwgMC41MTc4NSwgMC43NzQ4MDQsIDEuMjg3NTksIDEuNjEwNDIiLCBcCi0gICAgICAgICAgIjAuMDY5MDc2LCAwLjEwNzQ1MywgMC4zMjYyNTksIDAuNTE5NTk3LCAwLjc3NjE1NiwgMS4yODk1OCwgMS42MTI2IiwgXAotICAgICAgICAgICIwLjA2OTAzMSwgMC4xMDc1MDksIDAuMzI2MjA5LCAwLjUxOTMyOSwgMC43NzU2MTcsIDEuMjkxMDMsIDEuNjA4NTkiLCBcCi0gICAgICAgICAgIjAuMDY5MTM0LCAwLjEwNzQzMSwgMC4zMjYyNiwgMC41MTc5MiwgMC43NzY1NDYsIDEuMjg3ODksIDEuNjEyNTgiLCBcCi0gICAgICAgICAgIjAuMDY5MDYxLCAwLjEwNzUxOSwgMC4zMjY0MDcsIDAuNTE4NjUsIDAuNzc2NzkzLCAxLjI5MTM4LCAxLjYxMzE5IiwgXAotICAgICAgICAgICIwLjA2OTE1NCwgMC4xMDczNDcsIDAuMzI1OTQ1LCAwLjUxOTM0MSwgMC43NzU2NDcsIDEuMjg5MzIsIDEuNjExNjQiLCBcCi0gICAgICAgICAgIjAuMDY4OTQ0LCAwLjEwNzQyOCwgMC4zMjYyMzcsIDAuNTE5MjQyLCAwLjc3NTkyLCAxLjI5MTE4LCAxLjYxMjY4Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExMTMzLCAwLjEyOTQ1NSwgMC4yMzE5NDMsIDAuMzIyNjg3LCAwLjQ0MzQwNywgMC42ODUwODEsIDAuODM1OTczIiwgXAotICAgICAgICAgICIwLjExNzA0MSwgMC4xMzUyMDYsIDAuMjM3ODI2LCAwLjMyODQwMiwgMC40NDg4MzYsIDAuNjkwNTUyLCAwLjg0MDY3IiwgXAotICAgICAgICAgICIwLjEyMzE4NCwgMC4xNDEzNTQsIDAuMjQzODU4LCAwLjMzNDUzLCAwLjQ1NDk4MSwgMC42OTYwMzksIDAuODQ2Nzc5IiwgXAotICAgICAgICAgICIwLjEyODQ1MywgMC4xNDY1OSwgMC4yNDkwNzQsIDAuMzM5NzQ5LCAwLjQ2MDI3NywgMC43MDIyMzQsIDAuODUzMDU5IiwgXAotICAgICAgICAgICIwLjEzMjcxLCAwLjE1MDgzNywgMC4yNTMzMjMsIDAuMzQ0MDA3LCAwLjQ2NDkwNiwgMC43MDYxNzksIDAuODU3NDA1IiwgXAotICAgICAgICAgICIwLjEzODYyOSwgMC4xNTY3ODQsIDAuMjU5MzA5LCAwLjM0OTk4NiwgMC40NzA4NzgsIDAuNzExOTI3LCAwLjg2MjU5IiwgXAotICAgICAgICAgICIwLjE0MzA0OSwgMC4xNjEyNDUsIDAuMjYzNzU4LCAwLjM1NDIxLCAwLjQ3NTA0NywgMC43MTY0NjQsIDAuODY3MTAzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2NjkzOCwgMC4xMDM4MjYsIDAuMzE1MDUzLCAwLjUwMTc3NCwgMC43NTA1NDksIDEuMjQ3MzEsIDEuNTU1OTQiLCBcCi0gICAgICAgICAgIjAuMDY2ODYsIDAuMTAzODIyLCAwLjMxNTI0MywgMC41MDE3NjMsIDAuNzUwMzQ5LCAxLjI0NjE1LCAxLjU1ODU4IiwgXAotICAgICAgICAgICIwLjA2NjgyNiwgMC4xMDM4MzIsIDAuMzE0MjQ1LCAwLjUwMTQ5MywgMC43NDk0MDQsIDEuMjQzNTYsIDEuNTUyNTkiLCBcCi0gICAgICAgICAgIjAuMDY2OTQxLCAwLjEwMzgwNSwgMC4zMTQ1NjUsIDAuNTAxNzQ3LCAwLjc1MDEyNSwgMS4yNDczMSwgMS41NTk0NCIsIFwKLSAgICAgICAgICAiMC4wNjY5NDIsIDAuMTAzODMyLCAwLjMxNDUzOSwgMC41MDE3MzYsIDAuNzUwMDk4LCAxLjI0ODE4LCAxLjU1NzM2IiwgXAotICAgICAgICAgICIwLjA2NjcyNCwgMC4xMDM5NDYsIDAuMzE0NDI4LCAwLjUwMTY3NywgMC43NTAwMzQsIDEuMjQ3MzIsIDEuNTU3MzEiLCBcCi0gICAgICAgICAgIjAuMDY2OTY2LCAwLjEwMzgyNCwgMC4zMTUwNiwgMC41MDEzNDgsIDAuNzUwNDgsIDEuMjQ3OTQsIDEuNTU3ODUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBub25fdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJpc2luZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMzA0NjksIDAuMTQ4ODI2LCAwLjI1MzA3OSwgMC4zNDQzOTcsIDAuNDY3MTYzLCAwLjcxMTc1NCwgMC44NjQ2NzkiLCBcCi0gICAgICAgICAgIjAuMTM3OTY3LCAwLjE1NjI2NywgMC4yNjA1MzEsIDAuMzUyMzQ3LCAwLjQ3NDA1OSwgMC43MTkyNzUsIDAuODcyMTY4IiwgXAotICAgICAgICAgICIwLjE0NzE2OCwgMC4xNjU0NjQsIDAuMjY5NzE2LCAwLjM2MTAxMiwgMC40ODMyMjIsIDAuNzI3NzcxLCAwLjg4MTMyMiIsIFwKLSAgICAgICAgICAiMC4xNTQ3LCAwLjE3MzAyMywgMC4yNzcyNTEsIDAuMzY4NTExLCAwLjQ5MDcyOCwgMC43MzU5NSwgMC44ODg4NjUiLCBcCi0gICAgICAgICAgIjAuMTYwNjEzLCAwLjE3ODk2MywgMC4yODMyMTYsIDAuMzc0NTEyLCAwLjQ5Njc1NywgMC43NDEyMzksIDAuODk0ODIyIiwgXAotICAgICAgICAgICIwLjE2ODkzOCwgMC4xODcyOTcsIDAuMjkxNDcyLCAwLjM4MzI1OCwgMC41MDU1NDIsIDAuNzUwMTcxLCAwLjkwMzEwMiIsIFwKLSAgICAgICAgICAiMC4xNzQ5OTEsIDAuMTkzMzk3LCAwLjI5NzI1OSwgMC4zODg5MywgMC41MTExODMsIDAuNzU2MzM1LCAwLjkwOTI0OSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjkwOCwgMC4xMDcyOTIsIDAuMzI2NDQ4LCAwLjUxODUyMiwgMC43NzcwMTksIDEuMjkxNTksIDEuNjEzMzIiLCBcCi0gICAgICAgICAgIjAuMDY5MDk4LCAwLjEwNzM2OCwgMC4zMjY0MjksIDAuNTE5NTk3LCAwLjc3NTY5MiwgMS4yOTE4NiwgMS42MTMzNyIsIFwKLSAgICAgICAgICAiMC4wNjkwMjIsIDAuMTA3MjksIDAuMzI2NDQ4LCAwLjUxODcsIDAuNzc1NDQ3LCAxLjI5MDM0LCAxLjYxMzU1IiwgXAotICAgICAgICAgICIwLjA2OTA1MiwgMC4xMDc0MzksIDAuMzI2NDQ3LCAwLjUxODQxNywgMC43NzU0MTksIDEuMjkxODQsIDEuNjEzMzUiLCBcCi0gICAgICAgICAgIjAuMDY5MTE4LCAwLjEwNzMxNCwgMC4zMjY0NDIsIDAuNTE4NTgyLCAwLjc3NTUzNCwgMS4yODk3NSwgMS42MTMzMiIsIFwKLSAgICAgICAgICAiMC4wNjkwNzUsIDAuMTA3NDQ1LCAwLjMyNjQxMSwgMC41MTk1ODUsIDAuNzc2OTk3LCAxLjI5MTYxLCAxLjYxMzU1IiwgXAotICAgICAgICAgICIwLjA2OTExLCAwLjEwNzQ1MywgMC4zMjU3ODUsIDAuNTE4NTc1LCAwLjc3NTY2OSwgMS4yOTE2OSwgMS42MTMyMiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMzU4MjYsIDAuMTUzOTQ4LCAwLjI1NjU2OCwgMC4zNDcxMzcsIDAuNDY4MDQzLCAwLjcwOTA1OCwgMC44NjA0MjkiLCBcCi0gICAgICAgICAgIjAuMTQzMjg2LCAwLjE2MTM5MywgMC4yNjQwMzcsIDAuMzU0NTk4LCAwLjQ3NTUxLCAwLjcxNzE0MywgMC44Njc5MTciLCBcCi0gICAgICAgICAgIjAuMTUyNDU0LCAwLjE3MDU0NSwgMC4yNzMwNzgsIDAuMzYzNzcsIDAuNDg0NjkxLCAwLjcyNTcwMywgMC44NzY0NjIiLCBcCi0gICAgICAgICAgIjAuMTYwNCwgMC4xNzg1MjEsIDAuMjgxMTA0LCAwLjM3MTcxMywgMC40OTI2MTgsIDAuNzMzOTQ1LCAwLjg4NTAxNyIsIFwKLSAgICAgICAgICAiMC4xNjY3NzksIDAuMTg0ODc2LCAwLjI4NzQwNSwgMC4zNzgyLCAwLjQ5OSwgMC43Mzk5OTEsIDAuODkwODM2IiwgXAotICAgICAgICAgICIwLjE3NTYzMSwgMC4xOTM3NTYsIDAuMjk2Mjc2LCAwLjM4NjkyOSwgMC41MDc5NDksIDAuNzQ5MzY2LCAwLjkwMDE3OCIsIFwKLSAgICAgICAgICAiMC4xODI0NiwgMC4yMDA2MTIsIDAuMzAzMTg5LCAwLjM5MzY5OSwgMC41MTQyMTYsIDAuNzU2MjA0LCAwLjkwNzAxNCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjY5NjQsIDAuMTAzODc4LCAwLjMxNTIzNCwgMC41MDE3NCwgMC43NTAwOTUsIDEuMjQ3MTgsIDEuNTU5MzkiLCBcCi0gICAgICAgICAgIjAuMDY2OTY2LCAwLjEwMzcyNywgMC4zMTUyNjMsIDAuNTAxNzQyLCAwLjc1MDA2NywgMS4yNDcxLCAxLjU1NTA5IiwgXAotICAgICAgICAgICIwLjA2Njk2MSwgMC4xMDM3MjQsIDAuMzE0OTU5LCAwLjUwMTc0NSwgMC43NTAwMzQsIDEuMjQ3MzgsIDEuNTU3MDQiLCBcCi0gICAgICAgICAgIjAuMDY2OTY1LCAwLjEwMzg4LCAwLjMxNTI2MywgMC41MDE3NCwgMC43NTAwOTEsIDEuMjQ4MiwgMS41NTk0IiwgXAotICAgICAgICAgICIwLjA2Njk2NCwgMC4xMDM4NTcsIDAuMzE1MDcyLCAwLjUwMDY1OSwgMC43NTAwOTYsIDEuMjQ2OTUsIDEuNTU3NzkiLCBcCi0gICAgICAgICAgIjAuMDY2OTc1LCAwLjEwMzg4OSwgMC4zMTQ5NDcsIDAuNTAxNzMxLCAwLjc0OTkzNiwgMS4yNDY3MiwgMS41NTkzMSIsIFwKLSAgICAgICAgICAiMC4wNjY5NTIsIDAuMTAzOTEsIDAuMzE1MjAzLCAwLjUwMTY1NSwgMC43NDg3MiwgMS4yNDY3NiwgMS41NTkwNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcmlzaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEzMjM0NCwgMC4xNTA3MDIsIDAuMjU0OTQ2LCAwLjM0NjczOCwgMC40NjkwNDcsIDAuNzEzNjM4LCAwLjg2NjU0NSIsIFwKLSAgICAgICAgICAiMC4xMzg1MTcsIDAuMTU2ODU5LCAwLjI2MTExMywgMC4zNTI5MjIsIDAuNDc0NjM2LCAwLjcxOTg0OSwgMC44NzIxNTciLCBcCi0gICAgICAgICAgIjAuMTQ1NjM3LCAwLjE2Mzk5NSwgMC4yNjgyNDMsIDAuMzYwMDM1LCAwLjQ4MjMxOCwgMC43MjY5MzksIDAuODc5ODYxIiwgXAotICAgICAgICAgICIwLjE1MTQ2NCwgMC4xNjk4MTcsIDAuMjc0MDY2LCAwLjM2NTg1NywgMC40ODgxNCwgMC43MzI3NjMsIDAuODg1Njc5IiwgXAotICAgICAgICAgICIwLjE1NjQxNywgMC4xNzQ3NjQsIDAuMjc5MDExLCAwLjM3MDgwNSwgMC40OTMwNzgsIDAuNzM3Njk1LCAwLjg5MDYyIiwgXAotICAgICAgICAgICIwLjE2MzE0NywgMC4xODE1NzQsIDAuMjg1NjkzLCAwLjM3NzUxLCAwLjQ5OTIyLCAwLjc0NDQyOSwgMC44OTcyNzQiLCBcCi0gICAgICAgICAgIjAuMTY4MzE5LCAwLjE4NjU5OSwgMC4yOTA4OTEsIDAuMzgyNjQxLCAwLjUwNDM5NSwgMC43NDk1NTEsIDAuOTAyNDgyIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2OTA5MywgMC4xMDcyODQsIDAuMzI2NDQzLCAwLjUxOTU5OCwgMC43NzcwNTIsIDEuMjkxODMsIDEuNjEzNTMiLCBcCi0gICAgICAgICAgIjAuMDY5MDc5LCAwLjEwNzI4MywgMC4zMjY0MjcsIDAuNTE5NTk0LCAwLjc3NTY4MywgMS4yOTE2MiwgMS42MTA3OSIsIFwKLSAgICAgICAgICAiMC4wNjkwMjUsIDAuMTA3NDg3LCAwLjMyNjQzNywgMC41MTk1OSwgMC43NzY5OTksIDEuMjkxODIsIDEuNjEzNTYiLCBcCi0gICAgICAgICAgIjAuMDY5MTAxLCAwLjEwNzQ4NywgMC4zMjY0MzcsIDAuNTE5NTksIDAuNzc3LCAxLjI5MTgxLCAxLjYxMzU1IiwgXAotICAgICAgICAgICIwLjA2OTEwMiwgMC4xMDczMDYsIDAuMzI2NDQsIDAuNTE5NTk4LCAwLjc3Njk5NCwgMS4yOTE4MSwgMS42MTM1NSIsIFwKLSAgICAgICAgICAiMC4wNjkwNDQsIDAuMTA3NTA2LCAwLjMyNjM5NSwgMC41MTk1ODMsIDAuNzc1OCwgMS4yOTE3MSwgMS42MTM0IiwgXAotICAgICAgICAgICIwLjA2OTA1OSwgMC4xMDc2MTcsIDAuMzI2NDU2LCAwLjUxOTUyNCwgMC43NzU1NTgsIDEuMjkxNzIsIDEuNjEzNDgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUk4iOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGZhbGxpbmdfZWRnZTsKLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTM4NzEsIDAuMTU2ODcxLCAwLjI1OTQ5NywgMC4zNTAwNDIsIDAuNDcwNTQxLCAwLjcxMjI1NCwgMC44NjIzOTMiLCBcCi0gICAgICAgICAgIjAuMTQ2NjE1LCAwLjE2NDc3NiwgMC4yNjcyOTIsIDAuMzU3OTQ3LCAwLjQ3ODQ0NiwgMC43MTk5NjMsIDAuODcwNTIzIiwgXAotICAgICAgICAgICIwLjE1NTExMiwgMC4xNzMzMzYsIDAuMjc1NzcyLCAwLjM2NjQxMSwgMC40ODY5MiwgMC43MjgyOTcsIDAuODc4ODQ4IiwgXAotICAgICAgICAgICIwLjE2MjA1MywgMC4xODAyMzQsIDAuMjgyNjY4LCAwLjM3MzM0NiwgMC40OTM4MjMsIDAuNzM1NDYyLCAwLjg4NjA5MiIsIFwKLSAgICAgICAgICAiMC4xNjgzOTYsIDAuMTg2NTcsIDAuMjg5MDcsIDAuMzc5NzQyLCAwLjUwMDIxOCwgMC43NDE4NDMsIDAuODkyMzU5IiwgXAotICAgICAgICAgICIwLjE3NjgzLCAwLjE5NTAwOSwgMC4yOTc0ODQsIDAuMzg4MTUxLCAwLjUwODYxOCwgMC43NDk5NDgsIDAuOTAwNjExIiwgXAotICAgICAgICAgICIwLjE4MzcwNCwgMC4yMDE5MjMsIDAuMzA0NDYzLCAwLjM5NDk5LCAwLjUxNTUzNywgMC43NTcwNjksIDAuOTA3OTMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY2ODk3LCAwLjEwMzgzNywgMC4zMTUyNywgMC41MDE4MjcsIDAuNzUwNDkyLCAxLjI0ODI0LCAxLjU1NTExIiwgXAotICAgICAgICAgICIwLjA2Njg5OCwgMC4xMDM4MzYsIDAuMzE1MjU5LCAwLjUwMTgyNCwgMC43NTA0MDksIDEuMjQ4MSwgMS41NTc4NiIsIFwKLSAgICAgICAgICAiMC4wNjY5MzcsIDAuMTAzODMsIDAuMzE1MDE3LCAwLjUwMTkwOSwgMC43NTA3NDgsIDEuMjQ4MTMsIDEuNTU5MTEiLCBcCi0gICAgICAgICAgIjAuMDY2OTQ4LCAwLjEwMzkzNiwgMC4zMTQ5NTYsIDAuNTAxODI3LCAwLjc1MDc3MywgMS4yNDgxNywgMS41NTkxMSIsIFwKLSAgICAgICAgICAiMC4wNjY5MTQsIDAuMTAzODQxLCAwLjMxNDk3NywgMC41MDE4NjgsIDAuNzQ5NDkyLCAxLjI0ODE0LCAxLjU1OTE5IiwgXAotICAgICAgICAgICIwLjA2NjgyNiwgMC4xMDM5MTQsIDAuMzE1MjU4LCAwLjUwMTc5MSwgMC43NDk2MjMsIDEuMjQ2ODEsIDEuNTU5MjMiLCBcCi0gICAgICAgICAgIjAuMDY3MTE1LCAwLjEwMzksIDAuMzE1MjUzLCAwLjUwMTc0MSwgMC43NTA2NjEsIDEuMjQ4MTcsIDEuNTU4OTIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiU04iOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHByZXNldDsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY5MjE5LCAwLjA4NzUyNywgMC4xOTE3NTQsIDAuMjgzMzEzLCAwLjQwNTY2NywgMC42NTAyOCwgMC44MDMxMjkiLCBcCi0gICAgICAgICAgIjAuMDc3MywgMC4wOTU2OTksIDAuMTk5ODMxLCAwLjI5MTI2MiwgMC40MTM3MzcsIDAuNjU4MTQyLCAwLjgxMTA4NiIsIFwKLSAgICAgICAgICAiMC4wODcwMTgsIDAuMTA1MzMxLCAwLjIwOTI5NiwgMC4zMDA5MzUsIDAuNDIzNDU1LCAwLjY2NzgzNSwgMC44MjA3MDYiLCBcCi0gICAgICAgICAgIjAuMDk0NjQ4LCAwLjExMjk2NCwgMC4yMTcwNiwgMC4zMDg3MDcsIDAuNDMxMDU2LCAwLjY3NTI5NCwgMC44Mjg2MjEiLCBcCi0gICAgICAgICAgIjAuMTAwNjIsIDAuMTE4OTIyLCAwLjIyMjkyNSwgMC4zMTQ2NTUsIDAuNDM2OTYyLCAwLjY4MTU2OCwgMC44MzQ0MDgiLCBcCi0gICAgICAgICAgIjAuMTA4MzQyLCAwLjEyNjYzNywgMC4yMzA0NzgsIDAuMzIyMzExLCAwLjQ0NDI5OCwgMC42ODkxLCAwLjg0MjA5MyIsIFwKLSAgICAgICAgICAiMC4xMTQwMTksIDAuMTMyMzIyLCAwLjIzNjE4MSwgMC4zMjc5MDMsIDAuNDUwMDM0LCAwLjY5NDQxNCwgMC44NDc1NzYiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY5MDEyLCAwLjEwNzQzNCwgMC4zMjYxOTksIDAuNTE4OTk0LCAwLjc3NjA2MywgMS4yOTA3OSwgMS42MTIxOCIsIFwKLSAgICAgICAgICAiMC4wNjkwNywgMC4xMDc0NzUsIDAuMzI2MjA1LCAwLjUxODk2MywgMC43NzYzMjQsIDEuMjkwNjEsIDEuNjExODgiLCBcCi0gICAgICAgICAgIjAuMDY5MDM2LCAwLjEwNzQ5NSwgMC4zMjU2ODgsIDAuNTE4NzY2LCAwLjc3NjA2NywgMS4yOTA4LCAxLjYxMjQ3IiwgXAotICAgICAgICAgICIwLjA2OTE1OCwgMC4xMDc1MzEsIDAuMzI2NDA3LCAwLjUxOTI1NiwgMC43NzY1NTEsIDEuMjkwODcsIDEuNjEyODgiLCBcCi0gICAgICAgICAgIjAuMDY5MTcyLCAwLjEwNzUyNiwgMC4zMjYyMzUsIDAuNTE5MTU2LCAwLjc3NjA3OCwgMS4yOTA2NSwgMS42MTI1NyIsIFwKLSAgICAgICAgICAiMC4wNjkyOTksIDAuMTA3Mzk1LCAwLjMyNTk3OSwgMC41MTg5NzEsIDAuNzc1OTA3LCAxLjI5MDY1LCAxLjYxMjMzIiwgXAotICAgICAgICAgICIwLjA2OTE2NCwgMC4xMDc3MTUsIDAuMzI1NzQ5LCAwLjUxODkwNSwgMC43NzYyMTIsIDEuMjkwNDksIDEuNjEyMTIiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDgxNzg0LCAwLjA5OTk0NCwgMC4yMDI1NzMsIDAuMjkyOTc4LCAwLjQxNDAxMywgMC42NTUwMDUsIDAuODA2MDczIiwgXAotICAgICAgICAgICIwLjA4Nzc4LCAwLjEwNTkxNSwgMC4yMDg0MDMsIDAuMjk5MDcyLCAwLjQxOTY1OCwgMC42NjEyNjEsIDAuODExOTgxIiwgXAotICAgICAgICAgICIwLjA5NTMzNywgMC4xMTM1MjUsIDAuMjE1OTcsIDAuMzA2NjM1LCAwLjQyNzUxOCwgMC42NjkwNTgsIDAuODE5MjE4IiwgXAotICAgICAgICAgICIwLjEwMjA2MywgMC4xMjAyNDksIDAuMjIyODI3LCAwLjMxMzQ5MywgMC40MzQyOCwgMC42NzU3ODQsIDAuODI3MzU3IiwgXAotICAgICAgICAgICIwLjEwNzg2MSwgMC4xMjYwNDUsIDAuMjI4NTgzLCAwLjMxOTIxMywgMC40NDAxNiwgMC42ODE5ODMsIDAuODMyNzE2IiwgXAotICAgICAgICAgICIwLjExNTkyNCwgMC4xMzM4ODcsIDAuMjM2NTY0LCAwLjMyNzE0NCwgMC40NDc2MzcsIDAuNjkwMTIsIDAuODQwMTMzIiwgXAotICAgICAgICAgICIwLjEyMTg2LCAwLjEzOTkzNSwgMC4yNDI2MzcsIDAuMzMzMDIzLCAwLjQ1MzYwOSwgMC42OTU5MDUsIDAuODQ2MTY4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2NjgwMSwgMC4xMDM4MTQsIDAuMzE1MzAyLCAwLjUwMTc2NSwgMC43NTAwODEsIDEuMjQ4MDIsIDEuNTU5MjkiLCBcCi0gICAgICAgICAgIjAuMDY2OTMxLCAwLjEwMzgzNSwgMC4zMTUyMzQsIDAuNTAxNzUzLCAwLjc1MDA4NSwgMS4yNDc3NiwgMS41NTc1NyIsIFwKLSAgICAgICAgICAiMC4wNjY4OTYsIDAuMTAzODAxLCAwLjMxNTI0NiwgMC41MDE3NTYsIDAuNzUwMDc1LCAxLjI0NjQyLCAxLjU1Njc3IiwgXAotICAgICAgICAgICIwLjA2Njk0NCwgMC4xMDM3OTQsIDAuMzE1MjI5LCAwLjUwMTY2OSwgMC43NTAwNjgsIDEuMjQ4MjQsIDEuNTU3OTciLCBcCi0gICAgICAgICAgIjAuMDY2OTYyLCAwLjEwMzk1OSwgMC4zMTUxNzksIDAuNTAxNjMsIDAuNzUwMTg4LCAxLjI0NzcxLCAxLjU1ODUxIiwgXAotICAgICAgICAgICIwLjA2NzI4MSwgMC4xMDQwOTcsIDAuMzE1MjgzLCAwLjUwMTU2MiwgMC43NTAwMTUsIDEuMjQ3NzcsIDEuNTU5MzkiLCBcCi0gICAgICAgICAgIjAuMDY2ODMzLCAwLjEwNDQ1NiwgMC4zMTUxOTEsIDAuNTAwOTA5LCAwLjc0OTY1MSwgMS4yNDU0NCwgMS41NTczNSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkQiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzU3NSwgMC4wMDM1ODMsIDAuMDAzNTk0LCAwLjAwMzU5NiwgMC4wMDM1OTMsIDAuMDAzNTk1LCAwLjAwMzU5NSIsIFwKLSAgICAgICAgICAiMC4wMDM1NTksIDAuMDAzNTY3LCAwLjAwMzU3OCwgMC4wMDM1OCwgMC4wMDM1ODEsIDAuMDAzNTgyLCAwLjAwMzU4MiIsIFwKLSAgICAgICAgICAiMC4wMDM1NjQsIDAuMDAzNTcyLCAwLjAwMzU4NCwgMC4wMDM1ODYsIDAuMDAzNTg4LCAwLjAwMzU5MywgMC4wMDM1ODkiLCBcCi0gICAgICAgICAgIjAuMDAzNTk1LCAwLjAwMzYwMiwgMC4wMDM2MTQsIDAuMDAzNjE3LCAwLjAwMzYxOCwgMC4wMDM2MTksIDAuMDAzNjIiLCBcCi0gICAgICAgICAgIjAuMDAzNjMyLCAwLjAwMzYzOSwgMC4wMDM2NSwgMC4wMDM2NTMsIDAuMDAzNjU0LCAwLjAwMzY1NSwgMC4wMDM2NTYiLCBcCi0gICAgICAgICAgIjAuMDAzNjk1LCAwLjAwMzcwNCwgMC4wMDM3MTYsIDAuMDAzNzE5LCAwLjAwMzcxOCwgMC4wMDM3MTksIDAuMDAzNzE5IiwgXAotICAgICAgICAgICIwLjAwMzc3MiwgMC4wMDM3NzksIDAuMDAzNzkxLCAwLjAwMzc5MywgMC4wMDM3OTYsIDAuMDAzNzk3LCAwLjAwMzc5NyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDAxNCwgMC4wMDQwMTYsIDAuMDA0MDE5LCAwLjAwNDAxOSwgMC4wMDQwMTksIDAuMDA0MDIsIDAuMDA0MDE5IiwgXAotICAgICAgICAgICIwLjAwNDAwNCwgMC4wMDQwMDYsIDAuMDA0MDA5LCAwLjAwNDAxLCAwLjAwNDAxMSwgMC4wMDQwMTEsIDAuMDA0MDExIiwgXAotICAgICAgICAgICIwLjAwNDAwOSwgMC4wMDQwMTIsIDAuMDA0MDE2LCAwLjAwNDAxNiwgMC4wMDQwMTYsIDAuMDA0MDE4LCAwLjAwNDAxOCIsIFwKLSAgICAgICAgICAiMC4wMDQwMywgMC4wMDQwMzIsIDAuMDA0MDM2LCAwLjAwNDAzNywgMC4wMDQwMzcsIDAuMDA0MDM3LCAwLjAwNDAzNyIsIFwKLSAgICAgICAgICAiMC4wMDQwNywgMC4wMDQwNzYsIDAuMDA0MDc5LCAwLjAwNDA4LCAwLjAwNDA4LCAwLjAwNDA4MSwgMC4wMDQwODEiLCBcCi0gICAgICAgICAgIjAuMDA0MTMsIDAuMDA0MTMxLCAwLjAwNDEzNCwgMC4wMDQxMzUsIDAuMDA0MTM1LCAwLjAwNDEzNSwgMC4wMDQxMzUiLCBcCi0gICAgICAgICAgIjAuMDA0MTk3LCAwLjAwNDE5OSwgMC4wMDQyMDEsIDAuMDA0MjAxLCAwLjAwNDIwMiwgMC4wMDQyMDIsIDAuMDA0MjAyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0NzIsIDAuMDA0NzI3LCAwLjAwNDczOCwgMC4wMDQ3NCwgMC4wMDQ3NDEsIDAuMDA0NzQyLCAwLjAwNDc0MiIsIFwKLSAgICAgICAgICAiMC4wMDQ3MTQsIDAuMDA0NzIyLCAwLjAwNDczMywgMC4wMDQ3MzUsIDAuMDA0NzM3LCAwLjAwNDczOCwgMC4wMDQ3MzgiLCBcCi0gICAgICAgICAgIjAuMDA0NzUzLCAwLjAwNDc2LCAwLjAwNDc3MSwgMC4wMDQ3NzQsIDAuMDA0Nzc1LCAwLjAwNDc3NiwgMC4wMDQ3NzYiLCBcCi0gICAgICAgICAgIjAuMDA0Nzk2LCAwLjAwNDgwNCwgMC4wMDQ4MTUsIDAuMDA0ODE3LCAwLjAwNDgxOCwgMC4wMDQ4MiwgMC4wMDQ4MjEiLCBcCi0gICAgICAgICAgIjAuMDA0ODU0LCAwLjAwNDg2MiwgMC4wMDQ4NzMsIDAuMDA0ODc1LCAwLjAwNDg3NywgMC4wMDQ4NzgsIDAuMDA0ODc4IiwgXAotICAgICAgICAgICIwLjAwNDk0NywgMC4wMDQ5NTMsIDAuMDA0OTY1LCAwLjAwNDk2OCwgMC4wMDQ5NjksIDAuMDA0OTcsIDAuMDA0OTcxIiwgXAotICAgICAgICAgICIwLjAwNTAzOCwgMC4wMDUwNDUsIDAuMDA1MDU2LCAwLjAwNTA1OCwgMC4wMDUwNTksIDAuMDA1MDYsIDAuMDA1MDYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDUwMjIsIDAuMDA1MDI1LCAwLjAwNTAyNywgMC4wMDUwMjgsIDAuMDA1MDI4LCAwLjAwNTAyOCwgMC4wMDUwMjgiLCBcCi0gICAgICAgICAgIjAuMDA1MDE2LCAwLjAwNTAxOSwgMC4wMDUwMjEsIDAuMDA1MDIyLCAwLjAwNTAyMiwgMC4wMDUwMjEsIDAuMDA1MDIyIiwgXAotICAgICAgICAgICIwLjAwNTA1MywgMC4wMDUwNTUsIDAuMDA1MDU3LCAwLjAwNTA1OSwgMC4wMDUwNTksIDAuMDA1MDU5LCAwLjAwNTA1OCIsIFwKLSAgICAgICAgICAiMC4wMDUxMDEsIDAuMDA1MTAzLCAwLjAwNTEwNiwgMC4wMDUxMDYsIDAuMDA1MTA2LCAwLjAwNTEwOCwgMC4wMDUxMDciLCBcCi0gICAgICAgICAgIjAuMDA1MTYzLCAwLjAwNTE2NiwgMC4wMDUxNywgMC4wMDUxNywgMC4wMDUxNywgMC4wMDUxNzEsIDAuMDA1MTcxIiwgXAotICAgICAgICAgICIwLjAwNTI1NiwgMC4wMDUyNTgsIDAuMDA1MjYyLCAwLjAwNTI2MiwgMC4wMDUyNjIsIDAuMDA1MjYyLCAwLjAwNTI2MiIsIFwKLSAgICAgICAgICAiMC4wMDUzNDgsIDAuMDA1MzUxLCAwLjAwNTM1NCwgMC4wMDUzNjIsIDAuMDA1MzYyLCAwLjAwNTM1NCwgMC4wMDUzNTQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0NTc4LCAwLjAwNDU4NSwgMC4wMDQ1OTYsIDAuMDA0NTk4LCAwLjAwNDU5OSwgMC4wMDQ2LCAwLjAwNDYwMSIsIFwKLSAgICAgICAgICAiMC4wMDQ1NTUsIDAuMDA0NTYzLCAwLjAwNDU3NCwgMC4wMDQ1NzcsIDAuMDA0NTc4LCAwLjAwNDU3OSwgMC4wMDQ1NzgiLCBcCi0gICAgICAgICAgIjAuMDA0NTczLCAwLjAwNDU4MSwgMC4wMDQ1OTMsIDAuMDA0NTk1LCAwLjAwNDU5NiwgMC4wMDQ1OTgsIDAuMDA0NTk3IiwgXAotICAgICAgICAgICIwLjAwNDU5NywgMC4wMDQ2MDUsIDAuMDA0NjE2LCAwLjAwNDYxOSwgMC4wMDQ2MiwgMC4wMDQ2MjEsIDAuMDA0NjIxIiwgXAotICAgICAgICAgICIwLjAwNDYzOSwgMC4wMDQ2NDcsIDAuMDA0NjU4LCAwLjAwNDY2LCAwLjAwNDY2MiwgMC4wMDQ2NjMsIDAuMDA0NjYzIiwgXAotICAgICAgICAgICIwLjAwNDcyMSwgMC4wMDQ3MywgMC4wMDQ3MzcsIDAuMDA0NzM5LCAwLjAwNDc0MSwgMC4wMDQ3NDIsIDAuMDA0NzQyIiwgXAotICAgICAgICAgICIwLjAwNDc5NywgMC4wMDQ4MDMsIDAuMDA0ODE1LCAwLjAwNDgxNywgMC4wMDQ4MTksIDAuMDA0ODE5LCAwLjAwNDgyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2MDY3LCAwLjAwNjA3LCAwLjAwNjA3MiwgMC4wMDYwNzMsIDAuMDA2MDczLCAwLjAwNjA3NCwgMC4wMDYwNzMiLCBcCi0gICAgICAgICAgIjAuMDA2MDY1LCAwLjAwNjA2NywgMC4wMDYwNywgMC4wMDYwNywgMC4wMDYwNywgMC4wMDYwNywgMC4wMDYwNzEiLCBcCi0gICAgICAgICAgIjAuMDA2MDk5LCAwLjAwNjEwMSwgMC4wMDYxMDQsIDAuMDA2MTA0LCAwLjAwNjEwNSwgMC4wMDYxMDUsIDAuMDA2MTA1IiwgXAotICAgICAgICAgICIwLjAwNjE0OSwgMC4wMDYxNTEsIDAuMDA2MTU0LCAwLjAwNjE1NCwgMC4wMDYxNTYsIDAuMDA2MTU2LCAwLjAwNjE1MyIsIFwKLSAgICAgICAgICAiMC4wMDYxOTQsIDAuMDA2MTk3LCAwLjAwNjIsIDAuMDA2MiwgMC4wMDYyLCAwLjAwNjIsIDAuMDA2MTk5IiwgXAotICAgICAgICAgICIwLjAwNjI5MSwgMC4wMDYyOTQsIDAuMDA2Mjk3LCAwLjAwNjI5NywgMC4wMDYyOTgsIDAuMDA2Mjk4LCAwLjAwNjI5OCIsIFwKLSAgICAgICAgICAiMC4wMDYzODgsIDAuMDA2MzkzLCAwLjAwNjM5NCwgMC4wMDYzOTQsIDAuMDA2Mzk0LCAwLjAwNjM5NSwgMC4wMDYzOTQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0MDUsIDAuMDA0MDU0LCAwLjAwNDA1OCwgMC4wMDQwNTksIDAuMDA0MDU5LCAwLjAwNDA1OSwgMC4wMDQwNTkiLCBcCi0gICAgICAgICAgIjAuMDA0MDQzLCAwLjAwNDA0NywgMC4wMDQwNTMsIDAuMDA0MDU0LCAwLjAwNDA1NSwgMC4wMDQwNTUsIDAuMDA0MDU1IiwgXAotICAgICAgICAgICIwLjAwNDA2NSwgMC4wMDQwNjgsIDAuMDA0MDczLCAwLjAwNDA3NCwgMC4wMDQwNzQsIDAuMDA0MDc2LCAwLjAwNDA3NSIsIFwKLSAgICAgICAgICAiMC4wMDQwOTksIDAuMDA0MTAyLCAwLjAwNDEwNywgMC4wMDQxMDgsIDAuMDA0MTA5LCAwLjAwNDExLCAwLjAwNDExIiwgXAotICAgICAgICAgICIwLjAwNDE1LCAwLjAwNDE1MiwgMC4wMDQxNTUsIDAuMDA0MTU2LCAwLjAwNDE1NywgMC4wMDQxNTcsIDAuMDA0MTU3IiwgXAotICAgICAgICAgICIwLjAwNDI0NywgMC4wMDQyNDYsIDAuMDA0MjQ2LCAwLjAwNDI0NiwgMC4wMDQyNDcsIDAuMDA0MjQ2LCAwLjAwNDI0NiIsIFwKLSAgICAgICAgICAiMC4wMDQzMzMsIDAuMDA0MzM0LCAwLjAwNDMyOSwgMC4wMDQzMjYsIDAuMDA0MzMsIDAuMDA0MzMsIDAuMDA0MzI2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyNTEzLCAwLjAwMjUxNCwgMC4wMDI1MTQsIDAuMDAyNTE0LCAwLjAwMjUxNCwgMC4wMDI1MTMsIDAuMDAyNTE0IiwgXAotICAgICAgICAgICIwLjAwMjQ4NCwgMC4wMDI0ODYsIDAuMDAyNDg5LCAwLjAwMjQ4OCwgMC4wMDI0ODgsIDAuMDAyNDg4LCAwLjAwMjQ4OCIsIFwKLSAgICAgICAgICAiMC4wMDI1MTMsIDAuMDAyNTE0LCAwLjAwMjUxNSwgMC4wMDI1MTQsIDAuMDAyNTE1LCAwLjAwMjUxNCwgMC4wMDI1MTQiLCBcCi0gICAgICAgICAgIjAuMDAyNTQ3LCAwLjAwMjU0NywgMC4wMDI1NDgsIDAuMDAyNTQ4LCAwLjAwMjU0NywgMC4wMDI1NDcsIDAuMDAyNTQ3IiwgXAotICAgICAgICAgICIwLjAwMjYxNCwgMC4wMDI2MTEsIDAuMDAyNjA2LCAwLjAwMjYwNSwgMC4wMDI2MDQsIDAuMDAyNjAzLCAwLjAwMjYwMiIsIFwKLSAgICAgICAgICAiMC4wMDI2ODcsIDAuMDAyNjgzLCAwLjAwMjY3NiwgMC4wMDI2NzQsIDAuMDAyNjczLCAwLjAwMjY3MSwgMC4wMDI2NzEiLCBcCi0gICAgICAgICAgIjAuMDAyNzg2LCAwLjAwMjc4LCAwLjAwMjc2OSwgMC4wMDI3NjUsIDAuMDAyNzYzLCAwLjAwMjc2MiwgMC4wMDI3NjEiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFFOKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMzM2MTM5OwotICAgIGZ1bmN0aW9uIDogIk41IjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJEIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTE2NzksIDAuMTMxMDksIDAuMjM3MTE1LCAwLjMzMDQ1OCwgMC40NTQ4NTMsIDAuNzAzNzY0LCAwLjg1OTIzNyIsIFwKLSAgICAgICAgICAiMC4xMTczNSwgMC4xMzY3NjUsIDAuMjQyOCwgMC4zMzYxMTMsIDAuNDYwNDIxLCAwLjcwOTI2MywgMC44NjQ0NzgiLCBcCi0gICAgICAgICAgIjAuMTIzNTMxLCAwLjE0Mjk1LCAwLjI0ODk4NiwgMC4zNDIyOSwgMC40NjY1NTcsIDAuNzE1MjA1LCAwLjg3MDY2NyIsIFwKLSAgICAgICAgICAiMC4xMjg3ODUsIDAuMTQ4MjEsIDAuMjU0MjM2LCAwLjM0NzUzOSwgMC40NzE5OTYsIDAuNzIwODg5LCAwLjg3NjMyNCIsIFwKLSAgICAgICAgICAiMC4xMzMxMzIsIDAuMTUyNTU2LCAwLjI1ODU3OCwgMC4zNTE4ODksIDAuNDc2Mzc4LCAwLjcyNTA2LCAwLjg4MDcyMSIsIFwKLSAgICAgICAgICAiMC4xMzg5OTQsIDAuMTU4NDAzLCAwLjI2NDQ0OCwgMC4zNTc3NTMsIDAuNDgyMjM3LCAwLjczMDg4OSwgMC44ODY0MDEiLCBcCi0gICAgICAgICAgIjAuMTQzNDYyLCAwLjE2Mjg5NiwgMC4yNjg5MjUsIDAuMzYyMjM3LCAwLjQ4NjU5OCwgMC43MzUzNTgsIDAuODkwODI0Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3OTA5NywgMC4xMTYzNjMsIDAuMzM1MzI2LCAwLjUzMjY1MywgMC43OTU5MTIsIDEuMzIwNzMsIDEuNjQ5NTgiLCBcCi0gICAgICAgICAgIjAuMDc5MDQ0LCAwLjExNjM2NiwgMC4zMzU3MTIsIDAuNTMyNTg5LCAwLjc5NDE3MywgMS4zMjA3NCwgMS42NDg1NCIsIFwKLSAgICAgICAgICAiMC4wNzkwNTcsIDAuMTE2Mzc0LCAwLjMzNTA0MywgMC41MzE3MzUsIDAuNzk0NTk5LCAxLjMxOTMzLCAxLjY0NzkiLCBcCi0gICAgICAgICAgIjAuMDc5MTMsIDAuMTE2Mzg3LCAwLjMzNTI5NiwgMC41MzI2MDMsIDAuNzk0NTQ2LCAxLjMyMDY5LCAxLjY1MjAyIiwgXAotICAgICAgICAgICIwLjA3OTE2MiwgMC4xMTY0NDMsIDAuMzM1MzUxLCAwLjUzMjYwMywgMC43OTQ1MjUsIDEuMzIyNTMsIDEuNjQ5MTEiLCBcCi0gICAgICAgICAgIjAuMDc5MTUxLCAwLjExNjM5MiwgMC4zMzUzMzIsIDAuNTMyNTMyLCAwLjc5NDU1MywgMS4zMjExNCwgMS42NTAwMiIsIFwKLSAgICAgICAgICAiMC4wNzkzOCwgMC4xMTY0MTEsIDAuMzM1NDQxLCAwLjUzMTYzOSwgMC43OTU0NDMsIDEuMzIyMywgMS42NTAyMyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTI2ODksIDAuMTEwOTg4LCAwLjIxMzU4OCwgMC4zMDQxMDUsIDAuNDI0Nzc5LCAwLjY2NTg1MSwgMC44MTY2MTciLCBcCi0gICAgICAgICAgIjAuMDk4NzYzLCAwLjExNzA2NSwgMC4yMTk2ODcsIDAuMzEwMjA2LCAwLjQzMDc1OSwgMC42NzE5NDksIDAuODIyOTA3IiwgXAotICAgICAgICAgICIwLjEwNTY5NSwgMC4xMjQwMDIsIDAuMjI2NjIyLCAwLjMxNzE0NiwgMC40Mzc4NSwgMC42NzkwODIsIDAuODI5NjU5IiwgXAotICAgICAgICAgICIwLjExMTU2OSwgMC4xMjk4NzIsIDAuMjMyNTA2LCAwLjMyMzAzLCAwLjQ0MzY1MSwgMC42ODQ5MzgsIDAuODM1NzM4IiwgXAotICAgICAgICAgICIwLjExNjU1MywgMC4xMzQ4NTIsIDAuMjM3NDc0LCAwLjMyNzk4NiwgMC40NDg2MTUsIDAuNjg5OTI2LCAwLjg0MDc0MSIsIFwKLSAgICAgICAgICAiMC4xMjMzMjgsIDAuMTQxNjI5LCAwLjI0NDI5NywgMC4zMzQ3NTQsIDAuNDU1Mzc2LCAwLjY5NjY3LCAwLjg0NzQ1MyIsIFwKLSAgICAgICAgICAiMC4xMjgzNzYsIDAuMTQ2Njc0LCAwLjI0OTI5NiwgMC4zMzk4MTEsIDAuNDYwNDMyLCAwLjcwMTY5NSwgMC44NTI0NjEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY5OTkzLCAwLjEwNTkyNiwgMC4zMTUzMzMsIDAuNTAwMjQ4LCAwLjc0ODQ4LCAxLjI0Mzk5LCAxLjU1NjI3IiwgXAotICAgICAgICAgICIwLjA3MDEwNCwgMC4xMDYwNzYsIDAuMzE1NDg4LCAwLjUwMTg0LCAwLjc1MDAyNywgMS4yNDYxMiwgMS41NTgzMyIsIFwKLSAgICAgICAgICAiMC4wNzAxMDgsIDAuMTA2MDY5LCAwLjMxNTQzNCwgMC41MDE4MzMsIDAuNzQ4ODg3LCAxLjI0NzU3LCAxLjU1MzY0IiwgXAotICAgICAgICAgICIwLjA3MDE2MSwgMC4xMDYxMDYsIDAuMzE1NDg4LCAwLjUwMDIxOCwgMC43NTAzMjUsIDEuMjQ0MTEsIDEuNTU4MjUiLCBcCi0gICAgICAgICAgIjAuMDcwMTkzLCAwLjEwNjExNywgMC4zMTU0NDksIDAuNTAxMTI2LCAwLjc1MDE2NCwgMS4yNDczOSwgMS41NTgyMSIsIFwKLSAgICAgICAgICAiMC4wNzAyMTksIDAuMTA2MDYzLCAwLjMxNDk3NiwgMC41MDE1OTUsIDAuNzQ5MjU3LCAxLjI0NjAzLCAxLjU1NjM4IiwgXAotICAgICAgICAgICIwLjA3MDE4NCwgMC4xMDYwMzUsIDAuMzE1MzM2LCAwLjUwMTYwNywgMC43NDkzOTksIDEuMjQ3MTksIDEuNTU3ODEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBub25fdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJpc2luZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMzYzNTUsIDAuMTU1Nzc1LCAwLjI2MTgxNSwgMC4zNTUxMjQsIDAuNDc5NjE4LCAwLjcyODMwMywgMC44ODM4OTkiLCBcCi0gICAgICAgICAgIjAuMTQzODE5LCAwLjE2MzIzOSwgMC4yNjkyOCwgMC4zNjI1ODYsIDAuNDg3MDg1LCAwLjczNTk4LCAwLjg5MTM3NSIsIFwKLSAgICAgICAgICAiMC4xNTI5OCwgMC4xNzI0MDgsIDAuMjc4NDQsIDAuMzcxNzUsIDAuNDk2MjU3LCAwLjc0NDkyNCwgMC45MDA0MjMiLCBcCi0gICAgICAgICAgIjAuMTYwOTQxLCAwLjE4MDM2MywgMC4yODYzOSwgMC4zNzk3MTQsIDAuNTA0MjA4LCAwLjc1MjkxOCwgMC45MDg0OTUiLCBcCi0gICAgICAgICAgIjAuMTY3MzIyLCAwLjE4Njc1NSwgMC4yOTI3ODIsIDAuMzg2MTU3LCAwLjUxMDU5NiwgMC43NTkyODcsIDAuOTE0NzYiLCBcCi0gICAgICAgICAgIjAuMTc2MjMzLCAwLjE5NTY1MiwgMC4zMDE2OTksIDAuMzk0OTk5LCAwLjUxOTU2OSwgMC43NjgzMiwgMC45MjM3NTQiLCBcCi0gICAgICAgICAgIjAuMTgyOTkyLCAwLjIwMjQzMywgMC4zMDg0NjEsIDAuNDAxNzAzLCAwLjUyNjE5MywgMC43NzUwODgsIDAuOTMwNTIiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc5MzU2LCAwLjExNjUzOCwgMC4zMzU3NSwgMC41MzI2MTksIDAuNzk0NDkxLCAxLjMyMTM1LCAxLjY1MjEiLCBcCi0gICAgICAgICAgIjAuMDc5MzU4LCAwLjExNjUyOSwgMC4zMzU3MzMsIDAuNTMyNjIsIDAuNzk0NDYyLCAxLjMyMDgzLCAxLjY0OTU2IiwgXAotICAgICAgICAgICIwLjA3OTM1NywgMC4xMTY0OTgsIDAuMzM1MjE0LCAwLjUzMjYyLCAwLjc5NDQ0LCAxLjMyMTI4LCAxLjY1MDY3IiwgXAotICAgICAgICAgICIwLjA3OTM2MiwgMC4xMTY1NCwgMC4zMzU2MjMsIDAuNTMyNjE3LCAwLjc5NDQ4OSwgMS4zMjI2NiwgMS42NTIwNiIsIFwKLSAgICAgICAgICAiMC4wNzkzNDEsIDAuMTE2NDUsIDAuMzM1MzA5LCAwLjUzMTcxMSwgMC43OTQ0ODgsIDEuMzIxNDUsIDEuNjUwNDUiLCBcCi0gICAgICAgICAgIjAuMDc5MzQ5LCAwLjExNjUyNywgMC4zMzUyMiwgMC41MzI2MSwgMC43OTQ2MzYsIDEuMzIwNzMsIDEuNjUyMDQiLCBcCi0gICAgICAgICAgIjAuMDc5MzE4LCAwLjExNjU1MiwgMC4zMzU2NzgsIDAuNTMyNTQ1LCAwLjc5NDY5NywgMS4zMjA3MywgMS42NTE4NyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMjY0MiwgMC4xNDQ3MTksIDAuMjQ3MzQ5LCAwLjMzNzkyOSwgMC40NTg0ODcsIDAuNjk5NzQzLCAwLjg1MDU2MSIsIFwKLSAgICAgICAgICAiMC4xMzM5MjksIDAuMTUyMjI4LCAwLjI1NDg1LCAwLjM0NTM3NSwgMC40NjYwNzMsIDAuNzA3Mjk4LCAwLjg1ODEzNSIsIFwKLSAgICAgICAgICAiMC4xNDMwNTEsIDAuMTYxMzU1LCAwLjI2Mzk4NiwgMC4zNTQ1NSwgMC40NzUyMDksIDAuNzE2NDIxLCAwLjg2NzE5OCIsIFwKLSAgICAgICAgICAiMC4xNTA1OSwgMC4xNjg4OSwgMC4yNzE1MjIsIDAuMzYyMDU0LCAwLjQ4MjcxOSwgMC43MjM5NSwgMC44NzQ3NDMiLCBcCi0gICAgICAgICAgIjAuMTU2NTc0LCAwLjE3NDg3NiwgMC4yNzc1MDYsIDAuMzY4MDY4LCAwLjQ4ODY4OSwgMC43Mjk5NTEsIDAuODgwNzI2IiwgXAotICAgICAgICAgICIwLjE2NDg0NiwgMC4xODMxNDEsIDAuMjg1NzY3LCAwLjM3NjI4MywgMC40OTY5NDIsIDAuNzM4MjQ0LCAwLjg4ODk4OSIsIFwKLSAgICAgICAgICAiMC4xNzA5OTksIDAuMTg5MzAyLCAwLjI5MTkyMiwgMC4zODI0ODMsIDAuNTAzMDksIDAuNzQ0MzYzLCAwLjg5NTE5NiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzAxNDMsIDAuMTA1OTIyLCAwLjMxNTQ3OSwgMC41MDA4NzcsIDAuNzUwMjk0LCAxLjI0NzM5LCAxLjU1ODIxIiwgXAotICAgICAgICAgICIwLjA3MDExOSwgMC4xMDU5MjcsIDAuMzE1NDYsIDAuNTAxODMxLCAwLjc0ODg5LCAxLjI0NzYsIDEuNTU4NDkiLCBcCi0gICAgICAgICAgIjAuMDcwMTQsIDAuMTA1OTIyLCAwLjMxNTQ4MSwgMC41MDA5NywgMC43NDg4MDIsIDEuMjQ2MTIsIDEuNTU4MTgiLCBcCi0gICAgICAgICAgIjAuMDcwMTQxLCAwLjEwNjEwMiwgMC4zMTU0NzYsIDAuNTAwODA1LCAwLjc0ODk4OCwgMS4yNDc1NywgMS41NTgyNCIsIFwKLSAgICAgICAgICAiMC4wNzAxMzksIDAuMTA1OTE4LCAwLjMxNTQ2NSwgMC41MDA5OCwgMC43NDkxOTIsIDEuMjQ2MDgsIDEuNTU4MjIiLCBcCi0gICAgICAgICAgIjAuMDcwMTQsIDAuMTA2MDc5LCAwLjMxNTQ0MSwgMC41MDE4MDgsIDAuNzUwMzUxLCAxLjI0NzY2LCAxLjU1ODE2IiwgXAotICAgICAgICAgICIwLjA3MDEwOCwgMC4xMDYxMTIsIDAuMzE0ODgsIDAuNTAxMDA0LCAwLjc0ODkyMSwgMS4yNDczNywgMS41NTgyMiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcmlzaW5nX2VkZ2U7Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEyODI5NCwgMC4xNDY1OTMsIDAuMjQ5MjIxLCAwLjMzOTc0LCAwLjQ2MDM4NCwgMC43MDE2MzcsIDAuODUyNDI0IiwgXAotICAgICAgICAgICIwLjEzNDQ5LCAwLjE1Mjc5LCAwLjI1NTQxNCwgMC4zNDU5MzYsIDAuNDY2NjM4LCAwLjcwNzg2OCwgMC44NTg2MjUiLCBcCi0gICAgICAgICAgIjAuMTQxNjA4LCAwLjE1OTkwOCwgMC4yNjI1MzQsIDAuMzUzMDUzLCAwLjQ3MzY4NSwgMC43MTQ5NTYsIDAuODY1NzQ0IiwgXAotICAgICAgICAgICIwLjE0NzQzMSwgMC4xNjU3MzEsIDAuMjY4MzU4LCAwLjM1ODg3NiwgMC40Nzk1MTQsIDAuNzIwNzkzLCAwLjg3MTU2OSIsIFwKLSAgICAgICAgICAiMC4xNTIzOCwgMC4xNzA2ODEsIDAuMjczMzA5LCAwLjM2MzgzMSwgMC40ODQ0NTQsIDAuNzI1NzA4LCAwLjg3NjUyMiIsIFwKLSAgICAgICAgICAiMC4xNTkxMDgsIDAuMTc3NDA5LCAwLjI4MDAyNCwgMC4zNzA1NDgsIDAuNDkxMjQzLCAwLjczMjQ3MiwgMC44ODMyMDkiLCBcCi0gICAgICAgICAgIjAuMTY0MjMyLCAwLjE4MjU0MSwgMC4yODUxNzYsIDAuMzc1NjYyLCAwLjQ5NjMzMSwgMC43Mzc1NTEsIDAuODg4Mzg3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3MDE0NCwgMC4xMDU5MjMsIDAuMzE1NDcxLCAwLjUwMTgzMSwgMC43NTAzOTIsIDEuMjQ3NTIsIDEuNTU4MTciLCBcCi0gICAgICAgICAgIjAuMDcwMTM5LCAwLjEwNTkxLCAwLjMxNTQyOCwgMC41MDE4MjEsIDAuNzQ4ODg3LCAxLjI0NzUyLCAxLjU1NjQ2IiwgXAotICAgICAgICAgICIwLjA3MDEzOCwgMC4xMDU5MzYsIDAuMzE1NDUyLCAwLjUwMTgxNSwgMC43NTAzMTMsIDEuMjQ3NTEsIDEuNTU4MTgiLCBcCi0gICAgICAgICAgIjAuMDcwMTM4LCAwLjEwNTkzNiwgMC4zMTU0NTIsIDAuNTAxODE0LCAwLjc1MDMyMywgMS4yNDc1MywgMS41NTgxOCIsIFwKLSAgICAgICAgICAiMC4wNzAxMzgsIDAuMTA1OTE5LCAwLjMxNTQ2NCwgMC41MDE4MzIsIDAuNzUwMzA1LCAxLjI0NzQ3LCAxLjU1ODIiLCBcCi0gICAgICAgICAgIjAuMDcwMTM3LCAwLjEwNjA4OCwgMC4zMTU0MDYsIDAuNTAxODE3LCAwLjc0ODkyOSwgMS4yNDc0LCAxLjU1Nzk5IiwgXAotICAgICAgICAgICIwLjA3MDEwNiwgMC4xMDYxMDgsIDAuMzE1NTUxLCAwLjUwMTcwOCwgMC43NDkxNzYsIDEuMjQ3MzIsIDEuNTU4MTQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUk4iOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGZhbGxpbmdfZWRnZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTM4OTk4LCAwLjE1ODQxMSwgMC4yNjQ0NTUsIDAuMzU3NzU2LCAwLjQ4MjE1NCwgMC43MzA5MjYsIDAuODg2MTA5IiwgXAotICAgICAgICAgICIwLjE0NjkwNCwgMC4xNjYzMTgsIDAuMjcyMzUyLCAwLjM2NTY2MywgMC40OTAwNjIsIDAuNzM4NzM5LCAwLjg5NDA2NSIsIFwKLSAgICAgICAgICAiMC4xNTUzOTQsIDAuMTc0ODIsIDAuMjgwODQ2LCAwLjM3NDE2LCAwLjQ5ODU1NSwgMC43NDcxNzQsIDAuOTAyNzA4IiwgXAotICAgICAgICAgICIwLjE2MjM4NCwgMC4xODE4MDIsIDAuMjg3ODM5LCAwLjM4MTE0NywgMC41MDU1NDUsIDAuNzU0Mjg5LCAwLjkwOTc0MSIsIFwKLSAgICAgICAgICAiMC4xNjg3MTksIDAuMTg4MTM4LCAwLjI5NDE4MywgMC4zODc0ODYsIDAuNTExODkzLCAwLjc2MDYyMSwgMC45MTU4ODUiLCBcCi0gICAgICAgICAgIjAuMTc3NDI0LCAwLjE5Njg1NCwgMC4zMDI4ODksIDAuMzk2MTkzLCAwLjUyMDQ4MiwgMC43NjkxNzUsIDAuOTI0NTYxIiwgXAotICAgICAgICAgICIwLjE4NDAxNSwgMC4yMDM0MzgsIDAuMzA5NDk1LCAwLjQwMjc4NSwgMC41MjcxNjYsIDAuNzc1OTExLCAwLjkzMTM3NCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzkwMTcsIDAuMTE2MzU3LCAwLjMzNTcwNSwgMC41MzI0MzcsIDAuNzk0MzEzLCAxLjMyMjUyLCAxLjY0ODY0IiwgXAotICAgICAgICAgICIwLjA3OTAxOCwgMC4xMTYzNTcsIDAuMzM1NzIxLCAwLjUzMjQzNiwgMC43OTQxNzcsIDEuMzIyMjksIDEuNjQ5NTkiLCBcCi0gICAgICAgICAgIjAuMDc5MDY3LCAwLjExNjM1LCAwLjMzNTM3OSwgMC41MzI0NjEsIDAuNzk1NTcsIDEuMzIyMzQsIDEuNjUxNjMiLCBcCi0gICAgICAgICAgIjAuMDc5MDYyLCAwLjExNjM1OCwgMC4zMzUzMDksIDAuNTMyNDM5LCAwLjc5NTU4MSwgMS4zMjIzOSwgMS42NTE2MSIsIFwKLSAgICAgICAgICAiMC4wNzkxMjksIDAuMTE2Mzg2LCAwLjMzNTIzLCAwLjUzMjQzNiwgMC43OTQzNDgsIDEuMzIyMTIsIDEuNjUxODIiLCBcCi0gICAgICAgICAgIjAuMDc5MTM5LCAwLjExNjQxNCwgMC4zMzU2MjQsIDAuNTMxNzYyLCAwLjc5NDc4NywgMS4zMjEzNywgMS42NTE1OCIsIFwKLSAgICAgICAgICAiMC4wNzkyMjgsIDAuMTE2MzgzLCAwLjMzNTczMiwgMC41MzI0MDIsIDAuNzk1NDk3LCAxLjMyMjI5LCAxLjY1MTQ3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiBjbGVhcjsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDgyMDAxLCAwLjEwMTQwNSwgMC4yMDc0MTYsIDAuMzAwNjkzLCAwLjQyNTE5NywgMC42NzM5MzcsIDAuODI5MjY2IiwgXAotICAgICAgICAgICIwLjA4ODA0NCwgMC4xMDc0NTMsIDAuMjEzNDY2LCAwLjMwNjc2NiwgMC40MzEyNDUsIDAuNjgwMTQxLCAwLjgzNTM0OSIsIFwKLSAgICAgICAgICAiMC4wOTU1NDQsIDAuMTE0OTUxLCAwLjIyMDk1NywgMC4zMTQyNTcsIDAuNDM4NzM0LCAwLjY4NzU3NSwgMC44NDI2MDMiLCBcCi0gICAgICAgICAgIjAuMTAyNjA0LCAwLjEyMjAzOSwgMC4yMjgwNDIsIDAuMzIxMzk3LCAwLjQ0NTgyMiwgMC42OTQ2NCwgMC44NTA2IiwgXAotICAgICAgICAgICIwLjEwODkyNSwgMC4xMjgzODUsIDAuMjM0MzcyLCAwLjMyNzY4MywgMC40NTIxOTMsIDAuNzAxMjI2LCAwLjg1NjU5MSIsIFwKLSAgICAgICAgICAiMC4xMTc4MjksIDAuMTM3NDU3LCAwLjI0MzUwNCwgMC4zMzY3OTMsIDAuNDYxMjE4LCAwLjcxMDQ3OCwgMC44NjU4NTUiLCBcCi0gICAgICAgICAgIjAuMTI0NTgsIDAuMTQ0MjkxLCAwLjI1MDQzNSwgMC4zNDM2OTcsIDAuNDY4MTQyLCAwLjcxNzE0NywgMC44NzI4MDgiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc4OTI1LCAwLjExNjMxNSwgMC4zMzU2OTQsIDAuNTMyNTk3LCAwLjc5NDYyNiwgMS4zMjA0OCwgMS42NTE0MiIsIFwKLSAgICAgICAgICAiMC4wNzg5NjMsIDAuMTE2Mjc4LCAwLjMzNTY4NywgMC41MzI1ODcsIDAuNzk0OTE0LCAxLjMyMTM1LCAxLjY1MDQxIiwgXAotICAgICAgICAgICIwLjA3OTA0MiwgMC4xMTYzNjYsIDAuMzM1NjY2LCAwLjUzMjYsIDAuNzk0NTQzLCAxLjMyMDcyLCAxLjY0OTYzIiwgXAotICAgICAgICAgICIwLjA3OTU0OCwgMC4xMTY2MTMsIDAuMzM1NzMxLCAwLjUzMjU3OSwgMC43OTQ0NjcsIDEuMzIyMzUsIDEuNjUwNzEiLCBcCi0gICAgICAgICAgIjAuMDgwMzA1LCAwLjExNzI2MSwgMC4zMzU4MzgsIDAuNTMyNjIzLCAwLjc5NDc1LCAxLjMyMTM1LCAxLjY1MDEyIiwgXAotICAgICAgICAgICIwLjA4MTY5MiwgMC4xMTgyMTYsIDAuMzM2MTE2LCAwLjUzMjc0MywgMC43OTUwMzQsIDEuMzIxMDksIDEuNjUxMzUiLCBcCi0gICAgICAgICAgIjAuMDgyNzcsIDAuMTE5MjU4LCAwLjMzNjQ1MywgMC41MzIyNjgsIDAuNzk0ODI5LCAxLjMyMDksIDEuNjUwNjEiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY1MDc5LCAwLjA4MzQxMSwgMC4xODYwMDUsIDAuMjc2NDY2LCAwLjM5NzEyOCwgMC42MzgzNDksIDAuNzg5MTE5IiwgXAotICAgICAgICAgICIwLjA3MzE2MSwgMC4wOTE1LCAwLjE5NDEwNSwgMC4yODQ1NzQsIDAuNDA1MTk5LCAwLjY0NjQ2NCwgMC43OTcyNDciLCBcCi0gICAgICAgICAgIjAuMDgzMDEsIDAuMTAxMzM2LCAwLjIwMzkyOCwgMC4yOTQzOTEsIDAuNDE1MDIyLCAwLjY1NjI4NiwgMC44MDcwNTUiLCBcCi0gICAgICAgICAgIjAuMDkxMTksIDAuMTA5NTE3LCAwLjIxMjA4OCwgMC4zMDI1NjIsIDAuNDIzMTcxLCAwLjY2NDQ1OCwgMC44MTUyMjkiLCBcCi0gICAgICAgICAgIjAuMDk3OTIzLCAwLjExNjI1LCAwLjIxODc4NSwgMC4zMDkyNSwgMC40Mjk4ODcsIDAuNjcxMTM2LCAwLjgyMTg5OCIsIFwKLSAgICAgICAgICAiMC4xMDY2OTYsIDAuMTI1MDQ2LCAwLjIyNzU1NiwgMC4zMTgwMjQsIDAuNDM4NjczLCAwLjY3OTg5NSwgMC44MzA2NjgiLCBcCi0gICAgICAgICAgIjAuMTEzMjE1LCAwLjEzMTU3NiwgMC4yMzQwOTQsIDAuMzI0NTY1LCAwLjQ0NTIyMSwgMC42ODY0NDYsIDAuODM3MzE4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3MDI1NywgMC4xMDYxNTksIDAuMzE1NDkxLCAwLjUwMTU3OSwgMC43NDk5MDgsIDEuMjQ3MjMsIDEuNTU3NjEiLCBcCi0gICAgICAgICAgIjAuMDcwMjYxLCAwLjEwNjE1NiwgMC4zMTU1MDIsIDAuNTAxNTI1LCAwLjc1MDMxMywgMS4yNDcyMiwgMS41NTc4NiIsIFwKLSAgICAgICAgICAiMC4wNzA0NDIsIDAuMTA2MjE4LCAwLjMxNDY5MywgMC41MDExNzMsIDAuNzQ5Nzk5LCAxLjI0NzE4LCAxLjU1Nzk0IiwgXAotICAgICAgICAgICIwLjA3MTE5OCwgMC4xMDY3NjQsIDAuMzE1NjE1LCAwLjUwMTYyOSwgMC43NTAzNywgMS4yNDcyMywgMS41NTg1MiIsIFwKLSAgICAgICAgICAiMC4wNzIwOTYsIDAuMTA3MzgxLCAwLjMxNTY0NSwgMC41MDE3MTIsIDAuNzQ5ODk4LCAxLjI0NzE1LCAxLjU1OCIsIFwKLSAgICAgICAgICAiMC4wNzM1OTYsIDAuMTA4MzUzLCAwLjMxNTgyNCwgMC41MDE2OTQsIDAuNzQ5NDY4LCAxLjI0NzI0LCAxLjU1NzkyIiwgXAotICAgICAgICAgICIwLjA3NDY3MiwgMC4xMDk0NjIsIDAuMzE1NzU5LCAwLjUwMTY4OCwgMC43NTAwOTEsIDEuMjQ3MTksIDEuNTU4MiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkQiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDAxNCwgMC4wMDQwMTYsIDAuMDA0MDE5LCAwLjAwNDAxOSwgMC4wMDQwMTksIDAuMDA0MDIsIDAuMDA0MDE5IiwgXAotICAgICAgICAgICIwLjAwNDAwNCwgMC4wMDQwMDYsIDAuMDA0MDA5LCAwLjAwNDAxLCAwLjAwNDAxMSwgMC4wMDQwMTEsIDAuMDA0MDExIiwgXAotICAgICAgICAgICIwLjAwNDAwOSwgMC4wMDQwMTIsIDAuMDA0MDE2LCAwLjAwNDAxNiwgMC4wMDQwMTYsIDAuMDA0MDE4LCAwLjAwNDAxOCIsIFwKLSAgICAgICAgICAiMC4wMDQwMywgMC4wMDQwMzIsIDAuMDA0MDM2LCAwLjAwNDAzNywgMC4wMDQwMzcsIDAuMDA0MDM3LCAwLjAwNDAzNyIsIFwKLSAgICAgICAgICAiMC4wMDQwNywgMC4wMDQwNzYsIDAuMDA0MDc5LCAwLjAwNDA4LCAwLjAwNDA4LCAwLjAwNDA4MSwgMC4wMDQwODEiLCBcCi0gICAgICAgICAgIjAuMDA0MTMsIDAuMDA0MTMxLCAwLjAwNDEzNCwgMC4wMDQxMzUsIDAuMDA0MTM1LCAwLjAwNDEzNSwgMC4wMDQxMzUiLCBcCi0gICAgICAgICAgIjAuMDA0MTk3LCAwLjAwNDE5OSwgMC4wMDQyMDEsIDAuMDA0MjAxLCAwLjAwNDIwMiwgMC4wMDQyMDIsIDAuMDA0MjAyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzNTc1LCAwLjAwMzU4MywgMC4wMDM1OTQsIDAuMDAzNTk2LCAwLjAwMzU5MywgMC4wMDM1OTUsIDAuMDAzNTk1IiwgXAotICAgICAgICAgICIwLjAwMzU1OSwgMC4wMDM1NjcsIDAuMDAzNTc4LCAwLjAwMzU4LCAwLjAwMzU4MSwgMC4wMDM1ODIsIDAuMDAzNTgyIiwgXAotICAgICAgICAgICIwLjAwMzU2NCwgMC4wMDM1NzIsIDAuMDAzNTg0LCAwLjAwMzU4NiwgMC4wMDM1ODgsIDAuMDAzNTkzLCAwLjAwMzU4OSIsIFwKLSAgICAgICAgICAiMC4wMDM1OTUsIDAuMDAzNjAyLCAwLjAwMzYxNCwgMC4wMDM2MTcsIDAuMDAzNjE4LCAwLjAwMzYxOSwgMC4wMDM2MiIsIFwKLSAgICAgICAgICAiMC4wMDM2MzIsIDAuMDAzNjM5LCAwLjAwMzY1LCAwLjAwMzY1MywgMC4wMDM2NTQsIDAuMDAzNjU1LCAwLjAwMzY1NiIsIFwKLSAgICAgICAgICAiMC4wMDM2OTUsIDAuMDAzNzA0LCAwLjAwMzcxNiwgMC4wMDM3MTksIDAuMDAzNzE4LCAwLjAwMzcxOSwgMC4wMDM3MTkiLCBcCi0gICAgICAgICAgIjAuMDAzNzcyLCAwLjAwMzc3OSwgMC4wMDM3OTEsIDAuMDAzNzkzLCAwLjAwMzc5NiwgMC4wMDM3OTcsIDAuMDAzNzk3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1MDIyLCAwLjAwNTAyNSwgMC4wMDUwMjcsIDAuMDA1MDI4LCAwLjAwNTAyOCwgMC4wMDUwMjgsIDAuMDA1MDI4IiwgXAotICAgICAgICAgICIwLjAwNTAxNiwgMC4wMDUwMTksIDAuMDA1MDIxLCAwLjAwNTAyMiwgMC4wMDUwMjIsIDAuMDA1MDIxLCAwLjAwNTAyMiIsIFwKLSAgICAgICAgICAiMC4wMDUwNTMsIDAuMDA1MDU1LCAwLjAwNTA1NywgMC4wMDUwNTksIDAuMDA1MDU5LCAwLjAwNTA1OSwgMC4wMDUwNTgiLCBcCi0gICAgICAgICAgIjAuMDA1MTAxLCAwLjAwNTEwMywgMC4wMDUxMDYsIDAuMDA1MTA2LCAwLjAwNTEwNiwgMC4wMDUxMDgsIDAuMDA1MTA3IiwgXAotICAgICAgICAgICIwLjAwNTE2MywgMC4wMDUxNjYsIDAuMDA1MTcsIDAuMDA1MTcsIDAuMDA1MTcsIDAuMDA1MTcxLCAwLjAwNTE3MSIsIFwKLSAgICAgICAgICAiMC4wMDUyNTYsIDAuMDA1MjU4LCAwLjAwNTI2MiwgMC4wMDUyNjIsIDAuMDA1MjYyLCAwLjAwNTI2MiwgMC4wMDUyNjIiLCBcCi0gICAgICAgICAgIjAuMDA1MzQ4LCAwLjAwNTM1MSwgMC4wMDUzNTQsIDAuMDA1MzYyLCAwLjAwNTM2MiwgMC4wMDUzNTQsIDAuMDA1MzU0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0NzIsIDAuMDA0NzI3LCAwLjAwNDczOCwgMC4wMDQ3NCwgMC4wMDQ3NDEsIDAuMDA0NzQyLCAwLjAwNDc0MiIsIFwKLSAgICAgICAgICAiMC4wMDQ3MTQsIDAuMDA0NzIyLCAwLjAwNDczMywgMC4wMDQ3MzUsIDAuMDA0NzM3LCAwLjAwNDczOCwgMC4wMDQ3MzgiLCBcCi0gICAgICAgICAgIjAuMDA0NzUzLCAwLjAwNDc2LCAwLjAwNDc3MSwgMC4wMDQ3NzQsIDAuMDA0Nzc1LCAwLjAwNDc3NiwgMC4wMDQ3NzYiLCBcCi0gICAgICAgICAgIjAuMDA0Nzk2LCAwLjAwNDgwNCwgMC4wMDQ4MTUsIDAuMDA0ODE3LCAwLjAwNDgxOCwgMC4wMDQ4MiwgMC4wMDQ4MjEiLCBcCi0gICAgICAgICAgIjAuMDA0ODU0LCAwLjAwNDg2MiwgMC4wMDQ4NzMsIDAuMDA0ODc1LCAwLjAwNDg3NywgMC4wMDQ4NzgsIDAuMDA0ODc4IiwgXAotICAgICAgICAgICIwLjAwNDk0NywgMC4wMDQ5NTMsIDAuMDA0OTY1LCAwLjAwNDk2OCwgMC4wMDQ5NjksIDAuMDA0OTcsIDAuMDA0OTcxIiwgXAotICAgICAgICAgICIwLjAwNTAzOCwgMC4wMDUwNDUsIDAuMDA1MDU2LCAwLjAwNTA1OCwgMC4wMDUwNTksIDAuMDA1MDYsIDAuMDA1MDYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2MDY3LCAwLjAwNjA3LCAwLjAwNjA3MiwgMC4wMDYwNzMsIDAuMDA2MDczLCAwLjAwNjA3NCwgMC4wMDYwNzMiLCBcCi0gICAgICAgICAgIjAuMDA2MDY1LCAwLjAwNjA2NywgMC4wMDYwNywgMC4wMDYwNywgMC4wMDYwNywgMC4wMDYwNywgMC4wMDYwNzEiLCBcCi0gICAgICAgICAgIjAuMDA2MDk5LCAwLjAwNjEwMSwgMC4wMDYxMDQsIDAuMDA2MTA0LCAwLjAwNjEwNSwgMC4wMDYxMDUsIDAuMDA2MTA1IiwgXAotICAgICAgICAgICIwLjAwNjE0OSwgMC4wMDYxNTEsIDAuMDA2MTU0LCAwLjAwNjE1NCwgMC4wMDYxNTYsIDAuMDA2MTU2LCAwLjAwNjE1MyIsIFwKLSAgICAgICAgICAiMC4wMDYxOTQsIDAuMDA2MTk3LCAwLjAwNjIsIDAuMDA2MiwgMC4wMDYyLCAwLjAwNjIsIDAuMDA2MTk5IiwgXAotICAgICAgICAgICIwLjAwNjI5MSwgMC4wMDYyOTQsIDAuMDA2Mjk3LCAwLjAwNjI5NywgMC4wMDYyOTgsIDAuMDA2Mjk4LCAwLjAwNjI5OCIsIFwKLSAgICAgICAgICAiMC4wMDYzODgsIDAuMDA2MzkzLCAwLjAwNjM5NCwgMC4wMDYzOTQsIDAuMDA2Mzk0LCAwLjAwNjM5NSwgMC4wMDYzOTQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQ1NzgsIDAuMDA0NTg1LCAwLjAwNDU5NiwgMC4wMDQ1OTgsIDAuMDA0NTk5LCAwLjAwNDYsIDAuMDA0NjAxIiwgXAotICAgICAgICAgICIwLjAwNDU1NSwgMC4wMDQ1NjMsIDAuMDA0NTc0LCAwLjAwNDU3NywgMC4wMDQ1NzgsIDAuMDA0NTc5LCAwLjAwNDU3OCIsIFwKLSAgICAgICAgICAiMC4wMDQ1NzMsIDAuMDA0NTgxLCAwLjAwNDU5MywgMC4wMDQ1OTUsIDAuMDA0NTk2LCAwLjAwNDU5OCwgMC4wMDQ1OTciLCBcCi0gICAgICAgICAgIjAuMDA0NTk3LCAwLjAwNDYwNSwgMC4wMDQ2MTYsIDAuMDA0NjE5LCAwLjAwNDYyLCAwLjAwNDYyMSwgMC4wMDQ2MjEiLCBcCi0gICAgICAgICAgIjAuMDA0NjM5LCAwLjAwNDY0NywgMC4wMDQ2NTgsIDAuMDA0NjYsIDAuMDA0NjYyLCAwLjAwNDY2MywgMC4wMDQ2NjMiLCBcCi0gICAgICAgICAgIjAuMDA0NzIxLCAwLjAwNDczLCAwLjAwNDczNywgMC4wMDQ3MzksIDAuMDA0NzQxLCAwLjAwNDc0MiwgMC4wMDQ3NDIiLCBcCi0gICAgICAgICAgIjAuMDA0Nzk3LCAwLjAwNDgwMywgMC4wMDQ4MTUsIDAuMDA0ODE3LCAwLjAwNDgxOSwgMC4wMDQ4MTksIDAuMDA0ODIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyNTEzLCAwLjAwMjUxNCwgMC4wMDI1MTQsIDAuMDAyNTE0LCAwLjAwMjUxNCwgMC4wMDI1MTMsIDAuMDAyNTE0IiwgXAotICAgICAgICAgICIwLjAwMjQ4NCwgMC4wMDI0ODYsIDAuMDAyNDg5LCAwLjAwMjQ4OCwgMC4wMDI0ODgsIDAuMDAyNDg4LCAwLjAwMjQ4OCIsIFwKLSAgICAgICAgICAiMC4wMDI1MTMsIDAuMDAyNTE0LCAwLjAwMjUxNSwgMC4wMDI1MTQsIDAuMDAyNTE1LCAwLjAwMjUxNCwgMC4wMDI1MTQiLCBcCi0gICAgICAgICAgIjAuMDAyNTQ3LCAwLjAwMjU0NywgMC4wMDI1NDgsIDAuMDAyNTQ4LCAwLjAwMjU0NywgMC4wMDI1NDcsIDAuMDAyNTQ3IiwgXAotICAgICAgICAgICIwLjAwMjYxNCwgMC4wMDI2MTEsIDAuMDAyNjA2LCAwLjAwMjYwNSwgMC4wMDI2MDQsIDAuMDAyNjAzLCAwLjAwMjYwMiIsIFwKLSAgICAgICAgICAiMC4wMDI2ODcsIDAuMDAyNjgzLCAwLjAwMjY3NiwgMC4wMDI2NzQsIDAuMDAyNjczLCAwLjAwMjY3MSwgMC4wMDI2NzEiLCBcCi0gICAgICAgICAgIjAuMDAyNzg2LCAwLjAwMjc4LCAwLjAwMjc2OSwgMC4wMDI3NjUsIDAuMDAyNzYzLCAwLjAwMjc2MiwgMC4wMDI3NjEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQwNSwgMC4wMDQwNTQsIDAuMDA0MDU4LCAwLjAwNDA1OSwgMC4wMDQwNTksIDAuMDA0MDU5LCAwLjAwNDA1OSIsIFwKLSAgICAgICAgICAiMC4wMDQwNDMsIDAuMDA0MDQ3LCAwLjAwNDA1MywgMC4wMDQwNTQsIDAuMDA0MDU1LCAwLjAwNDA1NSwgMC4wMDQwNTUiLCBcCi0gICAgICAgICAgIjAuMDA0MDY1LCAwLjAwNDA2OCwgMC4wMDQwNzMsIDAuMDA0MDc0LCAwLjAwNDA3NCwgMC4wMDQwNzYsIDAuMDA0MDc1IiwgXAotICAgICAgICAgICIwLjAwNDA5OSwgMC4wMDQxMDIsIDAuMDA0MTA3LCAwLjAwNDEwOCwgMC4wMDQxMDksIDAuMDA0MTEsIDAuMDA0MTEiLCBcCi0gICAgICAgICAgIjAuMDA0MTUsIDAuMDA0MTUyLCAwLjAwNDE1NSwgMC4wMDQxNTYsIDAuMDA0MTU3LCAwLjAwNDE1NywgMC4wMDQxNTciLCBcCi0gICAgICAgICAgIjAuMDA0MjQ3LCAwLjAwNDI0NiwgMC4wMDQyNDYsIDAuMDA0MjQ2LCAwLjAwNDI0NywgMC4wMDQyNDYsIDAuMDA0MjQ2IiwgXAotICAgICAgICAgICIwLjAwNDMzMywgMC4wMDQzMzQsIDAuMDA0MzI5LCAwLjAwNDMyNiwgMC4wMDQzMywgMC4wMDQzMywgMC4wMDQzMjYiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFJOKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDEwNjA2ODsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDEwNTA1NTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDEwNjA2ODsKLSAgICBjbG9jayA6IHRydWU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNTkzLCAwLjAwMDU5MywgMC4wMDA1OTIsIDAuMDAwNTkyLCAwLjAwMDU5MiwgMC4wMDA1OTIsIDAuMDAwNTkyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNjE1LCAwLjAwMDYsIDAuMDAwNTk3LCAwLjAwMDU5NSwgMC4wMDA1OTUsIDAuMDAwNTk1LCAwLjAwMDU5NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJHIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9mYWxsaW5nOwotICAgICAgd2hlbiA6ICJEJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMV9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjA1LCAtMC4wNDUsIC0wLjA1MTI1LCAtMC4wNTc1LCAtMC4wNjM3NSwgLTAuMDcyNSwgLTAuMDgyNSIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNSwgLTAuMDU2MjUsIC0wLjA2MjUsIC0wLjA2ODc1LCAtMC4wNzc1LCAtMC4wODEyNSIsIFwKLSAgICAgICAgICAiLTAuMDYxMjUsIC0wLjA1NjI1LCAtMC4wNjI1LCAtMC4wNjg3NSwgLTAuMDc1LCAtMC4wODM3NSwgLTAuMDg3NSIsIFwKLSAgICAgICAgICAiLTAuMDY3NSwgLTAuMDYyNSwgLTAuMDY4NzUsIC0wLjA3NSwgLTAuMDgxMjUsIC0wLjA5LCAtMC4wOTM3NSIsIFwKLSAgICAgICAgICAiLTAuMDczNzUsIC0wLjA2ODc1LCAtMC4wNjg3NSwgLTAuMDc1LCAtMC4wODEyNSwgLTAuMDksIC0wLjEiLCBcCi0gICAgICAgICAgIi0wLjA3NzUsIC0wLjA3MjUsIC0wLjA3ODc1LCAtMC4wODUsIC0wLjA5MTI1LCAtMC4xLCAtMC4xMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDg2MjUsIC0wLjA4MTI1LCAtMC4wODEyNSwgLTAuMDg3NSwgLTAuMDkzNzUsIC0wLjEwMjUsIC0wLjEwNjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRCZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjExODM0LCAwLjEyNDkwNSwgMC4xMzE1MjgsIDAuMTM3Mjk0LCAwLjE0MTg4OSwgMC4xNDc5OTQsIDAuMTUyNzY4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkciOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9mYWxsaW5nOwotICAgICAgd2hlbiA6ICJEJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMV9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2MjUsIDAuMDUxMjUsIDAuMDU3NSwgMC4wNzYyNSwgMC4wOTUsIDAuMTIyNSwgMC4xNDUiLCBcCi0gICAgICAgICAgIjAuMDY3NSwgMC4wNjI1LCAwLjA2ODc1LCAwLjA4MTI1LCAwLjEsIDAuMTIxMjUsIDAuMTUiLCBcCi0gICAgICAgICAgIjAuMDczNzUsIDAuMDY4NzUsIDAuMDc1LCAwLjA4NzUsIDAuMSwgMC4xMjc1LCAwLjE1IiwgXAotICAgICAgICAgICIwLjA4LCAwLjA3NSwgMC4wNzUsIDAuMDg3NSwgMC4xLCAwLjEyNzUsIDAuMTUiLCBcCi0gICAgICAgICAgIjAuMDg2MjUsIDAuMDc1LCAwLjA4MTI1LCAwLjA4NzUsIDAuMTA2MjUsIDAuMTI3NSwgMC4xNSIsIFwKLSAgICAgICAgICAiMC4wOSwgMC4wODUsIDAuMDg1LCAwLjA5NzUsIDAuMTEsIDAuMTMxMjUsIDAuMTUzNzUiLCBcCi0gICAgICAgICAgIjAuMDk4NzUsIDAuMDg3NSwgMC4wOTM3NSwgMC4xLCAwLjExMjUsIDAuMTMzNzUsIDAuMTU2MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFNOKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2NzEwNDM7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjcxMDQzOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDY3MDM4NzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyOTYsIDAuMDAwMjk2LCAwLjAwMDI5NiwgMC4wMDAyOTYsIDAuMDAwMjk2LCAwLjAwMDI5NiwgMC4wMDAyOTYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAzMTYsIDAuMDAwMzA1LCAwLjAwMDMsIDAuMDAwMjk4LCAwLjAwMDI5NywgMC4wMDAyOTcsIDAuMDAwMjk3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRCI7Ci0gICAgICBzZGZfY29uZCA6ICJEID09IDEnYjAiOwotICAgICAgZmFsbF9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDY5MjE5LCAwLjA3NzMsIDAuMDg3MDE4LCAwLjA5NDY0OCwgMC4xMDA2MiwgMC4xMDgzNDIsIDAuMTE0MDE5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkciOwotICAgICAgdGltaW5nX3R5cGUgOiByZWNvdmVyeV9mYWxsaW5nOwotICAgICAgd2hlbiA6ICIhRCZSTiI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fUk5fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChyZWNvdmVyeV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDYyNSwgLTAuMDA1LCAtMC4wMTEyNSwgLTAuMDE3NSwgLTAuMDE3NSwgLTAuMDIxMjUsIC0wLjAyMzc1IiwgXAotICAgICAgICAgICIwLjAxMTI1LCAwLCAtMC4wMDYyNSwgLTAuMDA2MjUsIC0wLjAxMjUsIC0wLjAxNjI1LCAtMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4wMTc1LCAwLjAwNjI1LCAwLCAtMC4wMDYyNSwgLTAuMDA2MjUsIC0wLjAxLCAtMC4wMTI1IiwgXAotICAgICAgICAgICIwLjAxNzUsIDAuMDEyNSwgMC4wMDYyNSwgMCwgLTAuMDA2MjUsIC0wLjAxLCAtMC4wMTI1IiwgXAotICAgICAgICAgICIwLjAyMzc1LCAwLjAxMjUsIDAuMDA2MjUsIDAsIDAsIC0wLjAwMzc1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiMC4wMjc1LCAwLjAyMjUsIDAuMDEsIDAuMDEsIDAuMDAzNzUsIDAsIC0wLjAwMjUiLCBcCi0gICAgICAgICAgIjAuMDMsIDAuMDI1LCAwLjAxODc1LCAwLjAxMjUsIDAuMDA2MjUsIDAuMDAyNSwgMCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJlY292ZXJ5X3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUciOwotICAgICAgc2RmX2NvbmQgOiAiRyA9PSAxJ2IwIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChyZWNvdmVyeV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDYyNSwgMC4wMDc1LCAwLjAwMTI1LCAwLjAwMTI1LCAwLjAwNzUsIDAuMDAzNzUsIDAuMDA3NSIsIFwKLSAgICAgICAgICAiMC4wMTEyNSwgMC4wMTI1LCAwLjAwNjI1LCAwLjAwNjI1LCAwLjAwNjI1LCAwLjAwODc1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMDE3NSwgMC4wMTI1LCAwLjAxMjUsIDAuMDEyNSwgMC4wMTI1LCAwLjAxNSwgMC4wMTI1IiwgXAotICAgICAgICAgICIwLjAyMzc1LCAwLjAxODc1LCAwLjAxODc1LCAwLjAxMjUsIDAuMDEyNSwgMC4wMTUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4wMjM3NSwgMC4wMTg3NSwgMC4wMTg3NSwgMC4wMTg3NSwgMC4wMTg3NSwgMC4wMTUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMDI3NSwgMC4wMjI1LCAwLjAyMjUsIDAuMDIyNSwgMC4wMjI1LCAwLjAxODc1LCAwLjAxNjI1IiwgXAotICAgICAgICAgICIwLjAzLCAwLjAzMTI1LCAwLjAyNSwgMC4wMjUsIDAuMDI1LCAwLjAyMTI1LCAwLjAyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJHIjsKLSAgICAgIHRpbWluZ190eXBlIDogcmVtb3ZhbF9mYWxsaW5nOwotICAgICAgd2hlbiA6ICIhRCZSTiI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fUk5fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChyZW1vdmFsX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMjUsIDAuMDE3NSwgMC4wMywgMC4wMywgMC4wMzYyNSwgMC4wNCwgMC4wNDg3NSIsIFwKLSAgICAgICAgICAiMC4wMDc1LCAwLjAxMjUsIDAuMDI1LCAwLjAyNSwgMC4wMzEyNSwgMC4wMzUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMDAxMjUsIDAuMDEyNSwgMC4wMTg3NSwgMC4wMjUsIDAuMDI1LCAwLjAzNSwgMC4wMzc1IiwgXAotICAgICAgICAgICItMC4wMDUsIDAuMDA2MjUsIDAuMDEyNSwgMC4wMTg3NSwgMC4wMjUsIDAuMDI4NzUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjAwNSwgMCwgMC4wMTI1LCAwLjAxMjUsIDAuMDE4NzUsIDAuMDIyNSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDA4NzUsIC0wLjAwMzc1LCAwLjAwMjUsIDAuMDA4NzUsIDAuMDE1LCAwLjAxODc1LCAwLjAyMTI1IiwgXAotICAgICAgICAgICItMC4wMTc1LCAtMC4wMDYyNSwgMCwgMC4wMDYyNSwgMC4wMTI1LCAwLjAxNjI1LCAwLjAxODc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIHRpbWluZ190eXBlIDogcmVtb3ZhbF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFHIjsKLSAgICAgIHNkZl9jb25kIDogIkcgPT0gMSdiMCI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQocmVtb3ZhbF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDYyNSwgMC4wMTEyNSwgMC4wMTEyNSwgMC4wMTc1LCAwLjAxNzUsIDAuMDIxMjUsIDAuMDIzNzUiLCBcCi0gICAgICAgICAgIjAuMDAxMjUsIDAuMDA2MjUsIDAuMDA2MjUsIDAuMDEyNSwgMC4wMTI1LCAwLjAxNjI1LCAwLjAxODc1IiwgXAotICAgICAgICAgICItMC4wMDUsIDAsIDAuMDA2MjUsIDAuMDA2MjUsIDAuMDA2MjUsIDAuMDEsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDA1LCAtMC4wMDYyNSwgMCwgMCwgMC4wMDYyNSwgMC4wMSwgMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wMTEyNSwgLTAuMDA2MjUsIDAsIDAsIDAsIDAuMDAzNzUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjAxNSwgLTAuMDEsIC0wLjAxLCAtMC4wMDM3NSwgLTAuMDAzNzUsIDAsIDAuMDAyNSIsIFwKLSAgICAgICAgICAiLTAuMDE3NSwgLTAuMDEyNSwgLTAuMDEyNSwgLTAuMDA2MjUsIC0wLjAwNjI1LCAtMC4wMDI1LCAwIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IFRMQVRTUlhMICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChUTEFUU1JYTCkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjcwMDk2NDsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBsYXRjaCAoUUlOVCxONSkgewotICAgIGRhdGFfaW4gOiAiRCI7Ci0gICAgZW5hYmxlIDogIihHIFJOKSI7Ci0gICAgcHJlc2V0IDogIighU04pIjsKLSAgfQotICBwaW4oRCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjI4NzM7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjI3NDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2Mjg3MzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyODksIDAuMDAwMjksIDAuMDAwMjkxLCAwLjAwMDI5MSwgMC4wMDAyOTEsIDAuMDAwMjkyLCAwLjAwMDI5MiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDMxNiwgMC4wMDAzMDQsIDAuMDAwMzAzLCAwLjAwMDMwMiwgMC4wMDAzMDEsIDAuMDAwMywgMC4wMDAzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkciOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX2ZhbGxpbmc7Ci0gICAgICB3aGVuIDogIlJOJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIlJOX0VRXzFfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMDYyNSwgMC4wMDUsIDAuMDExMjUsIDAuMDE3NSwgMC4wMjM3NSwgMC4wMjc1LCAwLjAzIiwgXAotICAgICAgICAgICItMC4wMTEyNSwgLTAuMDA2MjUsIDAuMDA2MjUsIDAuMDEyNSwgMC4wMTI1LCAwLjAyMjUsIDAuMDI1IiwgXAotICAgICAgICAgICItMC4wMTc1LCAtMC4wMTI1LCAwLCAwLCAwLjAwNjI1LCAwLjAxNjI1LCAwLjAxODc1IiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLCAwLCAwLjAxLCAwLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAsIDAuMDAzNzUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA0LCAtMC4wMjg3NSwgLTAuMDIyNSwgLTAuMDE2MjUsIC0wLjAxLCAtMC4wMDYyNSwgMC4wMDI1IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA4NzUsIC0wLjAwNjI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDE4NzUsIC0wLjAxMzc1LCAtMC4wMTM3NSwgLTAuMDA3NSwgLTAuMDA3NSwgLTAuMDEsIC0wLjAwNzUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMTg3NSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAxMjUsIC0wLjAxNSwgLTAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDE4NzUsIC0wLjAxNSwgLTAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMzEyNSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDI1LCAtMC4wMjEyNSwgLTAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMjc1LCAtMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjA0NjI1LCAtMC4wNDEyNSwgLTAuMDM1LCAtMC4wMzUsIC0wLjAzNSwgLTAuMDMxMjUsIC0wLjAyODc1IiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA0Mzc1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDM3NSwgLTAuMDMzNzUsIC0wLjAzMTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkciOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9mYWxsaW5nOwotICAgICAgd2hlbiA6ICJSTiZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJSTl9FUV8xX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE4NzUsIDAuMDA3NSwgMC4wMDEyNSwgLTAuMDA1LCAtMC4wMTEyNSwgLTAuMDE1LCAtMC4wMTc1IiwgXAotICAgICAgICAgICIwLjAyMzc1LCAwLjAxMjUsIDAuMDA2MjUsIDAsIC0wLjAwNjI1LCAtMC4wMSwgLTAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4wMywgMC4wMTg3NSwgMC4wMTI1LCAwLjAwNjI1LCAwLCAtMC4wMDM3NSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMDM2MjUsIDAuMDI1LCAwLjAxODc1LCAwLjAxMjUsIDAuMDA2MjUsIDAuMDAyNSwgMCIsIFwKLSAgICAgICAgICAiMC4wNDI1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMTg3NSwgMC4wMTI1LCAwLjAwODc1LCAwIiwgXAotICAgICAgICAgICIwLjA0NjI1LCAwLjA0MTI1LCAwLjAyODc1LCAwLjAyMjUsIDAuMDE2MjUsIDAuMDEyNSwgMC4wMSIsIFwKLSAgICAgICAgICAiMC4wNTUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMjUsIDAuMDE1LCAwLjAxMjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzEyNSwgMC4wMjYyNSwgMC4wMiwgMC4wMiwgMC4wMiwgMC4wMjI1LCAwLjAyIiwgXAotICAgICAgICAgICIwLjAzNjI1LCAwLjAzMTI1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMjUsIDAuMDI3NSwgMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMDQyNSwgMC4wMzc1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDMxMjUsIDAuMDMzNzUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMDQ4NzUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzc1LCAwLjAzNzUsIDAuMDMzNzUsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiMC4wNTUsIDAuMDUsIDAuMDQzNzUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wNCwgMC4wMzc1IiwgXAotICAgICAgICAgICIwLjA1ODc1LCAwLjA1Mzc1LCAwLjA0NzUsIDAuMDQ3NSwgMC4wNDc1LCAwLjA0Mzc1LCAwLjA0MTI1IiwgXAotICAgICAgICAgICIwLjA2MTI1LCAwLjA1NjI1LCAwLjA1LCAwLjA1LCAwLjA1LCAwLjA0NjI1LCAwLjA0Mzc1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihHKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2OTQ5Njk7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjk0OTY5OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDU3NjMzNDsKLSAgICBjbG9jayA6IHRydWU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyMzAyLCAwLjAwMjI5NywgMC4wMDIzNjksIDAuMDAyNDUzLCAwLjAwMjU3OCwgMC4wMDI3ODksIDAuMDAyOTQyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzM3LCAwLjAwMDMzOCwgMC4wMDAzMzcsIDAuMDAwMzM3LCAwLjAwMDMzOCwgMC4wMDAzMzgsIDAuMDAwMzM4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkciOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFEJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMTUxNDYsIDAuMTU4ODU1LCAwLjE2ODEyOSwgMC4xNzYxNzYsIDAuMTgyNjUxLCAwLjE5MTQzMiwgMC4xOTg0OTciKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFEpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4yMDIwMjI7Ci0gICAgZnVuY3Rpb24gOiAiUUlOVCI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTE1Mjk2LCAwLjEyNTczMywgMC4yMjEzNzQsIDAuMzc4NjI3LCAwLjUzNjEwOSwgMC45MDgxODIsIDEuMTE5NzQiLCBcCi0gICAgICAgICAgIjAuMTIxMzExLCAwLjEzMTgyMywgMC4yMjczNjgsIDAuMzg0MzA3LCAwLjU0MjEyMiwgMC45MTQyNjEsIDEuMTI1NzYiLCBcCi0gICAgICAgICAgIjAuMTI4MTkzLCAwLjEzODc5OSwgMC4yMzQyNzUsIDAuMzkyODY4LCAwLjU1MTMwOSwgMC45MjExMjUsIDEuMTMyNjEiLCBcCi0gICAgICAgICAgIjAuMTMzODk4LCAwLjE0NDQ2NiwgMC4yMzkzODksIDAuMzk4NDYyLCAwLjU1Njg4OSwgMC45MjY3NTgsIDEuMTM0NjYiLCBcCi0gICAgICAgICAgIjAuMTM4NzYxLCAwLjE0OTMxNiwgMC4yNDM5OTcsIDAuNDAyMjg1LCAwLjU2MTYxMiwgMC45Mjc5NjgsIDEuMTM4MSIsIFwKLSAgICAgICAgICAiMC4xNDUxOSwgMC4xNTU3MDYsIDAuMjUwNDA2LCAwLjQwODYsIDAuNTY4MDQ3LCAwLjkzNTkxLCAxLjE0NjA3IiwgXAotICAgICAgICAgICIwLjE1MDI4MywgMC4xNjA5MDIsIDAuMjU2MDc4LCAwLjQxNDM4MiwgMC41NzI5NTcsIDAuOTQyODE2LCAxLjE1NDQyIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExNjM0OCwgMC4xMzgxNzcsIDAuMzM4NTk3LCAwLjY3MDUyMywgMS4wMDQwNywgMS43ODA4NiwgMi4yMjM5NyIsIFwKLSAgICAgICAgICAiMC4xMTYwNzIsIDAuMTM4MTgxLCAwLjMzODQ5NCwgMC42NzA5NDksIDEuMDA0OTIsIDEuNzgwMzcsIDIuMjIzNzQiLCBcCi0gICAgICAgICAgIjAuMTE2MDUsIDAuMTM4MzIsIDAuMzM4NTIzLCAwLjY3MTYxNSwgMS4wMDM2LCAxLjc4MDIsIDIuMjI0NzkiLCBcCi0gICAgICAgICAgIjAuMTE2NTIxLCAwLjEzODE5OSwgMC4zMzg0NjUsIDAuNjcxNzMyLCAxLjAwNTQxLCAxLjc4MzQ1LCAyLjIyNjk0IiwgXAotICAgICAgICAgICIwLjExNjUxLCAwLjEzODY2LCAwLjMzODcwNCwgMC42NzEwNTcsIDEuMDA1OTIsIDEuNzgzMjQsIDIuMjIzNTIiLCBcCi0gICAgICAgICAgIjAuMTE2NDUzLCAwLjEzODczOSwgMC4zMzg5NzQsIDAuNjcxNzk2LCAxLjAwNjIzLCAxLjc4MDc4LCAyLjIyNjY3IiwgXAotICAgICAgICAgICIwLjExNjQyOCwgMC4xMzgxNDMsIDAuMzM5MjA3LCAwLjY3MjgwNywgMS4wMDY4MiwgMS43ODQ1MiwgMi4yMjg0NCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMjUwMTEsIDAuMTM0Njc5LCAwLjIyMTQ2MiwgMC4zNjY5OTcsIDAuNTEwODk5LCAwLjg0ODQ3OSwgMS4wNDE0NCIsIFwKLSAgICAgICAgICAiMC4xMzA2ODMsIDAuMTQwMzE1LCAwLjIyNzEyNCwgMC4zNzI3MjQsIDAuNTE2NjMxLCAwLjg1NTg1NSwgMS4wNDkxOSIsIFwKLSAgICAgICAgICAiMC4xMzY4MzYsIDAuMTQ2NTAyLCAwLjIzMzI4NSwgMC4zNzg4MDEsIDAuNTIyOTk3LCAwLjg2MDMyNywgMS4wNTQwNiIsIFwKLSAgICAgICAgICAiMC4xNDE5MjksIDAuMTUxNTcsIDAuMjM4MzU0LCAwLjM4Mzg2MiwgMC41Mjc4MDQsIDAuODY3Mzk3LCAxLjA1ODYxIiwgXAotICAgICAgICAgICIwLjE0NjE1OCwgMC4xNTU4NDYsIDAuMjQyODg1LCAwLjM4NzQzMSwgMC41MzIyMywgMC44NzA1NTcsIDEuMDY0ODIiLCBcCi0gICAgICAgICAgIjAuMTUxODM4LCAwLjE2MTUzMywgMC4yNDg0NzcsIDAuMzkzMjIsIDAuNTM4NDg1LCAwLjg3NTUxMSwgMS4wNjg1OCIsIFwKLSAgICAgICAgICAiMC4xNTYyNDYsIDAuMTY1OTMzLCAwLjI1Mjk2MiwgMC4zOTgxMDMsIDAuNTQyMTE5LCAwLjg4MDgzMywgMS4wNzQwMSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDQyMzEsIDAuMTI0MDk0LCAwLjMwMTM4MiwgMC41OTkyMTEsIDAuOTAxMDkzLCAxLjU5NzM5LCAxLjk5NTA3IiwgXAotICAgICAgICAgICIwLjEwNDI0MSwgMC4xMjM5MDMsIDAuMzAxMzAyLCAwLjU5ODIxOSwgMC45MDE0MzksIDEuNTk4OTgsIDEuOTk3NzQiLCBcCi0gICAgICAgICAgIjAuMTA0MjE5LCAwLjEyNDA4OCwgMC4zMDI0OTcsIDAuNTk5NzcyLCAwLjg5OTMxMiwgMS41OTczLCAxLjk5MDU5IiwgXAotICAgICAgICAgICIwLjEwNDIzOCwgMC4xMjM5OTUsIDAuMzAxMDg0LCAwLjYwMDEwMSwgMC45MDEwNzksIDEuNTk3NTUsIDEuOTkzMTEiLCBcCi0gICAgICAgICAgIjAuMTAzOTkxLCAwLjEyNDEsIDAuMzAzNTQ5LCAwLjYwMjIwMSwgMC45MDA0MjEsIDEuNTk0ODMsIDEuOTk2ODMiLCBcCi0gICAgICAgICAgIjAuMTA0MjM1LCAwLjEyNDA0NSwgMC4zMDI0NDQsIDAuNTk5MjgsIDAuOTAwNzA3LCAxLjU5ODIzLCAxLjk5NTgxIiwgXAotICAgICAgICAgICIwLjEwNDE3MywgMC4xMjM2NDMsIDAuMzAyOTk4LCAwLjYwMTI4NSwgMC45MDA2NDMsIDEuNTk4MDUsIDEuOTk2MjgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBub25fdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJpc2luZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNDk1MTMsIDAuMTYwMDY3LCAwLjI1NTU4MSwgMC40MTI0OSwgMC41NzI2MjEsIDAuOTQyNDE3LCAxLjE1MzYzIiwgXAotICAgICAgICAgICIwLjE1Njk1NiwgMC4xNjc0NjIsIDAuMjYyMTUyLCAwLjQyMDAzNCwgMC41Nzc3MzgsIDAuOTQ5OTY1LCAxLjE2MTEzIiwgXAotICAgICAgICAgICIwLjE2NjIxOCwgMC4xNzY4MjQsIDAuMjcyMjc0LCAwLjQyOTQ5MSwgMC41ODkyOTYsIDAuOTU5MDY1LCAxLjE3MDQzIiwgXAotICAgICAgICAgICIwLjE3Mzg5OSwgMC4xODQ0ODIsIDAuMjc5MzIzLCAwLjQzNjkzOCwgMC41OTY5OTEsIDAuOTY2ODQxLCAxLjE3NzkiLCBcCi0gICAgICAgICAgIjAuMTc5OTIxLCAwLjE5MDQxNSwgMC4yODU5NTEsIDAuNDQzMDI5LCAwLjYwMjg4OSwgMC45NzI3NjUsIDEuMTg0MDkiLCBcCi0gICAgICAgICAgIjAuMTg4MjU5LCAwLjE5ODg2MSwgMC4yOTQyOTUsIDAuNDUyNzM3LCAwLjYxMTI4NiwgMC45ODExMTUsIDEuMTkyNDUiLCBcCi0gICAgICAgICAgIjAuMTk0NTY5LCAwLjIwNDk3NywgMC4zMDA2MjUsIDAuNDU4MzI2LCAwLjYxNzYwOSwgMC45ODczMjQsIDEuMTk0MTQiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTE2NTI0LCAwLjEzODYzNiwgMC4zMzg0ODgsIDAuNjcwNTg3LCAxLjAwMzgxLCAxLjc4MTE2LCAyLjIyNTc1IiwgXAotICAgICAgICAgICIwLjExNjQ4NiwgMC4xMzg3MjYsIDAuMzM4Mjc1LCAwLjY3MTE0MSwgMS4wMDQ3NCwgMS43ODE1NCwgMi4yMjYzOSIsIFwKLSAgICAgICAgICAiMC4xMTY1LCAwLjEzODc4NCwgMC4zMzc5NTUsIDAuNjcxNzU1LCAxLjAwNDY3LCAxLjc4MjY1LCAyLjIyNjg1IiwgXAotICAgICAgICAgICIwLjExNjQ0MSwgMC4xMzg3MTgsIDAuMzM3OTMxLCAwLjY3MjQ4NCwgMS4wMDUwNCwgMS43ODMxMiwgMi4yMjg2NyIsIFwKLSAgICAgICAgICAiMC4xMTY1MTQsIDAuMTM4NzQsIDAuMzM4MDMyLCAwLjY3MDAzMSwgMS4wMDQ0OSwgMS43ODE5MSwgMi4yMjU5OCIsIFwKLSAgICAgICAgICAiMC4xMTY0NjUsIDAuMTM4ODI5LCAwLjMzODIzMSwgMC42NzE5ODYsIDEuMDA1MzQsIDEuNzgzNDYsIDIuMjI4MzEiLCBcCi0gICAgICAgICAgIjAuMTE2MjM2LCAwLjEzODYyNSwgMC4zMzc5ODgsIDAuNjcxMjY0LCAxLjAwNTMyLCAxLjc4Mzc1LCAyLjIyNjg4Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE1MDExOSwgMC4xNTk3NDgsIDAuMjQ2NTg1LCAwLjM5MjExNCwgMC41MzYzNzcsIDAuODc1MTk5LCAxLjA2ODk3IiwgXAotICAgICAgICAgICIwLjE1NzUyNiwgMC4xNjcxNjIsIDAuMjU0MTUxLCAwLjM5OTUwNSwgMC41NDQzMjgsIDAuODgyODI1LCAxLjA3NTc1IiwgXAotICAgICAgICAgICIwLjE2Njc4MywgMC4xNzY0MzUsIDAuMjYzMjYzLCAwLjQwODc5LCAwLjU1Mjg2MiwgMC44OTIwODEsIDEuMDg0NjQiLCBcCi0gICAgICAgICAgIjAuMTc0ODM5LCAwLjE4NDQ2OSwgMC4yNzEyOTYsIDAuNDE2ODM3LCAwLjU2MTA1MywgMC44OTk5MSwgMS4wOTM3MSIsIFwKLSAgICAgICAgICAiMC4xODEzMDUsIDAuMTkwOTI4LCAwLjI3Nzc0OCwgMC40MjMyODgsIDAuNTY3MzY0LCAwLjkwNjU4OSwgMS4wOTkyIiwgXAotICAgICAgICAgICIwLjE5MDA1NCwgMC4xOTk3MTQsIDAuMjg2NSwgMC40MzIwMjcsIDAuNTc2NjI4LCAwLjkxNTM1NywgMS4xMDgwNCIsIFwKLSAgICAgICAgICAiMC4xOTcxNzcsIDAuMjA2Nzk4LCAwLjI5Mzg0NywgMC40MzkwMDksIDAuNTgzMjU2LCAwLjkyMTk0OSwgMS4xMTM5NSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDQyNTYsIDAuMTIzOTM4LCAwLjMwMjA0OSwgMC41OTkyNTIsIDAuODk3MjYxLCAxLjU5OTE5LCAxLjk5NzUzIiwgXAotICAgICAgICAgICIwLjEwNDI1NywgMC4xMjQwNDYsIDAuMzAzMTA0LCAwLjU5OTU3NCwgMC45MDE0MywgMS41OTg5NSwgMS45OTc3NSIsIFwKLSAgICAgICAgICAiMC4xMDM2NTgsIDAuMTIzNjExLCAwLjMwMzM2NSwgMC41OTk0MDYsIDAuODk1MDk4LCAxLjU5ODk0LCAxLjk5NzUiLCBcCi0gICAgICAgICAgIjAuMTA0MjU1LCAwLjEyMzc3MSwgMC4zMDE5MDksIDAuNTk5MjIsIDAuODk2NTQ4LCAxLjU5OTEsIDEuOTk3NCIsIFwKLSAgICAgICAgICAiMC4xMDQyNTQsIDAuMTIzODM3LCAwLjMwMjQyNCwgMC41OTk0MzIsIDAuODk1MDM0LCAxLjU5ODkxLCAxLjk5Nzk2IiwgXAotICAgICAgICAgICIwLjEwNDI3LCAwLjEyNDExNywgMC4zMDMwNzgsIDAuNTk5NjY1LCAwLjkwMTUzNywgMS41OTg4OCwgMS45OTgxNCIsIFwKLSAgICAgICAgICAiMC4xMDQyNDMsIDAuMTI0MDk0LCAwLjMwMTI0OCwgMC42MDEzNTcsIDAuOTAwMjM5LCAxLjU5OTA3LCAxLjk5NDc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiByaXNpbmdfZWRnZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTUxNDgsIDAuMTYyMDgzLCAwLjI1NzU1MSwgMC40MTYxMSwgMC41NzQ1NjcsIDAuOTQ0Mzk4LCAxLjE1MDk1IiwgXAotICAgICAgICAgICIwLjE1NzYyNiwgMC4xNjgwNTIsIDAuMjYyOTQyLCAwLjQyMDcyNCwgMC41Nzk3MjcsIDAuOTUwNjQ3LCAxLjE2MTgzIiwgXAotICAgICAgICAgICIwLjE2NDg1NCwgMC4xNzU0NDEsIDAuMjcwODk1LCAwLjQyNzk5MiwgMC41ODc5NjYsIDAuOTU3ODM2LCAxLjE2ODk4IiwgXAotICAgICAgICAgICIwLjE3MDc2MywgMC4xODEzODMsIDAuMjc2ODYxLCAwLjQzMzc2OSwgMC41OTI4NjMsIDAuOTYzNzksIDEuMTc0OTYiLCBcCi0gICAgICAgICAgIjAuMTc1NzI2LCAwLjE4NjE4NywgMC4yODE4MTksIDAuNDQwMzE2LCAwLjU5ODc4NiwgMC45Njg3MDIsIDEuMTc2NDQiLCBcCi0gICAgICAgICAgIjAuMTgyNTMyLCAwLjE5MzExMSwgMC4yODg2MiwgMC40NDcxNiwgMC42MDU1NzQsIDAuOTc1NTEyLCAxLjE4MzY0IiwgXAotICAgICAgICAgICIwLjE4NzU2MSwgMC4xOTgwODUsIDAuMjkzNzI2LCAwLjQ1MTE1NywgMC42MTA3MDksIDAuOTgwNDQsIDEuMTg3MTYiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTE2NDgyLCAwLjEzODY4NSwgMC4zMzg0MDMsIDAuNjcwNzc1LCAxLjAwNDEyLCAxLjc4MTYzLCAyLjIyNTY4IiwgXAotICAgICAgICAgICIwLjExNjQ1OSwgMC4xMzc5NzMsIDAuMzM4MjIyLCAwLjY3MDk3MywgMS4wMDQ4NiwgMS43ODE1MiwgMi4yMjYzNCIsIFwKLSAgICAgICAgICAiMC4xMTYzMjEsIDAuMTM4NzEyLCAwLjMzODE5NiwgMC42NzAzMzMsIDEuMDA0NTIsIDEuNzgyMTcsIDIuMjI3MjkiLCBcCi0gICAgICAgICAgIjAuMTE2NDg2LCAwLjEzODY3NiwgMC4zMzg1NDIsIDAuNjcwODQ0LCAxLjAwNDQ2LCAxLjc4MDY3LCAyLjIyNTMxIiwgXAotICAgICAgICAgICIwLjExNjUxMSwgMC4xMzg1NTUsIDAuMzM4MzIzLCAwLjY3MDk1OCwgMS4wMDQyNywgMS43ODE0NywgMi4yMjQ5MiIsIFwKLSAgICAgICAgICAiMC4xMTYzNjYsIDAuMTM4NjkzLCAwLjMzODAyNywgMC42NzE1NjEsIDEuMDA1MjksIDEuNzgzMDksIDIuMjI3NjMiLCBcCi0gICAgICAgICAgIjAuMTE2MjA1LCAwLjEzODczNiwgMC4zMzgwMDMsIDAuNjcxMywgMS4wMDUxOCwgMS43ODM1NCwgMi4yMjQxOSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogZmFsbGluZ19lZGdlOwotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNTI2ODIsIDAuMTYyMzQ0LCAwLjI0OTIzMywgMC4zOTQ0NCwgMC41MzkwMTUsIDAuODc1OTY4LCAxLjA2OTY4IiwgXAotICAgICAgICAgICIwLjE2MDU3NywgMC4xNzAyMzMsIDAuMjU3MjQxLCAwLjQwMTg2OSwgMC41NDY2MzgsIDAuODg0NDcxLCAxLjA3NzE4IiwgXAotICAgICAgICAgICIwLjE2OTI1MywgMC4xNzg4ODgsIDAuMjY1Njk5LCAwLjQxMDQ2MiwgMC41NTU3ODEsIDAuODkzMDE1LCAxLjA4NjEzIiwgXAotICAgICAgICAgICIwLjE3NjE4NywgMC4xODU4NDksIDAuMjcyNjc3LCAwLjQxNzUxNSwgMC41NjI3MTksIDAuOTAwMDUxLCAxLjA5NDE3IiwgXAotICAgICAgICAgICIwLjE4MjQ3NCwgMC4xOTIxMjcsIDAuMjc5MDA3LCAwLjQyMzY4NywgMC41Njg5OCwgMC45MDYyMjgsIDEuMDk5MTkiLCBcCi0gICAgICAgICAgIjAuMTkxMTY0LCAwLjIwMDgyMSwgMC4yODc2MjIsIDAuNDMyMzQ3LCAwLjU3NzczMiwgMC45MTUxNiwgMS4xMDgwOSIsIFwKLSAgICAgICAgICAiMC4xOTc3NzksIDAuMjA3NDY2LCAwLjI5NDM2MSwgMC40Mzk0MjksIDAuNTg0NDE4LCAwLjkyMzAzNiwgMS4xMTQ4MSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDQyMzYsIDAuMTI0MDg1LCAwLjMwMzA0MywgMC42MDE3OTksIDAuOTAwNzgyLCAxLjU5ODQxLCAxLjk5MjUzIiwgXAotICAgICAgICAgICIwLjEwNDIzNywgMC4xMjQwODYsIDAuMzAzMjYzLCAwLjYwMTc1NiwgMC45MDA3NzYsIDEuNTk1NSwgMS45OTQ2OSIsIFwKLSAgICAgICAgICAiMC4xMDQyMzUsIDAuMTI0MDg0LCAwLjMwMTU2MiwgMC42MDE5ODMsIDAuOTAwNzczLCAxLjU5NzQ1LCAxLjk5NDAxIiwgXAotICAgICAgICAgICIwLjEwNDEyLCAwLjEyNDA3OCwgMC4zMDIwMTQsIDAuNTk5MDkyLCAwLjkwMDc1MiwgMS41OTYzMSwgMS45OTczNyIsIFwKLSAgICAgICAgICAiMC4xMDQyNDcsIDAuMTI0MDg1LCAwLjMwMzEwNywgMC41OTg1NzMsIDAuOTAwNzg3LCAxLjU5NzA3LCAxLjk5NTQ1IiwgXAotICAgICAgICAgICIwLjEwNDI1NiwgMC4xMjQwOTksIDAuMzAyNzU1LCAwLjYwMjMyNCwgMC45MDA2NzksIDEuNTk3MjQsIDEuOTk0MDIiLCBcCi0gICAgICAgICAgIjAuMTA0MjIxLCAwLjEyNDA1LCAwLjMwMzIyNiwgMC42MDE2NzUsIDAuOTAwNTk0LCAxLjU5NzksIDEuOTk0NjYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiU04iOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHByZXNldDsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg4OTc0LCAwLjA5OTU4OCwgMC4xOTUwNDEsIDAuMzUzMzk5LCAwLjUxMTg4LCAwLjg4MTk4MywgMS4wOTIzOSIsIFwKLSAgICAgICAgICAiMC4wOTcxNzMsIDAuMTA3NjE1LCAwLjIwMzIzMSwgMC4zNjE1NjYsIDAuNTE5Njg2LCAwLjg4OTUwNCwgMS4xMDA4MyIsIFwKLSAgICAgICAgICAiMC4xMDYzMjUsIDAuMTE2OTA5LCAwLjIxMTY5NCwgMC4zNzA3MDQsIDAuNTI4OTUyLCAwLjg5NjE2LCAxLjEwOTc1IiwgXAotICAgICAgICAgICIwLjExMzI0LCAwLjEyMzc0OSwgMC4yMTg2MzgsIDAuMzc3NDQ5LCAwLjUzNTk0OSwgMC45MDU1NywgMS4xMTcwMiIsIFwKLSAgICAgICAgICAiMC4xMTg2NjQsIDAuMTI5MjI1LCAwLjIyNDQ3NiwgMC4zODI4MTQsIDAuNTQxMzMzLCAwLjkxMDc0NSwgMS4xMjI1OCIsIFwKLSAgICAgICAgICAiMC4xMjU2NDYsIDAuMTM2MjIzLCAwLjIzMTI1OCwgMC4zODk1NzMsIDAuNTQ3NjIxLCAwLjkxNzg4NSwgMS4xMjkzMSIsIFwKLSAgICAgICAgICAiMC4xMzA3NjksIDAuMTQxMjk1LCAwLjIzNjEyNywgMC4zOTQ4MTMsIDAuNTUyOTI2LCAwLjkxOTgxNywgMS4xMzQzMSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTYzNjUsIDAuMTM4NjYzLCAwLjMzODAxNiwgMC42NzA3MjUsIDEuMDA1NiwgMS43ODM0MSwgMi4yMjgwOSIsIFwKLSAgICAgICAgICAiMC4xMTY1MjcsIDAuMTM4NjY5LCAwLjMzOTI3MiwgMC42NzIwOCwgMS4wMDYzMSwgMS43ODU4NCwgMi4yMzEyMyIsIFwKLSAgICAgICAgICAiMC4xMTY0ODYsIDAuMTM4ODU2LCAwLjMzODU1LCAwLjY3MjU0MSwgMS4wMDY4NiwgMS43ODM5MywgMi4yMzEyMSIsIFwKLSAgICAgICAgICAiMC4xMTY1ODcsIDAuMTM4MzA3LCAwLjMzOTI1NiwgMC42NzMxMTYsIDEuMDA2ODcsIDEuNzg1ODIsIDIuMjI5ODYiLCBcCi0gICAgICAgICAgIjAuMTE2NTk0LCAwLjEzODg1OCwgMC4zMzkxMjksIDAuNjczMDAyLCAxLjAwNjg0LCAxLjc4NDk4LCAyLjIzMTA1IiwgXAotICAgICAgICAgICIwLjExNjM0NiwgMC4xMzg2NSwgMC4zMzg2MTQsIDAuNjcyMzI3LCAxLjAwNjYzLCAxLjc4NTYsIDIuMjMxMSIsIFwKLSAgICAgICAgICAiMC4xMTY5LCAwLjEzODM2LCAwLjMzODUyNCwgMC42NzE2MDgsIDEuMDA1NjEsIDEuNzgyMTMsIDIuMjMwNzYiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk2OTczLCAwLjEwNjYzNiwgMC4xOTM0NjMsIDAuMzM4OTU2LCAwLjQ4NDA5MSwgMC44MjM4NTMsIDEuMDE2NDIiLCBcCi0gICAgICAgICAgIjAuMTAzMDIzLCAwLjExMjY4MSwgMC4xOTk3MDEsIDAuMzQ0OTU4LCAwLjQ4OTUyMSwgMC44MjY1MywgMS4wMjEzOSIsIFwKLSAgICAgICAgICAiMC4xMTA0MTIsIDAuMTIwMDg0LCAwLjIwNjg3MSwgMC4zNTI0NDEsIDAuNDk3NjQsIDAuODM1Njc2LCAxLjAzMDA3IiwgXAotICAgICAgICAgICIwLjExNjc0MywgMC4xMjYzNzEsIDAuMjEzMTcxLCAwLjM1ODc3LCAwLjUwMzg2NSwgMC44NDI2NywgMS4wMzYzOCIsIFwKLSAgICAgICAgICAiMC4xMjIwNzEsIDAuMTMxODAzLCAwLjIxODczOSwgMC4zNjQwMjYsIDAuNTA5NzcsIDAuODQ5MjczLCAxLjA0MzU4IiwgXAotICAgICAgICAgICIwLjEyOTUwOSwgMC4xMzkxMywgMC4yMjYwOTMsIDAuMzcwNzg3LCAwLjUxNzE1NSwgMC44NTYzNzQsIDEuMDQ5NzEiLCBcCi0gICAgICAgICAgIjAuMTM1MDMxLCAwLjE0NDY2NiwgMC4yMzE2MzMsIDAuMzc2MjMzLCAwLjUyMTQ4MiwgMC44NjIwMjUsIDEuMDU1MDkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTA0MjI0LCAwLjEyNDA2OSwgMC4zMDI3NjUsIDAuNjAwMDIsIDAuODk3NDI4LCAxLjU5NjAxLCAxLjk4NDQ2IiwgXAotICAgICAgICAgICIwLjEwNDIyMywgMC4xMjQwNzgsIDAuMzAzNTE5LCAwLjYwMDI0OSwgMC44OTczOTEsIDEuNTk4MzksIDEuOTk1OSIsIFwKLSAgICAgICAgICAiMC4xMDQyMTUsIDAuMTI0MDgzLCAwLjMwMzE2OCwgMC42MDAxMzgsIDAuODk4MzAyLCAxLjU5Mjg5LCAxLjk5NTU5IiwgXAotICAgICAgICAgICIwLjEwNDI1OSwgMC4xMjQxMzEsIDAuMzAzMDU2LCAwLjU5ODQ3MywgMC44OTc0MjUsIDEuNTg4OTMsIDEuOTg4MDciLCBcCi0gICAgICAgICAgIjAuMTA0MzE5LCAwLjEyNDE1MywgMC4zMDMzMzMsIDAuNjAyODU4LCAwLjkwMDcxLCAxLjU5MTg5LCAxLjk5NTYzIiwgXAotICAgICAgICAgICIwLjEwNDI5OSwgMC4xMjQwMjQsIDAuMzAzMjczLCAwLjYwMTU0MiwgMC45MDE1NTQsIDEuNTk4MTEsIDEuOTk2OTEiLCBcCi0gICAgICAgICAgIjAuMTA0NDUyLCAwLjEyMzg3MywgMC4zMDIzNzksIDAuNjAyODksIDAuOTAxNTc1LCAxLjU5NDU3LCAxLjk5NDY2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyOTEsIDAuMDAyOTExLCAwLjAwMjkxNSwgMC4wMDI5MTcsIDAuMDAyOTE3LCAwLjAwMjkxOCwgMC4wMDI5MTciLCBcCi0gICAgICAgICAgIjAuMDAyODk2LCAwLjAwMjg5NywgMC4wMDI5MDEsIDAuMDAyOTAzLCAwLjAwMjkwMywgMC4wMDI5MDYsIDAuMDAyOTA0IiwgXAotICAgICAgICAgICIwLjAwMjkwMiwgMC4wMDI5MDMsIDAuMDAyOTA4LCAwLjAwMjkxMSwgMC4wMDI5MTIsIDAuMDAyOTA5LCAwLjAwMjkxMSIsIFwKLSAgICAgICAgICAiMC4wMDI5MywgMC4wMDI5MzIsIDAuMDAyOTM2LCAwLjAwMjkzOCwgMC4wMDI5MzgsIDAuMDAyOTM5LCAwLjAwMjkzOSIsIFwKLSAgICAgICAgICAiMC4wMDI5NywgMC4wMDI5NzEsIDAuMDAyOTc1LCAwLjAwMjk3NywgMC4wMDI5NzgsIDAuMDAyOTc4LCAwLjAwMjk3OCIsIFwKLSAgICAgICAgICAiMC4wMDMwMzUsIDAuMDAzMDM2LCAwLjAwMzA0MSwgMC4wMDMwNDEsIDAuMDAzMDQzLCAwLjAwMzA0NCwgMC4wMDMwNDQiLCBcCi0gICAgICAgICAgIjAuMDAzMTEyLCAwLjAwMzExMywgMC4wMDMxMTcsIDAuMDAzMTE5LCAwLjAwMzEyMiwgMC4wMDMxMiwgMC4wMDMxMiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzMyOSwgMC4wMDMzMjksIDAuMDAzMzMsIDAuMDAzMzI5LCAwLjAwMzMzLCAwLjAwMzMzLCAwLjAwMzMzMSIsIFwKLSAgICAgICAgICAiMC4wMDMzMiwgMC4wMDMzMiwgMC4wMDMzMjEsIDAuMDAzMzIsIDAuMDAzMzIxLCAwLjAwMzMyMSwgMC4wMDMzMjEiLCBcCi0gICAgICAgICAgIjAuMDAzMzI3LCAwLjAwMzMyNywgMC4wMDMzMjgsIDAuMDAzMzI4LCAwLjAwMzMyOCwgMC4wMDMzMjcsIDAuMDAzMzI5IiwgXAotICAgICAgICAgICIwLjAwMzM0OCwgMC4wMDMzNDgsIDAuMDAzMzQ5LCAwLjAwMzM0OSwgMC4wMDMzNDksIDAuMDAzMzQ5LCAwLjAwMzM0OSIsIFwKLSAgICAgICAgICAiMC4wMDMzODUsIDAuMDAzMzgzLCAwLjAwMzM4NSwgMC4wMDMzODUsIDAuMDAzMzg2LCAwLjAwMzM4NSwgMC4wMDMzODUiLCBcCi0gICAgICAgICAgIjAuMDAzNDQ1LCAwLjAwMzQ0NiwgMC4wMDM0NDYsIDAuMDAzNDQ2LCAwLjAwMzQ0NiwgMC4wMDM0NDYsIDAuMDAzNDQ2IiwgXAotICAgICAgICAgICIwLjAwMzUxMywgMC4wMDM1MTMsIDAuMDAzNTE0LCAwLjAwMzUxNCwgMC4wMDM1MTQsIDAuMDAzNTE0LCAwLjAwMzUxNCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkciOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDA1NCwgMC4wMDQwNTUsIDAuMDA0MDU5LCAwLjAwNDA2MSwgMC4wMDQwNiwgMC4wMDQwNjIsIDAuMDA0MDYzIiwgXAotICAgICAgICAgICIwLjAwNDA1LCAwLjAwNDA1MSwgMC4wMDQwNTYsIDAuMDA0MDU3LCAwLjAwNDA1OCwgMC4wMDQwNTcsIDAuMDA0MDU4IiwgXAotICAgICAgICAgICIwLjAwNDA4NiwgMC4wMDQwODgsIDAuMDA0MDkyLCAwLjAwNDA5NCwgMC4wMDQwOTQsIDAuMDA0MDk0LCAwLjAwNDA5NCIsIFwKLSAgICAgICAgICAiMC4wMDQxMzIsIDAuMDA0MTMzLCAwLjAwNDEzNywgMC4wMDQxMzksIDAuMDA0MTM5LCAwLjAwNDE0LCAwLjAwNDE0IiwgXAotICAgICAgICAgICIwLjAwNDE4OSwgMC4wMDQxOSwgMC4wMDQxOTUsIDAuMDA0MTk2LCAwLjAwNDE5NiwgMC4wMDQxOTcsIDAuMDA0MTk4IiwgXAotICAgICAgICAgICIwLjAwNDI4MiwgMC4wMDQyODQsIDAuMDA0Mjg4LCAwLjAwNDI4OSwgMC4wMDQyOSwgMC4wMDQyOSwgMC4wMDQyOTEiLCBcCi0gICAgICAgICAgIjAuMDA0MzY0LCAwLjAwNDM3LCAwLjAwNDM3NCwgMC4wMDQzNzIsIDAuMDA0MzcyLCAwLjAwNDM3MywgMC4wMDQzNzMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQzMjMsIDAuMDA0MzIzLCAwLjAwNDMyNCwgMC4wMDQzMjMsIDAuMDA0MzI0LCAwLjAwNDMyMywgMC4wMDQzMjQiLCBcCi0gICAgICAgICAgIjAuMDA0MzE0LCAwLjAwNDMxNCwgMC4wMDQzMTUsIDAuMDA0MzE0LCAwLjAwNDMxNSwgMC4wMDQzMTUsIDAuMDA0MzE1IiwgXAotICAgICAgICAgICIwLjAwNDM1MywgMC4wMDQzNTMsIDAuMDA0MzU0LCAwLjAwNDM1NCwgMC4wMDQzNTMsIDAuMDA0MzUyLCAwLjAwNDM1NCIsIFwKLSAgICAgICAgICAiMC4wMDQ0MDMsIDAuMDA0NDA0LCAwLjAwNDQwNCwgMC4wMDQ0MDQsIDAuMDA0NDA0LCAwLjAwNDQwNCwgMC4wMDQ0MDQiLCBcCi0gICAgICAgICAgIjAuMDA0NDY4LCAwLjAwNDQ2OCwgMC4wMDQ0NjksIDAuMDA0NDY5LCAwLjAwNDQ2OSwgMC4wMDQ0NjksIDAuMDA0NDY4IiwgXAotICAgICAgICAgICIwLjAwNDU4NCwgMC4wMDQ1ODQsIDAuMDA0NTg1LCAwLjAwNDU4NSwgMC4wMDQ1ODUsIDAuMDA0NTg1LCAwLjAwNDU4NiIsIFwKLSAgICAgICAgICAiMC4wMDQ2NDksIDAuMDA0NjU3LCAwLjAwNDY1OCwgMC4wMDQ2NTgsIDAuMDA0NjUsIDAuMDA0NjUsIDAuMDA0NjU4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUk4iOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzkxMSwgMC4wMDM5MTIsIDAuMDAzOTE2LCAwLjAwMzkxOCwgMC4wMDM5MTcsIDAuMDAzOTIsIDAuMDAzOTE3IiwgXAotICAgICAgICAgICIwLjAwMzg5MiwgMC4wMDM4OTMsIDAuMDAzODk4LCAwLjAwMzg5OSwgMC4wMDM5LCAwLjAwMzksIDAuMDAzOSIsIFwKLSAgICAgICAgICAiMC4wMDM5MDgsIDAuMDAzOTA5LCAwLjAwMzkxNCwgMC4wMDM5MTUsIDAuMDAzOTE2LCAwLjAwMzkxNiwgMC4wMDM5MTYiLCBcCi0gICAgICAgICAgIjAuMDAzOTQzLCAwLjAwMzk0NCwgMC4wMDM5NDgsIDAuMDAzOTUsIDAuMDAzOTUxLCAwLjAwMzk1MSwgMC4wMDM5NTEiLCBcCi0gICAgICAgICAgIjAuMDAzOTc2LCAwLjAwMzk3NywgMC4wMDM5ODIsIDAuMDAzOTg0LCAwLjAwMzk4NCwgMC4wMDM5ODQsIDAuMDAzOTg0IiwgXAotICAgICAgICAgICIwLjAwNDA1NSwgMC4wMDQwNTcsIDAuMDA0MDYsIDAuMDA0MDYyLCAwLjAwNDA2MiwgMC4wMDQwNjMsIDAuMDA0MDYzIiwgXAotICAgICAgICAgICIwLjAwNDEyOCwgMC4wMDQxMjgsIDAuMDA0MTM0LCAwLjAwNDEzNiwgMC4wMDQxMzYsIDAuMDA0MTM3LCAwLjAwNDEzNyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNTQyNiwgMC4wMDU0MjYsIDAuMDA1NDI2LCAwLjAwNTQyNiwgMC4wMDU0MjYsIDAuMDA1NDI2LCAwLjAwNTQyNiIsIFwKLSAgICAgICAgICAiMC4wMDU0MjQsIDAuMDA1NDI0LCAwLjAwNTQyNCwgMC4wMDU0MjQsIDAuMDA1NDI0LCAwLjAwNTQyNCwgMC4wMDU0MjQiLCBcCi0gICAgICAgICAgIjAuMDA1NDUzLCAwLjAwNTQ1MywgMC4wMDU0NTQsIDAuMDA1NDU0LCAwLjAwNTQ1NCwgMC4wMDU0NTQsIDAuMDA1NDU0IiwgXAotICAgICAgICAgICIwLjAwNTUwNiwgMC4wMDU1MDcsIDAuMDA1NTA3LCAwLjAwNTUwNywgMC4wMDU1MDgsIDAuMDA1NTA4LCAwLjAwNTUwNiIsIFwKLSAgICAgICAgICAiMC4wMDU1NjQsIDAuMDA1NTY1LCAwLjAwNTU2NSwgMC4wMDU1NjUsIDAuMDA1NTY1LCAwLjAwNTU2NSwgMC4wMDU1NjQiLCBcCi0gICAgICAgICAgIjAuMDA1NjUyLCAwLjAwNTY1MiwgMC4wMDU2NTIsIDAuMDA1NjUyLCAwLjAwNTY1MiwgMC4wMDU2NTMsIDAuMDA1NjUzIiwgXAotICAgICAgICAgICIwLjAwNTc0NSwgMC4wMDU3NDUsIDAuMDA1NzQ1LCAwLjAwNTc0OCwgMC4wMDU3NDgsIDAuMDA1NzQ4LCAwLjAwNTc0OCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDM0MTUsIDAuMDAzNDE2LCAwLjAwMzQxOCwgMC4wMDM0MTgsIDAuMDAzNDE5LCAwLjAwMzQxOSwgMC4wMDM0MTkiLCBcCi0gICAgICAgICAgIjAuMDAzNDA5LCAwLjAwMzQxLCAwLjAwMzQxMiwgMC4wMDM0MTMsIDAuMDAzNDEzLCAwLjAwMzQxNCwgMC4wMDM0MTQiLCBcCi0gICAgICAgICAgIjAuMDAzNDI2LCAwLjAwMzQyNywgMC4wMDM0MywgMC4wMDM0MzEsIDAuMDAzNDMxLCAwLjAwMzQzMSwgMC4wMDM0MzEiLCBcCi0gICAgICAgICAgIjAuMDAzNDU5LCAwLjAwMzQ2LCAwLjAwMzQ2MiwgMC4wMDM0NjMsIDAuMDAzNDYzLCAwLjAwMzQ2MywgMC4wMDM0NjQiLCBcCi0gICAgICAgICAgIjAuMDAzNTA3LCAwLjAwMzUwNywgMC4wMDM1MDcsIDAuMDAzNTA4LCAwLjAwMzUwOCwgMC4wMDM1MDksIDAuMDAzNTA5IiwgXAotICAgICAgICAgICIwLjAwMzU5NSwgMC4wMDM1OTUsIDAuMDAzNTk0LCAwLjAwMzU5NCwgMC4wMDM1OTQsIDAuMDAzNTk0LCAwLjAwMzU5NCIsIFwKLSAgICAgICAgICAiMC4wMDM2NzQsIDAuMDAzNjczLCAwLjAwMzY3MiwgMC4wMDM2NzEsIDAuMDAzNjcxLCAwLjAwMzY3MSwgMC4wMDM2NzEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDE4OSwgMC4wMDE4ODksIDAuMDAxODg4LCAwLjAwMTg4OCwgMC4wMDE4ODgsIDAuMDAxODg3LCAwLjAwMTg4OCIsIFwKLSAgICAgICAgICAiMC4wMDE4NjcsIDAuMDAxODY3LCAwLjAwMTg2NywgMC4wMDE4NjcsIDAuMDAxODY3LCAwLjAwMTg2NywgMC4wMDE4NjciLCBcCi0gICAgICAgICAgIjAuMDAxODgyLCAwLjAwMTg4MiwgMC4wMDE4ODIsIDAuMDAxODgyLCAwLjAwMTg4MiwgMC4wMDE4ODEsIDAuMDAxODgxIiwgXAotICAgICAgICAgICIwLjAwMTkyOCwgMC4wMDE5MjcsIDAuMDAxOTI1LCAwLjAwMTkyMywgMC4wMDE5MjMsIDAuMDAxOTIzLCAwLjAwMTkyMyIsIFwKLSAgICAgICAgICAiMC4wMDE5NjIsIDAuMDAxOTYyLCAwLjAwMTk1OCwgMC4wMDE5NTgsIDAuMDAxOTU3LCAwLjAwMTk1NywgMC4wMDE5NTciLCBcCi0gICAgICAgICAgIjAuMDAyMDI4LCAwLjAwMjAyOCwgMC4wMDIwMjMsIDAuMDAyMDIyLCAwLjAwMjAyMiwgMC4wMDIwMjEsIDAuMDAyMDIxIiwgXAotICAgICAgICAgICIwLjAwMjEwMiwgMC4wMDIxMDEsIDAuMDAyMDk2LCAwLjAwMjA5NCwgMC4wMDIwOTMsIDAuMDAyMDkyLCAwLjAwMjA5MiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUU4pICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4xOTk5NzsKLSAgICBmdW5jdGlvbiA6ICJONSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTI2MTcyLCAwLjEzNjc1MSwgMC4yMzE0NzMsIDAuMzg5NDExLCAwLjU0NzE1MiwgMC45MTQ5OTYsIDEuMTI1MzMiLCBcCi0gICAgICAgICAgIjAuMTMxODU4LCAwLjE0MjQzNywgMC4yMzcxNjIsIDAuMzk1MTExLCAwLjU1MjgyOCwgMC45MjExMTMsIDEuMTMxNTMiLCBcCi0gICAgICAgICAgIjAuMTM3OTUxLCAwLjE0ODUyNywgMC4yNDMyNTUsIDAuNDAxMTgxLCAwLjU1ODksIDAuOTI2ODA3LCAxLjEzNzI4IiwgXAotICAgICAgICAgICIwLjE0MzA5NywgMC4xNTM2NzUsIDAuMjQ4NDAxLCAwLjQwNjMxOSwgMC41NjQwNjUsIDAuOTMyNDI3LCAxLjE0MjMyIiwgXAotICAgICAgICAgICIwLjE0NzMzNywgMC4xNTc5MTksIDAuMjUyNjY1LCAwLjQxMDQ4MywgMC41NjgyNzksIDAuOTM2NTQyLCAxLjE0NzA1IiwgXAotICAgICAgICAgICIwLjE1MzA0OSwgMC4xNjM2MzIsIDAuMjU4MzU3LCAwLjQxNjIwMSwgMC41NzM5OTgsIDAuOTQyMTc1LCAxLjE1MjU3IiwgXAotICAgICAgICAgICIwLjE1NzQzMiwgMC4xNjgwMTYsIDAuMjYyNzU5LCAwLjQyMDYxOSwgMC41NzgzNTUsIDAuOTQ2NTMsIDEuMTU2OTIiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTIxMTk1LCAwLjE0MjY1NywgMC4zMzkwMjMsIDAuNjcwNTA1LCAxLjAwMTgxLCAxLjc3NTU4LCAyLjIxNzkiLCBcCi0gICAgICAgICAgIjAuMTIxMiwgMC4xNDI2MDcsIDAuMzM5MTEsIDAuNjcwNDQ4LCAxLjAwMzA1LCAxLjc3OTksIDIuMjIzMzEiLCBcCi0gICAgICAgICAgIjAuMTIxMTk2LCAwLjE0MjY2MSwgMC4zMzkxLCAwLjY3MDU0MiwgMS4wMDMsIDEuNzc4LCAyLjIxNzg4IiwgXAotICAgICAgICAgICIwLjEyMTIyNCwgMC4xNDI2NjcsIDAuMzM5MSwgMC42NzA1NjIsIDEuMDAxOCwgMS43NzcyNSwgMi4yMjA4MyIsIFwKLSAgICAgICAgICAiMC4xMjEyMywgMC4xNDI2OTMsIDAuMzM5NzMzLCAwLjY3MDkzOCwgMS4wMDMwNiwgMS43Nzc3MywgMi4yMjMxIiwgXAotICAgICAgICAgICIwLjEyMTI5NSwgMC4xNDI3MjcsIDAuMzM5NDYxLCAwLjY3MDUzNSwgMS4wMDM3MiwgMS43NzgzNywgMi4yMjEyNyIsIFwKLSAgICAgICAgICAiMC4xMjEyMjMsIDAuMTQyNjI5LCAwLjMzOTU3NCwgMC42NzEzMzksIDEuMDAyNzYsIDEuNzc5NDIsIDIuMjIyNjMiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTA1NjA5LCAwLjExNTI2OCwgMC4yMDIxMjIsIDAuMzQ2ODU2LCAwLjQ5MTYxLCAwLjgyOTE4NiwgMS4wMjIxMSIsIFwKLSAgICAgICAgICAiMC4xMTE2NDQsIDAuMTIxMzAyLCAwLjIwODE1MSwgMC4zNTI5MDMsIDAuNDk3NjMzLCAwLjgzNTE5NSwgMS4wMjgxNSIsIFwKLSAgICAgICAgICAiMC4xMTg1NDksIDAuMTI4MjA2LCAwLjIxNTA2MSwgMC4zNTk4MTIsIDAuNTA0NDkyLCAwLjg0MjEzNiwgMS4wMzUwMSIsIFwKLSAgICAgICAgICAiMC4xMjQzLCAwLjEzMzk2NSwgMC4yMjA3OTIsIDAuMzY1NTI5LCAwLjUxMDI2LCAwLjg0Nzg4NCwgMS4wNDA3NiIsIFwKLSAgICAgICAgICAiMC4xMjkwOTksIDAuMTM4NzYzLCAwLjIyNTYxLCAwLjM3MDMxNiwgMC41MTUwNDQsIDAuODUyNjg5LCAxLjA0NTcyIiwgXAotICAgICAgICAgICIwLjEzNTcsIDAuMTQ1MzY2LCAwLjIzMjIyNCwgMC4zNzY5MDksIDAuNTIxNjI3LCAwLjg1OTIsIDEuMDUyMTMiLCBcCi0gICAgICAgICAgIjAuMTQwNzA4LCAwLjE1MDM2NywgMC4yMzcyMTMsIDAuMzgxOTI1LCAwLjUyNjYwOSwgMC44NjQyMjksIDEuMDU3MTIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTA2MDkxLCAwLjEyNTU3NiwgMC4zMDMxMywgMC41OTk3MTksIDAuODk2MTYxLCAxLjU5MjM2LCAxLjk4OTEyIiwgXAotICAgICAgICAgICIwLjEwNjA5NiwgMC4xMjU0NTMsIDAuMzAzMTEzLCAwLjU5OTE2OCwgMC44OTYxNzIsIDEuNTkyMjksIDEuOTg5MTMiLCBcCi0gICAgICAgICAgIjAuMTA2MDk2LCAwLjEyNTY3NywgMC4zMDMxMjUsIDAuNjAwNjE1LCAwLjg5ODA3NCwgMS41OTIzOSwgMS45ODg5OCIsIFwKLSAgICAgICAgICAiMC4xMDYxMjgsIDAuMTI1NTYxLCAwLjMwMzAzNCwgMC42MDA0ODYsIDAuODk4MTIyLCAxLjU5MjM5LCAxLjk4NjI2IiwgXAotICAgICAgICAgICIwLjEwNjEzMiwgMC4xMjU1NjgsIDAuMzAyNzI2LCAwLjYwMDMxMSwgMC44OTgwODMsIDEuNTg5NjksIDEuOTg0MTIiLCBcCi0gICAgICAgICAgIjAuMTA2MDg1LCAwLjEyNTYwOCwgMC4zMDI3ODUsIDAuNTk5NjEzLCAwLjg5ODAwOSwgMS41OTE3NiwgMS45ODYwMyIsIFwKLSAgICAgICAgICAiMC4xMDYyMjYsIDAuMTI1NTA2LCAwLjMwMjk3NCwgMC42MDAxOTMsIDAuODk3Nzg1LCAxLjU5MTg3LCAxLjk4ODQxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkciOwotICAgICAgdGltaW5nX3NlbnNlIDogbm9uX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiByaXNpbmdfZWRnZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTUxNDYsIDAuMTYyMDQ0LCAwLjI1Njc3MSwgMC40MTQ3LCAwLjU3MjQ2NiwgMC45NDA2OTcsIDEuMTUxMjMiLCBcCi0gICAgICAgICAgIjAuMTU4ODU1LCAwLjE2OTQzNSwgMC4yNjQxNjMsIDAuNDIyMDg4LCAwLjU3OTg1OSwgMC45NDgxNDMsIDEuMTU4NDciLCBcCi0gICAgICAgICAgIjAuMTY4MTI5LCAwLjE3ODcxMywgMC4yNzM0MzUsIDAuNDMxMzY5LCAwLjU4OTEyMiwgMC45NTc0MTUsIDEuMTY3NjUiLCBcCi0gICAgICAgICAgIjAuMTc2MTc2LCAwLjE4Njc1OSwgMC4yODE0ODQsIDAuNDM5NDE0LCAwLjU5NzE3NCwgMC45NjU0MDcsIDEuMTc1OTQiLCBcCi0gICAgICAgICAgIjAuMTgyNjUxLCAwLjE5MzIzMiwgMC4yODc5NTcsIDAuNDQ1ODg4LCAwLjYwMzY0MywgMC45NzE5MzgsIDEuMTgyMTkiLCBcCi0gICAgICAgICAgIjAuMTkxNDMyLCAwLjIwMjAxOCwgMC4yOTY3NDMsIDAuNDU0NjY5LCAwLjYxMjM4MywgMC45ODA3MjcsIDEuMTkwOTkiLCBcCi0gICAgICAgICAgIjAuMTk4NDk3LCAwLjIwOTAzMiwgMC4zMDM3NzksIDAuNDYxNjUsIDAuNjE5NDU5LCAwLjk4NzY1NiwgMS4xOTc5OSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMjEzNDcsIDAuMTQyNzIxLCAwLjMzOTE2NiwgMC42NzA1MTMsIDEuMDAyNjIsIDEuNzc5OTQsIDIuMjIzMzUiLCBcCi0gICAgICAgICAgIjAuMTIxMzQ1LCAwLjE0Mjc2MSwgMC4zMzk1OTIsIDAuNjcwNTMsIDEuMDA0MDEsIDEuNzc5OTMsIDIuMjIzMjMiLCBcCi0gICAgICAgICAgIjAuMTIxMjkxLCAwLjE0MjcwMSwgMC4zMzkzMTYsIDAuNjcwNTIsIDEuMDAyNDYsIDEuNzc5OTIsIDIuMjIzMDUiLCBcCi0gICAgICAgICAgIjAuMTIxMzU2LCAwLjE0MjcyNCwgMC4zMzkxNTksIDAuNjcwNTA4LCAxLjAwMjU5LCAxLjc3OTkxLCAyLjIyMzMxIiwgXAotICAgICAgICAgICIwLjEyMTM0NCwgMC4xNDI3MTgsIDAuMzM5MTEsIDAuNjcwNTIyLCAxLjAwMjQ2LCAxLjc3OTkxLCAyLjIyMzIxIiwgXAotICAgICAgICAgICIwLjEyMTM2MSwgMC4xNDI3OSwgMC4zMzkyNiwgMC42NzA1MzcsIDEuMDAzOTcsIDEuNzc5OSwgMi4yMjMyNyIsIFwKLSAgICAgICAgICAiMC4xMjEzNjMsIDAuMTQyNzgxLCAwLjMzOTA3NCwgMC42NzA1NDIsIDEuMDAzMDQsIDEuNzc5NzcsIDIuMjIxMTkiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTM5ODQzLCAwLjE0OTUwOSwgMC4yMzYzNTcsIDAuMzgxMTI2LCAwLjUyNTc4OCwgMC44NjM0MzQsIDEuMDU2MzgiLCBcCi0gICAgICAgICAgIjAuMTQ3Mjg5LCAwLjE1Njk0OCwgMC4yNDM4MDQsIDAuMzg4NTM3LCAwLjUzMzI0NywgMC44NzA4NDgsIDEuMDYzODQiLCBcCi0gICAgICAgICAgIjAuMTU2NTU1LCAwLjE2NjIxMiwgMC4yNTMwNjgsIDAuMzk3ODAxLCAwLjU0MjUwMSwgMC44ODAxNTgsIDEuMDczMTEiLCBcCi0gICAgICAgICAgIjAuMTY0MjQzLCAwLjE3MzkwMywgMC4yNjA3NTIsIDAuNDA1NDk3LCAwLjU1MDE5LCAwLjg4NzgyMSwgMS4wODA4MSIsIFwKLSAgICAgICAgICAiMC4xNzAyNzEsIDAuMTc5OTMzLCAwLjI2Njc4NCwgMC40MTE1MjEsIDAuNTU2MjQyLCAwLjg5MzgzNywgMS4wODY4MiIsIFwKLSAgICAgICAgICAiMC4xNzg2MTYsIDAuMTg4Mjc0LCAwLjI3NTEyMywgMC40MTk4NjQsIDAuNTY0NTYyLCAwLjkwMjIwMywgMS4wOTUxMSIsIFwKLSAgICAgICAgICAiMC4xODQ5NDksIDAuMTk0NTYxLCAwLjI4MTQyLCAwLjQyNjE2NSwgMC41NzA4ODEsIDAuOTA4NTUyLCAxLjEwMTQ3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwNjEwNCwgMC4xMjU1NDksIDAuMzAzMTI2LCAwLjU5OTI0NCwgMC44OTgwODIsIDEuNTkyNDEsIDEuOTg5MiIsIFwKLSAgICAgICAgICAiMC4xMDYxMTQsIDAuMTI1NjA4LCAwLjMwMjcyMSwgMC41OTk2OTcsIDAuODk2MTE5LCAxLjU5MjM0LCAxLjk4OTI2IiwgXAotICAgICAgICAgICIwLjEwNjEwNywgMC4xMjU2NDgsIDAuMzAzMTIsIDAuNTk5NzQ0LCAwLjg5ODA4OCwgMS41OTI0NSwgMS45ODkzMSIsIFwKLSAgICAgICAgICAiMC4xMDYxMSwgMC4xMjU1NDEsIDAuMzAzMDU2LCAwLjU5OTc2MSwgMC44OTgwODMsIDEuNTkyMzYsIDEuOTg5MjkiLCBcCi0gICAgICAgICAgIjAuMTA2MTA2LCAwLjEyNTU3LCAwLjMwMzEwOSwgMC41OTk3MTMsIDAuODk4MTYxLCAxLjU5MjMsIDEuOTg5MjYiLCBcCi0gICAgICAgICAgIjAuMTA2MTAxLCAwLjEyNTY2NywgMC4zMDMxMDgsIDAuNjAwNTUyLCAwLjg5ODA4MywgMS41OTI0MSwgMS45ODkwMyIsIFwKLSAgICAgICAgICAiMC4xMDYxNDIsIDAuMTI1NTg4LCAwLjMwMzE1MiwgMC42MDAzMTEsIDAuODk4MDY4LCAxLjU5MjUxLCAxLjk4NTQ2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiByaXNpbmdfZWRnZTsKLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTQxODEzLCAwLjE1MTQ3NCwgMC4yMzgzMjgsIDAuMzgzMDU3LCAwLjUyNzc2NCwgMC44NjU0MDMsIDEuMDU4MzYiLCBcCi0gICAgICAgICAgIjAuMTQ3OTcxLCAwLjE1NzYyOSwgMC4yNDQ0NzEsIDAuMzg5MjE4LCAwLjUzMzg5MiwgMC44NzE1MzMsIDEuMDY0NTEiLCBcCi0gICAgICAgICAgIjAuMTU1MjE0LCAwLjE2NDg3MiwgMC4yNTE3MiwgMC4zOTY0NjIsIDAuNTQxMTYsIDAuODc4Nzg2LCAxLjA3MTc1IiwgXAotICAgICAgICAgICIwLjE2MTEyMiwgMC4xNzA3NzksIDAuMjU3NjM1LCAwLjQwMjM3NywgMC41NDcwNDUsIDAuODg0NjkyLCAxLjA3NzY2IiwgXAotICAgICAgICAgICIwLjE2NjA2NywgMC4xNzU3MjgsIDAuMjYyNTgzLCAwLjQwNzMyMSwgMC41NTIwMjMsIDAuODg5NjM3LCAxLjA4MjUzIiwgXAotICAgICAgICAgICIwLjE3Mjg4OSwgMC4xODI1NTQsIDAuMjY5Mzk2LCAwLjQxNDEwNiwgMC41NTg4MzUsIDAuODk2NDU0LCAxLjA4OTMzIiwgXAotICAgICAgICAgICIwLjE3Nzk4NywgMC4xODc2NjIsIDAuMjc0NTEsIDAuNDE5MjI1LCAwLjU2MzkzMywgMC45MDE2MDEsIDEuMDk0NjMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTA2MTA2LCAwLjEyNTY1NCwgMC4zMDMxMjksIDAuNjAwNTU3LCAwLjg5ODA5NywgMS41OTI0MSwgMS45ODUyOSIsIFwKLSAgICAgICAgICAiMC4xMDYxMTgsIDAuMTI1MzM3LCAwLjMwMjcsIDAuNTk5Njg2LCAwLjg5Nzg1NCwgMS41OTIzNSwgMS45ODkyMyIsIFwKLSAgICAgICAgICAiMC4xMDYxMTcsIDAuMTI1NTQ0LCAwLjMwMzEwMywgMC41OTk3MDksIDAuODk4MDkxLCAxLjU5MjM2LCAxLjk4OTE4IiwgXAotICAgICAgICAgICIwLjEwNjExNCwgMC4xMjU2NjUsIDAuMzAzMTMzLCAwLjU5OTE1MiwgMC44OTc4MDIsIDEuNTkyMzYsIDEuOTg5MjQiLCBcCi0gICAgICAgICAgIjAuMTA2MTEsIDAuMTI1NTgzLCAwLjMwMzEzNiwgMC42MDA1NzMsIDAuODk4MTA3LCAxLjU5MjM0LCAxLjk4NjMxIiwgXAotICAgICAgICAgICIwLjEwNjExMywgMC4xMjU1NDUsIDAuMzAzMTMzLCAwLjYwMDQ4NiwgMC44OTgxMDYsIDEuNTkyMzYsIDEuOTg3ODUiLCBcCi0gICAgICAgICAgIjAuMTA2MDI1LCAwLjEyNTU4NywgMC4zMDMxNCwgMC42MDAyOTEsIDAuODk4MDczLCAxLjU5MjUxLCAxLjk4NDg0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiBmYWxsaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE1Mzc4OSwgMC4xNjQzNjQsIDAuMjU5MTA0LCAwLjQxNjk1OCwgMC41NzQ3NTMsIDAuOTQyNjQyLCAxLjE1MzI5IiwgXAotICAgICAgICAgICIwLjE2MTY4NCwgMC4xNzIyNTksIDAuMjY3MDA0LCAwLjQyNDgyNCwgMC41ODI0OTcsIDAuOTUwNzg5LCAxLjE2MDkxIiwgXAotICAgICAgICAgICIwLjE3MDM3MywgMC4xODA5NTQsIDAuMjc1Njg1LCAwLjQzMzUxMiwgMC41OTEzMDUsIDAuOTU5NDkyLCAxLjE2OTg5IiwgXAotICAgICAgICAgICIwLjE3NzMyNywgMC4xODc5MDgsIDAuMjgyNjQsIDAuNDQwNDY5LCAwLjU5ODI1MSwgMC45NjY0MzksIDEuMTc2ODciLCBcCi0gICAgICAgICAgIjAuMTgzNjQ1LCAwLjE5NDIxNywgMC4yODg5NiwgMC40NDY3ODIsIDAuNjA0NTcxLCAwLjk3Mjc2LCAxLjE4MzE3IiwgXAotICAgICAgICAgICIwLjE5MjMzOCwgMC4yMDI5MiwgMC4yOTc2NTQsIDAuNDU1NDY4LCAwLjYxMzI4MywgMC45ODE1MDYsIDEuMTkxODUiLCBcCi0gICAgICAgICAgIjAuMTk4OTAxLCAwLjIwOTQ5LCAwLjMwNDIyNywgMC40NjIwNDEsIDAuNjE5ODYsIDAuOTg4MTcyLCAxLjE5ODQyIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEyMTE5MiwgMC4xNDI2NiwgMC4zMzkxOTUsIDAuNjcxMzk0LCAxLjAwMzc3LCAxLjc3NjQ4LCAyLjIyMTEiLCBcCi0gICAgICAgICAgIjAuMTIxMTkyLCAwLjE0MjY1NywgMC4zMzk2NDMsIDAuNjcwMTQ1LCAxLjAwMzc3LCAxLjc3ODE2LCAyLjIyMTIxIiwgXAotICAgICAgICAgICIwLjEyMTE5NSwgMC4xNDI2NjMsIDAuMzM5MTM0LCAwLjY3MDg3MiwgMS4wMDM3NywgMS43NzgyNiwgMi4yMjExNyIsIFwKLSAgICAgICAgICAiMC4xMjExMzksIDAuMTQyNjQ4LCAwLjMzOTE1NSwgMC42NzA1MzQsIDEuMDAzNzYsIDEuNzc4MjEsIDIuMjIzMTIiLCBcCi0gICAgICAgICAgIjAuMTIxMjMsIDAuMTQyNjUzLCAwLjMzOTIzNiwgMC42NzA1MTEsIDEuMDAzNzgsIDEuNzc4MjYsIDIuMjIxMjkiLCBcCi0gICAgICAgICAgIjAuMTIxMjQzLCAwLjE0MjY5NywgMC4zMzk1MjIsIDAuNjcwODQ3LCAxLjAwMzc2LCAxLjc3ODI1LCAyLjIyMTEzIiwgXAotICAgICAgICAgICIwLjEyMTIzMSwgMC4xNDI2ODEsIDAuMzM5NiwgMC42NzEzMDEsIDEuMDAzNywgMS43Nzk2NSwgMi4yMjExNyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogY2xlYXI7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5ODAwNiwgMC4xMDg1ODEsIDAuMjAzMjkyLCAwLjM2MTE5OSwgMC41MTkwOCwgMC44ODc4NTYsIDEuMDk3OTgiLCBcCi0gICAgICAgICAgIjAuMTA0MDI1LCAwLjExNDU5NiwgMC4yMDkzMywgMC4zNjcyMjUsIDAuNTI0ODM2LCAwLjg5MjgzNCwgMS4xMDMzNiIsIFwKLSAgICAgICAgICAiMC4xMTE0MzIsIDAuMTIyMDA1LCAwLjIxNjcyLCAwLjM3NDY1LCAwLjUzMjU0NCwgMC45MDA0MTUsIDEuMTEwOTYiLCBcCi0gICAgICAgICAgIjAuMTE4MTgsIDAuMTI4NzU0LCAwLjIyMzQ0LCAwLjM4MTM3NiwgMC41MzkyMzUsIDAuOTA3NjU4LCAxLjExODIyIiwgXAotICAgICAgICAgICIwLjEyNDA2OSwgMC4xMzQ2NjEsIDAuMjI5MzU4LCAwLjM4NzIyMSwgMC41NDUzMTgsIDAuOTE0MDIzLCAxLjEyNDg1IiwgXAotICAgICAgICAgICIwLjEzMjM2NSwgMC4xNDI5ODYsIDAuMjM3NjgyLCAwLjM5NTQ4NywgMC41NTM2NDIsIDAuOTIyMjIyLCAxLjEzMjYxIiwgXAotICAgICAgICAgICIwLjEzODcwNywgMC4xNDkzMTksIDAuMjQ0MDcsIDAuNDAxODg3LCAwLjU1OTgyMywgMC45Mjg2MjIsIDEuMTM4OTQiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTIxMDk3LCAwLjE0MjU2NSwgMC4zMzkxNywgMC42NzA1NTgsIDEuMDAyNTksIDEuNzc3OTUsIDIuMjIwMDUiLCBcCi0gICAgICAgICAgIjAuMTIxMTA3LCAwLjE0MjU4OSwgMC4zMzk3LCAwLjY3MDU3MSwgMS4wMDI4OSwgMS43Nzg0MSwgMi4yMjAzNyIsIFwKLSAgICAgICAgICAiMC4xMjExOTQsIDAuMTQyNjU4LCAwLjMzOTEzNywgMC42NzA1NjQsIDEuMDAyNjMsIDEuNzc3MDgsIDIuMjIwODQiLCBcCi0gICAgICAgICAgIjAuMTIxNTY3LCAwLjE0MjkxMiwgMC4zMzkyODEsIDAuNjcwNDcsIDEuMDAyNTksIDEuNzc3MzQsIDIuMjE5NzgiLCBcCi0gICAgICAgICAgIjAuMTIyMDk5LCAwLjE0MzQwMywgMC4zMzk3NzgsIDAuNjcxNjU1LCAxLjAwMjc2LCAxLjc3ODAxLCAyLjIyMDIxIiwgXAotICAgICAgICAgICIwLjEyMjg3NiwgMC4xNDQxMzksIDAuMzM5OTkzLCAwLjY3MDkxNSwgMS4wMDMxNiwgMS43Nzc5NywgMi4yMjA0MiIsIFwKLSAgICAgICAgICAiMC4xMjM3NzcsIDAuMTQ0NzYsIDAuMzM5NzU2LCAwLjY3MTY4MywgMS4wMDMxNCwgMS43NzgwNSwgMi4yMTk1OCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzk0NDUsIDAuMDg5MTM4LCAwLjE3NTk3NCwgMC4zMjA2NjEsIDAuNDY1MzU0LCAwLjgwMzAwNCwgMC45OTYiLCBcCi0gICAgICAgICAgIjAuMDg3NTYzLCAwLjA5NzI1NCwgMC4xODQwOTYsIDAuMzI4Nzg1LCAwLjQ3MzUwOCwgMC44MTEwODcsIDEuMDA0MTIiLCBcCi0gICAgICAgICAgIjAuMDk2OTU2LCAwLjEwNjY0MiwgMC4xOTM0NzUsIDAuMzM4MTYxLCAwLjQ4Mjg2MywgMC44MjA0NDgsIDEuMDEzNDgiLCBcCi0gICAgICAgICAgIjAuMTA0NDA5LCAwLjExNDA5MiwgMC4yMDA5MTEsIDAuMzQ1NjA2LCAwLjQ5MDI3OCwgMC44Mjc4OTcsIDEuMDIwNzgiLCBcCi0gICAgICAgICAgIjAuMTEwNDY1LCAwLjEyMDE0OCwgMC4yMDY5NDcsIDAuMzUxNjM4LCAwLjQ5NjI5OSwgMC44MzM4OTUsIDEuMDI2ODgiLCBcCi0gICAgICAgICAgIjAuMTE4MzIzLCAwLjEyODAwNCwgMC4yMTQ3ODYsIDAuMzU5NDU5LCAwLjUwNDE0LCAwLjg0MTgyNCwgMS4wMzQ3NiIsIFwKLSAgICAgICAgICAiMC4xMjQxNTksIDAuMTMzODI4LCAwLjIyMDYwMiwgMC4zNjUyNjUsIDAuNTA5OTM1LCAwLjg0NzU1NSwgMS4wNDA1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwNjI1OSwgMC4xMjU3MjgsIDAuMzAzMjA5LCAwLjYwMDUwNywgMC44OTgwMTQsIDEuNTkyNTIsIDEuOTg4ODUiLCBcCi0gICAgICAgICAgIjAuMTA2MjY1LCAwLjEyNTY1NSwgMC4zMDMyMDgsIDAuNjAwNTI4LCAwLjg5NzkxOSwgMS41OTE5NywgMS45ODkzMyIsIFwKLSAgICAgICAgICAiMC4xMDY0MTcsIDAuMTI1OTAzLCAwLjMwMjgwOSwgMC42MDA0OTMsIDAuODk4MTk1LCAxLjU5MDI3LCAxLjk4ODk1IiwgXAotICAgICAgICAgICIwLjEwNjg5NywgMC4xMjYxNDYsIDAuMzAzMTk5LCAwLjYwMDU3OCwgMC44OTgwMDksIDEuNTkxOTUsIDEuOTg4NDEiLCBcCi0gICAgICAgICAgIjAuMTA3NDE3LCAwLjEyNjY3OSwgMC4zMDMzNjgsIDAuNjAwNDcxLCAwLjg5Nzk0NCwgMS41OTE5NSwgMS45ODg4MSIsIFwKLSAgICAgICAgICAiMC4xMDgxODgsIDAuMTI3MjM3LCAwLjMwMzM3NywgMC42MDAzMjksIDAuODk3NzQxLCAxLjU5MTkzLCAxLjk4ODkzIiwgXAotICAgICAgICAgICIwLjEwOTE4OSwgMC4xMjc5MTUsIDAuMzAzMjU4LCAwLjYwMDAxMiwgMC44OTc2MjMsIDEuNTkwNTEsIDEuOTg4NjEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJEIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDMzMjksIDAuMDAzMzI5LCAwLjAwMzMzLCAwLjAwMzMyOSwgMC4wMDMzMywgMC4wMDMzMywgMC4wMDMzMzEiLCBcCi0gICAgICAgICAgIjAuMDAzMzIsIDAuMDAzMzIsIDAuMDAzMzIxLCAwLjAwMzMyLCAwLjAwMzMyMSwgMC4wMDMzMjEsIDAuMDAzMzIxIiwgXAotICAgICAgICAgICIwLjAwMzMyNywgMC4wMDMzMjcsIDAuMDAzMzI4LCAwLjAwMzMyOCwgMC4wMDMzMjgsIDAuMDAzMzI3LCAwLjAwMzMyOSIsIFwKLSAgICAgICAgICAiMC4wMDMzNDgsIDAuMDAzMzQ4LCAwLjAwMzM0OSwgMC4wMDMzNDksIDAuMDAzMzQ5LCAwLjAwMzM0OSwgMC4wMDMzNDkiLCBcCi0gICAgICAgICAgIjAuMDAzMzg1LCAwLjAwMzM4MywgMC4wMDMzODUsIDAuMDAzMzg1LCAwLjAwMzM4NiwgMC4wMDMzODUsIDAuMDAzMzg1IiwgXAotICAgICAgICAgICIwLjAwMzQ0NSwgMC4wMDM0NDYsIDAuMDAzNDQ2LCAwLjAwMzQ0NiwgMC4wMDM0NDYsIDAuMDAzNDQ2LCAwLjAwMzQ0NiIsIFwKLSAgICAgICAgICAiMC4wMDM1MTMsIDAuMDAzNTEzLCAwLjAwMzUxNCwgMC4wMDM1MTQsIDAuMDAzNTE0LCAwLjAwMzUxNCwgMC4wMDM1MTQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI5MSwgMC4wMDI5MTEsIDAuMDAyOTE1LCAwLjAwMjkxNywgMC4wMDI5MTcsIDAuMDAyOTE4LCAwLjAwMjkxNyIsIFwKLSAgICAgICAgICAiMC4wMDI4OTYsIDAuMDAyODk3LCAwLjAwMjkwMSwgMC4wMDI5MDMsIDAuMDAyOTAzLCAwLjAwMjkwNiwgMC4wMDI5MDQiLCBcCi0gICAgICAgICAgIjAuMDAyOTAyLCAwLjAwMjkwMywgMC4wMDI5MDgsIDAuMDAyOTExLCAwLjAwMjkxMiwgMC4wMDI5MDksIDAuMDAyOTExIiwgXAotICAgICAgICAgICIwLjAwMjkzLCAwLjAwMjkzMiwgMC4wMDI5MzYsIDAuMDAyOTM4LCAwLjAwMjkzOCwgMC4wMDI5MzksIDAuMDAyOTM5IiwgXAotICAgICAgICAgICIwLjAwMjk3LCAwLjAwMjk3MSwgMC4wMDI5NzUsIDAuMDAyOTc3LCAwLjAwMjk3OCwgMC4wMDI5NzgsIDAuMDAyOTc4IiwgXAotICAgICAgICAgICIwLjAwMzAzNSwgMC4wMDMwMzYsIDAuMDAzMDQxLCAwLjAwMzA0MSwgMC4wMDMwNDMsIDAuMDAzMDQ0LCAwLjAwMzA0NCIsIFwKLSAgICAgICAgICAiMC4wMDMxMTIsIDAuMDAzMTEzLCAwLjAwMzExNywgMC4wMDMxMTksIDAuMDAzMTIyLCAwLjAwMzEyLCAwLjAwMzEyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0MzIzLCAwLjAwNDMyMywgMC4wMDQzMjQsIDAuMDA0MzIzLCAwLjAwNDMyNCwgMC4wMDQzMjMsIDAuMDA0MzI0IiwgXAotICAgICAgICAgICIwLjAwNDMxNCwgMC4wMDQzMTQsIDAuMDA0MzE1LCAwLjAwNDMxNCwgMC4wMDQzMTUsIDAuMDA0MzE1LCAwLjAwNDMxNSIsIFwKLSAgICAgICAgICAiMC4wMDQzNTMsIDAuMDA0MzUzLCAwLjAwNDM1NCwgMC4wMDQzNTQsIDAuMDA0MzUzLCAwLjAwNDM1MiwgMC4wMDQzNTQiLCBcCi0gICAgICAgICAgIjAuMDA0NDAzLCAwLjAwNDQwNCwgMC4wMDQ0MDQsIDAuMDA0NDA0LCAwLjAwNDQwNCwgMC4wMDQ0MDQsIDAuMDA0NDA0IiwgXAotICAgICAgICAgICIwLjAwNDQ2OCwgMC4wMDQ0NjgsIDAuMDA0NDY5LCAwLjAwNDQ2OSwgMC4wMDQ0NjksIDAuMDA0NDY5LCAwLjAwNDQ2OCIsIFwKLSAgICAgICAgICAiMC4wMDQ1ODQsIDAuMDA0NTg0LCAwLjAwNDU4NSwgMC4wMDQ1ODUsIDAuMDA0NTg1LCAwLjAwNDU4NSwgMC4wMDQ1ODYiLCBcCi0gICAgICAgICAgIjAuMDA0NjQ5LCAwLjAwNDY1NywgMC4wMDQ2NTgsIDAuMDA0NjU4LCAwLjAwNDY1LCAwLjAwNDY1LCAwLjAwNDY1OCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDA1NCwgMC4wMDQwNTUsIDAuMDA0MDU5LCAwLjAwNDA2MSwgMC4wMDQwNiwgMC4wMDQwNjIsIDAuMDA0MDYzIiwgXAotICAgICAgICAgICIwLjAwNDA1LCAwLjAwNDA1MSwgMC4wMDQwNTYsIDAuMDA0MDU3LCAwLjAwNDA1OCwgMC4wMDQwNTcsIDAuMDA0MDU4IiwgXAotICAgICAgICAgICIwLjAwNDA4NiwgMC4wMDQwODgsIDAuMDA0MDkyLCAwLjAwNDA5NCwgMC4wMDQwOTQsIDAuMDA0MDk0LCAwLjAwNDA5NCIsIFwKLSAgICAgICAgICAiMC4wMDQxMzIsIDAuMDA0MTMzLCAwLjAwNDEzNywgMC4wMDQxMzksIDAuMDA0MTM5LCAwLjAwNDE0LCAwLjAwNDE0IiwgXAotICAgICAgICAgICIwLjAwNDE4OSwgMC4wMDQxOSwgMC4wMDQxOTUsIDAuMDA0MTk2LCAwLjAwNDE5NiwgMC4wMDQxOTcsIDAuMDA0MTk4IiwgXAotICAgICAgICAgICIwLjAwNDI4MiwgMC4wMDQyODQsIDAuMDA0Mjg4LCAwLjAwNDI4OSwgMC4wMDQyOSwgMC4wMDQyOSwgMC4wMDQyOTEiLCBcCi0gICAgICAgICAgIjAuMDA0MzY0LCAwLjAwNDM3LCAwLjAwNDM3NCwgMC4wMDQzNzIsIDAuMDA0MzcyLCAwLjAwNDM3MywgMC4wMDQzNzMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1NDI2LCAwLjAwNTQyNiwgMC4wMDU0MjYsIDAuMDA1NDI2LCAwLjAwNTQyNiwgMC4wMDU0MjYsIDAuMDA1NDI2IiwgXAotICAgICAgICAgICIwLjAwNTQyNCwgMC4wMDU0MjQsIDAuMDA1NDI0LCAwLjAwNTQyNCwgMC4wMDU0MjQsIDAuMDA1NDI0LCAwLjAwNTQyNCIsIFwKLSAgICAgICAgICAiMC4wMDU0NTMsIDAuMDA1NDUzLCAwLjAwNTQ1NCwgMC4wMDU0NTQsIDAuMDA1NDU0LCAwLjAwNTQ1NCwgMC4wMDU0NTQiLCBcCi0gICAgICAgICAgIjAuMDA1NTA2LCAwLjAwNTUwNywgMC4wMDU1MDcsIDAuMDA1NTA3LCAwLjAwNTUwOCwgMC4wMDU1MDgsIDAuMDA1NTA2IiwgXAotICAgICAgICAgICIwLjAwNTU2NCwgMC4wMDU1NjUsIDAuMDA1NTY1LCAwLjAwNTU2NSwgMC4wMDU1NjUsIDAuMDA1NTY1LCAwLjAwNTU2NCIsIFwKLSAgICAgICAgICAiMC4wMDU2NTIsIDAuMDA1NjUyLCAwLjAwNTY1MiwgMC4wMDU2NTIsIDAuMDA1NjUyLCAwLjAwNTY1MywgMC4wMDU2NTMiLCBcCi0gICAgICAgICAgIjAuMDA1NzQ1LCAwLjAwNTc0NSwgMC4wMDU3NDUsIDAuMDA1NzQ4LCAwLjAwNTc0OCwgMC4wMDU3NDgsIDAuMDA1NzQ4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzOTExLCAwLjAwMzkxMiwgMC4wMDM5MTYsIDAuMDAzOTE4LCAwLjAwMzkxNywgMC4wMDM5MiwgMC4wMDM5MTciLCBcCi0gICAgICAgICAgIjAuMDAzODkyLCAwLjAwMzg5MywgMC4wMDM4OTgsIDAuMDAzODk5LCAwLjAwMzksIDAuMDAzOSwgMC4wMDM5IiwgXAotICAgICAgICAgICIwLjAwMzkwOCwgMC4wMDM5MDksIDAuMDAzOTE0LCAwLjAwMzkxNSwgMC4wMDM5MTYsIDAuMDAzOTE2LCAwLjAwMzkxNiIsIFwKLSAgICAgICAgICAiMC4wMDM5NDMsIDAuMDAzOTQ0LCAwLjAwMzk0OCwgMC4wMDM5NSwgMC4wMDM5NTEsIDAuMDAzOTUxLCAwLjAwMzk1MSIsIFwKLSAgICAgICAgICAiMC4wMDM5NzYsIDAuMDAzOTc3LCAwLjAwMzk4MiwgMC4wMDM5ODQsIDAuMDAzOTg0LCAwLjAwMzk4NCwgMC4wMDM5ODQiLCBcCi0gICAgICAgICAgIjAuMDA0MDU1LCAwLjAwNDA1NywgMC4wMDQwNiwgMC4wMDQwNjIsIDAuMDA0MDYyLCAwLjAwNDA2MywgMC4wMDQwNjMiLCBcCi0gICAgICAgICAgIjAuMDA0MTI4LCAwLjAwNDEyOCwgMC4wMDQxMzQsIDAuMDA0MTM2LCAwLjAwNDEzNiwgMC4wMDQxMzcsIDAuMDA0MTM3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiU04iOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTg5LCAwLjAwMTg4OSwgMC4wMDE4ODgsIDAuMDAxODg4LCAwLjAwMTg4OCwgMC4wMDE4ODcsIDAuMDAxODg4IiwgXAotICAgICAgICAgICIwLjAwMTg2NywgMC4wMDE4NjcsIDAuMDAxODY3LCAwLjAwMTg2NywgMC4wMDE4NjcsIDAuMDAxODY3LCAwLjAwMTg2NyIsIFwKLSAgICAgICAgICAiMC4wMDE4ODIsIDAuMDAxODgyLCAwLjAwMTg4MiwgMC4wMDE4ODIsIDAuMDAxODgyLCAwLjAwMTg4MSwgMC4wMDE4ODEiLCBcCi0gICAgICAgICAgIjAuMDAxOTI4LCAwLjAwMTkyNywgMC4wMDE5MjUsIDAuMDAxOTIzLCAwLjAwMTkyMywgMC4wMDE5MjMsIDAuMDAxOTIzIiwgXAotICAgICAgICAgICIwLjAwMTk2MiwgMC4wMDE5NjIsIDAuMDAxOTU4LCAwLjAwMTk1OCwgMC4wMDE5NTcsIDAuMDAxOTU3LCAwLjAwMTk1NyIsIFwKLSAgICAgICAgICAiMC4wMDIwMjgsIDAuMDAyMDI4LCAwLjAwMjAyMywgMC4wMDIwMjIsIDAuMDAyMDIyLCAwLjAwMjAyMSwgMC4wMDIwMjEiLCBcCi0gICAgICAgICAgIjAuMDAyMTAyLCAwLjAwMjEwMSwgMC4wMDIwOTYsIDAuMDAyMDk0LCAwLjAwMjA5MywgMC4wMDIwOTIsIDAuMDAyMDkyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzNDE1LCAwLjAwMzQxNiwgMC4wMDM0MTgsIDAuMDAzNDE4LCAwLjAwMzQxOSwgMC4wMDM0MTksIDAuMDAzNDE5IiwgXAotICAgICAgICAgICIwLjAwMzQwOSwgMC4wMDM0MSwgMC4wMDM0MTIsIDAuMDAzNDEzLCAwLjAwMzQxMywgMC4wMDM0MTQsIDAuMDAzNDE0IiwgXAotICAgICAgICAgICIwLjAwMzQyNiwgMC4wMDM0MjcsIDAuMDAzNDMsIDAuMDAzNDMxLCAwLjAwMzQzMSwgMC4wMDM0MzEsIDAuMDAzNDMxIiwgXAotICAgICAgICAgICIwLjAwMzQ1OSwgMC4wMDM0NiwgMC4wMDM0NjIsIDAuMDAzNDYzLCAwLjAwMzQ2MywgMC4wMDM0NjMsIDAuMDAzNDY0IiwgXAotICAgICAgICAgICIwLjAwMzUwNywgMC4wMDM1MDcsIDAuMDAzNTA3LCAwLjAwMzUwOCwgMC4wMDM1MDgsIDAuMDAzNTA5LCAwLjAwMzUwOSIsIFwKLSAgICAgICAgICAiMC4wMDM1OTUsIDAuMDAzNTk1LCAwLjAwMzU5NCwgMC4wMDM1OTQsIDAuMDAzNTk0LCAwLjAwMzU5NCwgMC4wMDM1OTQiLCBcCi0gICAgICAgICAgIjAuMDAzNjc0LCAwLjAwMzY3MywgMC4wMDM2NzIsIDAuMDAzNjcxLCAwLjAwMzY3MSwgMC4wMDM2NzEsIDAuMDAzNjcxIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihSTikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxMDU1Njc7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxMDQ1Njg7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxMDU1Njc7Ci0gICAgY2xvY2sgOiB0cnVlOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDU5MywgMC4wMDA1OTMsIDAuMDAwNTkyLCAwLjAwMDU5MywgMC4wMDA1OTIsIDAuMDAwNTkyLCAwLjAwMDU5MiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDYxNSwgMC4wMDA2MDEsIDAuMDAwNTk3LCAwLjAwMDU5NSwgMC4wMDA1OTUsIDAuMDAwNTk1LCAwLjAwMDU5NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJHIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9mYWxsaW5nOwotICAgICAgd2hlbiA6ICJEJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMV9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjA0Mzc1LCAtMC4wNDUsIC0wLjA1MTI1LCAtMC4wNTc1LCAtMC4wNjM3NSwgLTAuMDcyNSwgLTAuMDgyNSIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNSwgLTAuMDU2MjUsIC0wLjA2MjUsIC0wLjA2ODc1LCAtMC4wNzc1LCAtMC4wODc1IiwgXAotICAgICAgICAgICItMC4wNjEyNSwgLTAuMDU2MjUsIC0wLjA2MjUsIC0wLjA2ODc1LCAtMC4wNzUsIC0wLjA4Mzc1LCAtMC4wODc1IiwgXAotICAgICAgICAgICItMC4wNjc1LCAtMC4wNjI1LCAtMC4wNjg3NSwgLTAuMDc1LCAtMC4wODEyNSwgLTAuMDksIC0wLjA5Mzc1IiwgXAotICAgICAgICAgICItMC4wNzM3NSwgLTAuMDY4NzUsIC0wLjA2ODc1LCAtMC4wNzUsIC0wLjA4MTI1LCAtMC4wOSwgLTAuMSIsIFwKLSAgICAgICAgICAiLTAuMDc3NSwgLTAuMDcyNSwgLTAuMDc4NzUsIC0wLjA4NSwgLTAuMDkxMjUsIC0wLjEsIC0wLjEwMzc1IiwgXAotICAgICAgICAgICItMC4wODYyNSwgLTAuMDgxMjUsIC0wLjA4MTI1LCAtMC4wODc1LCAtMC4wOTM3NSwgLTAuMTAyNSwgLTAuMTEyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQmU04iOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4xMzI1NjksIDAuMTM5MTIyLCAwLjE0NTY4NCwgMC4xNTEzMiwgMC4xNTU4MDIsIDAuMTYxNzM2LCAwLjE2NjM2MyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJHIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfZmFsbGluZzsKLSAgICAgIHdoZW4gOiAiRCZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzFfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTYyNSwgMC4wNTEyNSwgMC4wNTc1LCAwLjA3NjI1LCAwLjA5NSwgMC4xMjI1LCAwLjE0NSIsIFwKLSAgICAgICAgICAiMC4wNjEyNSwgMC4wNTYyNSwgMC4wNjI1LCAwLjA4MTI1LCAwLjA5Mzc1LCAwLjEyMTI1LCAwLjE0Mzc1IiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDYyNSwgMC4wNjg3NSwgMC4wODEyNSwgMC4xLCAwLjEyMTI1LCAwLjE0Mzc1IiwgXAotICAgICAgICAgICIwLjA3Mzc1LCAwLjA2ODc1LCAwLjA3NSwgMC4wODc1LCAwLjEsIDAuMTI3NSwgMC4xNSIsIFwKLSAgICAgICAgICAiMC4wOCwgMC4wNzUsIDAuMDgxMjUsIDAuMDg3NSwgMC4xMDYyNSwgMC4xMjc1LCAwLjE1IiwgXAotICAgICAgICAgICIwLjA5LCAwLjA4NSwgMC4wODUsIDAuMDk3NSwgMC4xMSwgMC4xMzEyNSwgMC4xNTM3NSIsIFwKLSAgICAgICAgICAiMC4wOTI1LCAwLjA4NzUsIDAuMDkzNzUsIDAuMSwgMC4xMTI1LCAwLjEzMzc1LCAwLjE1NjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTTikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjE1MjI7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjE1MjI7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjE0NTU3OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDI5NiwgMC4wMDAyOTYsIDAuMDAwMjk2LCAwLjAwMDI5NiwgMC4wMDAyOTYsIDAuMDAwMjk2LCAwLjAwMDI5NiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDMxNSwgMC4wMDAzMDQsIDAuMDAwMjk5LCAwLjAwMDI5OCwgMC4wMDAyOTcsIDAuMDAwMjk3LCAwLjAwMDI5NyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQiOwotICAgICAgc2RmX2NvbmQgOiAiRCA9PSAxJ2IwIjsKLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjA4ODk3NCwgMC4wOTcxNzMsIDAuMTA2MzI1LCAwLjExMzI0LCAwLjExODY2NCwgMC4xMjU2NDYsIDAuMTMwNzY5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkciOwotICAgICAgdGltaW5nX3R5cGUgOiByZWNvdmVyeV9mYWxsaW5nOwotICAgICAgd2hlbiA6ICIhRCZSTiI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fUk5fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChyZWNvdmVyeV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMCwgLTAuMDA1LCAtMC4wMTEyNSwgLTAuMDE3NSwgLTAuMDIzNzUsIC0wLjAyNzUsIC0wLjAzIiwgXAotICAgICAgICAgICIwLjAwNSwgMCwgLTAuMDA2MjUsIC0wLjAxMjUsIC0wLjAxODc1LCAtMC4wMjI1LCAtMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMDExMjUsIDAuMDA2MjUsIC0wLjAwNjI1LCAtMC4wMDYyNSwgLTAuMDEyNSwgLTAuMDE2MjUsIC0wLjAxODc1IiwgXAotICAgICAgICAgICIwLjAxNzUsIDAuMDA2MjUsIDAsIC0wLjAwNjI1LCAtMC4wMDYyNSwgLTAuMDE2MjUsIC0wLjAxODc1IiwgXAotICAgICAgICAgICIwLjAxNzUsIDAuMDEyNSwgMCwgMCwgLTAuMDA2MjUsIC0wLjAxLCAtMC4wMTI1IiwgXAotICAgICAgICAgICIwLjAyMTI1LCAwLjAxNjI1LCAwLjAxLCAwLjAwMzc1LCAtMC4wMDI1LCAtMC4wMDYyNSwgLTAuMDA4NzUiLCBcCi0gICAgICAgICAgIjAuMDIzNzUsIDAuMDE4NzUsIDAuMDEyNSwgMC4wMDYyNSwgMCwgLTAuMDAzNzUsIC0wLjAwNjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIHRpbWluZ190eXBlIDogcmVjb3ZlcnlfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRyI7Ci0gICAgICBzZGZfY29uZCA6ICJHID09IDEnYjAiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHJlY292ZXJ5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjI1LCAwLjAwMTI1LCAwLjAwMTI1LCAwLjAwMTI1LCAwLjAwMTI1LCAwLjAwMzc1LCAwLjAwMTI1IiwgXAotICAgICAgICAgICIwLjAxMTI1LCAwLjAwNjI1LCAwLjAwNjI1LCAwLjAwNjI1LCAwLjAwNjI1LCAwLjAwODc1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICIwLjAxNzUsIDAuMDEyNSwgMC4wMDYyNSwgMC4wMDYyNSwgMC4wMDYyNSwgMC4wMDg3NSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiMC4wMTc1LCAwLjAxMjUsIDAuMDEyNSwgMC4wMTI1LCAwLjAxMjUsIDAuMDA4NzUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4wMTc1LCAwLjAxODc1LCAwLjAxMjUsIDAuMDEyNSwgMC4wMTI1LCAwLjAwODc1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMDIxMjUsIDAuMDIyNSwgMC4wMTYyNSwgMC4wMTYyNSwgMC4wMTYyNSwgMC4wMTI1LCAwLjAxNjI1IiwgXAotICAgICAgICAgICIwLjAyMzc1LCAwLjAyNSwgMC4wMTg3NSwgMC4wMTg3NSwgMC4wMTg3NSwgMC4wMTUsIDAuMDE4NzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJlbW92YWxfZmFsbGluZzsKLSAgICAgIHdoZW4gOiAiIUQmUk4iOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1JOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQocmVtb3ZhbF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTI1LCAwLjAyMzc1LCAwLjAzLCAwLjAzNjI1LCAwLjA0MjUsIDAuMDQ2MjUsIDAuMDQ4NzUiLCBcCi0gICAgICAgICAgIjAuMDA3NSwgMC4wMTg3NSwgMC4wMjUsIDAuMDMxMjUsIDAuMDM3NSwgMC4wNDEyNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4wMDEyNSwgMC4wMTI1LCAwLjAxODc1LCAwLjAyNSwgMC4wMzEyNSwgMC4wMzUsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiMC4wMDEyNSwgMC4wMDYyNSwgMC4wMTg3NSwgMC4wMTg3NSwgMC4wMjUsIDAuMDI4NzUsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDA1LCAwLjAwNjI1LCAwLjAxMjUsIDAuMDE4NzUsIDAuMDI1LCAwLjAyODc1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wMDg3NSwgMC4wMDI1LCAwLjAwODc1LCAwLjAxNSwgMC4wMTUsIDAuMDI1LCAwLjAyNzUiLCBcCi0gICAgICAgICAgIi0wLjAxMTI1LCAtMC4wMDYyNSwgMC4wMDYyNSwgMC4wMTI1LCAwLjAxMjUsIDAuMDIyNSwgMC4wMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUk4iOwotICAgICAgdGltaW5nX3R5cGUgOiByZW1vdmFsX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUciOwotICAgICAgc2RmX2NvbmQgOiAiRyA9PSAxJ2IwIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChyZW1vdmFsX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjI1LCAwLjAxMTI1LCAwLjAxNzUsIDAuMDE3NSwgMC4wMTc1LCAwLjAyMTI1LCAwLjAyMzc1IiwgXAotICAgICAgICAgICIwLjAwMTI1LCAwLjAwNjI1LCAwLjAxMjUsIDAuMDEyNSwgMC4wMTI1LCAwLjAxNjI1LCAwLjAxODc1IiwgXAotICAgICAgICAgICItMC4wMDUsIDAsIDAuMDA2MjUsIDAuMDA2MjUsIDAuMDEyNSwgMC4wMTYyNSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDA1LCAwLCAwLCAwLjAwNjI1LCAwLjAwNjI1LCAwLjAxLCAwLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjAwNSwgLTAuMDA2MjUsIDAsIDAsIDAuMDA2MjUsIDAuMDEsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDA4NzUsIC0wLjAxLCAtMC4wMDM3NSwgLTAuMDAzNzUsIDAuMDAyNSwgMC4wMDYyNSwgMC4wMDg3NSIsIFwKLSAgICAgICAgICAiLTAuMDE3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIC0wLjAwNjI1LCAwLCAtMC4wMDI1LCAwIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBUTEFUWDEgKgotICogLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChUTEFUWDEpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC42OTAxMjE7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgbGF0Y2ggKFFJTlQsTjApIHsKLSAgICBkYXRhX2luIDogIkQiOwotICAgIGVuYWJsZSA6ICJHIjsKLSAgfQotICBwaW4oRCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjQ2MzI3OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDY0NTUxOTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2NDYzMjc7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjg4LCAwLjAwMDI5LCAwLjAwMDI5LCAwLjAwMDI5LCAwLjAwMDI5MSwgMC4wMDAyOTEsIDAuMDAwMjkxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzExLCAwLjAwMDMwMSwgMC4wMDAzLCAwLjAwMDI5OSwgMC4wMDAyOTksIDAuMDAwMjk4LCAwLjAwMDI5OCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJHIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9mYWxsaW5nOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAwNjI1LCAwLjAwNSwgMC4wMTEyNSwgMC4wMTc1LCAwLjAyMzc1LCAwLjAyNzUsIDAuMDMiLCBcCi0gICAgICAgICAgIi0wLjAxMTI1LCAwLCAwLjAwNjI1LCAwLjAxMjUsIDAuMDE4NzUsIDAuMDIyNSwgMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjAxNzUsIC0wLjAwNjI1LCAwLCAwLjAwNjI1LCAwLjAxMjUsIDAuMDE2MjUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMCwgMC4wMDYyNSwgMC4wMSwgMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLCAwLjAwMzc1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjAzMzc1LCAtMC4wMjg3NSwgLTAuMDE2MjUsIC0wLjAxLCAtMC4wMDM3NSwgMCwgMC4wMDI1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwMjUsIDAiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMTg3NSwgLTAuMDEzNzUsIC0wLjAwNzUsIC0wLjAwNzUsIC0wLjAwNzUsIC0wLjAwMzc1LCAtMC4wMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMTI1LCAtMC4wMTI1LCAtMC4wMDg3NSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTg3NSwgLTAuMDE4NzUsIC0wLjAxNSwgLTAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxNSwgLTAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzMTI1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMjUsIC0wLjAyMTI1LCAtMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDQ2MjUsIC0wLjA0MTI1LCAtMC4wMzUsIC0wLjAyODc1LCAtMC4wMjg3NSwgLTAuMDI1LCAtMC4wMjI1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMjc1LCAtMC4wMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX2ZhbGxpbmc7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEyNSwgMC4wMDc1LCAtMC4wMDUsIC0wLjAxMTI1LCAtMC4wMTEyNSwgLTAuMDIxMjUsIC0wLjAyMzc1IiwgXAotICAgICAgICAgICIwLjAxNzUsIDAuMDEyNSwgMC4wMDYyNSwgMCwgLTAuMDA2MjUsIC0wLjAxNjI1LCAtMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4wMywgMC4wMTg3NSwgMC4wMTI1LCAwLjAwNjI1LCAwLCAtMC4wMDM3NSwgLTAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4wMzYyNSwgMC4wMjUsIDAuMDE4NzUsIDAuMDEyNSwgMC4wMDYyNSwgLTAuMDAzNzUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICIwLjAzNjI1LCAwLjAzMTI1LCAwLjAxODc1LCAwLjAxMjUsIDAuMDEyNSwgMC4wMDI1LCAwIiwgXAotICAgICAgICAgICIwLjA0NjI1LCAwLjAzNSwgMC4wMjg3NSwgMC4wMjI1LCAwLjAxNjI1LCAwLjAwNjI1LCAwLjAwMzc1IiwgXAotICAgICAgICAgICIwLjA0ODc1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDI1LCAwLjAxODc1LCAwLjAxNSwgMC4wMDYyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzMTI1LCAwLjAyNjI1LCAwLjAyLCAwLjAyLCAwLjAyLCAwLjAyMjUsIDAuMDIiLCBcCi0gICAgICAgICAgIjAuMDM2MjUsIDAuMDMxMjUsIDAuMDI1LCAwLjAyNSwgMC4wMjUsIDAuMDI3NSwgMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMDQyNSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAzMTI1LCAwLjAzMTI1LCAwLjAyNzUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMDQyNSwgMC4wMzc1LCAwLjAzNzUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMzM3NSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4wNDg3NSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzNzUsIDAuMDM3NSwgMC4wMzM3NSwgMC4wMzc1IiwgXAotICAgICAgICAgICIwLjA1MjUsIDAuMDQ3NSwgMC4wNDc1LCAwLjA0MTI1LCAwLjA0MTI1LCAwLjAzNzUsIDAuMDQxMjUiLCBcCi0gICAgICAgICAgIjAuMDYxMjUsIDAuMDUsIDAuMDUsIDAuMDQzNzUsIDAuMDQzNzUsIDAuMDQ2MjUsIDAuMDQzNzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEcpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY0MDY5OTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2NDA2OTk7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjQwNjI3OwotICAgIGNsb2NrIDogdHJ1ZTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDIzMjIsIDAuMDAyMzIxLCAwLjAwMjQxNywgMC4wMDI1MDgsIDAuMDAyNjMzLCAwLjAwMjg3NSwgMC4wMDMwNjYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDQwNDUsIDAuMDA0MDQ3LCAwLjAwNDEyNSwgMC4wMDQyMzUsIDAuMDA0MzY1LCAwLjAwNDYzLCAwLjAwNDgxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkciOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFEIjsKLSAgICAgIHNkZl9jb25kIDogIkQgPT0gMSdiMCI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4xMDU0OTIsIDAuMTEzNTIzLCAwLjEyMTk2NSwgMC4xMjg0MzEsIDAuMTMzNTQzLCAwLjE0MDQxNSwgMC4xNDU2OTEiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFEpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4zNDYxNDE7Ci0gICAgZnVuY3Rpb24gOiAiUUlOVCI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDkyMzU4LCAwLjExMDczOCwgMC4yMTUwMSwgMC4zMDY4NzQsIDAuNDI4NTczLCAwLjY3MzAyNCwgMC44MjY2NDEiLCBcCi0gICAgICAgICAgIjAuMDk4NDI5LCAwLjExNjc3OSwgMC4yMjEwOTgsIDAuMzEyNDk0LCAwLjQzNDcsIDAuNjgwMTk4LCAwLjgzMzE5OCIsIFwKLSAgICAgICAgICAiMC4xMDUyNDksIDAuMTIzNjE3LCAwLjIyNzk3NiwgMC4zMTk4NDIsIDAuNDQxNTQxLCAwLjY4NjA5NSwgMC44Mzk5MzgiLCBcCi0gICAgICAgICAgIjAuMTEwNjEyLCAwLjEyOTA4MSwgMC4yMzI4NTQsIDAuMzI1MTg0LCAwLjQ0Njg4OSwgMC42OTIzNTgsIDAuODQ1MzY5IiwgXAotICAgICAgICAgICIwLjExNTQ1OCwgMC4xMzM4NTYsIDAuMjM3NjY0LCAwLjMyOTkzOSwgMC40NTE2ODYsIDAuNjk2MjQ3LCAwLjg1MDE2MiIsIFwKLSAgICAgICAgICAiMC4xMjE1OTcsIDAuMTM5OTU4LCAwLjI0NDAwNSwgMC4zMzU2NDUsIDAuNDU3OTE5LCAwLjcwMjc3NywgMC44NTYyNyIsIFwKLSAgICAgICAgICAiMC4xMjY0MTUsIDAuMTQ0NjU4LCAwLjI0ODY0MiwgMC4zNDA3MiwgMC40NjMxMDMsIDAuNzA3MzA2LCAwLjg2MDkzOCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjkwMTMsIDAuMTA3MzkyLCAwLjMyNjMyOCwgMC41MTk1MjQsIDAuNzc1Njc5LCAxLjI4ODI3LCAxLjYxMjY0IiwgXAotICAgICAgICAgICIwLjA2OTExLCAwLjEwNzQ3OCwgMC4zMjY1NDMsIDAuNTE4MDgzLCAwLjc3NTU0NCwgMS4yOTI1OSwgMS42MTQ1NiIsIFwKLSAgICAgICAgICAiMC4wNjg4NjYsIDAuMTA3NDQyLCAwLjMyNjMzMywgMC41MTk0NzMsIDAuNzc1NTIsIDEuMjg4NDIsIDEuNjEzMzMiLCBcCi0gICAgICAgICAgIjAuMDY4ODc0LCAwLjEwNzM5NSwgMC4zMjU0ODMsIDAuNTE5NDg5LCAwLjc3NTU2OSwgMS4yOTE2NSwgMS42MTM0OSIsIFwKLSAgICAgICAgICAiMC4wNjkxMTUsIDAuMTA3NDc1LCAwLjMyNTg4OCwgMC41MTk3MDgsIDAuNzc2MTExLCAxLjI4OTg4LCAxLjYxNDM0IiwgXAotICAgICAgICAgICIwLjA2OTA3OSwgMC4xMDc1NTYsIDAuMzI2MDQ3LCAwLjUxODY2NiwgMC43NzU4NDEsIDEuMjkwMjksIDEuNjE0MDIiLCBcCi0gICAgICAgICAgIjAuMDY5MDI0LCAwLjEwNzQ3MiwgMC4zMjYxNTIsIDAuNTE5NDc2LCAwLjc3Njg2OSwgMS4yOTA4MywgMS42MTM4MiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTMwMTQsIDAuMTExMjI4LCAwLjIxMzgwNCwgMC4zMDQyOTYsIDAuNDI0OTQ2LCAwLjY2NjQwOSwgMC44MTc4NTIiLCBcCi0gICAgICAgICAgIjAuMDk4NzAxLCAwLjExNjgwOCwgMC4yMTk0NSwgMC4zMDk5MzYsIDAuNDMwNjc1LCAwLjY3MjEzOCwgMC44MjM0ODIiLCBcCi0gICAgICAgICAgIjAuMTA0Nzk1LCAwLjEyMjk2LCAwLjIyNTUzMSwgMC4zMTYwNTQsIDAuNDM2NjM3LCAwLjY3ODAwNiwgMC44MjkwNTkiLCBcCi0gICAgICAgICAgIjAuMTA5NzE3LCAwLjEyNzg4LCAwLjIzMDQwNCwgMC4zMjA5NTcsIDAuNDQxODA0LCAwLjY4MzUxNywgMC44MzM5NzUiLCBcCi0gICAgICAgICAgIjAuMTEzODg4LCAwLjEzMjA1NywgMC4yMzQ1NzQsIDAuMzI1MTE5LCAwLjQ0NTgxNSwgMC42ODcyNiwgMC44MzgxNzIiLCBcCi0gICAgICAgICAgIjAuMTE5NDE4LCAwLjEzNzU4LCAwLjI0MDE5OSwgMC4zMzA3MzksIDAuNDUxNDU5LCAwLjY5MzA1LCAwLjg0Mzg5MyIsIFwKLSAgICAgICAgICAiMC4xMjM2MTMsIDAuMTQxNzUyLCAwLjI0NDMzOSwgMC4zMzQ5MTcsIDAuNDU1NjI2LCAwLjY5NzA3MSwgMC44NDgxNzQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY2NTgsIDAuMTAzNjYzLCAwLjMxNTM4NiwgMC41MDIxNTQsIDAuNzQ5MjYsIDEuMjQ2MTMsIDEuNTYwNjIiLCBcCi0gICAgICAgICAgIjAuMDY2NTc5LCAwLjEwMzY3NCwgMC4zMTUzNzYsIDAuNTAxMDEsIDAuNzQ5MjM1LCAxLjI0NjE0LCAxLjU2MDU5IiwgXAotICAgICAgICAgICIwLjA2NjU3OSwgMC4xMDM2NiwgMC4zMTQ4NDYsIDAuNTAxMDI3LCAwLjc0ODg0OCwgMS4yNDUwMywgMS41NTU5NCIsIFwKLSAgICAgICAgICAiMC4wNjY1OTIsIDAuMTAzNjY2LCAwLjMxNDkxMSwgMC41MDIxNDYsIDAuNzUxMjE1LCAxLjI0NjU4LCAxLjU1NzA2IiwgXAotICAgICAgICAgICIwLjA2NjU5MSwgMC4xMDM2NSwgMC4zMTQ0MywgMC41MDIxLCAwLjc0OTk2MywgMS4yNDY4NCwgMS41NTg1NyIsIFwKLSAgICAgICAgICAiMC4wNjY2MTcsIDAuMTAzNTY2LCAwLjMxNTI1NywgMC41MDIwNTQsIDAuNzQ5OTYzLCAxLjI0ODg4LCAxLjU1NzA3IiwgXAotICAgICAgICAgICIwLjA2NjU0OSwgMC4xMDM1ODcsIDAuMzE0NTcsIDAuNTAxOTg3LCAwLjc0OTkyOSwgMS4yNDcyMywgMS41NTk4OCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJHIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5vbl91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcmlzaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExNTQ2LCAwLjEzMzg3NSwgMC4yMzc4MTksIDAuMzI5NzcyLCAwLjQ1MjMwNSwgMC42OTcyMDcsIDAuODUwMTk1IiwgXAotICAgICAgICAgICIwLjEyMzU3MSwgMC4xNDE5ODgsIDAuMjQ2MjI3LCAwLjMzNzg2MSwgMC40NTk3NjgsIDAuNzA1MzIxLCAwLjg1ODMxMyIsIFwKLSAgICAgICAgICAiMC4xMzE5MSwgMC4xNTAxNiwgMC4yNTQ1NDMsIDAuMzQ2MTg2LCAwLjQ2ODMxNSwgMC43MTM1OSwgMC44NjY2MDciLCBcCi0gICAgICAgICAgIjAuMTM3ODQ0LCAwLjE1NjIyNiwgMC4yNjA0NTksIDAuMzUyMTY3LCAwLjQ3NDc2OSwgMC43MTk1NDYsIDAuODcyNTA1IiwgXAotICAgICAgICAgICIwLjE0MjYzNCwgMC4xNjA5NDgsIDAuMjY0ODQzLCAwLjM1NjkwNCwgMC40NzkyMzksIDAuNzIzNDg0LCAwLjg3NzMyNSIsIFwKLSAgICAgICAgICAiMC4xNDg5ODQsIDAuMTY3NDc2LCAwLjI3MTQ0MSwgMC4zNjM1NDMsIDAuNDg1OTcyLCAwLjczMDc1NSwgMC44ODI3OTUiLCBcCi0gICAgICAgICAgIjAuMTUzNjcsIDAuMTcxOTk1LCAwLjI3NjMzMywgMC4zNjc2MjIsIDAuNDg5OTIzLCAwLjczNTQyMiwgMC44ODg0MjEiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY5MDY1LCAwLjEwNzQwNCwgMC4zMjU4MzksIDAuNTE5MDE2LCAwLjc3Njc4OCwgMS4yOTE4NSwgMS42MTMzNSIsIFwKLSAgICAgICAgICAiMC4wNjkwNzEsIDAuMTA3Mjc4LCAwLjMyNjI0MiwgMC41MTg5NiwgMC43NzQ4ODksIDEuMjkxODYsIDEuNjEzMzYiLCBcCi0gICAgICAgICAgIjAuMDY4OTgxLCAwLjEwNzU2MiwgMC4zMjY1MjUsIDAuNTE5MTk3LCAwLjc3NjEzNiwgMS4yOTI1OCwgMS42MTQ1NSIsIFwKLSAgICAgICAgICAiMC4wNjkwNjcsIDAuMTA3NDMyLCAwLjMyNjI2MiwgMC41MTk0MTksIDAuNzc3NDMxLCAxLjI5MjU4LCAxLjYxNDUiLCBcCi0gICAgICAgICAgIjAuMDY5MDI4LCAwLjEwNzUwNSwgMC4zMjU4MjUsIDAuNTE5MTg1LCAwLjc3NjUyNSwgMS4yOTA1MywgMS42MTQ1NCIsIFwKLSAgICAgICAgICAiMC4wNjg5OCwgMC4xMDc1MDIsIDAuMzI2MTI1LCAwLjUxOTc3NCwgMC43Nzc0MTMsIDEuMjkyNDUsIDEuNjEyMDQiLCBcCi0gICAgICAgICAgIjAuMDY5MTY1LCAwLjEwNzM4NywgMC4zMjY0OTYsIDAuNTE4NTAyLCAwLjc3NTcyOSwgMS4yOTI0NiwgMS42MTQ0Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwNTQ5MiwgMC4xMjM2NDEsIDAuMjI2Mjg3LCAwLjMxNjc5LCAwLjQzNzY0NSwgMC42NzkzMTMsIDAuODMwMjM1IiwgXAotICAgICAgICAgICIwLjExMzUyMywgMC4xMzE3NSwgMC4yMzQyODIsIDAuMzI0ODMsIDAuNDQ1NjM5LCAwLjY4NzI5OSwgMC44Mzc4NzYiLCBcCi0gICAgICAgICAgIjAuMTIxOTY1LCAwLjE0MDEyMiwgMC4yNDI3MjgsIDAuMzMzMjYsIDAuNDU0MDg1LCAwLjY5NTc0NSwgMC44NDYzMjkiLCBcCi0gICAgICAgICAgIjAuMTI4NDMxLCAwLjE0NjY1NCwgMC4yNDkxODcsIDAuMzM5NzQsIDAuNDYwMywgMC43MDIyMDQsIDAuODUyNzczIiwgXAotICAgICAgICAgICIwLjEzMzU0MywgMC4xNTE3NzMsIDAuMjU0MzgzLCAwLjM0NDgxOCwgMC40NjU2NDIsIDAuNzA3MjY5LCAwLjg1ODQwNiIsIFwKLSAgICAgICAgICAiMC4xNDA0MTUsIDAuMTU4NjA3LCAwLjI2MTE4OSwgMC4zNTE3MzIsIDAuNDcyNTQ5LCAwLjcxNDIxMywgMC44NjUzMDYiLCBcCi0gICAgICAgICAgIjAuMTQ1NjkxLCAwLjE2MzkyOSwgMC4yNjY1MDQsIDAuMzU2OTYzLCAwLjQ3NzY5NywgMC43MTkxMDUsIDAuODcwMDAyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2NjYxOCwgMC4xMDM2MDMsIDAuMzE0NzAyLCAwLjUwMjE1MSwgMC43NTEyMzgsIDEuMjQ5MzYsIDEuNTYwNDUiLCBcCi0gICAgICAgICAgIjAuMDY2NTU0LCAwLjEwMzY2LCAwLjMxNDcwMSwgMC41MDA4ODMsIDAuNzUxMjIxLCAxLjI0OTMyLCAxLjU1ODQzIiwgXAotICAgICAgICAgICIwLjA2NjU4NSwgMC4xMDM2NjQsIDAuMzE0NzQ3LCAwLjUwMjE5NSwgMC43NTEyMTcsIDEuMjQ5MzIsIDEuNTU4MzEiLCBcCi0gICAgICAgICAgIjAuMDY2NTY3LCAwLjEwMzY2MiwgMC4zMTQ2NzYsIDAuNTAwNzAxLCAwLjc0OTQ3MiwgMS4yNDkzMywgMS41NTg2MyIsIFwKLSAgICAgICAgICAiMC4wNjY1OTEsIDAuMTAzNjU0LCAwLjMxNTM1OCwgMC41MDExNjYsIDAuNzUxMDM2LCAxLjI0OTE1LCAxLjU1NjIiLCBcCi0gICAgICAgICAgIjAuMDY2NTQ1LCAwLjEwMzY3OCwgMC4zMTQ0MzMsIDAuNTAyMDkxLCAwLjc1MTA1MiwgMS4yNDkwNywgMS41NTU5OSIsIFwKLSAgICAgICAgICAiMC4wNjY2OTQsIDAuMTAzNTI5LCAwLjMxNTMwOSwgMC41MDEwOTUsIDAuNzQ5OTA2LCAxLjI0NjcxLCAxLjU1NjUxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzMzg1LCAwLjAwMzM5MiwgMC4wMDM0MDMsIDAuMDAzNDA1LCAwLjAwMzQwNiwgMC4wMDM0MDcsIDAuMDAzNDExIiwgXAotICAgICAgICAgICIwLjAwMzM2OSwgMC4wMDMzNzYsIDAuMDAzMzg3LCAwLjAwMzM4OSwgMC4wMDMzOSwgMC4wMDMzOTMsIDAuMDAzMzkzIiwgXAotICAgICAgICAgICIwLjAwMzM3NCwgMC4wMDMzODIsIDAuMDAzMzkzLCAwLjAwMzQwMSwgMC4wMDMzOTcsIDAuMDAzMzk4LCAwLjAwMzM5NSIsIFwKLSAgICAgICAgICAiMC4wMDM0MDQsIDAuMDAzNDEyLCAwLjAwMzQyMywgMC4wMDM0MjYsIDAuMDAzNDI3LCAwLjAwMzQyOCwgMC4wMDM0MjgiLCBcCi0gICAgICAgICAgIjAuMDAzNDMyLCAwLjAwMzQ0LCAwLjAwMzQ1MSwgMC4wMDM0NTQsIDAuMDAzNDU1LCAwLjAwMzQ1NiwgMC4wMDM0NTUiLCBcCi0gICAgICAgICAgIjAuMDAzNDk5LCAwLjAwMzUwNiwgMC4wMDM1MTgsIDAuMDAzNTIxLCAwLjAwMzUyMiwgMC4wMDM1MjQsIDAuMDAzNTI0IiwgXAotICAgICAgICAgICIwLjAwMzU3NCwgMC4wMDM1ODIsIDAuMDAzNTk2LCAwLjAwMzU5NCwgMC4wMDM2LCAwLjAwMzU5NiwgMC4wMDM1OTciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDM4NTUsIDAuMDAzODYyLCAwLjAwMzg3MywgMC4wMDM4NzUsIDAuMDAzODc2LCAwLjAwMzg3NCwgMC4wMDM4NzciLCBcCi0gICAgICAgICAgIjAuMDAzODQ0LCAwLjAwMzg1MiwgMC4wMDM4NjIsIDAuMDAzODY0LCAwLjAwMzg2NSwgMC4wMDM4NjYsIDAuMDAzODY3IiwgXAotICAgICAgICAgICIwLjAwMzg0OSwgMC4wMDM4NTcsIDAuMDAzODY5LCAwLjAwMzg3MSwgMC4wMDM4NzIsIDAuMDAzODc1LCAwLjAwMzg3MSIsIFwKLSAgICAgICAgICAiMC4wMDM4NzUsIDAuMDAzODg3LCAwLjAwMzg5OCwgMC4wMDM5LCAwLjAwMzkwMSwgMC4wMDM5MDIsIDAuMDAzOTAyIiwgXAotICAgICAgICAgICIwLjAwMzkxNywgMC4wMDM5MjMsIDAuMDAzOTM0LCAwLjAwMzkzNiwgMC4wMDM5MzcsIDAuMDAzOTM4LCAwLjAwMzkzOSIsIFwKLSAgICAgICAgICAiMC4wMDM5NzcsIDAuMDAzOTg0LCAwLjAwMzk5NiwgMC4wMDM5OTcsIDAuMDAzOTk3LCAwLjAwMzk5OCwgMC4wMDM5OTgiLCBcCi0gICAgICAgICAgIjAuMDA0MDQ4LCAwLjAwNDA1NywgMC4wMDQwNjYsIDAuMDA0MDcsIDAuMDA0MDY5LCAwLjAwNDA3MywgMC4wMDQwNzIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJHIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQ0ODEsIDAuMDA0NDg5LCAwLjAwNDUwMSwgMC4wMDQ1MDMsIDAuMDA0NTA1LCAwLjAwNDUwNSwgMC4wMDQ1MDYiLCBcCi0gICAgICAgICAgIjAuMDA0NDgzLCAwLjAwNDQ5MSwgMC4wMDQ1MDMsIDAuMDA0NTA1LCAwLjAwNDUwNywgMC4wMDQ1MDgsIDAuMDA0NTA4IiwgXAotICAgICAgICAgICIwLjAwNDUyMSwgMC4wMDQ1MjksIDAuMDA0NTQsIDAuMDA0NTQzLCAwLjAwNDU0NCwgMC4wMDQ1NDUsIDAuMDA0NTQ2IiwgXAotICAgICAgICAgICIwLjAwNDU4LCAwLjAwNDU4NywgMC4wMDQ1OTgsIDAuMDA0NiwgMC4wMDQ2MDEsIDAuMDA0NjAyLCAwLjAwNDYwMiIsIFwKLSAgICAgICAgICAiMC4wMDQ2MzYsIDAuMDA0NjQzLCAwLjAwNDY1MywgMC4wMDQ2NTUsIDAuMDA0NjU2LCAwLjAwNDY1NiwgMC4wMDQ2NTciLCBcCi0gICAgICAgICAgIjAuMDA0NzM1LCAwLjAwNDc1LCAwLjAwNDc1MSwgMC4wMDQ3NTgsIDAuMDA0NzU0LCAwLjAwNDc1NCwgMC4wMDQ3NTkiLCBcCi0gICAgICAgICAgIjAuMDA0ODM4LCAwLjAwNDg0OCwgMC4wMDQ4NDksIDAuMDA0ODU2LCAwLjAwNDg0OSwgMC4wMDQ4NTIsIDAuMDA0ODUzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0NTYsIDAuMDA0NTU1LCAwLjAwNDUzMiwgMC4wMDQ1MjMsIDAuMDA0NTE3LCAwLjAwNDUxMSwgMC4wMDQ1MSIsIFwKLSAgICAgICAgICAiMC4wMDQ1NTYsIDAuMDA0NTUyLCAwLjAwNDUyOSwgMC4wMDQ1MiwgMC4wMDQ1MTQsIDAuMDA0NTA5LCAwLjAwNDUwNyIsIFwKLSAgICAgICAgICAiMC4wMDQ2MDQsIDAuMDA0NjAxLCAwLjAwNDU3OCwgMC4wMDQ1NjgsIDAuMDA0NTYyLCAwLjAwNDU1NiwgMC4wMDQ1NTQiLCBcCi0gICAgICAgICAgIjAuMDA0NjYsIDAuMDA0NjU3LCAwLjAwNDYzNCwgMC4wMDQ2MjQsIDAuMDA0NjE4LCAwLjAwNDYxMiwgMC4wMDQ2MSIsIFwKLSAgICAgICAgICAiMC4wMDQ3MTUsIDAuMDA0NzEyLCAwLjAwNDY4OSwgMC4wMDQ2NzksIDAuMDA0NjcyLCAwLjAwNDY2NSwgMC4wMDQ2NjMiLCBcCi0gICAgICAgICAgIjAuMDA0ODI3LCAwLjAwNDgyNSwgMC4wMDQ4MDEsIDAuMDA0NzkyLCAwLjAwNDc4NCwgMC4wMDQ3NzcsIDAuMDA0Nzc0IiwgXAotICAgICAgICAgICIwLjAwNDkyNywgMC4wMDQ5MzEsIDAuMDA0OTA3LCAwLjAwNDg5NSwgMC4wMDQ4ODUsIDAuMDA0ODc4LCAwLjAwNDg3NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUU4pICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4zMzk3MzQ7Ci0gICAgZnVuY3Rpb24gOiAiTjAiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkQiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4ODM0OCwgMC4xMDcwNSwgMC4yMTI1OTUsIDAuMzA1NzA0LCAwLjQyOTcsIDAuNjc3ODY5LCAwLjgzMzMyOCIsIFwKLSAgICAgICAgICAiMC4wOTQwMiwgMC4xMTI3MTcsIDAuMjE4MjY0LCAwLjMxMTM3NCwgMC40MzU0OTQsIDAuNjgzNzMxLCAwLjgzODk4MiIsIFwKLSAgICAgICAgICAiMC4xMDAxMzMsIDAuMTE4ODM2LCAwLjIyNDQwNiwgMC4zMTc1MDksIDAuNDQxNDkxLCAwLjY4OTY1MiwgMC44NDQ3NjgiLCBcCi0gICAgICAgICAgIjAuMTA1MTk3LCAwLjEyMzg4OSwgMC4yMjk0NTIsIDAuMzIyNTUzLCAwLjQ0NjcxMywgMC42OTUwMzYsIDAuODUwMDk4IiwgXAotICAgICAgICAgICIwLjEwOTMxLCAwLjEyODAwNywgMC4yMzM2MDYsIDAuMzI2NjYsIDAuNDUwODEsIDAuNjk5MDI0LCAwLjg1NDE2NyIsIFwKLSAgICAgICAgICAiMC4xMTQ5MzUsIDAuMTMzNjM5LCAwLjIzOTE3NywgMC4zMzIzMSwgMC40NTY0MDQsIDAuNzA0NTk5LCAwLjg1OTc0OCIsIFwKLSAgICAgICAgICAiMC4xMTkxNiwgMC4xMzc4NjYsIDAuMjQzMzc5LCAwLjMzNjQ5NywgMC40NjA2MTEsIDAuNzA4ODMyLCAwLjg2MzkzOCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzI5NDcsIDAuMTExMDc0LCAwLjMzMjE2LCAwLjUyODI0MSwgMC43ODg3MywgMS4zMDk4NSwgMS42Mzk3NyIsIFwKLSAgICAgICAgICAiMC4wNzI5NDYsIDAuMTExMDk0LCAwLjMzMjE0NCwgMC41Mjc1NiwgMC43ODgwNTMsIDEuMzEwMDQsIDEuNjM5NzQiLCBcCi0gICAgICAgICAgIjAuMDcyOTUyLCAwLjExMTA3NiwgMC4zMzE3NiwgMC41Mjc2MjEsIDAuNzg3NjgyLCAxLjMwOTUzLCAxLjYzNjM3IiwgXAotICAgICAgICAgICIwLjA3MjkzOSwgMC4xMTExMTgsIDAuMzMxNzk2LCAwLjUyODE4MSwgMC43ODk3MDgsIDEuMzEwMzUsIDEuNjM3MzUiLCBcCi0gICAgICAgICAgIjAuMDczMDYzLCAwLjExMTEzLCAwLjMzMTU3MywgMC41MjgxNCwgMC43ODg2MjgsIDEuMzEwNjYsIDEuNjM3NzYiLCBcCi0gICAgICAgICAgIjAuMDczMTY2LCAwLjExMTA2MywgMC4zMzIwMjMsIDAuNTI4MDU2LCAwLjc4ODk1MSwgMS4zMTI0NSwgMS42Mzc5NCIsIFwKLSAgICAgICAgICAiMC4wNzMxMjUsIDAuMTExMjIxLCAwLjMzMTU5NCwgMC41MjgwMDgsIDAuNzg4OTAzLCAxLjMxMTM0LCAxLjYzOTEzIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4NzQxMiwgMC4xMDU2NTUsIDAuMjA4Mjk3LCAwLjI5ODg0MSwgMC40MTk1NjUsIDAuNjYwNjU5LCAwLjgxMTU2MSIsIFwKLSAgICAgICAgICAiMC4wOTM1MzIsIDAuMTExNzc1LCAwLjIxNDQxMywgMC4zMDQ5MzMsIDAuNDI1Njc5LCAwLjY2Njk2NCwgMC44MTc4MzciLCBcCi0gICAgICAgICAgIjAuMTAwMzY1LCAwLjExODYwNSwgMC4yMjEyNjQsIDAuMzExODA1LCAwLjQzMjUyOSwgMC42NzM2MzQsIDAuODI0NTk5IiwgXAotICAgICAgICAgICIwLjEwNTg0OCwgMC4xMjQxMDEsIDAuMjI2NzIxLCAwLjMxNzI4MiwgMC40MzgwMDQsIDAuNjc5MzUxLCAwLjgzMDE2NyIsIFwKLSAgICAgICAgICAiMC4xMTA1MjMsIDAuMTI4Nzc0LCAwLjIzMTQ0NCwgMC4zMjE5NDgsIDAuNDQyNjg4LCAwLjY4NDA1NywgMC44MzQ4OTYiLCBcCi0gICAgICAgICAgIjAuMTE2Nzc5LCAwLjEzNTAzMiwgMC4yMzc2ODksIDAuMzI4MjE0LCAwLjQ0ODg4OSwgMC42OTAyLCAwLjg0MTA2NSIsIFwKLSAgICAgICAgICAiMC4xMjE1NDksIDAuMTM5Nzk2LCAwLjI0MjQyMiwgMC4zMzI5NSwgMC40NTM2NTcsIDAuNjk0OTU5LCAwLjg0NTgxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2OTc0OSwgMC4xMDU5NjksIDAuMzE1Nzg4LCAwLjUwMjI3LCAwLjc0OTU2OSwgMS4yNDQ0OCwgMS41NTg0OSIsIFwKLSAgICAgICAgICAiMC4wNjk3NjMsIDAuMTA1OTk0LCAwLjMxNTc2LCAwLjUwMDYxOSwgMC43NDk1NTYsIDEuMjQ4MzQsIDEuNTU5MjEiLCBcCi0gICAgICAgICAgIjAuMDY5NzA1LCAwLjEwNTk3NCwgMC4zMTU4MDUsIDAuNTAyMTg5LCAwLjc0OTU2OSwgMS4yNDQ0MiwgMS41NTg4MiIsIFwKLSAgICAgICAgICAiMC4wNjk3NjQsIDAuMTA2LCAwLjMxNDk0MywgMC41MDIyMjMsIDAuNzQ5NTgyLCAxLjI0ODM3LCAxLjU1OTIxIiwgXAotICAgICAgICAgICIwLjA2OTg5OSwgMC4xMDU5OTksIDAuMzE1MjQyLCAwLjUwMjEzOSwgMC43NDk2ODgsIDEuMjQ2MDQsIDEuNTU5NCIsIFwKLSAgICAgICAgICAiMC4wNjk5MjcsIDAuMTA1OTM4LCAwLjMxNTQzMSwgMC41MDE0MjcsIDAuNzQ5NzIsIDEuMjQ2NjYsIDEuNTU5MDMiLCBcCi0gICAgICAgICAgIjAuMDY5OTk2LCAwLjEwNjA0MiwgMC4zMTU0MDEsIDAuNTAyMDMyLCAwLjc1MDc4NCwgMS4yNDY3MywgMS41NTg3OCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJHIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5vbl91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcmlzaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwMDgzNCwgMC4xMTk0NTIsIDAuMjI0NzcyLCAwLjMxNzgwNywgMC40NDE5MzIsIDAuNjkwMTc2LCAwLjg0NTI2NCIsIFwKLSAgICAgICAgICAiMC4xMDg4MzksIDAuMTI3NDU3LCAwLjIzMjc4LCAwLjMyNTg2MiwgMC40NDk5MzUsIDAuNjk4MTcyLCAwLjg1MzIyOSIsIFwKLSAgICAgICAgICAiMC4xMTcyOTIsIDAuMTM1OTEzLCAwLjI0MTIzNiwgMC4zMzQyOTMsIDAuNDU4MzgsIDAuNzA2NjE1LCAwLjg2MTY2OSIsIFwKLSAgICAgICAgICAiMC4xMjM3NDUsIDAuMTQyMzcsIDAuMjQ3NjksIDAuMzQwNzc1LCAwLjQ2NDcsIDAuNzEzMDY2LCAwLjg2ODEyNyIsIFwKLSAgICAgICAgICAiMC4xMjg5MDYsIDAuMTQ3NTM3LCAwLjI1Mjg2NiwgMC4zNDU4ODQsIDAuNDY5OTYsIDAuNzE4MTcsIDAuODczMzk3IiwgXAotICAgICAgICAgICIwLjEzNTc2NywgMC4xNTQzOTksIDAuMjU5NzcyLCAwLjM1Mjc1NCwgMC40NzY4MjksIDAuNzI1MDU3LCAwLjg4MDI1NSIsIFwKLSAgICAgICAgICAiMC4xNDEwMjcsIDAuMTU5NjU2LCAwLjI2NDk2OSwgMC4zNTgwMDQsIDAuNDgyMDU3LCAwLjczMDI2MiwgMC44ODUzODIiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDcyOTg2LCAwLjExMTA2NCwgMC4zMzE3MTMsIDAuNTI4MjM1LCAwLjc4OTc0MiwgMS4zMTI4MywgMS42Mzk2MiIsIFwKLSAgICAgICAgICAiMC4wNzMwMTMsIDAuMTExMTI2LCAwLjMzMTcxMywgMC41MjczNzksIDAuNzg5NzMsIDEuMzEyOCwgMS42Mzc4NSIsIFwKLSAgICAgICAgICAiMC4wNzMwMDQsIDAuMTExMTM5LCAwLjMzMTcyNiwgMC41MjgyMzgsIDAuNzg5NzMsIDEuMzEyOCwgMS42Mzc5MiIsIFwKLSAgICAgICAgICAiMC4wNzMwMSwgMC4xMTExMzEsIDAuMzMxNzA3LCAwLjUyNzM5MiwgMC43ODgxOCwgMS4zMTI4MSwgMS42Mzc4MiIsIFwKLSAgICAgICAgICAiMC4wNzMwMDksIDAuMTExMTM0LCAwLjMzMjE1NSwgMC41Mjc2NTUsIDAuNzg5NjEyLCAxLjMxMjc3LCAxLjYzNzIyIiwgXAotICAgICAgICAgICIwLjA3MzAwOSwgMC4xMTExNiwgMC4zMzE1NTgsIDAuNTI4MTgyLCAwLjc4OTY0MSwgMS4zMTI2NiwgMS42MzcyNCIsIFwKLSAgICAgICAgICAiMC4wNzMxNDksIDAuMTExMDY1LCAwLjMzMjEwMiwgMC41Mjc2MzMsIDAuNzg5LCAxLjMxMSwgMS42Mzc2OCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTA1MDgsIDAuMTI4NzU4LCAwLjIzMTM3NiwgMC4zMjE4OTIsIDAuNDQyNTcyLCAwLjY4Mzk2NiwgMC44MzQ4MzIiLCBcCi0gICAgICAgICAgIjAuMTE4NjE2LCAwLjEzNjg2NywgMC4yMzk1MDMsIDAuMzI5OTk4LCAwLjQ1MDYzOSwgMC42OTIwNzUsIDAuODQyOTM5IiwgXAotICAgICAgICAgICIwLjEyNjk1OSwgMC4xNDUyLCAwLjI0Nzg0NSwgMC4zMzgzOTUsIDAuNDU5MDg5LCAwLjcwMDQ0LCAwLjg1MTI0IiwgXAotICAgICAgICAgICIwLjEzMjg4MSwgMC4xNTExMjUsIDAuMjUzNzY3LCAwLjM0NDMxNywgMC40NjUwMTYsIDAuNzA2MzM2LCAwLjg1NzE1OSIsIFwKLSAgICAgICAgICAiMC4xMzc2ODIsIDAuMTU1OTIzLCAwLjI1ODU1OSwgMC4zNDkxMDQsIDAuNDY5Nzc4LCAwLjcxMTI2MywgMC44NjE5NTEiLCBcCi0gICAgICAgICAgIjAuMTQ0MDk2LCAwLjE2MjMzLCAwLjI2NDk2OCwgMC4zNTU0OCwgMC40NzYyMDgsIDAuNzE3NTQzLCAwLjg2ODM4NSIsIFwKLSAgICAgICAgICAiMC4xNDg3MjQsIDAuMTY2OTYzLCAwLjI2OTU4MSwgMC4zNjAxNTIsIDAuNDgwODY3LCAwLjcyMjE0OCwgMC44NzMwMTEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY5ODMsIDAuMTA1OTcxLCAwLjMxNTM5MywgMC41MDE4NDcsIDAuNzUwNzgzLCAxLjI0ODMyLCAxLjU1ODk2IiwgXAotICAgICAgICAgICIwLjA2OTgzLCAwLjEwNTg0MywgMC4zMTU3MzEsIDAuNTAxODE4LCAwLjc0ODcwOSwgMS4yNDgzMywgMS41NTg5NyIsIFwKLSAgICAgICAgICAiMC4wNjk4MzQsIDAuMTA1OTE5LCAwLjMxNTc3NCwgMC41MDIwNjMsIDAuNzUwMTE2LCAxLjI0ODM1LCAxLjU1OTEzIiwgXAotICAgICAgICAgICIwLjA2OTgyNywgMC4xMDU5NjksIDAuMzE1NzYyLCAwLjUwMjA4NywgMC43NTA5OSwgMS4yNDgzMSwgMS41NTkwOCIsIFwKLSAgICAgICAgICAiMC4wNjk4MzgsIDAuMTA1OTgyLCAwLjMxNDk5MiwgMC41MDIwNjMsIDAuNzUwNjQ1LCAxLjI0NjI4LCAxLjU1OTEzIiwgXAotICAgICAgICAgICIwLjA2OTgyOSwgMC4xMDU5NjQsIDAuMzE1NjY1LCAwLjUwMjI1NSwgMC43NTA5ODUsIDEuMjQ4MTYsIDEuNTU2MzEiLCBcCi0gICAgICAgICAgIjAuMDY5OTU2LCAwLjEwNTg4MywgMC4zMTU3NzEsIDAuNTAxMzA1LCAwLjc0OTMzLCAxLjI0ODE0LCAxLjU1OSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkQiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzg1NSwgMC4wMDM4NjIsIDAuMDAzODczLCAwLjAwMzg3NSwgMC4wMDM4NzYsIDAuMDAzODc0LCAwLjAwMzg3NyIsIFwKLSAgICAgICAgICAiMC4wMDM4NDQsIDAuMDAzODUyLCAwLjAwMzg2MiwgMC4wMDM4NjQsIDAuMDAzODY1LCAwLjAwMzg2NiwgMC4wMDM4NjciLCBcCi0gICAgICAgICAgIjAuMDAzODQ5LCAwLjAwMzg1NywgMC4wMDM4NjksIDAuMDAzODcxLCAwLjAwMzg3MiwgMC4wMDM4NzUsIDAuMDAzODcxIiwgXAotICAgICAgICAgICIwLjAwMzg3NSwgMC4wMDM4ODcsIDAuMDAzODk4LCAwLjAwMzksIDAuMDAzOTAxLCAwLjAwMzkwMiwgMC4wMDM5MDIiLCBcCi0gICAgICAgICAgIjAuMDAzOTE3LCAwLjAwMzkyMywgMC4wMDM5MzQsIDAuMDAzOTM2LCAwLjAwMzkzNywgMC4wMDM5MzgsIDAuMDAzOTM5IiwgXAotICAgICAgICAgICIwLjAwMzk3NywgMC4wMDM5ODQsIDAuMDAzOTk2LCAwLjAwMzk5NywgMC4wMDM5OTcsIDAuMDAzOTk4LCAwLjAwMzk5OCIsIFwKLSAgICAgICAgICAiMC4wMDQwNDgsIDAuMDA0MDU3LCAwLjAwNDA2NiwgMC4wMDQwNywgMC4wMDQwNjksIDAuMDA0MDczLCAwLjAwNDA3MiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzM4NSwgMC4wMDMzOTIsIDAuMDAzNDAzLCAwLjAwMzQwNSwgMC4wMDM0MDYsIDAuMDAzNDA3LCAwLjAwMzQxMSIsIFwKLSAgICAgICAgICAiMC4wMDMzNjksIDAuMDAzMzc2LCAwLjAwMzM4NywgMC4wMDMzODksIDAuMDAzMzksIDAuMDAzMzkzLCAwLjAwMzM5MyIsIFwKLSAgICAgICAgICAiMC4wMDMzNzQsIDAuMDAzMzgyLCAwLjAwMzM5MywgMC4wMDM0MDEsIDAuMDAzMzk3LCAwLjAwMzM5OCwgMC4wMDMzOTUiLCBcCi0gICAgICAgICAgIjAuMDAzNDA0LCAwLjAwMzQxMiwgMC4wMDM0MjMsIDAuMDAzNDI2LCAwLjAwMzQyNywgMC4wMDM0MjgsIDAuMDAzNDI4IiwgXAotICAgICAgICAgICIwLjAwMzQzMiwgMC4wMDM0NCwgMC4wMDM0NTEsIDAuMDAzNDU0LCAwLjAwMzQ1NSwgMC4wMDM0NTYsIDAuMDAzNDU1IiwgXAotICAgICAgICAgICIwLjAwMzQ5OSwgMC4wMDM1MDYsIDAuMDAzNTE4LCAwLjAwMzUyMSwgMC4wMDM1MjIsIDAuMDAzNTI0LCAwLjAwMzUyNCIsIFwKLSAgICAgICAgICAiMC4wMDM1NzQsIDAuMDAzNTgyLCAwLjAwMzU5NiwgMC4wMDM1OTQsIDAuMDAzNiwgMC4wMDM1OTYsIDAuMDAzNTk3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0NTYsIDAuMDA0NTU1LCAwLjAwNDUzMiwgMC4wMDQ1MjMsIDAuMDA0NTE3LCAwLjAwNDUxMSwgMC4wMDQ1MSIsIFwKLSAgICAgICAgICAiMC4wMDQ1NTYsIDAuMDA0NTUyLCAwLjAwNDUyOSwgMC4wMDQ1MiwgMC4wMDQ1MTQsIDAuMDA0NTA5LCAwLjAwNDUwNyIsIFwKLSAgICAgICAgICAiMC4wMDQ2MDQsIDAuMDA0NjAxLCAwLjAwNDU3OCwgMC4wMDQ1NjgsIDAuMDA0NTYyLCAwLjAwNDU1NiwgMC4wMDQ1NTQiLCBcCi0gICAgICAgICAgIjAuMDA0NjYsIDAuMDA0NjU3LCAwLjAwNDYzNCwgMC4wMDQ2MjQsIDAuMDA0NjE4LCAwLjAwNDYxMiwgMC4wMDQ2MSIsIFwKLSAgICAgICAgICAiMC4wMDQ3MTUsIDAuMDA0NzEyLCAwLjAwNDY4OSwgMC4wMDQ2NzksIDAuMDA0NjcyLCAwLjAwNDY2NSwgMC4wMDQ2NjMiLCBcCi0gICAgICAgICAgIjAuMDA0ODI3LCAwLjAwNDgyNSwgMC4wMDQ4MDEsIDAuMDA0NzkyLCAwLjAwNDc4NCwgMC4wMDQ3NzcsIDAuMDA0Nzc0IiwgXAotICAgICAgICAgICIwLjAwNDkyNywgMC4wMDQ5MzEsIDAuMDA0OTA3LCAwLjAwNDg5NSwgMC4wMDQ4ODUsIDAuMDA0ODc4LCAwLjAwNDg3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDQ4MSwgMC4wMDQ0ODksIDAuMDA0NTAxLCAwLjAwNDUwMywgMC4wMDQ1MDUsIDAuMDA0NTA1LCAwLjAwNDUwNiIsIFwKLSAgICAgICAgICAiMC4wMDQ0ODMsIDAuMDA0NDkxLCAwLjAwNDUwMywgMC4wMDQ1MDUsIDAuMDA0NTA3LCAwLjAwNDUwOCwgMC4wMDQ1MDgiLCBcCi0gICAgICAgICAgIjAuMDA0NTIxLCAwLjAwNDUyOSwgMC4wMDQ1NCwgMC4wMDQ1NDMsIDAuMDA0NTQ0LCAwLjAwNDU0NSwgMC4wMDQ1NDYiLCBcCi0gICAgICAgICAgIjAuMDA0NTgsIDAuMDA0NTg3LCAwLjAwNDU5OCwgMC4wMDQ2LCAwLjAwNDYwMSwgMC4wMDQ2MDIsIDAuMDA0NjAyIiwgXAotICAgICAgICAgICIwLjAwNDYzNiwgMC4wMDQ2NDMsIDAuMDA0NjUzLCAwLjAwNDY1NSwgMC4wMDQ2NTYsIDAuMDA0NjU2LCAwLjAwNDY1NyIsIFwKLSAgICAgICAgICAiMC4wMDQ3MzUsIDAuMDA0NzUsIDAuMDA0NzUxLCAwLjAwNDc1OCwgMC4wMDQ3NTQsIDAuMDA0NzU0LCAwLjAwNDc1OSIsIFwKLSAgICAgICAgICAiMC4wMDQ4MzgsIDAuMDA0ODQ4LCAwLjAwNDg0OSwgMC4wMDQ4NTYsIDAuMDA0ODQ5LCAwLjAwNDg1MiwgMC4wMDQ4NTMiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBYTk9SM1gxICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKFhOT1IzWDEpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC44MDA2MzsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwODQzNzY5OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDg0MzI0OTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA4NDM3Njk7Ci0gIH0KLSAgcGluKEIpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMjAyNTg4OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMjAyNDgxOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMjAyNTg4OwotICB9Ci0gIHBpbihDKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE0OTk1OTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE0OTkwNjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE0OTk1OTsKLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjI5OTIzNzsKLSAgICBmdW5jdGlvbiA6ICIoISgoQV5CKV5DKSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwMTE2NSwgMC4xMjA4NTEsIDAuMjI1NjYsIDAuMzE3MjksIDAuNDM5NDQ1LCAwLjY4NDI2NywgMC44MzY2MDkiLCBcCi0gICAgICAgICAgIjAuMTA5MjM3LCAwLjEyODkxMSwgMC4yMzM3NDEsIDAuMzI1Mzg5LCAwLjQ0NzUzMiwgMC42OTIwMzcsIDAuODQ0NzQ4IiwgXAotICAgICAgICAgICIwLjExOTQ0NywgMC4xMzkxMjUsIDAuMjQzOTU5LCAwLjMzNTYwMywgMC40NTc3NTEsIDAuNzAyMjMzLCAwLjg1NTAyMyIsIFwKLSAgICAgICAgICAiMC4xMjg4MjcsIDAuMTQ4NTE5LCAwLjI1MzM1MSwgMC4zNDQ5OTUsIDAuNDY3MTQ0LCAwLjcxMTY0LCAwLjg2NDM1OSIsIFwKLSAgICAgICAgICAiMC4xMzc0MzEsIDAuMTU3MTU2LCAwLjI2MTk5MywgMC4zNTM2MzMsIDAuNDc1NzgyLCAwLjcyMDI2NSwgMC44NzI5OTkiLCBcCi0gICAgICAgICAgIjAuMTQ5ODM1LCAwLjE2OTY4NCwgMC4yNzQ1NzIsIDAuMzY2MTkyLCAwLjQ4ODMzOSwgMC43MzI3NzEsIDAuODg1NTg4IiwgXAotICAgICAgICAgICIwLjE1ODk5LCAwLjE3ODk3NywgMC4yODM5NzgsIDAuMzc1NjA0LCAwLjQ5Nzc4NiwgMC43NDIxMzQsIDAuODk0OTk2Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3OTU2NiwgMC4xMTY0MDUsIDAuMzMwNTMyLCAwLjUyMjk4NCwgMC43Nzk4NzQsIDEuMjk1NTMsIDEuNjE4NTgiLCBcCi0gICAgICAgICAgIjAuMDc5NTA2LCAwLjExNjM5OCwgMC4zMzA1MzksIDAuNTIyMTMyLCAwLjc4MDc1MywgMS4yOTYxMSwgMS42MTk3NiIsIFwKLSAgICAgICAgICAiMC4wNzk2MiwgMC4xMTY0MzEsIDAuMzMwNDUyLCAwLjUyMjU3LCAwLjc4MDY4OCwgMS4yOTU1MiwgMS42MTk1NCIsIFwKLSAgICAgICAgICAiMC4wNzk4MTksIDAuMTE2NTEsIDAuMzMwNDg4LCAwLjUyMjU5MSwgMC43ODA2NjcsIDEuMjk2MTksIDEuNjE3OTMiLCBcCi0gICAgICAgICAgIjAuMDgwMjgsIDAuMTE2OTI3LCAwLjMzMDU3NiwgMC41MjI3MzcsIDAuNzgwNiwgMS4yOTYyNywgMS42MTc2NCIsIFwKLSAgICAgICAgICAiMC4wODE0NDIsIDAuMTE3OCwgMC4zMzA5MDQsIDAuNTIyNjkyLCAwLjc4MDcxOSwgMS4yOTU5MSwgMS42MTk4NCIsIFwKLSAgICAgICAgICAiMC4wODI1MjksIDAuMTE4NjksIDAuMzMxMzAzLCAwLjUyMjU4MiwgMC43ODA5NTQsIDEuMjk1NjgsIDEuNjE3ODkiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTAxNDQ5LCAwLjEyNDA2NSwgMC4yNDY4OTgsIDAuMzU0NzM3LCAwLjQ5ODU4OSwgMC43ODYyMzIsIDAuOTY1OTg1IiwgXAotICAgICAgICAgICIwLjEwOTI4MywgMC4xMzE4OTgsIDAuMjU0NzI3LCAwLjM2MjU2NCwgMC41MDYzNzQsIDAuNzk0MzExLCAwLjk3Mzc3NyIsIFwKLSAgICAgICAgICAiMC4xMTg3NzcsIDAuMTQxMzk1LCAwLjI2NDIzOSwgMC4zNzIxMTIsIDAuNTE1ODc4LCAwLjgwMzQ4MSwgMC45ODM2NDYiLCBcCi0gICAgICAgICAgIjAuMTI3NDI0LCAwLjE1MDA0NSwgMC4yNzI4OTgsIDAuMzgwNzU2LCAwLjUyNDUwNywgMC44MTIyMjMsIDAuOTkyMTQiLCBcCi0gICAgICAgICAgIjAuMTM0ODAzLCAwLjE1NzQ0OCwgMC4yODAzMDYsIDAuMzg4MTY4LCAwLjUzMjAzMywgMC44MTk3MDUsIDAuOTk5NDc3IiwgXAotICAgICAgICAgICIwLjE0NDgzOSwgMC4xNjc1NjcsIDAuMjkwNDY1LCAwLjM5ODMyMywgMC41NDIxNTksIDAuODI5OTE5LCAxLjAwOTU0IiwgXAotICAgICAgICAgICIwLjE1MjEzNywgMC4xNzUwMDksIDAuMjk3OTc3LCAwLjQwNTgwMiwgMC41NDk1OTksIDAuODM3NTc2LCAxLjAxNjk2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4Nzc1MSwgMC4xMzAwMjcsIDAuMzc2NjY2LCAwLjU5NzE3NSwgMC44OTAxODQsIDEuNDgzMTcsIDEuODUiLCBcCi0gICAgICAgICAgIjAuMDg3NzEyLCAwLjEzMDE0MywgMC4zNzY2NDgsIDAuNTk3MDk5LCAwLjg5MjI2NSwgMS40ODAwNywgMS44NDk3NiIsIFwKLSAgICAgICAgICAiMC4wODc4MjUsIDAuMTMwMTI0LCAwLjM3NjY2MywgMC41OTcyNjUsIDAuODkyMjE0LCAxLjQ4MDA3LCAxLjg1MTgzIiwgXAotICAgICAgICAgICIwLjA4ODA4OSwgMC4xMzAzMTIsIDAuMzc2NzAyLCAwLjU5NjIxNiwgMC44OTE5MzEsIDEuNDc5NywgMS44NTI1OSIsIFwKLSAgICAgICAgICAiMC4wODg0OTcsIDAuMTMwNjgzLCAwLjM3Njc3NywgMC41OTcyNjYsIDAuODkwMDY3LCAxLjQ4MDI3LCAxLjg1MDA5IiwgXAotICAgICAgICAgICIwLjA4OTU0NywgMC4xMzE1MDgsIDAuMzc2NzgyLCAwLjU5NzM0OSwgMC44OTA2NiwgMS40ODI3MywgMS44NTIwOCIsIFwKLSAgICAgICAgICAiMC4wOTA1MDYsIDAuMTMyMjAyLCAwLjM3Njk2NywgMC41OTcyMzEsIDAuODkyMTc5LCAxLjQ4MDA4LCAxLjg1MjA2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEyMjYxOCwgMC4xNDIyMzcsIDAuMjQ2OTY5LCAwLjMzODU5NiwgMC40NjA3NTQsIDAuNzA1MTY3LCAwLjg1Nzg3NiIsIFwKLSAgICAgICAgICAiMC4xMzA5MzMsIDAuMTUwNTU5LCAwLjI1NTI5LCAwLjM0NjkyMSwgMC40NjkwNzUsIDAuNzEzNDcsIDAuODY2MzMxIiwgXAotICAgICAgICAgICIwLjE0MDIxNSwgMC4xNTk4NDUsIDAuMjY0NTY4LCAwLjM1NjIwOCwgMC40NzgzNTQsIDAuNzIyOTA4LCAwLjg3NTQ2OSIsIFwKLSAgICAgICAgICAiMC4xNDc5NCwgMC4xNjc1NTIsIDAuMjcyMjk1LCAwLjM2MzkyMiwgMC40ODYxNjcsIDAuNzMwODk1LCAwLjg4MzIzOCIsIFwKLSAgICAgICAgICAiMC4xNTM5MTgsIDAuMTczNTY5LCAwLjI3ODI5NiwgMC4zNjk5MTYsIDAuNDkyMDg4LCAwLjczNjY3NiwgMC44ODkzMTUiLCBcCi0gICAgICAgICAgIjAuMTYxOTUxLCAwLjE4MTYxNCwgMC4yODYzNTksIDAuMzc3OTg5LCAwLjUwMDA5OCwgMC43NDQ0MiwgMC44OTc4MDkiLCBcCi0gICAgICAgICAgIjAuMTY3Nzk0LCAwLjE4NzQxMSwgMC4yOTE5NTksIDAuMzgzNzg0LCAwLjUwNTc4NSwgMC43NTAzMTEsIDAuOTAyOTkiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc5NTIsIDAuMTE2MjYxLCAwLjMzMDI4MiwgMC41MjI5MywgMC43ODA3OTEsIDEuMjk1NDUsIDEuNjE5NzEiLCBcCi0gICAgICAgICAgIjAuMDc5NDk3LCAwLjExNjIyMywgMC4zMzAyOTUsIDAuNTIyNzA3LCAwLjc3OTg3LCAxLjI5NzU5LCAxLjYxNzk3IiwgXAotICAgICAgICAgICIwLjA3OTQ1MSwgMC4xMTYyNzUsIDAuMzMwMjkzLCAwLjUyMjcwMywgMC43Nzk4NjUsIDEuMjk1ODcsIDEuNjE4NjUiLCBcCi0gICAgICAgICAgIjAuMDc5NTIxLCAwLjExNjI2MSwgMC4zMzAyODQsIDAuNTIyOTQ2LCAwLjc3OTUxLCAxLjI5NTY2LCAxLjYxNzc0IiwgXAotICAgICAgICAgICIwLjA3OTUxLCAwLjExNjI4OCwgMC4zMzAyOTcsIDAuNTIyNzA5LCAwLjc4MDY1MSwgMS4yOTU0NSwgMS42MTg2MyIsIFwKLSAgICAgICAgICAiMC4wNzk0NTksIDAuMTE2Mjg0LCAwLjMzMDMzNywgMC41MjI5MzEsIDAuNzc5NjA5LCAxLjI5NjYyLCAxLjYxOTc0IiwgXAotICAgICAgICAgICIwLjA3OTUwMSwgMC4xMTYyMjcsIDAuMzMwNDMyLCAwLjUyMjkwMywgMC43Nzk5MDksIDEuMjk1OTgsIDEuNjE4ODIiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTM0NzEyLCAwLjE1NzY2OCwgMC4yODA3OTcsIDAuMzg4NjM3LCAwLjUzMjQzNiwgMC44MjAzNTYsIDAuOTk5NzQ0IiwgXAotICAgICAgICAgICIwLjE0MzA4NCwgMC4xNjU5OTIsIDAuMjg5MTE2LCAwLjM5Njk1NywgMC41NDA3NDUsIDAuODI4NjkyLCAxLjAwODA3IiwgXAotICAgICAgICAgICIwLjE1MzMxNSwgMC4xNzYyNTUsIDAuMjk5Mzg3LCAwLjQwNzIyLCAwLjU1MDk5OSwgMC44Mzg3NSwgMS4wMTg2MiIsIFwKLSAgICAgICAgICAiMC4xNjIwMSwgMC4xODQ5NDIsIDAuMzA4MDU5LCAwLjQxNTkwMSwgMC41NTk2NjIsIDAuODQ3NjMxLCAxLjAyNzAyIiwgXAotICAgICAgICAgICIwLjE2OTM4NywgMC4xOTIzMzEsIDAuMzE1NDU2LCAwLjQyMzI5MSwgMC41NjcxNzYsIDAuODU0NjczLCAxLjAzNDc1IiwgXAotICAgICAgICAgICIwLjE3OTQwOCwgMC4yMDIzNzIsIDAuMzI1NTAyLCAwLjQzMzM0MiwgMC41NzcxMzIsIDAuODY0OTMsIDEuMDQ0NDkiLCBcCi0gICAgICAgICAgIjAuMTg2OTc2LCAwLjIwOTk2LCAwLjMzMzExMywgMC40NDA5NDgsIDAuNTg0NzM0LCAwLjg3MjYyNywgMS4wNTI0MiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODk3NTgsIDAuMTMxOTMyLCAwLjM3NzQyNCwgMC41OTc2MjEsIDAuODkxMzM3LCAxLjQ4MzM1LCAxLjg0ODQ5IiwgXAotICAgICAgICAgICIwLjA4OTc5MywgMC4xMzE5MjQsIDAuMzc3NDU0LCAwLjU5NzU2NCwgMC44OTExNDgsIDEuNDgwNjQsIDEuODQ4NDYiLCBcCi0gICAgICAgICAgIjAuMDg5NzY1LCAwLjEzMTgwMywgMC4zNzc0NzksIDAuNTk3NTUzLCAwLjg5MTE1NSwgMS40ODA1NywgMS44NTIyIiwgXAotICAgICAgICAgICIwLjA4OTcyOSwgMC4xMzE5MzMsIDAuMzc3NDYsIDAuNTk3NTUzLCAwLjg5MjMyMiwgMS40ODA3NiwgMS44NTIyNCIsIFwKLSAgICAgICAgICAiMC4wODk3OSwgMC4xMzE5NCwgMC4zNzc0OCwgMC41OTc1NSwgMC44OTIyMzYsIDEuNDgyNzYsIDEuODUyMTgiLCBcCi0gICAgICAgICAgIjAuMDg5ODc0LCAwLjEzMTk4NywgMC4zNzc0NTMsIDAuNTk3NTgsIDAuODkxMTQ1LCAxLjQ4MDU4LCAxLjg0ODgxIiwgXAotICAgICAgICAgICIwLjA4OTgzNywgMC4xMzE5OTMsIDAuMzc3MjU1LCAwLjU5NzQ3MSwgMC44OTEzOTUsIDEuNDgwMTksIDEuODQ5MzgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDkxMjc5LCAwLjExMDg5OSwgMC4yMTU2MjUsIDAuMzA3MjYxLCAwLjQyOTQzNCwgMC42NzQyMTUsIDAuODI2NTYxIiwgXAotICAgICAgICAgICIwLjA5ODkxNCwgMC4xMTg1MzcsIDAuMjIzMjcyLCAwLjMxNDkwNiwgMC40MzcwOTQsIDAuNjgxODYyLCAwLjgzNDIwNyIsIFwKLSAgICAgICAgICAiMC4xMDgxOTUsIDAuMTI3ODI4LCAwLjIzMjU1LCAwLjMyNDE5MiwgMC40NDYzNjIsIDAuNjkxMTgzLCAwLjg0MzQ5MiIsIFwKLSAgICAgICAgICAiMC4xMTY5NTgsIDAuMTM2NjE5LCAwLjI0MTMzLCAwLjMzMjk3NywgMC40NTUxMzIsIDAuNjk5NzA1LCAwLjg1MjI5NiIsIFwKLSAgICAgICAgICAiMC4xMjQ4MTcsIDAuMTQ0NTIsIDAuMjQ5MjgyLCAwLjM0MDkxNCwgMC40NjMwNzgsIDAuNzA3NjQ2LCAwLjg2MDIyMSIsIFwKLSAgICAgICAgICAiMC4xMzU2NTksIDAuMTU1NTEyLCAwLjI2MDM4MSwgMC4zNTIwNTEsIDAuNDc0MTY1LCAwLjcxODY1LCAwLjg3MTM1MSIsIFwKLSAgICAgICAgICAiMC4xNDM4MDUsIDAuMTYzODEzLCAwLjI2ODgyOSwgMC4zNjA0NjYsIDAuNDgyNjksIDAuNzI2OTc1LCAwLjg4MDAxMyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzk1NTIsIDAuMTE2MzAxLCAwLjMzMDI5NywgMC41MjI5NTIsIDAuNzgwODc0LCAxLjI5NTQ0LCAxLjYxODY3IiwgXAotICAgICAgICAgICIwLjA3OTU2OSwgMC4xMTYzMTQsIDAuMzMwMzAyLCAwLjUyMjk1OSwgMC43ODA4OTMsIDEuMjk1NDMsIDEuNjE4NTQiLCBcCi0gICAgICAgICAgIjAuMDc5NTQsIDAuMTE2Mjg4LCAwLjMzMDMxMSwgMC41MjI5OCwgMC43ODAwMjUsIDEuMjk1NjcsIDEuNjE4NjMiLCBcCi0gICAgICAgICAgIjAuMDc5NzIxLCAwLjExNjQ0MywgMC4zMzAzNDUsIDAuNTIzMDc3LCAwLjc4MDcyNywgMS4yOTU0NCwgMS42MTg1NyIsIFwKLSAgICAgICAgICAiMC4wODAyNzEsIDAuMTE2ODI1LCAwLjMzMDQ3MSwgMC41MjMwNjksIDAuNzgwODAzLCAxLjI5NTU2LCAxLjYxNzc0IiwgXAotICAgICAgICAgICIwLjA4MTM5MywgMC4xMTc3NjgsIDAuMzMwODA1LCAwLjUyMzIzLCAwLjc4MDc2MywgMS4yOTYxNCwgMS42MTgxIiwgXAotICAgICAgICAgICIwLjA4MjcxOCwgMC4xMTg2OTgsIDAuMzMxMDI2LCAwLjUyMzM2LCAwLjc3OTkxMiwgMS4yOTY1OCwgMS42MTg1NCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTU3NDIsIDAuMTE4NTY0LCAwLjI0MTU3OCwgMC4zNDk0MTYsIDAuNDkzMjQxLCAwLjc4MTA1MywgMC45NjA1MDMiLCBcCi0gICAgICAgICAgIjAuMTAzMjgyLCAwLjEyNjEzNywgMC4yNDkxNjEsIDAuMzU2OTkxLCAwLjUwMDgzOCwgMC43ODg1OTgsIDAuOTY4Mzc1IiwgXAotICAgICAgICAgICIwLjExMjI4NiwgMC4xMzUxMjgsIDAuMjU4MTc0LCAwLjM2NTk5NiwgMC41MDk3NjYsIDAuNzk3NjA1LCAwLjk3NzE5NCIsIFwKLSAgICAgICAgICAiMC4xMjA0MjIsIDAuMTQzMjc2LCAwLjI2NjMwNywgMC4zNzQxNTUsIDAuNTE3OTcyLCAwLjgwNTgzLCAwLjk4NTMxNiIsIFwKLSAgICAgICAgICAiMC4xMjc1MDEsIDAuMTUwNCwgMC4yNzM0NzEsIDAuMzgxMzA3LCAwLjUyNTEwNywgMC44MTMwMDksIDAuOTkyNDUyIiwgXAotICAgICAgICAgICIwLjEzNzEwNiwgMC4xNjAwNjQsIDAuMjgzMjIsIDAuMzkxMDU5LCAwLjUzNDgzMywgMC44MjI2MzUsIDEuMDAyMjEiLCBcCi0gICAgICAgICAgIjAuMTQ0MDk3LCAwLjE2NzI1OCwgMC4yOTA1NTEsIDAuMzk4Mzc2LCAwLjU0MjE1MSwgMC44Mjk3ODcsIDEuMDA5NTQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg5Mzg1LCAwLjEzMTUyMywgMC4zNzcyNzQsIDAuNTk3NDU2LCAwLjg5MDk1MywgMS40ODAxLCAxLjg1MjcyIiwgXAotICAgICAgICAgICIwLjA4OTM5NCwgMC4xMzE1NDUsIDAuMzc3MjYyLCAwLjU5NzQzOCwgMC44OTA0NSwgMS40ODAzLCAxLjg0ODg4IiwgXAotICAgICAgICAgICIwLjA4OTM2NSwgMC4xMzE1NDIsIDAuMzc2NiwgMC41OTc0MzgsIDAuODkyMzE1LCAxLjQ4MDI2LCAxLjg1MjE3IiwgXAotICAgICAgICAgICIwLjA4OTU1OCwgMC4xMzE3MSwgMC4zNzczMDQsIDAuNTk3NDY5LCAwLjg5MjEyNCwgMS40ODAxOSwgMS44NTIxOCIsIFwKLSAgICAgICAgICAiMC4wOTAxNDIsIDAuMTMyMDcyLCAwLjM3NzQ4OSwgMC41OTc1NDEsIDAuODkxODg5LCAxLjQ4MDIsIDEuODUyMjIiLCBcCi0gICAgICAgICAgIjAuMDkxMTgyLCAwLjEzMjkyOSwgMC4zNzc0MDQsIDAuNTk2NjgzLCAwLjg5MDk5MywgMS40ODA2NCwgMS44NTIyMiIsIFwKLSAgICAgICAgICAiMC4wOTIyMSwgMC4xMzM2MjEsIDAuMzc3OTA2LCAwLjU5NzI2MiwgMC44OTEyNzUsIDEuNDgwOTcsIDEuODQ4NCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTA0NzUsIDAuMTA5OTEsIDAuMjE0NDU1LCAwLjMwNjExOSwgMC40MjgyNjMsIDAuNjcyNzYxLCAwLjgyNTQ4NCIsIFwKLSAgICAgICAgICAiMC4wOTg2ODksIDAuMTE4MTEyLCAwLjIyMjY2NCwgMC4zMTQyODgsIDAuNDM2NDYzLCAwLjY4MTA4MiwgMC44MzM3MjQiLCBcCi0gICAgICAgICAgIjAuMTA3Njg2LCAwLjEyNzMwNSwgMC4yMzIwOTUsIDAuMzIzNzI5LCAwLjQ0NTkwOSwgMC42OTAyNjYsIDAuODQzNzQ4IiwgXAotICAgICAgICAgICIwLjExNDA2MywgMC4xMzM2OTksIDAuMjM4NDY5LCAwLjMzMDEwNCwgMC40NTIyNjEsIDAuNjk2ODUyLCAwLjg0OTQyNCIsIFwKLSAgICAgICAgICAiMC4xMTg4OTcsIDAuMTM4NTI2LCAwLjI0MzI3OCwgMC4zMzQ5ODEsIDAuNDU3MTA1LCAwLjcwMTY2MSwgMC44NTQzMjgiLCBcCi0gICAgICAgICAgIjAuMTI0OTE2LCAwLjE0NDQ4MiwgMC4yNDkyMjEsIDAuMzQwODIzLCAwLjQ2Mjk5MiwgMC43MDc0ODMsIDAuODYwMjA4IiwgXAotICAgICAgICAgICIwLjEyOTMwMSwgMC4xNDg4NSwgMC4yNTM1MDUsIDAuMzQ1MTQ0LCAwLjQ2NzMwMiwgMC43MTIxMzksIDAuODY0NDY1Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3OTM2MywgMC4xMTYyMjIsIDAuMzMwMzUxLCAwLjUyMjg5OSwgMC43Nzk5MTgsIDEuMjk1NzUsIDEuNjE4IiwgXAotICAgICAgICAgICIwLjA3OTM2OSwgMC4xMTYyMTgsIDAuMzMwMzQ4LCAwLjUyMjk3MywgMC43ODA3NCwgMS4yOTU0NSwgMS42MTg3NSIsIFwKLSAgICAgICAgICAiMC4wNzkzMDgsIDAuMTE2MTc0LCAwLjMzMDMzMSwgMC41MjI5MzUsIDAuNzgwODY4LCAxLjI5NzU0LCAxLjYxODY0IiwgXAotICAgICAgICAgICIwLjA3OTE1MywgMC4xMTYwNzgsIDAuMzMwMTk0LCAwLjUyMjk1MSwgMC43ODA3NzEsIDEuMjk1NjgsIDEuNjE4ODMiLCBcCi0gICAgICAgICAgIjAuMDc5MTE2LCAwLjExNTk5NCwgMC4zMzAzMTEsIDAuNTIyODQ4LCAwLjc3OTkzNywgMS4yOTU4OSwgMS42MTc2NiIsIFwKLSAgICAgICAgICAiMC4wNzkwNDEsIDAuMTE1ODYyLCAwLjMzMDIwMywgMC41MjI1MTEsIDAuNzgwNzE4LCAxLjI5NTk1LCAxLjYxODgxIiwgXAotICAgICAgICAgICIwLjA3OTE2NywgMC4xMTU5MTYsIDAuMzMwMzQ5LCAwLjUyMjcxNiwgMC43Nzk3ODIsIDEuMjk1NjcsIDEuNjE5ODQiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTAxODk5LCAwLjEyNDgxNiwgMC4yNDc5MzMsIDAuMzU1NzczLCAwLjQ5OTU1MywgMC43ODc0ODMsIDAuOTY2ODk5IiwgXAotICAgICAgICAgICIwLjExMDM1LCAwLjEzMzMxLCAwLjI1NjQzNiwgMC4zNjQyNzYsIDAuNTA4MDcxLCAwLjc5NjAwMSwgMC45NzUzODkiLCBcCi0gICAgICAgICAgIjAuMTE5ODU3LCAwLjE0Mjc2NSwgMC4yNjU5MTMsIDAuMzczNzQ4LCAwLjUxNzU0NywgMC44MDU0NywgMC45ODQ4NjEiLCBcCi0gICAgICAgICAgIjAuMTI2NzEsIDAuMTQ5NjU1LCAwLjI3Mjc4NSwgMC4zODA2MzIsIDAuNTI0NDI3LCAwLjgxMjM3MSwgMC45OTE3NTMiLCBcCi0gICAgICAgICAgIjAuMTMyMSwgMC4xNTQ5NzEsIDAuMjc4MTU5LCAwLjM4NjAxNywgMC41Mjk4LCAwLjgxNzc1NCwgMC45OTcxMzkiLCBcCi0gICAgICAgICAgIjAuMTM5MTg0LCAwLjE2MjAzNywgMC4yODUxNjYsIDAuMzkzMDEzLCAwLjUzNjg0NCwgMC44MjQ2ODQsIDEuMDA0MjUiLCBcCi0gICAgICAgICAgIjAuMTQ0MzgyLCAwLjE2NzI1NywgMC4yOTAyNjcsIDAuMzk4MTI0LCAwLjU0MTkyOCwgMC44Mjk3NTgsIDEuMDA5NzgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg5ODAxLCAwLjEzMTkzMSwgMC4zNzcxMDUsIDAuNTk3NTgzLCAwLjg5MjQ0NCwgMS40ODAxOSwgMS44NDg0NSIsIFwKLSAgICAgICAgICAiMC4wODk3NDYsIDAuMTMxOTE5LCAwLjM3NzQxOCwgMC41OTc1NTIsIDAuODkxMjE5LCAxLjQ4MDEsIDEuODUyMSIsIFwKLSAgICAgICAgICAiMC4wODk3MTcsIDAuMTMxODc1LCAwLjM3Njk0LCAwLjU5NzU0MSwgMC44OTIyMzgsIDEuNDgwMiwgMS44NDg0OCIsIFwKLSAgICAgICAgICAiMC4wODk2ODEsIDAuMTMxODcxLCAwLjM3NzQ1NSwgMC41OTc1NTMsIDAuODkxMTkyLCAxLjQ4MDA2LCAxLjg1MDM1IiwgXAotICAgICAgICAgICIwLjA4OTU0OSwgMC4xMzE4NywgMC4zNzc0MjUsIDAuNTk3NjYxLCAwLjg5MjA5NSwgMS40ODA1MSwgMS44NTAwNiIsIFwKLSAgICAgICAgICAiMC4wODkzOTIsIDAuMTMxNjczLCAwLjM3NzMwNiwgMC41OTY3NDcsIDAuODkyMTI4LCAxLjQ4MDE5LCAxLjg0ODU0IiwgXAotICAgICAgICAgICIwLjA4OTU3LCAwLjEzMTUwNSwgMC4zNzY1MjUsIDAuNTk3NTIsIDAuODkyMDk3LCAxLjQ4MDk0LCAxLjg0ODYyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2MjQyMiwgMC4wODE5MjgsIDAuMTg2NTM0LCAwLjI3ODE0OCwgMC40MDAzNjUsIDAuNjQ0Nzg2LCAwLjc5NzQ5NiIsIFwKLSAgICAgICAgICAiMC4wNzAzNjYsIDAuMDg5ODQ2LCAwLjE5NDQzNywgMC4yODYwNTUsIDAuNDA4Mjg0LCAwLjY1MjgwNSwgMC44MDYwODkiLCBcCi0gICAgICAgICAgIjAuMDc5MTQ2LCAwLjA5ODU4NSwgMC4yMDMxOTMsIDAuMjk0ODExLCAwLjQxNzA0OSwgMC42NjE3NjUsIDAuODE0MTM1IiwgXAotICAgICAgICAgICIwLjA4NjEwOSwgMC4xMDU1OCwgMC4yMTAyMTgsIDAuMzAxODM2LCAwLjQyNDE1OSwgMC42Njg3MzcsIDAuODIxMTc4IiwgXAotICAgICAgICAgICIwLjA5MTk3NiwgMC4xMTE0OTQsIDAuMjE2MjEzLCAwLjMwNzgxMiwgMC40MzAwMDksIDAuNjc0NTkyLCAwLjgyNzEzOSIsIFwKLSAgICAgICAgICAiMC4wOTk5NzcsIDAuMTE5NTIxLCAwLjIyNDQzLCAwLjMxNjAxOCwgMC40MzgxMTUsIDAuNjgyNDgzLCAwLjgzNTQ2OSIsIFwKLSAgICAgICAgICAiMC4xMDYxODUsIDAuMTI1NjU0LCAwLjIzMDYzNSwgMC4zMjIzMzQsIDAuNDQ0NCwgMC42ODg4ODMsIDAuODQxNzE3Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3NzU0MiwgMC4xMTQ5MDQsIDAuMzMwMjM3LCAwLjUyMjcxOCwgMC43ODA4OSwgMS4yOTYyMiwgMS42MTg3NyIsIFwKLSAgICAgICAgICAiMC4wNzcyMjcsIDAuMTE0NjcsIDAuMzMwMDEyLCAwLjUyMjY2NiwgMC43Nzk1MzIsIDEuMjk1NDgsIDEuNjE4NzciLCBcCi0gICAgICAgICAgIjAuMDc3MTg1LCAwLjExNDU2NywgMC4zMjk5NzYsIDAuNTIyNjEsIDAuNzc5NjUzLCAxLjI5NjUzLCAxLjYxNzczIiwgXAotICAgICAgICAgICIwLjA3NzUxNCwgMC4xMTQ4MzUsIDAuMzI5OTY0LCAwLjUyMjY5NiwgMC43Nzk3MDMsIDEuMjk1NTcsIDEuNjE5NTQiLCBcCi0gICAgICAgICAgIjAuMDc4MDYzLCAwLjExNTEzOCwgMC4zMzAyNjQsIDAuNTIzMDcsIDAuNzc5OTExLCAxLjI5NjIzLCAxLjYxNzcyIiwgXAotICAgICAgICAgICIwLjA3OTA5MywgMC4xMTU3NDksIDAuMzMwNDIyLCAwLjUyMjc0NiwgMC43Nzk5NzEsIDEuMjk3NDMsIDEuNjE3OTkiLCBcCi0gICAgICAgICAgIjAuMDc5OTUxLCAwLjExNjYyNiwgMC4zMzA1NDUsIDAuNTIzMjM3LCAwLjc4MDk1OCwgMS4yOTUyOCwgMS42MTkwMiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzExNjUsIDAuMDkzOTA4LCAwLjIxNjgyNiwgMC4zMjQ2NzIsIDAuNDY4NTQ4LCAwLjc1NjI4NywgMC45MzU3ODYiLCBcCi0gICAgICAgICAgIjAuMDc4ODIsIDAuMTAxNTQxLCAwLjIyNDQ2MSwgMC4zMzIzMDgsIDAuNDc2MTc3LCAwLjc2Mzg5NCwgMC45NDM0OTMiLCBcCi0gICAgICAgICAgIjAuMDg3MTAyLCAwLjEwOTgxLCAwLjIzMjc0OCwgMC4zNDA1OTIsIDAuNDg0NDcsIDAuNzcyMDE4LCAwLjk1MTY4MSIsIFwKLSAgICAgICAgICAiMC4wOTM2MTksIDAuMTE2MzU1LCAwLjIzOTMzNSwgMC4zNDcxNTcsIDAuNDkwOTIyLCAwLjc3ODcxNiwgMC45NTgzOTciLCBcCi0gICAgICAgICAgIjAuMDk4OTc1LCAwLjEyMTc4NiwgMC4yNDQ4NDIsIDAuMzUyNjc3LCAwLjQ5NjQ4OSwgMC43ODQwNjQsIDAuOTYzODk0IiwgXAotICAgICAgICAgICIwLjEwNjE3NSwgMC4xMjkwNTYsIDAuMjUyMzIsIDAuMzYwMTIzLCAwLjUwMzg4MiwgMC43OTE1NDYsIDAuOTcxMjc5IiwgXAotICAgICAgICAgICIwLjExMTU4NSwgMC4xMzQ0NjEsIDAuMjU3OTI0LCAwLjM2NTc1NywgMC41MDk1MjgsIDAuNzk3MDYzLCAwLjk3NzIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg3Nzk4LCAwLjEzMDQzNiwgMC4zNzY5OTMsIDAuNTk2NDQsIDAuODkwMTY2LCAxLjQ4MDM2LCAxLjg1MjE5IiwgXAotICAgICAgICAgICIwLjA4NzUzMSwgMC4xMzAyNDIsIDAuMzc2NTU5LCAwLjU5NzQyOCwgMC44OTIxNjMsIDEuNDgwMjMsIDEuODUyMTUiLCBcCi0gICAgICAgICAgIjAuMDg3NDg2LCAwLjEzMDE4NSwgMC4zNzY5MzksIDAuNTk2Nzc4LCAwLjg5MDg3NCwgMS40ODEwNiwgMS44NTIwMSIsIFwKLSAgICAgICAgICAiMC4wODc4MjcsIDAuMTMwNDY4LCAwLjM3NzA2NSwgMC41OTczMTUsIDAuODkyMjMxLCAxLjQ4MDM1LCAxLjg0OTA2IiwgXAotICAgICAgICAgICIwLjA4ODE2MSwgMC4xMzA3NzQsIDAuMzc3MjY2LCAwLjU5NzUxMywgMC44OTE0MjIsIDEuNDgyNzksIDEuODUwMTQiLCBcCi0gICAgICAgICAgIjAuMDg4OTE4LCAwLjEzMTE2MywgMC4zNzY5NSwgMC41OTczNzYsIDAuODkyMjcsIDEuNDgxMTYsIDEuODUyMDUiLCBcCi0gICAgICAgICAgIjAuMDg5Mzk2LCAwLjEzMTYzLCAwLjM3NzM1MSwgMC41OTgwNDEsIDAuODkyNzI3LCAxLjQ4MzIyLCAxLjg0ODg4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2NzM4NiwgMC4wODY3NzgsIDAuMTkxMjQ2LCAwLjI4Mjg3NywgMC40MDUxODUsIDAuNjQ5NjU0LCAwLjgwMjM0MSIsIFwKLSAgICAgICAgICAiMC4wNzUzMywgMC4wOTQ3MTUsIDAuMTk5MTg0LCAwLjI5MDgwOCwgMC40MTMxNTgsIDAuNjU3MzkyLCAwLjgxMDE3OSIsIFwKLSAgICAgICAgICAiMC4wODIxNTcsIDAuMTAxNDk5LCAwLjIwNTk2MiwgMC4yOTc1OTEsIDAuNDE5Nzg2LCAwLjY2NDMyOSwgMC44MTcxNzYiLCBcCi0gICAgICAgICAgIjAuMDg2Mzg3LCAwLjEwNTY4OCwgMC4yMTAxNzYsIDAuMzAxNzg4LCAwLjQyNDA3MiwgMC42Njg0NTIsIDAuODIxNDIyIiwgXAotICAgICAgICAgICIwLjA4OTcyLCAwLjEwODkwOSwgMC4yMTMzNDIsIDAuMzA0OTg5LCAwLjQyNzE5NSwgMC42NzE3MDEsIDAuODI0NTY0IiwgXAotICAgICAgICAgICIwLjA5MzkzMiwgMC4xMTMxNTcsIDAuMjE3NDE4LCAwLjMwOTE2MSwgMC40MzE0NzcsIDAuNjc1NzA0LCAwLjgyOTE5NyIsIFwKLSAgICAgICAgICAiMC4wOTY5NTIsIDAuMTE2MjEzLCAwLjIyMDM3MywgMC4zMTIwMDksIDAuNDM0MjQ5LCAwLjY3ODcyLCAwLjgzMTk1Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3NzI3MiwgMC4xMTQ1MTEsIDAuMzI5NjQsIDAuNTIyNTk1LCAwLjc3OTEzNCwgMS4yOTU0MywgMS42MTg5NSIsIFwKLSAgICAgICAgICAiMC4wNzcxMTIsIDAuMTE0Mzk0LCAwLjMyOTYwNiwgMC41MjI1MywgMC43ODA3MzQsIDEuMjk2NTksIDEuNjE3NTEiLCBcCi0gICAgICAgICAgIjAuMDc2Nzk0LCAwLjExNDE2OSwgMC4zMjk3NzMsIDAuNTIyNTA5LCAwLjc4MDY3NiwgMS4yOTUzOSwgMS42MTkwNSIsIFwKLSAgICAgICAgICAiMC4wNzY1ODgsIDAuMTEzODY3LCAwLjMyOTc1LCAwLjUyMjExMiwgMC43Nzk3NjgsIDEuMjk0NzgsIDEuNjE4NzUiLCBcCi0gICAgICAgICAgIjAuMDc2NDgzLCAwLjExMzgxMSwgMC4zMjk1NjIsIDAuNTIyNzAzLCAwLjc4MDc2MiwgMS4yOTQ3OCwgMS42MTg5NCIsIFwKLSAgICAgICAgICAiMC4wNzY1NjYsIDAuMTEzNzYyLCAwLjMyOTQ3MiwgMC41MjE5MTMsIDAuNzc5ODE5LCAxLjI5NTE1LCAxLjYxOTE0IiwgXAotICAgICAgICAgICIwLjA3NjYzMywgMC4xMTM4NTgsIDAuMzI5Mjg3LCAwLjUyMjMyNywgMC43NzkzMzgsIDEuMjk1OSwgMS42MTc3OSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzU0MjQsIDAuMDk4Mjg0LCAwLjIyMTMzMSwgMC4zMjkxODksIDAuNDczLCAwLjc2MDg0LCAwLjk0MDI1NiIsIFwKLSAgICAgICAgICAiMC4wODM3NzIsIDAuMTA2NTk2LCAwLjIyOTY1OSwgMC4zMzc0OTIsIDAuNDgxMzg5LCAwLjc2OTEzMywgMC45NDg2NTQiLCBcCi0gICAgICAgICAgIjAuMDkxMTI1LCAwLjExMzk0NSwgMC4yMzY5NDEsIDAuMzQ0ODU4LCAwLjQ4ODU2LCAwLjc3NjQ4MywgMC45NTU5OTEiLCBcCi0gICAgICAgICAgIjAuMDk1ODY4LCAwLjExODY2NCwgMC4yNDE3MTQsIDAuMzQ5NTk2LCAwLjQ5MzQ1NSwgMC43ODEyMDgsIDAuOTYwNzM5IiwgXAotICAgICAgICAgICIwLjA5OTgzLCAwLjEyMjUyMiwgMC4yNDU1OTQsIDAuMzUzNDMxLCAwLjQ5NzI5MiwgMC43ODUwNTcsIDAuOTY0NjE4IiwgXAotICAgICAgICAgICIwLjEwNDk5NCwgMC4xMjc3MjcsIDAuMjUwNjEyLCAwLjM1ODQ3OSwgMC41MDIyOSwgMC43ODk5MzcsIDAuOTY5NzE2IiwgXAotICAgICAgICAgICIwLjEwODkyOSwgMC4xMzE2MzQsIDAuMjU0MzQ5LCAwLjM2MjM3MywgMC41MDYwODcsIDAuNzk0MDcyLCAwLjk3NDA3NCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODgyOTEsIDAuMTMwODk5LCAwLjM3Njg4NCwgMC41OTc2MjksIDAuODkwODkzLCAxLjQ4MDIxLCAxLjg1Mjc5IiwgXAotICAgICAgICAgICIwLjA4ODEzMywgMC4xMzA3NzcsIDAuMzc2ODM3LCAwLjU5NzQwOCwgMC44OTA2NTMsIDEuNDgwMjEsIDEuODUyMTciLCBcCi0gICAgICAgICAgIjAuMDg3ODYsIDAuMTMwNTQ2LCAwLjM3NjczOSwgMC41OTc1NzYsIDAuODkyMzQsIDEuNDgwMTksIDEuODUyMTYiLCBcCi0gICAgICAgICAgIjAuMDg3NjE0LCAwLjEzMDM3OSwgMC4zNzcwNjEsIDAuNTk2MTkzLCAwLjg5MDIxNSwgMS40ODAxOSwgMS44NTIxNCIsIFwKLSAgICAgICAgICAiMC4wODc0NiwgMC4xMzAyNzQsIDAuMzc2NjE3LCAwLjU5NzI0NSwgMC44OTIxNjQsIDEuNDgwMjIsIDEuODUyMTUiLCBcCi0gICAgICAgICAgIjAuMDg3NDc4LCAwLjEzMDAwNSwgMC4zNzY4NTEsIDAuNTk3MzksIDAuODkwNTgzLCAxLjQ4MzE1LCAxLjg1MTYiLCBcCi0gICAgICAgICAgIjAuMDg3NTI1LCAwLjEzMDA3MiwgMC4zNzY3OCwgMC41OTU5OSwgMC44OTIwODYsIDEuNDgwMDcsIDEuODUxODgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTE0NDEsIDAuMDExNDQ1LCAwLjAxMTQ1NSwgMC4wMTE0NTcsIDAuMDExNDU5LCAwLjAxMTQ2LCAwLjAxMTQ2MSIsIFwKLSAgICAgICAgICAiMC4wMTE0MzEsIDAuMDExNDM1LCAwLjAxMTQ0NSwgMC4wMTE0NDcsIDAuMDExNDQ5LCAwLjAxMTQ1MSwgMC4wMTE0NSIsIFwKLSAgICAgICAgICAiMC4wMTE1MTcsIDAuMDExNTIxLCAwLjAxMTUzMSwgMC4wMTE1MzQsIDAuMDExNTM1LCAwLjAxMTUzNywgMC4wMTE1MzgiLCBcCi0gICAgICAgICAgIjAuMDExNTk4LCAwLjAxMTYwMiwgMC4wMTE2MTIsIDAuMDExNjE1LCAwLjAxMTYxNywgMC4wMTE2MTgsIDAuMDExNjE5IiwgXAotICAgICAgICAgICIwLjAxMTcyOCwgMC4wMTE3MzIsIDAuMDExNzQxLCAwLjAxMTc0NSwgMC4wMTE3NDcsIDAuMDExNzQ4LCAwLjAxMTc0OCIsIFwKLSAgICAgICAgICAiMC4wMTE5NTIsIDAuMDExOTU0LCAwLjAxMTk2NSwgMC4wMTE5NjksIDAuMDExOTY4LCAwLjAxMTk3MywgMC4wMTE5NzMiLCBcCi0gICAgICAgICAgIjAuMDEyMTU0LCAwLjAxMjE1NiwgMC4wMTIxNjUsIDAuMDEyMTcsIDAuMDEyMTczLCAwLjAxMjE3NCwgMC4wMTIxNzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTEwNTcsIDAuMDExMDY1LCAwLjAxMTA4NCwgMC4wMTEwODksIDAuMDExMDkyLCAwLjAxMTA5NSwgMC4wMTEwOTYiLCBcCi0gICAgICAgICAgIjAuMDExMDM0LCAwLjAxMTA0MSwgMC4wMTEwNiwgMC4wMTEwNjYsIDAuMDExMDY5LCAwLjAxMTA3MiwgMC4wMTEwNzIiLCBcCi0gICAgICAgICAgIjAuMDExMDk0LCAwLjAxMTEwMiwgMC4wMTExMjEsIDAuMDExMTI2LCAwLjAxMTEzLCAwLjAxMTEzMiwgMC4wMTExMzMiLCBcCi0gICAgICAgICAgIjAuMDExMjMyLCAwLjAxMTIzOSwgMC4wMTEyNTksIDAuMDExMjY0LCAwLjAxMTI2OCwgMC4wMTEyNzEsIDAuMDExMjcyIiwgXAotICAgICAgICAgICIwLjAxMTM4MiwgMC4wMTEzODksIDAuMDExNDA5LCAwLjAxMTQxNSwgMC4wMTE0MTksIDAuMDExNDIyLCAwLjAxMTQyMyIsIFwKLSAgICAgICAgICAiMC4wMTE1NzEsIDAuMDExNTc0LCAwLjAxMTU5NCwgMC4wMTE2LCAwLjAxMTYwNCwgMC4wMTE2MDcsIDAuMDExNjA4IiwgXAotICAgICAgICAgICIwLjAxMTc3OSwgMC4wMTE3ODYsIDAuMDExODA1LCAwLjAxMTgxMSwgMC4wMTE4MTQsIDAuMDExODE4LCAwLjAxMTgxOSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjA5OCwgMC4wMDYxMDMsIDAuMDA2MTEyLCAwLjAwNjExNCwgMC4wMDYxMTUsIDAuMDA2MTE1LCAwLjAwNjExNiIsIFwKLSAgICAgICAgICAiMC4wMDYxOTgsIDAuMDA2MjA0LCAwLjAwNjIxNCwgMC4wMDYyMTcsIDAuMDA2MjE4LCAwLjAwNjIxOSwgMC4wMDYyMiIsIFwKLSAgICAgICAgICAiMC4wMDYzOTEsIDAuMDA2Mzk2LCAwLjAwNjQwOCwgMC4wMDY0MTIsIDAuMDA2NDE0LCAwLjAwNjQxNSwgMC4wMDY0MTYiLCBcCi0gICAgICAgICAgIjAuMDA2NjYxLCAwLjAwNjY1MywgMC4wMDY2NjQsIDAuMDA2NjY4LCAwLjAwNjY3LCAwLjAwNjY3MSwgMC4wMDY2NzIiLCBcCi0gICAgICAgICAgIjAuMDA2OTQ1LCAwLjAwNjk0NiwgMC4wMDY5NTYsIDAuMDA2OTU5LCAwLjAwNjk2MSwgMC4wMDY5NjMsIDAuMDA2OTY0IiwgXAotICAgICAgICAgICIwLjAwNzQxMiwgMC4wMDc0MDksIDAuMDA3NDE0LCAwLjAwNzQxNywgMC4wMDc0MTgsIDAuMDA3NDIxLCAwLjAwNzQyMSIsIFwKLSAgICAgICAgICAiMC4wMDc4MjQsIDAuMDA3ODE3LCAwLjAwNzgxNywgMC4wMDc4MiwgMC4wMDc4MjIsIDAuMDA3ODIzLCAwLjAwNzgyNCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNzIyMSwgMC4wMDcyMjksIDAuMDA3MjQ4LCAwLjAwNzI1MywgMC4wMDcyNTYsIDAuMDA3MjU5LCAwLjAwNzI1OSIsIFwKLSAgICAgICAgICAiMC4wMDcyNzUsIDAuMDA3MjgzLCAwLjAwNzMwMiwgMC4wMDczMDgsIDAuMDA3MzExLCAwLjAwNzMxNCwgMC4wMDczMTUiLCBcCi0gICAgICAgICAgIjAuMDA3NDc1LCAwLjAwNzQ4MywgMC4wMDc1MDQsIDAuMDA3NTEsIDAuMDA3NTE0LCAwLjAwNzUxOCwgMC4wMDc1MTkiLCBcCi0gICAgICAgICAgIjAuMDA3NzUzLCAwLjAwNzc2MSwgMC4wMDc3ODMsIDAuMDA3NzksIDAuMDA3Nzk0LCAwLjAwNzc5OCwgMC4wMDc3OTkiLCBcCi0gICAgICAgICAgIjAuMDA4MDM4LCAwLjAwODA1NSwgMC4wMDgwNjYsIDAuMDA4MDczLCAwLjAwODA3OCwgMC4wMDgwODIsIDAuMDA4MDgzIiwgXAotICAgICAgICAgICIwLjAwODU0NiwgMC4wMDg1NDYsIDAuMDA4NTczLCAwLjAwODU4LCAwLjAwODU4NSwgMC4wMDg1ODMsIDAuMDA4NTkxIiwgXAotICAgICAgICAgICIwLjAwODk2OSwgMC4wMDg5NzQsIDAuMDA4OTk0LCAwLjAwOTAwMSwgMC4wMDkwMDYsIDAuMDA5MDEsIDAuMDA5MDEyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0NTgzLCAwLjAwNDU4OSwgMC4wMDQ1OTksIDAuMDA0NjAxLCAwLjAwNDYwMiwgMC4wMDQ2MDMsIDAuMDA0NjAxIiwgXAotICAgICAgICAgICIwLjAwNDY4MSwgMC4wMDQ2ODgsIDAuMDA0NywgMC4wMDQ3MDMsIDAuMDA0NzA0LCAwLjAwNDcwNiwgMC4wMDQ3MDYiLCBcCi0gICAgICAgICAgIjAuMDA0ODY2LCAwLjAwNDg3MiwgMC4wMDQ4ODcsIDAuMDA0ODksIDAuMDA0ODkxLCAwLjAwNDg5MiwgMC4wMDQ4OTMiLCBcCi0gICAgICAgICAgIjAuMDA1MDg0LCAwLjAwNTA4OSwgMC4wMDUxMDMsIDAuMDA1MTA3LCAwLjAwNTEwOSwgMC4wMDUxMDQsIDAuMDA1MTA1IiwgXAotICAgICAgICAgICIwLjAwNTMyMywgMC4wMDUzMjgsIDAuMDA1MzIyLCAwLjAwNTM0NCwgMC4wMDUzNDcsIDAuMDA1MzI5LCAwLjAwNTM1IiwgXAotICAgICAgICAgICIwLjAwNTY3NywgMC4wMDU3MDksIDAuMDA1Njk1LCAwLjAwNTY5OSwgMC4wMDU3MjUsIDAuMDA1NzI2LCAwLjAwNTcyNiIsIFwKLSAgICAgICAgICAiMC4wMDYwMTYsIDAuMDA2MDIxLCAwLjAwNjAzNiwgMC4wMDYwMzksIDAuMDA2MDQxLCAwLjAwNjA0MiwgMC4wMDYwMzgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDM1NTYsIDAuMDAzNTY3LCAwLjAwMzU4MywgMC4wMDM1ODcsIDAuMDAzNTg5LCAwLjAwMzU5LCAwLjAwMzU5MSIsIFwKLSAgICAgICAgICAiMC4wMDM2NTcsIDAuMDAzNjY4LCAwLjAwMzY4NywgMC4wMDM2OTIsIDAuMDAzNjk0LCAwLjAwMzY5NywgMC4wMDM2OTciLCBcCi0gICAgICAgICAgIjAuMDAzODU5LCAwLjAwMzg3MSwgMC4wMDM4NzksIDAuMDAzODk3LCAwLjAwMzg5NSwgMC4wMDM5MDMsIDAuMDAzOTA0IiwgXAotICAgICAgICAgICIwLjAwNDEzOCwgMC4wMDQxNDksIDAuMDA0MTcxLCAwLjAwNDE3NiwgMC4wMDQxNzksIDAuMDA0MTgyLCAwLjAwNDE4MyIsIFwKLSAgICAgICAgICAiMC4wMDQzMDksIDAuMDA0MzIxLCAwLjAwNDM0OCwgMC4wMDQzNTQsIDAuMDA0MzU4LCAwLjAwNDM2MSwgMC4wMDQzNTEiLCBcCi0gICAgICAgICAgIjAuMDA0NzA5LCAwLjAwNDcxNCwgMC4wMDQ3NCwgMC4wMDQ3NDYsIDAuMDA0NzQ0LCAwLjAwNDc1MywgMC4wMDQ3NTQiLCBcCi0gICAgICAgICAgIjAuMDA1MDcxLCAwLjAwNTA4LCAwLjAwNTA5MiwgMC4wMDUxMDYsIDAuMDA1MTAxLCAwLjAwNTEwNCwgMC4wMDUxMTMiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBYTk9SM1hMICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKFhOT1IzWEwpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC43Nzk1NDk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDc2OTQ1MzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA3Njk0MTY7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNzY5NDUzOwotICB9Ci0gIHBpbihCKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE5Njk3MzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE5Njk3MzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE5Njk2NTsKLSAgfQotICBwaW4oQykgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNDk4NTE7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNDk4NDI7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNDk4NTE7Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4xOTQ0NDI7Ci0gICAgZnVuY3Rpb24gOiAiKCEoKEFeQileQykpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMjUyOTEsIDAuMTM2Mzg4LCAwLjIzNDM2MSwgMC4zOTY5ODEsIDAuNTU5NjU3LCAwLjkzOTQ5LCAxLjE1NjUxIiwgXAotICAgICAgICAgICIwLjEzMzMyMSwgMC4xNDQ0MywgMC4yNDI0MDgsIDAuNDA1MDM0LCAwLjU2NzcxMywgMC45NDczNjUsIDEuMTY0NSIsIFwKLSAgICAgICAgICAiMC4xNDMyODgsIDAuMTU0MzkzLCAwLjI1MjM4NSwgMC40MTQ5OTcsIDAuNTc3NzE0LCAwLjk1NzY3NywgMS4xNzQ3MyIsIFwKLSAgICAgICAgICAiMC4xNTI1NjEsIDAuMTYzNjYyLCAwLjI2MTYyMSwgMC40MjQyNTcsIDAuNTg2OTQxLCAwLjk2Njc0MywgMS4xODM4OCIsIFwKLSAgICAgICAgICAiMC4xNjA5MTUsIDAuMTcyMDE4LCAwLjI2OTk4LCAwLjQzMjYwOCwgMC41OTUzMzIsIDAuOTc1MzYyLCAxLjE5MjY0IiwgXAotICAgICAgICAgICIwLjE3Mjk4NCwgMC4xODQxMTYsIDAuMjgyMDgsIDAuNDQ0NzI2LCAwLjYwNzQ1NSwgMC45ODczMzksIDEuMjA0MDkiLCBcCi0gICAgICAgICAgIjAuMTgyMDA4LCAwLjE5MzE1MSwgMC4yOTExNiwgMC40NTM3OTEsIDAuNjE2NTUxLCAwLjk5NjE1MywgMS4yMTMyNCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMjc3NjYsIDAuMTQ5NzYsIDAuMzUwNzk1LCAwLjY5MTQ5NywgMS4wMzM1LCAxLjgzMDAxLCAyLjI4ODA4IiwgXAotICAgICAgICAgICIwLjEyNzgyNCwgMC4xNDk3NzMsIDAuMzUwODYyLCAwLjY5MTQ2OSwgMS4wMzM1MSwgMS44Mjk3NiwgMi4yODQzOCIsIFwKLSAgICAgICAgICAiMC4xMjc4NDUsIDAuMTQ5Nzk4LCAwLjM1MTAxNiwgMC42OTE1MDMsIDEuMDMzNDQsIDEuODI5ODIsIDIuMjg0NDgiLCBcCi0gICAgICAgICAgIjAuMTI3OTMxLCAwLjE0OTkxOCwgMC4zNTA3OTQsIDAuNjkxNDg0LCAxLjAzMzUxLCAxLjgzMDE3LCAyLjI4NDQ3IiwgXAotICAgICAgICAgICIwLjEyODMxLCAwLjE1MDE5LCAwLjM1MDg2OSwgMC42OTE0NjEsIDEuMDMzMzQsIDEuODI5NTEsIDIuMjg0MzUiLCBcCi0gICAgICAgICAgIjAuMTI5MTE1LCAwLjE1MDg3NiwgMC4zNTEyMTYsIDAuNjkxNjY1LCAxLjAzMzM1LCAxLjgyOTg5LCAyLjI4NDI4IiwgXAotICAgICAgICAgICIwLjEyOTk2LCAwLjE1MTY2NiwgMC4zNTE0MTUsIDAuNjkxNjA5LCAxLjAzMzM5LCAxLjgyOTM3LCAyLjI4NDMyIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwODMyNywgMC4xMTYxNTksIDAuMTgyNTM2LCAwLjI5MDQ3NiwgMC4zOTgyNzcsIDAuNjQ5OTI2LCAwLjc5Mzg2IiwgXAotICAgICAgICAgICIwLjExNjE4MiwgMC4xMjQwMTUsIDAuMTkwNDE2LCAwLjI5ODMzOSwgMC40MDYxNjcsIDAuNjU3NzkxLCAwLjgwMTczIiwgXAotICAgICAgICAgICIwLjEyNTkzMiwgMC4xMzM3NiwgMC4yMDAxNTksIDAuMzA4MTAxLCAwLjQxNTkyNiwgMC42Njc1NDYsIDAuODExNTAxIiwgXAotICAgICAgICAgICIwLjEzNDc2LCAwLjE0MjU4OSwgMC4yMDkwMDUsIDAuMzE2OTU0LCAwLjQyNDc1MSwgMC42NzY0LCAwLjgyMDI4OSIsIFwKLSAgICAgICAgICAiMC4xNDI5MywgMC4xNTA3NzYsIDAuMjE3MjA3LCAwLjMyNTE1MywgMC40MzI5NTksIDAuNjg0NjA5LCAwLjgyODQ4OCIsIFwKLSAgICAgICAgICAiMC4xNTM4NDUsIDAuMTYxNzYsIDAuMjI4Mjk0LCAwLjMzNjIyOCwgMC40NDQwNjcsIDAuNjk1NzQ2LCAwLjgzOTQ1NCIsIFwKLSAgICAgICAgICAiMC4xNjIwMDgsIDAuMTY5OTczLCAwLjIzNjY4NywgMC4zNDQ2MjQsIDAuNDUyNDM2LCAwLjcwNDI2MywgMC44NDc4MjciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg5MzM0LCAwLjEwMzMyNiwgMC4yMzEzNjUsIDAuNDQ5NjYyLCAwLjY3MDM0OCwgMS4xODY5NiwgMS40NzkzNCIsIFwKLSAgICAgICAgICAiMC4wODkzNDMsIDAuMTAzMzcyLCAwLjIzMTM3LCAwLjQ0OTY1NSwgMC42NzA0NTEsIDEuMTg2OTUsIDEuNDc5MzgiLCBcCi0gICAgICAgICAgIjAuMDg5NDIsIDAuMTAzNDE3LCAwLjIzMTM5NSwgMC40NDk2NjEsIDAuNjcwNDIsIDEuMTg2ODUsIDEuNDc5NjciLCBcCi0gICAgICAgICAgIjAuMDg5NjIsIDAuMTAzNTg0LCAwLjIzMTQ3LCAwLjQ1MDExMiwgMC42NzA0NDIsIDEuMTg2OTcsIDEuNDgwNCIsIFwKLSAgICAgICAgICAiMC4wOTAwOTEsIDAuMTA0MDExLCAwLjIzMTYxMiwgMC40NTAwODYsIDAuNjcwMzkzLCAxLjE4Njk4LCAxLjQ4MjQiLCBcCi0gICAgICAgICAgIjAuMDkxMTg3LCAwLjEwNTAxNywgMC4yMzIxMzQsIDAuNDQ5OTMxLCAwLjY3MDYzNiwgMS4xODY5MywgMS40ODI0MSIsIFwKLSAgICAgICAgICAiMC4wOTIxNTksIDAuMTA1ODkyLCAwLjIzMjY5NCwgMC40NTAxNTQsIDAuNjcwNTkyLCAxLjE4NywgMS40ODIzNiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNTA1NTQsIDAuMTYxNywgMC4yNTk1NzEsIDAuNDIyMTkxLCAwLjU4NDk1OSwgMC45NjQ0NzEsIDEuMTgyMDUiLCBcCi0gICAgICAgICAgIjAuMTU4ODUsIDAuMTY5OTM4LCAwLjI2NzgyMywgMC40MzA0NCwgMC41OTMyMzYsIDAuOTczMDEsIDEuMTkwMTMiLCBcCi0gICAgICAgICAgIjAuMTY4NTUsIDAuMTc5NjQsIDAuMjc3NTE3LCAwLjQ0MDE0MSwgMC42MDI5MTMsIDAuOTgyNzEsIDEuMTk5OCIsIFwKLSAgICAgICAgICAiMC4xNzY4MiwgMC4xODc5MTMsIDAuMjg1ODA2LCAwLjQ0ODQxNSwgMC42MTEyMjMsIDAuOTkwNzg4LCAxLjIwODI1IiwgXAotICAgICAgICAgICIwLjE4MzYyMywgMC4xOTQ3MTIsIDAuMjkyNjAyLCAwLjQ1NTIxLCAwLjYxNzkxNSwgMC45OTgzMzEsIDEuMjE0OTMiLCBcCi0gICAgICAgICAgIjAuMTkyNTQ4LCAwLjIwMzQ2OCwgMC4zMDE1MTMsIDAuNDY0MTI1LCAwLjYyNzAxNywgMS4wMDcyMiwgMS4yMjM3NyIsIFwKLSAgICAgICAgICAiMC4xOTg5OTIsIDAuMjEwMDYzLCAwLjMwNzk3MSwgMC40NzA2MDcsIDAuNjMzMjc4LCAxLjAxMzYyLCAxLjIzMDExIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEyNzQ3NiwgMC4xNDk0NTMsIDAuMzUwNjE4LCAwLjY5MTMyNiwgMS4wMzE5NiwgMS44Mjk2NSwgMi4yODQzMSIsIFwKLSAgICAgICAgICAiMC4xMjc0MjYsIDAuMTQ5MzIxLCAwLjM1MDc1OSwgMC42OTEzMjQsIDEuMDMyNjQsIDEuODI5NjEsIDIuMjg0NDgiLCBcCi0gICAgICAgICAgIjAuMTI3NDY4LCAwLjE0OTM4NSwgMC4zNTA1MTksIDAuNjkxMzIzLCAxLjAzMTk1LCAxLjgyOTcyLCAyLjI4NDQ3IiwgXAotICAgICAgICAgICIwLjEyNzQ1NiwgMC4xNDkzODUsIDAuMzUwNzc3LCAwLjY5MTMyNywgMS4wMzM0LCAxLjgzLCAyLjI4ODEiLCBcCi0gICAgICAgICAgIjAuMTI3NTIsIDAuMTQ5NDY0LCAwLjM1MDc3MiwgMC42OTEyOTUsIDEuMDMyNjMsIDEuODI4NjUsIDIuMjg0NTIiLCBcCi0gICAgICAgICAgIjAuMTI3NTA0LCAwLjE0OTQ3MywgMC4zNTA0ODIsIDAuNjkxMzksIDEuMDMxNzgsIDEuODI4ODYsIDIuMjg0NSIsIFwKLSAgICAgICAgICAiMC4xMjc1OTcsIDAuMTQ5NTI3LCAwLjM1MDUzNSwgMC42OTA2NjksIDEuMDMzMzYsIDEuODI4ODMsIDIuMjg0NDUiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTMwNDM5LCAwLjEzODIyMywgMC4yMDQzNiwgMC4zMTIyNTYsIDAuNDIwMDc1LCAwLjY3MTY4NywgMC44MTU1NjMiLCBcCi0gICAgICAgICAgIjAuMTM4Nzk3LCAwLjE0NjUzOCwgMC4yMTI2ODYsIDAuMzIwNjAyLCAwLjQyODQwOCwgMC42ODAwMzksIDAuODI0MTY0IiwgXAotICAgICAgICAgICIwLjE0ODg2OSwgMC4xNTY2NDUsIDAuMjIyNzg1LCAwLjMzMDY4NiwgMC40Mzg1MDUsIDAuNjkwMjIsIDAuODMzOTA3IiwgXAotICAgICAgICAgICIwLjE1NzM4LCAwLjE2NTE1NywgMC4yMzEzMjEsIDAuMzM5MjI1LCAwLjQ0NzAzNiwgMC42OTg2NzQsIDAuODQyODQ0IiwgXAotICAgICAgICAgICIwLjE2NDg0LCAwLjE3MjYxNCwgMC4yMzg3NTcsIDAuMzQ2NjYxLCAwLjQ1NDQ3OSwgMC43MDYyNDMsIDAuODQ5ODc2IiwgXAotICAgICAgICAgICIwLjE3NDE3NywgMC4xODE5NjgsIDAuMjQ4MTIyLCAwLjM1NjAxNywgMC40NjM4MzEsIDAuNzE1NDUsIDAuODU5NTM0IiwgXAotICAgICAgICAgICIwLjE4MTE2NywgMC4xODg5MzcsIDAuMjU1MTI1LCAwLjM2MzAyNCwgMC40NzA4MzcsIDAuNzIyNDgyLCAwLjg2NjYzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4ODYyOSwgMC4xMDI1MjMsIDAuMjMwODE0LCAwLjQ0OTY4NiwgMC42NzAyMzEsIDEuMTg2ODcsIDEuNDgwMzkiLCBcCi0gICAgICAgICAgIjAuMDg4NTgxLCAwLjEwMjYzNywgMC4yMzA4LCAwLjQ0OTY3MywgMC42NzAxODUsIDEuMTg2ODgsIDEuNDc5MzciLCBcCi0gICAgICAgICAgIjAuMDg4NjMyLCAwLjEwMjY0OSwgMC4yMzA4MTUsIDAuNDQ5Njc1LCAwLjY3MDIxNywgMS4xODY4NCwgMS40ODE5MyIsIFwKLSAgICAgICAgICAiMC4wODg2NSwgMC4xMDI2MzksIDAuMjMwNzc1LCAwLjQ0OTY2OSwgMC42NzAyNTIsIDEuMTg2ODksIDEuNDc5NDYiLCBcCi0gICAgICAgICAgIjAuMDg4NjM4LCAwLjEwMjY2MywgMC4yMzA4MiwgMC40NDk2NjYsIDAuNjcwMjA5LCAxLjE4NjgzLCAxLjQ4MjMzIiwgXAotICAgICAgICAgICIwLjA4ODY0OCwgMC4xMDI2NTQsIDAuMjMwODU5LCAwLjQ0OTYyNywgMC42NzAwOTMsIDEuMTg2ODQsIDEuNDc5NDYiLCBcCi0gICAgICAgICAgIjAuMDg4NzA0LCAwLjEwMjc1LCAwLjIzMDg3NywgMC40NDk0MTMsIDAuNjcwMDczLCAxLjE4Njg4LCAxLjQ3OTM1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExNDc2OCwgMC4xMjU4MjcsIDAuMjIzNzM3LCAwLjM4NjM1LCAwLjU0OTAxOCwgMC45Mjg4NTcsIDEuMTQ1NjkiLCBcCi0gICAgICAgICAgIjAuMTIyNDQ1LCAwLjEzMzUyNywgMC4yMzE0MzMsIDAuMzk0MDU3LCAwLjU1NjczNSwgMC45MzcxNTcsIDEuMTU0MiIsIFwKLSAgICAgICAgICAiMC4xMzE2NDgsIDAuMTQyNzM1LCAwLjI0MDYzMiwgMC40MDMyNDUsIDAuNTY1ODk1LCAwLjk0NjM5NCwgMS4xNjMwMiIsIFwKLSAgICAgICAgICAiMC4xNDAyNDgsIDAuMTUxMjk1LCAwLjI0OTIxMiwgMC40MTE4ODIsIDAuNTc0NTI5LCAwLjk1NDksIDEuMTcxNDciLCBcCi0gICAgICAgICAgIjAuMTQ3ODg2LCAwLjE1ODk2MywgMC4yNTY4NzMsIDAuNDE5NDk4LCAwLjU4MjE3NSwgMC45NjE5OTQsIDEuMTc4ODQiLCBcCi0gICAgICAgICAgIjAuMTU4NTE4LCAwLjE2OTU5NSwgMC4yNjc1NTcsIDAuNDMwMTg3LCAwLjU5MjkxMiwgMC45NzI4MzUsIDEuMTg5MjkiLCBcCi0gICAgICAgICAgIjAuMTY2NDM1LCAwLjE3NzU3NSwgMC4yNzU1NDEsIDAuNDM4MjMyLCAwLjYwMTAxNSwgMC45ODA1MzEsIDEuMTk4MzEiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTI3NjA1LCAwLjE0OTUwNiwgMC4zNTA4MjUsIDAuNjkxMzQ1LCAxLjAzMzQ4LCAxLjgzLCAyLjI4MzE5IiwgXAotICAgICAgICAgICIwLjEyNzUzMywgMC4xNDk0MzIsIDAuMzUwODIxLCAwLjY5MDc3MiwgMS4wMzM0OSwgMS44Mjg3MSwgMi4yODUwMSIsIFwKLSAgICAgICAgICAiMC4xMjc2MDUsIDAuMTQ5NTM1LCAwLjM1MDgxMSwgMC42OTE1MDgsIDEuMDMzNDIsIDEuODI5NDcsIDIuMjg0NDkiLCBcCi0gICAgICAgICAgIjAuMTI3NzM4LCAwLjE0OTYzNCwgMC4zNTA4NDksIDAuNjkwNTU1LCAxLjAzMzQ5LCAxLjgyODYzLCAyLjI4NDQ4IiwgXAotICAgICAgICAgICIwLjEyODA3NywgMC4xNDk5MzQsIDAuMzUwOTQxLCAwLjY5MTM5LCAxLjAzMzM3LCAxLjgzMDAxLCAyLjI4Nzg1IiwgXAotICAgICAgICAgICIwLjEyODkyOSwgMC4xNTA3NDMsIDAuMzUxMDEsIDAuNjkxNTcxLCAxLjAzMzM2LCAxLjgyOTY3LCAyLjI4NDg3IiwgXAotICAgICAgICAgICIwLjEyOTc4NiwgMC4xNTE1MDUsIDAuMzUxMzQ3LCAwLjY5MTc5OCwgMS4wMzMzMywgMS44MzE2NCwgMi4yODUxMyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTQzMDgsIDAuMTAyMTA1LCAwLjE2ODQyMiwgMC4yNzYzNDMsIDAuMzg0MTgsIDAuNjM1Nzg5LCAwLjc3OTU5NiIsIFwKLSAgICAgICAgICAiMC4xMDIwOTMsIDAuMTA5OTMzLCAwLjE3NjI1MywgMC4yODQxNzcsIDAuMzkxOTkzLCAwLjY0MzYxOCwgMC43ODc1OTciLCBcCi0gICAgICAgICAgIjAuMTExNjYxLCAwLjExOTQzNSwgMC4xODU3NjYsIDAuMjkzNzEyLCAwLjQwMTUyLCAwLjY1MzIyNSwgMC43OTcxMTkiLCBcCi0gICAgICAgICAgIjAuMTIwMTYzLCAwLjEyNzk3NywgMC4xOTQzMSwgMC4zMDIyMzgsIDAuNDEwMDksIDAuNjYxNjg5LCAwLjgwNTYzNyIsIFwKLSAgICAgICAgICAiMC4xMjc0NjksIDAuMTM1MjkzLCAwLjIwMTczNiwgMC4zMDk2NiwgMC40MTc0NzgsIDAuNjY5MTM5LCAwLjgxMzAxMyIsIFwKLSAgICAgICAgICAiMC4xMzc0MjMsIDAuMTQ1Mjc3LCAwLjIxMTg0OCwgMC4zMTk3OTksIDAuNDI3NTk2LCAwLjY3OTI5NiwgMC44MjMwNyIsIFwKLSAgICAgICAgICAiMC4xNDQ2MjYsIDAuMTUyNTYzLCAwLjIxOTM1MSwgMC4zMjczNDYsIDAuNDM1MTQ5LCAwLjY4Njg1NSwgMC44MzA1MzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg5MDM5LCAwLjEwMzA1NywgMC4yMzEyMDQsIDAuNDQ5OTAzLCAwLjY3MDQ4OSwgMS4xODY5MywgMS40Nzk0MiIsIFwKLSAgICAgICAgICAiMC4wODg5OSwgMC4xMDMwNDcsIDAuMjMxMiwgMC40NDk5MDEsIDAuNjcwMzMzLCAxLjE4NjksIDEuNDc5NzkiLCBcCi0gICAgICAgICAgIjAuMDg5MDE4LCAwLjEwMzAyNiwgMC4yMzExNzYsIDAuNDQ5MDY2LCAwLjY3MDMxNiwgMS4xODY4NSwgMS40Nzk1OCIsIFwKLSAgICAgICAgICAiMC4wODkyNDcsIDAuMTAzMTk5LCAwLjIzMTI4MiwgMC40NDk5MjksIDAuNjcwNTM0LCAxLjE4NjkyLCAxLjQ3OTM2IiwgXAotICAgICAgICAgICIwLjA4OTgzMiwgMC4xMDM3NjIsIDAuMjMxNTU5LCAwLjQ1MDAyLCAwLjY3MDM5NSwgMS4xODY4MywgMS40ODAzMyIsIFwKLSAgICAgICAgICAiMC4wOTA5NCwgMC4xMDQ3NjcsIDAuMjMyMTE5LCAwLjQ1MDI2MiwgMC42NzA0NjIsIDEuMTg2OTQsIDEuNDgwMyIsIFwKLSAgICAgICAgICAiMC4wOTIwNTUsIDAuMTA1Njg2LCAwLjIzMjY3NiwgMC40NTA1NDgsIDAuNjcwMzg5LCAxLjE4NDY5LCAxLjQ4MTkxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExNDYyNCwgMC4xMjU3LCAwLjIyMzY2NSwgMC4zODYyODEsIDAuNTQ4OTYsIDAuOTI4NDQxLCAxLjE0NTk2IiwgXAotICAgICAgICAgICIwLjEyMzI4LCAwLjEzNDM1LCAwLjIzMjMxNiwgMC4zOTQ5NywgMC41NTc2MjgsIDAuOTM3ODIxLCAxLjE1NDQzIiwgXAotICAgICAgICAgICIwLjEzMjc3MiwgMC4xNDM4NjIsIDAuMjQxODQxLCAwLjQwNDQzMywgMC41NjcxNDcsIDAuOTQ2ODE1LCAxLjE2MzkxIiwgXAotICAgICAgICAgICIwLjEzOTExNiwgMC4xNTAyLCAwLjI0ODE1MSwgMC40MTA3ODMsIDAuNTczNDY5LCAwLjk1MzA2MiwgMS4xNzAzNyIsIFwKLSAgICAgICAgICAiMC4xNDM4ODksIDAuMTU0OTY5LCAwLjI1MjkxLCAwLjQxNTYwNSwgMC41NzgyNTcsIDAuOTU3OTc4LCAxLjE3NDY1IiwgXAotICAgICAgICAgICIwLjE0OTc1NSwgMC4xNjA4MDEsIDAuMjU4NzYsIDAuNDIxNDUsIDAuNTg0MDU3LCAwLjk2MzkyLCAxLjE4MDkiLCBcCi0gICAgICAgICAgIjAuMTU0MTM4LCAwLjE2NTE2NCwgMC4yNjMwNDEsIDAuNDI1Nzg5LCAwLjU4ODMyNCwgMC45NjgzMjUsIDEuMTg1MDMiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTI3NjU5LCAwLjE0OTU2OCwgMC4zNTA5MDcsIDAuNjkxMzg2LCAxLjAzMzQ5LCAxLjgzMDczLCAyLjI4NDkiLCBcCi0gICAgICAgICAgIjAuMTI3NjUzLCAwLjE0OTU3NSwgMC4zNTA5MDksIDAuNjkwNTQ4LCAxLjAzMzUsIDEuODI4ODIsIDIuMjg0MzIiLCBcCi0gICAgICAgICAgIjAuMTI3NjIxLCAwLjE0OTUyMiwgMC4zNTA4OTYsIDAuNjkxMzczLCAxLjAzMzQ4LCAxLjgyOTYyLCAyLjI4NDMyIiwgXAotICAgICAgICAgICIwLjEyNzQ4MiwgMC4xNDk1MDYsIDAuMzUwODgyLCAwLjY5MTM3MSwgMS4wMzM0NywgMS44Mjg2MSwgMi4yODQ0NCIsIFwKLSAgICAgICAgICAiMC4xMjc0OTIsIDAuMTQ5NDUyLCAwLjM1MDg5NSwgMC42OTA0NCwgMS4wMzM0MSwgMS44MzAxLCAyLjI4Mzg0IiwgXAotICAgICAgICAgICIwLjEyNzM1MSwgMC4xNDkzNzgsIDAuMzUwNjI0LCAwLjY5MTU5NCwgMS4wMzMzOCwgMS44MzE2OSwgMi4yODQzMyIsIFwKLSAgICAgICAgICAiMC4xMjczNDcsIDAuMTQ5MjM5LCAwLjM1MDI3OCwgMC42OTAyNzcsIDEuMDMzMzMsIDEuODI5MDksIDIuMjg0NSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTg4MTMsIDAuMTA2NTg3LCAwLjE3MjcxNywgMC4yODA2MTMsIDAuMzg4NDY3LCAwLjY0MDA0MywgMC43ODQxMjgiLCBcCi0gICAgICAgICAgIjAuMTA3Mjk0LCAwLjExNTA2MiwgMC4xODExOSwgMC4yODkwODgsIDAuMzk2ODk0LCAwLjY0ODUyNSwgMC43OTI2NDUiLCBcCi0gICAgICAgICAgIjAuMTE2ODExLCAwLjEyNDU0MSwgMC4xOTA2ODksIDAuMjk4NjA0LCAwLjQwNjQxMiwgMC42NTgwNDYsIDAuODAyMTcyIiwgXAotICAgICAgICAgICIwLjEyMzU4LCAwLjEzMTM1MywgMC4xOTc0OTUsIDAuMzA1Mzk4LCAwLjQxMzIxNCwgMC42NjQ4MzQsIDAuODA4OTIiLCBcCi0gICAgICAgICAgIjAuMTI4OTQxLCAwLjEzNjY1NSwgMC4yMDI4MzUsIDAuMzEwNzM0LCAwLjQxODU5MSwgMC42NzAxNzQsIDAuODE0MjU2IiwgXAotICAgICAgICAgICIwLjEzNjAyNiwgMC4xNDM3NDEsIDAuMjA5NzM4LCAwLjMxNzY1NCwgMC40MjU1MTQsIDAuNjc3MTMyLCAwLjgyMTI3IiwgXAotICAgICAgICAgICIwLjE0MTA4NiwgMC4xNDg3OTgsIDAuMjE0NzkzLCAwLjMyMjcyOCwgMC40MzA1MjMsIDAuNjgyMTYxLCAwLjgyNjE4NCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODg0OCwgMC4xMDI1MDgsIDAuMjMwODIyLCAwLjQ0OTcwNywgMC42NzA0MzksIDEuMTg2OTIsIDEuNDc5NDUiLCBcCi0gICAgICAgICAgIjAuMDg4NjExLCAwLjEwMjYxOCwgMC4yMzA4MTEsIDAuNDQ5Njc0LCAwLjY3MDE0MSwgMS4xODY5LCAxLjQ3OTM1IiwgXAotICAgICAgICAgICIwLjA4ODU3OCwgMC4xMDI1NjUsIDAuMjMwNzM0LCAwLjQ0OTY2NCwgMC42NzAzMTksIDEuMTg2ODgsIDEuNDc5NCIsIFwKLSAgICAgICAgICAiMC4wODg1MzksIDAuMTAyNTU2LCAwLjIzMDc3NCwgMC40NDk2NjQsIDAuNjcwMjAxLCAxLjE4Njg4LCAxLjQ4MTk3IiwgXAotICAgICAgICAgICIwLjA4ODQ0MSwgMC4xMDI0MjYsIDAuMjMwNzIyLCAwLjQ0OTU5NSwgMC42NzAzODUsIDEuMTg2ODQsIDEuNDc5MzgiLCBcCi0gICAgICAgICAgIjAuMDg4Mjc3LCAwLjEwMjMwNSwgMC4yMzA2NjMsIDAuNDQ5NDk5LCAwLjY3MDM1OCwgMS4xODY4NywgMS40Nzk5NSIsIFwKLSAgICAgICAgICAiMC4wODg1MjQsIDAuMTAyMzU4LCAwLjIzMDYwOCwgMC40NDk1NzYsIDAuNjY5OTAyLCAxLjE4Njg4LCAxLjQ3OTUzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4NjQ2MiwgMC4wOTc0ODYsIDAuMTk1MzMxLCAwLjM1Nzk1NSwgMC41MjA2MDUsIDAuOTAwNDgyLCAxLjExNzc3IiwgXAotICAgICAgICAgICIwLjA5NDM5MywgMC4xMDU0MjEsIDAuMjAzMjgyLCAwLjM2NTkxNiwgMC41Mjg1ODQsIDAuOTA4OTMxLCAxLjEyNTUiLCBcCi0gICAgICAgICAgIjAuMTAyOTIsIDAuMTEzOTY3LCAwLjIxMTgxNiwgMC4zNzQ0NjcsIDAuNTM3MTAxLCAwLjkxNjk4LCAxLjEzNDIxIiwgXAotICAgICAgICAgICIwLjEwOTY0NiwgMC4xMjA2OTcsIDAuMjE4NTY1LCAwLjM4MTE5NywgMC41NDM4MjIsIDAuOTIzOTIxLCAxLjE0MDg0IiwgXAotICAgICAgICAgICIwLjExNTI2OSwgMC4xMjYzMDQsIDAuMjI0MjIsIDAuMzg2ODM3LCAwLjU0OTUyMSwgMC45Mjk5MjksIDEuMTQ2ODEiLCBcCi0gICAgICAgICAgIjAuMTIyODIyLCAwLjEzMzk2NSwgMC4yMzE5MjEsIDAuMzk0NjExLCAwLjU1NzE0MSwgMC45MzY4NzYsIDEuMTU0MSIsIFwKLSAgICAgICAgICAiMC4xMjg2MTYsIDAuMTM5NzQ5LCAwLjIzNzgxMywgMC40MDA0MTQsIDAuNTYzMTM5LCAwLjk0MzM0MiwgMS4xNjAzNiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMjYyODgsIDAuMTQ4NDk1LCAwLjM1MDUxOCwgMC42OTA3MTgsIDEuMDMzNTQsIDEuODI5NiwgMi4yODQzIiwgXAotICAgICAgICAgICIwLjEyNjExNiwgMC4xNDgzMDUsIDAuMzUwNTYxLCAwLjY5MDYxNCwgMS4wMzM1MiwgMS44Mjg2NCwgMi4yODQ0OSIsIFwKLSAgICAgICAgICAiMC4xMjYwNzMsIDAuMTQ4MjU4LCAwLjM1MDM2NCwgMC42OTA1OCwgMS4wMzI1OSwgMS44Mjk1MywgMi4yODQ1IiwgXAotICAgICAgICAgICIwLjEyNjMxNiwgMC4xNDg0NzgsIDAuMzUwMTgzLCAwLjY5MDcyMSwgMS4wMzMzNCwgMS44Mjg5OCwgMi4yODQ1MSIsIFwKLSAgICAgICAgICAiMC4xMjY2MSwgMC4xNDg2MzgsIDAuMzUwNzYxLCAwLjY5MTUxMywgMS4wMzMzOSwgMS44Mjk0NiwgMi4yODQ1MSIsIFwKLSAgICAgICAgICAiMC4xMjcwMjQsIDAuMTQ5MDkzLCAwLjM1MDg2NSwgMC42OTE3NDIsIDEuMDMzMzYsIDEuODI4MDMsIDIuMjg0ODgiLCBcCi0gICAgICAgICAgIjAuMTI3NzksIDAuMTQ5NTQ5LCAwLjM1MDk3NCwgMC42OTExNDcsIDEuMDMyMTEsIDEuODI4ODEsIDIuMjg0MjMiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY4MzA1LCAwLjA3NTk4MiwgMC4xNDE4MjYsIDAuMjQ5NzI5LCAwLjM1NzUxNSwgMC42MDkyOSwgMC43NTMxNzYiLCBcCi0gICAgICAgICAgIjAuMDc1OTQxLCAwLjA4MzYwOCwgMC4xNDk0NCwgMC4yNTczMTEsIDAuMzY1MTI2LCAwLjYxNjc3NSwgMC43NjA3MDQiLCBcCi0gICAgICAgICAgIjAuMDg0MDczLCAwLjA5MTcyNCwgMC4xNTc1NiwgMC4yNjU0NDgsIDAuMzczMjcxLCAwLjYyNDkyMiwgMC43Njg5MDUiLCBcCi0gICAgICAgICAgIjAuMDkwMzEsIDAuMDk4MDEzLCAwLjE2MzkxMiwgMC4yNzE3OTYsIDAuMzc5NTk4LCAwLjYzMTM2NSwgMC43NzUxODQiLCBcCi0gICAgICAgICAgIjAuMDk1NDM5LCAwLjEwMzE1MSwgMC4xNjkxNjMsIDAuMjc3MDg1LCAwLjM4NDkxLCAwLjYzNjUxOSwgMC43ODA1NjIiLCBcCi0gICAgICAgICAgIjAuMTAyMjkzLCAwLjExMDAxNywgMC4xNzYzMjYsIDAuMjg0MjU5LCAwLjM5MjA4LCAwLjY0MzgyNCwgMC43ODc1NDYiLCBcCi0gICAgICAgICAgIjAuMTA3NTkzLCAwLjExNTI2NCwgMC4xODE2ODgsIDAuMjg5NjksIDAuMzk3NDksIDAuNjQ5MDkzLCAwLjc5MzA1NSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODY1NzUsIDAuMTAwNzk2LCAwLjIyOTk4NywgMC40NDk0NDEsIDAuNjcwMDI4LCAxLjE4NDc4LCAxLjQ3OTM5IiwgXAotICAgICAgICAgICIwLjA4NjI3MywgMC4xMDA1NCwgMC4yMjk4OCwgMC40NDkzMTQsIDAuNjY5OTYxLCAxLjE4NjUsIDEuNDc5NyIsIFwKLSAgICAgICAgICAiMC4wODYyOTcsIDAuMTAwNTMyLCAwLjIyOTg1NiwgMC40NDkzOTksIDAuNjcwMDM3LCAxLjE4NjgxLCAxLjQ3OTU3IiwgXAotICAgICAgICAgICIwLjA4NjU2OCwgMC4xMDA4MDcsIDAuMjMwMDkxLCAwLjQ0OTQ3MSwgMC42NzAwNCwgMS4xODUxOCwgMS40NzkzNSIsIFwKLSAgICAgICAgICAiMC4wODY5NDYsIDAuMTAxMTQsIDAuMjMwMzUyLCAwLjQ0OTU4NywgMC42NzAzNCwgMS4xODY4NiwgMS40NzkzNCIsIFwKLSAgICAgICAgICAiMC4wODc4MzIsIDAuMTAxNzE2LCAwLjIzMDczLCAwLjQ0OTk0NSwgMC42NzA0MjMsIDEuMTg0ODIsIDEuNDgwNDIiLCBcCi0gICAgICAgICAgIjAuMDg4MjY1LCAwLjEwMjM1NSwgMC4yMzA4ODYsIDAuNDUwMDk4LCAwLjY3MDc1MywgMS4xODUxNSwgMS40Nzk3NCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTEyODIsIDAuMTAyMjksIDAuMjAwMDkyLCAwLjM2MjczMiwgMC41MjU0MjksIDAuOTA1MTAzLCAxLjEyMiIsIFwKLSAgICAgICAgICAiMC4wOTkxODksIDAuMTEwMjAxLCAwLjIwODAwMywgMC4zNzA2NDYsIDAuNTMzMzM3LCAwLjkxMzM3MywgMS4xMzAyMSIsIFwKLSAgICAgICAgICAiMC4xMDU4MjEsIDAuMTE2ODI0LCAwLjIxNDYzMywgMC4zNzc0MTEsIDAuNTM5OTE5LCAwLjkyMDAzNCwgMS4xMzY5NyIsIFwKLSAgICAgICAgICAiMC4xMDk4NywgMC4xMjA4NzksIDAuMjE4NzQ5LCAwLjM4MTQ2MywgMC41NDQxMTUsIDAuOTI0MTExLCAxLjE0MDc4IiwgXAotICAgICAgICAgICIwLjExMzA3NiwgMC4xMjQwNTEsIDAuMjIxODYxLCAwLjM4NDYxMywgMC41NDc1MDUsIDAuOTI3NDEsIDEuMTQ0MDkiLCBcCi0gICAgICAgICAgIjAuMTE3MjIzLCAwLjEyODIwOCwgMC4yMjU4NDgsIDAuMzg4Njg4LCAwLjU1MTQ0NCwgMC45MzEwMzksIDEuMTQ3NzIiLCBcCi0gICAgICAgICAgIjAuMTIwMjM2LCAwLjEzMTE5OCwgMC4yMjg3NTIsIDAuMzkxMzg3LCAwLjU1NDMyMywgMC45MzM5MzEsIDEuMTUxMDgiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTI1ODM3LCAwLjE0ODA1NSwgMC4zNTAyNjksIDAuNjkxMjQxLCAxLjAzMjE4LCAxLjgzMDg3LCAyLjI4MzIyIiwgXAotICAgICAgICAgICIwLjEyNTgxOCwgMC4xNDc5NywgMC4zNTAyMzgsIDAuNjkxMzAyLCAxLjAzMjEyLCAxLjgyOTQ4LCAyLjI4NDQzIiwgXAotICAgICAgICAgICIwLjEyNTYyNSwgMC4xNDc4MSwgMC4zNTAyNiwgMC42OTA0MTUsIDEuMDMzNDEsIDEuODI4OTgsIDIuMjg0NTEiLCBcCi0gICAgICAgICAgIjAuMTI1NDEyLCAwLjE0NzYxMywgMC4zNTAyMDcsIDAuNjkwMjkyLCAxLjAzMjI3LCAxLjgyODk4LCAyLjI4NDM0IiwgXAotICAgICAgICAgICIwLjEyNTI0MSwgMC4xNDc1MDIsIDAuMzUwMDYsIDAuNjkwMzMzLCAxLjAzMTg3LCAxLjgyODksIDIuMjg0NDYiLCBcCi0gICAgICAgICAgIjAuMTI1MTI3LCAwLjE0NzI5NCwgMC4zNDk2MjgsIDAuNjkwNDE0LCAxLjAzMTc2LCAxLjgyODgyLCAyLjI4NzAzIiwgXAotICAgICAgICAgICIwLjEyNTM0LCAwLjE0NzMzMywgMC4zNDk2MTYsIDAuNjkxMDIxLCAxLjAzMjAxLCAxLjgyODgsIDIuMjg0NDkiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDcyODYyLCAwLjA4MDYyOSwgMC4xNDY4MTEsIDAuMjU0NzI3LCAwLjM2MjUzNCwgMC42MTQxNjgsIDAuNzU4Mjk4IiwgXAotICAgICAgICAgICIwLjA4MTIyNywgMC4wODg5OTEsIDAuMTU1MTQ3LCAwLjI2MzA2NywgMC4zNzA5LCAwLjYyMjUwMSwgMC43NjY0MjEiLCBcCi0gICAgICAgICAgIjAuMDg4NDA0LCAwLjA5NjExNywgMC4xNjIyODksIDAuMjcwMTU5LCAwLjM3ODA2NCwgMC42Mjk2NDgsIDAuNzczNzMiLCBcCi0gICAgICAgICAgIjAuMDkzMDcsIDAuMTAwNzk3LCAwLjE2NjkzNSwgMC4yNzQ4NTIsIDAuMzgyNjcyLCAwLjYzNDM5MSwgMC43Nzg0NjgiLCBcCi0gICAgICAgICAgIjAuMDk2OTY4LCAwLjEwNDY4NCwgMC4xNzA3MTQsIDAuMjc4NjU4LCAwLjM4NjQ2NiwgMC42MzgxMTUsIDAuNzgyMjM1IiwgXAotICAgICAgICAgICIwLjEwMjA5NSwgMC4xMDk4MDMsIDAuMTc1Njk1LCAwLjI4MzYyNywgMC4zOTE0NDgsIDAuNjQzMDYsIDAuNzg3MDM5IiwgXAotICAgICAgICAgICIwLjEwNTkyMywgMC4xMTM2NjgsIDAuMTc5NTM2LCAwLjI4NzM5LCAwLjM5NTMxNywgMC42NDY4OTUsIDAuNzkwOTciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg3MzU3LCAwLjEwMTU4OCwgMC4yMzA1NzksIDAuNDQ5NzA1LCAwLjY3MDI1MSwgMS4xODY5NCwgMS40Nzk0IiwgXAotICAgICAgICAgICIwLjA4NzE4NiwgMC4xMDE0MDksIDAuMjMwNTEyLCAwLjQ0OTY0NiwgMC42NzAzMzMsIDEuMTg2ODYsIDEuNDgwMjUiLCBcCi0gICAgICAgICAgIjAuMDg2OTE0LCAwLjEwMTE3MiwgMC4yMzAzNzMsIDAuNDQ5NjAxLCAwLjY3MDM3OSwgMS4xODY4NCwgMS40Nzk0OCIsIFwKLSAgICAgICAgICAiMC4wODY2NjYsIDAuMTAwOSwgMC4yMzAyODIsIDAuNDQ5NTIyLCAwLjY3MDA1NCwgMS4xODUwNywgMS40Nzk0MSIsIFwKLSAgICAgICAgICAiMC4wODY0OTksIDAuMTAwNzg0LCAwLjIzMDA5NiwgMC40NDk1MTIsIDAuNjcwMDY5LCAxLjE4Njg0LCAxLjQ3OTQ4IiwgXAotICAgICAgICAgICIwLjA4NjU5LCAwLjEwMDczMSwgMC4yMzAwNDgsIDAuNDQ4ODM5LCAwLjY2OTkyNywgMS4xODY4LCAxLjQ3OTYiLCBcCi0gICAgICAgICAgIjAuMDg2NTU1LCAwLjEwMDc3LCAwLjIyOTg2NiwgMC40NDg3NzEsIDAuNjY5MDM1LCAxLjE4NjksIDEuNDc5NDQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTA4MjEsIDAuMDEwODIyLCAwLjAxMDgzMSwgMC4wMTA4MzUsIDAuMDEwODM3LCAwLjAxMDg0LCAwLjAxMDg0MSIsIFwKLSAgICAgICAgICAiMC4wMTA4MjQsIDAuMDEwODI2LCAwLjAxMDgzNSwgMC4wMTA4NCwgMC4wMTA4NCwgMC4wMTA4NDQsIDAuMDEwODQ0IiwgXAotICAgICAgICAgICIwLjAxMDg4NywgMC4wMTA4ODgsIDAuMDEwODk3LCAwLjAxMDkwMiwgMC4wMTA5MDYsIDAuMDEwOTA3LCAwLjAxMDkwNyIsIFwKLSAgICAgICAgICAiMC4wMTA5NzgsIDAuMDEwOTc5LCAwLjAxMDk4OCwgMC4wMTA5OTMsIDAuMDEwOTk2LCAwLjAxMDk5NywgMC4wMTA5OTgiLCBcCi0gICAgICAgICAgIjAuMDExMDg4LCAwLjAxMTA5LCAwLjAxMTA5OSwgMC4wMTExMDQsIDAuMDExMTA2LCAwLjAxMTEwOCwgMC4wMTExMSIsIFwKLSAgICAgICAgICAiMC4wMTEzMDUsIDAuMDExMzA0LCAwLjAxMTMxNiwgMC4wMTEzMjIsIDAuMDExMzI1LCAwLjAxMTMyNywgMC4wMTEzMjgiLCBcCi0gICAgICAgICAgIjAuMDExNDc1LCAwLjAxMTQ3NywgMC4wMTE0ODUsIDAuMDExNDkxLCAwLjAxMTQ5MywgMC4wMTE0OTYsIDAuMDExNDk2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEwNjc4LCAwLjAxMDY3OCwgMC4wMTA2ODIsIDAuMDEwNjgzLCAwLjAxMDY4NCwgMC4wMTA2ODUsIDAuMDEwNjg1IiwgXAotICAgICAgICAgICIwLjAxMDY2NSwgMC4wMTA2NjUsIDAuMDEwNjY4LCAwLjAxMDY3LCAwLjAxMDY3LCAwLjAxMDY3MSwgMC4wMTA2NzEiLCBcCi0gICAgICAgICAgIjAuMDEwNzM4LCAwLjAxMDczOCwgMC4wMTA3NDEsIDAuMDEwNzQzLCAwLjAxMDc0NCwgMC4wMTA3NDUsIDAuMDEwNzQ1IiwgXAotICAgICAgICAgICIwLjAxMDg1MSwgMC4wMTA4NTEsIDAuMDEwODU1LCAwLjAxMDg1NywgMC4wMTA4NTcsIDAuMDEwODU4LCAwLjAxMDg1OCIsIFwKLSAgICAgICAgICAiMC4wMTA5NDYsIDAuMDEwOTQ2LCAwLjAxMDk1LCAwLjAxMDk1MiwgMC4wMTA5NTMsIDAuMDEwOTUzLCAwLjAxMDk1NCIsIFwKLSAgICAgICAgICAiMC4wMTExNjgsIDAuMDExMTcxLCAwLjAxMTE3MiwgMC4wMTExNzQsIDAuMDExMTc1LCAwLjAxMTE3NiwgMC4wMTExNzYiLCBcCi0gICAgICAgICAgIjAuMDExMzc0LCAwLjAxMTM3NCwgMC4wMTEzNzksIDAuMDExMzgxLCAwLjAxMTM4MSwgMC4wMTEzODIsIDAuMDExMzgzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1NjkyLCAwLjAwNTY5NCwgMC4wMDU3MDIsIDAuMDA1NzA3LCAwLjAwNTcwOCwgMC4wMDU3MSwgMC4wMDU3MSIsIFwKLSAgICAgICAgICAiMC4wMDU3ODYsIDAuMDA1Nzg4LCAwLjAwNTc5OCwgMC4wMDU4MDMsIDAuMDA1ODA1LCAwLjAwNTgwNiwgMC4wMDU4MDciLCBcCi0gICAgICAgICAgIjAuMDA1OTc3LCAwLjAwNTk3OCwgMC4wMDU5ODksIDAuMDA1OTk1LCAwLjAwNTk5NywgMC4wMDU5OTksIDAuMDA2IiwgXAotICAgICAgICAgICIwLjAwNjIzMywgMC4wMDYyMzQsIDAuMDA2MjQzLCAwLjAwNjI0OSwgMC4wMDYyNTIsIDAuMDA2MjU0LCAwLjAwNjI1NSIsIFwKLSAgICAgICAgICAiMC4wMDY1MDQsIDAuMDA2NTA0LCAwLjAwNjUxMSwgMC4wMDY1MTcsIDAuMDA2NTIsIDAuMDA2NTIyLCAwLjAwNjUyMSIsIFwKLSAgICAgICAgICAiMC4wMDY5ODksIDAuMDA2OTg4LCAwLjAwNjk5MSwgMC4wMDY5OTUsIDAuMDA2OTk4LCAwLjAwNywgMC4wMDcwMDEiLCBcCi0gICAgICAgICAgIjAuMDA3Mzk1LCAwLjAwNzM5NCwgMC4wMDczOTMsIDAuMDA3Mzk3LCAwLjAwNzQsIDAuMDA3Mzk5LCAwLjAwNzQwMSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjg2MiwgMC4wMDY4NjMsIDAuMDA2ODY2LCAwLjAwNjg2OCwgMC4wMDY4NjgsIDAuMDA2ODY5LCAwLjAwNjg2OSIsIFwKLSAgICAgICAgICAiMC4wMDY5MTQsIDAuMDA2OTE0LCAwLjAwNjkxOCwgMC4wMDY5MiwgMC4wMDY5MjEsIDAuMDA2OTIyLCAwLjAwNjkyMiIsIFwKLSAgICAgICAgICAiMC4wMDcxMTQsIDAuMDA3MTE0LCAwLjAwNzExOSwgMC4wMDcxMjIsIDAuMDA3MTIzLCAwLjAwNzEyNCwgMC4wMDcxMjUiLCBcCi0gICAgICAgICAgIjAuMDA3MzkxLCAwLjAwNzM5MiwgMC4wMDczOTcsIDAuMDA3NCwgMC4wMDc0MDIsIDAuMDA3NDAzLCAwLjAwNzQwMyIsIFwKLSAgICAgICAgICAiMC4wMDc2NzUsIDAuMDA3Njc1LCAwLjAwNzY4LCAwLjAwNzY4NCwgMC4wMDc2ODUsIDAuMDA3Njg3LCAwLjAwNzY4NyIsIFwKLSAgICAgICAgICAiMC4wMDgxNzQsIDAuMDA4MTc0LCAwLjAwODE4NSwgMC4wMDgxOSwgMC4wMDgxOTEsIDAuMDA4MTkyLCAwLjAwODE5MiIsIFwKLSAgICAgICAgICAiMC4wMDg2MDEsIDAuMDA4NjAxLCAwLjAwODYwNSwgMC4wMDg2MDksIDAuMDA4NjEsIDAuMDA4NjEyLCAwLjAwODYxMiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDI4NCwgMC4wMDQyODYsIDAuMDA0Mjk1LCAwLjAwNDI5OSwgMC4wMDQzMDEsIDAuMDA0MzAzLCAwLjAwNDMwMiIsIFwKLSAgICAgICAgICAiMC4wMDQzNzksIDAuMDA0MzgxLCAwLjAwNDM5MiwgMC4wMDQzOTcsIDAuMDA0Mzk4LCAwLjAwNDQwMSwgMC4wMDQ0IiwgXAotICAgICAgICAgICIwLjAwNDU1OSwgMC4wMDQ1NiwgMC4wMDQ1NzEsIDAuMDA0NTc2LCAwLjAwNDU4LCAwLjAwNDU4MiwgMC4wMDQ1ODMiLCBcCi0gICAgICAgICAgIjAuMDA0NzY2LCAwLjAwNDc2OSwgMC4wMDQ3ODUsIDAuMDA0Nzg0LCAwLjAwNDc5MSwgMC4wMDQ3OTUsIDAuMDA0Nzg5IiwgXAotICAgICAgICAgICIwLjAwNTAwOCwgMC4wMDUwMSwgMC4wMDUwMjEsIDAuMDA1MDI3LCAwLjAwNTAwOSwgMC4wMDUwMywgMC4wMDUwMzEiLCBcCi0gICAgICAgICAgIjAuMDA1Mzg0LCAwLjAwNTM4NSwgMC4wMDUzOTQsIDAuMDA1Mzk3LCAwLjAwNTQwMSwgMC4wMDU0MDEsIDAuMDA1NDAzIiwgXAotICAgICAgICAgICIwLjAwNTY5NiwgMC4wMDU2OTgsIDAuMDA1NzA3LCAwLjAwNTcxMSwgMC4wMDU3MTQsIDAuMDA1NzE0LCAwLjAwNTcxNSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzI5NywgMC4wMDMyOTksIDAuMDAzMzA0LCAwLjAwMzMwNiwgMC4wMDMzMDcsIDAuMDAzMzA3LCAwLjAwMzMwOCIsIFwKLSAgICAgICAgICAiMC4wMDM0LCAwLjAwMzQwMiwgMC4wMDM0MDksIDAuMDAzNDExLCAwLjAwMzQxMiwgMC4wMDM0MTMsIDAuMDAzNDE0IiwgXAotICAgICAgICAgICIwLjAwMzYwNSwgMC4wMDM1OTMsIDAuMDAzNjE0LCAwLjAwMzYwNCwgMC4wMDM2MTgsIDAuMDAzNjE5LCAwLjAwMzYyIiwgXAotICAgICAgICAgICIwLjAwMzg4NSwgMC4wMDM4ODUsIDAuMDAzODk0LCAwLjAwMzg5NywgMC4wMDM4OTksIDAuMDAzOSwgMC4wMDM5IiwgXAotICAgICAgICAgICIwLjAwNDA2MiwgMC4wMDQwNjQsIDAuMDA0MDYyLCAwLjAwNDA3MywgMC4wMDQwNjcsIDAuMDA0MDc2LCAwLjAwNDA3OCIsIFwKLSAgICAgICAgICAiMC4wMDQ0NTMsIDAuMDA0NDU2LCAwLjAwNDQ2NCwgMC4wMDQ0NjMsIDAuMDA0NDcsIDAuMDA0NDcxLCAwLjAwNDQ3MiIsIFwKLSAgICAgICAgICAiMC4wMDQ4MDYsIDAuMDA0ODE2LCAwLjAwNDgyNSwgMC4wMDQ4MTgsIDAuMDA0ODI4LCAwLjAwNDgzMiwgMC4wMDQ4MyIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogQU5EMlgxICoKLSAqIC0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoQU5EMlgxKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMjA1MTM4OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2ODAxNDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2ODAxNDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2Nzk1MjQ7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjk2LCAwLjAwMDI5NiwgMC4wMDAyOTYsIDAuMDAwMjk2LCAwLjAwMDI5NiwgMC4wMDAyOTYsIDAuMDAwMjk2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzE2LCAwLjAwMDMwNiwgMC4wMDAzMDEsIDAuMDAwMjk5LCAwLjAwMDI5OCwgMC4wMDAyOTgsIDAuMDAwMjk4Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2ODExMDQ7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjgxMTA0OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDY4MTA5OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDE0NywgMC4wMDAxNDYsIDAuMDAwMTQ2LCAwLjAwMDE0NiwgMC4wMDAxNDYsIDAuMDAwMTQ3LCAwLjAwMDE0NiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDMzNywgMC4wMDAzMzgsIDAuMDAwMzM4LCAwLjAwMDMzOCwgMC4wMDAzMzgsIDAuMDAwMzM4LCAwLjAwMDMzOCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjMzOTcwMTsKLSAgICBmdW5jdGlvbiA6ICIoQSBCKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDYwMjc3LCAwLjA3ODk4MSwgMC4xODQ1MjIsIDAuMjc3NzMyLCAwLjQwMTgzOSwgMC42NTAxMDUsIDAuODA1MTg5IiwgXAotICAgICAgICAgICIwLjA2NjI3NywgMC4wODQ5NjgsIDAuMTkwNTM5LCAwLjI4MzY4NCwgMC40MDc2ODEsIDAuNjU1OTg1LCAwLjgxMTE3NiIsIFwKLSAgICAgICAgICAiMC4wNzI5NiwgMC4wOTE2NTMsIDAuMTk3MTU3LCAwLjI5MDQ1OSwgMC40MTQ2OCwgMC42NjI4MzUsIDAuODE4NzYyIiwgXAotICAgICAgICAgICIwLjA3ODU0NywgMC4wOTcyNjMsIDAuMjAyNzYzLCAwLjI5NTg0OCwgMC40MjAxNzksIDAuNjY4MTY3LCAwLjgyMzQyNyIsIFwKLSAgICAgICAgICAiMC4wODI5OTgsIDAuMTAxODI3LCAwLjIwNzI4NiwgMC4zMDA0MjcsIDAuNDI0NjY1LCAwLjY3MjkzNywgMC44Mjc5ODQiLCBcCi0gICAgICAgICAgIjAuMDg5NDIyLCAwLjEwODE5MywgMC4yMTM3MTMsIDAuMzA2ODM2LCAwLjQzMDk5MSwgMC42NzkyODMsIDAuODM0NTAzIiwgXAotICAgICAgICAgICIwLjA5NDU0MSwgMC4xMTMzMjcsIDAuMjE4ODI3LCAwLjMxMTksIDAuNDM2MDUxLCAwLjY4NDI3LCAwLjgzOTYwNyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzI2NDMsIDAuMTEwODY3LCAwLjMzMTcxNCwgMC41Mjc0NDksIDAuNzg4ODY2LCAxLjMxMTMzLCAxLjYzNjI1IiwgXAotICAgICAgICAgICIwLjA3MjYyOSwgMC4xMTA5MzIsIDAuMzMxNjU5LCAwLjUyNzQyMiwgMC43ODk0NiwgMS4zMTIxOSwgMS42MzYyNSIsIFwKLSAgICAgICAgICAiMC4wNzMwNzksIDAuMTExMTksIDAuMzMxODM4LCAwLjUyNzI2OSwgMC43ODg0MTUsIDEuMzEwNzIsIDEuNjM3ODMiLCBcCi0gICAgICAgICAgIjAuMDczNjQsIDAuMTExNTksIDAuMzMyMjMyLCAwLjUyNzkwOSwgMC43ODg1NTksIDEuMzEyMTUsIDEuNjM4OTIiLCBcCi0gICAgICAgICAgIjAuMDc0Mzc0LCAwLjExMTk2MSwgMC4zMzIyMDQsIDAuNTI3MjE5LCAwLjc4ODU0MiwgMS4zMTA3MiwgMS42MzciLCBcCi0gICAgICAgICAgIjAuMDc1MzI1LCAwLjExMjcyOSwgMC4zMzIyMTcsIDAuNTI3Mzk5LCAwLjc4ODUwNiwgMS4zMTA2NiwgMS42MzcwNSIsIFwKLSAgICAgICAgICAiMC4wNzU5NSwgMC4xMTMyNiwgMC4zMzIyMDYsIDAuNTI3OTgyLCAwLjc4OTgyMSwgMS4zMTA0NSwgMS42MzcwMiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTExMzQsIDAuMDY5MjY4LCAwLjE3MTg5MywgMC4yNjIzNDksIDAuMzgzMDE2LCAwLjYyNDIxOSwgMC43NzQ5OSIsIFwKLSAgICAgICAgICAiMC4wNTkwNTMsIDAuMDc3MTk2LCAwLjE3OTgwOCwgMC4yNzAyODEsIDAuMzkwOTEyLCAwLjYzMjE1MiwgMC43ODI5MTgiLCBcCi0gICAgICAgICAgIjAuMDY2NjM0LCAwLjA4NDc3MywgMC4xODczODMsIDAuMjc3ODUyLCAwLjM5ODUxMSwgMC42Mzk3MTEsIDAuNzkwNDc0IiwgXAotICAgICAgICAgICIwLjA3MjA0OCwgMC4wOTAxODUsIDAuMTkyNzU3LCAwLjI4MzIzMSwgMC40MDM4NzYsIDAuNjQ1MTEzLCAwLjc5NTg3MyIsIFwKLSAgICAgICAgICAiMC4wNzYzNzcsIDAuMDk0NTcsIDAuMTk3MTM4LCAwLjI4NzYxNiwgMC40MDgyNjIsIDAuNjQ5NDk2LCAwLjgwMDI5NiIsIFwKLSAgICAgICAgICAiMC4wODIxNjMsIDAuMTAwMzAzLCAwLjIwMjkyMiwgMC4yOTM0MDEsIDAuNDE0MDI3LCAwLjY1NTI3NywgMC44MDU5OTYiLCBcCi0gICAgICAgICAgIjAuMDg2NDM0LCAwLjEwNDQ2MiwgMC4yMDcxMDksIDAuMjk3NTk2LCAwLjQxODE4LCAwLjY1OTM5MywgMC44MTAxODYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY3NDcyLCAwLjEwNDM2MiwgMC4zMTU0NzEsIDAuNTAxODMxLCAwLjc1MDY3NCwgMS4yNDc3NCwgMS41NTUxMSIsIFwKLSAgICAgICAgICAiMC4wNjc1NzgsIDAuMTA0NDksIDAuMzE1NDY4LCAwLjUwMTg0OCwgMC43NDk1NjcsIDEuMjQ3NjEsIDEuNTU4NTYiLCBcCi0gICAgICAgICAgIjAuMDY3OTgxLCAwLjEwNDYzLCAwLjMxNTAyMiwgMC41MDE5MDIsIDAuNzUwNTg2LCAxLjI0Nzc0LCAxLjU1ODUyIiwgXAotICAgICAgICAgICIwLjA2ODQ3OCwgMC4xMDQ5NSwgMC4zMTUxMjksIDAuNTAxMjUsIDAuNzUwNDA5LCAxLjI0NzY3LCAxLjU1ODMzIiwgXAotICAgICAgICAgICIwLjA2OTA0NSwgMC4xMDUxOTYsIDAuMzE1MjAxLCAwLjUwMTY3MywgMC43NTA0MiwgMS4yNDc4MiwgMS41NTg3NSIsIFwKLSAgICAgICAgICAiMC4wNjk4MjMsIDAuMTA1Njc5LCAwLjMxNTE0OCwgMC41MDExODcsIDAuNzQ5NTg4LCAxLjI0NzUsIDEuNTU2NTEiLCBcCi0gICAgICAgICAgIjAuMDcwNTg3LCAwLjEwNjE0LCAwLjMxNTM3OCwgMC41MDEyNzUsIDAuNzQ5Mzk1LCAxLjI0NjMxLCAxLjU1NTczIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1ODgwMywgMC4wNzc1MTQsIDAuMTgzMDcsIDAuMjc2MjEyLCAwLjQwMDI5MSwgMC42NDg3NDMsIDAuODAzNjY2IiwgXAotICAgICAgICAgICIwLjA2NjE4NywgMC4wODQ4ODMsIDAuMTkwMzk4LCAwLjI4MzYxMiwgMC40MDc1MzUsIDAuNjU1OTAzLCAwLjgxMTAzNiIsIFwKLSAgICAgICAgICAiMC4wNzQ3NjcsIDAuMDkzNDY3LCAwLjE5OTAzNSwgMC4yOTIwNjMsIDAuNDE2NTU0LCAwLjY2NDUyNywgMC44MTk4MDIiLCBcCi0gICAgICAgICAgIjAuMDgxMzU1LCAwLjEwMDE4OSwgMC4yMDU2ODksIDAuMjk4NzY0LCAwLjQyMjk5MSwgMC42NzEzMzEsIDAuODI2NTIiLCBcCi0gICAgICAgICAgIjAuMDg3MTQzLCAwLjEwNTk5LCAwLjIxMTM0NiwgMC4zMDQ0MTUsIDAuNDI4NjkzLCAwLjY3Njk0MSwgMC44MzIwMzYiLCBcCi0gICAgICAgICAgIjAuMDk0NzUzLCAwLjExMzUzNywgMC4yMTkwMDksIDAuMzEyMDU4LCAwLjQzNjE4LCAwLjY4NDQzNCwgMC44NDAzMzUiLCBcCi0gICAgICAgICAgIjAuMTAwNTkxLCAwLjExOTM3MSwgMC4yMjQ5MiwgMC4zMTc5NjksIDAuNDQyMDIyLCAwLjY5MDM5LCAwLjg0NTgwNiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzI2MzEsIDAuMTEwODYxLCAwLjMzMTgzLCAwLjUyNzE2MSwgMC43ODg3MTIsIDEuMzEwNzIsIDEuNjM2NTQiLCBcCi0gICAgICAgICAgIjAuMDcyNjIzLCAwLjExMDkyNywgMC4zMzE3NDgsIDAuNTI3NDEzLCAwLjc4OTc0LCAxLjMxMDE2LCAxLjYzNzYzIiwgXAotICAgICAgICAgICIwLjA3MzE0LCAwLjExMTIzLCAwLjMzMTY1MSwgMC41MjgyNDMsIDAuNzg4Mzk4LCAxLjMxMDA0LCAxLjYzNzA4IiwgXAotICAgICAgICAgICIwLjA3Mzg5NiwgMC4xMTE3NjQsIDAuMzMyMjU2LCAwLjUyODIzLCAwLjc4ODk5MiwgMS4zMTA3LCAxLjYzNjgzIiwgXAotICAgICAgICAgICIwLjA3NDQ4MSwgMC4xMTIxNTUsIDAuMzMxOTgxLCAwLjUyODI0OCwgMC43ODg0ODksIDEuMzEwNjgsIDEuNjM2MjUiLCBcCi0gICAgICAgICAgIjAuMDc1NTA5LCAwLjExMjgyNywgMC4zMzIwNzUsIDAuNTI4MzA5LCAwLjc4OTc5MSwgMS4zMTA0LCAxLjYzNzY0IiwgXAotICAgICAgICAgICIwLjA3NjMxNywgMC4xMTM1NSwgMC4zMzIyOCwgMC41Mjg0NTgsIDAuNzg5ODE2LCAxLjMxMDAyLCAxLjYzNzE3Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0OTkxNywgMC4wNjgwMzYsIDAuMTcwNjQ5LCAwLjI2MTE2NiwgMC4zODE4MzksIDAuNjIzMDYsIDAuNzc0MDExIiwgXAotICAgICAgICAgICIwLjA1NzQ4NiwgMC4wNzU2MjEsIDAuMTc4MjMsIDAuMjY4NzcsIDAuMzg5NDQ4LCAwLjYzMDkxNiwgMC43ODE1MjkiLCBcCi0gICAgICAgICAgIjAuMDY0NTg1LCAwLjA4MjcyNywgMC4xODUzMjMsIDAuMjc1ODc4LCAwLjM5NjU2NywgMC42Mzc4NTcsIDAuNzg5MDQ5IiwgXAotICAgICAgICAgICIwLjA2OTU0NSwgMC4wODc2ODksIDAuMTkwMTU5LCAwLjI4MDY5OSwgMC40MDE0OTIsIDAuNjQyNzE2LCAwLjc5MzQ4MiIsIFwKLSAgICAgICAgICAiMC4wNzM1MTgsIDAuMDkxNjM0LCAwLjE5NDE0NCwgMC4yODQ2ODcsIDAuNDA1NDE5LCAwLjY0Njc4MSwgMC43OTc2NzQiLCBcCi0gICAgICAgICAgIjAuMDc4NTYzLCAwLjA5NjgxOSwgMC4xOTkxMTUsIDAuMjg5ODI0LCAwLjQxMDUwOCwgMC42NTE3MTUsIDAuODAyNjQiLCBcCi0gICAgICAgICAgIjAuMDgyMzI2LCAwLjEwMDUzNiwgMC4yMDMwNjUsIDAuMjkzNTA1LCAwLjQxNDE3MiwgMC42NTU0NzEsIDAuODA2Mzc5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2NzM2LCAwLjEwNDM1NCwgMC4zMTQ2NjMsIDAuNTAxMDYzLCAwLjc0OTAzMiwgMS4yNDYzMiwgMS41NTYwNyIsIFwKLSAgICAgICAgICAiMC4wNjc0NjIsIDAuMTA0Mzk5LCAwLjMxNDk3MywgMC41MDEzMywgMC43NDkzMDMsIDEuMjQ2NjUsIDEuNTU1NDQiLCBcCi0gICAgICAgICAgIjAuMDY3OTYzLCAwLjEwNDY1NywgMC4zMTUzNTcsIDAuNTAxMzE0LCAwLjc0OTIxNCwgMS4yNDUwMiwgMS41NTU2OCIsIFwKLSAgICAgICAgICAiMC4wNjg0NTMsIDAuMTA0ODk3LCAwLjMxNTQ2NCwgMC41MDA3NzcsIDAuNzQ5Nzk2LCAxLjI0NTkzLCAxLjU1ODc0IiwgXAotICAgICAgICAgICIwLjA2OTE0MSwgMC4xMDUxMTYsIDAuMzE1NTgyLCAwLjUwMTE0LCAwLjc0OTMyMywgMS4yNDU2NCwgMS41NTU5IiwgXAotICAgICAgICAgICIwLjA2OTg2NiwgMC4xMDU3ODYsIDAuMzE1MTAxLCAwLjUwMTgwOCwgMC43NDk2MjcsIDEuMjQ2NTEsIDEuNTU4NjciLCBcCi0gICAgICAgICAgIjAuMDcwNTYsIDAuMTA2MzM1LCAwLjMxNTMxOCwgMC41MDEzNzgsIDAuNzQ5NzAzLCAxLjI0NzgzLCAxLjU1NTM2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxNjQ5LCAwLjAwMTY1LCAwLjAwMTY1LCAwLjAwMTY1MSwgMC4wMDE2NSwgMC4wMDE2NSwgMC4wMDE2NSIsIFwKLSAgICAgICAgICAiMC4wMDE2MTYsIDAuMDAxNjE5LCAwLjAwMTYyMSwgMC4wMDE2MjIsIDAuMDAxNjIzLCAwLjAwMTYyMiwgMC4wMDE2MjIiLCBcCi0gICAgICAgICAgIjAuMDAxNjQ3LCAwLjAwMTY1LCAwLjAwMTY1MywgMC4wMDE2NTMsIDAuMDAxNjUzLCAwLjAwMTY1MywgMC4wMDE2NTMiLCBcCi0gICAgICAgICAgIjAuMDAxNzA4LCAwLjAwMTcxMiwgMC4wMDE3MTQsIDAuMDAxNzE0LCAwLjAwMTcxNCwgMC4wMDE3MTUsIDAuMDAxNzE0IiwgXAotICAgICAgICAgICIwLjAwMTgwNiwgMC4wMDE4MDQsIDAuMDAxOCwgMC4wMDE3OTgsIDAuMDAxNzk3LCAwLjAwMTc5NywgMC4wMDE3OTYiLCBcCi0gICAgICAgICAgIjAuMDAxOTY3LCAwLjAwMTk2LCAwLjAwMTk1MiwgMC4wMDE5NDksIDAuMDAxOTQ4LCAwLjAwMTk0NywgMC4wMDE5NDciLCBcCi0gICAgICAgICAgIjAuMDAyMTE0LCAwLjAwMjEwNywgMC4wMDIwOTcsIDAuMDAyMDk0LCAwLjAwMjA5MywgMC4wMDIwOTEsIDAuMDAyMDkxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzMDM5LCAwLjAwMzA0NCwgMC4wMDMwNTEsIDAuMDAzMDUyLCAwLjAwMzA1MywgMC4wMDMwNTQsIDAuMDAzMDU0IiwgXAotICAgICAgICAgICIwLjAwMzAzNiwgMC4wMDMwNDQsIDAuMDAzMDU1LCAwLjAwMzA1NywgMC4wMDMwNTgsIDAuMDAzMDU5LCAwLjAwMzA2IiwgXAotICAgICAgICAgICIwLjAwMzA5NSwgMC4wMDMxMDMsIDAuMDAzMTE1LCAwLjAwMzExOCwgMC4wMDMxMTksIDAuMDAzMTIxLCAwLjAwMzEyMSIsIFwKLSAgICAgICAgICAiMC4wMDMxODksIDAuMDAzMTk1LCAwLjAwMzIwNCwgMC4wMDMyMDcsIDAuMDAzMjA5LCAwLjAwMzIxLCAwLjAwMzIxIiwgXAotICAgICAgICAgICIwLjAwMzI5OCwgMC4wMDMzMDEsIDAuMDAzMzA3LCAwLjAwMzMwOSwgMC4wMDMzMDQsIDAuMDAzMzA1LCAwLjAwMzMxMSIsIFwKLSAgICAgICAgICAiMC4wMDM0NjYsIDAuMDAzNDcsIDAuMDAzNDc0LCAwLjAwMzQ4NCwgMC4wMDM0ODYsIDAuMDAzNDg3LCAwLjAwMzQ4IiwgXAotICAgICAgICAgICIwLjAwMzY0NCwgMC4wMDM2MzQsIDAuMDAzNjQxLCAwLjAwMzY1MywgMC4wMDM2NDUsIDAuMDAzNjQ3LCAwLjAwMzY0NyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTY1NCwgMC4wMDE2NTcsIDAuMDAxNjYxLCAwLjAwMTY2MywgMC4wMDE2NjIsIDAuMDAxNjY0LCAwLjAwMTY2NCIsIFwKLSAgICAgICAgICAiMC4wMDE2NDYsIDAuMDAxNjUxLCAwLjAwMTY1OSwgMC4wMDE2NiwgMC4wMDE2NjEsIDAuMDAxNjYyLCAwLjAwMTY2MiIsIFwKLSAgICAgICAgICAiMC4wMDE3MDYsIDAuMDAxNzA5LCAwLjAwMTcxNSwgMC4wMDE3MTgsIDAuMDAxNzE4LCAwLjAwMTcxOCwgMC4wMDE3MTgiLCBcCi0gICAgICAgICAgIjAuMDAxNzkyLCAwLjAwMTc5NywgMC4wMDE4LCAwLjAwMTgwMiwgMC4wMDE4MDIsIDAuMDAxODAzLCAwLjAwMTgwMyIsIFwKLSAgICAgICAgICAiMC4wMDE5MDMsIDAuMDAxOTA0LCAwLjAwMTkwNiwgMC4wMDE5MDcsIDAuMDAxOTA3LCAwLjAwMTkwNywgMC4wMDE5MDciLCBcCi0gICAgICAgICAgIjAuMDAyMDkzLCAwLjAwMjA4NywgMC4wMDIwODMsIDAuMDAyMDgyLCAwLjAwMjA4MSwgMC4wMDIwODIsIDAuMDAyMDgyIiwgXAotICAgICAgICAgICIwLjAwMjI2OSwgMC4wMDIyNjUsIDAuMDAyMjUxLCAwLjAwMjI1LCAwLjAwMjI0OCwgMC4wMDIyNDcsIDAuMDAyMjQ2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyNzY1LCAwLjAwMjc3NCwgMC4wMDI3ODQsIDAuMDAyNzg2LCAwLjAwMjc4OCwgMC4wMDI3ODgsIDAuMDAyNzg5IiwgXAotICAgICAgICAgICIwLjAwMjc1MSwgMC4wMDI3NjEsIDAuMDAyNzc2LCAwLjAwMjc3OSwgMC4wMDI3ODEsIDAuMDAyNzgyLCAwLjAwMjc4MyIsIFwKLSAgICAgICAgICAiMC4wMDI4LCAwLjAwMjgxMSwgMC4wMDI4MzMsIDAuMDAyODM4LCAwLjAwMjg0LCAwLjAwMjg0MiwgMC4wMDI4NDMiLCBcCi0gICAgICAgICAgIjAuMDAyODgyLCAwLjAwMjg5MywgMC4wMDI5MjIsIDAuMDAyOTI2LCAwLjAwMjkyMSwgMC4wMDI5MywgMC4wMDI5MzEiLCBcCi0gICAgICAgICAgIjAuMDAyOTgyLCAwLjAwMjk5NywgMC4wMDMwMTEsIDAuMDAzMDE2LCAwLjAwMzAyOSwgMC4wMDMwMjEsIDAuMDAzMDIyIiwgXAotICAgICAgICAgICIwLjAwMzE1OSwgMC4wMDMxNjEsIDAuMDAzMTg1LCAwLjAwMzE5OSwgMC4wMDMyMDIsIDAuMDAzMTk2LCAwLjAwMzIwNyIsIFwKLSAgICAgICAgICAiMC4wMDMzMSwgMC4wMDMzMTMsIDAuMDAzMzM3LCAwLjAwMzM0MiwgMC4wMDMzNDYsIDAuMDAzMzUzLCAwLjAwMzM1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBBTzIxWDQgKgotICogLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChBTzIxWDQpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC42Mzk5NDM7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA5MTc0MTc7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwOTE0NzUyOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDkxNzQxNzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA1MjQsIDAuMDAwNTI0LCAwLjAwMDUyNCwgMC4wMDA1MjQsIDAuMDAwNTI0LCAwLjAwMDUyNCwgMC4wMDA1MjQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA1NTIsIDAuMDAwNTMzLCAwLjAwMDUyOSwgMC4wMDA1MjYsIDAuMDAwNTI2LCAwLjAwMDUyNSwgMC4wMDA1MjYiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEExKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA5NjQyNTY7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwOTYwMzAyOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDk2NDI1NjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAzMDcsIDAuMDAwMzA2LCAwLjAwMDMwNiwgMC4wMDAzMDYsIDAuMDAwMzA2LCAwLjAwMDMwNywgMC4wMDAzMDciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA1OTUsIDAuMDAwNTk2LCAwLjAwMDU5NiwgMC4wMDA1OTYsIDAuMDAwNTk2LCAwLjAwMDU5NiwgMC4wMDA1OTYiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA5ODEwMzM7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwOTgxMDMzOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDk4MDk1OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDA5NywgMC4wMDAwOTcsIDAuMDAwMDk3LCAwLjAwMDA5NywgMC4wMDAwOTcsIDAuMDAwMDk3LCAwLjAwMDA5NyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDU3NiwgMC4wMDA1NzYsIDAuMDAwNTc2LCAwLjAwMDU3NiwgMC4wMDA1NzYsIDAuMDAwNTc2LCAwLjAwMDU3NiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAxLjMxODc1OwotICAgIGZ1bmN0aW9uIDogIigoQTAgQTEpK0IwKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTAiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDUxNTA4LCAwLjEwOTUyLCAwLjE2MzcwNCwgMC4yMDIzMzcsIDAuMjY0MTEzLCAwLjMxODIyOCwgMC4zOTUzMjkiLCBcCi0gICAgICAgICAgIjAuMDU4MDI0LCAwLjExNjAzLCAwLjE3MDIyMywgMC4yMDg4NTUsIDAuMjcwNjM0LCAwLjMyNDcwNywgMC40MDE4NTQiLCBcCi0gICAgICAgICAgIjAuMDY2LCAwLjEyMzg5MSwgMC4xNzgwOTcsIDAuMjE2NzM3LCAwLjI3ODUwOCwgMC4zMzI1NzQsIDAuNDA5NzMzIiwgXAotICAgICAgICAgICIwLjA3MzE5MiwgMC4xMzExNzEsIDAuMTg1MzY5LCAwLjIyMzk5OSwgMC4yODU3NjEsIDAuMzM5ODAyLCAwLjQxNjk1MyIsIFwKLSAgICAgICAgICAiMC4wNzk0NDEsIDAuMTM3Nzc2LCAwLjE5MTk4MSwgMC4yMzA2MTUsIDAuMjkyMzk3LCAwLjM0NjQ0MiwgMC40MjM1OTgiLCBcCi0gICAgICAgICAgIjAuMDg4MDMzLCAwLjE0Njg4OSwgMC4yMDExMTEsIDAuMjM5NzM2LCAwLjMwMTU0MSwgMC4zNTU1MzUsIDAuNDMyNzIxIiwgXAotICAgICAgICAgICIwLjA5NDU5MSwgMC4xNTM4NjYsIDAuMjA4MDUsIDAuMjQ2NjM3LCAwLjMwODQyNCwgMC4zNjI0MywgMC40Mzk2NjUiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzAzNzUsIDAuMTM5MTQ3LCAwLjI1MTY0NiwgMC4zMzIzNywgMC40NjIxMDYsIDAuNTc1Njc4LCAwLjczOTMwNSIsIFwKLSAgICAgICAgICAiMC4wMzAyNDYsIDAuMTM5MTM0LCAwLjI1MTM4OCwgMC4zMzI1MTksIDAuNDYyMTE4LCAwLjU3NTQzLCAwLjczOTI4MyIsIFwKLSAgICAgICAgICAiMC4wMzA0ODEsIDAuMTM5MTMxLCAwLjI1MTY0OCwgMC4zMzI3MSwgMC40NjIxMDEsIDAuNTc1Nzc3LCAwLjczOTI2NiIsIFwKLSAgICAgICAgICAiMC4wMzEzMDEsIDAuMTM5NDI0LCAwLjI1MTc0MiwgMC4zMzI3MjYsIDAuNDYyNjA4LCAwLjU3NTkxMiwgMC43MzkyMTIiLCBcCi0gICAgICAgICAgIjAuMDMyMDY2LCAwLjEzOTczOCwgMC4yNTE4MDIsIDAuMzMyNjc3LCAwLjQ2MjI2MSwgMC41NzY0NjMsIDAuNzM4NDUyIiwgXAotICAgICAgICAgICIwLjAzMzU0OSwgMC4xNDAzNDMsIDAuMjUxOTQsIDAuMzMyODg5LCAwLjQ2MjcwNywgMC41NzY0NzEsIDAuNzM5MjEiLCBcCi0gICAgICAgICAgIjAuMDM0OTIxLCAwLjE0MDkyNiwgMC4yNTIzNzgsIDAuMzMyODAxLCAwLjQ2Mjc5LCAwLjU3NjQ5MSwgMC43MzgxNSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1NDcyNiwgMC4xMTMyMTcsIDAuMTY3MjQsIDAuMjA1NzI1LCAwLjI2NzI2OCwgMC4zMjExMDUsIDAuMzk4MDI1IiwgXAotICAgICAgICAgICIwLjA2MTQ4NywgMC4xMTk5NywgMC4xNzM5OTYsIDAuMjEyNDg1LCAwLjI3NDAxNCwgMC4zMjc4NjMsIDAuNDA0NzciLCBcCi0gICAgICAgICAgIjAuMDY4NzEsIDAuMTI3MTIyLCAwLjE4MTE1OSwgMC4yMTk2NDgsIDAuMjgxMTkzLCAwLjMzNTAzMiwgMC40MTE5NTYiLCBcCi0gICAgICAgICAgIjAuMDc1MDY4LCAwLjEzMzY0NiwgMC4xODc2NiwgMC4yMjYxNDYsIDAuMjg3NzM4LCAwLjM0MTUzNCwgMC40MTg0MTUiLCBcCi0gICAgICAgICAgIjAuMDgwMzk3LCAwLjEzOTM2NCwgMC4xOTMzOSwgMC4yMzE4NjcsIDAuMjkzNDIxLCAwLjM0NzIzOSwgMC40MjQxMzYiLCBcCi0gICAgICAgICAgIjAuMDg3NjU0LCAwLjE0NzExMSwgMC4yMDExMzQsIDAuMjM5NjA1LCAwLjMwMTE2MywgMC4zNTQ5NjYsIDAuNDMxODU2IiwgXAotICAgICAgICAgICIwLjA5MzAxMiwgMC4xNTI4NTcsIDAuMjA2OTI3LCAwLjI0NTM4MiwgMC4zMDY5MDksIDAuMzYwNzMxLCAwLjQzNzYxMSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzMDM0OSwgMC4xMzc0NjUsIDAuMjQ3NzQzLCAwLjMyNzE2OCwgMC40NTQ3MjUsIDAuNTY1OTE0LCAwLjcyNTQ1MiIsIFwKLSAgICAgICAgICAiMC4wMzAzMTQsIDAuMTM3NDUzLCAwLjI0NzcyOCwgMC4zMjcxNzEsIDAuNDU0NjY4LCAwLjU2NjU3MiwgMC43MjY1NTIiLCBcCi0gICAgICAgICAgIjAuMDMwNDY5LCAwLjEzNzUwMSwgMC4yNDc3NDgsIDAuMzI3MTgxLCAwLjQ1NDcyLCAwLjU2NTkzNCwgMC43MjU1MSIsIFwKLSAgICAgICAgICAiMC4wMzEyMDksIDAuMTM3Njk5LCAwLjI0NzY0MiwgMC4zMjcyMDUsIDAuNDUzOTcyLCAwLjU2NTk4LCAwLjcyNjQ2NiIsIFwKLSAgICAgICAgICAiMC4wMzIzMzQsIDAuMTM4MTc2LCAwLjI0Nzg2MSwgMC4zMjcwMDMsIDAuNDU0ODQ1LCAwLjU2NjU4NiwgMC43MjU3OTQiLCBcCi0gICAgICAgICAgIjAuMDMzNTEsIDAuMTM4OTYzLCAwLjI0ODQyNiwgMC4zMjc1OTMsIDAuNDU0Nzk5LCAwLjU2NjAyMSwgMC43MjU2OTIiLCBcCi0gICAgICAgICAgIjAuMDM0NzU4LCAwLjEzOTUzOCwgMC4yNDg3MDgsIDAuMzI3NDc1LCAwLjQ1NDg0MiwgMC41NjYyMDksIDAuNzI2NDg3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkExIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1MDAxNiwgMC4xMDgwMzQsIDAuMTYyMjIxLCAwLjIwMDg0MywgMC4yNjI2MTgsIDAuMzE2Njc3LCAwLjM5Mzg0NyIsIFwKLSAgICAgICAgICAiMC4wNTc2MywgMC4xMTU2MTMsIDAuMTY5ODI0LCAwLjIwODQ2NywgMC4yNzAyMjgsIDAuMzI0MjYzLCAwLjQwMTQzNiIsIFwKLSAgICAgICAgICAiMC4wNjc0ODEsIDAuMTI1MzE2LCAwLjE3OTUwMSwgMC4yMTgxNywgMC4yNzk5MTQsIDAuMzMzOTgxLCAwLjQxMTEzNyIsIFwKLSAgICAgICAgICAiMC4wNzYzODksIDAuMTM0NDU3LCAwLjE4ODU5NSwgMC4yMjcyMTgsIDAuMjg4OTg4LCAwLjM0MzA0MiwgMC40MjAyMTYiLCBcCi0gICAgICAgICAgIjAuMDg0MzM1LCAwLjE0MjYxMiwgMC4xOTY3ODQsIDAuMjM1NDE5LCAwLjI5NzE3MywgMC4zNTExOTgsIDAuNDI4NDM1IiwgXAotICAgICAgICAgICIwLjA5NDYxOSwgMC4xNTM2NDQsIDAuMjA3ODE4LCAwLjI0NjQyOSwgMC4zMDgyNDcsIDAuMzYyMjQ5LCAwLjQzOTM2MiIsIFwKLSAgICAgICAgICAiMC4xMDI0NjcsIDAuMTYxODYzLCAwLjIxNjA1MywgMC4yNTQ2NDYsIDAuMzE2NDE1LCAwLjM3MDQ0NSwgMC40NDc1ODgiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzA0MDIsIDAuMTM5MTUyLCAwLjI1MTYxNCwgMC4zMzI1ODMsIDAuNDYyNTkyLCAwLjU3NTYwNSwgMC43MzkzMTciLCBcCi0gICAgICAgICAgIjAuMDMwMjg2LCAwLjEzOTA2MywgMC4yNTE1NzEsIDAuMzMyNjkyLCAwLjQ2MjYxMywgMC41NzUzMTksIDAuNzM4NTg1IiwgXAotICAgICAgICAgICIwLjAzMDU2OCwgMC4xMzkyMTgsIDAuMjUxNjc0LCAwLjMzMjY4MywgMC40NjIwOTEsIDAuNTc1Nzc0LCAwLjczOTI3NSIsIFwKLSAgICAgICAgICAiMC4wMzE1MzMsIDAuMTM5NDMzLCAwLjI1MTczMywgMC4zMzIzMTUsIDAuNDYyNjEzLCAwLjU3NTU5MSwgMC43MzkyMDkiLCBcCi0gICAgICAgICAgIjAuMDMyOTQ3LCAwLjEzOTg2MSwgMC4yNTE4OTcsIDAuMzMyODE5LCAwLjQ2MjY0MywgMC41NzYwMDQsIDAuNzM4MjQyIiwgXAotICAgICAgICAgICIwLjAzNTA5OCwgMC4xNDA2MTYsIDAuMjUyMjUxLCAwLjMzMjUxMywgMC40NjE5NTMsIDAuNTc2NTI5LCAwLjczOTIwNCIsIFwKLSAgICAgICAgICAiMC4wMzY3NTMsIDAuMTQxMzE3LCAwLjI1MjQ2OCwgMC4zMzMxMjIsIDAuNDYyODU2LCAwLjU3NjU5NSwgMC43MzgzODEiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTE5NywgMC4xMTAxOTIsIDAuMTY0MTcyLCAwLjIwMjY0NiwgMC4yNjQxNjQsIDAuMzE4MDczLCAwLjM5NDkxNyIsIFwKLSAgICAgICAgICAiMC4wNTg2NzcsIDAuMTE2ODU2LCAwLjE3MDgyNywgMC4yMDkyOTcsIDAuMjcwODA3LCAwLjMyNDY2OCwgMC40MDE2NTgiLCBcCi0gICAgICAgICAgIjAuMDY1NzcyLCAwLjEyMzkxLCAwLjE3Nzg5MSwgMC4yMTYzNiwgMC4yNzc4NzIsIDAuMzMxNzE4LCAwLjQwODYwMyIsIFwKLSAgICAgICAgICAiMC4wNzE4OTksIDAuMTMwMzQ5LCAwLjE4NDI2NywgMC4yMjI3MzIsIDAuMjg0MjY0LCAwLjMzODA4NCwgMC40MTUwNzQiLCBcCi0gICAgICAgICAgIjAuMDc3MDYsIDAuMTM1ODM4LCAwLjE4OTgxOSwgMC4yMjgzNzQsIDAuMjg5ODkxLCAwLjM0MzcwNywgMC40MjA1OTMiLCBcCi0gICAgICAgICAgIjAuMDgzODU5LCAwLjE0MzI2OSwgMC4xOTcyNjcsIDAuMjM1NzA5LCAwLjI5NzIyMSwgMC4zNTEwMzQsIDAuNDI3OTI5IiwgXAotICAgICAgICAgICIwLjA4ODg2MSwgMC4xNDg3MjcsIDAuMjAyODc3LCAwLjI0MTMxOSwgMC4zMDI4MDIsIDAuMzU2NjI0LCAwLjQzMzQ5NiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyOTkzMywgMC4xMzcwNzUsIDAuMjQ3MTEzLCAwLjMyNjI2LCAwLjQ1Mzk2MSwgMC41NjU1MDIsIDAuNzI1NTMxIiwgXAotICAgICAgICAgICIwLjAyOTg5NCwgMC4xMzcwNSwgMC4yNDcwOCwgMC4zMjY5MjksIDAuNDUzOTY3LCAwLjU2NjUyNiwgMC43MjUyMDEiLCBcCi0gICAgICAgICAgIjAuMDMwMTA2LCAwLjEzNzEzNiwgMC4yNDc0NTcsIDAuMzI2OTM0LCAwLjQ1NDQ2MiwgMC41NjY0NjksIDAuNzI2NDY1IiwgXAotICAgICAgICAgICIwLjAzMDk3MiwgMC4xMzc0NDksIDAuMjQ3NTkzLCAwLjMyNzAxMiwgMC40NTM4MTMsIDAuNTY1NzM3LCAwLjcyNTI1OSIsIFwKLSAgICAgICAgICAiMC4wMzE4OTYsIDAuMTM3ODc4LCAwLjI0NzUwNiwgMC4zMjcxNDcsIDAuNDU0NjgzLCAwLjU2NTc3NywgMC43MjYyNTciLCBcCi0gICAgICAgICAgIjAuMDMzNjU1LCAwLjEzODcxMywgMC4yNDgyNTgsIDAuMzI3NDM3LCAwLjQ1NDgzNSwgMC41NjY1OCwgMC43MjU1MjIiLCBcCi0gICAgICAgICAgIjAuMDM0NjE4LCAwLjEzOTMzOCwgMC4yNDgzNDUsIDAuMzI3NzU4LCAwLjQ1NDkyNiwgMC41NjY3NDYsIDAuNzI1NjU5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzMjUzMSwgMC4wODc3LCAwLjE0MTcxMiwgMC4xODAzMjYsIDAuMjQyMTg1LCAwLjI5NjI1NiwgMC4zNzM0NzQiLCBcCi0gICAgICAgICAgIjAuMDQwODM3LCAwLjA5NjAyNiwgMC4xNTAwNCwgMC4xODg2NjcsIDAuMjUwMzU2LCAwLjMwNDQ0OSwgMC4zODE2NzciLCBcCi0gICAgICAgICAgIjAuMDQ5OTg5LCAwLjEwNTI4LCAwLjE1OTI5OSwgMC4xOTc5NDgsIDAuMjU5NTg2LCAwLjMxMzc4MywgMC4zOTA3NzciLCBcCi0gICAgICAgICAgIjAuMDU3MDYxLCAwLjExMjY4LCAwLjE2NjY2NSwgMC4yMDUyMjMsIDAuMjY3MDY2LCAwLjMyMDk5MiwgMC4zOTgyMzciLCBcCi0gICAgICAgICAgIjAuMDYyNjMzLCAwLjExODcyOCwgMC4xNzI2NjcsIDAuMjExMjI0LCAwLjI3Mjk2NiwgMC4zMjY5MzgsIDAuNDA0MTU4IiwgXAotICAgICAgICAgICIwLjA3MDAzNCwgMC4xMjY4MywgMC4xODA3MzEsIDAuMjE5MzA5LCAwLjI4MTAxMiwgMC4zMzUwODIsIDAuNDEyMjI1IiwgXAotICAgICAgICAgICIwLjA3NTUyMiwgMC4xMzI3ODMsIDAuMTg2Njc4LCAwLjIyNTIwMSwgMC4yODY4OTMsIDAuMzQwODI5LCAwLjQxNzkyMiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyNTU1NSwgMC4xMzU5OSwgMC4yNDk1NywgMC4zMzA4NTksIDAuNDYwNjE2LCAwLjU3NDM4MSwgMC43Mzc5NDQiLCBcCi0gICAgICAgICAgIjAuMDI1NjU1LCAwLjEzNTkxNCwgMC4yNDk1MjQsIDAuMzMwMzI5LCAwLjQ2MTI5MSwgMC41NzQ3NjMsIDAuNzM3MTQ4IiwgXAotICAgICAgICAgICIwLjAyNzExNiwgMC4xMzYwNTIsIDAuMjQ5NTA2LCAwLjMzMDQzNSwgMC40NjEyMjksIDAuNTc0NTYsIDAuNzM3MDgyIiwgXAotICAgICAgICAgICIwLjAyODg3LCAwLjEzNjM5NSwgMC4yNDk2OTcsIDAuMzMwOTYyLCAwLjQ2MTIyMywgMC41NzQ1ODUsIDAuNzM3MTE0IiwgXAotICAgICAgICAgICIwLjAzMDUzMywgMC4xMzcwMTksIDAuMjQ5ODAyLCAwLjMzMTAzMywgMC40NjEyNTEsIDAuNTc0ODc4LCAwLjczNzA1OSIsIFwKLSAgICAgICAgICAiMC4wMzI5MDMsIDAuMTM3NjkxLCAwLjI0OTc5MSwgMC4zMzA4OTgsIDAuNDYxMzIxLCAwLjU3NDYsIDAuNzM2OTc5IiwgXAotICAgICAgICAgICIwLjAzNDc2NCwgMC4xMzg1NTYsIDAuMjUwMSwgMC4zMzA5NDQsIDAuNDYxMTk2LCAwLjU3NTM0OCwgMC43MzgyMiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0OTg0MiwgMC4xMDgzMTIsIDAuMTYyMzMsIDAuMjAwODI2LCAwLjI2MjM2MSwgMC4zMTYyMTMsIDAuMzkzMTEzIiwgXAotICAgICAgICAgICIwLjA1NzM3NSwgMC4xMTU4NjUsIDAuMTY5ODg4LCAwLjIwODM3NywgMC4yNjk5MjMsIDAuMzIzNzc4LCAwLjQwMDY4NCIsIFwKLSAgICAgICAgICAiMC4wNjcxMjQsIDAuMTI1NDcyLCAwLjE3OTQ5OCwgMC4yMTc5ODUsIDAuMjc5NTM0LCAwLjMzMzM3MywgMC40MTAzMjciLCBcCi0gICAgICAgICAgIjAuMDc1ODIsIDAuMTM0MzI2LCAwLjE4ODMzMiwgMC4yMjY4MTMsIDAuMjg4MzU5LCAwLjM0MjE5NSwgMC40MTkxNTQiLCBcCi0gICAgICAgICAgIjAuMDgzMywgMC4xNDIwODcsIDAuMTk2MDY3LCAwLjIzNDU1MSwgMC4yOTYwODgsIDAuMzQ5OTE4LCAwLjQyNjgyOSIsIFwKLSAgICAgICAgICAiMC4wOTMwMzksIDAuMTUyMjQyLCAwLjIwNjI0MywgMC4yNDQ2OTIsIDAuMzA2MjE2LCAwLjM2MDA4NywgMC40MzY5ODgiLCBcCi0gICAgICAgICAgIjAuMTAwMzA1LCAwLjE1OTcyMywgMC4yMTM4MDIsIDAuMjUyMjQ2LCAwLjMxMzczOCwgMC4zNjc1NDUsIDAuNDQ0NDM5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDMwMzc5LCAwLjEzNzQ2MiwgMC4yNDc0OTIsIDAuMzI3MTkyLCAwLjQ1NDczLCAwLjU2NjYyNiwgMC43MjUzMzUiLCBcCi0gICAgICAgICAgIjAuMDMwMjk4LCAwLjEzNzQ0OSwgMC4yNDc0OTcsIDAuMzI2ODYyLCAwLjQ1NDcyLCAwLjU2NjY0LCAwLjcyNjUzNCIsIFwKLSAgICAgICAgICAiMC4wMzA1MjksIDAuMTM3NTQ5LCAwLjI0Nzc3NiwgMC4zMjY5NjEsIDAuNDU0NzI3LCAwLjU2NjU1NywgMC43MjY1MTYiLCBcCi0gICAgICAgICAgIjAuMDMxNTE1LCAwLjEzNzc2NSwgMC4yNDc4NzgsIDAuMzI2ODkzLCAwLjQ1NDc1NiwgMC41NjU5MjIsIDAuNzI2NTUxIiwgXAotICAgICAgICAgICIwLjAzMjcwNiwgMC4xMzgyNCwgMC4yNDgwODUsIDAuMzI3MzUzLCAwLjQ1NDcyLCAwLjU2NjYwMiwgMC43MjY1NjYiLCBcCi0gICAgICAgICAgIjAuMDM0NjU0LCAwLjEzODk3NSwgMC4yNDgzNTEsIDAuMzI3NjkxLCAwLjQ1NTAxMywgMC41NjY4OTEsIDAuNzI1ODM0IiwgXAotICAgICAgICAgICIwLjAzNjMxMywgMC4xMzk2MjksIDAuMjQ4NzU4LCAwLjMyNzk5LCAwLjQ1NDU3MiwgMC41NjY5MTIsIDAuNzI2NTQ4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1OTgyLCAwLjAwNjA5MSwgMC4wMDYxMTcsIDAuMDA2MTMyLCAwLjAwNjEzNCwgMC4wMDYxNDEsIDAuMDA2MTQ1IiwgXAotICAgICAgICAgICIwLjAwNTkwMiwgMC4wMDYwMjYsIDAuMDA2MDYxLCAwLjAwNjA2OCwgMC4wMDYwNzksIDAuMDA2MDg4LCAwLjAwNjA5MyIsIFwKLSAgICAgICAgICAiMC4wMDU5NDgsIDAuMDA2MDI0LCAwLjAwNjA1OSwgMC4wMDYwNzEsIDAuMDA2MDgyLCAwLjAwNjA4OSwgMC4wMDYwOTQiLCBcCi0gICAgICAgICAgIjAuMDA2MTI5LCAwLjAwNjA4LCAwLjAwNjEwNywgMC4wMDYxMTQsIDAuMDA2MTI2LCAwLjAwNjEzMiwgMC4wMDYxNCIsIFwKLSAgICAgICAgICAiMC4wMDYxNDYsIDAuMDA2MTE5LCAwLjAwNjE1MSwgMC4wMDYxNjUsIDAuMDA2MTc3LCAwLjAwNjE4NCwgMC4wMDYxOTEiLCBcCi0gICAgICAgICAgIjAuMDA2MzU3LCAwLjAwNjI2MywgMC4wMDYyODgsIDAuMDA2MzAxLCAwLjAwNjMxMywgMC4wMDYzMTcsIDAuMDA2MzMxIiwgXAotICAgICAgICAgICIwLjAwNjc1NCwgMC4wMDY0NzIsIDAuMDA2NDcsIDAuMDA2NDc0LCAwLjAwNjQ4MiwgMC4wMDY0NzcsIDAuMDA2NDg1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDg3NzQsIDAuMDA4OTMsIDAuMDA4OTY5LCAwLjAwODk4MiwgMC4wMDg5OTMsIDAuMDA4OTk5LCAwLjAwOTAwNCIsIFwKLSAgICAgICAgICAiMC4wMDg3MjEsIDAuMDA4ODkxLCAwLjAwODkzNCwgMC4wMDg5NDgsIDAuMDA4OTYxLCAwLjAwODk2OCwgMC4wMDg5NzQiLCBcCi0gICAgICAgICAgIjAuMDA4NzQsIDAuMDA4ODc2LCAwLjAwODkyMiwgMC4wMDg5MzcsIDAuMDA4OTUyLCAwLjAwODk1OSwgMC4wMDg5NjYiLCBcCi0gICAgICAgICAgIjAuMDA4ODIzLCAwLjAwODg5NSwgMC4wMDg5MzgsIDAuMDA4OTU0LCAwLjAwODk2OCwgMC4wMDg5NzYsIDAuMDA4OTgzIiwgXAotICAgICAgICAgICIwLjAwODkxLCAwLjAwODkzMywgMC4wMDg5NzUsIDAuMDA4OTg4LCAwLjAwOTAwMywgMC4wMDkwMTEsIDAuMDA5MDE4IiwgXAotICAgICAgICAgICIwLjAwOTEwMSwgMC4wMDkwNDEsIDAuMDA5MDcsIDAuMDA5MDgyLCAwLjAwOTA5NSwgMC4wMDkxMDIsIDAuMDA5MTA3IiwgXAotICAgICAgICAgICIwLjAwOTI4NywgMC4wMDkxNjksIDAuMDA5MTg5LCAwLjAwOTE5OSwgMC4wMDkyMDgsIDAuMDA5MjE2LCAwLjAwOTIyMiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkExIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjAwMSwgMC4wMDYwOTUsIDAuMDA2MTEzLCAwLjAwNjEzMSwgMC4wMDYxMzcsIDAuMDA2MTQxLCAwLjAwNjE0NSIsIFwKLSAgICAgICAgICAiMC4wMDU5MTIsIDAuMDA2MDMyLCAwLjAwNjA2OSwgMC4wMDYwODUsIDAuMDA2MDkyLCAwLjAwNjEwMiwgMC4wMDYwOTgiLCBcCi0gICAgICAgICAgIjAuMDA2MDE2LCAwLjAwNjA1NywgMC4wMDYwOTQsIDAuMDA2MTA3LCAwLjAwNjExOSwgMC4wMDYxMjYsIDAuMDA2MTMzIiwgXAotICAgICAgICAgICIwLjAwNjIyNywgMC4wMDYxNzYsIDAuMDA2MjAxLCAwLjAwNjIxLCAwLjAwNjIyMywgMC4wMDYyMjksIDAuMDA2MjM4IiwgXAotICAgICAgICAgICIwLjAwNjMyOCwgMC4wMDYyMzgsIDAuMDA2MjYxLCAwLjAwNjI3MywgMC4wMDYyODksIDAuMDA2MjkyLCAwLjAwNjI5OCIsIFwKLSAgICAgICAgICAiMC4wMDY2OTIsIDAuMDA2NDYsIDAuMDA2NDYyLCAwLjAwNjQ3MSwgMC4wMDY0OCwgMC4wMDY0ODQsIDAuMDA2NDkxIiwgXAotICAgICAgICAgICIwLjAwNjg5NywgMC4wMDY2NDgsIDAuMDA2NjUzLCAwLjAwNjY1OCwgMC4wMDY2NzMsIDAuMDA2NjY5LCAwLjAwNjY4MSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA4MjY2LCAwLjAwODQ0LCAwLjAwODQ3NiwgMC4wMDg0ODgsIDAuMDA4NDk5LCAwLjAwODUwNCwgMC4wMDg1MDkiLCBcCi0gICAgICAgICAgIjAuMDA4MTg5LCAwLjAwODM3OCwgMC4wMDg0MiwgMC4wMDg0MzMsIDAuMDA4NDQ1LCAwLjAwODQ1MSwgMC4wMDg0NTciLCBcCi0gICAgICAgICAgIjAuMDA4MTksIDAuMDA4MzUxLCAwLjAwODM5NiwgMC4wMDg0MTEsIDAuMDA4NDI0LCAwLjAwODQzMSwgMC4wMDg0MzciLCBcCi0gICAgICAgICAgIjAuMDA4Mjg3LCAwLjAwODM3NiwgMC4wMDg0MDksIDAuMDA4NDI0LCAwLjAwODQzNywgMC4wMDg0NDQsIDAuMDA4NDUxIiwgXAotICAgICAgICAgICIwLjAwODQsIDAuMDA4NDAyLCAwLjAwODQ0MiwgMC4wMDg0NTYsIDAuMDA4NDcxLCAwLjAwODQ3OCwgMC4wMDg0ODUiLCBcCi0gICAgICAgICAgIjAuMDA4NjI1LCAwLjAwODUxLCAwLjAwODU0MSwgMC4wMDg1NTMsIDAuMDA4NTY1LCAwLjAwODU3MSwgMC4wMDg1NzciLCBcCi0gICAgICAgICAgIjAuMDA4NzY1LCAwLjAwODYzNCwgMC4wMDg2NTQsIDAuMDA4NjY3LCAwLjAwODY3NywgMC4wMDg2ODMsIDAuMDA4NjkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDUzNzcsIDAuMDA1NDg1LCAwLjAwNTQ5NywgMC4wMDU1MDMsIDAuMDA1NTA0LCAwLjAwNTUxLCAwLjAwNTUwOCIsIFwKLSAgICAgICAgICAiMC4wMDUzMzMsIDAuMDA1NDUyLCAwLjAwNTQ3MiwgMC4wMDU0NzgsIDAuMDA1NDgzLCAwLjAwNTQ4NiwgMC4wMDU0ODgiLCBcCi0gICAgICAgICAgIjAuMDA1NDQ1LCAwLjAwNTQ5OCwgMC4wMDU1MTcsIDAuMDA1NTI0LCAwLjAwNTUzLCAwLjAwNTUzNCwgMC4wMDU1MzciLCBcCi0gICAgICAgICAgIjAuMDA1NTk2LCAwLjAwNTU4NiwgMC4wMDU1OTgsIDAuMDA1NjAyLCAwLjAwNTYxLCAwLjAwNTYxMywgMC4wMDU2MTUiLCBcCi0gICAgICAgICAgIjAuMDA1Nzg2LCAwLjAwNTcxNywgMC4wMDU3MjgsIDAuMDA1NzM1LCAwLjAwNTc0LCAwLjAwNTc0MiwgMC4wMDU3NDciLCBcCi0gICAgICAgICAgIjAuMDA2MTU3LCAwLjAwNTk0NCwgMC4wMDU5NDUsIDAuMDA1OTUxLCAwLjAwNTk1MiwgMC4wMDU5NTMsIDAuMDA1OTYiLCBcCi0gICAgICAgICAgIjAuMDA2NDE2LCAwLjAwNjIxNCwgMC4wMDYxNzYsIDAuMDA2MTc5LCAwLjAwNjE3NCwgMC4wMDYxNzcsIDAuMDA2MTc4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDc3NjIsIDAuMDA3OTE4LCAwLjAwNzk1NywgMC4wMDc5NjksIDAuMDA3OTgxLCAwLjAwNzk4NywgMC4wMDc5OTIiLCBcCi0gICAgICAgICAgIjAuMDA3Njk4LCAwLjAwNzg2OSwgMC4wMDc5MTYsIDAuMDA3OTMyLCAwLjAwNzk0NiwgMC4wMDc5NTQsIDAuMDA3OTYxIiwgXAotICAgICAgICAgICIwLjAwNzgyNSwgMC4wMDc5MDgsIDAuMDA3OTU4LCAwLjAwNzk3NSwgMC4wMDc5OTIsIDAuMDA4MDAxLCAwLjAwODAwOSIsIFwKLSAgICAgICAgICAiMC4wMDgwNDMsIDAuMDA4MDIzLCAwLjAwODA2MiwgMC4wMDgwNzgsIDAuMDA4MDkzLCAwLjAwODEwMiwgMC4wMDgxMSIsIFwKLSAgICAgICAgICAiMC4wMDgxNywgMC4wMDgwOTUsIDAuMDA4MTMzLCAwLjAwODE0OSwgMC4wMDgxNjYsIDAuMDA4MTc1LCAwLjAwODE4NCIsIFwKLSAgICAgICAgICAiMC4wMDg1NjUsIDAuMDA4MzMyLCAwLjAwODM0MiwgMC4wMDgzNTQsIDAuMDA4MzYzLCAwLjAwODM3MSwgMC4wMDgzNzkiLCBcCi0gICAgICAgICAgIjAuMDA4OTQzLCAwLjAwODU2LCAwLjAwODU1MiwgMC4wMDg1NTUsIDAuMDA4NTU5LCAwLjAwODU2NCwgMC4wMDg1NjkiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogQU9JMjExWDEgKgotICogLS0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKEFPSTIxMVgxKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMzg0NzU7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA5NDcwODI7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwOTQ0MTQ5OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDk0NzA4MjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA1MjQsIDAuMDAwNTI0LCAwLjAwMDUyNCwgMC4wMDA1MjQsIDAuMDAwNTI0LCAwLjAwMDUyNCwgMC4wMDA1MjQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA1NTMsIDAuMDAwNTM0LCAwLjAwMDUzLCAwLjAwMDUyNywgMC4wMDA1MjYsIDAuMDAwNTI2LCAwLjAwMDUyNiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQTEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDk3ODcxOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDk3MzkxOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDk3ODcxOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDMyMywgMC4wMDAzMjIsIDAuMDAwMzIyLCAwLjAwMDMyMiwgMC4wMDAzMjIsIDAuMDAwMzIyLCAwLjAwMDMyMiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDU5NSwgMC4wMDA1OTYsIDAuMDAwNTk2LCAwLjAwMDU5NiwgMC4wMDA1OTYsIDAuMDAwNTk2LCAwLjAwMDU5NiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQjApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDkzODY4NzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA5MzUyNTM7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwOTM4Njg3OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDQ1MSwgMC4wMDA0OTMsIDAuMDAwNTAzLCAwLjAwMDUwNSwgMC4wMDA1MDcsIDAuMDAwNTExLCAwLjAwMDUxMyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDUzOSwgMC4wMDA1MzksIDAuMDAwNTM5LCAwLjAwMDUzOSwgMC4wMDA1MzksIDAuMDAwNTM5LCAwLjAwMDUzOSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQzApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDk1MDc0OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDk1MDc0OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDk1MDM1OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDEyNSwgMC4wMDAxMjUsIDAuMDAwMTI1LCAwLjAwMDEyNSwgMC4wMDAxMjUsIDAuMDAwMTI1LCAwLjAwMDEyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDM4MiwgMC4wMDAzODIsIDAuMDAwMzgyLCAwLjAwMDM4MiwgMC4wMDAzODIsIDAuMDAwMzgyLCAwLjAwMDM4MiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjEyOTQzNjsKLSAgICBmdW5jdGlvbiA6ICIoISgoKEEwIEExKStCMCkrQzApKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTAiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwNzUsIDAuMTU3MjM1LCAwLjQzOTA4MiwgMC42ODc3MjgsIDEuMDE4ODMsIDEuNjgyMzQsIDIuMDk1NTEiLCBcCi0gICAgICAgICAgIjAuMTEzODcxLCAwLjE2MzYzLCAwLjQ0NTMwMywgMC42OTQyNjQsIDEuMDI1MywgMS42ODg2NSwgMi4xMDE5NiIsIFwKLSAgICAgICAgICAiMC4xMTk2MzIsIDAuMTY5MzY2LCAwLjQ1MTIxNiwgMC42OTk0NzYsIDEuMDMwNTIsIDEuNjk0MjYsIDIuMTA2NDciLCBcCi0gICAgICAgICAgIjAuMTI0ODc1LCAwLjE3NDY1MiwgMC40NTY2OTgsIDAuNzA0Nzk3LCAxLjAzNzE0LCAxLjY5ODY4LCAyLjExNDI5IiwgXAotICAgICAgICAgICIwLjEyOTk5NiwgMC4xNzk3NzQsIDAuNDYxOTQ2LCAwLjcwOTkyMywgMS4wNDExOSwgMS43MDQ4OSwgMi4xMjA3MiIsIFwKLSAgICAgICAgICAiMC4xMzgxODMsIDAuMTg3ODU1LCAwLjQ2OTQ3NywgMC43MTg2NjQsIDEuMDQ5OTIsIDEuNzExNzMsIDIuMTI3NjUiLCBcCi0gICAgICAgICAgIjAuMTQ0NjAyLCAwLjE5NDk4NywgMC40NzY4MDYsIDAuNzI1MTIsIDEuMDU2MzMsIDEuNzE5NjEsIDIuMTMyOTMiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjAzMDksIDAuMzA3Njk0LCAwLjkwMDMzNiwgMS40MjI4OCwgMi4xMTkwNywgMy41MTM5OSwgNC4zODQ0IiwgXAotICAgICAgICAgICIwLjIwMzA4MywgMC4zMDc3MzMsIDAuOTAwMjMsIDEuNDIyOTUsIDIuMTE5MDcsIDMuNTEzNjIsIDQuMzg0MzciLCBcCi0gICAgICAgICAgIjAuMjAzNTU3LCAwLjMwNzY5MywgMC44OTk5OTUsIDEuNDIzMDksIDIuMTIwNjIsIDMuNTE0NjEsIDQuMzg2MDQiLCBcCi0gICAgICAgICAgIjAuMjA1MDEsIDAuMzA4MzkxLCAwLjg5OTk5NiwgMS40MjMwNCwgMi4xMjAxNCwgMy41MTQzMywgNC4zODQ5OCIsIFwKLSAgICAgICAgICAiMC4yMDczMzEsIDAuMzEwMTI3LCAwLjkwMDIzNiwgMS40MjMwMSwgMi4xMTkwNywgMy41MTQ0MiwgNC4zODY3NyIsIFwKLSAgICAgICAgICAiMC4yMTIzOTMsIDAuMzEzNjkyLCAwLjkwMDQ2OSwgMS40MjI5MSwgMi4xMjAxOCwgMy41MTI1OCwgNC4zODUzMyIsIFwKLSAgICAgICAgICAiMC4yMTc2OTIsIDAuMzE3OTgyLCAwLjkwMTczMSwgMS40MjI5NSwgMi4xMTk4NywgMy41MTUxOSwgNC4zODM2MiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzIyNiwgMC4xMDQyOTQsIDAuMjg0NTY3LCAwLjQ0MzE3LCAwLjY1NDgxLCAxLjA3Nzg0LCAxLjM0MjAxIiwgXAotICAgICAgICAgICIwLjA3ODc4OSwgMC4xMTA4NTEsIDAuMjkxMDg5LCAwLjQ0OTczMywgMC42NjEyMDksIDEuMDg0MTQsIDEuMzQ4MjkiLCBcCi0gICAgICAgICAgIjAuMDg2OTg1LCAwLjExOTE4NywgMC4yOTk2MzksIDAuNDU4MTg4LCAwLjY2OTU5MiwgMS4wOTI3OSwgMS4zNTc3IiwgXAotICAgICAgICAgICIwLjA5NTI3NCwgMC4xMjczMjMsIDAuMzA3ODQ1LCAwLjQ2NjY3NiwgMC42NzgzMDEsIDEuMTAwODYsIDEuMzY1OTgiLCBcCi0gICAgICAgICAgIjAuMTAzNDYyLCAwLjEzNTczOSwgMC4zMTYxMzUsIDAuNDc0ODQyLCAwLjY4NjU5MywgMS4xMDkyNCwgMS4zNzM0MiIsIFwKLSAgICAgICAgICAiMC4xMTU3MzMsIDAuMTQ4NzgzLCAwLjMyOTE1MywgMC40ODgxMzEsIDAuNjk5Nzk2LCAxLjEyMzA4LCAxLjM4NzU2IiwgXAotICAgICAgICAgICIwLjEyNTE2NCwgMC4xNjAwNTUsIDAuMzQwNzQzLCAwLjUwMDAwNSwgMC43MTE4MSwgMS4xMzU1NCwgMS4zOTk0OSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMzIzMDQsIDAuMTk3MywgMC41NjY0MzYsIDAuODkyNTA2LCAxLjMyNjMzLCAyLjE5NDkyLCAyLjczNjc0IiwgXAotICAgICAgICAgICIwLjEzMjIxOCwgMC4xOTczMDIsIDAuNTY2Mzc3LCAwLjg5MjM4NCwgMS4zMjY2NSwgMi4xOTUxMiwgMi43MzY5NyIsIFwKLSAgICAgICAgICAiMC4xMzQyNzUsIDAuMTk4MTk4LCAwLjU2NjM3MSwgMC44OTIwNzMsIDEuMzI2ODgsIDIuMTk0NTgsIDIuNzM3MzMiLCBcCi0gICAgICAgICAgIjAuMTM4MjI2LCAwLjIwMDcwMSwgMC41NjY1ODQsIDAuODkyNTQ3LCAxLjMyNjM4LCAyLjE5NDk4LCAyLjczNzI3IiwgXAotICAgICAgICAgICIwLjE0MzI2MiwgMC4yMDQ3MTksIDAuNTY2ODA0LCAwLjg5MjMwNiwgMS4zMjYzNCwgMi4xOTQ5NiwgMi43MzY4OSIsIFwKLSAgICAgICAgICAiMC4xNTI3MDgsIDAuMjEyNTE1LCAwLjU2ODg2MiwgMC44OTIxNTEsIDEuMzI2MzUsIDIuMTk0NDksIDIuNzM2NyIsIFwKLSAgICAgICAgICAiMC4xNjIwMTIsIDAuMjIwNTIsIDAuNTcyMTY5LCAwLjg5MzIyNiwgMS4zMjY0NCwgMi4xOTQ1OCwgMi43MzY2NCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTAzNjQ4LCAwLjE1Mjk1MywgMC40MzIyMzcsIDAuNjc4NDMyLCAxLjAwNzM1LCAxLjY2NTM0LCAyLjA3NDI1IiwgXAotICAgICAgICAgICIwLjEwOTk5MSwgMC4xNTkzNzQsIDAuNDM4ODE3LCAwLjY4NTQ4LCAxLjAxMzc3LCAxLjY3MTg5LCAyLjA4MDc4IiwgXAotICAgICAgICAgICIwLjExNTY4NywgMC4xNjUxMTIsIDAuNDQ0NTc4LCAwLjY5MDY3NCwgMS4wMTg5NSwgMS42NzYyNiwgMi4wODcwMyIsIFwKLSAgICAgICAgICAiMC4xMjA4ODIsIDAuMTcwMzUyLCAwLjQ0OTg5OSwgMC42OTYwMjMsIDEuMDI0MTMsIDEuNjgxNTgsIDIuMDkyMzkiLCBcCi0gICAgICAgICAgIjAuMTI2MDAyLCAwLjE3NTM3MywgMC40NTUwNDgsIDAuNzAxMjc5LCAxLjAyOTMzLCAxLjY4NjQ2LCAyLjA5ODc1IiwgXAotICAgICAgICAgICIwLjEzNDEzNiwgMC4xODM1OSwgMC40NjI5MDcsIDAuNzEwMDgzLCAxLjAzNzUyLCAxLjY5NDMxLCAyLjEwNjc4IiwgXAotICAgICAgICAgICIwLjE0MDU1MywgMC4xOTA3NSwgMC40NzAyOSwgMC43MTY0NDEsIDEuMDQ0NzcsIDEuNzAxOTUsIDIuMTExOTciKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTk3MzExLCAwLjMwMDU2NCwgMC44ODcyMiwgMS40MDQ4OCwgMi4wOTUyMywgMy40NzcxOCwgNC4zMzg2NiIsIFwKLSAgICAgICAgICAiMC4xOTcyODYsIDAuMzAxMDA2LCAwLjg4NzIwMywgMS40MDUxNywgMi4wOTUwNSwgMy40NzcxLCA0LjMzODU5IiwgXAotICAgICAgICAgICIwLjE5NzYwNSwgMC4zMDA5NjMsIDAuODg3Mjc3LCAxLjQwNzAyLCAyLjA5ODE0LCAzLjQ3NTgxLCA0LjMzODMzIiwgXAotICAgICAgICAgICIwLjE5OTE2NiwgMC4zMDE3OTQsIDAuODg3NTU5LCAxLjQwNzEzLCAyLjA5NTUxLCAzLjQ3NTgsIDQuMzQwMSIsIFwKLSAgICAgICAgICAiMC4yMDE0OTIsIDAuMzAzMDY2LCAwLjg4NzUzMywgMS40MDQ4MSwgMi4wOTU2NywgMy40NzY1NCwgNC4zNDA3NSIsIFwKLSAgICAgICAgICAiMC4yMDY2NTQsIDAuMzA3MDE3LCAwLjg4ODU2NSwgMS40MDUxOSwgMi4wOTc4MiwgMy40ODEwMiwgNC4zMzkxMSIsIFwKLSAgICAgICAgICAiMC4yMTI0MzgsIDAuMzExMzEsIDAuODkwMDQxLCAxLjQwNDkyLCAyLjA5Nzg0LCAzLjQ3NjcyLCA0LjM0NTI5Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3MDg3OCwgMC4xMDI4OTUsIDAuMjgzMTk5LCAwLjQ0MTg1MiwgMC42NTM1MjQsIDEuMDc2NTIsIDEuMzQwNzEiLCBcCi0gICAgICAgICAgIjAuMDc4MzExLCAwLjExMDM1MSwgMC4yOTA2MzksIDAuNDQ5MjM5LCAwLjY2MDcwNCwgMS4wODM0NSwgMS4zNDgzMiIsIFwKLSAgICAgICAgICAiMC4wODc4NTQsIDAuMTIwMDY2LCAwLjMwMDQsIDAuNDU4OTc2LCAwLjY3MDc3NiwgMS4wOTM2LCAxLjM1Nzc2IiwgXAotICAgICAgICAgICIwLjA5Nzc0NSwgMC4xMjk2NzMsIDAuMzA5NzM2LCAwLjQ2ODY2NiwgMC42Nzk4NDcsIDEuMTAzMjcsIDEuMzY3NTIiLCBcCi0gICAgICAgICAgIjAuMTA3NzEsIDAuMTM5NTQ1LCAwLjMxOTUyNywgMC40NzgwNzIsIDAuNjg5NTY2LCAxLjExMjUzLCAxLjM3NjYiLCBcCi0gICAgICAgICAgIjAuMTIzMTI5LCAwLjE1NTc0LCAwLjMzNTEzLCAwLjQ5MzEwNiwgMC43MDUwNjYsIDEuMTI3NjUsIDEuMzkyMDkiLCBcCi0gICAgICAgICAgIjAuMTM0OTUzLCAwLjE2OTUxNCwgMC4zNDg4MDMsIDAuNTA3MzQxLCAwLjcxODY3NywgMS4xNDE5MiwgMS40MDU4MyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMzIyNzUsIDAuMTk3Mjk5LCAwLjU2NjU0OCwgMC44OTIxOTQsIDEuMzI2MzYsIDIuMTk1MDcsIDIuNzM3NDIiLCBcCi0gICAgICAgICAgIjAuMTMyMjQzLCAwLjE5NzI5NSwgMC41NjY0MzUsIDAuODkyMDc4LCAxLjMyNzEzLCAyLjE5NDg4LCAyLjczNzQ0IiwgXAotICAgICAgICAgICIwLjEzNTMyOSwgMC4xOTgzNjksIDAuNTY2NTg4LCAwLjg5MjQ1NCwgMS4zMjY2NiwgMi4xOTUxLCAyLjczODA4IiwgXAotICAgICAgICAgICIwLjE0MTExLCAwLjIwMjMxNiwgMC41NjY1NDcsIDAuODkyMTE4LCAxLjMyNzE1LCAyLjE5NDU4LCAyLjczNzIiLCBcCi0gICAgICAgICAgIjAuMTQ4Mjk2LCAwLjIwODA0MywgMC41NjY3NTEsIDAuODkyMjc0LCAxLjMyNzM4LCAyLjE5NDUxLCAyLjczNzYiLCBcCi0gICAgICAgICAgIjAuMTYxNTI1LCAwLjIxODc3NywgMC41Njk3MzcsIDAuODkyMzk1LCAxLjMyNzE1LCAyLjE5NDc4LCAyLjczNzY1IiwgXAotICAgICAgICAgICIwLjE3NDMzNCwgMC4yMzA1MTQsIDAuNTc0NzY0LCAwLjg5MzMyNSwgMS4zMjYzNCwgMi4xOTQ2NCwgMi43MzcwMSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTAyOTg4LCAwLjE1Mjg3NSwgMC40MzQ1NDgsIDAuNjgyNjYsIDEuMDE0NDYsIDEuNjc4NTgsIDIuMDkxMTgiLCBcCi0gICAgICAgICAgIjAuMTA5MTUxLCAwLjE1OTA0OSwgMC40NDA1NjksIDAuNjg4OTk0LCAxLjAyMDA2LCAxLjY4MzY3LCAyLjA5NjMiLCBcCi0gICAgICAgICAgIjAuMTE2NTA0LCAwLjE2NjM5MywgMC40NDgwNDksIDAuNjk3MjcxLCAxLjAyODI4LCAxLjY5MTAyLCAyLjEwNTcxIiwgXAotICAgICAgICAgICIwLjEyNDIwOCwgMC4xNzM5MDMsIDAuNDU2LCAwLjcwNDI0NCwgMS4wMzYzNiwgMS42OTg5NSwgMi4xMTM4MiIsIFwKLSAgICAgICAgICAiMC4xMzE3NzIsIDAuMTgxNTUxLCAwLjQ2MzU3NiwgMC43MTE5MjUsIDEuMDQzNjIsIDEuNzA2NzYsIDIuMTIyMTkiLCBcCi0gICAgICAgICAgIjAuMTQ0MTc2LCAwLjE5MzcxNSwgMC40NzU3ODYsIDAuNzI0NDk0LCAxLjA1NjE5LCAxLjcxODMyLCAyLjEzMTYyIiwgXAotICAgICAgICAgICIwLjE1NDM5OSwgMC4yMDQ4NDUsIDAuNDg2NzY4LCAwLjczNTIyOCwgMS4wNjc0LCAxLjczMDMzLCAyLjE0MzAxIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIwMzA5MywgMC4zMDc3MzEsIDAuOTAwMjI1LCAxLjQyMzAyLCAyLjExOTE3LCAzLjUxNDg3LCA0LjM4MzQ2IiwgXAotICAgICAgICAgICIwLjIwMzA3MywgMC4zMDc3MDUsIDAuOTAwMTQ3LCAxLjQyMzA2LCAyLjEyMTE0LCAzLjUxMjU3LCA0LjM4NjA1IiwgXAotICAgICAgICAgICIwLjIwMzk0OCwgMC4zMDc3NCwgMC45MDAwOTIsIDEuNDIzMDIsIDIuMTE5MDYsIDMuNTEyNTQsIDQuMzgzOCIsIFwKLSAgICAgICAgICAiMC4yMDY3NzYsIDAuMzA4OTk0LCAwLjg5OTk3NiwgMS40MjI5MiwgMi4xMTk3OCwgMy41MTI1NiwgNC4zODUwNCIsIFwKLSAgICAgICAgICAiMC4yMTA3MDQsIDAuMzExNTU5LCAwLjkwMDExNiwgMS40MjMxNCwgMi4xMTk4MiwgMy41MTMxLCA0LjM4NjIzIiwgXAotICAgICAgICAgICIwLjIxODgxLCAwLjMxNzYwNCwgMC45MDAzNzQsIDEuNDIzMDMsIDIuMTE5NDYsIDMuNTE0MzUsIDQuMzkwNzciLCBcCi0gICAgICAgICAgIjAuMjI2ODYzLCAwLjMyNDMxLCAwLjkwMTgwOSwgMS40MjI5MSwgMi4xMjAxLCAzLjUxNDE5LCA0LjM4NiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzg3NTksIDAuMDU2OTYyLCAwLjE1OTgxMywgMC4yNTAzMzMsIDAuMzcwOTQ1LCAwLjYxMjE0MiwgMC43NjI4ODgiLCBcCi0gICAgICAgICAgIjAuMDQ3MTkxLCAwLjA2NTQwMiwgMC4xNjgyMzEsIDAuMjU4NzkyLCAwLjM3OTM3NywgMC42MjA1MDUsIDAuNzcxMjYyIiwgXAotICAgICAgICAgICIwLjA1Nzk3NywgMC4wNzU5OTIsIDAuMTc4ODg4LCAwLjI2OTE3NCwgMC4zOTAwMjYsIDAuNjMxMjIyLCAwLjc4MTk1NSIsIFwKLSAgICAgICAgICAiMC4wNjg2MTMsIDAuMDg2NDEyLCAwLjE4ODkzNSwgMC4yNzk0NTcsIDAuNDAwMDcxLCAwLjY0MDk3OSwgMC43OTE3MSIsIFwKLSAgICAgICAgICAiMC4wNzc0NzIsIDAuMDk3ODU4LCAwLjE5OTUzMiwgMC4yOTAwMzEsIDAuNDEwNTk2LCAwLjY1MTcyLCAwLjgwMjE4IiwgXAotICAgICAgICAgICIwLjA4OTIwMSwgMC4xMTI5MjEsIDAuMjE2NzI0LCAwLjMwNzExNSwgMC40Mjc3NiwgMC42NjkyNzksIDAuODE5NjgzIiwgXAotICAgICAgICAgICIwLjA5Nzk5MiwgMC4xMjQwNzQsIDAuMjMxNTIsIDAuMzIxNjczLCAwLjQ0MjE3OCwgMC42ODMyODUsIDAuODM0MDA0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3MzMzMiwgMC4xMTA1MjEsIDAuMzIxMzYxLCAwLjUwNzM1NiwgMC43NTU0OSwgMS4yNTE0OSwgMS41NjExNyIsIFwKLSAgICAgICAgICAiMC4wNzQ1NTEsIDAuMTEwODA1LCAwLjMyMTM0MywgMC41MDc0NzMsIDAuNzU1Mzg3LCAxLjI1MTQxLCAxLjU2MTE4IiwgXAotICAgICAgICAgICIwLjA4MDU3LCAwLjExNTAyNCwgMC4zMjEzNCwgMC41MDczNjQsIDAuNzU1NCwgMS4yNTE0OSwgMS41NjExOCIsIFwKLSAgICAgICAgICAiMC4wODg2NTgsIDAuMTIyMTE4LCAwLjMyMjYsIDAuNTA3MzM2LCAwLjc1NTQ3LCAxLjI1MTE5LCAxLjU2MTExIiwgXAotICAgICAgICAgICIwLjA5NzY3NCwgMC4xMjkzNDYsIDAuMzI1OTgsIDAuNTA3OTU1LCAwLjc1NTM5MywgMS4yNTE1MSwgMS41NjExNiIsIFwKLSAgICAgICAgICAiMC4xMTMxODEsIDAuMTQzNDk5LCAwLjMzNDE1MSwgMC41MTIwNDksIDAuNzU1OTM4LCAxLjI1MTIzLCAxLjU2MTIiLCBcCi0gICAgICAgICAgIjAuMTI2MTk0LCAwLjE1Njg5NiwgMC4zNDI4ODEsIDAuNTE3ODM0LCAwLjc1ODQyMiwgMS4yNTE0LCAxLjU2MTEyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTgyMTMsIDAuMTQ4MDU2LCAwLjQzMDAwMSwgMC42Nzg3NzUsIDEuMDA5MjUsIDEuNjczMzksIDIuMDg2NTYiLCBcCi0gICAgICAgICAgIjAuMTA1MTYzLCAwLjE1NTA0NSwgMC40MzY3NDEsIDAuNjg1MzYxLCAxLjAxNzIzLCAxLjY3ODY4LCAyLjA5NTI0IiwgXAotICAgICAgICAgICIwLjExNDEwMSwgMC4xNjQwNTEsIDAuNDQ1Nzg1LCAwLjY5NDE4MywgMS4wMjU2NiwgMS42ODg1OCwgMi4xMDMxIiwgXAotICAgICAgICAgICIwLjEyMzQwMiwgMC4xNzMwMDIsIDAuNDU0ODYyLCAwLjcwMzE3MSwgMS4wMzQyNCwgMS42OTgyOSwgMi4xMTM0NCIsIFwKLSAgICAgICAgICAiMC4xMzI4MjQsIDAuMTgyMzE3LCAwLjQ2NDA2LCAwLjcxMjY2NiwgMS4wNDMyMSwgMS43MDc5OSwgMi4xMTk5NCIsIFwKLSAgICAgICAgICAiMC4xNDgyODcsIDAuMTk3NDExLCAwLjQ3ODUyNywgMC43MjYzNzksIDEuMDU3NzMsIDEuNzIwMiwgMi4xMzQ4MyIsIFwKLSAgICAgICAgICAiMC4xNjE1MSwgMC4yMTA4MSwgMC40OTExMzYsIDAuNzM5NTI2LCAxLjA3MDUyLCAxLjczMjc2LCAyLjE0ODU4Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIwMzA4LCAwLjMwNzY5OCwgMC45MDAyNzUsIDEuNDIzMTQsIDIuMTIwMDYsIDMuNTE0NDUsIDQuMzgzNDMiLCBcCi0gICAgICAgICAgIjAuMjAyOTcxLCAwLjMwNzcwOCwgMC45MDAyMzEsIDEuNDIzMjQsIDIuMTE5OTQsIDMuNTEzODcsIDQuMzg1NDIiLCBcCi0gICAgICAgICAgIjAuMjA0MTI5LCAwLjMwNzU1MiwgMC45MDAyMjUsIDEuNDIzMDUsIDIuMTIwMSwgMy41MTI1NywgNC4zODU4NSIsIFwKLSAgICAgICAgICAiMC4yMDgyNDYsIDAuMzA5NTQxLCAwLjg5OTk5NywgMS40MjI2MiwgMi4xMTkxNiwgMy41MTQzMywgNC4zODY1IiwgXAotICAgICAgICAgICIwLjIxMzkyNSwgMC4zMTMwNywgMC45MDAyNDcsIDEuNDIyOTksIDIuMTE5MTQsIDMuNTE1MTMsIDQuMzg1ODIiLCBcCi0gICAgICAgICAgIjAuMjI0OTM4LCAwLjMyMTYzMSwgMC45MDAwMTYsIDEuNDIzMywgMi4xMTkxNywgMy41MTI4MywgNC4zODY3NiIsIFwKLSAgICAgICAgICAiMC4yMzU2MjUsIDAuMzMwNTgzLCAwLjkwMTQ5LCAxLjQyMjY2LCAyLjExOTMsIDMuNTEyNzgsIDQuMzg1NjEiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM2OTc1LCAwLjA1NTEzMiwgMC4xNTc5LCAwLjI0ODQ4NCwgMC4zNjkwODksIDAuNjEwMjczLCAwLjc2MTE2MiIsIFwKLSAgICAgICAgICAiMC4wNDU0MjksIDAuMDYzNjExLCAwLjE2NjQwMSwgMC4yNTY5NzgsIDAuMzc3NTgzLCAwLjYxODcxOCwgMC43Njk0NjMiLCBcCi0gICAgICAgICAgIjAuMDU2MTU2LCAwLjA3NDE5NiwgMC4xNzcwNjIsIDAuMjY3NjMzLCAwLjM4ODA1MywgMC42Mjk0MjMsIDAuNzgwMzE4IiwgXAotICAgICAgICAgICIwLjA2NjYxMywgMC4wODQ4MzcsIDAuMTg3MjIyLCAwLjI3Nzc1NCwgMC4zOTgzOTgsIDAuNjM5MzQxLCAwLjc5MDA0NSIsIFwKLSAgICAgICAgICAiMC4wNzUyMzcsIDAuMDk1MzM3LCAwLjE5NzgxNSwgMC4yODgzNDgsIDAuNDA4OTM2LCAwLjY1MDA2NiwgMC44MDA1NDIiLCBcCi0gICAgICAgICAgIjAuMDg2NjI2LCAwLjExMDAxMSwgMC4yMTUwMDQsIDAuMzA1OTE3LCAwLjQyNjQyMiwgMC42NjcwNTEsIDAuODE3OTMzIiwgXAotICAgICAgICAgICIwLjA5NDkwOSwgMC4xMjA5MTIsIDAuMjMwMDMxLCAwLjMyMDIsIDAuNDQwNzM4LCAwLjY4MTkwMiwgMC44MzI1ODIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDcxMjIxLCAwLjEwODQwMiwgMC4zMTkyNzUsIDAuNTA1MTY1LCAwLjc1MzQzNywgMS4yNTA0NCwgMS41NjEzNCIsIFwKLSAgICAgICAgICAiMC4wNzI0OTYsIDAuMTA4NzAyLCAwLjMxOTExLCAwLjUwNTE1NSwgMC43NTMzOTcsIDEuMjQ5OTEsIDEuNTYxMjYiLCBcCi0gICAgICAgICAgIjAuMDc4NjQ1LCAwLjExMjk5NywgMC4zMTkxMjcsIDAuNTA1MjUxLCAwLjc1MzY5NiwgMS4yNDk4NCwgMS41NjExNiIsIFwKLSAgICAgICAgICAiMC4wODY4NTYsIDAuMTE5NzgxLCAwLjMyMDUwNSwgMC41MDUyMjUsIDAuNzUzNDY3LCAxLjI0OTc4LCAxLjU2MDQ4IiwgXAotICAgICAgICAgICIwLjA5NTk0NiwgMC4xMjgyMSwgMC4zMjM5MTksIDAuNTA1ODczLCAwLjc1MzM1MiwgMS4yNDk1MywgMS41NjA2NiIsIFwKLSAgICAgICAgICAiMC4xMTE1MjYsIDAuMTQyNzg4LCAwLjMzMTk2NywgMC41MDk5NTIsIDAuNzUzODg3LCAxLjI0OTkzLCAxLjU2MDAzIiwgXAotICAgICAgICAgICIwLjEyNDMyMywgMC4xNTY0NTcsIDAuMzQwNjYxLCAwLjUxNTYxOSwgMC43NTYzMTEsIDEuMjQ5NDYsIDEuNTYwNTkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0MjgzLCAwLjAwNDI4NCwgMC4wMDQyODUsIDAuMDA0Mjg1LCAwLjAwNDI4NSwgMC4wMDQyODMsIDAuMDA0MjgzIiwgXAotICAgICAgICAgICIwLjAwNDI2OCwgMC4wMDQyNzEsIDAuMDA0Mjc5LCAwLjAwNDI3OSwgMC4wMDQyNzksIDAuMDA0MjgsIDAuMDA0Mjc4IiwgXAotICAgICAgICAgICIwLjAwNDI1OCwgMC4wMDQyNjMsIDAuMDA0Mjc0LCAwLjAwNDI3NiwgMC4wMDQyNzQsIDAuMDA0Mjc1LCAwLjAwNDI4MiIsIFwKLSAgICAgICAgICAiMC4wMDQyNTQsIDAuMDA0MjYsIDAuMDA0MjcyLCAwLjAwNDI3NywgMC4wMDQyNzYsIDAuMDA0Mjc5LCAwLjAwNDI3NyIsIFwKLSAgICAgICAgICAiMC4wMDQyNTksIDAuMDA0MjYzLCAwLjAwNDI3MywgMC4wMDQyNzYsIDAuMDA0Mjc3LCAwLjAwNDI3NiwgMC4wMDQyNzciLCBcCi0gICAgICAgICAgIjAuMDA0Mjg2LCAwLjAwNDI4MywgMC4wMDQyODEsIDAuMDA0MjgxLCAwLjAwNDI4MSwgMC4wMDQyOCwgMC4wMDQyNzkiLCBcCi0gICAgICAgICAgIjAuMDA0MzI3LCAwLjAwNDMxMywgMC4wMDQyOTUsIDAuMDA0MjkxLCAwLjAwNDI4NywgMC4wMDQyODMsIDAuMDA0MjgxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwODM3LCAwLjAwMDgzNywgMC4wMDA4MzcsIDAuMDAwODM3LCAwLjAwMDgzNywgMC4wMDA4MzYsIDAuMDAwODM2IiwgXAotICAgICAgICAgICIwLjAwMDc5OCwgMC4wMDA4LCAwLjAwMDgwMiwgMC4wMDA4MDMsIDAuMDAwODAzLCAwLjAwMDgwMywgMC4wMDA4MDMiLCBcCi0gICAgICAgICAgIjAuMDAwNzkyLCAwLjAwMDc5NCwgMC4wMDA3OTcsIDAuMDAwNzk3LCAwLjAwMDc5NywgMC4wMDA3OTcsIDAuMDAwNzk3IiwgXAotICAgICAgICAgICIwLjAwMDgwMywgMC4wMDA4MDIsIDAuMDAwNzk4LCAwLjAwMDc5OCwgMC4wMDA3OTcsIDAuMDAwNzk2LCAwLjAwMDc5NSIsIFwKLSAgICAgICAgICAiMC4wMDA4MjcsIDAuMDAwODIsIDAuMDAwODA2LCAwLjAwMDgwMiwgMC4wMDA4LCAwLjAwMDc5NywgMC4wMDA3OTYiLCBcCi0gICAgICAgICAgIjAuMDAwODkyLCAwLjAwMDg2NywgMC4wMDA4MjYsIDAuMDAwODE1LCAwLjAwMDgwOSwgMC4wMDA4MDMsIDAuMDAwODAxIiwgXAotICAgICAgICAgICIwLjAwMDk2OSwgMC4wMDA5MjYsIDAuMDAwODUzLCAwLjAwMDgzNSwgMC4wMDA4MjMsIDAuMDAwODExLCAwLjAwMDgwNyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkExIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDM4MTQsIDAuMDAzODE3LCAwLjAwMzgyMSwgMC4wMDM4MjEsIDAuMDAzODIyLCAwLjAwMzgyMiwgMC4wMDM4MjEiLCBcCi0gICAgICAgICAgIjAuMDAzNzksIDAuMDAzODAxLCAwLjAwMzgxOCwgMC4wMDM4MjEsIDAuMDAzODIxLCAwLjAwMzgyNCwgMC4wMDM4MjQiLCBcCi0gICAgICAgICAgIjAuMDAzNzY3LCAwLjAwMzc4MywgMC4wMDM4MTEsIDAuMDAzODE3LCAwLjAwMzgyLCAwLjAwMzgyMywgMC4wMDM4MjQiLCBcCi0gICAgICAgICAgIjAuMDAzNzU1LCAwLjAwMzc3MiwgMC4wMDM4MDQsIDAuMDAzODEzLCAwLjAwMzgxNywgMC4wMDM4MjEsIDAuMDAzODIyIiwgXAotICAgICAgICAgICIwLjAwMzc1NCwgMC4wMDM3NjksIDAuMDAzODAyLCAwLjAwMzgxLCAwLjAwMzgxNSwgMC4wMDM4MjEsIDAuMDAzODI0IiwgXAotICAgICAgICAgICIwLjAwMzc3NiwgMC4wMDM3ODIsIDAuMDAzODA0LCAwLjAwMzgxMiwgMC4wMDM4MTcsIDAuMDAzODIxLCAwLjAwMzgyMiIsIFwKLSAgICAgICAgICAiMC4wMDM4MTQsIDAuMDAzODA4LCAwLjAwMzgxNSwgMC4wMDM4MTksIDAuMDAzODIzLCAwLjAwMzgyMywgMC4wMDM4MjMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDA4MzcsIDAuMDAwODM3LCAwLjAwMDgzOCwgMC4wMDA4MzcsIDAuMDAwODM3LCAwLjAwMDgzNywgMC4wMDA4MzciLCBcCi0gICAgICAgICAgIjAuMDAwODAxLCAwLjAwMDgwMiwgMC4wMDA4MDQsIDAuMDAwODA1LCAwLjAwMDgwNCwgMC4wMDA4MDMsIDAuMDAwODAzIiwgXAotICAgICAgICAgICIwLjAwMDgxNiwgMC4wMDA4MDgsIDAuMDAwODAyLCAwLjAwMDgwMSwgMC4wMDA4LCAwLjAwMDc5OSwgMC4wMDA3OTgiLCBcCi0gICAgICAgICAgIjAuMDAwODQ1LCAwLjAwMDgzNCwgMC4wMDA4MTIsIDAuMDAwODA3LCAwLjAwMDgwNCwgMC4wMDA4MDEsIDAuMDAwNzk5IiwgXAotICAgICAgICAgICIwLjAwMDg5NCwgMC4wMDA4NywgMC4wMDA4MjksIDAuMDAwODE4LCAwLjAwMDgxMSwgMC4wMDA4MDQsIDAuMDAwODAyIiwgXAotICAgICAgICAgICIwLjAwMDk5NiwgMC4wMDA5NzMsIDAuMDAwODY0LCAwLjAwMDg0MiwgMC4wMDA4MjksIDAuMDAwODE1LCAwLjAwMDgxMSIsIFwKLSAgICAgICAgICAiMC4wMDExMTgsIDAuMDAxMDMyLCAwLjAwMDkwNSwgMC4wMDA4NzMsIDAuMDAwODUsIDAuMDAwODI4LCAwLjAwMDgyMiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDMzMTgsIDAuMDAzMzIxLCAwLjAwMzMyNSwgMC4wMDMzMjUsIDAuMDAzMzI1LCAwLjAwMzMyNSwgMC4wMDMzMjUiLCBcCi0gICAgICAgICAgIjAuMDAzMjkzLCAwLjAwMzMwMiwgMC4wMDMzMTcsIDAuMDAzMzIzLCAwLjAwMzMxOSwgMC4wMDMzMjIsIDAuMDAzMzIzIiwgXAotICAgICAgICAgICIwLjAwMzI4MSwgMC4wMDMyOTEsIDAuMDAzMzExLCAwLjAwMzMxNiwgMC4wMDMzMTksIDAuMDAzMzIxLCAwLjAwMzMyMSIsIFwKLSAgICAgICAgICAiMC4wMDMyODYsIDAuMDAzMjkyLCAwLjAwMzMwOCwgMC4wMDMzMTQsIDAuMDAzMzE3LCAwLjAwMzMxOSwgMC4wMDMzMiIsIFwKLSAgICAgICAgICAiMC4wMDMzMDcsIDAuMDAzMzA1LCAwLjAwMzMxMSwgMC4wMDMzMTUsIDAuMDAzMzE3LCAwLjAwMzMyLCAwLjAwMzMyIiwgXAotICAgICAgICAgICIwLjAwMzM2NSwgMC4wMDMzNDYsIDAuMDAzMzI3LCAwLjAwMzMyNSwgMC4wMDMzMjQsIDAuMDAzMzI0LCAwLjAwMzMyMyIsIFwKLSAgICAgICAgICAiMC4wMDM0MzUsIDAuMDAzNDAxLCAwLjAwMzM0OSwgMC4wMDMzMzksIDAuMDAzMzMzLCAwLjAwMzMyOSwgMC4wMDMzMjciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDAzMjksIDAuMDAwMzMxLCAwLjAwMDMzMywgMC4wMDAzMzMsIDAuMDAwMzMzLCAwLjAwMDMzMywgMC4wMDAzMzMiLCBcCi0gICAgICAgICAgIjAuMDAwMzI1LCAwLjAwMDMzLCAwLjAwMDMzNywgMC4wMDAzMzksIDAuMDAwMzQsIDAuMDAwMzQsIDAuMDAwMzQiLCBcCi0gICAgICAgICAgIjAuMDAwMzUxLCAwLjAwMDM0OSwgMC4wMDAzNDUsIDAuMDAwMzQ0LCAwLjAwMDM0NCwgMC4wMDAzNDMsIDAuMDAwMzQzIiwgXAotICAgICAgICAgICIwLjAwMDM2OSwgMC4wMDAzOTYsIDAuMDAwMzY1LCAwLjAwMDM1OCwgMC4wMDAzNTQsIDAuMDAwMzQ5LCAwLjAwMDM0OCIsIFwKLSAgICAgICAgICAiMC4wMDA0MTksIDAuMDAwNDE3LCAwLjAwMDM4NywgMC4wMDAzNzMsIDAuMDAwMzY0LCAwLjAwMDM1NiwgMC4wMDAzNTMiLCBcCi0gICAgICAgICAgIjAuMDAwNTI3LCAwLjAwMDUwMSwgMC4wMDA0MzUsIDAuMDAwNDA2LCAwLjAwMDM4OCwgMC4wMDAzNzIsIDAuMDAwMzY2IiwgXAotICAgICAgICAgICIwLjAwMDY2NywgMC4wMDA1NywgMC4wMDA0ODksIDAuMDAwNDQzLCAwLjAwMDQxNSwgMC4wMDAzOSwgMC4wMDAzODEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDMCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyODY1LCAwLjAwMjg2OSwgMC4wMDI4NzUsIDAuMDAyODc1LCAwLjAwMjg3NiwgMC4wMDI4NzUsIDAuMDAyODc0IiwgXAotICAgICAgICAgICIwLjAwMjg0LCAwLjAwMjg1LCAwLjAwMjg2OCwgMC4wMDI4NjksIDAuMDAyODcyLCAwLjAwMjg3MiwgMC4wMDI4NzIiLCBcCi0gICAgICAgICAgIjAuMDAyODUxLCAwLjAwMjg1LCAwLjAwMjg2MywgMC4wMDI4NjcsIDAuMDAyODcsIDAuMDAyODcyLCAwLjAwMjg3MiIsIFwKLSAgICAgICAgICAiMC4wMDI4ODgsIDAuMDAyODc4LCAwLjAwMjg3MiwgMC4wMDI4NzMsIDAuMDAyODczLCAwLjAwMjg3NCwgMC4wMDI4NzIiLCBcCi0gICAgICAgICAgIjAuMDAyOTM2LCAwLjAwMjkxNiwgMC4wMDI4ODQsIDAuMDAyODgsIDAuMDAyODc4LCAwLjAwMjg3NiwgMC4wMDI4NzUiLCBcCi0gICAgICAgICAgIjAuMDAzMDQ1LCAwLjAwMjk5NiwgMC4wMDI5MTksIDAuMDAyOTAyLCAwLjAwMjg5MywgMC4wMDI4ODUsIDAuMDAyODgzIiwgXAotICAgICAgICAgICIwLjAwMzE1OCwgMC4wMDMwODIsIDAuMDAyOTYyLCAwLjAwMjkzLCAwLjAwMjkxMiwgMC4wMDI4OTcsIDAuMDAyODkxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwMDA4LCAwLjAwMDAxMywgMC4wMDAwMTksIDAuMDAwMDIsIDAuMDAwMDIxLCAwLjAwMDAyMSwgMC4wMDAwMjEiLCBcCi0gICAgICAgICAgIjAuMDAwMDEsIDAuMDAwMDIyLCAwLjAwMDAzOSwgMC4wMDAwNDMsIDAuMDAwMDQ1LCAwLjAwMDA0OSwgMC4wMDAwNSIsIFwKLSAgICAgICAgICAiMC4wMDAwMzQsIDAuMDAwMDMxLCAwLjAwMDA0OCwgMC4wMDAwNDksIDAuMDAwMDUsIDAuMDAwMDUxLCAwLjAwMDA1MSIsIFwKLSAgICAgICAgICAiMC4wMDAwNTEsIDAuMDAwMDU2LCAwLjAwMDA2MiwgMC4wMDAwNiwgMC4wMDAwNTgsIDAuMDAwMDYsIDAuMDAwMDYiLCBcCi0gICAgICAgICAgIjAuMDAwMDg4LCAwLjAwMDExNiwgMC4wMDAwOCwgMC4wMDAwNzMsIDAuMDAwMDY4LCAwLjAwMDA2MywgMC4wMDAwNjQiLCBcCi0gICAgICAgICAgIjAuMDAwMjAyLCAwLjAwMDIwMiwgMC4wMDAxMTcsIDAuMDAwMTEyLCAwLjAwMDA5NiwgMC4wMDAwNzYsIDAuMDAwMDcyIiwgXAotICAgICAgICAgICIwLjAwMDMzOSwgMC4wMDAzMTMsIDAuMDAwMTYyLCAwLjAwMDEyNywgMC4wMDAxMDgsIDAuMDAwMDksIDAuMDAwMDg0Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogQU9JMjFYMiAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChBT0kyMVgyKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuNTU0MTc0OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNzY0NTQ7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNzU5NDU7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNzY0NTQ7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxMDQ4LCAwLjAwMTA0OCwgMC4wMDEwNDcsIDAuMDAxMDQ3LCAwLjAwMTA0NywgMC4wMDEwNDcsIDAuMDAxMDQ1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxMTA2LCAwLjAwMTA3LCAwLjAwMTA2LCAwLjAwMTA1MywgMC4wMDEwNTIsIDAuMDAxMDUyLCAwLjAwMTA1MyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQTEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTY5Mjk5OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTY4NDQ7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNjkyOTk7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNjUsIDAuMDAwNjQ5LCAwLjAwMDY0OSwgMC4wMDA2NDksIDAuMDAwNjQ4LCAwLjAwMDY0OCwgMC4wMDA2NDgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDExOTEsIDAuMDAxMTkyLCAwLjAwMTE5MiwgMC4wMDExOTIsIDAuMDAxMTkyLCAwLjAwMTE5MiwgMC4wMDExOTIiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE2NTI2MTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE2NTI2MTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE2NTI0ODsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxOTcsIDAuMDAwMTk3LCAwLjAwMDE5NywgMC4wMDAxOTcsIDAuMDAwMTk3LCAwLjAwMDE5NywgMC4wMDAxOTciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDExOTYsIDAuMDAxMTk2LCAwLjAwMTE5NiwgMC4wMDExOTUsIDAuMDAxMTk1LCAwLjAwMTE5NSwgMC4wMDExOTYiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4zNjU5OTU7Ci0gICAgZnVuY3Rpb24gOiAiKCEoKEEwIEExKStCMCkpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQyNTE1LCAwLjE4NDU2OSwgMC4yOTgyOTgsIDAuNDQwMjM4LCAwLjU4MjQxLCAwLjcyNDQzOCwgMC44NjYxMDUiLCBcCi0gICAgICAgICAgIjAuMDQ5MzEzLCAwLjE5MTUzNywgMC4zMDUyNzYsIDAuNDQ3MzksIDAuNTg4ODgzLCAwLjczMTA2MiwgMC44NzM5NCIsIFwKLSAgICAgICAgICAiMC4wNTY3MDQsIDAuMTk4OTIyLCAwLjMxMjYyMywgMC40NTQ1NTEsIDAuNTk2NTI5LCAwLjczODU3NywgMC44ODA4MDEiLCBcCi0gICAgICAgICAgIjAuMDYzNDcyLCAwLjIwNjMwNywgMC4zMTk4NDgsIDAuNDYxOTU2LCAwLjYwMzk4OCwgMC43NDU3MzQsIDAuODg4NzAyIiwgXAotICAgICAgICAgICIwLjA2OTE3OCwgMC4yMTM3MDEsIDAuMzI3MzQ0LCAwLjQ2OTQwOSwgMC42MTE3MjYsIDAuNzUzNjkyLCAwLjg5NTg3NiIsIFwKLSAgICAgICAgICAiMC4wNzY4NywgMC4yMjU0MSwgMC4zMzk0OTEsIDAuNDgxNTI3LCAwLjYyMzM3NiwgMC43NjU0MDQsIDAuOTA4MTgyIiwgXAotICAgICAgICAgICIwLjA4MjMwNiwgMC4yMzU4NjMsIDAuMzQ5NTU0LCAwLjQ5MTc3OSwgMC42MzQxNDUsIDAuNzc1ODc5LCAwLjkxNzk2OCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzQ0NTIsIDAuMzc2NDU5LCAwLjYxODM4NSwgMC45MjAxODgsIDEuMjIyNDcsIDEuNTI0MDgsIDEuODI1NzMiLCBcCi0gICAgICAgICAgIjAuMDc0OTIzLCAwLjM3NjU1LCAwLjYxODMwMywgMC45MjA0NjUsIDEuMjIyNjIsIDEuNTI0MDYsIDEuODI2NzgiLCBcCi0gICAgICAgICAgIjAuMDc4MTksIDAuMzc2NzExLCAwLjYxODExMiwgMC45MTk5ODIsIDEuMjIxOTksIDEuNTI0ODIsIDEuODI2MzUiLCBcCi0gICAgICAgICAgIjAuMDgzMTYzLCAwLjM3NzA1MiwgMC42MTgzMzMsIDAuOTIwMjQ3LCAxLjIyMTg4LCAxLjUyMzU5LCAxLjgyNjU4IiwgXAotICAgICAgICAgICIwLjA4OTE3NSwgMC4zNzg3NzgsIDAuNjE4NTI0LCAwLjkyMDQzNiwgMS4yMjIzMywgMS41MjM3NywgMS44MjY1MiIsIFwKLSAgICAgICAgICAiMC4wOTk1MDIsIDAuMzgzMjMxLCAwLjYyMDEzOCwgMC45MjAxMjcsIDEuMjIyNTQsIDEuNTIzODcsIDEuODI2MTYiLCBcCi0gICAgICAgICAgIjAuMTA3NjU1LCAwLjM4ODcxNSwgMC42MjM1MTEsIDAuOTIxMzk2LCAxLjIyMjIsIDEuNTIzNDksIDEuODI2ODEiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQwOTE5LCAwLjE3Mzk5OCwgMC4yODAwNDEsIDAuNDEyNjIzLCAwLjU0NDkxLCAwLjY3NzY0MSwgMC44MTAwNDYiLCBcCi0gICAgICAgICAgIjAuMDQ3NDExLCAwLjE4MDUxMiwgMC4yODY1NjksIDAuNDE4OTg2LCAwLjU1MTMxLCAwLjY4Mzc2OSwgMC44MTY0MjYiLCBcCi0gICAgICAgICAgIjAuMDU1NjM4LCAwLjE4ODkwNywgMC4yOTUwMzgsIDAuNDI3NTIxLCAwLjU1OTk1MiwgMC42OTIxNTIsIDAuODI0NzYxIiwgXAotICAgICAgICAgICIwLjA2MzI5NiwgMC4xOTcyNjYsIDAuMzAzMzIxLCAwLjQzNTc2MywgMC41Njg0MiwgMC43MDA1NjMsIDAuODMyOTUiLCBcCi0gICAgICAgICAgIjAuMDcwMDUxLCAwLjIwNTQwNSwgMC4zMTE1NzksIDAuNDQ0MjUxLCAwLjU3NjY2NiwgMC43MDkxMDUsIDAuODQxNDc0IiwgXAotICAgICAgICAgICIwLjA3OTEsIDAuMjE4NTc4LCAwLjMyNDgyLCAwLjQ1NzQ1MywgMC41OTAwOSwgMC43MjI2OTMsIDAuODU0NzY5IiwgXAotICAgICAgICAgICIwLjA4NjEyMiwgMC4yMzAyNywgMC4zMzYyNDcsIDAuNDY5MjcsIDAuNjAyMzk0LCAwLjczNTA5OCwgMC44Njc2NzIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDcwNjMyLCAwLjM0NDU3OCwgMC41NjM2MzIsIDAuODM3NzM4LCAxLjExMDk5LCAxLjM4NDc1LCAxLjY1ODA5IiwgXAotICAgICAgICAgICIwLjA3MTM3LCAwLjM0NDM0NCwgMC41NjMzNTksIDAuODM3MTI4LCAxLjExMDcxLCAxLjM4NDUsIDEuNjU4MTEiLCBcCi0gICAgICAgICAgIjAuMDc1NDE5LCAwLjM0NDM4OSwgMC41NjM2MywgMC44Mzc0NzQsIDEuMTExMDQsIDEuMzg0NDksIDEuNjU4MzYiLCBcCi0gICAgICAgICAgIjAuMDgwOTc3LCAwLjM0NTE3NiwgMC41NjM1NDQsIDAuODM3MTExLCAxLjExMTEsIDEuMzg0NTEsIDEuNjU3NDYiLCBcCi0gICAgICAgICAgIjAuMDg3NjY0LCAwLjM0NzIzOCwgMC41NjM4ODksIDAuODM3Mzk5LCAxLjExMDMxLCAxLjM4NDQxLCAxLjY1NzQ4IiwgXAotICAgICAgICAgICIwLjA5ODM5LCAwLjM1MjI5MSwgMC41NjYyMDUsIDAuODM3MzI2LCAxLjExMDkxLCAxLjM4NDE4LCAxLjY1NzQ0IiwgXAotICAgICAgICAgICIwLjEwNzA5OSwgMC4zNTgyMywgMC41NjkzNTIsIDAuODM5MjE1LCAxLjExMDg2LCAxLjM4NDIyLCAxLjY1ODA0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkExIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDA5MTksIDAuMTg0NTM4LCAwLjI5OTQyNiwgMC40NDMyMDUsIDAuNTg2NjUyLCAwLjcyOTc5MSwgMC44NzMxMTciLCBcCi0gICAgICAgICAgIjAuMDQ3NTM5LCAwLjE5MTQwNCwgMC4zMDYwOTUsIDAuNDQ5NTY2LCAwLjU5MzI3MiwgMC43MzY2OTQsIDAuODgxMTAzIiwgXAotICAgICAgICAgICIwLjA1NDc5OCwgMC4xOTg3MjksIDAuMzEzNzE2LCAwLjQ1NzAxMiwgMC42MDA0NTIsIDAuNzQ0MjkzLCAwLjg4Nzg0IiwgXAotICAgICAgICAgICIwLjA2MTI4MiwgMC4yMDU5NTUsIDAuMzIwNzcyLCAwLjQ2NDMyOCwgMC42MDc4NDYsIDAuNzUxMTA0LCAwLjg5NTQ5NCIsIFwKLSAgICAgICAgICAiMC4wNjY3NDIsIDAuMjEzMTc3LCAwLjMyODM2NywgMC40NzE3NywgMC42MTU0NjcsIDAuNzU4OTk4LCAwLjkwMzU0NiIsIFwKLSAgICAgICAgICAiMC4wNzQwODgsIDAuMjI1MTQsIDAuMzM5OTIyLCAwLjQ4MzU4NCwgMC42MjY5MDQsIDAuNzcwNSwgMC45MTQwNDkiLCBcCi0gICAgICAgICAgIjAuMDc5MTg2LCAwLjIzNTMwMSwgMC4zNTAwNjEsIDAuNDk0MjUyLCAwLjYzNzY2MSwgMC43ODA5NzksIDAuOTI0ODU1Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3MjcxLCAwLjM3ODM3MSwgMC42MjI3NjcsIDAuOTI4NDI5LCAxLjIzMzkyLCAxLjUzOTA0LCAxLjg0NDQ3IiwgXAotICAgICAgICAgICIwLjA3MzE1NCwgMC4zNzgwOTUsIDAuNjIyODMzLCAwLjkyODQ5NywgMS4yMzM2MSwgMS41MzkwNSwgMS44NDU1MiIsIFwKLSAgICAgICAgICAiMC4wNzYzOTMsIDAuMzc4MDcxLCAwLjYyMjUyOSwgMC45Mjg1MDIsIDEuMjMzMzEsIDEuNTM5OTQsIDEuODQ0NzMiLCBcCi0gICAgICAgICAgIjAuMDgxNDgyLCAwLjM3ODY2NSwgMC42MjI4NTYsIDAuOTI4NDg4LCAxLjIzMzMyLCAxLjU0MTY5LCAxLjg0NTIyIiwgXAotICAgICAgICAgICIwLjA4NzY3LCAwLjM4MDM5OCwgMC42MjI4MTUsIDAuOTI4NDg5LCAxLjIzMzYxLCAxLjUzOTE1LCAxLjg0NTc2IiwgXAotICAgICAgICAgICIwLjA5ODAzOSwgMC4zODUwMzEsIDAuNjI0NTc2LCAwLjkyODA5NywgMS4yMzQxLCAxLjUzODY5LCAxLjg0NDQ2IiwgXAotICAgICAgICAgICIwLjEwNjA4OCwgMC4zOTAzMjIsIDAuNjI4NjY0LCAwLjkyOTMwMSwgMS4yMzQwMiwgMS41NDE1MSwgMS44NDUxOSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzk1MTksIDAuMTcyNTIzLCAwLjI3ODcwNCwgMC40MTExMzMsIDAuNTQzNTM0LCAwLjY3NjEwNSwgMC44MDg2MjUiLCBcCi0gICAgICAgICAgIjAuMDQ3MDM4LCAwLjE4MDA4LCAwLjI4NjEyMiwgMC40MTg1MjcsIDAuNTUxMDYzLCAwLjY4MzI2OCwgMC44MTU2NiIsIFwKLSAgICAgICAgICAiMC4wNTY5NDEsIDAuMTg5NzMsIDAuMjk1Nzg2LCAwLjQyODE5NSwgMC41NjA1NywgMC42OTMyMiwgMC44MjU3MjIiLCBcCi0gICAgICAgICAgIjAuMDY2NDU2LCAwLjE5OTMzNCwgMC4zMDUyNDEsIDAuNDM3NzQzLCAwLjU3MDI2OCwgMC43MDI1NSwgMC44MzUyMDIiLCBcCi0gICAgICAgICAgIjAuMDc0NjEyLCAwLjIwOTE1MiwgMC4zMTUwNzUsIDAuNDQ3NDc4LCAwLjU3OTczNSwgMC43MTIxMzUsIDAuODQ0NjQ2IiwgXAotICAgICAgICAgICIwLjA4NTU2MiwgMC4yMjQ5MTUsIDAuMzMwNzUsIDAuNDYzMDM2LCAwLjU5NTM0OSwgMC43Mjc3LCAwLjg2MDMxNSIsIFwKLSAgICAgICAgICAiMC4wOTM5MzksIDAuMjM4OTg2LCAwLjM0NDQ3NywgMC40NzY2MzQsIDAuNjA4NTM0LCAwLjc0MTM2MywgMC44NzM4MzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDcwNjMsIDAuMzQ0NTQ4LCAwLjU2MzYxNiwgMC44MzczOSwgMS4xMTA5NiwgMS4zODQ2OCwgMS42NTgxNSIsIFwKLSAgICAgICAgICAiMC4wNzE3OTQsIDAuMzQ0MzQ3LCAwLjU2MzMxMiwgMC44MzcxMTEsIDEuMTEwOTQsIDEuMzg0NDYsIDEuNjU3NDQiLCBcCi0gICAgICAgICAgIjAuMDc3NzA4LCAwLjM0NDQ1NCwgMC41NjM0ODUsIDAuODM3MTc1LCAxLjExMDg1LCAxLjM4NDc0LCAxLjY1ODIyIiwgXAotICAgICAgICAgICIwLjA4NTkxOCwgMC4zNDUzNzUsIDAuNTYzNzIyLCAwLjgzNzIzMSwgMS4xMTA5OSwgMS4zODQ2OCwgMS42NTgzNCIsIFwKLSAgICAgICAgICAiMC4wOTQ3MjEsIDAuMzQ4MjQ4LCAwLjU2Mzc1NSwgMC44MzcyMDMsIDEuMTEwODIsIDEuMzg0NTMsIDEuNjU3OSIsIFwKLSAgICAgICAgICAiMC4xMDg0MzQsIDAuMzU1NzE4LCAwLjU2NjkwMywgMC44MzcyMzUsIDEuMTEwNzksIDEuMzg0NDcsIDEuNjU4MjQiLCBcCi0gICAgICAgICAgIjAuMTE4OTUyLCAwLjM2NDA0MSwgMC41NzE3ODksIDAuODM5MDE1LCAxLjExMDksIDEuMzg0NDMsIDEuNjU4MTgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjAiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzNzY1MywgMC4xNzk3OTQsIDAuMjk0MDQ5LCAwLjQzNzU0MSwgMC41ODE3MDQsIDAuNzI0NjExLCAwLjg2ODYzOCIsIFwKLSAgICAgICAgICAiMC4wNDUxNTUsIDAuMTg3NTUsIDAuMzAyMTA5LCAwLjQ0NTY2NCwgMC41ODg1NTcsIDAuNzMyNzgyLCAwLjg3NTc3OCIsIFwKLSAgICAgICAgICAiMC4wNTUwMTIsIDAuMTk3MTY5LCAwLjMxMTU3OSwgMC40NTUyNjMsIDAuNTk4MjI4LCAwLjc0MjA3NiwgMC44ODU3NSIsIFwKLSAgICAgICAgICAiMC4wNjQyODksIDAuMjA2NTQ3LCAwLjMyMDgwNSwgMC40NjQzMzEsIDAuNjA4MDA1LCAwLjc1MTIzLCAwLjg5NTI2MyIsIFwKLSAgICAgICAgICAiMC4wNzE5MDYsIDAuMjE2MTYyLCAwLjMzMDU2NSwgMC40NzQxODEsIDAuNjE3MzUxLCAwLjc2MDcwOCwgMC45MDQxNTYiLCBcCi0gICAgICAgICAgIjAuMDgxOTQ4LCAwLjIzMTg0OCwgMC4zNDU5MzUsIDAuNDg4NzM3LCAwLjYzMjc1MSwgMC43NzU5ODIsIDAuOTE5NDM1IiwgXAotICAgICAgICAgICIwLjA5MDAxLCAwLjI0NTcxOSwgMC4zNTk3MTQsIDAuNTAyOTU3LCAwLjY0NjM0NywgMC43ODk3NzIsIDAuOTMyOTQiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc0NDQ0LCAwLjM3ODA0OSwgMC42MjI4NDMsIDAuOTI3OTczLCAxLjIzNDE3LCAxLjUzOTA3LCAxLjg0NTI1IiwgXAotICAgICAgICAgICIwLjA3NTY1MiwgMC4zNzgyNTMsIDAuNjIyODc1LCAwLjkyODQ1NywgMS4yMzQxOCwgMS41Mzk2OCwgMS44NDQ1OSIsIFwKLSAgICAgICAgICAiMC4wODE4MzksIDAuMzc4NzAzLCAwLjYyMjU5LCAwLjkyODM4LCAxLjIzMzI1LCAxLjUzODYsIDEuODQ0NjUiLCBcCi0gICAgICAgICAgIjAuMDkwMDIxLCAwLjM3ODk3LCAwLjYyMzQ1MSwgMC45Mjc5NywgMS4yMzM2MiwgMS41Mzg5NiwgMS44NDUzOSIsIFwKLSAgICAgICAgICAiMC4wOTg3ODgsIDAuMzgxOTM4LCAwLjYyMjU1LCAwLjkyODAxNiwgMS4yMzQxOCwgMS41Mzk4MiwgMS44NDU1OSIsIFwKLSAgICAgICAgICAiMC4xMTIzMDEsIDAuMzg4OTIxLCAwLjYyNjI2OSwgMC45MjkzODQsIDEuMjMzNDQsIDEuNTQxNCwgMS44NDQwOSIsIFwKLSAgICAgICAgICAiMC4xMjE1NzgsIDAuMzk3MTQyLCAwLjYzMDg4OCwgMC45Mjk0MzMsIDEuMjM1NDIsIDEuNTM4OTMsIDEuODQ3NCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjA3NDIsIDAuMDk2Nzc5LCAwLjE1NzUxLCAwLjIzMzM2NCwgMC4zMDkxNCwgMC4zODQ5MzcsIDAuNDYwNjY4IiwgXAotICAgICAgICAgICIwLjAyOTE1OCwgMC4xMDUyMiwgMC4xNjU5NjQsIDAuMjQxODEzLCAwLjMxNzYyMSwgMC4zOTMzNywgMC40NjkwODQiLCBcCi0gICAgICAgICAgIjAuMDM4ODQsIDAuMTE1NTksIDAuMTc2MzE3LCAwLjI1MjE1OCwgMC4zMjc5NTMsIDAuNDAzNzIxLCAwLjQ3OTQyMyIsIFwKLSAgICAgICAgICAiMC4wNDU5NzYsIDAuMTI2Mzk5LCAwLjE4NzA5NSwgMC4yNjI4OTMsIDAuMzM4NjkxLCAwLjQxNDQyNywgMC40OTAxNzQiLCBcCi0gICAgICAgICAgIjAuMDUxNjc5LCAwLjEzNjk2NywgMC4xOTc0NjksIDAuMjczMjMzLCAwLjM0NzQ1MiwgMC40MjQ3NTEsIDAuNTAwNDc0IiwgXAotICAgICAgICAgICIwLjA1OTE5NiwgMC4xNTQxMjMsIDAuMjE0NjQ2LCAwLjI5MDMxLCAwLjM2NTk1MywgMC40NDE3NSwgMC41MTc0NDEiLCBcCi0gICAgICAgICAgIjAuMDY0NzUyLCAwLjE2OTE2LCAwLjIyOTY3LCAwLjMwNTIwNywgMC4zODA4NTcsIDAuNDU2NTI1LCAwLjUzMjIyMyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzgzNDksIDAuMTk1NDM3LCAwLjMyMTE4MiwgMC40Nzg1ODMsIDAuNjM1ODU5LCAwLjc5MzE2MSwgMC45NTAyNjMiLCBcCi0gICAgICAgICAgIjAuMDQxNzQ1LCAwLjE5NTQyOSwgMC4zMjEyNjcsIDAuNDc4NTIsIDAuNjM1NzIsIDAuNzkzMTg2LCAwLjk1MDUwMSIsIFwKLSAgICAgICAgICAiMC4wNTAxODUsIDAuMTk2Njg3LCAwLjMyMTE5OSwgMC40Nzg1NzEsIDAuNjM1NzMxLCAwLjc5MzE0MiwgMC45NTA0OTQiLCBcCi0gICAgICAgICAgIjAuMDU5NzcxLCAwLjIwMDc1NSwgMC4zMjI1MjYsIDAuNDc4MzA1LCAwLjYzNTcwOSwgMC43OTMxOTcsIDAuOTUwMTYiLCBcCi0gICAgICAgICAgIjAuMDY4NjkyLCAwLjIwNjkyOSwgMC4zMjYwMTYsIDAuNDc5NTcyLCAwLjYzNTk2MSwgMC43OTMxNTksIDAuOTUwNjgxIiwgXAotICAgICAgICAgICIwLjA4MTUyMywgMC4yMTgxNzYsIDAuMzM0MDY3LCAwLjQ4NDEzOSwgMC42Mzc2MywgMC43OTM0MTIsIDAuOTUwNjM2IiwgXAotICAgICAgICAgICIwLjA5MTU3NiwgMC4yMjk1MjQsIDAuMzQyNzM0LCAwLjQ5MDE1OSwgMC42NDE4NTEsIDAuNzk1NjAzLCAwLjk1MTE2MSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDYyODIsIDAuMDA2Mjg5LCAwLjAwNjI4OSwgMC4wMDYyOSwgMC4wMDYyOSwgMC4wMDYyODksIDAuMDA2Mjg5IiwgXAotICAgICAgICAgICIwLjAwNjIzOCwgMC4wMDYyNzEsIDAuMDA2Mjc1LCAwLjAwNjI3NywgMC4wMDYyNzgsIDAuMDA2Mjc4LCAwLjAwNjI3OSIsIFwKLSAgICAgICAgICAiMC4wMDYyMjQsIDAuMDA2MjY0LCAwLjAwNjI3LCAwLjAwNjI3MywgMC4wMDYyNzUsIDAuMDA2Mjc2LCAwLjAwNjI3NiIsIFwKLSAgICAgICAgICAiMC4wMDYyNDcsIDAuMDA2MjY4LCAwLjAwNjI3MywgMC4wMDYyNzIsIDAuMDA2Mjc2LCAwLjAwNjI3NiwgMC4wMDYyNzYiLCBcCi0gICAgICAgICAgIjAuMDA2MzAyLCAwLjAwNjI4NCwgMC4wMDYyODMsIDAuMDA2MjgyLCAwLjAwNjI4MiwgMC4wMDYyODEsIDAuMDA2MjgxIiwgXAotICAgICAgICAgICIwLjAwNjQ0NywgMC4wMDYzMzQsIDAuMDA2MzE5LCAwLjAwNjMwOCwgMC4wMDYzMDMsIDAuMDA2Mjk5LCAwLjAwNjI5NiIsIFwKLSAgICAgICAgICAiMC4wMDY2MzIsIDAuMDA2NDAyLCAwLjAwNjM2NSwgMC4wMDYzNDMsIDAuMDA2MzMxLCAwLjAwNjMyMSwgMC4wMDYzMTUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDEwNTcsIDAuMDAxMDYyLCAwLjAwMTA2MywgMC4wMDEwNjMsIDAuMDAxMDYyLCAwLjAwMTA2MiwgMC4wMDEwNjIiLCBcCi0gICAgICAgICAgIjAuMDAwOTc1LCAwLjAwMTAxMywgMC4wMDEwMTYsIDAuMDAxMDE5LCAwLjAwMTAyLCAwLjAwMTAyMSwgMC4wMDEwMjEiLCBcCi0gICAgICAgICAgIjAuMDAwOTY5LCAwLjAwMTAwMywgMC4wMDEwMDksIDAuMDAxMDEyLCAwLjAwMTAxMywgMC4wMDEwMTQsIDAuMDAxMDE0IiwgXAotICAgICAgICAgICIwLjAwMTAyMiwgMC4wMDEwMTQsIDAuMDAxMDE1LCAwLjAwMTAxNSwgMC4wMDEwMTUsIDAuMDAxMDE1LCAwLjAwMTAxNSIsIFwKLSAgICAgICAgICAiMC4wMDExMjMsIDAuMDAxMDQyLCAwLjAwMTAzMywgMC4wMDEwMjgsIDAuMDAxMDI0LCAwLjAwMTAyMiwgMC4wMDEwMjEiLCBcCi0gICAgICAgICAgIjAuMDAxMzUxLCAwLjAwMTExNSwgMC4wMDEwODMsIDAuMDAxMDY0LCAwLjAwMTA1MiwgMC4wMDEwNDUsIDAuMDAxMDQiLCBcCi0gICAgICAgICAgIjAuMDAxNTksIDAuMDAxMjAzLCAwLjAwMTE0NCwgMC4wMDExMDksIDAuMDAxMDkxLCAwLjAwMTA3NywgMC4wMDEwNjYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1MzM2LCAwLjAwNTM2LCAwLjAwNTM2MiwgMC4wMDUzNjIsIDAuMDA1MzY0LCAwLjAwNTM2NCwgMC4wMDUzNjUiLCBcCi0gICAgICAgICAgIjAuMDA1MjU5LCAwLjAwNTM0NiwgMC4wMDUzNTcsIDAuMDA1MzYzLCAwLjAwNTM2NywgMC4wMDUzNjcsIDAuMDA1MzY4IiwgXAotICAgICAgICAgICIwLjAwNTIxNiwgMC4wMDUzMjYsIDAuMDA1MzQ0LCAwLjAwNTM1NCwgMC4wMDUzNTksIDAuMDA1MzYzLCAwLjAwNTM2NSIsIFwKLSAgICAgICAgICAiMC4wMDUyMjgsIDAuMDA1MzIsIDAuMDA1MzM5LCAwLjAwNTM1MywgMC4wMDUzNTgsIDAuMDA1MzYzLCAwLjAwNTM2MiIsIFwKLSAgICAgICAgICAiMC4wMDUyNzYsIDAuMDA1MzI1LCAwLjAwNTM0MywgMC4wMDUzNTMsIDAuMDA1MzU4LCAwLjAwNTM2MSwgMC4wMDUzNjQiLCBcCi0gICAgICAgICAgIjAuMDA1NDIsIDAuMDA1MzY0LCAwLjAwNTM2NywgMC4wMDUzNjksIDAuMDA1MzcxLCAwLjAwNTM3MywgMC4wMDUzNzQiLCBcCi0gICAgICAgICAgIjAuMDA1NTk3LCAwLjAwNTQyMywgMC4wMDU0MDcsIDAuMDA1NCwgMC4wMDUzOTUsIDAuMDA1Mzk3LCAwLjAwNTM5MiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTA1LCAwLjAwMTA1OCwgMC4wMDEwNTgsIDAuMDAxMDU4LCAwLjAwMTA1OSwgMC4wMDEwNTgsIDAuMDAxMDU4IiwgXAotICAgICAgICAgICIwLjAwMDk4NiwgMC4wMDEwMTIsIDAuMDAxMDE1LCAwLjAwMTAxNiwgMC4wMDEwMTcsIDAuMDAxMDE3LCAwLjAwMTAxNyIsIFwKLSAgICAgICAgICAiMC4wMDEwNTksIDAuMDAxMDI0LCAwLjAwMTAyLCAwLjAwMTAxOSwgMC4wMDEwMTcsIDAuMDAxMDE3LCAwLjAwMTAxNiIsIFwKLSAgICAgICAgICAiMC4wMDExNzgsIDAuMDAxMDY0LCAwLjAwMTA0NiwgMC4wMDEwMzcsIDAuMDAxMDMxLCAwLjAwMTAyNywgMC4wMDEwMjUiLCBcCi0gICAgICAgICAgIjAuMDAxMzU3LCAwLjAwMTEwOSwgMC4wMDEwODUsIDAuMDAxMDYzLCAwLjAwMTA1MSwgMC4wMDEwNDQsIDAuMDAxMDM4IiwgXAotICAgICAgICAgICIwLjAwMTcxMiwgMC4wMDEyMzMsIDAuMDAxMTYsIDAuMDAxMTIzLCAwLjAwMTA5OCwgMC4wMDEwODIsIDAuMDAxMDcxIiwgXAotICAgICAgICAgICIwLjAwMTk0NiwgMC4wMDEzNTksIDAuMDAxMjUyLCAwLjAwMTE4NSwgMC4wMDExNTIsIDAuMDAxMTI5LCAwLjAwMTExMSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQyODQsIDAuMDA0MzE3LCAwLjAwNDMyLCAwLjAwNDMyMywgMC4wMDQzMjMsIDAuMDA0MzIzLCAwLjAwNDMyMyIsIFwKLSAgICAgICAgICAiMC4wMDQyMjgsIDAuMDA0Mjk1LCAwLjAwNDMwNSwgMC4wMDQzMTEsIDAuMDA0MzE1LCAwLjAwNDMxNiwgMC4wMDQzMTciLCBcCi0gICAgICAgICAgIjAuMDA0Mjg3LCAwLjAwNDI5NywgMC4wMDQzMDQsIDAuMDA0MzA5LCAwLjAwNDMxMiwgMC4wMDQzMTQsIDAuMDA0MzE2IiwgXAotICAgICAgICAgICIwLjAwNDQ0MSwgMC4wMDQzMywgMC4wMDQzMjgsIDAuMDA0MzIzLCAwLjAwNDMyMywgMC4wMDQzMjEsIDAuMDA0MzIyIiwgXAotICAgICAgICAgICIwLjAwNDY0LCAwLjAwNDM5MiwgMC4wMDQzNzEsIDAuMDA0MzU0LCAwLjAwNDM0NiwgMC4wMDQzNDEsIDAuMDA0MzM4IiwgXAotICAgICAgICAgICIwLjAwNTAxNCwgMC4wMDQ1MjQsIDAuMDA0NDUyLCAwLjAwNDQxOSwgMC4wMDQzOTEsIDAuMDA0Mzc3LCAwLjAwNDM2OCIsIFwKLSAgICAgICAgICAiMC4wMDUyOCwgMC4wMDQ2NTQsIDAuMDA0NTUsIDAuMDA0NDkyLCAwLjAwNDQ0OCwgMC4wMDQ0MjMsIDAuMDA0NDA3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwMDQxLCAwLjAwMDAzMiwgMC4wMDAwMzYsIDAuMDAwMDM4LCAwLjAwMDAzOSwgMC4wMDAwMzksIDAuMDAwMDQiLCBcCi0gICAgICAgICAgIjAuMDAwMTAxLCAwLjAwMDA0NiwgMC4wMDAwNTksIDAuMDAwMDY3LCAwLjAwMDA3LCAwLjAwMDA3MiwgMC4wMDAwNzQiLCBcCi0gICAgICAgICAgIjAuMDAwMDEzLCAwLjAwMDA2OSwgMC4wMDAwNzYsIDAuMDAwMDc5LCAwLjAwMDA4MSwgMC4wMDAwODIsIDAuMDAwMDgzIiwgXAotICAgICAgICAgICIwLjAwMDExOSwgMC4wMDAwODksIDAuMDAwMDg4LCAwLjAwMDA4OSwgMC4wMDAwODgsIDAuMDAwMDg4LCAwLjAwMDA4OCIsIFwKLSAgICAgICAgICAiMC4wMDAzNTcsIDAuMDAwMTcxLCAwLjAwMDE0NCwgMC4wMDAxMjcsIDAuMDAwMTE5LCAwLjAwMDExNCwgMC4wMDAxMTEiLCBcCi0gICAgICAgICAgIjAuMDAwNzMzLCAwLjAwMDMwMiwgMC4wMDAyMywgMC4wMDAxOTMsIDAuMDAwMTY5LCAwLjAwMDE1NiwgMC4wMDAxNDYiLCBcCi0gICAgICAgICAgIjAuMDAxMTIzLCAwLjAwMDQ1MSwgMC4wMDAzMzQsIDAuMDAwMjY0LCAwLjAwMDIyOSwgMC4wMDAyMDQsIDAuMDAwMTg3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IEFPSTIyMVgyICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChBT0kyMjFYMikgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjg2MDg1MTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQTApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTgwMjAxOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTc5NDk4OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTgwMjAxOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTA0OSwgMC4wMDEwNDgsIDAuMDAxMDQ3LCAwLjAwMTA0NywgMC4wMDEwNDcsIDAuMDAxMDQ3LCAwLjAwMTA0NyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTEwNSwgMC4wMDEwNjgsIDAuMDAxMDU5LCAwLjAwMTA1MywgMC4wMDEwNTIsIDAuMDAxMDUyLCAwLjAwMTA1MyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQTEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTY2NzkyOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTY1NzkzOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTY2NzkyOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDYxNSwgMC4wMDA2MTUsIDAuMDAwNjE0LCAwLjAwMDYxNCwgMC4wMDA2MTQsIDAuMDAwNjE0LCAwLjAwMDYxNCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTE5MSwgMC4wMDExOTEsIDAuMDAxMTkyLCAwLjAwMTE5MiwgMC4wMDExOTIsIDAuMDAxMTkyLCAwLjAwMTE5MiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQjApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTgwOTc2OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTgwNTE4OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTgwOTc2OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTA0OSwgMC4wMDEwNDgsIDAuMDAxMDQ4LCAwLjAwMTA0OCwgMC4wMDEwNDgsIDAuMDAxMDQ4LCAwLjAwMTA0OCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTEwMywgMC4wMDEwNjgsIDAuMDAxMDU5LCAwLjAwMTA1NSwgMC4wMDEwNTIsIDAuMDAxMDUsIDAuMDAxMDUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIxKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE3MzUzMzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE3MjczOTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE3MzUzMzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA1OTksIDAuMDAwNTk4LCAwLjAwMDU5OCwgMC4wMDA1OTgsIDAuMDAwNTk4LCAwLjAwMDU5OCwgMC4wMDA1OTgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDExOTEsIDAuMDAxMTkxLCAwLjAwMTE5MSwgMC4wMDExOTIsIDAuMDAxMTkyLCAwLjAwMTE5MSwgMC4wMDExOTEiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEMwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE2ODMwMzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE2ODMwMzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE2ODI4NTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyMDIsIDAuMDAwMjAyLCAwLjAwMDIwMiwgMC4wMDAyMDIsIDAuMDAwMjAyLCAwLjAwMDIwMiwgMC4wMDAyMDIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDExNjksIDAuMDAxMTY5LCAwLjAwMTE2OSwgMC4wMDExNjksIDAuMDAxMTY5LCAwLjAwMTE2OSwgMC4wMDExNjkiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4yNDY4NDE7Ci0gICAgZnVuY3Rpb24gOiAiKCEoKChBMCBBMSkrKEIwIEIxKSkrQzApKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTAiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3MzkyOCwgMC4yODI5MTQsIDAuNDUxMzgyLCAwLjY2MzgzMSwgMC44NzQ3NjgsIDEuMDg3MiwgMS4yOTgiLCBcCi0gICAgICAgICAgIjAuMDgwNjY1LCAwLjI4OTc2NSwgMC40NTg5NTYsIDAuNjcwMzQzLCAwLjg4MjA5MywgMS4wOTMwNiwgMS4zMDU4MSIsIFwKLSAgICAgICAgICAiMC4wODY4NzUsIDAuMjk2MjI2LCAwLjQ2NDk0LCAwLjY3NjI5NCwgMC44ODg0NzIsIDEuMDk5LCAxLjMxMiIsIFwKLSAgICAgICAgICAiMC4wOTIzMDYsIDAuMzAxNzE1LCAwLjQ3MDM2NSwgMC42ODIyMTUsIDAuODkzNTI0LCAxLjEwNTY0LCAxLjMxNjEyIiwgXAotICAgICAgICAgICIwLjA5NzMwOSwgMC4zMDY1NjUsIDAuNDc1NjE4LCAwLjY4Njk4NCwgMC44OTgxMiwgMS4xMDk1NSwgMS4zMjIxOCIsIFwKLSAgICAgICAgICAiMC4xMDQzMDksIDAuMzE0NjQ2LCAwLjQ4MzI2MywgMC42OTUyMTMsIDAuOTA2MzU3LCAxLjExNzcyLCAxLjMyOTAyIiwgXAotICAgICAgICAgICIwLjEwOTQyLCAwLjMyMTY3MywgMC40OTAyOTUsIDAuNzAxNTU4LCAwLjkxMzQyMiwgMS4xMjQzNCwgMS4zMzU3NiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMjM2NiwgMC41NzA0MDYsIDAuOTI5ODA1LCAxLjM3OTQ2LCAxLjgyODc1LCAyLjI3ODU1LCAyLjcyNjEiLCBcCi0gICAgICAgICAgIjAuMTIzNjE5LCAwLjU3MDY5NywgMC45MzAwNTksIDEuMzc5MTEsIDEuODI4NTEsIDIuMjc3NDUsIDIuNzI3MjciLCBcCi0gICAgICAgICAgIjAuMTI0NDE5LCAwLjU3MDQyMiwgMC45MzAxMzYsIDEuMzc5NDMsIDEuODI4NjEsIDIuMjc4ODMsIDIuNzI3ODgiLCBcCi0gICAgICAgICAgIjAuMTI2MzIxLCAwLjU3MDY0MSwgMC45MzAxNTMsIDEuMzc5MTUsIDEuODI4OTgsIDIuMjc4MDgsIDIuNzI3NTYiLCBcCi0gICAgICAgICAgIjAuMTI5MDAyLCAwLjU3MTA0MywgMC45Mjk4MDIsIDEuMzc5MDIsIDEuODI4NzIsIDIuMjc5MTcsIDIuNzI3MjEiLCBcCi0gICAgICAgICAgIjAuMTM0ODc2LCAwLjU3MjQ1NSwgMC45MzAzMzIsIDEuMzc5MTMsIDEuODI4MTEsIDIuMjc4NTYsIDIuNzMxMDMiLCBcCi0gICAgICAgICAgIjAuMTQxMDMxLCAwLjU3NDUwNSwgMC45MzA5MjgsIDEuMzc5MywgMS44MjgyNSwgMi4yNzgyOCwgMi43Mjk3MSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDg5ODgsIDAuMTgzNjY3LCAwLjI4OTk1NywgMC40MjI2MDMsIDAuNTU1MDU4LCAwLjY4NzkxMSwgMC44MTk5NzkiLCBcCi0gICAgICAgICAgIjAuMDU1NDY1LCAwLjE5MDE0MiwgMC4yOTY0NzUsIDAuNDI5MTA3LCAwLjU2MTYxNCwgMC42OTQwNDksIDAuODI2MzQ0IiwgXAotICAgICAgICAgICIwLjA2MzY4MiwgMC4xOTg1NiwgMC4zMDQ5NjIsIDAuNDM3NDk5LCAwLjU3MDMwNCwgMC43MDI1NTgsIDAuODM1MjE1IiwgXAotICAgICAgICAgICIwLjA3MTg5NywgMC4yMDY3NjEsIDAuMzEzNDI1LCAwLjQ0NjAxMSwgMC41Nzg4MDcsIDAuNzExMzM2LCAwLjg0MzQ2NyIsIFwKLSAgICAgICAgICAiMC4wNzkyODIsIDAuMjE0ODY4LCAwLjMyMTcxNCwgMC40NTQ0MDYsIDAuNTg2OTk2LCAwLjcxOTc2OCwgMC44NTIwMDgiLCBcCi0gICAgICAgICAgIjAuMDg5MzQsIDAuMjI4NDgzLCAwLjMzNDU5NCwgMC40Njc1MjksIDAuNTk5OTU2LCAwLjczMjczNiwgMC44NjQ5MTQiLCBcCi0gICAgICAgICAgIjAuMDk3MDE5LCAwLjIzOTk4NywgMC4zNDYxMSwgMC40NzkxMjIsIDAuNjExNjQ1LCAwLjc0NDE1OSwgMC44NzcwMDMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg2OTc3LCAwLjM2MDA4OCwgMC41Nzg4ODcsIDAuODUyNjAxLCAxLjEyNjM3LCAxLjM5OTksIDEuNjczNjUiLCBcCi0gICAgICAgICAgIjAuMDg3MjYzLCAwLjM2MDE0LCAwLjU3ODk1NSwgMC44NTI1MDEsIDEuMTI2MTEsIDEuMzk5ODEsIDEuNjczMjQiLCBcCi0gICAgICAgICAgIjAuMDkwNjIsIDAuMzYwMTMsIDAuNTc4OTkyLCAwLjg1MjUwNCwgMS4xMjYwOCwgMS4zOTk5MywgMS42NzM1MyIsIFwKLSAgICAgICAgICAiMC4wOTU3NTgsIDAuMzYwNjk5LCAwLjU3ODk4MiwgMC44NTI1MTksIDEuMTI2NDUsIDEuMzk5OSwgMS42NzM0MSIsIFwKLSAgICAgICAgICAiMC4xMDE3NzUsIDAuMzYyNDUsIDAuNTc5MjQ3LCAwLjg1MjUwOCwgMS4xMjYxMSwgMS4zOTk4MiwgMS42NzMyNSIsIFwKLSAgICAgICAgICAiMC4xMTI1MzIsIDAuMzY3NzA5LCAwLjU4MTI2OSwgMC44NTI4MTgsIDEuMTI2MzEsIDEuMzk5OTYsIDEuNjczNDYiLCBcCi0gICAgICAgICAgIjAuMTIxOTIyLCAwLjM3MzIxNywgMC41ODQ1ODYsIDAuODU0MTg1LCAxLjEyNjM3LCAxLjM5OTg4LCAxLjY3Mzk3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkExIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzE4OTIsIDAuMjgzNDQ1LCAwLjQ1NDQwMywgMC42Njk1MjYsIDAuODgzNTIyLCAxLjA5ODI0LCAxLjMxMjEiLCBcCi0gICAgICAgICAgIjAuMDc4NTM3LCAwLjI5MDY1OCwgMC40NjE2MDIsIDAuNjc1OTQ0LCAwLjg5MTIwNywgMS4xMDQ4NiwgMS4zMTgzNyIsIFwKLSAgICAgICAgICAiMC4wODQ2ODQsIDAuMjk2OTc2LCAwLjQ2ODI0NiwgMC42ODIxMTMsIDAuODk2MzQ3LCAxLjExMTE1LCAxLjMyNDcyIiwgXAotICAgICAgICAgICIwLjA5MDA1MiwgMC4zMDIzNDYsIDAuNDczNzc0LCAwLjY4NzgwOCwgMC45MDE5MzksIDEuMTE3NDcsIDEuMzMwMjMiLCBcCi0gICAgICAgICAgIjAuMDk0OTY2LCAwLjMwNzQxOSwgMC40Nzg2MSwgMC42OTMwMTUsIDAuOTA3MTQ3LCAxLjEyMTE1LCAxLjMzNjY2IiwgXAotICAgICAgICAgICIwLjEwMTgxLCAwLjMxNTQ1OSwgMC40ODY1NywgMC43MDA4OTUsIDAuOTE1MDAxLCAxLjEyOTE3LCAxLjM0Mzg3IiwgXAotICAgICAgICAgICIwLjEwNjg3OCwgMC4zMjI0NTcsIDAuNDkzMDc2LCAwLjcwNzQyMywgMC45MjE3MjQsIDEuMTM2MDMsIDEuMzUwNjYiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTIxMjQzLCAwLjU3MzAxOCwgMC45MzgwOTksIDEuMzkzNDcsIDEuODQ4MDUsIDIuMzAyODgsIDIuNzU4MzciLCBcCi0gICAgICAgICAgIjAuMTIxMjE0LCAwLjU3NDUwNCwgMC45MzgxNTMsIDEuMzk0ODksIDEuODQ5MDgsIDIuMzAzMTYsIDIuNzYxNTMiLCBcCi0gICAgICAgICAgIjAuMTIyMDQ5LCAwLjU3Mzc3LCAwLjkzNzcwMSwgMS4zOTQ0OCwgMS44NDg0OCwgMi4zMDMxMSwgMi43NjE1OSIsIFwKLSAgICAgICAgICAiMC4xMjQwMjcsIDAuNTczNzY1LCAwLjkzNzg1NywgMS4zOTMzOCwgMS44NTA2OCwgMi4zMDM5MywgMi43NjE2NyIsIFwKLSAgICAgICAgICAiMC4xMjY3MywgMC41NzQ0MTksIDAuOTM3NzM3LCAxLjM5Mjg1LCAxLjg0Nzc5LCAyLjMwNTA1LCAyLjc1ODA0IiwgXAotICAgICAgICAgICIwLjEzMjcyMiwgMC41NzU1MTcsIDAuOTM3OTE3LCAxLjM5Mjc4LCAxLjg1MDQsIDIuMzA1MDQsIDIuNzU4MTUiLCBcCi0gICAgICAgICAgIjAuMTM5MSwgMC41NzgwMjMsIDAuOTM5NjcyLCAxLjM5MzgyLCAxLjg0OTE5LCAyLjMwNTg3LCAyLjc1Nzk3Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0NzU0OCwgMC4xODIxNTcsIDAuMjg4NTA1LCAwLjQyMTE4MiwgMC41NTM2MjYsIDAuNjg2NDg2LCAwLjgxODU1NSIsIFwKLSAgICAgICAgICAiMC4wNTUwMzgsIDAuMTg5NjgsIDAuMjk2MDE1LCAwLjQyODYxNywgMC41NjExNzEsIDAuNjkzNDM2LCAwLjgyNjE1MSIsIFwKLSAgICAgICAgICAiMC4wNjQ2NTQsIDAuMTk5MTg3LCAwLjMwNTU3NCwgMC40MzgwNDMsIDAuNTcwNTg5LCAwLjcwMzA4NywgMC44MzU0ODIiLCBcCi0gICAgICAgICAgIjAuMDc0ODE3LCAwLjIwOTE0LCAwLjMxNTQzNSwgMC40NDgyMDQsIDAuNTgwNzEyLCAwLjcxMzY0MiwgMC44NDU1NTMiLCBcCi0gICAgICAgICAgIjAuMDg0MTEsIDAuMjE4NjQ4LCAwLjMyNDkyNCwgMC40NTc1MTgsIDAuNTkwMjE1LCAwLjcyMjU3LCAwLjg1NTAxNCIsIFwKLSAgICAgICAgICAiMC4wOTY0NzQsIDAuMjM0NDIxLCAwLjM0MDYyMSwgMC40NzMxMTMsIDAuNjA1NjM2LCAwLjczODExNywgMC44NzA1MjYiLCBcCi0gICAgICAgICAgIjAuMTA1ODM0LCAwLjI0ODQ5NSwgMC4zNTQyMjMsIDAuNDg2NjEsIDAuNjE4NjQ4LCAwLjc1MTk0MSwgMC44ODQwNzgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg3MDM1LCAwLjM2MDEzMiwgMC41Nzg5OTMsIDAuODUyNTgyLCAxLjEyNjM0LCAxLjM5OTk3LCAxLjY3MzYyIiwgXAotICAgICAgICAgICIwLjA4NzQ1OSwgMC4zNjAwNTIsIDAuNTc4OTY4LCAwLjg1MjU0NiwgMS4xMjYsIDEuMzk5NTcsIDEuNjczMjMiLCBcCi0gICAgICAgICAgIjAuMDkyNjM2LCAwLjM2MDAwOSwgMC41Nzg5ODgsIDAuODUyNTY4LCAxLjEyNjE1LCAxLjM5OTkxLCAxLjY3Mzc4IiwgXAotICAgICAgICAgICIwLjA5OTg2NiwgMC4zNjA3NzEsIDAuNTc4OTE4LCAwLjg1MjYxNSwgMS4xMjYxNiwgMS4zOTk4MywgMS42NzMzOSIsIFwKLSAgICAgICAgICAiMC4xMDg1NTksIDAuMzYzNDg5LCAwLjU3OTE0MiwgMC44NTI1MDYsIDEuMTI2MTQsIDEuMzk5OTEsIDEuNjczNDkiLCBcCi0gICAgICAgICAgIjAuMTIyOTM1LCAwLjM3MDQ5NSwgMC41ODIxNzEsIDAuODUyNjI3LCAxLjEyNjExLCAxLjM5OTg3LCAxLjY3Mzk0IiwgXAotICAgICAgICAgICIwLjEzNDMzNiwgMC4zNzg2NzEsIDAuNTg2ODU2LCAwLjg1NDMwMywgMS4xMjYxMywgMS4zOTk4MiwgMS42NzM5NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY4MDY1LCAwLjI3NzE1LCAwLjQ0NjY3MywgMC42NTg1MjUsIDAuODY5NDEsIDEuMDgyLCAxLjI5MzEyIiwgXAotICAgICAgICAgICIwLjA3NDczNiwgMC4yODQxOTcsIDAuNDUzMjI3LCAwLjY2NTMsIDAuODc3MTcxLCAxLjA4ODksIDEuMjk5OTIiLCBcCi0gICAgICAgICAgIjAuMDgyMjk2LCAwLjI5MTYxNSwgMC40NjA4MSwgMC42NzIyNTIsIDAuODg0MjU2LCAxLjA5NTgsIDEuMzA4NzciLCBcCi0gICAgICAgICAgIjAuMDg5NjgzLCAwLjI5ODk4OCwgMC40Njg0MDgsIDAuNjc5ODMsIDAuODkyNjI0LCAxLjEwMzE1LCAxLjMxNDYxIiwgXAotICAgICAgICAgICIwLjA5NzE3NSwgMC4zMDY3OSwgMC40NzYxMDIsIDAuNjg4NDAzLCAwLjg5OTAxNSwgMS4xMTA2OSwgMS4zMjMzMiIsIFwKLSAgICAgICAgICAiMC4xMDc2ODEsIDAuMzE4NTU5LCAwLjQ4ODQ5MiwgMC42OTk2NjIsIDAuOTExNTg5LCAxLjEyMzE4LCAxLjMzNDM0IiwgXAotICAgICAgICAgICIwLjExNTYwNCwgMC4zMjk0MTIsIDAuNDk4OTM0LCAwLjcxMDc0MSwgMC45MjIwODMsIDEuMTMzNjUsIDEuMzQ1NzMiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTIzNjQ1LCAwLjU2OTY0NywgMC45Mjg3MTQsIDEuMzc3MjksIDEuODI1ODUsIDIuMjc0MTUsIDIuNzIxNDMiLCBcCi0gICAgICAgICAgIjAuMTIzNjczLCAwLjU2OTk2LCAwLjkyODQxOSwgMS4zNzcyNSwgMS44MjU4OSwgMi4yNzQ2NSwgMi43MjE0IiwgXAotICAgICAgICAgICIwLjEyNTQ4NSwgMC41Njk4NDYsIDAuOTI4NzU5LCAxLjM3NzE0LCAxLjgyNTMyLCAyLjI3NDgsIDIuNzIzNDkiLCBcCi0gICAgICAgICAgIjAuMTI5MjA0LCAwLjU2OTkxLCAwLjkyODQ0NSwgMS4zNzcyLCAxLjgyNjIzLCAyLjI3MzMsIDIuNzIzMDkiLCBcCi0gICAgICAgICAgIjAuMTM0MjM0LCAwLjU3MDA4LCAwLjkyODQzMywgMS4zNzc1MiwgMS44MjU2OCwgMi4yNzQ4NCwgMi43MjI1NCIsIFwKLSAgICAgICAgICAiMC4xNDM5NzksIDAuNTcyNDc4LCAwLjkyODc5NSwgMS4zNzcyMSwgMS44MjUzMywgMi4yNzQ4MiwgMi43MjMzMSIsIFwKLSAgICAgICAgICAiMC4xNTI5NDUsIDAuNTc1NTk1LCAwLjkyOTY0NywgMS4zNzY5NCwgMS44MjU2MSwgMi4yNzQ3MSwgMi43MjE1NiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDMxNDYsIDAuMTc2NTI0LCAwLjI4MjYzNiwgMC40MTUwODQsIDAuNTQ3NDMxLCAwLjY3OTc3MSwgMC44MTIwOCIsIFwKLSAgICAgICAgICAiMC4wNDk3MzIsIDAuMTgzMjg2LCAwLjI4OTQ4NCwgMC40MjE4NjIsIDAuNTU0MjA2LCAwLjY4NjU1MywgMC44MTg5MjYiLCBcCi0gICAgICAgICAgIjAuMDU3OTE3LCAwLjE5MTYyMiwgMC4yOTc3OTgsIDAuNDMwMjMyLCAwLjU2MjYsIDAuNjk0OTEsIDAuODI3Mjg4IiwgXAotICAgICAgICAgICIwLjA2NTY1NSwgMC4xOTk5NzEsIDAuMzA2MzQzLCAwLjQzODgxNSwgMC41NzEyMSwgMC43MDM1MDcsIDAuODM1ODU2IiwgXAotICAgICAgICAgICIwLjA3MjQ4NiwgMC4yMDgwNSwgMC4zMTQ3OTQsIDAuNDQ3MDE4LCAwLjU3OTQ1OSwgMC43MTE4MjYsIDAuODQ0MTM3IiwgXAotICAgICAgICAgICIwLjA4MTg4OSwgMC4yMjEzNTYsIDAuMzI3NzAyLCAwLjQ2MDQwOCwgMC41OTI3NzgsIDAuNzI1MTg2LCAwLjg1NzQ3NCIsIFwKLSAgICAgICAgICAiMC4wODg3MzksIDAuMjMyODUxLCAwLjMzOTE0NCwgMC40NzIxODksIDAuNjA0NjcyLCAwLjczNzI1MywgMC44Njk4MyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzgyNDcsIDAuMzUxNzg5LCAwLjU3MDY0OCwgMC44NDQ0NzUsIDEuMTE3ODMsIDEuMzkxNTMsIDEuNjY0NzgiLCBcCi0gICAgICAgICAgIjAuMDc4ODMzLCAwLjM1MTc2OSwgMC41NzA2ODgsIDAuODQ0MTgyLCAxLjExODA5LCAxLjM5MTU5LCAxLjY2NDkyIiwgXAotICAgICAgICAgICIwLjA4MjY4NSwgMC4zNTE3ODksIDAuNTcwNjU0LCAwLjg0NDIwMiwgMS4xMTc4MywgMS4zOTEyNiwgMS42NjUxNyIsIFwKLSAgICAgICAgICAiMC4wODgxMTEsIDAuMzUyNTE5LCAwLjU3MDYwNSwgMC44NDQxNjIsIDEuMTE4MDIsIDEuMzkxNzMsIDEuNjY0NjMiLCBcCi0gICAgICAgICAgIjAuMDk0NTMxLCAwLjM1NDQwNiwgMC41NzA5NDYsIDAuODQ0MTU2LCAxLjExNzgyLCAxLjM5MTYzLCAxLjY2NDcxIiwgXAotICAgICAgICAgICIwLjEwNTUwMywgMC4zNTk0NjMsIDAuNTczMTI2LCAwLjg0NDQ1LCAxLjExNzg0LCAxLjM5MTQ3LCAxLjY2NDYiLCBcCi0gICAgICAgICAgIjAuMTE0Njc1LCAwLjM2NTI0NywgMC41NzY1MTYsIDAuODQ2MDg1LCAxLjExODE4LCAxLjM5MTYzLCAxLjY2NDc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIxIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjU3MTUsIDAuMjc3Njg5LCAwLjQ0OTAxNSwgMC42NjM2MiwgMC44Nzc0NTksIDEuMDkyMjQsIDEuMzA3MTIiLCBcCi0gICAgICAgICAgIjAuMDcyMjMsIDAuMjg0NDM3LCAwLjQ1NTYwMSwgMC42NzAxNDksIDAuODg0MzE2LCAxLjA5OTI0LCAxLjMxMjkiLCBcCi0gICAgICAgICAgIjAuMDc5NDkyLCAwLjI5MTcwNSwgMC40NjI5NzUsIDAuNjc3MTgzLCAwLjg5MTkyNSwgMS4xMDYwNiwgMS4zMjE0IiwgXAotICAgICAgICAgICIwLjA4Njg1MywgMC4yOTkxNTIsIDAuNDcwMzIsIDAuNjg0NTM4LCAwLjg5OTk0MywgMS4xMTMwNiwgMS4zMjkxMiIsIFwKLSAgICAgICAgICAiMC4wOTQwMDUsIDAuMzA2NTE0LCAwLjQ3Nzg1NiwgMC42OTIzMTIsIDAuOTA3Mzk1LCAxLjEyMTgyLCAxLjMzNDg5IiwgXAotICAgICAgICAgICIwLjEwNDA0NywgMC4zMTgxNTUsIDAuNDkwMDE1LCAwLjcwNDA0OCwgMC45MTg0NjUsIDEuMTMyODYsIDEuMzQ4NjMiLCBcCi0gICAgICAgICAgIjAuMTExNjYxLCAwLjMyODYxLCAwLjUwMDYzNSwgMC43MTQ4NSwgMC45Mjk4MzQsIDEuMTQzMzMsIDEuMzU4MTIiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTIxMTQ1LCAwLjU3MzkwMiwgMC45Mzc2NzUsIDEuMzkzMjcsIDEuODQ4MDYsIDIuMzA0MzgsIDIuNzU5MjQiLCBcCi0gICAgICAgICAgIjAuMTIxMjExLCAwLjU3NDM3MSwgMC45Mzc3NDEsIDEuMzkyODEsIDEuODQ4NjIsIDIuMzAzNTMsIDIuNzU4MzUiLCBcCi0gICAgICAgICAgIjAuMTIzMDU4LCAwLjU3MzU5MywgMC45MzkwNTcsIDEuMzkzNzQsIDEuODQ4MDIsIDIuMzAzODksIDIuNzU4OTkiLCBcCi0gICAgICAgICAgIjAuMTI2OTkyLCAwLjU3MzcwNSwgMC45Mzc5NzMsIDEuMzkzNDksIDEuODQ4NTgsIDIuMzA0OTUsIDIuNzU5NDUiLCBcCi0gICAgICAgICAgIjAuMTMxOTc1LCAwLjU3NDA0OCwgMC45Mzc2NjksIDEuMzkyOSwgMS44NDkwMSwgMi4zMDM2NiwgMi43NjIxNCIsIFwKLSAgICAgICAgICAiMC4xNDE3NDQsIDAuNTc2MjA0LCAwLjkzNzkwMSwgMS4zOTM2MywgMS44NTA1NSwgMi4zMDY4MSwgMi43NTk0IiwgXAotICAgICAgICAgICIwLjE1MDk0MywgMC41Nzk2MDUsIDAuOTM4ODE1LCAxLjM5Mjg5LCAxLjg0ODIyLCAyLjMwNjQ3LCAyLjc1ODE5Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0MTY0MSwgMC4xNzUwMjMsIDAuMjgxMTU2LCAwLjQxMzU3MSwgMC41NDU5LCAwLjY3ODI2NiwgMC44MTA2OTkiLCBcCi0gICAgICAgICAgIjAuMDQ5MjcxLCAwLjE4Mjc1MywgMC4yODg5MTcsIDAuNDIxMzA1LCAwLjU1MzY1OSwgMC42ODU5ODMsIDAuODE4MzA3IiwgXAotICAgICAgICAgICIwLjA1ODkwOSwgMC4xOTIyMjgsIDAuMjk4MzU5LCAwLjQzMDc4NSwgMC41NjMyMDMsIDAuNjk1NTIsIDAuODI3ODU4IiwgXAotICAgICAgICAgICIwLjA2ODc1OCwgMC4yMDIwMiwgMC4zMDgzMzcsIDAuNDQwODE2LCAwLjU3MzE5MywgMC43MDU0ODksIDAuODM3NzcxIiwgXAotICAgICAgICAgICIwLjA3NzM1MiwgMC4yMTE3NTEsIDAuMzE3NTA5LCAwLjQ0OTg4NCwgMC41ODIxNzcsIDAuNzE0NTE3LCAwLjg0Njc4OSIsIFwKLSAgICAgICAgICAiMC4wODg0NjgsIDAuMjI3MjE1LCAwLjMzMzE3OSwgMC40NjU0NDksIDAuNTk3NzMyLCAwLjczMDAzNSwgMC44NjIyOTEiLCBcCi0gICAgICAgICAgIjAuMDk2NzI5LCAwLjI0MTA3NCwgMC4zNDY3NjYsIDAuNDc5MDY3LCAwLjYxMDYxOCwgMC43NDM1MDQsIDAuODc1ODA1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3ODI1MywgMC4zNTE3NywgMC41NzA2OTQsIDAuODQ0MjM0LCAxLjExNzc4LCAxLjM5MTU0LCAxLjY2NDkxIiwgXAotICAgICAgICAgICIwLjA3OTE4MywgMC4zNTE3ODUsIDAuNTcwNjUsIDAuODQ0MTMsIDEuMTE3NzMsIDEuMzkxNjEsIDEuNjY0ODQiLCBcCi0gICAgICAgICAgIjAuMDg1MDE0LCAwLjM1MTY5OSwgMC41NzA2NTEsIDAuODQ0MjI3LCAxLjExNzgxLCAxLjM5MTM5LCAxLjY2NDYyIiwgXAotICAgICAgICAgICIwLjA5Mjg5NCwgMC4zNTI2NjIsIDAuNTcwNjU2LCAwLjg0NDI0OSwgMS4xMTc4NiwgMS4zOTE1MywgMS42NjUyNCIsIFwKLSAgICAgICAgICAiMC4xMDEyNDUsIDAuMzU1NTE0LCAwLjU3MDc5MiwgMC44NDQyMTMsIDEuMTE3ODIsIDEuMzkxNTUsIDEuNjY0NzEiLCBcCi0gICAgICAgICAgIjAuMTE1NjI4LCAwLjM2MjkzMiwgMC41NzQyMDEsIDAuODQ0Mzg0LCAxLjExNzgsIDEuMzkxNDYsIDEuNjY1MjUiLCBcCi0gICAgICAgICAgIjAuMTI3MzEzLCAwLjM3MTQ5OCwgMC41NzkxNTksIDAuODQ2MjEzLCAxLjExODA2LCAxLjM5MTU5LCAxLjY2NDk3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTg5NjQsIDAuMjY4MTA5LCAwLjQzOTE2OSwgMC42NTMxNzYsIDAuODY3NjgsIDEuMDgxOTksIDEuMjk3NCIsIFwKLSAgICAgICAgICAiMC4wNjYwMjEsIDAuMjc1MzYxLCAwLjQ0NjA4MSwgMC42NjAzMiwgMC44NzUyNjYsIDEuMDg5OTIsIDEuMzAzNjMiLCBcCi0gICAgICAgICAgIjAuMDc1MzUsIDAuMjg0NjI3LCAwLjQ1NTE3MywgMC42NjkzNTUsIDAuODg0Nzk2LCAxLjA5NzgyLCAxLjMxMzc3IiwgXAotICAgICAgICAgICIwLjA4NDcxNiwgMC4yOTM1MzksIDAuNDY0MjM1LCAwLjY3ODQ5OSwgMC44OTI2NTMsIDEuMTA3OTQsIDEuMzIwODMiLCBcCi0gICAgICAgICAgIjAuMDk0NDY3LCAwLjMwMjU1NywgMC40NzMxNjQsIDAuNjg4MDIyLCAwLjkwMTIzMiwgMS4xMTU5MiwgMS4zMzE1IiwgXAotICAgICAgICAgICIwLjEwNzgyNSwgMC4zMTcyNSwgMC40ODgwMjEsIDAuNzAyNjYzLCAwLjkxNjQ0NywgMS4xMzEyOCwgMS4zNDQ0NiIsIFwKLSAgICAgICAgICAiMC4xMTc5NTksIDAuMzMwNDg3LCAwLjUwMDcxMywgMC43MTQ3MjMsIDAuOTI4NzY5LCAxLjE0MzQ4LCAxLjM1ODMyIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEyMzI4MSwgMC41NzM2NjYsIDAuOTM4MjQ2LCAxLjM5MzQxLCAxLjg0ODAzLCAyLjMwMzkzLCAyLjc1OTQiLCBcCi0gICAgICAgICAgIjAuMTIyODY3LCAwLjU3NDMyMSwgMC45MzkwODIsIDEuMzk0NzgsIDEuODQ3OCwgMi4zMDQzMywgMi43NTgyOCIsIFwKLSAgICAgICAgICAiMC4xMjY1NywgMC41NzM1OTQsIDAuOTM3OTQ5LCAxLjM5MzQ3LCAxLjg0ODY5LCAyLjMwNTMyLCAyLjc1OTg2IiwgXAotICAgICAgICAgICIwLjEzMjg3NiwgMC41NzM2NDIsIDAuOTM3NzYyLCAxLjM5MzQxLCAxLjg1MDg0LCAyLjMwMzY1LCAyLjc2MTQ0IiwgXAotICAgICAgICAgICIwLjE0MDIxLCAwLjU3MzgwMywgMC45Mzg5MTgsIDEuMzkzMTIsIDEuODQ5MDksIDIuMzA2NzMsIDIuNzU5NzkiLCBcCi0gICAgICAgICAgIjAuMTUyNjY3LCAwLjU3NzksIDAuOTM3NjE5LCAxLjM5MzIxLCAxLjg0Nzk4LCAyLjMwMzM3LCAyLjc2MjI0IiwgXAotICAgICAgICAgICIwLjE2Mzg4OSwgMC41ODI0ODksIDAuOTM5NDUxLCAxLjM5NDQxLCAxLjg0ODYyLCAyLjMwMzEyLCAyLjc1NzkzIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyMTk1OSwgMC4wOTgyNCwgMC4xNTkxMzQsIDAuMjM1MTY4LCAwLjMxMTAxNiwgMC4zODY4MjYsIDAuNDYyNjA3IiwgXAotICAgICAgICAgICIwLjAzMDQzLCAwLjEwNjczOSwgMC4xNjc2NjIsIDAuMjQzNjY3LCAwLjMxOTU0NCwgMC4zOTUzNSwgMC40NzExMDciLCBcCi0gICAgICAgICAgIjAuMDQwNTI1LCAwLjExNzI1LCAwLjE3ODE0NywgMC4yNTQxNDEsIDAuMzMwMDMzLCAwLjQwNTg1NCwgMC40ODE2MDgiLCBcCi0gICAgICAgICAgIjAuMDQ3ODI3LCAwLjEyNzg1NiwgMC4xODg3MTcsIDAuMjY0Njg0LCAwLjM0MDU1NSwgMC40MTYyMTMsIDAuNDkxOTk0IiwgXAotICAgICAgICAgICIwLjA1MzgzLCAwLjEzODQ3OCwgMC4xOTkzLCAwLjI3NTIxOSwgMC4zNDkzODUsIDAuNDI2NzU4LCAwLjUwMjUwOCIsIFwKLSAgICAgICAgICAiMC4wNjE1NDksIDAuMTU1NTY2LCAwLjIxNjI3MSwgMC4yOTI1ODIsIDAuMzY3ODIsIDAuNDQzNjc1LCAwLjUxOTQwMSIsIFwKLSAgICAgICAgICAiMC4wNjcxNTMsIDAuMTcwNTc1LCAwLjIzMTIxNywgMC4zMDY5MTgsIDAuMzgyNjY3LCAwLjQ1ODM5OCwgMC41MzQxMzMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQzMTYyLCAwLjIwMDI5NywgMC4zMjYxMzQsIDAuNDgzNDgzLCAwLjY0MTAxMywgMC43OTgxODcsIDAuOTU1NDk1IiwgXAotICAgICAgICAgICIwLjA0NjI3NiwgMC4yMDAyODIsIDAuMzI2MTgyLCAwLjQ4MzYwNCwgMC42NDA5MDQsIDAuNzk4MDMzLCAwLjk1NTU3NiIsIFwKLSAgICAgICAgICAiMC4wNTQ1MDksIDAuMjAxNDg1LCAwLjMyNjIzOSwgMC40ODM0NTMsIDAuNjQxMDA0LCAwLjc5ODQ2NywgMC45NTU1NDYiLCBcCi0gICAgICAgICAgIjAuMDY0MTIzLCAwLjIwNTUxMywgMC4zMjc0OTQsIDAuNDgzNDI4LCAwLjY0MDk4MywgMC43OTg0NTEsIDAuOTU1Njc3IiwgXAotICAgICAgICAgICIwLjA3MzU1NCwgMC4yMTE1NjEsIDAuMzMwNjQ2LCAwLjQ4NDU0NiwgMC42NDA5OTMsIDAuNzk4Mjc2LCAwLjk1NTUyNSIsIFwKLSAgICAgICAgICAiMC4wODcwODUsIDAuMjIyNzg1LCAwLjMzODg0NywgMC40ODg5OCwgMC42NDI5NCwgMC43OTg2MTMsIDAuOTU1NjcyIiwgXAotICAgICAgICAgICIwLjA5ODA4NywgMC4yMzQyNTEsIDAuMzQ3NTU3LCAwLjQ5NTEwNiwgMC42NDY4MDIsIDAuODAwNzQ4LCAwLjk1NjI2NyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTA3NDUsIDAuMDEwNzUxLCAwLjAxMDc1MSwgMC4wMTA3NTEsIDAuMDEwNzUsIDAuMDEwNzQ5LCAwLjAxMDc0OSIsIFwKLSAgICAgICAgICAiMC4wMTA3MDMsIDAuMDEwNzMzLCAwLjAxMDczNywgMC4wMTA3MzgsIDAuMDEwNzM4LCAwLjAxMDczNywgMC4wMTA3MzgiLCBcCi0gICAgICAgICAgIjAuMDEwNjc3LCAwLjAxMDcyMSwgMC4wMTA3MjksIDAuMDEwNzMyLCAwLjAxMDczMywgMC4wMTA3MzQsIDAuMDEwNzM0IiwgXAotICAgICAgICAgICIwLjAxMDY2NywgMC4wMTA3MTQsIDAuMDEwNzIzLCAwLjAxMDcyOCwgMC4wMTA3MywgMC4wMTA3MzEsIDAuMDEwNzM0IiwgXAotICAgICAgICAgICIwLjAxMDY3MiwgMC4wMTA3MTIsIDAuMDEwNzIxLCAwLjAxMDcyNywgMC4wMTA3MywgMC4wMTA3MywgMC4wMTA3MzQiLCBcCi0gICAgICAgICAgIjAuMDEwNzEzLCAwLjAxMDcyMiwgMC4wMTA3MjksIDAuMDEwNzMxLCAwLjAxMDczMiwgMC4wMTA3MzMsIDAuMDEwNzMzIiwgXAotICAgICAgICAgICIwLjAxMDc4NSwgMC4wMTA3NDgsIDAuMDEwNzQ1LCAwLjAxMDc0NSwgMC4wMTA3NDMsIDAuMDEwNzQxLCAwLjAxMDczOSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjU0OSwgMC4wMDI1NDksIDAuMDAyNTQ4LCAwLjAwMjU0OCwgMC4wMDI1NDYsIDAuMDAyNTQ3LCAwLjAwMjU0NiIsIFwKLSAgICAgICAgICAiMC4wMDI0NjEsIDAuMDAyNDc3LCAwLjAwMjQ3OCwgMC4wMDI0NzksIDAuMDAyNDgxLCAwLjAwMjQ3OCwgMC4wMDI0NzgiLCBcCi0gICAgICAgICAgIjAuMDAyNDQxLCAwLjAwMjQ2LCAwLjAwMjQ2MywgMC4wMDI0NjQsIDAuMDAyNDY0LCAwLjAwMjQ2NCwgMC4wMDI0NjQiLCBcCi0gICAgICAgICAgIjAuMDAyNDcxLCAwLjAwMjQ2MywgMC4wMDI0NjMsIDAuMDAyNDYzLCAwLjAwMjQ2MiwgMC4wMDI0NjIsIDAuMDAyNDYxIiwgXAotICAgICAgICAgICIwLjAwMjUzNiwgMC4wMDI0ODIsIDAuMDAyNDc0LCAwLjAwMjQ2OSwgMC4wMDI0NjcsIDAuMDAyNDY1LCAwLjAwMjQ2MiIsIFwKLSAgICAgICAgICAiMC4wMDI3MDgsIDAuMDAyNTQ0LCAwLjAwMjUxNiwgMC4wMDI0OTgsIDAuMDAyNDg5LCAwLjAwMjQ4MywgMC4wMDI0NzciLCBcCi0gICAgICAgICAgIjAuMDAyOTA0LCAwLjAwMjYxNywgMC4wMDI1NjcsIDAuMDAyNTM2LCAwLjAwMjUxOCwgMC4wMDI1MDYsIDAuMDAyNTAxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwOTc2NCwgMC4wMDk3ODUsIDAuMDA5Nzg3LCAwLjAwOTc4NywgMC4wMDk3ODgsIDAuMDA5Nzg3LCAwLjAwOTc4NyIsIFwKLSAgICAgICAgICAiMC4wMDk2OTQsIDAuMDA5NzcyLCAwLjAwOTc4MiwgMC4wMDk3ODgsIDAuMDA5Nzg5LCAwLjAwOTc5MiwgMC4wMDk3OTIiLCBcCi0gICAgICAgICAgIjAuMDA5NjM2LCAwLjAwOTc0OCwgMC4wMDk3NjYsIDAuMDA5NzgzLCAwLjAwOTc4MSwgMC4wMDk3NzgsIDAuMDA5Nzg2IiwgXAotICAgICAgICAgICIwLjAwOTYwOCwgMC4wMDk3MjksIDAuMDA5NzU0LCAwLjAwOTc3MSwgMC4wMDk3NzksIDAuMDA5Nzc4LCAwLjAwOTc4MSIsIFwKLSAgICAgICAgICAiMC4wMDk2MDUsIDAuMDA5NzE2LCAwLjAwOTc0MywgMC4wMDk3NTksIDAuMDA5NzY5LCAwLjAwOTc3NywgMC4wMDk3NzgiLCBcCi0gICAgICAgICAgIjAuMDA5NjM4LCAwLjAwOTcxMiwgMC4wMDk3MzgsIDAuMDA5NzU1LCAwLjAwOTc2NSwgMC4wMDk3NzEsIDAuMDA5Nzc1IiwgXAotICAgICAgICAgICIwLjAwOTcwNywgMC4wMDk3MjcsIDAuMDA5NzQ2LCAwLjAwOTc2MSwgMC4wMDk3NzEsIDAuMDA5Nzc2LCAwLjAwOTc3NyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjU1NiwgMC4wMDI1NTcsIDAuMDAyNTU4LCAwLjAwMjU1NiwgMC4wMDI1NTcsIDAuMDAyNTU2LCAwLjAwMjU1NSIsIFwKLSAgICAgICAgICAiMC4wMDI0NzEsIDAuMDAyNDg0LCAwLjAwMjQ4NCwgMC4wMDI0ODYsIDAuMDAyNDgzLCAwLjAwMjQ4NSwgMC4wMDI0ODUiLCBcCi0gICAgICAgICAgIjAuMDAyNTA2LCAwLjAwMjQ4NSwgMC4wMDI0ODIsIDAuMDAyNDc5LCAwLjAwMjQ3OCwgMC4wMDI0NzYsIDAuMDAyNDc1IiwgXAotICAgICAgICAgICIwLjAwMjU2MSwgMC4wMDI0OTcsIDAuMDAyNDg4LCAwLjAwMjQ4MywgMC4wMDI0NzksIDAuMDAyNDc3LCAwLjAwMjQ3NCIsIFwKLSAgICAgICAgICAiMC4wMDI3MDUsIDAuMDAyNTQ2LCAwLjAwMjUyMiwgMC4wMDI1MDcsIDAuMDAyNDk3LCAwLjAwMjQ5MSwgMC4wMDI0ODYiLCBcCi0gICAgICAgICAgIjAuMDAzMDAxLCAwLjAwMjY0NywgMC4wMDI1ODgsIDAuMDAyNTU4LCAwLjAwMjUzNywgMC4wMDI1MjMsIDAuMDAyNTEzIiwgXAotICAgICAgICAgICIwLjAwMzMxOSwgMC4wMDI3NTksIDAuMDAyNjY4LCAwLjAwMjYxMSwgMC4wMDI1ODEsIDAuMDAyNTY0LCAwLjAwMjU0OCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDg1MDQsIDAuMDA4NTEsIDAuMDA4NTA5LCAwLjAwODUxLCAwLjAwODUwOSwgMC4wMDg1MDgsIDAuMDA4NTA3IiwgXAotICAgICAgICAgICIwLjAwODQ2MiwgMC4wMDg0OTIsIDAuMDA4NDk1LCAwLjAwODQ5NSwgMC4wMDg0OTYsIDAuMDA4NDk5LCAwLjAwODQ5NSIsIFwKLSAgICAgICAgICAiMC4wMDg0NDEsIDAuMDA4NDgsIDAuMDA4NDg3LCAwLjAwODQ5MSwgMC4wMDg0OTIsIDAuMDA4NDkyLCAwLjAwODQ5MyIsIFwKLSAgICAgICAgICAiMC4wMDg0NDcsIDAuMDA4NDc5LCAwLjAwODQ4NiwgMC4wMDg0OSwgMC4wMDg0OTEsIDAuMDA4NDkxLCAwLjAwODQ5IiwgXAotICAgICAgICAgICIwLjAwODQ3OCwgMC4wMDg0ODYsIDAuMDA4NDksIDAuMDA4NDkyLCAwLjAwODQ5MiwgMC4wMDg0OTUsIDAuMDA4NDkyIiwgXAotICAgICAgICAgICIwLjAwODU3NSwgMC4wMDg1MTYsIDAuMDA4NTEsIDAuMDA4NTA2LCAwLjAwODUwMiwgMC4wMDg1MDIsIDAuMDA4NSIsIFwKLSAgICAgICAgICAiMC4wMDg3MTEsIDAuMDA4NTY1LCAwLjAwODU0NSwgMC4wMDg1MywgMC4wMDg1MjEsIDAuMDA4NTE2LCAwLjAwODUxNCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTA5NiwgMC4wMDExMDIsIDAuMDAxMTAyLCAwLjAwMTEwMiwgMC4wMDExMDMsIDAuMDAxMTAyLCAwLjAwMTEwMiIsIFwKLSAgICAgICAgICAiMC4wMDEwNDQsIDAuMDAxMDk0LCAwLjAwMTEwMSwgMC4wMDExMDQsIDAuMDAxMTA1LCAwLjAwMTEwNiwgMC4wMDExMDciLCBcCi0gICAgICAgICAgIjAuMDAxMDIsIDAuMDAxMDg1LCAwLjAwMTA5NSwgMC4wMDExLCAwLjAwMTEwMywgMC4wMDExMDUsIDAuMDAxMTA1IiwgXAotICAgICAgICAgICIwLjAwMTA0NCwgMC4wMDEwOSwgMC4wMDEwOTgsIDAuMDAxMTAzLCAwLjAwMTEwNSwgMC4wMDExMDYsIDAuMDAxMTA3IiwgXAotICAgICAgICAgICIwLjAwMTExMSwgMC4wMDExMDgsIDAuMDAxMTExLCAwLjAwMTExMiwgMC4wMDExMTIsIDAuMDAxMTEyLCAwLjAwMTExMiIsIFwKLSAgICAgICAgICAiMC4wMDEyODcsIDAuMDAxMTYxLCAwLjAwMTE0OCwgMC4wMDExNDEsIDAuMDAxMTMzLCAwLjAwMTEyOSwgMC4wMDExMjYiLCBcCi0gICAgICAgICAgIjAuMDAxNDk0LCAwLjAwMTIzMywgMC4wMDExOTIsIDAuMDAxMTc1LCAwLjAwMTE2MywgMC4wMDExNTUsIDAuMDAxMTQ5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNzUwNSwgMC4wMDc1MjYsIDAuMDA3NTI3LCAwLjAwNzUyOCwgMC4wMDc1MjgsIDAuMDA3NTI4LCAwLjAwNzUyOCIsIFwKLSAgICAgICAgICAiMC4wMDc0MzQsIDAuMDA3NTEyLCAwLjAwNzUyMywgMC4wMDc1MjcsIDAuMDA3NTMsIDAuMDA3NTMxLCAwLjAwNzUzMyIsIFwKLSAgICAgICAgICAiMC4wMDczODIsIDAuMDA3NDksIDAuMDA3NTA1LCAwLjAwNzUxNiwgMC4wMDc1MiwgMC4wMDc1MjIsIDAuMDA3NTI0IiwgXAotICAgICAgICAgICIwLjAwNzM3MywgMC4wMDc0NzYsIDAuMDA3NDk4LCAwLjAwNzUxMywgMC4wMDc1MTcsIDAuMDA3NTIzLCAwLjAwNzUyNCIsIFwKLSAgICAgICAgICAiMC4wMDczOTgsIDAuMDA3NDc1LCAwLjAwNzQ5NSwgMC4wMDc1MDgsIDAuMDA3NTE1LCAwLjAwNzUyLCAwLjAwNzUyMyIsIFwKLSAgICAgICAgICAiMC4wMDc0OTMsIDAuMDA3NDkxLCAwLjAwNzUwNSwgMC4wMDc1MTQsIDAuMDA3NTIsIDAuMDA3NTIyLCAwLjAwNzUyNSIsIFwKLSAgICAgICAgICAiMC4wMDc2MjIsIDAuMDA3NTMxLCAwLjAwNzUyOSwgMC4wMDc1MywgMC4wMDc1MzIsIDAuMDA3NTMzLCAwLjAwNzUzMyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTA4OCwgMC4wMDEwOTUsIDAuMDAxMDk2LCAwLjAwMTA5NiwgMC4wMDEwOTYsIDAuMDAxMDk2LCAwLjAwMTA5NSIsIFwKLSAgICAgICAgICAiMC4wMDEwNTMsIDAuMDAxMDkxLCAwLjAwMTA5NiwgMC4wMDEwOTgsIDAuMDAxMDk5LCAwLjAwMTEsIDAuMDAxMSIsIFwKLSAgICAgICAgICAiMC4wMDEwOSwgMC4wMDExMDIsIDAuMDAxMTA0LCAwLjAwMTEwNCwgMC4wMDExMDQsIDAuMDAxMTAzLCAwLjAwMTEwMyIsIFwKLSAgICAgICAgICAiMC4wMDExNjEsIDAuMDAxMTIyLCAwLjAwMTExNCwgMC4wMDExMTMsIDAuMDAxMTExLCAwLjAwMTExLCAwLjAwMTEwOSIsIFwKLSAgICAgICAgICAiMC4wMDEyNCwgMC4wMDExNjMsIDAuMDAxMTYsIDAuMDAxMTQ0LCAwLjAwMTEzNSwgMC4wMDExMywgMC4wMDExMjUiLCBcCi0gICAgICAgICAgIjAuMDAxNDkxLCAwLjAwMTI3NywgMC4wMDEyMjMsIDAuMDAxMTk1LCAwLjAwMTE3NSwgMC4wMDExNjMsIDAuMDAxMTUzIiwgXAotICAgICAgICAgICIwLjAwMTc5MiwgMC4wMDEzODksIDAuMDAxMzA1LCAwLjAwMTI2LCAwLjAwMTIyNCwgMC4wMDEyMDQsIDAuMDAxMTg5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQzAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjY3OSwgMC4wMDY3MDYsIDAuMDA2NzExLCAwLjAwNjcxLCAwLjAwNjcxMSwgMC4wMDY3MSwgMC4wMDY3MDkiLCBcCi0gICAgICAgICAgIjAuMDA2NjIsIDAuMDA2NjgyLCAwLjAwNjY5MywgMC4wMDY2OTksIDAuMDA2NywgMC4wMDY3MDQsIDAuMDA2NzAyIiwgXAotICAgICAgICAgICIwLjAwNjY1NiwgMC4wMDY2NzYsIDAuMDA2Njg1LCAwLjAwNjY5MiwgMC4wMDY2OTUsIDAuMDA2Njk3LCAwLjAwNjY5OCIsIFwKLSAgICAgICAgICAiMC4wMDY3NzgsIDAuMDA2NzA3LCAwLjAwNjcwNSwgMC4wMDY3MDUsIDAuMDA2NzA2LCAwLjAwNjcwNywgMC4wMDY3MDYiLCBcCi0gICAgICAgICAgIjAuMDA2OTI2LCAwLjAwNjc1MywgMC4wMDY3MzYsIDAuMDA2NzI1LCAwLjAwNjcyMiwgMC4wMDY3MTcsIDAuMDA2NzE1IiwgXAotICAgICAgICAgICIwLjAwNzIxNCwgMC4wMDY4NiwgMC4wMDY4MDEsIDAuMDA2NzcsIDAuMDA2NzU0LCAwLjAwNjc0NywgMC4wMDY3MzgiLCBcCi0gICAgICAgICAgIjAuMDA3NDk4LCAwLjAwNjk3OSwgMC4wMDY4ODMsIDAuMDA2ODI3LCAwLjAwNjc5OCwgMC4wMDY3ODEsIDAuMDA2NzY3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwMDM1LCAwLjAwMDAzMSwgMC4wMDAwMzUsIDAuMDAwMDM2LCAwLjAwMDAzNywgMC4wMDAwMzgsIDAuMDAwMDM4IiwgXAotICAgICAgICAgICIwLjAwMDA2NSwgMC4wMDAwODMsIDAuMDAwMDk0LCAwLjAwMDEwMSwgMC4wMDAxMDQsIDAuMDAwMTA2LCAwLjAwMDEwNyIsIFwKLSAgICAgICAgICAiMC4wMDAwMzYsIDAuMDAwMTE5LCAwLjAwMDEyMiwgMC4wMDAxMjEsIDAuMDAwMTIsIDAuMDAwMTIxLCAwLjAwMDEyMiIsIFwKLSAgICAgICAgICAiMC4wMDAxODYsIDAuMDAwMTM4LCAwLjAwMDE0MywgMC4wMDAxNCwgMC4wMDAxMzksIDAuMDAwMTM4LCAwLjAwMDEzNyIsIFwKLSAgICAgICAgICAiMC4wMDAzMTMsIDAuMDAwMiwgMC4wMDAxODIsIDAuMDAwMTY4LCAwLjAwMDE2MSwgMC4wMDAxNTcsIDAuMDAwMTUzIiwgXAotICAgICAgICAgICIwLjAwMDYzOCwgMC4wMDAzNjksIDAuMDAwMjU5LCAwLjAwMDI1MSwgMC4wMDAyMDcsIDAuMDAwMTk1LCAwLjAwMDE4NyIsIFwKLSAgICAgICAgICAiMC4wMDA5ODYsIDAuMDAwNDUsIDAuMDAwMzUxLCAwLjAwMDI5MSwgMC4wMDAyNjEsIDAuMDAwMjM5LCAwLjAwMDIyNCIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBBT0kyMjJYMSAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoQU9JMjIyWDEpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC40NzU4NTY7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA5NDQ4OTc7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwOTQxNTMxOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDk0NDg5NzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA1MjQsIDAuMDAwNTI0LCAwLjAwMDUyNCwgMC4wMDA1MjQsIDAuMDAwNTI0LCAwLjAwMDUyNCwgMC4wMDA1MjQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA1NTIsIDAuMDAwNTMzLCAwLjAwMDUyOSwgMC4wMDA1MjYsIDAuMDAwNTI2LCAwLjAwMDUyNiwgMC4wMDA1MjciKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEExKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA5NDYxNzc7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwOTQxMTk1OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDk0NjE3NzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyOTgsIDAuMDAwMjk3LCAwLjAwMDI5NywgMC4wMDAyOTcsIDAuMDAwMjk3LCAwLjAwMDI5NywgMC4wMDAyOTciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA1OTUsIDAuMDAwNTk2LCAwLjAwMDU5NiwgMC4wMDA1OTYsIDAuMDAwNTk2LCAwLjAwMDU5NiwgMC4wMDA1OTYiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA5NjY1MDQ7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwOTYzOTAzOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDk2NjUwNDsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA1MjQsIDAuMDAwNTI0LCAwLjAwMDUyNCwgMC4wMDA1MjQsIDAuMDAwNTI0LCAwLjAwMDUyNCwgMC4wMDA1MjQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA1NTEsIDAuMDAwNTMyLCAwLjAwMDUyOCwgMC4wMDA1MjYsIDAuMDAwNTI2LCAwLjAwMDUyNSwgMC4wMDA1MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIxKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA5ODYwMDY7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwOTgxNzUzOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDk4NjAwNjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyNzYsIDAuMDAwMjc2LCAwLjAwMDI3NiwgMC4wMDAyNzYsIDAuMDAwMjc1LCAwLjAwMDI3NiwgMC4wMDAyNzYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA1OTUsIDAuMDAwNTk2LCAwLjAwMDU5NiwgMC4wMDA1OTYsIDAuMDAwNTk2LCAwLjAwMDU5NiwgMC4wMDA1OTYiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEMwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA5NjAwMTU7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwOTYwMDE1OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDk1ODQwNTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA1MjUsIDAuMDAwNTI0LCAwLjAwMDUyNCwgMC4wMDA1MjQsIDAuMDAwNTI0LCAwLjAwMDUyNCwgMC4wMDA1MjQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA1NTIsIDAuMDAwNTM1LCAwLjAwMDUzLCAwLjAwMDUyOCwgMC4wMDA1MjcsIDAuMDAwNTI1LCAwLjAwMDUyNiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQzEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDk4Nzg4OTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA5ODc4Nzc7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwOTg3ODg5OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDMxOCwgMC4wMDAzMTcsIDAuMDAwMzE3LCAwLjAwMDMxNywgMC4wMDAzMTcsIDAuMDAwMzE4LCAwLjAwMDMxOCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDU5NSwgMC4wMDA1OTUsIDAuMDAwNTk2LCAwLjAwMDU5NiwgMC4wMDA1OTYsIDAuMDAwNTk2LCAwLjAwMDU5NiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjEyNTk2OwotICAgIGZ1bmN0aW9uIDogIighKCgoQzAgQzEpKyhBMCBBMSkpKyhCMCBCMSkpKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTAiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEyMjg2NCwgMC4xNzI1NjEsIDAuNDU2MjM4LCAwLjcwNzU0NiwgMS4wNDI2NywgMS43MTE0MywgMi4xMzIxNiIsIFwKLSAgICAgICAgICAiMC4xMjk2MzYsIDAuMTc5NDE1LCAwLjQ2MzA2MiwgMC43MTQ3NjcsIDEuMDQ5MDMsIDEuNzE4OTUsIDIuMTM5NDUiLCBcCi0gICAgICAgICAgIjAuMTM1OTkxLCAwLjE4NTc4NSwgMC40NjkxMjUsIDAuNzIwMTQyLCAxLjA1NDc3LCAxLjcyNjY2LCAyLjE0Mjk1IiwgXAotICAgICAgICAgICIwLjE0MTUxOCwgMC4xOTEyNzQsIDAuNDc0NzQ2LCAwLjcyNjA3NywgMS4wNjE2NiwgMS43MzE3NCwgMi4xNDkxMiIsIFwKLSAgICAgICAgICAiMC4xNDY3MTksIDAuMTk2NDg1LCAwLjQ3OTc0MSwgMC43MzE1MTEsIDEuMDY1ODgsIDEuNzM1ODYsIDIuMTU1NTYiLCBcCi0gICAgICAgICAgIjAuMTU0OTM1LCAwLjIwNDYwOSwgMC40ODgwOTksIDAuNzM5MDMxLCAxLjA3NDYzLCAxLjc0NTg0LCAyLjE2MTk2IiwgXAotICAgICAgICAgICIwLjE2MTcyOSwgMC4yMTE2MTMsIDAuNDk0NjU4LCAwLjc0NTcyMywgMS4wODA4MSwgMS43NTMwNywgMi4xNjkxNyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMjA0NjcsIDAuMzI1ODQzLCAwLjkyODUyMywgMS40NTk4NCwgMi4xNjgzOCwgMy41ODUxNywgNC40NzE0MSIsIFwKLSAgICAgICAgICAiMC4yMjA0OCwgMC4zMjU5MjMsIDAuOTI4NDc5LCAxLjQ2MDIsIDIuMTY3MiwgMy41ODQ2NywgNC40NzE4NiIsIFwKLSAgICAgICAgICAiMC4yMjA2MzYsIDAuMzI1ODgyLCAwLjkyODA5MiwgMS40NTk3NSwgMi4xNjkwMSwgMy41ODU2MSwgNC40NzMyNiIsIFwKLSAgICAgICAgICAiMC4yMjE1NjcsIDAuMzI2NDAzLCAwLjkyODA2NCwgMS40NTk0MSwgMi4xNjgyNSwgMy41ODQ2NiwgNC40NzEyNSIsIFwKLSAgICAgICAgICAiMC4yMjMzNTQsIDAuMzI3NTk1LCAwLjkyODM1NiwgMS40NTk2NSwgMi4xNjczNCwgMy41ODU0MywgNC40NjkxNCIsIFwKLSAgICAgICAgICAiMC4yMjczNjUsIDAuMzMwNTA1LCAwLjkyODI1NCwgMS40NiwgMi4xNjc4MiwgMy41ODU0MSwgNC40NzE5OCIsIFwKLSAgICAgICAgICAiMC4yMzE4NjEsIDAuMzMzOTY4LCAwLjkyOTU0LCAxLjQ1OTUyLCAyLjE2ODIsIDMuNTg2MzUsIDQuNDY4NzYiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDgxNTkxLCAwLjExMzgyMywgMC4yOTQ0NzIsIDAuNDUzMjcyLCAwLjY2NDk0NSwgMS4wODgxNCwgMS4zNTIyNSIsIFwKLSAgICAgICAgICAiMC4wODgxOTYsIDAuMTIwMzY5LCAwLjMwMDkwNSwgMC40NTk2MjIsIDAuNjcxMTQ5LCAxLjA5NDA5LCAxLjM1ODMxIiwgXAotICAgICAgICAgICIwLjA5NjQwNCwgMC4xMjg2NTYsIDAuMzA5Mjg5LCAwLjQ2ODEyLCAwLjY3OTQ4MSwgMS4xMDIzMywgMS4zNjcyNCIsIFwKLSAgICAgICAgICAiMC4xMDQ3NDEsIDAuMTM2ODM2LCAwLjMxNzYyNiwgMC40NzY2NjgsIDAuNjg4MDI0LCAxLjExMDg0LCAxLjM3NTg5IiwgXAotICAgICAgICAgICIwLjExMzE3NSwgMC4xNDUxNzQsIDAuMzI2MTEsIDAuNDg1MDY5LCAwLjY5NjQ1MywgMS4xMTk0LCAxLjM4MzU2IiwgXAotICAgICAgICAgICIwLjEyNTc5NCwgMC4xNTg4ODQsIDAuMzM5Mzc4LCAwLjQ5ODA4NSwgMC43MTAxLCAxLjEzMzE0LCAxLjM5NzM2IiwgXAotICAgICAgICAgICIwLjEzNTgzNCwgMC4xNjk5NDcsIDAuMzUwNjE5LCAwLjUxMDAwMiwgMC43MjIwMywgMS4xNDQ3NiwgMS40MDkxNiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNDk2NjksIDAuMjE0NjA4LCAwLjU4MzQ3MywgMC45MDkyMTEsIDEuMzQzNDUsIDIuMjExNjMsIDIuNzUzOTUiLCBcCi0gICAgICAgICAgIjAuMTQ5NjA0LCAwLjIxNDU4OCwgMC41ODM1NTksIDAuOTA5MTgzLCAxLjM0MzMxLCAyLjIxMjE4LCAyLjc1MzgzIiwgXAotICAgICAgICAgICIwLjE1MTIyNSwgMC4yMTUyMjYsIDAuNTgzNDI3LCAwLjkwOTA0OSwgMS4zNDMxNSwgMi4yMTE4OSwgMi43NTQ1MSIsIFwKLSAgICAgICAgICAiMC4xNTQ5MSwgMC4yMTc2MTIsIDAuNTgzNTksIDAuOTA5MTY3LCAxLjM0MzM3LCAyLjIxMTg1LCAyLjc1NDkiLCBcCi0gICAgICAgICAgIjAuMTU5NzM4LCAwLjIyMTI2MywgMC41ODM3NzYsIDAuOTA5MTIzLCAxLjM0MzM2LCAyLjIxMTY4LCAyLjc1MzU0IiwgXAotICAgICAgICAgICIwLjE2ODY5NywgMC4yMjkxODUsIDAuNTg2MDM0LCAwLjkwOTIyNywgMS4zNDMzOSwgMi4yMTIwNSwgMi43NTM1NSIsIFwKLSAgICAgICAgICAiMC4xNzc1MzUsIDAuMjM2NjQ2LCAwLjU4ODg5LCAwLjkxMDE4OCwgMS4zNDMzOCwgMi4yMTIsIDIuNzUzNjMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEyMDYzNiwgMC4xNzA2MzcsIDAuNDU2MTQ1LCAwLjcwODg1NywgMS4wNDU2NSwgMS43MjA3MywgMi4xNDMyMyIsIFwKLSAgICAgICAgICAiMC4xMjczNTUsIDAuMTc3NTAxLCAwLjQ2MzAyOCwgMC43MTY0MTUsIDEuMDUyODgsIDEuNzI4NjQsIDIuMTUwNjQiLCBcCi0gICAgICAgICAgIjAuMTMzNjE5LCAwLjE4Mzg0LCAwLjQ2ODkxNywgMC43MjE2OTUsIDEuMDU4ODQsIDEuNzM0MSwgMi4xNTQyNyIsIFwKLSAgICAgICAgICAiMC4xMzkwOCwgMC4xODkyMjksIDAuNDc0NjYxLCAwLjcyNzQ3MywgMS4wNjU1NywgMS43NDAxNSwgMi4xNjEzNiIsIFwKLSAgICAgICAgICAiMC4xNDQyMzcsIDAuMTk0NDA1LCAwLjQ3OTYxMiwgMC43MzI2MDEsIDEuMDY5OSwgMS43NDM3MSwgMi4xNjY2MSIsIFwKLSAgICAgICAgICAiMC4xNTI0MTUsIDAuMjAyNDkzLCAwLjQ4Nzg0MiwgMC43NDA3NDIsIDEuMDc4NTYsIDEuNzU0MzQsIDIuMTczMTkiLCBcCi0gICAgICAgICAgIjAuMTU5MTI0LCAwLjIwOTUsIDAuNDk0NTYzLCAwLjc0NzkxMiwgMS4wODQ5LCAxLjc2MTQxLCAyLjE4MDI2Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIxNzczNywgMC4zMjM3MjEsIDAuOTMwMjU1LCAxLjQ2NDkyLCAyLjE3ODMzLCAzLjYwNzA4LCA0LjQ5NTc4IiwgXAotICAgICAgICAgICIwLjIxNzczNywgMC4zMjM3NDksIDAuOTMwMjEzLCAxLjQ2NTQ0LCAyLjE3NzczLCAzLjYwNTA4LCA0LjQ5NzI1IiwgXAotICAgICAgICAgICIwLjIxNzc5MiwgMC4zMjM2NjksIDAuOTMwMjcxLCAxLjQ2NDg5LCAyLjE3ODM0LCAzLjYwMzMxLCA0LjQ5NzY1IiwgXAotICAgICAgICAgICIwLjIxODg3LCAwLjMyNDE0LCAwLjkyOTc4OCwgMS40NjUxMiwgMi4xNzgyLCAzLjYwNCwgNC40OTUzMSIsIFwKLSAgICAgICAgICAiMC4yMjA2ODgsIDAuMzI1MzY1LCAwLjkzMDI4NCwgMS40NjUwOCwgMi4xNzc4NCwgMy42MDU5OCwgNC40OTc2MyIsIFwKLSAgICAgICAgICAiMC4yMjQ3MzUsIDAuMzI4Mzg1LCAwLjkzMDE5NCwgMS40NjUxOSwgMi4xNzc3NiwgMy42MDQ5MiwgNC40OTgzNCIsIFwKLSAgICAgICAgICAiMC4yMjkzNSwgMC4zMzE4NzcsIDAuOTMxMjY1LCAxLjQ2NTA5LCAyLjE3ODU1LCAzLjYwNTY3LCA0LjUwMTE1Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4MDA2OCwgMC4xMTIyODQsIDAuMjkyNzIsIDAuNDUxNDQxLCAwLjY2MzA1NiwgMS4wODYwNywgMS4zNTA2NCIsIFwKLSAgICAgICAgICAiMC4wODc2MjYsIDAuMTE5ODAzLCAwLjMwMDMyMSwgMC40NTkwNDIsIDAuNjcwNTE5LCAxLjA5MzM5LCAxLjM1NzQ4IiwgXAotICAgICAgICAgICIwLjA5NzEyNSwgMC4xMjkyOTUsIDAuMzA5ODQ2LCAwLjQ2ODY1OCwgMC42ODA0NTYsIDEuMTAzMzcsIDEuMzY3MDEiLCBcCi0gICAgICAgICAgIjAuMTA3MTU4LCAwLjEzOTI3NiwgMC4zMTk3OCwgMC40Nzg1NTIsIDAuNjkwMTA3LCAxLjExMzUzLCAxLjM3NzA0IiwgXAotICAgICAgICAgICIwLjExNjk4NCwgMC4xNDkxMjEsIDAuMzI5MjksIDAuNDg4MDczLCAwLjY5OTUwMiwgMS4xMjI4MiwgMS4zODY2MiIsIFwKLSAgICAgICAgICAiMC4xMzI5MDMsIDAuMTY1MDgxLCAwLjM0NTAyMiwgMC41MDE2OTEsIDAuNzE1MDQ3LCAxLjEzODY5LCAxLjQwMjA5IiwgXAotICAgICAgICAgICIwLjE0NTc5OSwgMC4xNzkyMTksIDAuMzU4NjYyLCAwLjUxNzI1MiwgMC43Mjg2OTksIDEuMTUxOTQsIDEuNDE2NjIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTQ5NjY0LCAwLjIxNDY3MiwgMC41ODM1OSwgMC45MDkyNTIsIDEuMzQzMjcsIDIuMjEyMDEsIDIuNzU0MzgiLCBcCi0gICAgICAgICAgIjAuMTQ5NTM0LCAwLjIxNDYzMiwgMC41ODM1NTMsIDAuOTA5MDI1LCAxLjM0MzIyLCAyLjIxMTg1LCAyLjc1NDQ2IiwgXAotICAgICAgICAgICIwLjE1MjA2MSwgMC4yMTUzMzEsIDAuNTgzNTM2LCAwLjkwOTA0NywgMS4zNDM0NiwgMi4yMTE1MywgMi43NTM2NiIsIFwKLSAgICAgICAgICAiMC4xNTcyNjgsIDAuMjE4ODEzLCAwLjU4MzUxLCAwLjkwOTE3MywgMS4zNDMzNCwgMi4yMTE4NywgMi43NTQyOCIsIFwKLSAgICAgICAgICAiMC4xNjQyMTIsIDAuMjI0MTc3LCAwLjU4MzYxMywgMC45MDkxMjMsIDEuMzQzMzMsIDIuMjEyMTcsIDIuNzUzNTEiLCBcCi0gICAgICAgICAgIjAuMTc2OTA4LCAwLjIzNDk2MSwgMC41ODY1NjQsIDAuOTA5MDUxLCAxLjM0MzQxLCAyLjIxMTg4LCAyLjc1MzU3IiwgXAotICAgICAgICAgICIwLjE4OTA3MiwgMC4yNDU3MjMsIDAuNTkxMjM3LCAwLjkxMDM5LCAxLjM0MzMyLCAyLjIxMjExLCAyLjc1MzY3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTcxMjgsIDAuMTY2NzcyLCAwLjQ0OTg5MSwgMC43MDIzNTksIDEuMDQwMzEsIDEuNzE1MDYsIDIuMTM2NjYiLCBcCi0gICAgICAgICAgIjAuMTI0MTI2LCAwLjE3MzgwMSwgMC40NTY4NjUsIDAuNzA5MzE0LCAxLjA0NzIsIDEuNzIwMDksIDIuMTQ0MyIsIFwKLSAgICAgICAgICAiMC4xMzE3MzIsIDAuMTgxNTM3LCAwLjQ2NDkwNiwgMC43MTY2ODksIDEuMDU0NzksIDEuNzMwMDUsIDIuMTUwMyIsIFwKLSAgICAgICAgICAiMC4xMzkyMzQsIDAuMTg4OTMxLCAwLjQ3MjA4OSwgMC43MjQyNDcsIDEuMDYxMjEsIDEuNzM1OSwgMi4xNTkxIiwgXAotICAgICAgICAgICIwLjE0NjcyOCwgMC4xOTY0MDUsIDAuNDc5NTQ4LCAwLjczMjA0NSwgMS4wNzAwMSwgMS43NDM4OCwgMi4xNjQ5MiIsIFwKLSAgICAgICAgICAiMC4xNTg5MywgMC4yMDg1ODMsIDAuNDkxNzc1LCAwLjc0MzgyLCAxLjA4MTA3LCAxLjc1NTQxLCAyLjE3NjkzIiwgXAotICAgICAgICAgICIwLjE2OTY0MiwgMC4yMTk0NTksIDAuNTAyMDE3LCAwLjc1NDY5NiwgMS4wOTI3NywgMS43NjYwNiwgMi4xODk0Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIyMDQ3OCwgMC4zMjU5NzUsIDAuOTMwMDQ4LCAxLjQ2NDczLCAyLjE3ODgyLCAzLjYwNTg3LCA0LjQ5NjM5IiwgXAotICAgICAgICAgICIwLjIyMDQ5OCwgMC4zMjYwMDIsIDAuOTMwMDkzLCAxLjQ2NDcsIDIuMTc4MzYsIDMuNjA5MDYsIDQuNDk2MzUiLCBcCi0gICAgICAgICAgIjAuMjIwODQ1LCAwLjMyNTk5OCwgMC45Mjk5NjEsIDEuNDY1MDMsIDIuMTc4MTksIDMuNjA1MjYsIDQuNDk0MyIsIFwKLSAgICAgICAgICAiMC4yMjI2MzgsIDAuMzI2ODY1LCAwLjkzMDA1OSwgMS40NjQ1LCAyLjE4MDEsIDMuNjA1MDIsIDQuNDk2NjIiLCBcCi0gICAgICAgICAgIjAuMjI1ODI0LCAwLjMyODY1MiwgMC45MzAyNTksIDEuNDY0NzEsIDIuMTc4NjksIDMuNjAzMDQsIDQuNDk2NjQiLCBcCi0gICAgICAgICAgIjAuMjMyNjk5LCAwLjMzNDA5MSwgMC45MzAzODcsIDEuNDY1LCAyLjE3ODQyLCAzLjYwNTE4LCA0LjQ5NjY1IiwgXAotICAgICAgICAgICIwLjI0MDI3OSwgMC4zMzk2MiwgMC45MzA4MSwgMS40NjQ5NSwgMi4xNzgzMywgMy42MDMyMywgNC40OTY1NCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzQ4MjEsIDAuMTA2ODI1LCAwLjI4NzA0NSwgMC40NDU1NiwgMC42NTY5NDksIDEuMDc5OTQsIDEuMzQzNTUiLCBcCi0gICAgICAgICAgIjAuMDgxNTM2LCAwLjExMzU4NCwgMC4yOTM4NzUsIDAuNDUyNDEsIDAuNjYzNjk3LCAxLjA4NjI0LCAxLjM1MDI3IiwgXAotICAgICAgICAgICIwLjA4OTc3NCwgMC4xMjE4NzUsIDAuMzAyMzE5LCAwLjQ2MDc4MiwgMC42NzIxMjMsIDEuMDk0NTksIDEuMzU4ODkiLCBcCi0gICAgICAgICAgIjAuMDk4MDIzLCAwLjEzMDExNywgMC4zMTA2OTksIDAuNDY5MzA3LCAwLjY4MDU2MywgMS4xMDMxMiwgMS4zNjgwMyIsIFwKLSAgICAgICAgICAiMC4xMDYzNTksIDAuMTM4MzQ0LCAwLjMxOTM4OCwgMC40Nzc5OTIsIDAuNjg4OTc0LCAxLjExMTgyLCAxLjM3NTg3IiwgXAotICAgICAgICAgICIwLjExODQ2NiwgMC4xNTE2ODgsIDAuMzMyNDc0LCAwLjQ5MTI1NCwgMC43MDI2NjUsIDEuMTI1NzEsIDEuMzg5NDUiLCBcCi0gICAgICAgICAgIjAuMTI4MTg5LCAwLjE2MzEyMSwgMC4zNDM2NjcsIDAuNTAzMjU4LCAwLjcxNTA3NCwgMS4xMzc2NCwgMS40MDIyNyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNDEwNiwgMC4yMDYxMzgsIDAuNTc1MTk5LCAwLjkwMDgwOSwgMS4zMzUxOSwgMi4yMDMyNCwgMi43NDU1NSIsIFwKLSAgICAgICAgICAiMC4xNDExMDEsIDAuMjA2MTMzLCAwLjU3NTE5NiwgMC45MDA3NDksIDEuMzM0OSwgMi4yMDI0NiwgMi43NDUxOCIsIFwKLSAgICAgICAgICAiMC4xNDMwMjYsIDAuMjA2ODk2LCAwLjU3NTIwNywgMC45MDA5MDUsIDEuMzM1MzUsIDIuMjAzMTQsIDIuNzQ1NjgiLCBcCi0gICAgICAgICAgIjAuMTQ2OTI5LCAwLjIwOTQ0OSwgMC41NzUxOTMsIDAuOTAwODI2LCAxLjMzNDg3LCAyLjIwMzExLCAyLjc0NTIxIiwgXAotICAgICAgICAgICIwLjE1MTk1MiwgMC4yMTMyNjUsIDAuNTc1NDM2LCAwLjkwMDc2MSwgMS4zMzQ5NCwgMi4yMDMxMywgMi43NDU0NiIsIFwKLSAgICAgICAgICAiMC4xNjExMTcsIDAuMjIxMjM2LCAwLjU3Nzg0OSwgMC45MDA4OSwgMS4zMzQ3NywgMi4yMDI5MywgMi43NDUyNyIsIFwKLSAgICAgICAgICAiMC4xNzA1NzEsIDAuMjI5MTI5LCAwLjU4MDgyNCwgMC45MDE4NDcsIDEuMzM0ODgsIDIuMjAzMTgsIDIuNzQ1MzYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExNTIyLCAwLjE2NTU2NCwgMC40NTA1OTEsIDAuNzAyOTU3LCAxLjA0MDUxLCAxLjcxNDc4LCAyLjEzODA3IiwgXAotICAgICAgICAgICIwLjEyMjEwMywgMC4xNzI1NDcsIDAuNDU3MzQyLCAwLjcwOTQ0MywgMS4wNDY5MiwgMS43MjI0OCwgMi4xNDQ2NyIsIFwKLSAgICAgICAgICAiMC4xMjk1NywgMC4xODAwNiwgMC40NjQ5NzgsIDAuNzE3MDkyLCAxLjA1NTA5LCAxLjcyOTY2LCAyLjE1MjEyIiwgXAotICAgICAgICAgICIwLjEzNjkwOCwgMC4xODc0MiwgMC40NzI3NTUsIDAuNzI0NjI3LCAxLjA2MTY0LCAxLjczNjM4LCAyLjE1OTUxIiwgXAotICAgICAgICAgICIwLjE0NDI0NiwgMC4xOTQ2MzUsIDAuNDc5ODMsIDAuNzMxOTMxLCAxLjA3MDM3LCAxLjc0NDI5LCAyLjE2NTg5IiwgXAotICAgICAgICAgICIwLjE1NjE4NCwgMC4yMDcwMjcsIDAuNDkyMDg2LCAwLjc0NDEzNiwgMS4wODE0MywgMS43NTc1OCwgMi4xNzc4MyIsIFwKLSAgICAgICAgICAiMC4xNjY2NiwgMC4yMTcyNzcsIDAuNTAyMzM3LCAwLjc1NTE2LCAxLjA5MjI1LCAxLjc2NjIyLCAyLjE4OTQ4Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIxOTM5NCwgMC4zMjU3MDEsIDAuOTI5NTc5LCAxLjQ2NDY2LCAyLjE3ODczLCAzLjYwNDg5LCA0LjQ5NzI3IiwgXAotICAgICAgICAgICIwLjIxOTI2NSwgMC4zMjU3MDYsIDAuOTI5Nzc2LCAxLjQ2NDc5LCAyLjE3Njg5LCAzLjYwNDYzLCA0LjQ5NzAxIiwgXAotICAgICAgICAgICIwLjIxOTY2LCAwLjMyNTcyMiwgMC45Mjk4MzEsIDEuNDY0NzgsIDIuMTc3NzgsIDMuNjA0NjUsIDQuNDk2NjkiLCBcCi0gICAgICAgICAgIjAuMjIxNDU1LCAwLjMyNjYwMywgMC45Mjk3MDYsIDEuNDY0MTYsIDIuMTc5NTksIDMuNjA0NywgNC40OTYzIiwgXAotICAgICAgICAgICIwLjIyNDY2MywgMC4zMjgyODIsIDAuOTI5ODc3LCAxLjQ2NTIxLCAyLjE3ODMzLCAzLjYwMjY5LCA0LjQ5Mzg4IiwgXAotICAgICAgICAgICIwLjIzMTUyNiwgMC4zMzM2OTcsIDAuOTI5OTUsIDEuNDY0NywgMi4xNzgxLCAzLjYwNTIyLCA0LjQ5Mzc4IiwgXAotICAgICAgICAgICIwLjIzOTA4OSwgMC4zMzkyODUsIDAuOTMwOTU0LCAxLjQ2NDgzLCAyLjE3NzE5LCAzLjYwOTExLCA0LjQ5NTY5Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3MzE5MSwgMC4xMDUxNzgsIDAuMjg1NDExLCAwLjQ0Mzk0MiwgMC42NTUyMTIsIDEuMDc3OTcsIDEuMzQyNjUiLCBcCi0gICAgICAgICAgIjAuMDgwNzk2LCAwLjExMjkwMSwgMC4yOTMyMDQsIDAuNDUxNzA1LCAwLjY2Mjk4OCwgMS4wODU1MywgMS4zNDk1NCIsIFwKLSAgICAgICAgICAiMC4wOTA1MSwgMC4xMjI1MTYsIDAuMzAyNzQyLCAwLjQ2MTMwMiwgMC42NzI1OTEsIDEuMDk1MTIsIDEuMzU5NjkiLCBcCi0gICAgICAgICAgIjAuMTAwMTgxLCAwLjEzMjA2OCwgMC4zMTI0NTUsIDAuNDcwNzIzLCAwLjY4MTk3NywgMS4xMDUwNywgMS4zNjg2MSIsIFwKLSAgICAgICAgICAiMC4xMTAxODUsIDAuMTQyMDg3LCAwLjMyMjE5NywgMC40ODA0ODEsIDAuNjkxNzE5LCAxLjExNDQ1LCAxLjM3ODI2IiwgXAotICAgICAgICAgICIwLjEyNTY2NiwgMC4xNTc5MTMsIDAuMzM3NjkzLCAwLjQ5NTQ3NCwgMC43MDcxOTksIDEuMTI5ODYsIDEuMzkzNjciLCBcCi0gICAgICAgICAgIjAuMTM3NDQ2LCAwLjE3MTkyMywgMC4zNTEyNjIsIDAuNTA5NjM2LCAwLjcyMDc1OCwgMS4xNDM1OSwgMS40MDg0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE0MTA2NCwgMC4yMDYxMywgMC41NzUyMTYsIDAuOTAwOTI5LCAxLjMzNDg5LCAyLjIwMzE4LCAyLjc0NTYyIiwgXAotICAgICAgICAgICIwLjE0MTA5MywgMC4yMDYxNDcsIDAuNTc1MjExLCAwLjkwMDc0MSwgMS4zMzQ5MywgMi4yMDMxNiwgMi43NDUyNSIsIFwKLSAgICAgICAgICAiMC4xNDM5OSwgMC4yMDcxOSwgMC41NzUyMDEsIDAuOTAwODQyLCAxLjMzNDg3LCAyLjIwMzA4LCAyLjc0NTQ0IiwgXAotICAgICAgICAgICIwLjE0OTg4LCAwLjIxMTEwMywgMC41NzUxODMsIDAuOTAwODM0LCAxLjMzNDgzLCAyLjIwMjk5LCAyLjc0NTMyIiwgXAotICAgICAgICAgICIwLjE1NzA4MywgMC4yMTY3NTgsIDAuNTc1Mzg5LCAwLjkwMDgxNCwgMS4zMzQ5MSwgMi4yMDMwMywgMi43NDUwMyIsIFwKLSAgICAgICAgICAiMC4xNzAyMjIsIDAuMjI3OTE0LCAwLjU3ODUzNywgMC45MDA3NjEsIDEuMzM0OTQsIDIuMjAzMTUsIDIuNzQ1MTciLCBcCi0gICAgICAgICAgIjAuMTgyNzg1LCAwLjIzOTExNSwgMC41ODM0MTYsIDAuOTAyMDEyLCAxLjMzNTEzLCAyLjIwMjY0LCAyLjc0NTI2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDUwMDgsIDAuMTU0Njg0LCAwLjQzODExNSwgMC42ODk5NTYsIDEuMDI1OTUsIDEuNzAyOSwgMi4xMjMyNSIsIFwKLSAgICAgICAgICAiMC4xMTIxODcsIDAuMTYxOTQ4LCAwLjQ0NDg2OCwgMC42OTc1OCwgMS4wMzM2MSwgMS43MDg5LCAyLjEzMDQ1IiwgXAotICAgICAgICAgICIwLjEyMTQ1LCAwLjE3MTExNCwgMC40NTQzNjEsIDAuNzA2MTQ2LCAxLjA0NDAzLCAxLjcxOTE5LCAyLjEzODI1IiwgXAotICAgICAgICAgICIwLjEzMDQ4MywgMC4xODAwMTksIDAuNDYzMzMsIDAuNzE0NzA1LCAxLjA1MzAzLCAxLjcyNjkzLCAyLjE0ODMyIiwgXAotICAgICAgICAgICIwLjEzOTkwOSwgMC4xODkzNzYsIDAuNDcyMTQ3LCAwLjcyNDE1NiwgMS4wNjA4NSwgMS43MzQ5LCAyLjE1ODkyIiwgXAotICAgICAgICAgICIwLjE1NTE5OSwgMC4yMDQzMzQsIDAuNDg2ODIsIDAuNzM4NzU3LCAxLjA3NTQxLCAxLjc0OTQzLCAyLjE3Mjc1IiwgXAotICAgICAgICAgICIwLjE2ODc3MiwgMC4yMTc3MDgsIDAuNDk5Njk1LCAwLjc1MTI3MywgMS4wODg5MywgMS43NjM2LCAyLjE4Mzg1Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIyMDUyNSwgMC4zMjU2NTUsIDAuOTI5OTUyLCAxLjQ2NDQ3LCAyLjE3ODMzLCAzLjYwNTM0LCA0LjQ5Mzg4IiwgXAotICAgICAgICAgICIwLjIxOTk4NSwgMC4zMjU1NzQsIDAuOTI5Nzk4LCAxLjQ2NDczLCAyLjE3OTIsIDMuNjAyNzUsIDQuNDkzOTIiLCBcCi0gICAgICAgICAgIjAuMjIwMzYxLCAwLjMyNTAxNSwgMC45Mjk1OTMsIDEuNDY0MjMsIDIuMTc3OCwgMy42MDQ4LCA0LjQ5Nzk0IiwgXAotICAgICAgICAgICIwLjIyMzk3NCwgMC4zMjY1MjksIDAuOTI5NzE5LCAxLjQ2NDc3LCAyLjE3NzU1LCAzLjYwMjcsIDQuNDk3MjIiLCBcCi0gICAgICAgICAgIjAuMjI5MjQyLCAwLjMyOTk1OSwgMC45Mjk3NDgsIDEuNDY0MzIsIDIuMTc4MjcsIDMuNjA2NDksIDQuNDk3MzUiLCBcCi0gICAgICAgICAgIjAuMjM5NzIzLCAwLjMzNzkzMywgMC45Mjk2NywgMS40NjQzOCwgMi4xODAxOSwgMy42MDg4NiwgNC40OTU0MSIsIFwKLSAgICAgICAgICAiMC4yNTAyNzcsIDAuMzQ2NzkxLCAwLjkzMDg3NiwgMS40NjQ2MywgMi4xNzgyNCwgMy42MDQ5MiwgNC41MDI2OSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjYzOTIsIDAuMDk4NDExLCAwLjI3ODk4MywgMC40Mzc2MDksIDAuNjQ4OTcsIDEuMDcxMzMsIDEuMzM1NDEiLCBcCi0gICAgICAgICAgIjAuMDczMTQxLCAwLjEwNTI0LCAwLjI4NTk2OSwgMC40NDQ1NDYsIDAuNjU1ODE0LCAxLjA3ODM0LCAxLjM0MjMyIiwgXAotICAgICAgICAgICIwLjA4MTM2NywgMC4xMTM1MTcsIDAuMjk0MzU5LCAwLjQ1MzAzMywgMC42NjQyNzQsIDEuMDg2NzgsIDEuMzUwOTkiLCBcCi0gICAgICAgICAgIjAuMDg5NzA1LCAwLjEyMTczOCwgMC4zMDI3MzUsIDAuNDYxNDA3LCAwLjY3MjY5MSwgMS4wOTUyLCAxLjM1OTM4IiwgXAotICAgICAgICAgICIwLjA5Nzc4MSwgMC4xMzAxNTUsIDAuMzExMDUyLCAwLjQ2OTc2OCwgMC42ODEwODgsIDEuMTAzNTksIDEuMzY3NjIiLCBcCi0gICAgICAgICAgIjAuMTA5MzMzLCAwLjE0MzI4NiwgMC4zMjQ1NzQsIDAuNDgzMzI3LCAwLjY5NDY3NSwgMS4xMTcyMiwgMS4zODEyNiIsIFwKLSAgICAgICAgICAiMC4xMTg0MzIsIDAuMTU0MzU0LCAwLjMzNTc0NywgMC40OTUwNTQsIDAuNzA2ODc4LCAxLjEyOTQ4LCAxLjM5MzQ5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEzMjgxOSwgMC4xOTc4MzUsIDAuNTY2NTA5LCAwLjg5MjA4NCwgMS4zMjYyMSwgMi4xOTMzOSwgMi43MzU5NyIsIFwKLSAgICAgICAgICAiMC4xMzI4OSwgMC4xOTc4MzUsIDAuNTY2NTIyLCAwLjg5MTk0NCwgMS4zMjU3OCwgMi4xOTM4MSwgMi43MzU1MyIsIFwKLSAgICAgICAgICAiMC4xMzUxNjksIDAuMTk4NzMzLCAwLjU2NjU1LCAwLjg5MjEwNCwgMS4zMjYxOSwgMi4xOTcxMiwgMi43MzY2MiIsIFwKLSAgICAgICAgICAiMC4xMzk1MzQsIDAuMjAxNTQ3LCAwLjU2NjUwOSwgMC44OTE5OTEsIDEuMzI1NjgsIDIuMTk3MjUsIDIuNzM2NDQiLCBcCi0gICAgICAgICAgIjAuMTQ0NzU4LCAwLjIwNTgxNywgMC41NjY4MTgsIDAuODkxOTQzLCAxLjMyNjA3LCAyLjE5NzM3LCAyLjczNTcxIiwgXAotICAgICAgICAgICIwLjE1NDQxNCwgMC4yMTQwNCwgMC41NjkzOTUsIDAuODkyMTgyLCAxLjMyNTYyLCAyLjE5MzA5LCAyLjczNTk5IiwgXAotICAgICAgICAgICIwLjE2MzkwOSwgMC4yMjIyOTQsIDAuNTcyNTcyLCAwLjg5MzI3MywgMS4zMjU2MywgMi4xOTMyNiwgMi43MzU2MSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDMSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTAzNDM4LCAwLjE1Mzc2NywgMC40Mzg1NDYsIDAuNjkwNzQ3LCAxLjAyODMxLCAxLjcwMzcsIDIuMTI0MDMiLCBcCi0gICAgICAgICAgIjAuMTEwNTcsIDAuMTYxMDE1LCAwLjQ0NTkzNiwgMC42OTgzNTYsIDEuMDM2MDcsIDEuNzExNTIsIDIuMTMxNDQiLCBcCi0gICAgICAgICAgIjAuMTE5ODAyLCAwLjE3MDE2OCwgMC40NTUyNTYsIDAuNzA3MSwgMS4wNDQwOSwgMS43MTkyMiwgMi4xNDA2MyIsIFwKLSAgICAgICAgICAiMC4xMjg4MDgsIDAuMTc5MDc4LCAwLjQ2MzgzMSwgMC43MTU3NzEsIDEuMDUzOTIsIDEuNzI3ODcsIDIuMTQ5OTUiLCBcCi0gICAgICAgICAgIjAuMTM4MiwgMC4xODgzNzYsIDAuNDczNDUzLCAwLjcyNTA3NCwgMS4wNjI5NSwgMS43MzY5LCAyLjE2MDE2IiwgXAotICAgICAgICAgICIwLjE1MzQ4NywgMC4yMDM0MDMsIDAuNDg3NjU4LCAwLjczOTcwMywgMS4wNzY0MywgMS43NTA0MSwgMi4xNzQ1NyIsIFwKLSAgICAgICAgICAiMC4xNjcwMjYsIDAuMjE2Njk2LCAwLjUwMDU1OSwgMC43NTIzNzIsIDEuMDkwMjEsIDEuNzY0OTMsIDIuMTg0ODUiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjE5NTU3LCAwLjMyNTkzMywgMC45MzAyOCwgMS40NjQ2NSwgMi4xNzc4MiwgMy42MDUxNSwgNC40OTQzIiwgXAotICAgICAgICAgICIwLjIxOTE1MiwgMC4zMjU4NDIsIDAuOTMwMTU4LCAxLjQ2NDkxLCAyLjE3ODQ0LCAzLjYwNTcsIDQuNDk0MjgiLCBcCi0gICAgICAgICAgIjAuMjE5NDUxLCAwLjMyNTM5OSwgMC45Mjk4MDMsIDEuNDY0NDcsIDIuMTgwMTUsIDMuNjAzMDUsIDQuNDk3NzciLCBcCi0gICAgICAgICAgIjAuMjIzMTE5LCAwLjMyNjU0NSwgMC45MzAyNTQsIDEuNDY0NjcsIDIuMTc4MjUsIDMuNjAyODcsIDQuNDk2NTIiLCBcCi0gICAgICAgICAgIjAuMjI4NDY1LCAwLjMzMDA1NywgMC45MzAxNTcsIDEuNDY0NTUsIDIuMTc4MTEsIDMuNjA1MTQsIDQuNDk3MzciLCBcCi0gICAgICAgICAgIjAuMjM5MTM3LCAwLjMzODE0LCAwLjkzMDAwMSwgMS40NjQ2MiwgMi4xNzk2NCwgMy42MDU1NCwgNC40OTYxMSIsIFwKLSAgICAgICAgICAiMC4yNDk3MTUsIDAuMzQ2Nzc4LCAwLjkzMTEwMiwgMS40NjUxNSwgMi4xNzc4NiwgMy42MDU2NiwgNC40OTY1MSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjQ5MzQsIDAuMDk2OTQ4LCAwLjI3NzUyNSwgMC40MzYxNDcsIDAuNjQ3NDI3LCAxLjA2OTk5LCAxLjMzMzk2IiwgXAotICAgICAgICAgICIwLjA3MjcxNCwgMC4xMDQ3OTIsIDAuMjg1NDQsIDAuNDQ0MDUsIDAuNjU1MzEzLCAxLjA3NzgyLCAxLjM0MTg1IiwgXAotICAgICAgICAgICIwLjA4MjQ4NCwgMC4xMTQ0ODEsIDAuMjk1MDgyLCAwLjQ1MzY5OCwgMC42NjQ5NDcsIDEuMDg3NDIsIDEuMzUxNTciLCBcCi0gICAgICAgICAgIjAuMDkyMjI3LCAwLjEyNDE1NSwgMC4zMDQ3NzIsIDAuNDYzMjk0LCAwLjY3NDUyNCwgMS4wOTcxLCAxLjM2MTA0IiwgXAotICAgICAgICAgICIwLjEwMjIwMiwgMC4xMzQwNzksIDAuMzE0NDUzLCAwLjQ3MzA2MSwgMC42ODQyMzksIDEuMTA2ODIsIDEuMzcwNzQiLCBcCi0gICAgICAgICAgIjAuMTE2NzkzLCAwLjE0OTk1OCwgMC4zMzAxMjYsIDAuNDg4MDk5LCAwLjY5OTgxMSwgMS4xMjIyLCAxLjM4NjI1IiwgXAotICAgICAgICAgICIwLjEyNzg1OSwgMC4xNjM3NDMsIDAuMzQzODMsIDAuNTAyMywgMC43MTM0MzYsIDEuMTM1ODYsIDEuMzk5ODkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTMyNzkxLCAwLjE5NzgzNiwgMC41NjY1MSwgMC44OTE5NzgsIDEuMzI1NjQsIDIuMTk0MTEsIDIuNzM1NzMiLCBcCi0gICAgICAgICAgIjAuMTMyODk5LCAwLjE5NzgzOSwgMC41NjY1MTYsIDAuODkxODI5LCAxLjMyNTYsIDIuMTkzMDMsIDIuNzM2NDEiLCBcCi0gICAgICAgICAgIjAuMTM2MzI1LCAwLjE5OTA4NSwgMC41NjY1NSwgMC44OTE5NTgsIDEuMzI2MTgsIDIuMTkzMzIsIDIuNzQyNTIiLCBcCi0gICAgICAgICAgIjAuMTQyNDM3LCAwLjIwMzI0NiwgMC41NjY1ODcsIDAuODkyMDI2LCAxLjMyNTk4LCAyLjE5MzM1LCAyLjc0Mjc1IiwgXAotICAgICAgICAgICIwLjE0OTk4MiwgMC4yMDkyMTYsIDAuNTY2NzU3LCAwLjg5MjA4OCwgMS4zMjYwNiwgMi4xOTM3NiwgMi43NDIxOSIsIFwKLSAgICAgICAgICAiMC4xNjM1OCwgMC4yMjA2MjYsIDAuNTY5OTM3LCAwLjg5MTk2MiwgMS4zMjYwNCwgMi4xOTMzNSwgMi43NDI3NiIsIFwKLSAgICAgICAgICAiMC4xNzY0MzIsIDAuMjMyMDA1LCAwLjU3NTAxMiwgMC44OTMyNSwgMS4zMjYwMSwgMi4xOTM5LCAyLjczNTc5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjUwMywgMC4wMDY1MDQsIDAuMDA2NTA0LCAwLjAwNjUwMywgMC4wMDY1MDIsIDAuMDA2NSwgMC4wMDY0OTkiLCBcCi0gICAgICAgICAgIjAuMDA2NDg3LCAwLjAwNjQ5MiwgMC4wMDY0OTYsIDAuMDA2NDk3LCAwLjAwNjQ5NywgMC4wMDY0OTUsIDAuMDA2NDk1IiwgXAotICAgICAgICAgICIwLjAwNjQ3NiwgMC4wMDY0ODMsIDAuMDA2NDkyLCAwLjAwNjQ5NCwgMC4wMDY0OTQsIDAuMDA2NDkzLCAwLjAwNjQ5NiIsIFwKLSAgICAgICAgICAiMC4wMDY0NzEsIDAuMDA2NDc3LCAwLjAwNjQ4OSwgMC4wMDY0OTIsIDAuMDA2NDkyLCAwLjAwNjQ5MiwgMC4wMDY0OTIiLCBcCi0gICAgICAgICAgIjAuMDA2NDcsIDAuMDA2NDc1LCAwLjAwNjQ4OCwgMC4wMDY0OSwgMC4wMDY0OTIsIDAuMDA2NDk0LCAwLjAwNjQ5MSIsIFwKLSAgICAgICAgICAiMC4wMDY0NzgsIDAuMDA2NDgxLCAwLjAwNjQ5LCAwLjAwNjQ5MiwgMC4wMDY0OTIsIDAuMDA2NDkyLCAwLjAwNjQ5MyIsIFwKLSAgICAgICAgICAiMC4wMDY0OTksIDAuMDA2NDk3LCAwLjAwNjQ5NywgMC4wMDY0OTgsIDAuMDA2NDk5LCAwLjAwNjQ5NSwgMC4wMDY0OTMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDE3MjgsIDAuMDAxNzI5LCAwLjAwMTcyOCwgMC4wMDE3MjksIDAuMDAxNzI4LCAwLjAwMTcyNiwgMC4wMDE3MjYiLCBcCi0gICAgICAgICAgIjAuMDAxNjk1LCAwLjAwMTY5OCwgMC4wMDE3MDIsIDAuMDAxNzAzLCAwLjAwMTcwMywgMC4wMDE3MDMsIDAuMDAxNzAyIiwgXAotICAgICAgICAgICIwLjAwMTY4NSwgMC4wMDE2OSwgMC4wMDE2OTUsIDAuMDAxNjk4LCAwLjAwMTY5OCwgMC4wMDE2OTcsIDAuMDAxNjk3IiwgXAotICAgICAgICAgICIwLjAwMTY5NCwgMC4wMDE2OTUsIDAuMDAxNjk3LCAwLjAwMTY5NywgMC4wMDE2OTcsIDAuMDAxNjk3LCAwLjAwMTY5NiIsIFwKLSAgICAgICAgICAiMC4wMDE3MTksIDAuMDAxNzEyLCAwLjAwMTcwMywgMC4wMDE3MDIsIDAuMDAxNjk5LCAwLjAwMTY5NywgMC4wMDE2OTciLCBcCi0gICAgICAgICAgIjAuMDAxNzc3LCAwLjAwMTc2MSwgMC4wMDE3MjUsIDAuMDAxNzE1LCAwLjAwMTcxLCAwLjAwMTcwMywgMC4wMDE3MDEiLCBcCi0gICAgICAgICAgIjAuMDAxODU5LCAwLjAwMTgxNywgMC4wMDE3NTMsIDAuMDAxNzM3LCAwLjAwMTcyNSwgMC4wMDE3MTQsIDAuMDAxNzEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2MDA4LCAwLjAwNjAxLCAwLjAwNjAxMiwgMC4wMDYwMTMsIDAuMDA2MDEyLCAwLjAwNjAxMiwgMC4wMDYwMSIsIFwKLSAgICAgICAgICAiMC4wMDU5ODYsIDAuMDA1OTk1LCAwLjAwNjAxLCAwLjAwNjAxMywgMC4wMDYwMTQsIDAuMDA2MDE1LCAwLjAwNjAxMyIsIFwKLSAgICAgICAgICAiMC4wMDU5NiwgMC4wMDU5NzcsIDAuMDA2MDAyLCAwLjAwNjAwOCwgMC4wMDYwMTQsIDAuMDA2MDEyLCAwLjAwNjAxMiIsIFwKLSAgICAgICAgICAiMC4wMDU5NDcsIDAuMDA1OTYzLCAwLjAwNTk5NSwgMC4wMDYwMDMsIDAuMDA2MDA3LCAwLjAwNjAxLCAwLjAwNjAxIiwgXAotICAgICAgICAgICIwLjAwNTkzOSwgMC4wMDU5NTUsIDAuMDA1OTksIDAuMDA1OTk5LCAwLjAwNjAwNSwgMC4wMDYwMTIsIDAuMDA2MDA5IiwgXAotICAgICAgICAgICIwLjAwNTk0MSwgMC4wMDU5NTMsIDAuMDA1OTg2LCAwLjAwNTk5NiwgMC4wMDYwMDIsIDAuMDA2MDA3LCAwLjAwNjAwOCIsIFwKLSAgICAgICAgICAiMC4wMDU5NTgsIDAuMDA1OTY0LCAwLjAwNTk4OSwgMC4wMDU5OTgsIDAuMDA2MDA2LCAwLjAwNjAwNywgMC4wMDYwMSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTczMSwgMC4wMDE3MzEsIDAuMDAxNzMxLCAwLjAwMTczMSwgMC4wMDE3MywgMC4wMDE3MjksIDAuMDAxNzI4IiwgXAotICAgICAgICAgICIwLjAwMTY5OSwgMC4wMDE3MDEsIDAuMDAxNzA0LCAwLjAwMTcwNSwgMC4wMDE3MDUsIDAuMDAxNzA0LCAwLjAwMTcwMyIsIFwKLSAgICAgICAgICAiMC4wMDE3MTEsIDAuMDAxNzEsIDAuMDAxNzA2LCAwLjAwMTcwNCwgMC4wMDE3MDMsIDAuMDAxNzAxLCAwLjAwMTcwMSIsIFwKLSAgICAgICAgICAiMC4wMDE3MzUsIDAuMDAxNzIzLCAwLjAwMTcxMSwgMC4wMDE3MDgsIDAuMDAxNzA1LCAwLjAwMTcwMiwgMC4wMDE3MDEiLCBcCi0gICAgICAgICAgIjAuMDAxNzc5LCAwLjAwMTc2MiwgMC4wMDE3MjgsIDAuMDAxNzIsIDAuMDAxNzEyLCAwLjAwMTcwNiwgMC4wMDE3MDUiLCBcCi0gICAgICAgICAgIjAuMDAxODc5LCAwLjAwMTgzNywgMC4wMDE3NjQsIDAuMDAxNzM3LCAwLjAwMTczMSwgMC4wMDE3MTgsIDAuMDAxNzEzIiwgXAotICAgICAgICAgICIwLjAwMTk5LCAwLjAwMTkyMywgMC4wMDE4MDcsIDAuMDAxNzc3LCAwLjAwMTc1NSwgMC4wMDE3MzIsIDAuMDAxNzI2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNTM4MSwgMC4wMDUzODEsIDAuMDA1MzgyLCAwLjAwNTM4MiwgMC4wMDUzODEsIDAuMDA1Mzc4LCAwLjAwNTM3NyIsIFwKLSAgICAgICAgICAiMC4wMDUzNjYsIDAuMDA1MzY5LCAwLjAwNTM3NCwgMC4wMDUzNzUsIDAuMDA1Mzc1LCAwLjAwNTM3NiwgMC4wMDUzNzIiLCBcCi0gICAgICAgICAgIjAuMDA1MzU2LCAwLjAwNTM2MSwgMC4wMDUzNywgMC4wMDUzNzEsIDAuMDA1MzcyLCAwLjAwNTM3MSwgMC4wMDUzNyIsIFwKLSAgICAgICAgICAiMC4wMDUzNTMsIDAuMDA1MzU5LCAwLjAwNTM2OSwgMC4wMDUzNzEsIDAuMDA1MzcyLCAwLjAwNTM3LCAwLjAwNTM3IiwgXAotICAgICAgICAgICIwLjAwNTM1OSwgMC4wMDUzNjIsIDAuMDA1MzcsIDAuMDA1MzcyLCAwLjAwNTM3MiwgMC4wMDUzNzEsIDAuMDA1MzcxIiwgXAotICAgICAgICAgICIwLjAwNTM4MSwgMC4wMDUzNzgsIDAuMDA1Mzc2LCAwLjAwNTM3NywgMC4wMDUzNzQsIDAuMDA1MzcyLCAwLjAwNTM3MSIsIFwKLSAgICAgICAgICAiMC4wMDU0MiwgMC4wMDU0MDYsIDAuMDA1Mzg5LCAwLjAwNTM4NCwgMC4wMDUzODEsIDAuMDA1Mzc2LCAwLjAwNTM3NCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTAyMSwgMC4wMDEwMjIsIDAuMDAxMDIzLCAwLjAwMTAyMywgMC4wMDEwMjMsIDAuMDAxMDIyLCAwLjAwMTAyMiIsIFwKLSAgICAgICAgICAiMC4wMDEwMDksIDAuMDAxMDE3LCAwLjAwMTAyOSwgMC4wMDEwMzEsIDAuMDAxMDMzLCAwLjAwMTAzMywgMC4wMDEwMzMiLCBcCi0gICAgICAgICAgIjAuMDAwOTk1LCAwLjAwMTAwNiwgMC4wMDEwMjUsIDAuMDAxMDI5LCAwLjAwMTAzMiwgMC4wMDEwMzQsIDAuMDAxMDM0IiwgXAotICAgICAgICAgICIwLjAwMDk5OSwgMC4wMDEwMDgsIDAuMDAxMDI2LCAwLjAwMTAzLCAwLjAwMTAzMywgMC4wMDEwMzQsIDAuMDAxMDM1IiwgXAotICAgICAgICAgICIwLjAwMTAyLCAwLjAwMTAyMSwgMC4wMDEwMzIsIDAuMDAxMDM0LCAwLjAwMTAzNSwgMC4wMDEwMzYsIDAuMDAxMDM2IiwgXAotICAgICAgICAgICIwLjAwMTA3MiwgMC4wMDEwNiwgMC4wMDEwNDksIDAuMDAxMDQ3LCAwLjAwMTA0NCwgMC4wMDEwNDIsIDAuMDAxMDQxIiwgXAotICAgICAgICAgICIwLjAwMTE0MSwgMC4wMDExMTYsIDAuMDAxMDcxLCAwLjAwMTA2NCwgMC4wMDEwNTcsIDAuMDAxMDUsIDAuMDAxMDQ4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDg2MiwgMC4wMDQ4NjQsIDAuMDA0ODY3LCAwLjAwNDg2NywgMC4wMDQ4NjcsIDAuMDA0ODY2LCAwLjAwNDg2NCIsIFwKLSAgICAgICAgICAiMC4wMDQ4NCwgMC4wMDQ4NSwgMC4wMDQ4NjMsIDAuMDA0ODY3LCAwLjAwNDg2OCwgMC4wMDQ4NjgsIDAuMDA0ODY4IiwgXAotICAgICAgICAgICIwLjAwNDgxOCwgMC4wMDQ4MzIsIDAuMDA0ODU3LCAwLjAwNDg2MiwgMC4wMDQ4NjUsIDAuMDA0ODY2LCAwLjAwNDg2NyIsIFwKLSAgICAgICAgICAiMC4wMDQ4MDcsIDAuMDA0ODIxLCAwLjAwNDg1MSwgMC4wMDQ4NTgsIDAuMDA0ODYyLCAwLjAwNDg2NSwgMC4wMDQ4NjUiLCBcCi0gICAgICAgICAgIjAuMDA0ODA2LCAwLjAwNDgxOSwgMC4wMDQ4NDgsIDAuMDA0ODU2LCAwLjAwNDg2MSwgMC4wMDQ4NjMsIDAuMDA0ODY1IiwgXAotICAgICAgICAgICIwLjAwNDgyMiwgMC4wMDQ4MjgsIDAuMDA0ODQ5LCAwLjAwNDg1NywgMC4wMDQ4NjEsIDAuMDA0ODY0LCAwLjAwNDg2NCIsIFwKLSAgICAgICAgICAiMC4wMDQ4NTcsIDAuMDA0ODUxLCAwLjAwNDg1OCwgMC4wMDQ4NjEsIDAuMDA0ODY1LCAwLjAwNDg2NiwgMC4wMDQ4NjYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDEwMTgsIDAuMDAxMDE5LCAwLjAwMTAyMSwgMC4wMDEwMjEsIDAuMDAxMDIxLCAwLjAwMTAyLCAwLjAwMTAyIiwgXAotICAgICAgICAgICIwLjAwMTAxLCAwLjAwMTAxOCwgMC4wMDEwMjgsIDAuMDAxMDMsIDAuMDAxMDMxLCAwLjAwMTAzMSwgMC4wMDEwMzEiLCBcCi0gICAgICAgICAgIjAuMDAxMDI2LCAwLjAwMTAyMiwgMC4wMDEwMzIsIDAuMDAxMDMyLCAwLjAwMTAzNCwgMC4wMDEwMzQsIDAuMDAxMDM0IiwgXAotICAgICAgICAgICIwLjAwMTA1MSwgMC4wMDEwNDksIDAuMDAxMDM5LCAwLjAwMTA0LCAwLjAwMTAzOSwgMC4wMDEwMzcsIDAuMDAxMDM3IiwgXAotICAgICAgICAgICIwLjAwMTA4OSwgMC4wMDEwNzYsIDAuMDAxMDU2LCAwLjAwMTA1LCAwLjAwMTA0NiwgMC4wMDEwNDIsIDAuMDAxMDQiLCBcCi0gICAgICAgICAgIjAuMDAxMTg1LCAwLjAwMTE0OCwgMC4wMDEwOTIsIDAuMDAxMDc0LCAwLjAwMTA2NCwgMC4wMDEwNTMsIDAuMDAxMDQ5IiwgXAotICAgICAgICAgICIwLjAwMTI5OCwgMC4wMDEyMzMsIDAuMDAxMTMsIDAuMDAxMTA2LCAwLjAwMTA4NSwgMC4wMDEwNjcsIDAuMDAxMDYxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQzAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDIwMiwgMC4wMDQyMDMsIDAuMDA0MjA1LCAwLjAwNDIwNCwgMC4wMDQyMDQsIDAuMDA0MjAyLCAwLjAwNDIiLCBcCi0gICAgICAgICAgIjAuMDA0MTg5LCAwLjAwNDE5MiwgMC4wMDQxOTcsIDAuMDA0MTk4LCAwLjAwNDE5OCwgMC4wMDQxOTYsIDAuMDA0MTk1IiwgXAotICAgICAgICAgICIwLjAwNDE5NiwgMC4wMDQxOTYsIDAuMDA0MTk3LCAwLjAwNDE5NywgMC4wMDQxOTgsIDAuMDA0MTk0LCAwLjAwNDE5MyIsIFwKLSAgICAgICAgICAiMC4wMDQyMzYsIDAuMDA0MjI1LCAwLjAwNDIwOCwgMC4wMDQyMDQsIDAuMDA0MjAyLCAwLjAwNDE5OCwgMC4wMDQxOTYiLCBcCi0gICAgICAgICAgIjAuMDA0Mjc1LCAwLjAwNDI1OSwgMC4wMDQyMjIsIDAuMDA0MjEzLCAwLjAwNDIwOCwgMC4wMDQyLCAwLjAwNDE5OSIsIFwKLSAgICAgICAgICAiMC4wMDQzNjksIDAuMDA0MzI4LCAwLjAwNDI1NSwgMC4wMDQyMzUsIDAuMDA0MjIzLCAwLjAwNDIxMSwgMC4wMDQyMDYiLCBcCi0gICAgICAgICAgIjAuMDA0NDYyLCAwLjAwNDQsIDAuMDA0MjkyLCAwLjAwNDI2LCAwLjAwNDI0MSwgMC4wMDQyMjEsIDAuMDA0MjE0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwMjQzLCAwLjAwMDI0NywgMC4wMDAyNTIsIDAuMDAwMjUzLCAwLjAwMDI1NCwgMC4wMDAyNTQsIDAuMDAwMjU1IiwgXAotICAgICAgICAgICIwLjAwMDI0NSwgMC4wMDAyNiwgMC4wMDAyODEsIDAuMDAwMjg1LCAwLjAwMDI4NywgMC4wMDAyODksIDAuMDAwMjkiLCBcCi0gICAgICAgICAgIjAuMDAwMjM2LCAwLjAwMDI1NCwgMC4wMDAyODIsIDAuMDAwMjg5LCAwLjAwMDI5MywgMC4wMDAyOTYsIDAuMDAwMjk3IiwgXAotICAgICAgICAgICIwLjAwMDI0MiwgMC4wMDAyNTcsIDAuMDAwMjg1LCAwLjAwMDI5MSwgMC4wMDAyOTUsIDAuMDAwMjk4LCAwLjAwMDI5OSIsIFwKLSAgICAgICAgICAiMC4wMDAyNjIsIDAuMDAwMjcxLCAwLjAwMDI5MSwgMC4wMDAyOTYsIDAuMDAwMjk5LCAwLjAwMDMwMSwgMC4wMDAzMDIiLCBcCi0gICAgICAgICAgIjAuMDAwMzE2LCAwLjAwMDMxLCAwLjAwMDMwOCwgMC4wMDAzMDgsIDAuMDAwMzA3LCAwLjAwMDMwNywgMC4wMDAzMDciLCBcCi0gICAgICAgICAgIjAuMDAwMzg0LCAwLjAwMDM2NSwgMC4wMDAzMywgMC4wMDAzMjQsIDAuMDAwMzIsIDAuMDAwMzE1LCAwLjAwMDMxNCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMxIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDM3MjcsIDAuMDAzNzMsIDAuMDAzNzM0LCAwLjAwMzczNSwgMC4wMDM3MzUsIDAuMDAzNzMzLCAwLjAwMzczNCIsIFwKLSAgICAgICAgICAiMC4wMDM3MDksIDAuMDAzNzE4LCAwLjAwMzczMiwgMC4wMDM3MzUsIDAuMDAzNzM3LCAwLjAwMzczNiwgMC4wMDM3MzYiLCBcCi0gICAgICAgICAgIjAuMDAzNzA1LCAwLjAwMzcxMywgMC4wMDM3MjgsIDAuMDAzNzMyLCAwLjAwMzczNCwgMC4wMDM3MzQsIDAuMDAzNzM0IiwgXAotICAgICAgICAgICIwLjAwMzczNywgMC4wMDM3MzUsIDAuMDAzNzM2LCAwLjAwMzczNywgMC4wMDM3MzcsIDAuMDAzNzM2LCAwLjAwMzczNiIsIFwKLSAgICAgICAgICAiMC4wMDM3NzEsIDAuMDAzNzYyLCAwLjAwMzc0NSwgMC4wMDM3NDMsIDAuMDAzNzQxLCAwLjAwMzczOSwgMC4wMDM3MzciLCBcCi0gICAgICAgICAgIjAuMDAzODU2LCAwLjAwMzgyMywgMC4wMDM3NzIsIDAuMDAzNzYsIDAuMDAzNzUzLCAwLjAwMzc0OSwgMC4wMDM3NDMiLCBcCi0gICAgICAgICAgIjAuMDAzOTQzLCAwLjAwMzg4OCwgMC4wMDM4MDUsIDAuMDAzNzgyLCAwLjAwMzc2OSwgMC4wMDM3NTUsIDAuMDAzNzUxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwMjQyLCAwLjAwMDI0NywgMC4wMDAyNTMsIDAuMDAwMjU0LCAwLjAwMDI1NSwgMC4wMDAyNTUsIDAuMDAwMjU2IiwgXAotICAgICAgICAgICIwLjAwMDI1NCwgMC4wMDAyNjYsIDAuMDAwMjgzLCAwLjAwMDI4NywgMC4wMDAyODksIDAuMDAwMjkxLCAwLjAwMDI5MSIsIFwKLSAgICAgICAgICAiMC4wMDAyNjksIDAuMDAwMjc3LCAwLjAwMDI5MSwgMC4wMDAyOTUsIDAuMDAwMjk3LCAwLjAwMDI5OSwgMC4wMDAyOTkiLCBcCi0gICAgICAgICAgIjAuMDAwMjg2LCAwLjAwMDI5MiwgMC4wMDAzLCAwLjAwMDMwMiwgMC4wMDAzMDIsIDAuMDAwMzAzLCAwLjAwMDMwMyIsIFwKLSAgICAgICAgICAiMC4wMDAzMjcsIDAuMDAwMzIsIDAuMDAwMzE0LCAwLjAwMDMxMSwgMC4wMDAzMDksIDAuMDAwMzA4LCAwLjAwMDMwNyIsIFwKLSAgICAgICAgICAiMC4wMDA0MiwgMC4wMDAzODUsIDAuMDAwMzQ2LCAwLjAwMDMzMywgMC4wMDAzMjYsIDAuMDAwMzE4LCAwLjAwMDMxNiIsIFwKLSAgICAgICAgICAiMC4wMDA1NDQsIDAuMDAwNDYyLCAwLjAwMDM3OCwgMC4wMDAzNjEsIDAuMDAwMzQ1LCAwLjAwMDMzMSwgMC4wMDAzMjciKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogQU9JMjIyWDQgKgotICogLS0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKEFPSTIyMlg0KSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDEuOTA0MTE7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDM1OTQ5NTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDM1ODI7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAzNTk0OTU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyMDk4LCAwLjAwMjA5NSwgMC4wMDIwOTYsIDAuMDAyMDk1LCAwLjAwMjA5NCwgMC4wMDIwOTQsIDAuMDAyMDk0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyMjEyLCAwLjAwMjEzMywgMC4wMDIxMjQsIDAuMDAyMTA4LCAwLjAwMjEwOCwgMC4wMDIxMDQsIDAuMDAyMTAzIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihBMSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAzNDI5ODg7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAzNDA5ODc7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAzNDI5ODg7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxMjcsIDAuMDAxMjY4LCAwLjAwMTI2OCwgMC4wMDEyNjcsIDAuMDAxMjY3LCAwLjAwMTI2OCwgMC4wMDEyNjciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDIzODIsIDAuMDAyMzgyLCAwLjAwMjM4NCwgMC4wMDIzODQsIDAuMDAyMzgzLCAwLjAwMjM4MywgMC4wMDIzODMiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDM0NzYzNjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDM0NjY4OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMzQ3NjM2OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjA5OCwgMC4wMDIwOTcsIDAuMDAyMDk3LCAwLjAwMjA5NiwgMC4wMDIwOTYsIDAuMDAyMDk2LCAwLjAwMjA5NiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjIwMywgMC4wMDIxMjUsIDAuMDAyMTIyLCAwLjAwMjExMSwgMC4wMDIxMDcsIDAuMDAyMTAxLCAwLjAwMjEwMiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQjEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMzI5MDcyOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMzI3NDI0OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMzI5MDcyOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTA5MiwgMC4wMDEwOTEsIDAuMDAxMDksIDAuMDAxMDksIDAuMDAxMDksIDAuMDAxMDkxLCAwLjAwMTA5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyMzgyLCAwLjAwMjM4MiwgMC4wMDIzODMsIDAuMDAyMzgzLCAwLjAwMjM4MiwgMC4wMDIzODIsIDAuMDAyMzgzIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihDMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAzNTc2OTU7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAzNTc2OTU7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAzNTcwNzU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyMDk4LCAwLjAwMjA5OCwgMC4wMDIwOTcsIDAuMDAyMDk3LCAwLjAwMjA5NywgMC4wMDIwOTYsIDAuMDAyMDk2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyMjExLCAwLjAwMjEzNSwgMC4wMDIxMjUsIDAuMDAyMTE2LCAwLjAwMjExMywgMC4wMDIxMDIsIDAuMDAyMTAyIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihDMSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAzNDI4ODc7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAzNDI4NjI7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAzNDI4ODc7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxMjk5LCAwLjAwMTI5OCwgMC4wMDEyOTgsIDAuMDAxMjk4LCAwLjAwMTI5NywgMC4wMDEyOTksIDAuMDAxMjk3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyMzgxLCAwLjAwMjM4MSwgMC4wMDIzODIsIDAuMDAyMzgyLCAwLjAwMjM4MywgMC4wMDIzODIsIDAuMDAyMzgzIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuNDkwNjc1OwotICAgIGZ1bmN0aW9uIDogIighKCgoQzAgQzEpKyhBMCBBMSkpKyhCMCBCMSkpKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTAiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDYxMTYsIDAuMjA5ODI0LCAwLjM1ODEyNSwgMC40NjQxMDksIDAuNjM0NDYxLCAwLjc4NDEyNCwgMC45OTgwNjMiLCBcCi0gICAgICAgICAgIjAuMDY3OTMyLCAwLjIxNjczMywgMC4zNjUwNCwgMC40NzEyOTYsIDAuNjQxNjIyLCAwLjc5MTA0NCwgMS4wMDQ1MiIsIFwKLSAgICAgICAgICAiMC4wNzQzMTIsIDAuMjIzMjc4LCAwLjM3MTQ5OSwgMC40Nzc2NjksIDAuNjQ4MzcxLCAwLjc5NzExNCwgMS4wMTEwNyIsIFwKLSAgICAgICAgICAiMC4wNzk3NzgsIDAuMjI4NjUzLCAwLjM3Njk5NSwgMC40ODMzNTMsIDAuNjUzMzE4LCAwLjgwMzEwNSwgMS4wMTYiLCBcCi0gICAgICAgICAgIjAuMDg0Mzg5LCAwLjIzMzc4MywgMC4zODIxMzQsIDAuNDg4MDc2LCAwLjY1OTAxNCwgMC44MDc4NzMsIDEuMDIyMzMiLCBcCi0gICAgICAgICAgIjAuMDkwNjU2LCAwLjI0MTg3NywgMC4zOTAzMjIsIDAuNDk2MTA0LCAwLjY2NjQwNiwgMC44MTU3NTcsIDEuMDMwNDIiLCBcCi0gICAgICAgICAgIjAuMDk1MTc0LCAwLjI0ODc2MywgMC4zOTcwNjksIDAuNTAzMDgsIDAuNjczMjE0LCAwLjgyMzE0NiwgMS4wMzU5Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDkxMTMxLCAwLjQwNTI2OSwgMC43MjE0MzQsIDAuOTQ3NDkzLCAxLjMwOTY4LCAxLjYyNzA2LCAyLjA4MDQ3IiwgXAotICAgICAgICAgICIwLjA5MTEyNSwgMC40MDUyNzIsIDAuNzIxNDQ1LCAwLjk0NzQ1MSwgMS4zMDk3NCwgMS42MjcxMiwgMi4wODE3NCIsIFwKLSAgICAgICAgICAiMC4wOTIwNzgsIDAuNDA1MTQ4LCAwLjcyMTI5MywgMC45NDc3MDcsIDEuMzEwMTUsIDEuNjI3MywgMi4wODE4OCIsIFwKLSAgICAgICAgICAiMC4wOTQxOTcsIDAuNDA1MzgzLCAwLjcyMTM3MywgMC45NDc1MzIsIDEuMzA5NTgsIDEuNjI3MTEsIDIuMDgxODIiLCBcCi0gICAgICAgICAgIjAuMDk3MTczLCAwLjQwNjI3NywgMC43MjEzNDEsIDAuOTQ3Nzc3LCAxLjMwOTU0LCAxLjYyNzc5LCAyLjA4MDUyIiwgXAotICAgICAgICAgICIwLjEwMzQ5LCAwLjQwODY4OCwgMC43MjE4MTUsIDAuOTQ3NjMxLCAxLjMwOTY0LCAxLjYyNzMsIDIuMDgxODUiLCBcCi0gICAgICAgICAgIjAuMTA5MzksIDAuNDExNjI2LCAwLjcyMzcxNywgMC45NDg3NywgMS4zMDk0NiwgMS42MjcwOCwgMi4wODE1NiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0MDU4NiwgMC4xMzYzNTgsIDAuMjMwMzQ1LCAwLjI5NzUxMiwgMC40MDQ3NjQsIDAuNDk4MjI2LCAwLjYzMjI4NSIsIFwKLSAgICAgICAgICAiMC4wNDcwNzcsIDAuMTQyOTMxLCAwLjIzNjk0MywgMC4zMDM5ODgsIDAuNDExMDExLCAwLjUwNDcyOSwgMC42MzgyODUiLCBcCi0gICAgICAgICAgIjAuMDU1MjU0LCAwLjE1MTI0NSwgMC4yNDUzNDQsIDAuMzEyMzYsIDAuNDE5NDk1LCAwLjUxMzE2LCAwLjY0Njk3MiIsIFwKLSAgICAgICAgICAiMC4wNjMxNiwgMC4xNTk1MzQsIDAuMjUzNzU4LCAwLjMyMDczNSwgMC40Mjc4NTYsIDAuNTIxNTgzLCAwLjY1NTU0NyIsIFwKLSAgICAgICAgICAiMC4wNjk3NTUsIDAuMTY3ODE2LCAwLjI2MjIyOSwgMC4zMjkzMzYsIDAuNDM2NSwgMC41MzAxODQsIDAuNjY0MDgxIiwgXAotICAgICAgICAgICIwLjA3ODc1MywgMC4xODA5OTgsIDAuMjc1MDMxLCAwLjM0MjMxNSwgMC40NDk2MzMsIDAuNTQzMzc5LCAwLjY3NzMxOCIsIFwKLSAgICAgICAgICAiMC4wODYwMjMsIDAuMTkyNjYsIDAuMjg3MTI0LCAwLjM1MzgzLCAwLjQ2MTEzMiwgMC41NTQ3NzYsIDAuNjg4ODQ0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY5NTYsIDAuMjYyMjkxLCAwLjQ1NTY2OSwgMC41OTM3NTksIDAuODE0ODM1LCAxLjAwODM5LCAxLjI4NDYxIiwgXAotICAgICAgICAgICIwLjA3MDE4NSwgMC4yNjIyNTUsIDAuNDU1NDg5LCAwLjU5Mzc0NywgMC44MTQ4NzUsIDEuMDA4MjIsIDEuMjg0NDkiLCBcCi0gICAgICAgICAgIjAuMDc0MzM5LCAwLjI2MjQyMywgMC40NTU1MzYsIDAuNTkzNjYzLCAwLjgxNDg0MiwgMS4wMDgzNCwgMS4yODQ1MiIsIFwKLSAgICAgICAgICAiMC4wODAwMzUsIDAuMjY0MTM5LCAwLjQ1NTY3NywgMC41OTM3NzgsIDAuODE0OTIsIDEuMDA4MzcsIDEuMjg0ODgiLCBcCi0gICAgICAgICAgIjAuMDg2NzI3LCAwLjI2NzEwOSwgMC40NTY3NzgsIDAuNTkzOTU0LCAwLjgxNDg5LCAxLjAwODQsIDEuMjg0OCIsIFwKLSAgICAgICAgICAiMC4wOTc0NzQsIDAuMjczOTIxLCAwLjQ2MDEyLCAwLjU5NTkwMywgMC44MTUyMzUsIDEuMDA4MzUsIDEuMjg0NiIsIFwKLSAgICAgICAgICAiMC4xMDY2NDUsIDAuMjgwODQxLCAwLjQ2NDkxMSwgMC41OTkyLCAwLjgxNjk2OSwgMS4wMDg4OSwgMS4yODQ5MiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTg1LCAwLjIwODIxNywgMC4zNTc3NDQsIDAuNDY0NTE1LCAwLjYzNTcxNywgMC43ODYzNjYsIDEuMDAxNCIsIFwKLSAgICAgICAgICAiMC4wNjUxMTgsIDAuMjE1MTM2LCAwLjM2NDQ3LCAwLjQ3MTUxMSwgMC42NDI5NzQsIDAuNzkzMjU1LCAxLjAwNzg4IiwgXAotICAgICAgICAgICIwLjA3MTM3OCwgMC4yMjE0ODYsIDAuMzcwNzk1LCAwLjQ3NzUzNywgMC42NDkwNDEsIDAuNzk5NTgzLCAxLjAxNTE0IiwgXAotICAgICAgICAgICIwLjA3Njc5MywgMC4yMjY5NjcsIDAuMzc2NDE5LCAwLjQ4MzUyMiwgMC42NTQ2OCwgMC44MDU3ODQsIDEuMDE5NjEiLCBcCi0gICAgICAgICAgIjAuMDgxMjY1LCAwLjIzMjAzMiwgMC4zODE0NjYsIDAuNDg4MTYzLCAwLjY2MDQzMSwgMC44MDk5NjcsIDEuMDI0OCIsIFwKLSAgICAgICAgICAiMC4wODczMjMsIDAuMjQwMDg4LCAwLjM4OTU3LCAwLjQ5NjE5OSwgMC42NjgzNzksIDAuODE4ODk5LCAxLjAzMzE5IiwgXAotICAgICAgICAgICIwLjA5MTY0OSwgMC4yNDY5NDQsIDAuMzk2MzczLCAwLjUwMzIwNSwgMC42NzQ3MjgsIDAuODI1NTA5LCAxLjAzOTUiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODc2ODksIDAuNDAzODUxLCAwLjcyMTkyNiwgMC45NDk0ODksIDEuMzEzNzUsIDEuNjMzMTMsIDIuMDkxMDIiLCBcCi0gICAgICAgICAgIjAuMDg3NzQzLCAwLjQwMzg2NiwgMC43MjE5MDksIDAuOTQ5MjczLCAxLjMxMzk1LCAxLjYzMzA1LCAyLjA5MDU3IiwgXAotICAgICAgICAgICIwLjA4ODc0LCAwLjQwMzc2MiwgMC43MjE3MzUsIDAuOTQ5MjgzLCAxLjMxNTMzLCAxLjYzMzUsIDIuMDkwOTYiLCBcCi0gICAgICAgICAgIjAuMDkwOTI2LCAwLjQwMzg3MywgMC43MjE4NTcsIDAuOTQ5NTg0LCAxLjMxMzY0LCAxLjYzMzY0LCAyLjA5MTEyIiwgXAotICAgICAgICAgICIwLjA5Mzk5MiwgMC40MDQ2NCwgMC43MjE4NTcsIDAuOTQ5NDQ1LCAxLjMxNCwgMS42MzUyNiwgMi4wOTA3NCIsIFwKLSAgICAgICAgICAiMC4xMDA0NzEsIDAuNDA3MDE1LCAwLjcyMjQzNSwgMC45NDk4OTksIDEuMzEzOCwgMS42MzU2NCwgMi4wOTAwMyIsIFwKLSAgICAgICAgICAiMC4xMDY0OCwgMC40MDk5ODQsIDAuNzI0MTQzLCAwLjk1MDQ2OSwgMS4zMTQ5NywgMS42MzMxNywgMi4wOTIwMyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzOTE2LCAwLjEzNDk2MywgMC4yMjg4OTgsIDAuMjk2MTU0LCAwLjQwMzA1OSwgMC40OTY3NjcsIDAuNjMwNjU1IiwgXAotICAgICAgICAgICIwLjA0NjYzNSwgMC4xNDI0MjcsIDAuMjM2NDE4LCAwLjMwMzM4OCwgMC40MTA1MDEsIDAuNTA0MjY4LCAwLjYzNzg4MiIsIFwKLSAgICAgICAgICAiMC4wNTYzNTMsIDAuMTUxOTYxLCAwLjI0NjAyMywgMC4zMTMxMDMsIDAuNDIwMDY5LCAwLjUxMzc4OCwgMC42NDczNTUiLCBcCi0gICAgICAgICAgIjAuMDY2NTAzLCAwLjE2MTg1NSwgMC4yNTU5MDUsIDAuMzIyNzg5LCAwLjQzMDA1MSwgMC41MjM2MiwgMC42NTcxOTEiLCBcCi0gICAgICAgICAgIjAuMDc0MTQ2LCAwLjE3MTUxOCwgMC4yNjU0MDIsIDAuMzMyMzg3LCAwLjQzOTYxOCwgMC41MzMzMTcsIDAuNjY2ODU3IiwgXAotICAgICAgICAgICIwLjA4NDk4OSwgMC4xODc0NCwgMC4yODEwNjcsIDAuMzQ4MDU2LCAwLjQ1NTA5MiwgMC41NDg3NDEsIDAuNjgyMzMxIiwgXAotICAgICAgICAgICIwLjA5MzEwMywgMC4yMDE1MDMsIDAuMjk0ODc0LCAwLjM2MTYzLCAwLjQ2ODU1NSwgMC41NjI0NjEsIDAuNjk1OTc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY5NjI0LCAwLjI2MjIzMywgMC40NTU2NjQsIDAuNTkzNzEyLCAwLjgxNDgzNywgMS4wMDgzNywgMS4yODUwMSIsIFwKLSAgICAgICAgICAiMC4wNzA2MzIsIDAuMjYyMjA2LCAwLjQ1NTU1NCwgMC41OTM3NzEsIDAuODE0ODg2LCAxLjAwODM3LCAxLjI4NDUxIiwgXAotICAgICAgICAgICIwLjA3Njg5OSwgMC4yNjI0MDMsIDAuNDU1NTE5LCAwLjU5Mzc4NywgMC44MTQ4OCwgMS4wMDg0LCAxLjI4NDYyIiwgXAotICAgICAgICAgICIwLjA4NDksIDAuMjY0ODE2LCAwLjQ1NTY5NiwgMC41OTM3MjcsIDAuODE0ODQ0LCAxLjAwODMxLCAxLjI4NDYyIiwgXAotICAgICAgICAgICIwLjA5NDAzNCwgMC4yNjkzMzYsIDAuNDU2OTY1LCAwLjU5Mzg2NiwgMC44MTQ4MjMsIDEuMDA4MzgsIDEuMjg0ODciLCBcCi0gICAgICAgICAgIjAuMTA3NDQyLCAwLjI3ODg0NCwgMC40NjIwNjQsIDAuNTk2NjczLCAwLjgxNTE0OCwgMS4wMDgzMiwgMS4yODQ0MyIsIFwKLSAgICAgICAgICAiMC4xMTg2NTcsIDAuMjg4NzQ4LCAwLjQ2ODYyNywgMC42MDEyODgsIDAuODE3MjM5LCAxLjAwODczLCAxLjI4NDc4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1NTAzNiwgMC4yMDM3MSwgMC4zNTIwOTEsIDAuNDU4Mzc4LCAwLjYyOTAwOCwgMC43Nzk5MzUsIDAuOTkzNjQyIiwgXAotICAgICAgICAgICIwLjA2MTgzNSwgMC4yMTA3MDIsIDAuMzU5Mjg0LCAwLjQ2NDc4OCwgMC42MzU1MjMsIDAuNzg2MzcsIDEuMDAxMTgiLCBcCi0gICAgICAgICAgIjAuMDY5MzUzLCAwLjIxODMwNiwgMC4zNjY1OSwgMC40NzI0NjQsIDAuNjQzMjY4LCAwLjc5MzUwMSwgMS4wMDk3NCIsIFwKLSAgICAgICAgICAiMC4wNzY3MDIsIDAuMjI1NzA0LCAwLjM3NDEwNywgMC40ODAzODcsIDAuNjUwNjM3LCAwLjgwMTQzMSwgMS4wMTU3NSIsIFwKLSAgICAgICAgICAiMC4wODMxNTIsIDAuMjMzMDc1LCAwLjM4MTQzLCAwLjQ4NzMxMywgMC42NTc5NDMsIDAuODA4MzY4LCAxLjAyMzEzIiwgXAotICAgICAgICAgICIwLjA5MjEzNSwgMC4yNDUxMzEsIDAuMzkzMzY0LCAwLjQ5OTI2MiwgMC42Njk5OTUsIDAuODIwNjgsIDEuMDM1MTQiLCBcCi0gICAgICAgICAgIjAuMDk5MTE0LCAwLjI1NTU1OCwgMC40MDM4ODEsIDAuNTA5NzQsIDAuNjgxMDM4LCAwLjgzMTI4OSwgMS4wNDU5NyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5MTEwOCwgMC40MDUyODUsIDAuNzIxNTQyLCAwLjk0OTYzMSwgMS4zMTM1LCAxLjYzMjg1LCAyLjA4ODE0IiwgXAotICAgICAgICAgICIwLjA5MTE5LCAwLjQwNTM4MSwgMC43MjE4NTksIDAuOTQ5ODksIDEuMzE0MDMsIDEuNjMyNjksIDIuMDg3NTMiLCBcCi0gICAgICAgICAgIjAuMDkzMzQ5LCAwLjQwNTM4OSwgMC43MjE3NDYsIDAuOTQ5Njc2LCAxLjMxMzg3LCAxLjYzMjYyLCAyLjA4ODU4IiwgXAotICAgICAgICAgICIwLjA5NzUzLCAwLjQwNTYxNiwgMC43MjE4MzEsIDAuOTQ5NDM1LCAxLjMxMzc4LCAxLjYzMjcxLCAyLjA4Njk3IiwgXAotICAgICAgICAgICIwLjEwMjg2NCwgMC40MDcwODgsIDAuNzIxNTMzLCAwLjk0OTUwOCwgMS4zMTQxNSwgMS42MzI1OSwgMi4wODcwNCIsIFwKLSAgICAgICAgICAiMC4xMTMwMTgsIDAuNDEwOTg2LCAwLjcyMjQ4NiwgMC45NDk2MDYsIDEuMzEzNzcsIDEuNjMyMTcsIDIuMDg2OTkiLCBcCi0gICAgICAgICAgIjAuMTIxNTMyLCAwLjQxNTcyOSwgMC43MjQ5MTcsIDAuOTUwMTAxLCAxLjMxMzU0LCAxLjYzMjI1LCAyLjA4NzQ5Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM0Mzc3LCAwLjEyOTA2MSwgMC4yMjI5ODEsIDAuMjg5OTIsIDAuMzk2OTcyLCAwLjQ5MDUwMiwgMC42MjQyMDQiLCBcCi0gICAgICAgICAgIjAuMDQwOTU3LCAwLjEzNTg1NiwgMC4yMjk4MzEsIDAuMjk2NzkxLCAwLjQwMzgwNiwgMC40OTczODcsIDAuNjMxMDU2IiwgXAotICAgICAgICAgICIwLjA0OTA0NiwgMC4xNDQxMTEsIDAuMjM4MTYyLCAwLjMwNTE1LCAwLjQxMjE1OSwgMC41MDU3NjIsIDAuNjM5NDM4IiwgXAotICAgICAgICAgICIwLjA1NjA0NSwgMC4xNTIzMjksIDAuMjQ2NTc2LCAwLjMxMzY5MiwgMC40MjA1ODYsIDAuNTE0MzUyLCAwLjY0ODAyOSIsIFwKLSAgICAgICAgICAiMC4wNjIwNzIsIDAuMTYwODcsIDAuMjU0OTQxLCAwLjMyMTg0OSwgMC40Mjg5MjIsIDAuNTIyNTc1LCAwLjY1NjIzOSIsIFwKLSAgICAgICAgICAiMC4wNzAyMzMsIDAuMTczOTQxLCAwLjI2Nzk4MiwgMC4zMzUyOSwgMC40NDI0NDMsIDAuNTM2MTA0LCAwLjY2OTc5MyIsIFwKLSAgICAgICAgICAiMC4wNzYzNDQsIDAuMTg1NTc5LCAwLjI3OTk5MiwgMC4zNDY2NDksIDAuNDU0NDg2LCAwLjU0ODMxNiwgMC42ODIwMiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2MDE3NSwgMC4yNTM0MiwgMC40NDcwMTMsIDAuNTg1MTU1LCAwLjgwNjQ4OSwgMS4wMDAxMywgMS4yNzY2OCIsIFwKLSAgICAgICAgICAiMC4wNjExODMsIDAuMjUzNDE5LCAwLjQ0Njk3MSwgMC41ODUxOTUsIDAuODA2NDY5LCAxLjAwMDA2LCAxLjI3NjciLCBcCi0gICAgICAgICAgIjAuMDY1ODIzLCAwLjI1Mzc1NCwgMC40NDY5MTQsIDAuNTg1MjAyLCAwLjgwNjQyNCwgMS4wMDAwNiwgMS4yNzY4MiIsIFwKLSAgICAgICAgICAiMC4wNzE5NzUsIDAuMjU1NiwgMC40NDcxMzcsIDAuNTg1MTIsIDAuODA2NDA2LCAxLjAwMDEsIDEuMjc2NzUiLCBcCi0gICAgICAgICAgIjAuMDc4NzEyLCAwLjI1ODk0MiwgMC40NDgwODQsIDAuNTg1NDQsIDAuODA2Mzk5LCAxLjAwMDAzLCAxLjI3NjcyIiwgXAotICAgICAgICAgICIwLjA4OTQ5OSwgMC4yNjU3NTksIDAuNDUxODgzLCAwLjU4NzUzMywgMC44MDY4OTYsIDEuMDAwMDEsIDEuMjc2ODIiLCBcCi0gICAgICAgICAgIjAuMDk4NTQzLCAwLjI3Mjg5MywgMC40NTcwNzQsIDAuNTkwODY1LCAwLjgwODQ4LCAxLjAwMDYxLCAxLjI3NjkxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIxIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1MTk2NywgMC4yMDE2MTMsIDAuMzUxMTE3LCAwLjQ1NzQ1MSwgMC42Mjg2ODEsIDAuNzc5MTA2LCAwLjk5Mzg2NiIsIFwKLSAgICAgICAgICAiMC4wNTg1NjgsIDAuMjA4NTYsIDAuMzU4MTM1LCAwLjQ2NDMyNCwgMC42MzU1NjIsIDAuNzg1NzY0LCAxLjAwMTAzIiwgXAotICAgICAgICAgICIwLjA2NTkwOCwgMC4yMTYwODQsIDAuMzY1NTc0LCAwLjQ3MjA5OCwgMC42NDM3MzQsIDAuNzkzOTUyLCAxLjAwODk1IiwgXAotICAgICAgICAgICIwLjA3MzAxOSwgMC4yMjMyNCwgMC4zNzI2OTgsIDAuNDc5NjgxLCAwLjY1MDE4NCwgMC44MDA4NjksIDEuMDE1OTkiLCBcCi0gICAgICAgICAgIjAuMDc5MjE3LCAwLjIzMDU3NCwgMC4zNzk5OTcsIDAuNDg2NjAzLCAwLjY1NzU2OCwgMC44MDc3MzgsIDEuMDIzODkiLCBcCi0gICAgICAgICAgIjAuMDg3ODA0LCAwLjI0MjQ1OSwgMC4zOTE4NzUsIDAuNDk4NDA5LCAwLjY2OTU0MiwgMC44MjAwNzMsIDEuMDM0NjkiLCBcCi0gICAgICAgICAgIjAuMDk0MjQ2LCAwLjI1MjgwMiwgMC40MDIxMTYsIDAuNTA4Nzc0LCAwLjY4MDM4NiwgMC44MzA2NTYsIDEuMDQ1NDQiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODcyOTEsIDAuNDAzNzI3LCAwLjcyMDUzMSwgMC45NDgwNywgMS4zMTMzOSwgMS42MzM5OCwgMi4wOTAxOCIsIFwKLSAgICAgICAgICAiMC4wODczODQsIDAuNDAzNzc1LCAwLjcyMDU2NCwgMC45NDgzNDMsIDEuMzEzNCwgMS42MzM2MywgMi4wOTAwOCIsIFwKLSAgICAgICAgICAiMC4wODk2ODYsIDAuNDAzNTYsIDAuNzIwNTE1LCAwLjk0Nzg4MywgMS4zMTM4LCAxLjYzNDUzLCAyLjA5MDM1IiwgXAotICAgICAgICAgICIwLjA5NDA4NCwgMC40MDM5ODksIDAuNzIwNDY1LCAwLjk0ODExOCwgMS4zMTUxMiwgMS42MzM4NSwgMi4wOTMxMyIsIFwKLSAgICAgICAgICAiMC4wOTk2NzMsIDAuNDA1NDc1LCAwLjcyMDYyNSwgMC45NDgyODcsIDEuMzE0OTYsIDEuNjM1NzIsIDIuMDkxMzQiLCBcCi0gICAgICAgICAgIjAuMTA5Nzk2LCAwLjQwOTM0LCAwLjcyMTU5MiwgMC45NDg4NjksIDEuMzE1MTEsIDEuNjMzMiwgMi4wOTMyMiIsIFwKLSAgICAgICAgICAiMC4xMTgyNTQsIDAuNDE0MTU0LCAwLjcyMzU4MiwgMC45NDg4ODksIDEuMzEzMjMsIDEuNjMzMTUsIDIuMDkwMTgiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzI3MjksIDAuMTI3NDEzLCAwLjIyMTM1MSwgMC4yODgyODEsIDAuMzk1MzYxLCAwLjQ4ODg2NSwgMC42MjI2MTYiLCBcCi0gICAgICAgICAgIjAuMDQwMzM3LCAwLjEzNTE1MSwgMC4yMjkwOTcsIDAuMjk2MDUsIDAuNDAzMDYyLCAwLjQ5NjY3OSwgMC42MzAzMTkiLCBcCi0gICAgICAgICAgIjAuMDUwMjQ5LCAwLjE0NDYyNCwgMC4yMzg2NjksIDAuMzA1NjI4LCAwLjQxMjYyMiwgMC41MDYyMDgsIDAuNjM5ODU4IiwgXAotICAgICAgICAgICIwLjA1ODg5OSwgMC4xNTQ1NzgsIDAuMjQ4NDE1LCAwLjMxNTUwNSwgMC40MjI0OTgsIDAuNTE2MDgsIDAuNjQ5NzQiLCBcCi0gICAgICAgICAgIjAuMDY1OTU2LCAwLjE2NDA2NSwgMC4yNTc5NjcsIDAuMzI0ODQyLCAwLjQzMTgyMSwgMC41MjUzNzksIDAuNjU5MDAxIiwgXAotICAgICAgICAgICIwLjA3NTc5NiwgMC4xNzk4ODksIDAuMjczNTIzLCAwLjM0MDQ4NywgMC40NDczMTgsIDAuNTQwODMsIDAuNjc0NDY0IiwgXAotICAgICAgICAgICIwLjA4MjcyOSwgMC4xOTM4NjcsIDAuMjg3MjY5LCAwLjM1NDAzMSwgMC40NjA5OTUsIDAuNTU0NDMyLCAwLjY4Nzk3MyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2MDIwNiwgMC4yNTM0NjIsIDAuNDQ2OTksIDAuNTg1Mjc3LCAwLjgwNjQ3MywgMS4wMDAwOSwgMS4yNzY4IiwgXAotICAgICAgICAgICIwLjA2MTg3MywgMC4yNTM0NTUsIDAuNDQ2OTg5LCAwLjU4NTI1NCwgMC44MDY0NiwgMS4wMDAxLCAxLjI3NjcyIiwgXAotICAgICAgICAgICIwLjA2ODYxNiwgMC4yNTM3NTYsIDAuNDQ2OTkxLCAwLjU4NTIxLCAwLjgwNjQ0OSwgMS4wMDAxLCAxLjI3Njc5IiwgXAotICAgICAgICAgICIwLjA3NzM4OSwgMC4yNTY1LCAwLjQ0NzA0MSwgMC41ODUxNTIsIDAuODA2NDQ2LCAxLjAwMDA1LCAxLjI3NjgzIiwgXAotICAgICAgICAgICIwLjA4NjI2MSwgMC4yNjEyNjEsIDAuNDQ4NjI2LCAwLjU4NTM4MiwgMC44MDYzNjUsIDEuMDAwMjUsIDEuMjc2NTMiLCBcCi0gICAgICAgICAgIjAuMDk5NjQ3LCAwLjI3MTExMSwgMC40NTQwODMsIDAuNTg4MzQ5LCAwLjgwNjc1MywgMS4wMDAwNCwgMS4yNzY2NyIsIFwKLSAgICAgICAgICAiMC4xMTA0MDUsIDAuMjgxNTI1LCAwLjQ2MDc4NiwgMC41OTMyMDUsIDAuODA4OTQyLCAxLjAwMDM3LCAxLjI3NjQ5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0MzUxLCAwLjE5MjMyNCwgMC4zNDA3MTgsIDAuNDQ2MzI2LCAwLjYxNjUsIDAuNzY3MDkzLCAwLjk4MTEyIiwgXAotICAgICAgICAgICIwLjA1MDcwMiwgMC4xOTkzNDIsIDAuMzQ3ODcxLCAwLjQ1MzYxNSwgMC42MjQwMSwgMC43NzM0ODUsIDAuOTg4NjE0IiwgXAotICAgICAgICAgICIwLjA2MDE2OCwgMC4yMDg4MjMsIDAuMzU3MDc5LCAwLjQ2MjY2NiwgMC42MzIyNCwgMC43ODI2MDQsIDAuOTk4MzE1IiwgXAotICAgICAgICAgICIwLjA2OTc1MywgMC4yMTc5MjUsIDAuMzY2MTQ5LCAwLjQ3MjA4NiwgMC42NDE5MDIsIDAuNzkyNzM2LCAxLjAwNjQzIiwgXAotICAgICAgICAgICIwLjA3ODI5NywgMC4yMjY4ODMsIDAuMzc0NTM4LCAwLjQ4MDg5NywgMC42NTA0MywgMC44MDEyNSwgMS4wMTU4OCIsIFwKLSAgICAgICAgICAiMC4wODk3NDcsIDAuMjQxOTIyLCAwLjM4OTc1NSwgMC40OTU3MTksIDAuNjY1NjA3LCAwLjgxNjA1NCwgMS4wMjk2OSIsIFwKLSAgICAgICAgICAiMC4wOTc5NTksIDAuMjU1MTA2LCAwLjQwMjkxNCwgMC41MDg0MjQsIDAuNjc3OTIsIDAuODI4Mjc3LCAxLjA0MjMzIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg5OTg5LCAwLjQwNTE3MywgMC43MjA1NDMsIDAuOTQ3OTY2LCAxLjMxMTc2LCAxLjYzMDQsIDIuMDg0MzkiLCBcCi0gICAgICAgICAgIjAuMDkwMTE4LCAwLjQwNDk4OSwgMC43MjAzNTMsIDAuOTQ3OTE3LCAxLjMxMTc0LCAxLjYzMDYyLCAyLjA4NDE4IiwgXAotICAgICAgICAgICIwLjA5NTI0NSwgMC40MDUyMTcsIDAuNzIwNDg3LCAwLjk0Nzc4OSwgMS4zMTE5NywgMS42MzAzMiwgMi4wODUyMiIsIFwKLSAgICAgICAgICAiMC4xMDI3MDksIDAuNDA0OTc3LCAwLjcyMDYyNiwgMC45NDc3OTYsIDEuMzExMzIsIDEuNjMwMTMsIDIuMDgzODgiLCBcCi0gICAgICAgICAgIjAuMTEwNTYxLCAwLjQwNzQyNSwgMC43MjAzMDEsIDAuOTQ3Nzk4LCAxLjMxMTU2LCAxLjYzMDI0LCAyLjA4NDU3IiwgXAotICAgICAgICAgICIwLjEyMzEsIDAuNDEzNTU3LCAwLjcyMTQ5NSwgMC45NDc3MTQsIDEuMzExODIsIDEuNjMwMTIsIDIuMDg1MjYiLCBcCi0gICAgICAgICAgIjAuMTMzMzIyLCAwLjQyMDg5OSwgMC43MjQ2MDUsIDAuOTQ4ODQsIDEuMzExNTYsIDEuNjI5ODEsIDIuMDg0ODkiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjY0NDksIDAuMTIxMTc4LCAwLjIxNTQ0NSwgMC4yODI1MTEsIDAuMzg5NjkzLCAwLjQ4MzMyOCwgMC42MTcxNDYiLCBcCi0gICAgICAgICAgIjAuMDMyOTYxLCAwLjEyODA1LCAwLjIyMjM0NywgMC4yODk0NTMsIDAuMzk2NjI4LCAwLjQ5MDM0LCAwLjYyNDA2NyIsIFwKLSAgICAgICAgICAiMC4wNDA1NTYsIDAuMTM2MzQ0LCAwLjIzMDc1OCwgMC4yOTc4ODksIDAuNDA1MDU1LCAwLjQ5ODczMiwgMC42MzI1MTUiLCBcCi0gICAgICAgICAgIjAuMDQ2NzQsIDAuMTQ0NTU2LCAwLjIzOTE2NywgMC4zMDYzMDYsIDAuNDEzNjEyLCAwLjUwNzIxNCwgMC42NDA5NzciLCBcCi0gICAgICAgICAgIjAuMDUxODI1LCAwLjE1Mjg4LCAwLjI0NzU3LCAwLjMxNDY2NCwgMC40MjE4NDgsIDAuNTE1NjA4LCAwLjY0OTM5MSIsIFwKLSAgICAgICAgICAiMC4wNTgyNDIsIDAuMTY2MDM3LCAwLjI2MDY1NCwgMC4zMjgwMTYsIDAuNDM1MTgsIDAuNTI4NDAzLCAwLjY2Mjc5OSIsIFwKLSAgICAgICAgICAiMC4wNjI5NjQsIDAuMTc3NTUsIDAuMjcyMzE3LCAwLjMzOTIwMiwgMC40NDczNTQsIDAuNTQxNDczLCAwLjY3NTM0NSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1MjMyNSwgMC4yNDU2OTcsIDAuNDM5MzA4LCAwLjU3NzU3OCwgMC43OTkwNjMsIDAuOTkyODI5LCAxLjI2OTQzIiwgXAotICAgICAgICAgICIwLjA1Mzg5MywgMC4yNDU3MTMsIDAuNDM5Mjk3LCAwLjU3NzcyMywgMC43OTg4ODYsIDAuOTkyNjg2LCAxLjI2OTI1IiwgXAotICAgICAgICAgICIwLjA1OTIxLCAwLjI0NjA1NCwgMC40MzkyNjIsIDAuNTc3NjgyLCAwLjc5OTA2MSwgMC45OTI3MTYsIDEuMjY5MTciLCBcCi0gICAgICAgICAgIjAuMDY1OTgyLCAwLjI0ODA4OCwgMC40Mzk0NzIsIDAuNTc3NjY3LCAwLjc5ODk3NiwgMC45OTI3MDIsIDEuMjY5MzUiLCBcCi0gICAgICAgICAgIjAuMDczMDMxLCAwLjI1MTUyLCAwLjQ0MDc2NCwgMC41Nzc5NjksIDAuNzk5MDIzLCAwLjk5MjcwNiwgMS4yNjkzNyIsIFwKLSAgICAgICAgICAiMC4wODM2MjksIDAuMjU4NjY4LCAwLjQ0NDY4MSwgMC41ODAxNywgMC43OTk0ODgsIDAuOTkyNzEyLCAxLjI2OTQ5IiwgXAotICAgICAgICAgICIwLjA5MjQ1NSwgMC4yNjYxMzMsIDAuNDQ5NjUxLCAwLjU4MzQ1OCwgMC44MDEwNCwgMC45OTMyMSwgMS4yNjk0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMxIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0MDg0MywgMC4xOTA4OTcsIDAuMzQwMjQyLCAwLjQ0NzM1NSwgMC42MTgxNTgsIDAuNzY4NDUsIDAuOTgzMjc1IiwgXAotICAgICAgICAgICIwLjA0NzkxMSwgMC4xOTgxNDIsIDAuMzQ3NzYsIDAuNDU0MTA1LCAwLjYyNTA3NCwgMC43NzU5NjksIDAuOTkwNDQyIiwgXAotICAgICAgICAgICIwLjA1NzI5LCAwLjIwNzI2NCwgMC4zNTY2NTUsIDAuNDYzNzE5LCAwLjYzMzc5NiwgMC43ODUyMzcsIDAuOTk5ODkyIiwgXAotICAgICAgICAgICIwLjA2Njc3MiwgMC4yMTYzNzQsIDAuMzY1NzM1LCAwLjQ3MjIwNSwgMC42NDM2MSwgMC43OTM2MSwgMS4wMDg2IiwgXAotICAgICAgICAgICIwLjA3NDk0MSwgMC4yMjUyNjMsIDAuMzc0MDg2LCAwLjQ4MTM3LCAwLjY1MjEyNiwgMC44MDM1NjEsIDEuMDE2NTMiLCBcCi0gICAgICAgICAgIjAuMDg2MDU4LCAwLjI0MDIzOSwgMC4zODkyNjYsIDAuNDk2MTY4LCAwLjY2NzU1NiwgMC44MTc5LCAxLjAzMTgyIiwgXAotICAgICAgICAgICIwLjA5MzkzNCwgMC4yNTM0MDIsIDAuNDAyNDY3LCAwLjUwODg0LCAwLjY4MDI3MywgMC44MzA0MjQsIDEuMDQ0NDciKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODY1MzgsIDAuNDA0NTY1LCAwLjcyMTUyNywgMC45NDk2NjMsIDEuMzEzOSwgMS42MzM2NSwgMi4wOTAxOCIsIFwKLSAgICAgICAgICAiMC4wODY4NCwgMC40MDQ0ODIsIDAuNzIxODM5LCAwLjk0OTYxNSwgMS4zMTQ2NCwgMS42MzMxNCwgMi4wOTA2OCIsIFwKLSAgICAgICAgICAiMC4wOTIxODgsIDAuNDA0MjY1LCAwLjcyMTUyMSwgMC45NDk1NzEsIDEuMzEzNzQsIDEuNjMzODUsIDIuMDkxMzEiLCBcCi0gICAgICAgICAgIjAuMDk5NzIxLCAwLjQwNDI4LCAwLjcyMTg0OCwgMC45NDkyNjEsIDEuMzEzMzksIDEuNjM0MDYsIDIuMDkzMTkiLCBcCi0gICAgICAgICAgIjAuMTA3NjY3LCAwLjQwNjY4NiwgMC43MjE2OCwgMC45NDkzODMsIDEuMzE0MTksIDEuNjMzODksIDIuMDg5ODIiLCBcCi0gICAgICAgICAgIjAuMTE5OTgyLCAwLjQxMzAyOCwgMC43MjI2ODcsIDAuOTQ4OTcsIDEuMzE0LCAxLjYzMzU0LCAyLjA5MzE0IiwgXAotICAgICAgICAgICIwLjEyOTU3OSwgMC40MjAzMjEsIDAuNzI2MTEyLCAwLjk1MDM0MywgMS4zMTM2MSwgMS42MzMxMywgMi4wOTI2NSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyNTAyLCAwLjExOTc1NywgMC4yMTM5OTIsIDAuMjgxMDc0LCAwLjM4ODI1NSwgMC40ODE4OTcsIDAuNjE1NzY2IiwgXAotICAgICAgICAgICIwLjAzMjY4NSwgMC4xMjc2MjgsIDAuMjIxOTI3LCAwLjI4OTA0OSwgMC4zOTYxNTcsIDAuNDg5ODUsIDAuNjIzNTk5IiwgXAotICAgICAgICAgICIwLjA0MjIxMywgMC4xMzcxODEsIDAuMjMxNDUsIDAuMjk4NTU1LCAwLjQwNTcwMywgMC40OTkzOTksIDAuNjMzMTQ0IiwgXAotICAgICAgICAgICIwLjA0OTQ0OCwgMC4xNDcxMDEsIDAuMjQxMTgzLCAwLjMwODI3NSwgMC40MTU1NzUsIDAuNTA5MjM2LCAwLjY0MzAxNiIsIFwKLSAgICAgICAgICAiMC4wNTQ5NzUsIDAuMTU2NzY4LCAwLjI1MDg5OSwgMC4zMTc5MjcsIDAuNDI1MDQ5LCAwLjUxODY4MywgMC42NTI0MzEiLCBcCi0gICAgICAgICAgIjAuMDYyNzY3LCAwLjE3MjU2MiwgMC4yNjY1MjUsIDAuMzMzNjAzLCAwLjQ0MDY2NSwgMC41MzQzMDgsIDAuNjY3OTkxIiwgXAotICAgICAgICAgICIwLjA2ODQzMiwgMC4xODY0OTUsIDAuMjgwMjQsIDAuMzQ3MjMzLCAwLjQ1NDM3NCwgMC41NDc5LCAwLjY4MTYxNiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1MjMzLCAwLjI0NTY1NywgMC40MzkzMzEsIDAuNTc3NjY2LCAwLjc5OTA1NSwgMC45OTI4MzcsIDEuMjY5NTQiLCBcCi0gICAgICAgICAgIjAuMDU0ODcsIDAuMjQ1Njg4LCAwLjQzOTM1NSwgMC41Nzc2NTEsIDAuNzk4ODY5LCAwLjk5MjYxOCwgMS4yNjkyMyIsIFwKLSAgICAgICAgICAiMC4wNjI1NzMsIDAuMjQ2MTU3LCAwLjQzOTMwMSwgMC41Nzc2NDMsIDAuNzk4OTg0LCAwLjk5Mjc5MywgMS4yNjkyNSIsIFwKLSAgICAgICAgICAiMC4wNzE2MDMsIDAuMjQ5MTQ5LCAwLjQzOTQyOCwgMC41Nzc2ODMsIDAuNzk5MDYxLCAwLjk5MjcxMiwgMS4yNjk0OCIsIFwKLSAgICAgICAgICAiMC4wODEyNDQsIDAuMjU0MTQsIDAuNDQxMTYsIDAuNTc3ODQ4LCAwLjc5OTA1NCwgMC45OTI2ODgsIDEuMjY5MzkiLCBcCi0gICAgICAgICAgIjAuMDkzNTc0LCAwLjI2NDE4MSwgMC40NDY3NDksIDAuNTgxMDQ4LCAwLjc5OTQxNywgMC45OTI2MzYsIDEuMjY5MzMiLCBcCi0gICAgICAgICAgIjAuMTAzODY3LCAwLjI3NDYyMywgMC40NTM0OCwgMC41ODU4ODIsIDAuODAxNzgsIDAuOTkzMzA2LCAxLjI2OTQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjUzODQsIDAuMDI1NCwgMC4wMjUzOTksIDAuMDI1Mzk4LCAwLjAyNTQsIDAuMDI1Mzk2LCAwLjAyNTM5NiIsIFwKLSAgICAgICAgICAiMC4wMjUyODYsIDAuMDI1MzU4LCAwLjAyNTM2OSwgMC4wMjUzNzEsIDAuMDI1MzczLCAwLjAyNTM3NywgMC4wMjUzNzYiLCBcCi0gICAgICAgICAgIjAuMDI1MjI5LCAwLjAyNTMyNywgMC4wMjUzNDgsIDAuMDI1MzU3LCAwLjAyNTM1NiwgMC4wMjUzNjIsIDAuMDI1MzY3IiwgXAotICAgICAgICAgICIwLjAyNTIwNiwgMC4wMjUzMDgsIDAuMDI1MzMzLCAwLjAyNTM0MywgMC4wMjUzNSwgMC4wMjUzNTQsIDAuMDI1MzU2IiwgXAotICAgICAgICAgICIwLjAyNTIxOCwgMC4wMjUzMDEsIDAuMDI1MzI5LCAwLjAyNTMzOCwgMC4wMjUzNDcsIDAuMDI1MzUxLCAwLjAyNTM1NCIsIFwKLSAgICAgICAgICAiMC4wMjUyOTYsIDAuMDI1MzEyLCAwLjAyNTMzNSwgMC4wMjUzNDQsIDAuMDI1MzUxLCAwLjAyNTM1NCwgMC4wMjUzNTgiLCBcCi0gICAgICAgICAgIjAuMDI1NDM2LCAwLjAyNTM3MiwgMC4wMjUzNzEsIDAuMDI1MzYzLCAwLjAyNTM3NSwgMC4wMjUzNzIsIDAuMDI1MzciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNzAzMSwgMC4wMDcwMzQsIDAuMDA3MDMzLCAwLjAwNzAzMiwgMC4wMDcwMzIsIDAuMDA3MDI5LCAwLjAwNzAyOCIsIFwKLSAgICAgICAgICAiMC4wMDY4NTIsIDAuMDA2OTA5LCAwLjAwNjkxOSwgMC4wMDY5MiwgMC4wMDY5MjMsIDAuMDA2OTIxLCAwLjAwNjkyNCIsIFwKLSAgICAgICAgICAiMC4wMDY4MTYsIDAuMDA2ODc1LCAwLjAwNjg5MSwgMC4wMDY4OTUsIDAuMDA2OSwgMC4wMDY5MDIsIDAuMDA2OSIsIFwKLSAgICAgICAgICAiMC4wMDY5LCAwLjAwNjg5NCwgMC4wMDY4OTgsIDAuMDA2ODk3LCAwLjAwNjksIDAuMDA2OTAxLCAwLjAwNjg5OCIsIFwKLSAgICAgICAgICAiMC4wMDcwNjgsIDAuMDA2OTQ4LCAwLjAwNjkzNCwgMC4wMDY5MjcsIDAuMDA2OTE5LCAwLjAwNjkxNSwgMC4wMDY5MTEiLCBcCi0gICAgICAgICAgIjAuMDA3NDg5LCAwLjAwNzExLCAwLjAwNzAzNSwgMC4wMDcwMTcsIDAuMDA2OTg3LCAwLjAwNjk3LCAwLjAwNjk1NCIsIFwKLSAgICAgICAgICAiMC4wMDc5NTQsIDAuMDA3MzA5LCAwLjAwNzE3NywgMC4wMDcxMiwgMC4wMDcwNjcsIDAuMDA3MDM4LCAwLjAwNzAxNiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkExIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyMzQ0NywgMC4wMjM1MDMsIDAuMDIzNTA5LCAwLjAyMzUwOSwgMC4wMjM1MTEsIDAuMDIzNTEyLCAwLjAyMzUwOSIsIFwKLSAgICAgICAgICAiMC4wMjMyNzcsIDAuMDIzNDYxLCAwLjAyMzQ5MiwgMC4wMjM1MDEsIDAuMDIzNTA5LCAwLjAyMzUxNiwgMC4wMjM1MiIsIFwKLSAgICAgICAgICAiMC4wMjMxNTksIDAuMDIzMzk4LCAwLjAyMzQ1MiwgMC4wMjM0NzEsIDAuMDIzNDg2LCAwLjAyMzQ5NSwgMC4wMjM1MDEiLCBcCi0gICAgICAgICAgIjAuMDIzMTA4LCAwLjAyMzM1MSwgMC4wMjM0MTgsIDAuMDIzNDQ0LCAwLjAyMzQ2NywgMC4wMjM0NzcsIDAuMDIzNDg4IiwgXAotICAgICAgICAgICIwLjAyMzA5NSwgMC4wMjMzMTksIDAuMDIzMzk1LCAwLjAyMzQyMywgMC4wMjM0NDksIDAuMDIzNDY1LCAwLjAyMzQ2OSIsIFwKLSAgICAgICAgICAiMC4wMjMxNjksIDAuMDIzMjk4LCAwLjAyMzM4LCAwLjAyMzQwOSwgMC4wMjM0MzgsIDAuMDIzNDUzLCAwLjAyMzQ2OCIsIFwKLSAgICAgICAgICAiMC4wMjMzMiwgMC4wMjMzMzgsIDAuMDIzMzk1LCAwLjAyMzQxOSwgMC4wMjM0NDMsIDAuMDIzNDY1LCAwLjAyMzQ3NCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA3MDM1LCAwLjAwNzA0LCAwLjAwNzA0MiwgMC4wMDcwNDIsIDAuMDA3MDM5LCAwLjAwNzA0LCAwLjAwNzAzNyIsIFwKLSAgICAgICAgICAiMC4wMDY4NzUsIDAuMDA2OTE3LCAwLjAwNjkyNiwgMC4wMDY5MjksIDAuMDA2OTMyLCAwLjAwNjkyNywgMC4wMDY5MyIsIFwKLSAgICAgICAgICAiMC4wMDY5NTgsIDAuMDA2OTMzLCAwLjAwNjkyOSwgMC4wMDY5MjYsIDAuMDA2OTI0LCAwLjAwNjkyNCwgMC4wMDY5MjEiLCBcCi0gICAgICAgICAgIjAuMDA3MTk2LCAwLjAwNzAxLCAwLjAwNjk3MSwgMC4wMDY5NTksIDAuMDA2OTQ3LCAwLjAwNjk0LCAwLjAwNjkzMiIsIFwKLSAgICAgICAgICAiMC4wMDc0OTEsIDAuMDA3MTI0LCAwLjAwNzA1MywgMC4wMDcwMjEsIDAuMDA2OTk0LCAwLjAwNjk3OSwgMC4wMDY5NjIiLCBcCi0gICAgICAgICAgIjAuMDA4MjAyLCAwLjAwNzM4NSwgMC4wMDcyMjMsIDAuMDA3MTYsIDAuMDA3MTA5LCAwLjAwNzA3NywgMC4wMDcwNDEiLCBcCi0gICAgICAgICAgIjAuMDA4ODk5LCAwLjAwNzY4MSwgMC4wMDc0MzYsIDAuMDA3MzMyLCAwLjAwNzIzMSwgMC4wMDcxOTEsIDAuMDA3MTM5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDIwNzQ2LCAwLjAyMDc2LCAwLjAyMDc2LCAwLjAyMDc1OSwgMC4wMjA3NTksIDAuMDIwNzU3LCAwLjAyMDc1NyIsIFwKLSAgICAgICAgICAiMC4wMjA2NDUsIDAuMDIwNzE1LCAwLjAyMDcyNiwgMC4wMjA3MjgsIDAuMDIwNzMyLCAwLjAyMDczLCAwLjAyMDczMSIsIFwKLSAgICAgICAgICAiMC4wMjA1OTYsIDAuMDIwNjg5LCAwLjAyMDcwNywgMC4wMjA3MTQsIDAuMDIwNzIsIDAuMDIwNzIyLCAwLjAyMDcyNCIsIFwKLSAgICAgICAgICAiMC4wMjA2MDQsIDAuMDIwNjc3LCAwLjAyMDcsIDAuMDIwNzA5LCAwLjAyMDcxNiwgMC4wMjA3MTgsIDAuMDIwNzIyIiwgXAotICAgICAgICAgICIwLjAyMDY3MSwgMC4wMjA2OTQsIDAuMDIwNzA4LCAwLjAyMDcxMywgMC4wMjA3MTgsIDAuMDIwNzE3LCAwLjAyMDcxOCIsIFwKLSAgICAgICAgICAiMC4wMjA4NTIsIDAuMDIwNzUyLCAwLjAyMDc0NSwgMC4wMjA3MzIsIDAuMDIwNzQyLCAwLjAyMDczNSwgMC4wMjA3MzQiLCBcCi0gICAgICAgICAgIjAuMDIxMTE1LCAwLjAyMDg1MiwgMC4wMjA4MDYsIDAuMDIwNzkzLCAwLjAyMDc3NywgMC4wMjA3NywgMC4wMjA3NTkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDEwOCwgMC4wMDQxMzMsIDAuMDA0MTM1LCAwLjAwNDEzNiwgMC4wMDQxMzYsIDAuMDA0MTM2LCAwLjAwNDEzNyIsIFwKLSAgICAgICAgICAiMC4wMDM5NjksIDAuMDA0MTMsIDAuMDA0MTU3LCAwLjAwNDE2NSwgMC4wMDQxNzIsIDAuMDA0MTc2LCAwLjAwNDE3OSIsIFwKLSAgICAgICAgICAiMC4wMDM5MDksIDAuMDA0MDk3LCAwLjAwNDEzOSwgMC4wMDQxNTMsIDAuMDA0MTY2LCAwLjAwNDE3MiwgMC4wMDQxNzgiLCBcCi0gICAgICAgICAgIjAuMDAzOTc2LCAwLjAwNDEwMiwgMC4wMDQxNDEsIDAuMDA0MTU1LCAwLjAwNDE2OCwgMC4wMDQxNzQsIDAuMDA0MTgiLCBcCi0gICAgICAgICAgIjAuMDA0MTQ0LCAwLjAwNDE1LCAwLjAwNDE2OSwgMC4wMDQxNzYsIDAuMDA0MTg0LCAwLjAwNDE4NywgMC4wMDQxOTEiLCBcCi0gICAgICAgICAgIjAuMDA0NTcxLCAwLjAwNDI3OSwgMC4wMDQyNTIsIDAuMDA0MjUzLCAwLjAwNDI0MiwgMC4wMDQyMzYsIDAuMDA0MjMxIiwgXAotICAgICAgICAgICIwLjAwNTA2OSwgMC4wMDQ0NTEsIDAuMDA0MzcxLCAwLjAwNDM0LCAwLjAwNDMxNCwgMC4wMDQyOTcsIDAuMDA0Mjc3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE4NjE1LCAwLjAxODY3LCAwLjAxODY3NiwgMC4wMTg2NzgsIDAuMDE4Njc4LCAwLjAxODY3OSwgMC4wMTg2NzciLCBcCi0gICAgICAgICAgIjAuMDE4NDQ0LCAwLjAxODYyOCwgMC4wMTg2NTksIDAuMDE4NjY5LCAwLjAxODY3NywgMC4wMTg2ODEsIDAuMDE4NjgzIiwgXAotICAgICAgICAgICIwLjAxODMzOSwgMC4wMTg1NjksIDAuMDE4NjIyLCAwLjAxODY0MSwgMC4wMTg2NTcsIDAuMDE4NjYsIDAuMDE4NjciLCBcCi0gICAgICAgICAgIjAuMDE4MzI1LCAwLjAxODUzMiwgMC4wMTg1OTYsIDAuMDE4NjE3LCAwLjAxODY0LCAwLjAxODY1LCAwLjAxODY1OSIsIFwKLSAgICAgICAgICAiMC4wMTgzODQsIDAuMDE4NTI1LCAwLjAxODU4NiwgMC4wMTg2MDksIDAuMDE4NjMyLCAwLjAxODY0LCAwLjAxODY1MyIsIFwKLSAgICAgICAgICAiMC4wMTg1NjYsIDAuMDE4NTU2LCAwLjAxODYsIDAuMDE4NjA5LCAwLjAxODYzOSwgMC4wMTg2NDYsIDAuMDE4NjU1IiwgXAotICAgICAgICAgICIwLjAxODgyMSwgMC4wMTg2MzgsIDAuMDE4NjQ1LCAwLjAxODY1NCwgMC4wMTg2NjIsIDAuMDE4NjY2LCAwLjAxODY3MiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0MDk0LCAwLjAwNDEyNCwgMC4wMDQxMjgsIDAuMDA0MTI4LCAwLjAwNDEyOSwgMC4wMDQxMywgMC4wMDQxMjgiLCBcCi0gICAgICAgICAgIjAuMDA0MDA4LCAwLjAwNDEzNSwgMC4wMDQxNTYsIDAuMDA0MTYzLCAwLjAwNDE2OSwgMC4wMDQxNzIsIDAuMDA0MTc1IiwgXAotICAgICAgICAgICIwLjAwNDA0NiwgMC4wMDQxNjUsIDAuMDA0MTcsIDAuMDA0MTc2LCAwLjAwNDE4LCAwLjAwNDE4MywgMC4wMDQxODciLCBcCi0gICAgICAgICAgIjAuMDA0MjUyLCAwLjAwNDE5NSwgMC4wMDQyMTIsIDAuMDA0MjAyLCAwLjAwNDIwMiwgMC4wMDQyLCAwLjAwNDIiLCBcCi0gICAgICAgICAgIjAuMDA0Njc3LCAwLjAwNDM0MSwgMC4wMDQyOTksIDAuMDA0Mjc3LCAwLjAwNDI1OSwgMC4wMDQyNDgsIDAuMDA0MjM3IiwgXAotICAgICAgICAgICIwLjAwNTQwOCwgMC4wMDQ1ODMsIDAuMDA0NDU5LCAwLjAwNDQyMiwgMC4wMDQzNywgMC4wMDQzNCwgMC4wMDQzMTIiLCBcCi0gICAgICAgICAgIjAuMDA1ODQsIDAuMDA0ODgxLCAwLjAwNDY2NSwgMC4wMDQ1NzUsIDAuMDA0NTA2LCAwLjAwNDQ1NSwgMC4wMDQ0MDUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDMCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTY1MSwgMC4wMTY1NDIsIDAuMDE2NTQ0LCAwLjAxNjU0MywgMC4wMTY1NDQsIDAuMDE2NTQ0LCAwLjAxNjU0IiwgXAotICAgICAgICAgICIwLjAxNjQyOCwgMC4wMTY0OTYsIDAuMDE2NTA3LCAwLjAxNjUxNCwgMC4wMTY1MTUsIDAuMDE2NTE1LCAwLjAxNjUxNCIsIFwKLSAgICAgICAgICAiMC4wMTY1MTksIDAuMDE2NTA4LCAwLjAxNjUxMSwgMC4wMTY1MTMsIDAuMDE2NTE0LCAwLjAxNjUxNCwgMC4wMTY1MTMiLCBcCi0gICAgICAgICAgIjAuMDE2ODIzLCAwLjAxNjU4LCAwLjAxNjU1MiwgMC4wMTY1NDIsIDAuMDE2NTM1LCAwLjAxNjUzLCAwLjAxNjUyMyIsIFwKLSAgICAgICAgICAiMC4wMTcxMiwgMC4wMTY3MTUsIDAuMDE2NjI0LCAwLjAxNjYxLCAwLjAxNjU4NSwgMC4wMTY1NywgMC4wMTY1NTYiLCBcCi0gICAgICAgICAgIjAuMDE3NzQ2LCAwLjAxNjk2NCwgMC4wMTY3OTcsIDAuMDE2NzM1LCAwLjAxNjY3NiwgMC4wMTY2NDYsIDAuMDE2NjE3IiwgXAotICAgICAgICAgICIwLjAxODM1OSwgMC4wMTcyMTMsIDAuMDE2OTc0LCAwLjAxNjg4MSwgMC4wMTY3ODksIDAuMDE2NzM5LCAwLjAxNjY5MyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwOTE3LCAwLjAwMTAyNCwgMC4wMDEwMzYsIDAuMDAxMDQsIDAuMDAxMDQzLCAwLjAwMTA0NCwgMC4wMDEwNDYiLCBcCi0gICAgICAgICAgIjAuMDAwNzgzLCAwLjAwMTA5MiwgMC4wMDExMzcsIDAuMDAxMTUyLCAwLjAwMTE2NSwgMC4wMDExNzEsIDAuMDAxMTc3IiwgXAotICAgICAgICAgICIwLjAwMDc1OCwgMC4wMDEwNzQsIDAuMDAxMTM3LCAwLjAwMTE1OCwgMC4wMDExNzcsIDAuMDAxMTg3LCAwLjAwMTE5NiIsIFwKLSAgICAgICAgICAiMC4wMDA4NzksIDAuMDAxMDg1LCAwLjAwMTE0NywgMC4wMDExNjgsIDAuMDAxMTg3LCAwLjAwMTE5NywgMC4wMDEyMDYiLCBcCi0gICAgICAgICAgIjAuMDAxMDg0LCAwLjAwMTEzMiwgMC4wMDExNzQsIDAuMDAxMTksIDAuMDAxMjA1LCAwLjAwMTIxMiwgMC4wMDEyMiIsIFwKLSAgICAgICAgICAiMC4wMDE1OCwgMC4wMDEyNTksIDAuMDAxMjYsIDAuMDAxMjYxLCAwLjAwMTI2MSwgMC4wMDEyNiwgMC4wMDEyNTgiLCBcCi0gICAgICAgICAgIjAuMDAyMTUxLCAwLjAwMTQyNSwgMC4wMDEzNjUsIDAuMDAxMzQ0LCAwLjAwMTMzNSwgMC4wMDEzMjUsIDAuMDAxMzExIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQzEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE0NTk5LCAwLjAxNDY3MywgMC4wMTQ2ODEsIDAuMDE0NjgzLCAwLjAxNDY4NiwgMC4wMTQ2ODQsIDAuMDE0Njg3IiwgXAotICAgICAgICAgICIwLjAxNDQ2NiwgMC4wMTQ2MzQsIDAuMDE0NjY1LCAwLjAxNDY3NCwgMC4wMTQ2ODMsIDAuMDE0Njg2LCAwLjAxNDY4OSIsIFwKLSAgICAgICAgICAiMC4wMTQ1MTIsIDAuMDE0NjE2LCAwLjAxNDY1LCAwLjAxNDY2MSwgMC4wMTQ2NzUsIDAuMDE0Njc4LCAwLjAxNDY4MiIsIFwKLSAgICAgICAgICAiMC4wMTQ3ODgsIDAuMDE0NjY0LCAwLjAxNDY3NCwgMC4wMTQ2NzQsIDAuMDE0NjgxLCAwLjAxNDY4NSwgMC4wMTQ2ODgiLCBcCi0gICAgICAgICAgIjAuMDE1MDgsIDAuMDE0Nzc2LCAwLjAxNDczMSwgMC4wMTQ3MjksIDAuMDE0NzIxLCAwLjAxNDcyMiwgMC4wMTQ3MTQiLCBcCi0gICAgICAgICAgIjAuMDE1NTgzLCAwLjAxNDk5NiwgMC4wMTQ4NzUsIDAuMDE0ODM1LCAwLjAxNDc5OCwgMC4wMTQ3NzgsIDAuMDE0NzYzIiwgXAotICAgICAgICAgICIwLjAxNjE0OCwgMC4wMTUyMiwgMC4wMTUwMzQsIDAuMDE0OTYzLCAwLjAxNDg5MSwgMC4wMTQ4NTksIDAuMDE0ODI5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDA5MDksIDAuMDAxMDI2LCAwLjAwMTAzOSwgMC4wMDEwNDMsIDAuMDAxMDQ2LCAwLjAwMTA0OCwgMC4wMDEwNDkiLCBcCi0gICAgICAgICAgIjAuMDAwODYzLCAwLjAwMTExMiwgMC4wMDExNTIsIDAuMDAxMTY0LCAwLjAwMTE3NSwgMC4wMDExODEsIDAuMDAxMTg2IiwgXAotICAgICAgICAgICIwLjAwMDk0MSwgMC4wMDExNSwgMC4wMDExODMsIDAuMDAxMTk0LCAwLjAwMTIwNCwgMC4wMDEyMSwgMC4wMDEyMTUiLCBcCi0gICAgICAgICAgIjAuMDAxMjU3LCAwLjAwMTE5NSwgMC4wMDEyMjUsIDAuMDAxMjI5LCAwLjAwMTIyNSwgMC4wMDEyMjksIDAuMDAxMjMyIiwgXAotICAgICAgICAgICIwLjAwMTY2MSwgMC4wMDEzMDcsIDAuMDAxMjk1LCAwLjAwMTI4NywgMC4wMDEyNzgsIDAuMDAxMjczLCAwLjAwMTI2OCIsIFwKLSAgICAgICAgICAiMC4wMDIyMTksIDAuMDAxNTA4LCAwLjAwMTQyOSwgMC4wMDEzOTUsIDAuMDAxMzc2LCAwLjAwMTM1NSwgMC4wMDEzMzUiLCBcCi0gICAgICAgICAgIjAuMDAyOTI3LCAwLjAwMTc2OCwgMC4wMDE2MDMsIDAuMDAxNTM3LCAwLjAwMTQ5MSwgMC4wMDE0NTUsIDAuMDAxNDE2Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBBT0kyQkIxWDEgKgotICogLS0tLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChBT0kyQkIxWDEpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4zMTMzMTg7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEwTikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNzE4NTExOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDcxNjc0OTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA3MTg1MTE7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNTI2LCAwLjAwMDUzMywgMC4wMDA1ODQsIDAuMDAwNjcxLCAwLjAwMDc3NywgMC4wMDA5NzgsIDAuMDAxMTU0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyNzA3LCAwLjAwMjY4NiwgMC4wMDI3MSwgMC4wMDI3NjQsIDAuMDAyODQyLCAwLjAwMjk5LCAwLjAwMzEzOCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQTFOKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2ODIzMDg7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjgyMzA4OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDY4MjE1OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDMyLCAwLjAwMDMxOCwgMC4wMDAzNjcsIDAuMDAwNDU1LCAwLjAwMDU0NywgMC4wMDA3MiwgMC4wMDA4ODQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDI0NDIsIDAuMDAyNDUsIDAuMDAyNTA5LCAwLjAwMjU5MiwgMC4wMDI2OTgsIDAuMDAyODc5LCAwLjAwMzA0Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwOTkzNzgyOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDk5MDI2NzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA5OTM3ODI7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNDc0LCAwLjAwMDUwNiwgMC4wMDA1MSwgMC4wMDA1MTMsIDAuMDAwNTE3LCAwLjAwMDUxOSwgMC4wMDA1MTkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA1MzIsIDAuMDAwNTMyLCAwLjAwMDUzMiwgMC4wMDA1MzMsIDAuMDAwNTMyLCAwLjAwMDUzMywgMC4wMDA1MzMiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4xODc5MTk7Ci0gICAgZnVuY3Rpb24gOiAiKCEoKCEoQTBOK0ExTikpK0IwKSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEwTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc4ODk3LCAwLjExMjc4MSwgMC4zMDQ0MTEsIDAuNDczNDQ5LCAwLjY5ODc0NSwgMS4xNDk0MSwgMS40MzExNiIsIFwKLSAgICAgICAgICAiMC4wODY3NzcsIDAuMTIwNjc1LCAwLjMxMjI5NywgMC40ODEzMTksIDAuNzA2Njc3LCAxLjE1NzQsIDEuNDM4OTkiLCBcCi0gICAgICAgICAgIjAuMDk0Mzc1LCAwLjEyODI2MSwgMC4zMTk4OTcsIDAuNDg4OTEzLCAwLjcxNDI0MiwgMS4xNjQ5NSwgMS40NDY2MSIsIFwKLSAgICAgICAgICAiMC4wOTk5MDksIDAuMTMzNzk4LCAwLjMyNTQ5MywgMC40OTQ0NzgsIDAuNzE5ODE0LCAxLjE3MDQyLCAxLjQ1MjExIiwgXAotICAgICAgICAgICIwLjEwNDM5OCwgMC4xMzgyNjEsIDAuMzI5OTA5LCAwLjQ5ODk3NSwgMC43MjQyNDksIDEuMTc1MiwgMS40NTY1MiIsIFwKLSAgICAgICAgICAiMC4xMTAzNTcsIDAuMTQ0MDM1LCAwLjMzNTg2NywgMC41MDQ4MzcsIDAuNzI5OTQ4LCAxLjE4MTE5LCAxLjQ2MjM0IiwgXAotICAgICAgICAgICIwLjExNDY3NiwgMC4xNDg1NDIsIDAuMzQwMTk5LCAwLjUwOTEzNCwgMC43MzQ1MzMsIDEuMTg1MjcsIDEuNDY2ODQiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTMxNTg0LCAwLjIwMjk1MywgMC42MDY0NSwgMC45NjQxMDgsIDEuNDM4MDQsIDIuMzg4NjcsIDIuOTgyMzQiLCBcCi0gICAgICAgICAgIjAuMTMxNTk4LCAwLjIwMjkwOSwgMC42MDY2ODcsIDAuOTY0MjAyLCAxLjQzODA2LCAyLjM5MTczLCAyLjk4MjYzIiwgXAotICAgICAgICAgICIwLjEzMTY4OSwgMC4yMDI4NTMsIDAuNjA2NzU1LCAwLjk2MzI2OCwgMS40Mzg1OCwgMi4zODg1MSwgMi45ODI1MSIsIFwKLSAgICAgICAgICAiMC4xMzE4MDgsIDAuMjAyODk4LCAwLjYwNjk2LCAwLjk2MzYxMSwgMS40Mzk4NywgMi4zODkyOSwgMi45ODM4MSIsIFwKLSAgICAgICAgICAiMC4xMzE5NDMsIDAuMjAyODIsIDAuNjA2NDc0LCAwLjk2Mjc0NCwgMS40MzkwNCwgMi4zOTExNSwgMi45ODQ0MSIsIFwKLSAgICAgICAgICAiMC4xMzIzMDYsIDAuMjAyOTgxLCAwLjYwNjg3NSwgMC45NjMyNzcsIDEuNDM4ODQsIDIuMzg3ODQsIDIuOTg2MjYiLCBcCi0gICAgICAgICAgIjAuMTMyODc1LCAwLjIwMzA0NCwgMC42MDY4ODMsIDAuOTYzMzQ5LCAxLjQzODk0LCAyLjM4ODQxLCAyLjk4MjE2Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2NDQ1OSwgMC4wODI3NjEsIDAuMTg1Mzc1LCAwLjI3NTg4MywgMC4zOTY2MjQsIDAuNjM3Nzc1LCAwLjc4ODc2NiIsIFwKLSAgICAgICAgICAiMC4wNzAxMzIsIDAuMDg4NDIxLCAwLjE5MTAzNiwgMC4yODE1MzYsIDAuNDAyMiwgMC42NDM3NDgsIDAuNzk0MjkzIiwgXAotICAgICAgICAgICIwLjA3NjMxOCwgMC4wOTQ2MTQsIDAuMTk3MjM5LCAwLjI4Nzc3LCAwLjQwODQzMywgMC42NDk3NTYsIDAuODAwNjIiLCBcCi0gICAgICAgICAgIjAuMDgxMzQyLCAwLjA5OTY4OCwgMC4yMDIzMjcsIDAuMjkyODM2LCAwLjQxMzUyNSwgMC42NTQ5ODMsIDAuODA1NTY4IiwgXAotICAgICAgICAgICIwLjA4NTQ4MywgMC4xMDM4OTgsIDAuMjA2NTUsIDAuMjk3MDgxLCAwLjQxNzY5LCAwLjY1ODk4NywgMC44MDk4OTIiLCBcCi0gICAgICAgICAgIjAuMDkxMzQyLCAwLjEwOTgwNSwgMC4yMTI1MjQsIDAuMzAyOTkzLCAwLjQyMzY4OCwgMC42NjQ5NDgsIDAuODE1ODE4IiwgXAotICAgICAgICAgICIwLjA5NTgyMiwgMC4xMTQzMjQsIDAuMjE3MDMyLCAwLjMwNzQ3MiwgMC40MjgxODUsIDAuNjY5NDQ4LCAwLjgyMDM0MSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzEzMDgsIDAuMTA3NDk5LCAwLjMxNzMzOCwgMC41MDM3NzUsIDAuNzUwOTA4LCAxLjI0OTQ1LCAxLjU1NzU2IiwgXAotICAgICAgICAgICIwLjA3MTMwNCwgMC4xMDc1NDQsIDAuMzE3MzI0LCAwLjUwMzczMSwgMC43NTA3MzksIDEuMjQ3MzEsIDEuNTU3MTEiLCBcCi0gICAgICAgICAgIjAuMDcxNjYzLCAwLjEwNzc2NCwgMC4zMTczNzEsIDAuNTAyNTczLCAwLjc1MDU3NywgMS4yNDc0NiwgMS41NTc4MSIsIFwKLSAgICAgICAgICAiMC4wNzIyNTYsIDAuMTA4MTU4LCAwLjMxNzUwMiwgMC41MDI2NDQsIDAuNzUxMDc5LCAxLjI0NzI4LCAxLjU1NzEzIiwgXAotICAgICAgICAgICIwLjA3Mjg4OCwgMC4xMDg2NzcsIDAuMzE3NTgxLCAwLjUwMjYyLCAwLjc1MjQ0NywgMS4yNDcwMSwgMS41NTc5MyIsIFwKLSAgICAgICAgICAiMC4wNzM5MjUsIDAuMTA5MzMzLCAwLjMxNzc1MiwgMC41MDM4NywgMC43NTA2NjUsIDEuMjQ3MDMsIDEuNTYwMzkiLCBcCi0gICAgICAgICAgIjAuMDc0NDc1LCAwLjExMDAwNCwgMC4zMTc2MjUsIDAuNTAzODAyLCAwLjc1MDc4NywgMS4yNDcwNCwgMS41NTc4MyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMU4iOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3NzEyMywgMC4xMTA5NjUsIDAuMzAyNjcsIDAuNDcxNzE3LCAwLjY5Nzg5LCAxLjE0OTExLCAxLjQyOTY2IiwgXAotICAgICAgICAgICIwLjA4NDc1NCwgMC4xMTg2MzMsIDAuMzEwMzI0LCAwLjQ3OTQzLCAwLjcwNTI1NywgMS4xNTY0LCAxLjQzNzkiLCBcCi0gICAgICAgICAgIjAuMDkxNDQ4LCAwLjEyNTM0LCAwLjMxNzExOSwgMC40ODYyLCAwLjcxMTkxNiwgMS4xNjI1MSwgMS40NDUyNSIsIFwKLSAgICAgICAgICAiMC4wOTYzMTEsIDAuMTMwMTc1LCAwLjMyMjIyLCAwLjQ5MTA5MywgMC43MTY0MTYsIDEuMTY3NDQsIDEuNDQ5OTQiLCBcCi0gICAgICAgICAgIjAuMTAwMDU2LCAwLjEzNDA4OSwgMC4zMjU3ODUsIDAuNDk0OTk5LCAwLjcyMDU1NSwgMS4xNzA5OSwgMS40NTMwNiIsIFwKLSAgICAgICAgICAiMC4xMDUxMzMsIDAuMTM4OTc3LCAwLjMzMDU1NCwgMC40OTk2NzUsIDAuNzI1MTg5LCAxLjE3NjcyLCAxLjQ2MDA3IiwgXAotICAgICAgICAgICIwLjEwOTAxNiwgMC4xNDI5MDUsIDAuMzM0NDA0LCAwLjUwMzcxNCwgMC43MjkyMTMsIDEuMTgwMzcsIDEuNDYyMjkiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTMxMzQ3LCAwLjIwMjk0MywgMC42MDY4OTksIDAuOTY0Nzc0LCAxLjQzODY5LCAyLjM4OTI1LCAyLjk4ODI1IiwgXAotICAgICAgICAgICIwLjEzMTU1NSwgMC4yMDI5NTMsIDAuNjA2ODMsIDAuOTY0NjIsIDEuNDM4MTgsIDIuMzg4NjYsIDIuOTg0NjgiLCBcCi0gICAgICAgICAgIjAuMTMxNjI2LCAwLjIwMywgMC42MDY1MjQsIDAuOTYzNDkxLCAxLjQzODEzLCAyLjM5Mjg0LCAyLjk4Mzc0IiwgXAotICAgICAgICAgICIwLjEzMTc3NCwgMC4yMDI4MDIsIDAuNjA2NjQyLCAwLjk2Mjc2NSwgMS40Mzg4NSwgMi4zODgxMywgMi45ODM5NiIsIFwKLSAgICAgICAgICAiMC4xMzE4OTUsIDAuMjAyNzQ4LCAwLjYwNjgzNCwgMC45NjM0ODIsIDEuNDM4MTMsIDIuMzkxOTQsIDIuOTg0ODMiLCBcCi0gICAgICAgICAgIjAuMTMyNDIzLCAwLjIwMjkyNywgMC42MDc0NDUsIDAuOTYzMzg0LCAxLjQ0MDY2LCAyLjM4ODY0LCAyLjk4NDIyIiwgXAotICAgICAgICAgICIwLjEzMjk0MiwgMC4yMDMwNjMsIDAuNjA2OTA2LCAwLjk2Mjg2NCwgMS40MzkwNywgMi4zODg1LCAyLjk4MjUxIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2MjIwMSwgMC4wODA1MDYsIDAuMTgzMTQsIDAuMjczNjUsIDAuMzk0MzE5LCAwLjYzNTczNiwgMC43ODY1MzUiLCBcCi0gICAgICAgICAgIjAuMDY5NTgxLCAwLjA4Nzg3NCwgMC4xOTA1LCAwLjI4MTAwNCwgMC40MDE2NzIsIDAuNjQzMTgyLCAwLjc5MzkwMyIsIFwKLSAgICAgICAgICAiMC4wNzgwMDQsIDAuMDk2MzA4LCAwLjE5ODkxNiwgMC4yODkzOTksIDAuNDEwMTA3LCAwLjY1MTQ0NCwgMC44MDIyODkiLCBcCi0gICAgICAgICAgIjAuMDg0NzksIDAuMTAzMTU1LCAwLjIwNTczNiwgMC4yOTYyNzUsIDAuNDE3LCAwLjY1ODUzNywgMC44MDkwMDYiLCBcCi0gICAgICAgICAgIjAuMDkwMjU4LCAwLjEwODg1MiwgMC4yMTEzNDksIDAuMzAxODQ1LCAwLjQyMjQ5NywgMC42NjQxOTQsIDAuODE1MTIzIiwgXAotICAgICAgICAgICIwLjA5Nzk3MiwgMC4xMTY0NTYsIDAuMjE5MjcyLCAwLjMwOTc0NSwgMC40MzA0NDQsIDAuNjcxNzUxLCAwLjgyMzA4MyIsIFwKLSAgICAgICAgICAiMC4xMDM2ODcsIDAuMTIyMjE2LCAwLjIyNDgzLCAwLjMxNTI2NSwgMC40MzU5NjEsIDAuNjc3NDQ2LCAwLjgyODIyOCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzEyOTQsIDAuMTA3NDU4LCAwLjMxNzMyNiwgMC41MDM3NDMsIDAuNzUyMjAxLCAxLjI0NzQ5LCAxLjU1NzkzIiwgXAotICAgICAgICAgICIwLjA3MTMwMSwgMC4xMDc1NCwgMC4zMTczMzMsIDAuNTAzNzMzLCAwLjc1MDczOSwgMS4yNDcyOSwgMS41NTc1OSIsIFwKLSAgICAgICAgICAiMC4wNzE4MDIsIDAuMTA3ODYzLCAwLjMxNjk3LCAwLjUwMzY5MiwgMC43NTA2NDMsIDEuMjQ3NTUsIDEuNTU3ODUiLCBcCi0gICAgICAgICAgIjAuMDcyNDkxLCAwLjEwODM2MiwgMC4zMTc0NTcsIDAuNTAyNTUxLCAwLjc1MTU5NywgMS4yNDcwNywgMS41NTcwNSIsIFwKLSAgICAgICAgICAiMC4wNzMxMDMsIDAuMTA4NzgzLCAwLjMxNzMxLCAwLjUwMzg0NSwgMC43NTIxOTgsIDEuMjQ3ODYsIDEuNTU4MTIiLCBcCi0gICAgICAgICAgIjAuMDczOTM4LCAwLjEwOTQyMSwgMC4zMTc5MDEsIDAuNTAzOTgzLCAwLjc1MTA4NiwgMS4yNDY4LCAxLjU1OCIsIFwKLSAgICAgICAgICAiMC4wNzQ2ODEsIDAuMTEwMTQzLCAwLjMxNzY3NCwgMC41MDM5MTYsIDAuNzUwOTE4LCAxLjI0NzI5LCAxLjU1NzUyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjczNTEsIDAuMTAxMjM0LCAwLjI5MzE3NSwgMC40NjIyNjIsIDAuNjg4MzI4LCAxLjE0MDAzLCAxLjQyMjE5IiwgXAotICAgICAgICAgICIwLjA3MzIzOSwgMC4xMDcxMzcsIDAuMjk4OTcxLCAwLjQ2Nzk3OSwgMC42OTMzMDcsIDEuMTQ0NDIsIDEuNDI2NDMiLCBcCi0gICAgICAgICAgIjAuMDgwNTg1LCAwLjExNDQ2LCAwLjMwNjQ1NSwgMC40NzU1NTMsIDAuNzAxMjA0LCAxLjE1MjQ2LCAxLjQzNTYxIiwgXAotICAgICAgICAgICIwLjA4Nzk0OCwgMC4xMjE3ODksIDAuMzEzOTk0LCAwLjQ4Mjk1NiwgMC43MDg4NTMsIDEuMTU5OCwgMS40NDMxOCIsIFwKLSAgICAgICAgICAiMC4wOTUyMzIsIDAuMTI5MTUsIDAuMzIxMzU2LCAwLjQ5MDg5MywgMC43MTY1NTEsIDEuMTY3MTksIDEuNDQ5NTgiLCBcCi0gICAgICAgICAgIjAuMTA1NTAyLCAwLjE0MTYyNywgMC4zMzMzNzIsIDAuNTAyNjg2LCAwLjcyODY4NiwgMS4xNzk5OCwgMS40NjExOCIsIFwKLSAgICAgICAgICAiMC4xMTMyNTEsIDAuMTUwNzYyLCAwLjM0MzU3NCwgMC41MTI5NjgsIDAuNzM4NTMsIDEuMTkwMjEsIDEuNDcxNzgiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTMxNTM2LCAwLjIwMjcwNSwgMC42MDY5MjIsIDAuOTYzNjgyLCAxLjQzODg4LCAyLjM4OTkxLCAyLjk4NDIyIiwgXAotICAgICAgICAgICIwLjEzMTY1NywgMC4yMDI5NzIsIDAuNjA3NTAxLCAwLjk2NDgxLCAxLjQ0MDgyLCAyLjM4OTMxLCAyLjk4ODExIiwgXAotICAgICAgICAgICIwLjEzMzg5NCwgMC4yMDM5MjgsIDAuNjA2NTMyLCAwLjk2NDYwNCwgMS40NDA2OSwgMi4zODk4LCAyLjk4NDUyIiwgXAotICAgICAgICAgICIwLjEzNzkxMSwgMC4yMDYzMzUsIDAuNjA2NjMyLCAwLjk2Mjg3MSwgMS40Mzg3MiwgMi4zOTMwMSwgMi45ODQyMSIsIFwKLSAgICAgICAgICAiMC4xNDI5NywgMC4yMTAyODIsIDAuNjA3OTYsIDAuOTYzMjM1LCAxLjQzODQxLCAyLjM5MzA4LCAyLjk4MjcyIiwgXAotICAgICAgICAgICIwLjE1MjQ2OSwgMC4yMTgzODIsIDAuNjEwMDE4LCAwLjk2NDQ3NSwgMS40NDA3NywgMi4zOTAzNCwgMi45ODQzIiwgXAotICAgICAgICAgICIwLjE2MTU2NCwgMC4yMjU3MDEsIDAuNjEyMzc1LCAwLjk2NDQzLCAxLjQzOTA4LCAyLjM4ODY0LCAyLjk4NDY1Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzNzYxMywgMC4wNTU3NjMsIDAuMTU4NDQ2LCAwLjI0OTAwNywgMC4zNjk3NjksIDAuNjExMTQ3LCAwLjc2MjE2MSIsIFwKLSAgICAgICAgICAiMC4wNDU5ODQsIDAuMDY0MTE1LCAwLjE2NjcxOSwgMC4yNTcyNjQsIDAuMzc3ODg5LCAwLjYxOTA0MywgMC43Njk5MzYiLCBcCi0gICAgICAgICAgIjAuMDU2ODEyLCAwLjA3NDg4MSwgMC4xNzc0MiwgMC4yNjc5NDcsIDAuMzg4NjM4LCAwLjYyOTkyMiwgMC43ODEwNDYiLCBcCi0gICAgICAgICAgIjAuMDY3MzcsIDAuMDg1MzAxLCAwLjE4Nzc1MywgMC4yNzgzOTcsIDAuMzk5MTMsIDAuNjQwMjg2LCAwLjc5MTM1NCIsIFwKLSAgICAgICAgICAiMC4wNzYxNjMsIDAuMDk2MDA2LCAwLjE5ODIxMSwgMC4yODg2NTUsIDAuNDA5MjkzLCAwLjY1MDY3NiwgMC44MDEzNTIiLCBcCi0gICAgICAgICAgIjAuMDg3OTQsIDAuMTExMDk1LCAwLjIxNTQ1OSwgMC4zMDU2ODgsIDAuNDI2MjQzLCAwLjY2NzU0MywgMC44MTg0NTUiLCBcCi0gICAgICAgICAgIjAuMDk1ODY0LCAwLjEyMjM3NCwgMC4yMzA2MDIsIDAuMzIwNjcyLCAwLjQ0MTIxMSwgMC42ODI1NjYsIDAuODMzMjc4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2OTU4NiwgMC4xMDY4MTMsIDAuMzE3ODE5LCAwLjUwMzk3MiwgMC43NTIwNDEsIDEuMjQ4MiwgMS41NTg2OSIsIFwKLSAgICAgICAgICAiMC4wNzA5NDYsIDAuMTA3MTI3LCAwLjMxNzY1OCwgMC41MDM4MjksIDAuNzUxOTMsIDEuMjQ3NywgMS41NTc2OSIsIFwKLSAgICAgICAgICAiMC4wNzcxNDQsIDAuMTExNDA5LCAwLjMxNzg1LCAwLjUwMzk3NSwgMC43NTE5MDQsIDEuMjQ4NTcsIDEuNTU4MjEiLCBcCi0gICAgICAgICAgIjAuMDg1MDgyLCAwLjExODU5MSwgMC4zMTkwNjYsIDAuNTAzOTUyLCAwLjc1MjE4OSwgMS4yNDgxNCwgMS41NTgwNiIsIFwKLSAgICAgICAgICAiMC4wOTQzNTgsIDAuMTI2NzY2LCAwLjMyMjQwOSwgMC41MDQ1NjMsIDAuNzUxOTE3LCAxLjI0ODE0LCAxLjU1ODE4IiwgXAotICAgICAgICAgICIwLjEwOTUxNiwgMC4xNDEyOCwgMC4zMzA0MTcsIDAuNTA4NTc0LCAwLjc1MjM3NSwgMS4yNDc3LCAxLjU1ODM5IiwgXAotICAgICAgICAgICIwLjEyMzUyNSwgMC4xNTQ1NzQsIDAuMzM5MTI3LCAwLjUxNDEyNSwgMC43NTQ3OTMsIDEuMjQ4MTgsIDEuNTU4MzciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBME4iOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjEwNCwgMC4wMDIxMTEsIDAuMDAyMTIxLCAwLjAwMjEyMiwgMC4wMDIxMjUsIDAuMDAyMTI1LCAwLjAwMjEyNCIsIFwKLSAgICAgICAgICAiMC4wMDIwOTEsIDAuMDAyMTAxLCAwLjAwMjExNSwgMC4wMDIxMTgsIDAuMDAyMTIsIDAuMDAyMTIxLCAwLjAwMjEyMSIsIFwKLSAgICAgICAgICAiMC4wMDIxNDQsIDAuMDAyMTU1LCAwLjAwMjE3MywgMC4wMDIxNzcsIDAuMDAyMTc5LCAwLjAwMjE4MSwgMC4wMDIxODIiLCBcCi0gICAgICAgICAgIjAuMDAyMjI4LCAwLjAwMjIzOCwgMC4wMDIyNTgsIDAuMDAyMjYyLCAwLjAwMjI2NSwgMC4wMDIyNjgsIDAuMDAyMjY4IiwgXAotICAgICAgICAgICIwLjAwMjMyOSwgMC4wMDIzMzcsIDAuMDAyMzU3LCAwLjAwMjM2MiwgMC4wMDIzNjUsIDAuMDAyMzY4LCAwLjAwMjM2OSIsIFwKLSAgICAgICAgICAiMC4wMDI1MTYsIDAuMDAyNTIxLCAwLjAwMjU0NiwgMC4wMDI1NTMsIDAuMDAyNTUsIDAuMDAyNTYsIDAuMDAyNTU0IiwgXAotICAgICAgICAgICIwLjAwMjY4MSwgMC4wMDI2OTgsIDAuMDAyNzIsIDAuMDAyNzE2LCAwLjAwMjczMiwgMC4wMDI3MjUsIDAuMDAyNzI2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzMjE2LCAwLjAwMzIyNCwgMC4wMDMyMzYsIDAuMDAzMjM4LCAwLjAwMzIzOSwgMC4wMDMyNCwgMC4wMDMyNDEiLCBcCi0gICAgICAgICAgIjAuMDAzMTksIDAuMDAzMiwgMC4wMDMyMTMsIDAuMDAzMjE1LCAwLjAwMzIxNywgMC4wMDMyMTgsIDAuMDAzMjE4IiwgXAotICAgICAgICAgICIwLjAwMzIxLCAwLjAwMzIxOSwgMC4wMDMyMzMsIDAuMDAzMjM4LCAwLjAwMzI0LCAwLjAwMzI0MSwgMC4wMDMyNDIiLCBcCi0gICAgICAgICAgIjAuMDAzMjYxLCAwLjAwMzI3MSwgMC4wMDMyODYsIDAuMDAzMjg5LCAwLjAwMzI5LCAwLjAwMzI5MiwgMC4wMDMyOTIiLCBcCi0gICAgICAgICAgIjAuMDAzMzMzLCAwLjAwMzM0MSwgMC4wMDMzNTYsIDAuMDAzMzU5LCAwLjAwMzM2MSwgMC4wMDMzNjIsIDAuMDAzMzYzIiwgXAotICAgICAgICAgICIwLjAwMzQ2NiwgMC4wMDM0NzgsIDAuMDAzNDk2LCAwLjAwMzUwMSwgMC4wMDM1MDIsIDAuMDAzNTA0LCAwLjAwMzUwNSIsIFwKLSAgICAgICAgICAiMC4wMDM2MTIsIDAuMDAzNjE2LCAwLjAwMzYzOCwgMC4wMDM2NDIsIDAuMDAzNjQ0LCAwLjAwMzY0NSwgMC4wMDM2NDYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMU4iOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTkwMSwgMC4wMDE5MDcsIDAuMDAxOTE1LCAwLjAwMTkxNiwgMC4wMDE5MTcsIDAuMDAxOTE3LCAwLjAwMTkxOCIsIFwKLSAgICAgICAgICAiMC4wMDE4NzgsIDAuMDAxODg3LCAwLjAwMTksIDAuMDAxOTAzLCAwLjAwMTkwNCwgMC4wMDE5MDUsIDAuMDAxOTA2IiwgXAotICAgICAgICAgICIwLjAwMTkyOCwgMC4wMDE5MzcsIDAuMDAxOTU2LCAwLjAwMTk2LCAwLjAwMTk2MiwgMC4wMDE5NjQsIDAuMDAxOTY0IiwgXAotICAgICAgICAgICIwLjAwMjAxNCwgMC4wMDIwMTYsIDAuMDAyMDM0LCAwLjAwMjAzOSwgMC4wMDIwNDEsIDAuMDAyMDQzLCAwLjAwMjA0MyIsIFwKLSAgICAgICAgICAiMC4wMDIxMDMsIDAuMDAyMTIxLCAwLjAwMjE0MiwgMC4wMDIxNDcsIDAuMDAyMTQ5LCAwLjAwMjE0MywgMC4wMDIxNTMiLCBcCi0gICAgICAgICAgIjAuMDAyMjc2LCAwLjAwMjI4MywgMC4wMDIzMDIsIDAuMDAyMzA4LCAwLjAwMjMxMywgMC4wMDIzMTMsIDAuMDAyMzE3IiwgXAotICAgICAgICAgICIwLjAwMjQzNSwgMC4wMDI0MzgsIDAuMDAyNDY0LCAwLjAwMjQ2NCwgMC4wMDI0NywgMC4wMDI0NzcsIDAuMDAyNDc4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyOTU4LCAwLjAwMjk2NywgMC4wMDI5OCwgMC4wMDI5ODMsIDAuMDAyOTg1LCAwLjAwMjk4NiwgMC4wMDI5ODYiLCBcCi0gICAgICAgICAgIjAuMDAyOTQ2LCAwLjAwMjk1OCwgMC4wMDI5NzQsIDAuMDAyOTc4LCAwLjAwMjk4LCAwLjAwMjk4MSwgMC4wMDI5ODIiLCBcCi0gICAgICAgICAgIjAuMDAzMDA1LCAwLjAwMzAxNiwgMC4wMDMwMzMsIDAuMDAzMDM2LCAwLjAwMzAzOCwgMC4wMDMwNCwgMC4wMDMwNCIsIFwKLSAgICAgICAgICAiMC4wMDMwOCwgMC4wMDMwOTMsIDAuMDAzMTEzLCAwLjAwMzExNywgMC4wMDMxMiwgMC4wMDMxMjIsIDAuMDAzMTIyIiwgXAotICAgICAgICAgICIwLjAwMzE3NSwgMC4wMDMxODcsIDAuMDAzMjA2LCAwLjAwMzIxMSwgMC4wMDMyMTQsIDAuMDAzMjE2LCAwLjAwMzIxNyIsIFwKLSAgICAgICAgICAiMC4wMDMzNDcsIDAuMDAzMzYsIDAuMDAzMzc3LCAwLjAwMzM4MiwgMC4wMDMzODYsIDAuMDAzMzg4LCAwLjAwMzM4OSIsIFwKLSAgICAgICAgICAiMC4wMDM1MDgsIDAuMDAzNTE5LCAwLjAwMzUyOSwgMC4wMDM1MzUsIDAuMDAzNTM5LCAwLjAwMzU0MiwgMC4wMDM1NDMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyMzg1LCAwLjAwMjM4OCwgMC4wMDIzOTIsIDAuMDAyMzkzLCAwLjAwMjM5MywgMC4wMDIzOTMsIDAuMDAyMzkzIiwgXAotICAgICAgICAgICIwLjAwMjM2LCAwLjAwMjM3LCAwLjAwMjM4NSwgMC4wMDIzODgsIDAuMDAyMzk0LCAwLjAwMjM5NiwgMC4wMDIzODkiLCBcCi0gICAgICAgICAgIjAuMDAyMzU0LCAwLjAwMjM2MywgMC4wMDIzODEsIDAuMDAyMzg3LCAwLjAwMjM4OSwgMC4wMDIzOSwgMC4wMDIzOTEiLCBcCi0gICAgICAgICAgIjAuMDAyMzcsIDAuMDAyMzcyLCAwLjAwMjM4MiwgMC4wMDIzODYsIDAuMDAyMzg5LCAwLjAwMjM5MSwgMC4wMDIzOTIiLCBcCi0gICAgICAgICAgIjAuMDAyNDA0LCAwLjAwMjM5NSwgMC4wMDIzOTEsIDAuMDAyMzkxLCAwLjAwMjM5MiwgMC4wMDIzOTMsIDAuMDAyMzkzIiwgXAotICAgICAgICAgICIwLjAwMjQ4NiwgMC4wMDI0NjEsIDAuMDAyNDE3LCAwLjAwMjQwOSwgMC4wMDI0MDQsIDAuMDAyNCwgMC4wMDIzOTkiLCBcCi0gICAgICAgICAgIjAuMDAyNTgxLCAwLjAwMjUyNywgMC4wMDI0NSwgMC4wMDI0MywgMC4wMDI0MTksIDAuMDAyNDEsIDAuMDAyNDA3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwMjI0LCAwLjAwMDIyNSwgMC4wMDAyMjcsIDAuMDAwMjI4LCAwLjAwMDIyOCwgMC4wMDAyMjgsIDAuMDAwMjI4IiwgXAotICAgICAgICAgICIwLjAwMDIwNywgMC4wMDAyMSwgMC4wMDAyMTQsIDAuMDAwMjE1LCAwLjAwMDIxNSwgMC4wMDAyMTMsIDAuMDAwMjEzIiwgXAotICAgICAgICAgICIwLjAwMDIyOCwgMC4wMDAyMjksIDAuMDAwMjE2LCAwLjAwMDIxNiwgMC4wMDAyMTYsIDAuMDAwMjE1LCAwLjAwMDIxNSIsIFwKLSAgICAgICAgICAiMC4wMDAyODksIDAuMDAwMjksIDAuMDAwMjQ1LCAwLjAwMDIzNSwgMC4wMDAyMjksIDAuMDAwMjIsIDAuMDAwMjE5IiwgXAotICAgICAgICAgICIwLjAwMDM2NCwgMC4wMDAzNDksIDAuMDAwMjcsIDAuMDAwMjUxLCAwLjAwMDI0LCAwLjAwMDIzLCAwLjAwMDIyNCIsIFwKLSAgICAgICAgICAiMC4wMDA1MTIsIDAuMDAwNDY1LCAwLjAwMDMyLCAwLjAwMDI4NiwgMC4wMDAyNjUsIDAuMDAwMjQ2LCAwLjAwMDI0IiwgXAotICAgICAgICAgICIwLjAwMDcyNywgMC4wMDA2MTEsIDAuMDAwMzc1LCAwLjAwMDMyMiwgMC4wMDAyOTEsIDAuMDAwMjY0LCAwLjAwMDI1NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IEFPSTMxWEwgKgotICogLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoQU9JMzFYTCkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjIwMjMzNzsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQTApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDU4NDc3OTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA1ODM1NzQ7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNTg0Nzc5OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDI5NiwgMC4wMDAyOTYsIDAuMDAwMjk2LCAwLjAwMDI5NiwgMC4wMDAyOTYsIDAuMDAwMjk2LCAwLjAwMDI5NiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDI5NywgMC4wMDAyOTcsIDAuMDAwMjk3LCAwLjAwMDI5NywgMC4wMDAyOTcsIDAuMDAwMjk2LCAwLjAwMDI5NyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQTEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDU5ODczNzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA1OTczNzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA1OTg3Mzc7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjk2LCAwLjAwMDI5NiwgMC4wMDAyOTYsIDAuMDAwMjk2LCAwLjAwMDI5NiwgMC4wMDAyOTYsIDAuMDAwMjk2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjk3LCAwLjAwMDI5NywgMC4wMDAyOTcsIDAuMDAwMjk3LCAwLjAwMDI5NywgMC4wMDAyOTcsIDAuMDAwMjk3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihBMikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjE3MTc0OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYxNTA4MjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2MTcxNzQ7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMTE1LCAwLjAwMDExNCwgMC4wMDAxMTQsIDAuMDAwMTE0LCAwLjAwMDExNCwgMC4wMDAxMTQsIDAuMDAwMTE0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzM3LCAwLjAwMDMzOCwgMC4wMDAzMzgsIDAuMDAwMzM4LCAwLjAwMDMzOCwgMC4wMDAzMzgsIDAuMDAwMzM4Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjMwMjY3OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYzMDI2NzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2MzAyMDY7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMDY0LCAwLjAwMDA2NCwgMC4wMDAwNjQsIDAuMDAwMDY0LCAwLjAwMDA2NCwgMC4wMDAwNjQsIDAuMDAwMDY0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNjUyLCAwLjAwMDY1MiwgMC4wMDA2NTIsIDAuMDAwNjUzLCAwLjAwMDY1MywgMC4wMDA2NTIsIDAuMDAwNjUyIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMDg4NjcyNDsKLSAgICBmdW5jdGlvbiA6ICIoISgoKEEwIEExKSBBMikrQjApKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTAiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExNjgyNCwgMC4xMzU5NywgMC4zMDg1MDYsIDAuNTk2MDMsIDAuODgzODI2LCAxLjU1NTc2LCAxLjkzOTg5IiwgXAotICAgICAgICAgICIwLjEyMzczMywgMC4xNDMwMzEsIDAuMzE1NjI3LCAwLjYwMzIwNCwgMC44OTAzNzYsIDEuNTYxNzgsIDEuOTQ0NzUiLCBcCi0gICAgICAgICAgIjAuMTMwOTQ3LCAwLjE1MDE1OCwgMC4zMjI4NjgsIDAuNjEwNzQ5LCAwLjg5Nzk4NCwgMS41Njk5NywgMS45NTI2NSIsIFwKLSAgICAgICAgICAiMC4xMzc5MTYsIDAuMTU3MTA5LCAwLjMyOTk3OSwgMC42MTc2MTgsIDAuOTA0ODE2LCAxLjU3NjE2LCAxLjk1OTc4IiwgXAotICAgICAgICAgICIwLjE0NDgxMiwgMC4xNjQxMywgMC4zMzY3MTUsIDAuNjI0MjIzLCAwLjkxMjY5OCwgMS41ODIyNywgMS45NjcyNiIsIFwKLSAgICAgICAgICAiMC4xNTU5NCwgMC4xNzUyNTgsIDAuMzQ4MDA4LCAwLjYzNTkzOCwgMC45MjMxOCwgMS41OTM4NSwgMS45Nzg5NCIsIFwKLSAgICAgICAgICAiMC4xNjU2NTMsIDAuMTg1MDY2LCAwLjM1NzY1OCwgMC42NDUyMDIsIDAuOTMzNzM0LCAxLjYwNTA5LCAxLjk4NzEyIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIyNjU4NiwgMC4yNjczOTYsIDAuNjM0MjQzLCAxLjI0NDczLCAxLjg1NTAzLCAzLjI3OTU1LCA0LjA5NDk2IiwgXAotICAgICAgICAgICIwLjIyNjY2LCAwLjI2NzQyNCwgMC42MzM4NDMsIDEuMjQ1MDEsIDEuODU0NjQsIDMuMjc5NTUsIDQuMDkyNDQiLCBcCi0gICAgICAgICAgIjAuMjI2OTY2LCAwLjI2NzUwMiwgMC42MzM2OTIsIDEuMjQ0OSwgMS44NTU5NiwgMy4yODAxMSwgNC4wOTQwNyIsIFwKLSAgICAgICAgICAiMC4yMjg5MDIsIDAuMjY4OTU0LCAwLjYzMzg4MywgMS4yNDQ3LCAxLjg1NDQ3LCAzLjI4MDM0LCA0LjA5MzA4IiwgXAotICAgICAgICAgICIwLjIzMjA1MSwgMC4yNzE3ODksIDAuNjM0MDY0LCAxLjI0NTE3LCAxLjg1NTY1LCAzLjI3ODYxLCA0LjA5NDQ2IiwgXAotICAgICAgICAgICIwLjIzODc4NCwgMC4yNzc3MzIsIDAuNjM1NjQzLCAxLjI0NDcxLCAxLjg1NDQ5LCAzLjI3ODE4LCA0LjA5MzMxIiwgXAotICAgICAgICAgICIwLjI0NTkwOSwgMC4yODQyMTcsIDAuNjM4Njg3LCAxLjI0NDUzLCAxLjg1NTMsIDMuMjgwNDYsIDQuMDkxNTEiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTQ4MDU2LCAwLjE3MjMzMywgMC4zODk4MzksIDAuNzUxODk2LCAxLjExMzk3LCAxLjk1ODg1LCAyLjQ0MDc5IiwgXAotICAgICAgICAgICIwLjE1MzI2MywgMC4xNzc0NjQsIDAuMzk0OTU5LCAwLjc1NzIzOCwgMS4xMTk3MSwgMS45NjU0MiwgMi40NDY3NiIsIFwKLSAgICAgICAgICAiMC4xNTg4OCwgMC4xODMyMDYsIDAuNDAwNjksIDAuNzYzMDY2LCAxLjEyNDg4LCAxLjk2OTQxLCAyLjQ1MTk2IiwgXAotICAgICAgICAgICIwLjE2NDUzOSwgMC4xODg3MzEsIDAuNDA2NTUxLCAwLjc2ODQ4OSwgMS4xMzA3MiwgMS45NzUwNywgMi40NTc4NCIsIFwKLSAgICAgICAgICAiMC4xNzAxNzQsIDAuMTk0NDUzLCAwLjQxMTkxNiwgMC43NzQ0MzMsIDEuMTM2NjksIDEuOTgwMzIsIDIuNDY0MjkiLCBcCi0gICAgICAgICAgIjAuMTc5NDQ1LCAwLjIwMzY3OSwgMC40MjEzNzcsIDAuNzgzMjYyLCAxLjE0NTU0LCAxLjk5MDg5LCAyLjQ3MTg2IiwgXAotICAgICAgICAgICIwLjE4ODAyMywgMC4yMTIxMjgsIDAuNDI5MjksIDAuNzkxNDMxLCAxLjE1MywgMS45OTc2MSwgMi40Nzk2MiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yODEyMjEsIDAuMzMwODYxLCAwLjc3ODc0OSwgMS41MjM4NiwgMi4yNjkyNCwgNC4wMDgxOCwgNS4wMDI0NiIsIFwKLSAgICAgICAgICAiMC4yODExMTIsIDAuMzMwODIyLCAwLjc3ODYyNSwgMS41MjQ0LCAyLjI2OTg3LCA0LjAwOTc5LCA1LjAwMTk4IiwgXAotICAgICAgICAgICIwLjI4MTM2NywgMC4zMzA5NTcsIDAuNzc4NzEsIDEuNTI0NzIsIDIuMjY5NDgsIDQuMDA4OTEsIDUuMDAxOTMiLCBcCi0gICAgICAgICAgIjAuMjgyNDc2LCAwLjMzMTgxOCwgMC43Nzg1NzYsIDEuNTIzODYsIDIuMjY5MjcsIDQuMDA4OSwgNS4wMDM4OCIsIFwKLSAgICAgICAgICAiMC4yODQ0ODYsIDAuMzMzNDI3LCAwLjc3ODQ4NSwgMS41MjQyLCAyLjI3MDMsIDQuMDEwOTYsIDUuMDAzMTkiLCBcCi0gICAgICAgICAgIjAuMjg5MjIsIDAuMzM3NDk3LCAwLjc3OTM0NywgMS41MjQ2NywgMi4yNjkxNiwgNC4wMDkyLCA1LjAwMzI3IiwgXAotICAgICAgICAgICIwLjI5NDc1NywgMC4zNDIyOTIsIDAuNzgwODc1LCAxLjUyNCwgMi4yNjk0NiwgNC4wMDg1NiwgNS4wMDE3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkExIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTQ1NzIsIDAuMTMzNzE4LCAwLjMwNjU1MSwgMC41OTM5MiwgMC44ODIwMjksIDEuNTUzOTEsIDEuOTM1ODgiLCBcCi0gICAgICAgICAgIjAuMTIxNSwgMC4xNDA3ODMsIDAuMzEzMjQ3LCAwLjYwMDg4MSwgMC44ODgxMTIsIDEuNTU5NDcsIDEuOTQyNDgiLCBcCi0gICAgICAgICAgIjAuMTI4NjY4LCAwLjE0Nzg2NSwgMC4zMjA1MTQsIDAuNjA4MjA4LCAwLjg5NTU3NywgMS41NjczNywgMS45NTA1MyIsIFwKLSAgICAgICAgICAiMC4xMzU2LCAwLjE1NDg1OSwgMC4zMjc1MTEsIDAuNjE1MjIzLCAwLjkwMjc0OCwgMS41NzUwMywgMS45NTg3MiIsIFwKLSAgICAgICAgICAiMC4xNDI1NzEsIDAuMTYxODgzLCAwLjMzNDQ5MiwgMC42MjIyMSwgMC45MTA4NjQsIDEuNTgwMDMsIDEuOTY1MjIiLCBcCi0gICAgICAgICAgIjAuMTUzNTg1LCAwLjE3Mjk3MywgMC4zNDU3NjEsIDAuNjMzNzE4LCAwLjkyMDYwNiwgMS41OTEzLCAxLjk3NjQiLCBcCi0gICAgICAgICAgIjAuMTYzMjA0LCAwLjE4MjcxMSwgMC4zNTUyOTQsIDAuNjQzMTk5LCAwLjkzMTMyNywgMS42MDI3NSwgMS45ODQ4Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIyMzU1LCAwLjI2NDE4LCAwLjYzMDg0MSwgMS4yNDA5NiwgMS44NTE2NSwgMy4yNzYzOCwgNC4wODg2NCIsIFwKLSAgICAgICAgICAiMC4yMjM1NjUsIDAuMjY0MjYyLCAwLjYzMDgyOCwgMS4yNDE5LCAxLjg1MDc3LCAzLjI3NTUxLCA0LjA4ODMyIiwgXAotICAgICAgICAgICIwLjIyMzkyMSwgMC4yNjQ1MjEsIDAuNjMwNTU4LCAxLjI0MTg3LCAxLjg1MjkyLCAzLjI3NjQ3LCA0LjA5MDciLCBcCi0gICAgICAgICAgIjAuMjI1ODU5LCAwLjI2NjAzMywgMC42MzA3NjQsIDEuMjQwOTUsIDEuODUxMjcsIDMuMjc2MzksIDQuMDkwNDIiLCBcCi0gICAgICAgICAgIjAuMjI5MTY4LCAwLjI2ODgwOSwgMC42MzA4ODMsIDEuMjQxMDEsIDEuODUyNTUsIDMuMjgwOTUsIDQuMDkwNjgiLCBcCi0gICAgICAgICAgIjAuMjM1ODg0LCAwLjI3NDg0NywgMC42MzI0ODUsIDEuMjQxNDIsIDEuODUwODEsIDMuMjc0NjgsIDQuMDkwMTIiLCBcCi0gICAgICAgICAgIjAuMjQzMDg0LCAwLjI4MTQ2LCAwLjYzNTU3NSwgMS4yNDE4MSwgMS44NTE2NSwgMy4yNzY1NywgNC4wODgzMSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNDY1MTYsIDAuMTcwNjkxLCAwLjM4ODE2LCAwLjc1MDIxOSwgMS4xMTIyNSwgMS45NTY4MiwgMi40NDAwMyIsIFwKLSAgICAgICAgICAiMC4xNTI3NjIsIDAuMTc2ODc4LCAwLjM5NDUzOSwgMC43NTY1OTUsIDEuMTE4NTEsIDEuOTYzMDYsIDIuNDQ1ODMiLCBcCi0gICAgICAgICAgIjAuMTYwNTI4LCAwLjE4NDgxMywgMC40MDIyMzcsIDAuNzY0NjY5LCAxLjEyNjgyLCAxLjk3MDY1LCAyLjQ1NDEiLCBcCi0gICAgICAgICAgIjAuMTY4Mjc4LCAwLjE5MjY2NywgMC40MTAyNzcsIDAuNzcyMjQ2LCAxLjEzMzkzLCAxLjk3OTIxLCAyLjQ2MjAyIiwgXAotICAgICAgICAgICIwLjE3NjM2LCAwLjIwMDQ4NiwgMC40MTgxMSwgMC43ODAwNjUsIDEuMTQxOTMsIDEuOTg3NTcsIDIuNDcwMSIsIFwKLSAgICAgICAgICAiMC4xODkxMzEsIDAuMjEzNDIsIDAuNDMwNjI5LCAwLjc5Mjg4LCAxLjE1NDg0LCAxLjk5ODYsIDIuNDgxNTQiLCBcCi0gICAgICAgICAgIjAuMjAwNTgyLCAwLjIyNDgxOSwgMC40NDE5MjMsIDAuODA0MDE3LCAxLjE2NjQxLCAyLjAxMDE4LCAyLjQ5MzU5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI4MTA4LCAwLjMzMDkxOCwgMC43Nzg2NSwgMS41MjM4NiwgMi4yNjk0MiwgNC4wMDg5NCwgNS4wMDI1OSIsIFwKLSAgICAgICAgICAiMC4yODExMjcsIDAuMzMxMDU4LCAwLjc3ODU4NywgMS41MjQ1OCwgMi4yNjk0NCwgNC4wMDg4OSwgNS4wMDE4OSIsIFwKLSAgICAgICAgICAiMC4yODExNzMsIDAuMzMwODQ1LCAwLjc3ODU0MiwgMS41MjQyLCAyLjI3MDE2LCA0LjAwOTY4LCA1LjAwMzQ2IiwgXAotICAgICAgICAgICIwLjI4MjgxOSwgMC4zMzE5MzMsIDAuNzc4NDkyLCAxLjUyMzcyLCAyLjI2OTQ2LCA0LjAwOTIzLCA1LjAwMzQ5IiwgXAotICAgICAgICAgICIwLjI4NTc2LCAwLjMzNDE2NywgMC43Nzg1MjcsIDEuNTI0NDYsIDIuMjY5MDgsIDQuMDA4OTcsIDUuMDAzMjIiLCBcCi0gICAgICAgICAgIjAuMjkyMzg1LCAwLjMzOTk4NCwgMC43Nzk0NTQsIDEuNTIzNzcsIDIuMjY5MjgsIDQuMDA3OTYsIDUuMDA1MTEiLCBcCi0gICAgICAgICAgIjAuMjk5NjksIDAuMzQ2NTIyLCAwLjc4MTI2NywgMS41MjQzOSwgMi4yNjk1MywgNC4wMDgzNiwgNS4wMDMxNiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTEwNzYsIDAuMTI5NjYxLCAwLjMwMDI0MiwgMC41ODQyNzksIDAuODY5MjQ3LCAxLjUzMjgzLCAxLjkxMDE3IiwgXAotICAgICAgICAgICIwLjExNzc2NywgMC4xMzY2ODYsIDAuMzA3Mjk4LCAwLjU5MTA3OCwgMC44NzU1NjEsIDEuNTM4MzUsIDEuOTE2MjYiLCBcCi0gICAgICAgICAgIjAuMTI0OTU4LCAwLjE0Mzk4NSwgMC4zMTQ1NTksIDAuNTk5NDIsIDAuODgyMjczLCAxLjU0NTM5LCAxLjkyNjM3IiwgXAotICAgICAgICAgICIwLjEzMTkxNCwgMC4xNTA5MywgMC4zMjE0ODIsIDAuNjA1NzY4LCAwLjg5MDQ4OCwgMS41NTI3MiwgMS45MzE1NSIsIFwKLSAgICAgICAgICAiMC4xMzg5MzcsIDAuMTU3ODU4LCAwLjMyODUzLCAwLjYxMjgyMywgMC44OTc5MjUsIDEuNTU4OTQsIDEuOTM5MTIiLCBcCi0gICAgICAgICAgIjAuMTUwMTQ3LCAwLjE2OTE4OSwgMC4zMzk4NywgMC42MjQwMDUsIDAuOTA4MTQ1LCAxLjU3MDY0LCAxLjk1MTE0IiwgXAotICAgICAgICAgICIwLjE1OTYyMSwgMC4xNzkxMjYsIDAuMzQ5NzQzLCAwLjYzNDM0NSwgMC45MTgzNDUsIDEuNTgxNjIsIDEuOTU5MzYiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjE2OTIyLCAwLjI1NzAwNywgMC42MTgzMjMsIDEuMjE5ODgsIDEuODIyNiwgMy4yMjc1MSwgNC4wMjc5MyIsIFwKLSAgICAgICAgICAiMC4yMTY4OTgsIDAuMjU3MTQ1LCAwLjYxODI4OSwgMS4yMTk2LCAxLjgyMTYxLCAzLjIyNTc5LCA0LjAzMDU4IiwgXAotICAgICAgICAgICIwLjIxNzY3OCwgMC4yNTcxODYsIDAuNjE4NDIxLCAxLjIyMDU0LCAxLjgyMjYzLCAzLjIyNzA2LCA0LjAzMDE5IiwgXAotICAgICAgICAgICIwLjIxOTQyOCwgMC4yNTg5MiwgMC42MTkxMDksIDEuMjIwNzQsIDEuODIyMzcsIDMuMjI1NzMsIDQuMDMwNzEiLCBcCi0gICAgICAgICAgIjAuMjIyOTUzLCAwLjI2MTc2LCAwLjYxOTI4NywgMS4yMTk4LCAxLjgyMjYxLCAzLjIzMTE5LCA0LjAyOTc2IiwgXAotICAgICAgICAgICIwLjIyOTgwMiwgMC4yNjc5OTUsIDAuNjE5OTk5LCAxLjIyMDM2LCAxLjgyMTQ2LCAzLjIyNTE5LCA0LjAyOTUyIiwgXAotICAgICAgICAgICIwLjIzNzE0OSwgMC4yNzQ4NDgsIDAuNjI0Mjg2LCAxLjIyMDEzLCAxLjgyMjc5LCAzLjIyNzAzLCA0LjAyNzUyIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE0MzEyOCwgMC4xNjczNjEsIDAuMzg0NzU2LCAwLjc0NzIwNCwgMS4xMDg1NiwgMS45NTI5NiwgMi40MzY4NiIsIFwKLSAgICAgICAgICAiMC4xNDk5NiwgMC4xNzQyNDQsIDAuMzkxODgzLCAwLjc1Mzk0NCwgMS4xMTU4NywgMS45NjAzOCwgMi40NDMyMSIsIFwKLSAgICAgICAgICAiMC4xNTg3NTUsIDAuMTgyMzEsIDAuNDAwMzMxLCAwLjc2MjI3NCwgMS4xMjQ3OSwgMS45NjgzMywgMi40NTE5MiIsIFwKLSAgICAgICAgICAiMC4xNjc3NSwgMC4xOTIwMDYsIDAuNDA5MjkyLCAwLjc3MTI0MiwgMS4xMzMwMSwgMS45Nzc5NCwgMi40NjEyMSIsIFwKLSAgICAgICAgICAiMC4xNzY5MjQsIDAuMjAxMDYzLCAwLjQxODQxOCwgMC43ODAwNDIsIDEuMTQyMzIsIDEuOTg3MTYsIDIuNDcwMSIsIFwKLSAgICAgICAgICAiMC4xOTE4MTIsIDAuMjE1NzEyLCAwLjQzMjUyNiwgMC43OTQyNzMsIDEuMTU2LCAyLjAwMDE3LCAyLjQ4NDEzIiwgXAotICAgICAgICAgICIwLjIwNTAzLCAwLjIyODk2MSwgMC40NDUyNzMsIDAuODA2Nzk2LCAxLjE2ODMsIDIuMDEyNjgsIDIuNDk0ODYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjgxMTk5LCAwLjMzMTEwMywgMC43Nzg1MywgMS41MjQzMSwgMi4yNzA1NCwgNC4wMDkwNywgNS4wMDI1NSIsIFwKLSAgICAgICAgICAiMC4yODEyNDEsIDAuMzMwODM4LCAwLjc3ODYwNCwgMS41MjQyMSwgMi4yNjkyOSwgNC4wMDg5NSwgNS4wMDE4OSIsIFwKLSAgICAgICAgICAiMC4yODEzMDcsIDAuMzMwODI2LCAwLjc3ODU2MSwgMS41MjQ0MiwgMi4yNjk4NiwgNC4wMDgyLCA1LjAwMzc2IiwgXAotICAgICAgICAgICIwLjI4MzM3NSwgMC4zMzIwNDMsIDAuNzc4NTM1LCAxLjUyMzczLCAyLjI2OTEyLCA0LjAxMDA3LCA1LjAwMjEiLCBcCi0gICAgICAgICAgIjAuMjg3MjU2LCAwLjMzNTI0NSwgMC43Nzg3MzgsIDEuNTIzNzIsIDIuMjcwMDUsIDQuMDA4MzEsIDUuMDAzMTQiLCBcCi0gICAgICAgICAgIjAuMjk2MDY3LCAwLjM0Mjc0OSwgMC43NzkwNjgsIDEuNTIzNzEsIDIuMjY5MTEsIDQuMDA4MjksIDUuMDAzMTciLCBcCi0gICAgICAgICAgIjAuMzA1NDQxLCAwLjM1MTM0OCwgMC43ODIyMDQsIDEuNTI0MjMsIDIuMjY4OTgsIDQuMDA5MDgsIDUuMDAxNzgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjAiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwOTUxMiwgMC4xMjg3NjksIDAuMzAxNDM1LCAwLjU4ODk4MiwgMC44NzcxMjQsIDEuNTQ3NzUsIDEuOTMxNTIiLCBcCi0gICAgICAgICAgIjAuMTE2OTcxLCAwLjEzNjE5MywgMC4zMDg4NTYsIDAuNTk2MzUxLCAwLjg4NDMzOSwgMS41NTUzNiwgMS45Mzc0OCIsIFwKLSAgICAgICAgICAiMC4xMjYzMDksIDAuMTQ1NTI5LCAwLjMxODA4NSwgMC42MDU2MjIsIDAuODkzMDQ4LCAxLjU2NDYzLCAxLjk0ODI5IiwgXAotICAgICAgICAgICIwLjEzNTc4OCwgMC4xNTQ5MjEsIDAuMzI3NTM0LCAwLjYxNTMyNiwgMC45MDI1MDQsIDEuNTczNzMsIDEuOTU4NzIiLCBcCi0gICAgICAgICAgIjAuMTQ1NCwgMC4xNjQ0NzgsIDAuMzM2OTg3LCAwLjYyNDI4MSwgMC45MTIyODMsIDEuNTgyMjcsIDEuOTY3NDMiLCBcCi0gICAgICAgICAgIjAuMTYxMDczLCAwLjE4MDAxMSwgMC4zNTIwMjMsIDAuNjM5Mjc4LCAwLjkyNjQzOCwgMS41OTcyNCwgMS45ODEzNyIsIFwKLSAgICAgICAgICAiMC4xNzQ5NjUsIDAuMTkzNzc3LCAwLjM2NTMyMSwgMC42NDk5NiwgMC45Mzk2NjIsIDEuNjEwNCwgMS45OTMzNSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMjY1MDUsIDAuMjY3MzA3LCAwLjYzMzkwNiwgMS4yNDQ1NiwgMS44NTUxOCwgMy4yNzkxLCA0LjA5NDkyIiwgXAotICAgICAgICAgICIwLjIyNjU3NSwgMC4yNjczOTEsIDAuNjMzNzA4LCAxLjI0NDI4LCAxLjg1NTAxLCAzLjI3ODk1LCA0LjA5NjEzIiwgXAotICAgICAgICAgICIwLjIyNzI5MiwgMC4yNjc0NjYsIDAuNjM0MzMxLCAxLjI0NDI5LCAxLjg1NjQsIDMuMjgxMTgsIDQuMDkyODciLCBcCi0gICAgICAgICAgIjAuMjMwOTE0LCAwLjI3MDIzOSwgMC42MzM4NTIsIDEuMjQ0NzYsIDEuODU0NjIsIDMuMjc5LCA0LjA5NDY2IiwgXAotICAgICAgICAgICIwLjIzNjMzMywgMC4yNzQ4MiwgMC42MzM4NjIsIDEuMjQ0MzYsIDEuODU1NTUsIDMuMjgzMDgsIDQuMDkzMzMiLCBcCi0gICAgICAgICAgIjAuMjQ3MTM5LCAwLjI4NDYwNiwgMC42MzY4NjQsIDEuMjQ0MzEsIDEuODU1MTYsIDMuMjc4MzIsIDQuMDk1NjQiLCBcCi0gICAgICAgICAgIjAuMjU3NzcsIDAuMjk0NDcxLCAwLjY0MDg5NiwgMS4yNDQ4NCwgMS44NTQ2MSwgMy4yODA1MSwgNC4wOTE5NiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTQ3NjksIDAuMDY0NDYzLCAwLjE1MTYsIDAuMjk2NjExLCAwLjQ0MTUyNywgMC43NzkyNTIsIDAuOTcyMDciLCBcCi0gICAgICAgICAgIjAuMDYyOTY4LCAwLjA3MjY0MSwgMC4xNTk4MDksIDAuMzA0NzUxLCAwLjQ0OTcxNSwgMC43ODc0NzIsIDAuOTgwMjc1IiwgXAotICAgICAgICAgICIwLjA3MzM3NSwgMC4wODMwMTIsIDAuMTY5OTU0LCAwLjMxNTEwMSwgMC40NTk4NjgsIDAuNzk3NTM2LCAwLjk5MDM3NSIsIFwKLSAgICAgICAgICAiMC4wODM5MTQsIDAuMDkzNTAzLCAwLjE4MDQ4NSwgMC4zMjU0OTUsIDAuNDcwMzgxLCAwLjgwNzg4NywgMS4wMDA3NCIsIFwKLSAgICAgICAgICAiMC4wOTQzMDIsIDAuMTA0MTQyLCAwLjE5MDgzNiwgMC4zMzU0MDMsIDAuNDgwNjgxLCAwLjgxODE1NiwgMS4wMTA5MyIsIFwKLSAgICAgICAgICAiMC4xMDg1ODUsIDAuMTE5ODc1LCAwLjIwNzcxOCwgMC4zNTIzNzUsIDAuNDk1MDM3LCAwLjgzNDg0MSwgMS4wMjczOCIsIFwKLSAgICAgICAgICAiMC4xMTkxMTMsIDAuMTMxNTgxLCAwLjIyMjMwMywgMC4zNjY5NDUsIDAuNTExNzcxLCAwLjg0OTMzMywgMS4wNDIxMyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTAzNTQsIDAuMTMwMDk0LCAwLjMwNzkyMSwgMC42MDQ3MDksIDAuOTAxMjA5LCAxLjU5NDI1LCAxLjk5MDUxIiwgXAotICAgICAgICAgICIwLjExMDc0OCwgMC4xMzAyMTksIDAuMzA3OTMyLCAwLjYwNDc4LCAwLjkwMTcwNCwgMS41OTQ0MywgMS45OTA0MiIsIFwKLSAgICAgICAgICAiMC4xMTUzOCwgMC4xMzM5MTQsIDAuMzA3OTU1LCAwLjYwNDU1NCwgMC45MDEyOTgsIDEuNTk0NDEsIDEuOTg5OTEiLCBcCi0gICAgICAgICAgIjAuMTIyMzc5LCAwLjE0MDE4OSwgMC4zMDk2MDIsIDAuNjA0NjA2LCAwLjkwMTU4MSwgMS41OTQ0NSwgMS45OTA4NSIsIFwKLSAgICAgICAgICAiMC4xMzA3MDYsIDAuMTQ4MDE5LCAwLjMxMzMzMiwgMC42MDQ2ODksIDAuOTAxMjk4LCAxLjU5NDQsIDEuOTkwNTQiLCBcCi0gICAgICAgICAgIjAuMTQ1NjY0LCAwLjE2MjE2LCAwLjMyMjA2NiwgMC42MDcxNjIsIDAuOTAxMzE2LCAxLjU5NDM5LCAxLjk5MDczIiwgXAotICAgICAgICAgICIwLjE1OTQ0NiwgMC4xNzU1MDcsIDAuMzMxMjQyLCAwLjYxMTc0LCAwLjkwMjM5LCAxLjU5NDMxLCAxLjk5MDcxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjcwMSwgMC4wMDI3MDEsIDAuMDAyNzAxLCAwLjAwMjcsIDAuMDAyNywgMC4wMDI2OTksIDAuMDAyNjk4IiwgXAotICAgICAgICAgICIwLjAwMjY5MywgMC4wMDI2OTMsIDAuMDAyNjk0LCAwLjAwMjY5NCwgMC4wMDI2OTQsIDAuMDAyNjkzLCAwLjAwMjY5MyIsIFwKLSAgICAgICAgICAiMC4wMDI2OSwgMC4wMDI2OTEsIDAuMDAyNjkyLCAwLjAwMjY5MywgMC4wMDI2OTMsIDAuMDAyNjkzLCAwLjAwMjY5MSIsIFwKLSAgICAgICAgICAiMC4wMDI2OTMsIDAuMDAyNjkzLCAwLjAwMjY5MywgMC4wMDI2OTMsIDAuMDAyNjkzLCAwLjAwMjY5MiwgMC4wMDI2OTIiLCBcCi0gICAgICAgICAgIjAuMDAyNywgMC4wMDI3LCAwLjAwMjY5NywgMC4wMDI2OTUsIDAuMDAyNjk1LCAwLjAwMjY5MywgMC4wMDI2OTIiLCBcCi0gICAgICAgICAgIjAuMDAyNzI0LCAwLjAwMjcyMSwgMC4wMDI3MDksIDAuMDAyNzAyLCAwLjAwMjY5OSwgMC4wMDI2OTYsIDAuMDAyNjk0IiwgXAotICAgICAgICAgICIwLjAwMjc1OCwgMC4wMDI3NSwgMC4wMDI3MjYsIDAuMDAyNzEyLCAwLjAwMjcwNiwgMC4wMDI3LCAwLjAwMjY5OCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDY2OCwgMC4wMDA2NjgsIDAuMDAwNjY4LCAwLjAwMDY2OCwgMC4wMDA2NjgsIDAuMDAwNjY3LCAwLjAwMDY2NiIsIFwKLSAgICAgICAgICAiMC4wMDA2NSwgMC4wMDA2NTEsIDAuMDAwNjU0LCAwLjAwMDY1NCwgMC4wMDA2NTQsIDAuMDAwNjU0LCAwLjAwMDY1MyIsIFwKLSAgICAgICAgICAiMC4wMDA2NDQsIDAuMDAwNjQ1LCAwLjAwMDY0OSwgMC4wMDA2NTEsIDAuMDAwNjUxLCAwLjAwMDY1MSwgMC4wMDA2NSIsIFwKLSAgICAgICAgICAiMC4wMDA2NDUsIDAuMDAwNjQ2LCAwLjAwMDY0OSwgMC4wMDA2NSwgMC4wMDA2NTEsIDAuMDAwNjUsIDAuMDAwNjUiLCBcCi0gICAgICAgICAgIjAuMDAwNjU1LCAwLjAwMDY1NCwgMC4wMDA2NTMsIDAuMDAwNjUyLCAwLjAwMDY1MiwgMC4wMDA2NTEsIDAuMDAwNjUiLCBcCi0gICAgICAgICAgIjAuMDAwNjg1LCAwLjAwMDY4MSwgMC4wMDA2NjcsIDAuMDAwNjYsIDAuMDAwNjU3LCAwLjAwMDY1MywgMC4wMDA2NTIiLCBcCi0gICAgICAgICAgIjAuMDAwNzI3LCAwLjAwMDcxOSwgMC4wMDA2ODUsIDAuMDAwNjcsIDAuMDAwNjY0LCAwLjAwMDY1OCwgMC4wMDA2NTYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyMzc1LCAwLjAwMjM3NiwgMC4wMDIzNzYsIDAuMDAyMzc2LCAwLjAwMjM3NiwgMC4wMDIzNzYsIDAuMDAyMzc1IiwgXAotICAgICAgICAgICIwLjAwMjM2OSwgMC4wMDIzNywgMC4wMDIzNzQsIDAuMDAyMzc1LCAwLjAwMjM3NSwgMC4wMDIzNzUsIDAuMDAyMzc1IiwgXAotICAgICAgICAgICIwLjAwMjM2NCwgMC4wMDIzNjYsIDAuMDAyMzcyLCAwLjAwMjM3NCwgMC4wMDIzNzQsIDAuMDAyMzc1LCAwLjAwMjM3NSIsIFwKLSAgICAgICAgICAiMC4wMDIzNjQsIDAuMDAyMzY0LCAwLjAwMjM3MSwgMC4wMDIzNzQsIDAuMDAyMzc0LCAwLjAwMjM3NCwgMC4wMDIzNzUiLCBcCi0gICAgICAgICAgIjAuMDAyMzcsIDAuMDAyMzcxLCAwLjAwMjM3NCwgMC4wMDIzNzUsIDAuMDAyMzc2LCAwLjAwMjM3NSwgMC4wMDIzNzUiLCBcCi0gICAgICAgICAgIjAuMDAyMzkyLCAwLjAwMjM5LCAwLjAwMjM4NSwgMC4wMDIzODIsIDAuMDAyMzgsIDAuMDAyMzc4LCAwLjAwMjM3NyIsIFwKLSAgICAgICAgICAiMC4wMDI0MjQsIDAuMDAyNDE4LCAwLjAwMjQsIDAuMDAyMzkxLCAwLjAwMjM4NywgMC4wMDIzODIsIDAuMDAyMzgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDA2NjgsIDAuMDAwNjY4LCAwLjAwMDY2OCwgMC4wMDA2NjgsIDAuMDAwNjY4LCAwLjAwMDY2NywgMC4wMDA2NjYiLCBcCi0gICAgICAgICAgIjAuMDAwNjUsIDAuMDAwNjUxLCAwLjAwMDY1MywgMC4wMDA2NTQsIDAuMDAwNjU0LCAwLjAwMDY1MywgMC4wMDA2NTMiLCBcCi0gICAgICAgICAgIjAuMDAwNjQ2LCAwLjAwMDY0NywgMC4wMDA2NSwgMC4wMDA2NTEsIDAuMDAwNjUxLCAwLjAwMDY1MSwgMC4wMDA2NSIsIFwKLSAgICAgICAgICAiMC4wMDA2NTEsIDAuMDAwNjUxLCAwLjAwMDY1MiwgMC4wMDA2NTEsIDAuMDAwNjUxLCAwLjAwMDY1MSwgMC4wMDA2NSIsIFwKLSAgICAgICAgICAiMC4wMDA2NjQsIDAuMDAwNjYzLCAwLjAwMDY1NywgMC4wMDA2NTQsIDAuMDAwNjUzLCAwLjAwMDY1MSwgMC4wMDA2NTEiLCBcCi0gICAgICAgICAgIjAuMDAwNjk4LCAwLjAwMDY5MywgMC4wMDA2NzEsIDAuMDAwNjYyLCAwLjAwMDY1OCwgMC4wMDA2NTQsIDAuMDAwNjUzIiwgXAotICAgICAgICAgICIwLjAwMDc0MiwgMC4wMDA3MzMsIDAuMDAwNjkyLCAwLjAwMDY3NCwgMC4wMDA2NjYsIDAuMDAwNjU5LCAwLjAwMDY1NyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEyIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDIwMTYsIDAuMDAyMDE3LCAwLjAwMjAxOCwgMC4wMDIwMTksIDAuMDAyMDE5LCAwLjAwMjAxOSwgMC4wMDIwMTkiLCBcCi0gICAgICAgICAgIjAuMDAyMDEyLCAwLjAwMjAxNCwgMC4wMDIwMjEsIDAuMDAyMDIzLCAwLjAwMjAyNCwgMC4wMDIwMjQsIDAuMDAyMDIyIiwgXAotICAgICAgICAgICIwLjAwMjAwNCwgMC4wMDIwMDcsIDAuMDAyMDE2LCAwLjAwMjAyLCAwLjAwMjAyMywgMC4wMDIwMjQsIDAuMDAyMDI1IiwgXAotICAgICAgICAgICIwLjAwMjAwMiwgMC4wMDIwMDUsIDAuMDAyMDE1LCAwLjAwMjAyMSwgMC4wMDIwMjMsIDAuMDAyMDI1LCAwLjAwMjAyNSIsIFwKLSAgICAgICAgICAiMC4wMDIwMDYsIDAuMDAyMDA4LCAwLjAwMjAxOCwgMC4wMDIwMjIsIDAuMDAyMDI0LCAwLjAwMjAyNiwgMC4wMDIwMjUiLCBcCi0gICAgICAgICAgIjAuMDAyMDI1LCAwLjAwMjAyNSwgMC4wMDIwMjcsIDAuMDAyMDI3LCAwLjAwMjAyOCwgMC4wMDIwMjcsIDAuMDAyMDI3IiwgXAotICAgICAgICAgICIwLjAwMjA1NSwgMC4wMDIwNTEsIDAuMDAyMDQxLCAwLjAwMjAzNiwgMC4wMDIwMzQsIDAuMDAyMDMxLCAwLjAwMjAzMSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDY2OSwgMC4wMDA2NjksIDAuMDAwNjY5LCAwLjAwMDY2OSwgMC4wMDA2NjksIDAuMDAwNjY4LCAwLjAwMDY2NyIsIFwKLSAgICAgICAgICAiMC4wMDA2NTMsIDAuMDAwNjUzLCAwLjAwMDY1NSwgMC4wMDA2NTUsIDAuMDAwNjU1LCAwLjAwMDY1NCwgMC4wMDA2NTQiLCBcCi0gICAgICAgICAgIjAuMDAwNjYsIDAuMDAwNjU2LCAwLjAwMDY1NiwgMC4wMDA2NTUsIDAuMDAwNjU0LCAwLjAwMDY1MywgMC4wMDA2NTIiLCBcCi0gICAgICAgICAgIjAuMDAwNjc3LCAwLjAwMDY3NCwgMC4wMDA2NjMsIDAuMDAwNjU4LCAwLjAwMDY1NiwgMC4wMDA2NTQsIDAuMDAwNjUzIiwgXAotICAgICAgICAgICIwLjAwMDcwNCwgMC4wMDA2OTgsIDAuMDAwNjc2LCAwLjAwMDY2NCwgMC4wMDA2NiwgMC4wMDA2NTYsIDAuMDAwNjU1IiwgXAotICAgICAgICAgICIwLjAwMDc2MSwgMC4wMDA3NDksIDAuMDAwNzAyLCAwLjAwMDY3OSwgMC4wMDA2NzEsIDAuMDAwNjYyLCAwLjAwMDY1OSIsIFwKLSAgICAgICAgICAiMC4wMDA4MiwgMC4wMDA4MDQsIDAuMDAwNzMzLCAwLjAwMDcwMSwgMC4wMDA2ODMsIDAuMDAwNjY5LCAwLjAwMDY2NSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDIwMjIsIDAuMDAyMDIzLCAwLjAwMjAyNSwgMC4wMDIwMjUsIDAuMDAyMDI2LCAwLjAwMjAyNSwgMC4wMDIwMjQiLCBcCi0gICAgICAgICAgIjAuMDAyMDE0LCAwLjAwMjAxNiwgMC4wMDIwMjIsIDAuMDAyMDI0LCAwLjAwMjAyNCwgMC4wMDIwMjQsIDAuMDAyMDI0IiwgXAotICAgICAgICAgICIwLjAwMjAyNCwgMC4wMDIwMjUsIDAuMDAyMDI0LCAwLjAwMjAyNSwgMC4wMDIwMjUsIDAuMDAyMDI0LCAwLjAwMjAyNCIsIFwKLSAgICAgICAgICAiMC4wMDIwNSwgMC4wMDIwNDYsIDAuMDAyMDM0LCAwLjAwMjAyOSwgMC4wMDIwMjcsIDAuMDAyMDI2LCAwLjAwMjAyNSIsIFwKLSAgICAgICAgICAiMC4wMDIwODQsIDAuMDAyMDc4LCAwLjAwMjA1MiwgMC4wMDIwMzgsIDAuMDAyMDM0LCAwLjAwMjAyOSwgMC4wMDIwMjciLCBcCi0gICAgICAgICAgIjAuMDAyMTU4LCAwLjAwMjE0MiwgMC4wMDIwODUsIDAuMDAyMDU4LCAwLjAwMjA0NywgMC4wMDIwMzcsIDAuMDAyMDM0IiwgXAotICAgICAgICAgICIwLjAwMjIzMywgMC4wMDIyMTIsIDAuMDAyMTI1LCAwLjAwMjA4MSwgMC4wMDIwNjQsIDAuMDAyMDQ3LCAwLjAwMjA0MiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDA1MywgMC4wMDAwNTQsIDAuMDAwMDU2LCAwLjAwMDA1NywgMC4wMDAwNTcsIDAuMDAwMDU4LCAwLjAwMDA1OCIsIFwKLSAgICAgICAgICAiMC4wMDAwNTksIDAuMDAwMDYxLCAwLjAwMDA2NywgMC4wMDAwNywgMC4wMDAwNywgMC4wMDAwNywgMC4wMDAwNzEiLCBcCi0gICAgICAgICAgIjAuMDAwMDcyLCAwLjAwMDA3MiwgMC4wMDAwNzMsIDAuMDAwMDczLCAwLjAwMDA3NCwgMC4wMDAwNzUsIDAuMDAwMDc2IiwgXAotICAgICAgICAgICIwLjAwMDA5NiwgMC4wMDAwOTIsIDAuMDAwMDgzLCAwLjAwMDA3OSwgMC4wMDAwNzgsIDAuMDAwMDc3LCAwLjAwMDA3NyIsIFwKLSAgICAgICAgICAiMC4wMDAxMzUsIDAuMDAwMTI3LCAwLjAwMDA5OCwgMC4wMDAwODksIDAuMDAwMDg1LCAwLjAwMDA4MSwgMC4wMDAwOCIsIFwKLSAgICAgICAgICAiMC4wMDAyMjgsIDAuMDAwMjA0LCAwLjAwMDEzNiwgMC4wMDAxMSwgMC4wMDAxLCAwLjAwMDA5LCAwLjAwMDA4NyIsIFwKLSAgICAgICAgICAiMC4wMDAzMzYsIDAuMDAwMjk4LCAwLjAwMDE3OCwgMC4wMDAxMzQsIDAuMDAwMTE4LCAwLjAwMDEwMSwgMC4wMDAwOTYiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBBT0kzM1hMICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKEFPSTMzWEwpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4yODcxODc7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2MTUzMDc7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjEzODQyOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDYxNTMwNzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyOTYsIDAuMDAwMjk2LCAwLjAwMDI5NiwgMC4wMDAyOTYsIDAuMDAwMjk2LCAwLjAwMDI5NiwgMC4wMDAyOTYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyOTcsIDAuMDAwMjk3LCAwLjAwMDI5NywgMC4wMDAyOTcsIDAuMDAwMjk3LCAwLjAwMDI5NywgMC4wMDAyOTciKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEExKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2NTU0MTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2NTM4NzE7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjU1NDE7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjk2LCAwLjAwMDI5NiwgMC4wMDAyOTYsIDAuMDAwMjk2LCAwLjAwMDI5NiwgMC4wMDAyOTYsIDAuMDAwMjk2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjk3LCAwLjAwMDI5NywgMC4wMDAyOTgsIDAuMDAwMjk3LCAwLjAwMDI5OCwgMC4wMDAyOTgsIDAuMDAwMjk4Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihBMikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjY2NjUzOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDY2NDI4ODsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2NjY2NTM7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMTQyLCAwLjAwMDE0MiwgMC4wMDAxNDIsIDAuMDAwMTQyLCAwLjAwMDE0MiwgMC4wMDAxNDIsIDAuMDAwMTQyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzM3LCAwLjAwMDMzOCwgMC4wMDAzMzcsIDAuMDAwMzM3LCAwLjAwMDMzOCwgMC4wMDAzMzgsIDAuMDAwMzM4Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNzIzOTYyOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDcyMzk2MjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA3MjMwMzg7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjk3LCAwLjAwMDI5NiwgMC4wMDAyOTYsIDAuMDAwMjk2LCAwLjAwMDI5NiwgMC4wMDAyOTYsIDAuMDAwMjk2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjk2LCAwLjAwMDI5NywgMC4wMDAyOTcsIDAuMDAwMjk3LCAwLjAwMDI5NywgMC4wMDAyOTcsIDAuMDAwMjk3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCMSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNzE5NDMzOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDcxOTQzMzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA3MTg3MTE7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjk3LCAwLjAwMDI5NywgMC4wMDAyOTYsIDAuMDAwMjk2LCAwLjAwMDI5NiwgMC4wMDAyOTYsIDAuMDAwMjk2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjk3LCAwLjAwMDI5NywgMC4wMDAyOTcsIDAuMDAwMjk3LCAwLjAwMDI5NywgMC4wMDAyOTcsIDAuMDAwMjk3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCMikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjc3NjA4OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDY3NzUyNTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2Nzc2MDg7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMTMyLCAwLjAwMDEzMiwgMC4wMDAxMzIsIDAuMDAwMTMyLCAwLjAwMDEzMiwgMC4wMDAxMzIsIDAuMDAwMTMyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzM3LCAwLjAwMDMzNywgMC4wMDAzMzcsIDAuMDAwMzM3LCAwLjAwMDMzNywgMC4wMDAzMzcsIDAuMDAwMzM3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMDg4OTkxMTsKLSAgICBmdW5jdGlvbiA6ICIoISgoKEIwIEIxKSBCMikrKChBMCBBMSkgQTIpKSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMjg1MDgsIDAuMTQ3NjIsIDAuMzIwMzI3LCAwLjYwODAxMiwgMC44OTUyMTIsIDEuNTY1OTcsIDEuOTUxMTgiLCBcCi0gICAgICAgICAgIjAuMTM1NzQsIDAuMTU1MDc0LCAwLjMyNzkxNiwgMC42MTUyMzYsIDAuOTAzMDE0LCAxLjU3NDAyLCAxLjk1NzIxIiwgXAotICAgICAgICAgICIwLjE0MzM3NiwgMC4xNjI2MzMsIDAuMzM1NTkxLCAwLjYyMjc4NSwgMC45MTA4MzcsIDEuNTgxNzQsIDEuOTY1NTMiLCBcCi0gICAgICAgICAgIjAuMTUwMzk3LCAwLjE2OTYzNCwgMC4zNDI1MjEsIDAuNjMwMzQxLCAwLjkxODAyMiwgMS41ODg0NiwgMS45NzMyNSIsIFwKLSAgICAgICAgICAiMC4xNTczNSwgMC4xNzY1MjMsIDAuMzQ5MjkxLCAwLjYzNjk1MywgMC45MjQ3MzgsIDEuNTk1NDIsIDEuOTc5NjciLCBcCi0gICAgICAgICAgIjAuMTY4NDI1LCAwLjE4NzcwNiwgMC4zNjA1NTgsIDAuNjQ4NTU5LCAwLjkzNTQ3MiwgMS42MDY3NiwgMS45OTAyOCIsIFwKLSAgICAgICAgICAiMC4xNzgzMSwgMC4xOTc0NSwgMC4zNzAyNjIsIDAuNjU3NDk2LCAwLjk0NTYxMiwgMS42MTgwOCwgMS45OTk1OSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yNDMyODksIDAuMjg0MDY0LCAwLjY1MDU4NSwgMS4yNjE3OSwgMS44NzI5NSwgMy4yOTg5OSwgNC4xMTA2NCIsIFwKLSAgICAgICAgICAiMC4yNDMzNDksIDAuMjg0MDg2LCAwLjY1MDgxNSwgMS4yNjE4OSwgMS44NzE4MywgMy4yOTY5NywgNC4xMTA2IiwgXAotICAgICAgICAgICIwLjI0MzQ0NiwgMC4yODQwNDksIDAuNjUwODA1LCAxLjI2MTU3LCAxLjg3MTkxLCAzLjI5NzA1LCA0LjExMjkyIiwgXAotICAgICAgICAgICIwLjI0NDg1LCAwLjI4NTA0MSwgMC42NTA2NTgsIDEuMjYxNzcsIDEuODcyMzcsIDMuMjk4ODksIDQuMTEwNTkiLCBcCi0gICAgICAgICAgIjAuMjQ3NTMzLCAwLjI4NzMwNiwgMC42NTA3ODQsIDEuMjYxNjIsIDEuODcxNzQsIDMuMjk4OTgsIDQuMTEwNDEiLCBcCi0gICAgICAgICAgIjAuMjUzNjM4LCAwLjI5MjgzOCwgMC42NTI2ODYsIDEuMjYxNzcsIDEuODcyNjEsIDMuMjk4NzMsIDQuMTEwOSIsIFwKLSAgICAgICAgICAiMC4yNjAyNjIsIDAuMjk4NzE0LCAwLjY1NDkxMiwgMS4yNjEzLCAxLjg3MjYzLCAzLjI5NzkxLCA0LjEwODgyIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE2MTk5MSwgMC4xODYxNTQsIDAuNDAzNTYxLCAwLjc2NTU4MSwgMS4xMjgwMywgMS45NzM0NSwgMi40NTQ3NSIsIFwKLSAgICAgICAgICAiMC4xNjcwNjQsIDAuMTkxMTc2LCAwLjQwODY2MiwgMC43NzEwMSwgMS4xMzI4NywgMS45NzczOCwgMi40NjA2NyIsIFwKLSAgICAgICAgICAiMC4xNzI2MzMsIDAuMTk2ODU0LCAwLjQxNDM3NSwgMC43NzY4NTcsIDEuMTM4NTYsIDEuOTgzMDksIDIuNDY1OCIsIFwKLSAgICAgICAgICAiMC4xNzgyNDQsIDAuMjAyNTM4LCAwLjQyMDAyNiwgMC43ODE5ODksIDEuMTQzODcsIDEuOTg5LCAyLjQ3MTc4IiwgXAotICAgICAgICAgICIwLjE4NDAzMSwgMC4yMDgxMTksIDAuNDI1NzMyLCAwLjc4ODM1MSwgMS4xNDk3MywgMS45OTUxOCwgMi40NzczMiIsIFwKLSAgICAgICAgICAiMC4xOTMxMzMsIDAuMjE3MzYsIDAuNDM0Nzg1LCAwLjc5NzQ0MywgMS4xNTk1NywgMi4wMDI4OSwgMi40ODY5MiIsIFwKLSAgICAgICAgICAiMC4yMDEzODMsIDAuMjI1NjM2LCAwLjQ0MzEwNywgMC44MDQ5MjQsIDEuMTY2NzQsIDIuMDEyMTksIDIuNDkzMjkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzA5NDg2LCAwLjM1OTE5NywgMC44MDY0MjQsIDEuNTUxNjYsIDIuMjk3NTMsIDQuMDM1NDIsIDUuMDI4NzgiLCBcCi0gICAgICAgICAgIjAuMzA5NDU2LCAwLjM1OTExMywgMC44MDYzODQsIDEuNTUxNjMsIDIuMjk3MjUsIDQuMDM1NTQsIDUuMDI5MzEiLCBcCi0gICAgICAgICAgIjAuMzA5NTg2LCAwLjM1OTE3NywgMC44MDYzOTUsIDEuNTUxODIsIDIuMjk3NDUsIDQuMDM1NTUsIDUuMDI4ODEiLCBcCi0gICAgICAgICAgIjAuMzEwNjEzLCAwLjM1OTkxMiwgMC44MDYyOSwgMS41NTIxLCAyLjI5NzMxLCA0LjAzNTU3LCA1LjAyODk3IiwgXAotICAgICAgICAgICIwLjMxMjU1NiwgMC4zNjE0MDEsIDAuODA2Mjk3LCAxLjU1MTg5LCAyLjI5NzM0LCA0LjAzNTU3LCA1LjAyOTA2IiwgXAotICAgICAgICAgICIwLjMxNzA0NiwgMC4zNjU0MTMsIDAuODA3MDgxLCAxLjU1MTkxLCAyLjI5NzM0LCA0LjAzNTU1LCA1LjAyOTAyIiwgXAotICAgICAgICAgICIwLjMyMjA2OCwgMC4zNjk5NzQsIDAuODA4NTg1LCAxLjU1MTg2LCAyLjI5NzI5LCA0LjAzNTgyLCA1LjAyOTExIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkExIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMjY0NTUsIDAuMTQ1NjQxLCAwLjMxODIxNCwgMC42MDU3NTksIDAuODkzOTgxLCAxLjU2NTYzLCAxLjk0OTc1IiwgXAotICAgICAgICAgICIwLjEzMzc2NCwgMC4xNTMwOTUsIDAuMzI1OTQ5LCAwLjYxMzU5NiwgMC45MDEwMzQsIDEuNTcyNSwgMS45NTcwMiIsIFwKLSAgICAgICAgICAiMC4xNDEyODYsIDAuMTYwNTA0LCAwLjMzMzMyNywgMC42MjExMzMsIDAuOTA4OTA3LCAxLjU3OTczLCAxLjk2MzQiLCBcCi0gICAgICAgICAgIjAuMTQ4MzAxLCAwLjE2NzU0NiwgMC4zNDA0MywgMC42MjgxMzgsIDAuOTE1MzgxLCAxLjU4NjU5LCAxLjk3MDY5IiwgXAotICAgICAgICAgICIwLjE1NTI0MywgMC4xNzQ0NjgsIDAuMzQ3MjMyLCAwLjYzNDg2MiwgMC45MjI2MiwgMS41OTMzMiwgMS45Nzc2IiwgXAotICAgICAgICAgICIwLjE2NjQ2NiwgMC4xODU1MjEsIDAuMzU4NDMyLCAwLjY0NTkwOCwgMC45MzMzNDEsIDEuNjA0MjcsIDEuOTg5MjEiLCBcCi0gICAgICAgICAgIjAuMTc2MTUyLCAwLjE5NTIwNywgMC4zNjgxMTcsIDAuNjU1Nzc4LCAwLjk0MzM4OCwgMS42MTU5NywgMS45OTc1Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI0MDQ3OSwgMC4yODEyMTksIDAuNjQ3Njg1LCAxLjI1OTAyLCAxLjg2OTgzLCAzLjI5NTIzLCA0LjEwOTEiLCBcCi0gICAgICAgICAgIjAuMjQwNTI5LCAwLjI4MTMwOSwgMC42NDc5OTUsIDEuMjU4NzMsIDEuODY5MDgsIDMuMjk1NDUsIDQuMTA4OTkiLCBcCi0gICAgICAgICAgIjAuMjQwNjQ1LCAwLjI4MTMyNSwgMC42NDc4NDgsIDEuMjU4ODMsIDEuODY5MjgsIDMuMjk0MjEsIDQuMTA4NjIiLCBcCi0gICAgICAgICAgIjAuMjQyMDgxLCAwLjI4MjIzMSwgMC42NDc3OTUsIDEuMjU4NjUsIDEuODY5MDQsIDMuMjk1NTYsIDQuMTA4ODIiLCBcCi0gICAgICAgICAgIjAuMjQ0NzgzLCAwLjI4NDU5MywgMC42NDc5MjIsIDEuMjU4MzcsIDEuODY5LCAzLjI5NDQzLCA0LjEwODY2IiwgXAotICAgICAgICAgICIwLjI1MTA3LCAwLjI5MDA0OSwgMC42NDkyOTcsIDEuMjU4MjYsIDEuODY4NTYsIDMuMjkyMTMsIDQuMTA3OTIiLCBcCi0gICAgICAgICAgIjAuMjU3NjkyLCAwLjI5NTk5NSwgMC42NTIsIDEuMjU4NzEsIDEuODY5OCwgMy4yOTQ4OSwgNC4xMDYxNCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNjA1ODksIDAuMTg0NzQ5LCAwLjQwMjI1OCwgMC43NjQxNTYsIDEuMTI2MTgsIDEuOTcwODMsIDIuNDUzMDMiLCBcCi0gICAgICAgICAgIjAuMTY2NzM2LCAwLjE5MDk5MywgMC40MDgzMzMsIDAuNzcwNDQ5LCAxLjEzMjAyLCAxLjk3NjI2LCAyLjQ2MDU0IiwgXAotICAgICAgICAgICIwLjE3NDIzNCwgMC4xOTg5MDMsIDAuNDE2NTg4LCAwLjc3ODMzNiwgMS4xNDAxNiwgMS45ODUsIDIuNDY3ODYiLCBcCi0gICAgICAgICAgIjAuMTgyNTE1LCAwLjIwNjY2NCwgMC40MjQyNjksIDAuNzg2Mjk2LCAxLjE0ODU5LCAxLjk5MzY1LCAyLjQ3NjIiLCBcCi0gICAgICAgICAgIjAuMTkwMzA0LCAwLjIxNDYyOSwgMC40MzIxMTYsIDAuNzk0MTMzLCAxLjE1NjEyLCAyLjAwMjE0LCAyLjQ4MzkiLCBcCi0gICAgICAgICAgIjAuMjAzNTg4LCAwLjIyNzYyNSwgMC40NDQ5MTYsIDAuODA3LCAxLjE2ODgyLCAyLjAxNDAxLCAyLjQ5NTY4IiwgXAotICAgICAgICAgICIwLjIxNDgxNiwgMC4yMzkwODcsIDAuNDU2MTIsIDAuODE4MDIyLCAxLjE3OTg2LCAyLjAyMzk5LCAyLjUwNjg1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMwOTQ3NCwgMC4zNTkyLCAwLjgwNjQ5NSwgMS41NTE4NiwgMi4yOTY5OCwgNC4wMzU0OCwgNS4wMjkzNyIsIFwKLSAgICAgICAgICAiMC4zMDk0NjcsIDAuMzU5MTU1LCAwLjgwNjI4OCwgMS41NTE5LCAyLjI5NzY2LCA0LjAzNTk2LCA1LjAyODk1IiwgXAotICAgICAgICAgICIwLjMwOTUzNywgMC4zNTkxNDUsIDAuODA2NTEyLCAxLjU1MTg2LCAyLjI5NzM2LCA0LjAzNTUzLCA1LjAyOTI2IiwgXAotICAgICAgICAgICIwLjMxMDg4MiwgMC4zNTk4NTQsIDAuODA2MzQzLCAxLjU1MjEsIDIuMjk3MDUsIDQuMDM1NTIsIDUuMDI4OTUiLCBcCi0gICAgICAgICAgIjAuMzEzNTM4LCAwLjM2MTg5MiwgMC44MDYzOTgsIDEuNTUyMTYsIDIuMjk3NCwgNC4wMzU4NSwgNS4wMjg5NiIsIFwKLSAgICAgICAgICAiMC4zMTk5NzIsIDAuMzY3NjQ5LCAwLjgwNjg3NiwgMS41NTE4NSwgMi4yOTczMiwgNC4wMzU1LCA1LjAyODg0IiwgXAotICAgICAgICAgICIwLjMyNjUwNywgMC4zNzM1NDEsIDAuODA4NTk1LCAxLjU1MTk1LCAyLjI5NzQzLCA0LjAzNTU2LCA1LjAyODk4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEyIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMjQwMjcsIDAuMTQzMTksIDAuMzE1NDg2LCAwLjYwMzM2NCwgMC44OTEwNTgsIDEuNTYyMDYsIDEuOTQ1NCIsIFwKLSAgICAgICAgICAiMC4xMzEzNTQsIDAuMTUwNTkxLCAwLjMyMzUyOCwgMC42MTEwOSwgMC44OTg1ODksIDEuNTY5NjEsIDEuOTUzODIiLCBcCi0gICAgICAgICAgIjAuMTM4OTI2LCAwLjE1ODEzNiwgMC4zMzA5MzMsIDAuNjE4MzkyLCAwLjkwNTkwNCwgMS41Nzc0MywgMS45NjE0MyIsIFwKLSAgICAgICAgICAiMC4xNDU4NjksIDAuMTY1MTA3LCAwLjMzODAzMSwgMC42MjU1MzgsIDAuOTEzMDE3LCAxLjU4NTcsIDEuOTY2ODMiLCBcCi0gICAgICAgICAgIjAuMTUyNzYsIDAuMTcxOTYyLCAwLjM0NDYyOCwgMC42MzI3NzQsIDAuOTE5OTkzLCAxLjU5MTg3LCAxLjk3NDI1IiwgXAotICAgICAgICAgICIwLjE2MzgwMywgMC4xODMxMTEsIDAuMzU1OTExLCAwLjY0Mzk3OSwgMC45MzE4OSwgMS42MDM0NSwgMS45ODUxMSIsIFwKLSAgICAgICAgICAiMC4xNzM2ODcsIDAuMTkyNjUsIDAuMzY1NTgzLCAwLjY1MzA0OCwgMC45NDA4OTMsIDEuNjEzNTgsIDEuOTk1MSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMzczMDYsIDAuMjc3OTU3LCAwLjY0NDI5NywgMS4yNTUxNSwgMS44NjUzMiwgMy4yOTAzNiwgNC4xMDQzNSIsIFwKLSAgICAgICAgICAiMC4yMzcyNzksIDAuMjc3ODk1LCAwLjY0NDYwNCwgMS4yNTUzNSwgMS44NjUyOSwgMy4yOTA0NywgNC4xMDM3OSIsIFwKLSAgICAgICAgICAiMC4yMzczNzYsIDAuMjc4MDc0LCAwLjY0NDQ0NSwgMS4yNTU4LCAxLjg2NjIxLCAzLjI5MTgxLCA0LjEwMzc2IiwgXAotICAgICAgICAgICIwLjIzODkyMiwgMC4yNzkxMTIsIDAuNjQ0NDU5LCAxLjI1NDkxLCAxLjg2NjI4LCAzLjI5MTIsIDQuMTA2MTYiLCBcCi0gICAgICAgICAgIjAuMjQxNjY5LCAwLjI4MTM3MSwgMC42NDQ5MTEsIDEuMjU1MzIsIDEuODY2NjksIDMuMjkwMzgsIDQuMTA2OTYiLCBcCi0gICAgICAgICAgIjAuMjQ3OTMxLCAwLjI4Njk0MiwgMC42NDYyNSwgMS4yNTUzNiwgMS44NjU5NywgMy4yOTA0LCA0LjEwODY2IiwgXAotICAgICAgICAgICIwLjI1NDc2MiwgMC4yOTI4OTEsIDAuNjQ4ODQ2LCAxLjI1NTE0LCAxLjg2NjA0LCAzLjI5MTMsIDQuMTAyMTQiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTU3NDg5LCAwLjE4MTY3MywgMC4zOTkzMTQsIDAuNzYxMTM0LCAxLjEyMzQ5LCAxLjk2ODMyLCAyLjQ1MDEiLCBcCi0gICAgICAgICAgIjAuMTY0NDM2LCAwLjE4ODU3MSwgMC40MDU5NjMsIDAuNzY4NjQxLCAxLjEyOTc2LCAxLjk3NDE4LCAyLjQ1Nzc2IiwgXAotICAgICAgICAgICIwLjE3MzAxLCAwLjE5NzM3LCAwLjQxNDk1MSwgMC43NzY3NDMsIDEuMTM4NDksIDEuOTg0NDIsIDIuNDY2MzIiLCBcCi0gICAgICAgICAgIjAuMTgyMjA0LCAwLjIwNjI5MywgMC40MjM2MjEsIDAuNzg1NTIsIDEuMTQ3MzYsIDEuOTkyNDEsIDIuNDc1MzIiLCBcCi0gICAgICAgICAgIjAuMTkxMzE4LCAwLjIxNTM5MywgMC40MzI1MzksIDAuNzk0MzYyLCAxLjE1Njg2LCAyLjAwMTUxLCAyLjQ4NDEzIiwgXAotICAgICAgICAgICIwLjIwNjEwOCwgMC4yMzAxNjQsIDAuNDQ2OTQ0LCAwLjgwODU5NiwgMS4xNzAzMiwgMi4wMTQ0OCwgMi40OTg2MyIsIFwKLSAgICAgICAgICAiMC4yMTk0NDIsIDAuMjQzMzQsIDAuNDU5NjkyLCAwLjgyMTE5NywgMS4xODI2NiwgMi4wMjY4NSwgMi41MDkyNSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMDk0MSwgMC4zNTkxNzEsIDAuODA2NDEyLCAxLjU1MjE5LCAyLjI5NzM2LCA0LjAzNTUxLCA1LjAyOTA1IiwgXAotICAgICAgICAgICIwLjMwOTQ2LCAwLjM1OTExOSwgMC44MDY0OTQsIDEuNTUyMzYsIDIuMjk3MiwgNC4wMzU2NSwgNS4wMjg5OSIsIFwKLSAgICAgICAgICAiMC4zMDk0NywgMC4zNTkxODQsIDAuODA2Mzk0LCAxLjU1MTg1LCAyLjI5NzM1LCA0LjAzNTU0LCA1LjAyOTA0IiwgXAotICAgICAgICAgICIwLjMxMTE2MSwgMC4zNjAwNDcsIDAuODA2MzM3LCAxLjU1MTg5LCAyLjI5NzMyLCA0LjAzNTU3LCA1LjAyODkxIiwgXAotICAgICAgICAgICIwLjMxNDcxNiwgMC4zNjI4NTIsIDAuODA2Mjg4LCAxLjU1MTg2LCAyLjI5NzUxLCA0LjAzNTUyLCA1LjAyODk5IiwgXAotICAgICAgICAgICIwLjMyMzAxOCwgMC4zNjk5NDksIDAuODA2ODI1LCAxLjU1MjEyLCAyLjI5NzMyLCA0LjAzNTU3LCA1LjAyOTAzIiwgXAotICAgICAgICAgICIwLjMzMjA4MSwgMC4zNzgyMywgMC44MDk3NjQsIDEuNTUxODUsIDIuMjk3MjUsIDQuMDM1NTcsIDUuMDI5MDMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjAiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExNzkwMiwgMC4xMzcxMDcsIDAuMzA5NzM4LCAwLjU5NzE1MywgMC44ODU3NjgsIDEuNTU1MjQsIDEuOTM4NjQiLCBcCi0gICAgICAgICAgIjAuMTI1MTkyLCAwLjE0NDQ3MSwgMC4zMTcwODIsIDAuNjA0NzEsIDAuODkyMTczLCAxLjU2MzUxLCAxLjk0ODMzIiwgXAotICAgICAgICAgICIwLjEzNDUxMSwgMC4xNTM2NzIsIDAuMzI2Mjg4LCAwLjYxNDMwMiwgMC45MDIxNTMsIDEuNTczMDksIDEuOTU2MzQiLCBcCi0gICAgICAgICAgIjAuMTQzOTQ4LCAwLjE2MzE1MywgMC4zMzU5MzQsIDAuNjIzNTg4LCAwLjkxMDcwNiwgMS41ODMwOCwgMS45NjQ1MSIsIFwKLSAgICAgICAgICAiMC4xNTM1NjEsIDAuMTcyNzU5LCAwLjM0NTIyNiwgMC42MzI1ODUsIDAuOTIwMzQ3LCAxLjU5MjcxLCAxLjk3NDk5IiwgXAotICAgICAgICAgICIwLjE2OTA4NCwgMC4xODgwNzMsIDAuMzYwMzczLCAwLjY0NzYwMSwgMC45MzUyOTUsIDEuNjA2MzcsIDEuOTg4NzYiLCBcCi0gICAgICAgICAgIjAuMTgyNzM0LCAwLjIwMTc3OCwgMC4zNzM0NzIsIDAuNjYwNzQxLCAwLjk0ODY1OCwgMS42MTksIDIuMDAxOSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yNDMyMzYsIDAuMjg0MTc4LCAwLjY1MTI3LCAxLjI2MTQsIDEuODcyNTcsIDMuMjk1NTIsIDQuMTEzNDEiLCBcCi0gICAgICAgICAgIjAuMjQzMjM4LCAwLjI4NDAxOCwgMC42NTA3MDksIDEuMjYxNzMsIDEuODcyNTEsIDMuMjk2MywgNC4xMTEyOCIsIFwKLSAgICAgICAgICAiMC4yNDM1MTgsIDAuMjgzODk1LCAwLjY1MTI3NywgMS4yNjE5NSwgMS44NzI2NSwgMy4yOTYyOSwgNC4xMTA1OSIsIFwKLSAgICAgICAgICAiMC4yNDY3NTMsIDAuMjg2MjA3LCAwLjY1MDc2MiwgMS4yNjE3NCwgMS44NzE1OSwgMy4yOTc4NCwgNC4xMDg3NSIsIFwKLSAgICAgICAgICAiMC4yNTE3NzQsIDAuMjkwNTg2LCAwLjY1MTExNywgMS4yNjEyNywgMS44NzE3MywgMy4yOTc2NSwgNC4xMTE0OCIsIFwKLSAgICAgICAgICAiMC4yNjIzMjcsIDAuMjk5OTc0LCAwLjY1MzQ3LCAxLjI2MjExLCAxLjg3MjQ4LCAzLjI5ODQ2LCA0LjEwODc0IiwgXAotICAgICAgICAgICIwLjI3MjkzOCwgMC4zMDk4ODYsIDAuNjU3NDk5LCAxLjI2MTE2LCAxLjg3MjE3LCAzLjI5ODg5LCA0LjEwODc5Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE0Mzk3NSwgMC4xNjgyNDcsIDAuMzg2MzE0LCAwLjc0ODM2NiwgMS4xMDk5MiwgMS45NTM2NCwgMi40MzU1NSIsIFwKLSAgICAgICAgICAiMC4xNDkzMDUsIDAuMTczNjQ2LCAwLjM5MTcyNywgMC43NTM4NTcsIDEuMTE1NTMsIDEuOTU5MTQsIDIuNDQxMDYiLCBcCi0gICAgICAgICAgIjAuMTU0OTQ2LCAwLjE3OTI3MiwgMC4zOTc0NywgMC43NTk2NDMsIDEuMTIxMjgsIDEuOTY0OTUsIDIuNDQ3IiwgXAotICAgICAgICAgICIwLjE2MDU3NywgMC4xODQ5MTYsIDAuNDAzMTIzLCAwLjc2NTM2NywgMS4xMjY5MiwgMS45NzA1NCwgMi40NTI4MSIsIFwKLSAgICAgICAgICAiMC4xNjYyNjEsIDAuMTkwNjg5LCAwLjQwODkxOCwgMC43NzEwOCwgMS4xMzI2NywgMS45NzYzOCwgMi40NTgzNCIsIFwKLSAgICAgICAgICAiMC4xNzU3MjgsIDAuMTk5NzMxLCAwLjQxODA2NiwgMC43ODAxODQsIDEuMTQxNzUsIDEuOTg1NDYsIDIuNDY3NDMiLCBcCi0gICAgICAgICAgIjAuMTg0MDcyLCAwLjIwNzg2LCAwLjQyNTk5NywgMC43ODgxNzcsIDEuMTQ5NzcsIDEuOTkzMywgMi40NzU0MyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yODk4NTgsIDAuMzM5NDc0LCAwLjc4NjI3MiwgMS41MzEzMSwgMi4yNzYyNiwgNC4wMTQ2MSwgNS4wMDk1NSIsIFwKLSAgICAgICAgICAiMC4yODk4ODcsIDAuMzM5NTI0LCAwLjc4NjIzLCAxLjUzMTIxLCAyLjI3NjE1LCA0LjAxNDU3LCA1LjAwNzI1IiwgXAotICAgICAgICAgICIwLjI5MDA2NiwgMC4zMzk1MzUsIDAuNzg2MjEzLCAxLjUzMSwgMi4yNzYsIDQuMDE0MzgsIDUuMDA5MSIsIFwKLSAgICAgICAgICAiMC4yOTEzNjcsIDAuMzQwMzg0LCAwLjc4NjE4MywgMS41MzEyMywgMi4yNzU5NCwgNC4wMTQzNiwgNS4wMDkxMSIsIFwKLSAgICAgICAgICAiMC4yOTM1MzUsIDAuMzQyMjgsIDAuNzg2MjA0LCAxLjUzMTIzLCAyLjI3NjA5LCA0LjAxNDEyLCA1LjAwNzk4IiwgXAotICAgICAgICAgICIwLjI5ODY0MiwgMC4zNDY0OTMsIDAuNzg3MTIzLCAxLjUzMTIzLCAyLjI3NjA1LCA0LjAxNDYsIDUuMDA3MzMiLCBcCi0gICAgICAgICAgIjAuMzA0MjI1LCAwLjM1MTI3NSwgMC43ODg3NzYsIDEuNTMxMjEsIDIuMjc2MzEsIDQuMDE0MjcsIDUuMDA3ODIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExNTc2MywgMC4xMzQ5NTUsIDAuMzA3MzYxLCAwLjU5NTMyOCwgMC44ODM0NTQsIDEuNTU0NTIsIDEuOTM2MTYiLCBcCi0gICAgICAgICAgIjAuMTIzMTQ4LCAwLjE0MjMxOSwgMC4zMTUwNTIsIDAuNjAyOTg4LCAwLjg4OTcwNiwgMS41NjA1MSwgMS45NDQ2MiIsIFwKLSAgICAgICAgICAiMC4xMzI3MzEsIDAuMTUxOTAzLCAwLjMyNDQ3OCwgMC42MTI3LCAwLjkwMDUzNSwgMS41NzEwNiwgMS45NTQ3IiwgXAotICAgICAgICAgICIwLjE0MjEyMiwgMC4xNjEyNiwgMC4zMzQwMTksIDAuNjIxODM1LCAwLjkwODgwNiwgMS41ODE2NSwgMS45NjQ5NSIsIFwKLSAgICAgICAgICAiMC4xNTEyNCwgMC4xNzAzMzcsIDAuMzQyNzk5LCAwLjYzMDE1NywgMC45MTc4MSwgMS41OTAwOCwgMS45NzM1OCIsIFwKLSAgICAgICAgICAiMC4xNjY4MjcsIDAuMTg1ODA3LCAwLjM1ODA2NSwgMC42NDUzMzEsIDAuOTMyNTc2LCAxLjYwNDIsIDEuOTg2MzQiLCBcCi0gICAgICAgICAgIjAuMTgwNTM1LCAwLjE5OTUzLCAwLjM3MTIzNCwgMC42NTg5NTcsIDAuOTQ2NzMsIDEuNjE4MDUsIDEuOTk5NTUiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjQwMzgyLCAwLjI4MTE1OCwgMC42NDc2OCwgMS4yNTg1MSwgMS44NjkyNywgMy4yOTMzNCwgNC4xMDkyOSIsIFwKLSAgICAgICAgICAiMC4yNDAxODksIDAuMjgxMDc3LCAwLjY0NzY2MSwgMS4yNTg3NSwgMS44NjgzNiwgMy4yOTU0MiwgNC4xMDg5NSIsIFwKLSAgICAgICAgICAiMC4yNDA0ODEsIDAuMjgwODU0LCAwLjY0Nzc4NCwgMS4yNTg4MywgMS44Njk1LCAzLjI5NDE2LCA0LjEwODU2IiwgXAotICAgICAgICAgICIwLjI0MzgxLCAwLjI4MzMyLCAwLjY0NzcwMiwgMS4yNTg3NCwgMS44Njg0MiwgMy4yOTQ5MywgNC4xMDk1MSIsIFwKLSAgICAgICAgICAiMC4yNDkxNjUsIDAuMjg3ODU2LCAwLjY0ODAxMSwgMS4yNTg2MSwgMS44Njg2MSwgMy4yOTQwOSwgNC4xMDc1NiIsIFwKLSAgICAgICAgICAiMC4yNTk2ODUsIDAuMjk3Mzc2LCAwLjY1MDQ0OCwgMS4yNTksIDEuODcsIDMuMjk1MjUsIDQuMTEwNjMiLCBcCi0gICAgICAgICAgIjAuMjcwNDM1LCAwLjMwNzMyMSwgMC42NTQ0ODcsIDEuMjU4NDQsIDEuODY5MjIsIDMuMjkzODYsIDQuMTA5NDkiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTQyNTE0LCAwLjE2Njc0OSwgMC4zODQ3NzksIDAuNzQ2OTAzLCAxLjEwODQsIDEuOTUyMDIsIDIuNDM0MDQiLCBcCi0gICAgICAgICAgIjAuMTQ4OTA2LCAwLjE3MzIxMywgMC4zOTEzMjYsIDAuNzUzNSwgMS4xMTUwNiwgMS45NTg3LCAyLjQ0MSIsIFwKLSAgICAgICAgICAiMC4xNTY4MTUsIDAuMTgxMTM5LCAwLjM5OTMzNiwgMC43NjE0OTgsIDEuMTIzMDgsIDEuOTY2NjksIDIuNDQ4ODYiLCBcCi0gICAgICAgICAgIjAuMTY0NTk3LCAwLjE4OTA2NCwgMC40MDcyODgsIDAuNzY5NDY4LCAxLjEzMTA4LCAxLjk3NDYzLCAyLjQ1NjcyIiwgXAotICAgICAgICAgICIwLjE3MjQ2NywgMC4xOTY4MzIsIDAuNDE1MTY3LCAwLjc3NzM1MSwgMS4xMzg5NSwgMS45ODI2MSwgMi40NjQ1NSIsIFwKLSAgICAgICAgICAiMC4xODU0MDcsIDAuMjA5ODU4LCAwLjQyNzc4MywgMC43OTAwODQsIDEuMTUxNjUsIDEuOTk1MjcsIDIuNDc3MzYiLCBcCi0gICAgICAgICAgIjAuMTk2NzQyLCAwLjIyMDk1LCAwLjQzODc4LCAwLjgwMTI5NCwgMS4xNjI4MSwgMi4wMDY0MSwgMi40ODgzOSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yODk4ODIsIDAuMzM5NDc1LCAwLjc4NjI0OCwgMS41MzExMiwgMi4yNzYzMiwgNC4wMTQ0MiwgNS4wMDc5MSIsIFwKLSAgICAgICAgICAiMC4yODk4NjYsIDAuMzM5NDg3LCAwLjc4NjA4MSwgMS41MzExMiwgMi4yNzU4NSwgNC4wMTQsIDUuMDA3NSIsIFwKLSAgICAgICAgICAiMC4yOTAwMzIsIDAuMzM5NTA0LCAwLjc4NjE5NywgMS41MzEyNywgMi4yNzYyOCwgNC4wMTQzNSwgNS4wMDc1MyIsIFwKLSAgICAgICAgICAiMC4yOTE2NzgsIDAuMzQwNTk0LCAwLjc4NjE5MywgMS41MzEyMywgMi4yNzYwOSwgNC4wMTQ1NywgNS4wMDcyOCIsIFwKLSAgICAgICAgICAiMC4yOTQ3NjQsIDAuMzQzMDQxLCAwLjc4NjIyNSwgMS41MzEyNCwgMi4yNzU5MywgNC4wMTQxMSwgNS4wMDgiLCBcCi0gICAgICAgICAgIjAuMzAxODU2LCAwLjM0OTIwNiwgMC43ODY4MjEsIDEuNTMxMjMsIDIuMjc2MjksIDQuMDE0NzYsIDUuMDA2OTUiLCBcCi0gICAgICAgICAgIjAuMzA5MTQ0LCAwLjM1NTcwMywgMC43ODg4MjUsIDEuNTMxMjcsIDIuMjc1OTksIDQuMDE0NzcsIDUuMDA3OTMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjIiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExMzI5MiwgMC4xMzI0ODIsIDAuMzA1MDY5LCAwLjU5Mjk5OSwgMC44ODA4NTEsIDEuNTUxODQsIDEuOTM2MDEiLCBcCi0gICAgICAgICAgIjAuMTIwNzg4LCAwLjEzOTk3MywgMC4zMTI3MTUsIDAuNjAwNzkzLCAwLjg4Nzc4MSwgMS41NTk3NiwgMS45NDI0OSIsIFwKLSAgICAgICAgICAiMC4xMjk5OCwgMC4xNDkxNjYsIDAuMzIxNzA5LCAwLjYwOTg5OSwgMC44OTc3NTIsIDEuNTY4MjMsIDEuOTUxOTYiLCBcCi0gICAgICAgICAgIjAuMTM5Mzk1LCAwLjE1ODU3LCAwLjMzMTI4MSwgMC42MTg5NDYsIDAuOTA2MDc1LCAxLjU3ODkyLCAxLjk2MDUyIiwgXAotICAgICAgICAgICIwLjE0ODk4MiwgMC4xNjgxMjcsIDAuMzQwNjExLCAwLjYyODAxNywgMC45MTU2NDYsIDEuNTg3OTQsIDEuOTcxMzIiLCBcCi0gICAgICAgICAgIjAuMTY0NDAxLCAwLjE4MzQwNSwgMC4zNTU3NTMsIDAuNjQzMjE0LCAwLjkzMDc3MSwgMS42MDE4MywgMS45ODM5OCIsIFwKLSAgICAgICAgICAiMC4xNzgwNTcsIDAuMTk2OTUsIDAuMzY4ODEyLCAwLjY1Mzc4MywgMC45NDM5MjcsIDEuNjE0NywgMS45OTcxMyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMzcwNDksIDAuMjc3Nzk4LCAwLjY0NDcyMywgMS4yNTUxMiwgMS44NjU1NSwgMy4yODkzNywgNC4xMDM5NyIsIFwKLSAgICAgICAgICAiMC4yMzY4ODMsIDAuMjc3NzU1LCAwLjY0NDIxMywgMS4yNTUzNCwgMS44NjQ5MSwgMy4yOTA0NCwgNC4xMDQ0MiIsIFwKLSAgICAgICAgICAiMC4yMzcxODIsIDAuMjc3NzAzLCAwLjY0NDcyMSwgMS4yNTU0LCAxLjg2NTkxLCAzLjI4OTE5LCA0LjEwMzIzIiwgXAotICAgICAgICAgICIwLjI0MDcwNCwgMC4yODAxNTgsIDAuNjQ0Mjk3LCAxLjI1NTAxLCAxLjg2NDc4LCAzLjI5MTIzLCA0LjEwNDk4IiwgXAotICAgICAgICAgICIwLjI0NTkyNiwgMC4yODQ1NjQsIDAuNjQ0NTIzLCAxLjI1NDkyLCAxLjg2NDk3LCAzLjI5MjEyLCA0LjEwMzY0IiwgXAotICAgICAgICAgICIwLjI1NjY3NSwgMC4yOTQyMTEsIDAuNjQ2OTY1LCAxLjI1NDk3LCAxLjg2NTQ3LCAzLjI5MTUsIDQuMTA2NzciLCBcCi0gICAgICAgICAgIjAuMjY3NDA4LCAwLjMwNDE0OCwgMC42NTEwNDksIDEuMjU0NTQsIDEuODY1MzYsIDMuMjg5NDIsIDQuMTA1NjIiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTM5MzY2LCAwLjE2MzY0MSwgMC4zODE2NjIsIDAuNzQzNzY2LCAxLjEwNTQxLCAxLjk0ODk2LCAyLjQzMDg2IiwgXAotICAgICAgICAgICIwLjE0NjQ5LCAwLjE3MDc1MywgMC4zODg4MzUsIDAuNzUwOTY1LCAxLjExMjQ5LCAxLjk1NjA2LCAyLjQzODE0IiwgXAotICAgICAgICAgICIwLjE1NTI3OCwgMC4xNzkxODcsIDAuMzk3NTk5LCAwLjc1OTcwMiwgMS4xMjEyNCwgMS45NjQ4NiwgMi40NDY4OSIsIFwKLSAgICAgICAgICAiMC4xNjQyMTEsIDAuMTg4NTMyLCAwLjQwNjQ2NywgMC43Njg1OTYsIDEuMTMwMTUsIDEuOTczNzgsIDIuNDU1OTYiLCBcCi0gICAgICAgICAgIjAuMTczMzcxLCAwLjE5NzU4NCwgMC40MTUzOTUsIDAuNzc3Mzk3LCAxLjEzODk3LCAxLjk4MjQ2LCAyLjQ2NDQ4IiwgXAotICAgICAgICAgICIwLjE4ODE4LCAwLjIxMjE4OSwgMC40Mjk4NDgsIDAuNzkxNjE1LCAxLjE1MzEsIDEuOTk2NTgsIDIuNDc4ODEiLCBcCi0gICAgICAgICAgIjAuMjAxMzQxLCAwLjIyNTQxNCwgMC40NDI0MDksIDAuODA0MTYxLCAxLjE2NTUzLCAyLjAwOTA0LCAyLjQ5MDk4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI4OTg4NCwgMC4zMzk1MDUsIDAuNzg2MjI2LCAxLjUzMTE5LCAyLjI3NjI2LCA0LjAxNDA0LCA1LjAwNzI1IiwgXAotICAgICAgICAgICIwLjI4OTg2OCwgMC4zMzk1MDYsIDAuNzg2MjIsIDEuNTMxMDcsIDIuMjc2MzIsIDQuMDE0MzUsIDUuMDA3NTEiLCBcCi0gICAgICAgICAgIjAuMjg5OTg5LCAwLjMzOTQ3NiwgMC43ODYyMDYsIDEuNTMxMjcsIDIuMjc2MTEsIDQuMDE0MzIsIDUuMDA3NDIiLCBcCi0gICAgICAgICAgIjAuMjkyMjEyLCAwLjM0MDg1LCAwLjc4NjA4OSwgMS41MzEyNCwgMi4yNzU5NCwgNC4wMTQ1MiwgNS4wMDczNSIsIFwKLSAgICAgICAgICAiMC4yOTY0MjEsIDAuMzQ0MDcxLCAwLjc4NjE1MywgMS41MzEyNCwgMi4yNzYxMSwgNC4wMTQ0OSwgNS4wMDc0MSIsIFwKLSAgICAgICAgICAiMC4zMDU1NDUsIDAuMzUxOTM2LCAwLjc4NjgxNywgMS41MzEwNiwgMi4yNzU5OCwgNC4wMTQ4LCA1LjAwNzU4IiwgXAotICAgICAgICAgICIwLjMxNDk3MiwgMC4zNjA3LCAwLjc4OTQ5NSwgMS41MzEyNywgMi4yNzYxMiwgNC4wMTM5OSwgNS4wMDc4NyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQyMjIsIDAuMDA0MjIyLCAwLjAwNDIyMiwgMC4wMDQyMjIsIDAuMDA0MjIxLCAwLjAwNDIyLCAwLjAwNDIxOSIsIFwKLSAgICAgICAgICAiMC4wMDQyMTQsIDAuMDA0MjE1LCAwLjAwNDIxNiwgMC4wMDQyMTYsIDAuMDA0MjE2LCAwLjAwNDIxNCwgMC4wMDQyMTMiLCBcCi0gICAgICAgICAgIjAuMDA0MjEyLCAwLjAwNDIxMiwgMC4wMDQyMTQsIDAuMDA0MjE0LCAwLjAwNDIxNCwgMC4wMDQyMTIsIDAuMDA0MjEzIiwgXAotICAgICAgICAgICIwLjAwNDIxMiwgMC4wMDQyMTMsIDAuMDA0MjE0LCAwLjAwNDIxNCwgMC4wMDQyMTQsIDAuMDA0MjEzLCAwLjAwNDIxMSIsIFwKLSAgICAgICAgICAiMC4wMDQyMTcsIDAuMDA0MjE2LCAwLjAwNDIxNCwgMC4wMDQyMTYsIDAuMDA0MjE1LCAwLjAwNDIxNCwgMC4wMDQyMTIiLCBcCi0gICAgICAgICAgIjAuMDA0MjMzLCAwLjAwNDIzMSwgMC4wMDQyMjUsIDAuMDA0MjIsIDAuMDA0MjE4LCAwLjAwNDIxNSwgMC4wMDQyMTQiLCBcCi0gICAgICAgICAgIjAuMDA0MjU4LCAwLjAwNDI1MywgMC4wMDQyMzcsIDAuMDA0MjI4LCAwLjAwNDIyNCwgMC4wMDQyMTgsIDAuMDA0MjE2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxMTkyLCAwLjAwMTE5MiwgMC4wMDExOTMsIDAuMDAxMTkyLCAwLjAwMTE5MiwgMC4wMDExOTEsIDAuMDAxMTkiLCBcCi0gICAgICAgICAgIjAuMDAxMTc4LCAwLjAwMTE3OSwgMC4wMDExODQsIDAuMDAxMTg1LCAwLjAwMTE4NiwgMC4wMDExODUsIDAuMDAxMTg0IiwgXAotICAgICAgICAgICIwLjAwMTE3LCAwLjAwMTE3MiwgMC4wMDExNzksIDAuMDAxMTgzLCAwLjAwMTE4MywgMC4wMDExODMsIDAuMDAxMTgzIiwgXAotICAgICAgICAgICIwLjAwMTE3MSwgMC4wMDExNzMsIDAuMDAxMTc5LCAwLjAwMTE4MiwgMC4wMDExODMsIDAuMDAxMTgzLCAwLjAwMTE4MiIsIFwKLSAgICAgICAgICAiMC4wMDExODEsIDAuMDAxMTgxLCAwLjAwMTE4MywgMC4wMDExODQsIDAuMDAxMTg0LCAwLjAwMTE4NCwgMC4wMDExODMiLCBcCi0gICAgICAgICAgIjAuMDAxMjEzLCAwLjAwMTIxLCAwLjAwMTE5NywgMC4wMDExOTIsIDAuMDAxMTksIDAuMDAxMTg3LCAwLjAwMTE4NiIsIFwKLSAgICAgICAgICAiMC4wMDEyNTQsIDAuMDAxMjQ3LCAwLjAwMTIxOCwgMC4wMDEyMDQsIDAuMDAxMTk3LCAwLjAwMTE5MSwgMC4wMDExODkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzOTI5LCAwLjAwMzkyOSwgMC4wMDM5MjksIDAuMDAzOTI5LCAwLjAwMzkyOCwgMC4wMDM5MjgsIDAuMDAzOTI2IiwgXAotICAgICAgICAgICIwLjAwMzkyMywgMC4wMDM5MjQsIDAuMDAzOTI3LCAwLjAwMzkyOCwgMC4wMDM5MjgsIDAuMDAzOTI4LCAwLjAwMzkyNiIsIFwKLSAgICAgICAgICAiMC4wMDM5MTcsIDAuMDAzOTE5LCAwLjAwMzkyNCwgMC4wMDM5MjYsIDAuMDAzOTI3LCAwLjAwMzkyNiwgMC4wMDM5MjYiLCBcCi0gICAgICAgICAgIjAuMDAzOTE1LCAwLjAwMzkxNywgMC4wMDM5MjMsIDAuMDAzOTI2LCAwLjAwMzkyNiwgMC4wMDM5MjYsIDAuMDAzOTI1IiwgXAotICAgICAgICAgICIwLjAwMzkxNywgMC4wMDM5MTksIDAuMDAzOTI0LCAwLjAwMzkyNywgMC4wMDM5MjcsIDAuMDAzOTI3LCAwLjAwMzkyNSIsIFwKLSAgICAgICAgICAiMC4wMDM5MzIsIDAuMDAzOTMxLCAwLjAwMzkzMSwgMC4wMDM5MywgMC4wMDM5MywgMC4wMDM5MjgsIDAuMDAzOTI3IiwgXAotICAgICAgICAgICIwLjAwMzk1NCwgMC4wMDM5NTEsIDAuMDAzOTQzLCAwLjAwMzkzNywgMC4wMDM5MzUsIDAuMDAzOTMxLCAwLjAwMzkzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxMTkzLCAwLjAwMTE5MiwgMC4wMDExOTMsIDAuMDAxMTkyLCAwLjAwMTE5MiwgMC4wMDExOTEsIDAuMDAxMTkiLCBcCi0gICAgICAgICAgIjAuMDAxMTc4LCAwLjAwMTE4LCAwLjAwMTE4NCwgMC4wMDExODUsIDAuMDAxMTg2LCAwLjAwMTE4NSwgMC4wMDExODQiLCBcCi0gICAgICAgICAgIjAuMDAxMTcxLCAwLjAwMTE3NCwgMC4wMDExOCwgMC4wMDExODMsIDAuMDAxMTg0LCAwLjAwMTE4NCwgMC4wMDExODMiLCBcCi0gICAgICAgICAgIjAuMDAxMTc3LCAwLjAwMTE3OCwgMC4wMDExODIsIDAuMDAxMTg0LCAwLjAwMTE4NCwgMC4wMDExODQsIDAuMDAxMTgzIiwgXAotICAgICAgICAgICIwLjAwMTE5LCAwLjAwMTE5LCAwLjAwMTE4NywgMC4wMDExODYsIDAuMDAxMTg2LCAwLjAwMTE4NCwgMC4wMDExODMiLCBcCi0gICAgICAgICAgIjAuMDAxMjI2LCAwLjAwMTIyMSwgMC4wMDEyMDIsIDAuMDAxMTk0LCAwLjAwMTE5MSwgMC4wMDExODcsIDAuMDAxMTg2IiwgXAotICAgICAgICAgICIwLjAwMTI3MywgMC4wMDEyNjMsIDAuMDAxMjI0LCAwLjAwMTIwNiwgMC4wMDEyLCAwLjAwMTE5MiwgMC4wMDExOSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEyIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDM2MDEsIDAuMDAzNjAxLCAwLjAwMzYwMiwgMC4wMDM2MDIsIDAuMDAzNjAyLCAwLjAwMzYwMSwgMC4wMDM2MDEiLCBcCi0gICAgICAgICAgIjAuMDAzNTk3LCAwLjAwMzU5OCwgMC4wMDM2MDQsIDAuMDAzNjA2LCAwLjAwMzYwNywgMC4wMDM2MDcsIDAuMDAzNjA2IiwgXAotICAgICAgICAgICIwLjAwMzU4OCwgMC4wMDM1OTEsIDAuMDAzNjAxLCAwLjAwMzYwNSwgMC4wMDM2MDYsIDAuMDAzNjA2LCAwLjAwMzYwNiIsIFwKLSAgICAgICAgICAiMC4wMDM1ODMsIDAuMDAzNTg2LCAwLjAwMzU5OSwgMC4wMDM2MDMsIDAuMDAzNjA1LCAwLjAwMzYwNiwgMC4wMDM2MDYiLCBcCi0gICAgICAgICAgIjAuMDAzNTg0LCAwLjAwMzU4NywgMC4wMDM1OTcsIDAuMDAzNjAzLCAwLjAwMzYwNSwgMC4wMDM2MDYsIDAuMDAzNjA2IiwgXAotICAgICAgICAgICIwLjAwMzU5NSwgMC4wMDM1OTcsIDAuMDAzNjAzLCAwLjAwMzYwNywgMC4wMDM2MDgsIDAuMDAzNjA3LCAwLjAwMzYwNyIsIFwKLSAgICAgICAgICAiMC4wMDM2MTcsIDAuMDAzNjE1LCAwLjAwMzYxNCwgMC4wMDM2MTEsIDAuMDAzNjEyLCAwLjAwMzYxLCAwLjAwMzYwOSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTE5MywgMC4wMDExOTMsIDAuMDAxMTkzLCAwLjAwMTE5MywgMC4wMDExOTMsIDAuMDAxMTkxLCAwLjAwMTE5MSIsIFwKLSAgICAgICAgICAiMC4wMDExODEsIDAuMDAxMTgyLCAwLjAwMTE4NiwgMC4wMDExODYsIDAuMDAxMTg3LCAwLjAwMTE4NiwgMC4wMDExODUiLCBcCi0gICAgICAgICAgIjAuMDAxMTg1LCAwLjAwMTE4NywgMC4wMDExODcsIDAuMDAxMTg3LCAwLjAwMTE4NiwgMC4wMDExODUsIDAuMDAxMTg0IiwgXAotICAgICAgICAgICIwLjAwMTIwMywgMC4wMDEyMDEsIDAuMDAxMTkzLCAwLjAwMTE5LCAwLjAwMTE4OSwgMC4wMDExODYsIDAuMDAxMTg2IiwgXAotICAgICAgICAgICIwLjAwMTIzLCAwLjAwMTIyNSwgMC4wMDEyMDUsIDAuMDAxMTk2LCAwLjAwMTE5MywgMC4wMDExODksIDAuMDAxMTg3IiwgXAotICAgICAgICAgICIwLjAwMTI4OSwgMC4wMDEyOCwgMC4wMDEyMzcsIDAuMDAxMjEzLCAwLjAwMTIwNCwgMC4wMDExOTUsIDAuMDAxMTkzIiwgXAotICAgICAgICAgICIwLjAwMTM1LCAwLjAwMTMzNiwgMC4wMDEyNjcsIDAuMDAxMjMyLCAwLjAwMTIxNywgMC4wMDEyMDMsIDAuMDAxMTk5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzE5NCwgMC4wMDMxOTQsIDAuMDAzMTk0LCAwLjAwMzE5MywgMC4wMDMxOTMsIDAuMDAzMTkxLCAwLjAwMzE5IiwgXAotICAgICAgICAgICIwLjAwMzE4OSwgMC4wMDMxODksIDAuMDAzMTg4LCAwLjAwMzE4OCwgMC4wMDMxODcsIDAuMDAzMTg1LCAwLjAwMzE4NCIsIFwKLSAgICAgICAgICAiMC4wMDMyMDEsIDAuMDAzMTk5LCAwLjAwMzE5MywgMC4wMDMxOSwgMC4wMDMxODgsIDAuMDAzMTg2LCAwLjAwMzE4NCIsIFwKLSAgICAgICAgICAiMC4wMDMyMTksIDAuMDAzMjE2LCAwLjAwMzIwMiwgMC4wMDMxOTUsIDAuMDAzMTkxLCAwLjAwMzE4NywgMC4wMDMxODUiLCBcCi0gICAgICAgICAgIjAuMDAzMjQzLCAwLjAwMzIzOCwgMC4wMDMyMTQsIDAuMDAzMjAyLCAwLjAwMzE5NiwgMC4wMDMxODksIDAuMDAzMTg3IiwgXAotICAgICAgICAgICIwLjAwMzI5OCwgMC4wMDMyODUsIDAuMDAzMjQxLCAwLjAwMzIxOCwgMC4wMDMyMDcsIDAuMDAzMTk2LCAwLjAwMzE5MiIsIFwKLSAgICAgICAgICAiMC4wMDMzNTQsIDAuMDAzMzM4LCAwLjAwMzI3MSwgMC4wMDMyMzcsIDAuMDAzMjIyLCAwLjAwMzIwMywgMC4wMDMxOTkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDAzMjksIDAuMDAwMzMsIDAuMDAwMzMyLCAwLjAwMDMzMywgMC4wMDAzMzMsIDAuMDAwMzMzLCAwLjAwMDMzMyIsIFwKLSAgICAgICAgICAiMC4wMDAzMjgsIDAuMDAwMzMxLCAwLjAwMDM0MSwgMC4wMDAzNDUsIDAuMDAwMzQ2LCAwLjAwMDM0NywgMC4wMDAzNDgiLCBcCi0gICAgICAgICAgIjAuMDAwMzE5LCAwLjAwMDMyMywgMC4wMDAzMzgsIDAuMDAwMzQ0LCAwLjAwMDM0NywgMC4wMDAzNDksIDAuMDAwMzQ5IiwgXAotICAgICAgICAgICIwLjAwMDMxNywgMC4wMDAzMjEsIDAuMDAwMzM3LCAwLjAwMDM0NCwgMC4wMDAzNDcsIDAuMDAwMzQ5LCAwLjAwMDM1IiwgXAotICAgICAgICAgICIwLjAwMDMyNSwgMC4wMDAzMjgsIDAuMDAwMzQsIDAuMDAwMzQ2LCAwLjAwMDM0OCwgMC4wMDAzNSwgMC4wMDAzNTEiLCBcCi0gICAgICAgICAgIjAuMDAwMzU1LCAwLjAwMDM1MiwgMC4wMDAzNTEsIDAuMDAwMzUyLCAwLjAwMDM1MiwgMC4wMDAzNTMsIDAuMDAwMzUzIiwgXAotICAgICAgICAgICIwLjAwMDM5MywgMC4wMDAzODQsIDAuMDAwMzY4LCAwLjAwMDM2MSwgMC4wMDAzNTksIDAuMDAwMzU3LCAwLjAwMDM1NiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIxIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI4ODcsIDAuMDAyODg4LCAwLjAwMjg4OCwgMC4wMDI4ODgsIDAuMDAyODg4LCAwLjAwMjg4NywgMC4wMDI4ODYiLCBcCi0gICAgICAgICAgIjAuMDAyODg1LCAwLjAwMjg4NiwgMC4wMDI4ODcsIDAuMDAyODg3LCAwLjAwMjg4NywgMC4wMDI4ODcsIDAuMDAyODg1IiwgXAotICAgICAgICAgICIwLjAwMjg5LCAwLjAwMjg5LCAwLjAwMjg4OSwgMC4wMDI4ODgsIDAuMDAyODg3LCAwLjAwMjg4NiwgMC4wMDI4ODUiLCBcCi0gICAgICAgICAgIjAuMDAyOTA4LCAwLjAwMjkwNSwgMC4wMDI4OTYsIDAuMDAyODkyLCAwLjAwMjg5LCAwLjAwMjg4OCwgMC4wMDI4ODYiLCBcCi0gICAgICAgICAgIjAuMDAyOTM4LCAwLjAwMjkzNSwgMC4wMDI5MTQsIDAuMDAyOTAyLCAwLjAwMjg5NywgMC4wMDI4OTIsIDAuMDAyODkiLCBcCi0gICAgICAgICAgIjAuMDAyOTg3LCAwLjAwMjk3NiwgMC4wMDI5MzgsIDAuMDAyOTE4LCAwLjAwMjkwNiwgMC4wMDI4OTcsIDAuMDAyODkzIiwgXAotICAgICAgICAgICIwLjAwMzA0MiwgMC4wMDMwMjcsIDAuMDAyOTY2LCAwLjAwMjkzNSwgMC4wMDI5MTgsIDAuMDAyOTA0LCAwLjAwMjkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDAzMjksIDAuMDAwMzI5LCAwLjAwMDMzMiwgMC4wMDAzMzMsIDAuMDAwMzMzLCAwLjAwMDMzMywgMC4wMDAzMzMiLCBcCi0gICAgICAgICAgIjAuMDAwMzI5LCAwLjAwMDMzMiwgMC4wMDAzNDEsIDAuMDAwMzQ1LCAwLjAwMDM0NiwgMC4wMDAzNDcsIDAuMDAwMzQ4IiwgXAotICAgICAgICAgICIwLjAwMDMyMiwgMC4wMDAzMjYsIDAuMDAwMzM5LCAwLjAwMDM0NSwgMC4wMDAzNDcsIDAuMDAwMzQ5LCAwLjAwMDM1IiwgXAotICAgICAgICAgICIwLjAwMDMyNSwgMC4wMDAzMjgsIDAuMDAwMzQsIDAuMDAwMzQ2LCAwLjAwMDM0OCwgMC4wMDAzNSwgMC4wMDAzNSIsIFwKLSAgICAgICAgICAiMC4wMDAzMzUsIDAuMDAwMzM2LCAwLjAwMDM0MywgMC4wMDAzNDgsIDAuMDAwMzQ5LCAwLjAwMDM1MSwgMC4wMDAzNTEiLCBcCi0gICAgICAgICAgIjAuMDAwMzY3LCAwLjAwMDM2NSwgMC4wMDAzNTYsIDAuMDAwMzU1LCAwLjAwMDM1NCwgMC4wMDAzNTQsIDAuMDAwMzU0IiwgXAotICAgICAgICAgICIwLjAwMDQwOSwgMC4wMDAzOTksIDAuMDAwMzc0LCAwLjAwMDM2NSwgMC4wMDAzNjEsIDAuMDAwMzU4LCAwLjAwMDM1NyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIyIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI1NDgsIDAuMDAyNTQ4LCAwLjAwMjU1LCAwLjAwMjU1LCAwLjAwMjU0OSwgMC4wMDI1NDksIDAuMDAyNTQ5IiwgXAotICAgICAgICAgICIwLjAwMjU0OSwgMC4wMDI1NSwgMC4wMDI1NTMsIDAuMDAyNTU1LCAwLjAwMjU1NSwgMC4wMDI1NTQsIDAuMDAyNTU0IiwgXAotICAgICAgICAgICIwLjAwMjU1NywgMC4wMDI1NTcsIDAuMDAyNTU3LCAwLjAwMjU1NywgMC4wMDI1NTcsIDAuMDAyNTU2LCAwLjAwMjU1NSIsIFwKLSAgICAgICAgICAiMC4wMDI1NzEsIDAuMDAyNTcsIDAuMDAyNTY0LCAwLjAwMjU2MSwgMC4wMDI1NiwgMC4wMDI1NTgsIDAuMDAyNTU3IiwgXAotICAgICAgICAgICIwLjAwMjU5MiwgMC4wMDI1ODksIDAuMDAyNTc2LCAwLjAwMjU2OCwgMC4wMDI1NjQsIDAuMDAyNTYsIDAuMDAyNTU5IiwgXAotICAgICAgICAgICIwLjAwMjY0MSwgMC4wMDI2MzEsIDAuMDAyNjAxLCAwLjAwMjU4LCAwLjAwMjU3MywgMC4wMDI1NjUsIDAuMDAyNTYzIiwgXAotICAgICAgICAgICIwLjAwMjY5MywgMC4wMDI2OCwgMC4wMDI2MjYsIDAuMDAyNTk2LCAwLjAwMjU4NSwgMC4wMDI1NzIsIDAuMDAyNTY4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwMzI4LCAwLjAwMDMyOSwgMC4wMDAzMzIsIDAuMDAwMzMzLCAwLjAwMDMzMywgMC4wMDAzMzMsIDAuMDAwMzMzIiwgXAotICAgICAgICAgICIwLjAwMDMzMywgMC4wMDAzMzUsIDAuMDAwMzQzLCAwLjAwMDM0NiwgMC4wMDAzNDcsIDAuMDAwMzQ4LCAwLjAwMDM0OCIsIFwKLSAgICAgICAgICAiMC4wMDAzMzksIDAuMDAwMzM5LCAwLjAwMDM0NiwgMC4wMDAzNDksIDAuMDAwMzUsIDAuMDAwMzUxLCAwLjAwMDM1MSIsIFwKLSAgICAgICAgICAiMC4wMDAzNTIsIDAuMDAwMzUyLCAwLjAwMDM1MSwgMC4wMDAzNTMsIDAuMDAwMzUzLCAwLjAwMDM1MywgMC4wMDAzNTMiLCBcCi0gICAgICAgICAgIjAuMDAwMzc2LCAwLjAwMDM3MywgMC4wMDAzNjEsIDAuMDAwMzU3LCAwLjAwMDM1NiwgMC4wMDAzNTUsIDAuMDAwMzU0IiwgXAotICAgICAgICAgICIwLjAwMDQyNywgMC4wMDA0MTgsIDAuMDAwMzg5LCAwLjAwMDM3MSwgMC4wMDAzNjUsIDAuMDAwMzYsIDAuMDAwMzU5IiwgXAotICAgICAgICAgICIwLjAwMDQ4NywgMC4wMDA0NzEsIDAuMDAwNDE0LCAwLjAwMDM4NywgMC4wMDAzNzYsIDAuMDAwMzY3LCAwLjAwMDM2NCIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogQk1YSVg0ICoKLSAqIC0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoQk1YSVg0KSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDEuMDYzNTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxMDU0ODI7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxMDUyMzE7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxMDU0ODI7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNTc1LCAwLjAwMDU3OSwgMC4wMDA1ODEsIDAuMDAwNTgyLCAwLjAwMDU4MiwgMC4wMDA1ODIsIDAuMDAwNTgzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNjI5LCAwLjAwMDYwNywgMC4wMDA2MDMsIDAuMDAwNjAxLCAwLjAwMDYsIDAuMDAwNTk5LCAwLjAwMDU5OCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oTTApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTMxMTgxOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTMxMTc2OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTMxMTgxOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDMyNSwgMC4wMDAzMzQsIDAuMDAwNDE1LCAwLjAwMDUyNiwgMC4wMDA2NDksIDAuMDAwOTEsIDAuMDAxMTA2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyNjE0LCAwLjAwMjYzMywgMC4wMDI3LCAwLjAwMjgwNCwgMC4wMDI5MjYsIDAuMDAzMTQ2LCAwLjAwMzMzNCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oTTEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTQ2ODM7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNDY4MTg7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNDY4MzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAzNTIsIDAuMDAwMzc2LCAwLjAwMDQ1NywgMC4wMDA1NzQsIDAuMDAwNzEsIDAuMDAwOTgzLCAwLjAwMTE5MyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjE4MSwgMC4wMDIxOTgsIDAuMDAyMjg0LCAwLjAwMjM5OCwgMC4wMDI1MzEsIDAuMDAyNzU4LCAwLjAwMjk0MyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUFBOKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDEuNDA4Njg7Ci0gICAgZnVuY3Rpb24gOiAiKChYMiAoKE0wIEEpICsgKCFNMCBTKSkpICsgKCFYMiAoKE0xIEEpICsgKCFNMSBTKSkpKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDA0NzQsIDAuMTcwNDMzLCAwLjIyNjc5NSwgMC4yNjU4OCwgMC4zMjc5MzEsIDAuMzgyMTA2LCAwLjQ1OTQ1NyIsIFwKLSAgICAgICAgICAiMC4xMDY4MDcsIDAuMTc2NzAyLCAwLjIzMzEyLCAwLjI3MjE2NSwgMC4zMzQyMjMsIDAuMzg4Mzk4LCAwLjQ2NTc0NSIsIFwKLSAgICAgICAgICAiMC4xMTQ2NDMsIDAuMTg0NTgsIDAuMjQwOTg2LCAwLjI4MDAyOSwgMC4zNDIwNzcsIDAuMzk2MjY3LCAwLjQ3MzYxNiIsIFwKLSAgICAgICAgICAiMC4xMjI0MDEsIDAuMTkyMzUxLCAwLjI0ODc0MiwgMC4yODc3ODUsIDAuMzQ5ODM4LCAwLjQwNDAyNywgMC40ODEzNzkiLCBcCi0gICAgICAgICAgIjAuMTI5OTI5LCAwLjE5OTg0MywgMC4yNTYyMzcsIDAuMjk1Mjg1LCAwLjM1NzM0NywgMC40MTE1MjQsIDAuNDg4ODc0IiwgXAotICAgICAgICAgICIwLjE0MTE4MiwgMC4yMTEyMjYsIDAuMjY3NjA5LCAwLjMwNjcxLCAwLjM2ODc0OCwgMC40MjI5MiwgMC41MDAyOTQiLCBcCi0gICAgICAgICAgIjAuMTUwMDMxLCAwLjIyMDQzLCAwLjI3NjkyMiwgMC4zMTYwMjQsIDAuMzc4MDk5LCAwLjQzMjI0MywgMC41MDk2MTciKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDM2NzQsIDAuMTU0NDExLCAwLjI2MzMyOSwgMC4zNDIzMzgsIDAuNDcwMTMxLCAwLjU4MzAxOSwgMC43NDUwNzMiLCBcCi0gICAgICAgICAgIjAuMDQzNjE5LCAwLjE1NDM4MSwgMC4yNjMzNDYsIDAuMzQyMzM5LCAwLjQ2OTk2NCwgMC41ODMwMDksIDAuNzQ0OTg5IiwgXAotICAgICAgICAgICIwLjA0MzU4MywgMC4xNTQzMjMsIDAuMjYzMzE2LCAwLjM0MjM0OCwgMC40NzAxMjIsIDAuNTgyOTg5LCAwLjc0NTAwMSIsIFwKLSAgICAgICAgICAiMC4wNDM1NzIsIDAuMTU0NDAzLCAwLjI2MzMwNiwgMC4zNDIzNDgsIDAuNDcwMDM0LCAwLjU4Mjk4LCAwLjc0NTAwNCIsIFwKLSAgICAgICAgICAiMC4wNDM4NiwgMC4xNTQ0NjcsIDAuMjYzMzkxLCAwLjM0MjM4NSwgMC40Njk5OTMsIDAuNTgzMDIxLCAwLjc0NTAyOCIsIFwKLSAgICAgICAgICAiMC4wNDQ0OTIsIDAuMTU0ODA3LCAwLjI2MzYzMSwgMC4zNDI1NywgMC40NzAyNjcsIDAuNTgzMDY1LCAwLjc0NDk2OSIsIFwKLSAgICAgICAgICAiMC4wNDU4MTEsIDAuMTU1NzE2LCAwLjI2NDA5LCAwLjM0MjkzOCwgMC40NzA0MjksIDAuNTgzMjc4LCAwLjc0NTEyMyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExMTIxOSwgMC4xODM1LCAwLjI0MDgwNCwgMC4yODAxMjEsIDAuMzQyMjI0LCAwLjM5NjI1MywgMC40NzMzOCIsIFwKLSAgICAgICAgICAiMC4xMTcxNzIsIDAuMTg5MzkzLCAwLjI0NjczNiwgMC4yODYwNTQsIDAuMzQ4MTM2LCAwLjQwMjE4MSwgMC40NzkzMDgiLCBcCi0gICAgICAgICAgIjAuMTI0MTUxLCAwLjE5NjM4OSwgMC4yNTM3MTUsIDAuMjkzMDA4LCAwLjM1NTA4NywgMC40MDkxNTQsIDAuNDg2MjcyIiwgXAotICAgICAgICAgICIwLjEzMTA4NCwgMC4yMDMyOTQsIDAuMjYwNjM5LCAwLjI5OTk2LCAwLjM2MjA0NCwgMC40MTYwODcsIDAuNDkzMjIiLCBcCi0gICAgICAgICAgIjAuMTM3OTE3LCAwLjIxMDEwNywgMC4yNjc0MjYsIDAuMzA2NzE4LCAwLjM2ODg0NCwgMC40MjI4NzgsIDAuNTAwMDE4IiwgXAotICAgICAgICAgICIwLjE0ODAzNiwgMC4yMjAzMzYsIDAuMjc3NzA1LCAwLjMxNjk4LCAwLjM3OTEyOSwgMC40MzMxNTQsIDAuNTEwMyIsIFwKLSAgICAgICAgICAiMC4xNTYyLCAwLjIyODY1NiwgMC4yODYxNTQsIDAuMzI1NDgyLCAwLjM4NzU0NSwgMC40NDE1OTcsIDAuNTE4NzI3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQ2Mzc4LCAwLjE1NjU1LCAwLjI2MzE3LCAwLjM0MDM1MSwgMC40NjUyNzgsIDAuNTc1OTU0LCAwLjczNDQ3OSIsIFwKLSAgICAgICAgICAiMC4wNDYzOTksIDAuMTU2NTY0LCAwLjI2MzE4MiwgMC4zNDAzOTksIDAuNDY1MjgsIDAuNTc1NTY2LCAwLjczNDQ5NCIsIFwKLSAgICAgICAgICAiMC4wNDYzNjUsIDAuMTU2NTIsIDAuMjYzMTY1LCAwLjM0MDM4LCAwLjQ2NTI4MywgMC41NzU1OTIsIDAuNzM0NTYiLCBcCi0gICAgICAgICAgIjAuMDQ2NDE4LCAwLjE1NjUxNiwgMC4yNjMxNjEsIDAuMzQwMzI0LCAwLjQ2NTI3OSwgMC41NzU4NjQsIDAuNzM0NjQiLCBcCi0gICAgICAgICAgIjAuMDQ2NDY0LCAwLjE1NjU2MSwgMC4yNjMxOCwgMC4zNDAzNiwgMC40NjUzMDEsIDAuNTc1OTg3LCAwLjczNDUxOSIsIFwKLSAgICAgICAgICAiMC4wNDcyMSwgMC4xNTY5MTYsIDAuMjYzNDIyLCAwLjM0MDU3OSwgMC40NjUzNzIsIDAuNTc1NjEzLCAwLjczNDUzOSIsIFwKLSAgICAgICAgICAiMC4wNDg0OTQsIDAuMTU3NTk4LCAwLjI2MzkzOCwgMC4zNDA5NjcsIDAuNDY1NjQ3LCAwLjU3NjIxNSwgMC43MzQ2NTIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiTTAiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk0Nzg0LCAwLjE2NDc4MSwgMC4yMjExNjYsIDAuMjYwMjA2LCAwLjMyMjI0NywgMC4zNzY0MzEsIDAuNDUzNzczIiwgXAotICAgICAgICAgICIwLjEwMjI4OCwgMC4xNzIyNiwgMC4yMjg2NTYsIDAuMjY3Njk1LCAwLjMyOTczMSwgMC4zODM5MTcsIDAuNDYxMjU5IiwgXAotICAgICAgICAgICIwLjExMTk4NiwgMC4xODE5NjksIDAuMjM4Mjk5LCAwLjI3NzM5NywgMC4zMzk0MzcsIDAuMzkzNjA0LCAwLjQ3MDk2NyIsIFwKLSAgICAgICAgICAiMC4xMjE3NjcsIDAuMTkxNjc5LCAwLjI0ODA3OSwgMC4yODcxNjcsIDAuMzQ5MjEsIDAuNDAzMzY2LCAwLjQ4MDczNiIsIFwKLSAgICAgICAgICAiMC4xMzEzODgsIDAuMjAxMjU2LCAwLjI1NzYzNSwgMC4yOTY3MDQsIDAuMzU4NzMyLCAwLjQxMjkwNiwgMC40OTAyODUiLCBcCi0gICAgICAgICAgIjAuMTQ1NTEsIDAuMjE1NTg1LCAwLjI3MTk1OSwgMC4zMTEwNTksIDAuMzczMDg3LCAwLjQyNzI5NSwgMC41MDQ2MjYiLCBcCi0gICAgICAgICAgIjAuMTU2MzgzLCAwLjIyNzA3LCAwLjI4MzU2MiwgMC4zMjI1MTksIDAuMzg0NTQ5LCAwLjQzODcxNywgMC41MTYxNjMiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDM1NzgsIDAuMTU0MzU3LCAwLjI2MzI1OCwgMC4zNDIyOTEsIDAuNDY5OTY1LCAwLjU4MjkzNSwgMC43NDQ5MDciLCBcCi0gICAgICAgICAgIjAuMDQzNTg0LCAwLjE1NDM1NCwgMC4yNjMyNDgsIDAuMzQyMjg5LCAwLjQ3MDEwMywgMC41ODI5MTYsIDAuNzQ0OTI4IiwgXAotICAgICAgICAgICIwLjA0MzUyNSwgMC4xNTQzNTgsIDAuMjYzMjE4LCAwLjM0MjI5NCwgMC40Njk5NTIsIDAuNTgyOTA1LCAwLjc0NDg5MyIsIFwKLSAgICAgICAgICAiMC4wNDM1MTcsIDAuMTU0MzAyLCAwLjI2MzE4NCwgMC4zNDIyNzUsIDAuNDY5OTQ2LCAwLjU4MjkxNywgMC43NDQ5MjciLCBcCi0gICAgICAgICAgIjAuMDQzNzY4LCAwLjE1NDQ4OSwgMC4yNjMzMywgMC4zNDIzMjYsIDAuNDcwMTA2LCAwLjU4Mjk0MiwgMC43NDQ5NjgiLCBcCi0gICAgICAgICAgIjAuMDQ1MDgsIDAuMTU0OTY0LCAwLjI2MzQ1NywgMC4zNDI1NzEsIDAuNDcwMjY5LCAwLjU4Mjk5MSwgMC43NDQ5NzkiLCBcCi0gICAgICAgICAgIjAuMDQ3MDcxLCAwLjE1NTkwMiwgMC4yNjQyMDksIDAuMzQyODc2LCAwLjQ3MDM5OCwgMC41ODMyMDgsIDAuNzQ1MDQ3Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTA1NDI1LCAwLjE3NzYyNCwgMC4yMzQ5MTUsIDAuMjc0MjQsIDAuMzM2MzEzLCAwLjM5MDM3MiwgMC40Njc0NzgiLCBcCi0gICAgICAgICAgIjAuMTEyNzM3LCAwLjE4NDk0MiwgMC4yNDIyOCwgMC4yODE1OTMsIDAuMzQzNjcxLCAwLjM5NzY5LCAwLjQ3NDgzNiIsIFwKLSAgICAgICAgICAiMC4xMjIyMjcsIDAuMTk0NDQxLCAwLjI1MTcxNSwgMC4yOTEwNjcsIDAuMzUzMTQyLCAwLjQwNzE5MSwgMC40ODQzMDQiLCBcCi0gICAgICAgICAgIjAuMTMxOTIxLCAwLjIwNDEyOCwgMC4yNjE0MTYsIDAuMzAwNzUsIDAuMzYyODE2LCAwLjQxNjg4LCAwLjQ5Mzk5NyIsIFwKLSAgICAgICAgICAiMC4xNDE1LCAwLjIxMzU5OCwgMC4yNzA5MDcsIDAuMzEwMjA2LCAwLjM3MjI4OSwgMC40MjYzNTYsIDAuNTAzNDU5IiwgXAotICAgICAgICAgICIwLjE1NTU5MiwgMC4yMjc3OTMsIDAuMjg1MTQ1LCAwLjMyNDQyMiwgMC4zODY1MTYsIDAuNDQwNTgyLCAwLjUxNzY4OCIsIFwKLSAgICAgICAgICAiMC4xNjY3MjcsIDAuMjM5MzA0LCAwLjI5NjY3MSwgMC4zMzU5NTEsIDAuMzk4MDEyLCAwLjQ1MjAxLCAwLjUyOTE5OSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0NjI2NSwgMC4xNTY0NDcsIDAuMjYzMDg2LCAwLjM0MDI4OSwgMC40NjUyNzIsIDAuNTc1MzQ3LCAwLjczNDQ3NiIsIFwKLSAgICAgICAgICAiMC4wNDYxNzcsIDAuMTU2NDMzLCAwLjI2MzExOCwgMC4zNDAxNDQsIDAuNDY1MjY3LCAwLjU3NTk1NywgMC43MzQ0NjQiLCBcCi0gICAgICAgICAgIjAuMDQ2MjA3LCAwLjE1NjQ1MSwgMC4yNjMwODIsIDAuMzQwMjk3LCAwLjQ2NTI4NywgMC41NzU1NSwgMC43MzQ0NjgiLCBcCi0gICAgICAgICAgIjAuMDQ2MjY4LCAwLjE1NjQzNiwgMC4yNjMwNTUsIDAuMzQwMjE4LCAwLjQ2NTIxOSwgMC41NzU1NTUsIDAuNzM0NDU5IiwgXAotICAgICAgICAgICIwLjA0NjI5OCwgMC4xNTY1MTEsIDAuMjYzMTQzLCAwLjM0MDM3OSwgMC40NjUyNDQsIDAuNTc1MzQ5LCAwLjczNDQ3NSIsIFwKLSAgICAgICAgICAiMC4wNDcxOTcsIDAuMTU2OTIzLCAwLjI2MzM5LCAwLjM0MDUzMywgMC40NjU1MDcsIDAuNTc1NjMxLCAwLjczNDUzMSIsIFwKLSAgICAgICAgICAiMC4wNDg2MTIsIDAuMTU3NjA0LCAwLjI2MzgzMywgMC4zNDA4NDYsIDAuNDY1NjAxLCAwLjU3NTgyNCwgMC43MzM1NzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiTTAiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTA5NjE5LCAwLjE3OTU3NywgMC4yMzU5OTEsIDAuMjc1MDgzLCAwLjMzNzEzLCAwLjM5MTI5MSwgMC40Njg2NDkiLCBcCi0gICAgICAgICAgIjAuMTE3MTc2LCAwLjE4NzE0NiwgMC4yNDM0ODQsIDAuMjgyNTk2LCAwLjM0NDY0MSwgMC4zOTg4MzIsIDAuNDc2MTgxIiwgXAotICAgICAgICAgICIwLjEyMzk0NywgMC4xOTM5MzksIDAuMjUwMzU5LCAwLjI4OTQwNywgMC4zNTE0NjUsIDAuNDA1NjUsIDAuNDgzMDA1IiwgXAotICAgICAgICAgICIwLjEyODg4LCAwLjE5ODg4MiwgMC4yNTUyMzksIDAuMjk0MzMxLCAwLjM1NjM4MSwgMC40MTA1NDgsIDAuNDg3OTI0IiwgXAotICAgICAgICAgICIwLjEzMjUzMiwgMC4yMDI1MTEsIDAuMjU4OTI1LCAwLjI5Nzk3NiwgMC4zNjAwMTcsIDAuNDE0MjExLCAwLjQ5MTU2MSIsIFwKLSAgICAgICAgICAiMC4xMzczNzEsIDAuMjA3NDI2LCAwLjI2Mzg5OCwgMC4zMDI5ODksIDAuMzY1MDMzLCAwLjQxOTIyMywgMC40OTY1NzUiLCBcCi0gICAgICAgICAgIjAuMTQxMTkxLCAwLjIxMTI3NiwgMC4yNjc4MDYsIDAuMzA2OTQxLCAwLjM2OTAxMSwgMC40MjMyMDUsIDAuNTAwNTY4Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQzNjkyLCAwLjE1NDM5NywgMC4yNjMyMzUsIDAuMzQyMzU5LCAwLjQ3MDAyLCAwLjU4MzAwNCwgMC43NDQ5NzYiLCBcCi0gICAgICAgICAgIjAuMDQzNjQ1LCAwLjE1NDQ1NSwgMC4yNjMyNzksIDAuMzQyMzY5LCAwLjQ3MDE4MywgMC41ODI5NjksIDAuNzQ0OTc0IiwgXAotICAgICAgICAgICIwLjA0MzYzOSwgMC4xNTQzMzMsIDAuMjYzMzM5LCAwLjM0MjM3MSwgMC40NzAwNDMsIDAuNTgyOTk2LCAwLjc0NDA2NiIsIFwKLSAgICAgICAgICAiMC4wNDM0ODksIDAuMTU0Mzk3LCAwLjI2MzA3OSwgMC4zNDIzNSwgMC40NzAwMDIsIDAuNTgyNjUzLCAwLjc0NDk0IiwgXAotICAgICAgICAgICIwLjA0MzcwNCwgMC4xNTQ0NTQsIDAuMjYzMzQyLCAwLjM0MjM3NCwgMC40NzAxODMsIDAuNTgyOTcyLCAwLjc0NTAwNiIsIFwKLSAgICAgICAgICAiMC4wNDM1MjEsIDAuMTU0NTI4LCAwLjI2MzQ3NywgMC4zNDI1MTgsIDAuNDcwMjkzLCAwLjU4MzAzOCwgMC43NDUwMzgiLCBcCi0gICAgICAgICAgIjAuMDQzNjAyLCAwLjE1NDU4LCAwLjI2MzU0NywgMC4zNDI1NTgsIDAuNDcwMjU3LCAwLjU4MzE3NSwgMC43NDUwNzEiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTgyNDgsIDAuMTkwNDI0LCAwLjI0NzczMywgMC4yODcwMTQsIDAuMzQ5MDkyLCAwLjQwMzE1NywgMC40ODAyNzEiLCBcCi0gICAgICAgICAgIjAuMTI1OTQ0LCAwLjE5ODEzNSwgMC4yNTU0NDYsIDAuMjk0NzI5LCAwLjM1NjgxOCwgMC40MTA4NzcsIDAuNDg3OTkxIiwgXAotICAgICAgICAgICIwLjEzMjc2MiwgMC4yMDQ5NzQsIDAuMjYyMjYyLCAwLjMwMTUzMiwgMC4zNjM2NzIsIDAuNDE3Njk2LCAwLjQ5NDgxNCIsIFwKLSAgICAgICAgICAiMC4xMzc2OCwgMC4yMDk4ODIsIDAuMjY3MjAyLCAwLjMwNjUxNywgMC4zNjg1OTgsIDAuNDIyNjQ5LCAwLjQ5OTc3MSIsIFwKLSAgICAgICAgICAiMC4xNDE4NzksIDAuMjE0MTAyLCAwLjI3MTQyLCAwLjMxMDcwMywgMC4zNzI3NzksIDAuNDI2ODQ2LCAwLjUwMzk2MyIsIFwKLSAgICAgICAgICAiMC4xNDc0MDIsIDAuMjE5NTM2LCAwLjI3Njk2NywgMC4zMTYyOTEsIDAuMzc4Mjk0LCAwLjQzMjQzMiwgMC41MDk1NSIsIFwKLSAgICAgICAgICAiMC4xNTEzOCwgMC4yMjM0OTIsIDAuMjgwODk3LCAwLjMyMDI1MSwgMC4zODIzMjgsIDAuNDM2Mzg3LCAwLjUxMzUwNiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0NjIyNSwgMC4xNTY1MDMsIDAuMjYzMTM2LCAwLjM0MDM2NywgMC40NjUxNCwgMC41NzU1NywgMC43MzQ1MzIiLCBcCi0gICAgICAgICAgIjAuMDQ2MjYxLCAwLjE1NjQ2MSwgMC4yNjMxMTgsIDAuMzQwMzU5LCAwLjQ2NTIzOCwgMC41NzU1NTYsIDAuNzM0NTA0IiwgXAotICAgICAgICAgICIwLjA0NjMxNSwgMC4xNTY0ODgsIDAuMjYzMTM2LCAwLjM0MDM2NywgMC40NjUyNjIsIDAuNTc1NTYxLCAwLjczMzgxNSIsIFwKLSAgICAgICAgICAiMC4wNDYxNjYsIDAuMTU2NDE2LCAwLjI2MzA4NiwgMC4zNDAxMjcsIDAuNDY1MjI3LCAwLjU3NTI3NCwgMC43MzQzOTEiLCBcCi0gICAgICAgICAgIjAuMDQ2MTQzLCAwLjE1NjM5MiwgMC4yNjMwNjQsIDAuMzQwMzI0LCAwLjQ2NTEyNywgMC41NzU1MzYsIDAuNzM0MzkxIiwgXAotICAgICAgICAgICIwLjA0NjA5NiwgMC4xNTY1MDUsIDAuMjYzMTk4LCAwLjM0MDQxNywgMC40NjUyOTUsIDAuNTc1NTk4LCAwLjczNDQyNyIsIFwKLSAgICAgICAgICAiMC4wNDYxODgsIDAuMTU2NDY5LCAwLjI2MzE4NCwgMC4zNDA0NiwgMC40NjU0NywgMC41NzU5OSwgMC43MzM2MjEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiTTEiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk1NTA0LCAwLjE2NTQ2LCAwLjIyMTgwOCwgMC4yNjA5MDQsIDAuMzIyOTUsIDAuMzc3MTI5LCAwLjQ1NDQ3OCIsIFwKLSAgICAgICAgICAiMC4xMDI5ODQsIDAuMTcyOTUsIDAuMjI5MzMyLCAwLjI2ODM3NSwgMC4zMzA0MjIsIDAuMzg0NjEsIDAuNDYxOTU4IiwgXAotICAgICAgICAgICIwLjExMjc2NywgMC4xODI2NzMsIDAuMjM5MDEsIDAuMjc4MTExLCAwLjM0MDE1OCwgMC4zOTQzMjUsIDAuNDcxNjk0IiwgXAotICAgICAgICAgICIwLjEyMjQ1MSwgMC4xOTIzNDgsIDAuMjQ4NzQzLCAwLjI4NzgwMSwgMC4zNDk4NzIsIDAuNDA0MDQzLCAwLjQ4MTM4NSIsIFwKLSAgICAgICAgICAiMC4xMzIxMDIsIDAuMjAxOTUzLCAwLjI1ODM2LCAwLjI5NzM3OSwgMC4zNTk0OTUsIDAuNDEzNTkzLCAwLjQ5MDk2MyIsIFwKLSAgICAgICAgICAiMC4xNDYyMTksIDAuMjE2MzAzLCAwLjI3MjcwMywgMC4zMTE3MjQsIDAuMzczNzgyLCAwLjQyNzk5OCwgMC41MDUzMzEiLCBcCi0gICAgICAgICAgIjAuMTU3MTQ4LCAwLjIyNzc2OSwgMC4yODQwNTMsIDAuMzIzMjY4LCAwLjM4NTIyOSwgMC40Mzk0NjIsIDAuNTE2NzMzIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQzNTMyLCAwLjE1NDM4NCwgMC4yNjMyNDYsIDAuMzQyMzQyLCAwLjQ3MDA0NSwgMC41ODI5NzksIDAuNzQ0OTk3IiwgXAotICAgICAgICAgICIwLjA0MzUwMywgMC4xNTQzODIsIDAuMjYzMjk5LCAwLjM0MjMzNywgMC40NzAwMzEsIDAuNTgyOTg2LCAwLjc0NTAwMSIsIFwKLSAgICAgICAgICAiMC4wNDM0MzYsIDAuMTU0Mzg2LCAwLjI2MzI0NiwgMC4zNDIzNDQsIDAuNDcwMDEyLCAwLjU4MjYxNiwgMC43NDQ5NzIiLCBcCi0gICAgICAgICAgIjAuMDQzNTE0LCAwLjE1NDMzLCAwLjI2MzIzOCwgMC4zNDIzMTgsIDAuNDcwMDE1LCAwLjU4Mjk4MSwgMC43NDQ3NDYiLCBcCi0gICAgICAgICAgIjAuMDQzNjgyLCAwLjE1NDUxNSwgMC4yNjMzMjEsIDAuMzQyNDAxLCAwLjQ3MDA2OCwgMC41ODI2MTUsIDAuNzQ0OTg0IiwgXAotICAgICAgICAgICIwLjA0NDk0NCwgMC4xNTUwMjMsIDAuMjYzNTgsIDAuMzQyNTk2LCAwLjQ3MDI0NCwgMC41ODI2MzUsIDAuNzQ0OTc3IiwgXAotICAgICAgICAgICIwLjA0NzExMSwgMC4xNTU4OSwgMC4yNjQzNDUsIDAuMzQzMDA3LCAwLjQ3MDYsIDAuNTgzMjU3LCAwLjc0NTExMyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwNTU4OSwgMC4xNzc4MzUsIDAuMjM1MTQ3LCAwLjI3NDQzMiwgMC4zMzY1MTYsIDAuMzkwNTg1LCAwLjQ2NzcwMyIsIFwKLSAgICAgICAgICAiMC4xMTMwMTQsIDAuMTg1MTk4LCAwLjI0MjUzMywgMC4yODE4NDgsIDAuMzQzOTMxLCAwLjM5Nzk1NSwgMC40NzUxMDUiLCBcCi0gICAgICAgICAgIjAuMTIyNTUsIDAuMTk0NzUxLCAwLjI1MjA2MSwgMC4yOTEzNDUsIDAuMzUzNDQ2LCAwLjQwNzUwOCwgMC40ODQ2NDYiLCBcCi0gICAgICAgICAgIjAuMTMyMTQ2LCAwLjIwNDM0LCAwLjI2MTY0NSwgMC4zMDA5MjksIDAuMzYzMDcxLCAwLjQxNzEwMiwgMC40OTQyMjQiLCBcCi0gICAgICAgICAgIjAuMTQxNzA3LCAwLjIxMzgyNywgMC4yNzExNTQsIDAuMzEwNDgxLCAwLjM3MjU2OCwgMC40MjY2MiwgMC41MDM3MzEiLCBcCi0gICAgICAgICAgIjAuMTU2MDQxLCAwLjIyODIwOSwgMC4yODU1MjUsIDAuMzI0NzksIDAuMzg2ODYyLCAwLjQ0MDkyMSwgMC41MTgwMzkiLCBcCi0gICAgICAgICAgIjAuMTY3MTIsIDAuMjM5NzI2LCAwLjI5NzAxNCwgMC4zMzYzNjMsIDAuMzk4NDYzLCAwLjQ1MjQ5OSwgMC41Mjk1NTQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDYzNjUsIDAuMTU2NDk5LCAwLjI2MzEyOSwgMC4zNDAzNjIsIDAuNDY1MTgzLCAwLjU3NTU4OSwgMC43MzQ1MTYiLCBcCi0gICAgICAgICAgIjAuMDQ2MzQ4LCAwLjE1NjQ3NywgMC4yNjMxMzMsIDAuMzQwMTU2LCAwLjQ2NTI3MiwgMC41NzU5OSwgMC43MzQ0OTciLCBcCi0gICAgICAgICAgIjAuMDQ2MzU3LCAwLjE1NjQ5NiwgMC4yNjMxMzUsIDAuMzQwMzYyLCAwLjQ2NTE0NCwgMC41NzU1NjQsIDAuNzMzNTkxIiwgXAotICAgICAgICAgICIwLjA0NjM3MSwgMC4xNTY0ODMsIDAuMjYzMTI0LCAwLjM0MDM1OSwgMC40NjUyNzYsIDAuNTc1NTY4LCAwLjczNDQzNCIsIFwKLSAgICAgICAgICAiMC4wNDY0MDksIDAuMTU2NDEzLCAwLjI2MzE2MywgMC4zNDAzODIsIDAuNDY1Mjc2LCAwLjU3NTk3MSwgMC43MzQ0OTYiLCBcCi0gICAgICAgICAgIjAuMDQ3MzA0LCAwLjE1Njk1OSwgMC4yNjM0MiwgMC4zNDA1MjIsIDAuNDY1Mzc4LCAwLjU3NTA4OCwgMC43MzQ1NDQiLCBcCi0gICAgICAgICAgIjAuMDQ4NzksIDAuMTU3NTc5LCAwLjI2MzgzMywgMC4zNDA5MDcsIDAuNDY1NjQ1LCAwLjU3NTgyMSwgMC43MzQ1NjIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiTTEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTA2NzE2LCAwLjE3NjcwNSwgMC4yMzMwMjUsIDAuMjcyMTM4LCAwLjMzNDE4MywgMC4zODgzNTEsIDAuNDY1NzE0IiwgXAotICAgICAgICAgICIwLjExMzkyMiwgMC4xODM4NjQsIDAuMjQwMjc0LCAwLjI3OTMxOCwgMC4zNDEzNzksIDAuMzk1NTQzLCAwLjQ3Mjg4OSIsIFwKLSAgICAgICAgICAiMC4xMTk4NjMsIDAuMTg5NzU5LCAwLjI0NjE3LCAwLjI4NTIzNiwgMC4zNDczMDMsIDAuNDAxNDYxLCAwLjQ3ODgyMyIsIFwKLSAgICAgICAgICAiMC4xMjM5NjMsIDAuMTkzOTE2LCAwLjI1MDMzNCwgMC4yODkzNzgsIDAuMzUxNDM2LCAwLjQwNTYwOSwgMC40ODI5NTYiLCBcCi0gICAgICAgICAgIjAuMTI3MjM4LCAwLjE5NzEzNiwgMC4yNTM1NzksIDAuMjkyNjY4LCAwLjM1NDcxOSwgMC40MDg4ODgsIDAuNDg2MjQ3IiwgXAotICAgICAgICAgICIwLjEzMTU2MiwgMC4yMDE1OTYsIDAuMjU4MDcyLCAwLjI5NzE3MSwgMC4zNTkyMTQsIDAuNDEzMzc4LCAwLjQ5MDcyNiIsIFwKLSAgICAgICAgICAiMC4xMzQ4MjQsIDAuMjA0Nzc1LCAwLjI2MTMyLCAwLjMwMDQyMSwgMC4zNjI0ODgsIDAuNDE2NjcsIDAuNDk0MDQ2Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQzNTEzLCAwLjE1NDQwNSwgMC4yNjMyNzYsIDAuMzQyMzUxLCAwLjQ3MDAwNCwgMC41ODIyMjcsIDAuNzQ0OTYiLCBcCi0gICAgICAgICAgIjAuMDQzNTc4LCAwLjE1NDMxMiwgMC4yNjMzMzQsIDAuMzQyMzY5LCAwLjQ2OTgxNiwgMC41ODI5OTUsIDAuNzQ0OTk3IiwgXAotICAgICAgICAgICIwLjA0MzUzMywgMC4xNTQzMjksIDAuMjYzMjI3LCAwLjM0MjMzLCAwLjQ3MDAwNywgMC41ODI5NzcsIDAuNzQ0OTgxIiwgXAotICAgICAgICAgICIwLjA0MzUwNywgMC4xNTQyNTYsIDAuMjYzMzAyLCAwLjM0MjM0NCwgMC40Njk4ODksIDAuNTgyOTczLCAwLjc0NDk5NSIsIFwKLSAgICAgICAgICAiMC4wNDM2NTIsIDAuMTU0Mzk3LCAwLjI2MzMxOCwgMC4zNDIzNjMsIDAuNDcwMDMxLCAwLjU4MjU1NiwgMC43NDQ5NzciLCBcCi0gICAgICAgICAgIjAuMDQzNDg2LCAwLjE1NDUwNCwgMC4yNjM0NTksIDAuMzQyNTAyLCAwLjQ3MDI2NywgMC41ODMwMzksIDAuNzQ1MDA1IiwgXAotICAgICAgICAgICIwLjA0MzM5NCwgMC4xNTQzODcsIDAuMjYzNDUzLCAwLjM0MjUzNiwgMC40NzAyNSwgMC41ODI4MiwgMC43NDUwMjkiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTU1NSwgMC4xODc3NzIsIDAuMjQ1MDc4LCAwLjI4NDM1MywgMC4zNDY0OTcsIDAuNDAwNTIyLCAwLjQ3NzY0OSIsIFwKLSAgICAgICAgICAiMC4xMjI3ODEsIDAuMTk1MDYxLCAwLjI1MjM3LCAwLjI5MTY0NCwgMC4zNTM3NDEsIDAuNDA3ODExLCAwLjQ4NDkyIiwgXAotICAgICAgICAgICIwLjEyODY5NywgMC4yMDA5NjYsIDAuMjU4MjgsIDAuMjk3NTYzLCAwLjM1OTY1OCwgMC40MTM3MjEsIDAuNDkwODY0IiwgXAotICAgICAgICAgICIwLjEzMzIyNiwgMC4yMDU0NjEsIDAuMjYyNzk5LCAwLjMwMjExNywgMC4zNjQxOTksIDAuNDE4MjMsIDAuNDk1MzcyIiwgXAotICAgICAgICAgICIwLjEzNjk1OCwgMC4yMDkxMzUsIDAuMjY2NDY2LCAwLjMwNTc4MSwgMC4zNjc4NywgMC40MjE5MzUsIDAuNDk5MDQyIiwgXAotICAgICAgICAgICIwLjE0MTQ1MywgMC4yMTM3NDUsIDAuMjcxMTY5LCAwLjMxMDQ1OCwgMC4zNzI1NTYsIDAuNDI2NTk1LCAwLjUwMzY1NyIsIFwKLSAgICAgICAgICAiMC4xNDQ4OTcsIDAuMjE3MDkxLCAwLjI3NDU0MiwgMC4zMTM4MjYsIDAuMzc1OTY4LCAwLjQzMDAyOSwgMC41MDcxNTQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDYzNDQsIDAuMTU2NTM1LCAwLjI2MzE2NSwgMC4zNDAzODksIDAuNDY1Mjc1LCAwLjU3NTU1OCwgMC43MzMyNDEiLCBcCi0gICAgICAgICAgIjAuMDQ2MzM4LCAwLjE1NjUzMSwgMC4yNjMxNjMsIDAuMzQwMzgyLCAwLjQ2NTMwMSwgMC41NzU1NywgMC43MzQ0NSIsIFwKLSAgICAgICAgICAiMC4wNDYzNTYsIDAuMTU2NTIyLCAwLjI2MzE2LCAwLjM0MDM4MiwgMC40NjUyMzcsIDAuNTc1NTUxLCAwLjczNDYyNiIsIFwKLSAgICAgICAgICAiMC4wNDYzNjQsIDAuMTU2NDksIDAuMjYzMTQxLCAwLjM0MDE0MywgMC40NjUyNjcsIDAuNTc1NTczLCAwLjczNDQ3MiIsIFwKLSAgICAgICAgICAiMC4wNDYzMTYsIDAuMTU2NDAyLCAwLjI2MzExNSwgMC4zNDAzNTMsIDAuNDY1MjMxLCAwLjU3NTMzNSwgMC43MzQ0ODMiLCBcCi0gICAgICAgICAgIjAuMDQ2MjU3LCAwLjE1NjU5MSwgMC4yNjMyNjIsIDAuMzQwNDg2LCAwLjQ2NTM1MywgMC41NzU1MjksIDAuNzM0NDU3IiwgXAotICAgICAgICAgICIwLjA0NjI3MSwgMC4xNTY1MjQsIDAuMjYzMjQxLCAwLjM0MDYyMiwgMC40NjUzOTQsIDAuNTc1OTc1LCAwLjczNDU0NiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwMDI5NSwgMC4xNzAyMTEsIDAuMjI2NjIyLCAwLjI2NTY3OSwgMC4zMjc3NTIsIDAuMzgxOTA0LCAwLjQ1OTIzMiIsIFwKLSAgICAgICAgICAiMC4xMDY1NTgsIDAuMTc2NDYsIDAuMjMyODg3LCAwLjI3MTkzMywgMC4zMzM5OSwgMC4zODgxNTYsIDAuNDY1NTEzIiwgXAotICAgICAgICAgICIwLjExNDMxMiwgMC4xODQyOTcsIDAuMjQwNjkzLCAwLjI3OTc0MSwgMC4zNDE3OSwgMC4zOTU5NzYsIDAuNDczMzE4IiwgXAotICAgICAgICAgICIwLjEyMjI0NiwgMC4xOTIxNzcsIDAuMjQ4NTI1LCAwLjI4NzYxNiwgMC4zNDk2NjUsIDAuNDAzODI0LCAwLjQ4MTE4NiIsIFwKLSAgICAgICAgICAiMC4xMjk3ODIsIDAuMTk5NjkyLCAwLjI1NjA3OSwgMC4yOTUxMjMsIDAuMzU3MTg2LCAwLjQxMTM1NCwgMC40ODg3MjMiLCBcCi0gICAgICAgICAgIjAuMTQwOTU5LCAwLjIxMDk2MywgMC4yNjc0MSwgMC4zMDY0NDksIDAuMzY4NDg4LCAwLjQyMjY3MywgMC41MDAwMTMiLCBcCi0gICAgICAgICAgIjAuMTQ5Njk3LCAwLjIyMDA3NywgMC4yNzY1MjksIDAuMzE1NjQ5LCAwLjM3NzcwNSwgMC40MzE4NTQsIDAuNTA5MTk5Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQzNzY2LCAwLjE1NDQ2MiwgMC4yNjMzNTksIDAuMzQyMzU2LCAwLjQ3MDIwNiwgMC41ODMwMTksIDAuNzQ1MDA3IiwgXAotICAgICAgICAgICIwLjA0Mzc5NiwgMC4xNTQ0MjcsIDAuMjYzMzY1LCAwLjM0MjM1MywgMC40NzAwNzEsIDAuNTgzMDA4LCAwLjc0NDkxMSIsIFwKLSAgICAgICAgICAiMC4wNDM2MTQsIDAuMTU0NDA3LCAwLjI2MzM0NywgMC4zNDIzNiwgMC40NzAwMjcsIDAuNTgyOTg4LCAwLjc0NDk4OSIsIFwKLSAgICAgICAgICAiMC4wNDM2MTgsIDAuMTU0NDUsIDAuMjYzMzM4LCAwLjM0MjM2MiwgMC40NzAxNjcsIDAuNTgyOTg2LCAwLjc0NDk5MyIsIFwKLSAgICAgICAgICAiMC4wNDM4NjksIDAuMTU0NTM5LCAwLjI2MzQsIDAuMzQyNDAyLCAwLjQ3MDA1MywgMC41ODMwMDEsIDAuNzQ0OTk5IiwgXAotICAgICAgICAgICIwLjA0NDYwOCwgMC4xNTQ4OTQsIDAuMjYzNjYsIDAuMzQyNTkxLCAwLjQ3MDMyMSwgMC41ODMwNTksIDAuNzQ0OTg2IiwgXAotICAgICAgICAgICIwLjA0NjQwOCwgMC4xNTU3NjQsIDAuMjY0MTExLCAwLjM0MjgzOSwgMC40NzA0NDEsIDAuNTgzMjc4LCAwLjc0NTE0OCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExMDY2NywgMC4xODI4OTQsIDAuMjQwMTkyLCAwLjI3OTUxLCAwLjM0MTU4MywgMC4zOTU2MzYsIDAuNDcyNzQ4IiwgXAotICAgICAgICAgICIwLjExNjc1MSwgMC4xODg5MzksIDAuMjQ2MjUzLCAwLjI4NTUzNywgMC4zNDc2MTQsIDAuNDAxNjc4LCAwLjQ3ODc5IiwgXAotICAgICAgICAgICIwLjEyMzgxNCwgMC4xOTYwMiwgMC4yNTMzMDksIDAuMjkyNjMzLCAwLjM1NDcwMSwgMC40MDg3NjMsIDAuNDg1ODc4IiwgXAotICAgICAgICAgICIwLjEzMDg1NSwgMC4yMDMwNTcsIDAuMjYwMzYzLCAwLjI5OTY2NywgMC4zNjE3NzUsIDAuNDE1ODAxLCAwLjQ5MjkxMSIsIFwKLSAgICAgICAgICAiMC4xMzc3MzEsIDAuMjA5ODgsIDAuMjY3MTk4LCAwLjMwNjQ4MSwgMC4zNjg1NTksIDAuNDIyNjIzLCAwLjQ5OTczOCIsIFwKLSAgICAgICAgICAiMC4xNDc5MTQsIDAuMjIwMTgsIDAuMjc3NTQzLCAwLjMxNjgxLCAwLjM3ODk2LCAwLjQzMjk3MywgMC41MTAxMTUiLCBcCi0gICAgICAgICAgIjAuMTU2MTc1LCAwLjIyODY2LCAwLjI4NTkxNSwgMC4zMjUzNDksIDAuMzg3NDExLCAwLjQ0MTQ0NywgMC41MTg1ODciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDY0NDMsIDAuMTU2NDg3LCAwLjI2MzE1MSwgMC4zNDAzNjEsIDAuNDY1MjY2LCAwLjU3NTk3OCwgMC43MzQ1MDUiLCBcCi0gICAgICAgICAgIjAuMDQ2NDAxLCAwLjE1NjQ5NiwgMC4yNjMxNTcsIDAuMzQwMzcxLCAwLjQ2NTI3NiwgMC41NzU1ODEsIDAuNzM0NTE1IiwgXAotICAgICAgICAgICIwLjA0NjQwMiwgMC4xNTY0ODYsIDAuMjYzMTM5LCAwLjM0MDM2MywgMC40NjUyNjYsIDAuNTc1NTc2LCAwLjczNDUwNiIsIFwKLSAgICAgICAgICAiMC4wNDYzODgsIDAuMTU2NDc3LCAwLjI2MzEzLCAwLjM0MDM1NCwgMC40NjUyNjYsIDAuNTc1OTU3LCAwLjczNDUwMiIsIFwKLSAgICAgICAgICAiMC4wNDY0NzgsIDAuMTU2NTI3LCAwLjI2MzE3OSwgMC4zNDA0MTIsIDAuNDY1MjcsIDAuNTc1NTg5LCAwLjczNDQ5MyIsIFwKLSAgICAgICAgICAiMC4wNDcxOTMsIDAuMTU2OTc1LCAwLjI2MzQ1NiwgMC4zNDA1NCwgMC40NjUzOTUsIDAuNTc1NTg4LCAwLjczNDUxMyIsIFwKLSAgICAgICAgICAiMC4wNDg0NjQsIDAuMTU3NTcyLCAwLjI2NDAyNywgMC4zNDA4NSwgMC40NjU1NDEsIDAuNTc2MTk2LCAwLjczNDczOCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJYMiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjMyNTcsIDAuMTMzMTE1LCAwLjE4OTQzOCwgMC4yMjg0NjEsIDAuMjkwNTA3LCAwLjM0NDYzOSwgMC40MjE5NDYiLCBcCi0gICAgICAgICAgIjAuMDcwMzYsIDAuMTQwMTUxLCAwLjE5NjQ3OCwgMC4yMzU1LCAwLjI5NzUzNywgMC4zNTE2NywgMC40Mjg5OTIiLCBcCi0gICAgICAgICAgIjAuMDc4MjkyLCAwLjE0NzkzMiwgMC4yMDQyNTEsIDAuMjQzMjY1LCAwLjMwNTI5OSwgMC4zNTk0MzMsIDAuNDM2NzU2IiwgXAotICAgICAgICAgICIwLjA4NjIyNiwgMC4xNTU2MywgMC4yMTE5NTIsIDAuMjUwOTU4LCAwLjMxMjk2NSwgMC4zNjcxMjcsIDAuNDQ0NDQ5IiwgXAotICAgICAgICAgICIwLjA5MzUzMSwgMC4xNjI3OTEsIDAuMjE5MDg5LCAwLjI1ODEyOSwgMC4zMjAxMDksIDAuMzc0MjY5LCAwLjQ1MTU4OCIsIFwKLSAgICAgICAgICAiMC4xMDMzMzMsIDAuMTcyODQsIDAuMjI5MjM3LCAwLjI2ODI2NiwgMC4zMzAyODMsIDAuMzg0NDIyLCAwLjQ2MTcxMiIsIFwKLSAgICAgICAgICAiMC4xMTA2MiwgMC4xODA2ODgsIDAuMjM3MTMxLCAwLjI3NjI0LCAwLjMzODI2OSwgMC4zOTIzODMsIDAuNDY5NjM2Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQyNzM3LCAwLjE1Mzc4OSwgMC4yNjI5MjIsIDAuMzQxOTI3LCAwLjQ2OTUxNSwgMC41ODI3MTMsIDAuNzQ0Mzg5IiwgXAotICAgICAgICAgICIwLjA0MjUwOSwgMC4xNTM3MDMsIDAuMjYyNjc1LCAwLjM0MTkzNiwgMC40Njk0MjcsIDAuNTgyNjk4LCAwLjc0NDU2MyIsIFwKLSAgICAgICAgICAiMC4wNDIwNDgsIDAuMTUzNTY5LCAwLjI2MjgwNywgMC4zNDE5MTQsIDAuNDY5NzAzLCAwLjU4MjY1NywgMC43NDQ2NzIiLCBcCi0gICAgICAgICAgIjAuMDQxOTc3LCAwLjE1MzUzMSwgMC4yNjI3NjUsIDAuMzQxODgzLCAwLjQ2OTY2NiwgMC41ODI2MDksIDAuNzQ0NjY0IiwgXAotICAgICAgICAgICIwLjA0MzEwOSwgMC4xNTM2NzgsIDAuMjYyODksIDAuMzQyMDAyLCAwLjQ2OTcxNCwgMC41ODI2NzYsIDAuNzQ0NjU4IiwgXAotICAgICAgICAgICIwLjA0NTUzMSwgMC4xNTQ2MiwgMC4yNjMzNzEsIDAuMzQyMzY0LCAwLjQ2OTg2NiwgMC41ODI5MzQsIDAuNzQ0ODg0IiwgXAotICAgICAgICAgICIwLjA0ODAxMywgMC4xNTU0NjIsIDAuMjYzOTkxLCAwLjM0Mjg4NiwgMC40NzA0MTYsIDAuNTgzMTc1LCAwLjc0NDg5MyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3MTkyNywgMC4xNDQxMjcsIDAuMjAxMzY0LCAwLjI0MDYwMiwgMC4zMDI3MDgsIDAuMzU2NzExLCAwLjQzMzgxNSIsIFwKLSAgICAgICAgICAiMC4wNzg4MjUsIDAuMTUwOTM1LCAwLjIwODE3OSwgMC4yNDc0MzUsIDAuMzA5NDY5LCAwLjM2MzUxNywgMC40NDA2MTIiLCBcCi0gICAgICAgICAgIjAuMDg2MzYxLCAwLjE1ODQyNywgMC4yMTU2NzUsIDAuMjU0OTE2LCAwLjMxNzAxNSwgMC4zNzEwMjQsIDAuNDQ4MTIiLCBcCi0gICAgICAgICAgIjAuMDkzODQxLCAwLjE2NTY2MywgMC4yMjI5MTEsIDAuMjYyMTU0LCAwLjMyNDI0NywgMC4zNzgyNTYsIDAuNDU1MzU0IiwgXAotICAgICAgICAgICIwLjEwMTA1MywgMC4xNzI2NjYsIDAuMjI5ODcxLCAwLjI2OTExNSwgMC4zMzExNjYsIDAuMzg1MTk3LCAwLjQ2MjI4NCIsIFwKLSAgICAgICAgICAiMC4xMTA5NTksIDAuMTgyNTMxLCAwLjIzOTgyOSwgMC4yNzkwODIsIDAuMzQxMTE4LCAwLjM5NTE0NiwgMC40NzIyNDEiLCBcCi0gICAgICAgICAgIjAuMTE4NDc4LCAwLjE5MDE2NiwgMC4yNDc1ODgsIDAuMjg2ODgyLCAwLjM0ODkwNywgMC40MDI5MjksIDAuNDgwMDE0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQ1NTg0LCAwLjE1NjAxMSwgMC4yNjI3NjUsIDAuMzQwMDM3LCAwLjQ2NDk0MiwgMC41NzUyODMsIDAuNzMzMzEzIiwgXAotICAgICAgICAgICIwLjA0NTYwNCwgMC4xNTU5NjEsIDAuMjYyNzMxLCAwLjM0MDAyMiwgMC40NjQ4NiwgMC41NzUyODcsIDAuNzM0MjUxIiwgXAotICAgICAgICAgICIwLjA0NTE1MiwgMC4xNTU4NTcsIDAuMjYyNjcyLCAwLjMzOTk2NSwgMC40NjQ5MjgsIDAuNTc1MjMsIDAuNzMzNTc4IiwgXAotICAgICAgICAgICIwLjA0NDU2MywgMC4xNTU2NjYsIDAuMjYyNjEzLCAwLjMzOTkyNywgMC40NjQ4OTcsIDAuNTc1MTgxLCAwLjczMzU1MiIsIFwKLSAgICAgICAgICAiMC4wNDUyMTksIDAuMTU1NzgzLCAwLjI2MjY3NiwgMC4zNDAwMSwgMC40NjQ5NzMsIDAuNTc1MjM3LCAwLjczNDIzMyIsIFwKLSAgICAgICAgICAiMC4wNDczNTQsIDAuMTU2MzE5LCAwLjI2MzEwOSwgMC4zNDAzMzQsIDAuNDY1MTcxLCAwLjU3NTg4LCAwLjczNDM5NSIsIFwKLSAgICAgICAgICAiMC4wNDkyMDMsIDAuMTU3MTA2LCAwLjI2MzY5NSwgMC4zNDA4MzUsIDAuNDY1NzEsIDAuNTc2MTk5LCAwLjczNDU4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlgyIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2NzcyOSwgMC4xMzc1MzUsIDAuMTkzODQ4LCAwLjIzMjg2MywgMC4yOTQ4ODEsIDAuMzQ5MDQyLCAwLjQyNjM2OSIsIFwKLSAgICAgICAgICAiMC4wNzUyMjcsIDAuMTQ1MDMyLCAwLjIwMTM3MiwgMC4yNDAzOTYsIDAuMzAyNDE2LCAwLjM1NjU3LCAwLjQzMzg5NyIsIFwKLSAgICAgICAgICAiMC4wODMwMywgMC4xNTI3ODMsIDAuMjA5MTEzLCAwLjI0ODE3OCwgMC4zMTAxOTQsIDAuMzY0MzM0LCAwLjQ0MTY1IiwgXAotICAgICAgICAgICIwLjA4ODg4OSwgMC4xNTg0NDgsIDAuMjE0NzE4LCAwLjI1Mzc1OCwgMC4zMTU4MTksIDAuMzY5OTk5LCAwLjQ0NzMxOCIsIFwKLSAgICAgICAgICAiMC4wOTI5MjMsIDAuMTYyMjYyLCAwLjIxODU0MSwgMC4yNTc2MTEsIDAuMzE5NjA0LCAwLjM3Mzc2MiwgMC40NTExMDIiLCBcCi0gICAgICAgICAgIjAuMDk4MDgxLCAwLjE2NzE1LCAwLjIyMzQzNCwgMC4yNjI1MzksIDAuMzI0NTQ0LCAwLjM3ODcxMiwgMC40NTYwNDMiLCBcCi0gICAgICAgICAgIjAuMTAxNzM2LCAwLjE3MTA0MSwgMC4yMjcxNzYsIDAuMjY2MjM2LCAwLjMyODI2MywgMC4zODI0MDQsIDAuNDU5NzIxIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQyODYyLCAwLjE1MzkyLCAwLjI2Mjk2MiwgMC4zNDIwMTUsIDAuNDY5ODEsIDAuNTgyNzM5LCAwLjc0NDc4NCIsIFwKLSAgICAgICAgICAiMC4wNDI3NjEsIDAuMTUzODEsIDAuMjYyOTQyLCAwLjM0MTk5OSwgMC40Njk3MTcsIDAuNTgyNzIyLCAwLjc0Mzc1MiIsIFwKLSAgICAgICAgICAiMC4wNDIzMTYsIDAuMTUzNjYsIDAuMjYyNzMyLCAwLjM0MTkzOSwgMC40Njk2ODcsIDAuNTgyNjg5LCAwLjc0NDE1MyIsIFwKLSAgICAgICAgICAiMC4wNDE2NiwgMC4xNTM1MzQsIDAuMjYyNjk1LCAwLjM0MTg2NCwgMC40Njk4MjgsIDAuNTgyNjU3LCAwLjc0NDY5NiIsIFwKLSAgICAgICAgICAiMC4wNDEzNywgMC4xNTMyOTIsIDAuMjYyNjM2LCAwLjM0MTgzOCwgMC40Njk2MzgsIDAuNTgyNjI4LCAwLjc0NDYzNiIsIFwKLSAgICAgICAgICAiMC4wNDE0NjQsIDAuMTUzMDEyLCAwLjI2MjM2LCAwLjM0MTU2OCwgMC40Njk2NywgMC41ODIxMDUsIDAuNzQ0NTkxIiwgXAotICAgICAgICAgICIwLjA0MTYwMSwgMC4xNTI4MzcsIDAuMjYyMjU3LCAwLjM0MTQyNSwgMC40NjkzMjYsIDAuNTgxOTc4LCAwLjc0MzI2NSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3NDcyMSwgMC4xNDY5MjQsIDAuMjA0MTYyLCAwLjI0MzQzMywgMC4zMDU1MjQsIDAuMzU5NTM2LCAwLjQzNjY0MyIsIFwKLSAgICAgICAgICAiMC4wODI3NiwgMC4xNTQ4OTUsIDAuMjEyMTQ0LCAwLjI1MTQwOCwgMC4zMTM1MDUsIDAuMzY3NTE0LCAwLjQ0NDYyIiwgXAotICAgICAgICAgICIwLjA5MDU4MSwgMC4xNjI3MjksIDAuMjIwMDM3LCAwLjI1OTI4OSwgMC4zMjEzOTcsIDAuMzc1NDA4LCAwLjQ1MjUxMiIsIFwKLSAgICAgICAgICAiMC4wOTY3OTEsIDAuMTY4NzQsIDAuMjI2MDYsIDAuMjY1MzMxLCAwLjMyNzQwMiwgMC4zODE0NDcsIDAuNDU4NTQ2IiwgXAotICAgICAgICAgICIwLjEwMTI1OCwgMC4xNzMwMjYsIDAuMjMwMzE1LCAwLjI2OTU2OSwgMC4zMzE0MiwgMC4zODU2NjIsIDAuNDYyNzg0IiwgXAotICAgICAgICAgICIwLjEwNjcwMiwgMC4xNzgxNTEsIDAuMjM1NDQ3LCAwLjI3NDc2NywgMC4zMzY4MzUsIDAuMzkwODkyLCAwLjQ2Nzk3MSIsIFwKLSAgICAgICAgICAiMC4xMTA2OTIsIDAuMTgyMTgzLCAwLjIzOTI2NywgMC4yNzg2MTQsIDAuMzQwNjY4LCAwLjM5NDY2LCAwLjQ3MTgzMyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0NTgxMSwgMC4xNTYwODgsIDAuMjYyODMyLCAwLjM0MDA0NiwgMC40NjUwMjYsIDAuNTc1MzY0LCAwLjczNDMwMiIsIFwKLSAgICAgICAgICAiMC4wNDU3NTUsIDAuMTU2MDI4LCAwLjI2Mjc4MywgMC4zNDAwMTYsIDAuNDY1MDExLCAwLjU3NTM2NiwgMC43MzQzMjQiLCBcCi0gICAgICAgICAgIjAuMDQ1MzkyLCAwLjE1NTg5NywgMC4yNjI2OTYsIDAuMzM5OTg1LCAwLjQ2NDk1OCwgMC41NzUyODksIDAuNzMzNTk5IiwgXAotICAgICAgICAgICIwLjA0NDY2NCwgMC4xNTU2ODgsIDAuMjYyNjE4LCAwLjMzOTgyNywgMC40NjQ5MDMsIDAuNTc1MDI4LCAwLjczNDEzOSIsIFwKLSAgICAgICAgICAiMC4wNDQzODMsIDAuMTU1NDgsIDAuMjYyNTI0LCAwLjMzOTg2NiwgMC40NjQ4NjYsIDAuNTc1MTQsIDAuNzM0MjI4IiwgXAotICAgICAgICAgICIwLjA0NDM0MywgMC4xNTUxMjcsIDAuMjYyMjI2LCAwLjMzOTYyNSwgMC40NjQ4MjgsIDAuNTc1NDkyLCAwLjczNDIyNyIsIFwKLSAgICAgICAgICAiMC4wNDQ0NzgsIDAuMTU1LCAwLjI2MjA5MiwgMC4zMzk1NDYsIDAuNDY0NTM3LCAwLjU3NDgxMiwgMC43MzQxNDciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwODI3NiwgMC4wMDc4MzcsIDAuMDA3ODIyLCAwLjAwNzgyLCAwLjAwNzgyLCAwLjAwNzgxOSwgMC4wMDc4MTkiLCBcCi0gICAgICAgICAgIjAuMDA4MjQ3LCAwLjAwNzc5NSwgMC4wMDc3NzgsIDAuMDA3NzgxLCAwLjAwNzc3OCwgMC4wMDc3NzksIDAuMDA3Nzc5IiwgXAotICAgICAgICAgICIwLjAwODI1NSwgMC4wMDc4MDUsIDAuMDA3NzkxLCAwLjAwNzc5LCAwLjAwNzc5MSwgMC4wMDc3OTEsIDAuMDA3NzkyIiwgXAotICAgICAgICAgICIwLjAwODMxNywgMC4wMDc4NTcsIDAuMDA3ODQ0LCAwLjAwNzg0NCwgMC4wMDc4NDYsIDAuMDA3ODQ5LCAwLjAwNzg1MSIsIFwKLSAgICAgICAgICAiMC4wMDg0NzYsIDAuMDA3OTU5LCAwLjAwNzkzOCwgMC4wMDc5MzgsIDAuMDA3OTM4LCAwLjAwNzk0LCAwLjAwNzk0MSIsIFwKLSAgICAgICAgICAiMC4wMDg3OTIsIDAuMDA4MTc2LCAwLjAwODEzOSwgMC4wMDgxMzUsIDAuMDA4MTM0LCAwLjAwODEzLCAwLjAwODEzNSIsIFwKLSAgICAgICAgICAiMC4wMDkwOTMsIDAuMDA4Mzk4LCAwLjAwODM1LCAwLjAwODM0LCAwLjAwODMzNSwgMC4wMDgzMzYsIDAuMDA4MzM3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTU1OTIsIDAuMDE0OTk4LCAwLjAxNDk3MiwgMC4wMTQ5NjgsIDAuMDE0OTY2LCAwLjAxNDk2NiwgMC4wMTQ5NjYiLCBcCi0gICAgICAgICAgIjAuMDE1NTU3LCAwLjAxNDk3MSwgMC4wMTQ5NDQsIDAuMDE0OTQsIDAuMDE0OTM5LCAwLjAxNDkzOSwgMC4wMTQ5NCIsIFwKLSAgICAgICAgICAiMC4wMTU1NywgMC4wMTQ5ODEsIDAuMDE0OTU0LCAwLjAxNDk1MSwgMC4wMTQ5NTEsIDAuMDE0OTUxLCAwLjAxNDk1MyIsIFwKLSAgICAgICAgICAiMC4wMTU2MzUsIDAuMDE1MDIyLCAwLjAxNDk5NywgMC4wMTQ5OTUsIDAuMDE0OTk2LCAwLjAxNDk5NywgMC4wMTQ5OTkiLCBcCi0gICAgICAgICAgIjAuMDE1Nzc5LCAwLjAxNTExMiwgMC4wMTUwOCwgMC4wMTUwNzYsIDAuMDE1MDc2LCAwLjAxNTA3NywgMC4wMTUwNzkiLCBcCi0gICAgICAgICAgIjAuMDE2MDQ3LCAwLjAxNTMwOSwgMC4wMTUyNjEsIDAuMDE1MjU1LCAwLjAxNTI1MSwgMC4wMTUyNTIsIDAuMDE1MjUzIiwgXAotICAgICAgICAgICIwLjAxNjM4MSwgMC4wMTU1MzEsIDAuMDE1NDc4LCAwLjAxNTQ1NCwgMC4wMTU0NDgsIDAuMDE1NDQ3LCAwLjAxNTQ0NiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIk0wIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwOTk5NiwgMC4wMDk1MzMsIDAuMDA5NTE2LCAwLjAwOTUxNiwgMC4wMDk1MTYsIDAuMDA5NTEzLCAwLjAwOTUxNiIsIFwKLSAgICAgICAgICAiMC4wMDk5OTksIDAuMDA5NTQyLCAwLjAwOTUyNSwgMC4wMDk1MjUsIDAuMDA5NTE5LCAwLjAwOTUyMywgMC4wMDk1MjQiLCBcCi0gICAgICAgICAgIjAuMDEwMDc3LCAwLjAwOTYyNCwgMC4wMDk2MDksIDAuMDA5NjA3LCAwLjAwOTYwOCwgMC4wMDk2MDcsIDAuMDA5NjA4IiwgXAotICAgICAgICAgICIwLjAxMDE2LCAwLjAwOTcyNywgMC4wMDk3MTUsIDAuMDA5NzE2LCAwLjAwOTcxOCwgMC4wMDk3MTgsIDAuMDA5NzE5IiwgXAotICAgICAgICAgICIwLjAxMDMzMywgMC4wMDk4NjMsIDAuMDA5ODQ2LCAwLjAwOTg0NCwgMC4wMDk4NDIsIDAuMDA5ODQzLCAwLjAwOTg0MyIsIFwKLSAgICAgICAgICAiMC4wMTA1MjQsIDAuMDEwMDczLCAwLjAxMDA1OCwgMC4wMTAwNTgsIDAuMDEwMDU3LCAwLjAxMDA1OCwgMC4wMTAwNTgiLCBcCi0gICAgICAgICAgIjAuMDEwNjg5LCAwLjAxMDI2MSwgMC4wMTAyNDksIDAuMDEwMjUxLCAwLjAxMDI0OSwgMC4wMTAyNTEsIDAuMDEwMjU1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTE0ODQsIDAuMDEwODYsIDAuMDEwODI3LCAwLjAxMDgyMSwgMC4wMTA4MTgsIDAuMDEwODE3LCAwLjAxMDgxNyIsIFwKLSAgICAgICAgICAiMC4wMTE0NTksIDAuMDEwODU3LCAwLjAxMDgyNywgMC4wMTA4MjMsIDAuMDEwODIxLCAwLjAxMDgyLCAwLjAxMDgyMSIsIFwKLSAgICAgICAgICAiMC4wMTE1NTcsIDAuMDEwOTQ2LCAwLjAxMDkxNSwgMC4wMTA5MDksIDAuMDEwOTA3LCAwLjAxMDkwNiwgMC4wMTA5MDYiLCBcCi0gICAgICAgICAgIjAuMDExNjI5LCAwLjAxMTA0MiwgMC4wMTEwMTgsIDAuMDExMDE2LCAwLjAxMTAxNiwgMC4wMTEwMTYsIDAuMDExMDE4IiwgXAotICAgICAgICAgICIwLjAxMTc3NSwgMC4wMTExOTksIDAuMDExMTc1LCAwLjAxMTE3MiwgMC4wMTExNzIsIDAuMDExMTczLCAwLjAxMTE3NCIsIFwKLSAgICAgICAgICAiMC4wMTIwMjksIDAuMDExNDI4LCAwLjAxMTQwMiwgMC4wMTEzOTgsIDAuMDExMzk2LCAwLjAxMTM5NywgMC4wMTEzOTgiLCBcCi0gICAgICAgICAgIjAuMDEyMjMxLCAwLjAxMTYzLCAwLjAxMTYwNiwgMC4wMTE2MDMsIDAuMDExNjAyLCAwLjAxMTYwMywgMC4wMTE2MDIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJNMSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDk3NjQsIDAuMDA5MzA5LCAwLjAwOTI5MiwgMC4wMDkyOSwgMC4wMDkyODksIDAuMDA5Mjg5LCAwLjAwOTI4OCIsIFwKLSAgICAgICAgICAiMC4wMDk4MDcsIDAuMDA5MzM4LCAwLjAwOTMxNiwgMC4wMDkzMTIsIDAuMDA5MzEsIDAuMDA5MzEsIDAuMDA5MzA5IiwgXAotICAgICAgICAgICIwLjAwOTg3LCAwLjAwOTQyMiwgMC4wMDk0MDYsIDAuMDA5NDA1LCAwLjAwOTQwNCwgMC4wMDk0MDMsIDAuMDA5NDAzIiwgXAotICAgICAgICAgICIwLjAwOTk1NywgMC4wMDk1MjgsIDAuMDA5NTE1LCAwLjAwOTUxMywgMC4wMDk1MTQsIDAuMDA5NTE0LCAwLjAwOTUxNSIsIFwKLSAgICAgICAgICAiMC4wMTAxMjUsIDAuMDA5NjcxLCAwLjAwOTY1MywgMC4wMDk2NTEsIDAuMDA5NjQ5LCAwLjAwOTY0OCwgMC4wMDk2NDciLCBcCi0gICAgICAgICAgIjAuMDEwMzc4LCAwLjAwOTkzOSwgMC4wMDk5MjMsIDAuMDA5OTE5LCAwLjAwOTkxOSwgMC4wMDk5MTcsIDAuMDA5OTIiLCBcCi0gICAgICAgICAgIjAuMDEwNTgsIDAuMDEwMTMzLCAwLjAxMDExOCwgMC4wMTAxMTksIDAuMDEwMTEzLCAwLjAxMDExNSwgMC4wMTAxMiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDExMDY1LCAwLjAxMDQ2LCAwLjAxMDQzMSwgMC4wMTA0MjYsIDAuMDEwNDI1LCAwLjAxMDQyNCwgMC4wMTA0MjUiLCBcCi0gICAgICAgICAgIjAuMDExMDc3LCAwLjAxMDQ2OSwgMC4wMTA0NDIsIDAuMDEwNDM4LCAwLjAxMDQzNywgMC4wMTA0MzYsIDAuMDEwNDM3IiwgXAotICAgICAgICAgICIwLjAxMTE2NywgMC4wMTA1NjksIDAuMDEwNTQyLCAwLjAxMDUzNywgMC4wMTA1MzUsIDAuMDEwNTM1LCAwLjAxMDUzNiIsIFwKLSAgICAgICAgICAiMC4wMTEyNTQsIDAuMDEwNjc0LCAwLjAxMDY1NCwgMC4wMTA2NTIsIDAuMDEwNjUyLCAwLjAxMDY1MiwgMC4wMTA2NTQiLCBcCi0gICAgICAgICAgIjAuMDExNDE4LCAwLjAxMDgxOCwgMC4wMTA3OTIsIDAuMDEwNzg5LCAwLjAxMDc4NywgMC4wMTA3ODcsIDAuMDEwNzg4IiwgXAotICAgICAgICAgICIwLjAxMTY4NCwgMC4wMTEwODksIDAuMDExMDYxLCAwLjAxMTA1NywgMC4wMTEwNTYsIDAuMDExMDU2LCAwLjAxMTA1NSIsIFwKLSAgICAgICAgICAiMC4wMTE4NDIsIDAuMDExMjQ3LCAwLjAxMTIyMiwgMC4wMTEyMjcsIDAuMDExMjE5LCAwLjAxMTIxOSwgMC4wMTEyMiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlMiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA4ODM5LCAwLjAwODM5MywgMC4wMDgzNzgsIDAuMDA4Mzc2LCAwLjAwODM3NCwgMC4wMDgzNzQsIDAuMDA4Mzc0IiwgXAotICAgICAgICAgICIwLjAwODc5NywgMC4wMDgzNSwgMC4wMDgzMzIsIDAuMDA4MzM0LCAwLjAwODMzMiwgMC4wMDgzMzIsIDAuMDA4MzMyIiwgXAotICAgICAgICAgICIwLjAwODgwOSwgMC4wMDgzNjEsIDAuMDA4MzQ3LCAwLjAwODM0NiwgMC4wMDgzNDcsIDAuMDA4MzQ3LCAwLjAwODM0OCIsIFwKLSAgICAgICAgICAiMC4wMDg4ODIsIDAuMDA4NDE3LCAwLjAwODQwMywgMC4wMDg0MDUsIDAuMDA4NDA0LCAwLjAwODQwNiwgMC4wMDg0MDkiLCBcCi0gICAgICAgICAgIjAuMDA5MDM0LCAwLjAwODUxOCwgMC4wMDg0OTcsIDAuMDA4NDk2LCAwLjAwODQ5NSwgMC4wMDg0OTgsIDAuMDA4NDk5IiwgXAotICAgICAgICAgICIwLjAwOTM1MywgMC4wMDg3MzUsIDAuMDA4NzAyLCAwLjAwODY5NiwgMC4wMDg2OTIsIDAuMDA4NjksIDAuMDA4Njk2IiwgXAotICAgICAgICAgICIwLjAwOTY3OSwgMC4wMDg5NjUsIDAuMDA4OTE0LCAwLjAwODkwOSwgMC4wMDg4OTcsIDAuMDA4ODk0LCAwLjAwODkwMSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE1MDkxLCAwLjAxNDUwMSwgMC4wMTQ0NzMsIDAuMDE0NDcsIDAuMDE0NDY5LCAwLjAxNDQ2OCwgMC4wMTQ0NjkiLCBcCi0gICAgICAgICAgIjAuMDE1MDU3LCAwLjAxNDQ3NSwgMC4wMTQ0NDgsIDAuMDE0NDQ0LCAwLjAxNDQ0MywgMC4wMTQ0NDMsIDAuMDE0NDQ0IiwgXAotICAgICAgICAgICIwLjAxNTA2NCwgMC4wMTQ0ODIsIDAuMDE0NDU2LCAwLjAxNDQ1NCwgMC4wMTQ0NTMsIDAuMDE0NDU0LCAwLjAxNDQ1NSIsIFwKLSAgICAgICAgICAiMC4wMTUxMzMsIDAuMDE0NTI1LCAwLjAxNDUwMSwgMC4wMTQ0OTksIDAuMDE0NSwgMC4wMTQ1MDEsIDAuMDE0NTAzIiwgXAotICAgICAgICAgICIwLjAxNTI3NywgMC4wMTQ2MTUsIDAuMDE0NTgzLCAwLjAxNDU4LCAwLjAxNDU4LCAwLjAxNDU4MiwgMC4wMTQ1ODMiLCBcCi0gICAgICAgICAgIjAuMDE1NTc4LCAwLjAxNDgxOSwgMC4wMTQ3NywgMC4wMTQ3NjIsIDAuMDE0NzU5LCAwLjAxNDc1OSwgMC4wMTQ3NiIsIFwKLSAgICAgICAgICAiMC4wMTU4NzksIDAuMDE1MDM0LCAwLjAxNDk3LCAwLjAxNDk1NywgMC4wMTQ5NSwgMC4wMTQ5NSwgMC4wMTQ5NDgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJYMiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDg4NTUsIDAuMDA4NTY4LCAwLjAwODU2MywgMC4wMDg1NjEsIDAuMDA4NTU4LCAwLjAwODU1OSwgMC4wMDg1NTkiLCBcCi0gICAgICAgICAgIjAuMDA4OTI3LCAwLjAwODY1MiwgMC4wMDg2NDksIDAuMDA4NjQ4LCAwLjAwODY0OCwgMC4wMDg2NDgsIDAuMDA4NjQ4IiwgXAotICAgICAgICAgICIwLjAwOTAyOCwgMC4wMDg3OTEsIDAuMDA4Nzk1LCAwLjAwODc5OCwgMC4wMDg4MDEsIDAuMDA4ODA1LCAwLjAwODgwMyIsIFwKLSAgICAgICAgICAiMC4wMDkxNzUsIDAuMDA4OTUsIDAuMDA4OTU4LCAwLjAwODk2MywgMC4wMDg5NywgMC4wMDg5NzcsIDAuMDA4OTc2IiwgXAotICAgICAgICAgICIwLjAwOTM1OCwgMC4wMDkxMjUsIDAuMDA5MTM4LCAwLjAwOTEzNSwgMC4wMDkxNDEsIDAuMDA5MTUxLCAwLjAwOTE0NyIsIFwKLSAgICAgICAgICAiMC4wMDk2OTUsIDAuMDA5NDY2LCAwLjAwOTQ1LCAwLjAwOTQ3MSwgMC4wMDk0NzksIDAuMDA5NDc5LCAwLjAwOTQ4MyIsIFwKLSAgICAgICAgICAiMC4wMDk5NzEsIDAuMDA5NzYzLCAwLjAwOTc2MywgMC4wMDk3NjYsIDAuMDA5NzY2LCAwLjAwOTc3MSwgMC4wMDk3NzQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwODIxOCwgMC4wMDc4LCAwLjAwNzc4MywgMC4wMDc3NzgsIDAuMDA3Nzc1LCAwLjAwNzc3MywgMC4wMDc3NzIiLCBcCi0gICAgICAgICAgIjAuMDA4MzE4LCAwLjAwNzg5NSwgMC4wMDc4ODEsIDAuMDA3ODc5LCAwLjAwNzg3OCwgMC4wMDc4NzcsIDAuMDA3ODc3IiwgXAotICAgICAgICAgICIwLjAwODQxMiwgMC4wMDgwNDIsIDAuMDA4MDQsIDAuMDA4MDQsIDAuMDA4MDQyLCAwLjAwODA0NCwgMC4wMDgwNDUiLCBcCi0gICAgICAgICAgIjAuMDA4NTUxLCAwLjAwODIxNiwgMC4wMDgyMiwgMC4wMDgyMjUsIDAuMDA4MjMxLCAwLjAwODIzNSwgMC4wMDgyMzgiLCBcCi0gICAgICAgICAgIjAuMDA4NzgyLCAwLjAwODQ0NiwgMC4wMDg0NDYsIDAuMDA4NDUsIDAuMDA4NDI0LCAwLjAwODQ1NywgMC4wMDg0NjUiLCBcCi0gICAgICAgICAgIjAuMDA5MTM1LCAwLjAwODc1NiwgMC4wMDg3NTcsIDAuMDA4NzksIDAuMDA4Nzk2LCAwLjAwODgsIDAuMDA4ODAxIiwgXAotICAgICAgICAgICIwLjAwOTQyLCAwLjAwOTA3MSwgMC4wMDkwNjEsIDAuMDA5MDY3LCAwLjAwOTA3MiwgMC4wMDkwNzMsIDAuMDA5MDgiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFMpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTUzNjExOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTUzMzI1OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTUzNjExOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDg0MSwgMC4wMDA4MTQsIDAuMDAwODI2LCAwLjAwMDg2NiwgMC4wMDA5MjMsIDAuMDAxMDQxLCAwLjAwMTE2NSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzYzMSwgMC4wMDM2MDQsIDAuMDAzNjExLCAwLjAwMzY0MiwgMC4wMDM2ODgsIDAuMDAzNzkzLCAwLjAwMzkwNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWDIpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTY2NDg0OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTY2NDg0OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTY2NDQ0OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDAwNCwgMC4wMDAwMjIsIDAuMDAwMTIxLCAwLjAwMDIyNSwgMC4wMDAzNzksIDAuMDAwNTgzLCAwLjAwMDc4MyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjA4NSwgMC4wMDIwOTksIDAuMDAyMjExLCAwLjAwMjMxLCAwLjAwMjQxNCwgMC4wMDI2MzEsIDAuMDAyODI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IEJVRlg2ICoKLSAqIC0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChCVUZYNikgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjc0MzgzNzsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNzE4MjI7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNzE4MDY7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNzE4MjI7Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMi4wMzcwODsKLSAgICBmdW5jdGlvbiA6ICJBIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyMzc1MiwgMC4wNjA5NzQsIDAuMDk3NDgsIDAuMTIzNTM2LCAwLjE2NTI4NSwgMC4yMDE3NDUsIDAuMjUzNjgxIiwgXAotICAgICAgICAgICIwLjAzMTgsIDAuMDY5MDQyLCAwLjEwNTU1NSwgMC4xMzE2NjMsIDAuMTczMzc4LCAwLjIwOTgwMiwgMC4yNjE5NTYiLCBcCi0gICAgICAgICAgIjAuMDM5NDc1LCAwLjA3NjkyOSwgMC4xMTMzODMsIDAuMTM5NDgyLCAwLjE4MTEzOSwgMC4yMTc3NzQsIDAuMjY5NzQzIiwgXAotICAgICAgICAgICIwLjA0NTA2NiwgMC4wODI4MzcsIDAuMTE5Mjg5LCAwLjE0NTM2MiwgMC4xODcwMDQsIDAuMjIzNTAzLCAwLjI3NTU5NiIsIFwKLSAgICAgICAgICAiMC4wNDk2NjcsIDAuMDg3Njc1LCAwLjEyNDE0NCwgMC4xNTAxNTYsIDAuMTkxODM4LCAwLjIyODMwNiwgMC4yODA1NDUiLCBcCi0gICAgICAgICAgIjAuMDU1NjExLCAwLjA5NDI3LCAwLjEzMDc5NCwgMC4xNTY4MzUsIDAuMTk4NDY0LCAwLjIzNDkxNSwgMC4yODcwNTgiLCBcCi0gICAgICAgICAgIjAuMDYwMTAzLCAwLjA5OTEwMywgMC4xMzU3NzIsIDAuMTYxNTY2LCAwLjIwMzE4MywgMC4yMzk2MDMsIDAuMjkxNjc0Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE4MjA4LCAwLjA5MzE1MSwgMC4xNzAwNTQsIDAuMjI1MDUsIDAuMzEyNTk3LCAwLjM4OTcyNiwgMC40OTkwODMiLCBcCi0gICAgICAgICAgIjAuMDE4NTY3LCAwLjA5MzI3LCAwLjE2OTgwMSwgMC4yMjQ1NjcsIDAuMzEyNTk0LCAwLjM4OTkyNiwgMC40OTk3ODkiLCBcCi0gICAgICAgICAgIjAuMDIwMTIyLCAwLjA5MzUxNCwgMC4xNjk3OTksIDAuMjI0NjAxLCAwLjMxMjcwNSwgMC4zODk0ODMsIDAuNDk5MzEzIiwgXAotICAgICAgICAgICIwLjAyMTUxNiwgMC4wOTM5MjEsIDAuMTcwMDYzLCAwLjIyNTE2LCAwLjMxMzEzNSwgMC4zODk0NSwgMC40OTkzNyIsIFwKLSAgICAgICAgICAiMC4wMjI4MDQsIDAuMDk0MzY2LCAwLjE3MDI5MywgMC4yMjUwODIsIDAuMzEyODM0LCAwLjM4OTY2MywgMC40OTk1MTMiLCBcCi0gICAgICAgICAgIjAuMDI0ODE4LCAwLjA5NTM3NywgMC4xNzA0NzcsIDAuMjI1MDM5LCAwLjMxMjgzNiwgMC4zODk2OTEsIDAuNDk5NDY0IiwgXAotICAgICAgICAgICIwLjAyNjEwMSwgMC4wOTU5OTIsIDAuMTcwODYzLCAwLjIyNTEwMSwgMC4zMTI5ODcsIDAuMzg5NzE1LCAwLjQ5OTkzOCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyNDc5MywgMC4wNjMxNDUsIDAuMTAwNjY4LCAwLjEyNzQ1OCwgMC4xNzAzMywgMC4yMDc4NDEsIDAuMjYxMzg0IiwgXAotICAgICAgICAgICIwLjAzMjY1MiwgMC4wNzEwNDksIDAuMTA4NTg1LCAwLjEzNTM5NSwgMC4xNzgzMzgsIDAuMjE1NzY2LCAwLjI2OTQ4IiwgXAotICAgICAgICAgICIwLjA0MDE1NywgMC4wNzg2NDcsIDAuMTE2MTc1LCAwLjE0MzAwMSwgMC4xODU4MzIsIDAuMjIzNCwgMC4yNzY5MzgiLCBcCi0gICAgICAgICAgIjAuMDQ1NTE1LCAwLjA4NDI4LCAwLjEyMTg0LCAwLjE0ODYzNiwgMC4xOTEyOTUsIDAuMjI4ODU4LCAwLjI4MjM2NiIsIFwKLSAgICAgICAgICAiMC4wNDk2NDMsIDAuMDg4NjE5LCAwLjEyNjAwNiwgMC4xNTI3MTQsIDAuMTk1NjE2LCAwLjIzMzA3NCwgMC4yODY2NTEiLCBcCi0gICAgICAgICAgIjAuMDU1MDY2LCAwLjA5NDE3MSwgMC4xMzE3MDUsIDAuMTU4NDkzLCAwLjIwMTM3NSwgMC4yMzg3NzEsIDAuMjkyMzc5IiwgXAotICAgICAgICAgICIwLjA1ODg2NiwgMC4wOTgzMzgsIDAuMTM1ODk3LCAwLjE2MjY5OSwgMC4yMDU2NjMsIDAuMjQyOTc5LCAwLjI5NjYyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE4MDY2LCAwLjA5MzU4NCwgMC4xNzA2NzgsIDAuMjI1NjQzLCAwLjMxMzcxNywgMC4zOTA5NCwgMC41MDI0MzYiLCBcCi0gICAgICAgICAgIjAuMDE4NTA2LCAwLjA5MzYzMSwgMC4xNzA2OTMsIDAuMjI1NDY3LCAwLjMxMzg1MSwgMC4zOTA5ODEsIDAuNTAxMzg5IiwgXAotICAgICAgICAgICIwLjAxOTcyOSwgMC4wOTM5NDIsIDAuMTcwNTcxLCAwLjIyNTU4NywgMC4zMTQ0MDgsIDAuMzkxMDQ5LCAwLjUwMjMzNiIsIFwKLSAgICAgICAgICAiMC4wMjEwMjIsIDAuMDk0MjM3LCAwLjE3MDk0NSwgMC4yMjU3NDYsIDAuMzE0NDU2LCAwLjM5MTA5LCAwLjUwMjQ2IiwgXAotICAgICAgICAgICIwLjAyMjA4NywgMC4wOTQ1MDYsIDAuMTcwOTE3LCAwLjIyNTkwNiwgMC4zMTQ1ODEsIDAuMzkxODYxLCAwLjUwMTI0OCIsIFwKLSAgICAgICAgICAiMC4wMjM3NTQsIDAuMDk1MzA3LCAwLjE3MTA1MywgMC4yMjU5NTksIDAuMzE0NTM3LCAwLjM5MTg0MywgMC41MDI0MDkiLCBcCi0gICAgICAgICAgIjAuMDI1MTcxLCAwLjA5NTk1LCAwLjE3MTI4NSwgMC4yMjYwMjgsIDAuMzE0Mjc2LCAwLjM5MTM4NiwgMC41MDE4MjQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNzg1MywgMC4wMDgwODksIDAuMDA4MTE5LCAwLjAwODEyOCwgMC4wMDgxMzYsIDAuMDA4MTM4LCAwLjAwODE0MyIsIFwKLSAgICAgICAgICAiMC4wMDc3NTksIDAuMDA4MDE5LCAwLjAwODA3MywgMC4wMDgwODEsIDAuMDA4MDk3LCAwLjAwODEwNiwgMC4wMDgxMTIiLCBcCi0gICAgICAgICAgIjAuMDA3OTkyLCAwLjAwODE4LCAwLjAwODIzNCwgMC4wMDgyNTQsIDAuMDA4MjcxLCAwLjAwODI3OSwgMC4wMDgyODgiLCBcCi0gICAgICAgICAgIjAuMDA4MzI4LCAwLjAwODQ0NCwgMC4wMDg0OTgsIDAuMDA4NTIxLCAwLjAwODUzMSwgMC4wMDg1NDYsIDAuMDA4NTQ5IiwgXAotICAgICAgICAgICIwLjAwODczNiwgMC4wMDg3NDEsIDAuMDA4ODE0LCAwLjAwODgxOCwgMC4wMDg4NTIsIDAuMDA4ODY1LCAwLjAwODg3NCIsIFwKLSAgICAgICAgICAiMC4wMDk0NTEsIDAuMDA5MzI0LCAwLjAwOTM2MSwgMC4wMDkzNzUsIDAuMDA5Mzg5LCAwLjAwOTQwNywgMC4wMDk0MDgiLCBcCi0gICAgICAgICAgIjAuMDA5OTYsIDAuMDA5ODc0LCAwLjAwOTg5NiwgMC4wMDk4OTksIDAuMDA5OTEzLCAwLjAwOTkyNCwgMC4wMDk5MjciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMDI4OCwgMC4wMTA2MzEsIDAuMDEwNjc5LCAwLjAxMDY5NCwgMC4wMTA3MDcsIDAuMDEwNzE0LCAwLjAxMDcyIiwgXAotICAgICAgICAgICIwLjAxMDIzMiwgMC4wMTA1NzMsIDAuMDEwNjQxLCAwLjAxMDY2MywgMC4wMTA2ODMsIDAuMDEwNjkzLCAwLjAxMDcwMyIsIFwKLSAgICAgICAgICAiMC4wMTAzOTgsIDAuMDEwNjkyLCAwLjAxMDc3OSwgMC4wMTA4MDgsIDAuMDEwODM1LCAwLjAxMDg0OSwgMC4wMTA4NjIiLCBcCi0gICAgICAgICAgIjAuMDEwNzgxLCAwLjAxMDkzNiwgMC4wMTEwMjIsIDAuMDExMDU0LCAwLjAxMTA5LCAwLjAxMTEwNSwgMC4wMTExMjEiLCBcCi0gICAgICAgICAgIjAuMDExMDMzLCAwLjAxMTIxNiwgMC4wMTEyOTYsIDAuMDExMzcxLCAwLjAxMTM1NywgMC4wMTEzNzQsIDAuMDExNDI2IiwgXAotICAgICAgICAgICIwLjAxMTY0NSwgMC4wMTE3NzQsIDAuMDExODM1LCAwLjAxMTg1OCwgMC4wMTE5MDIsIDAuMDExOTAzLCAwLjAxMTkzOSIsIFwKLSAgICAgICAgICAiMC4wMTIyMjEsIDAuMDEyMjQyLCAwLjAxMjMxLCAwLjAxMjMzOSwgMC4wMTI0MDQsIDAuMDEyMzg3LCAwLjAxMjQ0MSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogQ0xLQU5EMlg4ICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoQ0xLQU5EMlg4KSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDEuMzMwMzY7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMjY2MDE0OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMjY2MDE0OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMjY1MDI2OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTA4MSwgMC4wMDEwOCwgMC4wMDEwOCwgMC4wMDEwOCwgMC4wMDEwOCwgMC4wMDEwNzksIDAuMDAxMDc5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxMTkzLCAwLjAwMTExNiwgMC4wMDExMDQsIDAuMDAxMDg4LCAwLjAwMTA4OCwgMC4wMDEwODQsIDAuMDAxMDg0Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDI1NjQxOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMjU2NDE7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAyNTYwMTk7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjEyLCAwLjAwMDIxLCAwLjAwMDIxLCAwLjAwMDIwOSwgMC4wMDAyMSwgMC4wMDAyMTEsIDAuMDAwMjExIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxMzY1LCAwLjAwMTM2NSwgMC4wMDEzNjYsIDAuMDAxMzY2LCAwLjAwMTM2NiwgMC4wMDEzNjYsIDAuMDAxMzY2Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDIuNjI4OTE7Ci0gICAgZnVuY3Rpb24gOiAiKEEgQikiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDI3NjM3LCAwLjA1NzMwMSwgMC4wODQ5NjMsIDAuMTA0Njc4LCAwLjEzNjE2NSwgMC4xNjM3NTMsIDAuMjAzMjAyIiwgXAotICAgICAgICAgICIwLjAzNDAwNCwgMC4wNjM2MjMsIDAuMDkxMjg4LCAwLjExMTAwNSwgMC4xNDI1MzEsIDAuMTcwMTc2LCAwLjIwOTUzIiwgXAotICAgICAgICAgICIwLjA0MDMwNCwgMC4wNzAyNCwgMC4wOTc4OTgsIDAuMTE3NjE5LCAwLjE0OTE0LCAwLjE3NjczNCwgMC4yMTYxNTEiLCBcCi0gICAgICAgICAgIjAuMDQ1MDIyLCAwLjA3NTMyMiwgMC4xMDMwMDIsIDAuMTIyNzA4LCAwLjE1NDIyMywgMC4xODE4MDcsIDAuMjIxMjU1IiwgXAotICAgICAgICAgICIwLjA0ODc5OCwgMC4wNzk1NSwgMC4xMDcyNjcsIDAuMTI2OTg4LCAwLjE1ODUwMywgMC4xODYwNzUsIDAuMjI1NDkyIiwgXAotICAgICAgICAgICIwLjA1Mzc2NywgMC4wODUxMzUsIDAuMTEyODg5LCAwLjEzMjU3NCwgMC4xNjQwODksIDAuMTkxNjQzLCAwLjIzMTA0IiwgXAotICAgICAgICAgICIwLjA1NzM3MywgMC4wODkzMDEsIDAuMTE3MDU0LCAwLjEzNjc3NSwgMC4xNjgzMzcsIDAuMTk1ODc1LCAwLjIzNTIzNyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxNzA4NCwgMC4wNzI5NTksIDAuMTMwMjczLCAwLjE3MTM3NCwgMC4yMzc3MDEsIDAuMjk1Njg0LCAwLjM3OTcxMyIsIFwKLSAgICAgICAgICAiMC4wMTcyMzksIDAuMDcyOTkxLCAwLjEzMDM4NywgMC4xNzE3NjQsIDAuMjM4MTQ0LCAwLjI5NTgzMSwgMC4zNzk2OTgiLCBcCi0gICAgICAgICAgIjAuMDE4MTU4LCAwLjA3MzM5NywgMC4xMzA1NjgsIDAuMTcxOTAzLCAwLjIzODI0LCAwLjI5NjEyNiwgMC4zNzkwMjYiLCBcCi0gICAgICAgICAgIjAuMDE5MjEzLCAwLjA3MzkxOCwgMC4xMzA3OTYsIDAuMTcyMDUxLCAwLjIzODA3OSwgMC4yOTY1MDUsIDAuMzc5MDMyIiwgXAotICAgICAgICAgICIwLjAyMDMyNywgMC4wNzQ1MzQsIDAuMTMxMDczLCAwLjE3MjE0MiwgMC4yMzgzMzIsIDAuMjk2NDMyLCAwLjM3OTc2MiIsIFwKLSAgICAgICAgICAiMC4wMjE4MjIsIDAuMDc1MzgsIDAuMTMxNTIsIDAuMTcyMzc5LCAwLjIzODQ0MiwgMC4yOTYzNTgsIDAuMzc5MjcxIiwgXAotICAgICAgICAgICIwLjAyMjk3OSwgMC4wNzYxOTksIDAuMTMyMiwgMC4xNzI2NDksIDAuMjM4NDIsIDAuMjk2NDQ5LCAwLjM3OTQ1NSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzMDk0MSwgMC4wNjEyNzUsIDAuMDg5NjQzLCAwLjEwOTg1NiwgMC4xNDIxNTksIDAuMTcwNDIyLCAwLjIxMDgwNCIsIFwKLSAgICAgICAgICAiMC4wMzg5MiwgMC4wNjkyMDEsIDAuMDk3NTc4LCAwLjExNzc5MiwgMC4xNTAxMDMsIDAuMTc4MzcxLCAwLjIxODc0OCIsIFwKLSAgICAgICAgICAiMC4wNDgxNSwgMC4wNzg1NDQsIDAuMTA2OTEsIDAuMTI3MTIyLCAwLjE1OTQzMSwgMC4xODc2OTIsIDAuMjI4MDg0IiwgXAotICAgICAgICAgICIwLjA1NTExNiwgMC4wODU5MTgsIDAuMTE0Mjc3LCAwLjEzNDQ4MywgMC4xNjY3OTQsIDAuMTk1MDU3LCAwLjIzNTQwMyIsIFwKLSAgICAgICAgICAiMC4wNjA2NzIsIDAuMDkxODg0LCAwLjEyMDI0MSwgMC4xNDA0MzQsIDAuMTcyNzU0LCAwLjIwMTAwOCwgMC4yNDEzNTciLCBcCi0gICAgICAgICAgIjAuMDY4MDQ2LCAwLjA5OTg3NCwgMC4xMjgyODUsIDAuMTQ4NDY3LCAwLjE4MDc0OCwgMC4yMDkwMDQsIDAuMjQ5MzY1IiwgXAotICAgICAgICAgICIwLjA3MzY1NiwgMC4xMDU4NywgMC4xMzQzMzMsIDAuMTU0NDE0LCAwLjE4NjcxMiwgMC4yMTQ5MzUsIDAuMjU1MjciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTc0MDcsIDAuMDczNTA2LCAwLjEzMTUzLCAwLjE3Mjk1NSwgMC4yNDAyODEsIDAuMjk4NzI5LCAwLjM4MzA1MyIsIFwKLSAgICAgICAgICAiMC4wMTc0MzYsIDAuMDczNTY1LCAwLjEzMTU0OSwgMC4xNzMyOSwgMC4yNDAyNzQsIDAuMjk4NjY1LCAwLjM4MzA1MSIsIFwKLSAgICAgICAgICAiMC4wMTg0NjksIDAuMDczODQ0LCAwLjEzMTUxNSwgMC4xNzMzNzUsIDAuMjQwMzEsIDAuMjk4Njk0LCAwLjM4MjM3IiwgXAotICAgICAgICAgICIwLjAxOTg1NiwgMC4wNzQ0NiwgMC4xMzE5NzQsIDAuMTczNTU2LCAwLjI0MDAxNiwgMC4yOTkwNzYsIDAuMzgyNTk5IiwgXAotICAgICAgICAgICIwLjAyMTA3NywgMC4wNzUwMTIsIDAuMTMyMTYzLCAwLjE3MzcxNiwgMC4yNDA0MzksIDAuMjk4Nzg0LCAwLjM4MjYxOSIsIFwKLSAgICAgICAgICAiMC4wMjI3NzUsIDAuMDc2MDU3LCAwLjEzMjU3OCwgMC4xNzM5MzcsIDAuMjQwNTAxLCAwLjI5OTAyLCAwLjM4MjQ2IiwgXAotICAgICAgICAgICIwLjAyMzk5MSwgMC4wNzY4ODksIDAuMTMzMTU1LCAwLjE3NDE0LCAwLjI0MDYzMywgMC4yOTkxNzQsIDAuMzgyNzMzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDI2MTQsIDAuMDU1NzkxLCAwLjA4MzQ2OCwgMC4xMDMxODUsIDAuMTM0NzI2LCAwLjE2MjMzNywgMC4yMDE4MTgiLCBcCi0gICAgICAgICAgIjAuMDMzNjg5LCAwLjA2MzMwMSwgMC4wOTA5NjgsIDAuMTEwNjg2LCAwLjE0MjIxNSwgMC4xNjk4NjgsIDAuMjA5MjE5IiwgXAotICAgICAgICAgICIwLjA0MTI4NCwgMC4wNzEyMTcsIDAuMDk4ODc4LCAwLjExODYwNCwgMC4xNTAxMjksIDAuMTc3NzEsIDAuMjE3MTQyIiwgXAotICAgICAgICAgICIwLjA0NjkxMywgMC4wNzcyMDksIDAuMTA0OTExLCAwLjEyNDYzOSwgMC4xNTYxNDksIDAuMTgzNzUyLCAwLjIyMzE0NyIsIFwKLSAgICAgICAgICAiMC4wNTEzMjQsIDAuMDgxOTExLCAwLjEwOTg0LCAwLjEyOTU1LCAwLjE2MTA5NCwgMC4xODg2NDksIDAuMjI4MDg2IiwgXAotICAgICAgICAgICIwLjA1NzE0MSwgMC4wODgyNjYsIDAuMTE2MDYxLCAwLjEzNTcwOCwgMC4xNjcyMTksIDAuMTk0NzY1LCAwLjIzNDE3NiIsIFwKLSAgICAgICAgICAiMC4wNjEyODUsIDAuMDkyOTc2LCAwLjEyMDc1NiwgMC4xNDA0MzQsIDAuMTcyMDUzLCAwLjE5OTU4NSwgMC4yMzg5MzQiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTcwOTgsIDAuMDcyOTM2LCAwLjEzMDM3MiwgMC4xNzE3MjUsIDAuMjM3ODMzLCAwLjI5NTg5OCwgMC4zNzkxMTciLCBcCi0gICAgICAgICAgIjAuMDE3MzIzLCAwLjA3MzAxMiwgMC4xMzAzOTgsIDAuMTcxNzcsIDAuMjM4MTY0LCAwLjI5NTk2OSwgMC4zNzk3MDQiLCBcCi0gICAgICAgICAgIjAuMDE4NjcxLCAwLjA3MzU1OCwgMC4xMzA1ODEsIDAuMTcxOTMxLCAwLjIzODI2OSwgMC4yOTYxMDcsIDAuMzc5MDMyIiwgXAotICAgICAgICAgICIwLjAyMDA3OSwgMC4wNzQxNzEsIDAuMTMwOTI5LCAwLjE3MjExNSwgMC4yMzgyNzYsIDAuMjk2NTcsIDAuMzc5Mjg1IiwgXAotICAgICAgICAgICIwLjAyMTMwNywgMC4wNzQ4MTgsIDAuMTMxMjAyLCAwLjE3MjI2OCwgMC4yMzg0NjksIDAuMjk2MTEzLCAwLjM3OTE5NyIsIFwKLSAgICAgICAgICAiMC4wMjMwNDUsIDAuMDc1ODc4LCAwLjEzMTc3MiwgMC4xNzI1MSwgMC4yMzgzNjcsIDAuMjk2NDc2LCAwLjM3OTQxNCIsIFwKLSAgICAgICAgICAiMC4wMjQ0NTgsIDAuMDc2ODY3LCAwLjEzMjQ3OCwgMC4xNzI4OTMsIDAuMjM4NjMsIDAuMjk2NTgyLCAwLjM3OTU2NyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyODcxNiwgMC4wNTg5MzEsIDAuMDg3MjY2LCAwLjEwNzQ1NywgMC4xMzk3NTcsIDAuMTY4MDE3LCAwLjIwODQzNSIsIFwKLSAgICAgICAgICAiMC4wMzY1MTEsIDAuMDY2NjgzLCAwLjA5NTAyMywgMC4xMTUyMTcsIDAuMTQ3NTA3LCAwLjE3NTgwNSwgMC4yMTYxMjIiLCBcCi0gICAgICAgICAgIjAuMDQ1MDU0LCAwLjA3NTQyNywgMC4xMDM4MDMsIDAuMTIzOTksIDAuMTU2MjgxLCAwLjE4NDU0NiwgMC4yMjQ4OTkiLCBcCi0gICAgICAgICAgIjAuMDUxNDE0LCAwLjA4MjAzLCAwLjExMDM4NSwgMC4xMzA1NjUsIDAuMTYyODU0LCAwLjE5MTEyNiwgMC4yMzE0NjMiLCBcCi0gICAgICAgICAgIjAuMDU2Mzg2LCAwLjA4NzU3MywgMC4xMTYwMDMsIDAuMTM2MjU1LCAwLjE2ODU1MSwgMC4xOTY4MzIsIDAuMjM3MjM4IiwgXAotICAgICAgICAgICIwLjA2MzA1LCAwLjA5NDcyOCwgMC4xMjMyNTEsIDAuMTQzNDk2LCAwLjE3NTU3MiwgMC4yMDM3OTIsIDAuMjQ0MTA0IiwgXAotICAgICAgICAgICIwLjA2Nzg3OSwgMC4xMDA0MiwgMC4xMjg3MywgMC4xNDg3NjEsIDAuMTgxMDQ4LCAwLjIwOTU4NCwgMC4yNDk1NjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTcxMTYsIDAuMDczMzAzLCAwLjEzMTE5LCAwLjE3MzEwMywgMC4yNDAxNzcsIDAuMjk4OTYxLCAwLjM4MjI0OSIsIFwKLSAgICAgICAgICAiMC4wMTcyNTMsIDAuMDczMzY4LCAwLjEzMTM3NCwgMC4xNzMxMjgsIDAuMjQwMTIxLCAwLjI5ODI2NSwgMC4zODI5NDIiLCBcCi0gICAgICAgICAgIjAuMDE4NTcsIDAuMDczODEyLCAwLjEzMTQ0NywgMC4xNzMyMjUsIDAuMjQwMTk3LCAwLjI5ODU1NywgMC4zODI5NjUiLCBcCi0gICAgICAgICAgIjAuMDE5OTg2LCAwLjA3NDU2MiwgMC4xMzE3NDMsIDAuMTczNDU0LCAwLjI0MDAzNywgMC4yOTg0NDQsIDAuMzgyODM1IiwgXAotICAgICAgICAgICIwLjAyMTIwNiwgMC4wNzUxNTUsIDAuMTMyMTY1LCAwLjE3MzU2OSwgMC4yNDAxMjEsIDAuMjk5MTMsIDAuMzgzMDI1IiwgXAotICAgICAgICAgICIwLjAyMjk2NywgMC4wNzYzMiwgMC4xMzI3MTUsIDAuMTczOTM3LCAwLjI0MDQyLCAwLjI5OTIwNCwgMC4zODI2NjIiLCBcCi0gICAgICAgICAgIjAuMDI0MzE5LCAwLjA3NzA3LCAwLjEzMzM4NywgMC4xNzQxNTgsIDAuMjQwNTEyLCAwLjI5OTAwMiwgMC4zODMxMDEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMTIzOSwgMC4wMTE1ODQsIDAuMDExNjM2LCAwLjAxMTY2MSwgMC4wMTE2NzgsIDAuMDExNjg2LCAwLjAxMTY5MyIsIFwKLSAgICAgICAgICAiMC4wMTExMDQsIDAuMDExNDQsIDAuMDExNTEyLCAwLjAxMTU0MiwgMC4wMTE1NTYsIDAuMDExNTcsIDAuMDExNTc3IiwgXAotICAgICAgICAgICIwLjAxMTI0OCwgMC4wMTE1MTMsIDAuMDExNTg4LCAwLjAxMTYxNiwgMC4wMTE2MzYsIDAuMDExNjUyLCAwLjAxMTY2NiIsIFwKLSAgICAgICAgICAiMC4wMTE1MDUsIDAuMDExNzc4LCAwLjAxMTgzNywgMC4wMTE4NTksIDAuMDExODgxLCAwLjAxMTg4NiwgMC4wMTE5MTgiLCBcCi0gICAgICAgICAgIjAuMDEyMTE5LCAwLjAxMjA0OCwgMC4wMTIxMTIsIDAuMDEyMTQ3LCAwLjAxMjE2NiwgMC4wMTIxODIsIDAuMDEyMjAxIiwgXAotICAgICAgICAgICIwLjAxMjg2MiwgMC4wMTI2OTEsIDAuMDEyNzM2LCAwLjAxMjc1MywgMC4wMTI3OTQsIDAuMDEyODA4LCAwLjAxMjgxOCIsIFwKLSAgICAgICAgICAiMC4wMTM0OTIsIDAuMDEzMjkxLCAwLjAxMzMyOCwgMC4wMTMzNTQsIDAuMDEzMzg4LCAwLjAxMzM5NiwgMC4wMTM0MTEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxNjUxLCAwLjAxNjk1NCwgMC4wMTcwNTMsIDAuMDE3MDg2LCAwLjAxNzExNSwgMC4wMTcxMzEsIDAuMDE3MTQ2IiwgXAotICAgICAgICAgICIwLjAxNjQ3NCwgMC4wMTY4NTksIDAuMDE2OTgsIDAuMDE3MDIzLCAwLjAxNzA2MywgMC4wMTcwODUsIDAuMDE3MTA1IiwgXAotICAgICAgICAgICIwLjAxNjk0NiwgMC4wMTcxMzUsIDAuMDE3MjU1LCAwLjAxNzMsIDAuMDE3MzQ1LCAwLjAxNzM3LCAwLjAxNzM5MyIsIFwKLSAgICAgICAgICAiMC4wMTcyODgsIDAuMDE3Mzk0LCAwLjAxNzUxOCwgMC4wMTc1NjksIDAuMDE3NjIsIDAuMDE3NjQ5LCAwLjAxNzY3OCIsIFwKLSAgICAgICAgICAiMC4wMTc4MzQsIDAuMDE3ODExLCAwLjAxNzkyMywgMC4wMTc5OCwgMC4wMTgwMzIsIDAuMDE4MDY0LCAwLjAxODA5NCIsIFwKLSAgICAgICAgICAiMC4wMTg4NDUsIDAuMDE4NjIzLCAwLjAxODcwOSwgMC4wMTg3NTIsIDAuMDE4ODAxLCAwLjAxODgzMiwgMC4wMTg4NjMiLCBcCi0gICAgICAgICAgIjAuMDE5NzQ1LCAwLjAxOTQ0MywgMC4wMTk0MzksIDAuMDE5NDg3LCAwLjAxOTUxMiwgMC4wMTk1MzQsIDAuMDE5NTU3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTEyMTgsIDAuMDExNTgsIDAuMDExNjQ0LCAwLjAxMTY2NSwgMC4wMTE2ODQsIDAuMDExNjkyLCAwLjAxMTcwMyIsIFwKLSAgICAgICAgICAiMC4wMTEyMDksIDAuMDExNTA4LCAwLjAxMTU5MywgMC4wMTE2MjQsIDAuMDExNjQ1LCAwLjAxMTY1OCwgMC4wMTE2NjUiLCBcCi0gICAgICAgICAgIjAuMDExNTQzLCAwLjAxMTcyMSwgMC4wMTE4MDQsIDAuMDExODQ3LCAwLjAxMTg3MSwgMC4wMTE4ODksIDAuMDExOTA1IiwgXAotICAgICAgICAgICIwLjAxMjEyOSwgMC4wMTIxMDMsIDAuMDEyMTk0LCAwLjAxMjIxNywgMC4wMTIyNTcsIDAuMDEyMjc1LCAwLjAxMjI5NCIsIFwKLSAgICAgICAgICAiMC4wMTI3MjcsIDAuMDEyNTQzLCAwLjAxMjYxNywgMC4wMTI2MzksIDAuMDEyNjcyLCAwLjAxMjcyOCwgMC4wMTI3NDMiLCBcCi0gICAgICAgICAgIjAuMDEzNTU2LCAwLjAxMzQ2OCwgMC4wMTM0NzcsIDAuMDEzNDg1LCAwLjAxMzUxNiwgMC4wMTM1MjgsIDAuMDEzNTAzIiwgXAotICAgICAgICAgICIwLjAxNDQyNiwgMC4wMTQyMTMsIDAuMDE0MjQ5LCAwLjAxNDI1OCwgMC4wMTQyMTUsIDAuMDE0MjcxLCAwLjAxNDI4NiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE0NTAxLCAwLjAxNDk5OCwgMC4wMTUwOTcsIDAuMDE1MTMsIDAuMDE1MTU5LCAwLjAxNTE3NCwgMC4wMTUxODgiLCBcCi0gICAgICAgICAgIjAuMDE0MzcsIDAuMDE0ODE5LCAwLjAxNDk0NSwgMC4wMTQ5ODksIDAuMDE1MDI5LCAwLjAxNTA1LCAwLjAxNTA2OSIsIFwKLSAgICAgICAgICAiMC4wMTQ2OTQsIDAuMDE1MDA0LCAwLjAxNTEzMiwgMC4wMTUxOCwgMC4wMTUyMjcsIDAuMDE1MjUzLCAwLjAxNTI3NyIsIFwKLSAgICAgICAgICAiMC4wMTUxNzcsIDAuMDE1NDE2LCAwLjAxNTU0NywgMC4wMTU2MDEsIDAuMDE1NjUsIDAuMDE1NjgsIDAuMDE1NzA4IiwgXAotICAgICAgICAgICIwLjAxNTc5NywgMC4wMTU3MzgsIDAuMDE1ODYsIDAuMDE1OTA4LCAwLjAxNTk2NSwgMC4wMTU5OTUsIDAuMDE2MDIzIiwgXAotICAgICAgICAgICIwLjAxNjc0MSwgMC4wMTY1ODYsIDAuMDE2Njc1LCAwLjAxNjczMSwgMC4wMTY3MywgMC4wMTY3NTcsIDAuMDE2Nzg1IiwgXAotICAgICAgICAgICIwLjAxNzUxMSwgMC4wMTc0MTgsIDAuMDE3NDA0LCAwLjAxNzQyOSwgMC4wMTc0NjcsIDAuMDE3NTMxLCAwLjAxNzUwOCIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBDTEtNWDJYMiAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoQ0xLTVgyWDIpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC40NDY5OTg7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDcwOTM1NTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA3MDgwMzg7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNzA5MzU1OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDI4MSwgMC4wMDAyODQsIDAuMDAwMjg1LCAwLjAwMDI4NiwgMC4wMDAyODYsIDAuMDAwMjg3LCAwLjAwMDI4NyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDMxNywgMC4wMDAzMDYsIDAuMDAwMzAzLCAwLjAwMDMwMiwgMC4wMDAzMDEsIDAuMDAwMzAxLCAwLjAwMDMwMSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNzEyMzYyOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDcxMTMwODsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA3MTIzNjI7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjg5LCAwLjAwMDI5LCAwLjAwMDI5LCAwLjAwMDI5MSwgMC4wMDAyOTEsIDAuMDAwMjkxLCAwLjAwMDI5MSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDMxNCwgMC4wMDAzMDMsIDAuMDAwMzAxLCAwLjAwMDMsIDAuMDAwMywgMC4wMDAyOTksIDAuMDAwMjk5Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxMzYwNzU7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxMzYwNzU7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxMzYwNzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyMTIsIDAuMDAwMjMsIDAuMDAwMzA5LCAwLjAwMDQyNCwgMC4wMDA1NTIsIDAuMDAwODE4LCAwLjAwMTAxOCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjQ4OSwgMC4wMDI1MDcsIDAuMDAyNTg0LCAwLjAwMjY4OSwgMC4wMDI4MTMsIDAuMDAzMDMzLCAwLjAwMzIyNCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjY4NTQzNjsKLSAgICBmdW5jdGlvbiA6ICIoKFMwIEIpICsgKCFTMCBBKSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1ODQ4OCwgMC4xMzc0ODYsIDAuMTk5MjM0LCAwLjI3NjM1OSwgMC4zNTM1MzYsIDAuNDMwNTc0LCAwLjUwNzY0MSIsIFwKLSAgICAgICAgICAiMC4wNjQ2MSwgMC4xNDM2OCwgMC4yMDU0NTQsIDAuMjgyNTY3LCAwLjM1OTczMSwgMC40MzY3NzcsIDAuNTEzODQ1IiwgXAotICAgICAgICAgICIwLjA3MjA2NiwgMC4xNTEwNSwgMC4yMTI4MDksIDAuMjg5OTY3LCAwLjM2NzA4LCAwLjQ0NDEzMiwgMC41MjEyNzciLCBcCi0gICAgICAgICAgIjAuMDc4NjIxLCAwLjE1Nzc4NSwgMC4yMTk1MzUsIDAuMjk2NjQ1LCAwLjM3MzgzNywgMC40NTA4NjgsIDAuNTI3OTE1IiwgXAotICAgICAgICAgICIwLjA4NDQ2NywgMC4xNjM3OTIsIDAuMjI1NTM5LCAwLjMwMjYzNSwgMC4zNzk3NjEsIDAuNDU2ODYzLCAwLjUzMzkwOSIsIFwKLSAgICAgICAgICAiMC4wOTIzOTIsIDAuMTcyMDUyLCAwLjIzMzc3NCwgMC4zMTA5MDcsIDAuMzg3OTg1LCAwLjQ2NTEyOCwgMC41NDIxNTIiLCBcCi0gICAgICAgICAgIjAuMDk4MzYzLCAwLjE3ODI4NywgMC4yNDAwMTksIDAuMzE3MTM4LCAwLjM5NDIxNCwgMC40NzEzMTcsIDAuNTQ4NDIyIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0NDg1NCwgMC4yMDIxMzIsIDAuMzMxNzY4LCAwLjQ5MzYzOSwgMC42NTU4MjEsIDAuODE5NDYyLCAwLjk4MTI3NCIsIFwKLSAgICAgICAgICAiMC4wNDQ3NDksIDAuMjAyMjI4LCAwLjMzMTczOSwgMC40OTM2OTEsIDAuNjU2ODEsIDAuODE5NDUsIDAuOTgxMzA0IiwgXAotICAgICAgICAgICIwLjA0NTA3LCAwLjIwMjI2NiwgMC4zMzE3NjUsIDAuNDk0MTU1LCAwLjY1Njc4NCwgMC44MTk0NTksIDAuOTgyMjI5IiwgXAotICAgICAgICAgICIwLjA0NTg3MSwgMC4yMDI0NDEsIDAuMzMxNzk0LCAwLjQ5MzU5NywgMC42NTU4NSwgMC44MTkzODksIDAuOTgyMDY5IiwgXAotICAgICAgICAgICIwLjA0Njc2OCwgMC4yMDI3MjUsIDAuMzMxODU4LCAwLjQ5MzY2NCwgMC42NTU4OTksIDAuODE5MzcxLCAwLjk4MjA4NSIsIFwKLSAgICAgICAgICAiMC4wNDc5OTksIDAuMjAzMTU0LCAwLjMzMTc3NiwgMC40OTQxMjEsIDAuNjU2NjQ1LCAwLjgxOTM3MSwgMC45ODE0NDYiLCBcCi0gICAgICAgICAgIjAuMDQ5MjQ4LCAwLjIwMzQ1NywgMC4zMzIxODcsIDAuNDkzNzc2LCAwLjY1NjYxNCwgMC44MTg3OTgsIDAuOTgyMDE4Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2MjY1NSwgMC4xNDEyMDcsIDAuMjAxOTIsIDAuMjc3NzQ3LCAwLjM1MzU5NSwgMC40MjkzNjYsIDAuNTA1MTUxIiwgXAotICAgICAgICAgICIwLjA2ODYwMywgMC4xNDcxMDIsIDAuMjA3ODIzLCAwLjI4MzY2NSwgMC4zNTk0NzEsIDAuNDM1MjQ2LCAwLjUxMTA2NyIsIFwKLSAgICAgICAgICAiMC4wNzUzMDMsIDAuMTUzODY2LCAwLjIxNDU3NiwgMC4yOTA0MDgsIDAuMzY2MjIzLCAwLjQ0MjA2NSwgMC41MTc4MDkiLCBcCi0gICAgICAgICAgIjAuMDgxNDYzLCAwLjE2MDA4OCwgMC4yMjA3OTUsIDAuMjk2NjQ2LCAwLjM3MjQyNCwgMC40NDgyNjksIDAuNTI0MDI4IiwgXAotICAgICAgICAgICIwLjA4NjYxMiwgMC4xNjU1NDUsIDAuMjI2MjQsIDAuMzAyMDk3LCAwLjM3Nzg2NCwgMC40NTM2NDYsIDAuNTI5NTA1IiwgXAotICAgICAgICAgICIwLjA5MzY2MSwgMC4xNzMwMDgsIDAuMjMzNzA1LCAwLjMwOTUxNCwgMC4zODUzMTEsIDAuNDYxMTIyLCAwLjUzNjg2OSIsIFwKLSAgICAgICAgICAiMC4wOTkxNjQsIDAuMTc4NzQ4LCAwLjIzOTQ0MSwgMC4zMTUyNDgsIDAuMzkxMDM3LCAwLjQ2NjgyMiwgMC41NDI2MzYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQ0OTY2LCAwLjE5Njg0MiwgMC4zMjE4MjIsIDAuNDc4ODE1LCAwLjYzNTA2NiwgMC43OTM3OTcsIDAuOTUxMzc5IiwgXAotICAgICAgICAgICIwLjA0NDg5NiwgMC4xOTY4MTgsIDAuMzIxODIyLCAwLjQ3ODg2NSwgMC42MzYyMzksIDAuNzkzNzExLCAwLjk1MTM5NiIsIFwKLSAgICAgICAgICAiMC4wNDUxMTgsIDAuMTk2ODc5LCAwLjMyMTc4MiwgMC40Nzg4MDcsIDAuNjM1NTA3LCAwLjc5Mzg4NywgMC45NTEzMzYiLCBcCi0gICAgICAgICAgIjAuMDQ1NzgsIDAuMTk3MDIxLCAwLjMyMTkyOSwgMC40Nzg5NTUsIDAuNjM1NTYzLCAwLjc5Mzg3NiwgMC45NDk4NzgiLCBcCi0gICAgICAgICAgIjAuMDQ2NzQsIDAuMTk3MzQzLCAwLjMyMTcwOSwgMC40Nzg5NzQsIDAuNjM2MjMyLCAwLjc5Mjc1NywgMC45NDk4MjQiLCBcCi0gICAgICAgICAgIjAuMDQ4MjAxLCAwLjE5Nzg4NCwgMC4zMjE4NDcsIDAuNDc4OTIxLCAwLjYzNjE4NCwgMC43OTI4MSwgMC45NTExNzgiLCBcCi0gICAgICAgICAgIjAuMDQ4OTE3LCAwLjE5ODI0MiwgMC4zMjIxNTMsIDAuNDc4ODEyLCAwLjYzNTY5NCwgMC43OTI4NzQsIDAuOTUxMDc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1ODMzMywgMC4xMzczMDUsIDAuMTk5MDI3LCAwLjI3NjE1NCwgMC4zNTMzMjksIDAuNDMwMzY1LCAwLjUwNzQyNyIsIFwKLSAgICAgICAgICAiMC4wNjQ2NSwgMC4xNDM2NTEsIDAuMjA1Mzc3LCAwLjI4MjUxMywgMC4zNTk2NzgsIDAuNDM2NzE4LCAwLjUxMzc4IiwgXAotICAgICAgICAgICIwLjA3MjIxMiwgMC4xNTExNDYsIDAuMjEyODg2LCAwLjI5MDAyNiwgMC4zNjcxMzksIDAuNDQ0MTg3LCAwLjUyMTQwMyIsIFwKLSAgICAgICAgICAiMC4wNzg4NTEsIDAuMTU3OTI1LCAwLjIxOTY0NiwgMC4yOTY3ODQsIDAuMzczOTE0LCAwLjQ1MDk0NiwgMC41MjgxMDIiLCBcCi0gICAgICAgICAgIjAuMDg0NTg5LCAwLjE2Mzg3NiwgMC4yMjU1NjcsIDAuMzAyNzAyLCAwLjM3OTc5MSwgMC40NTY5MTgsIDAuNTMzOTU2IiwgXAotICAgICAgICAgICIwLjA5MjQ4OSwgMC4xNzIxNTMsIDAuMjMzODg3LCAwLjMxMTAxNiwgMC4zODgwODcsIDAuNDY1MjIxLCAwLjU0MjI0MyIsIFwKLSAgICAgICAgICAiMC4wOTg1NDUsIDAuMTc4NDA3LCAwLjI0MDExNiwgMC4zMTcyNDUsIDAuMzk0MjgzLCAwLjQ3MTM1NSwgMC41NDg0ODkiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQ0OTAxLCAwLjIwMjEzOSwgMC4zMzE0MjYsIDAuNDkzNjA5LCAwLjY1NTgwNCwgMC44MTk1MTEsIDAuOTgxMjM2IiwgXAotICAgICAgICAgICIwLjA0NDc5MSwgMC4yMDIyMzQsIDAuMzMxNDE0LCAwLjQ5MzY2OCwgMC42NTU4MDUsIDAuODE5NDYzLCAwLjk4MTI3OCIsIFwKLSAgICAgICAgICAiMC4wNDUxMDEsIDAuMjAyMTc3LCAwLjMzMTc5NCwgMC40OTM0MjYsIDAuNjU2NzgxLCAwLjgxOTQ1OCwgMC45ODA4NSIsIFwKLSAgICAgICAgICAiMC4wNDU4NTMsIDAuMjAyNTksIDAuMzMxODAxLCAwLjQ5MzUwMywgMC42NTY3MjMsIDAuODE5MzkzLCAwLjk4MjE0MSIsIFwKLSAgICAgICAgICAiMC4wNDcwMDcsIDAuMjAyNjY1LCAwLjMzMTgyNSwgMC40OTQxMDIsIDAuNjU1NjcyLCAwLjgxOTM3OCwgMC45ODIxMDIiLCBcCi0gICAgICAgICAgIjAuMDQ4MTQ5LCAwLjIwMzIyNSwgMC4zMzIwMjEsIDAuNDk0MTI5LCAwLjY1NjYzMSwgMC44MTkzNTYsIDAuOTgxNDM4IiwgXAotICAgICAgICAgICIwLjA0OTM4NCwgMC4yMDM1MDIsIDAuMzMxOTgxLCAwLjQ5MzUyMiwgMC42NTY1OTksIDAuODE5MjU0LCAwLjk4MjAxNSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjM0NTksIDAuMTQyMDA3LCAwLjIwMjczMiwgMC4yNzg1NTksIDAuMzU0MzcsIDAuNDMwMTcsIDAuNTA1OTU5IiwgXAotICAgICAgICAgICIwLjA2OTE3LCAwLjE0NzczNywgMC4yMDg0NjYsIDAuMjg0MzEyLCAwLjM2MDEwNywgMC40MzU5MDEsIDAuNTExNzEzIiwgXAotICAgICAgICAgICIwLjA3NTg5MywgMC4xNTQ0NTEsIDAuMjE1MTY5LCAwLjI5MSwgMC4zNjY4MTIsIDAuNDQyNjcyLCAwLjUxODQxMiIsIFwKLSAgICAgICAgICAiMC4wODIwMzMsIDAuMTYwNjc3LCAwLjIyMTM5MSwgMC4yOTcyNTEsIDAuMzczMDI0LCAwLjQ0ODg3LCAwLjUyNDYyNSIsIFwKLSAgICAgICAgICAiMC4wODcyNzQsIDAuMTY2MTYsIDAuMjI2ODczLCAwLjMwMjcwMiwgMC4zNzg0OTgsIDAuNDU0Mjc3LCAwLjUzMDA2NSIsIFwKLSAgICAgICAgICAiMC4wOTQzMTIsIDAuMTczNTg2LCAwLjIzNDI5LCAwLjMxMDEwOSwgMC4zODU5MzQsIDAuNDYxNzExLCAwLjUzNzUwNiIsIFwKLSAgICAgICAgICAiMC4wOTk4MDIsIDAuMTc5MzY3LCAwLjI0MDA0NywgMC4zMTU4NzIsIDAuMzkxNjY1LCAwLjQ2NzQ2LCAwLjU0MzI0NyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDUxMzcsIDAuMTk2ODk2LCAwLjMyMTkwMywgMC40Nzg4NzksIDAuNjM1NjMzLCAwLjc5Mjg1OCwgMC45NTEzNjciLCBcCi0gICAgICAgICAgIjAuMDQ1MDM0LCAwLjE5Njk2MywgMC4zMjE5MDIsIDAuNDc4MTc1LCAwLjYzNjI1NywgMC43OTI4NjQsIDAuOTUwNTA1IiwgXAotICAgICAgICAgICIwLjA0NTIzMiwgMC4xOTY5NywgMC4zMjE0MDUsIDAuNDc4ODgxLCAwLjYzNTU5MSwgMC43OTIxMjksIDAuOTUxNCIsIFwKLSAgICAgICAgICAiMC4wNDYwMTcsIDAuMTk3MTA4LCAwLjMyMjAwMiwgMC40NzkwNDMsIDAuNjM1NjI4LCAwLjc5MzkwMiwgMC45NDk4NDYiLCBcCi0gICAgICAgICAgIjAuMDQ2OTEsIDAuMTk3Mzg5LCAwLjMyMjE5MywgMC40NzkwMywgMC42MzYzMTQsIDAuNzkzNzM5LCAwLjk1MTIxNSIsIFwKLSAgICAgICAgICAiMC4wNDgxNjEsIDAuMTk3OTkxLCAwLjMyMjMzOSwgMC40NzkwNjQsIDAuNjM2MjEsIDAuNzkzMDE0LCAwLjk0OTk1NSIsIFwKLSAgICAgICAgICAiMC4wNDkwODMsIDAuMTk4MzE5LCAwLjMyMjM1MSwgMC40Nzg3NTIsIDAuNjM2MjI3LCAwLjc5MjY4MiwgMC45NTEyMzgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUzAiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1Mzg5MywgMC4xMzI4MzYsIDAuMTk0NTc2LCAwLjI3MTcwOSwgMC4zNDg4MSwgMC40MjU5MDUsIDAuNTAyOTc2IiwgXAotICAgICAgICAgICIwLjA2MTM1MywgMC4xNDAzMDksIDAuMjAyMDU0LCAwLjI3OTE4NiwgMC4zNTYyNzYsIDAuNDMzMzc1LCAwLjUxMDQ1NSIsIFwKLSAgICAgICAgICAiMC4wNzA3NTQsIDAuMTQ5NzU0LCAwLjIxMTQ5NSwgMC4yODg2MjIsIDAuMzY1NzUzLCAwLjQ0MjgwNSwgMC41MTk5MjEiLCBcCi0gICAgICAgICAgIjAuMDc4OTIzLCAwLjE1ODAxMywgMC4yMTk3MzYsIDAuMjk2ODYyLCAwLjM3NDA0MywgMC40NTEwNTYsIDAuNTI4MTI4IiwgXAotICAgICAgICAgICIwLjA4NTc2NiwgMC4xNjUwMjIsIDAuMjI2NzM2LCAwLjMwMzg1MywgMC4zODA5NzUsIDAuNDU4MDY2LCAwLjUzNTEwMiIsIFwKLSAgICAgICAgICAiMC4wOTQ3MSwgMC4xNzQzODEsIDAuMjM2MDYsIDAuMzEzMTUzLCAwLjM5MDI0NCwgMC40NjczNjksIDAuNTQ0NDUzIiwgXAotICAgICAgICAgICIwLjEwMTU5NCwgMC4xODE0MzksIDAuMjQzMTIzLCAwLjMyMDIwNCwgMC4zOTc0MTEsIDAuNDc0NDIzLCAwLjU1MTU0MyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDQ3NjcsIDAuMjAyMjI1LCAwLjMzMTcyMSwgMC40OTM3MDYsIDAuNjU2Nzc3LCAwLjgxOTUwOCwgMC45ODEzMjYiLCBcCi0gICAgICAgICAgIjAuMDQ0NzM3LCAwLjIwMjIxNiwgMC4zMzE3NDcsIDAuNDkzNzA3LCAwLjY1NjY4NiwgMC44MTkzOTgsIDAuOTgxMzIxIiwgXAotICAgICAgICAgICIwLjA0NTIxMiwgMC4yMDIyNTUsIDAuMzMxNzgxLCAwLjQ5MzY2MiwgMC42NTY3NDgsIDAuODE5NDYsIDAuOTgxMTQxIiwgXAotICAgICAgICAgICIwLjA0NjI1NCwgMC4yMDI0OCwgMC4zMzE3NTEsIDAuNDkzNTg4LCAwLjY1NTg0MSwgMC44MTk0MDQsIDAuOTgxMTMyIiwgXAotICAgICAgICAgICIwLjA0NzcyNSwgMC4yMDI3NjYsIDAuMzMxMzM0LCAwLjQ5NDE4MywgMC42NTU5NTMsIDAuODE5Mzk5LCAwLjk4MjE0OSIsIFwKLSAgICAgICAgICAiMC4wNDk1ODYsIDAuMjAzNDcyLCAwLjMzMjE5MywgMC40OTM4NTksIDAuNjU2ODI2LCAwLjgxOTQ1MSwgMC45ODIxNDIiLCBcCi0gICAgICAgICAgIjAuMDUxMjA1LCAwLjIwMzk0MSwgMC4zMzIxMzEsIDAuNDk0MjY3LCAwLjY1NjAxLCAwLjgxODIxNCwgMC45ODIyMzQiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU4MDQ5LCAwLjEzNjU5OCwgMC4xOTczMDUsIDAuMjczMTMyLCAwLjM0ODk1MiwgMC40MjQ3OTMsIDAuNTAwNTM0IiwgXAotICAgICAgICAgICIwLjA2NTM3LCAwLjE0MzkzMSwgMC4yMDQ2NDcsIDAuMjgwNDgzLCAwLjM1NjI4MSwgMC40MzIwNzMsIDAuNTA3ODYyIiwgXAotICAgICAgICAgICIwLjA3NDcyLCAwLjE1MzI5MiwgMC4yMTQwMDcsIDAuMjg5ODQxLCAwLjM2NTY5OSwgMC40NDE0NzEsIDAuNTE3MjUzIiwgXAotICAgICAgICAgICIwLjA4Mjk5MywgMC4xNjE2MzgsIDAuMjIyMzUzLCAwLjI5ODE3NCwgMC4zNzM5ODIsIDAuNDQ5ODMsIDAuNTI1NTcyIiwgXAotICAgICAgICAgICIwLjA4OTkwNywgMC4xNjg3NTQsIDAuMjI5NDYxLCAwLjMwNTI5NywgMC4zODEwNzgsIDAuNDU2ODkyLCAwLjUzMjcwOCIsIFwKLSAgICAgICAgICAiMC4wOTkwMjIsIDAuMTc4MzIsIDAuMjM5MDYyLCAwLjMxNDgsIDAuMzkwNjIyLCAwLjQ2NjQwNCwgMC41NDIyNTgiLCBcCi0gICAgICAgICAgIjAuMTA1OTQ5LCAwLjE4NTQxNiwgMC4yNDYxMzQsIDAuMzIxOTM4LCAwLjM5Nzg1OCwgMC40NzM1MSwgMC41NDkzMyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDQ4MjcsIDAuMTk2ODMzLCAwLjMyMTgxLCAwLjQ3ODgsIDAuNjM2MjM3LCAwLjc5MjMyLCAwLjk1MTM0MyIsIFwKLSAgICAgICAgICAiMC4wNDQ4MjgsIDAuMTk2NzgsIDAuMzIxODA4LCAwLjQ3ODI1NCwgMC42MzYxODcsIDAuNzkyODI5LCAwLjk1MTI4NiIsIFwKLSAgICAgICAgICAiMC4wNDUwODEsIDAuMTk2ODA3LCAwLjMyMTgyNiwgMC40Nzg4MTQsIDAuNjM1MDcyLCAwLjc5MzgwNywgMC45NTEzNyIsIFwKLSAgICAgICAgICAiMC4wNDYwMzQsIDAuMTk3MDMyLCAwLjMyMTg3OCwgMC40Nzg3NzYsIDAuNjM1NTA3LCAwLjc5Mzg1MSwgMC45NTExNzQiLCBcCi0gICAgICAgICAgIjAuMDQ3MTg2LCAwLjE5NzQ3OCwgMC4zMjE2MDQsIDAuNDc4OTkyLCAwLjYzNjE0LCAwLjc5MzYzMywgMC45NTE0NjMiLCBcCi0gICAgICAgICAgIjAuMDQ4ODY4LCAwLjE5ODA3OCwgMC4zMjI0MzIsIDAuNDc5MDE3LCAwLjYzNTY3NiwgMC43OTM2NzQsIDAuOTQ5NzU1IiwgXAotICAgICAgICAgICIwLjA1MDQ1NiwgMC4xOTg1NTgsIDAuMzIyNjYsIDAuNDc5NDA4LCAwLjYzNTQ4MywgMC43OTM5NTEsIDAuOTUxNTg1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlMwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjczMzQsIDAuMTQ2NDA0LCAwLjIwODE3NiwgMC4yODUyODcsIDAuMzYyNDE1LCAwLjQzOTU0NiwgMC41MTY3MDIiLCBcCi0gICAgICAgICAgIjAuMDc0NzM1LCAwLjE1Mzc1NywgMC4yMTU1MTgsIDAuMjkyNjQ0LCAwLjM2OTc1MSwgMC40NDY4MzksIDAuNTIzOTIiLCBcCi0gICAgICAgICAgIjAuMDgxMDczLCAwLjE2MDA4LCAwLjIyMTgzOSwgMC4yOTg5NzIsIDAuMzc2MTI2LCAwLjQ1MzE5NywgMC41MzAyNjciLCBcCi0gICAgICAgICAgIjAuMDg1MzI4LCAwLjE2NDQ2NywgMC4yMjYyMjIsIDAuMzAzMzQ1LCAwLjM4MDUyLCAwLjQ1NzU2MywgMC41MzQ2MTkiLCBcCi0gICAgICAgICAgIjAuMDg4NzgxLCAwLjE2Nzk1NiwgMC4yMjk3MTUsIDAuMzA2ODUsIDAuMzgzOTU0LCAwLjQ2MTEyOSwgMC41MzgxODgiLCBcCi0gICAgICAgICAgIjAuMDkzNDEzLCAwLjE3MjU4NywgMC4yMzQzNjUsIDAuMzExNTAzLCAwLjM4ODYzMiwgMC40NjU3MjIsIDAuNTQyNzg5IiwgXAotICAgICAgICAgICIwLjA5NjkzNywgMC4xNzY1NzIsIDAuMjM3OTA2LCAwLjMxNTA2NywgMC4zOTIxNjcsIDAuNDY5MjU4LCAwLjU0NjM1MyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDQ3NTcsIDAuMjAyMjI2LCAwLjMzMTc3NSwgMC40OTM2NDcsIDAuNjU1ODQ0LCAwLjgxOTUxNSwgMC45ODA4NyIsIFwKLSAgICAgICAgICAiMC4wNDQ4MDUsIDAuMjAyMjM0LCAwLjMzMTc2OCwgMC40OTM2OTIsIDAuNjU2NzUzLCAwLjgxOTQzOSwgMC45ODEyNDUiLCBcCi0gICAgICAgICAgIjAuMDQ0NzkyLCAwLjIwMjIzNCwgMC4zMzE3NzcsIDAuNDkzNzMzLCAwLjY1NjgwMywgMC44MTk0ODUsIDAuOTgyMjI4IiwgXAotICAgICAgICAgICIwLjA0NDc4LCAwLjIwMjQ0OCwgMC4zMzE3NjEsIDAuNDkzNjY4LCAwLjY1NTgyOSwgMC44MTk0NDQsIDAuOTgyMTIiLCBcCi0gICAgICAgICAgIjAuMDQ0NzkxLCAwLjIwMjM1MiwgMC4zMzE0MjUsIDAuNDk0MDU4LCAwLjY1NjE0OCwgMC44MTc5OCwgMC45ODIxMTEiLCBcCi0gICAgICAgICAgIjAuMDQ0Nzc1LCAwLjIwMjMwNiwgMC4zMzE1ODksIDAuNDkzNjg0LCAwLjY1NTc3NCwgMC44MTkyNzEsIDAuOTgxMzYxIiwgXAotICAgICAgICAgICIwLjA0NDc2OSwgMC4yMDI3NDUsIDAuMzMxNDk2LCAwLjQ5MzgwNSwgMC42NTYwNzgsIDAuODE5MTk3LCAwLjk4MTkwNCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzAyNjcsIDAuMTQ4ODUyLCAwLjIwOTU3OSwgMC4yODU0MTcsIDAuMzYxMjgxLCAwLjQzNzA3NywgMC41MTI4MzgiLCBcCi0gICAgICAgICAgIjAuMDc3ODU1LCAwLjE1NjQxMiwgMC4yMTcxMzQsIDAuMjkyOTY3LCAwLjM2ODc4NiwgMC40NDQ2MzMsIDAuNTIwMzgxIiwgXAotICAgICAgICAgICIwLjA4NDE4MSwgMC4xNjI3NzIsIDAuMjIzNDk2LCAwLjI5OTMzMywgMC4zNzUxNjcsIDAuNDUwOTk1LCAwLjUyNjc1NSIsIFwKLSAgICAgICAgICAiMC4wODg2NzUsIDAuMTY3MzQsIDAuMjI4MDYxLCAwLjMwMzg5NywgMC4zNzk3MDksIDAuNDU1NTM4LCAwLjUzMTMxNyIsIFwKLSAgICAgICAgICAiMC4wOTI0NCwgMC4xNzExODUsIDAuMjMxOTIsIDAuMzA3NzUzLCAwLjM4MzU1OCwgMC40NTkzNjEsIDAuNTM1MjExIiwgXAotICAgICAgICAgICIwLjA5NzYzMiwgMC4xNzYzMjEsIDAuMjM2OTY0LCAwLjMxMjgsIDAuMzg4NzQ4LCAwLjQ2NDU2OSwgMC41NDAzMzIiLCBcCi0gICAgICAgICAgIjAuMTAxMzk4LCAwLjE4MDAyMywgMC4yNDA4NDksIDAuMzE2NjY2LCAwLjM5MjUsIDAuNDY4Mjg1LCAwLjU0NDA2NCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDUwNDEsIDAuMTk2OTI3LCAwLjMyMTkxMSwgMC40Nzg4OTksIDAuNjM1MTA4LCAwLjc5Mzk4MSwgMC45NTE0NjIiLCBcCi0gICAgICAgICAgIjAuMDQ1MDYxLCAwLjE5NjkyMywgMC4zMjEzMDUsIDAuNDc4ODcxLCAwLjYzNTYxNywgMC43OTM5MTgsIDAuOTUxMzg3IiwgXAotICAgICAgICAgICIwLjA0NDk5MywgMC4xOTY4NTYsIDAuMzIxODk5LCAwLjQ3ODg3NSwgMC42MzUzMzIsIDAuNzkzOTI5LCAwLjk1MTQxNyIsIFwKLSAgICAgICAgICAiMC4wNDUwMSwgMC4xOTcwMjUsIDAuMzIxODc5LCAwLjQ3ODgxMiwgMC42MzU1MjUsIDAuNzkyNzM4LCAwLjk1MTI2IiwgXAotICAgICAgICAgICIwLjA0NDk1OCwgMC4xOTY5ODUsIDAuMzIxOTIsIDAuNDc4ODUyLCAwLjYzNjA4OSwgMC43OTI4MzQsIDAuOTQ5NjkxIiwgXAotICAgICAgICAgICIwLjA0NDkyNSwgMC4xOTcwMSwgMC4zMjE3MDYsIDAuNDc4MjY3LCAwLjYzNTM4NywgMC43OTMzNjgsIDAuOTUwMzI1IiwgXAotICAgICAgICAgICIwLjA0NTAwNywgMC4xOTY4NjgsIDAuMzIxNTk2LCAwLjQ3ODM4NSwgMC42MzUyNjQsIDAuNzkyNjc4LCAwLjk1MDgyNyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzM2OCwgMC4wMDM0MjUsIDAuMDAzNDMsIDAuMDAzNDM0LCAwLjAwMzQzNywgMC4wMDM0NDQsIDAuMDAzNDM5IiwgXAotICAgICAgICAgICIwLjAwMzMyNSwgMC4wMDMzOTIsIDAuMDAzNDAzLCAwLjAwMzQwOSwgMC4wMDM0MTIsIDAuMDAzNDE2LCAwLjAwMzQxNSIsIFwKLSAgICAgICAgICAiMC4wMDMzNTYsIDAuMDAzNDA1LCAwLjAwMzQxNiwgMC4wMDM0MjMsIDAuMDAzNDI2LCAwLjAwMzQyOCwgMC4wMDM0MyIsIFwKLSAgICAgICAgICAiMC4wMDM0MjksIDAuMDAzNDUsIDAuMDAzNDU3LCAwLjAwMzQ2NCwgMC4wMDM0NjcsIDAuMDAzNDY5LCAwLjAwMzQ3IiwgXAotICAgICAgICAgICIwLjAwMzUwMSwgMC4wMDM1MDcsIDAuMDAzNTE0LCAwLjAwMzUyLCAwLjAwMzUyMywgMC4wMDM1MjYsIDAuMDAzNTI1IiwgXAotICAgICAgICAgICIwLjAwMzYyNiwgMC4wMDM2MTksIDAuMDAzNjI3LCAwLjAwMzYzNCwgMC4wMDM2MzksIDAuMDAzNjQzLCAwLjAwMzY0MiIsIFwKLSAgICAgICAgICAiMC4wMDM4MDMsIDAuMDAzNzUyLCAwLjAwMzc1NCwgMC4wMDM3NTgsIDAuMDAzNzYsIDAuMDAzNzYyLCAwLjAwMzc2MyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDYyNCwgMC4wMDQ2OTQsIDAuMDA0NzA2LCAwLjAwNDcxMiwgMC4wMDQ3MTYsIDAuMDA0NzE4LCAwLjAwNDcxOSIsIFwKLSAgICAgICAgICAiMC4wMDQ1OSwgMC4wMDQ2NzIsIDAuMDA0Njg3LCAwLjAwNDY5NSwgMC4wMDQ2OTksIDAuMDA0NzAyLCAwLjAwNDcwNCIsIFwKLSAgICAgICAgICAiMC4wMDQ2MSwgMC4wMDQ2ODIsIDAuMDA0Njk2LCAwLjAwNDcwNSwgMC4wMDQ3MDksIDAuMDA0NzEyLCAwLjAwNDcxNCIsIFwKLSAgICAgICAgICAiMC4wMDQ2NywgMC4wMDQ3MTQsIDAuMDA0NzI4LCAwLjAwNDczNywgMC4wMDQ3NDEsIDAuMDA0NzQ0LCAwLjAwNDc0NiIsIFwKLSAgICAgICAgICAiMC4wMDQ3MjYsIDAuMDA0NzYzLCAwLjAwNDc3NCwgMC4wMDQ3ODUsIDAuMDA0Nzg5LCAwLjAwNDc5MiwgMC4wMDQ3OTQiLCBcCi0gICAgICAgICAgIjAuMDA0ODgsIDAuMDA0ODgsIDAuMDA0ODg4LCAwLjAwNDg5NCwgMC4wMDQ4OTgsIDAuMDA0ODk5LCAwLjAwNDkiLCBcCi0gICAgICAgICAgIjAuMDA0OTkyLCAwLjAwNDk3NiwgMC4wMDQ5ODcsIDAuMDA0OTk3LCAwLjAwNTAwMSwgMC4wMDUwMDUsIDAuMDA1MDA3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzMDcyLCAwLjAwMzA4NCwgMC4wMDMwODUsIDAuMDAzMDg2LCAwLjAwMzA4NiwgMC4wMDMwODIsIDAuMDAzMDg3IiwgXAotICAgICAgICAgICIwLjAwMzAzMiwgMC4wMDMwNTksIDAuMDAzMDYxLCAwLjAwMzA2MywgMC4wMDMwNjMsIDAuMDAzMDY2LCAwLjAwMzA2MiIsIFwKLSAgICAgICAgICAiMC4wMDMwNjUsIDAuMDAzMDczLCAwLjAwMzA3NiwgMC4wMDMwNzcsIDAuMDAzMDc4LCAwLjAwMzA3OSwgMC4wMDMwNzgiLCBcCi0gICAgICAgICAgIjAuMDAzMTI4LCAwLjAwMzExNCwgMC4wMDMxMTUsIDAuMDAzMTE2LCAwLjAwMzExNiwgMC4wMDMxMTYsIDAuMDAzMTE2IiwgXAotICAgICAgICAgICIwLjAwMzIwNiwgMC4wMDMxNzMsIDAuMDAzMTcsIDAuMDAzMTcsIDAuMDAzMTcsIDAuMDAzMTcyLCAwLjAwMzE2OCIsIFwKLSAgICAgICAgICAiMC4wMDMzMDIsIDAuMDAzMjc0LCAwLjAwMzI3NCwgMC4wMDMyNzQsIDAuMDAzMjc1LCAwLjAwMzI3NywgMC4wMDMyNzQiLCBcCi0gICAgICAgICAgIjAuMDAzNTEyLCAwLjAwMzQxNSwgMC4wMDM0MDQsIDAuMDAzMzk4LCAwLjAwMzM5NywgMC4wMDMzOTUsIDAuMDAzMzkxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0OTA0LCAwLjAwNDk0LCAwLjAwNDk0NiwgMC4wMDQ5NDksIDAuMDA0OTUxLCAwLjAwNDk1MiwgMC4wMDQ5NTIiLCBcCi0gICAgICAgICAgIjAuMDA0ODc0LCAwLjAwNDkyLCAwLjAwNDkyOSwgMC4wMDQ5MzMsIDAuMDA0OTM2LCAwLjAwNDkzNywgMC4wMDQ5MzgiLCBcCi0gICAgICAgICAgIjAuMDA0ODk5LCAwLjAwNDkzNCwgMC4wMDQ5NDIsIDAuMDA0OTQ2LCAwLjAwNDk0OSwgMC4wMDQ5NSwgMC4wMDQ5NTEiLCBcCi0gICAgICAgICAgIjAuMDA0OTU0LCAwLjAwNDk3LCAwLjAwNDk3NiwgMC4wMDQ5OCwgMC4wMDQ5ODIsIDAuMDA0OTg0LCAwLjAwNDk4NCIsIFwKLSAgICAgICAgICAiMC4wMDUwMjUsIDAuMDA1MDIyLCAwLjAwNTAyOSwgMC4wMDUwMzEsIDAuMDA1MDMyLCAwLjAwNTAzNCwgMC4wMDUwMzQiLCBcCi0gICAgICAgICAgIjAuMDA1MTU0LCAwLjAwNTEyNCwgMC4wMDUxMjksIDAuMDA1MTMyLCAwLjAwNTEzNCwgMC4wMDUxMzUsIDAuMDA1MTM2IiwgXAotICAgICAgICAgICIwLjAwNTMzMSwgMC4wMDUyNDYsIDAuMDA1MjQ1LCAwLjAwNTI0NSwgMC4wMDUyNDUsIDAuMDA1MjQ1LCAwLjAwNTI0NiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlMwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDU4MzcsIDAuMDA1ODk5LCAwLjAwNTkxLCAwLjAwNTkxNywgMC4wMDU5MTcsIDAuMDA1OTIzLCAwLjAwNTkyMyIsIFwKLSAgICAgICAgICAiMC4wMDU4NDgsIDAuMDA1OTEsIDAuMDA1OTIxLCAwLjAwNTkyNSwgMC4wMDU5MywgMC4wMDU5MzEsIDAuMDA1OTMyIiwgXAotICAgICAgICAgICIwLjAwNTkzMywgMC4wMDU5OTcsIDAuMDA2MDAyLCAwLjAwNjAxNCwgMC4wMDYwMTcsIDAuMDA2MDE0LCAwLjAwNjAxNiIsIFwKLSAgICAgICAgICAiMC4wMDYwNDMsIDAuMDA2MTAzLCAwLjAwNjExNCwgMC4wMDYxMjEsIDAuMDA2MTI0LCAwLjAwNjEyNiwgMC4wMDYxMjciLCBcCi0gICAgICAgICAgIjAuMDA2MTY5LCAwLjAwNjIzMSwgMC4wMDYyMzksIDAuMDA2MjQzLCAwLjAwNjI0NywgMC4wMDYyNDksIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMDA2NDI3LCAwLjAwNjQ4NywgMC4wMDY0OTUsIDAuMDA2NTAyLCAwLjAwNjUwOCwgMC4wMDY1MDksIDAuMDA2NTA5IiwgXAotICAgICAgICAgICIwLjAwNjYxNCwgMC4wMDY2NzYsIDAuMDA2NjgxLCAwLjAwNjY4OSwgMC4wMDY2OTQsIDAuMDA2Njk1LCAwLjAwNjY5NiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDM4MywgMC4wMDQ0MzgsIDAuMDA0NDQ5LCAwLjAwNDQ1NiwgMC4wMDQ0NTksIDAuMDA0NDYxLCAwLjAwNDQ2MiIsIFwKLSAgICAgICAgICAiMC4wMDQzODksIDAuMDA0NDQ0LCAwLjAwNDQ1NSwgMC4wMDQ0NjEsIDAuMDA0NDY0LCAwLjAwNDQ2NiwgMC4wMDQ0NjgiLCBcCi0gICAgICAgICAgIjAuMDA0NDgxLCAwLjAwNDUzNCwgMC4wMDQ1NDQsIDAuMDA0NTUsIDAuMDA0NTUzLCAwLjAwNDU1NSwgMC4wMDQ1NTciLCBcCi0gICAgICAgICAgIjAuMDA0NTk3LCAwLjAwNDY1MSwgMC4wMDQ2NjEsIDAuMDA0NjY3LCAwLjAwNDY3MSwgMC4wMDQ2NzMsIDAuMDA0Njc0IiwgXAotICAgICAgICAgICIwLjAwNDcyMywgMC4wMDQ3NzgsIDAuMDA0Nzg5LCAwLjAwNDc5NSwgMC4wMDQ3OTgsIDAuMDA0OCwgMC4wMDQ4MDEiLCBcCi0gICAgICAgICAgIjAuMDA0OTg1LCAwLjAwNTAzNSwgMC4wMDUwNDUsIDAuMDA1MDUxLCAwLjAwNTA1NCwgMC4wMDUwNTUsIDAuMDA1MDU3IiwgXAotICAgICAgICAgICIwLjAwNTE4NSwgMC4wMDUyMzgsIDAuMDA1MjQ5LCAwLjAwNTI1NiwgMC4wMDUyNiwgMC4wMDUyNjEsIDAuMDA1MjYzIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IENMS01YMlgzICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChDTEtNWDJYMykgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjYyMDMwMjsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwOTI4MTU7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwOTI1NzQ1OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDkyODE1OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDQ5NCwgMC4wMDA1LCAwLjAwMDUwMywgMC4wMDA1MDUsIDAuMDAwNTA2LCAwLjAwMDUwNywgMC4wMDA1MDciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA1NTIsIDAuMDAwNTM0LCAwLjAwMDUzMSwgMC4wMDA1MywgMC4wMDA1MywgMC4wMDA1MjksIDAuMDAwNTI4Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA5MDI1Mzk7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwOTAwMjE3OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDkwMjUzOTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA1MDgsIDAuMDAwNTExLCAwLjAwMDUxMiwgMC4wMDA1MTMsIDAuMDAwNTEzLCAwLjAwMDUxNCwgMC4wMDA1MTQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA1NDgsIDAuMDAwNTMxLCAwLjAwMDUyOSwgMC4wMDA1MjksIDAuMDAwNTI4LCAwLjAwMDUyOCwgMC4wMDA1MjciKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFMwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE2MDM3ODsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE2MDM1MzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE2MDM3ODsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA0NTMsIDAuMDAwNDYxLCAwLjAwMDU0MiwgMC4wMDA2NDgsIDAuMDAwNzY4LCAwLjAwMDk3OSwgMC4wMDExNzQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDI4NDQsIDAuMDAyODY2LCAwLjAwMjkyNCwgMC4wMDMwMjcsIDAuMDAzMTQzLCAwLjAwMzM1OSwgMC4wMDM1NTQiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMS4wMjUxNjsKLSAgICBmdW5jdGlvbiA6ICIoKFMwIEIpICsgKCFTMCBBKSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1MDA0OSwgMC4xMDQxODMsIDAuMTQ1NzA2LCAwLjE5NzU4OCwgMC4yNDk0MDIsIDAuMzAxMTIyLCAwLjM1MzAzMSIsIFwKLSAgICAgICAgICAiMC4wNTYzNjksIDAuMTEwNTM5LCAwLjE1MjA3NywgMC4yMDM5NDIsIDAuMjU1NzUxLCAwLjMwNzU1NiwgMC4zNTkzOTkiLCBcCi0gICAgICAgICAgIjAuMDY0MDE3LCAwLjExODE3NCwgMC4xNTk2OSwgMC4yMTE1NDIsIDAuMjYzMzY4LCAwLjMxNTIyMiwgMC4zNjY5NzgiLCBcCi0gICAgICAgICAgIjAuMDcwNjksIDAuMTI0OTY1LCAwLjE2NjUwNiwgMC4yMTgzNTcsIDAuMjcwMTY3LCAwLjMyMTk1MiwgMC4zNzM4MTciLCBcCi0gICAgICAgICAgIjAuMDc2NDM4LCAwLjEzMTA4OCwgMC4xNzI2MjEsIDAuMjI0NDk1LCAwLjI3NjI5NSwgMC4zMjgwOTMsIDAuMzc5OTU0IiwgXAotICAgICAgICAgICIwLjA4NDQxLCAwLjEzOTMsIDAuMTgwODExLCAwLjIzMjY1OSwgMC4yODQ0NDYsIDAuMzM2MjMyLCAwLjM4ODA3OSIsIFwKLSAgICAgICAgICAiMC4wOTA0OTcsIDAuMTQ1NzMzLCAwLjE4NzI3OSwgMC4yMzkwNzksIDAuMjkwODk3LCAwLjM0MjcwNiwgMC4zOTQ1Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzMzkwNiwgMC4xMzg3NjYsIDAuMjI1MTg1LCAwLjMzNDA2NCwgMC40NDMxMzMsIDAuNTUxMDc3LCAwLjY2MTYzNyIsIFwKLSAgICAgICAgICAiMC4wMzM4NDksIDAuMTM4Njg5LCAwLjIyNTE3OCwgMC4zMzQwNDQsIDAuNDQzMTM2LCAwLjU1MTg3MywgMC42NjE2MTYiLCBcCi0gICAgICAgICAgIjAuMDM0MjAxLCAwLjEzODgzMywgMC4yMjUxNTksIDAuMzM0MDY1LCAwLjQ0Mjc1NiwgMC41NTE1MjgsIDAuNjYxNTg3IiwgXAotICAgICAgICAgICIwLjAzNTE2NSwgMC4xMzkxMDksIDAuMjI1MzUsIDAuMzM0MDYsIDAuNDQzMDk0LCAwLjU1MjI1MywgMC42NjE1MzYiLCBcCi0gICAgICAgICAgIjAuMDM1ODA4LCAwLjEzOTQxMiwgMC4yMjUzNzksIDAuMzM0MTExLCAwLjQ0MjY3NywgMC41NTE5MDMsIDAuNjYxNTQ3IiwgXAotICAgICAgICAgICIwLjAzNzM4NSwgMC4xMzk5NzMsIDAuMjI1NjI3LCAwLjMzNDIwNSwgMC40NDMxMjMsIDAuNTUxOTU3LCAwLjY2MDY5MiIsIFwKLSAgICAgICAgICAiMC4wMzg1OTQsIDAuMTQwNTgxLCAwLjIyNTg2LCAwLjMzNDA3MywgMC40NDI2OTYsIDAuNTUxNzc5LCAwLjY2MTQ2NyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTE5MzMsIDAuMTA2MjMzLCAwLjE0NzQ5MiwgMC4xOTg5NiwgMC4yNTA0MzEsIDAuMzAxODYxLCAwLjM1MzI4OSIsIFwKLSAgICAgICAgICAiMC4wNTgxMTMsIDAuMTEyNDQ2LCAwLjE1MzcxNCwgMC4yMDUxOTYsIDAuMjU2NjQyLCAwLjMwODEwMiwgMC4zNTk1NTkiLCBcCi0gICAgICAgICAgIjAuMDY1MDcxLCAwLjExOTQxNCwgMC4xNjA2NywgMC4yMTIxNDksIDAuMjYzNTk2LCAwLjMxNTA1NiwgMC4zNjY0NzciLCBcCi0gICAgICAgICAgIjAuMDcxMTExLCAwLjEyNTYzMiwgMC4xNjY4OSwgMC4yMTgzNzMsIDAuMjY5ODE1LCAwLjMyMTI1NiwgMC4zNzI2OSIsIFwKLSAgICAgICAgICAiMC4wNzYxMTUsIDAuMTMwOTYzLCAwLjE3MjIxOSwgMC4yMjM2ODYsIDAuMjc1MTM2LCAwLjMyNjU4MSwgMC4zNzgwNSIsIFwKLSAgICAgICAgICAiMC4wODI5NDIsIDAuMTM4MTkzLCAwLjE3OTQ3NSwgMC4yMzA5NjUsIDAuMjgyNDE1LCAwLjMzMzgyOSwgMC4zODUyOTMiLCBcCi0gICAgICAgICAgIjAuMDg4MDIsIDAuMTQzNTM4LCAwLjE4NDg5NiwgMC4yMzYzNjYsIDAuMjg3ODEyLCAwLjMzOTI1MiwgMC4zOTA2NjciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDMzNzg3LCAwLjEzNjE0NSwgMC4yMjA0MDksIDAuMzI2MTU0LCAwLjQzMzAxMSwgMC41Mzk2MTUsIDAuNjQ1NTU3IiwgXAotICAgICAgICAgICIwLjAzMzcwOCwgMC4xMzYwOTYsIDAuMjIwMzYyLCAwLjMyNjQ4OCwgMC40MzI4NTksIDAuNTM4OTM0LCAwLjY0NjQ0MSIsIFwKLSAgICAgICAgICAiMC4wMzQwMDIsIDAuMTM2MjA2LCAwLjIyMDIyNCwgMC4zMjY1MDgsIDAuNDMyOTM3LCAwLjUzOTA1NSwgMC42NDYyOTkiLCBcCi0gICAgICAgICAgIjAuMDM0OTMyLCAwLjEzNjUxNSwgMC4yMjA1OTIsIDAuMzI2NjE0LCAwLjQzMjk5MiwgMC41MzksIDAuNjQ1NTcyIiwgXAotICAgICAgICAgICIwLjAzNTg5NiwgMC4xMzY5MzIsIDAuMjIwODU4LCAwLjMyNjM5MywgMC40MzMwNzEsIDAuNTM4NzYyLCAwLjY0NTQ4OCIsIFwKLSAgICAgICAgICAiMC4wMzY4OTcsIDAuMTM3NDYyLCAwLjIyMDk4NywgMC4zMjY3NTYsIDAuNDMyOTc1LCAwLjUzOTYxLCAwLjY0NTA2NSIsIFwKLSAgICAgICAgICAiMC4wMzgxMjEsIDAuMTM3OTc4LCAwLjIyMTIxMiwgMC4zMjY2NywgMC40MzI2ODksIDAuNTM5MDc3LCAwLjY0NTc3OSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDk1MzgsIDAuMTAzNjE0LCAwLjE0NTEzLCAwLjE5Njk2OCwgMC4yNDg3MzQsIDAuMzAwNTc4LCAwLjM1MjI4NCIsIFwKLSAgICAgICAgICAiMC4wNTYxOSwgMC4xMTAyNTYsIDAuMTUxNzY0LCAwLjIwMzYwNCwgMC4yNTU0MjcsIDAuMzA3MjgxLCAwLjM1OTAzMyIsIFwKLSAgICAgICAgICAiMC4wNjM4NjksIDAuMTE3OTU2LCAwLjE1OTQ1NCwgMC4yMTEyOTIsIDAuMjYzMTE1LCAwLjMxNDk1OCwgMC4zNjY3MTIiLCBcCi0gICAgICAgICAgIjAuMDcwNjIyLCAwLjEyNDg4NCwgMC4xNjYzODUsIDAuMjE4MjIyLCAwLjI3MDAyNSwgMC4zMjE4NTcsIDAuMzczNjM4IiwgXAotICAgICAgICAgICIwLjA3NjQ2MywgMC4xMzEwMjYsIDAuMTcyNTE2LCAwLjIyNDM3NSwgMC4yNzYxOTQsIDAuMzI3OTU2LCAwLjM3OTc1MSIsIFwKLSAgICAgICAgICAiMC4wODQ0MzIsIDAuMTM5MzYzLCAwLjE4MDg0MiwgMC4yMzI2NjgsIDAuMjg0NDY3LCAwLjMzNjI4NSwgMC4zODgxMDMiLCBcCi0gICAgICAgICAgIjAuMDkwNDQxLCAwLjE0NTY4LCAwLjE4NzIyOCwgMC4yMzkwMzYsIDAuMjkwODYsIDAuMzQyNjczLCAwLjM5NDQyIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzMzk0LCAwLjEzODU3OSwgMC4yMjUxOTQsIDAuMzM0MDYzLCAwLjQ0Mjg1MSwgMC41NTE3MTksIDAuNjYwNzgyIiwgXAotICAgICAgICAgICIwLjAzMzgzOSwgMC4xMzg2NjksIDAuMjI0OTY0LCAwLjMzNDAxNCwgMC40NDIxODYsIDAuNTUxNTEzLCAwLjY2MTU5OSIsIFwKLSAgICAgICAgICAiMC4wMzQzMDYsIDAuMTM4ODQyLCAwLjIyNTE2NCwgMC4zMzQwNCwgMC40NDI3NDUsIDAuNTUyMzc0LCAwLjY2MTYiLCBcCi0gICAgICAgICAgIjAuMDM1MTMzLCAwLjEzOTA5NCwgMC4yMjUzNDYsIDAuMzMzNTI1LCAwLjQ0MjY1MiwgMC41NTE2MTksIDAuNjYwNTM3IiwgXAotICAgICAgICAgICIwLjAzNTgxNSwgMC4xMzk0NDMsIDAuMjI1MzExLCAwLjMzNDExMSwgMC40NDMxMTEsIDAuNTUyMjMzLCAwLjY2MTQ5OCIsIFwKLSAgICAgICAgICAiMC4wMzcyOTYsIDAuMTM5OTQ0LCAwLjIyNTY3MSwgMC4zMzQxOTMsIDAuNDQyODMsIDAuNTUxNDg5LCAwLjY2MDY3NSIsIFwKLSAgICAgICAgICAiMC4wMzg1MjIsIDAuMTQwNTY4LCAwLjIyNTgyOCwgMC4zMzQxMTIsIDAuNDQyNTU2LCAwLjU1MTg4MiwgMC42NjE0MTUiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDUyNzU4LCAwLjEwNzEsIDAuMTQ4MzU4LCAwLjE5OTgzNywgMC4yNTEyNzgsIDAuMzAyNzIsIDAuMzU0MTc4IiwgXAotICAgICAgICAgICIwLjA1ODY5OSwgMC4xMTMwODgsIDAuMTU0MzUyLCAwLjIwNTgyNSwgMC4yNTcyOTYsIDAuMzA4NzI4LCAwLjM2MDE1NCIsIFwKLSAgICAgICAgICAiMC4wNjU0OTEsIDAuMTE5ODc1LCAwLjE2MTEzNCwgMC4yMTI2MTcsIDAuMjY0MDYzLCAwLjMxNTUxNCwgMC4zNjY5ODgiLCBcCi0gICAgICAgICAgIjAuMDcxNTE1LCAwLjEyNjA5LCAwLjE2NzMzOCwgMC4yMTg4MjIsIDAuMjcwMjYyLCAwLjMyMTcwMiwgMC4zNzMxNTciLCBcCi0gICAgICAgICAgIjAuMDc2NTg3LCAwLjEzMTQwNiwgMC4xNzI2NjgsIDAuMjI0MTE4LCAwLjI3NTU5NiwgMC4zMjcwMDMsIDAuMzc4NDQxIiwgXAotICAgICAgICAgICIwLjA4MzQyMSwgMC4xMzg1OTgsIDAuMTc5OTEyLCAwLjIzMTM5LCAwLjI4Mjg0NSwgMC4zMzQyNTQsIDAuMzg1NzI1IiwgXAotICAgICAgICAgICIwLjA4ODQ1NCwgMC4xNDM5OTUsIDAuMTg1MzM5LCAwLjIzNjc5OSwgMC4yODgyNDksIDAuMzM5NzA5LCAwLjM5MTEwNiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzM5LCAwLjEzNjIzNywgMC4yMjA0NjgsIDAuMzI2MDgsIDAuNDMyOTc0LCAwLjUzOTYxLCAwLjY0NTM3NCIsIFwKLSAgICAgICAgICAiMC4wMzM4NiwgMC4xMzYyMTgsIDAuMjIwNDQ3LCAwLjMyNjE3OCwgMC40MzMwMzUsIDAuNTM5NjQ4LCAwLjY0NjIyNCIsIFwKLSAgICAgICAgICAiMC4wMzQyMzMsIDAuMTM2MzEzLCAwLjIyMDUxMiwgMC4zMjY1NzUsIDAuNDMzLCAwLjUzOTAzLCAwLjY0NjQ3MSIsIFwKLSAgICAgICAgICAiMC4wMzQ5OTYsIDAuMTM2NjAyLCAwLjIyMDY2MiwgMC4zMjY2NzUsIDAuNDMzMDM3LCAwLjUzOTAyNiwgMC42NDUzNjMiLCBcCi0gICAgICAgICAgIjAuMDM1OTM1LCAwLjEzNzAxOCwgMC4yMjA4OTgsIDAuMzI2NDM3LCAwLjQzMzE1LCAwLjUzOTY1OSwgMC42NDU2MDEiLCBcCi0gICAgICAgICAgIjAuMDM3MDY5LCAwLjEzNzU1NywgMC4yMjEyNTcsIDAuMzI2ODc5LCAwLjQzMzA4NiwgMC41MzkwODUsIDAuNjQ1MjM3IiwgXAotICAgICAgICAgICIwLjAzODA4NCwgMC4xMzgwMzgsIDAuMjIxMzU0LCAwLjMyNjg1NiwgMC40MzMxMzYsIDAuNTM5MDUzLCAwLjY0NTcyNyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQ0ODEsIDAuMDk4ODY0LCAwLjE0MDM4NywgMC4xOTIyMjYsIDAuMjQ0MDU3LCAwLjI5NTg5OCwgMC4zNDc2NTEiLCBcCi0gICAgICAgICAgIjAuMDUyMzgsIDAuMTA2NDcyLCAwLjE0Nzk4MSwgMC4xOTk4MjMsIDAuMjUxNjU0LCAwLjMwMzQ5MSwgMC4zNTUyNDgiLCBcCi0gICAgICAgICAgIjAuMDYxODExLCAwLjExNTkwMSwgMC4xNTc0MjcsIDAuMjA5MjU1LCAwLjI2MTA3NiwgMC4zMTI5MTEsIDAuMzY0Njg2IiwgXAotICAgICAgICAgICIwLjA2OTY3NiwgMC4xMjM5ODMsIDAuMTY1NDgxLCAwLjIxNzMzNSwgMC4yNjkxMjksIDAuMzIwOTY2LCAwLjM3Mjc1NSIsIFwKLSAgICAgICAgICAiMC4wNzYxMzMsIDAuMTMwNzI3LCAwLjE3MjIyOCwgMC4yMjQwOCwgMC4yNzU4NiwgMC4zMjc2ODcsIDAuMzc5NDc0IiwgXAotICAgICAgICAgICIwLjA4NDg3MiwgMC4xMzk5NDYsIDAuMTgxNDM4LCAwLjIzMzIyMSwgMC4yODUwMTQsIDAuMzM2ODc0LCAwLjM4ODcwOCIsIFwKLSAgICAgICAgICAiMC4wOTEzMjYsIDAuMTQ2NzI5LCAwLjE4ODMxMywgMC4yNDAxNjgsIDAuMjkxOTQxLCAwLjM0MzY3NCwgMC4zOTU0MzkiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDMzNzU0LCAwLjEzODY0MiwgMC4yMjUxNzIsIDAuMzM0MDE5LCAwLjQ0MjcwNCwgMC41NTI0LCAwLjY2MTYyIiwgXAotICAgICAgICAgICIwLjAzMzgwMiwgMC4xMzg3MjUsIDAuMjI0OTc0LCAwLjMzNDAxNywgMC40NDI2NzgsIDAuNTUyMzc2LCAwLjY2MTYwNyIsIFwKLSAgICAgICAgICAiMC4wMzQzOTksIDAuMTM4NzgyLCAwLjIyNTIxLCAwLjMzMzkxMSwgMC40NDMxMjEsIDAuNTUxNjA5LCAwLjY2MTAxOCIsIFwKLSAgICAgICAgICAiMC4wMzU3ODMsIDAuMTM5MjM1LCAwLjIyNTMzOCwgMC4zMzQxMjEsIDAuNDQyNjIyLCAwLjU1MTY1NSwgMC42NjE1NTQiLCBcCi0gICAgICAgICAgIjAuMDM3MTUyLCAwLjEzOTcyNiwgMC4yMjU0ODgsIDAuMzMzNTk0LCAwLjQ0MzIyMiwgMC41NTIzNTksIDAuNjYxNTY3IiwgXAotICAgICAgICAgICIwLjAzOTE1MSwgMC4xNDA0NzMsIDAuMjI1OTUxLCAwLjMzNDM4NywgMC40NDI5NDgsIDAuNTUyNTAzLCAwLjY2MDcyNiIsIFwKLSAgICAgICAgICAiMC4wNDA5MTIsIDAuMTQxMjEyLCAwLjIyNjMxMSwgMC4zMzQ1MzksIDAuNDQyODYsIDAuNTUyNjU5LCAwLjY2MTA1MSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDcyOTYsIDAuMTAxNjI5LCAwLjE0Mjg4OCwgMC4xOTQzNjYsIDAuMjQ1ODEsIDAuMjk3MjY3LCAwLjM0ODY4OSIsIFwKLSAgICAgICAgICAiMC4wNTQ3NzIsIDAuMTA5MTE5LCAwLjE1MDM4OCwgMC4yMDE4NzQsIDAuMjUzMzIxLCAwLjMwNDc3NiwgMC4zNTYyMzkiLCBcCi0gICAgICAgICAgIjAuMDY0MTM4LCAwLjExODUwNSwgMC4xNTk3NzIsIDAuMjExMjUyLCAwLjI2MjcwMSwgMC4zMTQxNTYsIDAuMzY1NjIyIiwgXAotICAgICAgICAgICIwLjA3MTk0LCAwLjEyNjQ4MiwgMC4xNjc3NDMsIDAuMjE5MjE0LCAwLjI3MDcwNywgMC4zMjIxNSwgMC4zNzM1NTkiLCBcCi0gICAgICAgICAgIjAuMDc4MjUzLCAwLjEzMzEwMywgMC4xNzQzNywgMC4yMjU4MzEsIDAuMjc3MjksIDAuMzI4NzE2LCAwLjM4MDE0NCIsIFwKLSAgICAgICAgICAiMC4wODY3ODksIDAuMTQxOTMzLCAwLjE4MzIyNSwgMC4yMzQ2NzEsIDAuMjg2MTA3LCAwLjMzNzU3OCwgMC4zODkwOCIsIFwKLSAgICAgICAgICAiMC4wOTI5NzgsIDAuMTQ4NDA3LCAwLjE4OTgyMywgMC4yNDEyNjEsIDAuMjkyNjgxLCAwLjM0NDExOCwgMC4zOTU1MzgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDMzNjA4LCAwLjEzNjEwOSwgMC4yMjAzNzgsIDAuMzI2NDg0LCAwLjQzMjkyNywgMC41MzkwMDUsIDAuNjQ1NTU1IiwgXAotICAgICAgICAgICIwLjAzMzY2MSwgMC4xMzYxMTUsIDAuMjIwMzk3LCAwLjMyNjQ5MiwgMC40MzI5MywgMC41Mzg5NTgsIDAuNjQ2NDQzIiwgXAotICAgICAgICAgICIwLjAzNDEwMiwgMC4xMzYyMjQsIDAuMjIwMDc0LCAwLjMyNjUxMywgMC40MzI5NDgsIDAuNTM4OTQ5LCAwLjY0NjQ0MyIsIFwKLSAgICAgICAgICAiMC4wMzUyNzQsIDAuMTM2NTgsIDAuMjIwMzQ1LCAwLjMyNjU2LCAwLjQzMjIyNCwgMC41Mzk3NDcsIDAuNjQ1NjM3IiwgXAotICAgICAgICAgICIwLjAzNjQ3OSwgMC4xMzcxLCAwLjIyMDk1MywgMC4zMjYxODUsIDAuNDMzMTg4LCAwLjUzOTU2MiwgMC42NDU2MTEiLCBcCi0gICAgICAgICAgIjAuMDM4MjIyLCAwLjEzNzg0OCwgMC4yMjEyMDksIDAuMzI3MDk0LCAwLjQzMzMyNSwgMC41Mzk5NywgMC42NDY2MjEiLCBcCi0gICAgICAgICAgIjAuMDM5NjU5LCAwLjEzODM3OCwgMC4yMjE1MjksIDAuMzI3MDgzLCAwLjQzMzAyNSwgMC41NDAwMDQsIDAuNjQ2NTg4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlMwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjA3NjEsIDAuMTE0OTI3LCAwLjE1NjQ2NiwgMC4yMDgzMTYsIDAuMjYwMTQsIDAuMzEyMDE0LCAwLjM2Mzc2MyIsIFwKLSAgICAgICAgICAiMC4wNjgzMjUsIDAuMTIyNTEsIDAuMTY0MDQ5LCAwLjIxNTg5MiwgMC4yNjc3MjksIDAuMzE5NTE5LCAwLjM3MTM1OCIsIFwKLSAgICAgICAgICAiMC4wNzUzNTQsIDAuMTI5NTAxLCAwLjE3MTAyOSwgMC4yMjI4NzEsIDAuMjc0Njk2LCAwLjMyNjU0MywgMC4zNzgzMDEiLCBcCi0gICAgICAgICAgIjAuMDgwMjkzLCAwLjEzNDQ5LCAwLjE3NjAyNiwgMC4yMjc4NzcsIDAuMjc5NjkzLCAwLjMzMTUyNCwgMC4zODMzMjkiLCBcCi0gICAgICAgICAgIjAuMDg0MTM1LCAwLjEzODQwNSwgMC4xNzk5NTksIDAuMjMxODEsIDAuMjgzNjE3LCAwLjMzNTQyLCAwLjM4NzI0MyIsIFwKLSAgICAgICAgICAiMC4wODkyNjYsIDAuMTQzNTA0LCAwLjE4NTEwNCwgMC4yMzY5NiwgMC4yODg3OTUsIDAuMzQwNTk1LCAwLjM5MjQ0MiIsIFwKLSAgICAgICAgICAiMC4wOTMzMDQsIDAuMTQ3NDgxLCAwLjE4OTA5NiwgMC4yNDA5ODgsIDAuMjkyODE3LCAwLjM0NDY0NywgMC4zOTY0MzEiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDMzODYxLCAwLjEzODc0MywgMC4yMjUxOTcsIDAuMzM0MDM4LCAwLjQ0MjY5NywgMC41NTE1MjEsIDAuNjYxNTk3IiwgXAotICAgICAgICAgICIwLjAzMzg3LCAwLjEzODY1MiwgMC4yMjUxNzEsIDAuMzMzNjY1LCAwLjQ0MzE1OCwgMC41NTE3MjUsIDAuNjYwNzU3IiwgXAotICAgICAgICAgICIwLjAzMzg1NywgMC4xMzg3NTksIDAuMjI1MTk3LCAwLjMzMzcyMywgMC40NDI2MiwgMC41NTIzNzksIDAuNjYxMDAxIiwgXAotICAgICAgICAgICIwLjAzMzkwOSwgMC4xMzg4MzIsIDAuMjI1MjQyLCAwLjMzNDAzNywgMC40NDI2NTUsIDAuNTUxNjI4LCAwLjY2MTU3NSIsIFwKLSAgICAgICAgICAiMC4wMzQwMzMsIDAuMTM4ODg2LCAwLjIyNTI4NCwgMC4zMzQwMjUsIDAuNDQzMDYzLCAwLjU1MTg4MSwgMC42NjA3ODUiLCBcCi0gICAgICAgICAgIjAuMDMzODk1LCAwLjEzODc5NCwgMC4yMjUxNDksIDAuMzMzNzM3LCAwLjQ0Mjc1MywgMC41NTIyMTcsIDAuNjYxNDYiLCBcCi0gICAgICAgICAgIjAuMDMzOTE5LCAwLjEzODc5NCwgMC4yMjUwMTcsIDAuMzMzNjI0LCAwLjQ0MjgxNSwgMC41NTE5MDYsIDAuNjYwOTgxIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2MTI5NSwgMC4xMTU2NjUsIDAuMTU2OTMxLCAwLjIwODQxLCAwLjI1OTg2LCAwLjMxMTMyLCAwLjM2Mjc4MiIsIFwKLSAgICAgICAgICAiMC4wNjkwNzgsIDAuMTIzNDI2LCAwLjE2NDY5NCwgMC4yMTYxNzksIDAuMjY3NjMsIDAuMzE5MDgyLCAwLjM3MDU1NiIsIFwKLSAgICAgICAgICAiMC4wNzYxNjksIDAuMTMwNTIsIDAuMTcxNzg4LCAwLjIyMzI2NSwgMC4yNzQ3MzUsIDAuMzI2MTcxLCAwLjM3NzYzIiwgXAotICAgICAgICAgICIwLjA4MTE1OSwgMC4xMzU1NywgMC4xNzY4NCwgMC4yMjgzMjcsIDAuMjc5Nzc4LCAwLjMzMTIyMywgMC4zODI2OCIsIFwKLSAgICAgICAgICAiMC4wODUzNDcsIDAuMTM5NzY0LCAwLjE4MTA0NCwgMC4yMzI1NSwgMC4yODM5OSwgMC4zMzU0MjQsIDAuMzg2ODYiLCBcCi0gICAgICAgICAgIjAuMDkwOTU1LCAwLjE0NTM4NCwgMC4xODY3MTMsIDAuMjM4MjE3LCAwLjI4OTY3LCAwLjM0MTEwOCwgMC4zOTI1NDYiLCBcCi0gICAgICAgICAgIjAuMDk1MTkzLCAwLjE0OTU4LCAwLjE5MDkwNSwgMC4yNDI0MywgMC4yOTM4ODksIDAuMzQ1MzM3LCAwLjM5Njc3OCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzM4NzgsIDAuMTM2MjIxLCAwLjIyMDEyNCwgMC4zMjY1NjIsIDAuNDMyOTg5LCAwLjUzOTAwNiwgMC42NDY1IiwgXAotICAgICAgICAgICIwLjAzMzg4MiwgMC4xMzYyMDcsIDAuMjIwNDYyLCAwLjMyNjU1NSwgMC40MzI5ODMsIDAuNTM4OTg3LCAwLjY0NjQ4OSIsIFwKLSAgICAgICAgICAiMC4wMzM4NCwgMC4xMzYyMiwgMC4yMjA0NTksIDAuMzI2MTY5LCAwLjQzMzA0MywgMC41Mzk2MjksIDAuNjQ1Mjk5IiwgXAotICAgICAgICAgICIwLjAzMzg2MywgMC4xMzYyMzcsIDAuMjIwNDk4LCAwLjMyNjU3NiwgMC40MzI5MzIsIDAuNTM5MDMxLCAwLjY0NTQ0MyIsIFwKLSAgICAgICAgICAiMC4wMzQsIDAuMTM2MzE0LCAwLjIyMDQ5MiwgMC4zMjY0OTksIDAuNDMyNTg0LCAwLjUzOTA3LCAwLjY0NTY2IiwgXAotICAgICAgICAgICIwLjAzMzg2MiwgMC4xMzYyMDQsIDAuMjIwMzM3LCAwLjMyNjIxNiwgMC40MzI0MzgsIDAuNTM5MzM3LCAwLjY0NjAzMyIsIFwKLSAgICAgICAgICAiMC4wMzM5NDksIDAuMTM2MTg0LCAwLjIyMDE5OCwgMC4zMjYxNzEsIDAuNDMyNTM3LCAwLjUzODk0OCwgMC42NDU1ODMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDUwNzIsIDAuMDA1MTYxLCAwLjAwNTE3OCwgMC4wMDUxODgsIDAuMDA1MTkzLCAwLjAwNTE5NiwgMC4wMDUyIiwgXAotICAgICAgICAgICIwLjAwNDk4OSwgMC4wMDUxLCAwLjAwNTEyMywgMC4wMDUxMzUsIDAuMDA1MTQyLCAwLjAwNTE0NiwgMC4wMDUxNTEiLCBcCi0gICAgICAgICAgIjAuMDA1MDQ1LCAwLjAwNTExMiwgMC4wMDUxMzIsIDAuMDA1MTQ0LCAwLjAwNTE1MiwgMC4wMDUxNTYsIDAuMDA1MTU4IiwgXAotICAgICAgICAgICIwLjAwNTEzOSwgMC4wMDUxNjUsIDAuMDA1MTg2LCAwLjAwNTE5MiwgMC4wMDUyMDEsIDAuMDA1MjAyLCAwLjAwNTIwNSIsIFwKLSAgICAgICAgICAiMC4wMDUxNjgsIDAuMDA1MjEyLCAwLjAwNTIzNSwgMC4wMDUyNSwgMC4wMDUyNiwgMC4wMDUyNjYsIDAuMDA1MjciLCBcCi0gICAgICAgICAgIjAuMDA1NTAzLCAwLjAwNTQxMSwgMC4wMDU0MTYsIDAuMDA1NDI1LCAwLjAwNTQzMSwgMC4wMDU0MywgMC4wMDU0MzMiLCBcCi0gICAgICAgICAgIjAuMDA1Njg2LCAwLjAwNTU3LCAwLjAwNTU3MiwgMC4wMDU1NzgsIDAuMDA1NTgzLCAwLjAwNTU4NiwgMC4wMDU1OTEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDY4MTEsIDAuMDA2OTM3LCAwLjAwNjk2MSwgMC4wMDY5NzUsIDAuMDA2OTgyLCAwLjAwNjk4NywgMC4wMDY5OSIsIFwKLSAgICAgICAgICAiMC4wMDY3NTMsIDAuMDA2ODk2LCAwLjAwNjkyNSwgMC4wMDY5NDEsIDAuMDA2OTUsIDAuMDA2OTU2LCAwLjAwNjk1OSIsIFwKLSAgICAgICAgICAiMC4wMDY4MDQsIDAuMDA2OTA2LCAwLjAwNjkzMiwgMC4wMDY5NDgsIDAuMDA2OTU3LCAwLjAwNjk2MywgMC4wMDY5NjciLCBcCi0gICAgICAgICAgIjAuMDA2ODYsIDAuMDA2OTM4LCAwLjAwNjk2NiwgMC4wMDY5ODMsIDAuMDA2OTkyLCAwLjAwNjk5OCwgMC4wMDcwMDMiLCBcCi0gICAgICAgICAgIjAuMDA2OTU3LCAwLjAwNjk5OSwgMC4wMDcwMjQsIDAuMDA3MDQyLCAwLjAwNzA1LCAwLjAwNzA1NywgMC4wMDcwNjEiLCBcCi0gICAgICAgICAgIjAuMDA3MTI1LCAwLjAwNzEyOSwgMC4wMDcxNTIsIDAuMDA3MTY5LCAwLjAwNzE3OSwgMC4wMDcxODUsIDAuMDA3MTkiLCBcCi0gICAgICAgICAgIjAuMDA3MjkyLCAwLjAwNzI1MywgMC4wMDcyODQsIDAuMDA3MzAzLCAwLjAwNzMxNCwgMC4wMDczMjMsIDAuMDA3MzI2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0NTY5LCAwLjAwNDYwNSwgMC4wMDQ2MDEsIDAuMDA0NjA4LCAwLjAwNDYwNCwgMC4wMDQ2MDUsIDAuMDA0NjA1IiwgXAotICAgICAgICAgICIwLjAwNDQ5NSwgMC4wMDQ1NDMsIDAuMDA0NTUyLCAwLjAwNDU2LCAwLjAwNDU1OSwgMC4wMDQ1NiwgMC4wMDQ1NTgiLCBcCi0gICAgICAgICAgIjAuMDA0NTQ4LCAwLjAwNDU1OSwgMC4wMDQ1NjcsIDAuMDA0NTcsIDAuMDA0NTcyLCAwLjAwNDU3MywgMC4wMDQ1NzQiLCBcCi0gICAgICAgICAgIjAuMDA0NjI5LCAwLjAwNDYxMiwgMC4wMDQ2MTYsIDAuMDA0NjE4LCAwLjAwNDYxOCwgMC4wMDQ2MTksIDAuMDA0NjIiLCBcCi0gICAgICAgICAgIjAuMDA0Njk0LCAwLjAwNDY2NSwgMC4wMDQ2NzQsIDAuMDA0Njc3LCAwLjAwNDY3OSwgMC4wMDQ2ODEsIDAuMDA0NjgyIiwgXAotICAgICAgICAgICIwLjAwNDk0MSwgMC4wMDQ4NDIsIDAuMDA0ODM4LCAwLjAwNDgzNSwgMC4wMDQ4MzMsIDAuMDA0ODMzLCAwLjAwNDgzNCIsIFwKLSAgICAgICAgICAiMC4wMDUwNTYsIDAuMDA0OTgxLCAwLjAwNDk3NiwgMC4wMDQ5NzgsIDAuMDA0OTc3LCAwLjAwNDk3OCwgMC4wMDQ5OCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNzI2OCwgMC4wMDczNDIsIDAuMDA3MzU1LCAwLjAwNzM2MywgMC4wMDczNjcsIDAuMDA3MzY5LCAwLjAwNzM3MSIsIFwKLSAgICAgICAgICAiMC4wMDcyMTcsIDAuMDA3MzA2LCAwLjAwNzMyNCwgMC4wMDczMzMsIDAuMDA3MzM4LCAwLjAwNzM0MiwgMC4wMDczNDQiLCBcCi0gICAgICAgICAgIjAuMDA3MjY5LCAwLjAwNzMyMiwgMC4wMDczMzgsIDAuMDA3MzQ4LCAwLjAwNzM1MywgMC4wMDczNTYsIDAuMDA3MzU4IiwgXAotICAgICAgICAgICIwLjAwNzMzLCAwLjAwNzM2MywgMC4wMDczNzcsIDAuMDA3Mzg2LCAwLjAwNzM5MSwgMC4wMDczOTUsIDAuMDA3Mzk3IiwgXAotICAgICAgICAgICIwLjAwNzQzOSwgMC4wMDc0MjksIDAuMDA3NDQ0LCAwLjAwNzQ1MSwgMC4wMDc0NTQsIDAuMDA3NDU1LCAwLjAwNzQ1NyIsIFwKLSAgICAgICAgICAiMC4wMDc1ODUsIDAuMDA3NTQyLCAwLjAwNzU1NywgMC4wMDc1NjcsIDAuMDA3NTczLCAwLjAwNzU3NywgMC4wMDc1NzkiLCBcCi0gICAgICAgICAgIjAuMDA3NzQ4LCAwLjAwNzY4OSwgMC4wMDc2OTksIDAuMDA3NzA4LCAwLjAwNzcxNCwgMC4wMDc3MTcsIDAuMDA3NzE5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUzAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNzkyLCAwLjAwODAyMywgMC4wMDgwNDYsIDAuMDA4MDU5LCAwLjAwODA2NCwgMC4wMDgwNzEsIDAuMDA4MDc0IiwgXAotICAgICAgICAgICIwLjAwNzkxOCwgMC4wMDgwMiwgMC4wMDgwNDIsIDAuMDA4MDU1LCAwLjAwODA2NCwgMC4wMDgwNjcsIDAuMDA4MDciLCBcCi0gICAgICAgICAgIjAuMDA3OTksIDAuMDA4MDg4LCAwLjAwODExLCAwLjAwODEyMiwgMC4wMDgxMjksIDAuMDA4MTMzLCAwLjAwODEzNiIsIFwKLSAgICAgICAgICAiMC4wMDgwODYsIDAuMDA4MTg4LCAwLjAwODIxLCAwLjAwODIyMywgMC4wMDgyMjksIDAuMDA4MjM0LCAwLjAwODIzNiIsIFwKLSAgICAgICAgICAiMC4wMDgyMSwgMC4wMDgzMDMsIDAuMDA4MzIzLCAwLjAwODMzNSwgMC4wMDgzNDMsIDAuMDA4MzQ3LCAwLjAwODM1IiwgXAotICAgICAgICAgICIwLjAwODQ2MiwgMC4wMDg1NTcsIDAuMDA4NTc5LCAwLjAwODU5MiwgMC4wMDg2MDEsIDAuMDA4NjA0LCAwLjAwODYxMSIsIFwKLSAgICAgICAgICAiMC4wMDg2MzgsIDAuMDA4NzMzLCAwLjAwODc1NiwgMC4wMDg3NjUsIDAuMDA4Nzc1LCAwLjAwODc3NywgMC4wMDg3OCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjUzLCAwLjAwNjYyNywgMC4wMDY2NDksIDAuMDA2NjYzLCAwLjAwNjY3LCAwLjAwNjY3NCwgMC4wMDY2NzciLCBcCi0gICAgICAgICAgIjAuMDA2NTIzLCAwLjAwNjYyMiwgMC4wMDY2NDQsIDAuMDA2NjU3LCAwLjAwNjY2NCwgMC4wMDY2NjksIDAuMDA2NjcyIiwgXAotICAgICAgICAgICIwLjAwNjYwNSwgMC4wMDY3LCAwLjAwNjcyMSwgMC4wMDY3MzMsIDAuMDA2NzQsIDAuMDA2NzQ0LCAwLjAwNjc0MyIsIFwKLSAgICAgICAgICAiMC4wMDY3MDIsIDAuMDA2ODAxLCAwLjAwNjgyMiwgMC4wMDY4MzUsIDAuMDA2ODQyLCAwLjAwNjg0NiwgMC4wMDY4NDkiLCBcCi0gICAgICAgICAgIjAuMDA2ODIyLCAwLjAwNjkxNiwgMC4wMDY5MzksIDAuMDA2OTUyLCAwLjAwNjk1OCwgMC4wMDY5NjMsIDAuMDA2OTY2IiwgXAotICAgICAgICAgICIwLjAwNzA5NSwgMC4wMDcxODEsIDAuMDA3MjAyLCAwLjAwNzIxNCwgMC4wMDcyMjIsIDAuMDA3MjI2LCAwLjAwNzIzMSIsIFwKLSAgICAgICAgICAiMC4wMDcyODgsIDAuMDA3Mzc5LCAwLjAwNzQwMSwgMC4wMDc0MTUsIDAuMDA3NDIxLCAwLjAwNzQyNiwgMC4wMDc0MjkiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogQ0xLTVgyWDQgKgotICogLS0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKENMS01YMlg0KSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuNjcxNjEzOwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA4MjMyODU7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwODIxNDk2OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDgyMzI4NTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAzOTgsIDAuMDAwNDAxLCAwLjAwMDQwNCwgMC4wMDA0MDUsIDAuMDAwNDA1LCAwLjAwMDQwNiwgMC4wMDA0MDciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA0NDQsIDAuMDAwNDI5LCAwLjAwMDQyNywgMC4wMDA0MjYsIDAuMDAwNDI1LCAwLjAwMDQyNSwgMC4wMDA0MjQiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDgzNTM3ODsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA4MzM0OTk7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwODM1Mzc4OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDQwOCwgMC4wMDA0MTEsIDAuMDAwNDEyLCAwLjAwMDQxMiwgMC4wMDA0MTIsIDAuMDAwNDEzLCAwLjAwMDQxMyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDQ0NSwgMC4wMDA0MywgMC4wMDA0MjgsIDAuMDAwNDI2LCAwLjAwMDQyNiwgMC4wMDA0MjQsIDAuMDAwNDI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNTc0MDM7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNTczNjc7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNTc0MDM7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjIyLCAwLjAwMDIzMiwgMC4wMDAzMTYsIDAuMDAwNDI0LCAwLjAwMDU1MSwgMC4wMDA3NzUsIDAuMDAwOTc0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyNjc0LCAwLjAwMjY5MiwgMC4wMDI3NjMsIDAuMDAyODY1LCAwLjAwMjk5MSwgMC4wMDMyMTEsIDAuMDAzMzk5Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDEuMzc5ODU7Ci0gICAgZnVuY3Rpb24gOiAiKChTMCBCKSArICghUzAgQSkpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTYwNTgsIDAuMDk5NzQxLCAwLjEzMDk5NCwgMC4xNjk3MDEsIDAuMjA4MzY2LCAwLjI0Njk5NSwgMC4yODU2MDkiLCBcCi0gICAgICAgICAgIjAuMDYyMzM4LCAwLjEwNjAyOSwgMC4xMzcyODUsIDAuMTc1OTk3LCAwLjIxNDY2NSwgMC4yNTMyOTgsIDAuMjkxOTEyIiwgXAotICAgICAgICAgICIwLjA3MDIzNSwgMC4xMTM4NDUsIDAuMTQ1MDkyLCAwLjE4Mzc5NCwgMC4yMjI0NTQsIDAuMjYxMTE4LCAwLjI5OTcyOSIsIFwKLSAgICAgICAgICAiMC4wNzc0MjEsIDAuMTIxMTAyLCAwLjE1MjM0OCwgMC4xOTEwNTEsIDAuMjI5Njk4LCAwLjI2ODMyNSwgMC4zMDY5NjMiLCBcCi0gICAgICAgICAgIjAuMDgzNzM3LCAwLjEyNzY4NiwgMC4xNTg5NSwgMC4xOTc3MiwgMC4yMzYzNDQsIDAuMjc0OTk4LCAwLjMxMzYwMSIsIFwKLSAgICAgICAgICAiMC4wOTI0NzksIDAuMTM3MTA2LCAwLjE2ODQyNywgMC4yMDcxNTcsIDAuMjQ1OCwgMC4yODQ0MTUsIDAuMzIzMDQ4IiwgXAotICAgICAgICAgICIwLjA5OTA5OCwgMC4xNDQzMDksIDAuMTc1ODcsIDAuMjE0MzA5LCAwLjI1Mjk3MywgMC4yOTE1NzYsIDAuMzMwMjE1Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzMjI0OSwgMC4xMDkyMDcsIDAuMTcyMzksIDAuMjUyNDk0LCAwLjMzMzQ1OCwgMC40MTQ2NjcsIDAuNDk1ODciLCBcCi0gICAgICAgICAgIjAuMDMyMTU4LCAwLjEwOTIsIDAuMTcyMjY3LCAwLjI1MjQxNywgMC4zMzM0NDUsIDAuNDE0Njc1LCAwLjQ5NTg4IiwgXAotICAgICAgICAgICIwLjAzMjMzNCwgMC4xMDkyNjUsIDAuMTcyMzksIDAuMjUyNTczLCAwLjMzMzQ3MiwgMC40MTQ2MDMsIDAuNDk1MDk1IiwgXAotICAgICAgICAgICIwLjAzMzA0LCAwLjEwOTUyOCwgMC4xNzI2MTcsIDAuMjUyNzA2LCAwLjMzMjk3NCwgMC40MTQxOTMsIDAuNDk1ODYiLCBcCi0gICAgICAgICAgIjAuMDM0MDQyLCAwLjExMDE0OSwgMC4xNzI5MzEsIDAuMjUyODgzLCAwLjMzMzUwNSwgMC40MTQ2NjcsIDAuNDk1ODc2IiwgXAotICAgICAgICAgICIwLjAzNTUwOSwgMC4xMTA5OTQsIDAuMTczNTMyLCAwLjI1MzA0OSwgMC4zMzM4MTksIDAuNDE0NjU2LCAwLjQ5NTg3NyIsIFwKLSAgICAgICAgICAiMC4wMzY5OTYsIDAuMTExOTkzLCAwLjE3NDMyNCwgMC4yNTM1MjMsIDAuMzM0MDQxLCAwLjQxNDY5MSwgMC40OTU5NTgiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDYwMDczLCAwLjEwNDM5MiwgMC4xMzU3MTMsIDAuMTc0MzIxLCAwLjIxMjgzOCwgMC4yNTEzMzEsIDAuMjg5ODA0IiwgXAotICAgICAgICAgICIwLjA2NjE3NiwgMC4xMTA0NDcsIDAuMTQxNzk0LCAwLjE4MDQwOCwgMC4yMTg5MjUsIDAuMjU3NDEsIDAuMjk1ODk5IiwgXAotICAgICAgICAgICIwLjA3MzI1NiwgMC4xMTc0NzksIDAuMTQ4Nzk3LCAwLjE4NzQxNywgMC4yMjU5MzUsIDAuMjY0NDIzLCAwLjMwMjg4OCIsIFwKLSAgICAgICAgICAiMC4wNzk4NDYsIDAuMTI0MTUxLCAwLjE1NTQ3MSwgMC4xOTQwODEsIDAuMjMyNTkyLCAwLjI3MTA3OSwgMC4zMDk1NTgiLCBcCi0gICAgICAgICAgIjAuMDg1NTczLCAwLjEzMDE2OSwgMC4xNjE0OTQsIDAuMjAwMTE5LCAwLjIzODYyLCAwLjI3NzExMywgMC4zMTU1ODMiLCBcCi0gICAgICAgICAgIjAuMDkzMjk4LCAwLjEzODQ0MywgMC4xNjk4MDEsIDAuMjA4NDM2LCAwLjI0NjkzLCAwLjI4NTQxOSwgMC4zMjM4ODEiLCBcCi0gICAgICAgICAgIjAuMDk5MjM0LCAwLjE0NDc2LCAwLjE3NjI1MiwgMC4yMTQ4NzYsIDAuMjUzMzY4LCAwLjI5MTgzNSwgMC4zMzAzMjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDMyODA5LCAwLjEwODY2OCwgMC4xNzA0NzQsIDAuMjQ5MDY0LCAwLjMyODIwNiwgMC40MDc4MywgMC40ODc1NTMiLCBcCi0gICAgICAgICAgIjAuMDMyODAzLCAwLjEwODYzLCAwLjE3MDQ0NSwgMC4yNDg4MTEsIDAuMzI4Mjc0LCAwLjQwNzA0NiwgMC40ODc1NiIsIFwKLSAgICAgICAgICAiMC4wMzI4NCwgMC4xMDg2OSwgMC4xNzA0NzYsIDAuMjQ4OTA4LCAwLjMyODI3NywgMC40MDc4NDgsIDAuNDg3NDcyIiwgXAotICAgICAgICAgICIwLjAzMzU5NSwgMC4xMDg5NjIsIDAuMTcwNjY2LCAwLjI0OTAzOCwgMC4zMjgzNTUsIDAuNDA3ODkyLCAwLjQ4NjczMyIsIFwKLSAgICAgICAgICAiMC4wMzQ0MzcsIDAuMTA5NTE4LCAwLjE3MDkwOCwgMC4yNDkxNzQsIDAuMzI4MTg5LCAwLjQwNzk5LCAwLjQ4NzY0OCIsIFwKLSAgICAgICAgICAiMC4wMzU5NzEsIDAuMTEwNDQsIDAuMTcxNjkyLCAwLjI0OTYwNiwgMC4zMjg4MTQsIDAuNDA4MjEyLCAwLjQ4NzA1MSIsIFwKLSAgICAgICAgICAiMC4wMzY5MDUsIDAuMTExMTk3LCAwLjE3MjE3MiwgMC4yNTAwNjEsIDAuMzI4OTYsIDAuNDA4MjM1LCAwLjQ4Nzc0OCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTU1NiwgMC4wOTkxOTUsIDAuMTMwNDM0LCAwLjE2OTEzMywgMC4yMDc3OTMsIDAuMjQ2NDIxLCAwLjI4NTA3IiwgXAotICAgICAgICAgICIwLjA2MjAxLCAwLjEwNTY1LCAwLjEzNjg3OCwgMC4xNzU1NzgsIDAuMjE0MjIsIDAuMjUyODc2LCAwLjI5MTQ4NSIsIFwKLSAgICAgICAgICAiMC4wNjk5NjMsIDAuMTEzNDk1LCAwLjE0NDcyMywgMC4xODM0MTYsIDAuMjIyMDcsIDAuMjYwNywgMC4yOTkzMjciLCBcCi0gICAgICAgICAgIjAuMDc3MjM3LCAwLjEyMDc5NCwgMC4xNTIwNjcsIDAuMTkwNzY2LCAwLjIyOTQxOCwgMC4yNjgwNCwgMC4zMDY2NyIsIFwKLSAgICAgICAgICAiMC4wODM1NzQsIDAuMTI3NDU2LCAwLjE1ODcxNCwgMC4xOTc0MjIsIDAuMjM2MTE0LCAwLjI3NDc2LCAwLjMxMzM1NCIsIFwKLSAgICAgICAgICAiMC4wOTIzOSwgMC4xMzY5NTYsIDAuMTY4MjUxLCAwLjIwNjk3MSwgMC4yNDU1OTUsIDAuMjg0MjIxLCAwLjMyMjg0OCIsIFwKLSAgICAgICAgICAiMC4wOTkwODgsIDAuMTQ0MTk3LCAwLjE3NTcwOSwgMC4yMTQyMzgsIDAuMjUyODY4LCAwLjI5MTQ1NSwgMC4zMzAwNjkiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDMyMzM0LCAwLjEwOTIyOCwgMC4xNzIyNjgsIDAuMjUyNDg1LCAwLjMzMzQ3MiwgMC40MTQ2OTIsIDAuNDk1OTU5IiwgXAotICAgICAgICAgICIwLjAzMjIyLCAwLjEwOTExNiwgMC4xNzIyNzcsIDAuMjUyNDE1LCAwLjMzMzA3MywgMC40MTQ2OTIsIDAuNDk1OTAxIiwgXAotICAgICAgICAgICIwLjAzMjQ2OCwgMC4xMDkyOTQsIDAuMTcyNDEsIDAuMjUyNjAxLCAwLjMzMzQ5MywgMC40MTQ1NzgsIDAuNDk1OTMxIiwgXAotICAgICAgICAgICIwLjAzMzAyOCwgMC4xMDk3MjEsIDAuMTcyNTg2LCAwLjI1MjcwNSwgMC4zMzM1MzksIDAuNDE0NTY3LCAwLjQ5NTg4OCIsIFwKLSAgICAgICAgICAiMC4wMzM5NTcsIDAuMTEwMTQ3LCAwLjE3Mjk0MiwgMC4yNTI3MzIsIDAuMzMzMzA4LCAwLjQxMzk0NCwgMC40OTU0MTciLCBcCi0gICAgICAgICAgIjAuMDM1NTMzLCAwLjExMTAwMSwgMC4xNzM1MzQsIDAuMjUzMDA4LCAwLjMzMzgxOSwgMC40MTQ0MzYsIDAuNDk1ODkyIiwgXAotICAgICAgICAgICIwLjAzNjg3MiwgMC4xMTE5NDUsIDAuMTc0MjA4LCAwLjI1MzUyOSwgMC4zMzQwODcsIDAuNDE0ODk1LCAwLjQ5NTcxMiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjAzMTQsIDAuMTA0NTk0LCAwLjEzNTg5MywgMC4xNzQ0OTcsIDAuMjEzMDE1LCAwLjI1MTUwMiwgMC4yODk5NzIiLCBcCi0gICAgICAgICAgIjAuMDY2MjMyLCAwLjExMDQ5MSwgMC4xNDE4MDksIDAuMTgwNDE1LCAwLjIxODkyOCwgMC4yNTc0MDYsIDAuMjk1ODk2IiwgXAotICAgICAgICAgICIwLjA3MzI3MiwgMC4xMTc0NjUsIDAuMTQ4Nzc1LCAwLjE4NzM3OCwgMC4yMjU4ODgsIDAuMjY0MzcyLCAwLjMwMjgzOSIsIFwKLSAgICAgICAgICAiMC4wNzk3OSwgMC4xMjQwODgsIDAuMTU1Mzk1LCAwLjE5Mzk5NCwgMC4yMzI0OTksIDAuMjcwOTc4LCAwLjMwOTQ2MSIsIFwKLSAgICAgICAgICAiMC4wODU0NTEsIDAuMTI5OTY3LCAwLjE2MTMsIDAuMTk5OTA5LCAwLjIzODQxMiwgMC4yNzY5MDMsIDAuMzE1MzcxIiwgXAotICAgICAgICAgICIwLjA5MzE0MywgMC4xMzgyMDYsIDAuMTY5NTc5LCAwLjIwODE4MywgMC4yNDY2NzIsIDAuMjg1MTczLCAwLjMyMzY1OCIsIFwKLSAgICAgICAgICAiMC4wOTg5MDEsIDAuMTQ0NDQyLCAwLjE3NTkwNywgMC4yMTQ1NjEsIDAuMjUzMDQ3LCAwLjI5MTUyLCAwLjMyOTk3MiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzI3NjYsIDAuMTA4NTQ3LCAwLjE3MDQzNCwgMC4yNDkwNDQsIDAuMzI3Nzc3LCAwLjQwNzgwNCwgMC40ODc1MDgiLCBcCi0gICAgICAgICAgIjAuMDMyNzQ4LCAwLjEwODU4NywgMC4xNzA0MDIsIDAuMjQ4NzU4LCAwLjMyODIzMSwgMC40MDczMzUsIDAuNDg3NTI0IiwgXAotICAgICAgICAgICIwLjAzMjgyMSwgMC4xMDg2NTEsIDAuMTcwNDQsIDAuMjQ4ODg2LCAwLjMyODI0MywgMC40MDc4MTYsIDAuNDg2OTA1IiwgXAotICAgICAgICAgICIwLjAzMzU0LCAwLjEwODkxNiwgMC4xNzA2MjUsIDAuMjQ5MDA3LCAwLjMyODMxNywgMC40MDczNjMsIDAuNDg3NTQ0IiwgXAotICAgICAgICAgICIwLjAzNDMyNSwgMC4xMDk0NjUsIDAuMTcwODk4LCAwLjI0OTIwMywgMC4zMjgxMjYsIDAuNDA3OTQ3LCAwLjQ4NzYwOCIsIFwKLSAgICAgICAgICAiMC4wMzU2NTUsIDAuMTEwNDE0LCAwLjE3MTY5LCAwLjI0OTU5NSwgMC4zMjg0OCwgMC40MDgxNCwgMC40ODY5OTMiLCBcCi0gICAgICAgICAgIjAuMDM2Nzk5LCAwLjExMTE5OCwgMC4xNzIxMDMsIDAuMjUwMDM2LCAwLjMyODkwOCwgMC40MDgwODgsIDAuNDg3Mzg0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlMwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTEzMTksIDAuMDk0OTEyLCAwLjEyNjE0MywgMC4xNjQ4MzksIDAuMjAzNDkxLCAwLjI0MjEyOSwgMC4yODA3NDgiLCBcCi0gICAgICAgICAgIjAuMDU4ODQ1LCAwLjEwMjQ0NSwgMC4xMzM2NzcsIDAuMTcyMzc1LCAwLjIxMTAzMSwgMC4yNDk2NzQsIDAuMjg4Mjg4IiwgXAotICAgICAgICAgICIwLjA2ODYwMSwgMC4xMTIxNDMsIDAuMTQzMzgyLCAwLjE4MjA3OCwgMC4yMjA3MzMsIDAuMjU5MzgxLCAwLjI5Nzk5MyIsIFwKLSAgICAgICAgICAiMC4wNzc1NDUsIDAuMTIxMjY2LCAwLjE1MjQ5OSwgMC4xOTExODMsIDAuMjI5ODI3LCAwLjI2ODQ4MSwgMC4zMDcwOTEiLCBcCi0gICAgICAgICAgIjAuMDg1MjAxLCAwLjEyOTI2NywgMC4xNjA0OTcsIDAuMTk5MTU3LCAwLjIzNzgwOCwgMC4yNzY0NzEsIDAuMzE1MDciLCBcCi0gICAgICAgICAgIjAuMDk1MTM0LCAwLjE0MDA5OSwgMC4xNzE0MDUsIDAuMjEwMTA0LCAwLjI0ODczLCAwLjI4NzMzMSwgMC4zMjU5NjQiLCBcCi0gICAgICAgICAgIjAuMTAyNjgsIDAuMTQ4MzEsIDAuMTc5NTc2LCAwLjIxODI1NiwgMC4yNTY5MzQsIDAuMjk1NDY4LCAwLjMzNDE2NyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzIxNDgsIDAuMTA5MTksIDAuMTcyMzU5LCAwLjI1MjU3NSwgMC4zMzI5MzYsIDAuNDEzODgsIDAuNDk1ODk0IiwgXAotICAgICAgICAgICIwLjAzMjEsIDAuMTA5MTg3LCAwLjE3MjM1MiwgMC4yNTI1NjksIDAuMzMyOTc1LCAwLjQxNDY2OSwgMC40OTU4OTIiLCBcCi0gICAgICAgICAgIjAuMDMyMzk2LCAwLjEwOTI1OSwgMC4xNzIzOTQsIDAuMjUyNTgzLCAwLjMzMzM2NiwgMC40MTQ2NjUsIDAuNDk1ODYyIiwgXAotICAgICAgICAgICIwLjAzMzUzOSwgMC4xMDk2MzEsIDAuMTcyNTg3LCAwLjI1MjUzNCwgMC4zMzMyMjgsIDAuNDE0NzE0LCAwLjQ5NTkyOCIsIFwKLSAgICAgICAgICAiMC4wMzUzOTcsIDAuMTEwMzkzLCAwLjE3MzA1OSwgMC4yNTI4NywgMC4zMzM0MDcsIDAuNDE0NzYzLCAwLjQ5NTk3NSIsIFwKLSAgICAgICAgICAiMC4wMzc2NzEsIDAuMTExODIsIDAuMTczOTUzLCAwLjI1MzQxMSwgMC4zMzM5MTcsIDAuNDE0NTYzLCAwLjQ5NTI2MiIsIFwKLSAgICAgICAgICAiMC4wMzk3NTQsIDAuMTEzMTIsIDAuMTc0NjY0LCAwLjI1Mzg4NSwgMC4zMzQyNzcsIDAuNDE1MTAzLCAwLjQ5NjMzMSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTU3OTMsIDAuMTAwMDQ4LCAwLjEzMTM3MiwgMC4xNjk5ODcsIDAuMjA4NDk5LCAwLjI0Njk4NCwgMC4yODU0NyIsIFwKLSAgICAgICAgICAiMC4wNjMxNCwgMC4xMDc0MDMsIDAuMTM4NzI2LCAwLjE3NzM0OCwgMC4yMTU4NjksIDAuMjU0MzU3LCAwLjI5Mjg0NSIsIFwKLSAgICAgICAgICAiMC4wNzI4NTgsIDAuMTE3MDg4LCAwLjE0ODQwNywgMC4xODcwMjYsIDAuMjI1NTQzLCAwLjI2NDA0MSwgMC4zMDI1MTgiLCBcCi0gICAgICAgICAgIjAuMDgxODU0LCAwLjEyNjE4NiwgMC4xNTc1MDcsIDAuMTk2MTMyLCAwLjIzNDY0NCwgMC4yNzMxMzMsIDAuMzExNjA0IiwgXAotICAgICAgICAgICIwLjA4OTUyMiwgMC4xMzQxNDMsIDAuMTY1NDkzLCAwLjIwNDEwNywgMC4yNDI2MjEsIDAuMjgxMTA0LCAwLjMxOTU3OCIsIFwKLSAgICAgICAgICAiMC4wOTk3MDcsIDAuMTQ0OTIsIDAuMTc2MzcyLCAwLjIxNDkyNywgMC4yNTM0MjQsIDAuMjkxODk1LCAwLjMzMDM4NyIsIFwKLSAgICAgICAgICAiMC4xMDcyMiwgMC4xNTI5MTYsIDAuMTg0NDYyLCAwLjIyMzA3MywgMC4yNjE1NDUsIDAuMzAwMDIxLCAwLjMzODQ1OCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzI2OTksIDAuMTA4NjA0LCAwLjE3MDQzNiwgMC4yNDg5MTUsIDAuMzI4MjY2LCAwLjQwNzc1MSwgMC40ODc1MzUiLCBcCi0gICAgICAgICAgIjAuMDMyNjI0LCAwLjEwODYxMSwgMC4xNzA0NDYsIDAuMjQ4ODY5LCAwLjMyODI2MywgMC40MDc4MzksIDAuNDg2ODQ4IiwgXAotICAgICAgICAgICIwLjAzMjc2LCAwLjEwODY1MiwgMC4xNzA0NTcsIDAuMjQ4OTI0LCAwLjMyODI3LCAwLjQwNzE5NiwgMC40ODc1NDQiLCBcCi0gICAgICAgICAgIjAuMDMzNjM5LCAwLjEwODk2NywgMC4xNzA2NjIsIDAuMjQ4OTE0LCAwLjMyODMzOSwgMC40MDc4ODMsIDAuNDg3MDA5IiwgXAotICAgICAgICAgICIwLjAzNTEyOSwgMC4xMDk1OTcsIDAuMTcxMDMyLCAwLjI0OTM5MywgMC4zMjg1LCAwLjQwODAwMSwgMC40ODc2NDgiLCBcCi0gICAgICAgICAgIjAuMDM3MjUxLCAwLjExMDgxNSwgMC4xNzE4ODksIDAuMjQ5Nzg3LCAwLjMyODkxOCwgMC40MDc2NiwgMC40ODc3MjIiLCBcCi0gICAgICAgICAgIjAuMDM5MDg4LCAwLjExMTg1MSwgMC4xNzI2MjYsIDAuMjUwMjcyLCAwLjMyOTE3NiwgMC40MDg0NzIsIDAuNDg3NDU1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlMwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjUxNTMsIDAuMTA4ODI5LCAwLjE0MDA3LCAwLjE3ODc3MiwgMC4yMTc0MjMsIDAuMjU2MDc2LCAwLjI5NDY4OSIsIFwKLSAgICAgICAgICAiMC4wNzI2ODIsIDAuMTE2MzcxLCAwLjE0NzY0NCwgMC4xODYzNDMsIDAuMjI1LCAwLjI2MzYyOCwgMC4zMDIyNTciLCBcCi0gICAgICAgICAgIjAuMDc5MzU3LCAwLjEyMywgMC4xNTQyNDgsIDAuMTkyOTUxLCAwLjIzMTYwOSwgMC4yNzAyNDQsIDAuMzA4ODQ5IiwgXAotICAgICAgICAgICIwLjA4MzkwMiwgMC4xMjc2LCAwLjE1ODg0MiwgMC4xOTc1NSwgMC4yMzYyMTgsIDAuMjc0ODUyLCAwLjMxMzUiLCBcCi0gICAgICAgICAgIjAuMDg3NTU3LCAwLjEzMTI0LCAwLjE2MjUxOSwgMC4yMDEyNDEsIDAuMjM5OTA4LCAwLjI3ODU0MSwgMC4zMTcxNjEiLCBcCi0gICAgICAgICAgIjAuMDkyNDMxLCAwLjEzNjEzMSwgMC4xNjc0MjgsIDAuMjA2MTg1LCAwLjI0NDg0NywgMC4yODM0ODMsIDAuMzIyMTA0IiwgXAotICAgICAgICAgICIwLjA5NjA4OCwgMC4xMzk3NDYsIDAuMTcxMDQ2LCAwLjIwOTgxMiwgMC4yNDg0ODIsIDAuMjg3MTI0LCAwLjMyNTc0OCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzIyMjgsIDAuMTA5MTg0LCAwLjE3MjM4NiwgMC4yNTI1ODYsIDAuMzMzMzQzLCAwLjQxNDY1LCAwLjQ5NTg4OSIsIFwKLSAgICAgICAgICAiMC4wMzIyMjIsIDAuMTA5MjE3LCAwLjE3MjM3OSwgMC4yNTI0MTMsIDAuMzMzNTA0LCAwLjQxNDA4OSwgMC40OTU4NjciLCBcCi0gICAgICAgICAgIjAuMDMyMDk4LCAwLjEwOTE5OSwgMC4xNzIzNjQsIDAuMjUyNDAxLCAwLjMzMzQ5NiwgMC40MTQ2MzgsIDAuNDk1NzA2IiwgXAotICAgICAgICAgICIwLjAzMjA5LCAwLjEwOTI0NSwgMC4xNzI0MDIsIDAuMjUyNDMsIDAuMzMzNTE1LCAwLjQxNDYwNCwgMC40OTU4NDkiLCBcCi0gICAgICAgICAgIjAuMDMyMTU3LCAwLjEwOTI3OSwgMC4xNzI0NjYsIDAuMjUyNDczLCAwLjMzMzAyOSwgMC40MTQ1NjYsIDAuNDk1NzgxIiwgXAotICAgICAgICAgICIwLjAzMjA3NSwgMC4xMDkxODIsIDAuMTcyNDU0LCAwLjI1MjU4NiwgMC4zMzMyMTIsIDAuNDE0MjAxLCAwLjQ5NTczNiIsIFwKLSAgICAgICAgICAiMC4wMzIxMjcsIDAuMTA5MzE3LCAwLjE3MjM3NCwgMC4yNTI0MDcsIDAuMzMzMjYxLCAwLjQxNDAwMSwgMC40OTU0NiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjc1MzQsIDAuMTExNzUzLCAwLjE0MzA5NCwgMC4xODE3MDEsIDAuMjIwMjE1LCAwLjI1ODY5MiwgMC4yOTcxODYiLCBcCi0gICAgICAgICAgIjAuMDc1MjUxLCAwLjExOTQ3MiwgMC4xNTA4MDEsIDAuMTg5NDEsIDAuMjI3OTI0LCAwLjI2NjQxMywgMC4zMDQ4NzQiLCBcCi0gICAgICAgICAgIjAuMDgxOTI3LCAwLjEyNjEyNywgMC4xNTc0NCwgMC4xOTYwNSwgMC4yMzQ1NjEsIDAuMjczMDQ4LCAwLjMxMTUzIiwgXAotICAgICAgICAgICIwLjA4NjY4NiwgMC4xMzA5NDYsIDAuMTYyMjYyLCAwLjIwMDg3NywgMC4yMzkzODcsIDAuMjc3ODcxLCAwLjMxNjM1NSIsIFwKLSAgICAgICAgICAiMC4wOTA2ODIsIDAuMTM0ODcsIDAuMTY2MjA2LCAwLjIwNDg0NCwgMC4yNDMzNDgsIDAuMjgxODM0LCAwLjMyMDMxMSIsIFwKLSAgICAgICAgICAiMC4wOTU5NTIsIDAuMTQwMzQxLCAwLjE3MTU2OCwgMC4yMTAxOTksIDAuMjQ4NzI0LCAwLjI4NzIwOCwgMC4zMjU2OCIsIFwKLSAgICAgICAgICAiMC4wOTk5NjQsIDAuMTQ0MjMyLCAwLjE3NTYzNSwgMC4yMTQyMjMsIDAuMjUyNzUxLCAwLjI5MTI1LCAwLjMyOTc0MyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzI3MjQsIDAuMTA4NTgxLCAwLjE3MDQwNiwgMC4yNDg3NzIsIDAuMzI4MjY0LCAwLjQwNzMwOCwgMC40ODc1NDgiLCBcCi0gICAgICAgICAgIjAuMDMyNzA3LCAwLjEwODU2OCwgMC4xNzA0MDYsIDAuMjQ4NzcxLCAwLjMyODIyOCwgMC40MDc4MDksIDAuNDg3NDMiLCBcCi0gICAgICAgICAgIjAuMDMyNzA3LCAwLjEwODU2NiwgMC4xNzAzODMsIDAuMjQ4ODU4LCAwLjMyODE4MSwgMC40MDc3ODQsIDAuNDg3NTEzIiwgXAotICAgICAgICAgICIwLjAzMjU5NywgMC4xMDg2MjYsIDAuMTcwNDMyLCAwLjI0ODg5LCAwLjMyODI1LCAwLjQwNzMxMSwgMC40ODc1MDMiLCBcCi0gICAgICAgICAgIjAuMDMyNjQxLCAwLjEwODYwNywgMC4xNzA0MDMsIDAuMjQ4ODM2LCAwLjMyODMxLCAwLjQwNzc1NiwgMC40ODc0MzMiLCBcCi0gICAgICAgICAgIjAuMDMyNTU2LCAwLjEwODY4NSwgMC4xNzA0NCwgMC4yNDg5MDEsIDAuMzI3ODY2LCAwLjQwNzIyMywgMC40ODcyNzIiLCBcCi0gICAgICAgICAgIjAuMDMyNjE5LCAwLjEwODU1MywgMC4xNzAzNTYsIDAuMjQ4NzgyLCAwLjMyNzkwNSwgMC40MDcyOTksIDAuNDg2OTA3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2MDgzLCAwLjAwNjEyOSwgMC4wMDYxNTQsIDAuMDA2MTY4LCAwLjAwNjE3NCwgMC4wMDYxODIsIDAuMDA2MTg0IiwgXAotICAgICAgICAgICIwLjAwNjAxMiwgMC4wMDYwNzUsIDAuMDA2MTA2LCAwLjAwNjEyNSwgMC4wMDYxMzYsIDAuMDA2MTQzLCAwLjAwNjE0NiIsIFwKLSAgICAgICAgICAiMC4wMDYwNjcsIDAuMDA2MDgyLCAwLjAwNjExLCAwLjAwNjEyOSwgMC4wMDYxMzUsIDAuMDA2MTQ3LCAwLjAwNjE1MiIsIFwKLSAgICAgICAgICAiMC4wMDYxODEsIDAuMDA2MTM0LCAwLjAwNjE1NywgMC4wMDYxNywgMC4wMDYxOCwgMC4wMDYxODYsIDAuMDA2MTkxIiwgXAotICAgICAgICAgICIwLjAwNjQxMSwgMC4wMDYyMjIsIDAuMDA2MjM0LCAwLjAwNjI0MiwgMC4wMDYyNSwgMC4wMDYyNTEsIDAuMDA2MjU5IiwgXAotICAgICAgICAgICIwLjAwNjQ5MiwgMC4wMDYzMTIsIDAuMDA2MzI0LCAwLjAwNjMzNywgMC4wMDYzNDcsIDAuMDA2MzU3LCAwLjAwNjM1OSIsIFwKLSAgICAgICAgICAiMC4wMDY2OTcsIDAuMDA2NDU4LCAwLjAwNjQ2MywgMC4wMDY0NjQsIDAuMDA2NDc2LCAwLjAwNjQ4MSwgMC4wMDY0ODUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDc4MjksIDAuMDA3ODc1LCAwLjAwNzkwNywgMC4wMDc5MjgsIDAuMDA3OTM5LCAwLjAwNzk0NywgMC4wMDc5NTIiLCBcCi0gICAgICAgICAgIjAuMDA3NzU5LCAwLjAwNzgzMywgMC4wMDc4NjksIDAuMDA3ODk1LCAwLjAwNzkxLCAwLjAwNzkxOSwgMC4wMDc5MjYiLCBcCi0gICAgICAgICAgIjAuMDA3ODMyLCAwLjAwNzg0MiwgMC4wMDc4NzcsIDAuMDA3OTAyLCAwLjAwNzkxNywgMC4wMDc5MjYsIDAuMDA3OTMzIiwgXAotICAgICAgICAgICIwLjAwNzkyMywgMC4wMDc4ODMsIDAuMDA3OTEyLCAwLjAwNzkzNCwgMC4wMDc5NDgsIDAuMDA3OTU3LCAwLjAwNzk2MyIsIFwKLSAgICAgICAgICAiMC4wMDgwODMsIDAuMDA3OTQsIDAuMDA3OTYzLCAwLjAwNzk4MiwgMC4wMDc5OTgsIDAuMDA4MDA3LCAwLjAwODAxNCIsIFwKLSAgICAgICAgICAiMC4wMDgzNjMsIDAuMDA4MDk0LCAwLjAwODA5NiwgMC4wMDgxMDYsIDAuMDA4MTE2LCAwLjAwODEyMiwgMC4wMDgxMjciLCBcCi0gICAgICAgICAgIjAuMDA4NDM2LCAwLjAwODE4NywgMC4wMDgxODksIDAuMDA4MjAzLCAwLjAwODIxNiwgMC4wMDgyMjQsIDAuMDA4MjMxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1NzQ1LCAwLjAwNTcyNywgMC4wMDU3MzMsIDAuMDA1NzM4LCAwLjAwNTczOCwgMC4wMDU3MzksIDAuMDA1NzQiLCBcCi0gICAgICAgICAgIjAuMDA1Njc1LCAwLjAwNTY3NiwgMC4wMDU2OSwgMC4wMDU2OTcsIDAuMDA1NzAzLCAwLjAwNTcwNSwgMC4wMDU3MDgiLCBcCi0gICAgICAgICAgIjAuMDA1NzMsIDAuMDA1NjkyLCAwLjAwNTcwMiwgMC4wMDU3MDgsIDAuMDA1NzEzLCAwLjAwNTcxNiwgMC4wMDU3MTgiLCBcCi0gICAgICAgICAgIjAuMDA1ODcyLCAwLjAwNTc1MywgMC4wMDU3NSwgMC4wMDU3NTMsIDAuMDA1NzU1LCAwLjAwNTc2LCAwLjAwNTc2MyIsIFwKLSAgICAgICAgICAiMC4wMDU5NTIsIDAuMDA1ODU0LCAwLjAwNTg0MiwgMC4wMDU4MzIsIDAuMDA1ODM1LCAwLjAwNTgzNSwgMC4wMDU4MzIiLCBcCi0gICAgICAgICAgIjAuMDA2MTYyLCAwLjAwNTk0LCAwLjAwNTkzMywgMC4wMDU5MzIsIDAuMDA1OTM1LCAwLjAwNTkzMywgMC4wMDU5MzQiLCBcCi0gICAgICAgICAgIjAuMDA2NDMyLCAwLjAwNjExOSwgMC4wMDYwOTgsIDAuMDA2MDgsIDAuMDA2MDc0LCAwLjAwNjA3MywgMC4wMDYwNyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwODA4NSwgMC4wMDgxMjgsIDAuMDA4MTU1LCAwLjAwODE3MiwgMC4wMDgxODIsIDAuMDA4MTg5LCAwLjAwODE5NCIsIFwKLSAgICAgICAgICAiMC4wMDgwNDcsIDAuMDA4MDk0LCAwLjAwODEyNiwgMC4wMDgxNDcsIDAuMDA4MTU5LCAwLjAwODE2NywgMC4wMDgxNzIiLCBcCi0gICAgICAgICAgIjAuMDA4MTE3LCAwLjAwODEwNywgMC4wMDgxMzUsIDAuMDA4MTU1LCAwLjAwODE2NiwgMC4wMDgxNzQsIDAuMDA4MTc5IiwgXAotICAgICAgICAgICIwLjAwODIzLCAwLjAwODE1OSwgMC4wMDgxNzgsIDAuMDA4MTkzLCAwLjAwODIwMywgMC4wMDgyMSwgMC4wMDgyMTQiLCBcCi0gICAgICAgICAgIjAuMDA4MzYsIDAuMDA4MjEsIDAuMDA4MjI4LCAwLjAwODI1LCAwLjAwODI0OSwgMC4wMDgyNTYsIDAuMDA4MjYxIiwgXAotICAgICAgICAgICIwLjAwODU4MSwgMC4wMDgzNjIsIDAuMDA4MzY0LCAwLjAwODM2MywgMC4wMDgzNzEsIDAuMDA4MzcyLCAwLjAwODM3NSIsIFwKLSAgICAgICAgICAiMC4wMDg3MTQsIDAuMDA4NDUsIDAuMDA4NDQ3LCAwLjAwODQ1NywgMC4wMDg0NjUsIDAuMDA4NDcyLCAwLjAwODQ3NiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlMwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDg2ODYsIDAuMDA4NzQxLCAwLjAwODc3MiwgMC4wMDg3OSwgMC4wMDg4MDEsIDAuMDA4ODA4LCAwLjAwODgxNCIsIFwKLSAgICAgICAgICAiMC4wMDg3LCAwLjAwODc1NCwgMC4wMDg3ODQsIDAuMDA4ODAzLCAwLjAwODgxMiwgMC4wMDg4MjEsIDAuMDA4ODI1IiwgXAotICAgICAgICAgICIwLjAwODc3OSwgMC4wMDg4MzMsIDAuMDA4ODYxLCAwLjAwODg4MSwgMC4wMDg4OTEsIDAuMDA4OTAxLCAwLjAwODkwNCIsIFwKLSAgICAgICAgICAiMC4wMDg4NzksIDAuMDA4OTQyLCAwLjAwODk3MiwgMC4wMDg5OTIsIDAuMDA5MDAzLCAwLjAwOTAxLCAwLjAwOTAyIiwgXAotICAgICAgICAgICIwLjAwOTAxLCAwLjAwOTA2NSwgMC4wMDkwOTQsIDAuMDA5MTExLCAwLjAwOTEyMywgMC4wMDkxMzEsIDAuMDA5MTM0IiwgXAotICAgICAgICAgICIwLjAwOTI2MSwgMC4wMDkzMjEsIDAuMDA5MzQ1LCAwLjAwOTM2MywgMC4wMDkzNzcsIDAuMDA5MzgzLCAwLjAwOTM4OSIsIFwKLSAgICAgICAgICAiMC4wMDk0NDYsIDAuMDA5NDk1LCAwLjAwOTUyMywgMC4wMDk1NDUsIDAuMDA5NTU1LCAwLjAwOTU2LCAwLjAwOTU2NyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNzM3NSwgMC4wMDc0MjIsIDAuMDA3NDU3LCAwLjAwNzQ4LCAwLjAwNzQ5NCwgMC4wMDc1MDIsIDAuMDA3NTA4IiwgXAotICAgICAgICAgICIwLjAwNzM4NiwgMC4wMDc0MzUsIDAuMDA3NDcsIDAuMDA3NDkzLCAwLjAwNzUwNiwgMC4wMDc1MTUsIDAuMDA3NTIxIiwgXAotICAgICAgICAgICIwLjAwNzQ2NiwgMC4wMDc1MTcsIDAuMDA3NTUxLCAwLjAwNzU3NCwgMC4wMDc1ODcsIDAuMDA3NTk2LCAwLjAwNzYwMiIsIFwKLSAgICAgICAgICAiMC4wMDc1NzUsIDAuMDA3NjI0LCAwLjAwNzY1OSwgMC4wMDc2ODIsIDAuMDA3Njk3LCAwLjAwNzcwNSwgMC4wMDc3MTEiLCBcCi0gICAgICAgICAgIjAuMDA3Njk4LCAwLjAwNzc0NywgMC4wMDc3ODEsIDAuMDA3ODAzLCAwLjAwNzgxOCwgMC4wMDc4MjYsIDAuMDA3ODMyIiwgXAotICAgICAgICAgICIwLjAwNzkyNywgMC4wMDc5ODcsIDAuMDA4MDA4LCAwLjAwODAzMSwgMC4wMDgwNDQsIDAuMDA4MDUzLCAwLjAwODA2IiwgXAotICAgICAgICAgICIwLjAwODEzNywgMC4wMDgxNzQsIDAuMDA4MjIyLCAwLjAwODIzNiwgMC4wMDgyNDEsIDAuMDA4MjU3LCAwLjAwODI2MyIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogREZGUVhMICoKLSAqIC0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoREZGUVhMKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuNjY4MDM2OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIGZmIChOMzAsUUJJTlQpIHsKLSAgICBuZXh0X3N0YXRlIDogIkQiOwotICAgIGNsb2NrZWRfb24gOiAiQ0siOwotICB9Ci0gIHBpbihDSykgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjUwMTg3OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDY1MDE4NzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2NTAxNDk7Ci0gICAgY2xvY2sgOiB0cnVlOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzc1MiwgMC4wMDM3NDUsIDAuMDAzODMsIDAuMDAzOTEsIDAuMDA0MDI1LCAwLjAwNDI2NSwgMC4wMDQ0NTQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDgyMzksIDAuMDA4MjI4LCAwLjAwODMsIDAuMDA4Mzg4LCAwLjAwODUxNSwgMC4wMDg2NjksIDAuMDA4ODQ0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRCI7Ci0gICAgICBzZGZfY29uZCA6ICJEID09IDEnYjAiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMTIyMTg1LCAwLjEzMDQ0MSwgMC4xMzk3MTgsIDAuMTQ3MjYsIDAuMTUzMzM0LCAwLjE2MTI2MSwgMC4xNjcxMjYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjA3MzAxNCwgMC4wODExMjcsIDAuMDkwMzY4LCAwLjA5NzI4MSwgMC4xMDI4NzEsIDAuMTEwMjc5LCAwLjExNTU3OCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNzI0NDc0OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDcyMzM3MjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA3MjQ0NzQ7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyNjg0LCAwLjAwMjY2MSwgMC4wMDI2OTUsIDAuMDAyNzQyLCAwLjAwMjgxOCwgMC4wMDI5NjIsIDAuMDAzMTI5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzNDk3LCAwLjAwMzQ4MSwgMC4wMDM1MDEsIDAuMDAzNTU5LCAwLjAwMzY0LCAwLjAwMzc1MywgMC4wMDM4OTUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMTI1LCAtMC4wMDEyNSwgLTAuMDAxMjUsIDAuMDA1LCAwLjAwNSwgMC4wMDg3NSwgMC4wMTEyNSIsIFwKLSAgICAgICAgICAiLTAuMDE3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAsIDAsIDAuMDAzNzUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTI1LCAtMC4wMTI1LCAtMC4wMDYyNSwgLTAuMDA2MjUsIC0wLjAwMjUsIDAiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDEyNSwgLTAuMDA2MjUsIC0wLjAwMjUsIDAiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMTI1LCAtMC4wMDg3NSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjAzMzc1LCAtMC4wMjg3NSwgLTAuMDIyNSwgLTAuMDIyNSwgLTAuMDE2MjUsIC0wLjAxMjUsIC0wLjAxIiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTUsIC0wLjAxMjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMjUsIDAuMDIzNzUsIDAuMDMsIDAuMDM2MjUsIDAuMDQyNSwgMC4wNDYyNSwgMC4wNTUiLCBcCi0gICAgICAgICAgIjAuMDA3NSwgMC4wMTg3NSwgMC4wMjUsIDAuMDMxMjUsIDAuMDM3NSwgMC4wNDEyNSwgMC4wNSIsIFwKLSAgICAgICAgICAiMC4wMDEyNSwgMC4wMTI1LCAwLjAxODc1LCAwLjAyNSwgMC4wMzEyNSwgMC4wNDEyNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4wMDEyNSwgMC4wMTI1LCAwLjAxODc1LCAwLjAyNSwgMC4wMzEyNSwgMC4wMzUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMDAxMjUsIDAuMDA2MjUsIDAuMDE4NzUsIDAuMDI1LCAwLjAyNSwgMC4wMzUsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDAyNSwgMC4wMDI1LCAwLjAxNSwgMC4wMjEyNSwgMC4wMjc1LCAwLjAzMTI1LCAwLjA0IiwgXAotICAgICAgICAgICItMC4wMDUsIDAsIDAuMDEyNSwgMC4wMTg3NSwgMC4wMjUsIDAuMDI4NzUsIDAuMDM3NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjUsIDAuMDIsIDAuMDEzNzUsIDAuMDA3NSwgMC4wMDc1LCAwLjAwMzc1LCAwLjAwMTI1IiwgXAotICAgICAgICAgICIwLjAzLCAwLjAyNSwgMC4wMTg3NSwgMC4wMTI1LCAwLjAxMjUsIDAuMDA4NzUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMDM2MjUsIDAuMDMxMjUsIDAuMDI1LCAwLjAxODc1LCAwLjAxODc1LCAwLjAxNSwgMC4wMTI1IiwgXAotICAgICAgICAgICIwLjA0MjUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMjUsIDAuMDI1LCAwLjAyMTI1LCAwLjAxODc1IiwgXAotICAgICAgICAgICIwLjA0ODc1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDI1LCAwLjAyMTI1LCAwLjAxODc1IiwgXAotICAgICAgICAgICIwLjA1ODc1LCAwLjA0NzUsIDAuMDQxMjUsIDAuMDM1LCAwLjAzNSwgMC4wMzEyNSwgMC4wMjg3NSIsIFwKLSAgICAgICAgICAiMC4wNjEyNSwgMC4wNSwgMC4wNDM3NSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzMzc1LCAwLjAzMTI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEyNSwgMC4wMDEyNSwgLTAuMDA1LCAtMC4wMTc1LCAtMC4wMjM3NSwgLTAuMDI3NSwgLTAuMDM2MjUiLCBcCi0gICAgICAgICAgIjAuMDE3NSwgMC4wMDYyNSwgMCwgLTAuMDEyNSwgLTAuMDE4NzUsIC0wLjAyMjUsIC0wLjAzMTI1IiwgXAotICAgICAgICAgICIwLjAyMzc1LCAwLjAxMjUsIDAuMDA2MjUsIC0wLjAwNjI1LCAtMC4wMTI1LCAtMC4wMTYyNSwgLTAuMDI1IiwgXAotICAgICAgICAgICIwLjAzLCAwLjAxODc1LCAwLjAwNjI1LCAwLCAtMC4wMDYyNSwgLTAuMDEsIC0wLjAxODc1IiwgXAotICAgICAgICAgICIwLjAzLCAwLjAyNSwgMC4wMTI1LCAwLjAwNjI1LCAwLCAtMC4wMSwgLTAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4wNCwgMC4wMjg3NSwgMC4wMTYyNSwgMC4wMSwgMC4wMDM3NSwgLTAuMDA2MjUsIC0wLjAwODc1IiwgXAotICAgICAgICAgICIwLjA0MjUsIDAuMDMxMjUsIDAuMDI1LCAwLjAxMjUsIDAuMDA2MjUsIDAuMDAyNSwgLTAuMDA2MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFEpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4yMDIxNDE7Ci0gICAgZnVuY3Rpb24gOiAiTjMwIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBub25fdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJpc2luZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTU2NDEsIDAuMTI2MTI1LCAwLjIyMDYyMSwgMC4zNzgyNTcsIDAuNTM2MDIxLCAwLjkwNDIxNSwgMS4xMTQ0OCIsIFwKLSAgICAgICAgICAiMC4xMjM4NTgsIDAuMTM0MzQ2LCAwLjIyODg0MSwgMC4zODY0NzUsIDAuNTQ0MjM0LCAwLjkxMjQyMiwgMS4xMjI3IiwgXAotICAgICAgICAgICIwLjEzMzA5OSwgMC4xNDM1OTEsIDAuMjM4MDg2LCAwLjM5NTcxMywgMC41NTM0NjUsIDAuOTIxNjQxLCAxLjEzMjAxIiwgXAotICAgICAgICAgICIwLjE0MDUzNiwgMC4xNTEwMTgsIDAuMjQ1NTExLCAwLjQwMzE0NCwgMC41NjA4OSwgMC45MjkwNDksIDEuMTM5MzkiLCBcCi0gICAgICAgICAgIjAuMTQ2NDQxLCAwLjE1NjkyNiwgMC4yNTE0MzUsIDAuNDA5MDQ3LCAwLjU2Njc4OCwgMC45MzQ5NCwgMS4xNDUyNyIsIFwKLSAgICAgICAgICAiMC4xNTQzMzEsIDAuMTY0ODQ3LCAwLjI1OTMwMywgMC40MTY5ODMsIDAuNTc0Njk0LCAwLjk0MjgwNywgMS4xNTMxNiIsIFwKLSAgICAgICAgICAiMC4xNTk5NDksIDAuMTcwNDg4LCAwLjI2NDk0MywgMC40MjI2MjgsIDAuNTgwMzI0LCAwLjk0ODM2OSwgMS4xNTg3NiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTY3MzcsIDAuMTM4OTE0LCAwLjMzNzU5LCAwLjY3MDA1MiwgMS4wMDIwOCwgMS43NzY4OSwgMi4yMjAwOSIsIFwKLSAgICAgICAgICAiMC4xMTY4NzksIDAuMTM4OTE0LCAwLjMzNzU1MSwgMC42NzAwNjgsIDEuMDAyMSwgMS43NzY4NCwgMi4yMjAyMyIsIFwKLSAgICAgICAgICAiMC4xMTY4NzcsIDAuMTM4OTE3LCAwLjMzNzU2NSwgMC42NzAwODgsIDEuMDAyMTIsIDEuNzc2NTYsIDIuMjE4NzYiLCBcCi0gICAgICAgICAgIjAuMTE2ODgzLCAwLjEzODkxLCAwLjMzODIwOCwgMC42NzA2NCwgMS4wMDIwOCwgMS43NzYyMiwgMi4yMjI1NCIsIFwKLSAgICAgICAgICAiMC4xMTY4MTgsIDAuMTM4ODkzLCAwLjMzNzY3OSwgMC42Njk5NjMsIDEuMDAyMjMsIDEuNzc3MDEsIDIuMjIyNDEiLCBcCi0gICAgICAgICAgIjAuMTE2Nzk4LCAwLjEzODc4NCwgMC4zMzgxMjIsIDAuNjcwNTYyLCAxLjAwMjM2LCAxLjc3ODk5LCAyLjIyMDI1IiwgXAotICAgICAgICAgICIwLjExNjcyNiwgMC4xMzg3MDksIDAuMzM4MTY2LCAwLjY3MDU5MSwgMS4wMDIyMSwgMS43Nzc0NSwgMi4yMjA0MiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMjIxODUsIDAuMTMxODM5LCAwLjIxODY4NiwgMC4zNjMzNywgMC41MDgwNjUsIDAuODQ1NjIsIDEuMDM4NTEiLCBcCi0gICAgICAgICAgIjAuMTMwNDQxLCAwLjE0MDA5OSwgMC4yMjY5NSwgMC4zNzE2NDcsIDAuNTE2MzIsIDAuODUzOTI3LCAxLjA0Njc4IiwgXAotICAgICAgICAgICIwLjEzOTcxOCwgMC4xNDkzNzQsIDAuMjM2MjI5LCAwLjM4MDkxMywgMC41MjU2MDIsIDAuODYzMTQ0LCAxLjA1NjAzIiwgXAotICAgICAgICAgICIwLjE0NzI2LCAwLjE1NjkxNCwgMC4yNDM3NzUsIDAuMzg4NDU2LCAwLjUzMzEyNiwgMC44NzA2ODEsIDEuMDYzNTkiLCBcCi0gICAgICAgICAgIjAuMTUzMzM0LCAwLjE2Mjk5NCwgMC4yNDk4NDIsIDAuMzk0NTI3LCAwLjUzOTIwMiwgMC44NzY3NjgsIDEuMDY5NiIsIFwKLSAgICAgICAgICAiMC4xNjEyNjEsIDAuMTcwOTI0LCAwLjI1Nzc1NywgMC40MDI0NTcsIDAuNTQ3MTYzLCAwLjg4NDY1NywgMS4wNzc1NyIsIFwKLSAgICAgICAgICAiMC4xNjcxMjYsIDAuMTc2ODY4LCAwLjI2MzYwNSwgMC40MDgzNjUsIDAuNTUzMDI2LCAwLjg5MDU0MSwgMS4wODM1MSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDQ2MSwgMC4xMjQ0NzMsIDAuMzAyMSwgMC41OTkxMTIsIDAuODk1ODgxLCAxLjU4OTU2LCAxLjk4NTcxIiwgXAotICAgICAgICAgICIwLjEwNDcwMSwgMC4xMjQ0NzMsIDAuMzAyNTU4LCAwLjU5ODgwNCwgMC44OTU3NTgsIDEuNTkxODksIDEuOTg1NzUiLCBcCi0gICAgICAgICAgIjAuMTA0ODE4LCAwLjEyNDQ2OCwgMC4zMDI1NzQsIDAuNjAwMDMxLCAwLjg5NTk4MywgMS41OTE2NSwgMS45ODU3NCIsIFwKLSAgICAgICAgICAiMC4xMDQ4MTcsIDAuMTI0NDY5LCAwLjMwMjYwNywgMC41OTg5NTUsIDAuODk3NTQ4LCAxLjU4OTYsIDEuOTg2MDgiLCBcCi0gICAgICAgICAgIjAuMTA0ODE0LCAwLjEyNDQ5OCwgMC4zMDI1OTEsIDAuNTk4OTk0LCAwLjg5NTkzOCwgMS41OTAwMywgMS45ODgxNSIsIFwKLSAgICAgICAgICAiMC4xMDQ4MTEsIDAuMTI0MjI2LCAwLjMwMjU4MSwgMC42MDAxNTUsIDAuODk1ODk2LCAxLjU4OTQ2LCAxLjk4NjA2IiwgXAotICAgICAgICAgICIwLjEwNDU5NywgMC4xMjQyMTUsIDAuMzAyNTI1LCAwLjU5OTg1MywgMC44OTY5NzgsIDEuNTg4NDcsIDEuOTg2MDciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA3MjczLCAwLjAwNzI2NiwgMC4wMDcyMjksIDAuMDA3MjA5LCAwLjAwNzIwMiwgMC4wMDcxOTQsIDAuMDA3MTkyIiwgXAotICAgICAgICAgICIwLjAwNzI2OCwgMC4wMDcyNjEsIDAuMDA3MjI0LCAwLjAwNzIwMywgMC4wMDcxOTUsIDAuMDA3MTg4LCAwLjAwNzE4NSIsIFwKLSAgICAgICAgICAiMC4wMDczNTIsIDAuMDA3MzQ1LCAwLjAwNzMwOCwgMC4wMDcyODYsIDAuMDA3Mjc4LCAwLjAwNzI2OSwgMC4wMDcyNjYiLCBcCi0gICAgICAgICAgIjAuMDA3NDU4LCAwLjAwNzQ1MiwgMC4wMDc0MTUsIDAuMDA3MzkzLCAwLjAwNzM4NCwgMC4wMDczNzQsIDAuMDA3MzcyIiwgXAotICAgICAgICAgICIwLjAwNzU4NSwgMC4wMDc1ODEsIDAuMDA3NTQ1LCAwLjAwNzUyMiwgMC4wMDc1MTIsIDAuMDA3NTAyLCAwLjAwNzUiLCBcCi0gICAgICAgICAgIjAuMDA3Nzg4LCAwLjAwNzc2MywgMC4wMDc3NDksIDAuMDA3NzA0LCAwLjAwNzY5MywgMC4wMDc2ODIsIDAuMDA3Njc5IiwgXAotICAgICAgICAgICIwLjAwODAwNCwgMC4wMDc5NzIsIDAuMDA3OTY5LCAwLjAwNzkzNywgMC4wMDc4OTUsIDAuMDA3OTE5LCAwLjAwNzkxNiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNzksIDAuMDA3OTAyLCAwLjAwNzkwOSwgMC4wMDc5MTIsIDAuMDA3OTE0LCAwLjAwNzkxNCwgMC4wMDc5MTUiLCBcCi0gICAgICAgICAgIjAuMDA3OTAzLCAwLjAwNzkwNSwgMC4wMDc5MTIsIDAuMDA3OTE2LCAwLjAwNzkxNywgMC4wMDc5MTcsIDAuMDA3OTE4IiwgXAotICAgICAgICAgICIwLjAwODAwMywgMC4wMDgwMDQsIDAuMDA4MDExLCAwLjAwODAxNCwgMC4wMDgwMTUsIDAuMDA4MDE2LCAwLjAwODAxNiIsIFwKLSAgICAgICAgICAiMC4wMDgwOTYsIDAuMDA4MDk3LCAwLjAwODEwMywgMC4wMDgxMDYsIDAuMDA4MTA3LCAwLjAwODEwOCwgMC4wMDgxMDgiLCBcCi0gICAgICAgICAgIjAuMDA4MjQ3LCAwLjAwODI0OCwgMC4wMDgyNTQsIDAuMDA4MjU2LCAwLjAwODI1NywgMC4wMDgyNTcsIDAuMDA4MjU4IiwgXAotICAgICAgICAgICIwLjAwODQ2MSwgMC4wMDg0NjMsIDAuMDA4NDY3LCAwLjAwODQ2OCwgMC4wMDg0NjksIDAuMDA4NDY5LCAwLjAwODQ2OSIsIFwKLSAgICAgICAgICAiMC4wMDg2ODksIDAuMDA4NjY4LCAwLjAwODY5NywgMC4wMDg2NywgMC4wMDg2NzEsIDAuMDA4Njk3LCAwLjAwODY3MSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBERkZSSFFYOCAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoREZGUkhRWDgpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMi4wMzE2NzsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBmZiAoTjMwLFFCSU5UKSB7Ci0gICAgbmV4dF9zdGF0ZSA6ICJEIjsKLSAgICBjbG9ja2VkX29uIDogIkNLIjsKLSAgICBjbGVhciA6ICIoIVJOKSI7Ci0gIH0KLSAgcGluKENLKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2NTY0OTY7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjU2NDk2OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDY1NjQ2MTsKLSAgICBjbG9jayA6IHRydWU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA0Njk2LCAwLjAwNDY4NiwgMC4wMDQ3NDgsIDAuMDA0ODQ4LCAwLjAwNDk0OCwgMC4wMDUxNDksIDAuMDA1MzUyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDEwMDY1LCAwLjAxMDA2MywgMC4wMTAxMjQsIDAuMDEwMjExLCAwLjAxMDMyLCAwLjAxMDU0NCwgMC4wMTA3NzEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFEJlJOIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9STl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDkzOTM2LCAwLjEwMjEzMSwgMC4xMTE2NjMsIDAuMTE5NDU2LCAwLjEyNTY0NSwgMC4xMzM4ODMsIDAuMTQwMTg3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wNzc3MTQsIDAuMDg1NzM4LCAwLjA5NTIzLCAwLjEwMjQ1MiwgMC4xMDgyMjEsIDAuMTE1NzA4LCAwLjEyMTIwNyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwODI0NzQ4OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDgyMjk4MTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA4MjQ3NDg7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzMjk1LCAwLjAwMzI1NiwgMC4wMDMyODksIDAuMDAzMzM1LCAwLjAwMzQxOSwgMC4wMDM2MTEsIDAuMDAzNzY4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA0NjAzLCAwLjAwNDU3OSwgMC4wMDQ2MDMsIDAuMDA0NjU5LCAwLjAwNDc0NSwgMC4wMDQ5MzQsIDAuMDA1MDkzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlJOIjsKLSAgICAgIHNkZl9jb25kIDogIlJOID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAwNjI1LCAtMC4wMDEyNSwgLTAuMDAxMjUsIDAuMDA1LCAwLjAwNSwgMC4wMDg3NSwgMC4wMTEyNSIsIFwKLSAgICAgICAgICAiLTAuMDE3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAsIDAsIDAuMDAzNzUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTI1LCAtMC4wMTI1LCAtMC4wMDYyNSwgLTAuMDA2MjUsIC0wLjAwMjUsIDAiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDEyNSwgLTAuMDA2MjUsIC0wLjAwODc1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDg3NSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjAzMzc1LCAtMC4wMjg3NSwgLTAuMDIyNSwgLTAuMDIyNSwgLTAuMDE2MjUsIC0wLjAxMjUsIC0wLjAxIiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzEyNSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDI1LCAtMC4wMjEyNSwgLTAuMDE4NzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyNSwgMC4wMywgMC4wNDI1LCAwLjA0ODc1LCAwLjA1NSwgMC4wNTg3NSwgMC4wNjEyNSIsIFwKLSAgICAgICAgICAiMC4wMiwgMC4wMjUsIDAuMDM3NSwgMC4wNDM3NSwgMC4wNSwgMC4wNTM3NSwgMC4wNjI1IiwgXAotICAgICAgICAgICIwLjAyLCAwLjAyNSwgMC4wMzEyNSwgMC4wNDM3NSwgMC4wNDM3NSwgMC4wNTM3NSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiMC4wMiwgMC4wMjUsIDAuMDMxMjUsIDAuMDM3NSwgMC4wNDM3NSwgMC4wNTM3NSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiMC4wMiwgMC4wMjUsIDAuMDMxMjUsIDAuMDM3NSwgMC4wNDM3NSwgMC4wNTM3NSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiMC4wMTYyNSwgMC4wMjc1LCAwLjAzMzc1LCAwLjA0LCAwLjA0NjI1LCAwLjA1LCAwLjA1ODc1IiwgXAotICAgICAgICAgICIwLjAyLCAwLjAyNSwgMC4wMzc1LCAwLjA0Mzc1LCAwLjA0Mzc1LCAwLjA1Mzc1LCAwLjA1NjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJSTiI7Ci0gICAgICBzZGZfY29uZCA6ICJSTiA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzEyNSwgMC4wMiwgMC4wMTM3NSwgMC4wMTM3NSwgMC4wMDc1LCAwLjAwMzc1LCAwLjAwMTI1IiwgXAotICAgICAgICAgICIwLjAzNjI1LCAwLjAyNSwgMC4wMTg3NSwgMC4wMTg3NSwgMC4wMTI1LCAwLjAwODc1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICIwLjA0MjUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMjUsIDAuMDE4NzUsIDAuMDE1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMDQ4NzUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMzEyNSwgMC4wMjUsIDAuMDIxMjUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMDU1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDMxMjUsIDAuMDI3NSwgMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMDU4NzUsIDAuMDUzNzUsIDAuMDQ3NSwgMC4wNDEyNSwgMC4wMzUsIDAuMDMxMjUsIDAuMDI4NzUiLCBcCi0gICAgICAgICAgIjAuMDY3NSwgMC4wNTYyNSwgMC4wNSwgMC4wNDM3NSwgMC4wNDM3NSwgMC4wNCwgMC4wMzEyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjI1LCAtMC4wMDUsIC0wLjAxMTI1LCAtMC4wMTc1LCAtMC4wMjM3NSwgLTAuMDMzNzUsIC0wLjA0MjUiLCBcCi0gICAgICAgICAgIjAuMDExMjUsIDAuMDA2MjUsIC0wLjAwNjI1LCAtMC4wMTI1LCAtMC4wMTg3NSwgLTAuMDI4NzUsIC0wLjAzNzUiLCBcCi0gICAgICAgICAgIjAuMDE3NSwgMC4wMTI1LCAwLCAtMC4wMDYyNSwgLTAuMDEyNSwgLTAuMDIyNSwgLTAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMDIzNzUsIDAuMDEyNSwgMC4wMDYyNSwgLTAuMDA2MjUsIC0wLjAxMjUsIC0wLjAxNjI1LCAtMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMDMsIDAuMDE4NzUsIDAuMDA2MjUsIDAsIC0wLjAwNjI1LCAtMC4wMTYyNSwgLTAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMDMzNzUsIDAuMDIyNSwgMC4wMTYyNSwgMC4wMDM3NSwgLTAuMDAyNSwgLTAuMDEyNSwgLTAuMDE1IiwgXAotICAgICAgICAgICIwLjAzNjI1LCAwLjAyNSwgMC4wMTg3NSwgMC4wMDYyNSwgMCwgLTAuMDAzNzUsIC0wLjAxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFEpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMi42NjkzMjsKLSAgICBmdW5jdGlvbiA6ICJOMzAiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5vbl91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcmlzaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk2MDg1LCAwLjEyNzQ3MiwgMC4xNTUwMjUsIDAuMTc0NTQsIDAuMjA1NzIyLCAwLjIzMzAwNSwgMC4yNzE5NSIsIFwKLSAgICAgICAgICAiMC4xMDQzMSwgMC4xMzU2OTIsIDAuMTYzMjU3LCAwLjE4Mjc3LCAwLjIxMzk1OSwgMC4yNDEyMzEsIDAuMjgwMTc0IiwgXAotICAgICAgICAgICIwLjExMzcwNiwgMC4xNDUwODYsIDAuMTcyNjQ2LCAwLjE5MjE2LCAwLjIyMzM0OCwgMC4yNTA2MjMsIDAuMjg5NTY4IiwgXAotICAgICAgICAgICIwLjEyMTIzNSwgMC4xNTI2MTgsIDAuMTgwMTc4LCAwLjE5OTY5NCwgMC4yMzA4NjcsIDAuMjU4MTUyLCAwLjI5NzA5NyIsIFwKLSAgICAgICAgICAiMC4xMjcyOTksIDAuMTU4Njg5LCAwLjE4NjI0MywgMC4yMDU3NjUsIDAuMjM2OTQyLCAwLjI2NDIyMywgMC4zMDMxNjgiLCBcCi0gICAgICAgICAgIjAuMTM1MjkyLCAwLjE2NjY2MSwgMC4xOTQyMywgMC4yMTM3NDgsIDAuMjQ0OTE3LCAwLjI3MjIwMywgMC4zMTExNDkiLCBcCi0gICAgICAgICAgIjAuMTQxNDgsIDAuMTcyODYsIDAuMjAwNDI3LCAwLjIxOTg5MywgMC4yNTEwNjgsIDAuMjc4NDA2LCAwLjMxNzM0NyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyMDU4NywgMC4wNzQ3NTYsIDAuMTMwNTQzLCAwLjE3MDk0MiwgMC4yMzYwOTEsIDAuMjkzNDgxLCAwLjM3NTUyMyIsIFwKLSAgICAgICAgICAiMC4wMjA1NzYsIDAuMDc0OCwgMC4xMzA1MSwgMC4xNzA5NDQsIDAuMjM2MDQxLCAwLjI5MzQ3NywgMC4zNzU1MjYiLCBcCi0gICAgICAgICAgIjAuMDIwNTk5LCAwLjA3NDgwMywgMC4xMzA0ODksIDAuMTcwOTQ1LCAwLjIzNjA0MywgMC4yOTM0ODIsIDAuMzc1NTE4IiwgXAotICAgICAgICAgICIwLjAyMDU5LCAwLjA3NDc5OSwgMC4xMzA1NzUsIDAuMTcwOTUyLCAwLjIzNjE2MiwgMC4yOTM0NzUsIDAuMzc1NTE3IiwgXAotICAgICAgICAgICIwLjAyMDU5OSwgMC4wNzQ4MDIsIDAuMTMwNDY4LCAwLjE3MDk1MywgMC4yMzYwMjYsIDAuMjkzNDc3LCAwLjM3NTUyIiwgXAotICAgICAgICAgICIwLjAyMDYxMSwgMC4wNzQ3NDgsIDAuMTMwNTYyLCAwLjE3MDk3OCwgMC4yMzYxMTUsIDAuMjkzNDY2LCAwLjM3NTQ4OSIsIFwKLSAgICAgICAgICAiMC4wMjA2MDIsIDAuMDc0NzU2LCAwLjEzMDU4MiwgMC4xNzA5NTMsIDAuMjM2MDQ1LCAwLjI5MzQ2NiwgMC4zNzU0ODciKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTM5MzYsIDAuMTIzOTczLCAwLjE1MjI0OCwgMC4xNzI0LCAwLjIwNDYxNywgMC4yMzI3OTYsIDAuMjczMDYzIiwgXAotICAgICAgICAgICIwLjEwMjEzMSwgMC4xMzIxNjYsIDAuMTYwNDM4LCAwLjE4MDU4OCwgMC4yMTI4MDYsIDAuMjQwOTk0LCAwLjI4MTI0MSIsIFwKLSAgICAgICAgICAiMC4xMTE2NjMsIDAuMTQxNjk5LCAwLjE2OTk3MiwgMC4xOTAxMjMsIDAuMjIyMzQsIDAuMjUwNTIzLCAwLjI5MDgwMiIsIFwKLSAgICAgICAgICAiMC4xMTk0NTYsIDAuMTQ5NDk2LCAwLjE3Nzc2NSwgMC4xOTc5MTUsIDAuMjMwMTM1LCAwLjI1ODMxNiwgMC4yOTg1NjkiLCBcCi0gICAgICAgICAgIjAuMTI1NjQ1LCAwLjE1NTY4NCwgMC4xODM5NTIsIDAuMjA0MTAyLCAwLjIzNjMxNiwgMC4yNjQ1MDIsIDAuMzA0NzgxIiwgXAotICAgICAgICAgICIwLjEzMzg4MywgMC4xNjM5MiwgMC4xOTIxODYsIDAuMjEyMzM3LCAwLjI0NDU1NiwgMC4yNzI3MzgsIDAuMzEyOTkyIiwgXAotICAgICAgICAgICIwLjE0MDE4NywgMC4xNzAyMjIsIDAuMTk4NTAyLCAwLjIxODY1NiwgMC4yNTA4MjgsIDAuMjc5MDE0LCAwLjMxOTMxMSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxNzI5NywgMC4wNzMwMTgsIDAuMTMwNzIxLCAwLjE3MjMxMSwgMC4yMzk0MzksIDAuMjk3NzE0LCAwLjM4MTg1NCIsIFwKLSAgICAgICAgICAiMC4wMTcyOTgsIDAuMDczMDIyLCAwLjEzMDc3MywgMC4xNzIzMDgsIDAuMjM5NDI1LCAwLjI5ODAyOCwgMC4zODE3NTgiLCBcCi0gICAgICAgICAgIjAuMDE3Mjk2LCAwLjA3MzAxNywgMC4xMzA3MjYsIDAuMTcyMzExLCAwLjIzOTQzLCAwLjI5ODAwOSwgMC4zODE4NzUiLCBcCi0gICAgICAgICAgIjAuMDE3MjgsIDAuMDczMDI0LCAwLjEzMDcyOCwgMC4xNzIzMTEsIDAuMjM5NDQ0LCAwLjI5ODAwMiwgMC4zODE3NjgiLCBcCi0gICAgICAgICAgIjAuMDE3MywgMC4wNzMwMjgsIDAuMTMwNzI4LCAwLjE3MjMxMiwgMC4yMzk0MDgsIDAuMjk4MDA5LCAwLjM4MTg3NiIsIFwKLSAgICAgICAgICAiMC4wMTczMzksIDAuMDczMDIyLCAwLjEzMDc3MiwgMC4xNzIzNzEsIDAuMjM5NDMzLCAwLjI5ODAwNCwgMC4zODE3NjkiLCBcCi0gICAgICAgICAgIjAuMDE3MjkzLCAwLjA3Mjk3NywgMC4xMzA3MTUsIDAuMTcyMjk0LCAwLjIzOTM1OCwgMC4yOTc5OTcsIDAuMzgxODQyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiBjbGVhcjsKLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjY2MTEsIDAuMDU2NTU1LCAwLjA4NDg5MiwgMC4xMDUwNjMsIDAuMTM3MjU4LCAwLjE2NTQxOSwgMC4yMDU2NTEiLCBcCi0gICAgICAgICAgIjAuMDM0ODEzLCAwLjA2NDcyMywgMC4wOTMwODcsIDAuMTEzMjU3LCAwLjE0NTQ1OCwgMC4xNzM2MiwgMC4yMTM4NTciLCBcCi0gICAgICAgICAgIjAuMDQzMDI0LCAwLjA3MzEyOCwgMC4xMDE1MjYsIDAuMTIxNjkyLCAwLjE1Mzg5LCAwLjE4MjA1MiwgMC4yMjIyOTQiLCBcCi0gICAgICAgICAgIjAuMDQ4ODcyLCAwLjA3OTM5MSwgMC4xMDc3NjgsIDAuMTI3OTI1LCAwLjE2MDExNiwgMC4xODgyNzUsIDAuMjI4NTE3IiwgXAotICAgICAgICAgICIwLjA1MzYwMiwgMC4wODQ0MzksIDAuMTEyODIxLCAwLjEzMjk2NywgMC4xNjUxNDksIDAuMTkzMzA2LCAwLjIzMzU0MyIsIFwKLSAgICAgICAgICAiMC4wNTk2MDEsIDAuMDkwOTU0LCAwLjExOTM1LCAwLjEzOTUwOSwgMC4xNzE3MDgsIDAuMTk5ODYyLCAwLjI0MDA5MSIsIFwKLSAgICAgICAgICAiMC4wNjM5MiwgMC4wOTU3OTksIDAuMTI0MDM3LCAwLjE0NDE1NywgMC4xNzYzNDgsIDAuMjA0NDk1LCAwLjI0NDczMSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxNjIxMSwgMC4wNzI3NTMsIDAuMTMwNTcxLCAwLjE3MjEyMiwgMC4yMzg4NjksIDAuMjk3NDMzLCAwLjM4MTI1NSIsIFwKLSAgICAgICAgICAiMC4wMTYzNywgMC4wNzI3NzIsIDAuMTMwNTc5LCAwLjE3MjExNSwgMC4yMzg4MjgsIDAuMjk3NDkxLCAwLjM4MTI0OSIsIFwKLSAgICAgICAgICAiMC4wMTc3MjMsIDAuMDczMTQ1LCAwLjEzMDcxNiwgMC4xNzIxNTIsIDAuMjM4ODk4LCAwLjI5NzQ5OSwgMC4zODEyNDUiLCBcCi0gICAgICAgICAgIjAuMDE4OTksIDAuMDczNjgxLCAwLjEzMDk2NywgMC4xNzIzMjcsIDAuMjM4OTEsIDAuMjk3NTI1LCAwLjM4MTI2MSIsIFwKLSAgICAgICAgICAiMC4wMjAxLCAwLjA3NDIzNSwgMC4xMzEyNDgsIDAuMTcyNTA0LCAwLjIzOTEwOSwgMC4yOTc1ODksIDAuMzgxMzAxIiwgXAotICAgICAgICAgICIwLjAyMTc0NCwgMC4wNzUwMDYsIDAuMTMxNjIxLCAwLjE3MjgxMywgMC4yMzkyNTYsIDAuMjk3Njc3LCAwLjM4MTMzOSIsIFwKLSAgICAgICAgICAiMC4wMjI5ODQsIDAuMDc1Nzk0LCAwLjEzMjA2NCwgMC4xNzMwMDksIDAuMjM5MzE0LCAwLjI5NzY0LCAwLjM4MTU2MyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyMjQ5MiwgMC4wMjI2MjQsIDAuMDIyNzA3LCAwLjAyMjczOCwgMC4wMjI3NjQsIDAuMDIyNzgxLCAwLjAyMjc5NSIsIFwKLSAgICAgICAgICAiMC4wMjI0NiwgMC4wMjI2MDEsIDAuMDIyNjgzLCAwLjAyMjcxNCwgMC4wMjI3NDMsIDAuMDIyNzYsIDAuMDIyNzc3IiwgXAotICAgICAgICAgICIwLjAyMjU0NiwgMC4wMjI2NjgsIDAuMDIyNzUsIDAuMDIyNzgsIDAuMDIyODA3LCAwLjAyMjgyMiwgMC4wMjI4NDEiLCBcCi0gICAgICAgICAgIjAuMDIyNjU0LCAwLjAyMjc4NiwgMC4wMjI4NjgsIDAuMDIyODk4LCAwLjAyMjkyNiwgMC4wMjI5NDEsIDAuMDIyOTU1IiwgXAotICAgICAgICAgICIwLjAyMjc0NiwgMC4wMjI4ODUsIDAuMDIyOTY4LCAwLjAyMjk5OSwgMC4wMjMwMzQsIDAuMDIzMDQ1LCAwLjAyMzA2IiwgXAotICAgICAgICAgICIwLjAyMjk5NywgMC4wMjMxMjMsIDAuMDIzMTk3LCAwLjAyMzI0NywgMC4wMjMyNzIsIDAuMDIzMjg3LCAwLjAyMzMxIiwgXAotICAgICAgICAgICIwLjAyMzE5NCwgMC4wMjMzMTgsIDAuMDIzNCwgMC4wMjM0NDcsIDAuMDIzNDc2LCAwLjAyMzQ1NywgMC4wMjM0ODQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyMTc3MywgMC4wMjIyMiwgMC4wMjIzNTMsIDAuMDIyMzk5LCAwLjAyMjQ0NCwgMC4wMjI0NjUsIDAuMDIyNDg3IiwgXAotICAgICAgICAgICIwLjAyMTc2OSwgMC4wMjIyMTcsIDAuMDIyMzUxLCAwLjAyMjM5NywgMC4wMjI0NDEsIDAuMDIyNDYyLCAwLjAyMjQ4MyIsIFwKLSAgICAgICAgICAiMC4wMjE4NjQsIDAuMDIyMzEzLCAwLjAyMjQ0NSwgMC4wMjI0OTMsIDAuMDIyNTM2LCAwLjAyMjU1OCwgMC4wMjI1NzgiLCBcCi0gICAgICAgICAgIjAuMDIxOTY3LCAwLjAyMjQxNiwgMC4wMjI1NDgsIDAuMDIyNTk1LCAwLjAyMjYzOSwgMC4wMjI2NiwgMC4wMjI2ODEiLCBcCi0gICAgICAgICAgIjAuMDIyMTIxLCAwLjAyMjU1OSwgMC4wMjI2OTIsIDAuMDIyNzM3LCAwLjAyMjc4MSwgMC4wMjI4MDIsIDAuMDIyODI0IiwgXAotICAgICAgICAgICIwLjAyMjM4NywgMC4wMjI4NDcsIDAuMDIyOTYyLCAwLjAyMzAyOCwgMC4wMjMwNzEsIDAuMDIzMDk1LCAwLjAyMzExNCIsIFwKLSAgICAgICAgICAiMC4wMjI1ODYsIDAuMDIzMDM2LCAwLjAyMzE3LCAwLjAyMzIxNiwgMC4wMjMyOCwgMC4wMjMzMDIsIDAuMDIzMzAyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUk4iOwotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDI0MTkxLCAwLjAyNDY4OCwgMC4wMjQ3ODIsIDAuMDI0ODExLCAwLjAyNDgzOSwgMC4wMjQ4NTQsIDAuMDI0ODY2IiwgXAotICAgICAgICAgICIwLjAyNDA3LCAwLjAyNDUzNiwgMC4wMjQ2NTksIDAuMDI0NzAyLCAwLjAyNDczOSwgMC4wMjQ3NjEsIDAuMDI0Nzc5IiwgXAotICAgICAgICAgICIwLjAyNDI3MSwgMC4wMjQ2MDgsIDAuMDI0NzQzLCAwLjAyNDc5OSwgMC4wMjQ4NDcsIDAuMDI0ODc0LCAwLjAyNDg5OSIsIFwKLSAgICAgICAgICAiMC4wMjQ2NjEsIDAuMDI0ODk0LCAwLjAyNTAxOCwgMC4wMjUwNzIsIDAuMDI1MTI0LCAwLjAyNTE1NCwgMC4wMjUxODMiLCBcCi0gICAgICAgICAgIjAuMDI1MTM3LCAwLjAyNTIwOSwgMC4wMjUzMzMsIDAuMDI1Mzg4LCAwLjAyNTQ0MywgMC4wMjU0NzgsIDAuMDI1NTA5IiwgXAotICAgICAgICAgICIwLjAyNTk2MiwgMC4wMjU4OTIsIDAuMDI1OTk2LCAwLjAyNjAzNiwgMC4wMjYwODgsIDAuMDI2MTI4LCAwLjAyNjE1NyIsIFwKLSAgICAgICAgICAiMC4wMjY4NzksIDAuMDI2NjEyLCAwLjAyNjY4NywgMC4wMjY3MzMsIDAuMDI2NzgyLCAwLjAyNjgxOCwgMC4wMjY4NDgiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfcG93ZXIoc2NhbGFyKSB7Ci0gICAgICAgIHZhbHVlcygiMCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUk4pICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMzYwNzU1OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMzI4NDI3OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMzYwNzU1OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTk5NCwgMC4wMDE5OTIsIDAuMDAxOTkyLCAwLjAwMTk5MiwgMC4wMDE5OTEsIDAuMDAxOTksIDAuMDAxOTkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDIwNzQsIDAuMDAyMDIzLCAwLjAwMjAxMSwgMC4wMDIwMDgsIDAuMDAyMDA4LCAwLjAwMjAwMywgMC4wMDIwMDUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUk4iOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFEIjsKLSAgICAgIHNkZl9jb25kIDogIkQgPT0gMSdiMCI7Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wNjUzNTcsIDAuMDcxOTUzLCAwLjA3ODQ5MywgMC4wODM3MjQsIDAuMDg4MTYsIDAuMDkzODg3LCAwLjA5ODAwNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJlY292ZXJ5X3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiRCI7Ci0gICAgICBzZGZfY29uZCA6ICJEID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHJlY292ZXJ5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMjUsIC0wLjAzLCAtMC4wNDI1LCAtMC4wNDg3NSwgLTAuMDU1LCAtMC4wNTg3NSwgLTAuMDY3NSIsIFwKLSAgICAgICAgICAiLTAuMDI2MjUsIC0wLjAzMTI1LCAtMC4wNDM3NSwgLTAuMDUsIC0wLjA1NjI1LCAtMC4wNjYyNSwgLTAuMDY4NzUiLCBcCi0gICAgICAgICAgIi0wLjAyNjI1LCAtMC4wMzEyNSwgLTAuMDQzNzUsIC0wLjA1LCAtMC4wNTYyNSwgLTAuMDY2MjUsIC0wLjA2ODc1IiwgXAotICAgICAgICAgICItMC4wMiwgLTAuMDI1LCAtMC4wMzc1LCAtMC4wNDM3NSwgLTAuMDUsIC0wLjA2LCAtMC4wNjg3NSIsIFwKLSAgICAgICAgICAiLTAuMDA3NSwgLTAuMDE4NzUsIC0wLjAzMTI1LCAtMC4wMzc1LCAtMC4wNDM3NSwgLTAuMDUzNzUsIC0wLjA2MjUiLCBcCi0gICAgICAgICAgIjAuMDA4NzUsIC0wLjAwMjUsIC0wLjAxNSwgLTAuMDIxMjUsIC0wLjAzMzc1LCAtMC4wMzc1LCAtMC4wNDYyNSIsIFwKLSAgICAgICAgICAiMC4wMjM3NSwgMC4wMTI1LCAwLCAtMC4wMDYyNSwgLTAuMDE4NzUsIC0wLjAyODc1LCAtMC4wMzEyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJlbW92YWxfcmlzaW5nOwotICAgICAgd2hlbiA6ICJEIjsKLSAgICAgIHNkZl9jb25kIDogIkQgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQocmVtb3ZhbF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzc1LCAwLjA0ODc1LCAwLjA1NSwgMC4wNjEyNSwgMC4wNjc1LCAwLjA3NzUsIDAuMDgiLCBcCi0gICAgICAgICAgIjAuMDQ1LCAwLjA1LCAwLjA2MjUsIDAuMDY4NzUsIDAuMDc1LCAwLjA3ODc1LCAwLjA4NzUiLCBcCi0gICAgICAgICAgIjAuMDQ1LCAwLjA1NjI1LCAwLjA2MjUsIDAuMDY4NzUsIDAuMDc1LCAwLjA4NSwgMC4wODc1IiwgXAotICAgICAgICAgICIwLjA1MTI1LCAwLjA1NjI1LCAwLjA2ODc1LCAwLjA3NSwgMC4wODEyNSwgMC4wODUsIDAuMDkzNzUiLCBcCi0gICAgICAgICAgIjAuMDUxMjUsIDAuMDYyNSwgMC4wNjg3NSwgMC4wNzUsIDAuMDgxMjUsIDAuMDkxMjUsIDAuMDkzNzUiLCBcCi0gICAgICAgICAgIjAuMDUzNzUsIDAuMDY1LCAwLjA3MTI1LCAwLjA3NzUsIDAuMDgzNzUsIDAuMDkzNzUsIDAuMDk2MjUiLCBcCi0gICAgICAgICAgIjAuMDU3NSwgMC4wNjg3NSwgMC4wNzUsIDAuMDgxMjUsIDAuMDg3NSwgMC4wOTEyNSwgMC4xIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogREZGU1JYNCAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChERkZTUlg0KSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDEuODQyODQ7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgZmYgKE4zNSxRQklOVCkgewotICAgIG5leHRfc3RhdGUgOiAiRCI7Ci0gICAgY2xvY2tlZF9vbiA6ICJDSyI7Ci0gICAgY2xlYXIgOiAiKCFSTikiOwotICAgIHByZXNldCA6ICIoIVNOKSI7Ci0gICAgY2xlYXJfcHJlc2V0X3ZhcjEgOiBIOwotICAgIGNsZWFyX3ByZXNldF92YXIyIDogTDsKLSAgfQotICBwaW4oQ0spICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY2NzYxNTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2Njc2MTU7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjY3NjAxOwotICAgIGNsb2NrIDogdHJ1ZTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDQxMjcsIDAuMDA0MTIsIDAuMDA0MTc2LCAwLjAwNDI3OCwgMC4wMDQzODIsIDAuMDA0NjAxLCAwLjAwNDgwMiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwOTkxOSwgMC4wMDk5MDIsIDAuMDA5OTcsIDAuMDEwMDczLCAwLjAxMDE5NywgMC4wMTA0NTksIDAuMDEwNTU0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRCZSTiZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fUk5fRVFfMV9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMTE3NDQ3LCAwLjEyNTY2LCAwLjEzNTExNiwgMC4xNDI4OTUsIDAuMTQ5MDI3LCAwLjE1NzA5NSwgMC4xNjMzMyIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDkzODY0LCAwLjEwMTk5MiwgMC4xMTEzNCwgMC4xMTg1NSwgMC4xMjQxNzcsIDAuMTMxNzMyLCAwLjEzNzI4Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihEKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2MjQ0MDQ7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjIyODQ2OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDYyNDQwNDsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDQyOTUsIDAuMDA0MjY0LCAwLjAwNDI4MSwgMC4wMDQzMjcsIDAuMDA0Mzg4LCAwLjAwNDUxNSwgMC4wMDQ2NDkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDQxNTYsIDAuMDA0MTM0LCAwLjAwNDE0NCwgMC4wMDQxNzksIDAuMDA0MjM3LCAwLjAwNDM0NSwgMC4wMDQ0NjciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiUk4mU04iOwotICAgICAgc2RmX2NvbmQgOiAiUk5fRVFfMV9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAxMjUsIC0wLjAwNzUsIC0wLjAwMTI1LCAtMC4wMDEyNSwgMC4wMDUsIDAuMDA4NzUsIDAuMDExMjUiLCBcCi0gICAgICAgICAgIi0wLjAxNzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAtMC4wMDYyNSwgMCwgMC4wMDM3NSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMTI1LCAtMC4wMDYyNSwgLTAuMDAyNSwgMCIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAxMjUsIC0wLjAwODc1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDE4NzUsIC0wLjAxNSwgLTAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDQsIC0wLjAzNSwgLTAuMDI4NzUsIC0wLjAyMjUsIC0wLjAyMjUsIC0wLjAxODc1LCAtMC4wMTYyNSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAyMTI1LCAtMC4wMTg3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEyNSwgMC4wMjM3NSwgMC4wMywgMC4wMzYyNSwgMC4wNDI1LCAwLjA0NjI1LCAwLjA1NSIsIFwKLSAgICAgICAgICAiMC4wMDc1LCAwLjAxODc1LCAwLjAyNSwgMC4wMzEyNSwgMC4wMzc1LCAwLjA0MTI1LCAwLjA1IiwgXAotICAgICAgICAgICIwLjAwNzUsIDAuMDEyNSwgMC4wMTg3NSwgMC4wMjUsIDAuMDMxMjUsIDAuMDQxMjUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMDAxMjUsIDAuMDEyNSwgMC4wMTg3NSwgMC4wMjUsIDAuMDMxMjUsIDAuMDM1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjAwMTI1LCAwLjAwNjI1LCAwLjAxODc1LCAwLjAyNSwgMC4wMjUsIDAuMDM1LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjAwMjUsIDAuMDAyNSwgMC4wMTUsIDAuMDIxMjUsIDAuMDI3NSwgMC4wMzEyNSwgMC4wNCIsIFwKLSAgICAgICAgICAiLTAuMDA1LCAwLjAwNjI1LCAwLjAxMjUsIDAuMDE4NzUsIDAuMDI1LCAwLjAyODc1LCAwLjAzNzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlJOJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIlJOX0VRXzFfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzUsIDAuMDYzNzUsIDAuMDUxMjUsIDAuMDQ1LCAwLjAzODc1LCAwLjAzNSwgMC4wMjYyNSIsIFwKLSAgICAgICAgICAiMC4wOCwgMC4wNjg3NSwgMC4wNTYyNSwgMC4wNSwgMC4wNDM3NSwgMC4wNCwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4wODYyNSwgMC4wNzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNSwgMC4wNDYyNSwgMC4wMzc1IiwgXAotICAgICAgICAgICIwLjA5MjUsIDAuMDgxMjUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNTI1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjA5ODc1LCAwLjA4NzUsIDAuMDc1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDU4NzUsIDAuMDUiLCBcCi0gICAgICAgICAgIjAuMTAyNSwgMC4wOTEyNSwgMC4wODUsIDAuMDc4NzUsIDAuMDcyNSwgMC4wNjI1LCAwLjA2IiwgXAotICAgICAgICAgICIwLjExMTI1LCAwLjEsIDAuMDg3NSwgMC4wODEyNSwgMC4wNzUsIDAuMDY1LCAwLjA2MjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDM3NSwgMC4wMzg3NSwgMC4wMjYyNSwgMC4wMiwgMC4wMTM3NSwgMC4wMDM3NSwgLTAuMDA1IiwgXAotICAgICAgICAgICIwLjA0ODc1LCAwLjA0Mzc1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMTg3NSwgMC4wMDg3NSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiMC4wNTUsIDAuMDUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMjUsIDAuMDE1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMDYxMjUsIDAuMDU2MjUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMjEyNSwgMC4wMTI1IiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDU2MjUsIDAuMDUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMjc1LCAwLjAxODc1IiwgXAotICAgICAgICAgICIwLjA3MTI1LCAwLjA2NjI1LCAwLjA1Mzc1LCAwLjA0NzUsIDAuMDQxMjUsIDAuMDMxMjUsIDAuMDIyNSIsIFwKLSAgICAgICAgICAiMC4wOCwgMC4wNjg3NSwgMC4wNTYyNSwgMC4wNSwgMC4wNDM3NSwgMC4wMzM3NSwgMC4wMzEyNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAxLjM0NjIyOwotICAgIGZ1bmN0aW9uIDogIk4zNSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3NlbnNlIDogbm9uX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiByaXNpbmdfZWRnZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTI5NDMsIDAuMTQ5MzYzLCAwLjIwNDUxNywgMC4yNDM1NDEsIDAuMzA2Mjg4LCAwLjM2MTIwNywgMC40NDAwOTkiLCBcCi0gICAgICAgICAgIjAuMTAxMDc2LCAwLjE1NzU1OCwgMC4yMTI2NDUsIDAuMjUxOTA3LCAwLjMxNDU4MiwgMC4zNjk3NDYsIDAuNDQ4MjM3IiwgXAotICAgICAgICAgICIwLjExMDQ4MywgMC4xNjY5NjQsIDAuMjIxOTg1LCAwLjI2MTE5MiwgMC4zMjM5ODksIDAuMzc4ODQ1LCAwLjQ1NzYwMiIsIFwKLSAgICAgICAgICAiMC4xMTgxNiwgMC4xNzQ2MTQsIDAuMjI5ODExLCAwLjI2ODkwMiwgMC4zMzE2NjUsIDAuMzg2ODIxLCAwLjQ2NTI2NSIsIFwKLSAgICAgICAgICAiMC4xMjQ0MDMsIDAuMTgwODM2LCAwLjIzNTg3MSwgMC4yNzUwMDMsIDAuMzM4MDQ0LCAwLjM5Mjg2MiwgMC40NzEyMDgiLCBcCi0gICAgICAgICAgIjAuMTMyODA5LCAwLjE4OTI3MywgMC4yNDQzNjgsIDAuMjgzNTMxLCAwLjM0NjI5MSwgMC40MDEyODksIDAuNDc5OTAxIiwgXAotICAgICAgICAgICIwLjEzODk1LCAwLjE5NTQwNSwgMC4yNTAzMDMsIDAuMjg5NzU0LCAwLjM1MjUyOSwgMC40MDc1MzIsIDAuNDg1ODg5Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDI3MDk0LCAwLjEzODU1MSwgMC4yNTMzMzcsIDAuMzM2MDkxLCAwLjQ2ODA3NCwgMC41ODM3OTEsIDAuNzUwNzU0IiwgXAotICAgICAgICAgICIwLjAyNzM1NiwgMC4xMzg0NzYsIDAuMjUzNCwgMC4zMzU5MDcsIDAuNDY4MTE1LCAwLjU4Mzg4MywgMC43NTA4NzEiLCBcCi0gICAgICAgICAgIjAuMDI3Mjk0LCAwLjEzODQ4NCwgMC4yNTMzNDUsIDAuMzM1OTk0LCAwLjQ2ODA5NSwgMC41ODM0MDYsIDAuNzUwOTE3IiwgXAotICAgICAgICAgICIwLjAyNzI1NiwgMC4xMzgxODMsIDAuMjUzNDExLCAwLjMzNTcxNiwgMC40NjgwOTIsIDAuNTg0NjUyLCAwLjc1MDkxMSIsIFwKLSAgICAgICAgICAiMC4wMjcyLCAwLjEzODQ5OCwgMC4yNTMzOTQsIDAuMzM2MTIsIDAuNDY4NjE2LCAwLjU4NDUwMywgMC43NDk4ODciLCBcCi0gICAgICAgICAgIjAuMDI3MDA1LCAwLjEzODczOCwgMC4yNTM0MDIsIDAuMzM1Njk1LCAwLjQ2ODIwMiwgMC41ODQ1NTgsIDAuNzUwODM4IiwgXAotICAgICAgICAgICIwLjAyNzE5NiwgMC4xMzg2OTcsIDAuMjUzMjg5LCAwLjMzNTkwNCwgMC40NjgwOTksIDAuNTg0NjAxLCAwLjc1MDU5MSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5OTQ1NCwgMC4xNTUxNDksIDAuMjA5MzMyLCAwLjI0ODA4MywgMC4zMTAxMTQsIDAuMzY0MjI1LCAwLjQ0MTU1NyIsIFwKLSAgICAgICAgICAiMC4xMDc2NTUsIDAuMTYzMzYsIDAuMjE3NjAzLCAwLjI1NjMyOCwgMC4zMTgxMjgsIDAuMzcyNDQzLCAwLjQ0OTczNyIsIFwKLSAgICAgICAgICAiMC4xMTcxMjEsIDAuMTcyODIxLCAwLjIyNzAwOCwgMC4yNjU3MzQsIDAuMzI3NzY4LCAwLjM4MTg2OSwgMC40NTkyMjIiLCBcCi0gICAgICAgICAgIjAuMTI0ODg2LCAwLjE4MDU5LCAwLjIzNDg1NCwgMC4yNzM1NDksIDAuMzM1NDE4LCAwLjM4OTY2MywgMC40NjY5NjEiLCBcCi0gICAgICAgICAgIjAuMTMxMDI1LCAwLjE4NjczLCAwLjI0MDkxOSwgMC4yNzk2NjIsIDAuMzQxNjcyLCAwLjM5NTc4MiwgMC40NzMxMzYiLCBcCi0gICAgICAgICAgIjAuMTM5MTI5LCAwLjE5NDgxOSwgMC4yNDkwMDEsIDAuMjg3NzYyLCAwLjM0OTc1LCAwLjQwMzg1MSwgMC40ODEyMDkiLCBcCi0gICAgICAgICAgIjAuMTQ1MzUzLCAwLjIwMTA3MiwgMC4yNTUyOTksIDAuMjkzODU5LCAwLjM1NTg2MSwgMC40MDk4MTgsIDAuNDg3NDIxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDI1OTUzLCAwLjEzNTIyNSwgMC4yNDU5MDIsIDAuMzI2MDkzLCAwLjQ1NDg5NywgMC41Njc1NTUsIDAuNzI4NjM2IiwgXAotICAgICAgICAgICIwLjAyNTk4LCAwLjEzNTIyNCwgMC4yNDU5MTMsIDAuMzI2NjAyLCAwLjQ1NDg5NSwgMC41Njc1NTIsIDAuNzI4NjMzIiwgXAotICAgICAgICAgICIwLjAyNTg1NCwgMC4xMzUyMTksIDAuMjQ1NzY0LCAwLjMyNjA2MiwgMC40NTQ4NjEsIDAuNTY3NTU3LCAwLjcyODYzNSIsIFwKLSAgICAgICAgICAiMC4wMjU5NCwgMC4xMzUyMTYsIDAuMjQ1OTMsIDAuMzI2NDk1LCAwLjQ1NDgyNCwgMC41Njc1NTIsIDAuNzI4NjI4IiwgXAotICAgICAgICAgICIwLjAyNTg5MywgMC4xMzUxNzIsIDAuMjQ1ODAxLCAwLjMyNjA2MywgMC40NTQ4NDksIDAuNTY3NTU3LCAwLjcyODYzNSIsIFwKLSAgICAgICAgICAiMC4wMjU4MjgsIDAuMTM1MjIzLCAwLjI0NTc3NiwgMC4zMjU5NjcsIDAuNDU0ODU2LCAwLjU2NzU2MywgMC43Mjg2MzciLCBcCi0gICAgICAgICAgIjAuMDI1ODc1LCAwLjEzNTIzMSwgMC4yNDY1OTEsIDAuMzI1ODU1LCAwLjQ1NDc1NywgMC41NjcyNDUsIDAuNzI4NTE1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiBjbGVhcjsKLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMjU4NSwgMC4xODE0ODgsIDAuMjM1NjgzLCAwLjI3NDQ0OSwgMC4zMzYyODksIDAuMzkwMTk1LCAwLjQ2NzkwNiIsIFwKLSAgICAgICAgICAiMC4xMzM3MjksIDAuMTg5Mzk4LCAwLjI0MzY0LCAwLjI4MjUxMywgMC4zNDQzNjUsIDAuMzk4NDQsIDAuNDc1NTY1IiwgXAotICAgICAgICAgICIwLjE0MjAzNSwgMC4xOTc2NzMsIDAuMjUxODg5LCAwLjI5MDY5NSwgMC4zNTI2NTcsIDAuNDA2NTY2LCAwLjQ4NDIwMSIsIFwKLSAgICAgICAgICAiMC4xNDgyMywgMC4yMDM4NjYsIDAuMjU4MDc1LCAwLjI5NjgxNiwgMC4zNTg5NzUsIDAuNDEyOTY5LCAwLjQ5MDI4MiIsIFwKLSAgICAgICAgICAiMC4xNTMyMDksIDAuMjA4ODQ2LCAwLjI2Mjk5NywgMC4zMDE3OTksIDAuMzYzODIxLCAwLjQxNzk0LCAwLjQ5NTM0NiIsIFwKLSAgICAgICAgICAiMC4xNTk1NTksIDAuMjE1MTk0LCAwLjI2OTQxNSwgMC4zMDgwNiwgMC4zNzAxOTgsIDAuNDI0Mjc0LCAwLjUwMTYwMSIsIFwKLSAgICAgICAgICAiMC4xNjQ0MzYsIDAuMjIwMTIzLCAwLjI3NDM0MSwgMC4zMTMwMDUsIDAuMzc0OTk2LCAwLjQyOTE2NCwgMC41MDY2NTciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjYzNzIsIDAuMTM0MTczLCAwLjI0NjIzNCwgMC4zMjY4OTQsIDAuNDU0OTY2LCAwLjU2NzU1OSwgMC43Mjg2MjMiLCBcCi0gICAgICAgICAgIjAuMDI2NDI3LCAwLjEzNTI3NCwgMC4yNDYwMDcsIDAuMzI2NTEzLCAwLjQ1NDc4NSwgMC41Njc1NTksIDAuNzI3ODA4IiwgXAotICAgICAgICAgICIwLjAyNjM2MSwgMC4xMzM5NzQsIDAuMjQ2MzQ2LCAwLjMyNjkyNywgMC40NTQ3ODcsIDAuNTY3NjE0LCAwLjcyODY3MyIsIFwKLSAgICAgICAgICAiMC4wMjYzNzQsIDAuMTMzOTgsIDAuMjQ2NzYxLCAwLjMyNjU3OCwgMC40NTQ3ODksIDAuNTY3NTU4LCAwLjcyODYyMyIsIFwKLSAgICAgICAgICAiMC4wMjY0MzksIDAuMTM1MjIsIDAuMjQ2MjM0LCAwLjMyNjg4MywgMC40NTQ3NzcsIDAuNTY3NTU2LCAwLjcyODY4OCIsIFwKLSAgICAgICAgICAiMC4wMjYzLCAwLjEzNTI5NCwgMC4yNDY1ODksIDAuMzI2NzQ1LCAwLjQ1NDc4NCwgMC41Njc1MjcsIDAuNzI4NjIzIiwgXAotICAgICAgICAgICIwLjAyNjQwMSwgMC4xMzUyMjksIDAuMjQ2NTgzLCAwLjMyNjYyNiwgMC40NTQ2NzksIDAuNTY3NTE2LCAwLjcyODY4NCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcHJlc2V0OwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4NjEwOCwgMC4xNDIyNzksIDAuMTk3NDk3LCAwLjIzNjY3NywgMC4yOTk1NDksIDAuMzU0NTQzLCAwLjQzMjk2MiIsIFwKLSAgICAgICAgICAiMC4wOTQwOTUsIDAuMTUwMywgMC4yMDUzNzgsIDAuMjQ0NjIsIDAuMzA3NTkzLCAwLjM2MjQ0NSwgMC40NDEwNjIiLCBcCi0gICAgICAgICAgIjAuMTAzOTk4LCAwLjE2MDIwNCwgMC4yMTUyNzksIDAuMjU0MzM2LCAwLjMxNzUyNCwgMC4zNzIxOTYsIDAuNDUwOTY2IiwgXAotICAgICAgICAgICIwLjExMzU5MiwgMC4xNjk4MDksIDAuMjI0ODc2LCAwLjI2NDE0MywgMC4zMjY3NywgMC4zODIxNDQsIDAuNDYwNjM3IiwgXAotICAgICAgICAgICIwLjEyMjA5NSwgMC4xNzgzMTIsIDAuMjMzNDMyLCAwLjI3MjU0MSwgMC4zMzU1OTcsIDAuMzkwNDQ5LCAwLjQ2ODc0NCIsIFwKLSAgICAgICAgICAiMC4xMzM0MDIsIDAuMTg5NjcsIDAuMjQ0NjcxLCAwLjI4MzgxOSwgMC4zNDY5MDQsIDAuNDAxODAyLCAwLjQ4MDM0MSIsIFwKLSAgICAgICAgICAiMC4xNDE1NSwgMC4xOTc4NzcsIDAuMjUzMDQ1LCAwLjI5MjMyNiwgMC4zNTUyMDMsIDAuNDEwMDA0LCAwLjQ4ODQ1NSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyNjYwOCwgMC4xMzg0ODQsIDAuMjUzNjUxLCAwLjMzNjQ0MiwgMC40Njg5MDUsIDAuNTg0OTA0LCAwLjc1MDc4NSIsIFwKLSAgICAgICAgICAiMC4wMjY2MjQsIDAuMTM4NjUsIDAuMjUzNjYsIDAuMzM1OTgxLCAwLjQ2ODkyLCAwLjU4NDg5NSwgMC43NTA3MjQiLCBcCi0gICAgICAgICAgIjAuMDI2NjY1LCAwLjEzODQwMSwgMC4yNTM2NzQsIDAuMzM2NDU2LCAwLjQ2ODkxNiwgMC41ODQ4NjgsIDAuNzUwODA5IiwgXAotICAgICAgICAgICIwLjAyNjQyMiwgMC4xMzg0MzYsIDAuMjUzNjc2LCAwLjMzNjI2OSwgMC40Njg5MzUsIDAuNTg0ODg1LCAwLjc1MDg1NCIsIFwKLSAgICAgICAgICAiMC4wMjY2MzksIDAuMTM4NTczLCAwLjI1MzY2NCwgMC4zMzY0MjIsIDAuNDY4OTIsIDAuNTg0OTEsIDAuNzUwNzc1IiwgXAotICAgICAgICAgICIwLjAyNjg4OSwgMC4xMzg1ODMsIDAuMjUzNjUyLCAwLjMzNjQ1OCwgMC40Njg5MiwgMC41ODQ5MDUsIDAuNzUwNzc3IiwgXAotICAgICAgICAgICIwLjAyNzE5NywgMC4xMzg0ODcsIDAuMjUzNjY2LCAwLjMzNjQxNCwgMC40Njg4ODEsIDAuNTg0ODc1LCAwLjc1MDczMyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExMzAxMSwgMC4xNjg2NTMsIDAuMjIyODU5LCAwLjI2MTYyOSwgMC4zMjM0NjgsIDAuMzc3NzcsIDAuNDU1MTE5IiwgXAotICAgICAgICAgICIwLjExOTc5OSwgMC4xNzU0MzgsIDAuMjI5NjQ0LCAwLjI2ODQ1MywgMC4zMzA0MywgMC4zODQzMjgsIDAuNDYxOTU2IiwgXAotICAgICAgICAgICIwLjEyNzQ0OSwgMC4xODMwODgsIDAuMjM3MjksIDAuMjc2MDg3LCAwLjMzODA4OCwgMC4zOTE5OTMsIDAuNDY5NTkzIiwgXAotICAgICAgICAgICIwLjEzNDg1NywgMC4xOTA0OTQsIDAuMjQ0NzA2LCAwLjI4MzUwNiwgMC4zNDU0OCwgMC4zOTkyNywgMC40NzcxNDEiLCBcCi0gICAgICAgICAgIjAuMTQyMDc5LCAwLjE5NzczLCAwLjI1MTkzNSwgMC4yOTA3MzMsIDAuMzUyNzM2LCAwLjQwNjY1MSwgMC40ODM2OTQiLCBcCi0gICAgICAgICAgIjAuMTUyNDk4LCAwLjIwODE4NCwgMC4yNjIzODIsIDAuMzAxMTMxLCAwLjM2MzE4NywgMC40MTczMTMsIDAuNDk0ODE5IiwgXAotICAgICAgICAgICIwLjE2MDgyLCAwLjIxNjU2LCAwLjI3MDczNiwgMC4zMDk0MTcsIDAuMzcxNTEyLCAwLjQyNTYzNiwgMC41MDI5NTgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjYzOTEsIDAuMTM1MjAyLCAwLjI0NjI3LCAwLjMyNjgwNiwgMC40NTQ4NzMsIDAuNTY3NTU3LCAwLjcyODYzMiIsIFwKLSAgICAgICAgICAiMC4wMjYyNjksIDAuMTMzOTc5LCAwLjI0NjI5MywgMC4zMjY1ODgsIDAuNDU0NzksIDAuNTY3NjA5LCAwLjcyODYwOCIsIFwKLSAgICAgICAgICAiMC4wMjYyODMsIDAuMTM0NzE3LCAwLjI0NTg5NiwgMC4zMjY4NjgsIDAuNDU0Nzc5LCAwLjU2NzYsIDAuNzI4NjE5IiwgXAotICAgICAgICAgICIwLjAyNjM5MywgMC4xMzQ1MzEsIDAuMjQ2NzM0LCAwLjMyNjUzOSwgMC40NTQ3NjQsIDAuNTY3NTc2LCAwLjcyNzI2NiIsIFwKLSAgICAgICAgICAiMC4wMjYyMDIsIDAuMTM0NzEsIDAuMjQ2MTk1LCAwLjMyNjMzNSwgMC40NTQ3NTEsIDAuNTY3NTk2LCAwLjcyNzQ1NSIsIFwKLSAgICAgICAgICAiMC4wMjYzNCwgMC4xMzUxNDMsIDAuMjQ2MDMzLCAwLjMyNjc4LCAwLjQ1NTAyOCwgMC41Njc1NzEsIDAuNzI4NzA4IiwgXAotICAgICAgICAgICIwLjAyNjUzLCAwLjEzNTI5MSwgMC4yNDU5MDYsIDAuMzI2Nzc0LCAwLjQ1NDY3NSwgMC41Njc1MDcsIDAuNzI4NjE4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEwMjY4LCAwLjAxMDM5OCwgMC4wMTA0MjIsIDAuMDEwNDI5LCAwLjAxMDQzNiwgMC4wMTA0MzksIDAuMDEwNDQzIiwgXAotICAgICAgICAgICIwLjAxMDI1OSwgMC4wMTAzOSwgMC4wMTA0MTMsIDAuMDEwNDIxLCAwLjAxMDQyOCwgMC4wMTA0MywgMC4wMTA0MzMiLCBcCi0gICAgICAgICAgIjAuMDEwMjk2LCAwLjAxMDQyOCwgMC4wMTA0NTEsIDAuMDEwNDU4LCAwLjAxMDQ2NSwgMC4wMTA0NjgsIDAuMDEwNDcxIiwgXAotICAgICAgICAgICIwLjAxMDM0NSwgMC4wMTA0NzUsIDAuMDEwNDk5LCAwLjAxMDUwNiwgMC4wMTA1MTMsIDAuMDEwNTIsIDAuMDEwNTE5IiwgXAotICAgICAgICAgICIwLjAxMDM5OCwgMC4wMTA1MzIsIDAuMDEwNTU2LCAwLjAxMDU2MiwgMC4wMTA1NjksIDAuMDEwNTcyLCAwLjAxMDU3NiIsIFwKLSAgICAgICAgICAiMC4wMTA0OSwgMC4wMTA2NDIsIDAuMDEwNjY3LCAwLjAxMDY3NCwgMC4wMTA2OCwgMC4wMTA2NzEsIDAuMDEwNjg3IiwgXAotICAgICAgICAgICIwLjAxMDYwMSwgMC4wMTA3MzgsIDAuMDEwNzYyLCAwLjAxMDc2MiwgMC4wMTA3NjgsIDAuMDEwNzcsIDAuMDEwNzgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMDMyNSwgMC4wMTA0MzgsIDAuMDEwNDU4LCAwLjAxMDQ2NiwgMC4wMTA0NzEsIDAuMDEwNDc0LCAwLjAxMDQ3NyIsIFwKLSAgICAgICAgICAiMC4wMTAzMTgsIDAuMDEwNDMzLCAwLjAxMDQ1NCwgMC4wMTA0NjEsIDAuMDEwNDY3LCAwLjAxMDQ3MSwgMC4wMTA0NzIiLCBcCi0gICAgICAgICAgIjAuMDEwMzYxLCAwLjAxMDQ3NywgMC4wMTA0OTgsIDAuMDEwNTA0LCAwLjAxMDUxMSwgMC4wMTA1MTMsIDAuMDEwNTE2IiwgXAotICAgICAgICAgICIwLjAxMDQyMSwgMC4wMTA1MzYsIDAuMDEwNTU3LCAwLjAxMDU2MywgMC4wMTA1NjksIDAuMDEwNTcyLCAwLjAxMDU3NSIsIFwKLSAgICAgICAgICAiMC4wMTA0NjgsIDAuMDEwNTksIDAuMDEwNjE0LCAwLjAxMDYyLCAwLjAxMDYzLCAwLjAxMDYzMSwgMC4wMTA2MzIiLCBcCi0gICAgICAgICAgIjAuMDEwNTk3LCAwLjAxMDcxNywgMC4wMTA3MzksIDAuMDEwNzQ1LCAwLjAxMDc1MSwgMC4wMTA3NTUsIDAuMDEwNzU3IiwgXAotICAgICAgICAgICIwLjAxMDY4NywgMC4wMTA4MDMsIDAuMDEwODMzLCAwLjAxMDg0MSwgMC4wMTA4NDUsIDAuMDEwODQ3LCAwLjAxMDg0MiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMTg2OSwgMC4wMTE5NywgMC4wMTE5OTEsIDAuMDExOTk4LCAwLjAxMjAxLCAwLjAxMjAwNiwgMC4wMTIwMDgiLCBcCi0gICAgICAgICAgIjAuMDExODYyLCAwLjAxMTk2NywgMC4wMTE5ODksIDAuMDExOTk1LCAwLjAxMjAwMSwgMC4wMTIwMDMsIDAuMDEyMDA2IiwgXAotICAgICAgICAgICIwLjAxMTkwMiwgMC4wMTIwMDIsIDAuMDEyMDIyLCAwLjAxMjAyOSwgMC4wMTIwMzQsIDAuMDEyMDM2LCAwLjAxMjAzOSIsIFwKLSAgICAgICAgICAiMC4wMTE5MzksIDAuMDEyMDQxLCAwLjAxMjA2MiwgMC4wMTIwNjgsIDAuMDEyMDczLCAwLjAxMjA3OCwgMC4wMTIwODIiLCBcCi0gICAgICAgICAgIjAuMDExOTk4LCAwLjAxMjA5LCAwLjAxMjExNywgMC4wMTIxMjQsIDAuMDEyMTM1LCAwLjAxMjEzOCwgMC4wMTIxMzQiLCBcCi0gICAgICAgICAgIjAuMDEyMDg5LCAwLjAxMjE4NywgMC4wMTIyMDgsIDAuMDEyMjE0LCAwLjAxMjIyNSwgMC4wMTIyMjYsIDAuMDEyMjI0IiwgXAotICAgICAgICAgICIwLjAxMjE3NCwgMC4wMTIyODMsIDAuMDEyMzAzLCAwLjAxMjMxMSwgMC4wMTIzMTUsIDAuMDEyMzE3LCAwLjAxMjMyIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3Bvd2VyKHNjYWxhcikgewotICAgICAgICB2YWx1ZXMoIjAiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTE1LCAwLjAxMTYyNCwgMC4wMTE2NDMsIDAuMDExNjQ3LCAwLjAxMTY1MiwgMC4wMTE2NDQsIDAuMDExNjcxIiwgXAotICAgICAgICAgICIwLjAxMTQ4MywgMC4wMTE2MDksIDAuMDExNjI5LCAwLjAxMTYzMywgMC4wMTE2MzgsIDAuMDExNjI2LCAwLjAxMTY0MyIsIFwKLSAgICAgICAgICAiMC4wMTE0OTUsIDAuMDExNjIyLCAwLjAxMTY0MSwgMC4wMTE2NDcsIDAuMDExNjUyLCAwLjAxMTY2NiwgMC4wMTE2NTYiLCBcCi0gICAgICAgICAgIjAuMDExNTI1LCAwLjAxMTY2MSwgMC4wMTE2ODEsIDAuMDExNjg3LCAwLjAxMTY5MiwgMC4wMTE2ODksIDAuMDExNjk2IiwgXAotICAgICAgICAgICIwLjAxMTU3NCwgMC4wMTE3MTMsIDAuMDExNzM1LCAwLjAxMTc0MSwgMC4wMTE3NDYsIDAuMDExNzQ5LCAwLjAxMTc1MSIsIFwKLSAgICAgICAgICAiMC4wMTE3MTcsIDAuMDExODM3LCAwLjAxMTg1OCwgMC4wMTE4NjQsIDAuMDExODY5LCAwLjAxMTg3MSwgMC4wMTE4NzMiLCBcCi0gICAgICAgICAgIjAuMDExODUzLCAwLjAxMTk2LCAwLjAxMTk4MSwgMC4wMTE5ODgsIDAuMDExOTk2LCAwLjAxMTk5MiwgMC4wMTE5OTIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMDExNSwgMC4wMTAyMTgsIDAuMDEwMjQsIDAuMDEwMjQ2LCAwLjAxMDI1MiwgMC4wMTAyNjUsIDAuMDEwMjY3IiwgXAotICAgICAgICAgICIwLjAxMDA5MiwgMC4wMTAxOTIsIDAuMDEwMjIxLCAwLjAxMDIxOSwgMC4wMTAyMzMsIDAuMDEwMjI4LCAwLjAxMDIzIiwgXAotICAgICAgICAgICIwLjAxMDA4MiwgMC4wMTAxODIsIDAuMDEwMjA0LCAwLjAxMDIxLCAwLjAxMDIxNSwgMC4wMTAyMTgsIDAuMDEwMjIxIiwgXAotICAgICAgICAgICIwLjAxMDA4NSwgMC4wMTAxODUsIDAuMDEwMjA3LCAwLjAxMDIxMywgMC4wMTAyMjYsIDAuMDEwMjIyLCAwLjAxMDIyNSIsIFwKLSAgICAgICAgICAiMC4wMTAwOTYsIDAuMDEwMTk4LCAwLjAxMDIyMSwgMC4wMTAyMjgsIDAuMDEwMjMzLCAwLjAxMDIzNiwgMC4wMTAyMzkiLCBcCi0gICAgICAgICAgIjAuMDEwMTQ4LCAwLjAxMDI1LCAwLjAxMDI3NCwgMC4wMTAyODEsIDAuMDEwMjk0LCAwLjAxMDI5OCwgMC4wMTAyOTMiLCBcCi0gICAgICAgICAgIjAuMDEwMjI1LCAwLjAxMDMyMiwgMC4wMTAzNDUsIDAuMDEwMzU0LCAwLjAxMDM1OSwgMC4wMTAzNjIsIDAuMDEwMzY1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihRTikgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAxLjM1NDMxOwotICAgIGZ1bmN0aW9uIDogIlFCSU5UIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBub25fdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJpc2luZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExNzQ0NywgMC4xNzI1ODUsIDAuMjI3NTA0LCAwLjI2Njc1MSwgMC4zMjk1NzQsIDAuMzg0NTI4LCAwLjQ2MzA0OSIsIFwKLSAgICAgICAgICAiMC4xMjU2NiwgMC4xODA3OTQsIDAuMjM1NzE4LCAwLjI3NDk2MSwgMC4zMzc3NDYsIDAuMzkyNzM3LCAwLjQ3MTI0NyIsIFwKLSAgICAgICAgICAiMC4xMzUxMTYsIDAuMTkwMjUzLCAwLjI0NTE3MiwgMC4yODQ0MTYsIDAuMzQ3MjM5LCAwLjQwMjE5LCAwLjQ4MDcxMyIsIFwKLSAgICAgICAgICAiMC4xNDI4OTUsIDAuMTk4MDI1LCAwLjI1Mjk1MiwgMC4yOTIxOTIsIDAuMzU0OTg4LCAwLjQwOTk2NiwgMC40ODg0NzYiLCBcCi0gICAgICAgICAgIjAuMTQ5MDI3LCAwLjIwNDE1NSwgMC4yNTkwODQsIDAuMjk4MzMsIDAuMzYxMTQ5LCAwLjQxNjEwMiwgMC40OTQ2MjYiLCBcCi0gICAgICAgICAgIjAuMTU3MDk1LCAwLjIxMjIwMywgMC4yNjcxMTQsIDAuMzA2MzYzLCAwLjM2OTE3NiwgMC40MjQxMjYsIDAuNTAyNjUiLCBcCi0gICAgICAgICAgIjAuMTYzMzMsIDAuMjE4NDk0LCAwLjI3MzMzMiwgMC4zMTI1NywgMC4zNzUzODIsIDAuNDMwMzQxLCAwLjUwODk0NCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyNTI0MSwgMC4xMzgxMjEsIDAuMjUzNjM3LCAwLjMzNjY4LCAwLjQ2OTQ0NiwgMC41ODU3ODEsIDAuNzUxNjgiLCBcCi0gICAgICAgICAgIjAuMDI1MjUxLCAwLjEzODEzMiwgMC4yNTM2NDgsIDAuMzM2MzM4LCAwLjQ2OTMyOSwgMC41ODU3ODYsIDAuNzUxNjc4IiwgXAotICAgICAgICAgICIwLjAyNTIzMSwgMC4xMzgxMjMsIDAuMjUzODAyLCAwLjMzNjY3NiwgMC40Njk0NjQsIDAuNTg1NzUsIDAuNzUxNjg0IiwgXAotICAgICAgICAgICIwLjAyNTI0NywgMC4xMzgxMzksIDAuMjUzNjUxLCAwLjMzNjMyNywgMC40Njk0NDgsIDAuNTg1NzgzLCAwLjc1MTY1MyIsIFwKLSAgICAgICAgICAiMC4wMjUyNDUsIDAuMTM3OTg5LCAwLjI1MzgwMywgMC4zMzY2ODEsIDAuNDY5NDcsIDAuNTg1NzQsIDAuNzUxNjg3IiwgXAotICAgICAgICAgICIwLjAyNTI2MiwgMC4xMzgxNDQsIDAuMjUzODA0LCAwLjMzNjIyNSwgMC40Njk0NjMsIDAuNTg1NzE1LCAwLjc1MTY4IiwgXAotICAgICAgICAgICIwLjAyNTMyMywgMC4xMzgxNDUsIDAuMjUzNjA3LCAwLjMzNjQyMSwgMC40Njk0NDgsIDAuNTg0ODAzLCAwLjc1MTU3OCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExMjAzLCAwLjE2NjQ3NywgMC4yMjA1OSwgMC4yNTkyNDMsIDAuMzIxMDk4LCAwLjM3NTIyOCwgMC40NTI2MDQiLCBcCi0gICAgICAgICAgIjAuMTIwMTUsIDAuMTc0NjEyLCAwLjIyODcyNiwgMC4yNjczODEsIDAuMzI5MjM2LCAwLjM4MzM4OSwgMC40NjA3MzgiLCBcCi0gICAgICAgICAgIjAuMTI5NTU0LCAwLjE4NDAxNywgMC4yMzgxMjcsIDAuMjc2NzgzLCAwLjMzODY0MSwgMC4zOTI3MiwgMC40NzAxMyIsIFwKLSAgICAgICAgICAiMC4xMzcyNDMsIDAuMTkxNjg2LCAwLjI0NTgxNCwgMC4yODQ0NTgsIDAuMzQ2MzE1LCAwLjQwMDQ2NywgMC40Nzc4MDIiLCBcCi0gICAgICAgICAgIjAuMTQzNDcsIDAuMTk3OTE0LCAwLjI1MjAyMywgMC4yOTA2ODIsIDAuMzUyNTUsIDAuNDA2NjU2LCAwLjQ4Mzk4OSIsIFwKLSAgICAgICAgICAiMC4xNTE4NTMsIDAuMjA2Mjg1LCAwLjI2MDQsIDAuMjk5MDUzLCAwLjM2MDkxLCAwLjQxNTAxNCwgMC40OTIzOTYiLCBcCi0gICAgICAgICAgIjAuMTU4MDE3LCAwLjIxMjQ1MiwgMC4yNjY1NTksIDAuMzA1MjU0LCAwLjM2NzExMiwgMC40MjEyNDQsIDAuNDk4NTIxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDI0NDI1LCAwLjEzMzg1MywgMC4yNDU4NDMsIDAuMzI2Mzc2LCAwLjQ1NDUyMSwgMC41NjY1MzYsIDAuNzI4OTA0IiwgXAotICAgICAgICAgICIwLjAyNDQxOSwgMC4xMzM4NzksIDAuMjQ1OTU4LCAwLjMyNjI0OSwgMC40NTQ2ODYsIDAuNTY3MDYzLCAwLjcyODk4NSIsIFwKLSAgICAgICAgICAiMC4wMjQ0MTksIDAuMTMzODgsIDAuMjQ2MDYyLCAwLjMyNjI3MywgMC40NTQyMSwgMC41NjY0NDQsIDAuNzI5MDA4IiwgXAotICAgICAgICAgICIwLjAyNDQyNCwgMC4xMzM4MzUsIDAuMjQ1OTY5LCAwLjMyNjA4OCwgMC40NTQyMDMsIDAuNTY3ODc2LCAwLjcyODk5OCIsIFwKLSAgICAgICAgICAiMC4wMjQ0MTYsIDAuMTMzOTExLCAwLjI0NTk0NCwgMC4zMjYzOSwgMC40NTUxNzksIDAuNTY3NzAyLCAwLjcyODIzMiIsIFwKLSAgICAgICAgICAiMC4wMjQ0MTEsIDAuMTMzOTY1LCAwLjI0NTk0LCAwLjMyNjA2MywgMC40NTQ3ODcsIDAuNTY3NzI2LCAwLjcyODg4OCIsIFwKLSAgICAgICAgICAiMC4wMjQzODQsIDAuMTMzODksIDAuMjQ1OTg5LCAwLjMyNjIyNiwgMC40NTQ2MTksIDAuNTY3NzU3LCAwLjcyODY1NyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcHJlc2V0OwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE0MzgyMiwgMC4xOTg5NzYsIDAuMjUzOTA1LCAwLjI5MzE0OSwgMC4zNTU5MjEsIDAuNDEwOTMsIDAuNDg5NDMxIiwgXAotICAgICAgICAgICIwLjE1MTY2NCwgMC4yMDY4MjQsIDAuMjYxNzQ0LCAwLjMwMTAxLCAwLjM2MzgwNiwgMC40MTg3NSwgMC40OTcyNzQiLCBcCi0gICAgICAgICAgIjAuMTYwMDE4LCAwLjIxNTEyMSwgMC4yNzAwNTEsIDAuMzA5MzAxLCAwLjM3MjExNCwgMC40MjcwMDYsIDAuNTA1NjE1IiwgXAotICAgICAgICAgICIwLjE2NjIwMSwgMC4yMjEzNTYsIDAuMjc2MjgyLCAwLjMxNTUyOSwgMC4zNzgzNzMsIDAuNDMzMzAxLCAwLjUxMTgxMSIsIFwKLSAgICAgICAgICAiMC4xNzExNzQsIDAuMjI2MzMxLCAwLjI4MTE4NCwgMC4zMjA0MzIsIDAuMzgzMzIsIDAuNDM4Mjc0LCAwLjUxNjc1NiIsIFwKLSAgICAgICAgICAiMC4xNzc1NzcsIDAuMjMyNjU3LCAwLjI4NzU4MywgMC4zMjY3OTYsIDAuMzg5NjUsIDAuNDQ0NTk0LCAwLjUyMzEwNyIsIFwKLSAgICAgICAgICAiMC4xODIzOTgsIDAuMjM3NTA4LCAwLjI5MjQyNSwgMC4zMzE2NjgsIDAuMzk0NDc3LCAwLjQ0OTQ0LCAwLjUyODAwNSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyNTMyNywgMC4xMzc5OCwgMC4yNTM4MjUsIDAuMzM2NDE3LCAwLjQ2OTYxNSwgMC41ODU3MDQsIDAuNzUxNzAzIiwgXAotICAgICAgICAgICIwLjAyNTMwMSwgMC4xMzc5ODMsIDAuMjUzODE1LCAwLjMzNjQxOCwgMC40Njk2OCwgMC41ODU3NjUsIDAuNzUwODc2IiwgXAotICAgICAgICAgICIwLjAyNTMyLCAwLjEzNzkyNiwgMC4yNTM4MjYsIDAuMzM2NDE5LCAwLjQ2OTY1OSwgMC41ODU3MTIsIDAuNzUxNjY3IiwgXAotICAgICAgICAgICIwLjAyNTMyNywgMC4xMzc5MjYsIDAuMjUzODQ4LCAwLjMzNjQyMSwgMC40Njk2MjYsIDAuNTg1ODMxLCAwLjc1MTY5MyIsIFwKLSAgICAgICAgICAiMC4wMjUzMTgsIDAuMTM4MDIzLCAwLjI1MzgyNiwgMC4zMzYzMTEsIDAuNDY5NjYxLCAwLjU4NTgxNiwgMC43NTE2NDUiLCBcCi0gICAgICAgICAgIjAuMDI1MzE1LCAwLjEzODAyNCwgMC4yNTM4MjQsIDAuMzM2NDg5LCAwLjQ2OTY2NCwgMC41ODU3ODMsIDAuNzUxNjM3IiwgXAotICAgICAgICAgICIwLjAyNTMxMSwgMC4xMzgxMzQsIDAuMjUzODQ3LCAwLjMzNjgxMiwgMC40Njk1OTQsIDAuNTg1ODE4LCAwLjc1MTY4NiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogY2xlYXI7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTMwOTgyLCAwLjE4NjEzNywgMC4yNDEwNjUsIDAuMjgwMzA5LCAwLjM0MzA4MiwgMC4zOTgwODEsIDAuNDc2NTkzIiwgXAotICAgICAgICAgICIwLjEzNzc5NSwgMC4xOTI4ODYsIDAuMjQ3ODE1LCAwLjI4NzA2NCwgMC4zNDk4NzcsIDAuNDA0NzY3LCAwLjQ4MzM0NSIsIFwKLSAgICAgICAgICAiMC4xNDU0NDMsIDAuMjAwNTM5LCAwLjI1NTQ2NiwgMC4yOTQ3MTYsIDAuMzU3NTMyLCAwLjQxMjQyNCwgMC40OTA5OTQiLCBcCi0gICAgICAgICAgIjAuMTUyODQsIDAuMjA3OTQsIDAuMjYyODY5LCAwLjMwMjExOCwgMC4zNjQ5MzEsIDAuNDE5ODMyLCAwLjQ5ODQ3IiwgXAotICAgICAgICAgICIwLjE2MDA4NiwgMC4yMTUxNzQsIDAuMjcwMTAxLCAwLjMwOTM1MiwgMC4zNzIxNjgsIDAuNDI3MDYxLCAwLjUwNTU4OSIsIFwKLSAgICAgICAgICAiMC4xNzA1MjYsIDAuMjI1Njg4LCAwLjI4MDYxNiwgMC4zMTk4NjMsIDAuMzgyNjg1LCAwLjQzNzY0MiwgMC41MTYyMTMiLCBcCi0gICAgICAgICAgIjAuMTc4ODI0LCAwLjIzMzkzMywgMC4yODg4MzcsIDAuMzI4MDcyLCAwLjM5MDg5OCwgMC40NDU4NTQsIDAuNTI0MzY4Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDI1MzMsIDAuMTM4MDE0LCAwLjI1MzY1OSwgMC4zMzYzMTIsIDAuNDY5NjQ5LCAwLjU4NTgwNywgMC43NTE3NzIiLCBcCi0gICAgICAgICAgIjAuMDI1MzAxLCAwLjEzNzkyOCwgMC4yNTM4MTMsIDAuMzM2MTY3LCAwLjQ2OTY1OCwgMC41ODU3NTIsIDAuNzUxNzc5IiwgXAotICAgICAgICAgICIwLjAyNTI5NiwgMC4xMzgxNDMsIDAuMjUzODExLCAwLjMzNjI0MywgMC40Njk2NTcsIDAuNTg1NzQ2LCAwLjc1MTc2NCIsIFwKLSAgICAgICAgICAiMC4wMjUzMTcsIDAuMTM3OTc3LCAwLjI1MzY2MywgMC4zMzY3NjcsIDAuNDY5NjU4LCAwLjU4NTc0OSwgMC43NTA4MjIiLCBcCi0gICAgICAgICAgIjAuMDI1MzMxLCAwLjEzNzk0MywgMC4yNTM4MDksIDAuMzM2NDEyLCAwLjQ2OTY1NiwgMC41ODU3NDIsIDAuNzUwNzc3IiwgXAotICAgICAgICAgICIwLjAyNTMwNiwgMC4xMzgwNzQsIDAuMjUzODI0LCAwLjMzNjUzOCwgMC40Njk2NTUsIDAuNTg1ODMsIDAuNzUxNjU1IiwgXAotICAgICAgICAgICIwLjAyNTM1OSwgMC4xMzgxNTEsIDAuMjUzODI1LCAwLjMzNjczOCwgMC40Njk2NzIsIDAuNTg1ODE2LCAwLjc1MTY3OCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwNTAxMywgMC4xNTk1OTEsIDAuMjEzNzE2LCAwLjI1MjM2NSwgMC4zMTQyMzgsIDAuMzY4Mzg1LCAwLjQ0NTcxNiIsIFwKLSAgICAgICAgICAiMC4xMTMwMjYsIDAuMTY3NTgzLCAwLjIyMTY5NCwgMC4yNjAzNDcsIDAuMzIyMjMyLCAwLjM3NjM0OSwgMC40NTM2OTIiLCBcCi0gICAgICAgICAgIjAuMTIyOTI5LCAwLjE3NzQ4NiwgMC4yMzE1OTcsIDAuMjcwMjA5LCAwLjMzMjA5NiwgMC4zODYxNjEsIDAuNDYzNTkzIiwgXAotICAgICAgICAgICIwLjEzMjUyOCwgMC4xODcwODcsIDAuMjQxMTk3LCAwLjI3OTg1MiwgMC4zNDE2NzIsIDAuMzk1ODQ4LCAwLjQ3MzIxOCIsIFwKLSAgICAgICAgICAiMC4xNDEwMTIsIDAuMTk1NTMyLCAwLjI0OTY0NiwgMC4yODgzMDIsIDAuMzUwMTgzLCAwLjQwNDMwMSwgMC40ODE2NDciLCBcCi0gICAgICAgICAgIjAuMTUyMzM5LCAwLjIwNjc3NiwgMC4yNjA4ODQsIDAuMjk5NTQ0LCAwLjM2MTQyLCAwLjQxNTU0OCwgMC40OTI5MDkiLCBcCi0gICAgICAgICAgIjAuMTYwNTUsIDAuMjE1MDQ0LCAwLjI2OTE2NSwgMC4zMDc4MjIsIDAuMzY5NywgMC40MjM4MDgsIDAuNTAxMTQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjQzODYsIDAuMTMzOTU0LCAwLjI0NjIwMSwgMC4zMjY2ODQsIDAuNDU1NDE3LCAwLjU2ODA0LCAwLjcyODkxNiIsIFwKLSAgICAgICAgICAiMC4wMjQzOCwgMC4xMzM5NjUsIDAuMjQ2MjMxLCAwLjMyNjMzMiwgMC40NTU0MjEsIDAuNTY4MDA0LCAwLjcyODkwMSIsIFwKLSAgICAgICAgICAiMC4wMjQzNzcsIDAuMTMzOTU0LCAwLjI0NjIzNiwgMC4zMjY2NzgsIDAuNDU1NDMxLCAwLjU2ODAwMSwgMC43Mjg5MzEiLCBcCi0gICAgICAgICAgIjAuMDI0Mzg2LCAwLjEzMzk0OCwgMC4yNDYyMiwgMC4zMjY1NTQsIDAuNDU1NDY3LCAwLjU2ODAyLCAwLjcyOSIsIFwKLSAgICAgICAgICAiMC4wMjQzODQsIDAuMTMzOTYxLCAwLjI0NjIwNiwgMC4zMjY2NTksIDAuNDU1NDE2LCAwLjU2ODAxNywgMC43Mjg5NjMiLCBcCi0gICAgICAgICAgIjAuMDI0NDQ3LCAwLjEzMzk4OCwgMC4yNDYxNDQsIDAuMzI2Njk2LCAwLjQ1NTQ0NywgMC41NjgwMTEsIDAuNzI4OTU5IiwgXAotICAgICAgICAgICIwLjAyNDQxNywgMC4xMzM5MDgsIDAuMjQ2MTU5LCAwLjMyNjYyNywgMC40NTUzNzEsIDAuNTY3OTQ4LCAwLjcyODgxMiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMDMyNSwgMC4wMTA0MzgsIDAuMDEwNDU4LCAwLjAxMDQ2NiwgMC4wMTA0NzEsIDAuMDEwNDc0LCAwLjAxMDQ3NyIsIFwKLSAgICAgICAgICAiMC4wMTAzMTgsIDAuMDEwNDMzLCAwLjAxMDQ1NCwgMC4wMTA0NjEsIDAuMDEwNDY3LCAwLjAxMDQ3MSwgMC4wMTA0NzIiLCBcCi0gICAgICAgICAgIjAuMDEwMzYxLCAwLjAxMDQ3NywgMC4wMTA0OTgsIDAuMDEwNTA0LCAwLjAxMDUxMSwgMC4wMTA1MTMsIDAuMDEwNTE2IiwgXAotICAgICAgICAgICIwLjAxMDQyMSwgMC4wMTA1MzYsIDAuMDEwNTU3LCAwLjAxMDU2MywgMC4wMTA1NjksIDAuMDEwNTcyLCAwLjAxMDU3NSIsIFwKLSAgICAgICAgICAiMC4wMTA0NjgsIDAuMDEwNTksIDAuMDEwNjE0LCAwLjAxMDYyLCAwLjAxMDYzLCAwLjAxMDYzMSwgMC4wMTA2MzIiLCBcCi0gICAgICAgICAgIjAuMDEwNTk3LCAwLjAxMDcxNywgMC4wMTA3MzksIDAuMDEwNzQ1LCAwLjAxMDc1MSwgMC4wMTA3NTUsIDAuMDEwNzU3IiwgXAotICAgICAgICAgICIwLjAxMDY4NywgMC4wMTA4MDMsIDAuMDEwODMzLCAwLjAxMDg0MSwgMC4wMTA4NDUsIDAuMDEwODQ3LCAwLjAxMDg0MiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEwMjY4LCAwLjAxMDM5OCwgMC4wMTA0MjIsIDAuMDEwNDI5LCAwLjAxMDQzNiwgMC4wMTA0MzksIDAuMDEwNDQzIiwgXAotICAgICAgICAgICIwLjAxMDI1OSwgMC4wMTAzOSwgMC4wMTA0MTMsIDAuMDEwNDIxLCAwLjAxMDQyOCwgMC4wMTA0MywgMC4wMTA0MzMiLCBcCi0gICAgICAgICAgIjAuMDEwMjk2LCAwLjAxMDQyOCwgMC4wMTA0NTEsIDAuMDEwNDU4LCAwLjAxMDQ2NSwgMC4wMTA0NjgsIDAuMDEwNDcxIiwgXAotICAgICAgICAgICIwLjAxMDM0NSwgMC4wMTA0NzUsIDAuMDEwNDk5LCAwLjAxMDUwNiwgMC4wMTA1MTMsIDAuMDEwNTIsIDAuMDEwNTE5IiwgXAotICAgICAgICAgICIwLjAxMDM5OCwgMC4wMTA1MzIsIDAuMDEwNTU2LCAwLjAxMDU2MiwgMC4wMTA1NjksIDAuMDEwNTcyLCAwLjAxMDU3NiIsIFwKLSAgICAgICAgICAiMC4wMTA0OSwgMC4wMTA2NDIsIDAuMDEwNjY3LCAwLjAxMDY3NCwgMC4wMTA2OCwgMC4wMTA2NzEsIDAuMDEwNjg3IiwgXAotICAgICAgICAgICIwLjAxMDYwMSwgMC4wMTA3MzgsIDAuMDEwNzYyLCAwLjAxMDc2MiwgMC4wMTA3NjgsIDAuMDEwNzcsIDAuMDEwNzgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTE4NjksIDAuMDExOTcsIDAuMDExOTkxLCAwLjAxMTk5OCwgMC4wMTIwMSwgMC4wMTIwMDYsIDAuMDEyMDA4IiwgXAotICAgICAgICAgICIwLjAxMTg2MiwgMC4wMTE5NjcsIDAuMDExOTg5LCAwLjAxMTk5NSwgMC4wMTIwMDEsIDAuMDEyMDAzLCAwLjAxMjAwNiIsIFwKLSAgICAgICAgICAiMC4wMTE5MDIsIDAuMDEyMDAyLCAwLjAxMjAyMiwgMC4wMTIwMjksIDAuMDEyMDM0LCAwLjAxMjAzNiwgMC4wMTIwMzkiLCBcCi0gICAgICAgICAgIjAuMDExOTM5LCAwLjAxMjA0MSwgMC4wMTIwNjIsIDAuMDEyMDY4LCAwLjAxMjA3MywgMC4wMTIwNzgsIDAuMDEyMDgyIiwgXAotICAgICAgICAgICIwLjAxMTk5OCwgMC4wMTIwOSwgMC4wMTIxMTcsIDAuMDEyMTI0LCAwLjAxMjEzNSwgMC4wMTIxMzgsIDAuMDEyMTM0IiwgXAotICAgICAgICAgICIwLjAxMjA4OSwgMC4wMTIxODcsIDAuMDEyMjA4LCAwLjAxMjIxNCwgMC4wMTIyMjUsIDAuMDEyMjI2LCAwLjAxMjIyNCIsIFwKLSAgICAgICAgICAiMC4wMTIxNzQsIDAuMDEyMjgzLCAwLjAxMjMwMywgMC4wMTIzMTEsIDAuMDEyMzE1LCAwLjAxMjMxNywgMC4wMTIzMiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihzY2FsYXIpIHsKLSAgICAgICAgdmFsdWVzKCIwIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiU04iOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEwMTE1LCAwLjAxMDIxOCwgMC4wMTAyNCwgMC4wMTAyNDYsIDAuMDEwMjUyLCAwLjAxMDI2NSwgMC4wMTAyNjciLCBcCi0gICAgICAgICAgIjAuMDEwMDkyLCAwLjAxMDE5MiwgMC4wMTAyMjEsIDAuMDEwMjE5LCAwLjAxMDIzMywgMC4wMTAyMjgsIDAuMDEwMjMiLCBcCi0gICAgICAgICAgIjAuMDEwMDgyLCAwLjAxMDE4MiwgMC4wMTAyMDQsIDAuMDEwMjEsIDAuMDEwMjE1LCAwLjAxMDIxOCwgMC4wMTAyMjEiLCBcCi0gICAgICAgICAgIjAuMDEwMDg1LCAwLjAxMDE4NSwgMC4wMTAyMDcsIDAuMDEwMjEzLCAwLjAxMDIyNiwgMC4wMTAyMjIsIDAuMDEwMjI1IiwgXAotICAgICAgICAgICIwLjAxMDA5NiwgMC4wMTAxOTgsIDAuMDEwMjIxLCAwLjAxMDIyOCwgMC4wMTAyMzMsIDAuMDEwMjM2LCAwLjAxMDIzOSIsIFwKLSAgICAgICAgICAiMC4wMTAxNDgsIDAuMDEwMjUsIDAuMDEwMjc0LCAwLjAxMDI4MSwgMC4wMTAyOTQsIDAuMDEwMjk4LCAwLjAxMDI5MyIsIFwKLSAgICAgICAgICAiMC4wMTAyMjUsIDAuMDEwMzIyLCAwLjAxMDM0NSwgMC4wMTAzNTQsIDAuMDEwMzU5LCAwLjAxMDM2MiwgMC4wMTAzNjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMTUsIDAuMDExNjI0LCAwLjAxMTY0MywgMC4wMTE2NDcsIDAuMDExNjUyLCAwLjAxMTY0NCwgMC4wMTE2NzEiLCBcCi0gICAgICAgICAgIjAuMDExNDgzLCAwLjAxMTYwOSwgMC4wMTE2MjksIDAuMDExNjMzLCAwLjAxMTYzOCwgMC4wMTE2MjYsIDAuMDExNjQzIiwgXAotICAgICAgICAgICIwLjAxMTQ5NSwgMC4wMTE2MjIsIDAuMDExNjQxLCAwLjAxMTY0NywgMC4wMTE2NTIsIDAuMDExNjY2LCAwLjAxMTY1NiIsIFwKLSAgICAgICAgICAiMC4wMTE1MjUsIDAuMDExNjYxLCAwLjAxMTY4MSwgMC4wMTE2ODcsIDAuMDExNjkyLCAwLjAxMTY4OSwgMC4wMTE2OTYiLCBcCi0gICAgICAgICAgIjAuMDExNTc0LCAwLjAxMTcxMywgMC4wMTE3MzUsIDAuMDExNzQxLCAwLjAxMTc0NiwgMC4wMTE3NDksIDAuMDExNzUxIiwgXAotICAgICAgICAgICIwLjAxMTcxNywgMC4wMTE4MzcsIDAuMDExODU4LCAwLjAxMTg2NCwgMC4wMTE4NjksIDAuMDExODcxLCAwLjAxMTg3MyIsIFwKLSAgICAgICAgICAiMC4wMTE4NTMsIDAuMDExOTYsIDAuMDExOTgxLCAwLjAxMTk4OCwgMC4wMTE5OTYsIDAuMDExOTkyLCAwLjAxMTk5MiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUk4pICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYzMzMwNjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MzMzMDY7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjMzMjU0OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDcyMywgMC4wMDA3MiwgMC4wMDA3ODksIDAuMDAwODg3LCAwLjAwMSwgMC4wMDEyMTUsIDAuMDAxNDA4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzMTQ4LCAwLjAwMzE0NywgMC4wMDMyMTMsIDAuMDAzMzA5LCAwLjAwMzQyOCwgMC4wMDM1OCwgMC4wMDM4MzIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUk4iOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFEJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgZmFsbF9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMTQzODIyLCAwLjE1MTY2NCwgMC4xNjAwMTgsIDAuMTY2MjAxLCAwLjE3MTE1LCAwLjE3NzU3NywgMC4xODIzOTgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiByZWNvdmVyeV9yaXNpbmc7Ci0gICAgICB3aGVuIDogIkQmU04iOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8xX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQocmVjb3ZlcnlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDYyNSwgMC4wNTEyNSwgMC4wNDUsIDAuMDM4NzUsIDAuMDMyNSwgMC4wMjI1LCAwLjAyIiwgXAotICAgICAgICAgICIwLjA3Mzc1LCAwLjA2MjUsIDAuMDUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzM3NSwgMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMDgsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNSwgMC4wNSwgMC4wNCwgMC4wMzc1IiwgXAotICAgICAgICAgICIwLjA4NjI1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNTYyNSwgMC4wNTYyNSwgMC4wNDYyNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4wOTI1LCAwLjA4MTI1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDUyNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4wOTYyNSwgMC4wODUsIDAuMDc4NzUsIDAuMDcyNSwgMC4wNjYyNSwgMC4wNTYyNSwgMC4wNTM3NSIsIFwKLSAgICAgICAgICAiMC4wOTg3NSwgMC4wOTM3NSwgMC4wODEyNSwgMC4wNzUsIDAuMDY4NzUsIDAuMDY1LCAwLjA1NjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIHRpbWluZ190eXBlIDogcmVjb3ZlcnlfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRCI7Ci0gICAgICBzZGZfY29uZCA6ICJEID09IDEnYjAiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHJlY292ZXJ5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1NjI1LCAwLjA2NzUsIDAuMDczNzUsIDAuMDgsIDAuMDg2MjUsIDAuMDk2MjUsIDAuMTA1IiwgXAotICAgICAgICAgICIwLjA1MTI1LCAwLjA2MjUsIDAuMDY4NzUsIDAuMDc1LCAwLjA4MTI1LCAwLjA5MTI1LCAwLjEiLCBcCi0gICAgICAgICAgIjAuMDUxMjUsIDAuMDU2MjUsIDAuMDYyNSwgMC4wNjg3NSwgMC4wNzUsIDAuMDg1LCAwLjA5Mzc1IiwgXAotICAgICAgICAgICIwLjA0NSwgMC4wNSwgMC4wNjI1LCAwLjA2ODc1LCAwLjA3NSwgMC4wODUsIDAuMDkzNzUiLCBcCi0gICAgICAgICAgIjAuMDQ1LCAwLjA1LCAwLjA1NjI1LCAwLjA2ODc1LCAwLjA3NSwgMC4wODUsIDAuMDg3NSIsIFwKLSAgICAgICAgICAiMC4wNDEyNSwgMC4wNDYyNSwgMC4wNTg3NSwgMC4wNjUsIDAuMDcxMjUsIDAuMDgxMjUsIDAuMDkiLCBcCi0gICAgICAgICAgIjAuMDM4NzUsIDAuMDUsIDAuMDU2MjUsIDAuMDYyNSwgMC4wNjg3NSwgMC4wNzg3NSwgMC4wODc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogcmVtb3ZhbF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIkQmU04iOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8xX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQocmVtb3ZhbF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDEyNSwgLTAuMDAxMjUsIDAuMDA1LCAwLjAxMTI1LCAwLjAxNzUsIDAuMDIxMjUsIDAuMDMiLCBcCi0gICAgICAgICAgIi0wLjAxNzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLjAwNjI1LCAwLjAwNjI1LCAwLjAxNjI1LCAwLjAxODc1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLCAwLjAxLCAwLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMC4wMDM3NSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAxMjUsIC0wLjAxMjUsIC0wLjAwMjUsIDAiLCBcCi0gICAgICAgICAgIi0wLjA0NjI1LCAtMC4wMzUsIC0wLjAyODc1LCAtMC4wMjI1LCAtMC4wMTYyNSwgLTAuMDA2MjUsIC0wLjAwMzc1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDQzNzUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTUsIC0wLjAwNjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTTikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNTMyMDg7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNTMyMDg7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNTMxNjI7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNTkzLCAwLjAwMDU5MiwgMC4wMDA1OTMsIDAuMDAwNTkzLCAwLjAwMDU5MywgMC4wMDA1OTIsIDAuMDAwNTkyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNTk4LCAwLjAwMDU5NCwgMC4wMDA1OTQsIDAuMDAwNTk0LCAwLjAwMDU5NSwgMC4wMDA1OTUsIDAuMDAwNTk1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRCYhUk4iOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1JOX0VRXzAgPT0gMSdiMSI7Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4xMDUwMTIsIDAuMTEzMDI2LCAwLjEyMjkyOSwgMC4xMzI1MjgsIDAuMTQxMDEyLCAwLjE1MjMzOSwgMC4xNjA1NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJlY292ZXJ5X3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUQmUk4iOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1JOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQocmVjb3ZlcnlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE4NzUsIDAuMDA3NSwgMC4wMDEyNSwgLTAuMDExMjUsIC0wLjAxNzUsIC0wLjAyMTI1LCAtMC4wMyIsIFwKLSAgICAgICAgICAiMC4wMjM3NSwgMC4wMTg3NSwgMC4wMDYyNSwgMCwgLTAuMDA2MjUsIC0wLjAxNjI1LCAtMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMDM2MjUsIDAuMDI1LCAwLjAxMjUsIDAuMDA2MjUsIDAsIC0wLjAxLCAtMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4wNDI1LCAwLjAzMTI1LCAwLjAxODc1LCAwLjAxMjUsIDAuMDA2MjUsIC0wLjAwMzc1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiMC4wNDg3NSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAxODc1LCAwLjAxMjUsIDAuMDAyNSwgMCIsIFwKLSAgICAgICAgICAiMC4wNjUsIDAuMDUzNzUsIDAuMDQxMjUsIDAuMDM1LCAwLjAyODc1LCAwLjAxODc1LCAwLjAxIiwgXAotICAgICAgICAgICIwLjA3Mzc1LCAwLjA2MjUsIDAuMDUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMjc1LCAwLjAxODc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogcmVtb3ZhbF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEJlJOIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9STl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHJlbW92YWxfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE4NzUsIDAuMDIzNzUsIDAuMDM2MjUsIDAuMDQyNSwgMC4wNDg3NSwgMC4wNTg3NSwgMC4wNjEyNSIsIFwKLSAgICAgICAgICAiMC4wMDc1LCAwLjAxODc1LCAwLjAyNSwgMC4wMzc1LCAwLjA0Mzc1LCAwLjA0NzUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIjAuMDAxMjUsIDAuMDEyNSwgMC4wMTg3NSwgMC4wMjUsIDAuMDMxMjUsIDAuMDQxMjUsIDAuMDUiLCBcCi0gICAgICAgICAgIi0wLjAwNSwgMC4wMDYyNSwgMC4wMTI1LCAwLjAxODc1LCAwLjAyNSwgMC4wMzUsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDExMjUsIDAsIDAuMDA2MjUsIDAuMDEyNSwgMC4wMTg3NSwgMC4wMjg3NSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDIxMjUsIC0wLjAxLCAtMC4wMDM3NSwgMC4wMDI1LCAwLjAwODc1LCAwLjAxODc1LCAwLjAyNzUiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAsIDAuMDA2MjUsIDAuMDEsIDAuMDE4NzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IERGRlNYMSAqCi0gKiAtLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKERGRlNYMSkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjk2MTE0NjsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBmZiAoTjM1LFFCSU5UKSB7Ci0gICAgbmV4dF9zdGF0ZSA6ICJEIjsKLSAgICBjbG9ja2VkX29uIDogIkNLIjsKLSAgICBwcmVzZXQgOiAiKCFTTikiOwotICB9Ci0gIHBpbihDSykgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjU3ODEzOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDY1NzgxMzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2NTc3OTg7Ci0gICAgY2xvY2sgOiB0cnVlOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzA0NCwgMC4wMDMwMzksIDAuMDAzMTIyLCAwLjAwMzIyLCAwLjAwMzM1NiwgMC4wMDM1OTYsIDAuMDAzNzYxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA5MTQ0LCAwLjAwOTEzNywgMC4wMDkyMTgsIDAuMDA5MzE3LCAwLjAwOTQ1NSwgMC4wMDk1OTYsIDAuMDA5Nzg0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRCZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjEyMTM3NiwgMC4xMjk1OTMsIDAuMTM4NTksIDAuMTQ1NjUxLCAwLjE1MTI4NiwgMC4xNTg4MiwgMC4xNjQyOTQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjA4MjExNSwgMC4wOTAyNjQsIDAuMDk5MDY5LCAwLjEwNTYwOSwgMC4xMTA5MjgsIDAuMTE3ODMyLCAwLjEyMjc0NiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjcwMTU0OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDY2OTIxOTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2NzAxNTQ7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzNTA3LCAwLjAwMzQ3OSwgMC4wMDM0OTksIDAuMDAzNTU4LCAwLjAwMzYxMSwgMC4wMDM3NDgsIDAuMDAzOTEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDQwMDcsIDAuMDAzOTg4LCAwLjAwNDAxLCAwLjAwNDA1OSwgMC4wMDQxMywgMC4wMDQyNjEsIDAuMDA0MzkyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlNOIjsKLSAgICAgIHNkZl9jb25kIDogIlNOID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAxMjUsIC0wLjAwNzUsIC0wLjAwMTI1LCAtMC4wMDEyNSwgMC4wMDUsIDAuMDA4NzUsIDAuMDExMjUiLCBcCi0gICAgICAgICAgIi0wLjAxNzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAtMC4wMDYyNSwgMCwgMC4wMDM3NSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMTI1LCAtMC4wMDYyNSwgLTAuMDAyNSwgMCIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAxODc1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDEyNSwgLTAuMDA4NzUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAxNSwgLTAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDMzNzUsIC0wLjAyODc1LCAtMC4wMjg3NSwgLTAuMDIyNSwgLTAuMDIyNSwgLTAuMDE4NzUsIC0wLjAxNjI1IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMjUsIC0wLjAyMTI1LCAtMC4wMTg3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEyNSwgMC4wMTc1LCAwLjAyMzc1LCAwLjAzLCAwLjAzNjI1LCAwLjA0LCAwLjA0ODc1IiwgXAotICAgICAgICAgICIwLjAwNzUsIDAuMDEyNSwgMC4wMTg3NSwgMC4wMjUsIDAuMDMxMjUsIDAuMDM1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjAwMTI1LCAwLjAwNjI1LCAwLjAxODc1LCAwLjAyNSwgMC4wMjUsIDAuMDM1LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjAwNSwgMC4wMDYyNSwgMC4wMTI1LCAwLjAxODc1LCAwLjAyNSwgMC4wMjg3NSwgMC4wMzc1IiwgXAotICAgICAgICAgICItMC4wMDUsIDAsIDAuMDEyNSwgMC4wMTg3NSwgMC4wMTg3NSwgMC4wMjg3NSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDA4NzUsIDAuMDAyNSwgMC4wMDg3NSwgMC4wMTUsIDAuMDIxMjUsIDAuMDI1LCAwLjAyNzUiLCBcCi0gICAgICAgICAgIi0wLjAxMTI1LCAwLCAwLjAwNjI1LCAwLjAxMjUsIDAuMDE4NzUsIDAuMDIyNSwgMC4wMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlNOIjsKLSAgICAgIHNkZl9jb25kIDogIlNOID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzNzUsIDAuMDI2MjUsIDAuMDIsIDAuMDIsIDAuMDEzNzUsIDAuMDEsIDAuMDA3NSIsIFwKLSAgICAgICAgICAiMC4wNDI1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMjUsIDAuMDE4NzUsIDAuMDE1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMDQ4NzUsIDAuMDQzNzUsIDAuMDMxMjUsIDAuMDMxMjUsIDAuMDI1LCAwLjAyMTI1LCAwLjAxODc1IiwgXAotICAgICAgICAgICIwLjA1NSwgMC4wNSwgMC4wMzc1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDI3NSwgMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMDYxMjUsIDAuMDUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzc1LCAwLjAzMzc1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICIwLjA2NSwgMC4wNiwgMC4wNTM3NSwgMC4wNDc1LCAwLjA0MTI1LCAwLjAzNzUsIDAuMDM1IiwgXAotICAgICAgICAgICIwLjA3Mzc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDUsIDAuMDUsIDAuMDQ2MjUsIDAuMDQzNzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzc1LCAwLjAzMjUsIDAuMDIsIDAuMDEzNzUsIDAuMDA3NSwgLTAuMDAyNSwgLTAuMDA1IiwgXAotICAgICAgICAgICIwLjA0MjUsIDAuMDM3NSwgMC4wMjUsIDAuMDE4NzUsIDAuMDEyNSwgMC4wMDg3NSwgMCIsIFwKLSAgICAgICAgICAiMC4wNDg3NSwgMC4wNDM3NSwgMC4wMzEyNSwgMC4wMjUsIDAuMDE4NzUsIDAuMDE1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICIwLjA1NSwgMC4wNSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMTUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4wNjEyNSwgMC4wNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyMTI1LCAwLjAxODc1IiwgXAotICAgICAgICAgICIwLjA2NSwgMC4wNiwgMC4wNDc1LCAwLjA0MTI1LCAwLjAzNSwgMC4wMjUsIDAuMDIyNSIsIFwKLSAgICAgICAgICAiMC4wNzM3NSwgMC4wNjI1LCAwLjA1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDMzNzUsIDAuMDI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihRKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMzQ0MzgzOwotICAgIGZ1bmN0aW9uIDogIk4zNSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3NlbnNlIDogbm9uX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiByaXNpbmdfZWRnZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk5ODUzLCAwLjExODUzNCwgMC4yMjQxMDksIDAuMzE3MjY3LCAwLjQ0MTIxNCwgMC42ODk4NzEsIDAuODQ1MzkyIiwgXAotICAgICAgICAgICIwLjEwNzk3OSwgMC4xMjY2OTQsIDAuMjMyMjQ4LCAwLjMyNTM4LCAwLjQ0OTMzOCwgMC42OTgwNDcsIDAuODUzNTExIiwgXAotICAgICAgICAgICIwLjExNjkyOCwgMC4xMzU2NTQsIDAuMjQxMTc4LCAwLjMzNDMyOSwgMC40NTgyMzEsIDAuNzA3MDAyLCAwLjg2MjQ1NyIsIFwKLSAgICAgICAgICAiMC4xMjQwNzcsIDAuMTQyODA5LCAwLjI0ODI2NCwgMC4zNDE0NzUsIDAuNDY1MzksIDAuNzE0MTU2LCAwLjg2OTYxMiIsIFwKLSAgICAgICAgICAiMC4xMjk2MTMsIDAuMTQ4Mjk0LCAwLjI1Mzg2LCAwLjM0NzAxNSwgMC40NzA5OCwgMC43MTk2NDUsIDAuODc1MTU2IiwgXAotICAgICAgICAgICIwLjEzNzI3MywgMC4xNTU5MzQsIDAuMjYxNjIxLCAwLjM1NDU3NSwgMC40Nzg3MDEsIDAuNzI2ODczLCAwLjg4Mjg2MSIsIFwKLSAgICAgICAgICAiMC4xNDI3MywgMC4xNjEzOTQsIDAuMjY3MDQzLCAwLjM2MDA3NCwgMC40ODQwNDUsIDAuNzMyNzc0LCAwLjg4ODI2NSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzI1MDksIDAuMTExMDE1LCAwLjMzMjI5OSwgMC41Mjc3NDEsIDAuNzkwNTY3LCAxLjMxNDMyLCAxLjY0MTgiLCBcCi0gICAgICAgICAgIjAuMDcyNTEsIDAuMTEwODc4LCAwLjMzMjI5NSwgMC41Mjc4NDEsIDAuNzg4Nzc4LCAxLjMxNDM2LCAxLjY0MTgxIiwgXAotICAgICAgICAgICIwLjA3MjUwOCwgMC4xMTA4NDgsIDAuMzMyMjg3LCAwLjUyNzgzLCAwLjc5MDQ5OCwgMS4zMTQzNywgMS42NDE4IiwgXAotICAgICAgICAgICIwLjA3MjQ3NywgMC4xMTA3OTgsIDAuMzMxOTQyLCAwLjUyNzgzOSwgMC43OTA0ODgsIDEuMzE0MzcsIDEuNjQxODEiLCBcCi0gICAgICAgICAgIjAuMDcyNDkyLCAwLjExMTA0MSwgMC4zMzIyNzMsIDAuNTI3NzI4LCAwLjc5MDUxOSwgMS4zMTQyOSwgMS42NDE4MiIsIFwKLSAgICAgICAgICAiMC4wNzI3MzIsIDAuMTEwODYxLCAwLjMzMjI3NywgMC41MjgxMDIsIDAuNzkwNDE2LCAxLjMxMTMsIDEuNjQxNjQiLCBcCi0gICAgICAgICAgIjAuMDcyOTY3LCAwLjExMDg3MiwgMC4zMzIyODMsIDAuNTI4NTM0LCAwLjc5MDM2LCAxLjMxNDE3LCAxLjY0MTYzIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExMjQ0NywgMC4xMzA3MDMsIDAuMjMzNDUsIDAuMzIzOTY2LCAwLjQ0NDMwMiwgMC42ODU2NzIsIDAuODM2Njg1IiwgXAotICAgICAgICAgICIwLjEyMDY0MSwgMC4xMzg4OTcsIDAuMjQxNDgsIDAuMzMyMTc2LCAwLjQ1MjY5NiwgMC42OTQ0MTksIDAuODQ0NjQzIiwgXAotICAgICAgICAgICIwLjEyOTY1MiwgMC4xNDc5MDcsIDAuMjUwNjczLCAwLjM0MTE3NSwgMC40NjE2MDQsIDAuNzAyODkxLCAwLjg1Mzg4NCIsIFwKLSAgICAgICAgICAiMC4xMzY2OTYsIDAuMTU0OTU2LCAwLjI1NzUxMiwgMC4zNDgyMzQsIDAuNDY4NzUsIDAuNzEwNDI5LCAwLjg2MDcwNCIsIFwKLSAgICAgICAgICAiMC4xNDIzMTcsIDAuMTYwNjExLCAwLjI2MzA0NiwgMC4zNTM4NjUsIDAuNDc0Mzc3LCAwLjcxNjEwMSwgMC44NjYzMjciLCBcCi0gICAgICAgICAgIjAuMTQ5ODYzLCAwLjE2ODEyMiwgMC4yNzA4MiwgMC4zNjE1MDYsIDAuNDgxODA4LCAwLjcyMzU5NywgMC44NzM5MTIiLCBcCi0gICAgICAgICAgIjAuMTU1MzM1LCAwLjE3MzUwNCwgMC4yNzYzNDgsIDAuMzY2ODQsIDAuNDg3NjQ0LCAwLjcyODU0MSwgMC44Nzk1ODEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDcwMjAzLCAwLjEwNjM0NywgMC4zMTU4MTIsIDAuNTAyMjIxLCAwLjc1MDUwOCwgMS4yNDU0LCAxLjU1ODI2IiwgXAotICAgICAgICAgICIwLjA3MDE5OCwgMC4xMDY0NiwgMC4zMTYwNCwgMC41MDIxOSwgMC43NTA5OTMsIDEuMjQ5LCAxLjU1ODQyIiwgXAotICAgICAgICAgICIwLjA3MDE3MSwgMC4xMDU5MTcsIDAuMzE1ODM0LCAwLjUwMjIxMywgMC43NDgyMzgsIDEuMjQ2NzIsIDEuNTU3MiIsIFwKLSAgICAgICAgICAiMC4wNzAyMDQsIDAuMTA2NTA4LCAwLjMxNjEzNCwgMC41MDIxOTEsIDAuNzUwOTgsIDEuMjQ4OTMsIDEuNTU4NDEiLCBcCi0gICAgICAgICAgIjAuMDY5OTgxLCAwLjEwNTkzMiwgMC4zMTU4NDQsIDAuNTAyMTk0LCAwLjc1MDk2NCwgMS4yNDg3OSwgMS41NTkwMSIsIFwKLSAgICAgICAgICAiMC4wNzAzMDYsIDAuMTA1NzgsIDAuMzE1NzAyLCAwLjUwMjIyLCAwLjc1MDc4OSwgMS4yNDg3MywgMS41NTgxNiIsIFwKLSAgICAgICAgICAiMC4wNzAxOTcsIDAuMTA1NzQ1LCAwLjMxNTc0NiwgMC41MDIxODksIDAuNzUxMDE4LCAxLjI0Nzc1LCAxLjU1Nzc2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiBwcmVzZXQ7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5OTIzNiwgMC4xMTc5LCAwLjIyMzM2OSwgMC4zMTY0ODMsIDAuNDQwNTYzLCAwLjY4OTI5LCAwLjg0NDczMyIsIFwKLSAgICAgICAgICAiMC4xMDU5NzIsIDAuMTI0Njg1LCAwLjIzMDE3NiwgMC4zMjMyOTUsIDAuNDQ3MjQ3LCAwLjY5NjAzMSwgMC44NTE0NDgiLCBcCi0gICAgICAgICAgIjAuMTE1MTY2LCAwLjEzMzgyOCwgMC4yMzkzMDMsIDAuMzMyNTMzLCAwLjQ1NjQ0MiwgMC43MDQ3MjMsIDAuODU5ODgzIiwgXAotICAgICAgICAgICIwLjEyMzY3OSwgMC4xNDIzNDMsIDAuMjQ3ODkyLCAwLjM0MDk3NCwgMC40NjUwMywgMC43MTMzMTEsIDAuODY4NDIyIiwgXAotICAgICAgICAgICIwLjEzMDY4NSwgMC4xNDkzNDgsIDAuMjU0ODYzLCAwLjM0ODA1NSwgMC40NzE5NzQsIDAuNzIwMjUyLCAwLjg3NTM4MiIsIFwKLSAgICAgICAgICAiMC4xMzk5MzIsIDAuMTU4NjkyLCAwLjI2NDIwNSwgMC4zNTczLCAwLjQ4MTI5NywgMC43Mjk2NCwgMC44ODQ2NzIiLCBcCi0gICAgICAgICAgIjAuMTQ2NjM5LCAwLjE2NTM0NiwgMC4yNzA5NjQsIDAuMzYzOTQxLCAwLjQ4Nzg5OCwgMC43MzY2MjcsIDAuODkxMzI3Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3MjM5MiwgMC4xMTA5MzMsIDAuMzMyMzAzLCAwLjUyODUyNSwgMC43OTA1NSwgMS4zMTQ0MSwgMS42NDE4OCIsIFwKLSAgICAgICAgICAiMC4wNzI2MjUsIDAuMTEwOTU5LCAwLjMzMTk5NiwgMC41Mjg1MTgsIDAuNzkwNjE3LCAxLjMxNDQyLCAxLjY0MTgxIiwgXAotICAgICAgICAgICIwLjA3MjU3OCwgMC4xMTA5NDIsIDAuMzMyMjE5LCAwLjUyODU0MSwgMC43OTA0MzksIDEuMzE0MjksIDEuNjQxNTMiLCBcCi0gICAgICAgICAgIjAuMDcyNjEzLCAwLjExMDkzNCwgMC4zMzE4OTgsIDAuNTI4NzE4LCAwLjc5MDU0MiwgMS4zMTMyMSwgMS42MzgxNiIsIFwKLSAgICAgICAgICAiMC4wNzI0NTUsIDAuMTEwOTY3LCAwLjMzMjI5NSwgMC41Mjg3MTQsIDAuNzkwNDU3LCAxLjMxNDM4LCAxLjYzOTU4IiwgXAotICAgICAgICAgICIwLjA3MjczOSwgMC4xMTEwMDksIDAuMzMyMjkzLCAwLjUyODQ0MSwgMC43OTA0MTMsIDEuMzE0MzgsIDEuNjM4NTYiLCBcCi0gICAgICAgICAgIjAuMDczMDA3LCAwLjExMDksIDAuMzMyMjk0LCAwLjUyODQ2NywgMC43OTAzNTEsIDEuMzE0MjksIDEuNjM5MjgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1MjU4LCAwLjAwNTI2MywgMC4wMDUyNjksIDAuMDA1MjcsIDAuMDA1MjcxLCAwLjAwNTI3MSwgMC4wMDUyNzIiLCBcCi0gICAgICAgICAgIjAuMDA1MjUyLCAwLjAwNTI1NywgMC4wMDUyNjMsIDAuMDA1MjYzLCAwLjAwNTI2NCwgMC4wMDUyNjUsIDAuMDA1MjY1IiwgXAotICAgICAgICAgICIwLjAwNTMsIDAuMDA1MzA1LCAwLjAwNTMxMSwgMC4wMDUzMTIsIDAuMDA1MzEyLCAwLjAwNTMxMywgMC4wMDUzMTMiLCBcCi0gICAgICAgICAgIjAuMDA1MzQzLCAwLjAwNTM0OCwgMC4wMDUzNTQsIDAuMDA1MzU1LCAwLjAwNTM1NiwgMC4wMDUzNTcsIDAuMDA1MzU3IiwgXAotICAgICAgICAgICIwLjAwNTQxMywgMC4wMDU0MTgsIDAuMDA1NDI0LCAwLjAwNTQyNSwgMC4wMDU0MjYsIDAuMDA1NDI3LCAwLjAwNTQyNyIsIFwKLSAgICAgICAgICAiMC4wMDU1MTYsIDAuMDA1NTIsIDAuMDA1NTE5LCAwLjAwNTUyLCAwLjAwNTUyLCAwLjAwNTUyOCwgMC4wMDU1MjEiLCBcCi0gICAgICAgICAgIjAuMDA1NTk5LCAwLjAwNTYwNiwgMC4wMDU2MSwgMC4wMDU2MTMsIDAuMDA1NjEyLCAwLjAwNTYxNCwgMC4wMDU2MTQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQ2NjIsIDAuMDA0NjY3LCAwLjAwNDY3NCwgMC4wMDQ2NzYsIDAuMDA0Njc3LCAwLjAwNDY3NSwgMC4wMDQ2NzkiLCBcCi0gICAgICAgICAgIjAuMDA0NjYsIDAuMDA0NjY1LCAwLjAwNDY3MywgMC4wMDQ2NzQsIDAuMDA0NjczLCAwLjAwNDY3NiwgMC4wMDQ2NzQiLCBcCi0gICAgICAgICAgIjAuMDA0NzE0LCAwLjAwNDcxOSwgMC4wMDQ3MjcsIDAuMDA0NzI4LCAwLjAwNDcyOSwgMC4wMDQ3MywgMC4wMDQ3MjciLCBcCi0gICAgICAgICAgIjAuMDA0NzY4LCAwLjAwNDc3NCwgMC4wMDQ3ODEsIDAuMDA0NzgzLCAwLjAwNDc4MywgMC4wMDQ3ODQsIDAuMDA0Nzg0IiwgXAotICAgICAgICAgICIwLjAwNDg0NiwgMC4wMDQ4NTIsIDAuMDA0ODU5LCAwLjAwNDg2LCAwLjAwNDg2MSwgMC4wMDQ4NiwgMC4wMDQ4NiIsIFwKLSAgICAgICAgICAiMC4wMDQ5NDYsIDAuMDA0OTUzLCAwLjAwNDk2LCAwLjAwNDk2MSwgMC4wMDQ5NzEsIDAuMDA0OTYzLCAwLjAwNDk2MyIsIFwKLSAgICAgICAgICAiMC4wMDUwNDksIDAuMDA1MDU1LCAwLjAwNTA2LCAwLjAwNTA2NCwgMC4wMDUwNjQsIDAuMDA1MDYyLCAwLjAwNTA2MiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDYxLCAwLjAwNjEwNSwgMC4wMDYxMSwgMC4wMDYxMTEsIDAuMDA2MTEyLCAwLjAwNjExMiwgMC4wMDYxMTEiLCBcCi0gICAgICAgICAgIjAuMDA2MDkyLCAwLjAwNjA5NywgMC4wMDYxMDMsIDAuMDA2MTAzLCAwLjAwNjEwNCwgMC4wMDYxMDQsIDAuMDA2MTA0IiwgXAotICAgICAgICAgICIwLjAwNjExMywgMC4wMDYxMTcsIDAuMDA2MTIzLCAwLjAwNjEyNCwgMC4wMDYxMjQsIDAuMDA2MTI1LCAwLjAwNjEyNSIsIFwKLSAgICAgICAgICAiMC4wMDYxNTQsIDAuMDA2MTU5LCAwLjAwNjE2NSwgMC4wMDYxNjYsIDAuMDA2MTY3LCAwLjAwNjE2NywgMC4wMDYxNjciLCBcCi0gICAgICAgICAgIjAuMDA2MjE2LCAwLjAwNjIyLCAwLjAwNjIyNywgMC4wMDYyMjgsIDAuMDA2MjI4LCAwLjAwNjIyOSwgMC4wMDYyMjkiLCBcCi0gICAgICAgICAgIjAuMDA2MzIzLCAwLjAwNjMyOCwgMC4wMDYzMzUsIDAuMDA2MzM1LCAwLjAwNjMzNSwgMC4wMDYzMzYsIDAuMDA2MzM2IiwgXAotICAgICAgICAgICIwLjAwNjQ0LCAwLjAwNjQ0NCwgMC4wMDY0NSwgMC4wMDY0NSwgMC4wMDY0NTIsIDAuMDA2NDUyLCAwLjAwNjQ1MiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihzY2FsYXIpIHsKLSAgICAgICAgdmFsdWVzKCIwIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihRTikgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjM0NzY0OTsKLSAgICBmdW5jdGlvbiA6ICJRQklOVCI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3NlbnNlIDogbm9uX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiByaXNpbmdfZWRnZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTIxMzc2LCAwLjEzOTk2OCwgMC4yNDU0MTEsIDAuMzM4NDQ1LCAwLjQ2MjM4MywgMC43MTA2ODQsIDAuODY1ODE2IiwgXAotICAgICAgICAgICIwLjEyOTU5MywgMC4xNDgxOSwgMC4yNTM1OTEsIDAuMzQ2Njc0LCAwLjQ3MDc0NywgMC43MTg5MDksIDAuODc0IiwgXAotICAgICAgICAgICIwLjEzODU5LCAwLjE1NzE4MywgMC4yNjI2MjksIDAuMzU1NjYxLCAwLjQ3OTc2MiwgMC43Mjc4OTMsIDAuODgzMDMiLCBcCi0gICAgICAgICAgIjAuMTQ1NjUxLCAwLjE2NDI0OSwgMC4yNjk2NDYsIDAuMzYyNzMzLCAwLjQ4NjgwNywgMC43MzQ5NDYsIDAuODkwMDU4IiwgXAotICAgICAgICAgICIwLjE1MTI4NiwgMC4xNjk4ODQsIDAuMjc1Mjc5LCAwLjM2ODM2MywgMC40OTI0MzgsIDAuNzQwNTYzLCAwLjg5NTY5MyIsIFwKLSAgICAgICAgICAiMC4xNTg4MiwgMC4xNzc0MTMsIDAuMjgyODQzLCAwLjM3NTkyNiwgMC40OTk4OTksIDAuNzQ4MTA5LCAwLjkwMzIwOSIsIFwKLSAgICAgICAgICAiMC4xNjQyOTQsIDAuMTgyODk0LCAwLjI4ODMyMSwgMC4zODEzNTUsIDAuNTA1NDM3LCAwLjc1MzYwNywgMC45MDg3MjkiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDcwNTE3LCAwLjEwOTM3MSwgMC4zMzE1OTMsIDAuNTI3NzksIDAuNzg4MzY2LCAxLjMwODk3LCAxLjYzNjE1IiwgXAotICAgICAgICAgICIwLjA3MDUxLCAwLjEwOTMwMywgMC4zMzEyMjcsIDAuNTI3ODQ4LCAwLjc4ODM0MiwgMS4zMTIwMiwgMS42MzY0NCIsIFwKLSAgICAgICAgICAiMC4wNzA1MTYsIDAuMTA5NDA4LCAwLjMzMTU5NywgMC41Mjc4MDYsIDAuNzg3NDAxLCAxLjMwOTE4LCAxLjYzNTA3IiwgXAotICAgICAgICAgICIwLjA3MDUwOSwgMC4xMDkyOTYsIDAuMzMxMjMyLCAwLjUyNzg0NSwgMC43ODgzNTMsIDEuMzEyMDEsIDEuNjM2NDIiLCBcCi0gICAgICAgICAgIjAuMDcwNTE3LCAwLjEwOTQwOCwgMC4zMzEyNzEsIDAuNTI3ODM3LCAwLjc4ODM2NSwgMS4zMTIyNywgMS42MzU1MSIsIFwKLSAgICAgICAgICAiMC4wNzA1MTcsIDAuMTA5NDAxLCAwLjMzMTU2OCwgMC41Mjc4NjEsIDAuNzg4NDAzLCAxLjMxMTkyLCAxLjYzNjk2IiwgXAotICAgICAgICAgICIwLjA3MDQ3NCwgMC4xMDk0MDMsIDAuMzMxNTcyLCAwLjUyNzY2NywgMC43ODkxNTcsIDEuMzEwMDcsIDEuNjM1OSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDkxMzEsIDAuMTI3MjI2LCAwLjIyOTc0NSwgMC4zMjAyODgsIDAuNDQwODY1LCAwLjY4MjAzNywgMC44MzI4OTQiLCBcCi0gICAgICAgICAgIjAuMTE3MjU1LCAwLjEzNTM0NSwgMC4yMzc4NzEsIDAuMzI4Mzk4LCAwLjQ0OTAwNCwgMC42OTAyMTIsIDAuODQxMDIzIiwgXAotICAgICAgICAgICIwLjEyNjIwNSwgMC4xNDQyOTYsIDAuMjQ2ODE1LCAwLjMzNzM0OCwgMC40NTc4OTgsIDAuNjk5MTY5LCAwLjg0OTk3MSIsIFwKLSAgICAgICAgICAiMC4xMzMzNDQsIDAuMTUxNDM4LCAwLjI1Mzk2LCAwLjM0NDQ4NiwgMC40NjUwNDMsIDAuNzA2MzE1LCAwLjg1NzExOSIsIFwKLSAgICAgICAgICAiMC4xMzg4ODQsIDAuMTU2OTc5LCAwLjI1OTQ5NSwgMC4zNTAwMzIsIDAuNDcwNjIsIDAuNzExODE4LCAwLjg2MjY2NSIsIFwKLSAgICAgICAgICAiMC4xNDY1NjMsIDAuMTY0NjQyLCAwLjI2NzIyNSwgMC4zNTc2OTEsIDAuNDc4MzM3LCAwLjcxOTU3NCwgMC44NzAzNzQiLCBcCi0gICAgICAgICAgIjAuMTUxOTg3LCAwLjE3MDA5MywgMC4yNzI2MjIsIDAuMzYzMTExLCAwLjQ4MzcwMywgMC43MjQ5NTMsIDAuODc1NzcyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2NzExMSwgMC4xMDQxMjcsIDAuMzE1MTkxLCAwLjUwMDgwOSwgMC43NTAzMiwgMS4yNDczMywgMS41NTgzMiIsIFwKLSAgICAgICAgICAiMC4wNjcxMTEsIDAuMTA0MDcyLCAwLjMxNTIyNCwgMC41MDA2NzcsIDAuNzQ4OTg1LCAxLjI0NzQ1LCAxLjU1ODM0IiwgXAotICAgICAgICAgICIwLjA2NzExMSwgMC4xMDM5ODIsIDAuMzE1MTcyLCAwLjUwMDY3MywgMC43NTAxOTQsIDEuMjQ3NDcsIDEuNTU4MzQiLCBcCi0gICAgICAgICAgIjAuMDY3MTA4LCAwLjEwNDAxOSwgMC4zMTQ4OTIsIDAuNTAwNjY0LCAwLjc1MDIwMywgMS4yNDc0OSwgMS41NTgzNiIsIFwKLSAgICAgICAgICAiMC4wNjcxMTIsIDAuMTA0MTQsIDAuMzE1MTUsIDAuNTAwNzk1LCAwLjc1MDMxMiwgMS4yNDczNiwgMS41NTgzNyIsIFwKLSAgICAgICAgICAiMC4wNjcxMzksIDAuMTA0MDMxLCAwLjMxNTE5NywgMC41MDExMTYsIDAuNzUwMTkzLCAxLjI0NTA3LCAxLjU1ODA4IiwgXAotICAgICAgICAgICIwLjA2NzIxNCwgMC4xMDM5NDcsIDAuMzE1MjI2LCAwLjUwMTYyNywgMC43NTAxMTMsIDEuMjQ3MjEsIDEuNTU4MDgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiU04iOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGNsZWFyOwotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDg1ODIsIDAuMTI2NjcyLCAwLjIyOTE1LCAwLjMxOTY2OCwgMC40NDAyODgsIDAuNjgxNTQsIDAuODMyMzQ5IiwgXAotICAgICAgICAgICIwLjExNTM4NywgMC4xMzM0MjMsIDAuMjM1OTU3LCAwLjMyNjQyNCwgMC40NDY5OTUsIDAuNjg4Mjk3LCAwLjgzOTA3NCIsIFwKLSAgICAgICAgICAiMC4xMjQ1MzMsIDAuMTQyNjI2LCAwLjI0NTExMywgMC4zMzU2NjQsIDAuNDU2MjIzLCAwLjY5NzUzNywgMC44NDgzNDQiLCBcCi0gICAgICAgICAgIjAuMTMzMDU4LCAwLjE1MTE0OCwgMC4yNTM2NDMsIDAuMzQ0MTAzLCAwLjQ2NDc0NCwgMC43MDU5NDksIDAuODU2ODM4IiwgXAotICAgICAgICAgICIwLjEzOTk5NiwgMC4xNTgwODYsIDAuMjYwNjIsIDAuMzUxMTE3LCAwLjQ3MTY3NywgMC43MTI5OTMsIDAuODYzNzI0IiwgXAotICAgICAgICAgICIwLjE0OTI3MiwgMC4xNjczNzQsIDAuMjY5ODgyLCAwLjM2MDM4NSwgMC40ODA5OTcsIDAuNzIyMTYzLCAwLjg3Mjk3NCIsIFwKLSAgICAgICAgICAiMC4xNTU5NDQsIDAuMTc0MDMyLCAwLjI3NjU4NiwgMC4zNjcwNDgsIDAuNDg3NjMsIDAuNzI4ODg0LCAwLjg3OTc0NCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjcxMTMsIDAuMTA0MTQ0LCAwLjMxNTI1NSwgMC41MDE2NzksIDAuNzUwMzIzLCAxLjI0NzYyLCAxLjU1ODU1IiwgXAotICAgICAgICAgICIwLjA2NzExOCwgMC4xMDQxNDUsIDAuMzE0OTM1LCAwLjUwMTcxMiwgMC43NTAyOCwgMS4yNDc2NCwgMS41NTg0MSIsIFwKLSAgICAgICAgICAiMC4wNjcxMSwgMC4xMDQxMzIsIDAuMzE1MDQ2LCAwLjUwMTY4MSwgMC43NTAxODEsIDEuMjQ3NjMsIDEuNTU3OTciLCBcCi0gICAgICAgICAgIjAuMDY3MTM1LCAwLjEwNDEyNSwgMC4zMTQ4NjUsIDAuNTAxNzUsIDAuNzUwMjk2LCAxLjI0NzU0LCAxLjU1NTU1IiwgXAotICAgICAgICAgICIwLjA2NzEyLCAwLjEwNDE1MywgMC4zMTUyNDYsIDAuNTAxNzEzLCAwLjc1MDE5OCwgMS4yNDc1NiwgMS41NTc2MSIsIFwKLSAgICAgICAgICAiMC4wNjcxNDcsIDAuMTA0MTUzLCAwLjMxNTIyNywgMC41MDE1NjEsIDAuNzUwMjAyLCAxLjI0NzU4LCAxLjU1NTczIiwgXAotICAgICAgICAgICIwLjA2NzI4OSwgMC4xMDM5NTgsIDAuMzE1MjI3LCAwLjUwMTYxMSwgMC43NTAxNjcsIDEuMjQ3NDgsIDEuNTU1OTUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0NjYyLCAwLjAwNDY2NywgMC4wMDQ2NzQsIDAuMDA0Njc2LCAwLjAwNDY3NywgMC4wMDQ2NzUsIDAuMDA0Njc5IiwgXAotICAgICAgICAgICIwLjAwNDY2LCAwLjAwNDY2NSwgMC4wMDQ2NzMsIDAuMDA0Njc0LCAwLjAwNDY3MywgMC4wMDQ2NzYsIDAuMDA0Njc0IiwgXAotICAgICAgICAgICIwLjAwNDcxNCwgMC4wMDQ3MTksIDAuMDA0NzI3LCAwLjAwNDcyOCwgMC4wMDQ3MjksIDAuMDA0NzMsIDAuMDA0NzI3IiwgXAotICAgICAgICAgICIwLjAwNDc2OCwgMC4wMDQ3NzQsIDAuMDA0NzgxLCAwLjAwNDc4MywgMC4wMDQ3ODMsIDAuMDA0Nzg0LCAwLjAwNDc4NCIsIFwKLSAgICAgICAgICAiMC4wMDQ4NDYsIDAuMDA0ODUyLCAwLjAwNDg1OSwgMC4wMDQ4NiwgMC4wMDQ4NjEsIDAuMDA0ODYsIDAuMDA0ODYiLCBcCi0gICAgICAgICAgIjAuMDA0OTQ2LCAwLjAwNDk1MywgMC4wMDQ5NiwgMC4wMDQ5NjEsIDAuMDA0OTcxLCAwLjAwNDk2MywgMC4wMDQ5NjMiLCBcCi0gICAgICAgICAgIjAuMDA1MDQ5LCAwLjAwNTA1NSwgMC4wMDUwNiwgMC4wMDUwNjQsIDAuMDA1MDY0LCAwLjAwNTA2MiwgMC4wMDUwNjIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDUyNTgsIDAuMDA1MjYzLCAwLjAwNTI2OSwgMC4wMDUyNywgMC4wMDUyNzEsIDAuMDA1MjcxLCAwLjAwNTI3MiIsIFwKLSAgICAgICAgICAiMC4wMDUyNTIsIDAuMDA1MjU3LCAwLjAwNTI2MywgMC4wMDUyNjMsIDAuMDA1MjY0LCAwLjAwNTI2NSwgMC4wMDUyNjUiLCBcCi0gICAgICAgICAgIjAuMDA1MywgMC4wMDUzMDUsIDAuMDA1MzExLCAwLjAwNTMxMiwgMC4wMDUzMTIsIDAuMDA1MzEzLCAwLjAwNTMxMyIsIFwKLSAgICAgICAgICAiMC4wMDUzNDMsIDAuMDA1MzQ4LCAwLjAwNTM1NCwgMC4wMDUzNTUsIDAuMDA1MzU2LCAwLjAwNTM1NywgMC4wMDUzNTciLCBcCi0gICAgICAgICAgIjAuMDA1NDEzLCAwLjAwNTQxOCwgMC4wMDU0MjQsIDAuMDA1NDI1LCAwLjAwNTQyNiwgMC4wMDU0MjcsIDAuMDA1NDI3IiwgXAotICAgICAgICAgICIwLjAwNTUxNiwgMC4wMDU1MiwgMC4wMDU1MTksIDAuMDA1NTIsIDAuMDA1NTIsIDAuMDA1NTI4LCAwLjAwNTUyMSIsIFwKLSAgICAgICAgICAiMC4wMDU1OTksIDAuMDA1NjA2LCAwLjAwNTYxLCAwLjAwNTYxMywgMC4wMDU2MTIsIDAuMDA1NjE0LCAwLjAwNTYxNCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDYxLCAwLjAwNjEwNSwgMC4wMDYxMSwgMC4wMDYxMTEsIDAuMDA2MTEyLCAwLjAwNjExMiwgMC4wMDYxMTEiLCBcCi0gICAgICAgICAgIjAuMDA2MDkyLCAwLjAwNjA5NywgMC4wMDYxMDMsIDAuMDA2MTAzLCAwLjAwNjEwNCwgMC4wMDYxMDQsIDAuMDA2MTA0IiwgXAotICAgICAgICAgICIwLjAwNjExMywgMC4wMDYxMTcsIDAuMDA2MTIzLCAwLjAwNjEyNCwgMC4wMDYxMjQsIDAuMDA2MTI1LCAwLjAwNjEyNSIsIFwKLSAgICAgICAgICAiMC4wMDYxNTQsIDAuMDA2MTU5LCAwLjAwNjE2NSwgMC4wMDYxNjYsIDAuMDA2MTY3LCAwLjAwNjE2NywgMC4wMDYxNjciLCBcCi0gICAgICAgICAgIjAuMDA2MjE2LCAwLjAwNjIyLCAwLjAwNjIyNywgMC4wMDYyMjgsIDAuMDA2MjI4LCAwLjAwNjIyOSwgMC4wMDYyMjkiLCBcCi0gICAgICAgICAgIjAuMDA2MzIzLCAwLjAwNjMyOCwgMC4wMDYzMzUsIDAuMDA2MzM1LCAwLjAwNjMzNSwgMC4wMDYzMzYsIDAuMDA2MzM2IiwgXAotICAgICAgICAgICIwLjAwNjQ0LCAwLjAwNjQ0NCwgMC4wMDY0NSwgMC4wMDY0NSwgMC4wMDY0NTIsIDAuMDA2NDUyLCAwLjAwNjQ1MiIpOwotICAgICAgfQotICAgICAgcmlzZV9wb3dlcihzY2FsYXIpIHsKLSAgICAgICAgdmFsdWVzKCIwIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTTikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxMDgxMDY7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwOTgxNjg4OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTA4MTA2OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDU5MywgMC4wMDA1OTMsIDAuMDAwNTkyLCAwLjAwMDU5MiwgMC4wMDA1OTIsIDAuMDAwNTkyLCAwLjAwMDU5MiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDYwOSwgMC4wMDA1OTksIDAuMDAwNTk2LCAwLjAwMDU5NSwgMC4wMDA1OTUsIDAuMDAwNTk1LCAwLjAwMDU5NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQiOwotICAgICAgc2RmX2NvbmQgOiAiRCA9PSAxJ2IwIjsKLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjEwODU4MiwgMC4xMTUzODcsIDAuMTI0NTMzLCAwLjEzMzA1OCwgMC4xMzk5OTYsIDAuMTQ5MjcyLCAwLjE1NTk0NCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJlY292ZXJ5X3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUQiOwotICAgICAgc2RmX2NvbmQgOiAiRCA9PSAxJ2IwIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChyZWNvdmVyeV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTI1LCAwLjAwMTI1LCAtMC4wMDUsIC0wLjAxNzUsIC0wLjAyMzc1LCAtMC4wMjc1LCAtMC4wMzYyNSIsIFwKLSAgICAgICAgICAiMC4wMTc1LCAwLjAwNjI1LCAwLCAtMC4wMDYyNSwgLTAuMDEyNSwgLTAuMDIyNSwgLTAuMDI1IiwgXAotICAgICAgICAgICIwLjAyMzc1LCAwLjAxMjUsIDAuMDA2MjUsIDAsIC0wLjAwNjI1LCAtMC4wMTYyNSwgLTAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMDMsIDAuMDI1LCAwLjAxMjUsIDAuMDA2MjUsIDAsIC0wLjAxLCAtMC4wMTI1IiwgXAotICAgICAgICAgICIwLjA0MjUsIDAuMDMxMjUsIDAuMDE4NzUsIDAuMDEyNSwgMC4wMDYyNSwgMC4wMDI1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiMC4wNTI1LCAwLjA0MTI1LCAwLjAzNSwgMC4wMjI1LCAwLjAxNjI1LCAwLjAxMjUsIDAuMDAzNzUiLCBcCi0gICAgICAgICAgIjAuMDYxMjUsIDAuMDUsIDAuMDQzNzUsIDAuMDMxMjUsIDAuMDI1LCAwLjAyMTI1LCAwLjAxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiByZW1vdmFsX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUQiOwotICAgICAgc2RmX2NvbmQgOiAiRCA9PSAxJ2IwIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChyZW1vdmFsX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxODc1LCAwLjAyMzc1LCAwLjAzNjI1LCAwLjA0MjUsIDAuMDQ4NzUsIDAuMDUyNSwgMC4wNjEyNSIsIFwKLSAgICAgICAgICAiMC4wMTM3NSwgMC4wMTg3NSwgMC4wMzEyNSwgMC4wMzc1LCAwLjA0Mzc1LCAwLjA0NzUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIjAuMDA3NSwgMC4wMTI1LCAwLjAyNSwgMC4wMzEyNSwgMC4wMzEyNSwgMC4wNDEyNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4wMDEyNSwgMC4wMDYyNSwgMC4wMTI1LCAwLjAyNSwgMC4wMjUsIDAuMDM1LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjAwNSwgMCwgMC4wMTI1LCAwLjAxODc1LCAwLjAyNSwgMC4wMjg3NSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDE1LCAtMC4wMDM3NSwgMC4wMDI1LCAwLjAwODc1LCAwLjAxNSwgMC4wMTg3NSwgMC4wMjc1IiwgXAotICAgICAgICAgICItMC4wMTc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMC4wMDYyNSwgMC4wMDYyNSwgMC4wMTYyNSwgMC4wMTg3NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IERGRlRSWEwgKgotICogLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoREZGVFJYTCkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjg1MzAzNjsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBmZiAoTjMwLFFCSU5UKSB7Ci0gICAgbmV4dF9zdGF0ZSA6ICIoRCBSTikiOwotICAgIGNsb2NrZWRfb24gOiAiQ0siOwotICB9Ci0gIHBpbihDSykgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjQxNzU4OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDY0MTY4MjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2NDE3NTg7Ci0gICAgY2xvY2sgOiB0cnVlOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzYzOCwgMC4wMDM2MzIsIDAuMDAzNzE2LCAwLjAwMzgwNywgMC4wMDM5MzIsIDAuMDA0MTY1LCAwLjAwNDM0OCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNzQ1MywgMC4wMDc0NTMsIDAuMDA3NTM4LCAwLjAwNzY3LCAwLjAwNzgxMywgMC4wMDgwOTMsIDAuMDA4MzY2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRCYhUk4iOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1JOX0VRXzAgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4xMzE5MjksIDAuMTQwMDQzLCAwLjE0ODk2NCwgMC4xNTU1NDQsIDAuMTYwNzkzLCAwLjE2ODExMywgMC4xNzM1MTYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjA1NjQyMSwgMC4wNjQ0NDYsIDAuMDczMjM5LCAwLjA3OTczNiwgMC4wODQ5MDQsIDAuMDkxNjk3LCAwLjA5Njc1MSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjI1MTA5OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYyNDcwMjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2MjUxMDk7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyODIsIDAuMDAyODEyLCAwLjAwMjg3OCwgMC4wMDI5NzMsIDAuMDAzMDc2LCAwLjAwMzI3NiwgMC4wMDM0MTIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDQ0NDUsIDAuMDA0NDQyLCAwLjAwNDUwOCwgMC4wMDQ1ODgsIDAuMDA0NjkyLCAwLjAwNDg3MSwgMC4wMDUwMjkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiUk4iOwotICAgICAgc2RmX2NvbmQgOiAiUk4gPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDI1LCAtMC4wMiwgLTAuMDEzNzUsIC0wLjAxMzc1LCAtMC4wMDc1LCAtMC4wMDM3NSwgLTAuMDAxMjUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTg3NSwgLTAuMDE4NzUsIC0wLjAxNSwgLTAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAyMTI1LCAtMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDI3NSwgLTAuMDI1IiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjA0LCAtMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDY1LCAtMC4wNiwgLTAuMDUzNzUsIC0wLjA1Mzc1LCAtMC4wNDc1LCAtMC4wNDM3NSwgLTAuMDQxMjUiLCBcCi0gICAgICAgICAgIi0wLjA2NzUsIC0wLjA2MjUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNTYyNSwgLTAuMDUyNSwgLTAuMDUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjI1LCAwLjAxMTI1LCAwLjAxNzUsIDAuMDIzNzUsIDAuMDMsIDAuMDMzNzUsIDAuMDQyNSIsIFwKLSAgICAgICAgICAiLTAuMDA1LCAwLjAwNjI1LCAwLjAxMjUsIDAuMDE4NzUsIDAuMDI1LCAwLjAyODc1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wMTEyNSwgMCwgMC4wMDYyNSwgMC4wMTI1LCAwLjAxODc1LCAwLjAyMjUsIDAuMDI1IiwgXAotICAgICAgICAgICItMC4wMTc1LCAtMC4wMDYyNSwgMCwgMC4wMDYyNSwgMC4wMTI1LCAwLjAxNjI1LCAwLjAxODc1IiwgXAotICAgICAgICAgICItMC4wMTc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMCwgMC4wMDYyNSwgMC4wMSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDIxMjUsIC0wLjAxNjI1LCAtMC4wMSwgLTAuMDAzNzUsIDAuMDAyNSwgMC4wMDYyNSwgMC4wMDg3NSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMCwgMC4wMDM3NSwgMC4wMDYyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiUk4iOwotICAgICAgc2RmX2NvbmQgOiAiUk4gPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQzNzUsIDAuMDMyNSwgMC4wMzI1LCAwLjAyNjI1LCAwLjAyNjI1LCAwLjAyMjUsIDAuMDIiLCBcCi0gICAgICAgICAgIjAuMDQ4NzUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMzEyNSwgMC4wMjc1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiMC4wNjEyNSwgMC4wNSwgMC4wNSwgMC4wNDM3NSwgMC4wNDM3NSwgMC4wNCwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4wNjc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDUsIDAuMDUsIDAuMDQ2MjUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMDczNzUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNTYyNSwgMC4wNTI1LCAwLjA1IiwgXAotICAgICAgICAgICIwLjA4Mzc1LCAwLjA3ODc1LCAwLjA3MjUsIDAuMDY2MjUsIDAuMDY2MjUsIDAuMDYyNSwgMC4wNiIsIFwKLSAgICAgICAgICAiMC4wOTI1LCAwLjA4NzUsIDAuMDgxMjUsIDAuMDc1LCAwLjA3NSwgMC4wNzEyNSwgMC4wNjg3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMjUsIDAuMDA3NSwgMC4wMDEyNSwgLTAuMDA1LCAtMC4wMTEyNSwgLTAuMDIxMjUsIC0wLjAyMzc1IiwgXAotICAgICAgICAgICIwLjAyMzc1LCAwLjAxMjUsIDAuMDA2MjUsIDAsIC0wLjAwNjI1LCAtMC4wMSwgLTAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMDMsIDAuMDI1LCAwLjAxMjUsIDAuMDA2MjUsIDAuMDA2MjUsIC0wLjAwMzc1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiMC4wMzYyNSwgMC4wMzEyNSwgMC4wMTg3NSwgMC4wMTI1LCAwLjAxMjUsIDAuMDAyNSwgMCIsIFwKLSAgICAgICAgICAiMC4wNDI1LCAwLjAzNzUsIDAuMDI1LCAwLjAxODc1LCAwLjAxMjUsIDAuMDA4NzUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMDUyNSwgMC4wNDEyNSwgMC4wMzUsIDAuMDI4NzUsIDAuMDIyNSwgMC4wMTI1LCAwLjAxIiwgXAotICAgICAgICAgICIwLjA1NSwgMC4wNSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMjEyNSwgMC4wMTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihRKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMjAxOTExOwotICAgIGZ1bmN0aW9uIDogIk4zMCI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3NlbnNlIDogbm9uX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiByaXNpbmdfZWRnZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTE1NDIyLCAwLjEyNTg5MywgMC4yMjA1NDMsIDAuMzc5MjE5LCAwLjUzNzY0LCAwLjkwNzM5MiwgMS4xMTg2MyIsIFwKLSAgICAgICAgICAiMC4xMjM0OTMsIDAuMTMzOTY2LCAwLjIyODg2MSwgMC4zODcyODYsIDAuNTQ1NzQ4LCAwLjkxNTQ1LCAxLjEyNzA2IiwgXAotICAgICAgICAgICIwLjEzMjEzNSwgMC4xNDI2MDgsIDAuMjM3MjE1LCAwLjM5NTkxNCwgMC41NTQzMjksIDAuOTI0MDQzLCAxLjEzMTI1IiwgXAotICAgICAgICAgICIwLjEzODc5MSwgMC4xNDkyNDMsIDAuMjQzODM1LCAwLjQwMjUyNiwgMC41NjEwNDcsIDAuOTI3NDQsIDEuMTM3ODciLCBcCi0gICAgICAgICAgIjAuMTQ0MDI2LCAwLjE1NDQ5NCwgMC4yNDkxMzMsIDAuNDA3NzI4LCAwLjU2NDk2MSwgMC45MzI3MzgsIDEuMTQzMDgiLCBcCi0gICAgICAgICAgIjAuMTUwOTg2LCAwLjE2MTQ3NywgMC4yNTYwNjgsIDAuNDE0NzA0LCAwLjU3MTQzMiwgMC45Mzk2MDgsIDEuMTUwMDIiLCBcCi0gICAgICAgICAgIjAuMTU2MzgyLCAwLjE2Njg4MywgMC4yNjE2NDQsIDAuNDIwMDk5LCAwLjU3Njk2MywgMC45NDQ5MzgsIDEuMTU1NDYiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTE4NDg0LCAwLjE0MDQ0OSwgMC4zNDAyMzgsIDAuNjczNDU5LCAxLjAwNjg5LCAxLjc4NDY4LCAyLjIyOTcyIiwgXAotICAgICAgICAgICIwLjExODQ3OSwgMC4xNDA0NDgsIDAuMzM5OTczLCAwLjY3MzM2LCAxLjAwNjY4LCAxLjc4NDU5LCAyLjIyODQ4IiwgXAotICAgICAgICAgICIwLjExODQ3OCwgMC4xNDA0NDYsIDAuMzM5NjM5LCAwLjY3MzQ5LCAxLjAwNjkzLCAxLjc4NDg0LCAyLjIyNjE4IiwgXAotICAgICAgICAgICIwLjExODQ5MSwgMC4xNDA0NDksIDAuMzM5MTgsIDAuNjczODc4LCAxLjAwNzM1LCAxLjc4MzIxLCAyLjIyNjg4IiwgXAotICAgICAgICAgICIwLjExODQ4NSwgMC4xNDAxODIsIDAuMzM5Njc2LCAwLjY3NDAxOCwgMS4wMDYzMiwgMS43ODA3OSwgMi4yMjc2IiwgXAotICAgICAgICAgICIwLjExODM0OSwgMC4xNDAyMDYsIDAuMzM5OTAyLCAwLjY3NDAzLCAxLjAwNTgyLCAxLjc4MjEsIDIuMjI0OTgiLCBcCi0gICAgICAgICAgIjAuMTE4MjY4LCAwLjE0MDM3OSwgMC4zMzk3MTEsIDAuNjczODQzLCAxLjAwNjA1LCAxLjc4NTMzLCAyLjIyMjkzIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEyMTc0MSwgMC4xMzE0NDksIDAuMjE4MjgzLCAwLjM2MzY0MywgMC41MDg2MDIsIDAuODQ1NTQ1LCAxLjAzOTQiLCBcCi0gICAgICAgICAgIjAuMTI5ODU1LCAwLjEzOTU3OCwgMC4yMjY0OTQsIDAuMzcxNzg5LCAwLjUxNjgzMSwgMC44NTUzNjIsIDEuMDQ3OTUiLCBcCi0gICAgICAgICAgIjAuMTM4NzY4LCAwLjE0ODQwOCwgMC4yMzU3ODUsIDAuMzgwNjQxLCAwLjUyNTcyOSwgMC44NjQ1NDgsIDEuMDU3MTkiLCBcCi0gICAgICAgICAgIjAuMTQ1MzcyLCAwLjE1NTA3NywgMC4yNDIwMjMsIDAuMzg3MzAyLCAwLjUzMjM2MywgMC44NzExMjQsIDEuMDYzNTIiLCBcCi0gICAgICAgICAgIjAuMTUwNzExLCAwLjE2MDM4NCwgMC4yNDc0NTksIDAuMzkyNjI4LCAwLjUzNzMzNywgMC44NzY1NzQsIDEuMDY5MTQiLCBcCi0gICAgICAgICAgIjAuMTU4MDQ3LCAwLjE2NzgzMiwgMC4yNTQ5NDQsIDAuMzk5ODYzLCAwLjU0NDMwOSwgMC44ODM4NjcsIDEuMDc3NCIsIFwKLSAgICAgICAgICAiMC4xNjMzNDcsIDAuMTcyOTcxLCAwLjI2MDI0LCAwLjQwNTE3NiwgMC41NTA1NTEsIDAuODg5MDIsIDEuMDgxNTIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTA3MDc3LCAwLjEyNjg1NiwgMC4zMDQwODUsIDAuNjA0NTcxLCAwLjkwMzYxNCwgMS41OTg1MiwgMS45ODY4NCIsIFwKLSAgICAgICAgICAiMC4xMDYxOTgsIDAuMTI2ODU1LCAwLjMwNDYxOSwgMC42MDQ1NTgsIDAuOTAzNTM3LCAxLjYwMTEsIDEuOTk2NTkiLCBcCi0gICAgICAgICAgIjAuMTA3MDc2LCAwLjEyNjc1NCwgMC4zMDU2NzUsIDAuNjA0NjA3LCAwLjkwMzYyOSwgMS41OTgwOCwgMS45OTYwOSIsIFwKLSAgICAgICAgICAiMC4xMDcxNTksIDAuMTI2ODU3LCAwLjMwNDY5OSwgMC42MDQ1NTMsIDAuOTAzNTI1LCAxLjYwMDk3LCAxLjk5NzU4IiwgXAotICAgICAgICAgICIwLjEwNzE4MiwgMC4xMjY2MzgsIDAuMzA1Mjk2LCAwLjYwNDU2LCAwLjkwMzY5MiwgMS41ODg5OCwgMS45OTgyMiIsIFwKLSAgICAgICAgICAiMC4xMDY5MDgsIDAuMTI2Nzk2LCAwLjMwNTY1NCwgMC42MDQ1MzgsIDAuOTAyNzI0LCAxLjU5OTMxLCAxLjk5Nzk3IiwgXAotICAgICAgICAgICIwLjEwNzE0NSwgMC4xMjU1MTEsIDAuMzA1NjUxLCAwLjYwNDQ3LCAwLjkwMjYxOCwgMS42MDE0MiwgMS45OTgyNiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQ1OCwgMC4wMDQ1NzgsIDAuMDA0NTY0LCAwLjAwNDU1NiwgMC4wMDQ1NTMsIDAuMDA0NTUsIDAuMDA0NTQ4IiwgXAotICAgICAgICAgICIwLjAwNDU3NCwgMC4wMDQ1NzIsIDAuMDA0NTU4LCAwLjAwNDU1LCAwLjAwNDU0NywgMC4wMDQ1NDQsIDAuMDA0NTQzIiwgXAotICAgICAgICAgICIwLjAwNDYyMiwgMC4wMDQ2MiwgMC4wMDQ2MDYsIDAuMDA0NTk3LCAwLjAwNDU5NCwgMC4wMDQ1OSwgMC4wMDQ1OSIsIFwKLSAgICAgICAgICAiMC4wMDQ2NzEsIDAuMDA0NjY5LCAwLjAwNDY1NiwgMC4wMDQ2NDcsIDAuMDA0NjQzLCAwLjAwNDYzOSwgMC4wMDQ2MzgiLCBcCi0gICAgICAgICAgIjAuMDA0NzQyLCAwLjAwNDc0LCAwLjAwNDcyNiwgMC4wMDQ3MTcsIDAuMDA0NzEzLCAwLjAwNDcwOSwgMC4wMDQ3MDgiLCBcCi0gICAgICAgICAgIjAuMDA0ODM0LCAwLjAwNDgzMiwgMC4wMDQ4MTksIDAuMDA0ODA4LCAwLjAwNDgwNCwgMC4wMDQ3OTksIDAuMDA0Nzk4IiwgXAotICAgICAgICAgICIwLjAwNDkzOSwgMC4wMDQ5MzcsIDAuMDA0OTI1LCAwLjAwNDkxMywgMC4wMDQ5MDgsIDAuMDA0OTAyLCAwLjAwNDkwMSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDY3OSwgMC4wMDQ2OCwgMC4wMDQ2ODUsIDAuMDA0Njg3LCAwLjAwNDY4OCwgMC4wMDQ2ODgsIDAuMDA0Njg5IiwgXAotICAgICAgICAgICIwLjAwNDY4LCAwLjAwNDY4MSwgMC4wMDQ2ODYsIDAuMDA0Njg4LCAwLjAwNDY4OSwgMC4wMDQ2ODksIDAuMDA0Njg5IiwgXAotICAgICAgICAgICIwLjAwNDcyNSwgMC4wMDQ3MjYsIDAuMDA0NzMsIDAuMDA0NzMyLCAwLjAwNDczMywgMC4wMDQ3MzMsIDAuMDA0NzMzIiwgXAotICAgICAgICAgICIwLjAwNDc5LCAwLjAwNDc5MSwgMC4wMDQ3OTYsIDAuMDA0Nzk3LCAwLjAwNDc5OCwgMC4wMDQ3OTgsIDAuMDA0Nzk4IiwgXAotICAgICAgICAgICIwLjAwNDg2NiwgMC4wMDQ4NjgsIDAuMDA0ODcyLCAwLjAwNDg3MywgMC4wMDQ4NzQsIDAuMDA0ODc0LCAwLjAwNDg3NCIsIFwKLSAgICAgICAgICAiMC4wMDQ5NzgsIDAuMDA0OTc5LCAwLjAwNDk4MiwgMC4wMDQ5ODMsIDAuMDA0OTc1LCAwLjAwNDk4NCwgMC4wMDQ5ODQiLCBcCi0gICAgICAgICAgIjAuMDA1MDc2LCAwLjAwNTA3NiwgMC4wMDUwNzksIDAuMDA1MDgsIDAuMDA1MDgsIDAuMDA1MDgsIDAuMDA1MDgxIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihRTikgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjIwMjUyOwotICAgIGZ1bmN0aW9uIDogIlFCSU5UIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBub25fdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJpc2luZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMzE5MjksIDAuMTQyNDQ4LCAwLjIzNzE1MywgMC4zOTQ5NzIsIDAuNTUyNzczLCAwLjkyMDkyNywgMS4xMzE0MSIsIFwKLSAgICAgICAgICAiMC4xNDAwNDMsIDAuMTUwNTY0LCAwLjI0NTI3MiwgMC40MDMwOTMsIDAuNTYwOTEsIDAuOTI5MTg5LCAxLjEzOTU2IiwgXAotICAgICAgICAgICIwLjE0ODk2NCwgMC4xNTk0NjUsIDAuMjU0MjEyLCAwLjQxMjAwMSwgMC41Njk4MzUsIDAuOTM4MTY5LCAxLjE0ODUxIiwgXAotICAgICAgICAgICIwLjE1NTU0NCwgMC4xNjYwNjYsIDAuMjYwNzc1LCAwLjQxODU5NiwgMC41NzY0MTgsIDAuOTQ0NzUyLCAxLjE1NTA3IiwgXAotICAgICAgICAgICIwLjE2MDc5MywgMC4xNzEzMTUsIDAuMjY2MDMsIDAuNDIzODQ0LCAwLjU4MTU5MiwgMC45NTAwMjYsIDEuMTYwMzQiLCBcCi0gICAgICAgICAgIjAuMTY4MTk1LCAwLjE3ODcyOCwgMC4yNzM0NDEsIDAuNDMxMjMxLCAwLjU4OTAzNiwgMC45NTczOTEsIDEuMTY3OSIsIFwKLSAgICAgICAgICAiMC4xNzM1MTYsIDAuMTg0MDQzLCAwLjI3ODc1MywgMC40MzY1NjMsIDAuNTk0NDI5LCAwLjk2MjY4NSwgMS4xNzMwNSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTYyMDQsIDAuMTM4NDQ2LCAwLjMzNzY1OCwgMC42NzA1MDIsIDEuMDAzMDMsIDEuNzc3MzksIDIuMjE5MjMiLCBcCi0gICAgICAgICAgIjAuMTE2MTE2LCAwLjEzODQ2MSwgMC4zMzc2OTEsIDAuNjcwNTA1LCAxLjAwMzAzLCAxLjc3ODk0LCAyLjIxOTU2IiwgXAotICAgICAgICAgICIwLjExNjE2MSwgMC4xMzgxNjUsIDAuMzM4MDY3LCAwLjY3MDUwNywgMS4wMDMwNCwgMS43NzYzOSwgMi4yMjAzNSIsIFwKLSAgICAgICAgICAiMC4xMTYyMDUsIDAuMTM4NDM3LCAwLjMzNzY5OCwgMC42NzA1MDQsIDEuMDAzMDMsIDEuNzc4OTUsIDIuMjE5NTQiLCBcCi0gICAgICAgICAgIjAuMTE2Mjc1LCAwLjEzODMyNiwgMC4zMzc2MzcsIDAuNjcwNTEzLCAxLjAwMzAxLCAxLjc3NjI0LCAyLjIyMDU3IiwgXAotICAgICAgICAgICIwLjExNjIwOSwgMC4xMzg0OTEsIDAuMzM4MDQ2LCAwLjY3MDQ3LCAxLjAwMTg1LCAxLjc3NjM5LCAyLjIyMDA0IiwgXAotICAgICAgICAgICIwLjExNjEzMSwgMC4xMzgyOSwgMC4zMzgwNTIsIDAuNjcwNDY4LCAxLjAwMjE5LCAxLjc3OTAxLCAyLjIxOTc2Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExODE4OCwgMC4xMjc4MzMsIDAuMjE0NjQ4LCAwLjM1OTM1NywgMC41MDQwMiwgMC44NDE2NTUsIDEuMDM0NTkiLCBcCi0gICAgICAgICAgIjAuMTI2MjQ4LCAwLjEzNTg5MywgMC4yMjI3MTIsIDAuMzY3NDA2LCAwLjUxMjA5MiwgMC44NDk3MDIsIDEuMDQyNDkiLCBcCi0gICAgICAgICAgIjAuMTM0ODg0LCAwLjE0NDUzLCAwLjIzMTM0NywgMC4zNzYwNDksIDAuNTIwNzE0LCAwLjg1ODM2MiwgMS4wNTEzIiwgXAotICAgICAgICAgICIwLjE0MTUxOSwgMC4xNTExNTksIDAuMjM3OTc5LCAwLjM4MjY4MSwgMC41MjczMTEsIDAuODY1MDExLCAxLjA1NzkzIiwgXAotICAgICAgICAgICIwLjE0Njc3MSwgMC4xNTY0MTgsIDAuMjQzMjMzLCAwLjM4Nzk0MSwgMC41MzI1NzYsIDAuODcwMjg5LCAxLjA2MzIiLCBcCi0gICAgICAgICAgIjAuMTUzNzQ3LCAwLjE2MzM4NywgMC4yNTAyMTksIDAuMzk0OTE1LCAwLjUzOTYxLCAwLjg3NzE0OCwgMS4wNzAwNiIsIFwKLSAgICAgICAgICAiMC4xNTkxMDYsIDAuMTY4NzU3LCAwLjI1NTU0NywgMC40MDAyMzUsIDAuNTQ0OTIzLCAwLjg4MjU3MSwgMS4wNzUzNyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDQwNDYsIDAuMTIzODE5LCAwLjMwMjE3MSwgMC41OTk4MzgsIDAuODk3Mjc1LCAxLjU5MTY2LCAxLjk4ODQzIiwgXAotICAgICAgICAgICIwLjEwNDA0OCwgMC4xMjM4MTgsIDAuMzAyMjc2LCAwLjU5OTc4NiwgMC44OTcyNTgsIDEuNTkxNDgsIDEuOTg3NyIsIFwKLSAgICAgICAgICAiMC4xMDQwNDgsIDAuMTIzODE4LCAwLjMwMTg4NCwgMC41OTk4MiwgMC44OTcyNTgsIDEuNTkxNjksIDEuOTgzOTYiLCBcCi0gICAgICAgICAgIjAuMTA0MDYsIDAuMTIzODE0LCAwLjMwMTg5OCwgMC41OTk4MzEsIDAuODk3MTQxLCAxLjU4ODExLCAxLjk4Mzk1IiwgXAotICAgICAgICAgICIwLjEwNDAxOSwgMC4xMjM2NjgsIDAuMzAxODM2LCAwLjU5OTgyOSwgMC44OTYwMjIsIDEuNTg4MTcsIDEuOTgzNDMiLCBcCi0gICAgICAgICAgIjAuMTAzOTQzLCAwLjEyMzY3NCwgMC4zMDE4NzMsIDAuNTk5ODYsIDAuODk1Mzk1LCAxLjU4ODQ2LCAxLjk4NDQ5IiwgXAotICAgICAgICAgICIwLjEwMzgzLCAwLjEyMzU1NCwgMC4zMDIxMzksIDAuNTk5NjAyLCAwLjg5NjEyOCwgMS41ODc5NCwgMS45ODM4OSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQ2NzksIDAuMDA0NjgsIDAuMDA0Njg1LCAwLjAwNDY4NywgMC4wMDQ2ODgsIDAuMDA0Njg4LCAwLjAwNDY4OSIsIFwKLSAgICAgICAgICAiMC4wMDQ2OCwgMC4wMDQ2ODEsIDAuMDA0Njg2LCAwLjAwNDY4OCwgMC4wMDQ2ODksIDAuMDA0Njg5LCAwLjAwNDY4OSIsIFwKLSAgICAgICAgICAiMC4wMDQ3MjUsIDAuMDA0NzI2LCAwLjAwNDczLCAwLjAwNDczMiwgMC4wMDQ3MzMsIDAuMDA0NzMzLCAwLjAwNDczMyIsIFwKLSAgICAgICAgICAiMC4wMDQ3OSwgMC4wMDQ3OTEsIDAuMDA0Nzk2LCAwLjAwNDc5NywgMC4wMDQ3OTgsIDAuMDA0Nzk4LCAwLjAwNDc5OCIsIFwKLSAgICAgICAgICAiMC4wMDQ4NjYsIDAuMDA0ODY4LCAwLjAwNDg3MiwgMC4wMDQ4NzMsIDAuMDA0ODc0LCAwLjAwNDg3NCwgMC4wMDQ4NzQiLCBcCi0gICAgICAgICAgIjAuMDA0OTc4LCAwLjAwNDk3OSwgMC4wMDQ5ODIsIDAuMDA0OTgzLCAwLjAwNDk3NSwgMC4wMDQ5ODQsIDAuMDA0OTg0IiwgXAotICAgICAgICAgICIwLjAwNTA3NiwgMC4wMDUwNzYsIDAuMDA1MDc5LCAwLjAwNTA4LCAwLjAwNTA4LCAwLjAwNTA4LCAwLjAwNTA4MSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDU4LCAwLjAwNDU3OCwgMC4wMDQ1NjQsIDAuMDA0NTU2LCAwLjAwNDU1MywgMC4wMDQ1NSwgMC4wMDQ1NDgiLCBcCi0gICAgICAgICAgIjAuMDA0NTc0LCAwLjAwNDU3MiwgMC4wMDQ1NTgsIDAuMDA0NTUsIDAuMDA0NTQ3LCAwLjAwNDU0NCwgMC4wMDQ1NDMiLCBcCi0gICAgICAgICAgIjAuMDA0NjIyLCAwLjAwNDYyLCAwLjAwNDYwNiwgMC4wMDQ1OTcsIDAuMDA0NTk0LCAwLjAwNDU5LCAwLjAwNDU5IiwgXAotICAgICAgICAgICIwLjAwNDY3MSwgMC4wMDQ2NjksIDAuMDA0NjU2LCAwLjAwNDY0NywgMC4wMDQ2NDMsIDAuMDA0NjM5LCAwLjAwNDYzOCIsIFwKLSAgICAgICAgICAiMC4wMDQ3NDIsIDAuMDA0NzQsIDAuMDA0NzI2LCAwLjAwNDcxNywgMC4wMDQ3MTMsIDAuMDA0NzA5LCAwLjAwNDcwOCIsIFwKLSAgICAgICAgICAiMC4wMDQ4MzQsIDAuMDA0ODMyLCAwLjAwNDgxOSwgMC4wMDQ4MDgsIDAuMDA0ODA0LCAwLjAwNDc5OSwgMC4wMDQ3OTgiLCBcCi0gICAgICAgICAgIjAuMDA0OTM5LCAwLjAwNDkzNywgMC4wMDQ5MjUsIDAuMDA0OTEzLCAwLjAwNDkwOCwgMC4wMDQ5MDIsIDAuMDA0OTAxIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihSTikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjE1Njg3OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYxNTY4NzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2MTQ5ODQ7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyODIyLCAwLjAwMjc5MSwgMC4wMDI4MjEsIDAuMDAyODk5LCAwLjAwMjk2MSwgMC4wMDMxMTcsIDAuMDAzMjUyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA0ODAyLCAwLjAwNDgwNCwgMC4wMDQ4NjgsIDAuMDA0OTYxLCAwLjAwNTA3NywgMC4wMDUyNDIsIDAuMDA1NDk3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIkQiOwotICAgICAgc2RmX2NvbmQgOiAiRCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMjUsIC0wLjAyLCAtMC4wMTM3NSwgLTAuMDEzNzUsIC0wLjAwNzUsIC0wLjAxLCAtMC4wMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDE4NzUsIC0wLjAxNSwgLTAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAzMTI1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMjUsIC0wLjAyMTI1LCAtMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDM3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAzMTI1LCAtMC4wMjc1LCAtMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wNDM3NSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzNzUsIC0wLjAzMzc1LCAtMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDU4NzUsIC0wLjA1Mzc1LCAtMC4wNDc1LCAtMC4wNDc1LCAtMC4wNDEyNSwgLTAuMDM3NSwgLTAuMDM1IiwgXAotICAgICAgICAgICItMC4wNjEyNSwgLTAuMDU2MjUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDUsIC0wLjA0NjI1LCAtMC4wNDM3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2MjUsIDAuMDExMjUsIDAuMDE3NSwgMC4wMjM3NSwgMC4wMywgMC4wMzM3NSwgMC4wNDI1IiwgXAotICAgICAgICAgICItMC4wMDUsIDAuMDA2MjUsIDAuMDEyNSwgMC4wMTg3NSwgMC4wMjUsIDAuMDI4NzUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjAxMTI1LCAtMC4wMDYyNSwgMC4wMDYyNSwgMC4wMDYyNSwgMC4wMTI1LCAwLjAyMjUsIDAuMDI1IiwgXAotICAgICAgICAgICItMC4wMTc1LCAtMC4wMTI1LCAwLCAwLjAwNjI1LCAwLjAwNjI1LCAwLjAxNjI1LCAwLjAxODc1IiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAsIDAuMDA2MjUsIDAuMDEsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDI3NSwgLTAuMDIyNSwgLTAuMDEsIC0wLjAxLCAtMC4wMDM3NSwgMC4wMDYyNSwgMC4wMDg3NSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAtMC4wMDI1LCAwIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJEIjsKLSAgICAgIHNkZl9jb25kIDogIkQgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQzNzUsIDAuMDM4NzUsIDAuMDMyNSwgMC4wMjYyNSwgMC4wMjYyNSwgMC4wMjI1LCAwLjAyIiwgXAotICAgICAgICAgICIwLjA0ODc1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMjc1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiMC4wNjEyNSwgMC4wNSwgMC4wNDM3NSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzMzc1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDU2MjUsIDAuMDUsIDAuMDUsIDAuMDQzNzUsIDAuMDQsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiMC4wNzM3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1NjI1LCAwLjA1LCAwLjA0NjI1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjA3NzUsIDAuMDcyNSwgMC4wNjYyNSwgMC4wNiwgMC4wNiwgMC4wNTYyNSwgMC4wNTM3NSIsIFwKLSAgICAgICAgICAiMC4wODYyNSwgMC4wNzUsIDAuMDc1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDY1LCAwLjA1NjI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE4NzUsIDAuMDA3NSwgMC4wMDEyNSwgLTAuMDA1LCAtMC4wMTEyNSwgLTAuMDE1LCAtMC4wMjM3NSIsIFwKLSAgICAgICAgICAiMC4wMjM3NSwgMC4wMTg3NSwgMC4wMDYyNSwgMCwgMCwgLTAuMDEsIC0wLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMDM2MjUsIDAuMDI1LCAwLjAxODc1LCAwLjAxMjUsIDAuMDA2MjUsIC0wLjAwMzc1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiMC4wNDI1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMTg3NSwgMC4wMTI1LCAwLjAwODc1LCAwIiwgXAotICAgICAgICAgICIwLjA0ODc1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDI1LCAwLjAxODc1LCAwLjAwODc1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICIwLjA1MjUsIDAuMDQ3NSwgMC4wMzUsIDAuMDI4NzUsIDAuMDI4NzUsIDAuMDE4NzUsIDAuMDE2MjUiLCBcCi0gICAgICAgICAgIjAuMDYxMjUsIDAuMDUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMjc1LCAwLjAxODc1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IERGRlhMICoKLSAqIC0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChERkZYTCkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjgwMzgzNTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBmZiAoTjMwLFFCSU5UKSB7Ci0gICAgbmV4dF9zdGF0ZSA6ICJEIjsKLSAgICBjbG9ja2VkX29uIDogIkNLIjsKLSAgfQotICBwaW4oQ0spICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYwMjQwNDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MDIzNTE7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjAyNDA0OwotICAgIGNsb2NrIDogdHJ1ZTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDM3MTQsIDAuMDAzNzA0LCAwLjAwMzc3OCwgMC4wMDM4ODIsIDAuMDA0MDAxLCAwLjAwNDIzMiwgMC4wMDQ0MTkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDgzMTUsIDAuMDA4MzA2LCAwLjAwODM3NiwgMC4wMDg0OCwgMC4wMDg2MiwgMC4wMDg3MzYsIDAuMDA4OTE3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRCI7Ci0gICAgICBzZGZfY29uZCA6ICJEID09IDEnYjAiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMTM3MzUyLCAwLjE0NTU3NiwgMC4xNTQ5MywgMC4xNjI1MTcsIDAuMTY4NjA3LCAwLjE3NjU4LCAwLjE4MjU3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDcyODU4LCAwLjA4MTAwOSwgMC4wOTAxNTUsIDAuMDk3MTc5LCAwLjEwMjgxLCAwLjExMDI1OCwgMC4xMTU1OTkiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEQpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDcyNzcyMjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA3MjY3MzY7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNzI3NzIyOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjY5OCwgMC4wMDI2NzEsIDAuMDAyNzA4LCAwLjAwMjc1NiwgMC4wMDI4MzIsIDAuMDAyOTc2LCAwLjAwMzE0NCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzQ2MiwgMC4wMDM0NDYsIDAuMDAzNDY3LCAwLjAwMzUyLCAwLjAwMzYwMSwgMC4wMDM3MTYsIDAuMDAzODU4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDA2MjUsIC0wLjAwMTI1LCAtMC4wMDEyNSwgMC4wMDUsIDAuMDA1LCAwLjAwODc1LCAwLjAxMTI1IiwgXAotICAgICAgICAgICItMC4wMTc1LCAtMC4wMDYyNSwgLTAuMDA2MjUsIDAsIDAsIDAuMDAzNzUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTI1LCAtMC4wMTI1LCAtMC4wMDYyNSwgLTAuMDA2MjUsIC0wLjAwMjUsIDAiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDEyNSwgLTAuMDA2MjUsIC0wLjAwMjUsIDAiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMTI1LCAtMC4wMDg3NSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjAzMzc1LCAtMC4wMjg3NSwgLTAuMDIyNSwgLTAuMDIyNSwgLTAuMDE2MjUsIC0wLjAxMjUsIC0wLjAxIiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTUsIC0wLjAxMjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMjUsIDAuMDIzNzUsIDAuMDMsIDAuMDM2MjUsIDAuMDQyNSwgMC4wNDYyNSwgMC4wNTUiLCBcCi0gICAgICAgICAgIjAuMDA3NSwgMC4wMTg3NSwgMC4wMjUsIDAuMDMxMjUsIDAuMDM3NSwgMC4wNDEyNSwgMC4wNSIsIFwKLSAgICAgICAgICAiMC4wMDc1LCAwLjAxMjUsIDAuMDE4NzUsIDAuMDI1LCAwLjAzMTI1LCAwLjA0MTI1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjAwMTI1LCAwLjAxMjUsIDAuMDE4NzUsIDAuMDI1LCAwLjAzMTI1LCAwLjAzNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4wMDEyNSwgMC4wMDYyNSwgMC4wMTg3NSwgMC4wMjUsIDAuMDMxMjUsIDAuMDM1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICItMC4wMDI1LCAwLjAwMjUsIDAuMDE1LCAwLjAyMTI1LCAwLjAyNzUsIDAuMDMxMjUsIDAuMDQiLCBcCi0gICAgICAgICAgIi0wLjAwNSwgMC4wMDYyNSwgMC4wMTI1LCAwLjAxODc1LCAwLjAyNSwgMC4wMjg3NSwgMC4wMzc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyNSwgMC4wMiwgMC4wMTM3NSwgMC4wMDc1LCAwLjAwNzUsIDAuMDAzNzUsIDAuMDAxMjUiLCBcCi0gICAgICAgICAgIjAuMDMsIDAuMDI1LCAwLjAxODc1LCAwLjAxMjUsIDAuMDEyNSwgMC4wMDg3NSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiMC4wMzYyNSwgMC4wMzEyNSwgMC4wMjUsIDAuMDE4NzUsIDAuMDE4NzUsIDAuMDE1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMDQyNSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMjUsIDAuMDIxMjUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMDQ4NzUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMjUsIDAuMDIxMjUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMDUyNSwgMC4wNDc1LCAwLjA0MTI1LCAwLjAzNSwgMC4wMzUsIDAuMDMxMjUsIDAuMDIyNSIsIFwKLSAgICAgICAgICAiMC4wNjEyNSwgMC4wNSwgMC4wNDM3NSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzMzc1LCAwLjAzMTI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEyNSwgMC4wMDEyNSwgLTAuMDExMjUsIC0wLjAxNzUsIC0wLjAyMzc1LCAtMC4wMjc1LCAtMC4wMzYyNSIsIFwKLSAgICAgICAgICAiMC4wMTc1LCAwLjAwNjI1LCAwLCAtMC4wMTI1LCAtMC4wMTg3NSwgLTAuMDIyNSwgLTAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMDIzNzUsIDAuMDEyNSwgMC4wMDYyNSwgLTAuMDA2MjUsIC0wLjAxMjUsIC0wLjAxNjI1LCAtMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMDMsIDAuMDE4NzUsIDAuMDA2MjUsIDAsIC0wLjAwNjI1LCAtMC4wMTYyNSwgLTAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMDMsIDAuMDI1LCAwLjAxMjUsIDAuMDA2MjUsIDAsIC0wLjAxLCAtMC4wMTI1IiwgXAotICAgICAgICAgICIwLjAzMzc1LCAwLjAyODc1LCAwLjAxNjI1LCAwLjAxLCAwLjAwMzc1LCAtMC4wMDYyNSwgLTAuMDA4NzUiLCBcCi0gICAgICAgICAgIjAuMDQyNSwgMC4wMzEyNSwgMC4wMTg3NSwgMC4wMTI1LCAwLjAwNjI1LCAtMC4wMDM3NSwgLTAuMDA2MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFEpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4xOTkwMjg7Ci0gICAgZnVuY3Rpb24gOiAiTjMwIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBub25fdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJpc2luZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMjA5MzUsIDAuMTMxNDMzLCAwLjIyNjIyLCAwLjM4NDY2OCwgMC41NDMxMzQsIDAuOTEyODIxLCAxLjEyMTIzIiwgXAotICAgICAgICAgICIwLjEyOTEyLCAwLjEzOTU4NSwgMC4yMzQyMjgsIDAuMzkyODUxLCAwLjU1MTM1NywgMC45MjEwMTIsIDEuMTMyMjciLCBcCi0gICAgICAgICAgIjAuMTM4NDI1LCAwLjE0ODkwMywgMC4yNDM3NDksIDAuNDAyMTQ2LCAwLjU2MDU5NywgMC45MzAyNywgMS4xMzc5MiIsIFwKLSAgICAgICAgICAiMC4xNDU4OSwgMC4xNTYzNiwgMC4yNTEwMDUsIDAuNDA5NTk5LCAwLjU2NzEwNSwgMC45MzQ1MzQsIDEuMTQ0OTYiLCBcCi0gICAgICAgICAgIjAuMTUxODA0LCAwLjE2MjI4NCwgMC4yNTY4OTksIDAuNDE1NTIsIDAuNTcyODEsIDAuOTQwNTEsIDEuMTUwOSIsIFwKLSAgICAgICAgICAiMC4xNTk4MTksIDAuMTcwMzgsIDAuMjY0Nzg0LCAwLjQyMzU0MiwgMC41ODAyNiwgMC45NDg1MzcsIDEuMTYyODMiLCBcCi0gICAgICAgICAgIjAuMTY1NDgsIDAuMTc1OTUsIDAuMjcwNDA3LCAwLjQyOTE1NywgMC41ODYzMiwgMC45NTczMTcsIDEuMTY0NjIiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTE4NTA0LCAwLjE0MDE1NSwgMC4zNDAxODIsIDAuNjczODY3LCAxLjAwNzU2LCAxLjc4NjM1LCAyLjIyODc2IiwgXAotICAgICAgICAgICIwLjExODUwMywgMC4xNDA0NDgsIDAuMzQwMDMzLCAwLjY3MzcxOCwgMS4wMDcwNiwgMS43ODU1NCwgMi4yMzA4NSIsIFwKLSAgICAgICAgICAiMC4xMTg1MDIsIDAuMTQwMzQ5LCAwLjMzOTYyNiwgMC42NzM4ODYsIDEuMDA3NjEsIDEuNzg2NDMsIDIuMjI4MTgiLCBcCi0gICAgICAgICAgIjAuMTE4NDk2LCAwLjE0MDQ0OCwgMC4zMzk0NjUsIDAuNjczNjU0LCAxLjAwNjQ1LCAxLjc4MTU4LCAyLjIyNjY4IiwgXAotICAgICAgICAgICIwLjExODUyNiwgMC4xNDA0NTQsIDAuMzQwMjc0LCAwLjY3Mzg4MywgMS4wMDYzOSwgMS43ODQyMywgMi4yMjkyNiIsIFwKLSAgICAgICAgICAiMC4xMTg1MDcsIDAuMTQwMjIsIDAuMzM5NTQzLCAwLjY3Mzk3OCwgMS4wMDQ1NiwgMS43ODIwNiwgMi4yMzE1MiIsIFwKLSAgICAgICAgICAiMC4xMTgzMzMsIDAuMTQwMjI0LCAwLjMzOTUzNSwgMC42NzM5MjYsIDEuMDA2MDksIDEuNzg2MywgMi4yMjQxNCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMjczNjUsIDAuMTM3MDIzLCAwLjIyNDMyNSwgMC4zNjkyNTUsIDAuNTEzNDgzLCAwLjg1MzE0MywgMS4wNDU5NSIsIFwKLSAgICAgICAgICAiMC4xMzU2NjUsIDAuMTQ1MzMzLCAwLjIzMjEzMywgMC4zNzc1MDQsIDAuNTIyNDM4LCAwLjg1OTM5NCwgMS4wNTMzNSIsIFwKLSAgICAgICAgICAiMC4xNDQ5NSwgMC4xNTQ2MDksIDAuMjQxNzc2LCAwLjM4Njg0MywgMC41MzE5MzQsIDAuODcwNzMsIDEuMDYyOTIiLCBcCi0gICAgICAgICAgIjAuMTUyNjEyLCAwLjE2MjE3MSwgMC4yNDkwNTYsIDAuMzk0NDA0LCAwLjUzOTM2LCAwLjg3NjIyOSwgMS4wNzAyNiIsIFwKLSAgICAgICAgICAiMC4xNTg2MjEsIDAuMTY4Mjg0LCAwLjI1NTc5NiwgMC40MDA0NzIsIDAuNTQ1NDU3LCAwLjg4NDMzOCwgMS4wNzU3NiIsIFwKLSAgICAgICAgICAiMC4xNjY2MTYsIDAuMTc2MzI0LCAwLjI2MzQxMiwgMC40MDg0NSwgMC41NTM0OTIsIDAuODkxNTUzLCAxLjA4NDY0IiwgXAotICAgICAgICAgICIwLjE3MjU3MywgMC4xODIyNDMsIDAuMjY5NDA3LCAwLjQxNDQ0NSwgMC41NTk3MzIsIDAuODk4NDk1LCAxLjA5MTk3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwNjk3MywgMC4xMjY0NzgsIDAuMzA1NTk3LCAwLjYwNDUwOSwgMC45MDA1OTIsIDEuNTk4MDEsIDEuOTk5OTIiLCBcCi0gICAgICAgICAgIjAuMTA2NDUsIDAuMTI2ODE2LCAwLjMwNDAzNiwgMC42MDQ0OTMsIDAuOTAzNTM0LCAxLjU5Nzg3LCAxLjk4ODk0IiwgXAotICAgICAgICAgICIwLjEwNjk4OSwgMC4xMjY2NzMsIDAuMzA1NjE5LCAwLjYwNDQ5NiwgMC45MDMzMzgsIDEuNTk3NjUsIDIiLCBcCi0gICAgICAgICAgIjAuMTA2OTMzLCAwLjEyNTk4NCwgMC4zMDQxMywgMC42MDQ1MTYsIDAuOTAzNTU1LCAxLjU5ODc1LCAxLjk4ODU2IiwgXAotICAgICAgICAgICIwLjEwNjAyMywgMC4xMjY1NDUsIDAuMzAyODAxLCAwLjYwNDUzMywgMC45MDM1NjksIDEuNTk4NjEsIDEuOTkxODgiLCBcCi0gICAgICAgICAgIjAuMTA3MDQ1LCAwLjEyNjgxOSwgMC4zMDQyNSwgMC42MDQ0OTcsIDAuOTAzNDc3LCAxLjYwMTE1LCAxLjk5NTQ3IiwgXAotICAgICAgICAgICIwLjEwNjAxLCAwLjEyNTc0NSwgMC4zMDU2MDcsIDAuNjA0MzY3LCAwLjkwMjU1MywgMS41OTgxOCwgMS45OTY5NyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQ2OTcsIDAuMDA0Njk0LCAwLjAwNDY3NywgMC4wMDQ2NjcsIDAuMDA0NjYzLCAwLjAwNDY1OSwgMC4wMDQ2NTciLCBcCi0gICAgICAgICAgIjAuMDA0Njg5LCAwLjAwNDY4NywgMC4wMDQ2NjksIDAuMDA0NjU5LCAwLjAwNDY1NSwgMC4wMDQ2NSwgMC4wMDQ2NDgiLCBcCi0gICAgICAgICAgIjAuMDA0NzM0LCAwLjAwNDczMiwgMC4wMDQ3MTUsIDAuMDA0NzAzLCAwLjAwNDY5OSwgMC4wMDQ2OTQsIDAuMDA0NjkzIiwgXAotICAgICAgICAgICIwLjAwNDc4NywgMC4wMDQ3ODUsIDAuMDA0NzY4LCAwLjAwNDc1NywgMC4wMDQ3NTIsIDAuMDA0NzQ3LCAwLjAwNDc0NSIsIFwKLSAgICAgICAgICAiMC4wMDQ4NTIsIDAuMDA0ODQ5LCAwLjAwNDgzMywgMC4wMDQ4MjEsIDAuMDA0ODE3LCAwLjAwNDgxMSwgMC4wMDQ4MDkiLCBcCi0gICAgICAgICAgIjAuMDA0OTQxLCAwLjAwNDk1MSwgMC4wMDQ5MjIsIDAuMDA0OTIyLCAwLjAwNDkxNywgMC4wMDQ5MTEsIDAuMDA0ODk4IiwgXAotICAgICAgICAgICIwLjAwNTA2LCAwLjAwNTA0MiwgMC4wMDUwNDEsIDAuMDA1MDEyLCAwLjAwNTAwNiwgMC4wMDUsIDAuMDA0OTk4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0NzQ1LCAwLjAwNDc0NywgMC4wMDQ3NTIsIDAuMDA0NzU0LCAwLjAwNDc1NCwgMC4wMDQ3NTUsIDAuMDA0NzU1IiwgXAotICAgICAgICAgICIwLjAwNDc0MiwgMC4wMDQ3NDMsIDAuMDA0NzQ4LCAwLjAwNDc1LCAwLjAwNDc1MSwgMC4wMDQ3NTIsIDAuMDA0NzUyIiwgXAotICAgICAgICAgICIwLjAwNDc5NiwgMC4wMDQ3OTcsIDAuMDA0ODAxLCAwLjAwNDgwNCwgMC4wMDQ4MDQsIDAuMDA0ODA0LCAwLjAwNDgwNCIsIFwKLSAgICAgICAgICAiMC4wMDQ4NDMsIDAuMDA0ODQ0LCAwLjAwNDg0OCwgMC4wMDQ4NSwgMC4wMDQ4NSwgMC4wMDQ4NTIsIDAuMDA0ODUyIiwgXAotICAgICAgICAgICIwLjAwNDkxOCwgMC4wMDQ5MTksIDAuMDA0OTIzLCAwLjAwNDkyNSwgMC4wMDQ5MjUsIDAuMDA0OTI1LCAwLjAwNDkyNSIsIFwKLSAgICAgICAgICAiMC4wMDUwMjUsIDAuMDA1MDI2LCAwLjAwNTAzLCAwLjAwNTAzMSwgMC4wMDUwMzEsIDAuMDA1MDMxLCAwLjAwNTAzMSIsIFwKLSAgICAgICAgICAiMC4wMDUxMjgsIDAuMDA1MTI4LCAwLjAwNTEzMSwgMC4wMDUxNDYsIDAuMDA1MTQ2LCAwLjAwNTEzMiwgMC4wMDUxMzIiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFFOKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMTk5Mjc0OwotICAgIGZ1bmN0aW9uIDogIlFCSU5UIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBub25fdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJpc2luZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMzczNTIsIDAuMTQ3ODY5LCAwLjI0MjU5NSwgMC40MDA0LCAwLjU1ODE3NiwgMC45MjY1OCwgMS4xMzY4OSIsIFwKLSAgICAgICAgICAiMC4xNDU1NzYsIDAuMTU2MDk3LCAwLjI1MDgwNiwgMC40MDg2MzIsIDAuNTY2NDMyLCAwLjkzNDU5OSwgMS4xNDUxIiwgXAotICAgICAgICAgICIwLjE1NDkzLCAwLjE2NTQ0NywgMC4yNjAxMjQsIDAuNDE3OTU3LCAwLjU3NTc5NSwgMC45NDQxMzcsIDEuMTU0MzEiLCBcCi0gICAgICAgICAgIjAuMTYyNTE3LCAwLjE3MzAyNiwgMC4yNjc3NDcsIDAuNDI1NTY1LCAwLjU4MzM3MSwgMC45NTE1NDQsIDEuMTYyMDQiLCBcCi0gICAgICAgICAgIjAuMTY4NjA3LCAwLjE3OTEyNCwgMC4yNzM5MDUsIDAuNDMxNjUsIDAuNTg5NDYzLCAwLjk1NzgyMywgMS4xNjgwMyIsIFwKLSAgICAgICAgICAiMC4xNzY1OCwgMC4xODcxMDQsIDAuMjgxODIyLCAwLjQzOTYyNCwgMC41OTc0NDksIDAuOTY1NjMyLCAxLjE3NjEyIiwgXAotICAgICAgICAgICIwLjE4MjU3NSwgMC4xOTMwODksIDAuMjg3Nzg3LCAwLjQ0NTU0NywgMC42MDM0MjksIDAuOTcxODQ3LCAxLjE4MjMxIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExNTkxMywgMC4xMzgwMzIsIDAuMzM3Nzg1LCAwLjY3MDIzMiwgMS4wMDE4MiwgMS43NzYxNCwgMi4yMjIxIiwgXAotICAgICAgICAgICIwLjExNTkzMSwgMC4xMzgxOTUsIDAuMzM3MzczLCAwLjY3MDIzMiwgMS4wMDI3NiwgMS43NzcwOSwgMi4yMTkxNCIsIFwKLSAgICAgICAgICAiMC4xMTU5MTMsIDAuMTM4MDM3LCAwLjMzNzc2MSwgMC42NzAyMzQsIDEuMDAyNzQsIDEuNzc2MTcsIDIuMjIxOTYiLCBcCi0gICAgICAgICAgIjAuMTE1NzcyLCAwLjEzODAyMiwgMC4zMzczNzgsIDAuNjcwMjMyLCAxLjAwMjc3LCAxLjc3NzE3LCAyLjIxOTExIiwgXAotICAgICAgICAgICIwLjExNTg1MSwgMC4xMzgwMzQsIDAuMzM3MjAzLCAwLjY3MDIzMywgMS4wMDI3OCwgMS43NzYwOSwgMi4yMTk4OSIsIFwKLSAgICAgICAgICAiMC4xMTU5MTEsIDAuMTM4MTMzLCAwLjMzNzE1MywgMC42NzAyMTksIDEuMDAyNzUsIDEuNzc4NTcsIDIuMjE5NTMiLCBcCi0gICAgICAgICAgIjAuMTE1OSwgMC4xMzc5ODUsIDAuMzM3NzUzLCAwLjY3MDIsIDEuMDAxMjksIDEuNzc2MTksIDIuMjE4OTEiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTIzNTUyLCAwLjEzMzIwOSwgMC4yMjAwMDcsIDAuMzY0NzM2LCAwLjUwOTQyLCAwLjg0NzA3NSwgMS4wMzk4OCIsIFwKLSAgICAgICAgICAiMC4xMzE3MzYsIDAuMTQxMzgyLCAwLjIyODE5OSwgMC4zNzI5MywgMC41MTc1NjMsIDAuODU1MjY0LCAxLjA0ODIiLCBcCi0gICAgICAgICAgIjAuMTQxMDI2LCAwLjE1MDY3NSwgMC4yMzc0OCwgMC4zODIyMDgsIDAuNTI2ODk0LCAwLjg2NDU1MSwgMS4wNTczOCIsIFwKLSAgICAgICAgICAiMC4xNDg0ODEsIDAuMTU4MTI3LCAwLjI0NDk0MywgMC4zODk2NjUsIDAuNTM0MzA4LCAwLjg3MjAxMSwgMS4wNjQ5NyIsIFwKLSAgICAgICAgICAiMC4xNTQzNjMsIDAuMTY0MDEsIDAuMjUwODI3LCAwLjM5NTUxMiwgMC41NDAxODgsIDAuODc3ODMyLCAxLjA3MDg1IiwgXAotICAgICAgICAgICIwLjE2MjM5NiwgMC4xNzIxMDYsIDAuMjU4ODg2LCAwLjQwMzYyNCwgMC41NDgzMzYsIDAuODg1OTk2LCAxLjA3ODgxIiwgXAotICAgICAgICAgICIwLjE2ODA0MSwgMC4xNzc3MzMsIDAuMjY0NTI1LCAwLjQwOTI0MywgMC41NTM5MTYsIDAuODkxNTQzLCAxLjA4NDQ0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwMzc5NCwgMC4xMjMzNjYsIDAuMzAxOTkyLCAwLjU5OTYwNiwgMC44OTcwNjMsIDEuNTkxNDMsIDEuOTg1MjUiLCBcCi0gICAgICAgICAgIjAuMTAzNzk3LCAwLjEyMzU3MiwgMC4zMDE5MjgsIDAuNTk5NjUzLCAwLjg5Njk3MSwgMS41OTE1NCwgMS45ODgzMSIsIFwKLSAgICAgICAgICAiMC4xMDM3OTQsIDAuMTIzNTkzLCAwLjMwMjAzMiwgMC41OTk1OTYsIDAuODk3MDYsIDEuNTkxNDMsIDEuOTg0NzMiLCBcCi0gICAgICAgICAgIjAuMTAzNzk5LCAwLjEyMzU3MiwgMC4zMDE4ODgsIDAuNTk5NjE4LCAwLjg5NjgwNSwgMS41ODc5OCwgMS45ODQ0NCIsIFwKLSAgICAgICAgICAiMC4xMDM3NzksIDAuMTIzNTY5LCAwLjMwMTkyNSwgMC41OTk0OTEsIDAuODk1ODAzLCAxLjU4ODMsIDEuOTg0NDMiLCBcCi0gICAgICAgICAgIjAuMTAzNzU5LCAwLjEyMzM2NywgMC4zMDE0MTksIDAuNTk5NTk5LCAwLjg5NTIxNCwgMS41ODgxMywgMS45ODgxMSIsIFwKLSAgICAgICAgICAiMC4xMDM2MDgsIDAuMTIzMzM2LCAwLjMwMTQxOSwgMC41OTk0MDMsIDAuODk1ODU4LCAxLjU5MTIxLCAxLjk4NTQ3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDc0NSwgMC4wMDQ3NDcsIDAuMDA0NzUyLCAwLjAwNDc1NCwgMC4wMDQ3NTQsIDAuMDA0NzU1LCAwLjAwNDc1NSIsIFwKLSAgICAgICAgICAiMC4wMDQ3NDIsIDAuMDA0NzQzLCAwLjAwNDc0OCwgMC4wMDQ3NSwgMC4wMDQ3NTEsIDAuMDA0NzUyLCAwLjAwNDc1MiIsIFwKLSAgICAgICAgICAiMC4wMDQ3OTYsIDAuMDA0Nzk3LCAwLjAwNDgwMSwgMC4wMDQ4MDQsIDAuMDA0ODA0LCAwLjAwNDgwNCwgMC4wMDQ4MDQiLCBcCi0gICAgICAgICAgIjAuMDA0ODQzLCAwLjAwNDg0NCwgMC4wMDQ4NDgsIDAuMDA0ODUsIDAuMDA0ODUsIDAuMDA0ODUyLCAwLjAwNDg1MiIsIFwKLSAgICAgICAgICAiMC4wMDQ5MTgsIDAuMDA0OTE5LCAwLjAwNDkyMywgMC4wMDQ5MjUsIDAuMDA0OTI1LCAwLjAwNDkyNSwgMC4wMDQ5MjUiLCBcCi0gICAgICAgICAgIjAuMDA1MDI1LCAwLjAwNTAyNiwgMC4wMDUwMywgMC4wMDUwMzEsIDAuMDA1MDMxLCAwLjAwNTAzMSwgMC4wMDUwMzEiLCBcCi0gICAgICAgICAgIjAuMDA1MTI4LCAwLjAwNTEyOCwgMC4wMDUxMzEsIDAuMDA1MTQ2LCAwLjAwNTE0NiwgMC4wMDUxMzIsIDAuMDA1MTMyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0Njk3LCAwLjAwNDY5NCwgMC4wMDQ2NzcsIDAuMDA0NjY3LCAwLjAwNDY2MywgMC4wMDQ2NTksIDAuMDA0NjU3IiwgXAotICAgICAgICAgICIwLjAwNDY4OSwgMC4wMDQ2ODcsIDAuMDA0NjY5LCAwLjAwNDY1OSwgMC4wMDQ2NTUsIDAuMDA0NjUsIDAuMDA0NjQ4IiwgXAotICAgICAgICAgICIwLjAwNDczNCwgMC4wMDQ3MzIsIDAuMDA0NzE1LCAwLjAwNDcwMywgMC4wMDQ2OTksIDAuMDA0Njk0LCAwLjAwNDY5MyIsIFwKLSAgICAgICAgICAiMC4wMDQ3ODcsIDAuMDA0Nzg1LCAwLjAwNDc2OCwgMC4wMDQ3NTcsIDAuMDA0NzUyLCAwLjAwNDc0NywgMC4wMDQ3NDUiLCBcCi0gICAgICAgICAgIjAuMDA0ODUyLCAwLjAwNDg0OSwgMC4wMDQ4MzMsIDAuMDA0ODIxLCAwLjAwNDgxNywgMC4wMDQ4MTEsIDAuMDA0ODA5IiwgXAotICAgICAgICAgICIwLjAwNDk0MSwgMC4wMDQ5NTEsIDAuMDA0OTIyLCAwLjAwNDkyMiwgMC4wMDQ5MTcsIDAuMDA0OTExLCAwLjAwNDg5OCIsIFwKLSAgICAgICAgICAiMC4wMDUwNiwgMC4wMDUwNDIsIDAuMDA1MDQxLCAwLjAwNTAxMiwgMC4wMDUwMDYsIDAuMDA1LCAwLjAwNDk5OCIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogRExZMlgxICoKLSAqIC0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoRExZMlgxKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuNTQ1MjQxOwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2MTczNDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MTczNDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2MTcxNjc7Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4zNDUzODM7Ci0gICAgZnVuY3Rpb24gOiAiQSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTMwOTY5LCAwLjE0OTYzLCAwLjI1NTIwNiwgMC4zNDgzODYsIDAuNDcyNTEsIDAuNzIwNjkzLCAwLjg3NTkxIiwgXAotICAgICAgICAgICIwLjEzODM2NCwgMC4xNTcwMzIsIDAuMjYyNjA2LCAwLjM1NTc4NywgMC40Nzk5MTIsIDAuNzI4MDg5LCAwLjg4MzMwOSIsIFwKLSAgICAgICAgICAiMC4xNDQyMywgMC4xNjI4ODYsIDAuMjY4NDU1LCAwLjM2MTYzMiwgMC40ODU3NzksIDAuNzM0MDMsIDAuODg5MTIxIiwgXAotICAgICAgICAgICIwLjE0ODcxNSwgMC4xNjczNiwgMC4yNzI5MzgsIDAuMzY2MTIxLCAwLjQ5MDI0NywgMC43Mzg0ODgsIDAuODkzNjM5IiwgXAotICAgICAgICAgICIwLjE1MjE4NSwgMC4xNzA4MzQsIDAuMjc2NDA3LCAwLjM2OTU3NywgMC40OTM3MywgMC43NDE5NzQsIDAuODk3MTE5IiwgXAotICAgICAgICAgICIwLjE1Njg4OSwgMC4xNzU1MzQsIDAuMjgxMTk1LCAwLjM3NDM0NywgMC40OTg0MjcsIDAuNzQ2ODM3LCAwLjkwMTgzIiwgXAotICAgICAgICAgICIwLjE2MDQ0MywgMC4xNzkxMTIsIDAuMjg0Njg2LCAwLjM3NzgyMiwgMC41MDIwMjksIDAuNzUwMzMxLCAwLjkwNTMzNyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzE1OTgsIDAuMTEwNDksIDAuMzMyODc0LCAwLjUyODQ5MiwgMC43OTExOTksIDEuMzE0ODksIDEuNjM5NjYiLCBcCi0gICAgICAgICAgIjAuMDcxNjA5LCAwLjExMDUwNywgMC4zMzI4NzEsIDAuNTI4NDk0LCAwLjc5MTE5LCAxLjMxNDgsIDEuNjQwNTMiLCBcCi0gICAgICAgICAgIjAuMDcxNTc0LCAwLjExMDM3MSwgMC4zMzI4NywgMC41Mjg0NTcsIDAuNzkwMDE4LCAxLjMxMzMzLCAxLjY0MjM2IiwgXAotICAgICAgICAgICIwLjA3MTYxMiwgMC4xMTA0NTgsIDAuMzMyODcxLCAwLjUyODQ4NiwgMC43OTExOTMsIDEuMzEzMTEsIDEuNjQwNTUiLCBcCi0gICAgICAgICAgIjAuMDcxNjEzLCAwLjExMDQ4OCwgMC4zMzI0NDksIDAuNTI4NDA4LCAwLjc5MDAwOCwgMS4zMTM0NCwgMS42NDA0MiIsIFwKLSAgICAgICAgICAiMC4wNzE2MDIsIDAuMTEwNDgsIDAuMzMyODI2LCAwLjUyODI4MiwgMC43OTAwMDksIDEuMzEzMTUsIDEuNjQyMyIsIFwKLSAgICAgICAgICAiMC4wNzE2NDYsIDAuMTEwMzYsIDAuMzMyNDYzLCAwLjUyODU0OSwgMC43ODk3MSwgMS4zMTMxLCAxLjY0MDYyIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEzMDg2NiwgMC4xNDkwMjIsIDAuMjUxNjY0LCAwLjM0MjA5NywgMC40NjI3NDcsIDAuNzA0MDUxLCAwLjg1NDg3NSIsIFwKLSAgICAgICAgICAiMC4xMzgxMiwgMC4xNTYyNjEsIDAuMjU4ODY0LCAwLjM0OTM3MSwgMC40Njk5ODYsIDAuNzExMjgxLCAwLjg2MjAyNSIsIFwKLSAgICAgICAgICAiMC4xNDM5NDksIDAuMTYyMDk4LCAwLjI2NDcxMiwgMC4zNTUxODQsIDAuNDc1ODU5LCAwLjcxNzEwOSwgMC44Njc5MTgiLCBcCi0gICAgICAgICAgIjAuMTQ4MTE5LCAwLjE2NjI2MywgMC4yNjg4NjIsIDAuMzU5Mzc3LCAwLjQ3OTk4OSwgMC43MjEyMDYsIDAuODcyMDM5IiwgXAotICAgICAgICAgICIwLjE1MTQ1MSwgMC4xNjk2LCAwLjI3MjIsIDAuMzYyNjc0LCAwLjQ4MzI5MywgMC43MjQ1MjcsIDAuODc1NDI4IiwgXAotICAgICAgICAgICIwLjE1NTg4OCwgMC4xNzQwMjIsIDAuMjc2NTc4LCAwLjM2NzA5NywgMC40ODc2OTMsIDAuNzI5MDM5LCAwLjg3OTgzMyIsIFwKLSAgICAgICAgICAiMC4xNTkxMzUsIDAuMTc3MjQxLCAwLjI3OTg1NywgMC4zNzAzNjcsIDAuNDkwOTc2LCAwLjczMjI5OCwgMC44ODMwNDgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY4MTU5LCAwLjEwNTAyMiwgMC4zMTUzNzUsIDAuNTAyMzc1LCAwLjc1MTEzOSwgMS4yNDU4NywgMS41NTYyMyIsIFwKLSAgICAgICAgICAiMC4wNjgyLCAwLjEwNTA0NywgMC4zMTU5MzEsIDAuNTAyNTA2LCAwLjc1MTEzNiwgMS4yNDg3NCwgMS41NTY2MSIsIFwKLSAgICAgICAgICAiMC4wNjgxOTksIDAuMTA1MDI1LCAwLjMxNTI0OSwgMC41MDE1ODYsIDAuNzQ5MzcxLCAxLjI0ODY5LCAxLjU1NjA4IiwgXAotICAgICAgICAgICIwLjA2ODE2NCwgMC4xMDUwMzksIDAuMzE1OTM0LCAwLjUwMTM2NywgMC43NTEwOTksIDEuMjQ2ODQsIDEuNTU2NTYiLCBcCi0gICAgICAgICAgIjAuMDY4MTY2LCAwLjEwNDkwMywgMC4zMTU5MjcsIDAuNTAyMjcxLCAwLjc1MTA4MywgMS4yNDc5MSwgMS41NTYxNCIsIFwKLSAgICAgICAgICAiMC4wNjgyMDIsIDAuMTA0OTUsIDAuMzE1OTI0LCAwLjUwMTM1NSwgMC43NTEwOSwgMS4yNDU4NywgMS41NTYwOCIsIFwKLSAgICAgICAgICAiMC4wNjgyMDcsIDAuMTA0ODQ2LCAwLjMxNTg4NiwgMC41MDI0NTcsIDAuNzUwMDc0LCAxLjI0NTk2LCAxLjU1OTYxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA3MjgzLCAwLjAwNzI5MiwgMC4wMDczMDUsIDAuMDA3MzA4LCAwLjAwNzMxMSwgMC4wMDczMTIsIDAuMDA3MzE2IiwgXAotICAgICAgICAgICIwLjAwNzI5MiwgMC4wMDczMDEsIDAuMDA3MzE1LCAwLjAwNzMxOCwgMC4wMDczMiwgMC4wMDczMjQsIDAuMDA3MzIyIiwgXAotICAgICAgICAgICIwLjAwNzM2NiwgMC4wMDczNzUsIDAuMDA3Mzg5LCAwLjAwNzM5MiwgMC4wMDczOTQsIDAuMDA3Mzk2LCAwLjAwNzM5NyIsIFwKLSAgICAgICAgICAiMC4wMDc0NywgMC4wMDc0NzgsIDAuMDA3NDkyLCAwLjAwNzQ5NSwgMC4wMDc0OTcsIDAuMDA3NDk5LCAwLjAwNzUiLCBcCi0gICAgICAgICAgIjAuMDA3NjA0LCAwLjAwNzYxMywgMC4wMDc2MjcsIDAuMDA3NjMsIDAuMDA3NjMyLCAwLjAwNzYzNCwgMC4wMDc2MjQiLCBcCi0gICAgICAgICAgIjAuMDA3ODEzLCAwLjAwNzgyMiwgMC4wMDc4NDksIDAuMDA3ODUyLCAwLjAwNzg0MSwgMC4wMDc4NTYsIDAuMDA3ODU3IiwgXAotICAgICAgICAgICIwLjAwODAxNiwgMC4wMDgwMjQsIDAuMDA4MDUyLCAwLjAwODA1MywgMC4wMDgwNTcsIDAuMDA4MDYsIDAuMDA4MDQ1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA5NTUyLCAwLjAwOTU2MywgMC4wMDk1ODEsIDAuMDA5NTg2LCAwLjAwOTU4OCwgMC4wMDk1ODksIDAuMDA5NTkiLCBcCi0gICAgICAgICAgIjAuMDA5NTU0LCAwLjAwOTU2NiwgMC4wMDk1ODQsIDAuMDA5NTg4LCAwLjAwOTU5MSwgMC4wMDk1OTMsIDAuMDA5NTk0IiwgXAotICAgICAgICAgICIwLjAwOTYzNCwgMC4wMDk2NDYsIDAuMDA5NjYzLCAwLjAwOTY2NywgMC4wMDk2NjksIDAuMDA5NjcyLCAwLjAwOTY3MiIsIFwKLSAgICAgICAgICAiMC4wMDk3MzUsIDAuMDA5NzQ3LCAwLjAwOTc2NCwgMC4wMDk3NjgsIDAuMDA5Nzc3LCAwLjAwOTc3OSwgMC4wMDk3OCIsIFwKLSAgICAgICAgICAiMC4wMDk4NTksIDAuMDA5ODcsIDAuMDA5ODg3LCAwLjAwOTg5MSwgMC4wMDk4ODYsIDAuMDA5ODk2LCAwLjAwOTg4OSIsIFwKLSAgICAgICAgICAiMC4wMTAwODEsIDAuMDEwMDksIDAuMDEwMDk3LCAwLjAxMDEwMSwgMC4wMTAxMDQsIDAuMDEwMTE5LCAwLjAxMDEyIiwgXAotICAgICAgICAgICIwLjAxMDI2OCwgMC4wMTAyODgsIDAuMDEwMjk2LCAwLjAxMDMsIDAuMDEwMzAzLCAwLjAxMDMxNSwgMC4wMTAzMTYiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IERMWTNYMSAqCi0gKiAtLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKERMWTNYMSkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjc1MTMwNDsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjgzODE1OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDY4Mzc3NDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2ODM4MTU7Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4zNDY0NTI7Ci0gICAgZnVuY3Rpb24gOiAiQSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTc1MjY2LCAwLjE5Mzg0NywgMC4yOTkyMTMsIDAuMzkyMjE2LCAwLjUxNjI2MiwgMC43NjQ1MTMsIDAuOTE5NjYiLCBcCi0gICAgICAgICAgIjAuMTgyNzM0LCAwLjIwMTMwNywgMC4zMDY2NiwgMC4zOTk2OTUsIDAuNTIzNzksIDAuNzcxOTc3LCAwLjkyNzA3OCIsIFwKLSAgICAgICAgICAiMC4xODg3MjcsIDAuMjA3MzAyLCAwLjMxMjY1MywgMC40MDU2ODQsIDAuNTI5NzM0LCAwLjc3Nzk3NywgMC45MzMxMDYiLCBcCi0gICAgICAgICAgIjAuMTkzMjA1LCAwLjIxMTc4NywgMC4zMTcxMjksIDAuNDEwMTc0LCAwLjUzNDI1NSwgMC43ODI0NjYsIDAuOTM3NzU5IiwgXAotICAgICAgICAgICIwLjE5Njc3MSwgMC4yMTUzNTMsIDAuMzIwNjk2LCAwLjQxMzcsIDAuNTM3ODIyLCAwLjc4NTk5MiwgMC45NDExNCIsIFwKLSAgICAgICAgICAiMC4yMDE0MzQsIDAuMjIwMDE3LCAwLjMyNTQ0NywgMC40MTg0MTUsIDAuNTQyNjQ4LCAwLjc5MDY2MSwgMC45NDU4MDgiLCBcCi0gICAgICAgICAgIjAuMjA1MTUxLCAwLjIyMzY0NCwgMC4zMjg5ODMsIDAuNDIyMDQyLCAwLjU0NjEyMiwgMC43OTQzMzMsIDAuOTQ5NTA4Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3MTA3MywgMC4xMTAwNDQsIDAuMzMyMjIyLCAwLjUyODI3NywgMC43ODgzMTEsIDEuMzEyOTIsIDEuNjM2MzUiLCBcCi0gICAgICAgICAgIjAuMDcxMDM4LCAwLjExMDAyMiwgMC4zMzIxODEsIDAuNTI3MTQxLCAwLjc4ODM2NSwgMS4zMDk5OSwgMS42NDAwMyIsIFwKLSAgICAgICAgICAiMC4wNzEwMywgMC4xMTAwMjgsIDAuMzMyMTgsIDAuNTI3MTQ0LCAwLjc4OTgzLCAxLjMxLCAxLjYzNjQzIiwgXAotICAgICAgICAgICIwLjA3MTAyNCwgMC4xMTAwMTcsIDAuMzMyMTk1LCAwLjUyNzUwNiwgMC43ODg2ODQsIDEuMzEwOTQsIDEuNjM2OTciLCBcCi0gICAgICAgICAgIjAuMDcwOTk2LCAwLjEwOTkwMywgMC4zMzIxOTIsIDAuNTI3MjYsIDAuNzg4Mjg0LCAxLjMxMDc1LCAxLjYzNzE2IiwgXAotICAgICAgICAgICIwLjA3MTA3MywgMC4xMTAwNDgsIDAuMzMyMjE3LCAwLjUyNzY0MSwgMC43ODg3MzIsIDEuMzEyODgsIDEuNjM4MzYiLCBcCi0gICAgICAgICAgIjAuMDcxMTQ1LCAwLjExMDA0NSwgMC4zMzIxNzksIDAuNTI3Njg4LCAwLjc4ODg5OCwgMS4zMTEwNCwgMS42Mzc3NiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNzUyOSwgMC4xOTMzOCwgMC4yOTU4NDMsIDAuMzg2MzYxLCAwLjUwNjk1NSwgMC43NDgzODcsIDAuODk5MTA5IiwgXAotICAgICAgICAgICIwLjE4MjU2NywgMC4yMDA2NTYsIDAuMzAzMTQ5LCAwLjM5MzY2MSwgMC41MTQyNzEsIDAuNzU1Njg0LCAwLjkwNjQ3MSIsIFwKLSAgICAgICAgICAiMC4xODg0ODMsIDAuMjA2NTcxLCAwLjMwOTA3MSwgMC4zOTk1MzcsIDAuNTIwMjE4LCAwLjc2MTUwMSwgMC45MTIzODIiLCBcCi0gICAgICAgICAgIjAuMTkyNzQsIDAuMjEwODMyLCAwLjMxMzMzOCwgMC40MDM4MTUsIDAuNTI0NTAyLCAwLjc2NTg4MywgMC45MTY2MDQiLCBcCi0gICAgICAgICAgIjAuMTk2MTQyLCAwLjIxNDI3MywgMC4zMTY3ODYsIDAuNDA3MTkyLCAwLjUyNzg3NiwgMC43NjkyNTgsIDAuOTIwMDQzIiwgXAotICAgICAgICAgICIwLjIwMDYyLCAwLjIxODcxLCAwLjMyMTIxOSwgMC40MTE2ODUsIDAuNTMyMjY5LCAwLjc3MzYyMiwgMC45MjQ1NDEiLCBcCi0gICAgICAgICAgIjAuMjAzOTM0LCAwLjIyMTkyOSwgMC4zMjQ0MjMsIDAuNDE0OTE4LCAwLjUzNTU2OSwgMC43NzY4NDUsIDAuOTI3ODcxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2NzY5LCAwLjEwNDc0NywgMC4zMTU5MjcsIDAuNTAxNTc1LCAwLjc1MTI0MSwgMS4yNDY3LCAxLjU1NzgiLCBcCi0gICAgICAgICAgIjAuMDY3NzQ1LCAwLjEwNDU4MSwgMC4zMTU5MTEsIDAuNTAxNDcsIDAuNzUwMjYsIDEuMjQ2MzgsIDEuNTYwMDEiLCBcCi0gICAgICAgICAgIjAuMDY3NzIyLCAwLjEwNDcsIDAuMzE1OTE5LCAwLjUwMjM1MiwgMC43NTEzNTMsIDEuMjQ1ODksIDEuNTU2ODEiLCBcCi0gICAgICAgICAgIjAuMDY3NzE1LCAwLjEwNDc0MywgMC4zMTU0ODgsIDAuNTAxOTEzLCAwLjc1MTQ2NSwgMS4yNDY1OSwgMS41NTc4OCIsIFwKLSAgICAgICAgICAiMC4wNjc3NCwgMC4xMDQ3MDEsIDAuMzE1OTMyLCAwLjUwMjQyOSwgMC43NTEzNDUsIDEuMjQ0NjgsIDEuNTU2OSIsIFwKLSAgICAgICAgICAiMC4wNjc3MjksIDAuMTA0NjExLCAwLjMxNTkyNSwgMC41MDA4NzIsIDAuNzQ4ODk1LCAxLjI0NDc3LCAxLjU1NDU5IiwgXAotICAgICAgICAgICIwLjA2NzcyMSwgMC4xMDQ3NjksIDAuMzE1ODI4LCAwLjUwMjU2NSwgMC43NTEzNTcsIDEuMjQ4NzMsIDEuNTU3NTQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTA0ODMsIDAuMDEwNDY5LCAwLjAxMDQyLCAwLjAxMDQwNCwgMC4wMTAzOTMsIDAuMDEwMzg0LCAwLjAxMDM4IiwgXAotICAgICAgICAgICIwLjAxMDQ5LCAwLjAxMDQ3NiwgMC4wMTA0MjgsIDAuMDEwNDExLCAwLjAxMDQwMSwgMC4wMTAzOTksIDAuMDEwMzg0IiwgXAotICAgICAgICAgICIwLjAxMDU2NSwgMC4wMTA1NTEsIDAuMDEwNTAzLCAwLjAxMDQ4NiwgMC4wMTA0NzYsIDAuMDEwNDY2LCAwLjAxMDQ2MyIsIFwKLSAgICAgICAgICAiMC4wMTA2NjcsIDAuMDEwNjUzLCAwLjAxMDYwNSwgMC4wMTA1ODksIDAuMDEwNTc4LCAwLjAxMDU2OCwgMC4wMTA1NjYiLCBcCi0gICAgICAgICAgIjAuMDEwODAyLCAwLjAxMDc4OSwgMC4wMTA3NCwgMC4wMTA3MTQsIDAuMDEwNzEzLCAwLjAxMDY5MywgMC4wMTA2OTIiLCBcCi0gICAgICAgICAgIjAuMDExMDA4LCAwLjAxMDk5NCwgMC4wMTA5NiwgMC4wMTA5NDQsIDAuMDEwOTMyLCAwLjAxMDkwOSwgMC4wMTA5MDYiLCBcCi0gICAgICAgICAgIjAuMDExMjE0LCAwLjAxMTIxMywgMC4wMTExNjQsIDAuMDExMTQ4LCAwLjAxMTEzNywgMC4wMTExMjgsIDAuMDExMTI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEyMzcsIDAuMDEyMzY1LCAwLjAxMjMzNywgMC4wMTIzMjYsIDAuMDEyMzIsIDAuMDEyMzE0LCAwLjAxMjMxMyIsIFwKLSAgICAgICAgICAiMC4wMTIzNzIsIDAuMDEyMzY2LCAwLjAxMjMzOSwgMC4wMTIzMjgsIDAuMDEyMzIzLCAwLjAxMjMxNiwgMC4wMTIzMTUiLCBcCi0gICAgICAgICAgIjAuMDEyNDUsIDAuMDEyNDQ1LCAwLjAxMjQxNywgMC4wMTI0MDcsIDAuMDEyNCwgMC4wMTIzOTQsIDAuMDEyMzkyIiwgXAotICAgICAgICAgICIwLjAxMjU1LCAwLjAxMjU0NSwgMC4wMTI1MTgsIDAuMDEyNTA4LCAwLjAxMjUwMiwgMC4wMTI0OTUsIDAuMDEyNDk0IiwgXAotICAgICAgICAgICIwLjAxMjY3MSwgMC4wMTI2NzMsIDAuMDEyNjQ1LCAwLjAxMjYyNywgMC4wMTI2MjEsIDAuMDEyNjIzLCAwLjAxMjYxMyIsIFwKLSAgICAgICAgICAiMC4wMTI4OTksIDAuMDEyODkzLCAwLjAxMjg2NSwgMC4wMTI4NTUsIDAuMDEyODM4LCAwLjAxMjgzMiwgMC4wMTI4NDEiLCBcCi0gICAgICAgICAgIjAuMDEzMDg0LCAwLjAxMzA5MiwgMC4wMTMwNjIsIDAuMDEzMDUyLCAwLjAxMzA0NiwgMC4wMTMwNDEsIDAuMDEzMDMyIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBETFk0WDQgKgotICogLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChETFk0WDQpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMS4yNjA0MzsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjMzOTY4OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYzMzc3MjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2MzM5Njg7Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMS4zNTUzMzsKLSAgICBmdW5jdGlvbiA6ICJBIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIwNzU2OCwgMC4yNjM3MTUsIDAuMzE5MDA1LCAwLjM1ODQ4NiwgMC40MjE2MjIsIDAuNDc2ODM1LCAwLjU1NTg0NSIsIFwKLSAgICAgICAgICAiMC4yMTQ1NjEsIDAuMjcwNjk3LCAwLjMyNjAwOCwgMC4zNjU0MzIsIDAuNDI4NjI0LCAwLjQ4Mzg4MSwgMC41NjI4MzciLCBcCi0gICAgICAgICAgIjAuMjE5ODQ5LCAwLjI3NjAxNSwgMC4zMzEyOTUsIDAuMzcwODMsIDAuNDMzOTIzLCAwLjQ4OTE3NiwgMC41NjgxMzQiLCBcCi0gICAgICAgICAgIjAuMjIzNjg1LCAwLjI3OTg1LCAwLjMzNTExNSwgMC4zNzQ2NjUsIDAuNDM3NzU5LCAwLjQ5MzAxLCAwLjU3MTk2NyIsIFwKLSAgICAgICAgICAiMC4yMjY5MzksIDAuMjgzMDk2LCAwLjMzODM0LCAwLjM3NzkxMiwgMC40NDA5NjgsIDAuNDk2MjY4LCAwLjU3NTIwNSIsIFwKLSAgICAgICAgICAiMC4yMzEyMzYsIDAuMjg3MzY5LCAwLjM0MjQ5NSwgMC4zODIwMDgsIDAuNDQ1MTA5LCAwLjUwMDM3MiwgMC41NzkzOSIsIFwKLSAgICAgICAgICAiMC4yMzQyODMsIDAuMjkwNDg5LCAwLjM0NTY0MiwgMC4zODUxNTMsIDAuNDQ4MTgyLCAwLjUwMzYxNCwgMC41ODI0NzUiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjUxMjEsIDAuMTM5NjU4LCAwLjI1NzE1MSwgMC4zNDEyODQsIDAuNDc2OTg0LCAwLjU5NDc4MiwgMC43NjIyNTEiLCBcCi0gICAgICAgICAgIjAuMDI1MTI1LCAwLjEzOTY3MywgMC4yNTc2MzcsIDAuMzQxMywgMC40NzY4OTQsIDAuNTkzODgyLCAwLjc2MjM2MiIsIFwKLSAgICAgICAgICAiMC4wMjUxMDYsIDAuMTM5Njc4LCAwLjI1NzE2LCAwLjM0MTUsIDAuNDc2ODkzLCAwLjU5Mzg4LCAwLjc2MjI1MSIsIFwKLSAgICAgICAgICAiMC4wMjUxMDYsIDAuMTM5Njc5LCAwLjI1NzM3NSwgMC4zNDE0ODcsIDAuNDc2ODkzLCAwLjU5Mzg0OCwgMC43NjIzMjIiLCBcCi0gICAgICAgICAgIjAuMDI1MTE5LCAwLjEzOTY0MSwgMC4yNTcyNDEsIDAuMzQxNDk5LCAwLjQ3Njg5MiwgMC41OTM4NDgsIDAuNzYyMjE5IiwgXAotICAgICAgICAgICIwLjAyNTEzNCwgMC4xMzk2NDMsIDAuMjU3NDE2LCAwLjM0MTQ0OCwgMC40NzY5MjEsIDAuNTk0Mjk3LCAwLjc2MjU0NCIsIFwKLSAgICAgICAgICAiMC4wMjUxMzMsIDAuMTM5ODI0LCAwLjI1NzMxNiwgMC4zNDE0NjYsIDAuNDc1OTc3LCAwLjU5NDM3MiwgMC43NjIyMDciKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMDUyMTQsIDAuMjYwMDQ3LCAwLjMxMzg4NywgMC4zNTIzMTMsIDAuNDEzODM0LCAwLjQ2NzYwNywgMC41NDQ0NDMiLCBcCi0gICAgICAgICAgIjAuMjEyMDIsIDAuMjY2ODY0LCAwLjMyMDYzMSwgMC4zNTkwNjcsIDAuNDIwNTYsIDAuNDc0MzYyLCAwLjU1MTIyOSIsIFwKLSAgICAgICAgICAiMC4yMTcyNTMsIDAuMjcyMTAxLCAwLjMyNTg2MywgMC4zNjQzMjIsIDAuNDI1NzkxLCAwLjQ3OTU5NiwgMC41NTY0NjIiLCBcCi0gICAgICAgICAgIjAuMjIwODY4LCAwLjI3NTY4OCwgMC4zMjk0OTksIDAuMzY3OTU5LCAwLjQyOTQ0NCwgMC40ODMyNDQsIDAuNTYwMTE2IiwgXAotICAgICAgICAgICIwLjIyMzgzLCAwLjI3ODY1MiwgMC4zMzI0MjgsIDAuMzcwOTEsIDAuNDMyNDA4LCAwLjQ4NjIxNiwgMC41NjMwNzgiLCBcCi0gICAgICAgICAgIjAuMjI3NzYsIDAuMjgyNjAyLCAwLjMzNjQyNSwgMC4zNzQ4NTcsIDAuNDM2MzU2LCAwLjQ5MDE3OCwgMC41NjcwMDIiLCBcCi0gICAgICAgICAgIjAuMjMwNTYyLCAwLjI4NTM1OCwgMC4zMzkxNzksIDAuMzc3NzEsIDAuNDM5MTYxLCAwLjQ5MjkzNSwgMC41Njk4MzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjM4MzIsIDAuMTMyNjAxLCAwLjI0NDU0OCwgMC4zMjQ0NzYsIDAuNDUxNjQ4LCAwLjU2NDQ2OSwgMC43MjQ0NzQiLCBcCi0gICAgICAgICAgIjAuMDIzODU2LCAwLjEzMjYwOCwgMC4yNDQ1MzksIDAuMzI0MDk5LCAwLjQ1MjUwOSwgMC41NjM4NzEsIDAuNzIzMjAyIiwgXAotICAgICAgICAgICIwLjAyMzg2LCAwLjEzMjY0NywgMC4yNDQ1MywgMC4zMjM4NjgsIDAuNDUyNDk4LCAwLjU2Mzg4OSwgMC43MjMxODMiLCBcCi0gICAgICAgICAgIjAuMDIzODYxLCAwLjEzMjY4MywgMC4yNDQ1NTgsIDAuMzIzODk1LCAwLjQ1MjUwNCwgMC41NjM4NDYsIDAuNzIyODQxIiwgXAotICAgICAgICAgICIwLjAyMzg2MSwgMC4xMzI2NjIsIDAuMjQ0NTQ2LCAwLjMyNDExOSwgMC40NTI1MDUsIDAuNTYzMjgzLCAwLjcyMjc1IiwgXAotICAgICAgICAgICIwLjAyMzg2OCwgMC4xMzI5MzQsIDAuMjQ0NTI2LCAwLjMyMzg5LCAwLjQ1MjM4OCwgMC41NjM0NzEsIDAuNzI0NjAzIiwgXAotICAgICAgICAgICIwLjAyMzg2MiwgMC4xMzI4NzksIDAuMjQ0NTIxLCAwLjMyMzk1OSwgMC40NTE1MzQsIDAuNTYzNDkzLCAwLjcyMzE1OCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE4NDQ4LCAwLjAxODU4MSwgMC4wMTg2LCAwLjAxODYwNiwgMC4wMTg2MSwgMC4wMTg2MTMsIDAuMDE4NjIiLCBcCi0gICAgICAgICAgIjAuMDE4NDU5LCAwLjAxODU5MSwgMC4wMTg2MTEsIDAuMDE4NjE2LCAwLjAxODYyMiwgMC4wMTg2MjQsIDAuMDE4NjQzIiwgXAotICAgICAgICAgICIwLjAxODUzMSwgMC4wMTg2NzksIDAuMDE4Njk4LCAwLjAxODcwNCwgMC4wMTg3MjksIDAuMDE4NzExLCAwLjAxODciLCBcCi0gICAgICAgICAgIjAuMDE4NjQ4LCAwLjAxODc5NSwgMC4wMTg4MTUsIDAuMDE4ODIsIDAuMDE4ODI0LCAwLjAxODgyOCwgMC4wMTg4MyIsIFwKLSAgICAgICAgICAiMC4wMTg3OTUsIDAuMDE4OTI5LCAwLjAxODk1MywgMC4wMTg5NTYsIDAuMDE4OTY0LCAwLjAxODk1OSwgMC4wMTg5NjkiLCBcCi0gICAgICAgICAgIjAuMDE5MDE3LCAwLjAxOTE0NywgMC4wMTkxODEsIDAuMDE5MTg1LCAwLjAxOTE5MSwgMC4wMTkxOTMsIDAuMDE5MTk1IiwgXAotICAgICAgICAgICIwLjAxOTIzNywgMC4wMTkzNSwgMC4wMTkzODgsIDAuMDE5Mzk1LCAwLjAxOTM5OSwgMC4wMTkzODksIDAuMDE5NDAzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTc5NjQsIDAuMDE4MTU1LCAwLjAxODE4NCwgMC4wMTgxOTMsIDAuMDE4MiwgMC4wMTgyMDUsIDAuMDE4MjA4IiwgXAotICAgICAgICAgICIwLjAxNzk3NiwgMC4wMTgxNjgsIDAuMDE4MTk3LCAwLjAxODIwNywgMC4wMTgyMTUsIDAuMDE4MjE4LCAwLjAxODIyMiIsIFwKLSAgICAgICAgICAiMC4wMTgwNTUsIDAuMDE4MjQ4LCAwLjAxODI3OSwgMC4wMTgyODgsIDAuMDE4Mjk0LCAwLjAxODI5OCwgMC4wMTgzMDEiLCBcCi0gICAgICAgICAgIjAuMDE4MTc3LCAwLjAxODM2OCwgMC4wMTgzOTIsIDAuMDE4NCwgMC4wMTg0MTUsIDAuMDE4NDIsIDAuMDE4NDIzIiwgXAotICAgICAgICAgICIwLjAxODMwMSwgMC4wMTg0OTMsIDAuMDE4NTE0LCAwLjAxODUzMywgMC4wMTg1NCwgMC4wMTg1MzUsIDAuMDE4NTQ4IiwgXAotICAgICAgICAgICIwLjAxODUxOSwgMC4wMTg3MDMsIDAuMDE4NzMyLCAwLjAxODc1LCAwLjAxODc0OSwgMC4wMTg3NTMsIDAuMDE4NzY2IiwgXAotICAgICAgICAgICIwLjAxODcyMSwgMC4wMTg5MTUsIDAuMDE4OTQ2LCAwLjAxODk0MiwgMC4wMTg5NjEsIDAuMDE4OTY1LCAwLjAxODk1OCIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBFREZGSFFYOCAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoRURGRkhRWDgpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMS45MTUyOwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIGZmIChOMzAsUUJJTlQpIHsKLSAgICBuZXh0X3N0YXRlIDogIigoRSBEKSArICghRSAoISghTjMwKSkpKSI7Ci0gICAgY2xvY2tlZF9vbiA6ICJDSyI7Ci0gIH0KLSAgcGluKENLKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA3MDgyOTM7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNzA4MjkzOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDcwODA4NTsKLSAgICBjbG9jayA6IHRydWU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA0MzM4LCAwLjAwNDM1MSwgMC4wMDQ0MDIsIDAuMDA0NTEsIDAuMDA0NjIxLCAwLjAwNDgzOSwgMC4wMDUwNDQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDg2NzgsIDAuMDA4NjgyLCAwLjAwODc3NSwgMC4wMDg4OTMsIDAuMDA5MDQ4LCAwLjAwOTMxNiwgMC4wMDk2MTUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFEJkUiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX0VfRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjA4NDQ4MiwgMC4wOTI2NjUsIDAuMTAxNjAzLCAwLjEwODQ1NiwgMC4xMTM5ODgsIDAuMTIxNDY3LCAwLjEyNjkxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wNjAxNDMsIDAuMDY4MjM1LCAwLjA3NzA4MiwgMC4wODM2MjIsIDAuMDg4OTc5LCAwLjA5NTgwNiwgMC4xMDA5OCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwOTc0NTA0OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDk3MjIwNTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA5NzQ1MDQ7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzOTAyLCAwLjAwMzg1OSwgMC4wMDM4OCwgMC4wMDM5MjQsIDAuMDA0MDA5LCAwLjAwNDE2MywgMC4wMDQzNDEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDg5NzEsIDAuMDA4OTQxLCAwLjAwODk2MSwgMC4wMDkwMTUsIDAuMDA5MDc2LCAwLjAwOTIyOCwgMC4wMDkzNzYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiRSI7Ci0gICAgICBzZGZfY29uZCA6ICJFID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAzMTI1LCAtMC4wMjYyNSwgLTAuMDI2MjUsIC0wLjAyLCAtMC4wMiwgLTAuMDE2MjUsIC0wLjAxMzc1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDMxMjUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAyNSwgLTAuMDIxMjUsIC0wLjAxODc1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMjc1LCAtMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjA1NSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wNDM3NSwgLTAuMDQzNzUsIC0wLjA0LCAtMC4wMzc1IiwgXAotICAgICAgICAgICItMC4wNjEyNSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNSwgLTAuMDUsIC0wLjA0NjI1LCAtMC4wNDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDY1LCAtMC4wNjYyNSwgLTAuMDYsIC0wLjA2LCAtMC4wNTM3NSwgLTAuMDUsIC0wLjA0NzUiLCBcCi0gICAgICAgICAgIi0wLjA3Mzc1LCAtMC4wNjg3NSwgLTAuMDY4NzUsIC0wLjA2MjUsIC0wLjA2MjUsIC0wLjA1ODc1LCAtMC4wNTYyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAwNjI1LCAtMC4wMDEyNSwgMC4wMDUsIDAuMDExMjUsIDAuMDExMjUsIDAuMDIxMjUsIDAuMDIzNzUiLCBcCi0gICAgICAgICAgIi0wLjAxNzUsIC0wLjAwNjI1LCAwLCAwLjAwNjI1LCAwLjAwNjI1LCAwLjAxNjI1LCAwLjAxODc1IiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAsIDAsIDAuMDEsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgLTAuMDA2MjUsIDAuMDAzNzUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgLTAuMDAyNSwgMCIsIFwKLSAgICAgICAgICAiLTAuMDMzNzUsIC0wLjAyODc1LCAtMC4wMjI1LCAtMC4wMTYyNSwgLTAuMDE2MjUsIC0wLjAxMjUsIC0wLjAwMzc1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDE1LCAtMC4wMTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJFIjsKLSAgICAgIHNkZl9jb25kIDogIkUgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU2MjUsIDAuMDQ1LCAwLjA0NSwgMC4wMzg3NSwgMC4wMzg3NSwgMC4wMzUsIDAuMDMyNSIsIFwKLSAgICAgICAgICAiMC4wNjEyNSwgMC4wNTYyNSwgMC4wNSwgMC4wNDM3NSwgMC4wNDM3NSwgMC4wNCwgMC4wMzc1IiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNTYyNSwgMC4wNSwgMC4wNDYyNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4wOCwgMC4wNjg3NSwgMC4wNjI1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDUyNSwgMC4wNSIsIFwKLSAgICAgICAgICAiMC4wODYyNSwgMC4wNzUsIDAuMDY4NzUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNTg3NSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiMC4wOTYyNSwgMC4wODUsIDAuMDc4NzUsIDAuMDc4NzUsIDAuMDcyNSwgMC4wNjg3NSwgMC4wNjYyNSIsIFwKLSAgICAgICAgICAiMC4wOTg3NSwgMC4wOTM3NSwgMC4wODc1LCAwLjA4MTI1LCAwLjA4MTI1LCAwLjA3NzUsIDAuMDc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQzNzUsIDAuMDMyNSwgMC4wMjYyNSwgMC4wMiwgMC4wMTM3NSwgMC4wMDM3NSwgMC4wMDEyNSIsIFwKLSAgICAgICAgICAiMC4wNDg3NSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMTg3NSwgMC4wMTUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMDU1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDI1LCAwLjAyMTI1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMDYxMjUsIDAuMDUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMjc1LCAwLjAxODc1IiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDU2MjUsIDAuMDUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzM3NSwgMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMDcxMjUsIDAuMDY2MjUsIDAuMDYsIDAuMDUzNzUsIDAuMDQ3NSwgMC4wMzc1LCAwLjAzNSIsIFwKLSAgICAgICAgICAiMC4wOCwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1LCAwLjA0NjI1LCAwLjAzNzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEUpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTgyNjk7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxODI2MDQ7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxODI2OTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDgyNDQsIDAuMDA4MjM5LCAwLjAwODMxNCwgMC4wMDg0MiwgMC4wMDg1NDgsIDAuMDA4NzQ3LCAwLjAwODk0OCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwOTUzNSwgMC4wMDk1NTQsIDAuMDA5NjY4LCAwLjAwOTg4MSwgMC4wMTAxMzEsIDAuMDEwNTY0LCAwLjAxMDk2NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRCI7Ci0gICAgICBzZGZfY29uZCA6ICJEID09IDEnYjAiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAzNzUsIC0wLjAyNjI1LCAtMC4wMiwgLTAuMDEzNzUsIC0wLjAwNzUsIC0wLjAwMzc1LCAwLjAwNSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDM3NSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDE4NzUsIC0wLjAwODc1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMTUsIC0wLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjA1NSwgLTAuMDUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAyMTI1LCAtMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDYxMjUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAyNzUsIC0wLjAxODc1IiwgXAotICAgICAgICAgICItMC4wNjUsIC0wLjA1Mzc1LCAtMC4wNDc1LCAtMC4wNDEyNSwgLTAuMDM1LCAtMC4wMzEyNSwgLTAuMDI4NzUiLCBcCi0gICAgICAgICAgIi0wLjA2NzUsIC0wLjA2MjUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDQzNzUsIC0wLjAzMzc1LCAtMC4wMzEyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAxODc1LCAtMC4wMTM3NSwgLTAuMDEzNzUsIC0wLjAwNzUsIC0wLjAwNzUsIC0wLjAwMzc1LCAtMC4wMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxODc1LCAtMC4wMTg3NSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAxNSwgLTAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAyNSwgLTAuMDI1LCAtMC4wMjEyNSwgLTAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDMxMjUsIC0wLjAzMTI1LCAtMC4wMjc1LCAtMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzNzUsIC0wLjAzNzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMzM3NSwgLTAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjA0NjI1LCAtMC4wNDc1LCAtMC4wNDEyNSwgLTAuMDQxMjUsIC0wLjA0MTI1LCAtMC4wMzc1LCAtMC4wMzUiLCBcCi0gICAgICAgICAgIi0wLjA1NSwgLTAuMDUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDQzNzUsIC0wLjA0LCAtMC4wMzc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIkQiOwotICAgICAgc2RmX2NvbmQgOiAiRCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMzEyNSwgLTAuMDI2MjUsIC0wLjAyNjI1LCAtMC4wMiwgLTAuMDIsIC0wLjAxNjI1LCAtMC4wMTM3NSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAyMTI1LCAtMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjA0Mzc1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDM3NSwgLTAuMDMzNzUsIC0wLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wNjEyNSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjA0LCAtMC4wMzc1IiwgXAotICAgICAgICAgICItMC4wNjc1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNTI1LCAtMC4wNSIsIFwKLSAgICAgICAgICAiLTAuMDc3NSwgLTAuMDcyNSwgLTAuMDY2MjUsIC0wLjA2NjI1LCAtMC4wNjYyNSwgLTAuMDYyNSwgLTAuMDYiLCBcCi0gICAgICAgICAgIi0wLjA4NjI1LCAtMC4wODEyNSwgLTAuMDc1LCAtMC4wNzUsIC0wLjA2ODc1LCAtMC4wNjUsIC0wLjA2MjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjI1LCAwLjAxNzUsIDAuMDIzNzUsIDAuMDMsIDAuMDMsIDAuMDQsIDAuMDQyNSIsIFwKLSAgICAgICAgICAiMC4wMDEyNSwgMC4wMDYyNSwgMC4wMTI1LCAwLjAxODc1LCAwLjAyNSwgMC4wMjg3NSwgMC4wMzc1IiwgXAotICAgICAgICAgICItMC4wMDUsIDAsIDAuMDA2MjUsIDAuMDEyNSwgMC4wMTg3NSwgMC4wMjI1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDA1LCAwLCAwLjAwNjI1LCAwLjAwNjI1LCAwLjAxMjUsIDAuMDE2MjUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjAxMTI1LCAtMC4wMDYyNSwgMCwgMC4wMDYyNSwgMC4wMDYyNSwgMC4wMSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDE1LCAtMC4wMSwgLTAuMDEsIC0wLjAwMzc1LCAwLjAwMjUsIDAuMDA2MjUsIDAuMDA4NzUiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIC0wLjAwNjI1LCAwLjAwMzc1LCAwLjAwNjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRCI7Ci0gICAgICBzZGZfY29uZCA6ICJEID09IDEnYjAiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1LCAwLjAzODc1LCAwLjAzMjUsIDAuMDI2MjUsIDAuMDIsIDAuMDEsIDAuMDA3NSIsIFwKLSAgICAgICAgICAiMC4wNTUsIDAuMDUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMjUsIDAuMDIxMjUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4wNjEyNSwgMC4wNTYyNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyNzUsIDAuMDI1IiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDU2MjUsIDAuMDUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzM3NSwgMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMDczNzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNSwgMC4wNDM3NSwgMC4wMzM3NSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4wNzc1LCAwLjA2NjI1LCAwLjA2LCAwLjA1Mzc1LCAwLjA0NzUsIDAuMDQzNzUsIDAuMDM1IiwgXAotICAgICAgICAgICIwLjA4LCAwLjA3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1LCAwLjA0NjI1LCAwLjAzNzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzEyNSwgMC4wMjYyNSwgMC4wMiwgMC4wMiwgMC4wMTM3NSwgMC4wMSwgMC4wMDc1IiwgXAotICAgICAgICAgICIwLjAzNjI1LCAwLjAzMTI1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMjUsIDAuMDIxMjUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMDQ4NzUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyNzUsIDAuMDI1IiwgXAotICAgICAgICAgICIwLjA1NSwgMC4wNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzNzUsIDAuMDMzNzUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMDU1LCAwLjA1LCAwLjA1LCAwLjA0Mzc1LCAwLjA0Mzc1LCAwLjA0LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIjAuMDY1LCAwLjA2LCAwLjA1Mzc1LCAwLjA0NzUsIDAuMDQ3NSwgMC4wNDM3NSwgMC4wNDEyNSIsIFwKLSAgICAgICAgICAiMC4wNjc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDU2MjUsIDAuMDUsIDAuMDQ2MjUsIDAuMDQzNzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIkQiOwotICAgICAgc2RmX2NvbmQgOiAiRCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNSwgMC4wNDUsIDAuMDM4NzUsIDAuMDMyNSwgMC4wMzI1LCAwLjAyODc1LCAwLjAyNjI1IiwgXAotICAgICAgICAgICIwLjA2MTI1LCAwLjA1LCAwLjA0Mzc1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDMzNzUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMDY3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1LCAwLjA1LCAwLjA0NjI1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjA4LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNTI1LCAwLjA1IiwgXAotICAgICAgICAgICIwLjA4NjI1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjg3NSwgMC4wNjUsIDAuMDYyNSIsIFwKLSAgICAgICAgICAiMC4wOTYyNSwgMC4wOTEyNSwgMC4wODUsIDAuMDc4NzUsIDAuMDc4NzUsIDAuMDc1LCAwLjA3MjUiLCBcCi0gICAgICAgICAgIjAuMTA1LCAwLjEsIDAuMDkzNzUsIDAuMDg3NSwgMC4wODc1LCAwLjA4Mzc1LCAwLjA4MTI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2MjUsIDAuMDAxMjUsIC0wLjAwNSwgLTAuMDExMjUsIC0wLjAxNzUsIC0wLjAyMTI1LCAtMC4wMyIsIFwKLSAgICAgICAgICAiMC4wMTc1LCAwLjAwNjI1LCAwLCAtMC4wMDYyNSwgLTAuMDA2MjUsIC0wLjAxNjI1LCAtMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4wMjM3NSwgMC4wMTg3NSwgMC4wMTI1LCAwLjAwNjI1LCAwLCAtMC4wMDM3NSwgLTAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4wMywgMC4wMjUsIDAuMDE4NzUsIDAuMDEyNSwgMC4wMDYyNSwgMC4wMDI1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiMC4wMzYyNSwgMC4wMzEyNSwgMC4wMjUsIDAuMDE4NzUsIDAuMDEyNSwgMC4wMDg3NSwgMCIsIFwKLSAgICAgICAgICAiMC4wNDYyNSwgMC4wMzUsIDAuMDI4NzUsIDAuMDIyNSwgMC4wMjI1LCAwLjAxMjUsIDAuMDEiLCBcCi0gICAgICAgICAgIjAuMDQ4NzUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMjUsIDAuMDIxMjUsIDAuMDEyNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAyLjU5OTUxOwotICAgIGZ1bmN0aW9uIDogIk4zMCI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3NlbnNlIDogbm9uX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiByaXNpbmdfZWRnZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzg5NTksIDAuMTA4ODQ5LCAwLjEzNzI3LCAwLjE1NzU0MSwgMC4xODk5NDQsIDAuMjE4MzE0LCAwLjI1ODgwOCIsIFwKLSAgICAgICAgICAiMC4wODcwNzksIDAuMTE2OTcsIDAuMTQ1Mzg2LCAwLjE2NTY1NywgMC4xOTgwNjYsIDAuMjI2NDI3LCAwLjI2NjkzIiwgXAotICAgICAgICAgICIwLjA5NTk4MSwgMC4xMjU4NzIsIDAuMTU0Mjk1LCAwLjE3NDU1MywgMC4yMDY5NzcsIDAuMjM1MzI4LCAwLjI3NTgzIiwgXAotICAgICAgICAgICIwLjEwMjY5OSwgMC4xMzI1OSwgMC4xNjEwMTMsIDAuMTgxMjg0LCAwLjIxMzY4NywgMC4yNDIwNTYsIDAuMjgyNTQ0IiwgXAotICAgICAgICAgICIwLjEwODE3OSwgMC4xMzgwNTQsIDAuMTY2NDc0LCAwLjE4Njc0NCwgMC4yMTkxNDUsIDAuMjQ3NTE4LCAwLjI4ODAwMyIsIFwKLSAgICAgICAgICAiMC4xMTU1NTQsIDAuMTQ1NDQ5LCAwLjE3Mzg1NCwgMC4xOTQxMjgsIDAuMjI2NTI4LCAwLjI1NDg4NSwgMC4yOTUzOTEiLCBcCi0gICAgICAgICAgIjAuMTIxMjU5LCAwLjE1MTE0NCwgMC4xNzk1NjIsIDAuMTk5ODIxLCAwLjIzMjMwNCwgMC4yNjA2NTUsIDAuMzAxMTgxIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE3NTU5LCAwLjA3NTA2OSwgMC4xMzQ5MzksIDAuMTc3OTQ4LCAwLjI0NzEwNSwgMC4zMDc3NjYsIDAuMzk0MDgzIiwgXAotICAgICAgICAgICIwLjAxNzU1OSwgMC4wNzUwNjgsIDAuMTM0OTMxLCAwLjE3ODAzNywgMC4yNDcwNSwgMC4zMDc3NTgsIDAuMzk0NjUzIiwgXAotICAgICAgICAgICIwLjAxNzU2MywgMC4wNzUwNjYsIDAuMTM0OTM3LCAwLjE3NzkxMSwgMC4yNDcwNDcsIDAuMzA3NzU1LCAwLjM5NDYzNiIsIFwKLSAgICAgICAgICAiMC4wMTc1NzEsIDAuMDc1MDI4LCAwLjEzNDk0LCAwLjE3Nzk0MSwgMC4yNDcxMjMsIDAuMzA3NzY5LCAwLjM5NDQzIiwgXAotICAgICAgICAgICIwLjAxNzU2OSwgMC4wNzUwODMsIDAuMTM0OTQ0LCAwLjE3Nzg4NywgMC4yNDcxNDEsIDAuMzA3NTc1LCAwLjM5NDMxOCIsIFwKLSAgICAgICAgICAiMC4wMTc1NzgsIDAuMDc1MDI5LCAwLjEzNDg0NCwgMC4xNzgwNCwgMC4yNDcxMTEsIDAuMzA3Njg0LCAwLjM5NDExOCIsIFwKLSAgICAgICAgICAiMC4wMTc1NjksIDAuMDc1MjI2LCAwLjEzNDkwNCwgMC4xNzgwMTcsIDAuMjQ3MjIxLCAwLjMwNzgxOSwgMC4zOTQxNDgiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODQ0ODIsIDAuMTE0MzM0LCAwLjE0MjY4NSwgMC4xNjI4OTgsIDAuMTk1MjIsIDAuMjIzNDkzLCAwLjI2Mzg4IiwgXAotICAgICAgICAgICIwLjA5MjY2NSwgMC4xMjI1MTUsIDAuMTUwODc1LCAwLjE3MTA4MywgMC4yMDM0MTIsIDAuMjMxNjg5LCAwLjI3MjA2NSIsIFwKLSAgICAgICAgICAiMC4xMDE2MDMsIDAuMTMxNDUzLCAwLjE1OTgwNiwgMC4xODAwMiwgMC4yMTIzMzksIDAuMjQwNjE0LCAwLjI4MTAwNiIsIFwKLSAgICAgICAgICAiMC4xMDg0NTYsIDAuMTM4MzAyLCAwLjE2NjY2LCAwLjE4Njg3MywgMC4yMTkxOSwgMC4yNDc0NjQsIDAuMjg3ODczIiwgXAotICAgICAgICAgICIwLjExMzk4OCwgMC4xNDM4MywgMC4xNzIxODUsIDAuMTkyMzk5LCAwLjIyNDcyNSwgMC4yNTMwMDMsIDAuMjkzMzc3IiwgXAotICAgICAgICAgICIwLjEyMTQ2NywgMC4xNTEzMDYsIDAuMTc5NjU3LCAwLjE5OTg2OSwgMC4yMzIxODEsIDAuMjYwNDY5LCAwLjMwMDg2IiwgXAotICAgICAgICAgICIwLjEyNjkxLCAwLjE1NjkwNiwgMC4xODUyNjIsIDAuMjA1NDYzLCAwLjIzNzY0NywgMC4yNjU5MjYsIDAuMzA2NDY4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE2NjY2LCAwLjA3Mjc4MSwgMC4xMzA4NjIsIDAuMTcyNjUzLCAwLjI0MDA1NCwgMC4yOTg4NjcsIDAuMzgyOTQ1IiwgXAotICAgICAgICAgICIwLjAxNjY2MSwgMC4wNzI4MDksIDAuMTMwODY3LCAwLjE3MjY0NiwgMC4yNDAxMDksIDAuMjk4OTEyLCAwLjM4MjkzOCIsIFwKLSAgICAgICAgICAiMC4wMTY2NjcsIDAuMDcyNzY2LCAwLjEzMDg2LCAwLjE3MjY1MSwgMC4yMzk3ODIsIDAuMjk4ODUxLCAwLjM4Mjk2NSIsIFwKLSAgICAgICAgICAiMC4wMTY2NDUsIDAuMDcyNzgzLCAwLjEzMDg1OSwgMC4xNzI2NTEsIDAuMjM5ODA4LCAwLjI5ODUyOCwgMC4zODMwNTUiLCBcCi0gICAgICAgICAgIjAuMDE2NjY0LCAwLjA3MjgwNSwgMC4xMzA5MjgsIDAuMTcyNjUxLCAwLjIzOTU3MiwgMC4yOTg5MTYsIDAuMzgyOTQzIiwgXAotICAgICAgICAgICIwLjAxNjY1NiwgMC4wNzI4MTksIDAuMTMwODcxLCAwLjE3MjY1OSwgMC4yMzk5ODgsIDAuMjk4ODAyLCAwLjM4Mjk1IiwgXAotICAgICAgICAgICIwLjAxNjY2NCwgMC4wNzI4MjYsIDAuMTMwOTEzLCAwLjE3MjY3MywgMC4yNDAwMjYsIDAuMjk4NTE5LCAwLjM4MjI4OSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyMDUwNiwgMC4wMjA4NTMsIDAuMDIwOTUsIDAuMDIwOTg0LCAwLjAyMTAyMSwgMC4wMjEwMjksIDAuMDIxMDQ0IiwgXAotICAgICAgICAgICIwLjAyMDQ5NCwgMC4wMjA4NDMsIDAuMDIwOTM5LCAwLjAyMDk3MiwgMC4wMjEwMDIsIDAuMDIxMDE1LCAwLjAyMTAzMyIsIFwKLSAgICAgICAgICAiMC4wMjA1NTQsIDAuMDIwOTA1LCAwLjAyMTAwMSwgMC4wMjEwMzMsIDAuMDIxMDY0LCAwLjAyMTA3OSwgMC4wMjEwOTUiLCBcCi0gICAgICAgICAgIjAuMDIwNjY2LCAwLjAyMTAxNywgMC4wMjExMTMsIDAuMDIxMTQ2LCAwLjAyMTE4NCwgMC4wMjExOTMsIDAuMDIxMjA3IiwgXAotICAgICAgICAgICIwLjAyMDgzNCwgMC4wMjExNjUsIDAuMDIxMjU4LCAwLjAyMTI5LCAwLjAyMTMyLCAwLjAyMTMzNSwgMC4wMjEzNSIsIFwKLSAgICAgICAgICAiMC4wMjEwNTgsIDAuMDIxMzczLCAwLjAyMTQ2NiwgMC4wMjE0OTQsIDAuMDIxNTI2LCAwLjAyMTU0MSwgMC4wMjE1NTEiLCBcCi0gICAgICAgICAgIjAuMDIxMjQ3LCAwLjAyMTU3MiwgMC4wMjE2NjUsIDAuMDIxNjk4LCAwLjAyMTc0OSwgMC4wMjE3NzMsIDAuMDIxNzgzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTk4MzksIDAuMDIwMjk1LCAwLjAyMDQxMiwgMC4wMjA0NTIsIDAuMDIwNDg3LCAwLjAyMDUwNywgMC4wMjA1MjMiLCBcCi0gICAgICAgICAgIjAuMDE5ODI4LCAwLjAyMDI5NSwgMC4wMjA0MTMsIDAuMDIwNDU1LCAwLjAyMDQ5LCAwLjAyMDUxMSwgMC4wMjA1MjciLCBcCi0gICAgICAgICAgIjAuMDE5OTMyLCAwLjAyMDM5NSwgMC4wMjA1MTIsIDAuMDIwNTUyLCAwLjAyMDU4OCwgMC4wMjA2MDcsIDAuMDIwNjI0IiwgXAotICAgICAgICAgICIwLjAyMDA3MiwgMC4wMjA1MzEsIDAuMDIwNjQ5LCAwLjAyMDY5LCAwLjAyMDcyNiwgMC4wMjA3NDMsIDAuMDIwNzYxIiwgXAotICAgICAgICAgICIwLjAyMDI0NSwgMC4wMjA3MDIsIDAuMDIwODE5LCAwLjAyMDg1NywgMC4wMjA4OTEsIDAuMDIwOTA5LCAwLjAyMDkyNiIsIFwKLSAgICAgICAgICAiMC4wMjA0ODcsIDAuMDIwOTYzLCAwLjAyMTA3OCwgMC4wMjExMTUsIDAuMDIxMTUxLCAwLjAyMTE0OCwgMC4wMjExNjQiLCBcCi0gICAgICAgICAgIjAuMDIwNjk3LCAwLjAyMTEzOCwgMC4wMjEyNTUsIDAuMDIxMjkyLCAwLjAyMTM1MywgMC4wMjEzNzEsIDAuMDIxMzYyIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IElOVlg2ICoKLSAqIC0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChJTlZYNikgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjUzMDI2NDsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDA0Njg2MzI7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDA0Njg1NzY7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDA0Njg2MzI7Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMi4wMDk0NjsKLSAgICBmdW5jdGlvbiA6ICIoIUEpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMDE1OCwgMC4wNDc1NzksIDAuMDg0ODQ0LCAwLjExMTUwNywgMC4xNTQxMjgsIDAuMTkxMzY0LCAwLjI0NDgyIiwgXAotICAgICAgICAgICIwLjAxNzQxOSwgMC4wNTU4OTQsIDAuMDkzMjQsIDAuMTE5ODE1LCAwLjE2MjQ4MSwgMC4xOTk3NTUsIDAuMjUzMTgyIiwgXAotICAgICAgICAgICIwLjAyMjcwOCwgMC4wNjY0MjcsIDAuMTAzNjY3LCAwLjEzMDI5MiwgMC4xNzI1NDksIDAuMjEwMTQsIDAuMjYzNDA0IiwgXAotICAgICAgICAgICIwLjAyNjM1LCAwLjA3NzEzMSwgMC4xMTQxNDgsIDAuMTQwNzExLCAwLjE4MzI4LCAwLjIyMDUzNSwgMC4yNzM5MzgiLCBcCi0gICAgICAgICAgIjAuMDI5MTczLCAwLjA4NzM5NiwgMC4xMjQ1ODYsIDAuMTUxMDkxLCAwLjE5MzU5NSwgMC4yMzA4MzYsIDAuMjg0MDQ5IiwgXAotICAgICAgICAgICIwLjAzMjU4MSwgMC4xMDAxODIsIDAuMTQxNjc1LCAwLjE2ODU3MSwgMC4yMTEwNDQsIDAuMjQ4MjIyLCAwLjMwMTQ0NiIsIFwKLSAgICAgICAgICAiMC4wMzQ3ODYsIDAuMTEwMDEzLCAwLjE1NTk2NCwgMC4xODMzNzcsIDAuMjI1Njc3LCAwLjI2Mjc5LCAwLjMxNTg2NSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxNTQwMSwgMC4wOTQwMDIsIDAuMTcyNzM0LCAwLjIyODkxMSwgMC4zMTkwMjYsIDAuMzk3NTg1LCAwLjUxMDI1NCIsIFwKLSAgICAgICAgICAiMC4wMjE5NDEsIDAuMDk0ODA3LCAwLjE3MjY0NiwgMC4yMjg5NzksIDAuMzE4ODU4LCAwLjM5NzU5NSwgMC41MTAyNDkiLCBcCi0gICAgICAgICAgIjAuMDMwMjYyLCAwLjA5OTg5MywgMC4xNzQ5MDgsIDAuMjI5NTIzLCAwLjMxODg3NiwgMC4zOTc0OTIsIDAuNTA5NzU0IiwgXAotICAgICAgICAgICIwLjAzNzAwMywgMC4xMDc3MDQsIDAuMTc5NjY2LCAwLjIzMzIyMywgMC4zMjA4OTUsIDAuMzk4MTEzLCAwLjUwOTk5MSIsIFwKLSAgICAgICAgICAiMC4wNDI5OTMsIDAuMTE2MDc5LCAwLjE4NjU1NCwgMC4yMzg2NTEsIDAuMzIzOTcsIDAuNDAwMjUzLCAwLjUxMTA1OSIsIFwKLSAgICAgICAgICAiMC4wNTE2NzEsIDAuMTMxMTYyLCAwLjE5Nzk4NSwgMC4yNDkwMzksIDAuMzMyNDc0LCAwLjQwNzEwOCwgMC41MTQ5MjMiLCBcCi0gICAgICAgICAgIjAuMDU5MDUyLCAwLjE0MzkzNywgMC4yMTA5NzYsIDAuMjYwMDYxLCAwLjM0MTYzLCAwLjQxNDY3NCwgMC41MjEzNDciKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTAzMDgsIDAuMDQ3ODUzLCAwLjA4NTI1MSwgMC4xMTE5NDMsIDAuMTU0NiwgMC4xOTIwNTQsIDAuMjQ1NDM4IiwgXAotICAgICAgICAgICIwLjAxNzg5NCwgMC4wNTYzMzksIDAuMDkzNzI4LCAwLjEyMDQyMywgMC4xNjMxNTQsIDAuMjAwNSwgMC4yNTM4NzUiLCBcCi0gICAgICAgICAgIjAuMDIzNzExLCAwLjA2NzEyLCAwLjEwNDM2NywgMC4xMzEwNjQsIDAuMTczNzY4LCAwLjIxMTE0NywgMC4yNjQ1MTgiLCBcCi0gICAgICAgICAgIjAuMDI3OTU2LCAwLjA3Nzk3LCAwLjExNTEzNCwgMC4xNDE3NzcsIDAuMTg0NDUzLCAwLjIyMTgzMiwgMC4yNzUyNjMiLCBcCi0gICAgICAgICAgIjAuMDMxNDczLCAwLjA4ODE1MywgMC4xMjU4OTYsIDAuMTUyNTI3LCAwLjE5NTExNSwgMC4yMzIzODUsIDAuMjg1NzA1IiwgXAotICAgICAgICAgICIwLjAzNjEyNywgMC4xMDIyNjgsIDAuMTQzNjcsIDAuMTY5OTExLCAwLjIxMjUxMSwgMC4yNDk2OTQsIDAuMzAyOTk5IiwgXAotICAgICAgICAgICIwLjAzOTczNywgMC4xMTI0NzksIDAuMTU4MzExLCAwLjE4NTQ5NiwgMC4yMjc5MjcsIDAuMjY1MTY0LCAwLjMxODIxNiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxNDgyOCwgMC4wOTE3ODIsIDAuMTY4NjY3LCAwLjIyMzgzNiwgMC4zMTE1MzMsIDAuMzg4ODQsIDAuNDk4NTIiLCBcCi0gICAgICAgICAgIjAuMDIxMDc0LCAwLjA5MjQ4NCwgMC4xNjg5ODgsIDAuMjI0MDY5LCAwLjMxMTQ1OCwgMC4zODg0NzksIDAuNDk4NDA1IiwgXAotICAgICAgICAgICIwLjAyOTc2MywgMC4wOTczODcsIDAuMTcwNzU0LCAwLjIyNDI5NSwgMC4zMTIxMjEsIDAuMzg5MzE3LCAwLjQ5OTQ4MiIsIFwKLSAgICAgICAgICAiMC4wMzY0MywgMC4xMDQ2MzcsIDAuMTc1NDUsIDAuMjI3Mzk0LCAwLjMxMzExMiwgMC4zODg4MTUsIDAuNDk4NDk4IiwgXAotICAgICAgICAgICIwLjA0MjQ0NywgMC4xMTMyMTQsIDAuMTgxNjY1LCAwLjIzMzAwOCwgMC4zMTY0OTMsIDAuMzkxNzMzLCAwLjQ5OTk2IiwgXAotICAgICAgICAgICIwLjA1MDk2OCwgMC4xMjc1NjcsIDAuMTkzODMzLCAwLjI0Mjk0LCAwLjMyNDg0NCwgMC4zOTc4MTEsIDAuNTA0MDQyIiwgXAotICAgICAgICAgICIwLjA1NzkzMSwgMC4xNDEyOTgsIDAuMjA1MDY2LCAwLjI1MzI0LCAwLjMzMzQ1MSwgMC40MDUwODUsIDAuNTA5NTAxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDc5MDUsIDAuMDA4MTQ1LCAwLjAwODE3MywgMC4wMDgxODEsIDAuMDA4MTg4LCAwLjAwODE5MSwgMC4wMDgxOTUiLCBcCi0gICAgICAgICAgIjAuMDA3OTM0LCAwLjAwODA2NCwgMC4wMDgxMTgsIDAuMDA4MTM3LCAwLjAwODE1NiwgMC4wMDgxNjYsIDAuMDA4MTc0IiwgXAotICAgICAgICAgICIwLjAwODQxLCAwLjAwODEwOSwgMC4wMDgxMzgsIDAuMDA4MTM5LCAwLjAwODE1MywgMC4wMDgxNjMsIDAuMDA4MTY5IiwgXAotICAgICAgICAgICIwLjAwOTEzOSwgMC4wMDgzOTgsIDAuMDA4MjksIDAuMDA4MjcxLCAwLjAwODI0OCwgMC4wMDgyMzgsIDAuMDA4MjMxIiwgXAotICAgICAgICAgICIwLjAxMDAzMiwgMC4wMDg2MjgsIDAuMDA4NjIzLCAwLjAwODUyNCwgMC4wMDg0NTMsIDAuMDA4NDA3LCAwLjAwODM2OSIsIFwKLSAgICAgICAgICAiMC4wMTE0NTEsIDAuMDA5NzkxLCAwLjAwOTEzMywgMC4wMDg5NiwgMC4wMDg4MDYsIDAuMDA4NzIxLCAwLjAwODYxOSIsIFwKLSAgICAgICAgICAiMC4wMTI4MjUsIDAuMDEwMTQsIDAuMDA5NjI2LCAwLjAwOTMzOCwgMC4wMDkwNTYsIDAuMDA4OTIxLCAwLjAwODc4OSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwNTUxLCAwLjAwMDI2LCAwLjAwMDIyNywgMC4wMDAyMTcsIDAuMDAwMjA4LCAwLjAwMDIwMywgMC4wMDAxOTkiLCBcCi0gICAgICAgICAgIjAuMDAwNjA2LCAwLjAwMDM4MywgMC4wMDAzMDcsIDAuMDAwMjgsIDAuMDAwMjU1LCAwLjAwMDI0MiwgMC4wMDAyMyIsIFwKLSAgICAgICAgICAiMC4wMDAwNTUsIDAuMDAwMzY4LCAwLjAwMDMyNywgMC4wMDAzMDEsIDAuMDAwMjcxLCAwLjAwMDI2MSwgMC4wMDAyNDUiLCBcCi0gICAgICAgICAgIjAuMDAwNjQ1LCAwLjAwMDExOCwgMC4wMDAxODUsIDAuMDAwMjAzLCAwLjAwMDIwNCwgMC4wMDAyMDUsIDAuMDAwMjAzIiwgXAotICAgICAgICAgICIwLjAwMTQ4OSwgMC4wMDAzNjksIDAuMDAwMSwgMC4wMDAwMzEsIDAuMDAwMDI5LCAwLjAwMDA2NSwgMC4wMDAwOTQiLCBcCi0gICAgICAgICAgIjAuMDAyOTc4LCAwLjAwMDg4OCwgMC4wMDEwNTcsIDAuMDAwOCwgMC4wMDA1NiwgMC4wMDA0MzIsIDAuMDAwMzE4IiwgXAotICAgICAgICAgICIwLjAwNDU5NCwgMC4wMDE5MDcsIDAuMDAxMDkxLCAwLjAwMDgwMiwgMC4wMDA1NjgsIDAuMDAwNDM1LCAwLjAwMDMwMSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBNWDNYTCAqCi0gKiAtLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoTVgzWEwpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC41MjIwNjg7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY2OTU2OTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2Njg0OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDY2OTU2OTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA4MywgMC4wMDA4MDUsIDAuMDAwODIyLCAwLjAwMDg2OCwgMC4wMDA5MzEsIDAuMDAxMDU5LCAwLjAwMTE5MiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjgyNywgMC4wMDI4MSwgMC4wMDI4MjUsIDAuMDAyODY1LCAwLjAwMjkyNCwgMC4wMDMwNDUsIDAuMDAzMTciKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY5MTc3NjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2OTA2ODQ7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjkxNzc2OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDI4OCwgMC4wMDAyODksIDAuMDAwMjksIDAuMDAwMjksIDAuMDAwMjksIDAuMDAwMjkxLCAwLjAwMDI5MSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDMxNSwgMC4wMDAzMDQsIDAuMDAwMzAyLCAwLjAwMDMwMSwgMC4wMDAzLCAwLjAwMDMsIDAuMDAwMjk5Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihDKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA3MTE1ODU7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNzEwNjY5OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDcxMTU4NTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyODgsIDAuMDAwMjksIDAuMDAwMjksIDAuMDAwMjkxLCAwLjAwMDI5MSwgMC4wMDAyOTEsIDAuMDAwMjkxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzE2LCAwLjAwMDMwNSwgMC4wMDAzMDIsIDAuMDAwMzAxLCAwLjAwMDMwMSwgMC4wMDAzLCAwLjAwMDMiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFMwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDEzMDI1NzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDEzMDI1NDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDEzMDI1NzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyMDEsIDAuMDAwMjIxLCAwLjAwMDMwMSwgMC4wMDA0MTcsIDAuMDAwNTQ2LCAwLjAwMDgxNywgMC4wMDEwMjYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDI0MTUsIDAuMDAyNDMyLCAwLjAwMjUxMSwgMC4wMDI2MjEsIDAuMDAyNzQ4LCAwLjAwMjk3LCAwLjAwMzE2MiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUzEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTI4MjA1OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTI4MjA1OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTI4MTk5OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDIwNywgMC4wMDAyMjIsIDAuMDAwMzI0LCAwLjAwMDQxNSwgMC4wMDA1NDQsIDAuMDAwODE5LCAwLjAwMTAyMyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjMyLCAwLjAwMjMzMiwgMC4wMDI0MTcsIDAuMDAyNTE5LCAwLjAwMjY0LCAwLjAwMjg1NiwgMC4wMDMwNTEiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4yMDExNDg7Ci0gICAgZnVuY3Rpb24gOiAiKChTMSBDKSArICghUzEgKChTMCBCKSArICghUzAgQSkpKSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExMzYwNCwgMC4xMjQzMDMsIDAuMjE5MjY4LCAwLjM3NzE3MSwgMC41MzUxMjYsIDAuOTAzMjk2LCAxLjExMzY5IiwgXAotICAgICAgICAgICIwLjExOTc0OCwgMC4xMzA0MTcsIDAuMjI1Mzk3LCAwLjM4MzMxNCwgMC41NDExMzgsIDAuOTA5NDA5LCAxLjExOTg5IiwgXAotICAgICAgICAgICIwLjEyNzM5NCwgMC4xMzgwOTMsIDAuMjMzMDY5LCAwLjM5MDk3MiwgMC41NDg4NDQsIDAuOTE3MDk4LCAxLjEyNzQ5IiwgXAotICAgICAgICAgICIwLjEzNDQ3NCwgMC4xNDUxNjIsIDAuMjQwMTQ0LCAwLjM5ODA0NCwgMC41NTYwMDEsIDAuOTI0MTI2LCAxLjEzNDU0IiwgXAotICAgICAgICAgICIwLjE0MDg4NCwgMC4xNTE1NTIsIDAuMjQ2NTM2LCAwLjQwNDQ0NSwgMC41NjIyNCwgMC45MzA0NTgsIDEuMTQwOSIsIFwKLSAgICAgICAgICAiMC4xNDk4NzMsIDAuMTYwNTY4LCAwLjI1NTU4OCwgMC40MTM0NzEsIDAuNTcxNDAyLCAwLjkzOTczLCAxLjE0OTk5IiwgXAotICAgICAgICAgICIwLjE1Njc0NywgMC4xNjc1MDksIDAuMjYyNTM0LCAwLjQyMDQyNCwgMC41NzgyNTYsIDAuOTQ2NTI2LCAxLjE1Njg0Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEyMjMsIDAuMTQzNzExLCAwLjM0MDA4LCAwLjY3MDg0NywgMS4wMDI0NCwgMS43Nzc0NiwgMi4yMjAyNCIsIFwKLSAgICAgICAgICAiMC4xMjIzMTYsIDAuMTQzNzA4LCAwLjMzOTk5MywgMC42NzA4OTIsIDEuMDAzODcsIDEuNzc3MzYsIDIuMjE5MDMiLCBcCi0gICAgICAgICAgIjAuMTIyMjU0LCAwLjE0MzY1MiwgMC4zNDAwNjYsIDAuNjcwODg2LCAxLjAwMzg5LCAxLjc3NzQzLCAyLjIyMDA1IiwgXAotICAgICAgICAgICIwLjEyMjUyLCAwLjE0MzkwMiwgMC4zNDAxMDYsIDAuNjcwOTQ2LCAxLjAwMjQzLCAxLjc3NjgzLCAyLjIxOTMzIiwgXAotICAgICAgICAgICIwLjEyMjk3NCwgMC4xNDQyNjUsIDAuMzQwMjE0LCAwLjY3MTUzLCAxLjAwMzAzLCAxLjc3ODAyLCAyLjIyMjk2IiwgXAotICAgICAgICAgICIwLjEyMzYzNCwgMC4xNDQ4NzcsIDAuMzM5OTg0LCAwLjY3MTQ5OCwgMS4wMDM3NSwgMS43NzcxNiwgMi4yMjI4MSIsIFwKLSAgICAgICAgICAiMC4xMjQyNTYsIDAuMTQ1NDE1LCAwLjM0MDQzNSwgMC42NzA2OTQsIDEuMDAzNjUsIDEuNzc3NDMsIDIuMjIyODUiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTE1MTg2LCAwLjEyNTE3NiwgMC4yMTI3MjIsIDAuMzU3NDc0LCAwLjUwMjE5OSwgMC44Mzk3NTksIDEuMDMyNjYiLCBcCi0gICAgICAgICAgIjAuMTIxMDc3LCAwLjEzMTA4NywgMC4yMTg2MjQsIDAuMzYzMzc5LCAwLjUwODA3OCwgMC44NDU2NDYsIDEuMDM4NTUiLCBcCi0gICAgICAgICAgIjAuMTI3OTc0LCAwLjEzNzk3OSwgMC4yMjU1MTIsIDAuMzcwMjU2LCAwLjUxNDk5NCwgMC44NTI1NDUsIDEuMDQ1NDUiLCBcCi0gICAgICAgICAgIjAuMTM0NDIzLCAwLjE0NDQ2LCAwLjIzMTk2NCwgMC4zNzY3MTgsIDAuNTIxNDM5LCAwLjg1OTAwMSwgMS4wNTE5IiwgXAotICAgICAgICAgICIwLjE0MDIyMiwgMC4xNTAyNTUsIDAuMjM3Nzk0LCAwLjM4MjU0OCwgMC41MjcyMzgsIDAuODY0ODgyLCAxLjA1Nzc3IiwgXAotICAgICAgICAgICIwLjE0ODMyNSwgMC4xNTgzOTEsIDAuMjQ2MDA3LCAwLjM5MDc0OSwgMC41MzU0NDEsIDAuODczMDM3LCAxLjA2NjAxIiwgXAotICAgICAgICAgICIwLjE1NDQ2MywgMC4xNjQ1NTgsIDAuMjUyMjUxLCAwLjM5Njk5NiwgMC41NDE3MDUsIDAuODc5MzY3LCAxLjA3MjIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTEyOTY4LCAwLjEzMTg3NSwgMC4zMDU5NzcsIDAuNjAxMzU4LCAwLjg5NzEzMSwgMS41OTE5NywgMS45ODYxNCIsIFwKLSAgICAgICAgICAiMC4xMTI5NDcsIDAuMTMxNzE5LCAwLjMwNTY2MSwgMC42MDE0MzYsIDAuODk3MTcyLCAxLjU5MTc3LCAxLjk4NjE2IiwgXAotICAgICAgICAgICIwLjExMjk1NiwgMC4xMzE3OTIsIDAuMzA1OTY2LCAwLjYwMTM0NSwgMC44OTgzMjYsIDEuNTkxNzIsIDEuOTg2MjIiLCBcCi0gICAgICAgICAgIjAuMTEzMjI5LCAwLjEzMjEyNywgMC4zMDYwODQsIDAuNjAxMzgsIDAuODk3MTY0LCAxLjU5MTkzLCAxLjk4NjA4IiwgXAotICAgICAgICAgICIwLjExMzY3OSwgMC4xMzI1MDgsIDAuMzA2MTg5LCAwLjYwMTQ3OSwgMC44OTcxNTUsIDEuNTkyMiwgMS45ODU0MyIsIFwKLSAgICAgICAgICAiMC4xMTQ0MTksIDAuMTMzMjMzLCAwLjMwNjI0NywgMC42MDA4ODksIDAuODk4MTA4LCAxLjU5MTk3LCAxLjk4ODUzIiwgXAotICAgICAgICAgICIwLjExNTE4NywgMC4xMzM4NjMsIDAuMzA2NTk5LCAwLjYwMTU2NCwgMC44OTgxNjIsIDEuNTkyMzQsIDEuOTg4MjQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTEzMjA2LCAwLjEyMzg5MywgMC4yMTg4NjEsIDAuMzc2NzU4LCAwLjUzNDY3NCwgMC45MDI5MDEsIDEuMTEzMyIsIFwKLSAgICAgICAgICAiMC4xMTk0OTIsIDAuMTMwMTU5LCAwLjIyNTEzMSwgMC4zODMwNDgsIDAuNTQwODcsIDAuOTA5MTUsIDEuMTE5NzciLCBcCi0gICAgICAgICAgIjAuMTI3MjQ4LCAwLjEzNzkzOSwgMC4yMzI4OTEsIDAuMzkwNzk2LCAwLjU0ODYzMSwgMC45MTY5MDQsIDEuMTI3NTMiLCBcCi0gICAgICAgICAgIjAuMTM0MzUyLCAwLjE0NTAxOCwgMC4yMzk5OTQsIDAuMzk3ODg4LCAwLjU1NTcsIDAuOTIzOTc4LCAxLjEzNDQ2IiwgXAotICAgICAgICAgICIwLjE0MDY3NCwgMC4xNTEzOTIsIDAuMjQ2Mzg5LCAwLjQwNDI4NCwgMC41NjIxMzIsIDAuOTMwMzMyLCAxLjE0MDcyIiwgXAotICAgICAgICAgICIwLjE0OTczMSwgMC4xNjA0MjcsIDAuMjU1NDQsIDAuNDEzMzIsIDAuNTcxMjQ2LCAwLjkzOTQzMywgMS4xNDk5MSIsIFwKLSAgICAgICAgICAiMC4xNTY2MzYsIDAuMTY3NDEsIDAuMjYyNDIsIDAuNDIwMjkxLCAwLjU3ODEyLCAwLjk0NjI5NiwgMS4xNTY3MiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMjIyNzgsIDAuMTQzNywgMC4zNDAwNjQsIDAuNjcwODU0LCAxLjAwMjM4LCAxLjc3NjUsIDIuMjIwMzciLCBcCi0gICAgICAgICAgIjAuMTIyMjg5LCAwLjE0MzY3MSwgMC4zMzk5NDksIDAuNjcwODc5LCAxLjAwMzg3LCAxLjc3NzM1LCAyLjIxOTk0IiwgXAotICAgICAgICAgICIwLjEyMjMwNiwgMC4xNDM2NTUsIDAuMzQwMDEzLCAwLjY3MDk2NCwgMS4wMDM4OSwgMS43Nzc0MiwgMi4yMTk5MSIsIFwKLSAgICAgICAgICAiMC4xMjI1MDUsIDAuMTQzODcxLCAwLjM0MDA5NSwgMC42NzE1NjMsIDEuMDAzNzQsIDEuNzc2ODgsIDIuMjIzMDEiLCBcCi0gICAgICAgICAgIjAuMTIyODQ4LCAwLjE0NDE4NCwgMC4zMzk3NzMsIDAuNjcxNTExLCAxLjAwMzc0LCAxLjc3OTU4LCAyLjIyMjk2IiwgXAotICAgICAgICAgICIwLjEyMzYyMiwgMC4xNDQ4NjMsIDAuMzQwMDMzLCAwLjY3MTQ4OCwgMS4wMDM3NCwgMS43Nzc1MiwgMi4yMjI4IiwgXAotICAgICAgICAgICIwLjEyNDIyMiwgMC4xNDU0MSwgMC4zNDA0MTYsIDAuNjcwNzI0LCAxLjAwMzY0LCAxLjc3OTM1LCAyLjIyMjgyIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExNTYxNSwgMC4xMjU2MDYsIDAuMjEzMTU3LCAwLjM1NzkxNiwgMC41MDI2NDMsIDAuODQwMjA1LCAxLjAzMzExIiwgXAotICAgICAgICAgICIwLjEyMTM0NywgMC4xMzEzNjIsIDAuMjE4ODg3LCAwLjM2MzYzOCwgMC41MDgzNjMsIDAuODQ1OTMsIDEuMDM4ODQiLCBcCi0gICAgICAgICAgIjAuMTI4MTg2LCAwLjEzODIxNSwgMC4yMjU3MzksIDAuMzcwNTA0LCAwLjUxNTIzNywgMC44NTI3OTIsIDEuMDQ1NyIsIFwKLSAgICAgICAgICAiMC4xMzQ1OTUsIDAuMTQ0NjExLCAwLjIzMjE1MywgMC4zNzY4OTksIDAuNTIxNjQsIDAuODU5MTc3LCAxLjA1MjA5IiwgXAotICAgICAgICAgICIwLjE0MDMxOSwgMC4xNTAzODEsIDAuMjM3OTY1LCAwLjM4MjcwOSwgMC41Mjc0MjgsIDAuODY0OTk3LCAxLjA1Nzk3IiwgXAotICAgICAgICAgICIwLjE0ODUxNywgMC4xNTg2MDUsIDAuMjQ2MTk3LCAwLjM5MDk3MSwgMC41MzU2NDIsIDAuODczMzI4LCAxLjA2NjI1IiwgXAotICAgICAgICAgICIwLjE1NDYzNCwgMC4xNjQ3MjcsIDAuMjUyNDI1LCAwLjM5NzE3MSwgMC41NDE4ODksIDAuODc5NTE0LCAxLjA3MjM3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExMjk3NiwgMC4xMzE4OTIsIDAuMzA1OTg0LCAwLjYwMTM2NSwgMC44OTcxMjgsIDEuNTkxOTcsIDEuOTg2MTQiLCBcCi0gICAgICAgICAgIjAuMTEyOTYyLCAwLjEzMTc2NCwgMC4zMDYwMDgsIDAuNjAxMzUsIDAuODk4MjYzLCAxLjU5MTc2LCAxLjk4NjIxIiwgXAotICAgICAgICAgICIwLjExMjk4OSwgMC4xMzE5MjMsIDAuMzA2MDEyLCAwLjYwMTM0OSwgMC44OTcyMjksIDEuNTkxOTMsIDEuOTg2MjIiLCBcCi0gICAgICAgICAgIjAuMTEzMjM5LCAwLjEzMjExNiwgMC4zMDU2NTgsIDAuNjAxMzg1LCAwLjg5NjgyMywgMS41OTE4OCwgMS45ODYxOCIsIFwKLSAgICAgICAgICAiMC4xMTM1OTMsIDAuMTMyNDQ1LCAwLjMwNjA1NCwgMC42MDA3MSwgMC44OTcxNTcsIDEuNTkxOSwgMS45ODg3MiIsIFwKLSAgICAgICAgICAiMC4xMTQ0MSwgMC4xMzMyODUsIDAuMzA2MzYsIDAuNjAxNjM0LCAwLjg5ODExMSwgMS41OTI0MywgMS45ODkwMiIsIFwKLSAgICAgICAgICAiMC4xMTUxNzUsIDAuMTMzODQ3LCAwLjMwNjYwNCwgMC42MDE1MjIsIDAuODk3MzM0LCAxLjU5MTkzLCAxLjk4ODIyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4Mzg1NywgMC4wOTQzOTUsIDAuMTg5MTUyLCAwLjM0NzAxNSwgMC41MDQ4MzcsIDAuODczMDcsIDEuMDgzNSIsIFwKLSAgICAgICAgICAiMC4wOTAwMDMsIDAuMTAwNTM5LCAwLjE5NTMsIDAuMzUzMTIsIDAuNTEwOTM5LCAwLjg3OTIxLCAxLjA4OTU4IiwgXAotICAgICAgICAgICIwLjA5NjkwMSwgMC4xMDc0MzgsIDAuMjAyMTg1LCAwLjM2MDAwNywgMC41MTc4MzgsIDAuODg2MDU2LCAxLjA5NjQ1IiwgXAotICAgICAgICAgICIwLjEwMjYzNCwgMC4xMTMxNTYsIDAuMjA3OTIxLCAwLjM2NTc0NywgMC41MjM1NDQsIDAuODkxNzIxLCAxLjEwMjE0IiwgXAotICAgICAgICAgICIwLjEwNzM4MywgMC4xMTc5MjksIDAuMjEyNjcyLCAwLjM3MDUxLCAwLjUyODM1NiwgMC44OTY0OTYsIDEuMTA3MTUiLCBcCi0gICAgICAgICAgIjAuMTEzODYxLCAwLjEyNDM5OSwgMC4yMTkxNiwgMC4zNzcwMzEsIDAuNTM0ODA2LCAwLjkwMzA5NywgMS4xMTM0NSIsIFwKLSAgICAgICAgICAiMC4xMTg3NjYsIDAuMTI5MzI1LCAwLjIyNDA5MSwgMC4zODE5MTgsIDAuNTM5Nzg5LCAwLjkwODAwMiwgMS4xMTgzOSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTc3OTQsIDAuMTM5NzU3LCAwLjMzODYzMSwgMC42NzEwNDcsIDEuMDAyMzUsIDEuNzc3MDIsIDIuMjIwMTIiLCBcCi0gICAgICAgICAgIjAuMTE3Nzc2LCAwLjEzOTc3LCAwLjMzODIzMywgMC42NzA0MDYsIDEuMDAyNjEsIDEuNzc5NSwgMi4yMjA0OSIsIFwKLSAgICAgICAgICAiMC4xMTc5NzYsIDAuMTM5ODAzLCAwLjMzODI4MywgMC42NzAyOTUsIDEuMDAzNDYsIDEuNzc5MywgMi4yMjA4OSIsIFwKLSAgICAgICAgICAiMC4xMTgyNjYsIDAuMTQwMDUyLCAwLjMzODI0NSwgMC42NzA5MTYsIDEuMDAzNDIsIDEuNzc5MDYsIDIuMjIwNzMiLCBcCi0gICAgICAgICAgIjAuMTE4NTc5LCAwLjE0MDIzOCwgMC4zMzg1OTIsIDAuNjcwODc4LCAxLjAwMzM3LCAxLjc3OTI3LCAyLjIxODg0IiwgXAotICAgICAgICAgICIwLjExOTEyLCAwLjE0MDcxMSwgMC4zMzg0NTIsIDAuNjY5OTYsIDEuMDAzMjcsIDEuNzc5MTQsIDIuMjIyNDgiLCBcCi0gICAgICAgICAgIjAuMTE5NjY1LCAwLjE0MTE4MywgMC4zMzg2MjcsIDAuNjcwMzQ3LCAxLjAwMjExLCAxLjc3OTAzLCAyLjIyMDEiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDgzMTA2LCAwLjA5Mjc4NywgMC4xNzk2ODIsIDAuMzI0NDE1LCAwLjQ2OTA4LCAwLjgwNjY1OSwgMC45OTk1NjciLCBcCi0gICAgICAgICAgIjAuMDg4NzExLCAwLjA5ODM5MSwgMC4xODUyOTMsIDAuMzMwMDI4LCAwLjQ3NDY4NywgMC44MTIyNzIsIDEuMDA1MzUiLCBcCi0gICAgICAgICAgIjAuMDk0ODYzLCAwLjEwNDU1MiwgMC4xOTE0NSwgMC4zMzYxNTcsIDAuNDgwODQxLCAwLjgxODQxOSwgMS4wMTEzMiIsIFwKLSAgICAgICAgICAiMC4xMDAwMDcsIDAuMTA5Njk2LCAwLjE5NjU5NSwgMC4zNDEzNTYsIDAuNDg2MDMyLCAwLjgyMzU2NSwgMS4wMTY0NyIsIFwKLSAgICAgICAgICAiMC4xMDQyODUsIDAuMTEzOTcsIDAuMjAwODkzLCAwLjM0NTYwMywgMC40OTAzMDksIDAuODI3ODgsIDEuMDIwNzYiLCBcCi0gICAgICAgICAgIjAuMTEwMDIzLCAwLjExOTc0MSwgMC4yMDY2NzYsIDAuMzUxMzkzLCAwLjQ5NjExMSwgMC44MzM3NTUsIDEuMDI2NTQiLCBcCi0gICAgICAgICAgIjAuMTE0NDIxLCAwLjEyNDEyNywgMC4yMTExMzgsIDAuMzU1ODU2LCAwLjUwMDUyNCwgMC44MzgxMDMsIDEuMDMxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwNjM2MSwgMC4xMjU4NjcsIDAuMzAzMTQyLCAwLjYwMDM1NywgMC44OTc1NjcsIDEuNTkxMjUsIDEuOTg4MjQiLCBcCi0gICAgICAgICAgIjAuMTA2NDEyLCAwLjEyNTg1NiwgMC4zMDMxMzYsIDAuNjAwMzQsIDAuODk3NTk2LCAxLjU5MTQ0LCAxLjk4NDk3IiwgXAotICAgICAgICAgICIwLjEwNjYyOCwgMC4xMjYwMTMsIDAuMzAyODUzLCAwLjYwMDI1MiwgMC44OTc2MTQsIDEuNTkxNDcsIDEuOTg1NjYiLCBcCi0gICAgICAgICAgIjAuMTA3MDE5LCAwLjEyNjMzMywgMC4zMDI3ODMsIDAuNjAwMjY1LCAwLjg5NjUyNSwgMS41OTE1OCwgMS45ODgxNyIsIFwKLSAgICAgICAgICAiMC4xMDczNjEsIDAuMTI2NzE2LCAwLjMwMzExNiwgMC41OTk2MzMsIDAuODk3Njc4LCAxLjU5MTY3LCAxLjk4ODE3IiwgXAotICAgICAgICAgICIwLjEwNzk3OSwgMC4xMjcxMTUsIDAuMzAzMDk0LCAwLjU5OTgzNSwgMC44OTc1MzIsIDEuNTg4OTYsIDEuOTg1ODIiLCBcCi0gICAgICAgICAgIjAuMTA4NTcyLCAwLjEyNzc0OCwgMC4zMDMyODcsIDAuNTk5OTQxLCAwLjg5NzQ2OCwgMS41OTEzOCwgMS45ODU3MSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTA4OTUzLCAwLjExOTYxNSwgMC4yMTQ1OTgsIDAuMzcyNTE0LCAwLjUzMDMyNiwgMC44OTg2MTksIDEuMTA5MjEiLCBcCi0gICAgICAgICAgIjAuMTE2NDE4LCAwLjEyNzExMywgMC4yMjIwNjcsIDAuMzc5OTc1LCAwLjUzNzgwMywgMC45MDYwOTMsIDEuMTE2NzEiLCBcCi0gICAgICAgICAgIjAuMTI1OTUyLCAwLjEzNjY0OCwgMC4yMzE2MSwgMC4zODk1MTUsIDAuNTQ3MzQ4LCAwLjkxNTYyOSwgMS4xMjYxIiwgXAotICAgICAgICAgICIwLjEzNDc1NCwgMC4xNDU0NCwgMC4yNDA0MTgsIDAuMzk4MjkyLCAwLjU1NjEzMiwgMC45MjQ0MjksIDEuMTM0ODMiLCBcCi0gICAgICAgICAgIjAuMTQyNTM2LCAwLjE1MzIxOCwgMC4yNDgxOTEsIDAuNDA2MDYsIDAuNTYzOTIsIDAuOTMyMTk2LCAxLjE0MjYiLCBcCi0gICAgICAgICAgIjAuMTUzMjE3LCAwLjE2MzkzLCAwLjI1ODg5MSwgMC40MTY3ODgsIDAuNTc0NjkzLCAwLjk0Mjg4MiwgMS4xNTMzNCIsIFwKLSAgICAgICAgICAiMC4xNjExODksIDAuMTcxODcyLCAwLjI2Njk4NSwgMC40MjQ4ODMsIDAuNTgyNzUzLCAwLjk1MDk1NSwgMS4xNjEzNyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMjIyNzEsIDAuMTQzNjczLCAwLjMzOTU2LCAwLjY3MDgxOCwgMS4wMDM5MSwgMS43NzczNSwgMi4yMTk4NSIsIFwKLSAgICAgICAgICAiMC4xMjIyMzYsIDAuMTQzNTg1LCAwLjM0MDAxNCwgMC42NzA4OTMsIDEuMDAzOTEsIDEuNzc3NTQsIDIuMjE5OTIiLCBcCi0gICAgICAgICAgIjAuMTIyMjE1LCAwLjE0MzYzMSwgMC4zNDAwNTIsIDAuNjcwOTMsIDEuMDAzODksIDEuNzc3NjIsIDIuMjE5MDgiLCBcCi0gICAgICAgICAgIjAuMTIyNTczLCAwLjE0MzkzOCwgMC4zNDAxLCAwLjY3MTU0NywgMS4wMDI4MiwgMS43Nzc1MiwgMi4yMTk3MiIsIFwKLSAgICAgICAgICAiMC4xMjMwNjMsIDAuMTQ0MzIsIDAuMzQwMjA3LCAwLjY3MDgyOCwgMS4wMDM4MSwgMS43Nzc1NCwgMi4yMjA0MiIsIFwKLSAgICAgICAgICAiMC4xMjQxMzQsIDAuMTQ1MjgsIDAuMzQwMTMxLCAwLjY3MTY4LCAxLjAwMjM5LCAxLjc3NzEsIDIuMjIwMzQiLCBcCi0gICAgICAgICAgIjAuMTI0OTg2LCAwLjE0NjA3LCAwLjM0MDU5MSwgMC42NzE3NzYsIDEuMDAyNDgsIDEuNzc5NjEsIDIuMjIwNiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTA1NSwgMC4xMjA1NTIsIDAuMjA4MDgxLCAwLjM1Mjg1MywgMC40OTc1NDYsIDAuODM1MTA5LCAxLjAyODA0IiwgXAotICAgICAgICAgICIwLjExNzkwMywgMC4xMjc5MDUsIDAuMjE1NDM5LCAwLjM2MDIxNywgMC41MDQ5MDcsIDAuODQyNDcxLCAxLjAzNTQiLCBcCi0gICAgICAgICAgIjAuMTI3MzYyLCAwLjEzNzM3OCwgMC4yMjQ4OSwgMC4zNjk2NDksIDAuNTE0MzQ3LCAwLjg1MTkzMywgMS4wNDQ4NSIsIFwKLSAgICAgICAgICAiMC4xMzYwOSwgMC4xNDYxMywgMC4yMzM2NjEsIDAuMzc4NDIsIDAuNTIzMTQxLCAwLjg2MDY5OCwgMS4wNTM2MiIsIFwKLSAgICAgICAgICAiMC4xNDM4NDUsIDAuMTUzODg3LCAwLjI0MTQyOCwgMC4zODYxNzIsIDAuNTMwODYzLCAwLjg2ODU5LCAxLjA2MTM4IiwgXAotICAgICAgICAgICIwLjE1NDQ3MSwgMC4xNjQ2MTQsIDAuMjUyMjIxLCAwLjM5Njk2NiwgMC41NDE2NjYsIDAuODc5MjkyLCAxLjA3MjI2IiwgXAotICAgICAgICAgICIwLjE2MjUwMSwgMC4xNzI2MjMsIDAuMjYwMjk1LCAwLjQwNTAwNSwgMC41NDk3OTUsIDAuODg3NDE2LCAxLjA4MDI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExMjg2MSwgMC4xMzE4LCAwLjMwNTk3NCwgMC42MDE0NjksIDAuODk3MTE4LCAxLjU5MTc2LCAxLjk4ODY0IiwgXAotICAgICAgICAgICIwLjExMjg3NCwgMC4xMzE4MDMsIDAuMzA1OTg1LCAwLjYwMTQ3OSwgMC44OTcxMTUsIDEuNTkxNzcsIDEuOTg4NjQiLCBcCi0gICAgICAgICAgIjAuMTEyOTcyLCAwLjEzMTkwMSwgMC4zMDU5NTksIDAuNjAxMzUsIDAuODk4MTk3LCAxLjU5MTkzLCAxLjk4NjMiLCBcCi0gICAgICAgICAgIjAuMTEzMjQzLCAwLjEzMjE0NiwgMC4zMDYwODEsIDAuNjAxMjczLCAwLjg5ODEwNiwgMS41OTE2NSwgMS45ODYxOSIsIFwKLSAgICAgICAgICAiMC4xMTM3NTYsIDAuMTMyNTc2LCAwLjMwNjI1NywgMC42MDEzMzUsIDAuODk3MjIyLCAxLjU5MjU0LCAxLjk4NjIiLCBcCi0gICAgICAgICAgIjAuMTE0OTE0LCAwLjEzMzYyMiwgMC4zMDYzNDMsIDAuNjAxMzg4LCAwLjg5ODEwOSwgMS41OTIzOCwgMS45ODUzMSIsIFwKLSAgICAgICAgICAiMC4xMTU3ODUsIDAuMTM0NDI2LCAwLjMwNjg5MywgMC42MDE1OTEsIDAuODk2NjA0LCAxLjU5MTgxLCAxLjk4ODE2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlMwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMjE2NDksIDAuMTMyMzM3LCAwLjIyNzMxOSwgMC4zODUyMjMsIDAuNTQzMDc4LCAwLjkxMTMxLCAxLjEyMTkxIiwgXAotICAgICAgICAgICIwLjEyODkyNiwgMC4xMzk2MjIsIDAuMjM0NTk3LCAwLjM5MjUwMiwgMC41NTAzMzMsIDAuOTE4NjA5LCAxLjEyOSIsIFwKLSAgICAgICAgICAiMC4xMzUxODIsIDAuMTQ1ODgyLCAwLjI0MDg1NiwgMC4zOTg3NTQsIDAuNTU2NjU1LCAwLjkyNDg4MywgMS4xMzUyOCIsIFwKLSAgICAgICAgICAiMC4xMzk0MDIsIDAuMTUwMSwgMC4yNDUwODMsIDAuNDAyOTY3LCAwLjU2MDg1OSwgMC45MjkwNDUsIDEuMTM5NDciLCBcCi0gICAgICAgICAgIjAuMTQyODEzLCAwLjE1MzUxNCwgMC4yNDg1MzksIDAuNDA2NDI2LCAwLjU2NDI5OSwgMC45MzI0NjEsIDEuMTQyODgiLCBcCi0gICAgICAgICAgIjAuMTQ3Mjg0LCAwLjE1ODAzNCwgMC4yNTMxMDIsIDAuNDEwOTgyLCAwLjU2ODgwOCwgMC45MzcxNSwgMS4xNDc0NSIsIFwKLSAgICAgICAgICAiMC4xNTA2ODYsIDAuMTYxNDE4LCAwLjI1NjUxNSwgMC40MTQ0NDQsIDAuNTcyMjM4LCAwLjk0MDQ1NCwgMS4xNTA4NyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMjIyOTUsIDAuMTQzNzE3LCAwLjM0MDA3NSwgMC42NzE2NDksIDEuMDAzODksIDEuNzc2OTcsIDIuMjE5ODYiLCBcCi0gICAgICAgICAgIjAuMTIyMjg2LCAwLjE0MzcwNiwgMC4zNDAwNjgsIDAuNjcwODU5LCAxLjAwMjgxLCAxLjc3NzQ3LCAyLjIxOTY5IiwgXAotICAgICAgICAgICIwLjEyMjI3MiwgMC4xNDM2OTQsIDAuMzQwMDU5LCAwLjY3MDkyOSwgMS4wMDM5MiwgMS43Nzc0NiwgMi4yMjAwOCIsIFwKLSAgICAgICAgICAiMC4xMjIzNjYsIDAuMTQzNzc0LCAwLjM0MDA5LCAwLjY3MTU5NywgMS4wMDM4NCwgMS43Nzc3NSwgMi4yMjMxNCIsIFwKLSAgICAgICAgICAiMC4xMjI0MjYsIDAuMTQzNzQ2LCAwLjMzOTkzOCwgMC42NzA4NDYsIDEuMDAzNjcsIDEuNzc3OTEsIDIuMjIxMTIiLCBcCi0gICAgICAgICAgIjAuMTIyMzc3LCAwLjE0Mzg0OSwgMC4zNDAwMjQsIDAuNjcxMzUsIDEuMDAzNTcsIDEuNzc5NCwgMi4yMjA4OSIsIFwKLSAgICAgICAgICAiMC4xMjIzNjEsIDAuMTQzNzYxLCAwLjMzOTk3NCwgMC42NzA5NDYsIDEuMDAyNzUsIDEuNzc5MiwgMi4yMjA3MiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMjE4MjIsIDAuMTMxODUzLCAwLjIxOTM3NSwgMC4zNjQxMzcsIDAuNTA4ODQ4LCAwLjg0NjQxOSwgMS4wMzkzNSIsIFwKLSAgICAgICAgICAiMC4xMjkzMTksIDAuMTM5MzM2LCAwLjIyNjg1MiwgMC4zNzE2MDgsIDAuNTE2MzE5LCAwLjg1Mzg5LCAxLjA0NjgyIiwgXAotICAgICAgICAgICIwLjEzNTUzLCAwLjE0NTUzNywgMC4yMzMwODUsIDAuMzc3ODI5LCAwLjUyMjU2NiwgMC44NjAyMTksIDEuMDUzMDUiLCBcCi0gICAgICAgICAgIjAuMTM5OTk4LCAwLjE1MDAyOCwgMC4yMzc1NTQsIDAuMzgyMzQ1LCAwLjUyNzAyMywgMC44NjQ1ODQsIDEuMDU3NDkiLCBcCi0gICAgICAgICAgIjAuMTQzNjM4LCAwLjE1MzY3LCAwLjI0MTI0LCAwLjM4NTk5OSwgMC41MzA2OTMsIDAuODY4MzA1LCAxLjA2MTE2IiwgXAotICAgICAgICAgICIwLjE0ODY0MiwgMC4xNTg2NjksIDAuMjQ2MzA2LCAwLjM5MTA3MywgMC41MzU3OSwgMC44NzM0OCwgMS4wNjYzMiIsIFwKLSAgICAgICAgICAiMC4xNTIzOSwgMC4xNjIzODcsIDAuMjUwMTEzLCAwLjM5NDg3NiwgMC41Mzk2MjEsIDAuODc3MTgyLCAxLjA3MDA1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExMjk2NSwgMC4xMzE5LCAwLjMwNTc3NSwgMC42MDEzNjQsIDAuODk4MTM2LCAxLjU5MTk4LCAxLjk4MzU0IiwgXAotICAgICAgICAgICIwLjExMjk1NiwgMC4xMzE4MzUsIDAuMzA2LCAwLjYwMTM2LCAwLjg5ODI1LCAxLjU5MTksIDEuOTg2MjUiLCBcCi0gICAgICAgICAgIjAuMTEyOTQyLCAwLjEzMTg1NiwgMC4zMDU5OTQsIDAuNjAxMjk5LCAwLjg5NzEyOSwgMS41OTIzLCAxLjk4NjE2IiwgXAotICAgICAgICAgICIwLjExMzAwMywgMC4xMzE5MjQsIDAuMzA2MDAzLCAwLjYwMTUyLCAwLjg5NzE1NiwgMS41OTE4NywgMS45ODc5OCIsIFwKLSAgICAgICAgICAiMC4xMTI5OTMsIDAuMTMxOTU1LCAwLjMwNjA4OCwgMC42MDEyODksIDAuODk4MDM2LCAxLjU5MTc0LCAxLjk4ODA4IiwgXAotICAgICAgICAgICIwLjExMjk0MywgMC4xMzE4OTYsIDAuMzA1NzM2LCAwLjYwMDg2NSwgMC44OTgwMzksIDEuNTg5MTgsIDEuOTg4NDgiLCBcCi0gICAgICAgICAgIjAuMTEyODk4LCAwLjEzMTc4NiwgMC4zMDU3MiwgMC42MDA0OTYsIDAuODk3NzU4LCAxLjU5MTczLCAxLjk4ODA3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlMxIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzk1MjksIDAuMDkwMDczLCAwLjE4NDg0MiwgMC4zNDI3NSwgMC41MDA1MTQsIDAuODY4NzUyLCAxLjA3OTIzIiwgXAotICAgICAgICAgICIwLjA4NzEwNiwgMC4wOTc2NDksIDAuMTkyNDI4LCAwLjM1MDI1MiwgMC41MDgwODQsIDAuODc2MzA5LCAxLjA4NjczIiwgXAotICAgICAgICAgICIwLjA5NTIyNywgMC4xMDU3NjksIDAuMjAwNTU2LCAwLjM1ODM4NiwgMC41MTYyMzYsIDAuODg0NDIsIDEuMDk0ODUiLCBcCi0gICAgICAgICAgIjAuMTAxMzQ5LCAwLjExMTg4NiwgMC4yMDY2NTgsIDAuMzY0NDkzLCAwLjUyMjMyMywgMC44OTA1NDksIDEuMTAwOTciLCBcCi0gICAgICAgICAgIjAuMTA2MzE1LCAwLjExNjg0OSwgMC4yMTE1ODIsIDAuMzY5NDI5LCAwLjUyNzIwMywgMC44OTU0NCwgMS4xMDU4OCIsIFwKLSAgICAgICAgICAiMC4xMTI2ODMsIDAuMTIzMjY3LCAwLjIxODAyNCwgMC4zNzU4MjIsIDAuNTMzNjU4LCAwLjkwMTg2NCwgMS4xMTIyOSIsIFwKLSAgICAgICAgICAiMC4xMTczOTYsIDAuMTI3OTAxLCAwLjIyMjc1NCwgMC4zODA1MDYsIDAuNTM4NDA5LCAwLjkwNjUzNSwgMS4xMTY5OSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTc4NDIsIDAuMTM5NzcyLCAwLjMzODYxLCAwLjY3MDA3NiwgMS4wMDI0NCwgMS43NzY1LCAyLjIyMDA3IiwgXAotICAgICAgICAgICIwLjExNzg2NSwgMC4xMzk2NjQsIDAuMzM4MDQxLCAwLjY3MDQyNywgMS4wMDI1MywgMS43Nzc2NCwgMi4yMjAzOCIsIFwKLSAgICAgICAgICAiMC4xMTgwODMsIDAuMTM5ODEyLCAwLjMzODI2OCwgMC42NzAzMTYsIDEuMDAzNDMsIDEuNzc3OTcsIDIuMjIwNDQiLCBcCi0gICAgICAgICAgIjAuMTE4NTYxLCAwLjE0MDI4NiwgMC4zMzg2NjYsIDAuNjcwOTU4LCAxLjAwMzM1LCAxLjc3Nzk0LCAyLjIyMDM3IiwgXAotICAgICAgICAgICIwLjExODk5MSwgMC4xNDA2NzEsIDAuMzM4ODA5LCAwLjY3MDkzNCwgMS4wMDMzNCwgMS43Nzc3MSwgMi4yMjI3IiwgXAotICAgICAgICAgICIwLjExOTcyMiwgMC4xNDExNjMsIDAuMzM4NTksIDAuNjcwNjEsIDEuMDAzNDIsIDEuNzc3OTYsIDIuMjIwNDkiLCBcCi0gICAgICAgICAgIjAuMTIwNTY2LCAwLjE0MTk4NywgMC4zMzg3OTUsIDAuNjcwNjM2LCAxLjAwMzUxLCAxLjc3OTMxLCAyLjIyMDkiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg0ODU3LCAwLjA5NDg0OCwgMC4xODIyMzksIDAuMzI2OTMsIDAuNDcxNzY2LCAwLjgwOTM1NSwgMS4wMDMwMyIsIFwKLSAgICAgICAgICAiMC4wOTIyMDgsIDAuMTAyMTksIDAuMTg5NTg2LCAwLjMzNDMwNSwgMC40NzkwOTcsIDAuODE3MDQsIDEuMDA5NzEiLCBcCi0gICAgICAgICAgIjAuMTAwNzgzLCAwLjExMDc0OSwgMC4xOTgxNjEsIDAuMzQyODY3LCAwLjQ4NzY2MywgMC44MjU2NzYsIDEuMDE4MzYiLCBcCi0gICAgICAgICAgIjAuMTA3NzM5LCAwLjExNzcyNSwgMC4yMDUxNzgsIDAuMzQ5ODY4LCAwLjQ5NDU5NSwgMC44MzIzMjcsIDEuMDI1OTQiLCBcCi0gICAgICAgICAgIjAuMTEzNjU4LCAwLjEyMzY5NCwgMC4yMTExOTcsIDAuMzU1OTIsIDAuNTAwNjUyLCAwLjgzODM0NCwgMS4wMzE5OCIsIFwKLSAgICAgICAgICAiMC4xMjE2MywgMC4xMzE3MTYsIDAuMjE5NDMxLCAwLjM2NDEzLCAwLjUwODg4OCwgMC44NDY2NTUsIDEuMDM5NDgiLCBcCi0gICAgICAgICAgIjAuMTI3ODQsIDAuMTM3OTEyLCAwLjIyNTc1NiwgMC4zNzA0NTksIDAuNTE1MTg4LCAwLjg1Mjg0NiwgMS4wNDU4NiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTE4MzQsIDAuMTMwOTA3LCAwLjMwNTMxNCwgMC42MDEyMDcsIDAuODk2NjIzLCAxLjU4ODgzLCAxLjk4NjA1IiwgXAotICAgICAgICAgICIwLjExMTYyMiwgMC4xMzA3MjYsIDAuMzA1MjUzLCAwLjYwMDQ0MiwgMC44OTYxMzksIDEuNTg5MTUsIDEuOTg4NTIiLCBcCi0gICAgICAgICAgIjAuMTExNTQyLCAwLjEzMDY3OCwgMC4zMDUyNDcsIDAuNjAxMDQ3LCAwLjg5NjIyNiwgMS41OTE4NiwgMS45ODY0NCIsIFwKLSAgICAgICAgICAiMC4xMTE4ODMsIDAuMTMwOTU2LCAwLjMwNTU0MywgMC42MDEwOTEsIDAuODk3OTAxLCAxLjU4ODgyLCAxLjk4NjAxIiwgXAotICAgICAgICAgICIwLjExMjEyNSwgMC4xMzEyODEsIDAuMzA1NjMyLCAwLjYwMTM3NywgMC44OTgyNjYsIDEuNTg4ODIsIDEuOTg2MDEiLCBcCi0gICAgICAgICAgIjAuMTEyNjMzLCAwLjEzMTY1NSwgMC4zMDU4NjUsIDAuNjAxNTYsIDAuODk2NDMyLCAxLjU5MTg3LCAxLjk4NDY1IiwgXAotICAgICAgICAgICIwLjExMzM1NiwgMC4xMzIyMDMsIDAuMzA2MjA0LCAwLjYwMTY0LCAwLjg5ODU5MiwgMS41OTE3OSwgMS45ODQ2MyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTMSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDkxNTU1LCAwLjEwMjIxMywgMC4xOTcwOTgsIDAuMzU0OTI2LCAwLjUxMzAyLCAwLjg4MTk1LCAxLjA5MTcyIiwgXAotICAgICAgICAgICIwLjA5OTc1OCwgMC4xMTA0MjcsIDAuMjA1MzA0LCAwLjM2MzE1NywgMC41MjExMjYsIDAuODg5NTExLCAxLjEwMDI0IiwgXAotICAgICAgICAgICIwLjEwNzY4NywgMC4xMTgzNDYsIDAuMjEzMjM1LCAwLjM3MTEwMiwgMC41MjkwOTIsIDAuODk3OTQsIDEuMTA4ODUiLCBcCi0gICAgICAgICAgIjAuMTEyODc5LCAwLjEyMzU1MSwgMC4yMTg0MzgsIDAuMzc2NDA5LCAwLjUzNDMxNSwgMC45MDMwNDUsIDEuMTEzMTgiLCBcCi0gICAgICAgICAgIjAuMTE2NzM5LCAwLjEyNzQxMSwgMC4yMjIzLCAwLjM4MDI3NCwgMC41MzgzNTcsIDAuOTA2OTA3LCAxLjExNzAxIiwgXAotICAgICAgICAgICIwLjEyMTk2LCAwLjEzMjU3OSwgMC4yMjczODYsIDAuMzg1Mjc4LCAwLjU0MzU1OCwgMC45MTIxMzgsIDEuMTIyMTEiLCBcCi0gICAgICAgICAgIjAuMTI1ODMxLCAwLjEzNjQ1NCwgMC4yMzExMzgsIDAuMzg5MDEyLCAwLjU0Njg4NCwgMC45MTU1MDMsIDEuMTI2MyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMjE1NDksIDAuMTQzMDgxLCAwLjMzOTc0MiwgMC42NzE0OTIsIDEuMDAyOTgsIDEuNzc3MTcsIDIuMjIyMjkiLCBcCi0gICAgICAgICAgIjAuMTIxNTEzLCAwLjE0MzA0LCAwLjMzOTcyNSwgMC42NzE1MDUsIDEuMDAyOTYsIDEuNzc2NTYsIDIuMjIwMTciLCBcCi0gICAgICAgICAgIjAuMTIxMzg2LCAwLjE0MjkyNSwgMC4zMzk2ODIsIDAuNjcwNjc4LCAxLjAwMjc0LCAxLjc3ODA4LCAyLjIyMDg1IiwgXAotICAgICAgICAgICIwLjEyMTIxNSwgMC4xNDI3NzMsIDAuMzM5NzI0LCAwLjY3MDQyMiwgMS4wMDI2LCAxLjc3NzUxLCAyLjIxOTEzIiwgXAotICAgICAgICAgICIwLjEyMTE0OCwgMC4xNDI2NzEsIDAuMzM5MzIxLCAwLjY3MTQxNiwgMS4wMDM5MiwgMS43Nzc3NiwgMi4yMjM0NiIsIFwKLSAgICAgICAgICAiMC4xMjEwMDEsIDAuMTQyNDg5LCAwLjMzOTY0MSwgMC42NzEzNzYsIDEuMDAyNzcsIDEuNzc5NDQsIDIuMjE5MzQiLCBcCi0gICAgICAgICAgIjAuMTIxMjUsIDAuMTQyNTk3LCAwLjMzOTA5NiwgMC42NzEyNDgsIDEuMDAzOCwgMS43Nzg2LCAyLjIyMSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTAyNjQsIDAuMDk5OTQ4LCAwLjE4Njg2MiwgMC4zMzE2MDMsIDAuNDc2MjczLCAwLjgxMzg1NiwgMS4wMDY4OSIsIFwKLSAgICAgICAgICAiMC4wOTc3NTUsIDAuMTA3NDM4LCAwLjE5NDM1MiwgMC4zMzkwOTQsIDAuNDgzNzYsIDAuODIxMzQyLCAxLjAxNDIyIiwgXAotICAgICAgICAgICIwLjEwNDEyMSwgMC4xMTM4MDMsIDAuMjAwNzIyLCAwLjM0NTQ2NywgMC40OTAxMzIsIDAuODI3NzE2LCAxLjAyMDc1IiwgXAotICAgICAgICAgICIwLjEwODc0NiwgMC4xMTg0NDQsIDAuMjA1MzcxLCAwLjM1MDExMiwgMC40OTQ3ODQsIDAuODMyNDE5LCAxLjAyNTI5IiwgXAotICAgICAgICAgICIwLjExMjUxMSwgMC4xMjIyMjMsIDAuMjA5MTgxLCAwLjM1MzkxNSwgMC40OTg1OTEsIDAuODM2MjQxLCAxLjAyOTE3IiwgXAotICAgICAgICAgICIwLjExNzQ4NywgMC4xMjcxODMsIDAuMjE0MTg4LCAwLjM1ODkyMywgMC41MDM2MTEsIDAuODQxMjI2LCAxLjAzNDA5IiwgXAotICAgICAgICAgICIwLjEyMTQ0MiwgMC4xMzExMjMsIDAuMjE4MTA0LCAwLjM2Mjg3LCAwLjUwNzU5MywgMC44NDUxOSwgMS4wMzgwNSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDY0MDcsIDAuMTI1ODY3LCAwLjMwMzE1MiwgMC42MDAzNjEsIDAuODk3NjA1LCAxLjU4OTY1LCAxLjk4ODkyIiwgXAotICAgICAgICAgICIwLjEwNjQwNywgMC4xMjU4NDksIDAuMzAzMTM3LCAwLjYwMDM1OCwgMC44OTc1NjksIDEuNTg5NjQsIDEuOTg4MTYiLCBcCi0gICAgICAgICAgIjAuMTA2NDIzLCAwLjEyNTg3NiwgMC4zMDMxNDgsIDAuNjAwMzEzLCAwLjg5NzU0NSwgMS41ODk2MywgMS45ODg4OSIsIFwKLSAgICAgICAgICAiMC4xMDY0NjYsIDAuMTI1ODk4LCAwLjMwMzEwNCwgMC41OTk0MjYsIDAuODk2NjAxLCAxLjU5MTU5LCAxLjk4Nzk2IiwgXAotICAgICAgICAgICIwLjEwNjQxNywgMC4xMjU5MTIsIDAuMzAyOTU5LCAwLjU5OTc2MSwgMC44OTc0OTMsIDEuNTkxNTYsIDEuOTg4MjgiLCBcCi0gICAgICAgICAgIjAuMTA2Mzc1LCAwLjEyNTc2MywgMC4zMDI4MjIsIDAuNTk5NjIsIDAuODk3MjE0LCAxLjU5MTMxLCAxLjk4Nzc3IiwgXAotICAgICAgICAgICIwLjEwNjUzOSwgMC4xMjU4OCwgMC4zMDI2MDUsIDAuNTk5NjQyLCAwLjg5NjcxNiwgMS41OTA5MiwgMS45ODU5NiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjQ0LCAwLjAwMjQ0MSwgMC4wMDI0NDUsIDAuMDAyNDQ3LCAwLjAwMjQ0OCwgMC4wMDI0NDgsIDAuMDAyNDQ5IiwgXAotICAgICAgICAgICIwLjAwMjQxOCwgMC4wMDI0MTksIDAuMDAyNDI0LCAwLjAwMjQyNywgMC4wMDI0MjksIDAuMDAyNDI5LCAwLjAwMjQyOSIsIFwKLSAgICAgICAgICAiMC4wMDI0MjgsIDAuMDAyNDI5LCAwLjAwMjQzNSwgMC4wMDI0MzgsIDAuMDAyNDM5LCAwLjAwMjQ0LCAwLjAwMjQ0IiwgXAotICAgICAgICAgICIwLjAwMjQ2NSwgMC4wMDI0NjUsIDAuMDAyNDcsIDAuMDAyNDczLCAwLjAwMjQ3NCwgMC4wMDI0NzUsIDAuMDAyNDc1IiwgXAotICAgICAgICAgICIwLjAwMjUyMiwgMC4wMDI1MjIsIDAuMDAyNTIyLCAwLjAwMjUyNCwgMC4wMDI1MjUsIDAuMDAyNTI1LCAwLjAwMjUyNSIsIFwKLSAgICAgICAgICAiMC4wMDI2MjIsIDAuMDAyNjIxLCAwLjAwMjYyMiwgMC4wMDI2MjUsIDAuMDAyNjI2LCAwLjAwMjYyNywgMC4wMDI2MjciLCBcCi0gICAgICAgICAgIjAuMDAyNzM5LCAwLjAwMjczNiwgMC4wMDI3MzIsIDAuMDAyNzMyLCAwLjAwMjczMywgMC4wMDI3MzMsIDAuMDAyNzMzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0OTY4LCAwLjAwNDk2OSwgMC4wMDQ5NzMsIDAuMDA0OTc1LCAwLjAwNDk3NSwgMC4wMDQ5NzYsIDAuMDA0OTc2IiwgXAotICAgICAgICAgICIwLjAwNDk1NCwgMC4wMDQ5NTUsIDAuMDA0OTYsIDAuMDA0OTYyLCAwLjAwNDk2MywgMC4wMDQ5NjQsIDAuMDA0OTY0IiwgXAotICAgICAgICAgICIwLjAwNDk2MiwgMC4wMDQ5NjMsIDAuMDA0OTY4LCAwLjAwNDk3LCAwLjAwNDk3MSwgMC4wMDQ5NzIsIDAuMDA0OTczIiwgXAotICAgICAgICAgICIwLjAwNDk5NywgMC4wMDQ5OTcsIDAuMDA1LCAwLjAwNTAwMiwgMC4wMDUwMDMsIDAuMDA1MDA0LCAwLjAwNTAwNCIsIFwKLSAgICAgICAgICAiMC4wMDUwNDgsIDAuMDA1MDQ3LCAwLjAwNTA0OCwgMC4wMDUwNSwgMC4wMDUwNSwgMC4wMDUwNTEsIDAuMDA1MDUxIiwgXAotICAgICAgICAgICIwLjAwNTE0MywgMC4wMDUxNDIsIDAuMDA1MTQyLCAwLjAwNTE0NCwgMC4wMDUxNDUsIDAuMDA1MTQ2LCAwLjAwNTE0NiIsIFwKLSAgICAgICAgICAiMC4wMDUyNDgsIDAuMDA1MjQ2LCAwLjAwNTI0NCwgMC4wMDUyNDMsIDAuMDA1MjQ1LCAwLjAwNTI0NSwgMC4wMDUyNDYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDIxODUsIDAuMDAyMTg2LCAwLjAwMjE5LCAwLjAwMjE5MiwgMC4wMDIxOTMsIDAuMDAyMTk0LCAwLjAwMjE5NCIsIFwKLSAgICAgICAgICAiMC4wMDIxNjMsIDAuMDAyMTY0LCAwLjAwMjE3LCAwLjAwMjE3MywgMC4wMDIxNzQsIDAuMDAyMTc0LCAwLjAwMjE3NCIsIFwKLSAgICAgICAgICAiMC4wMDIxNzMsIDAuMDAyMTc0LCAwLjAwMjE4LCAwLjAwMjE4MywgMC4wMDIxODQsIDAuMDAyMTg1LCAwLjAwMjE4NSIsIFwKLSAgICAgICAgICAiMC4wMDIyMDksIDAuMDAyMjA5LCAwLjAwMjIxNCwgMC4wMDIyMTcsIDAuMDAyMjE4LCAwLjAwMjIxOSwgMC4wMDIyMTkiLCBcCi0gICAgICAgICAgIjAuMDAyMjU5LCAwLjAwMjI1OSwgMC4wMDIyNjMsIDAuMDAyMjY2LCAwLjAwMjI2NywgMC4wMDIyNjksIDAuMDAyMjY4IiwgXAotICAgICAgICAgICIwLjAwMjM2NSwgMC4wMDIzNjUsIDAuMDAyMzY2LCAwLjAwMjM2OCwgMC4wMDIzNjksIDAuMDAyMzcsIDAuMDAyMzciLCBcCi0gICAgICAgICAgIjAuMDAyNDc3LCAwLjAwMjQ3NSwgMC4wMDI0NzMsIDAuMDAyNDc1LCAwLjAwMjQ3NSwgMC4wMDI0NzcsIDAuMDAyNDc2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1MjE5LCAwLjAwNTIyLCAwLjAwNTIyNCwgMC4wMDUyMjYsIDAuMDA1MjI3LCAwLjAwNTIyNywgMC4wMDUyMjciLCBcCi0gICAgICAgICAgIjAuMDA1MjA1LCAwLjAwNTIwNiwgMC4wMDUyMTEsIDAuMDA1MjE0LCAwLjAwNTIxNSwgMC4wMDUyMTUsIDAuMDA1MjE2IiwgXAotICAgICAgICAgICIwLjAwNTIxNiwgMC4wMDUyMTcsIDAuMDA1MjIxLCAwLjAwNTIyNCwgMC4wMDUyMjUsIDAuMDA1MjI2LCAwLjAwNTIyNiIsIFwKLSAgICAgICAgICAiMC4wMDUyNDksIDAuMDA1MjUsIDAuMDA1MjUzLCAwLjAwNTI1NSwgMC4wMDUyNTUsIDAuMDA1MjU2LCAwLjAwNTI1NiIsIFwKLSAgICAgICAgICAiMC4wMDUyOTUsIDAuMDA1Mjk2LCAwLjAwNTI5NywgMC4wMDUyOTksIDAuMDA1MywgMC4wMDUzMDEsIDAuMDA1MzAxIiwgXAotICAgICAgICAgICIwLjAwNTQsIDAuMDA1Mzk4LCAwLjAwNTM5OCwgMC4wMDUzOTcsIDAuMDA1Mzk4LCAwLjAwNTM5OCwgMC4wMDUzOTkiLCBcCi0gICAgICAgICAgIjAuMDA1NTAzLCAwLjAwNTUwMSwgMC4wMDU0OTgsIDAuMDA1NDk5LCAwLjAwNTUsIDAuMDA1NSwgMC4wMDU1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxMzU3LCAwLjAwMTM1NywgMC4wMDEzNTYsIDAuMDAxMzU1LCAwLjAwMTM1NSwgMC4wMDEzNTUsIDAuMDAxMzU3IiwgXAotICAgICAgICAgICIwLjAwMTMzNCwgMC4wMDEzMzQsIDAuMDAxMzM0LCAwLjAwMTMzNCwgMC4wMDEzMzQsIDAuMDAxMzMzLCAwLjAwMTMzMyIsIFwKLSAgICAgICAgICAiMC4wMDEzNTcsIDAuMDAxMzU2LCAwLjAwMTM1NSwgMC4wMDEzNTQsIDAuMDAxMzU0LCAwLjAwMTM1MywgMC4wMDEzNTMiLCBcCi0gICAgICAgICAgIjAuMDAxNDA0LCAwLjAwMTQwNCwgMC4wMDE0MDMsIDAuMDAxNDAyLCAwLjAwMTQwMiwgMC4wMDE0MDIsIDAuMDAxNDAyIiwgXAotICAgICAgICAgICIwLjAwMTQ3NCwgMC4wMDE0NzQsIDAuMDAxNDcyLCAwLjAwMTQ3LCAwLjAwMTQ2OSwgMC4wMDE0NjksIDAuMDAxNDY5IiwgXAotICAgICAgICAgICIwLjAwMTYxMiwgMC4wMDE2MSwgMC4wMDE2MDYsIDAuMDAxNjA0LCAwLjAwMTYwMiwgMC4wMDE2MDMsIDAuMDAxNjAyIiwgXAotICAgICAgICAgICIwLjAwMTc0NCwgMC4wMDE3NDMsIDAuMDAxNzM3LCAwLjAwMTczNCwgMC4wMDE3MzMsIDAuMDAxNzMyLCAwLjAwMTczMSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzEwOCwgMC4wMDMxMDksIDAuMDAzMTEsIDAuMDAzMTExLCAwLjAwMzExMSwgMC4wMDMxMTEsIDAuMDAzMTExIiwgXAotICAgICAgICAgICIwLjAwMzA5MiwgMC4wMDMwOTMsIDAuMDAzMDk1LCAwLjAwMzA5NiwgMC4wMDMwOTYsIDAuMDAzMDk2LCAwLjAwMzA5NiIsIFwKLSAgICAgICAgICAiMC4wMDMxMTMsIDAuMDAzMTE0LCAwLjAwMzExNSwgMC4wMDMxMTYsIDAuMDAzMTE2LCAwLjAwMzExNiwgMC4wMDMxMTYiLCBcCi0gICAgICAgICAgIjAuMDAzMTU4LCAwLjAwMzE1OCwgMC4wMDMxNTgsIDAuMDAzMTYsIDAuMDAzMTYsIDAuMDAzMTYsIDAuMDAzMTYiLCBcCi0gICAgICAgICAgIjAuMDAzMjIsIDAuMDAzMjIsIDAuMDAzMjIyLCAwLjAwMzIyMiwgMC4wMDMyMjMsIDAuMDAzMjIzLCAwLjAwMzIyMyIsIFwKLSAgICAgICAgICAiMC4wMDMzNTIsIDAuMDAzMzUxLCAwLjAwMzM1MSwgMC4wMDMzNDksIDAuMDAzMzQ4LCAwLjAwMzM0OSwgMC4wMDMzNDkiLCBcCi0gICAgICAgICAgIjAuMDAzNDc4LCAwLjAwMzQ3OCwgMC4wMDM0NzcsIDAuMDAzNDc2LCAwLjAwMzQ3NiwgMC4wMDM0NzYsIDAuMDAzNDc2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUzAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDc5OSwgMC4wMDQ4LCAwLjAwNDgwNiwgMC4wMDQ4MDgsIDAuMDA0ODA5LCAwLjAwNDgxLCAwLjAwNDgxMSIsIFwKLSAgICAgICAgICAiMC4wMDQ4MTEsIDAuMDA0ODEyLCAwLjAwNDgxNywgMC4wMDQ4MiwgMC4wMDQ4MjEsIDAuMDA0ODIxLCAwLjAwNDgyMiIsIFwKLSAgICAgICAgICAiMC4wMDQ4OTYsIDAuMDA0ODk4LCAwLjAwNDkwMywgMC4wMDQ5MDYsIDAuMDA0OTA3LCAwLjAwNDkwOCwgMC4wMDQ5MDgiLCBcCi0gICAgICAgICAgIjAuMDA1MDEyLCAwLjAwNTAxMywgMC4wMDUwMTksIDAuMDA1MDIyLCAwLjAwNTAyMywgMC4wMDUwMjQsIDAuMDA1MDI0IiwgXAotICAgICAgICAgICIwLjAwNTE0MiwgMC4wMDUxNDQsIDAuMDA1MTQ1LCAwLjAwNTE0NywgMC4wMDUxNDgsIDAuMDA1MTUsIDAuMDA1MTQ5IiwgXAotICAgICAgICAgICIwLjAwNTQsIDAuMDA1NDAzLCAwLjAwNTQwNywgMC4wMDU0MDksIDAuMDA1NDEsIDAuMDA1NDEyLCAwLjAwNTQxMiIsIFwKLSAgICAgICAgICAiMC4wMDU1OSwgMC4wMDU1OTEsIDAuMDA1NTk1LCAwLjAwNTU5NywgMC4wMDU1OTgsIDAuMDA1NiwgMC4wMDU2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0NzA4LCAwLjAwNDcwOSwgMC4wMDQ3MTQsIDAuMDA0NzE2LCAwLjAwNDcxNywgMC4wMDQ3MTgsIDAuMDA0NzE4IiwgXAotICAgICAgICAgICIwLjAwNDcyNSwgMC4wMDQ3MjYsIDAuMDA0NzMxLCAwLjAwNDczNCwgMC4wMDQ3MzUsIDAuMDA0NzM1LCAwLjAwNDczNiIsIFwKLSAgICAgICAgICAiMC4wMDQ4MDcsIDAuMDA0ODA4LCAwLjAwNDgxMywgMC4wMDQ4MTYsIDAuMDA0ODE3LCAwLjAwNDgxNywgMC4wMDQ4MTgiLCBcCi0gICAgICAgICAgIjAuMDA0OTI3LCAwLjAwNDkyOCwgMC4wMDQ5MzQsIDAuMDA0OTM2LCAwLjAwNDkzNywgMC4wMDQ5MzgsIDAuMDA0OTM5IiwgXAotICAgICAgICAgICIwLjAwNTA4NSwgMC4wMDUwODYsIDAuMDA1MDkyLCAwLjAwNTA5NSwgMC4wMDUwOTYsIDAuMDA1MDk3LCAwLjAwNTA5NyIsIFwKLSAgICAgICAgICAiMC4wMDUzMDcsIDAuMDA1MzEsIDAuMDA1MzEyLCAwLjAwNTMxOCwgMC4wMDUzMTksIDAuMDA1MzE2LCAwLjAwNTMxNyIsIFwKLSAgICAgICAgICAiMC4wMDU0NzYsIDAuMDA1NDc3LCAwLjAwNTQ4MiwgMC4wMDU0ODgsIDAuMDA1NDksIDAuMDA1NDkxLCAwLjAwNTQ5MiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlMxIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQwOTYsIDAuMDA0MDk3LCAwLjAwNDEwMywgMC4wMDQxMDcsIDAuMDA0MTA2LCAwLjAwNDEwNiwgMC4wMDQxMDciLCBcCi0gICAgICAgICAgIjAuMDA0MTk1LCAwLjAwNDE5NiwgMC4wMDQyMDMsIDAuMDA0MjA3LCAwLjAwNDIwOCwgMC4wMDQyMDgsIDAuMDA0MjA4IiwgXAotICAgICAgICAgICIwLjAwNDM2NiwgMC4wMDQzNjcsIDAuMDA0Mzc1LCAwLjAwNDM3OSwgMC4wMDQzNzksIDAuMDA0MzgxLCAwLjAwNDM4MSIsIFwKLSAgICAgICAgICAiMC4wMDQ1NTMsIDAuMDA0NTU1LCAwLjAwNDU2MSwgMC4wMDQ1NjEsIDAuMDA0NTY2LCAwLjAwNDU2OCwgMC4wMDQ1NjQiLCBcCi0gICAgICAgICAgIjAuMDA0NzQzLCAwLjAwNDc1MSwgMC4wMDQ3NTgsIDAuMDA0NzYsIDAuMDA0NzYyLCAwLjAwNDc2MywgMC4wMDQ3NjMiLCBcCi0gICAgICAgICAgIjAuMDA1MDgzLCAwLjAwNTA4NCwgMC4wMDUwOTEsIDAuMDA1MDk1LCAwLjAwNTA5NSwgMC4wMDUwOTcsIDAuMDA1MDk3IiwgXAotICAgICAgICAgICIwLjAwNTM4LCAwLjAwNTM4MSwgMC4wMDUzODcsIDAuMDA1MzkxLCAwLjAwNTM5MywgMC4wMDUzODQsIDAuMDA1Mzk0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyNjU2LCAwLjAwMjY1OCwgMC4wMDI2NjMsIDAuMDAyNjY1LCAwLjAwMjY2NSwgMC4wMDI2NjYsIDAuMDAyNjY2IiwgXAotICAgICAgICAgICIwLjAwMjY2MiwgMC4wMDI2NjQsIDAuMDAyNjY4LCAwLjAwMjY3LCAwLjAwMjY3MSwgMC4wMDI2NzEsIDAuMDAyNjcyIiwgXAotICAgICAgICAgICIwLjAwMjc1MiwgMC4wMDI3NTMsIDAuMDAyNzU4LCAwLjAwMjc2LCAwLjAwMjc2MSwgMC4wMDI3NjEsIDAuMDAyNzYxIiwgXAotICAgICAgICAgICIwLjAwMjg3OSwgMC4wMDI4ODEsIDAuMDAyODg1LCAwLjAwMjg4NywgMC4wMDI4ODgsIDAuMDAyODg4LCAwLjAwMjg4OCIsIFwKLSAgICAgICAgICAiMC4wMDMwMzIsIDAuMDAzMDMzLCAwLjAwMzAzNywgMC4wMDMwMzksIDAuMDAzMDQsIDAuMDAzMDQsIDAuMDAzMDQiLCBcCi0gICAgICAgICAgIjAuMDAzMjIsIDAuMDAzMjIyLCAwLjAwMzIyNSwgMC4wMDMyMjcsIDAuMDAzMjI3LCAwLjAwMzIyOCwgMC4wMDMyMjgiLCBcCi0gICAgICAgICAgIjAuMDAzNDIxLCAwLjAwMzQyMywgMC4wMDM0MjYsIDAuMDAzNDI5LCAwLjAwMzQyOSwgMC4wMDM0MywgMC4wMDM0MyIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IE5BTkQyWDIgKgotICogLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoTkFORDJYMikgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjM2MzM7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTg0ODUyOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTg0ODUyOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTg0NTM4OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTA0OSwgMC4wMDEwNDgsIDAuMDAxMDQ3LCAwLjAwMTA0NywgMC4wMDEwNDcsIDAuMDAxMDQ3LCAwLjAwMTA0NyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTEwNiwgMC4wMDEwNywgMC4wMDEwNiwgMC4wMDEwNTMsIDAuMDAxMDUzLCAwLjAwMTA1MiwgMC4wMDEwNTIiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTcyMTIyOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTcyMDgzOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTcyMTIyOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDY1NCwgMC4wMDA2NTMsIDAuMDAwNjUzLCAwLjAwMDY1MiwgMC4wMDA2NTIsIDAuMDAwNjUyLCAwLjAwMDY1MiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTE5MSwgMC4wMDExOTIsIDAuMDAxMTkyLCAwLjAwMTE5MiwgMC4wMDExOTIsIDAuMDAxMTkyLCAwLjAwMTE5MiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjQxMDY4NTsKLSAgICBmdW5jdGlvbiA6ICIoIShBIEIpKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDIyMzEyLCAwLjA5OTQ3NywgMC4xNjExMDEsIDAuMjM4MDc3LCAwLjMxNTIwOCwgMC4zOTIwODMsIDAuNDY5MjQ4IiwgXAotICAgICAgICAgICIwLjAzMDU2MywgMC4xMDc2MDksIDAuMTY5MjQ0LCAwLjI0NjIyOCwgMC4zMjMyMDMsIDAuNDAwNDczLCAwLjQ3NzE1IiwgXAotICAgICAgICAgICIwLjA0MDUwMywgMC4xMTc4NDEsIDAuMTc5NDk1LCAwLjI1NjU1NywgMC4zMzMyNTgsIDAuNDEwNDI0LCAwLjQ4NzI5NiIsIFwKLSAgICAgICAgICAiMC4wNDc2MDUsIDAuMTI4MzI5LCAwLjE4OTg4LCAwLjI2Njc4MiwgMC4zNDM5MjIsIDAuNDIwODI2LCAwLjQ5NzcwOSIsIFwKLSAgICAgICAgICAiMC4wNTMyNjMsIDAuMTM4OTE1LCAwLjIwMDQwNywgMC4yNzc0MDgsIDAuMzUzNzE4LCAwLjQzMTYxOCwgMC41MDgyMjYiLCBcCi0gICAgICAgICAgIjAuMDYwNTI3LCAwLjE1NTg4MywgMC4yMTcxNjMsIDAuMjk0MDE4LCAwLjM3MDkxOCwgMC40NDgxNzksIDAuNTI1MjM3IiwgXAotICAgICAgICAgICIwLjA2NTcxNiwgMC4xNzA2OTEsIDAuMjMxOTY2LCAwLjMwODY2OSwgMC4zODU1MDksIDAuNDYyNDY0LCAwLjUzOTQzMyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDAwMTMsIDAuMjAyMDE1LCAwLjMzMTU4MiwgMC40OTMzODQsIDAuNjU1MzEsIDAuODE3MDgsIDAuOTc5MTk2IiwgXAotICAgICAgICAgICIwLjA0MzQ0NiwgMC4yMDE5NTMsIDAuMzMxNDk2LCAwLjQ5MzMwMSwgMC42NTUwODQsIDAuODE3MTk5LCAwLjk3OTE4MiIsIFwKLSAgICAgICAgICAiMC4wNTE5MDIsIDAuMjAzMTk2LCAwLjMzMTQ3NSwgMC40OTM0NTQsIDAuNjU1MTg0LCAwLjgxNzMwOCwgMC45Nzg3MzUiLCBcCi0gICAgICAgICAgIjAuMDYxMzkzLCAwLjIwNzQyMSwgMC4zMzI3ODUsIDAuNDkzNDI2LCAwLjY1NTE4MiwgMC44MTcxNzIsIDAuOTc5MzU5IiwgXAotICAgICAgICAgICIwLjA3MDE5OCwgMC4yMTMzMTIsIDAuMzM2MjE0LCAwLjQ5NDI3NSwgMC42NTUxNiwgMC44MTcyNDgsIDAuOTc4NjEzIiwgXAotICAgICAgICAgICIwLjA4MjcwMSwgMC4yMjUwNjUsIDAuMzQ0MzUxLCAwLjQ5OTIxNSwgMC42NTcxMjYsIDAuODE3MjkzLCAwLjk3ODk1MSIsIFwKLSAgICAgICAgICAiMC4wOTI2MSwgMC4yMzY3NSwgMC4zNTMyNDgsIDAuNTA1NCwgMC42NjExNTksIDAuODE5MzQ4LCAwLjk3OTg2MSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzY0NTUsIDAuMTY4OTI4LCAwLjI3NDk2MywgMC40MDc2NzksIDAuNTM5ODI0LCAwLjY3MjYyNywgMC44MDUyMDEiLCBcCi0gICAgICAgICAgIjAuMDQyODM4LCAwLjE3NTU5NCwgMC4yODE2MzIsIDAuNDEzOTkyLCAwLjU0NjI4OSwgMC42Nzg3MzMsIDAuODExMzY1IiwgXAotICAgICAgICAgICIwLjA1MTAxMiwgMC4xODM5MzgsIDAuMjkwMDM2LCAwLjQyMjQ3NCwgMC41NTQ5MzMsIDAuNjg3MTMyLCAwLjgxOTcyMyIsIFwKLSAgICAgICAgICAiMC4wNTgzNjgsIDAuMTkyMjU5LCAwLjI5ODIxNywgMC40MzA3MzYsIDAuNTYzNTI4LCAwLjY5NTU0MSwgMC44Mjc5MTEiLCBcCi0gICAgICAgICAgIjAuMDY0NTk2LCAwLjIwMDQ0LCAwLjMwNjUzMSwgMC40MzkwMjMsIDAuNTcxNjI2LCAwLjcwMzg5MSwgMC44MzY0MTEiLCBcCi0gICAgICAgICAgIjAuMDczMjkxLCAwLjIxMzY1NiwgMC4zMjAxNzcsIDAuNDUyODUxLCAwLjU4NTYzMiwgMC43MTgxNSwgMC44NTAxNTciLCBcCi0gICAgICAgICAgIjAuMDc5NjgzLCAwLjIyNTM3MywgMC4zMzE0NDgsIDAuNDY0MDk5LCAwLjU5NzIxMiwgMC43Mjk3NjQsIDAuODYyMzA5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2NTY1NCwgMC4zMzk2NjcsIDAuNTU3OTE3LCAwLjgzMTg3OCwgMS4xMDUsIDEuMzc5MiwgMS42NTI5MSIsIFwKLSAgICAgICAgICAiMC4wNjY1ODMsIDAuMzM5MzksIDAuNTU3OTI4LCAwLjgzMzQ3MiwgMS4xMDU2NywgMS4zODE3NywgMS42NTM2OCIsIFwKLSAgICAgICAgICAiMC4wNzEwNTQsIDAuMzM5ODU2LCAwLjU1ODAxOCwgMC44MzIxNTUsIDEuMTA2LCAxLjM4MTc2LCAxLjY1MzMzIiwgXAotICAgICAgICAgICIwLjA3NzE4NCwgMC4zNDA3ODcsIDAuNTU4NzIzLCAwLjgzMzM4MSwgMS4xMDUwNywgMS4zODE2OSwgMS42NTU4MiIsIFwKLSAgICAgICAgICAiMC4wODM5MjYsIDAuMzQyMTE5LCAwLjU1OTU1OSwgMC44MzMzNDcsIDEuMTA0OTgsIDEuMzc5NCwgMS42NTIyMyIsIFwKLSAgICAgICAgICAiMC4wOTQzMzQsIDAuMzQ3OTk3LCAwLjU2MDg5NCwgMC44MzIyMDgsIDEuMTA1MDEsIDEuMzc4NDYsIDEuNjU1NzgiLCBcCi0gICAgICAgICAgIjAuMTAzMTE4LCAwLjM1MzY0NywgMC41NjUwNjEsIDAuODM1MDI2LCAxLjEwNjYzLCAxLjM3ODY2LCAxLjY1MjE2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyMTkwMSwgMC4xMDEzMTQsIDAuMTY0ODI4LCAwLjI0NDI0NiwgMC4zMjM5MzMsIDAuNDAzMDY3LCAwLjQ4MjM2OCIsIFwKLSAgICAgICAgICAiMC4wMzAxMjYsIDAuMTA5NjUzLCAwLjE3MzA4NiwgMC4yNTI0MTEsIDAuMzMyMSwgMC40MTExNzMsIDAuNDkwNzIzIiwgXAotICAgICAgICAgICIwLjAzOTc4LCAwLjEyMDAzNywgMC4xODM1NjUsIDAuMjYyODc4LCAwLjM0MjI4NSwgMC40MjE2NDksIDAuNTAwOTc4IiwgXAotICAgICAgICAgICIwLjA0Njc3NiwgMC4xMzAxODIsIDAuMTkzNjQ1LCAwLjI3MzEwNSwgMC4zNTIzMjYsIDAuNDMxOTcsIDAuNTEwOTYyIiwgXAotICAgICAgICAgICIwLjA1MjIyMiwgMC4xNDA3NDQsIDAuMjA0MTU0LCAwLjI4MzQ4OSwgMC4zNjMwMiwgMC40NDI1MywgMC41MjE0ODkiLCBcCi0gICAgICAgICAgIjAuMDU5NDQ5LCAwLjE1Nzc3OSwgMC4yMjA5MDcsIDAuMzAwMTg3LCAwLjM3OTQ1MiwgMC40NTgyNDksIDAuNTM4MjY5IiwgXAotICAgICAgICAgICIwLjA2NDQwMSwgMC4xNzI1ODQsIDAuMjM1NjksIDAuMzE0ODczLCAwLjM5NDE1MywgMC40NzMzNzQsIDAuNTUzMDIiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM5ODQ5LCAwLjIwNzM3LCAwLjM0MTAyMywgMC41MDgxNTksIDAuNjc1NjU0LCAwLjg0MjcsIDEuMDA5ODkiLCBcCi0gICAgICAgICAgIjAuMDQzMjY3LCAwLjIwNzA2NiwgMC4zNDA3MTQsIDAuNTA4MDI0LCAwLjY3NTYxNSwgMC44NDI5NzIsIDEuMDEwNTMiLCBcCi0gICAgICAgICAgIjAuMDUxOTkxLCAwLjIwODUwNSwgMC4zNDA4ODYsIDAuNTA3OTY4LCAwLjY3NTgyMSwgMC44NDI5NDEsIDEuMDA5MzYiLCBcCi0gICAgICAgICAgIjAuMDYxNTA3LCAwLjIxMjcsIDAuMzQyNTkxLCAwLjUwODE2NiwgMC42NzYyMzcsIDAuODQyOTEzLCAxLjAwOTM1IiwgXAotICAgICAgICAgICIwLjA3MDU2NSwgMC4yMTgyMTUsIDAuMzQ1ODI4LCAwLjUwOTc0MSwgMC42NzU0MTEsIDAuODQyNDgzLCAxLjAxMDgzIiwgXAotICAgICAgICAgICIwLjA4MjY2NywgMC4yMjk4MDgsIDAuMzUzNTYzLCAwLjUxMzI2NywgMC42NzgwNDgsIDAuODQzMDEsIDEuMDA5ODEiLCBcCi0gICAgICAgICAgIjAuMDkzMDczLCAwLjI0MTI4MiwgMC4zNjIwOTcsIDAuNTIwMjY3LCAwLjY4MDg3MywgMC44NDU4OTEsIDEuMDEwMjgiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM1MDgsIDAuMTY3NjY5LCAwLjI3MzczMSwgMC40MDYwNjUsIDAuNTM4NjAzLCAwLjY3MDg3LCAwLjgwMzE5NiIsIFwKLSAgICAgICAgICAiMC4wNDI1NjUsIDAuMTc1MjA4LCAwLjI4MTI4LCAwLjQxMzYxMywgMC41NDU4OTcsIDAuNjc4MzI5LCAwLjgxMTA2OSIsIFwKLSAgICAgICAgICAiMC4wNTI1NDUsIDAuMTg0ODQzLCAwLjI5MDc1NiwgMC40MjMxNzQsIDAuNTU1NiwgMC42ODg2MjQsIDAuODIwMzQ1IiwgXAotICAgICAgICAgICIwLjA2MTYwNywgMC4xOTQ2MzIsIDAuMzAwNDg2LCAwLjQzMzA3NCwgMC41NjU1NzEsIDAuNjk3NzMsIDAuODMwMDA2IiwgXAotICAgICAgICAgICIwLjA2OTE2LCAwLjIwNDMxOCwgMC4zMTAzNTMsIDAuNDQyNzUxLCAwLjU3NTE0NywgMC43MDczNjcsIDAuODM5ODkzIiwgXAotICAgICAgICAgICIwLjA3OTMzLCAwLjIyMDI5MiwgMC4zMjU5NTYsIDAuNDU4MjczLCAwLjU5MDQ4LCAwLjcyMjg2NCwgMC44NTU4MjciLCBcCi0gICAgICAgICAgIjAuMDg2ODA0LCAwLjIzNDMxNCwgMC4zMzk3NDQsIDAuNDcyMDMsIDAuNjAzNzU2LCAwLjczNjU1NCwgMC44Njg5MSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjU2MzYsIDAuMzM5MDkxLCAwLjU1ODE0MSwgMC44MzEzOSwgMS4xMDUwMywgMS4zNzg2NiwgMS42NTIyNSIsIFwKLSAgICAgICAgICAiMC4wNjcxMzksIDAuMzM5ODgxLCAwLjU1Nzg3NywgMC44MzU1NjMsIDEuMTA3NSwgMS4zODA3NSwgMS42NTIyIiwgXAotICAgICAgICAgICIwLjA3MzYwMSwgMC4zMzk4ODUsIDAuNTU4NzAzLCAwLjgzMzQ1NywgMS4xMTA1OCwgMS4zNzkyNCwgMS42NTYwMyIsIFwKLSAgICAgICAgICAiMC4wODE5ODUsIDAuMzQwMTksIDAuNTU5MjAyLCAwLjgzMTQxNywgMS4xMDUwNCwgMS4zODA0OSwgMS42NTU4MSIsIFwKLSAgICAgICAgICAiMC4wOTA5MDIsIDAuMzQ0MDA0LCAwLjU1ODE3MiwgMC44MzEzNzIsIDEuMTA0ODcsIDEuMzgxMjUsIDEuNjUyMTUiLCBcCi0gICAgICAgICAgIjAuMTA0NTQ1LCAwLjM1MTEyMSwgMC41NjI5MywgMC44MzIyOSwgMS4xMDc0NCwgMS4zODE2MywgMS42NTI1IiwgXAotICAgICAgICAgICIwLjExNTQ0MywgMC4zNTk0NTYsIDAuNTY2NzE5LCAwLjgzMzY5OCwgMS4xMDUxMywgMS4zODE2MSwgMS42NTQ0OCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDQ5OCwgMC4wMDQ1MTIsIDAuMDA0NTE0LCAwLjAwNDUxNSwgMC4wMDQ1MTUsIDAuMDA0NTE1LCAwLjAwNDUxNCIsIFwKLSAgICAgICAgICAiMC4wMDQ0ODMsIDAuMDA0NSwgMC4wMDQ1MDEsIDAuMDA0NDk5LCAwLjAwNDUwMywgMC4wMDQ1MDMsIDAuMDA0NTA2IiwgXAotICAgICAgICAgICIwLjAwNDU0OCwgMC4wMDQ1MjcsIDAuMDA0NTIzLCAwLjAwNDUxOCwgMC4wMDQ1MTEsIDAuMDA0NTA5LCAwLjAwNDUwNyIsIFwKLSAgICAgICAgICAiMC4wMDQ3MjQsIDAuMDA0NTc4LCAwLjAwNDU1NSwgMC4wMDQ1MzUsIDAuMDA0NTMyLCAwLjAwNDUyMiwgMC4wMDQ1MTkiLCBcCi0gICAgICAgICAgIjAuMDA0ODk2LCAwLjAwNDY0MiwgMC4wMDQ1OTYsIDAuMDA0NTY5LCAwLjAwNDU0NSwgMC4wMDQ1NDcsIDAuMDA0NTQiLCBcCi0gICAgICAgICAgIjAuMDA1Mjc5LCAwLjAwNDgsIDAuMDA0NywgMC4wMDQ2NDcsIDAuMDA0NjE3LCAwLjAwNDU5NywgMC4wMDQ1ODQiLCBcCi0gICAgICAgICAgIjAuMDA1NjUxLCAwLjAwNDk2NSwgMC4wMDQ4MTMsIDAuMDA0NzI5LCAwLjAwNDY3OSwgMC4wMDQ2NTEsIDAuMDA0NjMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDAzNjMsIDAuMDAwNDAyLCAwLjAwMDQwNiwgMC4wMDA0MDgsIDAuMDAwNDA5LCAwLjAwMDQwOSwgMC4wMDA0MSIsIFwKLSAgICAgICAgICAiMC4wMDAyNTMsIDAuMDAwMzY2LCAwLjAwMDM4MywgMC4wMDAzOTIsIDAuMDAwMzk3LCAwLjAwMDQsIDAuMDAwNDAyIiwgXAotICAgICAgICAgICIwLjAwMDI0OCwgMC4wMDAzNDUsIDAuMDAwMzY3LCAwLjAwMDM4MSwgMC4wMDAzODgsIDAuMDAwMzkzLCAwLjAwMDM5NiIsIFwKLSAgICAgICAgICAiMC4wMDAzMywgMC4wMDAzNDksIDAuMDAwMzY3LCAwLjAwMDM4LCAwLjAwMDM4NywgMC4wMDAzOTEsIDAuMDAwMzk1IiwgXAotICAgICAgICAgICIwLjAwMDQ1NywgMC4wMDAzNzYsIDAuMDAwMzgyLCAwLjAwMDM4OCwgMC4wMDAzOTMsIDAuMDAwMzk2LCAwLjAwMDM5OCIsIFwKLSAgICAgICAgICAiMC4wMDA3NCwgMC4wMDA0NTcsIDAuMDAwNDM0LCAwLjAwMDQyNSwgMC4wMDA0MiwgMC4wMDA0MTgsIDAuMDAwNDE3IiwgXAotICAgICAgICAgICIwLjAwMTAyNSwgMC4wMDA1NjMsIDAuMDAwNTAzLCAwLjAwMDQ3MiwgMC4wMDA0NTksIDAuMDAwNDQ5LCAwLjAwMDQ0MiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzU1NywgMC4wMDM1OSwgMC4wMDM1OSwgMC4wMDM1OTIsIDAuMDAzNTkzLCAwLjAwMzU5MywgMC4wMDM1OTMiLCBcCi0gICAgICAgICAgIjAuMDAzNTEyLCAwLjAwMzU4LCAwLjAwMzU5LCAwLjAwMzU5NCwgMC4wMDM1OTcsIDAuMDAzNTk5LCAwLjAwMzYiLCBcCi0gICAgICAgICAgIjAuMDAzNTk3LCAwLjAwMzYsIDAuMDAzNjAxLCAwLjAwMzYwNCwgMC4wMDM2MDUsIDAuMDAzNjA0LCAwLjAwMzYwNSIsIFwKLSAgICAgICAgICAiMC4wMDM3MDUsIDAuMDAzNjQ2LCAwLjAwMzYzNCwgMC4wMDM2MjQsIDAuMDAzNjE2LCAwLjAwMzYxNywgMC4wMDM2MTciLCBcCi0gICAgICAgICAgIjAuMDAzODgsIDAuMDAzNjk0LCAwLjAwMzY2NCwgMC4wMDM2NDksIDAuMDAzNjM5LCAwLjAwMzYzNCwgMC4wMDM2MyIsIFwKLSAgICAgICAgICAiMC4wMDQyMzYsIDAuMDAzODMxLCAwLjAwMzc1MiwgMC4wMDM3MTMsIDAuMDAzNjkyLCAwLjAwMzY3NywgMC4wMDM2NjgiLCBcCi0gICAgICAgICAgIjAuMDA0NTcxLCAwLjAwMzk4MSwgMC4wMDM4NTUsIDAuMDAzNzg3LCAwLjAwMzc1MSwgMC4wMDM3MjcsIDAuMDAzNzEyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwMzY3LCAwLjAwMDQxMSwgMC4wMDA0MTUsIDAuMDAwNDE4LCAwLjAwMDQxOSwgMC4wMDA0MiwgMC4wMDA0MiIsIFwKLSAgICAgICAgICAiMC4wMDAyODUsIDAuMDAwMzgxLCAwLjAwMDM5NiwgMC4wMDA0MDUsIDAuMDAwNDA5LCAwLjAwMDQxMiwgMC4wMDA0MTMiLCBcCi0gICAgICAgICAgIjAuMDAwMzkyLCAwLjAwMDM5LCAwLjAwMDQsIDAuMDAwNDA3LCAwLjAwMDQxLCAwLjAwMDQxMiwgMC4wMDA0MTQiLCBcCi0gICAgICAgICAgIjAuMDAwNTEzLCAwLjAwMDQxOCwgMC4wMDA0MTYsIDAuMDAwNDE3LCAwLjAwMDQxOCwgMC4wMDA0MTksIDAuMDAwNDIiLCBcCi0gICAgICAgICAgIjAuMDAwNzM1LCAwLjAwMDQ3NCwgMC4wMDA0NTYsIDAuMDAwNDQ0LCAwLjAwMDQzOCwgMC4wMDA0MzUsIDAuMDAwNDMzIiwgXAotICAgICAgICAgICIwLjAwMTE1MywgMC4wMDA2MTcsIDAuMDAwNTQ0LCAwLjAwMDUxMywgMC4wMDA0OTEsIDAuMDAwNDc4LCAwLjAwMDQ2OSIsIFwKLSAgICAgICAgICAiMC4wMDE1NTgsIDAuMDAwNzY1LCAwLjAwMDY0OSwgMC4wMDA1OTIsIDAuMDAwNTUyLCAwLjAwMDUzLCAwLjAwMDUxNCIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IE5BTkQyWDggKgotICogLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoTkFORDJYOCkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAxLjQxNDkxOwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDY2NjA2NjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDY2NjA2NjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDY2NDg4OTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDQxNjgsIDAuMDA0MTY1LCAwLjAwNDE2NCwgMC4wMDQxNjMsIDAuMDA0MTYxLCAwLjAwNDE2MSwgMC4wMDQxNiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNDM4LCAwLjAwNDI0MiwgMC4wMDQyMTgsIDAuMDA0MjA5LCAwLjAwNDIwNSwgMC4wMDQxODEsIDAuMDA0MTgiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwNjczMTkzOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwNjcyOTY1OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwNjczMTkzOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjQzMSwgMC4wMDI0MjgsIDAuMDAyNDI2LCAwLjAwMjQyNCwgMC4wMDI0MjMsIDAuMDAyNDIzLCAwLjAwMjQyNCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNDczLCAwLjAwNDczNSwgMC4wMDQ3MzcsIDAuMDA0NzM2LCAwLjAwNDczNiwgMC4wMDQ3MzUsIDAuMDA0NzM2Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDEuNTY2OTE7Ci0gICAgZnVuY3Rpb24gOiAiKCEoQSBCKSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEwOTc4LCAwLjAzOTIyMywgMC4wNjcyOTksIDAuMDg3MzQxLCAwLjExOTQ1NywgMC4xNDc1MTYsIDAuMTg3NjE3IiwgXAotICAgICAgICAgICIwLjAxODQ5MiwgMC4wNDc1MzgsIDAuMDc1NjEzLCAwLjA5NTY1NywgMC4xMjc3MiwgMC4xNTU3ODUsIDAuMTk1ODYzIiwgXAotICAgICAgICAgICIwLjAyNDIyNiwgMC4wNTgwMjgsIDAuMDg1OTksIDAuMTA2MDE1LCAwLjEzODA5OSwgMC4xNjU5MDUsIDAuMjA2MjE1IiwgXAotICAgICAgICAgICIwLjAyODE0OSwgMC4wNjg0NTQsIDAuMDk2NzUsIDAuMTE2NzUsIDAuMTQ4NzI3LCAwLjE3Njc4MywgMC4yMTY4NjUiLCBcCi0gICAgICAgICAgIjAuMDMxMDc4LCAwLjA3NjgyLCAwLjEwNzE5NiwgMC4xMjcxMDIsIDAuMTU5MDI5LCAwLjE4Njk5OCwgMC4yMjY5NzEiLCBcCi0gICAgICAgICAgIjAuMDM0ODU0LCAwLjA4ODE1OSwgMC4xMjMzNTUsIDAuMTQ0MjE0LCAwLjE3NTk5NSwgMC4yMDM5MjgsIDAuMjQzOTE0IiwgXAotICAgICAgICAgICIwLjAzNzQ1OSwgMC4wOTY2ODEsIDAuMTM1NiwgMC4xNTgzNTEsIDAuMTkxMDQxLCAwLjIxODgwOCwgMC4yNTg3NzgiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTYyNzgsIDAuMDc1MzIsIDAuMTM0NDY0LCAwLjE3NjczNCwgMC4yNDQ0NiwgMC4zMDM2MzQsIDAuMzg4MDg4IiwgXAotICAgICAgICAgICIwLjAyMjU0NiwgMC4wNzY2MzQsIDAuMTM0NTg4LCAwLjE3Njc0MywgMC4yNDQyNTksIDAuMzAzNTQyLCAwLjM4ODA0MSIsIFwKLSAgICAgICAgICAiMC4wMzEwMTEsIDAuMDgzMDUsIDAuMTM4MDU1LCAwLjE3ODY0MywgMC4yNDQ3ODIsIDAuMzAzNTY4LCAwLjM4ODAxNiIsIFwKLSAgICAgICAgICAiMC4wMzc4ODUsIDAuMDkxMTg5LCAwLjE0NDEyNSwgMC4xODM0ODgsIDAuMjQ3OTUzLCAwLjMwNTI0NiwgMC4zODg0ODQiLCBcCi0gICAgICAgICAgIjAuMDQ0MTMsIDAuMTAxMDkyLCAwLjE1MjAxOCwgMC4xOTAxNjYsIDAuMjUzMDc5LCAwLjMwOTI4NywgMC4zOTEwMDUiLCBcCi0gICAgICAgICAgIjAuMDUzMjY0LCAwLjExNjM3NiwgMC4xNjU3MTcsIDAuMjAyNTk2LCAwLjI2MzM4LCAwLjMxODA2NSwgMC4zOTc4NTQiLCBcCi0gICAgICAgICAgIjAuMDYwMzM3LCAwLjEyODE1NywgMC4xNzkwOTIsIDAuMjE0NjIzLCAwLjI3NDEyOSwgMC4zMjc0OCwgMC40MDU3NTYiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTcwODEsIDAuMDY2MDc0LCAwLjExNDc4MSwgMC4xNDk3MDIsIDAuMjA1MjIzLCAwLjI1NDE1MSwgMC4zMjM1MzkiLCBcCi0gICAgICAgICAgIjAuMDIzMzg5LCAwLjA3MjY0NSwgMC4xMjE0NDMsIDAuMTU2Mjg2LCAwLjIxMTkxOCwgMC4yNjA2ODEsIDAuMzMwMjQ3IiwgXAotICAgICAgICAgICIwLjAyOTQxNiwgMC4wODA5NywgMC4xMjk4MDcsIDAuMTY0NjIzLCAwLjIyMDQwMywgMC4yNjkwNSwgMC4zMzg2MTIiLCBcCi0gICAgICAgICAgIjAuMDMzOTc0LCAwLjA4OTI2NywgMC4xMzgwNDgsIDAuMTcyOTc0LCAwLjIyODc1OCwgMC4yNzcxOTksIDAuMzQ3MDY4IiwgXAotICAgICAgICAgICIwLjAzNzczNCwgMC4wOTc3NzMsIDAuMTQ2NDkxLCAwLjE4MTM5OCwgMC4yMzczODMsIDAuMjg1OTcsIDAuMzU1NTczIiwgXAotICAgICAgICAgICIwLjA0MzAxLCAwLjEwOTY0OSwgMC4xNjAwNDksIDAuMTk1MzcsIDAuMjUwNTE1LCAwLjI5OTE1NiwgMC4zNjkxNDUiLCBcCi0gICAgICAgICAgIjAuMDQ3MDEzLCAwLjExODksIDAuMTcxNzI0LCAwLjIwNjczNiwgMC4yNjI4MzQsIDAuMzExMDAxLCAwLjM4MDUxMSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyNTQyNywgMC4xMjU5OTcsIDAuMjI2NTc5LCAwLjI5ODYxNCwgMC40MTM0NDEsIDAuNTE0MzM1LCAwLjY1NzczNSIsIFwKLSAgICAgICAgICAiMC4wMjgxMzMsIDAuMTI2MzEyLCAwLjIyNjY5NywgMC4yOTg0MzksIDAuNDE0MzQ1LCAwLjUxNDA3NCwgMC42NTc3OTkiLCBcCi0gICAgICAgICAgIjAuMDM0NjU2LCAwLjEyODUwOCwgMC4yMjc1MTgsIDAuMjk5MTE2LCAwLjQxMzQ0NiwgMC41MTQzODEsIDAuNjU5MjUyIiwgXAotICAgICAgICAgICIwLjA0MDg1NSwgMC4xMzI3LCAwLjIyOTIyNywgMC4yOTk3OCwgMC40MTM3MiwgMC41MTM3NTUsIDAuNjU4MTUxIiwgXAotICAgICAgICAgICIwLjA0NjUxLCAwLjEzODEzLCAwLjIzMjk2OSwgMC4zMDI5MTksIDAuNDE2MDI4LCAwLjUxNTY4LCAwLjY1ODE4MiIsIFwKLSAgICAgICAgICAiMC4wNTQ2NTYsIDAuMTQ3OSwgMC4yNDAzMTUsIDAuMzA4ODM2LCAwLjQxOTMzMiwgMC41MTgwMjMsIDAuNjYwNjg0IiwgXAotICAgICAgICAgICIwLjA2MTMyMywgMC4xNTY3OTgsIDAuMjQ3Njc4LCAwLjMxNTA2NiwgMC40MjQ4NjYsIDAuNTIxNjUxLCAwLjY2Mjk0NCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwOTkxNSwgMC4wMzgxNzUsIDAuMDY2MzI3LCAwLjA4NjM4OCwgMC4xMTg1MjksIDAuMTQ2ODE2LCAwLjE4Njk0OSIsIFwKLSAgICAgICAgICAiMC4wMTY5NzQsIDAuMDQ2NDgsIDAuMDc0NjMxLCAwLjA5NDczMSwgMC4xMjY5MzYsIDAuMTU1MDEyLCAwLjE5NTE5NiIsIFwKLSAgICAgICAgICAiMC4wMjE5NDMsIDAuMDU2OTcxLCAwLjA4NTA4LCAwLjEwNTE0NCwgMC4xMzcyODEsIDAuMTY1MjEsIDAuMjA1NjYxIiwgXAotICAgICAgICAgICIwLjAyNTI2NywgMC4wNjc0MDIsIDAuMDk1NDM0LCAwLjExNTQ1NSwgMC4xNDc1NTYsIDAuMTc1NjY2LCAwLjIxNTgzIiwgXAotICAgICAgICAgICIwLjAyNzg0MSwgMC4wNzU4MzMsIDAuMTA2MzIzLCAwLjEyNjM5NiwgMC4xNTg0MTcsIDAuMTg2NTE2LCAwLjIyNjY4NCIsIFwKLSAgICAgICAgICAiMC4wMzA4NzksIDAuMDg2Mzk4LCAwLjEyMjE1MiwgMC4xNDMxOTcsIDAuMTc1MDg2LCAwLjIwMzEwMiwgMC4yNDMyMDEiLCBcCi0gICAgICAgICAgIjAuMDMyNzg1LCAwLjA5NDUxOSwgMC4xMzQ0NjgsIDAuMTU3NTg1LCAwLjE5MDMwMSwgMC4yMTgzNzEsIDAuMjU4Mzk1Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE0ODMsIDAuMDczOTk2LCAwLjEzMzM5LCAwLjE3NTU5NCwgMC4yNDMzNCwgMC4zMDI4OTYsIDAuMzg3NDM1IiwgXAotICAgICAgICAgICIwLjAyMTQ0NywgMC4wNzU0LCAwLjEzMzU4MiwgMC4xNzU2MzIsIDAuMjQzNDY3LCAwLjMwMjYzMiwgMC4zODcyOTciLCBcCi0gICAgICAgICAgIjAuMDI5ODE1LCAwLjA4MTY1MiwgMC4xMzY3ODMsIDAuMTc3NTk5LCAwLjI0NDMwOCwgMC4zMDI3MywgMC4zODc0OTYiLCBcCi0gICAgICAgICAgIjAuMDM2NzA0LCAwLjA4OTkwNywgMC4xNDMzMDYsIDAuMTgyNTcxLCAwLjI0NzIyMywgMC4zMDQ2MTYsIDAuMzg4MTM5IiwgXAotICAgICAgICAgICIwLjA0Mjc0OSwgMC4wOTk2NTksIDAuMTUwNTM0LCAwLjE4ODk2OCwgMC4yNTIwMDYsIDAuMzA4OTE3LCAwLjM5MDk3NSIsIFwKLSAgICAgICAgICAiMC4wNTE3MTQsIDAuMTE2MTgxLCAwLjE2NDg0MywgMC4yMDE1ODcsIDAuMjYyNjQ3LCAwLjMxNzYzLCAwLjM5Nzg3IiwgXAotICAgICAgICAgICIwLjA1ODkzOCwgMC4xMjgyNzYsIDAuMTc3NTQ3LCAwLjIxMzE2OCwgMC4yNzI3MSwgMC4zMjY2NDQsIDAuNDA1MDQ4Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE1NDM2LCAwLjA2NDQxNywgMC4xMTMyMjEsIDAuMTQ4MDE4LCAwLjIwMzY1MywgMC4yNTIyMjgsIDAuMzIyMTEyIiwgXAotICAgICAgICAgICIwLjAyMzA1MiwgMC4wNzIwMTksIDAuMTIwNzkyLCAwLjE1NTYxLCAwLjIxMTIzMywgMC4yNTk5MTksIDAuMzI5NTMyIiwgXAotICAgICAgICAgICIwLjAzMDIwOSwgMC4wODE4NTEsIDAuMTMwNTYsIDAuMTY1MTk5LCAwLjIyMTA1MiwgMC4yNjk3MTEsIDAuMzM5Mjk2IiwgXAotICAgICAgICAgICIwLjAzNTY4NCwgMC4wOTE4MjYsIDAuMTQwMzUxLCAwLjE3NTExNCwgMC4yMzA3NDgsIDAuMjc5NTMxLCAwLjM0ODk1MyIsIFwKLSAgICAgICAgICAiMC4wMzk5NTIsIDAuMTAyMjQ3LCAwLjE1MDE2OSwgMC4xODQ3NTQsIDAuMjQwMzA4LCAwLjI4ODg5NSwgMC4zNTY5OTciLCBcCi0gICAgICAgICAgIjAuMDQ2MDE3LCAwLjExNzEzMSwgMC4xNjY4MTksIDAuMjAxNDQyLCAwLjI1Njc1OSwgMC4zMDUzNjQsIDAuMzc0NzUzIiwgXAotICAgICAgICAgICIwLjA1MDU5NiwgMC4xMjg0NjQsIDAuMTgwNjIsIDAuMjE0OTUyLCAwLjI3MDM1MywgMC4zMTg2MywgMC4zODgwNTkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjUzNjQsIDAuMTI2MjYzLCAwLjIyNjY0OSwgMC4yOTg1MDEsIDAuNDEzNDA4LCAwLjUxNTIzMSwgMC42NTgwNzMiLCBcCi0gICAgICAgICAgIjAuMDI5OTI1LCAwLjEyNjM0NiwgMC4yMjcwODYsIDAuMjk5MTQxLCAwLjQxNDMzOCwgMC41MTQ0MDMsIDAuNjU3NzMiLCBcCi0gICAgICAgICAgIjAuMDM4Njk5LCAwLjEyOTYyMiwgMC4yMjc2NzYsIDAuMjk5MTMsIDAuNDE0MzEzLCAwLjUxNDMwMywgMC42NTkyNjgiLCBcCi0gICAgICAgICAgIjAuMDQ1NDM2LCAwLjEzNTg1OCwgMC4yMzEwMjIsIDAuMzAwODk2LCAwLjQxNDU0MywgMC41MTM5NzUsIDAuNjU5MTkzIiwgXAotICAgICAgICAgICIwLjA1MjEzOSwgMC4xNDI4MTksIDAuMjM1OTUyLCAwLjMwNDUzNywgMC40MTY0NDIsIDAuNTE1NzY2LCAwLjY1OTE3NCIsIFwKLSAgICAgICAgICAiMC4wNjA5MzcsIDAuMTU1OTc0LCAwLjI0NTg0MywgMC4zMTI0NzEsIDAuNDIxNTYsIDAuNTE5NzI1LCAwLjY2MDc2NCIsIFwKLSAgICAgICAgICAiMC4wNjgwMzUsIDAuMTY3ODg5LCAwLjI1NjUyNywgMC4zMjE1NzYsIDAuNDI5MDIxLCAwLjUyNDk3NCwgMC42NjQ3MDciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxNzQ4MiwgMC4wMTc1OTgsIDAuMDE3NjEyLCAwLjAxNzYxNiwgMC4wMTc2MjEsIDAuMDE3NjIyLCAwLjAxNzYyNCIsIFwKLSAgICAgICAgICAiMC4wMTczOTcsIDAuMDE3NDk2LCAwLjAxNzUyOSwgMC4wMTc1NDIsIDAuMDE3NTU0LCAwLjAxNzU2MywgMC4wMTc1NjgiLCBcCi0gICAgICAgICAgIjAuMDE3OTYyLCAwLjAxNzcyNCwgMC4wMTc2NjcsIDAuMDE3NjQ5LCAwLjAxNzYzMywgMC4wMTc2MTQsIDAuMDE3NjE3IiwgXAotICAgICAgICAgICIwLjAxODgyNiwgMC4wMTgyMTgsIDAuMDE4MDA5LCAwLjAxNzkzMSwgMC4wMTc4NTEsIDAuMDE3ODA3LCAwLjAxNzc2OCIsIFwKLSAgICAgICAgICAiMC4wMTk4NTEsIDAuMDE4NzE2LCAwLjAxODMwNCwgMC4wMTgxNTYsIDAuMDE4MDIxLCAwLjAxNzk0NiwgMC4wMTc4NzYiLCBcCi0gICAgICAgICAgIjAuMDIxNjc0LCAwLjAxOTg1NywgMC4wMTkwNDUsIDAuMDE4NzczLCAwLjAxODQ5MSwgMC4wMTgzNDIsIDAuMDE4MjE2IiwgXAotICAgICAgICAgICIwLjAyMzU2NiwgMC4wMjA2MDIsIDAuMDE5ODU3LCAwLjAxOTQzMSwgMC4wMTkwMzYsIDAuMDE4NzksIDAuMDE4NTc0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDEyMjUsIDAuMDAxNTU5LCAwLjAwMTYwNywgMC4wMDE2MjEsIDAuMDAxNjM1LCAwLjAwMTY0MSwgMC4wMDE2NDciLCBcCi0gICAgICAgICAgIjAuMDAwNjc3LCAwLjAwMTIzNiwgMC4wMDEzOTgsIDAuMDAxNDU2LCAwLjAwMTUxLCAwLjAwMTU0LCAwLjAwMTU2NyIsIFwKLSAgICAgICAgICAiMC4wMDA4NTYsIDAuMDAxMTA0LCAwLjAwMTI3NCwgMC4wMDEzNDYsIDAuMDAxNDE5LCAwLjAwMTQ2MSwgMC4wMDE1MDIiLCBcCi0gICAgICAgICAgIjAuMDAxNDAzLCAwLjAwMTIwMiwgMC4wMDEyOTUsIDAuMDAxMzQ5LCAwLjAwMTQxLCAwLjAwMTQ1LCAwLjAwMTQ4OCIsIFwKLSAgICAgICAgICAiMC4wMDIxNDcsIDAuMDAxNDYsIDAuMDAxNDI3LCAwLjAwMTQzOCwgMC4wMDE0NywgMC4wMDE0OTIsIDAuMDAxNTIiLCBcCi0gICAgICAgICAgIjAuMDAzNjQsIDAuMDAyMTQsIDAuMDAxODI1LCAwLjAwMTc2MiwgMC4wMDE3MDgsIDAuMDAxNjgyLCAwLjAwMTY2NiIsIFwKLSAgICAgICAgICAiMC4wMDUxNTEsIDAuMDAyODY1LCAwLjAwMjMyMywgMC4wMDIxNDMsIDAuMDAyMDAxLCAwLjAwMTkyMiwgMC4wMDE4NiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEzNDMzLCAwLjAxMzcxLCAwLjAxMzc0NiwgMC4wMTM3NTcsIDAuMDEzNzY4LCAwLjAxMzc3MSwgMC4wMTM3NzciLCBcCi0gICAgICAgICAgIjAuMDEzMzI5LCAwLjAxMzYxOCwgMC4wMTM3MDEsIDAuMDEzNzMsIDAuMDEzNzUyLCAwLjAxMzc3MSwgMC4wMTM3ODgiLCBcCi0gICAgICAgICAgIjAuMDEzNzk1LCAwLjAxMzY4MSwgMC4wMTM3MzUsIDAuMDEzNzUxLCAwLjAxMzc2NSwgMC4wMTM3ODUsIDAuMDEzNzk2IiwgXAotICAgICAgICAgICIwLjAxNDcxMywgMC4wMTM5NDksIDAuMDE0MDIsIDAuMDEzOTgxLCAwLjAxMzk1MSwgMC4wMTM5MzIsIDAuMDEzOTE2IiwgXAotICAgICAgICAgICIwLjAxNTYzNSwgMC4wMTQ2NDQsIDAuMDE0MzUxLCAwLjAxNDI4MywgMC4wMTQxOSwgMC4wMTQxMTgsIDAuMDE0MDk1IiwgXAotICAgICAgICAgICIwLjAxNzQ2OSwgMC4wMTU2NzgsIDAuMDE0OTg0LCAwLjAxNDc1OSwgMC4wMTQ1MzUsIDAuMDE0NDEyLCAwLjAxNDMxNSIsIFwKLSAgICAgICAgICAiMC4wMTkyOCwgMC4wMTY0NjksIDAuMDE1NTAyLCAwLjAxNTE3OSwgMC4wMTQ4NTQsIDAuMDE0NjkxLCAwLjAxNDUzNSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxMTY4LCAwLjAwMTU0NSwgMC4wMDE2LCAwLjAwMTYxNywgMC4wMDE2MzMsIDAuMDAxNjQxLCAwLjAwMTY0NyIsIFwKLSAgICAgICAgICAiMC4wMDA5NzksIDAuMDAxMzA0LCAwLjAwMTQzOSwgMC4wMDE0ODgsIDAuMDAxNTM0LCAwLjAwMTU1OSwgMC4wMDE1ODMiLCBcCi0gICAgICAgICAgIjAuMDAxNTk1LCAwLjAwMTMyNSwgMC4wMDE0MDUsIDAuMDAxNDU0LCAwLjAwMTUwMSwgMC4wMDE1MjcsIDAuMDAxNTU1IiwgXAotICAgICAgICAgICIwLjAwMjM5NSwgMC4wMDE2ODgsIDAuMDAxNjA4LCAwLjAwMTU5NywgMC4wMDE2MSwgMC4wMDE2MTMsIDAuMDAxNjE5IiwgXAotICAgICAgICAgICIwLjAwMzUxMSwgMC4wMDIwNDEsIDAuMDAyMDY2LCAwLjAwMTk1OSwgMC4wMDE4NjksIDAuMDAxODI0LCAwLjAwMTc3OCIsIFwKLSAgICAgICAgICAiMC4wMDUyNjQsIDAuMDAzMDQyLCAwLjAwMjQ3MywgMC4wMDIzMSwgMC4wMDIxMzIsIDAuMDAyMDQsIDAuMDAxOTU1IiwgXAotICAgICAgICAgICIwLjAwNjgzOCwgMC4wMDM4NjksIDAuMDAzNjE2LCAwLjAwMzIxNiwgMC4wMDI4OTIsIDAuMDAyNjc3LCAwLjAwMjQ3OSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBOQU5EM0JYMSAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoTkFORDNCWDEpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4zNDgxNTM7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEFOKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2NTE5ODc7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjUxOTg3OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDY1MTkzNjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA1MzEsIDAuMDAwNTQsIDAuMDAwNjIzLCAwLjAwMDczNCwgMC4wMDA4NjEsIDAuMDAxMDksIDAuMDAxMjg2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxODIsIDAuMDAxODM0LCAwLjAwMTkxNiwgMC4wMDIwMjMsIDAuMDAyMTU2LCAwLjAwMjM4NywgMC4wMDI1NjYiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDkzOTIwMjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA5MzkyMDI7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwOTM4MDAxOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDUyNCwgMC4wMDA1MjQsIDAuMDAwNTI0LCAwLjAwMDUyNCwgMC4wMDA1MjMsIDAuMDAwNTI0LCAwLjAwMDUyNCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDU2MywgMC4wMDA1MzUsIDAuMDAwNTMxLCAwLjAwMDUzLCAwLjAwMDUyOCwgMC4wMDA1MjYsIDAuMDAwNTI5Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihDKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA5NDkyOTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA5NDg4Njg7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwOTQ5Mjk7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzIxLCAwLjAwMDMyMSwgMC4wMDAzMjEsIDAuMDAwMzIsIDAuMDAwMzIsIDAuMDAwMzIsIDAuMDAwMzIxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNTk2LCAwLjAwMDU5NiwgMC4wMDA1OTYsIDAuMDAwNTk2LCAwLjAwMDU5NiwgMC4wMDA1OTYsIDAuMDAwNTk2Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMTM0NTUxOwotICAgIGZ1bmN0aW9uIDogIighKCgoIUFOKSBCKSBDKSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkFOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTEyMDksIDAuMDY5OTA1LCAwLjE3NTYwMiwgMC4yNjg4NzIsIDAuMzkzMDQ3LCAwLjY0MTM2MiwgMC43OTY4NjMiLCBcCi0gICAgICAgICAgIjAuMDU4Nzg5LCAwLjA3NzQ4OCwgMC4xODMyNzEsIDAuMjc2NDMzLCAwLjQwMDU4LCAwLjY0ODQ5MiwgMC44MDQ3MjYiLCBcCi0gICAgICAgICAgIjAuMDY1MzQ4LCAwLjA4NDA0MiwgMC4xODk3ODgsIDAuMjgyOTcxLCAwLjQwNzIxNSwgMC42NTU1MzIsIDAuODExMjUyIiwgXAotICAgICAgICAgICIwLjA3MDIwNiwgMC4wODg5MDMsIDAuMTk0NTcsIDAuMjg3ODcyLCAwLjQxMTk0MywgMC42NjA1NTMsIDAuODE1NjgyIiwgXAotICAgICAgICAgICIwLjA3NDE2NSwgMC4wOTI4NzIsIDAuMTk4MywgMC4yOTE1MjEsIDAuNDE1NzEsIDAuNjY0MzQsIDAuODE5NDI4IiwgXAotICAgICAgICAgICIwLjA3OTI3OCwgMC4wOTc5NjMsIDAuMjAzNTUzLCAwLjI5NjczMiwgMC40MjA4OTIsIDAuNjY5MzQxLCAwLjgyNDU2IiwgXAotICAgICAgICAgICIwLjA4MzM5MiwgMC4xMDIwMiwgMC4yMDc2MjcsIDAuMzAwNzM5LCAwLjQyNDk4MywgMC42NzMzMDYsIDAuODI4NjQ4Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3NzU1LCAwLjExNjY5NiwgMC4zMzkwNzIsIDAuNTM1MTU2LCAwLjc5NzAzNiwgMS4zMTk5NSwgMS42NDc1NyIsIFwKLSAgICAgICAgICAiMC4wNzc2MzcsIDAuMTE2NzI3LCAwLjMzOTE3MSwgMC41MzU1MjEsIDAuNzk3MDI0LCAxLjMxOTYyLCAxLjY0NzgiLCBcCi0gICAgICAgICAgIjAuMDc4MDI4LCAwLjExNjg5NiwgMC4zMzkxMjIsIDAuNTM1NDk4LCAwLjc5NzAzLCAxLjMyMDA2LCAxLjY0NzYyIiwgXAotICAgICAgICAgICIwLjA3ODM4NiwgMC4xMTcxMDQsIDAuMzM5MTU0LCAwLjUzNTUzMywgMC43OTY4NDYsIDEuMzIwNDUsIDEuNjQ3MTkiLCBcCi0gICAgICAgICAgIjAuMDc4ODk2LCAwLjExNzI5MywgMC4zMzkxMTMsIDAuNTM1MzIxLCAwLjc5Njg4MywgMS4zMjAzNCwgMS42NDcyMiIsIFwKLSAgICAgICAgICAiMC4wNzk1OTUsIDAuMTE3ODY1LCAwLjMzOTE1NCwgMC41MzU0ODMsIDAuNzk3Mjk0LCAxLjMxOTk0LCAxLjY0NzI4IiwgXAotICAgICAgICAgICIwLjA4MDI4MSwgMC4xMTgyMDgsIDAuMzM5Mjg2LCAwLjUzNTQxMiwgMC43OTcwMDIsIDEuMzIwMywgMS42NDY5MSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDQxODQsIDAuMTQ5NTIzLCAwLjQwNjM0MiwgMC42MzI5MzYsIDAuOTM0MTM5LCAxLjUzNzUyLCAxLjkxNjE2IiwgXAotICAgICAgICAgICIwLjExMTUzNCwgMC4xNTY4NDIsIDAuNDEzMzg0LCAwLjYzOTU3LCAwLjk0MTYyNywgMS41NDU0NCwgMS45MjE3OSIsIFwKLSAgICAgICAgICAiMC4xMTcyOTQsIDAuMTYyNzE0LCAwLjQxOTI1MywgMC42NDU2NDcsIDAuOTQ3NDU2LCAxLjU1MDk5LCAxLjkyODgxIiwgXAotICAgICAgICAgICIwLjEyMTQ4NywgMC4xNjY4MzYsIDAuNDIzNTc3LCAwLjY0OTgwNSwgMC45NTEzODksIDEuNTU1NDYsIDEuOTMzNDMiLCBcCi0gICAgICAgICAgIjAuMTI0NzU0LCAwLjE3MDEwNCwgMC40MjY3NzcsIDAuNjUzMTYxLCAwLjk1NDc4MSwgMS41NTgzOSwgMS45MzU3NSIsIFwKLSAgICAgICAgICAiMC4xMjkwMzgsIDAuMTc0MzYyLCAwLjQzMDkwMiwgMC42NTc2MDUsIDAuOTU5Mjc4LCAxLjU2MjM4LCAxLjkzOTEiLCBcCi0gICAgICAgICAgIjAuMTMyMjc0LCAwLjE3NzcwNiwgMC40MzQxODUsIDAuNjYwNDc2LCAwLjk2MjI1MywgMS41NjU4NywgMS45NDI3OSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNzY5NzMsIDAuMjcwMzY4LCAwLjc5NTcwNywgMS4yNTk4NSwgMS44NzkyNiwgMy4xMTcyMSwgMy44ODkzIiwgXAotICAgICAgICAgICIwLjE3NzMzMSwgMC4yNzAzMDEsIDAuNzk1OTQsIDEuMjYwNzMsIDEuODc4MSwgMy4xMTUzNCwgMy44OTA0MiIsIFwKLSAgICAgICAgICAiMC4xNzcxNzIsIDAuMjY5NzA2LCAwLjc5NzM1LCAxLjI1OTk5LCAxLjg4MDUsIDMuMTE1MTgsIDMuODg4NjQiLCBcCi0gICAgICAgICAgIjAuMTc3MTA3LCAwLjI3MDE3MSwgMC43OTU1MTIsIDEuMjYyNCwgMS44ODIyNSwgMy4xMTUyOSwgMy44ODg4NiIsIFwKLSAgICAgICAgICAiMC4xNzcwNjUsIDAuMjY5OTM2LCAwLjc5NTkzOCwgMS4yNjI0NCwgMS44ODIzNiwgMy4xMTcwMiwgMy44ODg0MyIsIFwKLSAgICAgICAgICAiMC4xNzY5OTcsIDAuMjY5Njg1LCAwLjc5Njc3OSwgMS4yNTk0OSwgMS44NzgwMywgMy4xMjIyMSwgMy44OTQ3OSIsIFwKLSAgICAgICAgICAiMC4xNzcxMTMsIDAuMjY5NzIyLCAwLjc5Njc2OSwgMS4yNjE0OCwgMS44NzkxNywgMy4xMjI1OSwgMy44OTcyNyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzkyOTgsIDAuMDU3OTM4LCAwLjE2MzY1OCwgMC4yNTY3ODEsIDAuMzgxMDgsIDAuNjI5OTA1LCAwLjc4NDc0NSIsIFwKLSAgICAgICAgICAiMC4wNDc0ODYsIDAuMDY2MTU2LCAwLjE3MTcxNiwgMC4yNjQ3NzYsIDAuMzg5MiwgMC42Mzc2MDgsIDAuNzkyODk3IiwgXAotICAgICAgICAgICIwLjA1Nzc1NiwgMC4wNzYzMDMsIDAuMTgxODgxLCAwLjI3NTAxNiwgMC4zOTkyMTgsIDAuNjQ3OTc3LCAwLjgwMjk3NCIsIFwKLSAgICAgICAgICAiMC4wNjg0NTgsIDAuMDg2ODIzLCAwLjE5MjEzOCwgMC4yODUzODksIDAuNDA5NDcxLCAwLjY1Nzg0NiwgMC44MTI4OTkiLCBcCi0gICAgICAgICAgIjAuMDc3MDA3LCAwLjA5NzM0MiwgMC4yMDI1OTUsIDAuMjk1NzAzLCAwLjQxOTg4NiwgMC42NjgwNDYsIDAuODIzMjQiLCBcCi0gICAgICAgICAgIjAuMDg4MzAzLCAwLjExMjAwNSwgMC4yMTk0MzEsIDAuMzEyNDEzLCAwLjQzNjY5NCwgMC42ODQ5MjUsIDAuODQwMjMyIiwgXAotICAgICAgICAgICIwLjA5NjQ1NiwgMC4xMjI3MTIsIDAuMjM0MjkxLCAwLjMyNzE3NSwgMC40NTEyMywgMC42OTk3MzcsIDAuODU0Nzk5Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3NTU3NywgMC4xMTQ3NywgMC4zMzczNzksIDAuNTMzNTAxLCAwLjc5NTA1MywgMS4zMTg3MywgMS42NDQ5IiwgXAotICAgICAgICAgICIwLjA3Njg2LCAwLjExNTE0NywgMC4zMzczMDksIDAuNTMzNDQ0LCAwLjc5NTE3OSwgMS4zMTgwOSwgMS42NDU5MiIsIFwKLSAgICAgICAgICAiMC4wODM0NjYsIDAuMTE5NjAzLCAwLjMzNzI0NCwgMC41MzM0NTIsIDAuNzk1MTU3LCAxLjMxODY0LCAxLjY0NTMiLCBcCi0gICAgICAgICAgIjAuMDkxMjU4LCAwLjEyNjY5OSwgMC4zMzg0ODMsIDAuNTMzNDkzLCAwLjc5NTE3NiwgMS4zMTg3NiwgMS42NDQ4NyIsIFwKLSAgICAgICAgICAiMC4xMDA0OCwgMC4xMzUwMjQsIDAuMzQxODk4LCAwLjUzMzk4NiwgMC43OTQ3ODYsIDEuMzE3ODgsIDEuNjQ1OTYiLCBcCi0gICAgICAgICAgIjAuMTE1ODA4LCAwLjE0OTY0NSwgMC4zNDk5MjMsIDAuNTM3ODM5LCAwLjc5NTM3MiwgMS4zMTg0MywgMS42NDUwMSIsIFwKLSAgICAgICAgICAiMC4xMjg1NDMsIDAuMTYzMTAxLCAwLjM1ODcwMywgMC41NDM2MDgsIDAuNzk3Nzg3LCAxLjMxODYyLCAxLjY0NTYiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDkyMDQzLCAwLjEzNzM0NiwgMC4zOTM4NDgsIDAuNjIwNDUsIDAuOTIxOTcsIDEuNTI1MywgMS45MDQxIiwgXAotICAgICAgICAgICIwLjA5ODM0MiwgMC4xNDM3MjUsIDAuNDAwMzM2LCAwLjYyNjc4MywgMC45Mjg5MDEsIDEuNTMyNDUsIDEuOTA4NjMiLCBcCi0gICAgICAgICAgIjAuMTA2NDk2LCAwLjE1MTg3MSwgMC40MDg4MjYsIDAuNjM1Mjg2LCAwLjkzNzMzMywgMS41NDE0MiwgMS45MTc2MyIsIFwKLSAgICAgICAgICAiMC4xMTQ4MTYsIDAuMTYwMDE5LCAwLjQxNjkxOCwgMC42NDM1NTcsIDAuOTQ1NzQ5LCAxLjU0OTE3LCAxLjkyNiIsIFwKLSAgICAgICAgICAiMC4xMjI5OTUsIDAuMTY4NDk0LCAwLjQyNTIwMywgMC42NTE2MDgsIDAuOTU0MTk4LCAxLjU1NzI3LCAxLjkzNDE5IiwgXAotICAgICAgICAgICIwLjEzNjcyNSwgMC4xODE4MTQsIDAuNDM4NTY3LCAwLjY2NTIxNywgMC45NjY3ODQsIDEuNTY5OTksIDEuOTQ3MzIiLCBcCi0gICAgICAgICAgIjAuMTQ3MzAxLCAwLjE5MzY4NywgMC40NTAxMSwgMC42NzY4NCwgMC45NzgyOTYsIDEuNTgyNjUsIDEuOTU4NzciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTc2OTkzLCAwLjI2OTc1LCAwLjc5NjYwOSwgMS4yNTk1OSwgMS44NzgwNCwgMy4xMTkxMiwgMy44ODk2IiwgXAotICAgICAgICAgICIwLjE3NzA2NywgMC4yNjk4NzIsIDAuNzk3MjcsIDEuMjU5NSwgMS44NzgxMywgMy4xMTUzNCwgMy44OTEyNCIsIFwKLSAgICAgICAgICAiMC4xNzg0NjMsIDAuMjcwMzM3LCAwLjc5NTg2MSwgMS4yNTk1MSwgMS44NzgyMSwgMy4xMTU3MSwgMy44OTc4MyIsIFwKLSAgICAgICAgICAiMC4xODE3OTgsIDAuMjcyMDIxLCAwLjc5NzI4OSwgMS4yNjAwMSwgMS44NzgyMywgMy4xMTUzNCwgMy44ODk1OSIsIFwKLSAgICAgICAgICAiMC4xODU5ODUsIDAuMjc0OTQzLCAwLjc5NjgxNCwgMS4yNjIzLCAxLjg3ODQyLCAzLjExNTA4LCAzLjg5MDYiLCBcCi0gICAgICAgICAgIjAuMTk1MTc3LCAwLjI4MTUzNywgMC43OTYyMjQsIDEuMjU5NTEsIDEuODgyNDEsIDMuMTE4MTMsIDMuODk3NDYiLCBcCi0gICAgICAgICAgIjAuMjAzMzQ0LCAwLjI4ODgxNSwgMC43OTc4NywgMS4yNjIzOSwgMS44NzkxNSwgMy4xMTUzMiwgMy44OTcxNyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzgxMTUsIDAuMDU2NzU3LCAwLjE2MjMyNCwgMC4yNTU2NTQsIDAuMzc5ODgsIDAuNjI4MjA0LCAwLjc4MzkxOCIsIFwKLSAgICAgICAgICAiMC4wNDYzMTgsIDAuMDY0OTU3LCAwLjE3MDYxNSwgMC4yNjM2MjUsIDAuMzg4MjczLCAwLjYzNjQzNiwgMC43OTE3ODciLCBcCi0gICAgICAgICAgIjAuMDU2Njg0LCAwLjA3NTIyOCwgMC4xODA4MTMsIDAuMjczOTQ3LCAwLjM5ODE2NSwgMC42NDY4OTQsIDAuODAyMjY2IiwgXAotICAgICAgICAgICIwLjA2Njc2OSwgMC4wODU4MTEsIDAuMTkxMTU0LCAwLjI4NDQ5NCwgMC40MDg0OSwgMC42NTcwMzYsIDAuODExOTE3IiwgXAotICAgICAgICAgICIwLjA3NTExNSwgMC4wOTYzNCwgMC4yMDE2NywgMC4yOTQ4MDcsIDAuNDE4OTUyLCAwLjY2NzEyMywgMC44MjIzNDIiLCBcCi0gICAgICAgICAgIjAuMDg1OTQ0LCAwLjExMDgxMiwgMC4yMTg0MzMsIDAuMzExNDU5LCAwLjQzNTczOCwgMC42ODM5NywgMC44Mzk0NDkiLCBcCi0gICAgICAgICAgIjAuMDk0MTQ1LCAwLjEyMTEwMywgMC4yMzMxOTUsIDAuMzI2MSwgMC40NTAxNzYsIDAuNjk4NTcsIDAuODUzNzM2Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3NDIwMiwgMC4xMTMyOTgsIDAuMzM1NTQ5LCAwLjUzMTc3NiwgMC43OTM0MzgsIDEuMzE2NjUsIDEuNjQzMzYiLCBcCi0gICAgICAgICAgIjAuMDc1NDgyLCAwLjExMzgwNywgMC4zMzU2MTksIDAuNTMxNTkzLCAwLjc5MzgxOCwgMS4zMTY3MSwgMS42NDQ2OCIsIFwKLSAgICAgICAgICAiMC4wODIwMDksIDAuMTE4MTcyLCAwLjMzNTc0OSwgMC41MzIyNTIsIDAuNzkzNzYyLCAxLjMxNzA2LCAxLjY0NDE3IiwgXAotICAgICAgICAgICIwLjA5MDUxOCwgMC4xMjUxNzksIDAuMzM3NDU2LCAwLjUzMTc4MiwgMC43OTM3MzgsIDEuMzE3MzUsIDEuNjQyNzgiLCBcCi0gICAgICAgICAgIjAuMDk5OTYsIDAuMTMzMzQ5LCAwLjM0MDc0OCwgMC41MzIyNjEsIDAuNzkzMjE2LCAxLjMxNjA4LCAxLjY0NTgxIiwgXAotICAgICAgICAgICIwLjExNjI1NSwgMC4xNDgxODgsIDAuMzQ4NTY4LCAwLjUzNjU5NiwgMC43OTM3OCwgMS4zMTcsIDEuNjQzNjciLCBcCi0gICAgICAgICAgIjAuMTI3OTA1LCAwLjE2MTczLCAwLjM1NzI3MiwgMC41NDIxNDUsIDAuNzk2NDE3LCAxLjMxNzAyLCAxLjY0NTE3Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4OTEwNiwgMC4xMzQ0MzIsIDAuMzkxMDQsIDAuNjE3NDQsIDAuOTE5ODYsIDEuNTIyNzcsIDEuOTAwNzciLCBcCi0gICAgICAgICAgIjAuMDk2MDU1LCAwLjE0MTQwMiwgMC4zOTgwMDUsIDAuNjI0MjUxLCAwLjkyNTc3NSwgMS41MjkwNiwgMS45MDYzIiwgXAotICAgICAgICAgICIwLjEwNTE2NCwgMC4xNTA0OTUsIDAuNDA3MTgzLCAwLjYzMzc5MSwgMC45MzU4MjEsIDEuNTM5ODcsIDEuOTE2MDQiLCBcCi0gICAgICAgICAgIjAuMTE0NDg2LCAwLjE1OTYxOCwgMC40MTYxMSwgMC42NDI2MjYsIDAuOTQ0ODA0LCAxLjU0ODE3LCAxLjkyNTI3IiwgXAotICAgICAgICAgICIwLjEyNDEsIDAuMTY5MDMxLCAwLjQyNTE5NSwgMC42NTE0ODMsIDAuOTUzNTU2LCAxLjU1NjU4LCAxLjkzNTU3IiwgXAotICAgICAgICAgICIwLjEzOTcxMywgMC4xODQzNTIsIDAuNDM5OTczLCAwLjY2NjA2OCwgMC45Njc2NzYsIDEuNTcwOTYsIDEuOTQ5MTkiLCBcCi0gICAgICAgICAgIjAuMTUyMzYzLCAwLjE5NzgwMSwgMC40NTMwMTIsIDAuNjc4OTQyLCAwLjk4MDU0LCAxLjU4Mzc4LCAxLjk2MDg4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE3NzMyMiwgMC4yNjk4NzUsIDAuNzk1NTA1LCAxLjI1OTUzLCAxLjg3ODU4LCAzLjExNTMzLCAzLjg4ODk2IiwgXAotICAgICAgICAgICIwLjE3NzMwNiwgMC4yNzAyOTgsIDAuNzk3MjksIDEuMjYyMjMsIDEuODc5MTYsIDMuMTE2MzgsIDMuODkwOTgiLCBcCi0gICAgICAgICAgIjAuMTc4Nzk4LCAwLjI3MDMwNiwgMC43OTU5ODksIDEuMjU5NTIsIDEuODc4MjcsIDMuMTE1NzcsIDMuODk3ODQiLCBcCi0gICAgICAgICAgIjAuMTgzMzcsIDAuMjcyNjg2LCAwLjc5NzMwNCwgMS4yNjAyLCAxLjg3ODI0LCAzLjExNTM0LCAzLjg4ODc2IiwgXAotICAgICAgICAgICIwLjE4OTE0NiwgMC4yNzY1NTEsIDAuNzk2ODE2LCAxLjI2MjI5LCAxLjg3ODA5LCAzLjExNjc5LCAzLjg4OTY3IiwgXAotICAgICAgICAgICIwLjIwMDUwMywgMC4yODU2NDYsIDAuNzk2MjY2LCAxLjI2MTUxLCAxLjg4MjIzLCAzLjExODA5LCAzLjg4ODYzIiwgXAotICAgICAgICAgICIwLjIxMTE4LCAwLjI5NDU2MSwgMC43OTk4NDEsIDEuMjYsIDEuODgyMjcsIDMuMTE3MjEsIDMuODk3MjMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzMTUzLCAwLjAwMzE1MywgMC4wMDMxNTQsIDAuMDAzMTU0LCAwLjAwMzE1MywgMC4wMDMxNTMsIDAuMDAzMTUyIiwgXAotICAgICAgICAgICIwLjAwMzE1OCwgMC4wMDMxNTksIDAuMDAzMTYxLCAwLjAwMzE2MSwgMC4wMDMxNjEsIDAuMDAzMTYxLCAwLjAwMzE2IiwgXAotICAgICAgICAgICIwLjAwMzI0MywgMC4wMDMyNDUsIDAuMDAzMjQ2LCAwLjAwMzI0NiwgMC4wMDMyNDYsIDAuMDAzMjQ2LCAwLjAwMzI0NiIsIFwKLSAgICAgICAgICAiMC4wMDMzNDksIDAuMDAzMzUsIDAuMDAzMzUxLCAwLjAwMzM1LCAwLjAwMzM1MSwgMC4wMDMzNTEsIDAuMDAzMzUiLCBcCi0gICAgICAgICAgIjAuMDAzNDcxLCAwLjAwMzQ3MiwgMC4wMDM0ODMsIDAuMDAzNDgyLCAwLjAwMzQ4MywgMC4wMDM0ODIsIDAuMDAzNDgyIiwgXAotICAgICAgICAgICIwLjAwMzY5OCwgMC4wMDM2OTgsIDAuMDAzNjk1LCAwLjAwMzY5NSwgMC4wMDM2ODMsIDAuMDAzNjk1LCAwLjAwMzY5NCIsIFwKLSAgICAgICAgICAiMC4wMDM4ODUsIDAuMDAzODkxLCAwLjAwMzg5MSwgMC4wMDM4OSwgMC4wMDM4ODksIDAuMDAzODg5LCAwLjAwMzg4OCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjkzMywgMC4wMDI5MzcsIDAuMDAyOTQyLCAwLjAwMjk0MywgMC4wMDI5NDQsIDAuMDAyOTQ0LCAwLjAwMjk0NCIsIFwKLSAgICAgICAgICAiMC4wMDI5MzYsIDAuMDAyOTQ0LCAwLjAwMjk1NCwgMC4wMDI5NTYsIDAuMDAyOTU4LCAwLjAwMjk1OCwgMC4wMDI5NTkiLCBcCi0gICAgICAgICAgIjAuMDAzMDExLCAwLjAwMzAyMSwgMC4wMDMwMzUsIDAuMDAzMDM4LCAwLjAwMzA0LCAwLjAwMzA0MSwgMC4wMDMwNDEiLCBcCi0gICAgICAgICAgIjAuMDAzMTA3LCAwLjAwMzExOCwgMC4wMDMxMzQsIDAuMDAzMTM4LCAwLjAwMzE0LCAwLjAwMzE0MiwgMC4wMDMxNDIiLCBcCi0gICAgICAgICAgIjAuMDAzMjIxLCAwLjAwMzI0LCAwLjAwMzI1OCwgMC4wMDMyNjIsIDAuMDAzMjY0LCAwLjAwMzI2NiwgMC4wMDMyNjYiLCBcCi0gICAgICAgICAgIjAuMDAzNDI0LCAwLjAwMzQzNiwgMC4wMDM0NTUsIDAuMDAzNDU5LCAwLjAwMzQ2MSwgMC4wMDM0NzMsIDAuMDAzNDY0IiwgXAotICAgICAgICAgICIwLjAwMzYyMiwgMC4wMDM2MjUsIDAuMDAzNjQ0LCAwLjAwMzY0OSwgMC4wMDM2NTEsIDAuMDAzNjYxLCAwLjAwMzY1NCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjU2NSwgMC4wMDI1NjcsIDAuMDAyNTY5LCAwLjAwMjU2OSwgMC4wMDI1NjksIDAuMDAyNTcsIDAuMDAyNTY5IiwgXAotICAgICAgICAgICIwLjAwMjU2MywgMC4wMDI1NjUsIDAuMDAyNTY4LCAwLjAwMjU2OCwgMC4wMDI1NjksIDAuMDAyNTY5LCAwLjAwMjU2OSIsIFwKLSAgICAgICAgICAiMC4wMDI1OTYsIDAuMDAyNTg4LCAwLjAwMjU3OSwgMC4wMDI1NzYsIDAuMDAyNTczLCAwLjAwMjU3MiwgMC4wMDI1NzMiLCBcCi0gICAgICAgICAgIjAuMDAyNjA0LCAwLjAwMjYyNywgMC4wMDI1OTMsIDAuMDAyNTg4LCAwLjAwMjU4MSwgMC4wMDI1NzYsIDAuMDAyNTc1IiwgXAotICAgICAgICAgICIwLjAwMjY1NiwgMC4wMDI2NzUsIDAuMDAyNjE0LCAwLjAwMjYwMiwgMC4wMDI1OTIsIDAuMDAyNTgzLCAwLjAwMjU3OSIsIFwKLSAgICAgICAgICAiMC4wMDI3NjMsIDAuMDAyNzY4LCAwLjAwMjY1NCwgMC4wMDI2MjcsIDAuMDAyNjEzLCAwLjAwMjU5NywgMC4wMDI1OSIsIFwKLSAgICAgICAgICAiMC4wMDI4OTYsIDAuMDAyODcxLCAwLjAwMjY5OSwgMC4wMDI2NTksIDAuMDAyNjM1LCAwLjAwMjYxMywgMC4wMDI2MDUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDA1NjgsIDAuMDAwNTcyLCAwLjAwMDU3OCwgMC4wMDA1NzksIDAuMDAwNTgsIDAuMDAwNTgsIDAuMDAwNTgiLCBcCi0gICAgICAgICAgIjAuMDAwNTI4LCAwLjAwMDU0MywgMC4wMDA1NjYsIDAuMDAwNTcyLCAwLjAwMDU3NSwgMC4wMDA1NzcsIDAuMDAwNTc4IiwgXAotICAgICAgICAgICIwLjAwMDUwOSwgMC4wMDA1MjQsIDAuMDAwNTU2LCAwLjAwMDU2NSwgMC4wMDA1NywgMC4wMDA1NzQsIDAuMDAwNTc1IiwgXAotICAgICAgICAgICIwLjAwMDUxNywgMC4wMDA1MjYsIDAuMDAwNTUzLCAwLjAwMDU2MiwgMC4wMDA1NjcsIDAuMDAwNTczLCAwLjAwMDU3NCIsIFwKLSAgICAgICAgICAiMC4wMDA1NDYsIDAuMDAwNTQ0LCAwLjAwMDU1NiwgMC4wMDA1NjMsIDAuMDAwNTY4LCAwLjAwMDU3MywgMC4wMDA1NzQiLCBcCi0gICAgICAgICAgIjAuMDAwNjI0LCAwLjAwMDU5OCwgMC4wMDA1NzQsIDAuMDAwNTczLCAwLjAwMDU3NCwgMC4wMDA1NzYsIDAuMDAwNTc3IiwgXAotICAgICAgICAgICIwLjAwMDcwOSwgMC4wMDA2NTgsIDAuMDAwNiwgMC4wMDA1ODksIDAuMDAwNTg1LCAwLjAwMDU4MiwgMC4wMDA1ODIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDIwNzIsIDAuMDAyMDc1LCAwLjAwMjA4LCAwLjAwMjA4LCAwLjAwMjA4MSwgMC4wMDIwODEsIDAuMDAyMDgxIiwgXAotICAgICAgICAgICIwLjAwMjA3MiwgMC4wMDIwNzgsIDAuMDAyMDg3LCAwLjAwMjA5LCAwLjAwMjA5LCAwLjAwMjA5MSwgMC4wMDIwOTEiLCBcCi0gICAgICAgICAgIjAuMDAyMDk0LCAwLjAwMjA5MywgMC4wMDIwOTMsIDAuMDAyMDk0LCAwLjAwMjA5NiwgMC4wMDIwOTcsIDAuMDAyMDk3IiwgXAotICAgICAgICAgICIwLjAwMjEzMywgMC4wMDIxMjEsIDAuMDAyMTA2LCAwLjAwMjEwMiwgMC4wMDIxLCAwLjAwMjEsIDAuMDAyMDk5IiwgXAotICAgICAgICAgICIwLjAwMjE4NSwgMC4wMDIxNTgsIDAuMDAyMTIxLCAwLjAwMjExNCwgMC4wMDIxMDgsIDAuMDAyMTAzLCAwLjAwMjEwMyIsIFwKLSAgICAgICAgICAiMC4wMDIzMTQsIDAuMDAyMjUxLCAwLjAwMjE1OSwgMC4wMDIxNCwgMC4wMDIxMjksIDAuMDAyMTE2LCAwLjAwMjExMiIsIFwKLSAgICAgICAgICAiMC4wMDIzOTYsIDAuMDAyMzU2LCAwLjAwMjIwNCwgMC4wMDIxNjgsIDAuMDAyMTUsIDAuMDAyMTMxLCAwLjAwMjEyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDU2NSwgMC4wMDA1NywgMC4wMDA1NzcsIDAuMDAwNTc5LCAwLjAwMDU3OSwgMC4wMDA1OCwgMC4wMDA1OCIsIFwKLSAgICAgICAgICAiMC4wMDA1MzQsIDAuMDAwNTQ2LCAwLjAwMDU2NywgMC4wMDA1NzIsIDAuMDAwNTc1LCAwLjAwMDU3NywgMC4wMDA1NzgiLCBcCi0gICAgICAgICAgIjAuMDAwNTM4LCAwLjAwMDU0NSwgMC4wMDA1NjQsIDAuMDAwNTcsIDAuMDAwNTczLCAwLjAwMDU3NiwgMC4wMDA1NzciLCBcCi0gICAgICAgICAgIjAuMDAwNTgxLCAwLjAwMDU3MywgMC4wMDA1NzIsIDAuMDAwNTc1LCAwLjAwMDU3NiwgMC4wMDA1NzgsIDAuMDAwNTc4IiwgXAotICAgICAgICAgICIwLjAwMDYzOCwgMC4wMDA2MTYsIDAuMDAwNTg4LCAwLjAwMDU4NCwgMC4wMDA1ODMsIDAuMDAwNTgyLCAwLjAwMDU4MSIsIFwKLSAgICAgICAgICAiMC4wMDA3NiwgMC4wMDA3MDgsIDAuMDAwNjMsIDAuMDAwNjEyLCAwLjAwMDYwMSwgMC4wMDA1OTMsIDAuMDAwNTkiLCBcCi0gICAgICAgICAgIjAuMDAwODgyLCAwLjAwMDgwMSwgMC4wMDA2NzIsIDAuMDAwNjM5LCAwLjAwMDYyLCAwLjAwMDYwNywgMC4wMDA2MDIiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBOQU5EM1g4ICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKE5BTkQzWDgpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMi4xMTA2OTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDA2OTU0MTQ7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDA2OTU0MTQ7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDA2OTM5NTE7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA0MTY4LCAwLjAwNDE2NSwgMC4wMDQxNjIsIDAuMDA0MTYyLCAwLjAwNDE2MiwgMC4wMDQxNjEsIDAuMDA0MTYxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA0MTcsIDAuMDA0MTc1LCAwLjAwNDE3OSwgMC4wMDQxNzksIDAuMDA0MTc2LCAwLjAwNDE3NywgMC4wMDQxNzgiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwNzE2MDU3OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwNzE2MDU3OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwNzE1MTA1OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNDE2OSwgMC4wMDQxNjUsIDAuMDA0MTYyLCAwLjAwNDE2MSwgMC4wMDQxNjIsIDAuMDA0MTYsIDAuMDA0MTYxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA0MTcyLCAwLjAwNDE3NCwgMC4wMDQxNzcsIDAuMDA0MTc4LCAwLjAwNDE4LCAwLjAwNDE4MSwgMC4wMDQxODEiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEMpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwNjk1MzkyOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwNjk1MDg1OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwNjk1MzkyOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjQ4NCwgMC4wMDI0NzksIDAuMDAyNDc5LCAwLjAwMjQ3NiwgMC4wMDI0NzcsIDAuMDAyNDc3LCAwLjAwMjQ3NyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNDczLCAwLjAwNDczMywgMC4wMDQ3MzUsIDAuMDA0NzM1LCAwLjAwNDczNCwgMC4wMDQ3MzQsIDAuMDA0NzM0Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDEuMDk4ODk7Ci0gICAgZnVuY3Rpb24gOiAiKCEoKEEgQikgQykpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMjc2NiwgMC4wNDEzNzgsIDAuMDY5NTc2LCAwLjA4OTcsIDAuMTIxODY5LCAwLjE0OTk5LCAwLjE5MDEwNyIsIFwKLSAgICAgICAgICAiMC4wMjA4NDYsIDAuMDQ5NjgxLCAwLjA3Nzg4MywgMC4wOTc5ODEsIDAuMTMwMTY3LCAwLjE1ODI2MywgMC4xOTg0MjQiLCBcCi0gICAgICAgICAgIjAuMDI3NDk1LCAwLjA2MDE0NywgMC4wODgyNjQsIDAuMTA4MzQ4LCAwLjE0MDQ4OSwgMC4xNjg1OTYsIDAuMjA4NzY0IiwgXAotICAgICAgICAgICIwLjAzMjA0OSwgMC4wNzA2OTEsIDAuMDk4ODg2LCAwLjExODk0MiwgMC4xNTEwMzgsIDAuMTc5MTU4LCAwLjIxOTMzMiIsIFwKLSAgICAgICAgICAiMC4wMzU1MDIsIDAuMDc5MzM4LCAwLjEwOTMwOSwgMC4xMjkyOTYsIDAuMTYxMzI3LCAwLjE4OTM2LCAwLjIyOTQ4MiIsIFwKLSAgICAgICAgICAiMC4wNDAwMDUsIDAuMDkxMDYzLCAwLjEyNTcwMiwgMC4xNDY0MDIsIDAuMTc4MzM1LCAwLjIwNjQxLCAwLjI0NjQyOSIsIFwKLSAgICAgICAgICAiMC4wNDMwNTksIDAuMTAwMDEyLCAwLjEzNzgxMSwgMC4xNjA2OTIsIDAuMTkzMzA4LCAwLjIyMTE4OSwgMC4yNjEyNjUiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTk4NSwgMC4wNzkyMzMsIDAuMTM4NjI1LCAwLjE4MTEwMSwgMC4yNDkxNDMsIDAuMzA4NjI1LCAwLjM5MzQ3MSIsIFwKLSAgICAgICAgICAiMC4wMjUzNjEsIDAuMDgwMzI3LCAwLjEzODcyOCwgMC4xODExMDEsIDAuMjQ5MDUzLCAwLjMwODUxLCAwLjM5MzQ4NSIsIFwKLSAgICAgICAgICAiMC4wMzQzODMsIDAuMDg2MzkxLCAwLjE0MTk5LCAwLjE4Mjg0NiwgMC4yNDk1MDEsIDAuMzA4NTkxLCAwLjM5MzQ2NSIsIFwKLSAgICAgICAgICAiMC4wNDE4ODUsIDAuMDk0NjYyLCAwLjE0Nzk3OCwgMC4xODc1NzMsIDAuMjUyNTMyLCAwLjMxMDI5NiwgMC4zOTQwMzQiLCBcCi0gICAgICAgICAgIjAuMDQ4ODY1LCAwLjEwNDI1LCAwLjE1NTc2MSwgMC4xOTQyMTUsIDAuMjU3NTEsIDAuMzE0MTYyLCAwLjM5NjMzOCIsIFwKLSAgICAgICAgICAiMC4wNTg0NzIsIDAuMTE5NTkxLCAwLjE2OTI3MiwgMC4yMDY0MTMsIDAuMjY3NjgzLCAwLjMyMjgyMiwgMC40MDMwNTkiLCBcCi0gICAgICAgICAgIjAuMDY2NDIyLCAwLjEzMTQ2MywgMC4xODI1MzYsIDAuMjE4NDQ1LCAwLjI3ODMyMSwgMC4zMzIxNDcsIDAuNDEwOTIiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjc1NjUsIDAuMDk3MDY1LCAwLjE2NjE0NCwgMC4yMTU1MTQsIDAuMjk0NDU3LCAwLjM2MzYsIDAuNDYyNDI5IiwgXAotICAgICAgICAgICIwLjAzMjc0NSwgMC4xMDI1MDcsIDAuMTcxNzA4LCAwLjIyMTA5LCAwLjMwMDA4MSwgMC4zNjk0OTQsIDAuNDY3ODMiLCBcCi0gICAgICAgICAgIjAuMDM4Mjg2LCAwLjEwODUyOCwgMC4xNzc4ODIsIDAuMjI3MjY2LCAwLjMwNjQwOCwgMC4zNzU0OTksIDAuNDc0MjQ5IiwgXAotICAgICAgICAgICIwLjA0Mjc1MSwgMC4xMTQ2MDksIDAuMTgzOTc5LCAwLjIzMzQzMywgMC4zMTI2NiwgMC4zODE1MzksIDAuNDgwMzM0IiwgXAotICAgICAgICAgICIwLjA0NjcxLCAwLjEyMDkxMiwgMC4xOTAxNjMsIDAuMjM5NTI4LCAwLjMxODU4NSwgMC4zODc5MDcsIDAuNDg2NTQzIiwgXAotICAgICAgICAgICIwLjA1MTk1NSwgMC4xMzA5ODgsIDAuMjAwMTY0LCAwLjI0OTYyOSwgMC4zMjg2OTgsIDAuMzk3ODYzLCAwLjQ5NjU3OCIsIFwKLSAgICAgICAgICAiMC4wNTYxMzcsIDAuMTM5MDkyLCAwLjIwODk3NiwgMC4yNTgzODMsIDAuMzM3NDg4LCAwLjQwNjY5NCwgMC41MDUzMzkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDE3LCAwLjE4Mzg4NywgMC4zMjYxMzgsIDAuNDI4MDAxLCAwLjU5MTA3OSwgMC43MzI2MzUsIDAuOTM1ODUyIiwgXAotICAgICAgICAgICIwLjA0MjU4NiwgMC4xODM4NjYsIDAuMzI2NjI3LCAwLjQyODQxNCwgMC41OTEyNzEsIDAuNzMyNjQ1LCAwLjkzNzMwNSIsIFwKLSAgICAgICAgICAiMC4wNDYyOTQsIDAuMTg0NjIzLCAwLjMyNjgyMSwgMC40Mjc5MzksIDAuNTkwMzYyLCAwLjczNDIyOCwgMC45MzU3NTkiLCBcCi0gICAgICAgICAgIjAuMDUxNTQ2LCAwLjE4NjkxLCAwLjMyNjk2MywgMC40Mjg5MzYsIDAuNTkwMzI4LCAwLjczMzczNywgMC45Mzc4NjUiLCBcCi0gICAgICAgICAgIjAuMDU2NDUsIDAuMTg5NzQ3LCAwLjMyOTExMiwgMC40MjkwOSwgMC41OTA3NTYsIDAuNzMyNjIzLCAwLjkzNjE2IiwgXAotICAgICAgICAgICIwLjA2NDcyMSwgMC4xOTU5NTcsIDAuMzMyNjkzLCAwLjQzMjMyNywgMC41OTIxOTMsIDAuNzM0NjI0LCAwLjkzNzQzMiIsIFwKLSAgICAgICAgICAiMC4wNzEzMDcsIDAuMjAyNTIyLCAwLjMzNjk4NywgMC40MzU1OSwgMC41OTU2MDUsIDAuNzM2NDY4LCAwLjkzODI5NCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMTczNiwgMC4wMzk0OSwgMC4wNjcwODQsIDAuMDg2NzgsIDAuMTE4MzU2LCAwLjE0NTk0NSwgMC4xODUzNjYiLCBcCi0gICAgICAgICAgIjAuMDE5NDA0LCAwLjA0Nzc3MSwgMC4wNzUzODQsIDAuMDk1MTAzLCAwLjEyNjYzMiwgMC4xNTQxNzksIDAuMTkzNTc2IiwgXAotICAgICAgICAgICIwLjAyNTI1NiwgMC4wNTgzODcsIDAuMDg1OTA5LCAwLjEwNTU4NCwgMC4xMzcxMTksIDAuMTY0NzEzLCAwLjIwNDE1NSIsIFwKLSAgICAgICAgICAiMC4wMjk0OTQsIDAuMDY4ODQ3LCAwLjA5NjAzOCwgMC4xMTU2NTgsIDAuMTQ3MTM5LCAwLjE3NDYzOCwgMC4yMTQwNDMiLCBcCi0gICAgICAgICAgIjAuMDMyNTE5LCAwLjA3NzY5MywgMC4xMDY2OTgsIDAuMTI2MjYxLCAwLjE1NzYzOCwgMC4xODUxNDgsIDAuMjI0NDU0IiwgXAotICAgICAgICAgICIwLjAzNTk0LCAwLjA4ODkwMywgMC4xMjI3ODEsIDAuMTQzMzUxLCAwLjE3NDU5NywgMC4yMDIwNjIsIDAuMjQxMzU5IiwgXAotICAgICAgICAgICIwLjAzODU4OCwgMC4wOTcxNzUsIDAuMTM0NjEyLCAwLjE1NzQyNCwgMC4xODk2NDcsIDAuMjE2OTYsIDAuMjU2MjY3Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE3ODIyLCAwLjA3NTk5NSwgMC4xMzQyODcsIDAuMTc1ODUsIDAuMjQyNTMzLCAwLjMwMDgwMiwgMC4zODQwNDYiLCBcCi0gICAgICAgICAgIjAuMDIzNzk4LCAwLjA3NzI2MywgMC4xMzQyOTgsIDAuMTc1OTA5LCAwLjI0MjUyNSwgMC4zMDA2ODUsIDAuMzgzODg2IiwgXAotICAgICAgICAgICIwLjAzMjgyOCwgMC4wODM0NDEsIDAuMTM3NzEyLCAwLjE3NzcxOCwgMC4yNDI4MTcsIDAuMzAwNzYsIDAuMzgzOTg1IiwgXAotICAgICAgICAgICIwLjAzOTg4OCwgMC4wOTE1ODQsIDAuMTQ0Mjg2LCAwLjE4MjkyMiwgMC4yNDYzMDEsIDAuMzAyNzM5LCAwLjM4NDMzIiwgXAotICAgICAgICAgICIwLjA0NjU3NiwgMC4xMDA4NywgMC4xNTIwNTMsIDAuMTg5NTcxLCAwLjI1MTQwMiwgMC4zMDY2NTYsIDAuMzg3MDUyIiwgXAotICAgICAgICAgICIwLjA1NjQwNSwgMC4xMTYxNzUsIDAuMTY1OTk0LCAwLjIwMjA4NiwgMC4yNjE4MzYsIDAuMzE1NTk1LCAwLjM5Mzk4OSIsIFwKLSAgICAgICAgICAiMC4wNjQyOTcsIDAuMTI4OTA0LCAwLjE3OTA1NCwgMC4yMTQxMzYsIDAuMjcyNiwgMC4zMjUwMDEsIDAuNDAxOTM4Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDI1Nzk2LCAwLjA5NTE5OSwgMC4xNjQzNzgsIDAuMjEzOTA0LCAwLjI5MjU4MiwgMC4zNjIwODMsIDAuNDYwNDk1IiwgXAotICAgICAgICAgICIwLjAzMTk0OSwgMC4xMDE2NjIsIDAuMTcwODg0LCAwLjIyMDI2NywgMC4yOTkyNzEsIDAuMzY4NDMxLCAwLjQ2NzA3MyIsIFwKLSAgICAgICAgICAiMC4wMzk0MDUsIDAuMTA5ODA3LCAwLjE3OTI2MywgMC4yMjg3MzEsIDAuMzA3NzgsIDAuMzc2NzIxLCAwLjQ3NTQ2OCIsIFwKLSAgICAgICAgICAiMC4wNDUyNzQsIDAuMTE4MjQ2LCAwLjE4NzQ4MiwgMC4yMzcwMDQsIDAuMzE2MDQsIDAuMzg1MjQ4LCAwLjQ4NDAxOSIsIFwKLSAgICAgICAgICAiMC4wNTAzNzMsIDAuMTI2NzcyLCAwLjE5NTg4MSwgMC4yNDUzNTMsIDAuMzI0MzM3LCAwLjM5MzQzNywgMC40OTIzNSIsIFwKLSAgICAgICAgICAiMC4wNTcyLCAwLjE0MDMzNiwgMC4yMDkzODksIDAuMjU4ODI0LCAwLjMzNzk3OCwgMC40MDY5NDksIDAuNTA1NTQiLCBcCi0gICAgICAgICAgIjAuMDYyNTM1LCAwLjE1MTU0NiwgMC4yMjEyNTMsIDAuMjcwNzIsIDAuMzQ5NDc1LCAwLjQxODU2MywgMC41MTc2MzQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDE2OTIsIDAuMTg0MDY5LCAwLjMyNjMxNSwgMC40Mjc5MzIsIDAuNTkxMjYzLCAwLjczMjg2MSwgMC45MzU4MzkiLCBcCi0gICAgICAgICAgIjAuMDQzMzc3LCAwLjE4NDEzMSwgMC4zMjYxODQsIDAuNDI3ODQ0LCAwLjU5MTI2LCAwLjczNDE5MiwgMC45MzczNDgiLCBcCi0gICAgICAgICAgIjAuMDQ5MzQ1LCAwLjE4NTE5NSwgMC4zMjYwOTUsIDAuNDI3NzIxLCAwLjU5MDMzNCwgMC43MzM3NjksIDAuOTM3ODYiLCBcCi0gICAgICAgICAgIjAuMDU2MTI3LCAwLjE4ODExMywgMC4zMjc2MzQsIDAuNDI4NjEzLCAwLjU5MDUxMSwgMC43MzI1NjIsIDAuOTM1OTcxIiwgXAotICAgICAgICAgICIwLjA2MjM4OSwgMC4xOTI2OSwgMC4zMjk5ODgsIDAuNDI5OTM4LCAwLjU5MTQzLCAwLjczMjgzLCAwLjkzNzkwNyIsIFwKLSAgICAgICAgICAiMC4wNzEzNywgMC4yMDEyNzUsIDAuMzM1MzYzLCAwLjQzMzc3NywgMC41OTM1MzEsIDAuNzM0NDk5LCAwLjkzNzg1NyIsIFwKLSAgICAgICAgICAiMC4wNzg1NjMsIDAuMjA5ODUzLCAwLjM0MTUzOSwgMC40Mzg2MjgsIDAuNTk2NDksIDAuNzM2NjEyLCAwLjkzODI1MyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMDY2NSwgMC4wMzg0NjgsIDAuMDY2MjAyLCAwLjA4NTk4NywgMC4xMTc2MTYsIDAuMTQ1Mzk3LCAwLjE4NDg5MiIsIFwKLSAgICAgICAgICAiMC4wMTgwNDEsIDAuMDQ2ODA5LCAwLjA3NDUzMSwgMC4wOTQzNSwgMC4xMjU5OTQsIDAuMTUzNzE5LCAwLjE5MzI3NyIsIFwKLSAgICAgICAgICAiMC4wMjMzMTYsIDAuMDU3MTY3LCAwLjA4NDc5OSwgMC4xMDQ1NzMsIDAuMTM2MjQ3LCAwLjE2MzcyMiwgMC4yMDM1NiIsIFwKLSAgICAgICAgICAiMC4wMjY4NSwgMC4wNjc1NDMsIDAuMDk1NTQ3LCAwLjExNTMxMywgMC4xNDY5NDcsIDAuMTc0NjY0LCAwLjIxNDMwMiIsIFwKLSAgICAgICAgICAiMC4wMjk0MzksIDAuMDc1NjE3LCAwLjEwNTkwMywgMC4xMjU1ODIsIDAuMTU3MTMxLCAwLjE4NDc0NiwgMC4yMjQzMDYiLCBcCi0gICAgICAgICAgIjAuMDMyNDE5LCAwLjA4NjY5LCAwLjEyMTc5MiwgMC4xNDI2MjcsIDAuMTc0MTU0LCAwLjIwMTc1MiwgMC4yNDExNzciLCBcCi0gICAgICAgICAgIjAuMDM0MzkxLCAwLjA5NTAyNywgMC4xMzM0MTEsIDAuMTU2NDk1LCAwLjE4OTAwMywgMC4yMTY1OCwgMC4yNTU5OTMiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTY1ODYsIDAuMDc1NjYyLCAwLjEzNDY1MywgMC4xNzY5NjksIDAuMjQ0Mjg1LCAwLjMwMzY1NiwgMC4zODc2OTQiLCBcCi0gICAgICAgICAgIjAuMDIyODM5LCAwLjA3NjkxNiwgMC4xMzQ5MTUsIDAuMTc2OTA5LCAwLjI0NDUwNiwgMC4zMDM0ODUsIDAuMzg3ODg4IiwgXAotICAgICAgICAgICIwLjAzMTU2NCwgMC4wODMzMjUsIDAuMTM4MzEsIDAuMTc4ODgzLCAwLjI0NDc2OCwgMC4zMDM0NTksIDAuMzg3ODMiLCBcCi0gICAgICAgICAgIjAuMDM4NzI3LCAwLjA5MTQyMSwgMC4xNDQzMzksIDAuMTgzNzQ4LCAwLjI0ODQwNSwgMC4zMDUyODYsIDAuMzg4Mzk5IiwgXAotICAgICAgICAgICIwLjA0NTIzMiwgMC4xMDEzMTksIDAuMTUyMywgMC4xOTA1MDMsIDAuMjUzNTQ2LCAwLjMwOTc2NCwgMC4zOTExNTMiLCBcCi0gICAgICAgICAgIjAuMDU0ODM1LCAwLjExNjk0NiwgMC4xNjYxNSwgMC4yMDI4NCwgMC4yNjM3NDIsIDAuMzE4Mzg3LCAwLjM5ODE5MyIsIFwKLSAgICAgICAgICAiMC4wNjI1MjYsIDAuMTI4ODU5LCAwLjE3OTM3MywgMC4yMTQ4NjMsIDAuMjc0MzYsIDAuMzI3ODM0LCAwLjQwNjA0NyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyMjYxOSwgMC4wOTIwNjMsIDAuMTYxMTcyLCAwLjIxMDYwNiwgMC4yODk2MywgMC4zNTg2NSwgMC40NTczMzgiLCBcCi0gICAgICAgICAgIjAuMDI5NjYzLCAwLjA5OTExNCwgMC4xNjgzMTEsIDAuMjE3Njc4LCAwLjI5NjcyNywgMC4zNjU3OTcsIDAuNDY0NTkxIiwgXAotICAgICAgICAgICIwLjAzODQzOSwgMC4xMDgyMTUsIDAuMTc2NjkyLCAwLjIyNjc2LCAwLjMwNTY5OSwgMC4zNzQ5MzQsIDAuNDczNTgyIiwgXAotICAgICAgICAgICIwLjA0NTM3NiwgMC4xMTc4MjMsIDAuMTg2ODE0LCAwLjIzNjE3LCAwLjMxNTA5LCAwLjM4NDI5NywgMC40ODMwNjYiLCBcCi0gICAgICAgICAgIjAuMDUwOTI0LCAwLjEyNzQxNiwgMC4xOTYxODYsIDAuMjQ1NDM0LCAwLjMyNDM0NywgMC4zOTMyOTEsIDAuNDkyMjAzIiwgXAotICAgICAgICAgICIwLjA1ODY0MywgMC4xNDMxMTcsIDAuMjExMjUsIDAuMjYwMzk3LCAwLjMzOTA3OSwgMC40MDgwMTEsIDAuNTA0ODQiLCBcCi0gICAgICAgICAgIjAuMDY0NzQ1LCAwLjE1NjEwMiwgMC4yMjQ5MzEsIDAuMjczODI4LCAwLjM1MjQxOCwgMC40MjEyMDEsIDAuNTE5NzYzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQxNjIxLCAwLjE4NDI0LCAwLjMyNjQ0NSwgMC40Mjc3ODEsIDAuNTkwNDQzLCAwLjczMjU3MiwgMC45MzU4ODMiLCBcCi0gICAgICAgICAgIjAuMDQ0MzE1LCAwLjE4NDExNywgMC4zMjY2MTYsIDAuNDI3ODU4LCAwLjU5MTYwOCwgMC43MzM3ODIsIDAuOTM1ODM5IiwgXAotICAgICAgICAgICIwLjA1MjA5MiwgMC4xODU1NzYsIDAuMzI2MTQ2LCAwLjQyNzg1OCwgMC41OTEyNDIsIDAuNzMyNjMzLCAwLjkzNzkwMiIsIFwKLSAgICAgICAgICAiMC4wNjAwOTUsIDAuMTg5NDY2LCAwLjMyNzI0LCAwLjQyODU0LCAwLjU5MTI0NiwgMC43MzI2MTYsIDAuOTM1ODk2IiwgXAotICAgICAgICAgICIwLjA2NjYxNiwgMC4xOTU0MjcsIDAuMzMwNDkyLCAwLjQzMDI1NiwgMC41OTE0MDQsIDAuNzMzMTU5LCAwLjkzNTg3NiIsIFwKLSAgICAgICAgICAiMC4wNzYwNTksIDAuMjA2NzE3LCAwLjMzODU1MywgMC40MzU2OTEsIDAuNTk0MTIzLCAwLjczMzU4NiwgMC45MzcyOTkiLCBcCi0gICAgICAgICAgIjAuMDgzNjAzLCAwLjIxNzE3MywgMC4zNDY1OTEsIDAuNDQyMzg1LCAwLjU5NzYzMiwgMC43Mzc0NzcsIDAuOTM3MTIxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjM4NDQsIDAuMDIzODg0LCAwLjAyMzg5LCAwLjAyMzg5MywgMC4wMjM4OTQsIDAuMDIzODk2LCAwLjAyMzg5NiIsIFwKLSAgICAgICAgICAiMC4wMjM3MTcsIDAuMDIzNzcsIDAuMDIzNzgzLCAwLjAyMzc5LCAwLjAyMzc5MSwgMC4wMjM3OTUsIDAuMDIzNzk5IiwgXAotICAgICAgICAgICIwLjAyNDA5LCAwLjAyMzk1LCAwLjAyMzg5NSwgMC4wMjM4NzgsIDAuMDIzODU3LCAwLjAyMzg0MSwgMC4wMjM4MzQiLCBcCi0gICAgICAgICAgIjAuMDI0Nzg3LCAwLjAyNDQ0OCwgMC4wMjQyMTgsIDAuMDI0MTM5LCAwLjAyNDA2MiwgMC4wMjQwMjMsIDAuMDIzOTgyIiwgXAotICAgICAgICAgICIwLjAyNTc4NSwgMC4wMjQ4NjQsIDAuMDI0NDk1LCAwLjAyNDM1MywgMC4wMjQyMjMsIDAuMDI0MTM4LCAwLjAyNDA5MiIsIFwKLSAgICAgICAgICAiMC4wMjc0MTgsIDAuMDI1ODMyLCAwLjAyNTA5NCwgMC4wMjQ4NTcsIDAuMDI0NjEsIDAuMDI0NDc5LCAwLjAyNDM1NyIsIFwKLSAgICAgICAgICAiMC4wMjkwMjUsIDAuMDI2NDQ1LCAwLjAyNTgyNSwgMC4wMjU0NTQsIDAuMDI1MDk2LCAwLjAyNDg4LCAwLjAyNDY4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDMyNTgsIDAuMDAzNTQyLCAwLjAwMzU4NiwgMC4wMDM2LCAwLjAwMzYxMiwgMC4wMDM2MTksIDAuMDAzNjI0IiwgXAotICAgICAgICAgICIwLjAwMjY0MywgMC4wMDMyMTIsIDAuMDAzMzczLCAwLjAwMzQzMSwgMC4wMDM0ODYsIDAuMDAzNTE1LCAwLjAwMzU0MiIsIFwKLSAgICAgICAgICAiMC4wMDI1NDgsIDAuMDAyOTg4LCAwLjAwMzE5NSwgMC4wMDMyNzcsIDAuMDAzMzYyLCAwLjAwMzQxLCAwLjAwMzQ1NiIsIFwKLSAgICAgICAgICAiMC4wMDI3NTEsIDAuMDAyOTQ1LCAwLjAwMzEyMiwgMC4wMDMyMDQsIDAuMDAzMjk1LCAwLjAwMzM0OSwgMC4wMDM0MDMiLCBcCi0gICAgICAgICAgIjAuMDAzMTU4LCAwLjAwMzA0MiwgMC4wMDMxNDUsIDAuMDAzMjA2LCAwLjAwMzI4NCwgMC4wMDMzMzYsIDAuMDAzMzg1IiwgXAotICAgICAgICAgICIwLjAwNDE2NiwgMC4wMDM0NDYsIDAuMDAzMzY1LCAwLjAwMzM2OSwgMC4wMDMzOTEsIDAuMDAzNDE0LCAwLjAwMzQ0MSIsIFwKLSAgICAgICAgICAiMC4wMDUyODksIDAuMDAzOTc2LCAwLjAwMzcwNSwgMC4wMDM2NCwgMC4wMDM1OTQsIDAuMDAzNTc0LCAwLjAwMzU2NyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE5NjkyLCAwLjAxOTc5NiwgMC4wMTk4MTIsIDAuMDE5ODE1LCAwLjAxOTgxOSwgMC4wMTk4MjQsIDAuMDE5ODIzIiwgXAotICAgICAgICAgICIwLjAxOTU2NSwgMC4wMTk3MjgsIDAuMDE5NzY5LCAwLjAxOTc4MSwgMC4wMTk3OTYsIDAuMDE5ODA0LCAwLjAxOTgxMiIsIFwKLSAgICAgICAgICAiMC4wMjAwMzQsIDAuMDE5ODIzLCAwLjAxOTgyNiwgMC4wMTk4MjUsIDAuMDE5ODI5LCAwLjAxOTgyNywgMC4wMTk4MjgiLCBcCi0gICAgICAgICAgIjAuMDIwNTk1LCAwLjAyMDA1OSwgMC4wMjAyLCAwLjAyMDEyOCwgMC4wMjAwNjYsIDAuMDIwMDMyLCAwLjAxOTk5NiIsIFwKLSAgICAgICAgICAiMC4wMjE1NjUsIDAuMDIwNDMsIDAuMDIwNTI2LCAwLjAyMDM4NywgMC4wMjAyNjgsIDAuMDIwMTg5LCAwLjAyMDEyNCIsIFwKLSAgICAgICAgICAiMC4wMjMwMzIsIDAuMDIxMjI2LCAwLjAyMTE1MywgMC4wMjA5MTIsIDAuMDIwNjY0LCAwLjAyMDUzLCAwLjAyMDQxMiIsIFwKLSAgICAgICAgICAiMC4wMjQ1MTgsIDAuMDIyMTUzLCAwLjAyMTgyNSwgMC4wMjE0NTksIDAuMDIxMTEyLCAwLjAyMDkwNCwgMC4wMjA3MTIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzIzNiwgMC4wMDM1MTYsIDAuMDAzNTU5LCAwLjAwMzU3MywgMC4wMDM1ODYsIDAuMDAzNTkyLCAwLjAwMzU5OCIsIFwKLSAgICAgICAgICAiMC4wMDI2NjUsIDAuMDAzMTk3LCAwLjAwMzM1MywgMC4wMDM0MDksIDAuMDAzNDYyLCAwLjAwMzUwMSwgMC4wMDM1MTgiLCBcCi0gICAgICAgICAgIjAuMDAyNzEsIDAuMDAzMDI2LCAwLjAwMzIwNSwgMC4wMDMyOCwgMC4wMDMzNTYsIDAuMDAzNCwgMC4wMDM0NDMiLCBcCi0gICAgICAgICAgIjAuMDAzMTAxLCAwLjAwMzA1OSwgMC4wMDMxOCwgMC4wMDMyNDcsIDAuMDAzMzE4LCAwLjAwMzM2MiwgMC4wMDM0MDgiLCBcCi0gICAgICAgICAgIjAuMDAzNzE4LCAwLjAwMzI1MywgMC4wMDMyNjgsIDAuMDAzMjk4LCAwLjAwMzM0MiwgMC4wMDMzNzYsIDAuMDAzNDE2IiwgXAotICAgICAgICAgICIwLjAwNDkzMSwgMC4wMDM3NzYsIDAuMDAzNTc2LCAwLjAwMzUzNywgMC4wMDM1MTIsIDAuMDAzNTA1LCAwLjAwMzUwNiIsIFwKLSAgICAgICAgICAiMC4wMDYxODIsIDAuMDA0NDI4LCAwLjAwMzk5NiwgMC4wMDM4NTksIDAuMDAzNzQ0LCAwLjAwMzY5MiwgMC4wMDM2NTgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxNTQ3MSwgMC4wMTU3MTIsIDAuMDE1NzI3LCAwLjAxNTczOSwgMC4wMTU3NDksIDAuMDE1NzUyLCAwLjAxNTc2MiIsIFwKLSAgICAgICAgICAiMC4wMTUzMTMsIDAuMDE1NjUzLCAwLjAxNTcyNCwgMC4wMTU3NjQsIDAuMDE1NzkyLCAwLjAxNTgwMywgMC4wMTU4MjEiLCBcCi0gICAgICAgICAgIjAuMDE1NjksIDAuMDE1ODMsIDAuMDE1ODQ1LCAwLjAxNTg1OSwgMC4wMTU4NjEsIDAuMDE1ODU3LCAwLjAxNTg2NyIsIFwKLSAgICAgICAgICAiMC4wMTY0MjEsIDAuMDE1OTg3LCAwLjAxNTkyOSwgMC4wMTU5NTIsIDAuMDE1OTEzLCAwLjAxNTkwMywgMC4wMTU5MSIsIFwKLSAgICAgICAgICAiMC4wMTcyMDgsIDAuMDE2NTcyLCAwLjAxNjMyNCwgMC4wMTYyMzMsIDAuMDE2MTUzLCAwLjAxNjA5NCwgMC4wMTYwODEiLCBcCi0gICAgICAgICAgIjAuMDE4Nzk3LCAwLjAxNzQ1MywgMC4wMTY4ODYsIDAuMDE2Njk3LCAwLjAxNjUwMywgMC4wMTYzOTQsIDAuMDE2MzE4IiwgXAotICAgICAgICAgICIwLjAyMDI4NSwgMC4wMTc5MTcsIDAuMDE3NTQ4LCAwLjAxNzIzMiwgMC4wMTY5NDksIDAuMDE2NzczLCAwLjAxNjYxNCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzMTU4LCAwLjAwMzQ2NSwgMC4wMDM1MTMsIDAuMDAzNTI4LCAwLjAwMzU0MiwgMC4wMDM1NDksIDAuMDAzNTU1IiwgXAotICAgICAgICAgICIwLjAwMjgzMywgMC4wMDMyMDgsIDAuMDAzMzUxLCAwLjAwMzM5LCAwLjAwMzQzNiwgMC4wMDM0NjIsIDAuMDAzNDg1IiwgXAotICAgICAgICAgICIwLjAwMzM2MiwgMC4wMDMyNTQsIDAuMDAzMzIyLCAwLjAwMzM2NywgMC4wMDM0MSwgMC4wMDM0MzcsIDAuMDAzNDYzIiwgXAotICAgICAgICAgICIwLjAwNDEwNCwgMC4wMDM0MzQsIDAuMDAzNDA2LCAwLjAwMzQxNCwgMC4wMDM0MzEsIDAuMDAzNDQ4LCAwLjAwMzQ2NyIsIFwKLSAgICAgICAgICAiMC4wMDUxNjQsIDAuMDAzODc4LCAwLjAwMzY4OCwgMC4wMDM2MzIsIDAuMDAzNTksIDAuMDAzNTcyLCAwLjAwMzU2OSIsIFwKLSAgICAgICAgICAiMC4wMDY1NTksIDAuMDA0ODE0LCAwLjAwNDM0LCAwLjAwNDE2NywgMC4wMDQsIDAuMDAzOTEyLCAwLjAwMzgxMiIsIFwKLSAgICAgICAgICAiMC4wMDgwOSwgMC4wMDU3MTUsIDAuMDA0OTgxLCAwLjAwNDcxOSwgMC4wMDQ0MjksIDAuMDA0Mjc0LCAwLjAwNDE2OCIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBOQU5ENEJYMiAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoTkFORDRCWDIpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC43OTY5MTU7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEFOKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA1NjY2MTk7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNTY2NjE5OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDU2NjU4OTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDEwNDEsIDAuMDAxMDQyLCAwLjAwMTExNSwgMC4wMDEyMTcsIDAuMDAxMzMxLCAwLjAwMTU2LCAwLjAwMTc0NSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjI2NSwgMC4wMDIyNywgMC4wMDIzNDIsIDAuMDAyNDQ1LCAwLjAwMjU3LCAwLjAwMjgxOSwgMC4wMDI5NjciKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTY4NDY1OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTY4NDY1OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTY4MDc0OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTA0OSwgMC4wMDEwNDgsIDAuMDAxMDQ3LCAwLjAwMTA0NywgMC4wMDEwNDcsIDAuMDAxMDQ3LCAwLjAwMTA0NyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTA1LCAwLjAwMTA1LCAwLjAwMTA1MSwgMC4wMDEwNSwgMC4wMDEwNSwgMC4wMDEwNTEsIDAuMDAxMDUxIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihDKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE3MTYzNzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE3MTYzNzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE3MTI5NTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDEwNDksIDAuMDAxMDQ4LCAwLjAwMTA0OCwgMC4wMDEwNDcsIDAuMDAxMDQ3LCAwLjAwMTA0NywgMC4wMDEwNDciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDEwNSwgMC4wMDEwNSwgMC4wMDEwNTEsIDAuMDAxMDUxLCAwLjAwMTA1MSwgMC4wMDEwNTIsIDAuMDAxMDUyIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihEKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE3MDM7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNzAyNDk7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNzAzOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDE4MywgMC4wMDAxODEsIDAuMDAwMTgyLCAwLjAwMDE4MSwgMC4wMDAxODEsIDAuMDAwMTgxLCAwLjAwMDE4MSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTE5MSwgMC4wMDExOTMsIDAuMDAxMTkyLCAwLjAwMTE5MiwgMC4wMDExOTIsIDAuMDAxMTkyLCAwLjAwMTE5MiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjE5MTcxNjsKLSAgICBmdW5jdGlvbiA6ICIoISgoKCghQU4pIEIpIEMpIEQpKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQU4iOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0Mjc0MiwgMC4xMjE2MDcsIDAuMTg0MDk2LCAwLjI2MTkyOSwgMC4zMzk4MDgsIDAuNDE3NjcyLCAwLjQ5NTUxMSIsIFwKLSAgICAgICAgICAiMC4wNTA3NDEsIDAuMTI5NjQyLCAwLjE5MjA0NCwgMC4yNzAwNDUsIDAuMzQ3Nzg2LCAwLjQyNTYyLCAwLjUwMzUxMiIsIFwKLSAgICAgICAgICAiMC4wNTg3MDMsIDAuMTM3NTc2LCAwLjIwMDAxMSwgMC4yNzc5MDEsIDAuMzU1ODY3LCAwLjQzMzU1OSwgMC41MTEzNiIsIFwKLSAgICAgICAgICAiMC4wNjQ1NTEsIDAuMTQzNDgsIDAuMjA1OTE1LCAwLjI4MzgxOCwgMC4zNjE3ODUsIDAuNDM5NDQxLCAwLjUxNzI5NiIsIFwKLSAgICAgICAgICAiMC4wNjk0NTUsIDAuMTQ4MzY3LCAwLjIxMDc2MiwgMC4yODg2MjIsIDAuMzY2NDczLCAwLjQ0NDMxLCAwLjUyMjM2MyIsIFwKLSAgICAgICAgICAiMC4wNzU5MzIsIDAuMTU0NjksIDAuMjE3LCAwLjI5NDg4NiwgMC4zNzI4MDMsIDAuNDUwNTY3LCAwLjUyODU5NiIsIFwKLSAgICAgICAgICAiMC4wODA4MDcsIDAuMTU5NTYxLCAwLjIyMTg3NywgMC4yOTk3MDEsIDAuMzc3NTEzLCAwLjQ1NTM4OSwgMC41MzMxMSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTE3NzMsIDAuMjE1Mjk1LCAwLjM0NjcyMywgMC41MTE1ODcsIDAuNjc2MTU5LCAwLjg0MDUwNiwgMS4wMDUwNyIsIFwKLSAgICAgICAgICAiMC4wNTE4MjUsIDAuMjE1MzIyLCAwLjM0Njg4MiwgMC41MTE1ODMsIDAuNjc2MDE5LCAwLjg0MDUwOSwgMS4wMDUxMiIsIFwKLSAgICAgICAgICAiMC4wNTI1NDgsIDAuMjE1MzA1LCAwLjM0NzAwNywgMC41MTE0MzEsIDAuNjc2MTM4LCAwLjg0MDUxMSwgMS4wMDUwNCIsIFwKLSAgICAgICAgICAiMC4wNTM0MzQsIDAuMjE1NDY2LCAwLjM0NzAyMSwgMC41MTE0MjQsIDAuNjc2MTQsIDAuODQwNzg3LCAxLjAwNTA0IiwgXAotICAgICAgICAgICIwLjA1NDI1OSwgMC4yMTU1NzIsIDAuMzQ2OTUyLCAwLjUxMTUwNCwgMC42NzYwMzQsIDAuODQwNTIzLCAxLjAwNTQiLCBcCi0gICAgICAgICAgIjAuMDU1NzA2LCAwLjIxNTcxMSwgMC4zNDcwNjYsIDAuNTExNTE2LCAwLjY3NjE4MiwgMC44NDA1MTQsIDEuMDA1MjIiLCBcCi0gICAgICAgICAgIjAuMDU2ODQxLCAwLjIxNTkzNiwgMC4zNDcxMTYsIDAuNTExNTMsIDAuNjc2MTk1LCAwLjg0MDU0MSwgMS4wMDUzIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwMDY1MiwgMC4zNjA5ODksIDAuNTY5NTkzLCAwLjgyOTAyOSwgMS4wODkwNywgMS4zNDkwOCwgMS42MDk5OCIsIFwKLSAgICAgICAgICAiMC4xMDgzMjIsIDAuMzY4ODEsIDAuNTc2NzUsIDAuODM3MTQzLCAxLjA5NzE4LCAxLjM1NjQ0LCAxLjYxODI1IiwgXAotICAgICAgICAgICIwLjExNTcwOCwgMC4zNzYzNjIsIDAuNTg0MzcsIDAuODQ0NDU5LCAxLjEwNDcxLCAxLjM2NDQzLCAxLjYyNDAyIiwgXAotICAgICAgICAgICIwLjEyMDkxOSwgMC4zODE1NzYsIDAuNTg5Njg2LCAwLjg1MDA2OCwgMS4xMDk1OCwgMS4zNjk5OSwgMS42MjkzNSIsIFwKLSAgICAgICAgICAiMC4xMjUwNzcsIDAuMzg1NzA1LCAwLjU5Mzg5OCwgMC44NTM3MzksIDEuMTEzNTUsIDEuMzc0MzUsIDEuNjM0MDMiLCBcCi0gICAgICAgICAgIjAuMTMwNDg4LCAwLjM5MTMyNiwgMC41OTk0ODcsIDAuODU5NDI0LCAxLjExOTY3LCAxLjM3OTA5LCAxLjY0MDM0IiwgXAotICAgICAgICAgICIwLjEzNDQ5MywgMC4zOTUwNTQsIDAuNjAzMTYxLCAwLjg2NDAxNiwgMS4xMjM3MSwgMS4zODM1MywgMS42NDM0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE0ODQyOCwgMC42ODY1MDQsIDEuMTE1MzQsIDEuNjUyNDYsIDIuMTkzNTQsIDIuNzI3MzIsIDMuMjY0MTkiLCBcCi0gICAgICAgICAgIjAuMTQ4NDMsIDAuNjg2NSwgMS4xMTU4NywgMS42NTI1LCAyLjE4OTcsIDIuNzMxNjMsIDMuMjY1MjYiLCBcCi0gICAgICAgICAgIjAuMTQ4NDU4LCAwLjY4NjU3MSwgMS4xMTUyOSwgMS42NTUzLCAyLjE5MDI2LCAyLjczMTY3LCAzLjI2Mzg3IiwgXAotICAgICAgICAgICIwLjE0ODQwOCwgMC42ODY0OTMsIDEuMTE1MzYsIDEuNjUyNTIsIDIuMTkwMTUsIDIuNzI2NzUsIDMuMjY5NTUiLCBcCi0gICAgICAgICAgIjAuMTQ4MjgxLCAwLjY4NjUxLCAxLjExNzA1LCAxLjY1NTE5LCAyLjE5MzQ3LCAyLjcyNzQ3LCAzLjI2OTkxIiwgXAotICAgICAgICAgICIwLjE0ODI3MiwgMC42ODUxMDksIDEuMTE3MTYsIDEuNjU1MjMsIDIuMTkwMjksIDIuNzMxNTIsIDMuMjY0MjMiLCBcCi0gICAgICAgICAgIjAuMTQ4NDI4LCAwLjY4NTM5OCwgMS4xMTUsIDEuNjUyMTgsIDIuMTg5NjYsIDIuNzMxNzIsIDMuMjY0MjciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDI2NTE4LCAwLjEwNDc5OSwgMC4xNjcwODUsIDAuMjQ1MDMsIDAuMzIyODMyLCAwLjQwMDY0NSwgMC40Nzg0NDQiLCBcCi0gICAgICAgICAgIjAuMDM0Nzg4LCAwLjExMzA2NiwgMC4xNzUzNSwgMC4yNTMxOTksIDAuMzMxMTk2LCAwLjQwODgyMywgMC40ODY4OCIsIFwKLSAgICAgICAgICAiMC4wNDUxODUsIDAuMTIzMjYyLCAwLjE4NTU4NiwgMC4yNjMzNzgsIDAuMzQxMTYzLCAwLjQxOTA2OSwgMC40OTY4MjgiLCBcCi0gICAgICAgICAgIjAuMDUzMTY2LCAwLjEzMzkyMiwgMC4xOTYyMTQsIDAuMjc0MDE3LCAwLjM1MTgzMywgMC40Mjk4MDEsIDAuNTA3NDgyIiwgXAotICAgICAgICAgICIwLjA1OTY0NSwgMC4xNDM3NzEsIDAuMjA1OTk5LCAwLjI4Mzg1MSwgMC4zNjE0NDEsIDAuNDM5NDc0LCAwLjUxNzIxNCIsIFwKLSAgICAgICAgICAiMC4wNjc3OSwgMC4xNjA2OTQsIDAuMjIyNjUzLCAwLjMwMDM3LCAwLjM3ODEwNiwgMC40NTUzNjMsIDAuNTMzNzYyIiwgXAotICAgICAgICAgICIwLjA3Mzc0MiwgMC4xNzU0OSwgMC4yMzczMDgsIDAuMzE0OTM5LCAwLjM5MjU3NSwgMC40NzAzODMsIDAuNTQ4MjYiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQ3ODk1LCAwLjIxMjUyOSwgMC4zNDQxOTUsIDAuNTA4Nzk1LCAwLjY3MzQyOCwgMC44Mzc5NzYsIDEuMDAyNjUiLCBcCi0gICAgICAgICAgIjAuMDUwNDU4LCAwLjIxMjQyNiwgMC4zNDQwOSwgMC41MDg4MjgsIDAuNjczNTA0LCAwLjgzODA4NSwgMS4wMDI3OSIsIFwKLSAgICAgICAgICAiMC4wNTgxODksIDAuMjEzNDU0LCAwLjM0NDA3OSwgMC41MDg2NjIsIDAuNjczMjY4LCAwLjgzODAzNiwgMS4wMDI0MSIsIFwKLSAgICAgICAgICAiMC4wNjc4NDIsIDAuMjE3MjU1LCAwLjM0NTE5NywgMC41MDg1NzgsIDAuNjczMzc1LCAwLjgzODEwNCwgMS4wMDI0IiwgXAotICAgICAgICAgICIwLjA3NzIxOCwgMC4yMjMzNDcsIDAuMzQ4NTMxLCAwLjUwOTUwNiwgMC42NzMwOTUsIDAuODM4MDUyLCAxLjAwMjIyIiwgXAotICAgICAgICAgICIwLjA5MDk5LCAwLjIzNTA1NiwgMC4zNTY1NzQsIDAuNTE0MDYzLCAwLjY3NDk4MywgMC44MzgwNTQsIDEuMDAyNTYiLCBcCi0gICAgICAgICAgIjAuMTAxNjQ2LCAwLjI0NjY2NiwgMC4zNjU0NTUsIDAuNTIwMjYzLCAwLjY3ODkxOSwgMC44NDAwNjUsIDEuMDAyNjYiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDgyODQ3LCAwLjM0MzIyLCAwLjU1MTQ4OCwgMC44MTA2NzksIDEuMDcxNTYsIDEuMzMwODksIDEuNTkxOTUiLCBcCi0gICAgICAgICAgIjAuMDg4NDA5LCAwLjM0ODk2NywgMC41NTY5MzIsIDAuODE2OTY4LCAxLjA3Njk4LCAxLjMzNjQ5LCAxLjU5NjM2IiwgXAotICAgICAgICAgICIwLjA5NDM5NSwgMC4zNTUyNSwgMC41NjMyMzUsIDAuODIzMTcxLCAxLjA4MzYsIDEuMzQyODksIDEuNjA0MjkiLCBcCi0gICAgICAgICAgIjAuMTAwNDg0LCAwLjM2MTI3NCwgMC41Njk1NjQsIDAuODMwMDAxLCAxLjA4OTUzLCAxLjM0OTc1LCAxLjYwOTc5IiwgXAotICAgICAgICAgICIwLjEwNjYzNCwgMC4zNjcxNDMsIDAuNTc1NDE1LCAwLjgzNTQ3LCAxLjA5Njc0LCAxLjM1NjA0LCAxLjYxNTMyIiwgXAotICAgICAgICAgICIwLjExNTk2NywgMC4zNzcxNjQsIDAuNTg1Njg2LCAwLjg0NTMxOSwgMS4xMDU1NCwgMS4zNjU0OSwgMS42MjUxMiIsIFwKLSAgICAgICAgICAiMC4xMjMxNzIsIDAuMzg1NzYzLCAwLjU5MzkyOCwgMC44NTQ3MzYsIDEuMTE0ODgsIDEuMzc0NywgMS42MzU4NyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNDg0MjksIDAuNjg1NDI3LCAxLjExNTIsIDEuNjU1MjYsIDIuMTg5NzIsIDIuNzMxNjMsIDMuMjYzNjQiLCBcCi0gICAgICAgICAgIjAuMTQ4NDE5LCAwLjY4NjQ5MiwgMS4xMTcwNiwgMS42NTUwOSwgMi4xODk3NywgMi43MjYzMSwgMy4yNjY3IiwgXAotICAgICAgICAgICIwLjE0OTI4NywgMC42ODY1NDQsIDEuMTE3MDMsIDEuNjU1MjIsIDIuMTg5NTksIDIuNzMxNzQsIDMuMjY0MjciLCBcCi0gICAgICAgICAgIjAuMTUxNDksIDAuNjg2NSwgMS4xMTUyNCwgMS42NTI1MywgMi4xOTAxMSwgMi43MzE3LCAzLjI2OTkzIiwgXAotICAgICAgICAgICIwLjE1NDkyNiwgMC42ODUxODEsIDEuMTE1NTgsIDEuNjU1MjEsIDIuMTkwMzMsIDIuNzI2NjMsIDMuMjY2MTYiLCBcCi0gICAgICAgICAgIjAuMTYxODksIDAuNjg3Njg0LCAxLjExNTAzLCAxLjY1MjY2LCAyLjE5MzM3LCAyLjczMTQ5LCAzLjI2NzE1IiwgXAotICAgICAgICAgICIwLjE2OTA0OSwgMC42ODgyNjMsIDEuMTE3NDEsIDEuNjUyNTEsIDIuMTg5NzgsIDIuNzI2NywgMy4yNjUwMiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjUxOTMsIDAuMTAzMTY1LCAwLjE2NTQxMSwgMC4yNDMzMzksIDAuMzIxMTA3LCAwLjM5OTAyMSwgMC40NzcwMDIiLCBcCi0gICAgICAgICAgIjAuMDMzNTIsIDAuMTExNDkzLCAwLjE3Mzc1LCAwLjI1MTU4NSwgMC4zMjkzNjUsIDAuNDA3MTgxLCAwLjQ4NTMxNSIsIFwKLSAgICAgICAgICAiMC4wNDM3MjMsIDAuMTIxNjQ4LCAwLjE4MzkzOSwgMC4yNjE3MjIsIDAuMzM5NDk2LCAwLjQxNzM0NSwgMC40OTUxNTIiLCBcCi0gICAgICAgICAgIjAuMDUxMjM5LCAwLjEzMjMwMywgMC4xOTQ1NTIsIDAuMjcyNDM5LCAwLjM1MDE0NywgMC40MjgxNjYsIDAuNTA1ODE2IiwgXAotICAgICAgICAgICIwLjA1NzUxNCwgMC4xNDIyMDYsIDAuMjA0Mzg5LCAwLjI4MjE4MywgMC4zNTk4NjMsIDAuNDM3NzUsIDAuNTE1NzI5IiwgXAotICAgICAgICAgICIwLjA2NTMxMywgMC4xNTkxNCwgMC4yMjEwNDYsIDAuMjk4NzYzLCAwLjM3NjQ3MiwgMC40NTM3MjksIDAuNTMyMTAxIiwgXAotICAgICAgICAgICIwLjA3MDYzNywgMC4xNzM4OCwgMC4yMzU3LCAwLjMxMzIzMiwgMC4zOTEwMTksIDAuNDY4NzU0LCAwLjU0NjY4OSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDU3NjMsIDAuMjEwNDIsIDAuMzQyMDA2LCAwLjUwNjkxNCwgMC42NzE0NjUsIDAuODM1ODU2LCAxLjAwMDc3IiwgXAotICAgICAgICAgICIwLjA0ODU2NSwgMC4yMTA0MTQsIDAuMzQyMTIzLCAwLjUwNjcyOSwgMC42NzEzNTUsIDAuODM1OTY0LCAxLjAwMDc0IiwgXAotICAgICAgICAgICIwLjA1NjUxMSwgMC4yMTE0NywgMC4zNDIwNTEsIDAuNTA2NzYyLCAwLjY3MTIzNCwgMC44MzYzNTUsIDEuMDAwNDciLCBcCi0gICAgICAgICAgIjAuMDY2MzU4LCAwLjIxNTM0OSwgMC4zNDMwODUsIDAuNTA2ODQyLCAwLjY3MTIyLCAwLjgzNjEwNywgMS4wMDA1MSIsIFwKLSAgICAgICAgICAiMC4wNzUzOCwgMC4yMjE0ODcsIDAuMzQ2NjQsIDAuNTA3NTMzLCAwLjY3MTA0NiwgMC44MzU5OTIsIDEuMDAwNDYiLCBcCi0gICAgICAgICAgIjAuMDg4NzQ4LCAwLjIzMzI0NywgMC4zNTQ3MjIsIDAuNTEyMjIsIDAuNjczMDg3LCAwLjgzNTgxNSwgMS4wMDA1OCIsIFwKLSAgICAgICAgICAiMC4wOTk2MiwgMC4yNDQ5OTYsIDAuMzYzNjU3LCAwLjUxODM4NSwgMC42NzcxMDksIDAuODM4MTQxLCAxLjAwMDk3Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3ODIyOSwgMC4zMzg0NywgMC41NDY3MjksIDAuODA2NjE0LCAxLjA2NTk3LCAxLjMyNzI3LCAxLjU4NjM2IiwgXAotICAgICAgICAgICIwLjA4NDMwMiwgMC4zNDQ4NDksIDAuNTUyNzk0LCAwLjgxMjY4NiwgMS4wNzI3OSwgMS4zMzI0MSwgMS41OTIiLCBcCi0gICAgICAgICAgIjAuMDkyMDMxLCAwLjM1MzAyNywgMC41NjA4NDUsIDAuODIwOTMyLCAxLjA4MDcxLCAxLjM0MTk0LCAxLjYwMDM3IiwgXAotICAgICAgICAgICIwLjEwMDE3OCwgMC4zNjA5ODEsIDAuNTY5MTQ3LCAwLjgyOTA0OSwgMS4wODkwNSwgMS4zNDkyMiwgMS42MDk1NSIsIFwKLSAgICAgICAgICAiMC4xMDg0MjEsIDAuMzY5MjQ2LCAwLjU3NzI3NywgMC44MzcyOTYsIDEuMDk3MjQsIDEuMzU4MTIsIDEuNjE3MDgiLCBcCi0gICAgICAgICAgIjAuMTIwOTc0LCAwLjM4MTk3NCwgMC41OTAyOTcsIDAuODUwNjg2LCAxLjExMDYzLCAxLjM3MTc4LCAxLjYzMDE4IiwgXAotICAgICAgICAgICIwLjEzMTAwNiwgMC4zOTM0MzIsIDAuNjAxOTA4LCAwLjg2MTcyNSwgMS4xMjIzMSwgMS4zODIxNiwgMS42NDIwMiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNDg0MDIsIDAuNjg1NTU5LCAxLjExNTEsIDEuNjUyNDUsIDIuMTkwMjQsIDIuNzI2OTIsIDMuMjY5OTQiLCBcCi0gICAgICAgICAgIjAuMTQ4MTU4LCAwLjY4NjUxMiwgMS4xMTcxLCAxLjY1NTM0LCAyLjE5MzIzLCAyLjcyNzc1LCAzLjI2NDUzIiwgXAotICAgICAgICAgICIwLjE0OTcyMiwgMC42ODUzODgsIDEuMTE1OTQsIDEuNjUyMjcsIDIuMTkzNTEsIDIuNzI3MzQsIDMuMjY0NDgiLCBcCi0gICAgICAgICAgIjAuMTUzNTksIDAuNjg2NDg4LCAxLjExNywgMS42NTUyMSwgMi4xOTMzMSwgMi43MjY4MywgMy4yNzAwMiIsIFwKLSAgICAgICAgICAiMC4xNTg2NzksIDAuNjg2NTI2LCAxLjExNTMzLCAxLjY1MzE5LCAyLjE5MzM0LCAyLjcyNzA3LCAzLjI2NDU4IiwgXAotICAgICAgICAgICIwLjE2ODE1LCAwLjY4NjU1MSwgMS4xMTcwNCwgMS42NTI3NiwgMi4xOTM0LCAyLjcyNjkzLCAzLjI2OTY3IiwgXAotICAgICAgICAgICIwLjE3NzMzNCwgMC42ODg4NTUsIDEuMTE3MTksIDEuNjU1MjgsIDIuMTg5NjcsIDIuNzMxNzYsIDMuMjY0MyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJEIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjMzOTUsIDAuMTAwNzk0LCAwLjE2Mjc1NywgMC4yNDAxMTcsIDAuMzE3NDY5LCAwLjM5NTExNywgMC40NzIyMjYiLCBcCi0gICAgICAgICAgIjAuMDMxNzMyLCAwLjEwOTEzLCAwLjE3MTEyNCwgMC4yNDg0MTUsIDAuMzI1ODE1LCAwLjQwMzE3MywgMC40ODA2ODEiLCBcCi0gICAgICAgICAgIjAuMDQxNTA3LCAwLjExOTU0NCwgMC4xODE0MzIsIDAuMjU4OTYyLCAwLjMzNjIwNywgMC40MTM2MjMsIDAuNDkwOTQ4IiwgXAotICAgICAgICAgICIwLjA0ODg4NCwgMC4xMjk3MTUsIDAuMTkxNjQ0LCAwLjI2ODkzMiwgMC4zNDYzMzYsIDAuNDI0MDEzLCAwLjUwMTEwNyIsIFwKLSAgICAgICAgICAiMC4wNTQ1NDgsIDAuMTQwMjIyLCAwLjIwMjA1NiwgMC4yNzkzOTcsIDAuMzU2NjMsIDAuNDM0MDkyLCAwLjUxMTgyNiIsIFwKLSAgICAgICAgICAiMC4wNjE3MzgsIDAuMTU3MTUxLCAwLjIxODgyNSwgMC4yOTYxNjgsIDAuMzczNDE3LCAwLjQ1MDkwNywgMC41MjgxNTIiLCBcCi0gICAgICAgICAgIjAuMDY2NzA2LCAwLjE3MTkyMiwgMC4yMzM1MjcsIDAuMzEwNzYsIDAuMzg3OTcyLCAwLjQ2NTU2OSwgMC41NDI4MTQiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQzNDE4LCAwLjIwNjk5MiwgMC4zMzc4MjQsIDAuNTAxODk4LCAwLjY2NDY4NCwgMC44Mjg0OCwgMC45OTMzMDkiLCBcCi0gICAgICAgICAgIjAuMDQ2NDMsIDAuMjA3MjU2LCAwLjMzNzg0MSwgMC41MDEyNDgsIDAuNjY1NzU4LCAwLjgyOTgwNCwgMC45OTIyODIiLCBcCi0gICAgICAgICAgIjAuMDU0ODIsIDAuMjA4MDA0LCAwLjMzNzk2MiwgMC41MDEzNjksIDAuNjY0Njc1LCAwLjgyODk5NCwgMC45OTE3MTYiLCBcCi0gICAgICAgICAgIjAuMDY0NDU0LCAwLjIxMjQ3NCwgMC4zMzkwNDgsIDAuNTAxMzIzLCAwLjY2NDcwMywgMC44Mjg0OTIsIDAuOTkyMTciLCBcCi0gICAgICAgICAgIjAuMDczNjM4LCAwLjIxODExOCwgMC4zNDI5MSwgMC41MDMwNzEsIDAuNjY1NTc4LCAwLjgyODQzMiwgMC45OTIwNTIiLCBcCi0gICAgICAgICAgIjAuMDg2OTc2LCAwLjIyOTYwNCwgMC4zNTA2ODYsIDAuNTA2ODE1LCAwLjY2NjkzMywgMC44MjkwOTgsIDAuOTkzMDciLCBcCi0gICAgICAgICAgIjAuMDk3NTYyLCAwLjI0MTMxMSwgMC4zNTkzNzQsIDAuNTEzOTEsIDAuNjcwNjM0LCAwLjgzMDYzOCwgMC45OTIxODYiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDcxMDA3LCAwLjMzMTE3NiwgMC41MzkyOTYsIDAuNzk5Mzg3LCAxLjA1OTIyLCAxLjMxOTY3LCAxLjU3OTA4IiwgXAotICAgICAgICAgICIwLjA3NzU0NywgMC4zMzgwNjUsIDAuNTQ2MDk3LCAwLjgwNTcxNCwgMS4wNjU3LCAxLjMyNTgzLCAxLjU4NTQ3IiwgXAotICAgICAgICAgICIwLjA4NjM5NywgMC4zNDY2NjMsIDAuNTU0NzI4LCAwLjgxNDM4NiwgMS4wNzUzMiwgMS4zMzQyMSwgMS41OTQ2MyIsIFwKLSAgICAgICAgICAiMC4wOTU2MDMsIDAuMzU1Mjk3LCAwLjU2MzIwMiwgMC44MjMwODYsIDEuMDg0MzQsIDEuMzQzMzIsIDEuNjAzMjEiLCBcCi0gICAgICAgICAgIjAuMTA1MTIxLCAwLjM2Mzc3NiwgMC41NzE3OTMsIDAuODMxODI4LCAxLjA5MjA4LCAxLjM1MjYzLCAxLjYxMjE2IiwgXAotICAgICAgICAgICIwLjExOTcyMywgMC4zNzgwNzcsIDAuNTg1NjcxLCAwLjg0NTgyOCwgMS4xMDUxNiwgMS4zNjUxMiwgMS42MjYxOCIsIFwKLSAgICAgICAgICAiMC4xMzEwNDUsIDAuMzkwNzU1LCAwLjU5ODA5MSwgMC44NTgyNTksIDEuMTE3ODMsIDEuMzc3MzEsIDEuNjM3MTMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTQ4MTkxLCAwLjY4NjQ3LCAxLjExNzEyLCAxLjY1MjI2LCAyLjE4OTgsIDIuNzI3MDcsIDMuMjY5ODYiLCBcCi0gICAgICAgICAgIjAuMTQ3Nzc1LCAwLjY4NjQ5NiwgMS4xMTcwMiwgMS42NTI3NywgMi4xOTA3OSwgMi43MzE0MiwgMy4yNjk4NyIsIFwKLSAgICAgICAgICAiMC4xNTAwODgsIDAuNjg1MzY2LCAxLjExNzExLCAxLjY1MjcxLCAyLjE4OTczLCAyLjczMTcyLCAzLjI2NDY3IiwgXAotICAgICAgICAgICIwLjE1NTI4OSwgMC42ODUzNDQsIDEuMTE1MDIsIDEuNjUyNiwgMi4xOTAyMiwgMi43MzE2MSwgMy4yNjQxNiIsIFwKLSAgICAgICAgICAiMC4xNjE4OTIsIDAuNjg1MTkxLCAxLjExNzA0LCAxLjY1NTE4LCAyLjE5MDI5LCAyLjcyNzQ3LCAzLjI2NTE0IiwgXAotICAgICAgICAgICIwLjE3MzMxNiwgMC42ODY3NDksIDEuMTE1MjgsIDEuNjUyMjEsIDIuMTkzNDgsIDIuNzI4NiwgMy4yNjM3MyIsIFwKLSAgICAgICAgICAiMC4xODQwNjUsIDAuNjkwMjI2LCAxLjExNTMyLCAxLjY1MjQ5LCAyLjE5MDA4LCAyLjczMTUyLCAzLjI2NTkxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQU4iOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwOTQwMywgMC4wMDk0MDEsIDAuMDA5NDAyLCAwLjAwOTQwMiwgMC4wMDk0MDIsIDAuMDA5NDA1LCAwLjAwOTQiLCBcCi0gICAgICAgICAgIjAuMDA5Mzk2LCAwLjAwOTQwNSwgMC4wMDk0MDUsIDAuMDA5NDA0LCAwLjAwOTQwNywgMC4wMDk0MDYsIDAuMDA5NDAzIiwgXAotICAgICAgICAgICIwLjAwOTQ1NiwgMC4wMDk0NjMsIDAuMDA5NDYyLCAwLjAwOTQ2MiwgMC4wMDk0NjIsIDAuMDA5NDYzLCAwLjAwOTQ2IiwgXAotICAgICAgICAgICIwLjAwOTU1NywgMC4wMDk1NjIsIDAuMDA5NTYxLCAwLjAwOTU2MiwgMC4wMDk1NjIsIDAuMDA5NTYxLCAwLjAwOTU2IiwgXAotICAgICAgICAgICIwLjAwOTY2NSwgMC4wMDk2NywgMC4wMDk2NzgsIDAuMDA5Njc2LCAwLjAwOTY3OCwgMC4wMDk2NzYsIDAuMDA5Njc1IiwgXAotICAgICAgICAgICIwLjAwOTg4OSwgMC4wMDk4ODQsIDAuMDA5ODgzLCAwLjAwOTg3MSwgMC4wMDk4NzMsIDAuMDA5ODgzLCAwLjAwOTg2NiIsIFwKLSAgICAgICAgICAiMC4wMTAwNzcsIDAuMDEwMDgsIDAuMDEwMDY2LCAwLjAxMDA2NCwgMC4wMTAwNjQsIDAuMDEwMDc4LCAwLjAxMDA3NiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDk3LCAwLjAwNTAzMiwgMC4wMDUwMzksIDAuMDA1MDQzLCAwLjAwNTA0NSwgMC4wMDUwNDYsIDAuMDA1MDQ3IiwgXAotICAgICAgICAgICIwLjAwNDk0NSwgMC4wMDUwMjksIDAuMDA1MDQxLCAwLjAwNTA0NywgMC4wMDUwNTEsIDAuMDA1MDUzLCAwLjAwNTA1NCIsIFwKLSAgICAgICAgICAiMC4wMDQ5NzksIDAuMDA1MDgxLCAwLjAwNTA5NywgMC4wMDUxMDYsIDAuMDA1MTExLCAwLjAwNTExNCwgMC4wMDUxMTYiLCBcCi0gICAgICAgICAgIjAuMDA1MDU1LCAwLjAwNTE2NywgMC4wMDUxODYsIDAuMDA1MTk3LCAwLjAwNTIwMiwgMC4wMDUyMDYsIDAuMDA1MjA0IiwgXAotICAgICAgICAgICIwLjAwNTE1MiwgMC4wMDUyNywgMC4wMDUyODYsIDAuMDA1MzA0LCAwLjAwNTMxMSwgMC4wMDUzMTUsIDAuMDA1MzE4IiwgXAotICAgICAgICAgICIwLjAwNTMyNywgMC4wMDU0NTgsIDAuMDA1NDgzLCAwLjAwNTQ5NywgMC4wMDU1MDUsIDAuMDA1NTEsIDAuMDA1NTEzIiwgXAotICAgICAgICAgICIwLjAwNTUwOCwgMC4wMDU2MzUsIDAuMDA1NjUxLCAwLjAwNTY3NiwgMC4wMDU2ODUsIDAuMDA1NjgsIDAuMDA1Njg0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA3NzE2LCAwLjAwNzcxOSwgMC4wMDc3MTksIDAuMDA3NzE5LCAwLjAwNzcxOSwgMC4wMDc3MTgsIDAuMDA3NzE5IiwgXAotICAgICAgICAgICIwLjAwNzY4MiwgMC4wMDc2OTUsIDAuMDA3Njk4LCAwLjAwNzY5OCwgMC4wMDc2OTksIDAuMDA3Njk5LCAwLjAwNzY5OCIsIFwKLSAgICAgICAgICAiMC4wMDc3MTQsIDAuMDA3NzE0LCAwLjAwNzcwNywgMC4wMDc3MDUsIDAuMDA3NzAyLCAwLjAwNzcwNCwgMC4wMDc2OTkiLCBcCi0gICAgICAgICAgIjAuMDA3ODE0LCAwLjAwNzczMywgMC4wMDc3MiwgMC4wMDc3MTEsIDAuMDA3NzExLCAwLjAwNzcwOCwgMC4wMDc3MDQiLCBcCi0gICAgICAgICAgIjAuMDA3OTM0LCAwLjAwNzgyMiwgMC4wMDc3ODMsIDAuMDA3NzU3LCAwLjAwNzc1NSwgMC4wMDc3MzgsIDAuMDA3NzI4IiwgXAotICAgICAgICAgICIwLjAwODIxMSwgMC4wMDc5NDcsIDAuMDA3ODYzLCAwLjAwNzgxOCwgMC4wMDc3OTIsIDAuMDA3NzY5LCAwLjAwNzc2NCIsIFwKLSAgICAgICAgICAiMC4wMDg0NjQsIDAuMDA4MDc5LCAwLjAwNzk1OCwgMC4wMDc4ODgsIDAuMDA3ODQ1LCAwLjAwNzgyMSwgMC4wMDc4MDYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDE1OCwgMC4wMDE2MTMsIDAuMDAxNjE3LCAwLjAwMTYxOCwgMC4wMDE2MTksIDAuMDAxNjIsIDAuMDAxNjE5IiwgXAotICAgICAgICAgICIwLjAwMTQ2OCwgMC4wMDE1NzcsIDAuMDAxNTk0LCAwLjAwMTYwMywgMC4wMDE2MDgsIDAuMDAxNjEsIDAuMDAxNjEyIiwgXAotICAgICAgICAgICIwLjAwMTQwMSwgMC4wMDE1NCwgMC4wMDE1NjgsIDAuMDAxNTg1LCAwLjAwMTU5MywgMC4wMDE1OTksIDAuMDAxNjAzIiwgXAotICAgICAgICAgICIwLjAwMTM4LCAwLjAwMTUxMywgMC4wMDE1NDgsIDAuMDAxNTY5LCAwLjAwMTU4MSwgMC4wMDE1ODgsIDAuMDAxNTk0IiwgXAotICAgICAgICAgICIwLjAwMTM5NCwgMC4wMDE1LCAwLjAwMTUzNSwgMC4wMDE1NiwgMC4wMDE1NzQsIDAuMDAxNTgxLCAwLjAwMTU4OCIsIFwKLSAgICAgICAgICAiMC4wMDE0NzksIDAuMDAxNTAzLCAwLjAwMTUzMSwgMC4wMDE1NTMsIDAuMDAxNTY3LCAwLjAwMTU3NiwgMC4wMDE1ODMiLCBcCi0gICAgICAgICAgIjAuMDAxNiwgMC4wMDE1MzUsIDAuMDAxNTQ3LCAwLjAwMTU2MiwgMC4wMDE1NzIsIDAuMDAxNTgsIDAuMDAxNTg1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2MjQzLCAwLjAwNjI1MiwgMC4wMDYyNTMsIDAuMDA2MjUzLCAwLjAwNjI1MywgMC4wMDYyNTQsIDAuMDA2MjUzIiwgXAotICAgICAgICAgICIwLjAwNjIzNiwgMC4wMDYyNjUsIDAuMDA2MjY4LCAwLjAwNjI3MSwgMC4wMDYyNzIsIDAuMDA2MjcxLCAwLjAwNjI3MiIsIFwKLSAgICAgICAgICAiMC4wMDYyNjQsIDAuMDA2Mjg5LCAwLjAwNjI4NSwgMC4wMDYyODMsIDAuMDA2MjgyLCAwLjAwNjI4LCAwLjAwNjI4IiwgXAotICAgICAgICAgICIwLjAwNjM3MywgMC4wMDYzMDcsIDAuMDA2Mjk4LCAwLjAwNjI5MywgMC4wMDYyOSwgMC4wMDYyODgsIDAuMDA2Mjg2IiwgXAotICAgICAgICAgICIwLjAwNjQ3MywgMC4wMDYzOTQsIDAuMDA2MzU5LCAwLjAwNjMzNywgMC4wMDYzMiwgMC4wMDYzMTcsIDAuMDA2MzExIiwgXAotICAgICAgICAgICIwLjAwNjcyMSwgMC4wMDY1MTYsIDAuMDA2NDM4LCAwLjAwNjM5NCwgMC4wMDYzNzUsIDAuMDA2MzUyLCAwLjAwNjM0OCIsIFwKLSAgICAgICAgICAiMC4wMDcwMDEsIDAuMDA2NjUsIDAuMDA2NTMsIDAuMDA2NDY0LCAwLjAwNjQyMywgMC4wMDY0MDMsIDAuMDA2Mzg2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxNTgsIDAuMDAxNjEzLCAwLjAwMTYxNywgMC4wMDE2MTgsIDAuMDAxNjE5LCAwLjAwMTYyLCAwLjAwMTYyIiwgXAotICAgICAgICAgICIwLjAwMTQ2OSwgMC4wMDE1NzcsIDAuMDAxNTk0LCAwLjAwMTYwMywgMC4wMDE2MDgsIDAuMDAxNjEsIDAuMDAxNjEyIiwgXAotICAgICAgICAgICIwLjAwMTQxNSwgMC4wMDE1NDMsIDAuMDAxNTcsIDAuMDAxNTg2LCAwLjAwMTU5NCwgMC4wMDE2LCAwLjAwMTYwMyIsIFwKLSAgICAgICAgICAiMC4wMDE0MjEsIDAuMDAxNTI0LCAwLjAwMTU1NSwgMC4wMDE1NzQsIDAuMDAxNTg1LCAwLjAwMTU5MiwgMC4wMDE1OTYiLCBcCi0gICAgICAgICAgIjAuMDAxNDczLCAwLjAwMTUyMiwgMC4wMDE1NSwgMC4wMDE1NjksIDAuMDAxNTgsIDAuMDAxNTg3LCAwLjAwMTU5MyIsIFwKLSAgICAgICAgICAiMC4wMDE2MjIsIDAuMDAxNTUyLCAwLjAwMTU2MywgMC4wMDE1NzUsIDAuMDAxNTgzLCAwLjAwMTU4OSwgMC4wMDE1OTQiLCBcCi0gICAgICAgICAgIjAuMDAxODAyLCAwLjAwMTYwMiwgMC4wMDE1OTEsIDAuMDAxNTkzLCAwLjAwMTU5NiwgMC4wMDE1OTksIDAuMDAxNjAxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0NjkxLCAwLjAwNDcxNiwgMC4wMDQ3MTgsIDAuMDA0NzE5LCAwLjAwNDcyMSwgMC4wMDQ3MjEsIDAuMDA0NzIiLCBcCi0gICAgICAgICAgIjAuMDA0Njk4LCAwLjAwNDc0OCwgMC4wMDQ3NTQsIDAuMDA0NzUzLCAwLjAwNDc1OSwgMC4wMDQ3NjEsIDAuMDA0NzY0IiwgXAotICAgICAgICAgICIwLjAwNDc4MSwgMC4wMDQ3NzYsIDAuMDA0Nzc1LCAwLjAwNDc3NCwgMC4wMDQ3NzMsIDAuMDA0NzcyLCAwLjAwNDc3MiIsIFwKLSAgICAgICAgICAiMC4wMDQ4MzIsIDAuMDA0ODA4LCAwLjAwNDc5OCwgMC4wMDQ3OTMsIDAuMDA0Nzg5LCAwLjAwNDc4NywgMC4wMDQ3ODQiLCBcCi0gICAgICAgICAgIjAuMDA0OTQ0LCAwLjAwNDg1NCwgMC4wMDQ4MywgMC4wMDQ4MiwgMC4wMDQ4MDEsIDAuMDA0ODAyLCAwLjAwNDc5OCIsIFwKLSAgICAgICAgICAiMC4wMDUyMDUsIDAuMDA0OTU1LCAwLjAwNDg5NSwgMC4wMDQ4NjEsIDAuMDA0ODQ3LCAwLjAwNDgzNiwgMC4wMDQ4MjgiLCBcCi0gICAgICAgICAgIjAuMDA1NDUxLCAwLjAwNTA3LCAwLjAwNDk3NSwgMC4wMDQ5MjMsIDAuMDA0ODkxLCAwLjAwNDg3MywgMC4wMDQ4NjMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDE1NzIsIDAuMDAxNjA5LCAwLjAwMTYxMywgMC4wMDE2MTUsIDAuMDAxNjE3LCAwLjAwMTYxNywgMC4wMDE2MTgiLCBcCi0gICAgICAgICAgIjAuMDAxNDg2LCAwLjAwMTU3OCwgMC4wMDE1OTMsIDAuMDAxNjAxLCAwLjAwMTYwNiwgMC4wMDE2MDksIDAuMDAxNjExIiwgXAotICAgICAgICAgICIwLjAwMTUzMSwgMC4wMDE1NywgMC4wMDE1ODYsIDAuMDAxNTk2LCAwLjAwMTYwMSwgMC4wMDE2MDUsIDAuMDAxNjA3IiwgXAotICAgICAgICAgICIwLjAwMTYxNywgMC4wMDE1OCwgMC4wMDE1ODksIDAuMDAxNTk3LCAwLjAwMTYwMiwgMC4wMDE2MDUsIDAuMDAxNjA3IiwgXAotICAgICAgICAgICIwLjAwMTc3NywgMC4wMDE2MjYsIDAuMDAxNjE4LCAwLjAwMTYxNiwgMC4wMDE2MTYsIDAuMDAxNjE2LCAwLjAwMTYxNiIsIFwKLSAgICAgICAgICAiMC4wMDIwNTcsIDAuMDAxNzMsIDAuMDAxNjgsIDAuMDAxNjU3LCAwLjAwMTY0NywgMC4wMDE2NDEsIDAuMDAxNjM3IiwgXAotICAgICAgICAgICIwLjAwMjMzLCAwLjAwMTg0NywgMC4wMDE3NTYsIDAuMDAxNzA5LCAwLjAwMTY4NiwgMC4wMDE2NzMsIDAuMDAxNjY0Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IE5BTkQ0QlhMICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChOQU5ENEJYTCkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjMwOTE3MTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQU4pICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY1NTgzODsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2NTU4Mzg7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjU1ODE7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzIsIDAuMDAwMzQ4LCAwLjAwMDQzMywgMC4wMDA1MzksIDAuMDAwNjcxLCAwLjAwMDkwMiwgMC4wMDExMDciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDE2MzcsIDAuMDAxNjcyLCAwLjAwMTc0NiwgMC4wMDE4NTgsIDAuMDAxOTkyLCAwLjAwMjIxNiwgMC4wMDI0MTgiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY3NjY1MzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2NzY2NTM7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjc1ODg0OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDI5NiwgMC4wMDAyOTYsIDAuMDAwMjk2LCAwLjAwMDI5NiwgMC4wMDAyOTYsIDAuMDAwMjk2LCAwLjAwMDI5NiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDI5NywgMC4wMDAyOTcsIDAuMDAwMjk3LCAwLjAwMDI5NywgMC4wMDAyOTcsIDAuMDAwMjk3LCAwLjAwMDI5NyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQykgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjkyNTk5OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDY5MjU5OTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2OTIwMjE7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjk3LCAwLjAwMDI5NiwgMC4wMDAyOTYsIDAuMDAwMjk2LCAwLjAwMDI5NiwgMC4wMDAyOTYsIDAuMDAwMjk2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjk3LCAwLjAwMDI5OCwgMC4wMDAyOTgsIDAuMDAwMjk4LCAwLjAwMDI5OCwgMC4wMDAyOTgsIDAuMDAwMjk4Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihEKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2OTU4MjQ7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjk1NzI0OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDY5NTgyNDsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxNjIsIDAuMDAwMTYyLCAwLjAwMDE2MiwgMC4wMDAxNjIsIDAuMDAwMTYyLCAwLjAwMDE2MiwgMC4wMDAxNjIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAzMzcsIDAuMDAwMzM4LCAwLjAwMDMzOCwgMC4wMDAzMzcsIDAuMDAwMzM4LCAwLjAwMDMzOCwgMC4wMDAzMzgiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4wNjAwOTk1OwotICAgIGZ1bmN0aW9uIDogIighKCgoKCFBTikgQikgQykgRCkpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc0MTIsIDAuMDg0Njk4LCAwLjE3OTY2LCAwLjMzNzYxMywgMC40OTU1NjcsIDAuODYzODQzLCAxLjA3NDc5IiwgXAotICAgICAgICAgICIwLjA4MTMzMSwgMC4wOTE5MjksIDAuMTg2ODE5LCAwLjM0NDkzNSwgMC41MDI4ODUsIDAuODcxNTY3LCAxLjA4MjE0IiwgXAotICAgICAgICAgICIwLjA4NzE2NywgMC4wOTc3MzMsIDAuMTkyNjQ3LCAwLjM1MDY0MywgMC41MDg1OCwgMC44NzcwODEsIDEuMDg4MzciLCBcCi0gICAgICAgICAgIjAuMDkxMzM4LCAwLjEwMTg5OCwgMC4xOTY3ODQsIDAuMzU0ODI0LCAwLjUxMjcyOCwgMC44ODExMDIsIDEuMDkyMTYiLCBcCi0gICAgICAgICAgIjAuMDk0OTk0LCAwLjEwNTU2LCAwLjIwMDQyNywgMC4zNTgzODQsIDAuNTE2MzE1LCAwLjg4NDkyOSwgMS4wOTUyOSIsIFwKLSAgICAgICAgICAiMC4wOTk1ODMsIDAuMTEwMTY3LCAwLjIwNTAxMSwgMC4zNjI5NDIsIDAuNTIwODk5LCAwLjg4OTUyNSwgMS4xMDA0OSIsIFwKLSAgICAgICAgICAiMC4xMDMwNTYsIDAuMTEzNzE2LCAwLjIwODU4MSwgMC4zNjY0NTgsIDAuNTI0NDgzLCAwLjg5Mjk0OSwgMS4xMDMzIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEyODQwNCwgMC4xNTA1MjMsIDAuMzUwMDIzLCAwLjY4MjEzMiwgMS4wMTQ0NSwgMS43ODkwOCwgMi4yMzI4MyIsIFwKLSAgICAgICAgICAiMC4xMjgzOTIsIDAuMTUwNTQ1LCAwLjM0OTg2NiwgMC42ODIzNDIsIDEuMDE0NTksIDEuNzg5OTQsIDIuMjMyNDciLCBcCi0gICAgICAgICAgIjAuMTI4NTQ4LCAwLjE1MDYxOCwgMC4zNDk5NjUsIDAuNjgyMTgyLCAxLjAxNDQzLCAxLjc4OTg4LCAyLjIzMzQyIiwgXAotICAgICAgICAgICIwLjEyODY4NiwgMC4xNTA3MjYsIDAuMzQ5OTgsIDAuNjgyMjk3LCAxLjAxNDQsIDEuNzg5NjQsIDIuMjMyNDkiLCBcCi0gICAgICAgICAgIjAuMTI4NzU1LCAwLjE1MDgzMywgMC4zNDk5NzUsIDAuNjgyNDg0LCAxLjAxNDE1LCAxLjc4OTcsIDIuMjMyNDQiLCBcCi0gICAgICAgICAgIjAuMTI5MTEzLCAwLjE1MDk5NSwgMC4zNDk5ODYsIDAuNjgyMzc4LCAxLjAxNDE3LCAxLjc4OTU4LCAyLjIzMjkiLCBcCi0gICAgICAgICAgIjAuMTI5NTYxLCAwLjE1MTQzLCAwLjM1MDA1MSwgMC42ODIyOTcsIDEuMDE0MjYsIDEuNzg5NDYsIDIuMjMzMDMiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTk1MTQyLCAwLjIyNjUwNiwgMC41MDg4NzEsIDAuOTc4NDI0LCAxLjQ0NzA4LCAyLjU0MjE3LCAzLjE2ODk5IiwgXAotICAgICAgICAgICIwLjIwMjAxMywgMC4yMzMzNjIsIDAuNTE1Mjg5LCAwLjk4NjEyOSwgMS40NTQ2OSwgMi41NTEyNywgMy4xNzYzNyIsIFwKLSAgICAgICAgICAiMC4yMDcwNTEsIDAuMjM4NDgzLCAwLjUyMDM1NywgMC45OTA0NzQsIDEuNDU5NjQsIDIuNTU1MzksIDMuMTgxNDgiLCBcCi0gICAgICAgICAgIjAuMjEwNTEzLCAwLjI0MTg4NywgMC41MjM4ODMsIDAuOTkzNTg2LCAxLjQ2MzQ4LCAyLjU1OTAxLCAzLjE4NTAzIiwgXAotICAgICAgICAgICIwLjIxMzMxNCwgMC4yNDQ2OCwgMC41MjcxODgsIDAuOTk3MDM4LCAxLjQ2NzE3LCAyLjU2MjcxLCAzLjE4Nzg1IiwgXAotICAgICAgICAgICIwLjIxNjksIDAuMjQ4MjQ3LCAwLjUzMDI2LCAxLjAwMTA5LCAxLjQ2OTkyLCAyLjU2NjM3LCAzLjE5MjYzIiwgXAotICAgICAgICAgICIwLjIxOTU5MywgMC4yNTA5MiwgMC41MzMwODgsIDEuMDAyOTIsIDEuNDcyNDUsIDIuNTcwMDQsIDMuMTk0NCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zNjM0NTQsIDAuNDI4MDMzLCAxLjAwODc0LCAxLjk4MDQyLCAyLjk0NDY2LCA1LjIwNjA2LCA2LjQ5NzU3IiwgXAotICAgICAgICAgICIwLjM2Mzk4NCwgMC40Mjg2MzUsIDEuMDA5LCAxLjk3Njc0LCAyLjk0NTQyLCA1LjIxMTM3LCA2LjQ5NjA5IiwgXAotICAgICAgICAgICIwLjM2MzUzNywgMC40Mjc5NzMsIDEuMDEwNTQsIDEuOTc2OTQsIDIuOTUwMTcsIDUuMjA1MzQsIDYuNDk1NjciLCBcCi0gICAgICAgICAgIjAuMzYzMjgsIDAuNDI4NjUyLCAxLjAxMDU0LCAxLjk3ODM4LCAyLjk0NDQzLCA1LjIwNjg3LCA2LjQ5NTgyIiwgXAotICAgICAgICAgICIwLjM2MzMxOCwgMC40Mjg2MTUsIDEuMDA4NjUsIDEuOTc2OTMsIDIuOTQ0OTcsIDUuMjAzMzYsIDYuNDk3NjciLCBcCi0gICAgICAgICAgIjAuMzYzMjczLCAwLjQyODEzMSwgMS4wMDg5NywgMS45NzY2MywgMi45NTAyLCA1LjIwMzI5LCA2LjQ5MzE4IiwgXAotICAgICAgICAgICIwLjM2MzIyOCwgMC40Mjc4NjIsIDEuMDEwNDMsIDEuOTgwMjUsIDIuOTQ4NTgsIDUuMjA0MDYsIDYuNDk4MjQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDYzODkxLCAwLjA3NDQzNCwgMC4xNjkyMDgsIDAuMzI3MjI0LCAwLjQ4NTE2NCwgMC44NTM2NTQsIDEuMDY0MDkiLCBcCi0gICAgICAgICAgIjAuMDcxODQxLCAwLjA4MjM3NiwgMC4xNzcxOTIsIDAuMzM1MDQsIDAuNDkyOTI5LCAwLjg2MTM3OCwgMS4wNzI2NyIsIFwKLSAgICAgICAgICAiMC4wODE2OTgsIDAuMDkyMjA3LCAwLjE4NzA0OCwgMC4zNDQ5NTIsIDAuNTAyNjgxLCAwLjg3MTEzMSwgMS4wODIwNiIsIFwKLSAgICAgICAgICAiMC4wOTE4MjcsIDAuMTAyMjg5LCAwLjE5Njg5NywgMC4zNTQ4NzUsIDAuNTEyNTMzLCAwLjg4MDg0OCwgMS4wOTE5MyIsIFwKLSAgICAgICAgICAiMC4xMDI2NywgMC4xMTI0ODUsIDAuMjA2OTUsIDAuMzY0NjQ4LCAwLjUyMjY4LCAwLjg5MTM4NCwgMS4xMDEzMiIsIFwKLSAgICAgICAgICAiMC4xMTc4MiwgMC4xMjg1OSwgMC4yMjMyMzIsIDAuMzgwOTMsIDAuNTM4Nzk4LCAwLjkwNzcwMSwgMS4xMTc1IiwgXAotICAgICAgICAgICIwLjEyODcwMywgMC4xNDE3ODEsIDAuMjM3NjAzLCAwLjM5NTEyMiwgMC41NTMwODksIDAuOTIxMTkzLCAxLjEzMjY2Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEyNjUzNCwgMC4xNDg2OTMsIDAuMzQ3OTgyLCAwLjY4MDQxNCwgMS4wMTI0MywgMS43ODcyNiwgMi4yMzAyOSIsIFwKLSAgICAgICAgICAiMC4xMjY3NDIsIDAuMTQ4NzUxLCAwLjM0ODEyLCAwLjY4MDE2OSwgMS4wMTI1LCAxLjc4ODI4LCAyLjIzMDgyIiwgXAotICAgICAgICAgICIwLjEzMDg0OCwgMC4xNTE4OTIsIDAuMzQ4MTgxLCAwLjY4MDQyMiwgMS4wMTI0MiwgMS43ODgyMSwgMi4yMzA0IiwgXAotICAgICAgICAgICIwLjEzNzY1NCwgMC4xNTc5NywgMC4zNDkzODMsIDAuNjgwMjc5LCAxLjAxMjUyLCAxLjc4ODA4LCAyLjIzMDM5IiwgXAotICAgICAgICAgICIwLjE0NDk4LCAwLjE2NTU1MSwgMC4zNTI4MDQsIDAuNjgwMzE1LCAxLjAxMjUyLCAxLjc4ODA5LCAyLjIyOTk3IiwgXAotICAgICAgICAgICIwLjE1ODk1NCwgMC4xNzkyODUsIDAuMzYwNzg2LCAwLjY4MjQyNCwgMS4wMTI2NSwgMS43ODc2NiwgMi4yMjk3NiIsIFwKLSAgICAgICAgICAiMC4xNzIzMjksIDAuMTkwOTcxLCAwLjM2OTc0LCAwLjY4NTk1NSwgMS4wMTI5MywgMS43ODgyOSwgMi4yMzA2MiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xODQ2OTIsIDAuMjE2MTE0LCAwLjQ5ODE4MiwgMC45Njc4NTMsIDEuNDM3NzMsIDIuNTM0NDUsIDMuMTYwMjUiLCBcCi0gICAgICAgICAgIjAuMTg5ODUzLCAwLjIyMTMyNiwgMC41MDMxNTQsIDAuOTcyOTE1LCAxLjQ0MjUzLCAyLjUzODMyLCAzLjE2NDU0IiwgXAotICAgICAgICAgICIwLjE5NTY4MywgMC4yMjcxNTMsIDAuNTA5MzQzLCAwLjk3OTU2MSwgMS40NDk1MSwgMi41NDYyNywgMy4xNzE3NSIsIFwKLSAgICAgICAgICAiMC4yMDE2MTgsIDAuMjMyOTEzLCAwLjUxNTU3MiwgMC45ODQ4NjUsIDEuNDU1NTUsIDIuNTUxOCwgMy4xNzYzOCIsIFwKLSAgICAgICAgICAiMC4yMDc1MjUsIDAuMjM4OTM1LCAwLjUyMTA4NiwgMC45OTEwNTgsIDEuNDYwNjksIDIuNTU3MjQsIDMuMTgyOTEiLCBcCi0gICAgICAgICAgIjAuMjE3Njg2LCAwLjI0ODYwNiwgMC41MzA3OTQsIDEuMDAwOTUsIDEuNDcwNDgsIDIuNTY3MjIsIDMuMTkxOTMiLCBcCi0gICAgICAgICAgIjAuMjI2NzgyLCAwLjI1NzMyOSwgMC41Mzk0MjUsIDEuMDA5ODQsIDEuNDc5NDUsIDIuNTc1NjMsIDMuMjAxMDIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzYzNDE2LCAwLjQyNzk0MiwgMS4wMDg4MSwgMS45ODAzMSwgMi45NTAyNywgNS4yMTE3OCwgNi40OTk3NyIsIFwKLSAgICAgICAgICAiMC4zNjM5ODMsIDAuNDI3ODc1LCAxLjAwODczLCAxLjk3NzE0LCAyLjk1MDIsIDUuMjA3OTUsIDYuNDkyODciLCBcCi0gICAgICAgICAgIjAuMzYzMzA4LCAwLjQyNzk2OCwgMS4wMDg3NCwgMS45NzY4NywgMi45NDQ1NiwgNS4yMDM4NywgNi40OTM4IiwgXAotICAgICAgICAgICIwLjM2NDY4OSwgMC40Mjg5MzksIDEuMDA4NzUsIDEuOTc2OTcsIDIuOTQ0ODMsIDUuMjExNDcsIDYuNDk3NjEiLCBcCi0gICAgICAgICAgIjAuMzY1Njg0LCAwLjQzMDA5MiwgMS4wMTA1NCwgMS45ODAzOSwgMi45NTAxNywgNS4yMDQwOCwgNi40OTM4OCIsIFwKLSAgICAgICAgICAiMC4zNjk3NDUsIDAuNDMyOTc1LCAxLjAxMDU4LCAxLjk3NzExLCAyLjk1MDIyLCA1LjIwNDQ1LCA2LjQ5NTE0IiwgXAotICAgICAgICAgICIwLjM3NDgwOSwgMC40MzY3ODUsIDEuMDA5MzEsIDEuOTc2OTMsIDIuOTQ5OTgsIDUuMjAzOTYsIDYuNDk0MTEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDYyNzAxLCAwLjA3MzIzLCAwLjE2Nzk0NywgMC4zMjU5NTcsIDAuNDg0MDA1LCAwLjg1MjMwNiwgMS4wNjM5NSIsIFwKLSAgICAgICAgICAiMC4wNzA3NTksIDAuMDgxMjcyLCAwLjE3NjA0NiwgMC4zMzM5OCwgMC40OTE3NTQsIDAuODYwNTYsIDEuMDcwOTUiLCBcCi0gICAgICAgICAgIjAuMDgwNTM3LCAwLjA5MTAzNiwgMC4xODU4MTYsIDAuMzQzNTY5LCAwLjUwMTM4OSwgMC44Njk3NTQsIDEuMDgxMTkiLCBcCi0gICAgICAgICAgIjAuMDkwNjcyLCAwLjEwMTExNiwgMC4xOTU3LCAwLjM1MzU0NSwgMC41MTEyNzUsIDAuODc5NTgyLCAxLjA5MDY2IiwgXAotICAgICAgICAgICIwLjEwMTUyNiwgMC4xMTEzMjEsIDAuMjA1NzUzLCAwLjM2MzEwOCwgMC41MjEzNDQsIDAuODkwMTI4LCAxLjEwMDA2IiwgXAotICAgICAgICAgICIwLjExNjQzNywgMC4xMjcyOSwgMC4yMjIwMDUsIDAuMzc5NzE1LCAwLjUzNzUyNCwgMC45MDU4NSwgMS4xMTYyMyIsIFwKLSAgICAgICAgICAiMC4xMjc0MjUsIDAuMTQwMTgxLCAwLjIzNjM3MywgMC4zOTM5MDUsIDAuNTUxODIyLCAwLjkxOTkyMSwgMS4xMzE0OCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMjUwMiwgMC4xNDcxNzUsIDAuMzQ2NDEyLCAwLjY3ODg5MywgMS4wMTA4MywgMS43ODU3NCwgMi4yMjk1NSIsIFwKLSAgICAgICAgICAiMC4xMjUyMTUsIDAuMTQ3MjU3LCAwLjM0NjUwOCwgMC42Nzg4NDUsIDEuMDExMjcsIDEuNzg2MjgsIDIuMjI4NTYiLCBcCi0gICAgICAgICAgIjAuMTI5NDAxLCAwLjE1MDQyOCwgMC4zNDY1MywgMC42Nzg1NzcsIDEuMDEwNSwgMS43ODY0OCwgMi4yMjg5MSIsIFwKLSAgICAgICAgICAiMC4xMzYzMDUsIDAuMTU2NTY1LCAwLjM0NzcxOCwgMC42Nzg0NzEsIDEuMDExMTEsIDEuNzg3MTgsIDIuMjI4NzkiLCBcCi0gICAgICAgICAgIjAuMTQzNjExLCAwLjE2NDE3MSwgMC4zNTEzMSwgMC42Nzg0MDgsIDEuMDEwNDQsIDEuNzg2MzIsIDIuMjI3NTIiLCBcCi0gICAgICAgICAgIjAuMTU3NzIxLCAwLjE3Nzk5MSwgMC4zNTkyMjMsIDAuNjgwNDE3LCAxLjAxMDkzLCAxLjc4NDk0LCAyLjIyNzg5IiwgXAotICAgICAgICAgICIwLjE3MTMzNSwgMC4xODk4OTcsIDAuMzY4Mjc3LCAwLjY4NDYxNiwgMS4wMTExNiwgMS43ODczOCwgMi4yMjg5NiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xODE5NDQsIDAuMjEzMzMxLCAwLjQ5NTU3NiwgMC45NjU3MDMsIDEuNDM0NzQsIDIuNTMxMSwgMy4xNTcxNiIsIFwKLSAgICAgICAgICAiMC4xODc5MzYsIDAuMjE5MTcxLCAwLjUwMTExNCwgMC45NzE4NDgsIDEuNDQwNjYsIDIuNTM2NjgsIDMuMTYyNjMiLCBcCi0gICAgICAgICAgIjAuMTk1NTIzLCAwLjIyNjkzOCwgMC41MDg5MzQsIDAuOTc5NTg4LCAxLjQ0OTIzLCAyLjU0NDgsIDMuMTcwNDQiLCBcCi0gICAgICAgICAgIjAuMjAzMjk0LCAwLjIzNDU5MywgMC41MTY2MTgsIDAuOTg3NDMxLCAxLjQ1Nzk3LCAyLjU1MzQ4LCAzLjE3OTIzIiwgXAotICAgICAgICAgICIwLjIxMDk3NywgMC4yNDI0MTEsIDAuNTI0NDExLCAwLjk5NDQyMywgMS40NjQ3NywgMi41NjExNCwgMy4xODU2OSIsIFwKLSAgICAgICAgICAiMC4yMjM3MDYsIDAuMjU1MTEzLCAwLjUzNjkwNywgMS4wMDczNiwgMS40Nzc4MywgMi41NzI2LCAzLjE5ODYzIiwgXAotICAgICAgICAgICIwLjIzNTAwMSwgMC4yNjYxNzksIDAuNTQ4MjA2LCAxLjAxNzYsIDEuNDg3MzgsIDIuNTgzNjUsIDMuMjA4OTYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzYzMzYxLCAwLjQyNzkzNCwgMS4wMDg3NCwgMS45NzY3OCwgMi45NTAwOSwgNS4yMTE1NSwgNi40OTIxIiwgXAotICAgICAgICAgICIwLjM2MzMzNSwgMC40Mjg2MzUsIDEuMDA5NDgsIDEuOTc2NzgsIDIuOTQ1MzIsIDUuMjA0NzMsIDYuNDkzMDgiLCBcCi0gICAgICAgICAgIjAuMzY0MDAzLCAwLjQyODY0NywgMS4wMTA1LCAxLjk3Njc5LCAyLjk0NTU5LCA1LjIxMTI5LCA2LjQ5Mjg1IiwgXAotICAgICAgICAgICIwLjM2NDY5NiwgMC40MjgxOTksIDEuMDA5MiwgMS45NzY3OCwgMi45NDQ3NSwgNS4yMDIzMywgNi40OTMzNSIsIFwKLSAgICAgICAgICAiMC4zNjYwNTMsIDAuNDI5NzU1LCAxLjAxMDUyLCAxLjk3NjkzLCAyLjk0NDc4LCA1LjIwMjksIDYuNDk3MTkiLCBcCi0gICAgICAgICAgIjAuMzcxNDgzLCAwLjQzNDM4LCAxLjAwODg2LCAxLjk3NjkzLCAyLjk0NDgyLCA1LjIwNTI4LCA2LjQ5MzY3IiwgXAotICAgICAgICAgICIwLjM3Nzg0NiwgMC40MzkzNzMsIDEuMDExMDcsIDEuOTgwMzcsIDIuOTUwMjQsIDUuMjA0NjksIDYuNDk1MzEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDYxNDY0LCAwLjA3MTk4OSwgMC4xNjY3NDcsIDAuMzI0OTUsIDAuNDgyNjQ2LCAwLjg1MTQwNywgMS4wNjE4MSIsIFwKLSAgICAgICAgICAiMC4wNjk0NTcsIDAuMDc5OTg4LCAwLjE3NDczOCwgMC4zMzI1NzcsIDAuNDkwNDQ0LCAwLjg1OTA4OCwgMS4wNjk3MyIsIFwKLSAgICAgICAgICAiMC4wNzk0NjUsIDAuMDg5OTY0LCAwLjE4NDY2NiwgMC4zNDI0NjgsIDAuNTAwMzY0LCAwLjg2ODgzNSwgMS4wNzk2MyIsIFwKLSAgICAgICAgICAiMC4wODk3MzUsIDAuMTAwMTgxLCAwLjE5NDgxNiwgMC4zNTI2OTMsIDAuNTEwMzk5LCAwLjg3ODY5MywgMS4wODk3NiIsIFwKLSAgICAgICAgICAiMC4wOTk3MTEsIDAuMTEwNDkyLCAwLjIwNDk4MSwgMC4zNjI2NDcsIDAuNTIwNjgyLCAwLjg4OTQyNywgMS4wOTkzMiIsIFwKLSAgICAgICAgICAiMC4xMTQ0MjcsIDAuMTI2Mjk2LCAwLjIyMTIwNCwgMC4zNzg5MiwgMC41MzY3ODYsIDAuOTA1NzQ2LCAxLjExNTQ2IiwgXAotICAgICAgICAgICIwLjEyNDgyNywgMC4xMzc5ODMsIDAuMjM1NTI3LCAwLjM5MzA5OCwgMC41NTEwNDQsIDAuOTE5MTU4LCAxLjEzMDYxIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEyMzYwMSwgMC4xNDU1OTEsIDAuMzQ0NjU3LCAwLjY3NzI0NiwgMS4wMDk4OSwgMS43ODQ2MywgMi4yMjcxMiIsIFwKLSAgICAgICAgICAiMC4xMjM4MDYsIDAuMTQ1ODIxLCAwLjM0NDY2OSwgMC42NzY3MDMsIDEuMDEwNDEsIDEuNzg1NDgsIDIuMjI3MDgiLCBcCi0gICAgICAgICAgIjAuMTI3OTk4LCAwLjE0ODg2OSwgMC4zNDQ5NTcsIDAuNjc2NjcsIDEuMDA4NTksIDEuNzg1MDIsIDIuMjI3MTIiLCBcCi0gICAgICAgICAgIjAuMTM0NjI5LCAwLjE1NDg2NywgMC4zNDU5MjgsIDAuNjc3MjQ4LCAxLjAwOTU2LCAxLjc4NjQyLCAyLjIyNzA0IiwgXAotICAgICAgICAgICIwLjE0MjI3MSwgMC4xNjIyNTQsIDAuMzQ5ODczLCAwLjY3NzA3OSwgMS4wMDk1MywgMS43ODQ2NSwgMi4yMjU4OSIsIFwKLSAgICAgICAgICAiMC4xNTcxNzEsIDAuMTc2MDcyLCAwLjM1NzczMywgMC42Nzk2OTksIDEuMDA5NSwgMS43ODM4MywgMi4yMjU4IiwgXAotICAgICAgICAgICIwLjE3MTE1NSwgMC4xOTAwMjMsIDAuMzY2NDg1LCAwLjY4MzcwNywgMS4wMDk1MSwgMS43ODU5NCwgMi4yMjY2NCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNzc3NjUsIDAuMjA4OTc3LCAwLjQ5MDg1MiwgMC45NjA2MTcsIDEuNDMwNzksIDIuNTI3MDksIDMuMTUyMTQiLCBcCi0gICAgICAgICAgIjAuMTg0MTQ2LCAwLjIxNTQ3MSwgMC40OTc0OTcsIDAuOTY3MzcxLCAxLjQzNjc3LCAyLjUzMjc3LCAzLjE1ODk3IiwgXAotICAgICAgICAgICIwLjE5MjUzLCAwLjIyMzkwNCwgMC41MDU4NDcsIDAuOTc1ODk0LCAxLjQ0NjE0LCAyLjU0Mjg4LCAzLjE2ODMxIiwgXAotICAgICAgICAgICIwLjIwMTIyMywgMC4yMzIzODMsIDAuNTE0MjM3LCAwLjk4NDYyNiwgMS40NTQzMywgMi41NTA0NSwgMy4xNzUyMiIsIFwKLSAgICAgICAgICAiMC4yMDk4MDcsIDAuMjQxMDIxLCAwLjUyMjQ3NywgMC45OTIxNjUsIDEuNDYxOCwgMi41NTgzNSwgMy4xODQ1NyIsIFwKLSAgICAgICAgICAiMC4yMjQxMzksIDAuMjU1MjYzLCAwLjUzNjUzMywgMS4wMDU5MywgMS40NzU1LCAyLjU3MjQ2LCAzLjE5NzE0IiwgXAotICAgICAgICAgICIwLjIzNzAzNiwgMC4yNjc4MjQsIDAuNTQ4NDAxLCAxLjAxNzk1LCAxLjQ4Njk5LCAyLjU4Mjc0LCAzLjIwODc5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjM2MzM5NiwgMC40Mjg2NTIsIDEuMDEwNTQsIDEuOTc3MjMsIDIuOTUwMywgNS4yMTE1NiwgNi40OTM5NSIsIFwKLSAgICAgICAgICAiMC4zNjM5OTMsIDAuNDI3OTI3LCAxLjAxMDU0LCAxLjk3NjYsIDIuOTQ2NzQsIDUuMjA0NDIsIDYuNDkzNSIsIFwKLSAgICAgICAgICAiMC4zNjMzNTEsIDAuNDI4NjI3LCAxLjAwOTExLCAxLjk3NzEzLCAyLjk0NDc0LCA1LjIwNDAxLCA2LjQ5MjUyIiwgXAotICAgICAgICAgICIwLjM2NDcyNywgMC40Mjc5NjcsIDEuMDA4NjQsIDEuOTc2ODIsIDIuOTQ0NjIsIDUuMjExMzcsIDYuNDkyNyIsIFwKLSAgICAgICAgICAiMC4zNjY4MjMsIDAuNDI5ODU4LCAxLjAxMDUzLCAxLjk4MDM2LCAyLjk0NywgNS4yMDMzNiwgNi40OTQyMyIsIFwKLSAgICAgICAgICAiMC4zNzM2ODEsIDAuNDM1OTYsIDEuMDA4NjQsIDEuOTgwMjIsIDIuOTQ1MjEsIDUuMjAzMzQsIDYuNDk0NDMiLCBcCi0gICAgICAgICAgIjAuMzgxNDMzLCAwLjQ0MjA1OSwgMS4wMTExMSwgMS45NzcyNCwgMi45NDQ4NSwgNS4yMDgzNSwgNi40OTM0MyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkFOIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI1NTUsIDAuMDAyNTU1LCAwLjAwMjU1NSwgMC4wMDI1NTUsIDAuMDAyNTU1LCAwLjAwMjU1NCwgMC4wMDI1NTIiLCBcCi0gICAgICAgICAgIjAuMDAyNTc4LCAwLjAwMjU3OCwgMC4wMDI1NzgsIDAuMDAyNTc4LCAwLjAwMjU3NywgMC4wMDI1NzcsIDAuMDAyNTc2IiwgXAotICAgICAgICAgICIwLjAwMjY1NiwgMC4wMDI2NTYsIDAuMDAyNjU2LCAwLjAwMjY1NiwgMC4wMDI2NTUsIDAuMDAyNjU1LCAwLjAwMjY1NCIsIFwKLSAgICAgICAgICAiMC4wMDI3NzEsIDAuMDAyNzcxLCAwLjAwMjc3MSwgMC4wMDI3NywgMC4wMDI3NywgMC4wMDI3NywgMC4wMDI3NjkiLCBcCi0gICAgICAgICAgIjAuMDAyOTEzLCAwLjAwMjkxMywgMC4wMDI5MDEsIDAuMDAyOTEzLCAwLjAwMjkwMSwgMC4wMDI5MTIsIDAuMDAyOSIsIFwKLSAgICAgICAgICAiMC4wMDMxMjIsIDAuMDAzMTM0LCAwLjAwMzEzMywgMC4wMDMxMzMsIDAuMDAzMTE5LCAwLjAwMzExOSwgMC4wMDMxMzEiLCBcCi0gICAgICAgICAgIjAuMDAzMzI1LCAwLjAwMzM0LCAwLjAwMzMzNywgMC4wMDMzMzcsIDAuMDAzMzM4LCAwLjAwMzMzNSwgMC4wMDMzMTkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI2MTEsIDAuMDAyNjEyLCAwLjAwMjYxMywgMC4wMDI2MTQsIDAuMDAyNjE0LCAwLjAwMjYxNCwgMC4wMDI2MTQiLCBcCi0gICAgICAgICAgIjAuMDAyNjI4LCAwLjAwMjYyOSwgMC4wMDI2MzMsIDAuMDAyNjM0LCAwLjAwMjYzNSwgMC4wMDI2MzUsIDAuMDAyNjM1IiwgXAotICAgICAgICAgICIwLjAwMjcxMiwgMC4wMDI3MTQsIDAuMDAyNzE4LCAwLjAwMjcyMSwgMC4wMDI3MjEsIDAuMDAyNzIyLCAwLjAwMjcyMiIsIFwKLSAgICAgICAgICAiMC4wMDI4MjMsIDAuMDAyODMxLCAwLjAwMjgzOCwgMC4wMDI4MzMsIDAuMDAyODQxLCAwLjAwMjg0MiwgMC4wMDI4NDIiLCBcCi0gICAgICAgICAgIjAuMDAyOTU1LCAwLjAwMjk0OCwgMC4wMDI5NjQsIDAuMDAyOTY2LCAwLjAwMjk1OSwgMC4wMDI5NiwgMC4wMDI5NjgiLCBcCi0gICAgICAgICAgIjAuMDAzMTcxLCAwLjAwMzE3MywgMC4wMDMxNzEsIDAuMDAzMTgzLCAwLjAwMzE4NCwgMC4wMDMxODUsIDAuMDAzMTg2IiwgXAotICAgICAgICAgICIwLjAwMzM1NywgMC4wMDMzNTksIDAuMDAzMzgsIDAuMDAzMzcsIDAuMDAzMzcxLCAwLjAwMzM4NSwgMC4wMDMzODUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDIxNTMsIDAuMDAyMTUzLCAwLjAwMjE1NCwgMC4wMDIxNTQsIDAuMDAyMTUzLCAwLjAwMjE1NCwgMC4wMDIxNTMiLCBcCi0gICAgICAgICAgIjAuMDAyMTQ5LCAwLjAwMjE0OSwgMC4wMDIxNSwgMC4wMDIxNDksIDAuMDAyMTUsIDAuMDAyMTQ4LCAwLjAwMjE0OSIsIFwKLSAgICAgICAgICAiMC4wMDIxNjcsIDAuMDAyMTY1LCAwLjAwMjE1NywgMC4wMDIxNTIsIDAuMDAyMTUxLCAwLjAwMjE1LCAwLjAwMjE0OSIsIFwKLSAgICAgICAgICAiMC4wMDIxOTYsIDAuMDAyMTksIDAuMDAyMTcsIDAuMDAyMTYyLCAwLjAwMjE1NiwgMC4wMDIxNTIsIDAuMDAyMTUxIiwgXAotICAgICAgICAgICIwLjAwMjIwOCwgMC4wMDIyMjMsIDAuMDAyMTg1LCAwLjAwMjE2OSwgMC4wMDIxNjQsIDAuMDAyMTU1LCAwLjAwMjE1MyIsIFwKLSAgICAgICAgICAiMC4wMDIyNjMsIDAuMDAyMjgzLCAwLjAwMjIxOCwgMC4wMDIxODksIDAuMDAyMTc4LCAwLjAwMjE2NiwgMC4wMDIxNiIsIFwKLSAgICAgICAgICAiMC4wMDIzMjcsIDAuMDAyMzI4LCAwLjAwMjI1MywgMC4wMDIyMDgsIDAuMDAyMTkzLCAwLjAwMjE3NSwgMC4wMDIxNyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDY2NCwgMC4wMDA2NjQsIDAuMDAwNjY3LCAwLjAwMDY2NywgMC4wMDA2NjgsIDAuMDAwNjY4LCAwLjAwMDY2OCIsIFwKLSAgICAgICAgICAiMC4wMDA2NDgsIDAuMDAwNjUsIDAuMDAwNjYsIDAuMDAwNjY0LCAwLjAwMDY2NSwgMC4wMDA2NjcsIDAuMDAwNjY3IiwgXAotICAgICAgICAgICIwLjAwMDYzNSwgMC4wMDA2MzksIDAuMDAwNjU0LCAwLjAwMDY2LCAwLjAwMDY2MywgMC4wMDA2NjUsIDAuMDAwNjY2IiwgXAotICAgICAgICAgICIwLjAwMDYzMywgMC4wMDA2MzYsIDAuMDAwNjUsIDAuMDAwNjU4LCAwLjAwMDY2MSwgMC4wMDA2NjQsIDAuMDAwNjY1IiwgXAotICAgICAgICAgICIwLjAwMDY0LCAwLjAwMDY0MSwgMC4wMDA2NTEsIDAuMDAwNjU4LCAwLjAwMDY2MSwgMC4wMDA2NjQsIDAuMDAwNjY1IiwgXAotICAgICAgICAgICIwLjAwMDY3MSwgMC4wMDA2NjcsIDAuMDAwNjYyLCAwLjAwMDY2MywgMC4wMDA2NjQsIDAuMDAwNjY2LCAwLjAwMDY2NiIsIFwKLSAgICAgICAgICAiMC4wMDA3MTMsIDAuMDAwNzAyLCAwLjAwMDY3OSwgMC4wMDA2NzIsIDAuMDAwNjcsIDAuMDAwNjY5LCAwLjAwMDY2OSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTg0MiwgMC4wMDE4NDMsIDAuMDAxODQzLCAwLjAwMTg0MywgMC4wMDE4NDQsIDAuMDAxODQ0LCAwLjAwMTg0NCIsIFwKLSAgICAgICAgICAiMC4wMDE4NDYsIDAuMDAxODQ3LCAwLjAwMTg0OCwgMC4wMDE4NDcsIDAuMDAxODQ4LCAwLjAwMTg0NywgMC4wMDE4NDgiLCBcCi0gICAgICAgICAgIjAuMDAxODYzLCAwLjAwMTg2MiwgMC4wMDE4NTYsIDAuMDAxODUyLCAwLjAwMTg1MSwgMC4wMDE4NSwgMC4wMDE4NTEiLCBcCi0gICAgICAgICAgIjAuMDAxODkyLCAwLjAwMTg4NiwgMC4wMDE4NjksIDAuMDAxODYsIDAuMDAxODU2LCAwLjAwMTg1NCwgMC4wMDE4NTMiLCBcCi0gICAgICAgICAgIjAuMDAxOTAzLCAwLjAwMTkxOCwgMC4wMDE4ODUsIDAuMDAxODY3LCAwLjAwMTg2NCwgMC4wMDE4NTcsIDAuMDAxODU2IiwgXAotICAgICAgICAgICIwLjAwMTk1NiwgMC4wMDE5NzcsIDAuMDAxOTE1LCAwLjAwMTg4OCwgMC4wMDE4NzcsIDAuMDAxODY2LCAwLjAwMTg2MSIsIFwKLSAgICAgICAgICAiMC4wMDIwMTgsIDAuMDAyMDA3LCAwLjAwMTk0OSwgMC4wMDE5MDgsIDAuMDAxODkyLCAwLjAwMTg3NSwgMC4wMDE4NyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDY2NCwgMC4wMDA2NjQsIDAuMDAwNjY3LCAwLjAwMDY2OCwgMC4wMDA2NjgsIDAuMDAwNjY4LCAwLjAwMDY2NyIsIFwKLSAgICAgICAgICAiMC4wMDA2NDgsIDAuMDAwNjUxLCAwLjAwMDY2LCAwLjAwMDY2NCwgMC4wMDA2NjYsIDAuMDAwNjY3LCAwLjAwMDY2NyIsIFwKLSAgICAgICAgICAiMC4wMDA2MzksIDAuMDAwNjQyLCAwLjAwMDY1NSwgMC4wMDA2NjEsIDAuMDAwNjYzLCAwLjAwMDY2NiwgMC4wMDA2NjYiLCBcCi0gICAgICAgICAgIjAuMDAwNjQyLCAwLjAwMDY0NCwgMC4wMDA2NTQsIDAuMDAwNjYsIDAuMDAwNjYzLCAwLjAwMDY2NSwgMC4wMDA2NjUiLCBcCi0gICAgICAgICAgIjAuMDAwNjU3LCAwLjAwMDY1NiwgMC4wMDA2NTgsIDAuMDAwNjYyLCAwLjAwMDY2NCwgMC4wMDA2NjUsIDAuMDAwNjY2IiwgXAotICAgICAgICAgICIwLjAwMDY5NCwgMC4wMDA2ODksIDAuMDAwNjcyLCAwLjAwMDY2OSwgMC4wMDA2NjgsIDAuMDAwNjY4LCAwLjAwMDY2OCIsIFwKLSAgICAgICAgICAiMC4wMDA3MzcsIDAuMDAwNzI4LCAwLjAwMDY5MSwgMC4wMDA2NzgsIDAuMDAwNjc1LCAwLjAwMDY3MiwgMC4wMDA2NzEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJEIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDE1MywgMC4wMDE1MzEsIDAuMDAxNTMyLCAwLjAwMTUzMiwgMC4wMDE1MzIsIDAuMDAxNTMzLCAwLjAwMTUzMiIsIFwKLSAgICAgICAgICAiMC4wMDE1MzYsIDAuMDAxNTM2LCAwLjAwMTUzOSwgMC4wMDE1NDIsIDAuMDAxNTQxLCAwLjAwMTU0MSwgMC4wMDE1NDEiLCBcCi0gICAgICAgICAgIjAuMDAxNTQ5LCAwLjAwMTU0OCwgMC4wMDE1NDYsIDAuMDAxNTQ1LCAwLjAwMTU0NSwgMC4wMDE1NDYsIDAuMDAxNTQ2IiwgXAotICAgICAgICAgICIwLjAwMTU3LCAwLjAwMTU2NiwgMC4wMDE1NTYsIDAuMDAxNTUxLCAwLjAwMTU0OCwgMC4wMDE1NDgsIDAuMDAxNTQ3IiwgXAotICAgICAgICAgICIwLjAwMTU5MywgMC4wMDE1OSwgMC4wMDE1NjgsIDAuMDAxNTUyLCAwLjAwMTU1NCwgMC4wMDE1NDksIDAuMDAxNTQ5IiwgXAotICAgICAgICAgICIwLjAwMTY2MSwgMC4wMDE2NDcsIDAuMDAxNTk2LCAwLjAwMTU3NiwgMC4wMDE1NjcsIDAuMDAxNTU4LCAwLjAwMTU1NCIsIFwKLSAgICAgICAgICAiMC4wMDE3MzMsIDAuMDAxNzA4LCAwLjAwMTYyOCwgMC4wMDE1OTQsIDAuMDAxNTgxLCAwLjAwMTU2NiwgMC4wMDE1NjIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDA2NjMsIDAuMDAwNjY0LCAwLjAwMDY2NiwgMC4wMDA2NjcsIDAuMDAwNjY4LCAwLjAwMDY2OCwgMC4wMDA2NjgiLCBcCi0gICAgICAgICAgIjAuMDAwNjUxLCAwLjAwMDY1NCwgMC4wMDA2NjEsIDAuMDAwNjY1LCAwLjAwMDY2NiwgMC4wMDA2NjcsIDAuMDAwNjY3IiwgXAotICAgICAgICAgICIwLjAwMDY1MywgMC4wMDA2NTQsIDAuMDAwNjYsIDAuMDAwNjY0LCAwLjAwMDY2NSwgMC4wMDA2NjcsIDAuMDAwNjY3IiwgXAotICAgICAgICAgICIwLjAwMDY3NSwgMC4wMDA2NzMsIDAuMDAwNjY4LCAwLjAwMDY2OCwgMC4wMDA2NjgsIDAuMDAwNjY4LCAwLjAwMDY2OCIsIFwKLSAgICAgICAgICAiMC4wMDA3MDIsIDAuMDAwNjk2LCAwLjAwMDY3OCwgMC4wMDA2NzMsIDAuMDAwNjcxLCAwLjAwMDY3LCAwLjAwMDY2OSIsIFwKLSAgICAgICAgICAiMC4wMDA3NjQsIDAuMDAwNzUzLCAwLjAwMDcwNSwgMC4wMDA2ODcsIDAuMDAwNjgxLCAwLjAwMDY3NSwgMC4wMDA2NzQiLCBcCi0gICAgICAgICAgIjAuMDAwODI3LCAwLjAwMDgwOSwgMC4wMDA3MzcsIDAuMDAwNzA0LCAwLjAwMDY5MywgMC4wMDA2ODIsIDAuMDAwNjc5Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogTkFORDRYMSAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChOQU5ENFgxKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMzYwMjExOwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA5MTE1NDU7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwOTExNTQ1OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDkwOTY1NDsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA1MjQsIDAuMDAwNTI0LCAwLjAwMDUyNCwgMC4wMDA1MjMsIDAuMDAwNTIzLCAwLjAwMDUyMywgMC4wMDA1MjMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA1MjUsIDAuMDAwNTI2LCAwLjAwMDUyNSwgMC4wMDA1MjUsIDAuMDAwNTI2LCAwLjAwMDUyNSwgMC4wMDA1MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDkzNDE2MjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA5MzQxNjI7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwOTMyNjYzOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDUyNCwgMC4wMDA1MjQsIDAuMDAwNTI0LCAwLjAwMDUyMywgMC4wMDA1MjQsIDAuMDAwNTI0LCAwLjAwMDUyMyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDUyNSwgMC4wMDA1MjUsIDAuMDAwNTI2LCAwLjAwMDUyNiwgMC4wMDA1MjYsIDAuMDAwNTI2LCAwLjAwMDUyNiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQykgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwOTQxMzA0OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDk0MTMwNDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA5NDAxOTU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNTI0LCAwLjAwMDUyNCwgMC4wMDA1MjQsIDAuMDAwNTIzLCAwLjAwMDUyMywgMC4wMDA1MjMsIDAuMDAwNTIzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNTI1LCAwLjAwMDUyNSwgMC4wMDA1MjUsIDAuMDAwNTI2LCAwLjAwMDUyNiwgMC4wMDA1MjYsIDAuMDAwNTI2Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihEKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA5MTg4OTc7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwOTE4NDI4OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDkxODg5NzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAzMTksIDAuMDAwMzE5LCAwLjAwMDMxOSwgMC4wMDAzMTgsIDAuMDAwMzE4LCAwLjAwMDMxOCwgMC4wMDAzMTgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA1OTYsIDAuMDAwNTk2LCAwLjAwMDU5NiwgMC4wMDA1OTYsIDAuMDAwNTk2LCAwLjAwMDU5NiwgMC4wMDA1OTYiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4wOTk3MjExOwotICAgIGZ1bmN0aW9uIDogIighKCgoQSBCKSBDKSBEKSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0MTU1MywgMC4wNjAxMzcsIDAuMTY0NzY3LCAwLjI1Njg5MSwgMC4zNzk3ODIsIDAuNjI1NTA4LCAwLjc3OTA2NCIsIFwKLSAgICAgICAgICAiMC4wNDk3NCwgMC4wNjgzMDEsIDAuMTcyODY5LCAwLjI2NDkyNCwgMC4zODc5NzIsIDAuNjMzNjMsIDAuNzg3MTc1IiwgXAotICAgICAgICAgICIwLjA2MDA2MSwgMC4wNzg1MzQsIDAuMTgzMTIzLCAwLjI3NTI1MiwgMC4zOTc5MjUsIDAuNjQzODgsIDAuNzk3MzE1IiwgXAotICAgICAgICAgICIwLjA3MDQ1NywgMC4wODkwOTEsIDAuMTkzNTAxLCAwLjI4NTcwNiwgMC40MDg0MTIsIDAuNjUzOTY3LCAwLjgwNzU3MyIsIFwKLSAgICAgICAgICAiMC4wNzk0NzIsIDAuMDk5NzY1LCAwLjIwMzk5MywgMC4yOTYwNDUsIDAuNDE4ODU5LCAwLjY2NDI4NCwgMC44MTc3IiwgXAotICAgICAgICAgICIwLjA5MTE0NiwgMC4xMTQ2NjYsIDAuMjIwNzU4LCAwLjMxMjc3NSwgMC40MzU1ODEsIDAuNjgxMDkyLCAwLjgzNDc4NSIsIFwKLSAgICAgICAgICAiMC4xMDAwMTIsIDAuMTI1NjIxLCAwLjIzNTUxMiwgMC4zMjc0MDgsIDAuNDUwMTAzLCAwLjY5NTY5NywgMC44NDkxMTIiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc5MTI0LCAwLjExNzg4LCAwLjMzNzYzOSwgMC41MzEzNTgsIDAuNzg5OTk1LCAxLjMwNjgsIDEuNjMwMjQiLCBcCi0gICAgICAgICAgIjAuMDgwMjQ2LCAwLjExODA2OSwgMC4zMzc1ODUsIDAuNTMxMzU0LCAwLjc5MDIyNCwgMS4zMDY5MiwgMS42MzAyNCIsIFwKLSAgICAgICAgICAiMC4wODY0NDQsIDAuMTIyMzM4LCAwLjMzNzUzOSwgMC41MzE1MjEsIDAuNzg5NzQ1LCAxLjMwNzEzLCAxLjYyOTgyIiwgXAotICAgICAgICAgICIwLjA5NDc0MSwgMC4xMjkxNjYsIDAuMzM4NzI3LCAwLjUzMTQ4LCAwLjc5MDAxLCAxLjMwNzAzLCAxLjYzMDA2IiwgXAotICAgICAgICAgICIwLjEwNDA3MywgMC4xMzcyNjksIDAuMzQyMDY2LCAwLjUzMjAwMiwgMC43ODk3NiwgMS4zMDY1NSwgMS42MzA3NSIsIFwKLSAgICAgICAgICAiMC4xMTk2MDksIDAuMTUxNjY1LCAwLjM1MDA0LCAwLjUzNTkwNiwgMC43OTA0MzcsIDEuMzA3MjksIDEuNjI5NTciLCBcCi0gICAgICAgICAgIjAuMTMxODM1LCAwLjE2NTM1NywgMC4zNTg4NTUsIDAuNTQxNzIzLCAwLjc5Mjc2NSwgMS4zMDYzNywgMS42MjkzIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEyNTM4OSwgMC4xODQyODQsIDAuNTE4MDY4LCAwLjgxMTg5LCAxLjIwNDc5LCAxLjk5MDA5LCAyLjQ3OTQzIiwgXAotICAgICAgICAgICIwLjEzMDMwMiwgMC4xODkzMjIsIDAuNTIyODAyLCAwLjgxNjgsIDEuMjA5NDcsIDEuOTk0NDEsIDIuNDg0MSIsIFwKLSAgICAgICAgICAiMC4xMzUwMzQsIDAuMTk0MTExLCAwLjUyODA3LCAwLjgyMjgxMiwgMS4yMTQ0NywgMS45OTgyOSwgMi40ODk1MSIsIFwKLSAgICAgICAgICAiMC4xMzk2MjMsIDAuMTk4NjY3LCAwLjUzMjc4LCAwLjgyNjYwNywgMS4yMTg4NSwgMi4wMDM2NCwgMi40OTQ0NyIsIFwKLSAgICAgICAgICAiMC4xNDQyMjcsIDAuMjAzMjMyLCAwLjUzNzAwNCwgMC44MzEyMTIsIDEuMjI0NzQsIDIuMDA4OTMsIDIuNDk3NzEiLCBcCi0gICAgICAgICAgIjAuMTUxOTY3LCAwLjIxMDcyNCwgMC41NDQzNjksIDAuODM4NTc5LCAxLjIzMTA1LCAyLjAxNTE4LCAyLjUwNjA3IiwgXAotICAgICAgICAgICIwLjE1ODQ3OCwgMC4yMTc1ODMsIDAuNTUwOTc0LCAwLjg0NTE2MiwgMS4yMzgxMywgMi4wMjMzNCwgMi41MTE2NyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMzYzNiwgMC4zNTY1MzcsIDEuMDM5MSwgMS42NDQxNywgMi40NDQ0NiwgNC4wNTAzNCwgNS4wNTQxMiIsIFwKLSAgICAgICAgICAiMC4yMzYzOSwgMC4zNTcwNzEsIDEuMDM5MjgsIDEuNjQzOCwgMi40NDg2NywgNC4wNTA2MiwgNS4wNjI1NiIsIFwKLSAgICAgICAgICAiMC4yMzYyNywgMC4zNTcwMjYsIDEuMDM5MjQsIDEuNjQxMjksIDIuNDQ0NTksIDQuMDUwOTYsIDUuMDUzOTQiLCBcCi0gICAgICAgICAgIjAuMjM3OTA5LCAwLjM1NzU5MywgMS4wMzkxLCAxLjY0MjUxLCAyLjQ0NTA3LCA0LjA1MDc0LCA1LjA1Mzk4IiwgXAotICAgICAgICAgICIwLjIzOTQzMywgMC4zNTgxNDMsIDEuMDM5MTEsIDEuNjQyOTMsIDIuNDQ0MzEsIDQuMDUwNzEsIDUuMDU0NjUiLCBcCi0gICAgICAgICAgIjAuMjQzNDIxLCAwLjM2MTEzOSwgMS4wMzkxMywgMS42NDM4OSwgMi40NDg1MSwgNC4wNTE0NCwgNS4wNjI1OCIsIFwKLSAgICAgICAgICAiMC4yNDc2NzEsIDAuMzY0Mjg0LCAxLjA0MTM0LCAxLjY0Mzg1LCAyLjQ0NDUsIDQuMDUwNTYsIDUuMDU5NjYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQxMTQ4LCAwLjA1OTg0NCwgMC4xNjU1MiwgMC4yNTg3NTQsIDAuMzgzMDc3LCAwLjYzMTc3NywgMC43ODY4MzYiLCBcCi0gICAgICAgICAgIjAuMDQ5Mzc5LCAwLjA2ODEsIDAuMTczNzc4LCAwLjI2NjkzNywgMC4zOTExNjYsIDAuNjM5NDI0LCAwLjc5NTA3IiwgXAotICAgICAgICAgICIwLjA1OTU5MSwgMC4wNzgyLCAwLjE4Mzg5NywgMC4yNzcwNDIsIDAuNDAxMTY4LCAwLjY0OTkzNCwgMC44MDQ2NTciLCBcCi0gICAgICAgICAgIjAuMDcwNCwgMC4wODg2MzUsIDAuMTk0MTE0LCAwLjI4NzMzNywgMC40MTE0NDcsIDAuNjU5ODU2LCAwLjgxNDkzMiIsIFwKLSAgICAgICAgICAiMC4wNzkzLCAwLjA5OTgyNCwgMC4yMDQ0MDcsIDAuMjk3NTU5LCAwLjQyMTc0LCAwLjY2OTkyOCwgMC44MjUxNTQiLCBcCi0gICAgICAgICAgIjAuMDkwODc3LCAwLjExNDg1MywgMC4yMjExNTQsIDAuMzE0MTc2LCAwLjQzODQ3NywgMC42ODY3MzUsIDAuODQyMDUzIiwgXAotICAgICAgICAgICIwLjA5OTEzNiwgMC4xMjU3NzQsIDAuMjM1ODg5LCAwLjMyODc4OSwgMC40NTI4NTksIDAuNzAxMjUxLCAwLjg1NjQ4NiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzg2NjYsIDAuMTE3OTI1LCAwLjM0MDQ2NCwgMC41MzY4MDksIDAuNzk4NTY0LCAxLjMyMjEyLCAxLjY0ODc2IiwgXAotICAgICAgICAgICIwLjA3OTgxMywgMC4xMTgxOTcsIDAuMzQwNDQ4LCAwLjUzNjcyMiwgMC43OTg0MzEsIDEuMzIxNiwgMS42NDg3NiIsIFwKLSAgICAgICAgICAiMC4wODYyMDQsIDAuMTIyNDg4LCAwLjM0MDQ2NiwgMC41MzY4MjUsIDAuNzk4MzY4LCAxLjMyMjE1LCAxLjY0ODI4IiwgXAotICAgICAgICAgICIwLjA5Mzg2LCAwLjEyOTQ5NSwgMC4zNDE2NzksIDAuNTM2ODU2LCAwLjc5ODQ3OSwgMS4zMjE4LCAxLjY0ODU2IiwgXAotICAgICAgICAgICIwLjEwMzA5MiwgMC4xMzY3MjQsIDAuMzQ0OTUyLCAwLjUzNzEwNSwgMC43OTgyNTQsIDEuMzIxMzksIDEuNjQ4NzciLCBcCi0gICAgICAgICAgIjAuMTE4NTUyLCAwLjE1MDk0MywgMC4zNTMwMzMsIDAuNTQxMTkxLCAwLjc5ODczMSwgMS4zMjIwOSwgMS42NDg3MSIsIFwKLSAgICAgICAgICAiMC4xMzEzODYsIDAuMTY0NDI1LCAwLjM2MTkyLCAwLjU0NjkyLCAwLjgwMTM2MSwgMS4zMjEzMSwgMS42NDk1OSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMjQwOTgsIDAuMTgyOTc2LCAwLjUxNjgyNiwgMC44MTAyODcsIDEuMjAyODcsIDEuOTg4MzYsIDIuNDc3NDUiLCBcCi0gICAgICAgICAgIjAuMTI5NTUxLCAwLjE4ODQ3NiwgMC41MjE5NjYsIDAuODE2ODU5LCAxLjIwODc5LCAxLjk5MzYxLCAyLjQ4MzMxIiwgXAotICAgICAgICAgICIwLjEzNTYzLCAwLjE5NDcwNiwgMC41Mjg5NTYsIDAuODIzMTg0LCAxLjIxNTQyLCAyLjAwMDAyLCAyLjQ5MDYiLCBcCi0gICAgICAgICAgIjAuMTQxODg1LCAwLjIwMTA0MSwgMC41MzUxMDQsIDAuODI5MDIxLCAxLjIyMTE5LCAyLjAwNjA4LCAyLjQ5NjcyIiwgXAotICAgICAgICAgICIwLjE0ODQ2OCwgMC4yMDcyODcsIDAuNTQxMTU5LCAwLjgzNTc2MSwgMS4yMjc4NCwgMi4wMTE1NCwgMi41MDI2NyIsIFwKLSAgICAgICAgICAiMC4xNTg3NTEsIDAuMjE3ODU4LCAwLjU1MTQ1MywgMC44NDU1OTIsIDEuMjM4MSwgMi4wMjI4MiwgMi41MTI3NyIsIFwKLSAgICAgICAgICAiMC4xNjgyLCAwLjIyNzQzMSwgMC41NjA0NjMsIDAuODU1MTE3LCAxLjI0Nzk0LCAyLjAzMzU5LCAyLjUyMTc5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIzNjAzOCwgMC4zNTY1MTYsIDEuMDM5MDIsIDEuNjQzOSwgMi40NDg3NSwgNC4wNTA1NiwgNS4wNjI1NCIsIFwKLSAgICAgICAgICAiMC4yMzU5NzgsIDAuMzU3MDIxLCAxLjA0MDY0LCAxLjY0MTM3LCAyLjQ0ODg0LCA0LjA1MDYsIDUuMDYyNTkiLCBcCi0gICAgICAgICAgIjAuMjM2MzkxLCAwLjM1NjUwOCwgMS4wMzkwNiwgMS42NDE0MiwgMi40NDQ5MiwgNC4wNTEyMSwgNS4wNTQ1OSIsIFwKLSAgICAgICAgICAiMC4yMzc5NiwgMC4zNTc3MjgsIDEuMDM5MDksIDEuNjQxNTYsIDIuNDQ0OTMsIDQuMDUwODUsIDUuMDUzNzIiLCBcCi0gICAgICAgICAgIjAuMjQwOTgzLCAwLjM1ODYxOCwgMS4wNDA2NiwgMS42NDExMSwgMi40NDQ1NSwgNC4wNTI0MywgNS4wNTQ2NyIsIFwKLSAgICAgICAgICAiMC4yNDYyMzksIDAuMzYyNjAzLCAxLjA0MDYzLCAxLjY0MzgzLCAyLjQ0NDg3LCA0LjA1NzYsIDUuMDU0OTciLCBcCi0gICAgICAgICAgIjAuMjUyMzksIDAuMzY3NjU0LCAxLjAzOTc4LCAxLjY0MTE2LCAyLjQ0NDUxLCA0LjA1MDI1LCA1LjA1NDI0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0MDA1OCwgMC4wNTg3MDUsIDAuMTY0MzcsIDAuMjU3NDI3LCAwLjM4MTg5OSwgMC42MzA3MzQsIDAuNzg1NTUzIiwgXAotICAgICAgICAgICIwLjA0ODMyNywgMC4wNjY5ODksIDAuMTcyNjAzLCAwLjI2NTc2MSwgMC4zOTAyNTIsIDAuNjM4OTgxLCAwLjc5Mzg0IiwgXAotICAgICAgICAgICIwLjA1ODU1MSwgMC4wNzcxMTUsIDAuMTgyNzIzLCAwLjI3NTg0NiwgMC4zOTk5MzIsIDAuNjQ4OTU5LCAwLjgwMzQ1MSIsIFwKLSAgICAgICAgICAiMC4wNjkyOSwgMC4wODc1NDcsIDAuMTkyOTExLCAwLjI4NjE2OSwgMC40MTAyNDIsIDAuNjU4NjQxLCAwLjgxMzcxNiIsIFwKLSAgICAgICAgICAiMC4wNzc5MTgsIDAuMDk4ODE0LCAwLjIwMzI0NSwgMC4yOTYzODUsIDAuNDIwNTQ5LCAwLjY2ODcyNywgMC44MjM5MzUiLCBcCi0gICAgICAgICAgIjAuMDg5Mjg5LCAwLjExMzUzOSwgMC4yMTk5ODUsIDAuMzEyOTksIDAuNDM3MjkxLCAwLjY4NTUxLCAwLjg0MDgzOCIsIFwKLSAgICAgICAgICAiMC4wOTcxNDgsIDAuMTI0MjQ3LCAwLjIzNDcxNiwgMC4zMjc1OTQsIDAuNDUxNjgzLCAwLjcwMDA5MiwgMC44NTUyNTUiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc3MjEyLCAwLjExNjUxNCwgMC4zMzkwMjgsIDAuNTM1Mzg3LCAwLjc5NjksIDEuMzIwMjQsIDEuNjQ2NjkiLCBcCi0gICAgICAgICAgIjAuMDc4NDIxLCAwLjExNjc1MywgMC4zMzg5MzEsIDAuNTM1MTM0LCAwLjc5Njk4OSwgMS4zMjAxOCwgMS42NDY2OCIsIFwKLSAgICAgICAgICAiMC4wODQ5MDUsIDAuMTIxMTM2LCAwLjMzODk5NSwgMC41MzUxNjMsIDAuNzk2NzI5LCAxLjMyMDI3LCAxLjY0NjU2IiwgXAotICAgICAgICAgICIwLjA5MjYzLCAwLjEyODIyNSwgMC4zNDAwMzksIDAuNTM1MjAxLCAwLjc5Njg4NCwgMS4zMjA0OSwgMS42NDY2OCIsIFwKLSAgICAgICAgICAiMC4xMDE5NzUsIDAuMTM1NjU5LCAwLjM0MzU3NCwgMC41MzU0OTksIDAuNzk2NDg3LCAxLjMxOTY1LCAxLjY0NzciLCBcCi0gICAgICAgICAgIjAuMTE3NDE0LCAwLjE0OTc4OCwgMC4zNTE2NDUsIDAuNTM5NjgzLCAwLjc5NzEyOSwgMS4zMjAzMiwgMS42NDY4MSIsIFwKLSAgICAgICAgICAiMC4xMzAyNywgMC4xNjMyOTgsIDAuMzYwNTU3LCAwLjU0NTMyNywgMC43OTk2MTMsIDEuMzIwMjEsIDEuNjQ3NjkiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTIxMjU4LCAwLjE4MDE3NywgMC41MTM1MzYsIDAuODA3ODM3LCAxLjIwMDkxLCAxLjk4MzU2LCAyLjQ3NDk0IiwgXAotICAgICAgICAgICIwLjEyNzQwOSwgMC4xODYzNDgsIDAuNTE5ODksIDAuODEzOTc3LCAxLjIwNjA4LCAxLjk5MTE5LCAyLjQ4MDYiLCBcCi0gICAgICAgICAgIjAuMTM1MjY2LCAwLjE5NDI3OCwgMC41Mjc5NzgsIDAuODIyMjQ0LCAxLjIxNDg1LCAxLjk5OTA3LCAyLjQ4OTI4IiwgXAotICAgICAgICAgICIwLjE0MzMyMSwgMC4yMDIzNjksIDAuNTM2NDAzLCAwLjgzMDI0NSwgMS4yMjI0LCAyLjAwNzUxLCAyLjQ5ODEiLCBcCi0gICAgICAgICAgIjAuMTUxNTM5LCAwLjIxMDM5MSwgMC41NDQyNDgsIDAuODM4NDc4LCAxLjIzMDcxLCAyLjAxNjc3LCAyLjUwNTI5IiwgXAotICAgICAgICAgICIwLjE2NTE0NywgMC4yMjM3NzUsIDAuNTU3NDAzLCAwLjg1MTg0MSwgMS4yNDQyNiwgMi4wMjkzNiwgMi41MTg1NSIsIFwKLSAgICAgICAgICAiMC4xNzY5MjUsIDAuMjM1Njg2LCAwLjU2ODkzMywgMC44NjMyOTEsIDEuMjU1MzQsIDIuMDM5NTksIDIuNTMwOTQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjM2MDU1LCAwLjM1NjQzOSwgMS4wNDA4MiwgMS42NDQzMSwgMi40NDQzMSwgNC4wNTY5NiwgNS4wNTM5MyIsIFwKLSAgICAgICAgICAiMC4yMzY0MjQsIDAuMzU3MDI5LCAxLjAzOTIsIDEuNjQxNjIsIDIuNDQ4MjksIDQuMDU3ODcsIDUuMDU1MzgiLCBcCi0gICAgICAgICAgIjAuMjM2ODMsIDAuMzU2NDc0LCAxLjA0MDY4LCAxLjY0MTYsIDIuNDQ0MDUsIDQuMDU3NDUsIDUuMDYyMzMiLCBcCi0gICAgICAgICAgIjAuMjM4NzM5LCAwLjM1NzczMiwgMS4wMzkxLCAxLjY0MzkyLCAyLjQ0NjMsIDQuMDU3NzMsIDUuMDU0NzQiLCBcCi0gICAgICAgICAgIjAuMjQyNDA3LCAwLjM1OTYwOSwgMS4wMzkyMSwgMS42NDM5MSwgMi40NDQ2NiwgNC4wNTA1MSwgNS4wNTQzMyIsIFwKLSAgICAgICAgICAiMC4yNTAxNjgsIDAuMzY0Njc2LCAxLjAzOTEsIDEuNjQ0MjYsIDIuNDQ1LCA0LjA1MDY2LCA1LjA1NDc0IiwgXAotICAgICAgICAgICIwLjI1NzgzNCwgMC4zNzA3LCAxLjAzOTM4LCAxLjY0NDAxLCAyLjQ0ODI3LCA0LjA1Njk2LCA1LjA1NDU4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkQiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzODgsIDAuMDU3NDUsIDAuMTYzMDQyLCAwLjI1NjIxMywgMC4zODA1ODEsIDAuNjI5MDI2LCAwLjc4NDQyIiwgXAotICAgICAgICAgICIwLjA0NzA4NywgMC4wNjU3MywgMC4xNzEzMTksIDAuMjY0Mzc0LCAwLjM4ODU5MiwgMC42MzcwMzUsIDAuNzkyNzMxIiwgXAotICAgICAgICAgICIwLjA1NzQzOCwgMC4wNzU5OTIsIDAuMTgxNTEyLCAwLjI3NDY3MiwgMC4zOTg4NTEsIDAuNjQ3NjkzLCAwLjgwMjQzMSIsIFwKLSAgICAgICAgICAiMC4wNjc1NzcsIDAuMDg2NTUsIDAuMTkxOTMyLCAwLjI4NTI2OSwgMC40MDkyOSwgMC42NTc3MjcsIDAuODEyNzc5IiwgXAotICAgICAgICAgICIwLjA3NjE3OSwgMC4wOTcwNzgsIDAuMjAyNDUyLCAwLjI5NTU0NSwgMC40MTk3MDksIDAuNjY3ODc1LCAwLjgyMzE5NCIsIFwKLSAgICAgICAgICAiMC4wODY4NTgsIDAuMTExNTE2LCAwLjIxOTE3MiwgMC4zMTIyMzQsIDAuNDM2NTMsIDAuNjg0ODE2LCAwLjg0MDI5NiIsIFwKLSAgICAgICAgICAiMC4wOTU1MzUsIDAuMTIxODIxLCAwLjIzMzkxOCwgMC4zMjY4NTIsIDAuNDUxMDA0LCAwLjY5OTM4OSwgMC44NTQ1OTQiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc1Nzg5LCAwLjExNDg2NiwgMC4zMzc3NzMsIDAuNTMzMjcyLCAwLjc5NTE5OSwgMS4zMTg1MiwgMS42NDY2MSIsIFwKLSAgICAgICAgICAiMC4wNzY5NzQsIDAuMTE1MzU2LCAwLjMzNzMwOCwgMC41MzMyNzIsIDAuNzk0ODQyLCAxLjMxOTg1LCAxLjY0NTQiLCBcCi0gICAgICAgICAgIjAuMDgzNDQ5LCAwLjExOTc2NSwgMC4zMzc4MjcsIDAuNTM0MDY1LCAwLjc5NTE1MywgMS4zMTgyNSwgMS42NDc2IiwgXAotICAgICAgICAgICIwLjA5MTgyOCwgMC4xMjY2MDMsIDAuMzM4NjI3LCAwLjUzMzY3MiwgMC43OTU1MDMsIDEuMzE5NCwgMS42NDQ2OCIsIFwKLSAgICAgICAgICAiMC4xMDEzNDEsIDAuMTM0NzQ3LCAwLjM0MTc3MywgMC41MzM5NDksIDAuNzk1MDA2LCAxLjMxODE4LCAxLjY0NzUyIiwgXAotICAgICAgICAgICIwLjExNzg1NCwgMC4xNTAwMzUsIDAuMzUwMTExLCAwLjUzODI0LCAwLjc5NTUwNiwgMS4zMTg4OSwgMS42NDU1NiIsIFwKLSAgICAgICAgICAiMC4xMjg4OTMsIDAuMTYzNDk3LCAwLjM1ODc5MiwgMC41NDM3MTgsIDAuNzk3NzMyLCAxLjMxODg1LCAxLjY0NzAyIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExNjczNywgMC4xNzU3MjYsIDAuNTA4ODgsIDAuODAzMjc0LCAxLjE5NjEsIDEuOTgxNCwgMi40NzAzMSIsIFwKLSAgICAgICAgICAiMC4xMjMyNjksIDAuMTgyMjE0LCAwLjUxNTcyNCwgMC44MDk5NTEsIDEuMjAyNjMsIDEuOTg3MDUsIDIuNDc3NyIsIFwKLSAgICAgICAgICAiMC4xMzE4NSwgMC4xOTA3NjQsIDAuNTI0Mzc0LCAwLjgxOTA0MSwgMS4yMTA5OCwgMS45OTU2MywgMi40ODYyNCIsIFwKLSAgICAgICAgICAiMC4xNDA2NzIsIDAuMTk5NDMyLCAwLjUzMzE5MiwgMC44MjcwMzMsIDEuMjE5MTUsIDIuMDA0MDcsIDIuNDk0MzQiLCBcCi0gICAgICAgICAgIjAuMTQ5ODMxLCAwLjIwODM2NSwgMC41NDE1MzcsIDAuODM1NzUsIDEuMjI4NTYsIDIuMDEyNjEsIDIuNTAyNTYiLCBcCi0gICAgICAgICAgIjAuMTY0NjcyLCAwLjIyMjk4OCwgMC41NTU1OTcsIDAuODQ5NTEyLCAxLjI0MTI2LCAyLjAyNTMyLCAyLjUxNjk5IiwgXAotICAgICAgICAgICIwLjE3ODM2MywgMC4yMzYwNjEsIDAuNTY4MDUzLCAwLjg2MTY3MiwgMS4yNTM5NiwgMi4wMzkyNiwgMi41Mjc0MiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMzU5OTMsIDAuMzU2NDM2LCAxLjA0MDYzLCAxLjY0NDIxLCAyLjQ0NDQ3LCA0LjA0OTk3LCA1LjA2Mjc1IiwgXAotICAgICAgICAgICIwLjIzNjM0NiwgMC4zNTY5ODgsIDEuMDQwNjcsIDEuNjQxNDIsIDIuNDQ0MjYsIDQuMDU3ODQsIDUuMDU0NDEiLCBcCi0gICAgICAgICAgIjAuMjM2NzUxLCAwLjM1NzAwMiwgMS4wMzkxMSwgMS42NDEzNywgMi40NDQ5MywgNC4wNTE0NywgNS4wNTQ0OSIsIFwKLSAgICAgICAgICAiMC4yMzk1MTMsIDAuMzU3MTgsIDEuMDM5MSwgMS42NDE2NSwgMi40NDQ3OSwgNC4wNTE0NCwgNS4wNjI3MyIsIFwKLSAgICAgICAgICAiMC4yNDQxMDEsIDAuMzU5ODMsIDEuMDM5MTgsIDEuNjQxNDYsIDIuNDQ0NDksIDQuMDU3NywgNS4wNjIzNiIsIFwKLSAgICAgICAgICAiMC4yNTM0MDMsIDAuMzY2NiwgMS4wNDA4OCwgMS42NDQxNSwgMi40NDgyMiwgNC4wNTUxNiwgNS4wNTQ1OCIsIFwKLSAgICAgICAgICAiMC4yNjMyNjIsIDAuMzc0Mjc5LCAxLjAzODk0LCAxLjY0NDA3LCAyLjQ0ODc2LCA0LjA1MDUzLCA1LjA2MTUzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzODczLCAwLjAwMzg3MywgMC4wMDM4NzMsIDAuMDAzODczLCAwLjAwMzg3MywgMC4wMDM4NzIsIDAuMDAzODcyIiwgXAotICAgICAgICAgICIwLjAwMzg2MSwgMC4wMDM4NjEsIDAuMDAzODU5LCAwLjAwMzg1NSwgMC4wMDM4NTgsIDAuMDAzODU5LCAwLjAwMzg1NyIsIFwKLSAgICAgICAgICAiMC4wMDM4ODcsIDAuMDAzODc4LCAwLjAwMzg2NSwgMC4wMDM4NjEsIDAuMDAzODU2LCAwLjAwMzg1MiwgMC4wMDM4NTIiLCBcCi0gICAgICAgICAgIjAuMDAzOTI5LCAwLjAwMzkwOSwgMC4wMDM4NzcsIDAuMDAzODcsIDAuMDAzODY2LCAwLjAwMzg1NywgMC4wMDM4NTUiLCBcCi0gICAgICAgICAgIjAuMDAzOTgzLCAwLjAwMzk1LCAwLjAwMzg5MywgMC4wMDM4ODIsIDAuMDAzODc0LCAwLjAwMzg2MiwgMC4wMDM4NTkiLCBcCi0gICAgICAgICAgIjAuMDA0MTExLCAwLjAwNDAzNywgMC4wMDM5MzIsIDAuMDAzOTA3LCAwLjAwMzg5MiwgMC4wMDM4NzgsIDAuMDAzODcyIiwgXAotICAgICAgICAgICIwLjAwNDE5MSwgMC4wMDQxNDMsIDAuMDAzOTc2LCAwLjAwMzkzNywgMC4wMDM5MTMsIDAuMDAzODkyLCAwLjAwMzg4NCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDY3OSwgMC4wMDA2ODQsIDAuMDAwNjg5LCAwLjAwMDY5LCAwLjAwMDY5MSwgMC4wMDA2OTIsIDAuMDAwNjkyIiwgXAotICAgICAgICAgICIwLjAwMDYzOSwgMC4wMDA2NTQsIDAuMDAwNjc4LCAwLjAwMDY4MywgMC4wMDA2ODYsIDAuMDAwNjg5LCAwLjAwMDY4OSIsIFwKLSAgICAgICAgICAiMC4wMDA2MDgsIDAuMDAwNjI4LCAwLjAwMDY2NSwgMC4wMDA2NzQsIDAuMDAwNjgsIDAuMDAwNjg1LCAwLjAwMDY4NiIsIFwKLSAgICAgICAgICAiMC4wMDA1OTcsIDAuMDAwNjE0LCAwLjAwMDY1NiwgMC4wMDA2NjcsIDAuMDAwNjc1LCAwLjAwMDY4MiwgMC4wMDA2ODQiLCBcCi0gICAgICAgICAgIjAuMDAwNjAxLCAwLjAwMDYxNCwgMC4wMDA2NTEsIDAuMDAwNjY0LCAwLjAwMDY3MiwgMC4wMDA2OCwgMC4wMDA2ODIiLCBcCi0gICAgICAgICAgIjAuMDAwNjM4LCAwLjAwMDYzNiwgMC4wMDA2NTUsIDAuMDAwNjY1LCAwLjAwMDY3MiwgMC4wMDA2NzksIDAuMDAwNjgyIiwgXAotICAgICAgICAgICIwLjAwMDY5MywgMC4wMDA2NzgsIDAuMDAwNjY5LCAwLjAwMDY3MywgMC4wMDA2NzcsIDAuMDAwNjgyLCAwLjAwMDY4NCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzQxMywgMC4wMDM0MTQsIDAuMDAzNDE1LCAwLjAwMzQxNSwgMC4wMDM0MTUsIDAuMDAzNDE0LCAwLjAwMzQxNCIsIFwKLSAgICAgICAgICAiMC4wMDM0MDUsIDAuMDAzNDA2LCAwLjAwMzQwNywgMC4wMDM0MDgsIDAuMDAzNDA3LCAwLjAwMzQwNCwgMC4wMDM0MDciLCBcCi0gICAgICAgICAgIjAuMDAzNDM1LCAwLjAwMzQyNywgMC4wMDM0MTYsIDAuMDAzNDEzLCAwLjAwMzQwOSwgMC4wMDM0MDYsIDAuMDAzNDA2IiwgXAotICAgICAgICAgICIwLjAwMzQ0NCwgMC4wMDM0NjcsIDAuMDAzNDMyLCAwLjAwMzQyNCwgMC4wMDM0MTgsIDAuMDAzNDEyLCAwLjAwMzQxIiwgXAotICAgICAgICAgICIwLjAwMzQ5MSwgMC4wMDM0NjksIDAuMDAzNDUzLCAwLjAwMzQzOSwgMC4wMDM0MjksIDAuMDAzNDE4LCAwLjAwMzQxNSIsIFwKLSAgICAgICAgICAiMC4wMDM1ODksIDAuMDAzNTQyLCAwLjAwMzQ5NSwgMC4wMDM0NjcsIDAuMDAzNDUsIDAuMDAzNDM0LCAwLjAwMzQyNiIsIFwKLSAgICAgICAgICAiMC4wMDM3MDQsIDAuMDAzNjI1LCAwLjAwMzU0MSwgMC4wMDM0OTksIDAuMDAzNDczLCAwLjAwMzQ0OSwgMC4wMDM0NDEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDA2ODEsIDAuMDAwNjg2LCAwLjAwMDY5MSwgMC4wMDA2OTIsIDAuMDAwNjkzLCAwLjAwMDY5MywgMC4wMDA2OTQiLCBcCi0gICAgICAgICAgIjAuMDAwNjQxLCAwLjAwMDY1NiwgMC4wMDA2OCwgMC4wMDA2ODUsIDAuMDAwNjg4LCAwLjAwMDY5MSwgMC4wMDA2OTEiLCBcCi0gICAgICAgICAgIjAuMDAwNjExLCAwLjAwMDYzLCAwLjAwMDY2NywgMC4wMDA2NzYsIDAuMDAwNjgyLCAwLjAwMDY4NywgMC4wMDA2ODgiLCBcCi0gICAgICAgICAgIjAuMDAwNjAzLCAwLjAwMDYxOSwgMC4wMDA2NTksIDAuMDAwNjcsIDAuMDAwNjc4LCAwLjAwMDY4NCwgMC4wMDA2ODYiLCBcCi0gICAgICAgICAgIjAuMDAwNjE0LCAwLjAwMDYyMiwgMC4wMDA2NTYsIDAuMDAwNjY3LCAwLjAwMDY3NSwgMC4wMDA2ODIsIDAuMDAwNjg1IiwgXAotICAgICAgICAgICIwLjAwMDY1NywgMC4wMDA2NTEsIDAuMDAwNjYxLCAwLjAwMDY2OSwgMC4wMDA2NzYsIDAuMDAwNjgyLCAwLjAwMDY4NSIsIFwKLSAgICAgICAgICAiMC4wMDA3MTksIDAuMDAwNjk4LCAwLjAwMDY3NywgMC4wMDA2NzksIDAuMDAwNjgyLCAwLjAwMDY4NSwgMC4wMDA2ODciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI5MTIsIDAuMDAyOTE0LCAwLjAwMjkxNSwgMC4wMDI5MTYsIDAuMDAyOTE2LCAwLjAwMjkxNSwgMC4wMDI5MTUiLCBcCi0gICAgICAgICAgIjAuMDAyOTE1LCAwLjAwMjkxOCwgMC4wMDI5MjEsIDAuMDAyOTIyLCAwLjAwMjkyMywgMC4wMDI5MjMsIDAuMDAyOTIzIiwgXAotICAgICAgICAgICIwLjAwMjk0NCwgMC4wMDI5MzgsIDAuMDAyOTMxLCAwLjAwMjkyOSwgMC4wMDI5MjgsIDAuMDAyOTI3LCAwLjAwMjkyNyIsIFwKLSAgICAgICAgICAiMC4wMDI5NTEsIDAuMDAyOTc3LCAwLjAwMjk0OCwgMC4wMDI5NCwgMC4wMDI5MzYsIDAuMDAyOTMyLCAwLjAwMjkzMSIsIFwKLSAgICAgICAgICAiMC4wMDI5OTYsIDAuMDAyOTc3LCAwLjAwMjk2OCwgMC4wMDI5NTUsIDAuMDAyOTQ3LCAwLjAwMjkzOCwgMC4wMDI5MzUiLCBcCi0gICAgICAgICAgIjAuMDAzMDksIDAuMDAzMDQ4LCAwLjAwMzAwOCwgMC4wMDI5ODQsIDAuMDAyOTY4LCAwLjAwMjk1MiwgMC4wMDI5NDYiLCBcCi0gICAgICAgICAgIjAuMDAzMjAxLCAwLjAwMzEyNywgMC4wMDMwNTQsIDAuMDAzMDE0LCAwLjAwMjk5MSwgMC4wMDI5NjgsIDAuMDAyOTYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDA2ODEsIDAuMDAwNjg2LCAwLjAwMDY5MSwgMC4wMDA2OTIsIDAuMDAwNjkzLCAwLjAwMDY5NCwgMC4wMDA2OTQiLCBcCi0gICAgICAgICAgIjAuMDAwNjQxLCAwLjAwMDY1NiwgMC4wMDA2OCwgMC4wMDA2ODUsIDAuMDAwNjg4LCAwLjAwMDY5MSwgMC4wMDA2OTEiLCBcCi0gICAgICAgICAgIjAuMDAwNjE4LCAwLjAwMDYzNSwgMC4wMDA2NjksIDAuMDAwNjc4LCAwLjAwMDY4MywgMC4wMDA2ODcsIDAuMDAwNjg5IiwgXAotICAgICAgICAgICIwLjAwMDYyMSwgMC4wMDA2MzIsIDAuMDAwNjYzLCAwLjAwMDY3MywgMC4wMDA2OCwgMC4wMDA2ODUsIDAuMDAwNjg3IiwgXAotICAgICAgICAgICIwLjAwMDY0MSwgMC4wMDA2NDMsIDAuMDAwNjY0LCAwLjAwMDY3MywgMC4wMDA2NzksIDAuMDAwNjg0LCAwLjAwMDY4NiIsIFwKLSAgICAgICAgICAiMC4wMDA3MDYsIDAuMDAwNjg3LCAwLjAwMDY3NSwgMC4wMDA2NzksIDAuMDAwNjgyLCAwLjAwMDY4NiwgMC4wMDA2ODgiLCBcCi0gICAgICAgICAgIjAuMDAwNzc4LCAwLjAwMDc0MiwgMC4wMDA2OTYsIDAuMDAwNjkxLCAwLjAwMDY5LCAwLjAwMDY5MSwgMC4wMDA2OTEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJEIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDIzODQsIDAuMDAyMzg3LCAwLjAwMjM4OSwgMC4wMDIzOTEsIDAuMDAyMzkyLCAwLjAwMjM5MiwgMC4wMDIzOTIiLCBcCi0gICAgICAgICAgIjAuMDAyMzkxLCAwLjAwMjM5NiwgMC4wMDI0MDMsIDAuMDAyNDA3LCAwLjAwMjQwNiwgMC4wMDI0MDcsIDAuMDAyNDA3IiwgXAotICAgICAgICAgICIwLjAwMjQxMSwgMC4wMDI0MDgsIDAuMDAyNDExLCAwLjAwMjQxMiwgMC4wMDI0MTMsIDAuMDAyNDE0LCAwLjAwMjQxNiIsIFwKLSAgICAgICAgICAiMC4wMDI0NDYsIDAuMDAyNDM3LCAwLjAwMjQyNCwgMC4wMDI0MiwgMC4wMDI0MTgsIDAuMDAyNDE3LCAwLjAwMjQxNyIsIFwKLSAgICAgICAgICAiMC4wMDI0OTIsIDAuMDAyNDY5LCAwLjAwMjQzOCwgMC4wMDI0MzEsIDAuMDAyNDI1LCAwLjAwMjQyMSwgMC4wMDI0MjEiLCBcCi0gICAgICAgICAgIjAuMDAyNjA4LCAwLjAwMjU1MywgMC4wMDI0NzIsIDAuMDAyNDU0LCAwLjAwMjQ0NCwgMC4wMDI0MzIsIDAuMDAyNDI5IiwgXAotICAgICAgICAgICIwLjAwMjY1MywgMC4wMDI2NDcsIDAuMDAyNTEyLCAwLjAwMjQ4MSwgMC4wMDI0NjMsIDAuMDAyNDQ2LCAwLjAwMjQ0MSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDY3OSwgMC4wMDA2ODQsIDAuMDAwNjkxLCAwLjAwMDY5MiwgMC4wMDA2OTMsIDAuMDAwNjk0LCAwLjAwMDY5NCIsIFwKLSAgICAgICAgICAiMC4wMDA2NDcsIDAuMDAwNjYsIDAuMDAwNjgxLCAwLjAwMDY4NiwgMC4wMDA2ODgsIDAuMDAwNjkxLCAwLjAwMDY5MiIsIFwKLSAgICAgICAgICAiMC4wMDA2NSwgMC4wMDA2NTcsIDAuMDAwNjc3LCAwLjAwMDY4MywgMC4wMDA2ODYsIDAuMDAwNjksIDAuMDAwNjkxIiwgXAotICAgICAgICAgICIwLjAwMDY4NCwgMC4wMDA2NzgsIDAuMDAwNjgxLCAwLjAwMDY4NSwgMC4wMDA2ODgsIDAuMDAwNjksIDAuMDAwNjkxIiwgXAotICAgICAgICAgICIwLjAwMDczNSwgMC4wMDA3MTQsIDAuMDAwNjkzLCAwLjAwMDY5MywgMC4wMDA2OTMsIDAuMDAwNjkzLCAwLjAwMDY5MyIsIFwKLSAgICAgICAgICAiMC4wMDA4MzksIDAuMDAwOCwgMC4wMDA3MjUsIDAuMDAwNzEyLCAwLjAwMDcwNiwgMC4wMDA3MDEsIDAuMDAwNyIsIFwKLSAgICAgICAgICAiMC4wMDA5NTIsIDAuMDAwODg2LCAwLjAwMDc2NiwgMC4wMDA3MzgsIDAuMDAwNzIzLCAwLjAwMDcxMiwgMC4wMDA3MDgiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBOQU5ENFhMICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKE5BTkQ0WEwpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4yMzIzODI7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDU3NDA0OTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA1NzQwNDk7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNTczMTEyOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDI5NiwgMC4wMDAyOTYsIDAuMDAwMjk2LCAwLjAwMDI5NiwgMC4wMDAyOTYsIDAuMDAwMjk2LCAwLjAwMDI5NiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDI5NywgMC4wMDAyOTcsIDAuMDAwMjk3LCAwLjAwMDI5NywgMC4wMDAyOTcsIDAuMDAwMjk3LCAwLjAwMDI5NyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjM0MTYzOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYzNDE2MzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2MzMzMzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyOTYsIDAuMDAwMjk2LCAwLjAwMDI5NiwgMC4wMDAyOTYsIDAuMDAwMjk2LCAwLjAwMDI5NiwgMC4wMDAyOTYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyOTcsIDAuMDAwMjk3LCAwLjAwMDI5NywgMC4wMDAyOTcsIDAuMDAwMjk3LCAwLjAwMDI5NywgMC4wMDAyOTciKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEMpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYzMjg1NzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MzI4NTc7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjMyMjQ0OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDI5NiwgMC4wMDAyOTYsIDAuMDAwMjk2LCAwLjAwMDI5NiwgMC4wMDAyOTYsIDAuMDAwMjk2LCAwLjAwMDI5NiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDI5NywgMC4wMDAyOTcsIDAuMDAwMjk3LCAwLjAwMDI5NywgMC4wMDAyOTcsIDAuMDAwMjk3LCAwLjAwMDI5NyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjI4ODsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2Mjg1NjM7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjI4ODsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxNDgsIDAuMDAwMTQ3LCAwLjAwMDE0NywgMC4wMDAxNDcsIDAuMDAwMTQ3LCAwLjAwMDE0NywgMC4wMDAxNDciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAzMzcsIDAuMDAwMzM4LCAwLjAwMDMzNywgMC4wMDAzMzgsIDAuMDAwMzM4LCAwLjAwMDMzOCwgMC4wMDAzMzgiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4wNTk3MTUyOwotICAgIGZ1bmN0aW9uIDogIighKCgoQSBCKSBDKSBEKSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2NDk0NSwgMC4wNzU1MDEsIDAuMTcwNDY5LCAwLjMyODQwMywgMC40ODYzMzgsIDAuODU0OTg2LCAxLjA2NTc2IiwgXAotICAgICAgICAgICIwLjA3Mjc1OSwgMC4wODMzNDMsIDAuMTc4MjE2LCAwLjMzNjE2NiwgMC40OTQyODgsIDAuODYyNzI1LCAxLjA3MzY4IiwgXAotICAgICAgICAgICIwLjA4MjgxMywgMC4wOTMzNjIsIDAuMTg4MjU2LCAwLjM0NjIwNywgMC41MDQwMzUsIDAuODcyNDYxLCAxLjA4MzU1IiwgXAotICAgICAgICAgICIwLjA5MzA3MywgMC4xMDM1NzQsIDAuMTk4MzQyLCAwLjM1NjM1MiwgMC41MTQyMTIsIDAuODgyNDUzLCAxLjA5MzQiLCBcCi0gICAgICAgICAgIjAuMTAzNDYzLCAwLjExMzg5OSwgMC4yMDg1MTYsIDAuMzY2NTMsIDAuNTI0NDY4LCAwLjg5MzE3MywgMS4xMDMwNCIsIFwKLSAgICAgICAgICAiMC4xMTg0OTQsIDAuMTMsIDAuMjI0NzY0LCAwLjM4MjYwMiwgMC41NDA1NTUsIDAuOTA4Nzg0LCAxLjExOTE4IiwgXAotICAgICAgICAgICIwLjEyOTQ5MiwgMC4xNDIzMTEsIDAuMjM5MTI5LCAwLjM5NjcxOCwgMC41NTQ2MjcsIDAuOTIyODg0LCAxLjEzMzQiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTI4MDI3LCAwLjE1MDA5MywgMC4zNDk1NzgsIDAuNjgyMDgzLCAxLjAxNDM1LCAxLjc4ODk1LCAyLjIzMjI2IiwgXAotICAgICAgICAgICIwLjEyODEwNywgMC4xNTAxODksIDAuMzQ5NDM3LCAwLjY4MTU0LCAxLjAxNDAxLCAxLjc4ODk1LCAyLjIzMjUzIiwgXAotICAgICAgICAgICIwLjEzMjA2NiwgMC4xNTMxMzIsIDAuMzQ5NDMzLCAwLjY4MTY5NiwgMS4wMTM5MiwgMS43ODk2LCAyLjIzMjIyIiwgXAotICAgICAgICAgICIwLjEzODY1NiwgMC4xNTg5OTcsIDAuMzUwNjI0LCAwLjY4MTY1MiwgMS4wMTQwNSwgMS43OTAwMywgMi4yMzE5IiwgXAotICAgICAgICAgICIwLjE0NjU4NywgMC4xNjYzMzEsIDAuMzUzODY4LCAwLjY4MTgwNCwgMS4wMTQwNCwgMS43ODk2MiwgMi4yMzE0NiIsIFwKLSAgICAgICAgICAiMC4xNjA5NjksIDAuMTc5OTQ0LCAwLjM2MTgxOCwgMC42ODMzNTQsIDEuMDE0MDEsIDEuNzg4NjEsIDIuMjMxNjgiLCBcCi0gICAgICAgICAgIjAuMTc0NDQxLCAwLjE5Mjk2OCwgMC4zNzA2ODEsIDAuNjg3NDksIDEuMDE0MjksIDEuNzkwMDEsIDIuMjMxNSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xODYyMjMsIDAuMjE3NDAzLCAwLjQ5OTgwOCwgMC45Njk5NTYsIDEuNDM4OTQsIDIuNTM1MjcsIDMuMTYwMDUiLCBcCi0gICAgICAgICAgIjAuMTkwODYyLCAwLjIyMjIzLCAwLjUwNDMyNCwgMC45NzUxMzksIDEuNDQzNiwgMi41NDAzNCwgMy4xNjU5OCIsIFwKLSAgICAgICAgICAiMC4xOTUzOSwgMC4yMjY4MjMsIDAuNTA4ODUzLCAwLjk3OTU3MywgMS40NDkwMywgMi41NDQ4NSwgMy4xNzAyMSIsIFwKLSAgICAgICAgICAiMC4xOTk1NDgsIDAuMjMwODQ0LCAwLjUxMzE1NiwgMC45ODM3NzksIDEuNDU0MzcsIDIuNTQ5NzYsIDMuMTc1NTIiLCBcCi0gICAgICAgICAgIjAuMjAzNzIsIDAuMjM1MDQzLCAwLjUxNzY0MywgMC45ODgyMzEsIDEuNDU4MiwgMi41NTQwNiwgMy4xNzgzNiIsIFwKLSAgICAgICAgICAiMC4yMTA1OTYsIDAuMjQyMDYyLCAwLjUyMzk0OCwgMC45OTQwMjIsIDEuNDY0MzYsIDIuNTYwNDUsIDMuMTg1MzEiLCBcCi0gICAgICAgICAgIjAuMjE2NzQsIDAuMjQ4MDY4LCAwLjUyOTc4OCwgMC45OTk1OSwgMS40NjkzNSwgMi41NjUyOCwgMy4xOTE0MyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zNjIzMjIsIDAuNDI3NTEsIDEuMDA3OTUsIDEuOTc1NTcsIDIuOTQ5MDMsIDUuMjEwMjIsIDYuNDk0NzYiLCBcCi0gICAgICAgICAgIjAuMzYyMTg2LCAwLjQyNzQ5MywgMS4wMDc2OCwgMS45NzU1MywgMi45NDM5NCwgNS4yMTAwMywgNi40OTEyOCIsIFwKLSAgICAgICAgICAiMC4zNjI4MywgMC40Mjc1MDgsIDEuMDA5MzQsIDEuOTc1NTYsIDIuOTQ0MTYsIDUuMjA5NzksIDYuNDkxMzEiLCBcCi0gICAgICAgICAgIjAuMzYzNDEyLCAwLjQyNzgwMiwgMS4wMDc3MiwgMS45NzU1NywgMi45NDM1LCA1LjIwMjU5LCA2LjQ5MTg5IiwgXAotICAgICAgICAgICIwLjM2NDY0OSwgMC40Mjc5MjEsIDEuMDA3MzksIDEuOTc1NTMsIDIuOTQzNTcsIDUuMjAxNjUsIDYuNDk0MjciLCBcCi0gICAgICAgICAgIjAuMzY3MjgzLCAwLjQzMTEyLCAxLjAwOTQ5LCAxLjk3OTA0LCAyLjk0NDQ5LCA1LjIxMDAxLCA2LjQ5NjYiLCBcCi0gICAgICAgICAgIjAuMzcwNDEyLCAwLjQzMzUxMSwgMS4wMDgxOSwgMS45NzkxNCwgMi45NDg5NCwgNS4yMDg1NywgNi40OTE2NyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjM3OTQsIDAuMDc0MzQsIDAuMTY5MTI5LCAwLjMyNzE0NCwgMC40ODUwOTksIDAuODUzNjA3LCAxLjA2NDMxIiwgXAotICAgICAgICAgICIwLjA3MTgwMSwgMC4wODIzMzksIDAuMTc3MTQzLCAwLjMzNTIxOSwgMC40OTI5NzQsIDAuODYxNjQyLCAxLjA3MjU2IiwgXAotICAgICAgICAgICIwLjA4MTU4NSwgMC4wOTIxMTcsIDAuMTg2ODY0LCAwLjM0NDY5NiwgMC41MDI4MDcsIDAuODcwOTUyLCAxLjA4MjQiLCBcCi0gICAgICAgICAgIjAuMDkxNzIyLCAwLjEwMjE4MiwgMC4xOTY4MDYsIDAuMzU0NzkzLCAwLjUxMjU3LCAwLjg4MDc4MywgMS4wOTE5MyIsIFwKLSAgICAgICAgICAiMC4xMDI1NDUsIDAuMTEyMzc4LCAwLjIwNjg0NywgMC4zNjQ2MzYsIDAuNTIyNTAxLCAwLjg5MTMzLCAxLjEwMTI2IiwgXAotICAgICAgICAgICIwLjExNzY5LCAwLjEyODQ3NiwgMC4yMjMxMjksIDAuMzgwOTg2LCAwLjUzODcwNiwgMC45MDcwNDQsIDEuMTE3NDMiLCBcCi0gICAgICAgICAgIjAuMTI4NTYzLCAwLjE0MTUxNSwgMC4yMzc0OTUsIDAuMzk1MDE5LCAwLjU1Mjk5NCwgMC45MjExMDksIDEuMTMxNjUiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTI2MjYsIDAuMTQ4NDM1LCAwLjM0Nzc3MiwgMC42ODAxNTcsIDEuMDEyMTksIDEuNzg3MDYsIDIuMjMwMDciLCBcCi0gICAgICAgICAgIjAuMTI2NDU2LCAwLjE0ODQ3MSwgMC4zNDc4NTQsIDAuNjgwMTg1LCAxLjAxMjY4LCAxLjc4Nzg4LCAyLjIzMDQ2IiwgXAotICAgICAgICAgICIwLjEzMDU1MSwgMC4xNTE2MTIsIDAuMzQ3ODg4LCAwLjY3OTkyOCwgMS4wMTIzNCwgMS43ODgwNCwgMi4yMzA4NSIsIFwKLSAgICAgICAgICAiMC4xMzczODIsIDAuMTU3Njc0LCAwLjM0OTEwNSwgMC42ODAwMjQsIDEuMDEyMywgMS43ODc4MSwgMi4yMzAyNSIsIFwKLSAgICAgICAgICAiMC4xNDQ3MTcsIDAuMTY1MjY3LCAwLjM1MjQyNCwgMC42ODAyNjUsIDEuMDExOTIsIDEuNzg3ODQsIDIuMjI5NzMiLCBcCi0gICAgICAgICAgIjAuMTU4NzAzLCAwLjE3OTAxMiwgMC4zNjA0NzcsIDAuNjgxNzY3LCAxLjAxMjQ1LCAxLjc4NjkyLCAyLjIyOTkiLCBcCi0gICAgICAgICAgIjAuMTcyMDgyLCAwLjE5MDkwMiwgMC4zNjk0NjgsIDAuNjg1Njc5LCAxLjAxMjY4LCAxLjc4ODE4LCAyLjIyOTYiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTg0NDExLCAwLjIxNTY4NSwgMC40OTc3NDcsIDAuOTY3NTYsIDEuNDM4NSwgMi41MzM4LCAzLjE1ODY1IiwgXAotICAgICAgICAgICIwLjE4OTYxOSwgMC4yMjA5NzksIDAuNTAzMDIxLCAwLjk3MzkxOSwgMS40NDIxNiwgMi41MzkwOSwgMy4xNjQ2MSIsIFwKLSAgICAgICAgICAiMC4xOTU1NTksIDAuMjI2ODE5LCAwLjUwODkwOCwgMC45NzkwNzEsIDEuNDQ5NjUsIDIuNTQ1NTUsIDMuMTcxMzMiLCBcCi0gICAgICAgICAgIjAuMjAxMzM3LCAwLjIzMjYyNywgMC41MTQ3NzcsIDAuOTg1NDE2LCAxLjQ1NTg0LCAyLjU1MTg5LCAzLjE3NzMxIiwgXAotICAgICAgICAgICIwLjIwNzIyMywgMC4yMzg2MjIsIDAuNTIwODQ2LCAwLjk5MDU3NSwgMS40NjE0MSwgMi41NTYxMywgMy4xODIwMyIsIFwKLSAgICAgICAgICAiMC4yMTcwNDQsIDAuMjQ4NDI4LCAwLjUzMDYyNSwgMS4wMDEyNiwgMS40NzAzMSwgMi41NjY1OSwgMy4xOTI0NSIsIFwKLSAgICAgICAgICAiMC4yMjYzMzUsIDAuMjU3NTE3LCAwLjUzODkzOCwgMS4wMDkwMiwgMS40Nzg1MSwgMi41NzQxOCwgMy4yMDAxMyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zNjI4NDksIDAuNDI2ODYxLCAxLjAwOTMzLCAxLjk3OTE0LCAyLjk0MzU3LCA1LjIxMDE5LCA2LjQ5MTg4IiwgXAotICAgICAgICAgICIwLjM2MjIwOSwgMC40Mjc0OTMsIDEuMDA3NzgsIDEuOTc1NTMsIDIuOTQ2MTYsIDUuMjEwMDMsIDYuNDkxNTIiLCBcCi0gICAgICAgICAgIjAuMzYyMjYzLCAwLjQyNjc3LCAxLjAwODU2LCAxLjk3OTE0LCAyLjk0MzYxLCA1LjIwMjA5LCA2LjQ5MjI0IiwgXAotICAgICAgICAgICIwLjM2MzU3MiwgMC40MjcxMDQsIDEuMDA3NjcsIDEuOTc1NjIsIDIuOTQzNTYsIDUuMjAyMTgsIDYuNDkwNDgiLCBcCi0gICAgICAgICAgIjAuMzY0NTMsIDAuNDI5MDA0LCAxLjAwOTM3LCAxLjk3OTEzLCAyLjk0OTA0LCA1LjIwOTc0LCA2LjQ5NDY4IiwgXAotICAgICAgICAgICIwLjM2ODk0MywgMC40MzIwMzIsIDEuMDA5NDEsIDEuOTc1NiwgMi45NDg5NCwgNS4yMDMzNCwgNi40OTMwNiIsIFwKLSAgICAgICAgICAiMC4zNzM2LCAwLjQzNjA3NiwgMS4wMDgyOSwgMS45NzkwMSwgMi45NDYwOCwgNS4yMDk5NSwgNi40OTU2OSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjI1NzMsIDAuMDczMTA0LCAwLjE2NzgyNiwgMC4zMjU4MzUsIDAuNDgzNTEzLCAwLjg1MjIxNiwgMS4wNjI1OCIsIFwKLSAgICAgICAgICAiMC4wNzA1NzcsIDAuMDgxMTEsIDAuMTc1ODc5LCAwLjMzMzgwNCwgMC40OTE2OCwgMC44NjAzNTQsIDEuMDcxMTgiLCBcCi0gICAgICAgICAgIjAuMDgwMzk0LCAwLjA5MDg5NiwgMC4xODU2NzgsIDAuMzQzNDEzLCAwLjUwMTY3OCwgMC44Njk2NDMsIDEuMDgxMDgiLCBcCi0gICAgICAgICAgIjAuMDkwNTM0LCAwLjEwMDk3NywgMC4xOTU1NjQsIDAuMzUzNTgyLCAwLjUxMTE1LCAwLjg3OTQ3MywgMS4wOTA2MiIsIFwKLSAgICAgICAgICAiMC4xMDEzNjUsIDAuMTExMTgxLCAwLjIwNTYxNSwgMC4zNjI5MzMsIDAuNTIxMjI1LCAwLjg5MDAxNSwgMS4wOTk5NSIsIFwKLSAgICAgICAgICAiMC4xMTYyNjIsIDAuMTI3MTMxLCAwLjIyMTg2NSwgMC4zNzk1NzgsIDAuNTM3MzkzLCAwLjkwNTczMywgMS4xMTYxMiIsIFwKLSAgICAgICAgICAiMC4xMjcyMjYsIDAuMTM5OTk3LCAwLjIzNjIyOSwgMC4zOTM3NjcsIDAuNTUxNjg3LCAwLjkxOTc5NywgMS4xMzAzMyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMjQ2NDMsIDAuMTQ2Nzk4LCAwLjM0NjA2MywgMC42Nzg1MzgsIDEuMDEwMSwgMS43ODU0MywgMi4yMjc5NCIsIFwKLSAgICAgICAgICAiMC4xMjQ4MzMsIDAuMTQ2ODI3LCAwLjM0NjEwMSwgMC42NzgzNTgsIDEuMDEwOTUsIDEuNzg2MDgsIDIuMjI4NTIiLCBcCi0gICAgICAgICAgIjAuMTI5MDMsIDAuMTUwMDczLCAwLjM0NjEwMiwgMC42NzgxMzEsIDEuMDEwNTksIDEuNzg2MTIsIDIuMjI4NzUiLCBcCi0gICAgICAgICAgIjAuMTM1OTQyLCAwLjE1NjIwMywgMC4zNDczNTMsIDAuNjc4Mjc0LCAxLjAxMDc3LCAxLjc4NjgzLCAyLjIyODUyIiwgXAotICAgICAgICAgICIwLjE0MzI3MiwgMC4xNjM4MTUsIDAuMzUwOTEyLCAwLjY3ODI1NiwgMS4wMTAxMiwgMS43ODU5OSwgMi4yMjcxOSIsIFwKLSAgICAgICAgICAiMC4xNTczNzgsIDAuMTc3NjM1LCAwLjM1ODg2OCwgMC42ODAwOTQsIDEuMDEwNjIsIDEuNzg0ODIsIDIuMjI3OCIsIFwKLSAgICAgICAgICAiMC4xNzEwNDEsIDAuMTg5NTY4LCAwLjM2NzkzMywgMC42ODQxMDMsIDEuMDEwODEsIDEuNzg3MDUsIDIuMjI3ODEiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTgxMzMxLCAwLjIxMjcwOCwgMC40OTQ3MzcsIDAuOTY0NTY0LCAxLjQzNTUxLCAyLjUzMDY1LCAzLjE1NTY5IiwgXAotICAgICAgICAgICIwLjE4NzMyMywgMC4yMTg2OTQsIDAuNTAxMTAyLCAwLjk3MTcxOSwgMS40NDA1NCwgMi41MzY5NCwgMy4xNjE5NyIsIFwKLSAgICAgICAgICAiMC4xOTQ5OTEsIDAuMjI2NDI2LCAwLjUwODM1MiwgMC45Nzg2MjEsIDEuNDQ5NjUsIDIuNTQ0NjYsIDMuMTcwNjMiLCBcCi0gICAgICAgICAgIjAuMjAyNjg5LCAwLjIzNDE0OSwgMC41MTYxNiwgMC45ODY5NjksIDEuNDU3NTQsIDIuNTUyNzMsIDMuMTc4NTkiLCBcCi0gICAgICAgICAgIjAuMjEwMzI2LCAwLjI0MTcwNiwgMC41MjQxNjgsIDAuOTk0MTA3LCAxLjQ2NDM2LCAyLjU2MDMsIDMuMTg1MTIiLCBcCi0gICAgICAgICAgIjAuMjIzNDU1LCAwLjI1NDQ0MiwgMC41MzYzNTcsIDEuMDA2NTksIDEuNDc2MTEsIDIuNTcxODMsIDMuMTk3OCIsIFwKLSAgICAgICAgICAiMC4yMzQ1MzQsIDAuMjY1ODI1LCAwLjU0NzYxMywgMS4wMTc0NCwgMS40ODY2NywgMi41ODI1MywgMy4yMDg0NCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zNjI4NDIsIDAuNDI2ODIzLCAxLjAwOTM0LCAxLjk3OTE1LCAyLjk0MzU3LCA1LjIwOTg3LCA2LjQ5MTUzIiwgXAotICAgICAgICAgICIwLjM2MjE4NCwgMC40Mjc0OTQsIDEuMDA3NTgsIDEuOTc2MTUsIDIuOTQ4OTMsIDUuMjEwMDMsIDYuNDk2OSIsIFwKLSAgICAgICAgICAiMC4zNjI4NjIsIDAuNDI2ODAzLCAxLjAwOTM0LCAxLjk3OTA2LCAyLjk0MzUxLCA1LjIwMzA1LCA2LjQ5MjIxIiwgXAotICAgICAgICAgICIwLjM2Mjg5OCwgMC40Mjc3NTksIDEuMDA5MzcsIDEuOTc1NTcsIDIuOTQ0MzgsIDUuMjAyNDksIDYuNDkyNDQiLCBcCi0gICAgICAgICAgIjAuMzY0OTA4LCAwLjQyOTA2OCwgMS4wMDc2NCwgMS45NzUzNCwgMi45NDM4LCA1LjIxLCA2LjQ5MTQiLCBcCi0gICAgICAgICAgIjAuMzcwODkzLCAwLjQzMzMwMSwgMS4wMDc2NywgMS45NzUzMiwgMi45NDg3NywgNS4yMDQ2NCwgNi40OTE5OSIsIFwKLSAgICAgICAgICAiMC4zNzY2OTMsIDAuNDM4MzM1LCAxLjAwOTksIDEuOTc4OTYsIDIuOTQzNiwgNS4yMDc3OCwgNi40OTEzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkQiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2MTI0MiwgMC4wNzE3NTksIDAuMTY2NTY2LCAwLjMyNDc4LCAwLjQ4MjQxNSwgMC44NTExODEsIDEuMDYxOCIsIFwKLSAgICAgICAgICAiMC4wNjkxNTcsIDAuMDc5Njc4LCAwLjE3NDQ1LCAwLjMzMjI3NSwgMC40OTA0MDksIDAuODU4NDU1LCAxLjA3MDQ2IiwgXAotICAgICAgICAgICIwLjA3OTIyNCwgMC4wODk3MzIsIDAuMTg0NDQ3LCAwLjM0MjMzNiwgMC41MDAwNzQsIDAuODY4NTgxLCAxLjA3OTU5IiwgXAotICAgICAgICAgICIwLjA4OTUsIDAuMDk5OTQ1LCAwLjE5NDU1OSwgMC4zNTI1NiwgMC41MTA1NywgMC44Nzg2MDQsIDEuMDg4OTYiLCBcCi0gICAgICAgICAgIjAuMDk5ODY3LCAwLjExMDI0OCwgMC4yMDQ3MzksIDAuMzYyNDc0LCAwLjUyMDM3NywgMC44ODkyNTQsIDEuMDk5MTUiLCBcCi0gICAgICAgICAgIjAuMTE0MjI0LCAwLjEyNjAzOCwgMC4yMjA5NjQsIDAuMzc4NzAyLCAwLjUzNjU1NywgMC45MDQ4NzcsIDEuMTE1MjkiLCBcCi0gICAgICAgICAgIjAuMTI0NTQ0LCAwLjEzNzY4LCAwLjIzNTI5MiwgMC4zOTI4NzQsIDAuNTUwODIzLCAwLjkxODk2NiwgMS4xMjk1Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEyMjk4NCwgMC4xNDUxMjQsIDAuMzQ0NDE3LCAwLjY3Njg2MiwgMS4wMDkzNywgMS43ODM4NiwgMi4yMjY1MiIsIFwKLSAgICAgICAgICAiMC4xMjMyMjYsIDAuMTQ1MTU5LCAwLjM0NDM4NCwgMC42NzYzODgsIDEuMDA4NzYsIDEuNzg2MDIsIDIuMjI3NDEiLCBcCi0gICAgICAgICAgIjAuMTI3NDY4LCAwLjE0ODU0NywgMC4zNDQ1OTQsIDAuNjc2NTM2LCAxLjAwODQsIDEuNzg0NDMsIDIuMjI2NjIiLCBcCi0gICAgICAgICAgIjAuMTM0MjAzLCAwLjE1NDQ1LCAwLjM0NjEwNCwgMC42NzY1ODUsIDEuMDA4NTYsIDEuNzg0MzUsIDIuMjI1NjgiLCBcCi0gICAgICAgICAgIjAuMTQyMjIxLCAwLjE2MTgzNywgMC4zNDkzNTMsIDAuNjc3NTM4LCAxLjAwOTU3LCAxLjc4NDQsIDIuMjI1NTciLCBcCi0gICAgICAgICAgIjAuMTU3MjM2LCAwLjE3NTY3NCwgMC4zNTcwOTIsIDAuNjc4OCwgMS4wMDkwMiwgMS43ODMwMSwgMi4yMjU0NyIsIFwKLSAgICAgICAgICAiMC4xNzA3OSwgMC4xODk2MjYsIDAuMzY2MDc4LCAwLjY4MzI5NCwgMS4wMDg2NCwgMS43ODU1MSwgMi4yMjU2NiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNzY4NDUsIDAuMjA4MjE3LCAwLjQ4OTk3NywgMC45NTk1OTksIDEuNDI5MjgsIDIuNTI1MDIsIDMuMTUxMDkiLCBcCi0gICAgICAgICAgIjAuMTgzMzMyLCAwLjIxNDcwOSwgMC40OTY3NDQsIDAuOTY2NzI3LCAxLjQzNjUxLCAyLjUzMjg2LCAzLjE1NzYiLCBcCi0gICAgICAgICAgIjAuMTkxNzM2LCAwLjIyMzExNywgMC41MDQ5NjEsIDAuOTc0NTkzLCAxLjQ0NTIzLCAyLjU0MTksIDMuMTY3MjkiLCBcCi0gICAgICAgICAgIjAuMjAwNDcsIDAuMjMxNjQyLCAwLjUxMzQ1MiwgMC45ODM1NjUsIDEuNDUzNDcsIDIuNTQ5NTYsIDMuMTc0NDgiLCBcCi0gICAgICAgICAgIjAuMjA5MDMxLCAwLjI0MDIzMSwgMC41MjE3MTksIDAuOTkxMzQ2LCAxLjQ2MDk3LCAyLjU1NzQ4LCAzLjE4MzY3IiwgXAotICAgICAgICAgICIwLjIyMzM2NSwgMC4yNTQ0OTEsIDAuNTM1MzU5LCAxLjAwNTA3LCAxLjQ3NDgsIDIuNTcxNDUsIDMuMTk2MDQiLCBcCi0gICAgICAgICAgIjAuMjM2MjcyLCAwLjI2NzA1MiwgMC41NDc1NjUsIDEuMDE3NzIsIDEuNDg3MjMsIDIuNTgxOSwgMy4yMDgwMSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zNjI4MzEsIDAuNDI3NDc2LCAxLjAwNzU2LCAxLjk3NjcyLCAyLjk0ODk3LCA1LjIwOTk5LCA2LjQ5Mjk1IiwgXAotICAgICAgICAgICIwLjM2MjI5NiwgMC40Mjc0OTIsIDEuMDA5MywgMS45NzU2NCwgMi45NDg5MywgNS4yMTAwMiwgNi40OTQwMiIsIFwKLSAgICAgICAgICAiMC4zNjIxMTYsIDAuNDI3NDY2LCAxLjAwOTM3LCAxLjk3NTc1LCAyLjk0MzU4LCA1LjIwMjY3LCA2LjQ5MTQ3IiwgXAotICAgICAgICAgICIwLjM2MzU4NCwgMC40MjY5MTIsIDEuMDA3NDYsIDEuOTc1NDUsIDIuOTQzMjcsIDUuMjEwMDEsIDYuNDkxODMiLCBcCi0gICAgICAgICAgIjAuMzY1NzA2LCAwLjQyODY2OSwgMS4wMDkzNiwgMS45NzkxNSwgMi45NDU2MSwgNS4yMDIwNCwgNi40OTIyOCIsIFwKLSAgICAgICAgICAiMC4zNzI0NSwgMC40MzQ4NjEsIDEuMDA5MTcsIDEuOTc5MDMsIDIuOTQzNTMsIDUuMjAxNjMsIDYuNDk2NzEiLCBcCi0gICAgICAgICAgIjAuMzgwMzA0LCAwLjQ0MDk2NywgMS4wMDk4NiwgMS45NzU0LCAyLjk0MzcxLCA1LjIwNjAyLCA2LjQ5MjU5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyNDk4LCAwLjAwMjQ5OCwgMC4wMDI0OTgsIDAuMDAyNDk4LCAwLjAwMjQ5NywgMC4wMDI0OTcsIDAuMDAyNDk3IiwgXAotICAgICAgICAgICIwLjAwMjQ5MSwgMC4wMDI0OTEsIDAuMDAyNDg4LCAwLjAwMjQ4OSwgMC4wMDI0ODksIDAuMDAyNDg4LCAwLjAwMjQ4OSIsIFwKLSAgICAgICAgICAiMC4wMDI1MDQsIDAuMDAyNTAyLCAwLjAwMjQ5NCwgMC4wMDI0ODksIDAuMDAyNDg3LCAwLjAwMjQ4NiwgMC4wMDI0ODQiLCBcCi0gICAgICAgICAgIjAuMDAyNTI3LCAwLjAwMjUyMiwgMC4wMDI1MDQsIDAuMDAyNDk2LCAwLjAwMjQ5LCAwLjAwMjQ4NywgMC4wMDI0ODUiLCBcCi0gICAgICAgICAgIjAuMDAyNTU3LCAwLjAwMjU0OCwgMC4wMDI1MTcsIDAuMDAyNTA0LCAwLjAwMjQ5OCwgMC4wMDI0OSwgMC4wMDI0ODgiLCBcCi0gICAgICAgICAgIjAuMDAyNjI2LCAwLjAwMjYxLCAwLjAwMjU0OCwgMC4wMDI1MjEsIDAuMDAyNTExLCAwLjAwMjUsIDAuMDAyNDk0IiwgXAotICAgICAgICAgICIwLjAwMjcwNiwgMC4wMDI2NzYsIDAuMDAyNTgyLCAwLjAwMjU0MSwgMC4wMDI1MjUsIDAuMDAyNTA5LCAwLjAwMjUwNSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDYyNCwgMC4wMDA2MjUsIDAuMDAwNjI3LCAwLjAwMDYyOCwgMC4wMDA2MjgsIDAuMDAwNjI4LCAwLjAwMDYyOCIsIFwKLSAgICAgICAgICAiMC4wMDA2MDcsIDAuMDAwNjEsIDAuMDAwNjIsIDAuMDAwNjI0LCAwLjAwMDYyNiwgMC4wMDA2MjcsIDAuMDAwNjI3IiwgXAotICAgICAgICAgICIwLjAwMDU5MywgMC4wMDA1OTcsIDAuMDAwNjEzLCAwLjAwMDYyLCAwLjAwMDYyMywgMC4wMDA2MjUsIDAuMDAwNjI2IiwgXAotICAgICAgICAgICIwLjAwMDU4OCwgMC4wMDA1OTEsIDAuMDAwNjA5LCAwLjAwMDYxOCwgMC4wMDA2MjEsIDAuMDAwNjI0LCAwLjAwMDYyNSIsIFwKLSAgICAgICAgICAiMC4wMDA1OTEsIDAuMDAwNTk0LCAwLjAwMDYwOCwgMC4wMDA2MTYsIDAuMDAwNjIsIDAuMDAwNjIzLCAwLjAwMDYyNCIsIFwKLSAgICAgICAgICAiMC4wMDA2MTMsIDAuMDAwNjEzLCAwLjAwMDYxNSwgMC4wMDA2MiwgMC4wMDA2MjIsIDAuMDAwNjI0LCAwLjAwMDYyNSIsIFwKLSAgICAgICAgICAiMC4wMDA2NDgsIDAuMDAwNjQzLCAwLjAwMDYyOSwgMC4wMDA2MjcsIDAuMDAwNjI3LCAwLjAwMDYyNywgMC4wMDA2MjciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDIxNjIsIDAuMDAyMTYxLCAwLjAwMjE2MiwgMC4wMDIxNjIsIDAuMDAyMTYyLCAwLjAwMjE2MSwgMC4wMDIxNjEiLCBcCi0gICAgICAgICAgIjAuMDAyMTU4LCAwLjAwMjE1OCwgMC4wMDIxNTgsIDAuMDAyMTU5LCAwLjAwMjE1OCwgMC4wMDIxNTgsIDAuMDAyMTU3IiwgXAotICAgICAgICAgICIwLjAwMjE3NCwgMC4wMDIxNzIsIDAuMDAyMTY1LCAwLjAwMjE2LCAwLjAwMjE1OSwgMC4wMDIxNTcsIDAuMDAyMTU2IiwgXAotICAgICAgICAgICIwLjAwMjIwMywgMC4wMDIxOTcsIDAuMDAyMTc3LCAwLjAwMjE2OSwgMC4wMDIxNjMsIDAuMDAyMTYsIDAuMDAyMTU5IiwgXAotICAgICAgICAgICIwLjAwMjIxNiwgMC4wMDIyMywgMC4wMDIxOTMsIDAuMDAyMTc3LCAwLjAwMjE3MiwgMC4wMDIxNjMsIDAuMDAyMTYxIiwgXAotICAgICAgICAgICIwLjAwMjI3MSwgMC4wMDIyOSwgMC4wMDIyMjUsIDAuMDAyMTk2LCAwLjAwMjE4NSwgMC4wMDIxNzMsIDAuMDAyMTY3IiwgXAotICAgICAgICAgICIwLjAwMjMzNCwgMC4wMDIzMjQsIDAuMDAyMjYsIDAuMDAyMjE1LCAwLjAwMjIwMSwgMC4wMDIxODMsIDAuMDAyMTc4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwNjI0LCAwLjAwMDYyNSwgMC4wMDA2MjcsIDAuMDAwNjI4LCAwLjAwMDYyOCwgMC4wMDA2MjgsIDAuMDAwNjI4IiwgXAotICAgICAgICAgICIwLjAwMDYwOCwgMC4wMDA2MSwgMC4wMDA2MiwgMC4wMDA2MjQsIDAuMDAwNjI2LCAwLjAwMDYyNywgMC4wMDA2MjciLCBcCi0gICAgICAgICAgIjAuMDAwNTk0LCAwLjAwMDU5OCwgMC4wMDA2MTMsIDAuMDAwNjIsIDAuMDAwNjIzLCAwLjAwMDYyNSwgMC4wMDA2MjYiLCBcCi0gICAgICAgICAgIjAuMDAwNTkxLCAwLjAwMDU5NSwgMC4wMDA2MSwgMC4wMDA2MTgsIDAuMDAwNjIxLCAwLjAwMDYyNCwgMC4wMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMDAwNTk4LCAwLjAwMDYsIDAuMDAwNjExLCAwLjAwMDYxOCwgMC4wMDA2MjEsIDAuMDAwNjI0LCAwLjAwMDYyNSIsIFwKLSAgICAgICAgICAiMC4wMDA2MjYsIDAuMDAwNjIzLCAwLjAwMDYyLCAwLjAwMDYyMiwgMC4wMDA2MjQsIDAuMDAwNjI1LCAwLjAwMDYyNiIsIFwKLSAgICAgICAgICAiMC4wMDA2NjYsIDAuMDAwNjU5LCAwLjAwMDYzNiwgMC4wMDA2MywgMC4wMDA2MjksIDAuMDAwNjI4LCAwLjAwMDYyOCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTgzMywgMC4wMDE4MzMsIDAuMDAxODM0LCAwLjAwMTgzNCwgMC4wMDE4MzQsIDAuMDAxODM0LCAwLjAwMTgzNCIsIFwKLSAgICAgICAgICAiMC4wMDE4MzcsIDAuMDAxODM3LCAwLjAwMTgzOCwgMC4wMDE4MzksIDAuMDAxODM5LCAwLjAwMTgzOCwgMC4wMDE4MzkiLCBcCi0gICAgICAgICAgIjAuMDAxODUzLCAwLjAwMTg1MiwgMC4wMDE4NDYsIDAuMDAxODQzLCAwLjAwMTg0MiwgMC4wMDE4NDEsIDAuMDAxODQxIiwgXAotICAgICAgICAgICIwLjAwMTg4MiwgMC4wMDE4NzYsIDAuMDAxODU5LCAwLjAwMTg1MSwgMC4wMDE4NDYsIDAuMDAxODQ0LCAwLjAwMTg0MyIsIFwKLSAgICAgICAgICAiMC4wMDE4OTMsIDAuMDAxOTA4LCAwLjAwMTg3NSwgMC4wMDE4NiwgMC4wMDE4NTQsIDAuMDAxODQ3LCAwLjAwMTg0NSIsIFwKLSAgICAgICAgICAiMC4wMDE5NDYsIDAuMDAxOTY3LCAwLjAwMTkwNSwgMC4wMDE4NzgsIDAuMDAxODY4LCAwLjAwMTg1NiwgMC4wMDE4NTEiLCBcCi0gICAgICAgICAgIjAuMDAyMDA4LCAwLjAwMTk5OCwgMC4wMDE5MzksIDAuMDAxODk5LCAwLjAwMTg4MywgMC4wMDE4NjYsIDAuMDAxODYxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwNjI0LCAwLjAwMDYyNSwgMC4wMDA2MjcsIDAuMDAwNjI4LCAwLjAwMDYyOCwgMC4wMDA2MjgsIDAuMDAwNjI4IiwgXAotICAgICAgICAgICIwLjAwMDYwOCwgMC4wMDA2MTEsIDAuMDAwNjIsIDAuMDAwNjI0LCAwLjAwMDYyNiwgMC4wMDA2MjcsIDAuMDAwNjI3IiwgXAotICAgICAgICAgICIwLjAwMDU5OSwgMC4wMDA2MDIsIDAuMDAwNjE1LCAwLjAwMDYyMSwgMC4wMDA2MjMsIDAuMDAwNjI2LCAwLjAwMDYyNiIsIFwKLSAgICAgICAgICAiMC4wMDA2MDIsIDAuMDAwNjAzLCAwLjAwMDYxNCwgMC4wMDA2MiwgMC4wMDA2MjMsIDAuMDAwNjI1LCAwLjAwMDYyNiIsIFwKLSAgICAgICAgICAiMC4wMDA2MTQsIDAuMDAwNjE0LCAwLjAwMDYxNywgMC4wMDA2MjEsIDAuMDAwNjIzLCAwLjAwMDYyNSwgMC4wMDA2MjYiLCBcCi0gICAgICAgICAgIjAuMDAwNjUsIDAuMDAwNjQ1LCAwLjAwMDYzLCAwLjAwMDYyNywgMC4wMDA2MjcsIDAuMDAwNjI4LCAwLjAwMDYyOCIsIFwKLSAgICAgICAgICAiMC4wMDA2OTYsIDAuMDAwNjg3LCAwLjAwMDY1LCAwLjAwMDYzOCwgMC4wMDA2MzQsIDAuMDAwNjMxLCAwLjAwMDYzMSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkQiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTQ5OSwgMC4wMDE1LCAwLjAwMTUwMSwgMC4wMDE1MDIsIDAuMDAxNTAyLCAwLjAwMTUwMiwgMC4wMDE1MDIiLCBcCi0gICAgICAgICAgIjAuMDAxNTA2LCAwLjAwMTUwNywgMC4wMDE1MSwgMC4wMDE1MSwgMC4wMDE1MSwgMC4wMDE1MTEsIDAuMDAxNTExIiwgXAotICAgICAgICAgICIwLjAwMTUxOCwgMC4wMDE1MTgsIDAuMDAxNTE2LCAwLjAwMTUxNSwgMC4wMDE1MTUsIDAuMDAxNTE1LCAwLjAwMTUxNiIsIFwKLSAgICAgICAgICAiMC4wMDE1MzksIDAuMDAxNTM2LCAwLjAwMTUyNSwgMC4wMDE1MiwgMC4wMDE1MTgsIDAuMDAxNTE3LCAwLjAwMTUxNyIsIFwKLSAgICAgICAgICAiMC4wMDE1NjcsIDAuMDAxNTYsIDAuMDAxNTM4LCAwLjAwMTUyNiwgMC4wMDE1MjQsIDAuMDAxNTE5LCAwLjAwMTUxOSIsIFwKLSAgICAgICAgICAiMC4wMDE2MzEsIDAuMDAxNjE4LCAwLjAwMTU2NywgMC4wMDE1NDYsIDAuMDAxNTM3LCAwLjAwMTUyNywgMC4wMDE1MjQiLCBcCi0gICAgICAgICAgIjAuMDAxNzA0LCAwLjAwMTY3OSwgMC4wMDE1OTgsIDAuMDAxNTY0LCAwLjAwMTU1MSwgMC4wMDE1MzYsIDAuMDAxNTMyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwNjIzLCAwLjAwMDYyNCwgMC4wMDA2MjYsIDAuMDAwNjI3LCAwLjAwMDYyOCwgMC4wMDA2MjgsIDAuMDAwNjI4IiwgXAotICAgICAgICAgICIwLjAwMDYxMiwgMC4wMDA2MTQsIDAuMDAwNjIyLCAwLjAwMDYyNSwgMC4wMDA2MjYsIDAuMDAwNjI3LCAwLjAwMDYyNyIsIFwKLSAgICAgICAgICAiMC4wMDA2MTYsIDAuMDAwNjE3LCAwLjAwMDYyMiwgMC4wMDA2MjUsIDAuMDAwNjI2LCAwLjAwMDYyNywgMC4wMDA2MjciLCBcCi0gICAgICAgICAgIjAuMDAwNjM2LCAwLjAwMDYzNCwgMC4wMDA2MjgsIDAuMDAwNjI4LCAwLjAwMDYyOCwgMC4wMDA2MjgsIDAuMDAwNjI4IiwgXAotICAgICAgICAgICIwLjAwMDY2MiwgMC4wMDA2NTYsIDAuMDAwNjM4LCAwLjAwMDYzMywgMC4wMDA2MzEsIDAuMDAwNjMsIDAuMDAwNjMiLCBcCi0gICAgICAgICAgIjAuMDAwNzI0LCAwLjAwMDcxMywgMC4wMDA2NjYsIDAuMDAwNjQ3LCAwLjAwMDY0MSwgMC4wMDA2MzUsIDAuMDAwNjM0IiwgXAotICAgICAgICAgICIwLjAwMDc4OCwgMC4wMDA3NywgMC4wMDA2OTcsIDAuMDAwNjY0LCAwLjAwMDY1MywgMC4wMDA2NDIsIDAuMDAwNjQiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBOT1IzQlg0ICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKE5PUjNCWDQpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMS4wMDUyNzsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQU4pICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDk2NjE5MzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA5NjYxOTM7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwOTY2MTMzOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzc0OCwgMC4wMDM3MTksIDAuMDAzNzk4LCAwLjAwMzkwNywgMC4wMDQwNDYsIDAuMDA0MzAzLCAwLjAwNDU0OCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNTQzMSwgMC4wMDU0MjQsIDAuMDA1NDY1LCAwLjAwNTU3LCAwLjAwNTcwMSwgMC4wMDU5NzksIDAuMDA2MjM5Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDM2OTEzNjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDM2NzczMjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDM2OTEzNjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA3MjEsIDAuMDAwNzIxLCAwLjAwMDcyMSwgMC4wMDA3MjEsIDAuMDAwNzIyLCAwLjAwMDcyMiwgMC4wMDA3MjEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDE3NTcsIDAuMDAxNzU2LCAwLjAwMTc1NSwgMC4wMDE3NTUsIDAuMDAxNzU1LCAwLjAwMTc1NCwgMC4wMDE3NTUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEMpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMzQyMTI1OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMzQyMTI1OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMzQxOTczOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDUzMywgMC4wMDA1MzMsIDAuMDAwNTMzLCAwLjAwMDUzMywgMC4wMDA1MzMsIDAuMDAwNTM0LCAwLjAwMDUzMyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTQzOCwgMC4wMDE0MzgsIDAuMDAxNDM5LCAwLjAwMTQzOSwgMC4wMDE0MzgsIDAuMDAxNDM3LCAwLjAwMTQzNyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjUxMjIwNTsKLSAgICBmdW5jdGlvbiA6ICIoISgoKCFBTikrQikrQykpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTgzODMsIDAuMjAyODE4LCAwLjM0NzQ1NywgMC40NTAzOCwgMC42MTUzNTIsIDAuNzU5NzM2LCAwLjk2Njg1NiIsIFwKLSAgICAgICAgICAiMC4wNjY2NjQsIDAuMjExNDIyLCAwLjM1NTMyNywgMC40NTg3MjgsIDAuNjIzMTIsIDAuNzY3OTM5LCAwLjk3NDg3IiwgXAotICAgICAgICAgICIwLjA3NTcxNiwgMC4yMjAzNTYsIDAuMzY0OSwgMC40Njc4NTcsIDAuNjMzMDMzLCAwLjc3NzAzOCwgMC45ODMyNiIsIFwKLSAgICAgICAgICAiMC4wODI2NDQsIDAuMjI3MywgMC4zNzE3MjksIDAuNDc1MTI5LCAwLjYzOTg3MSwgMC43ODUwMTQsIDAuOTkwMTcxIiwgXAotICAgICAgICAgICIwLjA4ODI1NSwgMC4yMzI4NzIsIDAuMzc3MzA3LCAwLjQ4MDQsIDAuNjQ1Mzk2LCAwLjc5MDEwNSwgMC45OTU4ODMiLCBcCi0gICAgICAgICAgIjAuMDk1NjkzLCAwLjI0MDMwOCwgMC4zODQ3MDYsIDAuNDg3ODM1LCAwLjY1MjcwOCwgMC43OTc0MzMsIDEuMDA0MDIiLCBcCi0gICAgICAgICAgIjAuMTAxNDA2LCAwLjI0NTk5OCwgMC4zOTAzODIsIDAuNDkzNDUzLCAwLjY1ODczNCwgMC44MDMwMDUsIDEuMDA5ODciKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjgyNiwgMC4zNzE1MDYsIDAuNjc2MjU5LCAwLjg5NDQ3NCwgMS4yNDE4NywgMS41NDc5OSwgMS45ODA5NCIsIFwKLSAgICAgICAgICAiMC4wNjgyNzksIDAuMzcxOTgzLCAwLjY3NTU1NSwgMC44OTQ3ODQsIDEuMjQwOTIsIDEuNTQ3NywgMS45ODAzMyIsIFwKLSAgICAgICAgICAiMC4wNjg0MjcsIDAuMzcyMzc2LCAwLjY3NjQzNiwgMC44OTM2OTYsIDEuMjQxMzEsIDEuNTQ3MiwgMS45ODEwNyIsIFwKLSAgICAgICAgICAiMC4wNjg2NzgsIDAuMzcyMzY4LCAwLjY3NzIxOCwgMC44OTM0NzcsIDEuMjQzMzUsIDEuNTQ2MTIsIDEuOTgxNDYiLCBcCi0gICAgICAgICAgIjAuMDY4OTg1LCAwLjM3MjIyMiwgMC42NzcwOTksIDAuODk0NzI1LCAxLjI0MzEsIDEuNTQ2MDgsIDEuOTgzMTciLCBcCi0gICAgICAgICAgIjAuMDY5NTEyLCAwLjM3MjIwMSwgMC42NzY5NDQsIDAuODkzNjI3LCAxLjI0MjM5LCAxLjU0NTYsIDEuOTgxMDYiLCBcCi0gICAgICAgICAgIjAuMDY5OTg2LCAwLjM3MTk2OCwgMC42NzY2OTUsIDAuODk0MjUyLCAxLjI0MTU0LCAxLjU0ODAyLCAxLjk4MDMyIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM4ODAzLCAwLjA5Mzg0MiwgMC4xNDc1NzYsIDAuMTg1OTEzLCAwLjI0NzE1LCAwLjMwMDc5MSwgMC4zNzczMzUiLCBcCi0gICAgICAgICAgIjAuMDQ3MDA2LCAwLjEwMTk5NSwgMC4xNTU3MjgsIDAuMTk0MDUxLCAwLjI1NTQxMywgMC4zMDg5NTUsIDAuMzg1NjM4IiwgXAotICAgICAgICAgICIwLjA1NjEsIDAuMTExMDgxLCAwLjE2NDgwNSwgMC4yMDMxMjksIDAuMjY0NDM3LCAwLjMxODAzNiwgMC4zOTQ3NTIiLCBcCi0gICAgICAgICAgIjAuMDYzMjUzLCAwLjExODQyNiwgMC4xNzIwODYsIDAuMjEwNDE4LCAwLjI3MTY3LCAwLjMyNTMyNiwgMC40MDE5NiIsIFwKLSAgICAgICAgICAiMC4wNjg3ODMsIDAuMTI0Mjg0LCAwLjE3Nzc1NywgMC4yMTYwNDEsIDAuMjc3MzU1LCAwLjMzMDkyNiwgMC40MDc1MTgiLCBcCi0gICAgICAgICAgIjAuMDc2MjQ5LCAwLjEzMTYxNiwgMC4xODUyMjYsIDAuMjIzNTAzLCAwLjI4NDc3LCAwLjMzODMyLCAwLjQxNDkxNyIsIFwKLSAgICAgICAgICAiMC4wODE1MDQsIDAuMTM3MjA4LCAwLjE5MDg0MSwgMC4yMjkwNDUsIDAuMjkwMjUyLCAwLjM0Mzg2OCwgMC40MjAzNjYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzE0OTQsIDAuMTM5MTY1LCAwLjI0OTAxLCAwLjMyNzgxMSwgMC40NTM4MDIsIDAuNTY0MjM5LCAwLjcyMTkzNCIsIFwKLSAgICAgICAgICAiMC4wMzE0OTUsIDAuMTM5MTkxLCAwLjI0OTA0MywgMC4zMjc3NzQsIDAuNDUzODA5LCAwLjU2NDI1NiwgMC43MjE5MzMiLCBcCi0gICAgICAgICAgIjAuMDMyMzk3LCAwLjEzOTM1LCAwLjI0OTA5OCwgMC4zMjc3OTUsIDAuNDUzOTE2LCAwLjU2NDA1OCwgMC43MjE5NzEiLCBcCi0gICAgICAgICAgIjAuMDMzNjc4LCAwLjEzOTY3NCwgMC4yNDkxNjMsIDAuMzI3OTE2LCAwLjQ1Mzg3NywgMC41NjQzMzYsIDAuNzIyMTQ0IiwgXAotICAgICAgICAgICIwLjAzNDg0MywgMC4xNDAwNiwgMC4yNDkzMzQsIDAuMzI3OTE0LCAwLjQ1MzgyNCwgMC41NjQyMjIsIDAuNzIxODgzIiwgXAotICAgICAgICAgICIwLjAzNjQzNywgMC4xNDA2NSwgMC4yNDk2MDYsIDAuMzI4MDA3LCAwLjQ1Mzg4MywgMC41NjQyMTIsIDAuNzIxOTE1IiwgXAotICAgICAgICAgICIwLjAzNzg0NywgMC4xNDEyMDUsIDAuMjQ5OTIyLCAwLjMyODIwMywgMC40NTM5NDgsIDAuNTY0MjczLCAwLjcyMTk1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM3NTUxLCAwLjE4MjAxMSwgMC4zMjY4MTQsIDAuNDI5NjE3LCAwLjU5NTA2LCAwLjczOTE5NSwgMC45NDUzNTYiLCBcCi0gICAgICAgICAgIjAuMDQzNTgsIDAuMTg4NDA3LCAwLjMzMzAxMiwgMC40MzYzOSwgMC42MDA4ODEsIDAuNzQ1Nzg5LCAwLjk1MTc0NCIsIFwKLSAgICAgICAgICAiMC4wNTA5NTgsIDAuMTk2MDEzLCAwLjM0MDM0NSwgMC40NDM0MTksIDAuNjA4MzYsIDAuNzUzNTM1LCAwLjk1OTU2OCIsIFwKLSAgICAgICAgICAiMC4wNTc0MiwgMC4yMDMzMTksIDAuMzQ3OTg0LCAwLjQ1MDk3NSwgMC42MTYyNiwgMC43NjEzODgsIDAuOTY2NDM0IiwgXAotICAgICAgICAgICIwLjA2Mjc4MiwgMC4yMTA4OTUsIDAuMzU1NjUsIDAuNDU5MDQ2LCAwLjYyNDQ5NSwgMC43Njg0NzMsIDAuOTc0MzM0IiwgXAotICAgICAgICAgICIwLjA3MDE4MSwgMC4yMjM0OTUsIDAuMzY4MDMyLCAwLjQ3MDg4NCwgMC42MzY0NzUsIDAuNzgwMjU3LCAwLjk4Njk4MiIsIFwKLSAgICAgICAgICAiMC4wNzU3NCwgMC4yMzM5NDIsIDAuMzc4MzY2LCAwLjQ4MTY5NywgMC42NDYwODUsIDAuNzkwODk5LCAwLjk5NzAzNiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2Nzg0LCAwLjM3MjIyMiwgMC42NzY0NDQsIDAuODkzODA3LCAxLjI0MTUxLCAxLjU0NTE3LCAxLjk4MDMzIiwgXAotICAgICAgICAgICIwLjA2ODY3OCwgMC4zNzI1MzMsIDAuNjc2MjAyLCAwLjg5NDA1MSwgMS4yNDE2LCAxLjU0NjQxLCAxLjk4MDM0IiwgXAotICAgICAgICAgICIwLjA3Mjk3MywgMC4zNzIwNDMsIDAuNjc2MjEzLCAwLjg5NDk4NCwgMS4yNDMyNCwgMS41NDYwMiwgMS45OCIsIFwKLSAgICAgICAgICAiMC4wNzg5MzcsIDAuMzcyODg4LCAwLjY3NjE2MiwgMC44OTM5NjEsIDEuMjQxMzMsIDEuNTQ2MjgsIDEuOTgxOSIsIFwKLSAgICAgICAgICAiMC4wODU2MjksIDAuMzc0ODU2LCAwLjY3NzE2MiwgMC44OTM1MzksIDEuMjQxNywgMS41NDU1NCwgMS45ODA3NiIsIFwKLSAgICAgICAgICAiMC4wOTYxMTcsIDAuMzgwMDU5LCAwLjY3NzgxMSwgMC44OTQ4NzcsIDEuMjQxMzQsIDEuNTQ3NzEsIDEuOTgwMTUiLCBcCi0gICAgICAgICAgIjAuMTAzODc5LCAwLjM4NTQxOCwgMC42ODA2ODMsIDAuODk2MzA1LCAxLjI0MjcyLCAxLjU0NTg0LCAxLjk4MjgyIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE1ODUsIDAuMDY4OTU4LCAwLjEyMTgzNCwgMC4xNTk1ODIsIDAuMjE5OTc1LCAwLjI3Mjg2NSwgMC4zNDgyODkiLCBcCi0gICAgICAgICAgIjAuMDI0MjMzLCAwLjA3NzMzNiwgMC4xMzAyMiwgMC4xNjc5NTMsIDAuMjI4MzU4LCAwLjI4MTIwNSwgMC4zNTY2OTEiLCBcCi0gICAgICAgICAgIjAuMDMyMzM4LCAwLjA4Nzg2OSwgMC4xNDA4NjQsIDAuMTc4NjUsIDAuMjM5MDM4LCAwLjI5MTkyNSwgMC4zNjc0NiIsIFwKLSAgICAgICAgICAiMC4wMzgxOTcsIDAuMDk4NTc1LCAwLjE1MDkyOSwgMC4xODkwMDUsIDAuMjQ5MTM2LCAwLjMwMjI1NCwgMC4zNzc3MjUiLCBcCi0gICAgICAgICAgIjAuMDQyOTE0LCAwLjEwOTMwMSwgMC4xNjE4ODcsIDAuMTk5MTQ5LCAwLjI1OTk3LCAwLjMxMjc4OSwgMC4zODgzMjgiLCBcCi0gICAgICAgICAgIjAuMDQ4ODk0LCAwLjEyNjQ0MywgMC4xNzg1ODYsIDAuMjE2MjA2LCAwLjI3NzI0MywgMC4zMzAxNSwgMC40MDU1MTQiLCBcCi0gICAgICAgICAgIjAuMDUzMDYxLCAwLjEzOTM3MiwgMC4xOTM2NjEsIDAuMjMxMTAxLCAwLjI5MTI4NiwgMC4zNDM5NTQsIDAuNDE5MzkyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDI0NzU5LCAwLjEzMzQ3MSwgMC4yNDIxNjYsIDAuMzE5ODE5LCAwLjQ0NDEyMywgMC41NTI4LCAwLjcwODA2NyIsIFwKLSAgICAgICAgICAiMC4wMjkxNTMsIDAuMTMzNDc3LCAwLjI0MjEzNiwgMC4zMTk4MDMsIDAuNDQ0MDgxLCAwLjU1Mjc1NSwgMC43MDgxMDMiLCBcCi0gICAgICAgICAgIjAuMDM4NDUzLCAwLjEzNjU3NSwgMC4yNDI1NjIsIDAuMzE5ODczLCAwLjQ0NDAwMywgMC41NTI4NjcsIDAuNzA4MTUzIiwgXAotICAgICAgICAgICIwLjA0NzE4NCwgMC4xNDI0NjYsIDAuMjQ1NDk3LCAwLjMyMTAyLCAwLjQ0NDA4LCAwLjU1MjgsIDAuNzA4MDA1IiwgXAotICAgICAgICAgICIwLjA1NDYxNywgMC4xNDk3OTMsIDAuMjQ5OTc4LCAwLjMyNDQzOCwgMC40NDUzODMsIDAuNTUyOTkzLCAwLjcwODAzNCIsIFwKLSAgICAgICAgICAiMC4wNjU4NiwgMC4xNjI2MzgsIDAuMjYwNDQ0LCAwLjMzMjU1OCwgMC40NTA0MzksIDAuNTU2MTc1LCAwLjcwODc3NyIsIFwKLSAgICAgICAgICAiMC4wNzUxNiwgMC4xNzU2MSwgMC4yNzA5MTYsIDAuMzQxMzMsIDAuNDU3NTUzLCAwLjU2MTI2NywgMC43MTE5NTUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzI0MzUsIDAuMTc3MTYxLCAwLjMyMTY3MSwgMC40MjQ5OTUsIDAuNTg5NTQ0LCAwLjczMzU5MywgMC45NDAzMDEiLCBcCi0gICAgICAgICAgIjAuMDM5MzY1LCAwLjE4NDExMywgMC4zMjg2NjQsIDAuNDMxODc4LCAwLjU5NjU5MSwgMC43NDExNTYsIDAuOTQ3NDkyIiwgXAotICAgICAgICAgICIwLjA0OTAxMSwgMC4xOTMyNDYsIDAuMzM3NTcyLCAwLjQ0MDg5NiwgMC42MDU2NjgsIDAuNzQ5ODU4LCAwLjk1NTk4NCIsIFwKLSAgICAgICAgICAiMC4wNTcxNjYsIDAuMjAyMjI0LCAwLjM0NjU4NywgMC40NDk4NywgMC42MTQ2MzQsIDAuNzU5Nzg0LCAwLjk2NDM0OSIsIFwKLSAgICAgICAgICAiMC4wNjQxNTUsIDAuMjExNTY1LCAwLjM1NTkyNSwgMC40NTkyMTcsIDAuNjI0NDkxLCAwLjc2Nzk5NCwgMC45NzM1MjgiLCBcCi0gICAgICAgICAgIjAuMDczMjAxLCAwLjIyNjMxMywgMC4zNzAwOTUsIDAuNDczNDA1LCAwLjYzNzg3OSwgMC43ODIwNDUsIDAuOTg4OTAxIiwgXAotICAgICAgICAgICIwLjA4MDAxNCwgMC4yMzkzOSwgMC4zODMwNTIsIDAuNDg1ODIxLCAwLjY0OTc2MiwgMC43OTQ4ODEsIDEuMDAwOTMiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjc1ODUsIDAuMzcxOTc5LCAwLjY3NjE2OSwgMC44OTQwNzUsIDEuMjQxNjUsIDEuNTQ1NjcsIDEuOTgxMDIiLCBcCi0gICAgICAgICAgIjAuMDY5MTU4LCAwLjM3MjQ1LCAwLjY3NjI0NSwgMC44OTM4ODUsIDEuMjQxNzMsIDEuNTQ1OTEsIDEuOTgwODkiLCBcCi0gICAgICAgICAgIjAuMDc1ODEsIDAuMzcyNDM4LCAwLjY3NjkzMSwgMC44OTM1ODUsIDEuMjQzMDEsIDEuNTQ3MzMsIDEuOTgxMDciLCBcCi0gICAgICAgICAgIjAuMDgzNzI2LCAwLjM3Mjk5MiwgMC42NzYzMzMsIDAuODkzNTcyLCAxLjI0MzE4LCAxLjU0NjEyLCAxLjk4MDciLCBcCi0gICAgICAgICAgIjAuMDkxODMsIDAuMzc1NzY1LCAwLjY3NjE2MSwgMC44OTM0NzMsIDEuMjQxNywgMS41NDc1NywgMS45Nzk3OCIsIFwKLSAgICAgICAgICAiMC4xMDMxMjYsIDAuMzgyNzQyLCAwLjY3ODEyNiwgMC44OTM2MjgsIDEuMjQxMzksIDEuNTQ3MTIsIDEuOTgwMTIiLCBcCi0gICAgICAgICAgIjAuMTExNDU5LCAwLjM5MDgzMSwgMC42ODI2NywgMC44OTU5OSwgMS4yNDI5MywgMS41NDU4MSwgMS45ODA0OCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxNDE4NCwgMC4wNjczNjcsIDAuMTIwNTA1LCAwLjE1ODQwNSwgMC4yMTkwOCwgMC4yNzIyMDYsIDAuMzQ4MDMzIiwgXAotICAgICAgICAgICIwLjAyMjQ5NiwgMC4wNzU4NjYsIDAuMTI4OTQ4LCAwLjE2Njg4NSwgMC4yMjc1OTYsIDAuMjgwNjQ3LCAwLjM1NjQ2OSIsIFwKLSAgICAgICAgICAiMC4wMjk4NTQsIDAuMDg2NDg5LCAwLjEzOTQ0NywgMC4xNzc1MTksIDAuMjM4MDUsIDAuMjkxMTMxLCAwLjM2Njk3NyIsIFwKLSAgICAgICAgICAiMC4wMzQ4OTEsIDAuMDk2OTk4LCAwLjE1MDA5LCAwLjE4Nzk3MiwgMC4yNDg0MDEsIDAuMzAxNzE0LCAwLjM3NzIzIiwgXAotICAgICAgICAgICIwLjAzOTA4MSwgMC4xMDc2NDEsIDAuMTYwODE5LCAwLjE5ODY3NCwgMC4yNTkzMTUsIDAuMzEyNDI0LCAwLjM4ODM0NSIsIFwKLSAgICAgICAgICAiMC4wNDQxMjcsIDAuMTIzODQ3LCAwLjE3NzkxMSwgMC4yMTU4MSwgMC4yNzYzMzIsIDAuMzI5NTM2LCAwLjQwNTI1NSIsIFwKLSAgICAgICAgICAiMC4wNDc0NzksIDAuMTM2MTA2LCAwLjE5MjU1LCAwLjIzMDI3LCAwLjI5MDYxOCwgMC4zNDM3LCAwLjQxOTQ2MSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyMjc3MiwgMC4xMzI5NzYsIDAuMjQzMjc2LCAwLjMyMjA4MSwgMC40NDgxMTgsIDAuNTU4MzI1LCAwLjcxNzA2MiIsIFwKLSAgICAgICAgICAiMC4wMjc0NzMsIDAuMTMzMDAyLCAwLjI0MzcwMywgMC4zMjE5MTIsIDAuNDQ4MDM5LCAwLjU1ODY0OSwgMC43MTYyOTQiLCBcCi0gICAgICAgICAgIjAuMDM2ODM4LCAwLjEzNjM1MiwgMC4yNDQwMDEsIDAuMzIxOTc1LCAwLjQ0ODc4NCwgMC41NTgyMzMsIDAuNzE2OTAyIiwgXAotICAgICAgICAgICIwLjA0NTYxOCwgMC4xNDIzODEsIDAuMjQ3MDY3LCAwLjMyMzI0LCAwLjQ0ODExNCwgMC41NTgxMjMsIDAuNzE2OTg3IiwgXAotICAgICAgICAgICIwLjA1Mjc5OCwgMC4xNDk0LCAwLjI1MTUxOCwgMC4zMjYzOTEsIDAuNDUwMTk3LCAwLjU1ODgyMSwgMC43MTU4NjIiLCBcCi0gICAgICAgICAgIjAuMDYzOTQxLCAwLjE2MzI1MSwgMC4yNjEwNDksIDAuMzM0NzYzLCAwLjQ1NTMxOCwgMC41NjE2MTksIDAuNzE2NzEiLCBcCi0gICAgICAgICAgIjAuMDczMTU3LCAwLjE3NzIwMywgMC4yNzE3OSwgMC4zNDM4ODYsIDAuNDYxODU2LCAwLjU2NzU4OSwgMC43MTk0NSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkFOIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMjQ0OSwgMC4wMTI1NCwgMC4wMTI1NSwgMC4wMTI1NTEsIDAuMDEyNTU4LCAwLjAxMjU1OCwgMC4wMTI1NTkiLCBcCi0gICAgICAgICAgIjAuMDEyNCwgMC4wMTI1MDcsIDAuMDEyNTI0LCAwLjAxMjUyOCwgMC4wMTI1MzMsIDAuMDEyNTM1LCAwLjAxMjUzNiIsIFwKLSAgICAgICAgICAiMC4wMTI0NDUsIDAuMDEyNTY2LCAwLjAxMjU4NywgMC4wMTI1OTUsIDAuMDEyNjAxLCAwLjAxMjYwMSwgMC4wMTI2MDkiLCBcCi0gICAgICAgICAgIjAuMDEyNTM1LCAwLjAxMjY1OSwgMC4wMTI2ODQsIDAuMDEyNjkyLCAwLjAxMjcsIDAuMDEyNzA0LCAwLjAxMjcwOCIsIFwKLSAgICAgICAgICAiMC4wMTI2NjgsIDAuMDEyNzksIDAuMDEyODE4LCAwLjAxMjgyOCwgMC4wMTI4MzMsIDAuMDEyODQsIDAuMDEyODQ2IiwgXAotICAgICAgICAgICIwLjAxMjkxMiwgMC4wMTMwMjcsIDAuMDEzMDU5LCAwLjAxMzA3MiwgMC4wMTMwNzcsIDAuMDEzMDg1LCAwLjAxMzA5IiwgXAotICAgICAgICAgICIwLjAxMzE0NywgMC4wMTMyNDYsIDAuMDEzMjg2LCAwLjAxMzI4MywgMC4wMTMyOTMsIDAuMDEzMzE3LCAwLjAxMzMwMiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEwODc2LCAwLjAxMDg4OSwgMC4wMTA4OTEsIDAuMDEwODkyLCAwLjAxMDg5MiwgMC4wMTA4OTIsIDAuMDEwODkxIiwgXAotICAgICAgICAgICIwLjAxMDgzNSwgMC4wMTA4NzQsIDAuMDEwODgsIDAuMDEwODgxLCAwLjAxMDg4MywgMC4wMTA4ODIsIDAuMDEwODgzIiwgXAotICAgICAgICAgICIwLjAxMDkzMiwgMC4wMTA5NTEsIDAuMDEwOTU1LCAwLjAxMDk1NywgMC4wMTA5NTcsIDAuMDEwOTU4LCAwLjAxMDk1OCIsIFwKLSAgICAgICAgICAiMC4wMTEwMjksIDAuMDExMDM1LCAwLjAxMTAzOSwgMC4wMTEwMzcsIDAuMDExMDM2LCAwLjAxMTAzNywgMC4wMTEwMzYiLCBcCi0gICAgICAgICAgIjAuMDExMjE5LCAwLjAxMTE2OSwgMC4wMTExNjUsIDAuMDExMTY0LCAwLjAxMTE2NCwgMC4wMTExNjEsIDAuMDExMTYyIiwgXAotICAgICAgICAgICIwLjAxMTQyNywgMC4wMTE0MzMsIDAuMDExNDE1LCAwLjAxMTQxLCAwLjAxMTQwNCwgMC4wMTE0MDMsIDAuMDExNCIsIFwKLSAgICAgICAgICAiMC4wMTE2ODEsIDAuMDExNjM1LCAwLjAxMTYyLCAwLjAxMTYxNSwgMC4wMTE2MDksIDAuMDExNjA1LCAwLjAxMTYwNCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEwOTE4LCAwLjAxMDk5MiwgMC4wMTEwMDEsIDAuMDExMDA0LCAwLjAxMTAwNiwgMC4wMTEwMDYsIDAuMDExMDA4IiwgXAotICAgICAgICAgICIwLjAxMDc0NSwgMC4wMTA5MjcsIDAuMDEwOTYzLCAwLjAxMDk3MywgMC4wMTA5ODMsIDAuMDEwOTg4LCAwLjAxMDk5MyIsIFwKLSAgICAgICAgICAiMC4wMTA3MzUsIDAuMDEwODgsIDAuMDEwOTI5LCAwLjAxMDk0NiwgMC4wMTA5NjMsIDAuMDEwOTcyLCAwLjAxMDk3NyIsIFwKLSAgICAgICAgICAiMC4wMTA4MzYsIDAuMDEwODc3LCAwLjAxMDkyLCAwLjAxMDkzNSwgMC4wMTA5NTUsIDAuMDEwOTYzLCAwLjAxMDk3MSIsIFwKLSAgICAgICAgICAiMC4wMTEwMjcsIDAuMDEwOTE2LCAwLjAxMDkzOSwgMC4wMTA5NDcsIDAuMDEwOTYxLCAwLjAxMDk3MSwgMC4wMTA5NzciLCBcCi0gICAgICAgICAgIjAuMDExNDgyLCAwLjAxMTA1MywgMC4wMTEwMTQsIDAuMDExMDA4LCAwLjAxMTAwMSwgMC4wMTEwMDEsIDAuMDExIiwgXAotICAgICAgICAgICIwLjAxMTk3OCwgMC4wMTEyMzMsIDAuMDExMTI2LCAwLjAxMTA5MiwgMC4wMTEwNjYsIDAuMDExMDUzLCAwLjAxMTA0MSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxNjYxLCAwLjAwMTY5OCwgMC4wMDE3MDIsIDAuMDAxNzAzLCAwLjAwMTcwMywgMC4wMDE3MDUsIDAuMDAxNzA1IiwgXAotICAgICAgICAgICIwLjAwMTU2OCwgMC4wMDE2NjYsIDAuMDAxNjgyLCAwLjAwMTY4OCwgMC4wMDE2OTIsIDAuMDAxNjk1LCAwLjAwMTY5NyIsIFwKLSAgICAgICAgICAiMC4wMDE2OTIsIDAuMDAxNywgMC4wMDE2OTEsIDAuMDAxNjkzLCAwLjAwMTY5NiwgMC4wMDE2OTgsIDAuMDAxNjk5IiwgXAotICAgICAgICAgICIwLjAwMjAzOCwgMC4wMDE4MDEsIDAuMDAxODE3LCAwLjAwMTc0NywgMC4wMDE3MzQsIDAuMDAxNzMyLCAwLjAwMTcyNyIsIFwKLSAgICAgICAgICAiMC4wMDIzMzksIDAuMDAxOTUzLCAwLjAwMTg1NSwgMC4wMDE4OSwgMC4wMDE3OTEsIDAuMDAxNzc2LCAwLjAwMTc2MyIsIFwKLSAgICAgICAgICAiMC4wMDMwOTIsIDAuMDAyMTY4LCAwLjAwMjE4MSwgMC4wMDIwODgsIDAuMDAyMDA2LCAwLjAwMTk1NywgMC4wMDE5MDkiLCBcCi0gICAgICAgICAgIjAuMDAzODM3LCAwLjAwMjQ4NSwgMC4wMDI0NjUsIDAuMDAyMzA4LCAwLjAwMjE2OCwgMC4wMDIwOTIsIDAuMDAyMDE4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDkwMjksIDAuMDA5MTM1LCAwLjAwOTE0OCwgMC4wMDkxNTEsIDAuMDA5MTU2LCAwLjAwOTE1NSwgMC4wMDkxNTUiLCBcCi0gICAgICAgICAgIjAuMDA4OSwgMC4wMDkwNjcsIDAuMDA5MTA2LCAwLjAwOTEyLCAwLjAwOTEyOCwgMC4wMDkxMzMsIDAuMDA5MTM4IiwgXAotICAgICAgICAgICIwLjAwOTA1OSwgMC4wMDkwNTcsIDAuMDA5MDksIDAuMDA5MTAzLCAwLjAwOTExNiwgMC4wMDkxMjYsIDAuMDA5MTMxIiwgXAotICAgICAgICAgICIwLjAwOTM5NywgMC4wMDkxMzMsIDAuMDA5MTI0LCAwLjAwOTEyOCwgMC4wMDkxMjksIDAuMDA5MTM2LCAwLjAwOTE0MSIsIFwKLSAgICAgICAgICAiMC4wMDk4MywgMC4wMDkyNTgsIDAuMDA5MTk3LCAwLjAwOTE3OSwgMC4wMDkxNywgMC4wMDkxNzEsIDAuMDA5MTYyIiwgXAotICAgICAgICAgICIwLjAxMDUzNiwgMC4wMDk1ODUsIDAuMDA5Mzk4LCAwLjAwOTMzNCwgMC4wMDkyODQsIDAuMDA5MjU4LCAwLjAwOTIzMSIsIFwKLSAgICAgICAgICAiMC4wMTExNDgsIDAuMDA5ODg3LCAwLjAwOTYxNywgMC4wMDk1MTMsIDAuMDA5NDA0LCAwLjAwOTM2NiwgMC4wMDkzMiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwMDksIDAuMDAwMjExLCAwLjAwMDIyNCwgMC4wMDAyMjgsIDAuMDAwMjMxLCAwLjAwMDIzMywgMC4wMDAyMzQiLCBcCi0gICAgICAgICAgIjAuMDAwMDE0LCAwLjAwMDI1NiwgMC4wMDAyOTQsIDAuMDAwMzA2LCAwLjAwMDMxNywgMC4wMDAzMjIsIDAuMDAwMzI3IiwgXAotICAgICAgICAgICIwLjAwMDExOCwgMC4wMDAyOSwgMC4wMDAzMTYsIDAuMDAwMzE5LCAwLjAwMDMzNiwgMC4wMDAzNDEsIDAuMDAwMzQ1IiwgXAotICAgICAgICAgICIwLjAwMDQ2OCwgMC4wMDAzOCwgMC4wMDA0MjUsIDAuMDAwNDEyLCAwLjAwMDQsIDAuMDAwMzkyLCAwLjAwMDM4MyIsIFwKLSAgICAgICAgICAiMC4wMDA4MTIsIDAuMDAwNTExLCAwLjAwMDQyNiwgMC4wMDA0MSwgMC4wMDA0MDQsIDAuMDAwMzk3LCAwLjAwMDM5MiIsIFwKLSAgICAgICAgICAiMC4wMDE1MjEsIDAuMDAwOTAzLCAwLjAwMDc2LCAwLjAwMDY4OSwgMC4wMDA2MTgsIDAuMDAwNTc5LCAwLjAwMDU0IiwgXAotICAgICAgICAgICIwLjAwMjIyNCwgMC4wMDEyNTMsIDAuMDAwOTMyLCAwLjAwMDgyMiwgMC4wMDA3MTQsIDAuMDAwNjY0LCAwLjAwMDYwNiIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogTk9SM1gyICoKLSAqIC0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoTk9SM1gyKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuNDU3MDMyOwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDIwMTQxOTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDIwMDU3MTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDIwMTQxOTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA5MDEsIDAuMDAwOTYyLCAwLjAwMDk3NCwgMC4wMDA5OSwgMC4wMDEwMDYsIDAuMDAxMDEzLCAwLjAwMTAxOCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTg5NywgMC4wMDE4OTksIDAuMDAxODk5LCAwLjAwMTg5OSwgMC4wMDE4OTksIDAuMDAxODk5LCAwLjAwMTg5OSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxODUwMjQ7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxODQzNTQ7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxODUwMjQ7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwODc5LCAwLjAwMDk4MiwgMC4wMDEwMDUsIDAuMDAxMDExLCAwLjAwMTAxMiwgMC4wMDEwMTMsIDAuMDAxMDExIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxMDc4LCAwLjAwMTA3OCwgMC4wMDEwNzksIDAuMDAxMDc5LCAwLjAwMTA3OSwgMC4wMDEwNzksIDAuMDAxMDc5Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihDKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE2Mzg0OTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE2Mzg0OTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE2MzgwNTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyNDgsIDAuMDAwMjQ4LCAwLjAwMDI0OCwgMC4wMDAyNDgsIDAuMDAwMjQ4LCAwLjAwMDI0OCwgMC4wMDAyNDgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA3NjIsIDAuMDAwNzYyLCAwLjAwMDc2MiwgMC4wMDA3NjIsIDAuMDAwNzYyLCAwLjAwMDc2MiwgMC4wMDA3NjIiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4yNTQ1NTE7Ci0gICAgZnVuY3Rpb24gOiAiKCEoKEErQikrQykpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTkyNDMsIDAuMjY0MjY5LCAwLjQyODI1NCwgMC42MzIyODYsIDAuODM3OSwgMS4wNDMyOSwgMS4yNDg5MiIsIFwKLSAgICAgICAgICAiMC4wNjQzMjQsIDAuMjY5NTMsIDAuNDMzMzQzLCAwLjYzODEyOCwgMC44NDQwMiwgMS4wNDgyNSwgMS4yNTIzNyIsIFwKLSAgICAgICAgICAiMC4wNjk1MjQsIDAuMjc0NzA4LCAwLjQzODY5LCAwLjY0MzI4OCwgMC44NDgyMjEsIDEuMDUyNzgsIDEuMjU3NjQiLCBcCi0gICAgICAgICAgIjAuMDc0NjI2LCAwLjI3OTkzMywgMC40NDM2OTIsIDAuNjQ4NzI2LCAwLjg1MzYxMiwgMS4wNTgyMSwgMS4yNjMxNSIsIFwKLSAgICAgICAgICAiMC4wNzkxMjMsIDAuMjg0ODI2LCAwLjQ0ODc1NiwgMC42NTM1MzIsIDAuODU5MTk4LCAxLjA2MzE2LCAxLjI2OTQyIiwgXAotICAgICAgICAgICIwLjA4NTM0NywgMC4yOTI3MiwgMC40NTY4NzUsIDAuNjYxNzA3LCAwLjg2NjMxNSwgMS4wNzE2NCwgMS4yNzU4IiwgXAotICAgICAgICAgICIwLjA5MDQ0MiwgMC4zMDAwODEsIDAuNDY0NDEzLCAwLjY2OTQ5NSwgMC44NzQwMzMsIDEuMDc4NTEsIDEuMjgzMSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDk1NjQsIDAuNTQyNzMxLCAwLjg4OTIzNSwgMS4zMjMwOCwgMS43NTU4MywgMi4xODkzLCAyLjYyMzYiLCBcCi0gICAgICAgICAgIjAuMTA5Njk2LCAwLjU0MzYyOCwgMC44ODk4ODgsIDEuMzI0MywgMS43NTY4MSwgMi4xODkwNiwgMi42MjMwNCIsIFwKLSAgICAgICAgICAiMC4xMTE0ODUsIDAuNTQzNDE0LCAwLjg4OTU4NCwgMS4zMjI3OCwgMS43NTYxOCwgMi4xODk0LCAyLjYyNDEzIiwgXAotICAgICAgICAgICIwLjExNDQ3MiwgMC41NDI3OSwgMC44ODk2OTMsIDEuMzIyOTksIDEuNzU2MywgMi4xOTIxMiwgMi42MjI5NiIsIFwKLSAgICAgICAgICAiMC4xMTg1MjIsIDAuNTQzNDMxLCAwLjg5MDcxMiwgMS4zMjI4NCwgMS43NTU4OCwgMi4xOTE5LCAyLjYyMjg2IiwgXAotICAgICAgICAgICIwLjEyNjE4NywgMC41NDU2NDksIDAuODg5ODQsIDEuMzIyODIsIDEuNzU4MTQsIDIuMTg4OTUsIDIuNjIyNTciLCBcCi0gICAgICAgICAgIjAuMTMzNTUzLCAwLjU0ODUyNywgMC44OTEwMzcsIDEuMzIyNTcsIDEuNzU1NjgsIDIuMTkxOTMsIDIuNjI1MTQiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDI0NDA5LCAwLjEwMDM3NSwgMC4xNjA3NTksIDAuMjM2MjQsIDAuMzExNjU4LCAwLjM4NzI0NywgMC40NjI2NzkiLCBcCi0gICAgICAgICAgIjAuMDMyODI3LCAwLjEwODc1LCAwLjE2OTE2NywgMC4yNDQ1ODcsIDAuMzIwMDM4LCAwLjM5NTUxMSwgMC40NzA4OTkiLCBcCi0gICAgICAgICAgIjAuMDQzMTMsIDAuMTE5MTU3LCAwLjE3OTU1NCwgMC4yNTQ5OTMsIDAuMzMwNDQyLCAwLjQwNTg5NCwgMC40ODEzMyIsIFwKLSAgICAgICAgICAiMC4wNTE1MjEsIDAuMTMwMDM0LCAwLjE5MDM2OSwgMC4yNjQ2NzMsIDAuMzQxMjk4LCAwLjQxNjc2NiwgMC40OTIzMzciLCBcCi0gICAgICAgICAgIjAuMDU4MDcyLCAwLjE0MDMsIDAuMjAwNDM5LCAwLjI3NTg2MiwgMC4zNDk3OTksIDAuNDI2NzM1LCAwLjUwMjA5NCIsIFwKLSAgICAgICAgICAiMC4wNjY3MywgMC4xNTc5MDYsIDAuMjE4MTY0LCAwLjI5MzQ4LCAwLjM2ODgwOSwgMC40NDQyNDUsIDAuNTE5NjQ1IiwgXAotICAgICAgICAgICIwLjA3MzA5NCwgMC4xNzI2NjEsIDAuMjMyNjU3LCAwLjMwNzY4NiwgMC4zODMwNzEsIDAuNDU4NDM1LCAwLjUzMzg4OCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDE5NTUsIDAuMTk2OTExLCAwLjMyMTAxNywgMC40NzYwMzQsIDAuNjMxMTI4LCAwLjc4NjY4NiwgMC45NDE2NTQiLCBcCi0gICAgICAgICAgIjAuMDQ0NzQ0LCAwLjE5NjkxNSwgMC4zMjA5MTksIDAuNDc2MDY5LCAwLjYzMTI5NywgMC43ODYyMzgsIDAuOTQxMjQ0IiwgXAotICAgICAgICAgICIwLjA1MjkxLCAwLjE5Nzk5NywgMC4zMjA5NDUsIDAuNDc2MTIsIDAuNjMxMjQ0LCAwLjc4NjI0MywgMC45NDE0NDIiLCBcCi0gICAgICAgICAgIjAuMDYxOTc1LCAwLjIwMTg4MSwgMC4zMjIxMSwgMC40NzYxMTQsIDAuNjMxMTMzLCAwLjc4NjI4LCAwLjk0MTY0MyIsIFwKLSAgICAgICAgICAiMC4wNzEyNjEsIDAuMjA4MDQzLCAwLjMyNTU2LCAwLjQ3NzE4MSwgMC42MzEyNzUsIDAuNzg2MjMyLCAwLjk0MTQ3MiIsIFwKLSAgICAgICAgICAiMC4wODQ3NzUsIDAuMjE4NjksIDAuMzMzMTUsIDAuNDgxNTA2LCAwLjYzMzAxMywgMC43ODY1OCwgMC45NDEzNjYiLCBcCi0gICAgICAgICAgIjAuMDk1NDksIDAuMjMwNzY2LCAwLjM0MjI0NywgMC40ODc3MjQsIDAuNjM3MjE3LCAwLjc4ODc0NCwgMC45NDIxODIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU3MjksIDAuMjYyMzMyLCAwLjQyNjMyMSwgMC42MzE2MSwgMC44MzU5OTMsIDEuMDQwOTEsIDEuMjQ2NTEiLCBcCi0gICAgICAgICAgIjAuMDYzMjc0LCAwLjI2ODQ5LCAwLjQzMjcxMywgMC42Mzc4NTcsIDAuODQyOTQzLCAxLjA0NzE3LCAxLjI1MjY2IiwgXAotICAgICAgICAgICIwLjA3MDY3MiwgMC4yNzYyNDIsIDAuNDM5OTk5LCAwLjY0NDcxNiwgMC44NTAyMzcsIDEuMDU1MTQsIDEuMjYwNjMiLCBcCi0gICAgICAgICAgIjAuMDc4MzExLCAwLjI4Mzc0NywgMC40NDc1MiwgMC42NTI1NDYsIDAuODU3MTM3LCAxLjA2MzA2LCAxLjI2NzUiLCBcCi0gICAgICAgICAgIjAuMDg1MjE0LCAwLjI5MTExMSwgMC40NTUzNzgsIDAuNjYwMDc0LCAwLjg2NTIwNiwgMS4wNjk4NCwgMS4yNzYxMiIsIFwKLSAgICAgICAgICAiMC4wOTUwNzIsIDAuMzAzMjksIDAuNDY3MzQ0LCAwLjY3MjM4OCwgMC44NzczODQsIDEuMDgyMzgsIDEuMjg4MTciLCBcCi0gICAgICAgICAgIjAuMTAyNDY5LCAwLjMxNDIyLCAwLjQ3ODI5MSwgMC42ODI5NDUsIDAuODg3ODU2LCAxLjA5MzIzLCAxLjI5ODU3Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwOTUzOCwgMC41NDI3NTUsIDAuODg5MjgsIDEuMzIzMTcsIDEuNzU1ODMsIDIuMTg5NzEsIDIuNjIzNjUiLCBcCi0gICAgICAgICAgIjAuMTA5ODI4LCAwLjU0MzYzNiwgMC44ODk4MDIsIDEuMzIyOTUsIDEuNzU2NzksIDIuMTg5MDgsIDIuNjIzMzUiLCBcCi0gICAgICAgICAgIjAuMTEyODIxLCAwLjU0MjkzOCwgMC44ODkzNDcsIDEuMzI0NTMsIDEuNzU1OTIsIDIuMTg5MDYsIDIuNjIzNzciLCBcCi0gICAgICAgICAgIjAuMTE3NTkyLCAwLjU0Mjg0NCwgMC44OTAwMzIsIDEuMzI0NjksIDEuNzU3OTUsIDIuMTkwMywgMi42MjIyNCIsIFwKLSAgICAgICAgICAiMC4xMjMzMDIsIDAuNTQzOTQxLCAwLjg4OTQ3NywgMS4zMjM3NiwgMS43NTY0NSwgMi4xOTIzOCwgMi42MjM3OCIsIFwKLSAgICAgICAgICAiMC4xMzM3NDEsIDAuNTQ2NjQ3LCAwLjg5MDYyOCwgMS4zMjI0NCwgMS43NTU4MiwgMi4xODg5NSwgMi42MjM3MiIsIFwKLSAgICAgICAgICAiMC4xNDM3MTksIDAuNTUwNzY0LCAwLjg5MjA4MiwgMS4zMjM0MSwgMS43NTgwOSwgMi4xODg5MSwgMi42MjI0MiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjMyMzQsIDAuMDk4ODI0LCAwLjE1OTE4MywgMC4yMzQ2MTQsIDAuMzEwMTk4LCAwLjM4NTU3NiwgMC40NjA5OCIsIFwKLSAgICAgICAgICAiMC4wMzE2MjIsIDAuMTA3MTgsIDAuMTY3NTg3LCAwLjI0MzA3NSwgMC4zMTg0NzQsIDAuMzkzNjE5LCAwLjQ2OTI3NyIsIFwKLSAgICAgICAgICAiMC4wNDE3MzEsIDAuMTE3ODM3LCAwLjE3ODExMiwgMC4yNTM2MjQsIDAuMzI4OTYzLCAwLjQwNDQxLCAwLjQ4MDA0IiwgXAotICAgICAgICAgICIwLjA0OTUxOSwgMC4xMjgzMjIsIDAuMTg4MjI3LCAwLjI2MjUzNCwgMC4zMzkwOTcsIDAuNDE0NTA4LCAwLjQ4OTkzMSIsIFwKLSAgICAgICAgICAiMC4wNTU4NDYsIDAuMTM5MDk1LCAwLjE5OTIzNywgMC4yNzQxNjksIDAuMzQ4MDQxLCAwLjQyNTAzNSwgMC41MDAzNDgiLCBcCi0gICAgICAgICAgIjAuMDYzODA2LCAwLjE1NjU2MiwgMC4yMTY2MTEsIDAuMjkxOTYzLCAwLjM2NzI1NiwgMC40NDI2NTIsIDAuNTE4MDY3IiwgXAotICAgICAgICAgICIwLjA2OTk5NiwgMC4xNzA3NTksIDAuMjMwNjk3LCAwLjMwNTc3MSwgMC4zODExMDIsIDAuNDU2NDg4LCAwLjUzMTk4OSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzk4MDQsIDAuMTk0OTM2LCAwLjMxOTAxOCwgMC40NzQxOCwgMC42MjkzMjYsIDAuNzg0MjUxLCAwLjkzOTU1MyIsIFwKLSAgICAgICAgICAiMC4wNDI3NjIsIDAuMTk0OTE4LCAwLjMxOTExNSwgMC40NzQxOTEsIDAuNjI5MjE3LCAwLjc4NDE1NiwgMC45MzkzNzMiLCBcCi0gICAgICAgICAgIjAuMDUwOTgxLCAwLjE5NTk2NiwgMC4zMTg5NDgsIDAuNDc0MzM5LCAwLjYyOTMzMiwgMC43ODQxNzcsIDAuOTM5Njg0IiwgXAotICAgICAgICAgICIwLjA2MDQ5MSwgMC4yMDAxMzQsIDAuMzIwMjk1LCAwLjQ3NDM0NywgMC42MjkyODMsIDAuNzg0MTYzLCAwLjkzOTQ1NiIsIFwKLSAgICAgICAgICAiMC4wNjk0MiwgMC4yMDU5MDQsIDAuMzIzNTYzLCAwLjQ3NTI2NiwgMC42MjkyOSwgMC43ODQyNDIsIDAuOTM5Mjc5IiwgXAotICAgICAgICAgICIwLjA4MzEwNCwgMC4yMTcxOSwgMC4zMzEyMjQsIDAuNDc5NjI4LCAwLjYzMDk0OCwgMC43ODQ1NjMsIDAuOTM5NDQyIiwgXAotICAgICAgICAgICIwLjA5MzAxNCwgMC4yMjk0ODYsIDAuMzQwNjM2LCAwLjQ4NjA3MiwgMC42MzUxODMsIDAuNzg2NjQ4LCAwLjk0MDA2MiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTI1OTEsIDAuMjU3NTc5LCAwLjQyMTYwNywgMC42MjYxMDcsIDAuODMxOTMsIDEuMDM2MjQsIDEuMjQwNSIsIFwKLSAgICAgICAgICAiMC4wNTk0ODUsIDAuMjY0Njc0LCAwLjQyOTA5OCwgMC42MzM4MzUsIDAuODM4MTc5LCAxLjA0MzM1LCAxLjI0ODUzIiwgXAotICAgICAgICAgICIwLjA2ODc5OCwgMC4yNzM3MzUsIDAuNDM3NTY3LCAwLjY0MjM3NiwgMC44NDY0MjgsIDEuMDUzNSwgMS4yNTczOCIsIFwKLSAgICAgICAgICAiMC4wNzg0NjMsIDAuMjgyODc0LCAwLjQ0NjY0OCwgMC42NTIyMjksIDAuODU3MTk0LCAxLjA2MTMsIDEuMjY3NTMiLCBcCi0gICAgICAgICAgIjAuMDg3NjAyLCAwLjI5MjE1NCwgMC40NTYyMjYsIDAuNjYwNjc5LCAwLjg2NTQyNiwgMS4wNywgMS4yNzQ3IiwgXAotICAgICAgICAgICIwLjA5OTQ3LCAwLjMwNjQsIDAuNDcwMjA0LCAwLjY3NDU5OSwgMC44NzkzNDIsIDEuMDg0MTYsIDEuMjg5MzciLCBcCi0gICAgICAgICAgIjAuMTA4Mzk1LCAwLjMxOTQ2NywgMC40ODI5LCAwLjY4NzQxMiwgMC44OTE5MTEsIDEuMDk2OTMsIDEuMzAxOSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDk1MjgsIDAuNTQyODc5LCAwLjg4OTYyOCwgMS4zMjI2OSwgMS43NTY3MSwgMi4xODkwNywgMi42MjU4IiwgXAotICAgICAgICAgICIwLjEwOTgyMywgMC41NDM1ODQsIDAuODg5NzI5LCAxLjMyMzE2LCAxLjc1NjE1LCAyLjE4OTEyLCAyLjYyMzEiLCBcCi0gICAgICAgICAgIjAuMTE0Mzc5LCAwLjU0MzUwMiwgMC44OTAwNzksIDEuMzI0MjksIDEuNzU1MzcsIDIuMTkwMSwgMi42MjIzIiwgXAotICAgICAgICAgICIwLjEyMTIwNSwgMC41NDM0NTgsIDAuODg5NDE0LCAxLjMyMjk1LCAxLjc1NjY2LCAyLjE4OTYxLCAyLjYyMzM4IiwgXAotICAgICAgICAgICIwLjEyODg5MiwgMC41NDMzNSwgMC44ODk1MDUsIDEuMzIyNDYsIDEuNzU4NjcsIDIuMTkxODcsIDIuNjI1MDciLCBcCi0gICAgICAgICAgIjAuMTQyMDI4LCAwLjU0Nzc4MywgMC44ODk0MjcsIDEuMzIzMjIsIDEuNzU2LCAyLjE5MjEyLCAyLjYyMjI3IiwgXAotICAgICAgICAgICIwLjE1NDE3OSwgMC41NTMwNCwgMC44OTEyNTcsIDEuMzI0MjYsIDEuNzU3MjIsIDIuMTkyNjcsIDIuNjIyMjgiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDIxNjgsIDAuMDk3NTI1LCAwLjE1ODE2MywgMC4yMzM5NDcsIDAuMzA5NzIyLCAwLjM4NTgxMSwgMC40NjEyMzMiLCBcCi0gICAgICAgICAgIjAuMDMwMTEzLCAwLjEwNTk1MywgMC4xNjY2NCwgMC4yNDI0MTcsIDAuMzE4MjcxLCAwLjM5NDAwMiwgMC40Njk3NTciLCBcCi0gICAgICAgICAgIjAuMDQwMDIyLCAwLjExNjU3NiwgMC4xNzcyNzIsIDAuMjUyOTc4LCAwLjMyODY1OCwgMC40MDQ2NjQsIDAuNDgwMzk2IiwgXAotICAgICAgICAgICIwLjA0NzIzNSwgMC4xMjcwNDMsIDAuMTg3MzIzLCAwLjI2MTkyNiwgMC4zMzg4OTgsIDAuNDE0NjYxLCAwLjQ5MDQ1IiwgXAotICAgICAgICAgICIwLjA1Mjk1MSwgMC4xMzc4MDEsIDAuMTk3OTAzLCAwLjI3MzYxNSwgMC4zNDc4ODMsIDAuNDI1MTk4LCAwLjUwMDkxOCIsIFwKLSAgICAgICAgICAiMC4wNjA1NzYsIDAuMTU0NjI1LCAwLjIxNTAxNiwgMC4yOTA2MzMsIDAuMzY2OTczLCAwLjQ0MjY3NSwgMC41MTg0NDciLCBcCi0gICAgICAgICAgIjAuMDY2MDk1LCAwLjE2OTYyOSwgMC4yMjk5OTUsIDAuMzA1NDY0LCAwLjM4MTIwMywgMC40NTY4MzMsIDAuNTMyODEzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzODE5NSwgMC4xOTU1OTUsIDAuMzIxNDAxLCAwLjQ3OTU1NCwgMC42MzYxODcsIDAuNzkzNjk1LCAwLjk1MjM2NyIsIFwKLSAgICAgICAgICAiMC4wNDEyNjEsIDAuMTk1NzU5LCAwLjMyMTg1MiwgMC40NzkzOTYsIDAuNjM2MDM3LCAwLjc5MzExMSwgMC45NTA0NjgiLCBcCi0gICAgICAgICAgIjAuMDQ5NjU4LCAwLjE5Njk1MywgMC4zMjEyODUsIDAuNDc4NjA5LCAwLjYzNjM0LCAwLjc5MzQ5NiwgMC45NTA0OTIiLCBcCi0gICAgICAgICAgIjAuMDU5MjAyLCAwLjIwMDc4LCAwLjMyMzI2LCAwLjQ3OTQ4OSwgMC42MzYxNTcsIDAuNzk0NjQ2LCAwLjk1MDkwNSIsIFwKLSAgICAgICAgICAiMC4wNjg0NTUsIDAuMjA2NTg0LCAwLjMyNjYyLCAwLjQ3OTkzMywgMC42MzY1MDUsIDAuNzkzNTAzLCAwLjk1MDUwNSIsIFwKLSAgICAgICAgICAiMC4wODEzMTEsIDAuMjE4MTYyLCAwLjMzNDUwNiwgMC40ODUyNjcsIDAuNjM3ODM1LCAwLjc5NDg5LCAwLjk1MDM4OSIsIFwKLSAgICAgICAgICAiMC4wOTE0MDIsIDAuMjI5Njg3LCAwLjM0MzI3OSwgMC40OTA3MzgsIDAuNjQxNjI0LCAwLjc5NzI2OSwgMC45NTEzMzkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDYxOTIsIDAuMDA2MjE2LCAwLjAwNjIxOCwgMC4wMDYyMjEsIDAuMDA2MjIsIDAuMDA2MjIsIDAuMDA2MjE5IiwgXAotICAgICAgICAgICIwLjAwNjExOCwgMC4wMDYxOTIsIDAuMDA2MjAzLCAwLjAwNjIxLCAwLjAwNjIxNCwgMC4wMDYyMTUsIDAuMDA2MjE1IiwgXAotICAgICAgICAgICIwLjAwNjA4OCwgMC4wMDYxNzMsIDAuMDA2MTg4LCAwLjAwNjE5OCwgMC4wMDYyMDMsIDAuMDA2MjAxLCAwLjAwNjIwOSIsIFwKLSAgICAgICAgICAiMC4wMDYwOTksIDAuMDA2MTYyLCAwLjAwNjE4MSwgMC4wMDYxOTMsIDAuMDA2MTk2LCAwLjAwNjIwOSwgMC4wMDYyMDkiLCBcCi0gICAgICAgICAgIjAuMDA2MTUxLCAwLjAwNjE2OCwgMC4wMDYxODMsIDAuMDA2MTkzLCAwLjAwNjE5OSwgMC4wMDYyMDMsIDAuMDA2MjA2IiwgXAotICAgICAgICAgICIwLjAwNjI5NCwgMC4wMDYyMDcsIDAuMDA2MjA2LCAwLjAwNjIwNiwgMC4wMDYyMSwgMC4wMDYyMTMsIDAuMDA2MjEzIiwgXAotICAgICAgICAgICIwLjAwNjQ3NSwgMC4wMDYyNzIsIDAuMDA2MjUsIDAuMDA2MjM5LCAwLjAwNjIzNCwgMC4wMDYyMzMsIDAuMDA2MjI5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxMjQ0LCAwLjAwMTI0NywgMC4wMDEyNDcsIDAuMDAxMjQ3LCAwLjAwMTI0NywgMC4wMDEyNDcsIDAuMDAxMjQ3IiwgXAotICAgICAgICAgICIwLjAwMTE5NCwgMC4wMDEyMDEsIDAuMDAxMiwgMC4wMDEyLCAwLjAwMTIsIDAuMDAxMiwgMC4wMDEyIiwgXAotICAgICAgICAgICIwLjAwMTI3NywgMC4wMDEyMTUsIDAuMDAxMjA2LCAwLjAwMTIwMSwgMC4wMDExOTksIDAuMDAxMTk3LCAwLjAwMTE5NiIsIFwKLSAgICAgICAgICAiMC4wMDEzODIsIDAuMDAxMjQ2LCAwLjAwMTIyNywgMC4wMDEyMDksIDAuMDAxMjEyLCAwLjAwMTIwOCwgMC4wMDEyMDUiLCBcCi0gICAgICAgICAgIjAuMDAxNTE3LCAwLjAwMTM0NiwgMC4wMDEyOTEsIDAuMDAxMjYyLCAwLjAwMTI0LCAwLjAwMTIzNSwgMC4wMDEyMjgiLCBcCi0gICAgICAgICAgIjAuMDAxODc2LCAwLjAwMTUxMywgMC4wMDE0MTMsIDAuMDAxMzUyLCAwLjAwMTMxNywgMC4wMDEyOTQsIDAuMDAxMjc4IiwgXAotICAgICAgICAgICIwLjAwMjIxNSwgMC4wMDE2MzEsIDAuMDAxNDg2LCAwLjAwMTM5OSwgMC4wMDEzNTQsIDAuMDAxMzIzLCAwLjAwMTMwNCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNTMyNSwgMC4wMDUzNDksIDAuMDA1MzUsIDAuMDA1MzUzLCAwLjAwNTM1MiwgMC4wMDUzNTQsIDAuMDA1MzU0IiwgXAotICAgICAgICAgICIwLjAwNTI1MywgMC4wMDUzMjYsIDAuMDA1MzM3LCAwLjAwNTM0MywgMC4wMDUzNDYsIDAuMDA1MzQ5LCAwLjAwNTM0NyIsIFwKLSAgICAgICAgICAiMC4wMDUyMzUsIDAuMDA1MzA3LCAwLjAwNTMyMywgMC4wMDUzMzMsIDAuMDA1MzM4LCAwLjAwNTM0LCAwLjAwNTM0MiIsIFwKLSAgICAgICAgICAiMC4wMDUyNjcsIDAuMDA1MzA0LCAwLjAwNTMyLCAwLjAwNTMyNiwgMC4wMDUzMzIsIDAuMDA1MzM4LCAwLjAwNTMzOSIsIFwKLSAgICAgICAgICAiMC4wMDUzMzksIDAuMDA1MzE4LCAwLjAwNTMyNiwgMC4wMDUzMzYsIDAuMDA1MzM4LCAwLjAwNTM0MSwgMC4wMDUzNDMiLCBcCi0gICAgICAgICAgIjAuMDA1NTE5LCAwLjAwNTM2OCwgMC4wMDUzNTcsIDAuMDA1MzUzLCAwLjAwNTM1MiwgMC4wMDUzNTMsIDAuMDA1MzUzIiwgXAotICAgICAgICAgICIwLjAwNTcyMSwgMC4wMDU0MzgsIDAuMDA1NDA2LCAwLjAwNTM4NiwgMC4wMDUzNzcsIDAuMDA1MzcyLCAwLjAwNTM2OSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDcwMywgMC4wMDA3MTUsIDAuMDAwNzE2LCAwLjAwMDcxNiwgMC4wMDA3MTcsIDAuMDAwNzE3LCAwLjAwMDcxNyIsIFwKLSAgICAgICAgICAiMC4wMDA2NjksIDAuMDAwNzAzLCAwLjAwMDcwNywgMC4wMDA3MSwgMC4wMDA3MTEsIDAuMDAwNzEzLCAwLjAwMDcxMyIsIFwKLSAgICAgICAgICAiMC4wMDA3MjIsIDAuMDAwNzI3LCAwLjAwMDcxNCwgMC4wMDA3MTUsIDAuMDAwNzE1LCAwLjAwMDcxNSwgMC4wMDA3MTUiLCBcCi0gICAgICAgICAgIjAuMDAwODA4LCAwLjAwMDc1LCAwLjAwMDc2MSwgMC4wMDA3NDUsIDAuMDAwNzQxLCAwLjAwMDczNiwgMC4wMDA3MzMiLCBcCi0gICAgICAgICAgIjAuMDAwOTUsIDAuMDAwODA3LCAwLjAwMDc3NiwgMC4wMDA3ODMsIDAuMDAwNzY1LCAwLjAwMDc1OSwgMC4wMDA3NTIiLCBcCi0gICAgICAgICAgIjAuMDAxMzE2LCAwLjAwMTAwNCwgMC4wMDA5MTEsIDAuMDAwODU5LCAwLjAwMDgzLCAwLjAwMDgwOSwgMC4wMDA3OTUiLCBcCi0gICAgICAgICAgIjAuMDAxNTY0LCAwLjAwMTE2OCwgMC4wMDEwMTksIDAuMDAwOTM1LCAwLjAwMDg4OSwgMC4wMDA4NiwgMC4wMDA4NCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDQwMSwgMC4wMDQ0MzMsIDAuMDA0NDM4LCAwLjAwNDQzOSwgMC4wMDQ0NDIsIDAuMDA0NDQxLCAwLjAwNDQzOSIsIFwKLSAgICAgICAgICAiMC4wMDQzMzYsIDAuMDA0NDA5LCAwLjAwNDQyMSwgMC4wMDQ0MjUsIDAuMDA0NDMxLCAwLjAwNDQzNCwgMC4wMDQ0MzQiLCBcCi0gICAgICAgICAgIjAuMDA0Mzc3LCAwLjAwNDQwMiwgMC4wMDQ0MTQsIDAuMDA0NDI0LCAwLjAwNDQyNywgMC4wMDQ0MjksIDAuMDA0NDI5IiwgXAotICAgICAgICAgICIwLjAwNDQ4LCAwLjAwNDQyMSwgMC4wMDQ0MjQsIDAuMDA0NDI4LCAwLjAwNDQzLCAwLjAwNDQzMiwgMC4wMDQ0MzMiLCBcCi0gICAgICAgICAgIjAuMDA0NjUzLCAwLjAwNDQ3LCAwLjAwNDQ1MywgMC4wMDQ0NDcsIDAuMDA0NDQzLCAwLjAwNDQ0NiwgMC4wMDQ0NDUiLCBcCi0gICAgICAgICAgIjAuMDA0OTkyLCAwLjAwNDU5MSwgMC4wMDQ1MjksIDAuMDA0NTAyLCAwLjAwNDQ4NSwgMC4wMDQ0NzcsIDAuMDA0NDY4IiwgXAotICAgICAgICAgICIwLjAwNTMxLCAwLjAwNDcyMSwgMC4wMDQ2MiwgMC4wMDQ1NjQsIDAuMDA0NTMxLCAwLjAwNDUxNywgMC4wMDQ1MDEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDAwMzQsIDAuMDAwMDcsIDAuMDAwMDczLCAwLjAwMDA3NSwgMC4wMDAwNzYsIDAuMDAwMDc3LCAwLjAwMDA3NyIsIFwKLSAgICAgICAgICAiMC4wMDAwMTYsIDAuMDAwMSwgMC4wMDAxMTMsIDAuMDAwMTE3LCAwLjAwMDEyLCAwLjAwMDEyMSwgMC4wMDAxMjIiLCBcCi0gICAgICAgICAgIjAuMDAwMDc0LCAwLjAwMDEyMiwgMC4wMDAxMjMsIDAuMDAwMTI4LCAwLjAwMDEyOSwgMC4wMDAxMzMsIDAuMDAwMTM0IiwgXAotICAgICAgICAgICIwLjAwMDEzMywgMC4wMDAxNDIsIDAuMDAwMTU5LCAwLjAwMDE1NCwgMC4wMDAxNTEsIDAuMDAwMTQ5LCAwLjAwMDE0NyIsIFwKLSAgICAgICAgICAiMC4wMDAyODcsIDAuMDAwMTk0LCAwLjAwMDE5OSwgMC4wMDAxODIsIDAuMDAwMTczLCAwLjAwMDE2OCwgMC4wMDAxNjQiLCBcCi0gICAgICAgICAgIjAuMDAwNTc1LCAwLjAwMDM0MywgMC4wMDAyNzcsIDAuMDAwMjQyLCAwLjAwMDIzNiwgMC4wMDAyMTgsIDAuMDAwMjA2IiwgXAotICAgICAgICAgICIwLjAwMDg4OCwgMC4wMDA0NzUsIDAuMDAwMzY5LCAwLjAwMDMwNSwgMC4wMDAyNzMsIDAuMDAwMjUsIDAuMDAwMjM1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBOT1I0WDEgKgotICogLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChOT1I0WDEpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4yOTcxODU7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDkyOTE3ODsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA5MjQ0Mjc7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwOTI5MTc4OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDQ0MywgMC4wMDA0NzIsIDAuMDAwNDgzLCAwLjAwMDQ5MSwgMC4wMDA0OTYsIDAuMDAwNDk4LCAwLjAwMDQ5OCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTM1MiwgMC4wMDEzNTIsIDAuMDAxMzUxLCAwLjAwMTM1MywgMC4wMDEzNTMsIDAuMDAxMzUyLCAwLjAwMTM1MiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwOTM5MTI5OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDkzNDk1MTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA5MzkxMjk7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNDI3LCAwLjAwMDQ3MSwgMC4wMDA0ODUsIDAuMDAwNDg4LCAwLjAwMDQ5MiwgMC4wMDA1MDIsIDAuMDAwNDk0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwOTUyLCAwLjAwMDk1MywgMC4wMDA5NTMsIDAuMDAwOTUzLCAwLjAwMDk1MywgMC4wMDA5NTMsIDAuMDAwOTUzIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihDKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA5MjEzMDk7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwOTE3OTE3OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDkyMTMwOTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA0MjksIDAuMDAwNDg3LCAwLjAwMDUsIDAuMDAwNTA1LCAwLjAwMDUwMywgMC4wMDA1MDcsIDAuMDAwNTA2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNTM5LCAwLjAwMDUzOSwgMC4wMDA1MzksIDAuMDAwNTM5LCAwLjAwMDUzOSwgMC4wMDA1MzksIDAuMDAwNTM5Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihEKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA5MzI5MzI7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwOTMyOTMyOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDkzMjYyMzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxMjYsIDAuMDAwMTI2LCAwLjAwMDEyNiwgMC4wMDAxMjYsIDAuMDAwMTI2LCAwLjAwMDEyNiwgMC4wMDAxMjYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAzOTgsIDAuMDAwMzk4LCAwLjAwMDM5OCwgMC4wMDAzOTgsIDAuMDAwMzk4LCAwLjAwMDM5OCwgMC4wMDAzOTgiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4wOTc5NDM5OwotICAgIGZ1bmN0aW9uIDogIighKCgoQStCKStDKStEKSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEzNjI2MywgMC4yMDA2MDQsIDAuNTY2MDY4LCAwLjg4ODQ3MSwgMS4zMTc2NiwgMi4xNzk2OSwgMi43MTYwMyIsIFwKLSAgICAgICAgICAiMC4xNDEyNDIsIDAuMjA1ODA5LCAwLjU3MTUxOCwgMC44OTM4NTcsIDEuMzI0NTksIDIuMTgzMTEsIDIuNzIwNDIiLCBcCi0gICAgICAgICAgIjAuMTQ1NywgMC4yMTAyMDUsIDAuNTc2MTI4LCAwLjg5OTA5NiwgMS4zMjgxMSwgMi4xODY2NCwgMi43MjQzNCIsIFwKLSAgICAgICAgICAiMC4xNDk0MTgsIDAuMjE0MTczLCAwLjU4MDA3NywgMC45MDIwODIsIDEuMzMxOCwgMi4xOTE5LCAyLjcyNzg4IiwgXAotICAgICAgICAgICIwLjE1MzA4MSwgMC4yMTc3MjEsIDAuNTgzNTQ1LCAwLjkwNTc5OSwgMS4zMzY0LCAyLjE5NjI4LCAyLjczMTkiLCBcCi0gICAgICAgICAgIjAuMTU4OTQ4LCAwLjIyMzMzOCwgMC41ODg3NjksIDAuOTExODM1LCAxLjM0MjUyLCAyLjIwMTg1LCAyLjczNzEiLCBcCi0gICAgICAgICAgIjAuMTY0MTEsIDAuMjI4NDg4LCAwLjU5Mzk1OCwgMC45MTYyMTksIDEuMzQ3MTIsIDIuMjA1MTIsIDIuNzQxNiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yNjI1NjUsIDAuMzk3OTE4LCAxLjE2MzM5LCAxLjg0MjIsIDIuNzQyNzMsIDQuNTQzNSwgNS42NjczIiwgXAotICAgICAgICAgICIwLjI2Mjg2OSwgMC4zOTc2NDQsIDEuMTYzMiwgMS44NDIzNSwgMi43NDA3LCA0LjU0ODYzLCA1LjY2ODUiLCBcCi0gICAgICAgICAgIjAuMjYyNjQ2LCAwLjM5Nzk4MywgMS4xNjM3NSwgMS44Mzk2OCwgMi43Mzk4OSwgNC41NDMyMywgNS42NjcyOCIsIFwKLSAgICAgICAgICAiMC4yNjM3NywgMC4zOTc5NTQsIDEuMTYzMzcsIDEuODM4OTEsIDIuNzQzMzIsIDQuNTQ5NzEsIDUuNjY4OCIsIFwKLSAgICAgICAgICAiMC4yNjUyNDIsIDAuMzk5MzE5LCAxLjE2MzI3LCAxLjg0MTcxLCAyLjczOTQ4LCA0LjU0MTQzLCA1LjY2NzM2IiwgXAotICAgICAgICAgICIwLjI2ODU2OSwgMC40MDE1MDcsIDEuMTY0NCwgMS44Mzg5MSwgMi43NDA5MywgNC41NDI0OSwgNS42Njk0OSIsIFwKLSAgICAgICAgICAiMC4yNzIyMjgsIDAuNDAzOTgyLCAxLjE2NTA2LCAxLjgzODY3LCAyLjczOTYyLCA0LjU0MzY0LCA1LjY2OTc5Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0MTY5NSwgMC4wNjAwOTYsIDAuMTYzMTQyLCAwLjI1Mzc2OCwgMC4zNzQ1MzQsIDAuNjE2MTM4LCAwLjc2Njc5MSIsIFwKLSAgICAgICAgICAiMC4wNDk5OTksIDAuMDY4Mzg2LCAwLjE3MTQzNywgMC4yNjIwNDgsIDAuMzgyNzQ3LCAwLjYyNDEyMiwgMC43NzQ5NTEiLCBcCi0gICAgICAgICAgIjAuMDYwNzM1LCAwLjA3OTE1OCwgMC4xODE5OCwgMC4yNzI1NCwgMC4zOTMzNDIsIDAuNjM0NjU4LCAwLjc4NTM5NiIsIFwKLSAgICAgICAgICAiMC4wNzEzMywgMC4wODk0MzQsIDAuMTkyMjE2LCAwLjI4MjgwMiwgMC40MDM3MTEsIDAuNjQ0NzA0LCAwLjc5NTU2NyIsIFwKLSAgICAgICAgICAiMC4wODA3MTUsIDAuMTAwMjY1LCAwLjIwMjc3NSwgMC4yOTMzNjcsIDAuNDE0MTEyLCAwLjY1NTQ4NiwgMC44MDYxMTYiLCBcCi0gICAgICAgICAgIjAuMDkzNDIzLCAwLjExNjI5NywgMC4yMTk5MTIsIDAuMzEwMzE4LCAwLjQzMTAxMSwgMC42NzIzNjEsIDAuODIzMzE0IiwgXAotICAgICAgICAgICIwLjEwMjg0NSwgMC4xMjgyNCwgMC4yMzQ5LCAwLjMyNTE0MSwgMC40NDU3NjYsIDAuNjg3MjA0LCAwLjgzODA3MyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzY0ODcsIDAuMTEzNTkxLCAwLjMyNDMsIDAuNTEwNDAzLCAwLjc1ODcwNCwgMS4yNTUwMiwgMS41NjU1MyIsIFwKLSAgICAgICAgICAiMC4wNzc0MDUsIDAuMTEzNzg2LCAwLjMyNDQzLCAwLjUxMDM0NCwgMC43NTg0NjMsIDEuMjU0NjYsIDEuNTY1MTMiLCBcCi0gICAgICAgICAgIjAuMDgzMDU0LCAwLjExNzQ2NiwgMC4zMjQzNywgMC41MTAzNzcsIDAuNzU4NDg2LCAxLjI1NTAzLCAxLjU2NDg5IiwgXAotICAgICAgICAgICIwLjA5MTE2OCwgMC4xMjQ0NTIsIDAuMzI1NDgyLCAwLjUxMDQ0MSwgMC43NTg2OTgsIDEuMjU0NjksIDEuNTY1MDIiLCBcCi0gICAgICAgICAgIjAuMTAwMzQzLCAwLjEzMTksIDAuMzI4NzQ5LCAwLjUxMDkxLCAwLjc1ODQzNCwgMS4yNTQ3LCAxLjU2NTE4IiwgXAotICAgICAgICAgICIwLjExNTY4MywgMC4xNDYxMzIsIDAuMzM2NjcxLCAwLjUxNTEwNiwgMC43NTg4NCwgMS4yNTQ3OSwgMS41NjUyOCIsIFwKLSAgICAgICAgICAiMC4xMjgyNzcsIDAuMTU4NzYyLCAwLjM0NTIzLCAwLjUyMDQ5NiwgMC43NjEzNjMsIDEuMjU0NjYsIDEuNTY1MjIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTM0MjY0LCAwLjE5ODc5OCwgMC41NjQ0NywgMC44ODYxNDcsIDEuMzE2MTMsIDIuMTc3NDMsIDIuNzEzNCIsIFwKLSAgICAgICAgICAiMC4xMzk5ODIsIDAuMjA0NDksIDAuNTY5OTcsIDAuODkyMzgsIDEuMzIyMzMsIDIuMTgxNzYsIDIuNzE5MTEiLCBcCi0gICAgICAgICAgIjAuMTQ1Mzg0LCAwLjIwOTk4LCAwLjU3NjA3MiwgMC44OTg2ODEsIDEuMzI4NjEsIDIuMTg5MzQsIDIuNzI1MDMiLCBcCi0gICAgICAgICAgIjAuMTUwODkxLCAwLjIxNTUxMSwgMC41ODExNzksIDAuOTA0NDAyLCAxLjMzNDQ5LCAyLjE5Mzg2LCAyLjcyOTUzIiwgXAotICAgICAgICAgICIwLjE1NjM0MiwgMC4yMjEwNDcsIDAuNTg2NjkxLCAwLjkwOTMyNSwgMS4zMzg4NiwgMi4xOTk3OCwgMi43MzYyOSIsIFwKLSAgICAgICAgICAiMC4xNjU2MDksIDAuMjI5OTUxLCAwLjU5NTM0MSwgMC45MTczNywgMS4zNDc1NywgMi4yMDkyMSwgMi43NDM5MiIsIFwKLSAgICAgICAgICAiMC4xNzMwNzksIDAuMjM3OTMsIDAuNjAzNDE4LCAwLjkyNTM4LCAxLjM1NjI0LCAyLjIxNTQ3LCAyLjc1MzE0Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI2MjczNywgMC4zOTgxMTEsIDEuMTYzNzYsIDEuODM5NTUsIDIuNzQzNjgsIDQuNTQyOCwgNS42NzUzOSIsIFwKLSAgICAgICAgICAiMC4yNjI0OTIsIDAuMzk4MTU3LCAxLjE2NDksIDEuODM5MDUsIDIuNzQ0NzUsIDQuNTQ4NiwgNS42Njg3NSIsIFwKLSAgICAgICAgICAiMC4yNjI3NTksIDAuMzk3Nzg3LCAxLjE2MzM0LCAxLjgzOTA4LCAyLjczOTUsIDQuNTQzMzMsIDUuNjc1MzkiLCBcCi0gICAgICAgICAgIjAuMjY0MjY4LCAwLjM5ODA4NSwgMS4xNjQ5NSwgMS44Mzk1OCwgMi43NDAyLCA0LjU0MTMyLCA1LjY2NzA1IiwgXAotICAgICAgICAgICIwLjI2NjMxLCAwLjM5OTcyNCwgMS4xNjMxNywgMS44NDE3OSwgMi43NDAzNiwgNC41NDMyNCwgNS42NzUzNyIsIFwKLSAgICAgICAgICAiMC4yNzE0MjIsIDAuNDAyOTk3LCAxLjE2NDI5LCAxLjg0MDM3LCAyLjc0MzcxLCA0LjU0MjgzLCA1LjY3NDEzIiwgXAotICAgICAgICAgICIwLjI3NjI5MiwgMC40MDY3MDIsIDEuMTY0OTcsIDEuODQwMTIsIDIuNzM5NzMsIDQuNTQxOTMsIDUuNjY3ODUiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQwNjIxLCAwLjA1ODg3LCAwLjE2MTYzNSwgMC4yNTIxNjYsIDAuMzczMDY4LCAwLjYxNDQ0NywgMC43NjUwOTYiLCBcCi0gICAgICAgICAgIjAuMDQ4OTY1LCAwLjA2NzIxLCAwLjE2OTkyOSwgMC4yNjA1ODMsIDAuMzgxMTAxLCAwLjYyMjUzNCwgMC43NzMzMSIsIFwKLSAgICAgICAgICAiMC4wNTk1OCwgMC4wNzc3NzYsIDAuMTgwNiwgMC4yNzExNzQsIDAuMzkxNzY4LCAwLjYzMzMzMywgMC43ODM3NiIsIFwKLSAgICAgICAgICAiMC4wNzAxMzUsIDAuMDg4NDU1LCAwLjE5MTAwOCwgMC4yODE1NjMsIDAuNDAyNDM2LCAwLjY0MzkwNCwgMC43OTQ1OTUiLCBcCi0gICAgICAgICAgIjAuMDc5MjQ5LCAwLjA5OTE4MiwgMC4yMDEwOTYsIDAuMjkxNjM0LCAwLjQxMjI5NiwgMC42NTM3NDIsIDAuODA0Mzk2IiwgXAotICAgICAgICAgICIwLjA5MTU0MywgMC4xMTUxMjUsIDAuMjE4OTc0LCAwLjMwOTM1NCwgMC40MzAwOTIsIDAuNjcxMzA1LCAwLjgyMjEwMSIsIFwKLSAgICAgICAgICAiMC4xMDAzOSwgMC4xMjYxOSwgMC4yMzI4MzgsIDAuMzIyOTk0LCAwLjQ0MzU4MywgMC42ODQ5NzYsIDAuODM1Nzc0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3NDI5OSwgMC4xMTE0NjEsIDAuMzIyMzEyLCAwLjUwODUzNSwgMC43NTY4MiwgMS4yNTMxNywgMS41NjMxNyIsIFwKLSAgICAgICAgICAiMC4wNzUyOTEsIDAuMTExNjgxLCAwLjMyMjM4NSwgMC41MDg0LCAwLjc1NjYyNSwgMS4yNTMyMywgMS41NjMxNiIsIFwKLSAgICAgICAgICAiMC4wODExNjgsIDAuMTE1Njg4LCAwLjMyMjM5NCwgMC41MDg0MjYsIDAuNzU2NzY3LCAxLjI1MzQ4LCAxLjU2MzE2IiwgXAotICAgICAgICAgICIwLjA4OTI0OSwgMC4xMjIyNTIsIDAuMzIzNTMzLCAwLjUwODQ3LCAwLjc1Njc2MiwgMS4yNTMyOCwgMS41NjMzMSIsIFwKLSAgICAgICAgICAiMC4wOTg2MjcsIDAuMTMwMTg0LCAwLjMyNjg5LCAwLjUwOTAxOCwgMC43NTY2MzYsIDEuMjUyOTQsIDEuNTYzMTgiLCBcCi0gICAgICAgICAgIjAuMTEzNzU5LCAwLjE0NDAyNywgMC4zMzQzNDksIDAuNTEyODk1LCAwLjc1NzEzNSwgMS4yNTMwMywgMS41NjMxMSIsIFwKLSAgICAgICAgICAiMC4xMjY5NTIsIDAuMTU3NjQ1LCAwLjM0Mzg4MSwgMC41MTg4OTIsIDAuNzU5Njg2LCAxLjI1MzA1LCAxLjU2MzA5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEyOTkyLCAwLjE5NDM5NywgMC41NTk5MDUsIDAuODgyNjE3LCAxLjMxMzE1LCAyLjE3MjU5LCAyLjcwODE3IiwgXAotICAgICAgICAgICIwLjEzNjA1MywgMC4yMDA2NjMsIDAuNTY1OTk5LCAwLjg4ODE2OCwgMS4zMTg1NywgMi4xNzkyNywgMi43MTUyNCIsIFwKLSAgICAgICAgICAiMC4xNDMxNiwgMC4yMDc4NjUsIDAuNTczMzUxLCAwLjg5NjM2MiwgMS4zMjU4NiwgMi4xODU3NiwgMi43MjE1IiwgXAotICAgICAgICAgICIwLjE1MDU1MSwgMC4yMTUyMDcsIDAuNTgxMjczLCAwLjkwMzEwOSwgMS4zMzI4MywgMi4xOTM5LCAyLjczMDkxIiwgXAotICAgICAgICAgICIwLjE1ODMxOCwgMC4yMjI4NDYsIDAuNTg4NTkyLCAwLjkxMDc3OCwgMS4zNDE3NiwgMi4yMDA1NSwgMi43MzcyIiwgXAotICAgICAgICAgICIwLjE3MDkzNiwgMC4yMzUxNTEsIDAuNjAwNjM2LCAwLjkyMzExMiwgMS4zNTI4OCwgMi4yMTE5LCAyLjc1MDU0IiwgXAotICAgICAgICAgICIwLjE4MjAyNywgMC4yNDYwNTEsIDAuNjExNjExLCAwLjkzMzU3NywgMS4zNjM4NywgMi4yMjUwOSwgMi43NTk4NCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yNjI3NjYsIDAuMzk3NzE0LCAxLjE2NTM5LCAxLjgzODk0LCAyLjc0MTA1LCA0LjU0MDk4LCA1LjY2NzQ3IiwgXAotICAgICAgICAgICIwLjI2MjUxOCwgMC4zOTc2MDQsIDEuMTYzMzcsIDEuODQxMSwgMi43Mzk3MywgNC41NDIxLCA1LjY3NTI2IiwgXAotICAgICAgICAgICIwLjI2MjgyOSwgMC4zOTgxMDIsIDEuMTY0OCwgMS44MzkwMywgMi43NDQ4LCA0LjU0MTI3LCA1LjY3Mzg1IiwgXAotICAgICAgICAgICIwLjI2NDcwOCwgMC4zOTgxMjYsIDEuMTYzMzcsIDEuODQwNjIsIDIuNzQxMjQsIDQuNTQzMjQsIDUuNjY3NDEiLCBcCi0gICAgICAgICAgIjAuMjY3OTI1LCAwLjQwMDA2LCAxLjE2NTExLCAxLjg0MTQ1LCAyLjczOTQ5LCA0LjU0MjA2LCA1LjY2Njk1IiwgXAotICAgICAgICAgICIwLjI3NTI1LCAwLjQwNDU5MiwgMS4xNjM3NCwgMS44NDEyNiwgMi43NDM0OCwgNC41NDM4NiwgNS42NjU5OSIsIFwKLSAgICAgICAgICAiMC4yODI3MDUsIDAuNDEwMTgxLCAxLjE2NTIzLCAxLjg0MDYzLCAyLjc0NDIyLCA0LjU0Mjc2LCA1LjY3NDQ0Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzOTA4LCAwLjA1NzIyNCwgMC4xNTk4NTksIDAuMjUwNDAyLCAwLjM3MTIyLCAwLjYxMjY5NywgMC43NjMxNzYiLCBcCi0gICAgICAgICAgIjAuMDQ3NTIyLCAwLjA2NTY3NywgMC4xNjgzNTMsIDAuMjU4ODYzLCAwLjM3OTUwOCwgMC42MjEwMTEsIDAuNzcxNTY0IiwgXAotICAgICAgICAgICIwLjA1ODI3MywgMC4wNzYzNTMsIDAuMTc4OTE4LCAwLjI2OTQ0LCAwLjM5MDA3NywgMC42MzE1NTYsIDAuNzgxOTc0IiwgXAotICAgICAgICAgICIwLjA2ODU5NiwgMC4wODY5MzcsIDAuMTg5MzIzLCAwLjI3OTg1MSwgMC40MDA3NjcsIDAuNjQyMDUxLCAwLjc5Mjg2IiwgXAotICAgICAgICAgICIwLjA3NzM1MiwgMC4wOTc2NTgsIDAuMTk5OTYzLCAwLjI5MDQwMywgMC40MTA1NSwgMC42NTE5NjYsIDAuODAyNjE5IiwgXAotICAgICAgICAgICIwLjA4OTMzMSwgMC4xMTMzMjksIDAuMjE2MzgxLCAwLjMwNjYzLCAwLjQyNzQyOSwgMC42Njk2MDksIDAuODIwMzYxIiwgXAotICAgICAgICAgICIwLjA5Nzk1NiwgMC4xMjQzMTUsIDAuMjMxMTc1LCAwLjMyMTI4NiwgMC40NDE4NjUsIDAuNjgzMjM5LCAwLjgzMzk5MyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzIwODMsIDAuMTA5MjgsIDAuMzIwMjY5LCAwLjUwNjQ4NywgMC43NTQ3MTIsIDEuMjUwODksIDEuNTYxMDMiLCBcCi0gICAgICAgICAgIjAuMDczMjQ0LCAwLjEwOTU0NCwgMC4zMjA0MDEsIDAuNTA2NDE2LCAwLjc1NDUxNywgMS4yNTA1OSwgMS41NjAzNSIsIFwKLSAgICAgICAgICAiMC4wNzkxMzIsIDAuMTEzNTk3LCAwLjMyMDI3NiwgMC41MDYyNTQsIDAuNzU0NDMxLCAxLjI1MTA1LCAxLjU2MDk0IiwgXAotICAgICAgICAgICIwLjA4NzQzOCwgMC4xMjAzNDMsIDAuMzIxMzY5LCAwLjUwNjQwOCwgMC43NTQ4LCAxLjI1MDk1LCAxLjU2MDciLCBcCi0gICAgICAgICAgIjAuMDk2OTE5LCAwLjEyODM3LCAwLjMyNDc0LCAwLjUwNjk1NCwgMC43NTQ0NzgsIDEuMjUwNzEsIDEuNTYwNTkiLCBcCi0gICAgICAgICAgIjAuMTEyMDY5LCAwLjE0MjM2LCAwLjMzMzAwMywgMC41MTEwNDksIDAuNzU0OTAzLCAxLjI1MDY2LCAxLjU2MTExIiwgXAotICAgICAgICAgICIwLjEyNDk4NCwgMC4xNTYxOCwgMC4zNDE4NzUsIDAuNTE2ODExLCAwLjc1NzQ0NSwgMS4yNTA2MywgMS41NjAyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkQiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEyMjY3NCwgMC4xODcxNTEsIDAuNTUyNDU2LCAwLjg3NTQwOSwgMS4zMDUyOSwgMi4xNjQxMywgMi43MDIyOSIsIFwKLSAgICAgICAgICAiMC4xMjkyNiwgMC4xOTQwMDIsIDAuNTU5OTI1LCAwLjg4MjQ0OCwgMS4zMTIyNCwgMi4xNzExNSwgMi43MDkxMSIsIFwKLSAgICAgICAgICAiMC4xMzc3MzMsIDAuMjAyMzU3LCAwLjU2NzgwOSwgMC44OTAwMzgsIDEuMzE5NjgsIDIuMTc5MywgMi43MTYyMiIsIFwKLSAgICAgICAgICAiMC4xNDY4NjIsIDAuMjExMjc5LCAwLjU3Njc0NiwgMC44OTg3OTMsIDEuMzI4MjMsIDIuMTg5MjksIDIuNzI1MiIsIFwKLSAgICAgICAgICAiMC4xNTYwMDQsIDAuMjIwMTg1LCAwLjU4NTA3MywgMC45MDc1MzUsIDEuMzM3MDEsIDIuMTk3MjEsIDIuNzM0NzUiLCBcCi0gICAgICAgICAgIjAuMTcwODMxLCAwLjIzNDcyNSwgMC41OTkxMjMsIDAuOTIxMzMxLCAxLjM1MTU4LCAyLjIwOTkzLCAyLjc0NzAzIiwgXAotICAgICAgICAgICIwLjE4Mzk1NiwgMC4yNDcxODgsIDAuNjExMjk3LCAwLjkzMjc5NCwgMS4zNjI1MSwgMi4yMjM0MiwgMi43NTgxNiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yNjI1MDEsIDAuMzk3OTgzLCAxLjE2MzM2LCAxLjgzODk1LCAyLjczOTUxLCA0LjU0MTc5LCA1LjY2NzQiLCBcCi0gICAgICAgICAgIjAuMjYyMzg2LCAwLjM5NzU4NSwgMS4xNjMzMywgMS44MzkwOSwgMi43Mzk1MSwgNC41NDE5NiwgNS42Njc0MiIsIFwKLSAgICAgICAgICAiMC4yNjI1OTksIDAuMzk4MDA2LCAxLjE2NSwgMS44Mzk0NCwgMi43NDA3OCwgNC41NDE0LCA1LjY2NzEyIiwgXAotICAgICAgICAgICIwLjI2NTIsIDAuMzk4MjQ5LCAxLjE2MzYyLCAxLjg0MTI5LCAyLjc0MTk0LCA0LjU0MDg4LCA1LjY2Nzk4IiwgXAotICAgICAgICAgICIwLjI2OTY1NCwgMC40MDA1MDksIDEuMTY0MywgMS44NDE0OSwgMi43NDMsIDQuNTQyMTUsIDUuNjY3MTgiLCBcCi0gICAgICAgICAgIjAuMjc4NzcyLCAwLjQwNjc5NCwgMS4xNjMzOSwgMS44NDExNSwgMi43NDA0OCwgNC41NDYzMywgNS42Njc1NyIsIFwKLSAgICAgICAgICAiMC4yODg3NTcsIDAuNDE0MTI3LCAxLjE2Mjk3LCAxLjgzOTcsIDIuNzQzMjIsIDQuNTQwOTksIDUuNjcyMjMiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM3MjYsIDAuMDU1MzY3LCAwLjE1Nzk2OCwgMC4yNDg0OTQsIDAuMzY5MTQsIDAuNjEwNDA3LCAwLjc2MTI2IiwgXAotICAgICAgICAgICIwLjA0NTY1NywgMC4wNjM3NjksIDAuMTY2Mzk1LCAwLjI1Njk1MywgMC4zNzc1MDUsIDAuNjE5MDM0LCAwLjc2OTY2MyIsIFwKLSAgICAgICAgICAiMC4wNTYxOTIsIDAuMDc0Mjg2LCAwLjE3Njk3OSwgMC4yNjc1OTIsIDAuMzg4NDAyLCAwLjYyOTU3LCAwLjc4MDI1IiwgXAotICAgICAgICAgICIwLjA2NjkzNSwgMC4wODQ5NTksIDAuMTg3NTExLCAwLjI3ODA2NiwgMC4zOTg0OTcsIDAuNjM5NjQ3LCAwLjc5MDM3NyIsIFwKLSAgICAgICAgICAiMC4wNzU2NTUsIDAuMDk1NTU4LCAwLjE5ODEyOSwgMC4yODgzOCwgMC40MDkyMTksIDAuNjUwNzI3LCAwLjgwMTEyNCIsIFwKLSAgICAgICAgICAiMC4wODY5MTQsIDAuMTEwMTg1LCAwLjIxNDk4NiwgMC4zMDUyNTMsIDAuNDI2NTcxLCAwLjY2Nzk0MywgMC44MTg1MTQiLCBcCi0gICAgICAgICAgIjAuMDk1MjUyLCAwLjEyMTA5OSwgMC4yMjk5ODEsIDAuMzIwMDgyLCAwLjQ0MDY2MSwgMC42ODIyMzUsIDAuODMyODQ2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2OTkyNSwgMC4xMDcxODIsIDAuMzE4MzY5LCAwLjUwNDQ1MywgMC43NTQwMDksIDEuMjUxMzEsIDEuNTU5MTMiLCBcCi0gICAgICAgICAgIjAuMDcxMjc4LCAwLjEwNzQ3OCwgMC4zMTgxNTEsIDAuNTA0MzM2LCAwLjc1MjM1LCAxLjI1MDI1LCAxLjU1ODk4IiwgXAotICAgICAgICAgICIwLjA3NzQ3MiwgMC4xMTE5MzEsIDAuMzE4MDc3LCAwLjUwNDIzNCwgMC43NTI1OTgsIDEuMjUwMDMsIDEuNTU5NjgiLCBcCi0gICAgICAgICAgIjAuMDg1MjgsIDAuMTE4Njk4LCAwLjMyMDAxNCwgMC41MDQ0MDIsIDAuNzUzMDk2LCAxLjI0OTM1LCAxLjU1ODk1IiwgXAotICAgICAgICAgICIwLjA5NDYxNiwgMC4xMjY3NzgsIDAuMzIzMjY2LCAwLjUwNTAzLCAwLjc1NDEyNywgMS4yNDkxLCAxLjU1OTQzIiwgXAotICAgICAgICAgICIwLjExMDcwMiwgMC4xNDE5NDMsIDAuMzMxMjkxLCAwLjUwOTg5MywgMC43NTI5OTgsIDEuMjQ5MSwgMS41NTkxIiwgXAotICAgICAgICAgICIwLjEyMzE0NCwgMC4xNTUzODQsIDAuMzQwMDU5LCAwLjUxNDk2MSwgMC43NTY5NzUsIDEuMjQ5MSwgMS41NTg5MyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzg4NiwgMC4wMDM4ODksIDAuMDAzODkzLCAwLjAwMzg5MywgMC4wMDM4OTMsIDAuMDAzODkzLCAwLjAwMzg5NCIsIFwKLSAgICAgICAgICAiMC4wMDM4NiwgMC4wMDM4NywgMC4wMDM4ODUsIDAuMDAzODg4LCAwLjAwMzg5LCAwLjAwMzg5MSwgMC4wMDM4OTUiLCBcCi0gICAgICAgICAgIjAuMDAzODQsIDAuMDAzODUzLCAwLjAwMzg3OSwgMC4wMDM4ODMsIDAuMDAzODg2LCAwLjAwMzg4OSwgMC4wMDM4ODkiLCBcCi0gICAgICAgICAgIjAuMDAzODMzLCAwLjAwMzg0NCwgMC4wMDM4NzEsIDAuMDAzODc4LCAwLjAwMzg4MywgMC4wMDM4ODcsIDAuMDAzODg4IiwgXAotICAgICAgICAgICIwLjAwMzgzNCwgMC4wMDM4NDMsIDAuMDAzODY3LCAwLjAwMzg3NiwgMC4wMDM4OCwgMC4wMDM4ODYsIDAuMDAzODg4IiwgXAotICAgICAgICAgICIwLjAwMzg2LCAwLjAwMzg1OCwgMC4wMDM4NzEsIDAuMDAzODc3LCAwLjAwMzg4MiwgMC4wMDM4ODcsIDAuMDAzODg3IiwgXAotICAgICAgICAgICIwLjAwMzg5OCwgMC4wMDM4ODYsIDAuMDAzODgxLCAwLjAwMzg4NCwgMC4wMDM4ODUsIDAuMDAzODg4LCAwLjAwMzg4OCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDk5MSwgMC4wMDA5OTIsIDAuMDAwOTkyLCAwLjAwMDk5MiwgMC4wMDA5OTIsIDAuMDAwOTkxLCAwLjAwMDk5MSIsIFwKLSAgICAgICAgICAiMC4wMDA5NiwgMC4wMDA5NTksIDAuMDAwOTU5LCAwLjAwMDk1OSwgMC4wMDA5NTksIDAuMDAwOTU0LCAwLjAwMDk1MyIsIFwKLSAgICAgICAgICAiMC4wMDA5ODEsIDAuMDAwOTY0LCAwLjAwMDk1OCwgMC4wMDA5NTcsIDAuMDAwOTU1LCAwLjAwMDk1LCAwLjAwMDk0OSIsIFwKLSAgICAgICAgICAiMC4wMDEwMTUsIDAuMDAxMDA5LCAwLjAwMDk3NCwgMC4wMDA5NjYsIDAuMDAwOTYxLCAwLjAwMDk1MiwgMC4wMDA5NSIsIFwKLSAgICAgICAgICAiMC4wMDEwNzEsIDAuMDAxMDQ0LCAwLjAwMDk5MiwgMC4wMDA5NzksIDAuMDAwOTcsIDAuMDAwOTYyLCAwLjAwMDk1NCIsIFwKLSAgICAgICAgICAiMC4wMDExNjMsIDAuMDAxMTU5LCAwLjAwMTAzMiwgMC4wMDEwMDQsIDAuMDAwOTg4LCAwLjAwMDk3MywgMC4wMDA5NjgiLCBcCi0gICAgICAgICAgIjAuMDAxMjYyLCAwLjAwMTIxLCAwLjAwMTA3NywgMC4wMDEwMzQsIDAuMDAxMDA5LCAwLjAwMDk4NywgMC4wMDA5OCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzQ1NiwgMC4wMDM0NTksIDAuMDAzNDYzLCAwLjAwMzQ2MywgMC4wMDM0NjQsIDAuMDAzNDYzLCAwLjAwMzQ2MyIsIFwKLSAgICAgICAgICAiMC4wMDM0MywgMC4wMDM0NCwgMC4wMDM0NTQsIDAuMDAzNDU5LCAwLjAwMzQ1OSwgMC4wMDM0NjMsIDAuMDAzNDYyIiwgXAotICAgICAgICAgICIwLjAwMzQxMiwgMC4wMDM0MjQsIDAuMDAzNDQ3LCAwLjAwMzQ1MiwgMC4wMDM0NTUsIDAuMDAzNDU4LCAwLjAwMzQ2IiwgXAotICAgICAgICAgICIwLjAwMzQwNSwgMC4wMDM0MTUsIDAuMDAzNDQxLCAwLjAwMzQ0OSwgMC4wMDM0NTMsIDAuMDAzNDU3LCAwLjAwMzQ1OCIsIFwKLSAgICAgICAgICAiMC4wMDM0MSwgMC4wMDM0MTcsIDAuMDAzNDM5LCAwLjAwMzQ0NywgMC4wMDM0NTIsIDAuMDAzNDU1LCAwLjAwMzQ1NyIsIFwKLSAgICAgICAgICAiMC4wMDM0MzksIDAuMDAzNDM1LCAwLjAwMzQ0MywgMC4wMDM0NDksIDAuMDAzNDU0LCAwLjAwMzQ1NCwgMC4wMDM0NTciLCBcCi0gICAgICAgICAgIjAuMDAzNDgzLCAwLjAwMzQ3LCAwLjAwMzQ1NSwgMC4wMDM0NTYsIDAuMDAzNDU4LCAwLjAwMzQ2LCAwLjAwMzQ2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwNzIyLCAwLjAwMDcyMiwgMC4wMDA3MjMsIDAuMDAwNzIzLCAwLjAwMDcyMywgMC4wMDA3MjIsIDAuMDAwNzIyIiwgXAotICAgICAgICAgICIwLjAwMDcwMywgMC4wMDA3MDMsIDAuMDAwNzA1LCAwLjAwMDcwNCwgMC4wMDA3MDMsIDAuMDAwNzAzLCAwLjAwMDcwMyIsIFwKLSAgICAgICAgICAiMC4wMDA3MTIsIDAuMDAwNzA5LCAwLjAwMDcwOCwgMC4wMDA3MDYsIDAuMDAwNzA0LCAwLjAwMDcwMSwgMC4wMDA3MDEiLCBcCi0gICAgICAgICAgIjAuMDAwNzQ5LCAwLjAwMDczNCwgMC4wMDA3MTQsIDAuMDAwNzEsIDAuMDAwNzEyLCAwLjAwMDcwOCwgMC4wMDA3MDciLCBcCi0gICAgICAgICAgIjAuMDAwODAyLCAwLjAwMDc3NiwgMC4wMDA3NDYsIDAuMDAwNzMyLCAwLjAwMDcyMywgMC4wMDA3MTUsIDAuMDAwNzA5IiwgXAotICAgICAgICAgICIwLjAwMDg5MSwgMC4wMDA4MzMsIDAuMDAwNzksIDAuMDAwNzYzLCAwLjAwMDc0NSwgMC4wMDA3MjgsIDAuMDAwNzIzIiwgXAotICAgICAgICAgICIwLjAwMTAwMywgMC4wMDA5MjEsIDAuMDAwODUsIDAuMDAwODAyLCAwLjAwMDc3NCwgMC4wMDA3NDgsIDAuMDAwNzM5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzMDExLCAwLjAwMzAxNCwgMC4wMDMwMTgsIDAuMDAzMDE4LCAwLjAwMzAxOCwgMC4wMDMwMTgsIDAuMDAzMDE4IiwgXAotICAgICAgICAgICIwLjAwMjk4NSwgMC4wMDI5OTUsIDAuMDAzMDEsIDAuMDAzMDEzLCAwLjAwMzAxNSwgMC4wMDMwMTYsIDAuMDAzMDE2IiwgXAotICAgICAgICAgICIwLjAwMjk3LCAwLjAwMjk4MSwgMC4wMDMwMDMsIDAuMDAzMDA4LCAwLjAwMzAxMiwgMC4wMDMwMTQsIDAuMDAzMDE1IiwgXAotICAgICAgICAgICIwLjAwMjk3MiwgMC4wMDI5NzksIDAuMDAyOTk5LCAwLjAwMzAwOCwgMC4wMDMwMTEsIDAuMDAzMDEyLCAwLjAwMzAxNCIsIFwKLSAgICAgICAgICAiMC4wMDI5ODcsIDAuMDAyOTg4LCAwLjAwMywgMC4wMDMwMDUsIDAuMDAzMDA4LCAwLjAwMzAxMywgMC4wMDMwMTQiLCBcCi0gICAgICAgICAgIjAuMDAzMDM0LCAwLjAwMzAxOSwgMC4wMDMwMDksIDAuMDAzMDExLCAwLjAwMzAxMiwgMC4wMDMwMTQsIDAuMDAzMDE1IiwgXAotICAgICAgICAgICIwLjAwMzA5NiwgMC4wMDMwNjQsIDAuMDAzMDI1LCAwLjAwMzAyMywgMC4wMDMwMjEsIDAuMDAzMDIsIDAuMDAzMDIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDAzOTksIDAuMDAwNCwgMC4wMDA0MDIsIDAuMDAwNDAyLCAwLjAwMDQwMywgMC4wMDA0MDIsIDAuMDAwNDAzIiwgXAotICAgICAgICAgICIwLjAwMDQwNiwgMC4wMDA0MSwgMC4wMDA0MTUsIDAuMDAwNDE3LCAwLjAwMDQxOCwgMC4wMDA0MTgsIDAuMDAwNDE4IiwgXAotICAgICAgICAgICIwLjAwMDQyMywgMC4wMDA0MjMsIDAuMDAwNDI0LCAwLjAwMDQyMywgMC4wMDA0MjIsIDAuMDAwNDIzLCAwLjAwMDQyMyIsIFwKLSAgICAgICAgICAiMC4wMDA0NTIsIDAuMDAwNDQyLCAwLjAwMDQzMSwgMC4wMDA0MjksIDAuMDAwNDMyLCAwLjAwMDQyOCwgMC4wMDA0MjciLCBcCi0gICAgICAgICAgIjAuMDAwNTA0LCAwLjAwMDQ4MiwgMC4wMDA0NDgsIDAuMDAwNDM5LCAwLjAwMDQ0MywgMC4wMDA0MzYsIDAuMDAwNDMzIiwgXAotICAgICAgICAgICIwLjAwMDU4OCwgMC4wMDA1MzUsIDAuMDAwNTEsIDAuMDAwNDgzLCAwLjAwMDQ2NywgMC4wMDA0NSwgMC4wMDA0NDUiLCBcCi0gICAgICAgICAgIjAuMDAwNjk0LCAwLjAwMDYyLCAwLjAwMDU2MywgMC4wMDA1MTksIDAuMDAwNDkzLCAwLjAwMDQ2OSwgMC4wMDA0NjEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJEIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI1NiwgMC4wMDI1NjQsIDAuMDAyNTY5LCAwLjAwMjU3LCAwLjAwMjU3MSwgMC4wMDI1NzMsIDAuMDAyNTcxIiwgXAotICAgICAgICAgICIwLjAwMjUzLCAwLjAwMjU0MiwgMC4wMDI1NiwgMC4wMDI1NjQsIDAuMDAyNTY3LCAwLjAwMjU2OCwgMC4wMDI1NjkiLCBcCi0gICAgICAgICAgIjAuMDAyNTQsIDAuMDAyNTQ0LCAwLjAwMjU1OCwgMC4wMDI1NjIsIDAuMDAyNTY1LCAwLjAwMjU2NywgMC4wMDI1NjciLCBcCi0gICAgICAgICAgIjAuMDAyNTY2LCAwLjAwMjU1OSwgMC4wMDI1NiwgMC4wMDI1NjMsIDAuMDAyNTY1LCAwLjAwMjU2NiwgMC4wMDI1NjciLCBcCi0gICAgICAgICAgIjAuMDAyNjExLCAwLjAwMjU4OSwgMC4wMDI1NywgMC4wMDI1NjksIDAuMDAyNTY5LCAwLjAwMjU2OSwgMC4wMDI1NjkiLCBcCi0gICAgICAgICAgIjAuMDAyNzAzLCAwLjAwMjY2MiwgMC4wMDI1OTcsIDAuMDAyNTg2LCAwLjAwMjU4LCAwLjAwMjU3NSwgMC4wMDI1NzQiLCBcCi0gICAgICAgICAgIjAuMDAyODE4LCAwLjAwMjc1MiwgMC4wMDI2MzcsIDAuMDAyNjEyLCAwLjAwMjU5OSwgMC4wMDI1ODYsIDAuMDAyNTgzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwMDQxLCAwLjAwMDA0NSwgMC4wMDAwNTEsIDAuMDAwMDUyLCAwLjAwMDA1MywgMC4wMDAwNTMsIDAuMDAwMDUzIiwgXAotICAgICAgICAgICIwLjAwMDA1OCwgMC4wMDAwNjcsIDAuMDAwMDgsIDAuMDAwMDgzLCAwLjAwMDA4OSwgMC4wMDAwOTEsIDAuMDAwMDkyIiwgXAotICAgICAgICAgICIwLjAwMDA4LCAwLjAwMDA4NCwgMC4wMDAwODgsIDAuMDAwMDkxLCAwLjAwMDA5MywgMC4wMDAwOTYsIDAuMDAwMDk3IiwgXAotICAgICAgICAgICIwLjAwMDA5MSwgMC4wMDAxMTMsIDAuMDAwMDk4LCAwLjAwMDA5OCwgMC4wMDAxMDEsIDAuMDAwMTAyLCAwLjAwMDEwMyIsIFwKLSAgICAgICAgICAiMC4wMDAxMjcsIDAuMDAwMTUyLCAwLjAwMDExNCwgMC4wMDAxMTUsIDAuMDAwMTA2LCAwLjAwMDEwMywgMC4wMDAxMDYiLCBcCi0gICAgICAgICAgIjAuMDAwMjE1LCAwLjAwMDIzLCAwLjAwMDE1NiwgMC4wMDAxMzgsIDAuMDAwMTM1LCAwLjAwMDEyMSwgMC4wMDAxMTciLCBcCi0gICAgICAgICAgIjAuMDAwMzE4LCAwLjAwMDMyNiwgMC4wMDAxOTcsIDAuMDAwMTY1LCAwLjAwMDE0NywgMC4wMDAxMzEsIDAuMDAwMTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBOT1I0WEwgKgotICogLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChOT1I0WEwpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4xNzA3NTc7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYyMDQzMTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MTc5MjI7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjIwNDMxOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDI1MiwgMC4wMDAyNjksIDAuMDAwMjc2LCAwLjAwMDI4LCAwLjAwMDI4MSwgMC4wMDAyODEsIDAuMDAwMjgyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNzM2LCAwLjAwMDczNywgMC4wMDA3MzcsIDAuMDAwNzM3LCAwLjAwMDczNywgMC4wMDA3MzcsIDAuMDAwNzM3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2NDI0OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDY0MDI3NjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2NDI0OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDI0MiwgMC4wMDAyNjcsIDAuMDAwMjc1LCAwLjAwMDI3NywgMC4wMDAyODEsIDAuMDAwMjg2LCAwLjAwMDI4NiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDUxNSwgMC4wMDA1MTUsIDAuMDAwNTE1LCAwLjAwMDUxNSwgMC4wMDA1MTUsIDAuMDAwNTE1LCAwLjAwMDUxNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQykgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjUyOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDY1MDM5ODsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2NTI7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjQyLCAwLjAwMDI3NSwgMC4wMDAyODMsIDAuMDAwMjg1LCAwLjAwMDI4NCwgMC4wMDAyODgsIDAuMDAwMjg2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzA0LCAwLjAwMDMwNCwgMC4wMDAzMDQsIDAuMDAwMzA0LCAwLjAwMDMwNCwgMC4wMDAzMDQsIDAuMDAwMzA1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihEKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2NTI5OTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2NTI5OTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2NTI2NTk7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMDcyLCAwLjAwMDA3MiwgMC4wMDAwNzIsIDAuMDAwMDcyLCAwLjAwMDA3MiwgMC4wMDAwNzIsIDAuMDAwMDcyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjUzLCAwLjAwMDI1MywgMC4wMDAyNTMsIDAuMDAwMjUzLCAwLjAwMDI1MywgMC4wMDAyNTMsIDAuMDAwMjUzIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMDUyMzc5OTsKLSAgICBmdW5jdGlvbiA6ICIoISgoKEErQikrQykrRCkpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMTI4MzksIDAuMjQ4OTczLCAwLjU3Mzc0MiwgMS4xMTU3MywgMS42NTU0NCwgMi45MTc2LCAzLjYzNTI1IiwgXAotICAgICAgICAgICIwLjIxODE5NiwgMC4yNTQxNTIsIDAuNTc5MDc5LCAxLjEyMDQ4LCAxLjY2MDgxLCAyLjkyMjYyLCAzLjY0MTI2IiwgXAotICAgICAgICAgICIwLjIyMjI2OSwgMC4yNTgyODYsIDAuNTgzNjQsIDEuMTI0NTksIDEuNjY1NjUsIDIuOTI2NDQsIDMuNjQ1NTIiLCBcCi0gICAgICAgICAgIjAuMjI1NzMsIDAuMjYxOTIxLCAwLjU4NjQ5NCwgMS4xMjc5LCAxLjY2ODIzLCAyLjkyODc5LCAzLjY0ODY4IiwgXAotICAgICAgICAgICIwLjIyODkxMSwgMC4yNjUwMjQsIDAuNTg5NjE2LCAxLjEzMDU2LCAxLjY3MSwgMi45MzIwNiwgMy42NTE5NyIsIFwKLSAgICAgICAgICAiMC4yMzQxODcsIDAuMjcwMTc5LCAwLjU5NDY3NiwgMS4xMzUzOSwgMS42NzgxOCwgMi45MzkyMSwgMy42NTc4MSIsIFwKLSAgICAgICAgICAiMC4yMzg5MTQsIDAuMjc0ODE2LCAwLjU5OTI5MiwgMS4xNDA5NCwgMS42ODIwNywgMi45NDEzOCwgMy42NjE4Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjQyNjExNSwgMC41MDI3NTksIDEuMTg4NzEsIDIuMzMzNTIsIDMuNDgwNzUsIDYuMTQzNDksIDcuNjcxMTkiLCBcCi0gICAgICAgICAgIjAuNDI2MjcyLCAwLjUwMzA0MywgMS4xODg2NiwgMi4zMzI0NiwgMy40NzU0NywgNi4xNDQwMywgNy42Njc5OSIsIFwKLSAgICAgICAgICAiMC40MjY3NTEsIDAuNTAyNzUyLCAxLjE4OTA1LCAyLjMzMjEzLCAzLjQ3NTg5LCA2LjE0NDg0LCA3LjY2Nzg2IiwgXAotICAgICAgICAgICIwLjQyNjkzMSwgMC41MDI1NDksIDEuMTg5ODMsIDIuMzMyOTEsIDMuNDc2MjUsIDYuMTQ2ODYsIDcuNjY4NzciLCBcCi0gICAgICAgICAgIjAuNDI3NzQ5LCAwLjUwMzI3MiwgMS4xODk2NCwgMi4zMzQ0OSwgMy40Nzg5MywgNi4xNDc3LCA3LjY2OTA0IiwgXAotICAgICAgICAgICIwLjQyOTk2NCwgMC41MDU1MjQsIDEuMTg4ODcsIDIuMzM0MzgsIDMuNDc3MjQsIDYuMTQzNjEsIDcuNjcxODMiLCBcCi0gICAgICAgICAgIjAuNDMyNDY0LCAwLjUwNzQ0MSwgMS4xODk5OSwgMi4zMzIzNCwgMy40NzcxMywgNi4xNDcxMywgNy42NzE0OSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjA2MDgsIDAuMDcwMzYzLCAwLjE1NzU5NSwgMC4zMDI0ODUsIDAuNDQ3MjU3LCAwLjc4NDkxNSwgMC45NzgwMSIsIFwKLSAgICAgICAgICAiMC4wNjg3NzQsIDAuMDc4NTEyLCAwLjE2NTczOCwgMC4zMTA2MzUsIDAuNDU1NTYsIDAuNzkzMTQsIDAuOTg2Njg5IiwgXAotICAgICAgICAgICIwLjA3OTA3MiwgMC4wODg3NzUsIDAuMTc1MTgyLCAwLjMyMDk0MiwgMC40NjU1LCAwLjgwMzE3NywgMC45OTY3OTIiLCBcCi0gICAgICAgICAgIjAuMDg5NDgzLCAwLjA5OTIyNiwgMC4xODU5ODUsIDAuMzMwOTU0LCAwLjQ3NTg1NywgMC44MTMwNzIsIDEuMDA2MTgiLCBcCi0gICAgICAgICAgIjAuMTAwMTI3LCAwLjEwOTc0NCwgMC4xOTY2MzMsIDAuMzQxMDkxLCAwLjQ4NjE2NiwgMC44MjM0MjksIDEuMDE2NiIsIFwKLSAgICAgICAgICAiMC4xMTUxMzksIDAuMTI1OTUzLCAwLjIxMzQxNywgMC4zNTgxMDYsIDAuNTAwMzA1LCAwLjg0MDE0LCAxLjAzMjc5IiwgXAotICAgICAgICAgICIwLjEyNzA3LCAwLjEzODE3NCwgMC4yMjc3OTcsIDAuMzcyMjM5LCAwLjUxNjg5NiwgMC44NTQ2MjEsIDEuMDQ3NjEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTE0OTIzLCAwLjEzNDcwNCwgMC4zMTI2MjcsIDAuNjA5NTAzLCAwLjkwNjYzOCwgMS41OTk0LCAxLjk5NTEzIiwgXAotICAgICAgICAgICIwLjExNTA2MywgMC4xMzQ2NzMsIDAuMzEyNjQzLCAwLjYwOTQ5LCAwLjkwNjY5NSwgMS41OTk0NywgMS45OTU2IiwgXAotICAgICAgICAgICIwLjExOTE4NywgMC4xMzc4ODcsIDAuMzEyNzY4LCAwLjYwOTY0MiwgMC45MDYzNjYsIDEuNTk5NjEsIDEuOTk2MDIiLCBcCi0gICAgICAgICAgIjAuMTI1ODE0LCAwLjE0MzkxNywgMC4zMTQxOTUsIDAuNjA5NjIyLCAwLjkwNjYxMiwgMS41OTk1LCAxLjk5NDk0IiwgXAotICAgICAgICAgICIwLjEzNDAwNCwgMC4xNTE0MzgsIDAuMzE3ODQxLCAwLjYwOTkzMywgMC45MDY0NDksIDEuNTk5MDQsIDEuOTk1MTgiLCBcCi0gICAgICAgICAgIjAuMTQ5MTQyLCAwLjE2NTY3OSwgMC4zMjU4ODQsIDAuNjExODc3LCAwLjkwNjI4NSwgMS41OTg5MywgMS45OTQ2MSIsIFwKLSAgICAgICAgICAiMC4xNjE0MTEsIDAuMTc5MTA4LCAwLjMzNTQ3NywgMC42MTYzODIsIDAuOTA3NjM3LCAxLjU5ODgzLCAxLjk5NDcxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIxMDk0NSwgMC4yNDY2NTcsIDAuNTcxNzUyLCAxLjExMjU2LCAxLjY1NDY3LCAyLjkxNTIzLCAzLjYzNDE3IiwgXAotICAgICAgICAgICIwLjIxNjMzNiwgMC4yNTIyNzYsIDAuNTc3MzkyLCAxLjExODA5LCAxLjY1OTkyLCAyLjkxOTQsIDMuNjM5MTMiLCBcCi0gICAgICAgICAgIjAuMjIxNjUsIDAuMjU3NzgsIDAuNTgyNTI0LCAxLjEyMzQ3LCAxLjY2MzUzLCAyLjkyNDczLCAzLjY0NDc4IiwgXAotICAgICAgICAgICIwLjIyNjYxNiwgMC4yNjI4MjQsIDAuNTg3ODM3LCAxLjEyODA5LCAxLjY2OTgyLCAyLjkzMTg3LCAzLjY0OTQ4IiwgXAotICAgICAgICAgICIwLjIzMTgzMywgMC4yNjc4ODIsIDAuNTkzMjA3LCAxLjEzNDIyLCAxLjY3NDQzLCAyLjkzNTAzLCAzLjY1NTAxIiwgXAotICAgICAgICAgICIwLjI0MDI0NCwgMC4yNzY0MjksIDAuNjAwNzI3LCAxLjE0MTUxLCAxLjY4MjU5LCAyLjk0MzY0LCAzLjY2MzIzIiwgXAotICAgICAgICAgICIwLjI0NzcyMSwgMC4yODM4NTgsIDAuNjA4MzIxLCAxLjE0OTksIDEuNjkxNjEsIDIuOTUwNjIsIDMuNjcwNjIiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuNDI2MjQsIDAuNTAyMjQ2LCAxLjE4OTE3LCAyLjMzMjAzLCAzLjQ3NzUzLCA2LjE1MDQ0LCA3LjY2NzAxIiwgXAotICAgICAgICAgICIwLjQyNjc5LCAwLjUwMjg3MywgMS4xODg3MiwgMi4zMzE5OCwgMy40NzY5LCA2LjE0MzY4LCA3LjY2NzcyIiwgXAotICAgICAgICAgICIwLjQyNjI2OCwgMC41MDI0OTgsIDEuMTg4NTQsIDIuMzMyNDcsIDMuNDc4NzEsIDYuMTQ4NjksIDcuNjcxODEiLCBcCi0gICAgICAgICAgIjAuNDI2NjY4LCAwLjUwMjQ1OSwgMS4xODg2MSwgMi4zMzQwNiwgMy40NzU1NCwgNi4xNDM1OCwgNy42Njc3IiwgXAotICAgICAgICAgICIwLjQyODE3MSwgMC41MDM4NSwgMS4xODg2NiwgMi4zMzMxNiwgMy40NzYxNCwgNi4xNDU0NywgNy42Njc0MiIsIFwKLSAgICAgICAgICAiMC40MzEzMTIsIDAuNTA2NDM4LCAxLjE4OTU0LCAyLjMzMjE5LCAzLjQ3NTk4LCA2LjE0MzY4LCA3LjY3MTI1IiwgXAotICAgICAgICAgICIwLjQzNDkyOSwgMC41MDk1OTcsIDEuMTkwMDksIDIuMzMyMjYsIDMuNDc2MjYsIDYuMTQzNDgsIDcuNjcxMzMiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU5MzQzLCAwLjA2OTAzMiwgMC4xNTYwNTQsIDAuMzAwODUzLCAwLjQ0NTU4MiwgMC43ODMyNzIsIDAuOTc2NDI0IiwgXAotICAgICAgICAgICIwLjA2NzU1NCwgMC4wNzcyNTEsIDAuMTY0MjQ3LCAwLjMwOTAzNSwgMC40NTQwMjMsIDAuNzkxNTM4LCAwLjk4NDU5OCIsIFwKLSAgICAgICAgICAiMC4wNzc4MzUsIDAuMDg3NDc5LCAwLjE3MzY4MywgMC4zMTkyNTcsIDAuNDY0MDcsIDAuODAxNTA2LCAwLjk5NTAzNiIsIFwKLSAgICAgICAgICAiMC4wODgyMzgsIDAuMDk3OTI2LCAwLjE4NDcyMiwgMC4zMjk1OCwgMC40NzQ0MTgsIDAuODExOTYsIDEuMDA0OTYiLCBcCi0gICAgICAgICAgIjAuMDk5MTExLCAwLjEwODc2MSwgMC4xOTQ1NDUsIDAuMzM4OTM2LCAwLjQ4NDAxLCAwLjgyMTQxNSwgMS4wMTQ4OCIsIFwKLSAgICAgICAgICAiMC4xMTQxMzYsIDAuMTI1MDY5LCAwLjIxMTIwNywgMC4zNTU2MjUsIDAuNDk4MjQ2LCAwLjgzODExMSwgMS4wMzA2NyIsIFwKLSAgICAgICAgICAiMC4xMjUxMDksIDAuMTM3MTAyLCAwLjIyNTczNiwgMC4zNjk5NzQsIDAuNTE0NjgyLCAwLjg1MjUzMywgMS4wNDUyMSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTI2ODcsIDAuMTMyNDksIDAuMzEwNjE1LCAwLjYwNzQ1OCwgMC45MDQ0MSwgMS41OTY3LCAxLjk5Mjg4IiwgXAotICAgICAgICAgICIwLjExMjkyLCAwLjEzMjU1LCAwLjMxMDYxOCwgMC42MDc1MzIsIDAuOTA0NjY3LCAxLjU5NzA1LCAxLjk5MzAxIiwgXAotICAgICAgICAgICIwLjExNzEwMiwgMC4xMzU3ODYsIDAuMzEwNjc3LCAwLjYwNzYzMywgMC45MDQ2MzYsIDEuNTk2OTksIDEuOTkzMjciLCBcCi0gICAgICAgICAgIjAuMTIzODEyLCAwLjE0MTkwNCwgMC4zMTIwNzcsIDAuNjA3NjYzLCAwLjkwNDYyMSwgMS41OTcwMiwgMS45OTM0OCIsIFwKLSAgICAgICAgICAiMC4xMzE1NjgsIDAuMTQ5MTExLCAwLjMxNTgzMywgMC42MDc1MywgMC45MDQyNTEsIDEuNTk2NjYsIDEuOTkzMSIsIFwKLSAgICAgICAgICAiMC4xNDYwNzMsIDAuMTYyNzA3LCAwLjMyNDYyMSwgMC42MDk5NDYsIDAuOTA0MzQ1LCAxLjU5NzA2LCAxLjk5MjQ4IiwgXAotICAgICAgICAgICIwLjE2MDAwMSwgMC4xNzYwMjYsIDAuMzM0MjExLCAwLjYxNDczOSwgMC45MDU3NzUsIDEuNTk3MDMsIDEuOTkzMDIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjA2MDU5LCAwLjI0MjMyMSwgMC41NjcyMTEsIDEuMTA4NDgsIDEuNjQ3NDIsIDIuOTEwMzMsIDMuNjI4OTEiLCBcCi0gICAgICAgICAgIjAuMjExODcyLCAwLjI0Nzk2MSwgMC41NzIzMjIsIDEuMTEzNDEsIDEuNjU0NTMsIDIuOTE2ODEsIDMuNjM1MzQiLCBcCi0gICAgICAgICAgIjAuMjE5MDEzLCAwLjI1NTA0MSwgMC41Nzk1NjMsIDEuMTIxNywgMS42NjE3NSwgMi45MjE3MSwgMy42NDE4NSIsIFwKLSAgICAgICAgICAiMC4yMjYxMTQsIDAuMjYyMTY2LCAwLjU4NjkwNiwgMS4xMjg2NSwgMS42Njg2MywgMi45MjkwOSwgMy42NDg5NSIsIFwKLSAgICAgICAgICAiMC4yMzMzMzcsIDAuMjY5NjQ5LCAwLjU5NDczNywgMS4xMzYxOCwgMS42Nzc4LCAyLjkzNjk2LCAzLjY1NjYxIiwgXAotICAgICAgICAgICIwLjI0NTQxMiwgMC4yODExMDksIDAuNjA1NzA3LCAxLjE0NjQsIDEuNjg4OTQsIDIuOTQ5ODcsIDMuNjY3NDgiLCBcCi0gICAgICAgICAgIjAuMjU2MTA0LCAwLjI5MjEyMywgMC42MTYzNjcsIDEuMTU2ODQsIDEuNjk3MDUsIDIuOTU4ODQsIDMuNjc4MiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC40MjY1MjcsIDAuNTAyNSwgMS4xODg5MywgMi4zMzMxOCwgMy40Nzg2NywgNi4xNTAyOCwgNy42NzEzNiIsIFwKLSAgICAgICAgICAiMC40MjYzNjksIDAuNTAzMDg3LCAxLjE4OTU4LCAyLjMzNTAyLCAzLjQ3NTQzLCA2LjE0MzYyLCA3LjY2Njc1IiwgXAotICAgICAgICAgICIwLjQyNjIzNywgMC41MDMwNzEsIDEuMTg5OTIsIDIuMzMzNDUsIDMuNDc1NSwgNi4xNDY0NCwgNy42NzE3IiwgXAotICAgICAgICAgICIwLjQyNzEyNiwgMC41MDI5NTksIDEuMTg5OTgsIDIuMzMyOTYsIDMuNDc2MTIsIDYuMTQ2ODksIDcuNjY5NDMiLCBcCi0gICAgICAgICAgIjAuNDI4MjE0LCAwLjUwNDAyOCwgMS4xODg1OSwgMi4zMzMwNiwgMy40Nzc2OCwgNi4xNDMwNSwgNy42Njc2OCIsIFwKLSAgICAgICAgICAiMC40MzMwNzgsIDAuNTA3MjM2LCAxLjE4OTYzLCAyLjMzMjUxLCAzLjQ3NzMsIDYuMTQzODksIDcuNjY3NTUiLCBcCi0gICAgICAgICAgIjAuNDM4NDgxLCAwLjUxMTgzMiwgMS4xOTAxNywgMi4zMzQ1NSwgMy40NzgxOCwgNi4xNDQyLCA3LjY3MTIyIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1NzY4NSwgMC4wNjczNDUsIDAuMTU0MjUsIDAuMjk5MDExLCAwLjQ0MzY1MiwgMC43ODEzNDUsIDAuOTc0NTE5IiwgXAotICAgICAgICAgICIwLjA2NTk2LCAwLjA3NTYyMSwgMC4xNjI1MjgsIDAuMzA3Mjc3LCAwLjQ1MTg5MiwgMC43ODk2MiwgMC45ODMyNDgiLCBcCi0gICAgICAgICAgIjAuMDc2MzgzLCAwLjA4NjAxNSwgMC4xNzIwNjYsIDAuMzE3NTcsIDAuNDYyMjk4LCAwLjc5OTczLCAwLjk5MzIzNyIsIFwKLSAgICAgICAgICAiMC4wODY3MTYsIDAuMDk2MzU0LCAwLjE4MzAzOSwgMC4zMjc4ODksIDAuNDcyNzU4LCAwLjgxMDI0OCwgMS4wMDMxNSIsIFwKLSAgICAgICAgICAiMC4wOTc1NjksIDAuMTA3MTI3LCAwLjE5Mjg2NywgMC4zMzc3MzUsIDAuNDgyMjkyLCAwLjgxOTkwOSwgMS4wMTM1OSIsIFwKLSAgICAgICAgICAiMC4xMTIzMDUsIDAuMTIzMzA5LCAwLjIwOTUzMywgMC4zNTM5MDQsIDAuNDk2NTY2LCAwLjgzNjI0OSwgMS4wMjg4OCIsIFwKLSAgICAgICAgICAiMC4xMjI4ODQsIDAuMTM1MTI3LCAwLjIyNDA1OCwgMC4zNjgyNCwgMC41MTI5MzMsIDAuODUwNjIsIDEuMDQzMzQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTEwNDc0LCAwLjEzMDMwOCwgMC4zMDg0NTUsIDAuNjA1MjAxLCAwLjkwMTc1MywgMS41OTQxNCwgMS45OTA2NiIsIFwKLSAgICAgICAgICAiMC4xMTA3NDIsIDAuMTMwMzc1LCAwLjMwODQ4OSwgMC42MDUyOTQsIDAuOTAyMTU5LCAxLjU5NDkzLCAxLjk5MDU5IiwgXAotICAgICAgICAgICIwLjExNDk3MSwgMC4xMzM3MywgMC4zMDg0MDcsIDAuNjA1Mjk3LCAwLjkwMjI0MSwgMS41OTUyLCAxLjk5MDg0IiwgXAotICAgICAgICAgICIwLjEyMTg3LCAwLjEzOTg2NiwgMC4zMTAwMjgsIDAuNjA1MzAzLCAwLjkwMjI1MiwgMS41OTQ3OSwgMS45OTA5MyIsIFwKLSAgICAgICAgICAiMC4xMjk3MDMsIDAuMTQ3MDY0LCAwLjMxMzc5NiwgMC42MDUyNCwgMC45MDE5NjksIDEuNTk0NjQsIDEuOTkwNzkiLCBcCi0gICAgICAgICAgIjAuMTQ0MzcxLCAwLjE2MDg3OSwgMC4zMjI1ODgsIDAuNjA3ODk3LCAwLjkwMTk0NSwgMS41OTQ4NiwgMS45OTAxNiIsIFwKLSAgICAgICAgICAiMC4xNTg1NSwgMC4xNzQ1MiwgMC4zMzIxMDYsIDAuNjEyNTMyLCAwLjkwMjg3MywgMS41OTQ3MiwgMS45OTA3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkQiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE5ODY0NywgMC4yMzQ4MjEsIDAuNTU5MDYsIDEuMTAwNzEsIDEuNjQwMDQsIDIuOTAxMjksIDMuNjIxMDgiLCBcCi0gICAgICAgICAgIjAuMjA1MjU5LCAwLjI0MTM0NywgMC41NjYyMiwgMS4xMDYzNiwgMS42NDc5NSwgMi45MTAxOSwgMy42MjkwOSIsIFwKLSAgICAgICAgICAiMC4yMTM0NDksIDAuMjQ5NTI0LCAwLjU3Mzk3NywgMS4xMTU1MSwgMS42NTY1OSwgMi45MTc5MiwgMy42MzU3OCIsIFwKLSAgICAgICAgICAiMC4yMjIwNDYsIDAuMjU3OTg2LCAwLjU4MjM5OSwgMS4xMjQwNywgMS42NjU4MiwgMi45MjQ3NywgMy42NDQ1NCIsIFwKLSAgICAgICAgICAiMC4yMzA2NTYsIDAuMjY2NzcyLCAwLjU5MDc2NywgMS4xMzI3LCAxLjY3Mzg3LCAyLjkzMzc3LCAzLjY1MjUyIiwgXAotICAgICAgICAgICIwLjI0NTA3NCwgMC4yODA3NywgMC42MDQ1NDEsIDEuMTQ0NzYsIDEuNjg1MjMsIDIuOTQ3NSwgMy42NjYzNCIsIFwKLSAgICAgICAgICAiMC4yNTc3NjIsIDAuMjkzMzYsIDAuNjE2NjY1LCAxLjE1NjksIDEuNjk3MzksIDIuOTU3NDgsIDMuNjc3MTgiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuNDI2NzY5LCAwLjUwMjU0LCAxLjE4OTcsIDIuMzMyNTUsIDMuNDc3NDksIDYuMTQ2MjUsIDcuNjY5MDIiLCBcCi0gICAgICAgICAgIjAuNDI2MzQzLCAwLjUwMjQ3MSwgMS4xODg2NywgMi4zMzI2NCwgMy40NzU1MSwgNi4xNDM2NywgNy42NjU3OCIsIFwKLSAgICAgICAgICAiMC40MjYwNjYsIDAuNTAzMDY2LCAxLjE4OTkyLCAyLjMzMjExLCAzLjQ3NTkyLCA2LjE0NDUyLCA3LjY2NzQzIiwgXAotICAgICAgICAgICIwLjQyNjc2LCAwLjUwMjY0NywgMS4xODk4OCwgMi4zMzI4NywgMy40Nzc3OCwgNi4xNDMyMywgNy42Njc2NSIsIFwKLSAgICAgICAgICAiMC40MjgzODksIDAuNTAzNDQ0LCAxLjE4OTc5LCAyLjMzMzMsIDMuNDc3MzgsIDYuMTQ0ODEsIDcuNjY3NDMiLCBcCi0gICAgICAgICAgIjAuNDM0Nzk0LCAwLjUwODUzNCwgMS4xODg3NSwgMi4zMzI5MSwgMy40NzkyNiwgNi4xNDMyOCwgNy42NzE2NiIsIFwKLSAgICAgICAgICAiMC40NDE3MTQsIDAuNTE0Mzg3LCAxLjE4ODE1LCAyLjMzMTkxLCAzLjQ4MDMsIDYuMTQ5NTcsIDcuNjcwODMiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU1OSwgMC4wNjU1NTQsIDAuMTUyMzkxLCAwLjI5NzA5NCwgMC40NDE5MjIsIDAuNzc5NTU3LCAwLjk3MjYxNSIsIFwKLSAgICAgICAgICAiMC4wNjQyNTEsIDAuMDczOTA2LCAwLjE2MDc2NiwgMC4zMDU0NjcsIDAuNDUwMjA5LCAwLjc4NzkzNiwgMC45ODE0MjIiLCBcCi0gICAgICAgICAgIjAuMDc0NDEsIDAuMDg0MDExLCAwLjE3MDYsIDAuMzE1OTM3LCAwLjQ2MDM2LCAwLjc5ODA2NSwgMC45OTE3NSIsIFwKLSAgICAgICAgICAiMC4wODQ4MjIsIDAuMDk0NDIxLCAwLjE4MTI4OCwgMC4zMjYwNDMsIDAuNDcwODExLCAwLjgwNzk4MywgMS4wMDEyMyIsIFwKLSAgICAgICAgICAiMC4wOTUyNiwgMC4xMDQ5MjMsIDAuMTkxNjI5LCAwLjMzNjAwOCwgMC40ODEwMTcsIDAuODE4OTI3LCAxLjAxMTkxIiwgXAotICAgICAgICAgICIwLjEwOTcxNSwgMC4xMjA3NzgsIDAuMjA4MjI5LCAwLjM1MjYyMiwgMC40OTUyNTUsIDAuODM0OTE0LCAxLjAyNzY2IiwgXAotICAgICAgICAgICIwLjExOTkyMSwgMC4xMzI1NjIsIDAuMjIyNzcxLCAwLjM2NzE1OCwgMC41MTE4NTYsIDAuODQ5NDQ5LCAxLjA0MjQxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwODU1MywgMC4xMjg0MDYsIDAuMzA2ODg0LCAwLjYwNDU1NiwgMC45MDA0MDksIDEuNTkyODcsIDEuOTkyOTQiLCBcCi0gICAgICAgICAgIjAuMTA4NzE1LCAwLjEyODQzLCAwLjMwNjI4MywgMC42MDQ1NjUsIDAuOTAwMTIsIDEuNTk2MjMsIDEuOTg5MDUiLCBcCi0gICAgICAgICAgIjAuMTEzMzM4LCAwLjEzMjA1NSwgMC4zMDY0ODksIDAuNjAzNjU2LCAwLjg5OTk4MywgMS41OTI0OSwgMS45OTAxNiIsIFwKLSAgICAgICAgICAiMC4xMjAyODYsIDAuMTM4MjM4LCAwLjMwODUxLCAwLjYwMzY4LCAwLjkwMDYzMiwgMS41OTI2LCAxLjk5MDc5IiwgXAotICAgICAgICAgICIwLjEyODYwMiwgMC4xNDU5NDQsIDAuMzEyMDc5LCAwLjYwMzM3NCwgMC45MDAxMTgsIDEuNTkzMjYsIDEuOTkxMDUiLCBcCi0gICAgICAgICAgIjAuMTQzNzExLCAwLjE2MDA2NiwgMC4zMjA1MTIsIDAuNjA2Nzc0LCAwLjkwMDMxOSwgMS41OTI5MywgMS45OTI2OCIsIFwKLSAgICAgICAgICAiMC4xNTc4MDUsIDAuMTczODk3LCAwLjMyOTY0NiwgMC42MTE0MzMsIDAuOTAzMiwgMS41OTI4NiwgMS45ODg1MSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjYyOSwgMC4wMDI2MywgMC4wMDI2MzIsIDAuMDAyNjMyLCAwLjAwMjYzMiwgMC4wMDI2MzIsIDAuMDAyNjMxIiwgXAotICAgICAgICAgICIwLjAwMjYxOCwgMC4wMDI2MiwgMC4wMDI2MjcsIDAuMDAyNjMsIDAuMDAyNjMsIDAuMDAyNjMxLCAwLjAwMjYzMSIsIFwKLSAgICAgICAgICAiMC4wMDI2MDgsIDAuMDAyNjExLCAwLjAwMjYyMiwgMC4wMDI2MjYsIDAuMDAyNjI4LCAwLjAwMjYzLCAwLjAwMjYzIiwgXAotICAgICAgICAgICIwLjAwMjYwNCwgMC4wMDI2MDcsIDAuMDAyNjE4LCAwLjAwMjYyNCwgMC4wMDI2MjcsIDAuMDAyNjI5LCAwLjAwMjYyOSIsIFwKLSAgICAgICAgICAiMC4wMDI2MDUsIDAuMDAyNjA4LCAwLjAwMjYxOCwgMC4wMDI2MjQsIDAuMDAyNjI3LCAwLjAwMjYyOSwgMC4wMDI2MjkiLCBcCi0gICAgICAgICAgIjAuMDAyNjIxLCAwLjAwMjYyLCAwLjAwMjYyMywgMC4wMDI2MjUsIDAuMDAyNjI4LCAwLjAwMjYyOSwgMC4wMDI2MyIsIFwKLSAgICAgICAgICAiMC4wMDI2NDYsIDAuMDAyNjQzLCAwLjAwMjYzNCwgMC4wMDI2MzIsIDAuMDAyNjMxLCAwLjAwMjYzLCAwLjAwMjYzMSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDcwMiwgMC4wMDA3MDIsIDAuMDAwNzAyLCAwLjAwMDcwMSwgMC4wMDA3MDEsIDAuMDAwNzAxLCAwLjAwMDcwMSIsIFwKLSAgICAgICAgICAiMC4wMDA2ODMsIDAuMDAwNjgyLCAwLjAwMDY4MiwgMC4wMDA2ODIsIDAuMDAwNjgyLCAwLjAwMDY4MSwgMC4wMDA2ODEiLCBcCi0gICAgICAgICAgIjAuMDAwNjkxLCAwLjAwMDY5LCAwLjAwMDY4LCAwLjAwMDY4MSwgMC4wMDA2NzcsIDAuMDAwNjc2LCAwLjAwMDY3NSIsIFwKLSAgICAgICAgICAiMC4wMDA3MTIsIDAuMDAwNzA4LCAwLjAwMDY5NSwgMC4wMDA2ODcsIDAuMDAwNjg0LCAwLjAwMDY3NywgMC4wMDA2NzUiLCBcCi0gICAgICAgICAgIjAuMDAwNzQ0LCAwLjAwMDczNiwgMC4wMDA3MDUsIDAuMDAwNjkxLCAwLjAwMDY4NywgMC4wMDA2NzksIDAuMDAwNjc3IiwgXAotICAgICAgICAgICIwLjAwMDgyLCAwLjAwMDgwMiwgMC4wMDA3NSwgMC4wMDA3MTgsIDAuMDAwNjk4LCAwLjAwMDY5LCAwLjAwMDY4MyIsIFwKLSAgICAgICAgICAiMC4wMDA4NzQsIDAuMDAwODcxLCAwLjAwMDc3MSwgMC4wMDA3MjksIDAuMDAwNzEzLCAwLjAwMDY5OCwgMC4wMDA2OTQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDIzNywgMC4wMDIzNywgMC4wMDIzNzIsIDAuMDAyMzcyLCAwLjAwMjM3MiwgMC4wMDIzNzIsIDAuMDAyMzczIiwgXAotICAgICAgICAgICIwLjAwMjM1OSwgMC4wMDIzNjEsIDAuMDAyMzY3LCAwLjAwMjM3LCAwLjAwMjM3MSwgMC4wMDIzNzIsIDAuMDAyMzcyIiwgXAotICAgICAgICAgICIwLjAwMjM1LCAwLjAwMjM1MiwgMC4wMDIzNjMsIDAuMDAyMzY4LCAwLjAwMjM2OSwgMC4wMDIzNzEsIDAuMDAyMzcxIiwgXAotICAgICAgICAgICIwLjAwMjM0NiwgMC4wMDIzNDksIDAuMDAyMzYsIDAuMDAyMzY2LCAwLjAwMjM2OCwgMC4wMDIzNjksIDAuMDAyMzciLCBcCi0gICAgICAgICAgIjAuMDAyMzUsIDAuMDAyMzUxLCAwLjAwMjM1OSwgMC4wMDIzNjUsIDAuMDAyMzY3LCAwLjAwMjM3LCAwLjAwMjM2OSIsIFwKLSAgICAgICAgICAiMC4wMDIzNjgsIDAuMDAyMzY3LCAwLjAwMjM2NiwgMC4wMDIzNjksIDAuMDAyMzY4LCAwLjAwMjM3LCAwLjAwMjM3IiwgXAotICAgICAgICAgICIwLjAwMjM5NywgMC4wMDIzOTMsIDAuMDAyMzc5LCAwLjAwMjM3NCwgMC4wMDIzNzMsIDAuMDAyMzczLCAwLjAwMjM3MiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDQ5NiwgMC4wMDA0OTYsIDAuMDAwNDk2LCAwLjAwMDQ5NiwgMC4wMDA0OTYsIDAuMDAwNDk1LCAwLjAwMDQ5NSIsIFwKLSAgICAgICAgICAiMC4wMDA0ODQsIDAuMDAwNDg0LCAwLjAwMDQ4NSwgMC4wMDA0ODUsIDAuMDAwNDg1LCAwLjAwMDQ4NSwgMC4wMDA0ODUiLCBcCi0gICAgICAgICAgIjAuMDAwNDkzLCAwLjAwMDQ5MiwgMC4wMDA0ODUsIDAuMDAwNDg2LCAwLjAwMDQ4NCwgMC4wMDA0ODMsIDAuMDAwNDgzIiwgXAotICAgICAgICAgICIwLjAwMDUxMywgMC4wMDA1MSwgMC4wMDA0OTYsIDAuMDAwNDksIDAuMDAwNDg4LCAwLjAwMDQ4OCwgMC4wMDA0ODciLCBcCi0gICAgICAgICAgIjAuMDAwNTM1LCAwLjAwMDUyOCwgMC4wMDA1MTcsIDAuMDAwNTAzLCAwLjAwMDQ5NywgMC4wMDA0ODksIDAuMDAwNDg3IiwgXAotICAgICAgICAgICIwLjAwMDU5LCAwLjAwMDU3OSwgMC4wMDA1NTQsIDAuMDAwNTIzLCAwLjAwMDUxLCAwLjAwMDUsIDAuMDAwNDk0IiwgXAotICAgICAgICAgICIwLjAwMDY1MSwgMC4wMDA2MzMsIDAuMDAwNTk2LCAwLjAwMDU0NywgMC4wMDA1MjksIDAuMDAwNTEsIDAuMDAwNTA1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyMTA1LCAwLjAwMjEwNiwgMC4wMDIxMDgsIDAuMDAyMTA4LCAwLjAwMjEwOCwgMC4wMDIxMDgsIDAuMDAyMTA4IiwgXAotICAgICAgICAgICIwLjAwMjA5NCwgMC4wMDIwOTYsIDAuMDAyMTAzLCAwLjAwMjEwNSwgMC4wMDIxMDYsIDAuMDAyMTA3LCAwLjAwMjEwNyIsIFwKLSAgICAgICAgICAiMC4wMDIwODgsIDAuMDAyMDksIDAuMDAyMDk5LCAwLjAwMjEwMywgMC4wMDIxMDUsIDAuMDAyMTA2LCAwLjAwMjEwNiIsIFwKLSAgICAgICAgICAiMC4wMDIwODksIDAuMDAyMDksIDAuMDAyMDk4LCAwLjAwMjEwMiwgMC4wMDIxMDMsIDAuMDAyMTA2LCAwLjAwMjEwNiIsIFwKLSAgICAgICAgICAiMC4wMDIwOTgsIDAuMDAyMDk4LCAwLjAwMjEsIDAuMDAyMTAzLCAwLjAwMjEwNCwgMC4wMDIxMDYsIDAuMDAyMTA2IiwgXAotICAgICAgICAgICIwLjAwMjEyOCwgMC4wMDIxMjMsIDAuMDAyMTEyLCAwLjAwMjEwOSwgMC4wMDIxMDgsIDAuMDAyMTA4LCAwLjAwMjEwNyIsIFwKLSAgICAgICAgICAiMC4wMDIxNjYsIDAuMDAyMTU4LCAwLjAwMjEyOCwgMC4wMDIxMTcsIDAuMDAyMTE0LCAwLjAwMjExMSwgMC4wMDIxMSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDI2NywgMC4wMDAyNjcsIDAuMDAwMjY4LCAwLjAwMDI2OCwgMC4wMDAyNjgsIDAuMDAwMjY4LCAwLjAwMDI2OCIsIFwKLSAgICAgICAgICAiMC4wMDAyNzQsIDAuMDAwMjc0LCAwLjAwMDI3NywgMC4wMDAyNzgsIDAuMDAwMjc4LCAwLjAwMDI3OSwgMC4wMDAyNzkiLCBcCi0gICAgICAgICAgIjAuMDAwMjksIDAuMDAwMjg4LCAwLjAwMDI4MywgMC4wMDAyODEsIDAuMDAwMjgxLCAwLjAwMDI4MSwgMC4wMDAyODEiLCBcCi0gICAgICAgICAgIjAuMDAwMzA1LCAwLjAwMDMwMiwgMC4wMDAyOTEsIDAuMDAwMjg3LCAwLjAwMDI4NSwgMC4wMDAyODUsIDAuMDAwMjg0IiwgXAotICAgICAgICAgICIwLjAwMDMyNSwgMC4wMDAzMTgsIDAuMDAwMzEzLCAwLjAwMDI5NCwgMC4wMDAyOTQsIDAuMDAwMjg4LCAwLjAwMDI4NyIsIFwKLSAgICAgICAgICAiMC4wMDAzNzksIDAuMDAwMzY4LCAwLjAwMDM1LCAwLjAwMDMyLCAwLjAwMDMwOCwgMC4wMDAyOTgsIDAuMDAwMjk0IiwgXAotICAgICAgICAgICIwLjAwMDQ0NCwgMC4wMDA0MjIsIDAuMDAwMzkxLCAwLjAwMDM0NCwgMC4wMDAzMjcsIDAuMDAwMzA5LCAwLjAwMDMwNCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkQiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTg0MSwgMC4wMDE4NDEsIDAuMDAxODQ0LCAwLjAwMTg0NSwgMC4wMDE4NDUsIDAuMDAxODQ1LCAwLjAwMTg0NCIsIFwKLSAgICAgICAgICAiMC4wMDE4MywgMC4wMDE4MzEsIDAuMDAxODM5LCAwLjAwMTg0MiwgMC4wMDE4NDMsIDAuMDAxODQ0LCAwLjAwMTg0MSIsIFwKLSAgICAgICAgICAiMC4wMDE4MzYsIDAuMDAxODM2LCAwLjAwMTg0LCAwLjAwMTg0MiwgMC4wMDE4NDMsIDAuMDAxODQzLCAwLjAwMTg0MyIsIFwKLSAgICAgICAgICAiMC4wMDE4NTQsIDAuMDAxODUyLCAwLjAwMTg0NSwgMC4wMDE4NDQsIDAuMDAxODQ0LCAwLjAwMTg0NCwgMC4wMDE4NDQiLCBcCi0gICAgICAgICAgIjAuMDAxODgyLCAwLjAwMTg3NiwgMC4wMDE4NTYsIDAuMDAxODQ5LCAwLjAwMTg0NywgMC4wMDE4NDUsIDAuMDAxODQ1IiwgXAotICAgICAgICAgICIwLjAwMTk0MiwgMC4wMDE5MjksIDAuMDAxODgyLCAwLjAwMTg2MywgMC4wMDE4NTcsIDAuMDAxODUxLCAwLjAwMTg1IiwgXAotICAgICAgICAgICIwLjAwMjAwMiwgMC4wMDE5ODUsIDAuMDAxOTEzLCAwLjAwMTg4LCAwLjAwMTg2OCwgMC4wMDE4NTgsIDAuMDAxODU1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwMDM5LCAwLjAwMDAzOSwgMC4wMDAwNDIsIDAuMDAwMDQyLCAwLjAwMDA0MywgMC4wMDAwNDMsIDAuMDAwMDQzIiwgXAotICAgICAgICAgICIwLjAwMDA1MywgMC4wMDAwNTQsIDAuMDAwMDU5LCAwLjAwMDA2MSwgMC4wMDAwNjEsIDAuMDAwMDYyLCAwLjAwMDA2MiIsIFwKLSAgICAgICAgICAiMC4wMDAwNjksIDAuMDAwMDY4LCAwLjAwMDA2OCwgMC4wMDAwNjYsIDAuMDAwMDY4LCAwLjAwMDA2OSwgMC4wMDAwNyIsIFwKLSAgICAgICAgICAiMC4wMDAwOTIsIDAuMDAwMDg5LCAwLjAwMDA3NSwgMC4wMDAwNzIsIDAuMDAwMDcyLCAwLjAwMDA3MywgMC4wMDAwNzMiLCBcCi0gICAgICAgICAgIjAuMDAwMTIyLCAwLjAwMDExNiwgMC4wMDAwODgsIDAuMDAwMDgsIDAuMDAwMDc3LCAwLjAwMDA3MywgMC4wMDAwNzQiLCBcCi0gICAgICAgICAgIjAuMDAwMTgyLCAwLjAwMDE2OSwgMC4wMDAxMiwgMC4wMDAwOTksIDAuMDAwMDkxLCAwLjAwMDA4MiwgMC4wMDAwOCIsIFwKLSAgICAgICAgICAiMC4wMDAyNTMsIDAuMDAwMjMsIDAuMDAwMTUxLCAwLjAwMDExNywgMC4wMDAxMDQsIDAuMDAwMDksIDAuMDAwMDg3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBPQTIxWDIgKgotICogLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChPQTIxWDIpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4zMzM1NzY7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2MjI5Nzk7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjIyMTQ5OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDYyMjk3OTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyOTYsIDAuMDAwMjk2LCAwLjAwMDI5NiwgMC4wMDAyOTYsIDAuMDAwMjk2LCAwLjAwMDI5NiwgMC4wMDAyOTYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAzMDIsIDAuMDAwMjk4LCAwLjAwMDI5OCwgMC4wMDAyOTgsIDAuMDAwMjk4LCAwLjAwMDI5NywgMC4wMDAyOTciKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEExKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2MTk3NTY7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjE5NzU2OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDYxODY2MjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyOTYsIDAuMDAwMjk2LCAwLjAwMDI5NiwgMC4wMDAyOTYsIDAuMDAwMjk2LCAwLjAwMDI5NiwgMC4wMDAyOTYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAzMDIsIDAuMDAwMjk4LCAwLjAwMDI5NywgMC4wMDAyOTcsIDAuMDAwMjk3LCAwLjAwMDI5NywgMC4wMDAyOTciKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2NjMyODE7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjYzMjgxOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDY2MzI2NzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAzNTUsIDAuMDAwMzU2LCAwLjAwMDM1NSwgMC4wMDAzNTUsIDAuMDAwMzU1LCAwLjAwMDM1NSwgMC4wMDAzNTUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAzMzcsIDAuMDAwMzM4LCAwLjAwMDMzNywgMC4wMDAzMzcsIDAuMDAwMzM4LCAwLjAwMDMzOCwgMC4wMDAzMzgiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC42ODM3MzE7Ci0gICAgZnVuY3Rpb24gOiAiKChBMCtBMSkgQjApIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU4NTMyLCAwLjEzNzAwNSwgMC4xOTgzOTksIDAuMjc1MDg1LCAwLjM1MTc3MywgMC40MjgzNzksIDAuNTA1MDE1IiwgXAotICAgICAgICAgICIwLjA2NTMxNywgMC4xNDM3NjksIDAuMjA1MTYxLCAwLjI4MTg2MSwgMC4zNTg1MzIsIDAuNDM1MTcyLCAwLjUxMTc5MiIsIFwKLSAgICAgICAgICAiMC4wNzI3MzUsIDAuMTUxMTY1LCAwLjIxMjU1OSwgMC4yODkyNDUsIDAuMzY1OTMsIDAuNDQyNTM4LCAwLjUxOTIxNiIsIFwKLSAgICAgICAgICAiMC4wNzkyMjcsIDAuMTU3NzY5LCAwLjIxOTE1MywgMC4yOTU4MzEsIDAuMzcyNTExLCAwLjQ0OTEyNCwgMC41MjU3NjkiLCBcCi0gICAgICAgICAgIjAuMDg0Nzc5LCAwLjE2MzU1NiwgMC4yMjQ5MTcsIDAuMzAxNjA4LCAwLjM3ODI3MSwgMC40NTQ5NjcsIDAuNTMxNTU3IiwgXAotICAgICAgICAgICIwLjA5MjM5MiwgMC4xNzE1NDQsIDAuMjMyODk3LCAwLjMwOTU5NSwgMC4zODYyMTEsIDAuNDYyODk3LCAwLjUzOTQ3NyIsIFwKLSAgICAgICAgICAiMC4wOTgxNTIsIDAuMTc3NjMyLCAwLjIzODk5LCAwLjMxNTY0OCwgMC4zOTIyOTYsIDAuNDY4OTI4LCAwLjU0NTU4MiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDQyMjMsIDAuMjAxMDYxLCAwLjMyOTcyOSwgMC40OTA1OTcsIDAuNjUyNzU1LCAwLjgxNDQzMSwgMC45NzUyNTkiLCBcCi0gICAgICAgICAgIjAuMDQ0MTc0LCAwLjIwMDkxMywgMC4zMjk3MTcsIDAuNDkxMDkzLCAwLjY1MjcxMSwgMC44MTQzOTEsIDAuOTc2MTAzIiwgXAotICAgICAgICAgICIwLjA0NDQwNCwgMC4yMDA5MzIsIDAuMzI5NzE5LCAwLjQ5MTA4OCwgMC42NTI3MTYsIDAuODE0NDAyLCAwLjk3NjEzMSIsIFwKLSAgICAgICAgICAiMC4wNDUyMTgsIDAuMjAxMTY0LCAwLjMyOTM1MywgMC40OTA1NSwgMC42NTI2MTcsIDAuODE0Mjc4LCAwLjk3NjA1OCIsIFwKLSAgICAgICAgICAiMC4wNDYyMTksIDAuMjAxMzgxLCAwLjMyOTc0MiwgMC40OTEwMzksIDAuNjUxNjI0LCAwLjgxNDMyMSwgMC45NzYwMDkiLCBcCi0gICAgICAgICAgIjAuMDQ3Nzc4LCAwLjIwMTkwNCwgMC4zMjk5NywgMC40OTExMDksIDAuNjUyNTc5LCAwLjgxNDI3OSwgMC45NzUxODMiLCBcCi0gICAgICAgICAgIjAuMDQ4NzUyLCAwLjIwMjIzOCwgMC4zMjk5MTYsIDAuNDkwNzUsIDAuNjUyNTY5LCAwLjgxMzU2NiwgMC45NzU4OTgiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDYzMjU4LCAwLjE0MTc0MSwgMC4yMDI1MjEsIDAuMjc4NDA1LCAwLjM1NDI2OSwgMC40MzAwNzQsIDAuNTA1ODk1IiwgXAotICAgICAgICAgICIwLjA2OTA2NiwgMC4xNDc1MjgsIDAuMjA4MzMsIDAuMjg0MjE5LCAwLjM2MDA4NSwgMC40MzU5MDcsIDAuNTExNjg4IiwgXAotICAgICAgICAgICIwLjA3NTg3NiwgMC4xNTQzMSwgMC4yMTUxMDEsIDAuMjkwOTg1LCAwLjM2Njg1MSwgMC40NDI2NTgsIDAuNTE4NDc4IiwgXAotICAgICAgICAgICIwLjA4MjA2LCAwLjE2MDYwMSwgMC4yMjEzODEsIDAuMjk3MjY3LCAwLjM3MzEyNSwgMC40NDg5NzcsIDAuNTI0NzQ5IiwgXAotICAgICAgICAgICIwLjA4NzM2OSwgMC4xNjYwOTMsIDAuMjI2ODY3LCAwLjMwMjc0MywgMC4zNzg1OTEsIDAuNDU0NDc4LCAwLjUzMDIzNiIsIFwKLSAgICAgICAgICAiMC4wOTQ0NjIsIDAuMTczNTI0LCAwLjIzNDI5NiwgMC4zMTAyMTYsIDAuMzg2MDM5LCAwLjQ2MTg2MSwgMC41Mzc3MDQiLCBcCi0gICAgICAgICAgIjAuMTAwMDM0LCAwLjE3OTM3MSwgMC4yNDAxMjMsIDAuMzE2MDI1LCAwLjM5MTg1LCAwLjQ2NzY3LCAwLjU0MzQ3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0NDcwNywgMC4xOTY4ODgsIDAuMzIyMDMxLCAwLjQ3OTA5OCwgMC42MzY1NjgsIDAuNzk0MDEzLCAwLjk1MTY1NCIsIFwKLSAgICAgICAgICAiMC4wNDQ2MjcsIDAuMTk3MDQ1LCAwLjMyMjA0MywgMC40Nzg2MjcsIDAuNjM1NDkyLCAwLjc5NDEwNiwgMC45NTE1NzIiLCBcCi0gICAgICAgICAgIjAuMDQ0ODMzLCAwLjE5NjkzMywgMC4zMjIwNTMsIDAuNDc5MDkyLCAwLjYzNjU1NSwgMC43OTQwMzYsIDAuOTUxNjMxIiwgXAotICAgICAgICAgICIwLjA0NTQsIDAuMTk3MDA2LCAwLjMyMjA3LCAwLjQ3OTExOSwgMC42MzU3ODIsIDAuNzk0MTg3LCAwLjk1MTYwMSIsIFwKLSAgICAgICAgICAiMC4wNDYzMzUsIDAuMTk3MjczLCAwLjMyMTc0MywgMC40NzkxNjcsIDAuNjM1ODg3LCAwLjc5MjcwMiwgMC45NTE2NjciLCBcCi0gICAgICAgICAgIjAuMDQ3NjE1LCAwLjE5NzgzNSwgMC4zMjI0NTcsIDAuNDc5Mzk4LCAwLjYzNjU0MywgMC43OTI5MTcsIDAuOTUxNzQyIiwgXAotICAgICAgICAgICIwLjA0ODMzOSwgMC4xOTgxMDcsIDAuMzIyNjQ1LCAwLjQ3ODkxLCAwLjYzNjU2NiwgMC43OTMyMjEsIDAuOTUxNDgyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkExIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTQ2MjksIDAuMTMyODQ4LCAwLjE5NDE5NywgMC4yNzA4NDUsIDAuMzQ3NTE0LCAwLjQyNDM1NCwgMC41MDA4ODQiLCBcCi0gICAgICAgICAgIjAuMDYxMzEzLCAwLjEzOTQ4MSwgMC4yMDA4MzQsIDAuMjc3NDM1LCAwLjM1NDE2OCwgMC40MzA5NSwgMC41MDc1OTIiLCBcCi0gICAgICAgICAgIjAuMDY4NTQ0LCAwLjE0Njc3LCAwLjIwODExNCwgMC4yODQ4ODQsIDAuMzYxNDY3LCAwLjQzODM0OSwgMC41MTQ4NjkiLCBcCi0gICAgICAgICAgIjAuMDc0Nzc4LCAwLjE1MzA4NywgMC4yMTQ0MjcsIDAuMjkxMTI5LCAwLjM2Nzc0NCwgMC40NDQ1MzEsIDAuNTIxMjIzIiwgXAotICAgICAgICAgICIwLjA3OTg3NSwgMC4xNTg1MjcsIDAuMjE5ODQ2LCAwLjI5NjU1MiwgMC4zNzMxOTgsIDAuNDUwMTUsIDAuNTI2NTkyIiwgXAotICAgICAgICAgICIwLjA4Njg4OSwgMC4xNjU5OTIsIDAuMjI3MzAyLCAwLjMwMzkzOCwgMC4zODA3MjUsIDAuNDU3MjcsIDAuNTM0MzYxIiwgXAotICAgICAgICAgICIwLjA5MjA5NywgMC4xNzEzOTYsIDAuMjMyNzA5LCAwLjMwOTM0NywgMC4zODU5OTIsIDAuNDYyODA3LCAwLjUzOTQ3MiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDM1MjEsIDAuMjAwNDA5LCAwLjMyOTQ0NSwgMC40OTA5NTMsIDAuNjUyNzIsIDAuODEzMTkzLCAwLjk3NDUyNiIsIFwKLSAgICAgICAgICAiMC4wNDM1MDcsIDAuMjAwNjU5LCAwLjMyOTQwNiwgMC40OTAyNDcsIDAuNjUyMjI2LCAwLjgxMzE2MywgMC45NzUyMjMiLCBcCi0gICAgICAgICAgIjAuMDQzOTQxLCAwLjIwMDcwOCwgMC4zMjkzMSwgMC40OTAxNzcsIDAuNjUxODg3LCAwLjgxMzI0NCwgMC45NzUxNDQiLCBcCi0gICAgICAgICAgIjAuMDQ0Nzk2LCAwLjIwMDcxNSwgMC4zMjk1MDcsIDAuNDkwMjQyLCAwLjY1MjY0NiwgMC44MTMxNTcsIDAuOTc1MzYzIiwgXAotICAgICAgICAgICIwLjA0NTk3NCwgMC4yMDEwNjIsIDAuMzI5NDE0LCAwLjQ5MDE1MiwgMC42NTI2ODIsIDAuODEzMTgyLCAwLjk3NDI3NyIsIFwKLSAgICAgICAgICAiMC4wNDc0NjcsIDAuMjAxNjU5LCAwLjMyOTUxNywgMC40OTA0NTEsIDAuNjUxNzEyLCAwLjgxMzQwNCwgMC45NzQ5ODMiLCBcCi0gICAgICAgICAgIjAuMDQ4NzU0LCAwLjIwMTk2OSwgMC4zMjk2NTksIDAuNDkwNTYsIDAuNjUyNzU2LCAwLjgxMzI0NiwgMC45NzUwMTkiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDYwOTExLCAwLjEzOTM1NiwgMC4yMDAxNTIsIDAuMjc2MDI3LCAwLjM1MTg4OSwgMC40Mjc3MzIsIDAuNTAzNTAxIiwgXAotICAgICAgICAgICIwLjA2ODI3MywgMC4xNDY3NDEsIDAuMjA3NTM1LCAwLjI4MzQyNywgMC4zNTkyNjYsIDAuNDM1MTE1LCAwLjUxMDkyIiwgXAotICAgICAgICAgICIwLjA3NzU5MSwgMC4xNTYwMjIsIDAuMjE2ODE1LCAwLjI5MjcwNCwgMC4zNjg1NzIsIDAuNDQ0NDE1LCAwLjUyMDE5MSIsIFwKLSAgICAgICAgICAiMC4wODYwODYsIDAuMTY0NTgsIDAuMjI1MzczLCAwLjMwMTI0NywgMC4zNzcxMDQsIDAuNDUyOTUzLCAwLjUyODcyNiIsIFwKLSAgICAgICAgICAiMC4wOTMzOTIsIDAuMTcyMTA3LCAwLjIzMjg3MiwgMC4zMDg3OTUsIDAuMzg0NTk5LCAwLjQ2MDQ2NiwgMC41MzYyMzIiLCBcCi0gICAgICAgICAgIjAuMTAzNzYzLCAwLjE4MjU4OCwgMC4yNDMzMzUsIDAuMzE5MjAxLCAwLjM5NTA2LCAwLjQ3MDg1NCwgMC41NDY3MDQiLCBcCi0gICAgICAgICAgIjAuMTEwOTk2LCAwLjE5MDEzLCAwLjI1MDc4MiwgMC4zMjY2MiwgMC40MDI0NjksIDAuNDc4MzMzLCAwLjU1NDExOSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDQ3MjEsIDAuMTk2ODUxLCAwLjMyMjA0MywgMC40Nzg5NjUsIDAuNjM1ODI1LCAwLjc5NDE1NywgMC45NTEzOTMiLCBcCi0gICAgICAgICAgIjAuMDQ0NjIzLCAwLjE5NjgxMSwgMC4zMjIwMzcsIDAuNDc5MTE3LCAwLjYzNjM2OSwgMC43OTI4NDIsIDAuOTUxNjc1IiwgXAotICAgICAgICAgICIwLjA0NDg2OSwgMC4xOTY5NDUsIDAuMzIxOTk1LCAwLjQ3OTA4NiwgMC42MzU4NjgsIDAuNzk0MTYsIDAuOTUxNTkzIiwgXAotICAgICAgICAgICIwLjA0NTc5NywgMC4xOTcyMzIsIDAuMzIyMTM1LCAwLjQ3OTEyOCwgMC42MzU4MDEsIDAuNzk0MTcyLCAwLjk1MTU5NyIsIFwKLSAgICAgICAgICAiMC4wNDY3NiwgMC4xOTczNjYsIDAuMzIyMTk0LCAwLjQ3ODMzNywgMC42MzU5MDIsIDAuNzk0MTg0LCAwLjk1MDUzNiIsIFwKLSAgICAgICAgICAiMC4wNDgxMTgsIDAuMTk3ODgsIDAuMzIyMDIyLCAwLjQ3OTI3LCAwLjYzNjcwMSwgMC43OTMyNDEsIDAuOTUxNzMxIiwgXAotICAgICAgICAgICIwLjA0OTQyLCAwLjE5ODIxNSwgMC4zMjI4NDUsIDAuNDc5NDA2LCAwLjYzNjcsIDAuNzkyODg0LCAwLjk1MTU4NyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU0MTk2LCAwLjEzMjY1MSwgMC4xOTQwNTgsIDAuMjcwNjQxLCAwLjM0NzI2MiwgMC40MjQwMjIsIDAuNTAwNjU3IiwgXAotICAgICAgICAgICIwLjA2MTY2MSwgMC4xNDAxMjYsIDAuMjAxNTI0LCAwLjI3ODIyLCAwLjM1NDg5OCwgMC40MzE1MDcsIDAuNTA4MTQ4IiwgXAotICAgICAgICAgICIwLjA3MTE4MiwgMC4xNDk2MjEsIDAuMjExMDQzLCAwLjI4NzcwNywgMC4zNjQ0MTEsIDAuNDQxMDE2LCAwLjUxNzY0MSIsIFwKLSAgICAgICAgICAiMC4wNzk3MjIsIDAuMTU4Mjg3LCAwLjIxOTY3NSwgMC4yOTYzNDksIDAuMzczMDI2LCAwLjQ0OTY4OSwgMC41MjYzMTgiLCBcCi0gICAgICAgICAgIjAuMDg2OTM2LCAwLjE2NTY0NCwgMC4yMjcwMDUsIDAuMzAzNjgyLCAwLjM4MDM2NywgMC40NTY5OCwgMC41MzM2MTMiLCBcCi0gICAgICAgICAgIjAuMDk2NDQzLCAwLjE3NTM2NywgMC4yMzY3MDIsIDAuMzEzMzQyLCAwLjM5MDAyNiwgMC40NjY2NDcsIDAuNTQzMzA3IiwgXAotICAgICAgICAgICIwLjEwMzk0MywgMC4xODMxNTUsIDAuMjQ0NDUsIDAuMzIxMTA2LCAwLjM5Nzg1NywgMC40NzQ0MjUsIDAuNTUxMDM0Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0NDIyNywgMC4yMDA5MiwgMC4zMjk3MjEsIDAuNDkwOTYzLCAwLjY1MjcxNCwgMC44MTQzOTMsIDAuOTc1Mjc0IiwgXAotICAgICAgICAgICIwLjA0NDEyNiwgMC4yMDEwNDcsIDAuMzI5NjcsIDAuNDkwNTE5LCAwLjY1MjcwNiwgMC44MTQzNjEsIDAuOTc1ODc3IiwgXAotICAgICAgICAgICIwLjA0NDU1NSwgMC4yMDExMDksIDAuMzI5NzE5LCAwLjQ5MDY5MSwgMC42NTI3MzEsIDAuODE0MzY5LCAwLjk3NTIxNiIsIFwKLSAgICAgICAgICAiMC4wNDU0MTYsIDAuMjAxMjUyLCAwLjMyOTc2MywgMC40OTA1NDMsIDAuNjUxODgyLCAwLjgxNDMyOCwgMC45NzYwMzgiLCBcCi0gICAgICAgICAgIjAuMDQ2NjA2LCAwLjIwMTQ3OCwgMC4zMjk4MDYsIDAuNDkwNTgyLCAwLjY1MjY2NiwgMC44MTQzMzUsIDAuOTc2MDc1IiwgXAotICAgICAgICAgICIwLjA0ODMzOSwgMC4yMDE5NTQsIDAuMzMwMDYyLCAwLjQ5MTIzNSwgMC42NTI3NTksIDAuODE0MzU4LCAwLjk3NjA1IiwgXAotICAgICAgICAgICIwLjA0OTYwNSwgMC4yMDIzMDYsIDAuMzI5OTgsIDAuNDkwOTIxLCAwLjY1MjU3NSwgMC44MTQ1MjIsIDAuOTc1MTY1Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0MTcwOCwgMC4xMTgxMzcsIDAuMTc4NzYxLCAwLjI1NDU3LCAwLjMzMDM3NSwgMC40MDYyODksIDAuNDgyMTE1IiwgXAotICAgICAgICAgICIwLjA0OTcyNiwgMC4xMjYxODQsIDAuMTg2ODE2LCAwLjI2MjYyNywgMC4zMzg0NjQsIDAuNDE0NTM4LCAwLjQ5MDI0MiIsIFwKLSAgICAgICAgICAiMC4wNTg0MDQsIDAuMTM0ODYsIDAuMTk1NDk1LCAwLjI3MTM2NiwgMC4zNDczNDgsIDAuNDIzMjEsIDAuNDk4NzE1IiwgXAotICAgICAgICAgICIwLjA2NTAxNCwgMC4xNDE1OTgsIDAuMjAyMjI5LCAwLjI3ODA4NSwgMC4zNTM5ODMsIDAuNDI5Njk4LCAwLjUwNTc5NSIsIFwKLSAgICAgICAgICAiMC4wNzAyNDMsIDAuMTQ3MDA1LCAwLjIwNzY1MywgMC4yODM0MDEsIDAuMzU5MjYzLCAwLjQzNTA5MiwgMC41MTA4NTkiLCBcCi0gICAgICAgICAgIjAuMDc3MDI4LCAwLjE1NDA0MSwgMC4yMTQ2MzksIDAuMjkwNDE0LCAwLjM2NjE2NywgMC40NDE5NTIsIDAuNTE3OTY1IiwgXAotICAgICAgICAgICIwLjA4MTkzMiwgMC4xNTkyLCAwLjIxOTc2OCwgMC4yOTU1MDUsIDAuMzcxMjc5LCAwLjQ0NzA1MywgMC41MjI5MDUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM5NzgxLCAwLjE5NDI0NywgMC4zMTk5NCwgMC40NzczOTYsIDAuNjM1MDA0LCAwLjc5MjY5MywgMC45NDg4OTciLCBcCi0gICAgICAgICAgIjAuMDM5ODMxLCAwLjE5NDI0NiwgMC4zMTk5MzQsIDAuNDc3NDA4LCAwLjYzNDUxMiwgMC43OTE2MDcsIDAuOTQ4NzcxIiwgXAotICAgICAgICAgICIwLjA0MDc4NSwgMC4xOTQzMTYsIDAuMzE5OTcsIDAuNDc2NzAxLCAwLjYzNDMxNCwgMC43OTE3MDYsIDAuOTQ4ODQ2IiwgXAotICAgICAgICAgICIwLjA0MjE0MSwgMC4xOTQzNzUsIDAuMzIwMDEsIDAuNDc3NTU3LCAwLjYzNDA3LCAwLjc5MjY5OSwgMC45NDkxMjgiLCBcCi0gICAgICAgICAgIjAuMDQzNDA1LCAwLjE5NDY0MiwgMC4zMjAyMjgsIDAuNDc3NTg3LCAwLjYzNTAxMiwgMC43OTEzODgsIDAuOTUwMzExIiwgXAotICAgICAgICAgICIwLjA0NTM1NCwgMC4xOTUwMzgsIDAuMzIwMDk3LCAwLjQ3NzY2NywgMC42MzUyNzcsIDAuNzkyODY5LCAwLjk1MDI2IiwgXAotICAgICAgICAgICIwLjA0Njk0NywgMC4xOTUyOTYsIDAuMzIwMTg3LCAwLjQ3NzUxNSwgMC42MzQ1MDEsIDAuNzkyODc4LCAwLjk0OTI4NCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDMxNDcsIDAuMDAzMjA1LCAwLjAwMzIxMywgMC4wMDMyMTcsIDAuMDAzMjIsIDAuMDAzMjIxLCAwLjAwMzIyMiIsIFwKLSAgICAgICAgICAiMC4wMDMxMDYsIDAuMDAzMTc1LCAwLjAwMzE4MSwgMC4wMDMxODgsIDAuMDAzMTg5LCAwLjAwMzE5MywgMC4wMDMxOTQiLCBcCi0gICAgICAgICAgIjAuMDAzMTE5LCAwLjAwMzE3LCAwLjAwMzE3OSwgMC4wMDMxODUsIDAuMDAzMTg4LCAwLjAwMzE5LCAwLjAwMzE5MSIsIFwKLSAgICAgICAgICAiMC4wMDMxNDYsIDAuMDAzMTg2LCAwLjAwMzE5NywgMC4wMDMyMDMsIDAuMDAzMjA1LCAwLjAwMzIwOSwgMC4wMDMyMDkiLCBcCi0gICAgICAgICAgIjAuMDAzMTk5LCAwLjAwMzIyMiwgMC4wMDMyMzQsIDAuMDAzMjM5LCAwLjAwMzI0MiwgMC4wMDMyNDYsIDAuMDAzMjQ1IiwgXAotICAgICAgICAgICIwLjAwMzMyNSwgMC4wMDMzMTksIDAuMDAzMzI0LCAwLjAwMzMyOSwgMC4wMDMzMzIsIDAuMDAzMzM2LCAwLjAwMzMzNSIsIFwKLSAgICAgICAgICAiMC4wMDM0MiwgMC4wMDM0MDYsIDAuMDAzNDE1LCAwLjAwMzQyMSwgMC4wMDM0MjYsIDAuMDAzNDI3LCAwLjAwMzQyNyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDk3OSwgMC4wMDUwNTMsIDAuMDA1MDY2LCAwLjAwNTA3MywgMC4wMDUwNzYsIDAuMDA1MDc4LCAwLjAwNTA4IiwgXAotICAgICAgICAgICIwLjAwNDk0NSwgMC4wMDUwMywgMC4wMDUwNDUsIDAuMDA1MDUzLCAwLjAwNTA1OCwgMC4wMDUwNiwgMC4wMDUwNjIiLCBcCi0gICAgICAgICAgIjAuMDA0OTY3LCAwLjAwNTAzNywgMC4wMDUwNTIsIDAuMDA1MDYxLCAwLjAwNTA2NSwgMC4wMDUwNjgsIDAuMDA1MDciLCBcCi0gICAgICAgICAgIjAuMDA1MDE5LCAwLjAwNTA2OCwgMC4wMDUwODIsIDAuMDA1MDkxLCAwLjAwNTA5NSwgMC4wMDUwOTgsIDAuMDA1MTAxIiwgXAotICAgICAgICAgICIwLjAwNTA4NywgMC4wMDUxMTYsIDAuMDA1MTI4LCAwLjAwNTEzOCwgMC4wMDUxNDMsIDAuMDA1MTQ2LCAwLjAwNTE0OCIsIFwKLSAgICAgICAgICAiMC4wMDUyNDIsIDAuMDA1MjI1LCAwLjAwNTIzNCwgMC4wMDUyNDEsIDAuMDA1MjQ1LCAwLjAwNTI0OSwgMC4wMDUyNTEiLCBcCi0gICAgICAgICAgIjAuMDA1MzU1LCAwLjAwNTMyOCwgMC4wMDUzMzgsIDAuMDA1MzQ2LCAwLjAwNTM1MSwgMC4wMDUzNTQsIDAuMDA1MzU2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjkzOCwgMC4wMDI5OTcsIDAuMDAzMDA2LCAwLjAwMzAxLCAwLjAwMzAxMiwgMC4wMDMwMTMsIDAuMDAzMDE0IiwgXAotICAgICAgICAgICIwLjAwMjg4MywgMC4wMDI5NSwgMC4wMDI5NiwgMC4wMDI5NjUsIDAuMDAyOTY3LCAwLjAwMjk2OCwgMC4wMDI5NjkiLCBcCi0gICAgICAgICAgIjAuMDAyODY5LCAwLjAwMjkzNSwgMC4wMDI5NDUsIDAuMDAyOTUxLCAwLjAwMjk1NCwgMC4wMDI5NTQsIDAuMDAyOTU2IiwgXAotICAgICAgICAgICIwLjAwMjkwNywgMC4wMDI5NTQsIDAuMDAyOTYzLCAwLjAwMjk2OCwgMC4wMDI5NzIsIDAuMDAyOTc0LCAwLjAwMjk3NiIsIFwKLSAgICAgICAgICAiMC4wMDI5NywgMC4wMDI5OTIsIDAuMDAzMDAzLCAwLjAwMzAwNywgMC4wMDMwMDksIDAuMDAzMDExLCAwLjAwMzAxMiIsIFwKLSAgICAgICAgICAiMC4wMDMwMzksIDAuMDAzMDcyLCAwLjAwMzA4NSwgMC4wMDMwOSwgMC4wMDMwOTUsIDAuMDAzMDk1LCAwLjAwMzA5OCIsIFwKLSAgICAgICAgICAiMC4wMDMxODIsIDAuMDAzMTcyLCAwLjAwMzE3OSwgMC4wMDMxODYsIDAuMDAzMTg4LCAwLjAwMzE4OSwgMC4wMDMxOSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDcxNSwgMC4wMDQ3ODgsIDAuMDA0OCwgMC4wMDQ4MDcsIDAuMDA0ODEsIDAuMDA0ODEzLCAwLjAwNDgxNCIsIFwKLSAgICAgICAgICAiMC4wMDQ2ODQsIDAuMDA0NzY5LCAwLjAwNDc4NCwgMC4wMDQ3OTMsIDAuMDA0Nzk4LCAwLjAwNDgwMSwgMC4wMDQ4MDMiLCBcCi0gICAgICAgICAgIjAuMDA0NzMzLCAwLjAwNDgwMSwgMC4wMDQ4MTksIDAuMDA0ODI4LCAwLjAwNDgzNCwgMC4wMDQ4MzgsIDAuMDA0ODQiLCBcCi0gICAgICAgICAgIjAuMDA0ODI1LCAwLjAwNDg2MywgMC4wMDQ4NzksIDAuMDA0ODg5LCAwLjAwNDg5NSwgMC4wMDQ4OTgsIDAuMDA0OTAxIiwgXAotICAgICAgICAgICIwLjAwNDk0OCwgMC4wMDQ5NSwgMC4wMDQ5NjEsIDAuMDA0OTY4LCAwLjAwNDk3MywgMC4wMDQ5NzYsIDAuMDA0OTc5IiwgXAotICAgICAgICAgICIwLjAwNTExLCAwLjAwNTA2NiwgMC4wMDUwNzUsIDAuMDA1MDgxLCAwLjAwNTA4NywgMC4wMDUwODksIDAuMDA1MDkxIiwgXAotICAgICAgICAgICIwLjAwNTMxMiwgMC4wMDUyMDksIDAuMDA1MjExLCAwLjAwNTIxNCwgMC4wMDUyMTgsIDAuMDA1MjIsIDAuMDA1MjIyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzE1OCwgMC4wMDMyMTksIDAuMDAzMjI3LCAwLjAwMzIzMiwgMC4wMDMyMzQsIDAuMDAzMjM2LCAwLjAwMzIzNSIsIFwKLSAgICAgICAgICAiMC4wMDMxMzQsIDAuMDAzMjAyLCAwLjAwMzIxMiwgMC4wMDMyMTgsIDAuMDAzMjIxLCAwLjAwMzIyNCwgMC4wMDMyMjYiLCBcCi0gICAgICAgICAgIjAuMDAzMTk2LCAwLjAwMzI0NSwgMC4wMDMyNTcsIDAuMDAzMjY1LCAwLjAwMzI2OSwgMC4wMDMyNzEsIDAuMDAzMjczIiwgXAotICAgICAgICAgICIwLjAwMzI5NCwgMC4wMDMzMjksIDAuMDAzMzQsIDAuMDAzMzQ4LCAwLjAwMzM1MywgMC4wMDMzNTgsIDAuMDAzMzU4IiwgXAotICAgICAgICAgICIwLjAwMzM5NiwgMC4wMDMzOTUsIDAuMDAzNDA1LCAwLjAwMzQxMiwgMC4wMDM0MTYsIDAuMDAzNDIsIDAuMDAzNDE5IiwgXAotICAgICAgICAgICIwLjAwMzYxNywgMC4wMDM1NjIsIDAuMDAzNTY2LCAwLjAwMzU3LCAwLjAwMzU3MiwgMC4wMDM1NzUsIDAuMDAzNTc2IiwgXAotICAgICAgICAgICIwLjAwMzc1NywgMC4wMDM3MDksIDAuMDAzNzE2LCAwLjAwMzcyMiwgMC4wMDM3MjYsIDAuMDAzNzI4LCAwLjAwMzcyOCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDEzOSwgMC4wMDQyMDEsIDAuMDA0MjA4LCAwLjAwNDIxMiwgMC4wMDQyMTMsIDAuMDA0MjE1LCAwLjAwNDIxNSIsIFwKLSAgICAgICAgICAiMC4wMDQxMTIsIDAuMDA0MTg4LCAwLjAwNDE5OCwgMC4wMDQyMDQsIDAuMDA0MjA3LCAwLjAwNDIwOCwgMC4wMDQyMSIsIFwKLSAgICAgICAgICAiMC4wMDQxNzcsIDAuMDA0MjM4LCAwLjAwNDI0NywgMC4wMDQyNTMsIDAuMDA0MjU4LCAwLjAwNDI1OCwgMC4wMDQyNiIsIFwKLSAgICAgICAgICAiMC4wMDQyMzUsIDAuMDA0Mjk3LCAwLjAwNDMxLCAwLjAwNDMxOSwgMC4wMDQzMjMsIDAuMDA0MzI2LCAwLjAwNDMyOCIsIFwKLSAgICAgICAgICAiMC4wMDQzMzUsIDAuMDA0MzgxLCAwLjAwNDM5MiwgMC4wMDQ0MDQsIDAuMDA0NDA5LCAwLjAwNDQxMiwgMC4wMDQ0MTQiLCBcCi0gICAgICAgICAgIjAuMDA0NTMsIDAuMDA0NTM0LCAwLjAwNDU1NywgMC4wMDQ1NjUsIDAuMDA0NTU5LCAwLjAwNDU2MywgMC4wMDQ1NzQiLCBcCi0gICAgICAgICAgIjAuMDA0NzExLCAwLjAwNDcwMywgMC4wMDQ3MTIsIDAuMDA0NzE5LCAwLjAwNDcyMywgMC4wMDQ3MjYsIDAuMDA0NzI4Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBPQTIxWEwgKgotICogLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChPQTIxWEwpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4yMTAwODU7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2NTA0NzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2NDk2NjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2NTA0NzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyOTYsIDAuMDAwMjk2LCAwLjAwMDI5NiwgMC4wMDAyOTYsIDAuMDAwMjk2LCAwLjAwMDI5NiwgMC4wMDAyOTYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAzMDIsIDAuMDAwMjk4LCAwLjAwMDI5OCwgMC4wMDAyOTgsIDAuMDAwMjk4LCAwLjAwMDI5NywgMC4wMDAyOTciKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEExKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2ODk4OTI7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjg5ODkyOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDY4ODYzNjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyOTYsIDAuMDAwMjk3LCAwLjAwMDI5NiwgMC4wMDAyOTYsIDAuMDAwMjk2LCAwLjAwMDI5NiwgMC4wMDAyOTYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAzMDIsIDAuMDAwMjk4LCAwLjAwMDI5NywgMC4wMDAyOTcsIDAuMDAwMjk3LCAwLjAwMDI5NywgMC4wMDAyOTciKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2ODYzNTM7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjg2MzA5OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDY4NjM1MzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAzNDIsIDAuMDAwMzQzLCAwLjAwMDM0MywgMC4wMDAzNDIsIDAuMDAwMzQzLCAwLjAwMDM0MiwgMC4wMDAzNDIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAzMzcsIDAuMDAwMzM4LCAwLjAwMDMzOCwgMC4wMDAzMzgsIDAuMDAwMzM4LCAwLjAwMDMzOCwgMC4wMDAzMzgiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4xOTk2MDg7Ci0gICAgZnVuY3Rpb24gOiAiKChBMCtBMSkgQjApIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg0MDM2LCAwLjA5NDU4MSwgMC4xODkzOTgsIDAuMzQ3MjM1LCAwLjUwNTE3MSwgMC44NzMzMTQsIDEuMDgzNzkiLCBcCi0gICAgICAgICAgIjAuMDkwNjY1LCAwLjEwMTIxNSwgMC4xOTYwMzIsIDAuMzUzODY4LCAwLjUxMTcwMiwgMC44Nzk5MjMsIDEuMDkwMzgiLCBcCi0gICAgICAgICAgIjAuMDk3NTI5LCAwLjEwODA3MSwgMC4yMDI4ODMsIDAuMzYwNzUxLCAwLjUxODU2MSwgMC44ODY3OTMsIDEuMDk3NTIiLCBcCi0gICAgICAgICAgIjAuMTAyOTYyLCAwLjExMzUwMiwgMC4yMDgzMDMsIDAuMzY2MTY2LCAwLjUyMzk3OCwgMC44OTIyMTQsIDEuMTAyNjMiLCBcCi0gICAgICAgICAgIjAuMTA3NDA2LCAwLjExNzk1OSwgMC4yMTI3NjEsIDAuMzcwNjQsIDAuNTI4NTEyLCAwLjg5NjY4NiwgMS4xMDcxNyIsIFwKLSAgICAgICAgICAiMC4xMTM1MDIsIDAuMTI0MDQ1LCAwLjIxODg1NCwgMC4zNzY3MDYsIDAuNTM0NTY1LCAwLjkwMjg4LCAxLjExMzI0IiwgXAotICAgICAgICAgICIwLjExODA1MiwgMC4xMjg2MDIsIDAuMjIzNDIxLCAwLjM4MTI4LCAwLjUzOTEwNSwgMC45MDczMzcsIDEuMTE3ODUiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTE3NDUsIDAuMTM5NDgsIDAuMzM3ODM4LCAwLjY3MDMyNiwgMS4wMDIwMiwgMS43Nzc3NSwgMi4yMTkxOSIsIFwKLSAgICAgICAgICAiMC4xMTc0OSwgMC4xMzk0NzcsIDAuMzM4MDU4LCAwLjY3MDMwNiwgMS4wMDI2NywgMS43NzkzNCwgMi4yMjA2OCIsIFwKLSAgICAgICAgICAiMC4xMTc2MTIsIDAuMTM5NDgzLCAwLjMzODQwNywgMC42NzA4MTcsIDEuMDAyNTksIDEuNzc5MzMsIDIuMjE5NjUiLCBcCi0gICAgICAgICAgIjAuMTE3OTQ4LCAwLjEzOTc1MywgMC4zMzgxNDcsIDAuNjcwNzkzLCAxLjAwMzI5LCAxLjc3NzU4LCAyLjIyMDY1IiwgXAotICAgICAgICAgICIwLjExODI0OCwgMC4xNDAwNzgsIDAuMzM4NDI0LCAwLjY3MDc2MiwgMS4wMDMyOCwgMS43NzkyMSwgMi4yMTk0OCIsIFwKLSAgICAgICAgICAiMC4xMTg4MzEsIDAuMTQwNDAxLCAwLjMzODMwMiwgMC42Njk4NTMsIDEuMDAzMTgsIDEuNzc5MDksIDIuMjIyNDUiLCBcCi0gICAgICAgICAgIjAuMTE5NTUzLCAwLjE0MTA5LCAwLjMzODQ4NCwgMC42NzA0NSwgMS4wMDIzNiwgMS43Nzc5MSwgMi4yMTk5MSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODI3OCwgMC4wOTI0ODgsIDAuMTc5NTQzLCAwLjMyNDM5LCAwLjQ2OTEyMiwgMC44MDY3OTEsIDAuOTk5NzcyIiwgXAotICAgICAgICAgICIwLjA4ODQ4NiwgMC4wOTgxOTgsIDAuMTg1MjYsIDAuMzMwMTAzLCAwLjQ3NDg3NywgMC44MTI2NTMsIDEuMDA1NDQiLCBcCi0gICAgICAgICAgIjAuMDk0NzUxLCAwLjEwNDQ2OSwgMC4xOTE1MjQsIDAuMzM2MzY1LCAwLjQ4MTEzLCAwLjgxODc2MywgMS4wMTE3MSIsIFwKLSAgICAgICAgICAiMC4wOTk5MzYsIDAuMTA5NjQ2LCAwLjE5NjcyOSwgMC4zNDE1NTUsIDAuNDg2MzI2LCAwLjgyMzkzNSwgMS4wMTY4NyIsIFwKLSAgICAgICAgICAiMC4xMDQyMzMsIDAuMTEzOTcxLCAwLjIwMTA0MywgMC4zNDU5MTksIDAuNDkwNjM4LCAwLjgyODI5MSwgMS4wMjEyMyIsIFwKLSAgICAgICAgICAiMC4xMTAwMiwgMC4xMTk3NjQsIDAuMjA2OSwgMC4zNTE3ODEsIDAuNDk2NTYsIDAuODM0MjAxLCAxLjAyNzIyIiwgXAotICAgICAgICAgICIwLjExNDI4OCwgMC4xMjQwMzUsIDAuMjExMTc4LCAwLjM1NjA0NiwgMC41MDA3OCwgMC44Mzg0NCwgMS4wMzE0NCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDYxNjMsIDAuMTI1NzE1LCAwLjMwMzI1NSwgMC42MDA1NDksIDAuODk3NzY4LCAxLjU4OTg1LCAxLjk4NDg1IiwgXAotICAgICAgICAgICIwLjEwNjE3MiwgMC4xMjU2OTgsIDAuMzAzMjM5LCAwLjYwMDUwNSwgMC44OTc5ODksIDEuNTg5MTMsIDEuOTg4MTkiLCBcCi0gICAgICAgICAgIjAuMTA2MzU5LCAwLjEyNTgxNywgMC4zMDMyNzgsIDAuNjAwNTA3LCAwLjg5Nzk1MSwgMS41OTE3OSwgMS45ODgyNCIsIFwKLSAgICAgICAgICAiMC4xMDY3MTcsIDAuMTI2MSwgMC4zMDI4NCwgMC42MDA1NzQsIDAuODk4MDIsIDEuNTkxNzcsIDEuOTg4MzUiLCBcCi0gICAgICAgICAgIjAuMTA3MDAxLCAwLjEyNjQzNCwgMC4zMDM0MzgsIDAuNjAwNDQ5LCAwLjg5Nzc3NiwgMS41OTE1NywgMS45ODgxNiIsIFwKLSAgICAgICAgICAiMC4xMDc1MzQsIDAuMTI2NzIyLCAwLjMwMzU3OSwgMC42MDA0MDgsIDAuODk2MzYyLCAxLjU5MTcyLCAxLjk4ODQ2IiwgXAotICAgICAgICAgICIwLjEwODMxNCwgMC4xMjc0NzcsIDAuMzAzNDU5LCAwLjYwMDQ1MywgMC44OTY5NDksIDEuNTg5ODgsIDEuOTg4NDEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTEiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4MDMyNCwgMC4wOTA4NTgsIDAuMTg1NTk5LCAwLjM0MzQ4OSwgMC41MDE0NTksIDAuODY5OTU0LCAxLjA4MDE5IiwgXAotICAgICAgICAgICIwLjA4Njc3OSwgMC4wOTczMTYsIDAuMTkyMDYxLCAwLjM1MDE2OSwgMC41MDc4ODgsIDAuODc2MjQ5LCAxLjA4NzcyIiwgXAotICAgICAgICAgICIwLjA5MzIyMSwgMC4xMDM3NTIsIDAuMTk4NDg3LCAwLjM1NjU4MSwgMC41MTQzNjEsIDAuODgyNTgyLCAxLjA5MzMyIiwgXAotICAgICAgICAgICIwLjA5ODA5MiwgMC4xMDg2MjYsIDAuMjAzNDEsIDAuMzYxMjczLCAwLjUxOTQ1OSwgMC44ODc5NjcsIDEuMDk4MDUiLCBcCi0gICAgICAgICAgIjAuMTAyMTcxLCAwLjExMjcxLCAwLjIwNzQyNSwgMC4zNjU0MzksIDAuNTIzNDI0LCAwLjg5MTc1NSwgMS4xMDIyMiIsIFwKLSAgICAgICAgICAiMC4xMDcyNzUsIDAuMTE3ODA5LCAwLjIxMjU4LCAwLjM3MDQyNCwgMC41MjgzNjgsIDAuODk3MDYzLCAxLjEwNzY4IiwgXAotICAgICAgICAgICIwLjExMTI0NywgMC4xMjE3OTEsIDAuMjE2NTQ0LCAwLjM3NDM4MywgMC41MzIzNDEsIDAuOTAxMDc4LCAxLjExMTY2Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExNzEwNiwgMC4xMzkwMTcsIDAuMzM4Mzg2LCAwLjY3MDEyNywgMS4wMDIwOCwgMS43NzczNiwgMi4yMjI1MSIsIFwKLSAgICAgICAgICAiMC4xMTcxMDgsIDAuMTM5MDI1LCAwLjMzODMzNywgMC42Njk5NDUsIDEuMDAzMjIsIDEuNzc2MjcsIDIuMjE5NzEiLCBcCi0gICAgICAgICAgIjAuMTE3MzI2LCAwLjEzOTIwNywgMC4zMzc4NzIsIDAuNjY5OTg3LCAxLjAwMTU5LCAxLjc3NjcyLCAyLjIyMDcxIiwgXAotICAgICAgICAgICIwLjExNzczMywgMC4xMzk1MDIsIDAuMzM3NzQ0LCAwLjY2OTc4OSwgMS4wMDIwOCwgMS43NzcyMSwgMi4yMjI4IiwgXAotICAgICAgICAgICIwLjExODA4NCwgMC4xMzk4NjYsIDAuMzM4NDAyLCAwLjY3MDA0NywgMS4wMDE5OCwgMS43Nzc3NCwgMi4yMTg4NSIsIFwKLSAgICAgICAgICAiMC4xMTg4NzQsIDAuMTQwMjg5LCAwLjMzODM4NywgMC42NzAwNjYsIDEuMDAxODgsIDEuNzc3MTUsIDIuMjIwMDgiLCBcCi0gICAgICAgICAgIjAuMTE5NTQ2LCAwLjE0MDk5NSwgMC4zMzgyODgsIDAuNjcwMjA5LCAxLjAwMTc5LCAxLjc3NzIsIDIuMjE5NjkiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDgwNTcsIDAuMDkwMjgsIDAuMTc3MzM4LCAwLjMyMjE4NCwgMC40NjY5MTYsIDAuODA0NTg1LCAwLjk5NzUzIiwgXAotICAgICAgICAgICIwLjA4NzksIDAuMDk3NjEyLCAwLjE4NDY3NywgMC4zMjk1MjIsIDAuNDc0Mjk2LCAwLjgxMjA3NSwgMS4wMDQ4NCIsIFwKLSAgICAgICAgICAiMC4wOTY1NjIsIDAuMTA2MjcsIDAuMTkzMzI3LCAwLjMzODE2OCwgMC40ODI5NTIsIDAuODIwNTk2LCAxLjAxMzUxIiwgXAotICAgICAgICAgICIwLjEwMzU3NiwgMC4xMTMyNzksIDAuMjAwMzM4LCAwLjM0NTIwMiwgMC40ODk5MTIsIDAuODI3NTkxLCAxLjAyMDU4IiwgXAotICAgICAgICAgICIwLjEwOTIwNSwgMC4xMTg5MTMsIDAuMjA1OTY5LCAwLjM1MDc4LCAwLjQ5NTU0NiwgMC44MzMyMDIsIDEuMDI2MTMiLCBcCi0gICAgICAgICAgIjAuMTE2NjA4LCAwLjEyNjQyNCwgMC4yMTM1NzUsIDAuMzU4NDA5LCAwLjUwMzE1NCwgMC44NDA4MjUsIDEuMDMzNzMiLCBcCi0gICAgICAgICAgIjAuMTIyNTY0LCAwLjEzMjMyMSwgMC4yMTk1NzksIDAuMzY0NDExLCAwLjUwOTE3LCAwLjg0Njg4MywgMS4wMzk4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwNjIxMywgMC4xMjU3MTQsIDAuMzAzMjU1LCAwLjYwMDU0NiwgMC44OTc3NjEsIDEuNTkxNTYsIDEuOTg4NDkiLCBcCi0gICAgICAgICAgIjAuMTA2MTYzLCAwLjEyNTcwNywgMC4zMDMyNCwgMC42MDA1MDMsIDAuODk3OTgyLCAxLjU4OTI2LCAxLjk4ODMzIiwgXAotICAgICAgICAgICIwLjEwNjM4MiwgMC4xMjU5NDEsIDAuMzAzMjgyLCAwLjYwMDUxOCwgMC44OTgwMTIsIDEuNTkwMDIsIDEuOTg4MTUiLCBcCi0gICAgICAgICAgIjAuMTA2NzA0LCAwLjEyNjE2MywgMC4zMDMzNjgsIDAuNjAwNTY4LCAwLjg5NzgzMSwgMS41ODk4NiwgMS45ODg2NyIsIFwKLSAgICAgICAgICAiMC4xMDcxMjcsIDAuMTI2NTQ0LCAwLjMwMzU5NiwgMC42MDA0ODIsIDAuODk3OTIzLCAxLjU5MTY0LCAxLjk4ODE3IiwgXAotICAgICAgICAgICIwLjEwNzY1MSwgMC4xMjY4ODYsIDAuMzAzNDMxLCAwLjU5OTg2NCwgMC44OTc3NzksIDEuNTkxODksIDEuOTg4MzQiLCBcCi0gICAgICAgICAgIjAuMTA4MTYzLCAwLjEyNzMzNCwgMC4zMDM1NzUsIDAuNjAwMDI5LCAwLjg5NzkxNywgMS41ODkzMiwgMS45ODgyNiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc5NzEyLCAwLjA5MDI1OCwgMC4xODUwNzUsIDAuMzQyOTEsIDAuNTAwODYzLCAwLjg2ODk5MSwgMS4wNzk0NCIsIFwKLSAgICAgICAgICAiMC4wODcxNTYsIDAuMDk3NzA2LCAwLjE5MjUyOCwgMC4zNTAzNjYsIDAuNTA4MTk3LCAwLjg3NjQ2NywgMS4wODY4OCIsIFwKLSAgICAgICAgICAiMC4wOTU3ODQsIDAuMTA2MzQsIDAuMjAxMTQsIDAuMzU4OTkzLCAwLjUxNjg3NSwgMC44ODUwNzksIDEuMDk1NTQiLCBcCi0gICAgICAgICAgIjAuMTAyMjg5LCAwLjExMjgyNSwgMC4yMDc2NiwgMC4zNjU0NzMsIDAuNTIzMzAzLCAwLjg5MTUwNCwgMS4xMDIxOSIsIFwKLSAgICAgICAgICAiMC4xMDc5NzUsIDAuMTE4NTQyLCAwLjIxMzMyMSwgMC4zNzEyMjUsIDAuNTI5MDA4LCAwLjg5NzI4NiwgMS4xMDc3NCIsIFwKLSAgICAgICAgICAiMC4xMTUzMDIsIDAuMTI1OTA1LCAwLjIyMDc0OSwgMC4zNzg2MzQsIDAuNTM2NTM3LCAwLjkwNDcwOSwgMS4xMTUxNSIsIFwKLSAgICAgICAgICAiMC4xMjEwMTYsIDAuMTMxNTc5LCAwLjIyNjQ0NCwgMC4zODQzMDMsIDAuNTQyMTUyLCAwLjkxMDM2OSwgMS4xMjA4NCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTc0NSwgMC4xMzk0NzksIDAuMzM4MzgxLCAwLjY3MDM0OSwgMS4wMDI0OSwgMS43Nzg5NywgMi4yMTk2NyIsIFwKLSAgICAgICAgICAiMC4xMTc0NDgsIDAuMTM5NDY5LCAwLjMzODAyOCwgMC42NzAyOTMsIDEuMDAyNjMsIDEuNzc5MzQsIDIuMjIwODMiLCBcCi0gICAgICAgICAgIjAuMTE3NjMxLCAwLjEzOTYwOCwgMC4zMzgyMDgsIDAuNjcwMzUyLCAxLjAwMzMxLCAxLjc3NzY3LCAyLjIyMDk3IiwgXAotICAgICAgICAgICIwLjExNzk3NywgMC4xMzk3ODYsIDAuMzM3OTkzLCAwLjY3MDg0NCwgMS4wMDI1OCwgMS43NzksIDIuMjIyNjUiLCBcCi0gICAgICAgICAgIjAuMTE4MjI0LCAwLjE0MDA0MywgMC4zMzg1ODcsIDAuNjcwODU5LCAxLjAwMzIxLCAxLjc3NzQ2LCAyLjIyMDk3IiwgXAotICAgICAgICAgICIwLjExODY3OCwgMC4xNDAzNDIsIDAuMzM4NjY4LCAwLjY3MTA4NywgMS4wMDM2NCwgMS43Nzc2NiwgMi4yMTk4MSIsIFwKLSAgICAgICAgICAiMC4xMTkyMjQsIDAuMTQwNzk2LCAwLjMzODM2OCwgMC42NzEwMDMsIDEuMDAzNTUsIDEuNzc5MjMsIDIuMjIyNSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjY3NzcsIDAuMDc2NDIyLCAwLjE2MzI2MywgMC4zMDgxMzEsIDAuNDUyODk2LCAwLjc5MDQzMiwgMC45ODM5MjgiLCBcCi0gICAgICAgICAgIjAuMDc0MjcyLCAwLjA4MzkyMywgMC4xNzA3NzgsIDAuMzE1NjU3LCAwLjQ2MDI1MywgMC43OTc5MzEsIDAuOTkxNDYyIiwgXAotICAgICAgICAgICIwLjA4MDg2NywgMC4wOTA1MDgsIDAuMTc3MzY2LCAwLjMyMjEwOCwgMC40NjY5NywgMC44MDUwMTcsIDAuOTk3NTIyIiwgXAotICAgICAgICAgICIwLjA4NTcxMiwgMC4wOTUzNDgsIDAuMTgyMTc0LCAwLjMyNzA4MywgMC40NzE4NDMsIDAuODA5NDIxLCAxLjAwMjk5IiwgXAotICAgICAgICAgICIwLjA4OTQ5NSwgMC4wOTkxNTMsIDAuMTg1OTYzLCAwLjMzMDY3OSwgMC40NzU3MSwgMC44MTMyNjUsIDEuMDA2MDQiLCBcCi0gICAgICAgICAgIjAuMDk0NDc4LCAwLjEwNDEzNSwgMC4xOTA5NzYsIDAuMzM1NjcyLCAwLjQ4MDYwMywgMC44MTgxNTgsIDEuMDExNiIsIFwKLSAgICAgICAgICAiMC4wOTgwNDksIDAuMTA3NzI2LCAwLjE5NDU4NywgMC4zMzkxNywgMC40ODQwMDMsIDAuODIxOTg3LCAxLjAxNDc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwNDU2NSwgMC4xMjM5OTYsIDAuMzAyNDE0LCAwLjU5ODc5NywgMC44OTcyNDIsIDEuNTkxNywgMS45ODU1MiIsIFwKLSAgICAgICAgICAiMC4xMDQ1OCwgMC4xMjQxMTMsIDAuMzAxODMxLCAwLjU5ODgxNCwgMC44OTYxNjcsIDEuNTg5MjgsIDEuOTg3OTgiLCBcCi0gICAgICAgICAgIjAuMTA0ODM1LCAwLjEyNDUyNywgMC4zMDIyODYsIDAuNTk5Nzc0LCAwLjg5NzI0LCAxLjU5MTUxLCAxLjk4ODE5IiwgXAotICAgICAgICAgICIwLjEwNTI4NywgMC4xMjQ3MzMsIDAuMzAyNTE5LCAwLjU5OTc1NCwgMC44OTU3OTYsIDEuNTkxNTEsIDEuOTg1NTciLCBcCi0gICAgICAgICAgIjAuMTA1NjAyLCAwLjEyNDk5OSwgMC4zMDI1MTEsIDAuNTk5OTc2LCAwLjg5NTg3MiwgMS41ODg5LCAxLjk4ODA5IiwgXAotICAgICAgICAgICIwLjEwNjQ1LCAwLjEyNTUwOSwgMC4zMDI0OTksIDAuNjAwMDE3LCAwLjg5NzU0MSwgMS41OTEzNSwgMS45ODY0NCIsIFwKLSAgICAgICAgICAiMC4xMDcwNDIsIDAuMTI2MzU0LCAwLjMwMjIzOCwgMC41OTk4OSwgMC44OTc1MiwgMS41OTEyOSwgMS45ODQ5NCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDEzOTMsIDAuMDAxMzk0LCAwLjAwMTQsIDAuMDAxNDAyLCAwLjAwMTQwMSwgMC4wMDE0MDIsIDAuMDAxNDAxIiwgXAotICAgICAgICAgICIwLjAwMTM2LCAwLjAwMTM2MiwgMC4wMDEzNjgsIDAuMDAxMzY5LCAwLjAwMTM3LCAwLjAwMTM3MSwgMC4wMDEzNyIsIFwKLSAgICAgICAgICAiMC4wMDEzNiwgMC4wMDEzNjIsIDAuMDAxMzY4LCAwLjAwMTM3LCAwLjAwMTM3MSwgMC4wMDEzNzIsIDAuMDAxMzcyIiwgXAotICAgICAgICAgICIwLjAwMTM4NywgMC4wMDEzODksIDAuMDAxMzk2LCAwLjAwMTM5OCwgMC4wMDEzOTksIDAuMDAxNCwgMC4wMDE0IiwgXAotICAgICAgICAgICIwLjAwMTQzMiwgMC4wMDE0MzQsIDAuMDAxNDQsIDAuMDAxNDQzLCAwLjAwMTQ0MywgMC4wMDE0NDUsIDAuMDAxNDQ1IiwgXAotICAgICAgICAgICIwLjAwMTU0NiwgMC4wMDE1NDYsIDAuMDAxNTQ5LCAwLjAwMTU1MSwgMC4wMDE1NTEsIDAuMDAxNTUzLCAwLjAwMTU1MyIsIFwKLSAgICAgICAgICAiMC4wMDE2NiwgMC4wMDE2NiwgMC4wMDE2NjMsIDAuMDAxNjY1LCAwLjAwMTY2NiwgMC4wMDE2NjcsIDAuMDAxNjY3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzMjE0LCAwLjAwMzIxNiwgMC4wMDMyMjIsIDAuMDAzMjI0LCAwLjAwMzIyNSwgMC4wMDMyMjUsIDAuMDAzMjI1IiwgXAotICAgICAgICAgICIwLjAwMzE5MywgMC4wMDMxOTQsIDAuMDAzMjAyLCAwLjAwMzIwNCwgMC4wMDMyMDUsIDAuMDAzMjA2LCAwLjAwMzIwNiIsIFwKLSAgICAgICAgICAiMC4wMDMyMDcsIDAuMDAzMjA5LCAwLjAwMzIxNywgMC4wMDMyMiwgMC4wMDMyMiwgMC4wMDMyMjEsIDAuMDAzMjIyIiwgXAotICAgICAgICAgICIwLjAwMzI0OCwgMC4wMDMyNDksIDAuMDAzMjU2LCAwLjAwMzI2MSwgMC4wMDMyNjEsIDAuMDAzMjYzLCAwLjAwMzI2MyIsIFwKLSAgICAgICAgICAiMC4wMDMzMDYsIDAuMDAzMzA4LCAwLjAwMzMxNiwgMC4wMDMzMiwgMC4wMDMzMjIsIDAuMDAzMzIzLCAwLjAwMzMyMyIsIFwKLSAgICAgICAgICAiMC4wMDM0MywgMC4wMDM0MzIsIDAuMDAzNDQsIDAuMDAzNDQ0LCAwLjAwMzQ0OCwgMC4wMDM0NDcsIDAuMDAzNDQ3IiwgXAotICAgICAgICAgICIwLjAwMzU3LCAwLjAwMzU3LCAwLjAwMzU3NCwgMC4wMDM1NzYsIDAuMDAzNTc2LCAwLjAwMzU3OCwgMC4wMDM1NzgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxMTkxLCAwLjAwMTE5MiwgMC4wMDExOTYsIDAuMDAxMTk2LCAwLjAwMTE5NywgMC4wMDExOTcsIDAuMDAxMTk4IiwgXAotICAgICAgICAgICIwLjAwMTEzNiwgMC4wMDExMzgsIDAuMDAxMTQyLCAwLjAwMTE0NCwgMC4wMDExNDQsIDAuMDAxMTQ1LCAwLjAwMTE0NSIsIFwKLSAgICAgICAgICAiMC4wMDExMzEsIDAuMDAxMTM0LCAwLjAwMTEzOCwgMC4wMDExNCwgMC4wMDExNDEsIDAuMDAxMTQyLCAwLjAwMTE0MiIsIFwKLSAgICAgICAgICAiMC4wMDExNjIsIDAuMDAxMTYyLCAwLjAwMTE2OSwgMC4wMDExNzEsIDAuMDAxMTcyLCAwLjAwMTE3MiwgMC4wMDExNzIiLCBcCi0gICAgICAgICAgIjAuMDAxMjA2LCAwLjAwMTIwOSwgMC4wMDEyMTQsIDAuMDAxMjE4LCAwLjAwMTIxOSwgMC4wMDEyMiwgMC4wMDEyMiIsIFwKLSAgICAgICAgICAiMC4wMDEzMTksIDAuMDAxMzIxLCAwLjAwMTMyNiwgMC4wMDEzMjgsIDAuMDAxMzI4LCAwLjAwMTMyOSwgMC4wMDEzMjkiLCBcCi0gICAgICAgICAgIjAuMDAxNDMzLCAwLjAwMTQzNSwgMC4wMDE0MzksIDAuMDAxNDQxLCAwLjAwMTQ0MywgMC4wMDE0NDMsIDAuMDAxNDQzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyOTU0LCAwLjAwMjk1NSwgMC4wMDI5NjEsIDAuMDAyOTY0LCAwLjAwMjk2NSwgMC4wMDI5NjUsIDAuMDAyOTY1IiwgXAotICAgICAgICAgICIwLjAwMjk0OCwgMC4wMDI5NSwgMC4wMDI5NTgsIDAuMDAyOTYxLCAwLjAwMjk2MiwgMC4wMDI5NjMsIDAuMDAyOTYzIiwgXAotICAgICAgICAgICIwLjAwMjk4NywgMC4wMDI5ODksIDAuMDAyOTk2LCAwLjAwMjk5OSwgMC4wMDMsIDAuMDAzMDAxLCAwLjAwMzAwMSIsIFwKLSAgICAgICAgICAiMC4wMDMwNTgsIDAuMDAzMDYsIDAuMDAzMDY3LCAwLjAwMzA3MSwgMC4wMDMwNzIsIDAuMDAzMDc0LCAwLjAwMzA3NCIsIFwKLSAgICAgICAgICAiMC4wMDMxNDYsIDAuMDAzMTQ4LCAwLjAwMzE1MywgMC4wMDMxNTYsIDAuMDAzMTU3LCAwLjAwMzE1OCwgMC4wMDMxNTgiLCBcCi0gICAgICAgICAgIjAuMDAzMzA0LCAwLjAwMzMwMywgMC4wMDMzMDYsIDAuMDAzMzA5LCAwLjAwMzMxLCAwLjAwMzMxMSwgMC4wMDMzMTEiLCBcCi0gICAgICAgICAgIjAuMDAzNDU1LCAwLjAwMzQ1NSwgMC4wMDM0NTgsIDAuMDAzNDYxLCAwLjAwMzQ2MiwgMC4wMDM0NjQsIDAuMDAzNDY0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTQwMywgMC4wMDE0MDQsIDAuMDAxNDA5LCAwLjAwMTQxLCAwLjAwMTQxMSwgMC4wMDE0MTEsIDAuMDAxNDEyIiwgXAotICAgICAgICAgICIwLjAwMTM5NiwgMC4wMDEzOTgsIDAuMDAxNDAzLCAwLjAwMTQwNywgMC4wMDE0MDgsIDAuMDAxNDA3LCAwLjAwMTQwOCIsIFwKLSAgICAgICAgICAiMC4wMDE0NTgsIDAuMDAxNDYsIDAuMDAxNDY3LCAwLjAwMTQ3LCAwLjAwMTQ3MSwgMC4wMDE0NzEsIDAuMDAxNDcyIiwgXAotICAgICAgICAgICIwLjAwMTUzOCwgMC4wMDE1MzksIDAuMDAxNTQ1LCAwLjAwMTU0OCwgMC4wMDE1NDksIDAuMDAxNTUsIDAuMDAxNTUiLCBcCi0gICAgICAgICAgIjAuMDAxNjQxLCAwLjAwMTY0MiwgMC4wMDE2NDgsIDAuMDAxNjUyLCAwLjAwMTY1MywgMC4wMDE2NTQsIDAuMDAxNjU0IiwgXAotICAgICAgICAgICIwLjAwMTgxOCwgMC4wMDE4MTgsIDAuMDAxODIzLCAwLjAwMTgyNiwgMC4wMDE4MjcsIDAuMDAxODI5LCAwLjAwMTgyOSIsIFwKLSAgICAgICAgICAiMC4wMDE5ODQsIDAuMDAxOTg0LCAwLjAwMTk4NiwgMC4wMDE5ODksIDAuMDAxOTksIDAuMDAxOTkxLCAwLjAwMTk5MSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjM2NiwgMC4wMDIzNjcsIDAuMDAyMzY4LCAwLjAwMjM2OSwgMC4wMDIzNjksIDAuMDAyMzcsIDAuMDAyMzY5IiwgXAotICAgICAgICAgICIwLjAwMjM2NywgMC4wMDIzNjgsIDAuMDAyMzcyLCAwLjAwMjM3MywgMC4wMDIzNzMsIDAuMDAyMzc0LCAwLjAwMjM3NCIsIFwKLSAgICAgICAgICAiMC4wMDI0MzUsIDAuMDAyNDM2LCAwLjAwMjQ0MSwgMC4wMDI0NDIsIDAuMDAyNDQzLCAwLjAwMjQ0MywgMC4wMDI0NDMiLCBcCi0gICAgICAgICAgIjAuMDAyNTMxLCAwLjAwMjUzMiwgMC4wMDI1MjksIDAuMDAyNTMxLCAwLjAwMjUzOCwgMC4wMDI1MzksIDAuMDAyNTM5IiwgXAotICAgICAgICAgICIwLjAwMjY0MSwgMC4wMDI2NDIsIDAuMDAyNjQ1LCAwLjAwMjY0NywgMC4wMDI2NDcsIDAuMDAyNjQ4LCAwLjAwMjY0OCIsIFwKLSAgICAgICAgICAiMC4wMDI4MTUsIDAuMDAyODE1LCAwLjAwMjgxNSwgMC4wMDI4MTYsIDAuMDAyODIxLCAwLjAwMjgyMSwgMC4wMDI4MjEiLCBcCi0gICAgICAgICAgIjAuMDAyOTg4LCAwLjAwMjk5NCwgMC4wMDI5OTIsIDAuMDAyOTg0LCAwLjAwMjk5MSwgMC4wMDI5OTEsIDAuMDAyOTkxIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogT0FJMjFYMiAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChPQUkyMVgyKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuNTAwNTYxOwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxODA4NjM7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxODA0NjM7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxODA4NjM7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxMDQ4LCAwLjAwMTA0OCwgMC4wMDEwNDcsIDAuMDAxMDQ3LCAwLjAwMTA0NywgMC4wMDEwNDcsIDAuMDAxMDQ3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxMDY1LCAwLjAwMTA1MywgMC4wMDEwNTIsIDAuMDAxMDUyLCAwLjAwMTA1MiwgMC4wMDEwNTIsIDAuMDAxMDUxIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihBMSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNzUyMjE7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNzUyMjE7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNzQ4Mzg7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxMDQ5LCAwLjAwMTA0OCwgMC4wMDEwNDgsIDAuMDAxMDQ4LCAwLjAwMTA0OCwgMC4wMDEwNDcsIDAuMDAxMDQ3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxMDYzLCAwLjAwMTA1MSwgMC4wMDEwNTEsIDAuMDAxMDUxLCAwLjAwMTA1MSwgMC4wMDEwNTEsIDAuMDAxMDUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE2NTc3OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTY1NzYyOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTY1Nzc7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNDczLCAwLjAwMDQ3NSwgMC4wMDA0NzUsIDAuMDAwNDc2LCAwLjAwMDQ3NSwgMC4wMDA0NzYsIDAuMDAwNDc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxMTkxLCAwLjAwMTE5MiwgMC4wMDExOTIsIDAuMDAxMTkyLCAwLjAwMTE5MiwgMC4wMDExOTIsIDAuMDAxMTkyIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMzc2MTUzOwotICAgIGZ1bmN0aW9uIDogIighKChBMCtBMSkgQjApKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTAiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0MjU1MSwgMC4xODMzODIsIDAuMjk1Nzg5LCAwLjQzNjQzOSwgMC41NzY3NTYsIDAuNzE2OTY3LCAwLjg1ODEzNSIsIFwKLSAgICAgICAgICAiMC4wNDg2MTQsIDAuMTg5NDExLCAwLjMwMTgxOSwgMC40NDIxODEsIDAuNTgyNiwgMC43MjM0MjUsIDAuODY0MjYyIiwgXAotICAgICAgICAgICIwLjA1NTk0MiwgMC4xOTY5MTIsIDAuMzA5MzYsIDAuNDUwMTQzLCAwLjU5MDMzMiwgMC43MzA5MjgsIDAuODcxMDQ0IiwgXAotICAgICAgICAgICIwLjA2Mjg5LCAwLjIwNDMzNywgMC4zMTY5NzcsIDAuNDU3NjQ0LCAwLjU5Nzg5OCwgMC43Mzg2MDUsIDAuODc4NTM1IiwgXAotICAgICAgICAgICIwLjA2ODcwMywgMC4yMTE3MDEsIDAuMzI0MzY3LCAwLjQ2NTEzLCAwLjYwNTgxNiwgMC43NDYyODQsIDAuODg2NjQxIiwgXAotICAgICAgICAgICIwLjA3NjQzOSwgMC4yMjM3MTUsIDAuMzM1OTc0LCAwLjQ3NjYwMSwgMC42MTcyMzksIDAuNzU3MjE0LCAwLjg5Nzk4NyIsIFwKLSAgICAgICAgICAiMC4wODI0NSwgMC4yMzQyMjIsIDAuMzQ2NTcxLCAwLjQ4NzU4NywgMC42Mjc5MywgMC43Njg0MjcsIDAuOTA4NjczIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3Njg3MywgMC4zNzQzOSwgMC42MTIwNDUsIDAuOTA5MzQ3LCAxLjIwNjM0LCAxLjUwMzE2LCAxLjgwMDc3IiwgXAotICAgICAgICAgICIwLjA3NzU3NCwgMC4zNzQyNjEsIDAuNjEyMDU0LCAwLjkwOTIzNywgMS4yMDY0NiwgMS41MDM0LCAxLjgwMDciLCBcCi0gICAgICAgICAgIjAuMDgxMzM4LCAwLjM3NDMzOSwgMC42MTE3MDIsIDAuOTA5NjA2LCAxLjIwNjUzLCAxLjUwMzM4LCAxLjgwMDU0IiwgXAotICAgICAgICAgICIwLjA4NjY1NiwgMC4zNzUwOTIsIDAuNjEyMDYyLCAwLjkwOTAzMiwgMS4yMDU3NSwgMS41MDM0LCAxLjgwMDA4IiwgXAotICAgICAgICAgICIwLjA5Mjg4OSwgMC4zNzY3NDgsIDAuNjEyMjkzLCAwLjkwOTAyMSwgMS4yMDYyMSwgMS41MDM0NSwgMS44MDA1MiIsIFwKLSAgICAgICAgICAiMC4xMDMyNjQsIDAuMzgxNzA4LCAwLjYxNDQ2NiwgMC45MDk0MjEsIDEuMjA2MDUsIDEuNTAzMzMsIDEuODAwMTIiLCBcCi0gICAgICAgICAgIjAuMTExODU1LCAwLjM4NzI5MywgMC42MTc1NTgsIDAuOTEwNzc0LCAxLjIwNTg1LCAxLjUwMzIyLCAxLjgwMDM1Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0MTUzNCwgMC4xNzYwMDksIDAuMjgzNDQyLCAwLjQxNzQ0NywgMC41NTIwNjEsIDAuNjg2MDYsIDAuODIwMzIyIiwgXAotICAgICAgICAgICIwLjA0ODM5NCwgMC4xODI5MiwgMC4yOTAyNTgsIDAuNDI0NjIsIDAuNTU4NjA3LCAwLjY5MzM4OCwgMC44MjY5NzIiLCBcCi0gICAgICAgICAgIjAuMDU2NSwgMC4xOTExMzQsIDAuMjk4NjAxLCAwLjQzMjgxNywgMC41NjcxMzksIDAuNzAxMjI3LCAwLjgzNTQ3IiwgXAotICAgICAgICAgICIwLjA2NDA0MywgMC4xOTkyNDksIDAuMzA2NzAxLCAwLjQ0MTIyNywgMC41NzUzNjUsIDAuNzA5NDcyLCAwLjg0Mzg2MyIsIFwKLSAgICAgICAgICAiMC4wNzA2MjQsIDAuMjA3NDc0LCAwLjMxNTAwMSwgMC40NDk1NDgsIDAuNTgzNTA3LCAwLjcxNzgzOSwgMC44NTE5ODUiLCBcCi0gICAgICAgICAgIjAuMDc5NTg5LCAwLjIyMDk0OSwgMC4zMjgxNDMsIDAuNDYyNTE1LCAwLjU5Njc5MSwgMC43MzEwNjIsIDAuODY1Mzk3IiwgXAotICAgICAgICAgICIwLjA4NjI4NSwgMC4yMzIyMzcsIDAuMzM5NTQsIDAuNDc0MTY4LCAwLjYwODQxOSwgMC43NDI5ODcsIDAuODc2NzciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDcwMzYxLCAwLjM0ODU0NiwgMC41NzA4NjMsIDAuODQ4MzY4LCAxLjEyNjQ4LCAxLjQwNDE3LCAxLjY4MjAyIiwgXAotICAgICAgICAgICIwLjA3MDg5LCAwLjM0ODIyMiwgMC41NzA3NDgsIDAuODQ4NSwgMS4xMjYxOCwgMS40MDQ0NiwgMS42ODE5IiwgXAotICAgICAgICAgICIwLjA3NDU0MywgMC4zNDg0MjQsIDAuNTcwODA3LCAwLjg0ODQ3OSwgMS4xMjY3MSwgMS40MDM5MSwgMS42ODIzNyIsIFwKLSAgICAgICAgICAiMC4wNzk4NDUsIDAuMzQ4OTc4LCAwLjU3MDc2MywgMC44NDg1NDgsIDEuMTI2NzQsIDEuNDAzOTgsIDEuNjgyNDUiLCBcCi0gICAgICAgICAgIjAuMDg2MTk0LCAwLjM1MDg3MSwgMC41NzA5MjYsIDAuODQ4NDc5LCAxLjEyNjE5LCAxLjQwMzk2LCAxLjY4MTk5IiwgXAotICAgICAgICAgICIwLjA5NjU3LCAwLjM1NTk0OSwgMC41NzMwOTQsIDAuODQ4ODM3LCAxLjEyNjIyLCAxLjQwNDEyLCAxLjY4MjI5IiwgXAotICAgICAgICAgICIwLjEwNTUyNiwgMC4zNjE0OTIsIDAuNTc2MzU4LCAwLjg0OTkyMiwgMS4xMjYyNiwgMS40MDQyNywgMS42ODE5MyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQwNTA2LCAwLjE4MTI5MywgMC4yOTM3NTQsIDAuNDM0NDcsIDAuNTc0NjMzLCAwLjcxNTExMywgMC44NTU5MzYiLCBcCi0gICAgICAgICAgIjAuMDQ4MDEyLCAwLjE4ODg1MywgMC4zMDExNTksIDAuNDQxNTE1LCAwLjU4MTkzNywgMC43MjI2NiwgMC44NjI2NzQiLCBcCi0gICAgICAgICAgIjAuMDU3ODMxLCAwLjE5ODQ5MiwgMC4zMTA4NDYsIDAuNDUxMiwgMC41OTE3MDMsIDAuNzMyMDMxLCAwLjg3MzM0OCIsIFwKLSAgICAgICAgICAiMC4wNjczNTUsIDAuMjA4MTMzLCAwLjMyMDQ2OCwgMC40NjA4NjgsIDAuNjAxMjE1LCAwLjc0MTY5OCwgMC44ODE5MzciLCBcCi0gICAgICAgICAgIjAuMDc1MTE3LCAwLjIxNzYyNiwgMC4zMjk4NzYsIDAuNDcwNTE2LCAwLjYxMDg0OSwgMC43NTEyODcsIDAuODkyMzg4IiwgXAotICAgICAgICAgICIwLjA4NTQzMiwgMC4yMzMyMjksIDAuMzQ1MzgxLCAwLjQ4NTQxNSwgMC42MjY0MDksIDAuNzY2MzQ5LCAwLjkwNjcxMyIsIFwKLSAgICAgICAgICAiMC4wOTM2MTcsIDAuMjQ2OTg2LCAwLjM1ODk2MiwgMC40OTk0NDMsIDAuNjM3MjA3LCAwLjc4MDQyMSwgMC45MjEwMzUiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc2ODk2LCAwLjM3NDIzNSwgMC42MTIwNDYsIDAuOTA5NDQ1LCAxLjIwNjI3LCAxLjUwMzM3LCAxLjgwMDY0IiwgXAotICAgICAgICAgICIwLjA3ODEyNCwgMC4zNzQyMjQsIDAuNjEyMDA5LCAwLjkwOTE1OSwgMS4yMDY0MiwgMS41MDMzMSwgMS44MDAyNCIsIFwKLSAgICAgICAgICAiMC4wODQxMzEsIDAuMzc0NDE0LCAwLjYxMjA2OSwgMC45MDkyMjgsIDEuMjA2NjIsIDEuNTAzMywgMS44MDA3NiIsIFwKLSAgICAgICAgICAiMC4wOTIyMjksIDAuMzc0OTc3LCAwLjYxMjA0MSwgMC45MDg4MTksIDEuMjA2NTEsIDEuNTAzMjMsIDEuODAwMDkiLCBcCi0gICAgICAgICAgIjAuMTAxMjYyLCAwLjM3NzY4NCwgMC42MTIzMzIsIDAuOTA5MDE4LCAxLjIwNjA0LCAxLjUwMzEyLCAxLjgwMDc4IiwgXAotICAgICAgICAgICIwLjExNTQwNiwgMC4zODUwNDcsIDAuNjE1MDc1LCAwLjkwOTMzOCwgMS4yMDYyOSwgMS41MDMyNCwgMS44MDAwNyIsIFwKLSAgICAgICAgICAiMC4xMjU1MDUsIDAuMzkzMTg3LCAwLjYxOTc5NCwgMC45MTA1MzEsIDEuMjA1ODgsIDEuNTAzNCwgMS44MDA2NiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzk2OTMsIDAuMTc3NzQ1LCAwLjI4ODE4NywgMC40MjYwNjcsIDAuNTYzOTI5LCAwLjcwMTU2NywgMC44Mzk0NzgiLCBcCi0gICAgICAgICAgIjAuMDQ2MzMyLCAwLjE4NDU0NywgMC4yOTQ4ODMsIDAuNDMyNjk0LCAwLjU3MDU1MywgMC43MDg2MTYsIDAuODQ2MTY4IiwgXAotICAgICAgICAgICIwLjA1NDA5MSwgMC4xOTI2NjQsIDAuMzAzMDk4LCAwLjQ0MDc4NywgMC41Nzg2MjEsIDAuNzE2NDM1LCAwLjg1NDI1IiwgXAotICAgICAgICAgICIwLjA2MTI0MywgMC4yMDA2MTksIDAuMzEwOTUyLCAwLjQ0OTE1MywgMC41ODY3NywgMC43MjQ3MzgsIDAuODYyNTciLCBcCi0gICAgICAgICAgIjAuMDY3Mzg4LCAwLjIwODYxMSwgMC4zMTg5ODcsIDAuNDU3MjA1LCAwLjU5NDk1LCAwLjczMzA5NywgMC44NzA4NTEiLCBcCi0gICAgICAgICAgIjAuMDc1NzE3LCAwLjIyMTE3MywgMC4zMzE5NDQsIDAuNDY5OTY1LCAwLjYwNzgzOCwgMC43NDU3NDIsIDAuODg0MjA2IiwgXAotICAgICAgICAgICIwLjA4MTg1OSwgMC4yMzI2MjYsIDAuMzQyODM2LCAwLjQ4MTI0NSwgMC42MTkyOTUsIDAuNzU2ODE0LCAwLjg5NTE1MiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjg2ODEsIDAuMzU1MjgxLCAwLjU4NDY3OSwgMC44NzEzMDcsIDEuMTU3NzUsIDEuNDQ0LCAxLjczMDQ0IiwgXAotICAgICAgICAgICIwLjA2OTMzNSwgMC4zNTU5NzYsIDAuNTg1NzgsIDAuODcyOTQyLCAxLjE2MDE4LCAxLjQ0MzkyLCAxLjczNDU1IiwgXAotICAgICAgICAgICIwLjA3Mjg0MiwgMC4zNTUyMjcsIDAuNTg0NTQ5LCAwLjg3MjExNiwgMS4xNjAyLCAxLjQ0NzM4LCAxLjczNDU2IiwgXAotICAgICAgICAgICIwLjA3ODIwNSwgMC4zNTU3NTMsIDAuNTg1NzQ1LCAwLjg3MTExMywgMS4xNjAyNCwgMS40NDM5NSwgMS43MzE5MiIsIFwKLSAgICAgICAgICAiMC4wODQ2MjQsIDAuMzU3NjI4LCAwLjU4NTg1NiwgMC44NzExMDUsIDEuMTU4NDIsIDEuNDQ0MywgMS43MzI0MSIsIFwKLSAgICAgICAgICAiMC4wOTU0MzQsIDAuMzYyNjkxLCAwLjU4NzA2NSwgMC44NzI5OTgsIDEuMTYwMDMsIDEuNDQ2MzYsIDEuNzMwOTQiLCBcCi0gICAgICAgICAgIjAuMTA0MTc5LCAwLjM2ODEyNCwgMC41OTA0MzUsIDAuODc0Mjc5LCAxLjE1NzUsIDEuNDQ3MTIsIDEuNzMwNDciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjAiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyMTQ5LCAwLjA5OTU1MywgMC4xNjE4MzUsIDAuMjM5NzM0LCAwLjMxNzU4NywgMC4zOTU0NTgsIDAuNDczMTk2IiwgXAotICAgICAgICAgICIwLjAyOTc0MiwgMC4xMDc3NjYsIDAuMTcwMTM2LCAwLjI0ODA0NSwgMC4zMjU5MSwgMC40MDM3MjIsIDAuNDgxNDQ0IiwgXAotICAgICAgICAgICIwLjAzOTMzOSwgMC4xMTgwNDgsIDAuMTgwMjY4LCAwLjI1ODE3NCwgMC4zMzU5OTMsIDAuNDEzNzU5LCAwLjQ5MTUyNyIsIFwKLSAgICAgICAgICAiMC4wNDU4NjgsIDAuMTI4NDUyLCAwLjE5MDc2MywgMC4yNjg2MjksIDAuMzQ2NTE2LCAwLjQyNDI2NywgMC41MDE5OTYiLCBcCi0gICAgICAgICAgIjAuMDUxNTk5LCAwLjEzODk5LCAwLjIwMTI3OCwgMC4yNzkxNDYsIDAuMzU2OTQ1LCAwLjQzNDc2NCwgMC41MTI0NzQiLCBcCi0gICAgICAgICAgIjAuMDU4NTc3LCAwLjE1NTkxOSwgMC4yMTgwMjcsIDAuMjk1ODI4LCAwLjM3MzU2MywgMC40NTEzNjcsIDAuNTI5MDgxIiwgXAotICAgICAgICAgICIwLjA2MzUxMSwgMC4xNzA2NDUsIDAuMjMyNzk0LCAwLjMxMDQ5NywgMC4zODgxNjksIDAuNDY1OTU1LCAwLjU0Mzc2NyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDI2MjQsIDAuMjA2ODMzLCAwLjMzODI0NywgMC41MDI1OTIsIDAuNjY2OTk4LCAwLjgzMTYsIDAuOTk1NzUyIiwgXAotICAgICAgICAgICIwLjA0NjEzMywgMC4yMDY3ODQsIDAuMzM4MjM5LCAwLjUwMjYwOCwgMC42NjcxMzYsIDAuODMxNjYyLCAwLjk5NjE0MSIsIFwKLSAgICAgICAgICAiMC4wNTQ3MDUsIDAuMjA4MDMyLCAwLjMzODMzNiwgMC41MDI2MjUsIDAuNjY2OTQsIDAuODMxNDE1LCAwLjk5NTczMSIsIFwKLSAgICAgICAgICAiMC4wNjQ4MjUsIDAuMjEyMjU1LCAwLjMzOTQ5OSwgMC41MDI0OTksIDAuNjY3MTg0LCAwLjgzMTU3OSwgMC45OTU3MjUiLCBcCi0gICAgICAgICAgIjAuMDczMzM4LCAwLjIxODE2NCwgMC4zNDI5OTMsIDAuNTAzNjM1LCAwLjY2NjkxMiwgMC44MzE1MzEsIDAuOTk1NzMzIiwgXAotICAgICAgICAgICIwLjA4NjA5MSwgMC4yMjk4ODIsIDAuMzUxMTI5LCAwLjUwODMxNywgMC42Njg5NSwgMC44MzE3NTIsIDAuOTk1NzI5IiwgXAotICAgICAgICAgICIwLjA5NjI5MiwgMC4yNDE0NywgMC4zNTk5NiwgMC41MTQzOTEsIDAuNjcyNzY1LCAwLjgzMzg2NiwgMC45OTYyNDUiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM4MTksIDAuMTczNzA0LCAwLjI4NDA5NCwgMC40MjIyODIsIDAuNTU5NjMzLCAwLjY5ODE5LCAwLjgzNTYzMyIsIFwKLSAgICAgICAgICAiMC4wNDU3NTUsIDAuMTgxNDE1LCAwLjI5MTc3LCAwLjQyOTQ3NiwgMC41NjczNzMsIDAuNzA1NDAzLCAwLjg0Mjk3OCIsIFwKLSAgICAgICAgICAiMC4wNTU1NywgMC4xOTEwNjMsIDAuMzAxMzU2LCAwLjQzOTQ4LCAwLjU3Njk4MiwgMC43MTQ4MiwgMC44NTI5MTYiLCBcCi0gICAgICAgICAgIjAuMDY1NTYzLCAwLjIwMDk4MiwgMC4zMTExNjQsIDAuNDQ5MDU3LCAwLjU4NzA0OSwgMC43MjU0OTgsIDAuODYyNTAzIiwgXAotICAgICAgICAgICIwLjA3MzI0NCwgMC4yMTA2OTUsIDAuMzIwOTc1LCAwLjQ1OTA0LCAwLjU5Njk4MSwgMC43MzQ3MjMsIDAuODcyNzY2IiwgXAotICAgICAgICAgICIwLjA4NDMwNiwgMC4yMjY2NDMsIDAuMzM2NzIyLCAwLjQ3NDYzMywgMC42MTIzMTksIDAuNzQ5OTgsIDAuODg3OTkyIiwgXAotICAgICAgICAgICIwLjA5MjI0NCwgMC4yNDA4NzYsIDAuMzUwNjcyLCAwLjQ4ODMzNSwgMC42MjM0ODUsIDAuNzYzODQ0LCAwLjkwMTU4MiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzAzNSwgMC4zNTUyMDIsIDAuNTg0NDIzLCAwLjg3MTI5MywgMS4xNTk5LCAxLjQ0NDYxLCAxLjczMDU0IiwgXAotICAgICAgICAgICIwLjA3MTQ2NCwgMC4zNTYwMTMsIDAuNTg0NDE2LCAwLjg3MTQ2MiwgMS4xNjAxOCwgMS40NDM5LCAxLjczNDUiLCBcCi0gICAgICAgICAgIjAuMDc3NTU3LCAwLjM1NjAyMiwgMC41ODQ4ODMsIDAuODcxMDUsIDEuMTYwMTYsIDEuNDQ3MzksIDEuNzMyMjUiLCBcCi0gICAgICAgICAgIjAuMDg1MzE3LCAwLjM1NjAxNSwgMC41ODU3NDEsIDAuODcxNjQyLCAxLjE1NzQ3LCAxLjQ0NDk1LCAxLjczMTcyIiwgXAotICAgICAgICAgICIwLjA5NDE3LCAwLjM1OTYwNSwgMC41ODU4NTEsIDAuODcxMTE3LCAxLjE1Nzg2LCAxLjQ0NDA2LCAxLjczMTQ4IiwgXAotICAgICAgICAgICIwLjEwNzU4NCwgMC4zNjYyMTIsIDAuNTg4NzU3LCAwLjg3MTM3NCwgMS4xNTg0LCAxLjQ0NDkyLCAxLjczMDU4IiwgXAotICAgICAgICAgICIwLjExODQzNCwgMC4zNzQ1MzMsIDAuNTkzNTI5LCAwLjg3NDQxMiwgMS4xNTk5NSwgMS40NDQ4OSwgMS43MzQzNiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDY0MDUsIDAuMDA2NDA5LCAwLjAwNjQxLCAwLjAwNjQxLCAwLjAwNjQwOCwgMC4wMDY0MDksIDAuMDA2NDA3IiwgXAotICAgICAgICAgICIwLjAwNjM1OSwgMC4wMDYzODYsIDAuMDA2Mzg5LCAwLjAwNjM5MSwgMC4wMDYzOTEsIDAuMDA2MzksIDAuMDA2MzkiLCBcCi0gICAgICAgICAgIjAuMDA2MzYzLCAwLjAwNjM4NCwgMC4wMDYzODYsIDAuMDA2Mzg4LCAwLjAwNjM4OCwgMC4wMDYzODgsIDAuMDA2Mzg4IiwgXAotICAgICAgICAgICIwLjAwNjQxMywgMC4wMDYzOTYsIDAuMDA2Mzk2LCAwLjAwNjM5NywgMC4wMDYzOTIsIDAuMDA2MzkyLCAwLjAwNjM5NSIsIFwKLSAgICAgICAgICAiMC4wMDY1MDEsIDAuMDA2NDI0LCAwLjAwNjQxNiwgMC4wMDY0MDYsIDAuMDA2NDAzLCAwLjAwNjM5OSwgMC4wMDY0IiwgXAotICAgICAgICAgICIwLjAwNjY5NywgMC4wMDY0OTYsIDAuMDA2NDY0LCAwLjAwNjQ0MywgMC4wMDY0MywgMC4wMDY0MjIsIDAuMDA2NDE2IiwgXAotICAgICAgICAgICIwLjAwNjkyNSwgMC4wMDY1ODIsIDAuMDA2NTI3LCAwLjAwNjQ4NywgMC4wMDY0NjcsIDAuMDA2NDUzLCAwLjAwNjQ0MyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDk3NSwgMC4wMDA5ODQsIDAuMDAwOTg1LCAwLjAwMDk4NSwgMC4wMDA5ODUsIDAuMDAwOTg1LCAwLjAwMDk4NSIsIFwKLSAgICAgICAgICAiMC4wMDA5LCAwLjAwMDk0NywgMC4wMDA5NTMsIDAuMDAwOTU2LCAwLjAwMDk1OCwgMC4wMDA5NTksIDAuMDAwOTU5IiwgXAotICAgICAgICAgICIwLjAwMDg3NywgMC4wMDA5MzUsIDAuMDAwOTQ0LCAwLjAwMDk0OSwgMC4wMDA5NTEsIDAuMDAwOTUzLCAwLjAwMDk1NCIsIFwKLSAgICAgICAgICAiMC4wMDA5MDgsIDAuMDAwOTM4LCAwLjAwMDk0NSwgMC4wMDA5NTEsIDAuMDAwOTUzLCAwLjAwMDk1MiwgMC4wMDA5NTMiLCBcCi0gICAgICAgICAgIjAuMDAwOTc0LCAwLjAwMDk1NCwgMC4wMDA5NTYsIDAuMDAwOTU3LCAwLjAwMDk1NywgMC4wMDA5NTYsIDAuMDAwOTU3IiwgXAotICAgICAgICAgICIwLjAwMTE1MiwgMC4wMDEwMTQsIDAuMDAwOTk1LCAwLjAwMDk4MywgMC4wMDA5NzcsIDAuMDAwOTc0LCAwLjAwMDk3MSIsIFwKLSAgICAgICAgICAiMC4wMDEzNjIsIDAuMDAxMDg0LCAwLjAwMTA0NiwgMC4wMDEwMjEsIDAuMDAxMDA2LCAwLjAwMDk5NywgMC4wMDA5OTEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1NTA3LCAwLjAwNTUxNywgMC4wMDU1MTcsIDAuMDA1NTE3LCAwLjAwNTUxNiwgMC4wMDU1MTYsIDAuMDA1NTE1IiwgXAotICAgICAgICAgICIwLjAwNTQ2NCwgMC4wMDU0OTEsIDAuMDA1NDk1LCAwLjAwNTQ5NywgMC4wMDU0OTcsIDAuMDA1NDk3LCAwLjAwNTQ5NiIsIFwKLSAgICAgICAgICAiMC4wMDU1MDksIDAuMDA1NDk5LCAwLjAwNTQ5OSwgMC4wMDU0OTgsIDAuMDA1NDk3LCAwLjAwNTQ5NiwgMC4wMDU0OTYiLCBcCi0gICAgICAgICAgIjAuMDA1NjIsIDAuMDA1NTMsIDAuMDA1NTIsIDAuMDA1NTEyLCAwLjAwNTUwOSwgMC4wMDU1MDUsIDAuMDA1NTAzIiwgXAotICAgICAgICAgICIwLjAwNTgxMywgMC4wMDU1OSwgMC4wMDU1NjEsIDAuMDA1NTQzLCAwLjAwNTUzMiwgMC4wMDU1MjUsIDAuMDA1NTE5IiwgXAotICAgICAgICAgICIwLjAwNjE0MiwgMC4wMDU3MDMsIDAuMDA1NjM2LCAwLjAwNTU5NywgMC4wMDU1NzgsIDAuMDA1NTU4LCAwLjAwNTU0OCIsIFwKLSAgICAgICAgICAiMC4wMDYzNzQsIDAuMDA1ODIxLCAwLjAwNTcyMywgMC4wMDU2NiwgMC4wMDU2MTksIDAuMDA1NjA4LCAwLjAwNTU4MyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDQyOSwgMC4wMDA0NjYsIDAuMDAwNDcsIDAuMDAwNDcyLCAwLjAwMDQ3MywgMC4wMDA0NzMsIDAuMDAwNDc0IiwgXAotICAgICAgICAgICIwLjAwMDMxOSwgMC4wMDA0NTUsIDAuMDAwNDcyLCAwLjAwMDQ4MSwgMC4wMDA0ODUsIDAuMDAwNDg4LCAwLjAwMDQ5IiwgXAotICAgICAgICAgICIwLjAwMDI1MSwgMC4wMDA0MjUsIDAuMDAwNDUzLCAwLjAwMDQ2OCwgMC4wMDA0NzYsIDAuMDAwNDgxLCAwLjAwMDQ4NSIsIFwKLSAgICAgICAgICAiMC4wMDAyNTYsIDAuMDAwNDEsIDAuMDAwNDQyLCAwLjAwMDQ2MSwgMC4wMDA0NzEsIDAuMDAwNDc3LCAwLjAwMDQ4MSIsIFwKLSAgICAgICAgICAiMC4wMDAzMTgsIDAuMDAwNDE0LCAwLjAwMDQ0MywgMC4wMDA0NiwgMC4wMDA0NywgMC4wMDA0NzYsIDAuMDAwNDgxIiwgXAotICAgICAgICAgICIwLjAwMDQ4NCwgMC4wMDA0NDgsIDAuMDAwNDY1LCAwLjAwMDQ3NiwgMC4wMDA0ODIsIDAuMDAwNDg2LCAwLjAwMDQ4OSIsIFwKLSAgICAgICAgICAiMC4wMDA2OCwgMC4wMDA1MDcsIDAuMDAwNTA1LCAwLjAwMDUwMywgMC4wMDA1MDMsIDAuMDAwNTAzLCAwLjAwMDUwMyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQyODEsIDAuMDA0MzExLCAwLjAwNDMxNCwgMC4wMDQzMTIsIDAuMDA0MzE3LCAwLjAwNDMxNywgMC4wMDQzMTgiLCBcCi0gICAgICAgICAgIjAuMDA0MjQyLCAwLjAwNDMxMSwgMC4wMDQzMjEsIDAuMDA0MzI2LCAwLjAwNDMyOSwgMC4wMDQzMywgMC4wMDQzMzMiLCBcCi0gICAgICAgICAgIjAuMDA0Mjk1LCAwLjAwNDM0NywgMC4wMDQzMzksIDAuMDA0MzM5LCAwLjAwNDMzOSwgMC4wMDQzMzksIDAuMDA0MzM4IiwgXAotICAgICAgICAgICIwLjAwNDQ5OCwgMC4wMDQzNywgMC4wMDQzNjIsIDAuMDA0MzUsIDAuMDA0MzUyLCAwLjAwNDM1MiwgMC4wMDQzNDkiLCBcCi0gICAgICAgICAgIjAuMDA0NjE2LCAwLjAwNDQyNiwgMC4wMDQzOTksIDAuMDA0MzgzLCAwLjAwNDM1NiwgMC4wMDQzNjgsIDAuMDA0MzY0IiwgXAotICAgICAgICAgICIwLjAwNDk2NywgMC4wMDQ1NjcsIDAuMDA0NDkxLCAwLjAwNDQ1MiwgMC4wMDQ0MjYsIDAuMDA0NDEzLCAwLjAwNDQwNCIsIFwKLSAgICAgICAgICAiMC4wMDUyOTYsIDAuMDA0NzE4LCAwLjAwNDU5MiwgMC4wMDQ1MjQsIDAuMDA0NDgzLCAwLjAwNDQ2MSwgMC4wMDQ0NDciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDEwNDgsIDAuMDAxMDg4LCAwLjAwMTA5MiwgMC4wMDEwOTQsIDAuMDAxMDk1LCAwLjAwMTA5NSwgMC4wMDEwOTYiLCBcCi0gICAgICAgICAgIjAuMDAwOTc0LCAwLjAwMTA2LCAwLjAwMTA3NCwgMC4wMDEwODEsIDAuMDAxMDg2LCAwLjAwMTA4OCwgMC4wMDEwOSIsIFwKLSAgICAgICAgICAiMC4wMDEwNDQsIDAuMDAxMDY1LCAwLjAwMTA3NSwgMC4wMDEwODIsIDAuMDAxMDg2LCAwLjAwMTA4OCwgMC4wMDEwOSIsIFwKLSAgICAgICAgICAiMC4wMDEyMjQsIDAuMDAxMTEzLCAwLjAwMTEwNCwgMC4wMDExMDEsIDAuMDAxMDk5LCAwLjAwMTA5OSwgMC4wMDEwOTkiLCBcCi0gICAgICAgICAgIjAuMDAxMzkzLCAwLjAwMTE1NSwgMC4wMDExMzYsIDAuMDAxMTIzLCAwLjAwMTExNiwgMC4wMDExMTIsIDAuMDAxMTEiLCBcCi0gICAgICAgICAgIjAuMDAxNzk1LCAwLjAwMTI5NywgMC4wMDEyMjQsIDAuMDAxMTkxLCAwLjAwMTE3LCAwLjAwMTE1NiwgMC4wMDExNDciLCBcCi0gICAgICAgICAgIjAuMDAyMTg0LCAwLjAwMTQ0NCwgMC4wMDEzMjksIDAuMDAxMjcxLCAwLjAwMTIzLCAwLjAwMTIwOCwgMC4wMDExOTEiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogT0FJMjIxWDEgKgotICogLS0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKE9BSTIyMVgxKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuNDA4NTE5OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwOTUzNTY2OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDk1MjEyMjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA5NTM1NjY7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNTI0LCAwLjAwMDUyNCwgMC4wMDA1MjQsIDAuMDAwNTI0LCAwLjAwMDUyNCwgMC4wMDA1MjMsIDAuMDAwNTIzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNTI1LCAwLjAwMDUyNSwgMC4wMDA1MjUsIDAuMDAwNTI2LCAwLjAwMDUyNiwgMC4wMDA1MjUsIDAuMDAwNTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihBMSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwOTU0MzcyOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDk1NDM3MjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA5NTE4NDI7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNTI0LCAwLjAwMDUyNCwgMC4wMDA1MjQsIDAuMDAwNTI0LCAwLjAwMDUyNCwgMC4wMDA1MjQsIDAuMDAwNTI0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNTI1LCAwLjAwMDUyNSwgMC4wMDA1MjUsIDAuMDAwNTI1LCAwLjAwMDUyNSwgMC4wMDA1MjUsIDAuMDAwNTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwOTkyNjk3OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDk5MDY1MTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA5OTI2OTc7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNTI0LCAwLjAwMDUyNCwgMC4wMDA1MjMsIDAuMDAwNTI0LCAwLjAwMDUyNCwgMC4wMDA1MjMsIDAuMDAwNTIzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNTI1LCAwLjAwMDUyNSwgMC4wMDA1MjYsIDAuMDAwNTI2LCAwLjAwMDUyNiwgMC4wMDA1MjYsIDAuMDAwNTI2Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCMSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwOTgwNTU3OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDk4MDU1NzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA5Nzg2NjQ7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNTI0LCAwLjAwMDUyNCwgMC4wMDA1MjQsIDAuMDAwNTI0LCAwLjAwMDUyNCwgMC4wMDA1MjQsIDAuMDAwNTI0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNTI1LCAwLjAwMDUyNSwgMC4wMDA1MjUsIDAuMDAwNTI1LCAwLjAwMDUyNSwgMC4wMDA1MjUsIDAuMDAwNTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihDMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwOTgyMTg1OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDk4MTgyOTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA5ODIxODU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjE2LCAwLjAwMDIxNywgMC4wMDAyMTcsIDAuMDAwMjE3LCAwLjAwMDIxNywgMC4wMDAyMTcsIDAuMDAwMjE3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNTk1LCAwLjAwMDU5NiwgMC4wMDA1OTYsIDAuMDAwNTk2LCAwLjAwMDU5NiwgMC4wMDA1OTYsIDAuMDAwNTk2Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMTM2MTk1OwotICAgIGZ1bmN0aW9uIDogIighKCgoQTArQTEpIChCMCtCMSkpIEMwKSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzkwMzgsIDAuMTEyOTU3LCAwLjMwNDE5NywgMC40NzIzNTEsIDAuNjk2MTgsIDEuMTQzNzcsIDEuNDI0NTEiLCBcCi0gICAgICAgICAgIjAuMDg1MTk1LCAwLjExOTE0OCwgMC4zMTA0MzIsIDAuNDc4NjE3LCAwLjcwMjQxMywgMS4xNTAyOSwgMS40Mjk2MyIsIFwKLSAgICAgICAgICAiMC4wOTI1ODgsIDAuMTI2NDkxLCAwLjMxODAxNSwgMC40ODYyNDIsIDAuNzEwMTE3LCAxLjE1NzQ0LCAxLjQzODciLCBcCi0gICAgICAgICAgIjAuMDk5OTU2LCAwLjEzMzg5MywgMC4zMjU0NSwgMC40OTM3MzQsIDAuNzE3NDgsIDEuMTY1NDIsIDEuNDQ1NjEiLCBcCi0gICAgICAgICAgIjAuMTA3MzU3LCAwLjE0MTMxMiwgMC4zMzMwOTUsIDAuNTAxMjg0LCAwLjcyNTExMywgMS4xNzM4MiwgMS40NTM0NSIsIFwKLSAgICAgICAgICAiMC4xMTg0MDIsIDAuMTUzMjI2LCAwLjM0NDcyNCwgMC41MTMxNzgsIDAuNzM3MDU3LCAxLjE4NDgzLCAxLjQ2NDY1IiwgXAotICAgICAgICAgICIwLjEyNjkzOCwgMC4xNjMyMzUsIDAuMzU1MDk2LCAwLjUyMzQxLCAwLjc0NzU3MywgMS4xOTU5OCwgMS40NzUyNCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNTQ3NzUsIDAuMjI1NjI3LCAwLjYyNzA5MywgMC45ODE0OTMsIDEuNDU0MjEsIDIuMzk4ODQsIDIuOTg4OTQiLCBcCi0gICAgICAgICAgIjAuMTU0NzcyLCAwLjIyNTYxOSwgMC42MjcyNDYsIDAuOTgxNjIsIDEuNDUzODIsIDIuMzk4NTEsIDIuOTg4NjgiLCBcCi0gICAgICAgICAgIjAuMTU2NDkyLCAwLjIyNjIyOCwgMC42MjcxMTEsIDAuOTgxNTU3LCAxLjQ1Mzg5LCAyLjM5ODU1LCAyLjk4ODU4IiwgXAotICAgICAgICAgICIwLjE2MDAzLCAwLjIyODUzNiwgMC42MjcyMTksIDAuOTgxNjUxLCAxLjQ1NDA2LCAyLjM5ODQsIDIuOTg4NzQiLCBcCi0gICAgICAgICAgIjAuMTY0Njc4LCAwLjIzMjE5LCAwLjYyNzMyNSwgMC45ODE1OTMsIDEuNDU0MTcsIDIuMzk4ODIsIDIuOTg4MzUiLCBcCi0gICAgICAgICAgIjAuMTczNTExLCAwLjIzOTUzNCwgMC42MjkyODgsIDAuOTgxNTk5LCAxLjQ1NDE4LCAyLjM5ODUyLCAyLjk4ODciLCBcCi0gICAgICAgICAgIjAuMTgyMTU0LCAwLjI0NjksIDAuNjMyNjYyLCAwLjk4MjU3NSwgMS40NTQxOSwgMi4zOTg3MiwgMi45ODg0NSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTE2NDUsIDAuMTU4MTczLCAwLjQyMjAzNiwgMC42NTc4NTQsIDAuOTcxODgzLCAxLjU5OTAyLCAxLjk5MTA0IiwgXAotICAgICAgICAgICIwLjExODMyNiwgMC4xNjQ3ODYsIDAuNDI4ODA3LCAwLjY2NDI3NiwgMC45Nzg4ODgsIDEuNjA1NjcsIDEuOTk5MTIiLCBcCi0gICAgICAgICAgIjAuMTI0ODA0LCAwLjE3MTMwNiwgMC40MzUxNCwgMC42NzA1NDIsIDAuOTg0OTc5LCAxLjYxMTgyLCAyLjAwNjQyIiwgXAotICAgICAgICAgICIwLjEzMDg0NSwgMC4xNzczNjgsIDAuNDQxMzU2LCAwLjY3NjYwMiwgMC45OTAyODcsIDEuNjE4NTEsIDIuMDExMjIiLCBcCi0gICAgICAgICAgIjAuMTM2ODA0LCAwLjE4MzI5MywgMC40NDcyOTEsIDAuNjgyNTcxLCAwLjk5NjQzMSwgMS42MjQxMSwgMi4wMTc0IiwgXAotICAgICAgICAgICIwLjE0NjQ0NSwgMC4xOTI5MTYsIDAuNDU2NTY3LCAwLjY5MjE1OSwgMS4wMDY0MiwgMS42MzUyMiwgMi4wMjcwOCIsIFwKLSAgICAgICAgICAiMC4xNTQ1MDgsIDAuMjAxMzA3LCAwLjQ2NDgxNiwgMC43MDAzMzQsIDEuMDE0NTQsIDEuNjQyMDMsIDIuMDM2MDYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTk2NTg2LCAwLjI5MTgxMSwgMC44NDE0OTgsIDEuMzI3NDcsIDEuOTc0NDgsIDMuMjY4NDUsIDQuMDc2OTUiLCBcCi0gICAgICAgICAgIjAuMTk2NDM3LCAwLjI5MTY5MSwgMC44NDE1NzIsIDEuMzI2ODQsIDEuOTc0ODYsIDMuMjY4MjcsIDQuMDc3MjMiLCBcCi0gICAgICAgICAgIjAuMTk2NzI1LCAwLjI5MTg4OSwgMC44NDE0MjIsIDEuMzI3MDksIDEuOTczOTgsIDMuMjY3ODMsIDQuMDc4MjciLCBcCi0gICAgICAgICAgIjAuMTk4MDUsIDAuMjkyNTE0LCAwLjg0MTU0MSwgMS4zMjY5MSwgMS45NzU4MSwgMy4yNjg1NSwgNC4wNzg5NCIsIFwKLSAgICAgICAgICAiMC4yMDAyMDgsIDAuMjkzODE5LCAwLjg0MTY4NSwgMS4zMjY5NCwgMS45NzQyLCAzLjI3MDUyLCA0LjA3NzIzIiwgXAotICAgICAgICAgICIwLjIwNTE2NiwgMC4yOTc0NCwgMC44NDE5NjMsIDEuMzI2OSwgMS45NzM5MywgMy4yNjkwMSwgNC4wNzcyIiwgXAotICAgICAgICAgICIwLjIxMDY0MywgMC4zMDE3NDMsIDAuODQzMDg2LCAxLjMyNzAzLCAxLjk3NDMzLCAzLjI2ODMsIDQuMDc3ODQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3Njc3NCwgMC4xMTA2OTEsIDAuMzAxOTY4LCAwLjQ3MDEyOSwgMC42OTQxMDUsIDEuMTQyNDksIDEuNDIxOTMiLCBcCi0gICAgICAgICAgIjAuMDg0MTUxLCAwLjExODE4NywgMC4zMDk0NDgsIDAuNDc3NjA2LCAwLjcwMTQ3NCwgMS4xNDk3NSwgMS40MzA0NCIsIFwKLSAgICAgICAgICAiMC4wOTM5MjEsIDAuMTI3ODQ5LCAwLjMxOTA3NywgMC40ODczMjEsIDAuNzExMTcxLCAxLjE1OTM0LCAxLjQzOTIxIiwgXAotICAgICAgICAgICIwLjEwMzUyLCAwLjEzNzM2OCwgMC4zMjg2MTMsIDAuNDk2NzAyLCAwLjcyMDUwNywgMS4xNjgxLCAxLjQ0ODY2IiwgXAotICAgICAgICAgICIwLjExMzQ2OSwgMC4xNDcxMiwgMC4zMzgyNTgsIDAuNTA2MzczLCAwLjczMDE0MSwgMS4xNzg1LCAxLjQ1ODUzIiwgXAotICAgICAgICAgICIwLjEyODg4OSwgMC4xNjI5NzgsIDAuMzUzNzE5LCAwLjUyMTgwNywgMC43NDU1NjcsIDEuMTkzMjQsIDEuNDcyOTgiLCBcCi0gICAgICAgICAgIjAuMTQwODQzLCAwLjE3Njk2NSwgMC4zNjcyODcsIDAuNTM1MjY4LCAwLjc1OTEzOCwgMS4yMDcwNSwgMS40ODY1MyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNTQ3NjMsIDAuMjI1NjA0LCAwLjYyNzA0MiwgMC45ODE1ODYsIDEuNDU0MjcsIDIuMzk4NTIsIDIuOTg4ODYiLCBcCi0gICAgICAgICAgIjAuMTU0NzQ2LCAwLjIyNTU4NywgMC42MjcyMjYsIDAuOTgxNTY3LCAxLjQ1MzQsIDIuMzk4OCwgMi45ODg3IiwgXAotICAgICAgICAgICIwLjE1NzQ2NCwgMC4yMjY0MTksIDAuNjI3MDkyLCAwLjk4MTU2NiwgMS40NTQzMSwgMi4zOTg5NSwgMi45ODg2NyIsIFwKLSAgICAgICAgICAiMC4xNjMwNzEsIDAuMjMwMTQ2LCAwLjYyNzA3NCwgMC45ODE1MzQsIDEuNDU0MTEsIDIuMzk4NDYsIDIuOTg4ODgiLCBcCi0gICAgICAgICAgIjAuMTcwMjUzLCAwLjIzNTUxOSwgMC42MjcyOTksIDAuOTgxNTM5LCAxLjQ1NDE2LCAyLjM5ODkxLCAyLjk4ODY5IiwgXAotICAgICAgICAgICIwLjE4MzI1MSwgMC4yNDY2MDMsIDAuNjI5ODU3LCAwLjk4MTU2NCwgMS40NTQwNCwgMi4zOTg1OCwgMi45ODgzNiIsIFwKLSAgICAgICAgICAiMC4xOTU0MjEsIDAuMjU3NTI3LCAwLjYzNDM0MSwgMC45ODIyOTYsIDEuNDU0MTEsIDIuMzk4NjksIDIuOTg4NDUiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTA3MjUyLCAwLjE1MzY1OSwgMC40MTc0OTQsIDAuNjUyOTUyLCAwLjk2Njc5NiwgMS41OTQ4LCAxLjk4NzU0IiwgXAotICAgICAgICAgICIwLjExMzk1NiwgMC4xNjA0MywgMC40MjQzNzYsIDAuNjU5ODk3LCAwLjk3NDUyNywgMS42MDE2OSwgMS45OTQ5OCIsIFwKLSAgICAgICAgICAiMC4xMjAzMTgsIDAuMTY2OTE2LCAwLjQzMDc3MywgMC42NjY0NzYsIDAuOTgwMTY2LCAxLjYwODE2LCAyLjAwMTQ1IiwgXAotICAgICAgICAgICIwLjEyNjE2NCwgMC4xNzI3NjQsIDAuNDM2NjksIDAuNjcyMTcyLCAwLjk4NjI0NywgMS42MTM1MSwgMi4wMDcxMiIsIFwKLSAgICAgICAgICAiMC4xMzIwMzUsIDAuMTc4NjM1LCAwLjQ0Mjg2OCwgMC42Nzg2MTcsIDAuOTkyMDE5LCAxLjYxOTg3LCAyLjAxMjkxIiwgXAotICAgICAgICAgICIwLjE0MTU3NCwgMC4xODgyMTYsIDAuNDUxOTY4LCAwLjY4NzU4NiwgMS4wMDE1OCwgMS42Mjk2NywgMi4wMjM1NyIsIFwKLSAgICAgICAgICAiMC4xNDk0MywgMC4xOTY0NzksIDAuNDYwMTgyLCAwLjY5NTc2NCwgMS4wMTA2LCAxLjYzNzY0LCAyLjAzMTY1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE5MDY4MSwgMC4yODU5NTUsIDAuODM1ODQ0LCAxLjMyMDY2LCAxLjk3MjQsIDMuMjYxOTksIDQuMDcwNzkiLCBcCi0gICAgICAgICAgIjAuMTkwNTQ1LCAwLjI4NTc0NiwgMC44MzU0MDYsIDEuMzIwOTIsIDEuOTY4NDYsIDMuMjYyNDEsIDQuMDcxMTciLCBcCi0gICAgICAgICAgIjAuMTkwNzksIDAuMjg1Nzg4LCAwLjgzNjczMiwgMS4zMjEzMywgMS45Njg4MywgMy4yNjIwMSwgNC4wNzEwOSIsIFwKLSAgICAgICAgICAiMC4xOTIyMjMsIDAuMjg2NTk2LCAwLjgzNTgzOCwgMS4zMjEzOCwgMS45NzIyMywgMy4yNjQxOSwgNC4wNzE4NCIsIFwKLSAgICAgICAgICAiMC4xOTQ1NDQsIDAuMjg4MDE2LCAwLjgzNTQwNCwgMS4zMjA4MSwgMS45NzEwOCwgMy4yNjM3NywgNC4wNzEyOCIsIFwKLSAgICAgICAgICAiMC4xOTk1ODUsIDAuMjkxNzM5LCAwLjgzNjk4OSwgMS4zMjI4NSwgMS45NjksIDMuMjYyODIsIDQuMDcyMDEiLCBcCi0gICAgICAgICAgIjAuMjA1MTEyLCAwLjI5NjAzNSwgMC44MzgwMzYsIDEuMzIxMDcsIDEuOTY4MDgsIDMuMjY5MjYsIDQuMDcxNzIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjAiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3NDY3OCwgMC4xMDg3MzcsIDAuMzAxMTc5LCAwLjQ3MDQxNiwgMC42OTU5NTIsIDEuMTQ2NjgsIDEuNDI3OTgiLCBcCi0gICAgICAgICAgIjAuMDgwOTM4LCAwLjExNTAyMiwgMC4zMDc1MDQsIDAuNDc2NzM4LCAwLjcwMjE0OSwgMS4xNTI4NSwgMS40MzUwNyIsIFwKLSAgICAgICAgICAiMC4wODgzNDQsIDAuMTIyMzk2LCAwLjMxNDk5LCAwLjQ4NDI3MiwgMC43MDk2OTEsIDEuMTYwNTcsIDEuNDQxODkiLCBcCi0gICAgICAgICAgIjAuMDk1NzIsIDAuMTI5ODk3LCAwLjMyMjU1MiwgMC40OTE4NDYsIDAuNzE3MjgzLCAxLjE2Nzg5LCAxLjQ0OTk5IiwgXAotICAgICAgICAgICIwLjEwMzEzMywgMC4xMzcyMjUsIDAuMzMwMDg5LCAwLjQ5OTQyNCwgMC43MjQ3NzQsIDEuMTc1MzgsIDEuNDU3NDkiLCBcCi0gICAgICAgICAgIjAuMTEzNjk1LCAwLjE0OTAwOCwgMC4zNDIwNTMsIDAuNTExNjQzLCAwLjczNzEzNywgMS4xODc3LCAxLjQ2OTM2IiwgXAotICAgICAgICAgICIwLjEyMjAwOSwgMC4xNTg4NzQsIDAuMzUyMjQ1LCAwLjUyMTY4NiwgMC43NDcyNDEsIDEuMTk4OTIsIDEuNDgwNDMiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTQ5NjE2LCAwLjIyMDk5NCwgMC42MjU0NzksIDAuOTgyMDg3LCAxLjQ1ODAxLCAyLjQwOTcsIDMuMDAzMjciLCBcCi0gICAgICAgICAgIjAuMTQ5NjQ4LCAwLjIyMDk4OCwgMC42MjU0MTMsIDAuOTgyMTE3LCAxLjQ1Nzc3LCAyLjQwOTQyLCAzLjAwNDA3IiwgXAotICAgICAgICAgICIwLjE1MTU4MywgMC4yMjE2MzgsIDAuNjI1NDMyLCAwLjk4MjQyMywgMS40NTgwNiwgMi40MDk2LCAzLjAwNDA4IiwgXAotICAgICAgICAgICIwLjE1NTI4MywgMC4yMjQyNCwgMC42MjUzMzQsIDAuOTgyMDc2LCAxLjQ1ODAzLCAyLjQwOTQ1LCAzLjAwMzg4IiwgXAotICAgICAgICAgICIwLjE2MDE3MiwgMC4yMjc4NTQsIDAuNjI1NjgzLCAwLjk4MjQ3OCwgMS40NTc5NSwgMi40MDk0OSwgMy4wMDQxNiIsIFwKLSAgICAgICAgICAiMC4xNjkwMiwgMC4yMzUyOTQsIDAuNjI3NjY1LCAwLjk4MjM3NywgMS40NTgwOCwgMi40MDkyMSwgMy4wMDM5IiwgXAotICAgICAgICAgICIwLjE3NzkxMywgMC4yNDI3NzQsIDAuNjMwNzMxLCAwLjk4MzUyLCAxLjQ1OCwgMi40MDk1MiwgMy4wMDM5NSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDczMjIsIDAuMTUzNzUsIDAuNDE2MzQyLCAwLjY0ODE5LCAwLjk1NzcyNCwgMS41NzQ2MiwgMS45NjE3NCIsIFwKLSAgICAgICAgICAiMC4xMTQxNiwgMC4xNjA2NDgsIDAuNDIzMjc4LCAwLjY1NDg3OCwgMC45NjM2OSwgMS41ODExNiwgMS45Njc1NyIsIFwKLSAgICAgICAgICAiMC4xMjIzLCAwLjE2ODg0OCwgMC40MzE1NSwgMC42NjM0MzEsIDAuOTcyNTQ3LCAxLjU5MDE2LCAxLjk3NTgiLCBcCi0gICAgICAgICAgIjAuMTMwNTc3LCAwLjE3NzA5NSwgMC40NDAxNDksIDAuNjcyMTkzLCAwLjk4MTA5NCwgMS41OTg4OSwgMS45ODM3NyIsIFwKLSAgICAgICAgICAiMC4xMzg3OTUsIDAuMTg1MzI5LCAwLjQ0ODMzMiwgMC42ODA0OTgsIDAuOTg4ODg4LCAxLjYwNjU1LCAxLjk5MzU3IiwgXAotICAgICAgICAgICIwLjE1MjI1NywgMC4xOTg3NzksIDAuNDYxNywgMC42OTMzNjYsIDEuMDAyMjIsIDEuNjIwNzUsIDIuMDA1OTEiLCBcCi0gICAgICAgICAgIjAuMTYzNzA1LCAwLjIxMDYzMiwgMC40NzMzNTIsIDAuNzA1MjYzLCAxLjAxNDI5LCAxLjYzMzMzLCAyLjAxNzYzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE5NjU2MiwgMC4yOTE3MDMsIDAuODMxMzA0LCAxLjMwNzA4LCAxLjk0MTg1LCAzLjIwOTk2LCA0LjAwMjgiLCBcCi0gICAgICAgICAgIjAuMTk2NTIxLCAwLjI5MTY3OSwgMC44MzA5MzMsIDEuMzA2NzUsIDEuOTQxMTgsIDMuMjA5OTQsIDQuMDAzNzciLCBcCi0gICAgICAgICAgIjAuMTk2OTgxLCAwLjI5MTcwMiwgMC44MzEyNzUsIDEuMzA3MDQsIDEuOTQxMiwgMy4yMTAyNiwgNC4wMDQxIiwgXAotICAgICAgICAgICIwLjE5OTM5LCAwLjI5Mjg4OSwgMC44MzExOTQsIDEuMzA3NDMsIDEuOTQxMywgMy4yMDk4OCwgNC4wMDIyMSIsIFwKLSAgICAgICAgICAiMC4yMDMxNjUsIDAuMjk1MzEyLCAwLjgzMTIsIDEuMzA3MiwgMS45NDEzMywgMy4yMTE5NywgNC4wMDI4MSIsIFwKLSAgICAgICAgICAiMC4yMTExMDMsIDAuMzAxMTg4LCAwLjgzMTA5NSwgMS4zMDY4LCAxLjk0MTI0LCAzLjIwOTg5LCA0LjAwNTk3IiwgXAotICAgICAgICAgICIwLjIxOTIyNSwgMC4zMDc5OTYsIDAuODMyODMzLCAxLjMwNjgsIDEuOTQxNTgsIDMuMjEwNjMsIDQuMDAyMzciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3MjQ3NywgMC4xMDY0MDUsIDAuMjk4ODY5LCAwLjQ2ODEwNywgMC42OTM0NTEsIDEuMTQ0MzgsIDEuNDI1NjYiLCBcCi0gICAgICAgICAgIjAuMDc5OTMzLCAwLjExMzk3MywgMC4zMDY0MzUsIDAuNDc1NzYyLCAwLjcwMTA4LCAxLjE1MTk3LCAxLjQzNDIxIiwgXAotICAgICAgICAgICIwLjA4OTYzOCwgMC4xMjM2ODEsIDAuMzE2MTMsIDAuNDg1NDI0LCAwLjcxMDg4LCAxLjE2MTYxLCAxLjQ0NDE3IiwgXAotICAgICAgICAgICIwLjA5OTA4OSwgMC4xMzMwODIsIDAuMzI1NDI5LCAwLjQ5NDYyNywgMC43MTk5ODQsIDEuMTcwNTUsIDEuNDUyMjEiLCBcCi0gICAgICAgICAgIjAuMTA4OTgxLCAwLjE0Mjg1LCAwLjMzNTA2NSwgMC41MDQyNDcsIDAuNzI5NjMyLCAxLjE4MDEzLCAxLjQ2MjE5IiwgXAotICAgICAgICAgICIwLjEyNDEyMSwgMC4xNTg2NCwgMC4zNTA1NzIsIDAuNTE5Nzc2LCAwLjc0NTE3NCwgMS4xOTU2LCAxLjQ3NzI2IiwgXAotICAgICAgICAgICIwLjEzNTM4MywgMC4xNzI0NzQsIDAuMzY0MTUzLCAwLjUzMzI5MiwgMC43NTg2OCwgMS4yMDkwMSwgMS40OTA1OCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNDk2MzYsIDAuMjIwOTc5LCAwLjYyNTM1LCAwLjk4MjEwOSwgMS40NTc5OCwgMi40MDk2NCwgMy4wMDM5NyIsIFwKLSAgICAgICAgICAiMC4xNDk2MjIsIDAuMjIwOTgxLCAwLjYyNTU5NSwgMC45ODIyNjYsIDEuNDU3ODEsIDIuNDA5NjIsIDMuMDA0MDIiLCBcCi0gICAgICAgICAgIjAuMTUyNjY5LCAwLjIyMTg5NCwgMC42MjUzODQsIDAuOTgyMzI1LCAxLjQ1ODEzLCAyLjQwOTc2LCAzLjAwMzkyIiwgXAotICAgICAgICAgICIwLjE1ODY5NSwgMC4yMjU5MzUsIDAuNjI1MzUsIDAuOTgyMzU1LCAxLjQ1NzcyLCAyLjQwOTQ1LCAzLjAwMzg5IiwgXAotICAgICAgICAgICIwLjE2NjA2NCwgMC4yMzE2MjEsIDAuNjI1NDkxLCAwLjk4MjI5NCwgMS40NTc4MSwgMi40MDkwMSwgMy4wMDQxNiIsIFwKLSAgICAgICAgICAiMC4xNzkzNSwgMC4yNDI4MzIsIDAuNjI4Mjc1LCAwLjk4MjM2LCAxLjQ1ODA3LCAyLjQwOTA2LCAzLjAwMzg2IiwgXAotICAgICAgICAgICIwLjE5MTY4NiwgMC4yNTM5NDUsIDAuNjMyODU0LCAwLjk4MzAzNiwgMS40NTc4NiwgMi40MDk0NywgMy4wMDM5MSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDQ0OTcsIDAuMTUxNjU4LCAwLjQxODU4NywgMC42NTQwNzEsIDAuOTY4NjY2LCAxLjU5NTY2LCAxLjk4OTI2IiwgXAotICAgICAgICAgICIwLjExMTIzNSwgMC4xNTg1MzQsIDAuNDI1NDg2LCAwLjY2MDg3MSwgMC45NzQ3MDYsIDEuNjAyNDEsIDEuOTk0ODIiLCBcCi0gICAgICAgICAgIjAuMTE5MSwgMC4xNjY1MTIsIDAuNDMzNjEzLCAwLjY2OTAyNCwgMC45ODM1MDYsIDEuNjExODEsIDIuMDAzNDEiLCBcCi0gICAgICAgICAgIjAuMTI3MTI5LCAwLjE3NDUyMiwgMC40NDIwMzQsIDAuNjc3ODk1LCAwLjk5MTg2MiwgMS42MTk3NSwgMi4wMTA5NSIsIFwKLSAgICAgICAgICAiMC4xMzUxNDMsIDAuMTgyNTExLCAwLjQ1MDA1MSwgMC42ODYwMzYsIDAuOTk5NDg5LCAxLjYyNzIxLCAyLjAyMDY2IiwgXAotICAgICAgICAgICIwLjE0ODQ3NCwgMC4xOTU2NjYsIDAuNDYzMTYyLCAwLjY5ODY5NiwgMS4wMTI5OSwgMS42NDIxNiwgMi4wMzIzMyIsIFwKLSAgICAgICAgICAiMC4xNTkyNzksIDAuMjA3Mjc4LCAwLjQ3NDU2MywgMC43MTAzNDYsIDEuMDI0NjksIDEuNjUxOTMsIDIuMDQ0ODMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTk0Mjg1LCAwLjI5MTQxMywgMC44NDE1NTEsIDEuMzI3MTMsIDEuOTc0NzYsIDMuMjY4NDIsIDQuMDc3NDgiLCBcCi0gICAgICAgICAgIjAuMTk0MzUsIDAuMjkxNDYsIDAuODQxNDA3LCAxLjMyNjgyLCAxLjk3NDA3LCAzLjI2ODc4LCA0LjA3ODg4IiwgXAotICAgICAgICAgICIwLjE5NDc3MiwgMC4yOTE0NjgsIDAuODQxNzYxLCAxLjMyNjgyLCAxLjk3MzkzLCAzLjI2ODMyLCA0LjA4MDM1IiwgXAotICAgICAgICAgICIwLjE5NzI5MSwgMC4yOTI1NjEsIDAuODQxNzU2LCAxLjMyNzQ4LCAxLjk3NDE0LCAzLjI2ODI3LCA0LjA3NzQ5IiwgXAotICAgICAgICAgICIwLjIwMTEwNCwgMC4yOTQ5NzksIDAuODQxNTQ0LCAxLjMyNzMsIDEuOTc0MTgsIDMuMjcwNjIsIDQuMDc3MjMiLCBcCi0gICAgICAgICAgIjAuMjA5MjQ0LCAwLjMwMDgyNiwgMC44NDE1MzUsIDEuMzI3NTcsIDEuOTczOTMsIDMuMjY5MjgsIDQuMDc3MzUiLCBcCi0gICAgICAgICAgIjAuMjE3MDcsIDAuMzA3NjU1LCAwLjg0MzI2OSwgMS4zMjY4NCwgMS45NzM5MywgMy4yNjgwMywgNC4wNzY5OCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM4NywgMC4wNTc0NTQsIDAuMTYzNDE1LCAwLjI1Njg1MiwgMC4zODEyNzUsIDAuNjI5NDk5LCAwLjc4NDcwNCIsIFwKLSAgICAgICAgICAiMC4wNDY5NjUsIDAuMDY1NzMzLCAwLjE3MTY5MywgMC4yNjUwOTIsIDAuMzg5NTc5LCAwLjYzNzg3MywgMC43OTI4NjEiLCBcCi0gICAgICAgICAgIjAuMDU3NDIyLCAwLjA3NjA2NSwgMC4xODIwMDIsIDAuMjc1MzgxLCAwLjM5OTcyNCwgMC42NDgwMjMsIDAuODAzMDM4IiwgXAotICAgICAgICAgICIwLjA2NzY3NiwgMC4wODY2MzcsIDAuMTkyNDQ1LCAwLjI4NTg0OCwgMC40MTAyMzksIDAuNjU4MzAyLCAwLjgxMzQ4NiIsIFwKLSAgICAgICAgICAiMC4wNzYwMjksIDAuMDk3MTE5LCAwLjIwMjg5NSwgMC4yOTYzMjYsIDAuNDIwNzA3LCAwLjY2ODgwOCwgMC44MjM4NzciLCBcCi0gICAgICAgICAgIjAuMDg2OTMyLCAwLjExMTU0NiwgMC4yMTk2NjMsIDAuMzEyOTQsIDAuNDM3MzM2LCAwLjY4NTQ5MywgMC44NDA0MzYiLCBcCi0gICAgICAgICAgIjAuMDk1NTA1LCAwLjEyMjI2NiwgMC4yMzQ0MDksIDAuMzI3NjExLCAwLjQ1MTkyLCAwLjcwMDExMiwgMC44NTUxMDciKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDgyMjkzLCAwLjEyMTM0LCAwLjM0Mjg4NiwgMC41Mzg1NDMsIDAuNzk5NDE1LCAxLjMyMTcxLCAxLjY0ODA1IiwgXAotICAgICAgICAgICIwLjA4MzY0LCAwLjEyMTY3MywgMC4zNDI5MjYsIDAuNTM4NTM2LCAwLjc5OTYxMywgMS4zMjE3NywgMS42NDc5NCIsIFwKLSAgICAgICAgICAiMC4wOTAwNzYsIDAuMTI2MDY5LCAwLjM0MjkxMSwgMC41Mzg1NDEsIDAuNzk5NDk5LCAxLjMyMTc2LCAxLjY0ODEyIiwgXAotICAgICAgICAgICIwLjA5ODUwOSwgMC4xMzI5OTcsIDAuMzQ0MjI3LCAwLjUzODY5OSwgMC43OTk3MTIsIDEuMzIxNzIsIDEuNjQ4MjYiLCBcCi0gICAgICAgICAgIjAuMTA3OTI4LCAwLjE0MTIzNiwgMC4zNDc1ODUsIDAuNTM5MjEzLCAwLjc5OTQzMywgMS4zMjE3NSwgMS42NDc1MSIsIFwKLSAgICAgICAgICAiMC4xMjM5OCwgMC4xNTU5MjcsIDAuMzU1NTMyLCAwLjU0MzA2OSwgMC43OTk5MDIsIDEuMzIxNzEsIDEuNjQ4MiIsIFwKLSAgICAgICAgICAiMC4xMzYyNDQsIDAuMTY5NjM5LCAwLjM2NDUzNSwgMC41NDg3OTEsIDAuODAyMTczLCAxLjMyMTY4LCAxLjY0NzQzIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwMDk5MSwgMC4xNDc0NTcsIDAuNDExMjY2LCAwLjY0Njg4LCAwLjk2MTMyNCwgMS41ODk4NywgMS45ODExOCIsIFwKLSAgICAgICAgICAiMC4xMDgwNzUsIDAuMTU0NjI2LCAwLjQxODcwMSwgMC42NTM5OTksIDAuOTY3NzI2LCAxLjU5NTI4LCAxLjk4NzUyIiwgXAotICAgICAgICAgICIwLjExNzE3NiwgMC4xNjM2MjksIDAuNDI3NjgzLCAwLjY2MzM2NiwgMC45NzczOTEsIDEuNjA1MSwgMS45OTcwNyIsIFwKLSAgICAgICAgICAiMC4xMjY0MzksIDAuMTcyNzgxLCAwLjQzNjc1OSwgMC42NzIzNjMsIDAuOTg2MDY4LCAxLjYxMzg0LCAyLjAwOCIsIFwKLSAgICAgICAgICAiMC4xMzU5ODcsIDAuMTgyMTI1LCAwLjQ0NTkxMiwgMC42ODE0NzYsIDAuOTk1MTM2LCAxLjYyMzMzLCAyLjAxNTU1IiwgXAotICAgICAgICAgICIwLjE1MTQ2NSwgMC4xOTc0MDgsIDAuNDYwODk0LCAwLjY5NjI0NCwgMS4wMTAxOSwgMS42Mzg3NSwgMi4wMjk0NiIsIFwKLSAgICAgICAgICAiMC4xNjUwMzksIDAuMjEwOTQyLCAwLjQ3MzcyNCwgMC43MDkxOTMsIDEuMDIyOTYsIDEuNjUwNDMsIDIuMDQ0MzkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTk2NTY2LCAwLjI5MTcxNywgMC44NDEzOTIsIDEuMzI3MTMsIDEuOTc0NDMsIDMuMjY5MzYsIDQuMDc3MjIiLCBcCi0gICAgICAgICAgIjAuMTk2MzQsIDAuMjkxNjc4LCAwLjg0MTU2MiwgMS4zMjY5MywgMS45NzQwMiwgMy4yNjc4OCwgNC4wNzk3IiwgXAotICAgICAgICAgICIwLjE5NzAzNCwgMC4yOTE2MjEsIDAuODQxNDQ3LCAxLjMyNjc5LCAxLjk3MzkzLCAzLjI2ODI2LCA0LjA3NzA4IiwgXAotICAgICAgICAgICIwLjIwMDY3OCwgMC4yOTMyMTMsIDAuODQxOTgsIDEuMzI2ODIsIDEuOTc0NDYsIDMuMjY5MzYsIDQuMDc4MjYiLCBcCi0gICAgICAgICAgIjAuMjA2MDQ2LCAwLjI5NjczMSwgMC44NDE3ODksIDEuMzI2OTYsIDEuOTc0MTIsIDMuMjY5NSwgNC4wNzY5MyIsIFwKLSAgICAgICAgICAiMC4yMTY0NjYsIDAuMzA1MTIyLCAwLjg0MTU0NSwgMS4zMjY4NSwgMS45NzM5MywgMy4yNjg2NSwgNC4wNzc0OCIsIFwKLSAgICAgICAgICAiMC4yMjY3NSwgMC4zMTM5MDcsIDAuODQzNDgxLCAxLjMyNywgMS45NzQzMiwgMy4yNjgzLCA0LjA3Nzg0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNTQzMSwgMC4wMDU0MzIsIDAuMDA1NDMsIDAuMDA1NDMsIDAuMDA1NDI4LCAwLjAwNTQyNywgMC4wMDU0MjQiLCBcCi0gICAgICAgICAgIjAuMDA1NDA5LCAwLjAwNTQxMSwgMC4wMDU0MTIsIDAuMDA1NDEyLCAwLjAwNTQxMSwgMC4wMDU0MDgsIDAuMDA1NDA3IiwgXAotICAgICAgICAgICIwLjAwNTQwNiwgMC4wMDU0MDgsIDAuMDA1NDEsIDAuMDA1NDA5LCAwLjAwNTQwOSwgMC4wMDU0MDksIDAuMDA1NDA1IiwgXAotICAgICAgICAgICIwLjAwNTQxNywgMC4wMDU0MTYsIDAuMDA1NDEzLCAwLjAwNTQxMSwgMC4wMDU0MDksIDAuMDA1NDA2LCAwLjAwNTQwNCIsIFwKLSAgICAgICAgICAiMC4wMDU0MzksIDAuMDA1NDMyLCAwLjAwNTQyLCAwLjAwNTQxNiwgMC4wMDU0MTIsIDAuMDA1NDA3LCAwLjAwNTQwOCIsIFwKLSAgICAgICAgICAiMC4wMDU0OTQsIDAuMDA1NDc0LCAwLjAwNTQ0LCAwLjAwNTQzLCAwLjAwNTQyMSwgMC4wMDU0MTMsIDAuMDA1NDExIiwgXAotICAgICAgICAgICIwLjAwNTU2MSwgMC4wMDU1MjcsIDAuMDA1NDY2LCAwLjAwNTQ0NywgMC4wMDU0MzUsIDAuMDA1NDIyLCAwLjAwNTQxNiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTMyLCAwLjAwMTMyMSwgMC4wMDEzMjMsIDAuMDAxMzIzLCAwLjAwMTMyMiwgMC4wMDEzMjIsIDAuMDAxMzIxIiwgXAotICAgICAgICAgICIwLjAwMTI5MywgMC4wMDEyOTgsIDAuMDAxMzA2LCAwLjAwMTMwOCwgMC4wMDEzMDgsIDAuMDAxMzA5LCAwLjAwMTMwOCIsIFwKLSAgICAgICAgICAiMC4wMDEyNzcsIDAuMDAxMjg1LCAwLjAwMTMsIDAuMDAxMzAzLCAwLjAwMTMwNSwgMC4wMDEzMDYsIDAuMDAxMzA1IiwgXAotICAgICAgICAgICIwLjAwMTI2OCwgMC4wMDEyNzgsIDAuMDAxMjk2LCAwLjAwMTMsIDAuMDAxMzAyLCAwLjAwMTMwNCwgMC4wMDEzMDQiLCBcCi0gICAgICAgICAgIjAuMDAxMjY3LCAwLjAwMTI3NiwgMC4wMDEyOTQsIDAuMDAxMjk4LCAwLjAwMTMwMSwgMC4wMDEzMDMsIDAuMDAxMzAzIiwgXAotICAgICAgICAgICIwLjAwMTI4MywgMC4wMDEyODYsIDAuMDAxMjk3LCAwLjAwMTMsIDAuMDAxMzAyLCAwLjAwMTMwMywgMC4wMDEzMDQiLCBcCi0gICAgICAgICAgIjAuMDAxMzE2LCAwLjAwMTMxLCAwLjAwMTMwNywgMC4wMDEzMDcsIDAuMDAxMzA3LCAwLjAwMTMwNiwgMC4wMDEzMDYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0OTg3LCAwLjAwNDk4NywgMC4wMDQ5ODgsIDAuMDA0OTg2LCAwLjAwNDk4NSwgMC4wMDQ5ODIsIDAuMDA0OTgyIiwgXAotICAgICAgICAgICIwLjAwNDk2MSwgMC4wMDQ5NjcsIDAuMDA0OTY5LCAwLjAwNDk2OCwgMC4wMDQ5NjcsIDAuMDA0OTY1LCAwLjAwNDk2NSIsIFwKLSAgICAgICAgICAiMC4wMDQ5NzEsIDAuMDA0OTcsIDAuMDA0OTY4LCAwLjAwNDk2NywgMC4wMDQ5NjUsIDAuMDA0OTYyLCAwLjAwNDk2MiIsIFwKLSAgICAgICAgICAiMC4wMDUwMDQsIDAuMDA0OTk1LCAwLjAwNDk3OCwgMC4wMDQ5NzMsIDAuMDA0OTY5LCAwLjAwNDk2NiwgMC4wMDQ5NjIiLCBcCi0gICAgICAgICAgIjAuMDA1MDQ3LCAwLjAwNTAyOCwgMC4wMDQ5OTMsIDAuMDA0OTgzLCAwLjAwNDk3NSwgMC4wMDQ5NjcsIDAuMDA0OTY1IiwgXAotICAgICAgICAgICIwLjAwNTE0LCAwLjAwNTA5NywgMC4wMDUwMjUsIDAuMDA1MDA3LCAwLjAwNDk5NCwgMC4wMDQ5NzcsIDAuMDA0OTczIiwgXAotICAgICAgICAgICIwLjAwNTI0MywgMC4wMDUxNzIsIDAuMDA1MDYzLCAwLjAwNTAzMSwgMC4wMDUwMTMsIDAuMDA0OTg5LCAwLjAwNDk4MyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTAwOCwgMC4wMDEwMTIsIDAuMDAxMDE3LCAwLjAwMTAxNywgMC4wMDEwMTgsIDAuMDAxMDE4LCAwLjAwMTAxOCIsIFwKLSAgICAgICAgICAiMC4wMDA5NzksIDAuMDAwOTk0LCAwLjAwMTAxOCwgMC4wMDEwMjMsIDAuMDAxMDI1LCAwLjAwMTAyNywgMC4wMDEwMjgiLCBcCi0gICAgICAgICAgIjAuMDAwOTQzLCAwLjAwMDk2NiwgMC4wMDEwMDYsIDAuMDAxMDE2LCAwLjAwMTAyMSwgMC4wMDEwMjUsIDAuMDAxMDI2IiwgXAotICAgICAgICAgICIwLjAwMDkxOSwgMC4wMDA5NDYsIDAuMDAwOTk2LCAwLjAwMTAwOSwgMC4wMDEwMTYsIDAuMDAxMDIyLCAwLjAwMTAyNCIsIFwKLSAgICAgICAgICAiMC4wMDA5MDgsIDAuMDAwOTM0LCAwLjAwMDk4OCwgMC4wMDEwMDMsIDAuMDAxMDEyLCAwLjAwMTAyLCAwLjAwMTAyMiIsIFwKLSAgICAgICAgICAiMC4wMDA5MTQsIDAuMDAwOTMzLCAwLjAwMDk4NCwgMC4wMDA5OTksIDAuMDAxMDA5LCAwLjAwMTAxOCwgMC4wMDEwMjEiLCBcCi0gICAgICAgICAgIjAuMDAwOTQxLCAwLjAwMDk0OSwgMC4wMDA5ODcsIDAuMDAxMDAxLCAwLjAwMTAxLCAwLjAwMTAxOSwgMC4wMDEwMjEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0MTg3LCAwLjAwNDE4NywgMC4wMDQxODgsIDAuMDA0MTg4LCAwLjAwNDE4OCwgMC4wMDQxODYsIDAuMDA0MTg2IiwgXAotICAgICAgICAgICIwLjAwNDE3NSwgMC4wMDQxOCwgMC4wMDQxODcsIDAuMDA0MTg3LCAwLjAwNDE4OCwgMC4wMDQxODgsIDAuMDA0MTg3IiwgXAotICAgICAgICAgICIwLjAwNDE2OCwgMC4wMDQxNzUsIDAuMDA0MTg1LCAwLjAwNDE4NywgMC4wMDQxODgsIDAuMDA0MTg3LCAwLjAwNDE4NyIsIFwKLSAgICAgICAgICAiMC4wMDQxNzcsIDAuMDA0MTgxLCAwLjAwNDE4NywgMC4wMDQxODgsIDAuMDA0MTg5LCAwLjAwNDE4OCwgMC4wMDQxODgiLCBcCi0gICAgICAgICAgIjAuMDA0MTk4LCAwLjAwNDE5NSwgMC4wMDQxOTUsIDAuMDA0MTkzLCAwLjAwNDE5MiwgMC4wMDQxOSwgMC4wMDQxODkiLCBcCi0gICAgICAgICAgIjAuMDA0MjUxLCAwLjAwNDIzNywgMC4wMDQyMTQsIDAuMDA0MjA3LCAwLjAwNDIwMiwgMC4wMDQxOTgsIDAuMDA0MTk0IiwgXAotICAgICAgICAgICIwLjAwNDMxOCwgMC4wMDQyODcsIDAuMDA0MjM5LCAwLjAwNDIyNCwgMC4wMDQyMTQsIDAuMDA0MjA0LCAwLjAwNDIwMiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTMyMiwgMC4wMDEzMjMsIDAuMDAxMzI0LCAwLjAwMTMyNCwgMC4wMDEzMjQsIDAuMDAxMzI0LCAwLjAwMTMyMyIsIFwKLSAgICAgICAgICAiMC4wMDEyOTUsIDAuMDAxMywgMC4wMDEzMDgsIDAuMDAxMzA5LCAwLjAwMTMxLCAwLjAwMTMxLCAwLjAwMTMxIiwgXAotICAgICAgICAgICIwLjAwMTI4MiwgMC4wMDEyODksIDAuMDAxMzAyLCAwLjAwMTMwNSwgMC4wMDEzMDcsIDAuMDAxMzA4LCAwLjAwMTMwNyIsIFwKLSAgICAgICAgICAiMC4wMDEyOCwgMC4wMDEyODcsIDAuMDAxMywgMC4wMDEzMDQsIDAuMDAxMzA1LCAwLjAwMTMwNiwgMC4wMDEzMDciLCBcCi0gICAgICAgICAgIjAuMDAxMjkyLCAwLjAwMTI5NCwgMC4wMDEzMDIsIDAuMDAxMzA0LCAwLjAwMTMwNiwgMC4wMDEzMDYsIDAuMDAxMzA2IiwgXAotICAgICAgICAgICIwLjAwMTMzMywgMC4wMDEzMjQsIDAuMDAxMzE0LCAwLjAwMTMxMiwgMC4wMDEzMTEsIDAuMDAxMzA5LCAwLjAwMTMwOSIsIFwKLSAgICAgICAgICAiMC4wMDEzODcsIDAuMDAxMzY2LCAwLjAwMTMzMiwgMC4wMDEzMjQsIDAuMDAxMzE5LCAwLjAwMTMxNCwgMC4wMDEzMTMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzNzQsIDAuMDAzNzQxLCAwLjAwMzc0MywgMC4wMDM3NDMsIDAuMDAzNzQzLCAwLjAwMzc0MiwgMC4wMDM3NDEiLCBcCi0gICAgICAgICAgIjAuMDAzNzMxLCAwLjAwMzczNSwgMC4wMDM3NDEsIDAuMDAzNzQyLCAwLjAwMzc0MiwgMC4wMDM3NDIsIDAuMDAzNzQxIiwgXAotICAgICAgICAgICIwLjAwMzczNywgMC4wMDM3MzksIDAuMDAzNzQyLCAwLjAwMzc0MywgMC4wMDM3NDQsIDAuMDAzNzQyLCAwLjAwMzc0MiIsIFwKLSAgICAgICAgICAiMC4wMDM3NzIsIDAuMDAzNzY3LCAwLjAwMzc1NSwgMC4wMDM3NTIsIDAuMDAzNzQ4LCAwLjAwMzc0NiwgMC4wMDM3NDQiLCBcCi0gICAgICAgICAgIjAuMDAzODE1LCAwLjAwMzc5NywgMC4wMDM3NywgMC4wMDM3NjIsIDAuMDAzNzU2LCAwLjAwMzc1LCAwLjAwMzc0OCIsIFwKLSAgICAgICAgICAiMC4wMDM5MDQsIDAuMDAzODY0LCAwLjAwMzgsIDAuMDAzNzg1LCAwLjAwMzc3MywgMC4wMDM3NjEsIDAuMDAzNzU3IiwgXAotICAgICAgICAgICIwLjAwNDAwNiwgMC4wMDM5MzYsIDAuMDAzODM2LCAwLjAwMzgxMSwgMC4wMDM3OTIsIDAuMDAzNzcxLCAwLjAwMzc2NCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTAwMiwgMC4wMDEwMDcsIDAuMDAxMDExLCAwLjAwMTAxMiwgMC4wMDEwMTMsIDAuMDAxMDEzLCAwLjAwMTAxMyIsIFwKLSAgICAgICAgICAiMC4wMDA5NzUsIDAuMDAwOTksIDAuMDAxMDEzLCAwLjAwMTAxOCwgMC4wMDEwMjEsIDAuMDAxMDIzLCAwLjAwMTAyMyIsIFwKLSAgICAgICAgICAiMC4wMDA5NDIsIDAuMDAwOTY1LCAwLjAwMTAwMywgMC4wMDEwMTIsIDAuMDAxMDE3LCAwLjAwMTAyMSwgMC4wMDEwMjIiLCBcCi0gICAgICAgICAgIjAuMDAwOTI4LCAwLjAwMDk1MSwgMC4wMDA5OTUsIDAuMDAxMDA2LCAwLjAwMTAxMywgMC4wMDEwMTksIDAuMDAxMDIiLCBcCi0gICAgICAgICAgIjAuMDAwOTMxLCAwLjAwMDk0OSwgMC4wMDA5OTIsIDAuMDAxMDAzLCAwLjAwMTAxMSwgMC4wMDEwMTgsIDAuMDAxMDE5IiwgXAotICAgICAgICAgICIwLjAwMDk2MiwgMC4wMDA5NjYsIDAuMDAwOTk1LCAwLjAwMTAwNSwgMC4wMDEwMTIsIDAuMDAxMDE4LCAwLjAwMTAyIiwgXAotICAgICAgICAgICIwLjAwMTAwOSwgMC4wMDEwMDEsIDAuMDAxMDA3LCAwLjAwMTAxMiwgMC4wMDEwMTcsIDAuMDAxMDIxLCAwLjAwMTAyMiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDMxMSwgMC4wMDMxMTMsIDAuMDAzMTE4LCAwLjAwMzExOSwgMC4wMDMxMTksIDAuMDAzMTIsIDAuMDAzMTIiLCBcCi0gICAgICAgICAgIjAuMDAzMTEzLCAwLjAwMzEyMSwgMC4wMDMxMzIsIDAuMDAzMTM2LCAwLjAwMzEzNSwgMC4wMDMxMzUsIDAuMDAzMTM3IiwgXAotICAgICAgICAgICIwLjAwMzEzMiwgMC4wMDMxMzQsIDAuMDAzMTQsIDAuMDAzMTQxLCAwLjAwMzE0MSwgMC4wMDMxNDMsIDAuMDAzMTQ0IiwgXAotICAgICAgICAgICIwLjAwMzE3MiwgMC4wMDMxNjMsIDAuMDAzMTUyLCAwLjAwMzE0OSwgMC4wMDMxNDcsIDAuMDAzMTQ4LCAwLjAwMzE0NyIsIFwKLSAgICAgICAgICAiMC4wMDMyMzMsIDAuMDAzMjA0LCAwLjAwMzE2OCwgMC4wMDMxNiwgMC4wMDMxNTYsIDAuMDAzMTUxLCAwLjAwMzE1IiwgXAotICAgICAgICAgICIwLjAwMzM2NCwgMC4wMDMyOTksIDAuMDAzMjA4LCAwLjAwMzE4OSwgMC4wMDMxNzcsIDAuMDAzMTY1LCAwLjAwMzE2IiwgXAotICAgICAgICAgICIwLjAwMzQ0MSwgMC4wMDM0MDIsIDAuMDAzMjUzLCAwLjAwMzIxOSwgMC4wMDMxOTksIDAuMDAzMTgsIDAuMDAzMTczIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxMzY4LCAwLjAwMTM3MiwgMC4wMDEzNzgsIDAuMDAxMzc5LCAwLjAwMTM3OSwgMC4wMDEzNzksIDAuMDAxMzc5IiwgXAotICAgICAgICAgICIwLjAwMTMzOSwgMC4wMDEzNSwgMC4wMDEzNjksIDAuMDAxMzczLCAwLjAwMTM3NSwgMC4wMDEzNzcsIDAuMDAxMzc3IiwgXAotICAgICAgICAgICIwLjAwMTM0NiwgMC4wMDEzNTEsIDAuMDAxMzY2LCAwLjAwMTM3MiwgMC4wMDEzNzQsIDAuMDAxMzc2LCAwLjAwMTM3NiIsIFwKLSAgICAgICAgICAiMC4wMDEzOCwgMC4wMDEzNzQsIDAuMDAxMzczLCAwLjAwMTM3NSwgMC4wMDEzNzYsIDAuMDAxMzc3LCAwLjAwMTM3NyIsIFwKLSAgICAgICAgICAiMC4wMDE0MzMsIDAuMDAxNDEzLCAwLjAwMTM4NywgMC4wMDEzODQsIDAuMDAxMzgyLCAwLjAwMTM4MSwgMC4wMDEzOCIsIFwKLSAgICAgICAgICAiMC4wMDE1NDQsIDAuMDAxNTAyLCAwLjAwMTQyNSwgMC4wMDE0MDgsIDAuMDAxMzk5LCAwLjAwMTM5MSwgMC4wMDEzODgiLCBcCi0gICAgICAgICAgIjAuMDAxNjU4LCAwLjAwMTU4OSwgMC4wMDE0NywgMC4wMDE0NDMsIDAuMDAxNDIzLCAwLjAwMTQwNiwgMC4wMDE0Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogT0FJMjJYTCAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChPQUkyMlhMKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMjI5NDQ0OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjQ2NDY1OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDY0NTcwMzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2NDY0NjU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjk2LCAwLjAwMDI5NiwgMC4wMDAyOTYsIDAuMDAwMjk2LCAwLjAwMDI5NiwgMC4wMDAyOTYsIDAuMDAwMjk2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzAyLCAwLjAwMDI5OCwgMC4wMDAyOTgsIDAuMDAwMjk4LCAwLjAwMDI5OCwgMC4wMDAyOTgsIDAuMDAwMjk3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihBMSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjY3NjY7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjY3NjY7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjY2MzU2OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDI5NywgMC4wMDAyOTcsIDAuMDAwMjk2LCAwLjAwMDI5NiwgMC4wMDAyOTYsIDAuMDAwMjk2LCAwLjAwMDI5NiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDMwMSwgMC4wMDAyOTgsIDAuMDAwMjk4LCAwLjAwMDI5NywgMC4wMDAyOTcsIDAuMDAwMjk3LCAwLjAwMDI5NyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQjApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYyOTY2MjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2Mjc3ODc7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjI5NjYyOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDY2NiwgMC4wMDA2NjYsIDAuMDAwNjY2LCAwLjAwMDY2NiwgMC4wMDA2NjYsIDAuMDAwNjY2LCAwLjAwMDY2NiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDMzNywgMC4wMDAzMzgsIDAuMDAwMzM3LCAwLjAwMDMzOCwgMC4wMDAzMzgsIDAuMDAwMzM4LCAwLjAwMDMzOCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQjEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY0ODkyMzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2NDg5MjM7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjQ4NzYzOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDY2NiwgMC4wMDA2NjYsIDAuMDAwNjY2LCAwLjAwMDY2NiwgMC4wMDA2NjYsIDAuMDAwNjY2LCAwLjAwMDY2NiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDMzNywgMC4wMDAzMzcsIDAuMDAwMzM3LCAwLjAwMDMzNywgMC4wMDAzMzcsIDAuMDAwMzM3LCAwLjAwMDMzNyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjExMDAxNDsKLSAgICBmdW5jdGlvbiA6ICIoISgoQjArQjEpIChBMCtBMSkpKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTAiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExNjY5NywgMC4xMzU1ODIsIDAuMzA2NjUxLCAwLjU5MDczNywgMC44NzUwMTgsIDEuNTM3MDcsIDEuOTE3OTkiLCBcCi0gICAgICAgICAgIjAuMTIyNTA3LCAwLjE0MTQ4NiwgMC4zMTI1NzMsIDAuNTk2NzAyLCAwLjg4MDA5OCwgMS41NDI5MSwgMS45MjA4MiIsIFwKLSAgICAgICAgICAiMC4xMjk1MiwgMC4xNDg1NjIsIDAuMzE5Njg5LCAwLjYwMzYzNiwgMC44ODc3MywgMS41NDk0LCAxLjkyOTM1IiwgXAotICAgICAgICAgICIwLjEzNjUzMywgMC4xNTU2MDUsIDAuMzI2Nzg4LCAwLjYxMDc0NSwgMC44OTQ0NDUsIDEuNTU4OTksIDEuOTM2MTkiLCBcCi0gICAgICAgICAgIjAuMTQzNzYzLCAwLjE2MjU3NCwgMC4zMzM5MDEsIDAuNjE3NzI2LCAwLjkwMjAxMywgMS41NjQxMiwgMS45NDM0MyIsIFwKLSAgICAgICAgICAiMC4xNTUyMDgsIDAuMTczOTQ1LCAwLjM0NTQ0OCwgMC42Mjg5MTEsIDAuOTEyNjA0LCAxLjU3NDk5LCAxLjk1NDk4IiwgXAotICAgICAgICAgICIwLjE2NDg1MiwgMC4xODM5NTksIDAuMzU1MDI2LCAwLjYzOTc4MSwgMC45MjMzODIsIDEuNTg3NDIsIDEuOTY0MzEiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjM1NTM4LCAwLjI3NTYyNiwgMC42MzcwNzUsIDEuMjM5MTQsIDEuODQwOTIsIDMuMjQ0NzUsIDQuMDQ1NzYiLCBcCi0gICAgICAgICAgIjAuMjM1NTI4LCAwLjI3NTY0NiwgMC42MzY5NDUsIDEuMjM4OTIsIDEuODQwODUsIDMuMjQzODQsIDQuMDQ2MyIsIFwKLSAgICAgICAgICAiMC4yMzYxNjIsIDAuMjc1OTg1LCAwLjYzNjk1OCwgMS4yMzkxMiwgMS44NDA5NSwgMy4yNDQ3MiwgNC4wNDYxOCIsIFwKLSAgICAgICAgICAiMC4yMzg1MTgsIDAuMjc3ODYyLCAwLjYzNjkxNCwgMS4yMzg3OCwgMS44NDA4NSwgMy4yNDQ2MywgNC4wNDY5NyIsIFwKLSAgICAgICAgICAiMC4yNDIxNzgsIDAuMjgwODQsIDAuNjM3MTQzLCAxLjIzOTA1LCAxLjg0MDgyLCAzLjI0NDY1LCA0LjA0NjkzIiwgXAotICAgICAgICAgICIwLjI0OTQ2NiwgMC4yODczNzIsIDAuNjM5MjA2LCAxLjIzOTA5LCAxLjg0MDc0LCAzLjI0NDU0LCA0LjA0Njg4IiwgXAotICAgICAgICAgICIwLjI1NjgxNywgMC4yOTQzMDEsIDAuNjQyNjYxLCAxLjIzOTIsIDEuODQwODUsIDMuMjQ0NzMsIDQuMDQ2NjciKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTA4NzU2LCAwLjEyNjAwMSwgMC4yODExMjMsIDAuNTM5MjksIDAuNzk4MDgxLCAxLjQwMTA2LCAxLjc0NDM0IiwgXAotICAgICAgICAgICIwLjExNTk5MSwgMC4xMzMyNDUsIDAuMjg4MzEyLCAwLjU0NjU2OCwgMC44MDQ1NjcsIDEuNDA3NTQsIDEuNzUxMjIiLCBcCi0gICAgICAgICAgIjAuMTIzODgsIDAuMTQxMTQ5LCAwLjI5NjMyNCwgMC41NTQ4MTEsIDAuODEyOTksIDEuNDE2MjEsIDEuNzU5NTIiLCBcCi0gICAgICAgICAgIjAuMTMxNzE1LCAwLjE0ODkyNSwgMC4zMDQwODEsIDAuNTYyMjYzLCAwLjgyMDU3NSwgMS40MjM3OSwgMS43NjY5IiwgXAotICAgICAgICAgICIwLjEzOTQxMywgMC4xNTY4MTksIDAuMzExODE4LCAwLjU3MDExNywgMC44MjgyNywgMS40MzEyNSwgMS43NzUwMyIsIFwKLSAgICAgICAgICAiMC4xNTIwNDksIDAuMTY5MzIyLCAwLjMyNDUxNywgMC41ODI5NDYsIDAuODQxMjQsIDEuNDQzMzcsIDEuNzg3OTQiLCBcCi0gICAgICAgICAgIjAuMTYyNjY2LCAwLjE4MDI2NCwgMC4zMzUxOTcsIDAuNTkzNzA4LCAwLjg1MTk3NCwgMS40NTQzOCwgMS43OTg1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIwMTk1LCAwLjIzNzI3NywgMC41NTY5ODIsIDEuMDg5NDIsIDEuNjIyMjgsIDIuODY0ODQsIDMuNTc0MTEiLCBcCi0gICAgICAgICAgIjAuMjAxODQ3LCAwLjIzNzI1MywgMC41NTY5NDYsIDEuMDg5NjYsIDEuNjIyNjcsIDIuODY0MTcsIDMuNTc1ODUiLCBcCi0gICAgICAgICAgIjAuMjAyMTg4LCAwLjIzNzU0OSwgMC41NTY5ODMsIDEuMDg5NzcsIDEuNjIyNDEsIDIuODY0NDksIDMuNTczNDIiLCBcCi0gICAgICAgICAgIjAuMjA0MzU1LCAwLjIzOTA2OCwgMC41NTY5NDYsIDEuMDg5MzMsIDEuNjIyNjEsIDIuODY0NjksIDMuNTczNTEiLCBcCi0gICAgICAgICAgIjAuMjA3ODc1LCAwLjI0MjI5NiwgMC41NTcxODIsIDEuMDg5MjksIDEuNjIxNzUsIDIuODY0MTIsIDMuNTc2NDMiLCBcCi0gICAgICAgICAgIjAuMjE1MzMsIDAuMjQ4OTAzLCAwLjU1OTMzNCwgMS4wODk2MywgMS42MjE1NywgMi44NjM1NCwgMy41NzM0MyIsIFwKLSAgICAgICAgICAiMC4yMjI5MTEsIDAuMjU2MDAxLCAwLjU2MjYxOCwgMS4wODk0MywgMS42MjIyNywgMi44NjMwNiwgMy41NzM0NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTE0NDAzLCAwLjEzMzMyNCwgMC4zMDQzNjksIDAuNTg4MzU2LCAwLjg3MjI0NSwgMS41MzUsIDEuOTEzOSIsIFwKLSAgICAgICAgICAiMC4xMjE1OTIsIDAuMTQwNTQsIDAuMzExNjUyLCAwLjU5NTUzMywgMC44NzkyMTUsIDEuNTQyMjMsIDEuOTIxMjUiLCBcCi0gICAgICAgICAgIjAuMTMwODk5LCAwLjE0OTkzOCwgMC4zMjA4MTMsIDAuNjA0NzIsIDAuODg4NjI4LCAxLjU1MTU3LCAxLjkzMDgzIiwgXAotICAgICAgICAgICIwLjE0MDM1OSwgMC4xNTkzMTQsIDAuMzMwMjcyLCAwLjYxNDA4MiwgMC44OTgwNDgsIDEuNTYyMjksIDEuOTM5NDYiLCBcCi0gICAgICAgICAgIjAuMTQ5ODkyLCAwLjE2ODgxNywgMC4zMzk2MiwgMC42MjMzNzYsIDAuOTA3ODYsIDEuNTY5NjEsIDEuOTQ4ODIiLCBcCi0gICAgICAgICAgIjAuMTY1NDQ5LCAwLjE4NDE5OSwgMC4zNTQ3MzcsIDAuNjM4NTA1LCAwLjkyMTkzNSwgMS41ODQyMSwgMS45NjQ0OSIsIFwKLSAgICAgICAgICAiMC4xNzkxNDEsIDAuMTk3ODYyLCAwLjM2ODAxOSwgMC42NTA0MTIsIDAuOTM1MTYzLCAxLjU5OTY0LCAxLjk3NTgiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjM1NDc4LCAwLjI3NTY1MSwgMC42MzY5NCwgMS4yMzkwNywgMS44NDA4MywgMy4yNDQ5MSwgNC4wNDU5MSIsIFwKLSAgICAgICAgICAiMC4yMzU1NDQsIDAuMjc1NjU3LCAwLjYzNjk2OCwgMS4yMzkwMSwgMS44NDA4MywgMy4yNDQ2NCwgNC4wNDYyMiIsIFwKLSAgICAgICAgICAiMC4yMzYzNjksIDAuMjc1OTQ1LCAwLjYzNjkwOCwgMS4yMzkxLCAxLjg0MDkyLCAzLjI0NDc3LCA0LjA0NTkyIiwgXAotICAgICAgICAgICIwLjIzOTk3LCAwLjI3ODY4MSwgMC42MzcwMzMsIDEuMjM5MTMsIDEuODQwODUsIDMuMjQ0NjMsIDQuMDQ3MDUiLCBcCi0gICAgICAgICAgIjAuMjQ1NDM3LCAwLjI4MzQwOCwgMC42MzcxNDcsIDEuMjM5MTMsIDEuODQwODYsIDMuMjQ0NzUsIDQuMDQ2OTMiLCBcCi0gICAgICAgICAgIjAuMjU2MzMxLCAwLjI5MzE2MiwgMC42Mzk4NywgMS4yMzg4NywgMS44NDA4MywgMy4yNDQ1MiwgNC4wNDU5OSIsIFwKLSAgICAgICAgICAiMC4yNjcwMDYsIDAuMzAzMjY4LCAwLjY0NDU2OSwgMS4yMzg4OSwgMS44NDA4MiwgMy4yNDQxLCA0LjA0NjU0Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwNTg2MywgMC4xMjMxMDMsIDAuMjc4MjA5LCAwLjUzNjM0OCwgMC43OTQ5MTksIDEuMzk3OTMsIDEuNzQxMjIiLCBcCi0gICAgICAgICAgIjAuMTEzMTYsIDAuMTMwNDYzLCAwLjI4NTQ5NiwgMC41NDM1ODQsIDAuODAxODQsIDEuNDA0NjIsIDEuNzQ4NzMiLCBcCi0gICAgICAgICAgIjAuMTIwOTc3LCAwLjEzODI0NCwgMC4yOTM0MjgsIDAuNTUxNjA0LCAwLjgwOTcyOCwgMS40MTI4MywgMS43NTgwNyIsIFwKLSAgICAgICAgICAiMC4xMjg2NDQsIDAuMTQ1OTQ2LCAwLjMwMTE3MiwgMC41NTk0MjksIDAuODE3NzQxLCAxLjQyMDg5LCAxLjc2Mzk1IiwgXAotICAgICAgICAgICIwLjEzNjM5MywgMC4xNTM4MjIsIDAuMzA4OTkzLCAwLjU2NzI1OCwgMC44MjU0MjUsIDEuNDI4NDEsIDEuNzcyMTgiLCBcCi0gICAgICAgICAgIjAuMTQ5MDc1LCAwLjE2NjExOCwgMC4zMjE1NjEsIDAuNTc5OTk3LCAwLjgzODM5OCwgMS40NDA1MSwgMS43ODUxMiIsIFwKLSAgICAgICAgICAiMC4xNTk1NzksIDAuMTc2OTUzLCAwLjMzMjE5MSwgMC41OTA3OTYsIDAuODQ5MDYsIDEuNDUxNTIsIDEuNzk1NjQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTk3OTIzLCAwLjIzMzI3OSwgMC41NTI4NjQsIDEuMDg1MTQsIDEuNjE3ODgsIDIuODYwMjIsIDMuNTY5MDYiLCBcCi0gICAgICAgICAgIjAuMTk3ODQ3LCAwLjIzMzM5MSwgMC41NTI4NzEsIDEuMDg1MjEsIDEuNjE3MjMsIDIuODU5NjcsIDMuNTcxMzciLCBcCi0gICAgICAgICAgIjAuMTk4MjExLCAwLjIzMzUsIDAuNTUyODQyLCAxLjA4NTA5LCAxLjYxNzQ1LCAyLjg2MDAxLCAzLjU3MDI5IiwgXAotICAgICAgICAgICIwLjIwMDM4OSwgMC4yMzUxMTgsIDAuNTUyODA5LCAxLjA4NTA4LCAxLjYxODMsIDIuODYwMjIsIDMuNTY4ODkiLCBcCi0gICAgICAgICAgIjAuMjA0MDU5LCAwLjIzODM4NywgMC41NTMxNjYsIDEuMDg1MDYsIDEuNjE3NDUsIDIuODU5NzIsIDMuNTcxOTUiLCBcCi0gICAgICAgICAgIjAuMjExNzc4LCAwLjI0NDk0MSwgMC41NTUyMzIsIDEuMDg1LCAxLjYxNzI4LCAyLjg1OTEsIDMuNTY5MDUiLCBcCi0gICAgICAgICAgIjAuMjE5Mzk2LCAwLjI1MjA2NSwgMC41NTg0NDUsIDEuMDg1MTksIDEuNjE4MDcsIDIuODU4NjcsIDMuNTY4OTYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjAiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwODc1MywgMC4xMjc3OTEsIDAuMjk4NzQ4LCAwLjU4MjUzNCwgMC44NjYzNzMsIDEuNTI4NjgsIDEuOTA4NDciLCBcCi0gICAgICAgICAgIjAuMTE0Njg5LCAwLjEzMzc2MSwgMC4zMDQ3NywgMC41ODg1NDUsIDAuODcyMjg2LCAxLjUzNDA2LCAxLjkxMjMzIiwgXAotICAgICAgICAgICIwLjEyMTc1NywgMC4xNDA4NCwgMC4zMTE5MTcsIDAuNTk1NzQzLCAwLjg3OTc0LCAxLjU0Mjg2LCAxLjkyMDIyIiwgXAotICAgICAgICAgICIwLjEyODg2MiwgMC4xNDc3OCwgMC4zMTg3NjksIDAuNjAyNjU0LCAwLjg4NjMwMywgMS41NTAyNiwgMS45MjcyMiIsIFwKLSAgICAgICAgICAiMC4xMzU4MTEsIDAuMTU1MDA4LCAwLjMyNTk1NSwgMC42MDk4OSwgMC44OTM1NjIsIDEuNTU1NDIsIDEuOTM0MzEiLCBcCi0gICAgICAgICAgIjAuMTQ3MDg3LCAwLjE2NjE4MiwgMC4zMzc3LCAwLjYyMTc1MiwgMC45MDU0MTQsIDEuNTY3MjMsIDEuOTQ2ODkiLCBcCi0gICAgICAgICAgIjAuMTU2NjY5LCAwLjE3NjA4NiwgMC4zNDcyODYsIDAuNjMxNjUsIDAuOTE1MzA2LCAxLjU3OTM3LCAxLjk1NTM4Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIyNTExNywgMC4yNjUyMzMsIDAuNjI2MDYyLCAxLjIyNzQ3LCAxLjgyODk3LCAzLjIzMjQ1LCA0LjAzNTEyIiwgXAotICAgICAgICAgICIwLjIyNTA5NCwgMC4yNjUyMjksIDAuNjI2MDM3LCAxLjIyNzMzLCAxLjgyODg3LCAzLjIzMjA0LCA0LjAzNDMiLCBcCi0gICAgICAgICAgIjAuMjI1OTE2LCAwLjI2NTYxNywgMC42MjYwMDEsIDEuMjI3MzgsIDEuODI5MDcsIDMuMjMyMjMsIDQuMDM0OTEiLCBcCi0gICAgICAgICAgIjAuMjI4NTY1LCAwLjI2NzYzMSwgMC42MjYwODQsIDEuMjI3NTIsIDEuODI4OTksIDMuMjMyNTQsIDQuMDM0MDciLCBcCi0gICAgICAgICAgIjAuMjMyMjgyLCAwLjI3MTAzNCwgMC42MjYzMzgsIDEuMjI3MzYsIDEuODI5MDgsIDMuMjMyMTcsIDQuMDM0NDkiLCBcCi0gICAgICAgICAgIjAuMjM5ODc4LCAwLjI3NzczLCAwLjYyODY5NywgMS4yMjc0NCwgMS44Mjg4NiwgMy4yMzIzMSwgNC4wMzQ0MyIsIFwKLSAgICAgICAgICAiMC4yNDc1NjksIDAuMjg0NzcxLCAwLjYzMTg0OCwgMS4yMjc1MSwgMS44Mjg3NCwgMy4yMzI1NiwgNC4wMzQ4NSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDIyNDEsIDAuMTE5NTA5LCAwLjI3NDUzLCAwLjUzMjU1NiwgMC43OTEzMjgsIDEuMzkzOTQsIDEuNzM3MDYiLCBcCi0gICAgICAgICAgIjAuMTA5NzE3LCAwLjEyNjk3NCwgMC4yODE4OTMsIDAuNTQwMDM0LCAwLjc5ODE4OCwgMS40MDE0OCwgMS43NDYyMyIsIFwKLSAgICAgICAgICAiMC4xMTkyODYsIDAuMTM2MjcsIDAuMjkxMTksIDAuNTQ5ODY1LCAwLjgwODEwOSwgMS40MTAzOCwgMS43NTQ0MSIsIFwKLSAgICAgICAgICAiMC4xMjg2NzIsIDAuMTQ1ODY2LCAwLjMwMDY5OSwgMC41NTkyMjUsIDAuODE3MzA1LCAxLjQyMDI4LCAxLjc2NDg3IiwgXAotICAgICAgICAgICIwLjEzODUwNiwgMC4xNTU2ODYsIDAuMzEwMjgxLCAwLjU2ODM3MiwgMC44MjY1OTgsIDEuNDI5OTcsIDEuNzc0NjYiLCBcCi0gICAgICAgICAgIjAuMTU0NDQzLCAwLjE3MTUyNSwgMC4zMjU4MDksIDAuNTgzODQyLCAwLjg0MjQxNSwgMS40NDQwOSwgMS43ODkyNCIsIFwKLSAgICAgICAgICAiMC4xNjgzMjcsIDAuMTg1MzkyLCAwLjMzOTQ1LCAwLjU5NzM3MSwgMC44NTU2OTksIDEuNDU3NDcsIDEuODAxNjciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjAxODU3LCAwLjIzNzIzNSwgMC41NTY5MTUsIDEuMDg5MjMsIDEuNjIyMTYsIDIuODY0NTEsIDMuNTc1ODgiLCBcCi0gICAgICAgICAgIjAuMjAxODAzLCAwLjIzNzI0NCwgMC41NTY5MzMsIDEuMDg5MjcsIDEuNjIyMzgsIDIuODY0MjMsIDMuNTczOTgiLCBcCi0gICAgICAgICAgIjAuMjAyNjk5LCAwLjIzNzczNSwgMC41NTY4NzYsIDEuMDg5NjQsIDEuNjIyMjEsIDIuODY0MDksIDMuNTc1NzMiLCBcCi0gICAgICAgICAgIjAuMjA2Njk2LCAwLjI0MDgxMywgMC41NTY5NDEsIDEuMDg5MzIsIDEuNjIyMjEsIDIuODY0NDUsIDMuNTc0NjIiLCBcCi0gICAgICAgICAgIjAuMjEyNDczLCAwLjI0NTgzMSwgMC41NTcxMzIsIDEuMDg5MywgMS42MjI2NSwgMi44NjQ5MSwgMy41NzQ2MiIsIFwKLSAgICAgICAgICAiMC4yMjM2MDQsIDAuMjU2MDEsIDAuNTYwNTcyLCAxLjA4OTYsIDEuNjIyMTMsIDIuODYzOTYsIDMuNTc0NDEiLCBcCi0gICAgICAgICAgIjAuMjM0NjQ1LCAwLjI2NjM2MSwgMC41NjYxNDMsIDEuMDg5NDEsIDEuNjIxNzQsIDIuODYzODYsIDMuNTczNDMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwNjI5OCwgMC4xMjUzNjEsIDAuMjk2MzYxLCAwLjU4MDEsIDAuODYzOTYzLCAxLjUyNjI2LCAxLjkwNjU2IiwgXAotICAgICAgICAgICIwLjExMzcyMiwgMC4xMzI3NzksIDAuMzAzNzM1LCAwLjU4NzU3LCAwLjg3MTYyMSwgMS41MzUyNywgMS45MTI3NSIsIFwKLSAgICAgICAgICAiMC4xMjI5NiwgMC4xNDIwMDEsIDAuMzEyOTM1LCAwLjU5NjcyMSwgMC44ODAzNTksIDEuNTQyNTgsIDEuOTIyMjYiLCBcCi0gICAgICAgICAgIjAuMTMyNDQyLCAwLjE1MTQzNSwgMC4zMjIzMSwgMC42MDYwMzIsIDAuODg5NywgMS41NTI1OSwgMS45Mjk3NCIsIFwKLSAgICAgICAgICAiMC4xNDE5NjUsIDAuMTYwOTE4LCAwLjMzMTY5MSwgMC42MTU0NTEsIDAuODk5MzE4LCAxLjU2MTMzLCAxLjkzOTkyIiwgXAotICAgICAgICAgICIwLjE1NzQxLCAwLjE3NjMsIDAuMzQ2NzU0LCAwLjYzMDMzNSwgMC45MTM4NTksIDEuNTc1NiwgMS45NTU1NyIsIFwKLSAgICAgICAgICAiMC4xNzA5NSwgMC4xODk5MzYsIDAuMzYwMDE5LCAwLjY0MjMxOCwgMC45MjY5NTgsIDEuNTkwNjUsIDEuOTY2ODMiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjI1MDg1LCAwLjI2NTIxOCwgMC42MjYxMzUsIDEuMjI3MzUsIDEuODI5MDUsIDMuMjMyNTYsIDQuMDM0NTkiLCBcCi0gICAgICAgICAgIjAuMjI1MTUxLCAwLjI2NTIyNiwgMC42MjU5MzIsIDEuMjI3NTIsIDEuODI5MDIsIDMuMjMyMzcsIDQuMDM0NTciLCBcCi0gICAgICAgICAgIjAuMjI2MjM5LCAwLjI2NTY2NSwgMC42MjU5OTEsIDEuMjI3NDEsIDEuODI4ODksIDMuMjMzMTYsIDQuMDM0NzMiLCBcCi0gICAgICAgICAgIjAuMjMwMjEsIDAuMjY4NzMsIDAuNjI1OTIyLCAxLjIyNzQsIDEuODI5MDEsIDMuMjMyMzgsIDQuMDM0ODQiLCBcCi0gICAgICAgICAgIjAuMjM2MDI3LCAwLjI3MzY2NCwgMC42MjYwODIsIDEuMjI3NDQsIDEuODI5MiwgMy4yMzMzMSwgNC4wMzQ2IiwgXAotICAgICAgICAgICIwLjI0NzI2MywgMC4yODM5MzMsIDAuNjI5MjEsIDEuMjI3NDEsIDEuODI4OTgsIDMuMjMyMDMsIDQuMDM0NSIsIFwKLSAgICAgICAgICAiMC4yNTgzMDIsIDAuMjk0Mzc0LCAwLjYzNDA3NiwgMS4yMjc0LCAxLjgyODgyLCAzLjIzMjI4LCA0LjAzNDg2Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5OTI2NSwgMC4xMTY0ODUsIDAuMjcxNDc0LCAwLjUyOTQ4NywgMC43ODc1MjEsIDEuMzkwMzQsIDEuNzM0MDciLCBcCi0gICAgICAgICAgIjAuMTA2NzgxLCAwLjEyNDA2NCwgMC4yNzkwMiwgMC41MzcxNSwgMC43OTUzNjUsIDEuMzk3NzksIDEuNzQyNTIiLCBcCi0gICAgICAgICAgIjAuMTE2MDY3LCAwLjEzMzMxNCwgMC4yODgyMjQsIDAuNTQ2ODk5LCAwLjgwNTE0NywgMS40MDczNiwgMS43NTEyNSIsIFwKLSAgICAgICAgICAiMC4xMjU2MywgMC4xNDMwNTUsIDAuMjk3OTU3LCAwLjU1NjAxNSwgMC44MTM5ODcsIDEuNDE3MywgMS43NjIwOSIsIFwKLSAgICAgICAgICAiMC4xMzU0MTUsIDAuMTUyNjIyLCAwLjMwNzI5MiwgMC41NjUzODEsIDAuODIzNjIyLCAxLjQyNjk3LCAxLjc3MTYiLCBcCi0gICAgICAgICAgIjAuMTUxMzExLCAwLjE2ODM4NiwgMC4zMjI3OTIsIDAuNTgxMTQ1LCAwLjgzOTM5OCwgMS40NDEwNywgMS43ODYyMSIsIFwKLSAgICAgICAgICAiMC4xNjQ5MTIsIDAuMTgyMjU0LCAwLjMzNjM0NywgMC41OTQ0MTEsIDAuODUyMjk5LCAxLjQ1NDcxLCAxLjc5ODUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTk3NjA1LCAwLjIzMzE2MSwgMC41NTI2NzQsIDEuMDg0ODcsIDEuNjE3ODIsIDIuODU5MjUsIDMuNTcxMjIiLCBcCi0gICAgICAgICAgIjAuMTk3NjcxLCAwLjIzMzI4OCwgMC41NTI4NTksIDEuMDg0ODcsIDEuNjE3MDgsIDIuODU4OSwgMy41NzAyNSIsIFwKLSAgICAgICAgICAiMC4xOTg2NDMsIDAuMjMzNTg1LCAwLjU1MjYxNSwgMS4wODUyNCwgMS42MTc3MSwgMi44NTk0NCwgMy41NzAzIiwgXAotICAgICAgICAgICIwLjIwMjcxNSwgMC4yMzY3MzMsIDAuNTUyNjUxLCAxLjA4NTA3LCAxLjYxODE5LCAyLjg1OTgyLCAzLjU2OTY3IiwgXAotICAgICAgICAgICIwLjIwODU5NywgMC4yNDE5MiwgMC41NTI4NjgsIDEuMDg0OSwgMS42MTgxNiwgMi44NjA0NSwgMy41Njk4MiIsIFwKLSAgICAgICAgICAiMC4yMTk4NzMsIDAuMjUyMTM5LCAwLjU1NjM3NywgMS4wODUxOSwgMS42MTc2MiwgMi44NTkyOCwgMy41Njk2NiIsIFwKLSAgICAgICAgICAiMC4yMzEwNDksIDAuMjYyNzIyLCAwLjU2MTY5NCwgMS4wODUwNCwgMS42MTgyMSwgMi44NTg5NiwgMy41NjkzNiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDMxMTgsIDAuMDAzMTE4LCAwLjAwMzExOCwgMC4wMDMxMTcsIDAuMDAzMTE3LCAwLjAwMzExNCwgMC4wMDMxMTMiLCBcCi0gICAgICAgICAgIjAuMDAzMTA4LCAwLjAwMzEwOSwgMC4wMDMxMSwgMC4wMDMxMSwgMC4wMDMxMDgsIDAuMDAzMTExLCAwLjAwMzEwNiIsIFwKLSAgICAgICAgICAiMC4wMDMxMDgsIDAuMDAzMTA4LCAwLjAwMzEwOSwgMC4wMDMxMDksIDAuMDAzMTA5LCAwLjAwMzEwNywgMC4wMDMxMDUiLCBcCi0gICAgICAgICAgIjAuMDAzMTE3LCAwLjAwMzExNywgMC4wMDMxMTMsIDAuMDAzMTExLCAwLjAwMzExLCAwLjAwMzEwNywgMC4wMDMxMDciLCBcCi0gICAgICAgICAgIjAuMDAzMTM1LCAwLjAwMzEzMiwgMC4wMDMxMjIsIDAuMDAzMTE1LCAwLjAwMzExMywgMC4wMDMxMSwgMC4wMDMxMDciLCBcCi0gICAgICAgICAgIjAuMDAzMTc5LCAwLjAwMzE2OSwgMC4wMDMxNDIsIDAuMDAzMTI2LCAwLjAwMzEyMSwgMC4wMDMxMTQsIDAuMDAzMTEyIiwgXAotICAgICAgICAgICIwLjAwMzIyNiwgMC4wMDMyMTMsIDAuMDAzMTY0LCAwLjAwMzE0NSwgMC4wMDMxMzMsIDAuMDAzMTIxLCAwLjAwMzExNyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDY1OSwgMC4wMDA2NTksIDAuMDAwNjYsIDAuMDAwNjYsIDAuMDAwNjU5LCAwLjAwMDY1OSwgMC4wMDA2NTkiLCBcCi0gICAgICAgICAgIjAuMDAwNjQ2LCAwLjAwMDY0NywgMC4wMDA2NSwgMC4wMDA2NTIsIDAuMDAwNjUyLCAwLjAwMDY1MiwgMC4wMDA2NTIiLCBcCi0gICAgICAgICAgIjAuMDAwNjQxLCAwLjAwMDY0MiwgMC4wMDA2NDgsIDAuMDAwNjUsIDAuMDAwNjUxLCAwLjAwMDY1MSwgMC4wMDA2NTEiLCBcCi0gICAgICAgICAgIjAuMDAwNjQxLCAwLjAwMDY0MiwgMC4wMDA2NDcsIDAuMDAwNjQ5LCAwLjAwMDY1LCAwLjAwMDY1LCAwLjAwMDY1IiwgXAotICAgICAgICAgICIwLjAwMDY0OSwgMC4wMDA2NDksIDAuMDAwNjUxLCAwLjAwMDY1MSwgMC4wMDA2NTEsIDAuMDAwNjUsIDAuMDAwNjUiLCBcCi0gICAgICAgICAgIjAuMDAwNjczLCAwLjAwMDY3MSwgMC4wMDA2NjIsIDAuMDAwNjU3LCAwLjAwMDY1NSwgMC4wMDA2NTMsIDAuMDAwNjUyIiwgXAotICAgICAgICAgICIwLjAwMDcxLCAwLjAwMDcwMiwgMC4wMDA2NzksIDAuMDAwNjY4LCAwLjAwMDY2MywgMC4wMDA2NTcsIDAuMDAwNjU1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjg1NiwgMC4wMDI4NTcsIDAuMDAyODU3LCAwLjAwMjg1NiwgMC4wMDI4NTUsIDAuMDAyODU1LCAwLjAwMjg1MiIsIFwKLSAgICAgICAgICAiMC4wMDI4NDcsIDAuMDAyODQ4LCAwLjAwMjg0OSwgMC4wMDI4NDksIDAuMDAyODQ4LCAwLjAwMjg0NywgMC4wMDI4NDUiLCBcCi0gICAgICAgICAgIjAuMDAyODU2LCAwLjAwMjg1NiwgMC4wMDI4NTIsIDAuMDAyODUsIDAuMDAyODQ5LCAwLjAwMjg0NiwgMC4wMDI4NDQiLCBcCi0gICAgICAgICAgIjAuMDAyODc3LCAwLjAwMjg3NCwgMC4wMDI4NjEsIDAuMDAyODU0LCAwLjAwMjg1MSwgMC4wMDI4NDgsIDAuMDAyODQ1IiwgXAotICAgICAgICAgICIwLjAwMjkwNiwgMC4wMDI5MDEsIDAuMDAyODc1LCAwLjAwMjg2MiwgMC4wMDI4NTcsIDAuMDAyODUxLCAwLjAwMjg0OCIsIFwKLSAgICAgICAgICAiMC4wMDI5NjcsIDAuMDAyOTUzLCAwLjAwMjkwNSwgMC4wMDI4ODEsIDAuMDAyODY4LCAwLjAwMjg1NywgMC4wMDI4NTQiLCBcCi0gICAgICAgICAgIjAuMDAzMDMyLCAwLjAwMzAxNCwgMC4wMDI5MzksIDAuMDAyODk1LCAwLjAwMjg4NiwgMC4wMDI4NjYsIDAuMDAyODYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDA0NjgsIDAuMDAwNDY5LCAwLjAwMDQ3MSwgMC4wMDA0NzIsIDAuMDAwNDcyLCAwLjAwMDQ3MiwgMC4wMDA0NzIiLCBcCi0gICAgICAgICAgIjAuMDAwNDU5LCAwLjAwMDQ2MiwgMC4wMDA0NzIsIDAuMDAwNDc1LCAwLjAwMDQ3NywgMC4wMDA0NzgsIDAuMDAwNDc4IiwgXAotICAgICAgICAgICIwLjAwMDQ0NSwgMC4wMDA0NSwgMC4wMDA0NjYsIDAuMDAwNDczLCAwLjAwMDQ3NSwgMC4wMDA0NzcsIDAuMDAwNDc4IiwgXAotICAgICAgICAgICIwLjAwMDQzOSwgMC4wMDA0NDQsIDAuMDAwNDYyLCAwLjAwMDQ3MSwgMC4wMDA0NzQsIDAuMDAwNDc2LCAwLjAwMDQ3NyIsIFwKLSAgICAgICAgICAiMC4wMDA0NDIsIDAuMDAwNDQ2LCAwLjAwMDQ2MywgMC4wMDA0NzEsIDAuMDAwNDc0LCAwLjAwMDQ3NiwgMC4wMDA0NzciLCBcCi0gICAgICAgICAgIjAuMDAwNDYsIDAuMDAwNDYsIDAuMDAwNDY5LCAwLjAwMDQ3NSwgMC4wMDA0NzcsIDAuMDAwNDc4LCAwLjAwMDQ3OCIsIFwKLSAgICAgICAgICAiMC4wMDA0OTIsIDAuMDAwNDg4LCAwLjAwMDQ4MywgMC4wMDA0ODIsIDAuMDAwNDgyLCAwLjAwMDQ4MSwgMC4wMDA0ODEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxOTUsIDAuMDAxOTUsIDAuMDAxOTUxLCAwLjAwMTk1MiwgMC4wMDE5NTIsIDAuMDAxOTUyLCAwLjAwMTk1MiIsIFwKLSAgICAgICAgICAiMC4wMDE5NDUsIDAuMDAxOTQ3LCAwLjAwMTk1NCwgMC4wMDE5NTQsIDAuMDAxOTU3LCAwLjAwMTk1OCwgMC4wMDE5NTgiLCBcCi0gICAgICAgICAgIjAuMDAxOTQzLCAwLjAwMTk0NSwgMC4wMDE5NTMsIDAuMDAxOTU2LCAwLjAwMTk1NywgMC4wMDE5NTksIDAuMDAxOTU5IiwgXAotICAgICAgICAgICIwLjAwMTk1LCAwLjAwMTk1LCAwLjAwMTk1NSwgMC4wMDE5NTgsIDAuMDAxOTYsIDAuMDAxOTYsIDAuMDAxOTYiLCBcCi0gICAgICAgICAgIjAuMDAxOTY2LCAwLjAwMTk2NSwgMC4wMDE5NjMsIDAuMDAxOTYxLCAwLjAwMTk2MSwgMC4wMDE5NjEsIDAuMDAxOTYxIiwgXAotICAgICAgICAgICIwLjAwMjAwNSwgMC4wMDIsIDAuMDAxOTgyLCAwLjAwMTk3MywgMC4wMDE5NjksIDAuMDAxOTY2LCAwLjAwMTk2NSIsIFwKLSAgICAgICAgICAiMC4wMDIwNTMsIDAuMDAyMDQsIDAuMDAyMDA0LCAwLjAwMTk4OSwgMC4wMDE5OCwgMC4wMDE5NzIsIDAuMDAxOTciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDA2NTksIDAuMDAwNjU5LCAwLjAwMDY2LCAwLjAwMDY2LCAwLjAwMDY1OSwgMC4wMDA2NTksIDAuMDAwNjU5IiwgXAotICAgICAgICAgICIwLjAwMDY1MSwgMC4wMDA2NTEsIDAuMDAwNjUyLCAwLjAwMDY1MiwgMC4wMDA2NTIsIDAuMDAwNjUyLCAwLjAwMDY1MiIsIFwKLSAgICAgICAgICAiMC4wMDA2NjIsIDAuMDAwNjY1LCAwLjAwMDY1OCwgMC4wMDA2NTUsIDAuMDAwNjU0LCAwLjAwMDY1MywgMC4wMDA2NTIiLCBcCi0gICAgICAgICAgIjAuMDAwNjkxLCAwLjAwMDY4NiwgMC4wMDA2NywgMC4wMDA2NiwgMC4wMDA2NTcsIDAuMDAwNjU0LCAwLjAwMDY1MyIsIFwKLSAgICAgICAgICAiMC4wMDA3MjIsIDAuMDAwNzE1LCAwLjAwMDY4NSwgMC4wMDA2NywgMC4wMDA2NjQsIDAuMDAwNjU4LCAwLjAwMDY1NiIsIFwKLSAgICAgICAgICAiMC4wMDA3ODIsIDAuMDAwNzY5LCAwLjAwMDcxNSwgMC4wMDA2ODksIDAuMDAwNjc4LCAwLjAwMDY2NiwgMC4wMDA2NjMiLCBcCi0gICAgICAgICAgIjAuMDAwODUxLCAwLjAwMDgzLCAwLjAwMDc1LCAwLjAwMDcxMSwgMC4wMDA2OTQsIDAuMDAwNjc2LCAwLjAwMDY3MSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIxIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDE2ODMsIDAuMDAxNjg0LCAwLjAwMTY4NiwgMC4wMDE2ODYsIDAuMDAxNjg3LCAwLjAwMTY4NywgMC4wMDE2ODgiLCBcCi0gICAgICAgICAgIjAuMDAxNjgyLCAwLjAwMTY4NCwgMC4wMDE2OSwgMC4wMDE2OTIsIDAuMDAxNjkzLCAwLjAwMTY5MywgMC4wMDE2OTMiLCBcCi0gICAgICAgICAgIjAuMDAxNjkxLCAwLjAwMTY5MiwgMC4wMDE2OTMsIDAuMDAxNjkzLCAwLjAwMTY5NCwgMC4wMDE2OTQsIDAuMDAxNjk0IiwgXAotICAgICAgICAgICIwLjAwMTcwOSwgMC4wMDE3MDcsIDAuMDAxNywgMC4wMDE2OTcsIDAuMDAxNjk3LCAwLjAwMTY5NiwgMC4wMDE2OTYiLCBcCi0gICAgICAgICAgIjAuMDAxNzM2LCAwLjAwMTczMywgMC4wMDE3MTUsIDAuMDAxNzA1LCAwLjAwMTcwMiwgMC4wMDE2OTksIDAuMDAxNjk4IiwgXAotICAgICAgICAgICIwLjAwMTc5NywgMC4wMDE3ODQsIDAuMDAxNzQyLCAwLjAwMTcyMiwgMC4wMDE3MTMsIDAuMDAxNzA2LCAwLjAwMTcwNCIsIFwKLSAgICAgICAgICAiMC4wMDE4NiwgMC4wMDE4NDIsIDAuMDAxNzc1LCAwLjAwMTc0MywgMC4wMDE3MjcsIDAuMDAxNzE0LCAwLjAwMTcxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwNDUzLCAwLjAwMDQ1NCwgMC4wMDA0NTYsIDAuMDAwNDU3LCAwLjAwMDQ1NywgMC4wMDA0NTcsIDAuMDAwNDU3IiwgXAotICAgICAgICAgICIwLjAwMDQ1LCAwLjAwMDQ1MiwgMC4wMDA0NTksIDAuMDAwNDYyLCAwLjAwMDQ2MiwgMC4wMDA0NjMsIDAuMDAwNDYzIiwgXAotICAgICAgICAgICIwLjAwMDQ2LCAwLjAwMDQ2MSwgMC4wMDA0NjMsIDAuMDAwNDY0LCAwLjAwMDQ2NCwgMC4wMDA0NjUsIDAuMDAwNDY1IiwgXAotICAgICAgICAgICIwLjAwMDQ3OCwgMC4wMDA0NzEsIDAuMDAwNDY5LCAwLjAwMDQ2OSwgMC4wMDA0NjgsIDAuMDAwNDY2LCAwLjAwMDQ2NiIsIFwKLSAgICAgICAgICAiMC4wMDA1MDQsIDAuMDAwNSwgMC4wMDA0ODUsIDAuMDAwNDc2LCAwLjAwMDQ3MywgMC4wMDA0NywgMC4wMDA0NjkiLCBcCi0gICAgICAgICAgIjAuMDAwNTU3LCAwLjAwMDU0NiwgMC4wMDA1MTIsIDAuMDAwNDkzLCAwLjAwMDQ4NSwgMC4wMDA0NzcsIDAuMDAwNDc1IiwgXAotICAgICAgICAgICIwLjAwMDYyMSwgMC4wMDA2MDQsIDAuMDAwNTQxLCAwLjAwMDUxMywgMC4wMDA1LCAwLjAwMDQ4NiwgMC4wMDA0ODIiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IE9BSTJCQjFYTCAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKE9BSTJCQjFYTCkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjIzMTg5OTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQTBOKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA3NDUyNDU7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNzQ1MjQ1OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDc0NDcwODsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyOTYsIDAuMDAwMjk2LCAwLjAwMDI5NiwgMC4wMDAyOTYsIDAuMDAwMjk2LCAwLjAwMDI5NiwgMC4wMDAyOTYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAzMTcsIDAuMDAwMzA2LCAwLjAwMDMwMiwgMC4wMDAyOTgsIDAuMDAwMjk4LCAwLjAwMDI5OCwgMC4wMDAyOTgiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEExTikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjkwNjE3OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDY5MDMwODsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2OTA2MTc7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMTY2LCAwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY1LCAwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzM3LCAwLjAwMDMzOCwgMC4wMDAzMzgsIDAuMDAwMzM4LCAwLjAwMDMzOCwgMC4wMDAzMzgsIDAuMDAwMzM4Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNzI2MDE1OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDcyNjAxNTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA3MjUzMTI7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjk2LCAwLjAwMDI5NiwgMC4wMDAyOTYsIDAuMDAwMjk2LCAwLjAwMDI5NiwgMC4wMDAyOTYsIDAuMDAwMjk2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzE3LCAwLjAwMDMwNywgMC4wMDAzMDEsIDAuMDAwMjk4LCAwLjAwMDI5OCwgMC4wMDAyOTgsIDAuMDAwMjk4Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMTI2NTM2OwotICAgIGZ1bmN0aW9uIDogIighKCghKEEwTiBBMU4pKSBCMCkpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBME4iOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4MDc4LCAwLjA5MTMwNSwgMC4xODYwNTYsIDAuMzQzOTY5LCAwLjUwMTk3MSwgMC44NzAyODIsIDEuMDgwNjYiLCBcCi0gICAgICAgICAgIjAuMDg2NjYxLCAwLjA5NzE4OSwgMC4xOTE5MDUsIDAuMzQ5OTA2LCAwLjUwNzk3MywgMC44NzYyNDEsIDEuMDg2NDUiLCBcCi0gICAgICAgICAgIjAuMDkzMDksIDAuMTAzNjIsIDAuMTk4MzkzLCAwLjM1NjU1LCAwLjUxNDEyOCwgMC44ODI1MDgsIDEuMDk0MTMiLCBcCi0gICAgICAgICAgIjAuMDk4MjgzLCAwLjEwODgyNCwgMC4yMDM1OTQsIDAuMzYxNDI4LCAwLjUxOTYzMiwgMC44ODg1MTMsIDEuMDk4MTIiLCBcCi0gICAgICAgICAgIjAuMTAyNjM4LCAwLjExMzE1NSwgMC4yMDc5MTgsIDAuMzY1NzMyLCAwLjUyMzY0OSwgMC44OTIyMjUsIDEuMTAyNTQiLCBcCi0gICAgICAgICAgIjAuMTA4NDU3LCAwLjExOTA0LCAwLjIxMzc1OSwgMC4zNzE2MTUsIDAuNTI5NTA0LCAwLjg5ODMyNiwgMS4xMDg4NCIsIFwKLSAgICAgICAgICAiMC4xMTMyMzgsIDAuMTIzNzcyLCAwLjIxODQ5NywgMC4zNzYyOTUsIDAuNTM0MjcsIDAuOTAyNTU0LCAxLjExMzMxIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEyMDI3NCwgMC4xNDIyMjYsIDAuMzQwNzM3LCAwLjY3MzM4OCwgMS4wMDUxLCAxLjc4MDk5LCAyLjIyMTY3IiwgXAotICAgICAgICAgICIwLjEyMDE5MSwgMC4xNDIyNTksIDAuMzQxMzcyLCAwLjY3MjgyNywgMS4wMDUwMywgMS43ODEzLCAyLjIyMjA3IiwgXAotICAgICAgICAgICIwLjEyMDQzNiwgMC4xNDIzODQsIDAuMzQwNjk4LCAwLjY3Mjg0NiwgMS4wMDYzNSwgMS43NzkxMywgMi4yMjM3OCIsIFwKLSAgICAgICAgICAiMC4xMjA3NjcsIDAuMTQyNTkyLCAwLjM0MDg3OSwgMC42NzI3NzUsIDEuMDA0OTcsIDEuNzgwNjcsIDIuMjI1OTYiLCBcCi0gICAgICAgICAgIjAuMTIxMDc5LCAwLjE0Mjc3NCwgMC4zNDA5MSwgMC42NzM5NjEsIDEuMDA0NjQsIDEuNzgxMDIsIDIuMjIxNzMiLCBcCi0gICAgICAgICAgIjAuMTIxNjM3LCAwLjE0MzI1MSwgMC4zNDEzNzQsIDAuNjc0MDA3LCAxLjAwNDg1LCAxLjc4MDExLCAyLjIyMjk5IiwgXAotICAgICAgICAgICIwLjEyMjIxMiwgMC4xNDM3MzgsIDAuMzQxMjU1LCAwLjY3Mzg1LCAxLjAwNDY3LCAxLjc4MTgyLCAyLjIyMjc3Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwNzkyLCAwLjEyNDg3NywgMC4yNzcxODQsIDAuNTMwOTk2LCAwLjc4NDc4NCwgMS4zNzY5OSwgMS43MTUzOSIsIFwKLSAgICAgICAgICAiMC4xMTU1NzMsIDAuMTMyNTE0LCAwLjI4NDg1OSwgMC41Mzg2NiwgMC43OTI0OTgsIDEuMzg0ODQsIDEuNzIzMDQiLCBcCi0gICAgICAgICAgIjAuMTIyMjYxLCAwLjEzOTIyMSwgMC4yOTE1NjksIDAuNTQ1MzkxLCAwLjc5OTE3NiwgMS4zOTEzNywgMS43Mjk5NSIsIFwKLSAgICAgICAgICAiMC4xMjY5NzYsIDAuMTQzOTE4LCAwLjI5NjI2OCwgMC41NTAxMzcsIDAuODAzOTA2LCAxLjM5NjA0LCAxLjczNDYzIiwgXAotICAgICAgICAgICIwLjEzMDg1LCAwLjE0Nzc5NCwgMC4zMDAyODgsIDAuNTU0MTU1LCAwLjgwNzg4MiwgMS40MDAxLCAxLjczODQ1IiwgXAotICAgICAgICAgICIwLjEzNjAxNCwgMC4xNTI5NCwgMC4zMDUyOTYsIDAuNTU5MTMyLCAwLjgxMjkzNCwgMS40MDUxOSwgMS43NDM1IiwgXAotICAgICAgICAgICIwLjEzOTY2MywgMC4xNTY2MDcsIDAuMzA4OTc0LCAwLjU2Mjc3NiwgMC44MTY1OTgsIDEuNDA4OSwgMS43NDczOCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xODgyMjQsIDAuMjIzMDY3LCAwLjUzNjIyNCwgMS4wNTg3LCAxLjU4MDk2LCAyLjgwMDQ2LCAzLjQ5NjY2IiwgXAotICAgICAgICAgICIwLjE4Nzk1OCwgMC4yMjI3MTYsIDAuNTM2MzA0LCAxLjA1OTYzLCAxLjU4Mjc2LCAyLjgwMzI1LCAzLjQ5NjUyIiwgXAotICAgICAgICAgICIwLjE4ODExLCAwLjIyMzA3NSwgMC41MzY3MzcsIDEuMDU4NjgsIDEuNTgwODcsIDIuODAwMDQsIDMuNTAwOTMiLCBcCi0gICAgICAgICAgIjAuMTg4MzI1LCAwLjIyMjc5NiwgMC41MzYyMjgsIDEuMDU5NjIsIDEuNTgyNzYsIDIuODAyNjQsIDMuNDk0OTIiLCBcCi0gICAgICAgICAgIjAuMTg4MjA1LCAwLjIyMzAyNSwgMC41MzYxNzIsIDEuMDU4MDQsIDEuNTgyNjcsIDIuODAzMzYsIDMuNTAwMDYiLCBcCi0gICAgICAgICAgIjAuMTg4MzE3LCAwLjIyMzEwOCwgMC41MzU5MTgsIDEuMDU5NDQsIDEuNTgwNjgsIDIuODAyOTMsIDMuNTAwNDEiLCBcCi0gICAgICAgICAgIjAuMTg4NDM5LCAwLjIyMzA1NSwgMC41MzYzMDMsIDEuMDU4NTUsIDEuNTgwNTcsIDIuNzk3MzcsIDMuNTAwMjQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTFOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzk0MTgsIDAuMDg5OTU0LCAwLjE4NDc1NSwgMC4zNDI4MywgMC41MDA1NDcsIDAuODY4NjkxLCAxLjA3OTIyIiwgXAotICAgICAgICAgICIwLjA4NjczMiwgMC4wOTcyNTksIDAuMTkyMDEzLCAwLjM0OTkyNywgMC41MDc4MDQsIDAuODc2MDk5LCAxLjA4Njg5IiwgXAotICAgICAgICAgICIwLjA5NDgzOCwgMC4xMDUzNjUsIDAuMjAwMTY3LCAwLjM1ODMxMiwgMC41MTU5MTUsIDAuODg0OTk2LCAxLjA5NTQyIiwgXAotICAgICAgICAgICIwLjEwMTI0MSwgMC4xMTE2NjgsIDAuMjA2Mzc1LCAwLjM2NDMwOSwgMC41MjIzNDUsIDAuODkwNjM5LCAxLjEwMjMxIiwgXAotICAgICAgICAgICIwLjEwNjI5OCwgMC4xMTY4MzksIDAuMjExNTIyLCAwLjM2OTM4NywgMC41Mjc0MiwgMC44OTU4MzEsIDEuMTA3MjMiLCBcCi0gICAgICAgICAgIjAuMTEzMzQ5LCAwLjEyMzg3OCwgMC4yMTg2NDUsIDAuMzc2NTYzLCAwLjUzNDcxMywgMC45MDI5NzMsIDEuMTEzNiIsIFwKLSAgICAgICAgICAiMC4xMTg3NDQsIDAuMTI5MzQ5LCAwLjIyNDE2OSwgMC4zODE5ODUsIDAuNTM5ODY1LCAwLjkwODI1LCAxLjExOTE5Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEyMDE4MSwgMC4xNDIyNDMsIDAuMzQwNzM4LCAwLjY3MzA4OCwgMS4wMDUwNCwgMS43ODA1MywgMi4yMjU1NCIsIFwKLSAgICAgICAgICAiMC4xMjAyMDEsIDAuMTQyMjU1LCAwLjM0MDc3NCwgMC42NzMzMTcsIDEuMDA1MDUsIDEuNzc5MzMsIDIuMjI0MzkiLCBcCi0gICAgICAgICAgIjAuMTIwNDE4LCAwLjE0MjQ5MywgMC4zNDA4NDUsIDAuNjcyODUyLCAxLjAwNDU1LCAxLjc3OTc5LCAyLjIyMjU4IiwgXAotICAgICAgICAgICIwLjEyMDg3OCwgMC4xNDI2NTEsIDAuMzQxNDE2LCAwLjY3MjU5MywgMS4wMDUxMSwgMS43ODExMywgMi4yMjM5MyIsIFwKLSAgICAgICAgICAiMC4xMjEyMDEsIDAuMTQyODUsIDAuMzQxMzY4LCAwLjY3Mzk0OCwgMS4wMDU3NCwgMS43Nzk5NywgMi4yMjM2OSIsIFwKLSAgICAgICAgICAiMC4xMjE3MjMsIDAuMTQzMzIzLCAwLjM0MTQ4NSwgMC42NzI3MjIsIDEuMDA0OTcsIDEuNzgwMDEsIDIuMjIyOTIiLCBcCi0gICAgICAgICAgIjAuMTIyNDMzLCAwLjE0Mzk2OCwgMC4zNDEzNTMsIDAuNjc0MDgzLCAxLjAwNTYsIDEuNzc5NDQsIDIuMjIyOTYiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTA2NjM3LCAwLjEyMzU5NiwgMC4yNzU5MSwgMC41MzAwMywgMC43ODM4NTYsIDEuMzc1MjksIDEuNzE0NzIiLCBcCi0gICAgICAgICAgIjAuMTEzOTI5LCAwLjEzMDg0MywgMC4yODMzMDMsIDAuNTM3MTg0LCAwLjc5MTAxNSwgMS4zODQwOSwgMS43MjIzNiIsIFwKLSAgICAgICAgICAiMC4xMjAxMjYsIDAuMTM3MDksIDAuMjg5NjY2LCAwLjU0MzQ2NSwgMC43OTczMSwgMS4zOTAyNCwgMS43Mjg4NyIsIFwKLSAgICAgICAgICAiMC4xMjQ0NjYsIDAuMTQxMjYyLCAwLjI5Mzg5OSwgMC41NDc4MTUsIDAuODAxNjA1LCAxLjM5NDQ4LCAxLjczMzEiLCBcCi0gICAgICAgICAgIjAuMTI3OTM2LCAwLjE0NDg2OSwgMC4yOTcxMDcsIDAuNTUxMDczLCAwLjgwNTIyMSwgMS4zOTc2LCAxLjczNzUyIiwgXAotICAgICAgICAgICIwLjEzMjM5NSwgMC4xNDkzNDMsIDAuMzAxNzQ2LCAwLjU1NTc4NSwgMC44MDk2MTgsIDEuNDAyNTgsIDEuNzQyNjciLCBcCi0gICAgICAgICAgIjAuMTM1NDI2LCAwLjE1MjMyLCAwLjMwNDYwNCwgMC41NTg1ODcsIDAuODEyNzQxLCAxLjQwNTc4LCAxLjc0Mzk5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE4NzgyNiwgMC4yMjMxNTIsIDAuNTM3MDcxLCAxLjA1NzksIDEuNTgwMTksIDIuNzk5MzYsIDMuNTAyOTkiLCBcCi0gICAgICAgICAgIjAuMTg4MjkyLCAwLjIyMzEyMiwgMC41MzU5MzcsIDEuMDU4NzEsIDEuNTgyNTgsIDIuNzk5NiwgMy40OTQ1NCIsIFwKLSAgICAgICAgICAiMC4xODgyNjYsIDAuMjIyNzIxLCAwLjUzNTg4NiwgMS4wNjMyOSwgMS41ODM5MSwgMi44MDEzLCAzLjQ5NDUzIiwgXAotICAgICAgICAgICIwLjE4ODE1OCwgMC4yMjI3NTgsIDAuNTM1OTI5LCAxLjA2MzIxLCAxLjU4MDA0LCAyLjgwMTQxLCAzLjQ5NDQzIiwgXAotICAgICAgICAgICIwLjE4ODI1LCAwLjIyMjk2MywgMC41MzcwOTUsIDEuMDYwMzgsIDEuNTgyNDUsIDIuODEyMDgsIDMuNDk2MDUiLCBcCi0gICAgICAgICAgIjAuMTg4MjQzLCAwLjIyMjk0NiwgMC41MzcxNzQsIDEuMDU4MDksIDEuNTgzNzcsIDIuODAxNDIsIDMuNDk1NiIsIFwKLSAgICAgICAgICAiMC4xODg1MDUsIDAuMjIyOTc5LCAwLjUzNjYzOSwgMS4wNTg3MSwgMS41ODAxOCwgMi43OTgzLCAzLjQ5NDE4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjA1MiwgMC4wNzEwNDIsIDAuMTY1ODIyLCAwLjMyNDAxNSwgMC40ODE4MjIsIDAuODUwNDM0LCAxLjA2MTczIiwgXAotICAgICAgICAgICIwLjA2ODQ4OCwgMC4wNzg5OTgsIDAuMTczNzYsIDAuMzMxNzc5LCAwLjQ4OTczNCwgMC44NTgxNDIsIDEuMDY4NiIsIFwKLSAgICAgICAgICAiMC4wNzg1MSwgMC4wODkwMDQsIDAuMTgzNzg1LCAwLjM0MTU1NCwgMC40OTkzOTEsIDAuODY4MDI2LCAxLjA3OTQiLCBcCi0gICAgICAgICAgIjAuMDg4ODgsIDAuMDk5MzIyLCAwLjE5Mzg2NSwgMC4zNTE5MTUsIDAuNTA5NTI4LCAwLjg3Nzc0OSwgMS4wODg5NiIsIFwKLSAgICAgICAgICAiMC4wOTkyNiwgMC4xMDk2OTYsIDAuMjA0MDU1LCAwLjM2MTM4NiwgMC41MTk3NTUsIDAuODg4NDMzLCAxLjA5ODM3IiwgXAotICAgICAgICAgICIwLjExMzc1MywgMC4xMjU1NTUsIDAuMjIwMjk4LCAwLjM3NzkzMywgMC41MzU3NjksIDAuOTA0MTEzLCAxLjExNDUyIiwgXAotICAgICAgICAgICIwLjEyNDI3MSwgMC4xMzczNjQsIDAuMjM0NzI2LCAwLjM5MjEzNSwgMC41NTAwMjYsIDAuOTE4MTgsIDEuMTI4OTMiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTIwNTYzLCAwLjE0MjY2MSwgMC4zNDIwOTgsIDAuNjc0NDYzLCAxLjAwNjcsIDEuNzgxODQsIDIuMjI0ODMiLCBcCi0gICAgICAgICAgIjAuMTIwODQ2LCAwLjE0Mjc3MiwgMC4zNDIwMjksIDAuNjc0MjE0LCAxLjAwNjMyLCAxLjc4MTMyLCAyLjIyNDA1IiwgXAotICAgICAgICAgICIwLjEyNTE4LCAwLjE0NjE2OSwgMC4zNDIwMTIsIDAuNjc0MDMyLCAxLjAwNjYsIDEuNzgxNjksIDIuMjI0ODQiLCBcCi0gICAgICAgICAgIjAuMTMyMDE1LCAwLjE1MjI0NCwgMC4zNDMzMjIsIDAuNjc0MTkzLCAxLjAwNjcsIDEuNzgwNDgsIDIuMjI0NDIiLCBcCi0gICAgICAgICAgIjAuMTQwMTY2LCAwLjE1OTgyMSwgMC4zNDY3MTUsIDAuNjc0MjA3LCAxLjAwNjM5LCAxLjc4MTg3LCAyLjIyMzI3IiwgXAotICAgICAgICAgICIwLjE1NDY3OSwgMC4xNzM1NDYsIDAuMzU0NzUxLCAwLjY3NjEyLCAxLjAwNjYyLCAxLjc4MDcyLCAyLjIyMzczIiwgXAotICAgICAgICAgICIwLjE2ODA4NiwgMC4xODY2ODYsIDAuMzYzOCwgMC42ODAwOTMsIDEuMDA2NjQsIDEuNzgyNjIsIDIuMjIzNzIiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk2MDcsIDAuMTEyOTcyLCAwLjI2NTM5OSwgMC41MTk0NDksIDAuNzczNDM5LCAxLjM2NjQxLCAxLjcwNTQ5IiwgXAotICAgICAgICAgICIwLjEwMjI3OCwgMC4xMTkyMDQsIDAuMjcxNzY0LCAwLjUyNTc1OSwgMC43Nzk1MTksIDEuMzczMTYsIDEuNzExMDIiLCBcCi0gICAgICAgICAgIjAuMTEwMDA2LCAwLjEyNzA3NCwgMC4yNzk1NzQsIDAuNTMzNTMsIDAuNzg3NDgsIDEuMzgxNTYsIDEuNzE5MjIiLCBcCi0gICAgICAgICAgIjAuMTE3OTE4LCAwLjEzNDkzNCwgMC4yODc3MTQsIDAuNTQxNywgMC43OTU2MjQsIDEuMzg5NDcsIDEuNzI2NDMiLCBcCi0gICAgICAgICAgIjAuMTI2NTA2LCAwLjE0Mjc0MSwgMC4yOTUzNjgsIDAuNTQ5NTk4LCAwLjgwMzg2MSwgMS4zOTYxMywgMS43MzQ3NSIsIFwKLSAgICAgICAgICAiMC4xMzg2MzgsIDAuMTU1NjAzLCAwLjMwODI4NSwgMC41NjMwMDQsIDAuODE3MjQ1LCAxLjQwOTU3LCAxLjc0OTgxIiwgXAotICAgICAgICAgICIwLjE0OTAwNiwgMC4xNjY5NTUsIDAuMzE5MjQxLCAwLjU3MzQ5NSwgMC44Mjc1MTYsIDEuNDIwODYsIDEuNzU4MyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xODc3OTMsIDAuMjIyODE3LCAwLjUzNjM2MSwgMS4wNjA1MywgMS41ODA1OCwgMi43OTkwMiwgMy41MDMwNyIsIFwKLSAgICAgICAgICAiMC4xODc4MjQsIDAuMjIzMTAyLCAwLjUzNzAwOSwgMS4wNTg4NiwgMS41ODEyNSwgMi43OTkyMywgMy40OTQzNiIsIFwKLSAgICAgICAgICAiMC4xODkzMjgsIDAuMjIzNzkzLCAwLjUzNzEyNSwgMS4wNjI5MSwgMS41ODI1NSwgMi44MDEwNiwgMy40OTQ1NiIsIFwKLSAgICAgICAgICAiMC4xOTIyOTEsIDAuMjI2MTE0LCAwLjUzNzA2NCwgMS4wNTg3MSwgMS41ODc2NiwgMi43OTk4OCwgMy41MDI0NyIsIFwKLSAgICAgICAgICAiMC4xOTcwMTIsIDAuMjI5NTksIDAuNTM3NTY3LCAxLjA1Nzk3LCAxLjU3OTk3LCAyLjc5ODY1LCAzLjQ5NzUiLCBcCi0gICAgICAgICAgIjAuMjA0ODM0LCAwLjIzNzI0NCwgMC41MzkyMDQsIDEuMDYwNDEsIDEuNTgzNjcsIDIuODEyMywgMy41MDI0MiIsIFwKLSAgICAgICAgICAiMC4yMTMxMTgsIDAuMjQ1MzM3LCAwLjU0MzQyOSwgMS4wNjA4LCAxLjU4MTQzLCAyLjgwNDc3LCAzLjUwMjQ5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTBOIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDE0NjMsIDAuMDAxNDY0LCAwLjAwMTQ2NSwgMC4wMDE0NjYsIDAuMDAxNDY2LCAwLjAwMTQ2NiwgMC4wMDE0NjYiLCBcCi0gICAgICAgICAgIjAuMDAxNDMxLCAwLjAwMTQzMiwgMC4wMDE0MzUsIDAuMDAxNDM2LCAwLjAwMTQzNiwgMC4wMDE0MzYsIDAuMDAxNDM2IiwgXAotICAgICAgICAgICIwLjAwMTQ2NSwgMC4wMDE0NjYsIDAuMDAxNDcsIDAuMDAxNDcxLCAwLjAwMTQ3MSwgMC4wMDE0NzIsIDAuMDAxNDcyIiwgXAotICAgICAgICAgICIwLjAwMTUzMywgMC4wMDE1MzMsIDAuMDAxNTM3LCAwLjAwMTUzOSwgMC4wMDE1MzksIDAuMDAxNTM5LCAwLjAwMTUzOSIsIFwKLSAgICAgICAgICAiMC4wMDE2MTksIDAuMDAxNjIsIDAuMDAxNjIzLCAwLjAwMTYyNCwgMC4wMDE2MjUsIDAuMDAxNjI2LCAwLjAwMTYyNiIsIFwKLSAgICAgICAgICAiMC4wMDE3ODUsIDAuMDAxNzg1LCAwLjAwMTc4NywgMC4wMDE3ODcsIDAuMDAxNzg4LCAwLjAwMTc4OCwgMC4wMDE3ODgiLCBcCi0gICAgICAgICAgIjAuMDAxOTQxLCAwLjAwMTk0MiwgMC4wMDE5NDQsIDAuMDAxOTQ0LCAwLjAwMTk0NSwgMC4wMDE5NDUsIDAuMDAxOTQ0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyODc5LCAwLjAwMjg4MSwgMC4wMDI4ODUsIDAuMDAyODg2LCAwLjAwMjg4NywgMC4wMDI4ODcsIDAuMDAyODg3IiwgXAotICAgICAgICAgICIwLjAwMjg4LCAwLjAwMjg4MiwgMC4wMDI4ODgsIDAuMDAyODkxLCAwLjAwMjg5MiwgMC4wMDI4OTIsIDAuMDAyODkzIiwgXAotICAgICAgICAgICIwLjAwMjk0NSwgMC4wMDI5NDcsIDAuMDAyOTU1LCAwLjAwMjk1OSwgMC4wMDI5NiwgMC4wMDI5NjEsIDAuMDAyOTYxIiwgXAotICAgICAgICAgICIwLjAwMzAzOSwgMC4wMDMwNDEsIDAuMDAzMDUsIDAuMDAzMDU0LCAwLjAwMzA1NSwgMC4wMDMwNTYsIDAuMDAzMDU2IiwgXAotICAgICAgICAgICIwLjAwMzE0LCAwLjAwMzE0MiwgMC4wMDMxNTYsIDAuMDAzMTYsIDAuMDAzMTU2LCAwLjAwMzE2NCwgMC4wMDMxNjQiLCBcCi0gICAgICAgICAgIjAuMDAzMzMzLCAwLjAwMzMzNiwgMC4wMDMzNDYsIDAuMDAzMzQxLCAwLjAwMzM1NCwgMC4wMDMzNDUsIDAuMDAzMzU2IiwgXAotICAgICAgICAgICIwLjAwMzUwNCwgMC4wMDM1MDYsIDAuMDAzNTE2LCAwLjAwMzUyMSwgMC4wMDM1MjMsIDAuMDAzNTI1LCAwLjAwMzUyNSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkExTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxNDY0LCAwLjAwMTQ2NCwgMC4wMDE0NjcsIDAuMDAxNDY4LCAwLjAwMTQ2OSwgMC4wMDE0NjgsIDAuMDAxNDY4IiwgXAotICAgICAgICAgICIwLjAwMTQ1OSwgMC4wMDE0NjEsIDAuMDAxNDY1LCAwLjAwMTQ2NiwgMC4wMDE0NjcsIDAuMDAxNDY3LCAwLjAwMTQ2NyIsIFwKLSAgICAgICAgICAiMC4wMDE1MjIsIDAuMDAxNTI3LCAwLjAwMTUyNiwgMC4wMDE1MjksIDAuMDAxNTI5LCAwLjAwMTUzLCAwLjAwMTUzIiwgXAotICAgICAgICAgICIwLjAwMTYxOCwgMC4wMDE2MTksIDAuMDAxNjI0LCAwLjAwMTYyNiwgMC4wMDE2MjYsIDAuMDAxNjI3LCAwLjAwMTYyNyIsIFwKLSAgICAgICAgICAiMC4wMDE3MjQsIDAuMDAxNzI0LCAwLjAwMTcyOSwgMC4wMDE3MywgMC4wMDE3MzEsIDAuMDAxNzMxLCAwLjAwMTczMiIsIFwKLSAgICAgICAgICAiMC4wMDE5MTEsIDAuMDAxOTExLCAwLjAwMTkxMywgMC4wMDE5MTMsIDAuMDAxOTEzLCAwLjAwMTkxMywgMC4wMDE5MTMiLCBcCi0gICAgICAgICAgIjAuMDAyMDg0LCAwLjAwMjA4MywgMC4wMDIwODMsIDAuMDAyMDgzLCAwLjAwMjA4MywgMC4wMDIwODMsIDAuMDAyMDgzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyNTg0LCAwLjAwMjU4NSwgMC4wMDI1ODksIDAuMDAyNTksIDAuMDAyNTkxLCAwLjAwMjU5MSwgMC4wMDI1OTEiLCBcCi0gICAgICAgICAgIjAuMDAyNTc3LCAwLjAwMjU3OCwgMC4wMDI1ODQsIDAuMDAyNTg2LCAwLjAwMjU4NywgMC4wMDI1ODcsIDAuMDAyNTg3IiwgXAotICAgICAgICAgICIwLjAwMjY0MSwgMC4wMDI2NDMsIDAuMDAyNjUsIDAuMDAyNjUzLCAwLjAwMjY1NCwgMC4wMDI2NTUsIDAuMDAyNjU0IiwgXAotICAgICAgICAgICIwLjAwMjczMiwgMC4wMDI3MjgsIDAuMDAyNzQzLCAwLjAwMjc0NywgMC4wMDI3NDEsIDAuMDAyNzQyLCAwLjAwMjc0MyIsIFwKLSAgICAgICAgICAiMC4wMDI4MzcsIDAuMDAyODM5LCAwLjAwMjgzOCwgMC4wMDI4NDIsIDAuMDAyODU1LCAwLjAwMjg1NiwgMC4wMDI4NDUiLCBcCi0gICAgICAgICAgIjAuMDAzMDA3LCAwLjAwMzAwNiwgMC4wMDMwMTksIDAuMDAzMDE5LCAwLjAwMzAyMiwgMC4wMDMwMjcsIDAuMDAzMDI0IiwgXAotICAgICAgICAgICIwLjAwMzE3NSwgMC4wMDMxNzIsIDAuMDAzMTgxLCAwLjAwMzE5MSwgMC4wMDMxOTMsIDAuMDAzMTk1LCAwLjAwMzE4OSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDEzMTksIDAuMDAxMzE5LCAwLjAwMTMyLCAwLjAwMTMyLCAwLjAwMTMyMSwgMC4wMDEzMjEsIDAuMDAxMzIiLCBcCi0gICAgICAgICAgIjAuMDAxMzE4LCAwLjAwMTMxOCwgMC4wMDEzMTgsIDAuMDAxMzE3LCAwLjAwMTMxOCwgMC4wMDEzMTgsIDAuMDAxMzE4IiwgXAotICAgICAgICAgICIwLjAwMTMzOCwgMC4wMDEzMzYsIDAuMDAxMzI3LCAwLjAwMTMyMiwgMC4wMDEzMiwgMC4wMDEzMTgsIDAuMDAxMzE4IiwgXAotICAgICAgICAgICIwLjAwMTM2OCwgMC4wMDEzNjEsIDAuMDAxMzM5LCAwLjAwMTMzLCAwLjAwMTMyNiwgMC4wMDEzMjEsIDAuMDAxMzIiLCBcCi0gICAgICAgICAgIjAuMDAxNDEsIDAuMDAxMzk5LCAwLjAwMTM1OCwgMC4wMDEzMzgsIDAuMDAxMzM0LCAwLjAwMTMyNSwgMC4wMDEzMjMiLCBcCi0gICAgICAgICAgIjAuMDAxNTAxLCAwLjAwMTQ3OSwgMC4wMDEzOTksIDAuMDAxMzY1LCAwLjAwMTM1MiwgMC4wMDEzMzgsIDAuMDAxMzMxIiwgXAotICAgICAgICAgICIwLjAwMTYwMSwgMC4wMDE1NjUsIDAuMDAxNDQzLCAwLjAwMTM4OSwgMC4wMDEzNywgMC4wMDEzNDksIDAuMDAxMzQzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwNDYsIDAuMDAwNDYxLCAwLjAwMDQ2MywgMC4wMDA0NjQsIDAuMDAwNDY0LCAwLjAwMDQ2NSwgMC4wMDA0NjUiLCBcCi0gICAgICAgICAgIjAuMDAwNDQ1LCAwLjAwMDQ0OCwgMC4wMDA0NTcsIDAuMDAwNDYxLCAwLjAwMDQ2MiwgMC4wMDA0NjMsIDAuMDAwNDY0IiwgXAotICAgICAgICAgICIwLjAwMDQ0MywgMC4wMDA0NDUsIDAuMDAwNDU1LCAwLjAwMDQ2LCAwLjAwMDQ2MSwgMC4wMDA0NjMsIDAuMDAwNDYzIiwgXAotICAgICAgICAgICIwLjAwMDQ1NiwgMC4wMDA0NTUsIDAuMDAwNDU5LCAwLjAwMDQ2MSwgMC4wMDA0NjIsIDAuMDAwNDY0LCAwLjAwMDQ2NCIsIFwKLSAgICAgICAgICAiMC4wMDA0ODEsIDAuMDAwNDc2LCAwLjAwMDQ2OCwgMC4wMDA0NjYsIDAuMDAwNDY2LCAwLjAwMDQ2NSwgMC4wMDA0NjUiLCBcCi0gICAgICAgICAgIjAuMDAwNTM2LCAwLjAwMDUyNywgMC4wMDA0OTMsIDAuMDAwNDgxLCAwLjAwMDQ3NiwgMC4wMDA0NzEsIDAuMDAwNDciLCBcCi0gICAgICAgICAgIjAuMDAwNjAzLCAwLjAwMDU4NiwgMC4wMDA1MjcsIDAuMDAwNDk4LCAwLjAwMDQ4OCwgMC4wMDA0NzgsIDAuMDAwNDc1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBPQUkyQkIyWDIgKgotICogLS0tLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChPQUkyQkIyWDIpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC44MzEyNzE7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEwTikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjI0OTM3OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYyNDkzNzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2MjQ4NjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDEwNzEsIDAuMDAxMDY3LCAwLjAwMTEzNiwgMC4wMDEyMjgsIDAuMDAxMzQ0LCAwLjAwMTU1MSwgMC4wMDE3MzYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDI4MjQsIDAuMDAyODI1LCAwLjAwMjg5MiwgMC4wMDI5ODgsIDAuMDAzMTEsIDAuMDAzMjYsIDAuMDAzNTE4Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihBMU4pICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY1MjgxMTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2NTI4MTE7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjUyNzI5OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTA2NywgMC4wMDEwNjIsIDAuMDAxMTI5LCAwLjAwMTIyMiwgMC4wMDEzNCwgMC4wMDE1NSwgMC4wMDE3MjQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDMxMTksIDAuMDAzMTIsIDAuMDAzMTg1LCAwLjAwMzI4NCwgMC4wMDM0MDYsIDAuMDAzNTQyLCAwLjAwMzgwOSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQjApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTg1OTE5OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTg1MTQ3OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTg1OTE5OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDkyNCwgMC4wMDA5OTMsIDAuMDAxMDAyLCAwLjAwMTAxLCAwLjAwMTAyMSwgMC4wMDEwMywgMC4wMDEwMjkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDEwNzcsIDAuMDAxMDc4LCAwLjAwMTA3OSwgMC4wMDEwNzgsIDAuMDAxMDc5LCAwLjAwMTA3OSwgMC4wMDEwNzkiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIxKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE3MjYzMTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE3MjYzMTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE3MjYwMTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyNDgsIDAuMDAwMjQ4LCAwLjAwMDI0OCwgMC4wMDAyNDgsIDAuMDAwMjQ4LCAwLjAwMDI0OCwgMC4wMDAyNDgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA3MzcsIDAuMDAwNzM3LCAwLjAwMDczNywgMC4wMDA3MzUsIDAuMDAwNzM2LCAwLjAwMDczNiwgMC4wMDA3MzYiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4zNzU2MTsKLSAgICBmdW5jdGlvbiA6ICIoISgoQjArQjEpICghKEEwTiBBMU4pKSkpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBME4iOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2NDE5LCAwLjIwNTA1MSwgMC4zMTc0OTUsIDAuNDU4MDA4LCAwLjU5ODI1NSwgMC43Mzg1NzEsIDAuODc4ODY0IiwgXAotICAgICAgICAgICIwLjA3MjMyMiwgMC4yMTMwOTgsIDAuMzI1NTY5LCAwLjQ2NjA1LCAwLjYwNjM0MSwgMC43NDY2MjMsIDAuODg3NjA2IiwgXAotICAgICAgICAgICIwLjA4MDY1LCAwLjIyMTYzLCAwLjMzNDAzNywgMC40NzQ0ODgsIDAuNjE0OTYsIDAuNzU1MTU0LCAwLjg5NTcwNSIsIFwKLSAgICAgICAgICAiMC4wODY3NywgMC4yMjc2NzYsIDAuMzQwMTYyLCAwLjQ4MDY3LCAwLjYyMDkyNCwgMC43NjEyMzYsIDAuOTAyMzI2IiwgXAotICAgICAgICAgICIwLjA5MTc4MywgMC4yMzI2NjMsIDAuMzQ1MTgzLCAwLjQ4NTY5NiwgMC42MjYwNTksIDAuNzY2NDc4LCAwLjkwNjY1NSIsIFwKLSAgICAgICAgICAiMC4wOTg2NzgsIDAuMjM5NTg2LCAwLjM1MjA1OCwgMC40OTI1NzYsIDAuNjMzMDczLCAwLjc3MzMxMSwgMC45MTM1ODYiLCBcCi0gICAgICAgICAgIjAuMTAzNjc0LCAwLjI0NDU2MSwgMC4zNTcxNjksIDAuNDk3NjA0LCAwLjYzNzkzOCwgMC43NzgzNzYsIDAuOTE4OTQ3Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4OTQwMSwgMC4zODUxMzMsIDAuNjIyMzIzLCAwLjkxODY1OSwgMS4yMTQ5LCAxLjUxMTQ2LCAxLjgwNzI5IiwgXAotICAgICAgICAgICIwLjA4OTQxMywgMC4zODUwOTgsIDAuNjIyMjQ1LCAwLjkxODY0NywgMS4yMTQ4OSwgMS41MTEzNSwgMS44MDc2MiIsIFwKLSAgICAgICAgICAiMC4wODk2MDQsIDAuMzg1MTA1LCAwLjYyMjI5NSwgMC45MTg1MzEsIDEuMjE1MDQsIDEuNTExNDcsIDEuODA3MjkiLCBcCi0gICAgICAgICAgIjAuMDg5OTE1LCAwLjM4NTEwMiwgMC42MjIyMTcsIDAuOTE4Njc3LCAxLjIxNTAzLCAxLjUxMTA5LCAxLjgwNzczIiwgXAotICAgICAgICAgICIwLjA5MDI0MywgMC4zODUxODcsIDAuNjIyMjIsIDAuOTE4NjY1LCAxLjIxNTA3LCAxLjUxMTQsIDEuODA3NDYiLCBcCi0gICAgICAgICAgIjAuMDkwOTQ5LCAwLjM4NTE5MywgMC42MjIyMTMsIDAuOTE4NDgxLCAxLjIxNDksIDEuNTExNDUsIDEuODA3NTIiLCBcCi0gICAgICAgICAgIjAuMDkxMzQsIDAuMzg1Mjg2LCAwLjYyMjMxNCwgMC45MTg0NSwgMS4yMTQ5LCAxLjUxMTI2LCAxLjgwNzY0Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2NjIwMiwgMC4yMDE2NjQsIDAuMzExODA2LCAwLjQ0OTUzOCwgMC41ODcwNjYsIDAuNzI0NjQyLCAwLjg2MjAwNiIsIFwKLSAgICAgICAgICAiMC4wNzQxMzgsIDAuMjA5NjYyLCAwLjMxOTg0OCwgMC40NTczNzYsIDAuNTk0OTQ5LCAwLjczMjcyNCwgMC44NzAxNjYiLCBcCi0gICAgICAgICAgIjAuMDgyNTY4LCAwLjIxODAyNiwgMC4zMjgzMzMsIDAuNDY1NzkzLCAwLjYwMzM5MSwgMC43NDA5NTEsIDAuODc4NjYzIiwgXAotICAgICAgICAgICIwLjA4ODcyOCwgMC4yMjQyMzQsIDAuMzM0MzY4LCAwLjQ3MjA1MSwgMC42MDk2MjMsIDAuNzQ3MiwgMC44ODQ3NjkiLCBcCi0gICAgICAgICAgIjAuMDkzNzI1LCAwLjIyOTE5LCAwLjMzOTMxNiwgMC40NzcwNTYsIDAuNjE0NTM4LCAwLjc1MjIwOCwgMC44OTAwMDkiLCBcCi0gICAgICAgICAgIjAuMTAwMjYxLCAwLjIzNTY2LCAwLjM0NTg4OSwgMC40ODM0NTMsIDAuNjIxMjQ3LCAwLjc1ODgxNCwgMC44OTYxODkiLCBcCi0gICAgICAgICAgIjAuMTA1MDE5LCAwLjI0MDQxLCAwLjM1MDU5MywgMC40ODgyODYsIDAuNjI1ODMyLCAwLjc2MzQzNCwgMC45MDEyMTYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc3NjUyLCAwLjM2MDE4MywgMC41ODc3NTUsIDAuODcyMjg0LCAxLjE1NjIsIDEuNDQxMjYsIDEuNzI1MDkiLCBcCi0gICAgICAgICAgIjAuMDc3NjY3LCAwLjM2MDIwOCwgMC41ODc2NiwgMC44NzIzMSwgMS4xNTY0LCAxLjQ0MDgzLCAxLjcyNTQ3IiwgXAotICAgICAgICAgICIwLjA3Nzc5NywgMC4zNjAyMiwgMC41ODc3ODksIDAuODcxOTg2LCAxLjE1NjM5LCAxLjQ0MDc5LCAxLjcyNjIyIiwgXAotICAgICAgICAgICIwLjA3ODAxNCwgMC4zNjAxNCwgMC41ODc4MjMsIDAuODcyMDUzLCAxLjE1NjI5LCAxLjQ0MDY1LCAxLjcyNTI3IiwgXAotICAgICAgICAgICIwLjA3ODI1NywgMC4zNjAyNzcsIDAuNTg3Nzg2LCAwLjg3MjI1MiwgMS4xNTYzNCwgMS40NDE5OCwgMS43MjU1IiwgXAotICAgICAgICAgICIwLjA3ODgxNCwgMC4zNjAxNjEsIDAuNTg3Njk4LCAwLjg3MTkyNywgMS4xNTY1OCwgMS40NDEwMiwgMS43MjUxNiIsIFwKLSAgICAgICAgICAiMC4wNzkxNjQsIDAuMzYwMTYsIDAuNTg3NzE5LCAwLjg3MTg4OCwgMS4xNTY2MywgMS40NDEwNCwgMS43MjU0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkExTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDYyNDUyLCAwLjIwMzIxNCwgMC4zMTU3MjYsIDAuNDU2MTYxLCAwLjU5NjU3MiwgMC43MzY4MTYsIDAuODc2OTczIiwgXAotICAgICAgICAgICIwLjA3MDUwNSwgMC4yMTEzOTksIDAuMzIzODA4LCAwLjQ2NDMyOCwgMC42MDQ4MjQsIDAuNzQ0ODUsIDAuODg1NzQxIiwgXAotICAgICAgICAgICIwLjA3OTAxNiwgMC4yMTk5NDEsIDAuMzMyMzQ5LCAwLjQ3MjgyMiwgMC42MTM0MTUsIDAuNzUzMjc5LCAwLjg5NDY1NSIsIFwKLSAgICAgICAgICAiMC4wODU3MDksIDAuMjI2NDMzLCAwLjMzODkyOSwgMC40Nzk0NjgsIDAuNjE5Nzg2LCAwLjc2MDAwMSwgMC45MDA3OTgiLCBcCi0gICAgICAgICAgIjAuMDkxMDUsIDAuMjMxODAzLCAwLjM0NDMxMSwgMC40ODQ3OSwgMC42MjUxNjcsIDAuNzY1NjA3LCAwLjkwNTczOCIsIFwKLSAgICAgICAgICAiMC4wOTgxMjksIDAuMjM4NjQxLCAwLjM1MTExMywgMC40OTE2MjEsIDAuNjMxODk1LCAwLjc3MjYyOCwgMC45MTI1ODMiLCBcCi0gICAgICAgICAgIjAuMTAzNjEyLCAwLjI0NDAzNSwgMC4zNTY1MzUsIDAuNDk3MDA0LCAwLjYzNzYyMiwgMC43Nzc4OCwgMC45MTg2NzQiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg5NDk0LCAwLjM4NTA3MywgMC42MjIzMzcsIDAuOTE4NTQxLCAxLjIxNDk4LCAxLjUxMTE2LCAxLjgwNzYiLCBcCi0gICAgICAgICAgIjAuMDg5NTIyLCAwLjM4NTA5NiwgMC42MjIzMDEsIDAuOTE4ODc0LCAxLjIxNDk2LCAxLjUxMTMxLCAxLjgwNzY3IiwgXAotICAgICAgICAgICIwLjA4OTg4MywgMC4zODUwNzgsIDAuNjIyMjkzLCAwLjkxODUzLCAxLjIxNTAxLCAxLjUxMTM5LCAxLjgwNzY5IiwgXAotICAgICAgICAgICIwLjA5MDQ5MSwgMC4zODUxLCAwLjYyMjIyOSwgMC45MTg1MzIsIDEuMjE1MDgsIDEuNTExMDEsIDEuODA3MjMiLCBcCi0gICAgICAgICAgIjAuMDkxMTM1LCAwLjM4NTE3NywgMC42MjIyNTIsIDAuOTE4NDYyLCAxLjIxNDk4LCAxLjUxMTA4LCAxLjgwNzQ2IiwgXAotICAgICAgICAgICIwLjA5MjI4LCAwLjM4NTMxOCwgMC42MjIyMzgsIDAuOTE4ODIyLCAxLjIxNTEyLCAxLjUxMTQzLCAxLjgwNzQ0IiwgXAotICAgICAgICAgICIwLjA5MzA5OSwgMC4zODUzMiwgMC42MjIyMDksIDAuOTE4NTI2LCAxLjIxNSwgMS41MTEwNCwgMS44MDczOCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjU1MzQsIDAuMjAzNTgsIDAuMzE0MDEzLCAwLjQ1MzIyNSwgMC41OTI2NzEsIDAuNzMyMzQ5LCAwLjg3MTQ0NiIsIFwKLSAgICAgICAgICAiMC4wNzM0NDksIDAuMjExNTMzLCAwLjMyMTc1MiwgMC40NjEyODQsIDAuNjAwNzA5LCAwLjc0MDc2NSwgMC44Nzk1MDEiLCBcCi0gICAgICAgICAgIjAuMDgxOTIsIDAuMjIwMDY4LCAwLjMzMDI5OCwgMC40Njk4NDksIDAuNjA5Mjc2LCAwLjc0OTI1NCwgMC44ODgwNjQiLCBcCi0gICAgICAgICAgIjAuMDg4NDY2LCAwLjIyNjY5NiwgMC4zMzY4ODUsIDAuNDc2NTQzLCAwLjYxNTk5NCwgMC43NTUzOTgsIDAuODk0NjU3IiwgXAotICAgICAgICAgICIwLjA5MzY1NCwgMC4yMzE4MiwgMC4zNDIxMjgsIDAuNDgxNjY5LCAwLjYyMTAzMiwgMC43NjA0NDUsIDAuOTAwMTE2IiwgXAotICAgICAgICAgICIwLjEwMDQwNywgMC4yMzg2MzMsIDAuMzQ4ODczLCAwLjQ4ODM2MiwgMC42Mjc3NzgsIDAuNzY3OCwgMC45MDcxNjYiLCBcCi0gICAgICAgICAgIjAuMTA1MzQ1LCAwLjI0MzU4NCwgMC4zNTM3ODIsIDAuNDkzNDEzLCAwLjYzMzA3NiwgMC43NzIyOSwgMC45MTE5NTgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc2MDM4LCAwLjM2MTU0NywgMC41OTIzNSwgMC44ODMxNDgsIDEuMTc1ODcsIDEuNDU4MzQsIDEuNzUxMzgiLCBcCi0gICAgICAgICAgIjAuMDc2MDMsIDAuMzYxNTkxLCAwLjU5MzY4MiwgMC44ODEwOTcsIDEuMTY5ODQsIDEuNDU5MTQsIDEuNzUxNDYiLCBcCi0gICAgICAgICAgIjAuMDc2MTc4LCAwLjM2MjExOCwgMC41OTM2NjcsIDAuODgxMTA0LCAxLjE2OTgxLCAxLjQ1OTE0LCAxLjc1NTc5IiwgXAotICAgICAgICAgICIwLjA3NjQxOSwgMC4zNjEzNTcsIDAuNTkzNjc3LCAwLjg4MDk0NywgMS4xNjk2LCAxLjQ1OTY5LCAxLjc1NTg1IiwgXAotICAgICAgICAgICIwLjA3NjY3OCwgMC4zNjIwNTQsIDAuNTkyNzI0LCAwLjg4MTE1OCwgMS4xNjk3NywgMS40NTgzNywgMS43NDY5OSIsIFwKLSAgICAgICAgICAiMC4wNzczMzEsIDAuMzYxODUyLCAwLjU5MzYyMiwgMC44ODMwMzIsIDEuMTcyMzksIDEuNDU4OTksIDEuNzQ3NDMiLCBcCi0gICAgICAgICAgIjAuMDc3NzEyLCAwLjM2MTU5MiwgMC41OTI1OTYsIDAuODgxMDI0LCAxLjE2OTY5LCAxLjQ1ODU5LCAxLjc0NzAyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDA0ODgsIDAuMTgyNDA4LCAwLjI5NTgwNywgMC40MzczNzMsIDAuNTc4NjA0LCAwLjcxOTg2NSwgMC44NjEyNDEiLCBcCi0gICAgICAgICAgIjAuMDQ2NTUxLCAwLjE4ODY3NiwgMC4zMDIwOSwgMC40NDM1ODksIDAuNTg1MDA0LCAwLjcyNjEyOCwgMC44Njc3NzgiLCBcCi0gICAgICAgICAgIjAuMDUzODQ2LCAwLjE5NjE2NywgMC4zMDk2MTYsIDAuNDUxMTE0LCAwLjU5MjQ2MiwgMC43MzM2NTgsIDAuODc0ODc0IiwgXAotICAgICAgICAgICIwLjA2MDQyOSwgMC4yMDM2MDcsIDAuMzE3MTYsIDAuNDU4NjQ1LCAwLjU5OTk3OCwgMC43NDEzNjUsIDAuODgyNTI4IiwgXAotICAgICAgICAgICIwLjA2NjEyMywgMC4yMTA4NjYsIDAuMzI0NjcxLCAwLjQ2NjIyNSwgMC42MDc1MjQsIDAuNzQ4Nzk4LCAwLjg4OTk2MyIsIFwKLSAgICAgICAgICAiMC4wNzM2NTMsIDAuMjIzMjI0LCAwLjMzNjI5NCwgMC40Nzc4ODMsIDAuNjE5MjA4LCAwLjc2MDM5OCwgMC45MDE5MzQiLCBcCi0gICAgICAgICAgIjAuMDc5MDU5LCAwLjIzMzA0NywgMC4zNDY3OTMsIDAuNDg5MDQsIDAuNjMwNTQ3LCAwLjc3MTcyLCAwLjkxMjk3MiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODI1NTMsIDAuMzgyNDU1LCAwLjYyMjY3OSwgMC45MjMwMjIsIDEuMjIzMjksIDEuNTIzNDcsIDEuODI0MDUiLCBcCi0gICAgICAgICAgIjAuMDgzMjkyLCAwLjM4MjQ3MSwgMC42MjI2MzgsIDAuOTIyOTE5LCAxLjIyMzMxLCAxLjUyMzQ5LCAxLjgyMzg1IiwgXAotICAgICAgICAgICIwLjA4NzIyNSwgMC4zODI0MjUsIDAuNjIyNzEzLCAwLjkyMjg4OSwgMS4yMjMzMSwgMS41MjM0OCwgMS44MjM2OCIsIFwKLSAgICAgICAgICAiMC4wOTI2MTksIDAuMzgzMjQsIDAuNjIyNjAxLCAwLjkyMjg4MywgMS4yMjMzLCAxLjUyMzgyLCAxLjgyMzkyIiwgXAotICAgICAgICAgICIwLjA5ODk2OCwgMC4zODUwMTYsIDAuNjIyOTQyLCAwLjkyMjk1NSwgMS4yMjMyOSwgMS41MjM0MiwgMS44MjM5MiIsIFwKLSAgICAgICAgICAiMC4xMDk1OCwgMC4zOTAyNjQsIDAuNjI0OTkzLCAwLjkyMzI3MiwgMS4yMjMzNCwgMS41MjM0MiwgMS44MjM3NCIsIFwKLSAgICAgICAgICAiMC4xMTgzNjEsIDAuMzk1NDI1LCAwLjYyODM4MSwgMC45MjQzMSwgMS4yMjMzNiwgMS41MjM1NiwgMS44MjM3NSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDI1MTgsIDAuMTc3ODc4LCAwLjI4Nzk2LCAwLjQyNTcxLCAwLjU2MzE0NywgMC43MDEyNSwgMC44MzgyNTgiLCBcCi0gICAgICAgICAgIjAuMDUwMTY5LCAwLjE4NTU2LCAwLjI5NTcxNiwgMC40MzMyNSwgMC41NzA4NDcsIDAuNzA4MywgMC44NDYwMTIiLCBcCi0gICAgICAgICAgIjAuMDU5OTU0LCAwLjE5NTM4NSwgMC4zMDU1NDQsIDAuNDQzMDkzLCAwLjU4MDYzOCwgMC43MTg0NCwgMC44NTYzOCIsIFwKLSAgICAgICAgICAiMC4wNzAxNzgsIDAuMjA1MDUzLCAwLjMxNTEzNSwgMC40NTI2MjEsIDAuNTg5OTgsIDAuNzI3NjM1LCAwLjg2NjEwOCIsIFwKLSAgICAgICAgICAiMC4wNzkwMTUsIDAuMjE0NjQ2LCAwLjMyNDczNSwgMC40NjIzOTgsIDAuNjAwMTYyLCAwLjczNzkwNSwgMC44NzUxODMiLCBcCi0gICAgICAgICAgIjAuMDkwMjE5LCAwLjIzMDY1LCAwLjM0MDU2NywgMC40NzgxMDcsIDAuNjE1NzQxLCAwLjc1MzI3NywgMC44OTA3NTkiLCBcCi0gICAgICAgICAgIjAuMDk4NjUyLCAwLjI0NDg4OCwgMC4zNTQ1NzMsIDAuNDkxODM0LCAwLjYyNjg4NywgMC43NjY5ODMsIDAuOTA0NDUyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3NzE1LCAwLjM2MDA3NCwgMC41ODc3MDEsIDAuODcyMjgxLCAxLjE1NjMzLCAxLjQ0MTEsIDEuNzI1MTMiLCBcCi0gICAgICAgICAgIjAuMDc3ODQ5LCAwLjM2MDAzNSwgMC41ODc3MzgsIDAuODcxODYxLCAxLjE1NjI5LCAxLjQ0MDYxLCAxLjcyNTE3IiwgXAotICAgICAgICAgICIwLjA4MzM5OCwgMC4zNjAwMzUsIDAuNTg3NTcyLCAwLjg3MTg1NiwgMS4xNTYzMywgMS40NDEzMywgMS43MjU2MiIsIFwKLSAgICAgICAgICAiMC4wOTA3NTEsIDAuMzYwNzIsIDAuNTg3Njk1LCAwLjg3MjIwMSwgMS4xNTYzMSwgMS40NDA2NCwgMS43MjU4MyIsIFwKLSAgICAgICAgICAiMC4wOTkyNywgMC4zNjM1NjQsIDAuNTg3ODQzLCAwLjg3MjExNiwgMS4xNTY2MywgMS40NDA4MywgMS43MjUxNiIsIFwKLSAgICAgICAgICAiMC4xMTM2NjcsIDAuMzcwNTU0LCAwLjU5MDYxNSwgMC44NzIxMTgsIDEuMTU2MzYsIDEuNDQwNDksIDEuNzI1MDMiLCBcCi0gICAgICAgICAgIjAuMTI1MDU0LCAwLjM3ODY5NCwgMC41OTUyMjEsIDAuODczODE0LCAxLjE1NjI0LCAxLjQ0MTMzLCAxLjcyNTA0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIxIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzg0MzcsIDAuMTgwMzY0LCAwLjI5Mzc0OSwgMC40MzUyNTIsIDAuNTc2NjI0LCAwLjcxNzc0LCAwLjg1OTMyNCIsIFwKLSAgICAgICAgICAiMC4wNDU4OTIsIDAuMTg3OTg5LCAwLjMwMTM4LCAwLjQ0Mjg2NSwgMC41ODQzMTQsIDAuNzI1NTEyLCAwLjg2NjY1NiIsIFwKLSAgICAgICAgICAiMC4wNTU1MiwgMC4xOTc0MjgsIDAuMzEwODIsIDAuNDUyMzQzLCAwLjU5MzYwOSwgMC43MzQ4OTYsIDAuODc2Mjg1IiwgXAotICAgICAgICAgICIwLjA2NDcyMiwgMC4yMDcwNTIsIDAuMzIwNDY3LCAwLjQ2MjAyNiwgMC42MDMzNDcsIDAuNzQ0NTE2LCAwLjg4NTY4NyIsIFwKLSAgICAgICAgICAiMC4wNzIzMjcsIDAuMjE2Njc0LCAwLjMzMDEyNywgMC40NzE2MTMsIDAuNjEyOTk1LCAwLjc1NDIwNCwgMC44OTU2NDIiLCBcCi0gICAgICAgICAgIjAuMDgyMzA1LCAwLjIzMjM3LCAwLjM0NTU3MiwgMC40ODY0NzMsIDAuNjI4MjU2LCAwLjc2OTQwNywgMC45MTA2MjEiLCBcCi0gICAgICAgICAgIjAuMDg5OTU2LCAwLjI0NjA5MywgMC4zNTkxNSwgMC41MDA1NDIsIDAuNjM5MjcsIDAuNzgyOTMxLCAwLjkyNDEyNiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODI1NDksIDAuMzgyNDY2LCAwLjYyMjY3MiwgMC45MjI4OTQsIDEuMjIzMjgsIDEuNTIzMzcsIDEuODIzNzciLCBcCi0gICAgICAgICAgIjAuMDgzODg3LCAwLjM4MjQ2LCAwLjYyMjY2MiwgMC45MjI4MDMsIDEuMjIzMjgsIDEuNTIzMzYsIDEuODIzNTgiLCBcCi0gICAgICAgICAgIjAuMDkwMjg0LCAwLjM4MjQ3NywgMC42MjI2MDYsIDAuOTIyOTQxLCAxLjIyMzI1LCAxLjUyMzUzLCAxLjgyMzk5IiwgXAotICAgICAgICAgICIwLjA5ODU5OCwgMC4zODMxOTcsIDAuNjIyNTg3LCAwLjkyMjkzMiwgMS4yMjMzLCAxLjUyMzQ3LCAxLjgyMzg1IiwgXAotICAgICAgICAgICIwLjEwNzQ2OCwgMC4zODYwODgsIDAuNjIyNzc1LCAwLjkyMjg3NiwgMS4yMjMyOCwgMS41MjM1MSwgMS44MjM1NyIsIFwKLSAgICAgICAgICAiMC4xMjE4MDUsIDAuMzkzMzEsIDAuNjI1NjY0LCAwLjkyMjg1MSwgMS4yMjMyNSwgMS41MjMzLCAxLjgyMzgiLCBcCi0gICAgICAgICAgIjAuMTMyMjQ1LCAwLjQwMTY0NCwgMC42MzA0MzYsIDAuOTI0MjUsIDEuMjIzMjQsIDEuNTIzMzksIDEuODIzODEiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQwNzQ5LCAwLjE3ODcwNSwgMC4yODg4NDgsIDAuNDI4MjY2LCAwLjU2NzU5NSwgMC43MDc2NTQsIDAuODQ2ODkzIiwgXAotICAgICAgICAgICIwLjA0ODM4NywgMC4xODY0ODEsIDAuMjk2NjY4LCAwLjQzNTk0NCwgMC41NzU0MiwgMC43MTQ3NTYsIDAuODU0MjM3IiwgXAotICAgICAgICAgICIwLjA1ODE0NywgMC4xOTYwMywgMC4zMDYxODcsIDAuNDQ1NzUzLCAwLjU4NTAwNywgMC43MjQ0NjYsIDAuODY0Mjc4IiwgXAotICAgICAgICAgICIwLjA2ODA1MSwgMC4yMDYwMzksIDAuMzE2MzMyLCAwLjQ1NTc0NywgMC41OTUxNzksIDAuNzM0NTY3LCAwLjg3NDczOCIsIFwKLSAgICAgICAgICAiMC4wNzY1NjYsIDAuMjE1NTMsIDAuMzI1NjQ2LCAwLjQ2NTA0NiwgMC42MDQ2MiwgMC43NDM5NjEsIDAuODgzNjMiLCBcCi0gICAgICAgICAgIjAuMDg3MTcsIDAuMjMxMzksIDAuMzQxNDc2LCAwLjQ4MDI1MSwgMC42MjAyOCwgMC43NTk0ODksIDAuODk5MDE4IiwgXAotICAgICAgICAgICIwLjA5NTQyMywgMC4yNDU2NjMsIDAuMzU1MzQzLCAwLjQ5NDY3LCAwLjYzMTQ3NiwgMC43NzM0MDEsIDAuOTEyNjk4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3NTU3NywgMC4zNjIxOTMsIDAuNTkzMTU3LCAwLjg4MTcyLCAxLjE3NTg1LCAxLjQ1OTE2LCAxLjc0NzI3IiwgXAotICAgICAgICAgICIwLjA3NjM0NywgMC4zNjEzMTQsIDAuNTkyMjc4LCAwLjg4Mjk4NSwgMS4xNzI0OCwgMS40NjE3OSwgMS43NTEyOCIsIFwKLSAgICAgICAgICAiMC4wODIwNjEsIDAuMzYxMjgzLCAwLjU5MzcwOCwgMC44ODA5MTYsIDEuMTc1NTQsIDEuNDU5NDYsIDEuNzQ3MTMiLCBcCi0gICAgICAgICAgIjAuMDg5NzQ3LCAwLjM2MjExLCAwLjU5MjM0OCwgMC44ODExMDQsIDEuMTcwNTQsIDEuNDU4NDMsIDEuNzQ4MDMiLCBcCi0gICAgICAgICAgIjAuMDk4MzI1LCAwLjM2NDg5LCAwLjU5MjM2NywgMC44ODEwNzcsIDEuMTY5NjUsIDEuNDU4MzQsIDEuNzQ4NTYiLCBcCi0gICAgICAgICAgIjAuMTEyOTExLCAwLjM3MjA0NCwgMC41OTYzODQsIDAuODgxNjc2LCAxLjE3MDUxLCAxLjQ2MDU0LCAxLjc0NzMxIiwgXAotICAgICAgICAgICIwLjEyNDUxOCwgMC4zODAxNDgsIDAuNTk5OTIxLCAwLjg4Mjk5MSwgMS4xNzIzOSwgMS40NTkzMiwgMS43NTEwOSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEwTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA4ODEsIDAuMDA4ODIxLCAwLjAwODgyMiwgMC4wMDg4MjEsIDAuMDA4ODIsIDAuMDA4ODIxLCAwLjAwODgyIiwgXAotICAgICAgICAgICIwLjAwODgwMSwgMC4wMDg4MTksIDAuMDA4ODIxLCAwLjAwODgyMSwgMC4wMDg4MjEsIDAuMDA4ODIxLCAwLjAwODgyIiwgXAotICAgICAgICAgICIwLjAwODg1NiwgMC4wMDg4ODEsIDAuMDA4ODg0LCAwLjAwODg4NCwgMC4wMDg4ODUsIDAuMDA4ODg2LCAwLjAwODg4NSIsIFwKLSAgICAgICAgICAiMC4wMDg5MzcsIDAuMDA4OTYyLCAwLjAwODk2NiwgMC4wMDg5NjksIDAuMDA4OTcsIDAuMDA4OTcsIDAuMDA4OTY4IiwgXAotICAgICAgICAgICIwLjAwOTA0NSwgMC4wMDkwNzMsIDAuMDA5MDc3LCAwLjAwOTA3OSwgMC4wMDkwNzksIDAuMDA5MDgsIDAuMDA5MDgiLCBcCi0gICAgICAgICAgIjAuMDA5MjM1LCAwLjAwOTI2MywgMC4wMDkyNjcsIDAuMDA5MjY0LCAwLjAwOTI3LCAwLjAwOTI3MSwgMC4wMDkyNyIsIFwKLSAgICAgICAgICAiMC4wMDk0MjEsIDAuMDA5NDQ4LCAwLjAwOTQ1NCwgMC4wMDk0NDksIDAuMDA5NDU4LCAwLjAwOTQ1LCAwLjAwOTQ1OCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNTk0NiwgMC4wMDU5NjgsIDAuMDA1OTcxLCAwLjAwNTk3MSwgMC4wMDU5NzIsIDAuMDA1OTcyLCAwLjAwNTk3MiIsIFwKLSAgICAgICAgICAiMC4wMDU5MzgsIDAuMDA1OTY4LCAwLjAwNTk3MiwgMC4wMDU5NzQsIDAuMDA1OTc1LCAwLjAwNTk3NSwgMC4wMDU5NzYiLCBcCi0gICAgICAgICAgIjAuMDA1OTg0LCAwLjAwNjAyNSwgMC4wMDYwMywgMC4wMDYwMzQsIDAuMDA2MDM0LCAwLjAwNjAzNSwgMC4wMDYwMzYiLCBcCi0gICAgICAgICAgIjAuMDA2MDU3LCAwLjAwNjEwNCwgMC4wMDYxMTEsIDAuMDA2MTE1LCAwLjAwNjExNiwgMC4wMDYxMTcsIDAuMDA2MTE4IiwgXAotICAgICAgICAgICIwLjAwNjE0OSwgMC4wMDYyMDQsIDAuMDA2MjA3LCAwLjAwNjIxNiwgMC4wMDYyMTgsIDAuMDA2MjE5LCAwLjAwNjIyIiwgXAotICAgICAgICAgICIwLjAwNjMzMywgMC4wMDYzODgsIDAuMDA2Mzk3LCAwLjAwNjQwMSwgMC4wMDY0MDUsIDAuMDA2NDA3LCAwLjAwNjQwNyIsIFwKLSAgICAgICAgICAiMC4wMDY0OTUsIDAuMDA2NTUyLCAwLjAwNjU2MywgMC4wMDY1NjgsIDAuMDA2NTcxLCAwLjAwNjU3MywgMC4wMDY1NzQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMU4iOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNzg4OSwgMC4wMDc5MDgsIDAuMDA3OTEsIDAuMDA3OTEsIDAuMDA3OTEsIDAuMDA3OTEyLCAwLjAwNzkwOSIsIFwKLSAgICAgICAgICAiMC4wMDc4NzEsIDAuMDA3ODk4LCAwLjAwNzkwMiwgMC4wMDc5MDIsIDAuMDA3OTAzLCAwLjAwNzkwMiwgMC4wMDc5MDIiLCBcCi0gICAgICAgICAgIjAuMDA3OTQ0LCAwLjAwNzk3NCwgMC4wMDc5NzksIDAuMDA3OTgsIDAuMDA3OTgsIDAuMDA3OTgsIDAuMDA3OTgxIiwgXAotICAgICAgICAgICIwLjAwODAxMSwgMC4wMDgwNDUsIDAuMDA4MDQ4LCAwLjAwODA1LCAwLjAwODA1MSwgMC4wMDgwNTIsIDAuMDA4MDUiLCBcCi0gICAgICAgICAgIjAuMDA4MTMxLCAwLjAwODE1MSwgMC4wMDgxNTUsIDAuMDA4MTU3LCAwLjAwODE1OCwgMC4wMDgxNTcsIDAuMDA4MTU3IiwgXAotICAgICAgICAgICIwLjAwODMzMiwgMC4wMDgzNDQsIDAuMDA4MzQ2LCAwLjAwODM1LCAwLjAwODM1LCAwLjAwODM0OSwgMC4wMDgzNSIsIFwKLSAgICAgICAgICAiMC4wMDg1MzIsIDAuMDA4NTI5LCAwLjAwODUzMSwgMC4wMDg1MzQsIDAuMDA4NTMyLCAwLjAwODUzNCwgMC4wMDg1MzIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDU2NzUsIDAuMDA1NzUyLCAwLjAwNTc2MSwgMC4wMDU3NjYsIDAuMDA1NzY4LCAwLjAwNTc2OSwgMC4wMDU3NyIsIFwKLSAgICAgICAgICAiMC4wMDU2NTEsIDAuMDA1NzQ3LCAwLjAwNTc1OSwgMC4wMDU3NjYsIDAuMDA1NzY5LCAwLjAwNTc3MiwgMC4wMDU3NzMiLCBcCi0gICAgICAgICAgIjAuMDA1Njg0LCAwLjAwNTgwNywgMC4wMDU4MjQsIDAuMDA1ODM0LCAwLjAwNTgzOCwgMC4wMDU4NDEsIDAuMDA1ODQ0IiwgXAotICAgICAgICAgICIwLjAwNTczNSwgMC4wMDU4NzEsIDAuMDA1ODkyLCAwLjAwNTkwMywgMC4wMDU5MDksIDAuMDA1OTEzLCAwLjAwNTkxNSIsIFwKLSAgICAgICAgICAiMC4wMDU4MTQsIDAuMDA1OTY1LCAwLjAwNTk4OSwgMC4wMDYwMDIsIDAuMDA2MDA5LCAwLjAwNjAxMywgMC4wMDYwMTUiLCBcCi0gICAgICAgICAgIjAuMDA1OTgyLCAwLjAwNjEzOCwgMC4wMDYxNjUsIDAuMDA2MTgsIDAuMDA2MTg4LCAwLjAwNjE5MywgMC4wMDYxOTYiLCBcCi0gICAgICAgICAgIjAuMDA2MTMzLCAwLjAwNjI5NCwgMC4wMDYzMjQsIDAuMDA2MzQxLCAwLjAwNjM0OSwgMC4wMDYzNTUsIDAuMDA2MzU5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNTg0MSwgMC4wMDU4NjMsIDAuMDA1ODY3LCAwLjAwNTg2NywgMC4wMDU4NjgsIDAuMDA1ODY5LCAwLjAwNTg2OSIsIFwKLSAgICAgICAgICAiMC4wMDU3ODEsIDAuMDA1ODYxLCAwLjAwNTg3MiwgMC4wMDU4NzcsIDAuMDA1ODg4LCAwLjAwNTg4MiwgMC4wMDU4ODMiLCBcCi0gICAgICAgICAgIjAuMDA1NzYxLCAwLjAwNTg1LCAwLjAwNTg2NSwgMC4wMDU4NzUsIDAuMDA1ODc2LCAwLjAwNTg4NCwgMC4wMDU4OCIsIFwKLSAgICAgICAgICAiMC4wMDU4LCAwLjAwNTg1NSwgMC4wMDU4NjcsIDAuMDA1ODc1LCAwLjAwNTg3OSwgMC4wMDU4ODIsIDAuMDA1ODg2IiwgXAotICAgICAgICAgICIwLjAwNTg4NywgMC4wMDU4NzIsIDAuMDA1ODgsIDAuMDA1ODg0LCAwLjAwNTg4OCwgMC4wMDU4ODgsIDAuMDA1ODg5IiwgXAotICAgICAgICAgICIwLjAwNjA3NywgMC4wMDU5MzUsIDAuMDA1OTE4LCAwLjAwNTkxMiwgMC4wMDU5MDgsIDAuMDA1OTA2LCAwLjAwNTkwNSIsIFwKLSAgICAgICAgICAiMC4wMDYyOTYsIDAuMDA2MDA2LCAwLjAwNTk3MywgMC4wMDU5NTQsIDAuMDA1OTQzLCAwLjAwNTkzNSwgMC4wMDU5MjciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDE5OSwgMC4wMDIsIDAuMDAyMDAxLCAwLjAwMjAwMSwgMC4wMDIwMDEsIDAuMDAyLCAwLjAwMjAwMSIsIFwKLSAgICAgICAgICAiMC4wMDE5NDksIDAuMDAxOTY4LCAwLjAwMTk3MiwgMC4wMDE5NzQsIDAuMDAxOTc0LCAwLjAwMTk3NCwgMC4wMDE5NzUiLCBcCi0gICAgICAgICAgIjAuMDAxOTk5LCAwLjAwMTk4NCwgMC4wMDE5ODEsIDAuMDAxOTc5LCAwLjAwMTk3NywgMC4wMDE5NzcsIDAuMDAxOTc2IiwgXAotICAgICAgICAgICIwLjAwMjExNiwgMC4wMDIwMTcsIDAuMDAyMDA0LCAwLjAwMjAwMiwgMC4wMDE5OTUsIDAuMDAxOTkxLCAwLjAwMTk4OCIsIFwKLSAgICAgICAgICAiMC4wMDIyNzgsIDAuMDAyMDg5LCAwLjAwMjA1NCwgMC4wMDIwMywgMC4wMDIwMTcsIDAuMDAyMDAzLCAwLjAwMTk5OCIsIFwKLSAgICAgICAgICAiMC4wMDI2NTksIDAuMDAyMjA1LCAwLjAwMjEzLCAwLjAwMjA5LCAwLjAwMjA2NCwgMC4wMDIwNDcsIDAuMDAyMDM1IiwgXAotICAgICAgICAgICIwLjAwMjk4LCAwLjAwMjMyOSwgMC4wMDIyMiwgMC4wMDIxNTEsIDAuMDAyMTE3LCAwLjAwMjA5NCwgMC4wMDIwNzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0OTQ3LCAwLjAwNDk3OCwgMC4wMDQ5ODEsIDAuMDA0OTgzLCAwLjAwNDk4MywgMC4wMDQ5ODQsIDAuMDA0OTg0IiwgXAotICAgICAgICAgICIwLjAwNDg5OSwgMC4wMDQ5NzUsIDAuMDA0OTg3LCAwLjAwNDk5MywgMC4wMDQ5OTYsIDAuMDA0OTk1LCAwLjAwNDk5OSIsIFwKLSAgICAgICAgICAiMC4wMDQ5NzIsIDAuMDA0OTg3LCAwLjAwNDk5MywgMC4wMDQ5OTcsIDAuMDA0OTk5LCAwLjAwNTAwMSwgMC4wMDUwMDEiLCBcCi0gICAgICAgICAgIjAuMDA1MDUyLCAwLjAwNTAxLCAwLjAwNTAwOSwgMC4wMDUwMDQsIDAuMDA1MDA4LCAwLjAwNTAwOCwgMC4wMDUwMDgiLCBcCi0gICAgICAgICAgIjAuMDA1MjEyLCAwLjAwNTA0OSwgMC4wMDUwNCwgMC4wMDUwMywgMC4wMDUwMjUsIDAuMDA1MDIyLCAwLjAwNTAxOCIsIFwKLSAgICAgICAgICAiMC4wMDU1MjMsIDAuMDA1MTQ5LCAwLjAwNTEwMiwgMC4wMDUwODEsIDAuMDA1MDU5LCAwLjAwNTA0OSwgMC4wMDUwNDMiLCBcCi0gICAgICAgICAgIjAuMDA1NzIzLCAwLjAwNTI1NSwgMC4wMDUxODIsIDAuMDA1MTQyLCAwLjAwNTEwOCwgMC4wMDUwODgsIDAuMDA1MDc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxNDI4LCAwLjAwMTQ2MywgMC4wMDE0NjYsIDAuMDAxNDY4LCAwLjAwMTQ2OSwgMC4wMDE0NjksIDAuMDAxNDY5IiwgXAotICAgICAgICAgICIwLjAwMTM3NywgMC4wMDE0NjIsIDAuMDAxNDc0LCAwLjAwMTQ4MSwgMC4wMDE0ODQsIDAuMDAxNDg2LCAwLjAwMTQ4OCIsIFwKLSAgICAgICAgICAiMC4wMDEzODksIDAuMDAxNDY2LCAwLjAwMTQ3NywgMC4wMDE0ODMsIDAuMDAxNDg3LCAwLjAwMTQ4OSwgMC4wMDE0OSIsIFwKLSAgICAgICAgICAiMC4wMDE0NjEsIDAuMDAxNDcyLCAwLjAwMTQ4NSwgMC4wMDE0ODgsIDAuMDAxNDkxLCAwLjAwMTQ5MiwgMC4wMDE0OTMiLCBcCi0gICAgICAgICAgIjAuMDAxNTkyLCAwLjAwMTU0NCwgMC4wMDE1MjcsIDAuMDAxNTE5LCAwLjAwMTUxNCwgMC4wMDE1MTEsIDAuMDAxNTA1IiwgXAotICAgICAgICAgICIwLjAwMTk3NCwgMC4wMDE2MzIsIDAuMDAxNTk2LCAwLjAwMTU2NiwgMC4wMDE1NTIsIDAuMDAxNTQzLCAwLjAwMTUzNiIsIFwKLSAgICAgICAgICAiMC4wMDIyODYsIDAuMDAxNzM5LCAwLjAwMTY2NCwgMC4wMDE2MjgsIDAuMDAxNTkyLCAwLjAwMTU4MiwgMC4wMDE1NjkiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBPQUkzMVgyICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKE9BSTMxWDIpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC42Mzc4MDc7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE5NDM0NDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE5Mzg0NTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE5NDM0NDsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDEwNDksIDAuMDAxMDQ4LCAwLjAwMTA0NSwgMC4wMDEwNDcsIDAuMDAxMDQ3LCAwLjAwMTA0NiwgMC4wMDEwNDciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDEwNTUsIDAuMDAxMDUxLCAwLjAwMTA1MSwgMC4wMDEwNTIsIDAuMDAxMDUyLCAwLjAwMTA1MiwgMC4wMDEwNTEiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEExKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE3NzA0OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTc2Njc2OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTc3MDQ7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxMDQ4LCAwLjAwMTA0OCwgMC4wMDEwNDgsIDAuMDAxMDQ4LCAwLjAwMTA0OCwgMC4wMDEwNDcsIDAuMDAxMDQ3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxMDU1LCAwLjAwMTA1MSwgMC4wMDEwNTEsIDAuMDAxMDUxLCAwLjAwMTA1MSwgMC4wMDEwNSwgMC4wMDEwNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQTIpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTYzMzEzOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTYzMzEzOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTYyOTI3OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTA0OSwgMC4wMDEwNDksIDAuMDAxMDQ4LCAwLjAwMTA0OCwgMC4wMDEwNDgsIDAuMDAxMDQ3LCAwLjAwMTA0NiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTA1NSwgMC4wMDEwNSwgMC4wMDEwNSwgMC4wMDEwNTEsIDAuMDAxMDUxLCAwLjAwMTA1MSwgMC4wMDEwNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQjApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTcwODc3OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTcwODc3OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTcwODc1OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTIyNiwgMC4wMDEyMjksIDAuMDAxMjMsIDAuMDAxMjI5LCAwLjAwMTIyOCwgMC4wMDEyMjksIDAuMDAxMjMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDExOTEsIDAuMDAxMTkyLCAwLjAwMTE5MiwgMC4wMDExOTIsIDAuMDAxMTkzLCAwLjAwMTE5MiwgMC4wMDExOTIiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4yNTgwNDI7Ci0gICAgZnVuY3Rpb24gOiAiKCEoKChBMCtBMSkrQTIpIEIwKSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjYxODksIDAuMjcxNzM1LCAwLjQzNTIwOCwgMC42NDEwNjksIDAuODQ1NDkzLCAxLjA1MDEzLCAxLjI1NjQ2IiwgXAotICAgICAgICAgICIwLjA3MTQ2OCwgMC4yNzcwNCwgMC40NDA5MTIsIDAuNjQ1ODM4LCAwLjg1MTY2NywgMS4wNTU5LCAxLjI2MDA2IiwgXAotICAgICAgICAgICIwLjA3NjczMywgMC4yODI0MTYsIDAuNDQ2ODc1LCAwLjY1MTg5MSwgMC44NTU5MjQsIDEuMDYyMDgsIDEuMjY2MTMiLCBcCi0gICAgICAgICAgIjAuMDgxODE4LCAwLjI4NzQxNSwgMC40NTE2NDMsIDAuNjU2MTIyLCAwLjg2MTQxNSwgMS4wNjU4NiwgMS4yNzA4NyIsIFwKLSAgICAgICAgICAiMC4wODY1NDYsIDAuMjkyNTkzLCAwLjQ1NjQ1MywgMC42NjE1MzEsIDAuODY2MTYzLCAxLjA3MTIsIDEuMjc2ODUiLCBcCi0gICAgICAgICAgIjAuMDkzMTksIDAuMzAwNTI2LCAwLjQ2NDgyNSwgMC42Njk0MSwgMC44NzQxNTEsIDEuMDc5MzksIDEuMjgzNzgiLCBcCi0gICAgICAgICAgIjAuMDk4Mjg3LCAwLjMwNzgxNCwgMC40NzE2NTUsIDAuNjc3MDA4LCAwLjg4MTkxMiwgMS4wODYyOCwgMS4yOTEwMSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTc1MzksIDAuNTUxNzA5LCAwLjg5ODM5NSwgMS4zMzEzNiwgMS43NjQ5NiwgMi4xOTg1NiwgMi42MzM1MSIsIFwKLSAgICAgICAgICAiMC4xMTc2MzksIDAuNTUxNDM3LCAwLjg5ODUxNywgMS4zMzE3NSwgMS43NjU4MiwgMi4xOTgzMywgMi42MzI0MiIsIFwKLSAgICAgICAgICAiMC4xMTkxMjMsIDAuNTUxNjE2LCAwLjg5ODc2OCwgMS4zMzIxOCwgMS43NjU2OCwgMi4xOTk0OSwgMi42MzE3MSIsIFwKLSAgICAgICAgICAiMC4xMjE4NDYsIDAuNTUxNzAxLCAwLjg5ODQ1NSwgMS4zMzE5NywgMS43NjU3LCAyLjE5ODg0LCAyLjYzMjQyIiwgXAotICAgICAgICAgICIwLjEyNTM5MywgMC41NTIwOTQsIDAuODk4MzkzLCAxLjMzMjM4LCAxLjc2NTY0LCAyLjE5ODU1LCAyLjYzMjgiLCBcCi0gICAgICAgICAgIjAuMTMyNzc3LCAwLjU1NDA2NywgMC44OTkwMSwgMS4zMzIxMSwgMS43NjU1MywgMi4xOTgyNiwgMi42MzI3NSIsIFwKLSAgICAgICAgICAiMC4xMzk3MSwgMC41NTY4NTYsIDAuOTAwMjU5LCAxLjMzMjMzLCAxLjc2NDg4LCAyLjE5OTM0LCAyLjYzMjY5Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0NTc3NywgMC4xODA2OTgsIDAuMjg4MjA4LCAwLjQyMjU3MiwgMC41NTY5NTcsIDAuNjkwOTY5LCAwLjgyNTA3MyIsIFwKLSAgICAgICAgICAiMC4wNTI5MTMsIDAuMTg3OTMsIDAuMjk1MzM1LCAwLjQyOTU1MiwgMC41NjQxNDEsIDAuNjk4MTU1LCAwLjgzMjI3OCIsIFwKLSAgICAgICAgICAiMC4wNjEwODQsIDAuMTk2MTU0LCAwLjMwMzY3NiwgMC40Mzc5MzMsIDAuNTcyMDczLCAwLjcwNjMyNiwgMC44NDA4MzQiLCBcCi0gICAgICAgICAgIjAuMDY5MDIyLCAwLjIwNDMxOSwgMC4zMTE4NzcsIDAuNDQ2MzM1LCAwLjU4MDQ0MiwgMC43MTQ1NjUsIDAuODQ4OTA4IiwgXAotICAgICAgICAgICIwLjA3NTc0NSwgMC4yMTIzNTcsIDAuMzIwMTA0LCAwLjQ1NDY1MSwgMC41ODg3MzUsIDAuNzIzMjU4LCAwLjg1NzMxMiIsIFwKLSAgICAgICAgICAiMC4wODUxMSwgMC4yMjU4ODgsIDAuMzMzMTc4LCAwLjQ2NzYzMSwgMC42MDE4MjcsIDAuNzM2MDkyLCAwLjg3MDc5NiIsIFwKLSAgICAgICAgICAiMC4wOTIxMzYsIDAuMjM3MTYsIDAuMzQ0NTAyLCAwLjQ3OTAyNSwgMC42MTM2NjksIDAuNzQ3ODI2LCAwLjg4MjUwNyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzUwNjMsIDAuMzUzMTA5LCAwLjU3NTQ1OSwgMC44NTM0MzcsIDEuMTMxNDksIDEuNDA5MjYsIDEuNjg2NTYiLCBcCi0gICAgICAgICAgIjAuMDc1Mzc0LCAwLjM1Mjk1NCwgMC41NzU2MzQsIDAuODUzMzM0LCAxLjEzMTI4LCAxLjQwOTQ4LCAxLjY4NzMyIiwgXAotICAgICAgICAgICIwLjA3ODM1NywgMC4zNTI4OTMsIDAuNTc1MzA2LCAwLjg1MzE2OCwgMS4xMzEyOSwgMS40MDkyOSwgMS42ODY5MSIsIFwKLSAgICAgICAgICAiMC4wODMyMjUsIDAuMzUzNDQ3LCAwLjU3NTQyMywgMC44NTMzMTQsIDEuMTMxNDEsIDEuNDA5MzEsIDEuNjg3NjUiLCBcCi0gICAgICAgICAgIjAuMDg5MjQxLCAwLjM1NTA3MSwgMC41NzU2MTMsIDAuODUzMjg5LCAxLjEzMTM1LCAxLjQwOTA3LCAxLjY4NzU1IiwgXAotICAgICAgICAgICIwLjA5OTY5MywgMC4zNTk5NTIsIDAuNTc3NDk5LCAwLjg1Mzg2LCAxLjEzMTksIDEuNDA5MjMsIDEuNjg3IiwgXAotICAgICAgICAgICIwLjEwODY2OCwgMC4zNjUyOTEsIDAuNTgwNDQsIDAuODU0NjQsIDEuMTMxMjcsIDEuNDA5MjcsIDEuNjg2OTEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2NDE1OSwgMC4yNjk2ODgsIDAuNDMzNjkyLCAwLjYzOTAyNiwgMC44NDM0NTQsIDEuMDQ5MjEsIDEuMjU0MjUiLCBcCi0gICAgICAgICAgIjAuMDcwMzAzLCAwLjI3NjE2OCwgMC40NDAzMzYsIDAuNjQ0ODIzLCAwLjg1MDQzOCwgMS4wNTQ3MSwgMS4yNjAxMSIsIFwKLSAgICAgICAgICAiMC4wNzc3NDQsIDAuMjgzMjY5LCAwLjQ0NzM3NCwgMC42NTIxMzIsIDAuODU3NTExLCAxLjA2MjI1LCAxLjI2NzEiLCBcCi0gICAgICAgICAgIjAuMDg1Mzc5LCAwLjI5MTEzLCAwLjQ1NTA1NCwgMC42NjAwMzksIDAuODY0NjIzLCAxLjA3MDcxLCAxLjI3NTAxIiwgXAotICAgICAgICAgICIwLjA5MjYxOCwgMC4yOTg3MTUsIDAuNDYzMDcsIDAuNjY3OTkxLCAwLjg3MjY0NywgMS4wNzgyOSwgMS4yODIwNSIsIFwKLSAgICAgICAgICAiMC4xMDI5MSwgMC4zMTA1OTMsIDAuNDc1MDk0LCAwLjY3OTcyNywgMC44ODQ1NzEsIDEuMDg5NjEsIDEuMjk1NCIsIFwKLSAgICAgICAgICAiMC4xMTA3MjcsIDAuMzIxNDQ3LCAwLjQ4NTczMiwgMC42OTA5MjYsIDAuODk1MTQzLCAxLjEwMDU3LCAxLjMwNTk1Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExNzU0LCAwLjU1MTU2NSwgMC44OTgxMjQsIDEuMzMyMTYsIDEuNzY0OTYsIDIuMTk5MiwgMi42MzMwMyIsIFwKLSAgICAgICAgICAiMC4xMTc2OTgsIDAuNTUxNzQzLCAwLjg5ODc2MSwgMS4zMzIyNywgMS43NjU3OCwgMi4xOTgzMywgMi42MzI2NiIsIFwKLSAgICAgICAgICAiMC4xMjAyNDQsIDAuNTUxNjU5LCAwLjg5ODY2MiwgMS4zMzIyNywgMS43NjU1NSwgMi4xOTgzMSwgMi42MzE3MiIsIFwKLSAgICAgICAgICAiMC4xMjQ2NTYsIDAuNTUxNDM0LCAwLjg5ODY4MiwgMS4zMzIzNCwgMS43NjU1OCwgMi4yMDAwMywgMi42MzE3MSIsIFwKLSAgICAgICAgICAiMC4xMzAwNSwgMC41NTIxNjIsIDAuODk4NTQ5LCAxLjMzMjAzLCAxLjc2NDk0LCAyLjE5OTI4LCAyLjYzMTgzIiwgXAotICAgICAgICAgICIwLjE0MDIyMiwgMC41NTQ3MjYsIDAuODk4NDksIDEuMzMxOTcsIDEuNzY0OTQsIDIuMTk4MjQsIDIuNjMyODgiLCBcCi0gICAgICAgICAgIjAuMTQ5NzY1LCAwLjU1ODM5NywgMC45MDA2NCwgMS4zMzE4LCAxLjc2NTUxLCAyLjE5ODI1LCAyLjYzMjQ5Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0Mzc3NywgMC4xODAxMDEsIDAuMjg4OTg4LCAwLjQyNTE1LCAwLjU2MTA5MSwgMC42OTY5MjksIDAuODMzNzkyIiwgXAotICAgICAgICAgICIwLjA1MDg0NSwgMC4xODcyNywgMC4yOTYxNTMsIDAuNDMyMzE2LCAwLjU2ODQ0OCwgMC43MDQxMzEsIDAuODQwMjUiLCBcCi0gICAgICAgICAgIjAuMDU4ODc5LCAwLjE5NTQ1NSwgMC4zMDQ0NiwgMC40NDAzNjEsIDAuNTc2OTA4LCAwLjcxMjQ0NSwgMC44NDkzNjMiLCBcCi0gICAgICAgICAgIjAuMDY2NTIxLCAwLjIwMzQ3OSwgMC4zMTI1ODUsIDAuNDQ4ODc5LCAwLjU4NDczMiwgMC43MjA2NzgsIDAuODU2ODM3IiwgXAotICAgICAgICAgICIwLjA3Mjk1OCwgMC4yMTE2NzIsIDAuMzIwNTgyLCAwLjQ1NzA2NSwgMC41OTI4NzEsIDAuNzI5NDAzLCAwLjg2NTA5NyIsIFwKLSAgICAgICAgICAiMC4wODE4NjMsIDAuMjI0NzMzLCAwLjMzMzUxOCwgMC40Njk4MDgsIDAuNjA1Nzk3LCAwLjc0MTkzNywgMC44Nzg1MTEiLCBcCi0gICAgICAgICAgIjAuMDg4NDY3LCAwLjIzNTg0OSwgMC4zNDQ2MzEsIDAuNDgxMzY0LCAwLjYxNzkwNCwgMC43NTM2MTgsIDAuODg5NjcyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3MjMyOSwgMC4zNTQ4OTYsIDAuNTgwNjk2LCAwLjg2MzAzNiwgMS4xNDUxNiwgMS40Mjc2OSwgMS43MTAwMSIsIFwKLSAgICAgICAgICAiMC4wNzI2NzUsIDAuMzU0NzEzLCAwLjU4MDcwMiwgMC44NjMwMDIsIDEuMTQ1MjgsIDEuNDI3MjMsIDEuNzEwMzUiLCBcCi0gICAgICAgICAgIjAuMDc1NzU4LCAwLjM1NDcyOCwgMC41ODA2NjYsIDAuODYyNjk3LCAxLjE0NTI4LCAxLjQyNzIzLCAxLjcwOTk4IiwgXAotICAgICAgICAgICIwLjA4MDcyOCwgMC4zNTUyMzksIDAuNTgwNjg2LCAwLjg2MzAxMiwgMS4xNDQ5MiwgMS40MjcyNCwgMS43MTA0OCIsIFwKLSAgICAgICAgICAiMC4wODY3MzMsIDAuMzU2ODg5LCAwLjU4MDgsIDAuODYzMDA2LCAxLjE0NTY2LCAxLjQyNzYxLCAxLjcwOTk5IiwgXAotICAgICAgICAgICIwLjA5NzE0NywgMC4zNjE2NjcsIDAuNTgyNjM4LCAwLjg2Mjg2MiwgMS4xNDQ4OSwgMS40MjgyMywgMS43MDk5NSIsIFwKLSAgICAgICAgICAiMC4xMDYxMTUsIDAuMzY2ODYsIDAuNTg1NjIyLCAwLjg2Mzk2OCwgMS4xNDUzOCwgMS40MjcyNSwgMS43MTAyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEyIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTk0MTQsIDAuMjY0ODc4LCAwLjQyODk5LCAwLjYzMzg3LCAwLjgzOTM2OSwgMS4wNDM2OCwgMS4yNDc4OCIsIFwKLSAgICAgICAgICAiMC4wNjYzMjIsIDAuMjcxODgzLCAwLjQzNjE4NiwgMC42NDEyMzcsIDAuODQ1NTYyLCAxLjA1MDk3LCAxLjI1NjI2IiwgXAotICAgICAgICAgICIwLjA3NTU2OSwgMC4yODEwNTYsIDAuNDQ0NDg0LCAwLjY0OTk3OCwgMC44NTQzNSwgMS4wNjA2NiwgMS4yNjQzNyIsIFwKLSAgICAgICAgICAiMC4wODQ4ODgsIDAuMjkwMDE4LCAwLjQ1NDEzOCwgMC42NTg4MzUsIDAuODYyOTQzLCAxLjA2ODE5LCAxLjI3NDg2IiwgXAotICAgICAgICAgICIwLjA5NDE2MywgMC4yOTg4MzIsIDAuNDYyOTI1LCAwLjY2NzkyMywgMC44NzI0NiwgMS4wNzgzMSwgMS4yODMzOSIsIFwKLSAgICAgICAgICAiMC4xMDcwMzUsIDAuMzEzNTc1LCAwLjQ3NzYzMiwgMC42ODIzODYsIDAuODg2Nzg2LCAxLjA5MTQyLCAxLjI5NjY1IiwgXAotICAgICAgICAgICIwLjExNzAwMywgMC4zMjY2MjIsIDAuNDkwMDEsIDAuNjk1MDczLCAwLjg5OTMyMiwgMS4xMDM5MywgMS4zMDkxIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExNzUzOSwgMC41NTE1NiwgMC44OTg2MzgsIDEuMzMxODIsIDEuNzY1NzUsIDIuMTk4MzMsIDIuNjMyMjIiLCBcCi0gICAgICAgICAgIjAuMTE3NTk2LCAwLjU1MTUxMywgMC44OTg1NDQsIDEuMzMyMDgsIDEuNzY1OTUsIDIuMTk4OCwgMi42MzMwNSIsIFwKLSAgICAgICAgICAiMC4xMjE0NzQsIDAuNTUxOTA2LCAwLjg5Nzg1LCAxLjMzMTg3LCAxLjc2NTU2LCAyLjE5OTQ3LCAyLjYzMTk4IiwgXAotICAgICAgICAgICIwLjEyNzg5NywgMC41NTE3NjksIDAuODk4NDkyLCAxLjMzMjM5LCAxLjc2NTY2LCAyLjE5OTE1LCAyLjYzMzE2IiwgXAotICAgICAgICAgICIwLjEzNTcyMSwgMC41NTIwNjIsIDAuODk4NDAzLCAxLjMzMjE0LCAxLjc2NjA4LCAyLjE5OTQ2LCAyLjYzMjk1IiwgXAotICAgICAgICAgICIwLjE0ODc3MiwgMC41NTU3NzksIDAuODk4NTU1LCAxLjMzMTkxLCAxLjc2NTg2LCAyLjE5OTE2LCAyLjYzMTYyIiwgXAotICAgICAgICAgICIwLjE2MDMxMSwgMC41NjEzMSwgMC45MDAyNjYsIDEuMzMxNjgsIDEuNzY2MDEsIDIuMTk4OTYsIDIuNjMxOTkiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQxMjcxLCAwLjE4MDA3NywgMC4yOTA4MTgsIDAuNDI5MTkzLCAwLjU2Nzg5MiwgMC43MDYyMTcsIDAuODQ1NTMzIiwgXAotICAgICAgICAgICIwLjA0ODM4OSwgMC4xODczMzcsIDAuMjk4MDgsIDAuNDM2NTMxLCAwLjU3NDk1MywgMC43MTM1MzIsIDAuODUyNTIiLCBcCi0gICAgICAgICAgIjAuMDU2NDA0LCAwLjE5NTQ0MiwgMC4zMDYyOTMsIDAuNDQ0OTc1LCAwLjU4MzIzNiwgMC43MjE3NDgsIDAuODYwNDE4IiwgXAotICAgICAgICAgICIwLjA2MzcyNywgMC4yMDM1NzgsIDAuMzE0NTUsIDAuNDUzMTUyLCAwLjU5MTUyLCAwLjczMDA5OCwgMC44Njg4MTEiLCBcCi0gICAgICAgICAgIjAuMDY5OTg3LCAwLjIxMTY5NywgMC4zMjI2MDksIDAuNDYxNDcsIDAuNjAwMDQsIDAuNzM4NTE3LCAwLjg3NzY5OCIsIFwKLSAgICAgICAgICAiMC4wNzg1MTIsIDAuMjI0NjM3LCAwLjMzNTcyNSwgMC40NzQ0ODEsIDAuNjEzMDIxLCAwLjc1MjA1MSwgMC44OTAxNDEiLCBcCi0gICAgICAgICAgIjAuMDg0Nzk3LCAwLjIzNTkxMiwgMC4zNDY2ODQsIDAuNDg1NjYzLCAwLjYyNDUyOSwgMC43NjM0OTgsIDAuOTAxNzM3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2OTYwOCwgMC4zNTcyMiwgMC41ODcxOTksIDAuODc1MTA0LCAxLjE2MTk0LCAxLjQ0OTIyLCAxLjczNzczIiwgXAotICAgICAgICAgICIwLjA2OTk4NywgMC4zNTY5OTcsIDAuNTg3ODU4LCAwLjg3NjQ0OSwgMS4xNjI1NywgMS40NTAzNCwgMS43MzcxNiIsIFwKLSAgICAgICAgICAiMC4wNzMyNDgsIDAuMzU3ODQsIDAuNTg3NDQsIDAuODc0Mzk1LCAxLjE2NDU1LCAxLjQ1MTIxLCAxLjczODM0IiwgXAotICAgICAgICAgICIwLjA3ODMwNCwgMC4zNTc0NzksIDAuNTg3NTExLCAwLjg3NDM3MSwgMS4xNjQ2MSwgMS40NDk0NSwgMS43MzgxMyIsIFwKLSAgICAgICAgICAiMC4wODQ2MTUsIDAuMzU5MjM3LCAwLjU4ODQ1OCwgMC44NzQ1NTQsIDEuMTYyMDIsIDEuNDQ5MzQsIDEuNzM3NDUiLCBcCi0gICAgICAgICAgIjAuMDk1NDM0LCAwLjM2MzgwNSwgMC41OTAyNTQsIDAuODc0NDg1LCAxLjE2MiwgMS40NDk5OSwgMS43MzY3IiwgXAotICAgICAgICAgICIwLjEwMzk3MywgMC4zNjkzNTIsIDAuNTkyMjg2LCAwLjg3NzQyNywgMS4xNjI2LCAxLjQ0OTI1LCAxLjczOTI0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjE1MzcsIDAuMDk5NDU5LCAwLjE2MTczNywgMC4yMzk1NzcsIDAuMzE3NDA3LCAwLjM5NTE4OCwgMC40NzI4NDgiLCBcCi0gICAgICAgICAgIjAuMDI5ODA2LCAwLjEwNzc0OCwgMC4xNzAwMzQsIDAuMjQ3ODg1LCAwLjMyNTY5NywgMC40MDM0NzQsIDAuNDgxMTc1IiwgXAotICAgICAgICAgICIwLjAzOTQxNiwgMC4xMTc5OTUsIDAuMTgwMjgsIDAuMjU4MTE4LCAwLjMzNTkwOCwgMC40MTM2MjYsIDAuNDkxMzE2IiwgXAotICAgICAgICAgICIwLjA0NjEwOSwgMC4xMjg3MDQsIDAuMTkwOTM0LCAwLjI2ODc1OCwgMC4zNDY1NTUsIDAuNDI0Mjg2LCAwLjUwMjAwNiIsIFwKLSAgICAgICAgICAiMC4wNTE3NCwgMC4xMzg5ODIsIDAuMjAxMTk3LCAwLjI3OTAwMSwgMC4zNTY3NDgsIDAuNDM0NDg1LCAwLjUxMjI4IiwgXAotICAgICAgICAgICIwLjA1ODgzNywgMC4xNTU5MTQsIDAuMjE3OTUxLCAwLjI5NTY2MiwgMC4zNzMzOTgsIDAuNDUxMTI5LCAwLjUyODgzIiwgXAotICAgICAgICAgICIwLjA2Mzg3NSwgMC4xNzA2NjYsIDAuMjMyNzI2LCAwLjMxMDMwNSwgMC4zODc5MzUsIDAuNDY1NzIzLCAwLjU0MzUyNCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDcyMzYsIDAuMjEwMzEyLCAwLjM0MTA2NywgMC41MDQ3NjQsIDAuNjY4NDM4LCAwLjgzMjA5MSwgMC45OTU4MSIsIFwKLSAgICAgICAgICAiMC4wNTA3MzcsIDAuMjEwMjk3LCAwLjM0MTEyNiwgMC41MDQ2NzUsIDAuNjY4MzExLCAwLjgzMjEzNCwgMC45OTU3OTgiLCBcCi0gICAgICAgICAgIjAuMDU5MjQyLCAwLjIxMTU0LCAwLjM0MTA5OCwgMC41MDQ3NjUsIDAuNjY4NDMxLCAwLjgzMiwgMC45OTU4MDMiLCBcCi0gICAgICAgICAgIjAuMDY4OTc4LCAwLjIxNTY2NiwgMC4zNDI0MTQsIDAuNTA0NjQ5LCAwLjY2ODU3LCAwLjgzMjI5NCwgMC45OTU2NjQiLCBcCi0gICAgICAgICAgIjAuMDc4MTQxLCAwLjIyMTcwOCwgMC4zNDU4MjQsIDAuNTA1NzI2LCAwLjY2ODM1NCwgMC44MzE5OTEsIDAuOTk2MDciLCBcCi0gICAgICAgICAgIjAuMDkxNDE4LCAwLjIzMzQyLCAwLjM1MzkwNiwgMC41MTA0MzQsIDAuNjcwMzYxLCAwLjgzMjE1MywgMC45OTU3NzMiLCBcCi0gICAgICAgICAgIjAuMTAyMDUxLCAwLjI0NDk1NCwgMC4zNjI5LCAwLjUxNjUzMSwgMC42NzQyMzMsIDAuODM0NTU2LCAwLjk5NjMwMiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDExMjEsIDAuMTc2MjIzLCAwLjI4NTI1MSwgMC40MjQwMjEsIDAuNTYyMDkxLCAwLjcwMTM0NiwgMC44Mzk0MzkiLCBcCi0gICAgICAgICAgIjAuMDQ4NzI1LCAwLjE4MzgyNSwgMC4yOTI4MDEsIDAuNDMxMzk2LCAwLjU2OTY5NiwgMC43MDgyODIsIDAuODQ2NjA1IiwgXAotICAgICAgICAgICIwLjA1ODYxLCAwLjE5MzU1NywgMC4zMDI1MzIsIDAuNDQxMjU4LCAwLjU3OTcxNCwgMC43MTc5MDgsIDAuODU2NTA0IiwgXAotICAgICAgICAgICIwLjA2ODgzNSwgMC4yMDMwMTksIDAuMzExOTgzLCAwLjQ1MDcxMSwgMC41ODg5MTMsIDAuNzI3NDY4LCAwLjg2NjMxOCIsIFwKLSAgICAgICAgICAiMC4wNzcyNDEsIDAuMjEzMTgzLCAwLjMyMjIxLCAwLjQ2MDc2MywgMC41OTkzMjIsIDAuNzM3NjQ5LCAwLjg3NjQ3OCIsIFwKLSAgICAgICAgICAiMC4wODg1NjMsIDAuMjI4OTA0LCAwLjMzNzcxMywgMC40NzYxNDcsIDAuNjE0NjE3LCAwLjc1MjkyOCwgMC44OTE0NTUiLCBcCi0gICAgICAgICAgIjAuMDk3MDQ5LCAwLjI0MzI0OSwgMC4zNTE4OCwgMC40OTAwMjEsIDAuNjI2MDAxLCAwLjc2Njg2NywgMC45MDUyODUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc1MDY4LCAwLjM1NzE1NiwgMC41ODY5ODQsIDAuODc0ODI0LCAxLjE2Mjg4LCAxLjQ0OTg5LCAxLjczNjkxIiwgXAotICAgICAgICAgICIwLjA3NTcxMiwgMC4zNTc4MTksIDAuNTg3NzE1LCAwLjg3NDQ2OCwgMS4xNjQ0NSwgMS40NTI3NSwgMS43MzY3NSIsIFwKLSAgICAgICAgICAiMC4wODEyOTUsIDAuMzU2OTkxLCAwLjU4Njk2NCwgMC44NzQ2ODIsIDEuMTYxODYsIDEuNDUxNywgMS43MzY5NCIsIFwKLSAgICAgICAgICAiMC4wODg2NDIsIDAuMzU3OTY1LCAwLjU4NzM1OCwgMC44NzQ0OTIsIDEuMTY0NjQsIDEuNDQ5NDcsIDEuNzM3NzEiLCBcCi0gICAgICAgICAgIjAuMDk2OTY0LCAwLjM2MTE3NywgMC41ODcwOTEsIDAuODc0NTAyLCAxLjE2MTg5LCAxLjQ0OTQsIDEuNzM3MDciLCBcCi0gICAgICAgICAgIjAuMTEwNzA1LCAwLjM2Nzg2LCAwLjU5MTIyOSwgMC44NzUyNTgsIDEuMTYyOTgsIDEuNDUyNzYsIDEuNzM2ODciLCBcCi0gICAgICAgICAgIjAuMTIxMzE0LCAwLjM3NTk3MSwgMC41OTU4ODUsIDAuODc2MzkzLCAxLjE2NDQsIDEuNDUwMjgsIDEuNzM5MTgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA4MDYyLCAwLjAwODA2NCwgMC4wMDgwNjQsIDAuMDA4MDYzLCAwLjAwODA2MSwgMC4wMDgwNiwgMC4wMDgwNTgiLCBcCi0gICAgICAgICAgIjAuMDA4MDEsIDAuMDA4MDM2LCAwLjAwODAzOSwgMC4wMDgwNCwgMC4wMDgwMzgsIDAuMDA4MDM5LCAwLjAwODAzNiIsIFwKLSAgICAgICAgICAiMC4wMDc5ODcsIDAuMDA4MDI2LCAwLjAwODAzMiwgMC4wMDgwMzQsIDAuMDA4MDM3LCAwLjAwODAzNCwgMC4wMDgwMzIiLCBcCi0gICAgICAgICAgIjAuMDA3OTk1LCAwLjAwODAyMiwgMC4wMDgwMywgMC4wMDgwMzIsIDAuMDA4MDMzLCAwLjAwODAzMiwgMC4wMDgwMzEiLCBcCi0gICAgICAgICAgIjAuMDA4MDMxLCAwLjAwODAzNCwgMC4wMDgwMzYsIDAuMDA4MDM2LCAwLjAwODAzNCwgMC4wMDgwMzMsIDAuMDA4MDM2IiwgXAotICAgICAgICAgICIwLjAwODE0NCwgMC4wMDgwNzIsIDAuMDA4MDYxLCAwLjAwODA1NCwgMC4wMDgwNDksIDAuMDA4MDQ3LCAwLjAwODA0MiIsIFwKLSAgICAgICAgICAiMC4wMDgyOSwgMC4wMDgxMjcsIDAuMDA4MTAxLCAwLjAwODA4MywgMC4wMDgwNzEsIDAuMDA4MDY1LCAwLjAwODA2MSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTg0LCAwLjAwMTg0MSwgMC4wMDE4NDEsIDAuMDAxODQxLCAwLjAwMTg0MSwgMC4wMDE4NDEsIDAuMDAxODQiLCBcCi0gICAgICAgICAgIjAuMDAxNzY2LCAwLjAwMTc4NywgMC4wMDE3ODksIDAuMDAxNzkxLCAwLjAwMTc5MSwgMC4wMDE3OTEsIDAuMDAxNzkxIiwgXAotICAgICAgICAgICIwLjAwMTc0MSwgMC4wMDE3NzQsIDAuMDAxNzc4LCAwLjAwMTc4LCAwLjAwMTc4MSwgMC4wMDE3ODIsIDAuMDAxNzgyIiwgXAotICAgICAgICAgICIwLjAwMTc0OCwgMC4wMDE3NzIsIDAuMDAxNzc2LCAwLjAwMTc3OCwgMC4wMDE3NzksIDAuMDAxNzgsIDAuMDAxNzgiLCBcCi0gICAgICAgICAgIjAuMDAxNzkxLCAwLjAwMTc4NSwgMC4wMDE3ODQsIDAuMDAxNzg0LCAwLjAwMTc4MywgMC4wMDE3ODMsIDAuMDAxNzgyIiwgXAotICAgICAgICAgICIwLjAwMTkxMiwgMC4wMDE4MjQsIDAuMDAxODEsIDAuMDAxODAyLCAwLjAwMTc5NywgMC4wMDE3OTQsIDAuMDAxNzkxIiwgXAotICAgICAgICAgICIwLjAwMjA2OCwgMC4wMDE4ODMsIDAuMDAxODUxLCAwLjAwMTgzMiwgMC4wMDE4MiwgMC4wMDE4MTMsIDAuMDAxODA4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNzE4OCwgMC4wMDcxOTEsIDAuMDA3MTksIDAuMDA3MTg4LCAwLjAwNzE4OCwgMC4wMDcxODUsIDAuMDA3MTg0IiwgXAotICAgICAgICAgICIwLjAwNzEzOCwgMC4wMDcxNjIsIDAuMDA3MTY0LCAwLjAwNzE2NCwgMC4wMDcxNjQsIDAuMDA3MTY0LCAwLjAwNzE2MiIsIFwKLSAgICAgICAgICAiMC4wMDcxMjUsIDAuMDA3MTUzLCAwLjAwNzE1OCwgMC4wMDcxNTgsIDAuMDA3MTU5LCAwLjAwNzE1OCwgMC4wMDcxNTkiLCBcCi0gICAgICAgICAgIjAuMDA3MTQ3LCAwLjAwNzE1NiwgMC4wMDcxNTksIDAuMDA3MTYsIDAuMDA3MTU5LCAwLjAwNzE1OSwgMC4wMDcxNTgiLCBcCi0gICAgICAgICAgIjAuMDA3MjAxLCAwLjAwNzE3MSwgMC4wMDcxNjksIDAuMDA3MTY3LCAwLjAwNzE2NCwgMC4wMDcxNjIsIDAuMDA3MTYxIiwgXAotICAgICAgICAgICIwLjAwNzM0OSwgMC4wMDcyMTksIDAuMDA3MiwgMC4wMDcxODYsIDAuMDA3MTgsIDAuMDA3MTc3LCAwLjAwNzE3MSIsIFwKLSAgICAgICAgICAiMC4wMDc1MjEsIDAuMDA3MjgzLCAwLjAwNzI0MSwgMC4wMDcyMTYsIDAuMDA3MjAyLCAwLjAwNzE5MywgMC4wMDcxODYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDEyNDMsIDAuMDAxMjUyLCAwLjAwMTI1MywgMC4wMDEyNTQsIDAuMDAxMjU0LCAwLjAwMTI1NCwgMC4wMDEyNTMiLCBcCi0gICAgICAgICAgIjAuMDAxMTY4LCAwLjAwMTIzMywgMC4wMDEyNCwgMC4wMDEyNDQsIDAuMDAxMjQ2LCAwLjAwMTI0NywgMC4wMDEyNDgiLCBcCi0gICAgICAgICAgIjAuMDAxMTE1LCAwLjAwMTIxNCwgMC4wMDEyMjgsIDAuMDAxMjM2LCAwLjAwMTI0LCAwLjAwMTI0MiwgMC4wMDEyNDQiLCBcCi0gICAgICAgICAgIjAuMDAxMTA3LCAwLjAwMTIwNiwgMC4wMDEyMjIsIDAuMDAxMjMyLCAwLjAwMTIzNiwgMC4wMDEyMzksIDAuMDAxMjQxIiwgXAotICAgICAgICAgICIwLjAwMTEzOSwgMC4wMDEyMTIsIDAuMDAxMjI1LCAwLjAwMTIzMywgMC4wMDEyMzgsIDAuMDAxMjQsIDAuMDAxMjQyIiwgXAotICAgICAgICAgICIwLjAwMTI1NCwgMC4wMDEyNDIsIDAuMDAxMjQ2LCAwLjAwMTI0OCwgMC4wMDEyNDksIDAuMDAxMjUsIDAuMDAxMjUiLCBcCi0gICAgICAgICAgIjAuMDAxNDExLCAwLjAwMTI5MywgMC4wMDEyOCwgMC4wMDEyNzYsIDAuMDAxMjcxLCAwLjAwMTI2OCwgMC4wMDEyNjYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2MjgsIDAuMDA2Mjg3LCAwLjAwNjI4NywgMC4wMDYyODYsIDAuMDA2Mjg1LCAwLjAwNjI4MywgMC4wMDYyODQiLCBcCi0gICAgICAgICAgIjAuMDA2MjIzLCAwLjAwNjI1NSwgMC4wMDYyNTksIDAuMDA2MjU5LCAwLjAwNjI1OSwgMC4wMDYyNTksIDAuMDA2MjU5IiwgXAotICAgICAgICAgICIwLjAwNjI0NiwgMC4wMDYyNTQsIDAuMDA2MjU1LCAwLjAwNjI1NiwgMC4wMDYyNTcsIDAuMDA2MjU1LCAwLjAwNjI1NSIsIFwKLSAgICAgICAgICAiMC4wMDYzMzcsIDAuMDA2Mjc4LCAwLjAwNjI3LCAwLjAwNjI2NywgMC4wMDYyNjQsIDAuMDA2MjYyLCAwLjAwNjI1OSIsIFwKLSAgICAgICAgICAiMC4wMDY0OTEsIDAuMDA2MzI4LCAwLjAwNjMwMiwgMC4wMDYyODgsIDAuMDA2MjgsIDAuMDA2Mjc0LCAwLjAwNjI2OSIsIFwKLSAgICAgICAgICAiMC4wMDY3NDYsIDAuMDA2NDIxLCAwLjAwNjM2NSwgMC4wMDYzMzEsIDAuMDA2MzEyLCAwLjAwNjMwMSwgMC4wMDYyOTIiLCBcCi0gICAgICAgICAgIjAuMDA3MDM5LCAwLjAwNjUzMSwgMC4wMDY0MzksIDAuMDA2Mzg0LCAwLjAwNjM1NSwgMC4wMDYzMzQsIDAuMDA2MzIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDA1MjcsIDAuMDAwNTYxLCAwLjAwMDU2NCwgMC4wMDA1NjYsIDAuMDAwNTY3LCAwLjAwMDU2NywgMC4wMDA1NjciLCBcCi0gICAgICAgICAgIjAuMDAwNDU0LCAwLjAwMDU4LCAwLjAwMDU5NSwgMC4wMDA2MDMsIDAuMDAwNjA3LCAwLjAwMDYwOSwgMC4wMDA2MSIsIFwKLSAgICAgICAgICAiMC4wMDAzNzcsIDAuMDAwNTU3LCAwLjAwMDU4MiwgMC4wMDA1OTYsIDAuMDAwNjAzLCAwLjAwMDYwOCwgMC4wMDA2MTEiLCBcCi0gICAgICAgICAgIjAuMDAwMzYxLCAwLjAwMDU0MSwgMC4wMDA1NzIsIDAuMDAwNTksIDAuMDAwNTk5LCAwLjAwMDYwNSwgMC4wMDA2MDkiLCBcCi0gICAgICAgICAgIjAuMDAwMzkxLCAwLjAwMDUzOCwgMC4wMDA1NzEsIDAuMDAwNTg5LCAwLjAwMDU5OSwgMC4wMDA2MDUsIDAuMDAwNjA5IiwgXAotICAgICAgICAgICIwLjAwMDQ5LCAwLjAwMDU1OSwgMC4wMDA1ODMsIDAuMDAwNTk3LCAwLjAwMDYwNSwgMC4wMDA2MSwgMC4wMDA2MTQiLCBcCi0gICAgICAgICAgIjAuMDAwNjQzLCAwLjAwMDYsIDAuMDAwNjExLCAwLjAwMDYxOSwgMC4wMDA2MjMsIDAuMDAwNjI2LCAwLjAwMDYyNiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDUxNjMsIDAuMDA1MTk0LCAwLjAwNTE5OCwgMC4wMDUyLCAwLjAwNTIsIDAuMDA1MjAxLCAwLjAwNTIwMSIsIFwKLSAgICAgICAgICAiMC4wMDUxMjksIDAuMDA1MTk3LCAwLjAwNTIwNywgMC4wMDUyMTIsIDAuMDA1MjE1LCAwLjAwNTIxNywgMC4wMDUyMTciLCBcCi0gICAgICAgICAgIjAuMDA1MTgsIDAuMDA1MjE5LCAwLjAwNTIyMiwgMC4wMDUyMjQsIDAuMDA1MjI0LCAwLjAwNTIyNSwgMC4wMDUyMjYiLCBcCi0gICAgICAgICAgIjAuMDA1MzQsIDAuMDA1MjQsIDAuMDA1MjM1LCAwLjAwNTIzMiwgMC4wMDUyMzEsIDAuMDA1MjMsIDAuMDA1MjMxIiwgXAotICAgICAgICAgICIwLjAwNTUwNCwgMC4wMDUzMTUsIDAuMDA1Mjg2LCAwLjAwNTI3LCAwLjAwNTI1NiwgMC4wMDUyNTUsIDAuMDA1MjUxIiwgXAotICAgICAgICAgICIwLjAwNTg1NCwgMC4wMDU0NTcsIDAuMDA1Mzc4LCAwLjAwNTMzOSwgMC4wMDUzMTUsIDAuMDA1MzAxLCAwLjAwNTI4OSIsIFwKLSAgICAgICAgICAiMC4wMDYxODMsIDAuMDA1NjA2LCAwLjAwNTQ4LCAwLjAwNTQxMSwgMC4wMDUzNjksIDAuMDA1MzQ4LCAwLjAwNTMzNSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTkzNiwgMC4wMDE5NzUsIDAuMDAxOTc5LCAwLjAwMTk4MSwgMC4wMDE5ODIsIDAuMDAxOTgyLCAwLjAwMTk4MyIsIFwKLSAgICAgICAgICAiMC4wMDE4NjcsIDAuMDAxOTQ3LCAwLjAwMTk2MSwgMC4wMDE5NjksIDAuMDAxOTczLCAwLjAwMTk3NSwgMC4wMDE5NzYiLCBcCi0gICAgICAgICAgIjAuMDAxOTIzLCAwLjAwMTk0OSwgMC4wMDE5NiwgMC4wMDE5NjcsIDAuMDAxOTcxLCAwLjAwMTk3NCwgMC4wMDE5NzUiLCBcCi0gICAgICAgICAgIjAuMDAyMDM4LCAwLjAwMiwgMC4wMDE5OTEsIDAuMDAxOTg4LCAwLjAwMTk4NywgMC4wMDE5ODYsIDAuMDAxOTg1IiwgXAotICAgICAgICAgICIwLjAwMjIzNiwgMC4wMDIwNCwgMC4wMDIwMTYsIDAuMDAyMDEsIDAuMDAxOTk5LCAwLjAwMTk5NiwgMC4wMDE5OTQiLCBcCi0gICAgICAgICAgIjAuMDAyNjQ1LCAwLjAwMjE3OSwgMC4wMDIxMSwgMC4wMDIwNzcsIDAuMDAyMDU2LCAwLjAwMjA0MiwgMC4wMDIwMzIiLCBcCi0gICAgICAgICAgIjAuMDAyOTU4LCAwLjAwMjMwMywgMC4wMDIxOTcsIDAuMDAyMTMzLCAwLjAwMjEwNiwgMC4wMDIwODgsIDAuMDAyMDczIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogT0FJMzJYMiAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChPQUkzMlgyKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuODI5ODk2OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxOTM1MTQ7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxOTM7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxOTM1MTQ7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxMDQ4LCAwLjAwMTA0OCwgMC4wMDEwNDcsIDAuMDAxMDQ3LCAwLjAwMTA0NywgMC4wMDEwNDcsIDAuMDAxMDQ3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxMDU4LCAwLjAwMTA1MSwgMC4wMDEwNTIsIDAuMDAxMDUyLCAwLjAwMTA1MiwgMC4wMDEwNTIsIDAuMDAxMDUxIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihBMSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNzk0MTk7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNzkwOTY7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNzk0MTk7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxMDQ5LCAwLjAwMTA0OSwgMC4wMDEwNDgsIDAuMDAxMDQ4LCAwLjAwMTA0OCwgMC4wMDEwNDgsIDAuMDAxMDQ4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxMDU3LCAwLjAwMTA1MSwgMC4wMDEwNTEsIDAuMDAxMDUxLCAwLjAwMTA1MSwgMC4wMDEwNDksIDAuMDAxMDUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEEyKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE2NjI0MTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE2NjI0MTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE2NTgxODsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDEwNDksIDAuMDAxMDQ5LCAwLjAwMTA0OSwgMC4wMDEwNDgsIDAuMDAxMDQ4LCAwLjAwMTA0OCwgMC4wMDEwNDgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDEwNTcsIDAuMDAxMDUxLCAwLjAwMTA1MSwgMC4wMDEwNSwgMC4wMDEwNTEsIDAuMDAxMDUsIDAuMDAxMDUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE4MzI5NjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE4MjU1NzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE4MzI5NjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDE3MDYsIDAuMDAxNzA4LCAwLjAwMTcwNywgMC4wMDE3MDgsIDAuMDAxNzA4LCAwLjAwMTcwOCwgMC4wMDE3MDgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDExOTEsIDAuMDAxMTkyLCAwLjAwMTE5MiwgMC4wMDExOTIsIDAuMDAxMTkyLCAwLjAwMTE5MiwgMC4wMDExOTIiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIxKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE2OTY1NjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE2OTY1NjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE2OTYzMzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDE3MDYsIDAuMDAxNzA3LCAwLjAwMTcwNywgMC4wMDE3MDYsIDAuMDAxNzA2LCAwLjAwMTcwNywgMC4wMDE3MDYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDExOTEsIDAuMDAxMTkxLCAwLjAwMTE5MSwgMC4wMDExOTEsIDAuMDAxMTkyLCAwLjAwMTE5MiwgMC4wMDExOTIiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4yNTY4Njg7Ci0gICAgZnVuY3Rpb24gOiAiKCEoKEIwK0IxKSAoKEEwK0ExKStBMikpKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTAiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3MTMxOSwgMC4yNzY1OTMsIDAuNDQwNjI2LCAwLjY0NTM4NywgMC44NTA1MzEsIDEuMDU0OTEsIDEuMjU5MTYiLCBcCi0gICAgICAgICAgIjAuMDc2NjMxLCAwLjI4MjA5NiwgMC40NDYyMSwgMC42NTA5NTQsIDAuODU1MTQsIDEuMDYwODUsIDEuMjY0ODIiLCBcCi0gICAgICAgICAgIjAuMDgxODk3LCAwLjI4NzM4MywgMC40NTE1OSwgMC42NTYxMTYsIDAuODYwNjM0LCAxLjA2NDkzLCAxLjI2OTY2IiwgXAotICAgICAgICAgICIwLjA4Njk5MSwgMC4yOTI1MywgMC40NTY2OTksIDAuNjYxMzMsIDAuODY2MzYzLCAxLjA3MDEsIDEuMjc2MDUiLCBcCi0gICAgICAgICAgIjAuMDkxOTQyLCAwLjI5NzQ5MywgMC40NjE2ODYsIDAuNjY2NDU1LCAwLjg3MDc4MSwgMS4wNzUxNywgMS4yODAyMyIsIFwKLSAgICAgICAgICAiMC4wOTg4MzEsIDAuMzA1NzUsIDAuNDY5ODcsIDAuNjc0NTA2LCAwLjg3ODkyNCwgMS4wODM0MiwgMS4yODc5MiIsIFwKLSAgICAgICAgICAiMC4xMDQyODQsIDAuMzEzMTMyLCAwLjQ3Njc1OSwgMC42ODEyOTEsIDAuODg1NzA1LCAxLjA5MDEzLCAxLjI5NDg0Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEzMjQ5MywgMC41NjM5NDQsIDAuOTA5LCAxLjMzOTk2LCAxLjc3MTM4LCAyLjIwMjk3LCAyLjYzMzMxIiwgXAotICAgICAgICAgICIwLjEzMjUzNCwgMC41NjM5MywgMC45MDkxMTQsIDEuMzQwMzMsIDEuNzcxNDYsIDIuMjAyODIsIDIuNjMzODkiLCBcCi0gICAgICAgICAgIjAuMTMzOTM4LCAwLjU2Mzk0MSwgMC45MDg5NTksIDEuMzQwMzUsIDEuNzcxOCwgMi4yMDI2NiwgMi42MzM3MiIsIFwKLSAgICAgICAgICAiMC4xMzY1NzcsIDAuNTYzODksIDAuOTA4OTMsIDEuMzQwMzcsIDEuNzcxODEsIDIuMjAyNywgMi42MzM4NCIsIFwKLSAgICAgICAgICAiMC4xNDAwODMsIDAuNTY0NTQ1LCAwLjkwOTEzMiwgMS4zNDAzOCwgMS43NzE1NCwgMi4yMDI2OCwgMi42MzMyNyIsIFwKLSAgICAgICAgICAiMC4xNDcwMDcsIDAuNTY2NTYzLCAwLjkwOTQ0NCwgMS4zNDAxOSwgMS43NzEzOCwgMi4yMDIyLCAyLjYzMzg5IiwgXAotICAgICAgICAgICIwLjE1NDAwOSwgMC41NjkyODcsIDAuOTEwNzE5LCAxLjM0MDU1LCAxLjc3MTU4LCAyLjIwMjYxLCAyLjYzMzE1Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1MTIwNCwgMC4xODcyNywgMC4yOTc0NzEsIDAuNDM1MTAyLCAwLjU3MjcwMiwgMC43MTAwNTIsIDAuODQ4Mjk1IiwgXAotICAgICAgICAgICIwLjA1ODU1OSwgMC4xOTQ1MywgMC4zMDQ2MDQsIDAuNDQyMjEzLCAwLjU3OTgxMSwgMC43MTc3MzYsIDAuODU0ODYxIiwgXAotICAgICAgICAgICIwLjA2Njc4OSwgMC4yMDI2NTgsIDAuMzEyODMzLCAwLjQ1MDUxNSwgMC41ODgyNywgMC43MjU2MTksIDAuODYzNTk4IiwgXAotICAgICAgICAgICIwLjA3NDkxOCwgMC4yMTA2OCwgMC4zMjEwMjksIDAuNDU4NTksIDAuNTk2MTIyLCAwLjczMzc1OSwgMC44NzE1MzciLCBcCi0gICAgICAgICAgIjAuMDgyMTU4LCAwLjIxODUzMiwgMC4zMjg4NzMsIDAuNDY2NzEzLCAwLjYwNDQ2LCAwLjc0MTk4NywgMC44Nzk3ODgiLCBcCi0gICAgICAgICAgIjAuMDkyMDk0LCAwLjIzMTYzLCAwLjM0MTYxOCwgMC40Nzk2OSwgMC42MTc0MjgsIDAuNzU0ODM4LCAwLjg5MjQyNCIsIFwKLSAgICAgICAgICAiMC4wOTk4NTksIDAuMjQyNzE1LCAwLjM1Mjc5MSwgMC40OTA3MjgsIDAuNjI4NTcsIDAuNzY2MjAyLCAwLjkwMzg1OSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODEwOTUsIDAuMzY0MDU2LCAwLjU5MTYwNiwgMC44NzYzODksIDEuMTYwNTMsIDEuNDQ1NDUsIDEuNzI5MjMiLCBcCi0gICAgICAgICAgIjAuMDgxMjA0LCAwLjM2Mzk5OSwgMC41OTE3OTQsIDAuODc2NDg0LCAxLjE2MTIxLCAxLjQ0NDcxLCAxLjcyODc4IiwgXAotICAgICAgICAgICIwLjA4MzY3MiwgMC4zNjM5OTksIDAuNTkxNjM5LCAwLjg3NTg1MiwgMS4xNjA0MywgMS40NDQ5NCwgMS43MjkxMiIsIFwKLSAgICAgICAgICAiMC4wODgxMjQsIDAuMzY0NDEyLCAwLjU5MTUwNCwgMC44NzU4NzMsIDEuMTYwNTUsIDEuNDQ1MDgsIDEuNzI5NjIiLCBcCi0gICAgICAgICAgIjAuMDkzNjM1LCAwLjM2NTgxLCAwLjU5MTYzOCwgMC44NzU5OTYsIDEuMTYwNDUsIDEuNDQ0NzMsIDEuNzI5NDEiLCBcCi0gICAgICAgICAgIjAuMTAzODU0LCAwLjM3MDIxLCAwLjU5MzQ0MiwgMC44NzYxODQsIDEuMTYwNDEsIDEuNDQ1MDEsIDEuNzI4ODkiLCBcCi0gICAgICAgICAgIjAuMTEyNzI5LCAwLjM3NTQwNiwgMC41OTYxMTgsIDAuODc3Mzg0LCAxLjE2MDYsIDEuNDQ1MSwgMS43Mjg4OSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY5MTY5LCAwLjI3NDUxNiwgMC40Mzg1OSwgMC42NDM1MDgsIDAuODQ3NzM3LCAxLjA1MjgyLCAxLjI1ODM3IiwgXAotICAgICAgICAgICIwLjA3NTI4OCwgMC4yODA3MDksIDAuNDQ0ODIsIDAuNjQ5NTA4LCAwLjg1Mzk1NiwgMS4wNTk0NiwgMS4yNjM0MyIsIFwKLSAgICAgICAgICAiMC4wODI2NTcsIDAuMjg4MTQsIDAuNDUyMzY4LCAwLjY1NzI2LCAwLjg2MTk0NywgMS4wNjcyMiwgMS4yNzA5OCIsIFwKLSAgICAgICAgICAiMC4wOTAzNDcsIDAuMjk1OTI4LCAwLjQ2MDA5NCwgMC42NjQ3ODMsIDAuODY5MTExLCAxLjA3NDY5LCAxLjI3ODgyIiwgXAotICAgICAgICAgICIwLjA5NzgxNCwgMC4zMDM0NzgsIDAuNDY3NzEyLCAwLjY3MjAwNCwgMC44NzY0NzgsIDEuMDgwODUsIDEuMjg1NzMiLCBcCi0gICAgICAgICAgIjAuMTA4NDM4LCAwLjMxNTkzMSwgMC40Nzk5OSwgMC42ODQ2OTQsIDAuODg5MDM1LCAxLjA5MzI4LCAxLjI5NzkyIiwgXAotICAgICAgICAgICIwLjExNjc3MiwgMC4zMjY1NzUsIDAuNDkwNzMsIDAuNjk1NDc0LCAwLjg5OTc4MiwgMS4xMDQyNSwgMS4zMDg4NCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMzI1MTMsIDAuNTY0MDE1LCAwLjkwOTA3LCAxLjMzOTgzLCAxLjc3MTQsIDIuMjAyNywgMi42MzM1NyIsIFwKLSAgICAgICAgICAiMC4xMzI2MTUsIDAuNTYzODg1LCAwLjkwOTA2OCwgMS4zNDA0NCwgMS43NzE3MSwgMi4yMDIyOCwgMi42MzM5IiwgXAotICAgICAgICAgICIwLjEzNDk0NywgMC41NjM5MjgsIDAuOTA4OTMyLCAxLjM0MDM3LCAxLjc3MTc0LCAyLjIwMjczLCAyLjYzMzgzIiwgXAotICAgICAgICAgICIwLjEzOTI0NSwgMC41NjM4NywgMC45MDkxNDgsIDEuMzQwMzYsIDEuNzcxMzYsIDIuMjAyNjgsIDIuNjMzNzgiLCBcCi0gICAgICAgICAgIjAuMTQ0NTYsIDAuNTY0Mzg0LCAwLjkwOTE0NSwgMS4zNDAyNywgMS43NzE0NywgMi4yMDIzNiwgMi42MzM5IiwgXAotICAgICAgICAgICIwLjE1NDEyNywgMC41NjcwNjYsIDAuOTA5MjI0LCAxLjM0MDM0LCAxLjc3MTY1LCAyLjIwMjgsIDIuNjMzNTgiLCBcCi0gICAgICAgICAgIjAuMTYzNTc1LCAwLjU3MTA1OSwgMC45MTA1ODMsIDEuMzQwMTYsIDEuNzcxNzMsIDIuMjAyMiwgMi42MzMzNiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDkxMjQsIDAuMTg1MzkxLCAwLjI5NDIxMywgMC40MzE3NzksIDAuNTY5Mzg0LCAwLjcwNjk2MSwgMC44NDUxOTUiLCBcCi0gICAgICAgICAgIjAuMDU2NDM0LCAwLjE5Mjc3NywgMC4zMDE0ODMsIDAuNDM5MDU0LCAwLjU3NjkwOSwgMC43MTQ2NDUsIDAuODUyMDQ4IiwgXAotICAgICAgICAgICIwLjA2NDUzMiwgMC4yMDA5OTUsIDAuMzA5NzQzLCAwLjQ0NzMyMSwgMC41ODUyOTYsIDAuNzIyNDg0LCAwLjg2MDYyNyIsIFwKLSAgICAgICAgICAiMC4wNzI0NDgsIDAuMjA5MDk2LCAwLjMxNzk3NywgMC40NTU0OTQsIDAuNTkyOTk4LCAwLjczMDUzNywgMC44NjgzMzgiLCBcCi0gICAgICAgICAgIjAuMDc5NDU1LCAwLjIxNzAxMywgMC4zMjU4ODQsIDAuNDYzNjA1LCAwLjYwMTI5MSwgMC43Mzg5NjEsIDAuODc2NTEiLCBcCi0gICAgICAgICAgIjAuMDg4ODIsIDAuMjMwMDA1LCAwLjMzODc4OCwgMC40NzY1NCwgMC42MTQyMjYsIDAuNzUxODIyLCAwLjg4OTYxOSIsIFwKLSAgICAgICAgICAiMC4wOTYxOCwgMC4yNDE1NjMsIDAuMzUwMjMyLCAwLjQ4NzUzNSwgMC42MjQ4NDksIDAuNzYyNzU1LCAwLjkwMDUyOSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzg0MjEsIDAuMzYwMjY2LCAwLjU4Nzg0NywgMC44NzIxMDMsIDEuMTU2MzYsIDEuNDQwNjksIDEuNzI1MzkiLCBcCi0gICAgICAgICAgIjAuMDc4NTY4LCAwLjM2MDEyNSwgMC41ODc2ODcsIDAuODcxNzkxLCAxLjE1NjU0LCAxLjQ0MDk2LCAxLjcyNTEzIiwgXAotICAgICAgICAgICIwLjA4MTE3NSwgMC4zNjAxMjYsIDAuNTg3NTYxLCAwLjg3MTc4MiwgMS4xNTY2LCAxLjQ0MTY4LCAxLjcyNTM0IiwgXAotICAgICAgICAgICIwLjA4NTY0MywgMC4zNjA1MTksIDAuNTg3NzI0LCAwLjg3MTk0MywgMS4xNTYxOCwgMS40NDA2OCwgMS43MjUyNCIsIFwKLSAgICAgICAgICAiMC4wOTEzNTEsIDAuMzYxOTY1LCAwLjU4NzgwNCwgMC44NzIxMzUsIDEuMTU2NzksIDEuNDQwOTYsIDEuNzI1MzMiLCBcCi0gICAgICAgICAgIjAuMTAxNTU0LCAwLjM2NjQ0LCAwLjU4OTQ0OCwgMC44NzIwNjcsIDEuMTU2MjcsIDEuNDQwODEsIDEuNzI1MSIsIFwKLSAgICAgICAgICAiMC4xMTA0MDUsIDAuMzcxNjY1LCAwLjU5MjU3LCAwLjg3MzE4NiwgMS4xNTY2NiwgMS40NDA0MiwgMS43MjQ4OSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY0NDI2LCAwLjI2OTc2NywgMC40MzM3ODMsIDAuNjM4NDc1LCAwLjg0Mzg0MywgMS4wNDc2NywgMS4yNTIyIiwgXAotICAgICAgICAgICIwLjA3MTMzNiwgMC4yNzY3MywgMC40NDA5MDgsIDAuNjQ1NjU4LCAwLjg0OTg5NSwgMS4wNTQ0NiwgMS4yNjAyNSIsIFwKLSAgICAgICAgICAiMC4wODA1NTksIDAuMjg1ODY5LCAwLjQ0OTk5MywgMC42NTQ2NzIsIDAuODU4OTg0LCAxLjA2NDU0LCAxLjI2OTQ3IiwgXAotICAgICAgICAgICIwLjA4OTkzMSwgMC4yOTQ5MzEsIDAuNDU4OTk3LCAwLjY2MzYxLCAwLjg2NzkzNCwgMS4wNzIzOCwgMS4yNzgxOSIsIFwKLSAgICAgICAgICAiMC4wOTkzMjgsIDAuMzAzNzg2LCAwLjQ2NzgwOCwgMC42NzIzNTgsIDAuODc2NzE4LCAxLjA4MTIyLCAxLjI4NzIxIiwgXAotICAgICAgICAgICIwLjExMzE2MSwgMC4zMTg2MDIsIDAuNDgyNDU1LCAwLjY4NjkwOCwgMC44OTExNzMsIDEuMDk1NTYsIDEuMzAwNSIsIFwKLSAgICAgICAgICAiMC4xMjMzMzksIDAuMzMxNTc3LCAwLjQ5NTI4NiwgMC42OTk2MDYsIDAuOTAzODUzLCAxLjEwODk1LCAxLjMxMjk4Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEzMjUwMiwgMC41NjM4NywgMC45MDkwMDQsIDEuMzQwMzEsIDEuNzcxNTMsIDIuMjAyNjEsIDIuNjMzODMiLCBcCi0gICAgICAgICAgIjAuMTMyNDczLCAwLjU2MzkxOSwgMC45MDg5MiwgMS4zNDAzMiwgMS43NzE0OCwgMi4yMDI2NywgMi42MzM2NiIsIFwKLSAgICAgICAgICAiMC4xMzYwNTksIDAuNTYzOTM3LCAwLjkwODkzLCAxLjM0MDMzLCAxLjc3MTI5LCAyLjIwMjgzLCAyLjYzMzczIiwgXAotICAgICAgICAgICIwLjE0MjI0NywgMC41NjM4NiwgMC45MDkxMSwgMS4zNDA0MywgMS43NzE3MiwgMi4yMDI3LCAyLjYzMzk0IiwgXAotICAgICAgICAgICIwLjE0OTgzOSwgMC41NjQzMjYsIDAuOTA5MDYxLCAxLjM0MDMzLCAxLjc3MTQ4LCAyLjIwMjY3LCAyLjYzMzU5IiwgXAotICAgICAgICAgICIwLjE2MjY3LCAwLjU2ODEzNCwgMC45MDkwNDQsIDEuMzQwMjYsIDEuNzcxNTEsIDIuMjAyNjQsIDIuNjMzNTEiLCBcCi0gICAgICAgICAgIjAuMTc0Mzg2LCAwLjU3MzQ5OCwgMC45MTA2MjksIDEuMzQwMjMsIDEuNzcxMTYsIDIuMjAyNjksIDIuNjMzNTMiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQ2NzMxLCAwLjE4NTI4NCwgMC4yOTU5OTMsIDAuNDM2MTA3LCAwLjU3NjIxNSwgMC43MTU4MiwgMC44NTY5MjMiLCBcCi0gICAgICAgICAgIjAuMDU0MDgyLCAwLjE5MjgyNSwgMC4zMDM1OSwgMC40NDM2OTYsIDAuNTgzOTAzLCAwLjcyNDE1MywgMC44NjQwMDYiLCBcCi0gICAgICAgICAgIjAuMDYyMTYyLCAwLjIwMTA3OCwgMC4zMTE3NTQsIDAuNDUxNzgzLCAwLjU5MTg3OSwgMC43MzE3NywgMC44NzE4OTUiLCBcCi0gICAgICAgICAgIjAuMDY5ODk2LCAwLjIwOTE1NSwgMC4zMjAwMywgMC40NTk4ODgsIDAuNTk5ODUzLCAwLjczOTg1OCwgMC44Nzk4NDEiLCBcCi0gICAgICAgICAgIjAuMDc2NjI3LCAwLjIxNzE4OSwgMC4zMjgzNDEsIDAuNDY4MDE2LCAwLjYwODE0OSwgMC43NDgyNDIsIDAuODg4MDQ1IiwgXAotICAgICAgICAgICIwLjA4NTcxMSwgMC4yMzAzMDYsIDAuMzQxMDg5LCAwLjQ4MTA1NCwgMC42MjEzNDMsIDAuNzYxNDkxLCAwLjkwMTEyMyIsIFwKLSAgICAgICAgICAiMC4wOTI2MTIsIDAuMjQxNTMyLCAwLjM1MjIwNSwgMC40OTIyMjcsIDAuNjMyNTgsIDAuNzcyODQ3LCAwLjkxMjgwMSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzU4MjksIDAuMzYyNzI2LCAwLjU5NDEzLCAwLjg4MzY4NSwgMS4xNzMyLCAxLjQ2NDcyLCAxLjc1MzI3IiwgXAotICAgICAgICAgICIwLjA3NTk2MSwgMC4zNjMyLCAwLjU5NDI0MSwgMC44ODM5OTcsIDEuMTczNDIsIDEuNDYzMzYsIDEuNzUyMjQiLCBcCi0gICAgICAgICAgIjAuMDc4NzA2LCAwLjM2MzE4OCwgMC41OTUzODIsIDAuODgzNTg5LCAxLjE3MzAzLCAxLjQ2NDczLCAxLjc1MjMxIiwgXAotICAgICAgICAgICIwLjA4MzMxNCwgMC4zNjI5NjgsIDAuNTk0MzczLCAwLjg4MzY0MiwgMS4xNzUxMywgMS40NjYwNCwgMS43NTYyMiIsIFwKLSAgICAgICAgICAiMC4wODkwNjcsIDAuMzY0ODcsIDAuNTk0MDIyLCAwLjg4Nzg5OCwgMS4xNzMwNywgMS40NjI1LCAxLjc1MzQ4IiwgXAotICAgICAgICAgICIwLjA5OTUzOCwgMC4zNjg3MjMsIDAuNTk3MDQxLCAwLjg4MzYwNiwgMS4xNzMzOSwgMS40NjMwMSwgMS43NTIyNyIsIFwKLSAgICAgICAgICAiMC4xMDgzMTEsIDAuMzczNzEyLCAwLjU5OTc4OSwgMC44ODUyNzQsIDEuMTc1ODYsIDEuNDYyODUsIDEuNzUzNjEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjAiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0MDMwMywgMC4xODE1MzgsIDAuMjk0NDUyLCAwLjQzNTMwOCwgMC41NzYxOTIsIDAuNzE2ODg3LCAwLjg1NzgwMiIsIFwKLSAgICAgICAgICAiMC4wNDYzNjgsIDAuMTg3ODA1LCAwLjMwMDY2NywgMC40NDE2NDcsIDAuNTgyNDg0LCAwLjcyMzI0LCAwLjg2Mzk5MiIsIFwKLSAgICAgICAgICAiMC4wNTM2NDksIDAuMTk1MjQsIDAuMzA4MTkxLCAwLjQ0OTA0NSwgMC41ODk4OTMsIDAuNzMwNjYxLCAwLjg3MTQyNyIsIFwKLSAgICAgICAgICAiMC4wNjAyMjIsIDAuMjAyNzQzLCAwLjMxNTczNSwgMC40NTY2MzQsIDAuNTk3NDc0LCAwLjczODI0OSwgMC44NzkxMzMiLCBcCi0gICAgICAgICAgIjAuMDY2MDU1LCAwLjIwOTk5NCwgMC4zMjMyMDMsIDAuNDY0MTUyLCAwLjYwNDk4MiwgMC43NDU4MDcsIDAuODg2NTQ5IiwgXAotICAgICAgICAgICIwLjA3MzM5MSwgMC4yMjE4NTksIDAuMzM0ODM2LCAwLjQ3NTc2OSwgMC42MTY3MjEsIDAuNzU3NTA0LCAwLjg5ODEzIiwgXAotICAgICAgICAgICIwLjA3ODg5OSwgMC4yMzIxMjcsIDAuMzQ1MzU3LCAwLjQ4Njg3OCwgMC42Mjc4ODQsIDAuNzY4NzYyLCAwLjkwOTQyMiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODk3NjgsIDAuMzg3NjI5LCAwLjYyNjQ0NywgMC45MjUwMjIsIDEuMjIzODUsIDEuNTIyNTEsIDEuODIxNDIiLCBcCi0gICAgICAgICAgIjAuMDkwNTA2LCAwLjM4NzUzNCwgMC42MjYzNjUsIDAuOTI1MDcyLCAxLjIyMzU4LCAxLjUyMjUzLCAxLjgyMTE5IiwgXAotICAgICAgICAgICIwLjA5NDQ1NCwgMC4zODc1NDMsIDAuNjI2NDUyLCAwLjkyNDk1NywgMS4yMjM3MywgMS41MjI0MywgMS44MjEwMiIsIFwKLSAgICAgICAgICAiMC4wOTk4MywgMC4zODgzMTYsIDAuNjI2NDE2LCAwLjkyNTAyLCAxLjIyMzY2LCAxLjUyMjQyLCAxLjgyMDk4IiwgXAotICAgICAgICAgICIwLjEwNjA3NiwgMC4zOTAxMDUsIDAuNjI2NzA2LCAwLjkyNDc4MywgMS4yMjM1MiwgMS41MjI0NywgMS44MjEyNyIsIFwKLSAgICAgICAgICAiMC4xMTY4MDgsIDAuMzk1MTgyLCAwLjYyODgwMiwgMC45MjUwODUsIDEuMjIzNTgsIDEuNTIyNDIsIDEuODIwOTciLCBcCi0gICAgICAgICAgIjAuMTI1ODgyLCAwLjQwMDQ2NCwgMC42MzIyNDYsIDAuOTI2MzI3LCAxLjIyMzgsIDEuNTIyNDIsIDEuODIxMTgiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQ1MjksIDAuMTgwMTkyLCAwLjI4OTAwOCwgMC40MjczNywgMC41NjUzNzUsIDAuNzA0MDYsIDAuODQyMDYxIiwgXAotICAgICAgICAgICIwLjA1Mjk2MSwgMC4xODc3NjIsIDAuMjk2NTk0LCAwLjQzNDczOSwgMC41NzI5NTIsIDAuNzExMDg2LCAwLjg0OTI5NCIsIFwKLSAgICAgICAgICAiMC4wNjI3OTQsIDAuMTk3NTIzLCAwLjMwNjQzOCwgMC40NDQ1NTIsIDAuNTgyNzM1LCAwLjcyMTU1MywgMC44NTk3NDYiLCBcCi0gICAgICAgICAgIjAuMDcyNjQzLCAwLjIwNzEzMSwgMC4zMTU5NjMsIDAuNDU0MDY5LCAwLjU5MjAxOCwgMC43MzAyODUsIDAuODY5MzI0IiwgXAotICAgICAgICAgICIwLjA4MTg0LCAwLjIxNjY3NSwgMC4zMjU1MzUsIDAuNDYzNzAyLCAwLjYwMjE1MiwgMC43NDAxODcsIDAuODc4MTk3IiwgXAotICAgICAgICAgICIwLjA5NDA2MiwgMC4yMzI2NzUsIDAuMzQxMzMxLCAwLjQ3OTQzMywgMC42MTc1OTcsIDAuNzU1NjY1LCAwLjg5Mzc2NyIsIFwKLSAgICAgICAgICAiMC4xMDMwNjQsIDAuMjQ2ODAxLCAwLjM1NTIyMywgMC40OTMxMjgsIDAuNjI4ODIsIDAuNzY5NjA5LCAwLjkwNzc0MSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODEwNzMsIDAuMzYxMzkyLCAwLjU4OTU2MiwgMC44NzQ4NTMsIDEuMTU5NjksIDEuNDQ1NTQsIDEuNzMwNTIiLCBcCi0gICAgICAgICAgIjAuMDgxNDU1LCAwLjM2MTE5OCwgMC41ODk1NDksIDAuODc0ODAzLCAxLjE1OTk1LCAxLjQ0NTAzLCAxLjczMDM1IiwgXAotICAgICAgICAgICIwLjA4NjU5MiwgMC4zNjEyMTQsIDAuNTg5Njk2LCAwLjg3NDYxLCAxLjE1OTg4LCAxLjQ0NTU1LCAxLjczMDc2IiwgXAotICAgICAgICAgICIwLjA5NDA2NCwgMC4zNjE4MDcsIDAuNTg5NTU4LCAwLjg3NDg5OSwgMS4xNTk4NCwgMS40NDUwMywgMS43MzA5NiIsIFwKLSAgICAgICAgICAiMC4xMDI0OTYsIDAuMzY0NjkyLCAwLjU4OTUyMSwgMC44NzQ4NDYsIDEuMTYwMjEsIDEuNDQ1MTcsIDEuNzMwOTIiLCBcCi0gICAgICAgICAgIjAuMTE2MzYzLCAwLjM3MTUzLCAwLjU5MjM5OCwgMC44NzQ3MTEsIDEuMTYwMDUsIDEuNDQ1MDksIDEuNzMwNDMiLCBcCi0gICAgICAgICAgIjAuMTI3NTg1LCAwLjM3OTY2OSwgMC41OTY3OTcsIDAuODc2MjIsIDEuMTU5NzgsIDEuNDQ1NTQsIDEuNzMxMTMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzODE3MiwgMC4xNzkzOTcsIDAuMjkyMjY1LCAwLjQzMzE1NCwgMC41NzQwMjQsIDAuNzE0OTM3LCAwLjg1NTcxMSIsIFwKLSAgICAgICAgICAiMC4wNDU2NzMsIDAuMTg3MDcyLCAwLjI5OTk3NywgMC40NDA5MzEsIDAuNTgxNzg1LCAwLjcyMjQ0NSwgMC44NjMyMzQiLCBcCi0gICAgICAgICAgIjAuMDU1Mzk4LCAwLjE5NjczOCwgMC4zMDk2MjYsIDAuNDUwNTI1LCAwLjU5MTQzOSwgMC43MzIxMDYsIDAuODcyODcxIiwgXAotICAgICAgICAgICIwLjA2NDY3MywgMC4yMDYzMDUsIDAuMzE5MjI0LCAwLjQ2MDE0NiwgMC42MDA4NTcsIDAuNzQxNjQ4LCAwLjg4MjM5OSIsIFwKLSAgICAgICAgICAiMC4wNzIxMTQsIDAuMjE1NzkzLCAwLjMyODcwNiwgMC40Njk1MDMsIDAuNjEwNDYsIDAuNzUxMjExLCAwLjg5MTkwMiIsIFwKLSAgICAgICAgICAiMC4wODIxNTIsIDAuMjMxNDgsIDAuMzQ0MTUsIDAuNDg0NDU5LCAwLjYyNTcxMiwgMC43NjY0MzYsIDAuOTA3MTU0IiwgXAotICAgICAgICAgICIwLjA4OTk2NiwgMC4yNDUyMjMsIDAuMzU3NzM3LCAwLjQ5ODUyMiwgMC42Mzg2MiwgMC43Nzk5NTMsIDAuOTIwNjUzIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4OTc3MiwgMC4zODc2MTIsIDAuNjI2MzgsIDAuOTI1MDM1LCAxLjIyMzY1LCAxLjUyMjYzLCAxLjgyMTM5IiwgXAotICAgICAgICAgICIwLjA5MTExOSwgMC4zODc2MjQsIDAuNjI2MjQxLCAwLjkyNTAxMywgMS4yMjM3NCwgMS41MjIzMywgMS44MjA5MyIsIFwKLSAgICAgICAgICAiMC4wOTc0MjUsIDAuMzg3NTc4LCAwLjYyNjQxNiwgMC45MjUwNDgsIDEuMjIzOCwgMS41MjIzMywgMS44MjEwNCIsIFwKLSAgICAgICAgICAiMC4xMDU3MjMsIDAuMzg4MjUyLCAwLjYyNjM5MSwgMC45MjUwOTksIDEuMjIzNjMsIDEuNTIyMzUsIDEuODIwOTQiLCBcCi0gICAgICAgICAgIjAuMTE0Njk4LCAwLjM5MTE2OSwgMC42MjY1MzksIDAuOTI0ODA3LCAxLjIyMzc1LCAxLjUyMjUyLCAxLjgyMTAzIiwgXAotICAgICAgICAgICIwLjEyOTAwMiwgMC4zOTg2NDEsIDAuNjI5NDM5LCAwLjkyNTAxNCwgMS4yMjM2NSwgMS41MjIyOCwgMS44MjExNiIsIFwKLSAgICAgICAgICAiMC4xNDAwMDEsIDAuNDA2Nzk0LCAwLjYzNDI1OCwgMC45MjY1MTUsIDEuMjIzNjcsIDEuNTIyNDIsIDEuODIwODMiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQzNTcxLCAwLjE4MjA5MiwgMC4yOTIyNDcsIDAuNDI5OTg1LCAwLjU2OTc5MywgMC43MTAxMDgsIDAuODUwMTkyIiwgXAotICAgICAgICAgICIwLjA1MTI0MSwgMC4xODk4MDIsIDAuMjk5OTgxLCAwLjQzNzgxOCwgMC41Nzc4NjUsIDAuNzE3NDc0LCAwLjg1NzQ1NiIsIFwKLSAgICAgICAgICAiMC4wNjEwMTcsIDAuMTk5NDM4LCAwLjMwOTY0OSwgMC40NDczNSwgMC41ODcyOSwgMC43MjcxODMsIDAuODY3MTk5IiwgXAotICAgICAgICAgICIwLjA3MDc1OSwgMC4yMDg4NjgsIDAuMzE5MTAxLCAwLjQ1NjczMywgMC41OTY1MzUsIDAuNzM2NTcxLCAwLjg3NzMzIiwgXAotICAgICAgICAgICIwLjA3OTczNCwgMC4yMTg3NjksIDAuMzI4OTYzLCAwLjQ2NjUxMSwgMC42MDY0NjgsIDAuNzQ2MzY4LCAwLjg4NjYxOCIsIFwKLSAgICAgICAgICAiMC4wOTE1NjcsIDAuMjM0NjMzLCAwLjM0NDc3MywgMC40ODE2NzgsIDAuNjIyMTIxLCAwLjc2MjEyMywgMC45MDIwMTUiLCBcCi0gICAgICAgICAgIjAuMTAwMTU1LCAwLjI0ODkzMiwgMC4zNTg0OTksIDAuNDk2MTczLCAwLjYzMzMxMywgMC43NzU5MTksIDAuOTE1ODc0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3OTYxNywgMC4zNjQwNzMsIDAuNTk0MTE5LCAwLjg4NDA5NCwgMS4xNzMxMywgMS40NjM1MSwgMS43NTI1NSIsIFwKLSAgICAgICAgICAiMC4wODAwMTIsIDAuMzY0MDIzLCAwLjU5NDA3MSwgMC44ODM5MTEsIDEuMTczMzUsIDEuNDcwMTMsIDEuNzU0NyIsIFwKLSAgICAgICAgICAiMC4wODUyNiwgMC4zNjM5MjQsIDAuNTk0MDUzLCAwLjg4MzQ1OCwgMS4xNzMwNSwgMS40NjM2OSwgMS43NjExIiwgXAotICAgICAgICAgICIwLjA5MjkxMywgMC4zNjQ0NzcsIDAuNTk1MzQ5LCAwLjg4MzQ3MSwgMS4xNzUwNCwgMS40NzAzNywgMS43NTMwOSIsIFwKLSAgICAgICAgICAiMC4xMDE1MDQsIDAuMzY2OTYzLCAwLjU5NDAzOSwgMC44ODM0NTYsIDEuMTcyOTgsIDEuNDYyNzMsIDEuNzYwODciLCBcCi0gICAgICAgICAgIjAuMTE1NDA4LCAwLjM3MzcyMywgMC41OTgwNjQsIDAuODg0MDc4LCAxLjE3NDE3LCAxLjQ2MjgyLCAxLjc2MDgzIiwgXAotICAgICAgICAgICIwLjEyNjczNiwgMC4zODE4MzUsIDAuNjAxMzM0LCAwLjg4NTMzOSwgMS4xNzU3OCwgMS40NjM5LCAxLjc1MjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMDMwNSwgMC4wMTAzMDgsIDAuMDEwMzA2LCAwLjAxMDMwNSwgMC4wMTAzMDMsIDAuMDEwMzAyLCAwLjAxMDI5OSIsIFwKLSAgICAgICAgICAiMC4wMTAyNTIsIDAuMDEwMjc3LCAwLjAxMDI4LCAwLjAxMDI4LCAwLjAxMDI4LCAwLjAxMDI3NywgMC4wMTAyNzciLCBcCi0gICAgICAgICAgIjAuMDEwMjI4LCAwLjAxMDI2NiwgMC4wMTAyNzEsIDAuMDEwMjczLCAwLjAxMDI3MywgMC4wMTAyNzIsIDAuMDEwMjcxIiwgXAotICAgICAgICAgICIwLjAxMDIzNCwgMC4wMTAyNjQsIDAuMDEwMjY4LCAwLjAxMDI3LCAwLjAxMDI3LCAwLjAxMDI2OSwgMC4wMTAyNjgiLCBcCi0gICAgICAgICAgIjAuMDEwMjY1LCAwLjAxMDI3LCAwLjAxMDI3MiwgMC4wMTAyNzUsIDAuMDEwMjc0LCAwLjAxMDI3MiwgMC4wMTAyNzEiLCBcCi0gICAgICAgICAgIjAuMDEwMzc0LCAwLjAxMDMwOSwgMC4wMTAyOTcsIDAuMDEwMjkxLCAwLjAxMDI4NywgMC4wMTAyODUsIDAuMDEwMjgxIiwgXAotICAgICAgICAgICIwLjAxMDUxMywgMC4wMTAzNjQsIDAuMDEwMzMzLCAwLjAxMDMxNywgMC4wMTAzMDgsIDAuMDEwMzAxLCAwLjAxMDI5NCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjYwNywgMC4wMDI2MDgsIDAuMDAyNjA4LCAwLjAwMjYwNywgMC4wMDI2MDcsIDAuMDAyNjA3LCAwLjAwMjYwNyIsIFwKLSAgICAgICAgICAiMC4wMDI1MzUsIDAuMDAyNTUzLCAwLjAwMjU1NiwgMC4wMDI1NTcsIDAuMDAyNTU3LCAwLjAwMjU1NywgMC4wMDI1NTciLCBcCi0gICAgICAgICAgIjAuMDAyNTA4LCAwLjAwMjU0LCAwLjAwMjU0NCwgMC4wMDI1NDcsIDAuMDAyNTQ3LCAwLjAwMjU0OCwgMC4wMDI1NDgiLCBcCi0gICAgICAgICAgIjAuMDAyNTExLCAwLjAwMjUzNywgMC4wMDI1NDIsIDAuMDAyNTQ0LCAwLjAwMjU0NSwgMC4wMDI1NDUsIDAuMDAyNTQ1IiwgXAotICAgICAgICAgICIwLjAwMjUzOSwgMC4wMDI1NDUsIDAuMDAyNTQ2LCAwLjAwMjU0NywgMC4wMDI1NDcsIDAuMDAyNTQ2LCAwLjAwMjU0NiIsIFwKLSAgICAgICAgICAiMC4wMDI2MzgsIDAuMDAyNTc3LCAwLjAwMjU2OSwgMC4wMDI1NjMsIDAuMDAyNTU5LCAwLjAwMjU1NiwgMC4wMDI1NTQiLCBcCi0gICAgICAgICAgIjAuMDAyNzYzLCAwLjAwMjYyNiwgMC4wMDI2MDIsIDAuMDAyNTg4LCAwLjAwMjU3OSwgMC4wMDI1NzMsIDAuMDAyNTY4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwOTQyOSwgMC4wMDk0MzEsIDAuMDA5NDMsIDAuMDA5NDI4LCAwLjAwOTQyNywgMC4wMDk0MjQsIDAuMDA5NDIzIiwgXAotICAgICAgICAgICIwLjAwOTM3NywgMC4wMDk0MDEsIDAuMDA5NDA0LCAwLjAwOTQwMywgMC4wMDk0MDIsIDAuMDA5NCwgMC4wMDk0IiwgXAotICAgICAgICAgICIwLjAwOTM2MywgMC4wMDkzOTIsIDAuMDA5Mzk1LCAwLjAwOTM5NywgMC4wMDkzOTYsIDAuMDA5Mzk2LCAwLjAwOTM5NyIsIFwKLSAgICAgICAgICAiMC4wMDkzODIsIDAuMDA5MzkzLCAwLjAwOTM5NSwgMC4wMDkzOTYsIDAuMDA5Mzk1LCAwLjAwOTM5NCwgMC4wMDkzOTUiLCBcCi0gICAgICAgICAgIjAuMDA5NDM3LCAwLjAwOTQwOSwgMC4wMDk0MDQsIDAuMDA5NDAxLCAwLjAwOTQwMiwgMC4wMDkzOTgsIDAuMDA5Mzk3IiwgXAotICAgICAgICAgICIwLjAwOTU3MiwgMC4wMDk0NTUsIDAuMDA5NDM3LCAwLjAwOTQyNSwgMC4wMDk0MTgsIDAuMDA5NDEsIDAuMDA5NDA1IiwgXAotICAgICAgICAgICIwLjAwOTczOCwgMC4wMDk1MTUsIDAuMDA5NDc3LCAwLjAwOTQ1NSwgMC4wMDk0NCwgMC4wMDk0MzMsIDAuMDA5NDI0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxOTU3LCAwLjAwMTk2NywgMC4wMDE5NjcsIDAuMDAxOTY3LCAwLjAwMTk2NywgMC4wMDE5NjcsIDAuMDAxOTY3IiwgXAotICAgICAgICAgICIwLjAwMTg5LCAwLjAwMTk0OCwgMC4wMDE5NTYsIDAuMDAxOTYsIDAuMDAxOTYxLCAwLjAwMTk2MiwgMC4wMDE5NjMiLCBcCi0gICAgICAgICAgIjAuMDAxODM4LCAwLjAwMTkzLCAwLjAwMTk0MywgMC4wMDE5NTEsIDAuMDAxOTU1LCAwLjAwMTk1NywgMC4wMDE5NTgiLCBcCi0gICAgICAgICAgIjAuMDAxODIsIDAuMDAxOTE4LCAwLjAwMTkzNSwgMC4wMDE5NDUsIDAuMDAxOTUsIDAuMDAxOTUzLCAwLjAwMTk1NSIsIFwKLSAgICAgICAgICAiMC4wMDE4NDQsIDAuMDAxOTIsIDAuMDAxOTM2LCAwLjAwMTk0NiwgMC4wMDE5NSwgMC4wMDE5NTMsIDAuMDAxOTU1IiwgXAotICAgICAgICAgICIwLjAwMTkzMiwgMC4wMDE5NDUsIDAuMDAxOTUxLCAwLjAwMTk1NywgMC4wMDE5NiwgMC4wMDE5NjEsIDAuMDAxOTYxIiwgXAotICAgICAgICAgICIwLjAwMjA1NywgMC4wMDE5ODcsIDAuMDAxOTgzLCAwLjAwMTk3OSwgMC4wMDE5NzUsIDAuMDAxOTc1LCAwLjAwMTk3MyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEyIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDg1MTcsIDAuMDA4NTIzLCAwLjAwODUyMywgMC4wMDg1MjIsIDAuMDA4NTIxLCAwLjAwODUxOSwgMC4wMDg1MTYiLCBcCi0gICAgICAgICAgIjAuMDA4NDU5LCAwLjAwODQ4OSwgMC4wMDg0OTIsIDAuMDA4NDkzLCAwLjAwODQ5MywgMC4wMDg0OTIsIDAuMDA4NDkiLCBcCi0gICAgICAgICAgIjAuMDA4NDc3LCAwLjAwODQ4NiwgMC4wMDg0ODksIDAuMDA4NDg5LCAwLjAwODQ4OCwgMC4wMDg0ODcsIDAuMDA4NDg2IiwgXAotICAgICAgICAgICIwLjAwODU2LCAwLjAwODUwOSwgMC4wMDg1MDEsIDAuMDA4NDk3LCAwLjAwODQ5NCwgMC4wMDg0OTMsIDAuMDA4NDkiLCBcCi0gICAgICAgICAgIjAuMDA4NzExLCAwLjAwODU1OCwgMC4wMDg1MzQsIDAuMDA4NTIxLCAwLjAwODUxMywgMC4wMDg1MDYsIDAuMDA4NTAzIiwgXAotICAgICAgICAgICIwLjAwODk1NCwgMC4wMDg2NDksIDAuMDA4NTk1LCAwLjAwODU2MywgMC4wMDg1NDQsIDAuMDA4NTMzLCAwLjAwODUyNSIsIFwKLSAgICAgICAgICAiMC4wMDkyMzcsIDAuMDA4NzU5LCAwLjAwODY3LCAwLjAwODYxNSwgMC4wMDg1ODUsIDAuMDA4NTY2LCAwLjAwODU1MyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTI1MiwgMC4wMDEyODMsIDAuMDAxMjg2LCAwLjAwMTI4OCwgMC4wMDEyODgsIDAuMDAxMjg5LCAwLjAwMTI4OSIsIFwKLSAgICAgICAgICAiMC4wMDExODksIDAuMDAxMzAyLCAwLjAwMTMxNiwgMC4wMDEzMjQsIDAuMDAxMzI4LCAwLjAwMTMzLCAwLjAwMTMzMSIsIFwKLSAgICAgICAgICAiMC4wMDExMTIsIDAuMDAxMjc4LCAwLjAwMTMwNCwgMC4wMDEzMTgsIDAuMDAxMzI1LCAwLjAwMTMyOSwgMC4wMDEzMzEiLCBcCi0gICAgICAgICAgIjAuMDAxMDgyLCAwLjAwMTI1OSwgMC4wMDEyOTEsIDAuMDAxMzA5LCAwLjAwMTMxOSwgMC4wMDEzMjUsIDAuMDAxMzI4IiwgXAotICAgICAgICAgICIwLjAwMTA5NSwgMC4wMDEyNTIsIDAuMDAxMjg2LCAwLjAwMTMwNSwgMC4wMDEzMTYsIDAuMDAxMzIyLCAwLjAwMTMyNyIsIFwKLSAgICAgICAgICAiMC4wMDExNzYsIDAuMDAxMjY3LCAwLjAwMTI5NCwgMC4wMDEzMTEsIDAuMDAxMzIsIDAuMDAxMzI2LCAwLjAwMTMzIiwgXAotICAgICAgICAgICIwLjAwMTI5LCAwLjAwMTI5OCwgMC4wMDEzMTYsIDAuMDAxMzI4LCAwLjAwMTMzNCwgMC4wMDEzMzgsIDAuMDAxMzQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2ODY1LCAwLjAwNjg4OCwgMC4wMDY4OSwgMC4wMDY4OTIsIDAuMDA2ODkyLCAwLjAwNjg5MywgMC4wMDY4OTIiLCBcCi0gICAgICAgICAgIjAuMDA2ODA4LCAwLjAwNjg4OCwgMC4wMDY4OTksIDAuMDA2OTA0LCAwLjAwNjkwNywgMC4wMDY5MDUsIDAuMDA2OTA2IiwgXAotICAgICAgICAgICIwLjAwNjc4OSwgMC4wMDY4NzcsIDAuMDA2ODkyLCAwLjAwNjg5OSwgMC4wMDY5MDIsIDAuMDA2OTA4LCAwLjAwNjkxIiwgXAotICAgICAgICAgICIwLjAwNjgyMywgMC4wMDY4ODIsIDAuMDA2ODk1LCAwLjAwNjkwMywgMC4wMDY5MDcsIDAuMDA2OTEsIDAuMDA2OTEiLCBcCi0gICAgICAgICAgIjAuMDA2OTEzLCAwLjAwNjksIDAuMDA2OTA4LCAwLjAwNjkwOCwgMC4wMDY5MTUsIDAuMDA2OTE2LCAwLjAwNjkxNSIsIFwKLSAgICAgICAgICAiMC4wMDcwOTgsIDAuMDA2OTYsIDAuMDA2OTQ2LCAwLjAwNjkzOSwgMC4wMDY5MzUsIDAuMDA2OTMzLCAwLjAwNjkzMiIsIFwKLSAgICAgICAgICAiMC4wMDczMjQsIDAuMDA3MDM0LCAwLjAwNjk5OSwgMC4wMDY5ODEsIDAuMDA2OTY5LCAwLjAwNjk2MiwgMC4wMDY5NTQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI2MjEsIDAuMDAyNjMxLCAwLjAwMjYzLCAwLjAwMjYzMSwgMC4wMDI2MzEsIDAuMDAyNjMxLCAwLjAwMjYzIiwgXAotICAgICAgICAgICIwLjAwMjU4MSwgMC4wMDI2LCAwLjAwMjYwNCwgMC4wMDI2MDMsIDAuMDAyNjA1LCAwLjAwMjYwNSwgMC4wMDI2MDUiLCBcCi0gICAgICAgICAgIjAuMDAyNjMzLCAwLjAwMjYxNCwgMC4wMDI2MTEsIDAuMDAyNjA4LCAwLjAwMjYwNywgMC4wMDI2MDcsIDAuMDAyNjA1IiwgXAotICAgICAgICAgICIwLjAwMjc4MywgMC4wMDI2NDgsIDAuMDAyNjM1LCAwLjAwMjYzMywgMC4wMDI2MjYsIDAuMDAyNjIxLCAwLjAwMjYxOCIsIFwKLSAgICAgICAgICAiMC4wMDI5MzgsIDAuMDAyNzE5LCAwLjAwMjY4MywgMC4wMDI2NjEsIDAuMDAyNjQ2LCAwLjAwMjYzOCwgMC4wMDI2MzMiLCBcCi0gICAgICAgICAgIjAuMDAzMjU5LCAwLjAwMjgzMiwgMC4wMDI3NTksIDAuMDAyNzIsIDAuMDAyNjk0LCAwLjAwMjY3NywgMC4wMDI2NjUiLCBcCi0gICAgICAgICAgIjAuMDAzNTcsIDAuMDAyOTU0LCAwLjAwMjg0OSwgMC4wMDI3ODEsIDAuMDAyNzQ2LCAwLjAwMjcyMywgMC4wMDI3MDUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1OTcxLCAwLjAwNjAwMywgMC4wMDYwMDYsIDAuMDA2MDA4LCAwLjAwNjAwOCwgMC4wMDYwMDcsIDAuMDA2MDA5IiwgXAotICAgICAgICAgICIwLjAwNTkyNiwgMC4wMDYwMDQsIDAuMDA2MDEzLCAwLjAwNjAxOSwgMC4wMDYwMjQsIDAuMDA2MDI1LCAwLjAwNjAyOCIsIFwKLSAgICAgICAgICAiMC4wMDU5NTMsIDAuMDA2MDA0LCAwLjAwNjAxNSwgMC4wMDYwMjEsIDAuMDA2MDI1LCAwLjAwNjAyNiwgMC4wMDYwMjciLCBcCi0gICAgICAgICAgIjAuMDA2MDU4LCAwLjAwNjAyNywgMC4wMDYwMzIsIDAuMDA2MDMsIDAuMDA2MDMxLCAwLjAwNjAzMiwgMC4wMDYwMzIiLCBcCi0gICAgICAgICAgIjAuMDA2MjQ0LCAwLjAwNjA3OCwgMC4wMDYwNjgsIDAuMDA2MDU0LCAwLjAwNjA1MywgMC4wMDYwNDksIDAuMDA2MDQ4IiwgXAotICAgICAgICAgICIwLjAwNjU1MiwgMC4wMDYxOCwgMC4wMDYxMzEsIDAuMDA2MTA2LCAwLjAwNjA4NywgMC4wMDYwNzgsIDAuMDA2MDcxIiwgXAotICAgICAgICAgICIwLjAwNjc1NSwgMC4wMDYyODUsIDAuMDA2MjEyLCAwLjAwNjE3MiwgMC4wMDYxNCwgMC4wMDYxMTUsIDAuMDA2MTA0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyMDM0LCAwLjAwMjA2NiwgMC4wMDIwNywgMC4wMDIwNzIsIDAuMDAyMDcyLCAwLjAwMjA3MywgMC4wMDIwNzMiLCBcCi0gICAgICAgICAgIjAuMDAxOTg2LCAwLjAwMjA2NiwgMC4wMDIwNzgsIDAuMDAyMDg1LCAwLjAwMjA4OCwgMC4wMDIwOSwgMC4wMDIwOTEiLCBcCi0gICAgICAgICAgIjAuMDAyLCAwLjAwMjA2OCwgMC4wMDIwOCwgMC4wMDIwODcsIDAuMDAyMDksIDAuMDAyMDkyLCAwLjAwMjA5MyIsIFwKLSAgICAgICAgICAiMC4wMDIxMjksIDAuMDAyMTA0LCAwLjAwMjEwMywgMC4wMDIxMDIsIDAuMDAyMTAyLCAwLjAwMjEwMiwgMC4wMDIxMDIiLCBcCi0gICAgICAgICAgIjAuMDAyMjY0LCAwLjAwMjE0NywgMC4wMDIxMzEsIDAuMDAyMTIyLCAwLjAwMjExOCwgMC4wMDIxMTUsIDAuMDAyMTA5IiwgXAotICAgICAgICAgICIwLjAwMjU0NiwgMC4wMDIyMzUsIDAuMDAyMTk5LCAwLjAwMjE2OCwgMC4wMDIxNTYsIDAuMDAyMTQ2LCAwLjAwMjEzOSIsIFwKLSAgICAgICAgICAiMC4wMDI4NTIsIDAuMDAyMzQsIDAuMDAyMjY2LCAwLjAwMjIzMSwgMC4wMDIxOTMsIDAuMDAyMTg0LCAwLjAwMjE3MiIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IE9BSTMzWDQgKgotICogLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoT0FJMzNYNCkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAyLjA4MTQ2OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAzMTgzMDg7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAzMTcxMTc7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAzMTgzMDg7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyMDk3LCAwLjAwMjA5NiwgMC4wMDIwOTUsIDAuMDAyMDk0LCAwLjAwMjA5MiwgMC4wMDIwOTQsIDAuMDAyMDk0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyMTIsIDAuMDAyMTA0LCAwLjAwMjEwNCwgMC4wMDIxMDQsIDAuMDAyMTA0LCAwLjAwMjA5NiwgMC4wMDIxIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihBMSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAzMTQxMDU7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAzMTMzMTU7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAzMTQxMDU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyMDk3LCAwLjAwMjA5NywgMC4wMDIwOTcsIDAuMDAyMDk2LCAwLjAwMjA5NiwgMC4wMDIwOTYsIDAuMDAyMDk2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyMTIxLCAwLjAwMjEwMywgMC4wMDIxMDMsIDAuMDAyMTAzLCAwLjAwMjEwMSwgMC4wMDIxMDEsIDAuMDAyMTAxIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihBMikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAzMTkyOTM7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAzMTkyOTM7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAzMTg0NzM7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyMDk4LCAwLjAwMjA5OCwgMC4wMDIwOTgsIDAuMDAyMDk1LCAwLjAwMjA5NywgMC4wMDIwOTcsIDAuMDAyMDk3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyMTIyLCAwLjAwMjEwMywgMC4wMDIxMDMsIDAuMDAyMSwgMC4wMDIxMDIsIDAuMDAyMSwgMC4wMDIxMDEiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDMyMjQzNzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDMyMDQ0NDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDMyMjQzNzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDM3NjEsIDAuMDAzNzY2LCAwLjAwMzc2NiwgMC4wMDM3NjQsIDAuMDAzNzY2LCAwLjAwMzc2NSwgMC4wMDM3NjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDIzODIsIDAuMDAyMzg0LCAwLjAwMjM4NCwgMC4wMDIzODMsIDAuMDAyMzgzLCAwLjAwMjM4NCwgMC4wMDIzODQiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIxKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDMxNzEyODsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDMxNTU2MjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDMxNzEyODsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDM3NjIsIDAuMDAzNzY0LCAwLjAwMzc2MiwgMC4wMDM3NjIsIDAuMDAzNzY1LCAwLjAwMzc2MywgMC4wMDM3NjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDIzODEsIDAuMDAyMzgxLCAwLjAwMjM4MywgMC4wMDIzODQsIDAuMDAyMzg0LCAwLjAwMjM4MywgMC4wMDIzODMiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIyKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDMxNzk2MjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDMxNzk2MjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDMxNzkwNjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDM3NjIsIDAuMDAzNzY1LCAwLjAwMzc2NSwgMC4wMDM3NjMsIDAuMDAzNzYzLCAwLjAwMzc2MiwgMC4wMDM3NjMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDIzODEsIDAuMDAyMzgxLCAwLjAwMjM4MiwgMC4wMDIzODIsIDAuMDAyMzgyLCAwLjAwMjM4MywgMC4wMDIzODMiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC40ODU3MTc7Ci0gICAgZnVuY3Rpb24gOiAiKCEoKChCMCtCMSkrQjIpICgoQTArQTEpK0EyKSkpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTkyNTQsIDAuMjExMTQ0LCAwLjM2MzEyNSwgMC40NzE1MzEsIDAuNjQ0MzU3LCAwLjc5NTUxMiwgMS4wMTE0NCIsIFwKLSAgICAgICAgICAiMC4wNjQ5NjEsIDAuMjE3MDM2LCAwLjM2OTA5LCAwLjQ3NzUyNiwgMC42NTAzMjEsIDAuODAxNjEzLCAxLjAxNzI3IiwgXAotICAgICAgICAgICIwLjA3MDI4LCAwLjIyMjU0OSwgMC4zNzQ1NDYsIDAuNDgyOTIzLCAwLjY1NTgyLCAwLjgwNzA0NiwgMS4wMjI3NiIsIFwKLSAgICAgICAgICAiMC4wNzUzNDYsIDAuMjI3NTA4LCAwLjM3OTU5NywgMC40ODc5MjMsIDAuNjYwOTQ3LCAwLjgxMjAyOSwgMS4wMjgwMiIsIFwKLSAgICAgICAgICAiMC4wNzk2MjQsIDAuMjMyNDAzLCAwLjM4NDM3OCwgMC40OTI4ODcsIDAuNjY1Nzk5LCAwLjgxNjk0MiwgMS4wMzI3OCIsIFwKLSAgICAgICAgICAiMC4wODU1MDMsIDAuMjQwMzE2LCAwLjM5MjM0MywgMC41MDA3MjQsIDAuNjczNjAzLCAwLjgyNDcxNCwgMS4wNDA2MyIsIFwKLSAgICAgICAgICAiMC4wODk5NzMsIDAuMjQ2OTY0LCAwLjM5OTIxLCAwLjUwNzU3LCAwLjY4MDI1MywgMC44MzEyODYsIDEuMDQ3Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTE5MzkyLCAwLjQzODcxMiwgMC43NTk5NzQsIDAuOTg4NTg4LCAxLjM1NTA2LCAxLjY3NTg3LCAyLjEzNDM2IiwgXAotICAgICAgICAgICIwLjExOTQ4OCwgMC40Mzg3NzYsIDAuNzU5MjkxLCAwLjk4ODM5MywgMS4zNTUxNywgMS42NzU4LCAyLjEzNDQ1IiwgXAotICAgICAgICAgICIwLjEyMTAzLCAwLjQzODcwMiwgMC43NTk0MDMsIDAuOTg4NDYzLCAxLjM1NTIxLCAxLjY3NjExLCAyLjEzNDE1IiwgXAotICAgICAgICAgICIwLjEyMzY2MywgMC40MzkwNzgsIDAuNzU5MzEsIDAuOTg4NTQyLCAxLjM1NDksIDEuNjc1ODMsIDIuMTM0MjIiLCBcCi0gICAgICAgICAgIjAuMTI3MTc5LCAwLjQ0MDA3NCwgMC43NTkyMjMsIDAuOTg4NTY4LCAxLjM1NTA1LCAxLjY3NTg3LCAyLjEzNDQ1IiwgXAotICAgICAgICAgICIwLjEzNDE0NiwgMC40NDMwMDcsIDAuNzYwMjI4LCAwLjk4ODc5LCAxLjM1NDk1LCAxLjY3NTg0LCAyLjEzNDI1IiwgXAotICAgICAgICAgICIwLjE0MTA3NywgMC40NDYyODMsIDAuNzYyMTkzLCAwLjk4OTczNCwgMS4zNTUwOSwgMS42NzU4MywgMi4xMzM5OSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0NjQ0MSwgMC4xNDcwNjEsIDAuMjQ1OTE2LCAwLjMxNjUwMiwgMC40MjkwODksIDAuNTI3NjI3LCAwLjY2ODIyNyIsIFwKLSAgICAgICAgICAiMC4wNTM3NzYsIDAuMTU0NDY2LCAwLjI1MzMyNCwgMC4zMjM4MjYsIDAuNDM2NDk5LCAwLjUzNDk4NCwgMC42NzU1NTkiLCBcCi0gICAgICAgICAgIjAuMDYxOTAzLCAwLjE2MjQ3MSwgMC4yNjE1MjUsIDAuMzMxOTk5LCAwLjQ0NDcwNSwgMC41NDMwMjksIDAuNjgzNjg5IiwgXAotICAgICAgICAgICIwLjA2OTcxNSwgMC4xNzA2NjIsIDAuMjY5NjQ2LCAwLjM0MDE3NywgMC40NTI4NDcsIDAuNTUxMTc2LCAwLjY5MTg5MSIsIFwKLSAgICAgICAgICAiMC4wNzYzOTIsIDAuMTc4Njg5LCAwLjI3NzUxOCwgMC4zNDc4NTIsIDAuNDYwODgyLCAwLjU1OTI0LCAwLjcwMDMwMyIsIFwKLSAgICAgICAgICAiMC4wODU1ODUsIDAuMTkxNTA0LCAwLjI5MDIyMSwgMC4zNjA4NDMsIDAuNDczNzIsIDAuNTcyMjU0LCAwLjcxMjk4MSIsIFwKLSAgICAgICAgICAiMC4wOTI4MzQsIDAuMjAyNjcyLCAwLjMwMTc5MywgMC4zNzIxNjYsIDAuNDg0ODM1LCAwLjU4MzQ3MSwgMC43MjQ0MDIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjc2ODMsIDAuMjcyNzM0LCAwLjQ3ODEyMywgMC42MjQzMjksIDAuODU4ODc2LCAxLjA2Mzg2LCAxLjM1NjU0IiwgXAotICAgICAgICAgICIwLjA2Nzc2OCwgMC4yNzI3MywgMC40Nzc4NDYsIDAuNjI0NTk1LCAwLjg1ODk2MSwgMS4wNjQyMywgMS4zNTY4NiIsIFwKLSAgICAgICAgICAiMC4wNzAyODcsIDAuMjcyNjg5LCAwLjQ3Nzc5NSwgMC42MjQzOTksIDAuODU4NjgsIDEuMDY0MjYsIDEuMzU3NDgiLCBcCi0gICAgICAgICAgIjAuMDc0NTksIDAuMjczODc0LCAwLjQ3ODAzMiwgMC42MjQzMjMsIDAuODU4NjUsIDEuMDY0NDcsIDEuMzU3ODkiLCBcCi0gICAgICAgICAgIjAuMDgwMTYzLCAwLjI3NjA5MywgMC40Nzg1MDQsIDAuNjI0NTg5LCAwLjg1ODY5MSwgMS4wNjQzMiwgMS4zNTY4OCIsIFwKLSAgICAgICAgICAiMC4wODk5MDUsIDAuMjgxNTg5LCAwLjQ4MTA5NCwgMC42MjU4NjEsIDAuODU4ODQxLCAxLjA2NDUzLCAxLjM1NjkyIiwgXAotICAgICAgICAgICIwLjA5ODMyNiwgMC4yODc5NTMsIDAuNDg1MDQ1LCAwLjYyODE1NiwgMC44NTk4ODcsIDEuMDY0NCwgMS4zNTY1OCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTU5MzQsIDAuMjA3OTI3LCAwLjM1OTkwNywgMC40NjgxMjksIDAuNjQxMTU0LCAwLjc5MjE5NCwgMS4wMDc5NiIsIFwKLSAgICAgICAgICAiMC4wNjIwMywgMC4yMTQxMjQsIDAuMzY2MTc3LCAwLjQ3NDU0OSwgMC42NDc0MzYsIDAuNzk4NTkzLCAxLjAxNDM3IiwgXAotICAgICAgICAgICIwLjA2OTIzMiwgMC4yMjE0MzUsIDAuMzczNTI1LCAwLjQ4MTg4MywgMC42NTQ3NTQsIDAuODA1ODYyLCAxLjAyMTYxIiwgXAotICAgICAgICAgICIwLjA3NjYyNiwgMC4yMjg5MTQsIDAuMzgxMTExLCAwLjQ4OTUyMiwgMC42NjI0MjUsIDAuODEzNjQzLCAxLjAyOTQ3IiwgXAotICAgICAgICAgICIwLjA4MzIwNSwgMC4yMzYxODYsIDAuMzg4MzY3LCAwLjQ5NjgxNywgMC42Njk3MjYsIDAuODIwOTQzLCAxLjAzNjgzIiwgXAotICAgICAgICAgICIwLjA5MjM5NywgMC4yNDgxNSwgMC40MDA0NTIsIDAuNTA4NTAxLCAwLjY4MTc1NiwgMC44MzI4NjYsIDEuMDQ4NjYiLCBcCi0gICAgICAgICAgIjAuMDk5NjksIDAuMjU5MDM0LCAwLjQxMDU5NiwgMC41MTkwNTcsIDAuNjkyMjI1LCAwLjg0Mjg0MiwgMS4wNTg4NSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExOTM4NiwgMC40Mzg3MzIsIDAuNzU5MzU1LCAwLjk4ODU1MiwgMS4zNTUzLCAxLjY3NTcxLCAyLjEzNDA3IiwgXAotICAgICAgICAgICIwLjExOTcwMiwgMC40Mzg3MTcsIDAuNzU5MjA5LCAwLjk4ODU3NCwgMS4zNTUsIDEuNjc1OTMsIDIuMTM0NDciLCBcCi0gICAgICAgICAgIjAuMTIyNTgsIDAuNDM4NjcyLCAwLjc1OTM1NSwgMC45ODg1NTksIDEuMzU0ODYsIDEuNjc1NzksIDIuMTM0MDYiLCBcCi0gICAgICAgICAgIjAuMTI3MjUzLCAwLjQzOTA4LCAwLjc1OTI5LCAwLjk4ODMyMSwgMS4zNTUwMywgMS42NzU4NiwgMi4xMzQiLCBcCi0gICAgICAgICAgIjAuMTMyOTE5LCAwLjQ0MDUyNiwgMC43NTkyOTYsIDAuOTg4MzkxLCAxLjM1NTE4LCAxLjY3NjAyLCAyLjEzNDM5IiwgXAotICAgICAgICAgICIwLjE0MzAzMSwgMC40NDQ3NzksIDAuNzYwMzM3LCAwLjk4ODYyMywgMS4zNTUxOCwgMS42NzU4MiwgMi4xMzQxMSIsIFwKLSAgICAgICAgICAiMC4xNTI2MDEsIDAuNDUwMDk5LCAwLjc2MjU5MiwgMC45ODk1ODQsIDEuMzU0NzcsIDEuNjc1NiwgMi4xMzM5OSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0Mjg3NSwgMC4xNDI4NTQsIDAuMjQxNTQ1LCAwLjMxMjAwNywgMC40MjQ2NjgsIDAuNTIyOTkyLCAwLjY2Mzc0MyIsIFwKLSAgICAgICAgICAiMC4wNTAyNCwgMC4xNTAzNzEsIDAuMjQ5MDc3LCAwLjMxOTY1NSwgMC40MzE5OTQsIDAuNTMwNzc4LCAwLjY3MTA0IiwgXAotICAgICAgICAgICIwLjA1ODI4NywgMC4xNTgzMzEsIDAuMjU3MjQyLCAwLjMyNzc3LCAwLjQ0MDI1NywgMC41Mzg4MzcsIDAuNjc5Mjc0IiwgXAotICAgICAgICAgICIwLjA2NTg4NCwgMC4xNjY0OTMsIDAuMjY1Mzc2LCAwLjMzNTc5NSwgMC40NDg0MzIsIDAuNTQ2ODk5LCAwLjY4NzQyMyIsIFwKLSAgICAgICAgICAiMC4wNzI0MTcsIDAuMTc0NTQ1LCAwLjI3MzM0NSwgMC4zNDM3OTksIDAuNDU2NTQyLCAwLjU1NTAyLCAwLjY5NjA0OCIsIFwKLSAgICAgICAgICAiMC4wODEwNTEsIDAuMTg3MzUzLCAwLjI4NjE2MSwgMC4zNTY2ODYsIDAuNDY5MzI5LCAwLjU2Nzk5OCwgMC43MDg0ODgiLCBcCi0gICAgICAgICAgIjAuMDg3NzA5LCAwLjE5ODUyOSwgMC4yOTc0NTIsIDAuMzY4MDM3LCAwLjQ4MDcyNSwgMC41NzkxNDIsIDAuNzIwMDg2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDYyMzAyLCAwLjI2NzM4NCwgMC40NzI2MzIsIDAuNjE4ODg4LCAwLjg1MzIyNiwgMS4wNTgwNiwgMS4zNTA5NCIsIFwKLSAgICAgICAgICAiMC4wNjI0OTQsIDAuMjY3MzczLCAwLjQ3MjQzLCAwLjYxOTA1MSwgMC44NTM0NDksIDEuMDU4MTUsIDEuMzUxMDMiLCBcCi0gICAgICAgICAgIjAuMDY1MTc5LCAwLjI2NzQzNSwgMC40NzI1NDksIDAuNjE4OTI4LCAwLjg1MzE5OSwgMS4wNTgwOSwgMS4zNTEwNSIsIFwKLSAgICAgICAgICAiMC4wNjk4MDcsIDAuMjY4NDg1LCAwLjQ3MjQ2LCAwLjYxODk1NSwgMC44NTMyNTQsIDEuMDU4MDQsIDEuMzUxODYiLCBcCi0gICAgICAgICAgIjAuMDc1NTI1LCAwLjI3MDgzOSwgMC40NzMwMzcsIDAuNjE4OTQ2LCAwLjg1MzM1NiwgMS4wNTg3MSwgMS4zNTA4NiIsIFwKLSAgICAgICAgICAiMC4wODUyNjIsIDAuMjc2NTA2LCAwLjQ3NTY3NCwgMC42MjA0MzcsIDAuODUzMjU1LCAxLjA1ODA5LCAxLjM1MTkzIiwgXAotICAgICAgICAgICIwLjA5MzQ1OCwgMC4yODI5MTksIDAuNDc5ODg0LCAwLjYyMjcwOCwgMC44NTQ1NjksIDEuMDU4NjgsIDEuMzUwODEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTIiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQ5ODMxLCAwLjIwMTc4MywgMC4zNTM4MTEsIDAuNDYyMTIyLCAwLjYzNTE1MSwgMC43ODYxNDYsIDEuMDAyMTIiLCBcCi0gICAgICAgICAgIjAuMDU2NzgzLCAwLjIwODk3OSwgMC4zNjA5NzYsIDAuNDY5MjU1LCAwLjY0MjI4MywgMC43OTMyNDYsIDEuMDA5MDgiLCBcCi0gICAgICAgICAgIjAuMDY2MTA1LCAwLjIxNzkyMSwgMC4zNjk5OTgsIDAuNDc4MzI4LCAwLjY1MTIyOSwgMC44MDI0NjMsIDEuMDE4MzQiLCBcCi0gICAgICAgICAgIjAuMDc1NzU5LCAwLjIyNzI0NiwgMC4zNzkyODIsIDAuNDg3NDY1LCAwLjY2MDQ5LCAwLjgxMTU1MywgMS4wMjc0NSIsIFwKLSAgICAgICAgICAiMC4wODQ3NDcsIDAuMjM2NDU5LCAwLjM4ODM3OSwgMC40OTY2NzksIDAuNjY5NjIyLCAwLjgyMDU3NywgMS4wMzYzMSIsIFwKLSAgICAgICAgICAiMC4wOTY1MjQsIDAuMjUxMjg3LCAwLjQwMjkyMSwgMC41MTA5NiwgMC42ODM4OTIsIDAuODM0ODcxLCAxLjA1MDU5IiwgXAotICAgICAgICAgICIwLjEwNDk3MywgMC4yNjQ0NzUsIDAuNDE1OTI2LCAwLjUyNDA2LCAwLjY5Njc4MiwgMC44NDc3MzEsIDEuMDYzNDIiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTkzNDgsIDAuNDM4Nzk0LCAwLjc1OTM1MiwgMC45ODg0OCwgMS4zNTUzMSwgMS42NzU3NSwgMi4xMzQwNiIsIFwKLSAgICAgICAgICAiMC4xMTk1OCwgMC40Mzg3MjYsIDAuNzU5MzYsIDAuOTg4NTIzLCAxLjM1NDk4LCAxLjY3NTY2LCAyLjEzNDM5IiwgXAotICAgICAgICAgICIwLjEyNDYzMywgMC40Mzg3NjcsIDAuNzU5Mjc4LCAwLjk4ODQzNCwgMS4zNTQ3OCwgMS42NzU2MiwgMi4xMzQwNyIsIFwKLSAgICAgICAgICAiMC4xMzE3MzcsIDAuNDM4OTkxLCAwLjc1OTI1MiwgMC45ODgzMjgsIDEuMzU1MDYsIDEuNjc1ODMsIDIuMTM0NDQiLCBcCi0gICAgICAgICAgIjAuMTM5NzE2LCAwLjQ0MTE2LCAwLjc1OTI0OSwgMC45ODg0MSwgMS4zNTQ5OSwgMS42NzU3MSwgMi4xMzQ2IiwgXAotICAgICAgICAgICIwLjE1Mjg0MywgMC40NDc0OTQsIDAuNzYwMzQzLCAwLjk4ODM0OCwgMS4zNTUyLCAxLjY3NTkzLCAyLjEzNDQxIiwgXAotICAgICAgICAgICIwLjE2NDI1NSwgMC40NTQ4ODUsIDAuNzYzNzAyLCAwLjk4OTUyNiwgMS4zNTUwMiwgMS42NzU3OCwgMi4xMzQzOSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzODg2NCwgMC4xMzg3NzUsIDAuMjM3NDIxLCAwLjMwNzkwNiwgMC40MjA1MDEsIDAuNTE4ODU3LCAwLjY1OTQ2MSIsIFwKLSAgICAgICAgICAiMC4wNDYyNDIsIDAuMTQ2NDQsIDAuMjQ1MSwgMC4zMTU0MzksIDAuNDI4MjY4LCAwLjUyNjM0OCwgMC42NjczNTkiLCBcCi0gICAgICAgICAgIjAuMDU0MTg5LCAwLjE1NDUyMSwgMC4yNTMzNzIsIDAuMzIzNjY0LCAwLjQzNjI5LCAwLjUzNDc3LCAwLjY3NTI4OSIsIFwKLSAgICAgICAgICAiMC4wNjE0NDgsIDAuMTYyNDcsIDAuMjYxMzQsIDAuMzMxNjg3LCAwLjQ0NDQwOCwgMC41NDI5MTcsIDAuNjgzNTU4IiwgXAotICAgICAgICAgICIwLjA2NzQ0MywgMC4xNzA0NTMsIDAuMjY5MjUxLCAwLjMzOTQ3OCwgMC40NTI0OTEsIDAuNTUwNzkxLCAwLjY5MTYzMSIsIFwKLSAgICAgICAgICAiMC4wNzU1NywgMC4xODMzMiwgMC4yODIwMDgsIDAuMzUyODU4LCAwLjQ2NTQ5OSwgMC41NjQxNDQsIDAuNzA0NjE5IiwgXAotICAgICAgICAgICIwLjA4MTYzMywgMC4xOTQ1MzYsIDAuMjkzNTEzLCAwLjM2MzgxNywgMC40NzY2MzIsIDAuNTc0OTY1LCAwLjcxNTk0NyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1NzUwMywgMC4yNjIxODYsIDAuNDY3Mjk5LCAwLjYxMzQxNSwgMC44NDgwNjEsIDEuMDUyNjksIDEuMzQ1NjQiLCBcCi0gICAgICAgICAgIjAuMDU3NzU1LCAwLjI2MjIxOCwgMC40NjcwOTcsIDAuNjEzNTU4LCAwLjg0NzY4LCAxLjA1MjY1LCAxLjM0NTYyIiwgXAotICAgICAgICAgICIwLjA2MDY5MiwgMC4yNjIyNywgMC40NjcyNjUsIDAuNjEzNDQ5LCAwLjg0ODIzOCwgMS4wNTI2MiwgMS4zNDU0OCIsIFwKLSAgICAgICAgICAiMC4wNjU1NDgsIDAuMjYzMzcxLCAwLjQ2NzIzOCwgMC42MTM1MzUsIDAuODQ4MDE2LCAxLjA1MjYxLCAxLjM0NTMzIiwgXAotICAgICAgICAgICIwLjA3MTY3OSwgMC4yNjU4NDIsIDAuNDY3ODI4LCAwLjYxMzU3NSwgMC44NDc1OTYsIDEuMDUzMTgsIDEuMzQ1NjQiLCBcCi0gICAgICAgICAgIjAuMDgxMjM2LCAwLjI3MTU4NCwgMC40NzA0MDcsIDAuNjE1MDE5LCAwLjg0Nzc3MiwgMS4wNTI1NSwgMS4zNDUyOCIsIFwKLSAgICAgICAgICAiMC4wODkyNjUsIDAuMjc3OTkyLCAwLjQ3NDcwMSwgMC42MTc0NTUsIDAuODQ4ODYxLCAxLjA1MzExLCAxLjM0NTYzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0NTUxNSwgMC4xOTgwMDMsIDAuMzUwMTQ4LCAwLjQ1ODc3NCwgMC42MzIwODksIDAuNzgzODgzLCAxLjAwMDM5IiwgXAotICAgICAgICAgICIwLjA1MTEyOCwgMC4yMDM5ODcsIDAuMzU2MjQsIDAuNDY0ODEsIDAuNjM4MjksIDAuNzg5ODM1LCAxLjAwNjUyIiwgXAotICAgICAgICAgICIwLjA1NjM1NiwgMC4yMDkzNjgsIDAuMzYxNjczLCAwLjQ3MDIwMSwgMC42NDM2NjYsIDAuNzk1NTQ0LCAxLjAxMjA0IiwgXAotICAgICAgICAgICIwLjA2MDksIDAuMjE0NDEzLCAwLjM2NjcxMywgMC40NzUyNDUsIDAuNjQ4ODExLCAwLjgwMDQzLCAxLjAxNzEiLCBcCi0gICAgICAgICAgIjAuMDY0NjgsIDAuMjE5MjcyLCAwLjM3MTU5OCwgMC40ODAxNDMsIDAuNjUzNjIxLCAwLjgwNTUwNCwgMS4wMjE5NyIsIFwKLSAgICAgICAgICAiMC4wNjk2MjMsIDAuMjI3MTIxLCAwLjM3OTQxMywgMC40ODgwMTEsIDAuNjYxNDE2LCAwLjgxMzMzLCAxLjAyOTg3IiwgXAotICAgICAgICAgICIwLjA3MzIyOSwgMC4yMzM3NzEsIDAuMzg2MjYyLCAwLjQ5NDc4MiwgMC42NjgwMTgsIDAuODE5NzkyLCAxLjAzNjM1Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTA1Mzc5LCAwLjQyNDQ2MywgMC43NDUyNjgsIDAuOTc0NCwgMS4zNDEyNSwgMS42NjI0NiwgMi4xMjA5OSIsIFwKLSAgICAgICAgICAiMC4xMDU2MTEsIDAuNDI0NTg2LCAwLjc0NTI1LCAwLjk3NDQ4MiwgMS4zNDExMywgMS42NjIyNSwgMi4xMjA5NyIsIFwKLSAgICAgICAgICAiMC4xMDc1NTksIDAuNDI0NjA5LCAwLjc0NTA1MSwgMC45NzQzODcsIDEuMzQxMjQsIDEuNjYyNDIsIDIuMTIxMDIiLCBcCi0gICAgICAgICAgIjAuMTEwNjMzLCAwLjQyNDkzOCwgMC43NDUxMTYsIDAuOTc0MjEyLCAxLjM0MTMsIDEuNjYyMzQsIDIuMTIwOTkiLCBcCi0gICAgICAgICAgIjAuMTE0NTYyLCAwLjQyNjE3LCAwLjc0NTE0NCwgMC45NzQzNTIsIDEuMzQxMjIsIDEuNjYyNCwgMi4xMjA5MSIsIFwKLSAgICAgICAgICAiMC4xMjIyNCwgMC40MjkyMDIsIDAuNzQ2MjM3LCAwLjk3NDcxMiwgMS4zNDEyLCAxLjY2MjM4LCAyLjEyMDkiLCBcCi0gICAgICAgICAgIjAuMTI5MzgzLCAwLjQzMjY3MiwgMC43NDgxMTIsIDAuOTc1NjgxLCAxLjM0MTMzLCAxLjY2MjAxLCAyLjEyMDg5Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM5ODQxLCAwLjE0MDUwMywgMC4yMzkzODcsIDAuMzA5NzgsIDAuNDIyNDAxLCAwLjUyMTI2NywgMC42NjE0NzYiLCBcCi0gICAgICAgICAgIjAuMDQ3NDY4LCAwLjE0ODEwMiwgMC4yNDY5OTUsIDAuMzE3NDU0LCAwLjQzMDEzNCwgMC41Mjg0NzEsIDAuNjY5MTgiLCBcCi0gICAgICAgICAgIjAuMDU3MjgyLCAwLjE1NzgyNSwgMC4yNTY0NzEsIDAuMzI2ODcxLCAwLjQzOTY1OCwgMC41Mzc5LCAwLjY3ODUzNiIsIFwKLSAgICAgICAgICAiMC4wNjcxOTgsIDAuMTY3NjEsIDAuMjY2MjEsIDAuMzM2ODY1LCAwLjQ0OTY0NSwgMC41NDc5OTgsIDAuNjg4NjYzIiwgXAotICAgICAgICAgICIwLjA3NTYwMSwgMC4xNzcxMDMsIDAuMjc1ODIyLCAwLjM0NTgwMiwgMC40NTg4NzIsIDAuNTU3MjcyLCAwLjY5ODI4MSIsIFwKLSAgICAgICAgICAiMC4wODc0NjcsIDAuMTkzMjY5LCAwLjI5MTU1NSwgMC4zNjE5OTEsIDAuNDc0NTg2LCAwLjU3MzA2MywgMC43MTM1MDYiLCBcCi0gICAgICAgICAgIjAuMDk1OTUsIDAuMjA3MTk1LCAwLjMwNTQ3LCAwLjM3NTY5NiwgMC40ODgxMjcsIDAuNTg2ODQxLCAwLjcyNzQzNiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2NzgyMywgMC4yNzI3NTUsIDAuNDc4MjE4LCAwLjYyNDc0OCwgMC44NTkzMywgMS4wNjQwMywgMS4zNTY3NSIsIFwKLSAgICAgICAgICAiMC4wNjgwODcsIDAuMjcyNzE5LCAwLjQ3Nzk4LCAwLjYyNDU0OSwgMC44NTg2NzcsIDEuMDY0MzIsIDEuMzU2NjMiLCBcCi0gICAgICAgICAgIjAuMDczNjY5LCAwLjI3MjcwNCwgMC40Nzc5MzcsIDAuNjI0NjIxLCAwLjg1ODc4LCAxLjA2MzgyLCAxLjM1NzQyIiwgXAotICAgICAgICAgICIwLjA4MTM2OSwgMC4yNzQ3NCwgMC40Nzc5MzIsIDAuNjI0NTU3LCAwLjg1ODY3LCAxLjA2Mzc5LCAxLjM1NjcxIiwgXAotICAgICAgICAgICIwLjA5MDAyOCwgMC4yNzg4MDMsIDAuNDc4NzAxLCAwLjYyNDQ0MywgMC44NTg4NywgMS4wNjQ0OSwgMS4zNTY5NSIsIFwKLSAgICAgICAgICAiMC4xMDI1ODgsIDAuMjg3NDgxLCAwLjQ4MzEyOSwgMC42MjYzNDMsIDAuODU5MDkxLCAxLjA2NDExLCAxLjM1NzU3IiwgXAotICAgICAgICAgICIwLjExMjk5LCAwLjI5NzQsIDAuNDg5MzE4LCAwLjYzMDM2MSwgMC44NjAyNTUsIDEuMDYzODcsIDEuMzU2NTgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQyMTM5LCAwLjE5NDY1NSwgMC4zNDY3NjgsIDAuNDU1MzQyLCAwLjYyODY4LCAwLjc4MDM3MiwgMC45OTcyMTMiLCBcCi0gICAgICAgICAgIjAuMDQ4MTk0LCAwLjIwMTA1NSwgMC4zNTMyNjQsIDAuNDYxODQ3LCAwLjYzNTIwMiwgMC43ODY5MzksIDEuMDAzNTIiLCBcCi0gICAgICAgICAgIjAuMDU1MjM5LCAwLjIwODM1NSwgMC4zNjA2NDMsIDAuNDY5MTg2LCAwLjY0MjY4OCwgMC43OTQzMTUsIDEuMDEwODYiLCBcCi0gICAgICAgICAgIjAuMDYxOTg4LCAwLjIxNTczNywgMC4zNjgxMDYsIDAuNDc2NzEyLCAwLjY1MDA2NywgMC44MDE5MDgsIDEuMDE4NDkiLCBcCi0gICAgICAgICAgIjAuMDY3Njc0LCAwLjIyMzAwMywgMC4zNzU0MzgsIDAuNDg0MDc1LCAwLjY1NzUwOCwgMC44MDkyNTEsIDEuMDI1ODMiLCBcCi0gICAgICAgICAgIjAuMDc1MTQ1LCAwLjIzNTI5MywgMC4zODc1MTMsIDAuNDk2MDExLCAwLjY2OTUwNiwgMC44MjExNjcsIDEuMDM3ODgiLCBcCi0gICAgICAgICAgIjAuMDgxMDI2LCAwLjI0NTY0MSwgMC4zOTc2MTksIDAuNTA2NDM4LCAwLjY3OTk0OCwgMC44MzExMTcsIDEuMDQ3NzIiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDUzNzksIDAuNDI0NjE0LCAwLjc0NTI1NSwgMC45NzQ0NjUsIDEuMzQxMjIsIDEuNjYyMjksIDIuMTIxMiIsIFwKLSAgICAgICAgICAiMC4xMDU5NzgsIDAuNDI0NTU3LCAwLjc0NTIzOCwgMC45NzQ0MzgsIDEuMzQxMjIsIDEuNjYyMzMsIDIuMTIwOTMiLCBcCi0gICAgICAgICAgIjAuMTA5NjU5LCAwLjQyNDU5OSwgMC43NDUxMywgMC45NzQ0NTQsIDEuMzQxMywgMS42NjIzMiwgMi4xMjA5MSIsIFwKLSAgICAgICAgICAiMC4xMTUxMTIsIDAuNDI1MTE3LCAwLjc0NTE0NywgMC45NzQyODIsIDEuMzQxMjEsIDEuNjYyNDEsIDIuMTIxMDQiLCBcCi0gICAgICAgICAgIjAuMTIxMjYsIDAuNDI2NzI0LCAwLjc0NTA0NSwgMC45NzQyNjIsIDEuMzQxMjQsIDEuNjYyMDIsIDIuMTIwOTUiLCBcCi0gICAgICAgICAgIjAuMTMyMDIzLCAwLjQzMTQxOCwgMC43NDYzNjUsIDAuOTc0NDM2LCAxLjM0MTE5LCAxLjY2MjIyLCAyLjEyMDk2IiwgXAotICAgICAgICAgICIwLjE0MTYxNywgMC40MzY4ODMsIDAuNzQ4NjY5LCAwLjk3NTYyMiwgMS4zNDEyMiwgMS42NjIyNSwgMi4xMjA4NiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzNjI0NywgMC4xMzYxNDEsIDAuMjM0ODIxLCAwLjMwNTEwNSwgMC40MTc4NTMsIDAuNTE1OTgsIDAuNjU2OTkxIiwgXAotICAgICAgICAgICIwLjA0MzkyNiwgMC4xNDM5NDEsIDAuMjQyNjE4LCAwLjMxMywgMC40MjU1NDEsIDAuNTIzNzg1LCAwLjY2NDQyNCIsIFwKLSAgICAgICAgICAiMC4wNTM3NTksIDAuMTUzNjEsIDAuMjUyNDQ4LCAwLjMyMjY4NSwgMC40MzUzMjMsIDAuNTMzNTAxLCAwLjY3NDEwNyIsIFwKLSAgICAgICAgICAiMC4wNjM2MTgsIDAuMTYzMzM2LCAwLjI2MTk1MywgMC4zMzI1OTYsIDAuNDQ1MjM0LCAwLjU0MzU1NCwgMC42ODQxNDIiLCBcCi0gICAgICAgICAgIjAuMDcxNTk1LCAwLjE3MzIwMSwgMC4yNzIwMjMsIDAuMzQxOTY4LCAwLjQ1NDkyMiwgMC41NTMyOTUsIDAuNjk0MTYiLCBcCi0gICAgICAgICAgIjAuMDgxODY4LCAwLjE4OTQ2LCAwLjI4Nzc1NywgMC4zNTc3MzQsIDAuNDcwMTgxLCAwLjU2OTE3MiwgMC43MDk0NjEiLCBcCi0gICAgICAgICAgIjAuMDg5NTksIDAuMjAyNjM0LCAwLjMwMTcxMywgMC4zNzE4NzYsIDAuNDg0MzE2LCAwLjU4MjkyMywgMC43MjMyNjgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjIxODgsIDAuMjY3MTU3LCAwLjQ3MjI5NywgMC42MTg3MTMsIDAuODUyNjQxLCAxLjA1NzgzLCAxLjM1MDQ2IiwgXAotICAgICAgICAgICIwLjA2MjkzOCwgMC4yNjcyMDYsIDAuNDcyMjM0LCAwLjYxODUyOSwgMC44NTI1ODksIDEuMDU4LCAxLjM0OTc2IiwgXAotICAgICAgICAgICIwLjA2ODgwNSwgMC4yNjcyMSwgMC40NzIxNjQsIDAuNjE4NzA2LCAwLjg1MjYxNSwgMS4wNTc4LCAxLjM1MDIxIiwgXAotICAgICAgICAgICIwLjA3NjUwMiwgMC4yNjkyMzksIDAuNDcyMjExLCAwLjYxODY3NywgMC44NTI2MTIsIDEuMDU4MzMsIDEuMzQ5NzQiLCBcCi0gICAgICAgICAgIjAuMDg1MDMxLCAwLjI3MzM2MSwgMC40NzI5OTMsIDAuNjE4NTk1LCAwLjg1Mjc4LCAxLjA1ODE2LCAxLjM1IiwgXAotICAgICAgICAgICIwLjA5Nzk4NiwgMC4yODIyNjYsIDAuNDc3NDYxLCAwLjYyMDU5MSwgMC44NTI4NTEsIDEuMDU3NjEsIDEuMzUwODkiLCBcCi0gICAgICAgICAgIjAuMTA4MDU0LCAwLjI5Mjg1NiwgMC40ODM1NywgMC42MjQ2MDUsIDAuODU0MTkyLCAxLjA1NzQ4LCAxLjM0OTk4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIyIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzNjAzMywgMC4xODg2MjQsIDAuMzQwNzk5LCAwLjQ0OTE0NCwgMC42MjI4MDMsIDAuNzc0MzM2LCAwLjk5MTAxNiIsIFwKLSAgICAgICAgICAiMC4wNDMwMTgsIDAuMTk1ODk1LCAwLjM0ODEzMiwgMC40NTY3MDEsIDAuNjMwMTE2LCAwLjc4MTYzNSwgMC45OTgzMjUiLCBcCi0gICAgICAgICAgIjAuMDUyMzY4LCAwLjIwNDg2NiwgMC4zNTcxMTIsIDAuNDY1NjM2LCAwLjYzOTE1NCwgMC43OTA2ODksIDEuMDA3MzkiLCBcCi0gICAgICAgICAgIjAuMDYxMzI3LCAwLjIxNDE1NiwgMC4zNjYzNTMsIDAuNDc0ODAzLCAwLjY0ODI5MSwgMC43OTk5MywgMS4wMTY2IiwgXAotICAgICAgICAgICIwLjA2ODc0MywgMC4yMjM0MzcsIDAuMzc1NTQ4LCAwLjQ4NDAyNiwgMC42NTc0NzMsIDAuODA5MDIzLCAxLjAyNTg3IiwgXAotICAgICAgICAgICIwLjA3ODU2NiwgMC4yMzgxMDQsIDAuMzg5OTA4LCAwLjQ5ODMyNCwgMC42NzE2MzcsIDAuODIzMzYsIDEuMDM5NzciLCBcCi0gICAgICAgICAgIjAuMDg1OTY1LCAwLjI1MTI1OSwgMC40MDI4ODIsIDAuNTExMjI0LCAwLjY4NDM4NiwgMC44MzU5OTYsIDEuMDUyNDciKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDUxMzgsIDAuNDI0NjM0LCAwLjc0NTA2NCwgMC45NzQzODgsIDEuMzQxMzYsIDEuNjYyMywgMi4xMjA5OCIsIFwKLSAgICAgICAgICAiMC4xMDYxOCwgMC40MjQ2MSwgMC43NDUxNDksIDAuOTc0NTI3LCAxLjM0MTMxLCAxLjY2MjIxLCAyLjEyMSIsIFwKLSAgICAgICAgICAiMC4xMTI0NzEsIDAuNDI0NTc4LCAwLjc0NTExMywgMC45NzQzMTEsIDEuMzQxMzQsIDEuNjYyMjgsIDIuMTIxIiwgXAotICAgICAgICAgICIwLjEyMDMzOCwgMC40MjQ5MzIsIDAuNzQ1MDU0LCAwLjk3NDM3NSwgMS4zNDEyMywgMS42NjIyNywgMi4xMjA5MiIsIFwKLSAgICAgICAgICAiMC4xMjg0ODMsIDAuNDI3NDkzLCAwLjc0NTA2MiwgMC45NzQzNTEsIDEuMzQxMjgsIDEuNjYyMjYsIDIuMTIwNTciLCBcCi0gICAgICAgICAgIjAuMTQxNjM1LCAwLjQzNDIzMywgMC43NDY1ODYsIDAuOTc0NDE2LCAxLjM0MTI1LCAxLjY2MjM0LCAyLjEyMDg3IiwgXAotICAgICAgICAgICIwLjE1MzEyNSwgMC40NDIwNzMsIDAuNzUwMTcsIDAuOTc1Mzc5LCAxLjM0MTIyLCAxLjY2MjI3LCAyLjEyMDg2Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDMyMjEyLCAwLjEzMjA4NywgMC4yMzA2ODIsIDAuMzAxMTMyLCAwLjQxMzM4OSwgMC41MTE4NTMsIDAuNjUyMzQxIiwgXAotICAgICAgICAgICIwLjA0MDAwMiwgMC4xMzk5NjcsIDAuMjM4NjM5LCAwLjMwODkxNywgMC40MjEzNTIsIDAuNTE5NTksIDAuNjYwMDk1IiwgXAotICAgICAgICAgICIwLjA1LCAwLjE0OTY2MiwgMC4yNDgzMTksIDAuMzE4NjQ5LCAwLjQzMTA4OCwgMC41Mjk1ODQsIDAuNjcwMDA4IiwgXAotICAgICAgICAgICIwLjA1OTA3MywgMC4xNTkyMzcsIDAuMjU3NjEyLCAwLjMyODQ5MiwgMC40NDA1NTMsIDAuNTM5MDUyLCAwLjY3OTUzMyIsIFwKLSAgICAgICAgICAiMC4wNjYxNDMsIDAuMTY5MzMsIDAuMjY3NzcsIDAuMzM4MDUsIDAuNDUwNDQ2LCAwLjU0ODc3LCAwLjY4OTU1MiIsIFwKLSAgICAgICAgICAiMC4wNzU2NTUsIDAuMTg1MTMzLCAwLjI4MzEzOCwgMC4zNTM0ODUsIDAuNDY1OTYyLCAwLjU2NDE1OCwgMC43MDQ1NjQiLCBcCi0gICAgICAgICAgIjAuMDgyODI3LCAwLjE5OTM5NSwgMC4yOTc0MzYsIDAuMzY3NTgsIDAuNDc5OTY1LCAwLjU3ODQ3OCwgMC43MTg2OTEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTczNjQsIDAuMjYxOTIzLCAwLjQ2NjczNiwgMC42MTI5MjYsIDAuODQ3MDgzLCAxLjA1MTM5LCAxLjM0NDExIiwgXAotICAgICAgICAgICIwLjA1ODI5OCwgMC4yNjE5MiwgMC40NjY1MDEsIDAuNjEyODM3LCAwLjg0Njc0NCwgMS4wNTE0LCAxLjM0NDUxIiwgXAotICAgICAgICAgICIwLjA2NDU4NCwgMC4yNjE4OTksIDAuNDY2NjA3LCAwLjYxMjgzOCwgMC44NDcwMSwgMS4wNTE0MiwgMS4zNDM2NCIsIFwKLSAgICAgICAgICAiMC4wNzI1NTEsIDAuMjY0MDgxLCAwLjQ2NjYsIDAuNjEyNzYxLCAwLjg0Njg0NSwgMS4wNTE0MSwgMS4zNDM3NiIsIFwKLSAgICAgICAgICAiMC4wODE0NDIsIDAuMjY4MzAxLCAwLjQ2NzU1OSwgMC42MTI4NzQsIDAuODQ2ODQ4LCAxLjA1MTg3LCAxLjM0Mzg0IiwgXAotICAgICAgICAgICIwLjA5MzU1MiwgMC4yNzc0NiwgMC40NzIzOSwgMC42MTQ4NzIsIDAuODQ2NjgsIDEuMDUxNTgsIDEuMzQ0NjkiLCBcCi0gICAgICAgICAgIjAuMTAzNjc5LCAwLjI4NzI3NSwgMC40NzgzMDUsIDAuNjE5MDcxLCAwLjg0ODM3NywgMS4wNTE0OCwgMS4zNDQ2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDI3OTY4LCAwLjAyNzk3NCwgMC4wMjc5NzEsIDAuMDI3OTY5LCAwLjAyNzk2NCwgMC4wMjc5NjMsIDAuMDI3OTYxIiwgXAotICAgICAgICAgICIwLjAyNzgzOSwgMC4wMjc5MDEsIDAuMDI3OTA4LCAwLjAyNzkxMiwgMC4wMjc5MDksIDAuMDI3OTA4LCAwLjAyNzkwNCIsIFwKLSAgICAgICAgICAiMC4wMjc3ODMsIDAuMDI3ODcsIDAuMDI3ODg3LCAwLjAyNzg5MiwgMC4wMjc4OTcsIDAuMDI3ODk3LCAwLjAyNzg5NSIsIFwKLSAgICAgICAgICAiMC4wMjc3NzcsIDAuMDI3ODU2LCAwLjAyNzg3NywgMC4wMjc4ODQsIDAuMDI3ODg3LCAwLjAyNzg4OCwgMC4wMjc4ODYiLCBcCi0gICAgICAgICAgIjAuMDI3ODI4LCAwLjAyNzg2MiwgMC4wMjc4NzMsIDAuMDI3ODg2LCAwLjAyNzg4NywgMC4wMjc4ODYsIDAuMDI3ODg1IiwgXAotICAgICAgICAgICIwLjAyODAxMSwgMC4wMjc5MywgMC4wMjc5MjEsIDAuMDI3OTE4LCAwLjAyNzkxMSwgMC4wMjc5MTIsIDAuMDI3OTAzIiwgXAotICAgICAgICAgICIwLjAyODI2MiwgMC4wMjgwMjksIDAuMDI3OTkxLCAwLjAyNzk3NiwgMC4wMjc5NTksIDAuMDI3OTQsIDAuMDI3OTI4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDY5MzcsIDAuMDA2OTM4LCAwLjAwNjkzNywgMC4wMDY5MzgsIDAuMDA2OTM3LCAwLjAwNjkzNCwgMC4wMDY5MzIiLCBcCi0gICAgICAgICAgIjAuMDA2NzY4LCAwLjAwNjgwMywgMC4wMDY4MSwgMC4wMDY4MTIsIDAuMDA2ODEyLCAwLjAwNjgxMiwgMC4wMDY4MTIiLCBcCi0gICAgICAgICAgIjAuMDA2NzA4LCAwLjAwNjc2NiwgMC4wMDY3NzgsIDAuMDA2NzgzLCAwLjAwNjc4NiwgMC4wMDY3ODgsIDAuMDA2Nzg4IiwgXAotICAgICAgICAgICIwLjAwNjcwMywgMC4wMDY3NTYsIDAuMDA2NzY3LCAwLjAwNjc3NCwgMC4wMDY3NzgsIDAuMDA2Nzc3LCAwLjAwNjc3NyIsIFwKLSAgICAgICAgICAiMC4wMDY3NTksIDAuMDA2NzcxLCAwLjAwNjc3NSwgMC4wMDY3NzUsIDAuMDA2Nzc4LCAwLjAwNjc3OSwgMC4wMDY3ODEiLCBcCi0gICAgICAgICAgIjAuMDA2OTI4LCAwLjAwNjgzNywgMC4wMDY4MiwgMC4wMDY4MTUsIDAuMDA2ODA3LCAwLjAwNjgwMywgMC4wMDY3OTciLCBcCi0gICAgICAgICAgIjAuMDA3MjA4LCAwLjAwNjk1NywgMC4wMDY4OTUsIDAuMDA2ODc0LCAwLjAwNjg1MiwgMC4wMDY4NDEsIDAuMDA2ODMxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDI1MDEzLCAwLjAyNTAxNywgMC4wMjUwMTYsIDAuMDI1MDE0LCAwLjAyNTAxNCwgMC4wMjUwMDksIDAuMDI1MDA3IiwgXAotICAgICAgICAgICIwLjAyNDg4NiwgMC4wMjQ5NDYsIDAuMDI0OTUzLCAwLjAyNDk1NCwgMC4wMjQ5NTQsIDAuMDI0OTUyLCAwLjAyNDk0OSIsIFwKLSAgICAgICAgICAiMC4wMjQ4NDUsIDAuMDI0OTIxLCAwLjAyNDkzNCwgMC4wMjQ5MzgsIDAuMDI0OTQxLCAwLjAyNDk0LCAwLjAyNDk0MSIsIFwKLSAgICAgICAgICAiMC4wMjQ4ODMsIDAuMDI0OTE5LCAwLjAyNDkzNCwgMC4wMjQ5MzYsIDAuMDI0OTQsIDAuMDI0OTMsIDAuMDI0OTM2IiwgXAotICAgICAgICAgICIwLjAyNDk5NSwgMC4wMjQ5NDgsIDAuMDI0OTUsIDAuMDI0OTQ2LCAwLjAyNDk0NiwgMC4wMjQ5NDMsIDAuMDI0OTM4IiwgXAotICAgICAgICAgICIwLjAyNTI4MSwgMC4wMjUwNTIsIDAuMDI1MDEzLCAwLjAyNDk5NiwgMC4wMjQ5ODUsIDAuMDI0OTc0LCAwLjAyNDk2NCIsIFwKLSAgICAgICAgICAiMC4wMjU2NTMsIDAuMDI1MTksIDAuMDI1MSwgMC4wMjUwNzIsIDAuMDI1MDM3LCAwLjAyNTAxNCwgMC4wMjQ5OTUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNTYwNCwgMC4wMDU2MjYsIDAuMDA1NjI4LCAwLjAwNTYyOSwgMC4wMDU2MjcsIDAuMDA1NjI4LCAwLjAwNTYyNyIsIFwKLSAgICAgICAgICAiMC4wMDU0NjYsIDAuMDA1NTg4LCAwLjAwNTYwOCwgMC4wMDU2MTQsIDAuMDA1NjE4LCAwLjAwNTYyMSwgMC4wMDU2MjMiLCBcCi0gICAgICAgICAgIjAuMDA1MzU3LCAwLjAwNTUzNywgMC4wMDU1NzcsIDAuMDA1NTg5LCAwLjAwNTYwMiwgMC4wMDU2MDcsIDAuMDA1NjEyIiwgXAotICAgICAgICAgICIwLjAwNTMyNiwgMC4wMDU1MTIsIDAuMDA1NTU5LCAwLjAwNTU3NiwgMC4wMDU1OTEsIDAuMDA1NTk3LCAwLjAwNTYwNCIsIFwKLSAgICAgICAgICAiMC4wMDUzNiwgMC4wMDU1MTEsIDAuMDA1NTU4LCAwLjAwNTU3MiwgMC4wMDU1ODksIDAuMDA1NTk1LCAwLjAwNTYwMyIsIFwKLSAgICAgICAgICAiMC4wMDU1NDEsIDAuMDA1NTY2LCAwLjAwNTU5MSwgMC4wMDU2MDMsIDAuMDA1NjEsIDAuMDA1NjE0LCAwLjAwNTYxNiIsIFwKLSAgICAgICAgICAiMC4wMDU4MTgsIDAuMDA1Njc1LCAwLjAwNTY1OSwgMC4wMDU2NTgsIDAuMDA1NjU1LCAwLjAwNTY1LCAwLjAwNTY0NyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEyIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyMjQ5OSwgMC4wMjI1MTcsIDAuMDIyNTE5LCAwLjAyMjUxNiwgMC4wMjI1MTQsIDAuMDIyNTEsIDAuMDIyNTA2IiwgXAotICAgICAgICAgICIwLjAyMjM2OCwgMC4wMjI0MzgsIDAuMDIyNDQ5LCAwLjAyMjQ1MywgMC4wMjI0NTMsIDAuMDIyNDUzLCAwLjAyMjQ1MiIsIFwKLSAgICAgICAgICAiMC4wMjI0NzMsIDAuMDIyNDUxLCAwLjAyMjQ1MywgMC4wMjI0NTIsIDAuMDIyNDUyLCAwLjAyMjQ1LCAwLjAyMjQ0NyIsIFwKLSAgICAgICAgICAiMC4wMjI2MTgsIDAuMDIyNDg0LCAwLjAyMjQ2NywgMC4wMjI0NjUsIDAuMDIyNDU5LCAwLjAyMjQ1MiwgMC4wMjI0NDciLCBcCi0gICAgICAgICAgIjAuMDIyOTEzLCAwLjAyMjU4OSwgMC4wMjI1MjksIDAuMDIyNTA3LCAwLjAyMjQ4OSwgMC4wMjI0OCwgMC4wMjI0NjciLCBcCi0gICAgICAgICAgIjAuMDIzNTk1LCAwLjAyMjg1LCAwLjAyMjY5NCwgMC4wMjI2NDEsIDAuMDIyNTg5LCAwLjAyMjU1OSwgMC4wMjI1MzIiLCBcCi0gICAgICAgICAgIjAuMDI0MjE1LCAwLjAyMzEwMSwgMC4wMjI4NywgMC4wMjI3ODEsIDAuMDIyNjkzLCAwLjAyMjY0NSwgMC4wMjI2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQxODMsIDAuMDA0MjcsIDAuMDA0Mjc5LCAwLjAwNDI4MiwgMC4wMDQyODQsIDAuMDA0Mjg1LCAwLjAwNDI4NiIsIFwKLSAgICAgICAgICAiMC4wMDQwNDYsIDAuMDA0MzAxLCAwLjAwNDM0MywgMC4wMDQzNTUsIDAuMDA0MzY4LCAwLjAwNDM3NCwgMC4wMDQzNzkiLCBcCi0gICAgICAgICAgIjAuMDAzODk5LCAwLjAwNDI0LCAwLjAwNDMxMSwgMC4wMDQzMzUsIDAuMDA0MzU3LCAwLjAwNDM2OCwgMC4wMDQzNzgiLCBcCi0gICAgICAgICAgIjAuMDAzODQ0LCAwLjAwNDE5MywgMC4wMDQyODIsIDAuMDA0MzE1LCAwLjAwNDM0MSwgMC4wMDQzNTYsIDAuMDA0MzY5IiwgXAotICAgICAgICAgICIwLjAwMzg4NywgMC4wMDQxODEsIDAuMDA0MjcxLCAwLjAwNDMwMywgMC4wMDQzMzYsIDAuMDA0MzUxLCAwLjAwNDM2NiIsIFwKLSAgICAgICAgICAiMC4wMDQwNjMsIDAuMDA0MjA3LCAwLjAwNDI4OCwgMC4wMDQzMTcsIDAuMDA0MzQ2LCAwLjAwNDM2MSwgMC4wMDQzNzQiLCBcCi0gICAgICAgICAgIjAuMDA0MzA0LCAwLjAwNDI5MywgMC4wMDQzMzcsIDAuMDA0MzU2LCAwLjAwNDM3NSwgMC4wMDQzODQsIDAuMDA0Mzk1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDIwNTk1LCAwLjAyMDY2MywgMC4wMjA2NzEsIDAuMDIwNjczLCAwLjAyMDY3MywgMC4wMjA2NzUsIDAuMDIwNjc3IiwgXAotICAgICAgICAgICIwLjAyMDQzNCwgMC4wMjA2NTEsIDAuMDIwNjg2LCAwLjAyMDY5NCwgMC4wMjA3MDQsIDAuMDIwNzA4LCAwLjAyMDcxMiIsIFwKLSAgICAgICAgICAiMC4wMjAzMzEsIDAuMDIwNTk3LCAwLjAyMDY1NCwgMC4wMjA2NzIsIDAuMDIwNjg4LCAwLjAyMDcwNywgMC4wMjA3MTMiLCBcCi0gICAgICAgICAgIjAuMDIwMzIsIDAuMDIwNTU5LCAwLjAyMDYyNywgMC4wMjA2NTIsIDAuMDIwNjc0LCAwLjAyMDY4MiwgMC4wMjA2OTciLCBcCi0gICAgICAgICAgIjAuMDIwMzcyLCAwLjAyMDU1NCwgMC4wMjA2MiwgMC4wMjA2NDYsIDAuMDIwNjY4LCAwLjAyMDY4MSwgMC4wMjA2OTQiLCBcCi0gICAgICAgICAgIjAuMDIwNjAxLCAwLjAyMDU5NiwgMC4wMjA2NDMsIDAuMDIwNjYyLCAwLjAyMDY3NywgMC4wMjA2OSwgMC4wMjA3MDMiLCBcCi0gICAgICAgICAgIjAuMDIwODk4LCAwLjAyMDY4OSwgMC4wMjA3MDEsIDAuMDIwNzA3LCAwLjAyMDcxMywgMC4wMjA3MTYsIDAuMDIwNzIxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDY5MzUsIDAuMDA2OTQxLCAwLjAwNjkzNywgMC4wMDY5MzcsIDAuMDA2OTM2LCAwLjAwNjkzNSwgMC4wMDY5MzUiLCBcCi0gICAgICAgICAgIjAuMDA2NzkyLCAwLjAwNjgwOSwgMC4wMDY4MTIsIDAuMDA2ODEzLCAwLjAwNjgxMywgMC4wMDY4MTQsIDAuMDA2ODE4IiwgXAotICAgICAgICAgICIwLjAwNjg4MywgMC4wMDY4MjIsIDAuMDA2ODIzLCAwLjAwNjgxNywgMC4wMDY4MTEsIDAuMDA2ODA4LCAwLjAwNjgwNiIsIFwKLSAgICAgICAgICAiMC4wMDcwODQsIDAuMDA2ODg5LCAwLjAwNjg0MiwgMC4wMDY4NCwgMC4wMDY4MjYsIDAuMDA2ODE4LCAwLjAwNjgxMiIsIFwKLSAgICAgICAgICAiMC4wMDczNjUsIDAuMDA3MDQ4LCAwLjAwNjk2LCAwLjAwNjkxMywgMC4wMDY4ODksIDAuMDA2ODY4LCAwLjAwNjg1MiIsIFwKLSAgICAgICAgICAiMC4wMDc3ODgsIDAuMDA3MjQzLCAwLjAwNzExNywgMC4wMDcwNTIsIDAuMDA2OTk3LCAwLjAwNjk1OCwgMC4wMDY5MiIsIFwKLSAgICAgICAgICAiMC4wMDgzNjYsIDAuMDA3NTQ4LCAwLjAwNzQwNCwgMC4wMDcyMDYsIDAuMDA3MTA1LCAwLjAwNzA2NSwgMC4wMDcwMDYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTc2MzEsIDAuMDE3Njk2LCAwLjAxNzcwNiwgMC4wMTc3MDgsIDAuMDE3NzA5LCAwLjAxNzcwOSwgMC4wMTc3MTEiLCBcCi0gICAgICAgICAgIjAuMDE3NDczLCAwLjAxNzY4NywgMC4wMTc3MiwgMC4wMTc3MywgMC4wMTc3MzksIDAuMDE3NzQzLCAwLjAxNzc0NyIsIFwKLSAgICAgICAgICAiMC4wMTc0MDEsIDAuMDE3NjQsIDAuMDE3NjkzLCAwLjAxNzcxMSwgMC4wMTc3MjcsIDAuMDE3NzM1LCAwLjAxNzc0MiIsIFwKLSAgICAgICAgICAiMC4wMTc0NDIsIDAuMDE3NjE5LCAwLjAxNzY3OCwgMC4wMTc2OTksIDAuMDE3NzE5LCAwLjAxNzcyOSwgMC4wMTc3MzciLCBcCi0gICAgICAgICAgIjAuMDE3NTc4LCAwLjAxNzYzNiwgMC4wMTc2ODQsIDAuMDE3NywgMC4wMTc3MTksIDAuMDE3NzI2LCAwLjAxNzczNiIsIFwKLSAgICAgICAgICAiMC4wMTc5MTEsIDAuMDE3NzIzLCAwLjAxNzczMywgMC4wMTc3MzUsIDAuMDE3NzQ1LCAwLjAxNzc1LCAwLjAxNzc1NSIsIFwKLSAgICAgICAgICAiMC4wMTgzMDUsIDAuMDE3ODUyLCAwLjAxNzgxLCAwLjAxNzgsIDAuMDE3Nzg5LCAwLjAxNzc4MiwgMC4wMTc3NzkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNTYwMSwgMC4wMDU2MjQsIDAuMDA1NjI3LCAwLjAwNTYyNiwgMC4wMDU2MjgsIDAuMDA1NjI3LCAwLjAwNTYyNyIsIFwKLSAgICAgICAgICAiMC4wMDU1MjEsIDAuMDA1NiwgMC4wMDU2MTUsIDAuMDA1NjIsIDAuMDA1NjIzLCAwLjAwNTYyNSwgMC4wMDU2MjQiLCBcCi0gICAgICAgICAgIjAuMDA1NTkxLCAwLjAwNTYyMSwgMC4wMDU2MjMsIDAuMDA1NjI3LCAwLjAwNTYyNywgMC4wMDU2MjcsIDAuMDA1NjMiLCBcCi0gICAgICAgICAgIjAuMDA1NzE3LCAwLjAwNTY4MSwgMC4wMDU2NDUsIDAuMDA1NjUsIDAuMDA1NjQzLCAwLjAwNTYzOSwgMC4wMDU2MzgiLCBcCi0gICAgICAgICAgIjAuMDA1OTUxLCAwLjAwNTc4MywgMC4wMDU3MTEsIDAuMDA1NjkxLCAwLjAwNTY4LCAwLjAwNTY3NiwgMC4wMDU2NjIiLCBcCi0gICAgICAgICAgIjAuMDA2NTQ3LCAwLjAwNTk2NywgMC4wMDU4NTIsIDAuMDA1ODg0LCAwLjAwNTc2MSwgMC4wMDU3NDMsIDAuMDA1NzI4IiwgXAotICAgICAgICAgICIwLjAwNzA1MiwgMC4wMDYzODEsIDAuMDA2MDE2LCAwLjAwNTk0NiwgMC4wMDU4NzUsIDAuMDA1ODMzLCAwLjAwNTc5NCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIyIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxNTExLCAwLjAxNTIwOCwgMC4wMTUyMTksIDAuMDE1MjIyLCAwLjAxNTIyNiwgMC4wMTUyMjUsIDAuMDE1MjIxIiwgXAotICAgICAgICAgICIwLjAxNDk5NiwgMC4wMTUxOTcsIDAuMDE1MjMyLCAwLjAxNTI0MiwgMC4wMTUyNTEsIDAuMDE1MjU1LCAwLjAxNTI2MiIsIFwKLSAgICAgICAgICAiMC4wMTUxMTgsIDAuMDE1MTk3LCAwLjAxNTIyOSwgMC4wMTUyNCwgMC4wMTUyNTIsIDAuMDE1MjU3LCAwLjAxNTI2MyIsIFwKLSAgICAgICAgICAiMC4wMTUyOCwgMC4wMTUyMTksIDAuMDE1MjM4LCAwLjAxNTI0NywgMC4wMTUyNTYsIDAuMDE1MjYxLCAwLjAxNTI2NSIsIFwKLSAgICAgICAgICAiMC4wMTU2MTEsIDAuMDE1MzA2LCAwLjAxNTI4OSwgMC4wMTUyODUsIDAuMDE1MjgzLCAwLjAxNTI4MiwgMC4wMTUyODUiLCBcCi0gICAgICAgICAgIjAuMDE2MTg0LCAwLjAxNTU1OCwgMC4wMTU0MzksIDAuMDE1NDAyLCAwLjAxNTM2OSwgMC4wMTUzNTQsIDAuMDE1MzM4IiwgXAotICAgICAgICAgICIwLjAxNjc1MSwgMC4wMTU3ODcsIDAuMDE1NjA0LCAwLjAxNTUzNSwgMC4wMTU0NjYsIDAuMDE1NDMxLCAwLjAxNTQwMiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0MTc1LCAwLjAwNDI2OSwgMC4wMDQyNzksIDAuMDA0MjgyLCAwLjAwNDI4NiwgMC4wMDQyODYsIDAuMDA0Mjg4IiwgXAotICAgICAgICAgICIwLjAwNDEzNSwgMC4wMDQzMjEsIDAuMDA0MzU1LCAwLjAwNDM2NywgMC4wMDQzNzUsIDAuMDA0MzgxLCAwLjAwNDM4NSIsIFwKLSAgICAgICAgICAiMC4wMDQxODMsIDAuMDA0MzI4LCAwLjAwNDM2NSwgMC4wMDQzNzcsIDAuMDA0Mzg5LCAwLjAwNDM5NiwgMC4wMDQ0MDEiLCBcCi0gICAgICAgICAgIjAuMDA0MzAxLCAwLjAwNDM5NiwgMC4wMDQ0MDIsIDAuMDA0NDA0LCAwLjAwNDQxNCwgMC4wMDQ0MTUsIDAuMDA0NDE2IiwgXAotICAgICAgICAgICIwLjAwNDY4MSwgMC4wMDQ1MTEsIDAuMDA0NDgxLCAwLjAwNDQ3MSwgMC4wMDQ0NTksIDAuMDA0NDU0LCAwLjAwNDQ0OSIsIFwKLSAgICAgICAgICAiMC4wMDUwNTIsIDAuMDA0Nzc4LCAwLjAwNDYxNiwgMC4wMDQ1OTUsIDAuMDA0NTU2LCAwLjAwNDUzNCwgMC4wMDQ1MTMiLCBcCi0gICAgICAgICAgIjAuMDA1NzUyLCAwLjAwNDkwNiwgMC4wMDQ3NjksIDAuMDA0NzEsIDAuMDA0NjQ3LCAwLjAwNDYxLCAwLjAwNDU3NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBPUjRYMSAqCi0gKiAtLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoT1I0WDEpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4zOTgwMTc7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYyODE1NjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MjU2NzQ7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjI4MTU2OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDI1MiwgMC4wMDAyNjksIDAuMDAwMjc2LCAwLjAwMDI4LCAwLjAwMDI4MSwgMC4wMDAyOCwgMC4wMDAyODEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA3MywgMC4wMDA3MywgMC4wMDA3MzEsIDAuMDAwNzMxLCAwLjAwMDczMSwgMC4wMDA3MzEsIDAuMDAwNzMxIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2NTY3MjY7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjU0ODQ0OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDY1NjcyNjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyNCwgMC4wMDAyNjcsIDAuMDAwMjc1LCAwLjAwMDI3NywgMC4wMDAyOCwgMC4wMDAyODUsIDAuMDAwMjg3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNTA3LCAwLjAwMDUwNywgMC4wMDA1MDgsIDAuMDAwNTA4LCAwLjAwMDUwOCwgMC4wMDA1MDgsIDAuMDAwNTA4Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihDKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2OTAwNjU7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjg4NTE7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjkwMDY1OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDI0MiwgMC4wMDAyNzMsIDAuMDAwMjgyLCAwLjAwMDI4NSwgMC4wMDAyODQsIDAuMDAwMjg2LCAwLjAwMDI4NiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDMwNCwgMC4wMDAzMDQsIDAuMDAwMzA0LCAwLjAwMDMwNCwgMC4wMDAzMDQsIDAuMDAwMzA0LCAwLjAwMDMwNCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjY5MTc1OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDY2OTE3NTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2Njg5Mzc7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMDY4LCAwLjAwMDA2OCwgMC4wMDAwNjgsIDAuMDAwMDY4LCAwLjAwMDA2OCwgMC4wMDAwNjksIDAuMDAwMDY4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjA2LCAwLjAwMDIwNiwgMC4wMDAyMDYsIDAuMDAwMjA2LCAwLjAwMDIwNiwgMC4wMDAyMDYsIDAuMDAwMjA2Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMzQzMTIxOwotICAgIGZ1bmN0aW9uIDogIigoKEErQikrQykrRCkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1NTkxLCAwLjA3NDQ1NCwgMC4xNzg5NDYsIDAuMjcwOTUzLCAwLjM5Mzc2MywgMC42MzkxMywgMC43OTI1MjEiLCBcCi0gICAgICAgICAgIjAuMDY0MTc1LCAwLjA4MjY5NiwgMC4xODcxOTEsIDAuMjc5MjkxLCAwLjQwMTk3NCwgMC42NDc0MDYsIDAuODAwNzMzIiwgXAotICAgICAgICAgICIwLjA3MzQ2MywgMC4wOTE5NzcsIDAuMTk2NDU5LCAwLjI4ODUwNywgMC40MTEyNTYsIDAuNjU2NjI4LCAwLjgwOTk2NCIsIFwKLSAgICAgICAgICAiMC4wODA1NywgMC4wOTkwOTYsIDAuMjAzNTI3LCAwLjI5NTYxOSwgMC40MTgzMjEsIDAuNjYzNzA0LCAwLjgxNzAzNSIsIFwKLSAgICAgICAgICAiMC4wODY0MTYsIDAuMTA0ODk1LCAwLjIwOTMyOCwgMC4zMDEzNTMsIDAuNDI0MDc2LCAwLjY2OTQ2NiwgMC44MjI4MDkiLCBcCi0gICAgICAgICAgIjAuMDkzNzk3LCAwLjExMjI4MiwgMC4yMTY2NjYsIDAuMzA4NzExLCAwLjQzMTM5MywgMC42NzY3NzUsIDAuODMwMjE4IiwgXAotICAgICAgICAgICIwLjA5OTEzMywgMC4xMTc1NiwgMC4yMjE5NCwgMC4zMTM5ODIsIDAuNDM2NjY3LCAwLjY4MjEzMSwgMC44MzUzNjYiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDcxMjY0LCAwLjEwOTM4MSwgMC4zMjc3OCwgMC41MjEzMTYsIDAuNzgwMDA2LCAxLjI5NjM5LCAxLjYxNjMzIiwgXAotICAgICAgICAgICIwLjA3MTI0OSwgMC4xMDk0MDMsIDAuMzI3OTYxLCAwLjUyMTgyNywgMC43Nzk5NDgsIDEuMjk2MzksIDEuNjE5MSIsIFwKLSAgICAgICAgICAiMC4wNzE0MTIsIDAuMTA5NDczLCAwLjMyODE3MiwgMC41MjE0MTksIDAuNzc5OTExLCAxLjI5NjI2LCAxLjYxODk5IiwgXAotICAgICAgICAgICIwLjA3MjA1MiwgMC4xMDk3NDgsIDAuMzI4MTY5LCAwLjUyMTc4MywgMC43Nzk5MDQsIDEuMjk2MjYsIDEuNjE4OTkiLCBcCi0gICAgICAgICAgIjAuMDcyNjQzLCAwLjExMDA4LCAwLjMyODIxOCwgMC41MjEzNjksIDAuNzc4ODcxLCAxLjI5NjI1LCAxLjYxODk5IiwgXAotICAgICAgICAgICIwLjA3MzY5LCAwLjExMDc4NiwgMC4zMjgyNDgsIDAuNTIxNzU4LCAwLjc3OTg0MywgMS4yOTUxOCwgMS42MTkwNiIsIFwKLSAgICAgICAgICAiMC4wNzQ4OTYsIDAuMTExNjQsIDAuMzI4MTg0LCAwLjUyMTc2NCwgMC43Nzk4NjYsIDEuMjk2MzIsIDEuNjE4ODkiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTA1MDYsIDAuMTI1MTczLCAwLjIyOTU1NCwgMC4zMjAwNzEsIDAuNDQwNzE3LCAwLjY4MjExLCAwLjgzMjkwNCIsIFwKLSAgICAgICAgICAiMC4xMDk4NTIsIDAuMTI5OTg0LCAwLjIzNDM0NywgMC4zMjQ4NjYsIDAuNDQ1NTE1LCAwLjY4Njg5MSwgMC44Mzc3MzMiLCBcCi0gICAgICAgICAgIjAuMTE0MTg0LCAwLjEzNDI0MSwgMC4yMzg2MzUsIDAuMzI5MTY3LCAwLjQ0OTgxNywgMC42OTEyMDEsIDAuODQxOTU4IiwgXAotICAgICAgICAgICIwLjExNzYwNiwgMC4xMzc3MTQsIDAuMjQyMTE1LCAwLjMzMjY1MiwgMC40NTMyODcsIDAuNjk0ODIzLCAwLjg0NTQ1MyIsIFwKLSAgICAgICAgICAiMC4xMjA2NjcsIDAuMTQwODQsIDAuMjQ1MjU0LCAwLjMzNTc3NiwgMC40NTY0MjYsIDAuNjk3ODIsIDAuODQ4NjUiLCBcCi0gICAgICAgICAgIjAuMTI0OTczLCAwLjE0NTM0LCAwLjI0OTg5LCAwLjM0MDQwMSwgMC40NjEwNjUsIDAuNzAyNTQsIDAuODUzMjI2IiwgXAotICAgICAgICAgICIwLjEyODUsIDAuMTQ4ODUyLCAwLjI1MzYyNCwgMC4zNDQxMjksIDAuNDY0NzU5LCAwLjcwNjI0MywgMC44NTY5MjEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDgxMTMyLCAwLjExNjMyNywgMC4zMjA4NjcsIDAuNTA0NjA3LCAwLjc1MjkzNSwgMS4yNDcwNCwgMS41NjAxMSIsIFwKLSAgICAgICAgICAiMC4wODEwMzgsIDAuMTE2Mjg1LCAwLjMyMDksIDAuNTA1NDQyLCAwLjc1MjkxNSwgMS4yNDcwNiwgMS41NTg0NyIsIFwKLSAgICAgICAgICAiMC4wODA5ODQsIDAuMTE2MjM3LCAwLjMyMDgyLCAwLjUwNTQ1MSwgMC43NTI5MTksIDEuMjQ3MDYsIDEuNTYwMTkiLCBcCi0gICAgICAgICAgIjAuMDgxMjY3LCAwLjExNjQ4MiwgMC4zMjA3OTQsIDAuNTA1NDc3LCAwLjc1Mjg1MywgMS4yNDc0MSwgMS41NjA2NiIsIFwKLSAgICAgICAgICAiMC4wODE2OTYsIDAuMTE2ODM0LCAwLjMyMTA3MywgMC41MDU1NTcsIDAuNzUyOTY4LCAxLjI0NzAzLCAxLjU1ODQiLCBcCi0gICAgICAgICAgIjAuMDgyNDM3LCAwLjExNzU5OCwgMC4zMjExOTEsIDAuNTA0OTMxLCAwLjc1MzE1NSwgMS4yNDc1NSwgMS41NjA3MiIsIFwKLSAgICAgICAgICAiMC4wODMzMjMsIDAuMTE4MjI2LCAwLjMyMTY4MywgMC41MDUzODUsIDAuNzUyOTYzLCAxLjI0NzY5LCAxLjU2MDE5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1NDgxNiwgMC4wNzMyOTUsIDAuMTc3NzE5LCAwLjI2OTcyOSwgMC4zOTI0MTksIDAuNjM3NzcyLCAwLjc5MTEwMyIsIFwKLSAgICAgICAgICAiMC4wNjI5MTMsIDAuMDgxMzkzLCAwLjE4NTgyOSwgMC4yNzc4NCwgMC40MDA1OSwgMC42NDU4NzksIDAuNzk5MjEiLCBcCi0gICAgICAgICAgIjAuMDcxNzE4LCAwLjA5MDIxLCAwLjE5NDYyOSwgMC4yODY2ODQsIDAuNDA5MzQyLCAwLjY1NDcyNywgMC44MDgwMzQiLCBcCi0gICAgICAgICAgIjAuMDc4NDQ3LCAwLjA5Njk0LCAwLjIwMTM1NCwgMC4yOTM0MDcsIDAuNDE2MDg1LCAwLjY2MTQ3LCAwLjgxNDc3NCIsIFwKLSAgICAgICAgICAiMC4wODM1OTQsIDAuMTAyMDk1LCAwLjIwNjUwMSwgMC4yOTg1MzIsIDAuNDIxMjMyLCAwLjY2NjY5NiwgMC44MTk5MTMiLCBcCi0gICAgICAgICAgIjAuMDkwNTc3LCAwLjEwODk5MSwgMC4yMTMxMjMsIDAuMzA1NDE1LCAwLjQyODE3MiwgMC42NzM0NDUsIDAuODI2Njg5IiwgXAotICAgICAgICAgICIwLjA5NTUyMywgMC4xMTM5MywgMC4yMTgzMTMsIDAuMzEwMzM4LCAwLjQzMzAxNiwgMC42NzgzNzQsIDAuODMxNzYxIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3MDYzOSwgMC4xMDg4OSwgMC4zMjgwMjksIDAuNTIxNjMzLCAwLjc3OTg1NSwgMS4yOTUwMiwgMS42MTc2MSIsIFwKLSAgICAgICAgICAiMC4wNzA3NDYsIDAuMTA4OTk2LCAwLjMyODAyMSwgMC41MjE2MTgsIDAuNzc5ODk3LCAxLjI5NjMxLCAxLjYxNzQ3IiwgXAotICAgICAgICAgICIwLjA3MTA4NywgMC4xMDkwMiwgMC4zMjc1NTcsIDAuNTIxNjMsIDAuNzc5ODI5LCAxLjI5NDk0LCAxLjYxOSIsIFwKLSAgICAgICAgICAiMC4wNzE2NDUsIDAuMTA5NDY3LCAwLjMyNzk4NSwgMC41MjE1OTEsIDAuNzc5NzY2LCAxLjI5NDg0LCAxLjYxODk0IiwgXAotICAgICAgICAgICIwLjA3MjMyOSwgMC4xMDk3ODQsIDAuMzI4MDE2LCAwLjUyMTYxMSwgMC43Nzg5NzUsIDEuMjk0NTQsIDEuNjE4OSIsIFwKLSAgICAgICAgICAiMC4wNzMzNTYsIDAuMTEwNDQ0LCAwLjMyNzgxOCwgMC41MjEyOTgsIDAuNzc4Nzk5LCAxLjI5NTAxLCAxLjYxNjg4IiwgXAotICAgICAgICAgICIwLjA3NDMzNCwgMC4xMTExNTQsIDAuMzI3OTQxLCAwLjUyMTE2NSwgMC43NzkyNjksIDEuMjk1MjUsIDEuNjE4NzkiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTAyNDM5LCAwLjEyMjU2MywgMC4yMjY5MywgMC4zMTc0NjQsIDAuNDM4MTA1LCAwLjY3OTY0OSwgMC44MzAyNjYiLCBcCi0gICAgICAgICAgIjAuMTA3NDE4LCAwLjEyNzUyNiwgMC4yMzE5MjQsIDAuMzIyNDU5LCAwLjQ0MzA5NiwgMC42ODQ0MDMsIDAuODM1NDM5IiwgXAotICAgICAgICAgICIwLjExMjY3NywgMC4xMzI3OTMsIDAuMjM3MTQ2LCAwLjMyNzY3OSwgMC40NDgzMzEsIDAuNjg5NzE2LCAwLjg0MDU3NCIsIFwKLSAgICAgICAgICAiMC4xMTc2OTUsIDAuMTM3ODMxLCAwLjI0MjE4NiwgMC4zMzI3MTEsIDAuNDUzMzU1LCAwLjY5NDcyNSwgMC44NDU2MDkiLCBcCi0gICAgICAgICAgIjAuMTIyMzI5LCAwLjE0MjUyMSwgMC4yNDY5NTYsIDAuMzM3NDkxLCAwLjQ1ODE5NCwgMC42OTk0ODUsIDAuODUwMzkyIiwgXAotICAgICAgICAgICIwLjEyOTE2MSwgMC4xNDk1NTcsIDAuMjU0MTYyLCAwLjM0NDcwOSwgMC40NjUzNTgsIDAuNzA2NzQyLCAwLjg1NzUwNCIsIFwKLSAgICAgICAgICAiMC4xMzQ3NywgMC4xNTUyNTcsIDAuMjYwMDcsIDAuMzUwNTUzLCAwLjQ3MTE4NiwgMC43MTI2MTksIDAuODYzMzEyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4MTEzLCAwLjExNjIzLCAwLjMyMDg3LCAwLjUwNTQ3NCwgMC43NTI4ODQsIDEuMjQ3MiwgMS41NjA2OCIsIFwKLSAgICAgICAgICAiMC4wODEwNTMsIDAuMTE2MzA1LCAwLjMyMDg0NCwgMC41MDU0NjcsIDAuNzUxOTE3LCAxLjI0OTQzLCAxLjU1Nzg0IiwgXAotICAgICAgICAgICIwLjA4MTAwMSwgMC4xMTYyMDksIDAuMzIwODYxLCAwLjUwNTQ1NywgMC43NTI5MTUsIDEuMjQ3MDYsIDEuNTU4NTQiLCBcCi0gICAgICAgICAgIjAuMDgxMzY4LCAwLjExNjU3MiwgMC4zMjA5ODUsIDAuNTA0NjYyLCAwLjc1MjkwOCwgMS4yNDcwNywgMS41NTg1NyIsIFwKLSAgICAgICAgICAiMC4wODIwMDcsIDAuMTE3MDY2LCAwLjMyMDk4OCwgMC41MDU1OTIsIDAuNzUxNjMxLCAxLjI0OTg4LCAxLjU1ODQ4IiwgXAotICAgICAgICAgICIwLjA4MzAyNSwgMC4xMTc5NTksIDAuMzIxNTc3LCAwLjUwNDgzNywgMC43NTMyMzQsIDEuMjQ2OTYsIDEuNTYwMjEiLCBcCi0gICAgICAgICAgIjAuMDg0MDUzLCAwLjExODg3NCwgMC4zMjE5NTksIDAuNTA2MDU1LCAwLjc1MzA0NSwgMS4yNDY4NywgMS41NjA1OSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTMxODIsIDAuMDcxNjM3LCAwLjE3NTk4NSwgMC4yNjc5OTcsIDAuMzkwNjkyLCAwLjYzNjA0OCwgMC43ODk0MzUiLCBcCi0gICAgICAgICAgIjAuMDYxMzcyLCAwLjA3OTgyMiwgMC4xODQyMTMsIDAuMjc2MTkxLCAwLjM5ODg2OCwgMC42NDQyMTQsIDAuNzk3NTU5IiwgXAotICAgICAgICAgICIwLjA2OTcxNiwgMC4wODgxNjIsIDAuMTkyNTA5LCAwLjI4NDU2OCwgMC40MDcxOTksIDAuNjUyNTM1LCAwLjgwNTkxMiIsIFwKLSAgICAgICAgICAiMC4wNzU5MiwgMC4wOTQzMzgsIDAuMTk4NjgzLCAwLjI5MDcwNywgMC40MTMzOTEsIDAuNjU4NzAzLCAwLjgxMjAxOCIsIFwKLSAgICAgICAgICAiMC4wODA2ODgsIDAuMDk5MDMxLCAwLjIwMzUyOCwgMC4yOTUzNTQsIDAuNDE4MDE4LCAwLjY2MzYwMywgMC44MTY3MjciLCBcCi0gICAgICAgICAgIjAuMDg2NzUsIDAuMTA1MTk5LCAwLjIwOTU2MywgMC4zMDE1NTYsIDAuNDI0MjE2LCAwLjY2OTYxNSwgMC44MjI5MjgiLCBcCi0gICAgICAgICAgIjAuMDkxMTk5LCAwLjEwOTY2LCAwLjIxNDAwNiwgMC4zMDYwMjUsIDAuNDI4Njg3LCAwLjY3Mzk2OCwgMC44Mjc0NTMiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDcwNDI4LCAwLjEwODc1OCwgMC4zMjc5MDQsIDAuNTIxMDUxLCAwLjc3ODUxNSwgMS4yOTQyMywgMS42MTY4NCIsIFwKLSAgICAgICAgICAiMC4wNzA0NzIsIDAuMTA4Nzg0LCAwLjMyNzQzMiwgMC41MjExNDIsIDAuNzc5MjA1LCAxLjI5NTMsIDEuNjE3NDUiLCBcCi0gICAgICAgICAgIjAuMDcwOTEsIDAuMTA4OTksIDAuMzI3NjQ3LCAwLjUyMTU4MiwgMC43NzkwNjcsIDEuMjk1MTIsIDEuNjE5MTQiLCBcCi0gICAgICAgICAgIjAuMDcxNDYzLCAwLjEwOTMzOCwgMC4zMjc1OTEsIDAuNTIwODU4LCAwLjc3OTY5OCwgMS4yOTYyLCAxLjYxODg2IiwgXAotICAgICAgICAgICIwLjA3MjE2MywgMC4xMDk2NjksIDAuMzI3Njk4LCAwLjUyMTA5MywgMC43Nzk2MDQsIDEuMjk2MTIsIDEuNjE4OTMiLCBcCi0gICAgICAgICAgIjAuMDczMjYxLCAwLjExMDQxNSwgMC4zMjc3MDIsIDAuNTIxMzksIDAuNzc5MDg5LCAxLjI5NjAxLCAxLjYxNjczIiwgXAotICAgICAgICAgICIwLjA3NDI1NiwgMC4xMTExMDMsIDAuMzI3NzcsIDAuNTIxMDU5LCAwLjc3OTEzMSwgMS4yOTU4MSwgMS42MTg4NiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTc5NTEsIDAuMTE4MDg1LCAwLjIyMjQ2NiwgMC4zMTMwMDIsIDAuNDMzNjU1LCAwLjY3NDk0NiwgMC44MjU5NzUiLCBcCi0gICAgICAgICAgIjAuMTAzNDE0LCAwLjEyMzUzMSwgMC4yMjc5MTUsIDAuMzE4NDUyLCAwLjQzOTE0MiwgMC42ODA0NDcsIDAuODMxMzcxIiwgXAotICAgICAgICAgICIwLjExMDQ5MiwgMC4xMzA2MTEsIDAuMjM0OTczLCAwLjMyNTQ5OCwgMC40NDYxNSwgMC42ODc1MjMsIDAuODM4Mzg2IiwgXAotICAgICAgICAgICIwLjExNzU2LCAwLjEzNzY0OSwgMC4yNDIwNzQsIDAuMzMyNjE2LCAwLjQ1MzI1NiwgMC42OTQ3MywgMC44NDUzODciLCBcCi0gICAgICAgICAgIjAuMTI0MDM4LCAwLjE0NDIzMiwgMC4yNDg2NjUsIDAuMzM5MjM3LCAwLjQ1OTgzNiwgMC43MDEyMTUsIDAuODUyMDM5IiwgXAotICAgICAgICAgICIwLjEzMzUwMiwgMC4xNTM4NzQsIDAuMjU4NTA0LCAwLjM0OTAyLCAwLjQ2OTY4NiwgMC43MTEwOSwgMC44NjE4NDQiLCBcCi0gICAgICAgICAgIjAuMTQxMTI1LCAwLjE2MTM2MSwgMC4yNjYzMDgsIDAuMzU2ODI1LCAwLjQ3NzQzNCwgMC43MTg5NDksIDAuODY5Njk0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4MTE0NCwgMC4xMTYyOTQsIDAuMzIwODkyLCAwLjUwNTQ3NywgMC43NTI5MzksIDEuMjQ5NDUsIDEuNTU3OCIsIFwKLSAgICAgICAgICAiMC4wODEwNDIsIDAuMTE2MjgxLCAwLjMyMDY5MiwgMC41MDU0NTgsIDAuNzUzMTEzLCAxLjI0OTg1LCAxLjU1ODUiLCBcCi0gICAgICAgICAgIjAuMDgxMDQ0LCAwLjExNjMwNSwgMC4zMjA2MzksIDAuNTA1NDM0LCAwLjc1MjkwNiwgMS4yNDcwNywgMS41NTg1OSIsIFwKLSAgICAgICAgICAiMC4wODE0OSwgMC4xMTY2MjgsIDAuMzIwODEzLCAwLjUwNTQ5OCwgMC43NTE5OTIsIDEuMjQ3NTgsIDEuNTYwNTYiLCBcCi0gICAgICAgICAgIjAuMDgyMTg3LCAwLjExNzIxNywgMC4zMjEyMDMsIDAuNTA1NjE1LCAwLjc1Mjk4NiwgMS4yNDcwNywgMS41NjA2OSIsIFwKLSAgICAgICAgICAiMC4wODMzNTEsIDAuMTE4MTQzLCAwLjMyMTYzMiwgMC41MDU3NjUsIDAuNzUzMTk3LCAxLjI0NjkyLCAxLjU2MDIiLCBcCi0gICAgICAgICAgIjAuMDg0MDgsIDAuMTE4OTY0LCAwLjMyMTk5NywgMC41MDYyMTMsIDAuNzUzMDcyLCAxLjI0NzUxLCAxLjU1Njg3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkQiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1MTQwOCwgMC4wNjk4NCwgMC4xNzQxMzcsIDAuMjY2MDk0LCAwLjM4OTE5MSwgMC42MzQzNDMsIDAuNzg3ODY3IiwgXAotICAgICAgICAgICIwLjA1OTM4NCwgMC4wNzc4MjQsIDAuMTgyMjQ4LCAwLjI3NDMyNywgMC4zOTY5MiwgMC42NDIzNTEsIDAuNzk2MjIxIiwgXAotICAgICAgICAgICIwLjA2NzIyOCwgMC4wODU2NjksIDAuMTkwMDA1LCAwLjI4MjI5NiwgMC40MDUwNjksIDAuNjUwMjYxLCAwLjgwNDYzNiIsIFwKLSAgICAgICAgICAiMC4wNzI3OTEsIDAuMDkxMjMzLCAwLjE5NTYwNSwgMC4yODc1OTYsIDAuNDEwNTA0LCAwLjY1NTg1OSwgMC44MDk4ODUiLCBcCi0gICAgICAgICAgIjAuMDc2OTQsIDAuMDk1NjE5LCAwLjE5OTY5OCwgMC4yOTE2OTQsIDAuNDE0NTQsIDAuNjYwNTA5LCAwLjgxMzMwNiIsIFwKLSAgICAgICAgICAiMC4wODI1ODIsIDAuMTAxMDIzLCAwLjIwNTI1NiwgMC4yOTcxODcsIDAuNDE5OTgyLCAwLjY2NTg0LCAwLjgxODY5OCIsIFwKLSAgICAgICAgICAiMC4wODYzNjIsIDAuMTA0Nzc3LCAwLjIwOTAwMiwgMC4zMDA5ODIsIDAuNDIzNjc3LCAwLjY2OTQ3OSwgMC44MjI2MzUiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDcwMjA3LCAwLjEwODYwNSwgMC4zMjcxMjcsIDAuNTIxMjUxLCAwLjc3ODcwNSwgMS4yOTQzOCwgMS42MTcwNSIsIFwKLSAgICAgICAgICAiMC4wNzAzNjIsIDAuMTA4NSwgMC4zMjc0MzYsIDAuNTIwODksIDAuNzc5MDI5LCAxLjI5NTk0LCAxLjYxNzM3IiwgXAotICAgICAgICAgICIwLjA3MDg5NCwgMC4xMDg5NDgsIDAuMzI3NzM4LCAwLjUyMDc4NiwgMC43Nzg2NzEsIDEuMjk0MDksIDEuNjE3NTkiLCBcCi0gICAgICAgICAgIjAuMDcxNjYyLCAwLjEwOTMzMywgMC4zMjcyOTQsIDAuNTIwNzU5LCAwLjc3ODgzOCwgMS4yOTQ2MiwgMS42MTc2NCIsIFwKLSAgICAgICAgICAiMC4wNzI1MDUsIDAuMTA5Njk4LCAwLjMyODAzNiwgMC41MjE2ODgsIDAuNzc5MSwgMS4yOTQ5OSwgMS42MTYzMyIsIFwKLSAgICAgICAgICAiMC4wNzM1NjEsIDAuMTEwNjA4LCAwLjMyNzYzOCwgMC41MjA4NjksIDAuNzc4OTYyLCAxLjI5NDY0LCAxLjYxNjU3IiwgXAotICAgICAgICAgICIwLjA3NDU0NywgMC4xMTEyNTEsIDAuMzI3ODE5LCAwLjUyMTE4MSwgMC43NzkwOTQsIDEuMjk0NzEsIDEuNjE3NTMiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDkxNCwgMC4xMTE1MywgMC4yMTU5NDEsIDAuMzA2NDY3LCAwLjQyNzEyMSwgMC42Njg1MjQsIDAuODE5MzEzIiwgXAotICAgICAgICAgICIwLjA5NzkyOCwgMC4xMTgwNTIsIDAuMjIyNDk5LCAwLjMxMzAzOCwgMC40MzM2OTQsIDAuNjc1MDk0LCAwLjgyNTg5OCIsIFwKLSAgICAgICAgICAiMC4xMDcwNiwgMC4xMjcxNywgMC4yMzE1MywgMC4zMjIwNTYsIDAuNDQyNzE0LCAwLjY4NDA3NCwgMC44MzUwMDQiLCBcCi0gICAgICAgICAgIjAuMTE2MTExLCAwLjEzNjE5MSwgMC4yNDA1NjIsIDAuMzMxMDk2LCAwLjQ1MTc4MywgMC42OTMwOTEsIDAuODQ0MDM0IiwgXAotICAgICAgICAgICIwLjEyMzk0LCAwLjE0NDE0OSwgMC4yNDg1NTksIDAuMzM5MDgsIDAuNDU5NzM0LCAwLjcwMTEwNywgMC44NTE5NzYiLCBcCi0gICAgICAgICAgIjAuMTM1MDU2LCAwLjE1NTQwNSwgMC4yNjAwODEsIDAuMzUwNTg2LCAwLjQ3MTIwOSwgMC43MTI3NjgsIDAuODYzMzQ4IiwgXAotICAgICAgICAgICIwLjE0MzQ2OCwgMC4xNjM5NDMsIDAuMjY4OTI5LCAwLjM1OTQxNCwgMC40ODAwOTEsIDAuNzIxNDk1LCAwLjg3MjE0NCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODEwMzYsIDAuMTE2MjY1LCAwLjMyMDg1OCwgMC41MDQ1MjMsIDAuNzUyOTI2LCAxLjI0Njk4LCAxLjU2MDI4IiwgXAotICAgICAgICAgICIwLjA4MDk2OCwgMC4xMTYyMDIsIDAuMzIwNzIyLCAwLjUwNTQ1MiwgMC43NTI5MTEsIDEuMjQ3MDIsIDEuNTU5OTgiLCBcCi0gICAgICAgICAgIjAuMDgxMDQzLCAwLjExNjI4NywgMC4zMjA2NDksIDAuNTA1NDIzLCAwLjc1Mjg5MiwgMS4yNDk4OCwgMS41NTg1NSIsIFwKLSAgICAgICAgICAiMC4wODEzNTQsIDAuMTE2NTYyLCAwLjMyMDc5LCAwLjUwNTQ4NywgMC43NTMxMSwgMS4yNDk4NSwgMS41NTg3NSIsIFwKLSAgICAgICAgICAiMC4wODIwNzksIDAuMTE3MTI1LCAwLjMyMTE5LCAwLjUwNTA2MiwgMC43NTI5NzUsIDEuMjQ3MDcsIDEuNTU4NjQiLCBcCi0gICAgICAgICAgIjAuMDgyOTc1LCAwLjExODAyLCAwLjMyMTQ3MiwgMC41MDU4MTUsIDAuNzUyOTg4LCAxLjI0NywgMS41NjA1OCIsIFwKLSAgICAgICAgICAiMC4wODQxODIsIDAuMTE4NzYyLCAwLjMyMTk4MiwgMC41MDYxNywgMC43NTE3NzMsIDEuMjQ3NjUsIDEuNTYwNTkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDIxNDcsIDAuMDAyMTQ5LCAwLjAwMjE1MSwgMC4wMDIxNTEsIDAuMDAyMTUyLCAwLjAwMjE1NCwgMC4wMDIxNSIsIFwKLSAgICAgICAgICAiMC4wMDIxMjgsIDAuMDAyMTMsIDAuMDAyMTMzLCAwLjAwMjEzNCwgMC4wMDIxMzQsIDAuMDAyMTM0LCAwLjAwMjEzNCIsIFwKLSAgICAgICAgICAiMC4wMDIxNTYsIDAuMDAyMTU3LCAwLjAwMjE1OSwgMC4wMDIxNiwgMC4wMDIxNiwgMC4wMDIxNjEsIDAuMDAyMTYxIiwgXAotICAgICAgICAgICIwLjAwMjIyMiwgMC4wMDIyMTksIDAuMDAyMjE2LCAwLjAwMjIxNiwgMC4wMDIyMTYsIDAuMDAyMjE1LCAwLjAwMjIxNSIsIFwKLSAgICAgICAgICAiMC4wMDIyOTQsIDAuMDAyMjg3LCAwLjAwMjI4LCAwLjAwMjI4LCAwLjAwMjI3OCwgMC4wMDIyNzcsIDAuMDAyMjc3IiwgXAotICAgICAgICAgICIwLjAwMjQ0NiwgMC4wMDI0MzQsIDAuMDAyNDE3LCAwLjAwMjQxMywgMC4wMDI0MTMsIDAuMDAyNDEsIDAuMDAyNDA5IiwgXAotICAgICAgICAgICIwLjAwMjU5MSwgMC4wMDI1NzYsIDAuMDAyNTU1LCAwLjAwMjU1LCAwLjAwMjU0NywgMC4wMDI1NDQsIDAuMDAyNTQzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0Mjg4LCAwLjAwNDI5LCAwLjAwNDI5MiwgMC4wMDQyOTIsIDAuMDA0MjkxLCAwLjAwNDI5MSwgMC4wMDQyOTEiLCBcCi0gICAgICAgICAgIjAuMDA0MjYsIDAuMDA0MjYxLCAwLjAwNDI2NSwgMC4wMDQyNjUsIDAuMDA0MjY1LCAwLjAwNDI2NSwgMC4wMDQyNjUiLCBcCi0gICAgICAgICAgIjAuMDA0MjQ4LCAwLjAwNDI1MSwgMC4wMDQyNTYsIDAuMDA0MjU3LCAwLjAwNDI1NywgMC4wMDQyNTcsIDAuMDA0MjU3IiwgXAotICAgICAgICAgICIwLjAwNDI1NCwgMC4wMDQyNTYsIDAuMDA0MjYxLCAwLjAwNDI2MiwgMC4wMDQyNjIsIDAuMDA0MjYzLCAwLjAwNDI2MyIsIFwKLSAgICAgICAgICAiMC4wMDQyNzksIDAuMDA0Mjc4LCAwLjAwNDI3OSwgMC4wMDQyOCwgMC4wMDQyOCwgMC4wMDQyOCwgMC4wMDQyOCIsIFwKLSAgICAgICAgICAiMC4wMDQzMzMsIDAuMDA0MzM0LCAwLjAwNDMzMSwgMC4wMDQzMzMsIDAuMDA0MzMzLCAwLjAwNDMzMiwgMC4wMDQzMzIiLCBcCi0gICAgICAgICAgIjAuMDA0NDA4LCAwLjAwNDQwNCwgMC4wMDQ0MDEsIDAuMDA0NCwgMC4wMDQ0LCAwLjAwNDM5OSwgMC4wMDQzOTkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDE5NDEsIDAuMDAxOTQ5LCAwLjAwMTk2MywgMC4wMDE5NjIsIDAuMDAxOTY0LCAwLjAwMTk2NSwgMC4wMDE5NjUiLCBcCi0gICAgICAgICAgIjAuMDAxOTI5LCAwLjAwMTkzOCwgMC4wMDE5NTEsIDAuMDAxOTU0LCAwLjAwMTk1NSwgMC4wMDE5NTcsIDAuMDAxOTU3IiwgXAotICAgICAgICAgICIwLjAwMTk0NywgMC4wMDE5NTcsIDAuMDAxOTc0LCAwLjAwMTk3OCwgMC4wMDE5ODEsIDAuMDAxOTgzLCAwLjAwMTk4MyIsIFwKLSAgICAgICAgICAiMC4wMDE5OTksIDAuMDAyMDA3LCAwLjAwMjAyMywgMC4wMDIwMjcsIDAuMDAyMDMsIDAuMDAyMDMyLCAwLjAwMjAzMyIsIFwKLSAgICAgICAgICAiMC4wMDIwNzgsIDAuMDAyMDgxLCAwLjAwMjA5MywgMC4wMDIwOTcsIDAuMDAyMSwgMC4wMDIxMDMsIDAuMDAyMTAzIiwgXAotICAgICAgICAgICIwLjAwMjIyMSwgMC4wMDIyMjIsIDAuMDAyMjE5LCAwLjAwMjIzNywgMC4wMDIyNCwgMC4wMDIyNDIsIDAuMDAyMjI5IiwgXAotICAgICAgICAgICIwLjAwMjM1MywgMC4wMDIzNSwgMC4wMDIzNTUsIDAuMDAyMzU4LCAwLjAwMjM2MSwgMC4wMDIzNjMsIDAuMDAyMzY0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0MDI5LCAwLjAwNDAzMSwgMC4wMDQwMzUsIDAuMDA0MDM1LCAwLjAwNDAzNiwgMC4wMDQwMzYsIDAuMDA0MDM2IiwgXAotICAgICAgICAgICIwLjAwMzk5NywgMC4wMDQsIDAuMDA0MDA3LCAwLjAwNDAwOCwgMC4wMDQwMDksIDAuMDA0MDEsIDAuMDA0MDEiLCBcCi0gICAgICAgICAgIjAuMDAzOTkxLCAwLjAwMzk5NCwgMC4wMDQwMDIsIDAuMDA0MDAzLCAwLjAwNDAwNCwgMC4wMDQwMDUsIDAuMDA0MDA1IiwgXAotICAgICAgICAgICIwLjAwNDAxMSwgMC4wMDQwMTEsIDAuMDA0MDE0LCAwLjAwNDAxNSwgMC4wMDQwMTYsIDAuMDA0MDE3LCAwLjAwNDAxNyIsIFwKLSAgICAgICAgICAiMC4wMDQwMzcsIDAuMDA0MDM2LCAwLjAwNDA0LCAwLjAwNDA0MSwgMC4wMDQwNDIsIDAuMDA0MDQyLCAwLjAwNDA0MyIsIFwKLSAgICAgICAgICAiMC4wMDQxMTcsIDAuMDA0MTEzLCAwLjAwNDExLCAwLjAwNDExLCAwLjAwNDExLCAwLjAwNDExLCAwLjAwNDExIiwgXAotICAgICAgICAgICIwLjAwNDIyLCAwLjAwNDIwOCwgMC4wMDQxOTcsIDAuMDA0MTk1LCAwLjAwNDE5NCwgMC4wMDQxOTIsIDAuMDA0MTkyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxNzMsIDAuMDAxNzM3LCAwLjAwMTc1LCAwLjAwMTc1MywgMC4wMDE3NSwgMC4wMDE3NTQsIDAuMDAxNzUxIiwgXAotICAgICAgICAgICIwLjAwMTcyMiwgMC4wMDE3MzEsIDAuMDAxNzQ0LCAwLjAwMTc0NiwgMC4wMDE3NDksIDAuMDAxNzUxLCAwLjAwMTc1IiwgXAotICAgICAgICAgICIwLjAwMTc1LCAwLjAwMTc1OSwgMC4wMDE3NzYsIDAuMDAxNzc5LCAwLjAwMTc4MSwgMC4wMDE3ODMsIDAuMDAxNzg0IiwgXAotICAgICAgICAgICIwLjAwMTc5NywgMC4wMDE4MDQsIDAuMDAxODIxLCAwLjAwMTgyNCwgMC4wMDE4MjcsIDAuMDAxODI5LCAwLjAwMTgyOSIsIFwKLSAgICAgICAgICAiMC4wMDE4NzMsIDAuMDAxODc2LCAwLjAwMTg5NywgMC4wMDE4OTMsIDAuMDAxODk1LCAwLjAwMTkwNiwgMC4wMDE4OTgiLCBcCi0gICAgICAgICAgIjAuMDAxOTk3LCAwLjAwMjAwMiwgMC4wMDIwMSwgMC4wMDIwMjUsIDAuMDAyMDI4LCAwLjAwMjAyMiwgMC4wMDIwMzIiLCBcCi0gICAgICAgICAgIjAuMDAyMTIxLCAwLjAwMjEyNiwgMC4wMDIxMzcsIDAuMDAyMTQyLCAwLjAwMjE0NiwgMC4wMDIxNDgsIDAuMDAyMTQ4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzNzc2LCAwLjAwMzc3OSwgMC4wMDM3ODUsIDAuMDAzNzg2LCAwLjAwMzc4NywgMC4wMDM3ODgsIDAuMDAzNzg4IiwgXAotICAgICAgICAgICIwLjAwMzc0MywgMC4wMDM3NDcsIDAuMDAzNzU3LCAwLjAwMzc2LCAwLjAwMzc2MSwgMC4wMDM3NjMsIDAuMDAzNzYzIiwgXAotICAgICAgICAgICIwLjAwMzc1MiwgMC4wMDM3NTUsIDAuMDAzNzYzLCAwLjAwMzc2NSwgMC4wMDM3NjYsIDAuMDAzNzY3LCAwLjAwMzc2OCIsIFwKLSAgICAgICAgICAiMC4wMDM3NzksIDAuMDAzNzgsIDAuMDAzNzg4LCAwLjAwMzc5MSwgMC4wMDM3OTMsIDAuMDAzNzk0LCAwLjAwMzc5NCIsIFwKLSAgICAgICAgICAiMC4wMDM4NDEsIDAuMDAzODM2LCAwLjAwMzgzNSwgMC4wMDM4MzcsIDAuMDAzODM3LCAwLjAwMzgzNywgMC4wMDM4MzgiLCBcCi0gICAgICAgICAgIjAuMDAzOTI2LCAwLjAwMzkyMywgMC4wMDM5MjQsIDAuMDAzOTI1LCAwLjAwMzkyNywgMC4wMDM5MjgsIDAuMDAzOTI4IiwgXAotICAgICAgICAgICIwLjAwNDA2NCwgMC4wMDQwMzgsIDAuMDA0MDI5LCAwLjAwNDAyOCwgMC4wMDQwMjcsIDAuMDA0MDI4LCAwLjAwNDAyOCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkQiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTU0NCwgMC4wMDE1NSwgMC4wMDE1NTksIDAuMDAxNTYxLCAwLjAwMTU2MSwgMC4wMDE1NjIsIDAuMDAxNTYyIiwgXAotICAgICAgICAgICIwLjAwMTU0MSwgMC4wMDE1NDksIDAuMDAxNTYxLCAwLjAwMTU2MywgMC4wMDE1NjQsIDAuMDAxNTY1LCAwLjAwMTU2NSIsIFwKLSAgICAgICAgICAiMC4wMDE1NjYsIDAuMDAxNTc0LCAwLjAwMTU5MSwgMC4wMDE1OTQsIDAuMDAxNTk1LCAwLjAwMTU5NywgMC4wMDE1OTYiLCBcCi0gICAgICAgICAgIjAuMDAxNjI3LCAwLjAwMTYzMywgMC4wMDE2NDcsIDAuMDAxNjUxLCAwLjAwMTY1MywgMC4wMDE2NTUsIDAuMDAxNjU1IiwgXAotICAgICAgICAgICIwLjAwMTcwMiwgMC4wMDE2OTksIDAuMDAxNzE3LCAwLjAwMTcyMSwgMC4wMDE3MjMsIDAuMDAxNzIsIDAuMDAxNzI1IiwgXAotICAgICAgICAgICIwLjAwMTgxNCwgMC4wMDE4MjMsIDAuMDAxODM5LCAwLjAwMTgzNiwgMC4wMDE4NDYsIDAuMDAxODQ5LCAwLjAwMTg0MiIsIFwKLSAgICAgICAgICAiMC4wMDE5NDcsIDAuMDAxOTQ4LCAwLjAwMTk0NywgMC4wMDE5NTIsIDAuMDAxOTU2LCAwLjAwMTk3LCAwLjAwMTk3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzNTA4LCAwLjAwMzUxNCwgMC4wMDM1MjYsIDAuMDAzNTI5LCAwLjAwMzUzMSwgMC4wMDM1MzIsIDAuMDAzNTMzIiwgXAotICAgICAgICAgICIwLjAwMzQ5MiwgMC4wMDM0OTgsIDAuMDAzNTExLCAwLjAwMzUxNCwgMC4wMDM1MTcsIDAuMDAzNTE4LCAwLjAwMzUxOSIsIFwKLSAgICAgICAgICAiMC4wMDM1NDgsIDAuMDAzNTUxLCAwLjAwMzU2MiwgMC4wMDM1NjUsIDAuMDAzNTY3LCAwLjAwMzU2OSwgMC4wMDM1NjkiLCBcCi0gICAgICAgICAgIjAuMDAzNjI1LCAwLjAwMzYyMywgMC4wMDM2MjgsIDAuMDAzNjMsIDAuMDAzNjMyLCAwLjAwMzYzNCwgMC4wMDM2MzQiLCBcCi0gICAgICAgICAgIjAuMDAzNywgMC4wMDM2OTcsIDAuMDAzNzAxLCAwLjAwMzcwMywgMC4wMDM3MDUsIDAuMDAzNzA3LCAwLjAwMzcwNyIsIFwKLSAgICAgICAgICAiMC4wMDM4NSwgMC4wMDM4NCwgMC4wMDM4MzIsIDAuMDAzODMzLCAwLjAwMzgzNCwgMC4wMDM4MzUsIDAuMDAzODM1IiwgXAotICAgICAgICAgICIwLjAwNDAxMywgMC4wMDM5OTIsIDAuMDAzOTY0LCAwLjAwMzk2MSwgMC4wMDM5NTksIDAuMDAzOTU3LCAwLjAwMzk1NyIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBTREZGSFFYNCAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoU0RGRkhRWDQpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMS40NzAxNTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBmZiAoTjMwLFFCSU5UKSB7Ci0gICAgbmV4dF9zdGF0ZSA6ICIoKFNFIFNJKSArICghU0UgRCkpIjsKLSAgICBjbG9ja2VkX29uIDogIkNLIjsKLSAgfQotICBwaW4oQ0spICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY0ODYyODsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2NDg2Mjg7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjQ4NDM4OwotICAgIGNsb2NrIDogdHJ1ZTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDQyNDYsIDAuMDA0MjM3LCAwLjAwNDMxNSwgMC4wMDQ0LCAwLjAwNDUxOCwgMC4wMDQ3NTQsIDAuMDA0OTQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDkzOTUsIDAuMDA5MzgyLCAwLjAwOTQ3MiwgMC4wMDk1OTgsIDAuMDA5NzYyLCAwLjAwOTkzOCwgMC4wMTAxNDkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFEJiFTRSYhU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1NFX0VRXzBfQU5fU0lfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjA4MzA5MSwgMC4wOTEzNjUsIDAuMTAwNjIzLCAwLjEwODI0OSwgMC4xMTQzMDIsIDAuMTIyMjAzLCAwLjEyODM2NyIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDY0NDM4LCAwLjA3MjU0NCwgMC4wODE4ODksIDAuMDg5MDc2LCAwLjA5NDk3LCAwLjEwMjY1MywgMC4xMDgyMDgiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEQpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDkzNDIxMTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA5MzIyNTg7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwOTM0MjExOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNDI0NCwgMC4wMDQxOTYsIDAuMDA0MjE3LCAwLjAwNDI3NCwgMC4wMDQzNTEsIDAuMDA0NTIxLCAwLjAwNDY4MiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNzEwMSwgMC4wMDcwNzIsIDAuMDA3MSwgMC4wMDcxNjMsIDAuMDA3MjI3LCAwLjAwNzM4NSwgMC4wMDc1NTciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIVNFIjsKLSAgICAgIHNkZl9jb25kIDogIlNFID09IDEnYjAiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAyNSwgLTAuMDIsIC0wLjAxMzc1LCAtMC4wMTM3NSwgLTAuMDA3NSwgLTAuMDAzNzUsIC0wLjAwMTI1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwODc1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDMxMjUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAyNSwgLTAuMDIxMjUsIC0wLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wMzc1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDMxMjUsIC0wLjAyNzUsIC0wLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjA0Mzc1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDM3NSwgLTAuMDMzNzUsIC0wLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wNTg3NSwgLTAuMDUzNzUsIC0wLjA0NzUsIC0wLjA0NzUsIC0wLjA0MTI1LCAtMC4wMzc1LCAtMC4wMzUiLCBcCi0gICAgICAgICAgIi0wLjA2NzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDUsIC0wLjA0NjI1LCAtMC4wNDM3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAsIDAuMDA1LCAwLjAxMTI1LCAwLjAxNzUsIDAuMDIzNzUsIDAuMDMzNzUsIDAuMDM2MjUiLCBcCi0gICAgICAgICAgIi0wLjAwNSwgMCwgMC4wMDYyNSwgMC4wMTI1LCAwLjAxODc1LCAwLjAyODc1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wMTEyNSwgLTAuMDA2MjUsIDAsIDAuMDA2MjUsIDAuMDEyNSwgMC4wMjI1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDE3NSwgLTAuMDEyNSwgMCwgMCwgMC4wMDYyNSwgMC4wMTYyNSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLCAwLjAwNjI1LCAwLjAxLCAwLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjAyNzUsIC0wLjAyMjUsIC0wLjAxLCAtMC4wMDM3NSwgLTAuMDAzNzUsIDAuMDA2MjUsIDAuMDA4NzUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgLTAuMDAyNSwgMC4wMDYyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIVNFIjsKLSAgICAgIHNkZl9jb25kIDogIlNFID09IDEnYjAiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0Mzc1LCAwLjAzODc1LCAwLjAzMjUsIDAuMDI2MjUsIDAuMDI2MjUsIDAuMDIyNSwgMC4wMiIsIFwKLSAgICAgICAgICAiMC4wNTUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyNzUsIDAuMDI1IiwgXAotICAgICAgICAgICIwLjA2MTI1LCAwLjA1LCAwLjA0Mzc1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDMzNzUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMDY3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1LCAwLjA0Mzc1LCAwLjA0LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIjAuMDczNzUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNSwgMC4wNDYyNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4wODM3NSwgMC4wNzI1LCAwLjA2NjI1LCAwLjA2NjI1LCAwLjA2LCAwLjA1NjI1LCAwLjA1Mzc1IiwgXAotICAgICAgICAgICIwLjA4NjI1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjg3NSwgMC4wNjUsIDAuMDU2MjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzEyNSwgMC4wMiwgMC4wMTM3NSwgMC4wMDc1LCAwLjAwMTI1LCAtMC4wMDg3NSwgLTAuMDExMjUiLCBcCi0gICAgICAgICAgIjAuMDM2MjUsIDAuMDI1LCAwLjAxODc1LCAwLjAxMjUsIDAuMDA2MjUsIC0wLjAwMzc1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiMC4wNDI1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMTg3NSwgMC4wMTI1LCAwLjAwMjUsIDAiLCBcCi0gICAgICAgICAgIjAuMDQ4NzUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMjUsIDAuMDE4NzUsIDAuMDA4NzUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMDU1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDI1LCAwLjAxNSwgMC4wMTI1IiwgXAotICAgICAgICAgICIwLjA1ODc1LCAwLjA1Mzc1LCAwLjA0MTI1LCAwLjAzNSwgMC4wMjg3NSwgMC4wMjUsIDAuMDE2MjUiLCBcCi0gICAgICAgICAgIjAuMDY3NSwgMC4wNTYyNSwgMC4wNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAyNzUsIDAuMDI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihRKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDEuMzMxNjY7Ci0gICAgZnVuY3Rpb24gOiAiTjMwIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBub25fdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJpc2luZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3MjMsIDAuMTI4MDQ4LCAwLjE4MzI2MywgMC4yMjI2OTEsIDAuMjg1ODI4LCAwLjM0MTA4NSwgMC40MTk5NiIsIFwKLSAgICAgICAgICAiMC4wODA1NSwgMC4xMzYzLCAwLjE5MTUxMywgMC4yMzA5NzEsIDAuMjk0MTE3LCAwLjM0OTMzMSwgMC40MjgyMjgiLCBcCi0gICAgICAgICAgIjAuMDg5NzcxLCAwLjE0NTUyNiwgMC4yMDA3MjksIDAuMjQwMTc0LCAwLjMwMzMzNCwgMC4zNTg1NSwgMC40Mzc0MjYiLCBcCi0gICAgICAgICAgIjAuMDk3MzAxLCAwLjE1MzA1OCwgMC4yMDgyNzIsIDAuMjQ3NzI1LCAwLjMxMDg3MiwgMC4zNjYwODUsIDAuNDQ0OTgxIiwgXAotICAgICAgICAgICIwLjEwMzI2MiwgMC4xNTkwMTksIDAuMjE0MjMxLCAwLjI1MzY4NSwgMC4zMTY4MzIsIDAuMzcyMDQ0LCAwLjQ1MDkxOCIsIFwKLSAgICAgICAgICAiMC4xMTEwNDIsIDAuMTY2ODAzLCAwLjIyMjAzMiwgMC4yNjE0ODksIDAuMzI0NTkxLCAwLjM3OTg0NSwgMC40NTg3MjciLCBcCi0gICAgICAgICAgIjAuMTE3MTIxLCAwLjE3Mjg4NiwgMC4yMjgxMDIsIDAuMjY3NTM5LCAwLjMzMDY4OSwgMC4zODU4OTEsIDAuNDY0NzEiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjQwNTIsIDAuMTM5MzU2LCAwLjI1NzI0OCwgMC4zNDEzMDksIDAuNDc2NTA5LCAwLjU5NDUzOSwgMC43NjMxMTgiLCBcCi0gICAgICAgICAgIjAuMDI0MDQ1LCAwLjEzOTI2MywgMC4yNTcyNiwgMC4zNDEyMDUsIDAuNDc2NTI0LCAwLjU5NDUzOCwgMC43NjMxMTIiLCBcCi0gICAgICAgICAgIjAuMDI0MDQ5LCAwLjEzOTM1NSwgMC4yNTcyMjEsIDAuMzQxMjk2LCAwLjQ3NjUxNCwgMC41OTQ1MzcsIDAuNzYzMTE0IiwgXAotICAgICAgICAgICIwLjAyNDA0NiwgMC4xMzkzNjksIDAuMjU3MjYxLCAwLjM0MTIwMiwgMC40NzY1MDgsIDAuNTk0NTE3LCAwLjc2MzEwNSIsIFwKLSAgICAgICAgICAiMC4wMjQwODQsIDAuMTM5MzA2LCAwLjI1NzI1OSwgMC4zNDEyMTEsIDAuNDc2NDU4LCAwLjU5NDQ2NiwgMC43NjMwNTIiLCBcCi0gICAgICAgICAgIjAuMDI0MDU2LCAwLjEzOTM0NCwgMC4yNTcyMzMsIDAuMzQxNTU3LCAwLjQ3NjQxMywgMC41OTQ0MjgsIDAuNzYxOTQ1IiwgXAotICAgICAgICAgICIwLjAyNDA3OSwgMC4xMzkyOSwgMC4yNTczMjMsIDAuMzQxNTA5LCAwLjQ3NjQzLCAwLjU5NDQwOSwgMC43NjI0NDEiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODMwOTEsIDAuMTM3NjIyLCAwLjE5MTQ1MSwgMC4yMjk4NjYsIDAuMjkxMzYsIDAuMzQ1MTQ4LCAwLjQyMiIsIFwKLSAgICAgICAgICAiMC4wOTEzNjYsIDAuMTQ1OTAzLCAwLjE5OTcxMywgMC4yMzgxODQsIDAuMjk5NjQsIDAuMzUzNDcxLCAwLjQzMDI2OSIsIFwKLSAgICAgICAgICAiMC4xMDA2MjMsIDAuMTU1MTU2LCAwLjIwODk2NSwgMC4yNDc0MzYsIDAuMzA4OTA2LCAwLjM2MjcyNCwgMC40Mzk1MzYiLCBcCi0gICAgICAgICAgIjAuMTA4MjUyLCAwLjE2Mjc4NSwgMC4yMTY1OTgsIDAuMjU1MDYxLCAwLjMxNjUyMywgMC4zNzAzMDYsIDAuNDQ3MTU1IiwgXAotICAgICAgICAgICIwLjExNDMwNCwgMC4xNjg4NDIsIDAuMjIyNjQ4LCAwLjI2MTExNywgMC4zMjI1OTYsIDAuMzc2MzczLCAwLjQ1MzIzNiIsIFwKLSAgICAgICAgICAiMC4xMjIyMDQsIDAuMTc2NzUxLCAwLjIzMDU1OCwgMC4yNjg5OTYsIDAuMzMwNDc2LCAwLjM4NDMwOCwgMC40NjExMDYiLCBcCi0gICAgICAgICAgIjAuMTI4Mzc1LCAwLjE4MjkxMSwgMC4yMzY3MTMsIDAuMjc1MTc3LCAwLjMzNjY2MywgMC4zOTA0MzksIDAuNDY3MzIyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDIyODU5LCAwLjEzMjQxMSwgMC4yNDQyMjUsIDAuMzI0MTM1LCAwLjQ1MjE5OSwgMC41NjQxNjgsIDAuNzIzNDAyIiwgXAotICAgICAgICAgICIwLjAyMjg2MiwgMC4xMzIzNzYsIDAuMjQ0MTQsIDAuMzIzNTczLCAwLjQ1MjIxNCwgMC41NjMxNSwgMC43MjQyMiIsIFwKLSAgICAgICAgICAiMC4wMjI4NTcsIDAuMTMyMzgxLCAwLjI0NDEyNiwgMC4zMjM2MzQsIDAuNDUyMjYxLCAwLjU2NDMyLCAwLjcyNDI3OCIsIFwKLSAgICAgICAgICAiMC4wMjI4NTQsIDAuMTMyMzk4LCAwLjI0Mzg5MywgMC4zMjM1NTksIDAuNDUyMjExLCAwLjU2NDE4NSwgMC43MjMzNzQiLCBcCi0gICAgICAgICAgIjAuMDIyODU4LCAwLjEzMjM3NiwgMC4yNDQxMzMsIDAuMzIzNDQ2LCAwLjQ1MjI5LCAwLjU2MzYyOSwgMC43MjQzNTMiLCBcCi0gICAgICAgICAgIjAuMDIyODUzLCAwLjEzMjM3NSwgMC4yNDM5MDEsIDAuMzI0MTg0LCAwLjQ1MjE5NiwgMC41NjQzNCwgMC43MjQwOSIsIFwKLSAgICAgICAgICAiMC4wMjI4NSwgMC4xMzIyMzcsIDAuMjQ0MTE1LCAwLjMyNDEwMiwgMC40NTIyNywgMC41NjM0ODUsIDAuNzI0Mzk0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEzMDc5LCAwLjAxMzE0MywgMC4wMTMxMTcsIDAuMDEzMTA3LCAwLjAxMzA5OSwgMC4wMTMwODksIDAuMDEzMDg0IiwgXAotICAgICAgICAgICIwLjAxMzA1NywgMC4wMTMxMzIsIDAuMDEzMTA4LCAwLjAxMzA5NywgMC4wMTMwODQsIDAuMDEzMDc3LCAwLjAxMzA3IiwgXAotICAgICAgICAgICIwLjAxMzEzNiwgMC4wMTMyMDksIDAuMDEzMTg0LCAwLjAxMzE3NSwgMC4wMTMxNjgsIDAuMDEzMTU1LCAwLjAxMzE0OSIsIFwKLSAgICAgICAgICAiMC4wMTMyMjgsIDAuMDEzMzEzLCAwLjAxMzI4OSwgMC4wMTMyOCwgMC4wMTMyNjQsIDAuMDEzMjU2LCAwLjAxMzI0NyIsIFwKLSAgICAgICAgICAiMC4wMTMzNzEsIDAuMDEzNDU5LCAwLjAxMzQzNywgMC4wMTM0MjUsIDAuMDEzNDExLCAwLjAxMzQwMiwgMC4wMTM0IiwgXAotICAgICAgICAgICIwLjAxMzYwMywgMC4wMTM2ODcsIDAuMDEzNjY3LCAwLjAxMzY1NiwgMC4wMTM2MzYsIDAuMDEzNjI5LCAwLjAxMzYyNCIsIFwKLSAgICAgICAgICAiMC4wMTM3ODUsIDAuMDEzODgyLCAwLjAxMzg2LCAwLjAxMzg0LCAwLjAxMzgwNCwgMC4wMTM4MTQsIDAuMDEzODA3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTM2MDYsIDAuMDEzODE0LCAwLjAxMzg0NSwgMC4wMTM4NTUsIDAuMDEzODY0LCAwLjAxMzg2OSwgMC4wMTM4NzIiLCBcCi0gICAgICAgICAgIjAuMDEzNjA3LCAwLjAxMzgxNywgMC4wMTM4NDgsIDAuMDEzODU4LCAwLjAxMzg2NywgMC4wMTM4NzEsIDAuMDEzODc2IiwgXAotICAgICAgICAgICIwLjAxMzcxMSwgMC4wMTM5MjEsIDAuMDEzOTUxLCAwLjAxMzk2MSwgMC4wMTM5NjksIDAuMDEzOTc0LCAwLjAxMzk3OSIsIFwKLSAgICAgICAgICAiMC4wMTM4MTUsIDAuMDE0MDI0LCAwLjAxNDA1NSwgMC4wMTQwNjMsIDAuMDE0MDczLCAwLjAxNDA3NywgMC4wMTQwODEiLCBcCi0gICAgICAgICAgIjAuMDEzOTY0LCAwLjAxNDE3NCwgMC4wMTQyMDQsIDAuMDE0MjEzLCAwLjAxNDIyMiwgMC4wMTQyMjYsIDAuMDE0MjMiLCBcCi0gICAgICAgICAgIjAuMDE0MjExLCAwLjAxNDQxOSwgMC4wMTQ0NDYsIDAuMDE0NDU2LCAwLjAxNDQ2MywgMC4wMTQ0NjcsIDAuMDE0NDciLCBcCi0gICAgICAgICAgIjAuMDE0MzksIDAuMDE0NTk5LCAwLjAxNDY2LCAwLjAxNDY2NiwgMC4wMTQ2NzIsIDAuMDE0NjQ0LCAwLjAxNDY3OCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oU0UpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTY2NzM0OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTY2NjY7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNjY3MzQ7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA2NjUsIDAuMDA2NjQ5LCAwLjAwNjcyOCwgMC4wMDY4MywgMC4wMDY5NTUsIDAuMDA3MTYzLCAwLjAwNzM2MyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwODI5NywgMC4wMDgzMTMsIDAuMDA4NDQyLCAwLjAwODY0NywgMC4wMDg5LCAwLjAwOTMxNiwgMC4wMDk3MDYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUQmU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1NJX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDE4NzUsIC0wLjAxMzc1LCAtMC4wMDc1LCAtMC4wMDc1LCAtMC4wMDEyNSwgMC4wMDI1LCAwLjAwNSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAxMjUsIC0wLjAwODc1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxNSwgLTAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDM3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAzMTI1LCAtMC4wMjEyNSwgLTAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wNDM3NSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzNzUsIC0wLjAzMzc1LCAtMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjA1ODc1LCAtMC4wNTM3NSwgLTAuMDQ3NSwgLTAuMDQ3NSwgLTAuMDQxMjUsIC0wLjAzNzUsIC0wLjAzNSIsIFwKLSAgICAgICAgICAiLTAuMDY3NSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNSwgLTAuMDQ2MjUsIC0wLjA0Mzc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMCwgMC4wMTEyNSwgMC4wMTc1LCAwLjAyMzc1LCAwLjAzLCAwLjAzMzc1LCAwLjA0MjUiLCBcCi0gICAgICAgICAgIi0wLjAwNSwgMC4wMDYyNSwgMC4wMTI1LCAwLjAxODc1LCAwLjAyNSwgMC4wMjg3NSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDExMjUsIC0wLjAwNjI1LCAwLjAwNjI1LCAwLjAxMjUsIDAuMDEyNSwgMC4wMjI1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDE3NSwgLTAuMDEyNSwgMCwgMC4wMDYyNSwgMC4wMDYyNSwgMC4wMTYyNSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLCAwLCAwLjAxLCAwLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjAyNzUsIC0wLjAyMjUsIC0wLjAxNjI1LCAtMC4wMSwgLTAuMDAzNzUsIDAsIDAuMDA4NzUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgLTAuMDAyNSwgMCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJEJiFTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzFfQU5fU0lfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMDYyNSwgLTAuMDAxMjUsIDAuMDA1LCAwLjAxMTI1LCAwLjAxNzUsIDAuMDI3NSwgMC4wMyIsIFwKLSAgICAgICAgICAiLTAuMDE3NSwgLTAuMDA2MjUsIDAsIDAuMDA2MjUsIDAuMDEyNSwgMC4wMTYyNSwgMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMCwgMC4wMDYyNSwgMC4wMSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMCwgMC4wMDM3NSwgMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDI1LCAtMC4wMTI1LCAtMC4wMDYyNSwgLTAuMDA2MjUsIDAuMDAzNzUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjAzMzc1LCAtMC4wMjg3NSwgLTAuMDIyNSwgLTAuMDE2MjUsIC0wLjAxLCAwLCAwLjAwMjUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDg3NSwgMCIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAzMTI1LCAtMC4wMjYyNSwgLTAuMDI2MjUsIC0wLjAyLCAtMC4wMTM3NSwgLTAuMDEsIC0wLjAwNzUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAyNSwgLTAuMDIxMjUsIC0wLjAxODc1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMzEyNSwgLTAuMDI3NSwgLTAuMDI1IiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA0Mzc1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDM3NSwgLTAuMDMzNzUsIC0wLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzM3NSwgLTAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjA1ODc1LCAtMC4wNTM3NSwgLTAuMDQ3NSwgLTAuMDQ3NSwgLTAuMDQxMjUsIC0wLjAzNzUsIC0wLjAzNSIsIFwKLSAgICAgICAgICAiLTAuMDYxMjUsIC0wLjA1NjI1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjA1LCAtMC4wNCwgLTAuMDM3NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUQmU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1NJX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQzNzUsIDAuMDMyNSwgMC4wMjYyNSwgMC4wMjYyNSwgMC4wMiwgMC4wMTYyNSwgMC4wMTM3NSIsIFwKLSAgICAgICAgICAiMC4wNDg3NSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMjEyNSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4wNjEyNSwgMC4wNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzNzUsIDAuMDMzNzUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMDY3NSwgMC4wNjI1LCAwLjA1LCAwLjA1LCAwLjA0Mzc1LCAwLjA0LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIjAuMDczNzUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNSwgMC4wNDYyNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4wODM3NSwgMC4wNzg3NSwgMC4wNzI1LCAwLjA2NjI1LCAwLjA2LCAwLjA1NjI1LCAwLjA1Mzc1IiwgXAotICAgICAgICAgICIwLjA5MjUsIDAuMDgxMjUsIDAuMDc1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjUsIDAuMDYyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyNSwgMC4wMTM3NSwgMC4wMDc1LCAwLjAwMTI1LCAtMC4wMDUsIC0wLjAxNSwgLTAuMDE3NSIsIFwKLSAgICAgICAgICAiMC4wMywgMC4wMjUsIDAuMDEyNSwgMC4wMDYyNSwgMCwgLTAuMDAzNzUsIC0wLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMDQyNSwgMC4wMzEyNSwgMC4wMjUsIDAuMDE4NzUsIDAuMDEyNSwgMC4wMDI1LCAwIiwgXAotICAgICAgICAgICIwLjA0ODc1LCAwLjA0Mzc1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMTg3NSwgMC4wMDg3NSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiMC4wNTUsIDAuMDUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMjUsIDAuMDE1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMDY1LCAwLjA1Mzc1LCAwLjA0NzUsIDAuMDQxMjUsIDAuMDM1LCAwLjAyNSwgMC4wMjI1IiwgXAotICAgICAgICAgICIwLjA3Mzc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzM3NSwgMC4wMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIkQmIVNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMV9BTl9TSV9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzNzUsIDAuMDI2MjUsIDAuMDIsIDAuMDEzNzUsIDAuMDA3NSwgLTAuMDAyNSwgLTAuMDA1IiwgXAotICAgICAgICAgICIwLjA0MjUsIDAuMDM3NSwgMC4wMjUsIDAuMDE4NzUsIDAuMDEyNSwgMC4wMDg3NSwgMCIsIFwKLSAgICAgICAgICAiMC4wNDg3NSwgMC4wNDM3NSwgMC4wMzEyNSwgMC4wMjUsIDAuMDE4NzUsIDAuMDE1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICIwLjA1NSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMTUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4wNjEyNSwgMC4wNSwgMC4wNDM3NSwgMC4wMzEyNSwgMC4wMzEyNSwgMC4wMjEyNSwgMC4wMTI1IiwgXAotICAgICAgICAgICIwLjA2NSwgMC4wNTM3NSwgMC4wNDc1LCAwLjA0MTI1LCAwLjAzNSwgMC4wMjUsIDAuMDIyNSIsIFwKLSAgICAgICAgICAiMC4wNjc1LCAwLjA2MjUsIDAuMDUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMjc1LCAwLjAyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1NjI1LCAwLjA0NSwgMC4wMzg3NSwgMC4wMzg3NSwgMC4wMzI1LCAwLjAyODc1LCAwLjAyNjI1IiwgXAotICAgICAgICAgICIwLjA2MTI1LCAwLjA1NjI1LCAwLjA1LCAwLjA0Mzc1LCAwLjA0Mzc1LCAwLjAzMzc1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNSwgMC4wNSwgMC4wNCwgMC4wMzc1IiwgXAotICAgICAgICAgICIwLjA3Mzc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDU2MjUsIDAuMDUsIDAuMDQ2MjUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMDczNzUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNTYyNSwgMC4wNTI1LCAwLjA1IiwgXAotICAgICAgICAgICIwLjA4Mzc1LCAwLjA3MjUsIDAuMDY2MjUsIDAuMDY2MjUsIDAuMDYsIDAuMDU2MjUsIDAuMDUzNzUiLCBcCi0gICAgICAgICAgIjAuMDg2MjUsIDAuMDc1LCAwLjA2ODc1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDU4NzUsIDAuMDU2MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFNJKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA5MjgyNTg7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwOTI1ODU7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwOTI4MjU4OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzg5NSwgMC4wMDM4NTIsIDAuMDAzODc1LCAwLjAwMzk0MiwgMC4wMDQwMjQsIDAuMDA0MTg3LCAwLjAwNDM3OSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNzQyNCwgMC4wMDczOTYsIDAuMDA3NDIsIDAuMDA3NDgsIDAuMDA3NTQ3LCAwLjAwNzY5NCwgMC4wMDc4NjciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiU0UiOwotICAgICAgc2RmX2NvbmQgOiAiU0UgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDI1LCAtMC4wMiwgLTAuMDEzNzUsIC0wLjAxMzc1LCAtMC4wMDc1LCAtMC4wMDM3NSwgLTAuMDAxMjUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA4NzUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDMxMjUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAyNSwgLTAuMDE1LCAtMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDM3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAzMTI1LCAtMC4wMjc1LCAtMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wNDM3NSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzNzUsIC0wLjAzMzc1LCAtMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjA1ODc1LCAtMC4wNTM3NSwgLTAuMDQ3NSwgLTAuMDQ3NSwgLTAuMDQxMjUsIC0wLjAzNzUsIC0wLjAzNSIsIFwKLSAgICAgICAgICAiLTAuMDY3NSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNSwgLTAuMDQ2MjUsIC0wLjA0Mzc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMCwgMC4wMDUsIDAuMDExMjUsIDAuMDE3NSwgMC4wMjM3NSwgMC4wMzM3NSwgMC4wMzYyNSIsIFwKLSAgICAgICAgICAiLTAuMDA1LCAwLCAwLjAwNjI1LCAwLjAxMjUsIDAuMDE4NzUsIDAuMDIyNSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDExMjUsIC0wLjAwNjI1LCAwLCAwLjAwNjI1LCAwLjAxMjUsIDAuMDE2MjUsIDAuMDI1IiwgXAotICAgICAgICAgICItMC4wMTc1LCAtMC4wMTI1LCAwLCAwLCAwLjAwNjI1LCAwLjAxNjI1LCAwLjAxODc1IiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAsIDAuMDA2MjUsIDAuMDEsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDI3NSwgLTAuMDIyNSwgLTAuMDEsIC0wLjAwMzc1LCAtMC4wMDM3NSwgMC4wMDYyNSwgMC4wMDg3NSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAtMC4wMDI1LCAwLjAwNjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJTRSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDM3NSwgMC4wMzg3NSwgMC4wMzI1LCAwLjAyNjI1LCAwLjAyNjI1LCAwLjAyMjUsIDAuMDEzNzUiLCBcCi0gICAgICAgICAgIjAuMDU1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDMxMjUsIDAuMDI3NSwgMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMDYxMjUsIDAuMDUsIDAuMDQzNzUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzM3NSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4wNjc1LCAwLjA1NjI1LCAwLjA1LCAwLjA1LCAwLjA0Mzc1LCAwLjA0LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIjAuMDczNzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNTYyNSwgMC4wNSwgMC4wNDYyNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4wODM3NSwgMC4wNzI1LCAwLjA2NjI1LCAwLjA2NjI1LCAwLjA2LCAwLjA1NjI1LCAwLjA1Mzc1IiwgXAotICAgICAgICAgICIwLjA4NjI1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjg3NSwgMC4wNjUsIDAuMDU2MjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzEyNSwgMC4wMiwgMC4wMTM3NSwgMC4wMDc1LCAwLjAwMTI1LCAtMC4wMDg3NSwgLTAuMDExMjUiLCBcCi0gICAgICAgICAgIjAuMDM2MjUsIDAuMDI1LCAwLjAxODc1LCAwLjAxMjUsIDAuMDA2MjUsIC0wLjAwMzc1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiMC4wNDI1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMTg3NSwgMC4wMTI1LCAwLjAwMjUsIDAiLCBcCi0gICAgICAgICAgIjAuMDQ4NzUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMjUsIDAuMDE4NzUsIDAuMDA4NzUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMDU1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDI1LCAwLjAxNSwgMC4wMTI1IiwgXAotICAgICAgICAgICIwLjA1ODc1LCAwLjA1Mzc1LCAwLjA0MTI1LCAwLjAzNSwgMC4wMjg3NSwgMC4wMjUsIDAuMDE2MjUiLCBcCi0gICAgICAgICAgIjAuMDY3NSwgMC4wNTYyNSwgMC4wNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAyNzUsIDAuMDI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBTREZGTlNSWDEgKgotICogLS0tLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChTREZGTlNSWDEpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMS4zMDE1NjsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBmZiAoTjM1LFFCSU5UKSB7Ci0gICAgbmV4dF9zdGF0ZSA6ICIoKFNFIFNJKSArICghU0UgRCkpIjsKLSAgICBjbG9ja2VkX29uIDogIighQ0tOKSI7Ci0gICAgY2xlYXIgOiAiKCFSTikiOwotICAgIHByZXNldCA6ICIoIVNOKSI7Ci0gICAgY2xlYXJfcHJlc2V0X3ZhcjEgOiBIOwotICAgIGNsZWFyX3ByZXNldF92YXIyIDogTDsKLSAgfQotICBwaW4oQ0tOKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2NjE1NDY7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjYxNDIzOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDY2MTU0NjsKLSAgICBjbG9jayA6IHRydWU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA4MzIyLCAwLjAwODMzOSwgMC4wMDg0MDQsIDAuMDA4NTM0LCAwLjAwODY2MywgMC4wMDg5MTQsIDAuMDA5MTI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzOTkxLCAwLjAwMzk4NywgMC4wMDQwNTIsIDAuMDA0MTUsIDAuMDA0Mjc3LCAwLjAwNDUzMSwgMC4wMDQ3NDYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0tOIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRCZSTiYhU0UmIVNJJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9STl9FUV8xX0FOX1NFX0VRXzBfQU5fU0lfRVFfMF9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDczMTAxLCAwLjA4MTIxLCAwLjA4OTc3NywgMC4wOTYxNjYsIDAuMTAxNTE2LCAwLjEwODMzMSwgMC4xMTM2MjQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjExMzU5NSwgMC4xMjE0ODcsIDAuMTI5ODc1LCAwLjEzNjA5OCwgMC4xNDA5NCwgMC4xNDc2MzEsIDAuMTUyMzkzIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihEKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA3MTk2Nzg7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNzE4NDE3OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDcxOTY3ODsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDQxNzIsIDAuMDA0MTQ4LCAwLjAwNDE2MywgMC4wMDQxOTgsIDAuMDA0MjU3LCAwLjAwNDM2OCwgMC4wMDQ0ODUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDU4MTQsIDAuMDA1ODAxLCAwLjAwNTgxNCwgMC4wMDU4NTMsIDAuMDA1OTA4LCAwLjAwNjAwNywgMC4wMDYxMTMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0tOIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9mYWxsaW5nOwotICAgICAgd2hlbiA6ICJSTiYhU0UmU04iOwotICAgICAgc2RmX2NvbmQgOiAiUk5fRVFfMV9BTl9TRV9FUV8wX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDEyNSwgLTAuMDA3NSwgLTAuMDAxMjUsIDAuMDA1LCAwLjAxMTI1LCAwLjAxNSwgMC4wMTc1IiwgXAotICAgICAgICAgICItMC4wMTc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMCwgMC4wMDYyNSwgMC4wMSwgMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLCAwLjAwMzc1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIC0wLjAwMjUsIDAiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA4NzUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wNDYyNSwgLTAuMDQxMjUsIC0wLjAzNSwgLTAuMDI4NzUsIC0wLjAyMjUsIC0wLjAxODc1LCAtMC4wMTYyNSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDMxMjUsIC0wLjAyMTI1LCAtMC4wMTg3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAzNzUsIC0wLjAzMjUsIC0wLjAzMjUsIC0wLjAyNjI1LCAtMC4wMjYyNSwgLTAuMDIyNSwgLTAuMDIiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzNzUsIC0wLjAzNzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMjc1LCAtMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjA0Mzc1LCAtMC4wNDM3NSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjA0LCAtMC4wMzc1IiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA1LCAtMC4wNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wNDYyNSwgLTAuMDQzNzUiLCBcCi0gICAgICAgICAgIi0wLjA2MTI1LCAtMC4wNTYyNSwgLTAuMDU2MjUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDUyNSwgLTAuMDUiLCBcCi0gICAgICAgICAgIi0wLjA3MTI1LCAtMC4wNjYyNSwgLTAuMDYsIC0wLjA2LCAtMC4wNiwgLTAuMDU2MjUsIC0wLjA1Mzc1IiwgXAotICAgICAgICAgICItMC4wNzM3NSwgLTAuMDY4NzUsIC0wLjA2ODc1LCAtMC4wNjg3NSwgLTAuMDYyNSwgLTAuMDY1LCAtMC4wNjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX2ZhbGxpbmc7Ci0gICAgICB3aGVuIDogIlJOJiFTRSZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJSTl9FUV8xX0FOX1NFX0VRXzBfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjI1LCAwLjA1NzUsIDAuMDQ1LCAwLjAzODc1LCAwLjAzODc1LCAwLjAyODc1LCAwLjAyNjI1IiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDYyNSwgMC4wNSwgMC4wNSwgMC4wNDM3NSwgMC4wNCwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4wOCwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1LCAwLjA0NjI1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjA4NjI1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1MjUsIDAuMDUiLCBcCi0gICAgICAgICAgIjAuMDkyNSwgMC4wODEyNSwgMC4wNzUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNTg3NSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiMC4xMDI1LCAwLjA5MTI1LCAwLjA4NSwgMC4wNzg3NSwgMC4wNzI1LCAwLjA2ODc1LCAwLjA2IiwgXAotICAgICAgICAgICIwLjEwNSwgMC4xLCAwLjA4NzUsIDAuMDgxMjUsIDAuMDgxMjUsIDAuMDcxMjUsIDAuMDY4NzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODEyNSwgMC4wNywgMC4wNjM3NSwgMC4wNTc1LCAwLjA1MTI1LCAwLjA0NzUsIDAuMDQ1IiwgXAotICAgICAgICAgICIwLjA4NjI1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA2MjUsIDAuMDU4NzUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIjAuMDkyNSwgMC4wODc1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjg3NSwgMC4wNjUsIDAuMDYyNSIsIFwKLSAgICAgICAgICAiMC4wOTg3NSwgMC4wOTM3NSwgMC4wODEyNSwgMC4wNzUsIDAuMDc1LCAwLjA3MTI1LCAwLjA2ODc1IiwgXAotICAgICAgICAgICIwLjEwNSwgMC4wOTM3NSwgMC4wODc1LCAwLjA4MTI1LCAwLjA4MTI1LCAwLjA3NzUsIDAuMDc1IiwgXAotICAgICAgICAgICIwLjExNSwgMC4xMDM3NSwgMC4wOTc1LCAwLjA5MTI1LCAwLjA4NSwgMC4wODEyNSwgMC4wNzg3NSIsIFwKLSAgICAgICAgICAiMC4xMTc1LCAwLjExMjUsIDAuMSwgMC4xLCAwLjA5Mzc1LCAwLjA5LCAwLjA4NzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFEpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4zMzA0NDE7Ci0gICAgZnVuY3Rpb24gOiAiTjM1IjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDS04iOwotICAgICAgdGltaW5nX3NlbnNlIDogbm9uX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiBmYWxsaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExNjk0MiwgMC4xMzU3MzIsIDAuMjQxMzIzLCAwLjMzNDI4NCwgMC40NTg0MTksIDAuNzA2NzM1LCAwLjg2MTc4OCIsIFwKLSAgICAgICAgICAiMC4xMjQ5MjIsIDAuMTQzNjkzLCAwLjI0OTE1OSwgMC4zNDIyODQsIDAuNDY2Mzk2LCAwLjcxNDYsIDAuODY5OTQiLCBcCi0gICAgICAgICAgIjAuMTMzMjQyLCAwLjE1MTk4NCwgMC4yNTc0OCwgMC4zNTA1ODQsIDAuNDc0NjQ1LCAwLjcyMzA4OSwgMC44NzgxMzMiLCBcCi0gICAgICAgICAgIjAuMTM5Mjc0LCAwLjE1ODAzNiwgMC4yNjM2NTgsIDAuMzU2NjI0LCAwLjQ4MDc2MiwgMC43MjkwODMsIDAuODg0MTM2IiwgXAotICAgICAgICAgICIwLjE0NDIyMSwgMC4xNjMwMDQsIDAuMjY4NjM4LCAwLjM2MTU5NywgMC40ODU2NzIsIDAuNzM0MDY3LCAwLjg4OTEiLCBcCi0gICAgICAgICAgIjAuMTUwODQzLCAwLjE2OTU3NCwgMC4yNzUyMDYsIDAuMzY4MTMzLCAwLjQ5MjI5MywgMC43NDA5NjEsIDAuODk2NDMyIiwgXAotICAgICAgICAgICIwLjE1NTYyNSwgMC4xNzQzMjQsIDAuMjgwMDA1LCAwLjM3Mjk1NCwgMC40OTcxMSwgMC43NDU0NDMsIDAuOTAwNTA3Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3MzYwNSwgMC4xMTE0OTcsIDAuMzMyMDkzLCAwLjUyODczMiwgMC43OTA1ODIsIDEuMzEyMTcsIDEuNjM3MTQiLCBcCi0gICAgICAgICAgIjAuMDczNTgzLCAwLjExMTUxMSwgMC4zMzIxLCAwLjUyODczNiwgMC43OTA1ODEsIDEuMzEyNDcsIDEuNjM4OTUiLCBcCi0gICAgICAgICAgIjAuMDczNTU0LCAwLjExMTUxNSwgMC4zMzE3NzksIDAuNTI4NDU4LCAwLjc4OTEzNSwgMS4zMTE5OCwgMS42Mzk2OSIsIFwKLSAgICAgICAgICAiMC4wNzM2NDgsIDAuMTExNTE0LCAwLjMzMjM5LCAwLjUyODcxMiwgMC43OTA1NzMsIDEuMzEyMjIsIDEuNjM5MjciLCBcCi0gICAgICAgICAgIjAuMDczNjg3LCAwLjExMTU4NSwgMC4zMzE5MzksIDAuNTI4NzQ4LCAwLjc5MDU1NSwgMS4zMTIxLCAxLjYzNzczIiwgXAotICAgICAgICAgICIwLjA3MzU5MiwgMC4xMTE1MTgsIDAuMzMyMzY2LCAwLjUyNzgwOCwgMC43OTA1MTksIDEuMzE0MDksIDEuNjQxNDMiLCBcCi0gICAgICAgICAgIjAuMDczNzgyLCAwLjExMTU0OCwgMC4zMzIzNjYsIDAuNTI4NDQ4LCAwLjc5MDUwMiwgMS4zMTIzLCAxLjYzOTgxIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwNTIyMywgMC4xMjM1MzIsIDAuMjI2MzU3LCAwLjMxNjg2NywgMC40Mzc0NzcsIDAuNjc5NDgxLCAwLjgzMDM5MiIsIFwKLSAgICAgICAgICAiMC4xMTMxMiwgMC4xMzE0MTYsIDAuMjM0Mjc0LCAwLjMyNDc3MywgMC40NDU2MzIsIDAuNjg3MzI5LCAwLjgzODI5NyIsIFwKLSAgICAgICAgICAiMC4xMjE1MjIsIDAuMTM5ODIxLCAwLjI0MjYyMiwgMC4zMzMyMTQsIDAuNDUzNTc5LCAwLjY5NTY4OSwgMC44NDY0NzYiLCBcCi0gICAgICAgICAgIjAuMTI3NzQ3LCAwLjE0NjAzMiwgMC4yNDg4NTQsIDAuMzM5MjYyLCAwLjQ1OTg1MSwgMC43MDE5NTEsIDAuODUyOTQ0IiwgXAotICAgICAgICAgICIwLjEzMjc0LCAwLjE1MTAxOSwgMC4yNTM4NTcsIDAuMzQ0MjUsIDAuNDY1MDg5LCAwLjcwNjkzOCwgMC44NTc3ODkiLCBcCi0gICAgICAgICAgIjAuMTM5MjY2LCAwLjE1NzUyOSwgMC4yNjA0NTcsIDAuMzUwNzQyLCAwLjQ3MTc4NywgMC43MTI3ODQsIDAuODYzNDI4IiwgXAotICAgICAgICAgICIwLjE0NDAzNCwgMC4xNjIyNjcsIDAuMjY1MTIxLCAwLjM1NTc0NCwgMC40NzY0OCwgMC43MTc0NTMsIDAuODY5MjI3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3MDQzOSwgMC4xMDYyNjYsIDAuMzE1OTIsIDAuNTAyNDEsIDAuNzUxMTMsIDEuMjQ1OTQsIDEuNTU2NjMiLCBcCi0gICAgICAgICAgIjAuMDcwNjAxLCAwLjEwNjI3OSwgMC4zMTU5MDEsIDAuNTAyNDMsIDAuNzUxNDMyLCAxLjI0NzExLCAxLjU1Nzk1IiwgXAotICAgICAgICAgICIwLjA3MDUyMiwgMC4xMDYyOCwgMC4zMTU4NDUsIDAuNTAyNjY0LCAwLjc1MDk4NSwgMS4yNDYyNCwgMS41NjA1IiwgXAotICAgICAgICAgICIwLjA3MDQ0LCAwLjEwNjIyNSwgMC4zMTU4MjgsIDAuNTAyNTcsIDAuNzUwMjY1LCAxLjI0Njk2LCAxLjU1NzM2IiwgXAotICAgICAgICAgICIwLjA3MDU2MiwgMC4xMDYzMjQsIDAuMzE1ODU0LCAwLjUwMjQ0MSwgMC43NTE0MTMsIDEuMjQ3NjIsIDEuNTU4MjYiLCBcCi0gICAgICAgICAgIjAuMDcwNTgyLCAwLjEwNjc4MiwgMC4zMTYwNTksIDAuNTAyNTYxLCAwLjc1MTUyMywgMS4yNDc3NiwgMS41NTY2IiwgXAotICAgICAgICAgICIwLjA3MDI4NSwgMC4xMDY1NjMsIDAuMzE1ODcsIDAuNTAyNDMsIDAuNzUxMjk0LCAxLjI0ODA4LCAxLjU1NzM3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiBjbGVhcjsKLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTM3ODkxLCAwLjE1NjA5NywgMC4yNTg4MDEsIDAuMzQ5MDk0LCAwLjQ2OTY3NiwgMC43MTE3NTQsIDAuODYyNDk0IiwgXAotICAgICAgICAgICIwLjE0NTgxNSwgMC4xNjQwMTIsIDAuMjY2NzI0LCAwLjM1NzE4NSwgMC40Nzc3NTksIDAuNzE5MDU1LCAwLjg2OTc0MyIsIFwKLSAgICAgICAgICAiMC4xNTQxNzEsIDAuMTcyMzY4LCAwLjI3NTA5MiwgMC4zNjUzODIsIDAuNDg1OTI5LCAwLjcyODA0NCwgMC44Nzc5NTMiLCBcCi0gICAgICAgICAgIjAuMTYwNDMxLCAwLjE3ODY3NiwgMC4yODEzMzYsIDAuMzcxNjI0LCAwLjQ5MjIwNCwgMC43MzQyNjgsIDAuODg1MDMxIiwgXAotICAgICAgICAgICIwLjE2NTMzNiwgMC4xODM1NzIsIDAuMjg2MjQ3LCAwLjM3NjUyOSwgMC40OTcyNTMsIDAuNzM4ODQyLCAwLjg4OTM1NyIsIFwKLSAgICAgICAgICAiMC4xNzIwNDgsIDAuMTkwMzA1LCAwLjI5Mjk3MywgMC4zODMyNzYsIDAuNTA0MDQ1LCAwLjc0NTg5MiwgMC44OTY5MDQiLCBcCi0gICAgICAgICAgIjAuMTc2ODM3LCAwLjE5NTEwNywgMC4yOTc3NTMsIDAuMzg4MDA3LCAwLjUwOTAyOCwgMC43NTA2OTcsIDAuOTAxNjYzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3MDUyNiwgMC4xMDY2NjQsIDAuMzE2MDkyLCAwLjUwMjU5LCAwLjc1MTI1NiwgMS4yNDk0MywgMS41NjAyNyIsIFwKLSAgICAgICAgICAiMC4wNzA3NDksIDAuMTA2NjczLCAwLjMxNjA4MiwgMC41MDI1MTUsIDAuNzUxMDUsIDEuMjQ5NDYsIDEuNTU2NjYiLCBcCi0gICAgICAgICAgIjAuMDcwNDg5LCAwLjEwNjY5NywgMC4zMTYxMzYsIDAuNTAyNjI4LCAwLjc1MTMyNiwgMS4yNDkxMSwgMS41NTcyOSIsIFwKLSAgICAgICAgICAiMC4wNzA2NTUsIDAuMTA2Mjk2LCAwLjMxNjA4NiwgMC41MDI2MTcsIDAuNzUxNDY4LCAxLjI0OTM1LCAxLjU2MDUyIiwgXAotICAgICAgICAgICIwLjA3MDY2MiwgMC4xMDY3NDUsIDAuMzE2MDkzLCAwLjUwMjU5NSwgMC43NTE0MjgsIDEuMjQ5MTMsIDEuNTU4NjYiLCBcCi0gICAgICAgICAgIjAuMDcwNzM0LCAwLjEwNjc3MywgMC4zMTYwNzksIDAuNTAyNzU4LCAwLjc1MTM5NywgMS4yNDkyOCwgMS41NjA1NiIsIFwKLSAgICAgICAgICAiMC4wNzA3NTMsIDAuMTA2NzkxLCAwLjMxNjM3NSwgMC41MDI1NjksIDAuNzUxNDk1LCAxLjI0OTA2LCAxLjU1ODUzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiBwcmVzZXQ7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwMzUxLCAwLjEyMjI3MiwgMC4yMjc4NjcsIDAuMzIwODQ4LCAwLjQ0NTAwMywgMC42OTMxMjcsIDAuODQ4MzIxIiwgXAotICAgICAgICAgICIwLjExMDA3MywgMC4xMjg4NjMsIDAuMjM0NDI0LCAwLjMyNzQwNiwgMC40NTE1NzUsIDAuNjk5NzA5LCAwLjg1NDkxIiwgXAotICAgICAgICAgICIwLjExODQ0MywgMC4xMzcxOTcsIDAuMjQyNzU3LCAwLjMzNTc0NiwgMC40NTk4NjMsIDAuNzA4NjIsIDAuODYzMjA3IiwgXAotICAgICAgICAgICIwLjEyNzEzNywgMC4xNDU4ODQsIDAuMjUxNTM0LCAwLjM0NDQ3MiwgMC40Njg2MDcsIDAuNzE3MjYzLCAwLjg3MTkxNyIsIFwKLSAgICAgICAgICAiMC4xMzQ0MjIsIDAuMTUzMTIxLCAwLjI1ODc1LCAwLjM1MTczLCAwLjQ3NTg1MSwgMC43MjQwNiwgMC44NzkxOTYiLCBcCi0gICAgICAgICAgIjAuMTQ0MDE3LCAwLjE2Mjc0OCwgMC4yNjgyNDEsIDAuMzYxMzUsIDAuNDg1NDE1LCAwLjczMzY0NCwgMC44ODg3ODIiLCBcCi0gICAgICAgICAgIjAuMTUwODU5LCAwLjE2OTYxNiwgMC4yNzUxODcsIDAuMzY4MTg0LCAwLjQ5MjM1NywgMC43NDA3NDYsIDAuODk2NDQ2Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3MzMxOSwgMC4xMTEzODQsIDAuMzMyNDE2LCAwLjUyODcyMywgMC43OTA1OTcsIDEuMzE0MzMsIDEuNjM4OTciLCBcCi0gICAgICAgICAgIjAuMDczMTg4LCAwLjExMTM4MiwgMC4zMzI0MTgsIDAuNTI4NzIzLCAwLjc5MDU0LCAxLjMxNDMxLCAxLjY0MTYyIiwgXAotICAgICAgICAgICIwLjA3MzE0LCAwLjExMTM4MiwgMC4zMzI0MTcsIDAuNTI4NzI0LCAwLjc5MDU2MiwgMS4zMTQzNSwgMS42NDE1OCIsIFwKLSAgICAgICAgICAiMC4wNzMxMjUsIDAuMTExMzk1LCAwLjMzMjQxNSwgMC41Mjg1OTMsIDAuNzkwNTI0LCAxLjMxNDM0LCAxLjY0MDIyIiwgXAotICAgICAgICAgICIwLjA3MzMwOCwgMC4xMTE0MzEsIDAuMzMyNDMxLCAwLjUyODU3MSwgMC43OTA1MjYsIDEuMzE0MjIsIDEuNjQxNzUiLCBcCi0gICAgICAgICAgIjAuMDczNDI5LCAwLjExMTQzNywgMC4zMzIzMTEsIDAuNTI4NTk5LCAwLjc5MDM1MiwgMS4zMTQxOSwgMS42Mzk4NyIsIFwKLSAgICAgICAgICAiMC4wNzM2OTUsIDAuMTExNDAzLCAwLjMzMjM0OSwgMC41Mjg2NywgMC43OTA0MSwgMS4zMTQxOCwgMS42NDE0NiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMjM4NzIsIDAuMTQyMTM3LCAwLjI0NDk2MywgMC4zMzU1MzgsIDAuNDU2MDY1LCAwLjY5NzgzLCAwLjg0OTExMyIsIFwKLSAgICAgICAgICAiMC4xMzA0NCwgMC4xNDg2NjUsIDAuMjUxNTM1LCAwLjM0MTg5NSwgMC40NjI0OSwgMC43MDQ2MzYsIDAuODU0NjA5IiwgXAotICAgICAgICAgICIwLjEzNzk3NSwgMC4xNTYyMzYsIDAuMjU4ODA4LCAwLjM0OTQ4NCwgMC40NzAwMSwgMC43MTE5NzYsIDAuODYzMTc2IiwgXAotICAgICAgICAgICIwLjE0NTIwMywgMC4xNjM0MTEsIDAuMjY2MjkyLCAwLjM1NjcyOCwgMC40Nzc0MywgMC43MTg2MjQsIDAuODY5NzE4IiwgXAotICAgICAgICAgICIwLjE1MTkxOSwgMC4xNzAxNDEsIDAuMjczMDE5LCAwLjM2MzM4OSwgMC40ODM5ODgsIDAuNzI2MTEyLCAwLjg3NjU4IiwgXAotICAgICAgICAgICIwLjE2MTQ4MywgMC4xNzk3NDMsIDAuMjgyNTcyLCAwLjM3MzE5MywgMC40OTM1NTEsIDAuNzM1Njg2LCAwLjg4NjM1OSIsIFwKLSAgICAgICAgICAiMC4xNjg4MTYsIDAuMTg3MDY3LCAwLjI4OTY4MywgMC4zODA1NDYsIDAuNTAwOTY4LCAwLjc0MjE3MywgMC44OTMwMTEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDcwNjc5LCAwLjEwNjc0NiwgMC4zMTYwODQsIDAuNTAyNTk3LCAwLjc1MDQ2MywgMS4yNDkzLCAxLjU1NzkxIiwgXAotICAgICAgICAgICIwLjA3MDQ3NywgMC4xMDY2NzIsIDAuMzE2MjQsIDAuNTAyNjEyLCAwLjc1MTQ0MywgMS4yNDc3LCAxLjU1ODU4IiwgXAotICAgICAgICAgICIwLjA3MDc1MywgMC4xMDY3MTYsIDAuMzE2MjksIDAuNTAyNiwgMC43NTA3NSwgMS4yNDkwOSwgMS41NjAyMSIsIFwKLSAgICAgICAgICAiMC4wNzA3MzQsIDAuMTA2Njk5LCAwLjMxNjAzNSwgMC41MDI2MDYsIDAuNzUxMzI0LCAxLjI0ODAyLCAxLjU2MDQiLCBcCi0gICAgICAgICAgIjAuMDcwNTcyLCAwLjEwNjY5NSwgMC4zMTYwMzksIDAuNTAyNjEsIDAuNzUxMzY0LCAxLjI0ODAxLCAxLjU2MDI2IiwgXAotICAgICAgICAgICIwLjA3MDc3NSwgMC4xMDY4MDUsIDAuMzE2MjksIDAuNTAyNDA5LCAwLjc1MTMyNiwgMS4yNDc5MSwgMS41NjA0MyIsIFwKLSAgICAgICAgICAiMC4wNzA5NSwgMC4xMDY4OTQsIDAuMzE1ODk4LCAwLjUwMjU2OSwgMC43NTEyNDUsIDEuMjQ5MTUsIDEuNTU4NiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1ODg1LCAwLjAwNTg5NCwgMC4wMDU5MDYsIDAuMDA1OTA5LCAwLjAwNTkxLCAwLjAwNTkxMSwgMC4wMDU5MTIiLCBcCi0gICAgICAgICAgIjAuMDA1ODk1LCAwLjAwNTkwMywgMC4wMDU5MTUsIDAuMDA1OTE4LCAwLjAwNTkyLCAwLjAwNTkyMSwgMC4wMDU5MjEiLCBcCi0gICAgICAgICAgIjAuMDA1OTMyLCAwLjAwNTk0MSwgMC4wMDU5NTMsIDAuMDA1OTU1LCAwLjAwNTk1NywgMC4wMDU5NTgsIDAuMDA1OTU4IiwgXAotICAgICAgICAgICIwLjAwNTk5NiwgMC4wMDYwMDQsIDAuMDA2MDE2LCAwLjAwNjAxOSwgMC4wMDYwMjIsIDAuMDA2MDI0LCAwLjAwNjAyNCIsIFwKLSAgICAgICAgICAiMC4wMDYwNjcsIDAuMDA2MDc2LCAwLjAwNjA4OCwgMC4wMDYwOSwgMC4wMDYwOTIsIDAuMDA2MDk0LCAwLjAwNjA5NCIsIFwKLSAgICAgICAgICAiMC4wMDYxNywgMC4wMDYxNzksIDAuMDA2MTkxLCAwLjAwNjE5LCAwLjAwNjE5NSwgMC4wMDYxOTYsIDAuMDA2MTk3IiwgXAotICAgICAgICAgICIwLjAwNjI3MSwgMC4wMDYyNzksIDAuMDA2MjkxLCAwLjAwNjI5NCwgMC4wMDYyOTUsIDAuMDA2Mjk2LCAwLjAwNjI5NyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNTI0NywgMC4wMDUyNTUsIDAuMDA1MjY3LCAwLjAwNTI3LCAwLjAwNTI3MSwgMC4wMDUyNzIsIDAuMDA1MjczIiwgXAotICAgICAgICAgICIwLjAwNTI0NSwgMC4wMDUyNTMsIDAuMDA1MjY1LCAwLjAwNTI2OCwgMC4wMDUyNjksIDAuMDA1MjcsIDAuMDA1MjcxIiwgXAotICAgICAgICAgICIwLjAwNTI3NiwgMC4wMDUyODQsIDAuMDA1Mjk1LCAwLjAwNTI5OCwgMC4wMDUzMDEsIDAuMDA1MywgMC4wMDUzMDIiLCBcCi0gICAgICAgICAgIjAuMDA1MzI5LCAwLjAwNTMzOCwgMC4wMDUzNTEsIDAuMDA1MzUzLCAwLjAwNTM1NSwgMC4wMDUzNTYsIDAuMDA1MzU3IiwgXAotICAgICAgICAgICIwLjAwNTM5NywgMC4wMDU0MDYsIDAuMDA1NDE5LCAwLjAwNTQyMSwgMC4wMDU0MjMsIDAuMDA1NDI1LCAwLjAwNTQyNCIsIFwKLSAgICAgICAgICAiMC4wMDU0ODYsIDAuMDA1NDkzLCAwLjAwNTUwNiwgMC4wMDU1MDgsIDAuMDA1NTEsIDAuMDA1NTExLCAwLjAwNTUxMiIsIFwKLSAgICAgICAgICAiMC4wMDU1ODQsIDAuMDA1NTkyLCAwLjAwNTYwMywgMC4wMDU2MDYsIDAuMDA1NjA3LCAwLjAwNTYwOCwgMC4wMDU2MDkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2NzgzLCAwLjAwNjc4NiwgMC4wMDY3NzUsIDAuMDA2NzcyLCAwLjAwNjc2MiwgMC4wMDY3NTcsIDAuMDA2NzU1IiwgXAotICAgICAgICAgICIwLjAwNjc4LCAwLjAwNjc4NSwgMC4wMDY3NzMsIDAuMDA2NzY2LCAwLjAwNjc2LCAwLjAwNjc1NSwgMC4wMDY3NTYiLCBcCi0gICAgICAgICAgIjAuMDA2ODEzLCAwLjAwNjgxNywgMC4wMDY4MDYsIDAuMDA2Nzk4LCAwLjAwNjc5MiwgMC4wMDY3ODcsIDAuMDA2Nzg0IiwgXAotICAgICAgICAgICIwLjAwNjg1MywgMC4wMDY4NTcsIDAuMDA2ODQ2LCAwLjAwNjgzOCwgMC4wMDY4MzIsIDAuMDA2ODI1LCAwLjAwNjgyMyIsIFwKLSAgICAgICAgICAiMC4wMDY5MDMsIDAuMDA2OTA4LCAwLjAwNjg5NywgMC4wMDY4ODksIDAuMDA2ODgyLCAwLjAwNjg3NiwgMC4wMDY4NzQiLCBcCi0gICAgICAgICAgIjAuMDA3MDA2LCAwLjAwNzAxMSwgMC4wMDcsIDAuMDA2OTkyLCAwLjAwNjk4NSwgMC4wMDY5NzgsIDAuMDA2OTc2IiwgXAotICAgICAgICAgICIwLjAwNzA5MywgMC4wMDcwOTcsIDAuMDA3MDg2LCAwLjAwNzA3NywgMC4wMDcwNjksIDAuMDA3MDYyLCAwLjAwNzA2Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3Bvd2VyKHNjYWxhcikgewotICAgICAgICB2YWx1ZXMoIjAiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2NDUsIDAuMDA2NDU5LCAwLjAwNjQ3LCAwLjAwNjQ3MywgMC4wMDY0NzQsIDAuMDA2NDc1LCAwLjAwNjQ3NSIsIFwKLSAgICAgICAgICAiMC4wMDY0MzgsIDAuMDA2NDQ2LCAwLjAwNjQ1OCwgMC4wMDY0NiwgMC4wMDY0NjEsIDAuMDA2NDYyLCAwLjAwNjQ2NCIsIFwKLSAgICAgICAgICAiMC4wMDY0NTYsIDAuMDA2NDY0LCAwLjAwNjQ3NiwgMC4wMDY0NzgsIDAuMDA2NDgsIDAuMDA2NDgxLCAwLjAwNjQ4MiIsIFwKLSAgICAgICAgICAiMC4wMDY0OTgsIDAuMDA2NTA2LCAwLjAwNjUxOSwgMC4wMDY1MjEsIDAuMDA2NTIzLCAwLjAwNjUyNCwgMC4wMDY1MjQiLCBcCi0gICAgICAgICAgIjAuMDA2NTUsIDAuMDA2NTU4LCAwLjAwNjU3LCAwLjAwNjU3MywgMC4wMDY1NzQsIDAuMDA2NTc1LCAwLjAwNjU3NiIsIFwKLSAgICAgICAgICAiMC4wMDY2NjUsIDAuMDA2Njc0LCAwLjAwNjY4NSwgMC4wMDY2ODksIDAuMDA2NjksIDAuMDA2NjkyLCAwLjAwNjY5MiIsIFwKLSAgICAgICAgICAiMC4wMDY3ODQsIDAuMDA2NzkyLCAwLjAwNjgwMywgMC4wMDY4MDYsIDAuMDA2ODA3LCAwLjAwNjgwOCwgMC4wMDY4MDkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQ5NjIsIDAuMDA0OTcsIDAuMDA0OTgzLCAwLjAwNDk4NSwgMC4wMDQ5ODcsIDAuMDA0OTg4LCAwLjAwNDk4OCIsIFwKLSAgICAgICAgICAiMC4wMDQ5MzQsIDAuMDA0OTQyLCAwLjAwNDk1NCwgMC4wMDQ5NTcsIDAuMDA0OTU4LCAwLjAwNDk1OSwgMC4wMDQ5NjMiLCBcCi0gICAgICAgICAgIjAuMDA0OTI0LCAwLjAwNDkzMiwgMC4wMDQ5NDQsIDAuMDA0OTQ3LCAwLjAwNDk0OCwgMC4wMDQ5NDksIDAuMDA0OTUiLCBcCi0gICAgICAgICAgIjAuMDA0OTI4LCAwLjAwNDkzNywgMC4wMDQ5NSwgMC4wMDQ5NTIsIDAuMDA0OTU3LCAwLjAwNDk1NSwgMC4wMDQ5NTUiLCBcCi0gICAgICAgICAgIjAuMDA0OTQ2LCAwLjAwNDk1NCwgMC4wMDQ5NjcsIDAuMDA0OTcsIDAuMDA0OTc0LCAwLjAwNDk3MywgMC4wMDQ5NzciLCBcCi0gICAgICAgICAgIjAuMDA0OTkzLCAwLjAwNTAwMSwgMC4wMDUwMTQsIDAuMDA1MDE3LCAwLjAwNTAxOSwgMC4wMDUwMiwgMC4wMDUwMjEiLCBcCi0gICAgICAgICAgIjAuMDA1MDQ0LCAwLjAwNTA1NCwgMC4wMDUwNjQsIDAuMDA1MDcsIDAuMDA1MDcyLCAwLjAwNTA3MywgMC4wMDUwNzQiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFFOKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMzM4NzM4OwotICAgIGZ1bmN0aW9uIDogIlFCSU5UIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDS04iOwotICAgICAgdGltaW5nX3NlbnNlIDogbm9uX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiBmYWxsaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExMzU5NSwgMC4xMzIxOTgsIDAuMjM3NjU0LCAwLjMzMDY4OSwgMC40NTQ3ODIsIDAuNzAzMSwgMC44NTgxODciLCBcCi0gICAgICAgICAgIjAuMTIxNDg3LCAwLjE0MDA5LCAwLjI0NTU0NiwgMC4zMzg1ODEsIDAuNDYyNjkzLCAwLjcxMDk2NSwgMC44NjYwODgiLCBcCi0gICAgICAgICAgIjAuMTI5ODg3LCAwLjE0ODQ4OSwgMC4yNTM5NCwgMC4zNDY5NzksIDAuNDcxMTA0LCAwLjcxOTM0NiwgMC44NzQzODkiLCBcCi0gICAgICAgICAgIjAuMTM2MTA1LCAwLjE1NDcwNiwgMC4yNjAxNTksIDAuMzUzMiwgMC40NzczMDYsIDAuNzI1NTc4LCAwLjg4MDcxNyIsIFwKLSAgICAgICAgICAiMC4xNDExMDcsIDAuMTU5NzA4LCAwLjI2NTE3MywgMC4zNTgxMiwgMC40ODIzMjIsIDAuNzMwNTc3LCAwLjg4NTYxMyIsIFwKLSAgICAgICAgICAiMC4xNDc2NDQsIDAuMTY2MjE5LCAwLjI3MTY5NiwgMC4zNjQ3MTcsIDAuNDg4ODQ1LCAwLjczNzAwMSwgMC44OTIwODciLCBcCi0gICAgICAgICAgIjAuMTUyNDAyLCAwLjE3MDk4NSwgMC4yNzY0NTQsIDAuMzY5NTI2LCAwLjQ5MzYsIDAuNzQxNzgsIDAuODk3MDEzIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3MDQyNywgMC4xMDkzNDMsIDAuMzMxNTcyLCAwLjUyNzcwOSwgMC43ODgyNjgsIDEuMzEwMTIsIDEuNjM2NDQiLCBcCi0gICAgICAgICAgIjAuMDcwNDI3LCAwLjEwOTM0MywgMC4zMzE2MDEsIDAuNTI3NzI2LCAwLjc4OTE5NywgMS4zMTAyMywgMS42MzY0NiIsIFwKLSAgICAgICAgICAiMC4wNzA0NDQsIDAuMTA5MzQzLCAwLjMzMTYxLCAwLjUyNzc5OCwgMC43ODc5NzgsIDEuMzEwMDgsIDEuNjM4OTUiLCBcCi0gICAgICAgICAgIjAuMDcwMzU4LCAwLjEwOTM0MSwgMC4zMzE2MjEsIDAuNTI3MDUyLCAwLjc4ODI5OSwgMS4zMTAxLCAxLjYzNjQ4IiwgXAotICAgICAgICAgICIwLjA3MDQyOSwgMC4xMDkzNDEsIDAuMzMxNjA5LCAwLjUyNzY3LCAwLjc4OTE2LCAxLjMxMDM3LCAxLjYzNjczIiwgXAotICAgICAgICAgICIwLjA3MDQ0MiwgMC4xMDk0MjQsIDAuMzMxNTcxLCAwLjUyNzExNiwgMC43ODkxMzgsIDEuMzEwMzIsIDEuNjM2NzUiLCBcCi0gICAgICAgICAgIjAuMDcwNDYsIDAuMTA5MjUyLCAwLjMzMTYyMywgMC41Mjc3MjYsIDAuNzg5MDQ0LCAxLjMxMDU1LCAxLjYzNjY5Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEyNTI1NiwgMC4xNDMzNTEsIDAuMjQ1ODg4LCAwLjMzNjMzOSwgMC40NTY5NjUsIDAuNjk4MjI0LCAwLjg0OTAzNSIsIFwKLSAgICAgICAgICAiMC4xMzMyMjQsIDAuMTUxMzE4LCAwLjI1Mzg0NywgMC4zNDQzMjEsIDAuNDY0OTM1LCAwLjcwNjMxMSwgMC44NTY5NjkiLCBcCi0gICAgICAgICAgIjAuMTQxNTM1LCAwLjE1OTYyOSwgMC4yNjIxNTgsIDAuMzUyNjIzLCAwLjQ3MzI1OSwgMC43MTQ0OTYsIDAuODY1MzAyIiwgXAotICAgICAgICAgICIwLjE0NzU4OSwgMC4xNjU2NzQsIDAuMjY4MjE1LCAwLjM1ODY2OCwgMC40NzkyOTUsIDAuNzIwNTUxLCAwLjg3MTM2MiIsIFwKLSAgICAgICAgICAiMC4xNTI1MzYsIDAuMTcwNjI3LCAwLjI3MzIwNywgMC4zNjM2NTgsIDAuNDg0MjM2LCAwLjcyNTUzOCwgMC44NzYzMDgiLCBcCi0gICAgICAgICAgIjAuMTU5MTc5LCAwLjE3NzI2MiwgMC4yNzk3OTcsIDAuMzcwMjM5LCAwLjQ5MDg2NiwgMC43MzIxNDIsIDAuODgyOTcyIiwgXAotICAgICAgICAgICIwLjE2Mzk0LCAwLjE4MjA0NSwgMC4yODQ1NzYsIDAuMzc1MDE4LCAwLjQ5NTY1OSwgMC43MzY5MDQsIDAuODg3NzE0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2NzA3MywgMC4xMDM5NzksIDAuMzE0NTYsIDAuNTAxNTgzLCAwLjc1MDIxMiwgMS4yNDYxNSwgMS41NTM1NCIsIFwKLSAgICAgICAgICAiMC4wNjcwNzUsIDAuMTAzOTc5LCAwLjMxNDU2LCAwLjUwMTYxNCwgMC43NTAxOTcsIDEuMjQ1NjEsIDEuNTU2NTYiLCBcCi0gICAgICAgICAgIjAuMDY3MDc1LCAwLjEwMzk3MiwgMC4zMTQ1NjksIDAuNTAxNjE5LCAwLjc0ODY5NCwgMS4yNDU5MywgMS41NTYzOSIsIFwKLSAgICAgICAgICAiMC4wNjcwNjMsIDAuMTAzOTc4LCAwLjMxNTEyOCwgMC41MDE1NjQsIDAuNzUwMTk4LCAxLjI0NjEyLCAxLjU1NjQ2IiwgXAotICAgICAgICAgICIwLjA2NzA5NSwgMC4xMDM5ODQsIDAuMzE0Njg1LCAwLjUwMTU5NSwgMC43NTAxNzIsIDEuMjQ2MSwgMS41NTUwNCIsIFwKLSAgICAgICAgICAiMC4wNjcwNzYsIDAuMTAzOTY4LCAwLjMxNTA4OCwgMC41MDEwMTksIDAuNzUwMDg0LCAxLjI0NzE1LCAxLjU1ODAxIiwgXAotICAgICAgICAgICIwLjA2NzA3MSwgMC4xMDM5ODksIDAuMzE1MDkzLCAwLjUwMTQ1LCAwLjc1MDA3OSwgMS4yNDU5NSwgMS41NTY0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiBwcmVzZXQ7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE0NjI2OSwgMC4xNjQ4NTIsIDAuMjcwMzExLCAwLjM2MzM3NSwgMC40ODc0NzgsIDAuNzM1NzIzLCAwLjg5MDcxNiIsIFwKLSAgICAgICAgICAiMC4xNTQxNTQsIDAuMTcyNzM4LCAwLjI3ODIwMSwgMC4zNzEyMjUsIDAuNDk1Mzc5LCAwLjc0MzMxNywgMC44OTg2NTYiLCBcCi0gICAgICAgICAgIjAuMTYyNTQ5LCAwLjE4MTEzMywgMC4yODY1OSwgMC4zNzk2NTMsIDAuNTAzNzUzLCAwLjc1MjAwNSwgMC45MDY3ODQiLCBcCi0gICAgICAgICAgIjAuMTY4ODEsIDAuMTg3NDA3LCAwLjI5Mjg1MiwgMC4zODU5MTcsIDAuNTEwMDE5LCAwLjc1ODI1OSwgMC45MTMyOTgiLCBcCi0gICAgICAgICAgIjAuMTczNzE3LCAwLjE5MjMxNiwgMC4yOTc3NjQsIDAuMzkwODI1LCAwLjUxNDk0LCAwLjc2MzAyOCwgMC45MTgyMjUiLCBcCi0gICAgICAgICAgIjAuMTgwMzQ4LCAwLjE5ODkzNiwgMC4zMDQzNzQsIDAuMzk3NDI1LCAwLjUyMTQzOSwgMC43Njk3ODIsIDAuOTI0OTQiLCBcCi0gICAgICAgICAgIjAuMTg1MjY0LCAwLjIwMzg0NCwgMC4zMDkyODcsIDAuNDAyMzUsIDAuNTI2NDUsIDAuNzc0NzE1LCAwLjkyOTg0NSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzA0MjMsIDAuMTA5NDExLCAwLjMzMTY3MiwgMC41MjcyMzIsIDAuNzg5MjE3LCAxLjMxMjIzLCAxLjYzOTQyIiwgXAotICAgICAgICAgICIwLjA3MDQzMiwgMC4xMDk0MDQsIDAuMzMxNjczLCAwLjUyNzcxNSwgMC43ODgwOTIsIDEuMzEyMjEsIDEuNjM2NDQiLCBcCi0gICAgICAgICAgIjAuMDcwNDQyLCAwLjEwOTQwMSwgMC4zMzE2NywgMC41MjcyMDEsIDAuNzg5MTA4LCAxLjMxMiwgMS42MzY0NCIsIFwKLSAgICAgICAgICAiMC4wNzA0MjUsIDAuMTA5MjgsIDAuMzMxNjcsIDAuNTI3MjEyLCAwLjc4OTMwMiwgMS4zMTIwOSwgMS42MzkxNiIsIFwKLSAgICAgICAgICAiMC4wNzA0MywgMC4xMDk0MjQsIDAuMzMxNjczLCAwLjUyNzIwNywgMC43ODkxMzksIDEuMzEyMjIsIDEuNjM3MTkiLCBcCi0gICAgICAgICAgIjAuMDcwNDQxLCAwLjEwOTQyOCwgMC4zMzE2NzUsIDAuNTI3NDE1LCAwLjc4OTAwMiwgMS4zMTIxOSwgMS42Mzg5NyIsIFwKLSAgICAgICAgICAiMC4wNzA0NTYsIDAuMTA5NDE2LCAwLjMzMTY3MSwgMC41Mjc3MDQsIDAuNzg5MjE0LCAxLjMxMjAxLCAxLjYzNjY0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiBjbGVhcjsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTMyMjM0LCAwLjE1MDgzNCwgMC4yNTYyODYsIDAuMzQ5MzQxLCAwLjQ3MzQ2MiwgMC43MjE1OTcsIDAuODc2ODcyIiwgXAotICAgICAgICAgICIwLjEzODgwOCwgMC4xNTczOTMsIDAuMjYyODUxLCAwLjM1NTkxNSwgMC40ODAwMTYsIDAuNzI4MjY1LCAwLjg4MzA0NyIsIFwKLSAgICAgICAgICAiMC4xNDYzMjQsIDAuMTY0OTIzLCAwLjI3MDMxNSwgMC4zNjM0MjUsIDAuNDg3NTM2LCAwLjczNTY2MSwgMC44OTA5MzQiLCBcCi0gICAgICAgICAgIjAuMTUzNTM2LCAwLjE3MjExOCwgMC4yNzc1ODQsIDAuMzcwNTg0LCAwLjQ5NDc2MiwgMC43NDI2NjQsIDAuODk3ODAyIiwgXAotICAgICAgICAgICIwLjE2MDI2NywgMC4xNzg4NTIsIDAuMjg0MzExLCAwLjM3NzM3LCAwLjUwMTQ2OSwgMC43NDk3MjEsIDAuOTA0NTUyIiwgXAotICAgICAgICAgICIwLjE2OTgyMSwgMC4xODg0MTMsIDAuMjkzODI0LCAwLjM4Njg5NCwgMC41MTA5NzksIDAuNzU5MjQ3LCAwLjkxNDIzMSIsIFwKLSAgICAgICAgICAiMC4xNzcwNzUsIDAuMTk1NjgyLCAwLjMwMTExOCwgMC4zOTQxOTgsIDAuNTE4MjU1LCAwLjc2NjQ1LCAwLjkyMTU1MSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzA0MjUsIDAuMTA5NDI3LCAwLjMzMTY3NywgMC41Mjc3NywgMC43ODgwMzksIDEuMzEyMjMsIDEuNjM2NTgiLCBcCi0gICAgICAgICAgIjAuMDcwNDI2LCAwLjEwOTQsIDAuMzMxNjcsIDAuNTI3MjAzLCAwLjc4OTExNiwgMS4zMTAxMiwgMS42MzY0IiwgXAotICAgICAgICAgICIwLjA3MDQzMSwgMC4xMDk0MjUsIDAuMzMxNjUyLCAwLjUyNzEwOCwgMC43ODc2NDksIDEuMzEyNDcsIDEuNjM5MTMiLCBcCi0gICAgICAgICAgIjAuMDcwNDMyLCAwLjEwOTIyMSwgMC4zMzE2NzEsIDAuNTI3NDUzLCAwLjc4OTAwMSwgMS4zMTA0MiwgMS42MzgyOSIsIFwKLSAgICAgICAgICAiMC4wNzA0MywgMC4xMDk0MDIsIDAuMzMxNjcsIDAuNTI3MTY1LCAwLjc4OTIzNSwgMS4zMTAxOSwgMS42Mzg3NCIsIFwKLSAgICAgICAgICAiMC4wNzA0NDUsIDAuMTA5NDI5LCAwLjMzMTY3LCAwLjUyNzc3NywgMC43ODkwMjQsIDEuMzEwMzMsIDEuNjM5MDYiLCBcCi0gICAgICAgICAgIjAuMDcwMzkzLCAwLjEwOTQ0MiwgMC4zMzE2MSwgMC41Mjc3NzcsIDAuNzg5MDE1LCAxLjMxMTg1LCAxLjYzNjczIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExMjE0MiwgMC4xMzAyNCwgMC4yMzI3NzUsIDAuMzIzMjUyLCAwLjQ0Mzg5NiwgMC42ODUxMDUsIDAuODM1ODYxIiwgXAotICAgICAgICAgICIwLjExODY2MSwgMC4xMzY3NTYsIDAuMjM5Mjg3LCAwLjMyOTc2OSwgMC40NTA0MTgsIDAuNjkxNjcsIDAuODQyNDIzIiwgXAotICAgICAgICAgICIwLjEyNzExOCwgMC4xNDUxOSwgMC4yNDc3MjcsIDAuMzM4MjIyLCAwLjQ1ODg1NCwgMC43MDAxNTYsIDAuODUwNjg0IiwgXAotICAgICAgICAgICIwLjEzNTgxNSwgMC4xNTM4NjYsIDAuMjU2NDE1LCAwLjM0Njg4MiwgMC40Njc1NjcsIDAuNzA4NzI2LCAwLjg1OTY0OCIsIFwKLSAgICAgICAgICAiMC4xNDMwNzcsIDAuMTYxMTM2LCAwLjI2MzY3LCAwLjM1NDE1NCwgMC40NzQ4MjYsIDAuNzE2MTIsIDAuODY2OTMzIiwgXAotICAgICAgICAgICIwLjE1MjYwMSwgMC4xNzA2OSwgMC4yNzMyMjIsIDAuMzYzNjgxLCAwLjQ4NDMyOCwgMC43MjU2MDYsIDAuODc2NDY2IiwgXAotICAgICAgICAgICIwLjE1OTQxNiwgMC4xNzc1MDQsIDAuMjgwMDI5LCAwLjM3MDUxMSwgMC40OTExNjIsIDAuNzMyMzc0LCAwLjg4MzI4MyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjcwNjQsIDAuMTA0MDQ2LCAwLjMxNTE5OSwgMC41MDE2OTUsIDAuNzUwMzg2LCAxLjI0Nzc0LCAxLjU1NjU5IiwgXAotICAgICAgICAgICIwLjA2NzA2MywgMC4xMDQwNDUsIDAuMzE1MTkxLCAwLjUwMTY4NiwgMC43NTAzOTIsIDEuMjQ3NzIsIDEuNTU4MzYiLCBcCi0gICAgICAgICAgIjAuMDY3MDUsIDAuMTA0MDU0LCAwLjMxNTIwOSwgMC41MDE2ODIsIDAuNzUwMjYxLCAxLjI0NzcsIDEuNTU4MjMiLCBcCi0gICAgICAgICAgIjAuMDY3MDQzLCAwLjEwNDA1NSwgMC4zMTUyMzYsIDAuNTAxNjc5LCAwLjc1MDI5NSwgMS4yNDc2OCwgMS41NTg2MSIsIFwKLSAgICAgICAgICAiMC4wNjcwOCwgMC4xMDQwNjUsIDAuMzE1MTg5LCAwLjUwMTYzNCwgMC43NTAyODUsIDEuMjQ3NDMsIDEuNTU4NTkiLCBcCi0gICAgICAgICAgIjAuMDY3MDYyLCAwLjEwNDA2NywgMC4zMTUxMjksIDAuNTAxNTc0LCAwLjc1MDExMSwgMS4yNDc0MiwgMS41NTY0OCIsIFwKLSAgICAgICAgICAiMC4wNjcxOCwgMC4xMDM5MzgsIDAuMzE1MTUxLCAwLjUwMTU1NywgMC43NTAxOTIsIDEuMjQ3NCwgMS41NTgxNSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1MjQ3LCAwLjAwNTI1NSwgMC4wMDUyNjcsIDAuMDA1MjcsIDAuMDA1MjcxLCAwLjAwNTI3MiwgMC4wMDUyNzMiLCBcCi0gICAgICAgICAgIjAuMDA1MjQ1LCAwLjAwNTI1MywgMC4wMDUyNjUsIDAuMDA1MjY4LCAwLjAwNTI2OSwgMC4wMDUyNywgMC4wMDUyNzEiLCBcCi0gICAgICAgICAgIjAuMDA1Mjc2LCAwLjAwNTI4NCwgMC4wMDUyOTUsIDAuMDA1Mjk4LCAwLjAwNTMwMSwgMC4wMDUzLCAwLjAwNTMwMiIsIFwKLSAgICAgICAgICAiMC4wMDUzMjksIDAuMDA1MzM4LCAwLjAwNTM1MSwgMC4wMDUzNTMsIDAuMDA1MzU1LCAwLjAwNTM1NiwgMC4wMDUzNTciLCBcCi0gICAgICAgICAgIjAuMDA1Mzk3LCAwLjAwNTQwNiwgMC4wMDU0MTksIDAuMDA1NDIxLCAwLjAwNTQyMywgMC4wMDU0MjUsIDAuMDA1NDI0IiwgXAotICAgICAgICAgICIwLjAwNTQ4NiwgMC4wMDU0OTMsIDAuMDA1NTA2LCAwLjAwNTUwOCwgMC4wMDU1MSwgMC4wMDU1MTEsIDAuMDA1NTEyIiwgXAotICAgICAgICAgICIwLjAwNTU4NCwgMC4wMDU1OTIsIDAuMDA1NjAzLCAwLjAwNTYwNiwgMC4wMDU2MDcsIDAuMDA1NjA4LCAwLjAwNTYwOSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNTg4NSwgMC4wMDU4OTQsIDAuMDA1OTA2LCAwLjAwNTkwOSwgMC4wMDU5MSwgMC4wMDU5MTEsIDAuMDA1OTEyIiwgXAotICAgICAgICAgICIwLjAwNTg5NSwgMC4wMDU5MDMsIDAuMDA1OTE1LCAwLjAwNTkxOCwgMC4wMDU5MiwgMC4wMDU5MjEsIDAuMDA1OTIxIiwgXAotICAgICAgICAgICIwLjAwNTkzMiwgMC4wMDU5NDEsIDAuMDA1OTUzLCAwLjAwNTk1NSwgMC4wMDU5NTcsIDAuMDA1OTU4LCAwLjAwNTk1OCIsIFwKLSAgICAgICAgICAiMC4wMDU5OTYsIDAuMDA2MDA0LCAwLjAwNjAxNiwgMC4wMDYwMTksIDAuMDA2MDIyLCAwLjAwNjAyNCwgMC4wMDYwMjQiLCBcCi0gICAgICAgICAgIjAuMDA2MDY3LCAwLjAwNjA3NiwgMC4wMDYwODgsIDAuMDA2MDksIDAuMDA2MDkyLCAwLjAwNjA5NCwgMC4wMDYwOTQiLCBcCi0gICAgICAgICAgIjAuMDA2MTcsIDAuMDA2MTc5LCAwLjAwNjE5MSwgMC4wMDYxOSwgMC4wMDYxOTUsIDAuMDA2MTk2LCAwLjAwNjE5NyIsIFwKLSAgICAgICAgICAiMC4wMDYyNzEsIDAuMDA2Mjc5LCAwLjAwNjI5MSwgMC4wMDYyOTQsIDAuMDA2Mjk1LCAwLjAwNjI5NiwgMC4wMDYyOTciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2NzgzLCAwLjAwNjc4NiwgMC4wMDY3NzUsIDAuMDA2NzcyLCAwLjAwNjc2MiwgMC4wMDY3NTcsIDAuMDA2NzU1IiwgXAotICAgICAgICAgICIwLjAwNjc4LCAwLjAwNjc4NSwgMC4wMDY3NzMsIDAuMDA2NzY2LCAwLjAwNjc2LCAwLjAwNjc1NSwgMC4wMDY3NTYiLCBcCi0gICAgICAgICAgIjAuMDA2ODEzLCAwLjAwNjgxNywgMC4wMDY4MDYsIDAuMDA2Nzk4LCAwLjAwNjc5MiwgMC4wMDY3ODcsIDAuMDA2Nzg0IiwgXAotICAgICAgICAgICIwLjAwNjg1MywgMC4wMDY4NTcsIDAuMDA2ODQ2LCAwLjAwNjgzOCwgMC4wMDY4MzIsIDAuMDA2ODI1LCAwLjAwNjgyMyIsIFwKLSAgICAgICAgICAiMC4wMDY5MDMsIDAuMDA2OTA4LCAwLjAwNjg5NywgMC4wMDY4ODksIDAuMDA2ODgyLCAwLjAwNjg3NiwgMC4wMDY4NzQiLCBcCi0gICAgICAgICAgIjAuMDA3MDA2LCAwLjAwNzAxMSwgMC4wMDcsIDAuMDA2OTkyLCAwLjAwNjk4NSwgMC4wMDY5NzgsIDAuMDA2OTc2IiwgXAotICAgICAgICAgICIwLjAwNzA5MywgMC4wMDcwOTcsIDAuMDA3MDg2LCAwLjAwNzA3NywgMC4wMDcwNjksIDAuMDA3MDYyLCAwLjAwNzA2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHNjYWxhcikgewotICAgICAgICB2YWx1ZXMoIjAiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0OTYyLCAwLjAwNDk3LCAwLjAwNDk4MywgMC4wMDQ5ODUsIDAuMDA0OTg3LCAwLjAwNDk4OCwgMC4wMDQ5ODgiLCBcCi0gICAgICAgICAgIjAuMDA0OTM0LCAwLjAwNDk0MiwgMC4wMDQ5NTQsIDAuMDA0OTU3LCAwLjAwNDk1OCwgMC4wMDQ5NTksIDAuMDA0OTYzIiwgXAotICAgICAgICAgICIwLjAwNDkyNCwgMC4wMDQ5MzIsIDAuMDA0OTQ0LCAwLjAwNDk0NywgMC4wMDQ5NDgsIDAuMDA0OTQ5LCAwLjAwNDk1IiwgXAotICAgICAgICAgICIwLjAwNDkyOCwgMC4wMDQ5MzcsIDAuMDA0OTUsIDAuMDA0OTUyLCAwLjAwNDk1NywgMC4wMDQ5NTUsIDAuMDA0OTU1IiwgXAotICAgICAgICAgICIwLjAwNDk0NiwgMC4wMDQ5NTQsIDAuMDA0OTY3LCAwLjAwNDk3LCAwLjAwNDk3NCwgMC4wMDQ5NzMsIDAuMDA0OTc3IiwgXAotICAgICAgICAgICIwLjAwNDk5MywgMC4wMDUwMDEsIDAuMDA1MDE0LCAwLjAwNTAxNywgMC4wMDUwMTksIDAuMDA1MDIsIDAuMDA1MDIxIiwgXAotICAgICAgICAgICIwLjAwNTA0NCwgMC4wMDUwNTQsIDAuMDA1MDY0LCAwLjAwNTA3LCAwLjAwNTA3MiwgMC4wMDUwNzMsIDAuMDA1MDc0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2NDUsIDAuMDA2NDU5LCAwLjAwNjQ3LCAwLjAwNjQ3MywgMC4wMDY0NzQsIDAuMDA2NDc1LCAwLjAwNjQ3NSIsIFwKLSAgICAgICAgICAiMC4wMDY0MzgsIDAuMDA2NDQ2LCAwLjAwNjQ1OCwgMC4wMDY0NiwgMC4wMDY0NjEsIDAuMDA2NDYyLCAwLjAwNjQ2NCIsIFwKLSAgICAgICAgICAiMC4wMDY0NTYsIDAuMDA2NDY0LCAwLjAwNjQ3NiwgMC4wMDY0NzgsIDAuMDA2NDgsIDAuMDA2NDgxLCAwLjAwNjQ4MiIsIFwKLSAgICAgICAgICAiMC4wMDY0OTgsIDAuMDA2NTA2LCAwLjAwNjUxOSwgMC4wMDY1MjEsIDAuMDA2NTIzLCAwLjAwNjUyNCwgMC4wMDY1MjQiLCBcCi0gICAgICAgICAgIjAuMDA2NTUsIDAuMDA2NTU4LCAwLjAwNjU3LCAwLjAwNjU3MywgMC4wMDY1NzQsIDAuMDA2NTc1LCAwLjAwNjU3NiIsIFwKLSAgICAgICAgICAiMC4wMDY2NjUsIDAuMDA2Njc0LCAwLjAwNjY4NSwgMC4wMDY2ODksIDAuMDA2NjksIDAuMDA2NjkyLCAwLjAwNjY5MiIsIFwKLSAgICAgICAgICAiMC4wMDY3ODQsIDAuMDA2NzkyLCAwLjAwNjgwMywgMC4wMDY4MDYsIDAuMDA2ODA3LCAwLjAwNjgwOCwgMC4wMDY4MDkiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFJOKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2NDQ1MTQ7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjQ0NTE0OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDY0NDQ3MzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA2NTcsIDAuMDAwNjUyLCAwLjAwMDcyLCAwLjAwMDgxNCwgMC4wMDA5MjksIDAuMDAxMTM4LCAwLjAwMTMyNiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzI4MiwgMC4wMDMyODMsIDAuMDAzMzQ4LCAwLjAwMzQ0MywgMC4wMDM1NjEsIDAuMDAzODAzLCAwLjAwMzk3MSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQmIVNFJiFTSSZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fU0VfRVFfMF9BTl9TSV9FUV8wX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4xNDYyNjksIDAuMTU0MTU0LCAwLjE2MjU0OSwgMC4xNjg4MSwgMC4xNzM3MTcsIDAuMTgwMzQ4LCAwLjE4NTI2NCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDS04iOwotICAgICAgdGltaW5nX3R5cGUgOiByZWNvdmVyeV9mYWxsaW5nOwotICAgICAgd2hlbiA6ICJTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJTTiA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChyZWNvdmVyeV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzEyNSwgMC4wMiwgMC4wMTM3NSwgMC4wMDc1LCAwLjAwMTI1LCAtMC4wMDI1LCAtMC4wMTEyNSIsIFwKLSAgICAgICAgICAiMC4wMzYyNSwgMC4wMzEyNSwgMC4wMTg3NSwgMC4wMTI1LCAwLjAxMjUsIDAuMDAyNSwgMCIsIFwKLSAgICAgICAgICAiMC4wNDg3NSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMTg3NSwgMC4wMDg3NSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiMC4wNTUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMjUsIDAuMDE1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMDU1LCAwLjA1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDMxMjUsIDAuMDIxMjUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMDY1LCAwLjA1Mzc1LCAwLjA0NzUsIDAuMDQxMjUsIDAuMDM1LCAwLjAyNSwgMC4wMjI1IiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDYyNSwgMC4wNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzMzc1LCAwLjAyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJlY292ZXJ5X3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUQmIVNFJiFTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fU0VfRVFfMF9BTl9TSV9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHJlY292ZXJ5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1LCAwLjA1NSwgMC4wNjEyNSwgMC4wNjc1LCAwLjA3Mzc1LCAwLjA4Mzc1LCAwLjA5MjUiLCBcCi0gICAgICAgICAgIjAuMDQ1LCAwLjA1LCAwLjA1NjI1LCAwLjA2MjUsIDAuMDY4NzUsIDAuMDc4NzUsIDAuMDgxMjUiLCBcCi0gICAgICAgICAgIjAuMDM4NzUsIDAuMDQzNzUsIDAuMDUsIDAuMDU2MjUsIDAuMDYyNSwgMC4wNzI1LCAwLjA4MTI1IiwgXAotICAgICAgICAgICIwLjAzODc1LCAwLjA0Mzc1LCAwLjA1LCAwLjA1NjI1LCAwLjA2MjUsIDAuMDY2MjUsIDAuMDc1IiwgXAotICAgICAgICAgICIwLjAzMjUsIDAuMDQzNzUsIDAuMDUsIDAuMDUsIDAuMDU2MjUsIDAuMDY2MjUsIDAuMDc1IiwgXAotICAgICAgICAgICIwLjAzNSwgMC4wNCwgMC4wNDYyNSwgMC4wNTI1LCAwLjA1ODc1LCAwLjA2MjUsIDAuMDcxMjUiLCBcCi0gICAgICAgICAgIjAuMDMyNSwgMC4wMzc1LCAwLjA0Mzc1LCAwLjA1LCAwLjA1NjI1LCAwLjA2LCAwLjA2ODc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJlbW92YWxfZmFsbGluZzsKLSAgICAgIHdoZW4gOiAiU04iOwotICAgICAgc2RmX2NvbmQgOiAiU04gPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQocmVtb3ZhbF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMCwgMC4wMDUsIDAuMDExMjUsIDAuMDE3NSwgMC4wMjM3NSwgMC4wMzM3NSwgMC4wMzYyNSIsIFwKLSAgICAgICAgICAiLTAuMDExMjUsIDAsIDAuMDA2MjUsIDAuMDEyNSwgMC4wMTg3NSwgMC4wMjI1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDE3NSwgLTAuMDEyNSwgMCwgMC4wMDYyNSwgMC4wMDYyNSwgMC4wMTYyNSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxODc1LCAtMC4wMDYyNSwgMCwgMCwgMC4wMSwgMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLCAwLjAwMzc1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wMzM3NSwgLTAuMDI4NzUsIC0wLjAyMjUsIC0wLjAxNjI1LCAtMC4wMSwgMCwgMC4wMDI1IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA4NzUsIC0wLjAwNjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTRSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxMjcxNTk7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxMjcxNTk7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxMjcwODE7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA1NTYyLCAwLjAwNTU3MywgMC4wMDU2NDgsIDAuMDA1NzkxLCAwLjAwNTkwNiwgMC4wMDYxMjcsIDAuMDA2MzI4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA3NzY5LCAwLjAwNzc4MywgMC4wMDc4ODcsIDAuMDA4MDQxLCAwLjAwODI0NCwgMC4wMDg2MDgsIDAuMDA4OTI4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfZmFsbGluZzsKLSAgICAgIHdoZW4gOiAiUk4mU04iOwotICAgICAgc2RmX2NvbmQgOiAiUk5fRVFfMV9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAwNjI1LCAtMC4wMDEyNSwgMC4wMDUsIDAuMDExMjUsIDAuMDE3NSwgMC4wMjEyNSwgMC4wMjM3NSIsIFwKLSAgICAgICAgICAiLTAuMDE3NSwgLTAuMDA2MjUsIDAsIDAuMDA2MjUsIDAuMDA2MjUsIDAuMDE2MjUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAsIDAuMDAzNzUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgLTAuMDAyNSwgMCIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTg3NSwgLTAuMDA4NzUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wNDYyNSwgLTAuMDQxMjUsIC0wLjAzNSwgLTAuMDI4NzUsIC0wLjAyMjUsIC0wLjAxODc1LCAtMC4wMTYyNSIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAyNzUsIC0wLjAyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAyNSwgLTAuMDEzNzUsIC0wLjAwNzUsIC0wLjAwMTI1LCAtMC4wMDEyNSwgMC4wMDg3NSwgMC4wMTEyNSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAyNSwgLTAuMDEyNSwgLTAuMDEyNSwgLTAuMDA2MjUsIC0wLjAwMjUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA4NzUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDE4NzUsIC0wLjAwODc1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxNSwgLTAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDUyNSwgLTAuMDQxMjUsIC0wLjAzNSwgLTAuMDI4NzUsIC0wLjAyODc1LCAtMC4wMTg3NSwgLTAuMDE2MjUiLCBcCi0gICAgICAgICAgIi0wLjA1NSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMzEyNSwgLTAuMDIxMjUsIC0wLjAxODc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX2ZhbGxpbmc7Ci0gICAgICB3aGVuIDogIlJOJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIlJOX0VRXzFfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODc1LCAwLjA4MjUsIDAuMDcsIDAuMDYzNzUsIDAuMDYzNzUsIDAuMDYsIDAuMDU3NSIsIFwKLSAgICAgICAgICAiMC4wOTg3NSwgMC4wODc1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjUsIDAuMDYyNSIsIFwKLSAgICAgICAgICAiMC4xMDUsIDAuMDkzNzUsIDAuMDg3NSwgMC4wODEyNSwgMC4wNzUsIDAuMDcxMjUsIDAuMDY4NzUiLCBcCi0gICAgICAgICAgIjAuMTA1LCAwLjEsIDAuMDkzNzUsIDAuMDg3NSwgMC4wODEyNSwgMC4wNzc1LCAwLjA3NSIsIFwKLSAgICAgICAgICAiMC4xMTEyNSwgMC4xMDYyNSwgMC4wOTM3NSwgMC4wODc1LCAwLjA4NzUsIDAuMDgzNzUsIDAuMDgxMjUiLCBcCi0gICAgICAgICAgIjAuMTE1LCAwLjExLCAwLjA5NzUsIDAuMDk3NSwgMC4wOTEyNSwgMC4wODc1LCAwLjA4NSIsIFwKLSAgICAgICAgICAiMC4xMjM3NSwgMC4xMTI1LCAwLjEwNjI1LCAwLjEsIDAuMDkzNzUsIDAuMDksIDAuMDg3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3NSwgMC4wNywgMC4wNTc1LCAwLjA1MTI1LCAwLjA1MTI1LCAwLjA0NzUsIDAuMDQ1IiwgXAotICAgICAgICAgICIwLjA4NjI1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1MjUsIDAuMDUiLCBcCi0gICAgICAgICAgIjAuMDkyNSwgMC4wODEyNSwgMC4wNzUsIDAuMDY4NzUsIDAuMDY4NzUsIDAuMDY1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICIwLjA5ODc1LCAwLjA5Mzc1LCAwLjA4NzUsIDAuMDgxMjUsIDAuMDc1LCAwLjA3MTI1LCAwLjA2ODc1IiwgXAotICAgICAgICAgICIwLjExMTI1LCAwLjEsIDAuMDkzNzUsIDAuMDg3NSwgMC4wODEyNSwgMC4wNzc1LCAwLjA3NSIsIFwKLSAgICAgICAgICAiMC4xMjEyNSwgMC4xMSwgMC4xMDM3NSwgMC4wOTc1LCAwLjA5MTI1LCAwLjA4NzUsIDAuMDg1IiwgXAotICAgICAgICAgICIwLjEzLCAwLjExODc1LCAwLjExMjUsIDAuMTA2MjUsIDAuMSwgMC4wOTYyNSwgMC4wOTM3NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oU0kpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDczNDcxNTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA3MzM2Njc7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNzM0NzE1OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzkwOCwgMC4wMDM4ODYsIDAuMDAzOTAyLCAwLjAwMzk0MiwgMC4wMDQsIDAuMDA0MTA3LCAwLjAwNDIyNCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNjA0OSwgMC4wMDYwMzMsIDAuMDA2MDQ2LCAwLjAwNjA4NSwgMC4wMDYxMzYsIDAuMDA2MjQ0LCAwLjAwNjM1MSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDS04iOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX2ZhbGxpbmc7Ci0gICAgICB3aGVuIDogIlJOJlNFJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIlJOX0VRXzFfQU5fU0VfRVFfMV9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAxMjUsIC0wLjAwNzUsIDAuMDA1LCAwLjAwNSwgMC4wMTEyNSwgMC4wMTUsIDAuMDIzNzUiLCBcCi0gICAgICAgICAgIi0wLjAxNzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLCAwLjAwNjI1LCAwLjAxLCAwLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAsIDAuMDAzNzUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgLTAuMDAyNSwgMCIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDg3NSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA0NjI1LCAtMC4wMzUsIC0wLjAyODc1LCAtMC4wMjg3NSwgLTAuMDIyNSwgLTAuMDE4NzUsIC0wLjAxIiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMzEyNSwgLTAuMDIxMjUsIC0wLjAxODc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDM3NSwgLTAuMDMyNSwgLTAuMDMyNSwgLTAuMDMyNSwgLTAuMDI2MjUsIC0wLjAyODc1LCAtMC4wMjYyNSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDM3NSwgLTAuMDM3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAzMzc1LCAtMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjA0Mzc1LCAtMC4wNDM3NSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjA0LCAtMC4wMzc1IiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wNDYyNSwgLTAuMDQzNzUiLCBcCi0gICAgICAgICAgIi0wLjA2MTI1LCAtMC4wNTYyNSwgLTAuMDU2MjUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDUyNSwgLTAuMDUiLCBcCi0gICAgICAgICAgIi0wLjA3MTI1LCAtMC4wNjYyNSwgLTAuMDYsIC0wLjA2LCAtMC4wNiwgLTAuMDU2MjUsIC0wLjA1Mzc1IiwgXAotICAgICAgICAgICItMC4wNzM3NSwgLTAuMDY4NzUsIC0wLjA2ODc1LCAtMC4wNjg3NSwgLTAuMDYyNSwgLTAuMDY1LCAtMC4wNjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX2ZhbGxpbmc7Ci0gICAgICB3aGVuIDogIlJOJlNFJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIlJOX0VRXzFfQU5fU0VfRVFfMV9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2MjUsIDAuMDU3NSwgMC4wNDUsIDAuMDM4NzUsIDAuMDM4NzUsIDAuMDI4NzUsIDAuMDI2MjUiLCBcCi0gICAgICAgICAgIjAuMDY3NSwgMC4wNjI1LCAwLjA1LCAwLjA1LCAwLjA0Mzc1LCAwLjA0LCAwLjAzMTI1IiwgXAotICAgICAgICAgICIwLjA4LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDUsIDAuMDQ2MjUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMDg2MjUsIDAuMDc1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDUyNSwgMC4wNSIsIFwKLSAgICAgICAgICAiMC4wOTI1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1ODc1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICIwLjEwMjUsIDAuMDkxMjUsIDAuMDg1LCAwLjA3ODc1LCAwLjA3MjUsIDAuMDY4NzUsIDAuMDYiLCBcCi0gICAgICAgICAgIjAuMTA1LCAwLjEsIDAuMDg3NSwgMC4wODEyNSwgMC4wODEyNSwgMC4wNzEyNSwgMC4wNjg3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4MTI1LCAwLjA3LCAwLjA2Mzc1LCAwLjA1NzUsIDAuMDUxMjUsIDAuMDQ3NSwgMC4wNDUiLCBcCi0gICAgICAgICAgIjAuMDg2MjUsIDAuMDc1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDYyNSwgMC4wNTg3NSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiMC4wOTI1LCAwLjA4NzUsIDAuMDc1LCAwLjA2ODc1LCAwLjA2ODc1LCAwLjA2NSwgMC4wNjI1IiwgXAotICAgICAgICAgICIwLjA5ODc1LCAwLjA5Mzc1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNzUsIDAuMDcxMjUsIDAuMDY4NzUiLCBcCi0gICAgICAgICAgIjAuMTA1LCAwLjA5Mzc1LCAwLjA4NzUsIDAuMDgxMjUsIDAuMDgxMjUsIDAuMDc3NSwgMC4wNzUiLCBcCi0gICAgICAgICAgIjAuMTE1LCAwLjEwMzc1LCAwLjA5NzUsIDAuMDkxMjUsIDAuMDg1LCAwLjA4MTI1LCAwLjA3ODc1IiwgXAotICAgICAgICAgICIwLjExNzUsIDAuMTEyNSwgMC4xLCAwLjEsIDAuMDkzNzUsIDAuMDksIDAuMDg3NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oU04pICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTY5MTY1OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTY5MTQzOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTY5MTY1OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDU5MywgMC4wMDA1OTIsIDAuMDAwNTkyLCAwLjAwMDU5MiwgMC4wMDA1OTIsIDAuMDAwNTkyLCAwLjAwMDU5MiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDYwMywgMC4wMDA1OTcsIDAuMDAwNTk1LCAwLjAwMDU5NSwgMC4wMDA1OTUsIDAuMDAwNTk0LCAwLjAwMDU5NCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQmIVJOJiFTRSYhU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1JOX0VRXzBfQU5fU0VfRVFfMF9BTl9TSV9FUV8wID09IDEnYjEiOwotICAgICAgZmFsbF9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMTEyMDkzLCAwLjExODY0OCwgMC4xMjcxMTgsIDAuMTM1ODE1LCAwLjE0MzA3NiwgMC4xNTI2MDEsIDAuMTU5NDE1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJlY292ZXJ5X2ZhbGxpbmc7Ci0gICAgICB3aGVuIDogIlJOIjsKLSAgICAgIHNkZl9jb25kIDogIlJOID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHJlY292ZXJ5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyNSwgMC4wMiwgMC4wMDc1LCAwLjAwMTI1LCAwLjAwMTI1LCAtMC4wMDg3NSwgLTAuMDExMjUiLCBcCi0gICAgICAgICAgIjAuMDMsIDAuMDI1LCAwLjAxMjUsIDAuMDEyNSwgMC4wMDYyNSwgMC4wMDI1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiMC4wNDI1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMTg3NSwgMC4wMTI1LCAwLjAwODc1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICIwLjA0ODc1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDI1LCAwLjAxODc1LCAwLjAxNSwgMC4wMTI1IiwgXAotICAgICAgICAgICIwLjA1NSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMjEyNSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4wNjUsIDAuMDUzNzUsIDAuMDQ3NSwgMC4wNDEyNSwgMC4wMzUsIDAuMDMxMjUsIDAuMDI4NzUiLCBcCi0gICAgICAgICAgIjAuMDczNzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNSwgMC4wNDM3NSwgMC4wNCwgMC4wMzc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJlbW92YWxfZmFsbGluZzsKLSAgICAgIHdoZW4gOiAiUk4iOwotICAgICAgc2RmX2NvbmQgOiAiUk4gPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQocmVtb3ZhbF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDYyNSwgMC4wMTc1LCAwLjAyMzc1LCAwLjAzLCAwLjAzLCAwLjA0LCAwLjA0MjUiLCBcCi0gICAgICAgICAgIjAuMDAxMjUsIDAuMDA2MjUsIDAuMDE4NzUsIDAuMDI1LCAwLjAyNSwgMC4wMjg3NSwgMC4wMzc1IiwgXAotICAgICAgICAgICItMC4wMDUsIDAsIDAuMDEyNSwgMC4wMTg3NSwgMC4wMTg3NSwgMC4wMjg3NSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDExMjUsIDAsIDAuMDA2MjUsIDAuMDEyNSwgMC4wMTg3NSwgMC4wMjI1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDExMjUsIC0wLjAwNjI1LCAwLCAwLjAwNjI1LCAwLjAxMjUsIDAuMDE2MjUsIDAuMDI1IiwgXAotICAgICAgICAgICItMC4wMjEyNSwgLTAuMDEsIC0wLjAwMzc1LCAwLjAwMjUsIDAuMDA4NzUsIDAuMDEyNSwgMC4wMTUiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMCwgMC4wMDYyNSwgMC4wMSwgMC4wMTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBTREZGTlNSWDQgKgotICogLS0tLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChTREZGTlNSWDQpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMi4wMTc4ODsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBmZiAoTjM1LFFCSU5UKSB7Ci0gICAgbmV4dF9zdGF0ZSA6ICIoKFNFIFNJKSArICghU0UgRCkpIjsKLSAgICBjbG9ja2VkX29uIDogIighQ0tOKSI7Ci0gICAgY2xlYXIgOiAiKCFSTikiOwotICAgIHByZXNldCA6ICIoIVNOKSI7Ci0gICAgY2xlYXJfcHJlc2V0X3ZhcjEgOiBIOwotICAgIGNsZWFyX3ByZXNldF92YXIyIDogTDsKLSAgfQotICBwaW4oQ0tOKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2NjczNDI7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjY3MzQyOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDY2NzI3OwotICAgIGNsb2NrIDogdHJ1ZTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDgyMzgsIDAuMDA4MjM2LCAwLjAwODMzNSwgMC4wMDg0MjksIDAuMDA4NTY1LCAwLjAwODg0NiwgMC4wMDkwNzgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDU5NDIsIDAuMDA1OTMsIDAuMDA1OTk5LCAwLjAwNjA5NiwgMC4wMDYyMjMsIDAuMDA2MzU0LCAwLjAwNjUyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDS04iOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFEJlJOJiFTRSYhU0kmU04iOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1JOX0VRXzFfQU5fU0VfRVFfMF9BTl9TSV9FUV8wX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wODcwNTcsIDAuMDk1Mjc4LCAwLjEwNTMxOSwgMC4xMTM0NTgsIDAuMTIwMDc1LCAwLjEyODc1NCwgMC4xMzUxODgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjExMjkxOSwgMC4xMjA5OSwgMC4xMzA0NTgsIDAuMTM4NTU5LCAwLjE0NTA4MSwgMC4xNTM0NTIsIDAuMTU5NzMzIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihEKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2OTgxOTY7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjk2OTk7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjk4MTk2OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNDcwMiwgMC4wMDQ2OCwgMC4wMDQ2OTMsIDAuMDA0NzMxLCAwLjAwNDc4NiwgMC4wMDQ4OTYsIDAuMDA1MDExIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA2MTEyLCAwLjAwNjA5NiwgMC4wMDYxMDgsIDAuMDA2MTQxLCAwLjAwNjE5MSwgMC4wMDYyOTUsIDAuMDA2Mzk4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfZmFsbGluZzsKLSAgICAgIHdoZW4gOiAiUk4mIVNFJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIlJOX0VRXzFfQU5fU0VfRVFfMF9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAwNjI1LCAtMC4wMDEyNSwgMC4wMTEyNSwgMC4wMTc1LCAwLjAyMzc1LCAwLjAyNzUsIDAuMDM2MjUiLCBcCi0gICAgICAgICAgIi0wLjAxMTI1LCAtMC4wMDYyNSwgMC4wMDYyNSwgMC4wMTI1LCAwLjAxODc1LCAwLjAyMjUsIDAuMDI1IiwgXAotICAgICAgICAgICItMC4wMTc1LCAtMC4wMTI1LCAwLCAwLjAwNjI1LCAwLjAwNjI1LCAwLjAxNjI1LCAwLjAxODc1IiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDE4NzUsIC0wLjAxMjUsIDAsIDAsIDAuMDEsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAyNSwgLTAuMDEyNSwgLTAuMDA2MjUsIC0wLjAwNjI1LCAwLjAwMzc1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wNCwgLTAuMDI4NzUsIC0wLjAyMjUsIC0wLjAxNjI1LCAtMC4wMSwgLTAuMDA2MjUsIDAuMDAyNSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAwODc1LCAtMC4wMDYyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAzMTI1LCAtMC4wMjYyNSwgLTAuMDI2MjUsIC0wLjAyLCAtMC4wMTM3NSwgLTAuMDE2MjUsIC0wLjAwNzUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzMTI1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMjUsIC0wLjAyMTI1LCAtMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDMxMjUsIC0wLjAyNzUsIC0wLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzNzUsIC0wLjAzMzc1LCAtMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDYxMjUsIC0wLjA1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjA0Mzc1LCAtMC4wNCwgLTAuMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDY1LCAtMC4wNiwgLTAuMDUzNzUsIC0wLjA1Mzc1LCAtMC4wNDc1LCAtMC4wNDM3NSwgLTAuMDQxMjUiLCBcCi0gICAgICAgICAgIi0wLjA2NzUsIC0wLjA2MjUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNTYyNSwgLTAuMDUyNSwgLTAuMDUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0tOIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfZmFsbGluZzsKLSAgICAgIHdoZW4gOiAiUk4mIVNFJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIlJOX0VRXzFfQU5fU0VfRVFfMF9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2ODc1LCAwLjA2Mzc1LCAwLjA1MTI1LCAwLjA0NSwgMC4wMzg3NSwgMC4wMjg3NSwgMC4wMjYyNSIsIFwKLSAgICAgICAgICAiMC4wNzM3NSwgMC4wNjg3NSwgMC4wNTYyNSwgMC4wNSwgMC4wNDM3NSwgMC4wMzM3NSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4wODYyNSwgMC4wNzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNSwgMC4wNDYyNSwgMC4wMzc1IiwgXAotICAgICAgICAgICIwLjA5MjUsIDAuMDgxMjUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNTI1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjA5ODc1LCAwLjA4NzUsIDAuMDgxMjUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNTg3NSwgMC4wNSIsIFwKLSAgICAgICAgICAiMC4xMDg3NSwgMC4wOTc1LCAwLjA4NSwgMC4wNzg3NSwgMC4wNzI1LCAwLjA2MjUsIDAuMDYiLCBcCi0gICAgICAgICAgIjAuMTExMjUsIDAuMTA2MjUsIDAuMDkzNzUsIDAuMDg3NSwgMC4wODEyNSwgMC4wNzEyNSwgMC4wNjg3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4NzUsIDAuMDc2MjUsIDAuMDcsIDAuMDU3NSwgMC4wNTc1LCAwLjA0NzUsIDAuMDQ1IiwgXAotICAgICAgICAgICIwLjA5MjUsIDAuMDgxMjUsIDAuMDc1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDUyNSwgMC4wNSIsIFwKLSAgICAgICAgICAiMC4wOTg3NSwgMC4wOTM3NSwgMC4wODEyNSwgMC4wNzUsIDAuMDY4NzUsIDAuMDU4NzUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIjAuMTA1LCAwLjEsIDAuMDg3NSwgMC4wODEyNSwgMC4wNzUsIDAuMDY1LCAwLjA2MjUiLCBcCi0gICAgICAgICAgIjAuMTExMjUsIDAuMTA2MjUsIDAuMDkzNzUsIDAuMDg3NSwgMC4wODEyNSwgMC4wNzEyNSwgMC4wNjg3NSIsIFwKLSAgICAgICAgICAiMC4xMjEyNSwgMC4xMSwgMC4xMDM3NSwgMC4wOTEyNSwgMC4wODUsIDAuMDgxMjUsIDAuMDc4NzUiLCBcCi0gICAgICAgICAgIjAuMTMsIDAuMTE4NzUsIDAuMTA2MjUsIDAuMSwgMC4wOTM3NSwgMC4wOSwgMC4wODEyNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAxLjM1OTU5OwotICAgIGZ1bmN0aW9uIDogIk4zNSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0tOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5vbl91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogZmFsbGluZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwNTA1MSwgMC4xNjA5NzQsIDAuMjE1NTIxLCAwLjI1NDExNSwgMC4zMTY0NDgsIDAuMzcxMDU4LCAwLjQ0ODc4OSIsIFwKLSAgICAgICAgICAiMC4xMTMyMTUsIDAuMTY5MTIzLCAwLjIyMzU1NiwgMC4yNjI0MzQsIDAuMzI0NjM2LCAwLjM3OTIxNiwgMC40NTY5NzQiLCBcCi0gICAgICAgICAgIjAuMTIyNzE4LCAwLjE3ODU4LCAwLjIzMzA0MSwgMC4yNzE4MzMsIDAuMzM0MDE5LCAwLjM4ODQ4NCwgMC40NjYzNzYiLCBcCi0gICAgICAgICAgIjAuMTMwNzMxLCAwLjE4NjU5MiwgMC4yNDExMjUsIDAuMjc5ODQ1LCAwLjM0MjAxOSwgMC4zOTY0NzIsIDAuNDc0Mzk4IiwgXAotICAgICAgICAgICIwLjEzNzAyNiwgMC4xOTI5MywgMC4yNDczNzEsIDAuMjg2MTk0LCAwLjM0ODM4NSwgMC40MDMwMzMsIDAuNDgwNzE0IiwgXAotICAgICAgICAgICIwLjE0NTM2OSwgMC4yMDEyNzEsIDAuMjU1ODU5LCAwLjI5NDU4NiwgMC4zNTY4MzcsIDAuNDExNDA5LCAwLjQ4OTA3MiIsIFwKLSAgICAgICAgICAiMC4xNTE0MjIsIDAuMjA3MzMsIDAuMjYxNzc5LCAwLjMwMDU5MiwgMC4zNjMwMTgsIDAuNDE3MjQ2LCAwLjQ5NDk0MiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyNzIxMywgMC4xMzczMDMsIDAuMjUwNzM3LCAwLjMzMjAyOSwgMC40NjI5MjIsIDAuNTc4MTIzLCAwLjc0MjM2NyIsIFwKLSAgICAgICAgICAiMC4wMjcxMjcsIDAuMTM3NDcyLCAwLjI1MDcxMiwgMC4zMzIxMzcsIDAuNDYyNjQsIDAuNTc4MTE4LCAwLjc0MTExIiwgXAotICAgICAgICAgICIwLjAyNzAyNSwgMC4xMzcwMzUsIDAuMjUwNzMxLCAwLjMzMjI5MywgMC40NjI5MTksIDAuNTc3MDk1LCAwLjc0MjM4NCIsIFwKLSAgICAgICAgICAiMC4wMjcwMzIsIDAuMTM2OTUyLCAwLjI1MDYyMiwgMC4zMzIyOTIsIDAuNDYyODYsIDAuNTc3MDY3LCAwLjc0MjM4MiIsIFwKLSAgICAgICAgICAiMC4wMjY5ODMsIDAuMTM3MzI0LCAwLjI1MDczNSwgMC4zMzIzNzksIDAuNDYzMDMzLCAwLjU3NzQyNSwgMC43NDIzODEiLCBcCi0gICAgICAgICAgIjAuMDI3MTA1LCAwLjEzNzE0MywgMC4yNTA3MjksIDAuMzMyMzg3LCAwLjQ2MzI1LCAwLjU3NzM1NywgMC43NDIzODUiLCBcCi0gICAgICAgICAgIjAuMDI3MTEsIDAuMTM3MjQyLCAwLjI1MDcxNiwgMC4zMzIzNTMsIDAuNDYyODg1LCAwLjU3ODAyMSwgMC43NDE5NyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5NDgyLCAwLjE1MDU0MywgMC4yMDQ3NjMsIDAuMjQzNTc5LCAwLjMwNTYxNCwgMC4zNTk3NjcsIDAuNDM3MTcxIiwgXAotICAgICAgICAgICIwLjEwMjg4MywgMC4xNTg2MDMsIDAuMjEyODE4LCAwLjI1MTY4MSwgMC4zMTM2NjQsIDAuMzY3ODM0LCAwLjQ0NTIzIiwgXAotICAgICAgICAgICIwLjExMjM1MywgMC4xNjgwNzEsIDAuMjIyMjg4LCAwLjI2MTExLCAwLjMyMzEyMywgMC4zNzcyNzgsIDAuNDU0Njk0IiwgXAotICAgICAgICAgICIwLjEyMDQ1MSwgMC4xNzYxNjEsIDAuMjMwMzg1LCAwLjI2OTE3NCwgMC4zMzEyMTksIDAuMzg1MzY2LCAwLjQ2Mjc4NiIsIFwKLSAgICAgICAgICAiMC4xMjY5NjUsIDAuMTgyNjgyLCAwLjIzNzAzNCwgMC4yNzU3NzIsIDAuMzM3NzQsIDAuMzkxNjAzLCAwLjQ2OTMwNyIsIFwKLSAgICAgICAgICAiMC4xMzUzODgsIDAuMTkxMDg5LCAwLjI0NTQ2NywgMC4yODQyNDQsIDAuMzQ2MTU1LCAwLjQwMDI5NCwgMC40Nzc3MTgiLCBcCi0gICAgICAgICAgIjAuMTQxNjU3LCAwLjE5NzM5MSwgMC4yNTE3MywgMC4yOTAzMjIsIDAuMzUyNDg0LCAwLjQwNjYwMiwgMC40ODQwOTUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjU5MDUsIDAuMTM1MjkzLCAwLjI0NTk5MiwgMC4zMjYzMjQsIDAuNDU1MTk4LCAwLjU2Nzk5LCAwLjcyOTE5OSIsIFwKLSAgICAgICAgICAiMC4wMjU5NjgsIDAuMTM1MzAxLCAwLjI0NTk5OSwgMC4zMjY1MzEsIDAuNDU1MTkzLCAwLjU2Nzk5LCAwLjcyOTIwMSIsIFwKLSAgICAgICAgICAiMC4wMjU5NTcsIDAuMTM1Mjg3LCAwLjI0NjU0OSwgMC4zMjYzMTYsIDAuNDU1MTY2LCAwLjU2Nzk5NywgMC43MjkxOTkiLCBcCi0gICAgICAgICAgIjAuMDI1ODY2LCAwLjEzNTM2OSwgMC4yNDYwMzIsIDAuMzI2MzA4LCAwLjQ1NTE3NywgMC41Njc5OTgsIDAuNzI5MTk4IiwgXAotICAgICAgICAgICIwLjAyNTU3MywgMC4xMzQyMDksIDAuMjQ2MTI0LCAwLjMyNzE1MSwgMC40NTQ3NzMsIDAuNTY2MjgyLCAwLjcyOTE5MyIsIFwKLSAgICAgICAgICAiMC4wMjU2ODIsIDAuMTM1MzEyLCAwLjI0NjEzMywgMC4zMjYzODUsIDAuNDU1MTY1LCAwLjU2ODAwMSwgMC43MjkxOTMiLCBcCi0gICAgICAgICAgIjAuMDI1ODY2LCAwLjEzNTI5OCwgMC4yNDYxODUsIDAuMzI2MjEyLCAwLjQ1NTIwOCwgMC41Njc5MzgsIDAuNzI5MjE3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiBjbGVhcjsKLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMjMyMDEsIDAuMTc4OTAxLCAwLjIzMzEzNywgMC4yNzE5NjcsIDAuMzMzNjc3LCAwLjM4Nzk4NywgMC40NjU1NjciLCBcCi0gICAgICAgICAgIjAuMTMxMDk4LCAwLjE4Njc0NSwgMC4yNDA5OTEsIDAuMjc5Nzg3LCAwLjM0MTY1LCAwLjM5NjIzNCwgMC40NzMwNTEiLCBcCi0gICAgICAgICAgIjAuMTM5NDA2LCAwLjE5NTA1MSwgMC4yNDkzMDcsIDAuMjg4MTU3LCAwLjM0OTg1NywgMC40MDQxODksIDAuNDgxODI5IiwgXAotICAgICAgICAgICIwLjE0NTYxMywgMC4yMDEyNTcsIDAuMjU1NTA2LCAwLjI5NDI1MywgMC4zNTY0NzYsIDAuNDEwNTE5LCAwLjQ4NzcxMSIsIFwKLSAgICAgICAgICAiMC4xNTA1NjQsIDAuMjA2MjQsIDAuMjYwNDksIDAuMjk5Mjk2LCAwLjM2MTQzOSwgMC40MTU0OTcsIDAuNDkyNjg5IiwgXAotICAgICAgICAgICIwLjE1NjkxMSwgMC4yMTI2MjYsIDAuMjY2ODY0LCAwLjMwNTcwNSwgMC4zNjc3MDYsIDAuNDIxODE4LCAwLjQ5ODk3MiIsIFwKLSAgICAgICAgICAiMC4xNjE4ODksIDAuMjE3NTc4LCAwLjI3MTg2OCwgMC4zMTA3MzksIDAuMzcyNjI1LCAwLjQyNjc2OCwgMC41MDM5NjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjY0MjgsIDAuMTM1MzI3LCAwLjI0NjY0NCwgMC4zMjcxNTIsIDAuNDU1MTE0LCAwLjU2ODAzMSwgMC43MjkyMjgiLCBcCi0gICAgICAgICAgIjAuMDI2MzE1LCAwLjEzNTMyNSwgMC4yNDYzMDMsIDAuMzI3MTY4LCAwLjQ1NTUxNywgMC41Njc5OTEsIDAuNzI4MDEiLCBcCi0gICAgICAgICAgIjAuMDI2MjcyLCAwLjEzNDY4NywgMC4yNDY0ODcsIDAuMzI3MTcyLCAwLjQ1NTMyLCAwLjU2ODAyNywgMC43MjkyNCIsIFwKLSAgICAgICAgICAiMC4wMjYyNzksIDAuMTM0MDU3LCAwLjI0NjMsIDAuMzI2NTksIDAuNDU1MTIyLCAwLjU2Nzk5OCwgMC43MjkyOCIsIFwKLSAgICAgICAgICAiMC4wMjYxODMsIDAuMTM0MjU0LCAwLjI0NjY2NywgMC4zMjcxNzIsIDAuNDU1Mjg3LCAwLjU2ODAyNSwgMC43MjkyOCIsIFwKLSAgICAgICAgICAiMC4wMjYxODMsIDAuMTM1MzksIDAuMjQ2NDI4LCAwLjMyNzExOCwgMC40NTUxMDIsIDAuNTY3OTk5LCAwLjcyODI0NCIsIFwKLSAgICAgICAgICAiMC4wMjYyNTcsIDAuMTM1MzQ0LCAwLjI0Njg5MywgMC4zMjcwMTYsIDAuNDU1MDk2LCAwLjU2Nzk5OCwgMC43MjkyOTciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiU04iOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHByZXNldDsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODU0OTgsIDAuMTQxMTY0LCAwLjE5NTY2OSwgMC4yMzQ0MDUsIDAuMjk2OSwgMC4zNTEyMDcsIDAuNDI4NjQ2IiwgXAotICAgICAgICAgICIwLjA5MjUxNiwgMC4xNDgxMywgMC4yMDI4MDMsIDAuMjQxNTcxLCAwLjMwMzg5MiwgMC4zNTgzOTIsIDAuNDM1ODMxIiwgXAotICAgICAgICAgICIwLjEwMjQzNSwgMC4xNTgwNDksIDAuMjEyNzI3LCAwLjI1MTQ5MywgMC4zMTM3NjQsIDAuMzY4MjMsIDAuNDQ1ODU5IiwgXAotICAgICAgICAgICIwLjExMTkyMywgMC4xNjc1NzksIDAuMjIyMTc2LCAwLjI2MDkwNSwgMC4zMjMzMTcsIDAuMzc3NjA3LCAwLjQ1NTA3MyIsIFwKLSAgICAgICAgICAiMC4xMjAyNjksIDAuMTc1OTE2LCAwLjIzMDQxMywgMC4yNjkyOTYsIDAuMzMxNjUyLCAwLjM4NTk0OSwgMC40NjM0MTgiLCBcCi0gICAgICAgICAgIjAuMTMxMzksIDAuMTg3MDkzLCAwLjI0MTUyNCwgMC4yODA0MDIsIDAuMzQyNjc5LCAwLjM5NzE5NCwgMC40NzQ5NTYiLCBcCi0gICAgICAgICAgIjAuMTM5Mzk0LCAwLjE5NTE1NSwgMC4yNDk2MDgsIDAuMjg4NTc0LCAwLjM1MDcsIDAuNDA1MTg1LCAwLjQ4Mjg1OSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyNjMxNSwgMC4xMzcxNDEsIDAuMjUwODU1LCAwLjMzMjc4OSwgMC40NjM3OTMsIDAuNTc4MzE5LCAwLjc0MjI0OCIsIFwKLSAgICAgICAgICAiMC4wMjYzNzQsIDAuMTM3MjI4LCAwLjI1MDk5NywgMC4zMzI2NTIsIDAuNDYzNzk4LCAwLjU3ODI4OCwgMC43NDIyMjIiLCBcCi0gICAgICAgICAgIjAuMDI2NDEsIDAuMTM3MjI1LCAwLjI1MDg2MiwgMC4zMzI4MDYsIDAuNDYzNzk5LCAwLjU3ODMxNCwgMC43NDIyNDIiLCBcCi0gICAgICAgICAgIjAuMDI2MjcsIDAuMTM3MjM0LCAwLjI1MDgwNywgMC4zMzI3OTgsIDAuNDYzODAyLCAwLjU3ODMyNywgMC43NDIyMTYiLCBcCi0gICAgICAgICAgIjAuMDI2Mzg3LCAwLjEzNzI2LCAwLjI1MDgyMywgMC4zMzI3ODYsIDAuNDYzNzk0LCAwLjU3ODMyOCwgMC43NDIyMzciLCBcCi0gICAgICAgICAgIjAuMDI2NjQyLCAwLjEzNzE3NywgMC4yNTA3NzMsIDAuMzMyNzg1LCAwLjQ2Mzc1OSwgMC41NzgzMDEsIDAuNzQyMjIiLCBcCi0gICAgICAgICAgIjAuMDI2OTczLCAwLjEzNjk2NywgMC4yNTA4MjQsIDAuMzMyNzc3LCAwLjQ2MzcxNCwgMC41NzgzMzIsIDAuNzQyMjI5Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTEwNjU0LCAwLjE2NjM1MSwgMC4yMjA2NzksIDAuMjU5NTE0LCAwLjMyMTM2NSwgMC4zNzU1NjQsIDAuNDUyNzIyIiwgXAotICAgICAgICAgICIwLjExNzQ4NiwgMC4xNzMxMzMsIDAuMjI3Mzg3LCAwLjI2NjIzOSwgMC4zMjgxODUsIDAuMzgyMjgsIDAuNDU5ODQiLCBcCi0gICAgICAgICAgIjAuMTI1MTI3LCAwLjE4MDgyNywgMC4yMzUwNTYsIDAuMjczODg3LCAwLjMzNTY4MiwgMC4zODk4MzksIDAuNDY3NDQ4IiwgXAotICAgICAgICAgICIwLjEzMjUxOCwgMC4xODgyMTksIDAuMjQyNDQ4LCAwLjI4MTI3OCwgMC4zNDMyNjUsIDAuMzk3MTk0LCAwLjQ3NDgzNSIsIFwKLSAgICAgICAgICAiMC4xMzk2NDgsIDAuMTk1MzQyLCAwLjI0OTQ1NiwgMC4yODgzNzIsIDAuMzUwMzkxLCAwLjQwNDU4OSwgMC40ODE3NDgiLCBcCi0gICAgICAgICAgIjAuMTQ5OTEyLCAwLjIwNTY4MSwgMC4yNjAxMzQsIDAuMjk4NzUsIDAuMzYwODI0LCAwLjQxNDkyMiwgMC40OTIxMDIiLCBcCi0gICAgICAgICAgIjAuMTU4MDcyLCAwLjIxMzgxOSwgMC4yNjgwMzgsIDAuMzA2ODAzLCAwLjM2ODg4NywgMC40MjMwOTQsIDAuNTAwNDU3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDI2NDgzLCAwLjEzNTMwNiwgMC4yNDY3ODcsIDAuMzI2ODYzLCAwLjQ1NTEzLCAwLjU2Nzk5OCwgMC43MjgzMjgiLCBcCi0gICAgICAgICAgIjAuMDI2MjE5LCAwLjEzNDcxOSwgMC4yNDY5NTIsIDAuMzI2OTYxLCAwLjQ1NTEzNSwgMC41NjgwMjMsIDAuNzI5MjA0IiwgXAotICAgICAgICAgICIwLjAyNjQyNywgMC4xMzUyODgsIDAuMjQ2NjEsIDAuMzI2MDAxLCAwLjQ1NTEyOCwgMC41NjgwOTgsIDAuNzI5MjA2IiwgXAotICAgICAgICAgICIwLjAyNjQxNywgMC4xMzUyODUsIDAuMjQ2NjE0LCAwLjMyNjk0MSwgMC40NTUyMzIsIDAuNTY4MTM5LCAwLjcyOTIwMiIsIFwKLSAgICAgICAgICAiMC4wMjYxNzIsIDAuMTM1MzAxLCAwLjI0NjI4MSwgMC4zMjY5OTQsIDAuNDU1MTAxLCAwLjU2ODAwNiwgMC43Mjc4ODUiLCBcCi0gICAgICAgICAgIjAuMDI2NDg1LCAwLjEzNTMxLCAwLjI0NjQxNywgMC4zMjcwODYsIDAuNDU1MTE0LCAwLjU2ODAxLCAwLjcyOTI2MiIsIFwKLSAgICAgICAgICAiMC4wMjY1NDgsIDAuMTM1Mzk1LCAwLjI0NjkxLCAwLjMyNjEsIDAuNDU1MjQyLCAwLjU2Nzk1MSwgMC43MjkxODciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDS04iOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDExNDQ5LCAwLjAxMTU2OSwgMC4wMTE1OSwgMC4wMTE1OTcsIDAuMDExNjA1LCAwLjAxMTYwNSwgMC4wMTE2MDciLCBcCi0gICAgICAgICAgIjAuMDExNDQyLCAwLjAxMTU2MiwgMC4wMTE1ODQsIDAuMDExNTkxLCAwLjAxMTYsIDAuMDExNTk5LCAwLjAxMTYwMSIsIFwKLSAgICAgICAgICAiMC4wMTE0OTIsIDAuMDExNjEyLCAwLjAxMTYzMywgMC4wMTE2NCwgMC4wMTE2NDUsIDAuMDExNjQ4LCAwLjAxMTY1IiwgXAotICAgICAgICAgICIwLjAxMTU1LCAwLjAxMTY3LCAwLjAxMTY5MiwgMC4wMTE2OTksIDAuMDExNzA1LCAwLjAxMTcwNiwgMC4wMTE3MDkiLCBcCi0gICAgICAgICAgIjAuMDExNTk4LCAwLjAxMTcyMywgMC4wMTE3NDUsIDAuMDExNzUxLCAwLjAxMTc1NywgMC4wMTE3NiwgMC4wMTE3NjQiLCBcCi0gICAgICAgICAgIjAuMDExNjg5LCAwLjAxMTgyMiwgMC4wMTE4NDQsIDAuMDExODUsIDAuMDExODU1LCAwLjAxMTg1OSwgMC4wMTE4NjMiLCBcCi0gICAgICAgICAgIjAuMDExODI4LCAwLjAxMTk0MywgMC4wMTE5NywgMC4wMTE5NzYsIDAuMDExOTgxLCAwLjAxMTk4NSwgMC4wMTE5ODciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMDk2NywgMC4wMTEwNzksIDAuMDExMDk5LCAwLjAxMTEwNSwgMC4wMTExMTQsIDAuMDExMTE0LCAwLjAxMTExNSIsIFwKLSAgICAgICAgICAiMC4wMTA5NTgsIDAuMDExMDY5LCAwLjAxMTA4OSwgMC4wMTEwOTUsIDAuMDExMTAyLCAwLjAxMTEwMywgMC4wMTExMDQiLCBcCi0gICAgICAgICAgIjAuMDEwOTkzLCAwLjAxMTEwNiwgMC4wMTExMjYsIDAuMDExMTMxLCAwLjAxMTEzNywgMC4wMTExNDEsIDAuMDExMTQ0IiwgXAotICAgICAgICAgICIwLjAxMTA1LCAwLjAxMTE2MSwgMC4wMTExOCwgMC4wMTExODYsIDAuMDExMTk0LCAwLjAxMTE5NSwgMC4wMTExOTYiLCBcCi0gICAgICAgICAgIjAuMDExMDg1LCAwLjAxMTIwNSwgMC4wMTEyMjYsIDAuMDExMjMzLCAwLjAxMTI0LCAwLjAxMTI0MiwgMC4wMTEyNDUiLCBcCi0gICAgICAgICAgIjAuMDExMTc2LCAwLjAxMTI5MywgMC4wMTEzMTMsIDAuMDExMzIsIDAuMDExMzI1LCAwLjAxMTMyOCwgMC4wMTEzMzEiLCBcCi0gICAgICAgICAgIjAuMDExMjc2LCAwLjAxMTM5MiwgMC4wMTE0MTEsIDAuMDExNDE2LCAwLjAxMTQyMiwgMC4wMTE0MjUsIDAuMDExNDI3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUk4iOwotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDExNzk0LCAwLjAxMTg4OSwgMC4wMTE5MDgsIDAuMDExOTE0LCAwLjAxMTkxOCwgMC4wMTE5MiwgMC4wMTE5MjIiLCBcCi0gICAgICAgICAgIjAuMDExNzkyLCAwLjAxMTg4OSwgMC4wMTE5MDgsIDAuMDExOTE0LCAwLjAxMTkyNiwgMC4wMTE5MiwgMC4wMTE5MjIiLCBcCi0gICAgICAgICAgIjAuMDExODI1LCAwLjAxMTkxOSwgMC4wMTE5MzcsIDAuMDExOTQzLCAwLjAxMTk0NywgMC4wMTE5NDksIDAuMDExOTUxIiwgXAotICAgICAgICAgICIwLjAxMTg2NSwgMC4wMTE5NjEsIDAuMDExOTgsIDAuMDExOTkxLCAwLjAxMTk5NCwgMC4wMTE5OTQsIDAuMDExOTk4IiwgXAotICAgICAgICAgICIwLjAxMTkyMywgMC4wMTIwMTcsIDAuMDEyMDM2LCAwLjAxMjA0MSwgMC4wMTIwNTUsIDAuMDEyMDQ3LCAwLjAxMjA0OSIsIFwKLSAgICAgICAgICAiMC4wMTIwMjIsIDAuMDEyMTE1LCAwLjAxMjEzNCwgMC4wMTIxMzksIDAuMDEyMTQ0LCAwLjAxMjE0NiwgMC4wMTIxNDciLCBcCi0gICAgICAgICAgIjAuMDEyMTE0LCAwLjAxMjIwNSwgMC4wMTIyMjUsIDAuMDEyMjMxLCAwLjAxMjIzNiwgMC4wMTIyMzcsIDAuMDEyMjM5Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3Bvd2VyKHNjYWxhcikgewotICAgICAgICB2YWx1ZXMoIjAiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTE0MTEsIDAuMDExNTMyLCAwLjAxMTU1LCAwLjAxMTU1MywgMC4wMTE1NTgsIDAuMDExNTYsIDAuMDExNTg0IiwgXAotICAgICAgICAgICIwLjAxMTM5OCwgMC4wMTE1MTksIDAuMDExNTM3LCAwLjAxMTU0MiwgMC4wMTE1NDUsIDAuMDExNTQ4LCAwLjAxMTU3MSIsIFwKLSAgICAgICAgICAiMC4wMTE0MTUsIDAuMDExNTM2LCAwLjAxMTU1MywgMC4wMTE1NTksIDAuMDExNTYzLCAwLjAxMTU2NywgMC4wMTE1NjciLCBcCi0gICAgICAgICAgIjAuMDExNDQsIDAuMDExNTcxLCAwLjAxMTU5MSwgMC4wMTE1OTYsIDAuMDExNjAxLCAwLjAxMTYwMywgMC4wMTE2MDUiLCBcCi0gICAgICAgICAgIjAuMDExNTExLCAwLjAxMTYzLCAwLjAxMTY1MSwgMC4wMTE2NTYsIDAuMDExNjYsIDAuMDExNjYyLCAwLjAxMTY2NCIsIFwKLSAgICAgICAgICAiMC4wMTE2NTMsIDAuMDExNzUzLCAwLjAxMTc3NCwgMC4wMTE3NzksIDAuMDExNzgzLCAwLjAxMTc4NCwgMC4wMTE3ODciLCBcCi0gICAgICAgICAgIjAuMDExNzcxLCAwLjAxMTg4LCAwLjAxMTg5OCwgMC4wMTE5MDMsIDAuMDExOTA1LCAwLjAxMTkwOCwgMC4wMTE5MSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEwMDcyLCAwLjAxMDE2OCwgMC4wMTAxODksIDAuMDEwMTk0LCAwLjAxMDIwNCwgMC4wMTAyMDIsIDAuMDEwMjA3IiwgXAotICAgICAgICAgICIwLjAxMDA0OCwgMC4wMTAxNDMsIDAuMDEwMTYyLCAwLjAxMDE3NywgMC4wMTAxNzMsIDAuMDEwMTc1LCAwLjAxMDE3NyIsIFwKLSAgICAgICAgICAiMC4wMTAwMzUsIDAuMDEwMTMxLCAwLjAxMDE1MSwgMC4wMTAxNTcsIDAuMDEwMTYyLCAwLjAxMDE2OCwgMC4wMTAxNjYiLCBcCi0gICAgICAgICAgIjAuMDEwMDQsIDAuMDEwMTM2LCAwLjAxMDE2MSwgMC4wMTAxNjEsIDAuMDEwMTc0LCAwLjAxMDE2OSwgMC4wMTAxNzEiLCBcCi0gICAgICAgICAgIjAuMDEwMDUzLCAwLjAxMDE1LCAwLjAxMDE3LCAwLjAxMDE4MywgMC4wMTAxODEsIDAuMDEwMTg0LCAwLjAxMDE5NyIsIFwKLSAgICAgICAgICAiMC4wMTAxMSwgMC4wMTAyMDYsIDAuMDEwMjI1LCAwLjAxMDIzMiwgMC4wMTAyMzcsIDAuMDEwMjQsIDAuMDEwMjQyIiwgXAotICAgICAgICAgICIwLjAxMDE4MywgMC4wMTAyNzIsIDAuMDEwMjk4LCAwLjAxMDMwNiwgMC4wMTAzMSwgMC4wMTAzMTMsIDAuMDEwMzE1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihRTikgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAxLjM1NDQ5OwotICAgIGZ1bmN0aW9uIDogIlFCSU5UIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDS04iOwotICAgICAgdGltaW5nX3NlbnNlIDogbm9uX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiBmYWxsaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTEyOTE5LCAwLjE2ODA5NywgMC4yMjMwNTIsIDAuMjYyMzMyLCAwLjMyNTE5LCAwLjM4MDE4MSwgMC40NTg3NTYiLCBcCi0gICAgICAgICAgIjAuMTIwOTkxLCAwLjE3NjE1NSwgMC4yMzExMDksIDAuMjcwMzkyLCAwLjMzMzI0NywgMC4zODgyNDEsIDAuNDY2ODE1IiwgXAotICAgICAgICAgICIwLjEzMDQ1OCwgMC4xODU2MTksIDAuMjQwNTc3LCAwLjI3OTg1NywgMC4zNDI3MTIsIDAuMzk3NywgMC40NzYyNzciLCBcCi0gICAgICAgICAgIjAuMTM4NTU5LCAwLjE5MzcxNywgMC4yNDg2NzEsIDAuMjg3OTQ1LCAwLjM1MDgwNiwgMC40MDU3OTUsIDAuNDg0MzcyIiwgXAotICAgICAgICAgICIwLjE0NTA4NCwgMC4yMDAyNDIsIDAuMjU1MjIxLCAwLjI5NDQ4NiwgMC4zNTczMzgsIDAuNDEyMjY2LCAwLjQ5MDkwMyIsIFwKLSAgICAgICAgICAiMC4xNTM0NiwgMC4yMDg2MzMsIDAuMjYzNTk3LCAwLjMwMjg4MiwgMC4zNjU3MTksIDAuNDIwNzA3LCAwLjQ5OTI4NSIsIFwKLSAgICAgICAgICAiMC4xNTk3NzMsIDAuMjE0OTQsIDAuMjY5OTEsIDAuMzA5MTU2LCAwLjM3MjAzNiwgMC40MjcwMDUsIDAuNTA1NjA2Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDI1MjM3LCAwLjEzODE5LCAwLjI1MzkzNiwgMC4zMzY4ODMsIDAuNDY5NzMyLCAwLjU4NjA5NCwgMC43NTIwODciLCBcCi0gICAgICAgICAgIjAuMDI1MjU0LCAwLjEzODE5MywgMC4yNTM5MzUsIDAuMzM2ODg0LCAwLjQ2OTczOCwgMC41ODYwOTksIDAuNzUyMDkyIiwgXAotICAgICAgICAgICIwLjAyNTI0NSwgMC4xMzgyLCAwLjI1MzkzNywgMC4zMzY4ODUsIDAuNDY5NzY1LCAwLjU4NjA1NywgMC43NTIwOSIsIFwKLSAgICAgICAgICAiMC4wMjUyNTIsIDAuMTM4MiwgMC4yNTM5MzksIDAuMzM2ODg2LCAwLjQ2OTc2MSwgMC41ODYwNDYsIDAuNzUyMDgxIiwgXAotICAgICAgICAgICIwLjAyNTI0MywgMC4xMzgxMDgsIDAuMjUzNzg0LCAwLjMzNjI3NiwgMC40NjkwMzgsIDAuNTg0MzU4LCAwLjc1MjA2NCIsIFwKLSAgICAgICAgICAiMC4wMjUyOTksIDAuMTM4MDgsIDAuMjUzNjg1LCAwLjMzNjkyMSwgMC40Njk3NjUsIDAuNTg1OTk5LCAwLjc1MjA0OSIsIFwKLSAgICAgICAgICAiMC4wMjUyNDksIDAuMTM4MjIyLCAwLjI1Mzc4MywgMC4zMzY4NDIsIDAuNDY5NzQ4LCAwLjU4NjAzOSwgMC43NTE5OTciKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMjQzNzEsIDAuMTc4ODUxLCAwLjIzMzAxMSwgMC4yNzE2NjMsIDAuMzMzNiwgMC4zODc3OTgsIDAuNDY1MjEyIiwgXAotICAgICAgICAgICIwLjEzMjU1MSwgMC4xODcwMDIsIDAuMjQxMTUzLCAwLjI3OTg0LCAwLjM0MTc1NSwgMC4zOTU5NTIsIDAuNDczMzc2IiwgXAotICAgICAgICAgICIwLjE0MjA1NiwgMC4xOTY0ODksIDAuMjUwNjQ2LCAwLjI4OTMzMywgMC4zNTEyNDEsIDAuNDA1NDI1LCAwLjQ4Mjg0MiIsIFwKLSAgICAgICAgICAiMC4xNTAwNjksIDAuMjA0NTA0LCAwLjI1ODY2MSwgMC4yOTczNDcsIDAuMzU5MjU1LCAwLjQxMzQzNywgMC40OTA4NTgiLCBcCi0gICAgICAgICAgIjAuMTU2MzU5LCAwLjIxMDgwNiwgMC4yNjQ5NTcsIDAuMzAzNjQ0LCAwLjM2NTU1NCwgMC40MTk3NTYsIDAuNDk3MTU4IiwgXAotICAgICAgICAgICIwLjE2NDcxOSwgMC4yMTkxODksIDAuMjczMzQxLCAwLjMxMjAyNSwgMC4zNzM5MzMsIDAuNDI4MTM2LCAwLjUwNTUzNSIsIFwKLSAgICAgICAgICAiMC4xNzA3NTEsIDAuMjI1MjIxLCAwLjI3OTM3NCwgMC4zMTgwNjIsIDAuMzc5OTg5LCAwLjQzNDEzOCwgMC41MTE1MzMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjQ0MjksIDAuMTMzOTYzLCAwLjI0NjEzOSwgMC4zMjY1MTQsIDAuNDU0NTU4LCAwLjU2ODI4NywgMC43Mjk1NDMiLCBcCi0gICAgICAgICAgIjAuMDI0NDM2LCAwLjEzNDA0OSwgMC4yNDYxMjMsIDAuMzI2NDgzLCAwLjQ1NDc5MiwgMC41NjgyNzgsIDAuNzI4Mzk5IiwgXAotICAgICAgICAgICIwLjAyNDQzNiwgMC4xMzM5MjUsIDAuMjQ2MTk3LCAwLjMyNjYyNiwgMC40NTQ5NDcsIDAuNTY3MTUxLCAwLjcyOTU0MyIsIFwKLSAgICAgICAgICAiMC4wMjQ0MzMsIDAuMTMzOTk0LCAwLjI0NjI0LCAwLjMyNjYyNiwgMC40NTQ5MzQsIDAuNTY3MDg0LCAwLjcyOTU0MyIsIFwKLSAgICAgICAgICAiMC4wMjQ0MzcsIDAuMTMzOTY1LCAwLjI0NjE4LCAwLjMyNjU1NiwgMC40NTUwMjgsIDAuNTY3NDg1LCAwLjcyOTU0OSIsIFwKLSAgICAgICAgICAiMC4wMjQ0NDEsIDAuMTM0LCAwLjI0NjEyOSwgMC4zMjY1MzMsIDAuNDU1NDksIDAuNTY3NDA5LCAwLjcyOTU0NCIsIFwKLSAgICAgICAgICAiMC4wMjQ0NjksIDAuMTMzOTQsIDAuMjQ2MTEyLCAwLjMyNjU3NCwgMC40NTQ5NDksIDAuNTY4MTEyLCAwLjcyOTE0NCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcHJlc2V0OwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE0MTI5NywgMC4xOTY0MzYsIDAuMjUxMzg4LCAwLjI5MDY2NywgMC4zNTM1MDUsIDAuNDA4NDY5LCAwLjQ4NzEwMSIsIFwKLSAgICAgICAgICAiMC4xNDkxOCwgMC4yMDQzNjMsIDAuMjU5MzI3LCAwLjI5ODYsIDAuMzYxNDEsIDAuNDE2NSwgMC40OTQ5NzYiLCBcCi0gICAgICAgICAgIjAuMTU3NTExLCAwLjIxMjYzMywgMC4yNjc1OTgsIDAuMzA2ODc2LCAwLjM2OTcxNiwgMC40MjQ2NzgsIDAuNTAzMzI5IiwgXAotICAgICAgICAgICIwLjE2MzY5NywgMC4yMTg4NzgsIDAuMjczODQsIDAuMzEzMTA2LCAwLjM3NTk5OCwgMC40MzA5NjQsIDAuNTA5NTM3IiwgXAotICAgICAgICAgICIwLjE2ODY3LCAwLjIyMzg2MiwgMC4yNzg4MjYsIDAuMzE4MSwgMC4zODA5NzcsIDAuNDM1OTQ2LCAwLjUxNDUyMSIsIFwKLSAgICAgICAgICAiMC4xNzUwMjIsIDAuMjMwMjA4LCAwLjI4NTEzOCwgMC4zMjQ0MzgsIDAuMzg3Mjk1LCAwLjQ0MjI3NSwgMC41MjA4NiIsIFwKLSAgICAgICAgICAiMC4xNzk5NTQsIDAuMjM1MTExLCAwLjI5MDA2NCwgMC4zMjkzNTksIDAuMzkyMTk0LCAwLjQ0NzE3OCwgMC41MjU3NyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyNTMxMywgMC4xMzgwODgsIDAuMjUzOTY4LCAwLjMzNjMzMiwgMC40Njk4NzEsIDAuNTg1ODE4LCAwLjc1MjA5NiIsIFwKLSAgICAgICAgICAiMC4wMjUzMjksIDAuMTM4MDg3LCAwLjI1Mzk1OCwgMC4zMzY0ODIsIDAuNDY5ODY2LCAwLjU4NTc5NiwgMC43NTExNSIsIFwKLSAgICAgICAgICAiMC4wMjUyOTksIDAuMTM3OTg4LCAwLjI1Mzk1OCwgMC4zMzY2NzgsIDAuNDY5ODgsIDAuNTg2MDY3LCAwLjc1MjEwOCIsIFwKLSAgICAgICAgICAiMC4wMjUzMzEsIDAuMTM3OTg4LCAwLjI1Mzk3OSwgMC4zMzY5MTksIDAuNDY5OTY3LCAwLjU4NjEyNiwgMC43NTE2MTEiLCBcCi0gICAgICAgICAgIjAuMDI1MzI2LCAwLjEzODA0NCwgMC4yNTM5NTksIDAuMzM3MDYzLCAwLjQ2OTk2LCAwLjU4NjExMSwgMC43NTE5NTEiLCBcCi0gICAgICAgICAgIjAuMDI1MzE2LCAwLjEzODE2NSwgMC4yNTM5OCwgMC4zMzY4OCwgMC40Njk5NDIsIDAuNTg2MDQ5LCAwLjc1MTI2IiwgXAotICAgICAgICAgICIwLjAyNTM1NCwgMC4xMzgxOTgsIDAuMjUzOTgyLCAwLjMzNjk5NCwgMC40Njk5MjksIDAuNTg2MDY4LCAwLjc1MTk2OCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogY2xlYXI7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTI4NzU0LCAwLjE4Mzg4LCAwLjIzODgzOCwgMC4yNzgxMjksIDAuMzQwOTU3LCAwLjM5NTk1NCwgMC40NzQ1MzQiLCBcCi0gICAgICAgICAgIjAuMTM1NTk0LCAwLjE5MDcxMywgMC4yNDU2NzgsIDAuMjg0OTU1LCAwLjM0Nzc5OCwgMC40MDI3NTcsIDAuNDgxMzc3IiwgXAotICAgICAgICAgICIwLjE0MzIyMywgMC4xOTgzNjIsIDAuMjUzMzEyLCAwLjI5MjU5LCAwLjM1NTQzMywgMC40MTAzNjYsIDAuNDg5MDA3IiwgXAotICAgICAgICAgICIwLjE1MDYxNywgMC4yMDU3NTMsIDAuMjYwNzAzLCAwLjI5OTk4MSwgMC4zNjI4MzIsIDAuNDE3NzUyLCAwLjQ5NjM5NiIsIFwKLSAgICAgICAgICAiMC4xNTc3NjksIDAuMjEyOTQxLCAwLjI2Nzg3NiwgMC4zMDcxNzEsIDAuMzcwMDIxLCAwLjQyNTAyMSwgMC41MDM1OTYiLCBcCi0gICAgICAgICAgIjAuMTY4MDQ2LCAwLjIyMzI2MSwgMC4yNzgyNywgMC4zMTc1MjQsIDAuMzgwMzkyLCAwLjQzNTM3LCAwLjUxMzk0NCIsIFwKLSAgICAgICAgICAiMC4xNzYxNzMsIDAuMjMxMzY4LCAwLjI4NjMxNCwgMC4zMjU1ODMsIDAuMzg4NDQ0LCAwLjQ0MzQ0NSwgMC41MjIwMDkiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjUzMTksIDAuMTM4MTgsIDAuMjUzOTUsIDAuMzM3MDAxLCAwLjQ2OTg5NywgMC41ODYxMTYsIDAuNzUxMjM3IiwgXAotICAgICAgICAgICIwLjAyNTMwMywgMC4xMzc5OTcsIDAuMjUzOTUxLCAwLjMzNjY3OSwgMC40Njk4NzksIDAuNTg2MDc1LCAwLjc1MjExNyIsIFwKLSAgICAgICAgICAiMC4wMjUzMTgsIDAuMTM4MDg1LCAwLjI1Mzk1NSwgMC4zMzYzODYsIDAuNDY5ODcxLCAwLjU4NjA3NiwgMC43NTIwOCIsIFwKLSAgICAgICAgICAiMC4wMjUzMTMsIDAuMTM4MDY4LCAwLjI1Mzk3MSwgMC4zMzY2NzksIDAuNDY5OTEzLCAwLjU4NjA3OCwgMC43NTIwOTUiLCBcCi0gICAgICAgICAgIjAuMDI1MzI2LCAwLjEzODA5LCAwLjI1Mzk2NCwgMC4zMzYzMjQsIDAuNDY5OTIzLCAwLjU4NjA4NCwgMC43NTEyMTciLCBcCi0gICAgICAgICAgIjAuMDI1MzEsIDAuMTM4MDg4LCAwLjI1NDA0MSwgMC4zMzY5NjksIDAuNDY5OTQ2LCAwLjU4NjA4OCwgMC43NTE1OTEiLCBcCi0gICAgICAgICAgIjAuMDI1MzM1LCAwLjEzODEwMSwgMC4yNTM5MTQsIDAuMzM2OTMxLCAwLjQ2OTkyLCAwLjU4NjExOSwgMC43NTIwNzgiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDQ2NCwgMC4xNTkyNjEsIDAuMjEzNDE2LCAwLjI1MjEwNSwgMC4zMTQwMzgsIDAuMzY4MiwgMC40NDU2MDkiLCBcCi0gICAgICAgICAgIjAuMTExNjYyLCAwLjE2NjI2NywgMC4yMjA0MzksIDAuMjU5MTE5LCAwLjMyMTA1MywgMC4zNzUyNTYsIDAuNDUyNjAxIiwgXAotICAgICAgICAgICIwLjEyMTU4NSwgMC4xNzYxODYsIDAuMjMwMzU5LCAwLjI2OTAzOSwgMC4zMzA5NjUsIDAuMzg1MTU3LCAwLjQ2MjU1MSIsIFwKLSAgICAgICAgICAiMC4xMzEwOCwgMC4xODU2MTgsIDAuMjM5NzgzLCAwLjI3ODQ2OSwgMC4zNDA0MDMsIDAuMzk0NTY0LCAwLjQ3MTk3MyIsIFwKLSAgICAgICAgICAiMC4xMzk0MjMsIDAuMTkzOTg0LCAwLjI0ODE0MywgMC4yODY4MzEsIDAuMzQ4NzY3LCAwLjQwMjkzLCAwLjQ4MDMzOCIsIFwKLSAgICAgICAgICAiMC4xNTA1NTksIDAuMjA1MDgzLCAwLjI1OTIzNiwgMC4yOTc5MywgMC4zNTk4NCwgMC40MTQwNDEsIDAuNDkxNDY2IiwgXAotICAgICAgICAgICIwLjE1ODYzMSwgMC4yMTMyMDYsIDAuMjY3MzA3LCAwLjMwNjAwMSwgMC4zNjc5MTYsIDAuNDIyMDksIDAuNDk5NDg1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDI0Mzc0LCAwLjEzNDAyMiwgMC4yNDY0MDMsIDAuMzI2ODk3LCAwLjQ1NTc1MSwgMC41Njg0NDEsIDAuNzI5NDQ4IiwgXAotICAgICAgICAgICIwLjAyNDM5NiwgMC4xMzQwNDksIDAuMjQ2NDI0LCAwLjMyNjc3NCwgMC40NTU3NDEsIDAuNTY4NDE3LCAwLjcyOTQ4NyIsIFwKLSAgICAgICAgICAiMC4wMjQzOTUsIDAuMTM0MDQ3LCAwLjI0NjQyNSwgMC4zMjY5NDQsIDAuNDU1NzQyLCAwLjU2ODQ0OCwgMC43Mjk0OTciLCBcCi0gICAgICAgICAgIjAuMDI0MzksIDAuMTMzOTQ5LCAwLjI0NjQxNiwgMC4zMjY5MzIsIDAuNDU1NzYzLCAwLjU2ODQzMSwgMC43Mjk0NjMiLCBcCi0gICAgICAgICAgIjAuMDI0MzkyLCAwLjEzNDA0NSwgMC4yNDY0LCAwLjMyNjkwOCwgMC40NTU3MzcsIDAuNTY4NDMsIDAuNzI5NDk1IiwgXAotICAgICAgICAgICIwLjAyNDQ3NywgMC4xMzQwMzcsIDAuMjQ2MzY4LCAwLjMyNjg5MiwgMC40NTU2ODEsIDAuNTY4NDE1LCAwLjcyOTQ1MSIsIFwKLSAgICAgICAgICAiMC4wMjQ0MTgsIDAuMTMzOTkzLCAwLjI0NjM3NywgMC4zMjY4NzMsIDAuNDU1NjYzLCAwLjU2ODQ4NCwgMC43Mjk0ODkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDS04iOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEwOTY3LCAwLjAxMTA3OSwgMC4wMTEwOTksIDAuMDExMTA1LCAwLjAxMTExNCwgMC4wMTExMTQsIDAuMDExMTE1IiwgXAotICAgICAgICAgICIwLjAxMDk1OCwgMC4wMTEwNjksIDAuMDExMDg5LCAwLjAxMTA5NSwgMC4wMTExMDIsIDAuMDExMTAzLCAwLjAxMTEwNCIsIFwKLSAgICAgICAgICAiMC4wMTA5OTMsIDAuMDExMTA2LCAwLjAxMTEyNiwgMC4wMTExMzEsIDAuMDExMTM3LCAwLjAxMTE0MSwgMC4wMTExNDQiLCBcCi0gICAgICAgICAgIjAuMDExMDUsIDAuMDExMTYxLCAwLjAxMTE4LCAwLjAxMTE4NiwgMC4wMTExOTQsIDAuMDExMTk1LCAwLjAxMTE5NiIsIFwKLSAgICAgICAgICAiMC4wMTEwODUsIDAuMDExMjA1LCAwLjAxMTIyNiwgMC4wMTEyMzMsIDAuMDExMjQsIDAuMDExMjQyLCAwLjAxMTI0NSIsIFwKLSAgICAgICAgICAiMC4wMTExNzYsIDAuMDExMjkzLCAwLjAxMTMxMywgMC4wMTEzMiwgMC4wMTEzMjUsIDAuMDExMzI4LCAwLjAxMTMzMSIsIFwKLSAgICAgICAgICAiMC4wMTEyNzYsIDAuMDExMzkyLCAwLjAxMTQxMSwgMC4wMTE0MTYsIDAuMDExNDIyLCAwLjAxMTQyNSwgMC4wMTE0MjciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMTQ0OSwgMC4wMTE1NjksIDAuMDExNTksIDAuMDExNTk3LCAwLjAxMTYwNSwgMC4wMTE2MDUsIDAuMDExNjA3IiwgXAotICAgICAgICAgICIwLjAxMTQ0MiwgMC4wMTE1NjIsIDAuMDExNTg0LCAwLjAxMTU5MSwgMC4wMTE2LCAwLjAxMTU5OSwgMC4wMTE2MDEiLCBcCi0gICAgICAgICAgIjAuMDExNDkyLCAwLjAxMTYxMiwgMC4wMTE2MzMsIDAuMDExNjQsIDAuMDExNjQ1LCAwLjAxMTY0OCwgMC4wMTE2NSIsIFwKLSAgICAgICAgICAiMC4wMTE1NSwgMC4wMTE2NywgMC4wMTE2OTIsIDAuMDExNjk5LCAwLjAxMTcwNSwgMC4wMTE3MDYsIDAuMDExNzA5IiwgXAotICAgICAgICAgICIwLjAxMTU5OCwgMC4wMTE3MjMsIDAuMDExNzQ1LCAwLjAxMTc1MSwgMC4wMTE3NTcsIDAuMDExNzYsIDAuMDExNzY0IiwgXAotICAgICAgICAgICIwLjAxMTY4OSwgMC4wMTE4MjIsIDAuMDExODQ0LCAwLjAxMTg1LCAwLjAxMTg1NSwgMC4wMTE4NTksIDAuMDExODYzIiwgXAotICAgICAgICAgICIwLjAxMTgyOCwgMC4wMTE5NDMsIDAuMDExOTcsIDAuMDExOTc2LCAwLjAxMTk4MSwgMC4wMTE5ODUsIDAuMDExOTg3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUk4iOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDExNzk0LCAwLjAxMTg4OSwgMC4wMTE5MDgsIDAuMDExOTE0LCAwLjAxMTkxOCwgMC4wMTE5MiwgMC4wMTE5MjIiLCBcCi0gICAgICAgICAgIjAuMDExNzkyLCAwLjAxMTg4OSwgMC4wMTE5MDgsIDAuMDExOTE0LCAwLjAxMTkyNiwgMC4wMTE5MiwgMC4wMTE5MjIiLCBcCi0gICAgICAgICAgIjAuMDExODI1LCAwLjAxMTkxOSwgMC4wMTE5MzcsIDAuMDExOTQzLCAwLjAxMTk0NywgMC4wMTE5NDksIDAuMDExOTUxIiwgXAotICAgICAgICAgICIwLjAxMTg2NSwgMC4wMTE5NjEsIDAuMDExOTgsIDAuMDExOTkxLCAwLjAxMTk5NCwgMC4wMTE5OTQsIDAuMDExOTk4IiwgXAotICAgICAgICAgICIwLjAxMTkyMywgMC4wMTIwMTcsIDAuMDEyMDM2LCAwLjAxMjA0MSwgMC4wMTIwNTUsIDAuMDEyMDQ3LCAwLjAxMjA0OSIsIFwKLSAgICAgICAgICAiMC4wMTIwMjIsIDAuMDEyMTE1LCAwLjAxMjEzNCwgMC4wMTIxMzksIDAuMDEyMTQ0LCAwLjAxMjE0NiwgMC4wMTIxNDciLCBcCi0gICAgICAgICAgIjAuMDEyMTE0LCAwLjAxMjIwNSwgMC4wMTIyMjUsIDAuMDEyMjMxLCAwLjAxMjIzNiwgMC4wMTIyMzcsIDAuMDEyMjM5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHNjYWxhcikgewotICAgICAgICB2YWx1ZXMoIjAiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTAwNzIsIDAuMDEwMTY4LCAwLjAxMDE4OSwgMC4wMTAxOTQsIDAuMDEwMjA0LCAwLjAxMDIwMiwgMC4wMTAyMDciLCBcCi0gICAgICAgICAgIjAuMDEwMDQ4LCAwLjAxMDE0MywgMC4wMTAxNjIsIDAuMDEwMTc3LCAwLjAxMDE3MywgMC4wMTAxNzUsIDAuMDEwMTc3IiwgXAotICAgICAgICAgICIwLjAxMDAzNSwgMC4wMTAxMzEsIDAuMDEwMTUxLCAwLjAxMDE1NywgMC4wMTAxNjIsIDAuMDEwMTY4LCAwLjAxMDE2NiIsIFwKLSAgICAgICAgICAiMC4wMTAwNCwgMC4wMTAxMzYsIDAuMDEwMTYxLCAwLjAxMDE2MSwgMC4wMTAxNzQsIDAuMDEwMTY5LCAwLjAxMDE3MSIsIFwKLSAgICAgICAgICAiMC4wMTAwNTMsIDAuMDEwMTUsIDAuMDEwMTcsIDAuMDEwMTgzLCAwLjAxMDE4MSwgMC4wMTAxODQsIDAuMDEwMTk3IiwgXAotICAgICAgICAgICIwLjAxMDExLCAwLjAxMDIwNiwgMC4wMTAyMjUsIDAuMDEwMjMyLCAwLjAxMDIzNywgMC4wMTAyNCwgMC4wMTAyNDIiLCBcCi0gICAgICAgICAgIjAuMDEwMTgzLCAwLjAxMDI3MiwgMC4wMTAyOTgsIDAuMDEwMzA2LCAwLjAxMDMxLCAwLjAxMDMxMywgMC4wMTAzMTUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMTQxMSwgMC4wMTE1MzIsIDAuMDExNTUsIDAuMDExNTUzLCAwLjAxMTU1OCwgMC4wMTE1NiwgMC4wMTE1ODQiLCBcCi0gICAgICAgICAgIjAuMDExMzk4LCAwLjAxMTUxOSwgMC4wMTE1MzcsIDAuMDExNTQyLCAwLjAxMTU0NSwgMC4wMTE1NDgsIDAuMDExNTcxIiwgXAotICAgICAgICAgICIwLjAxMTQxNSwgMC4wMTE1MzYsIDAuMDExNTUzLCAwLjAxMTU1OSwgMC4wMTE1NjMsIDAuMDExNTY3LCAwLjAxMTU2NyIsIFwKLSAgICAgICAgICAiMC4wMTE0NCwgMC4wMTE1NzEsIDAuMDExNTkxLCAwLjAxMTU5NiwgMC4wMTE2MDEsIDAuMDExNjAzLCAwLjAxMTYwNSIsIFwKLSAgICAgICAgICAiMC4wMTE1MTEsIDAuMDExNjMsIDAuMDExNjUxLCAwLjAxMTY1NiwgMC4wMTE2NiwgMC4wMTE2NjIsIDAuMDExNjY0IiwgXAotICAgICAgICAgICIwLjAxMTY1MywgMC4wMTE3NTMsIDAuMDExNzc0LCAwLjAxMTc3OSwgMC4wMTE3ODMsIDAuMDExNzg0LCAwLjAxMTc4NyIsIFwKLSAgICAgICAgICAiMC4wMTE3NzEsIDAuMDExODgsIDAuMDExODk4LCAwLjAxMTkwMywgMC4wMTE5MDUsIDAuMDExOTA4LCAwLjAxMTkxIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihSTikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjMzNjc2OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYzMzY3NjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2MzM2MTQ7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNzkyLCAwLjAwMDc4NywgMC4wMDA4NTYsIDAuMDAwOTUxLCAwLjAwMTA2NiwgMC4wMDEyOCwgMC4wMDE0NjEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDMwODEsIDAuMDAzMDgxLCAwLjAwMzE0NiwgMC4wMDMyNDMsIDAuMDAzMzYyLCAwLjAwMzUxNCwgMC4wMDM3NjciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUk4iOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFEJiFTRSYhU0kmU04iOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1NFX0VRXzBfQU5fU0lfRVFfMF9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgZmFsbF9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMTQxMjk3LCAwLjE0OTE4LCAwLjE1NzUxMSwgMC4xNjM2OTcsIDAuMTY4NjcsIDAuMTc1MDIyLCAwLjE3OTk1NCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDS04iOwotICAgICAgdGltaW5nX3R5cGUgOiByZWNvdmVyeV9mYWxsaW5nOwotICAgICAgd2hlbiA6ICJTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJTTiA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChyZWNvdmVyeV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzEyNSwgMC4wMjYyNSwgMC4wMTM3NSwgMC4wMDc1LCAwLjAwMTI1LCAtMC4wMDg3NSwgLTAuMDE3NSIsIFwKLSAgICAgICAgICAiMC4wNDI1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMTI1LCAwLjAwNjI1LCAtMC4wMDM3NSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMDQ4NzUsIDAuMDQzNzUsIDAuMDMxMjUsIDAuMDE4NzUsIDAuMDEyNSwgMC4wMDg3NSwgMCIsIFwKLSAgICAgICAgICAiMC4wNTUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMjUsIDAuMDE4NzUsIDAuMDE1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICIwLjA2MTI1LCAwLjA1LCAwLjA0Mzc1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMTUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4wNjUsIDAuMDYsIDAuMDQ3NSwgMC4wNDEyNSwgMC4wMzUsIDAuMDI1LCAwLjAxNjI1IiwgXAotICAgICAgICAgICIwLjA3Mzc1LCAwLjA2MjUsIDAuMDUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMjc1LCAwLjAxODc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIHRpbWluZ190eXBlIDogcmVjb3ZlcnlfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRCYhU0UmIVNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9TRV9FUV8wX0FOX1NJX0VRXzAgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQocmVjb3ZlcnlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU2MjUsIDAuMDY3NSwgMC4wNzM3NSwgMC4wOCwgMC4wODYyNSwgMC4wOTYyNSwgMC4xMDUiLCBcCi0gICAgICAgICAgIjAuMDUxMjUsIDAuMDU2MjUsIDAuMDY4NzUsIDAuMDc1LCAwLjA4MTI1LCAwLjA5MTI1LCAwLjEiLCBcCi0gICAgICAgICAgIjAuMDQ1LCAwLjA1NjI1LCAwLjA2MjUsIDAuMDY4NzUsIDAuMDc1LCAwLjA4NSwgMC4wOTM3NSIsIFwKLSAgICAgICAgICAiMC4wNDUsIDAuMDUsIDAuMDU2MjUsIDAuMDY4NzUsIDAuMDc1LCAwLjA4NSwgMC4wODc1IiwgXAotICAgICAgICAgICIwLjA0NSwgMC4wNSwgMC4wNTYyNSwgMC4wNjI1LCAwLjA2ODc1LCAwLjA3ODc1LCAwLjA4NzUiLCBcCi0gICAgICAgICAgIjAuMDQxMjUsIDAuMDQ2MjUsIDAuMDUyNSwgMC4wNjUsIDAuMDcxMjUsIDAuMDgxMjUsIDAuMDgzNzUiLCBcCi0gICAgICAgICAgIjAuMDM4NzUsIDAuMDQzNzUsIDAuMDU2MjUsIDAuMDYyNSwgMC4wNjg3NSwgMC4wNzg3NSwgMC4wODEyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDS04iOwotICAgICAgdGltaW5nX3R5cGUgOiByZW1vdmFsX2ZhbGxpbmc7Ci0gICAgICB3aGVuIDogIlNOIjsKLSAgICAgIHNkZl9jb25kIDogIlNOID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHJlbW92YWxfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAsIDAuMDA1LCAwLjAxNzUsIDAuMDIzNzUsIDAuMDMsIDAuMDQsIDAuMDQyNSIsIFwKLSAgICAgICAgICAiLTAuMDExMjUsIDAsIDAuMDA2MjUsIDAuMDE4NzUsIDAuMDI1LCAwLjAyODc1LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjAxNzUsIC0wLjAwNjI1LCAwLCAwLjAwNjI1LCAwLjAxMjUsIDAuMDIyNSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLCAwLjAwNjI1LCAwLjAxNjI1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAxODc1LCAtMC4wMTI1LCAwLCAwLjAwNjI1LCAwLjAxLCAwLjAxODc1IiwgXAotICAgICAgICAgICItMC4wMzM3NSwgLTAuMDI4NzUsIC0wLjAxNjI1LCAtMC4wMSwgLTAuMDAzNzUsIDAuMDA2MjUsIDAuMDA4NzUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLjAwMzc1LCAwLjAwNjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTRSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNTk4ODg7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNTk4ODg7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNTk4MDY7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA1ODI3LCAwLjAwNTg0LCAwLjAwNTkzMiwgMC4wMDYwNDksIDAuMDA2MjA2LCAwLjAwNjQzMSwgMC4wMDY2MzMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDc1MjksIDAuMDA3NTU0LCAwLjAwNzY3MSwgMC4wMDc4MywgMC4wMDgwMzYsIDAuMDA4NDAzLCAwLjAwODczMyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDS04iOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX2ZhbGxpbmc7Ci0gICAgICB3aGVuIDogIlJOJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIlJOX0VRXzFfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLCAwLjAwNSwgMC4wMTc1LCAwLjAyMzc1LCAwLjAyMzc1LCAwLjAzMzc1LCAwLjAzNjI1IiwgXAotICAgICAgICAgICItMC4wMTEyNSwgMCwgMC4wMDYyNSwgMC4wMTI1LCAwLjAxODc1LCAwLjAyODc1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wMTc1LCAtMC4wMTI1LCAwLCAwLjAwNjI1LCAwLjAxMjUsIDAuMDE2MjUsIDAuMDI1IiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLCAwLCAwLjAxLCAwLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMjUsIC0wLjAxMjUsIC0wLjAwNjI1LCAtMC4wMDYyNSwgMC4wMDM3NSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDQsIC0wLjAzNSwgLTAuMDIyNSwgLTAuMDE2MjUsIC0wLjAxLCAtMC4wMDYyNSwgLTAuMDAzNzUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTUsIC0wLjAwNjI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDEyNSwgLTAuMDA3NSwgMC4wMDUsIDAuMDExMjUsIDAuMDE3NSwgMC4wMjEyNSwgMC4wMyIsIFwKLSAgICAgICAgICAiLTAuMDE3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAsIDAuMDA2MjUsIDAuMDE2MjUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAsIDAsIDAuMDEsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAyNSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAsIDAuMDAzNzUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLjAwMzc1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wMzM3NSwgLTAuMDI4NzUsIC0wLjAyMjUsIC0wLjAxNjI1LCAtMC4wMSwgMCwgMC4wMDI1IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDAyNSwgMCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDS04iOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9mYWxsaW5nOwotICAgICAgd2hlbiA6ICJSTiZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJSTl9FUV8xX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDkzNzUsIDAuMDgyNSwgMC4wNzYyNSwgMC4wNjM3NSwgMC4wNTc1LCAwLjA1Mzc1LCAwLjA0NSIsIFwKLSAgICAgICAgICAiMC4wOTg3NSwgMC4wODc1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNTg3NSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiMC4xMDUsIDAuMDkzNzUsIDAuMDg3NSwgMC4wNzUsIDAuMDc1LCAwLjA2NSwgMC4wNjI1IiwgXAotICAgICAgICAgICIwLjExMTI1LCAwLjEsIDAuMDg3NSwgMC4wODEyNSwgMC4wNzUsIDAuMDcxMjUsIDAuMDYyNSIsIFwKLSAgICAgICAgICAiMC4xMTEyNSwgMC4xMDYyNSwgMC4wOTM3NSwgMC4wODc1LCAwLjA4MTI1LCAwLjA3MTI1LCAwLjA2ODc1IiwgXAotICAgICAgICAgICIwLjEyMTI1LCAwLjExLCAwLjA5NzUsIDAuMDkxMjUsIDAuMDg1LCAwLjA3NSwgMC4wNzI1IiwgXAotICAgICAgICAgICIwLjEyMzc1LCAwLjExMjUsIDAuMSwgMC4wOTM3NSwgMC4wODc1LCAwLjA4Mzc1LCAwLjA3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4MTI1LCAwLjA3LCAwLjA2Mzc1LCAwLjA1NzUsIDAuMDUxMjUsIDAuMDQxMjUsIDAuMDM4NzUiLCBcCi0gICAgICAgICAgIjAuMDkyNSwgMC4wODEyNSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1MjUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMDk4NzUsIDAuMDg3NSwgMC4wODEyNSwgMC4wNjg3NSwgMC4wNjg3NSwgMC4wNTg3NSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiMC4xMTEyNSwgMC4xLCAwLjA4NzUsIDAuMDgxMjUsIDAuMDc1LCAwLjA3MTI1LCAwLjA2MjUiLCBcCi0gICAgICAgICAgIjAuMTE3NSwgMC4xMDYyNSwgMC4wOTM3NSwgMC4wODc1LCAwLjA4MTI1LCAwLjA3NzUsIDAuMDY4NzUiLCBcCi0gICAgICAgICAgIjAuMTI3NSwgMC4xMTYyNSwgMC4xMSwgMC4wOTc1LCAwLjA5MTI1LCAwLjA4NzUsIDAuMDg1IiwgXAotICAgICAgICAgICIwLjEzNjI1LCAwLjEyNSwgMC4xMTI1LCAwLjEwNjI1LCAwLjEsIDAuMDk2MjUsIDAuMDg3NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oU0kpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY4Nzk5MzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2ODY5OTY7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjg3OTkzOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNDM4OCwgMC4wMDQzNjgsIDAuMDA0Mzg0LCAwLjAwNDQyMiwgMC4wMDQ0OCwgMC4wMDQ1OSwgMC4wMDQ3MDUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDYzNDIsIDAuMDA2MzMsIDAuMDA2MzQzLCAwLjAwNjM4MiwgMC4wMDY0MzEsIDAuMDA2NTUyLCAwLjAwNjY0NyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDS04iOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX2ZhbGxpbmc7Ci0gICAgICB3aGVuIDogIlJOJlNFJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIlJOX0VRXzFfQU5fU0VfRVFfMV9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAwNjI1LCAwLjAwNSwgMC4wMTEyNSwgMC4wMTc1LCAwLjAyMzc1LCAwLjAyNzUsIDAuMDM2MjUiLCBcCi0gICAgICAgICAgIi0wLjAxMTI1LCAtMC4wMDYyNSwgMC4wMDYyNSwgMC4wMTI1LCAwLjAxODc1LCAwLjAyMjUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjAxNzUsIC0wLjAxMjUsIDAsIDAuMDA2MjUsIDAuMDEyNSwgMC4wMTYyNSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxODc1LCAtMC4wMDYyNSwgMCwgMCwgMC4wMSwgMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDI1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMCwgMC4wMDM3NSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDQsIC0wLjAyODc1LCAtMC4wMjI1LCAtMC4wMTYyNSwgLTAuMDEsIC0wLjAwNjI1LCAwLjAwMjUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzNzUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxODc1LCAtMC4wMDg3NSwgLTAuMDA2MjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMzEyNSwgLTAuMDI2MjUsIC0wLjAyNjI1LCAtMC4wMiwgLTAuMDIsIC0wLjAxNjI1LCAtMC4wMTM3NSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDMxMjUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAyNSwgLTAuMDIxMjUsIC0wLjAxODc1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMzEyNSwgLTAuMDI3NSwgLTAuMDI1IiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDM3NSwgLTAuMDMzNzUsIC0wLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjA0Mzc1LCAtMC4wNCwgLTAuMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDY1LCAtMC4wNiwgLTAuMDUzNzUsIC0wLjA1Mzc1LCAtMC4wNDc1LCAtMC4wNDM3NSwgLTAuMDQxMjUiLCBcCi0gICAgICAgICAgIi0wLjA2NzUsIC0wLjA2MjUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNTYyNSwgLTAuMDUyNSwgLTAuMDUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0tOIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfZmFsbGluZzsKLSAgICAgIHdoZW4gOiAiUk4mU0UmU04iOwotICAgICAgc2RmX2NvbmQgOiAiUk5fRVFfMV9BTl9TRV9FUV8xX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY4NzUsIDAuMDU3NSwgMC4wNTEyNSwgMC4wNDUsIDAuMDM4NzUsIDAuMDI4NzUsIDAuMDI2MjUiLCBcCi0gICAgICAgICAgIjAuMDczNzUsIDAuMDY4NzUsIDAuMDU2MjUsIDAuMDUsIDAuMDQzNzUsIDAuMDMzNzUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMDg2MjUsIDAuMDc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDUsIDAuMDQ2MjUsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiMC4wOTI1LCAwLjA4MTI1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDUyNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4wOTg3NSwgMC4wODc1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1ODc1LCAwLjA1IiwgXAotICAgICAgICAgICIwLjEwODc1LCAwLjA5NzUsIDAuMDg1LCAwLjA3ODc1LCAwLjA3MjUsIDAuMDYyNSwgMC4wNiIsIFwKLSAgICAgICAgICAiMC4xMTEyNSwgMC4xMDYyNSwgMC4wOTM3NSwgMC4wODc1LCAwLjA4MTI1LCAwLjA3MTI1LCAwLjA2ODc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg3NSwgMC4wNzYyNSwgMC4wNywgMC4wNTc1LCAwLjA1MTI1LCAwLjA0NzUsIDAuMDQ1IiwgXAotICAgICAgICAgICIwLjA5MjUsIDAuMDgxMjUsIDAuMDc1LCAwLjA2MjUsIDAuMDYyNSwgMC4wNTI1LCAwLjA1IiwgXAotICAgICAgICAgICIwLjA5ODc1LCAwLjA4NzUsIDAuMDgxMjUsIDAuMDc1LCAwLjA2ODc1LCAwLjA1ODc1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICIwLjEwNSwgMC4wOTM3NSwgMC4wODc1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNjUsIDAuMDYyNSIsIFwKLSAgICAgICAgICAiMC4xMTEyNSwgMC4xLCAwLjA5Mzc1LCAwLjA4MTI1LCAwLjA4MTI1LCAwLjA3MTI1LCAwLjA2ODc1IiwgXAotICAgICAgICAgICIwLjEyMTI1LCAwLjExLCAwLjA5NzUsIDAuMDkxMjUsIDAuMDg1LCAwLjA4MTI1LCAwLjA3MjUiLCBcCi0gICAgICAgICAgIjAuMTIzNzUsIDAuMTE4NzUsIDAuMTA2MjUsIDAuMSwgMC4wOTM3NSwgMC4wODM3NSwgMC4wODEyNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oU04pICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTUyNzIxOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTUyNzIxOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTUyNzE0OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDU5MywgMC4wMDA1OTMsIDAuMDAwNTkzLCAwLjAwMDU5MywgMC4wMDA1OTIsIDAuMDAwNTkyLCAwLjAwMDU5MiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDU5OSwgMC4wMDA1OTQsIDAuMDAwNTk0LCAwLjAwMDU5NCwgMC4wMDA1OTQsIDAuMDAwNTk1LCAwLjAwMDU5NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQmIVJOJiFTRSYhU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1JOX0VRXzBfQU5fU0VfRVFfMF9BTl9TSV9FUV8wID09IDEnYjEiOwotICAgICAgZmFsbF9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMTA0NjE1LCAwLjExMTY2MiwgMC4xMjE1ODUsIDAuMTMxMDgsIDAuMTM5NDIzLCAwLjE1MDU1OSwgMC4xNTg2MzEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0tOIjsKLSAgICAgIHRpbWluZ190eXBlIDogcmVjb3ZlcnlfZmFsbGluZzsKLSAgICAgIHdoZW4gOiAiUk4iOwotICAgICAgc2RmX2NvbmQgOiAiUk4gPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQocmVjb3ZlcnlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDMxMjUsIDAuMDIsIDAuMDEzNzUsIDAuMDA3NSwgMC4wMDEyNSwgLTAuMDA4NzUsIC0wLjAxMTI1IiwgXAotICAgICAgICAgICIwLjAzNjI1LCAwLjAzMTI1LCAwLjAxODc1LCAwLjAxMjUsIDAuMDA2MjUsIC0wLjAwMzc1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiMC4wNDg3NSwgMC4wMzc1LCAwLjAyNSwgMC4wMTg3NSwgMC4wMTI1LCAwLjAwMjUsIDAiLCBcCi0gICAgICAgICAgIjAuMDU1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDI1LCAwLjAxODc1LCAwLjAxNSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiMC4wNjEyNSwgMC4wNSwgMC4wNDM3NSwgMC4wMzEyNSwgMC4wMzEyNSwgMC4wMjEyNSwgMC4wMTI1IiwgXAotICAgICAgICAgICIwLjA3MTI1LCAwLjA2NjI1LCAwLjA1Mzc1LCAwLjA0NzUsIDAuMDQxMjUsIDAuMDMxMjUsIDAuMDI4NzUiLCBcCi0gICAgICAgICAgIjAuMDg2MjUsIDAuMDc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDUsIDAuMDQsIDAuMDM3NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDS04iOwotICAgICAgdGltaW5nX3R5cGUgOiByZW1vdmFsX2ZhbGxpbmc7Ci0gICAgICB3aGVuIDogIlJOIjsKLSAgICAgIHNkZl9jb25kIDogIlJOID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHJlbW92YWxfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEyNSwgMC4wMTc1LCAwLjAzLCAwLjAzNjI1LCAwLjA0MjUsIDAuMDQ2MjUsIDAuMDU1IiwgXAotICAgICAgICAgICIwLjAwMTI1LCAwLjAxMjUsIDAuMDE4NzUsIDAuMDMxMjUsIDAuMDMxMjUsIDAuMDQxMjUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIi0wLjAwNSwgMC4wMDYyNSwgMC4wMTI1LCAwLjAxODc1LCAwLjAyNSwgMC4wMzUsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDA1LCAwLCAwLjAxMjUsIDAuMDE4NzUsIDAuMDI1LCAwLjAyODc1LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjAxMTI1LCAtMC4wMDYyNSwgMC4wMDYyNSwgMC4wMTI1LCAwLjAxODc1LCAwLjAyMjUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjAyMTI1LCAtMC4wMSwgLTAuMDAzNzUsIDAuMDA4NzUsIDAuMDE1LCAwLjAxODc1LCAwLjAyNzUiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMCwgMC4wMDYyNSwgMC4wMTYyNSwgMC4wMTg3NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogU0RGRlJIUVgyICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoU0RGRlJIUVgyKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDEuMzE5ODc7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgZmYgKE4zMCxRQklOVCkgewotICAgIG5leHRfc3RhdGUgOiAiKChTRSBTSSkgKyAoIVNFIEQpKSI7Ci0gICAgY2xvY2tlZF9vbiA6ICJDSyI7Ci0gICAgY2xlYXIgOiAiKCFSTikiOwotICB9Ci0gIHBpbihDSykgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjY2ODQ2OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDY2Njg0NjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2NjY4NDQ7Ci0gICAgY2xvY2sgOiB0cnVlOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzkxNiwgMC4wMDM5MTUsIDAuMDAzOTc4LCAwLjAwNDA3MiwgMC4wMDQxODEsIDAuMDA0NDE0LCAwLjAwNDYxNiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAxMDA3NCwgMC4wMTAwNjUsIDAuMDEwMTU4LCAwLjAxMDI3MywgMC4wMTA0MjIsIDAuMDEwNjA0LCAwLjAxMDc5OCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQmUk4mIVNFJiFTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fUk5fRVFfMV9BTl9TRV9FUV8wX0FOX1NJX0VRXzAgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wOTU4OTksIDAuMTA0MDg3LCAwLjExMzU4OSwgMC4xMjEyOTMsIDAuMTI3NTYsIDAuMTM1NTg1LCAwLjE0MTc5NCIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDY1MjQ2LCAwLjA3MzM2NywgMC4wODI4OCwgMC4wOTAyNTgsIDAuMDk2MzQ1LCAwLjEwNDIzMywgMC4xMDk5NDIiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEQpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDg5MzgwODsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA4OTE0NTE7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwODkzODA4OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNDUwMiwgMC4wMDQ0NTYsIDAuMDA0NDc1LCAwLjAwNDU0NywgMC4wMDQ2MTYsIDAuMDA0NzczLCAwLjAwNDkzMyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNzMzNiwgMC4wMDczMDYsIDAuMDA3MzMzLCAwLjAwNzM3OSwgMC4wMDc0NTgsIDAuMDA3NTk0LCAwLjAwNzc2NCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJSTiYhU0UiOwotICAgICAgc2RmX2NvbmQgOiAiUk5fRVFfMV9BTl9TRV9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAyNSwgLTAuMDIsIC0wLjAxMzc1LCAtMC4wMTM3NSwgLTAuMDA3NSwgLTAuMDAzNzUsIC0wLjAwMTI1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTg3NSwgLTAuMDE1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDI1LCAtMC4wMjEyNSwgLTAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAzMTI1LCAtMC4wMjc1LCAtMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjA1NSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzc1LCAtMC4wMzM3NSwgLTAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjA1ODc1LCAtMC4wNTM3NSwgLTAuMDUzNzUsIC0wLjA0NzUsIC0wLjA0NzUsIC0wLjA0Mzc1LCAtMC4wMzUiLCBcCi0gICAgICAgICAgIi0wLjA2NzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjA0NjI1LCAtMC4wNDM3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAsIDAuMDA1LCAwLjAxMTI1LCAwLjAxNzUsIDAuMDIzNzUsIDAuMDMzNzUsIDAuMDM2MjUiLCBcCi0gICAgICAgICAgIi0wLjAwNSwgMCwgMC4wMDYyNSwgMC4wMTI1LCAwLjAxODc1LCAwLjAyODc1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wMTEyNSwgLTAuMDA2MjUsIDAsIDAuMDA2MjUsIDAuMDEyNSwgMC4wMjI1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDE3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAsIDAuMDA2MjUsIDAuMDE2MjUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMCwgMC4wMDYyNSwgMC4wMSwgMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wMjc1LCAtMC4wMjI1LCAtMC4wMSwgLTAuMDEsIC0wLjAwMzc1LCAwLjAwNjI1LCAwLjAwODc1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIC0wLjAwMjUsIDAuMDA2MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlJOJiFTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJSTl9FUV8xX0FOX1NFX0VRXzAgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDUsIDAuMDM4NzUsIDAuMDMyNSwgMC4wMzI1LCAwLjAyNjI1LCAwLjAyMjUsIDAuMDIiLCBcCi0gICAgICAgICAgIjAuMDU1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMjc1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiMC4wNjEyNSwgMC4wNTYyNSwgMC4wNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzMzc1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNSwgMC4wNSwgMC4wNDYyNSwgMC4wMzc1IiwgXAotICAgICAgICAgICIwLjA3Mzc1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDU2MjUsIDAuMDQ2MjUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMDgzNzUsIDAuMDc4NzUsIDAuMDcyNSwgMC4wNjYyNSwgMC4wNiwgMC4wNTYyNSwgMC4wNTM3NSIsIFwKLSAgICAgICAgICAiMC4wOTI1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNzUsIDAuMDY4NzUsIDAuMDY1LCAwLjA2MjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzEyNSwgMC4wMiwgMC4wMTM3NSwgMC4wMDc1LCAwLjAwMTI1LCAtMC4wMDg3NSwgLTAuMDE3NSIsIFwKLSAgICAgICAgICAiMC4wMzYyNSwgMC4wMjUsIDAuMDE4NzUsIDAuMDEyNSwgMC4wMDYyNSwgLTAuMDAzNzUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICIwLjA0MjUsIDAuMDMxMjUsIDAuMDI1LCAwLjAxODc1LCAwLjAxMjUsIDAuMDAyNSwgMCIsIFwKLSAgICAgICAgICAiMC4wNDg3NSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMTg3NSwgMC4wMDg3NSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiMC4wNTUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMjUsIDAuMDE1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICIwLjA1ODc1LCAwLjA1Mzc1LCAwLjA0MTI1LCAwLjAzNSwgMC4wMjg3NSwgMC4wMTg3NSwgMC4wMTYyNSIsIFwKLSAgICAgICAgICAiMC4wNjc1LCAwLjA1NjI1LCAwLjA1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDI3NSwgMC4wMTg3NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjY4MjY0MjsKLSAgICBmdW5jdGlvbiA6ICJOMzAiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5vbl91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcmlzaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5ODE4MiwgMC4xNzcwNjIsIDAuMjM4NjYxLCAwLjMxNTY4OSwgMC4zOTI3ODcsIDAuNDY5NzU2LCAwLjU0NjgyIiwgXAotICAgICAgICAgICIwLjEwNjMzOCwgMC4xODUyMjIsIDAuMjQ2ODQyLCAwLjMyMzg2MiwgMC40MDA5MzUsIDAuNDc3OTE1LCAwLjU1NDk4MiIsIFwKLSAgICAgICAgICAiMC4xMTU4MDQsIDAuMTk0NjkxLCAwLjI1NjMwMiwgMC4zMzMzMDUsIDAuNDEwNDYxLCAwLjQ4NzM5NSwgMC41NjQ0MjMiLCBcCi0gICAgICAgICAgIjAuMTIzMzUxLCAwLjIwMjIzOSwgMC4yNjM4NTgsIDAuMzQwODc5LCAwLjQxNzkzOSwgMC40OTQ5MjEsIDAuNTcyMDA0IiwgXAotICAgICAgICAgICIwLjEyOTQwNCwgMC4yMDgyOTYsIDAuMjY5OTE0LCAwLjM0NjkyNSwgMC40MjM5OTQsIDAuNTAwOTczLCAwLjU3ODA0OSIsIFwKLSAgICAgICAgICAiMC4xMzcyNTQsIDAuMjE2MTQ5LCAwLjI3Nzc1MywgMC4zNTQ3NywgMC40MzE4MDUsIDAuNTA4ODI5LCAwLjU4NTg0MiIsIFwKLSAgICAgICAgICAiMC4xNDMyNzYsIDAuMjIyMTk5LCAwLjI4MzgxMSwgMC4zNjA4MTEsIDAuNDM3ODQ1LCAwLjUxNDg4NiwgMC41OTE5MDUiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQ0ODIzLCAwLjIwMTY4LCAwLjMzMDc5OSwgMC40OTI2MjgsIDAuNjU0NzI5LCAwLjgxODQzMiwgMC45Nzk4OTUiLCBcCi0gICAgICAgICAgIjAuMDQ0ODEyLCAwLjIwMTY4MywgMC4zMzEwMzYsIDAuNDkzMjk4LCAwLjY1NTkwMywgMC44MTczOSwgMC45NzkzMzYiLCBcCi0gICAgICAgICAgIjAuMDQ0Nzk5LCAwLjIwMTY2NSwgMC4zMzEwMzQsIDAuNDkzMTM3LCAwLjY1NDgsIDAuODE4MzY5LCAwLjk4MDIwMSIsIFwKLSAgICAgICAgICAiMC4wNDQ4MiwgMC4yMDE2NzgsIDAuMzMxMDM0LCAwLjQ5MzI4NSwgMC42NTU4ODEsIDAuODE3NDExLCAwLjk3OTcwOCIsIFwKLSAgICAgICAgICAiMC4wNDQ4MzcsIDAuMjAxNjgyLCAwLjMzMTAzMSwgMC40OTI3MDIsIDAuNjU1ODU1LCAwLjgxNzQwMSwgMC45Nzk1NzkiLCBcCi0gICAgICAgICAgIjAuMDQ0Nzk1LCAwLjIwMTY2MywgMC4zMzAzODcsIDAuNDkyNjU4LCAwLjY1NTczMywgMC44MTc2MjUsIDAuOTgwMDE3IiwgXAotICAgICAgICAgICIwLjA0NDgwNCwgMC4yMDE4MiwgMC4zMzA5OTYsIDAuNDkzMTc2LCAwLjY1NTEyMywgMC44MTc0MDUsIDAuOTc5ODg1Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5NTg5OSwgMC4xNzIyNTIsIDAuMjMyOTA0LCAwLjMwODYyOCwgMC4zODQzOTYsIDAuNDYwMTgsIDAuNTM1OTUyIiwgXAotICAgICAgICAgICIwLjEwNDA4NywgMC4xODA0MjgsIDAuMjQxMDk3LCAwLjMxNjgyLCAwLjM5MjU5LCAwLjQ2ODM3MywgMC41NDQwODMiLCBcCi0gICAgICAgICAgIjAuMTEzNTg5LCAwLjE4OTkzNiwgMC4yNTA2MDUsIDAuMzI2MzI4LCAwLjQwMjA5NywgMC40Nzc4ODEsIDAuNTUzNjI3IiwgXAotICAgICAgICAgICIwLjEyMTI5MywgMC4xOTc2NTMsIDAuMjU4MjY4LCAwLjMzNDAxNywgMC40MDk3OCwgMC40ODU1NzQsIDAuNTYxMzM2IiwgXAotICAgICAgICAgICIwLjEyNzU2MSwgMC4yMDM5MTMsIDAuMjY0NTI4LCAwLjM0MDMwMywgMC40MTYwNSwgMC40OTE3NzMsIDAuNTY3NTc4IiwgXAotICAgICAgICAgICIwLjEzNTU4OCwgMC4yMTE5NDIsIDAuMjcyNTcxLCAwLjM0ODMwOSwgMC40MjQwNzgsIDAuNDk5ODUxLCAwLjU3NTU5NCIsIFwKLSAgICAgICAgICAiMC4xNDE4MTQsIDAuMjE4MTU3LCAwLjI3ODc4NCwgMC4zNTQ1NTgsIDAuNDMwMjkzLCAwLjUwNjAyNSwgMC41ODE4MTkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM5MDksIDAuMTkzNzA4LCAwLjMxODk3LCAwLjQ3Njk0OCwgMC42MzM4MTcsIDAuNzkwNjEyLCAwLjk0Nzk1MiIsIFwKLSAgICAgICAgICAiMC4wMzkwODMsIDAuMTkzNjg0LCAwLjMxODk0NiwgMC40NzY5ODcsIDAuNjMzNTgxLCAwLjc5MDc2NiwgMC45NDg1MzkiLCBcCi0gICAgICAgICAgIjAuMDM5MDg2LCAwLjE5MzY4NCwgMC4zMTg5NDQsIDAuNDc2OTg3LCAwLjYzMzU3OCwgMC43OTA3MDIsIDAuOTQ4NTc3IiwgXAotICAgICAgICAgICIwLjAzOTA5MSwgMC4xOTM3MTcsIDAuMzE5NDk0LCAwLjQ3Njk1MiwgMC42MzM3NjcsIDAuNzkwNjA2LCAwLjk0ODA0OSIsIFwKLSAgICAgICAgICAiMC4wMzkwODgsIDAuMTkzNzI4LCAwLjMxOTQyMywgMC40NzY0NTksIDAuNjM0NTg5LCAwLjc5MjAyNiwgMC45NDk5MTMiLCBcCi0gICAgICAgICAgIjAuMDM5MDMyLCAwLjE5MzcyNSwgMC4zMTkwNjgsIDAuNDc2ODU3LCAwLjYzMzQyNywgMC43OTA2MTIsIDAuOTQ5ODkxIiwgXAotICAgICAgICAgICIwLjAzOTA3NSwgMC4xOTM2OSwgMC4zMTk1MjUsIDAuNDc3MDM2LCAwLjYzNDQ5NSwgMC43OTExNjYsIDAuOTQ5OTE0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiBjbGVhcjsKLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQzOTA5LCAwLjEyMDE3OSwgMC4xODA3NjgsIDAuMjU2NTI2LCAwLjMzMjI0OSwgMC40MDc5OTQsIDAuNDgzNzU2IiwgXAotICAgICAgICAgICIwLjA1MjA4MiwgMC4xMjgzODEsIDAuMTg4OTY1LCAwLjI2NDcyNSwgMC4zNDA0NTEsIDAuNDE2MTk3LCAwLjQ5MTk2MSIsIFwKLSAgICAgICAgICAiMC4wNjE0NTMsIDAuMTM3NzEzLCAwLjE5ODMxOSwgMC4yNzQwOCwgMC4zNDk4NTIsIDAuNDI1NTY5LCAwLjUwMTMyIiwgXAotICAgICAgICAgICIwLjA2ODY0OSwgMC4xNDQ5MzUsIDAuMjA1NTE4LCAwLjI4MTI4NiwgMC4zNTcwMTYsIDAuNDMyNzQ5LCAwLjUwODU1IiwgXAotICAgICAgICAgICIwLjA3NDU1MiwgMC4xNTA4MTMsIDAuMjExNDA3LCAwLjI4NzE0OCwgMC4zNjI4OTMsIDAuNDM4NjI3LCAwLjUxNDQwOSIsIFwKLSAgICAgICAgICAiMC4wODIwNTQsIDAuMTU4MzE5LCAwLjIxODg5OCwgMC4yOTQ2MzMsIDAuMzcwMzgsIDAuNDQ2MTI5LCAwLjUyMTg3MSIsIFwKLSAgICAgICAgICAiMC4wODc1MzgsIDAuMTYzNzgxLCAwLjIyNDM1NSwgMC4zMDAwOTIsIDAuMzc1ODc5LCAwLjQ1MTYxNiwgMC41MjczMyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzkwMywgMC4xOTMyODYsIDAuMzE4NzUsIDAuNDc2NTA0LCAwLjYzNDA4NSwgMC43OTE2NzcsIDAuOTQ5MjA5IiwgXAotICAgICAgICAgICIwLjAzOTA1OSwgMC4xOTMxOTcsIDAuMzE4NzU4LCAwLjQ3NjUwNSwgMC42MzQwODMsIDAuNzkxNjY1LCAwLjk0ODEzMiIsIFwKLSAgICAgICAgICAiMC4wMzk2MzksIDAuMTkzMzcsIDAuMzE5MDM3LCAwLjQ3NjUxNywgMC42MzQxMzEsIDAuNzkxNjUyLCAwLjk0ODM2NCIsIFwKLSAgICAgICAgICAiMC4wNDA3MDYsIDAuMTkzNDQ5LCAwLjMxOTA0LCAwLjQ3NjUzNCwgMC42MzQwNzEsIDAuNzkxNjQ2LCAwLjk0OTE4NCIsIFwKLSAgICAgICAgICAiMC4wNDE3MDIsIDAuMTkzNTEzLCAwLjMxOTA3OCwgMC40NzY1MjksIDAuNjMzOTk0LCAwLjc5MTY1NSwgMC45NDkxNDEiLCBcCi0gICAgICAgICAgIjAuMDQzMTIxLCAwLjE5MzYyMSwgMC4zMTkxNywgMC40NzYwNjksIDAuNjMzNTYzLCAwLjc5MTUyNSwgMC45NDkwOTQiLCBcCi0gICAgICAgICAgIjAuMDQ0MTM4LCAwLjE5MzU1NCwgMC4zMTg5MDMsIDAuNDc2NTI3LCAwLjYzNDI3OCwgMC43OTE3ODUsIDAuOTQ5MTgzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMDI0LCAwLjAxMDE5NSwgMC4wMTAxNjYsIDAuMDEwMTQ2LCAwLjAxMDEzNSwgMC4wMTAxMjcsIDAuMDEwMTIyIiwgXAotICAgICAgICAgICIwLjAxMDIyNCwgMC4wMTAxODIsIDAuMDEwMTUzLCAwLjAxMDEzMywgMC4wMTAxMjEsIDAuMDEwMTEzLCAwLjAxMDEwOCIsIFwKLSAgICAgICAgICAiMC4wMTAzMDYsIDAuMDEwMjY3LCAwLjAxMDIzOCwgMC4wMTAyMTgsIDAuMDEwMjA1LCAwLjAxMDE5OCwgMC4wMTAxOTEiLCBcCi0gICAgICAgICAgIjAuMDEwNDE4LCAwLjAxMDM4MSwgMC4wMTAzNTEsIDAuMDEwMzMsIDAuMDEwMzE3LCAwLjAxMDMwOCwgMC4wMTAzMDIiLCBcCi0gICAgICAgICAgIjAuMDEwNTM1LCAwLjAxMDUsIDAuMDEwNDcxLCAwLjAxMDQ0OCwgMC4wMTA0MzUsIDAuMDEwNDI2LCAwLjAxMDQxOSIsIFwKLSAgICAgICAgICAiMC4wMTA3NjcsIDAuMDEwNzM1LCAwLjAxMDcwNSwgMC4wMTA2ODIsIDAuMDEwNjY4LCAwLjAxMDY1OCwgMC4wMTA2NSIsIFwKLSAgICAgICAgICAiMC4wMTA5NTgsIDAuMDEwOTI5LCAwLjAxMDksIDAuMDEwODc3LCAwLjAxMDgxOSwgMC4wMTA4MTEsIDAuMDEwODAxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEwOTA0LCAwLjAxMDk5NywgMC4wMTEwMTEsIDAuMDExMDE4LCAwLjAxMTAyMiwgMC4wMTEwMjQsIDAuMDExMDI2IiwgXAotICAgICAgICAgICIwLjAxMDksIDAuMDEwOTkzLCAwLjAxMTAwNiwgMC4wMTEwMTMsIDAuMDExMDE3LCAwLjAxMTAxOSwgMC4wMTEwMjEiLCBcCi0gICAgICAgICAgIjAuMDExMDAyLCAwLjAxMTA5NSwgMC4wMTExMDcsIDAuMDExMTE0LCAwLjAxMTExOCwgMC4wMTExMjEsIDAuMDExMTIyIiwgXAotICAgICAgICAgICIwLjAxMTEyNywgMC4wMTEyMTksIDAuMDExMjMxLCAwLjAxMTIzOCwgMC4wMTEyNDEsIDAuMDExMjQzLCAwLjAxMTI0NSIsIFwKLSAgICAgICAgICAiMC4wMTEyNTUsIDAuMDExMzQ3LCAwLjAxMTM1OCwgMC4wMTEzNjQsIDAuMDExMzY3LCAwLjAxMTM2OSwgMC4wMTEzNzEiLCBcCi0gICAgICAgICAgIjAuMDExNTA2LCAwLjAxMTU5OCwgMC4wMTE2MDksIDAuMDExNjE0LCAwLjAxMTYxNywgMC4wMTE2MTgsIDAuMDExNjIiLCBcCi0gICAgICAgICAgIjAuMDExNzE2LCAwLjAxMTgwMywgMC4wMTE4MTIsIDAuMDExODE2LCAwLjAxMTc4NywgMC4wMTE4MTksIDAuMDExODIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEyMDg2LCAwLjAxMjE3LCAwLjAxMjE4MSwgMC4wMTIxODYsIDAuMDEyMTksIDAuMDEyMTkyLCAwLjAxMjE5MyIsIFwKLSAgICAgICAgICAiMC4wMTIwMjgsIDAuMDEyMTI1LCAwLjAxMjEzOSwgMC4wMTIxNDcsIDAuMDEyMTUxLCAwLjAxMjE1MywgMC4wMTIxNTUiLCBcCi0gICAgICAgICAgIjAuMDEyMDU1LCAwLjAxMjE0OCwgMC4wMTIxNjUsIDAuMDEyMTc0LCAwLjAxMjE3OSwgMC4wMTIxODEsIDAuMDEyMTg0IiwgXAotICAgICAgICAgICIwLjAxMjE0OSwgMC4wMTIyMywgMC4wMTIyNDcsIDAuMDEyMjU4LCAwLjAxMjI2NCwgMC4wMTIyNjgsIDAuMDEyMjciLCBcCi0gICAgICAgICAgIjAuMDEyMjc3LCAwLjAxMjM0MiwgMC4wMTIzNjEsIDAuMDEyMzY5LCAwLjAxMjM3OSwgMC4wMTIzODMsIDAuMDEyMzg1IiwgXAotICAgICAgICAgICIwLjAxMjU1MywgMC4wMTI1OTEsIDAuMDEyNjExLCAwLjAxMjYyMywgMC4wMTI2MjgsIDAuMDEyNjM0LCAwLjAxMjYzOSIsIFwKLSAgICAgICAgICAiMC4wMTI4MjQsIDAuMDEyODUyLCAwLjAxMjg3LCAwLjAxMjg4MiwgMC4wMTI4ODksIDAuMDEyODk0LCAwLjAxMjg5MiIpOwotICAgICAgfQotICAgICAgcmlzZV9wb3dlcihzY2FsYXIpIHsKLSAgICAgICAgdmFsdWVzKCIwIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihSTikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNzA3NjM7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNTc5ODE7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNzA3NjM7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwODQyLCAwLjAwMDg0MSwgMC4wMDA4NDEsIDAuMDAwODQxLCAwLjAwMDg0MSwgMC4wMDA4NDEsIDAuMDAwODQxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwODYsIDAuMDAwODQ2LCAwLjAwMDg0NiwgMC4wMDA4NDYsIDAuMDAwODQ1LCAwLjAwMDg0NSwgMC4wMDA4NDUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUk4iOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFEJiFTRSYhU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1NFX0VRXzBfQU5fU0lfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjA1NDk4NiwgMC4wNjE0NTgsIDAuMDY3OTg5LCAwLjA3MzI0OSwgMC4wNzc1MzYsIDAuMDgzMTAyLCAwLjA4NzQ3NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJlY292ZXJ5X3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUQmU0UmU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1NFX0VRXzFfQU5fU0lfRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChyZWNvdmVyeV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDI1LCAtMC4wMzYyNSwgLTAuMDQyNSwgLTAuMDU1LCAtMC4wNjEyNSwgLTAuMDY1LCAtMC4wNzM3NSIsIFwKLSAgICAgICAgICAiLTAuMDI2MjUsIC0wLjAzNzUsIC0wLjA0Mzc1LCAtMC4wNTYyNSwgLTAuMDYyNSwgLTAuMDY2MjUsIC0wLjA3NSIsIFwKLSAgICAgICAgICAiLTAuMDIsIC0wLjAzMTI1LCAtMC4wMzc1LCAtMC4wNSwgLTAuMDU2MjUsIC0wLjA2LCAtMC4wNjg3NSIsIFwKLSAgICAgICAgICAiLTAuMDA3NSwgLTAuMDE4NzUsIC0wLjAyNSwgLTAuMDM3NSwgLTAuMDQzNzUsIC0wLjA1Mzc1LCAtMC4wNTYyNSIsIFwKLSAgICAgICAgICAiMC4wMDUsIDAsIC0wLjAxMjUsIC0wLjAyNSwgLTAuMDMxMjUsIC0wLjA0MTI1LCAtMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4wMzM3NSwgMC4wMjI1LCAwLjAxLCAtMC4wMDI1LCAtMC4wMDg3NSwgLTAuMDE4NzUsIC0wLjAyMTI1IiwgXAotICAgICAgICAgICIwLjA1NSwgMC4wNDM3NSwgMC4wMzEyNSwgMC4wMTg3NSwgMC4wMTI1LCAwLjAwMjUsIC0wLjAwNjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogcmVtb3ZhbF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEJlNFJlNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9TRV9FUV8xX0FOX1NJX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQocmVtb3ZhbF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDM3NSwgMC4wNDg3NSwgMC4wNjEyNSwgMC4wNjc1LCAwLjA3Mzc1LCAwLjA3NzUsIDAuMDg2MjUiLCBcCi0gICAgICAgICAgIjAuMDQ1LCAwLjA1NjI1LCAwLjA2MjUsIDAuMDY4NzUsIDAuMDc1LCAwLjA4NSwgMC4wODc1IiwgXAotICAgICAgICAgICIwLjA1MTI1LCAwLjA1NjI1LCAwLjA2ODc1LCAwLjA3NSwgMC4wODEyNSwgMC4wODUsIDAuMDkzNzUiLCBcCi0gICAgICAgICAgIjAuMDUxMjUsIDAuMDYyNSwgMC4wNjg3NSwgMC4wODEyNSwgMC4wODEyNSwgMC4wOTEyNSwgMC4xIiwgXAotICAgICAgICAgICIwLjA1NzUsIDAuMDYyNSwgMC4wNzUsIDAuMDgxMjUsIDAuMDg3NSwgMC4wOTc1LCAwLjEiLCBcCi0gICAgICAgICAgIjAuMDYsIDAuMDcxMjUsIDAuMDc3NSwgMC4wODM3NSwgMC4wOSwgMC4xLCAwLjEwMjUiLCBcCi0gICAgICAgICAgIjAuMDYzNzUsIDAuMDc1LCAwLjA4MTI1LCAwLjA4NzUsIDAuMDkzNzUsIDAuMTAzNzUsIDAuMTA2MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFNFKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE2Mzg3MTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE2Mzg3OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTYzODcxOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNjg4OCwgMC4wMDY4ODcsIDAuMDA2OTY2LCAwLjAwNzA2OCwgMC4wMDcxOTIsIDAuMDA3Mzk5LCAwLjAwNzU5NiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwODU5MiwgMC4wMDg2MDcsIDAuMDA4NzMyLCAwLjAwODkzMSwgMC4wMDkxODgsIDAuMDA5NTk5LCAwLjAwOTk4OSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJSTiI7Ci0gICAgICBzZGZfY29uZCA6ICJSTiA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMDYyNSwgLTAuMDAxMjUsIDAuMDA1LCAwLjAxMTI1LCAwLjAxNzUsIDAuMDI3NSwgMC4wMyIsIFwKLSAgICAgICAgICAiLTAuMDE3NSwgLTAuMDA2MjUsIDAsIDAuMDA2MjUsIDAuMDEyNSwgMC4wMTYyNSwgMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAsIDAuMDA2MjUsIDAuMDEsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAsIDAuMDAzNzUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLjAwMzc1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wMzM3NSwgLTAuMDI4NzUsIC0wLjAyMjUsIC0wLjAxNjI1LCAtMC4wMSwgMCwgMC4wMDI1IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA4NzUsIDAiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLCAwLjAxMTI1LCAwLjAxNzUsIDAuMDIzNzUsIDAuMDMsIDAuMDMzNzUsIDAuMDQyNSIsIFwKLSAgICAgICAgICAiLTAuMDA1LCAwLjAwNjI1LCAwLjAxMjUsIDAuMDE4NzUsIDAuMDI1LCAwLjAyODc1LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjAxMTI1LCAtMC4wMDYyNSwgMC4wMDYyNSwgMC4wMTI1LCAwLjAxMjUsIDAuMDIyNSwgMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjAxNzUsIC0wLjAxMjUsIDAsIDAuMDA2MjUsIDAuMDA2MjUsIDAuMDE2MjUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMCwgMC4wMDYyNSwgMC4wMSwgMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wMjc1LCAtMC4wMjI1LCAtMC4wMTYyNSwgLTAuMDEsIC0wLjAwMzc1LCAwLCAwLjAwODc1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIC0wLjAwMjUsIDAiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlJOIjsKLSAgICAgIHNkZl9jb25kIDogIlJOID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0Mzc1LCAwLjAzMjUsIDAuMDI2MjUsIDAuMDI2MjUsIDAuMDIsIDAuMDE2MjUsIDAuMDEzNzUiLCBcCi0gICAgICAgICAgIjAuMDQ4NzUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMzEyNSwgMC4wMjEyNSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4wNjEyNSwgMC4wNSwgMC4wNDM3NSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzMzc1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNSwgMC4wNDM3NSwgMC4wNCwgMC4wMzc1IiwgXAotICAgICAgICAgICIwLjA3Mzc1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDU2MjUsIDAuMDQ2MjUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMDgzNzUsIDAuMDc4NzUsIDAuMDcyNSwgMC4wNjYyNSwgMC4wNjYyNSwgMC4wNTYyNSwgMC4wNTM3NSIsIFwKLSAgICAgICAgICAiMC4wOTI1LCAwLjA4NzUsIDAuMDgxMjUsIDAuMDc1LCAwLjA2ODc1LCAwLjA2NSwgMC4wNjI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU2MjUsIDAuMDUxMjUsIDAuMDQ1LCAwLjAzODc1LCAwLjAzMjUsIDAuMDI4NzUsIDAuMDI2MjUiLCBcCi0gICAgICAgICAgIjAuMDYxMjUsIDAuMDU2MjUsIDAuMDUsIDAuMDQzNzUsIDAuMDQzNzUsIDAuMDQsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiMC4wNjc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDUsIDAuMDUsIDAuMDQ2MjUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMDczNzUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNTYyNSwgMC4wNDYyNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4wOCwgMC4wNjg3NSwgMC4wNjI1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDUyNSwgMC4wNSIsIFwKLSAgICAgICAgICAiMC4wODM3NSwgMC4wNzI1LCAwLjA2NjI1LCAwLjA2NjI1LCAwLjA2LCAwLjA1NjI1LCAwLjA1Mzc1IiwgXAotICAgICAgICAgICIwLjA4NjI1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1ODc1LCAwLjA1NjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTSSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwOTc1MDI4OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDk3MjY5NjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA5NzUwMjg7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA0MDcsIDAuMDA0MDI0LCAwLjAwNDA0NCwgMC4wMDQxMTEsIDAuMDA0MTkzLCAwLjAwNDM1LCAwLjAwNDU0OCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNzY4MiwgMC4wMDc2NTQsIDAuMDA3Njc5LCAwLjAwNzczNCwgMC4wMDc4MDIsIDAuMDA3OTY2LCAwLjAwODExNyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJSTiZTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJSTl9FUV8xX0FOX1NFX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDI1LCAtMC4wMiwgLTAuMDEzNzUsIC0wLjAxMzc1LCAtMC4wMDc1LCAtMC4wMDM3NSwgLTAuMDAxMjUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMjUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwODc1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDI1LCAtMC4wMjEyNSwgLTAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAzMTI1LCAtMC4wMjc1LCAtMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjA1NSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzc1LCAtMC4wMzM3NSwgLTAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjA1ODc1LCAtMC4wNTM3NSwgLTAuMDUzNzUsIC0wLjA0NzUsIC0wLjA0NzUsIC0wLjAzNzUsIC0wLjAzNSIsIFwKLSAgICAgICAgICAiLTAuMDY3NSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDQ2MjUsIC0wLjA0Mzc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMCwgMC4wMDUsIDAuMDExMjUsIDAuMDE3NSwgMC4wMjM3NSwgMC4wMzM3NSwgMC4wMzYyNSIsIFwKLSAgICAgICAgICAiLTAuMDA1LCAwLCAwLjAwNjI1LCAwLjAxMjUsIDAuMDE4NzUsIDAuMDI4NzUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjAxMTI1LCAtMC4wMDYyNSwgMCwgMC4wMDYyNSwgMC4wMTI1LCAwLjAyMjUsIDAuMDI1IiwgXAotICAgICAgICAgICItMC4wMTc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMCwgMC4wMDYyNSwgMC4wMTYyNSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLCAwLjAwNjI1LCAwLjAxLCAwLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjAyNzUsIC0wLjAyMjUsIC0wLjAxLCAtMC4wMSwgLTAuMDAzNzUsIDAuMDA2MjUsIDAuMDA4NzUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgLTAuMDAyNSwgMC4wMDYyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiUk4mU0UiOwotICAgICAgc2RmX2NvbmQgOiAiUk5fRVFfMV9BTl9TRV9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1LCAwLjAzODc1LCAwLjAzMjUsIDAuMDI2MjUsIDAuMDI2MjUsIDAuMDIyNSwgMC4wMiIsIFwKLSAgICAgICAgICAiMC4wNTUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyNzUsIDAuMDI1IiwgXAotICAgICAgICAgICIwLjA2MTI1LCAwLjA1NjI1LCAwLjA1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDMzNzUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMDY3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1LCAwLjA0Mzc1LCAwLjA0LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIjAuMDczNzUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNSwgMC4wNDYyNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4wODM3NSwgMC4wNzg3NSwgMC4wNjYyNSwgMC4wNjYyNSwgMC4wNiwgMC4wNTYyNSwgMC4wNTM3NSIsIFwKLSAgICAgICAgICAiMC4wOTI1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjg3NSwgMC4wNjUsIDAuMDYyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzMTI1LCAwLjAyLCAwLjAxMzc1LCAwLjAwNzUsIDAuMDAxMjUsIC0wLjAwODc1LCAtMC4wMTc1IiwgXAotICAgICAgICAgICIwLjAzNjI1LCAwLjAyNSwgMC4wMTg3NSwgMC4wMTI1LCAwLjAwNjI1LCAtMC4wMDM3NSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMDQyNSwgMC4wMzEyNSwgMC4wMjUsIDAuMDE4NzUsIDAuMDEyNSwgMC4wMDI1LCAwIiwgXAotICAgICAgICAgICIwLjA0ODc1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDI1LCAwLjAxODc1LCAwLjAwODc1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICIwLjA1NSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMTUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMDU4NzUsIDAuMDUzNzUsIDAuMDQxMjUsIDAuMDM1LCAwLjAyODc1LCAwLjAxODc1LCAwLjAxNjI1IiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDU2MjUsIDAuMDUsIDAuMDM3NSwgMC4wMzc1LCAwLjAyNzUsIDAuMDE4NzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IFNERkZTSFFYNCAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKFNERkZTSFFYNCkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAxLjU5Mzk4OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIGZmIChOMzAsUUJJTlQpIHsKLSAgICBuZXh0X3N0YXRlIDogIigoU0UgU0kpICsgKCFTRSBEKSkiOwotICAgIGNsb2NrZWRfb24gOiAiQ0siOwotICAgIHByZXNldCA6ICIoIVNOKSI7Ci0gIH0KLSAgcGluKENLKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2OTQ2MDc7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjk0NjA3OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDY5NDU3OTsKLSAgICBjbG9jayA6IHRydWU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzOTYxLCAwLjAwMzk0OSwgMC4wMDQwMDYsIDAuMDA0MTE2LCAwLjAwNDIxNCwgMC4wMDQ0MTIsIDAuMDA0NjExIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA5OTU5LCAwLjAwOTk1NCwgMC4wMTAwMzksIDAuMDEwMTkxLCAwLjAxMDI5NSwgMC4wMTA1NTQsIDAuMDEwODAxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRCYhU0UmIVNJJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9TRV9FUV8wX0FOX1NJX0VRXzBfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjA5MjIxNywgMC4xMDA0OCwgMC4xMTAxOTEsIDAuMTE4MjEyLCAwLjEyNDYzOCwgMC4xMzMwODgsIDAuMTM5NDg0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wNzUwMTgsIDAuMDgzMTM0LCAwLjA5MjcyLCAwLjEwMDU3OSwgMC4xMDY3NTcsIDAuMTE0ODIxLCAwLjEyMDc1MiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwOTM1NzM4OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDkzMzg7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwOTM1NzM4OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNTAzOSwgMC4wMDQ5OTYsIDAuMDA1MDEyLCAwLjAwNTA2MSwgMC4wMDUxNDIsIDAuMDA1Mjk5LCAwLjAwNTQ1MiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNzU1MSwgMC4wMDc1MjQsIDAuMDA3NTQyLCAwLjAwNzU4NiwgMC4wMDc2NSwgMC4wMDc3ODgsIDAuMDA3OTM3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFTRSZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJTRV9FUV8wX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDI1LCAtMC4wMiwgLTAuMDEzNzUsIC0wLjAwNzUsIC0wLjAwNzUsIC0wLjAwMzc1LCAtMC4wMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDg3NSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzMTI1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDE1LCAtMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAyMTI1LCAtMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNDM3NSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMjc1LCAtMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjA1ODc1LCAtMC4wNTM3NSwgLTAuMDQ3NSwgLTAuMDQ3NSwgLTAuMDQxMjUsIC0wLjAzNzUsIC0wLjAzNSIsIFwKLSAgICAgICAgICAiLTAuMDY3NSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNSwgLTAuMDQ2MjUsIC0wLjA0Mzc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDA2MjUsIDAuMDA1LCAwLjAxMTI1LCAwLjAxNzUsIDAuMDIzNzUsIDAuMDMzNzUsIDAuMDM2MjUiLCBcCi0gICAgICAgICAgIi0wLjAxMTI1LCAwLCAwLjAwNjI1LCAwLjAxMjUsIDAuMDE4NzUsIDAuMDIyNSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDE3NSwgLTAuMDA2MjUsIDAsIDAuMDA2MjUsIDAuMDEyNSwgMC4wMTYyNSwgMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMCwgMC4wMDYyNSwgMC4wMSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMCwgMC4wMSwgMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wMzM3NSwgLTAuMDIyNSwgLTAuMDE2MjUsIC0wLjAxLCAtMC4wMDM3NSwgMCwgMC4wMDg3NSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAtMC4wMDI1LCAwLjAwNjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhU0UmU04iOwotICAgICAgc2RmX2NvbmQgOiAiU0VfRVFfMF9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1LCAwLjA0NSwgMC4wMzI1LCAwLjAzMjUsIDAuMDI2MjUsIDAuMDIyNSwgMC4wMiIsIFwKLSAgICAgICAgICAiMC4wNTUsIDAuMDUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMjc1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiMC4wNjc1LCAwLjA1NjI1LCAwLjA1LCAwLjA0Mzc1LCAwLjA0Mzc1LCAwLjAzMzc1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICIwLjA3Mzc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDUsIDAuMDUsIDAuMDQsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiMC4wOCwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1NjI1LCAwLjA1MjUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMDksIDAuMDc4NzUsIDAuMDcyNSwgMC4wNjYyNSwgMC4wNjYyNSwgMC4wNTYyNSwgMC4wNTM3NSIsIFwKLSAgICAgICAgICAiMC4wOTI1LCAwLjA4NzUsIDAuMDgxMjUsIDAuMDc1LCAwLjA2ODc1LCAwLjA2NSwgMC4wNjI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQzNzUsIDAuMDM4NzUsIDAuMDI2MjUsIDAuMDIsIDAuMDEzNzUsIDAuMDAzNzUsIDAuMDAxMjUiLCBcCi0gICAgICAgICAgIjAuMDQ4NzUsIDAuMDQzNzUsIDAuMDMxMjUsIDAuMDI1LCAwLjAxODc1LCAwLjAwODc1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICIwLjA1NSwgMC4wNSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMTUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4wNjEyNSwgMC4wNTYyNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyMTI1LCAwLjAxODc1IiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDYyNSwgMC4wNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAyNzUsIDAuMDI1IiwgXAotICAgICAgICAgICIwLjA3NzUsIDAuMDY2MjUsIDAuMDYsIDAuMDQ3NSwgMC4wNDc1LCAwLjAzNzUsIDAuMDI4NzUiLCBcCi0gICAgICAgICAgIjAuMDgsIDAuMDc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDUsIDAuMDQsIDAuMDM3NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAxLjM2OTk5OwotICAgIGZ1bmN0aW9uIDogIk4zMCI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3NlbnNlIDogbm9uX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiByaXNpbmdfZWRnZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzY5MzcsIDAuMTMxNTcxLCAwLjE4NTUzNiwgMC4yMjQwNjcsIDAuMjg1NzUyLCAwLjMzOTczLCAwLjQxNjg0MyIsIFwKLSAgICAgICAgICAiMC4wODUxNDQsIDAuMTM5NzgzLCAwLjE5Mzc0NSwgMC4yMzIyNzUsIDAuMjk0MDA5LCAwLjM0NzkxMSwgMC40MjQ5NjUiLCBcCi0gICAgICAgICAgIjAuMDk0ODQ3LCAwLjE0OTQ4MiwgMC4yMDM0NTMsIDAuMjQxOTc1LCAwLjMwMzcwOCwgMC4zNTc2MDIsIDAuNDM0NzAyIiwgXAotICAgICAgICAgICIwLjEwMjM5OSwgMC4xNTcwNSwgMC4yMTEwMjksIDAuMjQ5NTQ0LCAwLjMxMTI2OSwgMC4zNjUxOTEsIDAuNDQyMjQiLCBcCi0gICAgICAgICAgIjAuMTA5MDkxLCAwLjE2MzczNywgMC4yMTc3MDEsIDAuMjU2MjMsIDAuMzE3ODkyLCAwLjM3MTg0NSwgMC40NDg5NTYiLCBcCi0gICAgICAgICAgIjAuMTE3NTAxLCAwLjE3MjE0OSwgMC4yMjYxMSwgMC4yNjQ2NDMsIDAuMzI2Mjk3LCAwLjM4MDI3OSwgMC40NTczMzUiLCBcCi0gICAgICAgICAgIjAuMTI0MDc3LCAwLjE3ODcxNSwgMC4yMzI2NzcsIDAuMjcxMjYsIDAuMzMyODk4LCAwLjM4NjgzMiwgMC40NjM4OTMiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjQwMDUsIDAuMTM0ODc5LCAwLjI0ODMxNSwgMC4zMjk5MzcsIDAuNDU5MzY3LCAwLjU3NDE2OSwgMC43MzU3NzYiLCBcCi0gICAgICAgICAgIjAuMDI0MDA5LCAwLjEzNDg4MiwgMC4yNDg2MDYsIDAuMzI5ODg0LCAwLjQ1OTUsIDAuNTczNTMyLCAwLjczNjE0NSIsIFwKLSAgICAgICAgICAiMC4wMjQwMDcsIDAuMTM0ODgxLCAwLjI0ODYwNSwgMC4zMjk4OSwgMC40NTk3MzYsIDAuNTc0MjA1LCAwLjczNjg0MiIsIFwKLSAgICAgICAgICAiMC4wMjQwMDUsIDAuMTM0ODgsIDAuMjQ4NjEzLCAwLjMyOTY5MiwgMC40NTk1MjQsIDAuNTc0MTM0LCAwLjczNjg0MiIsIFwKLSAgICAgICAgICAiMC4wMjM5ODcsIDAuMTM0ODg5LCAwLjI0ODYwNSwgMC4zMjk4OSwgMC40NjAxNDUsIDAuNTc0MDk0LCAwLjczNjgyNSIsIFwKLSAgICAgICAgICAiMC4wMjQwNDQsIDAuMTM0ODc4LCAwLjI0ODU3NywgMC4zMjk5ODUsIDAuNDU5NzAxLCAwLjU3NDAzMiwgMC43MzY3NDUiLCBcCi0gICAgICAgICAgIjAuMDI0MDUzLCAwLjEzNDgwNiwgMC4yNDgzNzQsIDAuMzI5NiwgMC40NjAxMjgsIDAuNTczOTc5LCAwLjczNjczNSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5MjIyMiwgMC4xNDY5MTYsIDAuMjAwNzI3LCAwLjIzOTE0NSwgMC4zMDA2MzYsIDAuMzU0NDQ4LCAwLjQzMTI3OSIsIFwKLSAgICAgICAgICAiMC4xMDA0OCwgMC4xNTUxOCwgMC4yMDg5OTIsIDAuMjQ3NDEsIDAuMzA4ODczLCAwLjM2MjY4OSwgMC40Mzk1MzgiLCBcCi0gICAgICAgICAgIjAuMTEwMTkxLCAwLjE2NDg4OSwgMC4yMTg3MDEsIDAuMjU3MTIsIDAuMzE4NjExLCAwLjM3MjQyNCwgMC40NDkyNTMiLCBcCi0gICAgICAgICAgIjAuMTE4MjEyLCAwLjE3MjkwNSwgMC4yMjY3MTUsIDAuMjY1MTMzLCAwLjMyNjU5NSwgMC4zODAzOTgsIDAuNDU3MjM5IiwgXAotICAgICAgICAgICIwLjEyNDYzOCwgMC4xNzkzNCwgMC4yMzMxNTEsIDAuMjcxNTcsIDAuMzMzMDMsIDAuMzg2ODQsIDAuNDYzNzQyIiwgXAotICAgICAgICAgICIwLjEzMzA4OSwgMC4xODc3ODEsIDAuMjQxNTg3LCAwLjI4MDAwOSwgMC4zNDE0OTgsIDAuMzk1MjcsIDAuNDcyMTQyIiwgXAotICAgICAgICAgICIwLjEzOTUwNywgMC4xOTQyMDksIDAuMjQ4MDI1LCAwLjI4NjQzOCwgMC4zNDc5MjEsIDAuNDAxNjg4LCAwLjQ3ODU2MyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyMzg4MiwgMC4xMzI2NjcsIDAuMjQ0MDUsIDAuMzI0MzA1LCAwLjQ1MjM1NiwgMC41NjQ0MjcsIDAuNzIzMjAzIiwgXAotICAgICAgICAgICIwLjAyMzg4LCAwLjEzMjY2NSwgMC4yNDQwNTMsIDAuMzI0Mjk2LCAwLjQ1MjIzMiwgMC41NjQzMzgsIDAuNzIzMDkzIiwgXAotICAgICAgICAgICIwLjAyMzg4MSwgMC4xMzI2NjQsIDAuMjQ0MDQ5LCAwLjMyNDMwNSwgMC40NTIzNTcsIDAuNTY0NDIyLCAwLjcyMzIyMSIsIFwKLSAgICAgICAgICAiMC4wMjM4ODIsIDAuMTMyNjIxLCAwLjI0NDA1LCAwLjMyNDMwNiwgMC40NTIyMjcsIDAuNTY0MjkxLCAwLjcyNDMwMSIsIFwKLSAgICAgICAgICAiMC4wMjM4NzUsIDAuMTMyNjE4LCAwLjI0NDA1MSwgMC4zMjQzMDIsIDAuNDUyMjEsIDAuNTYzNjMsIDAuNzIyOTk4IiwgXAotICAgICAgICAgICIwLjAyNDAyMiwgMC4xMzI2MTUsIDAuMjQ0MzE3LCAwLjMyNDI0MywgMC40NTIzNCwgMC41NjM2MTcsIDAuNzIzMTUiLCBcCi0gICAgICAgICAgIjAuMDIzODQ2LCAwLjEzMjY1MiwgMC4yNDQwMjUsIDAuMzIzOTYxLCAwLjQ1MjMzMSwgMC41NjQxNDksIDAuNzIzMTg1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiBwcmVzZXQ7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY1MTc1LCAwLjExOTg5NiwgMC4xNzM4NTIsIDAuMjEyMzc5LCAwLjI3NDA2MywgMC4zMjc5OTcsIDAuNDA1MDAyIiwgXAotICAgICAgICAgICIwLjA3Mjc5NywgMC4xMjc0NTMsIDAuMTgxNDMsIDAuMjE5OTg4LCAwLjI4MTYwOSwgMC4zMzU2LCAwLjQxMjYzOCIsIFwKLSAgICAgICAgICAiMC4wODI0MTMsIDAuMTM3MDQ5LCAwLjE5MTAxMywgMC4yMjk1NTMsIDAuMjkxMjI5LCAwLjM0NTE2MSwgMC40MjIyNDEiLCBcCi0gICAgICAgICAgIjAuMDkwMzU0LCAwLjE0NDk1MywgMC4xOTg5MDUsIDAuMjM3NTE5LCAwLjI5OTExMSwgMC4zNTMwODIsIDAuNDMwMTQ1IiwgXAotICAgICAgICAgICIwLjA5NjkwOCwgMC4xNTE1NzksIDAuMjA1NTQyLCAwLjI0NDA4NywgMC4zMDU3NjIsIDAuMzU5NjkzLCAwLjQzNjc2NCIsIFwKLSAgICAgICAgICAiMC4xMDU0NCwgMC4xNjAwODcsIDAuMjE0MDc0LCAwLjI1MjYxMywgMC4zMTQyNzUsIDAuMzY4MjA5LCAwLjQ0NTMzIiwgXAotICAgICAgICAgICIwLjExMTU5NSwgMC4xNjYyMzEsIDAuMjIwMjAzLCAwLjI1ODczOSwgMC4zMjA0MjgsIDAuMzc0NDEyLCAwLjQ1MTQ3Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDIzOTM0LCAwLjEzNDk0LCAwLjI0ODY3NSwgMC4zMjkzOTgsIDAuNDYwMjI1LCAwLjU3NDA5NiwgMC43MzY3NyIsIFwKLSAgICAgICAgICAiMC4wMjM5MjQsIDAuMTM0OTU1LCAwLjI0ODcsIDAuMzMwMDI5LCAwLjQ2MDMsIDAuNTc0MDc5LCAwLjczNjY4MyIsIFwKLSAgICAgICAgICAiMC4wMjM5MTYsIDAuMTM0OTY1LCAwLjI0ODY2MSwgMC4zMzAwMTUsIDAuNDYwMjEyLCAwLjU3NDEwMSwgMC43MzY2MSIsIFwKLSAgICAgICAgICAiMC4wMjQwNDYsIDAuMTM0OTY5LCAwLjI0ODYyMywgMC4zMjk2MDgsIDAuNDYwMjE1LCAwLjU3NDExNCwgMC43MzY3NTkiLCBcCi0gICAgICAgICAgIjAuMDI0MjQsIDAuMTM0OTYsIDAuMjQ4NjI3LCAwLjMzLCAwLjQ2MDE4NiwgMC41NzQwODYsIDAuNzM2ODI5IiwgXAotICAgICAgICAgICIwLjAyNDIzOSwgMC4xMzQ4ODMsIDAuMjQ4Njg4LCAwLjMzMDAxNSwgMC40NjAxODgsIDAuNTc0MDcsIDAuNzM2Nzk0IiwgXAotICAgICAgICAgICIwLjAyNDM0NCwgMC4xMzQ3NjQsIDAuMjQ4NTUsIDAuMzI5OTIzLCAwLjQ2MDIxMywgMC41NzM2MzIsIDAuNzM2ODE0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEzOTAzLCAwLjAxNDA0NywgMC4wMTQwNzMsIDAuMDE0MDczLCAwLjAxNDA4NywgMC4wMTQwODcsIDAuMDE0MDg0IiwgXAotICAgICAgICAgICIwLjAxMzg4MywgMC4wMTQwMjYsIDAuMDE0MDQ3LCAwLjAxNDA1OCwgMC4wMTQwNTcsIDAuMDE0MDYzLCAwLjAxNDA2NCIsIFwKLSAgICAgICAgICAiMC4wMTM5NiwgMC4wMTQxMDQsIDAuMDE0MTI0LCAwLjAxNDEzLCAwLjAxNDEzNiwgMC4wMTQxMzgsIDAuMDE0MTQiLCBcCi0gICAgICAgICAgIjAuMDE0MDg3LCAwLjAxNDIzNywgMC4wMTQyNTgsIDAuMDE0MjY2LCAwLjAxNDI3MSwgMC4wMTQyNzUsIDAuMDE0Mjc3IiwgXAotICAgICAgICAgICIwLjAxNDE4NiwgMC4wMTQzNDIsIDAuMDE0MzY1LCAwLjAxNDM3MywgMC4wMTQzNzgsIDAuMDE0MzgsIDAuMDE0Mzg0IiwgXAotICAgICAgICAgICIwLjAxNDQyMywgMC4wMTQ1NjMsIDAuMDE0NTg0LCAwLjAxNDU4MywgMC4wMTQ1OTYsIDAuMDE0NTk4LCAwLjAxNDYwNCIsIFwKLSAgICAgICAgICAiMC4wMTQ2MDcsIDAuMDE0NzM5LCAwLjAxNDc1OCwgMC4wMTQ3NzUsIDAuMDE0NzgsIDAuMDE0NzU1LCAwLjAxNDc4NCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEzNTI5LCAwLjAxMzczNywgMC4wMTM3NzMsIDAuMDEzNzg0LCAwLjAxMzc5MywgMC4wMTM3OTksIDAuMDEzODAzIiwgXAotICAgICAgICAgICIwLjAxMzUxNSwgMC4wMTM3MjUsIDAuMDEzNzYxLCAwLjAxMzc3MywgMC4wMTM3ODMsIDAuMDEzNzg4LCAwLjAxMzc5MyIsIFwKLSAgICAgICAgICAiMC4wMTM2MTQsIDAuMDEzODI2LCAwLjAxMzg2MywgMC4wMTM4NzQsIDAuMDEzODg0LCAwLjAxMzg4OSwgMC4wMTM4OTQiLCBcCi0gICAgICAgICAgIjAuMDEzNzU4LCAwLjAxMzk2MSwgMC4wMTM5OTUsIDAuMDE0MDA3LCAwLjAxNDAxNSwgMC4wMTQwMiwgMC4wMTQwMjYiLCBcCi0gICAgICAgICAgIjAuMDEzODYyLCAwLjAxNDA3NCwgMC4wMTQxMTEsIDAuMDE0MTIyLCAwLjAxNDEzMiwgMC4wMTQxMzcsIDAuMDE0MTQxIiwgXAotICAgICAgICAgICIwLjAxNDEyNiwgMC4wMTQzMzcsIDAuMDE0Mzc3LCAwLjAxNDM4OCwgMC4wMTQzOTgsIDAuMDE0NDAyLCAwLjAxNDQwNyIsIFwKLSAgICAgICAgICAiMC4wMTQzNDgsIDAuMDE0NTU4LCAwLjAxNDU5NiwgMC4wMTQ2MDksIDAuMDE0NjE2LCAwLjAxNDYyMSwgMC4wMTQ2MjgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTQ5OTQsIDAuMDE1MTQxLCAwLjAxNTE2NCwgMC4wMTUxODYsIDAuMDE1MTc3LCAwLjAxNTE4LCAwLjAxNTE5MyIsIFwKLSAgICAgICAgICAiMC4wMTQ5NTcsIDAuMDE1MTA2LCAwLjAxNTEyOSwgMC4wMTUxMzUsIDAuMDE1MTUxLCAwLjAxNTE0NSwgMC4wMTUxNDgiLCBcCi0gICAgICAgICAgIjAuMDE0OTc0LCAwLjAxNTEyMSwgMC4wMTUxNDksIDAuMDE1MTUyLCAwLjAxNTE2MSwgMC4wMTUxNjMsIDAuMDE1MTY2IiwgXAotICAgICAgICAgICIwLjAxNTA2OSwgMC4wMTUyMTEsIDAuMDE1MjM2LCAwLjAxNTI0MywgMC4wMTUyNSwgMC4wMTUyNTUsIDAuMDE1MjU3IiwgXAotICAgICAgICAgICIwLjAxNTE4MiwgMC4wMTUzMTUsIDAuMDE1MzQ2LCAwLjAxNTM1NCwgMC4wMTUzNjYsIDAuMDE1MzY1LCAwLjAxNTM2NyIsIFwKLSAgICAgICAgICAiMC4wMTUzNzUsIDAuMDE1NTEzLCAwLjAxNTU0MiwgMC4wMTU1NDcsIDAuMDE1NTU2LCAwLjAxNTU1NywgMC4wMTU1NjkiLCBcCi0gICAgICAgICAgIjAuMDE1NTcsIDAuMDE1NzA2LCAwLjAxNTczNSwgMC4wMTU3NDIsIDAuMDE1NzUyLCAwLjAxNTc1MSwgMC4wMTU3NTQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoc2NhbGFyKSB7Ci0gICAgICAgIHZhbHVlcygiMCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oU0UpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTU2NDM7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNTY0MzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE1NjQyODsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDcxMDgsIDAuMDA3MTA5LCAwLjAwNzE3NSwgMC4wMDcyNzUsIDAuMDA3Mzk0LCAwLjAwNzU5NywgMC4wMDc3OTEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDkyMzQsIDAuMDA5MjM1LCAwLjAwOTM1OSwgMC4wMDk1NDIsIDAuMDA5NzgyLCAwLjAxMDE4NywgMC4wMTA1NjQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiU04iOwotICAgICAgc2RmX2NvbmQgOiAiU04gPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDEyNSwgLTAuMDA3NSwgMC4wMDUsIDAuMDExMjUsIDAuMDE3NSwgMC4wMjEyNSwgMC4wMyIsIFwKLSAgICAgICAgICAiLTAuMDE3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAsIDAuMDA2MjUsIDAuMDE2MjUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAsIDAuMDEsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLjAwMzc1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDMxMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgLTAuMDAyNSwgMCIsIFwKLSAgICAgICAgICAiLTAuMDQsIC0wLjAzNSwgLTAuMDI4NzUsIC0wLjAyMjUsIC0wLjAxNjI1LCAtMC4wMDYyNSwgLTAuMDAzNzUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDE1LCAtMC4wMDYyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAsIDAuMDExMjUsIDAuMDE3NSwgMC4wMjM3NSwgMC4wMywgMC4wMzM3NSwgMC4wNDI1IiwgXAotICAgICAgICAgICItMC4wMDUsIDAsIDAuMDEyNSwgMC4wMTg3NSwgMC4wMjUsIDAuMDI4NzUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjAxMTI1LCAtMC4wMDYyNSwgMCwgMC4wMDYyNSwgMC4wMTI1LCAwLjAyMjUsIDAuMDI1IiwgXAotICAgICAgICAgICItMC4wMTc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMCwgMC4wMDYyNSwgMC4wMTYyNSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMCwgMC4wMSwgMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wMzM3NSwgLTAuMDIyNSwgLTAuMDE2MjUsIC0wLjAxLCAtMC4wMDM3NSwgMCwgMC4wMDI1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwMjUsIDAiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlNOIjsKLSAgICAgIHNkZl9jb25kIDogIlNOID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1NjI1LCAwLjA0NSwgMC4wMzg3NSwgMC4wMjYyNSwgMC4wMiwgMC4wMTYyNSwgMC4wMTM3NSIsIFwKLSAgICAgICAgICAiMC4wNjEyNSwgMC4wNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyMTI1LCAwLjAxODc1IiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDYyNSwgMC4wNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzMzc1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICIwLjA3Mzc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDUsIDAuMDQzNzUsIDAuMDQsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiMC4wOCwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1NjI1LCAwLjA0NjI1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjA5LCAwLjA3ODc1LCAwLjA3MjUsIDAuMDY2MjUsIDAuMDY2MjUsIDAuMDU2MjUsIDAuMDUzNzUiLCBcCi0gICAgICAgICAgIjAuMDkyNSwgMC4wODc1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjUsIDAuMDYyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2MjUsIDAuMDUxMjUsIDAuMDQ1LCAwLjAzODc1LCAwLjAzODc1LCAwLjAzNSwgMC4wMjYyNSIsIFwKLSAgICAgICAgICAiMC4wNjc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDUsIDAuMDQzNzUsIDAuMDQsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiMC4wNzM3NSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1LCAwLjA0NjI1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjA4LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1MjUsIDAuMDUiLCBcCi0gICAgICAgICAgIjAuMDg2MjUsIDAuMDc1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDYyNSwgMC4wNTg3NSwgMC4wNSIsIFwKLSAgICAgICAgICAiMC4wOSwgMC4wNzg3NSwgMC4wNzI1LCAwLjA3MjUsIDAuMDY2MjUsIDAuMDYyNSwgMC4wNiIsIFwKLSAgICAgICAgICAiMC4wOTI1LCAwLjA4NzUsIDAuMDgxMjUsIDAuMDc1LCAwLjA2ODc1LCAwLjA2NSwgMC4wNjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTSSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwOTU2MjA2OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDk1MzY0MzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA5NTYyMDY7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA0NDc2LCAwLjAwNDQzMiwgMC4wMDQ0NTYsIDAuMDA0NSwgMC4wMDQ1ODQsIDAuMDA0NzM0LCAwLjAwNDg5MyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNzkzLCAwLjAwNzkwNCwgMC4wMDc5MjcsIDAuMDA3OTc2LCAwLjAwODA0NSwgMC4wMDgyMDMsIDAuMDA4MzQ5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlNFJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIlNFX0VRXzFfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMjUsIC0wLjAyLCAtMC4wMTM3NSwgLTAuMDA3NSwgLTAuMDA3NSwgLTAuMDAzNzUsIC0wLjAwMTI1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwODc1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxNSwgLTAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjAzNzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAyMTI1LCAtMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDI3NSwgLTAuMDI1IiwgXAotICAgICAgICAgICItMC4wNTg3NSwgLTAuMDUzNzUsIC0wLjA0NzUsIC0wLjA0NzUsIC0wLjA0MTI1LCAtMC4wMzc1LCAtMC4wMzUiLCBcCi0gICAgICAgICAgIi0wLjA2NzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDUsIC0wLjA0NjI1LCAtMC4wNDM3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAwNjI1LCAwLjAwNSwgMC4wMTEyNSwgMC4wMTc1LCAwLjAyMzc1LCAwLjAyNzUsIDAuMDM2MjUiLCBcCi0gICAgICAgICAgIi0wLjAxMTI1LCAwLCAwLjAwNjI1LCAwLjAxMjUsIDAuMDE4NzUsIDAuMDIyNSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDE3NSwgLTAuMDA2MjUsIDAsIDAuMDA2MjUsIDAuMDEyNSwgMC4wMTYyNSwgMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMCwgMC4wMDYyNSwgMC4wMTYyNSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxODc1LCAtMC4wMDYyNSwgMCwgMCwgMC4wMSwgMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wMjc1LCAtMC4wMjI1LCAtMC4wMTYyNSwgLTAuMDEsIC0wLjAwMzc1LCAwLCAwLjAwODc1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIC0wLjAwMjUsIDAuMDA2MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlNFJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIlNFX0VRXzFfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNSwgMC4wMzg3NSwgMC4wMzI1LCAwLjAyNjI1LCAwLjAyNjI1LCAwLjAyMjUsIDAuMDIiLCBcCi0gICAgICAgICAgIjAuMDU1LCAwLjA1LCAwLjAzNzUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMjc1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiMC4wNjEyNSwgMC4wNTYyNSwgMC4wNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzMzc1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNSwgMC4wNSwgMC4wNCwgMC4wMzc1IiwgXAotICAgICAgICAgICIwLjA4LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDU2MjUsIDAuMDQ2MjUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMDgzNzUsIDAuMDc4NzUsIDAuMDcyNSwgMC4wNjYyNSwgMC4wNiwgMC4wNTYyNSwgMC4wNTM3NSIsIFwKLSAgICAgICAgICAiMC4wOTI1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNzUsIDAuMDY4NzUsIDAuMDY1LCAwLjA2MjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDM3NSwgMC4wMzg3NSwgMC4wMjYyNSwgMC4wMiwgMC4wMTM3NSwgMC4wMDM3NSwgMC4wMDEyNSIsIFwKLSAgICAgICAgICAiMC4wNDg3NSwgMC4wNDM3NSwgMC4wMzEyNSwgMC4wMjUsIDAuMDE4NzUsIDAuMDA4NzUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMDU1LCAwLjA1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDI1LCAwLjAxNSwgMC4wMTI1IiwgXAotICAgICAgICAgICIwLjA2MTI1LCAwLjA1NjI1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDIxMjUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMDY3NSwgMC4wNjI1LCAwLjA1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDI3NSwgMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMDc3NSwgMC4wNjYyNSwgMC4wNiwgMC4wNDc1LCAwLjA0MTI1LCAwLjAzNzUsIDAuMDI4NzUiLCBcCi0gICAgICAgICAgIjAuMDgsIDAuMDc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDUsIDAuMDQsIDAuMDM3NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oU04pICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTc3OTI0OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTYzODE0OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTc3OTI0OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDg0MiwgMC4wMDA4NDEsIDAuMDAwODQxLCAwLjAwMDg0LCAwLjAwMDg0MSwgMC4wMDA4NCwgMC4wMDA4NCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDg3LCAwLjAwMDg1MiwgMC4wMDA4NDgsIDAuMDAwODQ1LCAwLjAwMDg0MSwgMC4wMDA4NDMsIDAuMDAwODQzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRCYhU0UmIVNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9TRV9FUV8wX0FOX1NJX0VRXzAgPT0gMSdiMSI7Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wNjUxNzUsIDAuMDcyNzk3LCAwLjA4MjQxMywgMC4wOTAzNTQsIDAuMDk2OTA4LCAwLjEwNTQ0LCAwLjExMTU5NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJlY292ZXJ5X3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUQmIVNFJiFTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fU0VfRVFfMF9BTl9TSV9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHJlY292ZXJ5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLCAtMC4wMTEyNSwgLTAuMDIzNzUsIC0wLjAzLCAtMC4wMzYyNSwgLTAuMDQ2MjUsIC0wLjA1NSIsIFwKLSAgICAgICAgICAiMC4wMDUsIC0wLjAwNjI1LCAtMC4wMTI1LCAtMC4wMjUsIC0wLjAzMTI1LCAtMC4wNDEyNSwgLTAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMDExMjUsIDAsIC0wLjAwNjI1LCAtMC4wMTg3NSwgLTAuMDI1LCAtMC4wMjg3NSwgLTAuMDM3NSIsIFwKLSAgICAgICAgICAiMC4wMTc1LCAwLjAxMjUsIDAsIC0wLjAwNjI1LCAtMC4wMTI1LCAtMC4wMjI1LCAtMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4wMywgMC4wMTg3NSwgMC4wMDYyNSwgMCwgLTAuMDA2MjUsIC0wLjAxNjI1LCAtMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMDQsIDAuMDI4NzUsIDAuMDE2MjUsIDAuMDEsIDAuMDAzNzUsIC0wLjAwNjI1LCAtMC4wMDg3NSIsIFwKLSAgICAgICAgICAiMC4wNDg3NSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAxODc1LCAwLjAxMjUsIDAuMDAyNSwgMCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJlbW92YWxfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRCYhU0UmIVNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9TRV9FUV8wX0FOX1NJX0VRXzAgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQocmVtb3ZhbF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjUsIDAuMDM2MjUsIDAuMDQ4NzUsIDAuMDU1LCAwLjA2MTI1LCAwLjA3MTI1LCAwLjA3Mzc1IiwgXAotICAgICAgICAgICIwLjAyLCAwLjAzMTI1LCAwLjAzNzUsIDAuMDUsIDAuMDU2MjUsIDAuMDYsIDAuMDY4NzUiLCBcCi0gICAgICAgICAgIjAuMDEzNzUsIDAuMDI1LCAwLjAzMTI1LCAwLjAzNzUsIDAuMDQzNzUsIDAuMDUzNzUsIDAuMDYyNSIsIFwKLSAgICAgICAgICAiMC4wMDc1LCAwLjAxODc1LCAwLjAyNSwgMC4wMzEyNSwgMC4wMzc1LCAwLjA0NzUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIjAuMDAxMjUsIDAuMDEyNSwgMC4wMTg3NSwgMC4wMjUsIDAuMDMxMjUsIDAuMDQxMjUsIDAuMDUiLCBcCi0gICAgICAgICAgIi0wLjAwODc1LCAwLjAwMjUsIDAuMDA4NzUsIDAuMDIxMjUsIDAuMDI3NSwgMC4wMzEyNSwgMC4wNCIsIFwKLSAgICAgICAgICAiLTAuMDExMjUsIC0wLjAwNjI1LCAwLjAwNjI1LCAwLjAxMjUsIDAuMDE4NzUsIDAuMDI4NzUsIDAuMDMxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IFNERkZTSFFYOCAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKFNERkZTSFFYOCkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAyLjA5Mzc0OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIGZmIChOMzAsUUJJTlQpIHsKLSAgICBuZXh0X3N0YXRlIDogIigoU0UgU0kpICsgKCFTRSBEKSkiOwotICAgIGNsb2NrZWRfb24gOiAiQ0siOwotICAgIHByZXNldCA6ICIoIVNOKSI7Ci0gIH0KLSAgcGluKENLKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2MzU0NTE7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjM1NDI4OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDYzNTQ1MTsKLSAgICBjbG9jayA6IHRydWU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzOTc0LCAwLjAwMzk3MywgMC4wMDQwNCwgMC4wMDQxMjgsIDAuMDA0MjQzLCAwLjAwNDQ4OCwgMC4wMDQ2OTgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMTAwNSwgMC4wMTAwMzgsIDAuMDEwMTM3LCAwLjAxMDI1OCwgMC4wMTA0MTgsIDAuMDEwNTg5LCAwLjAxMDc5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRCYhU0UmIVNJJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9TRV9FUV8wX0FOX1NJX0VRXzBfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjA5NTk0OCwgMC4xMDQyOTcsIDAuMTEzOTIyLCAwLjEyMjA3NCwgMC4xMjg1MzIsIDAuMTM3MTEyLCAwLjE0MzU4NCIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDc1NDg1LCAwLjA4MzYwOSwgMC4wOTMyNzEsIDAuMTAwOTkyLCAwLjEwNzIzNSwgMC4xMTU1MzQsIDAuMTIxNDc2Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihEKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA4OTc2MTI7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwODk0OTA0OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDg5NzYxMjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDUxMDYsIDAuMDA1MDYyLCAwLjAwNTA4LCAwLjAwNTExNiwgMC4wMDUxOTksIDAuMDA1MzM2LCAwLjAwNTQ5MiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNzgwOSwgMC4wMDc3ODEsIDAuMDA3Nzk3LCAwLjAwNzgzMywgMC4wMDc5MDQsIDAuMDA4MDMxLCAwLjAwODE4MiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhU0UmU04iOwotICAgICAgc2RmX2NvbmQgOiAiU0VfRVFfMF9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAyNSwgLTAuMDIsIC0wLjAxMzc1LCAtMC4wMDc1LCAtMC4wMDc1LCAtMC4wMDM3NSwgLTAuMDAxMjUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA4NzUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzEyNSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxNSwgLTAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDMxMjUsIC0wLjAyMTI1LCAtMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNDM3NSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMjc1LCAtMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjA1ODc1LCAtMC4wNTM3NSwgLTAuMDQ3NSwgLTAuMDQ3NSwgLTAuMDQxMjUsIC0wLjAzNzUsIC0wLjAzNSIsIFwKLSAgICAgICAgICAiLTAuMDY3NSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNSwgLTAuMDQ2MjUsIC0wLjA0Mzc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDA2MjUsIDAuMDA1LCAwLjAxMTI1LCAwLjAxNzUsIDAuMDIzNzUsIDAuMDI3NSwgMC4wMzYyNSIsIFwKLSAgICAgICAgICAiLTAuMDExMjUsIDAsIDAuMDA2MjUsIDAuMDEyNSwgMC4wMTg3NSwgMC4wMjI1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wMTc1LCAtMC4wMDYyNSwgMCwgMC4wMDYyNSwgMC4wMTI1LCAwLjAxNjI1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLCAwLjAwNjI1LCAwLjAxLCAwLjAxODc1IiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLCAwLjAxLCAwLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjAzMzc1LCAtMC4wMjI1LCAtMC4wMTYyNSwgLTAuMDEsIC0wLjAwMzc1LCAwLCAwLjAwODc1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDEyNSwgLTAuMDAyNSwgMCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIVNFJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIlNFX0VRXzBfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNSwgMC4wNDUsIDAuMDM4NzUsIDAuMDMyNSwgMC4wMjYyNSwgMC4wMjI1LCAwLjAyIiwgXAotICAgICAgICAgICIwLjA1NSwgMC4wNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyNzUsIDAuMDI1IiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDU2MjUsIDAuMDUsIDAuMDQzNzUsIDAuMDQzNzUsIDAuMDQsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMDczNzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNSwgMC4wNSwgMC4wNDYyNSwgMC4wMzc1IiwgXAotICAgICAgICAgICIwLjA4LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNTI1LCAwLjA1IiwgXAotICAgICAgICAgICIwLjA5LCAwLjA3ODc1LCAwLjA3MjUsIDAuMDY2MjUsIDAuMDY2MjUsIDAuMDYyNSwgMC4wNTM3NSIsIFwKLSAgICAgICAgICAiMC4wOTg3NSwgMC4wODc1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjUsIDAuMDYyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0Mzc1LCAwLjAzODc1LCAwLjAyNjI1LCAwLjAyLCAwLjAxMzc1LCAwLjAwMzc1LCAwLjAwMTI1IiwgXAotICAgICAgICAgICIwLjA1NSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAyNSwgMC4wMTg3NSwgMC4wMTUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMDYxMjUsIDAuMDUsIDAuMDQzNzUsIDAuMDMxMjUsIDAuMDMxMjUsIDAuMDIxMjUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4wNjc1LCAwLjA1NjI1LCAwLjA1LCAwLjAzNzUsIDAuMDM3NSwgMC4wMjc1LCAwLjAxODc1IiwgXAotICAgICAgICAgICIwLjA3Mzc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzM3NSwgMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMDc3NSwgMC4wNzI1LCAwLjA2LCAwLjA1Mzc1LCAwLjA0NzUsIDAuMDM3NSwgMC4wMzUiLCBcCi0gICAgICAgICAgIjAuMDg2MjUsIDAuMDc1LCAwLjA2ODc1LCAwLjA1NjI1LCAwLjA1LCAwLjA0NjI1LCAwLjAzNzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFEpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMi43MDkwMTsKLSAgICBmdW5jdGlvbiA6ICJOMzAiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5vbl91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcmlzaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDgyNjI5LCAwLjExMTU4LCAwLjEzODk1MywgMC4xNTg0NzgsIDAuMTg5NzA4LCAwLjIxNzAyMSwgMC4yNTYwMzEiLCBcCi0gICAgICAgICAgIjAuMDkwNzg2LCAwLjExOTczLCAwLjE0NzEwMiwgMC4xNjY2MjcsIDAuMTk3ODUxLCAwLjIyNTE3NCwgMC4yNjQxODkiLCBcCi0gICAgICAgICAgIjAuMTAwNDczLCAwLjEyOTQxNywgMC4xNTY3ODcsIDAuMTc2MzE3LCAwLjIwNzU0NCwgMC4yMzQ4NTcsIDAuMjczODczIiwgXAotICAgICAgICAgICIwLjEwODI3NCwgMC4xMzcyMiwgMC4xNjQ1OSwgMC4xODQxMTUsIDAuMjE1MzMyLCAwLjI0MjY0OSwgMC4yODE2NzEiLCBcCi0gICAgICAgICAgIjAuMTE1MTYxLCAwLjE0NDA5MSwgMC4xNzE0NzQsIDAuMTkwOTg5LCAwLjIyMjIwOSwgMC4yNDk1MzYsIDAuMjg4NTY1IiwgXAotICAgICAgICAgICIwLjEyMzY5NywgMC4xNTI2NSwgMC4xODAwMywgMC4xOTk1NDIsIDAuMjMwNzU5LCAwLjI1ODA2NywgMC4yOTcwOTEiLCBcCi0gICAgICAgICAgIjAuMTMwNTAzLCAwLjE1OTQ1MywgMC4xODY4MzMsIDAuMjA2MzQ5LCAwLjIzNzU3OSwgMC4yNjQ3OTUsIDAuMzAzOTA5Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE3MjI0LCAwLjA3MTgyNiwgMC4xMjg2ODUsIDAuMTY5NTgxLCAwLjIzNTQwOSwgMC4yOTMyMjQsIDAuMzc1MDc3IiwgXAotICAgICAgICAgICIwLjAxNzIwOCwgMC4wNzE4MjQsIDAuMTI4Njc0LCAwLjE2OTY0NywgMC4yMzUwNDksIDAuMjkzMjMxLCAwLjM3NTgiLCBcCi0gICAgICAgICAgIjAuMDE3MjQxLCAwLjA3MTgyOSwgMC4xMjg2NzcsIDAuMTY5NjU0LCAwLjIzNTI3MSwgMC4yOTMyNCwgMC4zNzU3NzkiLCBcCi0gICAgICAgICAgIjAuMDE3MjMxLCAwLjA3MTgzMSwgMC4xMjg2NzgsIDAuMTY5NTUzLCAwLjIzNTQyNCwgMC4yOTI5MjEsIDAuMzc1NzAzIiwgXAotICAgICAgICAgICIwLjAxNzIyOSwgMC4wNzE4MjQsIDAuMTI4NjksIDAuMTY5NjA1LCAwLjIzNTM4MiwgMC4yOTI4NjQsIDAuMzc1NzY5IiwgXAotICAgICAgICAgICIwLjAxNzI0NCwgMC4wNzE4MzQsIDAuMTI4Njk5LCAwLjE2OTY1LCAwLjIzNTM4NiwgMC4yOTMwNjIsIDAuMzc1NjcyIiwgXAotICAgICAgICAgICIwLjAxNzI1NCwgMC4wNzE4ODYsIDAuMTI4Njg3LCAwLjE2OTYzOCwgMC4yMzUzOTIsIDAuMjkzMTkzLCAwLjM3NTY3NSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5NTk0OCwgMC4xMjU4NDIsIDAuMTU0MTEsIDAuMTc0MjYsIDAuMjA2NDYzLCAwLjIzNDYzOSwgMC4yNzQ4ODEiLCBcCi0gICAgICAgICAgIjAuMTA0Mjk3LCAwLjEzNDE4MiwgMC4xNjI0NDcsIDAuMTgyNTk0LCAwLjIxNDgwNywgMC4yNDI5ODEsIDAuMjgzMjI3IiwgXAotICAgICAgICAgICIwLjExMzkyMiwgMC4xNDM4MDgsIDAuMTcyMDc2LCAwLjE5MjIyNiwgMC4yMjQ0MzQsIDAuMjUyNjEzLCAwLjI5Mjg0NCIsIFwKLSAgICAgICAgICAiMC4xMjIwNzQsIDAuMTUxOTU4LCAwLjE4MDIyNiwgMC4yMDAzNzUsIDAuMjMyNTg0LCAwLjI2MDc2MywgMC4zMDEwMSIsIFwKLSAgICAgICAgICAiMC4xMjg1MzIsIDAuMTU4NDIyLCAwLjE4NjY4OSwgMC4yMDY4MzksIDAuMjM5MDQzLCAwLjI2NzIyNywgMC4zMDc0NzUiLCBcCi0gICAgICAgICAgIjAuMTM3MTEzLCAwLjE2Njk5NywgMC4xOTUyNjEsIDAuMjE1NDE1LCAwLjI0NzYyMSwgMC4yNzU3OTYsIDAuMzE2MDQyIiwgXAotICAgICAgICAgICIwLjE0MzYyNSwgMC4xNzM1MTMsIDAuMjAxNzg1LCAwLjIyMTg5MSwgMC4yNTQxMDgsIDAuMjgyMzExLCAwLjMyMjU1MSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxNzQ3MiwgMC4wNzI5MjQsIDAuMTMwNjE2LCAwLjE3MjIwOCwgMC4yMzg5OTYsIDAuMjk3NDU0LCAwLjM4MTE2OCIsIFwKLSAgICAgICAgICAiMC4wMTc0NjgsIDAuMDcyOTE0LCAwLjEzMDU1MiwgMC4xNzIyMjMsIDAuMjM4OTc0LCAwLjI5NzQ3MiwgMC4zODE1NjMiLCBcCi0gICAgICAgICAgIjAuMDE3NDcxLCAwLjA3MjkyNSwgMC4xMzA2MTYsIDAuMTcyMjA2LCAwLjIzODk3NSwgMC4yOTc0ODIsIDAuMzgxNTc1IiwgXAotICAgICAgICAgICIwLjAxNzQ1NywgMC4wNzI5MjUsIDAuMTMwNjE2LCAwLjE3MjIwOCwgMC4yMzg5NzQsIDAuMjk3NDc5LCAwLjM4MTU1OCIsIFwKLSAgICAgICAgICAiMC4wMTc0NjUsIDAuMDcyOTI3LCAwLjEzMDYxNSwgMC4xNzIyMDgsIDAuMjM4OTY4LCAwLjI5NzQ4LCAwLjM4MTU2NyIsIFwKLSAgICAgICAgICAiMC4wMTc0NjcsIDAuMDcyOTE4LCAwLjEzMDY2OSwgMC4xNzIyMjYsIDAuMjM4OTc5LCAwLjI5NzQ1OSwgMC4zODE1ODYiLCBcCi0gICAgICAgICAgIjAuMDE3NDUyLCAwLjA3Mjg2MywgMC4xMzA2MjcsIDAuMTcyMTk4LCAwLjIzODk4MSwgMC4yOTc0NTYsIDAuMzgxNTA2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiBwcmVzZXQ7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDcwNDQ2LCAwLjA5OTM4MSwgMC4xMjY3NTYsIDAuMTQ2Mjc3LCAwLjE3NzUwMywgMC4yMDQ4MTksIDAuMjQzODk4IiwgXAotICAgICAgICAgICIwLjA3NzA0NywgMC4xMDU5OTIsIDAuMTMzMzU0LCAwLjE1Mjg2OCwgMC4xODQxMTEsIDAuMjExMzk0LCAwLjI1MDQ1MiIsIFwKLSAgICAgICAgICAiMC4wODYwNjgsIDAuMTE0OTQ0LCAwLjE0MjMwMSwgMC4xNjE4MTYsIDAuMTkzMDIxLCAwLjIyMDMyMiwgMC4yNTkzODUiLCBcCi0gICAgICAgICAgIjAuMDk0NDk0LCAwLjEyMzQxLCAwLjE1MDgwNywgMC4xNzAzMjUsIDAuMjAxNTI1LCAwLjIyODg3MiwgMC4yNjc4NDciLCBcCi0gICAgICAgICAgIjAuMTAxNjQ3LCAwLjEzMDU0LCAwLjE1NzkxMiwgMC4xNzc0MywgMC4yMDg2NTYsIDAuMjM1OTg0LCAwLjI3NDk5NSIsIFwKLSAgICAgICAgICAiMC4xMTEwNjQsIDAuMTM5OTY1LCAwLjE2NzMyNiwgMC4xODY4NSwgMC4yMTgwNzQsIDAuMjQ1Mzk3LCAwLjI4NDQzNyIsIFwKLSAgICAgICAgICAiMC4xMTc4NjMsIDAuMTQ2ODEsIDAuMTc0MTczLCAwLjE5MzcwNSwgMC4yMjQ5NDMsIDAuMjUyMjU4LCAwLjI5MTI5MSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxNzE0OSwgMC4wNzE3NjUsIDAuMTI4NjMyLCAwLjE2OTU4MiwgMC4yMzU2NDUsIDAuMjkzMzIzLCAwLjM3NTY5MiIsIFwKLSAgICAgICAgICAiMC4wMTcxNzIsIDAuMDcxNzU5LCAwLjEyODYzMiwgMC4xNjk1MjksIDAuMjM1MTY0LCAwLjI5MzI5OSwgMC4zNzU0MDkiLCBcCi0gICAgICAgICAgIjAuMDE3MTM1LCAwLjA3MTc1NywgMC4xMjg2NCwgMC4xNjk2MTUsIDAuMjM1MjQ0LCAwLjI5MzM0MywgMC4zNzU3MSIsIFwKLSAgICAgICAgICAiMC4wMTcxODUsIDAuMDcxNzYxLCAwLjEyODY0MywgMC4xNjk1ODUsIDAuMjM1NDQ4LCAwLjI5MzMzLCAwLjM3NTcxMyIsIFwKLSAgICAgICAgICAiMC4wMTczNjQsIDAuMDcxODE2LCAwLjEyODY2NywgMC4xNjk2NjYsIDAuMjM1MzQ0LCAwLjI5MzM5MSwgMC4zNzU3NTQiLCBcCi0gICAgICAgICAgIjAuMDE3NTc4LCAwLjA3MTgyNCwgMC4xMjg2NzEsIDAuMTY5NjE3LCAwLjIzNTU0NCwgMC4yOTMzODcsIDAuMzc1NzkiLCBcCi0gICAgICAgICAgIjAuMDE3NzIxLCAwLjA3MjAwOCwgMC4xMjg1ODksIDAuMTY5NjU1LCAwLjIzNTU5NSwgMC4yOTMzMiwgMC4zNzU4MzMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjA0NjUsIDAuMDIwODA1LCAwLjAyMDg5OCwgMC4wMjA5MjksIDAuMDIwOTU3LCAwLjAyMDk4MiwgMC4wMjA5ODYiLCBcCi0gICAgICAgICAgIjAuMDIwNDQ3LCAwLjAyMDc5LCAwLjAyMDg4NCwgMC4wMjA5MTUsIDAuMDIwOTQ0LCAwLjAyMDk1OSwgMC4wMjA5NzMiLCBcCi0gICAgICAgICAgIjAuMDIwNTE4LCAwLjAyMDg2MSwgMC4wMjA5NTQsIDAuMDIwOTg1LCAwLjAyMTAxMywgMC4wMjEwMzMsIDAuMDIxMDUiLCBcCi0gICAgICAgICAgIjAuMDIwNjU1LCAwLjAyMDk5NiwgMC4wMjEwODksIDAuMDIxMTIsIDAuMDIxMTU4LCAwLjAyMTE2NCwgMC4wMjExNzgiLCBcCi0gICAgICAgICAgIjAuMDIwNzQ1LCAwLjAyMTA4MywgMC4wMjExNzQsIDAuMDIxMjA3LCAwLjAyMTIzNSwgMC4wMjEyNSwgMC4wMjEyNjQiLCBcCi0gICAgICAgICAgIjAuMDIwOTgyLCAwLjAyMTMxMiwgMC4wMjE0MDYsIDAuMDIxNDM3LCAwLjAyMTQ4NiwgMC4wMjE0ODQsIDAuMDIxNTExIiwgXAotICAgICAgICAgICIwLjAyMTE1NSwgMC4wMjE1MDEsIDAuMDIxNTkyLCAwLjAyMTYxMywgMC4wMjE2NTMsIDAuMDIxNjY4LCAwLjAyMTY4OCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDIwMDE5LCAwLjAyMDQ0NiwgMC4wMjA1ODMsIDAuMDIwNjMsIDAuMDIwNjc3LCAwLjAyMDcsIDAuMDIwNzIyIiwgXAotICAgICAgICAgICIwLjAyMDAzNSwgMC4wMjA0NDMsIDAuMDIwNTc4LCAwLjAyMDYyNCwgMC4wMjA2NjgsIDAuMDIwNjkxLCAwLjAyMDcxNCIsIFwKLSAgICAgICAgICAiMC4wMjAxMjMsIDAuMDIwNTQ2LCAwLjAyMDY4MSwgMC4wMjA3MjksIDAuMDIwNzc0LCAwLjAyMDc5OCwgMC4wMjA4MiIsIFwKLSAgICAgICAgICAiMC4wMjAyNDUsIDAuMDIwNjY3LCAwLjAyMDgwMiwgMC4wMjA4NSwgMC4wMjA4OTUsIDAuMDIwOTE5LCAwLjAyMDk0MSIsIFwKLSAgICAgICAgICAiMC4wMjAzNTIsIDAuMDIwNzczLCAwLjAyMDkwNywgMC4wMjA5NTcsIDAuMDIxMDAxLCAwLjAyMTAyNiwgMC4wMjEwNDciLCBcCi0gICAgICAgICAgIjAuMDIwNjI1LCAwLjAyMTA2NSwgMC4wMjExOTMsIDAuMDIxMjQ1LCAwLjAyMTI5MSwgMC4wMjEzMTUsIDAuMDIxMzM4IiwgXAotICAgICAgICAgICIwLjAyMDgzMywgMC4wMjEyNjMsIDAuMDIxMzkxLCAwLjAyMTQ0MSwgMC4wMjE0ODMsIDAuMDIxNTA3LCAwLjAyMTUyOSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyMTUwNCwgMC4wMjE4NDIsIDAuMDIxOTM3LCAwLjAyMTk3LCAwLjAyMiwgMC4wMjIwMjgsIDAuMDIyMDMxIiwgXAotICAgICAgICAgICIwLjAyMTQ3NCwgMC4wMjE4MTEsIDAuMDIxOTA3LCAwLjAyMTkzOSwgMC4wMjE5NywgMC4wMjE5OSwgMC4wMjIwMDEiLCBcCi0gICAgICAgICAgIjAuMDIxNTAzLCAwLjAyMTg0MSwgMC4wMjE5MzcsIDAuMDIxOTcsIDAuMDIyMDEsIDAuMDIyMDIxLCAwLjAyMjA1NCIsIFwKLSAgICAgICAgICAiMC4wMjE1NjUsIDAuMDIxOTE4LCAwLjAyMjAyLCAwLjAyMjA3MiwgMC4wMjIwODksIDAuMDIyMTA3LCAwLjAyMjEyMyIsIFwKLSAgICAgICAgICAiMC4wMjE3NjQsIDAuMDIyMDg1LCAwLjAyMjE5MiwgMC4wMjIyMjgsIDAuMDIyMjYyLCAwLjAyMjI3NywgMC4wMjIyOTciLCBcCi0gICAgICAgICAgIjAuMDIxOTk0LCAwLjAyMjMwMSwgMC4wMjI0MDksIDAuMDIyNDQ4LCAwLjAyMjQ4LCAwLjAyMjQ5NSwgMC4wMjI1MTYiLCBcCi0gICAgICAgICAgIjAuMDIyMjQyLCAwLjAyMjUzMSwgMC4wMjI2MjgsIDAuMDIyNjY4LCAwLjAyMjcwMiwgMC4wMjI3MiwgMC4wMjI3NDkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoc2NhbGFyKSB7Ci0gICAgICAgIHZhbHVlcygiMCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oU0UpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTU1ODgxOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTU1ODgxOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTU1ODc3OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNzI3NywgMC4wMDcyNzUsIDAuMDA3MzM4LCAwLjAwNzQzNywgMC4wMDc1NTksIDAuMDA3NzU2LCAwLjAwNzk0NyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwOTUxOSwgMC4wMDk1MTUsIDAuMDA5NjQxLCAwLjAwOTgyLCAwLjAxMDA2MSwgMC4wMTA0NjIsIDAuMDEwODM3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlNOIjsKLSAgICAgIHNkZl9jb25kIDogIlNOID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAxMjUsIC0wLjAwNzUsIDAuMDA1LCAwLjAxMTI1LCAwLjAxNzUsIDAuMDIxMjUsIDAuMDIzNzUiLCBcCi0gICAgICAgICAgIi0wLjAxNzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLCAwLjAwNjI1LCAwLjAxNjI1LCAwLjAxODc1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLCAwLjAwMzc1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMC4wMDM3NSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDEyNSwgLTAuMDAyNSwgMCIsIFwKLSAgICAgICAgICAiLTAuMDQsIC0wLjAzNSwgLTAuMDI4NzUsIC0wLjAyMjUsIC0wLjAxNjI1LCAtMC4wMDYyNSwgLTAuMDAzNzUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDE1LCAtMC4wMDYyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAsIDAuMDExMjUsIDAuMDE3NSwgMC4wMjM3NSwgMC4wMywgMC4wMzM3NSwgMC4wNDI1IiwgXAotICAgICAgICAgICItMC4wMDUsIDAsIDAuMDEyNSwgMC4wMTg3NSwgMC4wMTg3NSwgMC4wMjg3NSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDExMjUsIC0wLjAwNjI1LCAwLCAwLjAwNjI1LCAwLjAxMjUsIDAuMDIyNSwgMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMCwgMC4wMDYyNSwgMC4wMSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMCwgMC4wMSwgMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wMzM3NSwgLTAuMDIyNSwgLTAuMDE2MjUsIC0wLjAxLCAtMC4wMSwgMCwgMC4wMDI1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwODc1LCAwIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJTTiA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTYyNSwgMC4wNDUsIDAuMDM4NzUsIDAuMDMyNSwgMC4wMjYyNSwgMC4wMTYyNSwgMC4wMTM3NSIsIFwKLSAgICAgICAgICAiMC4wNjEyNSwgMC4wNTYyNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyMTI1LCAwLjAxODc1IiwgXAotICAgICAgICAgICIwLjA3Mzc1LCAwLjA2MjUsIDAuMDUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzM3NSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4wNzM3NSwgMC4wNjg3NSwgMC4wNTYyNSwgMC4wNSwgMC4wNSwgMC4wNCwgMC4wMzc1IiwgXAotICAgICAgICAgICIwLjA4LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDU2MjUsIDAuMDUyNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4wOSwgMC4wNzg3NSwgMC4wNzI1LCAwLjA2NjI1LCAwLjA2NjI1LCAwLjA1NjI1LCAwLjA1Mzc1IiwgXAotICAgICAgICAgICIwLjA5ODc1LCAwLjA4NzUsIDAuMDgxMjUsIDAuMDc1LCAwLjA2ODc1LCAwLjA2NSwgMC4wNjI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDYyNSwgMC4wNTEyNSwgMC4wNDUsIDAuMDQ1LCAwLjAzODc1LCAwLjAzNSwgMC4wMzI1IiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNSwgMC4wNDM3NSwgMC4wNCwgMC4wMzc1IiwgXAotICAgICAgICAgICIwLjA4LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDU2MjUsIDAuMDQ2MjUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMDgsIDAuMDc1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDUyNSwgMC4wNSIsIFwKLSAgICAgICAgICAiMC4wODYyNSwgMC4wODEyNSwgMC4wNjg3NSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1ODc1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICIwLjA5LCAwLjA4NSwgMC4wNzg3NSwgMC4wNzI1LCAwLjA2NjI1LCAwLjA2MjUsIDAuMDYiLCBcCi0gICAgICAgICAgIjAuMDk4NzUsIDAuMDg3NSwgMC4wODEyNSwgMC4wNzUsIDAuMDY4NzUsIDAuMDY1LCAwLjA2MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFNJKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA5ODQzMjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA5ODIxNzI7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwOTg0MzI7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA0NDgyLCAwLjAwNDQzOSwgMC4wMDQ0NTksIDAuMDA0NTA4LCAwLjAwNDU5MiwgMC4wMDQ3NDcsIDAuMDA0OTIyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA4MDcsIDAuMDA4MDQ1LCAwLjAwODA2OSwgMC4wMDgxMTcsIDAuMDA4MTg1LCAwLjAwODM0LCAwLjAwODQ4OSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJTRSZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJTRV9FUV8xX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDI1LCAtMC4wMiwgLTAuMDEzNzUsIC0wLjAwNzUsIC0wLjAwNzUsIC0wLjAwMzc1LCAtMC4wMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDg3NSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTUsIC0wLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wMzc1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMjEyNSwgLTAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAyNzUsIC0wLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDU4NzUsIC0wLjA1Mzc1LCAtMC4wNDc1LCAtMC4wNDc1LCAtMC4wNDEyNSwgLTAuMDM3NSwgLTAuMDM1IiwgXAotICAgICAgICAgICItMC4wNjc1LCAtMC4wNTYyNSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNSwgLTAuMDQ2MjUsIC0wLjAzNzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMDYyNSwgMC4wMDUsIDAuMDExMjUsIDAuMDE3NSwgMC4wMjM3NSwgMC4wMzM3NSwgMC4wMzYyNSIsIFwKLSAgICAgICAgICAiLTAuMDExMjUsIDAsIDAuMDA2MjUsIDAuMDEyNSwgMC4wMTg3NSwgMC4wMjI1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wMTc1LCAtMC4wMDYyNSwgMCwgMC4wMDYyNSwgMC4wMTI1LCAwLjAxNjI1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLCAwLjAwNjI1LCAwLjAxNjI1LCAwLjAxODc1IiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLCAwLCAwLjAxLCAwLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjAyNzUsIC0wLjAyMjUsIC0wLjAxNjI1LCAtMC4wMSwgLTAuMDAzNzUsIDAsIDAuMDA4NzUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgLTAuMDAyNSwgMC4wMDYyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiU0UmU04iOwotICAgICAgc2RmX2NvbmQgOiAiU0VfRVFfMV9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1LCAwLjAzODc1LCAwLjAzMjUsIDAuMDMyNSwgMC4wMjYyNSwgMC4wMjI1LCAwLjAyIiwgXAotICAgICAgICAgICIwLjA1NSwgMC4wNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyNzUsIDAuMDI1IiwgXAotICAgICAgICAgICIwLjA2MTI1LCAwLjA1NjI1LCAwLjA1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDMzNzUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMDczNzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNSwgMC4wNSwgMC4wNCwgMC4wMzc1IiwgXAotICAgICAgICAgICIwLjA4LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDU2MjUsIDAuMDQ2MjUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMDgzNzUsIDAuMDc4NzUsIDAuMDcyNSwgMC4wNjYyNSwgMC4wNiwgMC4wNTYyNSwgMC4wNTM3NSIsIFwKLSAgICAgICAgICAiMC4wOTI1LCAwLjA4NzUsIDAuMDc1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjUsIDAuMDYyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0Mzc1LCAwLjAzODc1LCAwLjAyNjI1LCAwLjAyLCAwLjAxMzc1LCAwLjAwMzc1LCAwLjAwMTI1IiwgXAotICAgICAgICAgICIwLjA1NSwgMC4wNDM3NSwgMC4wMzEyNSwgMC4wMjUsIDAuMDE4NzUsIDAuMDE1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICIwLjA2MTI1LCAwLjA1LCAwLjA0Mzc1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMjEyNSwgMC4wMTI1IiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDU2MjUsIDAuMDUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMjc1LCAwLjAxODc1IiwgXAotICAgICAgICAgICIwLjA3Mzc1LCAwLjA2MjUsIDAuMDUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMjc1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiMC4wNzc1LCAwLjA2NjI1LCAwLjA2LCAwLjA1Mzc1LCAwLjA0NzUsIDAuMDM3NSwgMC4wMzUiLCBcCi0gICAgICAgICAgIjAuMDg2MjUsIDAuMDc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDUsIDAuMDQ2MjUsIDAuMDM3NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oU04pICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTc2NzM5OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTYyNjU2OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTc2NzM5OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDg0MiwgMC4wMDA4NDEsIDAuMDAwODQxLCAwLjAwMDg0LCAwLjAwMDg0MSwgMC4wMDA4NCwgMC4wMDA4NCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDg3LCAwLjAwMDg1MiwgMC4wMDA4NDgsIDAuMDAwODQ1LCAwLjAwMDg0NCwgMC4wMDA4NDMsIDAuMDAwODQyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRCYhU0UmIVNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9TRV9FUV8wX0FOX1NJX0VRXzAgPT0gMSdiMSI7Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wNzA0NDYsIDAuMDc3MDQ3LCAwLjA4NjA2OCwgMC4wOTQ0OTQsIDAuMTAxNjQ3LCAwLjExMTA2NCwgMC4xMTc4NjMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiByZWNvdmVyeV9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEJiFTRSYhU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1NFX0VRXzBfQU5fU0lfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChyZWNvdmVyeV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMCwgLTAuMDExMjUsIC0wLjAxNzUsIC0wLjAzLCAtMC4wMzYyNSwgLTAuMDQ2MjUsIC0wLjA0ODc1IiwgXAotICAgICAgICAgICIwLjAwNSwgLTAuMDA2MjUsIC0wLjAxMjUsIC0wLjAyNSwgLTAuMDMxMjUsIC0wLjA0MTI1LCAtMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4wMTEyNSwgMC4wMDYyNSwgLTAuMDA2MjUsIC0wLjAxMjUsIC0wLjAxODc1LCAtMC4wMjg3NSwgLTAuMDM3NSIsIFwKLSAgICAgICAgICAiMC4wMTc1LCAwLjAxMjUsIDAsIC0wLjAwNjI1LCAtMC4wMTI1LCAtMC4wMjI1LCAtMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4wMywgMC4wMTg3NSwgMC4wMDYyNSwgMCwgLTAuMDA2MjUsIC0wLjAxNjI1LCAtMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMDQsIDAuMDM1LCAwLjAyMjUsIDAuMDEsIDAuMDAzNzUsIC0wLjAwNjI1LCAtMC4wMDg3NSIsIFwKLSAgICAgICAgICAiMC4wNTUsIDAuMDQzNzUsIDAuMDMxMjUsIDAuMDI1LCAwLjAxMjUsIDAuMDA4NzUsIDAiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiByZW1vdmFsX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUQmIVNFJiFTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fU0VfRVFfMF9BTl9TSV9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHJlbW92YWxfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDI1LCAwLjAzNjI1LCAwLjA0MjUsIDAuMDQ4NzUsIDAuMDU1LCAwLjA2NSwgMC4wNzM3NSIsIFwKLSAgICAgICAgICAiMC4wMiwgMC4wMjUsIDAuMDM3NSwgMC4wNDM3NSwgMC4wNSwgMC4wNiwgMC4wNjg3NSIsIFwKLSAgICAgICAgICAiMC4wMTM3NSwgMC4wMTg3NSwgMC4wMzEyNSwgMC4wMzc1LCAwLjA0Mzc1LCAwLjA1Mzc1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICIwLjAwNzUsIDAuMDEyNSwgMC4wMjUsIDAuMDMxMjUsIDAuMDM3NSwgMC4wNDc1LCAwLjA1IiwgXAotICAgICAgICAgICIwLjAwMTI1LCAwLjAwNjI1LCAwLjAxODc1LCAwLjAyNSwgMC4wMzEyNSwgMC4wNDEyNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDA4NzUsIC0wLjAwMzc1LCAwLjAwODc1LCAwLjAxNSwgMC4wMjEyNSwgMC4wMzEyNSwgMC4wMzM3NSIsIFwKLSAgICAgICAgICAiLTAuMDE3NSwgLTAuMDA2MjUsIDAsIDAuMDA2MjUsIDAuMDEyNSwgMC4wMjI1LCAwLjAzMTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogU0RGRlNSSFFYOCAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChTREZGU1JIUVg4KSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDIuMjUzMzU7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgZmYgKE4zNSxRQklOVCkgewotICAgIG5leHRfc3RhdGUgOiAiKChTRSBTSSkgKyAoIVNFIEQpKSI7Ci0gICAgY2xvY2tlZF9vbiA6ICJDSyI7Ci0gICAgY2xlYXIgOiAiKCFSTikiOwotICAgIHByZXNldCA6ICIoIVNOKSI7Ci0gICAgY2xlYXJfcHJlc2V0X3ZhcjEgOiBIOwotICB9Ci0gIHBpbihDSykgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjUxMDE3OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDY1MTAxNzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2NTA5ODc7Ci0gICAgY2xvY2sgOiB0cnVlOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNDY1MiwgMC4wMDQ2NDksIDAuMDA0NzE5LCAwLjAwNDgwNCwgMC4wMDQ5MjEsIDAuMDA1MTM3LCAwLjAwNTMzNCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAxMTMzNiwgMC4wMTEzMTUsIDAuMDExNDE5LCAwLjAxMTUzNCwgMC4wMTE2ODIsIDAuMDExODM3LCAwLjAxMjAzNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQmUk4mIVNFJiFTSSZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fUk5fRVFfMV9BTl9TRV9FUV8wX0FOX1NJX0VRXzBfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjEwNDA4MiwgMC4xMTI0MjEsIDAuMTIyMjI4LCAwLjEzMDQ2NiwgMC4xMzc1NDcsIDAuMTQ2NTczLCAwLjE1MzY4MyIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDg0MTg0LCAwLjA5MjMxMSwgMC4xMDIxNDksIDAuMTEwMjc3LCAwLjExNjkxNCwgMC4xMjU2ODUsIDAuMTMxOTg3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihEKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA5NTg5MDg7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwOTU3MzU7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwOTU4OTA4OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNTYzNSwgMC4wMDU1OSwgMC4wMDU2MDQsIDAuMDA1NjQ3LCAwLjAwNTcyNiwgMC4wMDU4NzYsIDAuMDA2MDIxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA3Njc2LCAwLjAwNzY0OSwgMC4wMDc2NjYsIDAuMDA3NzExLCAwLjAwNzc3MiwgMC4wMDc5MTYsIDAuMDA4MDYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiUk4mIVNFJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIlJOX0VRXzFfQU5fU0VfRVFfMF9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAyNSwgLTAuMDIsIC0wLjAxMzc1LCAtMC4wMDc1LCAtMC4wMDc1LCAtMC4wMDM3NSwgLTAuMDAxMjUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA4NzUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDE1LCAtMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMzEyNSwgLTAuMDIxMjUsIC0wLjAxODc1IiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDM3NSwgLTAuMDI3NSwgLTAuMDI1IiwgXAotICAgICAgICAgICItMC4wNTg3NSwgLTAuMDUzNzUsIC0wLjA0NzUsIC0wLjA0NzUsIC0wLjA0MTI1LCAtMC4wMzc1LCAtMC4wMzUiLCBcCi0gICAgICAgICAgIi0wLjA2NzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDUsIC0wLjA0NjI1LCAtMC4wNDM3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAsIDAuMDA1LCAwLjAxNzUsIDAuMDIzNzUsIDAuMDMsIDAuMDMzNzUsIDAuMDQyNSIsIFwKLSAgICAgICAgICAiLTAuMDA1LCAwLCAwLjAxMjUsIDAuMDE4NzUsIDAuMDI1LCAwLjAyODc1LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjAxMTI1LCAtMC4wMDYyNSwgMC4wMDYyNSwgMC4wMTI1LCAwLjAxODc1LCAwLjAyMjUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjAxNzUsIC0wLjAxMjUsIDAsIDAuMDA2MjUsIDAuMDEyNSwgMC4wMTYyNSwgMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMCwgMC4wMDYyNSwgMC4wMTYyNSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDI3NSwgLTAuMDIyNSwgLTAuMDEsIC0wLjAwMzc1LCAwLjAwMjUsIDAuMDA2MjUsIDAuMDE1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAuMDAzNzUsIDAuMDA2MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlJOJiFTRSZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJSTl9FUV8xX0FOX1NFX0VRXzBfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjg3NSwgMC4wNjM3NSwgMC4wNTEyNSwgMC4wNDUsIDAuMDM4NzUsIDAuMDI4NzUsIDAuMDI2MjUiLCBcCi0gICAgICAgICAgIjAuMDgsIDAuMDY4NzUsIDAuMDU2MjUsIDAuMDUsIDAuMDQzNzUsIDAuMDQsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMDg2MjUsIDAuMDc1LCAwLjA2ODc1LCAwLjA1NjI1LCAwLjA1LCAwLjA0NjI1LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIjAuMDkyNSwgMC4wODEyNSwgMC4wNzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNTI1LCAwLjA1IiwgXAotICAgICAgICAgICIwLjA5ODc1LCAwLjA4NzUsIDAuMDgxMjUsIDAuMDY4NzUsIDAuMDY4NzUsIDAuMDU4NzUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIjAuMTA4NzUsIDAuMDk3NSwgMC4wODUsIDAuMDc4NzUsIDAuMDcyNSwgMC4wNjg3NSwgMC4wNiIsIFwKLSAgICAgICAgICAiMC4xMTc1LCAwLjEwNjI1LCAwLjA5Mzc1LCAwLjA4NzUsIDAuMDgxMjUsIDAuMDc3NSwgMC4wNjg3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1LCAwLjAzODc1LCAwLjAzMjUsIDAuMDIsIDAuMDEzNzUsIDAuMDAzNzUsIDAuMDAxMjUiLCBcCi0gICAgICAgICAgIjAuMDU1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDI1LCAwLjAxODc1LCAwLjAxNSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiMC4wNjEyNSwgMC4wNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyMTI1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMDY3NSwgMC4wNTYyNSwgMC4wNSwgMC4wNDM3NSwgMC4wMzEyNSwgMC4wMjc1LCAwLjAxODc1IiwgXAotICAgICAgICAgICIwLjA3Mzc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzM3NSwgMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMDc3NSwgMC4wNzI1LCAwLjA2LCAwLjA1Mzc1LCAwLjA0NzUsIDAuMDM3NSwgMC4wMzUiLCBcCi0gICAgICAgICAgIjAuMDg2MjUsIDAuMDc1LCAwLjA2ODc1LCAwLjA1NjI1LCAwLjA1LCAwLjA0NjI1LCAwLjAzNzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFEpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMi42NjUwNDsKLSAgICBmdW5jdGlvbiA6ICJOMzUiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5vbl91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcmlzaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk5ODQyLCAwLjEyOTI1MiwgMC4xNTY1NjUsIDAuMTc2MDQsIDAuMjA3MTc1LCAwLjIzNDQyNywgMC4yNzMzMTQiLCBcCi0gICAgICAgICAgIjAuMTA4MDgsIDAuMTM3NDc1LCAwLjE2NDc4OSwgMC4xODQyNjUsIDAuMjE1NCwgMC4yNDI2MzcsIDAuMjgxNTM4IiwgXAotICAgICAgICAgICIwLjExNzc2MSwgMC4xNDcxODEsIDAuMTc0NDg1LCAwLjE5Mzk1OSwgMC4yMjUwOTMsIDAuMjUyMzI4LCAwLjI5MTIzMyIsIFwKLSAgICAgICAgICAiMC4xMjU4NTcsIDAuMTU1MjU5LCAwLjE4MjU3MywgMC4yMDIwNDcsIDAuMjMzMTgyLCAwLjI2MDQyMiwgMC4yOTkzMiIsIFwKLSAgICAgICAgICAiMC4xMzI5NDgsIDAuMTYyMzIsIDAuMTg5NjIzLCAwLjIwOTA5LCAwLjI0MDIzLCAwLjI2NzQ2NiwgMC4zMDYzNzUiLCBcCi0gICAgICAgICAgIjAuMTQxOTY3LCAwLjE3MTM3NCwgMC4xOTg2NzEsIDAuMjE4MTQ2LCAwLjI0OTI3OSwgMC4yNzY1MTQsIDAuMzE1NDE5IiwgXAotICAgICAgICAgICIwLjE0OTEyMiwgMC4xNzg1MzUsIDAuMjA1ODI0LCAwLjIyNTI4OCwgMC4yNTY0MSwgMC4yODM2NTcsIDAuMzIyNTY1Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE4ODA2LCAwLjA3MjI4MywgMC4xMjg2MDYsIDAuMTY5MywgMC4yMzQ3MTQsIDAuMjkyMDk1LCAwLjM3NDE1IiwgXAotICAgICAgICAgICIwLjAxODc4NiwgMC4wNzIyOCwgMC4xMjg1OTIsIDAuMTY5MzAxLCAwLjIzNDcxMywgMC4yOTIwODksIDAuMzc0MTUyIiwgXAotICAgICAgICAgICIwLjAxODc3LCAwLjA3MjI4NSwgMC4xMjg1MTQsIDAuMTY5MywgMC4yMzQ3MDYsIDAuMjkyMDksIDAuMzc0MDkiLCBcCi0gICAgICAgICAgIjAuMDE4Nzk3LCAwLjA3MjI4NiwgMC4xMjg1NDUsIDAuMTY5Mjk5LCAwLjIzNDcxNSwgMC4yOTIwODgsIDAuMzc0MTQ3IiwgXAotICAgICAgICAgICIwLjAxODc4NSwgMC4wNzIyODIsIDAuMTI4NTM1LCAwLjE2OTI4OSwgMC4yMzQ3MDgsIDAuMjkxOTk0LCAwLjM3NDE1OCIsIFwKLSAgICAgICAgICAiMC4wMTg3NzMsIDAuMDcyMywgMC4xMjg1ODIsIDAuMTY5MzAyLCAwLjIzNDcxLCAwLjI5MjA5MSwgMC4zNzQxMSIsIFwKLSAgICAgICAgICAiMC4wMTg3OCwgMC4wNzIyODYsIDAuMTI4NjA4LCAwLjE2OTMxOSwgMC4yMzQ3MTYsIDAuMjkxOTUyLCAwLjM3NDE1MSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwNDA4MywgMC4xMzQwODEsIDAuMTYyMzUsIDAuMTgyNTMxLCAwLjIxNDczOSwgMC4yNDI5MjIsIDAuMjgzMTYyIiwgXAotICAgICAgICAgICIwLjExMjQyMSwgMC4xNDI0MDIsIDAuMTcwNjc1LCAwLjE5MDgzMiwgMC4yMjMwNTEsIDAuMjUxMjI3LCAwLjI5MTQ3OCIsIFwKLSAgICAgICAgICAiMC4xMjIyMjksIDAuMTUyMjQ5LCAwLjE4MDUyLCAwLjIwMDY3NiwgMC4yMzI4ODcsIDAuMjYxMDYzLCAwLjMwMTMwOCIsIFwKLSAgICAgICAgICAiMC4xMzA0NjcsIDAuMTYwNDQ5LCAwLjE4ODcyMSwgMC4yMDg4NzksIDAuMjQxMDk3LCAwLjI2OTI3MywgMC4zMDk1MjQiLCBcCi0gICAgICAgICAgIjAuMTM3NTQ4LCAwLjE2NzU1OCwgMC4xOTU4MjUsIDAuMjE1OTg0LCAwLjI0ODE5NCwgMC4yNzYzNzMsIDAuMzE2NjIxIiwgXAotICAgICAgICAgICIwLjE0NjU3OCwgMC4xNzY1MDYsIDAuMjA0NzY4LCAwLjIyNDkyNiwgMC4yNTcxMzgsIDAuMjg1MzE0LCAwLjMyNTU2MiIsIFwKLSAgICAgICAgICAiMC4xNTM2ODMsIDAuMTgzNjkzLCAwLjIxMTk1MywgMC4yMzIwOTgsIDAuMjY0MzEsIDAuMjkyNDg3LCAwLjMzMjc0MSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxNzg5MiwgMC4wNzMxMiwgMC4xMzA3NTUsIDAuMTcyMjQ4LCAwLjIzOTExNywgMC4yOTc2MTMsIDAuMzgxMzgxIiwgXAotICAgICAgICAgICIwLjAxNzg3NiwgMC4wNzMxMTIsIDAuMTMwNzUyLCAwLjE3MjMzNywgMC4yMzkwODgsIDAuMjk3NjE0LCAwLjM4MTI0OCIsIFwKLSAgICAgICAgICAiMC4wMTc4OTEsIDAuMDczMTIsIDAuMTMwNzU1LCAwLjE3MjI0OCwgMC4yMzkwOSwgMC4yOTc2MTYsIDAuMzgxMzIzIiwgXAotICAgICAgICAgICIwLjAxNzg2OSwgMC4wNzMxMTMsIDAuMTMwNzUyLCAwLjE3MjM0MSwgMC4yMzkwODgsIDAuMjk3NjE1LCAwLjM4MTI0NyIsIFwKLSAgICAgICAgICAiMC4wMTc4OTIsIDAuMDczMTI2LCAwLjEzMDc1NiwgMC4xNzIzMTQsIDAuMjM5MDA5LCAwLjI5NzYxNCwgMC4zODEyMzgiLCBcCi0gICAgICAgICAgIjAuMDE3ODgzLCAwLjA3MzE3MywgMC4xMzA3NzIsIDAuMTcyMzM4LCAwLjIzOTA5MiwgMC4yOTc2MTYsIDAuMzgxMjA1IiwgXAotICAgICAgICAgICIwLjAxNzg3MywgMC4wNzMxNDksIDAuMTMwODE2LCAwLjE3MjM0NSwgMC4yMzkwOTQsIDAuMjk3NjgyLCAwLjM4MTIwNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogY2xlYXI7Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTIxMzQ2LCAwLjE1MTM4OSwgMC4xNzk2OCwgMC4xOTk4MzIsIDAuMjMyMDQ5LCAwLjI2MDIyOCwgMC4zMDA0NzgiLCBcCi0gICAgICAgICAgIjAuMTI5MjM3LCAwLjE1OTM0LCAwLjE4NzU0OSwgMC4yMDc3MDcsIDAuMjM5OTE4LCAwLjI2ODEwNSwgMC4zMDgzNDYiLCBcCi0gICAgICAgICAgIjAuMTM3ODEyLCAwLjE2NzkwOCwgMC4xOTYxMjgsIDAuMjE2Mjg3LCAwLjI0ODQ5NiwgMC4yNzY2NzcsIDAuMzE2OTIzIiwgXAotICAgICAgICAgICIwLjE0NDI2MywgMC4xNzQzMywgMC4yMDI1ODMsIDAuMjIyNzMyLCAwLjI1NDk1LCAwLjI4MzEyOCwgMC4zMjMzNjciLCBcCi0gICAgICAgICAgIjAuMTQ5NTI5LCAwLjE3OTYwMSwgMC4yMDc4NDMsIDAuMjI3OTkzLCAwLjI2MDIxMiwgMC4yODgzOSwgMC4zMjg2MzQiLCBcCi0gICAgICAgICAgIjAuMTU2MjgyLCAwLjE4NjMxMywgMC4yMTQ1ODksIDAuMjM0NzQ3LCAwLjI2Njk2NSwgMC4yOTUxNDQsIDAuMzM1Mzk0IiwgXAotICAgICAgICAgICIwLjE2MTMzOCwgMC4xOTE0MywgMC4yMTk2NSwgMC4yMzk4LCAwLjI3MjAxNSwgMC4zMDAxOTIsIDAuMzQwNDQ0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE4MTY1LCAwLjA3MzE5LCAwLjEzMDc4NiwgMC4xNzIzMjIsIDAuMjM5MTAxLCAwLjI5NzYzNywgMC4zODE4MTUiLCBcCi0gICAgICAgICAgIjAuMDE4MTgsIDAuMDczMTc4LCAwLjEzMDc4MiwgMC4xNzIzNTIsIDAuMjM5MTczLCAwLjI5Nzg0MiwgMC4zODEzNjgiLCBcCi0gICAgICAgICAgIjAuMDE4MTE5LCAwLjA3MzE5MiwgMC4xMzA3ODUsIDAuMTcyMzEyLCAwLjIzOTA5NiwgMC4yOTc2NjMsIDAuMzgxMzU1IiwgXAotICAgICAgICAgICIwLjAxODE1NCwgMC4wNzMxOTksIDAuMTMwNzg2LCAwLjE3MjMzNCwgMC4yMzkwOTYsIDAuMjk3NjYxLCAwLjM4MTc3NCIsIFwKLSAgICAgICAgICAiMC4wMTgxMjYsIDAuMDczMTgxLCAwLjEzMDc0NCwgMC4xNzIzMjksIDAuMjM5MDk0LCAwLjI5NzY5MywgMC4zODE4MDMiLCBcCi0gICAgICAgICAgIjAuMDE4MTk4LCAwLjA3MzIxNSwgMC4xMzA3ODksIDAuMTcyMzQxLCAwLjIzOTE0MywgMC4yOTc4NzMsIDAuMzgxODYiLCBcCi0gICAgICAgICAgIjAuMDE4MTM0LCAwLjA3MzE4OSwgMC4xMzA3OTQsIDAuMTcyMzU2LCAwLjIzOTEyNywgMC4yOTc4MjQsIDAuMzgxODQ0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiBwcmVzZXQ7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDgyMjI1LCAwLjExMTMzNywgMC4xMzg2NDEsIDAuMTU4MDk5LCAwLjE4OTI0NywgMC4yMTY0ODUsIDAuMjU1NDEyIiwgXAotICAgICAgICAgICIwLjA4ODgzNCwgMC4xMTc5NDgsIDAuMTQ1MjU3LCAwLjE2NDcxOCwgMC4xOTU4NzIsIDAuMjIzMTExLCAwLjI2MjA0NiIsIFwKLSAgICAgICAgICAiMC4wOTYzODUsIDAuMTI1NDQ5LCAwLjE1Mjc1NiwgMC4xNzIyMzIsIDAuMjAzMzYxLCAwLjIzMDU5OCwgMC4yNjk1MTYiLCBcCi0gICAgICAgICAgIjAuMTA1NjYxLCAwLjEzNDczNCwgMC4xNjIwNDIsIDAuMTgxNTIyLCAwLjIxMjY1MSwgMC4yMzk4OSwgMC4yNzg4MDciLCBcCi0gICAgICAgICAgIjAuMTEzODk0LCAwLjE0Mjk4OCwgMC4xNzAyODksIDAuMTg5NzYsIDAuMjIwODkyLCAwLjI0ODEyOSwgMC4yODcwMzQiLCBcCi0gICAgICAgICAgIjAuMTI0NzQ2LCAwLjE1MzkwNCwgMC4xODEyMDgsIDAuMjAwNjc0LCAwLjIzMTgwMiwgMC4yNTkwNDIsIDAuMjk3OTcxIiwgXAotICAgICAgICAgICIwLjEzMjkwOSwgMC4xNjIwODgsIDAuMTg5NDAyLCAwLjIwODg3NiwgMC4yNDAwMDUsIDAuMjY3MjQxLCAwLjMwNjE0OCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxNzkzNiwgMC4wNzE5MDMsIDAuMTI4NDAzLCAwLjE2OTE1OSwgMC4yMzQ2MDgsIDAuMjkyMDUzLCAwLjM3NDA4NiIsIFwKLSAgICAgICAgICAiMC4wMTc5MzIsIDAuMDcxOTA3LCAwLjEyODM1MiwgMC4xNjkxMiwgMC4yMzQ2NDYsIDAuMjkyMDAzLCAwLjM3NDQyMSIsIFwKLSAgICAgICAgICAiMC4wMTc5MjgsIDAuMDcxOTA1LCAwLjEyODM4LCAwLjE2OTA1MywgMC4yMzQ2NTQsIDAuMjkyMDA3LCAwLjM3NDQ0NiIsIFwKLSAgICAgICAgICAiMC4wMTc4NDMsIDAuMDcxODkxLCAwLjEyODM4OSwgMC4xNjkxNzMsIDAuMjM0NjI4LCAwLjI5MjAyMywgMC4zNzQ1MzUiLCBcCi0gICAgICAgICAgIjAuMDE4MDUzLCAwLjA3MTk1NiwgMC4xMjg0MTksIDAuMTY5MTg2LCAwLjIzNDc2LCAwLjI5MjE3LCAwLjM3NDU0NCIsIFwKLSAgICAgICAgICAiMC4wMTgxODgsIDAuMDcyMDE4LCAwLjEyODQ2MiwgMC4xNjkyMDMsIDAuMjM0NjUsIDAuMjkyMjA2LCAwLjM3NDUwNyIsIFwKLSAgICAgICAgICAiMC4wMTg0MTQsIDAuMDcyMTkzLCAwLjEyODQ2LCAwLjE2OTIyMywgMC4yMzQ2ODQsIDAuMjkyMjIsIDAuMzc0Mzg2Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTA1NzExLCAwLjEzNTgwMywgMC4xNjQwMTEsIDAuMTg0MTY5LCAwLjIxNjM4MywgMC4yNDQ1NjcsIDAuMjg0ODI2IiwgXAotICAgICAgICAgICIwLjExMjI1MiwgMC4xNDIzMzYsIDAuMTcwNTU2LCAwLjE5MDcxMywgMC4yMjI5MzIsIDAuMjUxMTExLCAwLjI5MTM2MSIsIFwKLSAgICAgICAgICAiMC4xMTk4NjUsIDAuMTQ5OTU2LCAwLjE3ODI3OCwgMC4xOTg0MzMsIDAuMjMwNjQxLCAwLjI1ODgyLCAwLjI5OTA4MyIsIFwKLSAgICAgICAgICAiMC4xMjc0MzcsIDAuMTU3NTI4LCAwLjE4NTc1NSwgMC4yMDU5MTYsIDAuMjM4MTIzLCAwLjI2NjMwMiwgMC4zMDY1NTQiLCBcCi0gICAgICAgICAgIjAuMTM0NzY2LCAwLjE2NDc4MSwgMC4xOTMwNDMsIDAuMjEzMiwgMC4yNDU0MiwgMC4yNzM1ODYsIDAuMzEzODQxIiwgXAotICAgICAgICAgICIwLjE0NTQ4MiwgMC4xNzU0NzYsIDAuMjAzNzI4LCAwLjIyMzg4MywgMC4yNTYxLCAwLjI4NDI3NiwgMC4zMjQ1MjkiLCBcCi0gICAgICAgICAgIjAuMTUzOTc5LCAwLjE4NDExOSwgMC4yMTIzOTUsIDAuMjMyNTM5LCAwLjI2NDc2MywgMC4yOTI5MzQsIDAuMzMzMTgzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE4MTQ2LCAwLjA3MzIsIDAuMTMwNzg1LCAwLjE3MjMyOSwgMC4yMzkyMSwgMC4yOTc2NTUsIDAuMzgxNzQzIiwgXAotICAgICAgICAgICIwLjAxODE1NiwgMC4wNzMxOTUsIDAuMTMwNzg0LCAwLjE3MjMyNCwgMC4yMzkxMDEsIDAuMjk3NjkzLCAwLjM4MTg0NCIsIFwKLSAgICAgICAgICAiMC4wMTgxNjMsIDAuMDczMTg1LCAwLjEzMDc3OSwgMC4xNzIzMjksIDAuMjM5MDk3LCAwLjI5NzgzMywgMC4zODE3MTQiLCBcCi0gICAgICAgICAgIjAuMDE4MTE2LCAwLjA3MzE4MywgMC4xMzA3NzksIDAuMTcyMzMsIDAuMjM5MDgyLCAwLjI5NzY3NywgMC4zODE3MjgiLCBcCi0gICAgICAgICAgIjAuMDE4MTY5LCAwLjA3MzE4MiwgMC4xMzA3ODUsIDAuMTcyMzMsIDAuMjM5MDg1LCAwLjI5NzY4NywgMC4zODE4MjkiLCBcCi0gICAgICAgICAgIjAuMDE4Mjk0LCAwLjA3MzI0OCwgMC4xMzA4LCAwLjE3MjM4LCAwLjIzOTEwMSwgMC4yOTc2NzgsIDAuMzgxODA1IiwgXAotICAgICAgICAgICIwLjAxODQzNiwgMC4wNzMyOCwgMC4xMzA4NCwgMC4xNzIzNzMsIDAuMjM5MTEsIDAuMjk3NjQ1LCAwLjM4MTI4NiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyMjI0OSwgMC4wMjI0NDIsIDAuMDIyNTI0LCAwLjAyMjU1MywgMC4wMjI1OCwgMC4wMjI1OTgsIDAuMDIyNjA5IiwgXAotICAgICAgICAgICIwLjAyMjIyMiwgMC4wMjI0MjIsIDAuMDIyNTA3LCAwLjAyMjUzNywgMC4wMjI1NjksIDAuMDIyNTg1LCAwLjAyMjYwMSIsIFwKLSAgICAgICAgICAiMC4wMjIyODcsIDAuMDIyNDg4LCAwLjAyMjU3MiwgMC4wMjI2MDEsIDAuMDIyNjI5LCAwLjAyMjY1MiwgMC4wMjI2NTciLCBcCi0gICAgICAgICAgIjAuMDIyNDEsIDAuMDIyNTk5LCAwLjAyMjY4MSwgMC4wMjI3MSwgMC4wMjI3NDIsIDAuMDIyNzU3LCAwLjAyMjc3IiwgXAotICAgICAgICAgICIwLjAyMjQ3OCwgMC4wMjI2NjQsIDAuMDIyNzQ2LCAwLjAyMjc3NiwgMC4wMjI4MDMsIDAuMDIyODI2LCAwLjAyMjgzOCIsIFwKLSAgICAgICAgICAiMC4wMjI3NjUsIDAuMDIyOTI4LCAwLjAyMzAxLCAwLjAyMzAzOCwgMC4wMjMwNjcsIDAuMDIzMDc4LCAwLjAyMzA5MiIsIFwKLSAgICAgICAgICAiMC4wMjI5MTYsIDAuMDIzMSwgMC4wMjMxNzQsIDAuMDIzMjAzLCAwLjAyMzIyOSwgMC4wMjMyNDQsIDAuMDIzMjU3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjEyMzIsIDAuMDIxNTc4LCAwLjAyMTcwNCwgMC4wMjE3NTIsIDAuMDIxNzk1LCAwLjAyMTgxOCwgMC4wMjE4NCIsIFwKLSAgICAgICAgICAiMC4wMjEyMDgsIDAuMDIxNTY2LCAwLjAyMTY5OCwgMC4wMjE3NDQsIDAuMDIxNzksIDAuMDIxODE0LCAwLjAyMTgzNyIsIFwKLSAgICAgICAgICAiMC4wMjEzMTUsIDAuMDIxNjYyLCAwLjAyMTc4OSwgMC4wMjE4MzUsIDAuMDIxODc4LCAwLjAyMTkwMiwgMC4wMjE5MjMiLCBcCi0gICAgICAgICAgIjAuMDIxNDEzLCAwLjAyMTc3MiwgMC4wMjE5MDMsIDAuMDIxOTUsIDAuMDIxOTk1LCAwLjAyMjAxOSwgMC4wMjIwNDEiLCBcCi0gICAgICAgICAgIjAuMDIxNTQ3LCAwLjAyMTg4MiwgMC4wMjIwMDYsIDAuMDIyMDUxLCAwLjAyMjA5NCwgMC4wMjIxMTYsIDAuMDIyMTM4IiwgXAotICAgICAgICAgICIwLjAyMTc5LCAwLjAyMjE1LCAwLjAyMjI3NiwgMC4wMjIzMjIsIDAuMDIyMzY1LCAwLjAyMjM4OSwgMC4wMjI0MSIsIFwKLSAgICAgICAgICAiMC4wMjE5NDYsIDAuMDIyMzEsIDAuMDIyNDIzLCAwLjAyMjQ3OSwgMC4wMjI1MjIsIDAuMDIyNTQxLCAwLjAyMjU1NSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyNDEwNSwgMC4wMjQ0NDMsIDAuMDI0NTc2LCAwLjAyNDYyMywgMC4wMjQ2NywgMC4wMjQ2OTcsIDAuMDI0NzIiLCBcCi0gICAgICAgICAgIjAuMDI0MTE3LCAwLjAyNDQ0LCAwLjAyNDU3MSwgMC4wMjQ2MTksIDAuMDI0NjY2LCAwLjAyNDY5MywgMC4wMjQ3MTciLCBcCi0gICAgICAgICAgIjAuMDI0MTcxLCAwLjAyNDQ5NCwgMC4wMjQ2MjYsIDAuMDI0Njc0LCAwLjAyNDcyMiwgMC4wMjQ3NDcsIDAuMDI0NzcxIiwgXAotICAgICAgICAgICIwLjAyNDI0NiwgMC4wMjQ1NzYsIDAuMDI0NzA4LCAwLjAyNDc1NywgMC4wMjQ4MDQsIDAuMDI0ODI4LCAwLjAyNDg1MiIsIFwKLSAgICAgICAgICAiMC4wMjQzNTksIDAuMDI0Njg1LCAwLjAyNDgxNiwgMC4wMjQ4NjUsIDAuMDI0OTExLCAwLjAyNDkzNiwgMC4wMjQ5NjEiLCBcCi0gICAgICAgICAgIjAuMDI0NTM4LCAwLjAyNDg3OSwgMC4wMjUwMTMsIDAuMDI1MDYzLCAwLjAyNTExMSwgMC4wMjUxMzYsIDAuMDI1MTYiLCBcCi0gICAgICAgICAgIjAuMDI0NzM0LCAwLjAyNTA2MSwgMC4wMjUyMDQsIDAuMDI1MjUyLCAwLjAyNTI4MywgMC4wMjUzMTgsIDAuMDI1MzQyIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3Bvd2VyKHNjYWxhcikgewotICAgICAgICB2YWx1ZXMoIjAiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjQ0NiwgMC4wMjQ2NjksIDAuMDI0NzQ0LCAwLjAyNDc3MSwgMC4wMjQ3OTYsIDAuMDI0ODA5LCAwLjAyNDgyMSIsIFwKLSAgICAgICAgICAiMC4wMjQ0MTEsIDAuMDI0NjM0LCAwLjAyNDcxMiwgMC4wMjQ3NCwgMC4wMjQ3NjUsIDAuMDI0Nzk4LCAwLjAyNDc5IiwgXAotICAgICAgICAgICIwLjAyNDQ0NSwgMC4wMjQ2NzEsIDAuMDI0NzQ5LCAwLjAyNDc3NSwgMC4wMjQ4MDEsIDAuMDI0ODE0LCAwLjAyNDgyNyIsIFwKLSAgICAgICAgICAiMC4wMjQ1MTUsIDAuMDI0NzY1LCAwLjAyNDg0OSwgMC4wMjQ4ODEsIDAuMDI0OTA5LCAwLjAyNDkyNiwgMC4wMjQ5MzciLCBcCi0gICAgICAgICAgIjAuMDI0NzA3LCAwLjAyNDkzMiwgMC4wMjUwMTQsIDAuMDI1MDQ1LCAwLjAyNTA3NCwgMC4wMjUwOSwgMC4wMjUxIiwgXAotICAgICAgICAgICIwLjAyNDk5MSwgMC4wMjUyMzQsIDAuMDI1MzE2LCAwLjAyNTM1NywgMC4wMjUzNzgsIDAuMDI1MzkzLCAwLjAyNTQxNSIsIFwKLSAgICAgICAgICAiMC4wMjUzNTMsIDAuMDI1NTY2LCAwLjAyNTY0LCAwLjAyNTY3MSwgMC4wMjU2OTksIDAuMDI1NzE2LCAwLjAyNTczNCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDIwNDA1LCAwLjAyMDcyOSwgMC4wMjA4NjEsIDAuMDIwOTA5LCAwLjAyMDk1NywgMC4wMjA5ODQsIDAuMDIxMDA4IiwgXAotICAgICAgICAgICIwLjAyMDMyOCwgMC4wMjA2NTEsIDAuMDIwNzgzLCAwLjAyMDgzMSwgMC4wMjA4NzgsIDAuMDIwOTA0LCAwLjAyMDkyOCIsIFwKLSAgICAgICAgICAiMC4wMjAyODgsIDAuMDIwNjI2LCAwLjAyMDc2MiwgMC4wMjA4MTEsIDAuMDIwODU5LCAwLjAyMDg4NSwgMC4wMjA5MDkiLCBcCi0gICAgICAgICAgIjAuMDIwMzIzLCAwLjAyMDY0NywgMC4wMjA3NzgsIDAuMDIwODI4LCAwLjAyMDg3NywgMC4wMjA5MDMsIDAuMDIwOTI4IiwgXAotICAgICAgICAgICIwLjAyMDM4MiwgMC4wMjA2OTksIDAuMDIwODMzLCAwLjAyMDg4MiwgMC4wMjA5MzEsIDAuMDIwOTU5LCAwLjAyMDk4NCIsIFwKLSAgICAgICAgICAiMC4wMjA1NTIsIDAuMDIwODk0LCAwLjAyMTAyOSwgMC4wMjEwOCwgMC4wMjExMjksIDAuMDIxMTU2LCAwLjAyMTE4MiIsIFwKLSAgICAgICAgICAiMC4wMjA3NjQsIDAuMDIxMDQ1LCAwLjAyMTE2OSwgMC4wMjEyMTcsIDAuMDIxMjcsIDAuMDIxMjk0LCAwLjAyMTMyMyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUk4pICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYyNDgyODsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MjQ1ODsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2MjQ4Mjg7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwOTM4LCAwLjAwMDkzNCwgMC4wMDEwMDEsIDAuMDAxMDk4LCAwLjAwMTIxLCAwLjAwMTQyNywgMC4wMDE2MTEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDMyMSwgMC4wMDMyMTEsIDAuMDAzMjcyLCAwLjAwMzM2NCwgMC4wMDM0NzksIDAuMDAzNzEzLCAwLjAwMzg5OSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQmIVNFJiFTSSZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fU0VfRVFfMF9BTl9TSV9FUV8wX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4xMjEzNDYsIDAuMTI5MjM3LCAwLjEzNzgxMiwgMC4xNDQyNjMsIDAuMTQ5NDc2LCAwLjE1NjI1LCAwLjE2MTMzOCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJlY292ZXJ5X3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiU04iOwotICAgICAgc2RmX2NvbmQgOiAiU04gPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQocmVjb3ZlcnlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQzNzUsIDAuMDM4NzUsIDAuMDI2MjUsIDAuMDIsIDAuMDEzNzUsIDAuMDAzNzUsIDAuMDAxMjUiLCBcCi0gICAgICAgICAgIjAuMDU1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDI1LCAwLjAxODc1LCAwLjAxNSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiMC4wNjEyNSwgMC4wNTYyNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyMTI1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMDY3NSwgMC4wNjI1LCAwLjA1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDI3NSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4wNzM3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDMzNzUsIDAuMDI1IiwgXAotICAgICAgICAgICIwLjA4Mzc1LCAwLjA3MjUsIDAuMDYsIDAuMDUzNzUsIDAuMDQ3NSwgMC4wMzc1LCAwLjAzNSIsIFwKLSAgICAgICAgICAiMC4wODYyNSwgMC4wNzUsIDAuMDY4NzUsIDAuMDU2MjUsIDAuMDUsIDAuMDQ2MjUsIDAuMDM3NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJlY292ZXJ5X3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUQmIVNFJiFTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fU0VfRVFfMF9BTl9TSV9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHJlY292ZXJ5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2MjUsIDAuMDczNzUsIDAuMDgsIDAuMDgsIDAuMDg2MjUsIDAuMDk2MjUsIDAuMTA1IiwgXAotICAgICAgICAgICIwLjA1NzUsIDAuMDYyNSwgMC4wNjg3NSwgMC4wNzUsIDAuMDgxMjUsIDAuMDkxMjUsIDAuMDkzNzUiLCBcCi0gICAgICAgICAgIjAuMDUxMjUsIDAuMDYyNSwgMC4wNjg3NSwgMC4wNjg3NSwgMC4wNzUsIDAuMDg1LCAwLjA5Mzc1IiwgXAotICAgICAgICAgICIwLjA1MTI1LCAwLjA1NjI1LCAwLjA2MjUsIDAuMDY4NzUsIDAuMDc1LCAwLjA3ODc1LCAwLjA4NzUiLCBcCi0gICAgICAgICAgIjAuMDUxMjUsIDAuMDU2MjUsIDAuMDYyNSwgMC4wNjg3NSwgMC4wNjg3NSwgMC4wNzg3NSwgMC4wODc1IiwgXAotICAgICAgICAgICIwLjA0NzUsIDAuMDUyNSwgMC4wNTg3NSwgMC4wNjUsIDAuMDcxMjUsIDAuMDc1LCAwLjA4Mzc1IiwgXAotICAgICAgICAgICIwLjA0NSwgMC4wNSwgMC4wNTYyNSwgMC4wNjI1LCAwLjA2ODc1LCAwLjA3MjUsIDAuMDgxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiByZW1vdmFsX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiU04iOwotICAgICAgc2RmX2NvbmQgOiAiU04gPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQocmVtb3ZhbF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDA2MjUsIC0wLjAwMTI1LCAwLjAxMTI1LCAwLjAxNzUsIDAuMDIzNzUsIDAuMDI3NSwgMC4wMzYyNSIsIFwKLSAgICAgICAgICAiLTAuMDE3NSwgLTAuMDA2MjUsIDAsIDAuMDA2MjUsIDAuMDEyNSwgMC4wMjI1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxODc1LCAtMC4wMDYyNSwgMCwgMC4wMDYyNSwgMC4wMTYyNSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAyNSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAsIDAuMDEsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLjAwMzc1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wNCwgLTAuMDM1LCAtMC4wMjI1LCAtMC4wMTYyNSwgLTAuMDEsIC0wLjAwNjI1LCAwLjAwMjUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwODc1LCAwIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTRSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNzIyOTk7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNzIyOTk7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNzIyNjc7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA3MjMxLCAwLjAwNzIzLCAwLjAwNzMwNCwgMC4wMDc0MSwgMC4wMDc1MywgMC4wMDc3NzQsIDAuMDA3OTY5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA5MDkxLCAwLjAwOTA4OSwgMC4wMDkyMTEsIDAuMDA5Mzg5LCAwLjAwOTYxOCwgMC4wMTAwMjIsIDAuMDEwMzk3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlJOJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIlJOX0VRXzFfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMDYyNSwgLTAuMDAxMjUsIDAuMDExMjUsIDAuMDE3NSwgMC4wMjM3NSwgMC4wMjc1LCAwLjAzNjI1IiwgXAotICAgICAgICAgICItMC4wMTc1LCAtMC4wMDYyNSwgMCwgMC4wMDYyNSwgMC4wMTI1LCAwLjAyMjUsIDAuMDI1IiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAsIDAuMDA2MjUsIDAuMDE2MjUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAsIDAuMDEsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAyNSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAsIDAuMDAzNzUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDMzNzUsIC0wLjAyODc1LCAtMC4wMjI1LCAtMC4wMTYyNSwgLTAuMDEsIDAsIDAuMDAyNSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwMjUsIDAiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjI1LCAwLjAxMTI1LCAwLjAxNzUsIDAuMDMsIDAuMDMsIDAuMDQsIDAuMDQyNSIsIFwKLSAgICAgICAgICAiLTAuMDA1LCAwLjAwNjI1LCAwLjAxMjUsIDAuMDE4NzUsIDAuMDI1LCAwLjAzNSwgMC4wMzc1IiwgXAotICAgICAgICAgICItMC4wMTEyNSwgLTAuMDA2MjUsIDAuMDA2MjUsIDAuMDEyNSwgMC4wMTg3NSwgMC4wMjI1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wMTc1LCAtMC4wMTI1LCAwLCAwLjAwNjI1LCAwLjAxMjUsIDAuMDE2MjUsIDAuMDI1IiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAsIDAuMDA2MjUsIDAuMDEsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjAyNzUsIC0wLjAyMjUsIC0wLjAxNjI1LCAtMC4wMSwgLTAuMDAzNzUsIDAuMDA2MjUsIDAuMDA4NzUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgLTAuMDAyNSwgMC4wMDYyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiUk4mU04iOwotICAgICAgc2RmX2NvbmQgOiAiUk5fRVFfMV9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2ODc1LCAwLjA1NzUsIDAuMDQ1LCAwLjAzODc1LCAwLjAzMjUsIDAuMDIyNSwgMC4wMiIsIFwKLSAgICAgICAgICAiMC4wNzM3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDMzNzUsIDAuMDI1IiwgXAotICAgICAgICAgICIwLjA4NjI1LCAwLjA3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1LCAwLjA0LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIjAuMDkyNSwgMC4wODEyNSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1MjUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMDk4NzUsIDAuMDg3NSwgMC4wODEyNSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1ODc1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICIwLjEwODc1LCAwLjA5NzUsIDAuMDkxMjUsIDAuMDc4NzUsIDAuMDcyNSwgMC4wNjg3NSwgMC4wNjYyNSIsIFwKLSAgICAgICAgICAiMC4xMTc1LCAwLjEwNjI1LCAwLjA5Mzc1LCAwLjA4NzUsIDAuMDgxMjUsIDAuMDc3NSwgMC4wNjg3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4MTI1LCAwLjA3LCAwLjA2Mzc1LCAwLjA1MTI1LCAwLjA0NSwgMC4wNDEyNSwgMC4wMzI1IiwgXAotICAgICAgICAgICIwLjA4NjI1LCAwLjA4MTI1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDQ2MjUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMDkyNSwgMC4wODc1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1MjUsIDAuMDUiLCBcCi0gICAgICAgICAgIjAuMDk4NzUsIDAuMDg3NSwgMC4wODEyNSwgMC4wNzUsIDAuMDY4NzUsIDAuMDU4NzUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIjAuMTA1LCAwLjA5Mzc1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIjAuMTA4NzUsIDAuMDk3NSwgMC4wOTEyNSwgMC4wNzg3NSwgMC4wNzI1LCAwLjA2ODc1LCAwLjA2IiwgXAotICAgICAgICAgICIwLjExMTI1LCAwLjEsIDAuMDkzNzUsIDAuMDgxMjUsIDAuMDgxMjUsIDAuMDcxMjUsIDAuMDY4NzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFNJKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA5NjEzMjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA5NTkwOTk7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwOTYxMzI7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA1MjQzLCAwLjAwNTE5OSwgMC4wMDUyMTcsIDAuMDA1MjYxLCAwLjAwNTM0MywgMC4wMDU0ODksIDAuMDA1NjQxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA4MDMsIDAuMDA4MDAyLCAwLjAwODAxNiwgMC4wMDgwNjEsIDAuMDA4MTIzLCAwLjAwODI2NywgMC4wMDg0MTMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiUk4mU0UmU04iOwotICAgICAgc2RmX2NvbmQgOiAiUk5fRVFfMV9BTl9TRV9FUV8xX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDI1LCAtMC4wMiwgLTAuMDEzNzUsIC0wLjAxMzc1LCAtMC4wMDc1LCAtMC4wMDM3NSwgLTAuMDAxMjUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA4NzUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMjUsIC0wLjAxNSwgLTAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDMxMjUsIC0wLjAyNzUsIC0wLjAxODc1IiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDM3NSwgLTAuMDMzNzUsIC0wLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDU4NzUsIC0wLjA1Mzc1LCAtMC4wNDc1LCAtMC4wNDc1LCAtMC4wNDEyNSwgLTAuMDM3NSwgLTAuMDM1IiwgXAotICAgICAgICAgICItMC4wNjc1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNDYyNSwgLTAuMDQzNzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLCAwLjAwNSwgMC4wMTc1LCAwLjAyMzc1LCAwLjAzLCAwLjAzMzc1LCAwLjA0MjUiLCBcCi0gICAgICAgICAgIi0wLjAwNSwgMCwgMC4wMTI1LCAwLjAxODc1LCAwLjAyNSwgMC4wMjg3NSwgMC4wMzc1IiwgXAotICAgICAgICAgICItMC4wMTEyNSwgLTAuMDA2MjUsIDAuMDA2MjUsIDAuMDEyNSwgMC4wMTg3NSwgMC4wMjI1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wMTc1LCAtMC4wMTI1LCAwLCAwLjAwNjI1LCAwLjAxMjUsIDAuMDE2MjUsIDAuMDI1IiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAsIDAuMDA2MjUsIDAuMDE2MjUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjAyNzUsIC0wLjAyMjUsIC0wLjAxLCAtMC4wMDM3NSwgMC4wMDI1LCAwLjAwNjI1LCAwLjAxNSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAyNSwgLTAuMDEyNSwgLTAuMDA2MjUsIC0wLjAwNjI1LCAwLjAwMzc1LCAwLjAwNjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJSTiZTRSZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJSTl9FUV8xX0FOX1NFX0VRXzFfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjg3NSwgMC4wNjM3NSwgMC4wNTEyNSwgMC4wNDUsIDAuMDM4NzUsIDAuMDI4NzUsIDAuMDI2MjUiLCBcCi0gICAgICAgICAgIjAuMDgsIDAuMDY4NzUsIDAuMDU2MjUsIDAuMDUsIDAuMDQzNzUsIDAuMDMzNzUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMDg2MjUsIDAuMDc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDUsIDAuMDQ2MjUsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiMC4wOTI1LCAwLjA4MTI1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDUyNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4wOTg3NSwgMC4wODc1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1ODc1LCAwLjA1IiwgXAotICAgICAgICAgICIwLjEwODc1LCAwLjA5NzUsIDAuMDg1LCAwLjA3ODc1LCAwLjA3MjUsIDAuMDY4NzUsIDAuMDYiLCBcCi0gICAgICAgICAgIjAuMTExMjUsIDAuMTA2MjUsIDAuMDkzNzUsIDAuMDg3NSwgMC4wODEyNSwgMC4wNzEyNSwgMC4wNjg3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1LCAwLjAzODc1LCAwLjAzMjUsIDAuMDIsIDAuMDEzNzUsIDAuMDEsIDAuMDAxMjUiLCBcCi0gICAgICAgICAgIjAuMDU1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDE4NzUsIDAuMDE1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICIwLjA2MTI1LCAwLjA1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDIxMjUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4wNjc1LCAwLjA1NjI1LCAwLjA1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDI3NSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4wNzM3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDMzNzUsIDAuMDI1IiwgXAotICAgICAgICAgICIwLjA3NzUsIDAuMDcyNSwgMC4wNiwgMC4wNTM3NSwgMC4wNDc1LCAwLjAzNzUsIDAuMDM1IiwgXAotICAgICAgICAgICIwLjA4NjI1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNTYyNSwgMC4wNSwgMC4wNDYyNSwgMC4wMzc1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTTikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAyMDYwODsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDIwNjA4OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMjA2MDczOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDg0MSwgMC4wMDA4NDEsIDAuMDAwODQxLCAwLjAwMDg0MSwgMC4wMDA4NCwgMC4wMDA4NCwgMC4wMDA4NCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDg1MSwgMC4wMDA4NDUsIDAuMDAwODQ0LCAwLjAwMDg0NCwgMC4wMDA4NDQsIDAuMDAwODQyLCAwLjAwMDg0MyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQmIVJOJiFTRSYhU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1JOX0VRXzBfQU5fU0VfRVFfMF9BTl9TSV9FUV8wID09IDEnYjEiOwotICAgICAgZmFsbF9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDgyMjIzLCAwLjA4ODgyLCAwLjA5NjM4NSwgMC4xMDU2NjEsIDAuMTEzODk0LCAwLjEyNDc0NiwgMC4xMzI5MDkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiByZWNvdmVyeV9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlJOIjsKLSAgICAgIHNkZl9jb25kIDogIlJOID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHJlY292ZXJ5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjI1LCAtMC4wMDUsIC0wLjAxNzUsIC0wLjAyMzc1LCAtMC4wMywgLTAuMDQsIC0wLjA0ODc1IiwgXAotICAgICAgICAgICIwLjAxMTI1LCAwLCAtMC4wMDYyNSwgLTAuMDE4NzUsIC0wLjAyNSwgLTAuMDM1LCAtMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4wMTc1LCAwLjAxMjUsIDAsIC0wLjAxMjUsIC0wLjAxODc1LCAtMC4wMjg3NSwgLTAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMDIzNzUsIDAuMDE4NzUsIDAuMDA2MjUsIDAsIC0wLjAxMjUsIC0wLjAxNjI1LCAtMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMDM2MjUsIDAuMDI1LCAwLjAxMjUsIDAuMDA2MjUsIDAsIC0wLjAxLCAtMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4wNDYyNSwgMC4wMzUsIDAuMDI4NzUsIDAuMDE2MjUsIDAuMDEsIDAsIC0wLjAwODc1IiwgXAotICAgICAgICAgICIwLjA2MTI1LCAwLjA1LCAwLjAzNzUsIDAuMDI1LCAwLjAxODc1LCAwLjAwODc1LCAwLjAwNjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogcmVtb3ZhbF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlJOIjsKLSAgICAgIHNkZl9jb25kIDogIlJOID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHJlbW92YWxfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDI1LCAwLjAzLCAwLjA0MjUsIDAuMDQ4NzUsIDAuMDU1LCAwLjA2NSwgMC4wNzM3NSIsIFwKLSAgICAgICAgICAiMC4wMiwgMC4wMjUsIDAuMDM3NSwgMC4wNDM3NSwgMC4wNSwgMC4wNiwgMC4wNjI1IiwgXAotICAgICAgICAgICIwLjAwNzUsIDAuMDE4NzUsIDAuMDI1LCAwLjAzNzUsIDAuMDQzNzUsIDAuMDUzNzUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIjAuMDAxMjUsIDAuMDEyNSwgMC4wMTg3NSwgMC4wMjUsIDAuMDM3NSwgMC4wNDEyNSwgMC4wNSIsIFwKLSAgICAgICAgICAiLTAuMDA1LCAwLjAwNjI1LCAwLjAxMjUsIDAuMDE4NzUsIDAuMDMxMjUsIDAuMDM1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICItMC4wMTUsIC0wLjAwMzc1LCAwLjAwMjUsIDAuMDE1LCAwLjAyMTI1LCAwLjAyNSwgMC4wMzM3NSIsIFwKLSAgICAgICAgICAiLTAuMDE3NSwgLTAuMDEyNSwgMCwgMC4wMDYyNSwgMC4wMTI1LCAwLjAyMjUsIDAuMDI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBTRURGRlRSWDEgKgotICogLS0tLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChTRURGRlRSWDEpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMS41MTgwODsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBmZiAoTjMwLFFCSU5UKSB7Ci0gICAgbmV4dF9zdGF0ZSA6ICIoKFNFIFNJKSArICghU0UgKCgoISgoIUQpIEUpKSAoISgoIUUpICghTjMwKSkpKSBSTikpKSI7Ci0gICAgY2xvY2tlZF9vbiA6ICJDSyI7Ci0gIH0KLSAgcGluKENLKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2NDQ1Mjg7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjQ0NTI4OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDY0NDQ4ODsKLSAgICBjbG9jayA6IHRydWU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzNjU0LCAwLjAwMzY1MiwgMC4wMDM3MywgMC4wMDM4MzMsIDAuMDAzOTUzLCAwLjAwNDE4NSwgMC4wMDQzNzkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDcwMzQsIDAuMDA3MDQzLCAwLjAwNzE0MiwgMC4wMDcyNTksIDAuMDA3NDEzLCAwLjAwNzY4MywgMC4wMDc5NDMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFEJiFFJiFSTiYhU0UmIVNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9FX0VRXzBfQU5fUk5fRVFfMF9BTl9TRV9FUV8wX0FOX1NJX0VRXzAgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4xMjMzMTksIDAuMTMxMzg0LCAwLjE0MDAyOCwgMC4xNDY0MDYsIDAuMTUxNDcsIDAuMTU4NTcyLCAwLjE2MzYzMyIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDU5MTI4LCAwLjA2NzE0NiwgMC4wNzU2OTksIDAuMDgxODUsIDAuMDg2ODk0LCAwLjA5MzM0NCwgMC4wOTgyMiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjMzNzUyOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYzMzc1MjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2MzM2Mjc7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA3NTMyLCAwLjAwNzUzMSwgMC4wMDc2MSwgMC4wMDc3MjYsIDAuMDA3ODQ2LCAwLjAwODA5LCAwLjAwODI4MyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwODA1OSwgMC4wMDgwNzEsIDAuMDA4MTU0LCAwLjAwODI3LCAwLjAwODQwNiwgMC4wMDg2MjcsIDAuMDA4ODI2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIkUmUk4mIVNFIjsKLSAgICAgIHNkZl9jb25kIDogIkVfRVFfMV9BTl9STl9FUV8xX0FOX1NFX0VRXzAgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDgxMjUsIC0wLjA3NjI1LCAtMC4wNywgLTAuMDcsIC0wLjA3LCAtMC4wNjYyNSwgLTAuMDYzNzUiLCBcCi0gICAgICAgICAgIi0wLjA4NjI1LCAtMC4wODEyNSwgLTAuMDgxMjUsIC0wLjA3NSwgLTAuMDc1LCAtMC4wNzEyNSwgLTAuMDY4NzUiLCBcCi0gICAgICAgICAgIi0wLjA5MjUsIC0wLjA4NzUsIC0wLjA4NzUsIC0wLjA4MTI1LCAtMC4wODEyNSwgLTAuMDc3NSwgLTAuMDc1IiwgXAotICAgICAgICAgICItMC4wOTg3NSwgLTAuMDkzNzUsIC0wLjA4NzUsIC0wLjA4NzUsIC0wLjA4NzUsIC0wLjA4Mzc1LCAtMC4wODEyNSIsIFwKLSAgICAgICAgICAiLTAuMDk4NzUsIC0wLjA5Mzc1LCAtMC4wOTM3NSwgLTAuMDg3NSwgLTAuMDg3NSwgLTAuMDgzNzUsIC0wLjA4MTI1IiwgXAotICAgICAgICAgICItMC4xMDg3NSwgLTAuMTAzNzUsIC0wLjA5NzUsIC0wLjA5NzUsIC0wLjA5MTI1LCAtMC4wODc1LCAtMC4wODUiLCBcCi0gICAgICAgICAgIi0wLjExMTI1LCAtMC4xMDYyNSwgLTAuMSwgLTAuMSwgLTAuMSwgLTAuMDk2MjUsIC0wLjA5Mzc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDU2MjUsIC0wLjA1MTI1LCAtMC4wNDUsIC0wLjAzODc1LCAtMC4wMzI1LCAtMC4wMjg3NSwgLTAuMDI2MjUiLCBcCi0gICAgICAgICAgIi0wLjA2MTI1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzM3NSwgLTAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjA2NzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjA0LCAtMC4wMzc1IiwgXAotICAgICAgICAgICItMC4wNzM3NSwgLTAuMDY4NzUsIC0wLjA1NjI1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjA0NjI1LCAtMC4wNDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDczNzUsIC0wLjA2ODc1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDU2MjUsIC0wLjA0NjI1LCAtMC4wNDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDgzNzUsIC0wLjA3MjUsIC0wLjA2NjI1LCAtMC4wNiwgLTAuMDYsIC0wLjA1LCAtMC4wNDc1IiwgXAotICAgICAgICAgICItMC4wODYyNSwgLTAuMDc1LCAtMC4wNjg3NSwgLTAuMDYyNSwgLTAuMDYyNSwgLTAuMDU4NzUsIC0wLjA1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJFJlJOJiFTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJFX0VRXzFfQU5fUk5fRVFfMV9BTl9TRV9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExMjUsIDAuMTA3NSwgMC4xMDEyNSwgMC4wOTUsIDAuMDk1LCAwLjA5MTI1LCAwLjA4ODc1IiwgXAotICAgICAgICAgICIwLjExNzUsIDAuMTEyNSwgMC4xMDYyNSwgMC4xMDYyNSwgMC4xLCAwLjA5NjI1LCAwLjA5Mzc1IiwgXAotICAgICAgICAgICIwLjEyMzc1LCAwLjExODc1LCAwLjExMjUsIDAuMTA2MjUsIDAuMTA2MjUsIDAuMTAyNSwgMC4xIiwgXAotICAgICAgICAgICIwLjEzLCAwLjEyNSwgMC4xMTg3NSwgMC4xMTI1LCAwLjExMjUsIDAuMTA4NzUsIDAuMTA2MjUiLCBcCi0gICAgICAgICAgIjAuMTMsIDAuMTI1LCAwLjExODc1LCAwLjExODc1LCAwLjExMjUsIDAuMTA4NzUsIDAuMTA2MjUiLCBcCi0gICAgICAgICAgIjAuMTQsIDAuMTI4NzUsIDAuMTIyNSwgMC4xMjI1LCAwLjExNjI1LCAwLjExODc1LCAwLjExNjI1IiwgXAotICAgICAgICAgICIwLjE0MjUsIDAuMTMxMjUsIDAuMTMxMjUsIDAuMTI1LCAwLjEyNSwgMC4xMjEyNSwgMC4xMTg3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4MTI1LCAwLjA3NjI1LCAwLjA3LCAwLjA2Mzc1LCAwLjA1NzUsIDAuMDQ3NSwgMC4wNDUiLCBcCi0gICAgICAgICAgIjAuMDkyNSwgMC4wODEyNSwgMC4wNzUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNTg3NSwgMC4wNSIsIFwKLSAgICAgICAgICAiMC4wOTg3NSwgMC4wODc1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIjAuMDk4NzUsIDAuMDkzNzUsIDAuMDgxMjUsIDAuMDgxMjUsIDAuMDc1LCAwLjA2NSwgMC4wNjI1IiwgXAotICAgICAgICAgICIwLjEwNSwgMC4wOTM3NSwgMC4wODc1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNzEyNSwgMC4wNjg3NSIsIFwKLSAgICAgICAgICAiMC4xMDg3NSwgMC4wOTc1LCAwLjA5MTI1LCAwLjA4NSwgMC4wNzg3NSwgMC4wNzUsIDAuMDcyNSIsIFwKLSAgICAgICAgICAiMC4xMTEyNSwgMC4xMDYyNSwgMC4wOTM3NSwgMC4wODc1LCAwLjA4NzUsIDAuMDc3NSwgMC4wNzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEUpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTI5NTk2OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTI5NTk2OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTI5NDA1OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwODE0MSwgMC4wMDgxNSwgMC4wMDgyMywgMC4wMDgzNCwgMC4wMDg0ODMsIDAuMDA4Njc1LCAwLjAwODg3MyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwOTI5NywgMC4wMDkzMTksIDAuMDA5NDE0LCAwLjAwOTU5NywgMC4wMDk3ODcsIDAuMDEwMTU3LCAwLjAxMDQ4NCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJSTiYhU0UiOwotICAgICAgc2RmX2NvbmQgOiAiUk5fRVFfMV9BTl9TRV9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjA2MjUsIC0wLjA1NzUsIC0wLjA0NSwgLTAuMDM4NzUsIC0wLjAzODc1LCAtMC4wMjg3NSwgLTAuMDI2MjUiLCBcCi0gICAgICAgICAgIi0wLjA2NzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjA0LCAtMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDczNzUsIC0wLjA2ODc1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjA0NjI1LCAtMC4wMzc1IiwgXAotICAgICAgICAgICItMC4wOCwgLTAuMDc1LCAtMC4wNjg3NSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA1MjUsIC0wLjA0Mzc1IiwgXAotICAgICAgICAgICItMC4wODYyNSwgLTAuMDgxMjUsIC0wLjA2ODc1LCAtMC4wNjI1LCAtMC4wNjI1LCAtMC4wNTI1LCAtMC4wNSIsIFwKLSAgICAgICAgICAiLTAuMDksIC0wLjA4NSwgLTAuMDc4NzUsIC0wLjA3MjUsIC0wLjA2NjI1LCAtMC4wNjI1LCAtMC4wNTM3NSIsIFwKLSAgICAgICAgICAiLTAuMDk4NzUsIC0wLjA4NzUsIC0wLjA4MTI1LCAtMC4wNzUsIC0wLjA2ODc1LCAtMC4wNjUsIC0wLjA2MjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wNjI1LCAtMC4wNTc1LCAtMC4wNTEyNSwgLTAuMDQ1LCAtMC4wMzg3NSwgLTAuMDM1LCAtMC4wMzI1IiwgXAotICAgICAgICAgICItMC4wNzM3NSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNSwgLTAuMDQsIC0wLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjA4LCAtMC4wNjg3NSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA1NjI1LCAtMC4wNDYyNSwgLTAuMDQzNzUiLCBcCi0gICAgICAgICAgIi0wLjA4LCAtMC4wNzUsIC0wLjA2ODc1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDUyNSwgLTAuMDUiLCBcCi0gICAgICAgICAgIi0wLjA4NjI1LCAtMC4wNzUsIC0wLjA2ODc1LCAtMC4wNjI1LCAtMC4wNjI1LCAtMC4wNTg3NSwgLTAuMDUiLCBcCi0gICAgICAgICAgIi0wLjA5LCAtMC4wNzg3NSwgLTAuMDcyNSwgLTAuMDcyNSwgLTAuMDY2MjUsIC0wLjA2MjUsIC0wLjA1Mzc1IiwgXAotICAgICAgICAgICItMC4wOTI1LCAtMC4wODc1LCAtMC4wNzUsIC0wLjA3NSwgLTAuMDY4NzUsIC0wLjA2NSwgLTAuMDYyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiUk4mIVNFIjsKLSAgICAgIHNkZl9jb25kIDogIlJOX0VRXzFfQU5fU0VfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMjUsIDAuMTIsIDAuMTEzNzUsIDAuMTA3NSwgMC4xMDc1LCAwLjEwMzc1LCAwLjEwMTI1IiwgXAotICAgICAgICAgICIwLjEzLCAwLjEyNSwgMC4xMTg3NSwgMC4xMTg3NSwgMC4xMTI1LCAwLjEwODc1LCAwLjEwNjI1IiwgXAotICAgICAgICAgICIwLjEzNjI1LCAwLjEzMTI1LCAwLjEyNSwgMC4xMjUsIDAuMTE4NzUsIDAuMTE1LCAwLjExMjUiLCBcCi0gICAgICAgICAgIjAuMTQyNSwgMC4xMzc1LCAwLjEzMTI1LCAwLjEyNSwgMC4xMjUsIDAuMTIxMjUsIDAuMTE4NzUiLCBcCi0gICAgICAgICAgIjAuMTQ4NzUsIDAuMTM3NSwgMC4xMzEyNSwgMC4xMzEyNSwgMC4xMjUsIDAuMTI3NSwgMC4xMTg3NSIsIFwKLSAgICAgICAgICAiMC4xNTI1LCAwLjE0MTI1LCAwLjE0MTI1LCAwLjEzNSwgMC4xMzUsIDAuMTMxMjUsIDAuMTI4NzUiLCBcCi0gICAgICAgICAgIjAuMTU1LCAwLjE1LCAwLjE0Mzc1LCAwLjEzNzUsIDAuMTM3NSwgMC4xMzM3NSwgMC4xMzEyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4NzUsIDAuMDgyNSwgMC4wNzYyNSwgMC4wNzYyNSwgMC4wNywgMC4wNjYyNSwgMC4wNjM3NSIsIFwKLSAgICAgICAgICAiMC4wOTI1LCAwLjA4NzUsIDAuMDgxMjUsIDAuMDgxMjUsIDAuMDgxMjUsIDAuMDc3NSwgMC4wNzUiLCBcCi0gICAgICAgICAgIjAuMDk4NzUsIDAuMDkzNzUsIDAuMDkzNzUsIDAuMDg3NSwgMC4wODc1LCAwLjA4Mzc1LCAwLjA4MTI1IiwgXAotICAgICAgICAgICIwLjExMTI1LCAwLjEwNjI1LCAwLjEsIDAuMSwgMC4wOTM3NSwgMC4wOTYyNSwgMC4wOTM3NSIsIFwKLSAgICAgICAgICAiMC4xMTc1LCAwLjExMjUsIDAuMTA2MjUsIDAuMTA2MjUsIDAuMTA2MjUsIDAuMTAyNSwgMC4xIiwgXAotICAgICAgICAgICIwLjEyNzUsIDAuMTIyNSwgMC4xMjI1LCAwLjExNjI1LCAwLjExNjI1LCAwLjExMjUsIDAuMTEiLCBcCi0gICAgICAgICAgIjAuMTM2MjUsIDAuMTMxMjUsIDAuMTI1LCAwLjEyNSwgMC4xMjUsIDAuMTIxMjUsIDAuMTE4NzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFEpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4zNDAyNTk7Ci0gICAgZnVuY3Rpb24gOiAiTjMwIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBub25fdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJpc2luZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDY4NjcsIDAuMTI1ODEsIDAuMjMxODYxLCAwLjMyNTE0NywgMC40NDk4NTMsIDAuNjk5NTczLCAwLjg1NTU1OSIsIFwKLSAgICAgICAgICAiMC4xMTQ4NTEsIDAuMTMzODM5LCAwLjIzOTg0OSwgMC4zMzMxNCwgMC40NTc4NDIsIDAuNzA3NTU1LCAwLjg2MzIyOSIsIFwKLSAgICAgICAgICAiMC4xMjMzMjEsIDAuMTQyMjgyLCAwLjI0ODMxOSwgMC4zNDE2MjIsIDAuNDY2MzE3LCAwLjcxNTc1OSwgMC44NzIwMjYiLCBcCi0gICAgICAgICAgIjAuMTI5NTg2LCAwLjE0ODU0MiwgMC4yNTQ1ODMsIDAuMzQ3ODg2LCAwLjQ3MjU4LCAwLjcyMjAyLCAwLjg3ODI4NCIsIFwKLSAgICAgICAgICAiMC4xMzQ1OTcsIDAuMTUzNTg1LCAwLjI1OTYxNCwgMC4zNTI5MDksIDAuNDc3Njc5LCAwLjcyNzM1OSwgMC44ODMzMDIiLCBcCi0gICAgICAgICAgIjAuMTQxNTEzLCAwLjE2MDUyNSwgMC4yNjY1MTUsIDAuMzU5ODE1LCAwLjQ4NDQ0LCAwLjczNDIzMiwgMC44ODk4ODYiLCBcCi0gICAgICAgICAgIjAuMTQ2NTQyLCAwLjE2NTU0NiwgMC4yNzE1MzYsIDAuMzY0ODQ0LCAwLjQ4OTUwNCwgMC43MzkyNTksIDAuODk1MTk1Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3NTA3MiwgMC4xMTMwODMsIDAuMzM1MDI0LCAwLjUzMjI1NSwgMC43OTY4MjIsIDEuMzI1MTYsIDEuNjU1MDgiLCBcCi0gICAgICAgICAgIjAuMDc1MDUxLCAwLjExMzA2MiwgMC4zMzQ5MTEsIDAuNTMyODIxLCAwLjc5NjgwNCwgMS4zMjQ5OCwgMS42NTUyOSIsIFwKLSAgICAgICAgICAiMC4wNzUwOTksIDAuMTEzMDY1LCAwLjMzNDcyMSwgMC41MzI2NTIsIDAuNzk2ODA1LCAxLjMyNTEyLCAxLjY1NTI4IiwgXAotICAgICAgICAgICIwLjA3NTA3LCAwLjExMzA4MSwgMC4zMzUwMTUsIDAuNTMyODI5LCAwLjc5NjkyOSwgMS4zMjUwOSwgMS42NTUyIiwgXAotICAgICAgICAgICIwLjA3NTA4LCAwLjExMzA4NCwgMC4zMzUwMDYsIDAuNTMyODM2LCAwLjc5Njk1MiwgMS4zMjUwOSwgMS42NTUzMiIsIFwKLSAgICAgICAgICAiMC4wNzUwMTcsIDAuMTEzMDksIDAuMzM0ODQyLCAwLjUzMjY0OCwgMC43OTY4NTgsIDEuMzI0OTgsIDEuNjU1MTgiLCBcCi0gICAgICAgICAgIjAuMDc1MzA3LCAwLjExMzExNSwgMC4zMzQ5OTcsIDAuNTMyNzc1LCAwLjc5Njg1NywgMS4zMjUwMywgMS42NTUwNCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTczNTQsIDAuMTM1OTM4LCAwLjIzODg5NywgMC4zMjk0OTUsIDAuNDUwMzI5LCAwLjY5MTc1NiwgMC44NDI5NzkiLCBcCi0gICAgICAgICAgIjAuMTI1NDA4LCAwLjE0Mzk4OSwgMC4yNDY5NzEsIDAuMzM3NTc2LCAwLjQ1ODI0NiwgMC42OTk5MTMsIDAuODUwOTYzIiwgXAotICAgICAgICAgICIwLjEzNDA1NCwgMC4xNTI2NCwgMC4yNTU2MDMsIDAuMzQ2MjMsIDAuNDY3MDMxLCAwLjcwODU4MywgMC44NTk2MjYiLCBcCi0gICAgICAgICAgIjAuMTQwNDMsIDAuMTU5MDE2LCAwLjI2MTk4LCAwLjM1MjU3OCwgMC40NzM0MDYsIDAuNzE0ODM4LCAwLjg2NjA2MiIsIFwKLSAgICAgICAgICAiMC4xNDU0OTUsIDAuMTY0MDgsIDAuMjY3MDQ0LCAwLjM1NzY0MSwgMC40Nzg0NjYsIDAuNzE5OSwgMC44NzExMjIiLCBcCi0gICAgICAgICAgIjAuMTUyNjAyLCAwLjE3MTE4MiwgMC4yNzQxNCwgMC4zNjQ3MzQsIDAuNDg1NTQzLCAwLjcyNzAwNiwgMC44NzgxMiIsIFwKLSAgICAgICAgICAiMC4xNTc2ODEsIDAuMTc2MjU0LCAwLjI3OTIxNCwgMC4zNjk3MDksIDAuNDkwNTkyLCAwLjczMjA4MSwgMC44ODMyNzMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDcyMTMxLCAwLjEwNzkxOSwgMC4zMTYwNSwgMC41MDI2NTEsIDAuNzUxMzk5LCAxLjI0OTU3LCAxLjU2MDc5IiwgXAotICAgICAgICAgICIwLjA3MjAyNCwgMC4xMDc4MjUsIDAuMzE2MjI4LCAwLjUwMjY4MSwgMC43NTExNiwgMS4yNDk1OSwgMS41NjA4OSIsIFwKLSAgICAgICAgICAiMC4wNzE4NjgsIDAuMTA3ODE3LCAwLjMxNjE3NSwgMC41MDI2OTQsIDAuNzUxNjE3LCAxLjI0OTU2LCAxLjU2MDg5IiwgXAotICAgICAgICAgICIwLjA3MjEyNCwgMC4xMDc4MjMsIDAuMzE2NDg4LCAwLjUwMjY3NywgMC43NTE0NjQsIDEuMjQ5NTcsIDEuNTYwODgiLCBcCi0gICAgICAgICAgIjAuMDcyMTE2LCAwLjEwNzgyOSwgMC4zMTY0ODYsIDAuNTAyNjY0LCAwLjc1MTUzNCwgMS4yNDk1NSwgMS41NjA4NyIsIFwKLSAgICAgICAgICAiMC4wNzE5NTYsIDAuMTA3OTMzLCAwLjMxNjUwMiwgMC41MDI2NjcsIDAuNzUxNDMyLCAxLjI0OTQsIDEuNTYwNzEiLCBcCi0gICAgICAgICAgIjAuMDcyMDQzLCAwLjEwNzk1MiwgMC4zMTY0NjIsIDAuNTAyMDYzLCAwLjc1MTQ0NCwgMS4yNDk0MywgMS41NjA1NyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDcwODcsIDAuMDA3MDk3LCAwLjAwNzExMSwgMC4wMDcxMTQsIDAuMDA3MTE1LCAwLjAwNzExNywgMC4wMDcxMTciLCBcCi0gICAgICAgICAgIjAuMDA3MDg3LCAwLjAwNzA5NiwgMC4wMDcxMSwgMC4wMDcxMTMsIDAuMDA3MTE0LCAwLjAwNzExNiwgMC4wMDcxMTciLCBcCi0gICAgICAgICAgIjAuMDA3MTIxLCAwLjAwNzEzMSwgMC4wMDcxNDUsIDAuMDA3MTQ4LCAwLjAwNzE1LCAwLjAwNzE1MiwgMC4wMDcxNTIiLCBcCi0gICAgICAgICAgIjAuMDA3MTgzLCAwLjAwNzE5MywgMC4wMDcyMDcsIDAuMDA3MjEsIDAuMDA3MjEyLCAwLjAwNzIxMywgMC4wMDcyMTQiLCBcCi0gICAgICAgICAgIjAuMDA3MjQ4LCAwLjAwNzI1NywgMC4wMDcyNzIsIDAuMDA3Mjc0LCAwLjAwNzI3NywgMC4wMDcyNzcsIDAuMDA3Mjc4IiwgXAotICAgICAgICAgICIwLjAwNzM1LCAwLjAwNzM3LCAwLjAwNzM4NCwgMC4wMDczODgsIDAuMDA3Mzg5LCAwLjAwNzM4LCAwLjAwNzM5MSIsIFwKLSAgICAgICAgICAiMC4wMDc0NDksIDAuMDA3NDU5LCAwLjAwNzQ3MywgMC4wMDc0NzksIDAuMDA3NDgxLCAwLjAwNzQ4MSwgMC4wMDc0NzkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDcwOTMsIDAuMDA3MTAyLCAwLjAwNzExNCwgMC4wMDcxMTcsIDAuMDA3MTE4LCAwLjAwNzEyLCAwLjAwNzEyIiwgXAotICAgICAgICAgICIwLjAwNzA5OSwgMC4wMDcxMDcsIDAuMDA3MTIsIDAuMDA3MTIyLCAwLjAwNzEyNCwgMC4wMDcxMjUsIDAuMDA3MTI2IiwgXAotICAgICAgICAgICIwLjAwNzE0NywgMC4wMDcxNTUsIDAuMDA3MTY3LCAwLjAwNzE3LCAwLjAwNzE3MSwgMC4wMDcxNzIsIDAuMDA3MTczIiwgXAotICAgICAgICAgICIwLjAwNzIxNCwgMC4wMDcyMjIsIDAuMDA3MjM1LCAwLjAwNzIzOCwgMC4wMDcyNCwgMC4wMDcyNCwgMC4wMDcyNCIsIFwKLSAgICAgICAgICAiMC4wMDcyODcsIDAuMDA3Mjk1LCAwLjAwNzMwOCwgMC4wMDczMSwgMC4wMDczMTIsIDAuMDA3MzEzLCAwLjAwNzMxNCIsIFwKLSAgICAgICAgICAiMC4wMDczOTIsIDAuMDA3NDAxLCAwLjAwNzQxMywgMC4wMDc0MTYsIDAuMDA3NDI3LCAwLjAwNzQxOCwgMC4wMDc0MTkiLCBcCi0gICAgICAgICAgIjAuMDA3NTA0LCAwLjAwNzUxMSwgMC4wMDc1MjUsIDAuMDA3NTI4LCAwLjAwNzUyOSwgMC4wMDc1MywgMC4wMDc1MyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUU4pICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4zNDUyNTM7Ci0gICAgZnVuY3Rpb24gOiAiUUJJTlQiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5vbl91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcmlzaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEyNDA2NSwgMC4xNDI0MDIsIDAuMjQ2MTcxLCAwLjMzNzc4MiwgMC40NjAwNTgsIDAuNzA0NDA3LCAwLjg1NzE4OSIsIFwKLSAgICAgICAgICAiMC4xMzIwNzcsIDAuMTUwMzk5LCAwLjI1NDIzLCAwLjM0NTgwNiwgMC40NjgwNjksIDAuNzEyNDM2LCAwLjg2NTIiLCBcCi0gICAgICAgICAgIjAuMTQwNzMyLCAwLjE1OTA1NCwgMC4yNjI4ODcsIDAuMzU0NTQ5LCAwLjQ3NjY5MiwgMC43MjEyNTIsIDAuODczODQ1IiwgXAotICAgICAgICAgICIwLjE0NzEwNywgMC4xNjU0MTgsIDAuMjY5MjcsIDAuMzYwOTM2LCAwLjQ4MzE2MSwgMC43Mjc1MTUsIDAuODgwMjk0IiwgXAotICAgICAgICAgICIwLjE1MjE2NCwgMC4xNzA0ODgsIDAuMjc0MzIyLCAwLjM2NTk4MywgMC40ODgyMDgsIDAuNzMyNTYyLCAwLjg4NTM0MyIsIFwKLSAgICAgICAgICAiMC4xNTkzMTEsIDAuMTc3NTg4LCAwLjI4MTQxOSwgMC4zNzMwODEsIDAuNDk1MzA4LCAwLjczOTY1NywgMC44OTI0MzYiLCBcCi0gICAgICAgICAgIjAuMTY0MzUxLCAwLjE4MjY3OSwgMC4yODY1MDksIDAuMzc4MTA0LCAwLjUwMDM2NSwgMC43NDQ3NzEsIDAuODk3NDk1Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2OTM1MSwgMC4xMDc1ODEsIDAuMzI1NzQxLCAwLjUxOTA0MywgMC43NzU5MDksIDEuMjkwNjEsIDEuNjEyMDkiLCBcCi0gICAgICAgICAgIjAuMDY5MzU0LCAwLjEwNzU4LCAwLjMyNjAwNiwgMC41MTkxMjYsIDAuNzc1NzY2LCAxLjI5MDYxLCAxLjYxMjEiLCBcCi0gICAgICAgICAgIjAuMDY5MzU1LCAwLjEwNzU4LCAwLjMyNTk1OCwgMC41MTkxMzIsIDAuNzc2MzMyLCAxLjI5MDYxLCAxLjYxMjEiLCBcCi0gICAgICAgICAgIjAuMDY5MzU2LCAwLjEwNzU4LCAwLjMyNjA3MiwgMC41MTkxNDEsIDAuNzc1OTUsIDEuMjkwNiwgMS42MTIxIiwgXAotICAgICAgICAgICIwLjA2OTM1NiwgMC4xMDc1ODEsIDAuMzI1OTU0LCAwLjUxOTEzLCAwLjc3NjI0MSwgMS4yOTA2MSwgMS42MTIxIiwgXAotICAgICAgICAgICIwLjA2OTM2NywgMC4xMDc1OTMsIDAuMzI2MjAzLCAwLjUxOTEyMywgMC43NzU5MzEsIDEuMjkwNDcsIDEuNjExOTIiLCBcCi0gICAgICAgICAgIjAuMDY5NCwgMC4xMDc1NjMsIDAuMzI2MjE5LCAwLjUxODQ4NCwgMC43NzYxNzIsIDEuMjkwNDgsIDEuNjExOTMiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTE0MjM1LCAwLjEzMjM0MiwgMC4yMzQ5MTMsIDAuMzI1Mzc2LCAwLjQ0NjAxNCwgMC42ODcyNDMsIDAuODM3OTg1IiwgXAotICAgICAgICAgICIwLjEyMjI0OCwgMC4xNDAzNTgsIDAuMjQyOTI0LCAwLjMzMzM5NiwgMC40NTQwMDUsIDAuNjk1MjI2LCAwLjg0NjA3OSIsIFwKLSAgICAgICAgICAiMC4xMzA3MDUsIDAuMTQ4ODEyLCAwLjI1MTM4MywgMC4zNDE4NTQsIDAuNDYyNDYsIDAuNzAzNjk5LCAwLjg1NDQ3NyIsIFwKLSAgICAgICAgICAiMC4xMzY5NjMsIDAuMTU1MDcxLCAwLjI1NzYxMiwgMC4zNDgxMzEsIDAuNDY4NzM5LCAwLjcwOTk2OCwgMC44NjA3MTciLCBcCi0gICAgICAgICAgIjAuMTQxOTU4LCAwLjE2MDA2MywgMC4yNjI2MjEsIDAuMzUzMDksIDAuNDczNzcsIDAuNzE0OTI4LCAwLjg2NTczNyIsIFwKLSAgICAgICAgICAiMC4xNDg5NDMsIDAuMTY3MDQ5LCAwLjI2OTU3NCwgMC4zNjAwNjYsIDAuNDgwNjE5LCAwLjcyMTk0LCAwLjg3MjY5NSIsIFwKLSAgICAgICAgICAiMC4xNTM5MTksIDAuMTcyMDI4LCAwLjI3NDU3MiwgMC4zNjUwNDQsIDAuNDg1NjYzLCAwLjcyNjkyMSwgMC44Nzc2NzEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY3MSwgMC4xMDM5NzYsIDAuMzE1MTU4LCAwLjUwMTA1NCwgMC43NTAyMzksIDEuMjQ3NDYsIDEuNTU4MjciLCBcCi0gICAgICAgICAgIjAuMDY3MDg1LCAwLjEwMzk3NywgMC4zMTUwODIsIDAuNTAxNjExLCAwLjc1MDE0NiwgMS4yNDc0MywgMS41NTgwOSIsIFwKLSAgICAgICAgICAiMC4wNjcwNzYsIDAuMTAzOTc1LCAwLjMxNDY1OSwgMC41MDE0NTEsIDAuNzUwMTEyLCAxLjI0NzI5LCAxLjU1ODI3IiwgXAotICAgICAgICAgICIwLjA2NzA3OSwgMC4xMDM5NzUsIDAuMzE1MTExLCAwLjUwMTYzNCwgMC43NTAxODYsIDEuMjQ3MzQsIDEuNTU4MjciLCBcCi0gICAgICAgICAgIjAuMDY3MDgyLCAwLjEwMzk4MiwgMC4zMTUxNjYsIDAuNTAxNjMzLCAwLjc1MDIsIDEuMjQ3NTEsIDEuNTU4MjQiLCBcCi0gICAgICAgICAgIjAuMDY3MDk3LCAwLjEwMzk4NCwgMC4zMTUwMTQsIDAuNTAxNDg3LCAwLjc1MDA2MSwgMS4yNDc0NCwgMS41NTc4MSIsIFwKLSAgICAgICAgICAiMC4wNjcyMTcsIDAuMTAzOTIzLCAwLjMxNTA2OCwgMC41MDE1MDQsIDAuNzUwMDU3LCAxLjI0NzI0LCAxLjU1Nzk5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNzA5MywgMC4wMDcxMDIsIDAuMDA3MTE0LCAwLjAwNzExNywgMC4wMDcxMTgsIDAuMDA3MTIsIDAuMDA3MTIiLCBcCi0gICAgICAgICAgIjAuMDA3MDk5LCAwLjAwNzEwNywgMC4wMDcxMiwgMC4wMDcxMjIsIDAuMDA3MTI0LCAwLjAwNzEyNSwgMC4wMDcxMjYiLCBcCi0gICAgICAgICAgIjAuMDA3MTQ3LCAwLjAwNzE1NSwgMC4wMDcxNjcsIDAuMDA3MTcsIDAuMDA3MTcxLCAwLjAwNzE3MiwgMC4wMDcxNzMiLCBcCi0gICAgICAgICAgIjAuMDA3MjE0LCAwLjAwNzIyMiwgMC4wMDcyMzUsIDAuMDA3MjM4LCAwLjAwNzI0LCAwLjAwNzI0LCAwLjAwNzI0IiwgXAotICAgICAgICAgICIwLjAwNzI4NywgMC4wMDcyOTUsIDAuMDA3MzA4LCAwLjAwNzMxLCAwLjAwNzMxMiwgMC4wMDczMTMsIDAuMDA3MzE0IiwgXAotICAgICAgICAgICIwLjAwNzM5MiwgMC4wMDc0MDEsIDAuMDA3NDEzLCAwLjAwNzQxNiwgMC4wMDc0MjcsIDAuMDA3NDE4LCAwLjAwNzQxOSIsIFwKLSAgICAgICAgICAiMC4wMDc1MDQsIDAuMDA3NTExLCAwLjAwNzUyNSwgMC4wMDc1MjgsIDAuMDA3NTI5LCAwLjAwNzUzLCAwLjAwNzUzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA3MDg3LCAwLjAwNzA5NywgMC4wMDcxMTEsIDAuMDA3MTE0LCAwLjAwNzExNSwgMC4wMDcxMTcsIDAuMDA3MTE3IiwgXAotICAgICAgICAgICIwLjAwNzA4NywgMC4wMDcwOTYsIDAuMDA3MTEsIDAuMDA3MTEzLCAwLjAwNzExNCwgMC4wMDcxMTYsIDAuMDA3MTE3IiwgXAotICAgICAgICAgICIwLjAwNzEyMSwgMC4wMDcxMzEsIDAuMDA3MTQ1LCAwLjAwNzE0OCwgMC4wMDcxNSwgMC4wMDcxNTIsIDAuMDA3MTUyIiwgXAotICAgICAgICAgICIwLjAwNzE4MywgMC4wMDcxOTMsIDAuMDA3MjA3LCAwLjAwNzIxLCAwLjAwNzIxMiwgMC4wMDcyMTMsIDAuMDA3MjE0IiwgXAotICAgICAgICAgICIwLjAwNzI0OCwgMC4wMDcyNTcsIDAuMDA3MjcyLCAwLjAwNzI3NCwgMC4wMDcyNzcsIDAuMDA3Mjc3LCAwLjAwNzI3OCIsIFwKLSAgICAgICAgICAiMC4wMDczNSwgMC4wMDczNywgMC4wMDczODQsIDAuMDA3Mzg4LCAwLjAwNzM4OSwgMC4wMDczOCwgMC4wMDczOTEiLCBcCi0gICAgICAgICAgIjAuMDA3NDQ5LCAwLjAwNzQ1OSwgMC4wMDc0NzMsIDAuMDA3NDc5LCAwLjAwNzQ4MSwgMC4wMDc0ODEsIDAuMDA3NDc5Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihSTikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjM0MjgzOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYzNDI4MzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2MzQyNDQ7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA5MDEyLCAwLjAwOTAyLCAwLjAwOTEwMywgMC4wMDkyMTUsIDAuMDA5MzM4LCAwLjAwOTU2NCwgMC4wMDk3NjQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDkwMjYsIDAuMDA5MDQsIDAuMDA5MTE4LCAwLjAwOTIyOCwgMC4wMDkzNTksIDAuMDA5NTc3LCAwLjAwOTc3MSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhU0UiOwotICAgICAgc2RmX2NvbmQgOiAiU0UgPT0gMSdiMCI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMTA2MjUsIC0wLjEwMTI1LCAtMC4xMDEyNSwgLTAuMTAxMjUsIC0wLjA5NSwgLTAuMDkxMjUsIC0wLjA4ODc1IiwgXAotICAgICAgICAgICItMC4xMTc1LCAtMC4xMTI1LCAtMC4xMDYyNSwgLTAuMTA2MjUsIC0wLjEwNjI1LCAtMC4xMDI1LCAtMC4xIiwgXAotICAgICAgICAgICItMC4xMjM3NSwgLTAuMTE4NzUsIC0wLjExMjUsIC0wLjExMjUsIC0wLjEwNjI1LCAtMC4xMDg3NSwgLTAuMTA2MjUiLCBcCi0gICAgICAgICAgIi0wLjEyMzc1LCAtMC4xMTg3NSwgLTAuMTE4NzUsIC0wLjExMjUsIC0wLjExMjUsIC0wLjEwODc1LCAtMC4xMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMTMsIC0wLjEyNSwgLTAuMTE4NzUsIC0wLjExODc1LCAtMC4xMTg3NSwgLTAuMTE1LCAtMC4xMTI1IiwgXAotICAgICAgICAgICItMC4xMzM3NSwgLTAuMTI4NzUsIC0wLjEyODc1LCAtMC4xMjI1LCAtMC4xMjI1LCAtMC4xMTg3NSwgLTAuMTE2MjUiLCBcCi0gICAgICAgICAgIi0wLjEzNjI1LCAtMC4xMzEyNSwgLTAuMTMxMjUsIC0wLjEyNSwgLTAuMTI1LCAtMC4xMjEyNSwgLTAuMTE4NzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wNSwgLTAuMDQ1LCAtMC4wMzg3NSwgLTAuMDMyNSwgLTAuMDI2MjUsIC0wLjAyMjUsIC0wLjAyIiwgXAotICAgICAgICAgICItMC4wNjEyNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzc1LCAtMC4wMjc1LCAtMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjA2NzUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjA0Mzc1LCAtMC4wMzM3NSwgLTAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjA2NzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjA0LCAtMC4wMzc1IiwgXAotICAgICAgICAgICItMC4wNzM3NSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDQ2MjUsIC0wLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjA3NzUsIC0wLjA2NjI1LCAtMC4wNiwgLTAuMDYsIC0wLjA1Mzc1LCAtMC4wNSwgLTAuMDQxMjUiLCBcCi0gICAgICAgICAgIi0wLjA4LCAtMC4wNzUsIC0wLjA2ODc1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDUyNSwgLTAuMDUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJTRSA9PSAxJ2IwIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMzEyNSwgMC4xMjYyNSwgMC4xMiwgMC4xMTM3NSwgMC4xMTM3NSwgMC4xMSwgMC4xMDc1IiwgXAotICAgICAgICAgICIwLjEzNjI1LCAwLjEzMTI1LCAwLjEyNSwgMC4xMjUsIDAuMTE4NzUsIDAuMTE1LCAwLjExMjUiLCBcCi0gICAgICAgICAgIjAuMTQyNSwgMC4xMzc1LCAwLjEzMTI1LCAwLjEzMTI1LCAwLjEyNSwgMC4xMjEyNSwgMC4xMTg3NSIsIFwKLSAgICAgICAgICAiMC4xNDg3NSwgMC4xNDM3NSwgMC4xMzc1LCAwLjEzMTI1LCAwLjEzMTI1LCAwLjEyNzUsIDAuMTI1IiwgXAotICAgICAgICAgICIwLjE1NSwgMC4xNDM3NSwgMC4xMzc1LCAwLjEzNzUsIDAuMTMxMjUsIDAuMTI3NSwgMC4xMjUiLCBcCi0gICAgICAgICAgIjAuMTU4NzUsIDAuMTQ3NSwgMC4xNDEyNSwgMC4xNDEyNSwgMC4xMzUsIDAuMTM3NSwgMC4xMzUiLCBcCi0gICAgICAgICAgIjAuMTYxMjUsIDAuMTUsIDAuMTUsIDAuMTQzNzUsIDAuMTQzNzUsIDAuMTQsIDAuMTM3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4MTI1LCAwLjA3LCAwLjA2Mzc1LCAwLjA1NzUsIDAuMDUxMjUsIDAuMDQ3NSwgMC4wMzg3NSIsIFwKLSAgICAgICAgICAiMC4wODYyNSwgMC4wODEyNSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA2MjUsIDAuMDUyNSwgMC4wNSIsIFwKLSAgICAgICAgICAiMC4wOTI1LCAwLjA4NzUsIDAuMDc1LCAwLjA2ODc1LCAwLjA2ODc1LCAwLjA1ODc1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICIwLjA5ODc1LCAwLjA4NzUsIDAuMDgxMjUsIDAuMDc1LCAwLjA2ODc1LCAwLjA2NSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiMC4wOTg3NSwgMC4wOTM3NSwgMC4wODEyNSwgMC4wODEyNSwgMC4wNzUsIDAuMDY1LCAwLjA2MjUiLCBcCi0gICAgICAgICAgIjAuMTAyNSwgMC4wOTc1LCAwLjA5MTI1LCAwLjA4NSwgMC4wNzg3NSwgMC4wNjg3NSwgMC4wNjYyNSIsIFwKLSAgICAgICAgICAiMC4xMTEyNSwgMC4xLCAwLjA5Mzc1LCAwLjA4NzUsIDAuMDgxMjUsIDAuMDc3NSwgMC4wNjg3NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oU0UpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTI2MTMxOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTI2MTMxOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTI2MTE4OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNTUwNCwgMC4wMDU1MDMsIDAuMDA1NTgzLCAwLjAwNTY5LCAwLjAwNTgxNiwgMC4wMDYwNDEsIDAuMDA2MjM0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA3NTg2LCAwLjAwNzU5LCAwLjAwNzcwNywgMC4wMDc4NzMsIDAuMDA4MDk1LCAwLjAwODQ3NiwgMC4wMDg3ODkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUQmIUUmIVJOJlNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9FX0VRXzBfQU5fUk5fRVFfMF9BTl9TSV9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAzMTI1LCAtMC4wMjYyNSwgLTAuMDIsIC0wLjAyLCAtMC4wMiwgLTAuMDE2MjUsIC0wLjAxMzc1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDMxMjUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAyNSwgLTAuMDIxMjUsIC0wLjAxODc1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzNzUsIC0wLjAzNzUsIC0wLjAzMzc1LCAtMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wNDM3NSwgLTAuMDQsIC0wLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjA2MTI1LCAtMC4wNTYyNSwgLTAuMDU2MjUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDQ2MjUsIC0wLjA0Mzc1IiwgXAotICAgICAgICAgICItMC4wNzEyNSwgLTAuMDY2MjUsIC0wLjA2NjI1LCAtMC4wNjYyNSwgLTAuMDYsIC0wLjA1NjI1LCAtMC4wNTM3NSIsIFwKLSAgICAgICAgICAiLTAuMDgsIC0wLjA3NSwgLTAuMDc1LCAtMC4wNjg3NSwgLTAuMDY4NzUsIC0wLjA2NSwgLTAuMDYyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAxMjUsIC0wLjAwMTI1LCAwLjAwNSwgMC4wMDUsIDAuMDExMjUsIDAuMDE1LCAwLjAyMzc1IiwgXAotICAgICAgICAgICItMC4wMTc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMCwgMC4wMDYyNSwgMC4wMSwgMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAtMC4wMDYyNSwgLTAuMDAyNSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDg3NSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTUsIC0wLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjA0NjI1LCAtMC4wNDEyNSwgLTAuMDM1LCAtMC4wMzUsIC0wLjAyODc1LCAtMC4wMjUsIC0wLjAxNjI1IiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDM3NSwgLTAuMDI3NSwgLTAuMDI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEJiFFJlJOJiFTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fRV9FUV8wX0FOX1JOX0VRXzFfQU5fU0lfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wNDM3NSwgLTAuMDM4NzUsIC0wLjAzODc1LCAtMC4wMzI1LCAtMC4wMzI1LCAtMC4wMjg3NSwgLTAuMDI2MjUiLCBcCi0gICAgICAgICAgIi0wLjA1NSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wNDM3NSwgLTAuMDQzNzUsIC0wLjA0LCAtMC4wMzc1IiwgXAotICAgICAgICAgICItMC4wNjEyNSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNSwgLTAuMDUsIC0wLjA0NjI1LCAtMC4wNDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDY3NSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDUyNSwgLTAuMDUiLCBcCi0gICAgICAgICAgIi0wLjA2NzUsIC0wLjA2MjUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNTYyNSwgLTAuMDUyNSwgLTAuMDUiLCBcCi0gICAgICAgICAgIi0wLjA3MTI1LCAtMC4wNzI1LCAtMC4wNjYyNSwgLTAuMDY2MjUsIC0wLjA2LCAtMC4wNTYyNSwgLTAuMDUzNzUiLCBcCi0gICAgICAgICAgIi0wLjA4LCAtMC4wNzUsIC0wLjA2ODc1LCAtMC4wNjg3NSwgLTAuMDYyNSwgLTAuMDY1LCAtMC4wNjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIkQmRSZSTiYhU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8xX0FOX0VfRVFfMV9BTl9STl9FUV8xX0FOX1NJX0VRXzAgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDI1LCAtMC4wMiwgLTAuMDEzNzUsIC0wLjAwNzUsIC0wLjAwMTI1LCAwLjAwMjUsIDAuMDA1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDEyNSwgLTAuMDA4NzUsIDAiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxNSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMjUsIC0wLjAxNSwgLTAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMjEyNSwgLTAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjA1ODc1LCAtMC4wNDc1LCAtMC4wNDEyNSwgLTAuMDM1LCAtMC4wMzUsIC0wLjAyNSwgLTAuMDIyNSIsIFwKLSAgICAgICAgICAiLTAuMDYxMjUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzMzc1LCAtMC4wMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEJiFFJiFSTiZTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fRV9FUV8wX0FOX1JOX0VRXzBfQU5fU0lfRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNSwgMC4wNDUsIDAuMDM4NzUsIDAuMDM4NzUsIDAuMDMyNSwgMC4wMjg3NSwgMC4wMjYyNSIsIFwKLSAgICAgICAgICAiMC4wNjEyNSwgMC4wNSwgMC4wNSwgMC4wNDM3NSwgMC4wNDM3NSwgMC4wNCwgMC4wMzc1IiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNTYyNSwgMC4wNSwgMC4wNDYyNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4wOCwgMC4wNjg3NSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA2MjUsIDAuMDU4NzUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIjAuMDg2MjUsIDAuMDgxMjUsIDAuMDc1LCAwLjA2ODc1LCAwLjA2ODc1LCAwLjA2NSwgMC4wNjI1IiwgXAotICAgICAgICAgICIwLjA5NjI1LCAwLjA5MTI1LCAwLjA4NSwgMC4wNzg3NSwgMC4wNzg3NSwgMC4wNzUsIDAuMDcyNSIsIFwKLSAgICAgICAgICAiMC4xMDUsIDAuMSwgMC4wOTM3NSwgMC4wODc1LCAwLjA4NzUsIDAuMDgzNzUsIDAuMDgxMjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzc1LCAwLjAzMjUsIDAuMDI2MjUsIDAuMDIsIDAuMDEzNzUsIDAuMDEsIDAuMDAxMjUiLCBcCi0gICAgICAgICAgIjAuMDQ4NzUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMjUsIDAuMDE4NzUsIDAuMDE1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMDU1LCAwLjA1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDIxMjUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMDY3NSwgMC4wNTYyNSwgMC4wNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzMzc1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiMC4wNzM3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1LCAwLjA0Mzc1LCAwLjA0LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIjAuMDgzNzUsIDAuMDcyNSwgMC4wNjYyNSwgMC4wNiwgMC4wNTM3NSwgMC4wNSwgMC4wNDc1IiwgXAotICAgICAgICAgICIwLjA5MjUsIDAuMDgxMjUsIDAuMDc1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDU4NzUsIDAuMDU2MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEJiFFJlJOJiFTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fRV9FUV8wX0FOX1JOX0VRXzFfQU5fU0lfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTYyNSwgMC4wNDUsIDAuMDM4NzUsIDAuMDMyNSwgMC4wMjYyNSwgMC4wMjI1LCAwLjAyIiwgXAotICAgICAgICAgICIwLjA2MTI1LCAwLjA1NjI1LCAwLjA0Mzc1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDI3NSwgMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMDY3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1LCAwLjA0Mzc1LCAwLjAzMzc1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICIwLjA3Mzc1LCAwLjA2ODc1LCAwLjA1NjI1LCAwLjA1LCAwLjA1LCAwLjA0LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIjAuMDgsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNSwgMC4wNDYyNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4wODM3NSwgMC4wNzg3NSwgMC4wNjYyNSwgMC4wNiwgMC4wNiwgMC4wNSwgMC4wNDc1IiwgXAotICAgICAgICAgICIwLjA4NjI1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1MjUsIDAuMDUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIkQmRSZSTiYhU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8xX0FOX0VfRVFfMV9BTl9STl9FUV8xX0FOX1NJX0VRXzAgPT0gMSdiMSI7Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY4NzUsIDAuMDU3NSwgMC4wNTc1LCAwLjA1MTI1LCAwLjA1MTI1LCAwLjA0NzUsIDAuMDQ1IiwgXAotICAgICAgICAgICIwLjA3Mzc1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDU2MjUsIDAuMDUyNSwgMC4wNSIsIFwKLSAgICAgICAgICAiMC4wOCwgMC4wNzUsIDAuMDY4NzUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNTg3NSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiMC4wODYyNSwgMC4wODEyNSwgMC4wNzUsIDAuMDY4NzUsIDAuMDY4NzUsIDAuMDY1LCAwLjA2MjUiLCBcCi0gICAgICAgICAgIjAuMDkyNSwgMC4wODEyNSwgMC4wNzUsIDAuMDc1LCAwLjA3NSwgMC4wNzEyNSwgMC4wNjg3NSIsIFwKLSAgICAgICAgICAiMC4wOTYyNSwgMC4wOTEyNSwgMC4wODUsIDAuMDc4NzUsIDAuMDc4NzUsIDAuMDc1LCAwLjA3MjUiLCBcCi0gICAgICAgICAgIjAuMDk4NzUsIDAuMDkzNzUsIDAuMDg3NSwgMC4wODEyNSwgMC4wODEyNSwgMC4wNzc1LCAwLjA3NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oU0kpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDU5ODkyODsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA1OTc3NzU7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNTk4OTI4OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzMzNSwgMC4wMDMzMTEsIDAuMDAzMzI0LCAwLjAwMzM1NywgMC4wMDM0MzUsIDAuMDAzNTI3LCAwLjAwMzY0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA1OTMzLCAwLjAwNTkxMSwgMC4wMDU5MjUsIDAuMDA1OTcsIDAuMDA2MDM0LCAwLjAwNjEzLCAwLjAwNjI1NiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJTRSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMzc1LCAtMC4wMzI1LCAtMC4wMjYyNSwgLTAuMDI2MjUsIC0wLjAyLCAtMC4wMjI1LCAtMC4wMiIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAzMTI1LCAtMC4wMzEyNSwgLTAuMDI3NSwgLTAuMDI1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDQzNzUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzc1LCAtMC4wMzM3NSwgLTAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjA1NSwgLTAuMDUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDQzNzUsIC0wLjA0LCAtMC4wMzc1IiwgXAotICAgICAgICAgICItMC4wNjEyNSwgLTAuMDU2MjUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDUsIC0wLjA0NjI1LCAtMC4wNDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDcxMjUsIC0wLjA2NjI1LCAtMC4wNjYyNSwgLTAuMDYsIC0wLjA2LCAtMC4wNTYyNSwgLTAuMDUzNzUiLCBcCi0gICAgICAgICAgIi0wLjA3Mzc1LCAtMC4wNzUsIC0wLjA2ODc1LCAtMC4wNjg3NSwgLTAuMDY4NzUsIC0wLjA2NSwgLTAuMDYyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAxODc1LCAtMC4wMTM3NSwgLTAuMDAxMjUsIC0wLjAwMTI1LCAwLjAwNSwgMC4wMDg3NSwgMC4wMTEyNSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMCwgMC4wMDM3NSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAtMC4wMDI1LCAwIiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwODc1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDE1LCAtMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wNDYyNSwgLTAuMDQxMjUsIC0wLjAzNSwgLTAuMDI4NzUsIC0wLjAyODc1LCAtMC4wMTg3NSwgLTAuMDE2MjUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAyNzUsIC0wLjAxODc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJTRSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTYyNSwgMC4wNTEyNSwgMC4wNDUsIDAuMDM4NzUsIDAuMDM4NzUsIDAuMDM1LCAwLjAzMjUiLCBcCi0gICAgICAgICAgIjAuMDYxMjUsIDAuMDU2MjUsIDAuMDUsIDAuMDUsIDAuMDQzNzUsIDAuMDQsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiMC4wNzM3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1NjI1LCAwLjA1LCAwLjA1MjUsIDAuMDUiLCBcCi0gICAgICAgICAgIjAuMDgsIDAuMDY4NzUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNjI1LCAwLjA1ODc1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICIwLjA4NjI1LCAwLjA3NSwgMC4wNzUsIDAuMDY4NzUsIDAuMDY4NzUsIDAuMDY1LCAwLjA2MjUiLCBcCi0gICAgICAgICAgIjAuMDk2MjUsIDAuMDg1LCAwLjA3ODc1LCAwLjA3ODc1LCAwLjA3MjUsIDAuMDc1LCAwLjA3MjUiLCBcCi0gICAgICAgICAgIjAuMDk4NzUsIDAuMDkzNzUsIDAuMDg3NSwgMC4wODc1LCAwLjA4MTI1LCAwLjA3NzUsIDAuMDc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQzNzUsIDAuMDM4NzUsIDAuMDMyNSwgMC4wMjYyNSwgMC4wMiwgMC4wMTYyNSwgMC4wMDc1IiwgXAotICAgICAgICAgICIwLjA1NSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMjEyNSwgMC4wMTI1IiwgXAotICAgICAgICAgICIwLjA2MTI1LCAwLjA1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDI3NSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4wNjc1LCAwLjA1NjI1LCAwLjA1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDMzNzUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMDczNzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNSwgMC4wNDM3NSwgMC4wNCwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4wNzc1LCAwLjA3MjUsIDAuMDY2MjUsIDAuMDYsIDAuMDUzNzUsIDAuMDQzNzUsIDAuMDQxMjUiLCBcCi0gICAgICAgICAgIjAuMDg2MjUsIDAuMDc1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDUyNSwgMC4wNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IFNFREZGWDEgKgotICogLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoU0VERkZYMSkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAxLjI3NzQ2OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIGZmIChOMzAsTkVUNTM2KSB7Ci0gICAgbmV4dF9zdGF0ZSA6ICIoKFNFIFNJKSArICghU0UgKChFIEQpICsgKCFFICghKCFOMzApKSkpKSkiOwotICAgIGNsb2NrZWRfb24gOiAiQ0siOwotICB9Ci0gIHBpbihDSykgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjIwOTA1OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYyMDc5NDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2MjA5MDU7Ci0gICAgY2xvY2sgOiB0cnVlOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzY4NiwgMC4wMDM2OTIsIDAuMDAzNzY2LCAwLjAwMzg2LCAwLjAwMzk3NiwgMC4wMDQyMDEsIDAuMDA0NDA5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA3NTY5LCAwLjAwNzU3MiwgMC4wMDc2NjQsIDAuMDA3Nzg4LCAwLjAwNzkzNywgMC4wMDgyMTMsIDAuMDA4NDMyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRCYhRSZTRSYhU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX0VfRVFfMF9BTl9TRV9FUV8xX0FOX1NJX0VRXzAgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4xMjI5MTksIDAuMTMxMTQ4LCAwLjEzOTk1NCwgMC4xNDY4MzcsIDAuMTUyMjY5LCAwLjE1OTU4LCAwLjE2NTAyNiIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDYxODQ4LCAwLjA2OTk4MywgMC4wNzg4NDksIDAuMDg1NTYsIDAuMDkwOTIyLCAwLjA5NzkyLCAwLjEwMzE3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihEKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2MTEwNTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MDk5NDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2MTEwNTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDQxODUsIDAuMDA0MTY0LCAwLjAwNDE3LCAwLjAwNDIwNCwgMC4wMDQyNTksIDAuMDA0MzY5LCAwLjAwNDQ3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA4Njc3LCAwLjAwODY2NiwgMC4wMDg2NjksIDAuMDA4Njk1LCAwLjAwODc1LCAwLjAwODg0OSwgMC4wMDg5MzkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiRSYhU0UiOwotICAgICAgc2RmX2NvbmQgOiAiRV9FUV8xX0FOX1NFX0VRXzAgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDY4NzUsIC0wLjA2Mzc1LCAtMC4wNTc1LCAtMC4wNTc1LCAtMC4wNTc1LCAtMC4wNTM3NSwgLTAuMDUxMjUiLCBcCi0gICAgICAgICAgIi0wLjA3Mzc1LCAtMC4wNjg3NSwgLTAuMDYyNSwgLTAuMDYyNSwgLTAuMDYyNSwgLTAuMDU4NzUsIC0wLjA1NjI1IiwgXAotICAgICAgICAgICItMC4wOCwgLTAuMDc1LCAtMC4wNzUsIC0wLjA2ODc1LCAtMC4wNjg3NSwgLTAuMDY1LCAtMC4wNjI1IiwgXAotICAgICAgICAgICItMC4wODYyNSwgLTAuMDgxMjUsIC0wLjA4MTI1LCAtMC4wODEyNSwgLTAuMDc1LCAtMC4wNzc1LCAtMC4wNzUiLCBcCi0gICAgICAgICAgIi0wLjA5MjUsIC0wLjA4NzUsIC0wLjA4NzUsIC0wLjA4NzUsIC0wLjA4MTI1LCAtMC4wODM3NSwgLTAuMDgxMjUiLCBcCi0gICAgICAgICAgIi0wLjEwMjUsIC0wLjA5NzUsIC0wLjA5NzUsIC0wLjA5NzUsIC0wLjA5NzUsIC0wLjA5Mzc1LCAtMC4wOTEyNSIsIFwKLSAgICAgICAgICAiLTAuMTExMjUsIC0wLjEwNjI1LCAtMC4xMDYyNSwgLTAuMTA2MjUsIC0wLjEsIC0wLjEwMjUsIC0wLjEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wNDM3NSwgLTAuMDM4NzUsIC0wLjAzMjUsIC0wLjAyNjI1LCAtMC4wMjYyNSwgLTAuMDE2MjUsIC0wLjAxMzc1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMzEyNSwgLTAuMDI3NSwgLTAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjA1NSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzc1LCAtMC4wMzM3NSwgLTAuMDI1IiwgXAotICAgICAgICAgICItMC4wNjEyNSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjA0LCAtMC4wMzc1IiwgXAotICAgICAgICAgICItMC4wNjc1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNDYyNSwgLTAuMDQzNzUiLCBcCi0gICAgICAgICAgIi0wLjA3MTI1LCAtMC4wNjYyNSwgLTAuMDY2MjUsIC0wLjA2LCAtMC4wNiwgLTAuMDU2MjUsIC0wLjA0NzUiLCBcCi0gICAgICAgICAgIi0wLjA4LCAtMC4wNzUsIC0wLjA2ODc1LCAtMC4wNjg3NSwgLTAuMDYyNSwgLTAuMDU4NzUsIC0wLjA1NjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJFJiFTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJFX0VRXzFfQU5fU0VfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTM3NSwgMC4wODg3NSwgMC4wODI1LCAwLjA3NjI1LCAwLjA3NjI1LCAwLjA3MjUsIDAuMDciLCBcCi0gICAgICAgICAgIjAuMDk4NzUsIDAuMDkzNzUsIDAuMDg3NSwgMC4wODEyNSwgMC4wODEyNSwgMC4wNzc1LCAwLjA3NSIsIFwKLSAgICAgICAgICAiMC4xMTEyNSwgMC4xLCAwLjA5Mzc1LCAwLjA5Mzc1LCAwLjA4NzUsIDAuMDgzNzUsIDAuMDgxMjUiLCBcCi0gICAgICAgICAgIjAuMTE3NSwgMC4xMDYyNSwgMC4xLCAwLjEsIDAuMDkzNzUsIDAuMDk2MjUsIDAuMDkzNzUiLCBcCi0gICAgICAgICAgIjAuMTIzNzUsIDAuMTE4NzUsIDAuMTEyNSwgMC4xMDYyNSwgMC4xMDYyNSwgMC4xMDI1LCAwLjEiLCBcCi0gICAgICAgICAgIjAuMTMzNzUsIDAuMTI4NzUsIDAuMTIyNSwgMC4xMTYyNSwgMC4xMTYyNSwgMC4xMTI1LCAwLjExIiwgXAotICAgICAgICAgICIwLjE0MjUsIDAuMTM3NSwgMC4xMzEyNSwgMC4xMjUsIDAuMTI1LCAwLjEyMTI1LCAwLjExODc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDgxMjUsIDAuMDc2MjUsIDAuMDcsIDAuMDYzNzUsIDAuMDU3NSwgMC4wNDc1LCAwLjA0NSIsIFwKLSAgICAgICAgICAiMC4wOTI1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1ODc1LCAwLjA1IiwgXAotICAgICAgICAgICIwLjA5ODc1LCAwLjA4NzUsIDAuMDgxMjUsIDAuMDc1LCAwLjA2ODc1LCAwLjA2NSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiMC4xMDUsIDAuMDkzNzUsIDAuMDg3NSwgMC4wODEyNSwgMC4wNzUsIDAuMDcxMjUsIDAuMDYyNSIsIFwKLSAgICAgICAgICAiMC4xMTEyNSwgMC4xLCAwLjA5Mzc1LCAwLjA4NzUsIDAuMDgxMjUsIDAuMDc3NSwgMC4wNjg3NSIsIFwKLSAgICAgICAgICAiMC4xMjEyNSwgMC4xMSwgMC4xMDM3NSwgMC4wOTc1LCAwLjA5MTI1LCAwLjA4NzUsIDAuMDc4NzUiLCBcCi0gICAgICAgICAgIjAuMTIzNzUsIDAuMTE4NzUsIDAuMTEyNSwgMC4xMDYyNSwgMC4xLCAwLjA5LCAwLjA4NzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEUpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTU3NDYxOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTU3NDYxOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTU3NDMxOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwODA5NiwgMC4wMDgxMTksIDAuMDA4MjA2LCAwLjAwODMyMiwgMC4wMDg0NjIsIDAuMDA4NzMyLCAwLjAwODkzNCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwOTcyOSwgMC4wMDk3NjksIDAuMDA5ODgxLCAwLjAxMDAzNiwgMC4wMTAyNDgsIDAuMDEwNjA4LCAwLjAxMDkzOCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhU0UiOwotICAgICAgc2RmX2NvbmQgOiAiU0UgPT0gMSdiMCI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDY4NzUsIC0wLjA2Mzc1LCAtMC4wNTc1LCAtMC4wNTEyNSwgLTAuMDUxMjUsIC0wLjA0MTI1LCAtMC4wMzg3NSIsIFwKLSAgICAgICAgICAiLTAuMDgsIC0wLjA3NSwgLTAuMDY4NzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNTI1LCAtMC4wNDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDg2MjUsIC0wLjA4MTI1LCAtMC4wNzUsIC0wLjA2ODc1LCAtMC4wNjI1LCAtMC4wNTg3NSwgLTAuMDUiLCBcCi0gICAgICAgICAgIi0wLjA5MjUsIC0wLjA4NzUsIC0wLjA3NSwgLTAuMDY4NzUsIC0wLjA2ODc1LCAtMC4wNTg3NSwgLTAuMDU2MjUiLCBcCi0gICAgICAgICAgIi0wLjA5ODc1LCAtMC4wODc1LCAtMC4wODEyNSwgLTAuMDc1LCAtMC4wNjg3NSwgLTAuMDY1LCAtMC4wNTYyNSIsIFwKLSAgICAgICAgICAiLTAuMTAyNSwgLTAuMDkxMjUsIC0wLjA4NSwgLTAuMDc4NzUsIC0wLjA3MjUsIC0wLjA2ODc1LCAtMC4wNjYyNSIsIFwKLSAgICAgICAgICAiLTAuMTA1LCAtMC4wOTM3NSwgLTAuMDg3NSwgLTAuMDgxMjUsIC0wLjA3NSwgLTAuMDcxMjUsIC0wLjA2ODc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDM3NSwgLTAuMDMyNSwgLTAuMDI2MjUsIC0wLjAyLCAtMC4wMiwgLTAuMDEsIC0wLjAwNzUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMjEyNSwgLTAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjA1NSwgLTAuMDQzNzUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDI3NSwgLTAuMDI1IiwgXAotICAgICAgICAgICItMC4wNjEyNSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDQzNzUsIC0wLjA0LCAtMC4wMzc1IiwgXAotICAgICAgICAgICItMC4wNjc1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNDYyNSwgLTAuMDQzNzUiLCBcCi0gICAgICAgICAgIi0wLjA3NzUsIC0wLjA3MjUsIC0wLjA3MjUsIC0wLjA2NjI1LCAtMC4wNjYyNSwgLTAuMDU2MjUsIC0wLjA1Mzc1IiwgXAotICAgICAgICAgICItMC4wODYyNSwgLTAuMDgxMjUsIC0wLjA3NSwgLTAuMDc1LCAtMC4wNjg3NSwgLTAuMDY1LCAtMC4wNjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhU0UiOwotICAgICAgc2RmX2NvbmQgOiAiU0UgPT0gMSdiMCI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg3NSwgMC4wODI1LCAwLjA3NjI1LCAwLjA3NjI1LCAwLjA3LCAwLjA2NjI1LCAwLjA2Mzc1IiwgXAotICAgICAgICAgICIwLjA5ODc1LCAwLjA4NzUsIDAuMDg3NSwgMC4wODEyNSwgMC4wODEyNSwgMC4wNzc1LCAwLjA3NSIsIFwKLSAgICAgICAgICAiMC4xMDUsIDAuMSwgMC4wOTM3NSwgMC4wODc1LCAwLjA4NzUsIDAuMDgzNzUsIDAuMDgxMjUiLCBcCi0gICAgICAgICAgIjAuMTE3NSwgMC4xMTI1LCAwLjEwNjI1LCAwLjEsIDAuMSwgMC4wOTYyNSwgMC4wOTM3NSIsIFwKLSAgICAgICAgICAiMC4xMjM3NSwgMC4xMTg3NSwgMC4xMTI1LCAwLjEwNjI1LCAwLjEwNjI1LCAwLjEwMjUsIDAuMSIsIFwKLSAgICAgICAgICAiMC4xNCwgMC4xMzUsIDAuMTI4NzUsIDAuMTIyNSwgMC4xMjI1LCAwLjExODc1LCAwLjExNjI1IiwgXAotICAgICAgICAgICIwLjE0ODc1LCAwLjE0Mzc1LCAwLjEzNzUsIDAuMTMxMjUsIDAuMTMxMjUsIDAuMTI3NSwgMC4xMjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODEyNSwgMC4wNzYyNSwgMC4wNywgMC4wNywgMC4wNywgMC4wNjYyNSwgMC4wNjM3NSIsIFwKLSAgICAgICAgICAiMC4wODYyNSwgMC4wODEyNSwgMC4wODEyNSwgMC4wNzUsIDAuMDc1LCAwLjA3MTI1LCAwLjA2ODc1IiwgXAotICAgICAgICAgICIwLjA5MjUsIDAuMDg3NSwgMC4wODc1LCAwLjA4MTI1LCAwLjA4MTI1LCAwLjA3NzUsIDAuMDc1IiwgXAotICAgICAgICAgICIwLjA5ODc1LCAwLjA5Mzc1LCAwLjA4NzUsIDAuMDg3NSwgMC4wODc1LCAwLjA4Mzc1LCAwLjA4MTI1IiwgXAotICAgICAgICAgICIwLjA5ODc1LCAwLjA5Mzc1LCAwLjA5Mzc1LCAwLjA4NzUsIDAuMDg3NSwgMC4wODM3NSwgMC4wODEyNSIsIFwKLSAgICAgICAgICAiMC4xMDg3NSwgMC4wOTc1LCAwLjA5NzUsIDAuMDk3NSwgMC4wOTEyNSwgMC4wODc1LCAwLjA4NSIsIFwKLSAgICAgICAgICAiMC4xMTc1LCAwLjEwNjI1LCAwLjEsIDAuMSwgMC4wOTM3NSwgMC4wOTYyNSwgMC4wOTM3NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjMzOTUzMjsKLSAgICBmdW5jdGlvbiA6ICJOMzAiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5vbl91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcmlzaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5ODIwOCwgMC4xMTcwMDIsIDAuMjIzMTQzLCAwLjMxNjQxMiwgMC40NDA3NDMsIDAuNjg5ODUxLCAwLjg0NTc5NiIsIFwKLSAgICAgICAgICAiMC4xMDYzMTUsIDAuMTI1MTEyLCAwLjIzMTIwNiwgMC4zMjQ1NzEsIDAuNDQ4ODU2LCAwLjY5NzcyOCwgMC44NTM4NjIiLCBcCi0gICAgICAgICAgIjAuMTE1MDQsIDAuMTMzODM3LCAwLjIzOTkzLCAwLjMzMzI5MiwgMC40NTc1ODYsIDAuNzA2NjE4LCAwLjg2MjU4IiwgXAotICAgICAgICAgICIwLjEyMTc2NCwgMC4xNDA1NjMsIDAuMjQ2NjQzLCAwLjMzOTk5NSwgMC40NjQzNzIsIDAuNzEzMzUzLCAwLjg2OTMyNiIsIFwKLSAgICAgICAgICAiMC4xMjcxMDEsIDAuMTQ1ODk0LCAwLjI1MTkwNiwgMC4zNDUzNDMsIDAuNDY5NjIxLCAwLjcxODY3NiwgMC44NzQ2NDEiLCBcCi0gICAgICAgICAgIjAuMTM0MzI5LCAwLjE1MzEwNiwgMC4yNTkzOCwgMC4zNTI0ODksIDAuNDc2ODI4LCAwLjcyNTkyLCAwLjg4MTg4NyIsIFwKLSAgICAgICAgICAiMC4xMzk1NzEsIDAuMTU4MzY0LCAwLjI2NDM1NSwgMC4zNTc2NzgsIDAuNDgyMTI4LCAwLjczMTE4MywgMC44ODcxNSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzM5MTksIDAuMTExNzUsIDAuMzM0Nzk2LCAwLjUzMjczOCwgMC43OTY4LCAxLjMyNDc5LCAxLjY1NTExIiwgXAotICAgICAgICAgICIwLjA3MzkxNiwgMC4xMTE3NDcsIDAuMzM0ODA3LCAwLjUzMjc0MywgMC43OTYzNDEsIDEuMzI0NTksIDEuNjU0NzgiLCBcCi0gICAgICAgICAgIjAuMDczOTE4LCAwLjExMTc0NywgMC4zMzQ4MDYsIDAuNTMyNzM5LCAwLjc5Njc5OCwgMS4zMjQ3MywgMS42NTQ4IiwgXAotICAgICAgICAgICIwLjA3MzkyMiwgMC4xMTE3NDYsIDAuMzM0ODAxLCAwLjUzMjc0MiwgMC43OTY3NzYsIDEuMzI0NzUsIDEuNjU0OCIsIFwKLSAgICAgICAgICAiMC4wNzM4OTMsIDAuMTExODg0LCAwLjMzNDYwNCwgMC41MzIzNzksIDAuNzk2Nzg0LCAxLjMyNDcyLCAxLjY1NDciLCBcCi0gICAgICAgICAgIjAuMDczNjg2LCAwLjExMTk1NywgMC4zMzQ3NywgMC41MzI2NTIsIDAuNzk2NzEsIDEuMzI0NzEsIDEuNjU0OTIiLCBcCi0gICAgICAgICAgIjAuMDczNTEzLCAwLjExMjEzOSwgMC4zMzQ2MDcsIDAuNTMyMzQ4LCAwLjc5NjY4NCwgMS4zMjQ2OCwgMS42NTQ5MSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDgzMDEsIDAuMTI2NTc4LCAwLjIyOTM3NSwgMC4zMjAzMjIsIDAuNDQxMDM1LCAwLjY4MjYzMiwgMC44MzM3ODkiLCBcCi0gICAgICAgICAgIjAuMTE2NTMyLCAwLjEzNDgyOSwgMC4yMzc4NjMsIDAuMzI4NTM2LCAwLjQ0OTI5NCwgMC42OTA5LCAwLjg0MjA3NSIsIFwKLSAgICAgICAgICAiMC4xMjUzMzYsIDAuMTQzNjMyLCAwLjI0NjY1MywgMC4zMzczNTcsIDAuNDU4MDkyLCAwLjY5OTc3NCwgMC44NTA5MDQiLCBcCi0gICAgICAgICAgIjAuMTMyMjI2LCAwLjE1MDUxOCwgMC4yNTM2OTcsIDAuMzQ0MzU4LCAwLjQ2NDk2MSwgMC43MDY2LCAwLjg1Nzc3OCIsIFwKLSAgICAgICAgICAiMC4xMzc2NTcsIDAuMTU1OTUsIDAuMjU5MTM3LCAwLjM0OTY0OSwgMC40NzAzOTUsIDAuNzEyMTgyLCAwLjg2MzE5IiwgXAotICAgICAgICAgICIwLjE0NTA2NSwgMC4xNjMzMTYsIDAuMjY2MzI1LCAwLjM1NzIzMiwgMC40Nzc4MDMsIDAuNzE5NTAxLCAwLjg3MDU1IiwgXAotICAgICAgICAgICIwLjE1MDQwOSwgMC4xNjg2NywgMC4yNzE3MjQsIDAuMzYyMTU3LCAwLjQ4MzIzNywgMC43MjQ4NjYsIDAuODc1OTQyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3MDU1NSwgMC4xMDcxMSwgMC4zMTY4MTMsIDAuNTAyODYyLCAwLjc1MTA0LCAxLjI0ODgxLCAxLjU2MDQ4IiwgXAotICAgICAgICAgICIwLjA3MDM2LCAwLjEwNzIwNCwgMC4zMTY3MTYsIDAuNTAzMzE2LCAwLjc1MTIxMywgMS4yNDkzNSwgMS41NjAyIiwgXAotICAgICAgICAgICIwLjA3MDM1OSwgMC4xMDcyMjQsIDAuMzE2NjYxLCAwLjUwMzIxMywgMC43NTEyMjcsIDEuMjQ4OTUsIDEuNTYwMzciLCBcCi0gICAgICAgICAgIjAuMDcwNTUzLCAwLjEwNzIyMiwgMC4zMTY5NTcsIDAuNTAyODE5LCAwLjc1MTA0MiwgMS4yNDg3MSwgMS41NjA1IiwgXAotICAgICAgICAgICIwLjA3MDU1NCwgMC4xMDcyMTEsIDAuMzE2ODA0LCAwLjUwMzMzLCAwLjc1MTAzOSwgMS4yNDksIDEuNTYwNDciLCBcCi0gICAgICAgICAgIjAuMDcwNTc1LCAwLjEwNzIzMSwgMC4zMTY5NjIsIDAuNTAzMjc5LCAwLjc1MTAwOSwgMS4yNDk0MiwgMS41NjA1MyIsIFwKLSAgICAgICAgICAiMC4wNzAyMTgsIDAuMTA2ODMzLCAwLjMxNjk4OSwgMC41MDMyNTMsIDAuNzUwODAzLCAxLjI0OTM4LCAxLjU2MDIyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNTkwNSwgMC4wMDU5MTUsIDAuMDA1OTMsIDAuMDA1OTMzLCAwLjAwNTkzNSwgMC4wMDU5MzYsIDAuMDA1OTM3IiwgXAotICAgICAgICAgICIwLjAwNTg5NywgMC4wMDU5MDgsIDAuMDA1OTIzLCAwLjAwNTkyNiwgMC4wMDU5MjgsIDAuMDA1OTI5LCAwLjAwNTkzIiwgXAotICAgICAgICAgICIwLjAwNTk0NSwgMC4wMDU5NTYsIDAuMDA1OTcxLCAwLjAwNTk3NCwgMC4wMDU5NzYsIDAuMDA1OTc3LCAwLjAwNTk3OCIsIFwKLSAgICAgICAgICAiMC4wMDU5OTgsIDAuMDA2MDA5LCAwLjAwNjAyNCwgMC4wMDYwMjcsIDAuMDA2MDI5LCAwLjAwNjAzMSwgMC4wMDYwMzEiLCBcCi0gICAgICAgICAgIjAuMDA2MDY4LCAwLjAwNjA3OSwgMC4wMDYwOTMsIDAuMDA2MDk2LCAwLjAwNjA5OSwgMC4wMDYxLCAwLjAwNjEwMSIsIFwKLSAgICAgICAgICAiMC4wMDYxNjUsIDAuMDA2MTc0LCAwLjAwNjE5MSwgMC4wMDYxOTMsIDAuMDA2MjA5LCAwLjAwNjE5NywgMC4wMDYyMTEiLCBcCi0gICAgICAgICAgIjAuMDA2MjYzLCAwLjAwNjI3MiwgMC4wMDYyODgsIDAuMDA2MjksIDAuMDA2Mjk0LCAwLjAwNjI5NCwgMC4wMDYyOTUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDY5MTYsIDAuMDA2OTI2LCAwLjAwNjk0LCAwLjAwNjk0NCwgMC4wMDY5NDYsIDAuMDA2OTQ2LCAwLjAwNjk0NyIsIFwKLSAgICAgICAgICAiMC4wMDY5MTgsIDAuMDA2OTI4LCAwLjAwNjk0MiwgMC4wMDY5NDUsIDAuMDA2OTQ3LCAwLjAwNjk0OCwgMC4wMDY5NDkiLCBcCi0gICAgICAgICAgIjAuMDA2OTc2LCAwLjAwNjk4NSwgMC4wMDcsIDAuMDA3MDAzLCAwLjAwNzAwNSwgMC4wMDcwMDYsIDAuMDA3MDA3IiwgXAotICAgICAgICAgICIwLjAwNzAzMSwgMC4wMDcwNDEsIDAuMDA3MDU2LCAwLjAwNzA1OSwgMC4wMDcwNiwgMC4wMDcwNjIsIDAuMDA3MDYyIiwgXAotICAgICAgICAgICIwLjAwNzEwNiwgMC4wMDcxMTYsIDAuMDA3MTMsIDAuMDA3MTMzLCAwLjAwNzEzNSwgMC4wMDcxMzYsIDAuMDA3MTM2IiwgXAotICAgICAgICAgICIwLjAwNzIyMywgMC4wMDcyMzYsIDAuMDA3MjM2LCAwLjAwNzI1LCAwLjAwNzI1MiwgMC4wMDcyNDIsIDAuMDA3MjQyIiwgXAotICAgICAgICAgICIwLjAwNzMxNiwgMC4wMDczMjcsIDAuMDA3MzQ0LCAwLjAwNzM0NywgMC4wMDczNDYsIDAuMDA3MzQ2LCAwLjAwNzM0OSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUU4pICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4zMzM0MjE7Ci0gICAgZnVuY3Rpb24gOiAiTkVUNTM2IjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBub25fdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJpc2luZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMjI5MTksIDAuMTQxNjQ5LCAwLjI0NzQxMiwgMC4zNDA3MjUsIDAuNDY1MTQ3LCAwLjcxMzk2NSwgMC44Njk1NjgiLCBcCi0gICAgICAgICAgIjAuMTMxMTQ4LCAwLjE0OTg3NCwgMC4yNTU2MzYsIDAuMzQ4OTQ5LCAwLjQ3MzQwNywgMC43MjIxODcsIDAuODc3NzU3IiwgXAotICAgICAgICAgICIwLjEzOTk1NCwgMC4xNTg2ODQsIDAuMjY0NDM5LCAwLjM1Nzc1NywgMC40ODIxNzcsIDAuNzMxMDExLCAwLjg4NjU3NSIsIFwKLSAgICAgICAgICAiMC4xNDY4MzcsIDAuMTY1NTY3LCAwLjI3MTMzLCAwLjM2NDY0MiwgMC40ODkwNjYsIDAuNzM3ODgxLCAwLjg5MzQ5IiwgXAotICAgICAgICAgICIwLjE1MjI2OSwgMC4xNzEsIDAuMjc2NzY0LCAwLjM3MDA3NSwgMC40OTQ0OTcsIDAuNzQzMzE3LCAwLjg5ODkxNCIsIFwKLSAgICAgICAgICAiMC4xNTk2ODQsIDAuMTc4NDExLCAwLjI4NDE3LCAwLjM3NzM3NSwgMC41MDE4ODUsIDAuNzUwNzM5LCAwLjkwNjMyMyIsIFwKLSAgICAgICAgICAiMC4xNjUwMjYsIDAuMTgzNzcyLCAwLjI4OTUxNSwgMC4zODI4MjYsIDAuNTA3MjI4LCAwLjc1NjA5MywgMC45MTE2NzUiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDcyMDM3LCAwLjExMDk3NCwgMC4zMzQ0NywgMC41MzIyODIsIDAuNzk1NzU5LCAxLjMyMjc5LCAxLjY1MjI2IiwgXAotICAgICAgICAgICIwLjA3MjA0NiwgMC4xMTA5MzksIDAuMzM0NDQyLCAwLjUzMjI4NCwgMC43OTU3NjQsIDEuMzIyODMsIDEuNjUyMjkiLCBcCi0gICAgICAgICAgIjAuMDcyMDQzLCAwLjExMDk3NSwgMC4zMzQxOCwgMC41MzIyOTcsIDAuNzk1NzY4LCAxLjMyMjg0LCAxLjY1MjMxIiwgXAotICAgICAgICAgICIwLjA3MjAzNywgMC4xMTA5NzQsIDAuMzM0NTY4LCAwLjUzMTYzNCwgMC43OTU3NjEsIDEuMzIyODQsIDEuNjUyMjciLCBcCi0gICAgICAgICAgIjAuMDcyMDQsIDAuMTEwOTc0LCAwLjMzNDQ2OSwgMC41MzIyNzMsIDAuNzk1NzY0LCAxLjMyMjg0LCAxLjY1MjI3IiwgXAotICAgICAgICAgICIwLjA3MjA1OCwgMC4xMTA5ODIsIDAuMzM0NTcxLCAwLjUzMTY2MSwgMC43OTU3MjMsIDEuMzIyNzUsIDEuNjUyMjQiLCBcCi0gICAgICAgICAgIjAuMDcyMDQ4LCAwLjExMDk5OCwgMC4zMzQ1ODgsIDAuNTMxOTQ1LCAwLjc5NTcyOSwgMS4zMjI3LCAxLjY1MjI4Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExMzI3MSwgMC4xMzE0NTQsIDAuMjM0MDM4LCAwLjMyNDU0NCwgMC40NDUyMSwgMC42ODY1MjIsIDAuODM3MzU5IiwgXAotICAgICAgICAgICIwLjEyMTM3OSwgMC4xMzk1NjEsIDAuMjQyMTQ1LCAwLjMzMjY2MSwgMC40NTMzMzgsIDAuNjk0NjMzLCAwLjg0NTQ2MSIsIFwKLSAgICAgICAgICAiMC4xMzAxMDMsIDAuMTQ4Mjg2LCAwLjI1MDg2OCwgMC4zNDEzODUsIDAuNDYyMDM3LCAwLjcwMzQyMywgMC44NTQyMTMiLCBcCi0gICAgICAgICAgIjAuMTM2ODMyLCAwLjE1NTAxNSwgMC4yNTc2LCAwLjM0ODExNCwgMC40Njg3NjUsIDAuNzEwMTU1LCAwLjg2MDk0MiIsIFwKLSAgICAgICAgICAiMC4xNDIxNjcsIDAuMTYwMzQ5LCAwLjI2MjkzMywgMC4zNTM0NjUsIDAuNDc0MTEsIDAuNzE1NDEsIDAuODY2MjMzIiwgXAotICAgICAgICAgICIwLjE0OTM5NywgMC4xNjc1NjQsIDAuMjcwMTYxLCAwLjM2MDY2MiwgMC40ODEyNjMsIDAuNzIyNzIyLCAwLjg3MzUiLCBcCi0gICAgICAgICAgIjAuMTU0NjM5LCAwLjE3MjgyMiwgMC4yNzU0MTEsIDAuMzY1OTA4LCAwLjQ4NjU4MiwgMC43Mjc5NzksIDAuODc4NzUxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2ODI3OSwgMC4xMDQ4OTYsIDAuMzE1NTY2LCAwLjUwMjEyNCwgMC43NTA3OTEsIDEuMjQ4MjcsIDEuNTU5MjQiLCBcCi0gICAgICAgICAgIjAuMDY4MjcxLCAwLjEwNDg5NywgMC4zMTU1ODQsIDAuNTAyMTI3LCAwLjc1MDc5NCwgMS4yNDc3NCwgMS41NTkwNiIsIFwKLSAgICAgICAgICAiMC4wNjgyNywgMC4xMDQ4OTcsIDAuMzE1NTgzLCAwLjUwMjEyNSwgMC43NTA3OTUsIDEuMjQ4MTYsIDEuNTU5MDUiLCBcCi0gICAgICAgICAgIjAuMDY4MjczLCAwLjEwNDg5NywgMC4zMTU1NzQsIDAuNTAyMTM5LCAwLjc1MDc1OCwgMS4yNDgxNiwgMS41NTkxIiwgXAotICAgICAgICAgICIwLjA2ODI3NywgMC4xMDQ4OTUsIDAuMzE1NDg3LCAwLjUwMTkzNiwgMC43NTA3NTgsIDEuMjQ4MTUsIDEuNTU5MDUiLCBcCi0gICAgICAgICAgIjAuMDY4Mjk1LCAwLjEwNDg5NCwgMC4zMTU1MTUsIDAuNTAyMDExLCAwLjc1MDY0NCwgMS4yNDgwNywgMS41NTg5MSIsIFwKLSAgICAgICAgICAiMC4wNjgzNzYsIDAuMTA0OSwgMC4zMTU1MDUsIDAuNTAxNzk2LCAwLjc1MDY1MSwgMS4yNDc5OCwgMS41NTg4NyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDY5MTYsIDAuMDA2OTI2LCAwLjAwNjk0LCAwLjAwNjk0NCwgMC4wMDY5NDYsIDAuMDA2OTQ2LCAwLjAwNjk0NyIsIFwKLSAgICAgICAgICAiMC4wMDY5MTgsIDAuMDA2OTI4LCAwLjAwNjk0MiwgMC4wMDY5NDUsIDAuMDA2OTQ3LCAwLjAwNjk0OCwgMC4wMDY5NDkiLCBcCi0gICAgICAgICAgIjAuMDA2OTc2LCAwLjAwNjk4NSwgMC4wMDcsIDAuMDA3MDAzLCAwLjAwNzAwNSwgMC4wMDcwMDYsIDAuMDA3MDA3IiwgXAotICAgICAgICAgICIwLjAwNzAzMSwgMC4wMDcwNDEsIDAuMDA3MDU2LCAwLjAwNzA1OSwgMC4wMDcwNiwgMC4wMDcwNjIsIDAuMDA3MDYyIiwgXAotICAgICAgICAgICIwLjAwNzEwNiwgMC4wMDcxMTYsIDAuMDA3MTMsIDAuMDA3MTMzLCAwLjAwNzEzNSwgMC4wMDcxMzYsIDAuMDA3MTM2IiwgXAotICAgICAgICAgICIwLjAwNzIyMywgMC4wMDcyMzYsIDAuMDA3MjM2LCAwLjAwNzI1LCAwLjAwNzI1MiwgMC4wMDcyNDIsIDAuMDA3MjQyIiwgXAotICAgICAgICAgICIwLjAwNzMxNiwgMC4wMDczMjcsIDAuMDA3MzQ0LCAwLjAwNzM0NywgMC4wMDczNDYsIDAuMDA3MzQ2LCAwLjAwNzM0OSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNTkwNSwgMC4wMDU5MTUsIDAuMDA1OTMsIDAuMDA1OTMzLCAwLjAwNTkzNSwgMC4wMDU5MzYsIDAuMDA1OTM3IiwgXAotICAgICAgICAgICIwLjAwNTg5NywgMC4wMDU5MDgsIDAuMDA1OTIzLCAwLjAwNTkyNiwgMC4wMDU5MjgsIDAuMDA1OTI5LCAwLjAwNTkzIiwgXAotICAgICAgICAgICIwLjAwNTk0NSwgMC4wMDU5NTYsIDAuMDA1OTcxLCAwLjAwNTk3NCwgMC4wMDU5NzYsIDAuMDA1OTc3LCAwLjAwNTk3OCIsIFwKLSAgICAgICAgICAiMC4wMDU5OTgsIDAuMDA2MDA5LCAwLjAwNjAyNCwgMC4wMDYwMjcsIDAuMDA2MDI5LCAwLjAwNjAzMSwgMC4wMDYwMzEiLCBcCi0gICAgICAgICAgIjAuMDA2MDY4LCAwLjAwNjA3OSwgMC4wMDYwOTMsIDAuMDA2MDk2LCAwLjAwNjA5OSwgMC4wMDYxLCAwLjAwNjEwMSIsIFwKLSAgICAgICAgICAiMC4wMDYxNjUsIDAuMDA2MTc0LCAwLjAwNjE5MSwgMC4wMDYxOTMsIDAuMDA2MjA5LCAwLjAwNjE5NywgMC4wMDYyMTEiLCBcCi0gICAgICAgICAgIjAuMDA2MjYzLCAwLjAwNjI3MiwgMC4wMDYyODgsIDAuMDA2MjksIDAuMDA2Mjk0LCAwLjAwNjI5NCwgMC4wMDYyOTUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFNFKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDEyMDI0NTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDEyMDI0NTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDEyMDIzNzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDYwNDUsIDAuMDA2MDU4LCAwLjAwNjE1MiwgMC4wMDYyNjcsIDAuMDA2NDMzLCAwLjAwNjY1MiwgMC4wMDY4NTkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDc3NzMsIDAuMDA3Nzc1LCAwLjAwNzg4MywgMC4wMDgwNDEsIDAuMDA4MjY2LCAwLjAwODYxNCwgMC4wMDg5NDUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUQmIUUmIVNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9FX0VRXzBfQU5fU0lfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wNDM3NSwgLTAuMDM4NzUsIC0wLjAzMjUsIC0wLjAzMjUsIC0wLjAzMjUsIC0wLjAyODc1LCAtMC4wMjYyNSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjA0Mzc1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDM3NSwgLTAuMDMzNzUsIC0wLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjA1NSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNSwgLTAuMDUsIC0wLjA0NjI1LCAtMC4wNDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDYxMjUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNTYyNSwgLTAuMDU2MjUsIC0wLjA1MjUsIC0wLjA1IiwgXAotICAgICAgICAgICItMC4wNjc1LCAtMC4wNjI1LCAtMC4wNjI1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDUyNSwgLTAuMDU2MjUiLCBcCi0gICAgICAgICAgIi0wLjA3NzUsIC0wLjA3MjUsIC0wLjA2NjI1LCAtMC4wNjYyNSwgLTAuMDY2MjUsIC0wLjA2MjUsIC0wLjA2IiwgXAotICAgICAgICAgICItMC4wOCwgLTAuMDc1LCAtMC4wNjg3NSwgLTAuMDY4NzUsIC0wLjA2ODc1LCAtMC4wNjUsIC0wLjA2MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUQmIUUmU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX0VfRVFfMF9BTl9TSV9FUV8xID09IDEnYjEiOwotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAxMjUsIC0wLjAwNzUsIC0wLjAwMTI1LCAwLjAwNSwgMC4wMDUsIDAuMDA4NzUsIDAuMDE3NSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxMjUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLCAwLjAwMzc1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDEyNSwgLTAuMDAyNSwgMCIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTg3NSwgLTAuMDE1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAyMTI1LCAtMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDUyNSwgLTAuMDQ3NSwgLTAuMDQxMjUsIC0wLjAzNSwgLTAuMDM1LCAtMC4wMzEyNSwgLTAuMDIyNSIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzM3NSwgLTAuMDMxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUQmRSZTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fRV9FUV8xX0FOX1NJX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDMxMjUsIC0wLjAyNjI1LCAtMC4wMjYyNSwgLTAuMDIsIC0wLjAyLCAtMC4wMTYyNSwgLTAuMDEzNzUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMjc1LCAtMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wNDM3NSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzNzUsIC0wLjAzMzc1LCAtMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDYxMjUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wNCwgLTAuMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDY3NSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA1NjI1LCAtMC4wNTYyNSwgLTAuMDUyNSwgLTAuMDUiLCBcCi0gICAgICAgICAgIi0wLjA3NzUsIC0wLjA3MjUsIC0wLjA2NjI1LCAtMC4wNjYyNSwgLTAuMDY2MjUsIC0wLjA2MjUsIC0wLjA2IiwgXAotICAgICAgICAgICItMC4wODYyNSwgLTAuMDgxMjUsIC0wLjA3NSwgLTAuMDc1LCAtMC4wNjg3NSwgLTAuMDcxMjUsIC0wLjA2ODc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIkQmRSYhU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8xX0FOX0VfRVFfMV9BTl9TSV9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAyNSwgLTAuMDIsIC0wLjAxMzc1LCAtMC4wMDc1LCAtMC4wMDEyNSwgMC4wMDI1LCAwLjAwNSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAxMjUsIC0wLjAwMjUsIDAiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTg3NSwgLTAuMDA4NzUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDE1LCAtMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAyMTI1LCAtMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wNTI1LCAtMC4wNDc1LCAtMC4wNDEyNSwgLTAuMDM1LCAtMC4wMjg3NSwgLTAuMDI1LCAtMC4wMjI1IiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAyNzUsIC0wLjAyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUQmIUUmIVNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9FX0VRXzBfQU5fU0lfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTYyNSwgMC4wNDUsIDAuMDM4NzUsIDAuMDMyNSwgMC4wMjYyNSwgMC4wMjI1LCAwLjAxMzc1IiwgXAotICAgICAgICAgICIwLjA2MTI1LCAwLjA1NjI1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDM3NSwgMC4wMjc1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiMC4wNjc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDUsIDAuMDQzNzUsIDAuMDMzNzUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMDczNzUsIDAuMDY4NzUsIDAuMDU2MjUsIDAuMDUsIDAuMDQzNzUsIDAuMDQsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiMC4wOCwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1LCAwLjA0NjI1LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIjAuMDgzNzUsIDAuMDc4NzUsIDAuMDY2MjUsIDAuMDYsIDAuMDUzNzUsIDAuMDUsIDAuMDQxMjUiLCBcCi0gICAgICAgICAgIjAuMDg2MjUsIDAuMDgxMjUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNjI1LCAwLjA1MjUsIDAuMDUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEJiFFJlNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9FX0VRXzBfQU5fU0lfRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTYyNSwgMC4wNTEyNSwgMC4wNDUsIDAuMDM4NzUsIDAuMDM4NzUsIDAuMDM1LCAwLjAzMjUiLCBcCi0gICAgICAgICAgIjAuMDYxMjUsIDAuMDU2MjUsIDAuMDUsIDAuMDQzNzUsIDAuMDQzNzUsIDAuMDQsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiMC4wNzM3NSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1NjI1LCAwLjA1MjUsIDAuMDUiLCBcCi0gICAgICAgICAgIjAuMDgsIDAuMDc1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDYyNSwgMC4wNTg3NSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiMC4wOTI1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNzUsIDAuMDY4NzUsIDAuMDY1LCAwLjA2MjUiLCBcCi0gICAgICAgICAgIjAuMTAyNSwgMC4wOTc1LCAwLjA5MTI1LCAwLjA4NSwgMC4wNzg3NSwgMC4wODEyNSwgMC4wNzg3NSIsIFwKLSAgICAgICAgICAiMC4xMTEyNSwgMC4xLCAwLjA5Mzc1LCAwLjA5Mzc1LCAwLjA4NzUsIDAuMDgzNzUsIDAuMDgxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEJkUmU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX0VfRVFfMV9BTl9TSV9FUV8xID09IDEnYjEiOwotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1LCAwLjA0NSwgMC4wMzg3NSwgMC4wMzI1LCAwLjAyNjI1LCAwLjAxNjI1LCAwLjAxMzc1IiwgXAotICAgICAgICAgICIwLjA2MTI1LCAwLjA1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDI3NSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4wNjc1LCAwLjA2MjUsIDAuMDUsIDAuMDQzNzUsIDAuMDQzNzUsIDAuMDMzNzUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMDczNzUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNSwgMC4wNCwgMC4wMzc1IiwgXAotICAgICAgICAgICIwLjA4NjI1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1MjUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMDk2MjUsIDAuMDg1LCAwLjA3ODc1LCAwLjA3MjUsIDAuMDY2MjUsIDAuMDYyNSwgMC4wNTM3NSIsIFwKLSAgICAgICAgICAiMC4xMDUsIDAuMDkzNzUsIDAuMDg3NSwgMC4wODEyNSwgMC4wNzUsIDAuMDcxMjUsIDAuMDYyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiRCZFJiFTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzFfQU5fRV9FUV8xX0FOX1NJX0VRXzAgPT0gMSdiMSI7Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY4NzUsIDAuMDYzNzUsIDAuMDU3NSwgMC4wNTEyNSwgMC4wNTEyNSwgMC4wNDc1LCAwLjA0NSIsIFwKLSAgICAgICAgICAiMC4wOCwgMC4wNjg3NSwgMC4wNjI1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDUyNSwgMC4wNSIsIFwKLSAgICAgICAgICAiMC4wODYyNSwgMC4wODEyNSwgMC4wNzUsIDAuMDY4NzUsIDAuMDY4NzUsIDAuMDY1LCAwLjA2MjUiLCBcCi0gICAgICAgICAgIjAuMDkyNSwgMC4wODc1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNzUsIDAuMDcxMjUsIDAuMDY4NzUiLCBcCi0gICAgICAgICAgIjAuMDk4NzUsIDAuMDg3NSwgMC4wODEyNSwgMC4wODEyNSwgMC4wNzUsIDAuMDcxMjUsIDAuMDY4NzUiLCBcCi0gICAgICAgICAgIjAuMTAyNSwgMC4wOTc1LCAwLjA5MTI1LCAwLjA4NSwgMC4wODUsIDAuMDgxMjUsIDAuMDc4NzUiLCBcCi0gICAgICAgICAgIjAuMTA1LCAwLjEsIDAuMDkzNzUsIDAuMDg3NSwgMC4wODc1LCAwLjA4Mzc1LCAwLjA4MTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTSSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjY1Njg0OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDY2NDI5NDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2NjU2ODQ7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzMjA4LCAwLjAwMzE4NiwgMC4wMDMyLCAwLjAwMzI0NSwgMC4wMDMzMDIsIDAuMDAzNDEzLCAwLjAwMzUzOCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNjQ1LCAwLjAwNjQzMywgMC4wMDY0NDMsIDAuMDA2NDg4LCAwLjAwNjU1NiwgMC4wMDY2NDgsIDAuMDA2NzY2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlNFIjsKLSAgICAgIHNkZl9jb25kIDogIlNFID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAzNzUsIC0wLjAzMjUsIC0wLjAzMjUsIC0wLjAyNjI1LCAtMC4wMjYyNSwgLTAuMDIyNSwgLTAuMDIiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzNzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMzEyNSwgLTAuMDI3NSwgLTAuMDI1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDQzNzUsIC0wLjA0Mzc1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDMzNzUsIC0wLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wNjEyNSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjA0LCAtMC4wMzc1IiwgXAotICAgICAgICAgICItMC4wNjc1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNDYyNSwgLTAuMDQzNzUiLCBcCi0gICAgICAgICAgIi0wLjA3MTI1LCAtMC4wNjYyNSwgLTAuMDY2MjUsIC0wLjA2NjI1LCAtMC4wNiwgLTAuMDU2MjUsIC0wLjA1Mzc1IiwgXAotICAgICAgICAgICItMC4wOCwgLTAuMDc1LCAtMC4wNzUsIC0wLjA2ODc1LCAtMC4wNjg3NSwgLTAuMDY1LCAtMC4wNjI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDE4NzUsIC0wLjAxMzc1LCAtMC4wMDc1LCAtMC4wMDEyNSwgMC4wMDUsIDAuMDA4NzUsIDAuMDE3NSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMCwgMC4wMDM3NSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAtMC4wMDI1LCAwIiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwODc1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxNSwgLTAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDQ2MjUsIC0wLjA0MTI1LCAtMC4wMzUsIC0wLjAyODc1LCAtMC4wMjg3NSwgLTAuMDE4NzUsIC0wLjAxNjI1IiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDI3NSwgLTAuMDI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJTRSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjI1LCAwLjA1MTI1LCAwLjA0NSwgMC4wNDUsIDAuMDM4NzUsIDAuMDM1LCAwLjAzMjUiLCBcCi0gICAgICAgICAgIjAuMDY3NSwgMC4wNTYyNSwgMC4wNTYyNSwgMC4wNSwgMC4wNDM3NSwgMC4wNDYyNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4wNzM3NSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1NjI1LCAwLjA1MjUsIDAuMDUiLCBcCi0gICAgICAgICAgIjAuMDgsIDAuMDc1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDYyNSwgMC4wNTg3NSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiMC4wODYyNSwgMC4wODEyNSwgMC4wNzUsIDAuMDY4NzUsIDAuMDY4NzUsIDAuMDY1LCAwLjA2MjUiLCBcCi0gICAgICAgICAgIjAuMDk2MjUsIDAuMDkxMjUsIDAuMDg1LCAwLjA3ODc1LCAwLjA3ODc1LCAwLjA3NSwgMC4wNzI1IiwgXAotICAgICAgICAgICIwLjEwNSwgMC4xLCAwLjA5Mzc1LCAwLjA4NzUsIDAuMDg3NSwgMC4wODM3NSwgMC4wODEyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1LCAwLjAzODc1LCAwLjAzMjUsIDAuMDI2MjUsIDAuMDIsIDAuMDE2MjUsIDAuMDA3NSIsIFwKLSAgICAgICAgICAiMC4wNTUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMjUsIDAuMDIxMjUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4wNjEyNSwgMC4wNTYyNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyNzUsIDAuMDI1IiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDYyNSwgMC4wNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzMzc1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICIwLjA3Mzc1LCAwLjA2ODc1LCAwLjA1NjI1LCAwLjA1LCAwLjA0Mzc1LCAwLjA0LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIjAuMDgzNzUsIDAuMDcyNSwgMC4wNjYyNSwgMC4wNiwgMC4wNTM3NSwgMC4wNSwgMC4wNDEyNSIsIFwKLSAgICAgICAgICAiMC4wODYyNSwgMC4wODEyNSwgMC4wNzUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNTI1LCAwLjA1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBUQlVGWDIgKgotICogLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChUQlVGWDIpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC40NzQzODY7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTM3NjQyOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTM3NTI7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxMzc2NDI7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNTY2LCAwLjAwMDU4MywgMC4wMDA1ODUsIDAuMDAwNTg2LCAwLjAwMDU4NywgMC4wMDA1ODcsIDAuMDAwNTg4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNjE3LCAwLjAwMDYwNiwgMC4wMDA2MDQsIDAuMDAwNjAzLCAwLjAwMDYwMiwgMC4wMDA2MDEsIDAuMDAwNjAxIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihPRSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxMTg5NjE7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxMTg5MzU7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxMTg5NjE7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHNjYWxhcikgewotICAgICAgICB2YWx1ZXMoIjAiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDM4OTcsIDAuMDAzOTA5LCAwLjAwNDAzMiwgMC4wMDQyMzMsIDAuMDA0NDU1LCAwLjAwNDgxOSwgMC4wMDUxNzciKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxMDkzNzg7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxMDkzNzg7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxMDkyNjY7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC42OTYzMzU7Ci0gICAgZnVuY3Rpb24gOiAiQSI7Ci0gICAgdGhyZWVfc3RhdGUgOiAiKCFPRSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDExMDkzOCwgMC4wNjEwOTM4LCAwLjEwMTA5NCwgMC4xNTEwOTQsIDAuMjAxMDk0LCAwLjI1MTA5NCwgMC4zMDEwOTQiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0NzI3NywgMC4xMjU0MzEsIDAuMTg3MTE3LCAwLjI2NDI0OCwgMC4zNDEzMDMsIDAuNDE4NDIzLCAwLjQ5NTU3NiIsIFwKLSAgICAgICAgICAiMC4wNTMyOTgsIDAuMTMxNDksIDAuMTkzMTgsIDAuMjcwMzE0LCAwLjM0NzM2NSwgMC40MjQ0NzQsIDAuNTAxNTU4IiwgXAotICAgICAgICAgICIwLjA2MDA5OSwgMC4xMzgzODYsIDAuMjAwMDg4LCAwLjI3NzI0MSwgMC4zNTQyNzcsIDAuNDMxMzQ4LCAwLjUwODQ0NiIsIFwKLSAgICAgICAgICAiMC4wNjU3ODQsIDAuMTQ0MjY2LCAwLjIwNTk4LCAwLjI4MzA1MywgMC4zNjAxNjMsIDAuNDM3MjEsIDAuNTE0Mjc3IiwgXAotICAgICAgICAgICIwLjA3MDU0NSwgMC4xNDkyODIsIDAuMjEwOTYzLCAwLjI4ODA3NiwgMC4zNjUxMzksIDAuNDQyMjE0LCAwLjUxOTMwNyIsIFwKLSAgICAgICAgICAiMC4wNzcxNTEsIDAuMTU2MjY3LCAwLjIxNzkzOCwgMC4yOTUwMjIsIDAuMzcyMDk2LCAwLjQ0OTE1OSwgMC41MjYyNjMiLCBcCi0gICAgICAgICAgIjAuMDgyMjk2LCAwLjE2MTcwNSwgMC4yMjMzNywgMC4zMDA0NjgsIDAuMzc3NTQzLCAwLjQ1NDY2OSwgMC41MzE3MDQiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMTEwOTM4LCAwLjA2MTA5MzgsIDAuMTAxMDk0LCAwLjE1MTA5NCwgMC4yMDEwOTQsIDAuMjUxMDk0LCAwLjMwMTA5NCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQyMTQxLCAwLjIwMTA1MiwgMC4zMzA3MDIsIDAuNDkzNDEzLCAwLjY1NTMwNiwgMC44MTc2MDksIDAuOTgwMDMxIiwgXAotICAgICAgICAgICIwLjA0MjIwNSwgMC4yMDEwMzgsIDAuMzMwNjk4LCAwLjQ5MjcwNCwgMC42NTUyNjYsIDAuODE3MzgxLCAwLjk4MTUwOCIsIFwKLSAgICAgICAgICAiMC4wNDI4NSwgMC4yMDEwOTQsIDAuMzMwNzY0LCAwLjQ5MjU3LCAwLjY1NTkzNCwgMC44MTc5NzEsIDAuOTgwMzcyIiwgXAotICAgICAgICAgICIwLjA0Mzc5OSwgMC4yMDEzMzYsIDAuMzMwODA0LCAwLjQ5MjgwOSwgMC42NTU4OTksIDAuODE4NjQzLCAwLjk4MDQ3OSIsIFwKLSAgICAgICAgICAiMC4wNDQ2ODIsIDAuMjAxNTg1LCAwLjMzMDYwMSwgMC40OTMyMzcsIDAuNjU1NDYzLCAwLjgxODU4MSwgMC45ODEzMzMiLCBcCi0gICAgICAgICAgIjAuMDQ2MTUsIDAuMjAxODM4LCAwLjMzMTAyNiwgMC40OTI4NzcsIDAuNjU1Mzc1LCAwLjgxODQ5NiwgMC45ODAwMzYiLCBcCi0gICAgICAgICAgIjAuMDQ3MzMzLCAwLjIwMjE2MSwgMC4zMzEwMDYsIDAuNDkyNzg5LCAwLjY1NTE1OCwgMC44MTg1MzQsIDAuOTgxMTk5Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDExMDkyNywgMC4wNjEwOTI3LCAwLjEwMTA5MywgMC4xNTEwOTMsIDAuMjAxMDkzLCAwLjI1MTA5MywgMC4zMDEwOTMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0MzY5NSwgMC4xMjAzODIsIDAuMTgxMDI2LCAwLjI1Njg1NCwgMC4zMzI2MTksIDAuNDA4Mzk0LCAwLjQ4NDE4IiwgXAotICAgICAgICAgICIwLjA0OTI3NSwgMC4xMjU5ODYsIDAuMTg2NjM3LCAwLjI2MjQ2MywgMC4zMzgyMjYsIDAuNDE0MDA0LCAwLjQ4OTc4MyIsIFwKLSAgICAgICAgICAiMC4wNTQ5MDksIDAuMTMxNjU1LCAwLjE5MjMwOSwgMC4yNjgxMTUsIDAuMzQzOTAyLCAwLjQxOTY2OCwgMC40OTU0NDUiLCBcCi0gICAgICAgICAgIjAuMDU5MzA4LCAwLjEzNjI0MiwgMC4xOTY4ODEsIDAuMjcyNjYyLCAwLjM0ODQ2LCAwLjQyNDIzNywgMC41MDAwMzciLCBcCi0gICAgICAgICAgIjAuMDYyOTE3LCAwLjE0MDAyNywgMC4yMDA2NDgsIDAuMjc2NDE2LCAwLjM1MjE5NywgMC40Mjc5OTYsIDAuNTAzODI3IiwgXAotICAgICAgICAgICIwLjA2Nzk0OSwgMC4xNDUyNDgsIDAuMjA1ODQ5LCAwLjI4MTYwOCwgMC4zNTczODEsIDAuNDMzMTU3LCAwLjUwODk0IiwgXAotICAgICAgICAgICIwLjA3MTg0MSwgMC4xNDkzMzcsIDAuMjA5OTkyLCAwLjI4NTc0MiwgMC4zNjE1NDEsIDAuNDM3Mjk3LCAwLjUxMzEwMSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxMTA5MjcsIDAuMDYxMDkyNywgMC4xMDEwOTMsIDAuMTUxMDkzLCAwLjIwMTA5MywgMC4yNTEwOTMsIDAuMzAxMDkzIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzk1ODIsIDAuMTk0MTM2LCAwLjMxOTc2OCwgMC40NzczNiwgMC42MzQ5MDIsIDAuNzkyMzg4LCAwLjk0OTIxIiwgXAotICAgICAgICAgICIwLjAzOTY4NiwgMC4xOTQxMzksIDAuMzE5NzQsIDAuNDc3MzU5LCAwLjYzNDg4MywgMC43OTI0MzMsIDAuOTUwMDM5IiwgXAotICAgICAgICAgICIwLjA0MDM5OCwgMC4xOTQyMjksIDAuMzE5ODE4LCAwLjQ3NjYwMiwgMC42MzQ5MiwgMC43OTI0ODQsIDAuOTUwMTA4IiwgXAotICAgICAgICAgICIwLjA0MTMwNiwgMC4xOTQ0NiwgMC4zMTk4NzIsIDAuNDc3Mjc0LCAwLjYzMzk2OSwgMC43OTE3MzcsIDAuOTQ4ODYxIiwgXAotICAgICAgICAgICIwLjA0MjAxMSwgMC4xOTQ0OTEsIDAuMzE5ODY1LCAwLjQ3NzMxLCAwLjYzNDc2LCAwLjc5MjM3NiwgMC45NDg3MDYiLCBcCi0gICAgICAgICAgIjAuMDQzMjcyLCAwLjE5NDgsIDAuMzE5NzU5LCAwLjQ3Njk5OCwgMC42MzQ2MTgsIDAuNzkxODI2LCAwLjk0ODczNyIsIFwKLSAgICAgICAgICAiMC4wNDQyMzIsIDAuMTk1MDI1LCAwLjMyMDA3MSwgMC40NzcwMjksIDAuNjM0MTM4LCAwLjc5MTQyNiwgMC45NDk1OTgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiT0UiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHRocmVlX3N0YXRlX2VuYWJsZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMTEwOTM4LCAwLjA2MTA5MzgsIDAuMTAxMDk0LCAwLjE1MTA5NCwgMC4yMDEwOTQsIDAuMjUxMDk0LCAwLjMwMTA5NCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQ1NTg2LCAwLjEyMzcwNiwgMC4xODUzOTIsIDAuMjYyNDk2LCAwLjMzOTU3OCwgMC40MTY2ODYsIDAuNDkzODk1IiwgXAotICAgICAgICAgICIwLjA1MzEwMiwgMC4xMzEyMjQsIDAuMTkyOTA4LCAwLjI3MDA0NiwgMC4zNDcwOTMsIDAuNDI0MTkxLCAwLjUwMTI5IiwgXAotICAgICAgICAgICIwLjA2MjAyOCwgMC4xNDAyMjMsIDAuMjAxOTIsIDAuMjc5MDgzLCAwLjM1NjEwNCwgMC40MzMxODIsIDAuNTEwMzA5IiwgXAotICAgICAgICAgICIwLjA2OTEwNiwgMC4xNDc1MTYsIDAuMjA5MTk0LCAwLjI4NjMxOSwgMC4zNjM0MSwgMC40NDA0NjQsIDAuNTE3NTg0IiwgXAotICAgICAgICAgICIwLjA3NTA4NSwgMC4xNTM3MzUsIDAuMjE1NDAyLCAwLjI5MjUzMiwgMC4zNjk2NjMsIDAuNDQ2NjYxLCAwLjUyMzc2MiIsIFwKLSAgICAgICAgICAiMC4wODMwODMsIDAuMTYyMTI1LCAwLjIyMzcyNSwgMC4zMDA4MDksIDAuMzc3OTA2LCAwLjQ1NTAwNSwgMC41MzIwOSIsIFwKLSAgICAgICAgICAiMC4wODkxNiwgMC4xNjg1MDIsIDAuMjMwMTgyLCAwLjMwNzI4OCwgMC4zODQzMzcsIDAuNDYxNTc5LCAwLjUzODUyNSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxMTA5MzgsIDAuMDYxMDkzOCwgMC4xMDEwOTQsIDAuMTUxMDk0LCAwLjIwMTA5NCwgMC4yNTEwOTQsIDAuMzAxMDk0Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDI0NjQsIDAuMjAxMTQ4LCAwLjMzMDg0MSwgMC40OTI5NzksIDAuNjU1NDY2LCAwLjgxODEwNSwgMC45ODAzOTYiLCBcCi0gICAgICAgICAgIjAuMDQyNDgsIDAuMjAxMTM0LCAwLjMzMDgyOCwgMC40OTM0NDcsIDAuNjU2MTUyLCAwLjgxODIyNCwgMC45ODAxODciLCBcCi0gICAgICAgICAgIjAuMDQzMjEzLCAwLjIwMTE4MiwgMC4zMzA5MDgsIDAuNDkyNTQ4LCAwLjY1NTU4MywgMC44MTgxOTIsIDAuOTgwNjMzIiwgXAotICAgICAgICAgICIwLjA0NDQxNCwgMC4yMDEzMTksIDAuMzMwNTgsIDAuNDkyNjM2LCAwLjY1NjE2NywgMC44MTgxMywgMC45ODAzOTkiLCBcCi0gICAgICAgICAgIjAuMDQ1NTk2LCAwLjIwMTY1MywgMC4zMzEwMDEsIDAuNDkyODM3LCAwLjY1NTI0OCwgMC44MTg5NTYsIDAuOTgwODUyIiwgXAotICAgICAgICAgICIwLjA0NzM0MSwgMC4yMDIxODEsIDAuMzMxMjI2LCAwLjQ5Mzc1MywgMC42NTU2NTMsIDAuODE3Njc0LCAwLjk4MDE2OCIsIFwKLSAgICAgICAgICAiMC4wNDg3OTMsIDAuMjAyMzgyLCAwLjMzMTE2MywgMC40OTM1MzcsIDAuNjU1NzkyLCAwLjgxNzg4MywgMC45ODE4NzEiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMTEwOTI3LCAwLjA2MTA5MjcsIDAuMTAxMDkzLCAwLjE1MTA5MywgMC4yMDEwOTMsIDAuMjUxMDkzLCAwLjMwMTA5MyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQ4NDgyLCAwLjEyNTA5NCwgMC4xODU3NDEsIDAuMjYxNTYzLCAwLjMzNzMzLCAwLjQxMzIwOSwgMC40ODg5NzIiLCBcCi0gICAgICAgICAgIjAuMDU1Mzg1LCAwLjEzMTk5MiwgMC4xOTI2MzQsIDAuMjY4NDU5LCAwLjM0NDIyMywgMC40MjAwMjcsIDAuNDk1ODMzIiwgXAotICAgICAgICAgICIwLjA2MDgxNCwgMC4xMzc0MzgsIDAuMTk4MDc3LCAwLjI3Mzg3MywgMC4zNDk2NjYsIDAuNDI1NDM5LCAwLjUwMTI0OSIsIFwKLSAgICAgICAgICAiMC4wNjQ3ODEsIDAuMTQxNDExLCAwLjIwMjA1MSwgMC4yNzc4NDMsIDAuMzUzNjEyLCAwLjQyOTQwNiwgMC41MDUyMjMiLCBcCi0gICAgICAgICAgIjAuMDY4MTI4LCAwLjE0NDc0LCAwLjIwNTM5NSwgMC4yODExNTYsIDAuMzU2OTQ2LCAwLjQzMjc0OSwgMC41MDg1MzEiLCBcCi0gICAgICAgICAgIjAuMDcyNjMsIDAuMTQ5MjcsIDAuMjA5ODkxLCAwLjI4NTY2NywgMC4zNjE0NTMsIDAuNDM3MjYzLCAwLjUxMzA0MiIsIFwKLSAgICAgICAgICAiMC4wNzU5ODUsIDAuMTUyNjM0LCAwLjIxMzI1NywgMC4yODkwMzYsIDAuMzY0ODIsIDAuNDQwNTkxLCAwLjUxNjM3NiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxMTA5MjcsIDAuMDYxMDkyNywgMC4xMDEwOTMsIDAuMTUxMDkzLCAwLjIwMTA5MywgMC4yNTEwOTMsIDAuMzAxMDkzIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzk5MjksIDAuMTk0MjI4LCAwLjMxOTUyNSwgMC40Nzc1NTUsIDAuNjM1MTE1LCAwLjc5MTQzLCAwLjk1MDcxNyIsIFwKLSAgICAgICAgICAiMC4wMzk4ODIsIDAuMTk0MDI3LCAwLjMxOTg4MiwgMC40Nzc1MDQsIDAuNjM1MDY1LCAwLjc5MTgzNiwgMC45NDkwMjMiLCBcCi0gICAgICAgICAgIjAuMDM5OTQ1LCAwLjE5NDIwNCwgMC4zMTk4MjQsIDAuNDc2ODk5LCAwLjYzNDk2NiwgMC43OTI1NzgsIDAuOTQ5NTM5IiwgXAotICAgICAgICAgICIwLjAzOTk3OSwgMC4xOTM5MywgMC4zMTkzOSwgMC40NzcyMDUsIDAuNjM0ODcxLCAwLjc5MTg2OSwgMC45NDg5NiIsIFwKLSAgICAgICAgICAiMC4wNDAwMzIsIDAuMTkzOTg1LCAwLjMxOTM4LCAwLjQ3Njg1NywgMC42MzQyNzcsIDAuNzkyMzMsIDAuOTUwMTUzIiwgXAotICAgICAgICAgICIwLjA0MDEwMSwgMC4xOTM4MzYsIDAuMzE5MjUxLCAwLjQ3NjgxNywgMC42MzQwNjEsIDAuNzkxNTMsIDAuOTQ4OTE1IiwgXAotICAgICAgICAgICIwLjA0MDE3NCwgMC4xOTM3ODMsIDAuMzE5MjMzLCAwLjQ3NjY5OSwgMC42MzQxMzksIDAuNzkxNTA4LCAwLjk0ODkxNiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJPRSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogdGhyZWVfc3RhdGVfZGlzYWJsZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAyMzE2OSwgMC4wMzAxMDEsIDAuMDM1NjU4LCAwLjAzOTYsIDAuMDQyNzM2LCAwLjA0NzEwNSwgMC4wNTAwMTIiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihzY2FsYXIpIHsKLSAgICAgICAgdmFsdWVzKCIwIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMTk1ODIsIDAuMDI3NTk5LCAwLjAzNjEzOSwgMC4wNDIyMjksIDAuMDQ3MDAzLCAwLjA1MzM4MiwgMC4wNTc5NiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKHNjYWxhcikgewotICAgICAgICB2YWx1ZXMoIjAiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxMTA5MzgsIDAuMDYxMDkzOCwgMC4xMDEwOTQsIDAuMTUxMDk0LCAwLjIwMTA5NCwgMC4yNTEwOTQsIDAuMzAxMDk0Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDMwNzMsIDAuMDAzMTA1LCAwLjAwMzEwNCwgMC4wMDMxMDgsIDAuMDAzMTA4LCAwLjAwMzEwNywgMC4wMDMxMDkiLCBcCi0gICAgICAgICAgIjAuMDAzMDEsIDAuMDAzMDYxLCAwLjAwMzA2NiwgMC4wMDMwNjksIDAuMDAzMDcxLCAwLjAwMzA3MywgMC4wMDMwNzIiLCBcCi0gICAgICAgICAgIjAuMDAzMDcyLCAwLjAwMzEzNywgMC4wMDMxNDUsIDAuMDAzMTQ5LCAwLjAwMzE1LCAwLjAwMzE1MywgMC4wMDMxNTQiLCBcCi0gICAgICAgICAgIjAuMDAzMjA1LCAwLjAwMzI3NCwgMC4wMDMyODQsIDAuMDAzMjkxLCAwLjAwMzI5LCAwLjAwMzI5NCwgMC4wMDMyOTUiLCBcCi0gICAgICAgICAgIjAuMDAzMzcyLCAwLjAwMzQ0MywgMC4wMDM0NTUsIDAuMDAzNDU5LCAwLjAwMzQ2NCwgMC4wMDM0NjYsIDAuMDAzNDY2IiwgXAotICAgICAgICAgICIwLjAwMzY5NiwgMC4wMDM3NjQsIDAuMDAzNzc3LCAwLjAwMzc4MiwgMC4wMDM3ODUsIDAuMDAzNzksIDAuMDAzNzkiLCBcCi0gICAgICAgICAgIjAuMDA0MDEzLCAwLjAwNDA3NSwgMC4wMDQwODcsIDAuMDA0MDk0LCAwLjAwNDA5OSwgMC4wMDQxMDQsIDAuMDA0MTAyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMTEwOTI3LCAwLjA2MTA5MjcsIDAuMTAxMDkzLCAwLjE1MTA5MywgMC4yMDEwOTMsIDAuMjUxMDkzLCAwLjMwMTA5MyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2MzQ0LCAwLjAwNjQxNywgMC4wMDY0MjUsIDAuMDA2NDI5LCAwLjAwNjQzMSwgMC4wMDY0MzIsIDAuMDA2NDMzIiwgXAotICAgICAgICAgICIwLjAwNjMwOCwgMC4wMDYzODYsIDAuMDA2Mzk3LCAwLjAwNjQwMiwgMC4wMDY0MDUsIDAuMDA2NDA3LCAwLjAwNjQwOCIsIFwKLSAgICAgICAgICAiMC4wMDY0MjUsIDAuMDA2NDY1LCAwLjAwNjQ3NCwgMC4wMDY0NzksIDAuMDA2NDgyLCAwLjAwNjQ4MywgMC4wMDY0ODQiLCBcCi0gICAgICAgICAgIjAuMDA2NTk3LCAwLjAwNjU5NSwgMC4wMDY1OTksIDAuMDA2NjAzLCAwLjAwNjYwNCwgMC4wMDY2MDUsIDAuMDA2NjA2IiwgXAotICAgICAgICAgICIwLjAwNjgyMiwgMC4wMDY3NjksIDAuMDA2NzcxLCAwLjAwNjc2OSwgMC4wMDY3NjksIDAuMDA2NzcsIDAuMDA2NzciLCBcCi0gICAgICAgICAgIjAuMDA3MjI1LCAwLjAwNzEwNSwgMC4wMDcwOTMsIDAuMDA3MDkxLCAwLjAwNzA4NywgMC4wMDcwODYsIDAuMDA3MDg1IiwgXAotICAgICAgICAgICIwLjAwNzU2OSwgMC4wMDc0MTEsIDAuMDA3Mzk3LCAwLjAwNzM5MSwgMC4wMDczODgsIDAuMDA3Mzg2LCAwLjAwNzM4NiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIk9FIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxMTA5MzgsIDAuMDYxMDkzOCwgMC4xMDEwOTQsIDAuMTUxMDk0LCAwLjIwMTA5NCwgMC4yNTEwOTQsIDAuMzAxMDk0Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI5MDQsIDAuMDAyOTAyLCAwLjAwMjg4LCAwLjAwMjg0OCwgMC4wMDI4NDgsIDAuMDAyODUxLCAwLjAwMjgyOCIsIFwKLSAgICAgICAgICAiMC4wMDI5MDUsIDAuMDAyOTA0LCAwLjAwMjg4MiwgMC4wMDI4NTcsIDAuMDAyODMzLCAwLjAwMjg0MiwgMC4wMDI4MzUiLCBcCi0gICAgICAgICAgIjAuMDAzMDU3LCAwLjAwMzAzLCAwLjAwMzAyMiwgMC4wMDMwMTgsIDAuMDAyOTc0LCAwLjAwMjk5NCwgMC4wMDI5NzQiLCBcCi0gICAgICAgICAgIjAuMDAzMjU0LCAwLjAwMzIzLCAwLjAwMzIxNywgMC4wMDMyMTYsIDAuMDAzMTc1LCAwLjAwMzE4NywgMC4wMDMxNTYiLCBcCi0gICAgICAgICAgIjAuMDAzNDc2LCAwLjAwMzQ1MywgMC4wMDM0NTEsIDAuMDAzNDM5LCAwLjAwMzQyLCAwLjAwMzQxNSwgMC4wMDMzODYiLCBcCi0gICAgICAgICAgIjAuMDAzODcyLCAwLjAwMzg0NywgMC4wMDM4NjYsIDAuMDAzODI4LCAwLjAwMzg0MSwgMC4wMDM4MTIsIDAuMDAzNzkxIiwgXAotICAgICAgICAgICIwLjAwNDI1NSwgMC4wMDQyNTQsIDAuMDA0MjQzLCAwLjAwNDE4NywgMC4wMDQxOCwgMC4wMDQxNDUsIDAuMDA0MTgxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMTEwOTI3LCAwLjA2MTA5MjcsIDAuMTAxMDkzLCAwLjE1MTA5MywgMC4yMDEwOTMsIDAuMjUxMDkzLCAwLjMwMTA5MyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzMjAyLCAwLjAwMzIwMiwgMC4wMDMyMDIsIDAuMDAzMjAyLCAwLjAwMzIwMiwgMC4wMDMyMDIsIDAuMDAzMjAyIiwgXAotICAgICAgICAgICIwLjAwMzIwNywgMC4wMDMyMDcsIDAuMDAzMjA3LCAwLjAwMzIwNywgMC4wMDMyMDcsIDAuMDAzMjA3LCAwLjAwMzIwNyIsIFwKLSAgICAgICAgICAiMC4wMDMzMDksIDAuMDAzMzA5LCAwLjAwMzMwOSwgMC4wMDMzMSwgMC4wMDMzMDksIDAuMDAzMzEsIDAuMDAzMzA5IiwgXAotICAgICAgICAgICIwLjAwMzQzMSwgMC4wMDM0MywgMC4wMDM0MzEsIDAuMDAzNDMxLCAwLjAwMzQzMSwgMC4wMDM0MzEsIDAuMDAzNDMiLCBcCi0gICAgICAgICAgIjAuMDAzNTczLCAwLjAwMzU3MywgMC4wMDM1NjksIDAuMDAzNTczLCAwLjAwMzU3MiwgMC4wMDM1NzIsIDAuMDAzNTciLCBcCi0gICAgICAgICAgIjAuMDAzODA1LCAwLjAwMzgwNCwgMC4wMDM4MDQsIDAuMDAzODAxLCAwLjAwMzgwMSwgMC4wMDM4MDEsIDAuMDAzODAxIiwgXAotICAgICAgICAgICIwLjAwNDA3MSwgMC4wMDQwNzIsIDAuMDA0MDcyLCAwLjAwNDA3MSwgMC4wMDQwNzEsIDAuMDA0MDcxLCAwLjAwNDA3MSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogVExBVE5DQVg0ICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoVExBVE5DQVg0KSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuODk0NTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBjbG9ja19nYXRpbmdfaW50ZWdyYXRlZF9jZWxsIDogImxhdGNoX3Bvc2VkZ2UiOwotICBzdGF0ZXRhYmxlKCIgQ0sgIEUgIiwgIiBFSU5UICIpIHsKLSAgICAgdGFibGUgOiAiICBMICBMIDogLSA6IEwgLCBcCi0gICAgICAgICAgICAgICAgTCAgSCA6IC0gOiBIICwgXAotICAgICAgICAgICAgICAgIEggIC0gOiAtIDogTiAiOwotICB9Ci0gIHBpbihFSU5UKSB7Ci0gICAgZGlyZWN0aW9uIDogaW50ZXJuYWw7Ci0gICAgaW50ZXJuYWxfbm9kZSA6ICJFSU5UIjsKLSAgfQotICBwaW4oQ0spICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYwODE4OTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MDgxODk7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjA3OTA4OwotICAgIGNsb2NrX2dhdGVfY2xvY2tfcGluIDogdHJ1ZTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDI5MjksIDAuMDAyOTI3LCAwLjAwMzAwMywgMC4wMDMxMDgsIDAuMDAzMjMsIDAuMDAzNDY3LCAwLjAwMzY2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA0MjUyLCAwLjAwNDI1MiwgMC4wMDQzNDIsIDAuMDA0NDMzLCAwLjAwNDU3LCAwLjAwNDgyNywgMC4wMDUwMDQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFFIjsKLSAgICAgIHNkZl9jb25kIDogIkUgPT0gMSdiMCI7Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wNjg0NTUsIDAuMDc2MjE5LCAwLjA4Mzg1NCwgMC4wODkxMTIsIDAuMDkzNTIxLCAwLjA5OTI4OSwgMC4xMDM0NjMiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEUpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYyODI0NTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MjcxNzY7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjI4MjQ1OwotICAgIGNsb2NrX2dhdGVfZW5hYmxlX3BpbiA6IHRydWU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzMjUsIDAuMDAzMjIxLCAwLjAwMzI0OCwgMC4wMDMzMTYsIDAuMDAzMzY4LCAwLjAwMzUzLCAwLjAwMzY0NSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzgzLCAwLjAwMzgxLCAwLjAwMzgzNSwgMC4wMDM4ODksIDAuMDAzOTY3LCAwLjAwNDA3OSwgMC4wMDQyNDIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMTg3NSwgLTAuMDEzNzUsIC0wLjAwNzUsIC0wLjAwNzUsIC0wLjAwNzUsIC0wLjAwMzc1LCAtMC4wMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMTI1LCAtMC4wMTI1LCAtMC4wMDg3NSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTg3NSwgLTAuMDE4NzUsIC0wLjAxNSwgLTAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAyMTI1LCAtMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDMxMjUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAyNSwgLTAuMDIxMjUsIC0wLjAxODc1IiwgXAotICAgICAgICAgICItMC4wNDYyNSwgLTAuMDQxMjUsIC0wLjAzNSwgLTAuMDM1LCAtMC4wMjg3NSwgLTAuMDMxMjUsIC0wLjAyODc1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDQzNzUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzc1LCAtMC4wMzM3NSwgLTAuMDMxMjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLCAwLjAwNSwgMC4wMTEyNSwgMC4wMTc1LCAwLjAyMzc1LCAwLjAyNzUsIDAuMDMiLCBcCi0gICAgICAgICAgIi0wLjAxMTI1LCAwLCAwLjAwNjI1LCAwLjAxMjUsIDAuMDE4NzUsIDAuMDIyNSwgMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjAxNzUsIC0wLjAwNjI1LCAwLCAwLjAwNjI1LCAwLjAxMjUsIDAuMDE2MjUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjAxNzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLCAwLjAwNjI1LCAwLjAxLCAwLjAxODc1IiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAsIDAuMDA2MjUsIDAuMDEsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDI3NSwgLTAuMDIyNSwgLTAuMDEsIC0wLjAwMzc1LCAtMC4wMDM3NSwgMC4wMDYyNSwgMC4wMDg3NSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLjAwMzc1LCAwLjAwNjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyNSwgMC4wMiwgMC4wMTM3NSwgMC4wMTM3NSwgMC4wMTM3NSwgMC4wMSwgMC4wMDc1IiwgXAotICAgICAgICAgICIwLjAzLCAwLjAyNSwgMC4wMTg3NSwgMC4wMTg3NSwgMC4wMTg3NSwgMC4wMTUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4wMzYyNSwgMC4wMzEyNSwgMC4wMjUsIDAuMDI1LCAwLjAyNSwgMC4wMjEyNSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4wNDI1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDMxMjUsIDAuMDI1LCAwLjAyNzUsIDAuMDI1IiwgXAotICAgICAgICAgICIwLjA0ODc1LCAwLjAzNzUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMzEyNSwgMC4wMjc1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiMC4wNTI1LCAwLjA0NzUsIDAuMDQxMjUsIDAuMDQxMjUsIDAuMDM1LCAwLjAzNzUsIDAuMDM1IiwgXAotICAgICAgICAgICIwLjA1NSwgMC4wNSwgMC4wNSwgMC4wNDM3NSwgMC4wNDM3NSwgMC4wNCwgMC4wMzc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2MjUsIDAuMDAxMjUsIC0wLjAwNSwgLTAuMDExMjUsIC0wLjAxNzUsIC0wLjAyMTI1LCAtMC4wMjM3NSIsIFwKLSAgICAgICAgICAiMC4wMTc1LCAwLjAwNjI1LCAwLCAtMC4wMDYyNSwgLTAuMDEyNSwgLTAuMDE2MjUsIC0wLjAxODc1IiwgXAotICAgICAgICAgICIwLjAyMzc1LCAwLjAxMjUsIDAuMDA2MjUsIDAsIC0wLjAwNjI1LCAtMC4wMSwgLTAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4wMjM3NSwgMC4wMTg3NSwgMC4wMTI1LCAwLjAwNjI1LCAwLCAtMC4wMDM3NSwgLTAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4wMywgMC4wMTg3NSwgMC4wMTI1LCAwLjAwNjI1LCAwLCAtMC4wMDM3NSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMDMzNzUsIDAuMDI4NzUsIDAuMDE2MjUsIDAuMDEsIDAuMDEsIDAsIC0wLjAwMjUiLCBcCi0gICAgICAgICAgIjAuMDM2MjUsIDAuMDMxMjUsIDAuMDI1LCAwLjAxODc1LCAwLjAxMjUsIDAuMDAyNSwgMCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRUNLKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDEuMzM0Njk7Ci0gICAgY2xvY2tfZ2F0ZV9vdXRfcGluIDogdHJ1ZTsKLSAgICBzdGF0ZV9mdW5jdGlvbiA6ICIoQ0sgRUlOVCkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3NDcwMiwgMC4xMzMzNDIsIDAuMTg4NjcxLCAwLjIyODE0OSwgMC4yOTEzMjEsIDAuMzQ2NTQ1LCAwLjQyNTQ5MyIsIFwKLSAgICAgICAgICAiMC4wODI3MiwgMC4xNDEzNDEsIDAuMTk2NjczLCAwLjIzNjE1MiwgMC4yOTkyODksIDAuMzU0NjE4LCAwLjQzMzU3MiIsIFwKLSAgICAgICAgICAiMC4wOTA1MTIsIDAuMTQ5MTgzLCAwLjIwNDQ5MiwgMC4yNDM5NjgsIDAuMzA3MTIzLCAwLjM2MjQ0MywgMC40NDEzMTIiLCBcCi0gICAgICAgICAgIjAuMDk2MTU0LCAwLjE1NDc2MSwgMC4yMTAwNjMsIDAuMjQ5NTM5LCAwLjMxMjcyMSwgMC4zNjc5OTUsIDAuNDQ2ODkzIiwgXAotICAgICAgICAgICIwLjEwMDkxNSwgMC4xNTk1MywgMC4yMTQ4MzgsIDAuMjU0MzM5LCAwLjMxNzQ5NCwgMC4zNzI3NjEsIDAuNDUxNjYxIiwgXAotICAgICAgICAgICIwLjEwNjk3OSwgMC4xNjU2NTEsIDAuMjIwOTIsIDAuMjYwNDUsIDAuMzIzNjM3LCAwLjM3ODg4MSwgMC40NTc3OSIsIFwKLSAgICAgICAgICAiMC4xMTE1NjQsIDAuMTcwMTQzLCAwLjIyNTQ3MSwgMC4yNjQ5NTEsIDAuMzI4MDkyLCAwLjM4MzM5NCwgMC40NjIyOTciKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjk2MjgsIDAuMTQyNjQzLCAwLjI1OTQwNiwgMC4zNDM0NjksIDAuNDc4MTc1LCAwLjU5NjEyOSwgMC43NjM4NTEiLCBcCi0gICAgICAgICAgIjAuMDI5NjE2LCAwLjE0MjY0NSwgMC4yNTkzOTYsIDAuMzQzNDcyLCAwLjQ3NzU3OSwgMC41OTUxMjEsIDAuNzYzNDY0IiwgXAotICAgICAgICAgICIwLjAyOTY0NiwgMC4xNDI3NDQsIDAuMjU5NDU2LCAwLjM0MzQ3MiwgMC40Nzc2MDgsIDAuNTk1MDk2LCAwLjc2MzgwMyIsIFwKLSAgICAgICAgICAiMC4wMjk2MzksIDAuMTQyNzQ3LCAwLjI1OTM1MSwgMC4zNDMzMTEsIDAuNDc3NTMzLCAwLjU5NjIsIDAuNzYzOTA5IiwgXAotICAgICAgICAgICIwLjAyOTY0MSwgMC4xNDI3MzQsIDAuMjU5NDE4LCAwLjM0MzQ3LCAwLjQ3NzUxNywgMC41OTYxNDIsIDAuNzYzOTIiLCBcCi0gICAgICAgICAgIjAuMDI5NjI2LCAwLjE0MjcyLCAwLjI1OTM3NSwgMC4zNDM0NTMsIDAuNDc3MzY2LCAwLjU5NTQ0NSwgMC43NjM5OTQiLCBcCi0gICAgICAgICAgIjAuMDI5NjYzLCAwLjE0MjY0OSwgMC4yNTkzNDMsIDAuMzQzMzg1LCAwLjQ3ODEyMiwgMC41OTYxMDIsIDAuNzY0NTk1Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY0NDMzLCAwLjExOTI0NSwgMC4xNzMwMDcsIDAuMjExNDIsIDAuMjcyOSwgMC4zMjY3MDksIDAuNDAzNTM4IiwgXAotICAgICAgICAgICIwLjA3MjE5NiwgMC4xMjcwMDUsIDAuMTgwNzY5LCAwLjIxOTE4MSwgMC4yODA2NjEsIDAuMzM0NDUxLCAwLjQxMTI5NCIsIFwKLSAgICAgICAgICAiMC4wNzk4NDIsIDAuMTM0NjY2LCAwLjE4ODQzMSwgMC4yMjY4NDIsIDAuMjg4MzIyLCAwLjM0MjEzMywgMC40MTg5OTciLCBcCi0gICAgICAgICAgIjAuMDg1MiwgMC4xNDAwMDksIDAuMTkzNzc2LCAwLjIzMjE5LCAwLjI5MzY2OCwgMC4zNDc0NDksIDAuNDI0MzA1IiwgXAotICAgICAgICAgICIwLjA4OTYwOCwgMC4xNDQ0MTYsIDAuMTk4MTksIDAuMjM2NTk2LCAwLjI5ODA3NywgMC4zNTE4ODQsIDAuNDI4NzExIiwgXAotICAgICAgICAgICIwLjA5NTQyNywgMC4xNTAyNTgsIDAuMjA0MDE4LCAwLjI0MjQ0MywgMC4zMDM5MTIsIDAuMzU3NzAzLCAwLjQzNDUzMSIsIFwKLSAgICAgICAgICAiMC4wOTk1ODUsIDAuMTU0NDc0LCAwLjIwODIyOSwgMC4yNDY1NywgMC4zMDgwNDcsIDAuMzYxODYsIDAuNDM4NzA5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDI0MjY2LCAwLjEzMzE1NCwgMC4yNDQ3MjIsIDAuMzI0MDUsIDAuNDUyNjYyLCAwLjU2NDUwNiwgMC43MjM3OTMiLCBcCi0gICAgICAgICAgIjAuMDI0MjY3LCAwLjEzMzE1MSwgMC4yNDQ3MiwgMC4zMjQwMiwgMC40NTI2NTgsIDAuNTY0MDEzLCAwLjcyNDEiLCBcCi0gICAgICAgICAgIjAuMDI0MjYyLCAwLjEzMzE0NCwgMC4yNDQyNzgsIDAuMzI0NjM2LCAwLjQ1MjYwNiwgMC41NjQwMjEsIDAuNzI0MjQ2IiwgXAotICAgICAgICAgICIwLjAyNDI0OSwgMC4xMzMwMywgMC4yNDQ2NzgsIDAuMzI0MDY5LCAwLjQ1MjU3MiwgMC41NjQ2NzgsIDAuNzI0NzY2IiwgXAotICAgICAgICAgICIwLjAyNDI4NCwgMC4xMzMwMDIsIDAuMjQ0MzcyLCAwLjMyNDE1NywgMC40NTIxMTYsIDAuNTY0NTUyLCAwLjcyMzg0OCIsIFwKLSAgICAgICAgICAiMC4wMjQyNjIsIDAuMTMzMDUyLCAwLjI0NDY0NiwgMC4zMjQ2MzcsIDAuNDUyMTA1LCAwLjU2NDEyMSwgMC43MjQwMjgiLCBcCi0gICAgICAgICAgIjAuMDI0Mjg2LCAwLjEzMjg2NSwgMC4yNDQ0MTgsIDAuMzI0NTE2LCAwLjQ1MjYxMiwgMC41NjM5NjgsIDAuNzIzMzk3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA4ODQxLCAwLjAwODkzMiwgMC4wMDg5MzEsIDAuMDA4OTI5LCAwLjAwODkzMSwgMC4wMDg5MjYsIDAuMDA4OTIyIiwgXAotICAgICAgICAgICIwLjAwODg0OCwgMC4wMDg5NCwgMC4wMDg5NDEsIDAuMDA4OTM3LCAwLjAwODkzMSwgMC4wMDg5MywgMC4wMDg5MjgiLCBcCi0gICAgICAgICAgIjAuMDA4OTA2LCAwLjAwOTAwMywgMC4wMDkwMDIsIDAuMDA4OTk5LCAwLjAwODk5NywgMC4wMDg5OTIsIDAuMDA4OTg3IiwgXAotICAgICAgICAgICIwLjAwOTAzMywgMC4wMDkxMiwgMC4wMDkxMTksIDAuMDA5MTE3LCAwLjAwOTExMywgMC4wMDkxMDcsIDAuMDA5MTA0IiwgXAotICAgICAgICAgICIwLjAwOTE1MSwgMC4wMDkyNDcsIDAuMDA5MjQ3LCAwLjAwOTIzNiwgMC4wMDkyMzksIDAuMDA5MjM2LCAwLjAwOTIzMiIsIFwKLSAgICAgICAgICAiMC4wMDkzNDEsIDAuMDA5NDQ1LCAwLjAwOTQzMywgMC4wMDk0MzksIDAuMDA5NDMsIDAuMDA5NDI3LCAwLjAwOTQyMiIsIFwKLSAgICAgICAgICAiMC4wMDk1NDUsIDAuMDA5NjMyLCAwLjAwOTY0MiwgMC4wMDk2MzcsIDAuMDA5NjIxLCAwLjAwOTYyNCwgMC4wMDk2MTEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMzc4NiwgMC4wMTM5NjcsIDAuMDEzOTgxLCAwLjAxMzk4NCwgMC4wMTM5ODYsIDAuMDEzOTg3LCAwLjAxMzk4OCIsIFwKLSAgICAgICAgICAiMC4wMTM3OSwgMC4wMTM5NzMsIDAuMDEzOTg2LCAwLjAxMzk4OSwgMC4wMTM5OTEsIDAuMDEzOTkyLCAwLjAxMzk5MiIsIFwKLSAgICAgICAgICAiMC4wMTM4NTUsIDAuMDE0MDQsIDAuMDE0MDU0LCAwLjAxNDA1NiwgMC4wMTQwNTgsIDAuMDE0MDU4LCAwLjAxNDA1OSIsIFwKLSAgICAgICAgICAiMC4wMTM5NjYsIDAuMDE0MTU5LCAwLjAxNDE3NCwgMC4wMTQxNzcsIDAuMDE0MTc5LCAwLjAxNDE3OSwgMC4wMTQxOCIsIFwKLSAgICAgICAgICAiMC4wMTQwNjksIDAuMDE0MjU3LCAwLjAxNDI3MSwgMC4wMTQyNzMsIDAuMDE0MjczLCAwLjAxNDI3NCwgMC4wMTQyNzMiLCBcCi0gICAgICAgICAgIjAuMDE0Mjc1LCAwLjAxNDQ2MSwgMC4wMTQ0NzgsIDAuMDE0NDc1LCAwLjAxNDQ3NSwgMC4wMTQ0NzUsIDAuMDE0NDc5IiwgXAotICAgICAgICAgICIwLjAxNDQ1NywgMC4wMTQ2NDksIDAuMDE0NjYxLCAwLjAxNDY2NiwgMC4wMTQ2NjYsIDAuMDE0NjY2LCAwLjAxNDY1NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IFRMQVROWDEgKgotICogLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoVExBVE5YMSkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjY5MDMxODsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBsYXRjaCAoUUlOVCxOMCkgewotICAgIGRhdGFfaW4gOiAiRCI7Ci0gICAgZW5hYmxlIDogIighR04pIjsKLSAgfQotICBwaW4oRCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNzAxNDM2OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDcwMDE5NDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA3MDE0MzY7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjg5LCAwLjAwMDI5LCAwLjAwMDI5MSwgMC4wMDAyOTEsIDAuMDAwMjkxLCAwLjAwMDI5MSwgMC4wMDAyOTIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAzMTcsIDAuMDAwMzA2LCAwLjAwMDMwMywgMC4wMDAzMDIsIDAuMDAwMzAxLCAwLjAwMDMwMSwgMC4wMDAzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkdOIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDE4NzUsIC0wLjAxMzc1LCAtMC4wMDc1LCAtMC4wMDc1LCAtMC4wMDEyNSwgLTAuMDAzNzUsIC0wLjAwMTI1IiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAxMjUsIC0wLjAxMjUsIC0wLjAwODc1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMTUsIC0wLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTUsIC0wLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzMTI1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMjUsIC0wLjAyMTI1LCAtMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDQ2MjUsIC0wLjA0MTI1LCAtMC4wMzUsIC0wLjAzNSwgLTAuMDI4NzUsIC0wLjAyNSwgLTAuMDIyNSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzc1LCAtMC4wMzc1LCAtMC4wMzM3NSwgLTAuMDMxMjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMDYyNSwgLTAuMDAxMjUsIDAuMDExMjUsIDAuMDE3NSwgMC4wMTc1LCAwLjAyNzUsIDAuMDMiLCBcCi0gICAgICAgICAgIi0wLjAxMTI1LCAtMC4wMDYyNSwgMC4wMDYyNSwgMC4wMTI1LCAwLjAxMjUsIDAuMDIyNSwgMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjAxNzUsIC0wLjAxMjUsIDAsIDAuMDA2MjUsIDAuMDA2MjUsIDAuMDE2MjUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMCwgMC4wMDYyNSwgMC4wMSwgMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLCAwLjAwMzc1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjAzMzc1LCAtMC4wMjI1LCAtMC4wMTYyNSwgLTAuMDEsIC0wLjAwMzc1LCAwLCAwLjAwMjUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAtMC4wMDI1LCAwIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkdOIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzMTI1LCAwLjAyLCAwLjAyLCAwLjAyLCAwLjAyLCAwLjAxNjI1LCAwLjAyIiwgXAotICAgICAgICAgICIwLjAzNjI1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMjUsIDAuMDI1LCAwLjAyMTI1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiMC4wNDI1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDMxMjUsIDAuMDMxMjUsIDAuMDI3NSwgMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMDQ4NzUsIDAuMDM3NSwgMC4wMzc1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDMzNzUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMDQ4NzUsIDAuMDQzNzUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzc1LCAwLjAzMzc1LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIjAuMDU4NzUsIDAuMDUzNzUsIDAuMDQ3NSwgMC4wNDEyNSwgMC4wNDEyNSwgMC4wNDM3NSwgMC4wNDEyNSIsIFwKLSAgICAgICAgICAiMC4wNjEyNSwgMC4wNTYyNSwgMC4wNSwgMC4wNSwgMC4wNDM3NSwgMC4wNDYyNSwgMC4wNDM3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxODc1LCAwLjAwNzUsIDAuMDAxMjUsIC0wLjAwNSwgLTAuMDExMjUsIC0wLjAxNSwgLTAuMDE3NSIsIFwKLSAgICAgICAgICAiMC4wMjM3NSwgMC4wMTI1LCAwLjAwNjI1LCAwLCAtMC4wMDYyNSwgLTAuMDEsIC0wLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMDMsIDAuMDE4NzUsIDAuMDEyNSwgMC4wMDYyNSwgMCwgLTAuMDAzNzUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICIwLjAzNjI1LCAwLjAyNSwgMC4wMTg3NSwgMC4wMTI1LCAwLjAwNjI1LCAwLjAwMjUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICIwLjAzNjI1LCAwLjAzMTI1LCAwLjAxODc1LCAwLjAxMjUsIDAuMDEyNSwgMC4wMDI1LCAwIiwgXAotICAgICAgICAgICIwLjA0LCAwLjAzNSwgMC4wMjg3NSwgMC4wMjI1LCAwLjAxNjI1LCAwLjAwNjI1LCAwLjAwMzc1IiwgXAotICAgICAgICAgICIwLjA0ODc1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDI1LCAwLjAxODc1LCAwLjAxNSwgMC4wMDYyNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oR04pICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYwMzc3NDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MDM1NTQ7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjAzNzc0OwotICAgIGNsb2NrIDogdHJ1ZTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDIyNjksIDAuMDAyMjcsIDAuMDAyMzYzLCAwLjAwMjQ1OSwgMC4wMDI1ODQsIDAuMDAyODMyLCAwLjAwMzAyMiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzc5NywgMC4wMDM4LCAwLjAwMzg3NiwgMC4wMDM5OSwgMC4wMDQxMjEsIDAuMDA0Mjk3LCAwLjAwNDU4NiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJHTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQiOwotICAgICAgc2RmX2NvbmQgOiAiRCA9PSAxJ2IwIjsKLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjExNDg2NCwgMC4xMjI2NjksIDAuMTMwNTY2LCAwLjEzNjEwMSwgMC4xNDA1NjMsIDAuMTQ2MjgxLCAwLjE1MDQ2NCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjM1MDUyNzsKLSAgICBmdW5jdGlvbiA6ICJRSU5UIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJEIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTEyOTcsIDAuMTA5NTUyLCAwLjIxMzk3OCwgMC4zMDU4LCAwLjQyNzU0LCAwLjY3MzAyMiwgMC44MjQ2NDMiLCBcCi0gICAgICAgICAgIjAuMDk3MjI3LCAwLjExNTY1NiwgMC4yMTk5NzcsIDAuMzExMjMxLCAwLjQzMzU0NCwgMC42NzkwMTgsIDAuODMwNjI2IiwgXAotICAgICAgICAgICIwLjEwMzk2OSwgMC4xMjIyNywgMC4yMjY1ODIsIDAuMzE4NTgsIDAuNDQwMTEyLCAwLjY4NDg4OCwgMC44Mzg3OTEiLCBcCi0gICAgICAgICAgIjAuMTA5NDAyLCAwLjEyNzc5NCwgMC4yMzE2MTYsIDAuMzIzNDIxLCAwLjQ0NTY0MSwgMC42OTEwOTQsIDAuODQ0MTI1IiwgXAotICAgICAgICAgICIwLjExNDAyNywgMC4xMzI1MTQsIDAuMjM2Mjk2LCAwLjMyODU0NywgMC40NTA1MDgsIDAuNjk0ODgxLCAwLjg0Nzc3NCIsIFwKLSAgICAgICAgICAiMC4xMjAyMzUsIDAuMTM4NTg1LCAwLjI0MjU0MiwgMC4zMzQ2NzksIDAuNDU2Nzk5LCAwLjcwMTQwOSwgMC44NTQzMjkiLCBcCi0gICAgICAgICAgIjAuMTI1MDksIDAuMTQzNDE5LCAwLjI0NzU2OSwgMC4zMzk0OTMsIDAuNDYxODg0LCAwLjcwNjY4LCAwLjg1OTc0NyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjkxNTEsIDAuMTA3MzYyLCAwLjMyNjQ5NywgMC41MTk2MjgsIDAuNzc1ODUzLCAxLjI5MTkzLCAxLjYwOTgxIiwgXAotICAgICAgICAgICIwLjA2OTAyNSwgMC4xMDc1ODksIDAuMzI2NDk5LCAwLjUxODM0OCwgMC43NzUwMTIsIDEuMjkxOTQsIDEuNjA5OTYiLCBcCi0gICAgICAgICAgIjAuMDY5MDYyLCAwLjEwNzQxOSwgMC4zMjYyNiwgMC41MTk2MjgsIDAuNzc0OTMxLCAxLjI4ODkzLCAxLjYxMzc0IiwgXAotICAgICAgICAgICIwLjA2OTEzMSwgMC4xMDc1OTksIDAuMzI2MDQ2LCAwLjUxOTI2NiwgMC43NzU1OCwgMS4yOTI3LCAxLjYxNDQzIiwgXAotICAgICAgICAgICIwLjA2OTI5NywgMC4xMDc2MywgMC4zMjYwMjYsIDAuNTE5OTM4LCAwLjc3NjExOSwgMS4yODk5MiwgMS42MTIzMSIsIFwKLSAgICAgICAgICAiMC4wNjkxNjUsIDAuMTA3NjMzLCAwLjMyNjA1LCAwLjUxOTY5NCwgMC43NzYxOTYsIDEuMjkwNDgsIDEuNjExOTQiLCBcCi0gICAgICAgICAgIjAuMDY5MDIxLCAwLjEwNzcyOCwgMC4zMjYxOTQsIDAuNTE5MzEzLCAwLjc3Njk2NSwgMS4yOTE5MSwgMS42MTM5OSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTE3ODIsIDAuMTEwMDA0LCAwLjIxMjU4MSwgMC4zMDMwNjYsIDAuNDIzNzMsIDAuNjY1NTIyLCAwLjgxNjU0IiwgXAotICAgICAgICAgICIwLjA5NzQzOCwgMC4xMTU2NjYsIDAuMjE4MTg3LCAwLjMwODczMiwgMC40Mjk0NzMsIDAuNjcxMTU5LCAwLjgyMjI3NyIsIFwKLSAgICAgICAgICAiMC4xMDM1MDIsIDAuMTIxNjQ0LCAwLjIyNDMwOCwgMC4zMTQ4MjEsIDAuNDM1NTI4LCAwLjY3NjkxMywgMC44Mjc4MzUiLCBcCi0gICAgICAgICAgIjAuMTA4MzcxLCAwLjEyNjQ1OSwgMC4yMjkwNTksIDAuMzE5NTc3LCAwLjQ0MDQ5NCwgMC42ODIxOSwgMC44MzMyMjEiLCBcCi0gICAgICAgICAgIjAuMTEyMzk2LCAwLjEzMDYxNiwgMC4yMzMxMjUsIDAuMzIzNjQ0LCAwLjQ0NDM2NSwgMC42ODU4MDYsIDAuODM2OTg4IiwgXAotICAgICAgICAgICIwLjExNzc1NywgMC4xMzU4ODYsIDAuMjM4NTcyLCAwLjMyOTA1MSwgMC40NDk4NDEsIDAuNjkxNDI3LCAwLjg0MjM1NSIsIFwKLSAgICAgICAgICAiMC4xMjE4MzcsIDAuMTM5OTUxLCAwLjI0MjU3NCwgMC4zMzMxMjMsIDAuNDUzOTM1LCAwLjY5NTQwMiwgMC44NDY1OTIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY2Njg1LCAwLjEwMzc5MSwgMC4zMTU0NjUsIDAuNTAxMDMzLCAwLjc0OTcxOCwgMS4yNDkzMywgMS41NjA1NyIsIFwKLSAgICAgICAgICAiMC4wNjY3MjgsIDAuMTAzNzksIDAuMzE0NjU5LCAwLjUwMTAxOSwgMC43NDk1NjcsIDEuMjQ5MjcsIDEuNTYwNyIsIFwKLSAgICAgICAgICAiMC4wNjY2OTIsIDAuMTAzNzMzLCAwLjMxNDgxNSwgMC41MDEwNDEsIDAuNzQ5MDc2LCAxLjI0NDk1LCAxLjU1NDY2IiwgXAotICAgICAgICAgICIwLjA2NjcyMiwgMC4xMDM4MDYsIDAuMzE1MDYsIDAuNTAxMTI4LCAwLjc0OTY3NCwgMS4yNDY3LCAxLjU1NTc0IiwgXAotICAgICAgICAgICIwLjA2NjcxNywgMC4xMDM3NzksIDAuMzE0ODg0LCAwLjUwMjEzLCAwLjc1MDA2MSwgMS4yNDY4NSwgMS41NjAxNSIsIFwKLSAgICAgICAgICAiMC4wNjY3MTgsIDAuMTAzNjc4LCAwLjMxNTQzNiwgMC41MDIxNSwgMC43NTExNjIsIDEuMjQ4OTksIDEuNTYwMSIsIFwKLSAgICAgICAgICAiMC4wNjY2NDUsIDAuMTAzNzc2LCAwLjMxNDgyNiwgMC41MDE5MjYsIDAuNzUxMTI4LCAxLjI0ODgyLCAxLjU2MDM1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkdOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5vbl91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogZmFsbGluZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDU1MjcsIDAuMTIzOTAxLCAwLjIyODI0NywgMC4zMjAwNjcsIDAuNDQxNzcyLCAwLjY4NzI3MSwgMC44NDAyNzkiLCBcCi0gICAgICAgICAgIjAuMTEzMzQxLCAwLjEzMTcxOSwgMC4yMzYwNTgsIDAuMzI3ODgsIDAuNDQ5NTc3LCAwLjY5NTA3OSwgMC44NDgwOTgiLCBcCi0gICAgICAgICAgIjAuMTIxNTQxLCAwLjEzOTgwMiwgMC4yNDQyMzcsIDAuMzM2MDc4LCAwLjQ1Nzc1MiwgMC43MDIzOTMsIDAuODU2MjkyIiwgXAotICAgICAgICAgICIwLjEyNzQ2NSwgMC4xNDU4MTgsIDAuMjQ5OTQyLCAwLjM0MTU1NywgMC40NjM3NDMsIDAuNzA5MjQ0LCAwLjg2MjI1OCIsIFwKLSAgICAgICAgICAiMC4xMzIyMDEsIDAuMTUwNjI4LCAwLjI1NDg5NSwgMC4zNDY3OTEsIDAuNDY5MTcxLCAwLjcxMzk5MywgMC44NjcwMTMiLCBcCi0gICAgICAgICAgIjAuMTM4NTc3LCAwLjE1NjkxNywgMC4yNjEzMjksIDAuMzUyOCwgMC40NzQ4ODUsIDAuNzIwMzczLCAwLjg3MzM4MiIsIFwKLSAgICAgICAgICAiMC4xNDMyMzUsIDAuMTYxNjk2LCAwLjI2NjAwNywgMC4zNTcyMzYsIDAuNDc5NTY2LCAwLjcyNDk5MSwgMC44NzgwMDkiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY5MjMsIDAuMTA3NjE1LCAwLjMyNjY5NSwgMC41MTk5NDEsIDAuNzc2MDA5LCAxLjI5Mjc2LCAxLjYxNDcxIiwgXAotICAgICAgICAgICIwLjA2OTIzNiwgMC4xMDc2MDEsIDAuMzI2Njk0LCAwLjUxOTk0MSwgMC43NzYyNjYsIDEuMjkyNzUsIDEuNjE0NzIiLCBcCi0gICAgICAgICAgIjAuMDY5MjM0LCAwLjEwNzY2MSwgMC4zMjY2ODMsIDAuNTE5OTQxLCAwLjc3NTg2NCwgMS4yOTA3NywgMS42MTQ3MiIsIFwKLSAgICAgICAgICAiMC4wNjkyMzEsIDAuMTA3MzgzLCAwLjMyNjIsIDAuNTE4NjUyLCAwLjc3NjExLCAxLjI5MTk0LCAxLjYxMzY1IiwgXAotICAgICAgICAgICIwLjA2OTE4MiwgMC4xMDc2MTMsIDAuMzI2Njc1LCAwLjUxOTk0MiwgMC43Nzc1NzcsIDEuMjkyNzcsIDEuNjE0NzciLCBcCi0gICAgICAgICAgIjAuMDY5MTU1LCAwLjEwNzY2OCwgMC4zMjY2NDQsIDAuNTE5MTI0LCAwLjc3NjM4NSwgMS4yOTI2MywgMS42MTQ2IiwgXAotICAgICAgICAgICIwLjA2OTM0MywgMC4xMDc2ODcsIDAuMzI2NjQxLCAwLjUxODk5MSwgMC43NzY0MjYsIDEuMjkyNjMsIDEuNjE0NjEiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTE0ODY0LCAwLjEzMzAwNSwgMC4yMzU1MzgsIDAuMzI2MDkyLCAwLjQ0NjkwMSwgMC42ODg1MzYsIDAuODM5NTc4IiwgXAotICAgICAgICAgICIwLjEyMjY2OSwgMC4xNDA5MTIsIDAuMjQzNDU3LCAwLjMzNDA3OCwgMC40NTQ4NDIsIDAuNjk2NDYyLCAwLjg0NzU5NiIsIFwKLSAgICAgICAgICAiMC4xMzA1NjYsIDAuMTQ4ODE4LCAwLjI1MTMyOSwgMC4zNDE4NTIsIDAuNDYyNjg4LCAwLjcwNDMzNSwgMC44NTUzNjQiLCBcCi0gICAgICAgICAgIjAuMTM2MTAxLCAwLjE1NDI4OCwgMC4yNTY4MjUsIDAuMzQ3MzUzLCAwLjQ2ODIzLCAwLjcwOTU0LCAwLjg2MDg2MSIsIFwKLSAgICAgICAgICAiMC4xNDA1NjMsIDAuMTU4NzQ5LCAwLjI2MTI5NSwgMC4zNTE4NjYsIDAuNDcyNzA5LCAwLjcxNDI5OCwgMC44NjU0MTIiLCBcCi0gICAgICAgICAgIjAuMTQ2MjgxLCAwLjE2NDQ1MiwgMC4yNjcxNTksIDAuMzU3NjAxLCAwLjQ3ODQzMywgMC43MjAwNiwgMC44NzA3MjEiLCBcCi0gICAgICAgICAgIjAuMTUwNDY0LCAwLjE2ODcwNywgMC4yNzExOTQsIDAuMzYxNzUzLCAwLjQ4MjYsIDAuNzI0MzI4LCAwLjg3NTA5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2NjcxMSwgMC4xMDM3ODksIDAuMzE1MDY3LCAwLjUwMjM0LCAwLjc1MTMwOSwgMS4yNDkzNCwgMS41NjA2MyIsIFwKLSAgICAgICAgICAiMC4wNjY3NDYsIDAuMTAzNzg5LCAwLjMxNDg3NCwgMC41MDExNTgsIDAuNzUxMzU3LCAxLjI0OTM2LCAxLjU1NTc2IiwgXAotICAgICAgICAgICIwLjA2Njc0MSwgMC4xMDM3ODIsIDAuMzE1MDQ2LCAwLjUwMTA3OSwgMC43NTEyOTksIDEuMjQ5MzUsIDEuNTYwNjIiLCBcCi0gICAgICAgICAgIjAuMDY2NzE0LCAwLjEwMzc4NywgMC4zMTUxMjUsIDAuNTAxNTY3LCAwLjc1MTM4NiwgMS4yNDcwMSwgMS41NjA2MyIsIFwKLSAgICAgICAgICAiMC4wNjY3NDcsIDAuMTAzNzksIDAuMzE0OTUxLCAwLjUwMTA5NiwgMC43NDkyODUsIDEuMjQ5MjgsIDEuNTYwNyIsIFwKLSAgICAgICAgICAiMC4wNjY2ODIsIDAuMTAzNzkyLCAwLjMxNTU2MSwgMC41MDEwNTksIDAuNzUxMTc0LCAxLjI0OTEsIDEuNTU3ODEiLCBcCi0gICAgICAgICAgIjAuMDY2NzA2LCAwLjEwMzY4MiwgMC4zMTUwMTQsIDAuNTAxNjgzLCAwLjc1MTIxLCAxLjI0OTIxLCAxLjU2MDE2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzMzM1LCAwLjAwMzM0MiwgMC4wMDMzNTEsIDAuMDAzMzUzLCAwLjAwMzM1NCwgMC4wMDMzNTEsIDAuMDAzMzU2IiwgXAotICAgICAgICAgICIwLjAwMzMyLCAwLjAwMzMyNywgMC4wMDMzMzcsIDAuMDAzMzM5LCAwLjAwMzM0LCAwLjAwMzMzNiwgMC4wMDMzNDYiLCBcCi0gICAgICAgICAgIjAuMDAzMzMxLCAwLjAwMzMzOCwgMC4wMDMzNDgsIDAuMDAzMzUxLCAwLjAwMzM1MiwgMC4wMDMzNDYsIDAuMDAzMzU3IiwgXAotICAgICAgICAgICIwLjAwMzM3MiwgMC4wMDMzNzksIDAuMDAzMzg5LCAwLjAwMzM5MiwgMC4wMDMzOTMsIDAuMDAzMzk0LCAwLjAwMzM5NSIsIFwKLSAgICAgICAgICAiMC4wMDMzOTksIDAuMDAzNDA2LCAwLjAwMzQxOCwgMC4wMDM0MiwgMC4wMDM0MjIsIDAuMDAzNDIzLCAwLjAwMzQyMyIsIFwKLSAgICAgICAgICAiMC4wMDM0ODEsIDAuMDAzNDg3LCAwLjAwMzUsIDAuMDAzNTAzLCAwLjAwMzUwNSwgMC4wMDM1MDYsIDAuMDAzNTA2IiwgXAotICAgICAgICAgICIwLjAwMzU0NSwgMC4wMDM1NTQsIDAuMDAzNTYyLCAwLjAwMzU2NCwgMC4wMDM1NjksIDAuMDAzNTY3LCAwLjAwMzU2NyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzg4OSwgMC4wMDM4OTcsIDAuMDAzOTA5LCAwLjAwMzkxMSwgMC4wMDM5MTMsIDAuMDAzOTEzLCAwLjAwMzkxNCIsIFwKLSAgICAgICAgICAiMC4wMDM4NzksIDAuMDAzODg3LCAwLjAwMzg5OSwgMC4wMDM5MDIsIDAuMDAzOTA1LCAwLjAwMzkwMywgMC4wMDM5MDQiLCBcCi0gICAgICAgICAgIjAuMDAzODg4LCAwLjAwMzg5NiwgMC4wMDM5MDgsIDAuMDAzOTExLCAwLjAwMzkxNCwgMC4wMDM5MTMsIDAuMDAzOTE0IiwgXAotICAgICAgICAgICIwLjAwMzkxNSwgMC4wMDM5MjcsIDAuMDAzOTQsIDAuMDAzOTQyLCAwLjAwMzk0MywgMC4wMDM5NDUsIDAuMDAzOTQ1IiwgXAotICAgICAgICAgICIwLjAwMzk0OCwgMC4wMDM5NTcsIDAuMDAzOTY5LCAwLjAwMzk3MiwgMC4wMDM5NzMsIDAuMDAzOTc0LCAwLjAwMzk3NSIsIFwKLSAgICAgICAgICAiMC4wMDQwMTYsIDAuMDA0MDI0LCAwLjAwNDAzNywgMC4wMDQwMzksIDAuMDA0MDQsIDAuMDA0MDQyLCAwLjAwNDA0MyIsIFwKLSAgICAgICAgICAiMC4wMDQwODgsIDAuMDA0MDk2LCAwLjAwNDEwOSwgMC4wMDQxMTIsIDAuMDA0MTE0LCAwLjAwNDExMywgMC4wMDQxMTMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJHTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1MTYzLCAwLjAwNTE2MSwgMC4wMDUxNDgsIDAuMDA1MTQzLCAwLjAwNTE0LCAwLjAwNTEzNywgMC4wMDUxMzYiLCBcCi0gICAgICAgICAgIjAuMDA1MTYsIDAuMDA1MTU5LCAwLjAwNTE0NiwgMC4wMDUxNDEsIDAuMDA1MTM3LCAwLjAwNTEzNSwgMC4wMDUxMzMiLCBcCi0gICAgICAgICAgIjAuMDA1MiwgMC4wMDUxOTksIDAuMDA1MTg1LCAwLjAwNTE4LCAwLjAwNTE3NiwgMC4wMDUxNzIsIDAuMDA1MTcyIiwgXAotICAgICAgICAgICIwLjAwNTI2OCwgMC4wMDUyNjcsIDAuMDA1MjUzLCAwLjAwNTI0OCwgMC4wMDUyNDQsIDAuMDA1MjQsIDAuMDA1MjM5IiwgXAotICAgICAgICAgICIwLjAwNTMxNiwgMC4wMDUzMTUsIDAuMDA1MzAyLCAwLjAwNTI5NiwgMC4wMDUyOTIsIDAuMDA1Mjg4LCAwLjAwNTI4NiIsIFwKLSAgICAgICAgICAiMC4wMDU0MjYsIDAuMDA1NDI2LCAwLjAwNTQxNSwgMC4wMDU0MDYsIDAuMDA1NDAxLCAwLjAwNTM5NiwgMC4wMDUzOTUiLCBcCi0gICAgICAgICAgIjAuMDA1NTI4LCAwLjAwNTUyNCwgMC4wMDU1MTIsIDAuMDA1NTAzLCAwLjAwNTQ5OCwgMC4wMDU0OTQsIDAuMDA1NDkzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1NDkxLCAwLjAwNTUsIDAuMDA1NTEzLCAwLjAwNTUxNSwgMC4wMDU1MTcsIDAuMDA1NTE4LCAwLjAwNTUxOSIsIFwKLSAgICAgICAgICAiMC4wMDU0OTUsIDAuMDA1NTAzLCAwLjAwNTUxNiwgMC4wMDU1MTgsIDAuMDA1NTIsIDAuMDA1NTIxLCAwLjAwNTUyMiIsIFwKLSAgICAgICAgICAiMC4wMDU1MzMsIDAuMDA1NTQyLCAwLjAwNTU1MywgMC4wMDU1NTYsIDAuMDA1NTU4LCAwLjAwNTU1OSwgMC4wMDU1NTkiLCBcCi0gICAgICAgICAgIjAuMDA1NTkyLCAwLjAwNTYsIDAuMDA1NjExLCAwLjAwNTYxMywgMC4wMDU2MTUsIDAuMDA1NjE2LCAwLjAwNTYxNiIsIFwKLSAgICAgICAgICAiMC4wMDU2NDIsIDAuMDA1NjU5LCAwLjAwNTY2OSwgMC4wMDU2NjEsIDAuMDA1NjcxLCAwLjAwNTY2MywgMC4wMDU2NjMiLCBcCi0gICAgICAgICAgIjAuMDA1NzQ5LCAwLjAwNTc1OCwgMC4wMDU3NjUsIDAuMDA1NzY2LCAwLjAwNTc2NywgMC4wMDU3NjYsIDAuMDA1NzY2IiwgXAotICAgICAgICAgICIwLjAwNTg0MiwgMC4wMDU4NTMsIDAuMDA1ODU4LCAwLjAwNTg1NywgMC4wMDU4NTgsIDAuMDA1ODYsIDAuMDA1ODU3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihRTikgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjM0MjUzODsKLSAgICBmdW5jdGlvbiA6ICJOMCI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg2OTc5LCAwLjEwNTY3OCwgMC4yMTEyMywgMC4zMDQzNTgsIDAuNDI4MzU2LCAwLjY3Njc3MSwgMC44MzE5MzYiLCBcCi0gICAgICAgICAgIjAuMDkyNjI2LCAwLjExMTMyNSwgMC4yMTY5MjQsIDAuMzEwMDE2LCAwLjQzNDE0LCAwLjY4MjM5NSwgMC44Mzc2MjgiLCBcCi0gICAgICAgICAgIjAuMDk4Njk1LCAwLjExNzM5NywgMC4yMjI5NiwgMC4zMTYwODUsIDAuNDQwMTEzLCAwLjY4ODI0NiwgMC44NDMzNjEiLCBcCi0gICAgICAgICAgIjAuMTAzNTY5LCAwLjEyMjI2NCwgMC4yMjc4NCwgMC4zMjA5MzgsIDAuNDQ1MTU1LCAwLjY5MzQ2NywgMC44NDg2MzIiLCBcCi0gICAgICAgICAgIjAuMTA3NiwgMC4xMjYzMDcsIDAuMjMxODY2LCAwLjMyNDk2NywgMC40NDkwOTEsIDAuNjk3MzY1LCAwLjg1MjQ3NSIsIFwKLSAgICAgICAgICAiMC4xMTMwNjMsIDAuMTMxNzYxLCAwLjIzNzM0LCAwLjMzMDQxOSwgMC40NTQ1NDEsIDAuNzAyNzg4LCAwLjg1NzkwNCIsIFwKLSAgICAgICAgICAiMC4xMTcxNzIsIDAuMTM1ODc2LCAwLjI0MTM5MSwgMC4zMzQ1MjUsIDAuNDU4NjYzLCAwLjcwNjgzMywgMC44NjIxMDYiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDczMjI4LCAwLjExMTQ0LCAwLjMzMjUzMiwgMC41MjgwMzUsIDAuNzg5MTI3LCAxLjMxMzI2LCAxLjY0MDI3IiwgXAotICAgICAgICAgICIwLjA3MzIxLCAwLjExMTQ0MywgMC4zMzIwMzQsIDAuNTI3NTQsIDAuNzg4NTk2LCAxLjMxMzMzLCAxLjY0MDI3IiwgXAotICAgICAgICAgICIwLjA3MzI0NCwgMC4xMTEzODYsIDAuMzMyMTQ0LCAwLjUyNzU4MSwgMC43ODgzMTksIDEuMzEwNTYsIDEuNjM2NiIsIFwKLSAgICAgICAgICAiMC4wNzMzMzMsIDAuMTExNTExLCAwLjMzMjI0MywgMC41MjgwNiwgMC43ODg3MTUsIDEuMzEwODEsIDEuNjM3NzUiLCBcCi0gICAgICAgICAgIjAuMDczMzc2LCAwLjExMTQ4NywgMC4zMzIxNjYsIDAuNTI4NTExLCAwLjc4OTQzNSwgMS4zMTEyNywgMS42Mzk5MyIsIFwKLSAgICAgICAgICAiMC4wNzM1MDUsIDAuMTExNDQ1LCAwLjMzMjQ2MSwgMC41Mjg0NDcsIDAuNzg5OTQ4LCAxLjMxMjk1LCAxLjYzOTg2IiwgXAotICAgICAgICAgICIwLjA3MzQ3OSwgMC4xMTE2NDYsIDAuMzMyMTE5LCAwLjUyODI5MSwgMC43ODk4NTUsIDEuMzEyNjcsIDEuNjM5OCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODYxMjIsIDAuMTA0MzQxLCAwLjIwNjk5MSwgMC4yOTc1MDIsIDAuNDE4MjczLCAwLjY1OTU4MiwgMC44MTAxNyIsIFwKLSAgICAgICAgICAiMC4wOTIxMjQsIDAuMTEwMzU1LCAwLjIxMzAwMywgMC4zMDM1MTUsIDAuNDI0MTAzLCAwLjY2NTU4NiwgMC44MTYxNzgiLCBcCi0gICAgICAgICAgIjAuMDk4ODU3LCAwLjExNzA4NywgMC4yMTk3MjIsIDAuMzEwMjc5LCAwLjQzMDg1MSwgMC42NzIxMywgMC44MjMxODgiLCBcCi0gICAgICAgICAgIjAuMTA0MzIsIDAuMTIyNTUyLCAwLjIyNTIzMiwgMC4zMTU3MzcsIDAuNDM2NDQxLCAwLjY3Nzc4OSwgMC44Mjg2OTQiLCBcCi0gICAgICAgICAgIjAuMTA4OTc3LCAwLjEyNzIxNSwgMC4yMjk4ODUsIDAuMzIwNDA1LCAwLjQ0MTA1OCwgMC42ODI0OTUsIDAuODMzMzA4IiwgXAotICAgICAgICAgICIwLjExNTE5MywgMC4xMzM0MzYsIDAuMjM2MDksIDAuMzI2NTk5LCAwLjQ0NzI2NSwgMC42ODg2MTMsIDAuODM5NDUzIiwgXAotICAgICAgICAgICIwLjEyMDA1OSwgMC4xMzgzMDYsIDAuMjQwOTI5LCAwLjMzMTQ4MiwgMC40NTIxMjEsIDAuNjkzNDYzLCAwLjg0NDM3NiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzAxMywgMC4xMDYxMjIsIDAuMzE2MjM1LCAwLjUwMjYxOCwgMC43NDk5NTYsIDEuMjQ4ODIsIDEuNTU1NjIiLCBcCi0gICAgICAgICAgIjAuMDcwMDI5LCAwLjEwNjMxMiwgMC4zMTYyMzgsIDAuNTAxMzgxLCAwLjc0ODk4NiwgMS4yNDg4MSwgMS41NTU1NyIsIFwKLSAgICAgICAgICAiMC4wNzAwNywgMC4xMDYxMzUsIDAuMzE2MDQyLCAwLjUwMjYxNywgMC43NDkxNzIsIDEuMjQ1NDUsIDEuNTU5NzQiLCBcCi0gICAgICAgICAgIjAuMDcwMTg0LCAwLjEwNjM0NiwgMC4zMTU2NjgsIDAuNTAyMDE5LCAwLjc0OTY1OCwgMS4yNDg3NywgMS41NTk3NSIsIFwKLSAgICAgICAgICAiMC4wNzAyMDksIDAuMTA2MzMxLCAwLjMxNTY1MywgMC41MDI2NjIsIDAuNzUwNDI5LCAxLjI0NjU2LCAxLjU1NzI4IiwgXAotICAgICAgICAgICIwLjA3MDI4NiwgMC4xMDYyNTYsIDAuMzE1NzA3LCAwLjUwMjQ3NywgMC43NTAyNDUsIDEuMjQ3MTIsIDEuNTU3NTkiLCBcCi0gICAgICAgICAgIjAuMDcwMTczLCAwLjEwNjM3NCwgMC4zMTYwMzgsIDAuNTAyMzQ0LCAwLjc1MDk5NCwgMS4yNDgyOCwgMS41NTkzNyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJHTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBub25fdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGZhbGxpbmdfZWRnZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTEwMDAxLCAwLjEyODcwMSwgMC4yMzQyODMsIDAuMzI3NDA4LCAwLjQ1MTU0MSwgMC42OTk4MTksIDAuODU1IiwgXAotICAgICAgICAgICIwLjExNzg4LCAwLjEzNjU4MSwgMC4yNDIxNDcsIDAuMzM1Mzc3LCAwLjQ1OTQ0MywgMC43MDc3MDYsIDAuODYyOTQzIiwgXAotICAgICAgICAgICIwLjEyNTc3NSwgMC4xNDQ0NjksIDAuMjUwMDQ4LCAwLjM0MzE1NywgMC40NjczMDMsIDAuNzE1NTg4LCAwLjg3MDc2MSIsIFwKLSAgICAgICAgICAiMC4xMzEyNTQsIDAuMTQ5OTUsIDAuMjU1NTI5LCAwLjM0ODY0MiwgMC40NzI4MSwgMC43MjEwMzksIDAuODc2MjI4IiwgXAotICAgICAgICAgICIwLjEzNTc4LCAwLjE1NDQyMywgMC4yNTk5NzMsIDAuMzUzMTU5LCAwLjQ3NzI3NiwgMC43MjU1MzQsIDAuODgwNzYzIiwgXAotICAgICAgICAgICIwLjE0MTQ5NywgMC4xNjAxOTcsIDAuMjY1NzYsIDAuMzU4ODQ1LCAwLjQ4Mjk4MiwgMC43MzEyNDYsIDAuODg2MzQ3IiwgXAotICAgICAgICAgICIwLjE0NTY0MywgMC4xNjQ0MjIsIDAuMjY5ODg3LCAwLjM2MzAwNiwgMC40ODcxMzMsIDAuNzM1NTAzLCAwLjg5MDQ1NCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzMzMDcsIDAuMTExNDU3LCAwLjMzMjI0MywgMC41Mjg3MzksIDAuNzkwMjI1LCAxLjMxMzMzLCAxLjY0MDMzIiwgXAotICAgICAgICAgICIwLjA3MzMwMSwgMC4xMTE0NTgsIDAuMzMyMTYsIDAuNTI3NzU3LCAwLjc5MDI0NCwgMS4zMTMzMSwgMS42Mzc3MyIsIFwKLSAgICAgICAgICAiMC4wNzMyNTQsIDAuMTExNDQ5LCAwLjMzMjIzMywgMC41MjgwNTYsIDAuNzkwMjE0LCAxLjMxMzMxLCAxLjY0MDMiLCBcCi0gICAgICAgICAgIjAuMDczMzExLCAwLjExMTQ1OCwgMC4zMzIyMTgsIDAuNTI4MTU1LCAwLjc5MDIzMywgMS4zMTEyNiwgMS42NDAyNiIsIFwKLSAgICAgICAgICAiMC4wNzMzMTIsIDAuMTExNDY1LCAwLjMzMjE4NiwgMC41Mjc2NDgsIDAuNzg4OTczLCAxLjMxMzMxLCAxLjY0MDI3IiwgXAotICAgICAgICAgICIwLjA3MzI2MiwgMC4xMTE0NTQsIDAuMzMyNjMzLCAwLjUyODA0MSwgMC43OTAwOCwgMS4zMTMxNywgMS42Mzg2MSIsIFwKLSAgICAgICAgICAiMC4wNzMzNjIsIDAuMTExMzk1LCAwLjMzMjA3NSwgMC41MjgwMjEsIDAuNzkwMTA0LCAxLjMxMzE3LCAxLjY0MDA5Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwMDI2MywgMC4xMTg0NDEsIDAuMjIwOTUzLCAwLjMxMTQyMSwgMC40MzIxNTYsIDAuNjczNDE1LCAwLjgyNDI3NiIsIFwKLSAgICAgICAgICAiMC4xMDgwOCwgMC4xMjYyNjEsIDAuMjI4NzY4LCAwLjMxOTIzNywgMC40Mzk5NjMsIDAuNjgxMjMsIDAuODMyMDg5IiwgXAotICAgICAgICAgICIwLjExNjI4MiwgMC4xMzQ0NjMsIDAuMjM2OTUzLCAwLjMyNzQzNywgMC40NDgxNDMsIDAuNjg5NTQ5LCAwLjg0MDI4MyIsIFwKLSAgICAgICAgICAiMC4xMjIyMTUsIDAuMTQwMzk4LCAwLjI0Mjg1OSwgMC4zMzMzOSwgMC40NTQwOTcsIDAuNjk1MzQ5LCAwLjg0NjIyNSIsIFwKLSAgICAgICAgICAiMC4xMjcwMiwgMC4xNDUyMDQsIDAuMjQ3Njg3LCAwLjMzODE3NiwgMC40NTg4NTIsIDAuNzAwMTc5LCAwLjg1MTAwMiIsIFwKLSAgICAgICAgICAiMC4xMzMzODgsIDAuMTUxNTc2LCAwLjI1NDA2MywgMC4zNDQ1NDQsIDAuNDY1MjI3LCAwLjcwNjUxNiwgMC44NTczODUiLCBcCi0gICAgICAgICAgIjAuMTM4MDY0LCAwLjE1NjI0OSwgMC4yNTg3MzMsIDAuMzQ5MjQ3LCAwLjQ2OTkwMSwgMC43MTExNDksIDAuODYyMDA5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3MDE3MywgMC4xMDYzMzUsIDAuMzE2Mjk2LCAwLjUwMjY4MywgMC43NDk4MjQsIDEuMjQ4NzcsIDEuNTU5NjIiLCBcCi0gICAgICAgICAgIjAuMDcwMTcyLCAwLjEwNjM1LCAwLjMxNjI4OCwgMC41MDI2ODMsIDAuNzQ5OTE0LCAxLjI0ODc3LCAxLjU1OTYyIiwgXAotICAgICAgICAgICIwLjA3MDE3MywgMC4xMDYzMjcsIDAuMzE2MjI4LCAwLjUwMjY4MywgMC43NDk5ODEsIDEuMjQ2NzQsIDEuNTU5NjIiLCBcCi0gICAgICAgICAgIjAuMDcwMTc3LCAwLjEwNjE4MywgMC4zMTU5ODQsIDAuNTAxNTA3LCAwLjc0OTg4NSwgMS4yNDg3NiwgMS41NTk1NSIsIFwKLSAgICAgICAgICAiMC4wNzAxODEsIDAuMTA2MzQyLCAwLjMxNjE5NCwgMC41MDI2ODcsIDAuNzUxMzkzLCAxLjI0ODgxLCAxLjU1OTciLCBcCi0gICAgICAgICAgIjAuMDcwMTMzLCAwLjEwNjM3MSwgMC4zMTYxOTgsIDAuNTAyMDA0LCAwLjc1MDIwNSwgMS4yNDg1OSwgMS41NTk0OCIsIFwKLSAgICAgICAgICAiMC4wNzAzMTMsIDAuMTA2MjM4LCAwLjMxNjE5OSwgMC41MDE2NjksIDAuNzUwMjQ3LCAxLjI0ODYyLCAxLjU1OTUyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzODg5LCAwLjAwMzg5NywgMC4wMDM5MDksIDAuMDAzOTExLCAwLjAwMzkxMywgMC4wMDM5MTMsIDAuMDAzOTE0IiwgXAotICAgICAgICAgICIwLjAwMzg3OSwgMC4wMDM4ODcsIDAuMDAzODk5LCAwLjAwMzkwMiwgMC4wMDM5MDUsIDAuMDAzOTAzLCAwLjAwMzkwNCIsIFwKLSAgICAgICAgICAiMC4wMDM4ODgsIDAuMDAzODk2LCAwLjAwMzkwOCwgMC4wMDM5MTEsIDAuMDAzOTE0LCAwLjAwMzkxMywgMC4wMDM5MTQiLCBcCi0gICAgICAgICAgIjAuMDAzOTE1LCAwLjAwMzkyNywgMC4wMDM5NCwgMC4wMDM5NDIsIDAuMDAzOTQzLCAwLjAwMzk0NSwgMC4wMDM5NDUiLCBcCi0gICAgICAgICAgIjAuMDAzOTQ4LCAwLjAwMzk1NywgMC4wMDM5NjksIDAuMDAzOTcyLCAwLjAwMzk3MywgMC4wMDM5NzQsIDAuMDAzOTc1IiwgXAotICAgICAgICAgICIwLjAwNDAxNiwgMC4wMDQwMjQsIDAuMDA0MDM3LCAwLjAwNDAzOSwgMC4wMDQwNCwgMC4wMDQwNDIsIDAuMDA0MDQzIiwgXAotICAgICAgICAgICIwLjAwNDA4OCwgMC4wMDQwOTYsIDAuMDA0MTA5LCAwLjAwNDExMiwgMC4wMDQxMTQsIDAuMDA0MTEzLCAwLjAwNDExMyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzMzNSwgMC4wMDMzNDIsIDAuMDAzMzUxLCAwLjAwMzM1MywgMC4wMDMzNTQsIDAuMDAzMzUxLCAwLjAwMzM1NiIsIFwKLSAgICAgICAgICAiMC4wMDMzMiwgMC4wMDMzMjcsIDAuMDAzMzM3LCAwLjAwMzMzOSwgMC4wMDMzNCwgMC4wMDMzMzYsIDAuMDAzMzQ2IiwgXAotICAgICAgICAgICIwLjAwMzMzMSwgMC4wMDMzMzgsIDAuMDAzMzQ4LCAwLjAwMzM1MSwgMC4wMDMzNTIsIDAuMDAzMzQ2LCAwLjAwMzM1NyIsIFwKLSAgICAgICAgICAiMC4wMDMzNzIsIDAuMDAzMzc5LCAwLjAwMzM4OSwgMC4wMDMzOTIsIDAuMDAzMzkzLCAwLjAwMzM5NCwgMC4wMDMzOTUiLCBcCi0gICAgICAgICAgIjAuMDAzMzk5LCAwLjAwMzQwNiwgMC4wMDM0MTgsIDAuMDAzNDIsIDAuMDAzNDIyLCAwLjAwMzQyMywgMC4wMDM0MjMiLCBcCi0gICAgICAgICAgIjAuMDAzNDgxLCAwLjAwMzQ4NywgMC4wMDM1LCAwLjAwMzUwMywgMC4wMDM1MDUsIDAuMDAzNTA2LCAwLjAwMzUwNiIsIFwKLSAgICAgICAgICAiMC4wMDM1NDUsIDAuMDAzNTU0LCAwLjAwMzU2MiwgMC4wMDM1NjQsIDAuMDAzNTY5LCAwLjAwMzU2NywgMC4wMDM1NjciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJHTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1NDkxLCAwLjAwNTUsIDAuMDA1NTEzLCAwLjAwNTUxNSwgMC4wMDU1MTcsIDAuMDA1NTE4LCAwLjAwNTUxOSIsIFwKLSAgICAgICAgICAiMC4wMDU0OTUsIDAuMDA1NTAzLCAwLjAwNTUxNiwgMC4wMDU1MTgsIDAuMDA1NTIsIDAuMDA1NTIxLCAwLjAwNTUyMiIsIFwKLSAgICAgICAgICAiMC4wMDU1MzMsIDAuMDA1NTQyLCAwLjAwNTU1MywgMC4wMDU1NTYsIDAuMDA1NTU4LCAwLjAwNTU1OSwgMC4wMDU1NTkiLCBcCi0gICAgICAgICAgIjAuMDA1NTkyLCAwLjAwNTYsIDAuMDA1NjExLCAwLjAwNTYxMywgMC4wMDU2MTUsIDAuMDA1NjE2LCAwLjAwNTYxNiIsIFwKLSAgICAgICAgICAiMC4wMDU2NDIsIDAuMDA1NjU5LCAwLjAwNTY2OSwgMC4wMDU2NjEsIDAuMDA1NjcxLCAwLjAwNTY2MywgMC4wMDU2NjMiLCBcCi0gICAgICAgICAgIjAuMDA1NzQ5LCAwLjAwNTc1OCwgMC4wMDU3NjUsIDAuMDA1NzY2LCAwLjAwNTc2NywgMC4wMDU3NjYsIDAuMDA1NzY2IiwgXAotICAgICAgICAgICIwLjAwNTg0MiwgMC4wMDU4NTMsIDAuMDA1ODU4LCAwLjAwNTg1NywgMC4wMDU4NTgsIDAuMDA1ODYsIDAuMDA1ODU3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1MTYzLCAwLjAwNTE2MSwgMC4wMDUxNDgsIDAuMDA1MTQzLCAwLjAwNTE0LCAwLjAwNTEzNywgMC4wMDUxMzYiLCBcCi0gICAgICAgICAgIjAuMDA1MTYsIDAuMDA1MTU5LCAwLjAwNTE0NiwgMC4wMDUxNDEsIDAuMDA1MTM3LCAwLjAwNTEzNSwgMC4wMDUxMzMiLCBcCi0gICAgICAgICAgIjAuMDA1MiwgMC4wMDUxOTksIDAuMDA1MTg1LCAwLjAwNTE4LCAwLjAwNTE3NiwgMC4wMDUxNzIsIDAuMDA1MTcyIiwgXAotICAgICAgICAgICIwLjAwNTI2OCwgMC4wMDUyNjcsIDAuMDA1MjUzLCAwLjAwNTI0OCwgMC4wMDUyNDQsIDAuMDA1MjQsIDAuMDA1MjM5IiwgXAotICAgICAgICAgICIwLjAwNTMxNiwgMC4wMDUzMTUsIDAuMDA1MzAyLCAwLjAwNTI5NiwgMC4wMDUyOTIsIDAuMDA1Mjg4LCAwLjAwNTI4NiIsIFwKLSAgICAgICAgICAiMC4wMDU0MjYsIDAuMDA1NDI2LCAwLjAwNTQxNSwgMC4wMDU0MDYsIDAuMDA1NDAxLCAwLjAwNTM5NiwgMC4wMDUzOTUiLCBcCi0gICAgICAgICAgIjAuMDA1NTI4LCAwLjAwNTUyNCwgMC4wMDU1MTIsIDAuMDA1NTAzLCAwLjAwNTQ5OCwgMC4wMDU0OTQsIDAuMDA1NDkzIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBUTEFUWDQgKgotICogLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChUTEFUWDQpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMS42OTg2OTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBsYXRjaCAoUUlOVCxOMCkgewotICAgIGRhdGFfaW4gOiAiRCI7Ci0gICAgZW5hYmxlIDogIkciOwotICB9Ci0gIHBpbihEKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2MzUwMTg7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjMzOTE5OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDYzNTAxODsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyODcsIDAuMDAwMjg5LCAwLjAwMDI5LCAwLjAwMDI5LCAwLjAwMDI5LCAwLjAwMDI4OSwgMC4wMDAyOTEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAzMTQsIDAuMDAwMzAzLCAwLjAwMDMwMSwgMC4wMDAzLCAwLjAwMDI5OSwgMC4wMDAyOTksIDAuMDAwMjk4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkciOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX2ZhbGxpbmc7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDEyNSwgLTAuMDAxMjUsIDAuMDA1LCAwLjAxMTI1LCAwLjAxNzUsIDAuMDIxMjUsIDAuMDMiLCBcCi0gICAgICAgICAgIi0wLjAxNzUsIC0wLjAwNjI1LCAwLCAwLjAwNjI1LCAwLjAxMjUsIDAuMDE2MjUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAsIDAuMDA2MjUsIDAuMDEsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAyNSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAsIDAuMDAzNzUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgLTAuMDAyNSwgMCIsIFwKLSAgICAgICAgICAiLTAuMDQ2MjUsIC0wLjAzNSwgLTAuMDI4NzUsIC0wLjAyMjUsIC0wLjAxNjI1LCAtMC4wMTI1LCAtMC4wMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjA0Mzc1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDE1LCAtMC4wMTI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDI1LCAtMC4wMiwgLTAuMDIsIC0wLjAxMzc1LCAtMC4wMTM3NSwgLTAuMDEsIC0wLjAxMzc1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTg3NSwgLTAuMDE1LCAtMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDMxMjUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAyNSwgLTAuMDIxMjUsIC0wLjAxODc1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDM3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAzMTI1LCAtMC4wMjc1LCAtMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDM3NSwgLTAuMDM3NSwgLTAuMDMzNzUsIC0wLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wNTg3NSwgLTAuMDUzNzUsIC0wLjA0NzUsIC0wLjA0MTI1LCAtMC4wNDEyNSwgLTAuMDM3NSwgLTAuMDM1IiwgXAotICAgICAgICAgICItMC4wNjEyNSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjA0LCAtMC4wNDM3NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJHIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfZmFsbGluZzsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjUsIDAuMDEzNzUsIDAuMDA3NSwgMC4wMDEyNSwgLTAuMDA1LCAtMC4wMDg3NSwgLTAuMDE3NSIsIFwKLSAgICAgICAgICAiMC4wMywgMC4wMTg3NSwgMC4wMTI1LCAwLjAwNjI1LCAwLCAtMC4wMDM3NSwgLTAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4wMzYyNSwgMC4wMjUsIDAuMDE4NzUsIDAuMDEyNSwgMC4wMDYyNSwgMC4wMDI1LCAwIiwgXAotICAgICAgICAgICIwLjA0MjUsIDAuMDMxMjUsIDAuMDI1LCAwLjAxODc1LCAwLjAxMjUsIDAuMDA4NzUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMDQ4NzUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMjUsIDAuMDE4NzUsIDAuMDE1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICIwLjA1MjUsIDAuMDQ3NSwgMC4wNDEyNSwgMC4wMzUsIDAuMDI4NzUsIDAuMDE4NzUsIDAuMDE2MjUiLCBcCi0gICAgICAgICAgIjAuMDYxMjUsIDAuMDUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMjc1LCAwLjAxODc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM3NSwgMC4wMzI1LCAwLjAzMjUsIDAuMDMyNSwgMC4wMzI1LCAwLjAzNSwgMC4wMzI1IiwgXAotICAgICAgICAgICIwLjA0MjUsIDAuMDM3NSwgMC4wMzc1LCAwLjAzNzUsIDAuMDM3NSwgMC4wMzM3NSwgMC4wMzc1IiwgXAotICAgICAgICAgICIwLjA1NSwgMC4wNDM3NSwgMC4wNDM3NSwgMC4wNDM3NSwgMC4wNDM3NSwgMC4wNCwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4wNTUsIDAuMDUsIDAuMDUsIDAuMDUsIDAuMDQzNzUsIDAuMDQ2MjUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMDYxMjUsIDAuMDU2MjUsIDAuMDU2MjUsIDAuMDUsIDAuMDUsIDAuMDUyNSwgMC4wNSIsIFwKLSAgICAgICAgICAiMC4wNzEyNSwgMC4wNiwgMC4wNiwgMC4wNiwgMC4wNTM3NSwgMC4wNTYyNSwgMC4wNTM3NSIsIFwKLSAgICAgICAgICAiMC4wNzM3NSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA2MjUsIDAuMDYyNSwgMC4wNTg3NSwgMC4wNTYyNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRykgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjQ5NzM4OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDY0OTczODsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2NDk2OTI7Ci0gICAgY2xvY2sgOiB0cnVlOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjM3MiwgMC4wMDIzNzUsIDAuMDAyNDU1LCAwLjAwMjU1MywgMC4wMDI2NzQsIDAuMDAyOTA0LCAwLjAwMzExNyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNDI1MSwgMC4wMDQyNTEsIDAuMDA0MzI3LCAwLjAwNDQzNCwgMC4wMDQ1NjMsIDAuMDA0ODE5LCAwLjAwNTAxMyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJHIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRCI7Ci0gICAgICBzZGZfY29uZCA6ICJEID09IDEnYjAiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDkzNzQ3LCAwLjEwMTc5NSwgMC4xMTAzOSwgMC4xMTY5MjUsIDAuMTIyMjU5LCAwLjEyOTUyNywgMC4xMzQ4MjgiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFEpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMS4zNzEyNzsKLSAgICBmdW5jdGlvbiA6ICJRSU5UIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJEIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3ODA4LCAwLjEzMjk1MiwgMC4xODgwOTQsIDAuMjI3NTIyLCAwLjI4OTc3OSwgMC4zNDQ5NjIsIDAuNDIzNzA2IiwgXAotICAgICAgICAgICIwLjA4NDIzNCwgMC4xMzkwOTksIDAuMTk0MDgyLCAwLjIzMzcwNCwgMC4yOTU5NDIsIDAuMzUxNTQ0LCAwLjQyOTM1IiwgXAotICAgICAgICAgICIwLjA5MTUyOCwgMC4xNDY0LCAwLjIwMTI4NywgMC4yNDA4MTEsIDAuMzAzMiwgMC4zNTg1NDQsIDAuNDM2NTY3IiwgXAotICAgICAgICAgICIwLjA5Nzk2MSwgMC4xNTI3NzUsIDAuMjA3NzY3LCAwLjI0NzQwNSwgMC4zMDk2NTgsIDAuMzY1MjUxLCAwLjQ0MzcyNSIsIFwKLSAgICAgICAgICAiMC4xMDM1NzYsIDAuMTU4NTcxLCAwLjIxMzY2NywgMC4yNTMwMzksIDAuMzE1MzgyLCAwLjM3MDg0MiwgMC40NDg2OTQiLCBcCi0gICAgICAgICAgIjAuMTExMTI4LCAwLjE2NTkyOCwgMC4yMjEyMTgsIDAuMjYwMTA5LCAwLjMyMzMzNCwgMC4zNzgzMDEsIDAuNDU2NDc2IiwgXAotICAgICAgICAgICIwLjExNjkxLCAwLjE3MTcwOCwgMC4yMjY3NjEsIDAuMjY2MTkxLCAwLjMyODU0MSwgMC4zODM1ODUsIDAuNDYyNTA4Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDIyMDgzLCAwLjEzNjUwOSwgMC4yNTI1MjgsIDAuMzM1MzkzLCAwLjQ2NjYyNiwgMC41ODMzNiwgMC43NDg4MzMiLCBcCi0gICAgICAgICAgIjAuMDIyMDYsIDAuMTM2NTEsIDAuMjUyMzIsIDAuMzM1NDI0LCAwLjQ2NzExOSwgMC41ODM2MjIsIDAuNzQ3MTY1IiwgXAotICAgICAgICAgICIwLjAyMjIzLCAwLjEzNjUwNywgMC4yNTIxNzYsIDAuMzM1NDEzLCAwLjQ2NzEyNCwgMC41ODMzNTMsIDAuNzQ4MDE4IiwgXAotICAgICAgICAgICIwLjAyMjA5MywgMC4xMzY2NzIsIDAuMjUyMTIxLCAwLjMzNTYzNSwgMC40NjcyNDgsIDAuNTg0MDM5LCAwLjc0OTM4NCIsIFwKLSAgICAgICAgICAiMC4wMjIyOSwgMC4xMzY5MTUsIDAuMjUyNzgyLCAwLjMzNTYyOCwgMC40Njc1MDEsIDAuNTgzOTQ3LCAwLjc0ODEyMiIsIFwKLSAgICAgICAgICAiMC4wMjIxNzcsIDAuMTM2NjM4LCAwLjI1Mjg1OSwgMC4zMzUxNTYsIDAuNDY3OTczLCAwLjU4MzcyMSwgMC43NDkwMyIsIFwKLSAgICAgICAgICAiMC4wMjIzMTMsIDAuMTM2NzMsIDAuMjUyNDk0LCAwLjMzNTQzNSwgMC40NjczNiwgMC41ODMxMzcsIDAuNzQ4ODk0Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDgwODIzLCAwLjEzNDkzMSwgMC4xODg4NjksIDAuMjI3Mzk1LCAwLjI4ODgzMywgMC4zNDI3NTcsIDAuNDE5NzE5IiwgXAotICAgICAgICAgICIwLjA4NjY2NSwgMC4xNDA3ODEsIDAuMTk0NjIsIDAuMjMzMjQ4LCAwLjI5NDc5MiwgMC4zNDg1ODgsIDAuNDI1NTczIiwgXAotICAgICAgICAgICIwLjA5MzIxOCwgMC4xNDcyODgsIDAuMjAxMjI4LCAwLjIzOTc2LCAwLjMwMTIwMiwgMC4zNTUxNDcsIDAuNDMyMDkzIiwgXAotICAgICAgICAgICIwLjA5OTEwMiwgMC4xNTMxNjEsIDAuMjA3MTA1LCAwLjI0NTYyOSwgMC4zMDcxMjUsIDAuMzYxLCAwLjQzNzk1NyIsIFwKLSAgICAgICAgICAiMC4xMDQxNDYsIDAuMTU4MjMxLCAwLjIxMjE4NCwgMC4yNTA3MDUsIDAuMzEyMTQ1LCAwLjM2NjA4MiwgMC40NDMwMjQiLCBcCi0gICAgICAgICAgIjAuMTEwODcxLCAwLjE2NDg0NiwgMC4yMTg4NzYsIDAuMjU3MzY2LCAwLjMxODg0NSwgMC4zNzI3NTksIDAuNDQ5NzYyIiwgXAotICAgICAgICAgICIwLjExNTk1MSwgMC4xNjk5MjEsIDAuMjIzODg5LCAwLjI2MjQzNSwgMC4zMjM5ODQsIDAuMzc3ODEyLCAwLjQ1NDgzNyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyMTQ0LCAwLjEzMjE1MSwgMC4yNDQzMDMsIDAuMzI0NTQ5LCAwLjQ1MjExNCwgMC41NjQwMDcsIDAuNzI0NTI5IiwgXAotICAgICAgICAgICIwLjAyMTQ0NiwgMC4xMzIxNTIsIDAuMjQzODE2LCAwLjMyNDU1NCwgMC40NTI4OCwgMC41NjQxODQsIDAuNzI0NTg0IiwgXAotICAgICAgICAgICIwLjAyMTMzMSwgMC4xMzIxNTUsIDAuMjQ0Mjk1LCAwLjMyNDU2MywgMC40NTE0OTQsIDAuNTY1MDY2LCAwLjcyNTI2IiwgXAotICAgICAgICAgICIwLjAyMTM0MywgMC4xMzIxNTUsIDAuMjQ0Mjk4LCAwLjMyNDU1NiwgMC40NTI1OTcsIDAuNTY1MDE0LCAwLjcyNDM4MiIsIFwKLSAgICAgICAgICAiMC4wMjE0MTksIDAuMTMyMTYyLCAwLjI0NDMyLCAwLjMyNDU0OSwgMC40NTI0NTYsIDAuNTY0OTY1LCAwLjcyNTE1OSIsIFwKLSAgICAgICAgICAiMC4wMjE0OTYsIDAuMTMyMDYzLCAwLjI0NDMxMSwgMC4zMjQyODUsIDAuNDUyMDM3LCAwLjU2NDc0NCwgMC43MjUwMDMiLCBcCi0gICAgICAgICAgIjAuMDIxNDg3LCAwLjEzMjAxMiwgMC4yNDQxNjQsIDAuMzI0Mjg1LCAwLjQ1MjQ4OSwgMC41NjQ1MzYsIDAuNzI0ODY2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkciOwotICAgICAgdGltaW5nX3NlbnNlIDogbm9uX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiByaXNpbmdfZWRnZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDMxNDIsIDAuMTU3OTQ2LCAwLjIxMjg5OSwgMC4yNTI1NDIsIDAuMzE0Nzc0LCAwLjM3MDM1NiwgMC40NDgyMTIiLCBcCi0gICAgICAgICAgIjAuMTExMzYyLCAwLjE2NjE1MywgMC4yMjExMDksIDAuMjYwNzU3LCAwLjMyMjk5MiwgMC4zNzg1NzQsIDAuNDU3MDg1IiwgXAotICAgICAgICAgICIwLjExOTY3LCAwLjE3NDQ3NywgMC4yMjk0MjIsIDAuMjY5MDc1LCAwLjMzMTQ3NywgMC4zODY4ODEsIDAuNDY0NjQ4IiwgXAotICAgICAgICAgICIwLjEyNTg1NCwgMC4xODA2NDEsIDAuMjM1NTk1LCAwLjI3NTI0NCwgMC4zMzc0NzQsIDAuMzkzMDU3LCAwLjQ3MTU1NSIsIFwKLSAgICAgICAgICAiMC4xMzA3MTIsIDAuMTg1NTk2LCAwLjI0MDQ3NCwgMC4yODAxMDMsIDAuMzQyMzQ0LCAwLjM5NzM2MywgMC40NzU2NjUiLCBcCi0gICAgICAgICAgIjAuMTM3NDA3LCAwLjE5MjMwNywgMC4yNDcxNzQsIDAuMjg2NTU3LCAwLjM0OTA0NywgMC40MDQzNDEsIDAuNDgyMzg0IiwgXAotICAgICAgICAgICIwLjE0MjE3NSwgMC4xOTY5OCwgMC4yNTE4NTgsIDAuMjkxMjU4LCAwLjM1Mzc3OCwgMC40MDg2NjEsIDAuNDg3MzE3Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDIyMTI1LCAwLjEzNjU2OSwgMC4yNTI0NDgsIDAuMzM1NjMzLCAwLjQ2NzE5MSwgMC41ODQwMzQsIDAuNzQ4Mjc3IiwgXAotICAgICAgICAgICIwLjAyMjA3LCAwLjEzNjQ4NiwgMC4yNTI0NiwgMC4zMzU2MzMsIDAuNDY3MjIsIDAuNTg0MDM3LCAwLjc0OTU4OCIsIFwKLSAgICAgICAgICAiMC4wMjIxMDIsIDAuMTM2NjM1LCAwLjI1MjA0OCwgMC4zMzU2MzgsIDAuNDY3MTcyLCAwLjU4NDAyLCAwLjc0ODMzNyIsIFwKLSAgICAgICAgICAiMC4wMjIxMzEsIDAuMTM2NzA1LCAwLjI1MjQ4MSwgMC4zMzU2MzIsIDAuNDY3MTY3LCAwLjU4NDAzNCwgMC43NDk0NzIiLCBcCi0gICAgICAgICAgIjAuMDIyMTc3LCAwLjEzNjUxNywgMC4yNTIzMzQsIDAuMzM1NjM0LCAwLjQ2NzI4MSwgMC41ODMyOSwgMC43NDgzNjUiLCBcCi0gICAgICAgICAgIjAuMDIyMjUsIDAuMTM2Nzk3LCAwLjI1MjU0OSwgMC4zMzUyMjIsIDAuNDY3MjAzLCAwLjU4MzM5NSwgMC43NDgwOTQiLCBcCi0gICAgICAgICAgIjAuMDIyMDcxLCAwLjEzNjYyMSwgMC4yNTIzMzIsIDAuMzM1MDU3LCAwLjQ2NzA1NSwgMC41ODI3NTcsIDAuNzQ4MzYxIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDkzNzQ3LCAwLjE0NzcxOCwgMC4yMDE2NzEsIDAuMjQwMjk2LCAwLjMwMTc0MSwgMC4zNTU2ODEsIDAuNDMyNjMiLCBcCi0gICAgICAgICAgIjAuMTAxNzk1LCAwLjE1NTc4MywgMC4yMDk3MzYsIDAuMjQ4MzAzLCAwLjMwOTc5OCwgMC4zNjM3NCwgMC40NDA2ODYiLCBcCi0gICAgICAgICAgIjAuMTEwMzksIDAuMTY0MzY3LCAwLjIxODMxNCwgMC4yNTY5MjgsIDAuMzE4MzgzLCAwLjM3MjMyNCwgMC40NDkyNzIiLCBcCi0gICAgICAgICAgIjAuMTE2OTI1LCAwLjE3MTA0MywgMC4yMjQ5NzMsIDAuMjYzNDY5LCAwLjMyNDk0OCwgMC4zNzg4ODgsIDAuNDU1ODM1IiwgXAotICAgICAgICAgICIwLjEyMjI1OSwgMC4xNzYzNDksIDAuMjMwMzEyLCAwLjI2ODgyNiwgMC4zMzAzNTcsIDAuMzg0MTc2LCAwLjQ2MTE1NyIsIFwKLSAgICAgICAgICAiMC4xMjk1MjcsIDAuMTgzNTUxLCAwLjIzNzU5MywgMC4yNzU5NjgsIDAuMzM3NTQ1LCAwLjM5MTQ4NywgMC40Njg0MzMiLCBcCi0gICAgICAgICAgIjAuMTM0ODI4LCAwLjE4ODgxLCAwLjI0MjkwOCwgMC4yODEyMzYsIDAuMzQyODI0LCAwLjM5Njc1NCwgMC40NzM3NzEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjEzOSwgMC4xMzIwNzQsIDAuMjQ0MjMxLCAwLjMyNDU0NSwgMC40NTIyMTksIDAuNTY1MDk4LCAwLjcyNDUyNCIsIFwKLSAgICAgICAgICAiMC4wMjE0MjksIDAuMTMyMTUzLCAwLjI0NDIyMywgMC4zMjQzMiwgMC40NTIzMzYsIDAuNTY1MDc4LCAwLjcyNDQ2NiIsIFwKLSAgICAgICAgICAiMC4wMjEzMDMsIDAuMTMyMDczLCAwLjI0NDIyOCwgMC4zMjQ0ODIsIDAuNDUyMjc1LCAwLjU2NTA4OCwgMC43MjQ1MiIsIFwKLSAgICAgICAgICAiMC4wMjE0MzYsIDAuMTMyMTUsIDAuMjQ0Mjk2LCAwLjMyNDM1MSwgMC40NTIzNjMsIDAuNTY1MDgzLCAwLjcyNDU2MSIsIFwKLSAgICAgICAgICAiMC4wMjEzMzcsIDAuMTMyMTU2LCAwLjI0NDM0NSwgMC4zMjQ1NDksIDAuNDUyODU2LCAwLjU2MzQ2NSwgMC43MjQ2MjMiLCBcCi0gICAgICAgICAgIjAuMDIxNDc2LCAwLjEzMjE1OCwgMC4yNDQyOCwgMC4zMjQyOTYsIDAuNDUyMTM3LCAwLjU2NDk5MSwgMC43MjQ0MTIiLCBcCi0gICAgICAgICAgIjAuMDIxNDM4LCAwLjEzMjEwNCwgMC4yNDQzMzEsIDAuMzI0MDQ1LCAwLjQ1MjE0MSwgMC41NjQ5NTEsIDAuNzI1MjI0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDk0NzIsIDAuMDA5NjQzLCAwLjAwOTY3MSwgMC4wMDk2NjQsIDAuMDA5Njg3LCAwLjAwOTY5MSwgMC4wMDk2OTUiLCBcCi0gICAgICAgICAgIjAuMDA5NDU2LCAwLjAwOTYyMywgMC4wMDk2NTEsIDAuMDA5NjYsIDAuMDA5NjY4LCAwLjAwOTY3MiwgMC4wMDk2NzUiLCBcCi0gICAgICAgICAgIjAuMDA5NDYxLCAwLjAwOTYzLCAwLjAwOTY1OCwgMC4wMDk2NzIsIDAuMDA5Njc2LCAwLjAwOTY3OSwgMC4wMDk2ODMiLCBcCi0gICAgICAgICAgIjAuMDA5NDcsIDAuMDA5NjQ0LCAwLjAwOTY3NCwgMC4wMDk2ODMsIDAuMDA5NjkzLCAwLjAwOTY5NiwgMC4wMDk3MDEiLCBcCi0gICAgICAgICAgIjAuMDA5NTMzLCAwLjAwOTcsIDAuMDA5NzMzLCAwLjAwOTc0MSwgMC4wMDk3NDksIDAuMDA5NzU1LCAwLjAwOTc1OSIsIFwKLSAgICAgICAgICAiMC4wMDk2NDgsIDAuMDA5ODAxLCAwLjAwOTgyNywgMC4wMDk4MzcsIDAuMDA5ODQ1LCAwLjAwOTg1MiwgMC4wMDk4NTUiLCBcCi0gICAgICAgICAgIjAuMDA5NzM1LCAwLjAwOTg4NywgMC4wMDk5LCAwLjAwOTkxOCwgMC4wMDk5MjIsIDAuMDA5OTM5LCAwLjAwOTk0MiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEwMTI3LCAwLjAxMDI4NCwgMC4wMTAzMDYsIDAuMDEwMzEzLCAwLjAxMDMxOSwgMC4wMTAzMjIsIDAuMDEwMzM1IiwgXAotICAgICAgICAgICIwLjAxMDExMywgMC4wMTAyNjksIDAuMDEwMjkxLCAwLjAxMDI5OCwgMC4wMTAyOTUsIDAuMDEwMzA4LCAwLjAxMDMxIiwgXAotICAgICAgICAgICIwLjAxMDEwOSwgMC4wMTAyNzYsIDAuMDEwMjk5LCAwLjAxMDMwNywgMC4wMTAzMTMsIDAuMDEwMzE2LCAwLjAxMDMxOSIsIFwKLSAgICAgICAgICAiMC4wMTAxNDIsIDAuMDEwMjk0LCAwLjAxMDMxOCwgMC4wMTAzMjYsIDAuMDEwMzMyLCAwLjAxMDMzNCwgMC4wMTAzMzciLCBcCi0gICAgICAgICAgIjAuMDEwMjI2LCAwLjAxMDM2NCwgMC4wMTAzODgsIDAuMDEwMzk1LCAwLjAxMDQwMiwgMC4wMTA0MDUsIDAuMDEwNDA3IiwgXAotICAgICAgICAgICIwLjAxMDI3OCwgMC4wMTA0MjQsIDAuMDEwNDUzLCAwLjAxMDQ2MSwgMC4wMTA0NjMsIDAuMDEwNDcsIDAuMDEwNDc0IiwgXAotICAgICAgICAgICIwLjAxMDMyMiwgMC4wMTA0NzksIDAuMDEwNTAzLCAwLjAxMDUwMiwgMC4wMTA1MTgsIDAuMDEwNTE1LCAwLjAxMDUxOCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkciOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEwNjE3LCAwLjAxMDc4LCAwLjAxMDc5LCAwLjAxMDc4OSwgMC4wMTA3ODcsIDAuMDEwNzg0LCAwLjAxMDc3OSIsIFwKLSAgICAgICAgICAiMC4wMTA2MTYsIDAuMDEwNzc5LCAwLjAxMDc4OSwgMC4wMTA3ODksIDAuMDEwNzg2LCAwLjAxMDc4NCwgMC4wMTA3ODEiLCBcCi0gICAgICAgICAgIjAuMDEwNjY1LCAwLjAxMDgyOCwgMC4wMTA4MzgsIDAuMDEwODM1LCAwLjAxMDgzNSwgMC4wMTA4MzIsIDAuMDEwODI5IiwgXAotICAgICAgICAgICIwLjAxMDcxMSwgMC4wMTA4NzQsIDAuMDEwODg0LCAwLjAxMDg4NSwgMC4wMTA4OCwgMC4wMTA4NzcsIDAuMDEwODc0IiwgXAotICAgICAgICAgICIwLjAxMDc3LCAwLjAxMDkzNSwgMC4wMTA5NDQsIDAuMDEwOTQ3LCAwLjAxMDk0MSwgMC4wMTA5MzcsIDAuMDEwOTM0IiwgXAotICAgICAgICAgICIwLjAxMDg3MywgMC4wMTEwMzYsIDAuMDExMDQ1LCAwLjAxMTA0NCwgMC4wMTEwNDEsIDAuMDExMDM3LCAwLjAxMTAzNCIsIFwKLSAgICAgICAgICAiMC4wMTA5NzYsIDAuMDExMTM4LCAwLjAxMTE0NiwgMC4wMTExNDQsIDAuMDExMTQsIDAuMDExMTM3LCAwLjAxMTEzMyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEwODk2LCAwLjAxMTA2MSwgMC4wMTEwODUsIDAuMDExMDkzLCAwLjAxMTEwMywgMC4wMTExMDMsIDAuMDExMTAzIiwgXAotICAgICAgICAgICIwLjAxMDg5OCwgMC4wMTEwNjQsIDAuMDExMDg4LCAwLjAxMTA5NSwgMC4wMTExMDIsIDAuMDExMTA1LCAwLjAxMTEwOCIsIFwKLSAgICAgICAgICAiMC4wMTA5NDQsIDAuMDExMTA2LCAwLjAxMTEzLCAwLjAxMTEzNywgMC4wMTExNDYsIDAuMDExMTQ3LCAwLjAxMTE0OCIsIFwKLSAgICAgICAgICAiMC4wMTA5ODYsIDAuMDExMTUyLCAwLjAxMTE3NiwgMC4wMTExODMsIDAuMDExMTksIDAuMDExMTksIDAuMDExMTk2IiwgXAotICAgICAgICAgICIwLjAxMTAzNiwgMC4wMTEyMDMsIDAuMDExMjI3LCAwLjAxMTIzNCwgMC4wMTEyNDEsIDAuMDExMjQ0LCAwLjAxMTI0NyIsIFwKLSAgICAgICAgICAiMC4wMTExNjMsIDAuMDExMzIxLCAwLjAxMTM0MywgMC4wMTEzNDksIDAuMDExMzU1LCAwLjAxMTM1OCwgMC4wMTEzNjEiLCBcCi0gICAgICAgICAgIjAuMDExMjUzLCAwLjAxMTQxNiwgMC4wMTE0NDEsIDAuMDExNDQ1LCAwLjAxMTQ1NCwgMC4wMTE0NTcsIDAuMDExNDU4Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihRTikgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAxLjM1NzE3OwotICAgIGZ1bmN0aW9uIDogIk4wIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJEIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3NDA1OCwgMC4xMzA5NTUsIDAuMTg1Njc4LCAwLjIyNDc3OCwgMC4yODczNDksIDAuMzQyMDgsIDAuNDIwMTU0IiwgXAotICAgICAgICAgICIwLjA3OTkxMSwgMC4xMzY4MDcsIDAuMTkxNTMsIDAuMjMwNjMyLCAwLjI5MzE3MywgMC4zNDc5MDMsIDAuNDI2MDA4IiwgXAotICAgICAgICAgICIwLjA4NjQ2NiwgMC4xNDMzNzQsIDAuMTk4MDk4LCAwLjIzNzIwMywgMC4yOTk3MTgsIDAuMzU0NDY0LCAwLjQzMjU4MyIsIFwKLSAgICAgICAgICAiMC4wOTIzNjcsIDAuMTQ5MjgsIDAuMjA0MDA1LCAwLjI0MzEwNiwgMC4zMDU2MDcsIDAuMzYwMzQ5LCAwLjQzODQ3NSIsIFwKLSAgICAgICAgICAiMC4wOTc0MDcsIDAuMTU0MzQsIDAuMjA5MDY4LCAwLjI0ODE2MiwgMC4zMTA2NzMsIDAuMzY1NDA5LCAwLjQ0MzUxNyIsIFwKLSAgICAgICAgICAiMC4xMDQxOTIsIDAuMTYxMTYyLCAwLjIxNTkwMiwgMC4yNTQ5NjcsIDAuMzE3NTA2LCAwLjM3MjIxLCAwLjQ1MDM3MyIsIFwKLSAgICAgICAgICAiMC4xMDkyODksIDAuMTY2MjksIDAuMjIxMDA0LCAwLjI2MDA5MSwgMC4zMjI2MzUsIDAuMzc3MzE4LCAwLjQ1NTQ5NyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyNzY4NCwgMC4xMzg0MDksIDAuMjUzMjk5LCAwLjMzNjAzMywgMC40Njc2MzUsIDAuNTgzMzIxLCAwLjc0OTAxIiwgXAotICAgICAgICAgICIwLjAyNzY3OCwgMC4xMzg0MSwgMC4yNTI4NTQsIDAuMzM2MDM2LCAwLjQ2ODQzMSwgMC41ODMzMjgsIDAuNzQ5MDMzIiwgXAotICAgICAgICAgICIwLjAyNzY3NywgMC4xMzg0MTIsIDAuMjUzMjg2LCAwLjMzNjAzOSwgMC40NjczNDEsIDAuNTg0MjgzLCAwLjc0OTc2NyIsIFwKLSAgICAgICAgICAiMC4wMjc4MSwgMC4xMzg0MzEsIDAuMjUzMzAyLCAwLjMzNjAzNiwgMC40NjgyMzMsIDAuNTg0MjQ0LCAwLjc0ODk1MSIsIFwKLSAgICAgICAgICAiMC4wMjc5NDgsIDAuMTM4NDY5LCAwLjI1MzMzLCAwLjMzNjAzNCwgMC40Njc4ODYsIDAuNTg0MjEyLCAwLjc0OTcwOCIsIFwKLSAgICAgICAgICAiMC4wMjgwNjUsIDAuMTM4NDA5LCAwLjI1MzMwMSwgMC4zMzU4NjMsIDAuNDY3NjA2LCAwLjU4NDA1NiwgMC43NDk1ODciLCBcCi0gICAgICAgICAgIjAuMDI4MTk1LCAwLjEzODM5MSwgMC4yNTMxMDksIDAuMzM1ODYyLCAwLjQ2ODE2MywgMC41ODM5MzIsIDAuNzQ5NSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3MTM2NywgMC4xMjc0OCwgMC4xODEzNzcsIDAuMjE5ODc2LCAwLjI4MTQ4MSwgMC4zMzUyNTcsIDAuNDEyMjMyIiwgXAotICAgICAgICAgICIwLjA3NzUzLCAwLjEzMzYzNSwgMC4xODc1MzQsIDAuMjI2MDMyLCAwLjI4NzY2NiwgMC4zNDE0ODgsIDAuNDE4NDc2IiwgXAotICAgICAgICAgICIwLjA4NDgzMSwgMC4xNDA5NDIsIDAuMTk0ODQ1LCAwLjIzMzMxNywgMC4yOTQ5NjcsIDAuMzQ4Nzk5LCAwLjQyNTg0OCIsIFwKLSAgICAgICAgICAiMC4wOTEyODcsIDAuMTQ3NDIzLCAwLjIwMTMyNSwgMC4yMzk4MjEsIDAuMzAxNDY0LCAwLjM1NTI4NCwgMC40MzIyNDciLCBcCi0gICAgICAgICAgIjAuMDk2OTAzLCAwLjE1MzA0MiwgMC4yMDY5NCwgMC4yNDU0MzQsIDAuMzA3MDIyLCAwLjM2MDksIDAuNDM3ODYiLCBcCi0gICAgICAgICAgIjAuMTA0NDUyLCAwLjE2MDYwMSwgMC4yMTQ1MTUsIDAuMjUyOTk0LCAwLjMxNDU3MiwgMC4zNjg0MzgsIDAuNDQ1MzgiLCBcCi0gICAgICAgICAgIjAuMTEwMjY2LCAwLjE2NjQzMiwgMC4yMjAzMjIsIDAuMjU4ODA1LCAwLjMyMDQwNSwgMC4zNzQyNjEsIDAuNDUxMjEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjY1ODksIDAuMTMzNzg4LCAwLjI0NTEwNywgMC4zMjUwNDMsIDAuNDUxOTIzLCAwLjU2NDk5MSwgMC43MjUzNDIiLCBcCi0gICAgICAgICAgIjAuMDI2NTg2LCAwLjEzMzcwOSwgMC4yNDQ4OTIsIDAuMzI1MDc2LCAwLjQ1MjQ0MSwgMC41NjUyOTQsIDAuNzIzNDg0IiwgXAotICAgICAgICAgICIwLjAyNjYxMiwgMC4xMzM3NDgsIDAuMjQ0NDc2LCAwLjMyNDkzNywgMC40NTIxODgsIDAuNTY1MDM5LCAwLjcyNDI3IiwgXAotICAgICAgICAgICIwLjAyNjcwMiwgMC4xMzM4MzgsIDAuMjQ0NTUxLCAwLjMyNTA2OCwgMC40NTI0NDgsIDAuNTY1MzMsIDAuNzI1NTA2IiwgXAotICAgICAgICAgICIwLjAyNjc3NywgMC4xMzQwMzYsIDAuMjQ1MTAyLCAwLjMyNTA2NywgMC40NTI1NzUsIDAuNTY1Mjk1LCAwLjcyNDY2NCIsIFwKLSAgICAgICAgICAiMC4wMjY5NDgsIDAuMTMzOTM0LCAwLjI0NTIwNiwgMC4zMjQ2NiwgMC40NTMwOTMsIDAuNTY1MTIzLCAwLjcyNTEyOSIsIFwKLSAgICAgICAgICAiMC4wMjcxMTQsIDAuMTMzODYxLCAwLjI0NTA3NywgMC4zMjQ5MzEsIDAuNDUyNDMsIDAuNTY0NjI3LCAwLjcyNTI1MyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJHIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5vbl91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcmlzaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg2OTkxLCAwLjE0Mzg5OCwgMC4xOTg2MjUsIDAuMjM3NzE4LCAwLjMwMDI1LCAwLjM1NDk3NSwgMC40MzMxMDEiLCBcCi0gICAgICAgICAgIjAuMDk1MDUyLCAwLjE1MTk1OSwgMC4yMDY2ODYsIDAuMjQ1NzYyLCAwLjMwODMwOSwgMC4zNjMwNCwgMC40NDExNjIiLCBcCi0gICAgICAgICAgIjAuMTAzNjMsIDAuMTYwNTMyLCAwLjIxNTI1OCwgMC4yNTQzNDUsIDAuMzE2ODgxLCAwLjM3MTYwOSwgMC40NDk3MzUiLCBcCi0gICAgICAgICAgIjAuMTEwMTcyLCAwLjE2NzA4MiwgMC4yMjE4MDYsIDAuMjYwODksIDAuMzIzNDMxLCAwLjM3ODE2LCAwLjQ1NjI4NyIsIFwKLSAgICAgICAgICAiMC4xMTU1MTMsIDAuMTcyNDI3LCAwLjIyNzE2OCwgMC4yNjYyNTMsIDAuMzI4Nzc5LCAwLjM4MzUxOCwgMC40NjE2MzMiLCBcCi0gICAgICAgICAgIjAuMTIyNzcxLCAwLjE3OTY4NCwgMC4yMzQ0MDYsIDAuMjczNDg0LCAwLjMzNjA0NCwgMC4zOTA3NTUsIDAuNDY4ODgiLCBcCi0gICAgICAgICAgIjAuMTI4MDgsIDAuMTg1MDAyLCAwLjIzOTczOSwgMC4yNzg4MTksIDAuMzQxMzgxLCAwLjM5NjA1NiwgMC40NzQyNjEiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjc2NzIsIDAuMTM4MzM0LCAwLjI1MzE0OCwgMC4zMzYwMjUsIDAuNDY3Nzg1LCAwLjU4NDMxMywgMC43NDkwMDIiLCBcCi0gICAgICAgICAgIjAuMDI3NjY0LCAwLjEzODQsIDAuMjUzMTMzLCAwLjMzNTg0NCwgMC40Njc4MjcsIDAuNTg0MywgMC43NDg5ODQiLCBcCi0gICAgICAgICAgIjAuMDI3Njc1LCAwLjEzODMzMSwgMC4yNTMxNDksIDAuMzM1OTgzLCAwLjQ2NzgwMiwgMC41ODQzMDcsIDAuNzQ5MDAyIiwgXAotICAgICAgICAgICIwLjAyNzY3OCwgMC4xMzg0MDYsIDAuMjUzMjgxLCAwLjMzNTksIDAuNDY3ODQyLCAwLjU4NDMwNiwgMC43NDkwMTciLCBcCi0gICAgICAgICAgIjAuMDI3NzA3LCAwLjEzODQxMSwgMC4yNTMzMzYsIDAuMzM2MDMxLCAwLjQ2ODQxOSwgMC41ODI5MzYsIDAuNzQ5MDQ5IiwgXAotICAgICAgICAgICIwLjAyNzY4NiwgMC4xMzg0MjEsIDAuMjUzMjk5LCAwLjMzNTYyNCwgMC40Njc2NjQsIDAuNTg0MjQ0LCAwLjc0ODk1NCIsIFwKLSAgICAgICAgICAiMC4wMjc2OTMsIDAuMTM4MzYyLCAwLjI1MzM4MiwgMC4zMzU0MzgsIDAuNDY3NjIsIDAuNTg0MjA4LCAwLjc0OTczOCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5NjQ1MSwgMC4xNTI1NjUsIDAuMjA2NDY2LCAwLjI0NDk1OCwgMC4zMDY1OTcsIDAuMzYwNDE4LCAwLjQzNzM5OSIsIFwKLSAgICAgICAgICAiMC4xMDQ2NjUsIDAuMTYwNzc5LCAwLjIxNDY3OSwgMC4yNTMxNzEsIDAuMzE0ODEyLCAwLjM2ODYzMywgMC40NDU2MDciLCBcCi0gICAgICAgICAgIjAuMTEyOTc4LCAwLjE2OTA5MiwgMC4yMjI5OTIsIDAuMjYxNDg2LCAwLjMyMzAyMSwgMC4zNzY5NCwgMC40NTM5NDIiLCBcCi0gICAgICAgICAgIjAuMTE5MTU2LCAwLjE3NTI3LCAwLjIyOTE3LCAwLjI2NzY2MiwgMC4zMjkyOTksIDAuMzgzMTIyLCAwLjQ2MDA5MSIsIFwKLSAgICAgICAgICAiMC4xMjQwMTIsIDAuMTgwMTI3LCAwLjIzNDAyNiwgMC4yNzI1MTksIDAuMzM0MTY1LCAwLjM4ODAwMSwgMC40NjUwMyIsIFwKLSAgICAgICAgICAiMC4xMzA3MTksIDAuMTg2ODM3LCAwLjI0MDczNywgMC4yNzkyMjMsIDAuMzQwODUyLCAwLjM5NDY4OSwgMC40NzE3MjQiLCBcCi0gICAgICAgICAgIjAuMTM1NDgyLCAwLjE5MTU4MiwgMC4yNDU1MywgMC4yODM5OTIsIDAuMzQ1NjA3LCAwLjM5OTQ4MywgMC40NzY0MTIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjY1NTUsIDAuMTMzNzE5LCAwLjI0NDg3MiwgMC4zMjUwNTEsIDAuNDUyNDY3LCAwLjU2NTMyMiwgMC43MjQ1NjIiLCBcCi0gICAgICAgICAgIjAuMDI2NTU3LCAwLjEzMzY5OSwgMC4yNDQ4NzYsIDAuMzI1MDYzLCAwLjQ1MjQ1LCAwLjU2NTMyNywgMC43MjU1NjEiLCBcCi0gICAgICAgICAgIjAuMDI2NTU0LCAwLjEzMzgzNSwgMC4yNDQ1OTcsIDAuMzI1MDcsIDAuNDUyNTA1LCAwLjU2NTI5OSwgMC43MjQzODYiLCBcCi0gICAgICAgICAgIjAuMDI2NTU5LCAwLjEzMzg1NCwgMC4yNDQ4NTUsIDAuMzI1MDUyLCAwLjQ1MjQ1NiwgMC41NjUzMjIsIDAuNzI1NTQ4IiwgXAotICAgICAgICAgICIwLjAyNjU1NiwgMC4xMzM3NSwgMC4yNDQ5MTgsIDAuMzI1MDQxLCAwLjQ1MjQ1MiwgMC41NjQ2NDEsIDAuNzI0MzQ4IiwgXAotICAgICAgICAgICIwLjAyNjY1MSwgMC4xMzM5MzUsIDAuMjQ0ODc2LCAwLjMyNDg5OSwgMC40NTIyMTIsIDAuNTY1MDE3LCAwLjcyNDAwMyIsIFwKLSAgICAgICAgICAiMC4wMjY1NTgsIDAuMTMzODAzLCAwLjI0NDc0OSwgMC4zMjQ2MTQsIDAuNDUyMjYyLCAwLjU2NDI2MywgMC43MjQ3MzEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJEIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMDEyNywgMC4wMTAyODQsIDAuMDEwMzA2LCAwLjAxMDMxMywgMC4wMTAzMTksIDAuMDEwMzIyLCAwLjAxMDMzNSIsIFwKLSAgICAgICAgICAiMC4wMTAxMTMsIDAuMDEwMjY5LCAwLjAxMDI5MSwgMC4wMTAyOTgsIDAuMDEwMjk1LCAwLjAxMDMwOCwgMC4wMTAzMSIsIFwKLSAgICAgICAgICAiMC4wMTAxMDksIDAuMDEwMjc2LCAwLjAxMDI5OSwgMC4wMTAzMDcsIDAuMDEwMzEzLCAwLjAxMDMxNiwgMC4wMTAzMTkiLCBcCi0gICAgICAgICAgIjAuMDEwMTQyLCAwLjAxMDI5NCwgMC4wMTAzMTgsIDAuMDEwMzI2LCAwLjAxMDMzMiwgMC4wMTAzMzQsIDAuMDEwMzM3IiwgXAotICAgICAgICAgICIwLjAxMDIyNiwgMC4wMTAzNjQsIDAuMDEwMzg4LCAwLjAxMDM5NSwgMC4wMTA0MDIsIDAuMDEwNDA1LCAwLjAxMDQwNyIsIFwKLSAgICAgICAgICAiMC4wMTAyNzgsIDAuMDEwNDI0LCAwLjAxMDQ1MywgMC4wMTA0NjEsIDAuMDEwNDYzLCAwLjAxMDQ3LCAwLjAxMDQ3NCIsIFwKLSAgICAgICAgICAiMC4wMTAzMjIsIDAuMDEwNDc5LCAwLjAxMDUwMywgMC4wMTA1MDIsIDAuMDEwNTE4LCAwLjAxMDUxNSwgMC4wMTA1MTgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwOTQ3MiwgMC4wMDk2NDMsIDAuMDA5NjcxLCAwLjAwOTY2NCwgMC4wMDk2ODcsIDAuMDA5NjkxLCAwLjAwOTY5NSIsIFwKLSAgICAgICAgICAiMC4wMDk0NTYsIDAuMDA5NjIzLCAwLjAwOTY1MSwgMC4wMDk2NiwgMC4wMDk2NjgsIDAuMDA5NjcyLCAwLjAwOTY3NSIsIFwKLSAgICAgICAgICAiMC4wMDk0NjEsIDAuMDA5NjMsIDAuMDA5NjU4LCAwLjAwOTY3MiwgMC4wMDk2NzYsIDAuMDA5Njc5LCAwLjAwOTY4MyIsIFwKLSAgICAgICAgICAiMC4wMDk0NywgMC4wMDk2NDQsIDAuMDA5Njc0LCAwLjAwOTY4MywgMC4wMDk2OTMsIDAuMDA5Njk2LCAwLjAwOTcwMSIsIFwKLSAgICAgICAgICAiMC4wMDk1MzMsIDAuMDA5NywgMC4wMDk3MzMsIDAuMDA5NzQxLCAwLjAwOTc0OSwgMC4wMDk3NTUsIDAuMDA5NzU5IiwgXAotICAgICAgICAgICIwLjAwOTY0OCwgMC4wMDk4MDEsIDAuMDA5ODI3LCAwLjAwOTgzNywgMC4wMDk4NDUsIDAuMDA5ODUyLCAwLjAwOTg1NSIsIFwKLSAgICAgICAgICAiMC4wMDk3MzUsIDAuMDA5ODg3LCAwLjAwOTksIDAuMDA5OTE4LCAwLjAwOTkyMiwgMC4wMDk5MzksIDAuMDA5OTQyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTA4OTYsIDAuMDExMDYxLCAwLjAxMTA4NSwgMC4wMTEwOTMsIDAuMDExMTAzLCAwLjAxMTEwMywgMC4wMTExMDMiLCBcCi0gICAgICAgICAgIjAuMDEwODk4LCAwLjAxMTA2NCwgMC4wMTEwODgsIDAuMDExMDk1LCAwLjAxMTEwMiwgMC4wMTExMDUsIDAuMDExMTA4IiwgXAotICAgICAgICAgICIwLjAxMDk0NCwgMC4wMTExMDYsIDAuMDExMTMsIDAuMDExMTM3LCAwLjAxMTE0NiwgMC4wMTExNDcsIDAuMDExMTQ4IiwgXAotICAgICAgICAgICIwLjAxMDk4NiwgMC4wMTExNTIsIDAuMDExMTc2LCAwLjAxMTE4MywgMC4wMTExOSwgMC4wMTExOSwgMC4wMTExOTYiLCBcCi0gICAgICAgICAgIjAuMDExMDM2LCAwLjAxMTIwMywgMC4wMTEyMjcsIDAuMDExMjM0LCAwLjAxMTI0MSwgMC4wMTEyNDQsIDAuMDExMjQ3IiwgXAotICAgICAgICAgICIwLjAxMTE2MywgMC4wMTEzMjEsIDAuMDExMzQzLCAwLjAxMTM0OSwgMC4wMTEzNTUsIDAuMDExMzU4LCAwLjAxMTM2MSIsIFwKLSAgICAgICAgICAiMC4wMTEyNTMsIDAuMDExNDE2LCAwLjAxMTQ0MSwgMC4wMTE0NDUsIDAuMDExNDU0LCAwLjAxMTQ1NywgMC4wMTE0NTgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMDYxNywgMC4wMTA3OCwgMC4wMTA3OSwgMC4wMTA3ODksIDAuMDEwNzg3LCAwLjAxMDc4NCwgMC4wMTA3NzkiLCBcCi0gICAgICAgICAgIjAuMDEwNjE2LCAwLjAxMDc3OSwgMC4wMTA3ODksIDAuMDEwNzg5LCAwLjAxMDc4NiwgMC4wMTA3ODQsIDAuMDEwNzgxIiwgXAotICAgICAgICAgICIwLjAxMDY2NSwgMC4wMTA4MjgsIDAuMDEwODM4LCAwLjAxMDgzNSwgMC4wMTA4MzUsIDAuMDEwODMyLCAwLjAxMDgyOSIsIFwKLSAgICAgICAgICAiMC4wMTA3MTEsIDAuMDEwODc0LCAwLjAxMDg4NCwgMC4wMTA4ODUsIDAuMDEwODgsIDAuMDEwODc3LCAwLjAxMDg3NCIsIFwKLSAgICAgICAgICAiMC4wMTA3NywgMC4wMTA5MzUsIDAuMDEwOTQ0LCAwLjAxMDk0NywgMC4wMTA5NDEsIDAuMDEwOTM3LCAwLjAxMDkzNCIsIFwKLSAgICAgICAgICAiMC4wMTA4NzMsIDAuMDExMDM2LCAwLjAxMTA0NSwgMC4wMTEwNDQsIDAuMDExMDQxLCAwLjAxMTAzNywgMC4wMTEwMzQiLCBcCi0gICAgICAgICAgIjAuMDEwOTc2LCAwLjAxMTEzOCwgMC4wMTExNDYsIDAuMDExMTQ0LCAwLjAxMTE0LCAwLjAxMTEzNywgMC4wMTExMzMiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBBRERGSFgxICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKEFEREZIWDEpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC45MTY3NTE7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMzIxODc2OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMzE5OTU2OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMzIxODc2OwotICB9Ci0gIHBpbihCKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDMwNTc0OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMzAzNDM7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAzMDU3NDsKLSAgfQotICBwaW4oQ0kpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMjM1OTQ4OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMjM0MTkxOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMjM1OTQ4OwotICB9Ci0gIHBpbihDTykgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjMzMzE4NjsKLSAgICBmdW5jdGlvbiA6ICIoKChBIEIpKyhCIENJKSkrKENJIEEpKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc5MDUxLCAwLjA5ODQwMiwgMC4yMDQ2MjcsIDAuMjk3NzIxLCAwLjQyMjE5LCAwLjY3MDQyNSwgMC44MjU0MTEiLCBcCi0gICAgICAgICAgIjAuMDg1ODk3LCAwLjEwNTI0NSwgMC4yMTEzOSwgMC4zMDQzNTIsIDAuNDI4Njk1LCAwLjY3NjcyMiwgMC44MzE3NDUiLCBcCi0gICAgICAgICAgIjAuMDkzNTk3LCAwLjExMjk0MywgMC4yMTkwMSwgMC4zMTIxMDUsIDAuNDM2MzczLCAwLjY4NDYwMSwgMC44Mzk1MDIiLCBcCi0gICAgICAgICAgIjAuMTAwNTUzLCAwLjExOTkxOSwgMC4yMjYxMzgsIDAuMzE5Mjk1LCAwLjQ0MzUyNCwgMC42OTE3NzcsIDAuODQ2NzkiLCBcCi0gICAgICAgICAgIjAuMTA2ODA2LCAwLjEyNjIwOCwgMC4yMzI0MTMsIDAuMzI1ODU5LCAwLjQ0OTk5MywgMC42OTc5NzEsIDAuODUzMTgzIiwgXAotICAgICAgICAgICIwLjExNTgxMywgMC4xMzUyNjIsIDAuMjQxNTgzLCAwLjMzNDkyMywgMC40NTkwNzIsIDAuNzA3MjYzLCAwLjg2MjI0OCIsIFwKLSAgICAgICAgICAiMC4xMjI1NTgsIDAuMTQyMDY1LCAwLjI0ODQ4NiwgMC4zNDE5MjksIDAuNDY1NjY0LCAwLjcxMzg5NSwgMC44NjkwMjEiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc3NDY2LCAwLjExNTYzNiwgMC4zMzM4NTEsIDAuNTI4NzQ2LCAwLjc5MDgyOCwgMS4zMTQ1OSwgMS42NDIiLCBcCi0gICAgICAgICAgIjAuMDc3NDk0LCAwLjExNTQxOCwgMC4zMzM4NzEsIDAuNTI5NDkyLCAwLjc5MDM4NiwgMS4zMTQyMSwgMS42NDE4NSIsIFwKLSAgICAgICAgICAiMC4wNzczMDEsIDAuMTE1NDY5LCAwLjMzMzczMywgMC41Mjg2MTQsIDAuNzkwODE4LCAxLjMxMjAxLCAxLjY0MTg2IiwgXAotICAgICAgICAgICIwLjA3ODA4MSwgMC4xMTU3NzcsIDAuMzMzOTU2LCAwLjUyOTA0MiwgMC43OTA4MTEsIDEuMzEyMTIsIDEuNjQxNyIsIFwKLSAgICAgICAgICAiMC4wNzg5MDQsIDAuMTE1OTU5LCAwLjMzMzY2OCwgMC41Mjk1MTksIDAuNzkwNzQsIDEuMzEyNDYsIDEuNjQxNDgiLCBcCi0gICAgICAgICAgIjAuMDc5NTQ0LCAwLjExNzAyNSwgMC4zMzM5NzQsIDAuNTI5NTk2LCAwLjc5MDcwMiwgMS4zMTQsIDEuNjM5NDIiLCBcCi0gICAgICAgICAgIjAuMDgxMTg5LCAwLjExNzc4MywgMC4zMzQ0NzMsIDAuNTI5MzI4LCAwLjc5MDQyNSwgMS4zMTM1NywgMS42MzkiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDgyMjI5LCAwLjEwMTI5MiwgMC4yMDQ1NjIsIDAuMjk1NTI3LCAwLjQxNjQzOSwgMC42NTc5MTgsIDAuODA4NDI3IiwgXAotICAgICAgICAgICIwLjA4OTAxNCwgMC4xMDgwODIsIDAuMjExNjUyLCAwLjMwMTg3LCAwLjQyMjUzNCwgMC42NjM4ODgsIDAuODE0NTc0IiwgXAotICAgICAgICAgICIwLjA5NjAzNiwgMC4xMTUxMDEsIDAuMjE4NDIyLCAwLjMwODg1NywgMC40Mjk5MjMsIDAuNjcwODY5LCAwLjgyMTY0OSIsIFwKLSAgICAgICAgICAiMC4xMDIzNzIsIDAuMTIxNDg5LCAwLjIyNDc2NywgMC4zMTU3MzQsIDAuNDM2MDQ0LCAwLjY3NzkxNSwgMC44Mjg0NjIiLCBcCi0gICAgICAgICAgIjAuMTA3ODkyLCAwLjEyNzA0NywgMC4yMzAzNzcsIDAuMzIxMzkxLCAwLjQ0MTYyNiwgMC42ODMwNDYsIDAuODM0NjA2IiwgXAotICAgICAgICAgICIwLjExNTMwNiwgMC4xMzQ2MDIsIDAuMjM4MjUxLCAwLjMyODkwMywgMC40NDk5MTMsIDAuNjkwOTk2LCAwLjg0MTQzOCIsIFwKLSAgICAgICAgICAiMC4xMjA4MjUsIDAuMTQwMjAyLCAwLjI0MzkwNywgMC4zMzQyMzEsIDAuNDU1MjYsIDAuNjk2ODI0LCAwLjg0Njk3NSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzUyNjQsIDAuMTExMzMsIDAuMzE5MjYxLCAwLjUwMzk2NSwgMC43NTI3NTksIDEuMjQ5MzYsIDEuNTYwMTkiLCBcCi0gICAgICAgICAgIjAuMDc0ODA2LCAwLjExMDc1MiwgMC4zMTkzMTcsIDAuNTA0MzEyLCAwLjc1MTE0OSwgMS4yNDk1MSwgMS41NjAzNCIsIFwKLSAgICAgICAgICAiMC4wNzUxOTEsIDAuMTExMzk5LCAwLjMxOTM3MiwgMC41MDQ1MTIsIDAuNzUxOTc0LCAxLjI0NzczLCAxLjU2MDM2IiwgXAotICAgICAgICAgICIwLjA3NTMzNiwgMC4xMTE5MjcsIDAuMzE5MzQ3LCAwLjUwNDMzNSwgMC43NTI0NzQsIDEuMjQ4NDYsIDEuNTU5NTYiLCBcCi0gICAgICAgICAgIjAuMDc2MjAyLCAwLjExMjYwOSwgMC4zMTk0MDgsIDAuNTAzOTIyLCAwLjc1MjY0MSwgMS4yNDkyNiwgMS41NTk3OSIsIFwKLSAgICAgICAgICAiMC4wNzc3MTgsIDAuMTEzMzY1LCAwLjMxOTQ1OSwgMC41MDQyMzgsIDAuNzUxNDI3LCAxLjI0ODU4LCAxLjU1OTY1IiwgXAotICAgICAgICAgICIwLjA3ODM3MywgMC4xMTM3ODUsIDAuMzE5Njk4LCAwLjUwNDY3NCwgMC43NTE2ODUsIDEuMjQ4NjIsIDEuNTU4NyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzk1NzYsIDAuMDk4OTExLCAwLjIwNTA5NiwgMC4yOTgyNDQsIDAuNDIyNjk3LCAwLjY3MDk4NCwgMC44MjU5NjUiLCBcCi0gICAgICAgICAgIjAuMDg2OTUyLCAwLjEwNjI4NSwgMC4yMTI1MTIsIDAuMzA1OTkyLCAwLjQzMDEwNSwgMC42NzgxOCwgMC44MzMzMjEiLCBcCi0gICAgICAgICAgIjAuMDk2NjMsIDAuMTE1OTYzLCAwLjIyMjIyMywgMC4zMTUzNDIsIDAuNDM5NzU3LCAwLjY4ODAzNiwgMC44NDI5MzMiLCBcCi0gICAgICAgICAgIjAuMTA1NzA5LCAwLjEyNTAwNCwgMC4yMzEyNDYsIDAuMzI0NjY2LCAwLjQ0ODgwOSwgMC42OTcwNzgsIDAuODUyMDA1IiwgXAotICAgICAgICAgICIwLjExMzczNiwgMC4xMzMwODgsIDAuMjM5MzE2LCAwLjMzMjM5OSwgMC40NTY5ODMsIDAuNzA1MDY2LCAwLjg1OTg4MiIsIFwKLSAgICAgICAgICAiMC4xMjQ2NTIsIDAuMTQ0MTA4LCAwLjI1MDQ3NSwgMC4zNDM0NzIsIDAuNDY3OTQ3LCAwLjcxNTk0NCwgMC44NzEyMDQiLCBcCi0gICAgICAgICAgIjAuMTMyOTI2LCAwLjE1MjQ3NiwgMC4yNTg2MTMsIDAuMzUxODc2LCAwLjQ3NjMxMywgMC43MjQyMzEsIDAuODc5MzQxIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3NzIwNywgMC4xMTU5NTksIDAuMzMzNzMsIDAuNTI4ODcsIDAuNzkwODg0LCAxLjMxMjk4LCAxLjY0MjExIiwgXAotICAgICAgICAgICIwLjA3NzE4MywgMC4xMTU4ODEsIDAuMzMzNjk3LCAwLjUyOTUzOCwgMC43OTA4MDEsIDEuMzE0NTMsIDEuNjQxOTciLCBcCi0gICAgICAgICAgIjAuMDc3MiwgMC4xMTU5MDUsIDAuMzMzODU0LCAwLjUyODYyNSwgMC43OTA3ODYsIDEuMzExOTUsIDEuNjQxNyIsIFwKLSAgICAgICAgICAiMC4wNzgwMDgsIDAuMTE2NDE0LCAwLjMzMzg1OCwgMC41Mjk1MzQsIDAuNzkwNzc0LCAxLjMxMywgMS42NDE2MiIsIFwKLSAgICAgICAgICAiMC4wNzk1MSwgMC4xMTYwMzUsIDAuMzMzOTgsIDAuNTI4Njk4LCAwLjc5MDE1OSwgMS4zMTIxNSwgMS42NDE1MiIsIFwKLSAgICAgICAgICAiMC4wODA1MDMsIDAuMTE2OTY2LCAwLjMzNDE3LCAwLjUyODk5OCwgMC43OTA3NjksIDEuMzEyODYsIDEuNjQwMzMiLCBcCi0gICAgICAgICAgIjAuMDgxMTQsIDAuMTE4MzE5LCAwLjMzNDIyOSwgMC41MjkzMTEsIDAuNzkwODM5LCAxLjMxMjY3LCAxLjY0MTMyIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4MDc4LCAwLjEwMDA2NiwgMC4yMDMzOTQsIDAuMjk0NDIzLCAwLjQxNTE5MywgMC42NTY3MzMsIDAuODA4MDAxIiwgXAotICAgICAgICAgICIwLjA4ODA2OSwgMC4xMDcwOCwgMC4yMTA1MjMsIDAuMzAxNTg4LCAwLjQyMTcwNCwgMC42NjQxNzYsIDAuODE1MDA0IiwgXAotICAgICAgICAgICIwLjA5NzYwMSwgMC4xMTY2MTIsIDAuMjE5ODY2LCAwLjMxMTExOSwgMC40MzE5MjgsIDAuNjczNiwgMC44MjQ3ODgiLCBcCi0gICAgICAgICAgIjAuMTA2NjYyLCAwLjEyNTY3NiwgMC4yMjkxMjYsIDAuMzIwMTU1LCAwLjQ0MDk5LCAwLjY4Mjc3NywgMC44MzM4NDciLCBcCi0gICAgICAgICAgIjAuMTE0MzEzLCAwLjEzMzM3NCwgMC4yMzY4MTYsIDAuMzI3OTM4LCAwLjQ0ODA4NywgMC42OTA0MzIsIDAuODQwNTQ2IiwgXAotICAgICAgICAgICIwLjEyNDczOCwgMC4xNDM5NTMsIDAuMjQ3MzQ2LCAwLjMzODQ4OCwgMC40NTkxMzgsIDAuNzAwNzEyLCAwLjg1MTEyOSIsIFwKLSAgICAgICAgICAiMC4xMzI0NDgsIDAuMTUxNzI3LCAwLjI1NTM2NCwgMC4zNDYyMDQsIDAuNDY2NjcsIDAuNzA4MTU5LCAwLjg1OTE0MiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzYyNjEsIDAuMTEyNTksIDAuMzE5MjkxLCAwLjUwNDA5LCAwLjc1MTUyMiwgMS4yNDk0NCwgMS41NTk5OCIsIFwKLSAgICAgICAgICAiMC4wNzYyOTIsIDAuMTEyNjYxLCAwLjMxOTgzNSwgMC41MDQzMDIsIDAuNzUxNzEzLCAxLjI0ODI3LCAxLjU2MDU2IiwgXAotICAgICAgICAgICIwLjA3NjU0MywgMC4xMTI3NDgsIDAuMzE5ODU0LCAwLjUwNDI3OCwgMC43NTE0MjIsIDEuMjQ5NDUsIDEuNTU5ODgiLCBcCi0gICAgICAgICAgIjAuMDc2OTk2LCAwLjExMjk4OCwgMC4zMTk5NTMsIDAuNTA0MjU5LCAwLjc1MTQ0NywgMS4yNDkzLCAxLjU1OTciLCBcCi0gICAgICAgICAgIjAuMDc4MTgyLCAwLjExNDIxLCAwLjMyMDEwNiwgMC41MDQxMDYsIDAuNzUyNzA2LCAxLjI0ODMsIDEuNTU5NzUiLCBcCi0gICAgICAgICAgIjAuMDc5MDA4LCAwLjExNTE5OCwgMC4zMjA0MjYsIDAuNTA0MTUsIDAuNzUyMTgsIDEuMjQ5MjEsIDEuNTU5NDIiLCBcCi0gICAgICAgICAgIjAuMDc5OTk0LCAwLjExNTEzMiwgMC4zMTk2MzksIDAuNTA0MTc4LCAwLjc1Mjc3OSwgMS4yNDkzNCwgMS41NjAwNyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc1MTE4LCAwLjA5NDQ1OSwgMC4yMDA2NTUsIDAuMjkzNzc1LCAwLjQxNzg3MywgMC42NjU3OTMsIDAuODIwODM3IiwgXAotICAgICAgICAgICIwLjA4Mjc3MiwgMC4xMDIxMTUsIDAuMjA4MjAyLCAwLjMwMTM4NiwgMC40MjU1NzcsIDAuNjczNTMzLCAwLjgyODUwNyIsIFwKLSAgICAgICAgICAiMC4wOTI1MzgsIDAuMTExODUyLCAwLjIxNzk0MiwgMC4zMTExMjQsIDAuNDM1MDU2LCAwLjY4MzIwMiwgMC44MzgyMzEiLCBcCi0gICAgICAgICAgIjAuMTAxMjc4LCAwLjEyMDYzOCwgMC4yMjY3MjUsIDAuMzE5Nzg3LCAwLjQ0NDAxOSwgMC42OTE5NjksIDAuODQ3MDExIiwgXAotICAgICAgICAgICIwLjEwODg5MiwgMC4xMjgyMzgsIDAuMjM0NDExLCAwLjMyNzI2MiwgMC40NTE2MiwgMC42OTk1NTksIDAuODU0NTg3IiwgXAotICAgICAgICAgICIwLjExODkwNCwgMC4xMzgzOTQsIDAuMjQ0NDYzLCAwLjMzNzY3NCwgMC40NjE1NDUsIDAuNzA5ODAyLCAwLjg2NDgzNyIsIFwKLSAgICAgICAgICAiMC4xMjY2OTUsIDAuMTQ2MjIyLCAwLjI1MjQ5MywgMC4zNDU0NTYsIDAuNDY5NDg4LCAwLjcxNzY0LCAwLjg3MjgxNSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzcyOCwgMC4xMTU4MDQsIDAuMzMzNTk5LCAwLjUyODE2NSwgMC43OTAzNzQsIDEuMzExOTQsIDEuNjM5OTYiLCBcCi0gICAgICAgICAgIjAuMDc3NDU2LCAwLjExNTcwOCwgMC4zMzM1OTksIDAuNTI4NDEsIDAuNzkwMzgxLCAxLjMxMzI0LCAxLjY0MDA4IiwgXAotICAgICAgICAgICIwLjA3NzQyLCAwLjExNTg3NiwgMC4zMzM1OTEsIDAuNTI4ODM1LCAwLjc5MDE4MSwgMS4zMTE5LCAxLjYzODYyIiwgXAotICAgICAgICAgICIwLjA3ODI4LCAwLjExNjIwMywgMC4zMzM2NjIsIDAuNTI4MzgxLCAwLjc5MDM0NiwgMS4zMTIwNSwgMS42Mzg3OSIsIFwKLSAgICAgICAgICAiMC4wNzkyOTYsIDAuMTE2MjcxLCAwLjMzMzY5NywgMC41Mjg4NzEsIDAuNzkwMjk5LCAxLjMxMjc2LCAxLjY0MDIiLCBcCi0gICAgICAgICAgIjAuMDgxMzIxLCAwLjExNzUwOCwgMC4zMzM5MDksIDAuNTI5MTUsIDAuNzg5MywgMS4zMTMxNSwgMS42NDA2MyIsIFwKLSAgICAgICAgICAiMC4wODI1MTQsIDAuMTE4NjY4LCAwLjMzNDEzLCAwLjUyODYyOSwgMC43ODk2NTgsIDEuMzEyOTIsIDEuNjQwNDQiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc3MDIyLCAwLjA5NjMzNywgMC4xOTk4MzYsIDAuMjkwNTYsIDAuNDExMzM2LCAwLjY1MjM1MiwgMC44MDMxNTYiLCBcCi0gICAgICAgICAgIjAuMDg0NTA1LCAwLjEwMzgyNywgMC4yMDczMjYsIDAuMjk4MDQsIDAuNDE4ODQ5LCAwLjY1OTg4MywgMC44MTA2NDEiLCBcCi0gICAgICAgICAgIjAuMDkzOTg0LCAwLjExMzMxNywgMC4yMTY3MTEsIDAuMzA3NSwgMC40MjgzNDUsIDAuNjY5MzQ3LCAwLjgyMDIwMSIsIFwKLSAgICAgICAgICAiMC4xMDI0NjcsIDAuMTIxODIyLCAwLjIyNTMyLCAwLjMxNjE4OCwgMC40MzY4NjEsIDAuNjc3ODU1LCAwLjgyOTQxNiIsIFwKLSAgICAgICAgICAiMC4xMDk3MywgMC4xMjkxNDgsIDAuMjMyNjU1LCAwLjMyMzUyLCAwLjQ0MzY4NSwgMC42ODU2MjMsIDAuODM2NDYyIiwgXAotICAgICAgICAgICIwLjExOTQ0OCwgMC4xMzkwMzksIDAuMjQyNzY3LCAwLjMzMzQzOCwgMC40NTM3MjUsIDAuNjk1ODQ4LCAwLjg0Njc0IiwgXAotICAgICAgICAgICIwLjEyNjYxNywgMC4xNDYzMTEsIDAuMjUwMTQ1LCAwLjM0MDcxLCAwLjQ2MTUyOSwgMC43MDMwMDIsIDAuODUzMzg2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3NjI1MiwgMC4xMTI2MTUsIDAuMzE5Mjg2LCAwLjUwNDE2NSwgMC43NTA3NzMsIDEuMjQ5MjgsIDEuNTU5NzMiLCBcCi0gICAgICAgICAgIjAuMDc2NjM1LCAwLjExMjYyNCwgMC4zMTk3NTMsIDAuNTAzOTE4LCAwLjc1MjUxNSwgMS4yNDkzLCAxLjU1OTY4IiwgXAotICAgICAgICAgICIwLjA3NjQ4LCAwLjExMjczNiwgMC4zMTk1MTIsIDAuNTAzNjQ4LCAwLjc1MjMyMywgMS4yNDkyOSwgMS41NTk3OSIsIFwKLSAgICAgICAgICAiMC4wNzcxLCAwLjExMzQzMywgMC4zMTk4NzcsIDAuNTA0MDk4LCAwLjc1MDg0NCwgMS4yNDkyNywgMS41NTk2NiIsIFwKLSAgICAgICAgICAiMC4wNzg1MzcsIDAuMTEyODg3LCAwLjMxOTkzNiwgMC41MDM1MTYsIDAuNzUxMTUzLCAxLjI0ODYxLCAxLjU1OTQ2IiwgXAotICAgICAgICAgICIwLjA3OTQ4NiwgMC4xMTU0OCwgMC4zMjAxMjksIDAuNTAzMTgxLCAwLjc1MjU1NCwgMS4yNDg4NCwgMS41NTk4NCIsIFwKLSAgICAgICAgICAiMC4wODA4MjEsIDAuMTE1NDMzLCAwLjMxOTMwNCwgMC41MDQyLCAwLjc1MTgyNywgMS4yNDkwNSwgMS41NTk3NyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjU1LCAwLjAwMjU2LCAwLjAwMjU3NywgMC4wMDI1ODEsIDAuMDAyNTgzLCAwLjAwMjU4NSwgMC4wMDI1ODYiLCBcCi0gICAgICAgICAgIjAuMDAyNTEsIDAuMDAyNTIsIDAuMDAyNTM5LCAwLjAwMjU0NCwgMC4wMDI1NDcsIDAuMDAyNTQ5LCAwLjAwMjU1IiwgXAotICAgICAgICAgICIwLjAwMjUwOCwgMC4wMDI1MTgsIDAuMDAyNTM4LCAwLjAwMjU0MywgMC4wMDI1NDYsIDAuMDAyNTQ4LCAwLjAwMjU0OSIsIFwKLSAgICAgICAgICAiMC4wMDI1MzgsIDAuMDAyNTQ3LCAwLjAwMjU2NCwgMC4wMDI1NjksIDAuMDAyNTcyLCAwLjAwMjU3NSwgMC4wMDI1NzYiLCBcCi0gICAgICAgICAgIjAuMDAyNTgyLCAwLjAwMjU4OCwgMC4wMDI2MDQsIDAuMDAyNjA4LCAwLjAwMjYxMiwgMC4wMDI2MTUsIDAuMDAyNjE1IiwgXAotICAgICAgICAgICIwLjAwMjYzOSwgMC4wMDI2NDUsIDAuMDAyNjYxLCAwLjAwMjY2NywgMC4wMDI2NywgMC4wMDI2NzMsIDAuMDAyNjc1IiwgXAotICAgICAgICAgICIwLjAwMjc0OSwgMC4wMDI3NSwgMC4wMDI3NTcsIDAuMDAyNzYxLCAwLjAwMjc2MywgMC4wMDI3NjYsIDAuMDAyNzY2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1MTE0LCAwLjAwNTEyNCwgMC4wMDUxNDIsIDAuMDA1MTQ2LCAwLjAwNTE0OSwgMC4wMDUxNTIsIDAuMDA1MTUyIiwgXAotICAgICAgICAgICIwLjAwNTA5MiwgMC4wMDUxMDMsIDAuMDA1MTIxLCAwLjAwNTEyNiwgMC4wMDUxMjgsIDAuMDA1MTMxLCAwLjAwNTEzMiIsIFwKLSAgICAgICAgICAiMC4wMDUwOTIsIDAuMDA1MTAzLCAwLjAwNTEyMiwgMC4wMDUxMjcsIDAuMDA1MTMsIDAuMDA1MTMyLCAwLjAwNTEzMyIsIFwKLSAgICAgICAgICAiMC4wMDUxMTEsIDAuMDA1MTIxLCAwLjAwNTE0LCAwLjAwNTE0NSwgMC4wMDUxNDksIDAuMDA1MTUyLCAwLjAwNTE1MiIsIFwKLSAgICAgICAgICAiMC4wMDUxNDUsIDAuMDA1MTQ5LCAwLjAwNTE2NywgMC4wMDUxNzIsIDAuMDA1MTc2LCAwLjAwNTE3OSwgMC4wMDUxOCIsIFwKLSAgICAgICAgICAiMC4wMDUyMTIsIDAuMDA1MjE5LCAwLjAwNTIzNSwgMC4wMDUyMzcsIDAuMDA1MjQxLCAwLjAwNTI0NCwgMC4wMDUyNDUiLCBcCi0gICAgICAgICAgIjAuMDA1MjgsIDAuMDA1MjgzLCAwLjAwNTMsIDAuMDA1MzA2LCAwLjAwNTMwOCwgMC4wMDUzMTIsIDAuMDA1MzEzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyNzg1LCAwLjAwMjc5NCwgMC4wMDI4MSwgMC4wMDI4MTMsIDAuMDAyODE1LCAwLjAwMjgxNywgMC4wMDI4MTciLCBcCi0gICAgICAgICAgIjAuMDAyNzMyLCAwLjAwMjc0MiwgMC4wMDI3NiwgMC4wMDI3NjMsIDAuMDAyNzY1LCAwLjAwMjc2NywgMC4wMDI3NjgiLCBcCi0gICAgICAgICAgIjAuMDAyNzI3LCAwLjAwMjczNywgMC4wMDI3NTUsIDAuMDAyNzU5LCAwLjAwMjc2MiwgMC4wMDI3NjQsIDAuMDAyNzY1IiwgXAotICAgICAgICAgICIwLjAwMjc3NiwgMC4wMDI3ODMsIDAuMDAyNzk3LCAwLjAwMjgwMSwgMC4wMDI4MDMsIDAuMDAyODA1LCAwLjAwMjgwNSIsIFwKLSAgICAgICAgICAiMC4wMDI4MjcsIDAuMDAyODMyLCAwLjAwMjg0NSwgMC4wMDI4NDksIDAuMDAyODUxLCAwLjAwMjg1MywgMC4wMDI4NTMiLCBcCi0gICAgICAgICAgIjAuMDAyODgzLCAwLjAwMjg4OCwgMC4wMDI5MDMsIDAuMDAyOTA4LCAwLjAwMjkxMSwgMC4wMDI5MTMsIDAuMDAyOTE0IiwgXAotICAgICAgICAgICIwLjAwMjk3OCwgMC4wMDI5OCwgMC4wMDI5ODYsIDAuMDAyOTkxLCAwLjAwMjk5MywgMC4wMDI5OTYsIDAuMDAyOTk3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0OTQ2LCAwLjAwNDk1NiwgMC4wMDQ5NzQsIDAuMDA0OTc5LCAwLjAwNDk4MSwgMC4wMDQ5ODMsIDAuMDA0OTg0IiwgXAotICAgICAgICAgICIwLjAwNDkwNywgMC4wMDQ5MTgsIDAuMDA0OTM3LCAwLjAwNDk0MSwgMC4wMDQ5NDQsIDAuMDA0OTQ3LCAwLjAwNDk0NyIsIFwKLSAgICAgICAgICAiMC4wMDQ4NzQsIDAuMDA0ODg1LCAwLjAwNDkwNSwgMC4wMDQ5MDcsIDAuMDA0OTEsIDAuMDA0OTEzLCAwLjAwNDkxNCIsIFwKLSAgICAgICAgICAiMC4wMDQ4ODMsIDAuMDA0ODkxLCAwLjAwNDkxLCAwLjAwNDkxNCwgMC4wMDQ5MTcsIDAuMDA0OTIsIDAuMDA0OTIxIiwgXAotICAgICAgICAgICIwLjAwNDk0MywgMC4wMDQ5NDgsIDAuMDA0OTYzLCAwLjAwNDk2NywgMC4wMDQ5NywgMC4wMDQ5NzIsIDAuMDA0OTcyIiwgXAotICAgICAgICAgICIwLjAwNTAxMiwgMC4wMDUwMTcsIDAuMDA1MDI5LCAwLjAwNTAzNywgMC4wMDUwMzcsIDAuMDA1MDQsIDAuMDA1MDQxIiwgXAotICAgICAgICAgICIwLjAwNTExNiwgMC4wMDUxMTgsIDAuMDA1MTMsIDAuMDA1MTM0LCAwLjAwNTEzNCwgMC4wMDUxMzcsIDAuMDA1MTM3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0kiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjc3MiwgMC4wMDI3ODIsIDAuMDAyNzk4LCAwLjAwMjgwMiwgMC4wMDI4MDUsIDAuMDAyODA3LCAwLjAwMjgwNyIsIFwKLSAgICAgICAgICAiMC4wMDI3NTYsIDAuMDAyNzY3LCAwLjAwMjc4NSwgMC4wMDI3OSwgMC4wMDI3OTEsIDAuMDAyNzkzLCAwLjAwMjc5MyIsIFwKLSAgICAgICAgICAiMC4wMDI3NTcsIDAuMDAyNzY3LCAwLjAwMjc4NiwgMC4wMDI3OTEsIDAuMDAyNzk0LCAwLjAwMjc5NiwgMC4wMDI3OTciLCBcCi0gICAgICAgICAgIjAuMDAyNzksIDAuMDAyNzk5LCAwLjAwMjgxOCwgMC4wMDI4MjMsIDAuMDAyODI2LCAwLjAwMjgyOCwgMC4wMDI4MjkiLCBcCi0gICAgICAgICAgIjAuMDAyODM2LCAwLjAwMjg0MywgMC4wMDI4NjEsIDAuMDAyODY2LCAwLjAwMjg2OSwgMC4wMDI4NzIsIDAuMDAyODczIiwgXAotICAgICAgICAgICIwLjAwMjkyMiwgMC4wMDI5MjgsIDAuMDAyOTQzLCAwLjAwMjk0OCwgMC4wMDI5NTEsIDAuMDAyOTU0LCAwLjAwMjk1NCIsIFwKLSAgICAgICAgICAiMC4wMDMwMjUsIDAuMDAzMDI2LCAwLjAwMzAzOCwgMC4wMDMwNDIsIDAuMDAzMDQ1LCAwLjAwMzA0OCwgMC4wMDMwNDgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQ1NTEsIDAuMDA0NTYxLCAwLjAwNDU3OCwgMC4wMDQ1ODIsIDAuMDA0NTg1LCAwLjAwNDU4NywgMC4wMDQ1ODgiLCBcCi0gICAgICAgICAgIjAuMDA0NTUzLCAwLjAwNDU2MywgMC4wMDQ1ODEsIDAuMDA0NTg2LCAwLjAwNDU4OSwgMC4wMDQ1OTIsIDAuMDA0NTkyIiwgXAotICAgICAgICAgICIwLjAwNDU4LCAwLjAwNDU5LCAwLjAwNDYwOSwgMC4wMDQ2MTUsIDAuMDA0NjE4LCAwLjAwNDYyMSwgMC4wMDQ2MjIiLCBcCi0gICAgICAgICAgIjAuMDA0NjI4LCAwLjAwNDYzNiwgMC4wMDQ2NTMsIDAuMDA0NjU4LCAwLjAwNDY2MywgMC4wMDQ2NjYsIDAuMDA0NjY2IiwgXAotICAgICAgICAgICIwLjAwNDY3NiwgMC4wMDQ2ODYsIDAuMDA0NzA0LCAwLjAwNDcwOCwgMC4wMDQ3MTIsIDAuMDA0NzE1LCAwLjAwNDcxNSIsIFwKLSAgICAgICAgICAiMC4wMDQ3NzIsIDAuMDA0Nzc4LCAwLjAwNDc5MiwgMC4wMDQ3OTcsIDAuMDA0OCwgMC4wMDQ4MDIsIDAuMDA0ODA0IiwgXAotICAgICAgICAgICIwLjAwNDg3MSwgMC4wMDQ4NzIsIDAuMDA0ODgyLCAwLjAwNDg4NSwgMC4wMDQ4ODksIDAuMDA0ODkzLCAwLjAwNDg5MyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUykgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjMzNzA4NTsKLSAgICBmdW5jdGlvbiA6ICIoKEFeQileQ0kpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODIxNjEsIDAuMTAxMjYzLCAwLjIwNzI2NSwgMC4zMDA0MzQsIDAuNDI0NzgsIDAuNjczMjQ0LCAwLjgyODQ3IiwgXAotICAgICAgICAgICIwLjA4NzE2OSwgMC4xMDYyNjUsIDAuMjEyMjg1LCAwLjMwNTU2MiwgMC40Mjk4MTYsIDAuNjc4MjQzLCAwLjgzMzUwNCIsIFwKLSAgICAgICAgICAiMC4wOTI4NjIsIDAuMTExOTYxLCAwLjIxNzk4LCAwLjMxMTI0MywgMC40MzU1MSwgMC42ODM5MywgMC44MzkyMDEiLCBcCi0gICAgICAgICAgIjAuMDk4MjE1LCAwLjExNzM0MywgMC4yMjMzNywgMC4zMTY2MzYsIDAuNDQwODgzLCAwLjY4OTMwMSwgMC44NDQ1MjEiLCBcCi0gICAgICAgICAgIjAuMTAzMDkyLCAwLjEyMjI2NywgMC4yMjgzNDcsIDAuMzIxNjAyLCAwLjQ0NTg3MiwgMC42OTQyMzIsIDAuODQ5NDkiLCBcCi0gICAgICAgICAgIjAuMTEwMTg4LCAwLjEyOTM4LCAwLjIzNTQ2NSwgMC4zMjg3MjUsIDAuNDUzMDI0LCAwLjcwMTM1MiwgMC44NTY1NzEiLCBcCi0gICAgICAgICAgIjAuMTE1NjI2LCAwLjEzNDg5MywgMC4yNDA5ODcsIDAuMzM0Mjc5LCAwLjQ1ODU1NCwgMC43MDcwNDIsIDAuODYyMTE4Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3NjMsIDAuMTEzOTc5LCAwLjMzMzc4MSwgMC41MjgwNDIsIDAuNzkxMDEsIDEuMzEyMzQsIDEuNjM4ODYiLCBcCi0gICAgICAgICAgIjAuMDc2Mjg0LCAwLjExNDAxNiwgMC4zMzM3MzgsIDAuNTI4OTUyLCAwLjc5MDk1MywgMS4zMTI1OCwgMS42Mzg3NCIsIFwKLSAgICAgICAgICAiMC4wNzYzNCwgMC4xMTQwNTcsIDAuMzMzMzUxLCAwLjUyODk1OSwgMC43OTA5NTcsIDEuMzEyNiwgMS42Mzg5NCIsIFwKLSAgICAgICAgICAiMC4wNzY2NjYsIDAuMTE0Mjc2LCAwLjMzMzgxNywgMC41Mjg5OTQsIDAuNzkwODk2LCAxLjMxMjY1LCAxLjYzOTM1IiwgXAotICAgICAgICAgICIwLjA3NzEyOCwgMC4xMTQ2NjEsIDAuMzMzOTA5LCAwLjUyOTU0MiwgMC43OTA4ODYsIDEuMzEzMDksIDEuNjM5MTUiLCBcCi0gICAgICAgICAgIjAuMDc3OTQ2LCAwLjExNTA4MSwgMC4zMzQwNjIsIDAuNTI5MDY0LCAwLjc5MDkyOCwgMS4zMTMwOSwgMS42Mzk5NyIsIFwKLSAgICAgICAgICAiMC4wNzg1MDksIDAuMTE1Njg5LCAwLjMzMzgsIDAuNTI5NjU4LCAwLjc5MDkwOCwgMS4zMTQsIDEuNjM5MTUiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg1NDY4LCAwLjEwNDM4OSwgMC4yMDc2NTgsIDAuMjk4MzMxLCAwLjQxOTE3MiwgMC42NjA2MzMsIDAuODExNTM4IiwgXAotICAgICAgICAgICIwLjA5MDU0NiwgMC4xMDk0OTEsIDAuMjEyNzY0LCAwLjMwMzQzNywgMC40MjQyOCwgMC42NjU3NTQsIDAuODE2NjQ0IiwgXAotICAgICAgICAgICIwLjA5NTU5MSwgMC4xMTQ1MDEsIDAuMjE3ODAzLCAwLjMwODQ2OSwgMC40MjkyODIsIDAuNjcwNzgsIDAuODIxNzI0IiwgXAotICAgICAgICAgICIwLjEwMDAzMywgMC4xMTg5OCwgMC4yMjIyODMsIDAuMzEyOTk5LCAwLjQzMzc5NSwgMC42NzUyNjMsIDAuODI2MTgzIiwgXAotICAgICAgICAgICIwLjEwMzk3OCwgMC4xMjI5NjQsIDAuMjI2MzA4LCAwLjMxNjk3NywgMC40Mzc4MTMsIDAuNjc5Mjg2LCAwLjgzMDE4NSIsIFwKLSAgICAgICAgICAiMC4xMDk0MjIsIDAuMTI4NTA4LCAwLjIzMTk0MywgMC4zMjI2NDEsIDAuNDQzNDM4LCAwLjY4NDkzMSwgMC44MzU5MyIsIFwKLSAgICAgICAgICAiMC4xMTM1NiwgMC4xMzI3MTksIDAuMjM2MjQ3LCAwLjMyNjk0NywgMC40NDc3NjMsIDAuNjg5MjMzLCAwLjg0MDE0MiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzQzNjQsIDAuMTEwMDA5LCAwLjMxNzQ5LCAwLjUwMzg1NywgMC43NTEzODUsIDEuMjQ5NjksIDEuNTU5ODEiLCBcCi0gICAgICAgICAgIjAuMDc0MzI1LCAwLjExMDAzNiwgMC4zMTgwNDgsIDAuNTAzMjQyLCAwLjc1MTQ2MiwgMS4yNDk3NSwgMS41NjA1NyIsIFwKLSAgICAgICAgICAiMC4wNzQzNDksIDAuMTEwMDM2LCAwLjMxODA1MSwgMC41MDM4MzIsIDAuNzUyMjAyLCAxLjI0OTYyLCAxLjU2MDgyIiwgXAotICAgICAgICAgICIwLjA3NDc0NCwgMC4xMTAzMjQsIDAuMzE4MTM0LCAwLjUwNDA2MiwgMC43NTExMywgMS4yNDk2MSwgMS41NTk5NSIsIFwKLSAgICAgICAgICAiMC4wNzUyMjMsIDAuMTEwNzUsIDAuMzE3OTAxLCAwLjUwMzkwOCwgMC43NTE2NTYsIDEuMjQ5NzEsIDEuNTYwNDkiLCBcCi0gICAgICAgICAgIjAuMDc2MTE4LCAwLjExMTM0MSwgMC4zMTgyMTYsIDAuNTA0MTgsIDAuNzUyNDY5LCAxLjI0ODIyLCAxLjU2MDgzIiwgXAotICAgICAgICAgICIwLjA3NjgzNiwgMC4xMTIwNywgMC4zMTg3NTUsIDAuNTA0MjIzLCAwLjc1MTgwOCwgMS4yNDk3NSwgMS41NjA3MSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDUyMDksIDAuMTIzOTM2LCAwLjIyOTU0LCAwLjMyMjcxLCAwLjQ0NjkwMiwgMC42OTUxMTQsIDAuODUwMzM1IiwgXAotICAgICAgICAgICIwLjExMTk4MiwgMC4xMzA3MTEsIDAuMjM2MzUyLCAwLjMyOTQ1NCwgMC40NTM2MjksIDAuNzAxOTE2LCAwLjg1NzEyOCIsIFwKLSAgICAgICAgICAiMC4xMTg5MzksIDAuMTM3NjcyLCAwLjI0MzI4LCAwLjMzNjQxOSwgMC40NjA1NTgsIDAuNzA4ODg3LCAwLjg2NDA2OSIsIFwKLSAgICAgICAgICAiMC4xMjUxODQsIDAuMTQzOTIyLCAwLjI0OTUzLCAwLjM0MjcwNCwgMC40NjY4MjIsIDAuNzE1MTM0LCAwLjg3MDM2MyIsIFwKLSAgICAgICAgICAiMC4xMzA0MTIsIDAuMTQ5MTQ0LCAwLjI1NDczNCwgMC4zNDc5MTUsIDAuNDcyMDE5LCAwLjcyMDMzNSwgMC44NzU1NzYiLCBcCi0gICAgICAgICAgIjAuMTM3NDg2LCAwLjE1NjIxMywgMC4yNjE4MTYsIDAuMzU0OTQ4LCAwLjQ3OTE1OCwgMC43MjczMzcsIDAuODgyNTE5IiwgXAotICAgICAgICAgICIwLjE0MjczOSwgMC4xNjE0NTIsIDAuMjY3MDM0LCAwLjM2MDE0NCwgMC40ODQyOTMsIDAuNzMyNTk4LCAwLjg4Nzc1Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3MzkxNCwgMC4xMTE5MDcsIDAuMzMyMzgzLCAwLjUyODUwMiwgMC43OTAwNTIsIDEuMzExNzgsIDEuNjM5OTUiLCBcCi0gICAgICAgICAgIjAuMDczOTE5LCAwLjExMTg3MSwgMC4zMzI0MSwgMC41Mjc5MDgsIDAuNzg5MTY2LCAxLjMxMzEzLCAxLjYzOTk3IiwgXAotICAgICAgICAgICIwLjA3Mzk1NCwgMC4xMTE5MDEsIDAuMzMyNDM1LCAwLjUyODAxMSwgMC43ODk5NDcsIDEuMzExNjgsIDEuNjM5OTciLCBcCi0gICAgICAgICAgIjAuMDczOTQxLCAwLjExMTg1MywgMC4zMzI0MTUsIDAuNTI4NDc5LCAwLjc4OTIyLCAxLjMxMzE4LCAxLjYzNzgiLCBcCi0gICAgICAgICAgIjAuMDc0MDAxLCAwLjExMTg4NSwgMC4zMzIzOTgsIDAuNTI4NTExLCAwLjc4OTE3LCAxLjMxMTc2LCAxLjY0MDE3IiwgXAotICAgICAgICAgICIwLjA3NDAzNywgMC4xMTE5ODgsIDAuMzMyMzg5LCAwLjUyODQyMiwgMC43ODk4NjYsIDEuMzEzMDEsIDEuNjM4NjEiLCBcCi0gICAgICAgICAgIjAuMDc0MjQyLCAwLjExMTk0NywgMC4zMzIzNjcsIDAuNTI4MzQyLCAwLjc4OTgzOCwgMS4zMTI5MiwgMS42Mzg0NiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDMwMDYsIDAuMTIxNTY3LCAwLjIyNDMzLCAwLjMxNDg1LCAwLjQzNTU1MywgMC42NzY5ODYsIDAuODI3ODIiLCBcCi0gICAgICAgICAgIjAuMTA5MzMyLCAwLjEyNzkwNCwgMC4yMzA2NjQsIDAuMzIxMTkzLCAwLjQ0MTkwNiwgMC42ODMzLCAwLjgzNDE1MiIsIFwKLSAgICAgICAgICAiMC4xMTY5OTQsIDAuMTM1NTY0LCAwLjIzODMyMywgMC4zMjg4NDgsIDAuNDQ5NTY2LCAwLjY5MTAzNCwgMC44NDE4MiIsIFwKLSAgICAgICAgICAiMC4xMjQxMDQsIDAuMTQyNjYzLCAwLjI0NTQyNCwgMC4zMzU5NDIsIDAuNDU2NjUzLCAwLjY5ODEwNCwgMC44NDg5NjMiLCBcCi0gICAgICAgICAgIjAuMTMwNDIxLCAwLjE0ODk3LCAwLjI1MTcxNywgMC4zNDIyNjEsIDAuNDYyOTU5LCAwLjcwNDM2LCAwLjg1NTIyNiIsIFwKLSAgICAgICAgICAiMC4xMzkxMiwgMC4xNTc2NDgsIDAuMjYwMzk2LCAwLjM1MDkyMSwgMC40NzE2MDcsIDAuNzEzMDExLCAwLjg2Mzg2MyIsIFwKLSAgICAgICAgICAiMC4xNDU2OTksIDAuMTY0MjQ1LCAwLjI2Njk3NiwgMC4zNTc1MzgsIDAuNDc4MTgsIDAuNzE5NTgzLCAwLjg3MDQyNyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzI0MjgsIDAuMTA4MTQ0LCAwLjMxNjQ1OCwgMC41MDE5ODQsIDAuNzUxMTc5LCAxLjI0ODc3LCAxLjU1OTciLCBcCi0gICAgICAgICAgIjAuMDcyNDEyLCAwLjEwODE0LCAwLjMxNjQ3MywgMC41MDI1MTIsIDAuNzUwOTk2LCAxLjI0ODYsIDEuNTU5NTMiLCBcCi0gICAgICAgICAgIjAuMDcyNDE0LCAwLjEwODE0MywgMC4zMTYzOTgsIDAuNTAxODUsIDAuNzUxMTMsIDEuMjQ3MTgsIDEuNTU5NTEiLCBcCi0gICAgICAgICAgIjAuMDcyNDQ0LCAwLjEwODE2MSwgMC4zMTY0OTYsIDAuNTAyMzAxLCAwLjc1MTEwNSwgMS4yNDcyNiwgMS41NTk2OCIsIFwKLSAgICAgICAgICAiMC4wNzI0NTMsIDAuMTA4MjA3LCAwLjMxNjE4MiwgMC41MDI0NzIsIDAuNzUwOTg4LCAxLjI0NjgyLCAxLjU1OTMxIiwgXAotICAgICAgICAgICIwLjA3MjQ0NSwgMC4xMDgxNDgsIDAuMzE2MTM5LCAwLjUwMjQzNiwgMC43NTA4OTMsIDEuMjQ4MjksIDEuNTU3ODUiLCBcCi0gICAgICAgICAgIjAuMDcyNjY1LCAwLjEwODExNywgMC4zMTY0OTgsIDAuNTAyMzEzLCAwLjc1MDg3NiwgMS4yNDgyMSwgMS41NTc1OCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODA2NzcsIDAuMDk5Nzk2LCAwLjIwNTg0MSwgMC4yOTkwOTIsIDAuNDIzMzc0LCAwLjY3MTc1OSwgMC44MjcwNTYiLCBcCi0gICAgICAgICAgIjAuMDg2NzUyLCAwLjEwNTg3OSwgMC4yMTE5MTgsIDAuMzA1MjAzLCAwLjQyOTQ0NiwgMC42Nzc4NzYsIDAuODMzMDk2IiwgXAotICAgICAgICAgICIwLjA5NDYwMSwgMC4xMTM3MTEsIDAuMjE5NzQzLCAwLjMxMzAzLCAwLjQzNzMwNCwgMC42ODU2ODgsIDAuODQwOTgxIiwgXAotICAgICAgICAgICIwLjEwMTgyMSwgMC4xMjA5MDQsIDAuMjI2OTYzLCAwLjMyMDI0MiwgMC40NDQ1MDQsIDAuNjkyOTYsIDAuODQ4MTU1IiwgXAotICAgICAgICAgICIwLjEwODUwNSwgMC4xMjc3MDQsIDAuMjMzNzUsIDAuMzI3MDIxLCAwLjQ1MTI5NiwgMC42OTk2ODYsIDAuODU0OTA2IiwgXAotICAgICAgICAgICIwLjExNzYwMiwgMC4xMzY4NDcsIDAuMjQyODMzLCAwLjMzNjA3LCAwLjQ2MDMwNSwgMC43MDg2OTcsIDAuODYzOTM0IiwgXAotICAgICAgICAgICIwLjEyNDg4NywgMC4xNDQxMjYsIDAuMjUwMzE0LCAwLjM0MzYxLCAwLjQ2NzgxNCwgMC43MTYyNzYsIDAuODcxNDE2Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3NjMzMiwgMC4xMTQwMzIsIDAuMzMzODE5LCAwLjUyOTU2MSwgMC43OTAwNzEsIDEuMzEyNjcsIDEuNjM4NzciLCBcCi0gICAgICAgICAgIjAuMDc2MjM1LCAwLjExMzk5OSwgMC4zMzM3NzMsIDAuNTI4NTg5LCAwLjc5MDkxNiwgMS4zMTI1OSwgMS42MzkzNSIsIFwKLSAgICAgICAgICAiMC4wNzYzMTcsIDAuMTEzOTk3LCAwLjMzMzc4LCAwLjUyODYwNywgMC43OTA5MjQsIDEuMzEyNzksIDEuNjQiLCBcCi0gICAgICAgICAgIjAuMDc2ODIzLCAwLjExNDQ2MSwgMC4zMzM0NDgsIDAuNTI4NTk1LCAwLjc5MDg0MiwgMS4zMTM4OCwgMS42Mzk5IiwgXAotICAgICAgICAgICIwLjA3NzEyMiwgMC4xMTQ2MzIsIDAuMzMzNzg3LCAwLjUyOTA1MSwgMC43OTA4NTEsIDEuMzEyNzcsIDEuNjM5ODQiLCBcCi0gICAgICAgICAgIjAuMDc4MzQ4LCAwLjExNTMzNSwgMC4zMzM2ODksIDAuNTI5NTc0LCAwLjc5MDc5NywgMS4zMTM4LCAxLjYzOTYyIiwgXAotICAgICAgICAgICIwLjA3ODU4NywgMC4xMTU3NiwgMC4zMzQxODksIDAuNTI5NzE1LCAwLjc5MDMxLCAxLjMxMzg5LCAxLjY0MDgiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDgzMjk0LCAwLjEwMjIwNywgMC4yMDU1MiwgMC4yOTYxOTcsIDAuNDE3MDM0LCAwLjY1ODUwOSwgMC44MDk0MiIsIFwKLSAgICAgICAgICAiMC4wODkyMjYsIDAuMTA4MTU4LCAwLjIxMTQ2MiwgMC4zMDIxMzQsIDAuNDIyOTYzLCAwLjY2NDUxNCwgMC44MTUzNzUiLCBcCi0gICAgICAgICAgIjAuMDk2Mzk4LCAwLjExNTMwMiwgMC4yMTg2MTcsIDAuMzA5MywgMC40MzAxODIsIDAuNjcxNjE0LCAwLjgyMjUyOCIsIFwKLSAgICAgICAgICAiMC4xMDI5MDQsIDAuMTIxODQsIDAuMjI1MiwgMC4zMTU4NzIsIDAuNDM2NzUyLCAwLjY3ODE3NiwgMC44MjkwOSIsIFwKLSAgICAgICAgICAiMC4xMDg3NzMsIDAuMTI3Nzg1LCAwLjIzMTI1MywgMC4zMjE5NDUsIDAuNDQyNzUsIDAuNjg0MjM3LCAwLjgzNTIxOSIsIFwKLSAgICAgICAgICAiMC4xMTY5NTEsIDAuMTM2MTMzLCAwLjIzOTU4LCAwLjMzMDI2NywgMC40NTEwODYsIDAuNjkyNTgyLCAwLjg0MzQ1NiIsIFwKLSAgICAgICAgICAiMC4xMjMyMTksIDAuMTQyNCwgMC4yNDYwMDMsIDAuMzM2NjY0LCAwLjQ1NzQ4OSwgMC42OTkwMTksIDAuODQ5OTAxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3NDM0MSwgMC4xMTAwMzgsIDAuMzE3NDgyLCAwLjUwMzg3LCAwLjc1MTMwNCwgMS4yNDk3LCAxLjU1OTg2IiwgXAotICAgICAgICAgICIwLjA3NDI4NSwgMC4xMTAwMTYsIDAuMzE4MDQsIDAuNTAzODMyLCAwLjc1MTQzLCAxLjI0OTk2LCAxLjU1OTg0IiwgXAotICAgICAgICAgICIwLjA3NDM5NSwgMC4xMTAwNzMsIDAuMzE4MDU4LCAwLjUwMzg1MywgMC43NTA4NTcsIDEuMjQ5NjcsIDEuNTU5NjIiLCBcCi0gICAgICAgICAgIjAuMDc0OTE2LCAwLjExMDUyNywgMC4zMTgxNTksIDAuNTAzODk0LCAwLjc1MTM2MSwgMS4yNDk2NCwgMS41NjA0OCIsIFwKLSAgICAgICAgICAiMC4wNzU1NzQsIDAuMTEwOTMzLCAwLjMxNzg5MywgMC41MDMxNzEsIDAuNzUxNDM3LCAxLjI0OTU4LCAxLjU2MDg1IiwgXAotICAgICAgICAgICIwLjA3NjMyMywgMC4xMTE0NTgsIDAuMzE4NTg0LCAwLjUwNDE5MywgMC43NTExMDUsIDEuMjQ5ODIsIDEuNTYwNjIiLCBcCi0gICAgICAgICAgIjAuMDc2OTE5LCAwLjExMjEyOSwgMC4zMTgzOTYsIDAuNTAzNjEyLCAwLjc1MjQ2MywgMS4yNDc3NywgMS41NjA3NyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDU5NjMsIDAuMTI0NzMyLCAwLjIzMDQxMywgMC4zMjM2NTcsIDAuNDQ3ODE2LCAwLjY5NjEyOCwgMC44NTEzMDgiLCBcCi0gICAgICAgICAgIjAuMTEyMzcyLCAwLjEzMTEzMiwgMC4yMzY4ODQsIDAuMzMwMDM3LCAwLjQ1NDI0LCAwLjcwMjU5LCAwLjg1NzczNCIsIFwKLSAgICAgICAgICAiMC4xMTg5NDQsIDAuMTM3NzI2LCAwLjI0MzQ0NywgMC4zMzY3MTEsIDAuNDYwODE3LCAwLjcwOTE1MywgMC44NjQ0MjkiLCBcCi0gICAgICAgICAgIjAuMTI3MTA0LCAwLjE0NTg2NiwgMC4yNTEzOTEsIDAuMzQ0NTQsIDAuNDY4NjgxLCAwLjcxNzAxNiwgMC44NzIyMjciLCBcCi0gICAgICAgICAgIjAuMTM0NDkxLCAwLjE1MzIzNiwgMC4yNTg3NjgsIDAuMzUxOTQ1LCAwLjQ3NiwgMC43MjQzODcsIDAuODc5NDgzIiwgXAotICAgICAgICAgICIwLjE0NDYwOCwgMC4xNjMzNDEsIDAuMjY4ODQxLCAwLjM2MTk5LCAwLjQ4NjA3OCwgMC43MzQzMzMsIDAuODg5NTAxIiwgXAotICAgICAgICAgICIwLjE1MjA3NSwgMC4xNzA3OTcsIDAuMjc2Mjg0LCAwLjM2OTM4OSwgMC40OTM1MDYsIDAuNzQxNzQ5LCAwLjg5NjkwNyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzM4MzQsIDAuMTExNzY1LCAwLjMzMjQxNiwgMC41Mjc1ODUsIDAuNzkwMDk3LCAxLjMxMzA0LCAxLjYzODY0IiwgXAotICAgICAgICAgICIwLjA3Mzg4OSwgMC4xMTE4NywgMC4zMzI2MDIsIDAuNTI4NTk1LCAwLjc5MDEwMywgMS4zMTEyNywgMS42NCIsIFwKLSAgICAgICAgICAiMC4wNzM4NjcsIDAuMTExODMsIDAuMzMyNjAyLCAwLjUyNzgwMywgMC43OTAwOTEsIDEuMzEzMDUsIDEuNjM4MDYiLCBcCi0gICAgICAgICAgIjAuMDczODg5LCAwLjExMTgzMSwgMC4zMzI2MDYsIDAuNTI4NDg0LCAwLjc5MDA5NSwgMS4zMTIwOCwgMS42NDAxOCIsIFwKLSAgICAgICAgICAiMC4wNzM5OTYsIDAuMTExOTM2LCAwLjMzMjU3LCAwLjUyODY5MiwgMC43OTAxLCAxLjMxMzIxLCAxLjYzODczIiwgXAotICAgICAgICAgICIwLjA3Mzk4NCwgMC4xMTE5MzQsIDAuMzMyNTQ4LCAwLjUyODYwNSwgMC43ODk4NzcsIDEuMzEzMjQsIDEuNjM4NTkiLCBcCi0gICAgICAgICAgIjAuMDc0MTY4LCAwLjExMTg2OCwgMC4zMzIzMzEsIDAuNTI4NTQ1LCAwLjc4OTE2LCAxLjMxMTg0LCAxLjY0MDAxIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwMjc2NiwgMC4xMjEzMTMsIDAuMjI0MDYzLCAwLjMxNDU4OCwgMC40MzUyOTcsIDAuNjc2NzY3LCAwLjgyNzYwMiIsIFwKLSAgICAgICAgICAiMC4xMTAxMjMsIDAuMTI4NjY3LCAwLjIzMTQyMiwgMC4zMjE5NzEsIDAuNDQyNjY1LCAwLjY4NDAyNCwgMC44MzQ5NTYiLCBcCi0gICAgICAgICAgIjAuMTE5NzQ0LCAwLjEzODI5MywgMC4yNDEwNSwgMC4zMzE1NjMsIDAuNDUyMjc3LCAwLjY5Mzc0OSwgMC44NDQ1MjgiLCBcCi0gICAgICAgICAgIjAuMTI4ODI1LCAwLjE0NzM2OSwgMC4yNTAxMjMsIDAuMzQwNjYxLCAwLjQ2MTM2MiwgMC43MDI4NCwgMC44NTM2MzYiLCBcCi0gICAgICAgICAgIjAuMTM2NTEsIDAuMTU1MDU3LCAwLjI1NzgwMSwgMC4zNDgzMTgsIDAuNDY5MDk1LCAwLjcxMDQ5NCwgMC44NjEyMTIiLCBcCi0gICAgICAgICAgIjAuMTQ3MTA2LCAwLjE2NTY0LCAwLjI2ODM4LCAwLjM1ODg5NCwgMC40Nzk1OTksIDAuNzIwOTg3LCAwLjg3MTkyNCIsIFwKLSAgICAgICAgICAiMC4xNTUxODEsIDAuMTczNjYxLCAwLjI3NjI3NSwgMC4zNjY3ODMsIDAuNDg3NTE3LCAwLjcyODg1LCAwLjg3OTY4NSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzIyNCwgMC4xMDgwMjksIDAuMzE2NDIsIDAuNTAyNjIsIDAuNzUxMjI5LCAxLjI0NzM2LCAxLjU1OTkxIiwgXAotICAgICAgICAgICIwLjA3MjI0NSwgMC4xMDgwMjgsIDAuMzE2NDE0LCAwLjUwMjU4OCwgMC43NTExNiwgMS4yNDg1NiwgMS41NTk3MyIsIFwKLSAgICAgICAgICAiMC4wNzIyMzgsIDAuMTA4MDMsIDAuMzE2NDU5LCAwLjUwMTg1NSwgMC43NTEwOTksIDEuMjQ3MjQsIDEuNTU5NSIsIFwKLSAgICAgICAgICAiMC4wNzIyNDQsIDAuMTA4MDQ0LCAwLjMxNjQzNywgMC41MDI1MjEsIDAuNzUxMDYxLCAxLjI0ODc3LCAxLjU1OTUzIiwgXAotICAgICAgICAgICIwLjA3MjMwMywgMC4xMDgwODYsIDAuMzE2NDY1LCAwLjUwMjA5NCwgMC43NTEwMzEsIDEuMjQ3NDMsIDEuNTU5MTgiLCBcCi0gICAgICAgICAgIjAuMDcyMjc4LCAwLjEwODA0MywgMC4zMTY0MjUsIDAuNTAyMDAxLCAwLjc1MTE4NCwgMS4yNDgzNSwgMS41NTkxNyIsIFwKLSAgICAgICAgICAiMC4wNzI0MjksIDAuMTA4MDI4LCAwLjMxNjE4MywgMC41MDI0MjIsIDAuNzUwOTgzLCAxLjI0NzE5LCAxLjU1ODk4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNJIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODA2NDQsIDAuMDk5NzU0LCAwLjIwNTgwMiwgMC4yOTkwODIsIDAuNDIzMzczLCAwLjY3MTgxOSwgMC44MjcyNDIiLCBcCi0gICAgICAgICAgIjAuMDg3MTg3LCAwLjEwNjMwNSwgMC4yMTIzNDYsIDAuMzA1NjU3LCAwLjQyOTg4OCwgMC42Nzg0MDYsIDAuODMzNTkyIiwgXAotICAgICAgICAgICIwLjA5NjA3OCwgMC4xMTUxODgsIDAuMjIxMjE5LCAwLjMxNDUwMSwgMC40Mzg3NDIsIDAuNjg3MTcyLCAwLjg0MjM5MiIsIFwKLSAgICAgICAgICAiMC4xMDQ3MTUsIDAuMTIzODUyLCAwLjIyOTg4MSwgMC4zMjMxNDEsIDAuNDQ3Mzk5LCAwLjY5NTgxMiwgMC44NTEwMzMiLCBcCi0gICAgICAgICAgIjAuMTEyNjMyLCAwLjEzMTc5NSwgMC4yMzc3OTMsIDAuMzMxMDYyLCAwLjQ1NTQwNiwgMC43MDM3MTMsIDAuODU4OTg0IiwgXAotICAgICAgICAgICIwLjEyMjk3OSwgMC4xNDI0MDIsIDAuMjQ4NTA4LCAwLjM0MTc2NCwgMC40NjYwMjcsIDAuNzE0MzkyLCAwLjg2OTYyMyIsIFwKLSAgICAgICAgICAiMC4xMzEwOCwgMC4xNTAzNiwgMC4yNTY2MywgMC4zNDk5MTcsIDAuNDc0MTM0LCAwLjcyMjU1OSwgMC44Nzc3MTgiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc2MzU0LCAwLjExMzk4NiwgMC4zMzM3OTUsIDAuNTI5NjcsIDAuNzkwMzMzLCAxLjMxNDM0LCAxLjYzODk4IiwgXAotICAgICAgICAgICIwLjA3NjI3MiwgMC4xMTM5ODYsIDAuMzMzNzQ4LCAwLjUyODc4MiwgMC43OTAxNSwgMS4zMTQxNywgMS42Mzg2OCIsIFwKLSAgICAgICAgICAiMC4wNzY0MTIsIDAuMTE0MDQyLCAwLjMzMzc4MiwgMC41Mjg5MDYsIDAuNzkwOTM0LCAxLjMxMjYxLCAxLjYzOTM5IiwgXAotICAgICAgICAgICIwLjA3Njc5NSwgMC4xMTQzNTgsIDAuMzMzODIxLCAwLjUyOTA2OCwgMC43OTA4NTcsIDEuMzEyODEsIDEuNjM5NzUiLCBcCi0gICAgICAgICAgIjAuMDc3MzQzLCAwLjExNDc0LCAwLjMzMzc0LCAwLjUyODk4OCwgMC43ODk0NiwgMS4zMTI4MiwgMS42NDA4MiIsIFwKLSAgICAgICAgICAiMC4wNzgxNDgsIDAuMTE1MjcxLCAwLjMzMzk5OSwgMC41Mjk2MDUsIDAuNzkwMTQ1LCAxLjMxMzc0LCAxLjYzOTQ2IiwgXAotICAgICAgICAgICIwLjA3ODg3NSwgMC4xMTU4NzYsIDAuMzM0MjEsIDAuNTI5Nzg1LCAwLjc5MDIwNywgMS4zMTM4NSwgMS42NDA3NSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODA2MDIsIDAuMDk5NTUzLCAwLjIwMjg4NCwgMC4yOTM1ODIsIDAuNDE0NDM5LCAwLjY1NTkyNywgMC44MDY4NDIiLCBcCi0gICAgICAgICAgIjAuMDg3MTc0LCAwLjEwNjEyNCwgMC4yMDk0NDQsIDAuMzAwMTIzLCAwLjQyMDk2MiwgMC42NjI1MTIsIDAuODEzMzgxIiwgXAotICAgICAgICAgICIwLjA5NjA3NSwgMC4xMTUwMzQsIDAuMjE4MzU2LCAwLjMwOTAzMywgMC40Mjk4NjUsIDAuNjcxMzQ2LCAwLjgyMjM1MiIsIFwKLSAgICAgICAgICAiMC4xMDQ1ODIsIDAuMTIzNTIxLCAwLjIyNjg1NywgMC4zMTc1MjUsIDAuNDM4NDA4LCAwLjY3OTgzMiwgMC44MzA3NDUiLCBcCi0gICAgICAgICAgIjAuMTExOTA5LCAwLjEzMDkzOCwgMC4yMzQyODMsIDAuMzI0OTY3LCAwLjQ0NTc4OSwgMC42ODcyODEsIDAuODM4MTcyIiwgXAotICAgICAgICAgICIwLjEyMTgxMywgMC4xNDEwMjIsIDAuMjQ0NTI1LCAwLjMzNTE5MSwgMC40NTYwMDcsIDAuNjk3NTgxLCAwLjg0ODUzMyIsIFwKLSAgICAgICAgICAiMC4xMjkyMDEsIDAuMTQ4MzUzLCAwLjI1MjE2MSwgMC4zNDI4MDcsIDAuNDYzNjQzLCAwLjcwNTEyNiwgMC44NTYwNzciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc0MzgxLCAwLjExMDAyNSwgMC4zMTc3MjgsIDAuNTAzOTAxLCAwLjc1MTMzNCwgMS4yNDk3OCwgMS41NTg3NSIsIFwKLSAgICAgICAgICAiMC4wNzQyOTIsIDAuMTA5OTk2LCAwLjMxODA0LCAwLjUwMzg0NiwgMC43NTEzNTUsIDEuMjUwMDIsIDEuNTU4OCIsIFwKLSAgICAgICAgICAiMC4wNzQ0NjgsIDAuMTEwMTQyLCAwLjMxODA2NiwgMC41MDM4MzgsIDAuNzUyMzQxLCAxLjI0OTYzLCAxLjU2MDk4IiwgXAotICAgICAgICAgICIwLjA3NDg5MiwgMC4xMTA0MjgsIDAuMzE4MjA1LCAwLjUwMzg4NCwgMC43NTExMzYsIDEuMjQ5NjUsIDEuNTU5NjUiLCBcCi0gICAgICAgICAgIjAuMDc1NTA2LCAwLjExMDg5NSwgMC4zMTc5NjQsIDAuNTAzOTU2LCAwLjc1MTUxMiwgMS4yNDk3NiwgMS41NjA1MyIsIFwKLSAgICAgICAgICAiMC4wNzYxNzgsIDAuMTExNDU4LCAwLjMxODY2NSwgMC41MDQxMzIsIDAuNzUyMzg3LCAxLjI0OTg5LCAxLjU1OTMzIiwgXAotICAgICAgICAgICIwLjA3NjgwNCwgMC4xMTE4OTYsIDAuMzE4NTA2LCAwLjUwNDM3LCAwLjc1MTgzNSwgMS4yNDk3NiwgMS41NTgyOSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTAwMjYzLCAwLjExOTAzOCwgMC4yMjQ3NiwgMC4zMTc5NSwgMC40NDIxMzksIDAuNjkwNDQ1LCAwLjg0NTYzNCIsIFwKLSAgICAgICAgICAiMC4xMDgwNjYsIDAuMTI2ODE4LCAwLjIzMjU0NywgMC4zMjU3MjIsIDAuNDQ5OTE2LCAwLjY5ODIxOSwgMC44NTM0MTMiLCBcCi0gICAgICAgICAgIjAuMTE3NjQ2LCAwLjEzNjQxMiwgMC4yNDIxMjQsIDAuMzM1MzE4LCAwLjQ1OTUwMSwgMC43MDc4MDksIDAuODYyOTk2IiwgXAotICAgICAgICAgICIwLjEyNjA0NiwgMC4xNDQ4MjYsIDAuMjUwNTQ1LCAwLjM0Mzc0NCwgMC40Njc5LCAwLjcxNjIwOCwgMC44NzE0ODMiLCBcCi0gICAgICAgICAgIjAuMTMyODg1LCAwLjE1MTY0OCwgMC4yNTczNCwgMC4zNTA1MzYsIDAuNDc0NywgMC43MjMwMTUsIDAuODc4MTgiLCBcCi0gICAgICAgICAgIjAuMTQxNjcxLCAwLjE2MDUzNCwgMC4yNjYyOTksIDAuMzU5NDgzLCAwLjQ4MzY0OSwgMC43MzIwNDcsIDAuODg3MjM4IiwgXAotICAgICAgICAgICIwLjE0ODAzNSwgMC4xNjY5MjYsIDAuMjcyODM2LCAwLjM2NjAxNywgMC40OTAyMzIsIDAuNzM4NTQsIDAuODkzNzA5Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3MzY1OSwgMC4xMTE3MjMsIDAuMzMyNDMyLCAwLjUyODYyMSwgMC43OTAxMDMsIDEuMzEyLCAxLjYzODczIiwgXAotICAgICAgICAgICIwLjA3MzY0OSwgMC4xMTE3MjMsIDAuMzMyNjE3LCAwLjUyODYyMSwgMC43OTAwOTcsIDEuMzEyMTIsIDEuNjM4NzciLCBcCi0gICAgICAgICAgIjAuMDczNjUxLCAwLjExMTcyOSwgMC4zMzI1MjgsIDAuNTI4NTAyLCAwLjc5MDEwMywgMS4zMTIwMywgMS42NDAxOCIsIFwKLSAgICAgICAgICAiMC4wNzM2NDQsIDAuMTExNzc1LCAwLjMzMjYxNCwgMC41Mjg0ODIsIDAuNzkwMDk4LCAxLjMxMjA1LCAxLjY0MDIiLCBcCi0gICAgICAgICAgIjAuMDczNzksIDAuMTExODg3LCAwLjMzMjYyNiwgMC41Mjg0OTksIDAuNzg5Mzg5LCAxLjMxMzE5LCAxLjY0MDA0IiwgXAotICAgICAgICAgICIwLjA3MzkzNywgMC4xMTIxNzIsIDAuMzMyNTIzLCAwLjUyODY3OCwgMC43ODk1NzcsIDEuMzEzMTgsIDEuNjQwMTIiLCBcCi0gICAgICAgICAgIjAuMDc0MTYsIDAuMTEyMTY1LCAwLjMzMjU2LCAwLjUyODQwNSwgMC43ODg5NjYsIDEuMzEzMDEsIDEuNjM5OSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTc4MTEsIDAuMTE2MTY1LCAwLjIxODg5MiwgMC4zMDk0MjcsIDAuNDMwMTM1LCAwLjY3MTQ5OSwgMC44MjIzNjIiLCBcCi0gICAgICAgICAgIjAuMTA1MzM5LCAwLjEyMzY5MiwgMC4yMjY0MDYsIDAuMzE2OTY5LCAwLjQzNzY3MywgMC42NzkwMjQsIDAuODI5ODg1IiwgXAotICAgICAgICAgICIwLjExNDY4MiwgMC4xMzMwNDUsIDAuMjM1NzY1LCAwLjMyNjMzLCAwLjQ0NzAxMiwgMC42ODg0MjksIDAuODM5MjM5IiwgXAotICAgICAgICAgICIwLjEyMjk5OSwgMC4xNDEzNTUsIDAuMjQ0MDY5LCAwLjMzNDYyNywgMC40NTUzMTQsIDAuNjk2Njc4LCAwLjg0NzU0NSIsIFwKLSAgICAgICAgICAiMC4xMzAxMDEsIDAuMTQ4NDg2LCAwLjI1MTE5NSwgMC4zNDE3MzYsIDAuNDYyNDMxLCAwLjcwMzc5MywgMC44NTQ2NDMiLCBcCi0gICAgICAgICAgIjAuMTM5NTkyLCAwLjE1NzkzNywgMC4yNjA2NDcsIDAuMzUxMTg2LCAwLjQ3MTg4OCwgMC43MTMyODQsIDAuODY0MTQ0IiwgXAotICAgICAgICAgICIwLjE0Njk4NiwgMC4xNjUzMTQsIDAuMjY4MDI5LCAwLjM1ODU1MywgMC40NzkyNDYsIDAuNzIwNjExLCAwLjg3MTQ5NiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzA4NTIsIDAuMTA2OTcyLCAwLjMxNjMwNSwgMC41MDE5MTgsIDAuNzUxMDczLCAxLjI0NzIxLCAxLjU1OTE2IiwgXAotICAgICAgICAgICIwLjA3MDc5MywgMC4xMDY5NzMsIDAuMzE2Mjk5LCAwLjUwMTgxNiwgMC43NTEwNTEsIDEuMjQ4MjgsIDEuNTU5NTIiLCBcCi0gICAgICAgICAgIjAuMDcwODQ5LCAwLjEwNjk3NCwgMC4zMTYzMzYsIDAuNTAyNDk1LCAwLjc1MTA1NiwgMS4yNDcxNiwgMS41NTc3NiIsIFwKLSAgICAgICAgICAiMC4wNzA4MjYsIDAuMTA2OTkyLCAwLjMxNjMwOSwgMC41MDIwMTYsIDAuNzUxMDQ4LCAxLjI0NzIyLCAxLjU1Nzg5IiwgXAotICAgICAgICAgICIwLjA3MDk3LCAwLjEwNzExOSwgMC4zMTYzMjcsIDAuNTAyNDQsIDAuNzUxMDEsIDEuMjQ4MzIsIDEuNTU5MTQiLCBcCi0gICAgICAgICAgIjAuMDcxMDcyLCAwLjEwNzI2MywgMC4zMTYxMTcsIDAuNTAyMjUsIDAuNzUwMzgzLCAxLjI0ODE4LCAxLjU1OTMxIiwgXAotICAgICAgICAgICIwLjA3MTA5NiwgMC4xMDcyMTMsIDAuMzE2MzY3LCAwLjUwMTk1OCwgMC43NTA0ODksIDEuMjQ4MjQsIDEuNTU5MTQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDUxMTQsIDAuMDA1MTI0LCAwLjAwNTE0MiwgMC4wMDUxNDYsIDAuMDA1MTQ5LCAwLjAwNTE1MiwgMC4wMDUxNTIiLCBcCi0gICAgICAgICAgIjAuMDA1MDkyLCAwLjAwNTEwMywgMC4wMDUxMjEsIDAuMDA1MTI2LCAwLjAwNTEyOCwgMC4wMDUxMzEsIDAuMDA1MTMyIiwgXAotICAgICAgICAgICIwLjAwNTA5MiwgMC4wMDUxMDMsIDAuMDA1MTIyLCAwLjAwNTEyNywgMC4wMDUxMywgMC4wMDUxMzIsIDAuMDA1MTMzIiwgXAotICAgICAgICAgICIwLjAwNTExMSwgMC4wMDUxMjEsIDAuMDA1MTQsIDAuMDA1MTQ1LCAwLjAwNTE0OSwgMC4wMDUxNTIsIDAuMDA1MTUyIiwgXAotICAgICAgICAgICIwLjAwNTE0NSwgMC4wMDUxNDksIDAuMDA1MTY3LCAwLjAwNTE3MiwgMC4wMDUxNzYsIDAuMDA1MTc5LCAwLjAwNTE4IiwgXAotICAgICAgICAgICIwLjAwNTIxMiwgMC4wMDUyMTksIDAuMDA1MjM1LCAwLjAwNTIzNywgMC4wMDUyNDEsIDAuMDA1MjQ0LCAwLjAwNTI0NSIsIFwKLSAgICAgICAgICAiMC4wMDUyOCwgMC4wMDUyODMsIDAuMDA1MywgMC4wMDUzMDYsIDAuMDA1MzA4LCAwLjAwNTMxMiwgMC4wMDUzMTMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI1NSwgMC4wMDI1NiwgMC4wMDI1NzcsIDAuMDAyNTgxLCAwLjAwMjU4MywgMC4wMDI1ODUsIDAuMDAyNTg2IiwgXAotICAgICAgICAgICIwLjAwMjUxLCAwLjAwMjUyLCAwLjAwMjUzOSwgMC4wMDI1NDQsIDAuMDAyNTQ3LCAwLjAwMjU0OSwgMC4wMDI1NSIsIFwKLSAgICAgICAgICAiMC4wMDI1MDgsIDAuMDAyNTE4LCAwLjAwMjUzOCwgMC4wMDI1NDMsIDAuMDAyNTQ2LCAwLjAwMjU0OCwgMC4wMDI1NDkiLCBcCi0gICAgICAgICAgIjAuMDAyNTM4LCAwLjAwMjU0NywgMC4wMDI1NjQsIDAuMDAyNTY5LCAwLjAwMjU3MiwgMC4wMDI1NzUsIDAuMDAyNTc2IiwgXAotICAgICAgICAgICIwLjAwMjU4MiwgMC4wMDI1ODgsIDAuMDAyNjA0LCAwLjAwMjYwOCwgMC4wMDI2MTIsIDAuMDAyNjE1LCAwLjAwMjYxNSIsIFwKLSAgICAgICAgICAiMC4wMDI2MzksIDAuMDAyNjQ1LCAwLjAwMjY2MSwgMC4wMDI2NjcsIDAuMDAyNjcsIDAuMDAyNjczLCAwLjAwMjY3NSIsIFwKLSAgICAgICAgICAiMC4wMDI3NDksIDAuMDAyNzUsIDAuMDAyNzU3LCAwLjAwMjc2MSwgMC4wMDI3NjMsIDAuMDAyNzY2LCAwLjAwMjc2NiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDk0NiwgMC4wMDQ5NTYsIDAuMDA0OTc0LCAwLjAwNDk3OSwgMC4wMDQ5ODEsIDAuMDA0OTgzLCAwLjAwNDk4NCIsIFwKLSAgICAgICAgICAiMC4wMDQ5MDcsIDAuMDA0OTE4LCAwLjAwNDkzNywgMC4wMDQ5NDEsIDAuMDA0OTQ0LCAwLjAwNDk0NywgMC4wMDQ5NDciLCBcCi0gICAgICAgICAgIjAuMDA0ODc0LCAwLjAwNDg4NSwgMC4wMDQ5MDUsIDAuMDA0OTA3LCAwLjAwNDkxLCAwLjAwNDkxMywgMC4wMDQ5MTQiLCBcCi0gICAgICAgICAgIjAuMDA0ODgzLCAwLjAwNDg5MSwgMC4wMDQ5MSwgMC4wMDQ5MTQsIDAuMDA0OTE3LCAwLjAwNDkyLCAwLjAwNDkyMSIsIFwKLSAgICAgICAgICAiMC4wMDQ5NDMsIDAuMDA0OTQ4LCAwLjAwNDk2MywgMC4wMDQ5NjcsIDAuMDA0OTcsIDAuMDA0OTcyLCAwLjAwNDk3MiIsIFwKLSAgICAgICAgICAiMC4wMDUwMTIsIDAuMDA1MDE3LCAwLjAwNTAyOSwgMC4wMDUwMzcsIDAuMDA1MDM3LCAwLjAwNTA0LCAwLjAwNTA0MSIsIFwKLSAgICAgICAgICAiMC4wMDUxMTYsIDAuMDA1MTE4LCAwLjAwNTEzLCAwLjAwNTEzNCwgMC4wMDUxMzQsIDAuMDA1MTM3LCAwLjAwNTEzNyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjc4NSwgMC4wMDI3OTQsIDAuMDAyODEsIDAuMDAyODEzLCAwLjAwMjgxNSwgMC4wMDI4MTcsIDAuMDAyODE3IiwgXAotICAgICAgICAgICIwLjAwMjczMiwgMC4wMDI3NDIsIDAuMDAyNzYsIDAuMDAyNzYzLCAwLjAwMjc2NSwgMC4wMDI3NjcsIDAuMDAyNzY4IiwgXAotICAgICAgICAgICIwLjAwMjcyNywgMC4wMDI3MzcsIDAuMDAyNzU1LCAwLjAwMjc1OSwgMC4wMDI3NjIsIDAuMDAyNzY0LCAwLjAwMjc2NSIsIFwKLSAgICAgICAgICAiMC4wMDI3NzYsIDAuMDAyNzgzLCAwLjAwMjc5NywgMC4wMDI4MDEsIDAuMDAyODAzLCAwLjAwMjgwNSwgMC4wMDI4MDUiLCBcCi0gICAgICAgICAgIjAuMDAyODI3LCAwLjAwMjgzMiwgMC4wMDI4NDUsIDAuMDAyODQ5LCAwLjAwMjg1MSwgMC4wMDI4NTMsIDAuMDAyODUzIiwgXAotICAgICAgICAgICIwLjAwMjg4MywgMC4wMDI4ODgsIDAuMDAyOTAzLCAwLjAwMjkwOCwgMC4wMDI5MTEsIDAuMDAyOTEzLCAwLjAwMjkxNCIsIFwKLSAgICAgICAgICAiMC4wMDI5NzgsIDAuMDAyOTgsIDAuMDAyOTg2LCAwLjAwMjk5MSwgMC4wMDI5OTMsIDAuMDAyOTk2LCAwLjAwMjk5NyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNJIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQ1NTEsIDAuMDA0NTYxLCAwLjAwNDU3OCwgMC4wMDQ1ODIsIDAuMDA0NTg1LCAwLjAwNDU4NywgMC4wMDQ1ODgiLCBcCi0gICAgICAgICAgIjAuMDA0NTUzLCAwLjAwNDU2MywgMC4wMDQ1ODEsIDAuMDA0NTg2LCAwLjAwNDU4OSwgMC4wMDQ1OTIsIDAuMDA0NTkyIiwgXAotICAgICAgICAgICIwLjAwNDU4LCAwLjAwNDU5LCAwLjAwNDYwOSwgMC4wMDQ2MTUsIDAuMDA0NjE4LCAwLjAwNDYyMSwgMC4wMDQ2MjIiLCBcCi0gICAgICAgICAgIjAuMDA0NjI4LCAwLjAwNDYzNiwgMC4wMDQ2NTMsIDAuMDA0NjU4LCAwLjAwNDY2MywgMC4wMDQ2NjYsIDAuMDA0NjY2IiwgXAotICAgICAgICAgICIwLjAwNDY3NiwgMC4wMDQ2ODYsIDAuMDA0NzA0LCAwLjAwNDcwOCwgMC4wMDQ3MTIsIDAuMDA0NzE1LCAwLjAwNDcxNSIsIFwKLSAgICAgICAgICAiMC4wMDQ3NzIsIDAuMDA0Nzc4LCAwLjAwNDc5MiwgMC4wMDQ3OTcsIDAuMDA0OCwgMC4wMDQ4MDIsIDAuMDA0ODA0IiwgXAotICAgICAgICAgICIwLjAwNDg3MSwgMC4wMDQ4NzIsIDAuMDA0ODgyLCAwLjAwNDg4NSwgMC4wMDQ4ODksIDAuMDA0ODkzLCAwLjAwNDg5MyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjc3MiwgMC4wMDI3ODIsIDAuMDAyNzk4LCAwLjAwMjgwMiwgMC4wMDI4MDUsIDAuMDAyODA3LCAwLjAwMjgwNyIsIFwKLSAgICAgICAgICAiMC4wMDI3NTYsIDAuMDAyNzY3LCAwLjAwMjc4NSwgMC4wMDI3OSwgMC4wMDI3OTEsIDAuMDAyNzkzLCAwLjAwMjc5MyIsIFwKLSAgICAgICAgICAiMC4wMDI3NTcsIDAuMDAyNzY3LCAwLjAwMjc4NiwgMC4wMDI3OTEsIDAuMDAyNzk0LCAwLjAwMjc5NiwgMC4wMDI3OTciLCBcCi0gICAgICAgICAgIjAuMDAyNzksIDAuMDAyNzk5LCAwLjAwMjgxOCwgMC4wMDI4MjMsIDAuMDAyODI2LCAwLjAwMjgyOCwgMC4wMDI4MjkiLCBcCi0gICAgICAgICAgIjAuMDAyODM2LCAwLjAwMjg0MywgMC4wMDI4NjEsIDAuMDAyODY2LCAwLjAwMjg2OSwgMC4wMDI4NzIsIDAuMDAyODczIiwgXAotICAgICAgICAgICIwLjAwMjkyMiwgMC4wMDI5MjgsIDAuMDAyOTQzLCAwLjAwMjk0OCwgMC4wMDI5NTEsIDAuMDAyOTU0LCAwLjAwMjk1NCIsIFwKLSAgICAgICAgICAiMC4wMDMwMjUsIDAuMDAzMDI2LCAwLjAwMzAzOCwgMC4wMDMwNDIsIDAuMDAzMDQ1LCAwLjAwMzA0OCwgMC4wMDMwNDgiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IEFEREZYMSAqCi0gKiAtLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKEFEREZYMSkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjczNzUwODsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAyNzcwOTY7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAyNzU3NDY7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAyNzcwOTY7Ci0gIH0KLSAgcGluKEIpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMjU5OTQxOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMjU4MjcyOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMjU5OTQxOwotICB9Ci0gIHBpbihDSSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAyMDM1MjY7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAyMDI1MjI7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAyMDM1MjY7Ci0gIH0KLSAgcGluKENPKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMzQyMTQzOwotICAgIGZ1bmN0aW9uIDogIigoKEEgQikrKEIgQ0kpKSsoQ0kgQSkpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODQ2NTIsIDAuMTA0MTY1LCAwLjIxMDQ0MiwgMC4zMDM3ODgsIDAuNDI4MTkzLCAwLjY3NjUyNCwgMC44MzE0MjMiLCBcCi0gICAgICAgICAgIjAuMDkxNTA3LCAwLjExMTA1MywgMC4yMTcyNjUsIDAuMzEwMzI3LCAwLjQzNDQzNiwgMC42ODI3MDYsIDAuODM3OTc5IiwgXAotICAgICAgICAgICIwLjA5OTE2LCAwLjExODcwNywgMC4yMjQ5MjEsIDAuMzE3OTc5LCAwLjQ0MjE4NCwgMC42OTAzNzMsIDAuODQ1NDA3IiwgXAotICAgICAgICAgICIwLjEwNjA5NiwgMC4xMjU2NjIsIDAuMjMxODg4LCAwLjMyNDk0MiwgMC40NDkyNTMsIDAuNjk3MzI3LCAwLjg1MjYyMSIsIFwKLSAgICAgICAgICAiMC4xMTI0NTcsIDAuMTMyMDY4LCAwLjIzODQyOSwgMC4zMzEzOTksIDAuNDU1OTEzLCAwLjcwNDEzNywgMC44NTkwNDkiLCBcCi0gICAgICAgICAgIjAuMTIxMjg1LCAwLjE0MDkzNCwgMC4yNDc0NDMsIDAuMzQwNTQ2LCAwLjQ2NTMwNSwgMC43MTMwNjcsIDAuODY4NTI3IiwgXAotICAgICAgICAgICIwLjEyODIwMiwgMC4xNDc5NTYsIDAuMjU0MzQyLCAwLjM0NzUzLCAwLjQ3MjM2OSwgMC43MjAxMDUsIDAuODc1MjI5Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3OTI1NSwgMC4xMTcxMDIsIDAuMzM0NDIzLCAwLjUyOTY3MSwgMC43OTEyNDMsIDEuMzEzNDIsIDEuNjQxOTYiLCBcCi0gICAgICAgICAgIjAuMDc5MTg4LCAwLjExNjU1MiwgMC4zMzQ0NTMsIDAuNTI5NzE0LCAwLjc4OTkzMSwgMS4zMTIxMiwgMS42NDE4IiwgXAotICAgICAgICAgICIwLjA3OTA5LCAwLjExNjk2MSwgMC4zMzQ1OTEsIDAuNTI4OTIsIDAuNzg5NzU1LCAxLjMxMjg3LCAxLjY0MTQ4IiwgXAotICAgICAgICAgICIwLjA3OTU2OCwgMC4xMTY4MzcsIDAuMzM0NjQ2LCAwLjUyOTY4MywgMC43OTEyMjIsIDEuMzEyMzYsIDEuNjQxMzYiLCBcCi0gICAgICAgICAgIjAuMDgwMzY0LCAwLjExNzM4OCwgMC4zMzQ3MjUsIDAuNTI5NzQsIDAuNzkxMjQyLCAxLjMxMzIyLCAxLjY0MTQ0IiwgXAotICAgICAgICAgICIwLjA4MTM5NCwgMC4xMTg2NDgsIDAuMzM0NjQ1LCAwLjUyOTEzLCAwLjc5MDY4NCwgMS4zMTI2MSwgMS42NDA0NiIsIFwKLSAgICAgICAgICAiMC4wODI1OTEsIDAuMTE5MTExLCAwLjMzNTEyNSwgMC41Mjk2MzcsIDAuNzg5ODQ4LCAxLjMxMzA2LCAxLjYzOTEyIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4OTk5OCwgMC4xMDkzNDUsIDAuMjEzMTA1LCAwLjMwMzcxLCAwLjQyNDk5MywgMC42NjY0NDcsIDAuODE3OTQxIiwgXAotICAgICAgICAgICIwLjA5NjM3MywgMC4xMTU3NTEsIDAuMjE5MjI4LCAwLjMwOTgxMywgMC40MzEwNCwgMC42NzI5MjYsIDAuODIzNzc1IiwgXAotICAgICAgICAgICIwLjEwMzM0NSwgMC4xMjI3MjIsIDAuMjI2MzM3LCAwLjMxNzIxLCAwLjQzNzk3NywgMC42NzkyODEsIDAuODMwNjciLCBcCi0gICAgICAgICAgIjAuMTA5ODAyLCAwLjEyOTIwNSwgMC4yMzMwMTUsIDAuMzIzNjI3LCAwLjQ0MzkzOCwgMC42ODYzNDcsIDAuODM3MzYxIiwgXAotICAgICAgICAgICIwLjExNTQ3NCwgMC4xMzQ5MTgsIDAuMjM4NTc2LCAwLjMyOTM5MywgMC40NTAyMTgsIDAuNjkxNzU1LCAwLjg0Mjk5MSIsIFwKLSAgICAgICAgICAiMC4xMjM0NTksIDAuMTQzMDQ3LCAwLjI0Njk0NywgMC4zMzc3NjcsIDAuNDU4NzI4LCAwLjY5OTc4LCAwLjg1MTAwMiIsIFwKLSAgICAgICAgICAiMC4xMjk3MzcsIDAuMTQ5MzgzLCAwLjI1MzM4NiwgMC4zNDQzODksIDAuNDY0NzUyLCAwLjcwNjM5OSwgMC44NTc2MTEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc3Mzk5LCAwLjExMzU4MiwgMC4zMjA4ODYsIDAuNTA0OTUyLCAwLjc1MjQ0MywgMS4yNDkyMiwgMS41NjA4MyIsIFwKLSAgICAgICAgICAiMC4wNzc0NjUsIDAuMTEzNDk5LCAwLjMyMDc1MywgMC41MDU3NTQsIDAuNzUyNDQ4LCAxLjI0Nzg3LCAxLjU2MDg0IiwgXAotICAgICAgICAgICIwLjA3NzQ0MiwgMC4xMTM0OTYsIDAuMzIwODg0LCAwLjUwMzg3NCwgMC43NTMzMTksIDEuMjQ5MjMsIDEuNTYwODgiLCBcCi0gICAgICAgICAgIjAuMDc3NjAxLCAwLjExMzY2NiwgMC4zMjA4ODEsIDAuNTA1MjczLCAwLjc1MzI1OSwgMS4yNDk3NiwgMS41NTk0NCIsIFwKLSAgICAgICAgICAiMC4wNzgzMzQsIDAuMTE0MTk5LCAwLjMyMDk2OSwgMC41MDQ2MjUsIDAuNzUyMzgxLCAxLjI0ODE3LCAxLjU2MDY1IiwgXAotICAgICAgICAgICIwLjA3OTkzOSwgMC4xMTUyMzksIDAuMzIxMTYsIDAuNTA1ODYxLCAwLjc1MjA4NywgMS4yNTAwOCwgMS41NTk1MiIsIFwKLSAgICAgICAgICAiMC4wODA0NzUsIDAuMTE1NjYxLCAwLjMyMTE1MSwgMC41MDU3MTEsIDAuNzUzMTczLCAxLjI0ODk1LCAxLjU2MDI3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4NDg5NCwgMC4xMDQ0MjcsIDAuMjEwNjc5LCAwLjMwNDI4MSwgMC40Mjg2NjgsIDAuNjc2NDczLCAwLjgzMTYwMSIsIFwKLSAgICAgICAgICAiMC4wOTIyMywgMC4xMTE3NzIsIDAuMjE4MjMyLCAwLjMxMTUxOSwgMC40MzU5NjUsIDAuNjgzNzg3LCAwLjgzOTEzNSIsIFwKLSAgICAgICAgICAiMC4xMDE4NTQsIDAuMTIxMzg3LCAwLjIyNzYyNSwgMC4zMjExNDgsIDAuNDQ1NjA1LCAwLjY5MzQwNiwgMC44NDg3NjUiLCBcCi0gICAgICAgICAgIjAuMTExMTAxLCAwLjEzMDY0NiwgMC4yMzY5NjgsIDAuMzMwMzg3LCAwLjQ1NDc2MywgMC43MDI2NTEsIDAuODU3OTE1IiwgXAotICAgICAgICAgICIwLjExOTUyMywgMC4xMzkwOTIsIDAuMjQ1NDIsIDAuMzM5MDI5LCAwLjQ2MzQwNiwgMC43MTEzNTQsIDAuODY2MjI1IiwgXAotICAgICAgICAgICIwLjEzMTEwNiwgMC4xNTA3MzcsIDAuMjU2OTU2LCAwLjM1MDQ3NiwgMC40NzQ5NzUsIDAuNzIyNjEyLCAwLjg3Nzk0NyIsIFwKLSAgICAgICAgICAiMC4xMzk1NjQsIDAuMTU5MzM5LCAwLjI2NTY5OSwgMC4zNTkyNjIsIDAuNDgzNjMzLCAwLjczMTM4MiwgMC44ODY4NDYiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc5MjMxLCAwLjExNzE4MiwgMC4zMzQ1NTcsIDAuNTI5Mjk3LCAwLjc5MDUyOCwgMS4zMTMzNiwgMS42MzkyOSIsIFwKLSAgICAgICAgICAiMC4wNzkxOTcsIDAuMTE3MTQzLCAwLjMzNDM5NCwgMC41Mjk2OTIsIDAuNzkxMjMyLCAxLjMxMjU0LCAxLjY0MTg0IiwgXAotICAgICAgICAgICIwLjA3OTMyNSwgMC4xMTcwNiwgMC4zMzQ0ODksIDAuNTI5NywgMC43OTEyMywgMS4zMTMzMywgMS42NDE0NCIsIFwKLSAgICAgICAgICAiMC4wNzk5MTIsIDAuMTE3ODM0LCAwLjMzNDYwOCwgMC41Mjk2ODQsIDAuNzkxMTkzLCAxLjMxMjcxLCAxLjY0MTMiLCBcCi0gICAgICAgICAgIjAuMDgwNzk2LCAwLjExODMxMiwgMC4zMzQ2ODUsIDAuNTI5ODc2LCAwLjc5MDUzNSwgMS4zMTM4NSwgMS42NDAwMiIsIFwKLSAgICAgICAgICAiMC4wODIxLCAwLjExOTcwOCwgMC4zMzUxMDksIDAuNTI5Nzk5LCAwLjc5MDUzOSwgMS4zMTIxLCAxLjY0MTEyIiwgXAotICAgICAgICAgICIwLjA4MjgzLCAwLjEyMDU0MiwgMC4zMzQ5ODcsIDAuNTMwMDc0LCAwLjc4OTg3NywgMS4zMTMxNSwgMS42Mzk5OCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODg5NTEsIDAuMTA4MzA1LCAwLjIxMjE2OCwgMC4zMDI1OCwgMC40MjM0NDUsIDAuNjY0Nzk3LCAwLjgxNjk2NCIsIFwKLSAgICAgICAgICAiMC4wOTYxMzEsIDAuMTE1NDg4LCAwLjIxOTMyMiwgMC4zMTAwMTIsIDAuNDMwNzksIDAuNjczMTQ0LCAwLjgyNDE0MSIsIFwKLSAgICAgICAgICAiMC4xMDU2NjMsIDAuMTI1MDA3LCAwLjIyODg3LCAwLjMxOTUwMywgMC40NDA2MTEsIDAuNjgyNjk2LCAwLjgzMzY3MSIsIFwKLSAgICAgICAgICAiMC4xMTQ5MzQsIDAuMTM0Mjc5LCAwLjIzODEyNywgMC4zMjg4MDQsIDAuNDQ5NTg2LCAwLjY5MTkyNCwgMC44NDI5NTkiLCBcCi0gICAgICAgICAgIjAuMTIzMjUxLCAwLjE0MjYyNiwgMC4yNDY1MzQsIDAuMzM3MjU3LCAwLjQ1Nzk5NywgMC42OTk4MDgsIDAuODUxMDE2IiwgXAotICAgICAgICAgICIwLjEzNDU5NSwgMC4xNTQxMzUsIDAuMjU4MDQ2LCAwLjM0ODQxNywgMC40Njk4MTQsIDAuNzEwNzMsIDAuODYyODIxIiwgXAotICAgICAgICAgICIwLjE0MzIxOCwgMC4xNjI5MTIsIDAuMjY2OTQ1LCAwLjM1NzQ1NiwgMC40Nzg3MDIsIDAuNzE5MzUsIDAuODcwMjkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc4MjM3LCAwLjExNDUzNCwgMC4zMjEzOTUsIDAuNTA1NjI5LCAwLjc1MzIzMywgMS4yNDk5OSwgMS41NTk1IiwgXAotICAgICAgICAgICIwLjA3ODY0NywgMC4xMTQ1MDQsIDAuMzIwNzY0LCAwLjUwNTI1LCAwLjc1MjY2MiwgMS4yNDk0NywgMS41NTg4MSIsIFwKLSAgICAgICAgICAiMC4wNzg2OTMsIDAuMTE0NTU0LCAwLjMyMTMzNCwgMC41MDU4NjEsIDAuNzUyMzU2LCAxLjI1MDAxLCAxLjU2MDUxIiwgXAotICAgICAgICAgICIwLjA3OTIxOSwgMC4xMTQ4NjksIDAuMzIxMzc0LCAwLjUwNTM1LCAwLjc1Mjk4NywgMS4yNDkxOSwgMS41NjA0MyIsIFwKLSAgICAgICAgICAiMC4wODAxODEsIDAuMTE1ODA1LCAwLjMyMDg2LCAwLjUwNTUzOCwgMC43NTMwMDIsIDEuMjQ4ODIsIDEuNTYwNiIsIFwKLSAgICAgICAgICAiMC4wODE0OTcsIDAuMTE3MDUzLCAwLjMyMTkxLCAwLjUwNTc1OSwgMC43NTE5NzMsIDEuMjQ5NjgsIDEuNTYwMzEiLCBcCi0gICAgICAgICAgIjAuMDgyNDcsIDAuMTE4MDE3LCAwLjMyMDU5NywgMC41MDUxNTEsIDAuNzUxOTEyLCAxLjI0ODc0LCAxLjU2MDU5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNJIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODAyMjcsIDAuMDk5NzUzLCAwLjIwNjA2OCwgMC4yOTkwOTcsIDAuNDIzNjcyLCAwLjY3MTUyNiwgMC44MjY0NTkiLCBcCi0gICAgICAgICAgIjAuMDg3ODU5LCAwLjEwNzQxMiwgMC4yMTM1MjksIDAuMzA2OTcsIDAuNDMxMzI3LCAwLjY3OTE3MiwgMC44MzQxMSIsIFwKLSAgICAgICAgICAiMC4wOTc0NzMsIDAuMTE3MDI3LCAwLjIyMzI4NCwgMC4zMTYzMzEsIDAuNDQwODU0LCAwLjY4ODY2MiwgMC44NDM3MDgiLCBcCi0gICAgICAgICAgIjAuMTA2NjMzLCAwLjEyNjE5OSwgMC4yMzI0MTksIDAuMzI1ODE5LCAwLjQ1MDA3MywgMC42OTc5NjgsIDAuODUyODg3IiwgXAotICAgICAgICAgICIwLjExNDU0MSwgMC4xMzQxMzIsIDAuMjQwNTA0LCAwLjMzMzQ0OCwgMC40NTc5MzMsIDAuNzA1NzQ5LCAwLjg2MDc4MiIsIFwKLSAgICAgICAgICAiMC4xMjU0MDYsIDAuMTQ1MTE0LCAwLjI1MTQ0NywgMC4zNDQ3MzksIDAuNDY4NTE2LCAwLjcxNjk2LCAwLjg3MTg5MiIsIFwKLSAgICAgICAgICAiMC4xMzMyMSwgMC4xNTMwMDIsIDAuMjU5MzYyLCAwLjM1MjYxLCAwLjQ3NjYzMywgMC43MjQ3MTgsIDAuODc5ODA2Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3OTI1MiwgMC4xMTczMTgsIDAuMzM0NDA4LCAwLjUyOTIyOSwgMC43OTA3MjUsIDEuMzEzMzcsIDEuNjM5MTUiLCBcCi0gICAgICAgICAgIjAuMDc5Mjg3LCAwLjExNzI4MywgMC4zMzQzOTQsIDAuNTI5MzY2LCAwLjc5MDcxOSwgMS4zMTMzNywgMS42MzkxOCIsIFwKLSAgICAgICAgICAiMC4wNzkzOTksIDAuMTE3NDIyLCAwLjMzNDUwOSwgMC41MjkyMTksIDAuNzkwNjk1LCAxLjMxMzQ0LCAxLjYzOTk4IiwgXAotICAgICAgICAgICIwLjA4MDA5LCAwLjExNzQ0LCAwLjMzNDU1NCwgMC41MjkzMzEsIDAuNzkwNjU0LCAxLjMxMzI3LCAxLjYzODU5IiwgXAotICAgICAgICAgICIwLjA4MTAxMywgMC4xMTg0NjMsIDAuMzM0NjU2LCAwLjUyODgzNiwgMC43OTA3MTcsIDEuMzEzNCwgMS42Mzk5MSIsIFwKLSAgICAgICAgICAiMC4wODI3ODQsIDAuMTE5NzYzLCAwLjMzNDUzNCwgMC41MjkzNzgsIDAuNzg5NDc0LCAxLjMxMzI5LCAxLjY0MDQzIiwgXAotICAgICAgICAgICIwLjA4MzU4MywgMC4xMjA0NTgsIDAuMzM1MDgyLCAwLjUyOTUwMSwgMC43OTA2NSwgMS4zMTMyMywgMS42NDAwMyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODQyMywgMC4xMDM4NzQsIDAuMjA3NzU4LCAwLjI5ODA3OSwgMC40MTk0MDUsIDAuNjYwMzA3LCAwLjgxMTEzMyIsIFwKLSAgICAgICAgICAiMC4wOTE2MzEsIDAuMTExMzA0LCAwLjIxNTE0NCwgMC4zMDU4OTEsIDAuNDI2ODE5LCAwLjY2Nzc2OSwgMC44MTg0NTYiLCBcCi0gICAgICAgICAgIjAuMTAxMTQ3LCAwLjEyMDc5NSwgMC4yMjQ2NjQsIDAuMzE1NDEzLCAwLjQzNjM5LCAwLjY3NzY4OSwgMC44MjgwNjkiLCBcCi0gICAgICAgICAgIjAuMTEwMDIsIDAuMTI5Njg1LCAwLjIzMzU1MiwgMC4zMjM5NjEsIDAuNDQ1MjI5LCAwLjY4NjE5NCwgMC44MzcwMzUiLCBcCi0gICAgICAgICAgIjAuMTE3OTc4LCAwLjEzNzcxLCAwLjI0MTU5OSwgMC4zMzIzMzEsIDAuNDUyNjgyLCAwLjY5NTE0NiwgMC44NDU0ODciLCBcCi0gICAgICAgICAgIjAuMTI4NTc4LCAwLjE0ODQ5LCAwLjI1MjU4OSwgMC4zNDMyMzgsIDAuNDY0MDkxLCAwLjcwNTE2NywgMC44NTY0MyIsIFwKLSAgICAgICAgICAiMC4xMzY1NDYsIDAuMTU2NTgsIDAuMjYwNzgzLCAwLjM1MTQwMywgMC40NzIzMTUsIDAuNzEzMzY0LCAwLjg2NTAzNyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzg5MDksIDAuMTE0MTQ1LCAwLjMyMTI2NSwgMC41MDUwNTcsIDAuNzUxNzE5LCAxLjI0OTk0LCAxLjU2MDQyIiwgXAotICAgICAgICAgICIwLjA3ODc3NiwgMC4xMTQ3NTYsIDAuMzIwNjk3LCAwLjUwNTQ1MywgMC43NTE3MjcsIDEuMjQ5OTQsIDEuNTYwMDgiLCBcCi0gICAgICAgICAgIjAuMDc5MDMyLCAwLjExNDg4OSwgMC4zMjA2OTksIDAuNTA1NDI0LCAwLjc1MTU0MywgMS4yNDg0NSwgMS41NjA0IiwgXAotICAgICAgICAgICIwLjA3OTIwNywgMC4xMTUxOCwgMC4zMjEzMzcsIDAuNTA0ODIxLCAwLjc1MTUzNCwgMS4yNDk5MiwgMS41NjA1IiwgXAotICAgICAgICAgICIwLjA4MDMzMywgMC4xMTU4MTUsIDAuMzIxNDE3LCAwLjUwNTI4OCwgMC43NTMzMDMsIDEuMjQ5NDcsIDEuNTYwMDgiLCBcCi0gICAgICAgICAgIjAuMDgyMDczLCAwLjExNzE1OCwgMC4zMjE1ODUsIDAuNTA1MDAzLCAwLjc1MTA3NywgMS4yNDYzNiwgMS41NTk2MiIsIFwKLSAgICAgICAgICAiMC4wODMwNjMsIDAuMTE4MDYsIDAuMzIxNTg0LCAwLjUwNTUwMSwgMC43NTI5NzQsIDEuMjQ5NjIsIDEuNTYwMDYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI0NDcsIDAuMDAyNDU2LCAwLjAwMjQ3MiwgMC4wMDI0NzYsIDAuMDAyNDc5LCAwLjAwMjQ4MSwgMC4wMDI0ODEiLCBcCi0gICAgICAgICAgIjAuMDAyNDE5LCAwLjAwMjQyOSwgMC4wMDI0NDcsIDAuMDAyNDUxLCAwLjAwMjQ1NCwgMC4wMDI0NTYsIDAuMDAyNDU2IiwgXAotICAgICAgICAgICIwLjAwMjQyMiwgMC4wMDI0MzEsIDAuMDAyNDQ5LCAwLjAwMjQ1NCwgMC4wMDI0NTcsIDAuMDAyNDU5LCAwLjAwMjQ2MSIsIFwKLSAgICAgICAgICAiMC4wMDI0NDQsIDAuMDAyNDUxLCAwLjAwMjQ2OSwgMC4wMDI0NzQsIDAuMDAyNDc3LCAwLjAwMjQ3OSwgMC4wMDI0OCIsIFwKLSAgICAgICAgICAiMC4wMDI0NzUsIDAuMDAyNDgxLCAwLjAwMjQ5NywgMC4wMDI1MDIsIDAuMDAyNTA2LCAwLjAwMjUwOCwgMC4wMDI1MDkiLCBcCi0gICAgICAgICAgIjAuMDAyNTMyLCAwLjAwMjUzNywgMC4wMDI1NTEsIDAuMDAyNTU2LCAwLjAwMjU2LCAwLjAwMjU2MiwgMC4wMDI1NjMiLCBcCi0gICAgICAgICAgIjAuMDAyNTkxLCAwLjAwMjU5NSwgMC4wMDI2MDgsIDAuMDAyNjEzLCAwLjAwMjYxNiwgMC4wMDI2MTksIDAuMDAyNjIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQ0NjEsIDAuMDA0NDcsIDAuMDA0NDg3LCAwLjAwNDQ5MSwgMC4wMDQ0OTQsIDAuMDA0NDk2LCAwLjAwNDQ5NyIsIFwKLSAgICAgICAgICAiMC4wMDQ0NDQsIDAuMDA0NDUzLCAwLjAwNDQ3MSwgMC4wMDQ0NzYsIDAuMDA0NDc5LCAwLjAwNDQ4MiwgMC4wMDQ0ODIiLCBcCi0gICAgICAgICAgIjAuMDA0NDQ0LCAwLjAwNDQ1MywgMC4wMDQ0NzIsIDAuMDA0NDc3LCAwLjAwNDQ4LCAwLjAwNDQ4MywgMC4wMDQ0ODQiLCBcCi0gICAgICAgICAgIjAuMDA0NDYsIDAuMDA0NDY5LCAwLjAwNDQ4OCwgMC4wMDQ0OTMsIDAuMDA0NDk3LCAwLjAwNDQ5OSwgMC4wMDQ1IiwgXAotICAgICAgICAgICIwLjAwNDQ5NCwgMC4wMDQ0OTcsIDAuMDA0NTE0LCAwLjAwNDUxOSwgMC4wMDQ1MjIsIDAuMDA0NTI1LCAwLjAwNDUyNiIsIFwKLSAgICAgICAgICAiMC4wMDQ1NTIsIDAuMDA0NTU1LCAwLjAwNDU2OCwgMC4wMDQ1NzMsIDAuMDA0NTc2LCAwLjAwNDU3OCwgMC4wMDQ1NzkiLCBcCi0gICAgICAgICAgIjAuMDA0NTk5LCAwLjAwNDYwNCwgMC4wMDQ2MTcsIDAuMDA0NjIzLCAwLjAwNDYyNywgMC4wMDQ2MywgMC4wMDQ2MzEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI2MTYsIDAuMDAyNjI1LCAwLjAwMjY0LCAwLjAwMjY0MywgMC4wMDI2NDYsIDAuMDAyNjQ3LCAwLjAwMjY1IiwgXAotICAgICAgICAgICIwLjAwMjU4MSwgMC4wMDI1OTEsIDAuMDAyNjA3LCAwLjAwMjYxMSwgMC4wMDI2MTQsIDAuMDAyNjE1LCAwLjAwMjYxNiIsIFwKLSAgICAgICAgICAiMC4wMDI1ODIsIDAuMDAyNTksIDAuMDAyNjA3LCAwLjAwMjYxMSwgMC4wMDI2MTQsIDAuMDAyNjE2LCAwLjAwMjYxNyIsIFwKLSAgICAgICAgICAiMC4wMDI2MDIsIDAuMDAyNjEsIDAuMDAyNjI3LCAwLjAwMjYzMiwgMC4wMDI2MzUsIDAuMDAyNjM3LCAwLjAwMjYzOCIsIFwKLSAgICAgICAgICAiMC4wMDI2NDEsIDAuMDAyNjQ3LCAwLjAwMjY2MiwgMC4wMDI2NjcsIDAuMDAyNjcsIDAuMDAyNjcyLCAwLjAwMjY3MyIsIFwKLSAgICAgICAgICAiMC4wMDI3NDgsIDAuMDAyNzQ2LCAwLjAwMjcyOCwgMC4wMDI3NTMsIDAuMDAyNzU0LCAwLjAwMjczOCwgMC4wMDI3NTYiLCBcCi0gICAgICAgICAgIjAuMDAyNzg5LCAwLjAwMjc4OSwgMC4wMDI3OTgsIDAuMDAyNzk0LCAwLjAwMjgwNSwgMC4wMDI4LCAwLjAwMjgwOSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDMxNywgMC4wMDQzMjUsIDAuMDA0MzQyLCAwLjAwNDM0NiwgMC4wMDQzNDksIDAuMDA0MzUxLCAwLjAwNDM1MyIsIFwKLSAgICAgICAgICAiMC4wMDQyOTEsIDAuMDA0MywgMC4wMDQzMTgsIDAuMDA0MzIyLCAwLjAwNDMyNSwgMC4wMDQzMjgsIDAuMDA0MzI4IiwgXAotICAgICAgICAgICIwLjAwNDI5MSwgMC4wMDQzLCAwLjAwNDMxOCwgMC4wMDQzMjIsIDAuMDA0MzI1LCAwLjAwNDMyOCwgMC4wMDQzMjgiLCBcCi0gICAgICAgICAgIjAuMDA0MzI0LCAwLjAwNDMzLCAwLjAwNDM0NywgMC4wMDQzNTEsIDAuMDA0MzU1LCAwLjAwNDM1NywgMC4wMDQzNTgiLCBcCi0gICAgICAgICAgIjAuMDA0Mzc5LCAwLjAwNDM4MSwgMC4wMDQzODYsIDAuMDA0MzksIDAuMDA0MzkzLCAwLjAwNDM5NSwgMC4wMDQzOTUiLCBcCi0gICAgICAgICAgIjAuMDA0NDM1LCAwLjAwNDQzNywgMC4wMDQ0NSwgMC4wMDQ0NTQsIDAuMDA0NDU4LCAwLjAwNDQ2LCAwLjAwNDQ2MSIsIFwKLSAgICAgICAgICAiMC4wMDQ1MjIsIDAuMDA0NTIsIDAuMDA0NTI1LCAwLjAwNDUzOSwgMC4wMDQ1MzIsIDAuMDA0NTQzLCAwLjAwNDU0NCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNJIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI2MTgsIDAuMDAyNjI3LCAwLjAwMjY0NCwgMC4wMDI2NDgsIDAuMDAyNjUxLCAwLjAwMjY1MiwgMC4wMDI2NTMiLCBcCi0gICAgICAgICAgIjAuMDAyNjA5LCAwLjAwMjYxOCwgMC4wMDI2MzYsIDAuMDAyNjQyLCAwLjAwMjY0MiwgMC4wMDI2NDYsIDAuMDAyNjQ2IiwgXAotICAgICAgICAgICIwLjAwMjYxMSwgMC4wMDI2MjEsIDAuMDAyNjQsIDAuMDAyNjQ1LCAwLjAwMjY0NywgMC4wMDI2NSwgMC4wMDI2NTEiLCBcCi0gICAgICAgICAgIjAuMDAyNjQ2LCAwLjAwMjY1MywgMC4wMDI2NywgMC4wMDI2NzUsIDAuMDAyNjc5LCAwLjAwMjY4LCAwLjAwMjY4MSIsIFwKLSAgICAgICAgICAiMC4wMDI2ODIsIDAuMDAyNjg4LCAwLjAwMjcwNCwgMC4wMDI3MDksIDAuMDAyNzEyLCAwLjAwMjcxNCwgMC4wMDI3MTUiLCBcCi0gICAgICAgICAgIjAuMDAyNzQ3LCAwLjAwMjc1MSwgMC4wMDI3NjQsIDAuMDAyNzY5LCAwLjAwMjc3MiwgMC4wMDI3NzUsIDAuMDAyNzc2IiwgXAotICAgICAgICAgICIwLjAwMjgyMiwgMC4wMDI4MjQsIDAuMDAyODM1LCAwLjAwMjgzOSwgMC4wMDI4NDIsIDAuMDAyODQ1LCAwLjAwMjg0NiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDAwNSwgMC4wMDQwMTMsIDAuMDA0MDI5LCAwLjAwNDAzNCwgMC4wMDQwMzUsIDAuMDA0MDM3LCAwLjAwNDAzOSIsIFwKLSAgICAgICAgICAiMC4wMDQwMDQsIDAuMDA0MDEyLCAwLjAwNDAyOSwgMC4wMDQwMzMsIDAuMDA0MDM2LCAwLjAwNDAzOSwgMC4wMDQwNCIsIFwKLSAgICAgICAgICAiMC4wMDQwMTksIDAuMDA0MDI3LCAwLjAwNDA0NSwgMC4wMDQwNDksIDAuMDA0MDUzLCAwLjAwNDA1NiwgMC4wMDQwNTciLCBcCi0gICAgICAgICAgIjAuMDA0MDU1LCAwLjAwNDA2MiwgMC4wMDQwNzgsIDAuMDA0MDgzLCAwLjAwNDA4NiwgMC4wMDQwODksIDAuMDA0MDkiLCBcCi0gICAgICAgICAgIjAuMDA0MDk2LCAwLjAwNDEsIDAuMDA0MTE0LCAwLjAwNDExOCwgMC4wMDQxMjEsIDAuMDA0MTI0LCAwLjAwNDEyNSIsIFwKLSAgICAgICAgICAiMC4wMDQxNzYsIDAuMDA0MTc2LCAwLjAwNDE4NSwgMC4wMDQxODksIDAuMDA0MTkyLCAwLjAwNDE5NCwgMC4wMDQxOTUiLCBcCi0gICAgICAgICAgIjAuMDA0MjQ0LCAwLjAwNDI0LCAwLjAwNDI0NywgMC4wMDQyNDksIDAuMDA0MjUzLCAwLjAwNDI1NSwgMC4wMDQyNTYiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFMpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4zNDA0OTsKLSAgICBmdW5jdGlvbiA6ICIoKEFeQileQ0kpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODk5NDcsIDAuMTA5Mjk5LCAwLjIxNTUyMywgMC4zMDg4MTEsIDAuNDMzMTU2LCAwLjY4MTU2MSwgMC44MzY4NyIsIFwKLSAgICAgICAgICAiMC4wOTQ3MDQsIDAuMTE0MDkxLCAwLjIyMDMzMiwgMC4zMTM2MTMsIDAuNDM3OTYxLCAwLjY4NjM2NCwgMC44NDE1OTYiLCBcCi0gICAgICAgICAgIjAuMTAwMjEsIDAuMTE5NjExLCAwLjIyNTgyOCwgMC4zMTkxMjksIDAuNDQzNTA5LCAwLjY5MTkwNywgMC44NDcwNjYiLCBcCi0gICAgICAgICAgIjAuMTA1NjE0LCAwLjEyNTA0OSwgMC4yMzEyNjMsIDAuMzI0NTU3LCAwLjQ0ODkxLCAwLjY5NzI3MywgMC44NTI1NTEiLCBcCi0gICAgICAgICAgIjAuMTEwNTMxLCAwLjEzMDA0MSwgMC4yMzYyNTEsIDAuMzI5NTQ1LCAwLjQ1Mzg0OSwgMC43MDIyNjYsIDAuODU3NTA0IiwgXAotICAgICAgICAgICIwLjExNzY0LCAwLjEzNzI3MSwgMC4yNDM1NCwgMC4zMzY4MTYsIDAuNDYxMDk2LCAwLjcwOTU4NSwgMC44NjQ3NDQiLCBcCi0gICAgICAgICAgIjAuMTIzMzk1LCAwLjE0Mjk2OCwgMC4yNDkzMjksIDAuMzQyNTE4LCAwLjQ2Njc4MiwgMC43MTUxOTgsIDAuODcwNTA2Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3ODY1NCwgMC4xMTYwMTQsIDAuMzM0NjU2LCAwLjUzMDEwNCwgMC43OTE2MDEsIDEuMzEzNSwgMS42MzkzMSIsIFwKLSAgICAgICAgICAiMC4wNzg2MDEsIDAuMTE1OTU0LCAwLjMzNDYzOSwgMC41MzAwODEsIDAuNzkwMzc2LCAxLjMxMzI0LCAxLjY0MTU3IiwgXAotICAgICAgICAgICIwLjA3ODU4MiwgMC4xMTU5ODIsIDAuMzM0NjQ4LCAwLjUzMDIxNywgMC43OTAzMDgsIDEuMzE0NTUsIDEuNjQxNDMiLCBcCi0gICAgICAgICAgIjAuMDc4ODA1LCAwLjExNjE1NCwgMC4zMzQ2NjksIDAuNTMwMTUsIDAuNzkxNDM3LCAxLjMxMzA2LCAxLjYzOTU3IiwgXAotICAgICAgICAgICIwLjA3OTM3NSwgMC4xMTY1NzYsIDAuMzM0NjkxLCAwLjUzMDEyOSwgMC43OTA2MzksIDEuMzEzMzUsIDEuNjQwMDQiLCBcCi0gICAgICAgICAgIjAuMDgwMzY5LCAwLjExNzI2MiwgMC4zMzQ5NDYsIDAuNTMwMjUsIDAuNzkxNDEyLCAxLjMxNDM5LCAxLjY0MDE1IiwgXAotICAgICAgICAgICIwLjA4MDgzNSwgMC4xMTc3MjgsIDAuMzM1MjE4LCAwLjUyOTY5NywgMC43OTE0MzEsIDEuMzEzMjEsIDEuNjQxMzEiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk1Mjg2LCAwLjExNDYzNCwgMC4yMTgzMTQsIDAuMzA5MDM2LCAwLjQyOTg3NywgMC42NzE0MjIsIDAuODIyMzYiLCBcCi0gICAgICAgICAgIjAuMTAwMDcsIDAuMTE5NDQ2LCAwLjIyMzE0NiwgMC4zMTM4NjgsIDAuNDM0NzQzLCAwLjY3NjI1MywgMC44MjcxNDIiLCBcCi0gICAgICAgICAgIjAuMTA0OTU1LCAwLjEyNDI5LCAwLjIyNzk5LCAwLjMxODcxLCAwLjQzOTU2MiwgMC42ODExMTQsIDAuODMxOTk1IiwgXAotICAgICAgICAgICIwLjEwOTM2LCAwLjEyODcxNiwgMC4yMzI0MTIsIDAuMzIzMTQxLCAwLjQ0Mzk4MSwgMC42ODU1MzcsIDAuODM2NDU0IiwgXAotICAgICAgICAgICIwLjExMzUwMiwgMC4xMzI5MTcsIDAuMjM2NjUsIDAuMzI3MzY3LCAwLjQ0ODIwOSwgMC42ODk3NzksIDAuODQwNjc0IiwgXAotICAgICAgICAgICIwLjExOTQwOSwgMC4xMzg5MTYsIDAuMjQyNzY2LCAwLjMzMzQ2OSwgMC40NTQzMTcsIDAuNjk1OTAyLCAwLjg0Njc3NSIsIFwKLSAgICAgICAgICAiMC4xMjQwMzQsIDAuMTQzNjczLCAwLjI0NzU1NywgMC4zMzgzMDMsIDAuNDU5MTMxLCAwLjcwMDcwNywgMC44NTE1NyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzcyNzQsIDAuMTEyNTc0LCAwLjMxOTQyMywgMC41MDQwMTMsIDAuNzUyMDc2LCAxLjI1MDM1LCAxLjU1OTc4IiwgXAotICAgICAgICAgICIwLjA3NzE2NiwgMC4xMTI1ODksIDAuMzE5Mzk2LCAwLjUwNDgzMywgMC43NTMxNjgsIDEuMjUwMzEsIDEuNTYxMTMiLCBcCi0gICAgICAgICAgIjAuMDc3MTMzLCAwLjExMjU1NiwgMC4zMTk0MDUsIDAuNTA0NzkxLCAwLjc1MjE2LCAxLjI1MDM4LCAxLjU2MTExIiwgXAotICAgICAgICAgICIwLjA3NzQzNSwgMC4xMTI3NzEsIDAuMzE5NDc5LCAwLjUwNDAzOSwgMC43NTIwNjIsIDEuMjUwMzksIDEuNTYwMDYiLCBcCi0gICAgICAgICAgIjAuMDc3OTM3LCAwLjExMzE1MSwgMC4zMTkzMiwgMC41MDQ5MTYsIDAuNzUyOTM4LCAxLjI0ODMzLCAxLjU2MDA1IiwgXAotICAgICAgICAgICIwLjA3ODgzNywgMC4xMTM4MTgsIDAuMzE5ODU4LCAwLjUwNTAxOSwgMC43NTMxMzIsIDEuMjUwNDUsIDEuNTYxMDMiLCBcCi0gICAgICAgICAgIjAuMDc5NjIzLCAwLjExNDU5NywgMC4zMjAxNTYsIDAuNTA1MjM5LCAwLjc1MzIzNCwgMS4yNTA0NCwgMS41NjA5OSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTY5MDgsIDAuMTM1NzAzLCAwLjI0MTI3MSwgMC4zMzQzNTQsIDAuNDU4NTUsIDAuNzA2ODIxLCAwLjg2MjAyNSIsIFwKLSAgICAgICAgICAiMC4xMjM1OTMsIDAuMTQyMzg4LCAwLjI0Nzk0OCwgMC4zNDEwMTksIDAuNDY1MjM0LCAwLjcxMzUxNSwgMC44Njg3MDYiLCBcCi0gICAgICAgICAgIjAuMTMwNTI4LCAwLjE0OTMxOCwgMC4yNTQ4OTUsIDAuMzQ4MDMxLCAwLjQ3MjE2LCAwLjcyMDQ1OSwgMC44NzU2MjkiLCBcCi0gICAgICAgICAgIjAuMTM2OTA3LCAwLjE1NTcxMSwgMC4yNjEyNzYsIDAuMzU0Mzk4LCAwLjQ3ODU1MSwgMC43MjY4NTIsIDAuODgyMDIiLCBcCi0gICAgICAgICAgIjAuMTQyMjc2LCAwLjE2MTA2NCwgMC4yNjY2MzEsIDAuMzU5NzYxLCAwLjQ4Mzg5NiwgMC43MzIxODEsIDAuODg3MzYzIiwgXAotICAgICAgICAgICIwLjE1MDA4NiwgMC4xNjg4NTksIDAuMjc0NDA2LCAwLjM2NzU1MywgMC40OTE3MzUsIDAuNzM5OTQyLCAwLjg5NTA5NSIsIFwKLSAgICAgICAgICAiMC4xNTU3MzgsIDAuMTc0NTMzLCAwLjI4MDA2MywgMC4zNzMxNjMsIDAuNDk3MzI5LCAwLjc0NTY3MywgMC45MDA3MiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzU0LCAwLjExMzA2NSwgMC4zMzI4MzMsIDAuNTI4NjE0LCAwLjc5MDIzOCwgMS4zMTIyNSwgMS42NDAzMSIsIFwKLSAgICAgICAgICAiMC4wNzUzOTYsIDAuMTEzMDY1LCAwLjMzMjc3MiwgMC41MjgxOTUsIDAuNzkwMjQxLCAxLjMxMjA4LCAxLjY0MDMyIiwgXAotICAgICAgICAgICIwLjA3NTM5NCwgMC4xMTMwNTYsIDAuMzMyODUzLCAwLjUyNzkwMywgMC43OTAyMjYsIDEuMzEzMjMsIDEuNjQwMjUiLCBcCi0gICAgICAgICAgIjAuMDc1NDA4LCAwLjExMzA2MywgMC4zMzI4NCwgMC41Mjg3MjYsIDAuNzg5NTY3LCAxLjMxMTkyLCAxLjYzODUzIiwgXAotICAgICAgICAgICIwLjA3NTQ5MiwgMC4xMTMxMTYsIDAuMzMyODM4LCAwLjUyODAxMiwgMC43OTAyMTksIDEuMzEyMDYsIDEuNjQwMTkiLCBcCi0gICAgICAgICAgIjAuMDc1NTMyLCAwLjExMzE1NiwgMC4zMzI4MjMsIDAuNTI4MTc5LCAwLjc5MDI0LCAxLjMxMjIzLCAxLjY0MDE0IiwgXAotICAgICAgICAgICIwLjA3NTU4NCwgMC4xMTMxMjQsIDAuMzMyNzQ1LCAwLjUyODcxMiwgMC43ODkyNTgsIDEuMzEzMiwgMS42NDAxMSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTQyMTgsIDAuMTMyOTY0LCAwLjIzNTgxMywgMC4zMjYzMTgsIDAuNDQ3MDUzLCAwLjY4ODUyNiwgMC44MzkzMTciLCBcCi0gICAgICAgICAgIjAuMTIwNTg0LCAwLjEzOTE1MSwgMC4yNDIwMTMsIDAuMzMyNTIzLCAwLjQ1MzI2NSwgMC42OTQ2NDMsIDAuODQ1NTEiLCBcCi0gICAgICAgICAgIjAuMTI4MTc0LCAwLjE0Njc1NCwgMC4yNDk2MTIsIDAuMzQwMTQsIDAuNDYwODc1LCAwLjcwMjIzMywgMC44NTMxMzEiLCBcCi0gICAgICAgICAgIjAuMTM1MTgsIDAuMTUzOTEzLCAwLjI1Njc3LCAwLjM0NzI3OCwgMC40NjgwMTQsIDAuNzA5MzUzLCAwLjg2MDI0NCIsIFwKLSAgICAgICAgICAiMC4xNDE1ODEsIDAuMTYwMzEyLCAwLjI2MzE2NCwgMC4zNTM2NzEsIDAuNDc0NDA4LCAwLjcxNTg2NSwgMC44NjY2NjgiLCBcCi0gICAgICAgICAgIjAuMTUwNDk2LCAwLjE2OTIzLCAwLjI3MjA2NiwgMC4zNjI1NzEsIDAuNDgzMzM3LCAwLjcyNDY0MiwgMC44NzU2NDEiLCBcCi0gICAgICAgICAgIjAuMTU3MjQ5LCAwLjE3NTk0LCAwLjI3ODc2MSwgMC4zNjkyNjcsIDAuNDkwMDMxLCAwLjczMTMzNSwgMC44ODIyMzQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc0MDc0LCAwLjEwOTUzNiwgMC4zMTY3NTksIDAuNTAyODM3LCAwLjc1MTU1MiwgMS4yNDg2NywgMS41NjAwMSIsIFwKLSAgICAgICAgICAiMC4wNzQwNjMsIDAuMTA5NTkxLCAwLjMxNjg0OCwgMC41MDI4NTksIDAuNzUwNDY1LCAxLjI0NzM0LCAxLjU1OTgzIiwgXAotICAgICAgICAgICIwLjA3NDA1LCAwLjEwOTUxNCwgMC4zMTcwOTcsIDAuNTAyMzcsIDAuNzUwNjM3LCAxLjI0NzM4LCAxLjU1OTg3IiwgXAotICAgICAgICAgICIwLjA3NDA1OCwgMC4xMDk1OTcsIDAuMzE3MTAyLCAwLjUwMjgwNSwgMC43NTE0NzMsIDEuMjQ3MzEsIDEuNTU5NzQiLCBcCi0gICAgICAgICAgIjAuMDc0MDk0LCAwLjEwOTYxOSwgMC4zMTcwOTksIDAuNTAyODI1LCAwLjc1MTQ4OCwgMS4yNDczLCAxLjU1OTgxIiwgXAotICAgICAgICAgICIwLjA3NDExNSwgMC4xMDk1ODEsIDAuMzE2OTA2LCAwLjUwMjM4MiwgMC43NTExNSwgMS4yNDcyOCwgMS41NTkzNyIsIFwKLSAgICAgICAgICAiMC4wNzQxODcsIDAuMTA5NiwgMC4zMTcwNDUsIDAuNTAyNjY1LCAwLjc1MDMyOCwgMS4yNDc0OSwgMS41NTc5NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODg0NSwgMC4xMDc5MTQsIDAuMjE0MTQsIDAuMzA3NDQzLCAwLjQzMTgsIDAuNjgwMTc0LCAwLjgzNTQ2MSIsIFwKLSAgICAgICAgICAiMC4wOTQ0NjUsIDAuMTEzOTAyLCAwLjIyMDE0NiwgMC4zMTM0NjYsIDAuNDM3NzMyLCAwLjY4NjI4NiwgMC44NDE0NTIiLCBcCi0gICAgICAgICAgIjAuMTAyMTc2LCAwLjEyMTU1NiwgMC4yMjc3ODMsIDAuMzIxMDc5LCAwLjQ0NTQyNiwgMC42OTM4MTQsIDAuODQ5MDY3IiwgXAotICAgICAgICAgICIwLjEwOTUyNSwgMC4xMjg5MzMsIDAuMjM1MTUyLCAwLjMyODQzMywgMC40NTI3NTQsIDAuNzAxMTU0LCAwLjg1NjM5NSIsIFwKLSAgICAgICAgICAiMC4xMTY0MjgsIDAuMTM1ODYsIDAuMjQyMDkxLCAwLjMzNTM4MSwgMC40NTk3MjYsIDAuNzA4MDg5LCAwLjg2MzQxIiwgXAotICAgICAgICAgICIwLjEyNjA2OCwgMC4xNDU3NDIsIDAuMjUxOTc1LCAwLjM0NTE1NSwgMC40Njk0NTMsIDAuNzE3ODQxLCAwLjg3MzA2NyIsIFwKLSAgICAgICAgICAiMC4xMzM3NDIsIDAuMTUzMzMxLCAwLjI1OTcxNSwgMC4zNTI5OSwgMC40NzcyNTgsIDAuNzI1NjkzLCAwLjg4MDkwMSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzg2MjQsIDAuMTE2MDAyLCAwLjMzNDQyNCwgMC41MzAxMywgMC43OTE1MzIsIDEuMzEzMjMsIDEuNjM4NzYiLCBcCi0gICAgICAgICAgIjAuMDc4NTUxLCAwLjExNTk1NiwgMC4zMzQ2NzIsIDAuNTMwMTksIDAuNzkwNTUxLCAxLjMxNDU0LCAxLjY0MTQxIiwgXAotICAgICAgICAgICIwLjA3ODYzNiwgMC4xMTYwMDMsIDAuMzM0NTYxLCAwLjUzMDEzMSwgMC43OTE0MSwgMS4zMTMzNSwgMS42Mzk3MiIsIFwKLSAgICAgICAgICAiMC4wNzg5NzgsIDAuMTE2MjU4LCAwLjMzNDcwMiwgMC41MzAxMjYsIDAuNzkwMTY5LCAxLjMxMzI3LCAxLjY0MDEiLCBcCi0gICAgICAgICAgIjAuMDc5NTU4LCAwLjExNjYzNCwgMC4zMzQ0NDQsIDAuNTMwMTcyLCAwLjc5MTM4NiwgMS4zMTMxNCwgMS42NDEyNiIsIFwKLSAgICAgICAgICAiMC4wODA1ODEsIDAuMTE3NDQ0LCAwLjMzNDY4NiwgMC41MzAyODEsIDAuNzkwMzg1LCAxLjMxNDM1LCAxLjYzOTg0IiwgXAotICAgICAgICAgICIwLjA4MTEyMSwgMC4xMTc3NDEsIDAuMzM0NjMyLCAwLjUyOTk0MywgMC43OTA2MzIsIDEuMzE0MzQsIDEuNjM5NTkiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDkzMjYzLCAwLjExMjYwMywgMC4yMTYzNTgsIDAuMzA3MDk0LCAwLjQyNzk0OCwgMC42Njk1MTksIDAuODIwNDA4IiwgXAotICAgICAgICAgICIwLjA5ODk4MywgMC4xMTgzMjIsIDAuMjIyMDcsIDAuMzEyODEsIDAuNDMzNjY1LCAwLjY3NTI0MSwgMC44MjYxMzEiLCBcCi0gICAgICAgICAgIjAuMTA2MDcsIDAuMTI1MzgzLCAwLjIyOTExNywgMC4zMTk4NTksIDAuNDQwNzEzLCAwLjY4MjI4MywgMC44MzMyMjMiLCBcCi0gICAgICAgICAgIjAuMTEyOTY3LCAwLjEzMjMwOCwgMC4yMzYwMzMsIDAuMzI2NzYsIDAuNDQ3NjE5LCAwLjY4OTIxMiwgMC44NDAxNyIsIFwKLSAgICAgICAgICAiMC4xMTkyODksIDAuMTM4NjksIDAuMjQyNDc4LCAwLjMzMzIxMiwgMC40NTQwNTUsIDAuNjk1NjE1LCAwLjg0NjUzMiIsIFwKLSAgICAgICAgICAiMC4xMjgxNzEsIDAuMTQ3NzQ0LCAwLjI1MTU4NSwgMC4zNDIyOCwgMC40NjMxNzcsIDAuNzA0NzA1LCAwLjg1NTYxOSIsIFwKLSAgICAgICAgICAiMC4xMzUxODYsIDAuMTU0OCwgMC4yNTg4MjUsIDAuMzQ5NTQsIDAuNDcwNDM4LCAwLjcxMjAyOSwgMC44NjI4NjYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc3MjEsIDAuMTEyNjE2LCAwLjMxOTQ1NSwgMC41MDQ4ODMsIDAuNzUyMTQ1LCAxLjI1MDQ2LCAxLjU2MTIxIiwgXAotICAgICAgICAgICIwLjA3NzE1NiwgMC4xMTI1NTUsIDAuMzE5NDM3LCAwLjUwNDg3NiwgMC43NTIxNDMsIDEuMjUwNDcsIDEuNTYxMjEiLCBcCi0gICAgICAgICAgIjAuMDc3MTk1LCAwLjExMjYxNCwgMC4zMTk0NDIsIDAuNTA0MDUsIDAuNzUyMTM1LCAxLjI1MDQzLCAxLjU1OTU4IiwgXAotICAgICAgICAgICIwLjA3NzUwOSwgMC4xMTI4NDgsIDAuMzE5NDk1LCAwLjUwNDg4NSwgMC43NTIwNTQsIDEuMjUwNTMsIDEuNTYxNjIiLCBcCi0gICAgICAgICAgIjAuMDc4MDM3LCAwLjExMzI3MiwgMC4zMTk2NzcsIDAuNTA0MjgzLCAwLjc1Mjk4MywgMS4yNDkxOCwgMS41NjEwOCIsIFwKLSAgICAgICAgICAiMC4wNzkyNzQsIDAuMTE0MjAyLCAwLjMyMDAwNCwgMC41MDQ0NzksIDAuNzUyMDQ5LCAxLjI0ODgsIDEuNTU5NjYiLCBcCi0gICAgICAgICAgIjAuMDc5NjY4LCAwLjExNDU5MSwgMC4zMTk4MDksIDAuNTA0MzMxLCAwLjc1MzM3NCwgMS4yNTAyNiwgMS41NjEwNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTc1MjEsIDAuMTM2MzM2LCAwLjI0MjAxNCwgMC4zMzUxNzEsIDAuNDU5MzUzLCAwLjcwNzYzLCAwLjg2MjgiLCBcCi0gICAgICAgICAgIjAuMTIzOTQ5LCAwLjE0Mjc3MiwgMC4yNDg0MDMsIDAuMzQxNjA2LCAwLjQ2NTg2OCwgMC43MTQxMjQsIDAuODY5NDY1IiwgXAotICAgICAgICAgICIwLjEzMDg2MiwgMC4xNDk3MSwgMC4yNTUyNTcsIDAuMzQ4MzQ5LCAwLjQ3MjQ3MywgMC43MjA4NzQsIDAuODc2MDQyIiwgXAotICAgICAgICAgICIwLjE0MDA1NiwgMC4xNTg5MDUsIDAuMjY0NDUxLCAwLjM1NzU0NiwgMC40ODE2NzIsIDAuNzMwMDU3LCAwLjg4NTI1IiwgXAotICAgICAgICAgICIwLjE0ODE4NywgMC4xNjcwMTUsIDAuMjcyNjUyLCAwLjM2NTc0NywgMC40ODk4NjcsIDAuNzM4MTkzLCAwLjg5MzMyNiIsIFwKLSAgICAgICAgICAiMC4xNTkxOTcsIDAuMTc4MDQ5LCAwLjI4MzU1MSwgMC4zNzY2MzEsIDAuNTAwNzksIDAuNzQ5MDY0LCAwLjkwNDM1MyIsIFwKLSAgICAgICAgICAiMC4xNjc2NTksIDAuMTg2NDYzLCAwLjI5MTkyOSwgMC4zODQ5ODEsIDAuNTA5MTYsIDAuNzU3Mzg2LCAwLjkxMjU2MSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzUzNTcsIDAuMTEzMDQxLCAwLjMzMjkxNCwgMC41MjgyNzIsIDAuNzkwMzExLCAxLjMxMjE1LCAxLjY0MDIxIiwgXAotICAgICAgICAgICIwLjA3NTMyOCwgMC4xMTMwMzEsIDAuMzMyODA3LCAwLjUyODA3MSwgMC43ODk3MjMsIDEuMzEzNCwgMS42MzgwNCIsIFwKLSAgICAgICAgICAiMC4wNzUzNDcsIDAuMTEzMDM3LCAwLjMzMjkwNSwgMC41Mjg0MTUsIDAuNzkwMzIzLCAxLjMxMjI0LCAxLjYzODkxIiwgXAotICAgICAgICAgICIwLjA3NTM1NCwgMC4xMTMwNDUsIDAuMzMyODc1LCAwLjUyODg1NSwgMC43OTAzMjUsIDEuMzEzMzMsIDEuNjM4OTYiLCBcCi0gICAgICAgICAgIjAuMDc1NDI5LCAwLjExMzA5NSwgMC4zMzI4MTIsIDAuNTI4ODUsIDAuNzkwMzY3LCAxLjMxMzQzLCAxLjY0MDE3IiwgXAotICAgICAgICAgICIwLjA3NTQ0MiwgMC4xMTMwODcsIDAuMzMyODQ5LCAwLjUyODM1NiwgMC43OTAzLCAxLjMxMzMyLCAxLjYzODgyIiwgXAotICAgICAgICAgICIwLjA3NTQ2MywgMC4xMTMxMzQsIDAuMzMyNjU0LCAwLjUyODcwMiwgMC43OTAyMTYsIDEuMzEzMjYsIDEuNjQwMTciKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTEzOTI2LCAwLjEzMjY4LCAwLjIzNTUxOSwgMC4zMjYwNDQsIDAuNDQ2NzgsIDAuNjg4MTI3LCAwLjgzODk1IiwgXAotICAgICAgICAgICIwLjEyMTI1MSwgMC4xMzk5ODYsIDAuMjQyODQ2LCAwLjMzMzM1MiwgMC40NTQwOTEsIDAuNjk1NDc5LCAwLjg0NjMzMSIsIFwKLSAgICAgICAgICAiMC4xMzA4NDIsIDAuMTQ5NTc1LCAwLjI1MjQyOCwgMC4zNDI5NDIsIDAuNDYzNjgyLCAwLjcwNTA2OCwgMC44NTU5MjIiLCBcCi0gICAgICAgICAgIjAuMTM5OTc4LCAwLjE1ODcyLCAwLjI2MTU3NCwgMC4zNTIwNzgsIDAuNDcyNzk3LCAwLjcxNDE5OSwgMC44NjUwMDQiLCBcCi0gICAgICAgICAgIjAuMTQ4MTk3LCAwLjE2NjkzMywgMC4yNjk3NzUsIDAuMzYwMzA2LCAwLjQ4MTA1NSwgMC43MjIzNzQsIDAuODczMjEyIiwgXAotICAgICAgICAgICIwLjE1OTUwNSwgMC4xNzgyMiwgMC4yODA4NzMsIDAuMzcxNTM4LCAwLjQ5MjI5MywgMC43MzM0NjgsIDAuODg0NDQ3IiwgXAotICAgICAgICAgICIwLjE2NzgyMywgMC4xODY1MTEsIDAuMjg5MzAyLCAwLjM3OTcwMywgMC41MDA1NDYsIDAuNzQxNzY1LCAwLjg5MjgzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3MzkzNSwgMC4xMDk1MiwgMC4zMTcwODQsIDAuNTAyOTgxLCAwLjc1MTU4OSwgMS4yNDkwMSwgMS41NTgzIiwgXAotICAgICAgICAgICIwLjA3MzkxNywgMC4xMDk1MDIsIDAuMzE2OTE5LCAwLjUwMjg0MSwgMC43NTE1MTksIDEuMjQ3NTEsIDEuNTU5ODIiLCBcCi0gICAgICAgICAgIjAuMDczOTE1LCAwLjEwOTUsIDAuMzE3MDM0LCAwLjUwMjgzMywgMC43NTE0ODcsIDEuMjQ4ODcsIDEuNTU5NzciLCBcCi0gICAgICAgICAgIjAuMDczOTEyLCAwLjEwOTQ4LCAwLjMxNzA3OCwgMC41MDI4ODQsIDAuNzUxNDY2LCAxLjI0NzQ1LCAxLjU1OTU0IiwgXAotICAgICAgICAgICIwLjA3Mzk0NywgMC4xMDk1MDcsIDAuMzE3MDcxLCAwLjUwMjk1MywgMC43NTE1MDEsIDEuMjQ4NzEsIDEuNTU4MTgiLCBcCi0gICAgICAgICAgIjAuMDc0MDAzLCAwLjEwOTU0NCwgMC4zMTcwNzQsIDAuNTAyNzcyLCAwLjc1MTQyMSwgMS4yNDczNCwgMS41NTkyNiIsIFwKLSAgICAgICAgICAiMC4wNzM5MiwgMC4xMDk1MTYsIDAuMzE2NzY5LCAwLjUwMjg1OSwgMC43NTA2ODcsIDEuMjQ4NTksIDEuNTU5NzciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0kiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4ODQ5LCAwLjEwNzg5MiwgMC4yMTQxNjksIDAuMzA3NDc0LCAwLjQzMTgzNCwgMC42ODAyODYsIDAuODM1NTg4IiwgXAotICAgICAgICAgICIwLjA5NDk3MiwgMC4xMTQ0MiwgMC4yMjA2NzMsIDAuMzE0MDA2LCAwLjQzODMzNywgMC42ODY3MzIsIDAuODQxOTc4IiwgXAotICAgICAgICAgICIwLjEwMzg4NywgMC4xMjMyNjMsIDAuMjI5NTEyLCAwLjMyMjc5OCwgMC40NDcxMzksIDAuNjk1NTQ2LCAwLjg1MDc5NCIsIFwKLSAgICAgICAgICAiMC4xMTI4MjYsIDAuMTMyMTg5LCAwLjIzODQyNywgMC4zMzE3MTEsIDAuNDU2MDA3LCAwLjcwNDQ0MiwgMC44NTk3IiwgXAotICAgICAgICAgICIwLjEyMDg0NywgMC4xNDAyNzYsIDAuMjQ2NDk1LCAwLjMzOTc5NiwgMC40NjQxNjgsIDAuNzEyNDgyLCAwLjg2Nzc0NiIsIFwKLSAgICAgICAgICAiMC4xMzIzMzQsIDAuMTUxNzcyLCAwLjI1ODA5OSwgMC4zNTE0NiwgMC40NzU2ODQsIDAuNzI0MDk0LCAwLjg3OTMiLCBcCi0gICAgICAgICAgIjAuMTQxMDA1LCAwLjE2MDMyNCwgMC4yNjY4MjYsIDAuMzYwMDI2LCAwLjQ4NDM3MywgMC43MzI3MjEsIDAuODg3OTAyIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3ODY3NSwgMC4xMTYwNDQsIDAuMzM0NjkzLCAwLjUzMDE1MiwgMC43OTE3MDEsIDEuMzEzMzcsIDEuNjQwNDEiLCBcCi0gICAgICAgICAgIjAuMDc4NTQ3LCAwLjExNTk1NiwgMC4zMzQ2NCwgMC41MjkzNjYsIDAuNzkxNTYxLCAxLjMxNDU3LCAxLjYzOTY5IiwgXAotICAgICAgICAgICIwLjA3ODU5NCwgMC4xMTU4NzksIDAuMzM0NjE5LCAwLjUzMDA2NSwgMC43OTE0MDYsIDEuMzEzMjEsIDEuNjM5NzMiLCBcCi0gICAgICAgICAgIjAuMDc4OTI1LCAwLjExNjIzMSwgMC4zMzQ3MDgsIDAuNTMwMTQxLCAwLjc5MDcxNiwgMS4zMTMzNiwgMS42NDEzOCIsIFwKLSAgICAgICAgICAiMC4wNzk2MzEsIDAuMTE2NjA4LCAwLjMzNDY4NiwgMC41MzAxNTEsIDAuNzkwMjY1LCAxLjMxNDIzLCAxLjYzOTkzIiwgXAotICAgICAgICAgICIwLjA4MDI0MiwgMC4xMTc0OTgsIDAuMzM0OTgxLCAwLjUyOTUxNSwgMC43OTAxMywgMS4zMTMzNiwgMS42Mzk3NSIsIFwKLSAgICAgICAgICAiMC4wODEzODUsIDAuMTE4MTE5LCAwLjMzNTA0MywgMC41MzAzOTYsIDAuNzkwMTE1LCAxLjMxNDI5LCAxLjY0MTEiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDkxMTAzLCAwLjExMDQxNCwgMC4yMTQxNjMsIDAuMzA0OTA1LCAwLjQyNTc2NiwgMC42NjczMzUsIDAuODE4MjI2IiwgXAotICAgICAgICAgICIwLjA5NzU0OSwgMC4xMTY5MiwgMC4yMjA2NDUsIDAuMzExMzg0LCAwLjQzMjIyOCwgMC42NzM4MTcsIDAuODI0Njg3IiwgXAotICAgICAgICAgICIwLjEwNjQ3MiwgMC4xMjU4NDUsIDAuMjI5NTcsIDAuMzIwMzA0LCAwLjQ0MTE1NywgMC42ODI3MDQsIDAuODMzNjAzIiwgXAotICAgICAgICAgICIwLjExNTQxLCAwLjEzNDc0NCwgMC4yMzg0NjQsIDAuMzI5MTg5LCAwLjQ1MDA1MywgMC42OTE1OCwgMC44NDI0NzEiLCBcCi0gICAgICAgICAgIjAuMTIzNSwgMC4xNDI5MDksIDAuMjQ2Njc2LCAwLjMzNzQwNywgMC40NTgyNTEsIDAuNjk5Nzk3LCAwLjg1MDY4MiIsIFwKLSAgICAgICAgICAiMC4xMzQ1ODEsIDAuMTU0MDk5LCAwLjI1NzkyMSwgMC4zNDg2MDksIDAuNDY5NDYzLCAwLjcxMTA3NCwgMC44NjE5NDgiLCBcCi0gICAgICAgICAgIjAuMTQzMTg0LCAwLjE2Mjg4MiwgMC4yNjY4MzksIDAuMzU3NTMzLCAwLjQ3ODQwNywgMC43MTk5ODEsIDAuODcwOTQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc3MjczLCAwLjExMjY1MywgMC4zMTk0MDksIDAuNTA0ODkxLCAwLjc1MzEsIDEuMjUwNDMsIDEuNTYxMjEiLCBcCi0gICAgICAgICAgIjAuMDc3MTg2LCAwLjExMjQ3NiwgMC4zMTk0MDQsIDAuNTAzNzQ0LCAwLjc1MjA4OSwgMS4yNTA1LCAxLjU2MTA3IiwgXAotICAgICAgICAgICIwLjA3NzE1MiwgMC4xMTI1NzYsIDAuMzE5NDEyLCAwLjUwNDgyNSwgMC43NTIxNjIsIDEuMjUwMzIsIDEuNTYxMDIiLCBcCi0gICAgICAgICAgIjAuMDc3NjM3LCAwLjExMjkyNCwgMC4zMTkxNjYsIDAuNTA0ODU5LCAwLjc1MzA5NSwgMS4yNTAyOSwgMS41NjExMSIsIFwKLSAgICAgICAgICAiMC4wNzgxNTcsIDAuMTEzMjU2LCAwLjMxOTI5OCwgMC41MDQ5MDksIDAuNzUzMDUyLCAxLjI1MDM1LCAxLjU2MTEiLCBcCi0gICAgICAgICAgIjAuMDc4ODc3LCAwLjExNDAzMSwgMC4zMTk5NjMsIDAuNTA0OTg0LCAwLjc1Mjk5OCwgMS4yNTA0NSwgMS41NjEyIiwgXAotICAgICAgICAgICIwLjA4MDA2MSwgMC4xMTQ2NjQsIDAuMzIwMjUxLCAwLjUwNTIzNywgMC43NTE5MTIsIDEuMjUwNDMsIDEuNTU5MjIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0kiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExMjQ2NCwgMC4xMzEzMDQsIDAuMjM2OTgxLCAwLjMzMDA2NywgMC40NTQzMjUsIDAuNzAyNjA2LCAwLjg1Nzc4NSIsIFwKLSAgICAgICAgICAiMC4xMjAwNjMsIDAuMTM4OTE1LCAwLjI0NDU3OSwgMC4zMzc3MzQsIDAuNDYxOTIyLCAwLjcxMDIwMywgMC44NjU0MDEiLCBcCi0gICAgICAgICAgIjAuMTI5NTksIDAuMTQ4NDE1LCAwLjI1NDA4OSwgMC4zNDcyNDQsIDAuNDcxNDUyLCAwLjcxOTcxNCwgMC44NzQ5MDYiLCBcCi0gICAgICAgICAgIjAuMTM4MzI4LCAwLjE1NzE0MSwgMC4yNjI4MDcsIDAuMzU1OTEyLCAwLjQ4MDE0OCwgMC43Mjg0MjcsIDAuODgzNjEyIiwgXAotICAgICAgICAgICIwLjE0NTkzMywgMC4xNjQ3MjcsIDAuMjcwMzQ3LCAwLjM2MzQ5NCwgMC40ODc2NjUsIDAuNzM2MTAzLCAwLjg5MTEyMiIsIFwKLSAgICAgICAgICAiMC4xNTU3ODYsIDAuMTc0NjI1LCAwLjI4MDMwMiwgMC4zNzM0NCwgMC40OTc2MzYsIDAuNzQ1OTE5LCAwLjkwMTA5MyIsIFwKLSAgICAgICAgICAiMC4xNjMwNzYsIDAuMTgxOTU3LCAwLjI4NzcxMywgMC4zODA4NzEsIDAuNTA1MDYyLCAwLjc1MzM3OSwgMC45MDg2NTciKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc1MDI0LCAwLjExMjc3MSwgMC4zMzI5MDgsIDAuNTI4NzM1LCAwLjc5MDMzMywgMS4zMTIyNCwgMS42Mzg5MiIsIFwKLSAgICAgICAgICAiMC4wNzQ5ODcsIDAuMTEyODM4LCAwLjMzMjc4MSwgMC41MjgzMiwgMC43OTAzMjksIDEuMzEyMywgMS42MzkxNCIsIFwKLSAgICAgICAgICAiMC4wNzUwMTcsIDAuMTEyODM1LCAwLjMzMjc4NSwgMC41MjgzMTQsIDAuNzkwMzMxLCAxLjMxMzM0LCAxLjYzODk2IiwgXAotICAgICAgICAgICIwLjA3NDk4MiwgMC4xMTI4NCwgMC4zMzI5MDksIDAuNTI4Mjk2LCAwLjc5MDMzMSwgMS4zMTIxNiwgMS42NDA0IiwgXAotICAgICAgICAgICIwLjA3NTA4LCAwLjExMjg4NCwgMC4zMzI5MDksIDAuNTI4Mjk4LCAwLjc5MDIyMywgMS4zMTIxMSwgMS42NDAzOSIsIFwKLSAgICAgICAgICAiMC4wNzUyOCwgMC4xMTMwODYsIDAuMzMzMDA0LCAwLjUyODgxMywgMC43OTAwODYsIDEuMzEyMTMsIDEuNjQwMTkiLCBcCi0gICAgICAgICAgIjAuMDc1MzI3LCAwLjExMzE3NSwgMC4zMzI5OTgsIDAuNTI4OTA2LCAwLjc5MDIzNywgMS4zMTMyLCAxLjY0MDIzIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwOTE1OSwgMC4xMjc2NzksIDAuMjMwNDUsIDAuMzIwOTg3LCAwLjQ0MTczNCwgMC42ODMwNDcsIDAuODMzOTE1IiwgXAotICAgICAgICAgICIwLjExNjY5OSwgMC4xMzUyMiwgMC4yMzc5OTEsIDAuMzI4NTMxLCAwLjQ0OTI4LCAwLjY5MDU5MSwgMC44NDE0NjIiLCBcCi0gICAgICAgICAgIjAuMTI1OTYsIDAuMTQ0NDg0LCAwLjI0NzI2LCAwLjMzNzc5NSwgMC40NTg1MiwgMC42OTk4NTMsIDAuODUwNzA2IiwgXAotICAgICAgICAgICIwLjEzNDc4MSwgMC4xNTMzMDcsIDAuMjU2MDY3LCAwLjM0NjYxMiwgMC40NjczNDQsIDAuNzA4NjcyLCAwLjg1OTUyMSIsIFwKLSAgICAgICAgICAiMC4xNDIxNywgMC4xNjA2OTMsIDAuMjYzNDU2LCAwLjM1Mzk3OSwgMC40NzQ3MDYsIDAuNzE2MDMzLCAwLjg2Njg4OCIsIFwKLSAgICAgICAgICAiMC4xNTI1NzQsIDAuMTcxMDkxLCAwLjI3Mzg2NSwgMC4zNjQzOTksIDAuNDg1MTAyLCAwLjcyNjQ4NywgMC44NzczMDUiLCBcCi0gICAgICAgICAgIjAuMTYwMTU5LCAwLjE3ODY0OCwgMC4yODE0MDMsIDAuMzcxOTM2LCAwLjQ5MjYxLCAwLjczMzk4NiwgMC44ODQ4OSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzI2NjQsIDAuMTA4NDY5LCAwLjMxNjkxMiwgMC41MDI4ODIsIDAuNzUxMzQ4LCAxLjI0ODQ5LCAxLjU1ODE3IiwgXAotICAgICAgICAgICIwLjA3MjY2MSwgMC4xMDg0NywgMC4zMTY4OCwgMC41MDI4NzgsIDAuNzUxMzYxLCAxLjI0ODcxLCAxLjU1ODE3IiwgXAotICAgICAgICAgICIwLjA3MjY2OCwgMC4xMDg0ODIsIDAuMzE2OTE3LCAwLjUwMjg1OSwgMC43NTE0MDUsIDEuMjQ4OTEsIDEuNTU5NTgiLCBcCi0gICAgICAgICAgIjAuMDcyNjQ1LCAwLjEwODQ4MSwgMC4zMTY5NDUsIDAuNTAyNjYzLCAwLjc1MTQwNSwgMS4yNDgzNiwgMS41NTc4OCIsIFwKLSAgICAgICAgICAiMC4wNzI3ODYsIDAuMTA4NTY1LCAwLjMxNjkzOSwgMC41MDI1MTksIDAuNzUxMzcsIDEuMjQ4ODYsIDEuNTU5NTIiLCBcCi0gICAgICAgICAgIjAuMDcyODUzLCAwLjEwODcwNiwgMC4zMTY5MSwgMC41MDI2NSwgMC43NTAzMTksIDEuMjQ4NDksIDEuNTU5MjgiLCBcCi0gICAgICAgICAgIjAuMDcyOTA4LCAwLjEwODczNSwgMC4zMTY5NDgsIDAuNTAyOTExLCAwLjc1MTAzNywgMS4yNDgzMSwgMS41NTkzMiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDQ2MSwgMC4wMDQ0NywgMC4wMDQ0ODcsIDAuMDA0NDkxLCAwLjAwNDQ5NCwgMC4wMDQ0OTYsIDAuMDA0NDk3IiwgXAotICAgICAgICAgICIwLjAwNDQ0NCwgMC4wMDQ0NTMsIDAuMDA0NDcxLCAwLjAwNDQ3NiwgMC4wMDQ0NzksIDAuMDA0NDgyLCAwLjAwNDQ4MiIsIFwKLSAgICAgICAgICAiMC4wMDQ0NDQsIDAuMDA0NDUzLCAwLjAwNDQ3MiwgMC4wMDQ0NzcsIDAuMDA0NDgsIDAuMDA0NDgzLCAwLjAwNDQ4NCIsIFwKLSAgICAgICAgICAiMC4wMDQ0NiwgMC4wMDQ0NjksIDAuMDA0NDg4LCAwLjAwNDQ5MywgMC4wMDQ0OTcsIDAuMDA0NDk5LCAwLjAwNDUiLCBcCi0gICAgICAgICAgIjAuMDA0NDk0LCAwLjAwNDQ5NywgMC4wMDQ1MTQsIDAuMDA0NTE5LCAwLjAwNDUyMiwgMC4wMDQ1MjUsIDAuMDA0NTI2IiwgXAotICAgICAgICAgICIwLjAwNDU1MiwgMC4wMDQ1NTUsIDAuMDA0NTY4LCAwLjAwNDU3MywgMC4wMDQ1NzYsIDAuMDA0NTc4LCAwLjAwNDU3OSIsIFwKLSAgICAgICAgICAiMC4wMDQ1OTksIDAuMDA0NjA0LCAwLjAwNDYxNywgMC4wMDQ2MjMsIDAuMDA0NjI3LCAwLjAwNDYzLCAwLjAwNDYzMSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjQ0NywgMC4wMDI0NTYsIDAuMDAyNDcyLCAwLjAwMjQ3NiwgMC4wMDI0NzksIDAuMDAyNDgxLCAwLjAwMjQ4MSIsIFwKLSAgICAgICAgICAiMC4wMDI0MTksIDAuMDAyNDI5LCAwLjAwMjQ0NywgMC4wMDI0NTEsIDAuMDAyNDU0LCAwLjAwMjQ1NiwgMC4wMDI0NTYiLCBcCi0gICAgICAgICAgIjAuMDAyNDIyLCAwLjAwMjQzMSwgMC4wMDI0NDksIDAuMDAyNDU0LCAwLjAwMjQ1NywgMC4wMDI0NTksIDAuMDAyNDYxIiwgXAotICAgICAgICAgICIwLjAwMjQ0NCwgMC4wMDI0NTEsIDAuMDAyNDY5LCAwLjAwMjQ3NCwgMC4wMDI0NzcsIDAuMDAyNDc5LCAwLjAwMjQ4IiwgXAotICAgICAgICAgICIwLjAwMjQ3NSwgMC4wMDI0ODEsIDAuMDAyNDk3LCAwLjAwMjUwMiwgMC4wMDI1MDYsIDAuMDAyNTA4LCAwLjAwMjUwOSIsIFwKLSAgICAgICAgICAiMC4wMDI1MzIsIDAuMDAyNTM3LCAwLjAwMjU1MSwgMC4wMDI1NTYsIDAuMDAyNTYsIDAuMDAyNTYyLCAwLjAwMjU2MyIsIFwKLSAgICAgICAgICAiMC4wMDI1OTEsIDAuMDAyNTk1LCAwLjAwMjYwOCwgMC4wMDI2MTMsIDAuMDAyNjE2LCAwLjAwMjYxOSwgMC4wMDI2MiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDMxNywgMC4wMDQzMjUsIDAuMDA0MzQyLCAwLjAwNDM0NiwgMC4wMDQzNDksIDAuMDA0MzUxLCAwLjAwNDM1MyIsIFwKLSAgICAgICAgICAiMC4wMDQyOTEsIDAuMDA0MywgMC4wMDQzMTgsIDAuMDA0MzIyLCAwLjAwNDMyNSwgMC4wMDQzMjgsIDAuMDA0MzI4IiwgXAotICAgICAgICAgICIwLjAwNDI5MSwgMC4wMDQzLCAwLjAwNDMxOCwgMC4wMDQzMjIsIDAuMDA0MzI1LCAwLjAwNDMyOCwgMC4wMDQzMjgiLCBcCi0gICAgICAgICAgIjAuMDA0MzI0LCAwLjAwNDMzLCAwLjAwNDM0NywgMC4wMDQzNTEsIDAuMDA0MzU1LCAwLjAwNDM1NywgMC4wMDQzNTgiLCBcCi0gICAgICAgICAgIjAuMDA0Mzc5LCAwLjAwNDM4MSwgMC4wMDQzODYsIDAuMDA0MzksIDAuMDA0MzkzLCAwLjAwNDM5NSwgMC4wMDQzOTUiLCBcCi0gICAgICAgICAgIjAuMDA0NDM1LCAwLjAwNDQzNywgMC4wMDQ0NSwgMC4wMDQ0NTQsIDAuMDA0NDU4LCAwLjAwNDQ2LCAwLjAwNDQ2MSIsIFwKLSAgICAgICAgICAiMC4wMDQ1MjIsIDAuMDA0NTIsIDAuMDA0NTI1LCAwLjAwNDUzOSwgMC4wMDQ1MzIsIDAuMDA0NTQzLCAwLjAwNDU0NCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjYxNiwgMC4wMDI2MjUsIDAuMDAyNjQsIDAuMDAyNjQzLCAwLjAwMjY0NiwgMC4wMDI2NDcsIDAuMDAyNjUiLCBcCi0gICAgICAgICAgIjAuMDAyNTgxLCAwLjAwMjU5MSwgMC4wMDI2MDcsIDAuMDAyNjExLCAwLjAwMjYxNCwgMC4wMDI2MTUsIDAuMDAyNjE2IiwgXAotICAgICAgICAgICIwLjAwMjU4MiwgMC4wMDI1OSwgMC4wMDI2MDcsIDAuMDAyNjExLCAwLjAwMjYxNCwgMC4wMDI2MTYsIDAuMDAyNjE3IiwgXAotICAgICAgICAgICIwLjAwMjYwMiwgMC4wMDI2MSwgMC4wMDI2MjcsIDAuMDAyNjMyLCAwLjAwMjYzNSwgMC4wMDI2MzcsIDAuMDAyNjM4IiwgXAotICAgICAgICAgICIwLjAwMjY0MSwgMC4wMDI2NDcsIDAuMDAyNjYyLCAwLjAwMjY2NywgMC4wMDI2NywgMC4wMDI2NzIsIDAuMDAyNjczIiwgXAotICAgICAgICAgICIwLjAwMjc0OCwgMC4wMDI3NDYsIDAuMDAyNzI4LCAwLjAwMjc1MywgMC4wMDI3NTQsIDAuMDAyNzM4LCAwLjAwMjc1NiIsIFwKLSAgICAgICAgICAiMC4wMDI3ODksIDAuMDAyNzg5LCAwLjAwMjc5OCwgMC4wMDI3OTQsIDAuMDAyODA1LCAwLjAwMjgsIDAuMDAyODA5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0kiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDAwNSwgMC4wMDQwMTMsIDAuMDA0MDI5LCAwLjAwNDAzNCwgMC4wMDQwMzUsIDAuMDA0MDM3LCAwLjAwNDAzOSIsIFwKLSAgICAgICAgICAiMC4wMDQwMDQsIDAuMDA0MDEyLCAwLjAwNDAyOSwgMC4wMDQwMzMsIDAuMDA0MDM2LCAwLjAwNDAzOSwgMC4wMDQwNCIsIFwKLSAgICAgICAgICAiMC4wMDQwMTksIDAuMDA0MDI3LCAwLjAwNDA0NSwgMC4wMDQwNDksIDAuMDA0MDUzLCAwLjAwNDA1NiwgMC4wMDQwNTciLCBcCi0gICAgICAgICAgIjAuMDA0MDU1LCAwLjAwNDA2MiwgMC4wMDQwNzgsIDAuMDA0MDgzLCAwLjAwNDA4NiwgMC4wMDQwODksIDAuMDA0MDkiLCBcCi0gICAgICAgICAgIjAuMDA0MDk2LCAwLjAwNDEsIDAuMDA0MTE0LCAwLjAwNDExOCwgMC4wMDQxMjEsIDAuMDA0MTI0LCAwLjAwNDEyNSIsIFwKLSAgICAgICAgICAiMC4wMDQxNzYsIDAuMDA0MTc2LCAwLjAwNDE4NSwgMC4wMDQxODksIDAuMDA0MTkyLCAwLjAwNDE5NCwgMC4wMDQxOTUiLCBcCi0gICAgICAgICAgIjAuMDA0MjQ0LCAwLjAwNDI0LCAwLjAwNDI0NywgMC4wMDQyNDksIDAuMDA0MjUzLCAwLjAwNDI1NSwgMC4wMDQyNTYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI2MTgsIDAuMDAyNjI3LCAwLjAwMjY0NCwgMC4wMDI2NDgsIDAuMDAyNjUxLCAwLjAwMjY1MiwgMC4wMDI2NTMiLCBcCi0gICAgICAgICAgIjAuMDAyNjA5LCAwLjAwMjYxOCwgMC4wMDI2MzYsIDAuMDAyNjQyLCAwLjAwMjY0MiwgMC4wMDI2NDYsIDAuMDAyNjQ2IiwgXAotICAgICAgICAgICIwLjAwMjYxMSwgMC4wMDI2MjEsIDAuMDAyNjQsIDAuMDAyNjQ1LCAwLjAwMjY0NywgMC4wMDI2NSwgMC4wMDI2NTEiLCBcCi0gICAgICAgICAgIjAuMDAyNjQ2LCAwLjAwMjY1MywgMC4wMDI2NywgMC4wMDI2NzUsIDAuMDAyNjc5LCAwLjAwMjY4LCAwLjAwMjY4MSIsIFwKLSAgICAgICAgICAiMC4wMDI2ODIsIDAuMDAyNjg4LCAwLjAwMjcwNCwgMC4wMDI3MDksIDAuMDAyNzEyLCAwLjAwMjcxNCwgMC4wMDI3MTUiLCBcCi0gICAgICAgICAgIjAuMDAyNzQ3LCAwLjAwMjc1MSwgMC4wMDI3NjQsIDAuMDAyNzY5LCAwLjAwMjc3MiwgMC4wMDI3NzUsIDAuMDAyNzc2IiwgXAotICAgICAgICAgICIwLjAwMjgyMiwgMC4wMDI4MjQsIDAuMDAyODM1LCAwLjAwMjgzOSwgMC4wMDI4NDIsIDAuMDAyODQ1LCAwLjAwMjg0NiIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogQURESFg0ICoKLSAqIC0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoQURESFg0KSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDEuMjA2OTM7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTczMDM5OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTczMDM5OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTcyODk1OwotICB9Ci0gIHBpbihCKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDI4NzUyODsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDI4NDc0MjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDI4NzUyODsKLSAgfQotICBwaW4oQ08pICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMS4zMzM1NDsKLSAgICBmdW5jdGlvbiA6ICIoQSBCKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDM4NzYsIDAuMTAxODg4LCAwLjE1NzAwNiwgMC4xOTY0MiwgMC4yNTk3OTIsIDAuMzE0NTcsIDAuMzkzNjM3IiwgXAotICAgICAgICAgICIwLjA1MDE3OCwgMC4xMDgyMzIsIDAuMTYzNDE3LCAwLjIwMjk0NSwgMC4yNjYwOCwgMC4zMjA5ODgsIDAuMzk5OTA0IiwgXAotICAgICAgICAgICIwLjA1Nzc0MywgMC4xMTU4NywgMC4xNzEwMTMsIDAuMjEwNjA1LCAwLjI3NDAxOCwgMC4zMjkyMjIsIDAuNDA3Mzg4IiwgXAotICAgICAgICAgICIwLjA2NDIzOSwgMC4xMjI2MTIsIDAuMTc3Nzk0LCAwLjIxNzI4MiwgMC4yODA0MjgsIDAuMzM1Mjk1LCAwLjQxNDYxOSIsIFwKLSAgICAgICAgICAiMC4wNjk3NzUsIDAuMTI4NDY3LCAwLjE4MzYwNSwgMC4yMjMxMTYsIDAuMjg2Mjc5LCAwLjM0MTE3NSwgMC40MjAwNzciLCBcCi0gICAgICAgICAgIjAuMDc3Mzg5LCAwLjEzNjYyOSwgMC4xOTE3MzgsIDAuMjMxMzc4LCAwLjI5NDQ3MSwgMC4zNDkzNjIsIDAuNDI4NDkiLCBcCi0gICAgICAgICAgIjAuMDgzMjIyLCAwLjE0MjkxNSwgMC4xOTgwMjksIDAuMjM3NTIzLCAwLjMwMDgzLCAwLjM1NTU2NSwgMC40MzQyMzEiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjk0NzYsIDAuMTQyODA4LCAwLjI1ODgzMiwgMC4zNDE5NDIsIDAuNDc2OTA5LCAwLjU5MzY3NSwgMC43NjMwMjEiLCBcCi0gICAgICAgICAgIjAuMDI5NDkxLCAwLjE0Mjk4MywgMC4yNTg3ODQsIDAuMzQyNzE4LCAwLjQ3Njg2OCwgMC41OTM5NDksIDAuNzYyMTI0IiwgXAotICAgICAgICAgICIwLjAzMDEwOCwgMC4xNDMxODIsIDAuMjU4ODksIDAuMzQyMzkyLCAwLjQ3NjMzNywgMC41OTM4NTMsIDAuNzYyMDU1IiwgXAotICAgICAgICAgICIwLjAzMTAwMiwgMC4xNDM0OTgsIDAuMjU4OTQsIDAuMzQyNzY1LCAwLjQ3Njg3MywgMC41OTQwODMsIDAuNzYxODkxIiwgXAotICAgICAgICAgICIwLjAzMjEyMSwgMC4xNDM1MDksIDAuMjU5MTQzLCAwLjM0Mjc5NiwgMC40NzY5MjEsIDAuNTk0MDY2LCAwLjc2MjIxMyIsIFwKLSAgICAgICAgICAiMC4wMzM3OTcsIDAuMTQzODY0LCAwLjI1OTQ2MywgMC4zNDI5MTQsIDAuNDc3MDQ0LCAwLjU5NDA4OSwgMC43NjE5MjgiLCBcCi0gICAgICAgICAgIjAuMDM1MDcsIDAuMTQ0OTcxLCAwLjI1OTY2NywgMC4zNDI4NjUsIDAuNDc3MTkyLCAwLjU5NDM1NywgMC43NjI0OTgiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzI5NjgsIDAuMDg3ODk4LCAwLjE0MTgyNCwgMC4xODA0MDQsIDAuMjQyMDg0LCAwLjI5NjQxNywgMC4zNzMwNjYiLCBcCi0gICAgICAgICAgIjAuMDQxMjY0LCAwLjA5NjIxMywgMC4xNTAxNTEsIDAuMTg4Nzg1LCAwLjI1MDQxOCwgMC4zMDQ3MywgMC4zODEzODgiLCBcCi0gICAgICAgICAgIjAuMDUwMTk1LCAwLjEwNTE3OCwgMC4xNTkxMDQsIDAuMTk3NSwgMC4yNTkzMzksIDAuMzEzMDE4LCAwLjM5MDM1OCIsIFwKLSAgICAgICAgICAiMC4wNTY4NTQsIDAuMTEyMDU4LCAwLjE2NTk4NywgMC4yMDQ2MjYsIDAuMjY2MTY3LCAwLjMyMDU0NCwgMC4zOTcxOTkiLCBcCi0gICAgICAgICAgIjAuMDYyMTY5LCAwLjExNzU4OSwgMC4xNzE0NzYsIDAuMjA5ODQyLCAwLjI3MjA4OSwgMC4zMjU2OTYsIDAuNDAyNDE3IiwgXAotICAgICAgICAgICIwLjA2OTExMywgMC4xMjQ4NTksIDAuMTc4NzIsIDAuMjE3MDc5LCAwLjI3OTEzNCwgMC4zMzMwNDYsIDAuNDA5OTEzIiwgXAotICAgICAgICAgICIwLjA3NDA0NCwgMC4xMzAwNzcsIDAuMTgzODg0LCAwLjIyMjM5MiwgMC4yODQwOSwgMC4zMzc3NzQsIDAuNDE0OTEyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDI0NDUsIDAuMTM0MjM3LCAwLjI0Nzc5MywgMC4zMjY2ODksIDAuNDUzOTkyLCAwLjU2NDk2OSwgMC43MjQ4MSIsIFwKLSAgICAgICAgICAiMC4wMjQ1NCwgMC4xMzQzMSwgMC4yNDc3NzYsIDAuMzI2MzEyLCAwLjQ1NDA5MiwgMC41NjUxODksIDAuNzI0NzQ0IiwgXAotICAgICAgICAgICIwLjAyNTQ4NSwgMC4xMzM3MTUsIDAuMjQ1MzY3LCAwLjMyNzI3LCAwLjQ1NDg2NCwgMC41NjYyNjUsIDAuNzI0NTY5IiwgXAotICAgICAgICAgICIwLjAyNjkzNywgMC4xMzUwOTMsIDAuMjQ3Njg0LCAwLjMyNjYxOSwgMC40NTQxNDEsIDAuNTY1MjQsIDAuNzI0MzQyIiwgXAotICAgICAgICAgICIwLjAyODEzMSwgMC4xMzU1NjMsIDAuMjQ3Njk3LCAwLjMyNzIwOSwgMC40NTI1ODQsIDAuNTY0MjExLCAwLjcyMzQ3MiIsIFwKLSAgICAgICAgICAiMC4wMjk5NjcsIDAuMTM1NTY3LCAwLjI0NTgzNSwgMC4zMjcwODMsIDAuNDUzMDUzLCAwLjU2NDY1NSwgMC43MjQ4MDUiLCBcCi0gICAgICAgICAgIjAuMDMxNDY3LCAwLjEzNjU0NiwgMC4yNDYzNjgsIDAuMzI2MDYzLCAwLjQ1NDU5OSwgMC41NjY0ODUsIDAuNzI0OTk2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQyNDYzLCAwLjEwMDU3OCwgMC4xNTU3MTcsIDAuMTk1MzIxLCAwLjI1ODQsIDAuMzEzMzM3LCAwLjM5MjA3NSIsIFwKLSAgICAgICAgICAiMC4wNTAwNTUsIDAuMTA4MTY5LCAwLjE2MzMwOCwgMC4yMDI5MDMsIDAuMjY2MDAxLCAwLjMyMDkxOSwgMC40MDAxMDkiLCBcCi0gICAgICAgICAgIjAuMDU5NjksIDAuMTE3ODIzLCAwLjE3MzAyMSwgMC4yMTI1ODMsIDAuMjc1NjYzLCAwLjMzMDU5MywgMC40MDk2NzQiLCBcCi0gICAgICAgICAgIjAuMDY3NzM5LCAwLjEyNjA3MywgMC4xODEzMzMsIDAuMjIwODM1LCAwLjI4Mzg3MSwgMC4zMzg4MzQsIDAuNDE3ODciLCBcCi0gICAgICAgICAgIjAuMDc0Mzc5LCAwLjEzMzE4MywgMC4xODgzMTQsIDAuMjI3Nzc3LCAwLjI5MDc2NiwgMC4zNDU3NzYsIDAuNDI0NDQ1IiwgXAotICAgICAgICAgICIwLjA4MzM4NywgMC4xNDI3MDEsIDAuMTk3ODYsIDAuMjM3MzMyLCAwLjMwMDI0MywgMC4zNTUzNjMsIDAuNDM0MDAyIiwgXAotICAgICAgICAgICIwLjA5MDE4OSwgMC4xNTAwNCwgMC4yMDUxNTQsIDAuMjQ0NDc3LCAwLjMwNzM2LCAwLjM2MjQ4MiwgMC40NDExNSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyOTY3OCwgMC4xNDI0MjgsIDAuMjU4NjM2LCAwLjM0MjU0NiwgMC40NzY5MjMsIDAuNTk0MDgxLCAwLjc2MjI3IiwgXAotICAgICAgICAgICIwLjAyOTU5NSwgMC4xNDIzNTUsIDAuMjU4Njg5LCAwLjM0MjUsIDAuNDc2OTEyLCAwLjU5NDEzLCAwLjc2MjE0NSIsIFwKLSAgICAgICAgICAiMC4wMzAzMSwgMC4xNDI2MzcsIDAuMjU4NjM4LCAwLjM0MjYxMSwgMC40NzcwMSwgMC41OTQwODUsIDAuNzYyMDQ3IiwgXAotICAgICAgICAgICIwLjAzMTUzMywgMC4xNDMwNjcsIDAuMjU4ODA0LCAwLjM0MjY3OCwgMC40NzcxMzYsIDAuNTk0MjUxLCAwLjc2MjExOCIsIFwKLSAgICAgICAgICAiMC4wMzMzNzMsIDAuMTQzNTA5LCAwLjI1OTA2MiwgMC4zNDI4MjEsIDAuNDc3MTg1LCAwLjU5NDMwMiwgMC43NjI2ODMiLCBcCi0gICAgICAgICAgIjAuMDM1NDU5LCAwLjE0NDIxNCwgMC4yNTkzOTMsIDAuMzQyODgyLCAwLjQ3Njc2MywgMC41OTUwMTUsIDAuNzYzMDMzIiwgXAotICAgICAgICAgICIwLjAzNjgzLCAwLjE0NDk0LCAwLjI1OTg5NCwgMC4zNDMxNzEsIDAuNDc2OTksIDAuNTk0NTE5LCAwLjc2MjU0NiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzMTg4MiwgMC4wODY4MDEsIDAuMTQwNjg3LCAwLjE3OTE3NywgMC4yNDA3NzMsIDAuMjk1MDMxLCAwLjM3MTM1NSIsIFwKLSAgICAgICAgICAiMC4wNDAwMywgMC4wOTQ5OTQsIDAuMTQ4ODY2LCAwLjE4NzM1OCwgMC4yNDg5NDcsIDAuMzAzMTQ2LCAwLjM3OTQ1MyIsIFwKLSAgICAgICAgICAiMC4wNDg1NzMsIDAuMTAzNjQzLCAwLjE1NzQ3NywgMC4xOTU5NDMsIDAuMjU3OTgsIDAuMzExNzQzLCAwLjM4OTM2NyIsIFwKLSAgICAgICAgICAiMC4wNTQ5MTQsIDAuMTEwMTQsIDAuMTY0MDI3LCAwLjIwMjUzLCAwLjI2NDA1MywgMC4zMTc5OTYsIDAuMzk1MzM1IiwgXAotICAgICAgICAgICIwLjA1OTg0NiwgMC4xMTUyOTIsIDAuMTY5MTM5LCAwLjIwNzQ5NywgMC4yNjkwNjMsIDAuMzIzMDU1LCAwLjQwMTA5NyIsIFwKLSAgICAgICAgICAiMC4wNjYxMTgsIDAuMTIyMDA2LCAwLjE3NTg4NCwgMC4yMTQyMzksIDAuMjc1OTU0LCAwLjMyOTc2NywgMC40MDYzMTEiLCBcCi0gICAgICAgICAgIjAuMDcwNTkzLCAwLjEyNjgxMywgMC4xODA1NDYsIDAuMjE5MDUxLCAwLjI4MDYyOSwgMC4zMzQ4NTksIDAuNDEyMzUzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDI0MjcxLCAwLjEzNDQwOCwgMC4yNDY2ODEsIDAuMzI2NDc2LCAwLjQ1NDk0OSwgMC41NjcxMTMsIDAuNzI2MjcxIiwgXAotICAgICAgICAgICIwLjAyNDQzNywgMC4xMzQ2NTEsIDAuMjQ2NjIsIDAuMzI2NDg1LCAwLjQ1NDk4LCAwLjU2NzEyNCwgMC43MjY2MTkiLCBcCi0gICAgICAgICAgIjAuMDI2MTM1LCAwLjEzMzUyNiwgMC4yNDU5NjUsIDAuMzI1MjYyLCAwLjQ1MzU0OSwgMC41NjcyMzUsIDAuNzI0MzQ2IiwgXAotICAgICAgICAgICIwLjAyNzI3LCAwLjEzNTIyOCwgMC4yNDc2MDMsIDAuMzI2NjA4LCAwLjQ1NTQxOCwgMC41NjY5MTgsIDAuNzI0OTExIiwgXAotICAgICAgICAgICIwLjAyODUyNiwgMC4xMzU0LCAwLjI0Njk1NiwgMC4zMjY4MDIsIDAuNDU0OTYsIDAuNTY2NDMzLCAwLjcyMjY5NiIsIFwKLSAgICAgICAgICAiMC4wMzAzNjYsIDAuMTM1MjY5LCAwLjI0NzU1NiwgMC4zMjY3NzMsIDAuNDU0NDc4LCAwLjU2Njg2MSwgMC43MjY3NjEiLCBcCi0gICAgICAgICAgIjAuMDMxODIxLCAwLjEzNjY0MSwgMC4yNDY5NzksIDAuMzI1OTMzLCAwLjQ1NTQyMiwgMC41NjY2NjIsIDAuNzIzOTMxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDcwMzIsIDAuMDA3MDkyLCAwLjAwNzEwNSwgMC4wMDcxMDksIDAuMDA3MTEzLCAwLjAwNzExNSwgMC4wMDcxMTciLCBcCi0gICAgICAgICAgIjAuMDA2OTksIDAuMDA3MDU3LCAwLjAwNzA3MywgMC4wMDcwNzcsIDAuMDA3MDgyLCAwLjAwNzA4NCwgMC4wMDcwODUiLCBcCi0gICAgICAgICAgIjAuMDA3MDMxLCAwLjAwNzA5NCwgMC4wMDcxMTIsIDAuMDA3MTE4LCAwLjAwNzEyMywgMC4wMDcxMjUsIDAuMDA3MTI4IiwgXAotICAgICAgICAgICIwLjAwNzEzMSwgMC4wMDcxNzMsIDAuMDA3MTkxLCAwLjAwNzE5NywgMC4wMDcyMDIsIDAuMDA3MjA0LCAwLjAwNzIwNyIsIFwKLSAgICAgICAgICAiMC4wMDcyNTMsIDAuMDA3MjY5LCAwLjAwNzI4NiwgMC4wMDcyOSwgMC4wMDcyOTcsIDAuMDA3Mjk5LCAwLjAwNzMiLCBcCi0gICAgICAgICAgIjAuMDA3NDcyLCAwLjAwNzQ1MywgMC4wMDc0NjgsIDAuMDA3NDcsIDAuMDA3NDc2LCAwLjAwNzQ3OCwgMC4wMDc0OCIsIFwKLSAgICAgICAgICAiMC4wMDc2ODEsIDAuMDA3NjM1LCAwLjAwNzY0NSwgMC4wMDc2NDksIDAuMDA3NjUzLCAwLjAwNzY1MywgMC4wMDc2NTUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwODA3NCwgMC4wMDgxNzMsIDAuMDA4MTg5LCAwLjAwODE5NCwgMC4wMDgxOTgsIDAuMDA4MjAxLCAwLjAwODIwMyIsIFwKLSAgICAgICAgICAiMC4wMDgwNDMsIDAuMDA4MTUzLCAwLjAwODE3MywgMC4wMDgxOCwgMC4wMDgxODUsIDAuMDA4MTg4LCAwLjAwODE5MSIsIFwKLSAgICAgICAgICAiMC4wMDgxMDQsIDAuMDA4MjAyLCAwLjAwODIyNywgMC4wMDgyMzUsIDAuMDA4MjQzLCAwLjAwODI0NiwgMC4wMDgyNSIsIFwKLSAgICAgICAgICAiMC4wMDgyMiwgMC4wMDgyOTIsIDAuMDA4MzE4LCAwLjAwODMyNiwgMC4wMDgzMzQsIDAuMDA4MzM4LCAwLjAwODM0MiIsIFwKLSAgICAgICAgICAiMC4wMDgzNjYsIDAuMDA4NDA0LCAwLjAwODQyOSwgMC4wMDg0MzgsIDAuMDA4NDQ2LCAwLjAwODQ1MSwgMC4wMDg0NTUiLCBcCi0gICAgICAgICAgIjAuMDA4NjEyLCAwLjAwODYxLCAwLjAwODYzNCwgMC4wMDg2NDEsIDAuMDA4NjUsIDAuMDA4NjU0LCAwLjAwODY1NyIsIFwKLSAgICAgICAgICAiMC4wMDg4NSwgMC4wMDg4LCAwLjAwODgxNSwgMC4wMDg4MzYsIDAuMDA4ODQ1LCAwLjAwODgzNiwgMC4wMDg4MzkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjQ1NSwgMC4wMDY1NTgsIDAuMDA2NTg0LCAwLjAwNjU5MywgMC4wMDY2MDEsIDAuMDA2NjA2LCAwLjAwNjYxIiwgXAotICAgICAgICAgICIwLjAwNjQzNSwgMC4wMDY1NDEsIDAuMDA2NTcsIDAuMDA2NTgsIDAuMDA2NTg5LCAwLjAwNjU5NSwgMC4wMDY1OTgiLCBcCi0gICAgICAgICAgIjAuMDA2NTI2LCAwLjAwNjYwNywgMC4wMDY2MzYsIDAuMDA2NjQ0LCAwLjAwNjY1NSwgMC4wMDY2NjEsIDAuMDA2NjY0IiwgXAotICAgICAgICAgICIwLjAwNjY4MiwgMC4wMDY3MzIsIDAuMDA2NzU5LCAwLjAwNjc2OCwgMC4wMDY3NzksIDAuMDA2NzgzLCAwLjAwNjc4NyIsIFwKLSAgICAgICAgICAiMC4wMDY4MjksIDAuMDA2ODM5LCAwLjAwNjg2MSwgMC4wMDY4NywgMC4wMDY4ODEsIDAuMDA2ODgyLCAwLjAwNjg4NyIsIFwKLSAgICAgICAgICAiMC4wMDcxMzQsIDAuMDA3MTAzLCAwLjAwNzEyMSwgMC4wMDcxMjYsIDAuMDA3MTM1LCAwLjAwNzEzNywgMC4wMDcxNDMiLCBcCi0gICAgICAgICAgIjAuMDA3Mzg2LCAwLjAwNzMxNCwgMC4wMDczMjQsIDAuMDA3MzI5LCAwLjAwNzMzNSwgMC4wMDczMzcsIDAuMDA3MzQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwODExNSwgMC4wMDgyMzgsIDAuMDA4MjY2LCAwLjAwODI3NiwgMC4wMDgyODMsIDAuMDA4Mjg4LCAwLjAwODI5MiIsIFwKLSAgICAgICAgICAiMC4wMDgxNDQsIDAuMDA4MjcyLCAwLjAwODMwNywgMC4wMDgzMTcsIDAuMDA4MzI0LCAwLjAwODMzMSwgMC4wMDgzMzgiLCBcCi0gICAgICAgICAgIjAuMDA4Mjk0LCAwLjAwODM5NSwgMC4wMDg0MjUsIDAuMDA4NDM4LCAwLjAwODQ1LCAwLjAwODQ2MiwgMC4wMDg0NTYiLCBcCi0gICAgICAgICAgIjAuMDA4NDQxLCAwLjAwODU0NCwgMC4wMDg1NjYsIDAuMDA4NTgxLCAwLjAwODYwOSwgMC4wMDg2MTQsIDAuMDA4NjIyIiwgXAotICAgICAgICAgICIwLjAwODY1NiwgMC4wMDg3MDYsIDAuMDA4NzMzLCAwLjAwODc0OCwgMC4wMDg3NjksIDAuMDA4Nzc3LCAwLjAwODc4NCIsIFwKLSAgICAgICAgICAiMC4wMDg5NywgMC4wMDkwMDUsIDAuMDA5MDM5LCAwLjAwOTA1MywgMC4wMDkwNjcsIDAuMDA5MDczLCAwLjAwOTA1MSIsIFwKLSAgICAgICAgICAiMC4wMDkyODIsIDAuMDA5MjY5LCAwLjAwOTMwMSwgMC4wMDkzMTYsIDAuMDA5MzMxLCAwLjAwOTMzOSwgMC4wMDkzNDgiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFMpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMS4yNTIxMzsKLSAgICBmdW5jdGlvbiA6ICIoQV5CKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjQxMjgsIDAuMTI1NzMxLCAwLjE4MDcxMiwgMC4yMTk3NzUsIDAuMjgyMjM0LCAwLjMzNjk1NiwgMC40MTQ5NDMiLCBcCi0gICAgICAgICAgIjAuMDcyMzI3LCAwLjEzMzk3NywgMC4xODg5MjIsIDAuMjI4MDAxLCAwLjI5MDQ3NywgMC4zNDUxMSwgMC40MjMxODgiLCBcCi0gICAgICAgICAgIjAuMDgyNzY5LCAwLjE0NDM2MywgMC4xOTkzMTIsIDAuMjM4Mzk0LCAwLjMwMDg1NSwgMC4zNTU1MDUsIDAuNDMzNTgiLCBcCi0gICAgICAgICAgIjAuMDkyNDU1LCAwLjE1NDA4OSwgMC4yMDkwNzUsIDAuMjQ4MTMyLCAwLjMxMDYxNiwgMC4zNjUyNCwgMC40NDMzMzgiLCBcCi0gICAgICAgICAgIjAuMTAxMTYzLCAwLjE2Mjk3NCwgMC4yMTc5MywgMC4yNTY5ODcsIDAuMzE5NDY1LCAwLjM3NDA5NSwgMC40NTIxNTkiLCBcCi0gICAgICAgICAgIjAuMTEyOTE5LCAwLjE3NTY4OCwgMC4yMzA2NTgsIDAuMjY5NzA1LCAwLjMzMjE0NSwgMC4zODY4NjgsIDAuNDY0ODM3IiwgXAotICAgICAgICAgICIwLjEyMTYxMSwgMC4xODUzMzUsIDAuMjQwMzA4LCAwLjI3OTMxOSwgMC4zNDE3NjIsIDAuMzk2MzgsIDAuNDc0NTYxIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM0NjEzLCAwLjE0NTEzMywgMC4yNTgzNDYsIDAuMzQwMTI3LCAwLjQ3MTk2NCwgMC41ODcyOTEsIDAuNzUzMDgzIiwgXAotICAgICAgICAgICIwLjAzNDYyNywgMC4xNDUxNzEsIDAuMjU4MzQ1LCAwLjM0MDM3MiwgMC40NzI0NzYsIDAuNTg4MjA0LCAwLjc1MzIzNSIsIFwKLSAgICAgICAgICAiMC4wMzQ3MTgsIDAuMTQ1MTg3LCAwLjI1ODM0NywgMC4zNDAzNzIsIDAuNDcyMzA5LCAwLjU4ODIxNywgMC43NTMyNCIsIFwKLSAgICAgICAgICAiMC4wMzUyMjIsIDAuMTQ1Mjc4LCAwLjI1ODI0OSwgMC4zNDA0MjMsIDAuNDcxNzQzLCAwLjU4NzYwNywgMC43NTQwMzMiLCBcCi0gICAgICAgICAgIjAuMDM2NDE2LCAwLjE0NTY2NCwgMC4yNTg2NSwgMC4zNDA1MDgsIDAuNDcyNTIyLCAwLjU4ODI1OSwgMC43NTMxNzMiLCBcCi0gICAgICAgICAgIjAuMDM4NDE1LCAwLjE0Njc1NiwgMC4yNTkxMDUsIDAuMzQwNjEsIDAuNDcyMTc2LCAwLjU4NzQ0NCwgMC43NTMwMzgiLCBcCi0gICAgICAgICAgIjAuMDQwMjI1LCAwLjE0NzgxNSwgMC4yNTk3NjEsIDAuMzQwOTg3LCAwLjQ3Mjg4NSwgMC41ODgyMzEsIDAuNzUyNjUxIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY4ODUzLCAwLjEzMTA5LCAwLjE4NTYsIDAuMjI0MTQ2LCAwLjI4NTc2OCwgMC4zMzk2NjksIDAuNDE2NjgzIiwgXAotICAgICAgICAgICIwLjA3Njc1NSwgMC4xMzg5OCwgMC4xOTM0NzcsIDAuMjMyMDMxLCAwLjI5MzY1NiwgMC4zNDc1NTQsIDAuNDI0NTQ2IiwgXAotICAgICAgICAgICIwLjA4NzAwNCwgMC4xNDkxNjQsIDAuMjAzNjgzLCAwLjI0MjIzMiwgMC4zMDM4NTYsIDAuMzU3NzU4LCAwLjQzNDc2NCIsIFwKLSAgICAgICAgICAiMC4wOTY2MywgMC4xNTg3NjgsIDAuMjEzMjU0LCAwLjI1MTgxNywgMC4zMTM0NCwgMC4zNjczMzksIDAuNDQ0MzIxIiwgXAotICAgICAgICAgICIwLjEwNTIsIDAuMTY3NDgsIDAuMjIxOTkzLCAwLjI2MDUzNCwgMC4zMjIxNTYsIDAuMzc2MDU2LCAwLjQ1MzA3IiwgXAotICAgICAgICAgICIwLjExNjYxMywgMC4xNzk3MjQsIDAuMjM0MjA1LCAwLjI3Mjc3MSwgMC4zMzQzNzUsIDAuMzg4Mjg2LCAwLjQ2NTI1OSIsIFwKLSAgICAgICAgICAiMC4xMjUwNTIsIDAuMTg4OTU2LCAwLjI0MzQ3OCwgMC4yODIwMTIsIDAuMzQzNjE5LCAwLjM5NzUwNiwgMC40NzQ1NTUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzU0NDksIDAuMTQyMzA1LCAwLjI1MTA2NywgMC4zMjk4ODUsIDAuNDU3MTU2LCAwLjU2ODc5MywgMC43Mjg3NTkiLCBcCi0gICAgICAgICAgIjAuMDM1Mzk3LCAwLjE0MjMwNywgMC4yNTEwNTgsIDAuMzI5ODgxLCAwLjQ1NzE3MiwgMC41Njg3OCwgMC43Mjg1NzIiLCBcCi0gICAgICAgICAgIjAuMDM1NTI4LCAwLjE0MjMyNywgMC4yNTEwNzMsIDAuMzI5OSwgMC40NTcxODQsIDAuNTY4NzkyLCAwLjcyODcyMyIsIFwKLSAgICAgICAgICAiMC4wMzU5MjEsIDAuMTQyNDc5LCAwLjI1MTA2MiwgMC4zMjk5MTUsIDAuNDU3MjAzLCAwLjU2ODgxNywgMC43Mjg1ODEiLCBcCi0gICAgICAgICAgIjAuMDM2ODA1LCAwLjE0Mjc3MiwgMC4yNTEzMDYsIDAuMzMwMDI4LCAwLjQ1NzI2NiwgMC41Njg4NTQsIDAuNzI4Nzc1IiwgXAotICAgICAgICAgICIwLjAzODYzLCAwLjE0MzYzNCwgMC4yNTE4MTYsIDAuMzMwNjI0LCAwLjQ1NzQzMywgMC41NjkwNjMsIDAuNzI4NzA4IiwgXAotICAgICAgICAgICIwLjA0MDU5MywgMC4xNDQ4NzksIDAuMjUyNDI1LCAwLjMzMDYxNywgMC40NTcwNCwgMC41NjkwOTMsIDAuNzI3NDY3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY2MDQ2LCAwLjEyNDM4MSwgMC4xNzkxNTksIDAuMjE4Mjc1LCAwLjI4MDc0NiwgMC4zMzU0OTUsIDAuNDEzNTMxIiwgXAotICAgICAgICAgICIwLjA3Mzk3MywgMC4xMzIzMywgMC4xODcxMSwgMC4yMjYxODYsIDAuMjg4Njk3LCAwLjM0MzQ0MywgMC40MjE0OCIsIFwKLSAgICAgICAgICAiMC4wODE3MiwgMC4xNDAwNjIsIDAuMTk0ODUyLCAwLjIzMzkzOSwgMC4yOTY0NDUsIDAuMzUxMTE0LCAwLjQyOTIxNyIsIFwKLSAgICAgICAgICAiMC4wODcyOTQsIDAuMTQ1NjE3LCAwLjIwMDM5NywgMC4yMzk1MTUsIDAuMzAxOTg4LCAwLjM1NjczNywgMC40MzQ3NzIiLCBcCi0gICAgICAgICAgIjAuMDkxODE4LCAwLjE1MDE0OCwgMC4yMDQ5NDYsIDAuMjQ0MDIzLCAwLjMwNjU5MSwgMC4zNjEyMjMsIDAuNDM5MzE3IiwgXAotICAgICAgICAgICIwLjA5NzgzMywgMC4xNTYxNzMsIDAuMjEwOTg3LCAwLjI1MDA2MSwgMC4zMTI1ODEsIDAuMzY3MjY5LCAwLjQ0NTM0NiIsIFwKLSAgICAgICAgICAiMC4xMDIxOTgsIDAuMTYwNTE0LCAwLjIxNTI5MSwgMC4yNTQ0NDMsIDAuMzE2OTM0LCAwLjM3MTU0OSwgMC40NDk2MzYiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzA0MTIsIDAuMTQxNTA4LCAwLjI1NjA0OSwgMC4zMzgzNDQsIDAuNDcwOTA3LCAwLjU4NjYwNCwgMC43NTM0MiIsIFwKLSAgICAgICAgICAiMC4wMzAzOTEsIDAuMTQxNTA4LCAwLjI1NjA1NywgMC4zMzg1MjMsIDAuNDcwOTE1LCAwLjU4NjYyMSwgMC43NTM0MTkiLCBcCi0gICAgICAgICAgIjAuMDMwNDAxLCAwLjE0MTQwOCwgMC4yNTU5NDEsIDAuMzM4ODczLCAwLjQ3MTM2NywgMC41ODY5MDQsIDAuNzUzNDI1IiwgXAotICAgICAgICAgICIwLjAzMDQyMiwgMC4xNDE1MjcsIDAuMjU2MDYyLCAwLjMzODIwNSwgMC40NzA5MTMsIDAuNTg2NjE4LCAwLjc1MzM5NSIsIFwKLSAgICAgICAgICAiMC4wMzA1NDcsIDAuMTQxNTM0LCAwLjI1NjA1OCwgMC4zMzg4MDIsIDAuNDcwNjQzLCAwLjU4NjUxNiwgMC43NTI1NzkiLCBcCi0gICAgICAgICAgIjAuMDMwNTE2LCAwLjE0MTUxMywgMC4yNTU5NzUsIDAuMzM4NzM3LCAwLjQ3MDUwMywgMC41ODczNTEsIDAuNzUzMjc1IiwgXAotICAgICAgICAgICIwLjAzMDYyNCwgMC4xNDE0NTgsIDAuMjU2MDIyLCAwLjMzODQ1OCwgMC40NzA5MzIsIDAuNTg2OTQ3LCAwLjc1MzEyNiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2ODEzOCwgMC4xMjY0OTksIDAuMTgwNjAxLCAwLjIxOTEyNSwgMC4yODA4MTYsIDAuMzM0NzYyLCAwLjQxMTc4MSIsIFwKLSAgICAgICAgICAiMC4wNzYyNjIsIDAuMTM0NjA2LCAwLjE4ODcwOCwgMC4yMjcyNjgsIDAuMjg4OTIyLCAwLjM0Mjg1OCwgMC40MTk5MjgiLCBcCi0gICAgICAgICAgIjAuMDg0MTE0LCAwLjE0MjQ4NywgMC4xOTY2MDYsIDAuMjM1MTQ4LCAwLjI5Njg0OCwgMC4zNTA4MDMsIDAuNDI3NzgzIiwgXAotICAgICAgICAgICIwLjA4OTkxNywgMC4xNDgyMTYsIDAuMjAyMzMsIDAuMjQwODkzLCAwLjMwMjU0NywgMC4zNTY0OTIsIDAuNDMzNTgzIiwgXAotICAgICAgICAgICIwLjA5NDU5NSwgMC4xNTI5MjIsIDAuMjA3MDM0LCAwLjI0NTU4NiwgMC4zMDcyNDQsIDAuMzYxMTgzLCAwLjQzODI1MSIsIFwKLSAgICAgICAgICAiMC4xMDA4NTcsIDAuMTU5MjI0LCAwLjIxMzMzNiwgMC4yNTE5MDMsIDAuMzEzNTYxLCAwLjM2NzQ4NiwgMC40NDQ1ODMiLCBcCi0gICAgICAgICAgIjAuMTA1NTE4LCAwLjE2MzkxOSwgMC4yMTgwMjYsIDAuMjU2NTc4LCAwLjMxODI2OSwgMC4zNzIxOTIsIDAuNDQ5MjM5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDMwMzU3LCAwLjEzNzY2NSwgMC4yNDc4NjksIDAuMzI2ODkzLCAwLjQ1NTM5OCwgMC41NjYzMDYsIDAuNzI3NDk1IiwgXAotICAgICAgICAgICIwLjAzMDM3LCAwLjEzNzY1OSwgMC4yNDc4NiwgMC4zMjc2MTIsIDAuNDU1MzU1LCAwLjU2NjkxMywgMC43MjY3MzYiLCBcCi0gICAgICAgICAgIjAuMDMwMzc1LCAwLjEzNzY1MiwgMC4yNDc4NDMsIDAuMzI3MzYzLCAwLjQ1NDc2NSwgMC41NjY2MzUsIDAuNzI2OTg2IiwgXAotICAgICAgICAgICIwLjAzMDM3NSwgMC4xMzc2NzYsIDAuMjQ3ODU0LCAwLjMyNzU3MSwgMC40NTUyOSwgMC41NjcwMDIsIDAuNzI2NTcxIiwgXAotICAgICAgICAgICIwLjAzMDM5NCwgMC4xMzc2NjgsIDAuMjQ3ODc3LCAwLjMyNzU1OCwgMC40NTUyOTIsIDAuNTY2OTI4LCAwLjcyNjczNyIsIFwKLSAgICAgICAgICAiMC4wMzA0MTEsIDAuMTM3NzAxLCAwLjI0Nzg2NiwgMC4zMjc1NTcsIDAuNDU1MzAxLCAwLjU2NjgxNiwgMC43MjY1NzUiLCBcCi0gICAgICAgICAgIjAuMDMwNTAxLCAwLjEzNzU4NSwgMC4yNDc4NDgsIDAuMzI3MjgxLCAwLjQ1NTM0NCwgMC41NjY5OTIsIDAuNzI2NDI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQ0OTM3LCAwLjEwMzE3LCAwLjE1NzkxNCwgMC4xOTY5NzMsIDAuMjU5NDQ2LCAwLjMxNDE1OCwgMC4zOTIxNTUiLCBcCi0gICAgICAgICAgIjAuMDUyNzM5LCAwLjExMTAwMywgMC4xNjU3NSwgMC4yMDQ4MzUsIDAuMjY3Mjk2LCAwLjMyMTk5MiwgMC4zOTk5OTIiLCBcCi0gICAgICAgICAgIjAuMDYyMzU4LCAwLjEyMDYzMywgMC4xNzUzOTMsIDAuMjE0NDU2LCAwLjI3Njk0OSwgMC4zMzE1NTYsIDAuNDA5NjIyIiwgXAotICAgICAgICAgICIwLjA3MDY0NywgMC4xMjkxMDksIDAuMTgzODY2LCAwLjIyMjg5NiwgMC4yODUzNiwgMC4zNDAwMDYsIDAuNDE4MDk1IiwgXAotICAgICAgICAgICIwLjA3NzM5NCwgMC4xMzYyNTksIDAuMTkwOTgxLCAwLjIzMDA0NiwgMC4yOTI0NzMsIDAuMzQ3MTAyLCAwLjQyNTEzOSIsIFwKLSAgICAgICAgICAiMC4wODYzNSwgMC4xNDU4OTYsIDAuMjAwNTY5LCAwLjIzOTU4NSwgMC4zMDIwMzUsIDAuMzU2NjQsIDAuNDM0NjY4IiwgXAotICAgICAgICAgICIwLjA5MjgzNywgMC4xNTMwNDksIDAuMjA3NzM5LCAwLjI0NjczLCAwLjMwOTEyOSwgMC4zNjM3NDksIDAuNDQxNzY1Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDMwMzA1LCAwLjE0MTQ1LCAwLjI1NjEzOCwgMC4zMzg3MzgsIDAuNDcwNzYzLCAwLjU4NjM5MiwgMC43NTMxNDUiLCBcCi0gICAgICAgICAgIjAuMDMwMzE1LCAwLjE0MTQ1OCwgMC4yNTU4OTQsIDAuMzM4Nzc4LCAwLjQ3MDgxNSwgMC41ODY0MTcsIDAuNzUzMTM2IiwgXAotICAgICAgICAgICIwLjAzMDgsIDAuMTQxNTQzLCAwLjI1NjE2NiwgMC4zMzg3NzUsIDAuNDcxMTgzLCAwLjU4NzIwNywgMC43NTMwNjEiLCBcCi0gICAgICAgICAgIjAuMDMyMjg2LCAwLjE0MTg4NywgMC4yNTYyNzIsIDAuMzM4Njk4LCAwLjQ3MTA3OCwgMC41ODY2NTYsIDAuNzUyOTc2IiwgXAotICAgICAgICAgICIwLjAzMzc3MSwgMC4xNDI0NDIsIDAuMjU2MzY2LCAwLjMzODM0MSwgMC40NzA0NzksIDAuNTg3MDIxLCAwLjc1MjUxOCIsIFwKLSAgICAgICAgICAiMC4wMzYxMywgMC4xNDMzMTgsIDAuMjU2Nzk0LCAwLjMzODg1OSwgMC40NzA5MTUsIDAuNTg2NjkxLCAwLjc1Mjc4NiIsIFwKLSAgICAgICAgICAiMC4wMzgwNTksIDAuMTQ0MTc2LCAwLjI1NzAzMSwgMC4zMzkxMTksIDAuNDcxMDUyLCAwLjU4NjgxOSwgMC43NTI2MTUiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTM3NzQsIDAuMTE1ODY3LCAwLjE3MDM2NiwgMC4yMDg5MDQsIDAuMjcwNTI2LCAwLjMyNDQ1NiwgMC40MDE0MzkiLCBcCi0gICAgICAgICAgIjAuMDYwODk5LCAwLjEyMjk4MiwgMC4xNzc0ODQsIDAuMjE2MDM1LCAwLjI3NzY3NywgMC4zMzE1NiwgMC40MDg1MzkiLCBcCi0gICAgICAgICAgIjAuMDcwMDEsIDAuMTMyMDUzLCAwLjE4NjU0MywgMC4yMjUwOTIsIDAuMjg2NzM3LCAwLjM0MDYyMywgMC40MTc2MDQiLCBcCi0gICAgICAgICAgIjAuMDc4MzYyLCAwLjE0MDM4NCwgMC4xOTQ4ODgsIDAuMjMzNDI3LCAwLjI5NTA0OCwgMC4zNDg5NTEsIDAuNDI2MDA2IiwgXAotICAgICAgICAgICIwLjA4NTQyNywgMC4xNDc2NjYsIDAuMjAyMTQ5LCAwLjI0MDcxNCwgMC4zMDIzMzYsIDAuMzU2MjEzLCAwLjQzMzI1NSIsIFwKLSAgICAgICAgICAiMC4wOTUwMjcsIDAuMTU3NTcxLCAwLjIxMjEzNSwgMC4yNTA2MzEsIDAuMzEyMjc0LCAwLjM2NjE1NywgMC40NDMxNzQiLCBcCi0gICAgICAgICAgIjAuMTAyMTMsIDAuMTY1MDQxLCAwLjIxOTY4LCAwLjI1ODI1MiwgMC4zMTk4MzgsIDAuMzczNzA0LCAwLjQ1MDY4MSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzNDgwOSwgMC4xNDIxNDIsIDAuMjUxMDAyLCAwLjMzMDA2OCwgMC40NTcxMTQsIDAuNTY4ODgyLCAwLjcyODY5NyIsIFwKLSAgICAgICAgICAiMC4wMzQ3MDMsIDAuMTQyMDgyLCAwLjI1MDk4NywgMC4zMzAwNSwgMC40NTYxNzUsIDAuNTY4NzUyLCAwLjcyODU0MSIsIFwKLSAgICAgICAgICAiMC4wMzQ2NDIsIDAuMTQyMDkxLCAwLjI1MTAwMSwgMC4zMzAwNDgsIDAuNDU3MTc4LCAwLjU2ODc1OSwgMC43Mjg1MzMiLCBcCi0gICAgICAgICAgIjAuMDM1MzM4LCAwLjE0MjI4LCAwLjI1MTA5MiwgMC4zMzAxMjMsIDAuNDU3MTQ3LCAwLjU2ODEzOSwgMC43MjcyODMiLCBcCi0gICAgICAgICAgIjAuMDM2NjczLCAwLjE0MjcxNywgMC4yNTEzMjcsIDAuMzMwMjQyLCAwLjQ1NzI2NCwgMC41Njg4NjgsIDAuNzI3NTAxIiwgXAotICAgICAgICAgICIwLjAzODM1OSwgMC4xNDM1MDYsIDAuMjUxODg2LCAwLjMzMDM5MSwgMC40NTc1NTgsIDAuNTY4NSwgMC43Mjg4ODgiLCBcCi0gICAgICAgICAgIjAuMDM5OTIzLCAwLjE0NDEyNywgMC4yNTIzNTMsIDAuMzMwODM3LCAwLjQ1NzgyNSwgMC41NjkxNjksIDAuNzI5MDY0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU1MTAyLCAwLjExNzk1MSwgMC4xNzQxMDgsIDAuMjE0MDA2LCAwLjI3NzgyMiwgMC4zMzM2NzQsIDAuNDEzMzg0IiwgXAotICAgICAgICAgICIwLjA2MzUwNiwgMC4xMjYzNTcsIDAuMTgyNTEzLCAwLjIyMjQxMiwgMC4yODYyMjksIDAuMzQyMDczLCAwLjQyMTc5OSIsIFwKLSAgICAgICAgICAiMC4wNzMwOTEsIDAuMTM1OTY1LCAwLjE5MjA1NSwgMC4yMzE5NzIsIDAuMjk1ODI0LCAwLjM1MTY4MSwgMC40MzE0NzQiLCBcCi0gICAgICAgICAgIjAuMDc5ODM2LCAwLjE0MjczMywgMC4xOTg4MDEsIDAuMjM4NzExLCAwLjMwMjYzLCAwLjM1ODQ0NywgMC40MzgyNiIsIFwKLSAgICAgICAgICAiMC4wODQ4ODEsIDAuMTQ3NjY1LCAwLjIwMzg3NywgMC4yNDM3ODksIDAuMzA3NTQ2LCAwLjM2MzM2NCwgMC40NDMyOTEiLCBcCi0gICAgICAgICAgIjAuMDkxNDA2LCAwLjE1NDA3NCwgMC4yMTAxOTIsIDAuMjUwMTA3LCAwLjMxMzkwOSwgMC4zNjk3NCwgMC40NDkzNCIsIFwKLSAgICAgICAgICAiMC4wOTYwMDUsIDAuMTU4NjU3LCAwLjIxNDcwNywgMC4yNTQ1OTcsIDAuMzE4NDMsIDAuMzc0MzEsIDAuNDU0MTM5Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM0NDgzLCAwLjE0Njg2NCwgMC4yNjE2NDYsIDAuMzQ0NzQzLCAwLjQ3ODc2MywgMC41OTYzNzgsIDAuNzYzNDgiLCBcCi0gICAgICAgICAgIjAuMDM0NDMxLCAwLjE0NjkwNywgMC4yNjE2NDgsIDAuMzQ0NzM4LCAwLjQ3ODc2MSwgMC41OTYzNjQsIDAuNzYzNTI5IiwgXAotICAgICAgICAgICIwLjAzNDI0NSwgMC4xNDY3NDUsIDAuMjYxNzMzLCAwLjM0NDU3MiwgMC40Nzc5MDksIDAuNTk2MzM4LCAwLjc2MzAxOSIsIFwKLSAgICAgICAgICAiMC4wMzQwMTEsIDAuMTQ2Nzk5LCAwLjI2MTU1LCAwLjM0NDY2NSwgMC40Nzg4MzUsIDAuNTk2MTg4LCAwLjc2MzE0NCIsIFwKLSAgICAgICAgICAiMC4wMzQwNTksIDAuMTQ2NjQyLCAwLjI2MTQ4NiwgMC4zNDQ2NTUsIDAuNDc4NjM3LCAwLjU5NjA1NCwgMC43NjI4NjUiLCBcCi0gICAgICAgICAgIjAuMDM0MTE1LCAwLjE0NjQ5LCAwLjI2MTQ5OCwgMC4zNDQ1NDgsIDAuNDc4MjY3LCAwLjU5NTYxNiwgMC43NjM0ODgiLCBcCi0gICAgICAgICAgIjAuMDM0MTIzLCAwLjE0NjQzNCwgMC4yNjE0NSwgMC4zNDQ0NjEsIDAuNDc4NTY5LCAwLjU5NTM5OSwgMC43NjI4MzkiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjI2MjYsIDAuMTIxMDA1LCAwLjE3NTEyNCwgMC4yMTM2ODUsIDAuMjc1MzQ0LCAwLjMyOTI4NSwgMC40MDYzNTMiLCBcCi0gICAgICAgICAgIjAuMDcwNTQzLCAwLjEyODkwNCwgMC4xODMwMTksIDAuMjIxNTc5LCAwLjI4MzIzOSwgMC4zMzcxODEsIDAuNDE0Mjg5IiwgXAotICAgICAgICAgICIwLjA3ODIxOSwgMC4xMzY1ODMsIDAuMTkwNzAxLCAwLjIyOTI2MywgMC4yOTA5MjUsIDAuMzQ0ODYxLCAwLjQyMTk1OCIsIFwKLSAgICAgICAgICAiMC4wODM2LCAwLjE0MTk4LCAwLjE5NjA5NywgMC4yMzQ2NTksIDAuMjk2MzE3LCAwLjM1MDI1NiwgMC40MjczNjMiLCBcCi0gICAgICAgICAgIjAuMDg4MDI5LCAwLjE0NjQyMywgMC4yMDA1NDcsIDAuMjM5MTA3LCAwLjMwMDc2MiwgMC4zNTQ2OTksIDAuNDMxNzUiLCBcCi0gICAgICAgICAgIjAuMDk0MDEzLCAwLjE1MjM5NywgMC4yMDY1NzIsIDAuMjQ1MTQzLCAwLjMwNjc5MiwgMC4zNjA3NDEsIDAuNDM3NzYyIiwgXAotICAgICAgICAgICIwLjA5ODY0LCAwLjE1NzAwNywgMC4yMTA5OTksIDAuMjQ5NTc1LCAwLjMxMTI0MywgMC4zNjUxNzMsIDAuNDQyMjEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzAzNDYsIDAuMTM3NjY0LCAwLjI0Nzg1MiwgMC4zMjc2MzQsIDAuNDU1MzY0LCAwLjU2Njk0OSwgMC43MjY3ODQiLCBcCi0gICAgICAgICAgIjAuMDMwMzQ1LCAwLjEzNzY1OCwgMC4yNDc4NTMsIDAuMzI3NTg5LCAwLjQ1NTM1OCwgMC41NjY5OTQsIDAuNzI2NjQ3IiwgXAotICAgICAgICAgICIwLjAzMDI5OSwgMC4xMzc2NDQsIDAuMjQ3ODMsIDAuMzI3NTg4LCAwLjQ1NTMxNywgMC41NjY5MDMsIDAuNzI2NTcyIiwgXAotICAgICAgICAgICIwLjAzMDM0NSwgMC4xMzc2NjgsIDAuMjQ3ODc1LCAwLjMyNzU5MywgMC40NTUzMTYsIDAuNTY2OTg5LCAwLjcyNjU5MSIsIFwKLSAgICAgICAgICAiMC4wMzAzNzksIDAuMTM3NjQ4LCAwLjI0NzkyMiwgMC4zMjc2MTMsIDAuNDU1MjkxLCAwLjU2NjkzNCwgMC43MjY0ODEiLCBcCi0gICAgICAgICAgIjAuMDMwMzQ2LCAwLjEzNzY5NiwgMC4yNDc4NTcsIDAuMzI3NDI1LCAwLjQ1NDkzNCwgMC41NjcyOTgsIDAuNzI3Mzc3IiwgXAotICAgICAgICAgICIwLjAzMDM5LCAwLjEzNzU4OSwgMC4yNDc4MTEsIDAuMzI3NDMzLCAwLjQ1NDk1NSwgMC41NjY4NDgsIDAuNzI2NzgxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDgwNzQsIDAuMDA4MTczLCAwLjAwODE4OSwgMC4wMDgxOTQsIDAuMDA4MTk4LCAwLjAwODIwMSwgMC4wMDgyMDMiLCBcCi0gICAgICAgICAgIjAuMDA4MDQzLCAwLjAwODE1MywgMC4wMDgxNzMsIDAuMDA4MTgsIDAuMDA4MTg1LCAwLjAwODE4OCwgMC4wMDgxOTEiLCBcCi0gICAgICAgICAgIjAuMDA4MTA0LCAwLjAwODIwMiwgMC4wMDgyMjcsIDAuMDA4MjM1LCAwLjAwODI0MywgMC4wMDgyNDYsIDAuMDA4MjUiLCBcCi0gICAgICAgICAgIjAuMDA4MjIsIDAuMDA4MjkyLCAwLjAwODMxOCwgMC4wMDgzMjYsIDAuMDA4MzM0LCAwLjAwODMzOCwgMC4wMDgzNDIiLCBcCi0gICAgICAgICAgIjAuMDA4MzY2LCAwLjAwODQwNCwgMC4wMDg0MjksIDAuMDA4NDM4LCAwLjAwODQ0NiwgMC4wMDg0NTEsIDAuMDA4NDU1IiwgXAotICAgICAgICAgICIwLjAwODYxMiwgMC4wMDg2MSwgMC4wMDg2MzQsIDAuMDA4NjQxLCAwLjAwODY1LCAwLjAwODY1NCwgMC4wMDg2NTciLCBcCi0gICAgICAgICAgIjAuMDA4ODUsIDAuMDA4OCwgMC4wMDg4MTUsIDAuMDA4ODM2LCAwLjAwODg0NSwgMC4wMDg4MzYsIDAuMDA4ODM5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDk4OTksIDAuMDA5OTA4LCAwLjAwOTk0NiwgMC4wMDk5NTksIDAuMDA5OTcyLCAwLjAwOTk3OSwgMC4wMDk5ODUiLCBcCi0gICAgICAgICAgIjAuMDA5ODg0LCAwLjAwOTg4NiwgMC4wMDk5MjYsIDAuMDA5OTQyLCAwLjAwOTk1NiwgMC4wMDk5NjMsIDAuMDA5OTciLCBcCi0gICAgICAgICAgIjAuMDA5OTQ1LCAwLjAwOTg5NywgMC4wMDk5NDEsIDAuMDA5OTU5LCAwLjAwOTk3NSwgMC4wMDk5ODUsIDAuMDA5OTkzIiwgXAotICAgICAgICAgICIwLjAxMDE1MSwgMC4wMDk5ODUsIDAuMDEwMDExLCAwLjAxMDAyNCwgMC4wMTAwMzcsIDAuMDEwMDQ1LCAwLjAxMDA1MyIsIFwKLSAgICAgICAgICAiMC4wMTAyOTMsIDAuMDEwMDUyLCAwLjAxMDA3NCwgMC4wMTAwODcsIDAuMDEwMTAxLCAwLjAxMDExLCAwLjAxMDExOCIsIFwKLSAgICAgICAgICAiMC4wMTA1MzYsIDAuMDEwMTg4LCAwLjAxMDIwMSwgMC4wMTAyMDcsIDAuMDEwMjI1LCAwLjAxMDIzNSwgMC4wMTAyNDQiLCBcCi0gICAgICAgICAgIjAuMDEwODMzLCAwLjAxMDM2NywgMC4wMTAzNTUsIDAuMDEwMzU4LCAwLjAxMDM2OCwgMC4wMTAzNzIsIDAuMDEwMzgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwODExNSwgMC4wMDgyMzgsIDAuMDA4MjY2LCAwLjAwODI3NiwgMC4wMDgyODMsIDAuMDA4Mjg4LCAwLjAwODI5MiIsIFwKLSAgICAgICAgICAiMC4wMDgxNDQsIDAuMDA4MjcyLCAwLjAwODMwNywgMC4wMDgzMTcsIDAuMDA4MzI0LCAwLjAwODMzMSwgMC4wMDgzMzgiLCBcCi0gICAgICAgICAgIjAuMDA4Mjk0LCAwLjAwODM5NSwgMC4wMDg0MjUsIDAuMDA4NDM4LCAwLjAwODQ1LCAwLjAwODQ2MiwgMC4wMDg0NTYiLCBcCi0gICAgICAgICAgIjAuMDA4NDQxLCAwLjAwODU0NCwgMC4wMDg1NjYsIDAuMDA4NTgxLCAwLjAwODYwOSwgMC4wMDg2MTQsIDAuMDA4NjIyIiwgXAotICAgICAgICAgICIwLjAwODY1NiwgMC4wMDg3MDYsIDAuMDA4NzMzLCAwLjAwODc0OCwgMC4wMDg3NjksIDAuMDA4Nzc3LCAwLjAwODc4NCIsIFwKLSAgICAgICAgICAiMC4wMDg5NywgMC4wMDkwMDUsIDAuMDA5MDM5LCAwLjAwOTA1MywgMC4wMDkwNjcsIDAuMDA5MDczLCAwLjAwOTA1MSIsIFwKLSAgICAgICAgICAiMC4wMDkyODIsIDAuMDA5MjY5LCAwLjAwOTMwMSwgMC4wMDkzMTYsIDAuMDA5MzMxLCAwLjAwOTMzOSwgMC4wMDkzNDgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjQ1NSwgMC4wMDY1NTgsIDAuMDA2NTg0LCAwLjAwNjU5MywgMC4wMDY2MDEsIDAuMDA2NjA2LCAwLjAwNjYxIiwgXAotICAgICAgICAgICIwLjAwNjQzNSwgMC4wMDY1NDEsIDAuMDA2NTcsIDAuMDA2NTgsIDAuMDA2NTg5LCAwLjAwNjU5NSwgMC4wMDY1OTgiLCBcCi0gICAgICAgICAgIjAuMDA2NTI2LCAwLjAwNjYwNywgMC4wMDY2MzYsIDAuMDA2NjQ0LCAwLjAwNjY1NSwgMC4wMDY2NjEsIDAuMDA2NjY0IiwgXAotICAgICAgICAgICIwLjAwNjY4MiwgMC4wMDY3MzIsIDAuMDA2NzU5LCAwLjAwNjc2OCwgMC4wMDY3NzksIDAuMDA2NzgzLCAwLjAwNjc4NyIsIFwKLSAgICAgICAgICAiMC4wMDY4MjksIDAuMDA2ODM5LCAwLjAwNjg2MSwgMC4wMDY4NywgMC4wMDY4ODEsIDAuMDA2ODgyLCAwLjAwNjg4NyIsIFwKLSAgICAgICAgICAiMC4wMDcxMzQsIDAuMDA3MTAzLCAwLjAwNzEyMSwgMC4wMDcxMjYsIDAuMDA3MTM1LCAwLjAwNzEzNywgMC4wMDcxNDMiLCBcCi0gICAgICAgICAgIjAuMDA3Mzg2LCAwLjAwNzMxNCwgMC4wMDczMjQsIDAuMDA3MzI5LCAwLjAwNzMzNSwgMC4wMDczMzcsIDAuMDA3MzQiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IEFORDJYMiAqCi0gKiAtLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKEFORDJYMikgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjI5NjI3OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2NzI3OTc7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjcyNzk3OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDY3MjEwMjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyOTYsIDAuMDAwMjk2LCAwLjAwMDI5NiwgMC4wMDAyOTYsIDAuMDAwMjk2LCAwLjAwMDI5NiwgMC4wMDAyOTYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAzMTcsIDAuMDAwMzA1LCAwLjAwMDMwMSwgMC4wMDAyOTksIDAuMDAwMjk4LCAwLjAwMDI5OCwgMC4wMDAyOTgiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY4MzQwMjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2ODMyNzM7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjgzNDAyOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDE0OCwgMC4wMDAxNDcsIDAuMDAwMTQ3LCAwLjAwMDE0OCwgMC4wMDAxNDgsIDAuMDAwMTQ4LCAwLjAwMDE0OCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDMzNywgMC4wMDAzMzgsIDAuMDAwMzM3LCAwLjAwMDMzNywgMC4wMDAzMzgsIDAuMDAwMzM4LCAwLjAwMDMzOCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjY5NTU2MzsKLSAgICBmdW5jdGlvbiA6ICIoQSBCKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDUyNTkzLCAwLjEzMTE0MiwgMC4xOTI4MjQsIDAuMjcwMDE0LCAwLjM0Njk4MywgMC40MjQyMjYsIDAuNTAxMTY1IiwgXAotICAgICAgICAgICIwLjA1ODc1MiwgMC4xMzcyODQsIDAuMTk4OTY2LCAwLjI3NjA2LCAwLjM1MzE2NSwgMC40MzAzMjIsIDAuNTA3Mzg0IiwgXAotICAgICAgICAgICIwLjA2NTk2LCAwLjE0NDQ5NiwgMC4yMDYxNzMsIDAuMjgzMjgsIDAuMzYwMzgzLCAwLjQzNzQ5MSwgMC41MTQ2NzciLCBcCi0gICAgICAgICAgIjAuMDcyMjEsIDAuMTUwOTQ1LCAwLjIxMjY0NiwgMC4yODk2ODQsIDAuMzY2NzgyLCAwLjQ0Mzk4NSwgMC41MjExMzIiLCBcCi0gICAgICAgICAgIjAuMDc3NjM3LCAwLjE1NjQ0NiwgMC4yMTgxMDUsIDAuMjk1MTksIDAuMzcyMjc0LCAwLjQ0OTYyNiwgMC41MjY0NjkiLCBcCi0gICAgICAgICAgIjAuMDg0ODY1LCAwLjE2NDIwOSwgMC4yMjU4MzcsIDAuMzAyOTEsIDAuMzgsIDAuNDU3MDg4LCAwLjUzNDI0MyIsIFwKLSAgICAgICAgICAiMC4wOTA2NTQsIDAuMTcwMTg0LCAwLjIzMTgxNywgMC4zMDg4NzYsIDAuMzg2MDQ5LCAwLjQ2MzAyOCwgMC41NDAzMiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDM3MTEsIDAuMjAxNDczLCAwLjMzMTIyMSwgMC40OTI5NDcsIDAuNjU2NDU5LCAwLjgxNzg4MywgMC45ODIwMTEiLCBcCi0gICAgICAgICAgIjAuMDQzNjQ5LCAwLjIwMTUsIDAuMzMxMTk4LCAwLjQ5MzE5LCAwLjY1NTYxOCwgMC44MTc0OTUsIDAuOTgwNjk4IiwgXAotICAgICAgICAgICIwLjA0NDE0MiwgMC4yMDE3NDcsIDAuMzMxMjI4LCAwLjQ5MzcxNywgMC42NTU3MDEsIDAuODE3NzA4LCAwLjk4MTA1NCIsIFwKLSAgICAgICAgICAiMC4wNDUxMjEsIDAuMjAxOCwgMC4zMzEzMzgsIDAuNDkzNjY5LCAwLjY1NjM5MSwgMC44MTc0NzUsIDAuOTgxMTA4IiwgXAotICAgICAgICAgICIwLjA0NjAyMywgMC4yMDIwMjMsIDAuMzMwODIzLCAwLjQ5MzI0MiwgMC42NTY0MiwgMC44MTc5NCwgMC45ODAyMjIiLCBcCi0gICAgICAgICAgIjAuMDQ3NjIsIDAuMjAyNjQxLCAwLjMzMTQ2LCAwLjQ5MzIxOSwgMC42NTY0ODEsIDAuODE3NzcsIDAuOTgwOTM3IiwgXAotICAgICAgICAgICIwLjA0ODQzNSwgMC4yMDI3OTksIDAuMzMxNjM4LCAwLjQ5MzIyOCwgMC42NTU0OCwgMC44MTkyMTEsIDAuOTgwNDQ4Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0MTcwNSwgMC4xMTc5NjksIDAuMTc4NjAzLCAwLjI1NDM5LCAwLjMzMDE0MSwgMC40MDU5MDIsIDAuNDgxNjU4IiwgXAotICAgICAgICAgICIwLjA0OTc3MywgMC4xMjYwNzIsIDAuMTg2NzMyLCAwLjI2MjUzNCwgMC4zMzgyNTksIDAuNDE0MDUzLCAwLjQ4OTc4NSIsIFwKLSAgICAgICAgICAiMC4wNTg2NDEsIDAuMTM0OTM1LCAwLjE5NTU5MSwgMC4yNzEzNTcsIDAuMzQ3MTA4LCAwLjQyMjkwNiwgMC40OTg2MjQiLCBcCi0gICAgICAgICAgIjAuMDY1NDIyLCAwLjE0MTc5MSwgMC4yMDI0MzcsIDAuMjc4MjA0LCAwLjM1Mzk3MiwgMC40Mjk3MjQsIDAuNTA1NDg5IiwgXAotICAgICAgICAgICIwLjA3MDgyMywgMC4xNDcxNSwgMC4yMDc3NTksIDAuMjgzNTE1LCAwLjM1OTI4NSwgMC40MzUwNjgsIDAuNTEwODMiLCBcCi0gICAgICAgICAgIjAuMDc3Nzg4LCAwLjE1NDMxNSwgMC4yMTQ4ODYsIDAuMjkwNjM1LCAwLjM2NjM4MywgMC40NDIxMjQsIDAuNTE3ODc1IiwgXAotICAgICAgICAgICIwLjA4Mjc5OCwgMC4xNTk0MTQsIDAuMjIwMDA3LCAwLjI5NTc0NCwgMC4zNzE0OTksIDAuNDQ3MjM1LCAwLjUyMjk4MiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzg3NzEsIDAuMTkzOTA3LCAwLjMxOTM2LCAwLjQ3NzI5OSwgMC42MzQ3NzgsIDAuNzkyMjg4LCAwLjk0ODc2MiIsIFwKLSAgICAgICAgICAiMC4wMzg4MTUsIDAuMTkzODk2LCAwLjMxOTI1OCwgMC40NzYyNDQsIDAuNjM0NzUyLCAwLjc5MjQ1OSwgMC45NDg5MDEiLCBcCi0gICAgICAgICAgIjAuMDM5NjIsIDAuMTkzNjUsIDAuMzE5MTkyLCAwLjQ3NzMwMiwgMC42MzQwOSwgMC43OTI1MiwgMC45NDk4NTkiLCBcCi0gICAgICAgICAgIjAuMDQwNzMsIDAuMTk0MTIsIDAuMzE5NzQyLCAwLjQ3NjUwNywgMC42MzQ4NDQsIDAuNzkyMzczLCAwLjk0ODk0IiwgXAotICAgICAgICAgICIwLjA0MTc5NSwgMC4xOTQyNzksIDAuMzE5NTYsIDAuNDc2NzM1LCAwLjYzNDgxNiwgMC43OTIzODUsIDAuOTQ5OTk2IiwgXAotICAgICAgICAgICIwLjA0MzMwNCwgMC4xOTQ0NDgsIDAuMzE5NTM3LCAwLjQ3Njg4LCAwLjYzNDE5NywgMC43OTE0NzUsIDAuOTQ4ODE1IiwgXAotICAgICAgICAgICIwLjA0NDgzMSwgMC4xOTQ2MTcsIDAuMzE5ODMsIDAuNDc2OTQyLCAwLjYzMzk3MywgMC43OTE3MjQsIDAuOTQ5MDg5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1MTA5NywgMC4xMjk3NTMsIDAuMTkxNDMxLCAwLjI2ODUyNiwgMC4zNDU2MDUsIDAuNDIyODIsIDAuNDk5ODQiLCBcCi0gICAgICAgICAgIjAuMDU4NTcsIDAuMTM3MTE4LCAwLjE5ODgxLCAwLjI3NTk4NiwgMC4zNTMwMDksIDAuNDMwMTgyLCAwLjUwNzE3NSIsIFwKLSAgICAgICAgICAiMC4wNjc4OTYsIDAuMTQ2NDI2LCAwLjIwODExLCAwLjI4NTIzNiwgMC4zNjIzMjQsIDAuNDM5NDM2LCAwLjUxNjY1MSIsIFwKLSAgICAgICAgICAiMC4wNzYwMzgsIDAuMTU0ODIyLCAwLjIxNjQ5NCwgMC4yOTM1ODksIDAuMzcwNjQ4LCAwLjQ0NzgwOCwgMC41MjQ4NjIiLCBcCi0gICAgICAgICAgIjAuMDgyNTQ0LCAwLjE2MTQwOCwgMC4yMjMwODQsIDAuMzAwMTU4LCAwLjM3NzM5OCwgMC40NTQzNDIsIDAuNTMxNDYiLCBcCi0gICAgICAgICAgIjAuMDkxNjU2LCAwLjE3MDk5MywgMC4yMzI0MTUsIDAuMzA5NDM1LCAwLjM4NjUyNiwgMC40NjM3MDQsIDAuNTQwODI4IiwgXAotICAgICAgICAgICIwLjA5ODU4OCwgMC4xNzgwMzcsIDAuMjM5NDQ4LCAwLjMxNjQ0MSwgMC4zOTM0ODUsIDAuNDcwNTQzLCAwLjU0Nzg0NiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDM2NzcsIDAuMjAxNjY0LCAwLjMzMTIyNSwgMC40OTM3NTUsIDAuNjU1OTY3LCAwLjgxNzg1NiwgMC45ODA5NTMiLCBcCi0gICAgICAgICAgIjAuMDQzNjU3LCAwLjIwMTUyNSwgMC4zMzEyMTMsIDAuNDkyNzA2LCAwLjY1NTU5NSwgMC44MTc0ODEsIDAuOTgxMzkiLCBcCi0gICAgICAgICAgIjAuMDQ0MjgzLCAwLjIwMTc1NiwgMC4zMzEyMzYsIDAuNDkyODcsIDAuNjU1NzA2LCAwLjgxNzcwMiwgMC45ODA5MDQiLCBcCi0gICAgICAgICAgIjAuMDQ1NDcsIDAuMjAxNzM0LCAwLjMzMTMxNywgMC40OTMxMTksIDAuNjU1OTU3LCAwLjgxNzY2LCAwLjk4MTQ3MSIsIFwKLSAgICAgICAgICAiMC4wNDY3MDQsIDAuMjAyMjIxLCAwLjMzMDk1NiwgMC40OTM3NjcsIDAuNjU1NDI5LCAwLjgxODgyOSwgMC45ODAxMzgiLCBcCi0gICAgICAgICAgIjAuMDQ4MzM1LCAwLjIwMjc5OSwgMC4zMzE1MjYsIDAuNDkzODU4LCAwLjY1NjQ5OSwgMC44MTc0OTgsIDAuOTgwMzI1IiwgXAotICAgICAgICAgICIwLjA0OTk4MSwgMC4yMDMxMDEsIDAuMzMxNzMzLCAwLjQ5MzMzMywgMC42NTU4ODEsIDAuODE4MTIsIDAuOTgwNDU5Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0MDM4OSwgMC4xMTY2NjEsIDAuMTc3MzA0LCAwLjI1MzA4MywgMC4zMjg4NjUsIDAuNDA0NjAxLCAwLjQ4MDQ0MyIsIFwKLSAgICAgICAgICAiMC4wNDgzMDIsIDAuMTI0NTM1LCAwLjE4NTIwNywgMC4yNjEwNCwgMC4zMzY4MDQsIDAuNDEyNzEzLCAwLjQ4ODQwMyIsIFwKLSAgICAgICAgICAiMC4wNTY4NzMsIDAuMTMzMjA1LCAwLjE5Mzg4MywgMC4yNjk2NTgsIDAuMzQ1NTQxLCAwLjQyMTQyNywgMC40OTY5NiIsIFwKLSAgICAgICAgICAiMC4wNjMyMjksIDAuMTM5NjE2LCAwLjIwMDI4MSwgMC4yNzYwMTYsIDAuMzUxODYsIDAuNDI3OTAzLCAwLjUwMzYxMSIsIFwKLSAgICAgICAgICAiMC4wNjgyMDksIDAuMTQ0NDk5LCAwLjIwNTA4MywgMC4yODA4MzcsIDAuMzU2ODI3LCAwLjQzMjQyNCwgMC41MDgzMjEiLCBcCi0gICAgICAgICAgIjAuMDc0NjUsIDAuMTUxMjQsIDAuMjExNTAxLCAwLjI4NzM5NCwgMC4zNjMwODMsIDAuNDM5MDkxLCAwLjUxNDU4NiIsIFwKLSAgICAgICAgICAiMC4wNzkyOSwgMC4xNTU4MTYsIDAuMjE2NTQ5LCAwLjI5MjExOCwgMC4zNjc3OSwgMC40NDM1ODIsIDAuNTE5NDUzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzODU3MywgMC4xOTM4MDcsIDAuMzE5MTgyLCAwLjQ3NzI3MywgMC42MzQ5MzUsIDAuNzkyNDgxLCAwLjk0ODkzMSIsIFwKLSAgICAgICAgICAiMC4wMzg2OTQsIDAuMTkzODAzLCAwLjMxOTAyNiwgMC40NzY0MjcsIDAuNjM0NzYxLCAwLjc5MTE0MywgMC45NDg0OTgiLCBcCi0gICAgICAgICAgIjAuMDM5NTcxLCAwLjE5MzUwOSwgMC4zMTkxNiwgMC40NzY3NTksIDAuNjM0Mjg0LCAwLjc5MDk4OSwgMC45NDgyNjkiLCBcCi0gICAgICAgICAgIjAuMDQwNjk3LCAwLjE5NDA2MywgMC4zMTk4MDUsIDAuNDc3MzA4LCAwLjYzNDc1OSwgMC43OTEzMDEsIDAuOTQ4MzU5IiwgXAotICAgICAgICAgICIwLjA0MTczMywgMC4xOTQyODUsIDAuMzE5NzUyLCAwLjQ3NjM5MiwgMC42MzM3NzQsIDAuNzkwODI2LCAwLjk0OTA3NCIsIFwKLSAgICAgICAgICAiMC4wNDMzMzYsIDAuMTk0NDAzLCAwLjMxOTYwNiwgMC40NzY4MjEsIDAuNjMzNTk4LCAwLjc5MTEyNSwgMC45NDgyNjkiLCBcCi0gICAgICAgICAgIjAuMDQ0NjY5LCAwLjE5NDYyOSwgMC4zMTk3MzIsIDAuNDc3Mjg1LCAwLjYzNDEzOCwgMC43OTI2NDUsIDAuOTQ4NzA0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyODYyLCAwLjAwMjg4MSwgMC4wMDI4ODUsIDAuMDAyODgxLCAwLjAwMjg4NSwgMC4wMDI4ODIsIDAuMDAyODgyIiwgXAotICAgICAgICAgICIwLjAwMjgwNiwgMC4wMDI4NDEsIDAuMDAyODQ2LCAwLjAwMjg0NywgMC4wMDI4NSwgMC4wMDI4NSwgMC4wMDI4NTEiLCBcCi0gICAgICAgICAgIjAuMDAyODQ5LCAwLjAwMjg2OCwgMC4wMDI4NywgMC4wMDI4NzUsIDAuMDAyODc1LCAwLjAwMjg3NSwgMC4wMDI4NzUiLCBcCi0gICAgICAgICAgIjAuMDAyOTE3LCAwLjAwMjkyNSwgMC4wMDI5MjUsIDAuMDAyOTI5LCAwLjAwMjkyNiwgMC4wMDI5MjgsIDAuMDAyOTI4IiwgXAotICAgICAgICAgICIwLjAwMjk5MywgMC4wMDMwMDUsIDAuMDAzMDAzLCAwLjAwMzAwMiwgMC4wMDMwMDEsIDAuMDAzMDAyLCAwLjAwMyIsIFwKLSAgICAgICAgICAiMC4wMDMyMTUsIDAuMDAzMTQ1LCAwLjAwMzEzOSwgMC4wMDMxMzgsIDAuMDAzMTM1LCAwLjAwMzEzNiwgMC4wMDMxMzYiLCBcCi0gICAgICAgICAgIjAuMDAzMjk4LCAwLjAwMzI2MiwgMC4wMDMyNjEsIDAuMDAzMjYxLCAwLjAwMzI2MSwgMC4wMDMyNjMsIDAuMDAzMjYxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0MjM1LCAwLjAwNDI5MiwgMC4wMDQyOTgsIDAuMDA0MzAyLCAwLjAwNDMwNCwgMC4wMDQzMDUsIDAuMDA0MzA2IiwgXAotICAgICAgICAgICIwLjAwNDIyLCAwLjAwNDI5MiwgMC4wMDQzMDIsIDAuMDA0MzA4LCAwLjAwNDMxMSwgMC4wMDQzMTIsIDAuMDA0MzE0IiwgXAotICAgICAgICAgICIwLjAwNDI3NSwgMC4wMDQzMzIsIDAuMDA0MzQzLCAwLjAwNDM0OSwgMC4wMDQzNTIsIDAuMDA0MzU0LCAwLjAwNDM1NiIsIFwKLSAgICAgICAgICAiMC4wMDQzNjgsIDAuMDA0NDA3LCAwLjAwNDQxNywgMC4wMDQ0MjQsIDAuMDA0NDI4LCAwLjAwNDQzLCAwLjAwNDQzMSIsIFwKLSAgICAgICAgICAiMC4wMDQ0OTgsIDAuMDA0NTA0LCAwLjAwNDUxMiwgMC4wMDQ1MTgsIDAuMDA0NTIsIDAuMDA0NTIyLCAwLjAwNDUyMyIsIFwKLSAgICAgICAgICAiMC4wMDQ2NTIsIDAuMDA0NjgxLCAwLjAwNDY4NCwgMC4wMDQ2ODYsIDAuMDA0Njg4LCAwLjAwNDY4OSwgMC4wMDQ2OSIsIFwKLSAgICAgICAgICAiMC4wMDQ4OTgsIDAuMDA0ODMyLCAwLjAwNDgzMiwgMC4wMDQ4MzQsIDAuMDA0ODM2LCAwLjAwNDgzNywgMC4wMDQ4MzciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI4NTUsIDAuMDAyODg2LCAwLjAwMjg5NCwgMC4wMDI4OTIsIDAuMDAyODkzLCAwLjAwMjg5NCwgMC4wMDI4OTgiLCBcCi0gICAgICAgICAgIjAuMDAyODI3LCAwLjAwMjg3MSwgMC4wMDI4NzcsIDAuMDAyODgxLCAwLjAwMjg4NCwgMC4wMDI4ODQsIDAuMDAyODg1IiwgXAotICAgICAgICAgICIwLjAwMjkwNCwgMC4wMDI5MjQsIDAuMDAyOTI5LCAwLjAwMjkzNCwgMC4wMDI5MzYsIDAuMDAyOTM3LCAwLjAwMjkzOCIsIFwKLSAgICAgICAgICAiMC4wMDI5ODksIDAuMDAzMDAzLCAwLjAwMzAwNiwgMC4wMDMwMSwgMC4wMDMwMTIsIDAuMDAzMDEzLCAwLjAwMzAxNCIsIFwKLSAgICAgICAgICAiMC4wMDMxMTksIDAuMDAzMDgsIDAuMDAzMDgzLCAwLjAwMzA4NywgMC4wMDMwODgsIDAuMDAzMDkxLCAwLjAwMzA5IiwgXAotICAgICAgICAgICIwLjAwMzMwMiwgMC4wMDMyNTcsIDAuMDAzMjU3LCAwLjAwMzI1NSwgMC4wMDMyNTUsIDAuMDAzMjU3LCAwLjAwMzI1NiIsIFwKLSAgICAgICAgICAiMC4wMDM0OTcsIDAuMDAzNDIxLCAwLjAwMzQxNSwgMC4wMDM0MTEsIDAuMDAzNDExLCAwLjAwMzQxMSwgMC4wMDM0MSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzk2NSwgMC4wMDQwNDIsIDAuMDA0MDUsIDAuMDA0MDU1LCAwLjAwNDA1OCwgMC4wMDQwNTksIDAuMDA0MDYiLCBcCi0gICAgICAgICAgIjAuMDAzOTM2LCAwLjAwNDAyOCwgMC4wMDQwNDEsIDAuMDA0MDQ3LCAwLjAwNDA1MSwgMC4wMDQwNTMsIDAuMDA0MDU0IiwgXAotICAgICAgICAgICIwLjAwMzk4MiwgMC4wMDQwNjQsIDAuMDA0MDc4LCAwLjAwNDA4NiwgMC4wMDQwOSwgMC4wMDQwOTMsIDAuMDA0MDk0IiwgXAotICAgICAgICAgICIwLjAwNDA2NywgMC4wMDQxMzYsIDAuMDA0MTQ1LCAwLjAwNDE1OSwgMC4wMDQxNTksIDAuMDA0MTY2LCAwLjAwNDE2OCIsIFwKLSAgICAgICAgICAiMC4wMDQxNiwgMC4wMDQyMzIsIDAuMDA0MjQzLCAwLjAwNDI1LCAwLjAwNDI0NCwgMC4wMDQyNTYsIDAuMDA0MjU4IiwgXAotICAgICAgICAgICIwLjAwNDMyOCwgMC4wMDQzNzYsIDAuMDA0NDAyLCAwLjAwNDM5NywgMC4wMDQ0MTMsIDAuMDA0NDA0LCAwLjAwNDQxNyIsIFwKLSAgICAgICAgICAiMC4wMDQ0OSwgMC4wMDQ1MjUsIDAuMDA0NTQ2LCAwLjAwNDU0NCwgMC4wMDQ1NTksIDAuMDA0NTYzLCAwLjAwNDU2NCIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogQU5EMlg4ICoKLSAqIC0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoQU5EMlg4KSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDEuMDQ4MjU7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTgzNDA2OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTgzNDA2OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTgzMTE0OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTA0OSwgMC4wMDEwNDgsIDAuMDAxMDQ4LCAwLjAwMTA0NywgMC4wMDEwNDcsIDAuMDAxMDQ3LCAwLjAwMTA0NyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTEwNSwgMC4wMDEwNjksIDAuMDAxMDU5LCAwLjAwMTA1MywgMC4wMDEwNTIsIDAuMDAxMDUyLCAwLjAwMTA1MyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNzA4OTk7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNzA4MzE7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNzA4OTk7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNjQxLCAwLjAwMDY0LCAwLjAwMDY0LCAwLjAwMDYzOSwgMC4wMDA2NCwgMC4wMDA2NCwgMC4wMDA2NCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTE5MSwgMC4wMDExOTIsIDAuMDAxMTkyLCAwLjAwMTE5MiwgMC4wMDExOTIsIDAuMDAxMTkyLCAwLjAwMTE5MiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAyLjY1MzI4OwotICAgIGZ1bmN0aW9uIDogIihBIEIpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzODg5NiwgMC4wNzEwOTQsIDAuMDk5MDYyLCAwLjExODgwOSwgMC4xNTAzNTEsIDAuMTc3OTUsIDAuMjE3MzI0IiwgXAotICAgICAgICAgICIwLjA0NTMzLCAwLjA3NzQ2OSwgMC4xMDU0MDYsIDAuMTI1MTQ4LCAwLjE1NjY2NCwgMC4xODQyMjYsIDAuMjIzNTg0IiwgXAotICAgICAgICAgICIwLjA1MjkxNiwgMC4wODUwODMsIDAuMTEyOTg2LCAwLjEzMjcxMiwgMC4xNjQyMjYsIDAuMTkxNzk4LCAwLjIzMTE1NSIsIFwKLSAgICAgICAgICAiMC4wNTkzMjksIDAuMDkxODU4LCAwLjExOTgxNCwgMC4xMzk1MjUsIDAuMTcxMDYxLCAwLjE5ODYxNSwgMC4yMzc5ODIiLCBcCi0gICAgICAgICAgIjAuMDY0NzY2LCAwLjA5Nzc4NiwgMC4xMjU4MjYsIDAuMTQ1NTY5LCAwLjE3NzA3OCwgMC4yMDQ2MjMsIDAuMjQzOTg1IiwgXAotICAgICAgICAgICIwLjA3MjIxOCwgMC4xMDU5MzgsIDAuMTM0MTIzLCAwLjE1Mzg3LCAwLjE4NTQwOSwgMC4yMTI5NTcsIDAuMjUyMzAzIiwgXAotICAgICAgICAgICIwLjA3NzkxOCwgMC4xMTIyMDUsIDAuMTQwMzkzLCAwLjE2MDEzNSwgMC4xOTE2OTcsIDAuMjE5MTc2LCAwLjI1ODUxNiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyMTIxOCwgMC4wNzY0NDgsIDAuMTMyODEsIDAuMTczNjIzLCAwLjIzOTUxNSwgMC4yOTc0OTQsIDAuMzc5NzI0IiwgXAotICAgICAgICAgICIwLjAyMTEyLCAwLjA3NjQxOSwgMC4xMzI3NTMsIDAuMTczNTY1LCAwLjIzOTU0NCwgMC4yOTc1MywgMC4zODAzNzMiLCBcCi0gICAgICAgICAgIjAuMDIxNjU2LCAwLjA3NjY1OSwgMC4xMzI5MTYsIDAuMTczNjYxLCAwLjIzOTM5OSwgMC4yOTc1NTQsIDAuMzgwMzk0IiwgXAotICAgICAgICAgICIwLjAyMjYzOSwgMC4wNzczNTksIDAuMTMzMjY0LCAwLjE3MzkyNCwgMC4yMzk1NDIsIDAuMjk3MzEsIDAuMzgwNDc2IiwgXAotICAgICAgICAgICIwLjAyMzY4OCwgMC4wNzc5NTQsIDAuMTMzNzEsIDAuMTc0MjM4LCAwLjIzOTg5NiwgMC4yOTc0NjcsIDAuMzgwNDU5IiwgXAotICAgICAgICAgICIwLjAyNTExOSwgMC4wNzkyNjgsIDAuMTM0MzY0LCAwLjE3NDc1NywgMC4yNDAxMjMsIDAuMjk3NjQxLCAwLjM4MDY4NSIsIFwKLSAgICAgICAgICAiMC4wMjY1NDgsIDAuMDgwMzc1LCAwLjEzNTI0NiwgMC4xNzUyNDUsIDAuMjQwMzg0LCAwLjI5Nzg1MywgMC4zODA3MTIiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjg3OTgsIDAuMDU4ODY3LCAwLjA4NzE3MywgMC4xMDczNDksIDAuMTM5NjA3LCAwLjE2NzgzOCwgMC4yMDgxMjkiLCBcCi0gICAgICAgICAgIjAuMDM3MDM4LCAwLjA2NzA4OSwgMC4wOTU0MTEsIDAuMTE1NTkxLCAwLjE0Nzg1OSwgMC4xNzYwODksIDAuMjE2NDA0IiwgXAotICAgICAgICAgICIwLjA0NTkzOSwgMC4wNzYxMDcsIDAuMTA0NDA1LCAwLjEyNDU4OCwgMC4xNTY4NDQsIDAuMTg1MDYzLCAwLjIyNTM4MyIsIFwKLSAgICAgICAgICAiMC4wNTI2MzIsIDAuMDgzMjc2LCAwLjExMTU3MywgMC4xMzE3MzMsIDAuMTYzOTk3LCAwLjE5MjIwNSwgMC4yMzI1MDUiLCBcCi0gICAgICAgICAgIjAuMDU3ODUzLCAwLjA4ODgwMiwgMC4xMTcwODcsIDAuMTM3MjI4LCAwLjE2OTQ3MiwgMC4xOTc2ODksIDAuMjM3OTg1IiwgXAotICAgICAgICAgICIwLjA2NDU2LCAwLjA5NjEyOSwgMC4xMjQ0MjMsIDAuMTQ0NTkxLCAwLjE3Njc5MSwgMC4yMDQ5ODYsIDAuMjQ1MjgyIiwgXAotICAgICAgICAgICIwLjA2OTMzMiwgMC4xMDEzODgsIDAuMTI5NjUzLCAwLjE0OTc3OCwgMC4xODIwMzcsIDAuMjEwMjEyLCAwLjI1MDQ3NiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxNzA2MSwgMC4wNzMyNjQsIDAuMTMxMjc1LCAwLjE3Mjk4MywgMC4yMzk5MDIsIDAuMjk4MDg1LCAwLjM4MjMzOSIsIFwKLSAgICAgICAgICAiMC4wMTcxMDUsIDAuMDczMjcxLCAwLjEzMTI2MSwgMC4xNzI5NzIsIDAuMjM5ODc0LCAwLjI5ODA2MywgMC4zODI0NzciLCBcCi0gICAgICAgICAgIjAuMDE4NTc1LCAwLjA3MzYyOCwgMC4xMzE0MDEsIDAuMTczMDksIDAuMjM5OTQzLCAwLjI5ODIzNiwgMC4zODE4MzgiLCBcCi0gICAgICAgICAgIjAuMDE5ODc4LCAwLjA3NDI0NywgMC4xMzE1NTIsIDAuMTczMjQxLCAwLjIzOTcwNSwgMC4yOTgyNzYsIDAuMzgyNDI1IiwgXAotICAgICAgICAgICIwLjAyMTMzMiwgMC4wNzQ4ODQsIDAuMTMxOTE3LCAwLjE3MzI3MywgMC4yNDAwNjksIDAuMjk4MzM4LCAwLjM4MjQwOCIsIFwKLSAgICAgICAgICAiMC4wMjMwNywgMC4wNzYwMzksIDAuMTMyMzc4LCAwLjE3MzU4MiwgMC4yNDAxODksIDAuMjk4NDk0LCAwLjM4MjA2IiwgXAotICAgICAgICAgICIwLjAyNDQ5NSwgMC4wNzY5MjMsIDAuMTMzMTIyLCAwLjE3Mzg5NCwgMC4yNDAzMzYsIDAuMjk4NjEyLCAwLjM4MjIzNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzNzUzNCwgMC4wNjk2OTMsIDAuMDk3NjU5LCAwLjExNzM5NSwgMC4xNDg4ODIsIDAuMTc2NDczLCAwLjIxNTgyNyIsIFwKLSAgICAgICAgICAiMC4wNDUxMTcsIDAuMDc3MjgzLCAwLjEwNTIzNSwgMC4xMjQ5NiwgMC4xNTY0ODIsIDAuMTg0MDQ1LCAwLjIyMzM5MyIsIFwKLSAgICAgICAgICAiMC4wNTQ3MDMsIDAuMDg2ODk4LCAwLjExNDcwOSwgMC4xMzQ0MzgsIDAuMTY1OTU2LCAwLjE5MzUxLCAwLjIzMjg4MyIsIFwKLSAgICAgICAgICAiMC4wNjI2NjksIDAuMDk1MTU2LCAwLjEyMzA5NywgMC4xNDI4MDUsIDAuMTc0MzEyLCAwLjIwMTg5MiwgMC4yNDEyNCIsIFwKLSAgICAgICAgICAiMC4wNjkxODMsIDAuMTAyMTEyLCAwLjEzMDE5NiwgMC4xNDk5NDcsIDAuMTgxNDc3LCAwLjIwOTAyNiwgMC4yNDgzODciLCBcCi0gICAgICAgICAgIjAuMDc3OTk3LCAwLjExMTk3MiwgMC4xNDAxNTQsIDAuMTU5OTcsIDAuMTkxNTQ3LCAwLjIxOTE5NCwgMC4yNTgyMTYiLCBcCi0gICAgICAgICAgIjAuMDg0NTg3LCAwLjExOTMsIDAuMTQ3NDY0LCAwLjE2NzMsIDAuMTk4OTIxLCAwLjIyNjU0NiwgMC4yNjU1MjYiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjExNzYsIDAuMDc2NDY4LCAwLjEzMjcxNSwgMC4xNzM0OTcsIDAuMjM5MDQ5LCAwLjI5NzUxOSwgMC4zODAzODYiLCBcCi0gICAgICAgICAgIjAuMDIxMDc5LCAwLjA3NjQzNSwgMC4xMzI3OTEsIDAuMTczNTc0LCAwLjIzOTU2OSwgMC4yOTc0MjgsIDAuMzgwMzc0IiwgXAotICAgICAgICAgICIwLjAyMTg3MiwgMC4wNzY3MTUsIDAuMTMyOTM2LCAwLjE3MzcwNiwgMC4yMzk2MjEsIDAuMjk3Mzg3LCAwLjM4MDQyOCIsIFwKLSAgICAgICAgICAiMC4wMjM0NTIsIDAuMDc3NTc3LCAwLjEzMzM5NCwgMC4xNzQwMTksIDAuMjM5NjMxLCAwLjI5NzY3MywgMC4zODA1MDgiLCBcCi0gICAgICAgICAgIjAuMDI0OTUzLCAwLjA3ODU1NywgMC4xMzQsIDAuMTc0NDM3LCAwLjIzOTgwOSwgMC4yOTc3NywgMC4zODA0OTkiLCBcCi0gICAgICAgICAgIjAuMDI3MDc1LCAwLjA3OTk4NSwgMC4xMzQ3ODksIDAuMTc1MDk3LCAwLjI0MDI3MiwgMC4yOTc4NjMsIDAuMzgwNDM3IiwgXAotICAgICAgICAgICIwLjAyODY0MywgMC4wODExLCAwLjEzNTU2NSwgMC4xNzU1OTIsIDAuMjQwNjM0LCAwLjI5ODA4NSwgMC4zODA0OTgiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjgxNzUsIDAuMDU4MzM1LCAwLjA4NjY0MywgMC4xMDY4MTcsIDAuMTM5MDc1LCAwLjE2NzMyNiwgMC4yMDc2MzEiLCBcCi0gICAgICAgICAgIjAuMDM2MzY2LCAwLjA2NjQyOSwgMC4wOTQ3MzcsIDAuMTE0OTEzLCAwLjE0NzE3LCAwLjE3NTQyNiwgMC4yMTU3MTIiLCBcCi0gICAgICAgICAgIjAuMDQ1MDE1LCAwLjA3NTI0NiwgMC4xMDM1MzcsIDAuMTIzNzE0LCAwLjE1NTk3MSwgMC4xODQxNzYsIDAuMjI0NTA0IiwgXAotICAgICAgICAgICIwLjA1MTM0LCAwLjA4MjAxNSwgMC4xMTAzNDgsIDAuMTMwNTA0LCAwLjE2Mjc1NSwgMC4xOTA5ODMsIDAuMjMxMjc4IiwgXAotICAgICAgICAgICIwLjA1NjMxOCwgMC4wODczMywgMC4xMTU3NzUsIDAuMTM1OTcyLCAwLjE2Nzk4MiwgMC4xOTYxODcsIDAuMjM2NDYzIiwgXAotICAgICAgICAgICIwLjA2MjU1OCwgMC4wOTQyNDUsIDAuMTIyNjQ1LCAwLjE0MjU1MywgMC4xNzQ3NTYsIDAuMjAzMDQ0LCAwLjI0MzMxMyIsIFwKLSAgICAgICAgICAiMC4wNjcwNDYsIDAuMDk5MTQ4LCAwLjEyNzcyOCwgMC4xNDc5MzksIDAuMTgwMDI4LCAwLjIwODAzMiwgMC4yNDgzODgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTcwOCwgMC4wNzMyODEsIDAuMTMxMjUzLCAwLjE3Mjk4LCAwLjIzOTkwNiwgMC4yOTc5OTcsIDAuMzgxNjkzIiwgXAotICAgICAgICAgICIwLjAxNzE1OCwgMC4wNzMzMjYsIDAuMTMxMjc1LCAwLjE3Mjk3MywgMC4yMzk4NTcsIDAuMjk3OTY4LCAwLjM4MjM4NyIsIFwKLSAgICAgICAgICAiMC4wMTg1ODQsIDAuMDczNzgsIDAuMTMxMzMyLCAwLjE3MzExNywgMC4yNDAwMDIsIDAuMjk4NTMzLCAwLjM4MjU0MSIsIFwKLSAgICAgICAgICAiMC4wMjAxNjcsIDAuMDc0NDY2LCAwLjEzMTgyNywgMC4xNzMwODcsIDAuMjQwMDYsIDAuMjk4NzIzLCAwLjM4MjQwMyIsIFwKLSAgICAgICAgICAiMC4wMjE0NjEsIDAuMDc1MjIzLCAwLjEzMjA4NCwgMC4xNzM1NjEsIDAuMjQwMjAxLCAwLjI5ODMyNiwgMC4zODI1ODciLCBcCi0gICAgICAgICAgIjAuMDIzMzc3LCAwLjA3NjQzLCAwLjEzMjYwMywgMC4xNzM2NDcsIDAuMjQwMjg2LCAwLjI5ODg3NiwgMC4zODI1ODUiLCBcCi0gICAgICAgICAgIjAuMDI0ODcyLCAwLjA3NzQ4OSwgMC4xMzM0MDMsIDAuMTc0MDM0LCAwLjI0MDMyNCwgMC4yOTg1MzksIDAuMzgyNjcxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTA2ODksIDAuMDEwODQyLCAwLjAxMDg5NywgMC4wMTA5MTEsIDAuMDEwOTI3LCAwLjAxMDkzNSwgMC4wMTA5MzYiLCBcCi0gICAgICAgICAgIjAuMDEwNDU5LCAwLjAxMDY1MiwgMC4wMTA3MywgMC4wMTA3NjUsIDAuMDEwNzc3LCAwLjAxMDc5NSwgMC4wMTA4MTEiLCBcCi0gICAgICAgICAgIjAuMDEwNjUxLCAwLjAxMDY5OCwgMC4wMTA3NzEsIDAuMDEwNzkxLCAwLjAxMDgyMSwgMC4wMTA4MjksIDAuMDEwODQ3IiwgXAotICAgICAgICAgICIwLjAxMDk2MiwgMC4wMTA4NTEsIDAuMDEwOTA0LCAwLjAxMDkyNSwgMC4wMTA5NDcsIDAuMDEwOTU2LCAwLjAxMDk3NSIsIFwKLSAgICAgICAgICAiMC4wMTExMzIsIDAuMDEwOTg0LCAwLjAxMTA1MiwgMC4wMTEwNjQsIDAuMDExMDkxLCAwLjAxMTEwNywgMC4wMTExMjIiLCBcCi0gICAgICAgICAgIjAuMDExNjc1LCAwLjAxMTM2NywgMC4wMTEzOTcsIDAuMDExNDI3LCAwLjAxMTQ1MiwgMC4wMTE0NTQsIDAuMDExNDgiLCBcCi0gICAgICAgICAgIjAuMDEyNTEyLCAwLjAxMTc4NiwgMC4wMTE3OTksIDAuMDExODEzLCAwLjAxMTgxMiwgMC4wMTE4MjQsIDAuMDExODQzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTQyODIsIDAuMDE0NzE2LCAwLjAxNDgwNiwgMC4wMTQ4MzYsIDAuMDE0ODYzLCAwLjAxNDg3NywgMC4wMTQ4ODkiLCBcCi0gICAgICAgICAgIjAuMDE0MjA4LCAwLjAxNDYxNiwgMC4wMTQ3MzYsIDAuMDE0Nzc4LCAwLjAxNDgxNywgMC4wMTQ4MzgsIDAuMDE0ODU3IiwgXAotICAgICAgICAgICIwLjAxNDUyNCwgMC4wMTQ3MTYsIDAuMDE0ODI5LCAwLjAxNDg4LCAwLjAxNDkyNSwgMC4wMTQ5NSwgMC4wMTQ5NzMiLCBcCi0gICAgICAgICAgIjAuMDE0NzkyLCAwLjAxNDg3OCwgMC4wMTQ5ODQsIDAuMDE1MDMsIDAuMDE1MDc2LCAwLjAxNTA5OCwgMC4wMTUxMjYiLCBcCi0gICAgICAgICAgIjAuMDE1MzA1LCAwLjAxNTE3NywgMC4wMTUyNDgsIDAuMDE1Mjg1LCAwLjAxNTMyNSwgMC4wMTUzNDUsIDAuMDE1MzciLCBcCi0gICAgICAgICAgIjAuMDE1Nzg5LCAwLjAxNTcyNiwgMC4wMTU3MzksIDAuMDE1NzU5LCAwLjAxNTc4NiwgMC4wMTU4MDYsIDAuMDE1ODIyIiwgXAotICAgICAgICAgICIwLjAxNjM2OCwgMC4wMTYxNzIsIDAuMDE2MTU1LCAwLjAxNjE2NiwgMC4wMTYxODUsIDAuMDE2MiwgMC4wMTYyMTYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMDY1OSwgMC4wMTA4MzgsIDAuMDEwOTAyLCAwLjAxMDkyNCwgMC4wMTA5NTQsIDAuMDEwOTUzLCAwLjAxMDkyOSIsIFwKLSAgICAgICAgICAiMC4wMTA0OTksIDAuMDEwNjkxLCAwLjAxMDc3NywgMC4wMTA4MDgsIDAuMDEwODM3LCAwLjAxMDg1MiwgMC4wMTA4NjgiLCBcCi0gICAgICAgICAgIjAuMDEwNzk1LCAwLjAxMDgxNCwgMC4wMTA5MTMsIDAuMDEwOTMyLCAwLjAxMDk1LCAwLjAxMDk2MSwgMC4wMTA5ODQiLCBcCi0gICAgICAgICAgIjAuMDExMjM5LCAwLjAxMTA2NiwgMC4wMTEwOTcsIDAuMDExMTM2LCAwLjAxMTE0MywgMC4wMTExNTcsIDAuMDExMTcxIiwgXAotICAgICAgICAgICIwLjAxMTc0OSwgMC4wMTEyNjksIDAuMDExMzM0LCAwLjAxMTM1NiwgMC4wMTEzNzksIDAuMDExMzg1LCAwLjAxMTM4MyIsIFwKLSAgICAgICAgICAiMC4wMTIzMTQsIDAuMDExNzk5LCAwLjAxMTgxOSwgMC4wMTE4MywgMC4wMTE4NDMsIDAuMDExODYxLCAwLjAxMTg2MyIsIFwKLSAgICAgICAgICAiMC4wMTMwMTgsIDAuMDEyMjc3LCAwLjAxMjI3NCwgMC4wMTIyNzMsIDAuMDEyMjg2LCAwLjAxMjI5LCAwLjAxMjI5NSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEzMzQsIDAuMDEzODQ1LCAwLjAxMzk0NCwgMC4wMTM5NzcsIDAuMDE0MDA2LCAwLjAxNDAyMiwgMC4wMTQwMzUiLCBcCi0gICAgICAgICAgIjAuMDEzMjQ5LCAwLjAxMzcxNCwgMC4wMTM4NDEsIDAuMDEzODg1LCAwLjAxMzkyNiwgMC4wMTM5NDcsIDAuMDEzOTY3IiwgXAotICAgICAgICAgICIwLjAxMzUxLCAwLjAxMzg0NSwgMC4wMTM5NjQsIDAuMDE0MDExLCAwLjAxNDA1NiwgMC4wMTQwODEsIDAuMDE0MTA0IiwgXAotICAgICAgICAgICIwLjAxMzg4NywgMC4wMTM5MTksIDAuMDE0MDQ4LCAwLjAxNDEsIDAuMDE0MTUzLCAwLjAxNDE4MiwgMC4wMTQyMDkiLCBcCi0gICAgICAgICAgIjAuMDE0Mjc5LCAwLjAxNDIyNSwgMC4wMTQzMTEsIDAuMDE0MzUzLCAwLjAxNDM5NCwgMC4wMTQ0MTksIDAuMDE0NDQ1IiwgXAotICAgICAgICAgICIwLjAxNDY4NywgMC4wMTQ2NzQsIDAuMDE0NzE3LCAwLjAxNDgyNSwgMC4wMTQ4NTgsIDAuMDE0ODA2LCAwLjAxNDgzIiwgXAotICAgICAgICAgICIwLjAxNTMwNSwgMC4wMTUxMzIsIDAuMDE1MDg1LCAwLjAxNTE0NCwgMC4wMTUxOSwgMC4wMTUyMTEsIDAuMDE1MjQ2Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBBTkQzWDIgKgotICogLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChBTkQzWDIpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4zMzMxOwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2NTk4NDE7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjU5ODQxOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDY1ODk2NjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyOTYsIDAuMDAwMjk2LCAwLjAwMDI5NiwgMC4wMDAyOTYsIDAuMDAwMjk2LCAwLjAwMDI5NiwgMC4wMDAyOTYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyOTcsIDAuMDAwMjk3LCAwLjAwMDI5NywgMC4wMDAyOTcsIDAuMDAwMjk3LCAwLjAwMDI5NywgMC4wMDAyOTciKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY3NTMyMTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2NzUzMjE7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjc0NzI0OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDI5NiwgMC4wMDAyOTYsIDAuMDAwMjk2LCAwLjAwMDI5NiwgMC4wMDAyOTYsIDAuMDAwMjk2LCAwLjAwMDI5NiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDI5NywgMC4wMDAyOTcsIDAuMDAwMjk3LCAwLjAwMDI5NywgMC4wMDAyOTcsIDAuMDAwMjk3LCAwLjAwMDI5NyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQykgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjcwMzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2NzAyNDQ7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjcwMzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxNDcsIDAuMDAwMTQ3LCAwLjAwMDE0NywgMC4wMDAxNDcsIDAuMDAwMTQ3LCAwLjAwMDE0NywgMC4wMDAxNDciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAzMzcsIDAuMDAwMzM4LCAwLjAwMDMzNywgMC4wMDAzMzcsIDAuMDAwMzM4LCAwLjAwMDMzOCwgMC4wMDAzMzgiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC42ODc1MTc7Ci0gICAgZnVuY3Rpb24gOiAiKChBIEIpIEMpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzE2NCwgMC4xNTMxNDIsIDAuMjE0ODk2LCAwLjI5MjAwOCwgMC4zNjkwODEsIDAuNDQ2MjUxLCAwLjUyMzMwNCIsIFwKLSAgICAgICAgICAiMC4wNzY2MjIsIDAuMTU4MTM3LCAwLjIxOTg4LCAwLjI5Njk4OCwgMC4zNzQwNiwgMC40NTEzMDksIDAuNTI4Mjc1IiwgXAotICAgICAgICAgICIwLjA4MjIzNCwgMC4xNjM2NTEsIDAuMjI1NDEsIDAuMzAyNTI2LCAwLjM3OTU5OCwgMC40NTY4NTgsIDAuNTMzODE2IiwgXAotICAgICAgICAgICIwLjA4NzQ0OCwgMC4xNjg5NzYsIDAuMjMwNzI2LCAwLjMwNzgzOCwgMC4zODQ5MDYsIDAuNDYyMTY0LCAwLjUzOTEyNSIsIFwKLSAgICAgICAgICAiMC4wOTIyNjQsIDAuMTc0MDM1LCAwLjIzNTc3LCAwLjMxMjg5NiwgMC4zODk5NDksIDAuNDY3MjM4LCAwLjU0NDMzMyIsIFwKLSAgICAgICAgICAiMC4wOTkxNDUsIDAuMTgxNDI3LCAwLjI0MzE5NSwgMC4zMjAyNTksIDAuMzk3NDMyLCAwLjQ3NDQyMywgMC41NTE2MjEiLCBcCi0gICAgICAgICAgIjAuMTA0NTc3LCAwLjE4NzI2MiwgMC4yNDkwMzcsIDAuMzI2MTMxLCAwLjQwMzE5NCwgMC40ODAyODksIDAuNTU3MzU0Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0OTU3NywgMC4yMDUxNzgsIDAuMzMzMTUxLCAwLjQ5NTMxNSwgMC42NTc0OTcsIDAuODE4OTUsIDAuOTgyOTg4IiwgXAotICAgICAgICAgICIwLjA0OTQsIDAuMjA1MTgzLCAwLjMzMzQxNSwgMC40OTUyNTQsIDAuNjU3NDMyLCAwLjgxODUwNiwgMC45ODI5NDMiLCBcCi0gICAgICAgICAgIjAuMDQ5NDkzLCAwLjIwNTE0NCwgMC4zMzM0MSwgMC40OTUyOTUsIDAuNjU3NDQxLCAwLjgxODQ5OSwgMC45ODI5NDUiLCBcCi0gICAgICAgICAgIjAuMDUwMDc4LCAwLjIwNTIyLCAwLjMzMzQ3MSwgMC40OTUyODgsIDAuNjU3NDE4LCAwLjgxODUwNSwgMC45ODI4NSIsIFwKLSAgICAgICAgICAiMC4wNTA4OTcsIDAuMjA1NjUxLCAwLjMzMzYxNCwgMC40OTUzODMsIDAuNjU3NDgsIDAuODE4OTA3LCAwLjk4MTMzMyIsIFwKLSAgICAgICAgICAiMC4wNTE5NTUsIDAuMjA2MjMyLCAwLjMzMzU2NywgMC40OTUyMDIsIDAuNjU2NTg2LCAwLjgyMDE0MSwgMC45ODExNiIsIFwKLSAgICAgICAgICAiMC4wNTMwMDYsIDAuMjA2NjkyLCAwLjMzNDAyNSwgMC40OTQ5ODQsIDAuNjU3NTkxLCAwLjgyMDI0MSwgMC45ODI4NDQiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQ1MjYsIDAuMTIxNzk0LCAwLjE4MjQ3NCwgMC4yNTgyOTMsIDAuMzM0MDY1LCAwLjQwOTg5NywgMC40ODU2MDkiLCBcCi0gICAgICAgICAgIjAuMDUzMzcyLCAwLjEyOTkyMSwgMC4xOTA2MDUsIDAuMjY2NDEzLCAwLjM0MjE5OSwgMC40MTc5NzcsIDAuNDkzNzQ5IiwgXAotICAgICAgICAgICIwLjA2Mjc2MiwgMC4xMzkzMDksIDAuMTk5OTgyLCAwLjI3NTgxLCAwLjM1MTU4NCwgMC40MjczNTEsIDAuNTAzMTI5IiwgXAotICAgICAgICAgICIwLjA3MDA5MSwgMC4xNDY3MjMsIDAuMjA3NDA2LCAwLjI4MzE5NiwgMC4zNTg5OSwgMC40MzQ3NiwgMC41MTA1MzMiLCBcCi0gICAgICAgICAgIjAuMDc1OTA4LCAwLjE1Mjc1MSwgMC4yMTM0MjQsIDAuMjg5MTk1LCAwLjM2NDk3OCwgMC40NDA3NTUsIDAuNTE2NTQiLCBcCi0gICAgICAgICAgIjAuMDgzNjM1LCAwLjE2MDU3OCwgMC4yMjEyMTYsIDAuMjk2OTg2LCAwLjM3Mjc2OCwgMC40NDg1NjYsIDAuNTI0MzQ0IiwgXAotICAgICAgICAgICIwLjA4OTEyNiwgMC4xNjYyNzgsIDAuMjI2ODkyLCAwLjMwMjY3MiwgMC4zNzg0NDcsIDAuNDU0MjI4LCAwLjUzMDAxMSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzk2MzYsIDAuMTkzODk3LCAwLjMxOTk3OSwgMC40Nzc0ODQsIDAuNjM1MDM3LCAwLjc5MjY1NiwgMC45NTAxNTYiLCBcCi0gICAgICAgICAgIjAuMDM5NjI1LCAwLjE5NDIzNiwgMC4zMTk2NDMsIDAuNDc2OTg1LCAwLjYzNTAwNiwgMC43OTI2MDQsIDAuOTUwMTgiLCBcCi0gICAgICAgICAgIjAuMDQwMjc4LCAwLjE5NDMwOCwgMC4zMTk5MjIsIDAuNDc3NDg5LCAwLjYzNTA0NSwgMC43OTI1NiwgMC45NTAxNjIiLCBcCi0gICAgICAgICAgIjAuMDQxNDAzLCAwLjE5NDI1NywgMC4zMTk1NjYsIDAuNDc3NDYzLCAwLjYzNTA1NCwgMC43OTI2MDEsIDAuOTUwMTY4IiwgXAotICAgICAgICAgICIwLjA0MjU4OSwgMC4xOTQ2ODQsIDAuMzE5NDU2LCAwLjQ3NzQ5OCwgMC42MzQzMzEsIDAuNzkxNzI3LCAwLjk1MDI0MSIsIFwKLSAgICAgICAgICAiMC4wNDQxMTEsIDAuMTk0OTA3LCAwLjMxOTc4OSwgMC40Nzc0NDksIDAuNjM0OTYzLCAwLjc5MjQzNiwgMC45NTAwMDciLCBcCi0gICAgICAgICAgIjAuMDQ1NDIzLCAwLjE5NTAxMywgMC4zMTk4MzYsIDAuNDc3MzY4LCAwLjYzNDg5OCwgMC43OTE5NzQsIDAuOTQ4ODg0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2OTg0OCwgMC4xNTEzNTIsIDAuMjEzMTI3LCAwLjI5MDI0MiwgMC4zNjczMTQsIDAuNDQ0NDc5LCAwLjUyMTU0IiwgXAotICAgICAgICAgICIwLjA3NTg3OCwgMC4xNTczNjUsIDAuMjE5MTM4LCAwLjI5NjI1MSwgMC4zNzMzMjYsIDAuNDUwNTk0LCAwLjUyNzU0OCIsIFwKLSAgICAgICAgICAiMC4wODM3MDksIDAuMTY1MTAxLCAwLjIyNjg1OSwgMC4zMDM5NiwgMC4zODEwNTksIDAuNDU4MTc0LCAwLjUzNTI0MSIsIFwKLSAgICAgICAgICAiMC4wOTA4ODcsIDAuMTcyMzg5LCAwLjIzNDEyNSwgMC4zMTEyMTcsIDAuMzg4MzUyLCAwLjQ2NTM4MSwgMC41NDI2NDgiLCBcCi0gICAgICAgICAgIjAuMDk3NjAxLCAwLjE3OTMwNSwgMC4yNDEwNjIsIDAuMzE4MTc4LCAwLjM5NTIzNiwgMC40NzI0NzYsIDAuNTQ5NDY4IiwgXAotICAgICAgICAgICIwLjEwNjk0NCwgMC4xODkyMzcsIDAuMjUwOTk0LCAwLjMyODExLCAwLjQwNTE2OCwgMC40ODIzMDgsIDAuNTU5NDE3IiwgXAotICAgICAgICAgICIwLjExNDI4NiwgMC4xOTY5NDgsIDAuMjU4NzA5LCAwLjMzNTc3MiwgMC40MTI4NjksIDAuNDg5OTA1LCAwLjU2NzEwNiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDk1OTcsIDAuMjA1MDU2LCAwLjMzMzE0OSwgMC40OTUzMTIsIDAuNjU3NTA5LCAwLjgxODkyMiwgMC45ODI5ODkiLCBcCi0gICAgICAgICAgIjAuMDQ5NDk0LCAwLjIwNTE5NSwgMC4zMzMxNCwgMC40OTUyOSwgMC42NTc0NTUsIDAuODE4ODg1LCAwLjk4Mjk1NiIsIFwKLSAgICAgICAgICAiMC4wNDk0NiwgMC4yMDUyMDEsIDAuMzMzMzg0LCAwLjQ5NDU3NiwgMC42NTc2MDksIDAuODE5Mjc2LCAwLjk4MTU3NSIsIFwKLSAgICAgICAgICAiMC4wNTAyMzgsIDAuMjA1NDQzLCAwLjMzMzQ4NCwgMC40OTUxMzQsIDAuNjU3NjE3LCAwLjgyMDEwNiwgMC45ODA4NiIsIFwKLSAgICAgICAgICAiMC4wNTEwMTIsIDAuMjA1NjkzLCAwLjMzMzYyNiwgMC40OTUzNjIsIDAuNjU3NTExLCAwLjgxODUyNSwgMC45ODI4ODIiLCBcCi0gICAgICAgICAgIjAuMDUyNTMyLCAwLjIwNjMyMiwgMC4zMzM2MSwgMC40OTU1NTQsIDAuNjU2ODM0LCAwLjgxODY4OSwgMC45ODExOTUiLCBcCi0gICAgICAgICAgIjAuMDUzNjM2LCAwLjIwNjk1NSwgMC4zMzQxMDUsIDAuNDk1NTU5LCAwLjY1NzgzNSwgMC44MjAwODYsIDAuOTgxMjA5Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0Mzk5NywgMC4xMjA0NDMsIDAuMTgxMDkxLCAwLjI1Njg4NSwgMC4zMzI2NTgsIDAuNDA4NDI1LCAwLjQ4NDIwOSIsIFwKLSAgICAgICAgICAiMC4wNTIwODcsIDAuMTI4NTUzLCAwLjE4OTIxMSwgMC4yNjUwMjYsIDAuMzQwNzc3LCAwLjQxNjU3NiwgMC40OTIzMjYiLCBcCi0gICAgICAgICAgIjAuMDYxMTM0LCAwLjEzNzYxMywgMC4xOTgyNzIsIDAuMjc0MDgxLCAwLjM0OTg0NSwgMC40MjU2MTIsIDAuNTAxMzc2IiwgXAotICAgICAgICAgICIwLjA2ODE2LCAwLjE0NDc1MiwgMC4yMDUzOTksIDAuMjgxMTk2LCAwLjM1Njk2MiwgMC40MzI3NDMsIDAuNTA4NDk4IiwgXAotICAgICAgICAgICIwLjA3Mzc3NCwgMC4xNTA0MzIsIDAuMjExMDY3LCAwLjI4Njg4LCAwLjM2MjczMSwgMC40Mzg0MDcsIDAuNTE0MTY1IiwgXAotICAgICAgICAgICIwLjA4MDg4NywgMC4xNTc5MjksIDAuMjE4NTQsIDAuMjk0MTA3LCAwLjM2OTg5MiwgMC40NDU4NjEsIDAuNTIxNDExIiwgXAotICAgICAgICAgICIwLjA4NjEzMiwgMC4xNjMxMDgsIDAuMjIzNzY3LCAwLjI5OTUwMiwgMC4zNzUyNiwgMC40NTEwMzIsIDAuNTI2ODE0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzOTM1LCAwLjE5NDA3NiwgMC4zMTk3MzksIDAuNDc2ODA3LCAwLjYzNDkwOSwgMC43OTI0NDgsIDAuOTQ5MTczIiwgXAotICAgICAgICAgICIwLjAzOTM1MywgMC4xOTQwNzksIDAuMzE5ODMzLCAwLjQ3NzQyMywgMC42MzQ5MDcsIDAuNzkxMjMzLCAwLjk0OTEwNCIsIFwKLSAgICAgICAgICAiMC4wNDAwODksIDAuMTkzODQ5LCAwLjMxOTgwNCwgMC40NzczOTgsIDAuNjM0OTE4LCAwLjc5MjQyMSwgMC45NTAwNDYiLCBcCi0gICAgICAgICAgIjAuMDQxMTkyLCAwLjE5NDA0MywgMC4zMTk1MTksIDAuNDc2OTM4LCAwLjYzNDg5OSwgMC43OTI1MjcsIDAuOTUwMDY0IiwgXAotICAgICAgICAgICIwLjA0MjM3MiwgMC4xOTQyOTksIDAuMzE5ODk1LCAwLjQ3NjU0MywgMC42MzQxOCwgMC43OTI1NTcsIDAuOTUwMTQ5IiwgXAotICAgICAgICAgICIwLjA0NDE0NywgMC4xOTQ3ODgsIDAuMzE5Njk3LCAwLjQ3NzI3NywgMC42MzQxODMsIDAuNzkyMzk1LCAwLjk1MDA5MiIsIFwKLSAgICAgICAgICAiMC4wNDU0NiwgMC4xOTQ5MjEsIDAuMzE5OTU0LCAwLjQ3Njc5MSwgMC42MzQzMzEsIDAuNzkxNDYzLCAwLjk0OTA2NCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjY4NywgMC4xNDg0MzUsIDAuMjEwMTQ5LCAwLjI4NzI2OCwgMC4zNjQzNDEsIDAuNDQxNjAyLCAwLjUxODU2IiwgXAotICAgICAgICAgICIwLjA3Mzg2MiwgMC4xNTUzOTEsIDAuMjE3MTU1LCAwLjI5NDI3NSwgMC4zNzEzNTIsIDAuNDQ4NjE2LCAwLjUyNTU3MyIsIFwKLSAgICAgICAgICAiMC4wODMwNzQsIDAuMTY0NDk4LCAwLjIyNjI1MywgMC4zMDMzNzUsIDAuMzgwNDUsIDAuNDU3NzIzLCAwLjUzNDY3MiIsIFwKLSAgICAgICAgICAiMC4wOTE4NTUsIDAuMTczNTE5LCAwLjIzNTI1OSwgMC4zMTIzODQsIDAuMzg5NDQ5LCAwLjQ2NjcwMSwgMC41NDM4MjEiLCBcCi0gICAgICAgICAgIjAuMDk5OTk5LCAwLjE4MTY2NCwgMC4yNDM0MDMsIDAuMzIwNTEyLCAwLjM5NzU3OCwgMC40NzQ3NjEsIDAuNTUxOCIsIFwKLSAgICAgICAgICAiMC4xMTEyMDMsIDAuMTkzNDIxLCAwLjI1NTEwOCwgMC4zMzIxODQsIDAuNDA5MzU2LCAwLjQ4NjM2MiwgMC41NjM1MTYiLCBcCi0gICAgICAgICAgIjAuMTE5MjcyLCAwLjIwMTc1LCAwLjI2MzQzNCwgMC4zNDA0OTksIDAuNDE3NTY1LCAwLjQ5NDc5OSwgMC41NzE2OTkiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQ5NTYyLCAwLjIwNTA4OCwgMC4zMzMyNDIsIDAuNDk1MjksIDAuNjU3NDcsIDAuODE4NTAxLCAwLjk4Mjk1NCIsIFwKLSAgICAgICAgICAiMC4wNDk0MTcsIDAuMjA1MDcxLCAwLjMzMzM3MSwgMC40OTUyODgsIDAuNjU3NDY3LCAwLjgxODQ5NSwgMC45ODI5NTIiLCBcCi0gICAgICAgICAgIjAuMDQ5NTk4LCAwLjIwNTIyNSwgMC4zMzMzOTksIDAuNDk1MjkzLCAwLjY1NzQ0OSwgMC44MTg4ODQsIDAuOTgyOTMyIiwgXAotICAgICAgICAgICIwLjA1MDQzOSwgMC4yMDU0MjgsIDAuMzMzMjExLCAwLjQ5NDUzNiwgMC42NTc0MDksIDAuODE4NTEsIDAuOTgwODU3IiwgXAotICAgICAgICAgICIwLjA1MTMyMiwgMC4yMDU1NjMsIDAuMzMzMzQ0LCAwLjQ5NTM3MywgMC42NTc1NTYsIDAuODE5MDY5LCAwLjk4Mjg3NiIsIFwKLSAgICAgICAgICAiMC4wNTMyMjgsIDAuMjA2NDYxLCAwLjMzMzYzOCwgMC40OTU0NSwgMC42NTY2NTcsIDAuODE5MzUsIDAuOTgxMTk1IiwgXAotICAgICAgICAgICIwLjA1NDU1OSwgMC4yMDcxMDgsIDAuMzM0MjAyLCAwLjQ5NTU5NiwgMC42NTc4MTMsIDAuODE4NjU3LCAwLjk4Mjg0NiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDI1NDEsIDAuMTE4OTc4LCAwLjE3OTYxLCAwLjI1NTQyMiwgMC4zMzEyODUsIDAuNDA3MDk4LCAwLjQ4MzAxMyIsIFwKLSAgICAgICAgICAiMC4wNTA1NzYsIDAuMTI2OTczLCAwLjE4NzYwMywgMC4yNjM0MTYsIDAuMzM5MzY2LCAwLjQxNDk5NywgMC40OTA5MjciLCBcCi0gICAgICAgICAgIjAuMDU5MzY3LCAwLjEzNTY2MiwgMC4xOTYyOTgsIDAuMjcyMTE4LCAwLjM0NzkyMiwgMC40MjM5NDMsIDAuNDk5Njk3IiwgXAotICAgICAgICAgICIwLjA2NTk3NiwgMC4xNDI0ODcsIDAuMjAzMDgzLCAwLjI3ODkyNSwgMC4zNTQ3NjcsIDAuNDMwNjAyLCAwLjUwNjIzNyIsIFwKLSAgICAgICAgICAiMC4wNzExODMsIDAuMTQ3OTk2LCAwLjIwODQyNiwgMC4yODQyNjgsIDAuMzU5OTgyLCAwLjQzNTk0NywgMC41MTE2NzMiLCBcCi0gICAgICAgICAgIjAuMDc3ODMyLCAwLjE1NDU0OCwgMC4yMTUxNDksIDAuMjkwODcyLCAwLjM2NjY3NywgMC40NDI0NjMsIDAuNTE4MjYxIiwgXAotICAgICAgICAgICIwLjA4MjU2NSwgMC4xNTkzNDIsIDAuMjIwMDMxLCAwLjI5NTc2NywgMC4zNzE0NTYsIDAuNDQ3MzE5LCAwLjUyMzIzMiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzkxNDIsIDAuMTk0MDAxLCAwLjMxOTM5LCAwLjQ3NzI0NSwgMC42MzM4NTEsIDAuNzkxNzIyLCAwLjk0ODU4MiIsIFwKLSAgICAgICAgICAiMC4wMzkyMDksIDAuMTkzOTY5LCAwLjMxOTc0OSwgMC40Nzc0MDEsIDAuNjMzODg5LCAwLjc5MTA4NSwgMC45NDg1OTciLCBcCi0gICAgICAgICAgIjAuMDQwMDQzLCAwLjE5NDA5NiwgMC4zMTk3MzksIDAuNDc2NzU1LCAwLjYzMzcyOSwgMC43OTEwOCwgMC45NDg2MDgiLCBcCi0gICAgICAgICAgIjAuMDQxMjgyLCAwLjE5NDA3MSwgMC4zMTk5MSwgMC40Nzc0MjcsIDAuNjMzODYzLCAwLjc5MTgsIDAuOTQ4NDMxIiwgXAotICAgICAgICAgICIwLjA0MjQ2MywgMC4xOTQ1MjMsIDAuMzE5MzgxLCAwLjQ3NjQzMywgMC42MzM3NjksIDAuNzkxMjQxLCAwLjk0OTMzIiwgXAotICAgICAgICAgICIwLjA0NDEzMSwgMC4xOTQ3NDMsIDAuMzE5NzY0LCAwLjQ3NzQxLCAwLjYzMzgyNCwgMC43OTI3MDIsIDAuOTUwMDY5IiwgXAotICAgICAgICAgICIwLjA0NTU4OCwgMC4xOTUwNjEsIDAuMzIwMjU2LCAwLjQ3Njc3NCwgMC42MzUxMTcsIDAuNzkyNzM4LCAwLjk0ODYyNSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjk4NiwgMC4wMDI5NjksIDAuMDAyOTY2LCAwLjAwMjk2LCAwLjAwMjk2MywgMC4wMDI5NjMsIDAuMDAyOTU2IiwgXAotICAgICAgICAgICIwLjAwMjkyOCwgMC4wMDI5MjUsIDAuMDAyOTI0LCAwLjAwMjkyNSwgMC4wMDI5MjUsIDAuMDAyOTI1LCAwLjAwMjkyNCIsIFwKLSAgICAgICAgICAiMC4wMDI5MzUsIDAuMDAyOTI1LCAwLjAwMjkyNCwgMC4wMDI5MjQsIDAuMDAyOTIzLCAwLjAwMjkyMywgMC4wMDI5MjMiLCBcCi0gICAgICAgICAgIjAuMDAyOTc5LCAwLjAwMjk1MywgMC4wMDI5NTMsIDAuMDAyOTUxLCAwLjAwMjk0OSwgMC4wMDI5NDksIDAuMDAyOTQ3IiwgXAotICAgICAgICAgICIwLjAwMzA0MywgMC4wMDI5OTksIDAuMDAyOTk3LCAwLjAwMjk5MywgMC4wMDI5OSwgMC4wMDI5OTEsIDAuMDAyOTkiLCBcCi0gICAgICAgICAgIjAuMDAzMTQ1LCAwLjAwMzA5NCwgMC4wMDMwOTIsIDAuMDAzMDg4LCAwLjAwMzA4OCwgMC4wMDMwODcsIDAuMDAzMDg2IiwgXAotICAgICAgICAgICIwLjAwMzI2NywgMC4wMDMyMDUsIDAuMDAzMTk3LCAwLjAwMzE5NiwgMC4wMDMxOTMsIDAuMDAzMTkzLCAwLjAwMzE5MSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDkzNiwgMC4wMDQ5OTUsIDAuMDA1MDAyLCAwLjAwNTAwNiwgMC4wMDUwMDgsIDAuMDA1MDEsIDAuMDA1MDEiLCBcCi0gICAgICAgICAgIjAuMDA0OTE2LCAwLjAwNDk4NSwgMC4wMDQ5OTUsIDAuMDA1MDAxLCAwLjAwNTAwNCwgMC4wMDUwMDYsIDAuMDA1MDA3IiwgXAotICAgICAgICAgICIwLjAwNDk2MSwgMC4wMDUwMTksIDAuMDA1MDMxLCAwLjAwNTAzNywgMC4wMDUwNCwgMC4wMDUwNDIsIDAuMDA1MDQ0IiwgXAotICAgICAgICAgICIwLjAwNTA1NiwgMC4wMDUwODMsIDAuMDA1MDkzLCAwLjAwNTA5OSwgMC4wMDUxMDIsIDAuMDA1MTA0LCAwLjAwNTEwNSIsIFwKLSAgICAgICAgICAiMC4wMDUxNDksIDAuMDA1MTY0LCAwLjAwNTE3MiwgMC4wMDUxNzcsIDAuMDA1MTgsIDAuMDA1MTgyLCAwLjAwNTE4MyIsIFwKLSAgICAgICAgICAiMC4wMDUzMTYsIDAuMDA1MzAzLCAwLjAwNTMxMSwgMC4wMDUzMTcsIDAuMDA1MzIxLCAwLjAwNTMyMywgMC4wMDUzMjQiLCBcCi0gICAgICAgICAgIjAuMDA1NDkxLCAwLjAwNTQ0NywgMC4wMDU0NTQsIDAuMDA1NDU4LCAwLjAwNTQ2MSwgMC4wMDU0NjIsIDAuMDA1NDY0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyOTksIDAuMDAyOTgxLCAwLjAwMjk4LCAwLjAwMjk3NSwgMC4wMDI5NzQsIDAuMDAyOTgzLCAwLjAwMjk3OSIsIFwKLSAgICAgICAgICAiMC4wMDI5MzIsIDAuMDAyOTM3LCAwLjAwMjk0LCAwLjAwMjk0MiwgMC4wMDI5NDMsIDAuMDAyOTQzLCAwLjAwMjk0MyIsIFwKLSAgICAgICAgICAiMC4wMDI5NTksIDAuMDAyOTUxLCAwLjAwMjk1MywgMC4wMDI5NTQsIDAuMDAyOTU0LCAwLjAwMjk1NCwgMC4wMDI5NTQiLCBcCi0gICAgICAgICAgIjAuMDAzMDE1LCAwLjAwMzAwOSwgMC4wMDMwMDQsIDAuMDAzMDAzLCAwLjAwMjk5OSwgMC4wMDI5OTksIDAuMDAyOTk3IiwgXAotICAgICAgICAgICIwLjAwMzA5NSwgMC4wMDMwNTIsIDAuMDAzMDQ5LCAwLjAwMzA0OSwgMC4wMDMwNDgsIDAuMDAzMDQ5LCAwLjAwMzA0OCIsIFwKLSAgICAgICAgICAiMC4wMDMyMjQsIDAuMDAzMTY1LCAwLjAwMzE2MiwgMC4wMDMxNiwgMC4wMDMxNTgsIDAuMDAzMTU4LCAwLjAwMzE1NyIsIFwKLSAgICAgICAgICAiMC4wMDM0LCAwLjAwMzI5NywgMC4wMDMyODYsIDAuMDAzMjgsIDAuMDAzMjc2LCAwLjAwMzI3NiwgMC4wMDMyNzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQ2MywgMC4wMDQ3MTEsIDAuMDA0NzIxLCAwLjAwNDcyNywgMC4wMDQ3MjksIDAuMDA0NzMxLCAwLjAwNDczMiIsIFwKLSAgICAgICAgICAiMC4wMDQ2LCAwLjAwNDY5NiwgMC4wMDQ3MSwgMC4wMDQ3MTcsIDAuMDA0NzIxLCAwLjAwNDcyNCwgMC4wMDQ3MjUiLCBcCi0gICAgICAgICAgIjAuMDA0NjM4LCAwLjAwNDcyNSwgMC4wMDQ3NDEsIDAuMDA0NzUsIDAuMDA0NzU1LCAwLjAwNDc1OCwgMC4wMDQ3NiIsIFwKLSAgICAgICAgICAiMC4wMDQ3MjMsIDAuMDA0Nzg0LCAwLjAwNDgsIDAuMDA0ODA5LCAwLjAwNDgxNCwgMC4wMDQ4MTcsIDAuMDA0ODIiLCBcCi0gICAgICAgICAgIjAuMDA0ODQyLCAwLjAwNDg2MywgMC4wMDQ4NzYsIDAuMDA0ODg2LCAwLjAwNDg4MiwgMC4wMDQ4OTIsIDAuMDA0ODk0IiwgXAotICAgICAgICAgICIwLjAwNTAyNCwgMC4wMDQ5OTIsIDAuMDA1MDEsIDAuMDA1MDI0LCAwLjAwNTAyOCwgMC4wMDUwMzEsIDAuMDA1MDMzIiwgXAotICAgICAgICAgICIwLjAwNTEzMywgMC4wMDUxMjYsIDAuMDA1MTQsIDAuMDA1MTU1LCAwLjAwNTE2MSwgMC4wMDUxNjYsIDAuMDA1MTYzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyOTg5LCAwLjAwMjk4OSwgMC4wMDI5ODgsIDAuMDAyOTksIDAuMDAyOTkzLCAwLjAwMjk5MSwgMC4wMDI5OTQiLCBcCi0gICAgICAgICAgIjAuMDAyOTQ5LCAwLjAwMjk2NCwgMC4wMDI5NjgsIDAuMDAyOTcyLCAwLjAwMjk3NCwgMC4wMDI5NzUsIDAuMDAyOTc1IiwgXAotICAgICAgICAgICIwLjAwMzAxMSwgMC4wMDMwMDUsIDAuMDAzMDEsIDAuMDAzMDEyLCAwLjAwMzAxNCwgMC4wMDMwMTUsIDAuMDAzMDE1IiwgXAotICAgICAgICAgICIwLjAwMzExNCwgMC4wMDMwNzgsIDAuMDAzMDc5LCAwLjAwMzA4LCAwLjAwMzA4LCAwLjAwMzA4MSwgMC4wMDMwOCIsIFwKLSAgICAgICAgICAiMC4wMDMyMTYsIDAuMDAzMTcxLCAwLjAwMzE3LCAwLjAwMzE3LCAwLjAwMzE2OCwgMC4wMDMxNywgMC4wMDMxNjkiLCBcCi0gICAgICAgICAgIjAuMDAzMzc4LCAwLjAwMzMwNywgMC4wMDMzMDEsIDAuMDAzMywgMC4wMDMyOTcsIDAuMDAzMjk3LCAwLjAwMzI5NiIsIFwKLSAgICAgICAgICAiMC4wMDM2MjQsIDAuMDAzNDgxLCAwLjAwMzQ3LCAwLjAwMzQ2MSwgMC4wMDM0NTgsIDAuMDAzNDU2LCAwLjAwMzQ1NCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDMwNCwgMC4wMDQzODMsIDAuMDA0MzkzLCAwLjAwNDM5OCwgMC4wMDQ0MDEsIDAuMDA0NDAyLCAwLjAwNDQwMyIsIFwKLSAgICAgICAgICAiMC4wMDQyNzYsIDAuMDA0MzY5LCAwLjAwNDM4MiwgMC4wMDQzODksIDAuMDA0MzkyLCAwLjAwNDM5NCwgMC4wMDQzOTYiLCBcCi0gICAgICAgICAgIjAuMDA0MzEsIDAuMDA0Mzk4LCAwLjAwNDQxMywgMC4wMDQ0MjEsIDAuMDA0NDI1LCAwLjAwNDQyOCwgMC4wMDQ0MjkiLCBcCi0gICAgICAgICAgIjAuMDA0NDIyLCAwLjAwNDQ1LCAwLjAwNDQ3MSwgMC4wMDQ0NzUsIDAuMDA0NDg0LCAwLjAwNDQ4MywgMC4wMDQ0ODgiLCBcCi0gICAgICAgICAgIjAuMDA0NTA2LCAwLjAwNDUyNiwgMC4wMDQ1NCwgMC4wMDQ1NDksIDAuMDA0NTU0LCAwLjAwNDU1NywgMC4wMDQ1NTkiLCBcCi0gICAgICAgICAgIjAuMDA0NjM0LCAwLjAwNDY3NCwgMC4wMDQ2ODUsIDAuMDA0Njg4LCAwLjAwNDY5MSwgMC4wMDQ2OTksIDAuMDA0Njk1IiwgXAotICAgICAgICAgICIwLjAwNDc2OSwgMC4wMDQ3OTYsIDAuMDA0ODE4LCAwLjAwNDgyMywgMC4wMDQ4MTgsIDAuMDA0ODMsIDAuMDA0ODMyIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBBTkQ0WDIgKgotICogLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChBTkQ0WDIpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4zNzM4NTY7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYzNjczMjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MzY3MzI7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjM1NjI0OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDI5NywgMC4wMDAyOTYsIDAuMDAwMjk2LCAwLjAwMDI5NiwgMC4wMDAyOTYsIDAuMDAwMjk2LCAwLjAwMDI5NiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDI5NywgMC4wMDAyOTcsIDAuMDAwMjk3LCAwLjAwMDI5NywgMC4wMDAyOTcsIDAuMDAwMjk3LCAwLjAwMDI5NyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjcwOTc1OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDY3MDk3NTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2NzAyNjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyOTYsIDAuMDAwMjk2LCAwLjAwMDI5NiwgMC4wMDAyOTYsIDAuMDAwMjk2LCAwLjAwMDI5NiwgMC4wMDAyOTYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyOTcsIDAuMDAwMjk3LCAwLjAwMDI5NywgMC4wMDAyOTcsIDAuMDAwMjk3LCAwLjAwMDI5NywgMC4wMDAyOTciKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEMpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY5MzY0NTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2OTM2NDU7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjkzMDQzOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDI5NywgMC4wMDAyOTYsIDAuMDAwMjk2LCAwLjAwMDI5NiwgMC4wMDAyOTYsIDAuMDAwMjk2LCAwLjAwMDI5NiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDI5NywgMC4wMDAyOTcsIDAuMDAwMjk3LCAwLjAwMDI5NywgMC4wMDAyOTcsIDAuMDAwMjk3LCAwLjAwMDI5NyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjY3NTM2OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDY2NzUxNzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2Njc1MzY7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMTc4LCAwLjAwMDE3OCwgMC4wMDAxNzgsIDAuMDAwMTc4LCAwLjAwMDE3OCwgMC4wMDAxNzgsIDAuMDAwMTc4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzM3LCAwLjAwMDMzOCwgMC4wMDAzMzcsIDAuMDAwMzM4LCAwLjAwMDMzOCwgMC4wMDAzMzgsIDAuMDAwMzM4Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuNjgyMTI2OwotICAgIGZ1bmN0aW9uIDogIigoKEEgQikgQykgRCkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5MzMzLCAwLjE3OTA0NSwgMC4yNDExNjMsIDAuMzE4MzA1LCAwLjM5NTQxNywgMC40NzI1MDEsIDAuNTQ5NTk2IiwgXAotICAgICAgICAgICIwLjA5Nzg1NiwgMC4xODM3MjgsIDAuMjQ1ODc3LCAwLjMyMzAyNiwgMC40MDAxNDEsIDAuNDc3Mjg5LCAwLjU1NDI5MSIsIFwKLSAgICAgICAgICAiMC4xMDI0MzIsIDAuMTg4MjQsIDAuMjUwMzUyLCAwLjMyNzUxMSwgMC40MDQ2MjIsIDAuNDgxNzMyLCAwLjU1ODc4OSIsIFwKLSAgICAgICAgICAiMC4xMDY2MzgsIDAuMTkyNDA2LCAwLjI1NDQ5OCwgMC4zMzE2NTgsIDAuNDA4NzczLCAwLjQ4NTgzNCwgMC41NjI5MzUiLCBcCi0gICAgICAgICAgIjAuMTEwNjExLCAwLjE5NjUwMywgMC4yNTg2MDYsIDAuMzM1NzYsIDAuNDEyODk2LCAwLjQ4OTk3NSwgMC41NjcwMzQiLCBcCi0gICAgICAgICAgIjAuMTE2NTg0LCAwLjIwMjkzMiwgMC4yNjUwNjUsIDAuMzQyMjM0LCAwLjQxOTMzOCwgMC40OTY0MjcsIDAuNTczNDg3IiwgXAotICAgICAgICAgICIwLjEyMTM2MSwgMC4yMDgyNTQsIDAuMjcwNDA1LCAwLjM0NzU3NSwgMC40MjQ2ODcsIDAuNTAxNzY5LCAwLjU3ODg1NiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTYwOTMsIDAuMjEwODE2LCAwLjMzNzAwNywgMC40OTc4NzUsIDAuNjU5Njk2LCAwLjgyMTgwMSwgMC45ODQzMDMiLCBcCi0gICAgICAgICAgIjAuMDU2MDM4LCAwLjIxMDc2NywgMC4zMzcwNSwgMC40OTc4OTMsIDAuNjU5NzQ4LCAwLjgyMTk2OCwgMC45ODM4OTIiLCBcCi0gICAgICAgICAgIjAuMDU1ODYsIDAuMjEwNTM5LCAwLjMzNzE3LCAwLjQ5Nzg1OCwgMC42NTk2NTQsIDAuODIwNTMsIDAuOTgzOTk4IiwgXAotICAgICAgICAgICIwLjA1NjA4MSwgMC4yMTA4MDQsIDAuMzM3MTQ4LCAwLjQ5NzkwMiwgMC42NTk3MTYsIDAuODIxNDAxLCAwLjk4NDA3NiIsIFwKLSAgICAgICAgICAiMC4wNTY2MzYsIDAuMjEwOTkxLCAwLjMzNzIxNiwgMC40OTc1MjUsIDAuNjU5NzQ3LCAwLjgyMTgwMSwgMC45ODM5MjIiLCBcCi0gICAgICAgICAgIjAuMDU3NjM1LCAwLjIxMTUwOSwgMC4zMzc4MTgsIDAuNDk3NjgyLCAwLjY1ODU2NCwgMC44MjE4OTgsIDAuOTg0MDUzIiwgXAotICAgICAgICAgICIwLjA1ODQyNywgMC4yMTE5MDksIDAuMzM4MTIyLCAwLjQ5Nzk1MywgMC42NTk2NjMsIDAuODIwOTksIDAuOTg0MTgxIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0ODY3NCwgMC4xMjU1NiwgMC4xODYyNjgsIDAuMjYyMTEyLCAwLjMzNzkzMSwgMC40MTM3MTIsIDAuNDg5NTA1IiwgXAotICAgICAgICAgICIwLjA1NjY4OSwgMC4xMzM1OTEsIDAuMTk0MzA0LCAwLjI3MDE4LCAwLjM0NTk2NSwgMC40MjE3NTQsIDAuNDk3NTQ3IiwgXAotICAgICAgICAgICIwLjA2NjQ0OCwgMC4xNDMyOTQsIDAuMjA0MDE4LCAwLjI3OTg0NCwgMC4zNTU2OTUsIDAuNDMxNDczLCAwLjUwNzI0OCIsIFwKLSAgICAgICAgICAiMC4wNzQzNjYsIDAuMTUxMjgsIDAuMjEyMDExLCAwLjI4NzgxNSwgMC4zNjM2NiwgMC40Mzk0NTIsIDAuNTE1MjA1IiwgXAotICAgICAgICAgICIwLjA4MDcyMiwgMC4xNTc4NDMsIDAuMjE4NTQxLCAwLjI5NDM3NSwgMC4zNzAxODMsIDAuNDQ1OTQ3LCAwLjUyMTc1OSIsIFwKLSAgICAgICAgICAiMC4wODg5ODgsIDAuMTY2MzE4LCAwLjIyNjk3MywgMC4zMDI3ODMsIDAuMzc4NTk0LCAwLjQ1NDQzNiwgMC41MzAxNyIsIFwKLSAgICAgICAgICAiMC4wOTQ5ODEsIDAuMTcyMzkzLCAwLjIzMzAyLCAwLjMwODgzMiwgMC4zODQ2MjgsIDAuNDYwNDI5LCAwLjUzNjIxOSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDA3MTMsIDAuMTk0NzU4LCAwLjMyMDM2OSwgMC40NzcwNjksIDAuNjM1MzQ4LCAwLjc5Mjk2MywgMC45NTA2MDUiLCBcCi0gICAgICAgICAgIjAuMDQwNjY1LCAwLjE5NDc2NCwgMC4zMjAzNjEsIDAuNDc2ODMzLCAwLjYzNTM5MiwgMC43OTI5NzEsIDAuOTQ5NTUiLCBcCi0gICAgICAgICAgIjAuMDQxMDYxLCAwLjE5NDgwOSwgMC4zMjAzODMsIDAuNDc3MzQ2LCAwLjYzNTM1MSwgMC43OTE4ODIsIDAuOTUwNTc5IiwgXAotICAgICAgICAgICIwLjA0MjIyNSwgMC4xOTQ2ODksIDAuMzE5OTMyLCAwLjQ3NzM1MSwgMC42MzUzMzcsIDAuNzkyOTI2LCAwLjk1MDU1NiIsIFwKLSAgICAgICAgICAiMC4wNDM0OTYsIDAuMTk1MjAxLCAwLjMyMDUzNiwgMC40NzcxODIsIDAuNjM0NDk3LCAwLjc5MjkxNSwgMC45NTA2MDkiLCBcCi0gICAgICAgICAgIjAuMDQ1MTI2LCAwLjE5NTQ1NCwgMC4zMjAzODksIDAuNDc3ODUxLCAwLjYzNTMyMSwgMC43OTE3ODIsIDAuOTUwNDQ2IiwgXAotICAgICAgICAgICIwLjA0NjQ1NiwgMC4xOTU3OSwgMC4zMjA0MzIsIDAuNDc3ODQ1LCAwLjYzNDg0LCAwLjc5MjgxNSwgMC45NDkyNDUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDkxMzMyLCAwLjE3NzA0MiwgMC4yMzkxNTMsIDAuMzE2MzExLCAwLjM5MzM5NSwgMC40NzA1ODMsIDAuNTQ3NTgyIiwgXAotICAgICAgICAgICIwLjA5NjE3MSwgMC4xODIwOTQsIDAuMjQ0MjYyLCAwLjMyMTQwOCwgMC4zOTg1MjIsIDAuNDc1NjExLCAwLjU1Mjc0OSIsIFwKLSAgICAgICAgICAiMC4xMDIxMjksIDAuMTg3OTYzLCAwLjI1MDAwOSwgMC4zMjcxOTksIDAuNDA0MzE2LCAwLjQ4MTM5OCwgMC41NTg0NjgiLCBcCi0gICAgICAgICAgIjAuMTA3OTU1LCAwLjE5Mzc0LCAwLjI1NTgzOSwgMC4zMzMwMDEsIDAuNDEwMTE3LCAwLjQ4NzE4NiwgMC41NjQyODIiLCBcCi0gICAgICAgICAgIjAuMTEzNjg5LCAwLjE5OTU2OCwgMC4yNjE3MDYsIDAuMzM4ODQsIDAuNDE1OTU2LCAwLjQ5MzA1OSwgMC41NzAxMTciLCBcCi0gICAgICAgICAgIjAuMTIyMTgyLCAwLjIwODQ3NywgMC4yNzA2MiwgMC4zNDc3NzksIDAuNDI0ODg4LCAwLjUwMTk2NSwgMC41NzkwMjQiLCBcCi0gICAgICAgICAgIjAuMTI5MDI5LCAwLjIxNTg2NSwgMC4yNzgwNjcsIDAuMzU1MjA2LCAwLjQzMjM1NiwgMC41MDk0OTUsIDAuNTg2NTA0Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1NTkzOCwgMC4yMTA4MDEsIDAuMzM3MzU1LCAwLjQ5NzkzNywgMC42NTkzMzIsIDAuODIxOTk3LCAwLjk4NDA2NyIsIFwKLSAgICAgICAgICAiMC4wNTU5MzYsIDAuMjEwNzUsIDAuMzM3MzI2LCAwLjQ5Nzg4MiwgMC42NTk3MywgMC44MjE3NTUsIDAuOTgyNjg5IiwgXAotICAgICAgICAgICIwLjA1NTgwNCwgMC4yMTA2NDksIDAuMzM3MjM4LCAwLjQ5NzgyMywgMC42NTk2OTgsIDAuODIxNzE5LCAwLjk4MjkwMyIsIFwKLSAgICAgICAgICAiMC4wNTYyMjgsIDAuMjEwODE1LCAwLjMzNzE2MywgMC40OTc5MDcsIDAuNjU5NzI3LCAwLjgyMDg5NCwgMC45ODQwOTEiLCBcCi0gICAgICAgICAgIjAuMDU2ODUxLCAwLjIxMTA0OCwgMC4zMzc0OTksIDAuNDk3OTQzLCAwLjY1OTc3LCAwLjgyMDYzNCwgMC45ODQwNjYiLCBcCi0gICAgICAgICAgIjAuMDU3ODAxLCAwLjIxMTcyMywgMC4zMzc4MjksIDAuNDk3NDYzLCAwLjY1OTg0MSwgMC44MjE5MTksIDAuOTg0MTA3IiwgXAotICAgICAgICAgICIwLjA1ODg4OCwgMC4yMTIwODgsIDAuMzM4MjU1LCAwLjQ5ODAyMiwgMC42NTk4OTQsIDAuODIwNTI0LCAwLjk4NDMwNCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDc0MzIsIDAuMTI0MjIyLCAwLjE4NDkwMiwgMC4yNjA3MzksIDAuMzM2NTA5LCAwLjQxMjI4MSwgMC40ODgxMzQiLCBcCi0gICAgICAgICAgIjAuMDU1NTIsIDAuMTMyMjc2LCAwLjE5Mjk1OSwgMC4yNjg4MTEsIDAuMzQ0NTc4LCAwLjQyMDM0OSwgMC40OTYxNjQiLCBcCi0gICAgICAgICAgIjAuMDY1MDU2LCAwLjE0MTgxMywgMC4yMDI1MDcsIDAuMjc4MzY0LCAwLjM1NDExNCwgMC40Mjk5MTYsIDAuNTA1NjgiLCBcCi0gICAgICAgICAgIjAuMDcyNTg3LCAwLjE0OTQ1NSwgMC4yMTAxMzksIDAuMjg1OTUxLCAwLjM2MTc3MSwgMC40Mzc1MzIsIDAuNTEzMjk0IiwgXAotICAgICAgICAgICIwLjA3ODg0NCwgMC4xNTU3OTYsIDAuMjE2NDc3LCAwLjI5MjI4MiwgMC4zNjgxMDgsIDAuNDQzODY5LCAwLjUxOTYzMSIsIFwKLSAgICAgICAgICAiMC4wODY1NzgsIDAuMTYzNzkyLCAwLjIyNDQ0OCwgMC4zMDAyOTksIDAuMzc1OTkzLCAwLjQ1MTg2NiwgMC41Mjc2NSIsIFwKLSAgICAgICAgICAiMC4wOTIyMTMsIDAuMTY5NjY0LCAwLjIzMDQxNSwgMC4zMDYyMTMsIDAuMzgxOTk3LCAwLjQ1Nzc2NywgMC41MzM1NTQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQwMjg1LCAwLjE5NDU0LCAwLjMyMDE0MSwgMC40Nzc2ODMsIDAuNjM1MjU0LCAwLjc5Mjc0NiwgMC45NTA0OTUiLCBcCi0gICAgICAgICAgIjAuMDQwMjk1LCAwLjE5NDUzMywgMC4zMjAxNzQsIDAuNDc3Njc3LCAwLjYzNTIzNywgMC43OTI4MDMsIDAuOTQ4OTY0IiwgXAotICAgICAgICAgICIwLjA0MDgxMSwgMC4xOTQzODgsIDAuMzE5ODczLCAwLjQ3Njg0MywgMC42MzUxNDEsIDAuNzkyODc1LCAwLjk1MDMxIiwgXAotICAgICAgICAgICIwLjA0MjA2LCAwLjE5NDU4NiwgMC4zMjAyNjUsIDAuNDc3MTQzLCAwLjYzNTI0MywgMC43OTI4NTYsIDAuOTUwMzgzIiwgXAotICAgICAgICAgICIwLjA0MzU0LCAwLjE5NTAzMywgMC4zMjAzNSwgMC40NzcyNDUsIDAuNjM0MTQ2LCAwLjc5MjgwMywgMC45NTA0NDUiLCBcCi0gICAgICAgICAgIjAuMDQ0OTA4LCAwLjE5NTMxNiwgMC4zMjA0MzUsIDAuNDc3MjAxLCAwLjYzNDUyOCwgMC43OTI4MDksIDAuOTUwNDE5IiwgXAotICAgICAgICAgICIwLjA0NjM0NywgMC4xOTU1MDEsIDAuMzIwMzEyLCAwLjQ3NzE4MiwgMC42MzQzMTYsIDAuNzkxOTkyLCAwLjk1MDIxNyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODg0MDYsIDAuMTc0MDc5LCAwLjIzNjE5LCAwLjMxMzM0NiwgMC4zOTA0NjQsIDAuNDY3NTQ4LCAwLjU0NDYzMiIsIFwKLSAgICAgICAgICAiMC4wOTM5MzEsIDAuMTc5ODM4LCAwLjI0MjAxMiwgMC4zMTkxNTksIDAuMzk2Mjc5LCAwLjQ3MzQyOSwgMC41NTA0MzkiLCBcCi0gICAgICAgICAgIjAuMTAxNjg5LCAwLjE4NzUyMSwgMC4yNDk2MzksIDAuMzI2ODA1LCAwLjQwMzkyMiwgMC40ODEwMSwgMC41NTgwOTIiLCBcCi0gICAgICAgICAgIjAuMTA5NjQ1LCAwLjE5NTM3MSwgMC4yNTc0NjMsIDAuMzM0NjE4LCAwLjQxMTczNCwgMC40ODg4MjMsIDAuNTY1ODg0IiwgXAotICAgICAgICAgICIwLjExNjgxMSwgMC4yMDI4NjQsIDAuMjY0OTc3LCAwLjM0MjEwNSwgMC40MTkyMDYsIDAuNDk2Mjk4LCAwLjU3MzM4IiwgXAotICAgICAgICAgICIwLjEyNzg5NCwgMC4yMTQwNDMsIDAuMjc2MTY2LCAwLjM1MzI5NSwgMC40MzAzOCwgMC41MDc0NjQsIDAuNTg0NTY3IiwgXAotICAgICAgICAgICIwLjEzNjY2MywgMC4yMjMyNiwgMC4yODU0MjUsIDAuMzYyNTU4LCAwLjQzOTY3MywgMC41MTY3NTMsIDAuNTkzNzg4Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1NjE1NCwgMC4yMTA4NDUsIDAuMzM3MDM0LCAwLjQ5Nzg4NSwgMC42NTk2NDUsIDAuODIwMjczLCAwLjk4NDIyNCIsIFwKLSAgICAgICAgICAiMC4wNTU5MzQsIDAuMjEwNzUzLCAwLjMzNzMzLCAwLjQ5Nzg3NywgMC42NTk3NTYsIDAuODIxOTYyLCAwLjk4Mjk0OCIsIFwKLSAgICAgICAgICAiMC4wNTU3ODEsIDAuMjEwNjcsIDAuMzM3MTYyLCAwLjQ5Nzg2LCAwLjY1OTczNSwgMC44MjA3NywgMC45ODQwMjMiLCBcCi0gICAgICAgICAgIjAuMDU2MDU5LCAwLjIxMDc4MywgMC4zMzczMjUsIDAuNDk3ODU4LCAwLjY1OTY3OSwgMC44MjE3NTIsIDAuOTgzOTEzIiwgXAotICAgICAgICAgICIwLjA1Njk4NiwgMC4yMTEwMSwgMC4zMzc1MzMsIDAuNDk3OTYsIDAuNjU4OTcsIDAuODIxNTcxLCAwLjk4NDAwOCIsIFwKLSAgICAgICAgICAiMC4wNTc5ODMsIDAuMjExODA2LCAwLjMzNzksIDAuNDk3ODEyLCAwLjY1OTQ4MiwgMC44MjA4OCwgMC45ODQxNTMiLCBcCi0gICAgICAgICAgIjAuMDU5MjIyLCAwLjIxMjUyMiwgMC4zMzgzMzMsIDAuNDk4MDUyLCAwLjY2MDAwMywgMC44MjA4NTMsIDAuOTgzOTU4Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0NjEwNywgMC4xMjI3MjEsIDAuMTgzMzg5LCAwLjI1OTIwOCwgMC4zMzQ5NzYsIDAuNDEwNzMsIDAuNDg2NDk5IiwgXAotICAgICAgICAgICIwLjA1NDI1MSwgMC4xMzA4ODMsIDAuMTkxNTcxLCAwLjI2NzM3OCwgMC4zNDMxMzQsIDAuNDE4OTA2LCAwLjQ5NDY3NyIsIFwKLSAgICAgICAgICAiMC4wNjM0ODQsIDAuMTQwMTM5LCAwLjIwMDc5MiwgMC4yNzY2MjIsIDAuMzUyMzgsIDAuNDI4MTQsIDAuNTAzOTEiLCBcCi0gICAgICAgICAgIjAuMDcwOTM1LCAwLjE0NzY2NCwgMC4yMDgzMjksIDAuMjg0MTE2LCAwLjM1OTkxNiwgMC40MzU2NywgMC41MTE0NDEiLCBcCi0gICAgICAgICAgIjAuMDc2NzEyLCAwLjE1MzY0NCwgMC4yMTQzMDgsIDAuMjg5OTM3LCAwLjM2NTg0OCwgMC40NDE2NiwgMC41MTcyMzgiLCBcCi0gICAgICAgICAgIjAuMDgzOTc2LCAwLjE2MTI5NiwgMC4yMjE5MjIsIDAuMjk3NTI0LCAwLjM3MzQ1NywgMC40NDkwMzIsIDAuNTI0ODU3IiwgXAotICAgICAgICAgICIwLjA4OTI0NSwgMC4xNjY2ODUsIDAuMjI3MzQxLCAwLjMwMzExLCAwLjM3ODg4NiwgMC40NTQ2NTksIDAuNTMwNDE2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0MDA4MiwgMC4xOTQxNiwgMC4zMjAxMDYsIDAuNDc2NzE3LCAwLjYzNDI4OSwgMC43OTE5NSwgMC45NDkyNTQiLCBcCi0gICAgICAgICAgIjAuMDQwMDc4LCAwLjE5NDExMiwgMC4zMTk1MDIsIDAuNDc3NjI0LCAwLjYzNDQzLCAwLjc5Mjc1MSwgMC45NDkyODUiLCBcCi0gICAgICAgICAgIjAuMDQwNzU2LCAwLjE5NDQ4MSwgMC4zMjAwODIsIDAuNDc3NjE0LCAwLjYzNTE2MiwgMC43OTI3MDMsIDAuOTUwMjgyIiwgXAotICAgICAgICAgICIwLjA0MTk3MywgMC4xOTQ2MzMsIDAuMzIwMTQ5LCAwLjQ3NzAxNiwgMC42MzUyMTIsIDAuNzkyNzM5LCAwLjk1MDMzNCIsIFwKLSAgICAgICAgICAiMC4wNDMxLCAwLjE5NDc2MSwgMC4zMTk2OTEsIDAuNDc2OTMzLCAwLjYzNDUxLCAwLjc5Mjc5MywgMC45NTAyNjciLCBcCi0gICAgICAgICAgIjAuMDQ1MTY3LCAwLjE5NTIzNCwgMC4zMTk5NjksIDAuNDc2OTk3LCAwLjYzNTEwMywgMC43OTI2OTgsIDAuOTUwMTYyIiwgXAotICAgICAgICAgICIwLjA0NjYzMSwgMC4xOTU0OTMsIDAuMzIwMzA1LCAwLjQ3NzA0NSwgMC42MzQ2OTQsIDAuNzkxNjc2LCAwLjk0OTM2NyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJEIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODQyNjIsIDAuMTcwMjAyLCAwLjIzMjM0NCwgMC4zMDk0ODUsIDAuMzg2NjA2LCAwLjQ2MzY5NCwgMC41NDA3NiIsIFwKLSAgICAgICAgICAiMC4wOTA3NzgsIDAuMTc2NjQxLCAwLjIzODc4MSwgMC4zMTU5NjksIDAuMzkzMDgxLCAwLjQ3MDE3NiwgMC41NDcyNiIsIFwKLSAgICAgICAgICAiMC4wOTk3MDEsIDAuMTg1NTMsIDAuMjQ3NjU5LCAwLjMyNDgzMiwgMC40MDE5MzksIDAuNDc5MDk5LCAwLjU1NjEyMSIsIFwKLSAgICAgICAgICAiMC4xMDg5ODcsIDAuMTk0NzgyLCAwLjI1Njg1MiwgMC4zMzQwMzQsIDAuNDExMTM1LCAwLjQ4ODI0MiwgMC41NjUzMDIiLCBcCi0gICAgICAgICAgIjAuMTE3Mzc2LCAwLjIwMzQ4NCwgMC4yNjU1OTQsIDAuMzQyNzMxLCAwLjQxOTg1MiwgMC40OTY5MzMsIDAuNTc0MTQ2IiwgXAotICAgICAgICAgICIwLjEzMDM0OCwgMC4yMTY0MjcsIDAuMjc4NTU2LCAwLjM1NTcxLCAwLjQzMjgwNiwgMC41MDk5NTMsIDAuNTg3MDU3IiwgXAotICAgICAgICAgICIwLjE0MDA2NSwgMC4yMjY3NzIsIDAuMjg4NjUsIDAuMzY1Nzg5LCAwLjQ0Mjg0OCwgMC41MTk5NCwgMC41OTcwMjUiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU2MDY0LCAwLjIxMDc3MSwgMC4zMzczMjcsIDAuNDk3ODUzLCAwLjY1OTcxOSwgMC44MjE4MDYsIDAuOTgyOTQ1IiwgXAotICAgICAgICAgICIwLjA1NTgyMiwgMC4yMTA1NTMsIDAuMzM3MTAzLCAwLjQ5Nzg5LCAwLjY1ODU3OSwgMC44MjE2NjcsIDAuOTg0MDk0IiwgXAotICAgICAgICAgICIwLjA1NTgzMywgMC4yMTA2NTksIDAuMzM3MjU5LCAwLjQ5Nzg3NSwgMC42NTg0NjgsIDAuODIxOTQsIDAuOTg0MDYyIiwgXAotICAgICAgICAgICIwLjA1NjQ2NSwgMC4yMTA4NjgsIDAuMzM3MzM4LCAwLjQ5Nzg3OCwgMC42NTk0NTUsIDAuODIxODE5LCAwLjk4Mzk5NSIsIFwKLSAgICAgICAgICAiMC4wNTcwNzcsIDAuMjExMTQ0LCAwLjMzNzUyNywgMC40OTc5NTMsIDAuNjU5NzY2LCAwLjgyMTc5LCAwLjk4MjU3NiIsIFwKLSAgICAgICAgICAiMC4wNTgyNzIsIDAuMjExNjg5LCAwLjMzNzg0NSwgMC40OTgxNzYsIDAuNjU5ODQ4LCAwLjgyMTk5MiwgMC45ODI2MzgiLCBcCi0gICAgICAgICAgIjAuMDU5ODEzLCAwLjIxMjQ1OCwgMC4zMzgyNzEsIDAuNDk4NDE2LCAwLjY1OTYzOSwgMC44MjE4MTIsIDAuOTg0MjQ4Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0NDcyMiwgMC4xMjEzMzMsIDAuMTgxOTY2LCAwLjI1NzgzNSwgMC4zMzM2ODgsIDAuNDA5Mzc1LCAwLjQ4NTE0MiIsIFwKLSAgICAgICAgICAiMC4wNTI3OTIsIDAuMTI5MzY1LCAwLjE5MDAxMywgMC4yNjU4MjYsIDAuMzQxNjY3LCAwLjQxNzQ5LCAwLjQ5MzM3NCIsIFwKLSAgICAgICAgICAiMC4wNjE4NzEsIDAuMTM4NDg3LCAwLjE5OTEyMiwgMC4yNzUwMjMsIDAuMzUwODc3LCAwLjQyNjgyMiwgMC41MDI1NzEiLCBcCi0gICAgICAgICAgIjAuMDY4OTY3LCAwLjE0NTc1NiwgMC4yMDYzODUsIDAuMjgyMjEzLCAwLjM1Nzk1NSwgMC40MzM4MjksIDAuNTA5ODM1IiwgXAotICAgICAgICAgICIwLjA3NDQxMSwgMC4xNTE0MiwgMC4yMTE4OTUsIDAuMjg3NzA4LCAwLjM2MzQ3NywgMC40MzkzMDYsIDAuNTE1MTMxIiwgXAotICAgICAgICAgICIwLjA4MTI1NiwgMC4xNTgzODQsIDAuMjE4OTgsIDAuMjk0NzQ0LCAwLjM3MDYyLCAwLjQ0NjQ0NCwgMC41MjIxMjkiLCBcCi0gICAgICAgICAgIjAuMDg2MjA5LCAwLjE2MzMzNCwgMC4yMjM5MjQsIDAuMjk5Njc4LCAwLjM3NTQ4OSwgMC40NTEyMTksIDAuNTI3MDcxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzOTg3OSwgMC4xOTQyNzUsIDAuMzE5OTcyLCAwLjQ3Njc2OCwgMC42MzQwODUsIDAuNzkxMzI4LCAwLjk1MDI3NSIsIFwKLSAgICAgICAgICAiMC4wMzk5MzQsIDAuMTk0Mjk5LCAwLjMxOTYxMywgMC40Nzc0NTUsIDAuNjMzODU4LCAwLjc5MjAyLCAwLjk0ODk1MSIsIFwKLSAgICAgICAgICAiMC4wNDA4MjUsIDAuMTk0NDA2LCAwLjMyMDAxNywgMC40Nzc2MDIsIDAuNjMzODIzLCAwLjc5MTc4NiwgMC45NDg4MDIiLCBcCi0gICAgICAgICAgIjAuMDQxOTQ5LCAwLjE5NDQxMSwgMC4zMjAwODMsIDAuNDc2NjczLCAwLjYzNDEwOSwgMC43OTI3MzUsIDAuOTQ4Nzg4IiwgXAotICAgICAgICAgICIwLjA0MzIzNCwgMC4xOTQ3MzEsIDAuMzIwMjc5LCAwLjQ3NjY2MywgMC42MzUyODMsIDAuNzkxMjMxLCAwLjk1MDM4OCIsIFwKLSAgICAgICAgICAiMC4wNDUzODIsIDAuMTk1MjY4LCAwLjMyMDA2LCAwLjQ3NzYzOCwgMC42MzQyMDIsIDAuNzkxNDc2LCAwLjk0OTMwNyIsIFwKLSAgICAgICAgICAiMC4wNDY2MDYsIDAuMTk1NTgxLCAwLjMyMDI3NSwgMC40NzY5MDYsIDAuNjM0MTEzLCAwLjc5MjkyNywgMC45NDg2OTkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDM0MzksIDAuMDAzMzcxLCAwLjAwMzM1OCwgMC4wMDMzNDcsIDAuMDAzMzQ2LCAwLjAwMzM0MywgMC4wMDMzNDUiLCBcCi0gICAgICAgICAgIjAuMDAzNCwgMC4wMDMzMjYsIDAuMDAzMzE1LCAwLjAwMzMwOSwgMC4wMDMzMDYsIDAuMDAzMzA0LCAwLjAwMzMwMiIsIFwKLSAgICAgICAgICAiMC4wMDMzNzIsIDAuMDAzMzA5LCAwLjAwMzMwMSwgMC4wMDMyOTUsIDAuMDAzMjkxLCAwLjAwMzI5MSwgMC4wMDMyODkiLCBcCi0gICAgICAgICAgIjAuMDAzMzg5LCAwLjAwMzMxOSwgMC4wMDMzMSwgMC4wMDMzMDUsIDAuMDAzMzAxLCAwLjAwMzMwMSwgMC4wMDMyOTgiLCBcCi0gICAgICAgICAgIjAuMDAzNDM2LCAwLjAwMzM0OCwgMC4wMDMzMzgsIDAuMDAzMzMxLCAwLjAwMzMyNSwgMC4wMDMzMjUsIDAuMDAzMzIyIiwgXAotICAgICAgICAgICIwLjAwMzU1LCAwLjAwMzQyNSwgMC4wMDM0MDksIDAuMDAzNCwgMC4wMDMzOTUsIDAuMDAzMzkyLCAwLjAwMzM4OSIsIFwKLSAgICAgICAgICAiMC4wMDM2MjQsIDAuMDAzNTAzLCAwLjAwMzQ4OCwgMC4wMDM0NzgsIDAuMDAzNDczLCAwLjAwMzQ2OSwgMC4wMDM0NjciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDU0MTYsIDAuMDA1NDc0LCAwLjAwNTQ4MSwgMC4wMDU0ODYsIDAuMDA1NDg3LCAwLjAwNTQ4OSwgMC4wMDU0OSIsIFwKLSAgICAgICAgICAiMC4wMDUzOTQsIDAuMDA1NDYsIDAuMDA1NDcsIDAuMDA1NDc2LCAwLjAwNTQ3OSwgMC4wMDU0ODEsIDAuMDA1NDgyIiwgXAotICAgICAgICAgICIwLjAwNTQzNCwgMC4wMDU0ODUsIDAuMDA1NDk2LCAwLjAwNTUwMiwgMC4wMDU1MDYsIDAuMDA1NTA4LCAwLjAwNTUxIiwgXAotICAgICAgICAgICIwLjAwNTUxNywgMC4wMDU1MzksIDAuMDA1NTQ4LCAwLjAwNTU1MywgMC4wMDU1NTYsIDAuMDA1NTU4LCAwLjAwNTU2IiwgXAotICAgICAgICAgICIwLjAwNTYwNiwgMC4wMDU2MDcsIDAuMDA1NjE0LCAwLjAwNTYxOSwgMC4wMDU2MjEsIDAuMDA1NjIzLCAwLjAwNTYyNSIsIFwKLSAgICAgICAgICAiMC4wMDU3NTQsIDAuMDA1NzMsIDAuMDA1NzM3LCAwLjAwNTc0MSwgMC4wMDU3NDQsIDAuMDA1NzQ2LCAwLjAwNTc0NyIsIFwKLSAgICAgICAgICAiMC4wMDU5MTksIDAuMDA1ODU3LCAwLjAwNTg2MywgMC4wMDU4NjYsIDAuMDA1ODY5LCAwLjAwNTg3MSwgMC4wMDU4NzIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDM0MzUsIDAuMDAzMzg3LCAwLjAwMzM3NiwgMC4wMDMzNjUsIDAuMDAzMzY0LCAwLjAwMzM2LCAwLjAwMzM2MSIsIFwKLSAgICAgICAgICAiMC4wMDMzOTcsIDAuMDAzMzM1LCAwLjAwMzMyNywgMC4wMDMzMjMsIDAuMDAzMzIxLCAwLjAwMzMyLCAwLjAwMzMxOSIsIFwKLSAgICAgICAgICAiMC4wMDMzNzYsIDAuMDAzMzIyLCAwLjAwMzMxNiwgMC4wMDMzMTIsIDAuMDAzMzExLCAwLjAwMzMxMiwgMC4wMDMzMDgiLCBcCi0gICAgICAgICAgIjAuMDAzNDI0LCAwLjAwMzM0NSwgMC4wMDMzMzcsIDAuMDAzMzMzLCAwLjAwMzMyOSwgMC4wMDMzMjgsIDAuMDAzMzI4IiwgXAotICAgICAgICAgICIwLjAwMzUwNiwgMC4wMDMzOTIsIDAuMDAzMzgsIDAuMDAzMzcyLCAwLjAwMzM2NywgMC4wMDMzNjYsIDAuMDAzMzYzIiwgXAotICAgICAgICAgICIwLjAwMzYxMiwgMC4wMDM0OTIsIDAuMDAzNDcyLCAwLjAwMzQ2MSwgMC4wMDM0NTUsIDAuMDAzNDUzLCAwLjAwMzQ0OSIsIFwKLSAgICAgICAgICAiMC4wMDM2ODYsIDAuMDAzNTYzLCAwLjAwMzU1MSwgMC4wMDM1NDIsIDAuMDAzNTM3LCAwLjAwMzUzNCwgMC4wMDM1MyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNTA5LCAwLjAwNTE3NSwgMC4wMDUxODcsIDAuMDA1MTkzLCAwLjAwNTE5NiwgMC4wMDUxOTgsIDAuMDA1MTk5IiwgXAotICAgICAgICAgICIwLjAwNTA2NCwgMC4wMDUxNjEsIDAuMDA1MTc2LCAwLjAwNTE4NCwgMC4wMDUxODgsIDAuMDA1MTkxLCAwLjAwNTE5MyIsIFwKLSAgICAgICAgICAiMC4wMDUwOTcsIDAuMDA1MTgsIDAuMDA1MTk3LCAwLjAwNTIwNywgMC4wMDUyMTIsIDAuMDA1MjE1LCAwLjAwNTIxNyIsIFwKLSAgICAgICAgICAiMC4wMDUxNzcsIDAuMDA1MjMsIDAuMDA1MjQ3LCAwLjAwNTI1NywgMC4wMDUyNjIsIDAuMDA1MjY1LCAwLjAwNTI2OCIsIFwKLSAgICAgICAgICAiMC4wMDUyNjQsIDAuMDA1Mjk0LCAwLjAwNTMwOCwgMC4wMDUzMTcsIDAuMDA1MzIyLCAwLjAwNTMyNSwgMC4wMDUzMjciLCBcCi0gICAgICAgICAgIjAuMDA1MzkxLCAwLjAwNTQyMiwgMC4wMDU0MjUsIDAuMDA1NDM0LCAwLjAwNTQ0MSwgMC4wMDU0NDQsIDAuMDA1NDQ3IiwgXAotICAgICAgICAgICIwLjAwNTU0MywgMC4wMDU1MzMsIDAuMDA1NTQsIDAuMDA1NTQ5LCAwLjAwNTU1NSwgMC4wMDU1NTksIDAuMDA1NTYyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzNDM5LCAwLjAwMzM5NCwgMC4wMDMzODcsIDAuMDAzMzc1LCAwLjAwMzM3NiwgMC4wMDMzNzEsIDAuMDAzMzgiLCBcCi0gICAgICAgICAgIjAuMDAzNDAzLCAwLjAwMzM0NSwgMC4wMDMzNCwgMC4wMDMzMzYsIDAuMDAzMzM2LCAwLjAwMzMzNiwgMC4wMDMzMzUiLCBcCi0gICAgICAgICAgIjAuMDAzNCwgMC4wMDMzNDQsIDAuMDAzMzQxLCAwLjAwMzM0LCAwLjAwMzMzOSwgMC4wMDMzMzgsIDAuMDAzMzM4IiwgXAotICAgICAgICAgICIwLjAwMzQ4NywgMC4wMDMzOTEsIDAuMDAzMzgyLCAwLjAwMzM3OCwgMC4wMDMzNzUsIDAuMDAzMzc0LCAwLjAwMzM3MyIsIFwKLSAgICAgICAgICAiMC4wMDM1NDksIDAuMDAzNDcxLCAwLjAwMzQ1LCAwLjAwMzQzOSwgMC4wMDM0MzIsIDAuMDAzNDMsIDAuMDAzNDI2IiwgXAotICAgICAgICAgICIwLjAwMzY5MywgMC4wMDM1NjcsIDAuMDAzNTQ3LCAwLjAwMzUzMiwgMC4wMDM1MjYsIDAuMDAzNTIyLCAwLjAwMzUyIiwgXAotICAgICAgICAgICIwLjAwMzg4NSwgMC4wMDM2NjYsIDAuMDAzNjQ0LCAwLjAwMzYzMiwgMC4wMDM2MjQsIDAuMDAzNjIyLCAwLjAwMzYxOCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDc2LCAwLjAwNDg0NCwgMC4wMDQ4NTQsIDAuMDA0ODYsIDAuMDA0ODYzLCAwLjAwNDg2NSwgMC4wMDQ4NjYiLCBcCi0gICAgICAgICAgIjAuMDA0NzM2LCAwLjAwNDgzMiwgMC4wMDQ4NDYsIDAuMDA0ODU0LCAwLjAwNDg1OCwgMC4wMDQ4NiwgMC4wMDQ4NjIiLCBcCi0gICAgICAgICAgIjAuMDA0Nzg3LCAwLjAwNDg1OSwgMC4wMDQ4NzMsIDAuMDA0ODgyLCAwLjAwNDg4NiwgMC4wMDQ4ODksIDAuMDA0ODkxIiwgXAotICAgICAgICAgICIwLjAwNDgyOCwgMC4wMDQ5MDMsIDAuMDA0OTE0LCAwLjAwNDkyMywgMC4wMDQ5MzIsIDAuMDA0OTM1LCAwLjAwNDkzNyIsIFwKLSAgICAgICAgICAiMC4wMDQ5MzEsIDAuMDA0OTYxLCAwLjAwNDk3NiwgMC4wMDQ5OTMsIDAuMDA0OTg5LCAwLjAwNDk5MywgMC4wMDUwMDIiLCBcCi0gICAgICAgICAgIjAuMDA1MTMsIDAuMDA1MDc4LCAwLjAwNTA5NCwgMC4wMDUxMDgsIDAuMDA1MTEsIDAuMDA1MTE0LCAwLjAwNTExNiIsIFwKLSAgICAgICAgICAiMC4wMDUxOTEsIDAuMDA1MTkyLCAwLjAwNTIxLCAwLjAwNTIyMSwgMC4wMDUyMjgsIDAuMDA1MjMyLCAwLjAwNTIzNSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkQiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzQ0NSwgMC4wMDMzODksIDAuMDAzMzg0LCAwLjAwMzM4MiwgMC4wMDMzODMsIDAuMDAzMzgyLCAwLjAwMzM4MiIsIFwKLSAgICAgICAgICAiMC4wMDM0MDcsIDAuMDAzMzYsIDAuMDAzMzU4LCAwLjAwMzM1OCwgMC4wMDMzNiwgMC4wMDMzNTksIDAuMDAzMzYiLCBcCi0gICAgICAgICAgIjAuMDAzNDM4LCAwLjAwMzM5NCwgMC4wMDMzOTIsIDAuMDAzMzkyLCAwLjAwMzM5MiwgMC4wMDMzOTIsIDAuMDAzMzkyIiwgXAotICAgICAgICAgICIwLjAwMzU2MSwgMC4wMDM0NzMsIDAuMDAzNDY3LCAwLjAwMzQ2MywgMC4wMDM0NiwgMC4wMDM0NjIsIDAuMDAzNDYxIiwgXAotICAgICAgICAgICIwLjAwMzY2MiwgMC4wMDM1MzgsIDAuMDAzNTI4LCAwLjAwMzUyMSwgMC4wMDM1MiwgMC4wMDM1MTksIDAuMDAzNTE3IiwgXAotICAgICAgICAgICIwLjAwMzgyNywgMC4wMDM2ODIsIDAuMDAzNjY4LCAwLjAwMzY2LCAwLjAwMzY1NiwgMC4wMDM2NTQsIDAuMDAzNjUzIiwgXAotICAgICAgICAgICIwLjAwNDAwNiwgMC4wMDM4MjMsIDAuMDAzNzk5LCAwLjAwMzc4NSwgMC4wMDM3ODEsIDAuMDAzNzc3LCAwLjAwMzc3NCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDQ2LCAwLjAwNDU0MSwgMC4wMDQ1NTEsIDAuMDA0NTU3LCAwLjAwNDU1OSwgMC4wMDQ1NjEsIDAuMDA0NTYyIiwgXAotICAgICAgICAgICIwLjAwNDQ0NiwgMC4wMDQ1MzksIDAuMDA0NTUzLCAwLjAwNDU2LCAwLjAwNDU2MywgMC4wMDQ1NjYsIDAuMDA0NTY3IiwgXAotICAgICAgICAgICIwLjAwNDQ4MiwgMC4wMDQ1NTcsIDAuMDA0NTcxLCAwLjAwNDU3NSwgMC4wMDQ1OCwgMC4wMDQ1ODMsIDAuMDA0NTg3IiwgXAotICAgICAgICAgICIwLjAwNDUzOSwgMC4wMDQ2MDYsIDAuMDA0NjE1LCAwLjAwNDYyNCwgMC4wMDQ2MzEsIDAuMDA0NjMyLCAwLjAwNDYzNCIsIFwKLSAgICAgICAgICAiMC4wMDQ2NTIsIDAuMDA0NjYzLCAwLjAwNDY3NiwgMC4wMDQ2ODQsIDAuMDA0NjksIDAuMDA0NjkzLCAwLjAwNDY5NSIsIFwKLSAgICAgICAgICAiMC4wMDQ4MTQsIDAuMDA0NzkyLCAwLjAwNDgwMiwgMC4wMDQ4MDgsIDAuMDA0ODEzLCAwLjAwNDgxNSwgMC4wMDQ4MTciLCBcCi0gICAgICAgICAgIjAuMDA0ODg0LCAwLjAwNDkxLCAwLjAwNDkxNywgMC4wMDQ5MjIsIDAuMDA0OTI1LCAwLjAwNDkyOCwgMC4wMDQ5MjkiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IEFORDRYNiAqCi0gKiAtLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKEFORDRYNikgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAxLjIwMDM4OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDIxNjk0NjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDIxNjk0NjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDIxNjYwOTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDEwNDksIDAuMDAxMDQ4LCAwLjAwMTA0NywgMC4wMDEwNDcsIDAuMDAxMDQ3LCAwLjAwMTA0NywgMC4wMDEwNDciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDEwNSwgMC4wMDEwNTEsIDAuMDAxMDUsIDAuMDAxMDUxLCAwLjAwMTA1MSwgMC4wMDEwNDcsIDAuMDAxMDUyIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE5NjQ4NjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE5NjQ4NjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE5NjEzMzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDEwNDgsIDAuMDAxMDQ4LCAwLjAwMTA0OCwgMC4wMDEwNDYsIDAuMDAxMDQ3LCAwLjAwMTA0NywgMC4wMDEwNDciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDEwNSwgMC4wMDEwNSwgMC4wMDEwNTEsIDAuMDAxMDUxLCAwLjAwMTA1MiwgMC4wMDEwNTIsIDAuMDAxMDUyIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihDKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE3NzkxODsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE3NzkxODsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE3NzYyMTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDEwNDgsIDAuMDAxMDQ3LCAwLjAwMTA0NywgMC4wMDEwNDcsIDAuMDAxMDQ3LCAwLjAwMTA0NywgMC4wMDEwNDciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDEwNSwgMC4wMDEwNSwgMC4wMDEwNTEsIDAuMDAxMDUxLCAwLjAwMTA1MSwgMC4wMDEwNTIsIDAuMDAxMDUyIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihEKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE2NTczOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTY1Njg7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNjU3MzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA1ODQsIDAuMDAwNTgyLCAwLjAwMDU4MSwgMC4wMDA1ODIsIDAuMDAwNTgxLCAwLjAwMDU4MSwgMC4wMDA1ODEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDExOSwgMC4wMDExOTIsIDAuMDAxMTkyLCAwLjAwMTE5MiwgMC4wMDExOTIsIDAuMDAxMTkyLCAwLjAwMTE5MiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAxLjk5Njg0OwotICAgIGZ1bmN0aW9uIDogIigoKEEgQikgQykgRCkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY5MzksIDAuMTE2NzE4LCAwLjE1NTA0NCwgMC4xODE1NiwgMC4yMjM2MTUsIDAuMjYwMzM4LCAwLjMxMjc3MyIsIFwKLSAgICAgICAgICAiMC4wNzQxMDQsIDAuMTIxNDQ4LCAwLjE1OTc0OSwgMC4xODYyNjgsIDAuMjI4MzM1LCAwLjI2NTA0NywgMC4zMTc0ODMiLCBcCi0gICAgICAgICAgIjAuMDc5MDUxLCAwLjEyNjMzNywgMC4xNjQ2NTMsIDAuMTkxMTQyLCAwLjIzMzIwOCwgMC4yNjk5MjksIDAuMzIyMzciLCBcCi0gICAgICAgICAgIjAuMDgzNDk0LCAwLjEzMDkwMiwgMC4xNjkxMzgsIDAuMTk1NjUxLCAwLjIzNzcyMSwgMC4yNzQ0NSwgMC4zMjY4ODUiLCBcCi0gICAgICAgICAgIjAuMDg3NTYsIDAuMTM1MTgxLCAwLjE3MzQ2NywgMC4yMDAwMDgsIDAuMjQyMDc0LCAwLjI3ODc5OCwgMC4zMzEyMjQiLCBcCi0gICAgICAgICAgIjAuMDkzNDQsIDAuMTQxNjMzLCAwLjE4MDA0OSwgMC4yMDY2MjksIDAuMjQ4NjkyLCAwLjI4NTM4NSwgMC4zMzc4MTkiLCBcCi0gICAgICAgICAgIjAuMDk4MjE5LCAwLjE0NjY4LCAwLjE4NTMyOCwgMC4yMTE4ODEsIDAuMjU0MDE4LCAwLjI5MDY5OSwgMC4zNDMxMDMiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzExNDksIDAuMTA2MjQ5LCAwLjE4MDE4MywgMC4yMzM4MTksIDAuMzIwNDM0LCAwLjM5NjY4MSwgMC41MDY4NjciLCBcCi0gICAgICAgICAgIjAuMDMxMDA2LCAwLjEwNjI5LCAwLjE4MDE3LCAwLjIzMzgwMywgMC4zMjAwMzEsIDAuMzk3MDM1LCAwLjUwNTk3MiIsIFwKLSAgICAgICAgICAiMC4wMzA5MjMsIDAuMTA2MSwgMC4xODAwMTMsIDAuMjMzNzgsIDAuMzIwNDUzLCAwLjM5NjgxMywgMC41MDY4ODciLCBcCi0gICAgICAgICAgIjAuMDMxMzc4LCAwLjEwNjQ1LCAwLjE4MDIzNSwgMC4yMzM4NzUsIDAuMzIwNDQxLCAwLjM5NzAyOSwgMC41MDY4OTYiLCBcCi0gICAgICAgICAgIjAuMDMyMDIyLCAwLjEwNjgxMywgMC4xODA2MTYsIDAuMjM0MDUyLCAwLjMyMDU4LCAwLjM5NzEzNCwgMC41MDY5NjYiLCBcCi0gICAgICAgICAgIjAuMDMyOTMsIDAuMTA3NTYxLCAwLjE4MTE1OSwgMC4yMzQ1NTMsIDAuMzIwOTQ2LCAwLjM5NzEyNywgMC41MDY5OTEiLCBcCi0gICAgICAgICAgIjAuMDMzNDIsIDAuMTA4NTY1LCAwLjE4MTc1MSwgMC4yMzUwMzMsIDAuMzIxMzUxLCAwLjM5NzQ1MywgMC41MDY4MTMiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzI4NjUsIDAuMDcyNDQ4LCAwLjExMDEyMywgMC4xMzcwMDYsIDAuMTc5OTg2LCAwLjIxNzU4NSwgMC4yNzEyODMiLCBcCi0gICAgICAgICAgIjAuMDQxMDk0LCAwLjA4MDYwMSwgMC4xMTgzMjIsIDAuMTQ1MjA0LCAwLjE4ODE5LCAwLjIyNTgwNiwgMC4yNzk0NzMiLCBcCi0gICAgICAgICAgIjAuMDUwNTgsIDAuMDkwMTY2LCAwLjEyNzg3OCwgMC4xNTQ3NiwgMC4xOTc3NDMsIDAuMjM1MzQ3LCAwLjI4OTAzNSIsIFwKLSAgICAgICAgICAiMC4wNTc4MjgsIDAuMDk3NjYsIDAuMTM1MzUxLCAwLjE2MjIzNSwgMC4yMDUyMTQsIDAuMjQyODA0LCAwLjI5NjUxMyIsIFwKLSAgICAgICAgICAiMC4wNjM0NzgsIDAuMTAzNjg4LCAwLjE0MTM1OCwgMC4xNjgyMzMsIDAuMjExMjA5LCAwLjI0ODc4MywgMC4zMDI0NjgiLCBcCi0gICAgICAgICAgIjAuMDcwNjY1LCAwLjExMTM0NCwgMC4xNDkwMTgsIDAuMTc1ODgyLCAwLjIxODgzOCwgMC4yNTY0MjIsIDAuMzEwMTE1IiwgXAotICAgICAgICAgICIwLjA3NTcxOSwgMC4xMTY5MTgsIDAuMTU0NzI4LCAwLjE4MTYwNywgMC4yMjQ1NDksIDAuMjYyMTM2LCAwLjMxNTgxNiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyMDI1NCwgMC4wOTQ3ODUsIDAuMTcxNzMsIDAuMjI2ODkxLCAwLjMxNDk4NiwgMC4zOTIyMjYsIDAuNTAzNTI0IiwgXAotICAgICAgICAgICIwLjAyMDI3OCwgMC4wOTQ3OTMsIDAuMTcxNzI5LCAwLjIyNjg5MiwgMC4zMTQ5ODEsIDAuMzkyODA0LCAwLjUwMzU0OSIsIFwKLSAgICAgICAgICAiMC4wMjExMTMsIDAuMDk1MDMyLCAwLjE3MTc5MiwgMC4yMjY5MjEsIDAuMzE0OTgsIDAuMzkyMjI4LCAwLjUwMzU1OCIsIFwKLSAgICAgICAgICAiMC4wMjI0NDMsIDAuMDk1NDcsIDAuMTcxNjkzLCAwLjIyNjk4OSwgMC4zMTU0MDMsIDAuMzkyNDM3LCAwLjUwMzUxOCIsIFwKLSAgICAgICAgICAiMC4wMjM3MzQsIDAuMDk1ODk4LCAwLjE3MTk4MywgMC4yMjcwNjIsIDAuMzE1MzU5LCAwLjM5Mjg3OSwgMC41MDM0OTIiLCBcCi0gICAgICAgICAgIjAuMDI1NDY4LCAwLjA5NjgwNywgMC4xNzIzMTEsIDAuMjI3MTEsIDAuMzE1MzAxLCAwLjM5MjkyOSwgMC41MDM1NDkiLCBcCi0gICAgICAgICAgIjAuMDI2ODMsIDAuMDk3NTQ1LCAwLjE3MjUxOSwgMC4yMjcyNzMsIDAuMzE1MzIzLCAwLjM5MjQ4MiwgMC41MDM0ODUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjgwMTUsIDAuMTE1MjYyLCAwLjE1MzU3NCwgMC4xODAwNzgsIDAuMjIyMTYxLCAwLjI1ODg4NCwgMC4zMTEzMTYiLCBcCi0gICAgICAgICAgIjAuMDczMTcyLCAwLjEyMDQ5MiwgMC4xNTg4MzksIDAuMTg1MzQxLCAwLjIyNzQ1NiwgMC4yNjQxNjEsIDAuMzE2NTgzIiwgXAotICAgICAgICAgICIwLjA3OTQ0NiwgMC4xMjY3NCwgMC4xNjUwMTgsIDAuMTkxNTM1LCAwLjIzMzYwNywgMC4yNzAzMjEsIDAuMzIyNzY1IiwgXAotICAgICAgICAgICIwLjA4NTUwOSwgMC4xMzI4MTEsIDAuMTcxMDY3LCAwLjE5NzU3OCwgMC4yMzk2NDMsIDAuMjc2Mzc4LCAwLjMyODgxIiwgXAotICAgICAgICAgICIwLjA5MTA4OSwgMC4xMzg3MjgsIDAuMTc3MDg0LCAwLjIwMzU5NCwgMC4yNDU2NTgsIDAuMjgyMzgyLCAwLjMzNDgxMyIsIFwKLSAgICAgICAgICAiMC4wOTkxOTUsIDAuMTQ3MzA3LCAwLjE4NTc4MSwgMC4yMTIzMzEsIDAuMjU0NDIxLCAwLjI5MTEzLCAwLjM0MzU2IiwgXAotICAgICAgICAgICIwLjEwNTYzLCAwLjE1NDQzMiwgMC4xOTMwNywgMC4yMTk2MTYsIDAuMjYxNzExLCAwLjI5ODQzOCwgMC4zNTA4NSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzMDk0OCwgMC4xMDYyMzksIDAuMTgwMTQ3LCAwLjIzMzgyOSwgMC4zMjA0MywgMC4zOTY1NjcsIDAuNTA1ODQxIiwgXAotICAgICAgICAgICIwLjAzMTAzOCwgMC4xMDYyNDgsIDAuMTgwMTg3LCAwLjIzMzgwNCwgMC4zMjAzMzgsIDAuMzk3MDMzLCAwLjUwNjQ3OCIsIFwKLSAgICAgICAgICAiMC4wMzA5MTYsIDAuMTA2MTQyLCAwLjE4MDA0MSwgMC4yMzM3NzgsIDAuMzIwMjIzLCAwLjM5NzAyNSwgMC41MDYyNDQiLCBcCi0gICAgICAgICAgIjAuMDMxMzg4LCAwLjEwNjM5MSwgMC4xODAyNTgsIDAuMjMzODg5LCAwLjMyMDUwNywgMC4zOTcwNDMsIDAuNTA2ODg4IiwgXAotICAgICAgICAgICIwLjAzMjEzMywgMC4xMDY4ODQsIDAuMTgwNTkyLCAwLjIzNDAyNSwgMC4zMjA1OTQsIDAuMzk3MTQ0LCAwLjUwNjk0MyIsIFwKLSAgICAgICAgICAiMC4wMzMxNDIsIDAuMTA4MDk2LCAwLjE4MTM4MywgMC4yMzQ3NDUsIDAuMzIxMTA4LCAwLjM5NzE5MywgMC41MDcxNDIiLCBcCi0gICAgICAgICAgIjAuMDM0MTUzLCAwLjEwODg4OSwgMC4xODE5NTcsIDAuMjM1MjE2LCAwLjMyMTQ0MiwgMC4zOTc2NjYsIDAuNTA3MjU0Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDMyMTkyLCAwLjA3MTYyNywgMC4xMDkzMDEsIDAuMTM2MTY4LCAwLjE3OTE0MSwgMC4yMTY3NDYsIDAuMjcwMzkyIiwgXAotICAgICAgICAgICIwLjA0MDM4MywgMC4wNzk3NzYsIDAuMTE3NDY3LCAwLjE0NDMzNCwgMC4xODczMDksIDAuMjI0OTA0LCAwLjI3ODU2MSIsIFwKLSAgICAgICAgICAiMC4wNDk2NTYsIDAuMDg5MTE1LCAwLjEyNjc5OCwgMC4xNTM2NjksIDAuMTk2NjM4LCAwLjIzNDIzNCwgMC4yODc5MTEiLCBcCi0gICAgICAgICAgIjAuMDU2NjQ1LCAwLjA5NjM5OCwgMC4xMzQwNjcsIDAuMTYwOTM2LCAwLjIwMzg5NCwgMC4yNDE0NzksIDAuMjk1MTUxIiwgXAotICAgICAgICAgICIwLjA2MjA2MywgMC4xMDIzNDUsIDAuMTM5OTU2LCAwLjE2NjgxNSwgMC4yMDk3ODQsIDAuMjQ3MzUzLCAwLjMwMTAzOCIsIFwKLSAgICAgICAgICAiMC4wNjg4MTcsIDAuMTA5NTI5LCAwLjE0NzIyNSwgMC4xNzQxODUsIDAuMjE3MTM1LCAwLjI1NDU4OSwgMC4zMDgzOTEiLCBcCi0gICAgICAgICAgIjAuMDczNjE3LCAwLjExNDk4NSwgMC4xNTI2NDYsIDAuMTc5NDQ4LCAwLjIyMjM4NywgMC4yNTk5NSwgMC4zMTM2OTgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTk5ODUsIDAuMDk0NjEyLCAwLjE3MTU2NywgMC4yMjY3NDQsIDAuMzE0ODkyLCAwLjM5MjExNCwgMC41MDI4NjciLCBcCi0gICAgICAgICAgIjAuMDIwMDU0LCAwLjA5NDY3OCwgMC4xNzE1NjcsIDAuMjI2NDY0LCAwLjMxNDgzOCwgMC4zOTI3NDUsIDAuNTAzNDk1IiwgXAotICAgICAgICAgICIwLjAyMTAyNSwgMC4wOTQ4NDMsIDAuMTcxNjQzLCAwLjIyNjc4NiwgMC4zMTQ4MzIsIDAuMzkyMTA4LCAwLjUwMzQ5OCIsIFwKLSAgICAgICAgICAiMC4wMjIzNTcsIDAuMDk1Mzg2LCAwLjE3MTgzLCAwLjIyNjkwNywgMC4zMTUyNzQsIDAuMzkyMzA0LCAwLjUwMjk0MyIsIFwKLSAgICAgICAgICAiMC4wMjM2MjMsIDAuMDk1ODA2LCAwLjE3MjAwMiwgMC4yMjY3OTEsIDAuMzE1MzE4LCAwLjM5Mjc4LCAwLjUwMzQ1OCIsIFwKLSAgICAgICAgICAiMC4wMjUzOTUsIDAuMDk2Njk0LCAwLjE3MjI4NCwgMC4yMjY5NzgsIDAuMzE1MTQ4LCAwLjM5MjY2NCwgMC41MDI4MDkiLCBcCi0gICAgICAgICAgIjAuMDI2ODc5LCAwLjA5NzMyNiwgMC4xNzI0MzQsIDAuMjI3MTc4LCAwLjMxNTE2OSwgMC4zOTIzNDYsIDAuNTAyODMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjQ4MjksIDAuMTEyMDEyLCAwLjE1MDMxMywgMC4xNzY4NSwgMC4yMTg4OTYsIDAuMjU1NjA5LCAwLjMwODA1NyIsIFwKLSAgICAgICAgICAiMC4wNzA2MjQsIDAuMTE3OTg4LCAwLjE1NjMwMywgMC4xODI4MTksIDAuMjI0OSwgMC4yNjE2MSwgMC4zMTQwMzIiLCBcCi0gICAgICAgICAgIjAuMDc4NzA3LCAwLjEyNTk2NSwgMC4xNjQyNjMsIDAuMTkwNzUsIDAuMjMyODMsIDAuMjY5NTM4LCAwLjMyMTk3MSIsIFwKLSAgICAgICAgICAiMC4wODY0NDcsIDAuMTMzNzc2LCAwLjE3MjA0MywgMC4xOTg1MjgsIDAuMjQwNjAzLCAwLjI3NzMzLCAwLjMyOTc2NiIsIFwKLSAgICAgICAgICAiMC4wOTM3MjcsIDAuMTQxMTUsIDAuMTc5NDY4LCAwLjIwNTk4NywgMC4yNDgwNDIsIDAuMjg0NzYsIDAuMzM3MTc0IiwgXAotICAgICAgICAgICIwLjEwMzk4MywgMC4xNTIwMTUsIDAuMTkwNjI0LCAwLjIxNzEzNCwgMC4yNTkxOTgsIDAuMjk1OTA0LCAwLjM0ODMxOSIsIFwKLSAgICAgICAgICAiMC4xMTIwNjEsIDAuMTYwNzc1LCAwLjE5OTI3OCwgMC4yMjU4NCwgMC4yNjc5NzgsIDAuMzA0NzAxLCAwLjM1NzA5MSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzMTAxNiwgMC4xMDYzNDgsIDAuMTgwMjE5LCAwLjIzMzg0MSwgMC4zMjAzODYsIDAuMzk2NTY3LCAwLjUwNjg4IiwgXAotICAgICAgICAgICIwLjAzMDk5MywgMC4xMDYyNzUsIDAuMTgwMTg1LCAwLjIzMzc4MiwgMC4zMjAyODksIDAuMzk3MDM0LCAwLjUwNjQ4NCIsIFwKLSAgICAgICAgICAiMC4wMzA4OSwgMC4xMDYyNTMsIDAuMTgwMTY5LCAwLjIzMzc5MywgMC4zMjA0MzEsIDAuMzk2OTk3LCAwLjUwNjg2OSIsIFwKLSAgICAgICAgICAiMC4wMzE1MzUsIDAuMTA2NTkxLCAwLjE4MDM2NSwgMC4yMzM5MjksIDAuMzIwNTA0LCAwLjM5NzA1MywgMC41MDYzIiwgXAotICAgICAgICAgICIwLjAzMjE5NCwgMC4xMDcxMzMsIDAuMTgwNzI2LCAwLjIzNDIwOSwgMC4zMjA3MTEsIDAuMzk3MTg5LCAwLjUwNjgxNiIsIFwKLSAgICAgICAgICAiMC4wMzM1MjksIDAuMTA4Mjc5LCAwLjE4MTUxNywgMC4yMzQ4MTEsIDAuMzIxMTE5LCAwLjM5NzMyOCwgMC41MDY5NzUiLCBcCi0gICAgICAgICAgIjAuMDM0ODMsIDAuMTA5MDIsIDAuMTgyMjc1LCAwLjIzNTI3NSwgMC4zMjE1NTIsIDAuMzk3NjI1LCAwLjUwNjkxNiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzMDk3NiwgMC4wNzAyNCwgMC4xMDc4NzgsIDAuMTM0NzM5LCAwLjE3NzY4MiwgMC4yMTUyNjgsIDAuMjY4OTI4IiwgXAotICAgICAgICAgICIwLjAzOTE4MywgMC4wNzg0NDIsIDAuMTE2MDkxLCAwLjE0Mjk0NiwgMC4xODU5MTIsIDAuMjIzNDkyLCAwLjI3NzEzOSIsIFwKLSAgICAgICAgICAiMC4wNDgxMTIsIDAuMDg3NDg0LCAwLjEyNTEyNywgMC4xNTE5ODQsIDAuMTk0OTM1LCAwLjIzMjUxOSwgMC4yODYxODQiLCBcCi0gICAgICAgICAgIjAuMDU0Njc4LCAwLjA5NDQ0MywgMC4xMzIwNzgsIDAuMTU4OTI5LCAwLjIwMTg3NiwgMC4yMzk1MTMsIDAuMjkzMTkzIiwgXAotICAgICAgICAgICIwLjA1OTcxOSwgMC4wOTk4NTQsIDAuMTM3NTIzLCAwLjE2NDMyMSwgMC4yMDczMSwgMC4yNDQ4NzksIDAuMjk4NTMiLCBcCi0gICAgICAgICAgIjAuMDY2MTA2LCAwLjEwNjk0MywgMC4xNDQ1NjEsIDAuMTcxMzc5LCAwLjIxNDI3NSwgMC4yNTE4MzUsIDAuMzA1NDg5IiwgXAotICAgICAgICAgICIwLjA3MDQ4NSwgMC4xMTE4MTYsIDAuMTQ5NDA4LCAwLjE3NjYzOSwgMC4yMTkyMDcsIDAuMjU2NzYxLCAwLjMxMDQyMSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxOTc1MywgMC4wOTQ0NjQsIDAuMTcxMzgzLCAwLjIyNjYyMiwgMC4zMTQ2NzcsIDAuMzkxNjY5LCAwLjUwMzQzNSIsIFwKLSAgICAgICAgICAiMC4wMTk3OTksIDAuMDk0NDM3LCAwLjE3MTQwOSwgMC4yMjY1OTgsIDAuMzE1MTUsIDAuMzkyNjg2LCAwLjUwMjgyIiwgXAotICAgICAgICAgICIwLjAyMTAzMywgMC4wOTQ3NDQsIDAuMTcxMjkyLCAwLjIyNjM4NCwgMC4zMTUxMjEsIDAuMzkxOTksIDAuNTAzNDI5IiwgXAotICAgICAgICAgICIwLjAyMjMwNiwgMC4wOTUyMjgsIDAuMTcxNTI3LCAwLjIyNjc3MiwgMC4zMTUxNywgMC4zOTIxMzIsIDAuNTAyNTc5IiwgXAotICAgICAgICAgICIwLjAyMzc4MiwgMC4wOTU3NTEsIDAuMTcxODkzLCAwLjIyNjgwMSwgMC4zMTQ3NDIsIDAuMzkyNTU4LCAwLjUwMzM4NiIsIFwKLSAgICAgICAgICAiMC4wMjU0MzgsIDAuMDk2NjQsIDAuMTcyMDU0LCAwLjIyNjk2MywgMC4zMTQ5NDEsIDAuMzkyMTk5LCAwLjUwMzEyOSIsIFwKLSAgICAgICAgICAiMC4wMjY5OTMsIDAuMDk3MzQzLCAwLjE3MjMzNCwgMC4yMjc0MTUsIDAuMzE1MTIxLCAwLjM5MjI3MiwgMC41MDI3NjEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjAwMjksIDAuMTA3MzkxLCAwLjE0NTY5NywgMC4xNzIyMjgsIDAuMjE0MywgMC4yNTEwMTYsIDAuMzAzNDQ4IiwgXAotICAgICAgICAgICIwLjA2NjU0OSwgMC4xMTM4OTMsIDAuMTUyMTk5LCAwLjE3ODc1LCAwLjIyMDgwNSwgMC4yNTc1MzMsIDAuMzA5OTc1IiwgXAotICAgICAgICAgICIwLjA3NTg0MiwgMC4xMjMwODMsIDAuMTYxMzU5LCAwLjE4Nzg1MywgMC4yMjk5NSwgMC4yNjY2NjcsIDAuMzE5MTA0IiwgXAotICAgICAgICAgICIwLjA4NTE0MywgMC4xMzIzMjQsIDAuMTcwNjE3LCAwLjE5NzA5OSwgMC4yMzkxODUsIDAuMjc1ODkzLCAwLjMyODMyMiIsIFwKLSAgICAgICAgICAiMC4wOTMyNjQsIDAuMTQwMzU5LCAwLjE3ODY3NCwgMC4yMDUxNzYsIDAuMjQ3MjUxLCAwLjI4Mzk2NCwgMC4zMzYzODEiLCBcCi0gICAgICAgICAgIjAuMTA1MTE5LCAwLjE1Mjk4MywgMC4xOTE2MjUsIDAuMjE4MTYxLCAwLjI2MDIzMywgMC4yOTY5NTQsIDAuMzQ5MzYzIiwgXAotICAgICAgICAgICIwLjExMzc0LCAwLjE2MjM1MywgMC4yMDEwMzQsIDAuMjI3NTcsIDAuMjY5NjkyLCAwLjMwNjM4NiwgMC4zNTg2NTciKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzEwNDEsIDAuMTA2MjkxLCAwLjE4MDE2OCwgMC4yMzM3OTgsIDAuMzIwMjMyLCAwLjM5NzAzNiwgMC41MDY4MzQiLCBcCi0gICAgICAgICAgIjAuMDMwOTc5LCAwLjEwNjE3NSwgMC4xODAwNTEsIDAuMjMzNzcxLCAwLjMyMDM5NywgMC4zOTY0MzYsIDAuNTA2ODQ4IiwgXAotICAgICAgICAgICIwLjAzMDg1MSwgMC4xMDYxNTUsIDAuMTgwMDU4LCAwLjIzMzc3MSwgMC4zMjAyMTYsIDAuMzk3MDI0LCAwLjUwNjgxOCIsIFwKLSAgICAgICAgICAiMC4wMzEzMTksIDAuMTA2NDg4LCAwLjE4MDM0LCAwLjIzMzkxNCwgMC4zMjAyOTEsIDAuMzk3MDQ5LCAwLjUwNjEwNyIsIFwKLSAgICAgICAgICAiMC4wMzI0MTksIDAuMTA3MzQ4LCAwLjE4MDgxMSwgMC4yMzQxNzksIDAuMzIwNzc0LCAwLjM5NzIwNywgMC41MDY0NjQiLCBcCi0gICAgICAgICAgIjAuMDM0MjMyLCAwLjEwODEzMiwgMC4xODEzOTEsIDAuMjM0NzU4LCAwLjMyMTA4LCAwLjM5NzI1OCwgMC41MDcwMjEiLCBcCi0gICAgICAgICAgIjAuMDM1OTcxLCAwLjEwOTIxNiwgMC4xODIxNDcsIDAuMjM1MzMzLCAwLjMyMTU0MSwgMC4zOTc2MDYsIDAuNTA3MjM5Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDMwMDI3LCAwLjA2OTMxMSwgMC4xMDY5NDcsIDAuMTMzNzg3LCAwLjE3NjcyNCwgMC4yMTQzNTMsIDAuMjY4MDUxIiwgXAotICAgICAgICAgICIwLjAzODIxNCwgMC4wNzc0NzEsIDAuMTE1MDk3LCAwLjE0MTk0LCAwLjE4NDg5NSwgMC4yMjI1MzYsIDAuMjc2MjkiLCBcCi0gICAgICAgICAgIjAuMDQ2ODI2LCAwLjA4NjI4OSwgMC4xMjM5MzYsIDAuMTUwNzUyLCAwLjE5Mzc0MSwgMC4yMzEzMjIsIDAuMjg1MDE1IiwgXAotICAgICAgICAgICIwLjA1MzA3NCwgMC4wOTI5MTYsIDAuMTMwNTM4LCAwLjE1NzM5MiwgMC4yMDAzMTQsIDAuMjM3ODU4LCAwLjI5MTU3MiIsIFwKLSAgICAgICAgICAiMC4wNTc4MDgsIDAuMDk4MDU5LCAwLjEzNTgxMSwgMC4xNjI0LCAwLjIwNTMxOSwgMC4yNDI4NzEsIDAuMjk2NTMiLCBcCi0gICAgICAgICAgIjAuMDYzNjkyLCAwLjEwNDQzNCwgMC4xNDIwNzcsIDAuMTY4ODk3LCAwLjIxMTc5OCwgMC4yNDkzMzgsIDAuMzAyOTciLCBcCi0gICAgICAgICAgIjAuMDY3NzY2LCAwLjEwOTAwNSwgMC4xNDY2NzQsIDAuMTczNDE3LCAwLjIxNjQyOSwgMC4yNTM5NjQsIDAuMzA3NiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxOTcyMSwgMC4wOTQ0NCwgMC4xNzEzNTgsIDAuMjI2NTU2LCAwLjMxNTAxNCwgMC4zOTE5NzEsIDAuNTAyNDcxIiwgXAotICAgICAgICAgICIwLjAxOTg2MywgMC4wOTQ0MTMsIDAuMTcxMzY3LCAwLjIyNjU0NSwgMC4zMTUxMjEsIDAuMzkxODkxLCAwLjUwMjQxNiIsIFwKLSAgICAgICAgICAiMC4wMjEyMDcsIDAuMDk0NzYyLCAwLjE3MTMwMywgMC4yMjY2MjgsIDAuMzE0NzcxLCAwLjM5MTgyMSwgMC41MDI1MTMiLCBcCi0gICAgICAgICAgIjAuMDIyNDgyLCAwLjA5NTM4MSwgMC4xNzE1NTQsIDAuMjI2ODE0LCAwLjMxNDUzLCAwLjM5MjY2MywgMC41MDMzMzIiLCBcCi0gICAgICAgICAgIjAuMDIzOTUsIDAuMDk1ODgzLCAwLjE3MjAyMSwgMC4yMjY2NjQsIDAuMzE1MzE1LCAwLjM5MjczMSwgMC41MDM0NjYiLCBcCi0gICAgICAgICAgIjAuMDI1ODI2LCAwLjA5Njk3NiwgMC4xNzIyNDUsIDAuMjI2OTIxLCAwLjMxNTM5MSwgMC4zOTI3NSwgMC41MDI4OTMiLCBcCi0gICAgICAgICAgIjAuMDI3MjYyLCAwLjA5NzgwOCwgMC4xNzI1NTUsIDAuMjI3MjA2LCAwLjMxNTIwOSwgMC4zOTI4NDMsIDAuNTAzNDYyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTAxOTgsIDAuMDA5OTYyLCAwLjAwOTk1MSwgMC4wMDk5NDcsIDAuMDA5OTQyLCAwLjAwOTkzNywgMC4wMDk5MzUiLCBcCi0gICAgICAgICAgIjAuMDA5OTc1LCAwLjAwOTc4LCAwLjAwOTc4NywgMC4wMDk3ODksIDAuMDA5Nzg4LCAwLjAwOTc4OCwgMC4wMDk3ODYiLCBcCi0gICAgICAgICAgIjAuMDA5ODgyLCAwLjAwOTcwOSwgMC4wMDk3MjMsIDAuMDA5NzIyLCAwLjAwOTczMiwgMC4wMDk3MzMsIDAuMDA5NzMzIiwgXAotICAgICAgICAgICIwLjAwOTk3MywgMC4wMDk3MiwgMC4wMDk3MzMsIDAuMDA5NzM4LCAwLjAwOTc0MiwgMC4wMDk3NDUsIDAuMDA5NzQyIiwgXAotICAgICAgICAgICIwLjAxMDE2MywgMC4wMDk4MTUsIDAuMDA5ODEzLCAwLjAwOTgwOCwgMC4wMDk4MSwgMC4wMDk4MTQsIDAuMDA5ODAzIiwgXAotICAgICAgICAgICIwLjAxMDQ5LCAwLjAxMDAwOSwgMC4wMDk5ODEsIDAuMDA5OTc4LCAwLjAwOTk2NywgMC4wMDk5NzEsIDAuMDA5OTc1IiwgXAotICAgICAgICAgICIwLjAxMDYyNSwgMC4wMTAyNDksIDAuMDEwMjA4LCAwLjAxMDE5OCwgMC4wMTAxODgsIDAuMDEwMTg1LCAwLjAxMDE3NiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE1MTMzLCAwLjAxNTQ0NCwgMC4wMTU1MDQsIDAuMDE1NTIzLCAwLjAxNTUzOSwgMC4wMTU1NDgsIDAuMDE1NTU2IiwgXAotICAgICAgICAgICIwLjAxNTExLCAwLjAxNTM4MiwgMC4wMTU0NTMsIDAuMDE1NDc2LCAwLjAxNTQ5OCwgMC4wMTU1MSwgMC4wMTU1MiIsIFwKLSAgICAgICAgICAiMC4wMTUyNTEsIDAuMDE1NDIxLCAwLjAxNTUwMSwgMC4wMTU1MywgMC4wMTU1NTcsIDAuMDE1NTcxLCAwLjAxNTU4NSIsIFwKLSAgICAgICAgICAiMC4wMTU0MzcsIDAuMDE1NTU1LCAwLjAxNTYxOSwgMC4wMTU2NDcsIDAuMDE1NjczLCAwLjAxNTY4OSwgMC4wMTU3MDMiLCBcCi0gICAgICAgICAgIjAuMDE1ODI3LCAwLjAxNTc1OCwgMC4wMTU4MDcsIDAuMDE1ODI4LCAwLjAxNTg1MywgMC4wMTU4NjgsIDAuMDE1ODgzIiwgXAotICAgICAgICAgICIwLjAxNjIyNCwgMC4wMTYwODIsIDAuMDE2MTMzLCAwLjAxNjE1NiwgMC4wMTYxODYsIDAuMDE2MjAyLCAwLjAxNjIxOSIsIFwKLSAgICAgICAgICAiMC4wMTY2OTUsIDAuMDE2NDQ0LCAwLjAxNjQ5OCwgMC4wMTY1MTcsIDAuMDE2NTQxLCAwLjAxNjU1NSwgMC4wMTY1NzIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMDEzLCAwLjAwOTk0OSwgMC4wMDk5NTksIDAuMDA5OTUyLCAwLjAwOTk1NSwgMC4wMDk5NTksIDAuMDA5OTU5IiwgXAotICAgICAgICAgICIwLjAwOTk2NywgMC4wMDk3OCwgMC4wMDk3OTUsIDAuMDA5Nzk3LCAwLjAwOTgwNiwgMC4wMDk4MDksIDAuMDA5ODExIiwgXAotICAgICAgICAgICIwLjAwOTg5OSwgMC4wMDk3MTksIDAuMDA5NzQ1LCAwLjAwOTc0NCwgMC4wMDk3NTcsIDAuMDA5NzY0LCAwLjAwOTc2OCIsIFwKLSAgICAgICAgICAiMC4wMTAxMzEsIDAuMDA5Nzk4LCAwLjAwOTc5NiwgMC4wMDk3OTYsIDAuMDA5Nzk3LCAwLjAwOTgwMiwgMC4wMDk4MDIiLCBcCi0gICAgICAgICAgIjAuMDEwMzIyLCAwLjAwOTksIDAuMDA5ODc5LCAwLjAwOTg4MywgMC4wMDk4NzgsIDAuMDA5ODg0LCAwLjAwOTg3NyIsIFwKLSAgICAgICAgICAiMC4wMTA1MywgMC4wMTAxNTUsIDAuMDEwMTEzLCAwLjAxMDEwMywgMC4wMTAwOTEsIDAuMDEwMDg2LCAwLjAxMDA3NiIsIFwKLSAgICAgICAgICAiMC4wMTA4MzEsIDAuMDEwMzQ1LCAwLjAxMDMxNSwgMC4wMTAzMDcsIDAuMDEwMzA1LCAwLjAxMDI5MywgMC4wMTAyOSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE0MjA3LCAwLjAxNDU4MywgMC4wMTQ2NTIsIDAuMDE0Njc1LCAwLjAxNDY5NCwgMC4wMTQ3MDQsIDAuMDE0NzE0IiwgXAotICAgICAgICAgICIwLjAxNDE3MiwgMC4wMTQ1MTEsIDAuMDE0NTk1LCAwLjAxNDYyMywgMC4wMTQ2NDgsIDAuMDE0NjYyLCAwLjAxNDY3NCIsIFwKLSAgICAgICAgICAiMC4wMTQyOTQsIDAuMDE0NTE3LCAwLjAxNDYxOSwgMC4wMTQ2NTQsIDAuMDE0Njg2LCAwLjAxNDcwNCwgMC4wMTQ3MiIsIFwKLSAgICAgICAgICAiMC4wMTQ0NjUsIDAuMDE0NjUsIDAuMDE0NzM2LCAwLjAxNDc2OSwgMC4wMTQ4MDEsIDAuMDE0ODE4LCAwLjAxNDgzNiIsIFwKLSAgICAgICAgICAiMC4wMTQ3NjIsIDAuMDE0Nzk5LCAwLjAxNDg4MiwgMC4wMTQ5MTYsIDAuMDE0OTUyLCAwLjAxNDk3MiwgMC4wMTQ5OSIsIFwKLSAgICAgICAgICAiMC4wMTUxOTcsIDAuMDE1MjE1LCAwLjAxNTI1MywgMC4wMTUyNTQsIDAuMDE1MjkzLCAwLjAxNTMyLCAwLjAxNTMzNSIsIFwKLSAgICAgICAgICAiMC4wMTU2OTUsIDAuMDE1NDgyLCAwLjAxNTUzLCAwLjAxNTU5MiwgMC4wMTU2MzEsIDAuMDE1NjUyLCAwLjAxNTY0NyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEwMTExLCAwLjAwOTk4LCAwLjAwOTk4NywgMC4wMDk5OTIsIDAuMDA5OTg5LCAwLjAwOTk5NywgMC4wMDk5OTEiLCBcCi0gICAgICAgICAgIjAuMDA5OTcxLCAwLjAwOTc5MiwgMC4wMDk4MTUsIDAuMDA5ODI0LCAwLjAwOTgzNiwgMC4wMDk4NDMsIDAuMDA5ODQ1IiwgXAotICAgICAgICAgICIwLjAxMDAyLCAwLjAwOTc4NiwgMC4wMDk4MDMsIDAuMDA5ODAyLCAwLjAwOTgyMiwgMC4wMDk4MjQsIDAuMDA5ODIyIiwgXAotICAgICAgICAgICIwLjAxMDI4MSwgMC4wMDk4NzMsIDAuMDA5ODc5LCAwLjAwOTg4NSwgMC4wMDk4OTEsIDAuMDA5ODk1LCAwLjAwOTg5OSIsIFwKLSAgICAgICAgICAiMC4wMTA1MTUsIDAuMDEwMDE5LCAwLjAxMDAxMywgMC4wMTAwMTUsIDAuMDEwMDE3LCAwLjAxMDAyLCAwLjAxMDAxNyIsIFwKLSAgICAgICAgICAiMC4wMTEwOTgsIDAuMDEwMzc1LCAwLjAxMDM0NSwgMC4wMTAzMjUsIDAuMDEwMzIyLCAwLjAxMDMzMywgMC4wMTAyOTUiLCBcCi0gICAgICAgICAgIjAuMDExNDY5LCAwLjAxMDcxOSwgMC4wMTA1ODYsIDAuMDEwNTg1LCAwLjAxMDU2NCwgMC4wMTA1NzIsIDAuMDEwNTYzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTMxMSwgMC4wMTM0ODYsIDAuMDEzNTUsIDAuMDEzNTcxLCAwLjAxMzU4OSwgMC4wMTM1OTgsIDAuMDEzNjA3IiwgXAotICAgICAgICAgICIwLjAxMzA1LCAwLjAxMzQyLCAwLjAxMzUwNSwgMC4wMTM1MzMsIDAuMDEzNTU5LCAwLjAxMzU3MiwgMC4wMTM1ODUiLCBcCi0gICAgICAgICAgIjAuMDEzMjAxLCAwLjAxMzQ0NSwgMC4wMTM1MzUsIDAuMDEzNTY4LCAwLjAxMzU5OCwgMC4wMTM2MTQsIDAuMDEzNjI5IiwgXAotICAgICAgICAgICIwLjAxMzM2NywgMC4wMTM1NjUsIDAuMDEzNjUzLCAwLjAxMzY4NiwgMC4wMTM3MTgsIDAuMDEzNzE5LCAwLjAxMzczNiIsIFwKLSAgICAgICAgICAiMC4wMTM4NDEsIDAuMDEzNzg1LCAwLjAxMzgwOSwgMC4wMTM4NzUsIDAuMDEzODcxLCAwLjAxMzg4OSwgMC4wMTM5MDQiLCBcCi0gICAgICAgICAgIjAuMDE0MTE0LCAwLjAxNDA0MiwgMC4wMTQxMTIsIDAuMDE0MTQyLCAwLjAxNDE5OCwgMC4wMTQyMjIsIDAuMDE0MjQ0IiwgXAotICAgICAgICAgICIwLjAxNDU4LCAwLjAxNDM1OCwgMC4wMTQ0NjEsIDAuMDE0NDU0LCAwLjAxNDQ5NCwgMC4wMTQ1MTgsIDAuMDE0NTQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJEIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMDEzMSwgMC4wMDk5NTQsIDAuMDA5OTc3LCAwLjAwOTk4NywgMC4wMDk5OTYsIDAuMDEwMDAxLCAwLjAxMDAwNSIsIFwKLSAgICAgICAgICAiMC4wMDk5NzcsIDAuMDA5ODI3LCAwLjAwOTg1OCwgMC4wMDk4NzIsIDAuMDA5ODg3LCAwLjAwOTg5NSwgMC4wMDk5MDIiLCBcCi0gICAgICAgICAgIjAuMDEwMTQ3LCAwLjAwOTkzMywgMC4wMDk5NjEsIDAuMDA5OTc1LCAwLjAwOTk5LCAwLjAxLCAwLjAxMDAwNCIsIFwKLSAgICAgICAgICAiMC4wMTA2NDMsIDAuMDEwMTk4LCAwLjAxMDE4NCwgMC4wMTAxOTEsIDAuMDEwMTk1LCAwLjAxMDE5OSwgMC4wMTAyMDIiLCBcCi0gICAgICAgICAgIjAuMDEwNzgyLCAwLjAxMDMwMiwgMC4wMTAyOTgsIDAuMDEwMzA0LCAwLjAxMDMxMSwgMC4wMTAzMTcsIDAuMDEwMzIyIiwgXAotICAgICAgICAgICIwLjAxMTI5NiwgMC4wMTA3NTgsIDAuMDEwNzMzLCAwLjAxMDcyMiwgMC4wMTA3MjIsIDAuMDEwNzE5LCAwLjAxMDcxNyIsIFwKLSAgICAgICAgICAiMC4wMTE4ODcsIDAuMDExMTU1LCAwLjAxMTEyMSwgMC4wMTExMDUsIDAuMDExMDk1LCAwLjAxMTA5LCAwLjAxMTA4NSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDExOTg1LCAwLjAxMjM1MSwgMC4wMTI0MTIsIDAuMDEyNDMxLCAwLjAxMjQ0OCwgMC4wMTI0NTcsIDAuMDEyNDY1IiwgXAotICAgICAgICAgICIwLjAxMTkzLCAwLjAxMjI4OSwgMC4wMTIzNjgsIDAuMDEyMzk0LCAwLjAxMjQxNiwgMC4wMTI0MjgsIDAuMDEyNDM5IiwgXAotICAgICAgICAgICIwLjAxMjA3OSwgMC4wMTIzMTcsIDAuMDEyNDA0LCAwLjAxMjQzLCAwLjAxMjQ2MiwgMC4wMTI0NzYsIDAuMDEyNDg2IiwgXAotICAgICAgICAgICIwLjAxMjI0OCwgMC4wMTI0MzQsIDAuMDEyNTIxLCAwLjAxMjU1MiwgMC4wMTI1ODcsIDAuMDEyNjA1LCAwLjAxMjYxNiIsIFwKLSAgICAgICAgICAiMC4wMTI2NDksIDAuMDEyNjA0LCAwLjAxMjY4NywgMC4wMTI3MTYsIDAuMDEyNzUsIDAuMDEyNzY4LCAwLjAxMjc4NSIsIFwKLSAgICAgICAgICAiMC4wMTI5MDYsIDAuMDEzMDM1LCAwLjAxMzA2NSwgMC4wMTMwODksIDAuMDEzMTEzLCAwLjAxMzEyNywgMC4wMTMxMjQiLCBcCi0gICAgICAgICAgIjAuMDEzMzczLCAwLjAxMzM2NSwgMC4wMTMzOTYsIDAuMDEzMzcxLCAwLjAxMzQzNCwgMC4wMTM0NDgsIDAuMDEzNDY1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IEFPSTIxMVhMICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChBT0kyMTFYTCkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjI2ODc1OTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQTApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY5MTk0MzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2OTAyNzI7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjkxOTQzOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDI5NiwgMC4wMDAyOTYsIDAuMDAwMjk2LCAwLjAwMDI5NiwgMC4wMDAyOTYsIDAuMDAwMjk2LCAwLjAwMDI5NiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDMxNywgMC4wMDAzMDYsIDAuMDAwMzAxLCAwLjAwMDI5OCwgMC4wMDAyOTgsIDAuMDAwMjk4LCAwLjAwMDI5OCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQTEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY4ODc1MjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2ODYyODM7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjg4NzUyOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDE1OCwgMC4wMDAxNTgsIDAuMDAwMTU4LCAwLjAwMDE1NywgMC4wMDAxNTgsIDAuMDAwMTU4LCAwLjAwMDE1OCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDMzNywgMC4wMDAzMzgsIDAuMDAwMzM3LCAwLjAwMDMzOCwgMC4wMDAzMzgsIDAuMDAwMzM4LCAwLjAwMDMzOCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQjApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY2MzgzMTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2NjIxNTU7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjYzODMxOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDI1NCwgMC4wMDAyOCwgMC4wMDAyODMsIDAuMDAwMjg1LCAwLjAwMDI4OSwgMC4wMDAyOSwgMC4wMDAyOTIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAzMDQsIDAuMDAwMzA0LCAwLjAwMDMwNSwgMC4wMDAzMDUsIDAuMDAwMzA1LCAwLjAwMDMwNSwgMC4wMDAzMDUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEMwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2NzkzNjQ7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjc5MzY0OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDY3OTA1MjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAwNzMsIDAuMDAwMDczLCAwLjAwMDA3MywgMC4wMDAwNzMsIDAuMDAwMDczLCAwLjAwMDA3MywgMC4wMDAwNzMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyNzIsIDAuMDAwMjcyLCAwLjAwMDI3MiwgMC4wMDAyNzIsIDAuMDAwMjcyLCAwLjAwMDI3MiwgMC4wMDAyNzIiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4wNzY0ODM4OwotICAgIGZ1bmN0aW9uIDogIighKCgoQTAgQTEpK0IwKStDMCkpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTY2MTY0LCAwLjE5MzcyNywgMC40NDM3MTMsIDAuODYwNDY2LCAxLjI3NzA0LCAyLjI0Nzk0LCAyLjgwMTEyIiwgXAotICAgICAgICAgICIwLjE3MjUxNCwgMC4yMDAxOTksIDAuNDQ5OTAxLCAwLjg2Njg2NCwgMS4yODMxNiwgMi4yNTMzMywgMi44MDc1IiwgXAotICAgICAgICAgICIwLjE3NzkzNywgMC4yMDU3MTQsIDAuNDU1Mzg4LCAwLjg3MTgwOSwgMS4yODgzMiwgMi4yNTkzNSwgMi44MTI3OSIsIFwKLSAgICAgICAgICAiMC4xODI4MDEsIDAuMjEwNTQsIDAuNDYwNDg2LCAwLjg3NzUyNCwgMS4yOTM3NSwgMi4yNjU0MywgMi44MTgxOSIsIFwKLSAgICAgICAgICAiMC4xODc1NzIsIDAuMjE1MjY1LCAwLjQ2NTYxMiwgMC44ODExNjYsIDEuMjk4NjksIDIuMjY5OTQsIDIuODIyNDQiLCBcCi0gICAgICAgICAgIjAuMTk0OTY1LCAwLjIyMjcwNywgMC40NzI0MTYsIDAuODg5NDQ5LCAxLjMwNDk2LCAyLjI3NTE3LCAyLjgzMTI1IiwgXAotICAgICAgICAgICIwLjIwMTczMywgMC4yMjk0NjcsIDAuNDc5MjQsIDAuODk2MDg5LCAxLjMxMTksIDIuMjgxNzYsIDIuODM3NzYiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzI3ODAxLCAwLjM4NjcyMSwgMC45MTYzODgsIDEuNzk4NDgsIDIuNjgxMzgsIDQuNzM3NzYsIDUuOTE1ODUiLCBcCi0gICAgICAgICAgIjAuMzI3ODY3LCAwLjM4NjczNCwgMC45MTYzMDcsIDEuNzk4NDgsIDIuNjgxMTIsIDQuNzM3MzYsIDUuOTE1ODciLCBcCi0gICAgICAgICAgIjAuMzI3OTQ4LCAwLjM4NjY5NCwgMC45MTYxNjksIDEuNzk4NzEsIDIuNjc5OTEsIDQuNzM3NjYsIDUuOTE3MTIiLCBcCi0gICAgICAgICAgIjAuMzI4NjcxLCAwLjM4NzE3NCwgMC45MTU4MTUsIDEuNzk5MDcsIDIuNjgwNjksIDQuNzM4ODQsIDUuOTE0NTkiLCBcCi0gICAgICAgICAgIjAuMzMwMjMsIDAuMzg4Mjc1LCAwLjkxNjM3MiwgMS43OTkzOCwgMi42ODE3NSwgNC43Mzc1OSwgNS45MTY1NCIsIFwKLSAgICAgICAgICAiMC4zMzM1MTcsIDAuMzkxMjU4LCAwLjkxNjYxNCwgMS43OTg4NiwgMi42Nzk1OSwgNC43NDIsIDUuOTEzMjMiLCBcCi0gICAgICAgICAgIjAuMzM3Njk2LCAwLjM5NDkxNywgMC45MTcyMjYsIDEuNzk4NzEsIDIuNjc5NjksIDQuNzQxNDYsIDUuOTEzNjEiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTA1MzM2LCAwLjEyMjM5OCwgMC4yNzUyMDQsIDAuNTI5MzA3LCAwLjc4MzYzMywgMS4zNzY0MiwgMS43MTUzIiwgXAotICAgICAgICAgICIwLjExMTU3NSwgMC4xMjg2MzcsIDAuMjgxNDcsIDAuNTM1NjAzLCAwLjc4OTg0NiwgMS4zODI4MiwgMS43MjAzNSIsIFwKLSAgICAgICAgICAiMC4xMTk0MDIsIDAuMTM2NTQzLCAwLjI4OTUxLCAwLjU0MzYxLCAwLjc5NzY4OSwgMS4zOTA4OSwgMS43Mjk4NiIsIFwKLSAgICAgICAgICAiMC4xMjczNjgsIDAuMTQ0Mjg2LCAwLjI5NzQ1MywgMC41NTE2OTQsIDAuODA1NTkxLCAxLjM5ODYzLCAxLjczNzI5IiwgXAotICAgICAgICAgICIwLjEzNTI2LCAwLjE1MjMxNywgMC4zMDUyMDQsIDAuNTU5MzgxLCAwLjgxMzYyMSwgMS40MDU3NSwgMS43NDQ2NyIsIFwKLSAgICAgICAgICAiMC4xNDc5NzUsIDAuMTY0ODU4LCAwLjMxNzc1NCwgMC41NzIzMjcsIDAuODI2NjgxLCAxLjQxODk1LCAxLjc1NzYiLCBcCi0gICAgICAgICAgIjAuMTU4NDk5LCAwLjE3NjA0MywgMC4zMjg5OTIsIDAuNTgzNzg4LCAwLjgzNzkxOSwgMS40MzAxNywgMS43NjkwOCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMDAzMjQsIDAuMjM1MTgsIDAuNTQ4NzY2LCAxLjA3MTMsIDEuNTkzNCwgMi44MTI1MywgMy41MDg0NSIsIFwKLSAgICAgICAgICAiMC4yMDAzOTgsIDAuMjM1MTE0LCAwLjU0ODY4OSwgMS4wNzExNCwgMS41OTM1NCwgMi44MTIyNCwgMy41MDc4MiIsIFwKLSAgICAgICAgICAiMC4yMDExNjEsIDAuMjM1NjExLCAwLjU0ODY3OCwgMS4wNzEwNCwgMS41OTMzLCAyLjgxMjE4LCAzLjUwODU5IiwgXAotICAgICAgICAgICIwLjIwMzk4MywgMC4yMzc3NSwgMC41NDg3MTEsIDEuMDcxOTcsIDEuNTkzNjEsIDIuODEyNzMsIDMuNTA3NzQiLCBcCi0gICAgICAgICAgIjAuMjA4MDU4LCAwLjI0MTM2NiwgMC41NDkxMDMsIDEuMDcxNzEsIDEuNTkzMzgsIDIuODExNTgsIDMuNTA4NzEiLCBcCi0gICAgICAgICAgIjAuMjE2Mjg5LCAwLjI0ODY3NSwgMC41NTE4NTEsIDEuMDcxNjIsIDEuNTkzMzIsIDIuODEyMDksIDMuNTA3ODkiLCBcCi0gICAgICAgICAgIjAuMjI0MjcyLCAwLjI1NjQyLCAwLjU1NTU4NCwgMS4wNzE0OSwgMS41OTMzNCwgMi44MTE3NiwgMy41MDg4NyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTYxNTQyLCAwLjE4ODk4MiwgMC40MzYxNDMsIDAuODQ4OTA1LCAxLjI1OTQ5LCAyLjIyMTQsIDIuNzY5NjEiLCBcCi0gICAgICAgICAgIjAuMTY3ODM4LCAwLjE5NTMzNCwgMC40NDI4NDgsIDAuODU0MTQ5LCAxLjI2NzM3LCAyLjIyODkxLCAyLjc3NTA5IiwgXAotICAgICAgICAgICIwLjE3MzM0LCAwLjIwMDgxNSwgMC40NDgwNjUsIDAuODU5ODkxLCAxLjI3MjQ0LCAyLjIzMzc0LCAyLjc4MTc5IiwgXAotICAgICAgICAgICIwLjE3ODE3MywgMC4yMDU2NTMsIDAuNDUzMTcxLCAwLjg2NTc1OSwgMS4yNzY2MiwgMi4yMzg1OCwgMi43ODY0OCIsIFwKLSAgICAgICAgICAiMC4xODI5MzUsIDAuMjEwNDc4LCAwLjQ1ODEwMywgMC44Njk2NjUsIDEuMjgyNjksIDIuMjQ0NDYsIDIuNzkxMDYiLCBcCi0gICAgICAgICAgIjAuMTkwNDk2LCAwLjIxNzg3MiwgMC40NjUyLCAwLjg3ODA1MiwgMS4yOTAzMywgMi4yNDk2NSwgMi44MDAxNCIsIFwKLSAgICAgICAgICAiMC4xOTcyMDYsIDAuMjI0NjgyLCAwLjQ3MjI0NywgMC44ODQxODEsIDEuMjk2NjQsIDIuMjU2ODUsIDIuODA3MDciKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzE5Nzg1LCAwLjM3ODQ3NywgMC45MDE2OTcsIDEuNzc0ODQsIDIuNjQ5MzcsIDQuNjgxNzUsIDUuODQ2NDYiLCBcCi0gICAgICAgICAgIjAuMzIwMjM0LCAwLjM3ODUwNCwgMC45MDE2MjksIDEuNzc0MDQsIDIuNjQ2NjUsIDQuNjgyMTYsIDUuODQ5MjEiLCBcCi0gICAgICAgICAgIjAuMzIwMjE4LCAwLjM3ODA4NCwgMC45MDI0NTksIDEuNzc0MjQsIDIuNjQ2MDksIDQuNjgxNjQsIDUuODQ2NjMiLCBcCi0gICAgICAgICAgIjAuMzIwOTQxLCAwLjM3ODQzNiwgMC45MDEzOTIsIDEuNzc0NjgsIDIuNjQ4MiwgNC42ODE3LCA1Ljg0NjA2IiwgXAotICAgICAgICAgICIwLjMyMjMyNSwgMC4zNzk1OCwgMC45MDE2MzksIDEuNzc1MSwgMi42NDc2MywgNC42ODIzMywgNS44NDY3NCIsIFwKLSAgICAgICAgICAiMC4zMjU4NzYsIDAuMzgyNzc5LCAwLjkwMTgwOSwgMS43NzQ0NCwgMi42NDY4NiwgNC42ODQ0MSwgNS44NDQ5MiIsIFwKLSAgICAgICAgICAiMC4zMzAxMDcsIDAuMzg2NjMyLCAwLjkwMjkzOCwgMS43NzQwNCwgMi42NDU3NywgNC42ODMxOSwgNS44NDQ1MiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDM5MjMsIDAuMTIwOTU0LCAwLjI3Mzc2NSwgMC41Mjc4MzcsIDAuNzgxOCwgMS4zNzQ0NSwgMS43MTM3NSIsIFwKLSAgICAgICAgICAiMC4xMTEyNDIsIDAuMTI4MjcxLCAwLjI4MTA4NiwgMC41MzUxNjUsIDAuNzg5MTMsIDEuMzgyMjksIDEuNzIwMTMiLCBcCi0gICAgICAgICAgIjAuMTIwNTIzLCAwLjEzNzU2NywgMC4yOTAzMTEsIDAuNTQ0NjExLCAwLjc5ODU1MywgMS4zOTE0NywgMS43MzA0MyIsIFwKLSAgICAgICAgICAiMC4xMzAxMDMsIDAuMTQ3MTI1LCAwLjI5OTgyNiwgMC41NTM4MywgMC44MDc5MTIsIDEuNDAwOTQsIDEuNzQwMDMiLCBcCi0gICAgICAgICAgIjAuMTM5Nzk0LCAwLjE1NjczNCwgMC4zMDkzNSwgMC41NjM0NTQsIDAuODE3MjgyLCAxLjQwOTg4LCAxLjc0OTExIiwgXAotICAgICAgICAgICIwLjE1NTQxOCwgMC4xNzIzODIsIDAuMzI0NTE3LCAwLjU3ODczNywgMC44MzI1NzcsIDEuNDI1MzgsIDEuNzY0MzkiLCBcCi0gICAgICAgICAgIjAuMTY5MjMxLCAwLjE4NjAxMywgMC4zMzgwODYsIDAuNTkxODAxLCAwLjg0NTc1MywgMS40MzgzMSwgMS43Nzc5NiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMDAzMTYsIDAuMjM1MTQ2LCAwLjU0ODg1MywgMS4wNzE1NywgMS41OTM2MSwgMi44MTI0OCwgMy41MDg3OSIsIFwKLSAgICAgICAgICAiMC4yMDAzMDgsIDAuMjM1MTM0LCAwLjU0ODg3OCwgMS4wNzE0NiwgMS41OTM2NCwgMi44MTI0OSwgMy41MDc5MSIsIFwKLSAgICAgICAgICAiMC4yMDE0ODEsIDAuMjM1Njg3LCAwLjU0ODc5OCwgMS4wNzIwMywgMS41OTM3MSwgMi44MTI3NywgMy41MDg3NiIsIFwKLSAgICAgICAgICAiMC4yMDUzOTIsIDAuMjM4ODc0LCAwLjU0ODgzMiwgMS4wNzEzOSwgMS41OTM2OCwgMi44MTIwMiwgMy41MDg1NyIsIFwKLSAgICAgICAgICAiMC4yMTEyNzMsIDAuMjQzODM4LCAwLjU0OTAyNCwgMS4wNzEwMywgMS41OTM2OSwgMi44MTM1OSwgMy41MDg3NCIsIFwKLSAgICAgICAgICAiMC4yMjI1MzYsIDAuMjU0MjYsIDAuNTUyNjA3LCAxLjA3MTI1LCAxLjU5MzgsIDIuODEyMjMsIDMuNTA4NzQiLCBcCi0gICAgICAgICAgIjAuMjMzODQ0LCAwLjI2NDc3MywgMC41NTc5NTksIDEuMDcxNiwgMS41OTQsIDIuODExNTgsIDMuNTA4OTciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjAiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE2MTA1LCAwLjE4ODk5NywgMC40MzkwNDksIDAuODU1MDU1LCAxLjI3MjE2LCAyLjI0MjY5LCAyLjc5NjQyIiwgXAotICAgICAgICAgICIwLjE2NzA3MSwgMC4xOTQ5MjQsIDAuNDQ0OTg3LCAwLjg2MDI0OSwgMS4yNzc2NCwgMi4yNTAxOCwgMi44MDE5OCIsIFwKLSAgICAgICAgICAiMC4xNzQxMDIsIDAuMjAyMDA3LCAwLjQ1MTY2NSwgMC44Njg3NDUsIDEuMjg0NTYsIDIuMjU2ODIsIDIuODEwNyIsIFwKLSAgICAgICAgICAiMC4xODEzODksIDAuMjA5MTQ1LCAwLjQ1OTIsIDAuODc1MDY0LCAxLjI5MTE3LCAyLjI2Mzg3LCAyLjgxODI1IiwgXAotICAgICAgICAgICIwLjE4ODYyNywgMC4yMTYzMjQsIDAuNDY2MzQ0LCAwLjg4MjQ1OCwgMS4zMDAwOSwgMi4yNzEyMSwgMi44MjM1NCIsIFwKLSAgICAgICAgICAiMC4yMDA4MjgsIDAuMjI4NTMsIDAuNDc3OTc0LCAwLjg5NDM4OCwgMS4zMTE3LCAyLjI4MDQxLCAyLjgzNTQ4IiwgXAotICAgICAgICAgICIwLjIxMDk5NiwgMC4yMzg3MTgsIDAuNDg4NDA4LCAwLjkwNDI3NCwgMS4zMjE0OCwgMi4yOTM5LCAyLjg0NTM3Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMyODAwMywgMC4zODY4MDgsIDAuOTE2MjQsIDEuNzk4MTMsIDIuNjgwOTMsIDQuNzM3NzYsIDUuOTE0ODgiLCBcCi0gICAgICAgICAgIjAuMzI3ODgzLCAwLjM4Njc3OCwgMC45MTYzOTMsIDEuNzk5MjQsIDIuNjgwMjUsIDQuNzM5NiwgNS45MTY3MSIsIFwKLSAgICAgICAgICAiMC4zMjc5MzksIDAuMzg2NjU2LCAwLjkxNjI1LCAxLjc5ODQ4LCAyLjY4MTU1LCA0LjczOTk4LCA1LjkxNDM5IiwgXAotICAgICAgICAgICIwLjMyOTA2NywgMC4zODczNjcsIDAuOTE1OTM4LCAxLjc5OTQsIDIuNjgxNjYsIDQuNzM5OTQsIDUuOTEzOCIsIFwKLSAgICAgICAgICAiMC4zMzE3NTMsIDAuMzg5MjEzLCAwLjkxNjA5NiwgMS43OTc1OCwgMi42ODA4OSwgNC43Mzc3NSwgNS45MTgxMiIsIFwKLSAgICAgICAgICAiMC4zMzc4MDMsIDAuMzk0Mjg1LCAwLjkxNjM4NywgMS43OTc2MywgMi42ODA4MSwgNC43NDI3MSwgNS45MTY2MiIsIFwKLSAgICAgICAgICAiMC4zNDM2MDgsIDAuMzk5NjYsIDAuOTE3OTk4LCAxLjgwMDU4LCAyLjY4MDkyLCA0LjczOTkxLCA1LjkyMDcyIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1NzQyMSwgMC4wNjcxMjIsIDAuMTU0MTcyLCAwLjI5ODg4NCwgMC40NDM1MjYsIDAuNzgxMTA3LCAwLjk3NDIxOCIsIFwKLSAgICAgICAgICAiMC4wNjU2MDgsIDAuMDc1MjksIDAuMTYyMzQzLCAwLjMwNzAxNSwgMC40NTE2NTksIDAuNzg5NDc5LCAwLjk4MjA2NCIsIFwKLSAgICAgICAgICAiMC4wNzYwMzEsIDAuMDg1NjY0LCAwLjE3MjQ3NCwgMC4zMTczNzMsIDAuNDYxOTksIDAuNzk5NDY0LCAwLjk5MjMzMiIsIFwKLSAgICAgICAgICAiMC4wODYyNCwgMC4wOTU3ODEsIDAuMTgyOTgsIDAuMzI3MzA3LCAwLjQ3MTc2LCAwLjgwOTM5OSwgMS4wMDE5OCIsIFwKLSAgICAgICAgICAiMC4wOTczMzQsIDAuMTA2Mzk5LCAwLjE5Mjk4MSwgMC4zMzcyNDEsIDAuNDgyMjQ3LCAwLjgxOTQxNiwgMS4wMTI2MiIsIFwKLSAgICAgICAgICAiMC4xMTIwOTMsIDAuMTIzMTEzLCAwLjIwOTc5OSwgMC4zNTQxMSwgMC40OTY1MDYsIDAuODM2MTI1LCAxLjAyODYyIiwgXAotICAgICAgICAgICIwLjEyMjgzOSwgMC4xMzUyMjQsIDAuMjI0NDU4LCAwLjM2ODYxMywgMC41MTMxNjQsIDAuODUwNjIxLCAxLjA0MzMzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExMTM4LCAwLjEzMTE2NiwgMC4zMDkyMiwgMC42MDYwMjIsIDAuOTAyOTM4LCAxLjU5NDkzLCAxLjk5MDU2IiwgXAotICAgICAgICAgICIwLjExMTcxNiwgMC4xMzEyNzMsIDAuMzA5MTc1LCAwLjYwNjA4OSwgMC45MDI4NjgsIDEuNTk0OTMsIDEuOTkwNjMiLCBcCi0gICAgICAgICAgIjAuMTE2MDg0LCAwLjEzNDcwNywgMC4zMDkxOTgsIDAuNjA2MDU2LCAwLjkwMjU4OSwgMS41OTUsIDEuOTkwNDYiLCBcCi0gICAgICAgICAgIjAuMTIzMzg0LCAwLjE0MTIwNSwgMC4zMTA4NTUsIDAuNjA2MDMsIDAuOTAyNTQ5LCAxLjU5NDkzLCAxLjk5MDQ4IiwgXAotICAgICAgICAgICIwLjEzMDg5MywgMC4xNDkwMTcsIDAuMzE0NjEyLCAwLjYwNjEyNSwgMC45MDI3NjYsIDEuNTk0ODksIDEuOTkwNTQiLCBcCi0gICAgICAgICAgIjAuMTQ1Mjc5LCAwLjE2MjAzMiwgMC4zMjMzNzUsIDAuNjA4NTUyLCAwLjkwMjcwOCwgMS41OTUwNiwgMS45OTAzNyIsIFwKLSAgICAgICAgICAiMC4xNTkwNDIsIDAuMTc1MTAyLCAwLjMzMjgxMSwgMC42MTMxOTcsIDAuOTAzODAzLCAxLjU5NDkzLCAxLjk5MDciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQzAiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE1NTgxMiwgMC4xODM1NCwgMC40MzMxODcsIDAuODQ5NDIsIDEuMjY1MDMsIDIuMjM1NjcsIDIuNzkxNDEiLCBcCi0gICAgICAgICAgIjAuMTYyNzA3LCAwLjE5MDUyMywgMC40NDA0NDcsIDAuODU2NywgMS4yNzM2OSwgMi4yNDYwMywgMi43OTg5NCIsIFwKLSAgICAgICAgICAiMC4xNzEzMzksIDAuMTk5MDgsIDAuNDQ4OTA5LCAwLjg2NDg1MiwgMS4yODEzLCAyLjI1MjU3LCAyLjgwNjE1IiwgXAotICAgICAgICAgICIwLjE4MDIyMywgMC4yMDc5NDgsIDAuNDU4MDIyLCAwLjg3MzM4NSwgMS4yOTA2MywgMi4yNjI4OSwgMi44MTUxMiIsIFwKLSAgICAgICAgICAiMC4xODk0MjEsIDAuMjE3MDQ1LCAwLjQ2NjQyLCAwLjg4MjczMiwgMS4yOTgwMywgMi4yNzAzLCAyLjgyNDExIiwgXAotICAgICAgICAgICIwLjIwNDEzMiwgMC4yMzE3MDcsIDAuNDgwODcxLCAwLjg5NzE4NywgMS4zMTI0OSwgMi4yODU0LCAyLjgzNzM4IiwgXAotICAgICAgICAgICIwLjIxNzMxMiwgMC4yNDQ3NzEsIDAuNDkzMDgxLCAwLjkwOTA0NSwgMS4zMjQ2NCwgMi4yOTQ5MiwgMi44NDk1MyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMjc3ODksIDAuMzg2NzM0LCAwLjkxNjMxNCwgMS43OTg4OCwgMi42ODIyNiwgNC43NDExNCwgNS45MTQ2NyIsIFwKLSAgICAgICAgICAiMC4zMjc5OTYsIDAuMzg2NjkzLCAwLjkxNjM5NywgMS43OTc3OSwgMi42ODEyOCwgNC43Mzk3NCwgNS45MTM1MiIsIFwKLSAgICAgICAgICAiMC4zMjc3OTQsIDAuMzg2NjIyLCAwLjkxNTc2OCwgMS44MDA4OSwgMi42Nzk1OSwgNC43Mzc2LCA1LjkxNjc4IiwgXAotICAgICAgICAgICIwLjMyOTUzNiwgMC4zODczLCAwLjkxNjQyLCAxLjc5ODU0LCAyLjY4MDg4LCA0LjczOTQ5LCA1LjkxNDk0IiwgXAotICAgICAgICAgICIwLjMzMzEzNSwgMC4zOTAwMDYsIDAuOTE2NDAxLCAxLjc5Nzg5LCAyLjY4MTkxLCA0LjczNzc2LCA1LjkxNDc5IiwgXAotICAgICAgICAgICIwLjM0MTA4NywgMC4zOTY5MDgsIDAuOTE1OTQ5LCAxLjc5ODc2LCAyLjY3OTQ2LCA0LjczOTM3LCA1LjkxNjA5IiwgXAotICAgICAgICAgICIwLjM0OTY5OSwgMC40MDQ3NDEsIDAuOTE4MDA1LCAxLjc5NzY4LCAyLjY4NDM1LCA0Ljc0NTE1LCA1LjkxNzA5Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1NTU2OSwgMC4wNjUyNTEsIDAuMTUyMjk0LCAwLjI5Njk4NiwgMC40NDE2NDcsIDAuNzc5NDU5LCAwLjk3MTk5MSIsIFwKLSAgICAgICAgICAiMC4wNjM4MDYsIDAuMDczNDcyLCAwLjE2MDUwNiwgMC4zMDUxNzcsIDAuNDQ5ODM4LCAwLjc4NzMyOCwgMC45ODAyMyIsIFwKLSAgICAgICAgICAiMC4wNzQwNTksIDAuMDgzNjc2LCAwLjE3MDY1LCAwLjMxNTM3OCwgMC40NTk4NzIsIDAuNzk3MzA3LCAwLjk5MDM5NyIsIFwKLSAgICAgICAgICAiMC4wODQ0OTEsIDAuMDk0MDc0LCAwLjE4MSwgMC4zMjU2MzEsIDAuNDcwMjQ2LCAwLjgwNzQ3MiwgMS4wMDAzMiIsIFwKLSAgICAgICAgICAiMC4wOTQ4OTIsIDAuMTA0NjM0LCAwLjE5MTI3NiwgMC4zMzU1NDgsIDAuNDgwNTU4LCAwLjgxNzc0OCwgMS4wMTEzOSIsIFwKLSAgICAgICAgICAiMC4xMDkyNCwgMC4xMjA0NjcsIDAuMjA4MjAxLCAwLjM1MjU2NCwgMC40OTQ5NTEsIDAuODM0ODE2LCAxLjAyNzA4IiwgXAotICAgICAgICAgICIwLjExOTcyNCwgMC4xMzIxNzIsIDAuMjIyNzg4LCAwLjM2NzE2MiwgMC41MTE3MiwgMC44NDkxMTUsIDEuMDQxODYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTA5MTIyLCAwLjEyODkxNSwgMC4zMDY5MywgMC42MDM5NDcsIDAuOTAwNjk1LCAxLjU5NDYyLCAxLjk5MTQ0IiwgXAotICAgICAgICAgICIwLjEwOTQ2NywgMC4xMjg5OTMsIDAuMzA2OTc3LCAwLjYwNDAyLCAwLjkwMDk2MSwgMS41OTI5OSwgMS45OTE0MyIsIFwKLSAgICAgICAgICAiMC4xMTQwNzEsIDAuMTMyNjM0LCAwLjMwNjkwOSwgMC42MDQwNTUsIDAuOTAwOTIyLCAxLjU5NDQzLCAxLjk5MTU1IiwgXAotICAgICAgICAgICIwLjEyMTE2NSwgMC4xMzkwMjYsIDAuMzA5MTE5LCAwLjYwMzY0NiwgMC45MDExNTUsIDEuNTk0MzksIDEuOTkxMTgiLCBcCi0gICAgICAgICAgIjAuMTI5NTExLCAwLjE0Njc5MiwgMC4zMTIzMDYsIDAuNjAzNjkyLCAwLjkwMTA1LCAxLjU5NDMxLCAxLjk4OTk4IiwgXAotICAgICAgICAgICIwLjE0NDQzMywgMC4xNjA5NDMsIDAuMzIxMDM0LCAwLjYwNjQ0MiwgMC45MDA4MzgsIDEuNTkzOTUsIDEuOTkxMTciLCBcCi0gICAgICAgICAgIjAuMTU4MzY2LCAwLjE3NDM2NSwgMC4zMzAxMzYsIDAuNjExMTYsIDAuOTAxOTY5LCAxLjU5Mzk3LCAxLjk4OTkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyODI1LCAwLjAwMjgyNSwgMC4wMDI4MjYsIDAuMDAyODI2LCAwLjAwMjgyNSwgMC4wMDI4MjUsIDAuMDAyODI0IiwgXAotICAgICAgICAgICIwLjAwMjgxOCwgMC4wMDI4MTksIDAuMDAyODIyLCAwLjAwMjgyMywgMC4wMDI4MjIsIDAuMDAyODIyLCAwLjAwMjgyMiIsIFwKLSAgICAgICAgICAiMC4wMDI4MTQsIDAuMDAyODE1LCAwLjAwMjgxOSwgMC4wMDI4MjMsIDAuMDAyODIzLCAwLjAwMjgyMSwgMC4wMDI4MjEiLCBcCi0gICAgICAgICAgIjAuMDAyODEzLCAwLjAwMjgxNCwgMC4wMDI4MTksIDAuMDAyODIxLCAwLjAwMjgyMSwgMC4wMDI4MjEsIDAuMDAyODIxIiwgXAotICAgICAgICAgICIwLjAwMjgxNywgMC4wMDI4MTcsIDAuMDAyODIxLCAwLjAwMjgyMiwgMC4wMDI4MjIsIDAuMDAyODIyLCAwLjAwMjgyMSIsIFwKLSAgICAgICAgICAiMC4wMDI4MzQsIDAuMDAyODMyLCAwLjAwMjgyOSwgMC4wMDI4MjUsIDAuMDAyODI1LCAwLjAwMjgyMywgMC4wMDI4MjIiLCBcCi0gICAgICAgICAgIjAuMDAyODYxLCAwLjAwMjg1NywgMC4wMDI4NDEsIDAuMDAyODM0LCAwLjAwMjgzLCAwLjAwMjgyNiwgMC4wMDI4MjYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDA2MjYsIDAuMDAwNjI2LCAwLjAwMDYyNiwgMC4wMDA2MjYsIDAuMDAwNjI1LCAwLjAwMDYyNSwgMC4wMDA2MjQiLCBcCi0gICAgICAgICAgIjAuMDAwNjA0LCAwLjAwMDYwNSwgMC4wMDA2MDUsIDAuMDAwNjA2LCAwLjAwMDYwNiwgMC4wMDA2MDUsIDAuMDAwNjA1IiwgXAotICAgICAgICAgICIwLjAwMDYwMywgMC4wMDA2MDMsIDAuMDAwNjAzLCAwLjAwMDYwMiwgMC4wMDA2MDIsIDAuMDAwNjAyLCAwLjAwMDYwMSIsIFwKLSAgICAgICAgICAiMC4wMDA2MTEsIDAuMDAwNjEsIDAuMDAwNjA1LCAwLjAwMDYwMywgMC4wMDA2MDMsIDAuMDAwNjAxLCAwLjAwMDYwMSIsIFwKLSAgICAgICAgICAiMC4wMDA2MjcsIDAuMDAwNjI1LCAwLjAwMDYxMywgMC4wMDA2MDcsIDAuMDAwNjA1LCAwLjAwMDYwMiwgMC4wMDA2MDEiLCBcCi0gICAgICAgICAgIjAuMDAwNjY2LCAwLjAwMDY1OSwgMC4wMDA2MywgMC4wMDA2MTcsIDAuMDAwNjEyLCAwLjAwMDYwNiwgMC4wMDA2MDQiLCBcCi0gICAgICAgICAgIjAuMDAwNzE0LCAwLjAwMDcwNiwgMC4wMDA2NTMsIDAuMDAwNjMxLCAwLjAwMDYyMSwgMC4wMDA2MTEsIDAuMDAwNjA5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjUzNCwgMC4wMDI1MzQsIDAuMDAyNTM2LCAwLjAwMjUzNiwgMC4wMDI1MzYsIDAuMDAyNTM3LCAwLjAwMjUzNiIsIFwKLSAgICAgICAgICAiMC4wMDI1MjUsIDAuMDAyNTI3LCAwLjAwMjUzNCwgMC4wMDI1MzcsIDAuMDAyNTM3LCAwLjAwMjUzOCwgMC4wMDI1MzgiLCBcCi0gICAgICAgICAgIjAuMDAyNTE0LCAwLjAwMjUxNywgMC4wMDI1MjcsIDAuMDAyNTM2LCAwLjAwMjUzNywgMC4wMDI1MzcsIDAuMDAyNTM5IiwgXAotICAgICAgICAgICIwLjAwMjUwOCwgMC4wMDI1MTIsIDAuMDAyNTI2LCAwLjAwMjUzNCwgMC4wMDI1MzQsIDAuMDAyNTM2LCAwLjAwMjUzNyIsIFwKLSAgICAgICAgICAiMC4wMDI1MDksIDAuMDAyNTEyLCAwLjAwMjUyNSwgMC4wMDI1MzIsIDAuMDAyNTM1LCAwLjAwMjUzNiwgMC4wMDI1MzYiLCBcCi0gICAgICAgICAgIjAuMDAyNTIzLCAwLjAwMjUyMywgMC4wMDI1MywgMC4wMDI1MzUsIDAuMDAyNTM1LCAwLjAwMjUzNywgMC4wMDI1MzciLCBcCi0gICAgICAgICAgIjAuMDAyNTQ2LCAwLjAwMjU0NCwgMC4wMDI1NDEsIDAuMDAyNTQsIDAuMDAyNTQsIDAuMDAyNTQsIDAuMDAyNTM5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwNjI2LCAwLjAwMDYyNiwgMC4wMDA2MjYsIDAuMDAwNjI2LCAwLjAwMDYyNiwgMC4wMDA2MjUsIDAuMDAwNjI1IiwgXAotICAgICAgICAgICIwLjAwMDYwNiwgMC4wMDA2MDYsIDAuMDAwNjA2LCAwLjAwMDYwNiwgMC4wMDA2MDYsIDAuMDAwNjA1LCAwLjAwMDYwNSIsIFwKLSAgICAgICAgICAiMC4wMDA2MTUsIDAuMDAwNjEzLCAwLjAwMDYwOCwgMC4wMDA2MDUsIDAuMDAwNjA0LCAwLjAwMDYwMywgMC4wMDA2MDIiLCBcCi0gICAgICAgICAgIjAuMDAwNjMyLCAwLjAwMDYyOCwgMC4wMDA2MTUsIDAuMDAwNjA5LCAwLjAwMDYwNiwgMC4wMDA2MDQsIDAuMDAwNjAzIiwgXAotICAgICAgICAgICIwLjAwMDY1OCwgMC4wMDA2NTEsIDAuMDAwNjI4LCAwLjAwMDYxNiwgMC4wMDA2MTEsIDAuMDAwNjA2LCAwLjAwMDYwNSIsIFwKLSAgICAgICAgICAiMC4wMDA3MTIsIDAuMDAwNywgMC4wMDA2NTQsIDAuMDAwNjMyLCAwLjAwMDYyMywgMC4wMDA2MTMsIDAuMDAwNjEiLCBcCi0gICAgICAgICAgIjAuMDAwNzczLCAwLjAwMDc1NCwgMC4wMDA2ODUsIDAuMDAwNjUxLCAwLjAwMDYzNywgMC4wMDA2MjEsIDAuMDAwNjE2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjIwMywgMC4wMDIyMDQsIDAuMDAyMjA1LCAwLjAwMjIwNiwgMC4wMDIyMDYsIDAuMDAyMjA2LCAwLjAwMjIwNSIsIFwKLSAgICAgICAgICAiMC4wMDIxOTMsIDAuMDAyMTk0LCAwLjAwMjE5OSwgMC4wMDIyMDUsIDAuMDAyMjA0LCAwLjAwMjIwNCwgMC4wMDIyMDUiLCBcCi0gICAgICAgICAgIjAuMDAyMTg1LCAwLjAwMjE4OSwgMC4wMDIxOTgsIDAuMDAyMjAyLCAwLjAwMjIwMywgMC4wMDIyMDMsIDAuMDAyMjAzIiwgXAotICAgICAgICAgICIwLjAwMjE5MSwgMC4wMDIxOTIsIDAuMDAyMTk3LCAwLjAwMjIwMSwgMC4wMDIyMDIsIDAuMDAyMjAzLCAwLjAwMjIwMyIsIFwKLSAgICAgICAgICAiMC4wMDIyMDQsIDAuMDAyMjAzLCAwLjAwMjIwMSwgMC4wMDIyMDMsIDAuMDAyMjA0LCAwLjAwMjIwNCwgMC4wMDIyMDQiLCBcCi0gICAgICAgICAgIjAuMDAyMjQsIDAuMDAyMjM1LCAwLjAwMjIxNywgMC4wMDIyMTEsIDAuMDAyMjA5LCAwLjAwMjIwOCwgMC4wMDIyMDYiLCBcCi0gICAgICAgICAgIjAuMDAyMjgzLCAwLjAwMjI3MywgMC4wMDIyMzYsIDAuMDAyMjIxLCAwLjAwMjIxNSwgMC4wMDIyMSwgMC4wMDIyMSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDI3NSwgMC4wMDAyNzUsIDAuMDAwMjc2LCAwLjAwMDI3NiwgMC4wMDAyNzYsIDAuMDAwMjc2LCAwLjAwMDI3NiIsIFwKLSAgICAgICAgICAiMC4wMDAyNzcsIDAuMDAwMjc3LCAwLjAwMDI3OSwgMC4wMDAyOCwgMC4wMDAyOCwgMC4wMDAyOCwgMC4wMDAyOCIsIFwKLSAgICAgICAgICAiMC4wMDAyOTcsIDAuMDAwMjk1LCAwLjAwMDI4NCwgMC4wMDAyODUsIDAuMDAwMjg0LCAwLjAwMDI4MywgMC4wMDAyODMiLCBcCi0gICAgICAgICAgIjAuMDAwMzI3LCAwLjAwMDMyMSwgMC4wMDAyOTQsIDAuMDAwMjkzLCAwLjAwMDI4OCwgMC4wMDAyODYsIDAuMDAwMjg1IiwgXAotICAgICAgICAgICIwLjAwMDM0LCAwLjAwMDM1NCwgMC4wMDAzMTcsIDAuMDAwMzAyLCAwLjAwMDI5NiwgMC4wMDAyODksIDAuMDAwMjg4IiwgXAotICAgICAgICAgICIwLjAwMDM5OCwgMC4wMDA0MjEsIDAuMDAwMzU1LCAwLjAwMDMyMywgMC4wMDAzMSwgMC4wMDAyOTksIDAuMDAwMjk1IiwgXAotICAgICAgICAgICIwLjAwMDQ3MiwgMC4wMDA0NzIsIDAuMDAwMzk3LCAwLjAwMDM0NywgMC4wMDAzMjksIDAuMDAwMzEsIDAuMDAwMzA1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQzAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTkzNiwgMC4wMDE5MzcsIDAuMDAxOTM5LCAwLjAwMTkzOSwgMC4wMDE5MzksIDAuMDAxOTQsIDAuMDAxOTM4IiwgXAotICAgICAgICAgICIwLjAwMTkyNSwgMC4wMDE5MjcsIDAuMDAxOTM0LCAwLjAwMTkzNywgMC4wMDE5MzcsIDAuMDAxOTM4LCAwLjAwMTkzNyIsIFwKLSAgICAgICAgICAiMC4wMDE5MzUsIDAuMDAxOTM0LCAwLjAwMTkzNiwgMC4wMDE5MzgsIDAuMDAxOTM4LCAwLjAwMTkzOCwgMC4wMDE5MzciLCBcCi0gICAgICAgICAgIjAuMDAxOTU0LCAwLjAwMTk1MSwgMC4wMDE5NDIsIDAuMDAxOTQxLCAwLjAwMTkzOSwgMC4wMDE5MzgsIDAuMDAxOTM4IiwgXAotICAgICAgICAgICIwLjAwMTk4NSwgMC4wMDE5NzgsIDAuMDAxOTU1LCAwLjAwMTk0NywgMC4wMDE5NDQsIDAuMDAxOTQxLCAwLjAwMTk0IiwgXAotICAgICAgICAgICIwLjAwMjA0NywgMC4wMDIwMzYsIDAuMDAxOTg0LCAwLjAwMTk2MiwgMC4wMDE5NTUsIDAuMDAxOTQ3LCAwLjAwMTk0NSIsIFwKLSAgICAgICAgICAiMC4wMDIxMSwgMC4wMDIwOTIsIDAuMDAyMDE4LCAwLjAwMTk4MSwgMC4wMDE5NjgsIDAuMDAxOTU2LCAwLjAwMTk1MiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDAzNywgMC4wMDAwMzgsIDAuMDAwMDQsIDAuMDAwMDQxLCAwLjAwMDA0MSwgMC4wMDAwNDEsIDAuMDAwMDQyIiwgXAotICAgICAgICAgICIwLjAwMDA0NywgMC4wMDAwNDgsIDAuMDAwMDUzLCAwLjAwMDA1NywgMC4wMDAwNTgsIDAuMDAwMDU3LCAwLjAwMDA1NyIsIFwKLSAgICAgICAgICAiMC4wMDAwNjIsIDAuMDAwMDYyLCAwLjAwMDA1OSwgMC4wMDAwNjEsIDAuMDAwMDYzLCAwLjAwMDA2NCwgMC4wMDAwNjQiLCBcCi0gICAgICAgICAgIjAuMDAwMDg4LCAwLjAwMDA4NCwgMC4wMDAwNzMsIDAuMDAwMDY4LCAwLjAwMDA2NiwgMC4wMDAwNjYsIDAuMDAwMDY2IiwgXAotICAgICAgICAgICIwLjAwMDEyMSwgMC4wMDAxMTQsIDAuMDAwMDg3LCAwLjAwMDA3NywgMC4wMDAwNzIsIDAuMDAwMDY5LCAwLjAwMDA2OCIsIFwKLSAgICAgICAgICAiMC4wMDAxOSwgMC4wMDAxNzMsIDAuMDAwMTE4LCAwLjAwMDA5NCwgMC4wMDAwODUsIDAuMDAwMDc2LCAwLjAwMDA3NCIsIFwKLSAgICAgICAgICAiMC4wMDAyNzUsIDAuMDAwMjQ2LCAwLjAwMDE1MiwgMC4wMDAxMTQsIDAuMDAwMSwgMC4wMDAwODUsIDAuMDAwMDgxIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogQU9JMjJYMSAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChBT0kyMlgxKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMzIzNDI7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA5MDQwNDc7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwOTAxMjkzOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDkwNDA0NzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA1MjQsIDAuMDAwNTI0LCAwLjAwMDUyNCwgMC4wMDA1MjQsIDAuMDAwNTI0LCAwLjAwMDUyNCwgMC4wMDA1MjMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA1NTIsIDAuMDAwNTMzLCAwLjAwMDUyOSwgMC4wMDA1MjYsIDAuMDAwNTI2LCAwLjAwMDUyNiwgMC4wMDA1MjciKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEExKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA5Mzc1NDc7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwOTMzMTc3OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDkzNzU0NzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyOTIsIDAuMDAwMjkxLCAwLjAwMDI5MSwgMC4wMDAyOTEsIDAuMDAwMjkxLCAwLjAwMDI5MSwgMC4wMDAyOTEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA1OTUsIDAuMDAwNTk2LCAwLjAwMDU5NiwgMC4wMDA1OTYsIDAuMDAwNTk2LCAwLjAwMDU5NiwgMC4wMDA1OTYiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA5MjI4MzE7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwOTIyODMxOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDkyMTIxNjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA1MjQsIDAuMDAwNTI0LCAwLjAwMDUyNCwgMC4wMDA1MjQsIDAuMDAwNTI0LCAwLjAwMDUyNCwgMC4wMDA1MjQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA1NSwgMC4wMDA1MzIsIDAuMDAwNTMsIDAuMDAwNTI2LCAwLjAwMDUyNiwgMC4wMDA1MjYsIDAuMDAwNTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCMSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwOTM2MTg7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwOTM2MTg7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwOTM2MTc3OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDI3NSwgMC4wMDAyNzQsIDAuMDAwMjc0LCAwLjAwMDI3NCwgMC4wMDAyNzQsIDAuMDAwMjc0LCAwLjAwMDI3NCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDU5NSwgMC4wMDA1OTUsIDAuMDAwNTk2LCAwLjAwMDU5NiwgMC4wMDA1OTYsIDAuMDAwNTk2LCAwLjAwMDU5NiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjE4NjQwOTsKLSAgICBmdW5jdGlvbiA6ICIoISgoQjAgQjEpKyhBMCBBMSkpKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTAiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3NzUwMywgMC4xMTE3NjIsIDAuMzA1NjUyLCAwLjQ3NjU0MywgMC43MDQwOTYsIDEuMTU5NDgsIDEuNDQ0OTciLCBcCi0gICAgICAgICAgIjAuMDg0NjY0LCAwLjExODkyNSwgMC4zMTI1OTEsIDAuNDgzNDQxLCAwLjcxMTA5MiwgMS4xNjY5OCwgMS40NTIyNiIsIFwKLSAgICAgICAgICAiMC4wOTIyNDcsIDAuMTI2NDkxLCAwLjMyMDM5NSwgMC40OTEwNDMsIDAuNzE5Mzk2LCAxLjE3NTQ0LCAxLjQ2MDE4IiwgXAotICAgICAgICAgICIwLjA5OTYwNiwgMC4xMzM4NzgsIDAuMzI3NjQ0LCAwLjQ5ODY2MSwgMC43MjYyOTcsIDEuMTgyNDMsIDEuNDY3MTciLCBcCi0gICAgICAgICAgIjAuMTA2ODk4LCAwLjE0MTE1MSwgMC4zMzUxNjYsIDAuNTA2MTI5LCAwLjczNDA0NSwgMS4xODkwNCwgMS40NzQ1IiwgXAotICAgICAgICAgICIwLjExNzc2OCwgMC4xNTI4NzYsIDAuMzQ2ODA2LCAwLjUxNzc1NiwgMC43NDU1NDYsIDEuMjAxMSwgMS40ODU4MiIsIFwKLSAgICAgICAgICAiMC4xMjYyMjMsIDAuMTYyOTM2LCAwLjM1NzE0LCAwLjUyNzk0MywgMC43NTYzMTEsIDEuMjExMjUsIDEuNDk1OTYiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTQzMTU1LCAwLjIxNTQ3OSwgMC42MjU4ODcsIDAuOTg3ODMzLCAxLjQ3MDQzLCAyLjQzNzI0LCAzLjA0MDg2IiwgXAotICAgICAgICAgICIwLjE0MzE0MywgMC4yMTU1NjksIDAuNjI1OTk1LCAwLjk4Nzg0MSwgMS40NzA3OCwgMi40MzU5LCAzLjAzODgiLCBcCi0gICAgICAgICAgIjAuMTQ0NDE3LCAwLjIxNTk5NywgMC42MjU4NTksIDAuOTg3Njg2LCAxLjQ3MDQsIDIuNDM2NDMsIDMuMDQxNDUiLCBcCi0gICAgICAgICAgIjAuMTQ3NTU0LCAwLjIxODAzMiwgMC42MjU4MDksIDAuOTg3NTgzLCAxLjQ3MDk0LCAyLjQzNzk5LCAzLjA0MDkyIiwgXAotICAgICAgICAgICIwLjE1MTg3NCwgMC4yMjEyMTYsIDAuNjI1OTg2LCAwLjk4NzgyNiwgMS40Njk4NiwgMi40Mzg0OSwgMy4wMzk1OSIsIFwKLSAgICAgICAgICAiMC4xNjAwOCwgMC4yMjc5NDMsIDAuNjI3NzQ5LCAwLjk4NzU0OSwgMS40NzA3NSwgMi40MzgwMiwgMy4wMzk5NiIsIFwKLSAgICAgICAgICAiMC4xNjg2NTMsIDAuMjM1MTE3LCAwLjYzMDc3NSwgMC45ODgzNjMsIDEuNDY5ODgsIDIuNDM1MjgsIDMuMDQzNTUiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDczMjI5LCAwLjEwNTE1NSwgMC4yODUyMTcsIDAuNDQzOTAzLCAwLjY1NDk3LCAxLjA3ODE0LCAxLjM0MzEzIiwgXAotICAgICAgICAgICIwLjA3OTgzNCwgMC4xMTE3NTcsIDAuMjkxNzQ3LCAwLjQ1MDU0NSwgMC42NjE2ODMsIDEuMDg0NDIsIDEuMzQ4NDciLCBcCi0gICAgICAgICAgIjAuMDg3OTY1LCAwLjExOTkyNSwgMC4zMDAxNzgsIDAuNDU4Njk4LCAwLjY3MDIzMywgMS4wOTMyNSwgMS4zNTc1NiIsIFwKLSAgICAgICAgICAiMC4wOTYzNTYsIDAuMTI4MTc3LCAwLjMwODU4NSwgMC40Njc0MzMsIDAuNjc4NzU0LCAxLjEwMTQxLCAxLjM2Njc2IiwgXAotICAgICAgICAgICIwLjEwNDc2LCAwLjEzNjQxLCAwLjMxNjkxNiwgMC40NzU2MTYsIDAuNjg3MTg2LCAxLjEwOTg4LCAxLjM3NDA0IiwgXAotICAgICAgICAgICIwLjExNjk4NywgMC4xNTAxMzUsIDAuMzMwMjM1LCAwLjQ4OTA4MSwgMC43MDA1ODksIDEuMTIzOTIsIDEuMzg3NzEiLCBcCi0gICAgICAgICAgIjAuMTI2NTk0LCAwLjE2MTE0OSwgMC4zNDE0OTcsIDAuNTAwNzkyLCAwLjcxMjUwNywgMS4xMzUwOSwgMS4zOTk2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEzNDg3MiwgMC4xOTk5ODgsIDAuNTY5MDM5LCAwLjg5NDY3MSwgMS4zMjkxNiwgMi4xOTY5MiwgMi43MzkwNSIsIFwKLSAgICAgICAgICAiMC4xMzQ5NSwgMC4xOTk5NjcsIDAuNTY5MDA1LCAwLjg5NDU3NCwgMS4zMjg5NiwgMi4xOTY4MiwgMi43Mzg5NyIsIFwKLSAgICAgICAgICAiMC4xMzY5NCwgMC4yMDA3OTEsIDAuNTY4OTY2LCAwLjg5NDYsIDEuMzI4NjQsIDIuMTk2ODgsIDIuNzM4NDIiLCBcCi0gICAgICAgICAgIjAuMTQwOTk1LCAwLjIwMzM3OSwgMC41Njg5NzYsIDAuODk0NTkxLCAxLjMyODkyLCAyLjE5Njg2LCAyLjczODk4IiwgXAotICAgICAgICAgICIwLjE0NjExLCAwLjIwNzI3NiwgMC41NjkyNTUsIDAuODk0NTM4LCAxLjMyODc5LCAyLjE5Njk1LCAyLjczODY2IiwgXAotICAgICAgICAgICIwLjE1NTM5MywgMC4yMTUzNzYsIDAuNTcxNzI4LCAwLjg5NDYwNSwgMS4zMjkwNiwgMi4xOTY2NCwgMi43Mzg3NSIsIFwKLSAgICAgICAgICAiMC4xNjQ2NDMsIDAuMjIyOTg4LCAwLjU3NDgyMiwgMC44OTU4MTcsIDEuMzI4ODcsIDIuMTk2OTcsIDIuNzM5MTYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3NTM0MSwgMC4xMDk2MDYsIDAuMzAzNDUxLCAwLjQ3NDU2LCAwLjcwMTg2MiwgMS4xNTczOSwgMS40NDM3NyIsIFwKLSAgICAgICAgICAiMC4wODI1LCAwLjExNjc3NiwgMC4zMTA0NTgsIDAuNDgxMzIzLCAwLjcwODg4OCwgMS4xNjQ3OSwgMS40NTAxNiIsIFwKLSAgICAgICAgICAiMC4wODk5NzEsIDAuMTI0MjYyLCAwLjMxODE2NCwgMC40ODkyMjgsIDAuNzE2NzYxLCAxLjE3MjU2LCAxLjQ1NjMzIiwgXAotICAgICAgICAgICIwLjA5NzI5NSwgMC4xMzE2MDIsIDAuMzI1NTQyLCAwLjQ5NjY4MSwgMC43MjQxMDQsIDEuMTc5MzEsIDEuNDY0MjMiLCBcCi0gICAgICAgICAgIjAuMTA0NTUzLCAwLjEzODg0OCwgMC4zMzI5MjUsIDAuNTAzOTIyLCAwLjczMTg0NiwgMS4xODY4NCwgMS40NzIyNyIsIFwKLSAgICAgICAgICAiMC4xMTUxNzIsIDAuMTUwNDk5LCAwLjM0NDU1NywgMC41MTUyNTgsIDAuNzQzMzU4LCAxLjE5ODg4LCAxLjQ4MzU5IiwgXAotICAgICAgICAgICIwLjEyMzQ5NCwgMC4xNjA0MDIsIDAuMzU0ODYxLCAwLjUyNTY5NiwgMC43NTQyMDEsIDEuMjA5MDQsIDEuNDkzNzMiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTQwMTEsIDAuMjEyNDQ5LCAwLjYyMjY5MywgMC45ODQ3MDgsIDEuNDY2NTMsIDIuNDMxNzQsIDMuMDM1NDIiLCBcCi0gICAgICAgICAgIjAuMTQwMTQ2LCAwLjIxMjUyOCwgMC42MjI0MzQsIDAuOTg0NDk0LCAxLjQ2NzM4LCAyLjQzMTExLCAzLjAzNTcyIiwgXAotICAgICAgICAgICIwLjE0MTQ3NiwgMC4yMTI4OCwgMC42MjI3MzQsIDAuOTg0Njg5LCAxLjQ2NzEsIDIuNDMxNTYsIDMuMDM3NTgiLCBcCi0gICAgICAgICAgIjAuMTQ0NjQ0LCAwLjIxNTA1NywgMC42MjI1MjUsIDAuOTg0NTczLCAxLjQ2NjQ2LCAyLjQzMDU5LCAzLjAzMjg3IiwgXAotICAgICAgICAgICIwLjE0OTA4OSwgMC4yMTgzLCAwLjYyMjc5NiwgMC45ODQ1NTksIDEuNDY2NTUsIDIuNDMzNjIsIDMuMDM0NiIsIFwKLSAgICAgICAgICAiMC4xNTczOTgsIDAuMjI1MTMyLCAwLjYyNDU4NCwgMC45ODQxOTEsIDEuNDY3NDQsIDIuNDMzMTcsIDMuMDM0MDIiLCBcCi0gICAgICAgICAgIjAuMTY2MjUyLCAwLjIzMjI0MywgMC42Mjc2MjEsIDAuOTg1MSwgMS40NjcsIDIuNDMwNTQsIDMuMDM3NDciKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDcxNjQxLCAwLjEwMzU0MiwgMC4yODM0MjEsIDAuNDQyMjY3LCAwLjY1MzY1NSwgMS4wNzYzMiwgMS4zNDEyOSIsIFwKLSAgICAgICAgICAiMC4wNzkyMjMsIDAuMTExMTUsIDAuMjkxMTY2LCAwLjQ0OTY4NCwgMC42NjEwNjEsIDEuMDgzODEsIDEuMzQ3ODUiLCBcCi0gICAgICAgICAgIjAuMDg4NzQsIDAuMTIwNjQ3LCAwLjMwMDY3NSwgMC40NTkyODMsIDAuNjcxMDA3LCAxLjA5NDAzLCAxLjM1NzM3IiwgXAotICAgICAgICAgICIwLjA5ODg4NiwgMC4xMzA2MzcsIDAuMzEwNTE0LCAwLjQ2OTI3MiwgMC42ODA1NjcsIDEuMTA0MjUsIDEuMzY3NDciLCBcCi0gICAgICAgICAgIjAuMTA4ODM4LCAwLjE0MDU4NCwgMC4zMjAxODksIDAuNDc4ODcxLCAwLjY5MDExNCwgMS4xMTM2NCwgMS4zNzcwNyIsIFwKLSAgICAgICAgICAiMC4xMjQ0MTksIDAuMTU2NTQsIDAuMzM1ODc3LCAwLjQ5Mzc4MSwgMC43MDU2NjIsIDEuMTI5MTMsIDEuMzkyNTMiLCBcCi0gICAgICAgICAgIjAuMTM1OTk2LCAwLjE3MDYyNSwgMC4zNDk2MTQsIDAuNTA4MDI4LCAwLjcxOTQ4MSwgMS4xNDI3MiwgMS40MDcwMyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMzQ4NzcsIDAuMjAwMDE2LCAwLjU2ODk4OCwgMC44OTQ3NDMsIDEuMzI4NTIsIDIuMTk2MjUsIDIuNzM5MDgiLCBcCi0gICAgICAgICAgIjAuMTM0OTI3LCAwLjE5OTk2LCAwLjU2OTAyOCwgMC44OTQ1NjgsIDEuMzI4NTcsIDIuMTk2NzgsIDIuNzM4NzIiLCBcCi0gICAgICAgICAgIjAuMTM4MDU0LCAwLjIwMTEzNywgMC41Njg5NzYsIDAuODk0NTQsIDEuMzI4NzIsIDIuMTk2NiwgMi43Mzg4NyIsIFwKLSAgICAgICAgICAiMC4xNDM3NTIsIDAuMjA0OTUxLCAwLjU2ODk1OCwgMC44OTQ5NTcsIDEuMzI4OTUsIDIuMTk2NzksIDIuNzM4NzIiLCBcCi0gICAgICAgICAgIjAuMTUxMDQ2LCAwLjIxMDc0LCAwLjU2OTE1NCwgMC44OTQ1ODMsIDEuMzI4MzksIDIuMTk3MDQsIDIuNzM4NjciLCBcCi0gICAgICAgICAgIjAuMTY0MDY0LCAwLjIyMTc3OCwgMC41NzIzNjIsIDAuODk0NTkzLCAxLjMyODM5LCAyLjE5NjkzLCAyLjczODc2IiwgXAotICAgICAgICAgICIwLjE3NjI0NywgMC4yMzI3OTUsIDAuNTc3MjAxLCAwLjg5NjAyNiwgMS4zMjg1OCwgMi4xOTY2NywgMi43Mzg0NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDcwNTQsIDAuMTA0Nzc1LCAwLjI5ODM4MSwgMC40NjkzOSwgMC42OTc0MDUsIDEuMTUzOSwgMS40Mzc1MSIsIFwKLSAgICAgICAgICAiMC4wNzgwMzQsIDAuMTEyMjk4LCAwLjMwNjA4MywgMC40NzczMzEsIDAuNzA0Nzc5LCAxLjE2MDcsIDEuNDQ1MzkiLCBcCi0gICAgICAgICAgIjAuMDg3NTgyLCAwLjEyMTc3MSwgMC4zMTUzNjMsIDAuNDg1ODM2LCAwLjcxNDczNiwgMS4xNzAyMSwgMS40NTQzMyIsIFwKLSAgICAgICAgICAiMC4wOTc0NjYsIDAuMTMxNTc4LCAwLjMyNTA5OCwgMC40OTU5NTYsIDAuNzIzNDk5LCAxLjE3OTM4LCAxLjQ2NDI3IiwgXAotICAgICAgICAgICIwLjEwNzQ2NiwgMC4xNDE0NTEsIDAuMzM0OTI5LCAwLjUwNTgxNywgMC43MzM3NTEsIDEuMTg5MzIsIDEuNDczNTUiLCBcCi0gICAgICAgICAgIjAuMTIyNjA0LCAwLjE1NzI5NiwgMC4zNTAzNjMsIDAuNTIxMjI4LCAwLjc0ODY1NCwgMS4yMDQzMSwgMS40OTA0MiIsIFwKLSAgICAgICAgICAiMC4xMzM4ODcsIDAuMTcxMzIzLCAwLjM2Mzg4OSwgMC41MzQ0OTIsIDAuNzYyNDE5LCAxLjIxNzU1LCAxLjUwMjc5Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE0MzExOCwgMC4yMTU1NjcsIDAuNjI1NzksIDAuOTg3ODQzLCAxLjQ3MDMxLCAyLjQzNTU3LCAzLjAzNzUiLCBcCi0gICAgICAgICAgIjAuMTQyOTQxLCAwLjIxNTU2MSwgMC42MjU4NjYsIDAuOTg3OTc2LCAxLjQ3MDU2LCAyLjQzNTQzLCAzLjAzODIxIiwgXAotICAgICAgICAgICIwLjE0NjA4MSwgMC4yMTY0NDMsIDAuNjI1NzgzLCAwLjk4NzExMywgMS40NzA1NSwgMi40MzUzNiwgMy4wMzkwMiIsIFwKLSAgICAgICAgICAiMC4xNTE5MDksIDAuMjIwMjkzLCAwLjYyNTc3MiwgMC45ODc4NzMsIDEuNDcwNzEsIDIuNDM2MDcsIDMuMDM3NzMiLCBcCi0gICAgICAgICAgIjAuMTU5MTE3LCAwLjIyNTgzNiwgMC42MjU3NjcsIDAuOTg3NTg0LCAxLjQ2OTksIDIuNDM2MDQsIDMuMDM2NzQiLCBcCi0gICAgICAgICAgIjAuMTcyMTExLCAwLjIzNjg1LCAwLjYyODM4MywgMC45ODc0MjIsIDEuNDcwNjcsIDIuNDM0MTYsIDMuMDM4MDUiLCBcCi0gICAgICAgICAgIjAuMTg0Mjg3LCAwLjI0ODAzOSwgMC42MzI4NzcsIDAuOTg4NzQsIDEuNDcwMzIsIDIuNDM0NDksIDMuMDM4NyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjQ1NzYsIDAuMDk2NDc1LCAwLjI3NjUzOSwgMC40MzUwNDcsIDAuNjQ2MzY4LCAxLjA2OTM3LCAxLjMzMjk0IiwgXAotICAgICAgICAgICIwLjA3MTI4LCAwLjEwMzIyOCwgMC4yODM0NzEsIDAuNDQxOTM2LCAwLjY1MzE5NCwgMS4wNzU3LCAxLjM0MDUyIiwgXAotICAgICAgICAgICIwLjA3OTQ5NCwgMC4xMTE0MywgMC4yOTE4MDYsIDAuNDUwMzg3LCAwLjY2MTYyMywgMS4wODQxNSwgMS4zNDg4NyIsIFwKLSAgICAgICAgICAiMC4wODc3MDMsIDAuMTE5NjcyLCAwLjMwMDI0NywgMC40NTg4NDksIDAuNjcwMTE3LCAxLjA5MjYyLCAxLjM1NzUxIiwgXAotICAgICAgICAgICIwLjA5NTkyNCwgMC4xMjc4OTUsIDAuMzA4ODM1LCAwLjQ2NzQxNSwgMC42Nzg2NzgsIDEuMTAxMjEsIDEuMzY1MjMiLCBcCi0gICAgICAgICAgIjAuMTA3MjQ4LCAwLjE0MTI2MywgMC4zMjIxNzksIDAuNDgxMDA3LCAwLjY5MjMzMywgMS4xMTUwMywgMS4zNzg4OSIsIFwKLSAgICAgICAgICAiMC4xMTYwNDQsIDAuMTUyMTMxLCAwLjMzMzM5NywgMC40OTIxNDksIDAuNzAzODYzLCAxLjEyNjQ4LCAxLjM5MDUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTI1MjM3LCAwLjE5MDMyLCAwLjU1OTAzNSwgMC44ODQzNzQsIDEuMzE4MjEsIDIuMTg1NzksIDIuNzI3OTkiLCBcCi0gICAgICAgICAgIjAuMTI1MzUsIDAuMTkwMjgyLCAwLjU1ODk3NSwgMC44ODQ1MywgMS4zMTg1NywgMi4xODgyNSwgMi43MjkyMyIsIFwKLSAgICAgICAgICAiMC4xMjc4MTIsIDAuMTkxMjQ0LCAwLjU1OTAzOSwgMC44ODQ2MjMsIDEuMzE4NzEsIDIuMTg1OSwgMi43MjgiLCBcCi0gICAgICAgICAgIjAuMTMyMTM2LCAwLjE5NDE1MSwgMC41NTg5NzQsIDAuODg0MzMsIDEuMzE4NDQsIDIuMTk0MTQsIDIuNzI5ODIiLCBcCi0gICAgICAgICAgIjAuMTM3NjQyLCAwLjE5ODI3LCAwLjU1OTMxMiwgMC44ODQzNjksIDEuMzE4MzYsIDIuMTk0MTcsIDIuNzM5NjQiLCBcCi0gICAgICAgICAgIjAuMTQ3MjMxLCAwLjIwNjc0NSwgMC41NjE5NTMsIDAuODg0NDEsIDEuMzE4NDksIDIuMTg1NzgsIDIuNzMxODkiLCBcCi0gICAgICAgICAgIjAuMTU2NTUzLCAwLjIxNDg4NSwgMC41NjUzNjMsIDAuODg1NzM1LCAxLjMxODcsIDIuMTg1ODQsIDIuNzM5MzgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2ODQ1LCAwLjEwMjcxLCAwLjI5NjM2NiwgMC40Njc3NjUsIDAuNjk2NTA3LCAxLjE1MzI0LCAxLjQzNjg0IiwgXAotICAgICAgICAgICIwLjA3NTk3OSwgMC4xMTAyNywgMC4zMDQ0MzMsIDAuNDc1ODA3LCAwLjcwNDM1NiwgMS4xNjE0NiwgMS40NDU0IiwgXAotICAgICAgICAgICIwLjA4NTY1NSwgMC4xMTk5MzcsIDAuMzEzOTUzLCAwLjQ4NDc2MSwgMC43MTM5MDksIDEuMTcwMTIsIDEuNDU1NCIsIFwKLSAgICAgICAgICAiMC4wOTUyNzcsIDAuMTI5NDY1LCAwLjMyMzM3OSwgMC40OTQ1NTUsIDAuNzIyNjQzLCAxLjE3OTIxLCAxLjQ2NDUiLCBcCi0gICAgICAgICAgIjAuMTA1MjQsIDAuMTM5MjkzLCAwLjMzMzEwOCwgMC41MDQzMTksIDAuNzMyNzA0LCAxLjE4OTE1LCAxLjQ3MzYxIiwgXAotICAgICAgICAgICIwLjEyMDA4OCwgMC4xNTUwOTksIDAuMzQ4NTg1LCAwLjUxOTc3NiwgMC43NDc1NzgsIDEuMjA0MDMsIDEuNDg4OTgiLCBcCi0gICAgICAgICAgIjAuMTMxMzQ3LCAwLjE2OTAzLCAwLjM2MjA3NiwgMC41MzMwOTUsIDAuNzYxMzA4LCAxLjIxNzI1LCAxLjUwMzEiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTQwMzM0LCAwLjIxMjg3LCAwLjYyMzQyNywgMC45ODYwMTEsIDEuNDY5OTYsIDIuNDM2MTksIDMuMDQxMzIiLCBcCi0gICAgICAgICAgIjAuMTQwMTIxLCAwLjIxMjg4OCwgMC42MjM3NzcsIDAuOTg2NDY5LCAxLjQ3MDA2LCAyLjQzNzE4LCAzLjA0IiwgXAotICAgICAgICAgICIwLjE0MzMxMSwgMC4yMTM3MDksIDAuNjIzNzMzLCAwLjk4NjUwOCwgMS40Njk5NSwgMi40MzY0NywgMy4wNDA2NyIsIFwKLSAgICAgICAgICAiMC4xNDkzNTgsIDAuMjE3NjY3LCAwLjYyMzc1NCwgMC45ODY0OTIsIDEuNDY5MywgMi40MzczNSwgMy4wNDAxNCIsIFwKLSAgICAgICAgICAiMC4xNTY3MjcsIDAuMjIzMzQ2LCAwLjYyMzc0OSwgMC45ODYzNTQsIDEuNDY5MzUsIDIuNDM3MjMsIDMuMDM5OSIsIFwKLSAgICAgICAgICAiMC4xNjk4NzgsIDAuMjM0NDk5LCAwLjYyNjU0LCAwLjk4NjA1MSwgMS40NzAxMywgMi40MzU0LCAzLjAzOTg4IiwgXAotICAgICAgICAgICIwLjE4MjMyLCAwLjI0NTc0NCwgMC42MzExMjQsIDAuOTg2NjcyLCAxLjQ2OTgyLCAyLjQzNTc0LCAzLjA0MTg4Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2MjkzMSwgMC4wOTQ4MzMsIDAuMjc0OTA0LCAwLjQzMzQxMiwgMC42NDQ2NTcsIDEuMDY3MTUsIDEuMzMxODciLCBcCi0gICAgICAgICAgIjAuMDcwNjM5LCAwLjEwMjU4MSwgMC4yODI3NTksIDAuNDQxMjQ0LCAwLjY1MjQ5OSwgMS4wNzUwMSwgMS4zMzkwMSIsIFwKLSAgICAgICAgICAiMC4wODAxNTIsIDAuMTEyMDQxLCAwLjI5MjE3MiwgMC40NTA2OTUsIDAuNjYxOTczLCAxLjA4NDYyLCAxLjM0ODQ0IiwgXAotICAgICAgICAgICIwLjA5MDE1NywgMC4xMjE5NDIsIDAuMzAxOTY1LCAwLjQ2MDQ3NSwgMC42NzE2OTcsIDEuMDk0ODcsIDEuMzU4MjMiLCBcCi0gICAgICAgICAgIjAuMTAwMTQsIDAuMTMxODYxLCAwLjMxMTcyMywgMC40NzAxOTksIDAuNjgxMzc4LCAxLjEwNDIsIDEuMzY3ODgiLCBcCi0gICAgICAgICAgIjAuMTE0NTM5LCAwLjE0Nzg5MiwgMC4zMjc0NDcsIDAuNDg1MzEyLCAwLjY5Njk5NiwgMS4xMTk1MSwgMS4zODM0MyIsIFwKLSAgICAgICAgICAiMC4xMjUzMjQsIDAuMTYxNTEsIDAuMzQxMTcsIDAuNDk5NTIsIDAuNzEwNjM2LCAxLjEzMzI2LCAxLjM5ODI3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEyNTI2LCAwLjE5MDMwMSwgMC41NTkwMzcsIDAuODg0NTI3LCAxLjMxODU2LCAyLjE4Njg3LCAyLjcyOTU1IiwgXAotICAgICAgICAgICIwLjEyNTM4MywgMC4xOTAyODUsIDAuNTU5MDI1LCAwLjg4NDMxMSwgMS4zMTg0NCwgMi4xODY2LCAyLjcyNzY2IiwgXAotICAgICAgICAgICIwLjEyOTA5NiwgMC4xOTE3LCAwLjU1OTA3NywgMC44ODQ1MjYsIDEuMzE4NTEsIDIuMTg3MzYsIDIuNzMyMTgiLCBcCi0gICAgICAgICAgIjAuMTM1MzE2LCAwLjE5NTk2NiwgMC41NTkwMjMsIDAuODg0MzI0LCAxLjMyMTQ2LCAyLjE4NzI0LCAyLjczOTg0IiwgXAotICAgICAgICAgICIwLjE0Mjg2LCAwLjIwMTk3NSwgMC41NTkyODksIDAuODg0MzY5LCAxLjMyMTcsIDIuMTg1OTcsIDIuNzMwNTMiLCBcCi0gICAgICAgICAgIjAuMTU2NDYyLCAwLjIxMzUxNCwgMC41NjI2NTUsIDAuODg0MzU3LCAxLjMyMTYxLCAyLjE4NTc2LCAyLjczOTU1IiwgXAotICAgICAgICAgICIwLjE2OTAzMiwgMC4yMjQ3NzEsIDAuNTY3NjQ4LCAwLjg4NTY4MywgMS4zMTg2NCwgMi4xODY5LCAyLjcyOTQ3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDQ1LCAwLjAwNDQ1MSwgMC4wMDQ0NTEsIDAuMDA0NDUxLCAwLjAwNDQ1LCAwLjAwNDQ1MSwgMC4wMDQ0NDkiLCBcCi0gICAgICAgICAgIjAuMDA0NDM1LCAwLjAwNDQzOCwgMC4wMDQ0NDQsIDAuMDA0NDQ1LCAwLjAwNDQ0NSwgMC4wMDQ0NDQsIDAuMDA0NDQ1IiwgXAotICAgICAgICAgICIwLjAwNDQyNiwgMC4wMDQ0MzIsIDAuMDA0NDQsIDAuMDA0NDQzLCAwLjAwNDQ0NCwgMC4wMDQ0NDMsIDAuMDA0NDQ0IiwgXAotICAgICAgICAgICIwLjAwNDQyNywgMC4wMDQ0MzEsIDAuMDA0NDQsIDAuMDA0NDQzLCAwLjAwNDQ0NSwgMC4wMDQ0NDMsIDAuMDA0NDQzIiwgXAotICAgICAgICAgICIwLjAwNDQzOCwgMC4wMDQ0MzksIDAuMDA0NDQzLCAwLjAwNDQ0MywgMC4wMDQ0NDUsIDAuMDA0NDQ1LCAwLjAwNDQ0NCIsIFwKLSAgICAgICAgICAiMC4wMDQ0NzUsIDAuMDA0NDY3LCAwLjAwNDQ1NiwgMC4wMDQ0NTMsIDAuMDA0NDUxLCAwLjAwNDQ0OSwgMC4wMDQ0NDYiLCBcCi0gICAgICAgICAgIjAuMDA0NTI3LCAwLjAwNDUwNywgMC4wMDQ0NzQsIDAuMDA0NDY2LCAwLjAwNDQ2LCAwLjAwNDQ1NSwgMC4wMDQ0NTMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDEwODcsIDAuMDAxMDg4LCAwLjAwMTA4OSwgMC4wMDEwODksIDAuMDAxMDg5LCAwLjAwMTA4OSwgMC4wMDEwODgiLCBcCi0gICAgICAgICAgIjAuMDAxMDU1LCAwLjAwMTA2MiwgMC4wMDEwNzIsIDAuMDAxMDc0LCAwLjAwMTA3NSwgMC4wMDEwNzYsIDAuMDAxMDc2IiwgXAotICAgICAgICAgICIwLjAwMTA0NiwgMC4wMDEwNTMsIDAuMDAxMDY3LCAwLjAwMTA3LCAwLjAwMTA3MiwgMC4wMDEwNzMsIDAuMDAxMDczIiwgXAotICAgICAgICAgICIwLjAwMTA1OSwgMC4wMDEwNjEsIDAuMDAxMDY5LCAwLjAwMTA3MSwgMC4wMDEwNzIsIDAuMDAxMDczLCAwLjAwMTA3MyIsIFwKLSAgICAgICAgICAiMC4wMDEwODksIDAuMDAxMDgyLCAwLjAwMTA3NywgMC4wMDEwNzYsIDAuMDAxMDc1LCAwLjAwMTA3NSwgMC4wMDEwNzUiLCBcCi0gICAgICAgICAgIjAuMDAxMTYsIDAuMDAxMTQsIDAuMDAxMTAyLCAwLjAwMTA5MiwgMC4wMDEwODYsIDAuMDAxMDgxLCAwLjAwMTA4IiwgXAotICAgICAgICAgICIwLjAwMTI1NiwgMC4wMDEyMDUsIDAuMDAxMTMxLCAwLjAwMTExNiwgMC4wMDExMDQsIDAuMDAxMDkyLCAwLjAwMTA4OSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkExIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDM5NDgsIDAuMDAzOTUsIDAuMDAzOTUzLCAwLjAwMzk1NCwgMC4wMDM5NTQsIDAuMDAzOTU0LCAwLjAwMzk1MyIsIFwKLSAgICAgICAgICAiMC4wMDM5MjUsIDAuMDAzOTM2LCAwLjAwMzk1MSwgMC4wMDM5NTQsIDAuMDAzOTU2LCAwLjAwMzk1NywgMC4wMDM5NTciLCBcCi0gICAgICAgICAgIjAuMDAzOTA0LCAwLjAwMzkxOSwgMC4wMDM5NDEsIDAuMDAzOTUsIDAuMDAzOTUsIDAuMDAzOTU2LCAwLjAwMzk1MSIsIFwKLSAgICAgICAgICAiMC4wMDM4OTYsIDAuMDAzOTExLCAwLjAwMzkzOSwgMC4wMDM5NDcsIDAuMDAzOTUxLCAwLjAwMzk1NywgMC4wMDM5NTUiLCBcCi0gICAgICAgICAgIjAuMDAzODk5LCAwLjAwMzkxMywgMC4wMDM5MzksIDAuMDAzOTQ1LCAwLjAwMzk1LCAwLjAwMzk1NiwgMC4wMDM5NTUiLCBcCi0gICAgICAgICAgIjAuMDAzOTMzLCAwLjAwMzkzMywgMC4wMDM5NDcsIDAuMDAzOTQ4LCAwLjAwMzk1MywgMC4wMDM5NTYsIDAuMDAzOTU3IiwgXAotICAgICAgICAgICIwLjAwMzk3OCwgMC4wMDM5NjYsIDAuMDAzOTYxLCAwLjAwMzk2MSwgMC4wMDM5NjEsIDAuMDAzOTYxLCAwLjAwMzk2MSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTA4NywgMC4wMDEwODgsIDAuMDAxMDksIDAuMDAxMDksIDAuMDAxMDksIDAuMDAxMDksIDAuMDAxMDg5IiwgXAotICAgICAgICAgICIwLjAwMTA1OSwgMC4wMDEwNjUsIDAuMDAxMDczLCAwLjAwMTA3NSwgMC4wMDEwNzYsIDAuMDAxMDc3LCAwLjAwMTA3NyIsIFwKLSAgICAgICAgICAiMC4wMDEwNzgsIDAuMDAxMDc4LCAwLjAwMTA3NywgMC4wMDEwNzcsIDAuMDAxMDc3LCAwLjAwMTA3NywgMC4wMDEwNzYiLCBcCi0gICAgICAgICAgIjAuMDAxMTA0LCAwLjAwMTA5NiwgMC4wMDEwODUsIDAuMDAxMDgyLCAwLjAwMTA4LCAwLjAwMTA3OCwgMC4wMDEwNzciLCBcCi0gICAgICAgICAgIjAuMDAxMTY0LCAwLjAwMTE0MSwgMC4wMDExMDUsIDAuMDAxMDk1LCAwLjAwMTA4OSwgMC4wMDEwODQsIDAuMDAxMDgyIiwgXAotICAgICAgICAgICIwLjAwMTI4NSwgMC4wMDEyMzMsIDAuMDAxMTQ2LCAwLjAwMTEyNCwgMC4wMDExMTEsIDAuMDAxMDk3LCAwLjAwMTA5MyIsIFwKLSAgICAgICAgICAiMC4wMDE0MTYsIDAuMDAxMzMsIDAuMDAxMTk0LCAwLjAwMTE2LCAwLjAwMTEzNiwgMC4wMDExMTMsIDAuMDAxMTA2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzExLCAwLjAwMzExMSwgMC4wMDMxMTIsIDAuMDAzMTEzLCAwLjAwMzExMiwgMC4wMDMxMTIsIDAuMDAzMTExIiwgXAotICAgICAgICAgICIwLjAwMzA5OCwgMC4wMDMxMDEsIDAuMDAzMTA1LCAwLjAwMzEwNiwgMC4wMDMxMDYsIDAuMDAzMTA1LCAwLjAwMzEwNSIsIFwKLSAgICAgICAgICAiMC4wMDMxMiwgMC4wMDMxMTYsIDAuMDAzMTExLCAwLjAwMzEwOSwgMC4wMDMxMDgsIDAuMDAzMTA3LCAwLjAwMzEwNSIsIFwKLSAgICAgICAgICAiMC4wMDMxNTMsIDAuMDAzMTQyLCAwLjAwMzEyMSwgMC4wMDMxMTYsIDAuMDAzMTEzLCAwLjAwMzEwOSwgMC4wMDMxMDgiLCBcCi0gICAgICAgICAgIjAuMDAzMjA1LCAwLjAwMzE3OCwgMC4wMDMxMzksIDAuMDAzMTI4LCAwLjAwMzEyMSwgMC4wMDMxMTMsIDAuMDAzMTEyIiwgXAotICAgICAgICAgICIwLjAwMzMxOCwgMC4wMDMyNjQsIDAuMDAzMTc3LCAwLjAwMzE1NiwgMC4wMDMxNDEsIDAuMDAzMTI3LCAwLjAwMzEyMiIsIFwKLSAgICAgICAgICAiMC4wMDM0MzUsIDAuMDAzMzU0LCAwLjAwMzIyMSwgMC4wMDMxODQsIDAuMDAzMTY0LCAwLjAwMzEzOCwgMC4wMDMxMzIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDAyODksIDAuMDAwMjkzLCAwLjAwMDI5OSwgMC4wMDAzLCAwLjAwMDMsIDAuMDAwMzAxLCAwLjAwMDMwMSIsIFwKLSAgICAgICAgICAiMC4wMDAyNzEsIDAuMDAwMjg3LCAwLjAwMDMxMSwgMC4wMDAzMTYsIDAuMDAwMzE4LCAwLjAwMDMyMSwgMC4wMDAzMjEiLCBcCi0gICAgICAgICAgIjAuMDAwMjUzLCAwLjAwMDI3MywgMC4wMDAzMDYsIDAuMDAwMzE0LCAwLjAwMDMxOSwgMC4wMDAzMjIsIDAuMDAwMzIzIiwgXAotICAgICAgICAgICIwLjAwMDI1OSwgMC4wMDAyNzQsIDAuMDAwMzA1LCAwLjAwMDMxNCwgMC4wMDAzMTgsIDAuMDAwMzIzLCAwLjAwMDMyNCIsIFwKLSAgICAgICAgICAiMC4wMDAyODQsIDAuMDAwMjg5LCAwLjAwMDMxMSwgMC4wMDAzMTcsIDAuMDAwMzIxLCAwLjAwMDMyNCwgMC4wMDAzMjYiLCBcCi0gICAgICAgICAgIjAuMDAwMzUxLCAwLjAwMDMzOSwgMC4wMDAzMjksIDAuMDAwMzMsIDAuMDAwMzMsIDAuMDAwMzMsIDAuMDAwMzMiLCBcCi0gICAgICAgICAgIjAuMDAwNDM5LCAwLjAwMDM5NiwgMC4wMDAzNTQsIDAuMDAwMzQ2LCAwLjAwMDM0MiwgMC4wMDAzMzcsIDAuMDAwMzM2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjU4OCwgMC4wMDI1OTIsIDAuMDAyNTk2LCAwLjAwMjU5NywgMC4wMDI1OTcsIDAuMDAyNTk3LCAwLjAwMjU5NyIsIFwKLSAgICAgICAgICAiMC4wMDI1NywgMC4wMDI1OCwgMC4wMDI1OTQsIDAuMDAyNTk3LCAwLjAwMjU5OSwgMC4wMDI2LCAwLjAwMjYiLCBcCi0gICAgICAgICAgIjAuMDAyNTczLCAwLjAwMjU4LCAwLjAwMjU5NCwgMC4wMDI1OTcsIDAuMDAyNTk5LCAwLjAwMjYsIDAuMDAyNiIsIFwKLSAgICAgICAgICAiMC4wMDI2MDgsIDAuMDAyNjA2LCAwLjAwMjYwNCwgMC4wMDI2MDMsIDAuMDAyNjAzLCAwLjAwMjYwMiwgMC4wMDI2MDIiLCBcCi0gICAgICAgICAgIjAuMDAyNjU1LCAwLjAwMjYzNiwgMC4wMDI2MTksIDAuMDAyNjEzLCAwLjAwMjYwOSwgMC4wMDI2MDYsIDAuMDAyNjA1IiwgXAotICAgICAgICAgICIwLjAwMjc2MSwgMC4wMDI3MTUsIDAuMDAyNjUsIDAuMDAyNjM4LCAwLjAwMjYyNywgMC4wMDI2MTcsIDAuMDAyNjE0IiwgXAotICAgICAgICAgICIwLjAwMjg3NSwgMC4wMDI3OTgsIDAuMDAyNjksIDAuMDAyNjY3LCAwLjAwMjY0NCwgMC4wMDI2MjgsIDAuMDAyNjIyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwMjg4LCAwLjAwMDI5MywgMC4wMDAyOTksIDAuMDAwMywgMC4wMDAzMDEsIDAuMDAwMzAxLCAwLjAwMDMwMSIsIFwKLSAgICAgICAgICAiMC4wMDAyNzksIDAuMDAwMjkzLCAwLjAwMDMxMywgMC4wMDAzMTgsIDAuMDAwMzIsIDAuMDAwMzIyLCAwLjAwMDMyMyIsIFwKLSAgICAgICAgICAiMC4wMDAyOTQsIDAuMDAwMzAzLCAwLjAwMDMxOCwgMC4wMDAzMjEsIDAuMDAwMzIzLCAwLjAwMDMyNSwgMC4wMDAzMjYiLCBcCi0gICAgICAgICAgIjAuMDAwMzE0LCAwLjAwMDMxNywgMC4wMDAzMjQsIDAuMDAwMzI2LCAwLjAwMDMyNywgMC4wMDAzMjgsIDAuMDAwMzI4IiwgXAotICAgICAgICAgICIwLjAwMDM2NCwgMC4wMDAzNTEsIDAuMDAwMzQsIDAuMDAwMzM2LCAwLjAwMDMzNCwgMC4wMDAzMzMsIDAuMDAwMzMyIiwgXAotICAgICAgICAgICIwLjAwMDQ4MSwgMC4wMDA0MjksIDAuMDAwMzcxLCAwLjAwMDM2LCAwLjAwMDM1MiwgMC4wMDAzNDQsIDAuMDAwMzQxIiwgXAotICAgICAgICAgICIwLjAwMDYyMSwgMC4wMDA1MjQsIDAuMDAwNDEzLCAwLjAwMDM5MiwgMC4wMDAzNzQsIDAuMDAwMzU4LCAwLjAwMDM1MyIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBERkZTSFFYMSAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoREZGU0hRWDEpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC45NDA4Nzc7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgZmYgKE4zNSxRQklOVCkgewotICAgIG5leHRfc3RhdGUgOiAiRCI7Ci0gICAgY2xvY2tlZF9vbiA6ICJDSyI7Ci0gICAgcHJlc2V0IDogIighU04pIjsKLSAgfQotICBwaW4oQ0spICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY0Mzg2OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDY0Mzg2OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDY0Mzc4NjsKLSAgICBjbG9jayA6IHRydWU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzNzIxLCAwLjAwMzcxOCwgMC4wMDM3NzcsIDAuMDAzODgsIDAuMDAzOTgyLCAwLjAwNDIwNSwgMC4wMDQ0MDkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDk5NjMsIDAuMDA5OTQ2LCAwLjAxMDAxNCwgMC4wMTAxMzEsIDAuMDEwMjU5LCAwLjAxMDQzNSwgMC4wMTA2MjEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFEJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMTA3ODUxLCAwLjExNjA2MywgMC4xMjU1NTMsIDAuMTMzMzY4LCAwLjEzOTU5LCAwLjE0NzY5NSwgMC4xNTM4MjQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjA4MTg3LCAwLjA4OTk4NSwgMC4wOTk0MzYsIDAuMTA2NzE3LCAwLjExMjQzNywgMC4xMjAwMTQsIDAuMTI1NjcyIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihEKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA3OTcyNTk7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNzk1MzE1OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDc5NzI1OTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDQwODMsIDAuMDA0MDM3LCAwLjAwNDA2MywgMC4wMDQxMTUsIDAuMDA0MTkzLCAwLjAwNDM2LCAwLjAwNDUyOCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNDYwMSwgMC4wMDQ1NzYsIDAuMDA0NTkxLCAwLjAwNDY0MywgMC4wMDQ3MjcsIDAuMDA0ODY3LCAwLjAwNTAzOSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJTTiA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMDYyNSwgLTAuMDAxMjUsIC0wLjAwMTI1LCAwLjAwNSwgMC4wMDUsIDAuMDA4NzUsIDAuMDExMjUiLCBcCi0gICAgICAgICAgIi0wLjAxNzUsIC0wLjAwNjI1LCAtMC4wMDYyNSwgMCwgMCwgMC4wMDM3NSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxMjUsIC0wLjAxMjUsIC0wLjAwNjI1LCAtMC4wMDYyNSwgLTAuMDAyNSwgMCIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMTI1LCAtMC4wMDYyNSwgLTAuMDAyNSwgMCIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAxMjUsIC0wLjAwODc1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDMzNzUsIC0wLjAyODc1LCAtMC4wMjI1LCAtMC4wMjI1LCAtMC4wMTYyNSwgLTAuMDEyNSwgLTAuMDEiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTUsIC0wLjAxMjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMjUsIDAuMDIzNzUsIDAuMDMsIDAuMDM2MjUsIDAuMDQyNSwgMC4wNTI1LCAwLjA1NSIsIFwKLSAgICAgICAgICAiMC4wMDc1LCAwLjAxODc1LCAwLjAyNSwgMC4wMzEyNSwgMC4wMzc1LCAwLjA0NzUsIDAuMDUiLCBcCi0gICAgICAgICAgIjAuMDA3NSwgMC4wMTI1LCAwLjAyNSwgMC4wMzEyNSwgMC4wMzc1LCAwLjA0MTI1LCAwLjA1IiwgXAotICAgICAgICAgICIwLjAwMTI1LCAwLjAxMjUsIDAuMDE4NzUsIDAuMDI1LCAwLjAzMTI1LCAwLjA0MTI1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjAwMTI1LCAwLjAxMjUsIDAuMDE4NzUsIDAuMDI1LCAwLjAzMTI1LCAwLjAzNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDAyNSwgMC4wMDg3NSwgMC4wMTUsIDAuMDIxMjUsIDAuMDI3NSwgMC4wMzc1LCAwLjA0IiwgXAotICAgICAgICAgICItMC4wMDUsIDAuMDA2MjUsIDAuMDEyNSwgMC4wMTg3NSwgMC4wMjUsIDAuMDM1LCAwLjAzNzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlNOIjsKLSAgICAgIHNkZl9jb25kIDogIlNOID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyNSwgMC4wMiwgMC4wMTM3NSwgMC4wMDc1LCAwLjAwNzUsIDAuMDAzNzUsIDAuMDAxMjUiLCBcCi0gICAgICAgICAgIjAuMDM2MjUsIDAuMDI1LCAwLjAxODc1LCAwLjAxMjUsIDAuMDEyNSwgMC4wMDg3NSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiMC4wNDI1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMjUsIDAuMDE4NzUsIDAuMDE1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMDQ4NzUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMjUsIDAuMDI1LCAwLjAyMTI1LCAwLjAxODc1IiwgXAotICAgICAgICAgICIwLjA0ODc1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDMxMjUsIDAuMDIxMjUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMDU4NzUsIDAuMDQ3NSwgMC4wNDEyNSwgMC4wMzUsIDAuMDM1LCAwLjAzMTI1LCAwLjAyODc1IiwgXAotICAgICAgICAgICIwLjA2MTI1LCAwLjA1NjI1LCAwLjA1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDMzNzUsIDAuMDMxMjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjUsIDAuMDEzNzUsIDAuMDA3NSwgLTAuMDA1LCAtMC4wMTEyNSwgLTAuMDE1LCAtMC4wMjM3NSIsIFwKLSAgICAgICAgICAiMC4wMywgMC4wMjUsIDAuMDEyNSwgMC4wMDYyNSwgMCwgLTAuMDEsIC0wLjAxODc1IiwgXAotICAgICAgICAgICIwLjAzNjI1LCAwLjAyNSwgMC4wMTg3NSwgMC4wMTI1LCAwLjAwNjI1LCAtMC4wMDM3NSwgLTAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4wNDI1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMTI1LCAwLjAwNjI1LCAwLjAwMjUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICIwLjA0MjUsIDAuMDM3NSwgMC4wMjUsIDAuMDE4NzUsIDAuMDEyNSwgMC4wMDI1LCAwIiwgXAotICAgICAgICAgICIwLjA1MjUsIDAuMDQxMjUsIDAuMDI4NzUsIDAuMDIyNSwgMC4wMTYyNSwgMC4wMDYyNSwgMC4wMDM3NSIsIFwKLSAgICAgICAgICAiMC4wNTUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMjUsIDAuMDE4NzUsIDAuMDE1LCAwLjAwNjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihRKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMzQ1ODsKLSAgICBmdW5jdGlvbiA6ICJOMzUiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5vbl91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcmlzaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5MjQ4NiwgMC4xMTA4NDcsIDAuMjE0NzE2LCAwLjMwNjMzMywgMC40Mjg1NjIsIDAuNjcyOTU0LCAwLjgyNTY3OCIsIFwKLSAgICAgICAgICAiMC4xMDA2NDIsIDAuMTE4OTk1LCAwLjIyMjg5NiwgMC4zMTQ1NDgsIDAuNDM2NzA5LCAwLjY4MTExNiwgMC44MzM4MzYiLCBcCi0gICAgICAgICAgIjAuMTEwMTYxLCAwLjEyODUyMiwgMC4yMzI0MTYsIDAuMzI0MDYzLCAwLjQ0NjI1MywgMC42OTA2MTgsIDAuODQzMzcyIiwgXAotICAgICAgICAgICIwLjExNzg0MywgMC4xMzYyMSwgMC4yNDAwOTksIDAuMzMxNzQ3LCAwLjQ1Mzk2NCwgMC42OTgyODEsIDAuODUxMDQ0IiwgXAotICAgICAgICAgICIwLjEyMzkzNSwgMC4xNDIyODgsIDAuMjQ2MTg1LCAwLjMzNzgyLCAwLjQ1OTk5OSwgMC43MDQzNjgsIDAuODU3MTciLCBcCi0gICAgICAgICAgIjAuMTMxOTE1LCAwLjE1MDI3OCwgMC4yNTQxNjgsIDAuMzQ1ODYxLCAwLjQ2Nzk5LCAwLjcxMjM1NCwgMC44NjUwODciLCBcCi0gICAgICAgICAgIjAuMTM4MDA1LCAwLjE1NjM2MiwgMC4yNjAyNDMsIDAuMzUxODk5LCAwLjQ3NDEyNCwgMC43MTg0MzQsIDAuODcxMTYzIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2OTU4NywgMC4xMDc2ODEsIDAuMzI1OTAxLCAwLjUxODYsIDAuNzc2MDI1LCAxLjI4ODk4LCAxLjYxMDI0IiwgXAotICAgICAgICAgICIwLjA2OTYyOCwgMC4xMDc3MTQsIDAuMzI1NjA2LCAwLjUxODg5OCwgMC43NzYwMTYsIDEuMjg4MjEsIDEuNjEwMTQiLCBcCi0gICAgICAgICAgIjAuMDY5NTg2LCAwLjEwNzY3OSwgMC4zMjU0MDcsIDAuNTE4ODg1LCAwLjc3NTI5LCAxLjI4OTEsIDEuNjEwMDQiLCBcCi0gICAgICAgICAgIjAuMDY5NjI4LCAwLjEwNzYzOSwgMC4zMjUzODQsIDAuNTE4ODc0LCAwLjc3NjAzOCwgMS4yOTAzOCwgMS42MTAxMyIsIFwKLSAgICAgICAgICAiMC4wNjk2MzIsIDAuMTA3NjgsIDAuMzI1OTg2LCAwLjUxODM1NywgMC43NzUxNTIsIDEuMjg5MjEsIDEuNjExNzUiLCBcCi0gICAgICAgICAgIjAuMDY5NTgzLCAwLjEwNzYyNCwgMC4zMjU5NDYsIDAuNTE4MDksIDAuNzc1OTQsIDEuMjg5MTUsIDEuNjEwNDIiLCBcCi0gICAgICAgICAgIjAuMDY5NjY5LCAwLjEwNzY5NSwgMC4zMjU2OTMsIDAuNTE4NzY0LCAwLjc3NTkyMiwgMS4yODkwMywgMS42MTAyIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwNzg1MSwgMC4xMjU5OTgsIDAuMjI4NTY4LCAwLjMxOTAzMywgMC40Mzk2OTEsIDAuNjgwODcxLCAwLjgzMTY0NSIsIFwKLSAgICAgICAgICAiMC4xMTYwNjMsIDAuMTM0MjExLCAwLjIzNjc4MywgMC4zMjcyNDcsIDAuNDQ3OTA0LCAwLjY4OTA4NCwgMC44Mzk4NTgiLCBcCi0gICAgICAgICAgIjAuMTI1NTUzLCAwLjE0MzcwMSwgMC4yNDYyNzQsIDAuMzM2NzMzLCAwLjQ1NzM5MywgMC42OTg1ODQsIDAuODQ5MzQ4IiwgXAotICAgICAgICAgICIwLjEzMzM2OCwgMC4xNTE1MTYsIDAuMjU0MDg1LCAwLjM0NDU5OSwgMC40NjUyMDksIDAuNzA2Mzg5LCAwLjg1NzE2NCIsIFwKLSAgICAgICAgICAiMC4xMzk1OSwgMC4xNTc3NCwgMC4yNjAzMDQsIDAuMzUwNzk4LCAwLjQ3MTQzNywgMC43MTI2MjEsIDAuODYzMzkxIiwgXAotICAgICAgICAgICIwLjE0NzY5NSwgMC4xNjU4NDUsIDAuMjY4NDAyLCAwLjM1ODg4NiwgMC40Nzk1MjgsIDAuNzIwNzA3LCAwLjg3MTQ4MSIsIFwKLSAgICAgICAgICAiMC4xNTM4MjQsIDAuMTcxOTcsIDAuMjc0NTQ2LCAwLjM2NTAyMywgMC40ODU2MzEsIDAuNzI2OTU2LCAwLjg3NzYyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2NzQ5LCAwLjEwNDE3NSwgMC4zMTUxMzUsIDAuNTAxNTk0LCAwLjc1MDM1MSwgMS4yNDc1NCwgMS41NTYyMSIsIFwKLSAgICAgICAgICAiMC4wNjc0ODgsIDAuMTA0MTc1LCAwLjMxNTE0NywgMC41MDE1MTksIDAuNzUwMzUyLCAxLjI0NzUyLCAxLjU1NzgyIiwgXAotICAgICAgICAgICIwLjA2NzQ4NywgMC4xMDQxNzQsIDAuMzE1MTU0LCAwLjUwMTU5MywgMC43NTAzNjEsIDEuMjQ3NSwgMS41NTc5IiwgXAotICAgICAgICAgICIwLjA2NzQ4NCwgMC4xMDQxNzIsIDAuMzE0NzU1LCAwLjUwMTc1LCAwLjc1MDM1NCwgMS4yNDc1NCwgMS41NTYyMyIsIFwKLSAgICAgICAgICAiMC4wNjc0NzksIDAuMTA0MTcyLCAwLjMxNTEyMSwgMC41MDA3NjQsIDAuNzUwMzQ0LCAxLjI0NzU5LCAxLjU1NjM2IiwgXAotICAgICAgICAgICIwLjA2NzUxNiwgMC4xMDQxODEsIDAuMzE1MDczLCAwLjUwMTA1MywgMC43NTAzNjYsIDEuMjQ3MzEsIDEuNTU2MDgiLCBcCi0gICAgICAgICAgIjAuMDY3NTM4LCAwLjEwNDExMywgMC4zMTUxNTgsIDAuNTAxMTM5LCAwLjc1MDE1MiwgMS4yNDc0LCAxLjU1NjIzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiBwcmVzZXQ7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4NDIwOCwgMC4xMDI1NiwgMC4yMDY0NzQsIDAuMjk4MTIxLCAwLjQyMDM0OSwgMC42NjQ2OTMsIDAuODE3NDQxIiwgXAotICAgICAgICAgICIwLjA5MjI1LCAwLjExMDYwNywgMC4yMTQ1MSwgMC4zMDYxNTcsIDAuNDI4MzQyLCAwLjY3MjcyMSwgMC44MjU0NzQiLCBcCi0gICAgICAgICAgIjAuMTAxOTA1LCAwLjEyMDI2NiwgMC4yMjQxNzMsIDAuMzE1ODMyLCAwLjQzODAwMiwgMC42ODIzNzgsIDAuODM1MTQ2IiwgXAotICAgICAgICAgICIwLjEwOTY0NiwgMC4xMjgwMTMsIDAuMjMxOTIxLCAwLjMyMzU3NywgMC40NDU3NDYsIDAuNjkwMTE2LCAwLjg0Mjg0OCIsIFwKLSAgICAgICAgICAiMC4xMTYxODMsIDAuMTM0NTQxLCAwLjIzODQ1OCwgMC4zMzAwOTgsIDAuNDUyMjc4LCAwLjY5NjY1NSwgMC44NDk0MDgiLCBcCi0gICAgICAgICAgIjAuMTI0NDgsIDAuMTQyODM1LCAwLjI0Njc0NywgMC4zMzg0NDUsIDAuNDYwNTY1LCAwLjcwNDk1MSwgMC44NTc2OTkiLCBcCi0gICAgICAgICAgIjAuMTMwMzQsIDAuMTQ4Njg1LCAwLjI1MjU5NywgMC4zNDQyNDcsIDAuNDY2NDMxLCAwLjcxMDc4MiwgMC44NjM1MyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjk1MzMsIDAuMTA3NTMyLCAwLjMyNjA2MSwgMC41MTg4ODEsIDAuNzc2MTAxLCAxLjI4OTIzLCAxLjYxMDEiLCBcCi0gICAgICAgICAgIjAuMDY5NTI1LCAwLjEwNzcyLCAwLjMyNjA2NSwgMC41MTg4ODIsIDAuNzc1MzgxLCAxLjI4OTI0LCAxLjYxMTg0IiwgXAotICAgICAgICAgICIwLjA2OTU1MywgMC4xMDc3MSwgMC4zMjYwNTUsIDAuNTE4ODc3LCAwLjc3NTQzNiwgMS4yODkxNywgMS42MTE4NSIsIFwKLSAgICAgICAgICAiMC4wNjk1NTEsIDAuMTA3NzI4LCAwLjMyNjA1NCwgMC41MTg4NzQsIDAuNzc1MzksIDEuMjkwNDUsIDEuNjEwNDMiLCBcCi0gICAgICAgICAgIjAuMDY5NjIsIDAuMTA3NzUxLCAwLjMyNjAwNiwgMC41MTg5MjQsIDAuNzc1MzU1LCAxLjI5MDQxLCAxLjYxMTU5IiwgXAotICAgICAgICAgICIwLjA2OTY3MiwgMC4xMDc1NzQsIDAuMzI2MDE2LCAwLjUxODg5NSwgMC43NzYwNDMsIDEuMjkwMzIsIDEuNjExNzciLCBcCi0gICAgICAgICAgIjAuMDY5NjQ0LCAwLjEwNzY5LCAwLjMyNjA2LCAwLjUxODg5LCAwLjc3NTk3MiwgMS4yOTAxNywgMS42MTE2NyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDkwNTUsIDAuMDA5MDYzLCAwLjAwOTA3NSwgMC4wMDkwNzcsIDAuMDA5MDc4LCAwLjAwOTA3NywgMC4wMDkwNzkiLCBcCi0gICAgICAgICAgIjAuMDA5MDM0LCAwLjAwOTA0MiwgMC4wMDkwNTQsIDAuMDA5MDU2LCAwLjAwOTA1NywgMC4wMDkwNTksIDAuMDA5MDU5IiwgXAotICAgICAgICAgICIwLjAwOTExNiwgMC4wMDkxMjQsIDAuMDA5MTM1LCAwLjAwOTEzNywgMC4wMDkxNDQsIDAuMDA5MTQsIDAuMDA5MTQ1IiwgXAotICAgICAgICAgICIwLjAwOTIxOSwgMC4wMDkyMjcsIDAuMDA5MjQsIDAuMDA5MjQyLCAwLjAwOTI0MywgMC4wMDkyNDMsIDAuMDA5MjQ1IiwgXAotICAgICAgICAgICIwLjAwOTM1NCwgMC4wMDkzNTQsIDAuMDA5Mzc1LCAwLjAwOTM3NywgMC4wMDkzNzksIDAuMDA5Mzc5LCAwLjAwOTM4IiwgXAotICAgICAgICAgICIwLjAwOTU2NywgMC4wMDk1ODUsIDAuMDA5NTk2LCAwLjAwOTU5OCwgMC4wMDk2LCAwLjAwOTYwMSwgMC4wMDk2MDEiLCBcCi0gICAgICAgICAgIjAuMDA5NzY3LCAwLjAwOTc3MSwgMC4wMDk3ODIsIDAuMDA5Nzg1LCAwLjAwOTc5MywgMC4wMDk3OTcsIDAuMDA5Nzk3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA4NjU4LCAwLjAwODY3LCAwLjAwODY4NywgMC4wMDg2OSwgMC4wMDg2OTIsIDAuMDA4Njk0LCAwLjAwODY5NCIsIFwKLSAgICAgICAgICAiMC4wMDg2NTIsIDAuMDA4NjYzLCAwLjAwODY4LCAwLjAwODY4NCwgMC4wMDg2ODYsIDAuMDA4Njg4LCAwLjAwODY4OCIsIFwKLSAgICAgICAgICAiMC4wMDg3NTMsIDAuMDA4NzY1LCAwLjAwODc4MiwgMC4wMDg3ODUsIDAuMDA4Nzg3LCAwLjAwODc4OSwgMC4wMDg3ODkiLCBcCi0gICAgICAgICAgIjAuMDA4ODgxLCAwLjAwODg5MywgMC4wMDg5MTEsIDAuMDA4OTE0LCAwLjAwODkxNiwgMC4wMDg5MTgsIDAuMDA4OTE4IiwgXAotICAgICAgICAgICIwLjAwOTAwNCwgMC4wMDkwMTYsIDAuMDA5MDMzLCAwLjAwOTAzNiwgMC4wMDkwMzgsIDAuMDA5MDQsIDAuMDA5MDQxIiwgXAotICAgICAgICAgICIwLjAwOTI2MSwgMC4wMDkyNzIsIDAuMDA5Mjg4LCAwLjAwOTI5MiwgMC4wMDkyOTQsIDAuMDA5Mjk2LCAwLjAwOTI5NiIsIFwKLSAgICAgICAgICAiMC4wMDk0NywgMC4wMDk0ODEsIDAuMDA5NDk4LCAwLjAwOTUwMSwgMC4wMDk1MDMsIDAuMDA5NDY2LCAwLjAwOTUwNSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTA2ODMsIDAuMDEwNjkyLCAwLjAxMDcwNCwgMC4wMTA3MDksIDAuMDEwNzA4LCAwLjAxMDcwOSwgMC4wMTA3MTEiLCBcCi0gICAgICAgICAgIjAuMDEwNjQ4LCAwLjAxMDY1NywgMC4wMTA2NjksIDAuMDEwNjcxLCAwLjAxMDY3MiwgMC4wMTA2NzQsIDAuMDEwNjc0IiwgXAotICAgICAgICAgICIwLjAxMDY1OCwgMC4wMTA2NjcsIDAuMDEwNjgsIDAuMDEwNjgzLCAwLjAxMDY4OCwgMC4wMTA2ODYsIDAuMDEwNjkxIiwgXAotICAgICAgICAgICIwLjAxMDczMywgMC4wMTA3NDMsIDAuMDEwNzU3LCAwLjAxMDc1OSwgMC4wMTA3NjEsIDAuMDEwNzYzLCAwLjAxMDc2MiIsIFwKLSAgICAgICAgICAiMC4wMTA4MjQsIDAuMDEwODMyLCAwLjAxMDg0NywgMC4wMTA4NSwgMC4wMTA4NTEsIDAuMDEwODUzLCAwLjAxMDg1MyIsIFwKLSAgICAgICAgICAiMC4wMTA5OTQsIDAuMDExMDAyLCAwLjAxMTAyMiwgMC4wMTEwMjQsIDAuMDExMDI0LCAwLjAxMTAyNSwgMC4wMTEwMjYiLCBcCi0gICAgICAgICAgIjAuMDExMjM1LCAwLjAxMTI0NiwgMC4wMTEyNjEsIDAuMDExMjY1LCAwLjAxMTI2NywgMC4wMTEyNjksIDAuMDExMjciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoc2NhbGFyKSB7Ci0gICAgICAgIHZhbHVlcygiMCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oU04pICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTg2OTUxOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTcyOTI7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxODY5NTE7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwODQyLCAwLjAwMDg0MSwgMC4wMDA4NDEsIDAuMDAwODQxLCAwLjAwMDg0MSwgMC4wMDA4NDEsIDAuMDAwODQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA4NjcsIDAuMDAwODUyLCAwLjAwMDg0NywgMC4wMDA4NDUsIDAuMDAwODQ0LCAwLjAwMDg0NCwgMC4wMDA4NDMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiU04iOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFEIjsKLSAgICAgIHNkZl9jb25kIDogIkQgPT0gMSdiMCI7Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wODQyMDgsIDAuMDkyMjQ5LCAwLjEwMTkwNSwgMC4xMDk2NDYsIDAuMTE2MTgyLCAwLjEyNDQ4LCAwLjEzMDM0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogcmVjb3ZlcnlfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRCI7Ci0gICAgICBzZGZfY29uZCA6ICJEID09IDEnYjAiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHJlY292ZXJ5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLCAtMC4wMTEyNSwgLTAuMDE3NSwgLTAuMDIzNzUsIC0wLjAzNjI1LCAtMC4wNCwgLTAuMDQ4NzUiLCBcCi0gICAgICAgICAgIjAuMDA1LCAwLCAtMC4wMTI1LCAtMC4wMTg3NSwgLTAuMDI1LCAtMC4wMzUsIC0wLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjAxMTI1LCAwLjAwNjI1LCAtMC4wMDYyNSwgLTAuMDEyNSwgLTAuMDE4NzUsIC0wLjAyODc1LCAtMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4wMjM3NSwgMC4wMTI1LCAwLCAtMC4wMDYyNSwgLTAuMDEyNSwgLTAuMDIyNSwgLTAuMDI1IiwgXAotICAgICAgICAgICIwLjAzLCAwLjAxODc1LCAwLjAxMjUsIDAsIC0wLjAwNjI1LCAtMC4wMSwgLTAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMDQsIDAuMDI4NzUsIDAuMDIyNSwgMC4wMSwgMC4wMDM3NSwgMCwgLTAuMDA4NzUiLCBcCi0gICAgICAgICAgIjAuMDQ4NzUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMTg3NSwgMC4wMTI1LCAwLjAwODc1LCAwIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogcmVtb3ZhbF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEIjsKLSAgICAgIHNkZl9jb25kIDogIkQgPT0gMSdiMCI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQocmVtb3ZhbF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjUsIDAuMDM2MjUsIDAuMDQyNSwgMC4wNDg3NSwgMC4wNTUsIDAuMDY1LCAwLjA3Mzc1IiwgXAotICAgICAgICAgICIwLjAyLCAwLjAzMTI1LCAwLjAzNzUsIDAuMDQzNzUsIDAuMDUsIDAuMDYsIDAuMDYyNSIsIFwKLSAgICAgICAgICAiMC4wMTM3NSwgMC4wMTg3NSwgMC4wMzEyNSwgMC4wMzc1LCAwLjA0Mzc1LCAwLjA1Mzc1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICIwLjAwNzUsIDAuMDEyNSwgMC4wMjUsIDAuMDMxMjUsIDAuMDM3NSwgMC4wNDc1LCAwLjA1IiwgXAotICAgICAgICAgICIwLjAwMTI1LCAwLjAwNjI1LCAwLjAxODc1LCAwLjAyNSwgMC4wMzEyNSwgMC4wNDEyNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDA4NzUsIDAuMDAyNSwgMC4wMDg3NSwgMC4wMTUsIDAuMDIxMjUsIDAuMDMxMjUsIDAuMDMzNzUiLCBcCi0gICAgICAgICAgIi0wLjAxMTI1LCAtMC4wMDYyNSwgMC4wMDYyNSwgMC4wMTI1LCAwLjAxODc1LCAwLjAyMjUsIDAuMDMxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IERGRlNSSFFYOCAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKERGRlNSSFFYOCkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAyLjAwMTczOwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIGZmIChOMzUsUUJJTlQpIHsKLSAgICBuZXh0X3N0YXRlIDogIkQiOwotICAgIGNsb2NrZWRfb24gOiAiQ0siOwotICAgIGNsZWFyIDogIighUk4pIjsKLSAgICBwcmVzZXQgOiAiKCFTTikiOwotICAgIGNsZWFyX3ByZXNldF92YXIxIDogSDsKLSAgfQotICBwaW4oQ0spICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYzNzI5MzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MzcyOTM7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjM2OTU4OwotICAgIGNsb2NrIDogdHJ1ZTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDQ3MDksIDAuMDA0Njk1LCAwLjAwNDc3MSwgMC4wMDQ4NywgMC4wMDQ5ODksIDAuMDA1MjEzLCAwLjAwNTM5OSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAxMDI4MSwgMC4wMTAyNzIsIDAuMDEwMzMsIDAuMDEwNDIzLCAwLjAxMDUzMywgMC4wMTA2OTUsIDAuMDEwODY1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRCZSTiZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fUk5fRVFfMV9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDk4OTc1LCAwLjEwNzIyNSwgMC4xMTY2NjQsIDAuMTI0NDM3LCAwLjEzMDU3LCAwLjEzODc4NywgMC4xNDUwNTMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjA4NzIwNCwgMC4wOTUzMTYsIDAuMTA0Njk5LCAwLjExMTksIDAuMTE3NjIyLCAwLjEyNTI5NiwgMC4xMzA4MDkiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEQpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDgwOTY2NjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA4MDc5ODU7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwODA5NjY2OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNDI0MywgMC4wMDQxOTgsIDAuMDA0MjE1LCAwLjAwNDI2NywgMC4wMDQzNDIsIDAuMDA0NTEyLCAwLjAwNDY2NiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNDgzOCwgMC4wMDQ4MDcsIDAuMDA0ODIzLCAwLjAwNDg3MSwgMC4wMDQ5MzYsIDAuMDA1MDgsIDAuMDA1MjM5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlJOJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIlJOX0VRXzFfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMDYyNSwgLTAuMDAxMjUsIC0wLjAwMTI1LCAwLjAwNSwgMC4wMDUsIDAuMDA4NzUsIDAuMDExMjUiLCBcCi0gICAgICAgICAgIi0wLjAxNzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLCAwLCAwLjAwMzc1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAtMC4wMDYyNSwgLTAuMDAyNSwgMCIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxODc1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDEyNSwgLTAuMDA4NzUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwODc1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDMzNzUsIC0wLjAyODc1LCAtMC4wMjI1LCAtMC4wMjI1LCAtMC4wMTYyNSwgLTAuMDE4NzUsIC0wLjAxNjI1IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzEyNSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDI1LCAtMC4wMjEyNSwgLTAuMDE4NzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxODc1LCAwLjAzLCAwLjAzNjI1LCAwLjA0MjUsIDAuMDQ4NzUsIDAuMDUyNSwgMC4wNjEyNSIsIFwKLSAgICAgICAgICAiMC4wMTM3NSwgMC4wMjUsIDAuMDMxMjUsIDAuMDM3NSwgMC4wNDM3NSwgMC4wNDc1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICIwLjAxMzc1LCAwLjAxODc1LCAwLjAyNSwgMC4wMzc1LCAwLjAzNzUsIDAuMDQ3NSwgMC4wNSIsIFwKLSAgICAgICAgICAiMC4wMDc1LCAwLjAxODc1LCAwLjAyNSwgMC4wMzEyNSwgMC4wMzc1LCAwLjA0NzUsIDAuMDUiLCBcCi0gICAgICAgICAgIjAuMDA3NSwgMC4wMTg3NSwgMC4wMjUsIDAuMDMxMjUsIDAuMDM3NSwgMC4wNDEyNSwgMC4wNSIsIFwKLSAgICAgICAgICAiMC4wMDM3NSwgMC4wMTUsIDAuMDIxMjUsIDAuMDI3NSwgMC4wMzM3NSwgMC4wNDM3NSwgMC4wNDYyNSIsIFwKLSAgICAgICAgICAiMC4wMDc1LCAwLjAxMjUsIDAuMDI1LCAwLjAzMTI1LCAwLjAzMTI1LCAwLjA0MTI1LCAwLjA0Mzc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJSTiZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJSTl9FUV8xX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDUsIDAuMDQ1LCAwLjAzMjUsIDAuMDI2MjUsIDAuMDIsIDAuMDE2MjUsIDAuMDA3NSIsIFwKLSAgICAgICAgICAiMC4wNTUsIDAuMDUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMjUsIDAuMDIxMjUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMDY3NSwgMC4wNTYyNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyNzUsIDAuMDI1IiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDYyNSwgMC4wNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzMzc1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiMC4wNzM3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1LCAwLjA0Mzc1LCAwLjAzMzc1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICIwLjA4Mzc1LCAwLjA3MjUsIDAuMDYsIDAuMDUzNzUsIDAuMDQ3NSwgMC4wNDM3NSwgMC4wNDEyNSIsIFwKLSAgICAgICAgICAiMC4wODYyNSwgMC4wNzUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNDYyNSwgMC4wNDM3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzMTI1LCAwLjAyLCAwLjAxMzc1LCAwLjAwMTI1LCAtMC4wMDUsIC0wLjAxNSwgLTAuMDE3NSIsIFwKLSAgICAgICAgICAiMC4wMzYyNSwgMC4wMjUsIDAuMDE4NzUsIDAuMDA2MjUsIDAsIC0wLjAwMzc1LCAtMC4wMTI1IiwgXAotICAgICAgICAgICIwLjA0MjUsIDAuMDMxMjUsIDAuMDI1LCAwLjAxMjUsIDAuMDA2MjUsIDAuMDAyNSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMDQ4NzUsIDAuMDM3NSwgMC4wMjUsIDAuMDE4NzUsIDAuMDEyNSwgMC4wMDI1LCAwIiwgXAotICAgICAgICAgICIwLjA0ODc1LCAwLjA0Mzc1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMTg3NSwgMC4wMDg3NSwgMCIsIFwKLSAgICAgICAgICAiMC4wNTI1LCAwLjA0NzUsIDAuMDM1LCAwLjAyODc1LCAwLjAyMjUsIDAuMDEyNSwgMC4wMSIsIFwKLSAgICAgICAgICAiMC4wNjEyNSwgMC4wNSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMTUsIDAuMDEyNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAyLjY2NDIzOwotICAgIGZ1bmN0aW9uIDogIk4zNSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3NlbnNlIDogbm9uX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiByaXNpbmdfZWRnZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTM5MjMsIDAuMTIzMzE1LCAwLjE1MDYyOSwgMC4xNzAxMDksIDAuMjAxMjQyLCAwLjIyODQ3NCwgMC4yNjczODEiLCBcCi0gICAgICAgICAgIjAuMTAyMTEsIDAuMTMxNDY3LCAwLjE1ODc3MSwgMC4xNzgyMzgsIDAuMjA5MzgxLCAwLjIzNjYxNSwgMC4yNzU1MzIiLCBcCi0gICAgICAgICAgIjAuMTExMzk2LCAwLjE0MDc1NywgMC4xNjgwNTcsIDAuMTg3NTI4LCAwLjIxODY2MywgMC4yNDU4OTksIDAuMjg0ODAyIiwgXAotICAgICAgICAgICIwLjExOTEwNywgMC4xNDg1MTIsIDAuMTc1ODEzLCAwLjE5NTI5MSwgMC4yMjY0MjIsIDAuMjUzNjU2LCAwLjI5MjU2MSIsIFwKLSAgICAgICAgICAiMC4xMjUyODksIDAuMTU0NjcyLCAwLjE4MTk4OCwgMC4yMDE0NjgsIDAuMjMyNiwgMC4yNTk4MzUsIDAuMjk4NzQiLCBcCi0gICAgICAgICAgIjAuMTMzNDQ0LCAwLjE2MjgwMywgMC4xOTAxMDIsIDAuMjA5NTc2LCAwLjI0MDcxNSwgMC4yNjc5NSwgMC4zMDY4NTQiLCBcCi0gICAgICAgICAgIjAuMTM5NzE4LCAwLjE2OTA1NiwgMC4xOTYzNSwgMC4yMTU4NiwgMC4yNDY5NjksIDAuMjc0MjAzLCAwLjMxMzEyOCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxODY2OSwgMC4wNzIyNDMsIDAuMTI4NTg2LCAwLjE2OTMwMywgMC4yMzQ3MTEsIDAuMjkyMDg4LCAwLjM3NDE0OCIsIFwKLSAgICAgICAgICAiMC4wMTg2ODIsIDAuMDcyMjQzLCAwLjEyODUwNiwgMC4xNjkyODUsIDAuMjM0NzEsIDAuMjkyMDg2LCAwLjM3NDE1OSIsIFwKLSAgICAgICAgICAiMC4wMTg3MDcsIDAuMDcyMjU0LCAwLjEyODU2NSwgMC4xNjkyODcsIDAuMjM0NzExLCAwLjI5MjA4MSwgMC4zNzQxNjkiLCBcCi0gICAgICAgICAgIjAuMDE4NzA4LCAwLjA3MjIzNiwgMC4xMjg1NDgsIDAuMTY5Mjk1LCAwLjIzNDcxLCAwLjI5MjA4NCwgMC4zNzQxNTUiLCBcCi0gICAgICAgICAgIjAuMDE4NjI3LCAwLjA3MjIzMiwgMC4xMjg1NzQsIDAuMTY5Mjk3LCAwLjIzNDcwOCwgMC4yOTIwNzksIDAuMzc0MTMxIiwgXAotICAgICAgICAgICIwLjAxODYzMSwgMC4wNzIyMTcsIDAuMTI4NTk5LCAwLjE2OTE5OCwgMC4yMzQ3MTMsIDAuMjkyMDg0LCAwLjM3NDE3NCIsIFwKLSAgICAgICAgICAiMC4wMTg2MjIsIDAuMDcyMjA3LCAwLjEyODU5OCwgMC4xNjkyMTQsIDAuMjM0NzExLCAwLjI5MjA5LCAwLjM3NDEyNSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5ODk3NSwgMC4xMjg5NzcsIDAuMTU3MjQ4LCAwLjE3NzQwNywgMC4yMDk2MjEsIDAuMjM3Nzk4LCAwLjI3ODA0NyIsIFwKLSAgICAgICAgICAiMC4xMDcyMjUsIDAuMTM3MjIyLCAwLjE2NTQ5MSwgMC4xODU2NDgsIDAuMjE3ODU3LCAwLjI0NjAzNiwgMC4yODYyODciLCBcCi0gICAgICAgICAgIjAuMTE2NjY0LCAwLjE0NjYzNCwgMC4xNzQ5MDMsIDAuMTk1MDYzLCAwLjIyNzI3OCwgMC4yNTU0NTQsIDAuMjk1NzA0IiwgXAotICAgICAgICAgICIwLjEyNDQzNywgMC4xNTQ0NDEsIDAuMTgyNzEyLCAwLjIwMjg3LCAwLjIzNTA3OCwgMC4yNjMyNTgsIDAuMzAzNTAxIiwgXAotICAgICAgICAgICIwLjEzMDU3LCAwLjE2MDU2NSwgMC4xODg4MzYsIDAuMjA4OTk2LCAwLjI0MTIxLCAwLjI2OTM4NiwgMC4zMDk2MzUiLCBcCi0gICAgICAgICAgIjAuMTM4Nzg3LCAwLjE2ODc4NiwgMC4xOTcwNTQsIDAuMjE3MjEzLCAwLjI0OTQyOSwgMC4yNzc2MDQsIDAuMzE3ODU2IiwgXAotICAgICAgICAgICIwLjE0NTA1MywgMC4xNzUwNDUsIDAuMjAzMzEzLCAwLjIyMzQ5NiwgMC4yNTU2OTEsIDAuMjgzODYzLCAwLjMyNDEwOSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxNzgxNCwgMC4wNzMxMDMsIDAuMTMwNzU1LCAwLjE3MjMxOCwgMC4yMzkxMDEsIDAuMjk3NjI5LCAwLjM4MTI0IiwgXAotICAgICAgICAgICIwLjAxNzgxNiwgMC4wNzMxMSwgMC4xMzA3NTgsIDAuMTcyMjk5LCAwLjIzOTEyNiwgMC4yOTc1MTgsIDAuMzgxMjM4IiwgXAotICAgICAgICAgICIwLjAxNzgwNiwgMC4wNzMxMDMsIDAuMTMwNzU1LCAwLjE3MjMyOSwgMC4yMzkxMDEsIDAuMjk3NjMxLCAwLjM4MTI0IiwgXAotICAgICAgICAgICIwLjAxNzc4OCwgMC4wNzMwODksIDAuMTMwNzA1LCAwLjE3MjI5NCwgMC4yMzkwOTcsIDAuMjk3NTU1LCAwLjM4MTYxIiwgXAotICAgICAgICAgICIwLjAxNzc5OSwgMC4wNzMxMDUsIDAuMTMwNzU2LCAwLjE3MjMzNywgMC4yMzkxMDIsIDAuMjk3NjI4LCAwLjM4MTIzNCIsIFwKLSAgICAgICAgICAiMC4wMTc3ODksIDAuMDczMTA0LCAwLjEzMDc1NywgMC4xNzIzMDUsIDAuMjM5MTAzLCAwLjI5NzYxMiwgMC4zODEyMjMiLCBcCi0gICAgICAgICAgIjAuMDE3NzgxLCAwLjA3MzA2OSwgMC4xMzA3ODQsIDAuMTcyMzQyLCAwLjIzOTA3OSwgMC4yOTc1NDQsIDAuMzgxNTQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUk4iOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGNsZWFyOwotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExODc1OSwgMC4xNDg4MzksIDAuMTc3MTQ1LCAwLjE5NzI5OCwgMC4yMjk1MDcsIDAuMjU3NjgsIDAuMjk3OTI4IiwgXAotICAgICAgICAgICIwLjEyNjcwNSwgMC4xNTY3NzEsIDAuMTg1MDc0LCAwLjIwNTIzMiwgMC4yMzc0MzUsIDAuMjY1NjEsIDAuMzA1ODYzIiwgXAotICAgICAgICAgICIwLjEzNTM0NiwgMC4xNjU0MTQsIDAuMTkzNjM4LCAwLjIxMzc5MywgMC4yNDYwMTEsIDAuMjc0MTksIDAuMzE0NDM2IiwgXAotICAgICAgICAgICIwLjE0MTg1NywgMC4xNzE4OTQsIDAuMjAwMTYxLCAwLjIyMDMxMSwgMC4yNTI1MTksIDAuMjgwNzA3LCAwLjMyMDk2MSIsIFwKLSAgICAgICAgICAiMC4xNDcyMTIsIDAuMTc3MjgyLCAwLjIwNTUyNSwgMC4yMjU2ODQsIDAuMjU3ODg5LCAwLjI4NjA2MywgMC4zMjYzMTMiLCBcCi0gICAgICAgICAgIjAuMTU0MDY5LCAwLjE4Mzk3NywgMC4yMTIyNDcsIDAuMjMyMzk0LCAwLjI2NDYxMiwgMC4yOTI3OTEsIDAuMzMzMDQyIiwgXAotICAgICAgICAgICIwLjE1OTE1OCwgMC4xODkyMzksIDAuMjE3NTI1LCAwLjIzNzY3OSwgMC4yNjk4OTUsIDAuMjk4MDgxLCAwLjMzODMyNyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxODEwNCwgMC4wNzMxNzcsIDAuMTMwNzksIDAuMTcyMzY2LCAwLjIzOTEzMSwgMC4yOTc2OTcsIDAuMzgxMzYiLCBcCi0gICAgICAgICAgIjAuMDE4MDg5LCAwLjA3MzE4NCwgMC4xMzA3OTQsIDAuMTcyMzY3LCAwLjIzOTE0OSwgMC4yOTc5MzgsIDAuMzgxNzcyIiwgXAotICAgICAgICAgICIwLjAxODA3NCwgMC4wNzMyMDIsIDAuMTMwNzkyLCAwLjE3MjM2LCAwLjIzOTEwMywgMC4yOTc2OTIsIDAuMzgxMjkxIiwgXAotICAgICAgICAgICIwLjAxODA4OSwgMC4wNzMxNzgsIDAuMTMwNzk4LCAwLjE3MjMyNSwgMC4yMzkxMjMsIDAuMjk3NjIxLCAwLjM4MTg5OCIsIFwKLSAgICAgICAgICAiMC4wMTgwOTYsIDAuMDczMTY3LCAwLjEzMDc4NywgMC4xNzIzMzYsIDAuMjM5MTE2LCAwLjI5NzYxNSwgMC4zODE3NzUiLCBcCi0gICAgICAgICAgIjAuMDE4MTMsIDAuMDczMjA1LCAwLjEzMDc5NiwgMC4xNzIzNDQsIDAuMjM5MTA5LCAwLjI5NzU4MywgMC4zODE4NDYiLCBcCi0gICAgICAgICAgIjAuMDE4MDg5LCAwLjA3MzIxMywgMC4xMzA3OTgsIDAuMTcyMzcsIDAuMjM5MDkxLCAwLjI5Nzg2NywgMC4zODE4NzEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiU04iOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHByZXNldDsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODA4MzEsIDAuMTA5ODg0LCAwLjEzNzIwMSwgMC4xNTY2NywgMC4xODc4MTMsIDAuMjE1MDUzLCAwLjI1Mzk4NyIsIFwKLSAgICAgICAgICAiMC4wODc0NzUsIDAuMTE2NTc1LCAwLjE0Mzg3MywgMC4xNjMzMzcsIDAuMTk0NDksIDAuMjIxNzI4LCAwLjI2MDY2MyIsIFwKLSAgICAgICAgICAiMC4wOTQ3MDgsIDAuMTIzNzI3LCAwLjE1MTA0NywgMC4xNzA1MTUsIDAuMjAxNjYzLCAwLjIyODg4OSwgMC4yNjc4MDgiLCBcCi0gICAgICAgICAgIjAuMTAzODUzLCAwLjEzMjg4NCwgMC4xNjAyMDIsIDAuMTc5Njc1LCAwLjIxMDgxLCAwLjIzODA1NywgMC4yNzY5NjciLCBcCi0gICAgICAgICAgIjAuMTEyMDA4LCAwLjE0MTAwOSwgMC4xNjgzMDksIDAuMTg3NzgxLCAwLjIxODkxMiwgMC4yNDYxNDgsIDAuMjg1MDY0IiwgXAotICAgICAgICAgICIwLjEyMjYwOSwgMC4xNTE3MzUsIDAuMTc5MDQzLCAwLjE5ODUwMSwgMC4yMjk2MzEsIDAuMjU2ODY0LCAwLjI5NTc4MiIsIFwKLSAgICAgICAgICAiMC4xMzA2MzMsIDAuMTU5ODMzLCAwLjE4NzE0NiwgMC4yMDY2MDcsIDAuMjM3NzUxLCAwLjI2NDk4OCwgMC4zMDM4OTYiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTc4NTYsIDAuMDcxODM5LCAwLjEyODM5MSwgMC4xNjg5OTUsIDAuMjM0NzQxLCAwLjI5MjAzNSwgMC4zNzQ0NzQiLCBcCi0gICAgICAgICAgIjAuMDE3ODQ0LCAwLjA3MTg4NCwgMC4xMjgzNDMsIDAuMTY5MTE4LCAwLjIzNDU0MiwgMC4yOTIwMzQsIDAuMzc0NDg3IiwgXAotICAgICAgICAgICIwLjAxNzg2MSwgMC4wNzE4NjEsIDAuMTI4MzkxLCAwLjE2OTE3NSwgMC4yMzQ3NzUsIDAuMjkyMjU0LCAwLjM3NDQ0IiwgXAotICAgICAgICAgICIwLjAxNzgyNiwgMC4wNzE4NzEsIDAuMTI4MzksIDAuMTY5MTI1LCAwLjIzNDYxLCAwLjI5MjI5OSwgMC4zNzQ1MyIsIFwKLSAgICAgICAgICAiMC4wMTc5NTYsIDAuMDcxOTQ5LCAwLjEyODQyLCAwLjE2OTE4MiwgMC4yMzQ2MzYsIDAuMjkyMDY0LCAwLjM3NDU3NCIsIFwKLSAgICAgICAgICAiMC4wMTgxNjksIDAuMDcyLCAwLjEyODQ1OSwgMC4xNjkyMDYsIDAuMjM0NzY5LCAwLjI5MjIzNCwgMC4zNzQ0NTIiLCBcCi0gICAgICAgICAgIjAuMDE4MzU4LCAwLjA3MjE5NiwgMC4xMjg0NjIsIDAuMTY5MjM2LCAwLjIzNDY3LCAwLjI5MjIwNSwgMC4zNzQ0MDQiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDMwODcsIDAuMTMzMTAzLCAwLjE2MTM3MSwgMC4xODE1MjIsIDAuMjEzNzM4LCAwLjI0MTkxNywgMC4yODIxNjQiLCBcCi0gICAgICAgICAgIjAuMTA5Njg2LCAwLjEzOTcwNCwgMC4xNjc5NzQsIDAuMTg4MTI1LCAwLjIyMDM0MiwgMC4yNDg1MjEsIDAuMjg4NzY3IiwgXAotICAgICAgICAgICIwLjExNzMwNCwgMC4xNDczMzIsIDAuMTc1NTkyLCAwLjE5NTc0OSwgMC4yMjc5NjEsIDAuMjU2MTM1LCAwLjI5NjM4OSIsIFwKLSAgICAgICAgICAiMC4xMjQ4NTIsIDAuMTU0OTI0LCAwLjE4MzEzMiwgMC4yMDMyODgsIDAuMjM1NTA1LCAwLjI2MzY4MywgMC4zMDM5MjciLCBcCi0gICAgICAgICAgIjAuMTMyMDY2LCAwLjE2MjEyOSwgMC4xOTA0MzEsIDAuMjEwNTg1LCAwLjI0Mjc5NSwgMC4yNzA5NzEsIDAuMzExMjE3IiwgXAotICAgICAgICAgICIwLjE0MjY0NywgMC4xNzI2ODYsIDAuMjAwOTM4LCAwLjIyMTA4NywgMC4yNTMzMDMsIDAuMjgxNDgyLCAwLjMyMTczNSIsIFwKLSAgICAgICAgICAiMC4xNTEwMDEsIDAuMTgxMDg4LCAwLjIwOTMzMiwgMC4yMjk0OTMsIDAuMjYxNjk2LCAwLjI4OTg3NiwgMC4zMzAxMiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxODEyNCwgMC4wNzMxNzksIDAuMTMwNzQ3LCAwLjE3MjMzNywgMC4yMzkwOTYsIDAuMjk3NjcyLCAwLjM4MTc2NCIsIFwKLSAgICAgICAgICAiMC4wMTgxMDgsIDAuMDczMTg1LCAwLjEzMDc3OCwgMC4xNzIzMzQsIDAuMjM5MTIzLCAwLjI5NzY1NSwgMC4zODE4MjEiLCBcCi0gICAgICAgICAgIjAuMDE4MDcxLCAwLjA3MzE3NCwgMC4xMzA3NzgsIDAuMTcyMzMzLCAwLjIzOTEyNCwgMC4yOTc2MTUsIDAuMzgxODMiLCBcCi0gICAgICAgICAgIjAuMDE4MDI1LCAwLjA3MzE2OCwgMC4xMzA3NDYsIDAuMTcyMzM2LCAwLjIzOTEyMSwgMC4yOTc2NiwgMC4zODE4MTkiLCBcCi0gICAgICAgICAgIjAuMDE4MDUxLCAwLjA3MzE2NCwgMC4xMzA3ODQsIDAuMTcyMzM3LCAwLjIzOTExOCwgMC4yOTc3MDEsIDAuMzgxNjEzIiwgXAotICAgICAgICAgICIwLjAxODM2NCwgMC4wNzMyNDcsIDAuMTMwODA0LCAwLjE3MjM3MywgMC4yMzkxNTgsIDAuMjk3ODQ1LCAwLjM4MTkwMSIsIFwKLSAgICAgICAgICAiMC4wMTgzODEsIDAuMDczMjk2LCAwLjEzMDg1NCwgMC4xNzIzNjcsIDAuMjM5MTg3LCAwLjI5NzYxNywgMC4zODE3NTIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjE5MDMsIDAuMDIyMTEyLCAwLjAyMjE5NSwgMC4wMjIyMiwgMC4wMjIyNTIsIDAuMDIyMjY3LCAwLjAyMjI4IiwgXAotICAgICAgICAgICIwLjAyMTg3NywgMC4wMjIwODcsIDAuMDIyMTcxLCAwLjAyMjIwMiwgMC4wMjIyMzMsIDAuMDIyMjQ0LCAwLjAyMjI1OCIsIFwKLSAgICAgICAgICAiMC4wMjE5OTksIDAuMDIyMTc2LCAwLjAyMjI1MywgMC4wMjIyODEsIDAuMDIyMzA3LCAwLjAyMjMyNywgMC4wMjIzMzMiLCBcCi0gICAgICAgICAgIjAuMDIyMDgzLCAwLjAyMjI2MiwgMC4wMjIzNDUsIDAuMDIyMzc0LCAwLjAyMjM5NiwgMC4wMjI0MjEsIDAuMDIyNDI5IiwgXAotICAgICAgICAgICIwLjAyMjEyNywgMC4wMjIzNSwgMC4wMjI0MzcsIDAuMDIyNDY4LCAwLjAyMjQ5OSwgMC4wMjI1MTQsIDAuMDIyNTI2IiwgXAotICAgICAgICAgICIwLjAyMjM1MiwgMC4wMjI1ODksIDAuMDIyNjc2LCAwLjAyMjcwNiwgMC4wMjI3MjcsIDAuMDIyNzQ5LCAwLjAyMjc2MSIsIFwKLSAgICAgICAgICAiMC4wMjI1NjgsIDAuMDIyNzg3LCAwLjAyMjg1NiwgMC4wMjI4NzMsIDAuMDIyOTE0LCAwLjAyMjkzLCAwLjAyMjkyNiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDIxMjQ1LCAwLjAyMTYwOSwgMC4wMjE3MzksIDAuMDIxNzg1LCAwLjAyMTgyOSwgMC4wMjE4NTMsIDAuMDIxODc0IiwgXAotICAgICAgICAgICIwLjAyMTI0NSwgMC4wMjE2MDQsIDAuMDIxNzMsIDAuMDIxNzc3LCAwLjAyMTgyLCAwLjAyMTg0MiwgMC4wMjE4NjUiLCBcCi0gICAgICAgICAgIjAuMDIxMzMxLCAwLjAyMTY5NiwgMC4wMjE4MjYsIDAuMDIxODczLCAwLjAyMTkxNywgMC4wMjE5NDEsIDAuMDIxOTYyIiwgXAotICAgICAgICAgICIwLjAyMTQxOSwgMC4wMjE3OTMsIDAuMDIxOTIzLCAwLjAyMTk3LCAwLjAyMjAxNCwgMC4wMjIwMzgsIDAuMDIyMDYxIiwgXAotICAgICAgICAgICIwLjAyMTUyNywgMC4wMjE5MDMsIDAuMDIyMDM1LCAwLjAyMjA4MiwgMC4wMjIxMjUsIDAuMDIyMTQ5LCAwLjAyMjE3MiIsIFwKLSAgICAgICAgICAiMC4wMjE4MTQsIDAuMDIyMTg5LCAwLjAyMjMsIDAuMDIyMzQ4LCAwLjAyMjM5MiwgMC4wMjI0MTQsIDAuMDIyNDM3IiwgXAotICAgICAgICAgICIwLjAyMjAyNCwgMC4wMjIzOTQsIDAuMDIyNTIyLCAwLjAyMjU0MiwgMC4wMjI2MTQsIDAuMDIyNjM1LCAwLjAyMjY1OCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyNDIwNywgMC4wMjQ1NTIsIDAuMDI0Njg1LCAwLjAyNDczMywgMC4wMjQ3OCwgMC4wMjQ4MDUsIDAuMDI0ODI4IiwgXAotICAgICAgICAgICIwLjAyNDIwMSwgMC4wMjQ1NDgsIDAuMDI0NjgsIDAuMDI0NzMsIDAuMDI0Nzc2LCAwLjAyNDgwMSwgMC4wMjQ4MjUiLCBcCi0gICAgICAgICAgIjAuMDI0MjY0LCAwLjAyNDYwNiwgMC4wMjQ3MzgsIDAuMDI0Nzg3LCAwLjAyNDgzMiwgMC4wMjQ4NTcsIDAuMDI0ODgxIiwgXAotICAgICAgICAgICIwLjAyNDM0MywgMC4wMjQ2ODcsIDAuMDI0ODE3LCAwLjAyNDg2NCwgMC4wMjQ5MSwgMC4wMjQ5MzcsIDAuMDI0OTYiLCBcCi0gICAgICAgICAgIjAuMDI0NDU1LCAwLjAyNDc5MiwgMC4wMjQ5MjIsIDAuMDI0OTcxLCAwLjAyNTAyLCAwLjAyNTA0NSwgMC4wMjUwNjgiLCBcCi0gICAgICAgICAgIjAuMDI0Njc2LCAwLjAyNDk5LCAwLjAyNTEyNiwgMC4wMjUxNzYsIDAuMDI1MjIzLCAwLjAyNTI0OCwgMC4wMjUyNzEiLCBcCi0gICAgICAgICAgIjAuMDI0ODUyLCAwLjAyNTE3OCwgMC4wMjUyOTUsIDAuMDI1MzQ1LCAwLjAyNTM5MiwgMC4wMjU0MjgsIDAuMDI1NDUzIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3Bvd2VyKHNjYWxhcikgewotICAgICAgICB2YWx1ZXMoIjAiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjQwMzEsIDAuMDI0MjU0LCAwLjAyNDMzLCAwLjAyNDM1NCwgMC4wMjQzOCwgMC4wMjQzOTQsIDAuMDI0NDA1IiwgXAotICAgICAgICAgICIwLjAyNDAwNCwgMC4wMjQyMjYsIDAuMDI0MywgMC4wMjQzMjYsIDAuMDI0MzUxLCAwLjAyNDM2MywgMC4wMjQzNzUiLCBcCi0gICAgICAgICAgIjAuMDI0MDI3LCAwLjAyNDI1OCwgMC4wMjQzMzMsIDAuMDI0MzYyLCAwLjAyNDM4NSwgMC4wMjQ0LCAwLjAyNDQxIiwgXAotICAgICAgICAgICIwLjAyNDA3MSwgMC4wMjQzMzcsIDAuMDI0NDI1LCAwLjAyNDQ1NSwgMC4wMjQ0ODQsIDAuMDI0NDk4LCAwLjAyNDUxMiIsIFwKLSAgICAgICAgICAiMC4wMjQyNzcsIDAuMDI0NTEsIDAuMDI0NTk3LCAwLjAyNDYyOCwgMC4wMjQ2NTcsIDAuMDI0NjcsIDAuMDI0Njg1IiwgXAotICAgICAgICAgICIwLjAyNDU3MywgMC4wMjQ4MTIsIDAuMDI0OTAyLCAwLjAyNDkzNSwgMC4wMjQ5NjUsIDAuMDI0OTc5LCAwLjAyNDk5NSIsIFwKLSAgICAgICAgICAiMC4wMjQ5MjcsIDAuMDI1MTMyLCAwLjAyNTIyLCAwLjAyNTI1NSwgMC4wMjUyNzcsIDAuMDI1MzAxLCAwLjAyNTMxMiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDIwNSwgMC4wMjA4NDIsIDAuMDIwOTczLCAwLjAyMTAyMSwgMC4wMjEwNjgsIDAuMDIxMDk0LCAwLjAyMTExOCIsIFwKLSAgICAgICAgICAiMC4wMjA0MTUsIDAuMDIwNzYsIDAuMDIwODkyLCAwLjAyMDk0LCAwLjAyMDk4NywgMC4wMjEwMTMsIDAuMDIxMDM3IiwgXAotICAgICAgICAgICIwLjAyMDM5MywgMC4wMjA3MzQsIDAuMDIwODY3LCAwLjAyMDkxNSwgMC4wMjA5NjIsIDAuMDIwOTg5LCAwLjAyMTAxMyIsIFwKLSAgICAgICAgICAiMC4wMjA0MTksIDAuMDIwNzUyLCAwLjAyMDg4NCwgMC4wMjA5MzMsIDAuMDIwOTgyLCAwLjAyMTAwOCwgMC4wMjEwMzIiLCBcCi0gICAgICAgICAgIjAuMDIwNDcyLCAwLjAyMDgwNCwgMC4wMjA5MzksIDAuMDIwOTg5LCAwLjAyMTAzNywgMC4wMjEwNjMsIDAuMDIxMDg3IiwgXAotICAgICAgICAgICIwLjAyMDY3NiwgMC4wMjEwMDgsIDAuMDIxMTU4LCAwLjAyMTIwOCwgMC4wMjEyNTYsIDAuMDIxMjgyLCAwLjAyMTMwNyIsIFwKLSAgICAgICAgICAiMC4wMjA4MzYsIDAuMDIxMTQ5LCAwLjAyMTI3OCwgMC4wMjEzMjksIDAuMDIxMzc5LCAwLjAyMTQwNywgMC4wMjE0MyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUk4pICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYxODA2NzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MTc5NTc7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjE4MDY3OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTAxNCwgMC4wMDEwMSwgMC4wMDEwNzgsIDAuMDAxMTczLCAwLjAwMTI4OCwgMC4wMDE1MDQsIDAuMDAxNjc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzMjEsIDAuMDAzMjEyLCAwLjAwMzI3MywgMC4wMDMzNjgsIDAuMDAzNDg1LCAwLjAwMzYzLCAwLjAwMzkwMSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQmU04iOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4xMTg3NTksIDAuMTI2NzA1LCAwLjEzNTM0NiwgMC4xNDE4NTcsIDAuMTQ3MjEyLCAwLjE1NDA2OSwgMC4xNTkxNTgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiByZWNvdmVyeV9yaXNpbmc7Ci0gICAgICB3aGVuIDogIkQmU04iOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8xX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQocmVjb3ZlcnlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDUsIDAuMDM4NzUsIDAuMDMyNSwgMC4wMjYyNSwgMC4wMiwgMC4wMSwgMC4wMDc1IiwgXAotICAgICAgICAgICIwLjA1NSwgMC4wNSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMTUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4wNjc1LCAwLjA1NjI1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDI3NSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4wNzM3NSwgMC4wNjI1LCAwLjA1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDMzNzUsIDAuMDI1IiwgXAotICAgICAgICAgICIwLjA3Mzc1LCAwLjA2ODc1LCAwLjA1NjI1LCAwLjA1LCAwLjA0Mzc1LCAwLjA0LCAwLjAzMTI1IiwgXAotICAgICAgICAgICIwLjA4Mzc1LCAwLjA3MjUsIDAuMDY2MjUsIDAuMDYsIDAuMDUzNzUsIDAuMDQzNzUsIDAuMDQxMjUiLCBcCi0gICAgICAgICAgIjAuMDg2MjUsIDAuMDgxMjUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNTI1LCAwLjA0Mzc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIHRpbWluZ190eXBlIDogcmVjb3ZlcnlfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRCI7Ci0gICAgICBzZGZfY29uZCA6ICJEID09IDEnYjAiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHJlY292ZXJ5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2MjUsIDAuMDY3NSwgMC4wNzM3NSwgMC4wOCwgMC4wODYyNSwgMC4wOTYyNSwgMC4wOTg3NSIsIFwKLSAgICAgICAgICAiMC4wNTc1LCAwLjA2MjUsIDAuMDY4NzUsIDAuMDc1LCAwLjA4MTI1LCAwLjA4NSwgMC4wOTM3NSIsIFwKLSAgICAgICAgICAiMC4wNTEyNSwgMC4wNTYyNSwgMC4wNjI1LCAwLjA2ODc1LCAwLjA3NSwgMC4wODUsIDAuMDg3NSIsIFwKLSAgICAgICAgICAiMC4wNTEyNSwgMC4wNTYyNSwgMC4wNjI1LCAwLjA2ODc1LCAwLjA3NSwgMC4wNzg3NSwgMC4wODc1IiwgXAotICAgICAgICAgICIwLjA0NSwgMC4wNSwgMC4wNTYyNSwgMC4wNjI1LCAwLjA2ODc1LCAwLjA3ODc1LCAwLjA4NzUiLCBcCi0gICAgICAgICAgIjAuMDQxMjUsIDAuMDUyNSwgMC4wNTg3NSwgMC4wNTg3NSwgMC4wNjUsIDAuMDc1LCAwLjA4Mzc1IiwgXAotICAgICAgICAgICIwLjA0NSwgMC4wNSwgMC4wNTYyNSwgMC4wNjI1LCAwLjA2MjUsIDAuMDcyNSwgMC4wODEyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJlbW92YWxfcmlzaW5nOwotICAgICAgd2hlbiA6ICJEJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMV9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHJlbW92YWxfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAxMjUsIC0wLjAwMTI1LCAwLjAwNSwgMC4wMTEyNSwgMC4wMTc1LCAwLjAyNzUsIDAuMDMiLCBcCi0gICAgICAgICAgIi0wLjAxNzUsIC0wLjAxMjUsIDAsIDAuMDA2MjUsIDAuMDEyNSwgMC4wMTYyNSwgMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTg3NSwgLTAuMDEyNSwgMCwgMCwgMC4wMSwgMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDI1LCAtMC4wMTI1LCAtMC4wMDYyNSwgLTAuMDA2MjUsIDAuMDAzNzUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAtMC4wMDI1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wNDYyNSwgLTAuMDM1LCAtMC4wMjg3NSwgLTAuMDIyNSwgLTAuMDE2MjUsIC0wLjAwNjI1LCAtMC4wMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjA0Mzc1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDE1LCAtMC4wMDYyNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oU04pICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTk2MTExOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTk2MTExOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTk2MDk0OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDg0MSwgMC4wMDA4NDEsIDAuMDAwODQxLCAwLjAwMDg0MSwgMC4wMDA4NCwgMC4wMDA4NCwgMC4wMDA4NCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDg1LCAwLjAwMDg0NSwgMC4wMDA4NDQsIDAuMDAwODQ0LCAwLjAwMDg0NCwgMC4wMDA4NDIsIDAuMDAwODQyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRCYhUk4iOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1JOX0VRXzAgPT0gMSdiMSI7Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wODA3OTUsIDAuMDg3NDQ1LCAwLjA5NDcwNywgMC4xMDM4NTMsIDAuMTEyMDA3LCAwLjEyMjYwOSwgMC4xMzA2MzMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiByZWNvdmVyeV9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEJlJOIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9STl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHJlY292ZXJ5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjI1LCAtMC4wMDUsIC0wLjAxMTI1LCAtMC4wMTc1LCAtMC4wMjM3NSwgLTAuMDMzNzUsIC0wLjA0MjUiLCBcCi0gICAgICAgICAgIjAuMDExMjUsIDAuMDA2MjUsIC0wLjAwNjI1LCAtMC4wMTI1LCAtMC4wMTg3NSwgLTAuMDI4NzUsIC0wLjAzNzUiLCBcCi0gICAgICAgICAgIjAuMDIzNzUsIDAuMDEyNSwgMCwgLTAuMDA2MjUsIC0wLjAxMjUsIC0wLjAyMjUsIC0wLjAyNSIsIFwKLSAgICAgICAgICAiMC4wMywgMC4wMTg3NSwgMC4wMTI1LCAwLCAtMC4wMDYyNSwgLTAuMDE2MjUsIC0wLjAxODc1IiwgXAotICAgICAgICAgICIwLjAzNjI1LCAwLjAyNSwgMC4wMTg3NSwgMC4wMDYyNSwgMCwgLTAuMDAzNzUsIC0wLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMDUyNSwgMC4wNDEyNSwgMC4wMjg3NSwgMC4wMjI1LCAwLjAxNjI1LCAwLjAwNjI1LCAtMC4wMDI1IiwgXAotICAgICAgICAgICIwLjA2MTI1LCAwLjA1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDI1LCAwLjAxNSwgMC4wMTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogcmVtb3ZhbF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEJlJOIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9STl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHJlbW92YWxfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE4NzUsIDAuMDMsIDAuMDM2MjUsIDAuMDQ4NzUsIDAuMDU1LCAwLjA1ODc1LCAwLjA2NzUiLCBcCi0gICAgICAgICAgIjAuMDEzNzUsIDAuMDI1LCAwLjAzMTI1LCAwLjAzNzUsIDAuMDQzNzUsIDAuMDUzNzUsIDAuMDYyNSIsIFwKLSAgICAgICAgICAiMC4wMDc1LCAwLjAxMjUsIDAuMDI1LCAwLjAzMTI1LCAwLjAzNzUsIDAuMDQ3NSwgMC4wNSIsIFwKLSAgICAgICAgICAiMC4wMDEyNSwgMC4wMDYyNSwgMC4wMTg3NSwgMC4wMjUsIDAuMDMxMjUsIDAuMDQxMjUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIi0wLjAwNSwgMCwgMC4wMTI1LCAwLjAxODc1LCAwLjAyNSwgMC4wMjg3NSwgMC4wMzc1IiwgXAotICAgICAgICAgICItMC4wMTUsIC0wLjAxLCAwLjAwMjUsIDAuMDA4NzUsIDAuMDE1LCAwLjAyNSwgMC4wMjc1IiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAsIDAuMDA2MjUsIDAuMDE2MjUsIDAuMDE4NzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogRURGRlRSWEwgKgotICogLS0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKEVERkZUUlhMKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDEuMjM1MTU7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgZmYgKE4zMCxRQklOVCkgewotICAgIG5leHRfc3RhdGUgOiAiKCgoISgoIUQpIEUpKSAoISgoIUUpICghTjMwKSkpKSBSTikiOwotICAgIGNsb2NrZWRfb24gOiAiQ0siOwotICB9Ci0gIHBpbihDSykgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjM4MDM5OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYzNzkyOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDYzODAzOTsKLSAgICBjbG9jayA6IHRydWU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzMDE5LCAwLjAwMzAxLCAwLjAwMzA5OCwgMC4wMDMxODgsIDAuMDAzMzE2LCAwLjAwMzU2NCwgMC4wMDM3MzciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDgyLCAwLjAwODE5MiwgMC4wMDgyNzcsIDAuMDA4MzY2LCAwLjAwODUsIDAuMDA4NjM2LCAwLjAwODgyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRCYhRSYhUk4iOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX0VfRVFfMF9BTl9STl9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMTM4ODI2LCAwLjE0NzA3MywgMC4xNTYyODQsIDAuMTYzNzQsIDAuMTY5NTU0LCAwLjE3NzM1OCwgMC4xODMwNTUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjA2ODcxMywgMC4wNzY4MiwgMC4wODU5NjcsIDAuMDkyNzkxLCAwLjA5ODMyNiwgMC4xMDU1MjUsIDAuMTEwNjY0Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihEKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2Mzc2MjY7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjM3NjI2OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDYzNzM1NDsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDY2MTQsIDAuMDA2NjE0LCAwLjAwNjY5NCwgMC4wMDY4MDUsIDAuMDA2OTM0LCAwLjAwNzE3LCAwLjAwNzM2NyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNTk0NSwgMC4wMDU5NTksIDAuMDA2MDQyLCAwLjAwNjE1NywgMC4wMDYyOTMsIDAuMDA2NTE2LCAwLjAwNjcxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIkUmUk4iOwotICAgICAgc2RmX2NvbmQgOiAiRV9FUV8xX0FOX1JOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDUsIC0wLjA0NSwgLTAuMDM4NzUsIC0wLjAzODc1LCAtMC4wMzg3NSwgLTAuMDM1LCAtMC4wMzI1IiwgXAotICAgICAgICAgICItMC4wNjEyNSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDQzNzUsIC0wLjA0LCAtMC4wMzc1IiwgXAotICAgICAgICAgICItMC4wNjc1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjA1LCAtMC4wNDYyNSwgLTAuMDQzNzUiLCBcCi0gICAgICAgICAgIi0wLjA2NzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNTYyNSwgLTAuMDU2MjUsIC0wLjA1MjUsIC0wLjA1IiwgXAotICAgICAgICAgICItMC4wNzM3NSwgLTAuMDY4NzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNTYyNSwgLTAuMDUyNSwgLTAuMDUiLCBcCi0gICAgICAgICAgIi0wLjA3NzUsIC0wLjA3MjUsIC0wLjA2NjI1LCAtMC4wNjYyNSwgLTAuMDYsIC0wLjA1NjI1LCAtMC4wNTM3NSIsIFwKLSAgICAgICAgICAiLTAuMDgsIC0wLjA3NSwgLTAuMDY4NzUsIC0wLjA2ODc1LCAtMC4wNjI1LCAtMC4wNTg3NSwgLTAuMDU2MjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMjUsIC0wLjAyLCAtMC4wMDc1LCAtMC4wMDEyNSwgMC4wMDUsIDAuMDA4NzUsIDAuMDExMjUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMC4wMDM3NSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDI1LCAwIiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDg3NSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDE1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDUyNSwgLTAuMDQxMjUsIC0wLjAzNSwgLTAuMDI4NzUsIC0wLjAyMjUsIC0wLjAxODc1LCAtMC4wMSIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDIxMjUsIC0wLjAxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIkUmUk4iOwotICAgICAgc2RmX2NvbmQgOiAiRV9FUV8xX0FOX1JOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDgxMjUsIDAuMDcsIDAuMDYzNzUsIDAuMDYzNzUsIDAuMDU3NSwgMC4wNTM3NSwgMC4wNTEyNSIsIFwKLSAgICAgICAgICAiMC4wODYyNSwgMC4wODEyNSwgMC4wNzUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNTg3NSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiMC4wOTI1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNzUsIDAuMDY4NzUsIDAuMDY1LCAwLjA2MjUiLCBcCi0gICAgICAgICAgIjAuMDkyNSwgMC4wODc1LCAwLjA4MTI1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNzEyNSwgMC4wNjg3NSIsIFwKLSAgICAgICAgICAiMC4wOTg3NSwgMC4wOTM3NSwgMC4wODc1LCAwLjA4MTI1LCAwLjA4MTI1LCAwLjA3NzUsIDAuMDc1IiwgXAotICAgICAgICAgICIwLjEwMjUsIDAuMDk3NSwgMC4wOTEyNSwgMC4wODUsIDAuMDg1LCAwLjA4MTI1LCAwLjA3ODc1IiwgXAotICAgICAgICAgICIwLjEwNSwgMC4xLCAwLjA5Mzc1LCAwLjA4NzUsIDAuMDg3NSwgMC4wODM3NSwgMC4wODEyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1LCAwLjAzODc1LCAwLjAzMjUsIDAuMDIsIDAuMDEzNzUsIDAuMDEsIDAuMDAxMjUiLCBcCi0gICAgICAgICAgIjAuMDU1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDI1LCAwLjAxNSwgMC4wMTI1IiwgXAotICAgICAgICAgICIwLjA2MTI1LCAwLjA1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDIxMjUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMDY3NSwgMC4wNTYyNSwgMC4wNSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyNzUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMDY3NSwgMC4wNjI1LCAwLjA1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDI3NSwgMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMDcxMjUsIDAuMDY2MjUsIDAuMDUzNzUsIDAuMDQ3NSwgMC4wNDEyNSwgMC4wMzEyNSwgMC4wMjg3NSIsIFwKLSAgICAgICAgICAiMC4wNzM3NSwgMC4wNjg3NSwgMC4wNTYyNSwgMC4wNSwgMC4wNDM3NSwgMC4wNCwgMC4wMzEyNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxMjgyMjI7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxMjgxMzg7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxMjgyMjI7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA3MjM2LCAwLjAwNzI0MiwgMC4wMDczMjQsIDAuMDA3NDM0LCAwLjAwNzU3MiwgMC4wMDc3NzQsIDAuMDA3OTY0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA4MzgyLCAwLjAwODQwNywgMC4wMDg1MDUsIDAuMDA4Njc5LCAwLjAwODg4MiwgMC4wMDkyNTgsIDAuMDA5NTg4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlJOIjsKLSAgICAgIHNkZl9jb25kIDogIlJOID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAyNSwgLTAuMDIsIC0wLjAwNzUsIC0wLjAwMTI1LCAwLjAwNSwgMC4wMDg3NSwgMC4wMTc1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDA2MjUsIC0wLjAwNjI1LCAwLjAwMzc1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDAyNSwgMCIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgLTAuMDE4NzUsIC0wLjAwODc1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjA0Mzc1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDE1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDU4NzUsIC0wLjA0NzUsIC0wLjA0MTI1LCAtMC4wMjg3NSwgLTAuMDI4NzUsIC0wLjAxODc1LCAtMC4wMTYyNSIsIFwKLSAgICAgICAgICAiLTAuMDYxMjUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAyMTI1LCAtMC4wMTg3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAzMTI1LCAtMC4wMjYyNSwgLTAuMDIsIC0wLjAxMzc1LCAtMC4wMDc1LCAwLjAwMjUsIDAuMDA1IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA4NzUsIDAiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDE1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMTUsIC0wLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjA1NSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAyMTI1LCAtMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wNTg3NSwgLTAuMDUzNzUsIC0wLjA0MTI1LCAtMC4wMzUsIC0wLjAyODc1LCAtMC4wMjUsIC0wLjAxNjI1IiwgXAotICAgICAgICAgICItMC4wNjEyNSwgLTAuMDU2MjUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDI3NSwgLTAuMDI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJSTiI7Ci0gICAgICBzZGZfY29uZCA6ICJSTiA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTM3NSwgMC4wODI1LCAwLjA3NjI1LCAwLjA3NjI1LCAwLjA3LCAwLjA2NjI1LCAwLjA2Mzc1IiwgXAotICAgICAgICAgICIwLjA5ODc1LCAwLjA5Mzc1LCAwLjA4NzUsIDAuMDgxMjUsIDAuMDgxMjUsIDAuMDc3NSwgMC4wNjg3NSIsIFwKLSAgICAgICAgICAiMC4xMDUsIDAuMSwgMC4wOTM3NSwgMC4wODc1LCAwLjA4NzUsIDAuMDgzNzUsIDAuMDc1IiwgXAotICAgICAgICAgICIwLjExMTI1LCAwLjEsIDAuMDkzNzUsIDAuMDkzNzUsIDAuMDg3NSwgMC4wODM3NSwgMC4wODEyNSIsIFwKLSAgICAgICAgICAiMC4xMTEyNSwgMC4xMDYyNSwgMC4xLCAwLjA5Mzc1LCAwLjA5Mzc1LCAwLjA5LCAwLjA4NzUiLCBcCi0gICAgICAgICAgIjAuMTE1LCAwLjExLCAwLjEwMzc1LCAwLjA5NzUsIDAuMDk3NSwgMC4wOTM3NSwgMC4wOTEyNSIsIFwKLSAgICAgICAgICAiMC4xMjM3NSwgMC4xMTI1LCAwLjEwNjI1LCAwLjEwNjI1LCAwLjEsIDAuMDk2MjUsIDAuMDkzNzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTYyNSwgMC4wNTEyNSwgMC4wNDUsIDAuMDM4NzUsIDAuMDM4NzUsIDAuMDM1LCAwLjAzMjUiLCBcCi0gICAgICAgICAgIjAuMDYxMjUsIDAuMDU2MjUsIDAuMDUsIDAuMDUsIDAuMDQzNzUsIDAuMDQsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiMC4wNzM3NSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1NjI1LCAwLjA1MjUsIDAuMDUiLCBcCi0gICAgICAgICAgIjAuMDgsIDAuMDc1LCAwLjA2ODc1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDU4NzUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIjAuMDg2MjUsIDAuMDgxMjUsIDAuMDc1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjUsIDAuMDYyNSIsIFwKLSAgICAgICAgICAiMC4wOTYyNSwgMC4wOTEyNSwgMC4wODUsIDAuMDg1LCAwLjA3ODc1LCAwLjA3NSwgMC4wNzI1IiwgXAotICAgICAgICAgICIwLjEwNSwgMC4xLCAwLjA5Mzc1LCAwLjA5Mzc1LCAwLjA4NzUsIDAuMDgzNzUsIDAuMDgxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFEpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4yMDUxNDg7Ci0gICAgZnVuY3Rpb24gOiAiTjMwIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBub25fdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJpc2luZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMjQxMjMsIDAuMTM0NTkxLCAwLjIyOTU0MywgMC4zODY3NzcsIDAuNTQ2NDA4LCAwLjkxNjA2MSwgMS4xMjc0IiwgXAotICAgICAgICAgICIwLjEzMjM0NSwgMC4xNDI4MTEsIDAuMjM3NzY3LCAwLjM5NjEyNSwgMC41NTQ2MzcsIDAuOTI0MzQ2LCAxLjEzNTQ2IiwgXAotICAgICAgICAgICIwLjE0MTUyMiwgMC4xNTE5OTEsIDAuMjQ2OTQ0LCAwLjQwNTMxMiwgMC41NjM4MSwgMC45MzM0OTEsIDEuMTQwNjEiLCBcCi0gICAgICAgICAgIjAuMTQ4ODU3LCAwLjE1OTMzLCAwLjI1NDI4NSwgMC40MTI2MjMsIDAuNTcxMTIzLCAwLjk0MDgxOCwgMS4xNTIyOSIsIFwKLSAgICAgICAgICAiMC4xNTQ2NzYsIDAuMTY1MTYzLCAwLjI2MDExMywgMC40MTg0MjksIDAuNTc2OTI5LCAwLjk0NjU3MiwgMS4xNTc5MiIsIFwKLSAgICAgICAgICAiMC4xNjI1MTgsIDAuMTczMDA5LCAwLjI2NzYwNSwgMC40MjUyMSwgMC41ODQ3MjUsIDAuOTUxMTIxLCAxLjE2MTU4IiwgXAotICAgICAgICAgICIwLjE2ODIwMSwgMC4xNzg2NywgMC4yNzM2MDYsIDAuNDMxMTk0LCAwLjU4ODc3NSwgMC45NTY3NzcsIDEuMTY4MjciKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTE4OTA5LCAwLjE0MDczLCAwLjMzOTQzMiwgMC42NzE1OTUsIDEuMDA1ODQsIDEuNzgzNzEsIDIuMjI3ODgiLCBcCi0gICAgICAgICAgIjAuMTE4OTAyLCAwLjE0MDcyOSwgMC4zMzk1NjQsIDAuNjczMDc1LCAxLjAwNjM1LCAxLjc4NDUzLCAyLjIyOTczIiwgXAotICAgICAgICAgICIwLjExODg5OSwgMC4xNDA3MzIsIDAuMzM5NjkyLCAwLjY3MzMxOSwgMS4wMDY4MSwgMS43ODU0NCwgMi4yMjY1OCIsIFwKLSAgICAgICAgICAiMC4xMTg5MDMsIDAuMTQwNzI4LCAwLjMzOTY4NiwgMC42NzMzNzgsIDEuMDA2ODYsIDEuNzg1NDUsIDIuMjI5OTMiLCBcCi0gICAgICAgICAgIjAuMTE4OTEsIDAuMTQwNDk2LCAwLjMzOTY5OSwgMC42NzM0MjYsIDEuMDA2OTMsIDEuNzg1NjYsIDIuMjMwNDkiLCBcCi0gICAgICAgICAgIjAuMTE4NzIzLCAwLjE0MDY5OCwgMC4zMzg4NDksIDAuNjcyNjMxLCAxLjAwNjk1LCAxLjc4Mjc1LCAyLjIyNjU3IiwgXAotICAgICAgICAgICIwLjExODc2MywgMC4xNDA1OTgsIDAuMzM5NzEyLCAwLjY3MjUyNCwgMS4wMDYwMywgMS43ODE1OCwgMi4yMjgyIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEzMDgwMiwgMC4xNDA0ODQsIDAuMjI3NzcyLCAwLjM3MjY0OCwgMC41MTc2ODQsIDAuODU2NDA1LCAxLjA1MDA4IiwgXAotICAgICAgICAgICIwLjEzOTAyMSwgMC4xNDg3NDEsIDAuMjM2MDI2LCAwLjM4MDY5NywgMC41MjU5NDgsIDAuODY0NTU3LCAxLjA1ODI0IiwgXAotICAgICAgICAgICIwLjE0ODIyNywgMC4xNTc5NSwgMC4yNDUyMzcsIDAuMzg5ODk0LCAwLjUzNTE2OSwgMC44NzM2NjEsIDEuMDY2NyIsIFwKLSAgICAgICAgICAiMC4xNTU3MTQsIDAuMTY1Mzg4LCAwLjI1MjY4MiwgMC4zOTc4OTEsIDAuNTQzMDI5LCAwLjg4MTAyOSwgMS4wNzIzMSIsIFwKLSAgICAgICAgICAiMC4xNjE1NTIsIDAuMTcxMjUxLCAwLjI1ODUzLCAwLjQwMzc2LCAwLjU0NzY2MSwgMC44ODY5MTcsIDEuMDgwNjIiLCBcCi0gICAgICAgICAgIjAuMTY5MzA5LCAwLjE3OTA5OCwgMC4yNjYwMjgsIDAuNDExMiwgMC41NTYwOTEsIDAuODk0Nzc5LCAxLjA4ODMxIiwgXAotICAgICAgICAgICIwLjE3NDk5LCAwLjE4NDY3LCAwLjI3MTgzMiwgMC40MTY5NCwgMC41NjE3NjQsIDAuOTAwNDU2LCAxLjA5NDQ0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwNzE0MywgMC4xMjY2NzIsIDAuMzA0MTYxLCAwLjYwNDA4NCwgMC45MDMxMTUsIDEuNjAwNzYsIDEuOTk5MzYiLCBcCi0gICAgICAgICAgIjAuMTA3LCAwLjEyNjQyNSwgMC4zMDQxMjgsIDAuNjA0MDE5LCAwLjkwMzEyLCAxLjYwMDc4LCAxLjk5OTM2IiwgXAotICAgICAgICAgICIwLjEwNzA2MiwgMC4xMjcyMzQsIDAuMzAzNzc1LCAwLjYwMzEwNSwgMC45MDMwOCwgMS42MDA3OSwgMS45OTk4OCIsIFwKLSAgICAgICAgICAiMC4xMDc3ODcsIDAuMTI2MjUxLCAwLjMwMzYyMiwgMC41OTkxOTgsIDAuOTAyODY0LCAxLjYwMDg0LCAxLjk5ODYzIiwgXAotICAgICAgICAgICIwLjEwNjg1MywgMC4xMjcxMjgsIDAuMzAzMTk3LCAwLjYwMjUyNCwgMC45MDMwOTYsIDEuNjAwODEsIDEuOTk5NCIsIFwKLSAgICAgICAgICAiMC4xMDcxOTEsIDAuMTI2NzQsIDAuMzA0NDc2LCAwLjYwMzQwOSwgMC45MDMwODEsIDEuNjAwODIsIDEuOTk5NDUiLCBcCi0gICAgICAgICAgIjAuMTA3NDg4LCAwLjEyNjQzNSwgMC4zMDUzNDgsIDAuNjA0MDYyLCAwLjkwMzIyLCAxLjYwMDgyLCAxLjk5OTYxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDI1OCwgMC4wMDQyNTUsIDAuMDA0MjM4LCAwLjAwNDIyOCwgMC4wMDQyMjQsIDAuMDA0MjIsIDAuMDA0MjE5IiwgXAotICAgICAgICAgICIwLjAwNDI1LCAwLjAwNDI0NywgMC4wMDQyMzEsIDAuMDA0MjIsIDAuMDA0MjE2LCAwLjAwNDIxMiwgMC4wMDQyMSIsIFwKLSAgICAgICAgICAiMC4wMDQzMDIsIDAuMDA0Mjk5LCAwLjAwNDI4MiwgMC4wMDQyNzEsIDAuMDA0MjY3LCAwLjAwNDI2MiwgMC4wMDQyNjEiLCBcCi0gICAgICAgICAgIjAuMDA0MzU1LCAwLjAwNDM1MywgMC4wMDQzMzcsIDAuMDA0MzI2LCAwLjAwNDMyMSwgMC4wMDQzMTYsIDAuMDA0MzE2IiwgXAotICAgICAgICAgICIwLjAwNDQxOCwgMC4wMDQ0MTUsIDAuMDA0Mzk5LCAwLjAwNDM4NywgMC4wMDQzODIsIDAuMDA0Mzc4LCAwLjAwNDM3NiIsIFwKLSAgICAgICAgICAiMC4wMDQ1MDksIDAuMDA0NTA3LCAwLjAwNDUwNCwgMC4wMDQ0OTIsIDAuMDA0NDg3LCAwLjAwNDQ2NywgMC4wMDQ0OCIsIFwKLSAgICAgICAgICAiMC4wMDQ2MiwgMC4wMDQ2MTgsIDAuMDA0NjE2LCAwLjAwNDU4OSwgMC4wMDQ1ODQsIDAuMDA0NTkyLCAwLjAwNDU5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1MTA3LCAwLjAwNTEwOSwgMC4wMDUxMTQsIDAuMDA1MTE2LCAwLjAwNTExNywgMC4wMDUxMTgsIDAuMDA1MTE5IiwgXAotICAgICAgICAgICIwLjAwNTEwNCwgMC4wMDUxMDUsIDAuMDA1MTEsIDAuMDA1MTEyLCAwLjAwNTExMywgMC4wMDUxMTQsIDAuMDA1MTE0IiwgXAotICAgICAgICAgICIwLjAwNTE2LCAwLjAwNTE2MSwgMC4wMDUxNjYsIDAuMDA1MTY4LCAwLjAwNTE2OCwgMC4wMDUxNjksIDAuMDA1MTciLCBcCi0gICAgICAgICAgIjAuMDA1MjEyLCAwLjAwNTIxMywgMC4wMDUyMTgsIDAuMDA1MjE5LCAwLjAwNTIyLCAwLjAwNTIyMSwgMC4wMDUyMjEiLCBcCi0gICAgICAgICAgIjAuMDA1Mjg4LCAwLjAwNTI5LCAwLjAwNTI5NCwgMC4wMDUyOTUsIDAuMDA1Mjk2LCAwLjAwNTI5NiwgMC4wMDUyOTYiLCBcCi0gICAgICAgICAgIjAuMDA1Mzg4LCAwLjAwNTM4OCwgMC4wMDUzOTIsIDAuMDA1MzkzLCAwLjAwNTM5MywgMC4wMDUzOTMsIDAuMDA1MzkzIiwgXAotICAgICAgICAgICIwLjAwNTUwNiwgMC4wMDU1MDEsIDAuMDA1NTExLCAwLjAwNTUwMiwgMC4wMDU1MTIsIDAuMDA1NTEyLCAwLjAwNTUwNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUU4pICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4yMDI4NjY7Ci0gICAgZnVuY3Rpb24gOiAiUUJJTlQiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5vbl91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcmlzaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEzOTUxOCwgMC4xNTAwMzUsIDAuMjQ0NzU5LCAwLjQwMjU1NCwgMC41NjAzNzUsIDAuOTI4Njg4LCAxLjEzOTE5IiwgXAotICAgICAgICAgICIwLjE0Nzc5NiwgMC4xNTgzMTksIDAuMjUzMDQyLCAwLjQxMDgyMiwgMC41Njg2NTksIDAuOTM2OTQ1LCAxLjE0NzQ1IiwgXAotICAgICAgICAgICIwLjE1NzAwNSwgMC4xNjc1MjksIDAuMjYyMjUzLCAwLjQyMDA0NCwgMC41Nzc4NzMsIDAuOTQ2MTMxLCAxLjE1NjQ0IiwgXAotICAgICAgICAgICIwLjE2NDQ0NSwgMC4xNzQ5NjcsIDAuMjY5Njk0LCAwLjQyNzU3LCAwLjU4NTQxOSwgMC45NTM1NTUsIDEuMTYzODciLCBcCi0gICAgICAgICAgIjAuMTcwMjY5LCAwLjE4MDc4MiwgMC4yNzU1MTQsIDAuNDMzMzk3LCAwLjU5MTA5OSwgMC45NTkzODUsIDEuMTY5ODkiLCBcCi0gICAgICAgICAgIjAuMTc4MDgyLCAwLjE4ODYxNiwgMC4yODMyOTcsIDAuNDQxMTYxLCAwLjU5ODkxOSwgMC45NjcyMjMsIDEuMTc3NjkiLCBcCi0gICAgICAgICAgIjAuMTgzNzgxLCAwLjE5NDMwNiwgMC4yODg5NDIsIDAuNDQ2ODQ4LCAwLjYwNDYyLCAwLjk3MjkyNiwgMS4xODM1MiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTYxODMsIDAuMTM4Mjk3LCAwLjMzNzQzNiwgMC42NzA0OTIsIDEuMDAzMDQsIDEuNzc5MDIsIDIuMjIyNDMiLCBcCi0gICAgICAgICAgIjAuMTE2MTc3LCAwLjEzODI5NywgMC4zMzc0NDYsIDAuNjcwNDk3LCAxLjAwMzA0LCAxLjc3OTAxLCAyLjIyMjQzIiwgXAotICAgICAgICAgICIwLjExNjE3NywgMC4xMzgyOTcsIDAuMzM3NDQ2LCAwLjY2OTkyOCwgMS4wMDMwNCwgMS43NzkwMSwgMi4yMjI0NCIsIFwKLSAgICAgICAgICAiMC4xMTYxOTgsIDAuMTM4Mjk3LCAwLjMzNzQ0MywgMC42Njk0NzMsIDEuMDAzMDEsIDEuNzc4OTksIDIuMjIwNDIiLCBcCi0gICAgICAgICAgIjAuMTE2MTgzLCAwLjEzODMwOCwgMC4zMzc0NDYsIDAuNjY5Mjg5LCAxLjAwMywgMS43NzkwMiwgMi4yMjI0NCIsIFwKLSAgICAgICAgICAiMC4xMTYxODUsIDAuMTM4MzE4LCAwLjMzNzQ0MSwgMC42Njk4MDIsIDEuMDAzMDIsIDEuNzc5LCAyLjIyMjQxIiwgXAotICAgICAgICAgICIwLjExNjE1MSwgMC4xMzgyOTYsIDAuMzM4MDAzLCAwLjY3MDQ5MywgMS4wMDMwNSwgMS43Nzg5NywgMi4yMjIyMyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMjU4NzUsIDAuMTM1NTIxLCAwLjIyMjM0OSwgMC4zNjcwNTcsIDAuNTExNzA3LCAwLjg0OTMwNiwgMS4wNDIyNSIsIFwKLSAgICAgICAgICAiMC4xMzQwODgsIDAuMTQzNzMzLCAwLjIzMDU2MywgMC4zNzUyNjcsIDAuNTE5OTE3LCAwLjg1NzUyMSwgMS4wNTA0NyIsIFwKLSAgICAgICAgICAiMC4xNDMyNTQsIDAuMTUyODk4LCAwLjIzOTcyNCwgMC4zODQ0MjYsIDAuNTI5MDc4LCAwLjg2NjY5MSwgMS4wNTk2NyIsIFwKLSAgICAgICAgICAiMC4xNTA1NzksIDAuMTYwMjI5LCAwLjI0NzA1NSwgMC4zOTE3NTYsIDAuNTM2NDExLCAwLjg3NDAxNSwgMS4wNjY4NSIsIFwKLSAgICAgICAgICAiMC4xNTYzODcsIDAuMTY2MDM4LCAwLjI1Mjg3MiwgMC4zOTc1NywgMC41NDIyMjksIDAuODc5ODUyLCAxLjA3MjczIiwgXAotICAgICAgICAgICIwLjE2NDI0OSwgMC4xNzM4ODksIDAuMjYwNzAyLCAwLjQwNTQzOSwgMC41NTAwNTcsIDAuODg3NzM1LCAxLjA4MDY1IiwgXAotICAgICAgICAgICIwLjE2OTkzMSwgMC4xNzk1ODIsIDAuMjY2MzU3LCAwLjQxMTA2OSwgMC41NTU3NDIsIDAuODkzMzcyLCAxLjA4NjEzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwNCwgMC4xMjM3OTQsIDAuMzAyMjgzLCAwLjU5ODY5OSwgMC44OTcyMjQsIDEuNTkxMzYsIDEuOTg4MjgiLCBcCi0gICAgICAgICAgIjAuMTAzOTkxLCAwLjEyMzc4OSwgMC4zMDIyOTgsIDAuNTk5ODE1LCAwLjg5NzIxNiwgMS41OTE0NSwgMS45ODgyOSIsIFwKLSAgICAgICAgICAiMC4xMDM5ODYsIDAuMTIzNzg3LCAwLjMwMjI4MiwgMC41OTk3OTMsIDAuODk3MjAzLCAxLjU5MTQ3LCAxLjk4Mzg5IiwgXAotICAgICAgICAgICIwLjEwMzk5MywgMC4xMjM3OSwgMC4zMDIyOTIsIDAuNTk5ODEsIDAuODk3MjEzLCAxLjU5MTQ1LCAxLjk4Nzg1IiwgXAotICAgICAgICAgICIwLjEwNDAwNSwgMC4xMjM1ODEsIDAuMzAyMjc3LCAwLjU5OTc3NywgMC44OTcxODUsIDEuNTkxNSwgMS45ODc5OSIsIFwKLSAgICAgICAgICAiMC4xMDM4NTYsIDAuMTIzNzcxLCAwLjMwMTgyNCwgMC41OTg2MTYsIDAuODk3MDAxLCAxLjU4NzYyLCAxLjk4Mzg4IiwgXAotICAgICAgICAgICIwLjEwMzgwNCwgMC4xMjM2NjcsIDAuMzAyMjUsIDAuNTk4ODc4LCAwLjg5NjAzNywgMS41ODgwNiwgMS45ODUyMyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDUxMDcsIDAuMDA1MTA5LCAwLjAwNTExNCwgMC4wMDUxMTYsIDAuMDA1MTE3LCAwLjAwNTExOCwgMC4wMDUxMTkiLCBcCi0gICAgICAgICAgIjAuMDA1MTA0LCAwLjAwNTEwNSwgMC4wMDUxMSwgMC4wMDUxMTIsIDAuMDA1MTEzLCAwLjAwNTExNCwgMC4wMDUxMTQiLCBcCi0gICAgICAgICAgIjAuMDA1MTYsIDAuMDA1MTYxLCAwLjAwNTE2NiwgMC4wMDUxNjgsIDAuMDA1MTY4LCAwLjAwNTE2OSwgMC4wMDUxNyIsIFwKLSAgICAgICAgICAiMC4wMDUyMTIsIDAuMDA1MjEzLCAwLjAwNTIxOCwgMC4wMDUyMTksIDAuMDA1MjIsIDAuMDA1MjIxLCAwLjAwNTIyMSIsIFwKLSAgICAgICAgICAiMC4wMDUyODgsIDAuMDA1MjksIDAuMDA1Mjk0LCAwLjAwNTI5NSwgMC4wMDUyOTYsIDAuMDA1Mjk2LCAwLjAwNTI5NiIsIFwKLSAgICAgICAgICAiMC4wMDUzODgsIDAuMDA1Mzg4LCAwLjAwNTM5MiwgMC4wMDUzOTMsIDAuMDA1MzkzLCAwLjAwNTM5MywgMC4wMDUzOTMiLCBcCi0gICAgICAgICAgIjAuMDA1NTA2LCAwLjAwNTUwMSwgMC4wMDU1MTEsIDAuMDA1NTAyLCAwLjAwNTUxMiwgMC4wMDU1MTIsIDAuMDA1NTA1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0MjU4LCAwLjAwNDI1NSwgMC4wMDQyMzgsIDAuMDA0MjI4LCAwLjAwNDIyNCwgMC4wMDQyMiwgMC4wMDQyMTkiLCBcCi0gICAgICAgICAgIjAuMDA0MjUsIDAuMDA0MjQ3LCAwLjAwNDIzMSwgMC4wMDQyMiwgMC4wMDQyMTYsIDAuMDA0MjEyLCAwLjAwNDIxIiwgXAotICAgICAgICAgICIwLjAwNDMwMiwgMC4wMDQyOTksIDAuMDA0MjgyLCAwLjAwNDI3MSwgMC4wMDQyNjcsIDAuMDA0MjYyLCAwLjAwNDI2MSIsIFwKLSAgICAgICAgICAiMC4wMDQzNTUsIDAuMDA0MzUzLCAwLjAwNDMzNywgMC4wMDQzMjYsIDAuMDA0MzIxLCAwLjAwNDMxNiwgMC4wMDQzMTYiLCBcCi0gICAgICAgICAgIjAuMDA0NDE4LCAwLjAwNDQxNSwgMC4wMDQzOTksIDAuMDA0Mzg3LCAwLjAwNDM4MiwgMC4wMDQzNzgsIDAuMDA0Mzc2IiwgXAotICAgICAgICAgICIwLjAwNDUwOSwgMC4wMDQ1MDcsIDAuMDA0NTA0LCAwLjAwNDQ5MiwgMC4wMDQ0ODcsIDAuMDA0NDY3LCAwLjAwNDQ4IiwgXAotICAgICAgICAgICIwLjAwNDYyLCAwLjAwNDYxOCwgMC4wMDQ2MTYsIDAuMDA0NTg5LCAwLjAwNDU4NCwgMC4wMDQ1OTIsIDAuMDA0NTkiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFJOKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2MzI5MTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MzI5MTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2MzI3ODE7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA4MTE3LCAwLjAwODEyNSwgMC4wMDgyMDgsIDAuMDA4MzE5LCAwLjAwODQ0NywgMC4wMDg2NzQsIDAuMDA4ODY2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA2OTI3LCAwLjAwNjkzOSwgMC4wMDcwMTksIDAuMDA3MTI5LCAwLjAwNzI2MywgMC4wMDc0NzcsIDAuMDA3NjcxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEJiFFIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9FX0VRXzAgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDgxMjUsIC0wLjA3NjI1LCAtMC4wNywgLTAuMDYzNzUsIC0wLjA2Mzc1LCAtMC4wNiwgLTAuMDU3NSIsIFwKLSAgICAgICAgICAiLTAuMDg2MjUsIC0wLjA4MTI1LCAtMC4wNzUsIC0wLjA3NSwgLTAuMDY4NzUsIC0wLjA2NSwgLTAuMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDkyNSwgLTAuMDg3NSwgLTAuMDgxMjUsIC0wLjA4MTI1LCAtMC4wNzUsIC0wLjA3MTI1LCAtMC4wNjg3NSIsIFwKLSAgICAgICAgICAiLTAuMDk4NzUsIC0wLjA5Mzc1LCAtMC4wODc1LCAtMC4wODEyNSwgLTAuMDgxMjUsIC0wLjA3NzUsIC0wLjA3NSIsIFwKLSAgICAgICAgICAiLTAuMDk4NzUsIC0wLjA5Mzc1LCAtMC4wODc1LCAtMC4wODc1LCAtMC4wODc1LCAtMC4wODM3NSwgLTAuMDgxMjUiLCBcCi0gICAgICAgICAgIi0wLjEwODc1LCAtMC4wOTc1LCAtMC4wOTc1LCAtMC4wOTEyNSwgLTAuMDkxMjUsIC0wLjA4NzUsIC0wLjA4NSIsIFwKLSAgICAgICAgICAiLTAuMTExMjUsIC0wLjEsIC0wLjEsIC0wLjA5Mzc1LCAtMC4wOTM3NSwgLTAuMDksIC0wLjA4NzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiRCZFIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMV9BTl9FX0VRXzEgPT0gMSdiMSI7Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDI1LCAtMC4wMTM3NSwgLTAuMDA3NSwgLTAuMDAxMjUsIDAuMDA1LCAwLjAxNSwgMC4wMTc1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLCAwLjAwMzc1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgLTAuMDAyNSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwMjUsIDAiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzNzUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwODc1LCAwIiwgXAotICAgICAgICAgICItMC4wNDYyNSwgLTAuMDQxMjUsIC0wLjAyODc1LCAtMC4wMjI1LCAtMC4wMTYyNSwgLTAuMDEyNSwgLTAuMDEiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wNDM3NSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDI1LCAtMC4wMTUsIC0wLjAxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEJiFFIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9FX0VRXzAgPT0gMSdiMSI7Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQzNzUsIDAuMDM4NzUsIDAuMDI2MjUsIDAuMDIsIDAuMDEzNzUsIDAuMDAzNzUsIDAuMDAxMjUiLCBcCi0gICAgICAgICAgIjAuMDU1LCAwLjA0Mzc1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMTg3NSwgMC4wMTUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMDYxMjUsIDAuMDUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMjUsIDAuMDIxMjUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4wNjEyNSwgMC4wNTYyNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyMTI1LCAwLjAxODc1IiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDU2MjUsIDAuMDUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMjc1LCAwLjAxODc1IiwgXAotICAgICAgICAgICIwLjA3MTI1LCAwLjA2LCAwLjA1Mzc1LCAwLjA0MTI1LCAwLjA0MTI1LCAwLjAzMTI1LCAwLjAyMjUiLCBcCi0gICAgICAgICAgIjAuMDczNzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNSwgMC4wNDM3NSwgMC4wMzM3NSwgMC4wMzEyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiRCZFIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMV9BTl9FX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMSwgMC4wODg3NSwgMC4wODI1LCAwLjA4MjUsIDAuMDc2MjUsIDAuMDcyNSwgMC4wNyIsIFwKLSAgICAgICAgICAiMC4xMDUsIDAuMSwgMC4wOTM3NSwgMC4wODc1LCAwLjA4NzUsIDAuMDgzNzUsIDAuMDgxMjUiLCBcCi0gICAgICAgICAgIjAuMTExMjUsIDAuMTA2MjUsIDAuMSwgMC4wOTM3NSwgMC4wOTM3NSwgMC4wOSwgMC4wODEyNSIsIFwKLSAgICAgICAgICAiMC4xMTc1LCAwLjEwNjI1LCAwLjEsIDAuMSwgMC4wOTM3NSwgMC4wOSwgMC4wODc1IiwgXAotICAgICAgICAgICIwLjExNzUsIDAuMTEyNSwgMC4xMDYyNSwgMC4xLCAwLjEsIDAuMDk2MjUsIDAuMDkzNzUiLCBcCi0gICAgICAgICAgIjAuMTIxMjUsIDAuMTE2MjUsIDAuMTEsIDAuMTAzNzUsIDAuMTAzNzUsIDAuMSwgMC4wOTc1IiwgXAotICAgICAgICAgICIwLjEyMzc1LCAwLjExODc1LCAwLjExMjUsIDAuMTA2MjUsIDAuMTA2MjUsIDAuMTAyNSwgMC4xIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBJTlZYMTYgKgotICogLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChJTlZYMTYpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMS41ODQxNDsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDEyMzg5MzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMTIzODQzOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAxMjM4OTM7Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogNS4yMjYxMjsKLSAgICBmdW5jdGlvbiA6ICIoIUEpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDY2MTYsIDAuMDA3ODU2LCAwLjAxNDc5NSwgMC4wMjA4NTksIDAuMDI4OTM1LCAwLjA0NTAzNiwgMC4wNTUxMzYiLCBcCi0gICAgICAgICAgIjAuMDExODIyLCAwLjAxMzk1NywgMC4wMjMwNTYsIDAuMDI5MTg1LCAwLjAzNzIyOCwgMC4wNTMzNDgsIDAuMDYzNDExIiwgXAotICAgICAgICAgICIwLjAxNTE1OSwgMC4wMTgwMzcsIDAuMDMwMzkxLCAwLjAzODY4LCAwLjA0NzcyLCAwLjA2Mzc3MiwgMC4wNzM4MjEiLCBcCi0gICAgICAgICAgIjAuMDE3MzAzLCAwLjAyMDczMSwgMC4wMzU1MTIsIDAuMDQ1NDgyLCAwLjA1NjM4MSwgMC4wNzQ1OTMsIDAuMDg0NTgiLCBcCi0gICAgICAgICAgIjAuMDE4OTQ5LCAwLjAyMjc0MiwgMC4wMzk3NTUsIDAuMDUxMDEzLCAwLjA2MzI4NywgMC4wODM4OTksIDAuMDk0OTQzIiwgXAotICAgICAgICAgICIwLjAyMDk0MiwgMC4wMjUyODYsIDAuMDQ0OTk1LCAwLjA1ODAwNywgMC4wNzI3NjYsIDAuMDk2Mjc4LCAwLjEwOTE2IiwgXAotICAgICAgICAgICIwLjAyMjE0NCwgMC4wMjY4OTQsIDAuMDQ4NTE5LCAwLjA2MzA3NCwgMC4wNzkyMzUsIDAuMTA1MjQ5LCAwLjExOTYzMiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDg1NTQsIDAuMDEwOTQ0LCAwLjAyNTA5MywgMC4wMzc4OCwgMC4wNTQ5MzEsIDAuMDg5MTI1LCAwLjExMDM4MiIsIFwKLSAgICAgICAgICAiMC4wMTU1NTIsIDAuMDE4MTAyLCAwLjAzMDI1NCwgMC4wNDE1NzIsIDAuMDU3MzE1LCAwLjA4OTkwMywgMC4xMTA5MTQiLCBcCi0gICAgICAgICAgIjAuMDIxNjk3LCAwLjAyNTAxMSwgMC4wMzk2OTYsIDAuMDUwNDg1LCAwLjA2NTA0MSwgMC4wOTU2MzEsIDAuMTE1NDAyIiwgXAotICAgICAgICAgICIwLjAyNzA2OSwgMC4wMzA4ODIsIDAuMDQ4MTc3LCAwLjA2MDAzMiwgMC4wNzQyMTMsIDAuMTAzNDE1LCAwLjEyMjM1OSIsIFwKLSAgICAgICAgICAiMC4wMzE5OTgsIDAuMDM2Mzc5LCAwLjA1NDgzNSwgMC4wNjgwNDIsIDAuMDg0MDIzLCAwLjExMjM4MSwgMC4xMzA3MzciLCBcCi0gICAgICAgICAgIjAuMDM4OTI0LCAwLjA0NDA4MSwgMC4wNjUwNTgsIDAuMDgwMTU2LCAwLjA5NzczNCwgMC4xMjc4NzgsIDAuMTQ2MjAyIiwgXAotICAgICAgICAgICIwLjA0NDc1OSwgMC4wNTAzODUsIDAuMDczMzgzLCAwLjA4OTc2MywgMC4xMDg2NjQsIDAuMTQxNTYyLCAwLjE1OTAzOCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDY3NjEsIDAuMDA4MDE4LCAwLjAxNTAxMiwgMC4wMjExMTEsIDAuMDI5MjI0LCAwLjA0NTQxNSwgMC4wNTU1NyIsIFwKLSAgICAgICAgICAiMC4wMTI0NjQsIDAuMDE0NTY2LCAwLjAyMzQwNywgMC4wMjk1NzQsIDAuMDM3NjY0LCAwLjA1Mzg1OCwgMC4wNjM5NzUiLCBcCi0gICAgICAgICAgIjAuMDE2MzQ1LCAwLjAxOTI2MSwgMC4wMzEyMDQsIDAuMDM5MzM5LCAwLjA0ODQyMiwgMC4wNjQ1OTEsIDAuMDc0NjQ4IiwgXAotICAgICAgICAgICIwLjAxOTIzOCwgMC4wMjI1NzgsIDAuMDM3MDc5LCAwLjA0NjgzNiwgMC4wNTc3NjIsIDAuMDc1MDAxLCAwLjA4NTM1OCIsIFwKLSAgICAgICAgICAiMC4wMjE2MzgsIDAuMDI1MzU5LCAwLjA0MTc5NSwgMC4wNTI4NzMsIDAuMDY1MzI5LCAwLjA4NTgxOSwgMC4wOTY1NjEiLCBcCi0gICAgICAgICAgIjAuMDI0NDMzLCAwLjAyODk3MiwgMC4wNDgwMSwgMC4wNjA4NCwgMC4wNzQ5MDIsIDAuMDk4NTU1LCAwLjExMTI5MiIsIFwKLSAgICAgICAgICAiMC4wMjY3NzUsIDAuMDMxNTc4LCAwLjA1MjYwOSwgMC4wNjY4MjEsIDAuMDgyNTYyLCAwLjEwODcsIDAuMTIyNzEyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwODE2NiwgMC4wMTA1NTYsIDAuMDI0NjIxLCAwLjAzNzI5NiwgMC4wNTQwOTUsIDAuMDg3NzUzLCAwLjEwODg5OCIsIFwKLSAgICAgICAgICAiMC4wMTQ5ODEsIDAuMDE3Mzc2LCAwLjAyOTM3NiwgMC4wNDA2NDYsIDAuMDU2MjM4LCAwLjA4ODY4MywgMC4xMDkxOTgiLCBcCi0gICAgICAgICAgIjAuMDIxMzg5LCAwLjAyNDUsIDAuMDM4ODk0LCAwLjA0OTM1NSwgMC4wNjM1NjEsIDAuMDkzODM0LCAwLjExMzM5IiwgXAotICAgICAgICAgICIwLjAyNjc2MywgMC4wMzA1MjIsIDAuMDQ3MDIsIDAuMDU4NDcxLCAwLjA3MjU5LCAwLjEwMTI4MywgMC4xMjAzNTUiLCBcCi0gICAgICAgICAgIjAuMDMxNjQ4LCAwLjAzNTc5NSwgMC4wNTQzNzUsIDAuMDY3MjIsIDAuMDgxNzgyLCAwLjEwOTY0NiwgMC4xMjgwODkiLCBcCi0gICAgICAgICAgIjAuMDM5MTY5LCAwLjA0MzUwMiwgMC4wNjQ4NjIsIDAuMDc5MjUyLCAwLjA5NjcxNywgMC4xMjUzMDksIDAuMTQyOTI4IiwgXAotICAgICAgICAgICIwLjA0NTA4OSwgMC4wNTAxNTYsIDAuMDcyNzA0LCAwLjA4ODc1NCwgMC4xMDc1MjgsIDAuMTM4NjMzLCAwLjE1NTQ2NiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxOTcyMSwgMC4wMTk4ODgsIDAuMDIwMzQ1LCAwLjAyMDQ5OSwgMC4wMjA2MDMsIDAuMDIwNjk2LCAwLjAyMDczMSIsIFwKLSAgICAgICAgICAiMC4wMjAxNjMsIDAuMDIwMDY3LCAwLjAyMDAyMywgMC4wMjAxMjEsIDAuMDIwMjUsIDAuMDIwNDA2LCAwLjAyMDQ1IiwgXAotICAgICAgICAgICIwLjAyMjAxNywgMC4wMjE3MTQsIDAuMDIwOTQ0LCAwLjAyMDc4NSwgMC4wMjA4ODIsIDAuMDIwNzY1LCAwLjAyMDc1IiwgXAotICAgICAgICAgICIwLjAyNDUwMSwgMC4wMjM5MzgsIDAuMDIyNzg2LCAwLjAyMjA4OCwgMC4wMjI0NjksIDAuMDIxOTM2LCAwLjAyMTc0NSIsIFwKLSAgICAgICAgICAiMC4wMjcyMiwgMC4wMjY4MzcsIDAuMDI0NjMsIDAuMDIzNzEyLCAwLjAyMzYxOCwgMC4wMjI2NjUsIDAuMDIyMzQ0IiwgXAotICAgICAgICAgICIwLjAzMTgxNCwgMC4wMzEzMTIsIDAuMDI4MjQ3LCAwLjAyNjc5NCwgMC4wMjU1ODUsIDAuMDI0OTgxLCAwLjAyNDM1NCIsIFwKLSAgICAgICAgICAiMC4wMzYwMjcsIDAuMDM1NTQ0LCAwLjAzMTY1MSwgMC4wMjk4NTUsIDAuMDI4MjM1LCAwLjAyNzMxOSwgMC4wMjY0MTQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDE5MjEsIDAuMDAxNzA0LCAwLjAwMTEzNywgMC4wMDA5NDMsIDAuMDAwODEyLCAwLjAwMDY5MiwgMC4wMDA2NTMiLCBcCi0gICAgICAgICAgIjAuMDAxNjU0LCAwLjAwMTcyMywgMC4wMDE3MDksIDAuMDAxNTI5LCAwLjAwMTM0OCwgMC4wMDExMTcsIDAuMDAxMDIxIiwgXAotICAgICAgICAgICIwLjAwMDMxNiwgMC4wMDAwMDUsIDAuMDAwNDgzLCAwLjAwMDc2NCwgMC4wMDA4ODUsIDAuMDAwODg3LCAwLjAwMDg2MyIsIFwKLSAgICAgICAgICAiMC4wMDI5NDYsIDAuMDAyNDQ0LCAwLjAwMDk3NSwgMC4wMDAyOTYsIDAuMDAwMDk3LCAwLjAwMDIxLCAwLjAwMDAxMyIsIFwKLSAgICAgICAgICAiMC4wMDU2NzcsIDAuMDA1MDQ5LCAwLjAwMzgyNSwgMC4wMDI4NTUsIDAuMDAyMDExLCAwLjAwMTIwNCwgMC4wMDA2OTQiLCBcCi0gICAgICAgICAgIjAuMDEwNzIsIDAuMDA5Mzc1LCAwLjAwNjg1NiwgMC4wMDU0MzUsIDAuMDA1MjUzLCAwLjAwMzUwNSwgMC4wMDI4MTYiLCBcCi0gICAgICAgICAgIjAuMDE1MTUyLCAwLjAxNDAyMywgMC4wMTAxMTgsIDAuMDA4NDQ2LCAwLjAwNzc0MSwgMC4wMDUzNTcsIDAuMDA0NDAyIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IElOVlg4ICoKLSAqIC0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChJTlZYOCkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjcwOTg3ODsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDA2MDg3ODk7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDA2MDg3ODk7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDA2MDg3ODU7Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMi42NDYyMTsKLSAgICBmdW5jdGlvbiA6ICIoIUEpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwODY3NCwgMC4wMzY5MTgsIDAuMDY1MDc3LCAwLjA4NTA5NSwgMC4xMTcyNDMsIDAuMTQ1Mzg5LCAwLjE4NTQ3NSIsIFwKLSAgICAgICAgICAiMC4wMTUyMzYsIDAuMDQ1MjA3LCAwLjA3MzMzLCAwLjA5MzQ3MywgMC4xMjU1ODUsIDAuMTUzNjM0LCAwLjE5Mzc5MiIsIFwKLSAgICAgICAgICAiMC4wMTk3NCwgMC4wNTU3NzMsIDAuMDgzODIyLCAwLjEwMzg3LCAwLjEzNTk4MiwgMC4xNjQwNjMsIDAuMjA0MTk4IiwgXAotICAgICAgICAgICIwLjAyMjg1OCwgMC4wNjU4MDksIDAuMDk0MzIyLCAwLjExNDMxNiwgMC4xNDYzNTMsIDAuMTc0NDc1LCAwLjIxNDU0NyIsIFwKLSAgICAgICAgICAiMC4wMjUwNjQsIDAuMDc0NDksIDAuMTA0NzgxLCAwLjEyNDcwNywgMC4xNTY2NzEsIDAuMTg0Njc2LCAwLjIyNDgxMyIsIFwKLSAgICAgICAgICAiMC4wMjgwOTMsIDAuMDg1MzY3LCAwLjEyMTE2LCAwLjE0MTkyOCwgMC4xNzQxNjEsIDAuMjAyMTUzLCAwLjI0MjIzNiIsIFwKLSAgICAgICAgICAiMC4wMzAxNywgMC4wOTMxMzUsIDAuMTMyMjU3LCAwLjE1NTk0LCAwLjE4ODc1NiwgMC4yMTY2OTIsIDAuMjU2NjMiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTI1MTEsIDAuMDcxNzQzLCAwLjEzMTI5OCwgMC4xNzM5MTcsIDAuMjQxNzk0LCAwLjMwMTIyOCwgMC4zODYzMTQiLCBcCi0gICAgICAgICAgIjAuMDE5NTgyLCAwLjA3MzMwMywgMC4xMzE1NTYsIDAuMTczNzI4LCAwLjI0MTc3LCAwLjMwMTQzOCwgMC4zODYyOTEiLCBcCi0gICAgICAgICAgIjAuMDI2OTU0LCAwLjA3OTc0MiwgMC4xMzQ5NDUsIDAuMTc2MDE4LCAwLjI0MjM2MSwgMC4zMDEyNTQsIDAuMzg2NjA0IiwgXAotICAgICAgICAgICIwLjAzMzE5OSwgMC4wODgzOTgsIDAuMTQxMzc5LCAwLjE4MDc3NCwgMC4yNDU1NzcsIDAuMzAzMTE5LCAwLjM4Njg3MiIsIFwKLSAgICAgICAgICAiMC4wMzg3NTIsIDAuMDk3NDI0LCAwLjE0OTMxNiwgMC4xODc2NzMsIDAuMjUwNzY5LCAwLjMwNzI2MiwgMC4zODkzNDIiLCBcCi0gICAgICAgICAgIjAuMDQ2NzU0LCAwLjExMjU4NCwgMC4xNjI2MjYsIDAuMTk5MTY3LCAwLjI2MDk1LCAwLjMxNTk2LCAwLjM5NjY4MiIsIFwKLSAgICAgICAgICAiMC4wNTMwNjcsIDAuMTI0Nzk2LCAwLjE3NjUsIDAuMjEyMTczLCAwLjI3MTc2MywgMC4zMjU3NywgMC40MDQzNzMiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDg4MjgsIDAuMDM3MjA5LCAwLjA2NTQsIDAuMDg1NTM5LCAwLjExNzg1MSwgMC4xNDU5NiwgMC4xODYyNTQiLCBcCi0gICAgICAgICAgIjAuMDE1Nzg2LCAwLjA0NTY2LCAwLjA3Mzg5NSwgMC4wOTQwMzQsIDAuMTI2MjksIDAuMTU0NDcxLCAwLjE5NDY5NSIsIFwKLSAgICAgICAgICAiMC4wMjA4MDUsIDAuMDU2NDQ0LCAwLjA4NDU3NSwgMC4xMDQ2ODMsIDAuMTM2ODksIDAuMTY1MTA3LCAwLjIwNTM1IiwgXAotICAgICAgICAgICIwLjAyNDYwOSwgMC4wNjY5NjksIDAuMDk1Mzc2LCAwLjExNTQzNSwgMC4xNDc1NzMsIDAuMTc1Nzg1LCAwLjIxNTk5OCIsIFwKLSAgICAgICAgICAiMC4wMjc2MzQsIDAuMDc1ODksIDAuMTA2MDcsIDAuMTI2MTYxLCAwLjE1ODIxNCwgMC4xODYzNDYsIDAuMjI2NTQxIiwgXAotICAgICAgICAgICIwLjAzMTY4NCwgMC4wODc1MzYsIDAuMTIzMDc5LCAwLjE0Mzk4OSwgMC4xNzU3NDQsIDAuMjAzODAzLCAwLjI0Mzk0MyIsIFwKLSAgICAgICAgICAiMC4wMzQ2MjgsIDAuMDk2LCAwLjEzNTI4NSwgMC4xNTg1ODIsIDAuMTkxMDcsIDAuMjE5MTgxLCAwLjI1OTMzNCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMjA1NSwgMC4wNzA0MzQsIDAuMTI5MjI4LCAwLjE3MDc3NiwgMC4yMzc4NzksIDAuMjk2MzU2LCAwLjM4MDM3NiIsIFwKLSAgICAgICAgICAiMC4wMTg4MTgsIDAuMDcxNzMyLCAwLjEyOTMyLCAwLjE3MTE2LCAwLjIzNzkyNywgMC4yOTYzNjgsIDAuMzgwNzUiLCBcCi0gICAgICAgICAgIjAuMDI2NjM5LCAwLjA3Nzk1OCwgMC4xMzI2MzYsIDAuMTcyOTAyLCAwLjIzODI4MiwgMC4yOTYzNDIsIDAuMzgwNzUzIiwgXAotICAgICAgICAgICIwLjAzMjcwNywgMC4wODYyNDQsIDAuMTM4NDQ0LCAwLjE3NzM0MywgMC4yNDEzMTgsIDAuMjk4MDY5LCAwLjM4MDQwMiIsIFwKLSAgICAgICAgICAiMC4wMzgzMTMsIDAuMDk1NDgzLCAwLjE0NTkwNSwgMC4xODM4MDksIDAuMjQ2NDU1LCAwLjMwMjM3MSwgMC4zODM0MzYiLCBcCi0gICAgICAgICAgIjAuMDQ2MTkzLCAwLjExMDMwNCwgMC4xNTkyNTMsIDAuMTk1Nzk0LCAwLjI1NTg2NCwgMC4zMTA0OTUsIDAuMzg5MzM1IiwgXAotICAgICAgICAgICIwLjA1MzAzOSwgMC4xMjMxNywgMC4xNzI3MjcsIDAuMjA3MjEzLCAwLjI2NjEzMywgMC4zMTk2MTQsIDAuMzk3MjUyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDk5MDYsIDAuMDEwMjUzLCAwLjAxMDI5OCwgMC4wMTAzMTEsIDAuMDEwMzI0LCAwLjAxMDMyOSwgMC4wMTAzMzUiLCBcCi0gICAgICAgICAgIjAuMDEwMDM3LCAwLjAxMDE0MSwgMC4wMTAyMDgsIDAuMDEwMjQ3LCAwLjAxMDI3NSwgMC4wMTAyOTIsIDAuMDEwMzAzIiwgXAotICAgICAgICAgICIwLjAxMDc0NCwgMC4wMTAyNTYsIDAuMDEwMjUzLCAwLjAxMDI3MiwgMC4wMTAyNzcsIDAuMDEwMjkzLCAwLjAxMDMwMyIsIFwKLSAgICAgICAgICAiMC4wMTE4NTEsIDAuMDEwNzY1LCAwLjAxMDU0NSwgMC4wMTA0OTMsIDAuMDEwNDQ5LCAwLjAxMDQzNSwgMC4wMTA0MTgiLCBcCi0gICAgICAgICAgIjAuMDEzMTM1LCAwLjAxMTEzNiwgMC4wMTExMjksIDAuMDEwOTU1LCAwLjAxMDgxOSwgMC4wMTA3MjUsIDAuMDEwNjYyIiwgXAotICAgICAgICAgICIwLjAxNTI1NiwgMC4wMTI3OTUsIDAuMDExODc0LCAwLjAxMTU1LCAwLjAxMTI1NSwgMC4wMTExMTksIDAuMDEwOTc0IiwgXAotICAgICAgICAgICIwLjAxNzEzNSwgMC4wMTMzNzgsIDAuMDEyODI3LCAwLjAxMjMzOSwgMC4wMTE5MDgsIDAuMDExNjQxLCAwLjAxMTQwMSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwODA4LCAwLjAwMDM3OSwgMC4wMDAzMjMsIDAuMDAwMzA2LCAwLjAwMDI5LCAwLjAwMDI4MywgMC4wMDAyNzYiLCBcCi0gICAgICAgICAgIjAuMDAwNzksIDAuMDAwNTY2LCAwLjAwMDQ1MSwgMC4wMDA0MDksIDAuMDAwMzY5LCAwLjAwMDM0OCwgMC4wMDAzMjgiLCBcCi0gICAgICAgICAgIjAuMDAwMDY4LCAwLjAwMDQ5MywgMC4wMDA0NTMsIDAuMDAwNDI3LCAwLjAwMDM5LCAwLjAwMDM2OSwgMC4wMDAzNDgiLCBcCi0gICAgICAgICAgIjAuMDAxMDc2LCAwLjAwMDAzMSwgMC4wMDAxOTQsIDAuMDAwMjI4LCAwLjAwMDI1OCwgMC4wMDAyNTgsIDAuMDAwMjY0IiwgXAotICAgICAgICAgICIwLjAwMjI4MSwgMC4wMDA0NjIsIDAuMDAwMjk3LCAwLjAwMDE3MiwgMC4wMDAwNDksIDAuMDAwMDE4LCAwLjAwMDA2MyIsIFwKLSAgICAgICAgICAiMC4wMDQ0NDgsIDAuMDAxNTk0LCAwLjAwMTY5NiwgMC4wMDEzNTUsIDAuMDAwOTg0LCAwLjAwMDc4LCAwLjAwMDU4MyIsIFwKLSAgICAgICAgICAiMC4wMDY1MzUsIDAuMDAzMjYsIDAuMDAxOTI4LCAwLjAwMTQ5MiwgMC4wMDEwNDcsIDAuMDAwODQ3LCAwLjAwMDYzOCIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBNWDJYOCAqCi0gKiAtLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoTVgyWDgpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMS4wMTc0ODsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwODAxNzk0OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDgwMDAwMjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA4MDE3OTQ7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzk3LCAwLjAwMDQwMSwgMC4wMDA0MDQsIDAuMDAwNDA1LCAwLjAwMDQwNiwgMC4wMDA0MDcsIDAuMDAwNDA3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNDQyLCAwLjAwMDQyOCwgMC4wMDA0MjYsIDAuMDAwNDI1LCAwLjAwMDQyNSwgMC4wMDA0MjQsIDAuMDAwNDI0Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA3NDczODI7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNzQ1NDQ3OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDc0NzM4MjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA0MDYsIDAuMDAwNDEsIDAuMDAwNDExLCAwLjAwMDQxMiwgMC4wMDA0MTIsIDAuMDAwNDEyLCAwLjAwMDQxMyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDQ0MiwgMC4wMDA0MjgsIDAuMDAwNDI2LCAwLjAwMDQyNSwgMC4wMDA0MjUsIDAuMDAwNDIzLCAwLjAwMDQyMyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUzApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTUzMzkzOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTUzMzkxOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTUzMzkzOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDMwNCwgMC4wMDAzMTUsIDAuMDAwNDMxLCAwLjAwMDUwOSwgMC4wMDA2MzcsIDAuMDAwODY1LCAwLjAwMTA2NSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjYxOSwgMC4wMDI2NDIsIDAuMDAyNzA5LCAwLjAwMjgxNSwgMC4wMDI5MzgsIDAuMDAzMTYxLCAwLjAwMzM1MiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAyLjc3Njc4OwotICAgIGZ1bmN0aW9uIDogIigoUzAgQikgKyAoIVMwIEEpKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDcwMDY2LCAwLjA5OTg2MiwgMC4xMTgyNSwgMC4xMzkzODIsIDAuMTU5NzA4LCAwLjE3OTY3NiwgMC4xOTk1MzgiLCBcCi0gICAgICAgICAgIjAuMDc2NDA3LCAwLjEwNjIxLCAwLjEyNDU3NywgMC4xNDU3MTksIDAuMTY2MDI1LCAwLjE4NjA0OCwgMC4yMDU5MDUiLCBcCi0gICAgICAgICAgIjAuMDg0NDg4LCAwLjExNDM4NSwgMC4xMzI2NzgsIDAuMTUzODQ3LCAwLjE3NDE4OCwgMC4xOTQxNTgsIDAuMjE0MDE1IiwgXAotICAgICAgICAgICIwLjA5MjM5LCAwLjEyMjEzMiwgMC4xNDA0ODQsIDAuMTYxNTgsIDAuMTgxODYzLCAwLjIwMTg2NCwgMC4yMjE3MTYiLCBcCi0gICAgICAgICAgIjAuMDk5OTE5LCAwLjEyOTYzMiwgMC4xNDgwMzUsIDAuMTY5MTMyLCAwLjE4OTQzLCAwLjIwOTM4NiwgMC4yMjkyNDQiLCBcCi0gICAgICAgICAgIjAuMTEwMzUxLCAwLjE0MDY4NCwgMC4xNTkxMDksIDAuMTgwMjk3LCAwLjIwMDU5NywgMC4yMjA2MzUsIDAuMjQwNDg4IiwgXAotICAgICAgICAgICIwLjExODQxOSwgMC4xNDkzMzUsIDAuMTY4MDUxLCAwLjE4OTE4MSwgMC4yMDk1MTgsIDAuMjI5NTIyLCAwLjI0OTUxOCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzE3MjYsIDAuMDczMTgyLCAwLjEwNDI3LCAwLjE0MzQwMywgMC4xODMwOTMsIDAuMjIzMjE5LCAwLjI2MzY0NSIsIFwKLSAgICAgICAgICAiMC4wMzE3MTEsIDAuMDczMTEsIDAuMTA0MjIyLCAwLjE0MzMxOSwgMC4xODMwMTQsIDAuMjIzMjA0LCAwLjI2MzYyOSIsIFwKLSAgICAgICAgICAiMC4wMzE2MjgsIDAuMDczMDY2LCAwLjEwNDE3MSwgMC4xNDMzNDIsIDAuMTgzMDQ4LCAwLjIyMzE3OCwgMC4yNjM2MjIiLCBcCi0gICAgICAgICAgIjAuMDMxOTEzLCAwLjA3MzM1NiwgMC4xMDQ0MDIsIDAuMTQzNDk4LCAwLjE4MzE0NCwgMC4yMjMyNjUsIDAuMjYzNjc5IiwgXAotICAgICAgICAgICIwLjAzMjY5NiwgMC4wNzM4MDYsIDAuMTA0Njg1LCAwLjE0Mzc5OCwgMC4xODMyNzEsIDAuMjIzNDI2LCAwLjI2MzgzOCIsIFwKLSAgICAgICAgICAiMC4wMzQwMzksIDAuMDc1MjgzLCAwLjEwNTg5OCwgMC4xNDQ2MDksIDAuMTg0MDA3LCAwLjIyMzk0MywgMC4yNjQyMjEiLCBcCi0gICAgICAgICAgIjAuMDM1NDM3LCAwLjA3NjY1NiwgMC4xMDY4NDgsIDAuMTQ1NDc4LCAwLjE4NDYwOSwgMC4yMjQ1MTMsIDAuMjY0NzA4Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3ODIwMywgMC4xMDg2NzEsIDAuMTI3NywgMC4xNDk1MjUsIDAuMTcwNDczLCAwLjE5MTA0OCwgMC4yMTE0OTkiLCBcCi0gICAgICAgICAgIjAuMDg0MjY2LCAwLjExNDc0NywgMC4xMzM3OTYsIDAuMTU1NjU3LCAwLjE3NjYyMywgMC4xOTcyNDIsIDAuMjE3NjEzIiwgXAotICAgICAgICAgICIwLjA5MTUxNSwgMC4xMjIxMywgMC4xNDEwNjUsIDAuMTYyOTE1LCAwLjE4Mzg3NCwgMC4yMDQ0NjcsIDAuMjI0ODM5IiwgXAotICAgICAgICAgICIwLjA5ODcxNSwgMC4xMjkxNzEsIDAuMTQ4MTc0LCAwLjE3MDAyNSwgMC4xOTA5NjEsIDAuMjExNTQ4LCAwLjIzMTkxMiIsIFwKLSAgICAgICAgICAiMC4xMDU1OTUsIDAuMTM2MDc2LCAwLjE1NTAyMSwgMC4xNzY4NDEsIDAuMTk3ODMzLCAwLjIxODM4MSwgMC4yMzg3NzUiLCBcCi0gICAgICAgICAgIjAuMTE1MzI1LCAwLjE0NjE0OCwgMC4xNjUxNzMsIDAuMTg3MTE3LCAwLjIwODA5LCAwLjIyODY3MywgMC4yNDkwNzgiLCBcCi0gICAgICAgICAgIjAuMTIyNzA2LCAwLjE1Mzg5MSwgMC4xNzMxODQsIDAuMTk1MDk0LCAwLjIxNjEsIDAuMjM2NjQ2LCAwLjI1NzA5MSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzMxNjIsIDAuMDc1NDExLCAwLjEwNjg2MywgMC4xNDYzNjksIDAuMTg2MzQzLCAwLjIyNjgxNSwgMC4yNjc1MyIsIFwKLSAgICAgICAgICAiMC4wMzMyNSwgMC4wNzUyNjQsIDAuMTA2Nzk1LCAwLjE0NjI5NCwgMC4xODYzMTEsIDAuMjI2Njk2LCAwLjI2NzQ4NCIsIFwKLSAgICAgICAgICAiMC4wMzMxOTcsIDAuMDc1MjA5LCAwLjEwNjU1LCAwLjE0NjE2LCAwLjE4NjI1NCwgMC4yMjY2NywgMC4yNjczNTIiLCBcCi0gICAgICAgICAgIjAuMDMzMjg5LCAwLjA3NTI1MiwgMC4xMDY3MzQsIDAuMTQ2MzI2LCAwLjE4NjM4MywgMC4yMjY3NjMsIDAuMjY3NTQ3IiwgXAotICAgICAgICAgICIwLjAzMzg1NSwgMC4wNzU2MjYsIDAuMTA3MDQ1LCAwLjE0NjUzMSwgMC4xODY1NiwgMC4yMjY4ODYsIDAuMjY3NjYxIiwgXAotICAgICAgICAgICIwLjAzNTMxMSwgMC4wNzY4MjYsIDAuMTA3OTgyLCAwLjE0NzIzNywgMC4xODY5ODEsIDAuMjI3MzQ1LCAwLjI2NzkyMyIsIFwKLSAgICAgICAgICAiMC4wMzY0MjksIDAuMDc4MzQ1LCAwLjEwOTIzNiwgMC4xNDgzMDYsIDAuMTg3OTM0LCAwLjIyODAyMywgMC4yNjg0NiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzAwNjQsIDAuMDk5ODEzLCAwLjExODE2NSwgMC4xMzkyNjEsIDAuMTU5NjMzLCAwLjE3OTUzNywgMC4xOTkzOTkiLCBcCi0gICAgICAgICAgIjAuMDc2NTMzLCAwLjEwNjM5MywgMC4xMjQ2ODksIDAuMTQ1NzU2LCAwLjE2NjEyMywgMC4xODYwNTUsIDAuMjA1OTI1IiwgXAotICAgICAgICAgICIwLjA4NDY4MywgMC4xMTQ1NDQsIDAuMTMyODM4LCAwLjE1Mzk5NSwgMC4xNzQzMjgsIDAuMTk0Mjk2LCAwLjIxNDE1MSIsIFwKLSAgICAgICAgICAiMC4wOTI2MDEsIDAuMTIyMzMxLCAwLjE0MDY3NCwgMC4xNjE3NjIsIDAuMTgyMDgyLCAwLjIwMjA0MiwgMC4yMjE4OTQiLCBcCi0gICAgICAgICAgIjAuMTAwMDg2LCAwLjEyOTkwNCwgMC4xNDgyOTcsIDAuMTY5Mzc5LCAwLjE4OTY3OSwgMC4yMDk2MjcsIDAuMjI5NDg3IiwgXAotICAgICAgICAgICIwLjExMDc2NSwgMC4xNDA5NTcsIDAuMTU5NDQxLCAwLjE4MDYwNSwgMC4yMDA5MTgsIDAuMjIwOTEyLCAwLjI0MDc0NCIsIFwKLSAgICAgICAgICAiMC4xMTg5NDQsIDAuMTQ5NjExLCAwLjE2ODM1OSwgMC4xODk1ODgsIDAuMjA5OTA2LCAwLjIyOTk5MywgMC4yNDk5MTQiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDMxNzg1LCAwLjA3MzI4MiwgMC4xMDQzNzYsIDAuMTQzNDY0LCAwLjE4MzA0MiwgMC4yMjMyOTUsIDAuMjYzNzEyIiwgXAotICAgICAgICAgICIwLjAzMTgyMiwgMC4wNzMyMTQsIDAuMTA0MzI4LCAwLjE0MzQyOCwgMC4xODMxMDMsIDAuMjIzMjQ0LCAwLjI2MzcwNiIsIFwKLSAgICAgICAgICAiMC4wMzE2ODksIDAuMDczMTE2LCAwLjEwNDIzLCAwLjE0MzM5NSwgMC4xODMwOTcsIDAuMjIzMjI1LCAwLjI2MzY2NiIsIFwKLSAgICAgICAgICAiMC4wMzE5MzYsIDAuMDczMzksIDAuMTA0NDM3LCAwLjE0MzUzNSwgMC4xODMyMDMsIDAuMjIzMzA4LCAwLjI2MzcxNyIsIFwKLSAgICAgICAgICAiMC4wMzI2ODYsIDAuMDczODQyLCAwLjEwNDc1OCwgMC4xNDM4MzQsIDAuMTgzMzcyLCAwLjIyMzQ3MiwgMC4yNjM4NzQiLCBcCi0gICAgICAgICAgIjAuMDM0MDA2LCAwLjA3NTMxNCwgMC4xMDU5MzcsIDAuMTQ0NzQ3LCAwLjE4NDA2NiwgMC4yMjM5NDIsIDAuMjY0MjcyIiwgXAotICAgICAgICAgICIwLjAzNTYxLCAwLjA3Njk4OSwgMC4xMDcxMjIsIDAuMTQ1Nzc5LCAwLjE4NDk2OCwgMC4yMjQ0MTgsIDAuMjY0NjU2Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3OTA4MiwgMC4xMDk2NDEsIDAuMTI4NjA1LCAwLjE1MDQ3NiwgMC4xNzE0MzQsIDAuMTkyMDA5LCAwLjIxMjM3OSIsIFwKLSAgICAgICAgICAiMC4wODUwODUsIDAuMTE1NzA5LCAwLjEzNDY1NywgMC4xNTY1MjksIDAuMTc3NDg4LCAwLjE5ODA2NSwgMC4yMTg0MzMiLCBcCi0gICAgICAgICAgIjAuMDkyMjU1LCAwLjEyMjc3MywgMC4xNDE4MjksIDAuMTYzNzA0LCAwLjE4NDY2NywgMC4yMDUyMTMsIDAuMjI1NjI1IiwgXAotICAgICAgICAgICIwLjA5OTU0OSwgMC4xMzAwMzgsIDAuMTQ5MDIsIDAuMTcwODg5LCAwLjE5MTgzNywgMC4yMTI0MDUsIDAuMjMyNzg5IiwgXAotICAgICAgICAgICIwLjEwNjIsIDAuMTM2NjExLCAwLjE1NTcwMywgMC4xNzc1ODksIDAuMTk4NTQ0LCAwLjIxOTEyMywgMC4yMzk0ODYiLCBcCi0gICAgICAgICAgIjAuMTE1OTY2LCAwLjE0NjgwNCwgMC4xNjU4MDcsIDAuMTg3NzI4LCAwLjIwODY4OSwgMC4yMjkzMTgsIDAuMjQ5NzAyIiwgXAotICAgICAgICAgICIwLjEyMzM2MSwgMC4xNTQ1ODEsIDAuMTczODU2LCAwLjE5NTc0NywgMC4yMTY3NDMsIDAuMjM3MzMzLCAwLjI1Nzc1MyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzMzMzksIDAuMDc1NDI4LCAwLjEwNjgyOSwgMC4xNDYzOSwgMC4xODY0NDksIDAuMjI2ODE1LCAwLjI2NzYzNCIsIFwKLSAgICAgICAgICAiMC4wMzM1MDUsIDAuMDc1NDE4LCAwLjEwNjgyNywgMC4xNDYzOCwgMC4xODY0NDYsIDAuMjI2ODExLCAwLjI2NzYzMSIsIFwKLSAgICAgICAgICAiMC4wMzMzNjUsIDAuMDc1MjY4LCAwLjEwNjgyNywgMC4xNDYzMzUsIDAuMTg2NDMyLCAwLjIyNjg0NSwgMC4yNjc1NzUiLCBcCi0gICAgICAgICAgIjAuMDMzMzU4LCAwLjA3NTMyMSwgMC4xMDY4MjgsIDAuMTQ2NDEsIDAuMTg2NDU1LCAwLjIyNjg3NiwgMC4yNjc2MDEiLCBcCi0gICAgICAgICAgIjAuMDMzOTkxLCAwLjA3NTk2MSwgMC4xMDcyMTQsIDAuMTQ2NjE2LCAwLjE4NjY3MywgMC4yMjY5OTEsIDAuMjY3NzMiLCBcCi0gICAgICAgICAgIjAuMDM1NDk1LCAwLjA3NzE5MywgMC4xMDgyMzMsIDAuMTQ3MzU5LCAwLjE4NzIxNiwgMC4yMjc0NjksIDAuMjY4MDk2IiwgXAotICAgICAgICAgICIwLjAzNjg5OCwgMC4wNzg0NiwgMC4xMDkzNTcsIDAuMTQ4Mzk3LCAwLjE4ODAwOCwgMC4yMjgxNiwgMC4yNjg3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlMwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjU1MzMsIDAuMDk1MzY5LCAwLjExMzczNywgMC4xMzQ4ODcsIDAuMTU1MjE4LCAwLjE3NTIwOSwgMC4xOTUwMzkiLCBcCi0gICAgICAgICAgIjAuMDczMTI4LCAwLjEwMjk1OCwgMC4xMjEzMjgsIDAuMTQyNDY3LCAwLjE2MjgxNiwgMC4xODI4MDEsIDAuMjAyNjM2IiwgXAotICAgICAgICAgICIwLjA4Mjg5NywgMC4xMTI3MTUsIDAuMTMxMDU2LCAwLjE1MjIwMiwgMC4xNzI1NTEsIDAuMTkyNTE3LCAwLjIxMjM3NiIsIFwKLSAgICAgICAgICAiMC4wOTI4MjMsIDAuMTIyNjAxLCAwLjE0MDkyNSwgMC4xNjIwMywgMC4xODIzNTIsIDAuMjAyMzE1LCAwLjIyMjE3MSIsIFwKLSAgICAgICAgICAiMC4xMDIzMjgsIDAuMTMxOTQ4LCAwLjE1MDUyLCAwLjE3MTYxNiwgMC4xOTE5MzgsIDAuMjExODkyLCAwLjIzMTc1MyIsIFwKLSAgICAgICAgICAiMC4xMTUyNjEsIDAuMTQ1ODE5LCAwLjE2NDI0MywgMC4xODU1MDEsIDAuMjA1ODA2LCAwLjIyNTg5OSwgMC4yNDU1ODEiLCBcCi0gICAgICAgICAgIjAuMTI0ODE4LCAwLjE1NjMyNywgMC4xNzUwMzksIDAuMTk2MTAyLCAwLjIxNjUxLCAwLjIzNjU3NCwgMC4yNTYzODYiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDMxNzg0LCAwLjA3MzAzNywgMC4xMDQyMjksIDAuMTQzMzQzLCAwLjE4MjkxNiwgMC4yMjMxOTYsIDAuMjYzNDEyIiwgXAotICAgICAgICAgICIwLjAzMTc0NCwgMC4wNzMxMTIsIDAuMTA0MjI4LCAwLjE0MzM4NywgMC4xODMwNzcsIDAuMjIzMTg0LCAwLjI2MzUwOSIsIFwKLSAgICAgICAgICAiMC4wMzE3MTgsIDAuMDczMTMsIDAuMTA0MjEsIDAuMTQzMzg4LCAwLjE4MzA4MiwgMC4yMjMyMjQsIDAuMjYzNjU1IiwgXAotICAgICAgICAgICIwLjAzMTg2NywgMC4wNzMyNjgsIDAuMTA0MzMsIDAuMTQzMzkzLCAwLjE4MzE0NSwgMC4yMjMyNjQsIDAuMjYzNjg0IiwgXAotICAgICAgICAgICIwLjAzMzE0NywgMC4wNzQxNjksIDAuMTA0ODMyLCAwLjE0MzgyLCAwLjE4MzQzLCAwLjIyMzQ3MiwgMC4yNjM4NTEiLCBcCi0gICAgICAgICAgIjAuMDM2MDcxLCAwLjA3NTk1OSwgMC4xMDYzMzgsIDAuMTQ0OTgsIDAuMTg0MTU4LCAwLjIyNDEwNiwgMC4yNjQ0MzYiLCBcCi0gICAgICAgICAgIjAuMDM4NSwgMC4wNzgxNzIsIDAuMTA4MTg3LCAwLjE0NjI4NywgMC4xODUzNTUsIDAuMjI1MDE5LCAwLjI2NTA5MSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzM2MzMsIDAuMTA0MjgyLCAwLjEyMzIyMiwgMC4xNDUwODQsIDAuMTY2MDQ2LCAwLjE4NjY0NywgMC4yMDcwMSIsIFwKLSAgICAgICAgICAiMC4wODExMiwgMC4xMTE3MzMsIDAuMTMwNjY2LCAwLjE1MjU2NCwgMC4xNzM1NDgsIDAuMTk0MDk2LCAwLjIxNDUwNSIsIFwKLSAgICAgICAgICAiMC4wOTA3OTIsIDAuMTIxNDAyLCAwLjE0MDMzOCwgMC4xNjIxOTQsIDAuMTgzMTUzLCAwLjIwMzc0OSwgMC4yMjQxNDYiLCBcCi0gICAgICAgICAgIjAuMTAwNjQ0LCAwLjEzMTE1OSwgMC4xNTAxMDQsIDAuMTcxOTMzLCAwLjE5MjkxOSwgMC4yMTM0NjYsIDAuMjMzODc5IiwgXAotICAgICAgICAgICIwLjExMDA3OSwgMC4xNDA1NzYsIDAuMTU5NTg4LCAwLjE4MTQsIDAuMjAyMzg5LCAwLjIyMjk3OSwgMC4yNDMzMjYiLCBcCi0gICAgICAgICAgIjAuMTIzNjc0LCAwLjE1NDQ3NywgMC4xNzM0MzgsIDAuMTk1Mzc5LCAwLjIxNjM4NiwgMC4yMzY4MjgsIDAuMjU3MjQxIiwgXAotICAgICAgICAgICIwLjEzMzY3MSwgMC4xNjUxNDcsIDAuMTg0MTc0LCAwLjIwNjA5MSwgMC4yMjcxMDIsIDAuMjQ3NjYsIDAuMjY4MDQzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzMzI2NSwgMC4wNzUyMjcsIDAuMTA2NTk2LCAwLjE0NjE3NCwgMC4xODYxMzUsIDAuMjI2Njg4LCAwLjI2NzQ2IiwgXAotICAgICAgICAgICIwLjAzMzIwOSwgMC4wNzUxNTksIDAuMTA2NjM5LCAwLjE0NjE3MiwgMC4xODYyODQsIDAuMjI2NzM4LCAwLjI2NzQ5MyIsIFwKLSAgICAgICAgICAiMC4wMzMyMzksIDAuMDc1MjQsIDAuMTA2NjM2LCAwLjE0NjE3NywgMC4xODYyNDcsIDAuMjI2NjExLCAwLjI2NzQ4NSIsIFwKLSAgICAgICAgICAiMC4wMzMyNTksIDAuMDc1MTkxLCAwLjEwNjY5NiwgMC4xNDYyNzUsIDAuMTg2MzM2LCAwLjIyNjc2OSwgMC4yNjc0OTUiLCBcCi0gICAgICAgICAgIjAuMDM0MDA2LCAwLjA3NTY3MiwgMC4xMDcwNjUsIDAuMTQ2NTQ1LCAwLjE4NjQwNSwgMC4yMjY4NzYsIDAuMjY3NjE1IiwgXAotICAgICAgICAgICIwLjAzNjQ1NCwgMC4wNzcxNDIsIDAuMTA4MTA3LCAwLjE0NzMyLCAwLjE4NzA4MSwgMC4yMjczNzQsIDAuMjY4MDUiLCBcCi0gICAgICAgICAgIjAuMDM4NTI2LCAwLjA3ODkyMywgMC4xMDk1MjMsIDAuMTQ4NDY4LCAwLjE4ODAzNywgMC4yMjgxMzEsIDAuMjY4NjQzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlMwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzgzOTQsIDAuMTA4MjM2LCAwLjEyNjYwNiwgMC4xNDc3NDQsIDAuMTY4MDUyLCAwLjE4ODA3NiwgMC4yMDc5MjciLCBcCi0gICAgICAgICAgIjAuMDg1OTE2LCAwLjExNTcyNywgMC4xMzQxMjgsIDAuMTU1MjU3LCAwLjE3NTU2NCwgMC4xOTU1MjksIDAuMjE1Mzk0IiwgXAotICAgICAgICAgICIwLjA5MjQ5NSwgMC4xMjIzNjksIDAuMTQwNzQ0LCAwLjE2MTg3LCAwLjE4MjIsIDAuMjAyMjAzLCAwLjIyMjAzIiwgXAotICAgICAgICAgICIwLjA5NzIwNSwgMC4xMjcwODksIDAuMTQ1Mzk2LCAwLjE2NjQ5LCAwLjE4NjgyNSwgMC4yMDY3ODgsIDAuMjI2NjUzIiwgXAotICAgICAgICAgICIwLjEwMDczOSwgMC4xMzA1MTEsIDAuMTQ4OTE3LCAwLjE3MDA2OSwgMC4xOTAzODgsIDAuMjEwMzUsIDAuMjMwMjE3IiwgXAotICAgICAgICAgICIwLjEwNTU3NiwgMC4xMzU0MTMsIDAuMTUzNjk0LCAwLjE3NDg4MiwgMC4xOTUyNjQsIDAuMjE1Mjk1LCAwLjIzNTE1MyIsIFwKLSAgICAgICAgICAiMC4xMDkyNDUsIDAuMTM5MDY1LCAwLjE1NzQ0NiwgMC4xNzg2MzUsIDAuMTk4OTUxLCAwLjIxOTA0NSwgMC4yMzg4OTMiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDMxNjk2LCAwLjA3MzA0NywgMC4xMDQxNywgMC4xNDMyOTYsIDAuMTgyOTk0LCAwLjIyMzA2MSwgMC4yNjM2MTYiLCBcCi0gICAgICAgICAgIjAuMDMxNzI0LCAwLjA3MzA5NywgMC4xMDQyMjksIDAuMTQzMjUyLCAwLjE4MzA3NCwgMC4yMjMyMDcsIDAuMjYzNjM1IiwgXAotICAgICAgICAgICIwLjAzMTcxOSwgMC4wNzMwOTQsIDAuMTA0MTk4LCAwLjE0MzI3MywgMC4xODI5MjksIDAuMjIzMDQ0LCAwLjI2MzYxOSIsIFwKLSAgICAgICAgICAiMC4wMzE2MzcsIDAuMDczMDMzLCAwLjEwNDE1OSwgMC4xNDMzMzcsIDAuMTgzMDQxLCAwLjIyMzE3NSwgMC4yNjM2MDQiLCBcCi0gICAgICAgICAgIjAuMDMxNDg4LCAwLjA3MzAzOSwgMC4xMDQyMDgsIDAuMTQzMzE1LCAwLjE4MzExNSwgMC4yMjMyNTEsIDAuMjYzNjY5IiwgXAotICAgICAgICAgICIwLjAzMTM4NiwgMC4wNzI5NTcsIDAuMTA0MTQ3LCAwLjE0MzQwNiwgMC4xODMxNDUsIDAuMjIzMTYxLCAwLjI2MzcyMSIsIFwKLSAgICAgICAgICAiMC4wMzE0NiwgMC4wNzMwMjksIDAuMTA0MDcxLCAwLjE0MzM3NSwgMC4xODMxMjMsIDAuMjIzMjU5LCAwLjI2MzczMiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODUxMjEsIDAuMTE1NjY0LCAwLjEzNDY5LCAwLjE1NjU0NCwgMC4xNzc1NjUsIDAuMTk4MTU4LCAwLjIxODUyOCIsIFwKLSAgICAgICAgICAiMC4wOTI3ODQsIDAuMTIzMzA3LCAwLjE0MjM3NSwgMC4xNjQyMzMsIDAuMTg1MjAyLCAwLjIwNTc4LCAwLjIyNjE3OSIsIFwKLSAgICAgICAgICAiMC4wOTkzOTEsIDAuMTI5OTgzLCAwLjE0ODk4MywgMC4xNzA4MjUsIDAuMTkxODUzLCAwLjIxMjM3NiwgMC4yMzI3NzkiLCBcCi0gICAgICAgICAgIjAuMTA0MzEsIDAuMTM0ODIsIDAuMTUzODU5LCAwLjE3NTcwMywgMC4xOTY3MDUsIDAuMjE3MjU2LCAwLjIzNzY2MSIsIFwKLSAgICAgICAgICAiMC4xMDgwNzcsIDAuMTM4NTU4LCAwLjE1NzU3NSwgMC4xNzk0MzEsIDAuMjAwMzkxLCAwLjIyMDk4MSwgMC4yNDEzNDciLCBcCi0gICAgICAgICAgIjAuMTEzMzU0LCAwLjE0Mzg3MywgMC4xNjI4OTcsIDAuMTg0NzUzLCAwLjIwNTg4NCwgMC4yMjY0OTMsIDAuMjQ2Nzk3IiwgXAotICAgICAgICAgICIwLjExNzMyNywgMC4xNDc4MTcsIDAuMTY2ODk0LCAwLjE4ODc0LCAwLjIwOTgwNiwgMC4yMzAzNTksIDAuMjUwODE1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzMzM4OCwgMC4wNzUzNjEsIDAuMTA2OTMyLCAwLjE0NjQxMywgMC4xODY0MiwgMC4yMjY3ODEsIDAuMjY3NTc3IiwgXAotICAgICAgICAgICIwLjAzMzM3MiwgMC4wNzU0MDksIDAuMTA2OTMzLCAwLjE0NjQyNSwgMC4xODY0NSwgMC4yMjY4MTgsIDAuMjY3NjAzIiwgXAotICAgICAgICAgICIwLjAzMzM2NSwgMC4wNzUzMzYsIDAuMTA2ODYxLCAwLjE0NjM2NiwgMC4xODYzNzYsIDAuMjI2ODIsIDAuMjY3NTg2IiwgXAotICAgICAgICAgICIwLjAzMzI1MiwgMC4wNzUxODMsIDAuMTA2NzQ3LCAwLjE0NjMyMSwgMC4xODYzOSwgMC4yMjY4MDgsIDAuMjY3NTQ2IiwgXAotICAgICAgICAgICIwLjAzMzI2MywgMC4wNzUzNDgsIDAuMTA2ODQyLCAwLjE0NjQzNywgMC4xODY0NzUsIDAuMjI2ODQ3LCAwLjI2NzYzMSIsIFwKLSAgICAgICAgICAiMC4wMzMxOTQsIDAuMDc1MjI2LCAwLjEwNjgwNCwgMC4xNDYzODQsIDAuMTg2NDUyLCAwLjIyNjg2NiwgMC4yNjc2NDUiLCBcCi0gICAgICAgICAgIjAuMDMzMTczLCAwLjA3NTIyMywgMC4xMDY2OTgsIDAuMTQ2Mjk4LCAwLjE4NjQ1NiwgMC4yMjY4OTcsIDAuMjY3NTkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTIxMzIsIDAuMDExMzUzLCAwLjAxMTMzLCAwLjAxMTMzNywgMC4wMTEzNDQsIDAuMDExMzUxLCAwLjAxMTM1NyIsIFwKLSAgICAgICAgICAiMC4wMTIwOTMsIDAuMDExMjkyLCAwLjAxMTI4NSwgMC4wMTEyOSwgMC4wMTEzLCAwLjAxMTMxLCAwLjAxMTMxNyIsIFwKLSAgICAgICAgICAiMC4wMTIwNiwgMC4wMTEyNzMsIDAuMDExMjM5LCAwLjAxMTI2LCAwLjAxMTI3MywgMC4wMTEyODQsIDAuMDExMjkzIiwgXAotICAgICAgICAgICIwLjAxMjMyMSwgMC4wMTE0MzgsIDAuMDExMzYxLCAwLjAxMTM0MSwgMC4wMTEzNDcsIDAuMDExMzQyLCAwLjAxMTM0NSIsIFwKLSAgICAgICAgICAiMC4wMTI4MDMsIDAuMDExNjI2LCAwLjAxMTUsIDAuMDExNDQ3LCAwLjAxMTQzMSwgMC4wMTE0MiwgMC4wMTE0MTIiLCBcCi0gICAgICAgICAgIjAuMDEyOTM5LCAwLjAxMTg3OCwgMC4wMTE3MTIsIDAuMDExNjI4LCAwLjAxMTU4NywgMC4wMTE1NjQsIDAuMDExNTQ5IiwgXAotICAgICAgICAgICIwLjAxMzI3MywgMC4wMTE4NywgMC4wMTE3MiwgMC4wMTE2NDYsIDAuMDExNjE3LCAwLjAxMTYwNSwgMC4wMTE2MDEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTM3NjcsIDAuMDEyODc2LCAwLjAxMjg0MiwgMC4wMTI4NDUsIDAuMDEyODU2LCAwLjAxMjg2NywgMC4wMTI4NzciLCBcCi0gICAgICAgICAgIjAuMDEzNzE4LCAwLjAxMjgwMSwgMC4wMTI3NzMsIDAuMDEyNzg3LCAwLjAxMjgwOCwgMC4wMTI4MjMsIDAuMDEyODM2IiwgXAotICAgICAgICAgICIwLjAxMzYzNywgMC4wMTI3NDcsIDAuMDEyNzE2LCAwLjAxMjczNywgMC4wMTI3NjIsIDAuMDEyNzg0LCAwLjAxMjgwMiIsIFwKLSAgICAgICAgICAiMC4wMTM5MjYsIDAuMDEyOTA4LCAwLjAxMjgzMSwgMC4wMTI4MjEsIDAuMDEyODI4LCAwLjAxMjgzOSwgMC4wMTI4NSIsIFwKLSAgICAgICAgICAiMC4wMTQyNiwgMC4wMTMwNjgsIDAuMDEyOTUsIDAuMDEyOTA5LCAwLjAxMjkwMywgMC4wMTI5MDYsIDAuMDEyOTExIiwgXAotICAgICAgICAgICIwLjAxNDc4NCwgMC4wMTMzMzcsIDAuMDEzMTYsIDAuMDEzMDg3LCAwLjAxMzA1MSwgMC4wMTMwNDUsIDAuMDEzMDM0IiwgXAotICAgICAgICAgICIwLjAxNTI2LCAwLjAxMzQ3NSwgMC4wMTMzMDgsIDAuMDEzMjE0LCAwLjAxMzE3LCAwLjAxMzE1MywgMC4wMTMxNDMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTIwMTksIDAuMDExMDkzLCAwLjAxMTAwOSwgMC4wMTA5NzQsIDAuMDEwOTU2LCAwLjAxMDk0MywgMC4wMTA5MzYiLCBcCi0gICAgICAgICAgIjAuMDExODMsIDAuMDEwOTk5LCAwLjAxMDkzLCAwLjAxMDkwNSwgMC4wMTA4OTgsIDAuMDEwODg1LCAwLjAxMDg4NyIsIFwKLSAgICAgICAgICAiMC4wMTE3OTEsIDAuMDEwOTQ1LCAwLjAxMDg4LCAwLjAxMDg3MywgMC4wMTA4NzEsIDAuMDEwODY2LCAwLjAxMDg2NiIsIFwKLSAgICAgICAgICAiMC4wMTIwMDEsIDAuMDExMDkxLCAwLjAxMDk5LCAwLjAxMDk1NCwgMC4wMTA5MzEsIDAuMDEwOTI3LCAwLjAxMDkxNCIsIFwKLSAgICAgICAgICAiMC4wMTI1MTUsIDAuMDExMzAyLCAwLjAxMTE1MSwgMC4wMTEwNzIsIDAuMDExMDMyLCAwLjAxMTAxNCwgMC4wMTEwMDEiLCBcCi0gICAgICAgICAgIjAuMDEyNzc0LCAwLjAxMTUzNCwgMC4wMTEzMzYsIDAuMDExMjI4LCAwLjAxMTE4MSwgMC4wMTExNTIsIDAuMDExMTI5IiwgXAotICAgICAgICAgICIwLjAxMzIzOSwgMC4wMTE3NSwgMC4wMTE1NTgsIDAuMDExNDIsIDAuMDExMzQ4LCAwLjAxMTI3NiwgMC4wMTEyNDkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTQxMjYsIDAuMDEzMTE0LCAwLjAxMzA1MSwgMC4wMTMwMzMsIDAuMDEzMDMyLCAwLjAxMzAzMSwgMC4wMTMwMzMiLCBcCi0gICAgICAgICAgIjAuMDE0MDY3LCAwLjAxMzEwMiwgMC4wMTMwMjUsIDAuMDEzMDEsIDAuMDEzMDA5LCAwLjAxMzAxMSwgMC4wMTMwMTMiLCBcCi0gICAgICAgICAgIjAuMDEzOTU5LCAwLjAxMzAxMywgMC4wMTI5NTksIDAuMDEyOTU5LCAwLjAxMjk2NCwgMC4wMTI5NzIsIDAuMDEyOTgiLCBcCi0gICAgICAgICAgIjAuMDE0MTM1LCAwLjAxMzExNywgMC4wMTMwMjksIDAuMDEzMDA2LCAwLjAxMzAwNSwgMC4wMTMwMDgsIDAuMDEzMDE0IiwgXAotICAgICAgICAgICIwLjAxNDQ1NCwgMC4wMTMyMTYsIDAuMDEzMTA0LCAwLjAxMzA2NiwgMC4wMTMwNTUsIDAuMDEzMDU1LCAwLjAxMzA1NyIsIFwKLSAgICAgICAgICAiMC4wMTUxMTgsIDAuMDEzNTM5LCAwLjAxMzM1NCwgMC4wMTMyNzEsIDAuMDEzMjMyLCAwLjAxMzIxOCwgMC4wMTMyMDEiLCBcCi0gICAgICAgICAgIjAuMDE1NjEyLCAwLjAxMzgxNywgMC4wMTM1NzEsIDAuMDEzNDUyLCAwLjAxMzM4OSwgMC4wMTMzNTcsIDAuMDEzMzQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTMCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE0NTkzLCAwLjAxMzgwNiwgMC4wMTM3OTksIDAuMDEzODA4LCAwLjAxMzgxNywgMC4wMTM4MzIsIDAuMDEzODQxIiwgXAotICAgICAgICAgICIwLjAxNDU5MywgMC4wMTM4MzQsIDAuMDEzODEzLCAwLjAxMzgyNiwgMC4wMTM4NDMsIDAuMDEzODQ3LCAwLjAxMzg1NiIsIFwKLSAgICAgICAgICAiMC4wMTQ2NDcsIDAuMDEzOSwgMC4wMTM4OTcsIDAuMDEzOTA3LCAwLjAxMzkyMywgMC4wMTM5MzcsIDAuMDEzOTQiLCBcCi0gICAgICAgICAgIjAuMDE0NzkxLCAwLjAxNDA1NSwgMC4wMTQwMjUsIDAuMDE0MDI0LCAwLjAxNDA1LCAwLjAxNDA1MywgMC4wMTQwNjIiLCBcCi0gICAgICAgICAgIjAuMDE0ODgzLCAwLjAxNDEyNiwgMC4wMTQxMTQsIDAuMDE0MTI1LCAwLjAxNDE0NiwgMC4wMTQxNTgsIDAuMDE0MTcxIiwgXAotICAgICAgICAgICIwLjAxNTEyNiwgMC4wMTQzOTYsIDAuMDE0Mzg5LCAwLjAxNDM5OCwgMC4wMTQ0MiwgMC4wMTQ0MjksIDAuMDE0NDM3IiwgXAotICAgICAgICAgICIwLjAxNTMxOCwgMC4wMTQ1ODgsIDAuMDE0NTgxLCAwLjAxNDU4NSwgMC4wMTQ2MDUsIDAuMDE0NjE1LCAwLjAxNDYyNCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMzMxOCwgMC4wMTIzNTcsIDAuMDEyMzA1LCAwLjAxMjMwMiwgMC4wMTIzMTIsIDAuMDEyMzIsIDAuMDEyMzI3IiwgXAotICAgICAgICAgICIwLjAxMzM1MSwgMC4wMTIzODMsIDAuMDEyMzI3LCAwLjAxMjMyLCAwLjAxMjMyNSwgMC4wMTIzMzIsIDAuMDEyMzQiLCBcCi0gICAgICAgICAgIjAuMDEzMzczLCAwLjAxMjQzOSwgMC4wMTIzODksIDAuMDEyMzksIDAuMDEyNDAzLCAwLjAxMjQwOSwgMC4wMTI0MTgiLCBcCi0gICAgICAgICAgIjAuMDEzNDQ4LCAwLjAxMjU0MiwgMC4wMTI0OTgsIDAuMDEyNDk3LCAwLjAxMjUxLCAwLjAxMjUyLCAwLjAxMjUzIiwgXAotICAgICAgICAgICIwLjAxMzU2NywgMC4wMTI2NjIsIDAuMDEyNjEzLCAwLjAxMjYxOCwgMC4wMTI2MzEsIDAuMDEyNjQ0LCAwLjAxMjY1NCIsIFwKLSAgICAgICAgICAiMC4wMTM4MjEsIDAuMDEyOTI0LCAwLjAxMjg4OCwgMC4wMTI4ODEsIDAuMDEyOTA1LCAwLjAxMjkxNSwgMC4wMTI5MjIiLCBcCi0gICAgICAgICAgIjAuMDE0MDI4LCAwLjAxMzEzOSwgMC4wMTMwODMsIDAuMDEzMDk5LCAwLjAxMzEwMSwgMC4wMTMxMTEsIDAuMDEzMTI5Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogTkFORDJYMSAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChOQU5EMlgxKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMTgxNjA3OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA5MjYyNTg7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwOTI2MjU4OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDkyNDg3OTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA1MjQsIDAuMDAwNTI0LCAwLjAwMDUyNCwgMC4wMDA1MjMsIDAuMDAwNTIzLCAwLjAwMDUyNCwgMC4wMDA1MjMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA1NTMsIDAuMDAwNTM2LCAwLjAwMDUyOSwgMC4wMDA1MjcsIDAuMDAwNTI2LCAwLjAwMDUyNiwgMC4wMDA1MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDk1MTM2NzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA5NTEwNzQ7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwOTUxMzY3OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDMxNiwgMC4wMDAzMTYsIDAuMDAwMzE2LCAwLjAwMDMxNSwgMC4wMDAzMTUsIDAuMDAwMzE2LCAwLjAwMDMxNiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDU5NSwgMC4wMDA1OTYsIDAuMDAwNTk2LCAwLjAwMDU5NiwgMC4wMDA1OTYsIDAuMDAwNTk2LCAwLjAwMDU5NiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjIwNjQzOwotICAgIGZ1bmN0aW9uIDogIighKEEgQikpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzgxMzYsIDAuMDU2ODAxLCAwLjE2MjM3MiwgMC4yNTU0ODIsIDAuMzc5NjIzLCAwLjYyODQsIDAuNzgzMTQ2IiwgXAotICAgICAgICAgICIwLjA0NjM0NSwgMC4wNjQ5ODIsIDAuMTcwMzU0LCAwLjI2MzUyNCwgMC4zODc3NiwgMC42MzYxMjEsIDAuNzkxMjY1IiwgXAotICAgICAgICAgICIwLjA1Njc1OCwgMC4wNzUyODYsIDAuMTgwNzQyLCAwLjI3Mzc2LCAwLjM5NzkyOCwgMC42NDY2NCwgMC44MDExMTYiLCBcCi0gICAgICAgICAgIjAuMDY2OTYsIDAuMDg1OTQsIDAuMTkxMTcyLCAwLjI4NDM1NCwgMC40MDgyNTgsIDAuNjU2NTkyLCAwLjgxMTU1NCIsIFwKLSAgICAgICAgICAiMC4wNzUzNDQsIDAuMDk2NDc3LCAwLjIwMTc0MywgMC4yOTQ3MjksIDAuNDE4ODU2LCAwLjY2Njg2MSwgMC44MjE5NTgiLCBcCi0gICAgICAgICAgIjAuMDg2MTcxLCAwLjExMDg4MywgMC4yMTg0NTIsIDAuMzExNDIzLCAwLjQzNTUxMiwgMC42ODM2MzIsIDAuODM4ODQzIiwgXAotICAgICAgICAgICIwLjA5NDk1LCAwLjEyMTQ4NiwgMC4yMzMyNTYsIDAuMzI2MDUzLCAwLjQ1MDAzLCAwLjY5ODMxLCAwLjg1MzMxNyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzMxNDgsIDAuMTEyMzY0LCAwLjMzNDQyLCAwLjUzMDIwMSwgMC43OTEyNDUsIDEuMzEzODcsIDEuNjM5NDUiLCBcCi0gICAgICAgICAgIjAuMDc0NTgyLCAwLjExMjY5NywgMC4zMzQzMywgMC41MzA0MTcsIDAuNzkxNDQ5LCAxLjMxMzg1LCAxLjY0MDQxIiwgXAotICAgICAgICAgICIwLjA4MTI0LCAwLjExNzI0NiwgMC4zMzQzMjgsIDAuNTMwMTksIDAuNzkxMzMyLCAxLjMxMzg0LCAxLjY0MDQ1IiwgXAotICAgICAgICAgICIwLjA4OTY2NywgMC4xMjQyNzEsIDAuMzM1NjE2LCAwLjUzMDExMywgMC43OTEzODcsIDEuMzEzODksIDEuNjM5MzYiLCBcCi0gICAgICAgICAgIjAuMDk5MDI1LCAwLjEzMjQ2NywgMC4zMzg5MjcsIDAuNTMwNTM0LCAwLjc5MDk2OCwgMS4zMTMwMiwgMS42NDA0NCIsIFwKLSAgICAgICAgICAiMC4xMTQ3NzQsIDAuMTQ3MjAyLCAwLjM0NzA1NiwgMC41MzQ3NTcsIDAuNzkxNTQ3LCAxLjMxMzY2LCAxLjYzOTUyIiwgXAotICAgICAgICAgICIwLjEyNjEwMSwgMC4xNjA2NDMsIDAuMzU1OTEsIDAuNTQwMzQ0LCAwLjc5MzkzOCwgMS4zMTM3NywgMS42NDAzOSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjMwMTQsIDAuMDk0NzY2LCAwLjI3NDUyOSwgMC40MzMzNjEsIDAuNjQ0MzU5LCAxLjA2NzQsIDEuMzMwNzMiLCBcCi0gICAgICAgICAgIjAuMDY5NTM2LCAwLjEwMTMzMSwgMC4yODExOTIsIDAuNDM5Njk2LCAwLjY1MTEwNSwgMS4wNzM4NSwgMS4zMzgwOSIsIFwKLSAgICAgICAgICAiMC4wNzc2OSwgMC4xMDk1ODcsIDAuMjg5NjI5LCAwLjQ0ODQyOCwgMC42NTk1NSwgMS4wODIxOCwgMS4zNDcxMyIsIFwKLSAgICAgICAgICAiMC4wODYwMDMsIDAuMTE3NzcyLCAwLjI5NzgyNCwgMC40NTY1MDgsIDAuNjY3ODc2LCAxLjA5MDY3LCAxLjM1NjA1IiwgXAotICAgICAgICAgICIwLjA5NDIyLCAwLjEyNjY1NCwgMC4zMDYxOTgsIDAuNDY0ODMxLCAwLjY3NjIyNCwgMS4wOTkxMSwgMS4zNjMzNSIsIFwKLSAgICAgICAgICAiMC4xMDU3MiwgMC4xMzk2NDYsIDAuMzE5NDAzLCAwLjQ3ODM1NSwgMC42OTAyNjIsIDEuMTEyODgsIDEuMzc2OCIsIFwKLSAgICAgICAgICAiMC4xMTQ2ODksIDAuMTUwNjE5LCAwLjMzMTA4NSwgMC40ODk4MjEsIDAuNzAxNjE5LCAxLjEyNDUsIDEuMzg4OTgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTE5NzEzLCAwLjE4NDcxNCwgMC41NTM2MTUsIDAuODc5NTY2LCAxLjMxOTk0LCAyLjE4MTMsIDIuNzI1MzMiLCBcCi0gICAgICAgICAgIjAuMTE5NzMzLCAwLjE4NTExNCwgMC41NTM2OCwgMC44ODM0OTMsIDEuMzE0MDYsIDIuMTg2NjIsIDIuNzI1NTUiLCBcCi0gICAgICAgICAgIjAuMTIyMjMzLCAwLjE4NTc4MywgMC41NTQxOTIsIDAuODc5MzEyLCAxLjMxNDA5LCAyLjE4NjQxLCAyLjcyNjA0IiwgXAotICAgICAgICAgICIwLjEyNjg0OCwgMC4xODkwMTIsIDAuNTU0NDE2LCAwLjg3OTc5NiwgMS4zMTM5OCwgMi4xOTIyNiwgMi43MjQ5OCIsIFwKLSAgICAgICAgICAiMC4xMzIyMiwgMC4xOTM2MzIsIDAuNTU1MjY4LCAwLjg4MTA5MywgMS4zMTYxNCwgMi4xOTIyNSwgMi43MzAyOCIsIFwKLSAgICAgICAgICAiMC4xNDIwNywgMC4yMDE1NDksIDAuNTU2NzI1LCAwLjg4MTI2LCAxLjMxMzM4LCAyLjE4MTUsIDIuNzM3NTMiLCBcCi0gICAgICAgICAgIjAuMTUxNjgsIDAuMjA5NzMxLCAwLjU2MDc2NSwgMC44ODIzOTMsIDEuMzE2MTUsIDIuMTgyNTQsIDIuNzIzODkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM2NjMsIDAuMDU1MDU1LCAwLjE1OTQxOCwgMC4yNTE1MDksIDAuMzc0MjIsIDAuNjE5ODk3LCAwLjc3MzEiLCBcCi0gICAgICAgICAgIjAuMDQ0NzkzLCAwLjA2MzIwNiwgMC4xNjc1MDYsIDAuMjU5NTc1LCAwLjM4MjQ1NSwgMC42Mjc5NDEsIDAuNzgxNDI5IiwgXAotICAgICAgICAgICIwLjA1NTIwNywgMC4wNzM1NzUsIDAuMTc3NzU4LCAwLjI2OTk4NSwgMC4zOTI1MTYsIDAuNjM4NDg0LCAwLjc5MTIzMyIsIFwKLSAgICAgICAgICAiMC4wNjUyMzUsIDAuMDg0MTUxLCAwLjE4ODI3MSwgMC4yODA1MDYsIDAuNDAyOTk2LCAwLjY0ODM3NiwgMC44MDE2NiIsIFwKLSAgICAgICAgICAiMC4wNzM0MjIsIDAuMDk0NjQ1LCAwLjE5ODgwNSwgMC4yOTA3NzcsIDAuNDEzNTc2LCAwLjY1OTE2MiwgMC44MTIwNTYiLCBcCi0gICAgICAgICAgIjAuMDgzNjc3LCAwLjEwODY2OSwgMC4yMTU1MDksIDAuMzA3MzkxLCAwLjQzMDE0LCAwLjY3NTQ0NSwgMC44MjkwNDYiLCBcCi0gICAgICAgICAgIjAuMDkyMDc2LCAwLjExODkyOCwgMC4yMzAzMDEsIDAuMzIyMDQyLCAwLjQ0NDcwNCwgMC42OTAwNiwgMC44NDM0MDUiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDcwNzkxLCAwLjEwOTQ3MywgMC4zMjg5NiwgMC41MjIxNDEsIDAuNzgwMDY4LCAxLjI5NTcyLCAxLjYxODI3IiwgXAotICAgICAgICAgICIwLjA3MjMwNiwgMC4xMDk4ODUsIDAuMzI4NjIyLCAwLjUyMjY4MiwgMC43ODAwOTUsIDEuMjk1OTMsIDEuNjE5MzUiLCBcCi0gICAgICAgICAgIjAuMDc5MDU2LCAwLjExNDU3NywgMC4zMjg0OTUsIDAuNTIyMDI4LCAwLjc4MDAwMywgMS4yOTYzNSwgMS42MTg4MiIsIFwKLSAgICAgICAgICAiMC4wODc2NjIsIDAuMTIxNTY4LCAwLjMzMDE0OCwgMC41MjIyNTEsIDAuNzgwODI3LCAxLjI5NjQzLCAxLjYxNzQzIiwgXAotICAgICAgICAgICIwLjA5NzI2NiwgMC4xMjk5NTIsIDAuMzMzNDQyLCAwLjUyMzU4NiwgMC43ODAwMiwgMS4yOTYxOCwgMS42MTc1MyIsIFwKLSAgICAgICAgICAiMC4xMTMyMDMsIDAuMTQ1NTYsIDAuMzQxNzQ4LCAwLjUyNzY1NiwgMC43ODAxNjgsIDEuMjk1NTMsIDEuNjE4MiIsIFwKLSAgICAgICAgICAiMC4xMjQ5MDQsIDAuMTU4NTU5LCAwLjM1MDc3MSwgMC41MzI5NDcsIDAuNzgzNDI1LCAxLjI5NTU2LCAxLjYxNzc2Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2MTU4NCwgMC4wOTMzMjUsIDAuMjczMDkzLCAwLjQzMTkzNiwgMC42NDI4MzgsIDEuMDY1OTIsIDEuMzMwMjMiLCBcCi0gICAgICAgICAgIjAuMDY5MDU0LCAwLjEwMDg0MiwgMC4yODA1NzEsIDAuNDM5MzIxLCAwLjY1MTEzMiwgMS4wNzQxMSwgMS4zMzczNyIsIFwKLSAgICAgICAgICAiMC4wNzg4NTcsIDAuMTEwNjI2LCAwLjI5MDM5MywgMC40NDkwNTIsIDAuNjYwNjQzLCAxLjA4NDI4LCAxLjM0NzY4IiwgXAotICAgICAgICAgICIwLjA4ODcxOCwgMC4xMjAzMTYsIDAuMjk5OTQ5LCAwLjQ1ODY1OSwgMC42Njk5MDQsIDEuMDkyODMsIDEuMzU3MjgiLCBcCi0gICAgICAgICAgIjAuMDk4OTA3LCAwLjEzMDM0MywgMC4zMDk4MDcsIDAuNDY4MjMzLCAwLjY3OTY4OCwgMS4xMDM0MSwgMS4zNjY2OCIsIFwKLSAgICAgICAgICAiMC4xMTMzNTksIDAuMTQ2NTQ2LCAwLjMyNTQzOSwgMC40ODMzOTQsIDAuNjk1MDg5LCAxLjExODQyLCAxLjM4MjA0IiwgXAotICAgICAgICAgICIwLjEyNDE0MywgMC4xNjAyNjMsIDAuMzM5MzA3LCAwLjQ5NzU2LCAwLjcwOTAwNywgMS4xMzE1LCAxLjM5NjE4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExOTY1MywgMC4xODQ2OTQsIDAuNTUzNTM1LCAwLjg3OTU4OCwgMS4zMTYzNCwgMi4xODEzNCwgMi43MjMzOSIsIFwKLSAgICAgICAgICAiMC4xMjAwNDYsIDAuMTg1MTI2LCAwLjU1NDkxOCwgMC44Nzg5MzQsIDEuMzEzMjUsIDIuMTgxOTIsIDIuNzMwMjIiLCBcCi0gICAgICAgICAgIjAuMTIzOCwgMC4xODY2NywgMC41NTQwMzIsIDAuODgwMDMxLCAxLjMxMzQ5LCAyLjE4MTY2LCAyLjcyMzc0IiwgXAotICAgICAgICAgICIwLjEyOTk4LCAwLjE5MDgxOCwgMC41NTQ4OTcsIDAuODc5Mzc0LCAxLjMxOTk1LCAyLjE4Mjg5LCAyLjcyMzU4IiwgXAotICAgICAgICAgICIwLjEzNzU1NSwgMC4xOTY3MzIsIDAuNTUzOTI5LCAwLjg4MDM3LCAxLjMxMzI2LCAyLjE4MjI1LCAyLjcyNjIxIiwgXAotICAgICAgICAgICIwLjE1MTQyLCAwLjIwODAzOCwgMC41NTg2MzQsIDAuODc5MjIzLCAxLjMxNTA3LCAyLjE4MjA0LCAyLjczNzg2IiwgXAotICAgICAgICAgICIwLjE2MzE3MywgMC4yMTkxMywgMC41NjM2NywgMC44ODI0NzQsIDEuMzEzMjMsIDIuMTkyNDgsIDIuNzI2MzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDIzMTQsIDAuMDAyMzE2LCAwLjAwMjMxOCwgMC4wMDIzMTksIDAuMDAyMzE5LCAwLjAwMjMxOSwgMC4wMDIzMTgiLCBcCi0gICAgICAgICAgIjAuMDAyMzEyLCAwLjAwMjMxMywgMC4wMDIzMDksIDAuMDAyMzEzLCAwLjAwMjMxNCwgMC4wMDIzMTQsIDAuMDAyMzE0IiwgXAotICAgICAgICAgICIwLjAwMjM0NiwgMC4wMDIzMzUsIDAuMDAyMzIyLCAwLjAwMjMxOCwgMC4wMDIzMTYsIDAuMDAyMzE0LCAwLjAwMjMxMyIsIFwKLSAgICAgICAgICAiMC4wMDIzOTcsIDAuMDAyMzczLCAwLjAwMjMzOCwgMC4wMDIzMywgMC4wMDIzMjMsIDAuMDAyMzE4LCAwLjAwMjMxNyIsIFwKLSAgICAgICAgICAiMC4wMDI0NzEsIDAuMDAyNDI2LCAwLjAwMjM1OSwgMC4wMDIzNDUsIDAuMDAyMzM2LCAwLjAwMjMyNSwgMC4wMDIzMjIiLCBcCi0gICAgICAgICAgIjAuMDAyNjM2LCAwLjAwMjU0NywgMC4wMDI0MTEsIDAuMDAyMzc5LCAwLjAwMjM2MiwgMC4wMDIzNDQsIDAuMDAyMzM2IiwgXAotICAgICAgICAgICIwLjAwMjczOSwgMC4wMDI2NzUsIDAuMDAyNDY4LCAwLjAwMjQyLCAwLjAwMjM5LCAwLjAwMjM2MywgMC4wMDIzNTQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDAxODYsIDAuMDAwMTkxLCAwLjAwMDE5NywgMC4wMDAxOTgsIDAuMDAwMTk5LCAwLjAwMDE5OSwgMC4wMDAyIiwgXAotICAgICAgICAgICIwLjAwMDE0NywgMC4wMDAxNjIsIDAuMDAwMTg2LCAwLjAwMDE5MSwgMC4wMDAxOTQsIDAuMDAwMTk3LCAwLjAwMDE5NyIsIFwKLSAgICAgICAgICAiMC4wMDAxMzQsIDAuMDAwMTQ4LCAwLjAwMDE3OCwgMC4wMDAxODUsIDAuMDAwMTksIDAuMDAwMTk0LCAwLjAwMDE5NSIsIFwKLSAgICAgICAgICAiMC4wMDAxNTEsIDAuMDAwMTU2LCAwLjAwMDE3OCwgMC4wMDAxODUsIDAuMDAwMTg5LCAwLjAwMDE5NCwgMC4wMDAxOTUiLCBcCi0gICAgICAgICAgIjAuMDAwMTksIDAuMDAwMTgzLCAwLjAwMDE4NSwgMC4wMDAxODksIDAuMDAwMTkyLCAwLjAwMDE5NSwgMC4wMDAxOTYiLCBcCi0gICAgICAgICAgIjAuMDAwMjgzLCAwLjAwMDI0OSwgMC4wMDAyMSwgMC4wMDAyMDUsIDAuMDAwMjAyLCAwLjAwMDIwMSwgMC4wMDAyMDEiLCBcCi0gICAgICAgICAgIjAuMDAwMzksIDAuMDAwMzMyLCAwLjAwMDI0NiwgMC4wMDAyMjgsIDAuMDAwMjE5LCAwLjAwMDIxMSwgMC4wMDAyMDkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDE4MzksIDAuMDAxODQzLCAwLjAwMTg0OCwgMC4wMDE4NDksIDAuMDAxODUsIDAuMDAxODUxLCAwLjAwMTg1MSIsIFwKLSAgICAgICAgICAiMC4wMDE4MjgsIDAuMDAxODM2LCAwLjAwMTg0OSwgMC4wMDE4NTIsIDAuMDAxODUyLCAwLjAwMTg1MywgMC4wMDE4NTQiLCBcCi0gICAgICAgICAgIjAuMDAxODU0LCAwLjAwMTg1MywgMC4wMDE4NTksIDAuMDAxODU1LCAwLjAwMTg1NiwgMC4wMDE4NTcsIDAuMDAxODU4IiwgXAotICAgICAgICAgICIwLjAwMTg5OCwgMC4wMDE4ODMsIDAuMDAxODY2LCAwLjAwMTg2MywgMC4wMDE4NjEsIDAuMDAxODU5LCAwLjAwMTg2IiwgXAotICAgICAgICAgICIwLjAwMTk2NywgMC4wMDE5MywgMC4wMDE4ODUsIDAuMDAxODc1LCAwLjAwMTg3LCAwLjAwMTg2NSwgMC4wMDE4NjMiLCBcCi0gICAgICAgICAgIjAuMDAyMTE5LCAwLjAwMjA0MiwgMC4wMDE5MzIsIDAuMDAxOTA5LCAwLjAwMTg5NCwgMC4wMDE4ODEsIDAuMDAxODc1IiwgXAotICAgICAgICAgICIwLjAwMjIxOSwgMC4wMDIxNjIsIDAuMDAxOTgzLCAwLjAwMTk0NCwgMC4wMDE5MTksIDAuMDAxODk4LCAwLjAwMTg5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwMTgyLCAwLjAwMDE4OCwgMC4wMDAxOTUsIDAuMDAwMTk2LCAwLjAwMDE5NywgMC4wMDAxOTcsIDAuMDAwMTk3IiwgXAotICAgICAgICAgICIwLjAwMDE1MywgMC4wMDAxNjUsIDAuMDAwMTg1LCAwLjAwMDE5LCAwLjAwMDE5MywgMC4wMDAxOTUsIDAuMDAwMTk2IiwgXAotICAgICAgICAgICIwLjAwMDE2MywgMC4wMDAxNjgsIDAuMDAwMTg0LCAwLjAwMDE4OSwgMC4wMDAxOTIsIDAuMDAwMTk0LCAwLjAwMDE5NSIsIFwKLSAgICAgICAgICAiMC4wMDAyMTQsIDAuMDAwMjAzLCAwLjAwMDE5NiwgMC4wMDAxOTYsIDAuMDAwMTk2LCAwLjAwMDE5NywgMC4wMDAxOTciLCBcCi0gICAgICAgICAgIjAuMDAwMjg2LCAwLjAwMDI1MywgMC4wMDAyMTYsIDAuMDAwMjA5LCAwLjAwMDIwNSwgMC4wMDAyMDIsIDAuMDAwMjAyIiwgXAotICAgICAgICAgICIwLjAwMDQzNiwgMC4wMDAzNjMsIDAuMDAwMjYyLCAwLjAwMDI0MSwgMC4wMDAyMjgsIDAuMDAwMjE2LCAwLjAwMDIxMyIsIFwKLSAgICAgICAgICAiMC4wMDA1OTEsIDAuMDAwNDc5LCAwLjAwMDMxNiwgMC4wMDAyODEsIDAuMDAwMjU2LCAwLjAwMDIzNCwgMC4wMDAyMjciKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogTkFORDNCWDIgKgotICogLS0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKE5BTkQzQlgyKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuNjE5NTczOwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBTikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjMyODY4OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYzMjgxNzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2MzI4Njg7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxMDYyLCAwLjAwMTA1NywgMC4wMDExMjksIDAuMDAxMjI4LCAwLjAwMTM0NCwgMC4wMDE1NjQsIDAuMDAxNzI5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyODgyLCAwLjAwMjg4MywgMC4wMDI5NSwgMC4wMDMwNDYsIDAuMDAzMTY2LCAwLjAwMzMxNiwgMC4wMDM1NzQiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTgzODQxOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTgzODQxOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTgzNTgyOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTA0OSwgMC4wMDEwNDgsIDAuMDAxMDQ4LCAwLjAwMTA0NywgMC4wMDEwNDcsIDAuMDAxMDQ3LCAwLjAwMTA0NyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTEyNSwgMC4wMDEwNjksIDAuMDAxMDYxLCAwLjAwMTA1OCwgMC4wMDEwNTYsIDAuMDAxMDUyLCAwLjAwMTA1MyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQykgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNzExMzc7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNzEwNjU7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNzExMzc7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNTg4LCAwLjAwMDU4NywgMC4wMDA1ODcsIDAuMDAwNTg2LCAwLjAwMDU4NywgMC4wMDA1ODcsIDAuMDAwNTg2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxMTkxLCAwLjAwMTE5MiwgMC4wMDExOTIsIDAuMDAxMTkyLCAwLjAwMTE5MiwgMC4wMDExOTIsIDAuMDAxMTkyIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMjc2MDU3OwotICAgIGZ1bmN0aW9uIDogIighKCgoIUFOKSBCKSBDKSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkFOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDI2NSwgMC4xMjA3MTgsIDAuMTgyODU0LCAwLjI2MDUwNCwgMC4zMzgxOTksIDAuNDE1NjAzLCAwLjQ5MzEyOSIsIFwKLSAgICAgICAgICAiMC4wNTA3NTksIDAuMTI4NzUzLCAwLjE5MDkyOCwgMC4yNjg2MTIsIDAuMzQ2MjkxLCAwLjQyMzkxNiwgMC41MDE2MyIsIFwKLSAgICAgICAgICAiMC4wNTkzMzgsIDAuMTM3MzMyLCAwLjE5OTQ4MywgMC4yNzcxNTcsIDAuMzU0ODQ0LCAwLjQzMjM2NSwgMC41MTAxMjQiLCBcCi0gICAgICAgICAgIjAuMDY1OTc5LCAwLjE0NDA5MiwgMC4yMDYyMjIsIDAuMjgzOTAyLCAwLjM2MTU3NywgMC40MzkyODQsIDAuNTE2ODMyIiwgXAotICAgICAgICAgICIwLjA3MTM1LCAwLjE0OTU0NywgMC4yMTE2NTIsIDAuMjg5MzI5LCAwLjM2Njk5NCwgMC40NDQ2MzcsIDAuNTIyNDc4IiwgXAotICAgICAgICAgICIwLjA3ODUxMSwgMC4xNTY4MjksIDAuMjE4OTE4LCAwLjI5NjU0NywgMC4zNzQxNDEsIDAuNDUxOTQ4LCAwLjUyOTQzOSIsIFwKLSAgICAgICAgICAiMC4wODM3ODMsIDAuMTYxOTQyLCAwLjIyMzk3MiwgMC4zMDE1MzYsIDAuMzc5MjcxLCAwLjQ1Njc2NSwgMC41MzQ0NDQiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQ2NTMxLCAwLjIwODM4OCwgMC4zMzkyMTgsIDAuNTAyODcxLCAwLjY2NjM0NiwgMC44Mjk3NjYsIDAuOTkzMTk1IiwgXAotICAgICAgICAgICIwLjA0NjYxNCwgMC4yMDgzOTUsIDAuMzM5MTYyLCAwLjUwMjgxOSwgMC42NjYzMywgMC44Mjk5MDQsIDAuOTkzMzg4IiwgXAotICAgICAgICAgICIwLjA0NzUxNiwgMC4yMDg0NzEsIDAuMzM5MTY4LCAwLjUwMjc1MiwgMC42NjYzMjIsIDAuODI5NjMyLCAwLjk5MzQ0NyIsIFwKLSAgICAgICAgICAiMC4wNDg1OSwgMC4yMDg1OTcsIDAuMzM5MjAyLCAwLjUwMjc1MiwgMC42NjY0NTYsIDAuODI5OTAzLCAwLjk5MzQwMSIsIFwKLSAgICAgICAgICAiMC4wNDk3MDksIDAuMjA4Nzc0LCAwLjMzOTI1NSwgMC41MDI4NDcsIDAuNjY2MjAyLCAwLjgyOTk2LCAwLjk5Mzc5MSIsIFwKLSAgICAgICAgICAiMC4wNTEyMzQsIDAuMjA5MDU5LCAwLjMzOTM1NSwgMC41MDI4NTcsIDAuNjY2MzYyLCAwLjgzMDAzMSwgMC45OTMwOTkiLCBcCi0gICAgICAgICAgIjAuMDUyNzg3LCAwLjIwOTMzNywgMC4zMzk0NDEsIDAuNTAyODAyLCAwLjY2NjIwNiwgMC44MzAxNjUsIDAuOTkzMTQ2Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3MzEyMiwgMC4yNjIyOTksIDAuNDEzMTc0LCAwLjYwMjE4NCwgMC43OTEwNjYsIDAuOTc5NDg3LCAxLjE2NzgyIiwgXAotICAgICAgICAgICIwLjA4MDk5MywgMC4yNzAwOTQsIDAuNDIxMjQ3LCAwLjYxMDA2NCwgMC43OTg3NDcsIDAuOTg4MTk5LCAxLjE3NjI0IiwgXAotICAgICAgICAgICIwLjA4ODk5LCAwLjI3ODE2NiwgMC40Mjk0MjksIDAuNjE4MDkyLCAwLjgwNjgwNiwgMC45OTY3OTgsIDEuMTg0OCIsIFwKLSAgICAgICAgICAiMC4wOTUwMywgMC4yODQzNjksIDAuNDM1NSwgMC42MjQxNSwgMC44MTM3MDMsIDEuMDAyNzIsIDEuMTkwNTQiLCBcCi0gICAgICAgICAgIjAuMDk5ODAyLCAwLjI4OTAzLCAwLjQ0MDExMSwgMC42Mjg5NSwgMC44MTc5MjQsIDEuMDA2NTIsIDEuMTk2MyIsIFwKLSAgICAgICAgICAiMC4xMDU5NzEsIDAuMjk1MTA2LCAwLjQ0NjQyOCwgMC42MzUxMjYsIDAuODIzOTksIDEuMDEyOSwgMS4yMDE0NyIsIFwKLSAgICAgICAgICAiMC4xMTA1NDIsIDAuMjk5NjAxLCAwLjQ1MDY5NSwgMC42Mzk1NTcsIDAuODI4NjkzLCAxLjAxNzUzLCAxLjIwNjIyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5OTc1NiwgMC40ODgyOTUsIDAuODAwNjk5LCAxLjE4ODQyLCAxLjU3NjYyLCAxLjk2OTM3LCAyLjM1NTMxIiwgXAotICAgICAgICAgICIwLjA5OTc1OSwgMC40ODkwNjUsIDAuODAxMjI3LCAxLjE4OTA1LCAxLjU4MDY2LCAxLjk2NjI3LCAyLjM1NjQ5IiwgXAotICAgICAgICAgICIwLjA5OTgyLCAwLjQ4OTA3NiwgMC43OTk0MTgsIDEuMTkwODYsIDEuNTc4MjQsIDEuOTY2NzcsIDIuMzU1MjciLCBcCi0gICAgICAgICAgIjAuMDk5OTkyLCAwLjQ4ODM4OSwgMC43OTk0MTksIDEuMTg5MzksIDEuNTc3NjMsIDEuOTY2NzMsIDIuMzU2NjgiLCBcCi0gICAgICAgICAgIjAuMTAwMTE3LCAwLjQ4ODIyNCwgMC43OTk4NTIsIDEuMTg4ODksIDEuNTc4MTMsIDEuOTcwMzMsIDIuMzU1NDMiLCBcCi0gICAgICAgICAgIjAuMTAwNTM2LCAwLjQ4ODM4MSwgMC43OTk1MDUsIDEuMTkwODQsIDEuNTgwNjUsIDEuOTcwNjksIDIuMzYwMDMiLCBcCi0gICAgICAgICAgIjAuMTAwODE2LCAwLjQ4ODU4OCwgMC43OTk1NzYsIDEuMTkwMjEsIDEuNTc3NDIsIDEuOTY2NjQsIDIuMzYwNDQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDIzNTc4LCAwLjEwMTM2OSwgMC4xNjM1MTcsIDAuMjQxMTM5LCAwLjMxODk1NSwgMC4zOTY0NzgsIDAuNDczOTUiLCBcCi0gICAgICAgICAgIjAuMDMxODAyLCAwLjEwOTU1MSwgMC4xNzE2NjgsIDAuMjQ5MzQ4LCAwLjMyNjk5NiwgMC40MDQ4NjEsIDAuNDgyMTg4IiwgXAotICAgICAgICAgICIwLjA0MTg3NCwgMC4xMTk2NTIsIDAuMTgxNzQsIDAuMjU5MzY4LCAwLjMzNjk5MywgMC40MTQ2MTksIDAuNDkyMTUzIiwgXAotICAgICAgICAgICIwLjA0OTE3OCwgMC4xMjk5ODQsIDAuMTkyMDUsIDAuMjY5NjE3LCAwLjM0NzM0NiwgMC40MjQ5ODYsIDAuNTAyMzY4IiwgXAotICAgICAgICAgICIwLjA1NTAxNSwgMC4xNDA0OSwgMC4yMDI1NDEsIDAuMjgwMDc5LCAwLjM1NzU4NSwgMC40MzUzMywgMC41MTMzMTQiLCBcCi0gICAgICAgICAgIjAuMDYyNDYsIDAuMTU3NTk4LCAwLjIxOTMzLCAwLjI5Njg0NCwgMC4zNzQ0NSwgMC40NTIxNjYsIDAuNTI5NjUiLCBcCi0gICAgICAgICAgIjAuMDY3ODI1LCAwLjE3MjQ1MiwgMC4yMzQxODMsIDAuMzExNjAxLCAwLjM4OTA2NSwgMC40NjY2NzUsIDAuNTQ0NDUyIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0MjUzMSwgMC4yMDYyMjcsIDAuMzM3MTMxLCAwLjUwMDU0MywgMC42NjQ0MDUsIDAuODI3NjQzLCAwLjk5MDg4MSIsIFwKLSAgICAgICAgICAiMC4wNDU3MDgsIDAuMjA2MTA0LCAwLjMzNzA1OCwgMC41MDA1MDYsIDAuNjY0MTIzLCAwLjgyNzgzMiwgMC45OTExNjgiLCBcCi0gICAgICAgICAgIjAuMDUzOTc2LCAwLjIwNzMxNiwgMC4zMzY4ODUsIDAuNTAwMzk1LCAwLjY2NDIwNCwgMC44Mjc3NjgsIDAuOTkxMzUzIiwgXAotICAgICAgICAgICIwLjA2MzU5OSwgMC4yMTE1NjEsIDAuMzM4MzQxLCAwLjUwMDY3LCAwLjY2NDAzOSwgMC44Mjc2OSwgMC45OTE2MTMiLCBcCi0gICAgICAgICAgIjAuMDcyNjQ3LCAwLjIxNzQ0LCAwLjM0MTU3MSwgMC41MDE1NTMsIDAuNjYzODc4LCAwLjgyNzM4MiwgMC45OTEyNzciLCBcCi0gICAgICAgICAgIjAuMDg1Njc5LCAwLjIyOTEyNCwgMC4zNDk3MTYsIDAuNTA2MjczLCAwLjY2NTg3NSwgMC44Mjc3NywgMC45OTE0OTUiLCBcCi0gICAgICAgICAgIjAuMDk1Nzk3LCAwLjI0MDY0OCwgMC4zNTg1MDksIDAuNTEyMjkzLCAwLjY2OTcwOSwgMC44MzAwNzksIDAuOTkxNTI2Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1Mzk0NiwgMC4yNDI5NTMsIDAuMzk0MjQ5LCAwLjU4MzE4NCwgMC43NzE4OTUsIDAuOTYxMTE4LCAxLjE0OTM1IiwgXAotICAgICAgICAgICIwLjA2MDE4MywgMC4yNDk0ODMsIDAuNDAwNTU4LCAwLjU4OTI0OSwgMC43Nzg0MDIsIDAuOTY2NzMxLCAxLjE1NTU3IiwgXAotICAgICAgICAgICIwLjA2ODMxMywgMC4yNTc3NTMsIDAuNDA5MDQ4LCAwLjU5ODIxMiwgMC43ODY1NTcsIDAuOTc1ODUyLCAxLjE2NDMiLCBcCi0gICAgICAgICAgIjAuMDc2NTc0LCAwLjI2NTM0MSwgMC40MTcxMzIsIDAuNjA1OTczLCAwLjc5NDgwOSwgMC45ODQyMjUsIDEuMTczMDQiLCBcCi0gICAgICAgICAgIjAuMDg0Mjk1LCAwLjI3NDI2OSwgMC40MjUzNzMsIDAuNjE0NzA0LCAwLjgwMzE4LCAwLjk5MTg5MywgMS4xODA4NCIsIFwKLSAgICAgICAgICAiMC4wOTQ5OTgsIDAuMjg3NTA0LCAwLjQzODY5OSwgMC42Mjc1NTMsIDAuODE2MzY3LCAxLjAwNTg3LCAxLjE5Mzk3IiwgXAotICAgICAgICAgICIwLjEwMzExNSwgMC4yOTk0NDEsIDAuNDUwNDE1LCAwLjYzODc5MywgMC44MjgxMjcsIDEuMDE2OTEsIDEuMjA2MTYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk5NjA0LCAwLjQ4ODU3MywgMC43OTk0OTksIDEuMTg4NDYsIDEuNTc3MjQsIDEuOTY2NDksIDIuMzU1MDIiLCBcCi0gICAgICAgICAgIjAuMDk5NzQ0LCAwLjQ4OTM1MywgMC44MDExNDUsIDEuMTkwMjEsIDEuNTc3NTYsIDEuOTY3NTIsIDIuMzU2ODIiLCBcCi0gICAgICAgICAgIjAuMTAzMDM0LCAwLjQ4OTM3MywgMC43OTk4MDQsIDEuMTg4NTEsIDEuNTc4MzEsIDEuOTY2MTgsIDIuMzU0OTEiLCBcCi0gICAgICAgICAgIjAuMTA4MjE4LCAwLjQ4OTA3MiwgMC44MDEwODYsIDEuMTg5ODIsIDEuNTgwNTksIDEuOTY2MjQsIDIuMzU1MDgiLCBcCi0gICAgICAgICAgIjAuMTE0MzA5LCAwLjQ4OTkxOSwgMC44MDA2ODQsIDEuMTg4MzcsIDEuNTc4OSwgMS45NjcyMiwgMi4zNTYzMyIsIFwKLSAgICAgICAgICAiMC4xMjUxODksIDAuNDkyMzM3LCAwLjc5OTc2MiwgMS4xODg4NSwgMS41Nzk4LCAxLjk2NjI3LCAyLjM1ODkzIiwgXAotICAgICAgICAgICIwLjEzNDc5MSwgMC40OTcwODgsIDAuODAxNjk0LCAxLjE5MDIyLCAxLjU3OCwgMS45NjY4NCwgMi4zNTUzMiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjI0NTMsIDAuMTAwMzAyLCAwLjE2MjUwMywgMC4yNDA0NDEsIDAuMzE4MTM5LCAwLjM5NjEyLCAwLjQ3Mzc2NyIsIFwKLSAgICAgICAgICAiMC4wMzA3MSwgMC4xMDg1NzQsIDAuMTcwODc3LCAwLjI0ODYwNywgMC4zMjY2MDcsIDAuNDA0MDg4LCAwLjQ4MjAzNSIsIFwKLSAgICAgICAgICAiMC4wNDA0NDMsIDAuMTE5MDMxLCAwLjE4MTMzOCwgMC4yNTkwMTQsIDAuMzM2ODAzLCAwLjQxNDY0NSwgMC40OTIzODIiLCBcCi0gICAgICAgICAgIjAuMDQ3NDY0LCAwLjEyOTA5OCwgMC4xOTEyNzIsIDAuMjY5MDQ4LCAwLjM0NjgzNCwgMC40MjQ5MTYsIDAuNTAyNDA1IiwgXAotICAgICAgICAgICIwLjA1MzA1MSwgMC4xMzk2MiwgMC4yMDE3NzgsIDAuMjc5NTIyLCAwLjM1NzE2NSwgMC40MzUwMTIsIDAuNTEzMDcxIiwgXAotICAgICAgICAgICIwLjA2MDA3NSwgMC4xNTY2MDYsIDAuMjE4NTg1LCAwLjI5NjMwNSwgMC4zNzM5NjEsIDAuNDUxMTk5LCAwLjUyOTU1MyIsIFwKLSAgICAgICAgICAiMC4wNjUxNjcsIDAuMTcxMzkyLCAwLjIzMzMzLCAwLjMxMDk1OCwgMC4zODg0OTUsIDAuNDY2MzE0LCAwLjU0NDIyNiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDEyNDYsIDAuMjA1ODQ3LCAwLjMzNzQ3NCwgMC41MDE3NzcsIDAuNjY2NzE4LCAwLjgzMDcyMywgMC45OTU0MTMiLCBcCi0gICAgICAgICAgIjAuMDQ0NTIzLCAwLjIwNTg4NCwgMC4zMzczNCwgMC41MDE4NDEsIDAuNjY2MjU2LCAwLjgzMDUxLCAwLjk5NTQzIiwgXAotICAgICAgICAgICIwLjA1MzE3NywgMC4yMDcyMSwgMC4zMzczNDYsIDAuNTAyMzgyLCAwLjY2NjAxOSwgMC44MzEyMDksIDAuOTk0ODU5IiwgXAotICAgICAgICAgICIwLjA2Mjc1LCAwLjIxMTQ2MiwgMC4zMzkxMzksIDAuNTAxNzI0LCAwLjY2NjAxMywgMC44MzA3MzIsIDAuOTk1OTk1IiwgXAotICAgICAgICAgICIwLjA3MTcxMywgMC4yMTcwNDgsIDAuMzQyNDc3LCAwLjUwMzUwNCwgMC42NjY5MjQsIDAuODMxNzI2LCAwLjk5NTM0IiwgXAotICAgICAgICAgICIwLjA4NDYyOSwgMC4yMjg1NjEsIDAuMzUwMjU0LCAwLjUwNzQ1NCwgMC42NjkxMzcsIDAuODMwOTA4LCAwLjk5NTcyIiwgXAotICAgICAgICAgICIwLjA5NDY1OSwgMC4yNDAyMTUsIDAuMzU4OTI1LCAwLjUxNDMyMSwgMC42NzMwNTUsIDAuODMzMzI3LCAwLjk5NTc3Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1MDkxMiwgMC4yMzk5MjksIDAuMzkwODcxLCAwLjU3OTY0NiwgMC43NjkzODksIDAuOTU3NTIyLCAxLjE0NjMiLCBcCi0gICAgICAgICAgIjAuMDU3ODI2LCAwLjI0Njk5NSwgMC4zOTgwNywgMC41ODY4MjcsIDAuNzc1NzQsIDAuOTY0MzQ3LCAxLjE1MzE0IiwgXAotICAgICAgICAgICIwLjA2NzEyMSwgMC4yNTYwMjUsIDAuNDA3MDIyLCAwLjU5NTg5OCwgMC43ODQ2OTksIDAuOTczMjA3LCAxLjE2MjE0IiwgXAotICAgICAgICAgICIwLjA3Njg0NCwgMC4yNjUwMTYsIDAuNDE2MTg5LCAwLjYwNTI3NCwgMC43OTM5ODcsIDAuOTgyNDgzLCAxLjE3MTUxIiwgXAotICAgICAgICAgICIwLjA4NTczNCwgMC4yNzQyMTIsIDAuNDI1MjI5LCAwLjYxNDIxNywgMC44MDI3NTUsIDAuOTkxNjE2LCAxLjE4MDk0IiwgXAotICAgICAgICAgICIwLjA5ODEyOCwgMC4yODkxNzUsIDAuNDM5OTg0LCAwLjYyODY4NywgMC44MTczMjcsIDEuMDA2ODMsIDEuMTk0ODgiLCBcCi0gICAgICAgICAgIjAuMTA3MjA1LCAwLjMwMjQyOCwgMC40NTMwNjIsIDAuNjM5Mjc1LCAwLjgzMDE4NSwgMS4wMTg5MywgMS4yMDc2NCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTk0MzMsIDAuNDg5NDA5LCAwLjgwMDY5NiwgMS4xODg5NCwgMS41Nzc2NiwgMS45NjYxMywgMi4zNTYzOCIsIFwKLSAgICAgICAgICAiMC4wOTk5MDIsIDAuNDg4NDY0LCAwLjgwMDcwNCwgMS4xOTAyNiwgMS41ODA3MiwgMS45Njc0MywgMi4zNTg4OCIsIFwKLSAgICAgICAgICAiMC4xMDQ0NDksIDAuNDg5NDA0LCAwLjgwMTA4MywgMS4xODg1MywgMS41Nzc5NSwgMS45Njc1OCwgMi4zNTY2OCIsIFwKLSAgICAgICAgICAiMC4xMTEyNiwgMC40ODg0MTEsIDAuODAwMTIsIDEuMTg4OTksIDEuNTc4MTQsIDEuOTY5MzIsIDIuMzU2NCIsIFwKLSAgICAgICAgICAiMC4xMTkwMDksIDAuNDg5NDY1LCAwLjgwMDY4NywgMS4xODg0NiwgMS41ODA1NSwgMS45NzA0LCAyLjM1NTgxIiwgXAotICAgICAgICAgICIwLjEzMjIxNCwgMC40OTM3OSwgMC44MDEwMzEsIDEuMTg4NzUsIDEuNTc4NDMsIDEuOTY2MjQsIDIuMzU2NjMiLCBcCi0gICAgICAgICAgIjAuMTQzNzEzLCAwLjQ5OTkzMywgMC44MDM3MjksIDEuMTkwNzcsIDEuNTc5NzgsIDEuOTcwMTksIDIuMzU5OTQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2MTc5LCAwLjAwNjE4NSwgMC4wMDYxODUsIDAuMDA2MTg4LCAwLjAwNjE4OCwgMC4wMDYxODgsIDAuMDA2MTg4IiwgXAotICAgICAgICAgICIwLjAwNjE3MiwgMC4wMDYxODUsIDAuMDA2MTg2LCAwLjAwNjE4NywgMC4wMDYxODcsIDAuMDA2MTg2LCAwLjAwNjE4NyIsIFwKLSAgICAgICAgICAiMC4wMDYyNTgsIDAuMDA2MjY1LCAwLjAwNjI2NSwgMC4wMDYyNjYsIDAuMDA2MjY1LCAwLjAwNjI2NSwgMC4wMDYyNjYiLCBcCi0gICAgICAgICAgIjAuMDA2MzM0LCAwLjAwNjMzNywgMC4wMDYzMzcsIDAuMDA2MzM3LCAwLjAwNjMzOCwgMC4wMDYzMzcsIDAuMDA2MzM2IiwgXAotICAgICAgICAgICIwLjAwNjQ1NCwgMC4wMDY0NDYsIDAuMDA2NDQ3LCAwLjAwNjQ0NiwgMC4wMDY0NDYsIDAuMDA2NDQ0LCAwLjAwNjQ0NSIsIFwKLSAgICAgICAgICAiMC4wMDY2NTksIDAuMDA2NjQ0LCAwLjAwNjYzMSwgMC4wMDY2MjksIDAuMDA2NjM2LCAwLjAwNjYyNiwgMC4wMDY2MjciLCBcCi0gICAgICAgICAgIjAuMDA2ODc1LCAwLjAwNjgzMSwgMC4wMDY4MjUsIDAuMDA2ODIyLCAwLjAwNjgwOSwgMC4wMDY4MTgsIDAuMDA2ODE4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1MDc3LCAwLjAwNTEzNiwgMC4wMDUxNDMsIDAuMDA1MTQ3LCAwLjAwNTE0OSwgMC4wMDUxNSwgMC4wMDUxNTEiLCBcCi0gICAgICAgICAgIjAuMDA1MDU4LCAwLjAwNTEzNCwgMC4wMDUxNDQsIDAuMDA1MTQ5LCAwLjAwNTE1MiwgMC4wMDUxNTQsIDAuMDA1MTU1IiwgXAotICAgICAgICAgICIwLjAwNTEwMywgMC4wMDUxOTUsIDAuMDA1MjA5LCAwLjAwNTIxNywgMC4wMDUyMjEsIDAuMDA1MjI0LCAwLjAwNTIyNSIsIFwKLSAgICAgICAgICAiMC4wMDUxNjMsIDAuMDA1MjU5LCAwLjAwNTI3NSwgMC4wMDUyODQsIDAuMDA1Mjg5LCAwLjAwNTI5MiwgMC4wMDUyOTQiLCBcCi0gICAgICAgICAgIjAuMDA1MjQ5LCAwLjAwNTM1NSwgMC4wMDUzNjgsIDAuMDA1MzgzLCAwLjAwNTM4NCwgMC4wMDUzOTIsIDAuMDA1Mzk0IiwgXAotICAgICAgICAgICIwLjAwNTQyNCwgMC4wMDU1MzEsIDAuMDA1NTUsIDAuMDA1NTYyLCAwLjAwNTU2OCwgMC4wMDU1NzIsIDAuMDA1NTc1IiwgXAotICAgICAgICAgICIwLjAwNTU5OCwgMC4wMDU2ODcsIDAuMDA1NzA4LCAwLjAwNTcyLCAwLjAwNTcyNywgMC4wMDU3MzEsIDAuMDA1NzM0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0OTY5LCAwLjAwNDk4MSwgMC4wMDQ5ODIsIDAuMDA0OTg0LCAwLjAwNDk4MywgMC4wMDQ5ODQsIDAuMDA0OTgzIiwgXAotICAgICAgICAgICIwLjAwNDk0OSwgMC4wMDQ5NzUsIDAuMDA0OTc4LCAwLjAwNDk3OSwgMC4wMDQ5ODEsIDAuMDA0OTgyLCAwLjAwNDk4NCIsIFwKLSAgICAgICAgICAiMC4wMDQ5ODgsIDAuMDA1MDA4LCAwLjAwNSwgMC4wMDQ5OTYsIDAuMDA0OTksIDAuMDA0OTksIDAuMDA0OTg5IiwgXAotICAgICAgICAgICIwLjAwNTEsIDAuMDA1MDU1LCAwLjAwNTAzMSwgMC4wMDUwMTUsIDAuMDA1MDEyLCAwLjAwNTAwMywgMC4wMDUiLCBcCi0gICAgICAgICAgIjAuMDA1MjY0LCAwLjAwNTExNSwgMC4wMDUwNzQsIDAuMDA1MDQ5LCAwLjAwNTAzLCAwLjAwNTAyNywgMC4wMDUwMiIsIFwKLSAgICAgICAgICAiMC4wMDU1ODIsIDAuMDA1MjM5LCAwLjAwNTE1NCwgMC4wMDUxMTEsIDAuMDA1MDgzLCAwLjAwNTA2OCwgMC4wMDUwNTUiLCBcCi0gICAgICAgICAgIjAuMDA1ODk3LCAwLjAwNTM2OSwgMC4wMDUyNDMsIDAuMDA1MTcyLCAwLjAwNTEzMSwgMC4wMDUxMDksIDAuMDA1MDkzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxMTIzLCAwLjAwMTE1OSwgMC4wMDExNjIsIDAuMDAxMTY1LCAwLjAwMTE2NiwgMC4wMDExNjYsIDAuMDAxMTY2IiwgXAotICAgICAgICAgICIwLjAwMTAxLCAwLjAwMTEyMywgMC4wMDExNCwgMC4wMDExNDksIDAuMDAxMTU0LCAwLjAwMTE1NywgMC4wMDExNTkiLCBcCi0gICAgICAgICAgIjAuMDAwOTgxLCAwLjAwMTA5NCwgMC4wMDExMTksIDAuMDAxMTM0LCAwLjAwMTE0MiwgMC4wMDExNDcsIDAuMDAxMTUiLCBcCi0gICAgICAgICAgIjAuMDAxMDI2LCAwLjAwMTA4NCwgMC4wMDExMTIsIDAuMDAxMTI4LCAwLjAwMTEzNywgMC4wMDExNDIsIDAuMDAxMTQ2IiwgXAotICAgICAgICAgICIwLjAwMTEzLCAwLjAwMTEwMSwgMC4wMDExMTcsIDAuMDAxMTMsIDAuMDAxMTM4LCAwLjAwMTE0MywgMC4wMDExNDciLCBcCi0gICAgICAgICAgIjAuMDAxMzQ5LCAwLjAwMTE1OSwgMC4wMDExNDksIDAuMDAxMTUsIDAuMDAxMTUyLCAwLjAwMTE1NCwgMC4wMDExNTUiLCBcCi0gICAgICAgICAgIjAuMDAxNTg2LCAwLjAwMTI0MSwgMC4wMDEyMDMsIDAuMDAxMTg0LCAwLjAwMTE3OCwgMC4wMDExNzUsIDAuMDAxMTczIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzOTEzLCAwLjAwMzk0LCAwLjAwMzk0NCwgMC4wMDM5NDQsIDAuMDAzOTQ1LCAwLjAwMzk0NiwgMC4wMDM5NDYiLCBcCi0gICAgICAgICAgIjAuMDAzODg5LCAwLjAwMzk0OCwgMC4wMDM5NTYsIDAuMDAzOTYsIDAuMDAzOTYzLCAwLjAwMzk2NiwgMC4wMDM5NjgiLCBcCi0gICAgICAgICAgIjAuMDAzOTYyLCAwLjAwMzk2NywgMC4wMDM5NjksIDAuMDAzOTcxLCAwLjAwMzk3MSwgMC4wMDM5NzIsIDAuMDAzOTcyIiwgXAotICAgICAgICAgICIwLjAwNDAyMSwgMC4wMDQwMTYsIDAuMDA0LCAwLjAwMzk5MywgMC4wMDM5ODksIDAuMDAzOTg2LCAwLjAwMzk4NCIsIFwKLSAgICAgICAgICAiMC4wMDQxNzcsIDAuMDA0MDU0LCAwLjAwNDAzMiwgMC4wMDQwMTcsIDAuMDA0MDE4LCAwLjAwNDAwMiwgMC4wMDM5OTgiLCBcCi0gICAgICAgICAgIjAuMDA0NDksIDAuMDA0MTcyLCAwLjAwNDEwNCwgMC4wMDQwNjcsIDAuMDA0MDUxLCAwLjAwNDAzNiwgMC4wMDQwMzEiLCBcCi0gICAgICAgICAgIjAuMDA0NzgyLCAwLjAwNDMwMywgMC4wMDQxOTQsIDAuMDA0MTM1LCAwLjAwNDA5NCwgMC4wMDQwOCwgMC4wMDQwNjciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDExMTMsIDAuMDAxMTUzLCAwLjAwMTE1NywgMC4wMDExNiwgMC4wMDExNjEsIDAuMDAxMTYyLCAwLjAwMTE2MiIsIFwKLSAgICAgICAgICAiMC4wMDEwMjksIDAuMDAxMTIyLCAwLjAwMTEzOCwgMC4wMDExNDYsIDAuMDAxMTUxLCAwLjAwMTE1MywgMC4wMDExNTUiLCBcCi0gICAgICAgICAgIjAuMDAxMTA2LCAwLjAwMTEyNCwgMC4wMDExMzcsIDAuMDAxMTQ1LCAwLjAwMTE0OSwgMC4wMDExNTIsIDAuMDAxMTU0IiwgXAotICAgICAgICAgICIwLjAwMTE5MywgMC4wMDExMzksIDAuMDAxMTQxLCAwLjAwMTE0NiwgMC4wMDExNSwgMC4wMDExNTIsIDAuMDAxMTU0IiwgXAotICAgICAgICAgICIwLjAwMTM4MiwgMC4wMDExOTUsIDAuMDAxMTgxLCAwLjAwMTE3MywgMC4wMDExNywgMC4wMDExNjksIDAuMDAxMTY4IiwgXAotICAgICAgICAgICIwLjAwMTc0NiwgMC4wMDEzMTUsIDAuMDAxMjY1LCAwLjAwMTIzMSwgMC4wMDEyMTQsIDAuMDAxMjA0LCAwLjAwMTE5NyIsIFwKLSAgICAgICAgICAiMC4wMDIwNzksIDAuMDAxNDUyLCAwLjAwMTM0OCwgMC4wMDEyODMsIDAuMDAxMjU5LCAwLjAwMTI0OSwgMC4wMDEyMzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IE5PUjJYOCAqCi0gKiAtLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKE5PUjJYOCkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAxLjI1OTc2OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDY1MTM3ODsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDY0ODQyODsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDY1MTM3ODsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDM2NzEsIDAuMDAzOTI1LCAwLjAwNCwgMC4wMDQwMDksIDAuMDA0MDM1LCAwLjAwNDA3MywgMC4wMDQwMTkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDQyODIsIDAuMDA0Mjg1LCAwLjAwNDI4NywgMC4wMDQyODgsIDAuMDA0Mjg4LCAwLjAwNDI4OSwgMC4wMDQyODkiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwNjc1NTM0OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwNjc1NTM0OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwNjc1NDYxOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDk5MywgMC4wMDA5OTQsIDAuMDAwOTkzLCAwLjAwMDk5NCwgMC4wMDA5OTQsIDAuMDAwOTk0LCAwLjAwMDk5NCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzAzOSwgMC4wMDMwMzgsIDAuMDAzMDM5LCAwLjAwMzAzOSwgMC4wMDMwMzgsIDAuMDAzMDM3LCAwLjAwMzAzNyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAxLjQ4NTQ1OwotICAgIGZ1bmN0aW9uIDogIighKEErQikpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxNzE4NSwgMC4wNjgwMjcsIDAuMTE4NjEyLCAwLjE1NDgyMiwgMC4yMTI5MTQsIDAuMjYzMjk1LCAwLjMzNTY4OSIsIFwKLSAgICAgICAgICAiMC4wMjMxMjYsIDAuMDc0MTg5LCAwLjEyNDg4NSwgMC4xNjExMjcsIDAuMjE4OTE3LCAwLjI2OTU5NCwgMC4zNDIyMzkiLCBcCi0gICAgICAgICAgIjAuMDI4MjQzLCAwLjA4MTU5MywgMC4xMzI0MDcsIDAuMTY4NTg0LCAwLjIyNjU2MiwgMC4yNzcxNzUsIDAuMzQ5NTA2IiwgXAotICAgICAgICAgICIwLjAzMTk2NSwgMC4wODkwOTMsIDAuMTM5ODM3LCAwLjE3NjA4LCAwLjIzNDEwNCwgMC4yODQxNDcsIDAuMzU3MDQ1IiwgXAotICAgICAgICAgICIwLjAzNDc3MywgMC4wOTY1OTcsIDAuMTQ3NjkxLCAwLjE4MzUxNywgMC4yNDE0ODQsIDAuMjkyMDc5LCAwLjM2NDQzMyIsIFwKLSAgICAgICAgICAiMC4wMzg0MDgsIDAuMTA3MTc1LCAwLjE1OTQxOSwgMC4xOTU4MjMsIDAuMjUzNDA4LCAwLjMwNDE1LCAwLjM3Njc3NSIsIFwKLSAgICAgICAgICAiMC4wNDExNjgsIDAuMTE1MjcsIDAuMTY5ODE0LCAwLjIwNjIsIDAuMjY0NjAxLCAwLjMxNDU3NywgMC4zODcwMzMiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjYzNDMsIDAuMTMzMDk2LCAwLjI0MDAyNCwgMC4zMTYxNzQsIDAuNDM4NDY0LCAwLjU0NTAyNCwgMC42OTc4NzIiLCBcCi0gICAgICAgICAgIjAuMDI4ODQsIDAuMTMzMjI3LCAwLjI0MDI4LCAwLjMxNjE2NywgMC40Mzg1MDQsIDAuNTQ1Mjk1LCAwLjY5NzkxMyIsIFwKLSAgICAgICAgICAiMC4wMzUwODIsIDAuMTM1NTc2LCAwLjI0MDQ3OCwgMC4zMTY3ODMsIDAuNDM4MzA5LCAwLjU0NTAwNCwgMC42OTc1NTkiLCBcCi0gICAgICAgICAgIjAuMDQwNzUzLCAwLjEzOTQzNCwgMC4yNDI4NDYsIDAuMzE3NDY3LCAwLjQzODUyOSwgMC41NDUzMjQsIDAuNjk3MjM5IiwgXAotICAgICAgICAgICIwLjA0NjI1MSwgMC4xNDQ0ODcsIDAuMjQ2MzY0LCAwLjMxOTg1MSwgMC40Mzk5NjUsIDAuNTQ2NTU1LCAwLjY5ODkiLCBcCi0gICAgICAgICAgIjAuMDU0NzMyLCAwLjE1Mzk0OCwgMC4yNTI5MTIsIDAuMzI1OTg5LCAwLjQ0NDUyLCAwLjU0ODU5MSwgMC42OTkwNDEiLCBcCi0gICAgICAgICAgIjAuMDYxMzgxLCAwLjE2MzI0LCAwLjI1OTk5MiwgMC4zMzE4NjMsIDAuNDQ5MDM2LCAwLjU1Mjk5MiwgMC43MDIyMDIiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTEyNDQsIDAuMDM5NjkxLCAwLjA2NzgyOCwgMC4wODc5MTEsIDAuMTIwMDM0LCAwLjE0ODE2MSwgMC4xODgyNzUiLCBcCi0gICAgICAgICAgIjAuMDE5MTYsIDAuMDQ4MTc0LCAwLjA3NjMzMSwgMC4wOTYzNzcsIDAuMTI4NDg3LCAwLjE1NjU5OSwgMC4xOTY3MTUiLCBcCi0gICAgICAgICAgIjAuMDI1NTI5LCAwLjA1OTAyMiwgMC4wODY5NSwgMC4xMDcwMiwgMC4xMzkyNzgsIDAuMTY3MTk5LCAwLjIwNzM1IiwgXAotICAgICAgICAgICIwLjAzMDIxMSwgMC4wNjk1MjQsIDAuMDk3OTE2LCAwLjExNzc1NiwgMC4xNDk3NjUsIDAuMTc3ODI2LCAwLjIxODA1OSIsIFwKLSAgICAgICAgICAiMC4wMzM4NDcsIDAuMDc4ODc0LCAwLjEwODc4LCAwLjEyODgxMSwgMC4xNjA1MDcsIDAuMTg4NTU1LCAwLjIyODYzNiIsIFwKLSAgICAgICAgICAiMC4wMzg5NzYsIDAuMDkxNTM2LCAwLjEyNTE4OCwgMC4xNDU5MjUsIDAuMTc3NzA1LCAwLjIwNTczOCwgMC4yNDU2MzgiLCBcCi0gICAgICAgICAgIjAuMDQyNTI0LCAwLjEwMDQ1MSwgMC4xMzc4NzQsIDAuMTYwODE4LCAwLjE5MzA1MiwgMC4yMjA5MzUsIDAuMjYwOTU1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE1NjY5LCAwLjA3MzQ4NCwgMC4xMzEzOTUsIDAuMTcyNzY1LCAwLjIzODk2NiwgMC4yOTY5OTMsIDAuMzc5Njc3IiwgXAotICAgICAgICAgICIwLjAyMTQ3MywgMC4wNzQ2MTEsIDAuMTMxNDU3LCAwLjE3MjgwNiwgMC4yMzg5ODcsIDAuMjk2OTI5LCAwLjM3OTcxNSIsIFwKLSAgICAgICAgICAiMC4wMjk5ODYsIDAuMDgwNTU1LCAwLjEzNDYyMSwgMC4xNzQ0NTcsIDAuMjM5MzIsIDAuMjk2OTU5LCAwLjM3OTcyOCIsIFwKLSAgICAgICAgICAiMC4wMzY5MDMsIDAuMDg4NzY1LCAwLjE0MDQxMywgMC4xNzkxMjEsIDAuMjQyMjM3LCAwLjI5ODU2NywgMC4zODAxNzUiLCBcCi0gICAgICAgICAgIjAuMDQzMjY0LCAwLjA5NzY3NCwgMC4xNDc1NiwgMC4xODUxNTksIDAuMjQ2OTcsIDAuMzAyMTkxLCAwLjM4MjMzMiIsIFwKLSAgICAgICAgICAiMC4wNTIxMTMsIDAuMTEyMTc2LCAwLjE2MTU1NSwgMC4xOTc2NjEsIDAuMjU3MTQ0LCAwLjMxMDgyNiwgMC4zODkwMTgiLCBcCi0gICAgICAgICAgIjAuMDU5NDYxLCAwLjEyNDgyNSwgMC4xNzQ1NjgsIDAuMjA5Mzc0LCAwLjI2NzM4NSwgMC4zMTk4MzUsIDAuMzk2NDkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTQ4MDcsIDAuMDY1NjksIDAuMTE2NDE4LCAwLjE1MjUxNywgMC4yMTA0NjIsIDAuMjYwODc4LCAwLjMzMzY1OSIsIFwKLSAgICAgICAgICAiMC4wMjIyNDcsIDAuMDczMjM3LCAwLjEyMzg4LCAwLjE2MDE1NCwgMC4yMTgwMDQsIDAuMjY4NTU2LCAwLjM0MDg0MyIsIFwKLSAgICAgICAgICAiMC4wMjg5NzksIDAuMDgyODc1LCAwLjEzMzQ5NiwgMC4xNjk1MTgsIDAuMjI3NTI0LCAwLjI3ODEwNywgMC4zNTA0NDQiLCBcCi0gICAgICAgICAgIjAuMDMzNTcyLCAwLjA5Mjg3LCAwLjE0MzQwOSwgMC4xNzk1NDQsIDAuMjM3NDA5LCAwLjI4NzkzNCwgMC4zNjA2MzUiLCBcCi0gICAgICAgICAgIjAuMDM3NTU0LCAwLjEwMjk1NSwgMC4xNTMxMzIsIDAuMTg5MTcyLCAwLjI0NzAwMSwgMC4yOTc0MzksIDAuMzY5NzMyIiwgXAotICAgICAgICAgICIwLjA0MjU1OCwgMC4xMTcyODQsIDAuMTY4OTA4LCAwLjIwNDgwNiwgMC4yNjI0NjEsIDAuMzEzMDIxLCAwLjM4NTI4MyIsIFwKLSAgICAgICAgICAiMC4wNDY0ODMsIDAuMTI4NDY1LCAwLjE4MzQwMiwgMC4yMTkwMjEsIDAuMjc2NjMsIDAuMzI3MDcsIDAuMzk5MTg1Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDI2Mjg3LCAwLjEzMzMyMywgMC4yMzk5OTcsIDAuMzE2MzE2LCAwLjQzODI0MSwgMC41NDUzMzYsIDAuNjk3OTM2IiwgXAotICAgICAgICAgICIwLjAzMTI1NywgMC4xMzMyMTUsIDAuMjQwMDA4LCAwLjMxNjE4NSwgMC40MzgyMzcsIDAuNTQ1MDA0LCAwLjY5Nzk4IiwgXAotICAgICAgICAgICIwLjA0MDA1NiwgMC4xMzY4NzcsIDAuMjQwOTAxLCAwLjMxNjEwOSwgMC40MzksIDAuNTQ1OTExLCAwLjY5ODA0OSIsIFwKLSAgICAgICAgICAiMC4wNDY4MzIsIDAuMTQyOTI3LCAwLjI0NDE0OSwgMC4zMTg0NSwgMC40MzgzNDUsIDAuNTQ2MDAxLCAwLjY5Nzg2MSIsIFwKLSAgICAgICAgICAiMC4wNTI2NjUsIDAuMTUwNTMsIDAuMjQ5MDgsIDAuMzIxODk3LCAwLjQ0MDIyMiwgMC41NDY0MzcsIDAuNjk4NzM0IiwgXAotICAgICAgICAgICIwLjA2MTI0MiwgMC4xNjM5LCAwLjI1OTQxNCwgMC4zMzAzMDksIDAuNDQ2NDYzLCAwLjU1MDQyMSwgMC43MDAyNjciLCBcCi0gICAgICAgICAgIjAuMDY4MzgzLCAwLjE3NjI0OCwgMC4yNjk3NzUsIDAuMzM5MTEzLCAwLjQ1MzMxMSwgMC41NTUxNDQsIDAuNzAzNzY0Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA5NzI2LCAwLjAzNzk4NSwgMC4wNjYxMDIsIDAuMDg2MTY2LCAwLjExODMxMywgMC4xNDYzODIsIDAuMTg2NjM5IiwgXAotICAgICAgICAgICIwLjAxNjk3MiwgMC4wNDY0NjIsIDAuMDc0NjE5LCAwLjA5NDczMSwgMC4xMjY5MjQsIDAuMTU0OTc1LCAwLjE5NTA3OCIsIFwKLSAgICAgICAgICAiMC4wMjIzMDcsIDAuMDU3MjU1LCAwLjA4NTM4OSwgMC4xMDUyODksIDAuMTM3NDYzLCAwLjE2NTU2MiwgMC4yMDU3MjciLCBcCi0gICAgICAgICAgIjAuMDI2MDc2LCAwLjA2NzU4NiwgMC4wOTU5MjgsIDAuMTE1OTU0LCAwLjE0ODAyNywgMC4xNzYxMjgsIDAuMjE2MjA3IiwgXAotICAgICAgICAgICIwLjAyOTAxLCAwLjA3NjgzMiwgMC4xMDY3OTgsIDAuMTI2NzgsIDAuMTU4NzcyLCAwLjE4Njc5MywgMC4yMjY4NzkiLCBcCi0gICAgICAgICAgIjAuMDMzMDE0LCAwLjA4ODE3OCwgMC4xMjM1MDEsIDAuMTQ0NDg4LCAwLjE3NjI4NywgMC4yMDQzMzksIDAuMjQ0MjQ1IiwgXAotICAgICAgICAgICIwLjAzNTU2MywgMC4wOTcwNTksIDAuMTM2NTY1LCAwLjE1OTQ1OSwgMC4xOTA5MjYsIDAuMjE4ODE2LCAwLjI1ODg2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEzMzc5LCAwLjA3MTM0OCwgMC4xMjkxMTUsIDAuMTcwNTEsIDAuMjM2OTY5LCAwLjI5NDU4MSwgMC4zNzc2NzciLCBcCi0gICAgICAgICAgIjAuMDE5NzA1LCAwLjA3MjM1NSwgMC4xMjkxNTEsIDAuMTcwNTA5LCAwLjIzNjgsIDAuMjk0NzEsIDAuMzc3NDEzIiwgXAotICAgICAgICAgICIwLjAyODAwNCwgMC4wNzg1MjIsIDAuMTMyNTkyLCAwLjE3MjU0OSwgMC4yMzc2MjUsIDAuMjk0NjU5LCAwLjM3NzM1NiIsIFwKLSAgICAgICAgICAiMC4wMzQ3OTcsIDAuMDg2ODIzLCAwLjEzODU1MiwgMC4xNzcxODgsIDAuMjQwNDQyLCAwLjI5NjM0MSwgMC4zNzg1ODMiLCBcCi0gICAgICAgICAgIjAuMDQwODk4LCAwLjA5NTY4MiwgMC4xNDU4NjIsIDAuMTgzNTc4LCAwLjI0NTMxOCwgMC4zMDA1OTIsIDAuMzgwODM4IiwgXAotICAgICAgICAgICIwLjA0OTk5MSwgMC4xMTE5NzYsIDAuMTU5MTUzLCAwLjE5NTI2MiwgMC4yNTUxOSwgMC4zMDg4OCwgMC4zODY2OTUiLCBcCi0gICAgICAgICAgIjAuMDU3NDcxLCAwLjEyNDA0MSwgMC4xNzE3OCwgMC4yMDYzMzUsIDAuMjY1OTQyLCAwLjMxODE4NywgMC4zOTUyNCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE2OTcxLCAwLjAxNzE4OCwgMC4wMTcyMTgsIDAuMDE3MjI2LCAwLjAxNzIzNSwgMC4wMTcyMzUsIDAuMDE3MjQzIiwgXAotICAgICAgICAgICIwLjAxNjYzMSwgMC4wMTY5ODcsIDAuMDE3MDg2LCAwLjAxNzEyMywgMC4wMTcxNTcsIDAuMDE3MTgxLCAwLjAxNzE5MSIsIFwKLSAgICAgICAgICAiMC4wMTY3NjcsIDAuMDE2OTE0LCAwLjAxNzAxOSwgMC4wMTcwODYsIDAuMDE3MTAyLCAwLjAxNzEzMiwgMC4wMTcxNTUiLCBcCi0gICAgICAgICAgIjAuMDE3MTk0LCAwLjAxNzAwOCwgMC4wMTcwMzUsIDAuMDE3MDksIDAuMDE3MTE5LCAwLjAxNzEwNSwgMC4wMTcxNjEiLCBcCi0gICAgICAgICAgIjAuMDE3ODI3LCAwLjAxNzIyOSwgMC4wMTcxOTQsIDAuMDE3MTgsIDAuMDE3MTkyLCAwLjAxNzE5MywgMC4wMTcxODIiLCBcCi0gICAgICAgICAgIjAuMDE5MTgzLCAwLjAxNzgxMiwgMC4wMTc1NTEsIDAuMDE3NDc0LCAwLjAxNzM5MywgMC4wMTczNzUsIDAuMDE3MzQ2IiwgXAotICAgICAgICAgICIwLjAyMDU4MywgMC4wMTg0NzcsIDAuMDE3OTkzLCAwLjAxNzg0NiwgMC4wMTc2OTcsIDAuMDE3NjA1LCAwLjAxNzU0NiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyMTg0LCAwLjAwMjI5MywgMC4wMDIzMDgsIDAuMDAyMzEzLCAwLjAwMjMxNywgMC4wMDIzMTgsIDAuMDAyMzIxIiwgXAotICAgICAgICAgICIwLjAwMjAwNSwgMC4wMDIxNjMsIDAuMDAyMTkyLCAwLjAwMjE3MSwgMC4wMDIxODUsIDAuMDAyMTkzLCAwLjAwMjIiLCBcCi0gICAgICAgICAgIjAuMDAyNTIxLCAwLjAwMjMzNiwgMC4wMDIyNjEsIDAuMDAyMjUsIDAuMDAyMjQzLCAwLjAwMjIyOSwgMC4wMDIyMjgiLCBcCi0gICAgICAgICAgIjAuMDAzMzg0LCAwLjAwMjcyNiwgMC4wMDI2NDIsIDAuMDAyNDU3LCAwLjAwMjM5NCwgMC4wMDIzNTksIDAuMDAyNDM1IiwgXAotICAgICAgICAgICIwLjAwNDU0MiwgMC4wMDMxMDQsIDAuMDAyNzU1LCAwLjAwMjY1MywgMC4wMDI2MTcsIDAuMDAyNTQsIDAuMDAyNDc3IiwgXAotICAgICAgICAgICIwLjAwNjMwNiwgMC4wMDQyMzUsIDAuMDAzNzkzLCAwLjAwMzQ5OSwgMC4wMDMxOTQsIDAuMDAzMDQxLCAwLjAwMjg4MSIsIFwKLSAgICAgICAgICAiMC4wMDgwNTksIDAuMDA1Mzk1LCAwLjAwNDU5MiwgMC4wMDQxNTcsIDAuMDAzNzI2LCAwLjAwMzQ3LCAwLjAwMzI0OSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEzMjcsIDAuMDEzNTk1LCAwLjAxMzYzOSwgMC4wMTM2NTIsIDAuMDEzNjY0LCAwLjAxMzY3MSwgMC4wMTM2OCIsIFwKLSAgICAgICAgICAiMC4wMTMxOTIsIDAuMDEzNDExLCAwLjAxMzUxMiwgMC4wMTM1NDksIDAuMDEzNTg1LCAwLjAxMzYwNywgMC4wMTM2MjQiLCBcCi0gICAgICAgICAgIjAuMDEzNzc3LCAwLjAxMzQ4MSwgMC4wMTM1MTgsIDAuMDEzNTQ2LCAwLjAxMzU3MiwgMC4wMTM1OSwgMC4wMTM2MDkiLCBcCi0gICAgICAgICAgIjAuMDE0NjAyLCAwLjAxMzc1MiwgMC4wMTM2OCwgMC4wMTM2NiwgMC4wMTM2NTIsIDAuMDEzNjUsIDAuMDEzNjQ5IiwgXAotICAgICAgICAgICIwLjAxNjAzNCwgMC4wMTQzODksIDAuMDE0MTAxLCAwLjAxNDAwNiwgMC4wMTM5MDcsIDAuMDEzODU4LCAwLjAxMzgyIiwgXAotICAgICAgICAgICIwLjAxNzM3NywgMC4wMTUyOTMsIDAuMDE0NjU3LCAwLjAxNDQ1MywgMC4wMTQyNzksIDAuMDE0MTcxLCAwLjAxNDA5NyIsIFwKLSAgICAgICAgICAiMC4wMTg5NTgsIDAuMDE2MDU2LCAwLjAxNTE5MywgMC4wMTQ4NzYsIDAuMDE0NjM3LCAwLjAxNDQ3NCwgMC4wMTQzMTYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDQwMywgMC4wMDAwMTMsIDAuMDAwMDM1LCAwLjAwMDA1LCAwLjAwMDA2OCwgMC4wMDAwNzUsIDAuMDAwMDgyIiwgXAotICAgICAgICAgICIwLjAwMDYwNywgMC4wMDAxMSwgMC4wMDAwMTEsIDAuMDAwMDQyLCAwLjAwMDA4MywgMC4wMDAxMDQsIDAuMDAwMTI0IiwgXAotICAgICAgICAgICIwLjAwMDIxMSwgMC4wMDAxMywgMC4wMDAwMjYsIDAuMDAwMDQzLCAwLjAwMDA2NSwgMC4wMDAwOTIsIDAuMDAwMTE5IiwgXAotICAgICAgICAgICIwLjAwMDcwMywgMC4wMDAyNzIsIDAuMDAwMjA4LCAwLjAwMDE4MywgMC4wMDAxODgsIDAuMDAwMTkxLCAwLjAwMDE5NSIsIFwKLSAgICAgICAgICAiMC4wMDE2NTMsIDAuMDAwNDU0LCAwLjAwMDQ4OCwgMC4wMDA0MiwgMC4wMDAzNiwgMC4wMDAzMjgsIDAuMDAwMzEzIiwgXAotICAgICAgICAgICIwLjAwMzUyOCwgMC4wMDE3MjMsIDAuMDAxMDY0LCAwLjAwMDg3NCwgMC4wMDA3MDUsIDAuMDAwNjE4LCAwLjAwMDUzMSIsIFwKLSAgICAgICAgICAiMC4wMDUxMjcsIDAuMDAyNDAxLCAwLjAwMTUxOSwgMC4wMDEyNTUsIDAuMDAxNjE2LCAwLjAwMTM3NSwgMC4wMDExNzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IE5PUjNYTCAqCi0gKiAtLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKE5PUjNYTCkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjEzMzQ3MjsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjEyNTAxOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYxMDQ2ODsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2MTI1MDE7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjU1LCAwLjAwMDI3MiwgMC4wMDAyNzksIDAuMDAwMjgzLCAwLjAwMDI4NCwgMC4wMDAyODQsIDAuMDAwMjg2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNTEsIDAuMDAwNTEsIDAuMDAwNTExLCAwLjAwMDUxMSwgMC4wMDA1MTEsIDAuMDAwNTExLCAwLjAwMDUxMSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjY1MjkzOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDY2MzgxMjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2NjUyOTM7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjQ3LCAwLjAwMDI3NywgMC4wMDAyODMsIDAuMDAwMjg1LCAwLjAwMDI4NywgMC4wMDAyODgsIDAuMDAwMjg2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzA0LCAwLjAwMDMwNCwgMC4wMDAzMDQsIDAuMDAwMzA0LCAwLjAwMDMwNCwgMC4wMDAzMDQsIDAuMDAwMzA0Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihDKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2NTk2NTY7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjU5NjU2OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDY1OTQwNDsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAwNzEsIDAuMDAwMDcxLCAwLjAwMDA3MSwgMC4wMDAwNzEsIDAuMDAwMDcxLCAwLjAwMDA3MSwgMC4wMDAwNzEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyMzYsIDAuMDAwMjM2LCAwLjAwMDIzNiwgMC4wMDAyMzYsIDAuMDAwMjM1LCAwLjAwMDIzNSwgMC4wMDAyMzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4wNzMxODk1OwotICAgIGZ1bmN0aW9uIDogIighKChBK0IpK0MpKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTU3NjgzLCAwLjE4NTA1MywgMC40MzIwOTUsIDAuODQ0NDA3LCAxLjI1NzIzLCAyLjIxNjgsIDIuNzY1OTIiLCBcCi0gICAgICAgICAgIjAuMTYyNTI1LCAwLjE5MDEwOCwgMC40MzcyMDUsIDAuODQ5ODc5LCAxLjI2MTc4LCAyLjIyMTgxLCAyLjc3MDkiLCBcCi0gICAgICAgICAgIjAuMTY3MzAyLCAwLjE5NDgsIDAuNDQyMTI1LCAwLjg1NDA4NCwgMS4yNjY1NywgMi4yMjc4OCwgMi43NzUyNiIsIFwKLSAgICAgICAgICAiMC4xNzE5MjEsIDAuMTk5NDM4LCAwLjQ0NjY4OCwgMC44NTg3NDgsIDEuMjcwNTgsIDIuMjM0MTksIDIuNzgxNTUiLCBcCi0gICAgICAgICAgIjAuMTc2NjksIDAuMjA0MTczLCAwLjQ1MTI5NCwgMC44NjMyMjgsIDEuMjc0NzMsIDIuMjM1OTksIDIuNzg1NjYiLCBcCi0gICAgICAgICAgIjAuMTg0NTE4LCAwLjIxMTcwOSwgMC40NTg4NDMsIDAuODcwNzIzLCAxLjI4MjYxLCAyLjI0NTI3LCAyLjc5MjE4IiwgXAotICAgICAgICAgICIwLjE5MTE2NiwgMC4yMTg0ODYsIDAuNDY1NjQ0LCAwLjg3ODQwNywgMS4yODkzNCwgMi4yNTAxMSwgMi43OTk4Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMxODI3MywgMC4zNzYyMDcsIDAuOTAxMDAyLCAxLjc3MTkxLCAyLjY0NjA2LCA0LjY4MTgsIDUuODQ0ODgiLCBcCi0gICAgICAgICAgIjAuMzE4MDQyLCAwLjM3NjE4NywgMC44OTk4ODgsIDEuNzcyOTYsIDIuNjQ0NTIsIDQuNjg2NjUsIDUuODQ0NzMiLCBcCi0gICAgICAgICAgIjAuMzE4MjAzLCAwLjM3NjYyLCAwLjkwMTAwNywgMS43NzE5LCAyLjY0NDI0LCA0LjY3OTgsIDUuODQ3NzciLCBcCi0gICAgICAgICAgIjAuMzE5Mzc4LCAwLjM3Njk1MiwgMC45MDA2OTksIDEuNzcyNTksIDIuNjQ1MTksIDQuNjgyNzgsIDUuODQzMiIsIFwKLSAgICAgICAgICAiMC4zMjEyMzIsIDAuMzc4NDMsIDAuOTAwNzIsIDEuNzc0NDcsIDIuNjQ2MzksIDQuNjgxNTIsIDUuODQ0MzciLCBcCi0gICAgICAgICAgIjAuMzI1MTQ1LCAwLjM4MTkyNywgMC45MDA4MjEsIDEuNzc0MjUsIDIuNjQ4MDgsIDQuNjgwMzcsIDUuODQ2MTciLCBcCi0gICAgICAgICAgIjAuMzI5NjE3LCAwLjM4NTg4OCwgMC45MDIxNjEsIDEuNzcyNDQsIDIuNjQ4MDksIDQuNjg2MzcsIDUuODQ0MzQiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU4MjM4LCAwLjA2NzkyNCwgMC4xNTQ4NzgsIDAuMjk5NjUyLCAwLjQ0NDUwMSwgMC43ODIxMzIsIDAuOTc0OTkxIiwgXAotICAgICAgICAgICIwLjA2NjM5OSwgMC4wNzYwNjgsIDAuMTYzMTAxLCAwLjMwNzc5LCAwLjQ1MjU4MSwgMC43OTAzMjIsIDAuOTgzNjMzIiwgXAotICAgICAgICAgICIwLjA3Njc0OCwgMC4wODYzNzIsIDAuMTczMDkyLCAwLjMxNzg0MSwgMC40NjI1NDUsIDAuODAwMTcsIDAuOTkzMjc4IiwgXAotICAgICAgICAgICIwLjA4NzI1NCwgMC4wOTY1NTcsIDAuMTgzMzMyLCAwLjMyODE3MiwgMC40NzI4MjEsIDAuODEwMjE3LCAxLjAwMzIzIiwgXAotICAgICAgICAgICIwLjA5NzcxNSwgMC4xMDczODcsIDAuMTkzNjQ3LCAwLjMzNzk5OCwgMC40ODMwNDUsIDAuODIwNjksIDEuMDE0MDIiLCBcCi0gICAgICAgICAgIjAuMTEyNTE5LCAwLjEyMzMwMSwgMC4yMTA1NzcsIDAuMzU0OTQ2LCAwLjQ5NzU4MiwgMC44Mzc1OTksIDEuMDI5OTkiLCBcCi0gICAgICAgICAgIjAuMTIzMzU3LCAwLjEzNTMyOCwgMC4yMjUxOTEsIDAuMzY5NTY3LCAwLjUxNDE3MSwgMC44NTE4NDQsIDEuMDQ0NzgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTEwODE4LCAwLjEzMDU4MSwgMC4zMDg3NTMsIDAuNjA1NTYsIDAuOTAyNTE2LCAxLjU5NDgxLCAxLjk5MDY2IiwgXAotICAgICAgICAgICIwLjExMTA1OCwgMC4xMzA2MjksIDAuMzA4NzMyLCAwLjYwNTY0LCAwLjkwMjQwNiwgMS41OTQ4NiwgMS45OTA4NyIsIFwKLSAgICAgICAgICAiMC4xMTU0NDQsIDAuMTM0MTM3LCAwLjMwODcwNSwgMC42MDU2OTcsIDAuOTAyNTY4LCAxLjU5NDg4LCAxLjk5MDkzIiwgXAotICAgICAgICAgICIwLjEyMjMxOCwgMC4xNDA0NzMsIDAuMzEwMzQ3LCAwLjYwNTY5OSwgMC45MDI3NCwgMS41OTUwNywgMS45OTE0MSIsIFwKLSAgICAgICAgICAiMC4xMzA1NzYsIDAuMTQ3OTI3LCAwLjMxMzk2OSwgMC42MDU2NDUsIDAuOTAyNzA3LCAxLjU5NDg4LCAxLjk5MTciLCBcCi0gICAgICAgICAgIjAuMTQ1ODIyLCAwLjE2MjE3NCwgMC4zMjI3MTksIDAuNjA4MTY1LCAwLjkwMjM0OSwgMS41OTUsIDEuOTkwNzciLCBcCi0gICAgICAgICAgIjAuMTU5NTEyLCAwLjE3NTU2MSwgMC4zMzE2MDUsIDAuNjEyNjg4LCAwLjkwMzM2OCwgMS41OTQ2NSwgMS45OTA2OSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNTU2NjMsIDAuMTgyODk5LCAwLjQzMDYzMiwgMC44NDI1MzUsIDEuMjUzODYsIDIuMjE0NDksIDIuNzYzNzciLCBcCi0gICAgICAgICAgIjAuMTYxNDUyLCAwLjE4ODk3OCwgMC40MzY1NTgsIDAuODQ4MzUxLCAxLjI2MTIxLCAyLjIyMzMyLCAyLjc3MTI4IiwgXAotICAgICAgICAgICIwLjE2ODQ1OCwgMC4xOTU5MTMsIDAuNDQzMzY2LCAwLjg1NTkxOCwgMS4yNjgwNSwgMi4yMzA0NywgMi43NzgxMSIsIFwKLSAgICAgICAgICAiMC4xNzU5MDYsIDAuMjAzMzE1LCAwLjQ1MDY3NywgMC44NjI0MjQsIDEuMjc0OTksIDIuMjM2MDcsIDIuNzgzOTYiLCBcCi0gICAgICAgICAgIjAuMTgzMDUxLCAwLjIxMDQ1MiwgMC40NTgxNzUsIDAuODcwNzYxLCAxLjI4MTM5LCAyLjI0NDkxLCAyLjc5MTQ0IiwgXAotICAgICAgICAgICIwLjE5NTIwMiwgMC4yMjIyNzcsIDAuNDY5NjM1LCAwLjg4MTM5OSwgMS4yOTQzOSwgMi4yNTM2OCwgMi44MDI0NiIsIFwKLSAgICAgICAgICAiMC4yMDUzNjIsIDAuMjMyNzA3LCAwLjQ3OTkwMSwgMC44OTE3MTgsIDEuMzA0NjYsIDIuMjY2ODYsIDIuODEzMTYiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzE4Mjc0LCAwLjM3NjY1MywgMC45MDAxMiwgMS43NzIxOSwgMi42NDQyMywgNC42ODYzNywgNS44NDQ2NSIsIFwKLSAgICAgICAgICAiMC4zMTgwNjEsIDAuMzc2MTg4LCAwLjg5OTk4NiwgMS43NzE5OCwgMi42NDU5OCwgNC42ODI5MSwgNS44NDM3OCIsIFwKLSAgICAgICAgICAiMC4zMTg1NDEsIDAuMzc2MjksIDAuODk5NjMyLCAxLjc3MjQ4LCAyLjY0NjA1LCA0LjY4Mjc3LCA1Ljg0MzEzIiwgXAotICAgICAgICAgICIwLjMxOTU1OCwgMC4zNzc0OTgsIDAuODk5NjY2LCAxLjc3NDQxLCAyLjY0NDI4LCA0LjY3OTk1LCA1Ljg0NDM1IiwgXAotICAgICAgICAgICIwLjMyMjQ0NSwgMC4zNzkwNSwgMC44OTk1ODIsIDEuNzcyNTMsIDIuNjQ3NDgsIDQuNjgxNDQsIDUuODQ0NDEiLCBcCi0gICAgICAgICAgIjAuMzI4NTc1LCAwLjM4NDE1NiwgMC45MDA5MDIsIDEuNzcxOTUsIDIuNjQ1OTksIDQuNjg2NDQsIDUuODQ0MTkiLCBcCi0gICAgICAgICAgIjAuMzM0ODE2LCAwLjM4OTk5NiwgMC45MDIzMjMsIDEuNzc0NDUsIDIuNjQ0OTUsIDQuNjgxMjEsIDUuODQ3OTQiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU2ODI3LCAwLjA2NjQ3OCwgMC4xNTMzMjMsIDAuMjk4MDY5LCAwLjQ0MjgwNSwgMC43ODA0NTYsIDAuOTczODMyIiwgXAotICAgICAgICAgICIwLjA2NTA3NywgMC4wNzQ3MzEsIDAuMTYxNTk0LCAwLjMwNjUwMSwgMC40NTE0MDUsIDAuNzg5MTM1LCAwLjk4MjI1MyIsIFwKLSAgICAgICAgICAiMC4wNzUzODIsIDAuMDg0OTcxLCAwLjE3MTYyNiwgMC4zMTY2MTgsIDAuNDYxNjY3LCAwLjc5OTI0NiwgMC45OTIxODEiLCBcCi0gICAgICAgICAgIjAuMDg2MDk0LCAwLjA5NTEyNywgMC4xODIxMDksIDAuMzI2NjA5LCAwLjQ3MTE4LCAwLjgwOTA5OSwgMS4wMDE2MSIsIFwKLSAgICAgICAgICAiMC4wOTYyOSwgMC4xMDYwMTEsIDAuMTkyNDY3LCAwLjMzNjc1MywgMC40ODE4MjYsIDAuODE4NzM4LCAxLjAxMjA5IiwgXAotICAgICAgICAgICIwLjExMTI1NywgMC4xMjIzODcsIDAuMjA4Nzg3LCAwLjM1MzEzNywgMC40OTU3MzcsIDAuODM1Mzg1LCAxLjAyODEiLCBcCi0gICAgICAgICAgIjAuMTIxODgzLCAwLjEzNDE0NywgMC4yMjM0NSwgMC4zNjc2MTQsIDAuNTEyMjc3LCAwLjg1MDA3NiwgMS4wNDI4OCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDg4MTcsIDAuMTI4NTc0LCAwLjMwNjc0LCAwLjYwMzQ3MSwgMC45MDAxNTEsIDEuNTkyNjIsIDEuOTg4NzUiLCBcCi0gICAgICAgICAgIjAuMTA5MTA1LCAwLjEyODY0MywgMC4zMDY3MzcsIDAuNjAzNjU2LCAwLjkwMDY0NywgMS41OTI4MiwgMS45ODg2NCIsIFwKLSAgICAgICAgICAiMC4xMTM0OTUsIDAuMTMyMTE5LCAwLjMwNjY4NSwgMC42MDM0OTUsIDAuOTAwNzQxLCAxLjU5MjkyLCAxLjk4OTIiLCBcCi0gICAgICAgICAgIjAuMTIwMjczLCAwLjEzODc1LCAwLjMwODM5NiwgMC42MDM2NzksIDAuOTAwNTUyLCAxLjU5MywgMS45ODk2OCIsIFwKLSAgICAgICAgICAiMC4xMjg3OSwgMC4xNDYxNTQsIDAuMzExOTgyLCAwLjYwMzUxNCwgMC45MDA0MzIsIDEuNTkyNDYsIDEuOTg5MiIsIFwKLSAgICAgICAgICAiMC4xNDI5NjksIDAuMTU5NDQyLCAwLjMyMTAxNiwgMC42MDYxOTcsIDAuOTAwMzg4LCAxLjU5MjYyLCAxLjk4ODEyIiwgXAotICAgICAgICAgICIwLjE1Njg5NywgMC4xNzI4NjcsIDAuMzMwMzMsIDAuNjEwNzkyLCAwLjkwMTE3OCwgMS41OTI4MywgMS45ODgyOCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNTA3MDUsIDAuMTc4MzA3LCAwLjQyNTY2MywgMC44MzcwMTMsIDEuMjUwNDQsIDIuMjEyMSwgMi43NTgzIiwgXAotICAgICAgICAgICIwLjE1NzY3MSwgMC4xODUxNzMsIDAuNDMyNzkzLCAwLjg0NDU1MiwgMS4yNTY1MywgMi4yMTc4NywgMi43NjU3MSIsIFwKLSAgICAgICAgICAiMC4xNjYzNDMsIDAuMTkzNzkxLCAwLjQ0MTIwOCwgMC44NTM1MzMsIDEuMjY2MDIsIDIuMjI3OTUsIDIuNzc1NjQiLCBcCi0gICAgICAgICAgIjAuMTc1NTEsIDAuMjAzMDM1LCAwLjQ1MDMxNiwgMC44NjI3MjcsIDEuMjc1MSwgMi4yMzcwNiwgMi43ODQ0NiIsIFwKLSAgICAgICAgICAiMC4xODQzNywgMC4yMTE2OTMsIDAuNDU4NDIyLCAwLjg3MDc5MiwgMS4yODE4NywgMi4yNDIxNywgMi43OTE2NCIsIFwKLSAgICAgICAgICAiMC4xOTkyMTIsIDAuMjI2NDYzLCAwLjQ3Mjg2NSwgMC44ODUxMTYsIDEuMjk2MzQsIDIuMjU2ODksIDIuODA3MTEiLCBcCi0gICAgICAgICAgIjAuMjEyMzk0LCAwLjIzOTM3OCwgMC40ODUyNjIsIDAuODk2NTA4LCAxLjMwODUyLCAyLjI2OTc0LCAyLjgxNzUiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzE3OTUsIDAuMzc2NDQ5LCAwLjg5OTk4OCwgMS43NzM5NywgMi42NDUyMywgNC42ODA5OSwgNS44NDQwNyIsIFwKLSAgICAgICAgICAiMC4zMTg0MzMsIDAuMzc2NzE5LCAwLjkwMDExOSwgMS43NzE5NywgMi42NDQ0NSwgNC42Nzk5OSwgNS44NDQ1NCIsIFwKLSAgICAgICAgICAiMC4zMTgzMzEsIDAuMzc2NDAxLCAwLjg5OTU4MywgMS43NzIzLCAyLjY0NTk0LCA0LjY4MjYzLCA1Ljg0MzIzIiwgXAotICAgICAgICAgICIwLjMyMDA4NSwgMC4zNzcwNjIsIDAuODk5ODcsIDEuNzczMDEsIDIuNjQ2LCA0LjY4MTc1LCA1Ljg0MzMzIiwgXAotICAgICAgICAgICIwLjMyMzk0NSwgMC4zODAwMTYsIDAuODk5ODA5LCAxLjc3MjEzLCAyLjY0ODA1LCA0LjY4MjY4LCA1Ljg0NDQzIiwgXAotICAgICAgICAgICIwLjMzMjI0MiwgMC4zODcwOTEsIDAuODk5NjcxLCAxLjc3MjQ3LCAyLjY0NDQsIDQuNjgxMjUsIDUuODQzMDEiLCBcCi0gICAgICAgICAgIjAuMzQxMDk5LCAwLjM5NTI1MiwgMC45MDI0MjUsIDEuNzc0MjgsIDIuNjQ0NDYsIDQuNjc5NzQsIDUuODQ2MTMiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU1MTI5LCAwLjA2NDc4MSwgMC4xNTE2OTIsIDAuMjk2MzY1LCAwLjQ0MTAyLCAwLjc3ODcwOCwgMC45NzE2NzgiLCBcCi0gICAgICAgICAgIjAuMDYzNDIzLCAwLjA3MzA3NSwgMC4xNTk5NjksIDAuMzA0NjQ4LCAwLjQ0OTcxNSwgMC43ODcwMjUsIDAuOTgwMTk1IiwgXAotICAgICAgICAgICIwLjA3MzU3MywgMC4wODMzNSwgMC4xNzAwMjksIDAuMzE0NzYyLCAwLjQ1OTQxOSwgMC43OTY5NDEsIDAuOTkwMjIzIiwgXAotICAgICAgICAgICIwLjA4Mzk5NSwgMC4wOTM4MDksIDAuMTgwMjU4LCAwLjMyNTA3LCAwLjQ2OTkyNSwgMC44MDcwNzEsIDEuMDAwMTEiLCBcCi0gICAgICAgICAgIjAuMDk0MzkzLCAwLjEwNDE2NCwgMC4xOTA4MTYsIDAuMzM0OTY5LCAwLjQ3OTk4NCwgMC44MTc1NTQsIDEuMDExMiIsIFwKLSAgICAgICAgICAiMC4xMDg1MTcsIDAuMTE5ODM4LCAwLjIwNzQzMSwgMC4zNTE4MDYsIDAuNDk0NDc2LCAwLjgzNDE5NSwgMS4wMjY4NCIsIFwKLSAgICAgICAgICAiMC4xMTg5NjksIDAuMTMxNjkyLCAwLjIyMjAzNCwgMC4zNjYzOSwgMC41MTEwODUsIDAuODQ4NjU5LCAxLjA0MTUzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwNjgxNSwgMC4xMjY4MDIsIDAuMzA0NzIxLCAwLjYwMTM3NSwgMC44OTkxMTMsIDEuNTkxMTksIDEuOTkxMDciLCBcCi0gICAgICAgICAgIjAuMTA3MjQ5LCAwLjEyNjgzLCAwLjMwNDkyMiwgMC42MDE1NDUsIDAuODk5MDk3LCAxLjU5MTE4LCAxLjk5MTA4IiwgXAotICAgICAgICAgICIwLjExMTg4NywgMC4xMzA0MDIsIDAuMzA0NzIzLCAwLjYwMTU1OCwgMC44OTkzMDMsIDEuNTkwOTIsIDEuOTg5MSIsIFwKLSAgICAgICAgICAiMC4xMTg4MTksIDAuMTM2NTEzLCAwLjMwNjM2LCAwLjYwMTYzMiwgMC44OTkxMTMsIDEuNTk0MjYsIDEuOTkxMDciLCBcCi0gICAgICAgICAgIjAuMTI3MjEsIDAuMTQ0NjEyLCAwLjMxMDUzMiwgMC42MDE3NDMsIDAuODk4NzA2LCAxLjU5MTUyLCAxLjk4ODMiLCBcCi0gICAgICAgICAgIjAuMTQyODE4LCAwLjE1ODYyMSwgMC4zMTkzMjQsIDAuNjA1MTQ0LCAwLjg5ODYyMiwgMS41OTIzNCwgMS45OTA4NCIsIFwKLSAgICAgICAgICAiMC4xNTYzODgsIDAuMTcyNDczLCAwLjMyODA5OCwgMC42MDk4MywgMC44OTk1MDYsIDEuNTkxMDMsIDEuOTg3MDQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDIwOCwgMC4wMDIwODIsIDAuMDAyMDgzLCAwLjAwMjA4NCwgMC4wMDIwODQsIDAuMDAyMDg0LCAwLjAwMjA4NCIsIFwKLSAgICAgICAgICAiMC4wMDIwNjksIDAuMDAyMDcyLCAwLjAwMjA3OCwgMC4wMDIwODEsIDAuMDAyMDgyLCAwLjAwMjA4MiwgMC4wMDIwODMiLCBcCi0gICAgICAgICAgIjAuMDAyMDYyLCAwLjAwMjA2NSwgMC4wMDIwNzQsIDAuMDAyMDc4LCAwLjAwMjA4LCAwLjAwMjA4MSwgMC4wMDIwODIiLCBcCi0gICAgICAgICAgIjAuMDAyMDYzLCAwLjAwMjA2NSwgMC4wMDIwNzQsIDAuMDAyMDc4LCAwLjAwMjA4LCAwLjAwMjA4MiwgMC4wMDIwODEiLCBcCi0gICAgICAgICAgIjAuMDAyMDcyLCAwLjAwMjA3NCwgMC4wMDIwNzYsIDAuMDAyMDc5LCAwLjAwMjA4MiwgMC4wMDIwODIsIDAuMDAyMDgzIiwgXAotICAgICAgICAgICIwLjAwMjEwNiwgMC4wMDIxMDIsIDAuMDAyMDkxLCAwLjAwMjA4NywgMC4wMDIwODUsIDAuMDAyMDg1LCAwLjAwMjA4NCIsIFwKLSAgICAgICAgICAiMC4wMDIxNDcsIDAuMDAyMTM5LCAwLjAwMjEwOSwgMC4wMDIwOTgsIDAuMDAyMDk0LCAwLjAwMjA4OSwgMC4wMDIwODgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDA0MSwgMC4wMDA0MSwgMC4wMDA0MTEsIDAuMDAwNDExLCAwLjAwMDQxLCAwLjAwMDQxLCAwLjAwMDQxIiwgXAotICAgICAgICAgICIwLjAwMDM5OCwgMC4wMDAzOTcsIDAuMDAwMzk3LCAwLjAwMDM5NSwgMC4wMDAzOTQsIDAuMDAwMzk0LCAwLjAwMDM5NCIsIFwKLSAgICAgICAgICAiMC4wMDA0MTEsIDAuMDAwNDA5LCAwLjAwMDQsIDAuMDAwMzk3LCAwLjAwMDM5NSwgMC4wMDAzOTMsIDAuMDAwMzkyIiwgXAotICAgICAgICAgICIwLjAwMDQzOCwgMC4wMDA0NDEsIDAuMDAwNDE3LCAwLjAwMDQwNywgMC4wMDA0LCAwLjAwMDM5NiwgMC4wMDAzOTQiLCBcCi0gICAgICAgICAgIjAuMDAwNDc1LCAwLjAwMDQ2NSwgMC4wMDA0MzMsIDAuMDAwNDE2LCAwLjAwMDQwOSwgMC4wMDA0LCAwLjAwMDM5NyIsIFwKLSAgICAgICAgICAiMC4wMDA1NjUsIDAuMDAwNTQzLCAwLjAwMDQ2OCwgMC4wMDA0MzUsIDAuMDAwNDIxLCAwLjAwMDQxMSwgMC4wMDA0MDQiLCBcCi0gICAgICAgICAgIjAuMDAwNjU4LCAwLjAwMDYyMiwgMC4wMDA1MDYsIDAuMDAwNDU3LCAwLjAwMDQzOCwgMC4wMDA0MjEsIDAuMDAwNDE1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxODIzLCAwLjAwMTgyNCwgMC4wMDE4MjUsIDAuMDAxODI2LCAwLjAwMTgyNiwgMC4wMDE4MjUsIDAuMDAxODI2IiwgXAotICAgICAgICAgICIwLjAwMTgxMiwgMC4wMDE4MTQsIDAuMDAxODIxLCAwLjAwMTgyNCwgMC4wMDE4MjQsIDAuMDAxODI1LCAwLjAwMTgyMyIsIFwKLSAgICAgICAgICAiMC4wMDE4MDcsIDAuMDAxODA5LCAwLjAwMTgxOCwgMC4wMDE4MjIsIDAuMDAxODIzLCAwLjAwMTgyNSwgMC4wMDE4MjQiLCBcCi0gICAgICAgICAgIjAuMDAxODEyLCAwLjAwMTgxMywgMC4wMDE4MTgsIDAuMDAxODIyLCAwLjAwMTgyMywgMC4wMDE4MjQsIDAuMDAxODI0IiwgXAotICAgICAgICAgICIwLjAwMTgyNywgMC4wMDE4MjQsIDAuMDAxODIzLCAwLjAwMTgyMywgMC4wMDE4MjQsIDAuMDAxODI1LCAwLjAwMTgyNSIsIFwKLSAgICAgICAgICAiMC4wMDE4NjcsIDAuMDAxODU5LCAwLjAwMTg0LCAwLjAwMTgzMSwgMC4wMDE4MjksIDAuMDAxODI4LCAwLjAwMTgyOCIsIFwKLSAgICAgICAgICAiMC4wMDE5MTEsIDAuMDAxOTAxLCAwLjAwMTg2MSwgMC4wMDE4NDMsIDAuMDAxODM4LCAwLjAwMTgzMywgMC4wMDE4MzEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDAyMzMsIDAuMDAwMjM0LCAwLjAwMDIzNCwgMC4wMDAyMzUsIDAuMDAwMjM1LCAwLjAwMDIzNSwgMC4wMDAyMzUiLCBcCi0gICAgICAgICAgIjAuMDAwMjMxLCAwLjAwMDIzMSwgMC4wMDAyMzMsIDAuMDAwMjM0LCAwLjAwMDIzNCwgMC4wMDAyMzQsIDAuMDAwMjM0IiwgXAotICAgICAgICAgICIwLjAwMDI0MiwgMC4wMDAyNDEsIDAuMDAwMjM3LCAwLjAwMDIzNiwgMC4wMDAyMzcsIDAuMDAwMjM2LCAwLjAwMDIzNiIsIFwKLSAgICAgICAgICAiMC4wMDAyNjIsIDAuMDAwMjc2LCAwLjAwMDI0NywgMC4wMDAyNDYsIDAuMDAwMjQyLCAwLjAwMDIzOSwgMC4wMDAyMzgiLCBcCi0gICAgICAgICAgIjAuMDAwMzAxLCAwLjAwMDI5MywgMC4wMDAyNjIsIDAuMDAwMjUsIDAuMDAwMjQ2LCAwLjAwMDI0MywgMC4wMDAyNDEiLCBcCi0gICAgICAgICAgIjAuMDAwMzUyLCAwLjAwMDMzOSwgMC4wMDAzMTEsIDAuMDAwMjc4LCAwLjAwMDI2NSwgMC4wMDAyNTMsIDAuMDAwMjQ4IiwgXAotICAgICAgICAgICIwLjAwMDQyMSwgMC4wMDA0MDEsIDAuMDAwMzU0LCAwLjAwMDMwMiwgMC4wMDAyODQsIDAuMDAwMjY0LCAwLjAwMDI1OCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTU2MSwgMC4wMDE1NjIsIDAuMDAxNTY0LCAwLjAwMTU2NSwgMC4wMDE1NjYsIDAuMDAxNTY1LCAwLjAwMTU2NSIsIFwKLSAgICAgICAgICAiMC4wMDE1NTEsIDAuMDAxNTUyLCAwLjAwMTU2LCAwLjAwMTU2MywgMC4wMDE1NjMsIDAuMDAxNTY0LCAwLjAwMTU2NCIsIFwKLSAgICAgICAgICAiMC4wMDE1NiwgMC4wMDE1NiwgMC4wMDE1NjIsIDAuMDAxNTYzLCAwLjAwMTU2NCwgMC4wMDE1NjUsIDAuMDAxNTY1IiwgXAotICAgICAgICAgICIwLjAwMTU3MywgMC4wMDE1NywgMC4wMDE1NjUsIDAuMDAxNTY1LCAwLjAwMTU2NSwgMC4wMDE1NjUsIDAuMDAxNTY0IiwgXAotICAgICAgICAgICIwLjAwMTYxMiwgMC4wMDE2MDUsIDAuMDAxNTgxLCAwLjAwMTU3MiwgMC4wMDE1NjksIDAuMDAxNTY5LCAwLjAwMTU2NyIsIFwKLSAgICAgICAgICAiMC4wMDE2NzMsIDAuMDAxNjYzLCAwLjAwMTYxLCAwLjAwMTU4OCwgMC4wMDE1OCwgMC4wMDE1NzQsIDAuMDAxNTcyIiwgXAotICAgICAgICAgICIwLjAwMTc0MSwgMC4wMDE3MjIsIDAuMDAxNjQ2LCAwLjAwMTYwOCwgMC4wMDE1OTUsIDAuMDAxNTgxLCAwLjAwMTU4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwMDMyLCAwLjAwMDAzMywgMC4wMDAwMzUsIDAuMDAwMDM2LCAwLjAwMDAzNiwgMC4wMDAwMzcsIDAuMDAwMDM3IiwgXAotICAgICAgICAgICIwLjAwMDAzOCwgMC4wMDAwNCwgMC4wMDAwNDYsIDAuMDAwMDQ5LCAwLjAwMDA0OSwgMC4wMDAwNSwgMC4wMDAwNSIsIFwKLSAgICAgICAgICAiMC4wMDAwNTUsIDAuMDAwMDUsIDAuMDAwMDUyLCAwLjAwMDA1NSwgMC4wMDAwNTYsIDAuMDAwMDU2LCAwLjAwMDA1NyIsIFwKLSAgICAgICAgICAiMC4wMDAwODIsIDAuMDAwMDY4LCAwLjAwMDA2NiwgMC4wMDAwNjEsIDAuMDAwMDU5LCAwLjAwMDA1OSwgMC4wMDAwNTkiLCBcCi0gICAgICAgICAgIjAuMDAwMTE2LCAwLjAwMDEwOCwgMC4wMDAwNzQsIDAuMDAwMDcsIDAuMDAwMDY1LCAwLjAwMDA2MiwgMC4wMDAwNjEiLCBcCi0gICAgICAgICAgIjAuMDAwMTg0LCAwLjAwMDE2NywgMC4wMDAxMTEsIDAuMDAwMDg3LCAwLjAwMDA3OCwgMC4wMDAwNjksIDAuMDAwMDY2IiwgXAotICAgICAgICAgICIwLjAwMDI2MywgMC4wMDAyMzcsIDAuMDAwMTQ1LCAwLjAwMDEwNywgMC4wMDAwOTMsIDAuMDAwMDc4LCAwLjAwMDA3MyIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IE5PUjRCWDEgKgotICogLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoTk9SNEJYMSkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjM1NTk5MTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQU4pICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYyMzM3ODsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MjMzNzg7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjIzMzU0OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTQyLCAwLjAwMTQyOSwgMC4wMDE1MDksIDAuMDAxNjE2LCAwLjAwMTc0MSwgMC4wMDE5NjgsIDAuMDAyMTYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDE5NjksIDAuMDAxOTc2LCAwLjAwMjA0OCwgMC4wMDIxNTEsIDAuMDAyMjc1LCAwLjAwMjUwNiwgMC4wMDI2ODUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDkyMjExMTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA5MTgxOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDkyMjExMTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyMDcsIDAuMDAwMjA3LCAwLjAwMDIwNywgMC4wMDAyMDcsIDAuMDAwMjA3LCAwLjAwMDIwNywgMC4wMDAyMDciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA0MjcsIDAuMDAwNDI3LCAwLjAwMDQyNywgMC4wMDA0MjcsIDAuMDAwNDI3LCAwLjAwMDQyNywgMC4wMDA0MjciKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEMpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDk0MTk4NDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA5Mzg4NTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA5NDE5ODQ7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMTU3LCAwLjAwMDE1NywgMC4wMDAxNTcsIDAuMDAwMTU3LCAwLjAwMDE1NywgMC4wMDAxNTcsIDAuMDAwMTU3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjk5LCAwLjAwMDI5OSwgMC4wMDAyOTksIDAuMDAwMjk5LCAwLjAwMDI5OSwgMC4wMDAyOTksIDAuMDAwMjk4Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihEKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA5OTc3NTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA5OTc3NTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA5OTcyNzI7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMTI1LCAwLjAwMDEyNSwgMC4wMDAxMjUsIDAuMDAwMTI1LCAwLjAwMDEyNSwgMC4wMDAxMjUsIDAuMDAwMTI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzMsIDAuMDAwMzMsIDAuMDAwMzMsIDAuMDAwMzMsIDAuMDAwMzMsIDAuMDAwMzMsIDAuMDAwMzMiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4wOTIyMDY3OwotICAgIGZ1bmN0aW9uIDogIighKCgoKCFBTikrQikrQykrRCkpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTQ2ODg0LCAwLjIxMTM0OCwgMC41NzYzMjcsIDAuODk4OTksIDEuMzI3NzIsIDIuMTkwMTgsIDIuNzI2MTciLCBcCi0gICAgICAgICAgIjAuMTU0NzEzLCAwLjIxOTE2NiwgMC41ODUxNTQsIDAuOTA3NzM5LCAxLjMzNzE5LCAyLjE5NzM1LCAyLjczMyIsIFwKLSAgICAgICAgICAiMC4xNjA4MzMsIDAuMjI1NDQ1LCAwLjU5MTM5NiwgMC45MTM5OTIsIDEuMzQ0MTksIDIuMjAzMzYsIDIuNzM5OTUiLCBcCi0gICAgICAgICAgIjAuMTY1Mzg5LCAwLjIyOTkyMSwgMC41OTYwNjUsIDAuOTE4NTk3LCAxLjM0OTE5LCAyLjIwOTYxLCAyLjc0NjAxIiwgXAotICAgICAgICAgICIwLjE2ODkzNiwgMC4yMzM0NzgsIDAuNTk5MDEyLCAwLjkyMjE0MSwgMS4zNTIyMiwgMi4yMTMwMSwgMi43NDgzNCIsIFwKLSAgICAgICAgICAiMC4xNzM3MzIsIDAuMjM4MjE5LCAwLjYwMzYyNiwgMC45MjY3NTIsIDEuMzU3NTcsIDIuMjE3OTQsIDIuNzU0MDEiLCBcCi0gICAgICAgICAgIjAuMTc4MjMsIDAuMjQxNzE0LCAwLjYwNzQ4OCwgMC45Mjk1MjIsIDEuMzU5NDUsIDIuMjE4NzIsIDIuNzU4MDUiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjYzODIzLCAwLjM5OTM3NCwgMS4xNjY1OSwgMS44NDUzNCwgMi43NDYxMSwgNC41NTM5NywgNS42ODExMyIsIFwKLSAgICAgICAgICAiMC4yNjM4MDksIDAuMzk5NzcsIDEuMTY2NzEsIDEuODQzMTIsIDIuNzUxNTcsIDQuNTYxMjYsIDUuNjg1OSIsIFwKLSAgICAgICAgICAiMC4yNjM3OTEsIDAuMzk5MTk4LCAxLjE2Njg4LCAxLjg0NDY1LCAyLjc0Nzg1LCA0LjU2MDUsIDUuNjgxIiwgXAotICAgICAgICAgICIwLjI2NDAyMSwgMC4zOTk2NDMsIDEuMTY3MDEsIDEuODQ0MTQsIDIuNzQ4MzUsIDQuNTU0MDMsIDUuNjgxNDciLCBcCi0gICAgICAgICAgIjAuMjYzOTE3LCAwLjM5OTE3OCwgMS4xNjgyOCwgMS44NDQwNywgMi43NDY2LCA0LjU1MzMxLCA1LjY4MTgzIiwgXAotICAgICAgICAgICIwLjI2Mzc4LCAwLjM5OTM0OCwgMS4xNjcyNSwgMS44NDM3NCwgMi43NDczNiwgNC41NTM2NiwgNS42ODk0NSIsIFwKLSAgICAgICAgICAiMC4yNjQ1MTQsIDAuMzk5MTA2LCAxLjE2ODM4LCAxLjg0NTc1LCAyLjc1MDA2LCA0LjU1Njc1LCA1LjY4MTYxIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1NDY5MywgMC4wNzMxMywgMC4xNzYyNTUsIDAuMjY2ODk0LCAwLjM4NzY4MSwgMC42MjkyMzEsIDAuNzgwMDU5IiwgXAotICAgICAgICAgICIwLjA2MjE5MSwgMC4wODA2MjIsIDAuMTgzNzM4LCAwLjI3NDQ1MSwgMC4zOTUxNDYsIDAuNjM2OTA1LCAwLjc4NzcwNiIsIFwKLSAgICAgICAgICAiMC4wNjg5NzIsIDAuMDg3MzE3LCAwLjE5MDQxNCwgMC4yODEwODMsIDAuNDAxODM4LCAwLjY0MzIzNCwgMC43OTQyMDciLCBcCi0gICAgICAgICAgIjAuMDczNzkzLCAwLjA5MjE1MiwgMC4xOTUxODIsIDAuMjg1ODYxLCAwLjQwNjY2NCwgMC42NDgxMjgsIDAuNzk4OTg1IiwgXAotICAgICAgICAgICIwLjA3NzQwNiwgMC4wOTU5MTYsIDAuMTk4OTgyLCAwLjI4OTU4OSwgMC40MTA0NDksIDAuNjUxOTEsIDAuODAyNzg4IiwgXAotICAgICAgICAgICIwLjA4MjYyNiwgMC4xMDExMTUsIDAuMjA0MDE2LCAwLjI5NDY1MSwgMC40MTUzNzcsIDAuNjU2OTA1LCAwLjgwNzczNiIsIFwKLSAgICAgICAgICAiMC4wODYzNDYsIDAuMTA0Njg2LCAwLjIwNzY5MywgMC4yOTg2NjEsIDAuNDE5Mzk2LCAwLjY2MDg0NiwgMC44MTEzMDUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc3NTY5LCAwLjExNDUxLCAwLjMyNTA4NCwgMC41MTExNzgsIDAuNzU5MzA5LCAxLjI1NjE1LCAxLjU2NjI4IiwgXAotICAgICAgICAgICIwLjA3NzYzNCwgMC4xMTQ1MDEsIDAuMzI1MDczLCAwLjUxMTI3NywgMC43NTkzMDgsIDEuMjU2MDIsIDEuNTY2NjYiLCBcCi0gICAgICAgICAgIjAuMDc3OTc4LCAwLjExNDcxMywgMC4zMjUxMjksIDAuNTExMTgxLCAwLjc1OTMwNCwgMS4yNTU0NywgMS41NjYzMyIsIFwKLSAgICAgICAgICAiMC4wNzgzMSwgMC4xMTQ5NTksIDAuMzI1MTc0LCAwLjUxMTE3MywgMC43NTk1MTYsIDEuMjU2MTksIDEuNTY2MzMiLCBcCi0gICAgICAgICAgIjAuMDc4NzYyLCAwLjExNTEyOCwgMC4zMjUyNiwgMC41MTEyMjIsIDAuNzU5NDU3LCAxLjI1NTgzLCAxLjU2NjE1IiwgXAotICAgICAgICAgICIwLjA3OTMxNCwgMC4xMTU2NDksIDAuMzI1MzM1LCAwLjUxMTI2OSwgMC43NTk1MDUsIDEuMjU1OTQsIDEuNTY1OSIsIFwKLSAgICAgICAgICAiMC4wNzk4OTIsIDAuMTE2MDI4LCAwLjMyNTUxNCwgMC41MTEzMjIsIDAuNzU5NTIsIDEuMjU1NDksIDEuNTY2MzEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTM0NTI0LCAwLjE5OTAwNCwgMC41NjUwMzMsIDAuODg3NjcsIDEuMzE3MTEsIDIuMTc3NDcsIDIuNzEzMTIiLCBcCi0gICAgICAgICAgIjAuMTQwMTc5LCAwLjIwNDY4LCAwLjU3MDYzOSwgMC44OTM0NzcsIDEuMzIzMTgsIDIuMTgyODIsIDIuNzE5NTciLCBcCi0gICAgICAgICAgIjAuMTQ1NTg3LCAwLjIxMDM2MSwgMC41NzYzMzgsIDAuODk4MzQyLCAxLjMyODAzLCAyLjE4ODY5LCAyLjcyNTExIiwgXAotICAgICAgICAgICIwLjE1MTA1NywgMC4yMTU2NzIsIDAuNTgxNzg1LCAwLjkwMzk0NCwgMS4zMzQ5NiwgMi4xOTU0NiwgMi43MzE4IiwgXAotICAgICAgICAgICIwLjE1NjUxMywgMC4yMjEyNDEsIDAuNTg3MzgxLCAwLjkwOTk0MSwgMS4zMzk0NSwgMi4yMDA1OCwgMi43Mzc1OCIsIFwKLSAgICAgICAgICAiMC4xNjU3NjYsIDAuMjMwMDUzLCAwLjU5NjAwOCwgMC45MTgzMTksIDEuMzQ4MTksIDIuMjEwMzEsIDIuNzQ1MjkiLCBcCi0gICAgICAgICAgIjAuMTczNTk1LCAwLjIzODExOSwgMC42MDM5NiwgMC45MjY3NSwgMS4zNTYxMywgMi4yMTc2NSwgMi43NTI3MiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yNjQxMzksIDAuMzk5NjM0LCAxLjE2NjgxLCAxLjg0NDM2LCAyLjc1MTY1LCA0LjU1Mjc3LCA1LjY4MjU0IiwgXAotICAgICAgICAgICIwLjI2Mzc2LCAwLjM5OTcwNCwgMS4xNjY3NSwgMS44NDQyMywgMi43NDY4MiwgNC41NjA0MywgNS42ODEwOSIsIFwKLSAgICAgICAgICAiMC4yNjQxMywgMC4zOTkyMjcsIDEuMTY2NjMsIDEuODQzODMsIDIuNzQ5NjgsIDQuNTYwNzYsIDUuNjgxNTQiLCBcCi0gICAgICAgICAgIjAuMjY1NjUsIDAuMzk5ODM4LCAxLjE2NjcsIDEuODQ0NywgMi43NDY3NywgNC41NTI3MSwgNS42ODkzNiIsIFwKLSAgICAgICAgICAiMC4yNjc2NjMsIDAuNDAxMzY2LCAxLjE2NjgyLCAxLjg0Mzg5LCAyLjc0Nzc5LCA0LjU1NDcsIDUuNjg5NTQiLCBcCi0gICAgICAgICAgIjAuMjcyNzcsIDAuNDA0NTM2LCAxLjE2ODM1LCAxLjg0MzgzLCAyLjc1MDIxLCA0LjU1NDQ5LCA1LjY4ODUiLCBcCi0gICAgICAgICAgIjAuMjc3OTc2LCAwLjQwODM3NiwgMS4xNjY4NiwgMS44NDM5NSwgMi43NTAzNCwgNC41NTMxOCwgNS42ODUzMSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDA2NTQsIDAuMDU4ODk5LCAwLjE2MTY2MSwgMC4yNTIyMjMsIDAuMzczMDYyLCAwLjYxNDQzNiwgMC43NjUzNTciLCBcCi0gICAgICAgICAgIjAuMDQ4OTQ2LCAwLjA2NzE2OCwgMC4xNjk5MjcsIDAuMjYwNDg2LCAwLjM4MTExLCAwLjYyMjQwNSwgMC43NzMyOTYiLCBcCi0gICAgICAgICAgIjAuMDU5NzUxLCAwLjA3NzkwOSwgMC4xODA2MywgMC4yNzExNzUsIDAuMzkxOTA5LCAwLjYzMzM1LCAwLjc4Mzg3OCIsIFwKLSAgICAgICAgICAiMC4wNzAxNzUsIDAuMDg4NjM5LCAwLjE5MTAyMywgMC4yODE2MjUsIDAuNDAyNDY4LCAwLjY0MzgzLCAwLjc5NDU0NyIsIFwKLSAgICAgICAgICAiMC4wNzkyOTMsIDAuMDk5NTQ4LCAwLjIwMTEyNiwgMC4yOTE2NiwgMC40MTIzMTQsIDAuNjUzNzE4LCAwLjgwNDM4MiIsIFwKLSAgICAgICAgICAiMC4wOTE1OTEsIDAuMTE1MTYxLCAwLjIxODA3MSwgMC4zMDgzNSwgMC40MjkxMTgsIDAuNjcwMzAxLCAwLjgyMTQyNSIsIFwKLSAgICAgICAgICAiMC4xMDA0NTYsIDAuMTI2MzY3LCAwLjIzMjg2MywgMC4zMjMwMTUsIDAuNDQzNjAxLCAwLjY4NDk2OSwgMC44MzU3ODUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc0NDUzLCAwLjExMTU5MSwgMC4zMjI0MzIsIDAuNTA4NTU3LCAwLjc1Njk2NiwgMS4yNTMyNywgMS41NjM0MSIsIFwKLSAgICAgICAgICAiMC4wNzU0ODcsIDAuMTExODQyLCAwLjMyMjUwNiwgMC41MDg1NDgsIDAuNzU2NzQyLCAxLjI1Mjk2LCAxLjU2MzIiLCBcCi0gICAgICAgICAgIjAuMDgxMjI5LCAwLjExNTcxMywgMC4zMjI1NDEsIDAuNTA4NTk3LCAwLjc1NjkyOCwgMS4yNTM1NywgMS41NjM0OCIsIFwKLSAgICAgICAgICAiMC4wODk0MDksIDAuMTIyMjcsIDAuMzIzNjY2LCAwLjUwODYxOSwgMC43NTY5MjYsIDEuMjUzMzMsIDEuNTYzMTYiLCBcCi0gICAgICAgICAgIjAuMDk4Nzg4LCAwLjEyOTk0NCwgMC4zMjcwMzksIDAuNTA5MTczLCAwLjc1Njg1MSwgMS4yNTMwOCwgMS41NjMxNiIsIFwKLSAgICAgICAgICAiMC4xMTM5NzUsIDAuMTQ0MTg0LCAwLjMzNTE1NSwgMC41MTMyMTQsIDAuNzU3MzQ0LCAxLjI1MjkzLCAxLjU2MzM4IiwgXAotICAgICAgICAgICIwLjEyNjk3NSwgMC4xNTc1NTYsIDAuMzQ0MDI5LCAwLjUxOTAzOCwgMC43NTk4MzksIDEuMjUzMzMsIDEuNTYzMjEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTMwMTAyLCAwLjE5NDY5NywgMC41NjAzNDksIDAuODgyODI5LCAxLjMxMzczLCAyLjE3Mzk1LCAyLjcwOTc1IiwgXAotICAgICAgICAgICIwLjEzNjE5NCwgMC4yMDA4NDEsIDAuNTY2NDc4LCAwLjg4OTQzNiwgMS4zMTkwOSwgMi4xNzk4OCwgMi43MTYzNiIsIFwKLSAgICAgICAgICAiMC4xNDMzOCwgMC4yMDgwOTUsIDAuNTc0MTUsIDAuODk2ODcyLCAxLjMyNzE5LCAyLjE4NzU4LCAyLjcyMzYxIiwgXAotICAgICAgICAgICIwLjE1MDgyLCAwLjIxNTUyLCAwLjU4MTI3OCwgMC45MDM3MjQsIDEuMzM0MTMsIDIuMTk0OCwgMi43MzIxOSIsIFwKLSAgICAgICAgICAiMC4xNTg0OTksIDAuMjIzMjAzLCAwLjU4OTQwNSwgMC45MTI0MywgMS4zNDI3MywgMi4yMDM0NiwgMi43MzkzNyIsIFwKLSAgICAgICAgICAiMC4xNzExNDUsIDAuMjM1Mzc4LCAwLjYwMTA0OSwgMC45MjQyMDYsIDEuMzUzNDksIDIuMjEzMiwgMi43NTIwNCIsIFwKLSAgICAgICAgICAiMC4xODIwOTUsIDAuMjQ2NDg5LCAwLjYxMjE3MiwgMC45MzQxNCwgMS4zNjQ1OSwgMi4yMjYxNCwgMi43NjExMyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yNjQwMzUsIDAuMzk5ODA4LCAxLjE2NjcsIDEuODQ3MzMsIDIuNzQ4MDQsIDQuNTUyNzYsIDUuNjgyNDgiLCBcCi0gICAgICAgICAgIjAuMjYzODMsIDAuMzk5MjQ3LCAxLjE2Njk3LCAxLjg0NDU5LCAyLjc1MTk3LCA0LjU1MjI4LCA1LjY4OTI3IiwgXAotICAgICAgICAgICIwLjI2NDQyOCwgMC4zOTk3MzYsIDEuMTY2OCwgMS44NDQwMSwgMi43NDgyNCwgNC41NTI3NiwgNS42ODI4NyIsIFwKLSAgICAgICAgICAiMC4yNjYwNjYsIDAuMzk5ODAxLCAxLjE2ODM2LCAxLjg0Mzg2LCAyLjc1MTk2LCA0LjU1NDgzLCA1LjY4MTQ2IiwgXAotICAgICAgICAgICIwLjI2OTI2LCAwLjQwMTg3MSwgMS4xNjY4MywgMS44NDQ2NCwgMi43NDgsIDQuNTU0NjksIDUuNjg5NTIiLCBcCi0gICAgICAgICAgIjAuMjc2NjMyLCAwLjQwNjI4MywgMS4xNjc4NCwgMS44NDM4LCAyLjc1MDQxLCA0LjU1NDMzLCA1LjY4MTQ2IiwgXAotICAgICAgICAgICIwLjI4Mzg5NCwgMC40MTIwMTEsIDEuMTY2OSwgMS44NDU3NywgMi43NTEzNSwgNC41NTQwNywgNS42ODg1Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzOTA3MSwgMC4wNTcyMDgsIDAuMTU5ODQ0LCAwLjI1MDM3MSwgMC4zNzEwNzksIDAuNjEyNDg2LCAwLjc2MzQ3NiIsIFwKLSAgICAgICAgICAiMC4wNDc1MTcsIDAuMDY1NjU5LCAwLjE2ODI4MiwgMC4yNTg4MTMsIDAuMzc5NTUzLCAwLjYyMDc3MSwgMC43NzE1NDMiLCBcCi0gICAgICAgICAgIjAuMDU4MjkyLCAwLjA3NjI1MSwgMC4xNzg5MjEsIDAuMjY5NTE1LCAwLjM5MDAyNiwgMC42MzE3MiwgMC43ODIwNjEiLCBcCi0gICAgICAgICAgIjAuMDY4NjAxLCAwLjA4NjkzNywgMC4xODk0MTEsIDAuMjc5OTA2LCAwLjQwMDU2OCwgMC42NDE5MzksIDAuNzkyNzQyIiwgXAotICAgICAgICAgICIwLjA3NzkzNCwgMC4wOTc5MDEsIDAuMTk5OTU0LCAwLjI4OTk0MSwgMC40MTA1MjcsIDAuNjUxODk0LCAwLjgwMjU2IiwgXAotICAgICAgICAgICIwLjA4OTQwOCwgMC4xMTMzMjIsIDAuMjE2MzYyLCAwLjMwNzcyNSwgMC40MjczOTcsIDAuNjY4NTE5LCAwLjgxOTcwOCIsIFwKLSAgICAgICAgICAiMC4wOTc4NTcsIDAuMTI0MjAzLCAwLjIzMTE1MSwgMC4zMjEyNjIsIDAuNDQxODMyLCAwLjY4MzIsIDAuODM0MDE1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3MjI1OSwgMC4xMDk0NjYsIDAuMzIwMzk2LCAwLjUwNjUxOSwgMC43NTQ3NzEsIDEuMjUwOTgsIDEuNTYwNzMiLCBcCi0gICAgICAgICAgIjAuMDczMzc3LCAwLjEwOTcxMSwgMC4zMjAzODMsIDAuNTA2NTIyLCAwLjc1NDY0OSwgMS4yNTA3NiwgMS41NjEyOSIsIFwKLSAgICAgICAgICAiMC4wNzkzMjIsIDAuMTEzODE2LCAwLjMyMDQ0MywgMC41MDY2OSwgMC43NTQ1MzMsIDEuMjUxMzIsIDEuNTYxMTYiLCBcCi0gICAgICAgICAgIjAuMDg3NjA2LCAwLjEyMDUwNywgMC4zMjE1OTMsIDAuNTA2NTIsIDAuNzU0NTA5LCAxLjI1MDYsIDEuNTYwMzUiLCBcCi0gICAgICAgICAgIjAuMDk2NTQ5LCAwLjEyODEzNywgMC4zMjQ5MTYsIDAuNTA3MTY0LCAwLjc1NDYyNiwgMS4yNTA3OSwgMS41NjA5MyIsIFwKLSAgICAgICAgICAiMC4xMTIxMTUsIDAuMTQyNDk5LCAwLjMzMzE3MSwgMC41MTEyOSwgMC43NTUwNTIsIDEuMjUxMTMsIDEuNTYwNzUiLCBcCi0gICAgICAgICAgIjAuMTI1Mzk1LCAwLjE1NTg3NywgMC4zNDIwODMsIDAuNTE3MDAzLCAwLjc1NzU5NywgMS4yNTA3MywgMS41NjEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTIzNDM4LCAwLjE4ODEwMSwgMC41NTM1NjMsIDAuODc2NTUyLCAxLjMwNiwgMi4xNjYwMywgMi43MDM2NSIsIFwKLSAgICAgICAgICAiMC4xMjk5MzksIDAuMTk0NzI3LCAwLjU2MDEyNywgMC44ODI3ODUsIDEuMzEzMTgsIDIuMTczMDIsIDIuNzEwNjIiLCBcCi0gICAgICAgICAgIjAuMTM4NjAzLCAwLjIwMzIwMiwgMC41Njg3NTQsIDAuODkxMzc0LCAxLjMyMTA4LCAyLjE4MjY4LCAyLjcxODIxIiwgXAotICAgICAgICAgICIwLjE0NzU5MywgMC4yMTIxMDQsIDAuNTc3NDg0LCAwLjkwMDU5OCwgMS4zMzA3NCwgMi4xOTE2LCAyLjcyNjg4IiwgXAotICAgICAgICAgICIwLjE1NjczMSwgMC4yMjA4ODIsIDAuNTg2MTgzLCAwLjkwODg1MiwgMS4zMzkyNywgMi4xOTk1LCAyLjczNTQzIiwgXAotICAgICAgICAgICIwLjE3MTU0NSwgMC4yMzU0NzUsIDAuNjAwMTExLCAwLjkyMjYzNywgMS4zNTI0OSwgMi4yMTM2OSwgMi43NDg2NCIsIFwKLSAgICAgICAgICAiMC4xODQ2NDcsIDAuMjQ3OTE2LCAwLjYxMjIxNCwgMC45MzQ0ODMsIDEuMzYzODksIDIuMjI1NTcsIDIuNzYwMzMiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjYzODM4LCAwLjM5OTI0MSwgMS4xNjY4MiwgMS44NDQxMSwgMi43NDczMiwgNC41NjAwMywgNS42ODAzNCIsIFwKLSAgICAgICAgICAiMC4yNjM4MDQsIDAuMzk5MjMyLCAxLjE2NzYyLCAxLjg0Mzk4LCAyLjc0NzU3LCA0LjU2MTA0LCA1LjY4MjMyIiwgXAotICAgICAgICAgICIwLjI2Mzk4OSwgMC4zOTk1OTIsIDEuMTY4MywgMS44NDQwMywgMi43NDc3NSwgNC41NTQ1NywgNS42ODE0NCIsIFwKLSAgICAgICAgICAiMC4yNjY2ODQsIDAuNDAwMDA0LCAxLjE2ODMxLCAxLjg0Mzg4LCAyLjc0NjYxLCA0LjU1MzM0LCA1LjY4MTk1IiwgXAotICAgICAgICAgICIwLjI3MDk5NCwgMC40MDE4MzYsIDEuMTY2NywgMS44NDM4NSwgMi43NDY5OCwgNC41NTMwNSwgNS42ODEyNyIsIFwKLSAgICAgICAgICAiMC4yODAwOCwgMC40MDg0MjgsIDEuMTY3OTEsIDEuODQ2NzUsIDIuNzQ2OSwgNC41NTMxMiwgNS42ODczNCIsIFwKLSAgICAgICAgICAiMC4yOTAwMjUsIDAuNDE1ODQ1LCAxLjE2NjU1LCAxLjg0Mzg4LCAyLjc1MDc0LCA0LjU1NDQzLCA1LjY4MTAxIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzNzM3MSwgMC4wNTU0ODEsIDAuMTU4MDQ2LCAwLjI0ODU3NSwgMC4zNjkyMTEsIDAuNjExMDcyLCAwLjc2MTQ3OSIsIFwKLSAgICAgICAgICAiMC4wNDU4NzIsIDAuMDYzOTk2LCAwLjE2NjU3MSwgMC4yNTcwNTcsIDAuMzc3NjUyLCAwLjYxOTE2NCwgMC43Njk4MzciLCBcCi0gICAgICAgICAgIjAuMDU2NDc3LCAwLjA3NDU2LCAwLjE3NzA4MSwgMC4yNjc0NTIsIDAuMzg4Mzc2LCAwLjYyOTQ0NSwgMC43ODAwNTkiLCBcCi0gICAgICAgICAgIjAuMDY3MDc0LCAwLjA4NTI1OSwgMC4xODczNDksIDAuMjc3ODgsIDAuMzk4NTQyLCAwLjYzOTYwNSwgMC43OTA0MTkiLCBcCi0gICAgICAgICAgIjAuMDc1ODUyLCAwLjA5NTY0NywgMC4xOTc5MTUsIDAuMjg4NDQsIDAuNDA5MDA1LCAwLjY1MDM0NSwgMC44MDEwMTEiLCBcCi0gICAgICAgICAgIjAuMDg3MTQ2LCAwLjExMDI4NSwgMC4yMTU1NjgsIDAuMzA1OTg0LCAwLjQyNjA3MSwgMC42NjczOTgsIDAuODE4MjUiLCBcCi0gICAgICAgICAgIjAuMDk1NDU5LCAwLjEyMjEzNywgMC4yMzAwMjQsIDAuMzIwMTA5LCAwLjQ0MDY2OSwgMC42ODIzMDIsIDAuODMyNzE4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3MDMwNiwgMC4xMDc2MjksIDAuMzE4OTY4LCAwLjUwNDY2OCwgMC43NTI0MDcsIDEuMjQ5NDIsIDEuNTU5NDgiLCBcCi0gICAgICAgICAgIjAuMDcxNDkxLCAwLjEwNzg5MywgMC4zMTgzMjcsIDAuNTA0Mzk5LCAwLjc1NDI0NCwgMS4yNDkxOSwgMS41NTk2OSIsIFwKLSAgICAgICAgICAiMC4wNzc2MTIsIDAuMTEyMDg5LCAwLjMxODI3MiwgMC41MDQ5LCAwLjc1Mjc2NywgMS4yNTAyNSwgMS41NTg4IiwgXAotICAgICAgICAgICIwLjA4NTUwMywgMC4xMTg2ODgsIDAuMzIwMzA2LCAwLjUwNDU4MSwgMC43NTMzNjksIDEuMjQ5NDIsIDEuNTYyNCIsIFwKLSAgICAgICAgICAiMC4wOTQ4OTEsIDAuMTI3MDg2LCAwLjMyMzYzLCAwLjUwNTIyNCwgMC43NTI2MTUsIDEuMjQ5NDQsIDEuNTU5NDciLCBcCi0gICAgICAgICAgIjAuMTEwMjc4LCAwLjE0MjI2MywgMC4zMzExNzMsIDAuNTEwMTYxLCAwLjc1MzIxOSwgMS4yNDkxOSwgMS41NTk0OCIsIFwKLSAgICAgICAgICAiMC4xMjM4MzksIDAuMTU0NDQyLCAwLjM0MDMzNywgMC41MTUxNDcsIDAuNzU3MTYzLCAxLjI0OTA1LCAxLjU1OTE1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQU4iOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDAzNiwgMC4wMDQwMzcsIDAuMDA0MDM4LCAwLjAwNDAzOCwgMC4wMDQwMzgsIDAuMDA0MDM3LCAwLjAwNDAzNyIsIFwKLSAgICAgICAgICAiMC4wMDQwMzksIDAuMDA0MDQyLCAwLjAwNDA0NSwgMC4wMDQwNDYsIDAuMDA0MDQ3LCAwLjAwNDA0NiwgMC4wMDQwNDUiLCBcCi0gICAgICAgICAgIjAuMDA0MTIsIDAuMDA0MTIzLCAwLjAwNDEyOCwgMC4wMDQxMjgsIDAuMDA0MTI5LCAwLjAwNDEyOSwgMC4wMDQxMjkiLCBcCi0gICAgICAgICAgIjAuMDA0MjIxLCAwLjAwNDIyNCwgMC4wMDQyMjksIDAuMDA0MjMsIDAuMDA0MjMsIDAuMDA0MjMsIDAuMDA0MjMiLCBcCi0gICAgICAgICAgIjAuMDA0MzUsIDAuMDA0MzU0LCAwLjAwNDM1MSwgMC4wMDQzNTcsIDAuMDA0MzUxLCAwLjAwNDM1LCAwLjAwNDM1MSIsIFwKLSAgICAgICAgICAiMC4wMDQ1NjIsIDAuMDA0NTY3LCAwLjAwNDU2OCwgMC4wMDQ1NjksIDAuMDA0NTU5LCAwLjAwNDU2NywgMC4wMDQ1NjgiLCBcCi0gICAgICAgICAgIjAuMDA0NzUsIDAuMDA0NzY1LCAwLjAwNDc2OSwgMC4wMDQ3NjgsIDAuMDA0NzY3LCAwLjAwNDc2NywgMC4wMDQ3NjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDM1NTEsIDAuMDAzNTUxLCAwLjAwMzU1MSwgMC4wMDM1NTEsIDAuMDAzNTUxLCAwLjAwMzU1LCAwLjAwMzU1IiwgXAotICAgICAgICAgICIwLjAwMzU1NywgMC4wMDM1NTgsIDAuMDAzNTU5LCAwLjAwMzU1OSwgMC4wMDM1NTgsIDAuMDAzNTU4LCAwLjAwMzU1OCIsIFwKLSAgICAgICAgICAiMC4wMDM2MjgsIDAuMDAzNjMsIDAuMDAzNjMxLCAwLjAwMzYzMSwgMC4wMDM2MzEsIDAuMDAzNjMsIDAuMDAzNjMiLCBcCi0gICAgICAgICAgIjAuMDAzNzI5LCAwLjAwMzcyOSwgMC4wMDM3MywgMC4wMDM3MywgMC4wMDM3MywgMC4wMDM3MjksIDAuMDAzNzI5IiwgXAotICAgICAgICAgICIwLjAwMzg1OCwgMC4wMDM4NDUsIDAuMDAzODQ0LCAwLjAwMzg1MywgMC4wMDM4NTMsIDAuMDAzODUzLCAwLjAwMzg1MiIsIFwKLSAgICAgICAgICAiMC4wMDQwNTQsIDAuMDA0MDU3LCAwLjAwNDA2NSwgMC4wMDQwNjUsIDAuMDA0MDY0LCAwLjAwNDA2NCwgMC4wMDQwNjMiLCBcCi0gICAgICAgICAgIjAuMDA0MjMzLCAwLjAwNDIzNSwgMC4wMDQyMzMsIDAuMDA0MjQzLCAwLjAwNDI0NSwgMC4wMDQyNDIsIDAuMDA0MjM0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzNTc3LCAwLjAwMzU4LCAwLjAwMzU4NCwgMC4wMDM1ODQsIDAuMDAzNTg1LCAwLjAwMzU4NSwgMC4wMDM1ODQiLCBcCi0gICAgICAgICAgIjAuMDAzNTUxLCAwLjAwMzU2MSwgMC4wMDM1NzYsIDAuMDAzNTgsIDAuMDAzNTgxLCAwLjAwMzU4MiwgMC4wMDM1ODMiLCBcCi0gICAgICAgICAgIjAuMDAzNTMzLCAwLjAwMzU0NSwgMC4wMDM1NjcsIDAuMDAzNTczLCAwLjAwMzU3OCwgMC4wMDM1OCwgMC4wMDM1ODEiLCBcCi0gICAgICAgICAgIjAuMDAzNTI3LCAwLjAwMzUzNywgMC4wMDM1NjIsIDAuMDAzNTcsIDAuMDAzNTc0LCAwLjAwMzU3OCwgMC4wMDM1NzkiLCBcCi0gICAgICAgICAgIjAuMDAzNTMyLCAwLjAwMzUzOSwgMC4wMDM1NTksIDAuMDAzNTY4LCAwLjAwMzU3MywgMC4wMDM1NzksIDAuMDAzNTc4IiwgXAotICAgICAgICAgICIwLjAwMzU2MywgMC4wMDM1NTksIDAuMDAzNTY1LCAwLjAwMzU3LCAwLjAwMzU3MywgMC4wMDM1NzcsIDAuMDAzNTc4IiwgXAotICAgICAgICAgICIwLjAwMzYwOCwgMC4wMDM1OTMsIDAuMDAzNTc4LCAwLjAwMzU3OSwgMC4wMDM1NzksIDAuMDAzNTgxLCAwLjAwMzU4MiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDYyNCwgMC4wMDA2MjQsIDAuMDAwNjI1LCAwLjAwMDYyNSwgMC4wMDA2MjUsIDAuMDAwNjI0LCAwLjAwMDYyNCIsIFwKLSAgICAgICAgICAiMC4wMDA2MDQsIDAuMDAwNjA1LCAwLjAwMDYwNywgMC4wMDA2MDcsIDAuMDAwNjA2LCAwLjAwMDYwNiwgMC4wMDA2MDYiLCBcCi0gICAgICAgICAgIjAuMDAwNjE5LCAwLjAwMDYxNSwgMC4wMDA2MTEsIDAuMDAwNjA5LCAwLjAwMDYwOCwgMC4wMDA2MDQsIDAuMDAwNjA0IiwgXAotICAgICAgICAgICIwLjAwMDY1MSwgMC4wMDA2NSwgMC4wMDA2MTcsIDAuMDAwNjE5LCAwLjAwMDYxNSwgMC4wMDA2MTEsIDAuMDAwNjA5IiwgXAotICAgICAgICAgICIwLjAwMDcwNSwgMC4wMDA2NiwgMC4wMDA2NDgsIDAuMDAwNjM1LCAwLjAwMDYyNiwgMC4wMDA2MTcsIDAuMDAwNjEyIiwgXAotICAgICAgICAgICIwLjAwMDc5MiwgMC4wMDA3MzYsIDAuMDAwNjk3LCAwLjAwMDY2NywgMC4wMDA2NDksIDAuMDAwNjMyLCAwLjAwMDYyNyIsIFwKLSAgICAgICAgICAiMC4wMDA5MDUsIDAuMDAwODE3LCAwLjAwMDc1MiwgMC4wMDA3MDQsIDAuMDAwNjc2LCAwLjAwMDY1LCAwLjAwMDY0MSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzEzNCwgMC4wMDMxMzcsIDAuMDAzMTQsIDAuMDAzMTQxLCAwLjAwMzE0MSwgMC4wMDMxNDQsIDAuMDAzMTQxIiwgXAotICAgICAgICAgICIwLjAwMzEwNywgMC4wMDMxMTcsIDAuMDAzMTMzLCAwLjAwMzEzNiwgMC4wMDMxMzcsIDAuMDAzMTQsIDAuMDAzMTM4IiwgXAotICAgICAgICAgICIwLjAwMzA5NCwgMC4wMDMxMDQsIDAuMDAzMTI2LCAwLjAwMzEzMSwgMC4wMDMxMzQsIDAuMDAzMTM1LCAwLjAwMzEzNyIsIFwKLSAgICAgICAgICAiMC4wMDMwOTYsIDAuMDAzMTAzLCAwLjAwMzEyMiwgMC4wMDMxMjgsIDAuMDAzMTMyLCAwLjAwMzEzNywgMC4wMDMxMzciLCBcCi0gICAgICAgICAgIjAuMDAzMTEyLCAwLjAwMzExMiwgMC4wMDMxMjQsIDAuMDAzMTI3LCAwLjAwMzEzMiwgMC4wMDMxMzQsIDAuMDAzMTM2IiwgXAotICAgICAgICAgICIwLjAwMzE2MywgMC4wMDMxNDgsIDAuMDAzMTM0LCAwLjAwMzEzNSwgMC4wMDMxMzcsIDAuMDAzMTM4LCAwLjAwMzEzNyIsIFwKLSAgICAgICAgICAiMC4wMDMyMjMsIDAuMDAzMTkyLCAwLjAwMzE1MiwgMC4wMDMxNDUsIDAuMDAzMTQzLCAwLjAwMzE0MiwgMC4wMDMxNDIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDAyOTQsIDAuMDAwMjk1LCAwLjAwMDI5NywgMC4wMDAyOTcsIDAuMDAwMjk3LCAwLjAwMDI5NywgMC4wMDAyOTciLCBcCi0gICAgICAgICAgIjAuMDAwMjk4LCAwLjAwMDMwNCwgMC4wMDAzMTEsIDAuMDAwMzEzLCAwLjAwMDMxNCwgMC4wMDAzMTUsIDAuMDAwMzE2IiwgXAotICAgICAgICAgICIwLjAwMDMxLCAwLjAwMDMxNSwgMC4wMDAzMiwgMC4wMDAzMTksIDAuMDAwMzE4LCAwLjAwMDMxOSwgMC4wMDAzMTkiLCBcCi0gICAgICAgICAgIjAuMDAwMzQ5LCAwLjAwMDMzOSwgMC4wMDAzMzYsIDAuMDAwMzMxLCAwLjAwMDMyNywgMC4wMDAzMjQsIDAuMDAwMzIzIiwgXAotICAgICAgICAgICIwLjAwMDM3NywgMC4wMDAzNiwgMC4wMDAzNDQsIDAuMDAwMzQ3LCAwLjAwMDMzOSwgMC4wMDAzMzIsIDAuMDAwMzI5IiwgXAotICAgICAgICAgICIwLjAwMDQ3MywgMC4wMDA0MzIsIDAuMDAwNDA3LCAwLjAwMDM3OCwgMC4wMDAzNjMsIDAuMDAwMzQ3LCAwLjAwMDM0MiIsIFwKLSAgICAgICAgICAiMC4wMDA2MDMsIDAuMDAwNTEsIDAuMDAwNDYsIDAuMDAwNDE2LCAwLjAwMDM5LCAwLjAwMDM2NSwgMC4wMDAzNTciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJEIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI2ODcsIDAuMDAyNjkxLCAwLjAwMjY5NiwgMC4wMDI2OTgsIDAuMDAyNjk5LCAwLjAwMjY5OCwgMC4wMDI2OTgiLCBcCi0gICAgICAgICAgIjAuMDAyNjU5LCAwLjAwMjY3LCAwLjAwMjY4OCwgMC4wMDI2OTEsIDAuMDAyNjk0LCAwLjAwMjY5NSwgMC4wMDI2OTYiLCBcCi0gICAgICAgICAgIjAuMDAyNjY2LCAwLjAwMjY3MSwgMC4wMDI2ODUsIDAuMDAyNjg5LCAwLjAwMjY5MiwgMC4wMDI2OTQsIDAuMDAyNjk0IiwgXAotICAgICAgICAgICIwLjAwMjY5MiwgMC4wMDI2ODUsIDAuMDAyNjg3LCAwLjAwMjY5LCAwLjAwMjY5MywgMC4wMDI2OTMsIDAuMDAyNjk1IiwgXAotICAgICAgICAgICIwLjAwMjczNiwgMC4wMDI3MTYsIDAuMDAyNjk2LCAwLjAwMjY5NSwgMC4wMDI2OTYsIDAuMDAyNjk2LCAwLjAwMjY5NiIsIFwKLSAgICAgICAgICAiMC4wMDI4MjgsIDAuMDAyNzg3LCAwLjAwMjcyNCwgMC4wMDI3MTIsIDAuMDAyNzA2LCAwLjAwMjcwNCwgMC4wMDI3MDEiLCBcCi0gICAgICAgICAgIjAuMDAyOTQ1LCAwLjAwMjg3OSwgMC4wMDI3NjYsIDAuMDAyNzQsIDAuMDAyNzI2LCAwLjAwMjcxMywgMC4wMDI3MSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDAxMSwgMC4wMDAwMDcsIDAuMDAwMDAxLCAwLCAwLCAwLjAwMDAwMSwgMC4wMDAwMDEiLCBcCi0gICAgICAgICAgIjAuMDAwMDAxLCAwLjAwMDAxMiwgMC4wMDAwMjcsIDAuMDAwMDMsIDAuMDAwMDMyLCAwLjAwMDAzMywgMC4wMDAwMzciLCBcCi0gICAgICAgICAgIjAuMDAwMDM0LCAwLjAwMDAyNCwgMC4wMDAwMzUsIDAuMDAwMDM5LCAwLjAwMDAzOSwgMC4wMDAwNDQsIDAuMDAwMDQ0IiwgXAotICAgICAgICAgICIwLjAwMDAzNywgMC4wMDAwNDcsIDAuMDAwMDUyLCAwLjAwMDA1LCAwLjAwMDA0OCwgMC4wMDAwNDksIDAuMDAwMDUiLCBcCi0gICAgICAgICAgIjAuMDAwMDc1LCAwLjAwMDEwMiwgMC4wMDAwNjksIDAuMDAwMDYyLCAwLjAwMDA1NywgMC4wMDAwNTMsIDAuMDAwMDU0IiwgXAotICAgICAgICAgICIwLjAwMDE2MiwgMC4wMDAxODEsIDAuMDAwMTE3LCAwLjAwMDA5NiwgMC4wMDAwNzUsIDAuMDAwMDY1LCAwLjAwMDA2MSIsIFwKLSAgICAgICAgICAiMC4wMDAyNjYsIDAuMDAwMjE3LCAwLjAwMDE0NiwgMC4wMDAxMTMsIDAuMDAwMDk1LCAwLjAwMDA3OSwgMC4wMDAwNzMiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IE5PUjRYOCAqCi0gKiAtLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKE5PUjRYOCkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAyLjM1Njk5OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDYwOTMwMTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDYwNTA1NjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDYwOTMwMTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDMzOSwgMC4wMDM2MzUsIDAuMDAzNzc5LCAwLjAwMzgxMSwgMC4wMDM3OTUsIDAuMDAzODgzLCAwLjAwMzk2OCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAxMzgwNywgMC4wMTM4MTMsIDAuMDEzODEzLCAwLjAxMzgxNCwgMC4wMTM4MTQsIDAuMDEzODE0LCAwLjAxMzgxMyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDA1ODcwNDI7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDA1ODMzODM7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDA1ODcwNDI7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzMjQ4LCAwLjAwMzYwMiwgMC4wMDM3NDYsIDAuMDAzODI1LCAwLjAwMzg4OSwgMC4wMDM4NjcsIDAuMDAzODczIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA5MTksIDAuMDA5MTk0LCAwLjAwOTE5NSwgMC4wMDkxOTQsIDAuMDA5MTk1LCAwLjAwOTE5NSwgMC4wMDkxOTUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEMpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwNjA4NTYzOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwNjA1NTI3OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwNjA4NTYzOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzI3MSwgMC4wMDM3NTcsIDAuMDAzODY3LCAwLjAwMzkzMywgMC4wMDM5NjcsIDAuMDAzOTM4LCAwLjAwMzkzNCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNDM2OCwgMC4wMDQzNzEsIDAuMDA0MzcsIDAuMDA0MzcyLCAwLjAwNDM3MiwgMC4wMDQzNzIsIDAuMDA0MzczIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihEKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDYxMDMyNTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDYxMDMyNTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDYxMDE1NTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA4MzcsIDAuMDAwODM3LCAwLjAwMDgzNywgMC4wMDA4MzcsIDAuMDAwODM3LCAwLjAwMDgzNywgMC4wMDA4MzciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDMxMzYsIDAuMDAzMTM3LCAwLjAwMzEzOCwgMC4wMDMxMzcsIDAuMDAzMTM4LCAwLjAwMzEzNywgMC4wMDMxMzYiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC43MjY0NTM7Ci0gICAgZnVuY3Rpb24gOiAiKCEoKChBK0IpK0MpK0QpKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDU5OSwgMC4xNDgzMjUsIDAuMjUwMDQzLCAwLjMyMjczNSwgMC40MzkwNzEsIDAuNTQxMTIyLCAwLjY4NzM5NyIsIFwKLSAgICAgICAgICAiMC4wNTEzMzcsIDAuMTUzOTgzLCAwLjI1NjA2LCAwLjMyODk0MywgMC40NDU4NDEsIDAuNTQ3MjU3LCAwLjY5MzQ3NCIsIFwKLSAgICAgICAgICAiMC4wNTYxNiwgMC4xNTg3MjIsIDAuMjYxMTA1LCAwLjMzMzk3OCwgMC40NTAzNywgMC41NTI0MDgsIDAuNjk3Njk4IiwgXAotICAgICAgICAgICIwLjA1OTc4LCAwLjE2Mjc4OSwgMC4yNjUxNDcsIDAuMzM3ODQxLCAwLjQ1NDY0MiwgMC41NTY4MDQsIDAuNzAyMzk3IiwgXAotICAgICAgICAgICIwLjA2MjQ1NiwgMC4xNjY0ODksIDAuMjY4Njg0LCAwLjM0MTQzMiwgMC40NTc5MjIsIDAuNTU5OTQ1LCAwLjcwNjA1OSIsIFwKLSAgICAgICAgICAiMC4wNjU5MSwgMC4xNzIxOTEsIDAuMjc0MTYzLCAwLjM0NzAwMywgMC40NjM4NjMsIDAuNTY1NTg1LCAwLjcxMTc4IiwgXAotICAgICAgICAgICIwLjA2ODM2LCAwLjE3NzU0MSwgMC4yNzg5ODIsIDAuMzUxNzkzLCAwLjQ2ODM1NywgMC41NzAzNjksIDAuNzE1Mzg1Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY4NTkzLCAwLjI4MzkyNCwgMC40OTg3OTYsIDAuNjUyNDA3LCAwLjg5ODI2MywgMS4xMTQ3OCwgMS40MjE3NSIsIFwKLSAgICAgICAgICAiMC4wNjg3NzUsIDAuMjgzOTY0LCAwLjQ5OTU2MiwgMC42NTM1OTYsIDAuODk4OTA2LCAxLjExNDA4LCAxLjQyMTg4IiwgXAotICAgICAgICAgICIwLjA3MDAwMywgMC4yODM2LCAwLjQ5ODk0OCwgMC42NTI3MjksIDAuOTAwMDUyLCAxLjExNTc5LCAxLjQyMzQ3IiwgXAotICAgICAgICAgICIwLjA3MjE3MywgMC4yODQ0ODQsIDAuNDk4OTU3LCAwLjY1MzMwNywgMC44OTg5NTksIDEuMTE0MiwgMS40MjE3NiIsIFwKLSAgICAgICAgICAiMC4wNzUyMDQsIDAuMjg1NjgyLCAwLjQ5OTk4LCAwLjY1MzM3LCAwLjg5ODg2NywgMS4xMTUxNCwgMS40MjE2NSIsIFwKLSAgICAgICAgICAiMC4wODAyNjQsIDAuMjg4Mjg0LCAwLjUwMTMxNiwgMC42NTQzMjQsIDAuOTAwMTkxLCAxLjExNTEzLCAxLjQyMjA3IiwgXAotICAgICAgICAgICIwLjA4NTA3MSwgMC4yOTE3NjUsIDAuNTAzMTk0LCAwLjY1NTI5NywgMC45MDAwMTEsIDEuMTE1NjcsIDEuNDIzIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE0MTI3LCAwLjA0NDc4MywgMC4wNzM2MTUsIDAuMDk0MDExLCAwLjEyNjQ4NywgMC4xNTQ4MjUsIDAuMTk1Mjc3IiwgXAotICAgICAgICAgICIwLjAyMzA4NCwgMC4wNTMxODUsIDAuMDgyMDIxLCAwLjEwMjQsIDAuMTM0ODY4LCAwLjE2MzIzNSwgMC4yMDM2NTIiLCBcCi0gICAgICAgICAgIjAuMDMxNTYyLCAwLjA2Mzk3OCwgMC4wOTI3MjMsIDAuMTEzMDkyLCAwLjE0NTU2MywgMC4xNzMwOTksIDAuMjE0MzA4IiwgXAotICAgICAgICAgICIwLjAzNzU2MywgMC4wNzQ4ODcsIDAuMTAzNTg1LCAwLjEyMzc5OCwgMC4xNTYxODksIDAuMTg0NTQyLCAwLjIyNDkzMiIsIFwKLSAgICAgICAgICAiMC4wNDI5MTIsIDAuMDg0NzQ0LCAwLjExNDIyMywgMC4xMzQ0NzcsIDAuMTY2ODUsIDAuMTk1MTM0LCAwLjIzNTU2NyIsIFwKLSAgICAgICAgICAiMC4wNDkzNzcsIDAuMDk4MTY1LCAwLjEzMTcwOCwgMC4xNTE0MDgsIDAuMTgzNzk4LCAwLjIxMjEwNywgMC4yNTIyOTciLCBcCi0gICAgICAgICAgIjAuMDUzOTg0LCAwLjEwNzc3OCwgMC4xNDQ5MzQsIDAuMTY3MTU4LCAwLjE5OTYzNywgMC4yMjc3NzIsIDAuMjY4MDU2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDIzOTgxLCAwLjA4MzEyMywgMC4xNDE4OTMsIDAuMTgzNzY4LCAwLjI1MDg4NSwgMC4zMDk2NzgsIDAuMzkzNjgyIiwgXAotICAgICAgICAgICIwLjAyODQ0MiwgMC4wODM4MjYsIDAuMTQxODA1LCAwLjE4Mzc1NywgMC4yNTA5NzksIDAuMzA5NjU4LCAwLjM5Mzc1NCIsIFwKLSAgICAgICAgICAiMC4wMzc2MDksIDAuMDg5MDgyLCAwLjE0NDQzNywgMC4xODUxMTcsIDAuMjUxMTU5LCAwLjMwOTY4OCwgMC4zOTM2NzgiLCBcCi0gICAgICAgICAgIjAuMDQ2MjMsIDAuMDk2NTg0LCAwLjE0OTg3OCwgMC4xODkyNjksIDAuMjUzNjIyLCAwLjMxMTA3OCwgMC4zOTM5MjgiLCBcCi0gICAgICAgICAgIjAuMDUzNTIzLCAwLjEwNTQ4MiwgMC4xNTY4ODgsIDAuMTk1MjY0LCAwLjI1ODIyNCwgMC4zMTQ1MTIsIDAuMzk2MDA0IiwgXAotICAgICAgICAgICIwLjA2NTAzNCwgMC4xMjAzMywgMC4xNjkyNzIsIDAuMjA3MTIsIDAuMjY4MTYsIDAuMzIyODQxLCAwLjQwMjI2MiIsIFwKLSAgICAgICAgICAiMC4wNzM4MjksIDAuMTM0MDcxLCAwLjE4MjE3NCwgMC4yMTgwNDMsIDAuMjc3NzMsIDAuMzMxMTY0LCAwLjQwOTI4MSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0Mjk3NiwgMC4xNDUzNDEsIDAuMjQ3MDY3LCAwLjMxOTc0NCwgMC40MzYwOTcsIDAuNTM4MDg1LCAwLjY4NDI3OCIsIFwKLSAgICAgICAgICAiMC4wNDg2MzksIDAuMTUxMzc2LCAwLjI1MzI5MiwgMC4zMjYxOTYsIDAuNDQyNjYzLCAwLjU0NDYzLCAwLjY5MDYyNyIsIFwKLSAgICAgICAgICAiMC4wNTQzNzYsIDAuMTU3MDU4LCAwLjI1OTE3MSwgMC4zMzIxMDQsIDAuNDQ4NDMxLCAwLjU1MDU3NSwgMC42OTY2OTQiLCBcCi0gICAgICAgICAgIjAuMDU4OTcxLCAwLjE2MjQxMiwgMC4yNjQ2ODUsIDAuMzM3NTA2LCAwLjQ1Mzg4LCAwLjU1NTk2MSwgMC43MDE3NTIiLCBcCi0gICAgICAgICAgIjAuMDYyNzQ4LCAwLjE2NzcyMywgMC4yNjk4NjYsIDAuMzQyODQzLCAwLjQ1OTQ5MiwgMC41NjEyMjIsIDAuNzA3NDAyIiwgXAotICAgICAgICAgICIwLjA2Nzk4NiwgMC4xNzY1NDIsIDAuMjc4NDg1LCAwLjM1MTM4NywgMC40Njc4MjksIDAuNTcwMjA3LCAwLjcxNTU4NSIsIFwKLSAgICAgICAgICAiMC4wNzE4OCwgMC4xODQxMTMsIDAuMjg2MDI0LCAwLjM1ODkwMSwgMC40NzU3NDcsIDAuNTc3NzA4LCAwLjcyMzE4MiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2ODYxNCwgMC4yODM5NDgsIDAuNDk4NzE5LCAwLjY1MjI0LCAwLjg5ODM5MywgMS4xMTQ1NywgMS40MjE2OCIsIFwKLSAgICAgICAgICAiMC4wNjg5MTMsIDAuMjgzNjE2LCAwLjQ5OTI4OSwgMC42NTM1MTMsIDAuODk5NzksIDEuMTE0MjYsIDEuNDIxNzgiLCBcCi0gICAgICAgICAgIjAuMDcxMDI2LCAwLjI4NDAxMywgMC40OTg5MTksIDAuNjUzNjI0LCAwLjg5OTQwMSwgMS4xMTU2LCAxLjQyMTc4IiwgXAotICAgICAgICAgICIwLjA3NDU2NiwgMC4yODUwMDQsIDAuNDk4ODUyLCAwLjY1MjgwNSwgMC44OTk0OTcsIDEuMTE1NCwgMS40MjM4NCIsIFwKLSAgICAgICAgICAiMC4wNzkzODQsIDAuMjg2NTk2LCAwLjQ5OTczOCwgMC42NTM1OTYsIDAuODk5MDA2LCAxLjExNDU5LCAxLjQyMTc2IiwgXAotICAgICAgICAgICIwLjA4NzAzLCAwLjI5MDkxMSwgMC41MDE4ODYsIDAuNjU0ODM3LCAwLjg5OTU4OSwgMS4xMTQwNiwgMS40MjMyNCIsIFwKLSAgICAgICAgICAiMC4wOTM1OTYsIDAuMjk1NDYyLCAwLjUwNDc0MSwgMC42NTY4MDYsIDAuOTAwMTgxLCAxLjExNTc1LCAxLjQyMTY2Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEzOTI2LCAwLjA0MzQ1NSwgMC4wNzE5ODcsIDAuMDkyMjc1LCAwLjEyNDcxMywgMC4xNTMwMDEsIDAuMTkzNDQxIiwgXAotICAgICAgICAgICIwLjAyMjUwMywgMC4wNTE5MDUsIDAuMDgwNDUxLCAwLjEwMDczMiwgMC4xMzMxMjksIDAuMTYxNDYsIDAuMjAxODY5IiwgXAotICAgICAgICAgICIwLjAzMDM2NSwgMC4wNjI2NjgsIDAuMDkxMTU3LCAwLjExMTQ0NSwgMC4xNDM4MjQsIDAuMTcxMzMzLCAwLjIxMjU3NSIsIFwKLSAgICAgICAgICAiMC4wMzU4NjUsIDAuMDczNTA5LCAwLjEwMTk0NywgMC4xMjIyMzYsIDAuMTU0NDMsIDAuMTgyNzU2LCAwLjIyMzE0NiIsIFwKLSAgICAgICAgICAiMC4wNDA0MDksIDAuMDgzLCAwLjExMjU0NywgMC4xMzMwNTUsIDAuMTY1MDM1LCAwLjE5MzMyOSwgMC4yMzM3NDQiLCBcCi0gICAgICAgICAgIjAuMDQ1OTQxLCAwLjA5NjE3NSwgMC4xMjk5NzUsIDAuMTUwMTIsIDAuMTgxOTcyLCAwLjIxMDI1MSwgMC4yNTA0NDYiLCBcCi0gICAgICAgICAgIjAuMDUwMTMxLCAwLjEwNTEwOSwgMC4xNDI5MTYsIDAuMTY1Mzc1LCAwLjE5Nzc2NywgMC4yMjU5OTYsIDAuMjY2MzY3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDIxNDgsIDAuMDgwMjAzLCAwLjEzODkwNiwgMC4xODEwNTMsIDAuMjQ4MjUxLCAwLjMwNzAzLCAwLjM5MTEyMSIsIFwKLSAgICAgICAgICAiMC4wMjU5MzUsIDAuMDgwOTU2LCAwLjEzODk0OSwgMC4xODA5MywgMC4yNDgyNjQsIDAuMzA3MDgzLCAwLjM5MTA5NSIsIFwKLSAgICAgICAgICAiMC4wMzQ5NDYsIDAuMDg2MzI1LCAwLjE0MTY4OCwgMC4xODIzNzUsIDAuMjQ4NDc5LCAwLjMwNzExLCAwLjM5MTEzOCIsIFwKLSAgICAgICAgICAiMC4wNDI5ODksIDAuMDkzOTc2LCAwLjE0NzIwMSwgMC4xODY2LCAwLjI1MTA5OCwgMC4zMDg1MSwgMC4zOTE0NjMiLCBcCi0gICAgICAgICAgIjAuMDUwMzk1LCAwLjEwMzA2LCAwLjE1NDM3NCwgMC4xOTI0NywgMC4yNTU2NzYsIDAuMzEyMDUyLCAwLjM5MzU0MyIsIFwKLSAgICAgICAgICAiMC4wNjEwMTksIDAuMTE3ODIsIDAuMTY2ODQ5LCAwLjIwNDI3NCwgMC4yNjU4NDYsIDAuMzIwNDY0LCAwLjM5OTkwNCIsIFwKLSAgICAgICAgICAiMC4wNjk1NzksIDAuMTMxNzMsIDAuMTc5OTIzLCAwLjIxNTczNCwgMC4yNzUyNTMsIDAuMzI4ODA2LCAwLjQwNjk4NCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzNzAyNCwgMC4xMzkzNTQsIDAuMjQxMjY5LCAwLjMxNDM0MiwgMC40MzEwODYsIDAuNTMyNjksIDAuNjc4NDc4IiwgXAotICAgICAgICAgICIwLjA0MjkxNSwgMC4xNDU2NTgsIDAuMjQ3NjM1LCAwLjMyMDc5OSwgMC40MzY5NjgsIDAuNTM5NDIyLCAwLjY4NDQyNSIsIFwKLSAgICAgICAgICAiMC4wNTAxNjIsIDAuMTUyODkyLCAwLjI1NTE1MywgMC4zMjc5NTcsIDAuNDQ0OTQsIDAuNTQ2MzMsIDAuNjkyMzY5IiwgXAotICAgICAgICAgICIwLjA1NjI3OSwgMC4xNjAyMDMsIDAuMjYxOTE3LCAwLjMzNTMwNSwgMC40NTE4NDIsIDAuNTUzOTI4LCAwLjY5OTM1OCIsIFwKLSAgICAgICAgICAiMC4wNjE1NzYsIDAuMTY3OCwgMC4yNjk5OTUsIDAuMzQyOTAyLCAwLjQ1OTczMSwgMC41NjEzOTgsIDAuNzA3MTIyIiwgXAotICAgICAgICAgICIwLjA2ODgyOSwgMC4xODAxODUsIDAuMjgyMTI5LCAwLjM1NTExNiwgMC40NzE4ODUsIDAuNTczNTc4LCAwLjcxOTE3NCIsIFwKLSAgICAgICAgICAiMC4wNzQzMSwgMC4xOTExMTksIDAuMjkyODU5LCAwLjM2NTYyNCwgMC40ODI0NDMsIDAuNTg0NDEyLCAwLjczMDQ0MSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2ODUwNSwgMC4yODM5MTQsIDAuNDk5NTQxLCAwLjY1Mjc0NSwgMC44OTkwNCwgMS4xMTQwOCwgMS40MjIzMSIsIFwKLSAgICAgICAgICAiMC4wNjkwNiwgMC4yODM2MTMsIDAuNDk5NDgsIDAuNjUyNzU0LCAwLjg5ODk3OCwgMS4xMTQzMiwgMS40MjMyNiIsIFwKLSAgICAgICAgICAiMC4wNzI4OTIsIDAuMjgzNjc4LCAwLjQ5ODkxNSwgMC42NTM2MDcsIDAuODk4OTQ2LCAxLjExNTQyLCAxLjQyMTc2IiwgXAotICAgICAgICAgICIwLjA3ODY1NiwgMC4yODU1MTEsIDAuNDk5NDMsIDAuNjUzNTk4LCAwLjkwMDAyOSwgMS4xMTQwNiwgMS40MjM1NCIsIFwKLSAgICAgICAgICAiMC4wODUzNjIsIDAuMjg4MTk1LCAwLjUwMDIyOSwgMC42NTI3MjMsIDAuODk4NzczLCAxLjExNDUxLCAxLjQyMzM3IiwgXAotICAgICAgICAgICIwLjA5NTI3NSwgMC4yOTQ2MjgsIDAuNTAzMDMzLCAwLjY1NTI0OCwgMC44OTg5NzUsIDEuMTE1MzEsIDEuNDIzMDEiLCBcCi0gICAgICAgICAgIjAuMTAyNDc5LCAwLjMwMTY2MiwgMC41MDc1ODQsIDAuNjU3ODE2LCAwLjkwMDQ4OSwgMS4xMTQyNywgMS40MjE3MSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMjgzLCAwLjA0MTU2NCwgMC4wNjk5NDUsIDAuMDkwMTgyLCAwLjEyMjU4MiwgMC4xNTA4OTgsIDAuMTkxMzQ3IiwgXAotICAgICAgICAgICIwLjAyMTEzNiwgMC4wNTAxMzIsIDAuMDc4NDE4LCAwLjA5ODc1OSwgMC4xMzExMTYsIDAuMTU5NDU0LCAwLjE5OTg1NyIsIFwKLSAgICAgICAgICAiMC4wMjgxMzcsIDAuMDYwODc5LCAwLjA4OTE5NCwgMC4xMDk0MzIsIDAuMTQxNzg0LCAwLjE2OTM1NywgMC4yMTA2NDgiLCBcCi0gICAgICAgICAgIjAuMDMzMDE1LCAwLjA3MTQ4MSwgMC4wOTk4MzQsIDAuMTIwMjIzLCAwLjE1MjU0NSwgMC4xODA2MjQsIDAuMjIwOTc2IiwgXAotICAgICAgICAgICIwLjAzNjkwMiwgMC4wODA5NzMsIDAuMTEwODMzLCAwLjEzMTAxNywgMC4xNjMwNjIsIDAuMTkxNTk1LCAwLjIzMjAzMiIsIFwKLSAgICAgICAgICAiMC4wNDE1MDYsIDAuMDkzNDIxLCAwLjEyNzk0MiwgMC4xNDgzNTMsIDAuMTgwNjA4LCAwLjIwODg3OCwgMC4yNDkxMTUiLCBcCi0gICAgICAgICAgIjAuMDQ0ODE1LCAwLjEwMjUzMiwgMC4xNDA4NSwgMC4xNjMyMzYsIDAuMTk2MDIyLCAwLjIyNDEwNSwgMC4yNjQwODYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTg1NSwgMC4wNzczNDMsIDAuMTM2MTg2LCAwLjE3ODMxMSwgMC4yNDU2NzgsIDAuMzA0NTM1LCAwLjM4ODc2IiwgXAotICAgICAgICAgICIwLjAyMzQyOCwgMC4wNzgyNSwgMC4xMzYyNywgMC4xNzgyODgsIDAuMjQ1NTg5LCAwLjMwNDQ5NCwgMC4zODg2MzkiLCBcCi0gICAgICAgICAgIjAuMDMyMjQyLCAwLjA4MzgzOCwgMC4xMzkwOTUsIDAuMTc5NzcsIDAuMjQ1ODUzLCAwLjMwNDQyNSwgMC4zODg2MTEiLCBcCi0gICAgICAgICAgIjAuMDQwMDM4LCAwLjA5MTg3MSwgMC4xNDQ4ODgsIDAuMTg0MSwgMC4yNDg1OTEsIDAuMzA1OTg4LCAwLjM4ODkwNCIsIFwKLSAgICAgICAgICAiMC4wNDY4NDQsIDAuMTAwNDY3LCAwLjE1MTkwNCwgMC4xOTAxMzMsIDAuMjUzMTg2LCAwLjMwOTMxOSwgMC4zOTA5MjkiLCBcCi0gICAgICAgICAgIjAuMDU3MjQ3LCAwLjExNTc4OCwgMC4xNjQ3ODUsIDAuMjAxOTMxLCAwLjI2MjgxOSwgMC4zMTc1NTgsIDAuMzk3MDg1IiwgXAotICAgICAgICAgICIwLjA2NTUyLCAwLjEyOTA2NywgMC4xNzc1NjIsIDAuMjEzNDM5LCAwLjI3MzA0NywgMC4zMjYyMTgsIDAuNDA0ODIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjcwMTEsIDAuMTI5NjMxLCAwLjIzMTcxMywgMC4zMDQzMiwgMC40MjExMTIsIDAuNTIyMTY0LCAwLjY2ODY2NyIsIFwKLSAgICAgICAgICAiMC4wMzM3NjcsIDAuMTM2MjQzLCAwLjIzODQ5MSwgMC4zMTExOTgsIDAuNDI3OTA2LCAwLjUyOTYxOCwgMC42NzUyMzMiLCBcCi0gICAgICAgICAgIjAuMDQzNTA5LCAwLjE0NDk1MywgMC4yNDcwMzEsIDAuMzE5ODE5LCAwLjQzNjIwOSwgMC41Mzg1OTYsIDAuNjgzOTA2IiwgXAotICAgICAgICAgICIwLjA1MTY0MiwgMC4xNTM5MzUsIDAuMjU1Nzc1LCAwLjMyODUyNCwgMC40NDQ5MzEsIDAuNTQ2NjE1LCAwLjY5MTg5MiIsIFwKLSAgICAgICAgICAiMC4wNTgwOTQsIDAuMTYzMDg5LCAwLjI2NDgzNywgMC4zMzczNzQsIDAuNDU0MDI0LCAwLjU1NTc5OCwgMC43MDE2OTMiLCBcCi0gICAgICAgICAgIjAuMDY3MDAyLCAwLjE3ODAyMiwgMC4yNzkzMzksIDAuMzUxODQsIDAuNDY4MTg2LCAwLjU3MDMzNCwgMC43MTU5OTYiLCBcCi0gICAgICAgICAgIjAuMDczNzc0LCAwLjE5MTUyOSwgMC4yOTIxODksIDAuMzY0NTksIDAuNDgwNzY5LCAwLjU4MjcwMywgMC43MjgzMjQiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjY0MTMsIDAuMjgzNTk3LCAwLjQ5ODk3MywgMC42NTM0NDksIDAuODk4ODIsIDEuMTEzODksIDEuNDIxNzYiLCBcCi0gICAgICAgICAgIjAuMDY4MTg0LCAwLjI4MzY4OCwgMC40OTg4NjEsIDAuNjUyNjY5LCAwLjg5ODcyMywgMS4xMTUyOCwgMS40MjMzIiwgXAotICAgICAgICAgICIwLjA3NDk1NiwgMC4yODMzMTEsIDAuNDk5NDU3LCAwLjY1MzM4MywgMC44OTkyNTYsIDEuMTE0MTMsIDEuNDIxODUiLCBcCi0gICAgICAgICAgIjAuMDgyMjAyLCAwLjI4NTU1MywgMC40OTg0OTYsIDAuNjUyNTY0LCAwLjg5ODYxNCwgMS4xMTM5MSwgMS40MjE3MSIsIFwKLSAgICAgICAgICAiMC4wODk3MTUsIDAuMjg5NzIxLCAwLjUwMDEzLCAwLjY1Mjk2LCAwLjg5ODYzNSwgMS4xMTU1NCwgMS40MjE3NSIsIFwKLSAgICAgICAgICAiMC4wOTkxODUsIDAuMjk4MzAzLCAwLjUwNDQ0MiwgMC42NTQ0MTksIDAuODk4NjM3LCAxLjExNDEyLCAxLjQyMTc5IiwgXAotICAgICAgICAgICIwLjEwNjEwNSwgMC4zMDc0MjIsIDAuNTEwMywgMC42NTkxMDUsIDAuOTAwMjEzLCAxLjExNTQzLCAxLjQyMjAyIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEwNzg5LCAwLjAzOTI4MiwgMC4wNjc2MzEsIDAuMDg3ODc2LCAwLjEyMDI2NiwgMC4xNDg2MDIsIDAuMTg5MDc2IiwgXAotICAgICAgICAgICIwLjAxODU3NCwgMC4wNDc4ODUsIDAuMDc2MjczLCAwLjA5NjUxOCwgMC4xMjg3NjgsIDAuMTU3MTE0LCAwLjE5NzU4MSIsIFwKLSAgICAgICAgICAiMC4wMjQzNjIsIDAuMDU4NzAzLCAwLjA4Njk5NSwgMC4xMDcyMzYsIDAuMTM5NjM5LCAwLjE2NzIsIDAuMjA4NDY2IiwgXAotICAgICAgICAgICIwLjAyODQsIDAuMDY5Mjg5LCAwLjA5Nzg4NSwgMC4xMTgwMDksIDAuMTUwMzUyLCAwLjE3ODYyMiwgMC4yMTkyNTYiLCBcCi0gICAgICAgICAgIjAuMDMxMzA4LCAwLjA3ODAxNSwgMC4xMDg2MDEsIDAuMTI4OTQ0LCAwLjE2MDg5LCAwLjE4OTE5MywgMC4yMjk5MzciLCBcCi0gICAgICAgICAgIjAuMDM1MDE5LCAwLjA5MDMyNiwgMC4xMjU1MDgsIDAuMTQ2Mjg1LCAwLjE3ODQxNywgMC4yMDY2NzEsIDAuMjQ2MzE4IiwgXAotICAgICAgICAgICIwLjAzNzE5OCwgMC4wOTg1OTQsIDAuMTM3NzM2LCAwLjE2MDc5NSwgMC4xOTM1MiwgMC4yMjE1NDUsIDAuMjYxOTU5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE1NjcyLCAwLjA3NDYzLCAwLjEzMzY4NSwgMC4xNzU4NjUsIDAuMjQzMzQsIDAuMzAyMzc5LCAwLjM4NjYxMiIsIFwKLSAgICAgICAgICAiMC4wMjEzMTMsIDAuMDc1NjUsIDAuMTMzNDUzLCAwLjE3NTU0LCAwLjI0MzMxNCwgMC4zMDIzNzgsIDAuMzg2Njg3IiwgXAotICAgICAgICAgICIwLjAzMDE0NCwgMC4wODEzMzEsIDAuMTM2NTQxLCAwLjE3NzIsIDAuMjQzNTkyLCAwLjMwMTc3MywgMC4zODY2OTYiLCBcCi0gICAgICAgICAgIjAuMDM3MjU1LCAwLjA4OTMyLCAwLjE0MjMxNywgMC4xODE1NjUsIDAuMjQ2MzM0LCAwLjMwMzI1LCAwLjM4NjQ0MiIsIFwKLSAgICAgICAgICAiMC4wNDQwNTQsIDAuMDk5MDg0LCAwLjE0OTM5NSwgMC4xODc3ODksIDAuMjUxMDc1LCAwLjMwNzQ3OSwgMC4zODkxMTgiLCBcCi0gICAgICAgICAgIjAuMDUzNjc5LCAwLjExMzgzMiwgMC4xNjIyNzIsIDAuMTk5NjcyLCAwLjI2MDQxOCwgMC4zMTUzOTksIDAuMzk1MTYyIiwgXAotICAgICAgICAgICIwLjA2MjEzNiwgMC4xMjc0NDYsIDAuMTc2MjQyLCAwLjIxMTA3OCwgMC4yNzAzOTksIDAuMzI0MzQ1LCAwLjQwMjkyMiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDMyNjgsIDAuMDMyODU3LCAwLjAzMjg4MywgMC4wMzI4OTEsIDAuMDMyODk3LCAwLjAzMjkwMSwgMC4wMzI4ODciLCBcCi0gICAgICAgICAgIjAuMDMyMzE2LCAwLjAzMjY2NCwgMC4wMzI3NiwgMC4wMzI3OTQsIDAuMDMyODI2LCAwLjAzMjg0MywgMC4wMzI4NTgiLCBcCi0gICAgICAgICAgIjAuMDMyMTk1LCAwLjAzMjUwNSwgMC4wMzI2MzcsIDAuMDMyNjg5LCAwLjAzMjc0MywgMC4wMzI3NzIsIDAuMDMyODAxIiwgXAotICAgICAgICAgICIwLjAzMjE3OCwgMC4wMzI0MjQsIDAuMDMyNTUzLCAwLjAzMjYxNCwgMC4wMzI2NjgsIDAuMDMyNzA2LCAwLjAzMjc1OSIsIFwKLSAgICAgICAgICAiMC4wMzIyMzgsIDAuMDMyMzk1LCAwLjAzMjUxNCwgMC4wMzI1NzMsIDAuMDMyNjM5LCAwLjAzMjY3OSwgMC4wMzI3MjEiLCBcCi0gICAgICAgICAgIjAuMDMyNDk4LCAwLjAzMjQ2NSwgMC4wMzI1MzYsIDAuMDMyNTc0LCAwLjAzMjYzMiwgMC4wMzI2NjIsIDAuMDMyNzA0IiwgXAotICAgICAgICAgICIwLjAzMjkwNSwgMC4wMzI2NjQsIDAuMDMyNjM0LCAwLjAzMjY1LCAwLjAzMjY4LCAwLjAzMjcxMSwgMC4wMzI3MTIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwODQ0MSwgMC4wMDg0NDMsIDAuMDA4NDQyLCAwLjAwODQ0MywgMC4wMDg0NDIsIDAuMDA4NDQ2LCAwLjAwODQ0MiIsIFwKLSAgICAgICAgICAiMC4wMDgxNTksIDAuMDA4MTQyLCAwLjAwODE0MiwgMC4wMDgxNDEsIDAuMDA4MTQzLCAwLjAwODE0MywgMC4wMDgxNDIiLCBcCi0gICAgICAgICAgIjAuMDA4NDIsIDAuMDA4MjA4LCAwLjAwODE1NSwgMC4wMDgxMzYsIDAuMDA4MTIzLCAwLjAwODA3MywgMC4wMDgwOSIsIFwKLSAgICAgICAgICAiMC4wMDkwMywgMC4wMDgzODIsIDAuMDA4MzE1LCAwLjAwODIyNSwgMC4wMDgxNzgsIDAuMDA4MTU5LCAwLjAwODEzNSIsIFwKLSAgICAgICAgICAiMC4wMDk0NDIsIDAuMDA4NzgzLCAwLjAwODUxNSwgMC4wMDg0MzEsIDAuMDA4MzQsIDAuMDA4Mjg3LCAwLjAwODI0IiwgXAotICAgICAgICAgICIwLjAxMDc2MywgMC4wMDkyOTQsIDAuMDA4ODcxLCAwLjAwODk4OCwgMC4wMDg3ODIsIDAuMDA4NjY3LCAwLjAwODUzOCIsIFwKLSAgICAgICAgICAiMC4wMTIxMzgsIDAuMDEwMjczLCAwLjAwOTUwOCwgMC4wMDkyNDEsIDAuMDA4OTcxLCAwLjAwODgyNywgMC4wMDg2ODciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyNzUzNSwgMC4wMjc3MTEsIDAuMDI3NzM4LCAwLjAyNzc0NiwgMC4wMjc3NTMsIDAuMDI3NzU3LCAwLjAyNzc1OSIsIFwKLSAgICAgICAgICAiMC4wMjcxNjMsIDAuMDI3NTExLCAwLjAyNzYwOSwgMC4wMjc2NDMsIDAuMDI3Njc1LCAwLjAyNzY5MywgMC4wMjc3MDciLCBcCi0gICAgICAgICAgIjAuMDI3MDUyLCAwLjAyNzM2LCAwLjAyNzQ5LCAwLjAyNzU0MywgMC4wMjc1OTYsIDAuMDI3NjI1LCAwLjAyNzY1MyIsIFwKLSAgICAgICAgICAiMC4wMjcwNjEsIDAuMDI3MjgzLCAwLjAyNzQxMywgMC4wMjc0NzEsIDAuMDI3NTIxLCAwLjAyNzU3MSwgMC4wMjc2MDQiLCBcCi0gICAgICAgICAgIjAuMDI3MTY5LCAwLjAyNzI3NiwgMC4wMjczODQsIDAuMDI3NDQsIDAuMDI3NTAxLCAwLjAyNzUzLCAwLjAyNzU3OCIsIFwKLSAgICAgICAgICAiMC4wMjc1NDIsIDAuMDI3MzkzLCAwLjAyNzQzNCwgMC4wMjc0NjEsIDAuMDI3NTA4LCAwLjAyNzUzOCwgMC4wMjc1NjciLCBcCi0gICAgICAgICAgIjAuMDI4MDc2LCAwLjAyNzYxMiwgMC4wMjc1NywgMC4wMjc1NjcsIDAuMDI3NTc2LCAwLjAyNzU5OCwgMC4wMjc2MDgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNTg0MywgMC4wMDU4NjQsIDAuMDA1ODY5LCAwLjAwNTg2OSwgMC4wMDU4NjgsIDAuMDA1ODcsIDAuMDA1ODY5IiwgXAotICAgICAgICAgICIwLjAwNTU3NSwgMC4wMDU2NjcsIDAuMDA1Njg0LCAwLjAwNTY5NCwgMC4wMDU2OTgsIDAuMDA1NzAxLCAwLjAwNTcwNSIsIFwKLSAgICAgICAgICAiMC4wMDU4MzEsIDAuMDA1NzE5LCAwLjAwNTcxNSwgMC4wMDU3MTIsIDAuMDA1NzA2LCAwLjAwNTY2NywgMC4wMDU3MDMiLCBcCi0gICAgICAgICAgIjAuMDA2MTk4LCAwLjAwNTkzNCwgMC4wMDU4NjQsIDAuMDA1ODQ0LCAwLjAwNTc2OCwgMC4wMDU3NTcsIDAuMDA1NzQiLCBcCi0gICAgICAgICAgIjAuMDA2ODk2LCAwLjAwNjMxNiwgMC4wMDYwODYsIDAuMDA1OTQ5LCAwLjAwNTkzNSwgMC4wMDU4ODYsIDAuMDA1ODUxIiwgXAotICAgICAgICAgICIwLjAwODA5NCwgMC4wMDY3ODYsIDAuMDA2NDA5LCAwLjAwNjM4NywgMC4wMDY0MDEsIDAuMDA2Mjg3LCAwLjAwNjE2MiIsIFwKLSAgICAgICAgICAiMC4wMDk0OTgsIDAuMDA3NzY5LCAwLjAwNzAyNiwgMC4wMDY3ODcsIDAuMDA2NTQsIDAuMDA2NDA4LCAwLjAwNjI4MiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDIyNzcyLCAwLjAyMjk1MSwgMC4wMjI5NzgsIDAuMDIyOTg1LCAwLjAyMjk5NCwgMC4wMjI5OTcsIDAuMDIyOTk5IiwgXAotICAgICAgICAgICIwLjAyMjQwNCwgMC4wMjI3NTEsIDAuMDIyODQ5LCAwLjAyMjg4MywgMC4wMjI5MTUsIDAuMDIyOTMzLCAwLjAyMjk0NSIsIFwKLSAgICAgICAgICAiMC4wMjIzMzcsIDAuMDIyNjEyLCAwLjAyMjczOSwgMC4wMjI3ODUsIDAuMDIyODQxLCAwLjAyMjg3LCAwLjAyMjg5NiIsIFwKLSAgICAgICAgICAiMC4wMjI0ODEsIDAuMDIyNTg5LCAwLjAyMjY1MywgMC4wMjI3NDQsIDAuMDIyNzk4LCAwLjAyMjgzLCAwLjAyMjg2MyIsIFwKLSAgICAgICAgICAiMC4wMjI3MjgsIDAuMDIyNjQsIDAuMDIyNzAzLCAwLjAyMjc0LCAwLjAyMjc4NywgMC4wMjI4MTgsIDAuMDIyODUxIiwgXAotICAgICAgICAgICIwLjAyMzQ0LCAwLjAyMjkwNywgMC4wMjI4NTEsIDAuMDIyODQ5LCAwLjAyMjg1NywgMC4wMjI4NzQsIDAuMDIyODc3IiwgXAotICAgICAgICAgICIwLjAyNDI0LCAwLjAyMzI1OSwgMC4wMjMwNzcsIDAuMDIzMDI3LCAwLjAyMjk4MywgMC4wMjI5NzIsIDAuMDIyOTYyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI5MzcsIDAuMDAzMDE5LCAwLjAwMzAyOSwgMC4wMDMwMzQsIDAuMDAzMDM4LCAwLjAwMzAzOCwgMC4wMDMwNDEiLCBcCi0gICAgICAgICAgIjAuMDAyODI3LCAwLjAwMzA2NiwgMC4wMDMxMTYsIDAuMDAzMTQsIDAuMDAzMTU1LCAwLjAwMzE2NCwgMC4wMDMxNzMiLCBcCi0gICAgICAgICAgIjAuMDAzMDEsIDAuMDAzMTQ5LCAwLjAwMzE3NiwgMC4wMDMxODUsIDAuMDAzMiwgMC4wMDMxOTQsIDAuMDAzMjIxIiwgXAotICAgICAgICAgICIwLjAwMzU1MywgMC4wMDM0MjEsIDAuMDAzMzU0LCAwLjAwMzM4NCwgMC4wMDMzNTUsIDAuMDAzMjk4LCAwLjAwMzI5NiIsIFwKLSAgICAgICAgICAiMC4wMDQxNSwgMC4wMDM4NjUsIDAuMDAzNjkzLCAwLjAwMzYwNiwgMC4wMDM0NDIsIDAuMDAzNDY4LCAwLjAwMzQzMyIsIFwKLSAgICAgICAgICAiMC4wMDU1MzQsIDAuMDA0MTk4LCAwLjAwMzg4OSwgMC4wMDQxMTcsIDAuMDAzOTMsIDAuMDAzODMzLCAwLjAwMzczMiIsIFwKLSAgICAgICAgICAiMC4wMDY1NjIsIDAuMDA1NDQ2LCAwLjAwNDc3NCwgMC4wMDQzODEsIDAuMDA0MjEsIDAuMDA0MDY4LCAwLjAwNDE0NiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkQiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE3NTE0LCAwLjAxNzc4NSwgMC4wMTc4MiwgMC4wMTc4MzksIDAuMDE3ODQxLCAwLjAxNzg1NiwgMC4wMTc4NTkiLCBcCi0gICAgICAgICAgIjAuMDE3MjQzLCAwLjAxNzU1OSwgMC4wMTc2NywgMC4wMTc3MTUsIDAuMDE3NzU1LCAwLjAxNzc3NywgMC4wMTc3OTciLCBcCi0gICAgICAgICAgIjAuMDE3NjgyLCAwLjAxNzU4LCAwLjAxNzY0NiwgMC4wMTc2ODIsIDAuMDE3NzIzLCAwLjAxNzc0NSwgMC4wMTc3NjkiLCBcCi0gICAgICAgICAgIjAuMDE4NDM0LCAwLjAxNzgwNSwgMC4wMTc3NTYsIDAuMDE3NzU1LCAwLjAxNzc2NywgMC4wMTc3NzgsIDAuMDE3Nzg4IiwgXAotICAgICAgICAgICIwLjAxODk4OCwgMC4wMTgxNTcsIDAuMDE3OTYsIDAuMDE3OTEyLCAwLjAxNzg3NCwgMC4wMTc4NjQsIDAuMDE3ODUyIiwgXAotICAgICAgICAgICIwLjAyMDQ0NCwgMC4wMTg2NzQsIDAuMDE4MzMzLCAwLjAxODE5NiwgMC4wMTgwNzcsIDAuMDE4MDMsIDAuMDE3OTcxIiwgXAotICAgICAgICAgICIwLjAyMTgxLCAwLjAxOTU4NCwgMC4wMTg5MzYsIDAuMDE4NzE4LCAwLjAxODQ4NSwgMC4wMTgzNiwgMC4wMTgyNCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwMTM5LCAwLjAwMDE3OSwgMC4wMDAyMjQsIDAuMDAwMjM4LCAwLjAwMDI1LCAwLjAwMDI1NywgMC4wMDAyNjIiLCBcCi0gICAgICAgICAgIjAuMDAwMDgyLCAwLjAwMDM0NiwgMC4wMDA0MzksIDAuMDAwNDcsIDAuMDAwNTAzLCAwLjAwMDUxOSwgMC4wMDA1MzQiLCBcCi0gICAgICAgICAgIjAuMDAwMjIxLCAwLjAwMDM5NCwgMC4wMDA0ODIsIDAuMDAwNTE0LCAwLjAwMDU3MSwgMC4wMDA1ODEsIDAuMDAwNjA0IiwgXAotICAgICAgICAgICIwLjAwMDY0NywgMC4wMDA2MTEsIDAuMDAwNjM5LCAwLjAwMDY1MiwgMC4wMDA2NjEsIDAuMDAwNjQ4LCAwLjAwMDY4NiIsIFwKLSAgICAgICAgICAiMC4wMDEzOTYsIDAuMDAxMDE4LCAwLjAwMDgzNywgMC4wMDA4MjcsIDAuMDAwODA2LCAwLjAwMDc4LCAwLjAwMDcxNyIsIFwKLSAgICAgICAgICAiMC4wMDI2NCwgMC4wMDE0MjcsIDAuMDAxMTQ4LCAwLjAwMTM1NiwgMC4wMDEyMjksIDAuMDAxMTU0LCAwLjAwMTA5MiIsIFwKLSAgICAgICAgICAiMC4wMDM5NDUsIDAuMDAyMzcyLCAwLjAwMTc0OSwgMC4wMDE1NTUsIDAuMDAxMzUxLCAwLjAwMTY5NCwgMC4wMDE1MjMiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogT0FJMjExWDEgKgotICogLS0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKE9BSTIxMVgxKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMzM5OTU7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA5MzkxMzc7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwOTM3MzM0OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDkzOTEzNzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA1MjQsIDAuMDAwNTI0LCAwLjAwMDUyMywgMC4wMDA1MjMsIDAuMDAwNTI0LCAwLjAwMDUyNCwgMC4wMDA1MjMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA1MjUsIDAuMDAwNTI1LCAwLjAwMDUyNSwgMC4wMDA1MjYsIDAuMDAwNTI2LCAwLjAwMDUyNiwgMC4wMDA1MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEExKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA5NzU2NzU7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwOTc1Njc1OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDk3MzQ4OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDUyNCwgMC4wMDA1MjQsIDAuMDAwNTI0LCAwLjAwMDUyNCwgMC4wMDA1MjQsIDAuMDAwNTI0LCAwLjAwMDUyMyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDUyNSwgMC4wMDA1MjUsIDAuMDAwNTI1LCAwLjAwMDUyNSwgMC4wMDA1MjUsIDAuMDAwNTI2LCAwLjAwMDUyNiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQjApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDk0MzY4NjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA5NDM2ODY7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwOTQyNDMyOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDUyNCwgMC4wMDA1MjQsIDAuMDAwNTI0LCAwLjAwMDUyMywgMC4wMDA1MjMsIDAuMDAwNTI0LCAwLjAwMDUyMyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDUyNSwgMC4wMDA1MjUsIDAuMDAwNTI2LCAwLjAwMDUyNiwgMC4wMDA1MjYsIDAuMDAwNTI2LCAwLjAwMDUyNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQzApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDkzNjg4NzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA5MzY0MTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA5MzY4ODc7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjgzLCAwLjAwMDI4MywgMC4wMDAyODMsIDAuMDAwMjgzLCAwLjAwMDI4MywgMC4wMDAyODMsIDAuMDAwMjgzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNTk1LCAwLjAwMDU5NiwgMC4wMDA1OTYsIDAuMDAwNTk2LCAwLjAwMDU5NiwgMC4wMDA1OTYsIDAuMDAwNTk2Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMTQxMzEyOwotICAgIGZ1bmN0aW9uIDogIighKCgoQTArQTEpIEIwKSBDMCkpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc0NzYxLCAwLjEwODU1NSwgMC4yOTkzOSwgMC40Njc1NjIsIDAuNjkxNDk2LCAxLjEzODk5LCAxLjQyIiwgXAotICAgICAgICAgICIwLjA4MDkwOCwgMC4xMTQ3MTUsIDAuMzA1MzEyLCAwLjQ3MzI4MSwgMC42OTc1NzQsIDEuMTQ1NTMsIDEuNDI1MjQiLCBcCi0gICAgICAgICAgIjAuMDg4MzI1LCAwLjEyMjExNCwgMC4zMTI4MTksIDAuNDgxMDc2LCAwLjcwNTA0NSwgMS4xNTMxMSwgMS40MzMwMyIsIFwKLSAgICAgICAgICAiMC4wOTU2OTUsIDAuMTI5NDM4LCAwLjMyMDI5LCAwLjQ4ODM5OCwgMC43MTIyOTYsIDEuMTYwNTUsIDEuNDQwNTciLCBcCi0gICAgICAgICAgIjAuMTAzMDIyLCAwLjEzNjkyNiwgMC4zMjc4OTksIDAuNDk2Mjg5LCAwLjcyMDQ5MSwgMS4xNjc4NSwgMS40NDc1MSIsIFwKLSAgICAgICAgICAiMC4xMTM4MTYsIDAuMTQ4NjgsIDAuMzM5NTA0LCAwLjUwODA4NywgMC43MzE3NCwgMS4xNzk3NywgMS40NTk2NCIsIFwKLSAgICAgICAgICAiMC4xMjIxMTEsIDAuMTU4NjI1LCAwLjM0OTk1OSwgMC41MTg0MTgsIDAuNzQyMzQ0LCAxLjE5MDQ2LCAxLjQ3MDIzIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE0MjkzOCwgMC4yMTQwMzQsIDAuNjE1OTAzLCAwLjk3MDYyNiwgMS40NDMsIDIuMzg4MjYsIDIuOTc5MTUiLCBcCi0gICAgICAgICAgIjAuMTQzMDgyLCAwLjIxMzkyOCwgMC42MTU3MjMsIDAuOTcwNjIxLCAxLjQ0MzA1LCAyLjM4NzU0LCAyLjk3Nzg2IiwgXAotICAgICAgICAgICIwLjE0NDk4MSwgMC4yMTQ2NTQsIDAuNjE1ODAxLCAwLjk3MDI3NywgMS40NDI4MiwgMi4zODc5NSwgMi45Nzg0NCIsIFwKLSAgICAgICAgICAiMC4xNDg2ODEsIDAuMjE3MTMxLCAwLjYxNTg2LCAwLjk3MDkyMiwgMS40NDM5LCAyLjM4Nzc4LCAyLjk3ODc4IiwgXAotICAgICAgICAgICIwLjE1MzM5NywgMC4yMjA3ODYsIDAuNjE1OTM3LCAwLjk3MDI2NiwgMS40NDI4OCwgMi4zODg5OSwgMi45Nzg0NyIsIFwKLSAgICAgICAgICAiMC4xNjI0NDUsIDAuMjI4MzAzLCAwLjYxODE4NCwgMC45NzAzNjEsIDEuNDQzMDIsIDIuMzg4NDEsIDIuOTc3NzciLCBcCi0gICAgICAgICAgIjAuMTcxMjkxLCAwLjIzNTc3OSwgMC42MjE0MiwgMC45NzE2MjMsIDEuNDQzMTcsIDIuMzg3NjIsIDIuOTc5NTEiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTAyMDY0LCAwLjE0ODQ0NywgMC40MTExODcsIDAuNjQyNzEzLCAwLjk1MTk2OSwgMS41NzA1LCAxLjk1NTY3IiwgXAotICAgICAgICAgICIwLjEwODE4LCAwLjE1NDY1MSwgMC40MTcyMTIsIDAuNjQ5Mzg3LCAwLjk1Nzg5MSwgMS41NzU0NywgMS45NjA2NiIsIFwKLSAgICAgICAgICAiMC4xMTQzNTMsIDAuMTYwNzk3LCAwLjQyMzQ3LCAwLjY1NTc3MiwgMC45NjQwNjIsIDEuNTgxOTMsIDEuOTY4MDIiLCBcCi0gICAgICAgICAgIjAuMTIwMjMxLCAwLjE2NjY5NywgMC40Mjk1MDksIDAuNjYxMDU0LCAwLjk2OTkzMSwgMS41ODgxMiwgMS45NzQwNiIsIFwKLSAgICAgICAgICAiMC4xMjYxODYsIDAuMTcyNjI0LCAwLjQzNTQzNCwgMC42NjczOTEsIDAuOTc2MDEzLCAxLjU5NDQ4LCAxLjk4MSIsIFwKLSAgICAgICAgICAiMC4xMzU4MSwgMC4xODI0MTgsIDAuNDQ1MTYyLCAwLjY3NjcyNSwgMC45ODU1MzgsIDEuNjAyOTcsIDEuOTkwMTYiLCBcCi0gICAgICAgICAgIjAuMTQzNjUzLCAwLjE5MDkzNCwgMC40NTM0MDIsIDAuNjg1NTA5LCAwLjk5NDAwNCwgMS42MTE2MSwgMS45OTczNiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xODczNjIsIDAuMjgyNTg5LCAwLjgyMTc4MSwgMS4yOTc1LCAxLjkzMTYsIDMuMjAwODgsIDMuOTkyOTIiLCBcCi0gICAgICAgICAgIjAuMTg3MzEsIDAuMjgyNDU4LCAwLjgyMTU0LCAxLjI5Nzc2LCAxLjkzMTk0LCAzLjIwMDg0LCAzLjk5NDQ3IiwgXAotICAgICAgICAgICIwLjE4Nzg2OSwgMC4yODI1ODgsIDAuODIxNTA3LCAxLjI5Nzk1LCAxLjkzMjA5LCAzLjIwMTIyLCAzLjk5NDQiLCBcCi0gICAgICAgICAgIjAuMTg5NTY0LCAwLjI4MzYwNSwgMC44MjE2NTEsIDEuMjk3MjQsIDEuOTMzLCAzLjIwMTMxLCAzLjk5MjczIiwgXAotICAgICAgICAgICIwLjE5MjI1MiwgMC4yODUyOTYsIDAuODIxNDU4LCAxLjI5NzU5LCAxLjkzMTcyLCAzLjIwMDE0LCAzLjk5MzA1IiwgXAotICAgICAgICAgICIwLjE5NzgyNywgMC4yODk1ODEsIDAuODIyMDg3LCAxLjI5NzMsIDEuOTMxNjMsIDMuMTk5NzcsIDMuOTk0NDgiLCBcCi0gICAgICAgICAgIjAuMjAzODc4LCAwLjI5NDMzLCAwLjgyMzQ1OSwgMS4yOTcyOCwgMS45MzE1OCwgMy4yMDAwNywgMy45OTI2NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDcyNzMxLCAwLjEwNjU1OCwgMC4yOTc0MjUsIDAuNDY1NjA2LCAwLjY4OTMyNywgMS4xMzY3OCwgMS40MTgwNyIsIFwKLSAgICAgICAgICAiMC4wODAyMTgsIDAuMTE0MDUsIDAuMzA0NjEzLCAwLjQ3MjU1MiwgMC42OTY0MjksIDEuMTQ0MiwgMS40MjM5MiIsIFwKLSAgICAgICAgICAiMC4wODk3MDQsIDAuMTIzNDYsIDAuMzE0MDE3LCAwLjQ4MjAxNiwgMC43MDU5NzQsIDEuMTU0MjQsIDEuNDM0MTkiLCBcCi0gICAgICAgICAgIjAuMDk5NDcsIDAuMTMzMTU2LCAwLjMyMzg0NiwgMC40OTE1NjEsIDAuNzE1Njg0LCAxLjE2MzgzLCAxLjQ0Mzg2IiwgXAotICAgICAgICAgICIwLjEwOTQzMywgMC4xNDI5NDIsIDAuMzMzMzU0LCAwLjUwMTU4MSwgMC43MjU1MjksIDEuMTcyOTgsIDEuNDUzODIiLCBcCi0gICAgICAgICAgIjAuMTI0NTU4LCAwLjE1ODg2OCwgMC4zNDg5NjMsIDAuNTE2ODkyLCAwLjc0MDgwNywgMS4xODg1MiwgMS40NjgzMSIsIFwKLSAgICAgICAgICAiMC4xMzU3OTcsIDAuMTcyNzI1LCAwLjM2MjQ4NywgMC41MzAyMjQsIDAuNzU0NTY1LCAxLjIwMjU3LCAxLjQ4MTc5Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE0Mjk0NSwgMC4yMTM5MzgsIDAuNjE1OTg1LCAwLjk3MDY5MywgMS40NDMxNiwgMi4zODg1LCAyLjk3OTI1IiwgXAotICAgICAgICAgICIwLjE0Mjk2MSwgMC4yMTM5NDEsIDAuNjE1Nzc3LCAwLjk3MDY4OCwgMS40NDM2MywgMi4zODgyNiwgMi45NzgzNiIsIFwKLSAgICAgICAgICAiMC4xNDYxODMsIDAuMjE1MDA4LCAwLjYxNTg2MiwgMC45NzA0NywgMS40NDI0OCwgMi4zODc2NSwgMi45Nzg3OSIsIFwKLSAgICAgICAgICAiMC4xNTE5NDQsIDAuMjE4ODQ0LCAwLjYxNTkyMywgMC45NzA1NzUsIDEuNDQyNzgsIDIuMzg3OTMsIDIuOTc4NyIsIFwKLSAgICAgICAgICAiMC4xNTkyNDEsIDAuMjI0MzksIDAuNjE1OTg1LCAwLjk3MDM1LCAxLjQ0MjgxLCAyLjM4ODMsIDIuOTc4OSIsIFwKLSAgICAgICAgICAiMC4xNzI0LCAwLjIzNTcwMywgMC42MTg3NzUsIDAuOTcwMjQ0LCAxLjQ0MjQsIDIuMzg4MTYsIDIuOTc3NzciLCBcCi0gICAgICAgICAgIjAuMTg0OTExLCAwLjI0Njk0LCAwLjYyMzI2LCAwLjk3MTM3NiwgMS40NDI4NCwgMi4zODgwNCwgMi45NzkwNCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTU2OTIsIDAuMTQxMDA2LCAwLjM5NzUzOCwgMC42MjM5NTksIDAuOTI2MzcyLCAxLjUyODM5LCAxLjkwNzYiLCBcCi0gICAgICAgICAgIjAuMTAxODY2LCAwLjE0NzM0NSwgMC40MDM5NTYsIDAuNjMwNDI0LCAwLjkzMTc3LCAxLjUzNTA2LCAxLjkxMzQ1IiwgXAotICAgICAgICAgICIwLjEwNzk2NywgMC4xNTM1MDQsIDAuNDEwMjIsIDAuNjM3MTk0LCAwLjkzODU2NywgMS41NDI0MywgMS45MTk0OSIsIFwKLSAgICAgICAgICAiMC4xMTM5NDksIDAuMTU5NDIzLCAwLjQxNjMxMSwgMC42NDI3MjcsIDAuOTQ0NTA2LCAxLjU0ODQ3LCAxLjkyNTQzIiwgXAotICAgICAgICAgICIwLjExOTk4MywgMC4xNjU1NDIsIDAuNDIyNDc5LCAwLjY0ODg3MywgMC45NTA2MzgsIDEuNTUzODksIDEuOTMyMDIiLCBcCi0gICAgICAgICAgIjAuMTI5NjUsIDAuMTc1MTQxLCAwLjQzMjIyNCwgMC42NTg2NTgsIDAuOTYwNDM5LCAxLjU2Mzg5LCAxLjk0Mjc3IiwgXAotICAgICAgICAgICIwLjEzNzMyOSwgMC4xODQwMjUsIDAuNDQwNjkzLCAwLjY2NzI2MywgMC45Njk3NjIsIDEuNTcyNTQsIDEuOTQ5NDQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTc3NDQ3LCAwLjI3MDQ3MiwgMC43OTY2NzcsIDEuMjU5NjQsIDEuODc4NzQsIDMuMTIxOTUsIDMuODg5MzIiLCBcCi0gICAgICAgICAgIjAuMTc3NDM1LCAwLjI2OTg2MiwgMC43OTc0NjUsIDEuMjU5NjQsIDEuODc5MzIsIDMuMTE3MTUsIDMuODg4NjUiLCBcCi0gICAgICAgICAgIjAuMTc3OTkxLCAwLjI2OTkxNiwgMC43OTc0MDksIDEuMjU5OTIsIDEuODc5NTIsIDMuMTE2MDcsIDMuODg4NzEiLCBcCi0gICAgICAgICAgIjAuMTc5ODA3LCAwLjI3MTMxOCwgMC43OTYwNjIsIDEuMjYyMzgsIDEuODc5MzUsIDMuMTE2NjUsIDMuODg4NCIsIFwKLSAgICAgICAgICAiMC4xODI1NjcsIDAuMjczMDIyLCAwLjc5NzM2NCwgMS4yNjIzNiwgMS44NzksIDMuMTIyMTUsIDMuODg5OTMiLCBcCi0gICAgICAgICAgIjAuMTg4NDc0LCAwLjI3NzM3MSwgMC43OTc0LCAxLjI2MDE2LCAxLjg4MDM0LCAzLjEyMjM0LCAzLjg4OTI5IiwgXAotICAgICAgICAgICIwLjE5NDc4MywgMC4yODI1OTEsIDAuNzk4NzI3LCAxLjI2MDAzLCAxLjg3ODMxLCAzLjEyMjQsIDMuODk3MTEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjAiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzOTUzNSwgMC4wNTgyOTUsIDAuMTY0MDcsIDAuMjU3Mzc0LCAwLjM4MTYyNCwgMC42MzAwMDIsIDAuNzg1MjM3IiwgXAotICAgICAgICAgICIwLjA0Nzc0MSwgMC4wNjY0MywgMC4xNzIyNzQsIDAuMjY1NTMxLCAwLjM4OTgyNCwgMC42MzgyMDYsIDAuNzkzMjA0IiwgXAotICAgICAgICAgICIwLjA1ODA4NywgMC4wNzY2OTUsIDAuMTgyNDYsIDAuMjc1NzM4LCAwLjM5OTg2MywgMC42NDgxNDUsIDAuODAzMjUzIiwgXAotICAgICAgICAgICIwLjA2ODc1MSwgMC4wODcyMTgsIDAuMTkyODA2LCAwLjI4NjA3NywgMC40MTAzMDQsIDAuNjU4MzgsIDAuODEzNDczIiwgXAotICAgICAgICAgICIwLjA3NzM4OCwgMC4wOTc3MDksIDAuMjAzMjUzLCAwLjI5NjUxMiwgMC40MjA3NCwgMC42Njg3MjIsIDAuODIzODUzIiwgXAotICAgICAgICAgICIwLjA4ODY2NiwgMC4xMTIzNDYsIDAuMjIwMSwgMC4zMTMxNzEsIDAuNDM3NDYyLCAwLjY4NTYyNCwgMC44NDA2OTgiLCBcCi0gICAgICAgICAgIjAuMDk2NzcsIDAuMTIzMjEzLCAwLjIzNDg4NiwgMC4zMjc5MDYsIDAuNDUyMDQsIDAuNzAwMjU1LCAwLjg1NTM0OSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzkyNTYsIDAuMTE4NDcyLCAwLjM0MDcwOCwgMC41MzY3MzYsIDAuNzk4NDU0LCAxLjMyMTM4LCAxLjY0ODMzIiwgXAotICAgICAgICAgICIwLjA4MDU3NiwgMC4xMTg3NDcsIDAuMzQwNjMxLCAwLjUzNjkwMSwgMC43OTgzOCwgMS4zMjEzOSwgMS42NDgyNCIsIFwKLSAgICAgICAgICAiMC4wODcwODcsIDAuMTIzMjA4LCAwLjM0MDYzLCAwLjUzNjc1MiwgMC43OTgzNzMsIDEuMzIxMjksIDEuNjQ4MjEiLCBcCi0gICAgICAgICAgIjAuMDk0OTY3LCAwLjEzMDI1MiwgMC4zNDE4ODQsIDAuNTM2ODU0LCAwLjc5ODM2MiwgMS4zMjE0MSwgMS42NDc5MSIsIFwKLSAgICAgICAgICAiMC4xMDQwMTcsIDAuMTM4NDg2LCAwLjM0NTI5MywgMC41MzczOTYsIDAuNzk4Mzc5LCAxLjMyMTIzLCAxLjY0ODIyIiwgXAotICAgICAgICAgICIwLjExOTUxMSwgMC4xNTMwMzcsIDAuMzUzMzUzLCAwLjU0MTMzNiwgMC43OTg3NjIsIDEuMzIxMjcsIDEuNjQ3OTkiLCBcCi0gICAgICAgICAgIjAuMTMyNDIsIDAuMTY2Njc0LCAwLjM2MjI3MiwgMC41NDcxNTksIDAuODAxMTI2LCAxLjMyMTM3LCAxLjY0ODEyIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5OTEzMSwgMC4xNDU2MDEsIDAuNDA4Mzg3LCAwLjYzOTgzLCAwLjk0ODc0NSwgMS41NjczMiwgMS45NTI0OSIsIFwKLSAgICAgICAgICAiMC4xMDU1NSwgMC4xNTIwMTcsIDAuNDE0NzE5LCAwLjY0NjI5MywgMC45NTUwMTksIDEuNTczODcsIDEuOTU4NDMiLCBcCi0gICAgICAgICAgIjAuMTEzNjk5LCAwLjE2MDI4NCwgMC40MjM0MzksIDAuNjU1MDc5LCAwLjk2NDMxMywgMS41ODI4LCAxLjk2NzciLCBcCi0gICAgICAgICAgIjAuMTIxOTY1LCAwLjE2ODMyNSwgMC40MzEyOTcsIDAuNjYzMjEyLCAwLjk3MjYyOSwgMS41OTAxNywgMS45NzYyNiIsIFwKLSAgICAgICAgICAiMC4xMzAzMjUsIDAuMTc2Njk2LCAwLjQzOTkyNiwgMC42NzE0NTEsIDAuOTgwNzkxLCAxLjU5OTAxLCAxLjk4NTY3IiwgXAotICAgICAgICAgICIwLjE0NDAxNiwgMC4xOTAxODYsIDAuNDUzMDQ0LCAwLjY4NDgzNiwgMC45OTQyODUsIDEuNjExMTYsIDEuOTk2ODgiLCBcCi0gICAgICAgICAgIjAuMTU1MTIsIDAuMjAyMjA0LCAwLjQ2NDkwOSwgMC42OTY1MzUsIDEuMDA1NDQsIDEuNjIzMDgsIDIuMDA5MSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xODcyNywgMC4yODI0OTIsIDAuODIxODIyLCAxLjI5NzQsIDEuOTMxODMsIDMuMjAwMywgMy45OTMwOSIsIFwKLSAgICAgICAgICAiMC4xODcyNjQsIDAuMjgyNDg2LCAwLjgyMTU0OSwgMS4yOTc1MywgMS45MzE3OSwgMy4yMDAxNSwgMy45OTIzIiwgXAotICAgICAgICAgICIwLjE4ODIyNiwgMC4yODI1MzMsIDAuODIxNzg4LCAxLjI5NzI4LCAxLjkzMTczLCAzLjIwMDg5LCAzLjk5MzE1IiwgXAotICAgICAgICAgICIwLjE5MTIwOSwgMC4yODM5MzUsIDAuODIxODQ3LCAxLjI5NzYzLCAxLjkzMTgsIDMuMjAwMTMsIDMuOTkyOTYiLCBcCi0gICAgICAgICAgIjAuMTk1NDU0LCAwLjI4Njc2MSwgMC44MjE4MDEsIDEuMjk3MzcsIDEuOTMxNTIsIDMuMjAwMzgsIDMuOTkzMzgiLCBcCi0gICAgICAgICAgIjAuMjA0MTAyLCAwLjI5MzIyNCwgMC44MjIxODgsIDEuMjk3MzgsIDEuOTMxNjUsIDMuMTk5NTQsIDMuOTkyMjMiLCBcCi0gICAgICAgICAgIjAuMjEyMzM1LCAwLjMwMDQ3NCwgMC44MjM2NDIsIDEuMjk3NDcsIDEuOTMxNjEsIDMuMjAyNTgsIDMuOTkyNjYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQzAiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzODI3MSwgMC4wNTY5NTIsIDAuMTYyNzIsIDAuMjU2MDIxLCAwLjM4MDI2LCAwLjYyODU0MSwgMC43ODM4MTIiLCBcCi0gICAgICAgICAgIjAuMDQ2NDc2LCAwLjA2NTE1MywgMC4xNzA5NCwgMC4yNjQxODUsIDAuMzg4NTI3LCAwLjYzNjc4NiwgMC43OTE4ODUiLCBcCi0gICAgICAgICAgIjAuMDU2ODY5LCAwLjA3NTQ3NSwgMC4xODExOTgsIDAuMjc0NDQ5LCAwLjM5ODYyMiwgMC42NDY5MywgMC44MDIwMTIiLCBcCi0gICAgICAgICAgIjAuMDY2OTg5LCAwLjA4NjA1MywgMC4xOTE2MjUsIDAuMjg0ODc5LCAwLjQwOTEzNSwgMC42NTcyMzYsIDAuODEyMzQ0IiwgXAotICAgICAgICAgICIwLjA3NTM5OSwgMC4wOTY1NjgsIDAuMjAyMTUxLCAwLjI5NTQwNywgMC40MTk2NTIsIDAuNjY3Njc4LCAwLjgyMjc2OSIsIFwKLSAgICAgICAgICAiMC4wODYwOTEsIDAuMTEwODY5LCAwLjIxODkyMywgMC4zMTIwNTksIDAuNDM2MzA4LCAwLjY4NDUxNSwgMC44Mzk2OTQiLCBcCi0gICAgICAgICAgIjAuMDk0NjAxLCAwLjEyMTQ1NiwgMC4yMzM2NzksIDAuMzI2NzE3LCAwLjQ1MDg3MSwgMC42OTkxMDksIDAuODU0MjEyIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3NzcxMiwgMC4xMTY4NjUsIDAuMzM4OTE2LCAwLjUzNTExMSwgMC43OTYzMDcsIDEuMzE5MDUsIDEuNjQ2NTYiLCBcCi0gICAgICAgICAgIjAuMDc5MDY4LCAwLjExNzIwMSwgMC4zMzkwMTYsIDAuNTM0OTI4LCAwLjc5NjM0MSwgMS4zMTk1NCwgMS42NDY1NSIsIFwKLSAgICAgICAgICAiMC4wODU2NTEsIDAuMTIxNjgxLCAwLjMzOTAwOSwgMC41MzQ5MTEsIDAuNzk2MzMsIDEuMzE5NjIsIDEuNjQ2NSIsIFwKLSAgICAgICAgICAiMC4wOTQxMjIsIDAuMTI4NjY0LCAwLjM0MDIwOSwgMC41MzUwODcsIDAuNzk2NjI5LCAxLjMxOTU3LCAxLjY0NjUzIiwgXAotICAgICAgICAgICIwLjEwMzQ3LCAwLjEzNjgyMywgMC4zNDM1MDgsIDAuNTM1NjQ2LCAwLjc5NjMwOCwgMS4zMTk1NSwgMS42NDY0NiIsIFwKLSAgICAgICAgICAiMC4xMTkzOTYsIDAuMTUxNTM4LCAwLjM1MTY2NCwgMC41Mzk2MzUsIDAuNzk2OTYyLCAxLjMxOTMzLCAxLjY0NjE2IiwgXAotICAgICAgICAgICIwLjEzMTM0OSwgMC4xNjUyMzIsIDAuMzYwNDcxLCAwLjU0NTM0LCAwLjc5OTAzMywgMS4zMTk1LCAxLjY0NjYxIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5NTc5OCwgMC4xNDIxOTEsIDAuNDA0OTQ2LCAwLjYzNjU1OCwgMC45NDYwMzgsIDEuNTY0NDgsIDEuOTQ5NzgiLCBcCi0gICAgICAgICAgIjAuMTAyNzU0LCAwLjE0OTI0MywgMC40MTE4OTYsIDAuNjQzNTIsIDAuOTUyMjU2LCAxLjU2OTcyLCAxLjk1NzMyIiwgXAotICAgICAgICAgICIwLjExMTksIDAuMTU4MzY0LCAwLjQyMTAyMSwgMC42NTMyMTYsIDAuOTYxNzcsIDEuNTc5NTQsIDEuOTY1OSIsIFwKLSAgICAgICAgICAiMC4xMjExNTgsIDAuMTY3NDExLCAwLjQyOTk1MywgMC42NjE4NCwgMC45NzA5MDgsIDEuNTg4NDUsIDEuOTc0NTEiLCBcCi0gICAgICAgICAgIjAuMTMwNzIsIDAuMTc2Nzk0LCAwLjQzOTIwNiwgMC42NzA3NTUsIDAuOTc5NTgzLCAxLjU5NzAyLCAxLjk4NDMiLCBcCi0gICAgICAgICAgIjAuMTQ2MzgxLCAwLjE5MjA3NCwgMC40NTM4NzEsIDAuNjg1NjIyLCAwLjk5NDg0NSwgMS42MTE1MywgMS45OTc4OCIsIFwKLSAgICAgICAgICAiMC4xNTk1NzcsIDAuMjA1NTA1LCAwLjQ2Njc1NywgMC42OTgxOTgsIDEuMDA2NzgsIDEuNjI2MTEsIDIuMDEwMTMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTg3MjE3LCAwLjI4MjQ2LCAwLjgyMTgyLCAxLjI5NzU0LCAxLjkzMjA0LCAzLjIwMTE2LCAzLjk5MzA0IiwgXAotICAgICAgICAgICIwLjE4NzI3OCwgMC4yODI0NjYsIDAuODIxNDgyLCAxLjI5ODMxLCAxLjkzMTU2LCAzLjE5OTcsIDMuOTkzMDUiLCBcCi0gICAgICAgICAgIjAuMTg4NDEzLCAwLjI4MjY2NywgMC44MjE1MjgsIDEuMjk3NjYsIDEuOTMyLCAzLjIwMDQzLCAzLjk5MjkxIiwgXAotICAgICAgICAgICIwLjE5MjUwNSwgMC4yODQ0NzksIDAuODIxNDc0LCAxLjI5NzI2LCAxLjkzMTU2LCAzLjIwMDQ0LCAzLjk5NDQ3IiwgXAotICAgICAgICAgICIwLjE5ODIyNywgMC4yODgyODUsIDAuODIxODE2LCAxLjI5NzUxLCAxLjkzMTc2LCAzLjIwMDA1LCAzLjk5MzA0IiwgXAotICAgICAgICAgICIwLjIwOTIsIDAuMjk2ODU0LCAwLjgyMjA2MSwgMS4yOTcyNywgMS45MzE4MiwgMy4yMDAwOSwgMy45OTMiLCBcCi0gICAgICAgICAgIjAuMjE5NjQ4LCAwLjMwNTU4OSwgMC44MjQwMjcsIDEuMjk3NDYsIDEuOTMxNTQsIDMuMjAxMzEsIDMuOTkyNTEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0MDk4LCAwLjAwNDA5OCwgMC4wMDQwOTgsIDAuMDA0MDk3LCAwLjAwNDA5NywgMC4wMDQwOTUsIDAuMDA0MDk2IiwgXAotICAgICAgICAgICIwLjAwNDA3OSwgMC4wMDQwOCwgMC4wMDQwODMsIDAuMDA0MDgzLCAwLjAwNDA4MiwgMC4wMDQwODEsIDAuMDA0MDgiLCBcCi0gICAgICAgICAgIjAuMDA0MDc4LCAwLjAwNDA4LCAwLjAwNDA4MSwgMC4wMDQwOCwgMC4wMDQwOCwgMC4wMDQwNzksIDAuMDA0MDc3IiwgXAotICAgICAgICAgICIwLjAwNDA5MiwgMC4wMDQwODksIDAuMDA0MDg1LCAwLjAwNDA4MywgMC4wMDQwODEsIDAuMDA0MDgsIDAuMDA0MDc4IiwgXAotICAgICAgICAgICIwLjAwNDExNywgMC4wMDQxMDgsIDAuMDA0MDkzLCAwLjAwNDA4OCwgMC4wMDQwODUsIDAuMDA0MDgxLCAwLjAwNDA3OSIsIFwKLSAgICAgICAgICAiMC4wMDQxNzcsIDAuMDA0MTUzLCAwLjAwNDExNSwgMC4wMDQxMDMsIDAuMDA0MDk2LCAwLjAwNDA4OCwgMC4wMDQwODYiLCBcCi0gICAgICAgICAgIjAuMDA0MjUsIDAuMDA0MjA5LCAwLjAwNDE0MywgMC4wMDQxMjMsIDAuMDA0MTA5LCAwLjAwNDA5NiwgMC4wMDQwOTIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDA4MTksIDAuMDAwODIsIDAuMDAwODIxLCAwLjAwMDgyMiwgMC4wMDA4MjEsIDAuMDAwODIyLCAwLjAwMDgyMSIsIFwKLSAgICAgICAgICAiMC4wMDA3OTEsIDAuMDAwNzk3LCAwLjAwMDgwNSwgMC4wMDA4MDcsIDAuMDAwODA4LCAwLjAwMDgwOCwgMC4wMDA4MDgiLCBcCi0gICAgICAgICAgIjAuMDAwNzc1LCAwLjAwMDc4NCwgMC4wMDA3OTksIDAuMDAwODAyLCAwLjAwMDgwNCwgMC4wMDA4MDYsIDAuMDAwODA2IiwgXAotICAgICAgICAgICIwLjAwMDc3MSwgMC4wMDA3OCwgMC4wMDA3OTYsIDAuMDAwOCwgMC4wMDA4MDMsIDAuMDAwODA0LCAwLjAwMDgwNSIsIFwKLSAgICAgICAgICAiMC4wMDA3NzksIDAuMDAwNzg1LCAwLjAwMDc5NywgMC4wMDA4MDEsIDAuMDAwODAzLCAwLjAwMDgwNCwgMC4wMDA4MDUiLCBcCi0gICAgICAgICAgIjAuMDAwODE0LCAwLjAwMDgxLCAwLjAwMDgwNywgMC4wMDA4MDcsIDAuMDAwODA3LCAwLjAwMDgwNywgMC4wMDA4MDciLCBcCi0gICAgICAgICAgIjAuMDAwODY2LCAwLjAwMDg1LCAwLjAwMDgyNCwgMC4wMDA4MTksIDAuMDAwODE1LCAwLjAwMDgxMiwgMC4wMDA4MSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkExIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDM2NTcsIDAuMDAzNjU3LCAwLjAwMzY1OCwgMC4wMDM2NTcsIDAuMDAzNjU2LCAwLjAwMzY1NiwgMC4wMDM2NTQiLCBcCi0gICAgICAgICAgIjAuMDAzNjM3LCAwLjAwMzYzOCwgMC4wMDM2NDIsIDAuMDAzNjQxLCAwLjAwMzY0MSwgMC4wMDM2NCwgMC4wMDM2MzkiLCBcCi0gICAgICAgICAgIjAuMDAzNjUzLCAwLjAwMzY1MSwgMC4wMDM2NDQsIDAuMDAzNjQzLCAwLjAwMzY0MSwgMC4wMDM2MzksIDAuMDAzNjM4IiwgXAotICAgICAgICAgICIwLjAwMzY4MywgMC4wMDM2NzMsIDAuMDAzNjU0LCAwLjAwMzY0OCwgMC4wMDM2NDUsIDAuMDAzNjQxLCAwLjAwMzY0IiwgXAotICAgICAgICAgICIwLjAwMzcyOCwgMC4wMDM3MDUsIDAuMDAzNjY5LCAwLjAwMzY1OSwgMC4wMDM2NTMsIDAuMDAzNjQ1LCAwLjAwMzY0MyIsIFwKLSAgICAgICAgICAiMC4wMDM4MjUsIDAuMDAzNzc5LCAwLjAwMzcwMiwgMC4wMDM2ODMsIDAuMDAzNjY5LCAwLjAwMzY1NCwgMC4wMDM2NSIsIFwKLSAgICAgICAgICAiMC4wMDM5MzYsIDAuMDAzODU5LCAwLjAwMzc0MiwgMC4wMDM3MDksIDAuMDAzNjksIDAuMDAzNjY3LCAwLjAwMzY1OSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDU0MywgMC4wMDA1NDgsIDAuMDAwNTUzLCAwLjAwMDU1NCwgMC4wMDA1NTUsIDAuMDAwNTU1LCAwLjAwMDU1NiIsIFwKLSAgICAgICAgICAiMC4wMDA1MTIsIDAuMDAwNTI5LCAwLjAwMDU1NCwgMC4wMDA1NTksIDAuMDAwNTYyLCAwLjAwMDU2NCwgMC4wMDA1NjUiLCBcCi0gICAgICAgICAgIjAuMDAwNDc3LCAwLjAwMDUwMiwgMC4wMDA1NDMsIDAuMDAwNTUyLCAwLjAwMDU1OCwgMC4wMDA1NjMsIDAuMDAwNTY0IiwgXAotICAgICAgICAgICIwLjAwMDQ1OSwgMC4wMDA0ODUsIDAuMDAwNTM0LCAwLjAwMDU0NywgMC4wMDA1NTQsIDAuMDAwNTYsIDAuMDAwNTYyIiwgXAotICAgICAgICAgICIwLjAwMDQ1NywgMC4wMDA0OCwgMC4wMDA1MjksIDAuMDAwNTQzLCAwLjAwMDU1MSwgMC4wMDA1NTksIDAuMDAwNTYxIiwgXAotICAgICAgICAgICIwLjAwMDQ4MywgMC4wMDA0OTMsIDAuMDAwNTMxLCAwLjAwMDU0MywgMC4wMDA1NTEsIDAuMDAwNTU5LCAwLjAwMDU2MSIsIFwKLSAgICAgICAgICAiMC4wMDA1MjgsIDAuMDAwNTI3LCAwLjAwMDU0MiwgMC4wMDA1NSwgMC4wMDA1NTYsIDAuMDAwNTYyLCAwLjAwMDU2NCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDMxMDUsIDAuMDAzMTA3LCAwLjAwMzEwOSwgMC4wMDMxMDksIDAuMDAzMTA5LCAwLjAwMzEwOSwgMC4wMDMxMDkiLCBcCi0gICAgICAgICAgIjAuMDAzMTAzLCAwLjAwMzEwNiwgMC4wMDMxMTEsIDAuMDAzMTEyLCAwLjAwMzExMiwgMC4wMDMxMTIsIDAuMDAzMTEyIiwgXAotICAgICAgICAgICIwLjAwMzEzNSwgMC4wMDMxMjgsIDAuMDAzMTIxLCAwLjAwMzExOSwgMC4wMDMxMTYsIDAuMDAzMTE1LCAwLjAwMzExNiIsIFwKLSAgICAgICAgICAiMC4wMDMxNTIsIDAuMDAzMTY2LCAwLjAwMzEzNiwgMC4wMDMxMywgMC4wMDMxMjUsIDAuMDAzMTE5LCAwLjAwMzExOSIsIFwKLSAgICAgICAgICAiMC4wMDMxOTgsIDAuMDAzMjEzLCAwLjAwMzE1NywgMC4wMDMxNDQsIDAuMDAzMTM1LCAwLjAwMzEyNiwgMC4wMDMxMjMiLCBcCi0gICAgICAgICAgIjAuMDAzMzA3LCAwLjAwMzMwNywgMC4wMDMxOTcsIDAuMDAzMTcsIDAuMDAzMTU2LCAwLjAwMzE0MSwgMC4wMDMxMzMiLCBcCi0gICAgICAgICAgIjAuMDAzNDMyLCAwLjAwMzQxNSwgMC4wMDMyNDIsIDAuMDAzMjAzLCAwLjAwMzE3OSwgMC4wMDMxNTcsIDAuMDAzMTQ5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwODY4LCAwLjAwMDg3MiwgMC4wMDA4NzcsIDAuMDAwODc4LCAwLjAwMDg3OSwgMC4wMDA4NzksIDAuMDAwODc5IiwgXAotICAgICAgICAgICIwLjAwMDgyOSwgMC4wMDA4NDMsIDAuMDAwODY2LCAwLjAwMDg3MSwgMC4wMDA4NzQsIDAuMDAwODc2LCAwLjAwMDg3NiIsIFwKLSAgICAgICAgICAiMC4wMDA4MDksIDAuMDAwODI0LCAwLjAwMDg1NiwgMC4wMDA4NjQsIDAuMDAwODY5LCAwLjAwMDg3MywgMC4wMDA4NzQiLCBcCi0gICAgICAgICAgIjAuMDAwODE0LCAwLjAwMDgyNCwgMC4wMDA4NTIsIDAuMDAwODYxLCAwLjAwMDg2NiwgMC4wMDA4NzEsIDAuMDAwODczIiwgXAotICAgICAgICAgICIwLjAwMDgzOSwgMC4wMDA4MzksIDAuMDAwODU0LCAwLjAwMDg2MSwgMC4wMDA4NjYsIDAuMDAwODcxLCAwLjAwMDg3MiIsIFwKLSAgICAgICAgICAiMC4wMDA5MSwgMC4wMDA4OSwgMC4wMDA4NywgMC4wMDA4NywgMC4wMDA4NzIsIDAuMDAwODc0LCAwLjAwMDg3NSIsIFwKLSAgICAgICAgICAiMC4wMDA5ODgsIDAuMDAwOTQ4LCAwLjAwMDg5NCwgMC4wMDA4ODUsIDAuMDAwODgyLCAwLjAwMDg4LCAwLjAwMDg3OSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI1NjQsIDAuMDAyNTY3LCAwLjAwMjU3MiwgMC4wMDI1NzMsIDAuMDAyNTczLCAwLjAwMjU3MywgMC4wMDI1NzMiLCBcCi0gICAgICAgICAgIjAuMDAyNTY0LCAwLjAwMjU3MSwgMC4wMDI1ODEsIDAuMDAyNTg1LCAwLjAwMjU4NCwgMC4wMDI1ODUsIDAuMDAyNTg1IiwgXAotICAgICAgICAgICIwLjAwMjU4NywgMC4wMDI1ODcsIDAuMDAyNTg5LCAwLjAwMjU4OSwgMC4wMDI1OTEsIDAuMDAyNTkzLCAwLjAwMjU5NCIsIFwKLSAgICAgICAgICAiMC4wMDI2MjUsIDAuMDAyNjE0LCAwLjAwMjYsIDAuMDAyNTk3LCAwLjAwMjU5NSwgMC4wMDI1OTQsIDAuMDAyNTk1IiwgXAotICAgICAgICAgICIwLjAwMjY3OSwgMC4wMDI2NSwgMC4wMDI2MTYsIDAuMDAyNjA4LCAwLjAwMjYwMywgMC4wMDI1OTksIDAuMDAyNTk3IiwgXAotICAgICAgICAgICIwLjAwMjgwOSwgMC4wMDI3NDUsIDAuMDAyNjU1LCAwLjAwMjYzNSwgMC4wMDI2MjMsIDAuMDAyNjExLCAwLjAwMjYwOCIsIFwKLSAgICAgICAgICAiMC4wMDI4ODcsIDAuMDAyODQ4LCAwLjAwMjY5OCwgMC4wMDI2NjUsIDAuMDAyNjQ1LCAwLjAwMjYyNiwgMC4wMDI2MiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDg2NSwgMC4wMDA4NywgMC4wMDA4NzcsIDAuMDAwODc4LCAwLjAwMDg3OCwgMC4wMDA4NzgsIDAuMDAwODc4IiwgXAotICAgICAgICAgICIwLjAwMDgzNSwgMC4wMDA4NDcsIDAuMDAwODY3LCAwLjAwMDg3MSwgMC4wMDA4NzQsIDAuMDAwODc2LCAwLjAwMDg3NyIsIFwKLSAgICAgICAgICAiMC4wMDA4MzcsIDAuMDAwODQzLCAwLjAwMDg2MiwgMC4wMDA4NjgsIDAuMDAwODcyLCAwLjAwMDg3NSwgMC4wMDA4NzUiLCBcCi0gICAgICAgICAgIjAuMDAwODc5LCAwLjAwMDg3MSwgMC4wMDA4NzEsIDAuMDAwODczLCAwLjAwMDg3NSwgMC4wMDA4NzYsIDAuMDAwODc3IiwgXAotICAgICAgICAgICIwLjAwMDkzMywgMC4wMDA5MTMsIDAuMDAwODg3LCAwLjAwMDg4MywgMC4wMDA4ODIsIDAuMDAwODgsIDAuMDAwODgiLCBcCi0gICAgICAgICAgIjAuMDAxMDQ5LCAwLjAwMTAwMiwgMC4wMDA5MjgsIDAuMDAwOTEsIDAuMDAwODk5LCAwLjAwMDg5MSwgMC4wMDA4ODkiLCBcCi0gICAgICAgICAgIjAuMDAxMTY2LCAwLjAwMTA5MSwgMC4wMDA5NjgsIDAuMDAwOTM2LCAwLjAwMDkxOCwgMC4wMDA5MDIsIDAuMDAwODk4Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogT0FJMzFYMSAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChPQUkzMVgxKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMzE4OTc7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA5NDcyMDM7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwOTQ0NjUyOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDk0NzIwMzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA1MjQsIDAuMDAwNTI0LCAwLjAwMDUyMywgMC4wMDA1MjMsIDAuMDAwNTIzLCAwLjAwMDUyMywgMC4wMDA1MjMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA1MjksIDAuMDAwNTI2LCAwLjAwMDUyNiwgMC4wMDA1MjYsIDAuMDAwNTI2LCAwLjAwMDUyNiwgMC4wMDA1MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEExKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA5NzIwMzY7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwOTcwMzA4OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDk3MjAzNjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA1MjQsIDAuMDAwNTI0LCAwLjAwMDUyNCwgMC4wMDA1MjQsIDAuMDAwNTI0LCAwLjAwMDUyNCwgMC4wMDA1MjQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA1MjksIDAuMDAwNTI2LCAwLjAwMDUyNSwgMC4wMDA1MjUsIDAuMDAwNTI1LCAwLjAwMDUyNiwgMC4wMDA1MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEEyKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA5NzEwOTg7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwOTcxMDk4OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDk2OTIzOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDUyNCwgMC4wMDA1MjQsIDAuMDAwNTI0LCAwLjAwMDUyNCwgMC4wMDA1MjQsIDAuMDAwNTI0LCAwLjAwMDUyNCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDUyOSwgMC4wMDA1MjYsIDAuMDAwNTI1LCAwLjAwMDUyNSwgMC4wMDA1MjYsIDAuMDAwNTI1LCAwLjAwMDUyNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQjApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDk1NTA3ODsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA5NTQ4Mjc7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwOTU1MDc4OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDQxOCwgMC4wMDA0MTgsIDAuMDAwNDE5LCAwLjAwMDQxOCwgMC4wMDA0MTksIDAuMDAwNDE5LCAwLjAwMDQxOSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDU5NiwgMC4wMDA1OTYsIDAuMDAwNTk2LCAwLjAwMDU5NiwgMC4wMDA1OTYsIDAuMDAwNTk2LCAwLjAwMDU5NiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjEyOTM3NTsKLSAgICBmdW5jdGlvbiA6ICIoISgoKEEwK0ExKStBMikgQjApKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTAiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwNTkwNywgMC4xNTQ5NywgMC40MzI0NTcsIDAuNjc3MjkxLCAxLjAwNDE2LCAxLjY1NTM1LCAyLjA2NTU3IiwgXAotICAgICAgICAgICIwLjExMTIxLCAwLjE2MDI2OSwgMC40Mzc2OTMsIDAuNjgyMjIyLCAxLjAwODA3LCAxLjY1OTk5LCAyLjA2NzciLCBcCi0gICAgICAgICAgIjAuMTE2MzgzLCAwLjE2NTQ3NSwgMC40NDMxMzYsIDAuNjg3NDg3LCAxLjAxNDQ3LCAxLjY2NTg2LCAyLjA3NTU4IiwgXAotICAgICAgICAgICIwLjEyMTQ1MiwgMC4xNzA1NDgsIDAuNDQ4MDI0LCAwLjY5MzE0MywgMS4wMTg3LCAxLjY3MTY4LCAyLjA3OTUiLCBcCi0gICAgICAgICAgIjAuMTI2NTU5LCAwLjE3NTU4NywgMC40NTMyMTIsIDAuNjk3NjY1LCAxLjAyNDMzLCAxLjY3NjA3LCAyLjA4NjAzIiwgXAotICAgICAgICAgICIwLjEzNDY1NCwgMC4xODM3OTYsIDAuNDYxNTI2LCAwLjcwNTg5MSwgMS4wMzIsIDEuNjg0MjYsIDIuMDkzODgiLCBcCi0gICAgICAgICAgIjAuMTQxMjEsIDAuMTkwOTA2LCAwLjQ2ODQyMywgMC43MTMzODIsIDEuMDM5NDIsIDEuNjkxNzEsIDIuMDk4OTIiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjAxNjE1LCAwLjMwNDczNCwgMC44ODgyODUsIDEuNDAzMDMsIDIuMDg5OTksIDMuNDYxMTMsIDQuMzIxMjciLCBcCi0gICAgICAgICAgIjAuMjAxNjgxLCAwLjMwNDcyMywgMC44ODg2NjEsIDEuNDAzNTQsIDIuMDg5NzcsIDMuNDYxNjYsIDQuMzIwMTciLCBcCi0gICAgICAgICAgIjAuMjAyMzAxLCAwLjMwNDkxLCAwLjg4ODQxNSwgMS40MDMzNywgMi4wODk3NywgMy40NjA5MiwgNC4zMjA2NiIsIFwKLSAgICAgICAgICAiMC4yMDQwOTksIDAuMzA1OTQ3LCAwLjg4ODY2NiwgMS40MDM0MiwgMi4wODk0NywgMy40NjE0LCA0LjMyMDY2IiwgXAotICAgICAgICAgICIwLjIwNjgwNSwgMC4zMDc2OTYsIDAuODg4MzkzLCAxLjQwMzQ1LCAyLjA4OSwgMy40NjI2NCwgNC4zMjExIiwgXAotICAgICAgICAgICIwLjIxMjIyMiwgMC4zMTE4MjcsIDAuODg4OTY5LCAxLjQwMzQzLCAyLjA4OTQ4LCAzLjQ2MDk0LCA0LjMyMDE2IiwgXAotICAgICAgICAgICIwLjIxNzk0MiwgMC4zMTYzMDEsIDAuODkwMjcyLCAxLjQwMjk2LCAyLjA4OSwgMy40NjI4MywgNC4zMTg0NCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzMwNjksIDAuMTA1ODcyLCAwLjI5MDY0LCAwLjQ1MzY2MiwgMC42NzEwMDQsIDEuMTA1NzQsIDEuMzc2NzgiLCBcCi0gICAgICAgICAgIjAuMDgwMDU3LCAwLjExMjgwMSwgMC4yOTc2ODYsIDAuNDYwNTU5LCAwLjY3NzY1MSwgMS4xMTE4NiwgMS4zODMzNCIsIFwKLSAgICAgICAgICAiMC4wODgxMTYsIDAuMTIwODkyLCAwLjMwNTgxMiwgMC40Njg3MTEsIDAuNjg1OTIsIDEuMTIwMDgsIDEuMzkyNTgiLCBcCi0gICAgICAgICAgIjAuMDk2MjUzLCAwLjEyOTA1NCwgMC4zMTM5NzQsIDAuNDc3MDQsIDAuNjk0MTk0LCAxLjEyODQ1LCAxLjQwMDY4IiwgXAotICAgICAgICAgICIwLjEwNDI0MSwgMC4xMzcwNDUsIDAuMzIyMDM5LCAwLjQ4NTA4MywgMC43MDI1MjMsIDEuMTM2NTQsIDEuNDA4ODMiLCBcCi0gICAgICAgICAgIjAuMTE2MzIyLCAwLjE1MDA1OCwgMC4zMzQ5NzIsIDAuNDk4Mzk2LCAwLjcxNTQ5MywgMS4xNTAwOSwgMS40MjE1NCIsIFwKLSAgICAgICAgICAiMC4xMjU1MDgsIDAuMTYwOTQxLCAwLjM0NjMwNywgMC41MDk0OTMsIDAuNzI3MTY4LCAxLjE2MTI2LCAxLjQzMjc5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEzMTY2OSwgMC4xOTg4MjgsIDAuNTc5NjY2LCAwLjkxNTYyOSwgMS4zNjMzOCwgMi4yNTkyMiwgMi44MTgzOCIsIFwKLSAgICAgICAgICAiMC4xMzE2MjIsIDAuMTk4Nzc1LCAwLjU3OTYzLCAwLjkxNjI2NSwgMS4zNjM2LCAyLjI1ODY5LCAyLjgxOTkiLCBcCi0gICAgICAgICAgIjAuMTMzMzQ2LCAwLjE5OTM4OSwgMC41Nzk3NjIsIDAuOTE2MzQxLCAxLjM2MzIzLCAyLjI1ODY5LCAyLjgxOTMyIiwgXAotICAgICAgICAgICIwLjEzNjkwOSwgMC4yMDE3NTUsIDAuNTc5Nzg0LCAwLjkxNTc5OCwgMS4zNjMyMywgMi4yNTg5NywgMi44MTkzNiIsIFwKLSAgICAgICAgICAiMC4xNDE2NDgsIDAuMjA1NDExLCAwLjU3OTk0MSwgMC45MTYxNzksIDEuMzYzMzksIDIuMjU4ODYsIDIuODE5MzMiLCBcCi0gICAgICAgICAgIjAuMTUwNjU5LCAwLjIxMjc2OCwgMC41ODE4MDcsIDAuOTE1NzcyLCAxLjM2MzU0LCAyLjI1ODcsIDIuODE4MjUiLCBcCi0gICAgICAgICAgIjAuMTU5NzMzLCAwLjIyMDI0OCwgMC41ODQ3MzksIDAuOTE2ODA2LCAxLjM2MzQsIDIuMjU5NjMsIDIuODIwNTkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwNDA0OSwgMC4xNTMxMjIsIDAuNDMwOTQsIDAuNjc1NDM3LCAxLjAwMTU1LCAxLjY1NTA5LCAyLjA2MTU5IiwgXAotICAgICAgICAgICIwLjExMDI5MywgMC4xNTk0NTEsIDAuNDM3MDM1LCAwLjY4MTY4MywgMS4wMDgzOSwgMS42NjIwMywgMi4wNjgwOSIsIFwKLSAgICAgICAgICAiMC4xMTc3NTksIDAuMTY2ODgsIDAuNDQ0NDUxLCAwLjY4ODg3NywgMS4wMTQ5MywgMS42Njc4MywgMi4wNzY2NyIsIFwKLSAgICAgICAgICAiMC4xMjUzNzUsIDAuMTc0MzE3LCAwLjQ1MjE3LCAwLjY5NzE2OSwgMS4wMjI1NCwgMS42NzU0MiwgMi4wODI5MSIsIFwKLSAgICAgICAgICAiMC4xMzI5NywgMC4xODE5MTIsIDAuNDU5NjM4LCAwLjcwNDQxNywgMS4wMzAyOSwgMS42ODQxNSwgMi4wOTI4NyIsIFwKLSAgICAgICAgICAiMC4xNDU0MzEsIDAuMTk0MjE2LCAwLjQ3MTgyNSwgMC43MTY0MzMsIDEuMDQzMzUsIDEuNjk0NzgsIDIuMTAzNDkiLCBcCi0gICAgICAgICAgIjAuMTU1MzQ2LCAwLjIwNDk3OCwgMC40ODI1NjcsIDAuNzI2OTU5LCAxLjA1NDE4LCAxLjcwNTczLCAyLjExNTYiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjAxNzgsIDAuMzA0Nzg2LCAwLjg4ODU5NCwgMS40MDMzLCAyLjA4OTA4LCAzLjQ2MjcxLCA0LjMxOTEyIiwgXAotICAgICAgICAgICIwLjIwMTY5MiwgMC4zMDQ4MzMsIDAuODg4NTI0LCAxLjQwMzI2LCAyLjA4OTk2LCAzLjQ2MzM1LCA0LjMxOTA3IiwgXAotICAgICAgICAgICIwLjIwMjYyNiwgMC4zMDQ3NjUsIDAuODg4NzM5LCAxLjQwMzM4LCAyLjA4OTQyLCAzLjQ2MTQzLCA0LjMyMDk2IiwgXAotICAgICAgICAgICIwLjIwNTQxNSwgMC4zMDYyMDIsIDAuODg4MTc5LCAxLjQwMzM4LCAyLjA4OTE0LCAzLjQ2MTQyLCA0LjMyMDkyIiwgXAotICAgICAgICAgICIwLjIwOTQ0OSwgMC4zMDg2NDcsIDAuODg4NTgsIDEuNDAyODUsIDIuMDg5NDEsIDMuNDYyMzIsIDQuMzIxMTgiLCBcCi0gICAgICAgICAgIjAuMjE3NjUsIDAuMzE0ODksIDAuODg4NzksIDEuNDAzNTgsIDIuMDg5NTksIDMuNDYyNzgsIDQuMzE5MTciLCBcCi0gICAgICAgICAgIjAuMjI1NjIyLCAwLjMyMTU0OSwgMC44OTAyOTgsIDEuNDAzNDcsIDIuMDg5NjcsIDMuNDYxMTksIDQuMzIwOTEiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDcwNDY0LCAwLjEwMzEzNSwgMC4yODc3OTcsIDAuNDUwODg0LCAwLjY2NzkxMSwgMS4xMDIyMSwgMS4zNzQ4MyIsIFwKLSAgICAgICAgICAiMC4wNzc0OTQsIDAuMTEwMTM1LCAwLjI5NDgxOSwgMC40NTc2MzksIDAuNjc0OTIzLCAxLjEwOTIzLCAxLjM4MDI1IiwgXAotICAgICAgICAgICIwLjA4NTQ4OSwgMC4xMTgyODcsIDAuMzAzMDM4LCAwLjQ2NTk4NiwgMC42ODMwNDEsIDEuMTE3MjMsIDEuMzg5NDMiLCBcCi0gICAgICAgICAgIjAuMDkzNTU5LCAwLjEyNjE4NiwgMC4zMTExMzQsIDAuNDc0MDkzLCAwLjY5MTY5OCwgMS4xMjU0NCwgMS4zOTg1MSIsIFwKLSAgICAgICAgICAiMC4xMDE1NDUsIDAuMTM0NDQyLCAwLjMxOTMyLCAwLjQ4MjQzOSwgMC42OTk3NSwgMS4xMzM3NiwgMS40MDU5IiwgXAotICAgICAgICAgICIwLjExMzM2MSwgMC4xNDc0NjIsIDAuMzMyMTg0LCAwLjQ5NTU0MSwgMC43MTI3MTIsIDEuMTQ3MDksIDEuNDE4OTciLCBcCi0gICAgICAgICAgIjAuMTIyMTg2LCAwLjE1ODAxMywgMC4zNDM1OTcsIDAuNTA2NjUzLCAwLjcyNDMyLCAxLjE1ODksIDEuNDMwNDEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTI4MDU0LCAwLjE5NTI4LCAwLjU3NjE0MSwgMC45MTE5OTksIDEuMzU5NjgsIDIuMjU1MDMsIDIuODE1NzciLCBcCi0gICAgICAgICAgIjAuMTI4MDM5LCAwLjE5NTI5NywgMC41NzYwNjMsIDAuOTExNzcsIDEuMzYwMDQsIDIuMjU1OTksIDIuODE2ODciLCBcCi0gICAgICAgICAgIjAuMTI5NzMsIDAuMTk1ODczLCAwLjU3NjA4OSwgMC45MTE2NywgMS4zNjA0LCAyLjI1NTExLCAyLjgxNTY4IiwgXAotICAgICAgICAgICIwLjEzMzQ5OSwgMC4xOTgxNzMsIDAuNTc2MDY1LCAwLjkxMTc0MiwgMS4zNjAwOCwgMi4yNTY4NywgMi44MTYxIiwgXAotICAgICAgICAgICIwLjEzODI2OCwgMC4yMDIwODIsIDAuNTc2MjE0LCAwLjkxMTgzOSwgMS4zNTk3NywgMi4yNTUxNCwgMi44MTQ4MSIsIFwKLSAgICAgICAgICAiMC4xNDc1NTUsIDAuMjA5NTgyLCAwLjU3ODE0NCwgMC45MTE3ODMsIDEuMzU5NTksIDIuMjU1MDEsIDIuODE0NjMiLCBcCi0gICAgICAgICAgIjAuMTU2NTMyLCAwLjIxNzA4OCwgMC41ODE0NDQsIDAuOTEyOTA3LCAxLjM1OTQ0LCAyLjI1NDkzLCAyLjgxNDY2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEyIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTk2MjcsIDAuMTQ4NjksIDAuNDI2NDQ0LCAwLjY3MDg5NywgMC45OTcxMjIsIDEuNjUxMDMsIDIuMDU3MjkiLCBcCi0gICAgICAgICAgIjAuMTA2NTc3LCAwLjE1NTY1LCAwLjQzMzAzNSwgMC42Nzg0MjcsIDEuMDA0MzksIDEuNjU1ODIsIDIuMDY1ODgiLCBcCi0gICAgICAgICAgIjAuMTE1NzU2LCAwLjE2NDgwMSwgMC40NDIyMzEsIDAuNjg2MzUyLCAxLjAxMzIxLCAxLjY2NTkxLCAyLjA3NDQ2IiwgXAotICAgICAgICAgICIwLjEyNTA1LCAwLjE3NDAzNywgMC40NTEyODMsIDAuNjk1OTMyLCAxLjAyMTg4LCAxLjY3NTE4LCAyLjA4MzkzIiwgXAotICAgICAgICAgICIwLjEzNDA5NiwgMC4xODI5NSwgMC40NTk5NjYsIDAuNzA0Njc1LCAxLjAzMTMzLCAxLjY4NDM0LCAyLjA5MzA2IiwgXAotICAgICAgICAgICIwLjE0OTQ4MSwgMC4xOTc5NDMsIDAuNDc0ODUxLCAwLjcxODk5MiwgMS4wNDUzMSwgMS42OTkxNywgMi4xMDQ0NyIsIFwKLSAgICAgICAgICAiMC4xNjI1ODEsIDAuMjExMjY1LCAwLjQ4NzM4NCwgMC43MzE4MzUsIDEuMDU4NDksIDEuNzA5OTksIDIuMTE5MzkiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjAxNjI2LCAwLjMwNDczMiwgMC44ODg5MDksIDEuNDAyODMsIDIuMDg5MDgsIDMuNDYzMDksIDQuMzE5MTUiLCBcCi0gICAgICAgICAgIjAuMjAxNzI0LCAwLjMwNDg3NSwgMC44ODg1MSwgMS40MDM3OSwgMi4wODkxNCwgMy40NjI1MSwgNC4zMjEwNCIsIFwKLSAgICAgICAgICAiMC4yMDI3OTUsIDAuMzA0NzksIDAuODg4NjIsIDEuNDAyOTQsIDIuMDg5ODksIDMuNDYyNTksIDQuMzE5OCIsIFwKLSAgICAgICAgICAiMC4yMDY4MzUsIDAuMzA2NDksIDAuODg4NTM1LCAxLjQwMzU5LCAyLjA4OTg1LCAzLjQ2MjUxLCA0LjMyMTI0IiwgXAotICAgICAgICAgICIwLjIxMjcwOSwgMC4zMTA0NzcsIDAuODg4NDMyLCAxLjQwMzcsIDIuMDg5NzUsIDMuNDYyMjksIDQuMzIxMTciLCBcCi0gICAgICAgICAgIjAuMjIzODQ2LCAwLjMxODk0MywgMC44ODg1MDksIDEuNDAzMzEsIDIuMDg5MzEsIDMuNDYyOTMsIDQuMzE5NzUiLCBcCi0gICAgICAgICAgIjAuMjM0ODE0LCAwLjMyODI0NSwgMC44OTAyMjEsIDEuNDAzNTUsIDIuMDg5NTksIDMuNDYxMiwgNC4zMTk3NSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjU2OTYsIDAuMDk3NDI1LCAwLjI3NzE4NCwgMC40MzU2NDIsIDAuNjQ3NDA5LCAxLjA3MDgyLCAxLjMzNDQxIiwgXAotICAgICAgICAgICIwLjA3Mjg4OCwgMC4xMDQ3MDgsIDAuMjg0NTIyLCAwLjQ0MzAzMiwgMC42NTQ4NTgsIDEuMDc3NzQsIDEuMzQyMTYiLCBcCi0gICAgICAgICAgIjAuMDgxMDE0LCAwLjExMjk2MywgMC4yOTI5MTMsIDAuNDUxNTEsIDAuNjYyODk3LCAxLjA4Njg2LCAxLjM1MDY3IiwgXAotICAgICAgICAgICIwLjA4OTIsIDAuMTIxMDE3LCAwLjMwMTEzOCwgMC40NTk4ODMsIDAuNjcxMTcxLCAxLjA5NDA5LCAxLjM1ODMzIiwgXAotICAgICAgICAgICIwLjA5NzMzMywgMC4xMjk0MDMsIDAuMzA5NDM1LCAwLjQ2ODI4OSwgMC42Nzk1NzksIDEuMTAyMzgsIDEuMzY3MzkiLCBcCi0gICAgICAgICAgIjAuMTA4NzI2LCAwLjE0MjU2OCwgMC4zMjI1MiwgMC40ODE5MzYsIDAuNjkzMjE5LCAxLjExNjEzLCAxLjM4MDM3IiwgXAotICAgICAgICAgICIwLjExNzYwMiwgMC4xNTMxODMsIDAuMzM0MDg5LCAwLjQ5MzM4LCAwLjcwNTAyNiwgMS4xMjc4MiwgMS4zOTIwOSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMjA1OTQsIDAuMTg1NzE5LCAwLjU1NDg1NCwgMC44ODQzNDMsIDEuMzE0MDQsIDIuMTgyOTUsIDIuNzI0MzMiLCBcCi0gICAgICAgICAgIjAuMTIwNiwgMC4xODU0MTUsIDAuNTU0MzYsIDAuODg0MjQzLCAxLjMxNDA0LCAyLjE4MTYzLCAyLjcyNDIiLCBcCi0gICAgICAgICAgIjAuMTIyMzA1LCAwLjE4NjUzNSwgMC41NTQzMywgMC44Nzk4OTQsIDEuMzEzODUsIDIuMTgzMTUsIDIuNzI0OSIsIFwKLSAgICAgICAgICAiMC4xMjYyNjYsIDAuMTg4NzcxLCAwLjU1NzAzOCwgMC44ODAzNzMsIDEuMzIwNTEsIDIuMTg1MTMsIDIuNzI0NjgiLCBcCi0gICAgICAgICAgIjAuMTMxNDA0LCAwLjE5Mjc1MiwgMC41NTQ4NzIsIDAuODc5NzA3LCAxLjMyMDU5LCAyLjE5MzA0LCAyLjcyNDgyIiwgXAotICAgICAgICAgICIwLjE0MDg5MywgMC4yMDA2NzcsIDAuNTU3NzcxLCAwLjg3OTc2MiwgMS4zMTM3OSwgMi4xODE3OCwgMi43MjQ1NiIsIFwKLSAgICAgICAgICAiMC4xNTAzNjUsIDAuMjA4NDY4LCAwLjU2MDc3NCwgMC44ODEwNzgsIDEuMzEzOTEsIDIuMTgxOTEsIDIuNzI0NTUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjAiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzNzIyMywgMC4wNTU5MTksIDAuMTYxNzQyLCAwLjI1NTA1NiwgMC4zNzk0NDIsIDAuNjI4MDM4LCAwLjc4MzI3NiIsIFwKLSAgICAgICAgICAiMC4wNDU0NzcsIDAuMDY0MTg0LCAwLjE3MDAxLCAwLjI2MzMwNSwgMC4zODc2NDMsIDAuNjM2MTM3LCAwLjc5MTU5OCIsIFwKLSAgICAgICAgICAiMC4wNTYwMTYsIDAuMDc0NzAzLCAwLjE4MDUwMywgMC4yNzM4MDMsIDAuMzk4MTY0LCAwLjY0NjY2MywgMC44MDE5MjUiLCBcCi0gICAgICAgICAgIjAuMDY1OTY0LCAwLjA4NTE0NCwgMC4xOTA3MzQsIDAuMjg0MDMsIDAuNDA4MzUzLCAwLjY1NjY5NSwgMC44MTE5ODUiLCBcCi0gICAgICAgICAgIjAuMDc0MTM5LCAwLjA5NTU5MywgMC4yMDExOTYsIDAuMjk0NDg2LCAwLjQxODgwMSwgMC42NjcwNzUsIDAuODIyNCIsIFwKLSAgICAgICAgICAiMC4wODQ4NDEsIDAuMTA5NzQxLCAwLjIxNzk2MSwgMC4zMTExMSwgMC40MzU0MjYsIDAuNjgzODg2LCAwLjgzOTIyOCIsIFwKLSAgICAgICAgICAiMC4wOTMyMzgsIDAuMTIwMzMsIDAuMjMyNzM2LCAwLjMyNTc3OCwgMC40NDk5ODMsIDAuNjk4NDcsIDAuODUzNzY5Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3OTI1MSwgMC4xMTgzMjIsIDAuMzQwMjIsIDAuNTM2MTM1LCAwLjc5NzcxMSwgMS4zMjAzOCwgMS42NDc1MyIsIFwKLSAgICAgICAgICAiMC4wODA3MDUsIDAuMTE4Njc1LCAwLjM0MDIsIDAuNTM2MjUyLCAwLjc5NzQ2MywgMS4zMjA2NSwgMS42NDc1NyIsIFwKLSAgICAgICAgICAiMC4wODcxNTQsIDAuMTIzMTA3LCAwLjM0MDEyNywgMC41MzYxMjgsIDAuNzk3NDgyLCAxLjMyMDU1LCAxLjY0NzQ5IiwgXAotICAgICAgICAgICIwLjA5NTg3NiwgMC4xMzAyODYsIDAuMzQxNDYyLCAwLjUzNjAzNSwgMC43OTc0NDgsIDEuMzIwNDksIDEuNjQ3NDYiLCBcCi0gICAgICAgICAgIjAuMTA1Mjc0LCAwLjEzODU3MSwgMC4zNDQ4NzgsIDAuNTM2NTY0LCAwLjc5NzQ3NSwgMS4zMjA0NiwgMS42NDc1MiIsIFwKLSAgICAgICAgICAiMC4xMjEwODksIDAuMTUzMjUyLCAwLjM1MzA0NCwgMC41NDA3MTMsIDAuNzk3ODI5LCAxLjMyMDU2LCAxLjY0NzU2IiwgXAotICAgICAgICAgICIwLjEzMjk2MSwgMC4xNjY4MzMsIDAuMzYxODY3LCAwLjU0NjQ4NywgMC44MDAxNjIsIDEuMzIwNDUsIDEuNjQ2OTUiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY5MjY0LCAwLjEwMjAyNCwgMC4yODY5MTcsIDAuNDQ5NzE3LCAwLjY2NzE4MiwgMS4xMDE4MywgMS4zNzI5OSIsIFwKLSAgICAgICAgICAiMC4wNzY4MTMsIDAuMTA5NjA2LCAwLjI5NDUyLCAwLjQ1NzMzNiwgMC42NzQ2MTcsIDEuMTA5MDYsIDEuMzgwMjEiLCBcCi0gICAgICAgICAgIjAuMDg2NTk4LCAwLjExOTM4NSwgMC4zMDQyNTQsIDAuNDY3MjM5LCAwLjY4NDM1MSwgMS4xMTg2NSwgMS4zOTEwNyIsIFwKLSAgICAgICAgICAiMC4wOTY1OTMsIDAuMTI5MjA5LCAwLjMxMzk3MSwgMC40NzcxMTYsIDAuNjkzOTk4LCAxLjEyODM1LCAxLjQwMDgyIiwgXAotICAgICAgICAgICIwLjEwNjczMiwgMC4xMzkyNDIsIDAuMzIzODMxLCAwLjQ4NjczNSwgMC43MDQxNTIsIDEuMTM4MzcsIDEuNDA5NjEiLCBcCi0gICAgICAgICAgIjAuMTIyMjgxLCAwLjE1NTQxNSwgMC4zMzk1MzcsIDAuNTAwMjk5LCAwLjcxOTQ3OCwgMS4xNTM2OSwgMS40MjUxNCIsIFwKLSAgICAgICAgICAiMC4xMzM4ODQsIDAuMTY5NjIxLCAwLjM1MzQ1OSwgMC41MTYxOTcsIDAuNzMzMjA2LCAxLjE2NzYzLCAxLjQzODczIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEzMTY1NSwgMC4xOTg3OTUsIDAuNTc5NzEzLCAwLjkxNjA1MiwgMS4zNjM3OSwgMi4yNTkxNCwgMi44MTgzNCIsIFwKLSAgICAgICAgICAiMC4xMzE1MzksIDAuMTk4NzY2LCAwLjU3OTkwOSwgMC45MTU2MzcsIDEuMzYzNzksIDIuMjU5MzMsIDIuODE4NTMiLCBcCi0gICAgICAgICAgIjAuMTM0NTMyLCAwLjE5OTY4MiwgMC41Nzk4ODIsIDAuOTE1NjI5LCAxLjM2MzcyLCAyLjI1ODk1LCAyLjgxOTMzIiwgXAotICAgICAgICAgICIwLjE0MDIzMywgMC4yMDM1MTUsIDAuNTc5Nzc4LCAwLjkxNTgzOCwgMS4zNjM2MiwgMi4yNTg3NCwgMi44MTkzNCIsIFwKLSAgICAgICAgICAiMC4xNDczMSwgMC4yMDkxNjcsIDAuNTc5NjY4LCAwLjkxNTY0LCAxLjM2MzQzLCAyLjI1OTc1LCAyLjgxODI5IiwgXAotICAgICAgICAgICIwLjE2MDE0NSwgMC4yMTk5MzIsIDAuNTgyNTkxLCAwLjkxNTk1MiwgMS4zNjM3OSwgMi4yNTg4OSwgMi44MTg0IiwgXAotICAgICAgICAgICIwLjE3MjA3MiwgMC4yMzA3NzQsIDAuNTg3MDU0LCAwLjkxNjQ5OCwgMS4zNjM2NiwgMi4yNTg5NiwgMi44MTg2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzk0MywgMC4wMDM5NDMsIDAuMDAzOTQzLCAwLjAwMzk0MiwgMC4wMDM5NDIsIDAuMDAzOTQxLCAwLjAwMzkzOCIsIFwKLSAgICAgICAgICAiMC4wMDM5MjQsIDAuMDAzOTI3LCAwLjAwMzkzMiwgMC4wMDM5MzIsIDAuMDAzOTI3LCAwLjAwMzkzNywgMC4wMDM5MjkiLCBcCi0gICAgICAgICAgIjAuMDAzOTE1LCAwLjAwMzkyLCAwLjAwMzkyOCwgMC4wMDM5MywgMC4wMDM5MjgsIDAuMDAzOTI3LCAwLjAwMzkyNiIsIFwKLSAgICAgICAgICAiMC4wMDM5MTcsIDAuMDAzOTIxLCAwLjAwMzkyOCwgMC4wMDM5MjksIDAuMDAzOTI5LCAwLjAwMzkyOCwgMC4wMDM5MjciLCBcCi0gICAgICAgICAgIjAuMDAzOTMxLCAwLjAwMzkzLCAwLjAwMzkzMiwgMC4wMDM5MzIsIDAuMDAzOTMxLCAwLjAwMzkzMSwgMC4wMDM5MjkiLCBcCi0gICAgICAgICAgIjAuMDAzOTczLCAwLjAwMzk2MywgMC4wMDM5NDYsIDAuMDAzOTQyLCAwLjAwMzkzNywgMC4wMDM5MzMsIDAuMDAzOTMyIiwgXAotICAgICAgICAgICIwLjAwNDAyNywgMC4wMDQwMDUsIDAuMDAzOTY3LCAwLjAwMzk1NCwgMC4wMDM5NDgsIDAuMDAzOTQsIDAuMDAzOTM2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwODE0LCAwLjAwMDgxNSwgMC4wMDA4MTUsIDAuMDAwODE1LCAwLjAwMDgxNSwgMC4wMDA4MTQsIDAuMDAwODE0IiwgXAotICAgICAgICAgICIwLjAwMDc4NCwgMC4wMDA3ODYsIDAuMDAwNzksIDAuMDAwNzkxLCAwLjAwMDc5MSwgMC4wMDA3OTEsIDAuMDAwNzkxIiwgXAotICAgICAgICAgICIwLjAwMDc3NSwgMC4wMDA3NzksIDAuMDAwNzg1LCAwLjAwMDc4NiwgMC4wMDA3ODcsIDAuMDAwNzg3LCAwLjAwMDc4NyIsIFwKLSAgICAgICAgICAiMC4wMDA3NzgsIDAuMDAwNzgxLCAwLjAwMDc4NSwgMC4wMDA3ODYsIDAuMDAwNzg2LCAwLjAwMDc4NiwgMC4wMDA3ODYiLCBcCi0gICAgICAgICAgIjAuMDAwNzk1LCAwLjAwMDc5MywgMC4wMDA3OSwgMC4wMDA3ODksIDAuMDAwNzg4LCAwLjAwMDc4NywgMC4wMDA3ODciLCBcCi0gICAgICAgICAgIjAuMDAwODQxLCAwLjAwMDgyOSwgMC4wMDA4MDUsIDAuMDAwNzk5LCAwLjAwMDc5NiwgMC4wMDA3OTIsIDAuMDAwNzkiLCBcCi0gICAgICAgICAgIjAuMDAwOTA4LCAwLjAwMDg3NiwgMC4wMDA4MjcsIDAuMDAwODE1LCAwLjAwMDgwNiwgMC4wMDA3OTgsIDAuMDAwNzk1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzUxLCAwLjAwMzUxLCAwLjAwMzUxLCAwLjAwMzUwOSwgMC4wMDM1MDgsIDAuMDAzNTA3LCAwLjAwMzUwNiIsIFwKLSAgICAgICAgICAiMC4wMDM0OTEsIDAuMDAzNDk0LCAwLjAwMzQ5OCwgMC4wMDM0OTgsIDAuMDAzNDk4LCAwLjAwMzQ5NywgMC4wMDM0OTUiLCBcCi0gICAgICAgICAgIjAuMDAzNDg0LCAwLjAwMzQ4OSwgMC4wMDM0OTUsIDAuMDAzNDk3LCAwLjAwMzQ5NiwgMC4wMDM0OTUsIDAuMDAzNDk0IiwgXAotICAgICAgICAgICIwLjAwMzQ5MiwgMC4wMDM0OTMsIDAuMDAzNDk2LCAwLjAwMzQ5NiwgMC4wMDM0OTYsIDAuMDAzNDk1LCAwLjAwMzQ5NSIsIFwKLSAgICAgICAgICAiMC4wMDM1MTEsIDAuMDAzNTA3LCAwLjAwMzUwMiwgMC4wMDM1LCAwLjAwMzUsIDAuMDAzNDk2LCAwLjAwMzQ5NSIsIFwKLSAgICAgICAgICAiMC4wMDM1NjcsIDAuMDAzNTQ2LCAwLjAwMzUxOSwgMC4wMDM1MTIsIDAuMDAzNTA3LCAwLjAwMzUwMiwgMC4wMDM0OTkiLCBcCi0gICAgICAgICAgIjAuMDAzNjI1LCAwLjAwMzU5NCwgMC4wMDM1NCwgMC4wMDM1MjYsIDAuMDAzNTE3LCAwLjAwMzUwNywgMC4wMDM1MDQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDA1NTcsIDAuMDAwNTU5LCAwLjAwMDU2LCAwLjAwMDU2LCAwLjAwMDU2LCAwLjAwMDU2LCAwLjAwMDU2IiwgXAotICAgICAgICAgICIwLjAwMDUzNCwgMC4wMDA1NDIsIDAuMDAwNTU0LCAwLjAwMDU1NiwgMC4wMDA1NTgsIDAuMDAwNTU5LCAwLjAwMDU1OSIsIFwKLSAgICAgICAgICAiMC4wMDA1MTUsIDAuMDAwNTI4LCAwLjAwMDU0OCwgMC4wMDA1NTMsIDAuMDAwNTU1LCAwLjAwMDU1NywgMC4wMDA1NTciLCBcCi0gICAgICAgICAgIjAuMDAwNTEzLCAwLjAwMDUyNSwgMC4wMDA1NDcsIDAuMDAwNTUxLCAwLjAwMDU1NCwgMC4wMDA1NTYsIDAuMDAwNTU3IiwgXAotICAgICAgICAgICIwLjAwMDUyMiwgMC4wMDA1MzEsIDAuMDAwNTQ5LCAwLjAwMDU1MywgMC4wMDA1NTUsIDAuMDAwNTU3LCAwLjAwMDU1NyIsIFwKLSAgICAgICAgICAiMC4wMDA1NjUsIDAuMDAwNTYyLCAwLjAwMDU2LCAwLjAwMDU2MSwgMC4wMDA1NjEsIDAuMDAwNTYsIDAuMDAwNTYiLCBcCi0gICAgICAgICAgIjAuMDAwNjI1LCAwLjAwMDYwNCwgMC4wMDA1ODEsIDAuMDAwNTc1LCAwLjAwMDU3LCAwLjAwMDU2NywgMC4wMDA1NjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzMDYxLCAwLjAwMzA2MiwgMC4wMDMwNjMsIDAuMDAzMDYzLCAwLjAwMzA2MywgMC4wMDMwNiwgMC4wMDMwNTkiLCBcCi0gICAgICAgICAgIjAuMDAzMDQyLCAwLjAwMzA0NiwgMC4wMDMwNTIsIDAuMDAzMDUyLCAwLjAwMzA1MiwgMC4wMDMwNSwgMC4wMDMwNDkiLCBcCi0gICAgICAgICAgIjAuMDAzMDQ2LCAwLjAwMzA0NiwgMC4wMDMwNSwgMC4wMDMwNSwgMC4wMDMwNSwgMC4wMDMwNDksIDAuMDAzMDQ4IiwgXAotICAgICAgICAgICIwLjAwMzA3MSwgMC4wMDMwNjQsIDAuMDAzMDU1LCAwLjAwMzA1MywgMC4wMDMwNTIsIDAuMDAzMDQ5LCAwLjAwMzA0OCIsIFwKLSAgICAgICAgICAiMC4wMDMxMjksIDAuMDAzMTEsIDAuMDAzMDc0LCAwLjAwMzA2NSwgMC4wMDMwNiwgMC4wMDMwNTUsIDAuMDAzMDUyIiwgXAotICAgICAgICAgICIwLjAwMzIyMywgMC4wMDMxNzksIDAuMDAzMTA2LCAwLjAwMzA4NiwgMC4wMDMwNzUsIDAuMDAzMDY0LCAwLjAwMzA2IiwgXAotICAgICAgICAgICIwLjAwMzMyNiwgMC4wMDMyNTcsIDAuMDAzMTQ1LCAwLjAwMzExMiwgMC4wMDMwOTMsIDAuMDAzMDc1LCAwLjAwMzA2OCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDI1MywgMC4wMDAyNTcsIDAuMDAwMjYzLCAwLjAwMDI2NCwgMC4wMDAyNjQsIDAuMDAwMjY0LCAwLjAwMDI2NSIsIFwKLSAgICAgICAgICAiMC4wMDAyMzcsIDAuMDAwMjU0LCAwLjAwMDI3NiwgMC4wMDAyODEsIDAuMDAwMjgzLCAwLjAwMDI4NSwgMC4wMDAyODYiLCBcCi0gICAgICAgICAgIjAuMDAwMjEsIDAuMDAwMjM0LCAwLjAwMDI3LCAwLjAwMDI3OCwgMC4wMDAyODMsIDAuMDAwMjg2LCAwLjAwMDI4OCIsIFwKLSAgICAgICAgICAiMC4wMDAyMDEsIDAuMDAwMjI0LCAwLjAwMDI2NiwgMC4wMDAyNzYsIDAuMDAwMjgxLCAwLjAwMDI4NywgMC4wMDAyODgiLCBcCi0gICAgICAgICAgIjAuMDAwMjA2LCAwLjAwMDIyNSwgMC4wMDAyNjYsIDAuMDAwMjc2LCAwLjAwMDI4MiwgMC4wMDAyODYsIDAuMDAwMjg4IiwgXAotICAgICAgICAgICIwLjAwMDI0MiwgMC4wMDAyNSwgMC4wMDAyNzQsIDAuMDAwMjgyLCAwLjAwMDI4NiwgMC4wMDAyODksIDAuMDAwMjkiLCBcCi0gICAgICAgICAgIjAuMDAwMjk4LCAwLjAwMDI4OCwgMC4wMDAyOSwgMC4wMDAyOTMsIDAuMDAwMjk0LCAwLjAwMDI5NSwgMC4wMDAyOTUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyNzEsIDAuMDAyNzE0LCAwLjAwMjcxOSwgMC4wMDI3MiwgMC4wMDI3MjEsIDAuMDAyNzIyLCAwLjAwMjcyMiIsIFwKLSAgICAgICAgICAiMC4wMDI3MDEsIDAuMDAyNzEsIDAuMDAyNzIzLCAwLjAwMjcyNywgMC4wMDI3MjgsIDAuMDAyNzMsIDAuMDAyNzMyIiwgXAotICAgICAgICAgICIwLjAwMjcxMiwgMC4wMDI3MTYsIDAuMDAyNzI2LCAwLjAwMjcyOCwgMC4wMDI3MywgMC4wMDI3MywgMC4wMDI3MyIsIFwKLSAgICAgICAgICAiMC4wMDI3NywgMC4wMDI3NTUsIDAuMDAyNzQyLCAwLjAwMjczOSwgMC4wMDI3MzcsIDAuMDAyNzM2LCAwLjAwMjczNiIsIFwKLSAgICAgICAgICAiMC4wMDI4NDEsIDAuMDAyODA1LCAwLjAwMjc2MSwgMC4wMDI3NTMsIDAuMDAyNzQ3LCAwLjAwMjc0MiwgMC4wMDI3NCIsIFwKLSAgICAgICAgICAiMC4wMDI5OTIsIDAuMDAyOTE3LCAwLjAwMjgwNywgMC4wMDI3ODUsIDAuMDAyNzcxLCAwLjAwMjc1NywgMC4wMDI3NTIiLCBcCi0gICAgICAgICAgIjAuMDAzMDg1LCAwLjAwMzAzNCwgMC4wMDI4NTgsIDAuMDAyODE5LCAwLjAwMjc5NiwgMC4wMDI3NzQsIDAuMDAyNzY3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwODc1LCAwLjAwMDg4LCAwLjAwMDg4NiwgMC4wMDA4ODcsIDAuMDAwODg4LCAwLjAwMDg4OCwgMC4wMDA4ODgiLCBcCi0gICAgICAgICAgIjAuMDAwODQ5LCAwLjAwMDg2LCAwLjAwMDg3OCwgMC4wMDA4ODIsIDAuMDAwODg0LCAwLjAwMDg4NiwgMC4wMDA4ODYiLCBcCi0gICAgICAgICAgIjAuMDAwODYsIDAuMDAwODY0LCAwLjAwMDg3NywgMC4wMDA4ODEsIDAuMDAwODgzLCAwLjAwMDg4NSwgMC4wMDA4ODYiLCBcCi0gICAgICAgICAgIjAuMDAwOTAxLCAwLjAwMDg5MiwgMC4wMDA4ODcsIDAuMDAwODg3LCAwLjAwMDg4NywgMC4wMDA4ODgsIDAuMDAwODg4IiwgXAotICAgICAgICAgICIwLjAwMDk2NCwgMC4wMDA5MzksIDAuMDAwOTA2LCAwLjAwMDg5OSwgMC4wMDA4OTUsIDAuMDAwODkyLCAwLjAwMDg5MSIsIFwKLSAgICAgICAgICAiMC4wMDEwOTksIDAuMDAxMDQsIDAuMDAwOTQ5LCAwLjAwMDkyNiwgMC4wMDA5MTgsIDAuMDAwOTA2LCAwLjAwMDkwMyIsIFwKLSAgICAgICAgICAiMC4wMDEyMzgsIDAuMDAxMTQ4LCAwLjAwMTAwMSwgMC4wMDA5NjgsIDAuMDAwOTQ0LCAwLjAwMDkyMywgMC4wMDA5MTYiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBPQUkzMlgxICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKE9BSTMyWDEpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC40MTQ3MzI7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA5MDAwOTQ7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwODk3NTU2OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDkwMDA5NDsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA1MjQsIDAuMDAwNTI0LCAwLjAwMDUyMywgMC4wMDA1MjQsIDAuMDAwNTIzLCAwLjAwMDUyMywgMC4wMDA1MjMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA1MjksIDAuMDAwNTI3LCAwLjAwMDUyNiwgMC4wMDA1MjYsIDAuMDAwNTI2LCAwLjAwMDUyNiwgMC4wMDA1MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEExKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA5MDk1NDg7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwOTA3NzI7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwOTA5NTQ4OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDUyNCwgMC4wMDA1MjQsIDAuMDAwNTI0LCAwLjAwMDUyNCwgMC4wMDA1MjQsIDAuMDAwNTI0LCAwLjAwMDUyNCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDUyOSwgMC4wMDA1MjYsIDAuMDAwNTI2LCAwLjAwMDUyNSwgMC4wMDA1MjYsIDAuMDAwNTI1LCAwLjAwMDUyNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQTIpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDkyMTkxMTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA5MjE5MTE7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwOTE5Nzc0OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDUyNCwgMC4wMDA1MjQsIDAuMDAwNTI0LCAwLjAwMDUyNCwgMC4wMDA1MjQsIDAuMDAwNTI0LCAwLjAwMDUyNCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDUyOSwgMC4wMDA1MjYsIDAuMDAwNTI1LCAwLjAwMDUyNSwgMC4wMDA1MjYsIDAuMDAwNTI1LCAwLjAwMDUyNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQjApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDk0MTE2MjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA5Mzc1MTY7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwOTQxMTYyOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDgsIDAuMDAwODAxLCAwLjAwMDgwMSwgMC4wMDA4MDEsIDAuMDAwODAxLCAwLjAwMDgwMSwgMC4wMDA4MDEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA1OTUsIDAuMDAwNTk2LCAwLjAwMDU5NiwgMC4wMDA1OTYsIDAuMDAwNTk2LCAwLjAwMDU5NiwgMC4wMDA1OTYiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIxKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA5NDU0NDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA5NDU0NDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA5NDUwNjE7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwOCwgMC4wMDA4MDEsIDAuMDAwOCwgMC4wMDA4LCAwLjAwMDgsIDAuMDAwODAxLCAwLjAwMDgwMSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDU5NSwgMC4wMDA1OTYsIDAuMDAwNTk2LCAwLjAwMDU5NiwgMC4wMDA1OTYsIDAuMDAwNTk2LCAwLjAwMDU5NiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjEzMDY0NjsKLSAgICBmdW5jdGlvbiA6ICIoISgoQjArQjEpICgoQTArQTEpK0EyKSkpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTEyNzQxLCAwLjE2MTg2NywgMC40NDAyMDksIDAuNjg1MTkxLCAxLjAxMjcxLCAxLjY2NjE4LCAyLjA3NTIzIiwgXAotICAgICAgICAgICIwLjExODE1MSwgMC4xNjczMzYsIDAuNDQ1NjU5LCAwLjY5MDk1NywgMS4wMTc5OSwgMS42NzA1NywgMi4wNzkwMSIsIFwKLSAgICAgICAgICAiMC4xMjMzOTcsIDAuMTcyNjUsIDAuNDUwOTk0LCAwLjY5NTk1NywgMS4wMjMwOCwgMS42NzcyNywgMi4wODQzNSIsIFwKLSAgICAgICAgICAiMC4xMjg0NjgsIDAuMTc3Njg1LCAwLjQ1NjE4MiwgMC43MDExNDUsIDEuMDI3MzQsIDEuNjgxMTgsIDIuMDg5OTQiLCBcCi0gICAgICAgICAgIjAuMTMzNTE3LCAwLjE4Mjc4NywgMC40NjEyNjgsIDAuNzA2MzMyLCAxLjAzMjQ0LCAxLjY4Nzk4LCAyLjA5NSIsIFwKLSAgICAgICAgICAiMC4xNDE1NzIsIDAuMTkwNzIxLCAwLjQ2OTM2NiwgMC43MTQyOTMsIDEuMDQwNjgsIDEuNjkzNzcsIDIuMTA0MDciLCBcCi0gICAgICAgICAgIjAuMTQ4NjgsIDAuMTk4MDY2LCAwLjQ3NjY1OCwgMC43MjE1NTYsIDEuMDQ3NzksIDEuNzAxNjQsIDIuMTA5MyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMTkxMDQsIDAuMzIyMTQ4LCAwLjkwNjEyMywgMS40MjA5NCwgMi4xMDczNSwgMy40Nzk5OSwgNC4zMzc5NiIsIFwKLSAgICAgICAgICAiMC4yMTkwNSwgMC4zMjIwODYsIDAuOTA2MDgyLCAxLjQyMDg2LCAyLjEwNzY2LCAzLjQ4MDA5LCA0LjMzODA0IiwgXAotICAgICAgICAgICIwLjIxOTYxNiwgMC4zMjIxOTgsIDAuOTA1OTYsIDEuNDIxMjUsIDIuMTA3NjEsIDMuNDgwMDksIDQuMzM4MTUiLCBcCi0gICAgICAgICAgIjAuMjIxMzE4LCAwLjMyMzA3NSwgMC45MDYxMiwgMS40MjEyOSwgMi4xMDc2MiwgMy40Nzk4NywgNC4zMzc3NiIsIFwKLSAgICAgICAgICAiMC4yMjM3NjgsIDAuMzI0ODg4LCAwLjkwNjA0MiwgMS40MjEyNSwgMi4xMDc1NiwgMy40ODAwOSwgNC4zMzc2OCIsIFwKLSAgICAgICAgICAiMC4yMjg5MjQsIDAuMzI4OTI4LCAwLjkwNjQ2OSwgMS40MjEwNCwgMi4xMDc1MywgMy40ODAwNSwgNC4zMzgwMSIsIFwKLSAgICAgICAgICAiMC4yMzQ2OTIsIDAuMzMzMjc4LCAwLjkwNzYyOCwgMS40MjEyMywgMi4xMDc1NSwgMy40Nzk4LCA0LjMzNzgyIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3OTgzMiwgMC4xMTI2MzQsIDAuMjk3NjQyLCAwLjQ2MDU4MiwgMC42Nzc5MDUsIDEuMTEyNDksIDEuMzgzNjIiLCBcCi0gICAgICAgICAgIjAuMDg3MTA1LCAwLjExOTkyLCAwLjMwNDg1OSwgMC40Njc4MjQsIDAuNjg1MjE5LCAxLjExOTQsIDEuMzkxMjYiLCBcCi0gICAgICAgICAgIjAuMDk1MzA2LCAwLjEyODEyOSwgMC4zMTMzMjYsIDAuNDc2MzE5LCAwLjY5MzYyNiwgMS4xMjgzLCAxLjM5OTU3IiwgXAotICAgICAgICAgICIwLjEwMzQwNSwgMC4xMzYyNSwgMC4zMjE0NDgsIDAuNDg0Mjg4LCAwLjcwMTQ4NSwgMS4xMzYzNCwgMS40MDc4IiwgXAotICAgICAgICAgICIwLjExMTQ3NSwgMC4xNDQyNDcsIDAuMzI5Mzg1LCAwLjQ5MjQ0MSwgMC43MDk2MzIsIDEuMTQzOTUsIDEuNDE2MDkiLCBcCi0gICAgICAgICAgIjAuMTIzNzU2LCAwLjE1NzI2NSwgMC4zNDI0NCwgMC41MDU1MzUsIDAuNzIyOTA4LCAxLjE1NzM1LCAxLjQyODY3IiwgXAotICAgICAgICAgICIwLjEzMzU4MywgMC4xNjg0MjUsIDAuMzUzOCwgMC41MTY5NDMsIDAuNzM0NTg2LCAxLjE2ODk1LCAxLjQ0MDQ4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEzOTM5MiwgMC4yMDY2NzYsIDAuNTg3ODksIDAuOTIzNzQ1LCAxLjM3MTQ4LCAyLjI2NzM5LCAyLjgyNzA3IiwgXAotICAgICAgICAgICIwLjEzOTQ5NiwgMC4yMDY3OTcsIDAuNTg3OTEsIDAuOTIzOTE0LCAxLjM3MTgsIDIuMjY3NjIsIDIuODI3NTMiLCBcCi0gICAgICAgICAgIjAuMTQwNTYyLCAwLjIwNzA1LCAwLjU4NzcxMSwgMC45MjM5MiwgMS4zNzE4NCwgMi4yNjc5OCwgMi44MjcwNyIsIFwKLSAgICAgICAgICAiMC4xNDM2OTEsIDAuMjA5MDUsIDAuNTg3NzA5LCAwLjkyNDUyMiwgMS4zNzIxMywgMi4yNjc1NiwgMi44Mjc2OSIsIFwKLSAgICAgICAgICAiMC4xNDgxNTgsIDAuMjEyMjY1LCAwLjU4Nzc5MiwgMC45MjQ2MTIsIDEuMzcyMTcsIDIuMjY3NSwgMi44MjcyOCIsIFwKLSAgICAgICAgICAiMC4xNTY1NTUsIDAuMjE5NDQ1LCAwLjU4OTU2OCwgMC45MjM5NiwgMS4zNzIxLCAyLjI2NzYsIDIuODI3MzQiLCBcCi0gICAgICAgICAgIjAuMTY1MTc1LCAwLjIyNjYsIDAuNTkyNTQxLCAwLjkyNTA2MiwgMS4zNzE3MywgMi4yNjc2NCwgMi44MjcyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkExIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTA3NjMsIDAuMTU5ODQzLCAwLjQzODIyMywgMC42ODMzNTMsIDEuMDA5OTEsIDEuNjYyOTQsIDIuMDczMDQiLCBcCi0gICAgICAgICAgIjAuMTE3MDQ1LCAwLjE2NjE3OSwgMC40NDQ0MzEsIDAuNjg5ODM3LCAxLjAxNjE5LCAxLjY2OTQxLCAyLjA4MDExIiwgXAotICAgICAgICAgICIwLjEyNDQzMSwgMC4xNzM1MzYsIDAuNDUyMDM4LCAwLjY5Njk1NywgMS4wMjMyMSwgMS42NzY4MywgMi4wODc2NyIsIFwKLSAgICAgICAgICAiMC4xMzE5OTUsIDAuMTgxMjU5LCAwLjQ1OTcxNiwgMC43MDQ2LCAxLjAzMTAyLCAxLjY4NTEsIDIuMDkzMjciLCBcCi0gICAgICAgICAgIjAuMTM5NzMsIDAuMTg4Nzg4LCAwLjQ2NzQ1LCAwLjcxMjQ2MywgMS4wMzk3LCAxLjY5MzM1LCAyLjEwMTYxIiwgXAotICAgICAgICAgICIwLjE1MTk2MSwgMC4yMDEyNDgsIDAuNDc5NzUsIDAuNzI0MDY1LCAxLjA1MTI1LCAxLjcwMzQyLCAyLjExMzM0IiwgXAotICAgICAgICAgICIwLjE2MjQ3OSwgMC4yMTIxNiwgMC40OTAzOTQsIDAuNzM1NDYyLCAxLjA2MjI4LCAxLjcxNDQyLCAyLjEyMjUxIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIxOTEwOSwgMC4zMjIxNTQsIDAuOTA2MDksIDEuNDIxMjUsIDIuMTA3NjIsIDMuNDc5NjgsIDQuMzM4MDkiLCBcCi0gICAgICAgICAgIjAuMjE5MDcyLCAwLjMyMjE1MiwgMC45MDU4MTksIDEuNDIxMjYsIDIuMTA3NjcsIDMuNDgwMDgsIDQuMzM3NzMiLCBcCi0gICAgICAgICAgIjAuMjE5ODIsIDAuMzIyMjA4LCAwLjkwNjA1NCwgMS40MjEzLCAyLjEwNzQ5LCAzLjQ3OTc0LCA0LjMzNzYzIiwgXAotICAgICAgICAgICIwLjIyMjQzNSwgMC4zMjMzNzEsIDAuOTA2MDM0LCAxLjQyMTIxLCAyLjEwNzYsIDMuNDc5OTQsIDQuMzM3NjQiLCBcCi0gICAgICAgICAgIjAuMjI2MTkzLCAwLjMyNTg4OSwgMC45MDYwNDQsIDEuNDIxMTQsIDIuMTA3NTQsIDMuNDc5OTIsIDQuMzM4MDciLCBcCi0gICAgICAgICAgIjAuMjM0MTU3LCAwLjMzMTg0OCwgMC45MDYwMjMsIDEuNDIwODcsIDIuMTA3NjIsIDMuNDc5NzMsIDQuMzM3OSIsIFwKLSAgICAgICAgICAiMC4yNDE5MTQsIDAuMzM4MjEyLCAwLjkwNzU1OCwgMS40MjEwMiwgMi4xMDc2NiwgMy40Nzk4NSwgNC4zMzc4NSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzcwMTksIDAuMTA5NzA2LCAwLjI5NDYyNywgMC40NTc1MzQsIDAuNjc0Njk0LCAxLjEwOTMyLCAxLjM4MDE0IiwgXAotICAgICAgICAgICIwLjA4NDM3MywgMC4xMTcwNjcsIDAuMzAxODc4LCAwLjQ2NDc3OCwgMC42ODE4OTIsIDEuMTE2MDcsIDEuMzg3NTkiLCBcCi0gICAgICAgICAgIjAuMDkyNDkyLCAwLjEyNTI0OSwgMC4zMTAyOTQsIDAuNDczMTk3LCAwLjY5MDQwMywgMS4xMjUxMywgMS4zOTY1OSIsIFwKLSAgICAgICAgICAiMC4xMDA1NjgsIDAuMTMzMzIyLCAwLjMxODQ1NSwgMC40ODEyMjksIDAuNjk4NzMxLCAxLjEzMjc3LCAxLjQwNTg4IiwgXAotICAgICAgICAgICIwLjEwODQyLCAwLjE0MTI5OCwgMC4zMjYzNDksIDAuNDg5Mzg4LCAwLjcwNjU2NCwgMS4xNDA4OCwgMS40MTMwMSIsIFwKLSAgICAgICAgICAiMC4xMjA1OTQsIDAuMTU0MTk5LCAwLjMzOTQzNywgMC41MDIxNjEsIDAuNzE5NzIsIDEuMTU0MTYsIDEuNDI1NDkiLCBcCi0gICAgICAgICAgIjAuMTMwMjIzLCAwLjE2NTQwMiwgMC4zNTA3MDIsIDAuNTEzNzAyLCAwLjczMTE2MywgMS4xNjU2NSwgMS40MzcxOSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMzU2NzgsIDAuMjAzMDcyLCAwLjU4NDE4NywgMC45MjAwMjcsIDEuMzY3NTYsIDIuMjYzNjMsIDIuODIzMjgiLCBcCi0gICAgICAgICAgIjAuMTM1Njc4LCAwLjIwMjk4OSwgMC41ODM5NjMsIDAuOTE5ODgzLCAxLjM2NzYsIDIuMjYzMzcsIDIuODIzMjciLCBcCi0gICAgICAgICAgIjAuMTM2ODE5LCAwLjIwMzI5OSwgMC41ODQwMDksIDAuOTIwMDEsIDEuMzY4MTEsIDIuMjY0MTYsIDIuODIzMjMiLCBcCi0gICAgICAgICAgIjAuMTQwMDQ4LCAwLjIwNTMyNCwgMC41ODM5NDYsIDAuOTIwMjk5LCAxLjM2NzkzLCAyLjI2NTA1LCAyLjgyNDYzIiwgXAotICAgICAgICAgICIwLjE0NDQzOSwgMC4yMDg2MTYsIDAuNTg0MDgsIDAuOTE5NzUyLCAxLjM2NzcxLCAyLjI2MzUsIDIuODIzMTkiLCBcCi0gICAgICAgICAgIjAuMTUzMDYzLCAwLjIxNTc5NywgMC41ODU4MzgsIDAuOTE5ODg3LCAxLjM2NzY3LCAyLjI2MzU3LCAyLjgyMzMyIiwgXAotICAgICAgICAgICIwLjE2MTkyOCwgMC4yMjMxMjUsIDAuNTg4ODc3LCAwLjkyMDgzMSwgMS4zNjc2LCAyLjI2MzQyLCAyLjgyMzIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTIiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwNTcwNCwgMC4xNTQ3ODYsIDAuNDMzMDY2LCAwLjY3NzkzMywgMS4wMDQyLCAxLjY1ODExLCAyLjA2NTkxIiwgXAotICAgICAgICAgICIwLjExMjY2OSwgMC4xNjE3OSwgMC40NDAxNTIsIDAuNjg1MTIyLCAxLjAxMjEsIDEuNjY1MTcsIDIuMDc0OSIsIFwKLSAgICAgICAgICAiMC4xMjE3NTIsIDAuMTcwOTEzLCAwLjQ0OTI5NywgMC42OTQ2MTMsIDEuMDIxMzYsIDEuNjc1MTIsIDIuMDgyODQiLCBcCi0gICAgICAgICAgIjAuMTMxMDI1LCAwLjE4MDEyMywgMC40NTgzMjYsIDAuNzAzMTgzLCAxLjAzMDAyLCAxLjY4MzAzLCAyLjA5MTkzIiwgXAotICAgICAgICAgICIwLjE0MDEwOSwgMC4xODkxMTMsIDAuNDY3MDksIDAuNzEyMDEzLCAxLjAzOTU5LCAxLjY5MjcxLCAyLjEwMjIiLCBcCi0gICAgICAgICAgIjAuMTU1NDY0LCAwLjIwNDEzNSwgMC40ODE3ODgsIDAuNzI2NDI3LCAxLjA1MjcxLCAxLjcwNzMsIDIuMTE0MDUiLCBcCi0gICAgICAgICAgIjAuMTY4OTQsIDAuMjE3MzkyLCAwLjQ5NDU3NiwgMC43MzkyMjMsIDEuMDY1NjUsIDEuNzE4NSwgMi4xMjg2OCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMTkxMDEsIDAuMzIyMTA0LCAwLjkwNTg5MiwgMS40MjAyOSwgMi4xMDc1OCwgMy40Nzk3LCA0LjMzODI5IiwgXAotICAgICAgICAgICIwLjIxOTA0NCwgMC4zMjIwNzUsIDAuOTA2MTEzLCAxLjQyMDc1LCAyLjEwNzYyLCAzLjQ3OTk5LCA0LjMzNzg5IiwgXAotICAgICAgICAgICIwLjIxOTkzLCAwLjMyMjA4MiwgMC45MDYwNTcsIDEuNDIxMjYsIDIuMTA3MDgsIDMuNDgwMDksIDQuMzM3NjUiLCBcCi0gICAgICAgICAgIjAuMjIzNzgzLCAwLjMyMzcyOSwgMC45MDU5MDMsIDEuNDIwODgsIDIuMTA3NiwgMy40ODAwMiwgNC4zMzg1NiIsIFwKLSAgICAgICAgICAiMC4yMjk0MDMsIDAuMzI3NDI3LCAwLjkwNjAwMywgMS40MjEyMywgMi4xMDczMywgMy40Nzk2NiwgNC4zMzc1OCIsIFwKLSAgICAgICAgICAiMC4yNDAyNTMsIDAuMzM1Njc1LCAwLjkwNjA3OSwgMS40MjA4NywgMi4xMDcyNiwgMy40ODAyMSwgNC4zMzgwOCIsIFwKLSAgICAgICAgICAiMC4yNTA5NiwgMC4zNDQ3NjYsIDAuOTA3NjU5LCAxLjQyMTEsIDIuMTA3NjMsIDMuNDgwMjIsIDQuMzM4MzQiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDczNDk5LCAwLjEwNjEzNCwgMC4yOTA5NTYsIDAuNDUzODQ5LCAwLjY3MTMxOCwgMS4xMDU0NCwgMS4zNzc1MSIsIFwKLSAgICAgICAgICAiMC4wODA4OCwgMC4xMTM1ODIsIDAuMjk4Mzc4LCAwLjQ2MTE5OCwgMC42Nzg5MDcsIDEuMTEyNywgMS4zODQ0IiwgXAotICAgICAgICAgICIwLjA4ODk0MSwgMC4xMjE3MjIsIDAuMzA2NzI0LCAwLjQ2OTUyNiwgMC42ODY2OSwgMS4xMjE0OSwgMS4zOTM1NiIsIFwKLSAgICAgICAgICAiMC4wOTY5OTQsIDAuMTI5Nzc2LCAwLjMxNDg5NiwgMC40Nzc3NzcsIDAuNjk1NDU1LCAxLjEyOTczLCAxLjQwMDkxIiwgXAotICAgICAgICAgICIwLjEwNDk1LCAwLjEzNzg0NywgMC4zMjI4MDUsIDAuNDg1Nzg3LCAwLjcwMzExMiwgMS4xMzczMywgMS40MDk0NyIsIFwKLSAgICAgICAgICAiMC4xMTY3MDEsIDAuMTUwNjAxLCAwLjMzNTYxOCwgMC40OTg5MjYsIDAuNzE2Mjk4LCAxLjE1MDczLCAxLjQyMjA2IiwgXAotICAgICAgICAgICIwLjEyNTc5NywgMC4xNjE1MzEsIDAuMzQ3MTUyLCAwLjUxMDI0OCwgMC43Mjc4NDIsIDEuMTYyMzIsIDEuNDMzODYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTMxMjU5LCAwLjE5ODY0OCwgMC41Nzk0ODUsIDAuOTE1MzI0LCAxLjM2MzQ1LCAyLjI1ODQ0LCAyLjgxOTA3IiwgXAotICAgICAgICAgICIwLjEzMTMsIDAuMTk4NTQyLCAwLjU3OTMwMiwgMC45MTUyNTIsIDEuMzYzMzEsIDIuMjU4NjEsIDIuODE5NjYiLCBcCi0gICAgICAgICAgIjAuMTMyNTY0LCAwLjE5ODkxNSwgMC41Nzk0MTcsIDAuOTE1MDU4LCAxLjM2MjkyLCAyLjI1ODc0LCAyLjgxOTI1IiwgXAotICAgICAgICAgICIwLjEzNTkxNiwgMC4yMDEwMDcsIDAuNTc5MzcyLCAwLjkxNTAwMywgMS4zNjMyMywgMi4yNTg3MiwgMi44MjAxOCIsIFwKLSAgICAgICAgICAiMC4xNDA1NTIsIDAuMjA0NDk4LCAwLjU3OTQ4LCAwLjkxNTMzOSwgMS4zNjI3NiwgMi4yNTg1OSwgMi44MTgzIiwgXAotICAgICAgICAgICIwLjE0OTI4MSwgMC4yMTE3MDEsIDAuNTgxMTc4LCAwLjkxNTAyNSwgMS4zNjI5LCAyLjI1ODY4LCAyLjgxODM2IiwgXAotICAgICAgICAgICIwLjE1Nzk2NywgMC4yMTkwMTYsIDAuNTg0MzgzLCAwLjkxNjE1NiwgMS4zNjI3OSwgMi4yNTg1MiwgMi44MTgyMiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY4Nzc3LCAwLjEwMjQ2NCwgMC4yOTM0NTMsIDAuNDYxNzU1LCAwLjY4NTc5OSwgMS4xMzQwNCwgMS40MTM3NiIsIFwKLSAgICAgICAgICAiMC4wNzQ5NywgMC4xMDg3NDEsIDAuMjk5Nzc4LCAwLjQ2ODA0MiwgMC42OTIxMTcsIDEuMTQwMDksIDEuNDE5OTgiLCBcCi0gICAgICAgICAgIjAuMDgyMjU1LCAwLjExNjEyNiwgMC4zMDczOTEsIDAuNDc1NjcsIDAuNjk5Njk2LCAxLjE0Nzc2LCAxLjQyNzYyIiwgXAotICAgICAgICAgICIwLjA4OTY2NCwgMC4xMjM0MzQsIDAuMzE0NzcsIDAuNDgzMTIzLCAwLjcwNzIyLCAxLjE1NTM1LCAxLjQzNTA2IiwgXAotICAgICAgICAgICIwLjA5Njk4MiwgMC4xMzEwMzMsIDAuMzIyMzUyLCAwLjQ5MDc3NSwgMC43MTQ5MzEsIDEuMTYzMDMsIDEuNDQzMDgiLCBcCi0gICAgICAgICAgIjAuMTA3MjM4LCAwLjE0MjYwNSwgMC4zMzM3OTIsIDAuNTAyMTY2LCAwLjcyNjMxLCAxLjE3NDMzLCAxLjQ1NDA1IiwgXAotICAgICAgICAgICIwLjExNTEzNywgMC4xNTI0NTIsIDAuMzQ0NTM0LCAwLjUxMzIyOSwgMC43MzczMjMsIDEuMTg1MzksIDEuNDY1MTkiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTQ4MzI4LCAwLjIxODg1MSwgMC42MTkxNjcsIDAuOTcyNDY5LCAxLjQ0MzkyLCAyLjM4NzI0LCAyLjk3NjU3IiwgXAotICAgICAgICAgICIwLjE0ODQzMiwgMC4yMTg4NTgsIDAuNjE5MTE2LCAwLjk3MjYyLCAxLjQ0Mzc3LCAyLjM4NjgxLCAyLjk3NjAyIiwgXAotICAgICAgICAgICIwLjE1MDU5NSwgMC4yMTk3MjEsIDAuNjE5MTM1LCAwLjk3MjQ0MSwgMS40NDM4OCwgMi4zODY4MSwgMi45NzY0MyIsIFwKLSAgICAgICAgICAiMC4xNTQ2NzYsIDAuMjIyNCwgMC42MTkxMjYsIDAuOTcyNTI0LCAxLjQ0Mzc4LCAyLjM4NzE3LCAyLjk3NjI1IiwgXAotICAgICAgICAgICIwLjE1OTcxMywgMC4yMjYzNjMsIDAuNjE5Mzg2LCAwLjk3MjUxMSwgMS40NDM5NCwgMi4zODcwNSwgMi45NzY2OCIsIFwKLSAgICAgICAgICAiMC4xNjg5MjIsIDAuMjMzOTc3LCAwLjYyMTQ3NSwgMC45NzI2NDgsIDEuNDQzNzIsIDIuMzg2ODIsIDIuOTc2MjgiLCBcCi0gICAgICAgICAgIjAuMTc3ODAxLCAwLjI0MTgxNCwgMC42MjQ5NzksIDAuOTczNjY0LCAxLjQ0MzkzLCAyLjM4NzEzLCAyLjk3NjE4Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3NDE1NiwgMC4xMDY5MzMsIDAuMjkyMDc0LCAwLjQ1NTExLCAwLjY3MTk4MiwgMS4xMDY2NiwgMS4zNzgyNCIsIFwKLSAgICAgICAgICAiMC4wODE4MzQsIDAuMTE0NjYyLCAwLjI5OTU1NiwgMC40NjI2NDQsIDAuNjc5ODc2LCAxLjExMzg5LCAxLjM4NTQyIiwgXAotICAgICAgICAgICIwLjA5MTU1MiwgMC4xMjQzNTksIDAuMzA5MjA1LCAwLjQ3MjE3NCwgMC42ODkzNDksIDEuMTIzOSwgMS4zOTU2NiIsIFwKLSAgICAgICAgICAiMC4xMDEzMDksIDAuMTM0MTc4LCAwLjMxOTAwNiwgMC40ODE2NjcsIDAuNjk4OTUzLCAxLjEzMzE2LCAxLjQwNTQ3IiwgXAotICAgICAgICAgICIwLjExMTQxMSwgMC4xNDM5NzksIDAuMzI4NjMyLCAwLjQ5MTUyMywgMC43MDg5NTQsIDEuMTQzNTMsIDEuNDE0NjkiLCBcCi0gICAgICAgICAgIjAuMTI3NDI4LCAwLjE2MDI0NiwgMC4zNDQ0MzgsIDAuNTA1MjE1LCAwLjcyNDQsIDEuMTU4ODUsIDEuNDMwMSIsIFwKLSAgICAgICAgICAiMC4xMzk3NzYsIDAuMTc0NTU5LCAwLjM1ODM1OCwgMC41MjEwNzgsIDAuNzM4MTQ4LCAxLjE3MjYzLCAxLjQ0Mzk2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEzOTQ3MiwgMC4yMDY2NzEsIDAuNTg3NzczLCAwLjkyMzkwNywgMS4zNzE5NSwgMi4yNjcyNiwgMi44MjcwNSIsIFwKLSAgICAgICAgICAiMC4xMzkzNTIsIDAuMjA2NzA3LCAwLjU4NzkwOSwgMC45MjM3NzMsIDEuMzcxNzEsIDIuMjY3NCwgMi44MjcwNSIsIFwKLSAgICAgICAgICAiMC4xNDE4NDQsIDAuMjA3NDQ4LCAwLjU4NzgzNywgMC45MjQ1NDYsIDEuMzcyLCAyLjI2ODMsIDIuODI3MTEiLCBcCi0gICAgICAgICAgIjAuMTQ3NDAxLCAwLjIxMDg5OSwgMC41ODc5MjIsIDAuOTI0NTU2LCAxLjM3MTQ4LCAyLjI2NzU2LCAyLjgyNzg3IiwgXAotICAgICAgICAgICIwLjE1NDI4OSwgMC4yMTY0MDEsIDAuNTg3ODEyLCAwLjkyMzgyLCAxLjM3MTc5LCAyLjI2ODAzLCAyLjgyODIiLCBcCi0gICAgICAgICAgIjAuMTY2ODE1LCAwLjIyNzEwMSwgMC41OTA1NTEsIDAuOTI0MjUsIDEuMzcyMywgMi4yNjg0NiwgMi44Mjc1NCIsIFwKLSAgICAgICAgICAiMC4xNzg4NzEsIDAuMjM3NzU0LCAwLjU5NDgwOSwgMC45MjQ3MTgsIDEuMzcyMDUsIDIuMjY3MzksIDIuODI4ODQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2NjU2NywgMC4xMDAyOTIsIDAuMjkxMzM3LCAwLjQ1OTUxNSwgMC42ODM3NDUsIDEuMTMxNjQsIDEuNDExNTIiLCBcCi0gICAgICAgICAgIjAuMDc0MDg4LCAwLjEwNzg1MSwgMC4yOTg4OCwgMC40NjcxLCAwLjY5MTM4LCAxLjEzOTU3LCAxLjQxOTA0IiwgXAotICAgICAgICAgICIwLjA4MzYyNiwgMC4xMTc0MDksIDAuMzA4NDA1LCAwLjQ3NjY2OSwgMC43MDA4MDEsIDEuMTQ4OTksIDEuNDI4NTciLCBcCi0gICAgICAgICAgIjAuMDkzNDUxLCAwLjEyNzExNywgMC4zMTgwNywgMC40ODYyNzgsIDAuNzEwMzc4LCAxLjE1ODczLCAxLjQzODIzIiwgXAotICAgICAgICAgICIwLjEwMzM1NywgMC4xMzY4NzYsIDAuMzI3NzEzLCAwLjQ5NTkwMywgMC43MTk5ODQsIDEuMTY4MDQsIDEuNDQ4MDIiLCBcCi0gICAgICAgICAgIjAuMTE3OTgzLCAwLjE1Mjc3LCAwLjM0MzIyLCAwLjUwOTMxOCwgMC43MzUzNDgsIDEuMTgzMzIsIDEuNDYzMDciLCBcCi0gICAgICAgICAgIjAuMTI4ODAxLCAwLjE2NjU3NiwgMC4zNTY4MjQsIDAuNTI0OTc2LCAwLjc0ODg1OCwgMS4xOTY3OSwgMS40NzY1NCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNDgzNDMsIDAuMjE4ODExLCAwLjYxOTE2NywgMC45NzI1NjMsIDEuNDQ0MDMsIDIuMzg3MDgsIDIuOTc2NjciLCBcCi0gICAgICAgICAgIjAuMTQ4NDQ2LCAwLjIxODg1OCwgMC42MTkxMjIsIDAuOTcyNDA1LCAxLjQ0Mzc1LCAyLjM4NzQ1LCAyLjk3NjIyIiwgXAotICAgICAgICAgICIwLjE1MjA1OSwgMC4yMjAxMTMsIDAuNjE5MTM3LCAwLjk3MjY2NywgMS40NDM5NSwgMi4zODcyMSwgMi45NzYzMiIsIFwKLSAgICAgICAgICAiMC4xNTgyODUsIDAuMjI0MzMxLCAwLjYxODk4MywgMC45NzI1NDksIDEuNDQzODQsIDIuMzg3MiwgMi45NzYxNCIsIFwKLSAgICAgICAgICAiMC4xNjU4NjYsIDAuMjMwMjI4LCAwLjYxOTEwMywgMC45NzI1NDIsIDEuNDQzOSwgMi4zODcwOSwgMi45NzY1OCIsIFwKLSAgICAgICAgICAiMC4xNzk0NTUsIDAuMjQxNzYsIDAuNjIyMTk3LCAwLjk3MjUwNiwgMS40NDM4MywgMi4zODY3MywgMi45NzYzOSIsIFwKLSAgICAgICAgICAiMC4xOTE3MjksIDAuMjUyOTg1LCAwLjYyNzA0NCwgMC45NzM0OCwgMS40NDM4NiwgMi4zODcsIDIuOTc2MTgiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDcxMTQsIDAuMTAzOTUyLCAwLjI4ODk3MSwgMC40NTIwMDMsIDAuNjY4OTg2LCAxLjEwMzY5LCAxLjM3NTcxIiwgXAotICAgICAgICAgICIwLjA3ODc5LCAwLjExMTU4OSwgMC4yOTY0NzksIDAuNDU5NjczLCAwLjY3NzEwNywgMS4xMTE3MywgMS4zODIzNyIsIFwKLSAgICAgICAgICAiMC4wODgzMDMsIDAuMTIxMTQ2LCAwLjMwNjA0NywgMC40NjkwMDksIDAuNjg2MTg5LCAxLjEyMDgsIDEuMzkyNTciLCBcCi0gICAgICAgICAgIjAuMDk4Mzc3LCAwLjEzMTA4MywgMC4zMTU3MTUsIDAuNDc4NzA4LCAwLjY5NTk3NywgMS4xMzAxNywgMS40MDI0OCIsIFwKLSAgICAgICAgICAiMC4xMDgyNTMsIDAuMTQwODUyLCAwLjMyNTYwMywgMC40ODg1MiwgMC43MDU5NTcsIDEuMTQwNTgsIDEuNDExNCIsIFwKLSAgICAgICAgICAiMC4xMjM5OTksIDAuMTU2OTg3LCAwLjM0MTQ0MywgMC41MDIxOTgsIDAuNzIxNDE1LCAxLjE1NTg3LCAxLjQyNzEiLCBcCi0gICAgICAgICAgIjAuMTM1NTE5LCAwLjE3MTEzNywgMC4zNTUyNCwgMC41MTgwNTcsIDAuNzM1MTE3LCAxLjE2OTY1LCAxLjQ0MDk1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEzNTUxOCwgMC4yMDI2NTgsIDAuNTgzNDc4LCAwLjkxOTc4MSwgMS4zNjc3NCwgMi4yNjM2NSwgMi44MjM0OSIsIFwKLSAgICAgICAgICAiMC4xMzUzMDIsIDAuMjAyNjQ1LCAwLjU4MzUxNiwgMC45MTk1ODEsIDEuMzY4MTQsIDIuMjYzMywgMi44MjI2MSIsIFwKLSAgICAgICAgICAiMC4xMzgwMDgsIDAuMjAzMzc5LCAwLjU4Mzc4NCwgMC45MjAzMjUsIDEuMzY3NjcsIDIuMjYzODUsIDIuODIzNDEiLCBcCi0gICAgICAgICAgIjAuMTQzNTA2LCAwLjIwNjk0LCAwLjU4MzY5MSwgMC45MTk1OTEsIDEuMzY3NjMsIDIuMjYyOSwgMi44MjM0OSIsIFwKLSAgICAgICAgICAiMC4xNTA2ODgsIDAuMjEyNTUsIDAuNTgzNTczLCAwLjkxOTU2MiwgMS4zNjc0MiwgMi4yNjM3MiwgMi44MjM4IiwgXAotICAgICAgICAgICIwLjE2MzQ0MSwgMC4yMjMzNjEsIDAuNTg2MjYxLCAwLjkxOTkzMiwgMS4zNjc3NCwgMi4yNjM5OSwgMi44MjI5MSIsIFwKLSAgICAgICAgICAiMC4xNzU4MjMsIDAuMjM0MjE4LCAwLjU5MDU4NiwgMC45MjAyOTIsIDEuMzY3NTUsIDIuMjYzLCAyLjgyNDMxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNTE1LCAwLjAwNTE1LCAwLjAwNTE1LCAwLjAwNTE0OSwgMC4wMDUxNDgsIDAuMDA1MTQ1LCAwLjAwNTE0MyIsIFwKLSAgICAgICAgICAiMC4wMDUxMjksIDAuMDA1MTMzLCAwLjAwNTEzNiwgMC4wMDUxMzYsIDAuMDA1MTM1LCAwLjAwNTEzMywgMC4wMDUxMzIiLCBcCi0gICAgICAgICAgIjAuMDA1MTE5LCAwLjAwNTEyNCwgMC4wMDUxMzIsIDAuMDA1MTMzLCAwLjAwNTEzMiwgMC4wMDUxMywgMC4wMDUxMyIsIFwKLSAgICAgICAgICAiMC4wMDUxMTksIDAuMDA1MTI0LCAwLjAwNTEzMSwgMC4wMDUxMzIsIDAuMDA1MTMyLCAwLjAwNTEzLCAwLjAwNTEyOCIsIFwKLSAgICAgICAgICAiMC4wMDUxMywgMC4wMDUxMzIsIDAuMDA1MTM0LCAwLjAwNTEzNCwgMC4wMDUxMzMsIDAuMDA1MTMxLCAwLjAwNTEzIiwgXAotICAgICAgICAgICIwLjAwNTE2NCwgMC4wMDUxNTksIDAuMDA1MTQ1LCAwLjAwNTE0MSwgMC4wMDUxMzksIDAuMDA1MTM0LCAwLjAwNTEzMiIsIFwKLSAgICAgICAgICAiMC4wMDUyMTksIDAuMDA1MTk3LCAwLjAwNTE2NSwgMC4wMDUxNTQsIDAuMDA1MTQ4LCAwLjAwNTE0LCAwLjAwNTEzNyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTQ0MiwgMC4wMDE0NDMsIDAuMDAxNDQzLCAwLjAwMTQ0MiwgMC4wMDE0NDIsIDAuMDAxNDQxLCAwLjAwMTQ0MSIsIFwKLSAgICAgICAgICAiMC4wMDE0MTEsIDAuMDAxNDE0LCAwLjAwMTQxNywgMC4wMDE0MTcsIDAuMDAxNDE3LCAwLjAwMTQxNywgMC4wMDE0MTYiLCBcCi0gICAgICAgICAgIjAuMDAxNCwgMC4wMDE0MDQsIDAuMDAxNDEsIDAuMDAxNDEyLCAwLjAwMTQxMiwgMC4wMDE0MTIsIDAuMDAxNDEyIiwgXAotICAgICAgICAgICIwLjAwMTM5OSwgMC4wMDE0MDMsIDAuMDAxNDA5LCAwLjAwMTQxMSwgMC4wMDE0MTEsIDAuMDAxNDExLCAwLjAwMTQxMSIsIFwKLSAgICAgICAgICAiMC4wMDE0MSwgMC4wMDE0MTEsIDAuMDAxNDEyLCAwLjAwMTQxMiwgMC4wMDE0MTIsIDAuMDAxNDExLCAwLjAwMTQxMSIsIFwKLSAgICAgICAgICAiMC4wMDE0NDUsIDAuMDAxNDM3LCAwLjAwMTQyMywgMC4wMDE0MjEsIDAuMDAxNDE3LCAwLjAwMTQxNSwgMC4wMDE0MTMiLCBcCi0gICAgICAgICAgIjAuMDAxNDkzLCAwLjAwMTQ3NCwgMC4wMDE0NDIsIDAuMDAxNDMzLCAwLjAwMTQyNiwgMC4wMDE0MiwgMC4wMDE0MTciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0NzA5LCAwLjAwNDcwOSwgMC4wMDQ3MDksIDAuMDA0NzA4LCAwLjAwNDcwOCwgMC4wMDQ3MDQsIDAuMDA0NzAyIiwgXAotICAgICAgICAgICIwLjAwNDY4OSwgMC4wMDQ2OTIsIDAuMDA0Njk2LCAwLjAwNDY5NSwgMC4wMDQ2OTQsIDAuMDA0NjkyLCAwLjAwNDY5MSIsIFwKLSAgICAgICAgICAiMC4wMDQ2ODEsIDAuMDA0Njg0LCAwLjAwNDY5MiwgMC4wMDQ2OTIsIDAuMDA0NjkyLCAwLjAwNDY4OSwgMC4wMDQ2ODkiLCBcCi0gICAgICAgICAgIjAuMDA0Njg2LCAwLjAwNDY4OCwgMC4wMDQ2OTIsIDAuMDA0NjkyLCAwLjAwNDY5MSwgMC4wMDQ2OSwgMC4wMDQ2ODciLCBcCi0gICAgICAgICAgIjAuMDA0NzAzLCAwLjAwNDcsIDAuMDA0Njk2LCAwLjAwNDY5NSwgMC4wMDQ2OTUsIDAuMDA0NjkxLCAwLjAwNDY4OCIsIFwKLSAgICAgICAgICAiMC4wMDQ3NDgsIDAuMDA0NzM1LCAwLjAwNDcxMSwgMC4wMDQ3MDQsIDAuMDA0Njk5LCAwLjAwNDY5NCwgMC4wMDQ2OTEiLCBcCi0gICAgICAgICAgIjAuMDA0ODA3LCAwLjAwNDc3OCwgMC4wMDQ3MzEsIDAuMDA0NzE5LCAwLjAwNDcwOSwgMC4wMDQ3MDEsIDAuMDA0Njk3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxMTQyLCAwLjAwMTE0MywgMC4wMDExNDQsIDAuMDAxMTQ0LCAwLjAwMTE0NCwgMC4wMDExNDMsIDAuMDAxMTQ0IiwgXAotICAgICAgICAgICIwLjAwMTExOSwgMC4wMDExMjcsIDAuMDAxMTM4LCAwLjAwMTE0LCAwLjAwMTE0MSwgMC4wMDExNDIsIDAuMDAxMTQyIiwgXAotICAgICAgICAgICIwLjAwMTEsIDAuMDAxMTEyLCAwLjAwMTEzMiwgMC4wMDExMzYsIDAuMDAxMTM4LCAwLjAwMTE0LCAwLjAwMTE0IiwgXAotICAgICAgICAgICIwLjAwMTA5MSwgMC4wMDExMDUsIDAuMDAxMTI4LCAwLjAwMTEzMywgMC4wMDExMzcsIDAuMDAxMTM5LCAwLjAwMTEzOSIsIFwKLSAgICAgICAgICAiMC4wMDEwOTYsIDAuMDAxMTA3LCAwLjAwMTEyOSwgMC4wMDExMzQsIDAuMDAxMTM3LCAwLjAwMTEzOSwgMC4wMDExMzkiLCBcCi0gICAgICAgICAgIjAuMDAxMTI1LCAwLjAwMTEyNywgMC4wMDExMzcsIDAuMDAxMTM5LCAwLjAwMTE0LCAwLjAwMTE0MSwgMC4wMDExNDEiLCBcCi0gICAgICAgICAgIjAuMDAxMTcxLCAwLjAwMTE2MywgMC4wMDExNTIsIDAuMDAxMTUsIDAuMDAxMTQ4LCAwLjAwMTE0NiwgMC4wMDExNDQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0MjUyLCAwLjAwNDI1MywgMC4wMDQyNTMsIDAuMDA0MjUzLCAwLjAwNDI1MSwgMC4wMDQyNTEsIDAuMDA0MjQ3IiwgXAotICAgICAgICAgICIwLjAwNDIzMiwgMC4wMDQyMzUsIDAuMDA0MjQsIDAuMDA0MjQxLCAwLjAwNDIzOSwgMC4wMDQyMzYsIDAuMDA0MjM1IiwgXAotICAgICAgICAgICIwLjAwNDIzNSwgMC4wMDQyMzUsIDAuMDA0MjM3LCAwLjAwNDIzNywgMC4wMDQyMzcsIDAuMDA0MjM1LCAwLjAwNDIzNCIsIFwKLSAgICAgICAgICAiMC4wMDQyNjEsIDAuMDA0MjU0LCAwLjAwNDI0MywgMC4wMDQyNDEsIDAuMDA0MjM4LCAwLjAwNDIzNSwgMC4wMDQyMzQiLCBcCi0gICAgICAgICAgIjAuMDA0MzEzLCAwLjAwNDI5NSwgMC4wMDQyNiwgMC4wMDQyNTMsIDAuMDA0MjQ2LCAwLjAwNDIzOSwgMC4wMDQyMzgiLCBcCi0gICAgICAgICAgIjAuMDA0NDAyLCAwLjAwNDM2MSwgMC4wMDQyOTEsIDAuMDA0MjcyLCAwLjAwNDI2MSwgMC4wMDQyNDksIDAuMDA0MjQ0IiwgXAotICAgICAgICAgICIwLjAwNDQ5OCwgMC4wMDQ0MzUsIDAuMDA0MzI5LCAwLjAwNDI5NywgMC4wMDQyNzgsIDAuMDA0MjYsIDAuMDA0MjUyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwNzQ3LCAwLjAwMDc1MSwgMC4wMDA3NTYsIDAuMDAwNzU3LCAwLjAwMDc1NywgMC4wMDA3NTcsIDAuMDAwNzU3IiwgXAotICAgICAgICAgICIwLjAwMDczNSwgMC4wMDA3NSwgMC4wMDA3NzEsIDAuMDAwNzc2LCAwLjAwMDc3OCwgMC4wMDA3OCwgMC4wMDA3OCIsIFwKLSAgICAgICAgICAiMC4wMDA3MDcsIDAuMDAwNzI5LCAwLjAwMDc2NSwgMC4wMDA3NzMsIDAuMDAwNzc3LCAwLjAwMDc4MSwgMC4wMDA3ODIiLCBcCi0gICAgICAgICAgIjAuMDAwNjkyLCAwLjAwMDcxNiwgMC4wMDA3NTksIDAuMDAwNzY5LCAwLjAwMDc3NSwgMC4wMDA3OCwgMC4wMDA3ODIiLCBcCi0gICAgICAgICAgIjAuMDAwNjkyLCAwLjAwMDcxNCwgMC4wMDA3NTcsIDAuMDAwNzY4LCAwLjAwMDc3NCwgMC4wMDA3OCwgMC4wMDA3ODEiLCBcCi0gICAgICAgICAgIjAuMDAwNzE1LCAwLjAwMDcyOSwgMC4wMDA3NjIsIDAuMDAwNzcyLCAwLjAwMDc3NywgMC4wMDA3ODEsIDAuMDAwNzgzIiwgXAotICAgICAgICAgICIwLjAwMDc1NiwgMC4wMDA3NTcsIDAuMDAwNzc0LCAwLjAwMDc3OSwgMC4wMDA3ODMsIDAuMDAwNzg1LCAwLjAwMDc4NiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDM0OTQsIDAuMDAzNDk3LCAwLjAwMzUsIDAuMDAzNTAxLCAwLjAwMzUwMSwgMC4wMDM1MDEsIDAuMDAzNTAxIiwgXAotICAgICAgICAgICIwLjAwMzQ3OSwgMC4wMDM0ODksIDAuMDAzNTA0LCAwLjAwMzUwNywgMC4wMDM1MDgsIDAuMDAzNTEsIDAuMDAzNTExIiwgXAotICAgICAgICAgICIwLjAwMzQ2NywgMC4wMDM0OCwgMC4wMDM1MDEsIDAuMDAzNTA2LCAwLjAwMzUwOSwgMC4wMDM1MTEsIDAuMDAzNTExIiwgXAotICAgICAgICAgICIwLjAwMzQ3NiwgMC4wMDM0ODUsIDAuMDAzNTAzLCAwLjAwMzUwNiwgMC4wMDM1MDksIDAuMDAzNTEyLCAwLjAwMzUxMSIsIFwKLSAgICAgICAgICAiMC4wMDM1LCAwLjAwMzUwMiwgMC4wMDM1MDksIDAuMDAzNTExLCAwLjAwMzUxMiwgMC4wMDM1MTMsIDAuMDAzNTEzIiwgXAotICAgICAgICAgICIwLjAwMzU2NSwgMC4wMDM1NDMsIDAuMDAzNTI3LCAwLjAwMzUyMywgMC4wMDM1MjIsIDAuMDAzNTE4LCAwLjAwMzUxOCIsIFwKLSAgICAgICAgICAiMC4wMDM2NDIsIDAuMDAzNjAyLCAwLjAwMzU1NiwgMC4wMDM1NDMsIDAuMDAzNTM1LCAwLjAwMzUyNywgMC4wMDM1MjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDE0NTMsIDAuMDAxNDU0LCAwLjAwMTQ1NiwgMC4wMDE0NTUsIDAuMDAxNDU1LCAwLjAwMTQ1NSwgMC4wMDE0NTUiLCBcCi0gICAgICAgICAgIjAuMDAxNDM1LCAwLjAwMTQzNywgMC4wMDE0NDIsIDAuMDAxNDQzLCAwLjAwMTQ0MywgMC4wMDE0NDMsIDAuMDAxNDQyIiwgXAotICAgICAgICAgICIwLjAwMTQ1MSwgMC4wMDE0NTYsIDAuMDAxNDQ4LCAwLjAwMTQ0NiwgMC4wMDE0NDUsIDAuMDAxNDQ0LCAwLjAwMTQ0MyIsIFwKLSAgICAgICAgICAiMC4wMDE1MDIsIDAuMDAxNDc3LCAwLjAwMTQ1OCwgMC4wMDE0NTUsIDAuMDAxNDUxLCAwLjAwMTQ0NywgMC4wMDE0NDUiLCBcCi0gICAgICAgICAgIjAuMDAxNTU1LCAwLjAwMTUyOCwgMC4wMDE0ODEsIDAuMDAxNDY4LCAwLjAwMTQ2LCAwLjAwMTQ1MiwgMC4wMDE0NDkiLCBcCi0gICAgICAgICAgIjAuMDAxNjU4LCAwLjAwMTYwNywgMC4wMDE1MTksIDAuMDAxNDg5LCAwLjAwMTQ4LCAwLjAwMTQ2NSwgMC4wMDE0NTkiLCBcCi0gICAgICAgICAgIjAuMDAxNzc2LCAwLjAwMTY5NiwgMC4wMDE1NjMsIDAuMDAxNTI4LCAwLjAwMTUwNCwgMC4wMDE0OCwgMC4wMDE0NzIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzMDQ3LCAwLjAwMzA1MSwgMC4wMDMwNTYsIDAuMDAzMDU3LCAwLjAwMzA1NywgMC4wMDMwNTcsIDAuMDAzMDU3IiwgXAotICAgICAgICAgICIwLjAwMzAzNywgMC4wMDMwNDcsIDAuMDAzMDYxLCAwLjAwMzA2NCwgMC4wMDMwNjUsIDAuMDAzMDY3LCAwLjAwMzA2NyIsIFwKLSAgICAgICAgICAiMC4wMDMwNDcsIDAuMDAzMDUzLCAwLjAwMzA2MywgMC4wMDMwNjUsIDAuMDAzMDY3LCAwLjAwMzA2OCwgMC4wMDMwNjgiLCBcCi0gICAgICAgICAgIjAuMDAzMDc1LCAwLjAwMzA3MywgMC4wMDMwNywgMC4wMDMwNzEsIDAuMDAzMDcxLCAwLjAwMzA3MSwgMC4wMDMwNzEiLCBcCi0gICAgICAgICAgIjAuMDAzMTI1LCAwLjAwMzEwNSwgMC4wMDMwODcsIDAuMDAzMDc5LCAwLjAwMzA3NywgMC4wMDMwNzUsIDAuMDAzMDczIiwgXAotICAgICAgICAgICIwLjAwMzIzNSwgMC4wMDMxODQsIDAuMDAzMTE5LCAwLjAwMzEwMiwgMC4wMDMwOTMsIDAuMDAzMDg0LCAwLjAwMzA4MiIsIFwKLSAgICAgICAgICAiMC4wMDMzNSwgMC4wMDMyNjksIDAuMDAzMTU5LCAwLjAwMzEzNCwgMC4wMDMxMTMsIDAuMDAzMDk3LCAwLjAwMzA5MiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTE2MywgMC4wMDExNjcsIDAuMDAxMTczLCAwLjAwMTE3NCwgMC4wMDExNzUsIDAuMDAxMTc1LCAwLjAwMTE3NCIsIFwKLSAgICAgICAgICAiMC4wMDExNDgsIDAuMDAxMTYxLCAwLjAwMTE3OCwgMC4wMDExODEsIDAuMDAxMTgzLCAwLjAwMTE4NSwgMC4wMDExODUiLCBcCi0gICAgICAgICAgIjAuMDAxMTU4LCAwLjAwMTE2NywgMC4wMDExOCwgMC4wMDExODMsIDAuMDAxMTg1LCAwLjAwMTE4NiwgMC4wMDExODYiLCBcCi0gICAgICAgICAgIjAuMDAxMTc0LCAwLjAwMTE3NywgMC4wMDExODgsIDAuMDAxMTg5LCAwLjAwMTE4OSwgMC4wMDExODksIDAuMDAxMTg5IiwgXAotICAgICAgICAgICIwLjAwMTIyOSwgMC4wMDEyMTcsIDAuMDAxMjAyLCAwLjAwMTE5OCwgMC4wMDExOTUsIDAuMDAxMTkzLCAwLjAwMTE5MiIsIFwKLSAgICAgICAgICAiMC4wMDEzMiwgMC4wMDEyODMsIDAuMDAxMjM1LCAwLjAwMTIxNSwgMC4wMDEyMTEsIDAuMDAxMjAzLCAwLjAwMTIiLCBcCi0gICAgICAgICAgIjAuMDAxNDMzLCAwLjAwMTM2NSwgMC4wMDEyNjksIDAuMDAxMjQ5LCAwLjAwMTIzMSwgMC4wMDEyMTYsIDAuMDAxMjExIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IE9SMlgxICoKLSAqIC0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChPUjJYMSkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjI0NDUyNzsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjA4NDY4OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYwNjc2MjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2MDg0Njg7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjYxLCAwLjAwMDI3OSwgMC4wMDAyODUsIDAuMDAwMjg4LCAwLjAwMDI5LCAwLjAwMDI5MiwgMC4wMDAyOTIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAzMDQsIDAuMDAwMzA0LCAwLjAwMDMwNCwgMC4wMDAzMDQsIDAuMDAwMzA0LCAwLjAwMDMwNCwgMC4wMDAzMDQiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYzNzI0MjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MzcyNDI7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjM3MDA2OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDA3MiwgMC4wMDAwNzIsIDAuMDAwMDcyLCAwLjAwMDA3MiwgMC4wMDAwNzIsIDAuMDAwMDcyLCAwLjAwMDA3MiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDI1MSwgMC4wMDAyNTEsIDAuMDAwMjUxLCAwLjAwMDI1LCAwLjAwMDI1MSwgMC4wMDAyNTEsIDAuMDAwMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4zNDExOTg7Ci0gICAgZnVuY3Rpb24gOiAiKEErQikiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0OTgzMywgMC4wNjg0NjgsIDAuMTc0MDAxLCAwLjI2NzA2NywgMC4zOTExNCwgMC42MzkzMDcsIDAuNzk0MzcxIiwgXAotICAgICAgICAgICIwLjA1NzgyMywgMC4wNzY0NzIsIDAuMTgxOTkyLCAwLjI3NTA2MiwgMC4zOTkxNDEsIDAuNjQ3MjkxLCAwLjgwMjUwMiIsIFwKLSAgICAgICAgICAiMC4wNjUzNSwgMC4wODM5OCwgMC4xODk1MTMsIDAuMjgyNTU3LCAwLjQwNjY0NywgMC42NTQ3NjcsIDAuODA5ODU2IiwgXAotICAgICAgICAgICIwLjA3MDk0NywgMC4wODk1OTQsIDAuMTk1MDg4LCAwLjI4ODEzNSwgMC40MTIyNDEsIDAuNjYwMzYxLCAwLjgxNTUxNiIsIFwKLSAgICAgICAgICAiMC4wNzUzNywgMC4wOTM5OTksIDAuMTk5NDkyLCAwLjI5MjUyOCwgMC40MTY2NzYsIDAuNjY0ODE1LCAwLjgxOTg2NyIsIFwKLSAgICAgICAgICAiMC4wODEzNzQsIDAuMDk5OTcsIDAuMjA1NDM1LCAwLjI5ODQ5NiwgMC40MjI1MzUsIDAuNjcwNzI4LCAwLjgyNTgxMiIsIFwKLSAgICAgICAgICAiMC4wODU3NDksIDAuMTA0MzM1LCAwLjIwOTgwOSwgMC4zMDI4NzQsIDAuNDI2ODk1LCAwLjY3NDk5MiwgMC44MzAyMDgiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDcwNzU1LCAwLjEwOTY1OSwgMC4zMzE3OTMsIDAuNTI3MzE3LCAwLjc4ODYyLCAxLjMxMDYzLCAxLjYzODgxIiwgXAotICAgICAgICAgICIwLjA3MDg1NiwgMC4xMDk3NzgsIDAuMzMxNzcxLCAwLjUyNzQ0NywgMC43ODg1ODYsIDEuMzEwOTksIDEuNjM4ODciLCBcCi0gICAgICAgICAgIjAuMDcxMjAzLCAwLjEwOTk0NiwgMC4zMzE3NjksIDAuNTI3Nzk1LCAwLjc4OTE5MiwgMS4zMTA2OSwgMS42Mzc0IiwgXAotICAgICAgICAgICIwLjA3MTYwNSwgMC4xMTAxNTUsIDAuMzMxNzU0LCAwLjUyNzM3LCAwLjc4OTE2MiwgMS4zMTIsIDEuNjM4NzYiLCBcCi0gICAgICAgICAgIjAuMDcyMjAxLCAwLjExMDMyNiwgMC4zMzE1MjcsIDAuNTI3NzI1LCAwLjc4ODE2NCwgMS4zMTE5NiwgMS42Mzg3MSIsIFwKLSAgICAgICAgICAiMC4wNzI5OTgsIDAuMTEwOTkyLCAwLjMzMTY2MSwgMC41Mjc1MTMsIDAuNzg5MDA4LCAxLjMxMTg1LCAxLjYzODU5IiwgXAotICAgICAgICAgICIwLjA3MzYzOCwgMC4xMTEzNDIsIDAuMzMxNDcsIDAuNTI3NDA4LCAwLjc4ODk2OSwgMS4zMTE2NiwgMS42Mzg2MiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjE4NjcsIDAuMDgwMTI1LCAwLjE4MjcxOSwgMC4yNzMyMjMsIDAuMzkzODk2LCAwLjYzNTM2MSwgMC43ODYwMjEiLCBcCi0gICAgICAgICAgIjAuMDY3NTM2LCAwLjA4NTc4NywgMC4xODg0MDgsIDAuMjc4ODgzLCAwLjM5OTU5OCwgMC42NDA5MzYsIDAuNzkxODI2IiwgXAotICAgICAgICAgICIwLjA3MzYxMiwgMC4wOTE4ODEsIDAuMTk0NDcxLCAwLjI4NDk3NCwgMC40MDU2NTgsIDAuNjQ3MDI0LCAwLjc5NzkxNiIsIFwKLSAgICAgICAgICAiMC4wNzg0NjEsIDAuMDk2Nzc3LCAwLjE5OTM1NSwgMC4yODk4ODYsIDAuNDEwNTQ4LCAwLjY1MjEwNywgMC44MDMwNTciLCBcCi0gICAgICAgICAgIjAuMDgyNTIzLCAwLjEwMDkzNiwgMC4yMDM1MzYsIDAuMjk0MDE0LCAwLjQxNDc1NCwgMC42NTYzNjYsIDAuODA2OTAzIiwgXAotICAgICAgICAgICIwLjA4ODExLCAwLjEwNjQ5MSwgMC4yMDkxNTksIDAuMjk5NjM3LCAwLjQyMDMxMiwgMC42NjE5MTcsIDAuODEyNTUyIiwgXAotICAgICAgICAgICIwLjA5MjM1NywgMC4xMTA3NTQsIDAuMjEzNDUxLCAwLjMwMzg5MiwgMC40MjQ2MzMsIDAuNjY1ODY4LCAwLjgxNzEzNCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjk4MDcsIDAuMTA2MDY3LCAwLjMxNjA0NywgMC41MDI1MTQsIDAuNzQ5NTUzLCAxLjI0NjE2LCAxLjU1NjA3IiwgXAotICAgICAgICAgICIwLjA2OTgwNywgMC4xMDYwOTIsIDAuMzE2MTU5LCAwLjUwMjQ4OSwgMC43NDk0MzIsIDEuMjQ1NTgsIDEuNTU2NzQiLCBcCi0gICAgICAgICAgIjAuMDcwMTY1LCAwLjEwNjM0OCwgMC4zMTYwNzMsIDAuNTAyNSwgMC43NDk1NTQsIDEuMjQ1NTUsIDEuNTU2NjIiLCBcCi0gICAgICAgICAgIjAuMDcwODA2LCAwLjEwNjc5MiwgMC4zMTYxNTUsIDAuNTAxNDA3LCAwLjc0OTUxNywgMS4yNDYxNCwgMS41NTYyNSIsIFwKLSAgICAgICAgICAiMC4wNzEzMzMsIDAuMTA3MTYsIDAuMzE2MjgxLCAwLjUwMjUxNywgMC43NTAyNTMsIDEuMjQ1OTUsIDEuNTU1NjgiLCBcCi0gICAgICAgICAgIjAuMDcyMjkxLCAwLjEwNzg1NiwgMC4zMTYwOTMsIDAuNTAxOTMxLCAwLjc0OTYyNCwgMS4yNDYwOSwgMS41NTkzIiwgXAotICAgICAgICAgICIwLjA3Mjk3OCwgMC4xMDgzMzksIDAuMzE2MjI5LCAwLjUwMjQ5NywgMC43NDk0NzQsIDEuMjQ1OTIsIDEuNTU2MjMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQ4MTMsIDAuMDY2NzY3LCAwLjE3MjMsIDAuMjY1NDkzLCAwLjM4OTUyNSwgMC42Mzc5NjEsIDAuNzkyODMzIiwgXAotICAgICAgICAgICIwLjA1NTgwNCwgMC4wNzQ0NDUsIDAuMTgwMDU3LCAwLjI3MzIyNSwgMC4zOTcyNiwgMC42NDU1MzIsIDAuODAxMTI0IiwgXAotICAgICAgICAgICIwLjA2MjUyMiwgMC4wODExNjUsIDAuMTg2NzIsIDAuMjc5ODY1LCAwLjQwMzk4NSwgMC42NTI4MTEsIDAuODA3OTUyIiwgXAotICAgICAgICAgICIwLjA2NzM5MywgMC4wODYwNjgsIDAuMTkxNjEzLCAwLjI4NDczNSwgMC40MDg4ODYsIDAuNjU3MzIyLCAwLjgxMjI2OSIsIFwKLSAgICAgICAgICAiMC4wNzEwMjQsIDAuMDg5NjU1LCAwLjE5NTE0MywgMC4yODgzNTYsIDAuNDEyNzE2LCAwLjY2MDczOSwgMC44MTU4NTEiLCBcCi0gICAgICAgICAgIjAuMDc2MTU1LCAwLjA5NDc2NywgMC4yMDAyMDgsIDAuMjkzMjUxLCAwLjQxNzQ0MiwgMC42NjU2NDYsIDAuODIwODc2IiwgXAotICAgICAgICAgICIwLjA3OTk0LCAwLjA5ODM2MSwgMC4yMDM4MjEsIDAuMjk2ODQzLCAwLjQyMTA1MiwgMC42NjkxOTYsIDAuODI0NTgxIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3MDU4LCAwLjEwOTQ5NCwgMC4zMzEzOTcsIDAuNTI3MTczLCAwLjc4Nzk2MSwgMS4zMTEzLCAxLjYzNjQ4IiwgXAotICAgICAgICAgICIwLjA3MDcyNSwgMC4xMDk2OTIsIDAuMzMxNDU4LCAwLjUyNzE3NywgMC43ODc4NiwgMS4zMTE4OCwgMS42MzY2OCIsIFwKLSAgICAgICAgICAiMC4wNzExMzUsIDAuMTA5ODksIDAuMzMxNTEsIDAuNTI3MTM5LCAwLjc4Nzg1NiwgMS4zMTA5OCwgMS42MzY2MSIsIFwKLSAgICAgICAgICAiMC4wNzE2MjgsIDAuMTEwMDk5LCAwLjMzMTM5MiwgMC41MjcxMjMsIDAuNzg4NjA2LCAxLjMxMDU1LCAxLjYzODc4IiwgXAotICAgICAgICAgICIwLjA3MjMzNCwgMC4xMTAzMzEsIDAuMzMxNzIzLCAwLjUyNzI4NSwgMC43ODg0NjIsIDEuMzA5ODIsIDEuNjM4NzEiLCBcCi0gICAgICAgICAgIjAuMDczMjAzLCAwLjExMTA2OSwgMC4zMzEyNTUsIDAuNTI3ODIzLCAwLjc4ODA3LCAxLjMxMDIxLCAxLjYzNzM5IiwgXAotICAgICAgICAgICIwLjA3MzkyOCwgMC4xMTE0OTUsIDAuMzMxNTgyLCAwLjUyNzQyLCAwLjc4ODExMywgMS4zMTE4LCAxLjYzNjM4Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1OTU4MSwgMC4wNzc4NDcsIDAuMTgwNDc3LCAwLjI3MDk5MiwgMC4zOTE2OTYsIDAuNjMzMTQyLCAwLjc4MzU3IiwgXAotICAgICAgICAgICIwLjA2NjkxNCwgMC4wODUxNzQsIDAuMTg3NzkxLCAwLjI3ODI5NSwgMC4zOTg5OSwgMC42NDA1NTYsIDAuNzkxMTkiLCBcCi0gICAgICAgICAgIjAuMDc1MzE4LCAwLjA5MzU3MywgMC4xOTYxODQsIDAuMjg2NzIsIDAuNDA3MzY4LCAwLjY0ODc0OSwgMC43OTk2NDUiLCBcCi0gICAgICAgICAgIjAuMDgxNywgMC4xMDAwMjEsIDAuMjAyNjM2LCAwLjI5MzE2NSwgMC40MTM5MDIsIDAuNjU1NDExLCAwLjgwNjEzNiIsIFwKLSAgICAgICAgICAiMC4wODY4OTQsIDAuMTA1NDU5LCAwLjIwNzkzNywgMC4yOTg0OTksIDAuNDE5MTg2LCAwLjY2MDcxMywgMC44MTE1MjIiLCBcCi0gICAgICAgICAgIjAuMDk0MzE0LCAwLjExMjc1MywgMC4yMTUyNTYsIDAuMzA1NzEsIDAuNDI2MzY4LCAwLjY2NzcxMSwgMC44MTg0OTkiLCBcCi0gICAgICAgICAgIjAuMDk5ODYyLCAwLjExODQyMiwgMC4yMjExOTIsIDAuMzExNjQzLCAwLjQzMjA1LCAwLjY3MzI2MiwgMC44MjQyOTUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY5NzkxLCAwLjEwNjA2MSwgMC4zMTYwMzMsIDAuNTAyNTA5LCAwLjc0OTU0NiwgMS4yNDYxNSwgMS41NTkwOCIsIFwKLSAgICAgICAgICAiMC4wNjk4MTQsIDAuMTA2MDU4LCAwLjMxNjA0MSwgMC41MDI0ODUsIDAuNzUxMDU5LCAxLjI0NjE2LCAxLjU1NzYxIiwgXAotICAgICAgICAgICIwLjA3MDMwMywgMC4xMDYzMzQsIDAuMzE1NzIsIDAuNTAxMzU5LCAwLjc0OTU1LCAxLjI0NjM2LCAxLjU1NjU2IiwgXAotICAgICAgICAgICIwLjA3MDk3NywgMC4xMDY5MzQsIDAuMzE1ODQ2LCAwLjUwMTQwMSwgMC43NDk3MjEsIDEuMjQ2MDYsIDEuNTU3NzYiLCBcCi0gICAgICAgICAgIjAuMDcxNiwgMC4xMDczNzYsIDAuMzE2MDI3LCAwLjUwMTczNCwgMC43NDk3NTksIDEuMjQ2MDQsIDEuNTU2NDMiLCBcCi0gICAgICAgICAgIjAuMDcyMzk3LCAwLjEwNzk3NiwgMC4zMTY2NzYsIDAuNTAyNzI3LCAwLjc1MTMyOSwgMS4yNDU4MywgMS41NTYxMSIsIFwKLSAgICAgICAgICAiMC4wNzMyODEsIDAuMTA4NTk1LCAwLjMxNjQxLCAwLjUwMjgyLCAwLjc1MTI3OSwgMS4yNDU3MSwgMS41NTY5NSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTY1MSwgMC4wMDE2NTQsIDAuMDAxNjU3LCAwLjAwMTY1NiwgMC4wMDE2NTgsIDAuMDAxNjYsIDAuMDAxNjU5IiwgXAotICAgICAgICAgICIwLjAwMTY0OCwgMC4wMDE2NTIsIDAuMDAxNjU4LCAwLjAwMTY1OSwgMC4wMDE2NiwgMC4wMDE2NiwgMC4wMDE2NiIsIFwKLSAgICAgICAgICAiMC4wMDE3MTIsIDAuMDAxNzE1LCAwLjAwMTcyLCAwLjAwMTcyMSwgMC4wMDE3MjMsIDAuMDAxNzIyLCAwLjAwMTcyMyIsIFwKLSAgICAgICAgICAiMC4wMDE3OTgsIDAuMDAxNzk5LCAwLjAwMTgwNCwgMC4wMDE4MDQsIDAuMDAxODA1LCAwLjAwMTgwNiwgMC4wMDE4MDUiLCBcCi0gICAgICAgICAgIjAuMDAxOTA4LCAwLjAwMTkwNywgMC4wMDE5MDgsIDAuMDAxOTA3LCAwLjAwMTkwOCwgMC4wMDE5MDksIDAuMDAxOTA4IiwgXAotICAgICAgICAgICIwLjAwMjA5OSwgMC4wMDIwOTYsIDAuMDAyMDg3LCAwLjAwMjA5NSwgMC4wMDIwODgsIDAuMDAyMDg2LCAwLjAwMjA5NCIsIFwKLSAgICAgICAgICAiMC4wMDIyNzYsIDAuMDAyMjYyLCAwLjAwMjI1OCwgMC4wMDIyNjYsIDAuMDAyMjU3LCAwLjAwMjI1NiwgMC4wMDIyNTQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI5OTQsIDAuMDAyOTk5LCAwLjAwMzAwNSwgMC4wMDMwMDYsIDAuMDAzMDA3LCAwLjAwMzAwNywgMC4wMDMwMDciLCBcCi0gICAgICAgICAgIjAuMDAyOTcsIDAuMDAyOTc3LCAwLjAwMjk4NSwgMC4wMDI5ODcsIDAuMDAyOTg4LCAwLjAwMjk4OCwgMC4wMDI5ODkiLCBcCi0gICAgICAgICAgIjAuMDAyOTkzLCAwLjAwMywgMC4wMDMwMDksIDAuMDAzMDExLCAwLjAwMzAxMiwgMC4wMDMwMTIsIDAuMDAzMDEzIiwgXAotICAgICAgICAgICIwLjAwMzA0OCwgMC4wMDMwNTMsIDAuMDAzMDYxLCAwLjAwMzA2MiwgMC4wMDMwNjMsIDAuMDAzMDY0LCAwLjAwMzA2NCIsIFwKLSAgICAgICAgICAiMC4wMDMxMTUsIDAuMDAzMTIsIDAuMDAzMTMsIDAuMDAzMTMyLCAwLjAwMzEzMywgMC4wMDMxMzQsIDAuMDAzMTM0IiwgXAotICAgICAgICAgICIwLjAwMzI1NSwgMC4wMDMyNTksIDAuMDAzMjcsIDAuMDAzMjcyLCAwLjAwMzI3MywgMC4wMDMyNzQsIDAuMDAzMjc0IiwgXAotICAgICAgICAgICIwLjAwMzQwNSwgMC4wMDM0MDcsIDAuMDAzNDExLCAwLjAwMzQxMiwgMC4wMDM0MTIsIDAuMDAzNDE0LCAwLjAwMzQxNCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTQ5MSwgMC4wMDE0OTcsIDAuMDAxNTA0LCAwLjAwMTUwNSwgMC4wMDE1MDYsIDAuMDAxNTA2LCAwLjAwMTUwNyIsIFwKLSAgICAgICAgICAiMC4wMDE0NjksIDAuMDAxNDc4LCAwLjAwMTQ5LCAwLjAwMTQ5MiwgMC4wMDE0OTQsIDAuMDAxNDk0LCAwLjAwMTQ5NSIsIFwKLSAgICAgICAgICAiMC4wMDE1MjQsIDAuMDAxNTMzLCAwLjAwMTU1LCAwLjAwMTU1MywgMC4wMDE1NTUsIDAuMDAxNTU3LCAwLjAwMTU1NiIsIFwKLSAgICAgICAgICAiMC4wMDE2MDgsIDAuMDAxNjE2LCAwLjAwMTYzMSwgMC4wMDE2MzUsIDAuMDAxNjM0LCAwLjAwMTYzOSwgMC4wMDE2MzYiLCBcCi0gICAgICAgICAgIjAuMDAxNzE3LCAwLjAwMTcyNSwgMC4wMDE3NDEsIDAuMDAxNzM1LCAwLjAwMTc1LCAwLjAwMTc0LCAwLjAwMTc1MyIsIFwKLSAgICAgICAgICAiMC4wMDE4ODksIDAuMDAxODkxLCAwLjAwMTkwNiwgMC4wMDE5MDksIDAuMDAxOTEzLCAwLjAwMTkxNSwgMC4wMDE5MTYiLCBcCi0gICAgICAgICAgIjAuMDAyMDQyLCAwLjAwMjAzOCwgMC4wMDIwNTYsIDAuMDAyMDY0LCAwLjAwMjA2NSwgMC4wMDIwNjksIDAuMDAyMDc3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyNzM4LCAwLjAwMjc0NiwgMC4wMDI3NTYsIDAuMDAyNzU4LCAwLjAwMjc1OSwgMC4wMDI3NiwgMC4wMDI3NiIsIFwKLSAgICAgICAgICAiMC4wMDI3MzUsIDAuMDAyNzQ0LCAwLjAwMjc1OCwgMC4wMDI3NjEsIDAuMDAyNzYyLCAwLjAwMjc2NCwgMC4wMDI3NjQiLCBcCi0gICAgICAgICAgIjAuMDAyNzkyLCAwLjAwMjc5OCwgMC4wMDI4MTMsIDAuMDAyODE2LCAwLjAwMjgxOCwgMC4wMDI4MiwgMC4wMDI4MiIsIFwKLSAgICAgICAgICAiMC4wMDI4NzQsIDAuMDAyODgyLCAwLjAwMjg5NiwgMC4wMDI4OTksIDAuMDAyOTAxLCAwLjAwMjkwMywgMC4wMDI5MDMiLCBcCi0gICAgICAgICAgIjAuMDAyOTc3LCAwLjAwMjk4MSwgMC4wMDI5OSwgMC4wMDI5OTQsIDAuMDAyOTk1LCAwLjAwMjk5NywgMC4wMDI5OTciLCBcCi0gICAgICAgICAgIjAuMDAzMTU3LCAwLjAwMzE2LCAwLjAwMzE2MSwgMC4wMDMxNjUsIDAuMDAzMTY3LCAwLjAwMzE2OSwgMC4wMDMxNjkiLCBcCi0gICAgICAgICAgIjAuMDAzMzIxLCAwLjAwMzMxNywgMC4wMDMzMTcsIDAuMDAzMzIxLCAwLjAwMzMxNSwgMC4wMDMzMjQsIDAuMDAzMzIzIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IE9SMlgyICoKLSAqIC0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChPUjJYMikgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjMzNTU1NzsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjUxNjk2OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDY0OTkyOTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2NTE2OTY7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjYxLCAwLjAwMDI3OSwgMC4wMDAyODQsIDAuMDAwMjg3LCAwLjAwMDI5LCAwLjAwMDI5MiwgMC4wMDAyOTIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAzMDQsIDAuMDAwMzA0LCAwLjAwMDMwNCwgMC4wMDAzMDQsIDAuMDAwMzA0LCAwLjAwMDMwNCwgMC4wMDAzMDQiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY2ODc0MjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2Njg3NDI7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjY4NTQ4OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDA3MiwgMC4wMDAwNzIsIDAuMDAwMDcyLCAwLjAwMDA3MiwgMC4wMDAwNzIsIDAuMDAwMDcyLCAwLjAwMDA3MiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDI0MiwgMC4wMDAyNDIsIDAuMDAwMjQyLCAwLjAwMDI0MSwgMC4wMDAyNDEsIDAuMDAwMjQyLCAwLjAwMDI0MSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjY3OTg0NTsKLSAgICBmdW5jdGlvbiA6ICIoQStCKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM5MjUzLCAwLjExNjc0MSwgMC4xNzg1OCwgMC4yNTU3NzQsIDAuMzMyOTk2LCAwLjQxMDIxOSwgMC40ODc0MTEiLCBcCi0gICAgICAgICAgIjAuMDQ3NDYyLCAwLjEyNDk3NCwgMC4xODY3NjMsIDAuMjYzOTcyLCAwLjM0MTIzOCwgMC40MTgzOTgsIDAuNDk1NjE1IiwgXAotICAgICAgICAgICIwLjA1NjM1NiwgMC4xMzM4NTgsIDAuMTk1NjQ5LCAwLjI3Mjg0MywgMC4zNTAwNTUsIDAuNDI3MjYxLCAwLjUwNDQ2NyIsIFwKLSAgICAgICAgICAiMC4wNjMwNTYsIDAuMTQwNTk1LCAwLjIwMjM2NSwgMC4yNzk2MDMsIDAuMzU2Nzc3LCAwLjQzMzk3NiwgMC41MTExNzciLCBcCi0gICAgICAgICAgIjAuMDY4NDYzLCAwLjE0NjA0LCAwLjIwNzc2LCAwLjI4NDk3MiwgMC4zNjIxNzIsIDAuNDM5MzcxLCAwLjUxNjU1IiwgXAotICAgICAgICAgICIwLjA3NTg0MiwgMC4xNTM1OTIsIDAuMjE1MzMyLCAwLjI5MjU0OSwgMC4zNjk3MTEsIDAuNDQ2ODk3LCAwLjUyNDE2NiIsIFwKLSAgICAgICAgICAiMC4wODExMTMsIDAuMTU4OTc4LCAwLjIyMDY5MSwgMC4yOTc4ODUsIDAuMzc0ODIzLCAwLjQ1MjI1OCwgMC41Mjk0ODMiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM5NTUyLCAwLjIwMDQ2NywgMC4zMzA5NSwgMC40OTM0OTUsIDAuNjU2NDQ5LCAwLjgyMDAyNywgMC45ODIwNjciLCBcCi0gICAgICAgICAgIjAuMDM5NjA4LCAwLjIwMDM2MiwgMC4zMzA5MTcsIDAuNDkzNTAxLCAwLjY1Njk0NywgMC44MTkzMzksIDAuOTgyMTE2IiwgXAotICAgICAgICAgICIwLjA0MDQ2MiwgMC4yMDA2NTcsIDAuMzMwNTM4LCAwLjQ5Mzg4NywgMC42NTYzNzMsIDAuODE5MjM5LCAwLjk4MjA3OCIsIFwKLSAgICAgICAgICAiMC4wNDE2NTQsIDAuMjAwNzYzLCAwLjMzMDkwMywgMC40OTM5MDksIDAuNjU2OTAyLCAwLjgxOTkzMiwgMC45ODI5NiIsIFwKLSAgICAgICAgICAiMC4wNDI5OTIsIDAuMjAwODg3LCAwLjMzMDkwOCwgMC40OTMxMDIsIDAuNjU2MTE3LCAwLjgxODY3OSwgMC45ODI4MjciLCBcCi0gICAgICAgICAgIjAuMDQ0NDU4LCAwLjIwMTAzNSwgMC4zMzA3MzUsIDAuNDkzNTI1LCAwLjY1NjMxMywgMC44MTkzNjMsIDAuOTgyODg0IiwgXAotICAgICAgICAgICIwLjA0NTgzNCwgMC4yMDExNjEsIDAuMzMwOTMsIDAuNDkzNTM0LCAwLjY1Njc1NiwgMC44MTg3MTgsIDAuOTgyNzk4Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1NjE0OSwgMC4xMzM5MDEsIDAuMTk0NTU3LCAwLjI3MDM0LCAwLjM0NjE0MSwgMC40MjE5MTcsIDAuNDk3ODA4IiwgXAotICAgICAgICAgICIwLjA2MTg4LCAwLjEzOTYzNCwgMC4yMDAyODUsIDAuMjc2MDYzLCAwLjM1MTkzNywgMC40Mjc2MzIsIDAuNTAzNjYzIiwgXAotICAgICAgICAgICIwLjA2ODQ4LCAwLjE0NjI1LCAwLjIwNjkwNywgMC4yODI2ODgsIDAuMzU4NDkxLCAwLjQzNDM0NCwgMC41MTAxMDMiLCBcCi0gICAgICAgICAgIjAuMDc0MTU3LCAwLjE1MjA5NCwgMC4yMTI3MzYsIDAuMjg4NDk2LCAwLjM2NDM0MSwgMC40NDAxMTIsIDAuNTE1OTIyIiwgXAotICAgICAgICAgICIwLjA3ODk2MywgMC4xNTcxNTEsIDAuMjE3Nzc4LCAwLjI5MzU1MSwgMC4zNjk0MDQsIDAuNDQ1MTIxLCAwLjUyMTA2IiwgXAotICAgICAgICAgICIwLjA4NTUxOCwgMC4xNjQwNDcsIDAuMjI0NjgsIDAuMzAwNDM3LCAwLjM3NjIxMiwgMC40NTE5NzcsIDAuNTI3ODcyIiwgXAotICAgICAgICAgICIwLjA5MDU5MywgMC4xNjkyMjksIDAuMjI5ODM0LCAwLjMwNTU3MiwgMC4zODEzNDUsIDAuNDU3MTEzLCAwLjUzMzA5OCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDM0NzQsIDAuMTk2MTM5LCAwLjMyMTI0NywgMC40NzgyNTgsIDAuNjM1OTM5LCAwLjc5MzMyLCAwLjk0OTQ0MiIsIFwKLSAgICAgICAgICAiMC4wNDMzODgsIDAuMTk2MDc5LCAwLjMyMTIzNCwgMC40NzgzOTYsIDAuNjM0ODM2LCAwLjc5MzUyNCwgMC45NDk0MjMiLCBcCi0gICAgICAgICAgIjAuMDQzNzM5LCAwLjE5NjE4MiwgMC4zMjEyNjYsIDAuNDc3ODI2LCAwLjYzNTk3LCAwLjc5MjU2NSwgMC45NDkxMzEiLCBcCi0gICAgICAgICAgIjAuMDQ0NTk5LCAwLjE5NjE3MiwgMC4zMjE0MDEsIDAuNDc4NDAxLCAwLjYzNDYwMiwgMC43OTI1MDksIDAuOTQ5MDQiLCBcCi0gICAgICAgICAgIjAuMDQ1NjI3LCAwLjE5NjQ3MiwgMC4zMjEwMzIsIDAuNDc3ODYzLCAwLjYzNDUyOSwgMC43OTMzMDMsIDAuOTQ5MzkiLCBcCi0gICAgICAgICAgIjAuMDQ2NzA2LCAwLjE5Njk4OCwgMC4zMjEzODcsIDAuNDc4NTQ4LCAwLjYzNTIxOCwgMC43OTM1NTYsIDAuOTQ5NDYyIiwgXAotICAgICAgICAgICIwLjA0NzcyNCwgMC4xOTczMTcsIDAuMzIxOTEzLCAwLjQ3ODIwOSwgMC42MzYxMjMsIDAuNzkzNjMyLCAwLjk0OTQyNiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzc1NDEsIDAuMTE1MDMxLCAwLjE3Njg2NywgMC4yNTM5MzksIDAuMzMxNDYsIDAuNDA4NjMxLCAwLjQ4NTgzNSIsIFwKLSAgICAgICAgICAiMC4wNDU1MzgsIDAuMTIzMDA1LCAwLjE4NDg2MywgMC4yNjIwNjIsIDAuMzM5MzgzLCAwLjQxNjU3NSwgMC40OTM5OSIsIFwKLSAgICAgICAgICAiMC4wNTM4MzIsIDAuMTMxMzY1LCAwLjE5MzE3MiwgMC4yNzA0NTgsIDAuMzQ3NzY2LCAwLjQyNTA1NywgMC41MDI0NDEiLCBcCi0gICAgICAgICAgIjAuMDYwMDA4LCAwLjEzNzYzOCwgMC4xOTk0MiwgMC4yNzY3OTcsIDAuMzU0MDE2LCAwLjQzMTQxLCAwLjUwODQxNSIsIFwKLSAgICAgICAgICAiMC4wNjQ5MjksIDAuMTQyNjkxLCAwLjIwNDQ1MSwgMC4yODE3OTMsIDAuMzU5MTMzLCAwLjQzNjE2OCwgMC41MTM4IiwgXAotICAgICAgICAgICIwLjA3MTQ2LCAwLjE0ODkzLCAwLjIxMDYyNywgMC4yODc4NDYsIDAuMzY1MDQ1LCAwLjQ0MjQzNywgMC41MTk2MzIiLCBcCi0gICAgICAgICAgIjAuMDc2MTA0LCAwLjE1MzY3MiwgMC4yMTU1NTYsIDAuMjkyNzA0LCAwLjM2OTk4OSwgMC40NDcwOTQsIDAuNTI0NTYyIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzOTI4LCAwLjIwMDI5OCwgMC4zMzA0NDYsIDAuNDkyOTE4LCAwLjY1NjE3OCwgMC44MTg5NzIsIDAuOTgzMTExIiwgXAotICAgICAgICAgICIwLjAzOTQxNywgMC4yMDAyOTcsIDAuMzMwMzY5LCAwLjQ5MzE5NCwgMC42NTYxMjEsIDAuODE4NjY3LCAwLjk4MTkwMyIsIFwKLSAgICAgICAgICAiMC4wNDA0ODYsIDAuMjAwMzgxLCAwLjMzMDk2MywgMC40OTM1MSwgMC42NTYxNDQsIDAuODE5MDM3LCAwLjk4MTg1NCIsIFwKLSAgICAgICAgICAiMC4wNDE5MSwgMC4yMDA3ODYsIDAuMzMxMDE0LCAwLjQ5MzMyNSwgMC42NTY0NjEsIDAuODE4ODg4LCAwLjk4MTM2NyIsIFwKLSAgICAgICAgICAiMC4wNDMwODMsIDAuMjAwNjI0LCAwLjMzMDY0MSwgMC40OTMzMDEsIDAuNjU2MTg3LCAwLjgxOTk4MSwgMC45ODE2OTIiLCBcCi0gICAgICAgICAgIjAuMDQ0NjUxLCAwLjIwMDk2OSwgMC4zMzA4ODQsIDAuNDkzNDcsIDAuNjU3MTYsIDAuODE5MDA2LCAwLjk4MTUwNyIsIFwKLSAgICAgICAgICAiMC4wNDYxMjksIDAuMjAxMTkyLCAwLjMzMDg2MiwgMC40OTM4MDQsIDAuNjU2MDgzLCAwLjgxODY2OSwgMC45ODE4NjciKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDUzODc1LCAwLjEzMTY5MSwgMC4xOTIzNDIsIDAuMjY4MTI1LCAwLjM0MzkwNiwgMC40MTk3MjcsIDAuNDk1NDc4IiwgXAotICAgICAgICAgICIwLjA2MTIzMSwgMC4xMzkwMzcsIDAuMTk5NzA2LCAwLjI3NTQ4MSwgMC4zNTEzMSwgMC40MjcwNjcsIDAuNTAyOTUxIiwgXAotICAgICAgICAgICIwLjA3MDQ3OSwgMC4xNDgyNDYsIDAuMjA4OTAyLCAwLjI4NDY4NSwgMC4zNjA1MiwgMC40MzYzNjcsIDAuNTEyMTIzIiwgXAotICAgICAgICAgICIwLjA3ODQ1LCAwLjE1NjQzMSwgMC4yMTcwNzIsIDAuMjkyODM4LCAwLjM2ODYyOCwgMC40NDQ0MjIsIDAuNTIwMzUiLCBcCi0gICAgICAgICAgIjAuMDg1MDM2LCAwLjE2MzA1OSwgMC4yMjM4OTEsIDAuMjk5Njc3LCAwLjM3NTQ0NSwgMC40NTEyODIsIDAuNTI3MzYyIiwgXAotICAgICAgICAgICIwLjA5MzgyOCwgMC4xNzIyOTcsIDAuMjMyNjg0LCAwLjMwODQsIDAuMzg0MTY0LCAwLjQ1OTk0NCwgMC41MzU3MiIsIFwKLSAgICAgICAgICAiMC4xMDA0MTEsIDAuMTc5MTU4LCAwLjIzOTU3NywgMC4zMTUyMzgsIDAuMzkxMDA2LCAwLjQ2Njc0MywgMC41NDI1MTciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQzNDQxLCAwLjE5NjA1OSwgMC4zMjEyNzUsIDAuNDc3ODY1LCAwLjYzNTE1NCwgMC43OTE5MzcsIDAuOTUxMTk4IiwgXAotICAgICAgICAgICIwLjA0MzM5NSwgMC4xOTYwNzksIDAuMzIxMjYxLCAwLjQ3ODI2OSwgMC42MzQ2OTEsIDAuNzkzMjU1LCAwLjk0OTQ1NyIsIFwKLSAgICAgICAgICAiMC4wNDM4ODgsIDAuMTk2MjIxLCAwLjMyMDkwNCwgMC40NzgyOSwgMC42MzQ2NzMsIDAuNzkyMTEyLCAwLjk0OTAxNSIsIFwKLSAgICAgICAgICAiMC4wNDQ5NDYsIDAuMTk2NDUsIDAuMzIxNDEsIDAuNDc4NDQxLCAwLjYzNTA4LCAwLjc5MzU3OSwgMC45NTAwMTgiLCBcCi0gICAgICAgICAgIjAuMDQ1OTY3LCAwLjE5NjU0MywgMC4zMjE1NDgsIDAuNDc4NTgsIDAuNjM1NzcsIDAuNzkxODE5LCAwLjk0OTU4NSIsIFwKLSAgICAgICAgICAiMC4wNDc0ODUsIDAuMTk3MjI2LCAwLjMyMTQ4MiwgMC40NzgxNTIsIDAuNjM2MDksIDAuNzkzNjI2LCAwLjk0OTI1MSIsIFwKLSAgICAgICAgICAiMC4wNDg5NDYsIDAuMTk3NTQ0LCAwLjMyMjAxNCwgMC40Nzg5MjgsIDAuNjM2Mjk0LCAwLjc5MzcwOCwgMC45NDk4ODkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI4NDMsIDAuMDAyODc3LCAwLjAwMjg4OSwgMC4wMDI4ODYsIDAuMDAyODc5LCAwLjAwMjg4LCAwLjAwMjg4NyIsIFwKLSAgICAgICAgICAiMC4wMDI4MzEsIDAuMDAyODc1LCAwLjAwMjg4MSwgMC4wMDI4ODQsIDAuMDAyODg1LCAwLjAwMjg4NywgMC4wMDI4ODgiLCBcCi0gICAgICAgICAgIjAuMDAyODg1LCAwLjAwMjkyMywgMC4wMDI5MjcsIDAuMDAyOTMxLCAwLjAwMjkzMywgMC4wMDI5MzQsIDAuMDAyOTMzIiwgXAotICAgICAgICAgICIwLjAwMjk5MiwgMC4wMDMwMDMsIDAuMDAzMDA5LCAwLjAwMzAxLCAwLjAwMzAwOSwgMC4wMDMwMTMsIDAuMDAzMDEzIiwgXAotICAgICAgICAgICIwLjAwMzEwNSwgMC4wMDMwOTksIDAuMDAzMTAzLCAwLjAwMzEwNSwgMC4wMDMxMDcsIDAuMDAzMTA3LCAwLjAwMzEwNiIsIFwKLSAgICAgICAgICAiMC4wMDMzMDcsIDAuMDAzMjc4LCAwLjAwMzI4LCAwLjAwMzI4LCAwLjAwMzI4MSwgMC4wMDMyODIsIDAuMDAzMjgxIiwgXAotICAgICAgICAgICIwLjAwMzQ3NywgMC4wMDM0MzQsIDAuMDAzNDM0LCAwLjAwMzQzNCwgMC4wMDM0MzMsIDAuMDAzNDM1LCAwLjAwMzQzNiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDI0NywgMC4wMDQyOTQsIDAuMDA0MzAxLCAwLjAwNDMwNSwgMC4wMDQzMDcsIDAuMDA0MzA4LCAwLjAwNDMwOSIsIFwKLSAgICAgICAgICAiMC4wMDQyMDcsIDAuMDA0MjY5LCAwLjAwNDI3OCwgMC4wMDQyODMsIDAuMDA0Mjg2LCAwLjAwNDI4NywgMC4wMDQyODgiLCBcCi0gICAgICAgICAgIjAuMDA0MjMyLCAwLjAwNDI4NSwgMC4wMDQyOTQsIDAuMDA0MywgMC4wMDQzMDIsIDAuMDA0MzA0LCAwLjAwNDMwNSIsIFwKLSAgICAgICAgICAiMC4wMDQzMDksIDAuMDA0MzM1LCAwLjAwNDM0MiwgMC4wMDQzNDYsIDAuMDA0MzQ5LCAwLjAwNDM1LCAwLjAwNDM1MSIsIFwKLSAgICAgICAgICAiMC4wMDQzNTUsIDAuMDA0Mzg5LCAwLjAwNDM5NywgMC4wMDQ0MDIsIDAuMDA0NDA1LCAwLjAwNDQwNywgMC4wMDQ0MDgiLCBcCi0gICAgICAgICAgIjAuMDA0NTY0LCAwLjAwNDUyNiwgMC4wMDQ1MywgMC4wMDQ1MzMsIDAuMDA0NTM0LCAwLjAwNDUzNSwgMC4wMDQ1MzYiLCBcCi0gICAgICAgICAgIjAuMDA0NjY2LCAwLjAwNDY2OCwgMC4wMDQ2NjYsIDAuMDA0NjY0LCAwLjAwNDY2NCwgMC4wMDQ2NjUsIDAuMDA0NjY0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyNzAxLCAwLjAwMjc1NCwgMC4wMDI3NjEsIDAuMDAyNzYxLCAwLjAwMjc2NiwgMC4wMDI3NjcsIDAuMDAyNzcxIiwgXAotICAgICAgICAgICIwLjAwMjY3NCwgMC4wMDI3NDEsIDAuMDAyNzUxLCAwLjAwMjc1NSwgMC4wMDI3NTcsIDAuMDAyNzU5LCAwLjAwMjc2IiwgXAotICAgICAgICAgICIwLjAwMjcwMywgMC4wMDI3NzIsIDAuMDAyNzgxLCAwLjAwMjc4OSwgMC4wMDI3OTIsIDAuMDAyNzk0LCAwLjAwMjc5NyIsIFwKLSAgICAgICAgICAiMC4wMDI4LCAwLjAwMjg0OSwgMC4wMDI4NTgsIDAuMDAyODY2LCAwLjAwMjg2OSwgMC4wMDI4NzEsIDAuMDAyODczIiwgXAotICAgICAgICAgICIwLjAwMjkyMSwgMC4wMDI5NCwgMC4wMDI5NTEsIDAuMDAyOTUsIDAuMDAyOTUyLCAwLjAwMjk2MiwgMC4wMDI5NjIiLCBcCi0gICAgICAgICAgIjAuMDAzMDc0LCAwLjAwMzEwMSwgMC4wMDMxMTIsIDAuMDAzMTA0LCAwLjAwMzExOSwgMC4wMDMxMjQsIDAuMDAzMTE4IiwgXAotICAgICAgICAgICIwLjAwMzI1MywgMC4wMDMyMzUsIDAuMDAzMjY1LCAwLjAwMzI3LCAwLjAwMzI3NSwgMC4wMDMyNTksIDAuMDAzMjgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDM5ODYsIDAuMDA0MDQzLCAwLjAwNDA1MiwgMC4wMDQwNTcsIDAuMDA0MDU5LCAwLjAwNDA2MSwgMC4wMDQwNjIiLCBcCi0gICAgICAgICAgIjAuMDAzOTYyLCAwLjAwNDAzNSwgMC4wMDQwNDcsIDAuMDA0MDUzLCAwLjAwNDA1NywgMC4wMDQwNTksIDAuMDA0MDYiLCBcCi0gICAgICAgICAgIjAuMDA0MDM1LCAwLjAwNDA4NCwgMC4wMDQwOTYsIDAuMDA0MTA0LCAwLjAwNDEwOCwgMC4wMDQxMSwgMC4wMDQxMTIiLCBcCi0gICAgICAgICAgIjAuMDA0MTMsIDAuMDA0MTQ5LCAwLjAwNDE1OSwgMC4wMDQxNjUsIDAuMDA0MTY4LCAwLjAwNDE3LCAwLjAwNDE3MSIsIFwKLSAgICAgICAgICAiMC4wMDQyMzksIDAuMDA0MjMxLCAwLjAwNDI0MiwgMC4wMDQyNDksIDAuMDA0MjUyLCAwLjAwNDI1NCwgMC4wMDQyNTYiLCBcCi0gICAgICAgICAgIjAuMDA0NDYzLCAwLjAwNDM5MiwgMC4wMDQzOTUsIDAuMDA0NCwgMC4wMDQ0MDMsIDAuMDA0NDA0LCAwLjAwNDQwNiIsIFwKLSAgICAgICAgICAiMC4wMDQ2NTYsIDAuMDA0NTQ5LCAwLjAwNDU0OCwgMC4wMDQ1NDgsIDAuMDA0NTQ5LCAwLjAwNDU1LCAwLjAwNDU1MSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBPUjRYMiAqCi0gKiAtLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoT1I0WDIpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC40ODkwNDQ7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDU5MTE0OTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA1ODg1NzM7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNTkxMTQ5OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDI1NSwgMC4wMDAyNzEsIDAuMDAwMjc3LCAwLjAwMDI4MSwgMC4wMDAyODEsIDAuMDAwMjgsIDAuMDAwMjgxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNzQ2LCAwLjAwMDc0NiwgMC4wMDA3NDYsIDAuMDAwNzQ2LCAwLjAwMDc0NiwgMC4wMDA3NDYsIDAuMDAwNzQ2Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA1OTg4ODU7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNTk2Njg0OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDU5ODg4NTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyNDUsIDAuMDAwMjY3LCAwLjAwMDI3NiwgMC4wMDAyNzgsIDAuMDAwMjgsIDAuMDAwMjg2LCAwLjAwMDI4OCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDUxOCwgMC4wMDA1MTksIDAuMDAwNTE5LCAwLjAwMDUxOSwgMC4wMDA1MTksIDAuMDAwNTE5LCAwLjAwMDUxOSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQykgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjU3NzYzOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDY1NjE2NzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2NTc3NjM7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjQzLCAwLjAwMDI3NSwgMC4wMDAyODMsIDAuMDAwMjg1LCAwLjAwMDI4NCwgMC4wMDAyODgsIDAuMDAwMjg5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzA0LCAwLjAwMDMwNCwgMC4wMDAzMDQsIDAuMDAwMzA0LCAwLjAwMDMwNCwgMC4wMDAzMDQsIDAuMDAwMzA0Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihEKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2NjQzMTU7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjY0MzE1OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDY2NDA3MzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAwNzIsIDAuMDAwMDcyLCAwLjAwMDA3MiwgMC4wMDAwNzIsIDAuMDAwMDcyLCAwLjAwMDA3MiwgMC4wMDAwNzIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyNTUsIDAuMDAwMjU1LCAwLjAwMDI1NSwgMC4wMDAyNTUsIDAuMDAwMjU1LCAwLjAwMDI1NSwgMC4wMDAyNTUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC42OTY1Mjg7Ci0gICAgZnVuY3Rpb24gOiAiKCgoQStCKStDKStEKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQ2NzczLCAwLjEyNDQ1MiwgMC4xODU4NzgsIDAuMjYyNjA5LCAwLjMzOTMxNiwgMC40MTU5ODIsIDAuNDkyNjQ2IiwgXAotICAgICAgICAgICIwLjA1NTA5OCwgMC4xMzI3MTQsIDAuMTk0MTQ5LCAwLjI3MDg3OCwgMC4zNDc1OTUsIDAuNDI0MjUzLCAwLjUwMDkyNSIsIFwKLSAgICAgICAgICAiMC4wNjUyMTEsIDAuMTQyNzY1LCAwLjIwNDE5OSwgMC4yODA5MTQsIDAuMzU3NjE5LCAwLjQzNDI4NywgMC41MTA5NjIiLCBcCi0gICAgICAgICAgIjAuMDczNjIsIDAuMTUxMTM1LCAwLjIxMjU1NiwgMC4yODkyNjMsIDAuMzY1OTg2LCAwLjQ0MjY0LCAwLjUxOTMiLCBcCi0gICAgICAgICAgIjAuMDgwNDIsIDAuMTU4MDY2LCAwLjIxOTQ4MSwgMC4yOTYxNzIsIDAuMzcyODk2LCAwLjQ0OTUzNywgMC41MjYxNjQiLCBcCi0gICAgICAgICAgIjAuMDg5MTkxLCAwLjE2Njk0LCAwLjIyODMzMiwgMC4zMDUwMDYsIDAuMzgxNjkxLCAwLjQ1ODM1LCAwLjUzNDk5OCIsIFwKLSAgICAgICAgICAiMC4wOTUzNjgsIDAuMTczNDM1LCAwLjIzNDc4MiwgMC4zMTE0OTksIDAuMzg4MTIzLCAwLjQ2NDc5OCwgMC41NDE0NDIiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQxNDgzLCAwLjE5OTc5OCwgMC4zMjg3NjIsIDAuNDg5NjE3LCAwLjY1MjEzOCwgMC44MTM4OTMsIDAuOTc0MzI1IiwgXAotICAgICAgICAgICIwLjA0MTQwOSwgMC4xOTk3NTksIDAuMzI4NzQ1LCAwLjQ4OTg2MSwgMC42NTIxMTYsIDAuODEzODM3LCAwLjk3NTUyNSIsIFwKLSAgICAgICAgICAiMC4wNDE3NDcsIDAuMTk5NjIyLCAwLjMyODc2OSwgMC40OTAzNjYsIDAuNjUyMTIxLCAwLjgxMjk0OCwgMC45NzU1NjEiLCBcCi0gICAgICAgICAgIjAuMDQyODM2LCAwLjE5OTg3OSwgMC4zMjg3OCwgMC40ODk2ODgsIDAuNjUyMDg2LCAwLjgxMzc3MywgMC45NzU0ODciLCBcCi0gICAgICAgICAgIjAuMDQ0MTQzLCAwLjIwMDA3MiwgMC4zMjg4NTUsIDAuNDkwMzc3LCAwLjY1MTI5MywgMC44MTM3OCwgMC45NzQ4MTkiLCBcCi0gICAgICAgICAgIjAuMDQ2Mjg0LCAwLjIwMDM5NiwgMC4zMjg2MzYsIDAuNDkwMDk1LCAwLjY1MjA1OSwgMC44MTMxOTUsIDAuOTc0NzQzIiwgXAotICAgICAgICAgICIwLjA0ODI4OCwgMC4yMDA3MjksIDAuMzI4ODg3LCAwLjQ4OTc0MSwgMC42NTIwNjcsIDAuODEzNzY1LCAwLjk3NDkyMiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDc3NDMsIDAuMTk1MjU0LCAwLjI1NjkyNywgMC4zMzI5MjUsIDAuNDA4NzY1LCAwLjQ4NDU4NCwgMC41NjAzNyIsIFwKLSAgICAgICAgICAiMC4xMTI4NzUsIDAuMjAwMzYzLCAwLjI2MjAyNiwgMC4zMzgwMjYsIDAuNDEzODkyLCAwLjQ4OTY1NSwgMC41NjU0NzQiLCBcCi0gICAgICAgICAgIjAuMTE3NTEzLCAwLjIwNDg3LCAwLjI2NjUxNywgMC4zNDI1MzQsIDAuNDE4MzgyLCAwLjQ5NDE5MSwgMC41Njk5NzEiLCBcCi0gICAgICAgICAgIjAuMTIxMjY1LCAwLjIwODYzNCwgMC4yNzAyNzcsIDAuMzQ2Mjg5LCAwLjQyMjEzOCwgMC40OTc5NDMsIDAuNTczNzU0IiwgXAotICAgICAgICAgICIwLjEyNDUxOSwgMC4yMTE5NiwgMC4yNzM2MzQsIDAuMzQ5NjMzLCAwLjQyNTQ2NywgMC41MDEyNzUsIDAuNTc3MDUxIiwgXAotICAgICAgICAgICIwLjEyOTIzNywgMC4yMTcwMDksIDAuMjc4NjU1LCAwLjM1NDY2OSwgMC40MzA1LCAwLjUwNjMxMSwgMC41ODIwOTgiLCBcCi0gICAgICAgICAgIjAuMTMyODI2LCAwLjIyMTA5NCwgMC4yODI4NTksIDAuMzU4ODcyLCAwLjQzNDcxNywgMC41MTA0OTUsIDAuNTg2MzA5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1ODIxLCAwLjIwODQ3NiwgMC4zMzAxNzYsIDAuNDg0NjMyLCAwLjYzOTk4NSwgMC43OTc0NDIsIDAuOTU0MzYyIiwgXAotICAgICAgICAgICIwLjA1ODE2NCwgMC4yMDg0NjYsIDAuMzMwMTczLCAwLjQ4NDYyOCwgMC42Mzk2MzIsIDAuNzk2NDM4LCAwLjk1NDM1NiIsIFwKLSAgICAgICAgICAiMC4wNTgwODIsIDAuMjA4MzIsIDAuMzMwMTE0LCAwLjQ4NDg2MSwgMC42NDA4MSwgMC43OTc0MiwgMC45NTMzMTYiLCBcCi0gICAgICAgICAgIjAuMDU3OTY0LCAwLjIwODMxOCwgMC4zMzAxMDgsIDAuNDg0NTI3LCAwLjY0MDgyNCwgMC43OTc0MDQsIDAuOTU0MzA2IiwgXAotICAgICAgICAgICIwLjA1ODMyMSwgMC4yMDg1NDMsIDAuMzMwMTcyLCAwLjQ4NDYxNSwgMC42NDA4MTgsIDAuNzk3NDM5LCAwLjk1NDE3MSIsIFwKLSAgICAgICAgICAiMC4wNTkxODgsIDAuMjA4OTk5LCAwLjMzMDUwMywgMC40ODQ2NDMsIDAuNjQwOTUyLCAwLjc5NzQxMSwgMC45NTQyODUiLCBcCi0gICAgICAgICAgIjAuMDYwMTAzLCAwLjIwOTUzMiwgMC4zMzA4NTQsIDAuNDg0ODc5LCAwLjY0MTA5MiwgMC43OTY2MDksIDAuOTU0NTg0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0NTUwNSwgMC4xMjI5MDQsIDAuMTg0Mjk0LCAwLjI2MDk5OCwgMC4zMzc2NDksIDAuNDE0MjkyLCAwLjQ5MDk1MSIsIFwKLSAgICAgICAgICAiMC4wNTM3OTUsIDAuMTMxMjI1LCAwLjE5MjYwNCwgMC4yNjkzMSwgMC4zNDU4ODMsIDAuNDIyNjA3LCAwLjQ5OTI2OSIsIFwKLSAgICAgICAgICAiMC4wNjM1NTgsIDAuMTQwOTI4LCAwLjIwMjMxNCwgMC4yNzkwMzMsIDAuMzU1NjgxLCAwLjQzMjM4OCwgMC41MDg5ODYiLCBcCi0gICAgICAgICAgIjAuMDcxNTQ2LCAwLjE0ODkyNywgMC4yMTAzMiwgMC4yODcwMzIsIDAuMzYzNjcxLCAwLjQ0MDMxNywgMC41MTY5NzUiLCBcCi0gICAgICAgICAgIjAuMDc3OTQ5LCAwLjE1NTU0NiwgMC4yMTY5MDEsIDAuMjkzNTg2LCAwLjM3MDI3MiwgMC40NDY5MTgsIDAuNTIzNTU5IiwgXAotICAgICAgICAgICIwLjA4NjEzOSwgMC4xNjM4NDksIDAuMjI1MTg0LCAwLjMwMTg2NiwgMC4zNzg0OTksIDAuNDU1MTU2LCAwLjUzMTgxMiIsIFwKLSAgICAgICAgICAiMC4wOTE4MDMsIDAuMTcwMDYxLCAwLjIzMTA3NCwgMC4zMDgwNzMsIDAuMzg0NzI5LCAwLjQ2MTM4MSwgMC41MzgxMTMiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQwNzQ3LCAwLjE5OTQxNCwgMC4zMjg1MjQsIDAuNDkwMjY1LCAwLjY1MTkxLCAwLjgxMzY5NCwgMC45NzQ1OTgiLCBcCi0gICAgICAgICAgIjAuMDQwNzM1LCAwLjE5OTQzMywgMC4zMjgyNzEsIDAuNDkwMjI4LCAwLjY1MDYwMywgMC44MTM2MzYsIDAuOTc0NTQxIiwgXAotICAgICAgICAgICIwLjA0MTI4NywgMC4xOTk0NjMsIDAuMzI4MjM3LCAwLjQ5MDE5NSwgMC42NTEzMjksIDAuODEzNjU4LCAwLjk3NDU5OSIsIFwKLSAgICAgICAgICAiMC4wNDI1MzksIDAuMTk5NTU5LCAwLjMyODU2MiwgMC40OTAyMSwgMC42NTE5MDEsIDAuODEzNjQsIDAuOTc1Mzc2IiwgXAotICAgICAgICAgICIwLjA0Mzc5MiwgMC4xOTk3OTYsIDAuMzI4NTk3LCAwLjQ4OTgwNiwgMC42NTE4OTUsIDAuODEzNjEsIDAuOTc1MzU5IiwgXAotICAgICAgICAgICIwLjA0NTgxMiwgMC4yMDAxMSwgMC4zMjgyNzUsIDAuNDkwMjAxLCAwLjY1MTg1OSwgMC44MTM1ODQsIDAuOTc1MzExIiwgXAotICAgICAgICAgICIwLjA0Nzg4NCwgMC4yMDAzMDUsIDAuMzI4NjE2LCAwLjQ4OTk5MSwgMC42NTE4NDcsIDAuODEzMTE5LCAwLjk3NTM5NiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDQ5MjMsIDAuMTkyMzEsIDAuMjUzOTM4LCAwLjMyOTkzOSwgMC40MDU3NzIsIDAuNDgxNiwgMC41NTczODgiLCBcCi0gICAgICAgICAgIjAuMTEwMTIsIDAuMTk3NjEsIDAuMjU5MjgsIDAuMzM1Mjg0LCAwLjQxMTExOSwgMC40ODY5MTMsIDAuNTYyNzQiLCBcCi0gICAgICAgICAgIjAuMTE1NTg4LCAwLjIwMjk5NCwgMC4yNjQ2MzcsIDAuMzQwNjQ3LCAwLjQxNjQ4NCwgMC40OTIyODYsIDAuNTY4MTA0IiwgXAotICAgICAgICAgICIwLjEyMDc3MywgMC4yMDgxNjcsIDAuMjY5ODA0LCAwLjM0NTgxLCAwLjQyMTY0NiwgMC40OTc0NTYsIDAuNTczMjYyIiwgXAotICAgICAgICAgICIwLjEyNTc0OSwgMC4yMTMxOTYsIDAuMjc0ODQxLCAwLjM1MDkwMSwgMC40MjY3MTQsIDAuNTAyNTM3LCAwLjU3ODMyMyIsIFwKLSAgICAgICAgICAiMC4xMzMyMDQsIDAuMjIxMDA1LCAwLjI4MjY2NywgMC4zNTg2NywgMC40MzQ1MDMsIDAuNTEwMzEyLCAwLjU4NjA4MyIsIFwKLSAgICAgICAgICAiMC4xMzkxNjUsIDAuMjI3NDMyLCAwLjI4OTIyMywgMC4zNjUyMjYsIDAuNDQxMDMzLCAwLjUxNjg2MSwgMC41OTI2MzMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU4MTY0LCAwLjIwODI2MywgMC4zMzAxNzEsIDAuNDg0OSwgMC42NDA3OTcsIDAuNzk3NDQ2LCAwLjk1NDM2MyIsIFwKLSAgICAgICAgICAiMC4wNTgxNTgsIDAuMjA4NDM2LCAwLjMzMDE1NSwgMC40ODQ1OTksIDAuNjQwODM5LCAwLjc5NzI2NywgMC45NTQ0MjkiLCBcCi0gICAgICAgICAgIjAuMDU4MDY4LCAwLjIwODM1MywgMC4zMzAxMTYsIDAuNDg0NTg1LCAwLjY0MDgxMSwgMC43OTY0NiwgMC45NTQ0MjgiLCBcCi0gICAgICAgICAgIjAuMDU4MDAxLCAwLjIwODQxMywgMC4zMzAxNDcsIDAuNDg0NjI3LCAwLjY0MDgzLCAwLjc5NzMzNywgMC45NTQzNzIiLCBcCi0gICAgICAgICAgIjAuMDU4NTM5LCAwLjIwODYwMSwgMC4zMzAyMzMsIDAuNDg0NDI0LCAwLjY0MDE1MiwgMC43OTc0NDksIDAuOTU0MzM5IiwgXAotICAgICAgICAgICIwLjA1OTU4NywgMC4yMDkwMzIsIDAuMzMwNjE2LCAwLjQ4NTIxNywgMC42NDA5MjMsIDAuNzk3NDUsIDAuOTU0MjM5IiwgXAotICAgICAgICAgICIwLjA2MDU0NCwgMC4yMDk3OTksIDAuMzMwODY3LCAwLjQ4NDk2OCwgMC42NDEwODgsIDAuNzk3NzI3LCAwLjk1NDM2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0MzY2OSwgMC4xMjA4NDEsIDAuMTgyMjQ1LCAwLjI1ODg1NCwgMC4zMzU1MTksIDAuNDEyMTY0LCAwLjQ4ODgyOSIsIFwKLSAgICAgICAgICAiMC4wNTE5MzcsIDAuMTI5MTQ3LCAwLjE5MDUxMSwgMC4yNjcxNjcsIDAuMzQzODE3LCAwLjQyMDQ4OSwgMC40OTcxMjIiLCBcCi0gICAgICAgICAgIjAuMDYxNDA2LCAwLjEzODY0MiwgMC4xOTk5OTEsIDAuMjc2NjYsIDAuMzUzMzAyLCAwLjQyOTk2MiwgMC41MDY2IiwgXAotICAgICAgICAgICIwLjA2ODgyNCwgMC4xNDYxNDYsIDAuMjA3NDksIDAuMjg0MTM1LCAwLjM2MDc5LCAwLjQzNzQzNCwgMC41MTQwOSIsIFwKLSAgICAgICAgICAiMC4wNzQ4NTUsIDAuMTUyMzA3LCAwLjIxMzY0NSwgMC4yOTAyOCwgMC4zNjY5MjUsIDAuNDQzNjIyLCAwLjUyMDExNiIsIFwKLSAgICAgICAgICAiMC4wODI0MjMsIDAuMTU5OTU0LCAwLjIyMTQ4NSwgMC4yOTgxMjUsIDAuMzc0NzkzLCAwLjQ1MTQxMSwgMC41MjgwNzEiLCBcCi0gICAgICAgICAgIjAuMDg3Nzg3LCAwLjE2NTY4NywgMC4yMjcsIDAuMzAzNjE5LCAwLjM4MDI1OSwgMC40NTY4ODksIDAuNTMzNTc2Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0MDM1NywgMC4xOTkyNzIsIDAuMzI3OTY0LCAwLjQ5MDEzMiwgMC42NTEyNjksIDAuODEyOTAzLCAwLjk3MzgxMSIsIFwKLSAgICAgICAgICAiMC4wNDAzMjksIDAuMTk5MjgyLCAwLjMyNzg3NSwgMC40OTAxMiwgMC42NTEyOTgsIDAuODEyMzEsIDAuOTczNDY2IiwgXAotICAgICAgICAgICIwLjA0MTA5MSwgMC4xOTkzMTIsIDAuMzI4MTQ1LCAwLjQ5MDA3MywgMC42NTEyMTYsIDAuODEyOTM1LCAwLjk3NDU0IiwgXAotICAgICAgICAgICIwLjA0MjMzNSwgMC4xOTk0NjQsIDAuMzI4NDExLCAwLjQ4OTY2OSwgMC42NTE4MDIsIDAuODEzNTY2LCAwLjk3NTMwNyIsIFwKLSAgICAgICAgICAiMC4wNDM2NzgsIDAuMTk5Njc4LCAwLjMyODQ2NSwgMC40ODk3MzksIDAuNjUxMywgMC44MTM1MzMsIDAuOTc1MjY5IiwgXAotICAgICAgICAgICIwLjA0NTY3OSwgMC4xOTk5NzksIDAuMzI4NTM0LCAwLjQ4OTk5NSwgMC42NTEwODIsIDAuODEyOTc4LCAwLjk3Mzc3OCIsIFwKLSAgICAgICAgICAiMC4wNDczODUsIDAuMjAwMjYxLCAwLjMyODQ4NCwgMC40ODk4MywgMC42NTE2NDIsIDAuODEzMzcsIDAuOTc1MTY3Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5OTIwNSwgMC4xODY3MjQsIDAuMjQ4MzkxLCAwLjMyNDM5LCAwLjQwMDIyOCwgMC40NzYwNTEsIDAuNTUxODQxIiwgXAotICAgICAgICAgICIwLjEwNDc4NiwgMC4xOTIyNjcsIDAuMjUzOTAyLCAwLjMyOTkwNSwgMC40MDU3NDQsIDAuNDgxNTc0LCAwLjU1NzM2NSIsIFwKLSAgICAgICAgICAiMC4xMTE4NzMsIDAuMTk5NCwgMC4yNjEwNDQsIDAuMzM3MDU1LCAwLjQxMjg5NCwgMC40ODg2ODksIDAuNTY0NTE0IiwgXAotICAgICAgICAgICIwLjExOTI3NiwgMC4yMDY2MjEsIDAuMjY4MjUyLCAwLjM0NDI1OSwgMC40MjAwOTcsIDAuNDk1OTIzLCAwLjU3MTcxMSIsIFwKLSAgICAgICAgICAiMC4xMjY0MywgMC4yMTM4NTMsIDAuMjc1NDcyLCAwLjM1MTQ3NywgMC40MjczMTYsIDAuNTAzMTQyLCAwLjU3ODkyNyIsIFwKLSAgICAgICAgICAiMC4xMzY5NzksIDAuMjI0ODYyLCAwLjI4NjUxOSwgMC4zNjI1MTcsIDAuNDM4MzQ2LCAwLjUxNDE0LCAwLjU4OTk1MyIsIFwKLSAgICAgICAgICAiMC4xNDUyOTksIDAuMjMzNDI5LCAwLjI5NTE0MywgMC4zNzExNzcsIDAuNDQ2OTg1LCAwLjUyMjc2LCAwLjU5ODU4MSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTgyOTIsIDAuMjA4NDc5LCAwLjMzMDE4MSwgMC40ODQ5NCwgMC42NDAyMTksIDAuNzk3NDMxLCAwLjk1NDM0NyIsIFwKLSAgICAgICAgICAiMC4wNTgxMjYsIDAuMjA4NDM3LCAwLjMzMDE3NSwgMC40ODQ0NCwgMC42NDAxNTIsIDAuNzk3NDE1LCAwLjk1NDQ1MiIsIFwKLSAgICAgICAgICAiMC4wNTc5NTEsIDAuMjA4MzQ2LCAwLjMzMDExMiwgMC40ODQ1ODksIDAuNjQwODExLCAwLjc5NjQ0OCwgMC45NTQ0MjMiLCBcCi0gICAgICAgICAgIjAuMDU4MDg2LCAwLjIwODQ1NywgMC4zMzAxNjEsIDAuNDg0NjQsIDAuNjQwMTYsIDAuNzk3NDM1LCAwLjk1NDMyNiIsIFwKLSAgICAgICAgICAiMC4wNTg1MDYsIDAuMjA4NjU1LCAwLjMzMDI1NSwgMC40ODQ2NTQsIDAuNjQwMjQ0LCAwLjc5NzQ0OCwgMC45NTQxODIiLCBcCi0gICAgICAgICAgIjAuMDU5Nzk2LCAwLjIwOTIxMiwgMC4zMzA2ODksIDAuNDg1MTA5LCAwLjY0MDk1OCwgMC43OTczMTksIDAuOTU0NTAzIiwgXAotICAgICAgICAgICIwLjA2MDU3NywgMC4yMDk5NjcsIDAuMzMxMTYzLCAwLjQ4NTEwMiwgMC42NDA0MjEsIDAuNzk3NDQ4LCAwLjk1NDYxNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJEIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDE2MzEsIDAuMTE4Nzk1LCAwLjE4MDE5NCwgMC4yNTY5NDYsIDAuMzMzNDc4LCAwLjQxMDQ4NiwgMC40ODcwMTUiLCBcCi0gICAgICAgICAgIjAuMDQ5OTY1LCAwLjEyNzA4LCAwLjE4ODQ2NiwgMC4yNjUxNzEsIDAuMzQxOTY0LCAwLjQxODU2NCwgMC40OTU0MjciLCBcCi0gICAgICAgICAgIjAuMDU5MDM1LCAwLjEzNjE1OCwgMC4xOTc1NzQsIDAuMjc0MjgxLCAwLjM1MDk1OSwgMC40Mjc2MzEsIDAuNTA0NDc1IiwgXAotICAgICAgICAgICIwLjA2NTkxMiwgMC4xNDMyMDYsIDAuMjA0NTI5LCAwLjI4MTIxNywgMC4zNTc4OTksIDAuNDM0Nzg5LCAwLjUxMTI5NSIsIFwKLSAgICAgICAgICAiMC4wNzE0NTYsIDAuMTQ4OTA3LCAwLjIxMDE5NywgMC4yODcwMDMsIDAuMzYzNTc3LCAwLjQ0MDMwNSwgMC41MTcyODUiLCBcCi0gICAgICAgICAgIjAuMDc4MzgzLCAwLjE1NTY4NCwgMC4yMTcxMzcsIDAuMjkzNjkzLCAwLjM3MDI5MywgMC40NDcxMTUsIDAuNTIzOTI2IiwgXAotICAgICAgICAgICIwLjA4MzIzMywgMC4xNjEyNjksIDAuMjIyMTA2LCAwLjI5ODkyOCwgMC4zNzU2NTIsIDAuNDUyMzAyLCAwLjUyODk2MSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDAwOTMsIDAuMTk5MTYyLCAwLjMyNzczOSwgMC40ODkzOTIsIDAuNjUyMTA3LCAwLjgxMjgwOSwgMC45NzQxOTYiLCBcCi0gICAgICAgICAgIjAuMDQwMTQ4LCAwLjE5OTE1MywgMC4zMjc3NzksIDAuNDg5MTg3LCAwLjY1MTE0LCAwLjgxMjU3LCAwLjk3NDE1NyIsIFwKLSAgICAgICAgICAiMC4wNDEwNCwgMC4xOTkyNTQsIDAuMzI3OTE5LCAwLjQ4OTQ0OSwgMC42NTE0MzEsIDAuODEyNTcxLCAwLjk3NDE4NyIsIFwKLSAgICAgICAgICAiMC4wNDI0ODcsIDAuMTk5MzkzLCAwLjMyODQ3NSwgMC40ODk1ODQsIDAuNjUxODA0LCAwLjgxMjYyOSwgMC45NzM2ODgiLCBcCi0gICAgICAgICAgIjAuMDQzODc3LCAwLjE5OTY0OCwgMC4zMjg0NjQsIDAuNDg5NDk3LCAwLjY1MTI3OSwgMC44MTMwMywgMC45NzQwMDkiLCBcCi0gICAgICAgICAgIjAuMDQ1OTExLCAwLjE5OTkzMSwgMC4zMjg1MzgsIDAuNDg5MzY4LCAwLjY1MjA0MywgMC44MTM4NTMsIDAuOTc0NTY1IiwgXAotICAgICAgICAgICIwLjA0NzY0MywgMC4yMDAyNzcsIDAuMzI4NTExLCAwLjQ4OTc4OSwgMC42NTA5NTQsIDAuODEyNDY3LCAwLjk3NDAwMiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTE2ODYsIDAuMTc5MjA3LCAwLjI0MDgzOCwgMC4zMTY5MjgsIDAuMzkyNzM1LCAwLjQ2ODU2NSwgMC41NDQzNTYiLCBcCi0gICAgICAgICAgIjAuMDk4MjQ5LCAwLjE4NTc1OSwgMC4yNDc0MzksIDAuMzIzNDY1LCAwLjM5OTMwMSwgMC40NzUwOTcsIDAuNTUwOTIzIiwgXAotICAgICAgICAgICIwLjEwNzI2NiwgMC4xOTQ1OTQsIDAuMjU2MjU5LCAwLjMzMjI4NywgMC40MDgxMjksIDAuNDgzOTQxLCAwLjU1OTc3OSIsIFwKLSAgICAgICAgICAiMC4xMTY2NywgMC4yMDM5ODksIDAuMjY1NjM2LCAwLjM0MTY0NywgMC40MTc0ODgsIDAuNDkzMzAzLCAwLjU2OTExMSIsIFwKLSAgICAgICAgICAiMC4xMjU2OTgsIDAuMjEyOTk1LCAwLjI3NDYyNSwgMC4zNTA2MjksIDAuNDI2NDYxLCAwLjUwMjI2LCAwLjU3ODA3OCIsIFwKLSAgICAgICAgICAiMC4xMzg3ODYsIDAuMjI2NTI0LCAwLjI4ODE0MywgMC4zNjQxNDcsIDAuNDM5OTcyLCAwLjUxNTc3MywgMC41OTE1ODQiLCBcCi0gICAgICAgICAgIjAuMTQ4NTg0LCAwLjIzNjQ2MywgMC4yOTgxNDUsIDAuMzc0MTIxLCAwLjQ0OTk2MSwgMC41MjU3NTEsIDAuNjAxNTI5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1ODA1OCwgMC4yMDgzODIsIDAuMzMwMTYsIDAuNDg0NDYsIDAuNjQwMTI2LCAwLjc5NzQzMSwgMC45NTQzNDEiLCBcCi0gICAgICAgICAgIjAuMDU3OTUxLCAwLjIwODM2OSwgMC4zMzAxMjUsIDAuNDg0NjAzLCAwLjY0MDgzNCwgMC43OTcyNDQsIDAuOTU0Mzg2IiwgXAotICAgICAgICAgICIwLjA1OCwgMC4yMDgzMTQsIDAuMzMwMTE5LCAwLjQ4NDM4LCAwLjY0MDc3OCwgMC43OTc0MDgsIDAuOTU0NTMiLCBcCi0gICAgICAgICAgIjAuMDU3OTE5LCAwLjIwODM4OSwgMC4zMzAxMDcsIDAuNDg0NTksIDAuNjQwNzg1LCAwLjc5NzQwOCwgMC45NTQ0MDQiLCBcCi0gICAgICAgICAgIjAuMDU4Mjc3LCAwLjIwODYwOCwgMC4zMzAyNDMsIDAuNDg0NjYxLCAwLjY0MDg1NSwgMC43OTY0MTQsIDAuOTU0MjE0IiwgXAotICAgICAgICAgICIwLjA1OTU2OCwgMC4yMDkxNjgsIDAuMzMwNjA5LCAwLjQ4NDg2OCwgMC42NDA5MTUsIDAuNzk3MzQxLCAwLjk1NDUxOSIsIFwKLSAgICAgICAgICAiMC4wNjA3NTUsIDAuMjEwMDE3LCAwLjMzMTE4LCAwLjQ4NTIyNSwgMC42NDEyNzgsIDAuNzk3NjA3LCAwLjk1MzQ4NCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzQ3MSwgMC4wMDM0OTgsIDAuMDAzNTAxLCAwLjAwMzUwMywgMC4wMDM1MDUsIDAuMDAzNTA1LCAwLjAwMzUwNiIsIFwKLSAgICAgICAgICAiMC4wMDM0NDQsIDAuMDAzNDc2LCAwLjAwMzQ4MiwgMC4wMDM0ODcsIDAuMDAzNDgyLCAwLjAwMzQ4NywgMC4wMDM0ODUiLCBcCi0gICAgICAgICAgIjAuMDAzNDc4LCAwLjAwMzQ5MywgMC4wMDM0OTcsIDAuMDAzNTAxLCAwLjAwMzUwMywgMC4wMDM1MDQsIDAuMDAzNTA0IiwgXAotICAgICAgICAgICIwLjAwMzU0NCwgMC4wMDM1NDEsIDAuMDAzNTQyLCAwLjAwMzU0NiwgMC4wMDM1NDYsIDAuMDAzNTQ3LCAwLjAwMzU0NyIsIFwKLSAgICAgICAgICAiMC4wMDM2NDcsIDAuMDAzNjA3LCAwLjAwMzYwNCwgMC4wMDM2MDYsIDAuMDAzNjA3LCAwLjAwMzYwOCwgMC4wMDM2MDgiLCBcCi0gICAgICAgICAgIjAuMDAzODQ0LCAwLjAwMzc0NSwgMC4wMDM3MzcsIDAuMDAzNzMyLCAwLjAwMzczMSwgMC4wMDM3MywgMC4wMDM3MyIsIFwKLSAgICAgICAgICAiMC4wMDM5OTgsIDAuMDAzODc4LCAwLjAwMzg2NSwgMC4wMDM4NTksIDAuMDAzODU1LCAwLjAwMzg1NSwgMC4wMDM4NTMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDU5MywgMC4wMDU4NTEsIDAuMDA1ODQ1LCAwLjAwNTg0MywgMC4wMDU4NDEsIDAuMDA1ODQsIDAuMDA1ODQiLCBcCi0gICAgICAgICAgIjAuMDA1OTAxLCAwLjAwNTgyNSwgMC4wMDU4MiwgMC4wMDU4MTgsIDAuMDA1ODE2LCAwLjAwNTgxNiwgMC4wMDU4MTUiLCBcCi0gICAgICAgICAgIjAuMDA1ODY0LCAwLjAwNTgwNCwgMC4wMDU4MDMsIDAuMDA1ODAzLCAwLjAwNTgwMywgMC4wMDU4MDMsIDAuMDA1ODAzIiwgXAotICAgICAgICAgICIwLjAwNTg2MiwgMC4wMDU4MDQsIDAuMDA1ODAzLCAwLjAwNTgwMywgMC4wMDU4MDMsIDAuMDA1ODAzLCAwLjAwNTgwMyIsIFwKLSAgICAgICAgICAiMC4wMDU5MTMsIDAuMDA1ODIyLCAwLjAwNTgxOSwgMC4wMDU4MTcsIDAuMDA1ODE2LCAwLjAwNTgxNiwgMC4wMDU4MTUiLCBcCi0gICAgICAgICAgIjAuMDA1OTY0LCAwLjAwNTg2LCAwLjAwNTg1NiwgMC4wMDU4NTMsIDAuMDA1ODUyLCAwLjAwNTg1MiwgMC4wMDU4NTEiLCBcCi0gICAgICAgICAgIjAuMDA2MDI5LCAwLjAwNTkyLCAwLjAwNTkxMiwgMC4wMDU5MDcsIDAuMDA1OTA1LCAwLjAwNTkwNCwgMC4wMDU5MDMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDMyMDUsIDAuMDAzMjcsIDAuMDAzMjc3LCAwLjAwMzI4MywgMC4wMDMyODMsIDAuMDAzMjg1LCAwLjAwMzI4OSIsIFwKLSAgICAgICAgICAiMC4wMDMxNzQsIDAuMDAzMjQ4LCAwLjAwMzI1OSwgMC4wMDMyNjUsIDAuMDAzMjY5LCAwLjAwMzI3LCAwLjAwMzI3NCIsIFwKLSAgICAgICAgICAiMC4wMDMyMDQsIDAuMDAzMjY2LCAwLjAwMzI3OSwgMC4wMDMyODYsIDAuMDAzMjksIDAuMDAzMjk0LCAwLjAwMzI5NCIsIFwKLSAgICAgICAgICAiMC4wMDMyNiwgMC4wMDMzMDUsIDAuMDAzMzE4LCAwLjAwMzMyNSwgMC4wMDMzMzEsIDAuMDAzMzMzLCAwLjAwMzMzNCIsIFwKLSAgICAgICAgICAiMC4wMDMzNDEsIDAuMDAzMzYyLCAwLjAwMzM3MiwgMC4wMDMzODEsIDAuMDAzMzg1LCAwLjAwMzM4OCwgMC4wMDMzODkiLCBcCi0gICAgICAgICAgIjAuMDAzNTM1LCAwLjAwMzQ5LCAwLjAwMzQ5NiwgMC4wMDM1LCAwLjAwMzUwMywgMC4wMDM1MDQsIDAuMDAzNTA0IiwgXAotICAgICAgICAgICIwLjAwMzY4NCwgMC4wMDM2MjQsIDAuMDAzNjE1LCAwLjAwMzYzMSwgMC4wMDM2MzUsIDAuMDAzNjM3LCAwLjAwMzYzOCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNTY0LCAwLjAwNTU4OCwgMC4wMDU1ODQsIDAuMDA1NTgzLCAwLjAwNTU4MiwgMC4wMDU1ODIsIDAuMDA1NTgxIiwgXAotICAgICAgICAgICIwLjAwNTYyNCwgMC4wMDU1NTYsIDAuMDA1NTU1LCAwLjAwNTU1NSwgMC4wMDU1NTUsIDAuMDA1NTU1LCAwLjAwNTU1NSIsIFwKLSAgICAgICAgICAiMC4wMDU1OTQsIDAuMDA1NTQyLCAwLjAwNTU0MywgMC4wMDU1NDQsIDAuMDA1NTQ0LCAwLjAwNTU0NSwgMC4wMDU1NDUiLCBcCi0gICAgICAgICAgIjAuMDA1NjM3LCAwLjAwNTU1NSwgMC4wMDU1NTMsIDAuMDA1NTUyLCAwLjAwNTU1MiwgMC4wMDU1NTIsIDAuMDA1NTUyIiwgXAotICAgICAgICAgICIwLjAwNTY2LCAwLjAwNTU3MSwgMC4wMDU1NjksIDAuMDA1NTY4LCAwLjAwNTU2OCwgMC4wMDU1NjgsIDAuMDA1NTY4IiwgXAotICAgICAgICAgICIwLjAwNTc3MiwgMC4wMDU2MywgMC4wMDU2MjMsIDAuMDA1NjIxLCAwLjAwNTYyLCAwLjAwNTYxOSwgMC4wMDU2MTkiLCBcCi0gICAgICAgICAgIjAuMDA1ODk3LCAwLjAwNTcwOSwgMC4wMDU2OTYsIDAuMDA1NjksIDAuMDA1Njg3LCAwLjAwNTY4NiwgMC4wMDU2ODQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI5MjEsIDAuMDAyOTgzLCAwLjAwMjk5MSwgMC4wMDI5OTMsIDAuMDAyOTk5LCAwLjAwMjk5OCwgMC4wMDI5OTkiLCBcCi0gICAgICAgICAgIjAuMDAyOTA2LCAwLjAwMjk4LCAwLjAwMjk5MSwgMC4wMDI5OTYsIDAuMDAyOTk5LCAwLjAwMywgMC4wMDMwMDMiLCBcCi0gICAgICAgICAgIjAuMDAyOTMyLCAwLjAwMjk5OCwgMC4wMDMwMTEsIDAuMDAzMDE3LCAwLjAwMzAyLCAwLjAwMzAyMiwgMC4wMDMwMjUiLCBcCi0gICAgICAgICAgIjAuMDAzMDEsIDAuMDAzMDQ2LCAwLjAwMzA1NSwgMC4wMDMwNjQsIDAuMDAzMDY2LCAwLjAwMzA3LCAwLjAwMzA3MSIsIFwKLSAgICAgICAgICAiMC4wMDMwODYsIDAuMDAzMDk4LCAwLjAwMzEwOCwgMC4wMDMxMTMsIDAuMDAzMTE3LCAwLjAwMzExOSwgMC4wMDMxMjciLCBcCi0gICAgICAgICAgIjAuMDAzMjE0LCAwLjAwMzIxOSwgMC4wMDMyMjIsIDAuMDAzMjI5LCAwLjAwMzIzNCwgMC4wMDMyMzYsIDAuMDAzMjM4IiwgXAotICAgICAgICAgICIwLjAwMzM0OSwgMC4wMDMzMTksIDAuMDAzMzI3LCAwLjAwMzM0MywgMC4wMDMzMzksIDAuMDAzMzUxLCAwLjAwMzM1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1Mzk5LCAwLjAwNTMyMiwgMC4wMDUzMTksIDAuMDA1MzE5LCAwLjAwNTMxOCwgMC4wMDUzMTgsIDAuMDA1MzE4IiwgXAotICAgICAgICAgICIwLjAwNTM1MSwgMC4wMDUyOTEsIDAuMDA1MjkxLCAwLjAwNTI5MiwgMC4wMDUyOTIsIDAuMDA1MjkyLCAwLjAwNTI5MyIsIFwKLSAgICAgICAgICAiMC4wMDUzMjYsIDAuMDA1MjgsIDAuMDA1MjgzLCAwLjAwNTI4NiwgMC4wMDUyODcsIDAuMDA1Mjg4LCAwLjAwNTI4OSIsIFwKLSAgICAgICAgICAiMC4wMDU0MSwgMC4wMDUzMTIsIDAuMDA1MzA5LCAwLjAwNTMwOSwgMC4wMDUzMDksIDAuMDA1MzA5LCAwLjAwNTMxIiwgXAotICAgICAgICAgICIwLjAwNTQ4NywgMC4wMDUzNTQsIDAuMDA1MzQ4LCAwLjAwNTM0NiwgMC4wMDUzNDYsIDAuMDA1MzQ1LCAwLjAwNTM0NSIsIFwKLSAgICAgICAgICAiMC4wMDU2MjYsIDAuMDA1NDQzLCAwLjAwNTQzMSwgMC4wMDU0MjYsIDAuMDA1NDI0LCAwLjAwNTQyMywgMC4wMDU0MjMiLCBcCi0gICAgICAgICAgIjAuMDA1Njk0LCAwLjAwNTU0MiwgMC4wMDU1MjMsIDAuMDA1NTEzLCAwLjAwNTUxLCAwLjAwNTUwOCwgMC4wMDU1MDciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJEIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI2ODksIDAuMDAyNzQxLCAwLjAwMjc1NSwgMC4wMDI3NTgsIDAuMDAyNzY4LCAwLjAwMjc2MSwgMC4wMDI3NjIiLCBcCi0gICAgICAgICAgIjAuMDAyNjc4LCAwLjAwMjc0OCwgMC4wMDI3NTcsIDAuMDAyNzYyLCAwLjAwMjc2NCwgMC4wMDI3NjYsIDAuMDAyNzY3IiwgXAotICAgICAgICAgICIwLjAwMjcwNSwgMC4wMDI3NzEsIDAuMDAyNzgsIDAuMDAyNzg3LCAwLjAwMjc5LCAwLjAwMjc5MiwgMC4wMDI3OTMiLCBcCi0gICAgICAgICAgIjAuMDAyNzg1LCAwLjAwMjgxNCwgMC4wMDI4MjMsIDAuMDAyODMsIDAuMDAyODMyLCAwLjAwMjgzNiwgMC4wMDI4MzciLCBcCi0gICAgICAgICAgIjAuMDAyODY1LCAwLjAwMjg3MiwgMC4wMDI4ODIsIDAuMDAyODksIDAuMDAyODk3LCAwLjAwMjg5OCwgMC4wMDI5IiwgXAotICAgICAgICAgICIwLjAwMjk3NSwgMC4wMDMwMDMsIDAuMDAzLCAwLjAwMzAxMSwgMC4wMDMwMTMsIDAuMDAzMDA4LCAwLjAwMzAwOCIsIFwKLSAgICAgICAgICAiMC4wMDMxMTIsIDAuMDAzMTAxLCAwLjAwMzEwNiwgMC4wMDMxMTUsIDAuMDAzMTE4LCAwLjAwMzEyMSwgMC4wMDMxMjIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDUwOTgsIDAuMDA1MDUxLCAwLjAwNTA1MiwgMC4wMDUwNTUsIDAuMDA1MDU2LCAwLjAwNTA1NiwgMC4wMDUwNTciLCBcCi0gICAgICAgICAgIjAuMDA1MDcyLCAwLjAwNTAyNywgMC4wMDUwMywgMC4wMDUwMzMsIDAuMDA1MDM2LCAwLjAwNTAzNywgMC4wMDUwMzgiLCBcCi0gICAgICAgICAgIjAuMDA1MTA1LCAwLjAwNTA1NywgMC4wMDUwNjIsIDAuMDA1MDY3LCAwLjAwNTA2OSwgMC4wMDUwNzEsIDAuMDA1MDcyIiwgXAotICAgICAgICAgICIwLjAwNTE5OSwgMC4wMDUxMjEsIDAuMDA1MTI0LCAwLjAwNTEyNywgMC4wMDUxMjksIDAuMDA1MTMxLCAwLjAwNTEzMiIsIFwKLSAgICAgICAgICAiMC4wMDUzNTgsIDAuMDA1MjExLCAwLjAwNTIwNCwgMC4wMDUyMDIsIDAuMDA1MjAyLCAwLjAwNTIwMiwgMC4wMDUyMDIiLCBcCi0gICAgICAgICAgIjAuMDA1NTQ5LCAwLjAwNTMzOCwgMC4wMDUzMjcsIDAuMDA1MzI0LCAwLjAwNTMyMiwgMC4wMDUzMjIsIDAuMDA1MzIxIiwgXAotICAgICAgICAgICIwLjAwNTY0NiwgMC4wMDU0NzYsIDAuMDA1NDQ5LCAwLjAwNTQzOCwgMC4wMDU0MzIsIDAuMDA1NDMsIDAuMDA1NDI4Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IFNERkZTUlhMICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChTREZGU1JYTCkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAxLjI0MTM0OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIGZmIChOMzUsUUJJTlQpIHsKLSAgICBuZXh0X3N0YXRlIDogIigoU0UgU0kpICsgKCFTRSBEKSkiOwotICAgIGNsb2NrZWRfb24gOiAiQ0siOwotICAgIGNsZWFyIDogIighUk4pIjsKLSAgICBwcmVzZXQgOiAiKCFTTikiOwotICAgIGNsZWFyX3ByZXNldF92YXIxIDogSDsKLSAgICBjbGVhcl9wcmVzZXRfdmFyMiA6IEw7Ci0gIH0KLSAgcGluKENLKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2NTY0NzY7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjU2NDY1OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDY1NjQ3NjsKLSAgICBjbG9jayA6IHRydWU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzMDcyLCAwLjAwMzA2MiwgMC4wMDMxNDcsIDAuMDAzMjQsIDAuMDAzMzcxLCAwLjAwMzYxOSwgMC4wMDM3ODUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDg5MjcsIDAuMDA4OTIsIDAuMDA5MDA4LCAwLjAwOTEzMiwgMC4wMDkyNjcsIDAuMDA5NTU3LCAwLjAwOTY2MyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQmUk4mIVNFJiFTSSZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fUk5fRVFfMV9BTl9TRV9FUV8wX0FOX1NJX0VRXzBfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjE0MTIyOSwgMC4xNDk0NzEsIDAuMTU4Njk4LCAwLjE2NjE2NiwgMC4xNzIwNjgsIDAuMTc5ODc0LCAwLjE4NTY4NCIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDc0NiwgMC4wODI3MzcsIDAuMDkxOTk1LCAwLjA5OTE1LCAwLjEwNDg1NiwgMC4xMTIzMjEsIDAuMTE3ODIzIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihEKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2Mzc0NTk7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjM2NTA2OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDYzNzQ1OTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDM5ODYsIDAuMDAzOTYyLCAwLjAwMzk3NiwgMC4wMDQwMTcsIDAuMDA0MDY4LCAwLjAwNDE3NiwgMC4wMDQyODgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDU3MzgsIDAuMDA1NzIxLCAwLjAwNTczNCwgMC4wMDU3NzMsIDAuMDA1ODI2LCAwLjAwNTkzLCAwLjAwNjAzOCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJSTiYhU0UmU04iOwotICAgICAgc2RmX2NvbmQgOiAiUk5fRVFfMV9BTl9TRV9FUV8wX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDMxMjUsIC0wLjAyNjI1LCAtMC4wMjYyNSwgLTAuMDIsIC0wLjAyLCAtMC4wMTYyNSwgLTAuMDA3NSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDI1LCAtMC4wMjEyNSwgLTAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAzMTI1LCAtMC4wMjc1LCAtMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjA1NSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDMzNzUsIC0wLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wNjEyNSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjA0LCAtMC4wMzc1IiwgXAotICAgICAgICAgICItMC4wNzEyNSwgLTAuMDY2MjUsIC0wLjA2LCAtMC4wNTM3NSwgLTAuMDUzNzUsIC0wLjA1LCAtMC4wNDc1IiwgXAotICAgICAgICAgICItMC4wNzM3NSwgLTAuMDY4NzUsIC0wLjA2MjUsIC0wLjA2MjUsIC0wLjA2MjUsIC0wLjA1ODc1LCAtMC4wNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAxODc1LCAtMC4wMDc1LCAtMC4wMDEyNSwgMC4wMDUsIDAuMDExMjUsIDAuMDE1LCAwLjAyMzc1IiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAsIDAuMDA2MjUsIDAuMDEsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMCwgMC4wMDM3NSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAtMC4wMDI1LCAwIiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwODc1LCAwIiwgXAotICAgICAgICAgICItMC4wNDYyNSwgLTAuMDM1LCAtMC4wMjg3NSwgLTAuMDIyNSwgLTAuMDIyNSwgLTAuMDEyNSwgLTAuMDEiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDIxMjUsIC0wLjAxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlJOJiFTRSZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJSTl9FUV8xX0FOX1NFX0VRXzBfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzUsIDAuMDYzNzUsIDAuMDU3NSwgMC4wNTEyNSwgMC4wNDUsIDAuMDQxMjUsIDAuMDMyNSIsIFwKLSAgICAgICAgICAiMC4wOCwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1LCAwLjA0NjI1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjA4NjI1LCAwLjA4MTI1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDUyNSwgMC4wNSIsIFwKLSAgICAgICAgICAiMC4wOTg3NSwgMC4wODc1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjg3NSwgMC4wNTg3NSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiMC4xMDUsIDAuMDkzNzUsIDAuMDgxMjUsIDAuMDc1LCAwLjA3NSwgMC4wNjUsIDAuMDYyNSIsIFwKLSAgICAgICAgICAiMC4xMDg3NSwgMC4xMDM3NSwgMC4wOTEyNSwgMC4wODUsIDAuMDc4NzUsIDAuMDc1LCAwLjA3MjUiLCBcCi0gICAgICAgICAgIjAuMTE3NSwgMC4xMDYyNSwgMC4xLCAwLjA5Mzc1LCAwLjA4NzUsIDAuMDgzNzUsIDAuMDgxMjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTYyNSwgMC4wNTEyNSwgMC4wMzg3NSwgMC4wMzI1LCAwLjAyNjI1LCAwLjAyMjUsIDAuMDEzNzUiLCBcCi0gICAgICAgICAgIjAuMDYxMjUsIDAuMDU2MjUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMjc1LCAwLjAxODc1IiwgXAotICAgICAgICAgICIwLjA3Mzc1LCAwLjA2MjUsIDAuMDUsIDAuMDQzNzUsIDAuMDQzNzUsIDAuMDMzNzUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMDgsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNSwgMC4wNSwgMC4wNCwgMC4wMzc1IiwgXAotICAgICAgICAgICIwLjA4LCAwLjA3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1LCAwLjA0NjI1LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIjAuMDksIDAuMDc4NzUsIDAuMDcyNSwgMC4wNjYyNSwgMC4wNiwgMC4wNSwgMC4wNDc1IiwgXAotICAgICAgICAgICIwLjA5ODc1LCAwLjA4NzUsIDAuMDgxMjUsIDAuMDY4NzUsIDAuMDY4NzUsIDAuMDU4NzUsIDAuMDU2MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFEpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4xOTc2ODsKLSAgICBmdW5jdGlvbiA6ICJOMzUiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5vbl91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcmlzaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEyNzc3MSwgMC4xMzgyOTEsIDAuMjMzMzE2LCAwLjM5MTg4NiwgMC41NTA1ODksIDAuOTE3ODI2LCAxLjEyNzQzIiwgXAotICAgICAgICAgICIwLjEzNTkyOSwgMC4xNDY0MTYsIDAuMjQxNDM5LCAwLjQwMDE4NiwgMC41NTcyMzYsIDAuOTI3MzUsIDEuMTM2ODUiLCBcCi0gICAgICAgICAgIjAuMTQ1MTI0LCAwLjE1NTY0NywgMC4yNTA2NzMsIDAuNDA5NDIzLCAwLjU2NzkwMSwgMC45MzU3MjgsIDEuMTQ1NTgiLCBcCi0gICAgICAgICAgIjAuMTUyNTg5LCAwLjE2MzExOCwgMC4yNTgxMzksIDAuNDE2ODUzLCAwLjU3NTM3OSwgMC45NDIzNTMsIDEuMTU2NTMiLCBcCi0gICAgICAgICAgIjAuMTU4NDc4LCAwLjE2ODk5NiwgMC4yNjQwMiwgMC40MjI3MjEsIDAuNTgxMjQ2LCAwLjk0ODI4MiwgMS4xNjEyOSIsIFwKLSAgICAgICAgICAiMC4xNjY1NywgMC4xNzcxMjIsIDAuMjcyMTExLCAwLjQzMDgxMywgMC41ODc0ODYsIDAuOTU5MTcsIDEuMTcwNTciLCBcCi0gICAgICAgICAgIjAuMTcyMzMzLCAwLjE4MjgzMSwgMC4yNzc4NzQsIDAuNDM2NTQ2LCAwLjU5NDk2NSwgMC45NjQ3NjksIDEuMTczNSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTgyNjYsIDAuMTM5OTI4LCAwLjMzOTI4NiwgMC42NzI0MjgsIDEuMDA1MjgsIDEuNzc5NjQsIDIuMjIyMDkiLCBcCi0gICAgICAgICAgIjAuMTE4MDgyLCAwLjEzOTk0MSwgMC4zMzg4NTgsIDAuNjcyMzcsIDEuMDAyNDYsIDEuNzgwNywgMi4yMjQ4NCIsIFwKLSAgICAgICAgICAiMC4xMTgxMywgMC4xMzk4NDQsIDAuMzM4ODYyLCAwLjY3MjIzOSwgMS4wMDU0NiwgMS43NzkxOCwgMi4yMTk1NiIsIFwKLSAgICAgICAgICAiMC4xMTgxNTEsIDAuMTQwMDE2LCAwLjMzODc2MiwgMC42NzIxMzksIDEuMDA1MjUsIDEuNzgwNDksIDIuMjI2ODEiLCBcCi0gICAgICAgICAgIjAuMTE4MDYyLCAwLjE0MDA4OSwgMC4zMzg4MTMsIDAuNjcyNDAxLCAxLjAwNTY1LCAxLjc3NzYxLCAyLjIyNDQ5IiwgXAotICAgICAgICAgICIwLjExODEzOSwgMC4xNDAyMjgsIDAuMzM5MDQ1LCAwLjY3MzA1MSwgMS4wMDUwOSwgMS43ODUxNCwgMi4yMjk3NCIsIFwKLSAgICAgICAgICAiMC4xMTgwNDQsIDAuMTQwMDMyLCAwLjMzODY2OSwgMC42NzMxNjMsIDEuMDA2OTMsIDEuNzg1MzYsIDIuMjI3MDciKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTMxNDIsIDAuMTQxMTQ3LCAwLjIyODM2NCwgMC4zNzMzMzgsIDAuNTE3NDk1LCAwLjg1NjM4LCAxLjA0OTEiLCBcCi0gICAgICAgICAgIjAuMTM5Njg3LCAwLjE0OTQxMSwgMC4yMzYzODIsIDAuMzgxMTA1LCAwLjUyNTksIDAuODY0Njg0LCAxLjA1NzU2IiwgXAotICAgICAgICAgICIwLjE0ODg0NiwgMC4xNTg1NjIsIDAuMjQ1NzksIDAuMzkwMjYyLCAwLjUzNDk4NiwgMC44NzM4MTEsIDEuMDY2NTkiLCBcCi0gICAgICAgICAgIjAuMTU2Mzg0LCAwLjE2NjAxMSwgMC4yNTMyMzIsIDAuMzk4MjY5LCAwLjU0MjU0LCAwLjg4MTM3LCAxLjA3MzkiLCBcCi0gICAgICAgICAgIjAuMTYyMjc2LCAwLjE3MTkzMiwgMC4yNTkxNDYsIDAuNDA0MDY1LCAwLjU0ODY2NiwgMC44ODY4OCwgMS4wNzk0NyIsIFwKLSAgICAgICAgICAiMC4xNzAwMjgsIDAuMTc5ODAyLCAwLjI2NjcyMSwgMC40MTE0MywgMC41NTY3NDYsIDAuODk1NTA1LCAxLjA4ODI0IiwgXAotICAgICAgICAgICIwLjE3NTgxMSwgMC4xODU0ODksIDAuMjcyNDY4LCAwLjQxNzc1MiwgMC41NjIwMTUsIDAuOTAwODkxLCAxLjA5MzkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTA2OTgxLCAwLjEyNjE5NSwgMC4zMDI3NTIsIDAuNjAzOTU2LCAwLjkwMDQ1MSwgMS41OTk1MSwgMS45ODY1NSIsIFwKLSAgICAgICAgICAiMC4xMDYyODQsIDAuMTI1NTc4LCAwLjMwNDk3MiwgMC42MDAzMzMsIDAuOTAyMzE4LCAxLjYwMDY4LCAxLjk5MzE1IiwgXAotICAgICAgICAgICIwLjEwNjQ5OCwgMC4xMjYyMjMsIDAuMzAyMzEzLCAwLjYwMDg3LCAwLjkwMjQ5LCAxLjU5NjkyLCAxLjk4ODI4IiwgXAotICAgICAgICAgICIwLjEwNjcyMywgMC4xMjYyODEsIDAuMzA0OTE0LCAwLjYwMzk0NSwgMC45MDIzODgsIDEuNTkxNzMsIDEuOTg0OCIsIFwKLSAgICAgICAgICAiMC4xMDYzMywgMC4xMjUyNzksIDAuMzA0OTI0LCAwLjYwMzk0NSwgMC44OTY3OTcsIDEuNTkzMjUsIDEuOTkxMTQiLCBcCi0gICAgICAgICAgIjAuMTA2NTM2LCAwLjEyNjU3NiwgMC4zMDQ3NjUsIDAuNjAxMDUzLCAwLjkwMjc2MiwgMS42MDAyOSwgMS45OTczNyIsIFwKLSAgICAgICAgICAiMC4xMDcxMTEsIDAuMTI1OTY4LCAwLjMwMjQwNSwgMC42MDM5NDYsIDAuOTAyNDI4LCAxLjYwMDUyLCAxLjk5NDEyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiBjbGVhcjsKLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTUxMzQ1LCAwLjE2MTAzMiwgMC4yNDgwOTUsIDAuMzkyNTIzLCAwLjUzNzI1OCwgMC44NzYxMzcsIDEuMDY4OTMiLCBcCi0gICAgICAgICAgIjAuMTU5MjA3LCAwLjE2ODg5NCwgMC4yNTU5NTUsIDAuNDAwMzksIDAuNTQ1MDI5LCAwLjg4MzYxMiwgMS4wNzY3OSIsIFwKLSAgICAgICAgICAiMC4xNjcyMTYsIDAuMTc2ODU2LCAwLjI2MzgzMywgMC40MDgzODIsIDAuNTUzNjcyLCAwLjg5MjE4LCAxLjA4NDgyIiwgXAotICAgICAgICAgICIwLjE3MzE2LCAwLjE4MjgwNSwgMC4yNjk4NzIsIDAuNDE0NzcsIDAuNTU5NTU2LCAwLjg5NzQwMywgMS4wODk0NiIsIFwKLSAgICAgICAgICAiMC4xNzc3OTMsIDAuMTg3NDQ4LCAwLjI3NDM4NywgMC40MTg4NzksIDAuNTY0MTU3LCAwLjkwMjUxOCwgMS4wOTU3NyIsIFwKLSAgICAgICAgICAiMC4xODQxNDUsIDAuMTkzODI3LCAwLjI4MDksIDAuNDI1MTksIDAuNTcwNTE3LCAwLjkwOTAzMiwgMS4xMDIxNiIsIFwKLSAgICAgICAgICAiMC4xODg4NTksIDAuMTk4NTExLCAwLjI4NTM4NiwgMC40Mjk5MTUsIDAuNTc0ODQ4LCAwLjkxNDQ1OSwgMS4xMDY0MiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDY5OTIsIDAuMTI2NjIzLCAwLjMwNTE4MywgMC42MDQxMTIsIDAuOTAxMTIzLCAxLjYwMTU5LCAxLjk5OTg3IiwgXAotICAgICAgICAgICIwLjEwNjczMywgMC4xMjY2MjIsIDAuMzA1MTE5LCAwLjYwNDIzMSwgMC45MDI4NDYsIDEuNjAwNzQsIDEuOTk1OTUiLCBcCi0gICAgICAgICAgIjAuMTA2NTA0LCAwLjEyNjMwMSwgMC4zMDUxMzksIDAuNjA0MDM4LCAwLjkwMzExNiwgMS42MDEsIDEuOTk5NjYiLCBcCi0gICAgICAgICAgIjAuMTA2OTQsIDAuMTI2NjE5LCAwLjMwNTE0NiwgMC42MDM5NTEsIDAuOTAyMzM2LCAxLjU5OTI0LCAxLjk5Njk4IiwgXAotICAgICAgICAgICIwLjEwNjc4LCAwLjEyNjYyMiwgMC4zMDUxMzksIDAuNjAzMTI1LCAwLjkwMTEyMywgMS42MDExNiwgMS45OTk1MyIsIFwKLSAgICAgICAgICAiMC4xMDcwMTcsIDAuMTI2NjE0LCAwLjMwNTA0OSwgMC42MDM1NiwgMC45MDI5NCwgMS42MDA1OSwgMS45OTc3OCIsIFwKLSAgICAgICAgICAiMC4xMDcwNzYsIDAuMTI2NjMzLCAwLjMwNTExMiwgMC42MDM1NjMsIDAuOTAyMTEzLCAxLjU5OTA2LCAxLjk5NTYzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiBwcmVzZXQ7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEyMzI0OCwgMC4xMzM3NjUsIDAuMjI4ODk2LCAwLjM4Njc0LCAwLjU0NTQ2NywgMC45MTQ0NTYsIDEuMTIzNjgiLCBcCi0gICAgICAgICAgIjAuMTI5OTA5LCAwLjE0MDQwOSwgMC4yMzU1NDEsIDAuMzkzMzgsIDAuNTUxMjE3LCAwLjkyMjE1LCAxLjEzMDIyIiwgXAotICAgICAgICAgICIwLjEzNzcyOSwgMC4xNDgyNDIsIDAuMjQzMzc1LCAwLjQwMTQ2NCwgMC41NTg5LCAwLjkyNjc1NCwgMS4xNDAwMSIsIFwKLSAgICAgICAgICAiMC4xNDY0MTQsIDAuMTU2OTI5LCAwLjI1MjA2OCwgMC40MDk5MjEsIDAuNTY4MDUyLCAwLjkzODg3MywgMS4xNDYxIiwgXAotICAgICAgICAgICIwLjE1MzY1OSwgMC4xNjQxNzMsIDAuMjU4OTI2LCAwLjQxNzIzNSwgMC41NzYyNjgsIDAuOTQ1OTE2LCAxLjE1MzMyIiwgXAotICAgICAgICAgICIwLjE2MzE3OSwgMC4xNzM2OTEsIDAuMjY4ODA4LCAwLjQyNzMxMiwgMC41ODQ1NTIsIDAuOTUyNTgzLCAxLjE2NjczIiwgXAotICAgICAgICAgICIwLjE2OTkzMywgMC4xODA0MDgsIDAuMjc1MTM0LCAwLjQzMzU0NCwgMC41OTI1NjIsIDAuOTYwMDU1LCAxLjE2OTY3Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExNzk4NSwgMC4xMzk5NywgMC4zMzkzNDUsIDAuNjcyODA3LCAxLjAwNjI4LCAxLjc4MzYyLCAyLjIyNTg0IiwgXAotICAgICAgICAgICIwLjExODA2NiwgMC4xMzk5NjYsIDAuMzM5MzQyLCAwLjY3MjkwOCwgMS4wMDYxMiwgMS43ODQzOCwgMi4yMjUzOCIsIFwKLSAgICAgICAgICAiMC4xMTgwNjMsIDAuMTM5OTY1LCAwLjMzOTI5NSwgMC42NzMwMjEsIDEuMDA2MTcsIDEuNzgyNjMsIDIuMjMwMzUiLCBcCi0gICAgICAgICAgIjAuMTE4MDY2LCAwLjEzOTk3MiwgMC4zMzkyNjgsIDAuNjcyOTczLCAxLjAwNjMxLCAxLjc4NDMyLCAyLjIyOTMzIiwgXAotICAgICAgICAgICIwLjExODA5NSwgMC4xNDAwMjMsIDAuMzM5NDUsIDAuNjczMTcyLCAxLjAwNjksIDEuNzg0NzgsIDIuMjI5ODYiLCBcCi0gICAgICAgICAgIjAuMTE4MDg3LCAwLjE0MDA3NCwgMC4zMzk1NDcsIDAuNjczMzMxLCAxLjAwNzE2LCAxLjc4NTQ2LCAyLjIzMDYzIiwgXAotICAgICAgICAgICIwLjExODAyLCAwLjEzOTgwOSwgMC4zMzk1NjgsIDAuNjczMTY3LCAxLjAwNzE4LCAxLjc4NTcxLCAyLjIzMDU5Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEzODg5MiwgMC4xNDg1NTgsIDAuMjM1NzUxLCAwLjM4MDE3NywgMC41MjUxMDUsIDAuODY0MzIyLCAxLjA1NzMxIiwgXAotICAgICAgICAgICIwLjE0NTQ0NCwgMC4xNTUxNDksIDAuMjQyMzIsIDAuMzg2ODQsIDAuNTMyMDI5LCAwLjg3MDg1NywgMS4wNjMyOSIsIFwKLSAgICAgICAgICAiMC4xNTI5NjgsIDAuMTYyNjM2LCAwLjI0OTc2OSwgMC4zOTQzMTQsIDAuNTM5NzA4LCAwLjg3ODMxNywgMS4wNzA4MSIsIFwKLSAgICAgICAgICAiMC4xNjAyOTMsIDAuMTY5ODkzLCAwLjI1NzA4MSwgMC40MDIwMTMsIDAuNTQ2ODUyLCAwLjg4NTA1NSwgMS4wNzg3NSIsIFwKLSAgICAgICAgICAiMC4xNjY5MTQsIDAuMTc2NjMxLCAwLjI2MzgxNywgMC40MDgyMjEsIDAuNTUzMDkyLCAwLjg5MjMxNywgMS4wODUyMiIsIFwKLSAgICAgICAgICAiMC4xNzY1MjcsIDAuMTg2MTE0LCAwLjI3MzExOCwgMC40MTgxNzYsIDAuNTYzMTg5LCAwLjkwMTQ1MSwgMS4wOTQxOSIsIFwKLSAgICAgICAgICAiMC4xODM3MjUsIDAuMTkzMzg5LCAwLjI4MDQ1MywgMC40MjUxOTksIDAuNTY5NzU5LCAwLjkwODAwMSwgMS4xMDI1MiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDY4MTksIDAuMTI2NjAyLCAwLjMwNTA5OCwgMC42MDI3ODEsIDAuOTAyMzU3LCAxLjYwMDk1LCAxLjk5NzUiLCBcCi0gICAgICAgICAgIjAuMTA2MjU0LCAwLjEyNjYwNywgMC4zMDUxMDQsIDAuNjAyNjQ2LCAwLjkwMDI2NSwgMS42MDEzNiwgMS45OTMiLCBcCi0gICAgICAgICAgIjAuMTA2NzYxLCAwLjEyNjExNywgMC4zMDUxMDcsIDAuNjAzMjMsIDAuOTAzMDMzLCAxLjYwMDg4LCAxLjk5NzAzIiwgXAotICAgICAgICAgICIwLjEwNjg3LCAwLjEyNjYxLCAwLjMwNTExNywgMC42MDM4NTksIDAuODk5NDA3LCAxLjU5ODkxLCAxLjk5OTk2IiwgXAotICAgICAgICAgICIwLjEwNjc2OCwgMC4xMjY2MDgsIDAuMzA1MDk2LCAwLjYwMjk1NywgMC45MDI2NjQsIDEuNjAwNzksIDEuOTk3NjUiLCBcCi0gICAgICAgICAgIjAuMTA2MzI1LCAwLjEyNjQ3MiwgMC4zMDQ3MzEsIDAuNjA0MDA5LCAwLjkwMzA5OSwgMS42MDEyNSwgMS45OTg0NCIsIFwKLSAgICAgICAgICAiMC4xMDcxMywgMC4xMjY0NzMsIDAuMzA1MDQ1LCAwLjYwMzc2NCwgMC45MDE5NjcsIDEuNjAwMDUsIDEuOTk5NjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0Njg5LCAwLjAwNDY5LCAwLjAwNDY5NCwgMC4wMDQ2OTYsIDAuMDA0Njk2LCAwLjAwNDY5NywgMC4wMDQ2OTciLCBcCi0gICAgICAgICAgIjAuMDA0NjgxLCAwLjAwNDY4MiwgMC4wMDQ2ODYsIDAuMDA0Njg4LCAwLjAwNDY4OSwgMC4wMDQ2OSwgMC4wMDQ2OSIsIFwKLSAgICAgICAgICAiMC4wMDQ3MjcsIDAuMDA0NzI4LCAwLjAwNDczMywgMC4wMDQ3MzUsIDAuMDA0NzM1LCAwLjAwNDczNiwgMC4wMDQ3MzYiLCBcCi0gICAgICAgICAgIjAuMDA0Nzc4LCAwLjAwNDc4LCAwLjAwNDc4NCwgMC4wMDQ3ODYsIDAuMDA0Nzg2LCAwLjAwNDc4OCwgMC4wMDQ3ODciLCBcCi0gICAgICAgICAgIjAuMDA0ODM2LCAwLjAwNDgzOCwgMC4wMDQ4NDIsIDAuMDA0ODQ0LCAwLjAwNDg0NSwgMC4wMDQ4NDYsIDAuMDA0ODQ2IiwgXAotICAgICAgICAgICIwLjAwNDkzLCAwLjAwNDkzMSwgMC4wMDQ5NDcsIDAuMDA0OTQ4LCAwLjAwNDkzOCwgMC4wMDQ5NDksIDAuMDA0OTUiLCBcCi0gICAgICAgICAgIjAuMDA1MDI3LCAwLjAwNTAyOCwgMC4wMDUwMzQsIDAuMDA1MDM0LCAwLjAwNTAzNSwgMC4wMDUwMzQsIDAuMDA1MDM1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0NDgxLCAwLjAwNDQ4MiwgMC4wMDQ0ODYsIDAuMDA0NDg4LCAwLjAwNDQ4OCwgMC4wMDQ0OSwgMC4wMDQ0ODkiLCBcCi0gICAgICAgICAgIjAuMDA0NDc4LCAwLjAwNDQ3OSwgMC4wMDQ0ODMsIDAuMDA0NDg1LCAwLjAwNDQ4NSwgMC4wMDQ0ODgsIDAuMDA0NDg4IiwgXAotICAgICAgICAgICIwLjAwNDUyOCwgMC4wMDQ1MjksIDAuMDA0NTMzLCAwLjAwNDUzNSwgMC4wMDQ1MzcsIDAuMDA0NTM2LCAwLjAwNDUzNiIsIFwKLSAgICAgICAgICAiMC4wMDQ1NzgsIDAuMDA0NTc5LCAwLjAwNDU4NCwgMC4wMDQ1ODUsIDAuMDA0NTg2LCAwLjAwNDU4NiwgMC4wMDQ1ODYiLCBcCi0gICAgICAgICAgIjAuMDA0NjUxLCAwLjAwNDY1MywgMC4wMDQ2NTcsIDAuMDA0NjU4LCAwLjAwNDY1OSwgMC4wMDQ2NiwgMC4wMDQ2NiIsIFwKLSAgICAgICAgICAiMC4wMDQ3NTMsIDAuMDA0NzU0LCAwLjAwNDc1OCwgMC4wMDQ3NTksIDAuMDA0NzYsIDAuMDA0NzYxLCAwLjAwNDc2MSIsIFwKLSAgICAgICAgICAiMC4wMDQ4NjUsIDAuMDA0ODY0LCAwLjAwNDg2OSwgMC4wMDQ4NywgMC4wMDQ4NzEsIDAuMDA0ODcxLCAwLjAwNDg3MiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDYwNzUsIDAuMDA2MDc0LCAwLjAwNjA2NywgMC4wMDYwNjIsIDAuMDA2MDU5LCAwLjAwNjA1NiwgMC4wMDYwNTUiLCBcCi0gICAgICAgICAgIjAuMDA2MDczLCAwLjAwNjA3MywgMC4wMDYwNjYsIDAuMDA2MDYsIDAuMDA2MDU3LCAwLjAwNjA1NCwgMC4wMDYwNTQiLCBcCi0gICAgICAgICAgIjAuMDA2MTA1LCAwLjAwNjEwNCwgMC4wMDYwOTgsIDAuMDA2MDkyLCAwLjAwNjA4OSwgMC4wMDYwODYsIDAuMDA2MDg2IiwgXAotICAgICAgICAgICIwLjAwNjE0OSwgMC4wMDYxNDksIDAuMDA2MTQyLCAwLjAwNjEzNSwgMC4wMDYxMzIsIDAuMDA2MTMsIDAuMDA2MTI4IiwgXAotICAgICAgICAgICIwLjAwNjIwNCwgMC4wMDYyMDMsIDAuMDA2MTk3LCAwLjAwNjE5LCAwLjAwNjE4NywgMC4wMDYxODMsIDAuMDA2MTg0IiwgXAotICAgICAgICAgICIwLjAwNjMwMiwgMC4wMDYzMDIsIDAuMDA2Mjk1LCAwLjAwNjI4OCwgMC4wMDYyODQsIDAuMDA2MjgxLCAwLjAwNjI4IiwgXAotICAgICAgICAgICIwLjAwNjM5NCwgMC4wMDYzOTMsIDAuMDA2Mzg5LCAwLjAwNjM3OCwgMC4wMDYzNzQsIDAuMDA2MzcsIDAuMDA2MzY5Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3Bvd2VyKHNjYWxhcikgewotICAgICAgICB2YWx1ZXMoIjAiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1OTksIDAuMDA1OTkyLCAwLjAwNTk5NiwgMC4wMDU5OTcsIDAuMDA1OTk4LCAwLjAwNTk5OCwgMC4wMDU5OTgiLCBcCi0gICAgICAgICAgIjAuMDA1OTc5LCAwLjAwNTk4LCAwLjAwNTk4NCwgMC4wMDU5ODYsIDAuMDA1OTg2LCAwLjAwNTk4NiwgMC4wMDU5ODciLCBcCi0gICAgICAgICAgIjAuMDA1OTk5LCAwLjAwNjAwMSwgMC4wMDYwMDUsIDAuMDA2MDA2LCAwLjAwNjAwNywgMC4wMDYwMDcsIDAuMDA2MDA3IiwgXAotICAgICAgICAgICIwLjAwNjAzNywgMC4wMDYwMzksIDAuMDA2MDQyLCAwLjAwNjA0NCwgMC4wMDYwNDUsIDAuMDA2MDQ1LCAwLjAwNjA0NSIsIFwKLSAgICAgICAgICAiMC4wMDYwODksIDAuMDA2MDkxLCAwLjAwNjA5NSwgMC4wMDYwOTcsIDAuMDA2MDk4LCAwLjAwNjA5OCwgMC4wMDYxIiwgXAotICAgICAgICAgICIwLjAwNjIwNSwgMC4wMDYyMDgsIDAuMDA2MjEyLCAwLjAwNjIxNCwgMC4wMDYyMTQsIDAuMDA2MjE0LCAwLjAwNjIxNCIsIFwKLSAgICAgICAgICAiMC4wMDYzMjYsIDAuMDA2MzI1LCAwLjAwNjMzMiwgMC4wMDYzMzEsIDAuMDA2MzMyLCAwLjAwNjMzMywgMC4wMDYzMzIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQzODgsIDAuMDA0Mzg5LCAwLjAwNDM5MywgMC4wMDQzOTUsIDAuMDA0Mzk1LCAwLjAwNDM5NiwgMC4wMDQzOTYiLCBcCi0gICAgICAgICAgIjAuMDA0MzU5LCAwLjAwNDM2LCAwLjAwNDM2NCwgMC4wMDQzNjYsIDAuMDA0MzY2LCAwLjAwNDM2NywgMC4wMDQzNjciLCBcCi0gICAgICAgICAgIjAuMDA0MzQ5LCAwLjAwNDM1LCAwLjAwNDM1NSwgMC4wMDQzNTYsIDAuMDA0MzU3LCAwLjAwNDM1NywgMC4wMDQzNTciLCBcCi0gICAgICAgICAgIjAuMDA0MzU2LCAwLjAwNDM1NywgMC4wMDQzNjEsIDAuMDA0MzYzLCAwLjAwNDM2MywgMC4wMDQzNjMsIDAuMDA0MzY1IiwgXAotICAgICAgICAgICIwLjAwNDM3NCwgMC4wMDQzNzUsIDAuMDA0MzgsIDAuMDA0MzgxLCAwLjAwNDM4MiwgMC4wMDQzODIsIDAuMDA0MzgyIiwgXAotICAgICAgICAgICIwLjAwNDQyMiwgMC4wMDQ0MjQsIDAuMDA0NDMsIDAuMDA0NDMxLCAwLjAwNDQzMiwgMC4wMDQ0MzIsIDAuMDA0NDMyIiwgXAotICAgICAgICAgICIwLjAwNDQ3MSwgMC4wMDQ0NzUsIDAuMDA0NDc4LCAwLjAwNDQ3OSwgMC4wMDQ0OCwgMC4wMDQ0OCwgMC4wMDQ0ODEiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFFOKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMTk2NjI2OwotICAgIGZ1bmN0aW9uIDogIlFCSU5UIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBub25fdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJpc2luZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNDEyMjksIDAuMTUxNzU5LCAwLjI0NjQ2NSwgMC40MDQyNzQsIDAuNTYyMDYxLCAwLjkzMDMzOCwgMS4xNDA3MiIsIFwKLSAgICAgICAgICAiMC4xNDk0NzEsIDAuMTU5OTg5LCAwLjI1NDY2MiwgMC40MTI0NzQsIDAuNTcwMjk3LCAwLjkzODUwOSwgMS4xNDg5NyIsIFwKLSAgICAgICAgICAiMC4xNTg2OTgsIDAuMTY5MjE5LCAwLjI2MzkyOCwgMC40MjE3MDgsIDAuNTc5NTI2LCAwLjk0NzgwMywgMS4xNTgxOSIsIFwKLSAgICAgICAgICAiMC4xNjYxNjYsIDAuMTc2NjgsIDAuMjcxMzg3LCAwLjQyOTIxLCAwLjU4Njk5MywgMC45NTUyNzQsIDEuMTY1NjQiLCBcCi0gICAgICAgICAgIjAuMTcyMDY5LCAwLjE4MjU4NCwgMC4yNzcyODgsIDAuNDM1MDg2LCAwLjU5MjkwNiwgMC45NjExMzgsIDEuMTcxNDciLCBcCi0gICAgICAgICAgIjAuMTc5ODc1LCAwLjE5MDM5NywgMC4yODUwNjEsIDAuNDQyODgyLCAwLjYwMDY4NiwgMC45NjkwMTMsIDEuMTc5NCIsIFwKLSAgICAgICAgICAiMC4xODU2ODYsIDAuMTk2MTk2LCAwLjI5MDc0NywgMC40NDg3MjUsIDAuNjA2NTEsIDAuOTc0NzY4LCAxLjE4NTIiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTE2MTQzLCAwLjEzODI4LCAwLjMzNzM0LCAwLjY3MDQ1MSwgMS4wMDA5NywgMS43NzU0MywgMi4yMTkyMSIsIFwKLSAgICAgICAgICAiMC4xMTYxNTksIDAuMTM4MjA3LCAwLjMzNzgzOCwgMC42Njk3NzMsIDEuMDAxODUsIDEuNzc4ODIsIDIuMjE5MzciLCBcCi0gICAgICAgICAgIjAuMTE2MTU0LCAwLjEzODI4LCAwLjMzNzM2NiwgMC42Njk3NzksIDEuMDAyLCAxLjc3NTU1LCAyLjIxOTMiLCBcCi0gICAgICAgICAgIjAuMTE2MDg2LCAwLjEzODI4LCAwLjMzNzg1OCwgMC42NzA0NTcsIDEuMDAxODgsIDEuNzc1NzgsIDIuMjE5MTIiLCBcCi0gICAgICAgICAgIjAuMTE2MTU5LCAwLjEzODIyMSwgMC4zMzc4NjEsIDAuNjcwNDI3LCAxLjAwMTQ0LCAxLjc3NjYyLCAyLjIyMDA5IiwgXAotICAgICAgICAgICIwLjExNjE1MywgMC4xMzgxNTksIDAuMzM3NzQzLCAwLjY2OTc2NSwgMS4wMDI4MywgMS43Nzg4MSwgMi4yMTk0NyIsIFwKLSAgICAgICAgICAiMC4xMTYwOTEsIDAuMTM4MjkyLCAwLjMzNzQ0LCAwLjY3MDQzMSwgMS4wMDE5LCAxLjc3ODgsIDIuMjE5NzciKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTI5OTg4LCAwLjEzOTYzMywgMC4yMjY0MzMsIDAuMzcxMDg4LCAwLjUxNTc4NCwgMC44NTMzNDMsIDEuMDQ2MjciLCBcCi0gICAgICAgICAgIjAuMTM4MTIzLCAwLjE0Nzc2NSwgMC4yMzQ1NjUsIDAuMzc5MjYxLCAwLjUyMzkzNiwgMC44NjEzMjksIDEuMDU0MTEiLCBcCi0gICAgICAgICAgIjAuMTQ3MzY3LCAwLjE1NzAxNCwgMC4yNDM4MTQsIDAuMzg4NTA2LCAwLjUzMzE2NiwgMC44NzA1NjIsIDEuMDYzNjIiLCBcCi0gICAgICAgICAgIjAuMTU0ODI5LCAwLjE2NDQ3MywgMC4yNTEyNzYsIDAuMzk1OTgxLCAwLjU0MDYyNSwgMC44NzgxOTYsIDEuMDcxMDkiLCBcCi0gICAgICAgICAgIjAuMTYwNzE5LCAwLjE3MDM2NCwgMC4yNTcxNjcsIDAuNDAxODcyLCAwLjU0NjUxNywgMC44ODQwODMsIDEuMDc2NzgiLCBcCi0gICAgICAgICAgIjAuMTY4ODIyLCAwLjE3ODQ3LCAwLjI2NTI5MSwgMC40MDk5NzEsIDAuNTU0NjQ3LCAwLjg5MjE4NSwgMS4wODUwNSIsIFwKLSAgICAgICAgICAiMC4xNzQ1NjcsIDAuMTg0MjEsIDAuMjcxMDIsIDAuNDE1NjgxLCAwLjU2MDM3OCwgMC44OTc4NzksIDEuMDkwNzkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTAzOTc0LCAwLjEyMzYwNiwgMC4zMDIwNSwgMC41OTk0MTksIDAuODk3MTUsIDEuNTg2NDksIDEuOTgxNDQiLCBcCi0gICAgICAgICAgIjAuMTAzODkxLCAwLjEyMzU4NCwgMC4zMDIwNDgsIDAuNTk5NjU5LCAwLjg5NDgzNywgMS41OTA2OSwgMS45ODQ4IiwgXAotICAgICAgICAgICIwLjEwMzkyMywgMC4xMjM1ODIsIDAuMzAyMDMxLCAwLjU5OTYzMywgMC44OTcxMTQsIDEuNTg3MzMsIDEuOTgxNTgiLCBcCi0gICAgICAgICAgIjAuMTAzODU5LCAwLjEyMzY1NiwgMC4zMDIxMTUsIDAuNTk5NzQxLCAwLjg5NzA4MiwgMS41ODcyMywgMS45ODc4NCIsIFwKLSAgICAgICAgICAiMC4xMDM4MjEsIDAuMTIzNTY2LCAwLjMwMjA3NCwgMC41OTk3LCAwLjg5NzAyNywgMS41ODcxMiwgMS45ODcxNiIsIFwKLSAgICAgICAgICAiMC4xMDM5MSwgMC4xMjM3NiwgMC4zMDIwMjEsIDAuNTk5NzI1LCAwLjg5NTYyNSwgMS41OTA5MSwgMS45ODc0IiwgXAotICAgICAgICAgICIwLjEwMzgzNiwgMC4xMjM2NTYsIDAuMzAyMTA1LCAwLjU5OTUzOCwgMC44OTcxNjgsIDEuNTkwOTUsIDEuOTg0OTEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUk4iOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHByZXNldDsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTYxMjYzLCAwLjE3MTc5NiwgMC4yNjY0OTMsIDAuNDI0Mjg0LCAwLjU4MTk1NiwgMC45NTAyMjYsIDEuMTYwNzkiLCBcCi0gICAgICAgICAgIjAuMTY5MTI2LCAwLjE3OTY1OCwgMC4yNzQzNTUsIDAuNDMyMTQ3LCAwLjU4OTgwNywgMC45NTgwMTUsIDEuMTY4NjUiLCBcCi0gICAgICAgICAgIjAuMTc3MTQ3LCAwLjE4NzY2MSwgMC4yODIzNDEsIDAuNDQwMTY4LCAwLjU5Nzk2OSwgMC45NjYyNSwgMS4xNzY2NyIsIFwKLSAgICAgICAgICAiMC4xODMwNDcsIDAuMTkzNTYyLCAwLjI4ODI1NiwgMC40NDYwNjYsIDAuNjAzODk0LCAwLjk3MjExMywgMS4xODI0OSIsIFwKLSAgICAgICAgICAiMC4xODc3MDMsIDAuMTk4MjIsIDAuMjkyODk4LCAwLjQ1MDcxMiwgMC42MDg1NjEsIDAuOTc2NzQzLCAxLjE4NzI1IiwgXAotICAgICAgICAgICIwLjE5NDAzNCwgMC4yMDQ1NTQsIDAuMjk5MjUzLCAwLjQ1NzA0NiwgMC42MTQ4MzIsIDAuOTgzMTc1LCAxLjE5MzU4IiwgXAotICAgICAgICAgICIwLjE5ODczMiwgMC4yMDkyNTUsIDAuMzAzOTIyLCAwLjQ2MTczNiwgMC42MTk1NTgsIDAuOTg3OTg0LCAxLjE5ODI0Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExNjA5NCwgMC4xMzgzNTksIDAuMzM3OTk3LCAwLjY3MDQzOCwgMS4wMDE4NywgMS43NzkyNywgMi4yMjIzIiwgXAotICAgICAgICAgICIwLjExNjE1NiwgMC4xMzgzNTksIDAuMzM4LCAwLjY3MDU4MSwgMS4wMDI5LCAxLjc3ODc2LCAyLjIyMDk5IiwgXAotICAgICAgICAgICIwLjExNjE3LCAwLjEzODI4LCAwLjMzNzk3NSwgMC42NzA0NDUsIDEuMDAzMDEsIDEuNzc5MDYsIDIuMjIyMjYiLCBcCi0gICAgICAgICAgIjAuMTE2MTQ5LCAwLjEzODM1NSwgMC4zMzgwMDQsIDAuNjcwNDYyLCAxLjAwMTczLCAxLjc3NjM0LCAyLjIyMDYxIiwgXAotICAgICAgICAgICIwLjExNjE1MSwgMC4xMzgzNTcsIDAuMzM3OTgxLCAwLjY2OTkxNCwgMS4wMDE2NCwgMS43NzkwNywgMi4yMjIxNCIsIFwKLSAgICAgICAgICAiMC4xMTYxNTYsIDAuMTM4MzU4LCAwLjMzNzk5NCwgMC42Njk4NTgsIDEuMDAyOTMsIDEuNzc4NzUsIDIuMjE5NDgiLCBcCi0gICAgICAgICAgIjAuMTE2MTQsIDAuMTM4Mzg3LCAwLjMzNzk0MiwgMC42Njk4MTEsIDEuMDAxODQsIDEuNzc2NzMsIDIuMjE5NDkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiU04iOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGNsZWFyOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNDg3NzEsIDAuMTU5Mjg4LCAwLjI1Mzk3OSwgMC40MTE3ODQsIDAuNTY5NjA3LCAwLjkzNzkxLCAxLjE0ODM0IiwgXAotICAgICAgICAgICIwLjE1NTMyNSwgMC4xNjU4NTgsIDAuMjYwNTU1LCAwLjQxODM0NywgMC41NzYxODcsIDAuOTQ0NDYxLCAxLjE1NDg1IiwgXAotICAgICAgICAgICIwLjE2Mjg0OSwgMC4xNzMzNjYsIDAuMjY4MDQzLCAwLjQyNTg1OCwgMC41ODM2NzEsIDAuOTUxOTY5LCAxLjE2MjM2IiwgXAotICAgICAgICAgICIwLjE3MDA3OCwgMC4xODA1OTYsIDAuMjc1MjkzLCAwLjQzMzEyNCwgMC41OTA5MywgMC45NTkxNzQsIDEuMTY5NTgiLCBcCi0gICAgICAgICAgIjAuMTc2Nzg2LCAwLjE4NzMwOCwgMC4yODIwMSwgMC40Mzk3OTYsIDAuNTk3NTk1LCAwLjk2NTkxOSwgMS4xNzYzNCIsIFwKLSAgICAgICAgICAiMC4xODYyODMsIDAuMTk2ODAzLCAwLjI5MTQ3MywgMC40NDkyODUsIDAuNjA3MTA0LCAwLjk3NTMyMSwgMS4xODU3OSIsIFwKLSAgICAgICAgICAiMC4xOTM0NywgMC4yMDM5ODYsIDAuMjk4NjQxLCAwLjQ1NjQ2OSwgMC42MTQyNjUsIDAuOTgyNDk2LCAxLjE5MzAxIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExNjE2LCAwLjEzODM0NiwgMC4zMzc5OTksIDAuNjY5ODY5LCAxLjAwMTk4LCAxLjc3OTEzLCAyLjIxOTM1IiwgXAotICAgICAgICAgICIwLjExNjE2MSwgMC4xMzgzNTgsIDAuMzM4MDAxLCAwLjY2OTg0OSwgMS4wMDEwMSwgMS43NzkyOSwgMi4yMTkzIiwgXAotICAgICAgICAgICIwLjExNjE2MSwgMC4xMzgyODMsIDAuMzM3OTc0LCAwLjY2OTkwMiwgMS4wMDMwMSwgMS43NzkwNywgMi4yMTkzNiIsIFwKLSAgICAgICAgICAiMC4xMTYxNiwgMC4xMzgzNTYsIDAuMzM4MDA2LCAwLjY3MDM5LCAxLjAwMTczLCAxLjc3NjYsIDIuMjIyNTYiLCBcCi0gICAgICAgICAgIjAuMTE2MTQ5LCAwLjEzODM2LCAwLjMzNzk3NSwgMC42Njk4NzcsIDEuMDAyODYsIDEuNzc5MDYsIDIuMjE5MzIiLCBcCi0gICAgICAgICAgIjAuMTE2MTY0LCAwLjEzODI3OCwgMC4zMzc3NTEsIDAuNjcwNDY1LCAxLjAwMzAyLCAxLjc3OTA5LCAyLjIyMjEiLCBcCi0gICAgICAgICAgIjAuMTE2MTU3LCAwLjEzODI3NCwgMC4zMzc4NzIsIDAuNjcwMzM1LCAxLjAwMjE0LCAxLjc3ODU2LCAyLjIyMjQ4Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEyNTc2OSwgMC4xMzU0MTQsIDAuMjIyMjI4LCAwLjM2NjkzNiwgMC41MTE1NjksIDAuODQ5MTE3LCAxLjA0MiIsIFwKLSAgICAgICAgICAiMC4xMzIzOTEsIDAuMTQyMDMyLCAwLjIyODg0NywgMC4zNzM1MTIsIDAuNTE4MTgyLCAwLjg1NTc1MSwgMS4wNDg2MiIsIFwKLSAgICAgICAgICAiMC4xNDAyODcsIDAuMTQ5OTMxLCAwLjIzNjc0LCAwLjM4MTM1MywgMC41MjYxMTMsIDAuODYzNjg2LCAxLjA1NjI4IiwgXAotICAgICAgICAgICIwLjE0ODkyMSwgMC4xNTg1NjYsIDAuMjQ1Mzc3LCAwLjM5MDA0NywgMC41MzQ3MTEsIDAuODcyMjc3LCAxLjA2NTIiLCBcCi0gICAgICAgICAgIjAuMTU2MDM1LCAwLjE2NTY3OCwgMC4yNTI0NzksIDAuMzk3MTUyLCAwLjU0MTg0NCwgMC44Nzk0NSwgMS4wNzIzMSIsIFwKLSAgICAgICAgICAiMC4xNjU1NTEsIDAuMTc1MiwgMC4yNjE5OTksIDAuNDA2NjkxLCAwLjU1MTMzOCwgMC44ODg5MTIsIDEuMDgxODQiLCBcCi0gICAgICAgICAgIjAuMTcyMjk0LCAwLjE4MTk0NSwgMC4yNjg3NjMsIDAuNDEzNDEyLCAwLjU1ODA4MywgMC44OTU2NTgsIDEuMDg4NiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDQwMDQsIDAuMTIzNzg0LCAwLjMwMjI0NywgMC41OTk3NjksIDAuODk3MzY0LCAxLjU5MTI1LCAxLjk4NDgiLCBcCi0gICAgICAgICAgIjAuMTA0MDA5LCAwLjEyMzc4MiwgMC4zMDIyMjgsIDAuNTk5ODI1LCAwLjg5NzM2NywgMS41OTEyNiwgMS45ODUxNCIsIFwKLSAgICAgICAgICAiMC4xMDQwMDYsIDAuMTIzNzgxLCAwLjMwMjI1MSwgMC41OTk4MDQsIDAuODk3MTk2LCAxLjU4ODk2LCAxLjk4OCIsIFwKLSAgICAgICAgICAiMC4xMDQwMDUsIDAuMTIzODExLCAwLjMwMjI4OCwgMC41OTk3ODMsIDAuODk3Mzc4LCAxLjU5MTIyLCAxLjk4Njk3IiwgXAotICAgICAgICAgICIwLjEwNDAwNSwgMC4xMjM3OCwgMC4zMDIyNTYsIDAuNTk5ODI3LCAwLjg5NzM3MiwgMS41OTE0OSwgMS45ODc2OCIsIFwKLSAgICAgICAgICAiMC4xMDQwMTUsIDAuMTIzNzU4LCAwLjMwMjI0OCwgMC41OTk3NzMsIDAuODk3MzcyLCAxLjU5MDk5LCAxLjk4Nzk4IiwgXAotICAgICAgICAgICIwLjEwMzc5NCwgMC4xMjM2MzgsIDAuMzAyMjUsIDAuNTk5NzE3LCAwLjg5NzQzNywgMS41OTE3NywgMS45ODczOCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQ0ODEsIDAuMDA0NDgyLCAwLjAwNDQ4NiwgMC4wMDQ0ODgsIDAuMDA0NDg4LCAwLjAwNDQ5LCAwLjAwNDQ4OSIsIFwKLSAgICAgICAgICAiMC4wMDQ0NzgsIDAuMDA0NDc5LCAwLjAwNDQ4MywgMC4wMDQ0ODUsIDAuMDA0NDg1LCAwLjAwNDQ4OCwgMC4wMDQ0ODgiLCBcCi0gICAgICAgICAgIjAuMDA0NTI4LCAwLjAwNDUyOSwgMC4wMDQ1MzMsIDAuMDA0NTM1LCAwLjAwNDUzNywgMC4wMDQ1MzYsIDAuMDA0NTM2IiwgXAotICAgICAgICAgICIwLjAwNDU3OCwgMC4wMDQ1NzksIDAuMDA0NTg0LCAwLjAwNDU4NSwgMC4wMDQ1ODYsIDAuMDA0NTg2LCAwLjAwNDU4NiIsIFwKLSAgICAgICAgICAiMC4wMDQ2NTEsIDAuMDA0NjUzLCAwLjAwNDY1NywgMC4wMDQ2NTgsIDAuMDA0NjU5LCAwLjAwNDY2LCAwLjAwNDY2IiwgXAotICAgICAgICAgICIwLjAwNDc1MywgMC4wMDQ3NTQsIDAuMDA0NzU4LCAwLjAwNDc1OSwgMC4wMDQ3NiwgMC4wMDQ3NjEsIDAuMDA0NzYxIiwgXAotICAgICAgICAgICIwLjAwNDg2NSwgMC4wMDQ4NjQsIDAuMDA0ODY5LCAwLjAwNDg3LCAwLjAwNDg3MSwgMC4wMDQ4NzEsIDAuMDA0ODcyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0Njg5LCAwLjAwNDY5LCAwLjAwNDY5NCwgMC4wMDQ2OTYsIDAuMDA0Njk2LCAwLjAwNDY5NywgMC4wMDQ2OTciLCBcCi0gICAgICAgICAgIjAuMDA0NjgxLCAwLjAwNDY4MiwgMC4wMDQ2ODYsIDAuMDA0Njg4LCAwLjAwNDY4OSwgMC4wMDQ2OSwgMC4wMDQ2OSIsIFwKLSAgICAgICAgICAiMC4wMDQ3MjcsIDAuMDA0NzI4LCAwLjAwNDczMywgMC4wMDQ3MzUsIDAuMDA0NzM1LCAwLjAwNDczNiwgMC4wMDQ3MzYiLCBcCi0gICAgICAgICAgIjAuMDA0Nzc4LCAwLjAwNDc4LCAwLjAwNDc4NCwgMC4wMDQ3ODYsIDAuMDA0Nzg2LCAwLjAwNDc4OCwgMC4wMDQ3ODciLCBcCi0gICAgICAgICAgIjAuMDA0ODM2LCAwLjAwNDgzOCwgMC4wMDQ4NDIsIDAuMDA0ODQ0LCAwLjAwNDg0NSwgMC4wMDQ4NDYsIDAuMDA0ODQ2IiwgXAotICAgICAgICAgICIwLjAwNDkzLCAwLjAwNDkzMSwgMC4wMDQ5NDcsIDAuMDA0OTQ4LCAwLjAwNDkzOCwgMC4wMDQ5NDksIDAuMDA0OTUiLCBcCi0gICAgICAgICAgIjAuMDA1MDI3LCAwLjAwNTAyOCwgMC4wMDUwMzQsIDAuMDA1MDM0LCAwLjAwNTAzNSwgMC4wMDUwMzQsIDAuMDA1MDM1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUk4iOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjA3NSwgMC4wMDYwNzQsIDAuMDA2MDY3LCAwLjAwNjA2MiwgMC4wMDYwNTksIDAuMDA2MDU2LCAwLjAwNjA1NSIsIFwKLSAgICAgICAgICAiMC4wMDYwNzMsIDAuMDA2MDczLCAwLjAwNjA2NiwgMC4wMDYwNiwgMC4wMDYwNTcsIDAuMDA2MDU0LCAwLjAwNjA1NCIsIFwKLSAgICAgICAgICAiMC4wMDYxMDUsIDAuMDA2MTA0LCAwLjAwNjA5OCwgMC4wMDYwOTIsIDAuMDA2MDg5LCAwLjAwNjA4NiwgMC4wMDYwODYiLCBcCi0gICAgICAgICAgIjAuMDA2MTQ5LCAwLjAwNjE0OSwgMC4wMDYxNDIsIDAuMDA2MTM1LCAwLjAwNjEzMiwgMC4wMDYxMywgMC4wMDYxMjgiLCBcCi0gICAgICAgICAgIjAuMDA2MjA0LCAwLjAwNjIwMywgMC4wMDYxOTcsIDAuMDA2MTksIDAuMDA2MTg3LCAwLjAwNjE4MywgMC4wMDYxODQiLCBcCi0gICAgICAgICAgIjAuMDA2MzAyLCAwLjAwNjMwMiwgMC4wMDYyOTUsIDAuMDA2Mjg4LCAwLjAwNjI4NCwgMC4wMDYyODEsIDAuMDA2MjgiLCBcCi0gICAgICAgICAgIjAuMDA2Mzk0LCAwLjAwNjM5MywgMC4wMDYzODksIDAuMDA2Mzc4LCAwLjAwNjM3NCwgMC4wMDYzNywgMC4wMDYzNjkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoc2NhbGFyKSB7Ci0gICAgICAgIHZhbHVlcygiMCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQzODgsIDAuMDA0Mzg5LCAwLjAwNDM5MywgMC4wMDQzOTUsIDAuMDA0Mzk1LCAwLjAwNDM5NiwgMC4wMDQzOTYiLCBcCi0gICAgICAgICAgIjAuMDA0MzU5LCAwLjAwNDM2LCAwLjAwNDM2NCwgMC4wMDQzNjYsIDAuMDA0MzY2LCAwLjAwNDM2NywgMC4wMDQzNjciLCBcCi0gICAgICAgICAgIjAuMDA0MzQ5LCAwLjAwNDM1LCAwLjAwNDM1NSwgMC4wMDQzNTYsIDAuMDA0MzU3LCAwLjAwNDM1NywgMC4wMDQzNTciLCBcCi0gICAgICAgICAgIjAuMDA0MzU2LCAwLjAwNDM1NywgMC4wMDQzNjEsIDAuMDA0MzYzLCAwLjAwNDM2MywgMC4wMDQzNjMsIDAuMDA0MzY1IiwgXAotICAgICAgICAgICIwLjAwNDM3NCwgMC4wMDQzNzUsIDAuMDA0MzgsIDAuMDA0MzgxLCAwLjAwNDM4MiwgMC4wMDQzODIsIDAuMDA0MzgyIiwgXAotICAgICAgICAgICIwLjAwNDQyMiwgMC4wMDQ0MjQsIDAuMDA0NDMsIDAuMDA0NDMxLCAwLjAwNDQzMiwgMC4wMDQ0MzIsIDAuMDA0NDMyIiwgXAotICAgICAgICAgICIwLjAwNDQ3MSwgMC4wMDQ0NzUsIDAuMDA0NDc4LCAwLjAwNDQ3OSwgMC4wMDQ0OCwgMC4wMDQ0OCwgMC4wMDQ0ODEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDU5OSwgMC4wMDU5OTIsIDAuMDA1OTk2LCAwLjAwNTk5NywgMC4wMDU5OTgsIDAuMDA1OTk4LCAwLjAwNTk5OCIsIFwKLSAgICAgICAgICAiMC4wMDU5NzksIDAuMDA1OTgsIDAuMDA1OTg0LCAwLjAwNTk4NiwgMC4wMDU5ODYsIDAuMDA1OTg2LCAwLjAwNTk4NyIsIFwKLSAgICAgICAgICAiMC4wMDU5OTksIDAuMDA2MDAxLCAwLjAwNjAwNSwgMC4wMDYwMDYsIDAuMDA2MDA3LCAwLjAwNjAwNywgMC4wMDYwMDciLCBcCi0gICAgICAgICAgIjAuMDA2MDM3LCAwLjAwNjAzOSwgMC4wMDYwNDIsIDAuMDA2MDQ0LCAwLjAwNjA0NSwgMC4wMDYwNDUsIDAuMDA2MDQ1IiwgXAotICAgICAgICAgICIwLjAwNjA4OSwgMC4wMDYwOTEsIDAuMDA2MDk1LCAwLjAwNjA5NywgMC4wMDYwOTgsIDAuMDA2MDk4LCAwLjAwNjEiLCBcCi0gICAgICAgICAgIjAuMDA2MjA1LCAwLjAwNjIwOCwgMC4wMDYyMTIsIDAuMDA2MjE0LCAwLjAwNjIxNCwgMC4wMDYyMTQsIDAuMDA2MjE0IiwgXAotICAgICAgICAgICIwLjAwNjMyNiwgMC4wMDYzMjUsIDAuMDA2MzMyLCAwLjAwNjMzMSwgMC4wMDYzMzIsIDAuMDA2MzMzLCAwLjAwNjMzMiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUk4pICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY1NTE3MTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2NTUxMjI7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjU1MTcxOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDYwNCwgMC4wMDA2MDQsIDAuMDAwNjc2LCAwLjAwMDc3NywgMC4wMDA4OTIsIDAuMDAxMTE5LCAwLjAwMTMwMiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzAyMiwgMC4wMDMwMjUsIDAuMDAzMDkxLCAwLjAwMzE4NCwgMC4wMDMzMDMsIDAuMDAzNTUxLCAwLjAwMzcwOCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQmIVNFJiFTSSZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fU0VfRVFfMF9BTl9TSV9FUV8wX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4xNjEyNjMsIDAuMTY5MTI2LCAwLjE3NzE0NywgMC4xODMwNDcsIDAuMTg3NzAzLCAwLjE5NDAzNCwgMC4xOTg1NjYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiByZWNvdmVyeV9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlNOIjsKLSAgICAgIHNkZl9jb25kIDogIlNOID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHJlY292ZXJ5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0Mzc1LCAwLjAzMjUsIDAuMDI2MjUsIDAuMDIsIDAuMDEzNzUsIDAuMDAzNzUsIDAuMDAxMjUiLCBcCi0gICAgICAgICAgIjAuMDQ4NzUsIDAuMDQzNzUsIDAuMDMxMjUsIDAuMDI1LCAwLjAxODc1LCAwLjAxNSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiMC4wNTUsIDAuMDUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMjUsIDAuMDIxMjUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMDYxMjUsIDAuMDU2MjUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMjc1LCAwLjAxODc1IiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDU2MjUsIDAuMDUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzM3NSwgMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMDc3NSwgMC4wNjYyNSwgMC4wNTM3NSwgMC4wNDc1LCAwLjA0MTI1LCAwLjAzNzUsIDAuMDM1IiwgXAotICAgICAgICAgICIwLjA4LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDUsIDAuMDQsIDAuMDM3NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJlY292ZXJ5X3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUQmIVNFJiFTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fU0VfRVFfMF9BTl9TSV9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHJlY292ZXJ5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1LCAwLjA1NSwgMC4wNjEyNSwgMC4wNjc1LCAwLjA3Mzc1LCAwLjA4Mzc1LCAwLjA4NjI1IiwgXAotICAgICAgICAgICIwLjA0NSwgMC4wNSwgMC4wNTYyNSwgMC4wNjI1LCAwLjA2ODc1LCAwLjA3ODc1LCAwLjA4MTI1IiwgXAotICAgICAgICAgICIwLjAzODc1LCAwLjA1LCAwLjA1NjI1LCAwLjA1NjI1LCAwLjA2MjUsIDAuMDcyNSwgMC4wODEyNSIsIFwKLSAgICAgICAgICAiMC4wMzg3NSwgMC4wNDM3NSwgMC4wNSwgMC4wNTYyNSwgMC4wNjI1LCAwLjA2NjI1LCAwLjA3NSIsIFwKLSAgICAgICAgICAiMC4wMzg3NSwgMC4wNDM3NSwgMC4wNSwgMC4wNTYyNSwgMC4wNTYyNSwgMC4wNjYyNSwgMC4wNzUiLCBcCi0gICAgICAgICAgIjAuMDM1LCAwLjA0LCAwLjA0NjI1LCAwLjA1MjUsIDAuMDU4NzUsIDAuMDYyNSwgMC4wNzEyNSIsIFwKLSAgICAgICAgICAiMC4wMzI1LCAwLjAzNzUsIDAuMDQzNzUsIDAuMDUsIDAuMDU2MjUsIDAuMDYsIDAuMDY4NzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiByZW1vdmFsX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiU04iOwotICAgICAgc2RmX2NvbmQgOiAiU04gPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQocmVtb3ZhbF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDA2MjUsIC0wLjAwMTI1LCAwLjAwNSwgMC4wMTEyNSwgMC4wMTc1LCAwLjAyNzUsIDAuMDMiLCBcCi0gICAgICAgICAgIi0wLjAxNzUsIC0wLjAwNjI1LCAwLCAwLjAwNjI1LCAwLjAxMjUsIDAuMDE2MjUsIDAuMDI1IiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLCAwLjAwNjI1LCAwLjAxLCAwLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMjUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLCAwLjAwMzc1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgLTAuMDAyNSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDQsIC0wLjAzNSwgLTAuMDIyNSwgLTAuMDE2MjUsIC0wLjAxLCAtMC4wMDYyNSwgLTAuMDAzNzUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMDg3NSwgLTAuMDA2MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFNFKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE0MDA0NzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE0MDA0NzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE0MDAzNDsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDUzNDYsIDAuMDA1MzY1LCAwLjAwNTQ0OCwgMC4wMDU1NjQsIDAuMDA1NzE2LCAwLjAwNTk0MiwgMC4wMDYxMDMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDcxMzcsIDAuMDA3MTY0LCAwLjAwNzI4MSwgMC4wMDc0NDQsIDAuMDA3NjU1LCAwLjAwODAyLCAwLjAwODM1NiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJSTiZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJSTl9FUV8xX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDE4NzUsIC0wLjAxMzc1LCAtMC4wMDc1LCAtMC4wMDEyNSwgMC4wMDUsIDAuMDE1LCAwLjAxNzUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAsIDAuMDAzNzUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgLTAuMDAyNSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDI1LCAwIiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA4NzUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wNDYyNSwgLTAuMDQxMjUsIC0wLjAyODc1LCAtMC4wMjI1LCAtMC4wMjI1LCAtMC4wMTI1LCAtMC4wMSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjA0Mzc1LCAtMC4wMzEyNSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDE1LCAtMC4wMTI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDEyNSwgLTAuMDAxMjUsIDAuMDA1LCAwLjAxMTI1LCAwLjAxNzUsIDAuMDIxMjUsIDAuMDIzNzUiLCBcCi0gICAgICAgICAgIi0wLjAxNzUsIC0wLjAxMjUsIDAsIDAsIDAuMDA2MjUsIDAuMDE2MjUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAsIDAuMDAzNzUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAxMjUsIC0wLjAwMjUsIDAiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTg3NSwgLTAuMDA4NzUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wNDYyNSwgLTAuMDQxMjUsIC0wLjAzNSwgLTAuMDI4NzUsIC0wLjAyMjUsIC0wLjAxODc1LCAtMC4wMTYyNSIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMjc1LCAtMC4wMTg3NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiUk4mU04iOwotICAgICAgc2RmX2NvbmQgOiAiUk5fRVFfMV9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2ODc1LCAwLjA1NzUsIDAuMDUxMjUsIDAuMDQ1LCAwLjAzODc1LCAwLjAzNSwgMC4wMzI1IiwgXAotICAgICAgICAgICIwLjA4LCAwLjA2ODc1LCAwLjA1NjI1LCAwLjA1LCAwLjA1LCAwLjA0LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIjAuMDg2MjUsIDAuMDc1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDUyNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4wOTI1LCAwLjA4NzUsIDAuMDc1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDU4NzUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIjAuMTA1LCAwLjA5Mzc1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNzUsIDAuMDY1LCAwLjA2MjUiLCBcCi0gICAgICAgICAgIjAuMTE1LCAwLjEwMzc1LCAwLjA5NzUsIDAuMDkxMjUsIDAuMDg1LCAwLjA3NSwgMC4wNzI1IiwgXAotICAgICAgICAgICIwLjEyMzc1LCAwLjExMjUsIDAuMSwgMC4wOTM3NSwgMC4wOTM3NSwgMC4wODM3NSwgMC4wODEyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4MTI1LCAwLjA3LCAwLjA2Mzc1LCAwLjA1NzUsIDAuMDUxMjUsIDAuMDQ3NSwgMC4wMzg3NSIsIFwKLSAgICAgICAgICAiMC4wODYyNSwgMC4wODEyNSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1MjUsIDAuMDUiLCBcCi0gICAgICAgICAgIjAuMDkyNSwgMC4wODc1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1ODc1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICIwLjA5ODc1LCAwLjA4NzUsIDAuMDgxMjUsIDAuMDc1LCAwLjA2ODc1LCAwLjA2NSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiMC4wOTg3NSwgMC4wOTM3NSwgMC4wODEyNSwgMC4wNzUsIDAuMDY4NzUsIDAuMDY1LCAwLjA2MjUiLCBcCi0gICAgICAgICAgIjAuMTAyNSwgMC4wOTc1LCAwLjA4NSwgMC4wNzg3NSwgMC4wNzg3NSwgMC4wNjg3NSwgMC4wNjYyNSIsIFwKLSAgICAgICAgICAiMC4xMTEyNSwgMC4xLCAwLjA4NzUsIDAuMDgxMjUsIDAuMDgxMjUsIDAuMDcxMjUsIDAuMDY4NzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFNJKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2ODUwMjI7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjgzOTA5OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDY4NTAyMjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDM3LCAwLjAwMzY4LCAwLjAwMzcwMiwgMC4wMDM3MzgsIDAuMDAzODA1LCAwLjAwMzkxNywgMC4wMDQwMzYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDU4NjMsIDAuMDA1ODQ2LCAwLjAwNTg2NCwgMC4wMDU5MDQsIDAuMDA1OTU2LCAwLjAwNjA4MiwgMC4wMDYxNzkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiUk4mU0UmU04iOwotICAgICAgc2RmX2NvbmQgOiAiUk5fRVFfMV9BTl9TRV9FUV8xX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDMxMjUsIC0wLjAyNjI1LCAtMC4wMiwgLTAuMDIsIC0wLjAxMzc1LCAtMC4wMTYyNSwgLTAuMDA3NSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAzMTI1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMjUsIC0wLjAyMTI1LCAtMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDMxMjUsIC0wLjAyNzUsIC0wLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzM3NSwgLTAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjA2MTI1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wNDM3NSwgLTAuMDQsIC0wLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjA2NSwgLTAuMDYsIC0wLjA2LCAtMC4wNTM3NSwgLTAuMDUzNzUsIC0wLjA1LCAtMC4wNDc1IiwgXAotICAgICAgICAgICItMC4wNzM3NSwgLTAuMDY4NzUsIC0wLjA2MjUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNTI1LCAtMC4wNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAxMjUsIC0wLjAwNzUsIC0wLjAwMTI1LCAwLjAwNSwgMC4wMTEyNSwgMC4wMTUsIDAuMDIzNzUiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMCwgMC4wMDYyNSwgMC4wMSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMCwgMC4wMDM3NSwgMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIC0wLjAwMjUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA4NzUsIDAiLCBcCi0gICAgICAgICAgIi0wLjA0NjI1LCAtMC4wMzUsIC0wLjAyODc1LCAtMC4wMjI1LCAtMC4wMTYyNSwgLTAuMDEyNSwgLTAuMDEiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wNDM3NSwgLTAuMDMxMjUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAxNSwgLTAuMDEyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiUk4mU0UmU04iOwotICAgICAgc2RmX2NvbmQgOiAiUk5fRVFfMV9BTl9TRV9FUV8xX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc1LCAwLjA2Mzc1LCAwLjA1NzUsIDAuMDQ1LCAwLjA0NSwgMC4wMzUsIDAuMDMyNSIsIFwKLSAgICAgICAgICAiMC4wOCwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1LCAwLjA0NjI1LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIjAuMDg2MjUsIDAuMDc1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDUyNSwgMC4wNSIsIFwKLSAgICAgICAgICAiMC4wOTI1LCAwLjA4NzUsIDAuMDc1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDU4NzUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIjAuMDk4NzUsIDAuMDkzNzUsIDAuMDgxMjUsIDAuMDc1LCAwLjA2ODc1LCAwLjA2NSwgMC4wNjI1IiwgXAotICAgICAgICAgICIwLjEwODc1LCAwLjA5NzUsIDAuMDkxMjUsIDAuMDg1LCAwLjA3ODc1LCAwLjA3NSwgMC4wNzI1IiwgXAotICAgICAgICAgICIwLjExNzUsIDAuMTA2MjUsIDAuMSwgMC4wOTM3NSwgMC4wODc1LCAwLjA3NzUsIDAuMDc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU2MjUsIDAuMDUxMjUsIDAuMDM4NzUsIDAuMDMyNSwgMC4wMjYyNSwgMC4wMjI1LCAwLjAxMzc1IiwgXAotICAgICAgICAgICIwLjA2MTI1LCAwLjA1NjI1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDI3NSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4wNjc1LCAwLjA2MjUsIDAuMDUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzM3NSwgMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMDczNzUsIDAuMDY4NzUsIDAuMDU2MjUsIDAuMDUsIDAuMDQzNzUsIDAuMDQsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMDgsIDAuMDc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDUsIDAuMDQ2MjUsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiMC4wOSwgMC4wNzg3NSwgMC4wNzI1LCAwLjA2NjI1LCAwLjA2LCAwLjA1LCAwLjA0NzUiLCBcCi0gICAgICAgICAgIjAuMDkyNSwgMC4wODc1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1ODc1LCAwLjA1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTTikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNjc2MTY7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNjc2MTY7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNjc2MDg7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNTkzLCAwLjAwMDU5MiwgMC4wMDA1OTIsIDAuMDAwNTkyLCAwLjAwMDU5MiwgMC4wMDA1OTIsIDAuMDAwNTkyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNjAyLCAwLjAwMDU5NiwgMC4wMDA1OTUsIDAuMDAwNTk1LCAwLjAwMDU5NSwgMC4wMDA1OTQsIDAuMDAwNTk0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRCYhUk4mIVNFJiFTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fUk5fRVFfMF9BTl9TRV9FUV8wX0FOX1NJX0VRXzAgPT0gMSdiMSI7Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4xMjU3NjUsIDAuMTMyMzkxLCAwLjE0MDI4NywgMC4xNDg5MjEsIDAuMTU2MDM0LCAwLjE2NTU1MSwgMC4xNzIyOTQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiByZWNvdmVyeV9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlJOIjsKLSAgICAgIHNkZl9jb25kIDogIlJOID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHJlY292ZXJ5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjI1LCAwLjAwMTI1LCAtMC4wMTEyNSwgLTAuMDE3NSwgLTAuMDIzNzUsIC0wLjAzMzc1LCAtMC4wMzYyNSIsIFwKLSAgICAgICAgICAiMC4wMTEyNSwgMC4wMDYyNSwgLTAuMDA2MjUsIC0wLjAxMjUsIC0wLjAxODc1LCAtMC4wMjg3NSwgLTAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMDIzNzUsIDAuMDEyNSwgMCwgLTAuMDA2MjUsIC0wLjAxMjUsIC0wLjAxNjI1LCAtMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMDMsIDAuMDE4NzUsIDAuMDEyNSwgMCwgLTAuMDA2MjUsIC0wLjAxLCAtMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4wMzYyNSwgMC4wMjUsIDAuMDE4NzUsIDAuMDA2MjUsIDAsIC0wLjAwMzc1LCAtMC4wMTI1IiwgXAotICAgICAgICAgICIwLjA0NjI1LCAwLjAzNSwgMC4wMjg3NSwgMC4wMjI1LCAwLjAxNjI1LCAwLjAwNjI1LCAtMC4wMDI1IiwgXAotICAgICAgICAgICIwLjA1NSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMTUsIDAuMDA2MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiByZW1vdmFsX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiUk4iOwotICAgICAgc2RmX2NvbmQgOiAiUk4gPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQocmVtb3ZhbF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTg3NSwgMC4wMjM3NSwgMC4wMzYyNSwgMC4wNDI1LCAwLjA0ODc1LCAwLjA1MjUsIDAuMDYxMjUiLCBcCi0gICAgICAgICAgIjAuMDEzNzUsIDAuMDE4NzUsIDAuMDMxMjUsIDAuMDM3NSwgMC4wNDM3NSwgMC4wNDc1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICIwLjAwMTI1LCAwLjAxMjUsIDAuMDE4NzUsIDAuMDI1LCAwLjAzMTI1LCAwLjA0MTI1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICItMC4wMDUsIDAuMDA2MjUsIDAuMDEyNSwgMC4wMTg3NSwgMC4wMjUsIDAuMDM1LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjAxMTI1LCAwLCAwLjAwNjI1LCAwLjAxODc1LCAwLjAxODc1LCAwLjAyODc1LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjAxNSwgLTAuMDEsIDAuMDAyNSwgMC4wMDg3NSwgMC4wMTUsIDAuMDE4NzUsIDAuMDI3NSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLCAwLjAwNjI1LCAwLjAxNjI1LCAwLjAxODc1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogU0RGRlNYNCAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChTREZGU1g0KSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDEuODU5MjM7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgZmYgKE4zNSxRQklOVCkgewotICAgIG5leHRfc3RhdGUgOiAiKChTRSBTSSkgKyAoIVNFIEQpKSI7Ci0gICAgY2xvY2tlZF9vbiA6ICJDSyI7Ci0gICAgcHJlc2V0IDogIighU04pIjsKLSAgfQotICBwaW4oQ0spICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY1NzI5NjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2NTcyOTY7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjU3MjkzOwotICAgIGNsb2NrIDogdHJ1ZTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDM1MywgMC4wMDM1MjEsIDAuMDAzNjEyLCAwLjAwMzY5NiwgMC4wMDM4MjIsIDAuMDA0MDU1LCAwLjAwNDIzNCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwODIyNywgMC4wMDgyMjgsIDAuMDA4MzIsIDAuMDA4NDM1LCAwLjAwODU3NiwgMC4wMDg4NTcsIDAuMDA4OTgxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRCYhU0UmIVNJJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9TRV9FUV8wX0FOX1NJX0VRXzBfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjExMzAzMywgMC4xMjEyMjEsIDAuMTMwMTY2LCAwLjEzNzQxMiwgMC4xNDI5NjcsIDAuMTUwNDc4LCAwLjE1NjI0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wNzM2MzQsIDAuMDgxNzUyLCAwLjA5MDcxOCwgMC4wOTc1NiwgMC4xMDMwMTksIDAuMTEwMTM5LCAwLjExNTM5OCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjQ4ODg5OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDY0ODEyOTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2NDg4ODk7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzODMsIDAuMDAzODA4LCAwLjAwMzgyMywgMC4wMDM4NjUsIDAuMDAzOTI0LCAwLjAwNDAyNywgMC4wMDQxNDEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDU4NjMsIDAuMDA1ODUsIDAuMDA1ODY2LCAwLjAwNTkwOCwgMC4wMDU5NjcsIDAuMDA2MDcxLCAwLjAwNjE4MiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhU0UmU04iOwotICAgICAgc2RmX2NvbmQgOiAiU0VfRVFfMF9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAzMTI1LCAtMC4wMjYyNSwgLTAuMDIsIC0wLjAyLCAtMC4wMTM3NSwgLTAuMDEsIC0wLjAwNzUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTUsIC0wLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzNzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMzEyNSwgLTAuMDI3NSwgLTAuMDI1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDQzNzUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzc1LCAtMC4wMzM3NSwgLTAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjA1NSwgLTAuMDUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDQzNzUsIC0wLjA0LCAtMC4wMzc1IiwgXAotICAgICAgICAgICItMC4wNjUsIC0wLjA2LCAtMC4wNTM3NSwgLTAuMDUzNzUsIC0wLjA1Mzc1LCAtMC4wNSwgLTAuMDQ3NSIsIFwKLSAgICAgICAgICAiLTAuMDY3NSwgLTAuMDYyNSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA1NjI1LCAtMC4wNTI1LCAtMC4wNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAxMjUsIC0wLjAwNzUsIDAuMDA1LCAwLjAwNSwgMC4wMTEyNSwgMC4wMTUsIDAuMDIzNzUiLCBcCi0gICAgICAgICAgIi0wLjAxNzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLCAwLjAwNjI1LCAwLjAxLCAwLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAsIDAuMDAzNzUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgLTAuMDAyNSwgMCIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDg3NSwgMCIsIFwKLSAgICAgICAgICAiLTAuMDQsIC0wLjAzNSwgLTAuMDI4NzUsIC0wLjAyMjUsIC0wLjAxNjI1LCAtMC4wMTI1LCAtMC4wMSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDI1LCAtMC4wMTUsIC0wLjAxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFTRSZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJTRV9FUV8wX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDYyNSwgMC4wNTEyNSwgMC4wNDUsIDAuMDQ1LCAwLjAzODc1LCAwLjAzNSwgMC4wMzI1IiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDYyNSwgMC4wNSwgMC4wNSwgMC4wNDM3NSwgMC4wNCwgMC4wMzc1IiwgXAotICAgICAgICAgICIwLjA3Mzc1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDUsIDAuMDQ2MjUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMDgsIDAuMDc1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDYyNSwgMC4wNTI1LCAwLjA1IiwgXAotICAgICAgICAgICIwLjA5MjUsIDAuMDgxMjUsIDAuMDc1LCAwLjA2ODc1LCAwLjA2ODc1LCAwLjA2NSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiMC4wOTYyNSwgMC4wOTEyNSwgMC4wODUsIDAuMDc4NzUsIDAuMDcyNSwgMC4wNjg3NSwgMC4wNjYyNSIsIFwKLSAgICAgICAgICAiMC4xMDUsIDAuMSwgMC4wODc1LCAwLjA4NzUsIDAuMDgxMjUsIDAuMDc3NSwgMC4wNzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjI1LCAwLjA1MTI1LCAwLjA0NSwgMC4wMzg3NSwgMC4wMzI1LCAwLjAyODc1LCAwLjAyIiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDYyNSwgMC4wNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzMzc1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiMC4wNzM3NSwgMC4wNjg3NSwgMC4wNTYyNSwgMC4wNSwgMC4wNDM3NSwgMC4wNCwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4wOCwgMC4wNzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNSwgMC4wNDYyNSwgMC4wMzc1IiwgXAotICAgICAgICAgICIwLjA4NjI1LCAwLjA4MTI1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDUyNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4wOTYyNSwgMC4wODUsIDAuMDc4NzUsIDAuMDcyNSwgMC4wNjYyNSwgMC4wNTYyNSwgMC4wNTM3NSIsIFwKLSAgICAgICAgICAiMC4xMDUsIDAuMDkzNzUsIDAuMDgxMjUsIDAuMDc1LCAwLjA2ODc1LCAwLjA2NSwgMC4wNjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihRKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDEuMzg4OTY7Ci0gICAgZnVuY3Rpb24gOiAiTjM1IjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBub25fdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJpc2luZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4MjM3MiwgMC4xMzczOTksIDAuMTkxMzc3LCAwLjIzMDAxMiwgMC4yOTE2MjQsIDAuMzQ1NDksIDAuNDIyMjM0IiwgXAotICAgICAgICAgICIwLjA5MDUzMywgMC4xNDU1OTgsIDAuMTk5NjAzLCAwLjIzODM1NSwgMC4yOTk4LCAwLjM1MzQwMSwgMC40MzEwNTkiLCBcCi0gICAgICAgICAgIjAuMDk5Mzk0LCAwLjE1NDQzNywgMC4yMDg0LCAwLjI0NzA3MywgMC4zMDg0NDcsIDAuMzYyNTc4LCAwLjQzOTMxOSIsIFwKLSAgICAgICAgICAiMC4xMDY0OTUsIDAuMTYxNTYsIDAuMjE1NTM5LCAwLjI1Mzk4OCwgMC4zMTU3MzMsIDAuMzY5MzE4LCAwLjQ0NjQ2NCIsIFwKLSAgICAgICAgICAiMC4xMTIwOTgsIDAuMTY3MTc3LCAwLjIyMTM1OCwgMC4yNTk4OTIsIDAuMzIxMzc3LCAwLjM3NDk4MiwgMC40NTI2MjEiLCBcCi0gICAgICAgICAgIjAuMTE5NzEyLCAwLjE3NDc1MSwgMC4yMjg4MjksIDAuMjY3NTE2LCAwLjMyOTE4LCAwLjM4MjU5MSwgMC40NjAxODkiLCBcCi0gICAgICAgICAgIjAuMTI1NDUxLCAwLjE4MDQ2NiwgMC4yMzQ1ODcsIDAuMjcyODIxLCAwLjMzNDcyMiwgMC4zODgzNjcsIDAuNDY1MjE3Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDI1MjUxLCAwLjEzNTU1MywgMC4yNDgyODIsIDAuMzI4NzgsIDAuNDU5NDk1LCAwLjU3MjkyOSwgMC43MzQ0MSIsIFwKLSAgICAgICAgICAiMC4wMjUyNDUsIDAuMTM1NjIxLCAwLjI0ODI2MywgMC4zMjkwMTgsIDAuNDU5NDk2LCAwLjU3MjQ4MiwgMC43MzQzOTUiLCBcCi0gICAgICAgICAgIjAuMDI1Mjc3LCAwLjEzNTYyNSwgMC4yNDgyODQsIDAuMzI4OTY2LCAwLjQ1ODM4OCwgMC41NzMwOTYsIDAuNzM0NTM2IiwgXAotICAgICAgICAgICIwLjAyNTI4MSwgMC4xMzU2NzEsIDAuMjQ4MjQzLCAwLjMyOTAzNCwgMC40NTk0MywgMC41NzI1MjgsIDAuNzM0NTA2IiwgXAotICAgICAgICAgICIwLjAyNTE2OCwgMC4xMzU3OTYsIDAuMjQ4MjQsIDAuMzI5NTQ0LCAwLjQ1OTQ5MiwgMC41NzI1NTMsIDAuNzM0NDM4IiwgXAotICAgICAgICAgICIwLjAyNTI1NiwgMC4xMzU3OCwgMC4yNDc5OTEsIDAuMzI5NTE0LCAwLjQ1OTQ2MSwgMC41NzI0MjYsIDAuNzM0NDE3IiwgXAotICAgICAgICAgICIwLjAyNTI2OCwgMC4xMzQ5MjEsIDAuMjQ3OTY2LCAwLjMyODg5NiwgMC40NTk0NzYsIDAuNTcyMzksIDAuNzM0MzgxIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk1MDQzLCAwLjE1MDM5MywgMC4yMDQzNDksIDAuMjQyODk5LCAwLjMwNDY4MywgMC4zNTg2MjYsIDAuNDM1NDI1IiwgXAotICAgICAgICAgICIwLjEwMzIzMSwgMC4xNTg1ODIsIDAuMjEyNTM0LCAwLjI1MDkwNSwgMC4zMTI4NjgsIDAuMzY2ODA2LCAwLjQ0MzM3OSIsIFwKLSAgICAgICAgICAiMC4xMTIxNzEsIDAuMTY3NTIxLCAwLjIyMTUwMywgMC4yNjAwNjUsIDAuMzIxNzIxLCAwLjM3NTY5MSwgMC40NTI4ODgiLCBcCi0gICAgICAgICAgIjAuMTE5MzgxLCAwLjE3NDczMSwgMC4yMjg2OTcsIDAuMjY3MjU1LCAwLjMyODk0NSwgMC4zODI4OCwgMC40NTk4NiIsIFwKLSAgICAgICAgICAiMC4xMjQ5ODEsIDAuMTgwMzI3LCAwLjIzNDMxLCAwLjI3Mjg3OSwgMC4zMzQ1MDEsIDAuMzg4NDc2LCAwLjQ2NTQ0NSIsIFwKLSAgICAgICAgICAiMC4xMzI1NjYsIDAuMTg3ODc5LCAwLjI0MTg3NCwgMC4yODA1MDEsIDAuMzQyMTM4LCAwLjM5NjA0MywgMC40NzMzMjIiLCBcCi0gICAgICAgICAgIjAuMTM4MjE2LCAwLjE5MzU2MywgMC4yNDc1MTgsIDAuMjg1OTA4LCAwLjM0NzM2NywgMC40MDE4MTcsIDAuNDc4ODc5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDI1MTc5LCAwLjEzNDU4NCwgMC4yNDUzMTIsIDAuMzI0MDA0LCAwLjQ1MjQ4MiwgMC41NjQ3NDEsIDAuNzI1MTczIiwgXAotICAgICAgICAgICIwLjAyNTE3LCAwLjEzNDU4NiwgMC4yNDUyOTMsIDAuMzI1MjQ4LCAwLjQ1MjQ3OSwgMC41NjQ3NDEsIDAuNzI0ODU4IiwgXAotICAgICAgICAgICIwLjAyNTMwMiwgMC4xMzQ1OTEsIDAuMjQ1NDM0LCAwLjMyNDI5MSwgMC40NTI0MTUsIDAuNTY0NzMyLCAwLjcyNTI1MSIsIFwKLSAgICAgICAgICAiMC4wMjUyNiwgMC4xMzQ1OSwgMC4yNDUzNTksIDAuMzI0MjczLCAwLjQ1MjQxOCwgMC41NjQ3MzcsIDAuNzI1MTY5IiwgXAotICAgICAgICAgICIwLjAyNTI1NiwgMC4xMzQ2MDYsIDAuMjQ0OTQ4LCAwLjMyNTE0NCwgMC40NTE5NjksIDAuNTY0NzMyLCAwLjcyNTE3NSIsIFwKLSAgICAgICAgICAiMC4wMjUyNTQsIDAuMTM0NTksIDAuMjQ1NTU0LCAwLjMyNDk0OCwgMC40NTMxMTMsIDAuNTY0ODU1LCAwLjcyNTI0IiwgXAotICAgICAgICAgICIwLjAyNTE5NCwgMC4xMzQ0OTQsIDAuMjQ0NjI2LCAwLjMyNTI3NywgMC40NTMwODksIDAuNTY0NzI1LCAwLjcyNTIxNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcHJlc2V0OwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3NzczNiwgMC4xMzI2ODUsIDAuMTg2NjgyLCAwLjIyNTE2OCwgMC4yODcxMDYsIDAuMzQwOTIxLCAwLjQxNzgzNSIsIFwKLSAgICAgICAgICAiMC4wODQ0MDYsIDAuMTM5Mzg0LCAwLjE5MzIzNSwgMC4yMzIyMDQsIDAuMjkzNTIyLCAwLjM0NzI5LCAwLjQyNDcwNSIsIFwKLSAgICAgICAgICAiMC4wOTM0MjIsIDAuMTQ4MzYsIDAuMjAyMzEsIDAuMjQxMjUxLCAwLjMwMjM0MiwgMC4zNTYzMTgsIDAuNDMzNjA4IiwgXAotICAgICAgICAgICIwLjEwMjAyMywgMC4xNTY5ODQsIDAuMjEwOTkzLCAwLjI0OTcxOSwgMC4zMTA5MTIsIDAuMzY1MzQ1LCAwLjQ0MjE4NSIsIFwKLSAgICAgICAgICAiMC4xMDkyMjcsIDAuMTY0MjIsIDAuMjE4MjcsIDAuMjU3MTA2LCAwLjMxODM5NCwgMC4zNzI0ODgsIDAuNDQ5Mzk2IiwgXAotICAgICAgICAgICIwLjExODgyMiwgMC4xNzM4LCAwLjIyNzk4OCwgMC4yNjY1MTgsIDAuMzI4NDAyLCAwLjM4MjA4MSwgMC40NTkwMiIsIFwKLSAgICAgICAgICAiMC4xMjU3NzIsIDAuMTgwNjk4LCAwLjIzNDk4OSwgMC4yNzMxNDIsIDAuMzM1MDU5LCAwLjM4ODkwOSwgMC40NjU1OSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyNTE5OCwgMC4xMzU1ODcsIDAuMjQ4MjIxLCAwLjMyOTQ3OSwgMC40NTk0MDYsIDAuNTczMDI0LCAwLjczNTI4MyIsIFwKLSAgICAgICAgICAiMC4wMjUzMDUsIDAuMTM1NzI3LCAwLjI0ODI0LCAwLjMyODk5OSwgMC40NTk0NTgsIDAuNTcyODI3LCAwLjczNDY5MyIsIFwKLSAgICAgICAgICAiMC4wMjUzMSwgMC4xMzU1MzMsIDAuMjQ4MjExLCAwLjMyOTUwNiwgMC40NTk0NjcsIDAuNTczMDE5LCAwLjczNTMxMiIsIFwKLSAgICAgICAgICAiMC4wMjUyMjcsIDAuMTM1NDczLCAwLjI0ODIyNiwgMC4zMjk1OSwgMC40NTk0NzUsIDAuNTcyNjM3LCAwLjczNTI4IiwgXAotICAgICAgICAgICIwLjAyNTM2OCwgMC4xMzU3NSwgMC4yNDgyMTcsIDAuMzI5NTkyLCAwLjQ1ODk1NiwgMC41NzI5ODgsIDAuNzM1MjU4IiwgXAotICAgICAgICAgICIwLjAyNTYxMywgMC4xMzU3NCwgMC4yNDgyNjgsIDAuMzI5NTc3LCAwLjQ1ODkwMywgMC41NzI5NDQsIDAuNzM1MTY5IiwgXAotICAgICAgICAgICIwLjAyNTg3NywgMC4xMzU1OTIsIDAuMjQ4MjI5LCAwLjMyODk3NywgMC40NTk0ODgsIDAuNTcyOTM4LCAwLjczNTExNyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwOTgzLCAwLjAxMDAxNywgMC4wMTAwNDYsIDAuMDEwMDU0LCAwLjAxMDA2MywgMC4wMTAwNjcsIDAuMDEwMDciLCBcCi0gICAgICAgICAgIjAuMDA5ODI0LCAwLjAxMDAwNiwgMC4wMTAwMzYsIDAuMDEwMDQ0LCAwLjAxMDA1NCwgMC4wMTAwNTcsIDAuMDEwMDYiLCBcCi0gICAgICAgICAgIjAuMDA5ODY3LCAwLjAxMDA1MywgMC4wMTAwODIsIDAuMDEwMDkxLCAwLjAxMDEsIDAuMDEwMTAzLCAwLjAxMDEwNiIsIFwKLSAgICAgICAgICAiMC4wMDk5MDQsIDAuMDEwMDkzLCAwLjAxMDEyMywgMC4wMTAxMywgMC4wMTAxMzksIDAuMDEwMTQzLCAwLjAxMDE0NiIsIFwKLSAgICAgICAgICAiMC4wMDk5NywgMC4wMTAxNTgsIDAuMDEwMTg5LCAwLjAxMDE5OCwgMC4wMTAyMDYsIDAuMDEwMjA5LCAwLjAxMDIxMyIsIFwKLSAgICAgICAgICAiMC4wMTAwOTYsIDAuMDEwMjc4LCAwLjAxMDI5OSwgMC4wMTAzMDgsIDAuMDEwMzI1LCAwLjAxMDMyOCwgMC4wMTAzMjQiLCBcCi0gICAgICAgICAgIjAuMDEwMTY2LCAwLjAxMDM1NywgMC4wMTAzODUsIDAuMDEwMzk0LCAwLjAxMDQwMywgMC4wMTA0MDUsIDAuMDEwNDEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwOTUwNSwgMC4wMDk3MDIsIDAuMDA5NzM2LCAwLjAwOTc0NywgMC4wMDk3NTcsIDAuMDA5NzYxLCAwLjAwOTc2NyIsIFwKLSAgICAgICAgICAiMC4wMDk1MDMsIDAuMDA5NywgMC4wMDk3MzMsIDAuMDA5NzQ0LCAwLjAwOTc1NSwgMC4wMDk3NTksIDAuMDA5NzY0IiwgXAotICAgICAgICAgICIwLjAwOTU1OCwgMC4wMDk3NTQsIDAuMDA5Nzg4LCAwLjAwOTc5OSwgMC4wMDk4MDgsIDAuMDA5ODEzLCAwLjAwOTgxNyIsIFwKLSAgICAgICAgICAiMC4wMDk2MTUsIDAuMDA5ODEyLCAwLjAwOTg0NiwgMC4wMDk4NTcsIDAuMDA5ODY2LCAwLjAwOTg3MSwgMC4wMDk4NzUiLCBcCi0gICAgICAgICAgIjAuMDA5NjgyLCAwLjAwOTg4MSwgMC4wMDk5MTQsIDAuMDA5OTI3LCAwLjAwOTkzMywgMC4wMDk5MzksIDAuMDA5OTQyIiwgXAotICAgICAgICAgICIwLjAwOTgwMywgMC4wMTAwMDYsIDAuMDEwMDQxLCAwLjAxMDA1MiwgMC4wMTAwNjIsIDAuMDEwMDY3LCAwLjAxMDA3MSIsIFwKLSAgICAgICAgICAiMC4wMDk4OTksIDAuMDEwMDkxLCAwLjAxMDEyNSwgMC4wMTAxMzUsIDAuMDEwMTQ2LCAwLjAxMDE1MSwgMC4wMTAxNTYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDk5ODUsIDAuMDEwMTcyLCAwLjAxMDIwMiwgMC4wMTAyMTIsIDAuMDEwMjIxLCAwLjAxMDIyNCwgMC4wMTAyMjgiLCBcCi0gICAgICAgICAgIjAuMDA5OTgsIDAuMDEwMTY0LCAwLjAxMDE5NCwgMC4wMTAyMDMsIDAuMDEwMjExLCAwLjAxMDIxNywgMC4wMTAyMTkiLCBcCi0gICAgICAgICAgIjAuMDA5OTg5LCAwLjAxMDE3NSwgMC4wMTAyMDUsIDAuMDEwMjE1LCAwLjAxMDIyMywgMC4wMTAyMjcsIDAuMDEwMjMxIiwgXAotICAgICAgICAgICIwLjAxMDAxNywgMC4wMTAyMDgsIDAuMDEwMjM4LCAwLjAxMDI0OSwgMC4wMTAyNTgsIDAuMDEwMjYyLCAwLjAxMDI2NiIsIFwKLSAgICAgICAgICAiMC4wMTAwNzUsIDAuMDEwMjYyLCAwLjAxMDI5MywgMC4wMTAzMDMsIDAuMDEwMzEzLCAwLjAxMDMxNywgMC4wMTAzMjIiLCBcCi0gICAgICAgICAgIjAuMDEwMTc0LCAwLjAxMDM1NSwgMC4wMTAzOSwgMC4wMTA0LCAwLjAxMDQwOSwgMC4wMTA0MTMsIDAuMDEwNDE4IiwgXAotICAgICAgICAgICIwLjAxMDI2MywgMC4wMTA0NDIsIDAuMDEwNDcyLCAwLjAxMDQ4MiwgMC4wMTA0OTIsIDAuMDEwNDk1LCAwLjAxMDUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoc2NhbGFyKSB7Ci0gICAgICAgIHZhbHVlcygiMCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUU4pICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMS4zNDYxODsKLSAgICBmdW5jdGlvbiA6ICJRQklOVCI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3NlbnNlIDogbm9uX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiByaXNpbmdfZWRnZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTMwMzMsIDAuMTY4NjEzLCAwLjIyMzkwOSwgMC4yNjM0MTcsIDAuMzI2NjYzLCAwLjM4MTk5NCwgMC40NjA5ODUiLCBcCi0gICAgICAgICAgIjAuMTIxMjIyLCAwLjE3NjgwMSwgMC4yMzIwOTYsIDAuMjcxNiwgMC4zMzQ4NSwgMC4zOTAxNzksIDAuNDY5MTc1IiwgXAotICAgICAgICAgICIwLjEzMDE2NiwgMC4xODU3MTgsIDAuMjQxMDE1LCAwLjI4MDUzMywgMC4zNDM3NTMsIDAuMzk5MDg2LCAwLjQ3ODE3NSIsIFwKLSAgICAgICAgICAiMC4xMzc0MTMsIDAuMTkyOTI3LCAwLjI0ODIyMiwgMC4yODc3MzgsIDAuMzUwOTYzLCAwLjQwNjI5LCAwLjQ4NTMyMyIsIFwKLSAgICAgICAgICAiMC4xNDI5NjcsIDAuMTk4NTUsIDAuMjUzODQyLCAwLjI5MzM1NSwgMC4zNTY1NzksIDAuNDExOTEsIDAuNDkwOTQiLCBcCi0gICAgICAgICAgIjAuMTUwNTM2LCAwLjIwNjA4MSwgMC4yNjEzNDMsIDAuMzAwODczLCAwLjM2NDEwNiwgMC40MTk0MTIsIDAuNDk4NTI3IiwgXAotICAgICAgICAgICIwLjE1NjI0MiwgMC4yMTE3OTUsIDAuMjY3MDk5LCAwLjMwNjU5NCwgMC4zNjk4MDksIDAuNDI1MTc4LCAwLjUwNDIzOCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyNDYxMywgMC4xMzc1MiwgMC4yNTMxMjMsIDAuMzM1NjA0LCAwLjQ2ODgwOCwgMC41ODQ5NzMsIDAuNzUwNTI3IiwgXAotICAgICAgICAgICIwLjAyNDYxMywgMC4xMzc1MiwgMC4yNTMxMiwgMC4zMzU4NTYsIDAuNDY4ODEsIDAuNTg0OTcxLCAwLjc0OTY5NCIsIFwKLSAgICAgICAgICAiMC4wMjQ2MDcsIDAuMTM3NTI0LCAwLjI1MzE0MywgMC4zMzYwOCwgMC40Njg4NjQsIDAuNTg0OTc2LCAwLjc1MDcwNCIsIFwKLSAgICAgICAgICAiMC4wMjQ2MDgsIDAuMTM3NTI0LCAwLjI1MzEyOSwgMC4zMzYwODEsIDAuNDY4ODU5LCAwLjU4NDk2NiwgMC43NTA2OTYiLCBcCi0gICAgICAgICAgIjAuMDI0NiwgMC4xMzc1MjEsIDAuMjUyODI1LCAwLjMzNTY5MSwgMC40Njc4NTksIDAuNTg0OTY3LCAwLjc1MDY3MSIsIFwKLSAgICAgICAgICAiMC4wMjQ1NzQsIDAuMTM3NTI4LCAwLjI1MzE1NywgMC4zMzYxMDgsIDAuNDY4ODgsIDAuNTg0OTY5LCAwLjc1MDY5MSIsIFwKLSAgICAgICAgICAiMC4wMjQ2MDcsIDAuMTM3NTIxLCAwLjI1MzA3MSwgMC4zMzU4NTUsIDAuNDY4MzIyLCAwLjU4NDk2NywgMC43NTA2NzYiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDExOTYsIDAuMTU1Njg3LCAwLjIwOTc4NSwgMC4yNDg0NDIsIDAuMzEwMjgsIDAuMzY0Mzg2LCAwLjQ0MTczNSIsIFwKLSAgICAgICAgICAiMC4xMDkzNjcsIDAuMTYzODM2LCAwLjIxNzkzOCwgMC4yNTY2MTQsIDAuMzE4NDM0LCAwLjM3MjU1NSwgMC40NDk5NTkiLCBcCi0gICAgICAgICAgIjAuMTE4MjE2LCAwLjE3MjY4NywgMC4yMjY3OSwgMC4yNjU0NTIsIDAuMzI3Mjk3LCAwLjM4MTQwOCwgMC40NTg3MTkiLCBcCi0gICAgICAgICAgIjAuMTI1MzIyLCAwLjE3OTc4OCwgMC4yMzM4OTEsIDAuMjcyNTM5LCAwLjMzNDM4MSwgMC4zODg1MTIsIDAuNDY1ODU0IiwgXAotICAgICAgICAgICIwLjEzMDkzNSwgMC4xODU0MTIsIDAuMjM5NTM2LCAwLjI3ODE5NSwgMC4zNDAwMiwgMC4zOTQxNDEsIDAuNDcxNTM3IiwgXAotICAgICAgICAgICIwLjEzODU0NywgMC4xOTMwMTUsIDAuMjQ3MTI4LCAwLjI4NTc5OCwgMC4zNDc2NCwgMC40MDE3MjUsIDAuNDc5MTMxIiwgXAotICAgICAgICAgICIwLjE0NDI3NSwgMC4xOTg3NTYsIDAuMjUyODY0LCAwLjI5MTUwNywgMC4zNTMzNDMsIDAuNDA3NDU3LCAwLjQ4NDc5NCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyMzgyOSwgMC4xMzMzMzgsIDAuMjQ1MzQyLCAwLjMyNTM2NSwgMC40NTQyOTcsIDAuNTY2NjQ5LCAwLjcyNjUxNyIsIFwKLSAgICAgICAgICAiMC4wMjM4NTcsIDAuMTMzMzQ0LCAwLjI0NTM4NiwgMC4zMjUzNjksIDAuNDU0Mjk2LCAwLjU2NjI0NywgMC43MjYzIiwgXAotICAgICAgICAgICIwLjAyMzgzLCAwLjEzMzMzOSwgMC4yNDUzNTMsIDAuMzI1MjI2LCAwLjQ1MzUwNSwgMC41NjY3NTQsIDAuNzI2NTUiLCBcCi0gICAgICAgICAgIjAuMDIzODM5LCAwLjEzMzM1LCAwLjI0NTQ4LCAwLjMyNTU2NywgMC40NTQyNDgsIDAuNTY2MjMyLCAwLjcyNjQ5NSIsIFwKLSAgICAgICAgICAiMC4wMjM4NCwgMC4xMzM0NDYsIDAuMjQ1NDgsIDAuMzI1NzksIDAuNDU0MjkyLCAwLjU2NjI5NCwgMC43MjY0MzUiLCBcCi0gICAgICAgICAgIjAuMDIzODk2LCAwLjEzMzQ0LCAwLjI0NTI5OSwgMC4zMjU3NDcsIDAuNDU0MjQ3LCAwLjU2NjE4NiwgMC43MjY0MjQiLCBcCi0gICAgICAgICAgIjAuMDIzODI5LCAwLjEzMzM3OSwgMC4yNDUzMzIsIDAuMzI1NTIsIDAuNDU0MjYzLCAwLjU2NjE2MSwgMC43MjY0ODgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiU04iOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGNsZWFyOwotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5NjQ5NywgMC4xNTEwMjQsIDAuMjA1MTI3LCAwLjI0Mzc3MywgMC4zMDU2NTEsIDAuMzU5NzUzLCAwLjQzNzA0OSIsIFwKLSAgICAgICAgICAiMC4xMDMxOTEsIDAuMTU3Njg2LCAwLjIxMTc2MSwgMC4yNTA0NzIsIDAuMzEyMjk0LCAwLjM2NjQyMywgMC40NDM3NjMiLCBcCi0gICAgICAgICAgIjAuMTEyMTgzLCAwLjE2NjcwMiwgMC4yMjA4MDQsIDAuMjU5NSwgMC4zMjEzMiwgMC4zNzUzNjksIDAuNDUyNzU5IiwgXAotICAgICAgICAgICIwLjEyMDc5MSwgMC4xNzUzMDQsIDAuMjI5NDEsIDAuMjY4MDgxLCAwLjMyOTkyNCwgMC4zODQwNzMsIDAuNDYxMzUzIiwgXAotICAgICAgICAgICIwLjEyODAyNCwgMC4xODI1MzEsIDAuMjM2NjQ0LCAwLjI3NTMzNSwgMC4zMzcxNjksIDAuMzkxMjg1LCAwLjQ2ODU3OSIsIFwKLSAgICAgICAgICAiMC4xMzc1OTksIDAuMTkyMTIsIDAuMjQ2MjM3LCAwLjI4NDg5NywgMC4zNDY3OTMsIDAuNDAwODY3LCAwLjQ3ODE2OSIsIFwKLSAgICAgICAgICAiMC4xNDQ1NCwgMC4xOTkwNTEsIDAuMjUzMTc4LCAwLjI5MTgxMywgMC4zNTM2NjYsIDAuNDA3Nzc0LCAwLjQ4NTEwOSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyMzg2NSwgMC4xMzMzMTksIDAuMjQ1NDc5LCAwLjMyNTcyMywgMC40NTQyNzYsIDAuNTY2NzU5LCAwLjcyNzM0IiwgXAotICAgICAgICAgICIwLjAyMzg2MiwgMC4xMzM0MzcsIDAuMjQ1NDg3LCAwLjMyNTUxNywgMC40NTQzMSwgMC41NjY2MTgsIDAuNzI2NzI1IiwgXAotICAgICAgICAgICIwLjAyMzg3MSwgMC4xMzMzNCwgMC4yNDU0NzUsIDAuMzI1Mjc2LCAwLjQ1NDMzMiwgMC41NjY3NTIsIDAuNzI3MzY2IiwgXAotICAgICAgICAgICIwLjAyMzg3MywgMC4xMzMzNDgsIDAuMjQ1NTY1LCAwLjMyNTg2MywgMC40NTQzMTQsIDAuNTY2NDk3LCAwLjcyNzMzMyIsIFwKLSAgICAgICAgICAiMC4wMjM4NTUsIDAuMTMzNDQzLCAwLjI0NTU4LCAwLjMyNTg2NCwgMC40NTM4ODUsIDAuNTY2NzM2LCAwLjcyNzMxOCIsIFwKLSAgICAgICAgICAiMC4wMjQwMiwgMC4xMzM0MywgMC4yNDU1NTksIDAuMzI1ODE0LCAwLjQ1MzgwOCwgMC41NjY2NjYsIDAuNzI3MjA2IiwgXAotICAgICAgICAgICIwLjAyMzg3NiwgMC4xMzM0MDIsIDAuMjQ1NTQ4LCAwLjMyNTUzNiwgMC40NTQzMSwgMC41NjY2MzIsIDAuNzI3MjIyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA5NTA1LCAwLjAwOTcwMiwgMC4wMDk3MzYsIDAuMDA5NzQ3LCAwLjAwOTc1NywgMC4wMDk3NjEsIDAuMDA5NzY3IiwgXAotICAgICAgICAgICIwLjAwOTUwMywgMC4wMDk3LCAwLjAwOTczMywgMC4wMDk3NDQsIDAuMDA5NzU1LCAwLjAwOTc1OSwgMC4wMDk3NjQiLCBcCi0gICAgICAgICAgIjAuMDA5NTU4LCAwLjAwOTc1NCwgMC4wMDk3ODgsIDAuMDA5Nzk5LCAwLjAwOTgwOCwgMC4wMDk4MTMsIDAuMDA5ODE3IiwgXAotICAgICAgICAgICIwLjAwOTYxNSwgMC4wMDk4MTIsIDAuMDA5ODQ2LCAwLjAwOTg1NywgMC4wMDk4NjYsIDAuMDA5ODcxLCAwLjAwOTg3NSIsIFwKLSAgICAgICAgICAiMC4wMDk2ODIsIDAuMDA5ODgxLCAwLjAwOTkxNCwgMC4wMDk5MjcsIDAuMDA5OTMzLCAwLjAwOTkzOSwgMC4wMDk5NDIiLCBcCi0gICAgICAgICAgIjAuMDA5ODAzLCAwLjAxMDAwNiwgMC4wMTAwNDEsIDAuMDEwMDUyLCAwLjAxMDA2MiwgMC4wMTAwNjcsIDAuMDEwMDcxIiwgXAotICAgICAgICAgICIwLjAwOTg5OSwgMC4wMTAwOTEsIDAuMDEwMTI1LCAwLjAxMDEzNSwgMC4wMTAxNDYsIDAuMDEwMTUxLCAwLjAxMDE1NiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA5ODMsIDAuMDEwMDE3LCAwLjAxMDA0NiwgMC4wMTAwNTQsIDAuMDEwMDYzLCAwLjAxMDA2NywgMC4wMTAwNyIsIFwKLSAgICAgICAgICAiMC4wMDk4MjQsIDAuMDEwMDA2LCAwLjAxMDAzNiwgMC4wMTAwNDQsIDAuMDEwMDU0LCAwLjAxMDA1NywgMC4wMTAwNiIsIFwKLSAgICAgICAgICAiMC4wMDk4NjcsIDAuMDEwMDUzLCAwLjAxMDA4MiwgMC4wMTAwOTEsIDAuMDEwMSwgMC4wMTAxMDMsIDAuMDEwMTA2IiwgXAotICAgICAgICAgICIwLjAwOTkwNCwgMC4wMTAwOTMsIDAuMDEwMTIzLCAwLjAxMDEzLCAwLjAxMDEzOSwgMC4wMTAxNDMsIDAuMDEwMTQ2IiwgXAotICAgICAgICAgICIwLjAwOTk3LCAwLjAxMDE1OCwgMC4wMTAxODksIDAuMDEwMTk4LCAwLjAxMDIwNiwgMC4wMTAyMDksIDAuMDEwMjEzIiwgXAotICAgICAgICAgICIwLjAxMDA5NiwgMC4wMTAyNzgsIDAuMDEwMjk5LCAwLjAxMDMwOCwgMC4wMTAzMjUsIDAuMDEwMzI4LCAwLjAxMDMyNCIsIFwKLSAgICAgICAgICAiMC4wMTAxNjYsIDAuMDEwMzU3LCAwLjAxMDM4NSwgMC4wMTAzOTQsIDAuMDEwNDAzLCAwLjAxMDQwNSwgMC4wMTA0MSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwOTk4NSwgMC4wMTAxNzIsIDAuMDEwMjAyLCAwLjAxMDIxMiwgMC4wMTAyMjEsIDAuMDEwMjI0LCAwLjAxMDIyOCIsIFwKLSAgICAgICAgICAiMC4wMDk5OCwgMC4wMTAxNjQsIDAuMDEwMTk0LCAwLjAxMDIwMywgMC4wMTAyMTEsIDAuMDEwMjE3LCAwLjAxMDIxOSIsIFwKLSAgICAgICAgICAiMC4wMDk5ODksIDAuMDEwMTc1LCAwLjAxMDIwNSwgMC4wMTAyMTUsIDAuMDEwMjIzLCAwLjAxMDIyNywgMC4wMTAyMzEiLCBcCi0gICAgICAgICAgIjAuMDEwMDE3LCAwLjAxMDIwOCwgMC4wMTAyMzgsIDAuMDEwMjQ5LCAwLjAxMDI1OCwgMC4wMTAyNjIsIDAuMDEwMjY2IiwgXAotICAgICAgICAgICIwLjAxMDA3NSwgMC4wMTAyNjIsIDAuMDEwMjkzLCAwLjAxMDMwMywgMC4wMTAzMTMsIDAuMDEwMzE3LCAwLjAxMDMyMiIsIFwKLSAgICAgICAgICAiMC4wMTAxNzQsIDAuMDEwMzU1LCAwLjAxMDM5LCAwLjAxMDQsIDAuMDEwNDA5LCAwLjAxMDQxMywgMC4wMTA0MTgiLCBcCi0gICAgICAgICAgIjAuMDEwMjYzLCAwLjAxMDQ0MiwgMC4wMTA0NzIsIDAuMDEwNDgyLCAwLjAxMDQ5MiwgMC4wMTA0OTUsIDAuMDEwNSIpOwotICAgICAgfQotICAgICAgcmlzZV9wb3dlcihzY2FsYXIpIHsKLSAgICAgICAgdmFsdWVzKCIwIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTRSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNDQ3OTg7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNDQ3NzQ7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNDQ3OTg7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA1NDc0LCAwLjAwNTQ5MywgMC4wMDU1NzgsIDAuMDA1Njk0LCAwLjAwNTg0NywgMC4wMDYwNzIsIDAuMDA2MjcyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA3MjQsIDAuMDA3MjY4LCAwLjAwNzM4OCwgMC4wMDc1NTYsIDAuMDA3NzcyLCAwLjAwODE0NiwgMC4wMDg0ODEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiU04iOwotICAgICAgc2RmX2NvbmQgOiAiU04gPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDE4NzUsIC0wLjAwNzUsIC0wLjAwMTI1LCAwLjAwNSwgMC4wMDUsIDAuMDE1LCAwLjAxNzUiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAsIDAuMDAzNzUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAyNSwgLTAuMDEyNSwgLTAuMDEyNSwgLTAuMDA2MjUsIC0wLjAwMjUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMTI1LCAtMC4wMDI1LCAwIiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwODc1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDQsIC0wLjAzNSwgLTAuMDI4NzUsIC0wLjAyMjUsIC0wLjAxNjI1LCAtMC4wMTI1LCAtMC4wMSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxNSwgLTAuMDEyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAwNjI1LCAtMC4wMDEyNSwgMC4wMDUsIDAuMDExMjUsIDAuMDE3NSwgMC4wMjEyNSwgMC4wMjM3NSIsIFwKLSAgICAgICAgICAiLTAuMDE3NSwgLTAuMDA2MjUsIDAsIDAuMDA2MjUsIDAuMDA2MjUsIDAuMDE2MjUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTg3NSwgLTAuMDA2MjUsIC0wLjAwNjI1LCAwLCAwLjAwMzc1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgLTAuMDAyNSwgMCIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDg3NSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA0LCAtMC4wMzUsIC0wLjAyODc1LCAtMC4wMjg3NSwgLTAuMDIyNSwgLTAuMDE4NzUsIC0wLjAxIiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzc1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDMxMjUsIC0wLjAyMTI1LCAtMC4wMTg3NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiU04iOwotICAgICAgc2RmX2NvbmQgOiAiU04gPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY4NzUsIDAuMDU3NSwgMC4wNTEyNSwgMC4wNDUsIDAuMDM4NzUsIDAuMDI4NzUsIDAuMDI2MjUiLCBcCi0gICAgICAgICAgIjAuMDczNzUsIDAuMDY4NzUsIDAuMDU2MjUsIDAuMDUsIDAuMDQzNzUsIDAuMDQsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMDgsIDAuMDc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDUsIDAuMDQ2MjUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMDg2MjUsIDAuMDc1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDYyNSwgMC4wNTI1LCAwLjA1IiwgXAotICAgICAgICAgICIwLjA5MjUsIDAuMDgxMjUsIDAuMDc1LCAwLjA2ODc1LCAwLjA2ODc1LCAwLjA2NSwgMC4wNjI1IiwgXAotICAgICAgICAgICIwLjEwMjUsIDAuMDkxMjUsIDAuMDg1LCAwLjA3ODc1LCAwLjA3ODc1LCAwLjA3NSwgMC4wNzI1IiwgXAotICAgICAgICAgICIwLjExMTI1LCAwLjEsIDAuMDkzNzUsIDAuMDg3NSwgMC4wODc1LCAwLjA4Mzc1LCAwLjA4MTI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY4NzUsIDAuMDU3NSwgMC4wNTEyNSwgMC4wNDUsIDAuMDQ1LCAwLjA0MTI1LCAwLjAzODc1IiwgXAotICAgICAgICAgICIwLjA3Mzc1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDUsIDAuMDQ2MjUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMDgsIDAuMDc1LCAwLjA2MjUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNTI1LCAwLjA1IiwgXAotICAgICAgICAgICIwLjA4NjI1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA2MjUsIDAuMDU4NzUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIjAuMDkyNSwgMC4wODEyNSwgMC4wNzUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNTg3NSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiMC4xMDI1LCAwLjA5MTI1LCAwLjA4NSwgMC4wNzg3NSwgMC4wNzI1LCAwLjA2MjUsIDAuMDYiLCBcCi0gICAgICAgICAgIjAuMTExMjUsIDAuMSwgMC4wOTM3NSwgMC4wODc1LCAwLjA4MTI1LCAwLjA3MTI1LCAwLjA2ODc1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTSSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjYzMTc3OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDY2MjA3MjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2NjMxNzc7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzNTkzLCAwLjAwMzU3MiwgMC4wMDM1OTYsIDAuMDAzNjMyLCAwLjAwMzcwNiwgMC4wMDM4MTQsIDAuMDAzOTI5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA2MDAzLCAwLjAwNTk4NywgMC4wMDYwMDQsIDAuMDA2MDQ2LCAwLjAwNjEsIDAuMDA2MjEsIDAuMDA2MzI0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlNFJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIlNFX0VRXzFfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMzEyNSwgLTAuMDI2MjUsIC0wLjAyLCAtMC4wMiwgLTAuMDEzNzUsIC0wLjAxLCAtMC4wMDc1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDIxMjUsIC0wLjAxODc1IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzc1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDMxMjUsIC0wLjAyNzUsIC0wLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjA0Mzc1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDM3NSwgLTAuMDMzNzUsIC0wLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjA0Mzc1LCAtMC4wNCwgLTAuMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDY1LCAtMC4wNiwgLTAuMDUzNzUsIC0wLjA1Mzc1LCAtMC4wNTM3NSwgLTAuMDUsIC0wLjA0NzUiLCBcCi0gICAgICAgICAgIi0wLjA2NzUsIC0wLjA2MjUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNTYyNSwgLTAuMDUyNSwgLTAuMDUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMTI1LCAtMC4wMDEyNSwgMC4wMDUsIDAuMDA1LCAwLjAxMTI1LCAwLjAxNSwgMC4wMjM3NSIsIFwKLSAgICAgICAgICAiLTAuMDE3NSwgLTAuMDEyNSwgMCwgMCwgMC4wMDYyNSwgMC4wMSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMCwgMC4wMDM3NSwgMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDI1LCAtMC4wMTI1LCAtMC4wMTI1LCAtMC4wMDYyNSwgLTAuMDAyNSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAxMjUsIC0wLjAwMjUsIDAiLCBcCi0gICAgICAgICAgIi0wLjA0LCAtMC4wMzUsIC0wLjAyODc1LCAtMC4wMjI1LCAtMC4wMTYyNSwgLTAuMDEyNSwgLTAuMDEiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAyNSwgLTAuMDE1LCAtMC4wMTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJTRSZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJTRV9FUV8xX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDYyNSwgMC4wNTEyNSwgMC4wNDUsIDAuMDM4NzUsIDAuMDM4NzUsIDAuMDM1LCAwLjAzMjUiLCBcCi0gICAgICAgICAgIjAuMDY3NSwgMC4wNTYyNSwgMC4wNSwgMC4wNSwgMC4wNDM3NSwgMC4wNCwgMC4wMzc1IiwgXAotICAgICAgICAgICIwLjA3Mzc1LCAwLjA2ODc1LCAwLjA1NjI1LCAwLjA1NjI1LCAwLjA1LCAwLjA0NjI1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjA4LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1MjUsIDAuMDUiLCBcCi0gICAgICAgICAgIjAuMDg2MjUsIDAuMDgxMjUsIDAuMDc1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDU4NzUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIjAuMDk2MjUsIDAuMDkxMjUsIDAuMDg1LCAwLjA3ODc1LCAwLjA3MjUsIDAuMDY4NzUsIDAuMDY2MjUiLCBcCi0gICAgICAgICAgIjAuMTA1LCAwLjA5Mzc1LCAwLjA4NzUsIDAuMDgxMjUsIDAuMDgxMjUsIDAuMDc3NSwgMC4wNzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjI1LCAwLjA1MTI1LCAwLjA0NSwgMC4wMzg3NSwgMC4wMzI1LCAwLjAyODc1LCAwLjAyIiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDYyNSwgMC4wNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzMzc1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiMC4wNzM3NSwgMC4wNjg3NSwgMC4wNTYyNSwgMC4wNSwgMC4wNDM3NSwgMC4wNCwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4wOCwgMC4wNzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNSwgMC4wNDYyNSwgMC4wMzc1IiwgXAotICAgICAgICAgICIwLjA4NjI1LCAwLjA4MTI1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDUyNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4wOTYyNSwgMC4wODUsIDAuMDc4NzUsIDAuMDcyNSwgMC4wNjYyNSwgMC4wNTYyNSwgMC4wNTM3NSIsIFwKLSAgICAgICAgICAiMC4wOTg3NSwgMC4wOTM3NSwgMC4wODEyNSwgMC4wNzUsIDAuMDY4NzUsIDAuMDY1LCAwLjA1NjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTTikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNDk1MTQ7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxMzk0MzM7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNDk1MTQ7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNTkzLCAwLjAwMDU5MywgMC4wMDA1OTIsIDAuMDAwNTkyLCAwLjAwMDU5MiwgMC4wMDA1OTIsIDAuMDAwNTkyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNjEyLCAwLjAwMDYwMiwgMC4wMDA1OTgsIDAuMDAwNTk2LCAwLjAwMDU5NCwgMC4wMDA1OTQsIDAuMDAwNTk0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRCYhU0UmIVNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9TRV9FUV8wX0FOX1NJX0VRXzAgPT0gMSdiMSI7Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wOTY0OTcsIDAuMTAzMTkxLCAwLjExMjE4MywgMC4xMjA3OTEsIDAuMTI4MDI0LCAwLjEzNzU5OSwgMC4xNDQ1NCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJlY292ZXJ5X3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUQmIVNFJiFTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fU0VfRVFfMF9BTl9TSV9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHJlY292ZXJ5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjI1LCAwLjAwMTI1LCAtMC4wMTEyNSwgLTAuMDE3NSwgLTAuMDIzNzUsIC0wLjAzMzc1LCAtMC4wMzYyNSIsIFwKLSAgICAgICAgICAiMC4wMTEyNSwgMC4wMDYyNSwgLTAuMDA2MjUsIC0wLjAxMjUsIC0wLjAxODc1LCAtMC4wMjg3NSwgLTAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMDIzNzUsIDAuMDEyNSwgMCwgLTAuMDA2MjUsIC0wLjAxMjUsIC0wLjAxNjI1LCAtMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMDMsIDAuMDE4NzUsIDAuMDEyNSwgMCwgLTAuMDA2MjUsIC0wLjAxLCAtMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4wMzYyNSwgMC4wMjUsIDAuMDE4NzUsIDAuMDEyNSwgMC4wMDYyNSwgLTAuMDAzNzUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICIwLjA1MjUsIDAuMDQxMjUsIDAuMDI4NzUsIDAuMDIyNSwgMC4wMTYyNSwgMC4wMDYyNSwgMC4wMDM3NSIsIFwKLSAgICAgICAgICAiMC4wNjEyNSwgMC4wNSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMTUsIDAuMDEyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJlbW92YWxfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRCYhU0UmIVNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9TRV9FUV8wX0FOX1NJX0VRXzAgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQocmVtb3ZhbF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTg3NSwgMC4wMjM3NSwgMC4wMzYyNSwgMC4wNDI1LCAwLjA0ODc1LCAwLjA1MjUsIDAuMDYxMjUiLCBcCi0gICAgICAgICAgIjAuMDEzNzUsIDAuMDE4NzUsIDAuMDMxMjUsIDAuMDM3NSwgMC4wNDM3NSwgMC4wNDc1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICIwLjAwMTI1LCAwLjAxMjUsIDAuMDE4NzUsIDAuMDI1LCAwLjAzMTI1LCAwLjA0MTI1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICItMC4wMDUsIDAuMDA2MjUsIDAuMDEyNSwgMC4wMTg3NSwgMC4wMjUsIDAuMDM1LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjAxMTI1LCAwLCAwLjAwNjI1LCAwLjAxMjUsIDAuMDE4NzUsIDAuMDI4NzUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjAxNSwgLTAuMDEsIDAuMDAyNSwgMC4wMDg3NSwgMC4wMTUsIDAuMDE4NzUsIDAuMDI3NSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLCAwLjAwNjI1LCAwLjAxLCAwLjAxODc1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IFRJRUhJICoKLSAqIC0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChUSUVISSkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjA1NzY3MDE7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBmdW5jdGlvbiA6ICIxIjsKLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogVExBVE5DQVgzICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoVExBVE5DQVgzKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuODAzNDM2OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIGNsb2NrX2dhdGluZ19pbnRlZ3JhdGVkX2NlbGwgOiAibGF0Y2hfcG9zZWRnZSI7Ci0gIHN0YXRldGFibGUoIiBDSyAgRSAiLCAiIEVJTlQgIikgewotICAgICB0YWJsZSA6ICIgIEwgIEwgOiAtIDogTCAsIFwKLSAgICAgICAgICAgICAgICBMICBIIDogLSA6IEggLCBcCi0gICAgICAgICAgICAgICAgSCAgLSA6IC0gOiBOICI7Ci0gIH0KLSAgcGluKEVJTlQpIHsKLSAgICBkaXJlY3Rpb24gOiBpbnRlcm5hbDsKLSAgICBpbnRlcm5hbF9ub2RlIDogIkVJTlQiOwotICB9Ci0gIHBpbihDSykgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNTk0MDMyOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDU5NDAzMjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA1OTM4NzY7Ci0gICAgY2xvY2tfZ2F0ZV9jbG9ja19waW4gOiB0cnVlOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzcyNCwgMC4wMDM3MTgsIDAuMDAzNzk4LCAwLjAwMzkwOSwgMC4wMDQwNDgsIDAuMDA0MjcsIDAuMDA0NDY5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzODEzLCAwLjAwMzgxNCwgMC4wMDM4OTgsIDAuMDAzOTkzLCAwLjAwNDEyOSwgMC4wMDQzOTYsIDAuMDA0NTQ0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRSI7Ci0gICAgICBzZGZfY29uZCA6ICJFID09IDEnYjAiOwotICAgICAgZmFsbF9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDY4MTgyLCAwLjA3NTc2NywgMC4wODI5MzcsIDAuMDg3OTc2LCAwLjA5MjA5MiwgMC4wOTc0MTgsIDAuMTAxMzE3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihFKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA3MzQ4NTQ7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNzMzNTQ4OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDczNDg1NDsKLSAgICBjbG9ja19nYXRlX2VuYWJsZV9waW4gOiB0cnVlOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzI0MiwgMC4wMDMyMTQsIDAuMDAzMjQxLCAwLjAwMzI5MSwgMC4wMDMzNjUsIDAuMDAzNTMxLCAwLjAwMzY1MyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzU2MSwgMC4wMDM1NDEsIDAuMDAzNTY3LCAwLjAwMzYyMiwgMC4wMDM2OTEsIDAuMDAzODU3LCAwLjAwMzk4MSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAxODc1LCAtMC4wMTM3NSwgLTAuMDA3NSwgLTAuMDA3NSwgLTAuMDA3NSwgLTAuMDAzNzUsIC0wLjAwMTI1IiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAxMjUsIC0wLjAxMjUsIC0wLjAwODc1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxODc1LCAtMC4wMTg3NSwgLTAuMDE1LCAtMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDIxMjUsIC0wLjAxODc1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDMxMjUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAyNSwgLTAuMDIxMjUsIC0wLjAxODc1IiwgXAotICAgICAgICAgICItMC4wNDYyNSwgLTAuMDQxMjUsIC0wLjAzNSwgLTAuMDM1LCAtMC4wMjg3NSwgLTAuMDMxMjUsIC0wLjAyODc1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzNzUsIC0wLjAzNzUsIC0wLjAzMzc1LCAtMC4wMzEyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAsIDAuMDA1LCAwLjAxNzUsIDAuMDE3NSwgMC4wMjM3NSwgMC4wMjc1LCAwLjAzIiwgXAotICAgICAgICAgICItMC4wMDUsIDAsIDAuMDA2MjUsIDAuMDEyNSwgMC4wMTg3NSwgMC4wMjI1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDExMjUsIC0wLjAwNjI1LCAwLjAwNjI1LCAwLjAwNjI1LCAwLjAxMjUsIDAuMDE2MjUsIDAuMDI1IiwgXAotICAgICAgICAgICItMC4wMTc1LCAtMC4wMDYyNSwgMCwgMC4wMDYyNSwgMC4wMDYyNSwgMC4wMTYyNSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDE3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAsIDAuMDA2MjUsIDAuMDEsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDI3NSwgLTAuMDE2MjUsIC0wLjAxLCAtMC4wMDM3NSwgMC4wMDI1LCAwLjAwNjI1LCAwLjAwODc1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLCAwLjAwMzc1LCAwLjAwNjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyNSwgMC4wMiwgMC4wMTM3NSwgMC4wMTM3NSwgMC4wMTM3NSwgMC4wMSwgMC4wMDc1IiwgXAotICAgICAgICAgICIwLjAzLCAwLjAyNSwgMC4wMTg3NSwgMC4wMTg3NSwgMC4wMTg3NSwgMC4wMTUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4wMzYyNSwgMC4wMzEyNSwgMC4wMjUsIDAuMDI1LCAwLjAyNSwgMC4wMjEyNSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4wNDI1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDMxMjUsIDAuMDI1LCAwLjAyNzUsIDAuMDI1IiwgXAotICAgICAgICAgICIwLjA0MjUsIDAuMDM3NSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAzMTI1LCAwLjAyNzUsIDAuMDI1IiwgXAotICAgICAgICAgICIwLjA1MjUsIDAuMDQ3NSwgMC4wNDEyNSwgMC4wNDEyNSwgMC4wMzUsIDAuMDM3NSwgMC4wMzUiLCBcCi0gICAgICAgICAgIjAuMDU1LCAwLjA1LCAwLjA0Mzc1LCAwLjA0Mzc1LCAwLjA0Mzc1LCAwLjA0LCAwLjAzNzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDYyNSwgMC4wMDEyNSwgLTAuMDExMjUsIC0wLjAxMTI1LCAtMC4wMTc1LCAtMC4wMjEyNSwgLTAuMDIzNzUiLCBcCi0gICAgICAgICAgIjAuMDExMjUsIDAuMDA2MjUsIDAsIC0wLjAwNjI1LCAtMC4wMTI1LCAtMC4wMTYyNSwgLTAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMDE3NSwgMC4wMTI1LCAwLCAwLCAtMC4wMDYyNSwgLTAuMDEsIC0wLjAxODc1IiwgXAotICAgICAgICAgICIwLjAyMzc1LCAwLjAxMjUsIDAuMDA2MjUsIDAsIDAsIC0wLjAxLCAtMC4wMTI1IiwgXAotICAgICAgICAgICIwLjAyMzc1LCAwLjAxODc1LCAwLjAxMjUsIDAuMDA2MjUsIDAsIC0wLjAwMzc1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiMC4wMzM3NSwgMC4wMjI1LCAwLjAxNjI1LCAwLjAxLCAwLjAwMzc1LCAwLCAtMC4wMDI1IiwgXAotICAgICAgICAgICIwLjAzNjI1LCAwLjAyNSwgMC4wMTg3NSwgMC4wMTI1LCAwLjAwNjI1LCAwLjAwMjUsIDAiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEVDSykgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjk5ODUxNzsKLSAgICBjbG9ja19nYXRlX291dF9waW4gOiB0cnVlOwotICAgIHN0YXRlX2Z1bmN0aW9uIDogIihDSyBFSU5UKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc1MTc1LCAwLjE1MDYyNiwgMC4yMjQyOTYsIDAuMjc2OTMzLCAwLjM2MTA4LCAwLjQzNDc2NSwgMC41Mzk4MzkiLCBcCi0gICAgICAgICAgIjAuMDgyOTE5LCAwLjE1ODM5NCwgMC4yMzIwMjIsIDAuMjg0NjA2LCAwLjM2ODg1MywgMC40NDI1NzUsIDAuNTQ3Njk5IiwgXAotICAgICAgICAgICIwLjA5MDMyMiwgMC4xNjU3NzEsIDAuMjM5NDQxLCAwLjI5MjEzOSwgMC4zNzYzMjMsIDAuNDQ5OTk3LCAwLjU1NTE5NSIsIFwKLSAgICAgICAgICAiMC4wOTU1NDYsIDAuMTcwOTQxLCAwLjI0NDYwNiwgMC4yOTcyODgsIDAuMzgxMzkyLCAwLjQ1NTA2LCAwLjU2MDI1OSIsIFwKLSAgICAgICAgICAiMC4xMDAwNzYsIDAuMTc1NDM4LCAwLjI0OTE1MSwgMC4zMDE3MzcsIDAuMzg1ODkxLCAwLjQ1OTYyOSwgMC41NjQ3NjEiLCBcCi0gICAgICAgICAgIjAuMTA1OTUyLCAwLjE4MTM0NSwgMC4yNTUxMzUsIDAuMzA3NzUyLCAwLjM5MTg2OCwgMC40NjU1MTQsIDAuNTcwNjQ2IiwgXAotICAgICAgICAgICIwLjExMDIzOCwgMC4xODU2OTcsIDAuMjU5MzE2LCAwLjMxMjAzMywgMC4zOTYxNTUsIDAuNDY5NzM5LCAwLjU3NTA2NyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzMzIzMywgMC4xODQwODgsIDAuMzM5MjEyLCAwLjQ0OTQ4MywgMC42MjcyNzMsIDAuNzgxOTcsIDEuMDA2MDkiLCBcCi0gICAgICAgICAgIjAuMDMzMjIzLCAwLjE4NDA4NiwgMC4zMzg2NTUsIDAuNDQ5MDY5LCAwLjYyNzM3LCAwLjc4MjMzNSwgMS4wMDYwMyIsIFwKLSAgICAgICAgICAiMC4wMzMyMzUsIDAuMTg0MjIxLCAwLjMzOTE4NiwgMC40NDkzNjksIDAuNjI2ODQ4LCAwLjc4MjQ3MywgMS4wMDQwMyIsIFwKLSAgICAgICAgICAiMC4wMzMyNzEsIDAuMTgzODQ4LCAwLjMzOTE1NiwgMC40NDk0MiwgMC42MjcyNjIsIDAuNzgzNjg5LCAxLjAwNTk4IiwgXAotICAgICAgICAgICIwLjAzMzIzNywgMC4xODQyMDksIDAuMzM4NjcxLCAwLjQ0OTY1LCAwLjYyNzMzMywgMC43ODIzOTcsIDEuMDA1OSIsIFwKLSAgICAgICAgICAiMC4wMzMxODMsIDAuMTg0Mjc5LCAwLjMzODYyMSwgMC40NDk0NjEsIDAuNjI4MDM5LCAwLjc4MjM5MSwgMS4wMDU4OCIsIFwKLSAgICAgICAgICAiMC4wMzMyMjQsIDAuMTg0MDMyLCAwLjMzOTEsIDAuNDQ5NDg1LCAwLjYyNzM2MSwgMC43ODI3NiwgMS4wMDQ0MiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2NTU1NSwgMC4xMzgxNDcsIDAuMjEwMTgzLCAwLjI2MTY0MywgMC4zNDM5NzUsIDAuNDE1OTcyLCAwLjUxODg2NSIsIFwKLSAgICAgICAgICAiMC4wNzMxNjgsIDAuMTQ1NzQzLCAwLjIxNzc3OSwgMC4yNjkyMzgsIDAuMzUxNTcxLCAwLjQyMzU2OSwgMC41MjY0NjMiLCBcCi0gICAgICAgICAgIjAuMDgwMzM4LCAwLjE1Mjk1LCAwLjIyNDk4MSwgMC4yNzY0MzUsIDAuMzU4NzYsIDAuNDMwNzg0LCAwLjUzMzY1NCIsIFwKLSAgICAgICAgICAiMC4wODUzOTUsIDAuMTU3OTksIDAuMjMwMDE2LCAwLjI4MTU0NywgMC4zNjM4NTYsIDAuNDM1Nzk1LCAwLjUzODc1NiIsIFwKLSAgICAgICAgICAiMC4wODk2MDgsIDAuMTYyMTg0LCAwLjIzNDIxLCAwLjI4NTY2MywgMC4zNjc5NzYsIDAuNDQwMDIzLCAwLjU0Mjg5OSIsIFwKLSAgICAgICAgICAiMC4wOTQ5NDUsIDAuMTY3NTQzLCAwLjIzOTU3MywgMC4yOTEwMzYsIDAuMzczMzQ3LCAwLjQ0NTM3LCAwLjU0ODI2NCIsIFwKLSAgICAgICAgICAiMC4wOTg5MzUsIDAuMTcxNDU1LCAwLjI0MzQ2NywgMC4yOTQ5NzQsIDAuMzc3MzA0LCAwLjQ0OTM0NCwgMC41NTIyMDkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjg0ODcsIDAuMTc1NjcyLCAwLjMyNTEzNSwgMC40MzE5MzQsIDAuNjAyNTQyLCAwLjc1MjEzNSwgMC45NjU4NTciLCBcCi0gICAgICAgICAgIjAuMDI4NDk5LCAwLjE3NTY3MSwgMC4zMjUxNTEsIDAuNDMxOTU1LCAwLjYwMjU0NywgMC43NTI0NjEsIDAuOTY1ODUiLCBcCi0gICAgICAgICAgIjAuMDI4NDgxLCAwLjE3NTY3NCwgMC4zMjQ3MzksIDAuNDMxNTc2LCAwLjYwMjU1OSwgMC43NTE2NDksIDAuOTY1MTE0IiwgXAotICAgICAgICAgICIwLjAyODQ4MywgMC4xNzU0MjMsIDAuMzI0NzE2LCAwLjQzMTkwOCwgMC42MDIxODMsIDAuNzUyMDU3LCAwLjk2NTgxNyIsIFwKLSAgICAgICAgICAiMC4wMjg1NDQsIDAuMTc1NjgyLCAwLjMyNTEsIDAuNDMxNTQ1LCAwLjYwMjkxMSwgMC43NTI1OTgsIDAuOTY1ODMzIiwgXAotICAgICAgICAgICIwLjAyODUwMiwgMC4xNzU0NjIsIDAuMzI0NzM0LCAwLjQzMTg2OCwgMC42MDI3NjcsIDAuNzUyNDg1LCAwLjk2NjIzOCIsIFwKLSAgICAgICAgICAiMC4wMjg1MjUsIDAuMTc1MjY3LCAwLjMyNTAwOCwgMC40MzE4MDUsIDAuNjAyOTQ4LCAwLjc1MTM1LCAwLjk2NjMxNyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwODY4NywgMC4wMDg3NjcsIDAuMDA4Nzc4LCAwLjAwODc4MSwgMC4wMDg3ODUsIDAuMDA4Nzg1LCAwLjAwODc4OSIsIFwKLSAgICAgICAgICAiMC4wMDg2ODEsIDAuMDA4NzYyLCAwLjAwODc3MywgMC4wMDg3NzYsIDAuMDA4Nzc3LCAwLjAwODc4MSwgMC4wMDg3ODMiLCBcCi0gICAgICAgICAgIjAuMDA4NzYzLCAwLjAwODg0MSwgMC4wMDg4NTYsIDAuMDA4ODU1LCAwLjAwODg1OSwgMC4wMDg4NiwgMC4wMDg4NTkiLCBcCi0gICAgICAgICAgIjAuMDA4ODc5LCAwLjAwODk1NiwgMC4wMDg5NjcsIDAuMDA4OTcxLCAwLjAwODk3MywgMC4wMDg5NzUsIDAuMDA4OTc3IiwgXAotICAgICAgICAgICIwLjAwOTAwNCwgMC4wMDkwODUsIDAuMDA5MDk4LCAwLjAwOTA5MSwgMC4wMDkxMDMsIDAuMDA5MDk1LCAwLjAwOTA5NyIsIFwKLSAgICAgICAgICAiMC4wMDkyMTgsIDAuMDA5Mjg1LCAwLjAwOTMwNiwgMC4wMDkzMSwgMC4wMDkzMSwgMC4wMDkzMDUsIDAuMDA5MzA0IiwgXAotICAgICAgICAgICIwLjAwOTQxNiwgMC4wMDk0OTYsIDAuMDA5NDk4LCAwLjAwOTUxMSwgMC4wMDk1MTUsIDAuMDA5NTA0LCAwLjAwOTUxOSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDExODIxLCAwLjAxMTk4MywgMC4wMTIwMDMsIDAuMDEyMDA5LCAwLjAxMjAxNCwgMC4wMTIwMTYsIDAuMDEyMDE5IiwgXAotICAgICAgICAgICIwLjAxMTgyNiwgMC4wMTE5ODksIDAuMDEyMDA5LCAwLjAxMjAxNSwgMC4wMTIwMiwgMC4wMTIwMjMsIDAuMDEyMDI1IiwgXAotICAgICAgICAgICIwLjAxMTg5MSwgMC4wMTIwNTYsIDAuMDEyMDc1LCAwLjAxMjA4MiwgMC4wMTIwODcsIDAuMDEyMDksIDAuMDEyMDkyIiwgXAotICAgICAgICAgICIwLjAxMjAxNywgMC4wMTIxNzgsIDAuMDEyMTk5LCAwLjAxMjE5MSwgMC4wMTIxOTYsIDAuMDEyMjEzLCAwLjAxMjIwMiIsIFwKLSAgICAgICAgICAiMC4wMTIxMiwgMC4wMTIyOCwgMC4wMTIyOTksIDAuMDEyMzA1LCAwLjAxMjMxLCAwLjAxMjMxMywgMC4wMTIzMTYiLCBcCi0gICAgICAgICAgIjAuMDEyMzI2LCAwLjAxMjQ4NywgMC4wMTI1MDgsIDAuMDEyNTEzLCAwLjAxMjUxOSwgMC4wMTI1MjUsIDAuMDEyNTI3IiwgXAotICAgICAgICAgICIwLjAxMjUyOCwgMC4wMTI2ODYsIDAuMDEyNzA4LCAwLjAxMjcxOCwgMC4wMTI3MjEsIDAuMDEyNzI0LCAwLjAxMjcyMyIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogVExBVE5DQVg4ICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoVExBVE5DQVg4KSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDEuNDI1NzsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBjbG9ja19nYXRpbmdfaW50ZWdyYXRlZF9jZWxsIDogImxhdGNoX3Bvc2VkZ2UiOwotICBzdGF0ZXRhYmxlKCIgQ0sgIEUgIiwgIiBFSU5UICIpIHsKLSAgICAgdGFibGUgOiAiICBMICBMIDogLSA6IEwgLCBcCi0gICAgICAgICAgICAgICAgTCAgSCA6IC0gOiBIICwgXAotICAgICAgICAgICAgICAgIEggIC0gOiAtIDogTiAiOwotICB9Ci0gIHBpbihFSU5UKSB7Ci0gICAgZGlyZWN0aW9uIDogaW50ZXJuYWw7Ci0gICAgaW50ZXJuYWxfbm9kZSA6ICJFSU5UIjsKLSAgfQotICBwaW4oQ0spICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY4MTE5MTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2ODExNDg7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjgxMTkxOwotICAgIGNsb2NrX2dhdGVfY2xvY2tfcGluIDogdHJ1ZTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDQwNTMsIDAuMDA0MDYyLCAwLjAwNDEwOSwgMC4wMDQyMjIsIDAuMDA0MzM3LCAwLjAwNDU2LCAwLjAwNDc2OCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNDk5LCAwLjAwNDk4OCwgMC4wMDUwNTQsIDAuMDA1MTU0LCAwLjAwNTI4NSwgMC4wMDU1NTIsIDAuMDA1NzMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFFIjsKLSAgICAgIHNkZl9jb25kIDogIkUgPT0gMSdiMCI7Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wODE5OTUsIDAuMDg5ODk2LCAwLjA5Nzc3NCwgMC4xMDM0NDUsIDAuMTA3ODczLCAwLjExNDE4MywgMC4xMTg1ODUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEUpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY3MjYwMjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2NzE0MzY7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjcyNjAyOwotICAgIGNsb2NrX2dhdGVfZW5hYmxlX3BpbiA6IHRydWU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA0NDI0LCAwLjAwNDM5MiwgMC4wMDQ0MTcsIDAuMDA0NDgzLCAwLjAwNDUzNCwgMC4wMDQ2NjgsIDAuMDA0ODEzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA0ODU5LCAwLjAwNDgzNSwgMC4wMDQ4NiwgMC4wMDQ5MDksIDAuMDA0OTc5LCAwLjAwNTA5NCwgMC4wMDUyNTgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMTg3NSwgLTAuMDEzNzUsIC0wLjAxMzc1LCAtMC4wMDc1LCAtMC4wMDc1LCAtMC4wMDM3NSwgLTAuMDAxMjUiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTg3NSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAxMjUsIC0wLjAwODc1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTg3NSwgLTAuMDE1LCAtMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzEyNSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDI1LCAtMC4wMjEyNSwgLTAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzNzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMzEyNSwgLTAuMDI3NSwgLTAuMDI1IiwgXAotICAgICAgICAgICItMC4wNTI1LCAtMC4wNDc1LCAtMC4wNDEyNSwgLTAuMDM1LCAtMC4wMzUsIC0wLjAzMTI1LCAtMC4wMjg3NSIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wNCwgLTAuMDM3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAsIDAuMDA1LCAwLjAxMTI1LCAwLjAxNzUsIDAuMDIzNzUsIDAuMDI3NSwgMC4wMzYyNSIsIFwKLSAgICAgICAgICAiLTAuMDA1LCAwLCAwLjAwNjI1LCAwLjAxMjUsIDAuMDE4NzUsIDAuMDIyNSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDE3NSwgLTAuMDA2MjUsIDAsIDAuMDA2MjUsIDAuMDEyNSwgMC4wMTYyNSwgMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjAxNzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLCAwLjAwNjI1LCAwLjAxNjI1LCAwLjAxODc1IiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAsIDAuMDA2MjUsIDAuMDEsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDI3NSwgLTAuMDIyNSwgLTAuMDEsIC0wLjAwMzc1LCAtMC4wMDM3NSwgMC4wMDYyNSwgMC4wMDg3NSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLjAwMzc1LCAwLjAwNjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyNSwgMC4wMiwgMC4wMiwgMC4wMTM3NSwgMC4wMTM3NSwgMC4wMSwgMC4wMDc1IiwgXAotICAgICAgICAgICIwLjAzLCAwLjAyNSwgMC4wMjUsIDAuMDE4NzUsIDAuMDE4NzUsIDAuMDE1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMDQyNSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMjUsIDAuMDIxMjUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMDQ4NzUsIDAuMDM3NSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAzMTI1LCAwLjAyNzUsIDAuMDI1IiwgXAotICAgICAgICAgICIwLjA0ODc1LCAwLjA0Mzc1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDM3NSwgMC4wMzM3NSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4wNTg3NSwgMC4wNTM3NSwgMC4wNDc1LCAwLjA0MTI1LCAwLjA0MTI1LCAwLjAzNzUsIDAuMDM1IiwgXAotICAgICAgICAgICIwLjA2MTI1LCAwLjA1NjI1LCAwLjA1LCAwLjA1LCAwLjA0Mzc1LCAwLjA0NjI1LCAwLjA0Mzc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2MjUsIDAuMDAxMjUsIC0wLjAwNSwgLTAuMDExMjUsIC0wLjAxNzUsIC0wLjAyMTI1LCAtMC4wMyIsIFwKLSAgICAgICAgICAiMC4wMTEyNSwgMC4wMDYyNSwgMCwgLTAuMDA2MjUsIC0wLjAxMjUsIC0wLjAxNjI1LCAtMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMDIzNzUsIDAuMDEyNSwgMC4wMDYyNSwgMCwgLTAuMDA2MjUsIC0wLjAxLCAtMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4wMjM3NSwgMC4wMTg3NSwgMC4wMTI1LCAwLjAwNjI1LCAwLCAtMC4wMSwgLTAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4wMywgMC4wMTg3NSwgMC4wMTI1LCAwLjAwNjI1LCAwLCAtMC4wMDM3NSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMDMzNzUsIDAuMDI4NzUsIDAuMDE2MjUsIDAuMDEsIDAuMDEsIDAsIC0wLjAwMjUiLCBcCi0gICAgICAgICAgIjAuMDQyNSwgMC4wMzEyNSwgMC4wMjUsIDAuMDE4NzUsIDAuMDEyNSwgMC4wMDI1LCAwIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihFQ0spICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMi42NDcxMTsKLSAgICBjbG9ja19nYXRlX291dF9waW4gOiB0cnVlOwotICAgIHN0YXRlX2Z1bmN0aW9uIDogIihDSyBFSU5UKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc2NzY4LCAwLjEwOTE3OCwgMC4xMzcyNjQsIDAuMTU3MDU0LCAwLjE4ODY0NiwgMC4yMTYyOTQsIDAuMjU1Nzc0IiwgXAotICAgICAgICAgICIwLjA4NDc4LCAwLjExNzE5LCAwLjE0NTI4NCwgMC4xNjUwNjcsIDAuMTk2NjU5LCAwLjIyNDMwOCwgMC4yNjM3ODUiLCBcCi0gICAgICAgICAgIjAuMDkyOTIzLCAwLjEyNTMzLCAwLjE1MzM4NCwgMC4xNzMxOTEsIDAuMjA0ODAxLCAwLjIzMjQ0NCwgMC4yNzE5NDciLCBcCi0gICAgICAgICAgIjAuMDk4ODI0LCAwLjEzMTIzMiwgMC4xNTkzMzcsIDAuMTc5MTI1LCAwLjIxMDc0MiwgMC4yMzgzODIsIDAuMjc3ODY5IiwgXAotICAgICAgICAgICIwLjEwMzU1MywgMC4xMzU5NzcsIDAuMTY0MDEzLCAwLjE4Mzc5NiwgMC4yMTU0MDgsIDAuMjQzMDQ5LCAwLjI4MjU4MyIsIFwKLSAgICAgICAgICAiMC4xMTAyODEsIDAuMTQyNTA2LCAwLjE3MDU3OSwgMC4xOTA1NTYsIDAuMjIxOTc2LCAwLjI0OTc5NywgMC4yODkyNzUiLCBcCi0gICAgICAgICAgIjAuMTE1MDgyLCAwLjE0NzQ5NywgMC4xNzU3NDgsIDAuMTk1MzU3LCAwLjIyNjk1NywgMC4yNTQ1OTUsIDAuMjk0MDkiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjE0NiwgMC4wNzY4NzMsIDAuMTMzMjU5LCAwLjE3NDMwMywgMC4yMzk5MzEsIDAuMjk4Mjk5LCAwLjM4MTIzNyIsIFwKLSAgICAgICAgICAiMC4wMjE0NTksIDAuMDc2ODczLCAwLjEzMzM0MiwgMC4xNzQzMDIsIDAuMjM5OTM1LCAwLjI5ODMwNywgMC4zODEyMDgiLCBcCi0gICAgICAgICAgIjAuMDIxNDA4LCAwLjA3Njg2OSwgMC4xMzMyNTEsIDAuMTc0MTM0LCAwLjI0MDM0NSwgMC4yOTgwMzMsIDAuMzgxNzAyIiwgXAotICAgICAgICAgICIwLjAyMTQxNCwgMC4wNzY4NiwgMC4xMzMzMzQsIDAuMTc0MjE2LCAwLjI0MDM0MSwgMC4yOTg0ODcsIDAuMzgxNjgyIiwgXAotICAgICAgICAgICIwLjAyMTM5OCwgMC4wNzY5MTIsIDAuMTMzMzcyLCAwLjE3NDI5NSwgMC4yNDAzNjcsIDAuMjk4MzcsIDAuMzgxMDIzIiwgXAotICAgICAgICAgICIwLjAyMTQyNiwgMC4wNzY4MjUsIDAuMTMzMzQyLCAwLjE3NDIzLCAwLjI0MDMzNywgMC4yOTgzNCwgMC4zODA3OTciLCBcCi0gICAgICAgICAgIjAuMDIxNDgzLCAwLjA3NzAzMiwgMC4xMzM0MTgsIDAuMTc0MjQzLCAwLjI0MDAyNywgMC4yOTgzMTksIDAuMzgxNjQxIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY3OTM3LCAwLjA5ODQzNiwgMC4xMjY3NTYsIDAuMTQ2OTQ5LCAwLjE3OTI3LCAwLjIwNzU1MywgMC4yNDc5NjEiLCBcCi0gICAgICAgICAgIjAuMDc1Nzk1LCAwLjEwNjMwNywgMC4xMzQ2MjYsIDAuMTU0ODE5LCAwLjE4NzEzOSwgMC4yMTU0MjUsIDAuMjU1ODMiLCBcCi0gICAgICAgICAgIjAuMDgzNzM0LCAwLjExNDIzNSwgMC4xNDI1NDQsIDAuMTYyNzQyLCAwLjE5NTA2MSwgMC4yMjMzNDMsIDAuMjYzNzU0IiwgXAotICAgICAgICAgICIwLjA4OTM5NCwgMC4xMTk4NTcsIDAuMTQ4MTY5LCAwLjE2ODM2MiwgMC4yMDA2ODUsIDAuMjI4OTYzLCAwLjI2OTM3MSIsIFwKLSAgICAgICAgICAiMC4wOTM5NDEsIDAuMTI0NDEsIDAuMTUyNzI4LCAwLjE3MjkxOCwgMC4yMDUyNDgsIDAuMjMzNTE4LCAwLjI3Mzk5NyIsIFwKLSAgICAgICAgICAiMC4xMDAxOTgsIDAuMTMwNzAyLCAwLjE1OTAyNiwgMC4xNzkyMTgsIDAuMjExNTMzLCAwLjIzOTgxMywgMC4yODAyMjMiLCBcCi0gICAgICAgICAgIjAuMTA0NjA5LCAwLjEzNTExOCwgMC4xNjM0MDUsIDAuMTgzNjM4LCAwLjIxNTk0OCwgMC4yNDQyNDgsIDAuMjg0NjI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE3NjQxLCAwLjA3MzY5NywgMC4xMzE4MTYsIDAuMTczNTk1LCAwLjI0MDc5NywgMC4yOTkzMTUsIDAuMzgzMDE0IiwgXAotICAgICAgICAgICIwLjAxNzYyOSwgMC4wNzM3NTcsIDAuMTMxODI2LCAwLjE3MzY4OCwgMC4yNDA4MTYsIDAuMjk5NjUzLCAwLjM4MzgzMyIsIFwKLSAgICAgICAgICAiMC4wMTc2MjYsIDAuMDczNzE2LCAwLjEzMTgyMSwgMC4xNzM1LCAwLjI0MDgwMywgMC4yOTkzMzIsIDAuMzgzMTgxIiwgXAotICAgICAgICAgICIwLjAxNzYzNSwgMC4wNzM3NjEsIDAuMTMxODE0LCAwLjE3MzY5MiwgMC4yNDA4MDEsIDAuMjk5Mzg1LCAwLjM4Mzk1IiwgXAotICAgICAgICAgICIwLjAxNzcsIDAuMDczNzU4LCAwLjEzMTg0LCAwLjE3MzcyNywgMC4yNDA3OSwgMC4yOTkzMTcsIDAuMzgzOTIxIiwgXAotICAgICAgICAgICIwLjAxNzY0NiwgMC4wNzM2NjcsIDAuMTMxODYyLCAwLjE3MzY1MywgMC4yNDA4NjgsIDAuMjk5Njc3LCAwLjM4MzgxOCIsIFwKLSAgICAgICAgICAiMC4wMTc2OTIsIDAuMDczODE3LCAwLjEzMTU5OCwgMC4xNzM0MiwgMC4yNDA3NjcsIDAuMjk5NTczLCAwLjM4MzkwNiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxNjEwOSwgMC4wMTYyNDEsIDAuMDE2MzE1LCAwLjAxNjM0MSwgMC4wMTYzNjUsIDAuMDE2Mzc3LCAwLjAxNjM4OSIsIFwKLSAgICAgICAgICAiMC4wMTYxMDEsIDAuMDE2MjMyLCAwLjAxNjMwNywgMC4wMTYzMzIsIDAuMDE2MzU2LCAwLjAxNjM3NCwgMC4wMTYzOCIsIFwKLSAgICAgICAgICAiMC4wMTYxODMsIDAuMDE2MzAzLCAwLjAxNjM3NiwgMC4wMTY0MDIsIDAuMDE2NDI1LCAwLjAxNjQzOCwgMC4wMTY0NDkiLCBcCi0gICAgICAgICAgIjAuMDE2MjQxLCAwLjAxNjM5MiwgMC4wMTY0NzEsIDAuMDE2NDk4LCAwLjAxNjUzNSwgMC4wMTY1NDcsIDAuMDE2NTUxIiwgXAotICAgICAgICAgICIwLjAxNjM5NSwgMC4wMTY1MjMsIDAuMDE2NTk5LCAwLjAxNjYyNiwgMC4wMTY2NTIsIDAuMDE2NjU3LCAwLjAxNjY3OCIsIFwKLSAgICAgICAgICAiMC4wMTY2MTgsIDAuMDE2NzI3LCAwLjAxNjgwMSwgMC4wMTY4MzQsIDAuMDE2ODUxLCAwLjAxNjg3MywgMC4wMTY4ODMiLCBcCi0gICAgICAgICAgIjAuMDE2Nzk2LCAwLjAxNjkzMiwgMC4wMTY5OTcsIDAuMDE3MDMsIDAuMDE3MDQ5LCAwLjAxNzA2MSwgMC4wMTcwNjgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyMDc5NywgMC4wMjEyNjQsIDAuMDIxMzgxLCAwLjAyMTQyMiwgMC4wMjE0NTgsIDAuMDIxNDc3LCAwLjAyMTQ5NSIsIFwKLSAgICAgICAgICAiMC4wMjA4MTEsIDAuMDIxMjc0LCAwLjAyMTM5MSwgMC4wMjE0MzIsIDAuMDIxNDY5LCAwLjAyMTQ4OCwgMC4wMjE1MDUiLCBcCi0gICAgICAgICAgIjAuMDIwODcsIDAuMDIxMzIxLCAwLjAyMTQ0LCAwLjAyMTQ3OSwgMC4wMjE1MTYsIDAuMDIxNTM2LCAwLjAyMTU1NCIsIFwKLSAgICAgICAgICAiMC4wMjA5NzYsIDAuMDIxNDMxLCAwLjAyMTU0OSwgMC4wMjE1OSwgMC4wMjE2MjYsIDAuMDIxNjQ1LCAwLjAyMTY2MiIsIFwKLSAgICAgICAgICAiMC4wMjExMjIsIDAuMDIxNTQ2LCAwLjAyMTY2MiwgMC4wMjE3MTEsIDAuMDIxNzQ4LCAwLjAyMTc2NywgMC4wMjE3ODYiLCBcCi0gICAgICAgICAgIjAuMDIxMzExLCAwLjAyMTc0NiwgMC4wMjE4NjYsIDAuMDIxOTA4LCAwLjAyMTk0NCwgMC4wMjE5NjUsIDAuMDIxOTgzIiwgXAotICAgICAgICAgICIwLjAyMTQ4NCwgMC4wMjE5MzEsIDAuMDIyMDI5LCAwLjAyMjA5MiwgMC4wMjIxMywgMC4wMjIxNDEsIDAuMDIyMTQyIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBUTEFUTlNSWDEgKgotICogLS0tLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChUTEFUTlNSWDEpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC44NTExODQ7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgbGF0Y2ggKFFJTlQsTjUpIHsKLSAgICBkYXRhX2luIDogIkQiOwotICAgIGVuYWJsZSA6ICIoKCFHTikgUk4pIjsKLSAgICBwcmVzZXQgOiAiKCFTTikiOwotICB9Ci0gIHBpbihEKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2Njg4NTk7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjY4MDI2OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDY2ODg1OTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyODgsIDAuMDAwMjg5LCAwLjAwMDI5LCAwLjAwMDI5LCAwLjAwMDI5LCAwLjAwMDI5MSwgMC4wMDAyOTEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAzMTUsIDAuMDAwMzA0LCAwLjAwMDMwMiwgMC4wMDAzMDEsIDAuMDAwMywgMC4wMDAyOTksIDAuMDAwMjk5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkdOIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlJOJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIlJOX0VRXzFfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLCAwLjAxMTI1LCAwLjAxNzUsIDAuMDE3NSwgMC4wMjM3NSwgMC4wMjc1LCAwLjAzIiwgXAotICAgICAgICAgICItMC4wMDUsIDAuMDA2MjUsIDAuMDA2MjUsIDAuMDEyNSwgMC4wMTg3NSwgMC4wMjI1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDExMjUsIC0wLjAwNjI1LCAwLCAwLjAwNjI1LCAwLjAxMjUsIDAuMDE2MjUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjAxNzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLCAwLjAwNjI1LCAwLjAxLCAwLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgLTAuMDA2MjUsIDAsIDAuMDAzNzUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjAyNzUsIC0wLjAyMjUsIC0wLjAxNjI1LCAtMC4wMSwgLTAuMDEsIDAsIDAuMDAyNSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDg3NSwgLTAuMDA2MjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMTI1LCAtMC4wMDc1LCAtMC4wMDEyNSwgLTAuMDAxMjUsIDAuMDA1LCAwLjAwODc1LCAwLjAxMTI1IiwgXAotICAgICAgICAgICItMC4wMTc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgLTAuMDA2MjUsIDAsIDAuMDAzNzUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDEyNSwgLTAuMDA2MjUsIC0wLjAwMjUsIDAiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMTI1LCAtMC4wMDg3NSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDE4NzUsIC0wLjAwODc1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDQsIC0wLjAzNSwgLTAuMDI4NzUsIC0wLjAyMjUsIC0wLjAyMjUsIC0wLjAxODc1LCAtMC4wMTYyNSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAyMTI1LCAtMC4wMTg3NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJHTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiUk4mU04iOwotICAgICAgc2RmX2NvbmQgOiAiUk5fRVFfMV9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMjUsIDAuMDAxMjUsIC0wLjAwNSwgLTAuMDA1LCAtMC4wMTEyNSwgLTAuMDE1LCAtMC4wMTc1IiwgXAotICAgICAgICAgICIwLjAxNzUsIDAuMDA2MjUsIDAsIDAsIC0wLjAwNjI1LCAtMC4wMSwgLTAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4wMjM3NSwgMC4wMTI1LCAwLjAxMjUsIDAuMDA2MjUsIDAsIC0wLjAwMzc1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiMC4wMywgMC4wMTg3NSwgMC4wMTI1LCAwLjAxMjUsIDAuMDA2MjUsIDAuMDAyNSwgMCIsIFwKLSAgICAgICAgICAiMC4wMzYyNSwgMC4wMjUsIDAuMDE4NzUsIDAuMDE4NzUsIDAuMDEyNSwgMC4wMDg3NSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiMC4wNCwgMC4wMzUsIDAuMDI4NzUsIDAuMDIyNSwgMC4wMTYyNSwgMC4wMTI1LCAwLjAxIiwgXAotICAgICAgICAgICIwLjA0MjUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMjUsIDAuMDI1LCAwLjAyMTI1LCAwLjAxMjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjUsIDAuMDIsIDAuMDEzNzUsIDAuMDEzNzUsIDAuMDA3NSwgMC4wMDM3NSwgMC4wMDEyNSIsIFwKLSAgICAgICAgICAiMC4wMywgMC4wMjUsIDAuMDE4NzUsIDAuMDE4NzUsIDAuMDEyNSwgMC4wMDg3NSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiMC4wMzYyNSwgMC4wMzEyNSwgMC4wMjUsIDAuMDI1LCAwLjAxODc1LCAwLjAxNSwgMC4wMTI1IiwgXAotICAgICAgICAgICIwLjA0MjUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMjUsIDAuMDI1LCAwLjAyMTI1LCAwLjAxODc1IiwgXAotICAgICAgICAgICIwLjA0ODc1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDMxMjUsIDAuMDIxMjUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMDUyNSwgMC4wNDc1LCAwLjA0MTI1LCAwLjAzNSwgMC4wMzUsIDAuMDMxMjUsIDAuMDI4NzUiLCBcCi0gICAgICAgICAgIjAuMDU1LCAwLjA1LCAwLjA0Mzc1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDMzNzUsIDAuMDMxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEdOKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2NjQ0NDg7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjY0NDQ4OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDY2NDQyNzsKLSAgICBjbG9jayA6IHRydWU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjkzLCAwLjAwMDMyMSwgMC4wMDA0MTIsIDAuMDAwNTI0LCAwLjAwMDY1OSwgMC4wMDA4OSwgMC4wMDEwOTYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDQ3ODMsIDAuMDA0NzkzLCAwLjAwNDg3OSwgMC4wMDQ5OTcsIDAuMDA1MTM1LCAwLjAwNTM2OCwgMC4wMDU1NjEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiR04iOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFEJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgZmFsbF9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMTM3MDAzLCAwLjE0Mzg3NiwgMC4xNDkzNywgMC4xNTMxODgsIDAuMTU2NDU0LCAwLjE2MDcwNiwgMC4xNjM3NTEiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFEpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4zNDY2OTU7Ci0gICAgZnVuY3Rpb24gOiAiUUlOVCI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDkzMTI2LCAwLjExMTU1NiwgMC4yMTU3NzIsIDAuMzA3MDksIDAuNDI5OTA5LCAwLjY3NDUyNywgMC44MjczOTUiLCBcCi0gICAgICAgICAgIjAuMDk5MTQzLCAwLjExNzU5NSwgMC4yMjE1MjMsIDAuMzEzNTg1LCAwLjQzNTI2LCAwLjY4MDUyMywgMC44MzM0NDIiLCBcCi0gICAgICAgICAgIjAuMTA1OTMyLCAwLjEyNDM4OCwgMC4yMjg1ODgsIDAuMzIwMzY4LCAwLjQ0MjQ3MSwgMC42ODcwMzUsIDAuODQwMjA0IiwgXAotICAgICAgICAgICIwLjExMTUyNywgMC4xMjk4MjMsIDAuMjMzNjI0LCAwLjMyNTkzMSwgMC40NDc1ODEsIDAuNjkyMzQ4LCAwLjg0NTc2NCIsIFwKLSAgICAgICAgICAiMC4xMTYyOTMsIDAuMTM0NjA4LCAwLjIzODkzNSwgMC4zMzA2NTEsIDAuNDUyNDA4LCAwLjY5Njc5MSwgMC44NDk1NCIsIFwKLSAgICAgICAgICAiMC4xMjI3NjIsIDAuMTQwOTg4LCAwLjI0NDk5OCwgMC4zMzY5MzYsIDAuNDU5Mjc0LCAwLjcwMzg4MywgMC44NTY3NTUiLCBcCi0gICAgICAgICAgIjAuMTI3NjE2LCAwLjE0NTg0NSwgMC4yNDk5MTIsIDAuMzQxNzQ4LCAwLjQ2NDA1MiwgMC43MDgwNTIsIDAuODYxNjI3Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2ODg2MiwgMC4xMDczMjcsIDAuMzI2MzI3LCAwLjUxODM4NCwgMC43NzY5NywgMS4yOTE3OSwgMS42MTM0NiIsIFwKLSAgICAgICAgICAiMC4wNjg4ODksIDAuMTA3MzQ1LCAwLjMyNTc3NiwgMC41MTk0NzYsIDAuNzc1NTIsIDEuMjkxNzUsIDEuNjEyNDciLCBcCi0gICAgICAgICAgIjAuMDY4ODUzLCAwLjEwNzMyNiwgMC4zMjYxMywgMC41MTkxODcsIDAuNzc2MDAzLCAxLjI5MDM1LCAxLjYxMjQyIiwgXAotICAgICAgICAgICIwLjA2ODgzOSwgMC4xMDcyNTYsIDAuMzI1MzE5LCAwLjUxOTQ2LCAwLjc3NTAxMywgMS4yODk1MywgMS42MTM0OCIsIFwKLSAgICAgICAgICAiMC4wNjkwNjIsIDAuMTA3NTM5LCAwLjMyNjI5OCwgMC41MTkzNzEsIDAuNzc1NTQxLCAxLjI4OTMyLCAxLjYxMDQ4IiwgXAotICAgICAgICAgICIwLjA2ODk2NywgMC4xMDcyNjYsIDAuMzI1Nzk4LCAwLjUxOTE1MywgMC43NzY0NywgMS4yOTEwMiwgMS42MTI1OCIsIFwKLSAgICAgICAgICAiMC4wNjkwNTcsIDAuMTA3MjgyLCAwLjMyNTg1NywgMC41MTg3OCwgMC43NzYyMSwgMS4yODkzNywgMS42MTI2NCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDY5MTgsIDAuMTI1MDA4LCAwLjIyNzU1MSwgMC4zMTgxNjIsIDAuNDM4NzE5LCAwLjY3OTk5MywgMC44MzA2ODgiLCBcCi0gICAgICAgICAgIjAuMTEyNDM4LCAwLjEzMDU1NywgMC4yMzMwODUsIDAuMzIzNjk0LCAwLjQ0NDI2NCwgMC42ODU0NTMsIDAuODM2MjMiLCBcCi0gICAgICAgICAgIjAuMTE4NDUyLCAwLjEzNjU1LCAwLjIzOTA4NCwgMC4zMjk3LCAwLjQ1MDUxMSwgMC42OTE1ODQsIDAuODQyMjEiLCBcCi0gICAgICAgICAgIjAuMTIzNTM1LCAwLjE0MTU2NiwgMC4yNDQwNTUsIDAuMzM0Njc0LCAwLjQ1NTQ3OSwgMC42OTY0ODksIDAuODQ3ODgxIiwgXAotICAgICAgICAgICIwLjEyNzU5NywgMC4xNDU2NzksIDAuMjQ4MjA1LCAwLjMzODgyMSwgMC40NTk2MjIsIDAuNzAwNjMsIDAuODUyMTc2IiwgXAotICAgICAgICAgICIwLjEzMzIyMiwgMC4xNTEzODUsIDAuMjUzOTI1LCAwLjM0NDQ3MiwgMC40NjUwMjgsIDAuNzA2MzYxLCAwLjg1NzU5MyIsIFwKLSAgICAgICAgICAiMC4xMzc1NCwgMC4xNTU1OTgsIDAuMjU4MjYzLCAwLjM0ODYxMywgMC40NjkyMzIsIDAuNzEwOCwgMC44NjE2NjYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY2Njc5LCAwLjEwMzY2NiwgMC4zMTM5LCAwLjUwMTc2NiwgMC43NDkyNzgsIDEuMjQzMzcsIDEuNTU0NjgiLCBcCi0gICAgICAgICAgIjAuMDY2NjczLCAwLjEwMzcyOSwgMC4zMTQ1MTMsIDAuNTAwMjM5LCAwLjc0OTEwNiwgMS4yNDQ0NywgMS41NTQ3IiwgXAotICAgICAgICAgICIwLjA2NjcxLCAwLjEwMzY1MywgMC4zMTQyMTgsIDAuNTAxNzY3LCAwLjc1MDY2MiwgMS4yNDYwNSwgMS41NTI3OSIsIFwKLSAgICAgICAgICAiMC4wNjY2NTcsIDAuMTAzNjQ2LCAwLjMxNDUxLCAwLjUwMTc2MywgMC43NTA2NTksIDEuMjQ2NDMsIDEuNTU5NDYiLCBcCi0gICAgICAgICAgIjAuMDY2Njg1LCAwLjEwMzY4NiwgMC4zMTQ2MDUsIDAuNTAxNjg0LCAwLjc1MDUzMSwgMS4yNDU4OCwgMS41NTYyIiwgXAotICAgICAgICAgICIwLjA2NjY0MiwgMC4xMDM3MzIsIDAuMzE1MDk5LCAwLjUwMTY3MywgMC43NDk0OTIsIDEuMjQ1NDksIDEuNTU5MSIsIFwKLSAgICAgICAgICAiMC4wNjY3NjksIDAuMTAzNzI2LCAwLjMxNTEyNiwgMC41MDExMDUsIDAuNzQ5NDI2LCAxLjI0Nzk4LCAxLjU1ODkzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkdOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5vbl91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogZmFsbGluZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMzUzNTUsIDAuMTUzNzE4LCAwLjI1NzkxOCwgMC4zNDk3MTcsIDAuNDcxMzcyLCAwLjcxNjY0OSwgMC44Njg3ODEiLCBcCi0gICAgICAgICAgIjAuMTQyMjM4LCAwLjE2MDU5MywgMC4yNjQ3ODIsIDAuMzU2NjAxLCAwLjQ3ODIzNCwgMC43MjM1NDMsIDAuODc1NjU1IiwgXAotICAgICAgICAgICIwLjE0Nzc2MywgMC4xNjYwNjYsIDAuMjcwMzE4LCAwLjM2MjEyMiwgMC40ODM3NTcsIDAuNzI5MDU3LCAwLjg4MTI4OCIsIFwKLSAgICAgICAgICAiMC4xNTE1NjYsIDAuMTY5OTI0LCAwLjI3NDE3MiwgMC4zNjU5MywgMC40ODc2MTUsIDAuNzMyOTE4LCAwLjg4NTc4MSIsIFwKLSAgICAgICAgICAiMC4xNTQ3OTcsIDAuMTczMTU1LCAwLjI3NzI5OCwgMC4zNjkxNSwgMC40OTE0MjcsIDAuNzM2MDkxLCAwLjg4ODkzOSIsIFwKLSAgICAgICAgICAiMC4xNTg5MTYsIDAuMTc3Mjc5LCAwLjI4MTYzOCwgMC4zNzM0MTMsIDAuNDk1MzgyLCAwLjc0MDMyMywgMC44OTMyNjgiLCBcCi0gICAgICAgICAgIjAuMTYyMTcsIDAuMTgwMzMxLCAwLjI4NDY5LCAwLjM3NjA0NywgMC40OTgxNDMsIDAuNzQzNDExLCAwLjg5NjMwOCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjg5NjksIDAuMTA3MzMyLCAwLjMyNjMyLCAwLjUxOTQ3NiwgMC43NzUxODgsIDEuMjkxNzQsIDEuNjExMjYiLCBcCi0gICAgICAgICAgIjAuMDY4OTg4LCAwLjEwNzMzNCwgMC4zMjYzMTMsIDAuNTE5NDcxLCAwLjc3NTE3LCAxLjI5MTc1LCAxLjYxMTQ1IiwgXAotICAgICAgICAgICIwLjA2ODk1LCAwLjEwNzQzMywgMC4zMjYzMiwgMC41MTk0NzMsIDAuNzc1MDQ3LCAxLjI5MTc0LCAxLjYxMDU2IiwgXAotICAgICAgICAgICIwLjA2ODk2MywgMC4xMDczMzYsIDAuMzI2MzE4LCAwLjUxOTQ3NiwgMC43NzUwODksIDEuMjkxNzUsIDEuNjEzNDgiLCBcCi0gICAgICAgICAgIjAuMDY4OTUyLCAwLjEwNzMzOSwgMC4zMjYzMTMsIDAuNTE5NDY4LCAwLjc3NjkxNywgMS4yOTE3NSwgMS42MTMyNiIsIFwKLSAgICAgICAgICAiMC4wNjkwNDEsIDAuMTA3MzUsIDAuMzI2MzAyLCAwLjUxOTQxMiwgMC43NzYyMjIsIDEuMjkxNTcsIDEuNjEzNDQiLCBcCi0gICAgICAgICAgIjAuMDY4OTcyLCAwLjEwNzMyNiwgMC4zMjYyOTgsIDAuNTE4NTQxLCAwLjc3NTQyOSwgMS4yOTE2NSwgMS42MTMzNyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMzcwMDMsIDAuMTU1MTA5LCAwLjI1Nzc0NywgMC4zNDgxODEsIDAuNDY5MDk4LCAwLjcxMDQ5MywgMC44NjA5ODEiLCBcCi0gICAgICAgICAgIjAuMTQzODc2LCAwLjE2MjAwMSwgMC4yNjQ1MzcsIDAuMzU1MTQ1LCAwLjQ3NTc1NSwgMC43MTc1ODEsIDAuODY4NTUzIiwgXAotICAgICAgICAgICIwLjE0OTM3LCAwLjE2NzQ5MywgMC4yNzAwMywgMC4zNjA2MzgsIDAuNDgxMjMyLCAwLjcyMzA2NiwgMC44NzQwMzgiLCBcCi0gICAgICAgICAgIjAuMTUzMTg4LCAwLjE3MTI3MywgMC4yNzM4MDgsIDAuMzY0NDMsIDAuNDg1Mzg0LCAwLjcyNjg2NCwgMC44Nzc4NDgiLCBcCi0gICAgICAgICAgIjAuMTU2NDU0LCAwLjE3NDUxMiwgMC4yNzcwNCwgMC4zNjc2OTgsIDAuNDg4NDY4LCAwLjczMDA5MywgMC44ODA3NTgiLCBcCi0gICAgICAgICAgIjAuMTYwNzA2LCAwLjE3ODc2NSwgMC4yODEzNSwgMC4zNzE5NjksIDAuNDkyNDY2LCAwLjczNDI1NywgMC44ODUyMDIiLCBcCi0gICAgICAgICAgIjAuMTYzNzUxLCAwLjE4MTkzMiwgMC4yODQ0OSwgMC4zNzUwNzYsIDAuNDk1ODYsIDAuNzM3NDc4LCAwLjg4Nzg5MSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjY2NzksIDAuMTAzNzUyLCAwLjMxNTIwNSwgMC41MDA4ODYsIDAuNzUwNjgzLCAxLjI0ODMzLCAxLjU1NjQ2IiwgXAotICAgICAgICAgICIwLjA2NjY5NywgMC4xMDM2NTgsIDAuMzE0Njc1LCAwLjUwMTc2LCAwLjc0ODkxOSwgMS4yNDYzOCwgMS41NTQ4OSIsIFwKLSAgICAgICAgICAiMC4wNjY3LCAwLjEwMzY1NywgMC4zMTQ2NjksIDAuNTAxNzYsIDAuNzQ5NDMsIDEuMjQ2MjUsIDEuNTU2MDMiLCBcCi0gICAgICAgICAgIjAuMDY2NzEzLCAwLjEwMzcyOSwgMC4zMTQ2MjQsIDAuNTAxNzYyLCAwLjc0OTUxMSwgMS4yNDYzNiwgMS41NTYyNSIsIFwKLSAgICAgICAgICAiMC4wNjY3MDMsIDAuMTAzNjQ4LCAwLjMxNDIxNCwgMC41MDE3NTMsIDAuNzUwNjQ4LCAxLjI0NjM0LCAxLjU1OTI2IiwgXAotICAgICAgICAgICIwLjA2NjczOSwgMC4xMDM2NzEsIDAuMzE0NTU2LCAwLjUwMTY4MywgMC43NDk1MzEsIDEuMjQ0NzksIDEuNTU0OTIiLCBcCi0gICAgICAgICAgIjAuMDY2NzQ2LCAwLjEwMzcyLCAwLjMxNTE1OCwgMC41MDE4MDUsIDAuNzQ4Mjk3LCAxLjI0NTc5LCAxLjU1Njc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiByaXNpbmdfZWRnZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTI3NjExLCAwLjE0NTk3NCwgMC4yNTAxNjEsIDAuMzQxOTcxLCAwLjQ2MzYsIDAuNzA4OTA2LCAwLjg2MTE0NyIsIFwKLSAgICAgICAgICAiMC4xMzM2NDIsIDAuMTUxOTQ3LCAwLjI1NjE5MiwgMC4zNDc2MjksIDAuNDY5NjI4LCAwLjcxNDkzMiwgMC44NjcyNDIiLCBcCi0gICAgICAgICAgIjAuMTQwMjUsIDAuMTU4NjIxLCAwLjI2MjgyNSwgMC4zNTQ2MjUsIDAuNDc2Mjc0LCAwLjcyMTU1MiwgMC44NzQ0NjIiLCBcCi0gICAgICAgICAgIjAuMTQ1NTA1LCAwLjE2Mzk1MSwgMC4yNjgxMzMsIDAuMzU5OTU0LCAwLjQ4MTU4NywgMC43MjY4OSwgMC44Nzk3ODciLCBcCi0gICAgICAgICAgIjAuMTUwMjE5LCAwLjE2ODQ1MiwgMC4yNzI3ODUsIDAuMzY0NTY0LCAwLjQ4Njg2NywgMC43MzA3NjMsIDAuODg0NDA1IiwgXAotICAgICAgICAgICIwLjE1NjQyNCwgMC4xNzQ3OTcsIDAuMjc4NTM1LCAwLjM3MDc2OCwgMC40OTMwNjIsIDAuNzM2ODY4LCAwLjg5MDYxOCIsIFwKLSAgICAgICAgICAiMC4xNjExMzUsIDAuMTc5MzU5LCAwLjI4MzcxMiwgMC4zNzU1MDgsIDAuNDk3MzUsIDAuNzQyNDI3LCAwLjg5NDY5NSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjg5NzEsIDAuMTA3MzE1LCAwLjMyNjMxOCwgMC41MTk0NzMsIDAuNzc1MTkxLCAxLjI5MTc0LCAxLjYxMDciLCBcCi0gICAgICAgICAgIjAuMDY4OTQ2LCAwLjEwNzQzNCwgMC4zMjYzMiwgMC41MTg4MDksIDAuNzc1MTY2LCAxLjI5MTc0LCAxLjYxMDc2IiwgXAotICAgICAgICAgICIwLjA2ODk3OSwgMC4xMDczMTEsIDAuMzI2MzI0LCAwLjUxOTQ4MSwgMC43NzUyMDcsIDEuMjkxNzQsIDEuNjEzNSIsIFwKLSAgICAgICAgICAiMC4wNjg5MTMsIDAuMTA3MzE1LCAwLjMyNjMxMywgMC41MTk0NzEsIDAuNzc1MTIyLCAxLjI5MTc0LCAxLjYxMzI2IiwgXAotICAgICAgICAgICIwLjA2ODk0MywgMC4xMDczNzcsIDAuMzI2MzI3LCAwLjUxOTQ2MiwgMC43NzY5MDksIDEuMjg5NDEsIDEuNjEzNDciLCBcCi0gICAgICAgICAgIjAuMDY4OTYzLCAwLjEwNzMyNSwgMC4zMjU2NjUsIDAuNTE5NCwgMC43NzY4MTYsIDEuMjg5MTIsIDEuNjEzMzkiLCBcCi0gICAgICAgICAgIjAuMDY5MDIsIDAuMTA3Mzc0LCAwLjMyNjI5MywgMC41MTk0ODMsIDAuNzc1NDgyLCAxLjI5MTYyLCAxLjYxMDc5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiBmYWxsaW5nX2VkZ2U7Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEzMzc2OCwgMC4xNTE4OTMsIDAuMjU0NSwgMC4zNDQ4ODksIDAuNDY1NTc1LCAwLjcwNjY1MywgMC44NTc3ODIiLCBcCi0gICAgICAgICAgIjAuMTQxNTg1LCAwLjE1OTY4MSwgMC4yNjIyMTYsIDAuMzUyODMyLCAwLjQ3MzY4NCwgMC43MTQ5LCAwLjg2NTU0MiIsIFwKLSAgICAgICAgICAiMC4xNDk2NDYsIDAuMTY3NzMyLCAwLjI3MDI3MywgMC4zNjA4ODUsIDAuNDgxNzMsIDAuNzIyODE5LCAwLjg3MzM4NSIsIFwKLSAgICAgICAgICAiMC4xNTU5NTEsIDAuMTc0MDUxLCAwLjI3NjU4OCwgMC4zNjcyMDIsIDAuNDg4MDUxLCAwLjcyOTI2MSwgMC44Nzk3MzQiLCBcCi0gICAgICAgICAgIjAuMTYxODk4LCAwLjE4MDAwNSwgMC4yODI2MzgsIDAuMzczMTQsIDAuNDkzNjU3LCAwLjczNTAwMiwgMC44ODU3ODUiLCBcCi0gICAgICAgICAgIjAuMTcwMTE1LCAwLjE4ODIyMSwgMC4yOTA3NCwgMC4zODEzNDYsIDAuNTAyMDU0LCAwLjc0MzI2NCwgMC44OTQ0MTIiLCBcCi0gICAgICAgICAgIjAuMTc2MjQ5LCAwLjE5NDQwMiwgMC4yOTcwMDEsIDAuMzg3NTQ5LCAwLjUwODM3OCwgMC43NDk0NTEsIDAuOTAwMjg4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2NjY4NSwgMC4xMDM2NjEsIDAuMzE1MTcxLCAwLjUwMTIzLCAwLjc0OTQ0OCwgMS4yNDYyOSwgMS41NTUiLCBcCi0gICAgICAgICAgIjAuMDY2Njc1LCAwLjEwMzY2NCwgMC4zMTQzMywgMC41MDE3NzcsIDAuNzQ5MTg0LCAxLjI0ODE1LCAxLjU1NjM3IiwgXAotICAgICAgICAgICIwLjA2NjY4LCAwLjEwMzY2MywgMC4zMTQ1MDgsIDAuNTAxNzc0LCAwLjc0ODQ2NywgMS4yNDY3MiwgMS41NTQ5MSIsIFwKLSAgICAgICAgICAiMC4wNjY2ODcsIDAuMTAzNjYxLCAwLjMxNTE2MiwgMC41MDE3NzQsIDAuNzUwNzU5LCAxLjI0ODQsIDEuNTU2NDkiLCBcCi0gICAgICAgICAgIjAuMDY2NjU3LCAwLjEwMzcxMywgMC4zMTQ1NDgsIDAuNTAxNzYzLCAwLjc1MDc3LCAxLjI0NjExLCAxLjU1NjQ2IiwgXAotICAgICAgICAgICIwLjA2NjcxNCwgMC4xMDM2NjMsIDAuMzE0NjcyLCAwLjUwMTc2NSwgMC43NTA1ODgsIDEuMjQ2MywgMS41NTkzMiIsIFwKLSAgICAgICAgICAiMC4wNjY5MDcsIDAuMTAzNjQ5LCAwLjMxNTEyMSwgMC41MDE3MjUsIDAuNzUwNjcyLCAxLjI0NjE1LCAxLjU1OTQyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiBwcmVzZXQ7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2NzkwMiwgMC4wODYyMzUsIDAuMTkwNDUzLCAwLjI4MjA1OSwgMC40MDQxNzMsIDAuNjQ5MDMyLCAwLjgwMTkyMyIsIFwKLSAgICAgICAgICAiMC4wNzYwMjMsIDAuMDk0NDMzLCAwLjE5ODMyNywgMC4yOTAzNDYsIDAuNDEyMDUzLCAwLjY1NzEyNiwgMC44MDk4NzUiLCBcCi0gICAgICAgICAgIjAuMDg1NDgxLCAwLjEwMzgwNCwgMC4yMDc5NzcsIDAuMjk5NTg4LCAwLjQyMTg5NywgMC42NjYyODgsIDAuODE5MTYyIiwgXAotICAgICAgICAgICIwLjA5MjcwMSwgMC4xMTA5NzQsIDAuMjE0OTc3LCAwLjMwNjgxNiwgMC40MjkxNzgsIDAuNjczODA1LCAwLjgyNjM0MyIsIFwKLSAgICAgICAgICAiMC4wOTg1MDYsIDAuMTE2ODEyLCAwLjIyMDc0OCwgMC4zMTI1ODcsIDAuNDM0NzY3LCAwLjY3OTUxOSwgMC44MzI0MzUiLCBcCi0gICAgICAgICAgIjAuMTA1ODA3LCAwLjEyNDE2OCwgMC4yMjgwNzEsIDAuMzE5ODU1LCAwLjQ0MTk0MywgMC42ODY1NDksIDAuODM5NDE1IiwgXAotICAgICAgICAgICIwLjExMTMxOCwgMC4xMjk1NDgsIDAuMjMzNDksIDAuMzI1MDc0LCAwLjQ0NzU1NiwgMC42OTE4MDMsIDAuODQ1MDc2Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2ODk3MSwgMC4xMDczMjQsIDAuMzI2MzU0LCAwLjUxODcyMiwgMC43NzYwMjgsIDEuMjkwNzgsIDEuNjEyMzkiLCBcCi0gICAgICAgICAgIjAuMDY5MDE2LCAwLjEwNzMxOCwgMC4zMjU5MjEsIDAuNTE4OTg3LCAwLjc3NTYxNiwgMS4yOTEyNywgMS42MTI3NCIsIFwKLSAgICAgICAgICAiMC4wNjkwNDMsIDAuMTA3MzI0LCAwLjMyNjMyLCAwLjUxOTE1OSwgMC43NzU5MzEsIDEuMjkxMDMsIDEuNjEyNzQiLCBcCi0gICAgICAgICAgIjAuMDY5MTQxLCAwLjEwNzM4NSwgMC4zMjYwMzEsIDAuNTE5MTY3LCAwLjc3NjQzLCAxLjI5MTA2LCAxLjYxMjYiLCBcCi0gICAgICAgICAgIjAuMDY5MDc1LCAwLjEwNzQzMywgMC4zMjYxNjEsIDAuNTE5MDk0LCAwLjc3NjMyMywgMS4yOTA5LCAxLjYxMjM3IiwgXAotICAgICAgICAgICIwLjA2OTE3NSwgMC4xMDczNDIsIDAuMzI1OTAxLCAwLjUxODc0NSwgMC43NzU5MSwgMS4yOTA1MywgMS42MTIxNSIsIFwKLSAgICAgICAgICAiMC4wNjkzMTIsIDAuMTA3NDY5LCAwLjMyNTY2OSwgMC41MTg3NzMsIDAuNzc1OTksIDEuMjkwMzQsIDEuNjExODYiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc5Njg3LCAwLjA5Nzc4NywgMC4yMDAzMjMsIDAuMjkwOTM0LCAwLjQxMTc0LCAwLjY1MjcwOCwgMC44MDMzNjciLCBcCi0gICAgICAgICAgIjAuMDg1NjksIDAuMTAzNzQ5LCAwLjIwNjI4MywgMC4yOTY4ODcsIDAuNDE3NTM3LCAwLjY1OTA2MSwgMC44MTA3MDkiLCBcCi0gICAgICAgICAgIjAuMDkzMTk4LCAwLjExMTIwNiwgMC4yMTM3MjIsIDAuMzA0MzM1LCAwLjQyNTEzNCwgMC42NjY0NzYsIDAuODE4NDMiLCBcCi0gICAgICAgICAgIjAuMDk5NTc5LCAwLjExNzcyMywgMC4yMjAzNzgsIDAuMzExMDM0LCAwLjQzMTc1MSwgMC42NzQxMjIsIDAuODI0NjAyIiwgXAotICAgICAgICAgICIwLjEwNTE3LCAwLjEyMzIzNSwgMC4yMjU4MiwgMC4zMTY0MTQsIDAuNDM3MzM5LCAwLjY3ODU2OCwgMC44MzAzMzgiLCBcCi0gICAgICAgICAgIjAuMTEyODksIDAuMTMwOTk4LCAwLjIzMzUzLCAwLjMyNDE0NywgMC40NDQ3MzEsIDAuNjg2MzE1LCAwLjgzODA2NiIsIFwKLSAgICAgICAgICAiMC4xMTg1NzUsIDAuMTM2NzU4LCAwLjIzOTI3MywgMC4zMjk4OTQsIDAuNDUwNDI5LCAwLjY5MjgyNSwgMC44NDI5NDYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY2NjcsIDAuMTAzNjYyLCAwLjMxNDU1OSwgMC41MDE3NjksIDAuNzUwNjYxLCAxLjI0NjI1LCAxLjU1NDY2IiwgXAotICAgICAgICAgICIwLjA2NjY3NCwgMC4xMDM2NjIsIDAuMzE0ODMsIDAuNTAxNzcsIDAuNzUwNjYyLCAxLjI0ODM2LCAxLjU1NTI4IiwgXAotICAgICAgICAgICIwLjA2NjY1OCwgMC4xMDM3MTYsIDAuMzE0NDAxLCAwLjUwMTc2OSwgMC43NTA2NTUsIDEuMjQ2MjYsIDEuNTU3NDQiLCBcCi0gICAgICAgICAgIjAuMDY2NzQ4LCAwLjEwMzY1NCwgMC4zMTUxNDUsIDAuNTAxNjc4LCAwLjc1MDY0MiwgMS4yNDY2OSwgMS41NTY5MyIsIFwKLSAgICAgICAgICAiMC4wNjY4MjQsIDAuMTAzNzYyLCAwLjMxNTEwNywgMC41MDE2NjIsIDAuNzUwNjE5LCAxLjI0NjgxLCAxLjU1NjUyIiwgXAotICAgICAgICAgICIwLjA2NzA2MiwgMC4xMDM2NSwgMC4zMTUxMzYsIDAuNTAxNzE0LCAwLjc1MDQwNiwgMS4yNDgxOCwgMS41NTc0OSIsIFwKLSAgICAgICAgICAiMC4wNjcwMzQsIDAuMTA0MjQsIDAuMzE0OTUyLCAwLjUwMTU3LCAwLjc1MDM2NSwgMS4yNDY2OCwgMS41NTkxNyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkQiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzI2MSwgMC4wMDMyNjksIDAuMDAzMjgsIDAuMDAzMjgyLCAwLjAwMzI4MywgMC4wMDMyODQsIDAuMDAzMjgzIiwgXAotICAgICAgICAgICIwLjAwMzI0NywgMC4wMDMyNTUsIDAuMDAzMjY2LCAwLjAwMzI2OCwgMC4wMDMyNjksIDAuMDAzMjcsIDAuMDAzMjciLCBcCi0gICAgICAgICAgIjAuMDAzMjUyLCAwLjAwMzI2LCAwLjAwMzI3MSwgMC4wMDMyNzQsIDAuMDAzMjc3LCAwLjAwMzI3OSwgMC4wMDMyNzQiLCBcCi0gICAgICAgICAgIjAuMDAzMjc5LCAwLjAwMzI4NywgMC4wMDMyOTksIDAuMDAzMzAxLCAwLjAwMzMwMywgMC4wMDMzMDQsIDAuMDAzMzA0IiwgXAotICAgICAgICAgICIwLjAwMzMxNCwgMC4wMDMzMjIsIDAuMDAzMzMzLCAwLjAwMzMzNSwgMC4wMDMzMzcsIDAuMDAzMzM4LCAwLjAwMzMzOCIsIFwKLSAgICAgICAgICAiMC4wMDMzODgsIDAuMDAzMzk1LCAwLjAwMzQwNiwgMC4wMDM0MDgsIDAuMDAzNDExLCAwLjAwMzQxMiwgMC4wMDM0MTIiLCBcCi0gICAgICAgICAgIjAuMDAzNDU2LCAwLjAwMzQ2MywgMC4wMDM0NzYsIDAuMDAzNDc3LCAwLjAwMzQ3OCwgMC4wMDM0ODIsIDAuMDAzNDgyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0MTE2LCAwLjAwNDEyLCAwLjAwNDEyNSwgMC4wMDQxMjYsIDAuMDA0MTI2LCAwLjAwNDEyNiwgMC4wMDQxMjYiLCBcCi0gICAgICAgICAgIjAuMDA0MTA2LCAwLjAwNDExLCAwLjAwNDExNSwgMC4wMDQxMTYsIDAuMDA0MTE2LCAwLjAwNDExNywgMC4wMDQxMTciLCBcCi0gICAgICAgICAgIjAuMDA0MTE1LCAwLjAwNDExOCwgMC4wMDQxMjMsIDAuMDA0MTI0LCAwLjAwNDEyNCwgMC4wMDQxMjUsIDAuMDA0MTI0IiwgXAotICAgICAgICAgICIwLjAwNDEzOSwgMC4wMDQxNDMsIDAuMDA0MTQ3LCAwLjAwNDE0OCwgMC4wMDQxNDgsIDAuMDA0MTQ5LCAwLjAwNDE0OSIsIFwKLSAgICAgICAgICAiMC4wMDQxOCwgMC4wMDQxODMsIDAuMDA0MTg4LCAwLjAwNDE4OSwgMC4wMDQxODksIDAuMDA0MTksIDAuMDA0MTkiLCBcCi0gICAgICAgICAgIjAuMDA0MjQzLCAwLjAwNDI0NiwgMC4wMDQyNTEsIDAuMDA0MjUyLCAwLjAwNDI1MiwgMC4wMDQyNTMsIDAuMDA0MjUzIiwgXAotICAgICAgICAgICIwLjAwNDMxMSwgMC4wMDQzMTQsIDAuMDA0MzIsIDAuMDA0MzIsIDAuMDA0MzIsIDAuMDA0MzIsIDAuMDA0MzIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJHTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1NjQ4LCAwLjAwNTY1NiwgMC4wMDU2NjYsIDAuMDA1NjY4LCAwLjAwNTY3LCAwLjAwNTY3MiwgMC4wMDU2NzEiLCBcCi0gICAgICAgICAgIjAuMDA1NjUxLCAwLjAwNTY1OCwgMC4wMDU2NjksIDAuMDA1NjcyLCAwLjAwNTY3MywgMC4wMDU2NzQsIDAuMDA1Njc0IiwgXAotICAgICAgICAgICIwLjAwNTY5MywgMC4wMDU3MDEsIDAuMDA1NzEyLCAwLjAwNTcxMiwgMC4wMDU3MTUsIDAuMDA1NzE4LCAwLjAwNTcxNiIsIFwKLSAgICAgICAgICAiMC4wMDU3NTUsIDAuMDA1NzYzLCAwLjAwNTc3NSwgMC4wMDU3NzMsIDAuMDA1Nzc4LCAwLjAwNTc3OSwgMC4wMDU3NzkiLCBcCi0gICAgICAgICAgIjAuMDA1ODE5LCAwLjAwNTgyNiwgMC4wMDU4MzQsIDAuMDA1ODM5LCAwLjAwNTgzOCwgMC4wMDU4NDEsIDAuMDA1ODM4IiwgXAotICAgICAgICAgICIwLjAwNTkzNiwgMC4wMDU5NDcsIDAuMDA1OTQ3LCAwLjAwNTk0OSwgMC4wMDU5NSwgMC4wMDU5NTEsIDAuMDA1OTUyIiwgXAotICAgICAgICAgICIwLjAwNjAzNSwgMC4wMDYwNDUsIDAuMDA2MDU0LCAwLjAwNjA1NywgMC4wMDYwNTcsIDAuMDA2MDU4LCAwLjAwNjA1OCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjMyMiwgMC4wMDYzMjYsIDAuMDA2MzMsIDAuMDA2MzMsIDAuMDA2MzMxLCAwLjAwNjMzMSwgMC4wMDYzMzEiLCBcCi0gICAgICAgICAgIjAuMDA2MzI3LCAwLjAwNjMzLCAwLjAwNjMzNSwgMC4wMDYzMzYsIDAuMDA2MzM2LCAwLjAwNjMzNiwgMC4wMDYzMzYiLCBcCi0gICAgICAgICAgIjAuMDA2MzcsIDAuMDA2MzczLCAwLjAwNjM3OCwgMC4wMDYzNzksIDAuMDA2Mzc5LCAwLjAwNjM3OSwgMC4wMDYzNzkiLCBcCi0gICAgICAgICAgIjAuMDA2NDMyLCAwLjAwNjQzNSwgMC4wMDY0MzksIDAuMDA2NDQsIDAuMDA2NDQxLCAwLjAwNjQ0LCAwLjAwNjQ0MiIsIFwKLSAgICAgICAgICAiMC4wMDY0OTIsIDAuMDA2NDkyLCAwLjAwNjQ5NywgMC4wMDY1LCAwLjAwNjQ5OCwgMC4wMDY0OTgsIDAuMDA2NTAyIiwgXAotICAgICAgICAgICIwLjAwNjYwNiwgMC4wMDY2MTYsIDAuMDA2NjEzLCAwLjAwNjYxNCwgMC4wMDY2MjEsIDAuMDA2NjIyLCAwLjAwNjYyMiIsIFwKLSAgICAgICAgICAiMC4wMDY3MTQsIDAuMDA2NzEyLCAwLjAwNjcyMSwgMC4wMDY3MjIsIDAuMDA2NzIyLCAwLjAwNjcyMywgMC4wMDY3MTkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0NTcsIDAuMDA0NTc3LCAwLjAwNDU4OCwgMC4wMDQ1OTEsIDAuMDA0NTkyLCAwLjAwNDU5MywgMC4wMDQ1OTMiLCBcCi0gICAgICAgICAgIjAuMDA0NTUxLCAwLjAwNDU1OCwgMC4wMDQ1NjksIDAuMDA0NTcyLCAwLjAwNDU3MywgMC4wMDQ1NzQsIDAuMDA0NTc0IiwgXAotICAgICAgICAgICIwLjAwNDU3MiwgMC4wMDQ1OCwgMC4wMDQ1OSwgMC4wMDQ1OTMsIDAuMDA0NTk0LCAwLjAwNDU5NiwgMC4wMDQ1OTYiLCBcCi0gICAgICAgICAgIjAuMDA0NTk2LCAwLjAwNDYwNCwgMC4wMDQ2MTQsIDAuMDA0NjE3LCAwLjAwNDYxOCwgMC4wMDQ2MTksIDAuMDA0NjE5IiwgXAotICAgICAgICAgICIwLjAwNDY0MiwgMC4wMDQ2NDksIDAuMDA0NjYsIDAuMDA0NjYyLCAwLjAwNDY2MywgMC4wMDQ2NjUsIDAuMDA0NjY1IiwgXAotICAgICAgICAgICIwLjAwNDcyNiwgMC4wMDQ3MzQsIDAuMDA0NzQ0LCAwLjAwNDc0NiwgMC4wMDQ3NDcsIDAuMDA0NzQ4LCAwLjAwNDc0OSIsIFwKLSAgICAgICAgICAiMC4wMDQ4MDIsIDAuMDA0ODEsIDAuMDA0ODIsIDAuMDA0ODIyLCAwLjAwNDgyMywgMC4wMDQ4MjQsIDAuMDA0ODI0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1Nzc3LCAwLjAwNTc4LCAwLjAwNTc4NSwgMC4wMDU3ODUsIDAuMDA1Nzg2LCAwLjAwNTc4NiwgMC4wMDU3ODYiLCBcCi0gICAgICAgICAgIjAuMDA1Nzc4LCAwLjAwNTc4MSwgMC4wMDU3ODUsIDAuMDA1Nzg2LCAwLjAwNTc4NywgMC4wMDU3ODcsIDAuMDA1Nzg3IiwgXAotICAgICAgICAgICIwLjAwNTgwNiwgMC4wMDU4MSwgMC4wMDU4MTQsIDAuMDA1ODE1LCAwLjAwNTgxNSwgMC4wMDU4MTUsIDAuMDA1ODE1IiwgXAotICAgICAgICAgICIwLjAwNTg2NCwgMC4wMDU4NjgsIDAuMDA1ODcyLCAwLjAwNTg3MiwgMC4wMDU4NzMsIDAuMDA1ODczLCAwLjAwNTg3MyIsIFwKLSAgICAgICAgICAiMC4wMDU5MDcsIDAuMDA1OTExLCAwLjAwNTkxNSwgMC4wMDU5MTYsIDAuMDA1OTE2LCAwLjAwNTkxOCwgMC4wMDU5MTciLCBcCi0gICAgICAgICAgIjAuMDA2MDEzLCAwLjAwNjAxMywgMC4wMDYwMiwgMC4wMDYwMjEsIDAuMDA2MDIxLCAwLjAwNjAyMSwgMC4wMDYwMjEiLCBcCi0gICAgICAgICAgIjAuMDA2MTE1LCAwLjAwNjEyMSwgMC4wMDYxMjUsIDAuMDA2MTI1LCAwLjAwNjEyNiwgMC4wMDYxMjYsIDAuMDA2MTI2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiU04iOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzc3OCwgMC4wMDM3ODIsIDAuMDAzNzg3LCAwLjAwMzc4OCwgMC4wMDM3ODksIDAuMDAzNzg4LCAwLjAwMzc4OSIsIFwKLSAgICAgICAgICAiMC4wMDM3NjcsIDAuMDAzNzcxLCAwLjAwMzc3OCwgMC4wMDM3NzksIDAuMDAzNzc5LCAwLjAwMzc4MSwgMC4wMDM3OCIsIFwKLSAgICAgICAgICAiMC4wMDM3ODgsIDAuMDAzNzkzLCAwLjAwMzc5OSwgMC4wMDM4MDEsIDAuMDAzODAyLCAwLjAwMzgwMiwgMC4wMDM4MDMiLCBcCi0gICAgICAgICAgIjAuMDAzODI0LCAwLjAwMzgyNywgMC4wMDM4MzMsIDAuMDAzODM0LCAwLjAwMzgzNSwgMC4wMDM4MzYsIDAuMDAzODM2IiwgXAotICAgICAgICAgICIwLjAwMzg3NSwgMC4wMDM4NzcsIDAuMDAzODgyLCAwLjAwMzg4MiwgMC4wMDM4ODMsIDAuMDAzODgzLCAwLjAwMzg4NCIsIFwKLSAgICAgICAgICAiMC4wMDM5NzIsIDAuMDAzOTcxLCAwLjAwMzk3MiwgMC4wMDM5NzQsIDAuMDAzOTc0LCAwLjAwMzk3NCwgMC4wMDM5NzQiLCBcCi0gICAgICAgICAgIjAuMDA0MDYsIDAuMDA0MDU3LCAwLjAwNDA1NiwgMC4wMDQwNTYsIDAuMDA0MDU2LCAwLjAwNDA1NiwgMC4wMDQwNTciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI3MTYsIDAuMDAyNzE4LCAwLjAwMjcyMSwgMC4wMDI3MjEsIDAuMDAyNzIxLCAwLjAwMjcyMSwgMC4wMDI3MjEiLCBcCi0gICAgICAgICAgIjAuMDAyNjk1LCAwLjAwMjY5OCwgMC4wMDI3MDIsIDAuMDAyNzAyLCAwLjAwMjcwMywgMC4wMDI3MDMsIDAuMDAyNzAzIiwgXAotICAgICAgICAgICIwLjAwMjcxOCwgMC4wMDI3MiwgMC4wMDI3MjQsIDAuMDAyNzI0LCAwLjAwMjcyNCwgMC4wMDI3MjQsIDAuMDAyNzI0IiwgXAotICAgICAgICAgICIwLjAwMjc2NiwgMC4wMDI3NjYsIDAuMDAyNzY3LCAwLjAwMjc2NywgMC4wMDI3NjYsIDAuMDAyNzY2LCAwLjAwMjc2NiIsIFwKLSAgICAgICAgICAiMC4wMDI4MzEsIDAuMDAyODI5LCAwLjAwMjgyNiwgMC4wMDI4MjQsIDAuMDAyODI0LCAwLjAwMjgyMywgMC4wMDI4MjMiLCBcCi0gICAgICAgICAgIjAuMDAyOTEzLCAwLjAwMjkwOSwgMC4wMDI5MDMsIDAuMDAyOTAyLCAwLjAwMjksIDAuMDAyODk5LCAwLjAwMjg5OSIsIFwKLSAgICAgICAgICAiMC4wMDI5NjIsIDAuMDAyOTU3LCAwLjAwMjk1MywgMC4wMDI5NTIsIDAuMDAyOTUxLCAwLjAwMjk1LCAwLjAwMjk0OSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUU4pICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4zMzYyMDc7Ci0gICAgZnVuY3Rpb24gOiAiTjUiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkQiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwNjAxNywgMC4xMjUyMzQsIDAuMjMwOTE1LCAwLjMyMzk5MSwgMC40NDc5OSwgMC42OTYzNTMsIDAuODUxMDkzIiwgXAotICAgICAgICAgICIwLjExMTU3NiwgMC4xMzA3ODYsIDAuMjM2NDcsIDAuMzI5NTQzLCAwLjQ1MzU0NiwgMC43MDE1OTksIDAuODU2NjQ5IiwgXAotICAgICAgICAgICIwLjExNzYyLCAwLjEzNjgyNiwgMC4yNDI1MTQsIDAuMzM1NTkyLCAwLjQ1OTc0MSwgMC43MDc5LCAwLjg2MjY4NiIsIFwKLSAgICAgICAgICAiMC4xMjI2MjIsIDAuMTQxODI3LCAwLjI0NzUxNiwgMC4zNDA1OSwgMC40NjQ3MzUsIDAuNzEyOTM2LCAwLjg2ODA1OCIsIFwKLSAgICAgICAgICAiMC4xMjY3NjQsIDAuMTQ1OTc4LCAwLjI1MTY2MSwgMC4zNDQ3MywgMC40Njg4NzEsIDAuNzE3MDY1LCAwLjg3MjI5IiwgXAotICAgICAgICAgICIwLjEzMjQ0MSwgMC4xNTE2NDIsIDAuMjU3MzI3LCAwLjM1MDQsIDAuNDc0NTIyLCAwLjcyMjY1MSwgMC44Nzc4MTkiLCBcCi0gICAgICAgICAgIjAuMTM2NzIzLCAwLjE1NTkyNywgMC4yNjE2MzUsIDAuMzU0NzA2LCAwLjQ3ODc5NCwgMC43MjY5MjUsIDAuODgyMDE3Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3ODM1OSwgMC4xMTU1MTMsIDAuMzMyOTkzLCAwLjUyOTIxNywgMC43ODk0NjMsIDEuMzEwNTMsIDEuNjM2MjEiLCBcCi0gICAgICAgICAgIjAuMDc4MzM4LCAwLjExNTUwMiwgMC4zMzMwMzIsIDAuNTI3OTY5LCAwLjc4OTUxMSwgMS4zMTAxNCwgMS42MzYxIiwgXAotICAgICAgICAgICIwLjA3ODMwNSwgMC4xMTU1MTUsIDAuMzMzMjE4LCAwLjUyOTIzNywgMC43OTA2MTYsIDEuMzEwNjEsIDEuNjM2MzMiLCBcCi0gICAgICAgICAgIjAuMDc4NDI1LCAwLjExNTU0OSwgMC4zMzMyNTgsIDAuNTI5MjMsIDAuNzkwNTU5LCAxLjMxMTQzLCAxLjY0MDIzIiwgXAotICAgICAgICAgICIwLjA3ODQwMSwgMC4xMTU0NzgsIDAuMzMzMzAyLCAwLjUyOTE2NywgMC43OTA0MjIsIDEuMzExNTgsIDEuNjM3NzMiLCBcCi0gICAgICAgICAgIjAuMDc4MzkzLCAwLjExNTU0LCAwLjMzMzU4MiwgMC41MjkwNjUsIDAuNzg5MTQsIDEuMzEyMTUsIDEuNjM5ODkiLCBcCi0gICAgICAgICAgIjAuMDc4NTkxLCAwLjExNTU3NCwgMC4zMzM3MjksIDAuNTI4NTIxLCAwLjc4OTIzLCAxLjMxMzAyLCAxLjYzOTg1Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4ODQxMSwgMC4xMDY2NTcsIDAuMjA5MjgxLCAwLjI5OTgyNSwgMC40MjA0NTcsIDAuNjYxNzUyLCAwLjgxMjUxOSIsIFwKLSAgICAgICAgICAiMC4wOTQ0MzUsIDAuMTEyNjksIDAuMjE1MzAxLCAwLjMwNTgxNiwgMC40MjY1MzUsIDAuNjY3NzMyLCAwLjgxODU2NCIsIFwKLSAgICAgICAgICAiMC4xMDEyNSwgMC4xMTk0OTcsIDAuMjIyMTE5LCAwLjMxMjYzLCAwLjQzMzIwNywgMC42NzQ0NCwgMC44MjUzNTciLCBcCi0gICAgICAgICAgIjAuMTA2ODkxLCAwLjEyNTE0NSwgMC4yMjc3MjIsIDAuMzE4Mjc1LCAwLjQzODk2NCwgMC42ODAxNzYsIDAuODMxMDMxIiwgXAotICAgICAgICAgICIwLjExMTYwMSwgMC4xMjk4NTQsIDAuMjMyNDc2LCAwLjMyMjk4MywgMC40NDM2MjUsIDAuNjg0OTE5LCAwLjgzNTc0MiIsIFwKLSAgICAgICAgICAiMC4xMTgwMTksIDAuMTM2MjU3LCAwLjIzODg4OCwgMC4zMjkzOTcsIDAuNDUwMDQzLCAwLjY5MTI2NywgMC44NDIwNTMiLCBcCi0gICAgICAgICAgIjAuMTIyODk2LCAwLjE0MTE0MywgMC4yNDM3NDIsIDAuMzM0MjYsIDAuNDU0OTA1LCAwLjY5NjE2NCwgMC44NDY5NjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDcwMjEyLCAwLjEwNjQ0MywgMC4zMTYxNiwgMC41MDE1MTksIDAuNzUxMTcxLCAxLjI0ODM3LCAxLjU1OTAxIiwgXAotICAgICAgICAgICIwLjA3MDIxMSwgMC4xMDY0NDIsIDAuMzE1NzQ5LCAwLjUwMjU2OCwgMC43NDk2MzYsIDEuMjQ4MzUsIDEuNTU5MSIsIFwKLSAgICAgICAgICAiMC4wNzAyMDIsIDAuMTA2NDM4LCAwLjMxNjE0NiwgMC41MDI1NDMsIDAuNzUwNzYsIDEuMjQ3OCwgMS41NTkwMyIsIFwKLSAgICAgICAgICAiMC4wNzAyNzgsIDAuMTA2Mjk5LCAwLjMxNTMsIDAuNTAyNTI0LCAwLjc0OTc1OSwgMS4yNDY3NywgMS41NTkxNiIsIFwKLSAgICAgICAgICAiMC4wNzA0MDUsIDAuMTA2NTE2LCAwLjMxNjEzOSwgMC41MDI0LCAwLjc0OTY3MywgMS4yNDY0OCwgMS41NTY5IiwgXAotICAgICAgICAgICIwLjA3MDQ3OSwgMC4xMDY0MjQsIDAuMzE1Nzk4LCAwLjUwMjM4OCwgMC43NTA5MzMsIDEuMjQ3OTEsIDEuNTU4NTkiLCBcCi0gICAgICAgICAgIjAuMDcwNDg2LCAwLjEwNjQ4OCwgMC4zMTU5NywgMC41MDIyMDQsIDAuNzUwODk3LCAxLjI0NjgyLCAxLjU1ODcxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkdOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5vbl91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogZmFsbGluZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMzYzNDUsIDAuMTU1NTY1LCAwLjI2MTI2NywgMC4zNTQzMiwgMC40Nzg0OTEsIDAuNzI2NjQyLCAwLjg4MTczMiIsIFwKLSAgICAgICAgICAiMC4xNDMyMjMsIDAuMTYyNDQzLCAwLjI2ODExOCwgMC4zNjExOTksIDAuNDg1MzMxLCAwLjczMzY0LCAwLjg4ODgiLCBcCi0gICAgICAgICAgIjAuMTQ4NzE2LCAwLjE2NzkzNCwgMC4yNzM2MSwgMC4zNjY2OTIsIDAuNDkwODM0LCAwLjczOTEyNywgMC44OTQyODUiLCBcCi0gICAgICAgICAgIjAuMTUyNTE2LCAwLjE3MTczNywgMC4yNzc0MTksIDAuMzcwNDk4LCAwLjQ5NDczOSwgMC43NDI5MzcsIDAuODk4MDk4IiwgXAotICAgICAgICAgICIwLjE1NTc3OCwgMC4xNzQ5NTYsIDAuMjgwNjQ0LCAwLjM3Mzc1MywgMC40OTc4NjYsIDAuNzQ2MTU3LCAwLjkwMTE0IiwgXAotICAgICAgICAgICIwLjE2MDA0NCwgMC4xNzkyMDIsIDAuMjg0OTQ3LCAwLjM3ODAxOCwgMC41MDIxMDQsIDAuNzUwMzQsIDAuOTA1NDc1IiwgXAotICAgICAgICAgICIwLjE2MzA5MSwgMC4xODIzODksIDAuMjg4MDEsIDAuMzgxMTA4LCAwLjUwNTI0NCwgMC43NTM1MzksIDAuOTA4NTI3Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3ODU5OSwgMC4xMTU2NiwgMC4zMzM3ODIsIDAuNTI4NTg1LCAwLjc5MDYzLCAxLjMxMzM5LCAxLjYzODY4IiwgXAotICAgICAgICAgICIwLjA3ODU1NSwgMC4xMTU2NjksIDAuMzMzNDI1LCAwLjUyOTIzNCwgMC43ODk3MjgsIDEuMzExMzYsIDEuNjM3NzUiLCBcCi0gICAgICAgICAgIjAuMDc4NTU1LCAwLjExNTY2OSwgMC4zMzM0MjYsIDAuNTI5MjM2LCAwLjc4OTYzOSwgMS4zMTE0LCAxLjYzNzc1IiwgXAotICAgICAgICAgICIwLjA3ODU1NywgMC4xMTU2NjIsIDAuMzMzMjY4LCAwLjUyOTI1NCwgMC43ODkxNiwgMS4zMTEzOSwgMS42Mzc3NiIsIFwKLSAgICAgICAgICAiMC4wNzg1OTQsIDAuMTE1NjY1LCAwLjMzMzI2MiwgMC41MjkxODIsIDAuNzkwNjI0LCAxLjMxMTM5LCAxLjY0MDE2IiwgXAotICAgICAgICAgICIwLjA3ODU2NiwgMC4xMTU2NjcsIDAuMzMzMzYxLCAwLjUyOTE5LCAwLjc4OTIxNywgMS4zMTEzMSwgMS42Mzc2NyIsIFwKLSAgICAgICAgICAiMC4wNzg1ODMsIDAuMTE1NjM1LCAwLjMzMzcwOCwgMC41MjkzMTQsIDAuNzg5MjAxLCAxLjMxMTQxLCAxLjYzODM2Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEzMDU4MywgMC4xNDg4MjUsIDAuMjUxNDQxLCAwLjM0MTk2LCAwLjQ2MjY2LCAwLjcwMzg4NiwgMC44NTQ2NzEiLCBcCi0gICAgICAgICAgIjAuMTM3NDc1LCAwLjE1NTcxOSwgMC4yNTgzMzMsIDAuMzQ4ODUxLCAwLjQ2OTUzMywgMC43MTA3OSwgMC44NjE1NzgiLCBcCi0gICAgICAgICAgIjAuMTQyOTk5LCAwLjE2MTI0NCwgMC4yNjM4NTksIDAuMzU0Mzc5LCAwLjQ3NTA2MSwgMC43MTYzMDYsIDAuODY3MDc5IiwgXAotICAgICAgICAgICIwLjE0NjgsIDAuMTY1MDQzLCAwLjI2NzcxNywgMC4zNTgxNzksIDAuNDc4OTE3LCAwLjcyMDE2NiwgMC44NzA5MyIsIFwKLSAgICAgICAgICAiMC4xNTAwMzEsIDAuMTY4Mjc1LCAwLjI3MDg1NywgMC4zNjE0MDcsIDAuNDgyMDQ0LCAwLjcyMzM0MSwgMC44NzQxMzciLCBcCi0gICAgICAgICAgIjAuMTU0MjM2LCAwLjE3MjQ4NiwgMC4yNzUxNTksIDAuMzY1NjY1LCAwLjQ4NjMwOSwgMC43Mjc1OTksIDAuODc4Mzc2IiwgXAotICAgICAgICAgICIwLjE1NzQ3LCAwLjE3NTU3MywgMC4yNzgyMTEsIDAuMzY4ODg0LCAwLjQ4OTQzNSwgMC43MzA2MjIsIDAuODgxNDU4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3MDM3NSwgMC4xMDY0NjYsIDAuMzE2MTUzLCAwLjUwMjU1MSwgMC43NDk2ODYsIDEuMjQ4MzUsIDEuNTU3NTciLCBcCi0gICAgICAgICAgIjAuMDcwMzcxLCAwLjEwNjQ2NywgMC4zMTYxMjksIDAuNTAyNTUyLCAwLjc0OTc5OSwgMS4yNDgzNywgMS41NTc1MSIsIFwKLSAgICAgICAgICAiMC4wNzAzNjksIDAuMTA2NDc5LCAwLjMxNjE0NywgMC41MDI1MzksIDAuNzQ5NzYzLCAxLjI0ODM1LCAxLjU1NzMyIiwgXAotICAgICAgICAgICIwLjA3MDM3LCAwLjEwNjQ2NSwgMC4zMTYxNDEsIDAuNTAyNTU2LCAwLjc0OTc2NywgMS4yNDgzNiwgMS41NTkwMyIsIFwKLSAgICAgICAgICAiMC4wNzAzNjgsIDAuMTA2NDYxLCAwLjMxNjEyNiwgMC41MDI1NDYsIDAuNzUxMTU3LCAxLjI0ODM2LCAxLjU1OTIiLCBcCi0gICAgICAgICAgIjAuMDcwMzgyLCAwLjEwNjQ4MiwgMC4zMTYxMzcsIDAuNTAyNDU1LCAwLjc1MDc3NSwgMS4yNDgxMiwgMS41NTg5MiIsIFwKLSAgICAgICAgICAiMC4wNzAzNzEsIDAuMTA2Mzk3LCAwLjMxNjEzOCwgMC41MDE1MjYsIDAuNzQ5NjA1LCAxLjI0ODE2LCAxLjU1ODkyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiByaXNpbmdfZWRnZTsKLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTIyODUsIDAuMTQxMDkyLCAwLjI0MzcwOCwgMC4zMzQyMjgsIDAuNDU0OTA2LCAwLjY5NjE1OCwgMC44NDY5MjgiLCBcCi0gICAgICAgICAgIjAuMTI4ODc5LCAwLjE0NzEyNCwgMC4yNDk3NCwgMC4zNDAxODYsIDAuNDYwOTM5LCAwLjcwMjE4OCwgMC44NTI5NTYiLCBcCi0gICAgICAgICAgIjAuMTM1NDk1LCAwLjE1MzczOCwgMC4yNTYzNTcsIDAuMzQ2ODgxLCAwLjQ2NzU3NSwgMC43MDg4LCAwLjg1OTYyNCIsIFwKLSAgICAgICAgICAiMC4xNDA4NCwgMC4xNTkwODYsIDAuMjYxNywgMC4zNTIyMiwgMC40NzI5MDEsIDAuNzE0MTU2LCAwLjg2NTAxNiIsIFwKLSAgICAgICAgICAiMC4xNDU0NTIsIDAuMTYzNjk2LCAwLjI2NjMxMiwgMC4zNTY4MjEsIDAuNDc3NDgyLCAwLjcxODc3NCwgMC44Njk1NDYiLCBcCi0gICAgICAgICAgIjAuMTUxNjc2LCAwLjE2OTkyOCwgMC4yNzI1NjIsIDAuMzYzMDQ0LCAwLjQ4MzcwNCwgMC43MjUwNzQsIDAuODc1NzciLCBcCi0gICAgICAgICAgIjAuMTU2MzczLCAwLjE3NDYxNiwgMC4yNzcyMzUsIDAuMzY3NzU4LCAwLjQ4ODM4OSwgMC43Mjk2NzUsIDAuODgwNDQ3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3MDM3NCwgMC4xMDY0NjUsIDAuMzE2MTQsIDAuNTAyNTU0LCAwLjc0OTc3NSwgMS4yNDgzNiwgMS41NTczMSIsIFwKLSAgICAgICAgICAiMC4wNzAzNzEsIDAuMTA2NDgsIDAuMzE2MTQ1LCAwLjUwMjE4OCwgMC43NDk3NzEsIDEuMjQ4MzUsIDEuNTU3MTUiLCBcCi0gICAgICAgICAgIjAuMDcwMzcsIDAuMTA2NDUyLCAwLjMxNjE2MSwgMC41MDI1NTYsIDAuNzQ5Njk5LCAxLjI0ODM1LCAxLjU1OTEyIiwgXAotICAgICAgICAgICIwLjA3MDI3MSwgMC4xMDY0NjgsIDAuMzE2MTI4LCAwLjUwMjU1MywgMC43NDk3NjgsIDEuMjQ4MzYsIDEuNTU5MzEiLCBcCi0gICAgICAgICAgIjAuMDcwMzc2LCAwLjEwNjI5OCwgMC4zMTYxNSwgMC41MDI1MzQsIDAuNzUxMTI0LCAxLjI0Njg4LCAxLjU1OTA0IiwgXAotICAgICAgICAgICIwLjA3MDM5LCAwLjEwNjQ2NSwgMC4zMTU2LCAwLjUwMjQ1LCAwLjc1MDk5NCwgMS4yNDYxMSwgMS41NTg5MiIsIFwKLSAgICAgICAgICAiMC4wNzA0MzYsIDAuMTA2NDM0LCAwLjMxNjEyNCwgMC41MDI1NzIsIDAuNzUwMjA1LCAxLjI0ODE3LCAxLjU1NzEyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiBmYWxsaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEzMjg5MiwgMC4xNTIwOTcsIDAuMjU3Nzg4LCAwLjM1MDgxMiwgMC40NzQ5NywgMC43MjI5NDQsIDAuODc4MDYxIiwgXAotICAgICAgICAgICIwLjE0MDY4NiwgMC4xNTk4OTgsIDAuMjY1NTg0LCAwLjM1ODY2NCwgMC40ODI4MzgsIDAuNzMwODksIDAuODg1OTk3IiwgXAotICAgICAgICAgICIwLjE0ODcyNiwgMC4xNjc5NDIsIDAuMjczNjMyLCAwLjM2NjcwOCwgMC40OTA4NzYsIDAuNzM4OTM5LCAwLjg5MzgxIiwgXAotICAgICAgICAgICIwLjE1NTA4MSwgMC4xNzQyOTEsIDAuMjc5OTgsIDAuMzczMDU4LCAwLjQ5NzIyOCwgMC43NDUyNzksIDAuOTAwMTYyIiwgXAotICAgICAgICAgICIwLjE2MTA2MSwgMC4xODAyNzIsIDAuMjg1OTgxLCAwLjM3OTAzNiwgMC41MDMxNzEsIDAuNzUxMzAxLCAwLjkwNjQyNSIsIFwKLSAgICAgICAgICAiMC4xNjkyOTUsIDAuMTg4NTA4LCAwLjI5NDE5MiwgMC4zODcyNzEsIDAuNTExMzYxLCAwLjc1OTUwMiwgMC45MTQ2NjUiLCBcCi0gICAgICAgICAgIjAuMTc1NDM0LCAwLjE5NDY0NCwgMC4zMDAzMzgsIDAuMzkzNDE2LCAwLjUxNzU3MywgMC43NjU2NCwgMC45MjA3MzYiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc4MzQ5LCAwLjExNTUwNCwgMC4zMzM4MDEsIDAuNTI4MDcxLCAwLjc4ODcxOCwgMS4zMTExLCAxLjYzNzcyIiwgXAotICAgICAgICAgICIwLjA3ODMsIDAuMTE1NSwgMC4zMzMyNDUsIDAuNTI5MTA5LCAwLjc4OTIwNSwgMS4zMTMxMywgMS42Mzg1MiIsIFwKLSAgICAgICAgICAiMC4wNzgzMzMsIDAuMTE1NTA2LCAwLjMzMzA4NywgMC41MjkxMDksIDAuNzg5MjExLCAxLjMxMTM0LCAxLjYzNjExIiwgXAotICAgICAgICAgICIwLjA3ODM0OSwgMC4xMTU1MDQsIDAuMzMzNzUyLCAwLjUyOTExMSwgMC43OTAzMzMsIDEuMzEzMTksIDEuNjM4NDciLCBcCi0gICAgICAgICAgIjAuMDc4MzM2LCAwLjExNTQ5NiwgMC4zMzMyOCwgMC41MjkxMDYsIDAuNzkwMzY5LCAxLjMxMjAzLCAxLjYzODQ4IiwgXAotICAgICAgICAgICIwLjA3ODM2NSwgMC4xMTU1NTksIDAuMzMzNDYxLCAwLjUyOTExMiwgMC43OTAyNzEsIDEuMzExOTMsIDEuNjQiLCBcCi0gICAgICAgICAgIjAuMDc4NTUyLCAwLjExNTU1NywgMC4zMzM3MzQsIDAuNTI5MDc4LCAwLjc5MDMwMiwgMS4zMTE5MiwgMS42Mzk5MyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogY2xlYXI7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3ODc0NCwgMC4wOTc5MzcsIDAuMjAzNjA1LCAwLjI5NjY3NCwgMC40MjA4MTgsIDAuNjY4NzM1LCAwLjgyMzc2IiwgXAotICAgICAgICAgICIwLjA4NDcyMywgMC4xMDM5MTcsIDAuMjA5NTgxLCAwLjMwMjY1NiwgMC40MjY4NjksIDAuNjc1MDY1LCAwLjgzMDU3IiwgXAotICAgICAgICAgICIwLjA5MjE0MywgMC4xMTEzMzgsIDAuMjE2OTk5LCAwLjMxMDA2NSwgMC40MzQyMDMsIDAuNjgyNTk3LCAwLjgzODIwNyIsIFwKLSAgICAgICAgICAiMC4wOTkwNDcsIDAuMTE4MjcsIDAuMjIzOTU5LCAwLjMxNzA4OCwgMC40NDExNzcsIDAuNjkwMDc5LCAwLjg0NDgyIiwgXAotICAgICAgICAgICIwLjEwNTEyMiwgMC4xMjQzNzgsIDAuMjMwMDEzLCAwLjMyMzA5MiwgMC40NDczMDEsIDAuNjk1NzA2LCAwLjg1MTA3MyIsIFwKLSAgICAgICAgICAiMC4xMTM2NDgsIDAuMTMzMDUzLCAwLjIzODcxOSwgMC4zMzE3OTgsIDAuNDU1ODc4LCAwLjcwNDE3NiwgMC44NTk3NjQiLCBcCi0gICAgICAgICAgIjAuMTIwMjg1LCAwLjEzOTc3OSwgMC4yNDU1MzYsIDAuMzM4NjAyLCAwLjQ2MjcxOCwgMC43MTEzNjQsIDAuODY2NDgiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc4MTc4LCAwLjExNTQ0NywgMC4zMzMyMTcsIDAuNTI5MjA4LCAwLjc5MDY2MywgMS4zMTE3NSwgMS42MzYyIiwgXAotICAgICAgICAgICIwLjA3ODI0OCwgMC4xMTU0MzIsIDAuMzMzMzMyLCAwLjUyOTIxOCwgMC43OTA2NiwgMS4zMTI4OCwgMS42MzgwNiIsIFwKLSAgICAgICAgICAiMC4wNzg0NDcsIDAuMTE1NTUsIDAuMzMzMjY1LCAwLjUyOTIyOCwgMC43OTA2NTQsIDEuMzEyNDUsIDEuNjM4MTQiLCBcCi0gICAgICAgICAgIjAuMDc4ODkxLCAwLjExNTg0NiwgMC4zMzM3MywgMC41MjkyMDksIDAuNzkwNjYzLCAxLjMxMTU1LCAxLjYzOTAzIiwgXAotICAgICAgICAgICIwLjA3OTczNCwgMC4xMTY0NzQsIDAuMzMzNzU2LCAwLjUyOTI2NiwgMC43OTA2NzYsIDEuMzEyMzIsIDEuNjM4MjEiLCBcCi0gICAgICAgICAgIjAuMDgxMDI4LCAwLjExNzM4OSwgMC4zMzQxMTksIDAuNTI5NDQ5LCAwLjc5MDU3MywgMS4zMTMwOCwgMS42MzgyMyIsIFwKLSAgICAgICAgICAiMC4wODE5MTUsIDAuMTE4Mjc3LCAwLjMzNDA5MywgMC41Mjk0OTIsIDAuNzkwNjQ0LCAxLjMxMTc3LCAxLjYzOTkzIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2MzEzNiwgMC4wODE0MywgMC4xODQwMTEsIDAuMjc0NDk2LCAwLjM5NTExMSwgMC42MzY0NDksIDAuNzg3MjMyIiwgXAotICAgICAgICAgICIwLjA3MTI0NywgMC4wODk1NDYsIDAuMTkyMTM1LCAwLjI4MjYwNywgMC40MDMyNjEsIDAuNjQ0NTExLCAwLjc5NTI5NyIsIFwKLSAgICAgICAgICAiMC4wODA4NSwgMC4wOTkxMzcsIDAuMjAxNzE2LCAwLjI5MjIxMSwgMC40MTI4MTYsIDAuNjU0MDk0LCAwLjgwNDg3NCIsIFwKLSAgICAgICAgICAiMC4wODg2NjIsIDAuMTA2OTQxLCAwLjIwOTQ5NiwgMC4yOTk5NjYsIDAuNDIwNjA5LCAwLjY2MTg4NiwgMC44MTI2NTIiLCBcCi0gICAgICAgICAgIjAuMDk1MDMxLCAwLjExMzMyOSwgMC4yMTU4NDYsIDAuMzA2MzI2LCAwLjQyNjk3LCAwLjY2ODIzNCwgMC44MTkwOTEiLCBcCi0gICAgICAgICAgIjAuMTAzMzM0LCAwLjEyMTY0MywgMC4yMjQxNTEsIDAuMzE0NTk1LCAwLjQzNTIyMSwgMC42NzY1NTcsIDAuODI3Mjc1IiwgXAotICAgICAgICAgICIwLjEwOTUzMiwgMC4xMjc4MiwgMC4yMzAzMTksIDAuMzIwODAzLCAwLjQ0MTQyMSwgMC42ODI2NzIsIDAuODMzNDk5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3MDUxNSwgMC4xMDY1MzgsIDAuMzE2MjksIDAuNTAyMjIxLCAwLjc1MDcyNCwgMS4yNDgxNiwgMS41NTg5MiIsIFwKLSAgICAgICAgICAiMC4wNzA1MSwgMC4xMDY1MjksIDAuMzE2MDcsIDAuNTAyNTIzLCAwLjc0OTgzMiwgMS4yNDgxOSwgMS41NTg4NyIsIFwKLSAgICAgICAgICAiMC4wNzA3NDgsIDAuMTA2Njg4LCAwLjMxNjIsIDAuNTAyNDA0LCAwLjc1MDUzNywgMS4yNDgxMSwgMS41NTg4MSIsIFwKLSAgICAgICAgICAiMC4wNzE0ODgsIDAuMTA3MTU4LCAwLjMxNjEsIDAuNTAyMzc5LCAwLjc1MDk1NywgMS4yNDgyMSwgMS41NTg5NCIsIFwKLSAgICAgICAgICAiMC4wNzIzMDgsIDAuMTA3NzkyLCAwLjMxNjM0NSwgMC41MDI1NjEsIDAuNzUxMDM5LCAxLjI0ODE1LCAxLjU1ODg5IiwgXAotICAgICAgICAgICIwLjA3MzY5MywgMC4xMDg1OTMsIDAuMzE2NDQ1LCAwLjUwMjQwNywgMC43NTA4MTIsIDEuMjQ4MTksIDEuNTU4NzMiLCBcCi0gICAgICAgICAgIjAuMDc0ODUsIDAuMTA5NTk4LCAwLjMxNjI4MiwgMC41MDE5NTYsIDAuNzUwODk2LCAxLjI0Nzk4LCAxLjU1ODQ1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0MTE2LCAwLjAwNDEyLCAwLjAwNDEyNSwgMC4wMDQxMjYsIDAuMDA0MTI2LCAwLjAwNDEyNiwgMC4wMDQxMjYiLCBcCi0gICAgICAgICAgIjAuMDA0MTA2LCAwLjAwNDExLCAwLjAwNDExNSwgMC4wMDQxMTYsIDAuMDA0MTE2LCAwLjAwNDExNywgMC4wMDQxMTciLCBcCi0gICAgICAgICAgIjAuMDA0MTE1LCAwLjAwNDExOCwgMC4wMDQxMjMsIDAuMDA0MTI0LCAwLjAwNDEyNCwgMC4wMDQxMjUsIDAuMDA0MTI0IiwgXAotICAgICAgICAgICIwLjAwNDEzOSwgMC4wMDQxNDMsIDAuMDA0MTQ3LCAwLjAwNDE0OCwgMC4wMDQxNDgsIDAuMDA0MTQ5LCAwLjAwNDE0OSIsIFwKLSAgICAgICAgICAiMC4wMDQxOCwgMC4wMDQxODMsIDAuMDA0MTg4LCAwLjAwNDE4OSwgMC4wMDQxODksIDAuMDA0MTksIDAuMDA0MTkiLCBcCi0gICAgICAgICAgIjAuMDA0MjQzLCAwLjAwNDI0NiwgMC4wMDQyNTEsIDAuMDA0MjUyLCAwLjAwNDI1MiwgMC4wMDQyNTMsIDAuMDA0MjUzIiwgXAotICAgICAgICAgICIwLjAwNDMxMSwgMC4wMDQzMTQsIDAuMDA0MzIsIDAuMDA0MzIsIDAuMDA0MzIsIDAuMDA0MzIsIDAuMDA0MzIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDMyNjEsIDAuMDAzMjY5LCAwLjAwMzI4LCAwLjAwMzI4MiwgMC4wMDMyODMsIDAuMDAzMjg0LCAwLjAwMzI4MyIsIFwKLSAgICAgICAgICAiMC4wMDMyNDcsIDAuMDAzMjU1LCAwLjAwMzI2NiwgMC4wMDMyNjgsIDAuMDAzMjY5LCAwLjAwMzI3LCAwLjAwMzI3IiwgXAotICAgICAgICAgICIwLjAwMzI1MiwgMC4wMDMyNiwgMC4wMDMyNzEsIDAuMDAzMjc0LCAwLjAwMzI3NywgMC4wMDMyNzksIDAuMDAzMjc0IiwgXAotICAgICAgICAgICIwLjAwMzI3OSwgMC4wMDMyODcsIDAuMDAzMjk5LCAwLjAwMzMwMSwgMC4wMDMzMDMsIDAuMDAzMzA0LCAwLjAwMzMwNCIsIFwKLSAgICAgICAgICAiMC4wMDMzMTQsIDAuMDAzMzIyLCAwLjAwMzMzMywgMC4wMDMzMzUsIDAuMDAzMzM3LCAwLjAwMzMzOCwgMC4wMDMzMzgiLCBcCi0gICAgICAgICAgIjAuMDAzMzg4LCAwLjAwMzM5NSwgMC4wMDM0MDYsIDAuMDAzNDA4LCAwLjAwMzQxMSwgMC4wMDM0MTIsIDAuMDAzNDEyIiwgXAotICAgICAgICAgICIwLjAwMzQ1NiwgMC4wMDM0NjMsIDAuMDAzNDc2LCAwLjAwMzQ3NywgMC4wMDM0NzgsIDAuMDAzNDgyLCAwLjAwMzQ4MiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkdOIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDYzMjIsIDAuMDA2MzI2LCAwLjAwNjMzLCAwLjAwNjMzLCAwLjAwNjMzMSwgMC4wMDYzMzEsIDAuMDA2MzMxIiwgXAotICAgICAgICAgICIwLjAwNjMyNywgMC4wMDYzMywgMC4wMDYzMzUsIDAuMDA2MzM2LCAwLjAwNjMzNiwgMC4wMDYzMzYsIDAuMDA2MzM2IiwgXAotICAgICAgICAgICIwLjAwNjM3LCAwLjAwNjM3MywgMC4wMDYzNzgsIDAuMDA2Mzc5LCAwLjAwNjM3OSwgMC4wMDYzNzksIDAuMDA2Mzc5IiwgXAotICAgICAgICAgICIwLjAwNjQzMiwgMC4wMDY0MzUsIDAuMDA2NDM5LCAwLjAwNjQ0LCAwLjAwNjQ0MSwgMC4wMDY0NCwgMC4wMDY0NDIiLCBcCi0gICAgICAgICAgIjAuMDA2NDkyLCAwLjAwNjQ5MiwgMC4wMDY0OTcsIDAuMDA2NSwgMC4wMDY0OTgsIDAuMDA2NDk4LCAwLjAwNjUwMiIsIFwKLSAgICAgICAgICAiMC4wMDY2MDYsIDAuMDA2NjE2LCAwLjAwNjYxMywgMC4wMDY2MTQsIDAuMDA2NjIxLCAwLjAwNjYyMiwgMC4wMDY2MjIiLCBcCi0gICAgICAgICAgIjAuMDA2NzE0LCAwLjAwNjcxMiwgMC4wMDY3MjEsIDAuMDA2NzIyLCAwLjAwNjcyMiwgMC4wMDY3MjMsIDAuMDA2NzE5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1NjQ4LCAwLjAwNTY1NiwgMC4wMDU2NjYsIDAuMDA1NjY4LCAwLjAwNTY3LCAwLjAwNTY3MiwgMC4wMDU2NzEiLCBcCi0gICAgICAgICAgIjAuMDA1NjUxLCAwLjAwNTY1OCwgMC4wMDU2NjksIDAuMDA1NjcyLCAwLjAwNTY3MywgMC4wMDU2NzQsIDAuMDA1Njc0IiwgXAotICAgICAgICAgICIwLjAwNTY5MywgMC4wMDU3MDEsIDAuMDA1NzEyLCAwLjAwNTcxMiwgMC4wMDU3MTUsIDAuMDA1NzE4LCAwLjAwNTcxNiIsIFwKLSAgICAgICAgICAiMC4wMDU3NTUsIDAuMDA1NzYzLCAwLjAwNTc3NSwgMC4wMDU3NzMsIDAuMDA1Nzc4LCAwLjAwNTc3OSwgMC4wMDU3NzkiLCBcCi0gICAgICAgICAgIjAuMDA1ODE5LCAwLjAwNTgyNiwgMC4wMDU4MzQsIDAuMDA1ODM5LCAwLjAwNTgzOCwgMC4wMDU4NDEsIDAuMDA1ODM4IiwgXAotICAgICAgICAgICIwLjAwNTkzNiwgMC4wMDU5NDcsIDAuMDA1OTQ3LCAwLjAwNTk0OSwgMC4wMDU5NSwgMC4wMDU5NTEsIDAuMDA1OTUyIiwgXAotICAgICAgICAgICIwLjAwNjAzNSwgMC4wMDYwNDUsIDAuMDA2MDU0LCAwLjAwNjA1NywgMC4wMDYwNTcsIDAuMDA2MDU4LCAwLjAwNjA1OCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDU3NzcsIDAuMDA1NzgsIDAuMDA1Nzg1LCAwLjAwNTc4NSwgMC4wMDU3ODYsIDAuMDA1Nzg2LCAwLjAwNTc4NiIsIFwKLSAgICAgICAgICAiMC4wMDU3NzgsIDAuMDA1NzgxLCAwLjAwNTc4NSwgMC4wMDU3ODYsIDAuMDA1Nzg3LCAwLjAwNTc4NywgMC4wMDU3ODciLCBcCi0gICAgICAgICAgIjAuMDA1ODA2LCAwLjAwNTgxLCAwLjAwNTgxNCwgMC4wMDU4MTUsIDAuMDA1ODE1LCAwLjAwNTgxNSwgMC4wMDU4MTUiLCBcCi0gICAgICAgICAgIjAuMDA1ODY0LCAwLjAwNTg2OCwgMC4wMDU4NzIsIDAuMDA1ODcyLCAwLjAwNTg3MywgMC4wMDU4NzMsIDAuMDA1ODczIiwgXAotICAgICAgICAgICIwLjAwNTkwNywgMC4wMDU5MTEsIDAuMDA1OTE1LCAwLjAwNTkxNiwgMC4wMDU5MTYsIDAuMDA1OTE4LCAwLjAwNTkxNyIsIFwKLSAgICAgICAgICAiMC4wMDYwMTMsIDAuMDA2MDEzLCAwLjAwNjAyLCAwLjAwNjAyMSwgMC4wMDYwMjEsIDAuMDA2MDIxLCAwLjAwNjAyMSIsIFwKLSAgICAgICAgICAiMC4wMDYxMTUsIDAuMDA2MTIxLCAwLjAwNjEyNSwgMC4wMDYxMjUsIDAuMDA2MTI2LCAwLjAwNjEyNiwgMC4wMDYxMjYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQ1NywgMC4wMDQ1NzcsIDAuMDA0NTg4LCAwLjAwNDU5MSwgMC4wMDQ1OTIsIDAuMDA0NTkzLCAwLjAwNDU5MyIsIFwKLSAgICAgICAgICAiMC4wMDQ1NTEsIDAuMDA0NTU4LCAwLjAwNDU2OSwgMC4wMDQ1NzIsIDAuMDA0NTczLCAwLjAwNDU3NCwgMC4wMDQ1NzQiLCBcCi0gICAgICAgICAgIjAuMDA0NTcyLCAwLjAwNDU4LCAwLjAwNDU5LCAwLjAwNDU5MywgMC4wMDQ1OTQsIDAuMDA0NTk2LCAwLjAwNDU5NiIsIFwKLSAgICAgICAgICAiMC4wMDQ1OTYsIDAuMDA0NjA0LCAwLjAwNDYxNCwgMC4wMDQ2MTcsIDAuMDA0NjE4LCAwLjAwNDYxOSwgMC4wMDQ2MTkiLCBcCi0gICAgICAgICAgIjAuMDA0NjQyLCAwLjAwNDY0OSwgMC4wMDQ2NiwgMC4wMDQ2NjIsIDAuMDA0NjYzLCAwLjAwNDY2NSwgMC4wMDQ2NjUiLCBcCi0gICAgICAgICAgIjAuMDA0NzI2LCAwLjAwNDczNCwgMC4wMDQ3NDQsIDAuMDA0NzQ2LCAwLjAwNDc0NywgMC4wMDQ3NDgsIDAuMDA0NzQ5IiwgXAotICAgICAgICAgICIwLjAwNDgwMiwgMC4wMDQ4MSwgMC4wMDQ4MiwgMC4wMDQ4MjIsIDAuMDA0ODIzLCAwLjAwNDgyNCwgMC4wMDQ4MjQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyNzE2LCAwLjAwMjcxOCwgMC4wMDI3MjEsIDAuMDAyNzIxLCAwLjAwMjcyMSwgMC4wMDI3MjEsIDAuMDAyNzIxIiwgXAotICAgICAgICAgICIwLjAwMjY5NSwgMC4wMDI2OTgsIDAuMDAyNzAyLCAwLjAwMjcwMiwgMC4wMDI3MDMsIDAuMDAyNzAzLCAwLjAwMjcwMyIsIFwKLSAgICAgICAgICAiMC4wMDI3MTgsIDAuMDAyNzIsIDAuMDAyNzI0LCAwLjAwMjcyNCwgMC4wMDI3MjQsIDAuMDAyNzI0LCAwLjAwMjcyNCIsIFwKLSAgICAgICAgICAiMC4wMDI3NjYsIDAuMDAyNzY2LCAwLjAwMjc2NywgMC4wMDI3NjcsIDAuMDAyNzY2LCAwLjAwMjc2NiwgMC4wMDI3NjYiLCBcCi0gICAgICAgICAgIjAuMDAyODMxLCAwLjAwMjgyOSwgMC4wMDI4MjYsIDAuMDAyODI0LCAwLjAwMjgyNCwgMC4wMDI4MjMsIDAuMDAyODIzIiwgXAotICAgICAgICAgICIwLjAwMjkxMywgMC4wMDI5MDksIDAuMDAyOTAzLCAwLjAwMjkwMiwgMC4wMDI5LCAwLjAwMjg5OSwgMC4wMDI4OTkiLCBcCi0gICAgICAgICAgIjAuMDAyOTYyLCAwLjAwMjk1NywgMC4wMDI5NTMsIDAuMDAyOTUyLCAwLjAwMjk1MSwgMC4wMDI5NSwgMC4wMDI5NDkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDM3NzgsIDAuMDAzNzgyLCAwLjAwMzc4NywgMC4wMDM3ODgsIDAuMDAzNzg5LCAwLjAwMzc4OCwgMC4wMDM3ODkiLCBcCi0gICAgICAgICAgIjAuMDAzNzY3LCAwLjAwMzc3MSwgMC4wMDM3NzgsIDAuMDAzNzc5LCAwLjAwMzc3OSwgMC4wMDM3ODEsIDAuMDAzNzgiLCBcCi0gICAgICAgICAgIjAuMDAzNzg4LCAwLjAwMzc5MywgMC4wMDM3OTksIDAuMDAzODAxLCAwLjAwMzgwMiwgMC4wMDM4MDIsIDAuMDAzODAzIiwgXAotICAgICAgICAgICIwLjAwMzgyNCwgMC4wMDM4MjcsIDAuMDAzODMzLCAwLjAwMzgzNCwgMC4wMDM4MzUsIDAuMDAzODM2LCAwLjAwMzgzNiIsIFwKLSAgICAgICAgICAiMC4wMDM4NzUsIDAuMDAzODc3LCAwLjAwMzg4MiwgMC4wMDM4ODIsIDAuMDAzODgzLCAwLjAwMzg4MywgMC4wMDM4ODQiLCBcCi0gICAgICAgICAgIjAuMDAzOTcyLCAwLjAwMzk3MSwgMC4wMDM5NzIsIDAuMDAzOTc0LCAwLjAwMzk3NCwgMC4wMDM5NzQsIDAuMDAzOTc0IiwgXAotICAgICAgICAgICIwLjAwNDA2LCAwLjAwNDA1NywgMC4wMDQwNTYsIDAuMDA0MDU2LCAwLjAwNDA1NiwgMC4wMDQwNTYsIDAuMDA0MDU3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihSTikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNjI2ODY7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNjI2ODY7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNjE0MjI7Ci0gICAgY2xvY2sgOiB0cnVlOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzIzLCAwLjAwMzE5OSwgMC4wMDMyOTgsIDAuMDAzNDM3LCAwLjAwMzYwMiwgMC4wMDM5MDgsIDAuMDA0MTg4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNjEzLCAwLjAwMDYwMSwgMC4wMDA1OTcsIDAuMDAwNTk1LCAwLjAwMDU5NSwgMC4wMDA1OTUsIDAuMDAwNTk1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkdOIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIkQmU04iOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8xX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDM3NSwgLTAuMDMyNSwgLTAuMDI2MjUsIC0wLjAyLCAtMC4wMiwgLTAuMDE2MjUsIC0wLjAyIiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMjUsIC0wLjAyMTI1LCAtMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAyNzUsIC0wLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDM3NSwgLTAuMDMzNzUsIC0wLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wNjEyNSwgLTAuMDUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDQzNzUsIC0wLjA0LCAtMC4wMzc1IiwgXAotICAgICAgICAgICItMC4wNjUsIC0wLjA2LCAtMC4wNTM3NSwgLTAuMDUzNzUsIC0wLjA0NzUsIC0wLjA0Mzc1LCAtMC4wNDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDczNzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNTYyNSwgLTAuMDU2MjUsIC0wLjA1MjUsIC0wLjA1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRCZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjExMzM5LCAwLjExOTkwNSwgMC4xMjY0NzcsIDAuMTMyMDkxLCAwLjEzNjM3OSwgMC4xNDI0NTksIDAuMTQ2ODYzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkdOIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJEJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMV9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1LCAwLjAzODc1LCAwLjAzMjUsIDAuMDMyNSwgMC4wMzI1LCAwLjAyODc1LCAwLjAyNjI1IiwgXAotICAgICAgICAgICIwLjA1NSwgMC4wNDM3NSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzNzUsIDAuMDMzNzUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMDYxMjUsIDAuMDUsIDAuMDUsIDAuMDQzNzUsIDAuMDQzNzUsIDAuMDQsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiMC4wNjc1LCAwLjA1NjI1LCAwLjA1NjI1LCAwLjA1LCAwLjA1LCAwLjA0NjI1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNTYyNSwgMC4wNSwgMC4wNDYyNSwgMC4wNSIsIFwKLSAgICAgICAgICAiMC4wNzc1LCAwLjA3MjUsIDAuMDY2MjUsIDAuMDYsIDAuMDYsIDAuMDU2MjUsIDAuMDUzNzUiLCBcCi0gICAgICAgICAgIjAuMDgsIDAuMDc1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDYyNSwgMC4wNTg3NSwgMC4wNTYyNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oU04pICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYyNDYxNTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MjQ2MTU7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjIzOTg7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjk2LCAwLjAwMDI5NiwgMC4wMDAyOTYsIDAuMDAwMjk2LCAwLjAwMDI5NiwgMC4wMDAyOTYsIDAuMDAwMjk2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzE2LCAwLjAwMDMwNSwgMC4wMDAzLCAwLjAwMDI5OCwgMC4wMDAyOTcsIDAuMDAwMjk3LCAwLjAwMDI5NyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQiOwotICAgICAgc2RmX2NvbmQgOiAiRCA9PSAxJ2IwIjsKLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjA2NzkwMiwgMC4wNzYwMjMsIDAuMDg1NDgxLCAwLjA5MjcwMSwgMC4wOTg1MDYsIDAuMTA1ODA3LCAwLjExMTMxOCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJHTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJlY292ZXJ5X3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUQmUk4iOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1JOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQocmVjb3ZlcnlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAsIC0wLjAxMTI1LCAtMC4wMTc1LCAtMC4wMTc1LCAtMC4wMjM3NSwgLTAuMDI3NSwgLTAuMDMiLCBcCi0gICAgICAgICAgIjAuMDA1LCAtMC4wMDYyNSwgLTAuMDA2MjUsIC0wLjAxMjUsIC0wLjAxODc1LCAtMC4wMjI1LCAtMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMDExMjUsIDAsIC0wLjAwNjI1LCAtMC4wMDYyNSwgLTAuMDEyNSwgLTAuMDE2MjUsIC0wLjAxODc1IiwgXAotICAgICAgICAgICIwLjAxMTI1LCAwLjAwNjI1LCAwLCAtMC4wMDYyNSwgLTAuMDA2MjUsIC0wLjAxLCAtMC4wMTI1IiwgXAotICAgICAgICAgICIwLjAxNzUsIDAuMDEyNSwgMC4wMDYyNSwgMCwgLTAuMDA2MjUsIC0wLjAxLCAtMC4wMTI1IiwgXAotICAgICAgICAgICIwLjAyMTI1LCAwLjAxNjI1LCAwLjAxLCAwLjAwMzc1LCAwLjAwMzc1LCAtMC4wMDYyNSwgLTAuMDA4NzUiLCBcCi0gICAgICAgICAgIjAuMDIzNzUsIDAuMDE4NzUsIDAuMDEyNSwgMC4wMDYyNSwgMC4wMDYyNSwgMC4wMDI1LCAtMC4wMDYyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJlY292ZXJ5X3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiR04iOwotICAgICAgc2RmX2NvbmQgOiAiR04gPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQocmVjb3ZlcnlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2MjUsIDAuMDA3NSwgMC4wMDc1LCAwLjAwNzUsIDAuMDA3NSwgMC4wMSwgMC4wMDc1IiwgXAotICAgICAgICAgICIwLjAxMTI1LCAwLjAxMjUsIDAuMDA2MjUsIDAuMDA2MjUsIDAuMDEyNSwgMC4wMDg3NSwgMC4wMTI1IiwgXAotICAgICAgICAgICIwLjAxNzUsIDAuMDEyNSwgMC4wMTI1LCAwLjAxMjUsIDAuMDEyNSwgMC4wMTUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4wMjM3NSwgMC4wMTg3NSwgMC4wMTg3NSwgMC4wMTI1LCAwLjAxMjUsIDAuMDE1LCAwLjAxODc1IiwgXAotICAgICAgICAgICIwLjAyMzc1LCAwLjAxODc1LCAwLjAxODc1LCAwLjAxODc1LCAwLjAxODc1LCAwLjAxNSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4wMjc1LCAwLjAyMjUsIDAuMDIyNSwgMC4wMjI1LCAwLjAyMjUsIDAuMDE4NzUsIDAuMDIyNSIsIFwKLSAgICAgICAgICAiMC4wMywgMC4wMjUsIDAuMDI1LCAwLjAyNSwgMC4wMjUsIDAuMDIxMjUsIDAuMDE4NzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiR04iOwotICAgICAgdGltaW5nX3R5cGUgOiByZW1vdmFsX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUQmUk4iOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1JOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQocmVtb3ZhbF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTg3NSwgMC4wMjM3NSwgMC4wMywgMC4wMzYyNSwgMC4wNDI1LCAwLjA0NjI1LCAwLjA0ODc1IiwgXAotICAgICAgICAgICIwLjAxMzc1LCAwLjAxODc1LCAwLjAyNSwgMC4wMzEyNSwgMC4wMzEyNSwgMC4wNDEyNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4wMDc1LCAwLjAxODc1LCAwLjAxODc1LCAwLjAyNSwgMC4wMzEyNSwgMC4wMzUsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiMC4wMDc1LCAwLjAxMjUsIDAuMDE4NzUsIDAuMDE4NzUsIDAuMDI1LCAwLjAyODc1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICIwLjAwMTI1LCAwLjAwNjI1LCAwLjAxMjUsIDAuMDE4NzUsIDAuMDE4NzUsIDAuMDI4NzUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjAwMjUsIDAuMDAyNSwgMC4wMDg3NSwgMC4wMTUsIDAuMDE1LCAwLjAxODc1LCAwLjAyNzUiLCBcCi0gICAgICAgICAgIi0wLjAwNSwgMCwgMC4wMDYyNSwgMC4wMTI1LCAwLjAxMjUsIDAuMDE2MjUsIDAuMDE4NzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUk4iOwotICAgICAgdGltaW5nX3R5cGUgOiByZW1vdmFsX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiR04iOwotICAgICAgc2RmX2NvbmQgOiAiR04gPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQocmVtb3ZhbF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDYyNSwgMC4wMTEyNSwgMC4wMTEyNSwgMC4wMTc1LCAwLjAxNzUsIDAuMDIxMjUsIDAuMDIzNzUiLCBcCi0gICAgICAgICAgIjAuMDAxMjUsIDAuMDA2MjUsIDAuMDA2MjUsIDAuMDEyNSwgMC4wMTI1LCAwLjAxNjI1LCAwLjAxODc1IiwgXAotICAgICAgICAgICItMC4wMDUsIDAsIDAuMDA2MjUsIDAuMDA2MjUsIDAuMDA2MjUsIDAuMDEsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDA1LCAwLCAwLCAwLjAwNjI1LCAwLjAwNjI1LCAwLjAxLCAwLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjAxMTI1LCAtMC4wMDYyNSwgMCwgMCwgMCwgMC4wMDM3NSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDE1LCAtMC4wMSwgLTAuMDAzNzUsIC0wLjAwMzc1LCAtMC4wMDM3NSwgMCwgMC4wMDI1IiwgXAotICAgICAgICAgICItMC4wMTc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgLTAuMDA2MjUsIC0wLjAwNjI1LCAtMC4wMDI1LCAwIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IFRMQVROVFNDQVgzICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChUTEFUTlRTQ0FYMykgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjkxNDA0OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIGNsb2NrX2dhdGluZ19pbnRlZ3JhdGVkX2NlbGwgOiAibGF0Y2hfcG9zZWRnZV9wcmVjb250cm9sIjsKLSAgc3RhdGV0YWJsZSgiIENLICBFIFNFICIsICIgRUlOVCAiKSB7Ci0gICAgIHRhYmxlIDogIiAgTCAgTCAgTCA6IC0gOiBMICwgXAotICAgICAgICAgICAgICAgIEwgIEggIEwgOiAtIDogSCAsIFwKLSAgICAgICAgICAgICAgICBMICBMICBIIDogLSA6IEggLCBcCi0gICAgICAgICAgICAgICAgTCAgSCAgSCA6IC0gOiBIICwgXAotICAgICAgICAgICAgICAgIEggIC0gIC0gOiAtIDogTiAiOwotICB9Ci0gIHBpbihFSU5UKSB7Ci0gICAgZGlyZWN0aW9uIDogaW50ZXJuYWw7Ci0gICAgaW50ZXJuYWxfbm9kZSA6ICJFSU5UIjsKLSAgfQotICBwaW4oQ0spICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY4MTY2NzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2ODE2MjQ7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjgxNjY3OwotICAgIGNsb2NrX2dhdGVfY2xvY2tfcGluIDogdHJ1ZTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDM1NzUsIDAuMDAzNTY2LCAwLjAwMzY0MSwgMC4wMDM3NDQsIDAuMDAzODYxLCAwLjAwNDA4NSwgMC4wMDQyOSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNDM1OCwgMC4wMDQzNjYsIDAuMDA0NDE5LCAwLjAwNDUxOCwgMC4wMDQ2NDcsIDAuMDA0OTA1LCAwLjAwNTExMyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUUmIVNFIjsKLSAgICAgIHNkZl9jb25kIDogIkVfRVFfMF9BTl9TRV9FUV8wID09IDEnYjEiOwotICAgICAgZmFsbF9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDY3OTAxLCAwLjA3NTkwMiwgMC4wODQxNTcsIDAuMDkwMTUzLCAwLjA5NDk2OSwgMC4xMDE1MzUsIDAuMTA2MjM4Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihFKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA3MDQ0NTg7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNzA0NDU4OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDcwNDM2MTsKLSAgICBjbG9ja19nYXRlX2VuYWJsZV9waW4gOiB0cnVlOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzMxNCwgMC4wMDMzMSwgMC4wMDMzNjYsIDAuMDAzNDQxLCAwLjAwMzUyOSwgMC4wMDM3MDIsIDAuMDAzODYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDU1NDYsIDAuMDA1NTQzLCAwLjAwNTYwMiwgMC4wMDU2OTIsIDAuMDA1NzczLCAwLjAwNTk1NiwgMC4wMDYxMjYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIVNFIjsKLSAgICAgIHNkZl9jb25kIDogIlNFID09IDEnYjAiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAxODc1LCAtMC4wMTM3NSwgLTAuMDEzNzUsIC0wLjAwNzUsIC0wLjAwNzUsIC0wLjAwMzc1LCAtMC4wMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDg3NSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMzEyNSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDI1LCAtMC4wMjEyNSwgLTAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzNzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMzEyNSwgLTAuMDI3NSwgLTAuMDI1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDQzNzUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzc1LCAtMC4wMzM3NSwgLTAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjA1ODc1LCAtMC4wNTM3NSwgLTAuMDQ3NSwgLTAuMDQ3NSwgLTAuMDQxMjUsIC0wLjAzNzUsIC0wLjAzNSIsIFwKLSAgICAgICAgICAiLTAuMDYxMjUsIC0wLjA1NjI1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjA1LCAtMC4wNDYyNSwgLTAuMDQzNzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMjUsIC0wLjAxMzc1LCAtMC4wMDc1LCAtMC4wMDEyNSwgMC4wMDUsIDAuMDA4NzUsIDAuMDExMjUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMjUsIC0wLjAxMjUsIC0wLjAxMjUsIC0wLjAwNjI1LCAtMC4wMDI1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA4NzUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDQzNzUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAyNSwgLTAuMDE1LCAtMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAyNzUsIC0wLjAxODc1IiwgXAotICAgICAgICAgICItMC4wNjUsIC0wLjA2LCAtMC4wNDc1LCAtMC4wNDc1LCAtMC4wNDEyNSwgLTAuMDM3NSwgLTAuMDI4NzUiLCBcCi0gICAgICAgICAgIi0wLjA3Mzc1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjA1LCAtMC4wNCwgLTAuMDM3NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIVNFIjsKLSAgICAgIHNkZl9jb25kIDogIlNFID09IDEnYjAiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyNSwgMC4wMiwgMC4wMiwgMC4wMTM3NSwgMC4wMTM3NSwgMC4wMSwgMC4wMDc1IiwgXAotICAgICAgICAgICIwLjAzNjI1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMjUsIDAuMDE4NzUsIDAuMDE1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMDQyNSwgMC4wMzc1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDMxMjUsIDAuMDI3NSwgMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMDQ4NzUsIDAuMDQzNzUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzc1LCAwLjAzMzc1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICIwLjA1NSwgMC4wNSwgMC4wNSwgMC4wNDM3NSwgMC4wNDM3NSwgMC4wNCwgMC4wMzc1IiwgXAotICAgICAgICAgICIwLjA2NSwgMC4wNiwgMC4wNTM3NSwgMC4wNTM3NSwgMC4wNDc1LCAwLjA0Mzc1LCAwLjA0MTI1IiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDYyNSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1NjI1LCAwLjA1MjUsIDAuMDUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzEyNSwgMC4wMiwgMC4wMTM3NSwgMC4wMDc1LCAwLjAwMTI1LCAtMC4wMDI1LCAtMC4wMDUiLCBcCi0gICAgICAgICAgIjAuMDM2MjUsIDAuMDMxMjUsIDAuMDE4NzUsIDAuMDE4NzUsIDAuMDEyNSwgMC4wMDg3NSwgMCIsIFwKLSAgICAgICAgICAiMC4wNDg3NSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMTg3NSwgMC4wMTUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4wNTUsIDAuMDUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMzEyNSwgMC4wMjEyNSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4wNjEyNSwgMC4wNTYyNSwgMC4wNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzMzc1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiMC4wNzEyNSwgMC4wNjYyNSwgMC4wNTM3NSwgMC4wNTM3NSwgMC4wNDc1LCAwLjA0Mzc1LCAwLjAzNSIsIFwKLSAgICAgICAgICAiMC4wOCwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1NjI1LCAwLjA0NjI1LCAwLjA0Mzc1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihFQ0spICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMS4wMTUwNDsKLSAgICBjbG9ja19nYXRlX291dF9waW4gOiB0cnVlOwotICAgIHN0YXRlX2Z1bmN0aW9uIDogIihDSyBFSU5UKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc2NTUyLCAwLjE1MTkyOSwgMC4yMjU2MjcsIDAuMjc4MjczLCAwLjM2MjQ1NCwgMC40MzYxNDIsIDAuNTQxNDUyIiwgXAotICAgICAgICAgICIwLjA4NDY2NCwgMC4xNTk5ODgsIDAuMjMzNjY4LCAwLjI4NjQxNSwgMC4zNzA1MzcsIDAuNDQ0MjIxLCAwLjU0OTQ3OSIsIFwKLSAgICAgICAgICAiMC4wOTI5MTgsIDAuMTY4MjkyLCAwLjI0MTk4OCwgMC4yOTQ2OTYsIDAuMzc4ODI5LCAwLjQ1MjUxNCwgMC41NTc3NTgiLCBcCi0gICAgICAgICAgIjAuMDk5MDEyLCAwLjE3NDMzOSwgMC4yNDgwMzcsIDAuMzAwNzE0LCAwLjM4NDg5NSwgMC40NTg2MDEsIDAuNTYzODcyIiwgXAotICAgICAgICAgICIwLjEwMzg0NiwgMC4xNzkyNDIsIDAuMjUyOTMsIDAuMzA1NjEyLCAwLjM4OTc3NywgMC40NjM0NiwgMC41Njg3MzUiLCBcCi0gICAgICAgICAgIjAuMTEwNjg5LCAwLjE4NjAyMywgMC4yNTk3MjIsIDAuMzEyMzg1LCAwLjM5NjU0MSwgMC40NzAyOTMsIDAuNTc1NDcxIiwgXAotICAgICAgICAgICIwLjExNTUwNCwgMC4xOTA4NSwgMC4yNjQ1MjQsIDAuMzE3MTc1LCAwLjQwMTM5OSwgMC40NzUwMjQsIDAuNTgwMjYiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzI4OSwgMC4xODQxNjcsIDAuMzM5Mjk4LCAwLjQ0OTU1NiwgMC42Mjc0NjQsIDAuNzgyNTk4LCAxLjAwNDY4IiwgXAotICAgICAgICAgICIwLjAzMjg4NCwgMC4xODM4MTMsIDAuMzM4ODYzLCAwLjQ0OTQ5NSwgMC42MjgzNzksIDAuNzgyNjI3LCAxLjAwNjM2IiwgXAotICAgICAgICAgICIwLjAzMjg5NCwgMC4xODQxODYsIDAuMzM5MjYxLCAwLjQ0OTUzOSwgMC42Mjc2NTEsIDAuNzgzOTI5LCAxLjAwNjM2IiwgXAotICAgICAgICAgICIwLjAzMjkwNCwgMC4xODQxODYsIDAuMzM4ODc0LCAwLjQ0OTY0MSwgMC42MjgzMTgsIDAuNzgzOTAxLCAxLjAwNDc2IiwgXAotICAgICAgICAgICIwLjAzMjg1NiwgMC4xODQxOSwgMC4zMzg4NTEsIDAuNDQ5NjMzLCAwLjYyODIwNCwgMC43ODM4NTgsIDEuMDA2MjMiLCBcCi0gICAgICAgICAgIjAuMDMyODk5LCAwLjE4NDE5NiwgMC4zMzkzMDIsIDAuNDQ5NTYsIDAuNjI4MTk3LCAwLjc4MjY0MSwgMS4wMDYyMyIsIFwKLSAgICAgICAgICAiMC4wMzI5NTYsIDAuMTg0MDUxLCAwLjMzOTI1MywgMC40NTAzNzgsIDAuNjI4MjE3LCAwLjc4MzA4NCwgMS4wMDYyMSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2NzM3MiwgMC4xMzk4NzEsIDAuMjExOTA5LCAwLjI2MzM1NiwgMC4zNDU2ODUsIDAuNDE3NzUzLCAwLjUyMDcwNyIsIFwKLSAgICAgICAgICAiMC4wNzUzMjUsIDAuMTQ3ODIyLCAwLjIxOTg2MSwgMC4yNzEzMDUsIDAuMzUzNjQxLCAwLjQyNTg1MiwgMC41Mjg2NDYiLCBcCi0gICAgICAgICAgIjAuMDgzMzM4LCAwLjE1NTgzMywgMC4yMjc4NzQsIDAuMjc5MzI1LCAwLjM2MTc5MiwgMC40MzM4NjksIDAuNTM2NjU5IiwgXAotICAgICAgICAgICIwLjA4OTEzMSwgMC4xNjE2MDIsIDAuMjMzNjMyLCAwLjI4NTEzMywgMC4zNjc1NzQsIDAuNDM5NzE4LCAwLjU0MjY0MiIsIFwKLSAgICAgICAgICAiMC4wOTM3MTUsIDAuMTY2Mjk0LCAwLjIzODM3MiwgMC4yODk4NzcsIDAuMzcyNDM0LCAwLjQ0NDM0MywgMC41NDcyOTYiLCBcCi0gICAgICAgICAgIjAuMTAwMDY0LCAwLjE3MjU3OCwgMC4yNDQ2MDUsIDAuMjk2MDY0LCAwLjM3ODQyOSwgMC40NTA2NTgsIDAuNTUzNjkyIiwgXAotICAgICAgICAgICIwLjEwNDQ4NSwgMC4xNzcwMTMsIDAuMjQ5MDQyLCAwLjMwMDUwMywgMC4zODI5MDksIDAuNDU0OTYyLCAwLjU1ODA1NiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyODI2NCwgMC4xNzUyOTksIDAuMzI0NzMxLCAwLjQzMTU2MywgMC42MDMxNDEsIDAuNzUyODE2LCAwLjk2NTAyIiwgXAotICAgICAgICAgICIwLjAyODI2NywgMC4xNzU2NzQsIDAuMzI0NjMsIDAuNDMyMDAzLCAwLjYwMjQ1OSwgMC43NTEzNzMsIDAuOTY2NDg1IiwgXAotICAgICAgICAgICIwLjAyODI2NiwgMC4xNzU2NzQsIDAuMzI0NjE5LCAwLjQzMTYyMSwgMC42MDE5OTUsIDAuNzUxNDMzLCAwLjk2NjIxNSIsIFwKLSAgICAgICAgICAiMC4wMjgzMzQsIDAuMTc1NzI2LCAwLjMyNTEzMiwgMC40MzE2MDMsIDAuNjAyMDMxLCAwLjc1MTc4MSwgMC45NjYyMDMiLCBcCi0gICAgICAgICAgIjAuMDI4MzI1LCAwLjE3NTQ4NiwgMC4zMjUyMTQsIDAuNDMxNTkzLCAwLjYwMjMwOSwgMC43NTE1NSwgMC45NjYxOTIiLCBcCi0gICAgICAgICAgIjAuMDI4MzMsIDAuMTc1NjEyLCAwLjMyNTE4MiwgMC40MzE1NjQsIDAuNjAxOTYxLCAwLjc1MTUwMSwgMC45NjU5MTMiLCBcCi0gICAgICAgICAgIjAuMDI4MzI1LCAwLjE3NTM3MiwgMC4zMjUwMzQsIDAuNDMxOTEyLCAwLjYwMzE0OCwgMC43NTI4NzUsIDAuOTY2NDYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDg0NzUsIDAuMDA4NTk2LCAwLjAwODYxNCwgMC4wMDg2MTksIDAuMDA4NjI1LCAwLjAwODYyNywgMC4wMDg2MjgiLCBcCi0gICAgICAgICAgIjAuMDA4NDgxLCAwLjAwODYwMiwgMC4wMDg2MiwgMC4wMDg2MjUsIDAuMDA4NjMyLCAwLjAwODYzOCwgMC4wMDg2MzgiLCBcCi0gICAgICAgICAgIjAuMDA4NTM2LCAwLjAwODY1OCwgMC4wMDg2NzgsIDAuMDA4Njc5LCAwLjAwODY5MSwgMC4wMDg2ODYsIDAuMDA4Njk0IiwgXAotICAgICAgICAgICIwLjAwODY1MSwgMC4wMDg3NzIsIDAuMDA4Nzg5LCAwLjAwODc5NCwgMC4wMDg3OTksIDAuMDA4ODAyLCAwLjAwODgwMyIsIFwKLSAgICAgICAgICAiMC4wMDg3NjQsIDAuMDA4ODg4LCAwLjAwODkwOCwgMC4wMDg5MTIsIDAuMDA4OTE4LCAwLjAwODkyMiwgMC4wMDg5MjIiLCBcCi0gICAgICAgICAgIjAuMDA4OTcxLCAwLjAwOTA5MywgMC4wMDkxMDgsIDAuMDA5MTE2LCAwLjAwOTEyMSwgMC4wMDkxMjEsIDAuMDA5MTI0IiwgXAotICAgICAgICAgICIwLjAwOTE1NCwgMC4wMDkyODEsIDAuMDA5Mjk1LCAwLjAwOTMwNywgMC4wMDkyOTksIDAuMDA5MzEyLCAwLjAwOTMxNCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEyOTk1LCAwLjAxMzEyMywgMC4wMTMxMzgsIDAuMDEzMTQyLCAwLjAxMzE0NiwgMC4wMTMxNDcsIDAuMDEzMTQ5IiwgXAotICAgICAgICAgICIwLjAxMjk5MywgMC4wMTMxMjIsIDAuMDEzMTM2LCAwLjAxMzE0LCAwLjAxMzE0NCwgMC4wMTMxNDcsIDAuMDEzMTQ4IiwgXAotICAgICAgICAgICIwLjAxMzA4MywgMC4wMTMyMTMsIDAuMDEzMjI4LCAwLjAxMzIzMiwgMC4wMTMyMzYsIDAuMDEzMjM4LCAwLjAxMzI0IiwgXAotICAgICAgICAgICIwLjAxMzIyMSwgMC4wMTMzNiwgMC4wMTMzNzYsIDAuMDEzMzgsIDAuMDEzMzg1LCAwLjAxMzM4NiwgMC4wMTMzODgiLCBcCi0gICAgICAgICAgIjAuMDEzMzY3LCAwLjAxMzQ5NCwgMC4wMTM1MSwgMC4wMTM1MTQsIDAuMDEzNTE5LCAwLjAxMzUyLCAwLjAxMzUyMiIsIFwKLSAgICAgICAgICAiMC4wMTM1NTksIDAuMDEzNjksIDAuMDEzNzA1LCAwLjAxMzcwNywgMC4wMTM3MTEsIDAuMDEzNzEzLCAwLjAxMzcxNSIsIFwKLSAgICAgICAgICAiMC4wMTM3NywgMC4wMTM5MDIsIDAuMDEzOTE3LCAwLjAxMzkxNiwgMC4wMTM5MTgsIDAuMDEzOTMsIDAuMDEzOTMxIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTRSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNzMxMjcyOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDcyOTYxNjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA3MzEyNzI7Ci0gICAgY2xvY2tfZ2F0ZV90ZXN0X3BpbiA6IHRydWU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzNDg1LCAwLjAwMzQ4MiwgMC4wMDM1MzEsIDAuMDAzNjE1LCAwLjAwMzcxMywgMC4wMDM4OTEsIDAuMDA0MDY3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA1ODA5LCAwLjAwNTc4OCwgMC4wMDU4MTcsIDAuMDA1ODY5LCAwLjAwNTk0MiwgMC4wMDYwODcsIDAuMDA2MTk1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFFIjsKLSAgICAgIHNkZl9jb25kIDogIkUgPT0gMSdiMCI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDI1LCAtMC4wMTM3NSwgLTAuMDEzNzUsIC0wLjAwNzUsIC0wLjAwNzUsIC0wLjAwMzc1LCAtMC4wMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDg3NSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzMTI1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMjUsIC0wLjAyMTI1LCAtMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDI3NSwgLTAuMDI1IiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzMzc1LCAtMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDY1LCAtMC4wNTM3NSwgLTAuMDUzNzUsIC0wLjA0NzUsIC0wLjA0NzUsIC0wLjA0Mzc1LCAtMC4wNDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDY3NSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDQ2MjUsIC0wLjA0Mzc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDI1LCAtMC4wMiwgLTAuMDA3NSwgLTAuMDA3NSwgLTAuMDAxMjUsIDAuMDA4NzUsIDAuMDExMjUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgLTAuMDAyNSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDg3NSwgMCIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxNSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wNDM3NSwgLTAuMDMxMjUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAxNSwgLTAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDU4NzUsIC0wLjA0NzUsIC0wLjA0MTI1LCAtMC4wMzUsIC0wLjAyODc1LCAtMC4wMjUsIC0wLjAyMjUiLCBcCi0gICAgICAgICAgIi0wLjA2MTI1LCAtMC4wNTYyNSwgLTAuMDQzNzUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzM3NSwgLTAuMDI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRSI7Ci0gICAgICBzZGZfY29uZCA6ICJFID09IDEnYjAiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzMTI1LCAwLjAyLCAwLjAyLCAwLjAxMzc1LCAwLjAxMzc1LCAwLjAxLCAwLjAwNzUiLCBcCi0gICAgICAgICAgIjAuMDM2MjUsIDAuMDMxMjUsIDAuMDI1LCAwLjAyNSwgMC4wMTg3NSwgMC4wMTUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4wNDg3NSwgMC4wMzc1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDMxMjUsIDAuMDI3NSwgMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMDU1LCAwLjA1LCAwLjA0Mzc1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDMzNzUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMDYxMjUsIDAuMDU2MjUsIDAuMDUsIDAuMDUsIDAuMDQzNzUsIDAuMDQsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiMC4wNzEyNSwgMC4wNiwgMC4wNiwgMC4wNTM3NSwgMC4wNTM3NSwgMC4wNSwgMC4wNDc1IiwgXAotICAgICAgICAgICIwLjA3Mzc1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNTI1LCAwLjA1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDMxMjUsIDAuMDI2MjUsIDAuMDEzNzUsIDAuMDEzNzUsIDAuMDA3NSwgLTAuMDAyNSwgLTAuMDA1IiwgXAotICAgICAgICAgICIwLjAzNjI1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMTg3NSwgMC4wMTI1LCAwLjAwODc1LCAwIiwgXAotICAgICAgICAgICIwLjA0MjUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMjUsIDAuMDE4NzUsIDAuMDE1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICIwLjA0ODc1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDI1LCAwLjAyMTI1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMDU1LCAwLjA1LCAwLjAzNzUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMjEyNSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4wNjUsIDAuMDUzNzUsIDAuMDQ3NSwgMC4wNDEyNSwgMC4wMzUsIDAuMDMxMjUsIDAuMDI4NzUiLCBcCi0gICAgICAgICAgIjAuMDY3NSwgMC4wNjI1LCAwLjA1LCAwLjA1LCAwLjA0Mzc1LCAwLjA0LCAwLjAzMTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBYT1IzWEwgKgotICogLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChYT1IzWEwpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC43NzMxMzsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNzU5MzcyOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDc1OTI1NjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA3NTkzNzI7Ci0gIH0KLSAgcGluKEIpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMjIyNTc2OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMjIyNTc2OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMjIyNTUxOwotICB9Ci0gIHBpbihDKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE1MDAwNTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE1MDAwMjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE1MDAwNTsKLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjE5NDcyNzsKLSAgICBmdW5jdGlvbiA6ICIoKEFeQileQykiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEyNzI3MSwgMC4xMzgzOTEsIDAuMjM2NDA1LCAwLjM5OTAyNiwgMC41NjE3MDgsIDAuOTQxMjU5LCAxLjE1ODY1IiwgXAotICAgICAgICAgICIwLjEzNTI5NywgMC4xNDY0MzMsIDAuMjQ0NDUxLCAwLjQwNzA2NCwgMC41Njk3OTgsIDAuOTQ5MzAxLCAxLjE2NjY4IiwgXAotICAgICAgICAgICIwLjE0NTM1NCwgMC4xNTY0ODQsIDAuMjU0NTE1LCAwLjQxNzEzNSwgMC41ODAwNDksIDAuOTU5NTY4LCAxLjE3Njc2IiwgXAotICAgICAgICAgICIwLjE1NDc5OSwgMC4xNjU5MTgsIDAuMjYzOTI4LCAwLjQyNjU2MiwgMC41ODkyNTQsIDAuOTY4ODc2LCAxLjE4NjE0IiwgXAotICAgICAgICAgICIwLjE2MzMzOSwgMC4xNzQ0OCwgMC4yNzI0ODksIDAuNDM1MTI2LCAwLjU5NzgzMiwgMC45NzczODUsIDEuMTk0OTciLCBcCi0gICAgICAgICAgIjAuMTc1NzYzLCAwLjE4NjkxMywgMC4yODQ5MzgsIDAuNDQ3NTY5LCAwLjYxMDMxNSwgMC45ODk5NSwgMS4yMDczMiIsIFwKLSAgICAgICAgICAiMC4xODUwNTcsIDAuMTk2MjI1LCAwLjI5NDI4MiwgMC40NTY5MzYsIDAuNjE5NjkxLCAwLjk5OTM5MSwgMS4yMTU5MSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMjgxMjMsIDAuMTUwMDk5LCAwLjM1MSwgMC42OTE0OCwgMS4wMzM0NywgMS44MzA0NywgMi4yODQzOSIsIFwKLSAgICAgICAgICAiMC4xMjgxOTUsIDAuMTUwMTA5LCAwLjM1MDg4NiwgMC42OTE0NjksIDEuMDMzMzcsIDEuODMwNDcsIDIuMjg0MzgiLCBcCi0gICAgICAgICAgIjAuMTI4MjMxLCAwLjE1MDA1MiwgMC4zNTA5MSwgMC42OTE0OTksIDEuMDMzMzUsIDEuODI5OSwgMi4yODQzOSIsIFwKLSAgICAgICAgICAiMC4xMjgyODUsIDAuMTUwMTg5LCAwLjM1MDkyOCwgMC42OTE1MjUsIDEuMDMzNDgsIDEuODI5NDMsIDIuMjg0MzUiLCBcCi0gICAgICAgICAgIjAuMTI4NjU5LCAwLjE1MDUxMywgMC4zNTEwMDcsIDAuNjkxNjI4LCAxLjAzMzM5LCAxLjgyODQsIDIuMjg0MzEiLCBcCi0gICAgICAgICAgIjAuMTI5NDk2LCAwLjE1MTIzMiwgMC4zNTEyNzksIDAuNjkxNjc0LCAxLjAzMzMxLCAxLjgyOTc2LCAyLjI4NDM5IiwgXAotICAgICAgICAgICIwLjEzMDMzMywgMC4xNTE5ODgsIDAuMzUxNTg1LCAwLjY5MTc4NywgMS4wMzE1NSwgMS44MzA0LCAyLjI4NDIyIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExMDUwOCwgMC4xMTg3NTYsIDAuMTg5MDksIDAuMzAzOTI5LCAwLjQxODY5NywgMC42ODY0MTUsIDAuODM5NzI4IiwgXAotICAgICAgICAgICIwLjExODMzLCAwLjEyNjU3OCwgMC4xOTY5MTYsIDAuMzExNzYyLCAwLjQyNjQ4NCwgMC42OTQyNDYsIDAuODQ3NTU3IiwgXAotICAgICAgICAgICIwLjEyODA4MywgMC4xMzYzMzEsIDAuMjA2Njc5LCAwLjMyMTUwNCwgMC40MzYyNDcsIDAuNzA0MTM5LCAwLjg1NzA0NyIsIFwKLSAgICAgICAgICAiMC4xMzY4NDgsIDAuMTQ1MDk5LCAwLjIxNTQ1OSwgMC4zMzAyODEsIDAuNDQ1MDI0LCAwLjcxMjk1MiwgMC44NjYxMzMiLCBcCi0gICAgICAgICAgIjAuMTQ0OTczLCAwLjE1MzIzMywgMC4yMjM2MDUsIDAuMzM4NDI3LCAwLjQ1MzIwMywgMC43MjA5NDksIDAuODc0Mjk3IiwgXAotICAgICAgICAgICIwLjE1NTgyMywgMC4xNjQxMzIsIDAuMjM0NjA4LCAwLjM0OTQzLCAwLjQ2NDE3NywgMC43MzE5NjYsIDAuODg1NDIyIiwgXAotICAgICAgICAgICIwLjE2NDAzOSwgMC4xNzI0MTMsIDAuMjQzMDM5LCAwLjM1Nzg1MywgMC40NzI2MjgsIDAuNzQwMzkyLCAwLjg5MzU0MyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTM4NSwgMC4xMDg3NzYsIDAuMjQ1Mjc4LCAwLjQ3ODM1MSwgMC43MTMxNDYsIDEuMjYyNjIsIDEuNTczODUiLCBcCi0gICAgICAgICAgIjAuMDkzODcsIDAuMTA4NzkxLCAwLjI0NTI3OSwgMC40NzgzNzUsIDAuNzEyOTM5LCAxLjI2MjYsIDEuNTczODQiLCBcCi0gICAgICAgICAgIjAuMDkzOTIzLCAwLjEwODgzMywgMC4yNDUzMDIsIDAuNDc3OTEzLCAwLjcxMjkyNCwgMS4yNjI1NSwgMS41NzcwNSIsIFwKLSAgICAgICAgICAiMC4wOTQxMTksIDAuMTA4OTMxLCAwLjI0NTI0NCwgMC40Nzc5NzYsIDAuNzEyOTIzLCAxLjI2MjIzLCAxLjU3NDE2IiwgXAotICAgICAgICAgICIwLjA5NDU1NSwgMC4xMDk0MiwgMC4yNDU0OTYsIDAuNDc4Mjc3LCAwLjcxMzEwMywgMS4yNjI2MiwgMS41NzQxMiIsIFwKLSAgICAgICAgICAiMC4wOTU2NjIsIDAuMTEwMzkzLCAwLjI0NjAwNywgMC40NzgyMjEsIDAuNzEzMDk3LCAxLjI2MjY5LCAxLjU3NDQ4IiwgXAotICAgICAgICAgICIwLjA5NjU2LCAwLjExMTI3OCwgMC4yNDY1NzYsIDAuNDc4NjksIDAuNzEzMzE1LCAxLjI2MjczLCAxLjU3NTIzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE1MDI5OCwgMC4xNjE0MzksIDAuMjU5MzAxLCAwLjQyMTkxNCwgMC41ODQ2OTMsIDAuOTY0MTk0LCAxLjE4MTgyIiwgXAotICAgICAgICAgICIwLjE1ODU5NCwgMC4xNjk2NzcsIDAuMjY3NTY1LCAwLjQzMDE2OCwgMC41OTMwMTUsIDAuOTcyODg0LCAxLjE4OTgxIiwgXAotICAgICAgICAgICIwLjE2ODI0OSwgMC4xNzkzMjIsIDAuMjc3MjIsIDAuNDM5ODUsIDAuNjAyNTY1LCAwLjk4Mjk0NCwgMS4xOTk4MiIsIFwKLSAgICAgICAgICAiMC4xNzY1MDgsIDAuMTg3NTU3LCAwLjI4NTQ2MiwgMC40NDgwNzUsIDAuNjEwNzQ0LCAwLjk5MDQ2NiwgMS4yMDc3MSIsIFwKLSAgICAgICAgICAiMC4xODMyMSwgMC4xOTQyOTEsIDAuMjkyMTgyLCAwLjQ1NDc4NywgMC42MTc1MywgMC45OTc5NDcsIDEuMjE0NDciLCBcCi0gICAgICAgICAgIjAuMTkxNzk1LCAwLjIwMjg3NSwgMC4zMDA3NTUsIDAuNDYzMzc1LCAwLjYyNjA0MiwgMS4wMDYxMSwgMS4yMjI4NSIsIFwKLSAgICAgICAgICAiMC4xOTgzMzcsIDAuMjA5NDQ1LCAwLjMwNzMzNSwgMC40Njk5NzIsIDAuNjMyNjM5LCAxLjAxMjM0LCAxLjIyOTQiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTI3MzgxLCAwLjE0OTM1OCwgMC4zNTA0MjMsIDAuNjkxMjM3LCAxLjAzMjEzLCAxLjgyOTU3LCAyLjI4NDI0IiwgXAotICAgICAgICAgICIwLjEyNzMyMywgMC4xNDkzMTcsIDAuMzUwNjk3LCAwLjY5MTIzNCwgMS4wMzMzNCwgMS44MjkzNywgMi4yODQzOSIsIFwKLSAgICAgICAgICAiMC4xMjczMjksIDAuMTQ5MzIsIDAuMzUwNjk5LCAwLjY5MTQ4NCwgMS4wMzI2MiwgMS44MjkzLCAyLjI4NDAzIiwgXAotICAgICAgICAgICIwLjEyNzQyNCwgMC4xNDkzNDMsIDAuMzUwNjg5LCAwLjY5MTQwNSwgMS4wMzMzOCwgMS44Mjk5NywgMi4yODQzOCIsIFwKLSAgICAgICAgICAiMC4xMjczMjUsIDAuMTQ5MzIyLCAwLjM1MDY5NywgMC42OTEyMjYsIDEuMDMyNjEsIDEuODI5NDgsIDIuMjg0NDMiLCBcCi0gICAgICAgICAgIjAuMTI3NDM1LCAwLjE0OTM3NSwgMC4zNTA0NTIsIDAuNjkxMzQ3LCAxLjAzMzI5LCAxLjgyOTQxLCAyLjI4NDI4IiwgXAotICAgICAgICAgICIwLjEyNzQ3MiwgMC4xNDk0MzIsIDAuMzUwNTQsIDAuNjkxNDMzLCAxLjAzMzMyLCAxLjgyOTcyLCAyLjI4NDI2Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEzMzk0NSwgMC4xNDIxNDksIDAuMjEyMjYxLCAwLjMyNzA0OCwgMC40NDE3NzcsIDAuNzA5NTcsIDAuODYyNzU2IiwgXAotICAgICAgICAgICIwLjE0MjI3NiwgMC4xNTA0NDUsIDAuMjIwNTUzLCAwLjMzNTM0NCwgMC40NTAwODMsIDAuNzE3OTIsIDAuODcxMTAzIiwgXAotICAgICAgICAgICIwLjE1MjQ2OCwgMC4xNjA2MzksIDAuMjMwNzUyLCAwLjM0NTUzNiwgMC40NjAyNzIsIDAuNzI4MDQ4LCAwLjg4MTM0OCIsIFwKLSAgICAgICAgICAiMC4xNjExOTUsIDAuMTY5NDA2LCAwLjIzOTUxOCwgMC4zNTQzMDQsIDAuNDY5MDc0LCAwLjczNjgxNiwgMC44OTAwNDMiLCBcCi0gICAgICAgICAgIjAuMTY4OTE1LCAwLjE3NzExLCAwLjI0NzIxNCwgMC4zNjIwMTEsIDAuNDc2NzM2LCAwLjc0NDUwNSwgMC44OTc3NzIiLCBcCi0gICAgICAgICAgIjAuMTc4NTg2LCAwLjE4Njc4NywgMC4yNTY4ODIsIDAuMzcxNjgsIDAuNDg2NDE2LCAwLjc1NDIsIDAuOTA3Njc5IiwgXAotICAgICAgICAgICIwLjE4NTgwNCwgMC4xOTM5NjcsIDAuMjY0MTM3LCAwLjM3ODkzMiwgMC40OTM2NTcsIDAuNzYxNDUxLCAwLjkxNDY1NSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTMxODMsIDAuMTA4MTEyLCAwLjI0NDc2NiwgMC40Nzc5NjQsIDAuNzEyNzMxLCAxLjI2MjI3LCAxLjU3NDEzIiwgXAotICAgICAgICAgICIwLjA5MzE2OCwgMC4xMDgxMDMsIDAuMjQ0ODI3LCAwLjQ3NzQxNSwgMC43MTI3MjcsIDEuMjYwODMsIDEuNTc3MTEiLCBcCi0gICAgICAgICAgIjAuMDkzMDU1LCAwLjEwODA5MiwgMC4yNDQ3MTIsIDAuNDc3NzcsIDAuNzEyODA3LCAxLjI2MjU4LCAxLjU3MzgxIiwgXAotICAgICAgICAgICIwLjA5MzE5LCAwLjEwODExNiwgMC4yNDQ2MywgMC40Nzc5NDEsIDAuNzEyOTMzLCAxLjI2MjI5LCAxLjU3NDA1IiwgXAotICAgICAgICAgICIwLjA5MzE5MiwgMC4xMDgxMjEsIDAuMjQ0NzgyLCAwLjQ3Nzk0OSwgMC43MTI3NjksIDEuMjYyNTUsIDEuNTczODkiLCBcCi0gICAgICAgICAgIjAuMDkzMjA1LCAwLjEwODE0MiwgMC4yNDQ3NjMsIDAuNDc3OTA4LCAwLjcxMjYyNSwgMS4yNjI1OSwgMS41NzM3OSIsIFwKLSAgICAgICAgICAiMC4wOTMyNDksIDAuMTA4MTkyLCAwLjI0NDgyLCAwLjQ3Nzc2NiwgMC43MTI2MTEsIDEuMjYyMDgsIDEuNTc0MTEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTEzMjA5LCAwLjEyNDMzNSwgMC4yMjIzMDcsIDAuMzg0OTExLCAwLjU0NzU5MSwgMC45MjcxNTEsIDEuMTQ0NjQiLCBcCi0gICAgICAgICAgIjAuMTIxMTE0LCAwLjEzMjIxNCwgMC4yMzAyMDgsIDAuMzkyODI5LCAwLjU1NTUxNCwgMC45MzUwNDUsIDEuMTUyNTYiLCBcCi0gICAgICAgICAgIjAuMTMwNjY1LCAwLjE0MTc4OSwgMC4yMzk3NjgsIDAuNDAyMzkxLCAwLjU2NTIwOSwgMC45NDQ3ODIsIDEuMTYxOTEiLCBcCi0gICAgICAgICAgIjAuMTM5NDY2LCAwLjE1MDU3NywgMC4yNDg1NjMsIDAuNDExMTg4LCAwLjU3Mzg3OCwgMC45NTM0MjEsIDEuMTcwNzgiLCBcCi0gICAgICAgICAgIjAuMTQ3MzE2LCAwLjE1ODQ0LCAwLjI1NjQzNywgMC40MTkwNDcsIDAuNTgxOTAxLCAwLjk2MTMzNSwgMS4xNzg2IiwgXAotICAgICAgICAgICIwLjE1Nzk4NywgMC4xNjkxNTIsIDAuMjY3MTg2LCAwLjQyOTg1OCwgMC41OTI1MzgsIDAuOTcxOTg1LCAxLjE4OTY5IiwgXAotICAgICAgICAgICIwLjE2NjAzNCwgMC4xNzcyMzgsIDAuMjc1MzMsIDAuNDM4MDE0LCAwLjYwMDU2OSwgMC45ODAxOTYsIDEuMTk2OSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMjc5MjYsIDAuMTQ5NzQ0LCAwLjM1MDY5MiwgMC42OTE0MDIsIDEuMDMzNDYsIDEuODI5MjYsIDIuMjg0MzgiLCBcCi0gICAgICAgICAgIjAuMTI3OTE4LCAwLjE0OTgyNCwgMC4zNTA5OTgsIDAuNjkxNDE1LCAxLjAzMzQ2LCAxLjgzMDcyLCAyLjI4NDQ0IiwgXAotICAgICAgICAgICIwLjEyNzkxOCwgMC4xNDk3OSwgMC4zNTA4NTMsIDAuNjkxMzYxLCAxLjAzMTkxLCAxLjgyOTczLCAyLjI4NDMiLCBcCi0gICAgICAgICAgIjAuMTI4MDYsIDAuMTQ5OTc2LCAwLjM1MTA0MiwgMC42OTEzNzQsIDEuMDMzNDYsIDEuODMwNjIsIDIuMjg0MzkiLCBcCi0gICAgICAgICAgIjAuMTI4NDI3LCAwLjE1MDIyMSwgMC4zNTA5NDUsIDAuNjkxMzk4LCAxLjAzMzI2LCAxLjgyOTU2LCAyLjI4NDgxIiwgXAotICAgICAgICAgICIwLjEyOTM3OCwgMC4xNTExOSwgMC4zNTEyNzcsIDAuNjkxNzMsIDEuMDMzMjksIDEuODI5NzYsIDIuMjg1MTkiLCBcCi0gICAgICAgICAgIjAuMTMwMjE3LCAwLjE1MTgyMiwgMC4zNTE2MTcsIDAuNjkxMzQ5LCAxLjAzMzM1LCAxLjgzMTU4LCAyLjI4NTU2Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5ODA1MSwgMC4xMDYyMDMsIDAuMTc2MzI2LCAwLjI5MTExLCAwLjQwNTg0OSwgMC42NzM2MjQsIDAuODI2ODE3IiwgXAotICAgICAgICAgICIwLjEwNTY1MywgMC4xMTM4MDYsIDAuMTgzOTM4LCAwLjI5ODcxOCwgMC40MTM0NiwgMC42ODEyMTUsIDAuODM0NTUxIiwgXAotICAgICAgICAgICIwLjExNDQ4NCwgMC4xMjI2OCwgMC4xOTI4MDEsIDAuMzA3NTksIDAuNDIyMzU2LCAwLjY5MDEwOSwgMC44NDMzMTMiLCBcCi0gICAgICAgICAgIjAuMTIyNTYxLCAwLjEzMDc2MiwgMC4yMDA4ODEsIDAuMzE1Njg3LCAwLjQzMDQxOCwgMC42OTgyNzgsIDAuODUxMjYxIiwgXAotICAgICAgICAgICIwLjEyOTU4NCwgMC4xMzc4NzMsIDAuMjA4MDMsIDAuMzIyODA2LCAwLjQzNzU1NCwgMC43MDU0NSwgMC44NTgzOTciLCBcCi0gICAgICAgICAgIjAuMTM5MTg4LCAwLjE0NzQzMywgMC4yMTc3NjEsIDAuMzMyNTU4LCAwLjQ0NzMxOCwgMC43MTUxMzQsIDAuODY4MTM0IiwgXAotICAgICAgICAgICIwLjE0NjEyMywgMC4xNTQ0OTIsIDAuMjI1MDIyLCAwLjMzOTgzOSwgMC40NTQ1NjYsIDAuNzIyMzczLCAwLjg3NTU3NCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTMzMTEsIDAuMTA4MTk0LCAwLjI0NDc5NSwgMC40Nzc4NjcsIDAuNzEyNzMzLCAxLjI2MjI2LCAxLjU3NDg2IiwgXAotICAgICAgICAgICIwLjA5MzMyNCwgMC4xMDgyMDUsIDAuMjQ0ODA0LCAwLjQ3NzkzMiwgMC43MTI3MzQsIDEuMjYyNDksIDEuNTc0MDkiLCBcCi0gICAgICAgICAgIjAuMDkzMjUxLCAwLjEwODE5OCwgMC4yNDQ4MTEsIDAuNDc3OTU2LCAwLjcxMjkxOSwgMS4yNjIxOSwgMS41NzQwMSIsIFwKLSAgICAgICAgICAiMC4wOTM1MjcsIDAuMTA4MzkyLCAwLjI0NDg1NSwgMC40Nzc4ODksIDAuNzEyNzUsIDEuMjYyMiwgMS41NzY1MiIsIFwKLSAgICAgICAgICAiMC4wOTQwNjYsIDAuMTA4OTA2LCAwLjI0NTAzMywgMC40NzgwNSwgMC43MTI3ODUsIDEuMjYyMiwgMS41NzQxIiwgXAotICAgICAgICAgICIwLjA5NTE3NCwgMC4xMDk5MDksIDAuMjQ1NjQxLCAwLjQ3NzY5NywgMC43MTMwNTYsIDEuMjYyNTksIDEuNTc2NTIiLCBcCi0gICAgICAgICAgIjAuMDk2MjIxLCAwLjExMDgyMSwgMC4yNDYwNjgsIDAuNDc4NTUyLCAwLjcxMzA1MSwgMS4yNjI2OCwgMS41NzUzNCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTYxMzQsIDAuMTI3MTc5LCAwLjIyNTA4OSwgMC4zODc3MDUsIDAuNTUwMzc4LCAwLjkzMDE1NSwgMS4xNDY4IiwgXAotICAgICAgICAgICIwLjEyMzk5OCwgMC4xMzUwNTQsIDAuMjMyOTc2LCAwLjM5NTU3NywgMC41NTgyNDUsIDAuOTM4MjU0LCAxLjE1NTA1IiwgXAotICAgICAgICAgICIwLjEzMjQxMiwgMC4xNDM0NywgMC4yNDEzNzUsIDAuNDA0MDUsIDAuNTY2Njg1LCAwLjk0NzEwOCwgMS4xNjMyMiIsIFwKLSAgICAgICAgICAiMC4xMzgwMTksIDAuMTQ5MDkyLCAwLjI0Njk4MywgMC40MDk2MDMsIDAuNTcyMjcxLCAwLjk1Mjc4NywgMS4xNjkwNyIsIFwKLSAgICAgICAgICAiMC4xNDIyNSwgMC4xNTMzMzEsIDAuMjUxMjM3LCAwLjQxMzg0MSwgMC41NzY1MTcsIDAuOTU2Njg5LCAxLjE3MzIxIiwgXAotICAgICAgICAgICIwLjE0NzUzNSwgMC4xNTg1OTUsIDAuMjU2NDkyLCAwLjQxOTExMSwgMC41ODE3NzEsIDAuOTYxMzA2LCAxLjE3ODEiLCBcCi0gICAgICAgICAgIjAuMTUxNjI1LCAwLjE2MjYzNywgMC4yNjA0NTEsIDAuNDIzMTc5LCAwLjU4NTg3OCwgMC45NjYwMiwgMS4xODI0OSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMjc0NDQsIDAuMTQ5MzY4LCAwLjM1MDcwOCwgMC42OTEzMTksIDEuMDMzNCwgMS44MzA1LCAyLjI4NDIzIiwgXAotICAgICAgICAgICIwLjEyNzQyNCwgMC4xNDkzNDIsIDAuMzUwNywgMC42OTE0MjgsIDEuMDMzMzcsIDEuODI4OTUsIDIuMjg0NDMiLCBcCi0gICAgICAgICAgIjAuMTI3MzY3LCAwLjE0OTIzMiwgMC4zNTA2OTMsIDAuNjkxNTQxLCAxLjAzMzQxLCAxLjgyODg5LCAyLjI4MzI4IiwgXAotICAgICAgICAgICIwLjEyNzMyNSwgMC4xNDkyMDgsIDAuMzUwNjQ2LCAwLjY5MTE4OSwgMS4wMzM0LCAxLjgyOTMsIDIuMjg0MjkiLCBcCi0gICAgICAgICAgIjAuMTI3MjI3LCAwLjE0OTE0NiwgMC4zNTA2NzYsIDAuNjkxMjA0LCAxLjAzMzI3LCAxLjgyODgxLCAyLjI4MzEzIiwgXAotICAgICAgICAgICIwLjEyNzAzOSwgMC4xNDkwMjUsIDAuMzUwMzg1LCAwLjY5MTM1NywgMS4wMzMyNiwgMS44MjkxNiwgMi4yODc4NCIsIFwKLSAgICAgICAgICAiMC4xMjcxMjQsIDAuMTQ4OTQ3LCAwLjM1MDIyNiwgMC42OTAxODMsIDEuMDMzMjMsIDEuODI5NTQsIDIuMjg0NTEiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk4OTAxLCAwLjEwNzEwMywgMC4xNzc0MDYsIDAuMjkyMjE0LCAwLjQwNjkzNCwgMC42NzQ3MTYsIDAuODI4MDY3IiwgXAotICAgICAgICAgICIwLjEwNzU5NSwgMC4xMTU4NTYsIDAuMTg2MTM5LCAwLjMwMDk1MSwgMC40MTU3MjEsIDAuNjgzNDQ5LCAwLjgzNjc0MSIsIFwKLSAgICAgICAgICAiMC4xMTY5LCAwLjEyNTE0LCAwLjE5NTQ0MiwgMC4zMTAyNiwgMC40MjQ5OTgsIDAuNjkyOTE3LCAwLjg0NTgwNyIsIFwKLSAgICAgICAgICAiMC4xMjMyOTMsIDAuMTMxNTMsIDAuMjAxNzk1LCAwLjMxNjYxLCAwLjQzMTM4NSwgMC42OTkxMTEsIDAuODUyMzk0IiwgXAotICAgICAgICAgICIwLjEyODEwOCwgMC4xMzYzMywgMC4yMDY2MzksIDAuMzIxNDU3LCAwLjQzNjIwOSwgMC43MDM5NjUsIDAuODU3MjY0IiwgXAotICAgICAgICAgICIwLjEzNDcyMiwgMC4xNDI5NSwgMC4yMTMxNDksIDAuMzI3OTU5LCAwLjQ0MjcxNywgMC43MTA2OTQsIDAuODYzOTExIiwgXAotICAgICAgICAgICIwLjEzOTQxNiwgMC4xNDc1OSwgMC4yMTc3MzEsIDAuMzMyNTY4LCAwLjQ0NzI5MywgMC43MTUyNDcsIDAuODY4MTU0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5MzY2NSwgMC4xMDg1NzUsIDAuMjQ1MTY0LCAwLjQ3ODI1MywgMC43MTI4NzgsIDEuMjYyNjcsIDEuNTc0MSIsIFwKLSAgICAgICAgICAiMC4wOTM2MDksIDAuMTA4NTczLCAwLjI0NTE1OSwgMC40NzgxNzIsIDAuNzEzMDYsIDEuMjYyNiwgMS41NzM4NyIsIFwKLSAgICAgICAgICAiMC4wOTM1NjMsIDAuMTA4NDk4LCAwLjI0NTEyNiwgMC40NzgwOTksIDAuNzEyOCwgMS4yNjIyMywgMS41NzcwNiIsIFwKLSAgICAgICAgICAiMC4wOTM1MzIsIDAuMTA4NDgxLCAwLjI0NTExNywgMC40NzgxNjIsIDAuNzEzMDUzLCAxLjI2MjU3LCAxLjU3Mzg4IiwgXAotICAgICAgICAgICIwLjA5MzM4MSwgMC4xMDgzMjYsIDAuMjQ1MDIxLCAwLjQ3ODA4NiwgMC43MTI5NjUsIDEuMjYyNTcsIDEuNTczODQiLCBcCi0gICAgICAgICAgIjAuMDkzMjM4LCAwLjEwODI0LCAwLjI0NDkxMSwgMC40Nzc2MzIsIDAuNzEyOTQzLCAxLjI2MjUzLCAxLjU3NDE4IiwgXAotICAgICAgICAgICIwLjA5MzM4MywgMC4xMDgyNDcsIDAuMjQ0ODM3LCAwLjQ3Nzk2NywgMC43MTI0NTksIDEuMjYyNTQsIDEuNTczNDgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg2MjMsIDAuMDk3MzE0LCAwLjE5NTIyNiwgMC4zNTc4MzYsIDAuNTIwNjkzLCAwLjkwMDE5OSwgMS4xMTc4MyIsIFwKLSAgICAgICAgICAiMC4wOTQyMDksIDAuMTA1MjgsIDAuMjAzMTk5LCAwLjM2NTgyNCwgMC41Mjg0MjcsIDAuOTA4OTAxLCAxLjEyNTY5IiwgXAotICAgICAgICAgICIwLjEwMjczMywgMC4xMTM4MDYsIDAuMjExNzE0LCAwLjM3NDM1LCAwLjUzNzAwNiwgMC45MTc0NjUsIDEuMTMzODciLCBcCi0gICAgICAgICAgIjAuMTA5NDI5LCAwLjEyMDUyLCAwLjIxODQ0MywgMC4zODEwNjUsIDAuNTQzNzU2LCAwLjkyMzI5MSwgMS4xNDAxNiIsIFwKLSAgICAgICAgICAiMC4xMTUwMiwgMC4xMjYxMzYsIDAuMjI0MDc3LCAwLjM4NjgwOCwgMC41NDk0NiwgMC45Mjk4NjUsIDEuMTQ2NzEiLCBcCi0gICAgICAgICAgIjAuMTIyNTY4LCAwLjEzMzcwMiwgMC4yMzE3ODMsIDAuMzk0NDE3LCAwLjU1Njk5OSwgMC45MzY3MTYsIDEuMTU0MzkiLCBcCi0gICAgICAgICAgIjAuMTI4Mzk1LCAwLjEzOTU5OSwgMC4yMzc2NzMsIDAuNDAwMjgsIDAuNTYyOTY1LCAwLjk0MjQ2NywgMS4xNTk1OSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMjY0ODQsIDAuMTQ4NjE3LCAwLjM1MDY3MywgMC42OTA3OTUsIDEuMDMxNzQsIDEuODMwMDEsIDIuMjg0ODkiLCBcCi0gICAgICAgICAgIjAuMTI2MjQ1LCAwLjE0ODQzNCwgMC4zNTAzMDIsIDAuNjkwNjM0LCAxLjAzMzM1LCAxLjgyODY2LCAyLjI4NDI1IiwgXAotICAgICAgICAgICIwLjEyNjExLCAwLjE0ODM3MywgMC4zNTAzOTEsIDAuNjkwNjE1LCAxLjAzMzMyLCAxLjgyOTM5LCAyLjI4NDM2IiwgXAotICAgICAgICAgICIwLjEyNjMyOCwgMC4xNDg0OTUsIDAuMzUwMzk0LCAwLjY5MDc1MiwgMS4wMzMyOCwgMS44MjkzNiwgMi4yODM3OCIsIFwKLSAgICAgICAgICAiMC4xMjY3LCAwLjE0ODgzMywgMC4zNTA3OTcsIDAuNjkwNDM2LCAxLjAzMTQzLCAxLjgyOTM1LCAyLjI4NDI1IiwgXAotICAgICAgICAgICIwLjEyNzA4MSwgMC4xNDkxNzEsIDAuMzUwOTMxLCAwLjY5MTcyNCwgMS4wMzMzMiwgMS44MzAzNSwgMi4yODU3NSIsIFwKLSAgICAgICAgICAiMC4xMjc4MjYsIDAuMTQ5Njk3LCAwLjM1MTAyLCAwLjY5MTc0NSwgMS4wMzM1NCwgMS44MzA5MSwgMi4yODU0NiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzA0NTEsIDAuMDc4NTU0LCAwLjE0ODQwNywgMC4yNjMxNywgMC4zNzc5MTEsIDAuNjQ1NzA0LCAwLjc5ODg1MiIsIFwKLSAgICAgICAgICAiMC4wNzgxNiwgMC4wODYyNjIsIDAuMTU2MDg2LCAwLjI3MDg1NCwgMC4zODU2MDcsIDAuNjUzNTA0LCAwLjgwNjQ1NSIsIFwKLSAgICAgICAgICAiMC4wODYxOTEsIDAuMDk0Mjk0LCAwLjE2NDEyNiwgMC4yNzg5MjIsIDAuMzkzNjU4LCAwLjY2MTUzOSwgMC44MTQ1MjQiLCBcCi0gICAgICAgICAgIjAuMDkyNDA2LCAwLjEwMDU0MiwgMC4xNzA0MywgMC4yODUyMTYsIDAuMzk5OTQ4LCAwLjY2NzgxNiwgMC44MjA4OCIsIFwKLSAgICAgICAgICAiMC4wOTc0NzQsIDAuMTA1NjA5LCAwLjE3NTY4NiwgMC4yOTA0MjIsIDAuNDA1MTU4LCAwLjY3Mjk3MywgMC44MjYwNTMiLCBcCi0gICAgICAgICAgIjAuMTA0MzQsIDAuMTEyNDQyLCAwLjE4Mjc1NCwgMC4yOTc1ODYsIDAuNDEyMjk2LCAwLjY4MDA4NywgMC44MzM1MTciLCBcCi0gICAgICAgICAgIjAuMTA5NDUzLCAwLjExNzYzOSwgMC4xODgwMzQsIDAuMzAyOTUsIDAuNDE3NzE5LCAwLjY4NTQ4LCAwLjgzODM5OCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTExNzgsIDAuMTA2MzE1LCAwLjI0NDAxMSwgMC40Nzc2NywgMC43MTI1MTYsIDEuMjYyNjMsIDEuNTc2NTgiLCBcCi0gICAgICAgICAgIjAuMDkwODk4LCAwLjEwNTk4NywgMC4yNDM4ODYsIDAuNDc3NjM2LCAwLjcxMTcxMiwgMS4yNjEwNSwgMS41NzM0NiIsIFwKLSAgICAgICAgICAiMC4wOTA5MzUsIDAuMTA2MDU3LCAwLjI0MzgyOCwgMC40Nzc2NDcsIDAuNzExNzQ5LCAxLjI2MDksIDEuNTczNDYiLCBcCi0gICAgICAgICAgIjAuMDkxMTg4LCAwLjEwNjM3MSwgMC4yNDQwNDYsIDAuNDc3NzQxLCAwLjcxMjU2NCwgMS4yNjI1MiwgMS41NzM3OCIsIFwKLSAgICAgICAgICAiMC4wOTE1NDMsIDAuMTA2NjU2LCAwLjI0NDM2NywgMC40Nzc5MzksIDAuNzEyNzM5LCAxLjI2MjY3LCAxLjU3MzQ3IiwgXAotICAgICAgICAgICIwLjA5MjIxMiwgMC4xMDcyMTQsIDAuMjQ0NjM2LCAwLjQ3ODI3OSwgMC43MTI5MzIsIDEuMjYyNjYsIDEuNTc0MDUiLCBcCi0gICAgICAgICAgIjAuMDkyNzgsIDAuMTA3ODksIDAuMjQ0ODg2LCAwLjQ3ODQxLCAwLjcxMjA2OSwgMS4yNjI4LCAxLjU3NzEyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5MTQzOSwgMC4xMDI0NTIsIDAuMjAwMjYsIDAuMzYyODksIDAuNTI1NTc1LCAwLjkwNTA1LCAxLjEyMjE3IiwgXAotICAgICAgICAgICIwLjA5OTMyNywgMC4xMTAzMzcsIDAuMjA4MTU3LCAwLjM3MDgzMywgMC41MzM1NjMsIDAuOTEzNjIxLCAxLjEzMDU0IiwgXAotICAgICAgICAgICIwLjEwNTk1OSwgMC4xMTY5NzQsIDAuMjE0Nzg0LCAwLjM3NzQ4MSwgMC41NDAzMTMsIDAuOTIwMzY0LCAxLjEzNjc2IiwgXAotICAgICAgICAgICIwLjExMDA4MSwgMC4xMjExMTQsIDAuMjE4ODc3LCAwLjM4MTY5LCAwLjU0NDI4NywgMC45MjQzMjEsIDEuMTQxMDQiLCBcCi0gICAgICAgICAgIjAuMTEzMjU4LCAwLjEyNDIzNSwgMC4yMjIwMzcsIDAuMzg0ODA0LCAwLjU0NzQ2NiwgMC45Mjc3MjIsIDEuMTQ0MzUiLCBcCi0gICAgICAgICAgIjAuMTE3NDMzLCAwLjEyODQwNCwgMC4yMjYwNCwgMC4zODg3NzYsIDAuNTUxNTk0LCAwLjkzMDg2OSwgMS4xNDc5IiwgXAotICAgICAgICAgICIwLjEyMDQzNiwgMC4xMzE0MDMsIDAuMjI4OTUzLCAwLjM5MTU4NywgMC41NTQzMDIsIDAuOTM0MDYsIDEuMTUxMTkiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTI2MDE1LCAwLjE0ODIyLCAwLjM1MDMxNywgMC42OTE0MywgMS4wMzI1OCwgMS44MzA3NiwgMi4yODMxNCIsIFwKLSAgICAgICAgICAiMC4xMjU5NjIsIDAuMTQ4MTIxLCAwLjM1MDE3NCwgMC42OTA0NDYsIDEuMDMxNSwgMS44Mjg5MSwgMi4yODQ0MyIsIFwKLSAgICAgICAgICAiMC4xMjU3NzksIDAuMTQ3OTYyLCAwLjM1MDExMSwgMC42OTExMzYsIDEuMDMyNTYsIDEuODI4OTEsIDIuMjg1NyIsIFwKLSAgICAgICAgICAiMC4xMjU1NTMsIDAuMTQ3NzU3LCAwLjM1MDI0LCAwLjY5MDMyOCwgMS4wMzMzMywgMS44Mjg4MSwgMi4yODQzMSIsIFwKLSAgICAgICAgICAiMC4xMjUzNzksIDAuMTQ3NjM4LCAwLjM1MDEwMywgMC42OTAxOTksIDEuMDMyMTQsIDEuODI4ODMsIDIuMjg0NDMiLCBcCi0gICAgICAgICAgIjAuMTI1Mjc1LCAwLjE0NzQyNCwgMC4zNDk2ODgsIDAuNjkxMjUzLCAxLjAzMTY0LCAxLjgzMDc3LCAyLjI4NjkxIiwgXAotICAgICAgICAgICIwLjEyNTQ2NCwgMC4xNDc0NjcsIDAuMzQ5NzM3LCAwLjY5MDk4OSwgMS4wMzMwOCwgMS44Mjg3MSwgMi4yODQ0Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3NTE3OCwgMC4wODMzNDcsIDAuMTUzNDkzLCAwLjI2ODI5NiwgMC4zODMwMzEsIDAuNjUwODEsIDAuODA0MTExIiwgXAotICAgICAgICAgICIwLjA4MzUzNywgMC4wOTE3MTYsIDAuMTYxODU0LCAwLjI3NjY2MSwgMC4zOTE0MDcsIDAuNjU5MTg3LCAwLjgxMjQiLCBcCi0gICAgICAgICAgIjAuMDkwNzIyLCAwLjA5ODg5NCwgMC4xNjkwMTcsIDAuMjgzODI3LCAwLjM5ODUxOSwgMC42NjYzMTYsIDAuODE5NTY1IiwgXAotICAgICAgICAgICIwLjA5NTM5NywgMC4xMDM1NDQsIDAuMTczNjcyLCAwLjI4ODQ4MiwgMC40MDMyMTksIDAuNjcxMDI0LCAwLjgyNDE2OSIsIFwKLSAgICAgICAgICAiMC4wOTkzMTUsIDAuMTA3NDQ0LCAwLjE3NzUwNywgMC4yOTIzMjYsIDAuNDA3MDY2LCAwLjY3NDg4NCwgMC44Mjc5NiIsIFwKLSAgICAgICAgICAiMC4xMDQ0NDcsIDAuMTEyNTY2LCAwLjE4MjQ3MiwgMC4yOTcyODMsIDAuNDEyMDQ2LCAwLjY3OTk0OSwgMC44MzI4OTEiLCBcCi0gICAgICAgICAgIjAuMTA4MzY2LCAwLjExNjQ4MiwgMC4xODYzNDYsIDAuMzAxMDY0LCAwLjQxNTg4OSwgMC42ODM2NDUsIDAuODM3MTkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDkxOTUxLCAwLjEwNzA4OCwgMC4yNDQ1NDgsIDAuNDc3OTczLCAwLjcxMjc4LCAxLjI2MjYzLCAxLjU3NDE4IiwgXAotICAgICAgICAgICIwLjA5MTc4NSwgMC4xMDY5NDcsIDAuMjQ0NDg5LCAwLjQ3NzkyOCwgMC43MTI4MSwgMS4yNjIyMywgMS41NzQwMiIsIFwKLSAgICAgICAgICAiMC4wOTE1MTcsIDAuMTA2Njg5LCAwLjI0NDM1NiwgMC40Nzc4MjcsIDAuNzExOTM5LCAxLjI2MjIxLCAxLjU3NDAzIiwgXAotICAgICAgICAgICIwLjA5MTI2OCwgMC4xMDY0NDksIDAuMjQ0MzIsIDAuNDc3MzE2LCAwLjcxMjU3MiwgMS4yNjI2MiwgMS41NzQ4NCIsIFwKLSAgICAgICAgICAiMC4wOTEwOTksIDAuMTA2MzA0LCAwLjI0NDA4NywgMC40NzcwNTksIDAuNzExODYzLCAxLjI2MDgxLCAxLjU3MzQiLCBcCi0gICAgICAgICAgIjAuMDkxMTAyLCAwLjEwNjI1MywgMC4yNDQyMzUsIDAuNDc3NjA0LCAwLjcxMjcxNCwgMS4yNjAwNiwgMS41NzcwMyIsIFwKLSAgICAgICAgICAiMC4wOTExNzIsIDAuMTA2MjAzLCAwLjI0MzkyNywgMC40Nzc1MTYsIDAuNzEyMzczLCAxLjI2MjYzLCAxLjU3MzU3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEwNzU2LCAwLjAxMDc1OCwgMC4wMTA3NjUsIDAuMDEwNzY4LCAwLjAxMDc3MywgMC4wMTA3NzMsIDAuMDEwNzczIiwgXAotICAgICAgICAgICIwLjAxMDc0OCwgMC4wMTA3NDksIDAuMDEwNzU3LCAwLjAxMDc2MSwgMC4wMTA3NjMsIDAuMDEwNzY0LCAwLjAxMDc2NSIsIFwKLSAgICAgICAgICAiMC4wMTA4MjIsIDAuMDEwODIzLCAwLjAxMDgzLCAwLjAxMDgzNSwgMC4wMTA4MzcsIDAuMDEwODM3LCAwLjAxMDgzOCIsIFwKLSAgICAgICAgICAiMC4wMTA5MTUsIDAuMDEwOTE2LCAwLjAxMDkyNCwgMC4wMTA5MjksIDAuMDEwOTI5LCAwLjAxMDkzMiwgMC4wMTA5MzIiLCBcCi0gICAgICAgICAgIjAuMDExMDIsIDAuMDExMDIxLCAwLjAxMTAyOSwgMC4wMTEwMzQsIDAuMDExMDM2LCAwLjAxMTAzNywgMC4wMTEwMzgiLCBcCi0gICAgICAgICAgIjAuMDExMjQ0LCAwLjAxMTI0MSwgMC4wMTEyNTIsIDAuMDExMjU3LCAwLjAxMTI1OSwgMC4wMTEyNjEsIDAuMDExMjYyIiwgXAotICAgICAgICAgICIwLjAxMTQxOCwgMC4wMTE0MTcsIDAuMDExNDI1LCAwLjAxMTQzMSwgMC4wMTE0MzIsIDAuMDExNDM0LCAwLjAxMTQzNSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMDcwOSwgMC4wMTA3MDksIDAuMDEwNzEzLCAwLjAxMDcxNSwgMC4wMTA3MTUsIDAuMDEwNzE2LCAwLjAxMDcxNiIsIFwKLSAgICAgICAgICAiMC4wMTA2OTQsIDAuMDEwNjk0LCAwLjAxMDY5OCwgMC4wMTA3LCAwLjAxMDcwMSwgMC4wMTA3MDEsIDAuMDEwNzAxIiwgXAotICAgICAgICAgICIwLjAxMDc2NiwgMC4wMTA3NjYsIDAuMDEwNzcsIDAuMDEwNzcyLCAwLjAxMDc3MywgMC4wMTA3NzMsIDAuMDEwNzc0IiwgXAotICAgICAgICAgICIwLjAxMDg3OSwgMC4wMTA4NzksIDAuMDEwODgzLCAwLjAxMDg4NSwgMC4wMTA4ODYsIDAuMDEwODg3LCAwLjAxMDg4NyIsIFwKLSAgICAgICAgICAiMC4wMTA5NywgMC4wMTA5NzEsIDAuMDEwOTc1LCAwLjAxMDk3OCwgMC4wMTA5NzgsIDAuMDEwOTc5LCAwLjAxMDk3OSIsIFwKLSAgICAgICAgICAiMC4wMTExOSwgMC4wMTExODcsIDAuMDExMTk0LCAwLjAxMTE5NywgMC4wMTExOTgsIDAuMDExMTk5LCAwLjAxMTE5OSIsIFwKLSAgICAgICAgICAiMC4wMTEzOTEsIDAuMDExMzkyLCAwLjAxMTM5NywgMC4wMTE0LCAwLjAxMTQsIDAuMDExNDAxLCAwLjAxMTQwMiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwOTAxMiwgMC4wMDkwMTQsIDAuMDA5MDIyLCAwLjAwOTAyNiwgMC4wMDkwMjgsIDAuMDA5MDI4LCAwLjAwOTAzIiwgXAotICAgICAgICAgICIwLjAwOTA5MywgMC4wMDkwOTUsIDAuMDA5MTA0LCAwLjAwOTEwOCwgMC4wMDkxMSwgMC4wMDkxMTIsIDAuMDA5MTEyIiwgXAotICAgICAgICAgICIwLjAwOTI3NywgMC4wMDkyNzksIDAuMDA5Mjg4LCAwLjAwOTI5NCwgMC4wMDkyOTYsIDAuMDA5Mjk1LCAwLjAwOTI5OCIsIFwKLSAgICAgICAgICAiMC4wMDk1MDksIDAuMDA5NTEsIDAuMDA5NTIsIDAuMDA5NTI2LCAwLjAwOTUyOCwgMC4wMDk1MjgsIDAuMDA5NTMxIiwgXAotICAgICAgICAgICIwLjAwOTc5NywgMC4wMDk3OTQsIDAuMDA5ODA4LCAwLjAwOTgxNSwgMC4wMDk4MTIsIDAuMDA5ODE4LCAwLjAwOTgxOSIsIFwKLSAgICAgICAgICAiMC4wMTAyNzEsIDAuMDEwMjcyLCAwLjAxMDI4MSwgMC4wMTAyODcsIDAuMDEwMjg5LCAwLjAxMDI5MiwgMC4wMTAyOTMiLCBcCi0gICAgICAgICAgIjAuMDEwNjUzLCAwLjAxMDY1NiwgMC4wMTA2NjIsIDAuMDEwNjY4LCAwLjAxMDY3MSwgMC4wMTA2NzYsIDAuMDEwNjczIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2ODYyLCAwLjAwNjg2MywgMC4wMDY4NjYsIDAuMDA2ODY4LCAwLjAwNjg2OSwgMC4wMDY4NjksIDAuMDA2ODY5IiwgXAotICAgICAgICAgICIwLjAwNjkzMywgMC4wMDY5MzQsIDAuMDA2OTM4LCAwLjAwNjk0LCAwLjAwNjk0MSwgMC4wMDY5NDIsIDAuMDA2OTQyIiwgXAotICAgICAgICAgICIwLjAwNzEzNiwgMC4wMDcxMzcsIDAuMDA3MTQyLCAwLjAwNzE0NSwgMC4wMDcxNDYsIDAuMDA3MTQ3LCAwLjAwNzE0NyIsIFwKLSAgICAgICAgICAiMC4wMDczOTIsIDAuMDA3Mzk0LCAwLjAwNzM5OSwgMC4wMDc0MDIsIDAuMDA3NDA0LCAwLjAwNzQwNSwgMC4wMDc0MDUiLCBcCi0gICAgICAgICAgIjAuMDA3Njg5LCAwLjAwNzY5LCAwLjAwNzY5NSwgMC4wMDc2OTgsIDAuMDA3NywgMC4wMDc3MDEsIDAuMDA3NzAxIiwgXAotICAgICAgICAgICIwLjAwODIxNiwgMC4wMDgyMSwgMC4wMDgyMTUsIDAuMDA4MjI1LCAwLjAwODIyNywgMC4wMDgyMjIsIDAuMDA4MjI5IiwgXAotICAgICAgICAgICIwLjAwODYzMiwgMC4wMDg2MzIsIDAuMDA4NjM3LCAwLjAwODY0LCAwLjAwODY0MiwgMC4wMDg2NDMsIDAuMDA4NjQ0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0MjU2LCAwLjAwNDI1OCwgMC4wMDQyNjYsIDAuMDA0MjcsIDAuMDA0MjcyLCAwLjAwNDI3MiwgMC4wMDQyNzIiLCBcCi0gICAgICAgICAgIjAuMDA0MzUsIDAuMDA0MzUyLCAwLjAwNDM2MiwgMC4wMDQzNjYsIDAuMDA0MzY4LCAwLjAwNDM2OSwgMC4wMDQzNjkiLCBcCi0gICAgICAgICAgIjAuMDA0NTMxLCAwLjAwNDUzMywgMC4wMDQ1NDMsIDAuMDA0NTUsIDAuMDA0NTQ5LCAwLjAwNDU1MiwgMC4wMDQ1NTEiLCBcCi0gICAgICAgICAgIjAuMDA0NzQzLCAwLjAwNDc0NiwgMC4wMDQ3NDksIDAuMDA0NzYsIDAuMDA0NzYyLCAwLjAwNDc1NywgMC4wMDQ3NjQiLCBcCi0gICAgICAgICAgIjAuMDA0OTU5LCAwLjAwNDk2MiwgMC4wMDQ5NzEsIDAuMDA0OTk1LCAwLjAwNDk5NywgMC4wMDQ5OTksIDAuMDA1IiwgXAotICAgICAgICAgICIwLjAwNTM1NCwgMC4wMDUzNTUsIDAuMDA1MzM4LCAwLjAwNTM2NiwgMC4wMDUzNjksIDAuMDA1MzcsIDAuMDA1MzciLCBcCi0gICAgICAgICAgIjAuMDA1NjY2LCAwLjAwNTY2OCwgMC4wMDU2NzYsIDAuMDA1NjgsIDAuMDA1NjgsIDAuMDA1NjgzLCAwLjAwNTY4NCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzI4OCwgMC4wMDMyOSwgMC4wMDMyOTUsIDAuMDAzMjk3LCAwLjAwMzI5OCwgMC4wMDMyOTgsIDAuMDAzMjk4IiwgXAotICAgICAgICAgICIwLjAwMzM4OSwgMC4wMDMzOTEsIDAuMDAzMzk4LCAwLjAwMzQwMSwgMC4wMDM0MDIsIDAuMDAzNDAzLCAwLjAwMzQwMyIsIFwKLSAgICAgICAgICAiMC4wMDM1OTIsIDAuMDAzNTk0LCAwLjAwMzU5OSwgMC4wMDM2MDUsIDAuMDAzNjA3LCAwLjAwMzU5NSwgMC4wMDM2MDgiLCBcCi0gICAgICAgICAgIjAuMDAzODcsIDAuMDAzODcxLCAwLjAwMzg3OSwgMC4wMDM4ODMsIDAuMDAzODg1LCAwLjAwMzg4NiwgMC4wMDM4ODYiLCBcCi0gICAgICAgICAgIjAuMDA0MDQ1LCAwLjAwNDA1LCAwLjAwNDA1OCwgMC4wMDQwNTksIDAuMDA0MDYzLCAwLjAwNDA2MiwgMC4wMDQwNjIiLCBcCi0gICAgICAgICAgIjAuMDA0NDQxLCAwLjAwNDQ0MiwgMC4wMDQ0NSwgMC4wMDQ0NTMsIDAuMDA0NDUzLCAwLjAwNDQ1NywgMC4wMDQ0NTIiLCBcCi0gICAgICAgICAgIjAuMDA0OCwgMC4wMDQ4MDMsIDAuMDA0ODA0LCAwLjAwNDgxMywgMC4wMDQ4MTQsIDAuMDA0ODE1LCAwLjAwNDgxNiIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IEFPSTMxWDQgKgotICogLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoQU9JMzFYNCkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAxLjMwNDAyOwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAzMTQzNzc7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAzMTM3MTc7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAzMTQzNzc7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyMDk3LCAwLjAwMjA5NSwgMC4wMDIwOTUsIDAuMDAyMDk1LCAwLjAwMjA5NSwgMC4wMDIwOTQsIDAuMDAyMDkzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyMDk5LCAwLjAwMjEwMSwgMC4wMDIxMDEsIDAuMDAyMTAxLCAwLjAwMjEwMiwgMC4wMDIxLCAwLjAwMjA5OCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQTEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMzE1MjQ2OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMzE0MzI7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAzMTUyNDY7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyMDk4LCAwLjAwMjA5NiwgMC4wMDIwOTUsIDAuMDAyMDk1LCAwLjAwMjA5NCwgMC4wMDIwOTQsIDAuMDAyMDkzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyMDk5LCAwLjAwMjEsIDAuMDAyMTAyLCAwLjAwMjEwMiwgMC4wMDIxMDMsIDAuMDAyMTA0LCAwLjAwMjEwNCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQTIpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMzE0MzQ4OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMzEyNjg4OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMzE0MzQ4OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDU0NCwgMC4wMDA1NDIsIDAuMDAwNTQxLCAwLjAwMDU0MSwgMC4wMDA1NCwgMC4wMDA1NDEsIDAuMDAwNTQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDIzODIsIDAuMDAyMzgzLCAwLjAwMjM4NCwgMC4wMDIzODQsIDAuMDAyMzg0LCAwLjAwMjM4MywgMC4wMDIzODMiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDMxNjg0OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMzE2ODQ7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAzMTY4MjI7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzk5LCAwLjAwMDM5OCwgMC4wMDAzOTksIDAuMDAwMzk5LCAwLjAwMDM5OSwgMC4wMDAzOTksIDAuMDAwMzk5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzMTIsIDAuMDAzMTIxLCAwLjAwMzEyMSwgMC4wMDMxMiwgMC4wMDMxMjEsIDAuMDAzMTIxLCAwLjAwMzEyMSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjUyMjExNzsKLSAgICBmdW5jdGlvbiA6ICIoISgoKEEwIEExKSBBMikrQjApKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTAiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDMzNzIxLCAwLjEzNzE2NSwgMC4yMzk3NTMsIDAuMzEzMTkzLCAwLjQzMDM5MywgMC41MzI5MDUsIDAuNjc5MjQxIiwgXAotICAgICAgICAgICIwLjA0MDczMywgMC4xNDQyODMsIDAuMjQ2ODYsIDAuMzIwMTI2LCAwLjQzNzQ0OSwgMC41Mzk4NTgsIDAuNjg2NTYxIiwgXAotICAgICAgICAgICIwLjA0ODA2OSwgMC4xNTE2NzksIDAuMjU0MzY1LCAwLjMyNzgxOSwgMC40NDQ5MDMsIDAuNTQ3OTA2LCAwLjY5MzY4IiwgXAotICAgICAgICAgICIwLjA1Mzk3NSwgMC4xNTg5NjIsIDAuMjYxNTE1LCAwLjMzNDk3OCwgMC40NTIyNTEsIDAuNTU0NzcxLCAwLjcwMTA0NyIsIFwKLSAgICAgICAgICAiMC4wNTg2OTcsIDAuMTY2Mjk1LCAwLjI2ODk5MSwgMC4zNDIzNTMsIDAuNDU5NDYxLCAwLjU2MTkwMSwgMC43MDg0NDQiLCBcCi0gICAgICAgICAgIjAuMDY0ODc5LCAwLjE3NzkyLCAwLjI4MDY0NywgMC4zNTQxNjYsIDAuNDcxMjM3LCAwLjU3Mzk3NiwgMC43MjA0OTUiLCBcCi0gICAgICAgICAgIjAuMDY5MTc5LCAwLjE4ODA0LCAwLjI5MDcwNywgMC4zNjM5MTgsIDAuNDgxMzg2LCAwLjU4Mzk2MiwgMC43MzA2OTMiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTE3OTMsIDAuMjcwNTM3LCAwLjQ4OTEzLCAwLjY0NTQ3MSwgMC44OTU2NjYsIDEuMTE0MDMsIDEuNDI2NTMiLCBcCi0gICAgICAgICAgIjAuMDUyNDExLCAwLjI3MDQxMywgMC40ODkzMjMsIDAuNjQ1MjkxLCAwLjg5NTM0NSwgMS4xMTQzOSwgMS40MjYzNyIsIFwKLSAgICAgICAgICAiMC4wNTU4OSwgMC4yNzA1MiwgMC40ODkyNjIsIDAuNjQ1NDU5LCAwLjg5NTM1MSwgMS4xMTQzNiwgMS40MjY2NCIsIFwKLSAgICAgICAgICAiMC4wNjExNzksIDAuMjcxOTcsIDAuNDg5MjkzLCAwLjY0NTUwOSwgMC44OTUzNzksIDEuMTEzOTEsIDEuNDI2ODciLCBcCi0gICAgICAgICAgIjAuMDY3MjAzLCAwLjI3NDY1NCwgMC40ODk5NTEsIDAuNjQ0OTk2LCAwLjg5NTQ5MSwgMS4xMTQ1NCwgMS40MjU5OCIsIFwKLSAgICAgICAgICAiMC4wNzYzMzYsIDAuMjgwNTA0LCAwLjQ5Mjk1OCwgMC42NDcxNSwgMC44OTU4NTUsIDEuMTE0MTgsIDEuNDI2NzQiLCBcCi0gICAgICAgICAgIjAuMDg0MDc4LCAwLjI4Njg4NywgMC40OTY5OTgsIDAuNjQ5NzksIDAuODk3MjE3LCAxLjExNDY4LCAxLjQyNjQiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDcwNzYsIDAuMTkwNjY2LCAwLjMzMzEwOCwgMC40MzQ4NTMsIDAuNTk3NDUxLCAwLjczOTk2NywgMC45NDI4NzgiLCBcCi0gICAgICAgICAgIjAuMDUyNTUxLCAwLjE5NjM2MSwgMC4zMzg5MzcsIDAuNDQwNjI5LCAwLjYwMzI0NSwgMC43NDUxODEsIDAuOTQ5MDE2IiwgXAotICAgICAgICAgICIwLjA1ODM1MSwgMC4yMDIyNTMsIDAuMzQ0NzYsIDAuNDQ2NDQ5LCAwLjYwODk5OSwgMC43NTE2NTcsIDAuOTU0MzExIiwgXAotICAgICAgICAgICIwLjA2MzczNywgMC4yMDc5ODcsIDAuMzUwNTQ3LCAwLjQ1MjIwOCwgMC42MTQ5LCAwLjc1NzQ4MiwgMC45NjAyMDkiLCBcCi0gICAgICAgICAgIjAuMDY4NDQxLCAwLjIxMzcxMSwgMC4zNTYzNzQsIDAuNDU3OTYyLCAwLjYyMDY4LCAwLjc2MjgsIDAuOTY2MDUiLCBcCi0gICAgICAgICAgIjAuMDc1MjI1LCAwLjIyMjg1OSwgMC4zNjU0ODUsIDAuNDY3MTgzLCAwLjYyOTc0MywgMC43NzIxNDksIDAuOTc1MjciLCBcCi0gICAgICAgICAgIjAuMDgwMzAxLCAwLjIzMTAwMywgMC4zNzM1NzIsIDAuNDc1MzIyLCAwLjYzNzkyOCwgMC43ODA1NywgMC45ODM5MzQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzE5NjQsIDAuMzY3Njg1LCAwLjY2MzY5MSwgMC44NzM5ODUsIDEuMjExNDcsIDEuNTA2NzQsIDEuOTI4MTEiLCBcCi0gICAgICAgICAgIjAuMDcyMjAyLCAwLjM2NzQxNiwgMC42NjMwNzcsIDAuODczOTU1LCAxLjIxMTQ3LCAxLjUwNjgzLCAxLjkyODkyIiwgXAotICAgICAgICAgICIwLjA3NDIwMSwgMC4zNjczNzQsIDAuNjYyODQ3LCAwLjg3NDA0LCAxLjIxMTYxLCAxLjUwNzExLCAxLjkyNzgzIiwgXAotICAgICAgICAgICIwLjA3NzU1NiwgMC4zNjc5NTYsIDAuNjYzNTMsIDAuODczOTYzLCAxLjIxMTczLCAxLjUwNjcyLCAxLjkyODc4IiwgXAotICAgICAgICAgICIwLjA4MjEyNiwgMC4zNjkwOSwgMC42NjI5OTksIDAuODc0MDQ5LCAxLjIxMTQxLCAxLjUwNjk0LCAxLjkyNzkxIiwgXAotICAgICAgICAgICIwLjA4OTkxMSwgMC4zNzIzNCwgMC42NjQxMjEsIDAuODc0MTYsIDEuMjExNTEsIDEuNTA2OTUsIDEuOTI3OTEiLCBcCi0gICAgICAgICAgIjAuMDk3MDcxLCAwLjM3NjEwOSwgMC42NjYwNTQsIDAuODc1NzQ5LCAxLjIxMTY2LCAxLjUwNjcsIDEuOTI4NCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzEzMzgsIDAuMTM0MTYxLCAwLjIzNjY1MywgMC4zMTAwNjIsIDAuNDI3MzIxLCAwLjUyOTczLCAwLjY3NjA1NSIsIFwKLSAgICAgICAgICAiMC4wMzgzLCAwLjE0MTM0MywgMC4yNDM4MTYsIDAuMzE3MDU3LCAwLjQzNDQ0OSwgMC41MzY3MjUsIDAuNjgzNjEyIiwgXAotICAgICAgICAgICIwLjA0NTQyNSwgMC4xNDg3NjcsIDAuMjUxMzgzLCAwLjMyNDc5NCwgMC40NDE3ODcsIDAuNTQ0MTMxLCAwLjY5MDc0OSIsIFwKLSAgICAgICAgICAiMC4wNTA5NzEsIDAuMTU1OTg5LCAwLjI1ODUwOSwgMC4zMzE5MTQsIDAuNDQ5MiwgMC41NTE2OTksIDAuNjk3OTA1IiwgXAotICAgICAgICAgICIwLjA1NTM5MSwgMC4xNjMyMzUsIDAuMjY2MTI4LCAwLjMzOTQ5MywgMC40NTY0NDQsIDAuNTU4OTM2LCAwLjcwNTQ3IiwgXAotICAgICAgICAgICIwLjA2MDgyNywgMC4xNzQ4MTYsIDAuMjc3Mjg3LCAwLjM1MDY0MiwgMC40Njc2ODEsIDAuNTcwMTgxLCAwLjcxNjY2NiIsIFwKLSAgICAgICAgICAiMC4wNjQ4NDUsIDAuMTg1MDk1LCAwLjI4NzQ2NCwgMC4zNjA5ODIsIDAuNDc4Mzk5LCAwLjU4MTE2NywgMC43MjcyOTMiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDc4NzksIDAuMjY2NjEsIDAuNDg1MjgxLCAwLjY0MTQ2MywgMC44OTE0NTMsIDEuMTA5OTEsIDEuNDIxNzgiLCBcCi0gICAgICAgICAgIjAuMDQ4NiwgMC4yNjY1NzcsIDAuNDg1MjgzLCAwLjY0MTE3NCwgMC44OTEzNDMsIDEuMTEwMDEsIDEuNDIyMzgiLCBcCi0gICAgICAgICAgIjAuMDUyMzMxLCAwLjI2NjUzMywgMC40ODUyODYsIDAuNjQxMzY2LCAwLjg5MDkyMiwgMS4xMDk4LCAxLjQyMjAxIiwgXAotICAgICAgICAgICIwLjA1Nzg3MywgMC4yNjgxLCAwLjQ4NTI4MywgMC42NDE1MDcsIDAuODkxMDI1LCAxLjEwOTQ5LCAxLjQyMjY5IiwgXAotICAgICAgICAgICIwLjA2Mzc4NiwgMC4yNzA3NjMsIDAuNDg2MTg3LCAwLjY0MTQxOCwgMC44OTE2MTQsIDEuMTA5NjYsIDEuNDIxNzciLCBcCi0gICAgICAgICAgIjAuMDcyOTg1LCAwLjI3NjkyLCAwLjQ4OTAyOCwgMC42NDI5NzUsIDAuODkxNjM2LCAxLjExMDA3LCAxLjQyMTc5IiwgXAotICAgICAgICAgICIwLjA4MDUxOCwgMC4yODMzODEsIDAuNDkzMDc4LCAwLjY0NjQ0NCwgMC44OTMwMjgsIDEuMTEwMywgMS40MjIzOCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0NDcsIDAuMTg4NDAyLCAwLjMzMDg0NSwgMC40MzI1NTYsIDAuNTk1MTAyLCAwLjczNzE2MywgMC45NDA4NjQiLCBcCi0gICAgICAgICAgIjAuMDUwODc0LCAwLjE5NDcxNCwgMC4zMzcwNzgsIDAuNDM4NzE0LCAwLjYwMTI5NCwgMC43NDM0NDgsIDAuOTQ2NjI4IiwgXAotICAgICAgICAgICIwLjA1ODcyMSwgMC4yMDI2NzEsIDAuMzQ1MzcxLCAwLjQ0NjgxNywgMC42MDkzOTksIDAuNzUxNjI2LCAwLjk1NTA0NyIsIFwKLSAgICAgICAgICAiMC4wNjYzNjEsIDAuMjEwNjU0LCAwLjM1MzI3LCAwLjQ1NTAxMywgMC42MTc2NDUsIDAuNzU5ODA4LCAwLjk2MzU4NSIsIFwKLSAgICAgICAgICAiMC4wNzI4ODEsIDAuMjE4NzMyLCAwLjM2MDYwMiwgMC40NjMyODcsIDAuNjI1ODI3LCAwLjc2ODExOSwgMC45NzEwNTMiLCBcCi0gICAgICAgICAgIjAuMDgyMTk2LCAwLjIzMTk0OSwgMC4zNzQ0MSwgMC40NzYwOTcsIDAuNjM5MDA0LCAwLjc4MTA1MiwgMC45ODM5OTEiLCBcCi0gICAgICAgICAgIjAuMDg5NDU2LCAwLjI0MzI2NywgMC4zODU0NzUsIDAuNDg3NjkzLCAwLjY0OTk0MiwgMC43OTI4MDQsIDAuOTk1NDg4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDcxOTY3LCAwLjM2NzUwMSwgMC42NjI5OTYsIDAuODczOTA5LCAxLjIxMTM2LCAxLjUwNjk1LCAxLjkyODQzIiwgXAotICAgICAgICAgICIwLjA3MjQxNSwgMC4zNjc0MzEsIDAuNjYzMjcyLCAwLjg3MzkwMywgMS4yMTE1NCwgMS41MDY4MiwgMS45Mjc4NCIsIFwKLSAgICAgICAgICAiMC4wNzU5NDMsIDAuMzY3NjI1LCAwLjY2Mjg3MywgMC44NzM5MDQsIDEuMjExNTMsIDEuNTA2ODgsIDEuOTI4NjgiLCBcCi0gICAgICAgICAgIjAuMDgxNDE2LCAwLjM2ODEwNywgMC42NjM0NDEsIDAuODczODg0LCAxLjIxMTY2LCAxLjUwNjIyLCAxLjkyODkzIiwgXAotICAgICAgICAgICIwLjA4ODAwNywgMC4zNjk4MTIsIDAuNjYzMTk1LCAwLjg3Mzk5MSwgMS4yMTE3NSwgMS41MDYzOCwgMS45Mjc4NSIsIFwKLSAgICAgICAgICAiMC4wOTg0NTQsIDAuMzc0Njg0LCAwLjY2NDU3OCwgMC44NzQxNzQsIDEuMjExNSwgMS41MDYzMiwgMS45Mjg2NCIsIFwKLSAgICAgICAgICAiMC4xMDY5MDIsIDAuMzgwMjU2LCAwLjY2NjcsIDAuODc1MzMsIDEuMjExNjcsIDEuNTA2NzMsIDEuOTI3ODIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTIiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDI4MzY0LCAwLjEzMDc0LCAwLjIzMjk1NywgMC4zMDYxMTQsIDAuNDIzNDAzLCAwLjUyNTE4NiwgMC42NzE1MDQiLCBcCi0gICAgICAgICAgIjAuMDM1MjY4LCAwLjEzODA0MywgMC4yNDAxOTgsIDAuMzEzMjI0LCAwLjQzMDI2NywgMC41MzIzMywgMC42Nzg3MTMiLCBcCi0gICAgICAgICAgIjAuMDQyMTA0LCAwLjE0NTM5NiwgMC4yNDc4MTksIDAuMzIwNzQ1LCAwLjQzNzU5MywgMC41NDAwNDYsIDAuNjg2ODE0IiwgXAotICAgICAgICAgICIwLjA0NzE5MSwgMC4xNTI2MTUsIDAuMjU1MDgxLCAwLjMyODA4NCwgMC40NDUwOCwgMC41NDcxNzIsIDAuNjkzMTYyIiwgXAotICAgICAgICAgICIwLjA1MTE3MywgMC4xNTk4NzIsIDAuMjYyMjcsIDAuMzM1NTg1LCAwLjQ1MjI2NSwgMC41NTUxOTcsIDAuNzAxMjE2IiwgXAotICAgICAgICAgICIwLjA1NjI5MSwgMC4xNzE1ODQsIDAuMjczOTc5LCAwLjM0NzE4NiwgMC40NjQxMDgsIDAuNTY2NDU3LCAwLjcxMjUxNiIsIFwKLSAgICAgICAgICAiMC4wNTk1NTQsIDAuMTgxNjcyLCAwLjI4NDAyNCwgMC4zNTcxMjQsIDAuNDc0MTY5LCAwLjU3NzI2MSwgMC43MjI5MDkiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDM5NTQsIDAuMjYxNjU4LCAwLjQ3OTY2NywgMC42MzQ5NzEsIDAuODg0MzQyLCAxLjEwMTY5LCAxLjQxMzQ0IiwgXAotICAgICAgICAgICIwLjA0NDc3MSwgMC4yNjE1ODksIDAuNDc5NjI3LCAwLjYzNDgzOCwgMC44ODM5NTQsIDEuMTAyMjUsIDEuNDEyODciLCBcCi0gICAgICAgICAgIjAuMDQ4ODEyLCAwLjI2MTU1NywgMC40NzkzODIsIDAuNjM1MTY2LCAwLjg4Mzc3NCwgMS4xMDE3NSwgMS40MTM2MSIsIFwKLSAgICAgICAgICAiMC4wNTQ3NDMsIDAuMjYzNDU5LCAwLjQ3OTM2NywgMC42MzQ3NjEsIDAuODg0MDY1LCAxLjEwMTUsIDEuNDEzNjIiLCBcCi0gICAgICAgICAgIjAuMDYwNjUsIDAuMjY2MTI1LCAwLjQ4MTA2OSwgMC42MzUwOTYsIDAuODg0MjIyLCAxLjEwMjE0LCAxLjQxMzI5IiwgXAotICAgICAgICAgICIwLjA2OTM5OSwgMC4yNzIyNTMsIDAuNDg0MjU3LCAwLjYzNzc3NSwgMC44ODU0NiwgMS4xMDIxMSwgMS40MTM0NCIsIFwKLSAgICAgICAgICAiMC4wNzcxODksIDAuMjc4NjMsIDAuNDg3NDg2LCAwLjY0MDUyMiwgMC44ODY4OTUsIDEuMTAxOTcsIDEuNDEzNDUiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDAyMzgsIDAuMTgzODIyLCAwLjMyNjI0OSwgMC40MjgwMzIsIDAuNTkwNzM0LCAwLjczMjk2LCAwLjkzNjMzNSIsIFwKLSAgICAgICAgICAiMC4wNDcxOTcsIDAuMTkwODgxLCAwLjMzMzQ2MywgMC40MzUwNjIsIDAuNTk3NTUyLCAwLjczOTc5NywgMC45NDI3NCIsIFwKLSAgICAgICAgICAiMC4wNTY2NDcsIDAuMTk5OTY5LCAwLjM0MjQ4NSwgMC40NDQwNTUsIDAuNjA2NjE0LCAwLjc0OTA1MiwgMC45NTE4OTYiLCBcCi0gICAgICAgICAgIjAuMDY2MTUyLCAwLjIwOTEzOCwgMC4zNTE2OTgsIDAuNDUzMjkxLCAwLjYxNTgwNSwgMC43NTgwMzQsIDAuOTYxMjIiLCBcCi0gICAgICAgICAgIjAuMDczODIsIDAuMjE4NDYzLCAwLjM2MDMyOSwgMC40NjIzMzMsIDAuNjI0ODQ5LCAwLjc2NzAwMSwgMC45NzAxODUiLCBcCi0gICAgICAgICAgIjAuMDg0NTk5LCAwLjIzMzYwOCwgMC4zNzU1NDMsIDAuNDc3MjQ5LCAwLjYzOTc4LCAwLjc4MTc5OSwgMC45ODU0MjEiLCBcCi0gICAgICAgICAgIjAuMDkzMDM2LCAwLjI0NzAwOCwgMC4zODg2NjIsIDAuNDkwMjM1LCAwLjY1MTc1NywgMC43OTQ2NTUsIDAuOTk3NzA3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDcyMDk2LCAwLjM2NzY5NSwgMC42NjI5MjgsIDAuODczOTY3LCAxLjIxMTc0LCAxLjUwNjg4LCAxLjkyODQyIiwgXAotICAgICAgICAgICIwLjA3MjY2NiwgMC4zNjc1NTMsIDAuNjYyOTYsIDAuODczNzk2LCAxLjIxMTE1LCAxLjUwNjk3LCAxLjkyODU5IiwgXAotICAgICAgICAgICIwLjA3ODE2NywgMC4zNjc0MjIsIDAuNjYyOTE0LCAwLjg3Mzk4MywgMS4yMTE1OSwgMS41MDY4LCAxLjkyODY0IiwgXAotICAgICAgICAgICIwLjA4NTcxLCAwLjM2ODA4NCwgMC42NjI4NzQsIDAuODczOTU2LCAxLjIxMTU1LCAxLjUwNjE3LCAxLjkyODg3IiwgXAotICAgICAgICAgICIwLjA5NDEzLCAwLjM3MDYxLCAwLjY2Mjc4MSwgMC44NzM5OTgsIDEuMjExNjUsIDEuNTA2MiwgMS45Mjc5MyIsIFwKLSAgICAgICAgICAiMC4xMDY2NjQsIDAuMzc3Mjk1LCAwLjY2NDc0NCwgMC44NzM4OCwgMS4yMTE2MiwgMS41MDY5NywgMS45Mjg0MiIsIFwKLSAgICAgICAgICAiMC4xMTY1NDYsIDAuMzg1MDQsIDAuNjY4MzM2LCAwLjg3NTQzMywgMS4yMTE1NCwgMS41MDY3OCwgMS45Mjc4MiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjcyODYsIDAuMTMwOTExLCAwLjIzMzcwOSwgMC4zMDY3ODgsIDAuNDI0MDMxLCAwLjUyNjgxLCAwLjY3MzE3NyIsIFwKLSAgICAgICAgICAiMC4wMzQ4MDUsIDAuMTM4NTQ1LCAwLjI0MTI4MSwgMC4zMTQ1NTksIDAuNDMxNjE3LCAwLjUzNDI5NCwgMC42ODA3NTMiLCBcCi0gICAgICAgICAgIjAuMDQ0NzUzLCAwLjE0ODE2OCwgMC4yNTA4MTQsIDAuMzI0MDUsIDAuNDQxMzc3LCAwLjU0NDM0OCwgMC42ODk3ODYiLCBcCi0gICAgICAgICAgIjAuMDUyMzM2LCAwLjE1NzYyNiwgMC4yNjAxMjcsIDAuMzMzNjAyLCAwLjQ1MDg1NywgMC41NTMyODcsIDAuNjk5NjA4IiwgXAotICAgICAgICAgICIwLjA1ODc2LCAwLjE2NzQxNCwgMC4yNjk5NTQsIDAuMzQzMjAyLCAwLjQ2MDU1NywgMC41NjI3ODQsIDAuNzA5NzIxIiwgXAotICAgICAgICAgICIwLjA2NzU3NiwgMC4xODMxOTIsIDAuMjg1NTIxLCAwLjM1ODczMywgMC40NzU5OTUsIDAuNTc4Mjc3LCAwLjcyNTA2IiwgXAotICAgICAgICAgICIwLjA3MzUyMywgMC4xOTcyMzMsIDAuMjk5Mjc5LCAwLjM3MjM3NSwgMC40ODkzODksIDAuNTkyMjIzLCAwLjczODQ5OSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1MTQ4NywgMC4yNzA0MjYsIDAuNDg5MjUsIDAuNjQ1NjMxLCAwLjg5NTM1NywgMS4xMTQyLCAxLjQyNjU2IiwgXAotICAgICAgICAgICIwLjA1MzUyNiwgMC4yNzA0MTcsIDAuNDg5MTYyLCAwLjY0NTY1NywgMC44OTU3NzMsIDEuMTEzOTgsIDEuNDI2ODIiLCBcCi0gICAgICAgICAgIjAuMDYwNjk3LCAwLjI3MDQ5NywgMC40ODkyMzcsIDAuNjQ1NTUyLCAwLjg5NTM0NCwgMS4xMTQyOCwgMS40MjYzNiIsIFwKLSAgICAgICAgICAiMC4wNjkyNzIsIDAuMjczMDc4LCAwLjQ4OTE0LCAwLjY0NTQ1LCAwLjg5NTMzNCwgMS4xMTM3MywgMS40MjY2NSIsIFwKLSAgICAgICAgICAiMC4wNzcyNywgMC4yNzc0OTUsIDAuNDkwMjU3LCAwLjY0NTQ4OSwgMC44OTUzNTEsIDEuMTE0MjcsIDEuNDI2NDMiLCBcCi0gICAgICAgICAgIjAuMDg3Mzg4LCAwLjI4NzA0OSwgMC40OTUyMTQsIDAuNjQ3NTc4LCAwLjg5NTM1LCAxLjExMzczLCAxLjQyNjQyIiwgXAotICAgICAgICAgICIwLjA5NTg3NiwgMC4yOTY4NzgsIDAuNTAxNDQ0LCAwLjY1MTk4OCwgMC44OTY5MzIsIDEuMTE0MDksIDEuNDI2MzQiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTM0OTEsIDAuMDY4MzE4LCAwLjEyMzAzMiwgMC4xNjIwNzIsIDAuMjI0NTYzLCAwLjI3OTIwNiwgMC4zNTcyMTkiLCBcCi0gICAgICAgICAgIjAuMDIxNjg5LCAwLjA3NjgwOCwgMC4xMzE1MTMsIDAuMTcwNTgyLCAwLjIzMzAzMywgMC4yODc2ODIsIDAuMzY1NzA2IiwgXAotICAgICAgICAgICIwLjAyODgwMywgMC4wODcyNjIsIDAuMTQxOTM5LCAwLjE4MTAyOSwgMC4yNDM0NzUsIDAuMjk4MDk3LCAwLjM3NjEzMyIsIFwKLSAgICAgICAgICAiMC4wMzM5MTMsIDAuMDk4MjY5LCAwLjE1Mjc4MiwgMC4xOTE4MjQsIDAuMjU0MDI3LCAwLjMwODk2MywgMC4zODcwMDEiLCBcCi0gICAgICAgICAgIjAuMDM4MTI3LCAwLjEwODY4OCwgMC4xNjMxNzIsIDAuMjAyMjE0LCAwLjI2NDU3NywgMC4zMTg4MTQsIDAuMzk3MTk2IiwgXAotICAgICAgICAgICIwLjA0MzUyNSwgMC4xMjUzOSwgMC4xODAzNjEsIDAuMjE5MzMxLCAwLjI4MTY1NywgMC4zMzYxNTUsIDAuNDE0MTM4IiwgXAotICAgICAgICAgICIwLjA0NzQ0NSwgMC4xMzc4NTEsIDAuMTk1NTA2LCAwLjIzNDM5MiwgMC4yOTY1MzQsIDAuMzUxMTY2LCAwLjQyOTAyNyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyODg4NSwgMC4xNDA5MTYsIDAuMjUzNTY5LCAwLjMzNDE4MywgMC40NjMwNiwgMC41NzU4ODMsIDAuNzM3Mjk5IiwgXAotICAgICAgICAgICIwLjAzNDAwNCwgMC4xNDA5NDEsIDAuMjUzNTYyLCAwLjMzNDEwOCwgMC40NjMwMzgsIDAuNTc1ODcsIDAuNzM3MDgiLCBcCi0gICAgICAgICAgIjAuMDQzNDE3LCAwLjE0NDEyMywgMC4yNTM4ODcsIDAuMzM0MTUsIDAuNDYzMDUzLCAwLjU3NTg2MiwgMC43MzcwOTQiLCBcCi0gICAgICAgICAgIjAuMDUyNzg4LCAwLjE0OTk0OCwgMC4yNTY2MzksIDAuMzM1MjE5LCAwLjQ2MzA3NiwgMC41NzU4NjQsIDAuNzM3MDY0IiwgXAotICAgICAgICAgICIwLjA2MDgwNiwgMC4xNTc0NTIsIDAuMjYxNDE5LCAwLjMzODU0OSwgMC40NjQyNzgsIDAuNTc2MDgsIDAuNzM3MTkiLCBcCi0gICAgICAgICAgIjAuMDcyNTQ3LCAwLjE3MDg3MywgMC4yNzEyNywgMC4zNDYzNCwgMC40NjkzNTcsIDAuNTc4OTIxLCAwLjczNzc2MiIsIFwKLSAgICAgICAgICAiMC4wODIxNjgsIDAuMTgzODEzLCAwLjI4MTU0MywgMC4zNTQ5MjQsIDAuNDc1Njc3LCAwLjU4Mzg0MiwgMC43NDA1ODIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTc0MDcsIDAuMDE3NDEsIDAuMDE3NDEsIDAuMDE3NDA4LCAwLjAxNzQwNiwgMC4wMTc0MDYsIDAuMDE3NDA2IiwgXAotICAgICAgICAgICIwLjAxNzMwMywgMC4wMTczNDYsIDAuMDE3MzUxLCAwLjAxNzM1MSwgMC4wMTczNTIsIDAuMDE3MzUxLCAwLjAxNzM1MiIsIFwKLSAgICAgICAgICAiMC4wMTcyNzIsIDAuMDE3MzI5LCAwLjAxNzMzNiwgMC4wMTczNCwgMC4wMTczNCwgMC4wMTczMzgsIDAuMDE3MzQxIiwgXAotICAgICAgICAgICIwLjAxNzMwMiwgMC4wMTczMzEsIDAuMDE3MzM2LCAwLjAxNzM0LCAwLjAxNzM0MiwgMC4wMTczNDEsIDAuMDE3MzQiLCBcCi0gICAgICAgICAgIjAuMDE3MzkyLCAwLjAxNzM2MiwgMC4wMTczNTcsIDAuMDE3MzUyLCAwLjAxNzM1MywgMC4wMTczNDksIDAuMDE3MzQ2IiwgXAotICAgICAgICAgICIwLjAxNzYzNiwgMC4wMTc0NTEsIDAuMDE3NDE2LCAwLjAxNzQwNSwgMC4wMTczOTEsIDAuMDE3MzgzLCAwLjAxNzM3NCIsIFwKLSAgICAgICAgICAiMC4wMTc5NzksIDAuMDE3NTg0LCAwLjAxNzUwNSwgMC4wMTc0NzUsIDAuMDE3NDQ0LCAwLjAxNzQzLCAwLjAxNzQxMiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyODc2LCAwLjAwMjg5MSwgMC4wMDI4OTEsIDAuMDAyODksIDAuMDAyODg3LCAwLjAwMjg5LCAwLjAwMjg5IiwgXAotICAgICAgICAgICIwLjAwMjY1OCwgMC4wMDI3NjcsIDAuMDAyNzgzLCAwLjAwMjc4NywgMC4wMDI3OTEsIDAuMDAyNzkzLCAwLjAwMjc5MiIsIFwKLSAgICAgICAgICAiMC4wMDI1NjEsIDAuMDAyNzE1LCAwLjAwMjc0NSwgMC4wMDI3NTUsIDAuMDAyNzYzLCAwLjAwMjc2NywgMC4wMDI3NyIsIFwKLSAgICAgICAgICAiMC4wMDI1NjMsIDAuMDAyNjk0LCAwLjAwMjcyOCwgMC4wMDI3NCwgMC4wMDI3NTEsIDAuMDAyNzU2LCAwLjAwMjc2MSIsIFwKLSAgICAgICAgICAiMC4wMDI2NDMsIDAuMDAyNzAyLCAwLjAwMjczMSwgMC4wMDI3NDEsIDAuMDAyNzUsIDAuMDAyNzU1LCAwLjAwMjc1OSIsIFwKLSAgICAgICAgICAiMC4wMDI5MTgsIDAuMDAyNzc4LCAwLjAwMjc3NiwgMC4wMDI3NzUsIDAuMDAyNzc1LCAwLjAwMjc3NCwgMC4wMDI3NzMiLCBcCi0gICAgICAgICAgIjAuMDAzMjcxLCAwLjAwMjkwNSwgMC4wMDI4NTgsIDAuMDAyODM5LCAwLjAwMjgyNCwgMC4wMDI4MTQsIDAuMDAyODA2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE0NTk3LCAwLjAxNDYxOSwgMC4wMTQ2MiwgMC4wMTQ2MjIsIDAuMDE0NjIxLCAwLjAxNDYyMSwgMC4wMTQ2MiIsIFwKLSAgICAgICAgICAiMC4wMTQ0NjIsIDAuMDE0NTg4LCAwLjAxNDYwNCwgMC4wMTQ2MSwgMC4wMTQ2MTMsIDAuMDE0NjE1LCAwLjAxNDYxNiIsIFwKLSAgICAgICAgICAiMC4wMTQzOTMsIDAuMDE0NTU4LCAwLjAxNDU4NSwgMC4wMTQ1OTUsIDAuMDE0NjAyLCAwLjAxNDYwNiwgMC4wMTQ2MDkiLCBcCi0gICAgICAgICAgIjAuMDE0NDEsIDAuMDE0NTQ4LCAwLjAxNDU4MSwgMC4wMTQ1OTEsIDAuMDE0NTk5LCAwLjAxNDYwNCwgMC4wMTQ2MDciLCBcCi0gICAgICAgICAgIjAuMDE0NDk4LCAwLjAxNDU2NSwgMC4wMTQ1OTEsIDAuMDE0NTk5LCAwLjAxNDYwNCwgMC4wMTQ2MDUsIDAuMDE0NjEiLCBcCi0gICAgICAgICAgIjAuMDE0NzkxLCAwLjAxNDY1NCwgMC4wMTQ2NDcsIDAuMDE0NjQ1LCAwLjAxNDY0MiwgMC4wMTQ2MzksIDAuMDE0NjM0IiwgXAotICAgICAgICAgICIwLjAxNTExLCAwLjAxNDc3NCwgMC4wMTQ3MzEsIDAuMDE0NzE0LCAwLjAxNDcwMiwgMC4wMTQ2ODUsIDAuMDE0Njc3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI4NzgsIDAuMDAyODkyLCAwLjAwMjg5NiwgMC4wMDI4OTMsIDAuMDAyODkyLCAwLjAwMjg5MiwgMC4wMDI4OTEiLCBcCi0gICAgICAgICAgIjAuMDAyNjYxLCAwLjAwMjc3MSwgMC4wMDI3ODQsIDAuMDAyNzg4LCAwLjAwMjc5MiwgMC4wMDI3OTMsIDAuMDAyNzk0IiwgXAotICAgICAgICAgICIwLjAwMjU5NCwgMC4wMDI3MjQsIDAuMDAyNzUsIDAuMDAyNzU5LCAwLjAwMjc2NiwgMC4wMDI3NywgMC4wMDI3NzIiLCBcCi0gICAgICAgICAgIjAuMDAyNjUzLCAwLjAwMjcxOCwgMC4wMDI3NDMsIDAuMDAyNzUzLCAwLjAwMjc1OSwgMC4wMDI3NjMsIDAuMDAyNzY1IiwgXAotICAgICAgICAgICIwLjAwMjgxNSwgMC4wMDI3NTMsIDAuMDAyNzU1LCAwLjAwMjc2NCwgMC4wMDI3NjcsIDAuMDAyNzY5LCAwLjAwMjc3IiwgXAotICAgICAgICAgICIwLjAwMzE5NCwgMC4wMDI4NywgMC4wMDI4MjgsIDAuMDAyODE0LCAwLjAwMjgwNCwgMC4wMDI3OTgsIDAuMDAyNzkyIiwgXAotICAgICAgICAgICIwLjAwMzY1NywgMC4wMDMwMzQsIDAuMDAyOTM1LCAwLjAwMjkwMiwgMC4wMDI4NjcsIDAuMDAyODQ4LCAwLjAwMjgzMSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEyIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMTcyNiwgMC4wMTE4MDIsIDAuMDExODEzLCAwLjAxMTgxNCwgMC4wMTE4MTQsIDAuMDExODE4LCAwLjAxMTgxNyIsIFwKLSAgICAgICAgICAiMC4wMTE1NTYsIDAuMDExODAxLCAwLjAxMTgzMiwgMC4wMTE4NDIsIDAuMDExODUsIDAuMDExODU1LCAwLjAxMTg1OCIsIFwKLSAgICAgICAgICAiMC4wMTE0NTYsIDAuMDExNzYsIDAuMDExODA2LCAwLjAxMTgyNSwgMC4wMTE4MzksIDAuMDExODQ3LCAwLjAxMTg1NSIsIFwKLSAgICAgICAgICAiMC4wMTE0NywgMC4wMTE3MjQsIDAuMDExNzkzLCAwLjAxMTgxMywgMC4wMTE4MjYsIDAuMDExODQxLCAwLjAxMTg1MSIsIFwKLSAgICAgICAgICAiMC4wMTE1NjcsIDAuMDExNzM4LCAwLjAxMTc5NiwgMC4wMTE4MTYsIDAuMDExODM4LCAwLjAxMTg0NSwgMC4wMTE4NTIiLCBcCi0gICAgICAgICAgIjAuMDExODQzLCAwLjAxMTgwMSwgMC4wMTE4MzksIDAuMDExODQ2LCAwLjAxMTg1NiwgMC4wMTE4NjcsIDAuMDExODcyIiwgXAotICAgICAgICAgICIwLjAxMjE5OCwgMC4wMTE5MTMsIDAuMDExOTExLCAwLjAxMTkwNywgMC4wMTE5MDUsIDAuMDExOTA3LCAwLjAxMTkwNyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyODY4LCAwLjAwMjg5LCAwLjAwMjg5MSwgMC4wMDI4OTEsIDAuMDAyODkxLCAwLjAwMjg5MSwgMC4wMDI4OTEiLCBcCi0gICAgICAgICAgIjAuMDAyNjkyLCAwLjAwMjc3MywgMC4wMDI3ODgsIDAuMDAyNzg5LCAwLjAwMjc5MywgMC4wMDI3OTQsIDAuMDAyNzk1IiwgXAotICAgICAgICAgICIwLjAwMjgzMSwgMC4wMDI3ODQsIDAuMDAyNzg2LCAwLjAwMjc4NywgMC4wMDI3ODgsIDAuMDAyNzg4LCAwLjAwMjc4NyIsIFwKLSAgICAgICAgICAiMC4wMDMwNCwgMC4wMDI4NDksIDAuMDAyODE2LCAwLjAwMjgwOCwgMC4wMDI4MDEsIDAuMDAyNzk3LCAwLjAwMjc5MiIsIFwKLSAgICAgICAgICAiMC4wMDM0MiwgMC4wMDI5NjQsIDAuMDAyODkyLCAwLjAwMjg3MSwgMC4wMDI4NDcsIDAuMDAyODM0LCAwLjAwMjgyMyIsIFwKLSAgICAgICAgICAiMC4wMDQxMjMsIDAuMDAzMjMsIDAuMDAzMDU3LCAwLjAwMjk5OCwgMC4wMDI5NTQsIDAuMDAyOTIsIDAuMDAyODkxIiwgXAotICAgICAgICAgICIwLjAwNDgzOSwgMC4wMDM0OTgsIDAuMDAzMjQ3LCAwLjAwMzE1LCAwLjAwMzA3MywgMC4wMDMwMDYsIDAuMDAyOTU5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEyNTc4LCAwLjAxMjY3NywgMC4wMTI2ODcsIDAuMDEyNjksIDAuMDEyNjkzLCAwLjAxMjY5MiwgMC4wMTI2OTQiLCBcCi0gICAgICAgICAgIjAuMDEyNDcxLCAwLjAxMjYxNCwgMC4wMTI2NDgsIDAuMDEyNjU4LCAwLjAxMjY2NywgMC4wMTI2NzYsIDAuMDEyNjc1IiwgXAotICAgICAgICAgICIwLjAxMjYzMiwgMC4wMTI2MTYsIDAuMDEyNjQsIDAuMDEyNjQ4LCAwLjAxMjY2MSwgMC4wMTI2NjYsIDAuMDEyNjciLCBcCi0gICAgICAgICAgIjAuMDEzMDQ3LCAwLjAxMjcyOCwgMC4wMTI3MDYsIDAuMDEyNzA0LCAwLjAxMjY5NywgMC4wMTI2OTgsIDAuMDEyNjk1IiwgXAotICAgICAgICAgICIwLjAxMzQ5NCwgMC4wMTI4OCwgMC4wMTI4MDIsIDAuMDEyNzc4LCAwLjAxMjc1MSwgMC4wMTI3MzgsIDAuMDEyNzI3IiwgXAotICAgICAgICAgICIwLjAxNDA5MSwgMC4wMTMxODgsIDAuMDEzMDAzLCAwLjAxMjkzNSwgMC4wMTI4ODUsIDAuMDEyODM2LCAwLjAxMjgwMyIsIFwKLSAgICAgICAgICAiMC4wMTQ4MDksIDAuMDEzNTQyLCAwLjAxMzI0LCAwLjAxMzEyMiwgMC4wMTMwMzMsIDAuMDEyOTc2LCAwLjAxMjg5OSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwMTYyLCAwLjAwMDA2LCAwLjAwMDA3NCwgMC4wMDAwNzgsIDAuMDAwMDgxLCAwLjAwMDA4MywgMC4wMDAwODUiLCBcCi0gICAgICAgICAgIjAuMDAwMjk2LCAwLjAwMDA4MywgMC4wMDAxMjUsIDAuMDAwMTM5LCAwLjAwMDE1MSwgMC4wMDAxNTcsIDAuMDAwMTYzIiwgXAotICAgICAgICAgICIwLjAwMDA1OSwgMC4wMDAxMjgsIDAuMDAwMTU0LCAwLjAwMDE2NCwgMC4wMDAxNzIsIDAuMDAwMTc3LCAwLjAwMDE4MSIsIFwKLSAgICAgICAgICAiMC4wMDA0ODksIDAuMDAwMTkxLCAwLjAwMDE5LCAwLjAwMDE5MywgMC4wMDAxOTksIDAuMDAwMjA0LCAwLjAwMDIwMyIsIFwKLSAgICAgICAgICAiMC4wMDA5NzIsIDAuMDAwMzk3LCAwLjAwMDMxNywgMC4wMDAyOTYsIDAuMDAwMjcxLCAwLjAwMDI2MSwgMC4wMDAyNSIsIFwKLSAgICAgICAgICAiMC4wMDE5NzMsIDAuMDAwNzQsIDAuMDAwNTI1LCAwLjAwMDQ2MywgMC4wMDA0MDQsIDAuMDAwMzY3LCAwLjAwMDMzNSIsIFwKLSAgICAgICAgICAiMC4wMDI4MTYsIDAuMDAxMTcxLCAwLjAwMDc4NiwgMC4wMDA2NjksIDAuMDAwNTUzLCAwLjAwMDUwMSwgMC4wMDA0NDEiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBERkZIUVg4ICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKERGRkhRWDgpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMS43MTQzOwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIGZmIChOMzAsUUJJTlQpIHsKLSAgICBuZXh0X3N0YXRlIDogIkQiOwotICAgIGNsb2NrZWRfb24gOiAiQ0siOwotICB9Ci0gIHBpbihDSykgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNTk0NzE0OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDU5NDUxNTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA1OTQ3MTQ7Ci0gICAgY2xvY2sgOiB0cnVlOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNDA2NCwgMC4wMDQwNTIsIDAuMDA0MTI5LCAwLjAwNDIyMiwgMC4wMDQzNDQsIDAuMDA0NTY4LCAwLjAwNDc2NSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwOTQ3MSwgMC4wMDk0NTgsIDAuMDA5NTMxLCAwLjAwOTYxOCwgMC4wMDk3NDYsIDAuMDA5ODc1LCAwLjAxMDA1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRCI7Ci0gICAgICBzZGZfY29uZCA6ICJEID09IDEnYjAiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDg4MzU2LCAwLjA5NjY0MSwgMC4xMDYxODEsIDAuMTE0MTU5LCAwLjEyMDQ5MiwgMC4xMjg4MTIsIDAuMTM1MTM0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wNzM0NjUsIDAuMDgxNjA3LCAwLjA5MTA3MywgMC4wOTgyOTgsIDAuMTA0MTc0LCAwLjExMTk1OSwgMC4xMTc1MTkiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEQpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDgyMjQ0NzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA4MjA1NjI7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwODIyNDQ3OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzI1NiwgMC4wMDMyMTIsIDAuMDAzMjUzLCAwLjAwMzMwMywgMC4wMDMzODcsIDAuMDAzNTcxLCAwLjAwMzczOSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNDQzMywgMC4wMDQ0MDQsIDAuMDA0NDI4LCAwLjAwNDQ4NiwgMC4wMDQ1NzMsIDAuMDA0NzA3LCAwLjAwNDkwNiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAwNjI1LCAtMC4wMDEyNSwgMC4wMDUsIDAuMDA1LCAwLjAxMTI1LCAwLjAxNSwgMC4wMTc1IiwgXAotICAgICAgICAgICItMC4wMTEyNSwgLTAuMDA2MjUsIDAsIDAsIDAsIDAuMDAzNzUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjAxNzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAtMC4wMDYyNSwgMCwgMC4wMDM3NSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMTI1LCAtMC4wMDYyNSwgLTAuMDAyNSwgMCIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAxMjUsIC0wLjAwODc1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDMzNzUsIC0wLjAyODc1LCAtMC4wMjI1LCAtMC4wMTYyNSwgLTAuMDE2MjUsIC0wLjAxMjUsIC0wLjAxIiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDE1LCAtMC4wMTI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTg3NSwgMC4wMywgMC4wMzYyNSwgMC4wNDI1LCAwLjA0ODc1LCAwLjA1MjUsIDAuMDYxMjUiLCBcCi0gICAgICAgICAgIjAuMDEzNzUsIDAuMDI1LCAwLjAzMTI1LCAwLjAzNzUsIDAuMDQzNzUsIDAuMDQ3NSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiMC4wMTM3NSwgMC4wMTg3NSwgMC4wMzEyNSwgMC4wMzc1LCAwLjAzNzUsIDAuMDQ3NSwgMC4wNSIsIFwKLSAgICAgICAgICAiMC4wMDc1LCAwLjAxODc1LCAwLjAyNSwgMC4wMzEyNSwgMC4wMzc1LCAwLjA0NzUsIDAuMDUiLCBcCi0gICAgICAgICAgIjAuMDA3NSwgMC4wMTg3NSwgMC4wMjUsIDAuMDMxMjUsIDAuMDM3NSwgMC4wNDEyNSwgMC4wNSIsIFwKLSAgICAgICAgICAiMC4wMSwgMC4wMTUsIDAuMDIxMjUsIDAuMDI3NSwgMC4wMzM3NSwgMC4wNDM3NSwgMC4wNDYyNSIsIFwKLSAgICAgICAgICAiMC4wMDc1LCAwLjAxMjUsIDAuMDI1LCAwLjAzMTI1LCAwLjAzMTI1LCAwLjA0MTI1LCAwLjA0Mzc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyNSwgMC4wMiwgMC4wMTM3NSwgMC4wMDc1LCAwLjAwNzUsIDAuMDAzNzUsIC0wLjAwNSIsIFwKLSAgICAgICAgICAiMC4wMywgMC4wMjUsIDAuMDE4NzUsIDAuMDEyNSwgMC4wMTI1LCAwLjAwODc1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICIwLjAzNjI1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMTg3NSwgMC4wMTg3NSwgMC4wMTUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMDQyNSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMTg3NSwgMC4wMTUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4wNDg3NSwgMC4wNDM3NSwgMC4wMzEyNSwgMC4wMzEyNSwgMC4wMjUsIDAuMDIxMjUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMDU4NzUsIDAuMDQ3NSwgMC4wNDEyNSwgMC4wMzUsIDAuMDM1LCAwLjAyNSwgMC4wMjI1IiwgXAotICAgICAgICAgICIwLjA2MTI1LCAwLjA1LCAwLjA0Mzc1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDMzNzUsIDAuMDMxMjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDYyNSwgMC4wMDEyNSwgLTAuMDExMjUsIC0wLjAxNzUsIC0wLjAyMzc1LCAtMC4wMzM3NSwgLTAuMDQyNSIsIFwKLSAgICAgICAgICAiMC4wMTEyNSwgMC4wMDYyNSwgLTAuMDA2MjUsIC0wLjAxMjUsIC0wLjAxODc1LCAtMC4wMjg3NSwgLTAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMDE3NSwgMC4wMTI1LCAwLCAtMC4wMDYyNSwgLTAuMDEyNSwgLTAuMDIyNSwgLTAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMDIzNzUsIDAuMDE4NzUsIDAuMDA2MjUsIDAsIC0wLjAwNjI1LCAtMC4wMTYyNSwgLTAuMDI1IiwgXAotICAgICAgICAgICIwLjAzLCAwLjAxODc1LCAwLjAxMjUsIDAsIC0wLjAwNjI1LCAtMC4wMTYyNSwgLTAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMDMzNzUsIDAuMDIyNSwgMC4wMTYyNSwgMC4wMDM3NSwgLTAuMDAyNSwgLTAuMDA2MjUsIC0wLjAxNSIsIFwKLSAgICAgICAgICAiMC4wMzYyNSwgMC4wMzEyNSwgMC4wMTg3NSwgMC4wMTI1LCAwLCAtMC4wMDM3NSwgLTAuMDEyNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAyLjY2MzY7Ci0gICAgZnVuY3Rpb24gOiAiTjMwIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBub25fdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJpc2luZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4MTkyMywgMC4xMTA3MzYsIDAuMTM4MDM4LCAwLjE1NzUxMSwgMC4xODg2MzgsIDAuMjE1ODkxLCAwLjI1NDgiLCBcCi0gICAgICAgICAgIjAuMDkwMTcyLCAwLjExODk5MSwgMC4xNDYyODYsIDAuMTY1NzU4LCAwLjE5Njg5NiwgMC4yMjQxNDMsIDAuMjYzMDUyIiwgXAotICAgICAgICAgICIwLjA5OTYxMSwgMC4xMjg0MzUsIDAuMTU1NzI5LCAwLjE3NTIxLCAwLjIwNjM0OSwgMC4yMzM1ODUsIDAuMjcyNDk0IiwgXAotICAgICAgICAgICIwLjEwNzQ3OCwgMC4xMzYyOTUsIDAuMTYzNTkxLCAwLjE4MzA2LCAwLjIxNDIsIDAuMjQxNDQ4LCAwLjI4MDM1NiIsIFwKLSAgICAgICAgICAiMC4xMTM4MiwgMC4xNDI2NDMsIDAuMTY5OTQ2LCAwLjE4OTQyLCAwLjIyMDU0MywgMC4yNDc3ODcsIDAuMjg2NyIsIFwKLSAgICAgICAgICAiMC4xMjIwNzgsIDAuMTUwOTA1LCAwLjE3ODIwMSwgMC4xOTc2NzEsIDAuMjI4Nzk4LCAwLjI1NjA0NywgMC4yOTQ5NzMiLCBcCi0gICAgICAgICAgIjAuMTI4NjE2LCAwLjE1NzUxOCwgMC4xODQ4MjQsIDAuMjA0MjAzLCAwLjIzNTQyMywgMC4yNjI1ODgsIDAuMzAxNDk0Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE3MTc0LCAwLjA3MTU2MSwgMC4xMjgyMzIsIDAuMTY4OTc1LCAwLjIzNDQ5OCwgMC4yOTIyNCwgMC4zNzQ0OSIsIFwKLSAgICAgICAgICAiMC4wMTcxNDMsIDAuMDcxNTI0LCAwLjEyODIxOCwgMC4xNjkwNTEsIDAuMjM0Mzk4LCAwLjI5MjIxNSwgMC4zNzQ0MzEiLCBcCi0gICAgICAgICAgIjAuMDE3MTY0LCAwLjA3MTU1NSwgMC4xMjgyMTcsIDAuMTY5MDYsIDAuMjM0NDcyLCAwLjI5MjIxMywgMC4zNzQ0MDIiLCBcCi0gICAgICAgICAgIjAuMDE3MTcyLCAwLjA3MTU1OCwgMC4xMjgyMywgMC4xNjkwNDgsIDAuMjM0NTE0LCAwLjI5MjIyNywgMC4zNzQ0MjciLCBcCi0gICAgICAgICAgIjAuMDE3MTUyLCAwLjA3MTU1MywgMC4xMjgyMjgsIDAuMTY4OTY0LCAwLjIzNDU1OSwgMC4yOTE5NTYsIDAuMzc0MzkiLCBcCi0gICAgICAgICAgIjAuMDE3MTg3LCAwLjA3MTU5MSwgMC4xMjgxNTMsIDAuMTY4OTc4LCAwLjIzNDU1OSwgMC4yOTIyLCAwLjM3NDQ0NCIsIFwKLSAgICAgICAgICAiMC4wMTcxNzEsIDAuMDcxNTkyLCAwLjEyODE2NSwgMC4xNjkwNDEsIDAuMjM0NTUyLCAwLjI5MTk4MSwgMC4zNzQzMDQiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODgzNTYsIDAuMTE4MDU4LCAwLjE0NjMyNiwgMC4xNjY0NjUsIDAuMTk4NjgsIDAuMjI2ODYsIDAuMjY3MTEzIiwgXAotICAgICAgICAgICIwLjA5NjY0MSwgMC4xMjYzMzksIDAuMTU0NjA1LCAwLjE3NDc0NCwgMC4yMDY5NTksIDAuMjM1MTM5LCAwLjI3NTM5MSIsIFwKLSAgICAgICAgICAiMC4xMDYxODEsIDAuMTM1ODgzLCAwLjE2NDE0MSwgMC4xODQyODgsIDAuMjE2NTA1LCAwLjI0NDY3OCwgMC4yODQ5MzYiLCBcCi0gICAgICAgICAgIjAuMTE0MTU5LCAwLjE0Mzg2MiwgMC4xNzIxMiwgMC4xOTIyNjYsIDAuMjI0NDc1LCAwLjI1MjY2OCwgMC4yOTI5MjQiLCBcCi0gICAgICAgICAgIjAuMTIwNDkyLCAwLjE1MDE4OSwgMC4xNzg0NTIsIDAuMTk4NTk5LCAwLjIzMDgwOSwgMC4yNTg5ODgsIDAuMjk5Mjc2IiwgXAotICAgICAgICAgICIwLjEyODgxMiwgMC4xNTg1MTksIDAuMTg2Nzc3LCAwLjIwNjkyMSwgMC4yMzkxMywgMC4yNjczMjMsIDAuMzA3NTY4IiwgXAotICAgICAgICAgICIwLjEzNTEzNCwgMC4xNjQ4MzUsIDAuMTkyOTk0LCAwLjIxMzI0MSwgMC4yNDUzNDksIDAuMjczNTM5LCAwLjMxMzg4OSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxNjY4OCwgMC4wNzI2NDMsIDAuMTMwNTQ2LCAwLjE3MjE2MiwgMC4yMzkzNDMsIDAuMjk3OTM0LCAwLjM4MTcyOSIsIFwKLSAgICAgICAgICAiMC4wMTY2ODgsIDAuMDcyNjU1LCAwLjEzMDU0NSwgMC4xNzIxNiwgMC4yMzkzNDYsIDAuMjk3OTMxLCAwLjM4MTczMSIsIFwKLSAgICAgICAgICAiMC4wMTY2OSwgMC4wNzI2MjYsIDAuMTMwNTMyLCAwLjE3MjE3NiwgMC4yMzkzNjUsIDAuMjk3NjE2LCAwLjM4MTczNSIsIFwKLSAgICAgICAgICAiMC4wMTY2OTksIDAuMDcyNjE4LCAwLjEzMDUzMiwgMC4xNzIxNzYsIDAuMjM5MzExLCAwLjI5Nzk3NywgMC4zODEzMjQiLCBcCi0gICAgICAgICAgIjAuMDE2Njg5LCAwLjA3MjY4LCAwLjEzMDUzMSwgMC4xNzIxNzcsIDAuMjM5MDU0LCAwLjI5NzkyNywgMC4zODE4NTEiLCBcCi0gICAgICAgICAgIjAuMDE2NzAzLCAwLjA3MjY4OSwgMC4xMzA1NDMsIDAuMTcyMTcxLCAwLjIzOTA1NSwgMC4yOTc5OSwgMC4zODE2NTYiLCBcCi0gICAgICAgICAgIjAuMDE2Njg0LCAwLjA3MjU4NCwgMC4xMzA1MzMsIDAuMTcyMjI2LCAwLjIzOTMxOCwgMC4yOTc5NTcsIDAuMzgxNjYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjAxMzgsIDAuMDIwNDI5LCAwLjAyMDUwOSwgMC4wMjA1MzUsIDAuMDIwNTYsIDAuMDIwNTc4LCAwLjAyMDU5NCIsIFwKLSAgICAgICAgICAiMC4wMjAwOTUsIDAuMDIwNCwgMC4wMjA0ODIsIDAuMDIwNTEsIDAuMDIwNTM1LCAwLjAyMDU0OCwgMC4wMjA1NTQiLCBcCi0gICAgICAgICAgIjAuMDIwMTU4LCAwLjAyMDQ3MiwgMC4wMjA1NTYsIDAuMDIwNTg1LCAwLjAyMDYxMSwgMC4wMjA2MjUsIDAuMDIwNjQxIiwgXAotICAgICAgICAgICIwLjAyMDI5NCwgMC4wMjA1OTEsIDAuMDIwNjcxLCAwLjAyMDY5OSwgMC4wMjA3MjcsIDAuMDIwNzM3LCAwLjAyMDc1OSIsIFwKLSAgICAgICAgICAiMC4wMjAzOTcsIDAuMDIwNzA1LCAwLjAyMDc4OSwgMC4wMjA4MTgsIDAuMDIwODQ2LCAwLjAyMDg1NiwgMC4wMjA4NjkiLCBcCi0gICAgICAgICAgIjAuMDIwNjU3LCAwLjAyMDk0NSwgMC4wMjEwMjUsIDAuMDIxMDUxLCAwLjAyMTA2NywgMC4wMjEwNywgMC4wMjExIiwgXAotICAgICAgICAgICIwLjAyMDgyNywgMC4wMjEwOTksIDAuMDIxMTksIDAuMDIxMjQxLCAwLjAyMTIzMSwgMC4wMjEyNzQsIDAuMDIxMjkyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjAwMTksIDAuMDIwNDc0LCAwLjAyMDYsIDAuMDIwNjQzLCAwLjAyMDY4MiwgMC4wMjA3MDMsIDAuMDIwNzIyIiwgXAotICAgICAgICAgICIwLjAyMDAxNiwgMC4wMjA0NjUsIDAuMDIwNTg5LCAwLjAyMDYzMiwgMC4wMjA2NzEsIDAuMDIwNjkyLCAwLjAyMDcxMSIsIFwKLSAgICAgICAgICAiMC4wMjAxMTUsIDAuMDIwNTcsIDAuMDIwNjk3LCAwLjAyMDc0LCAwLjAyMDc3OSwgMC4wMjA4LCAwLjAyMDgxOSIsIFwKLSAgICAgICAgICAiMC4wMjAyNDYsIDAuMDIwNzAxLCAwLjAyMDgyNywgMC4wMjA4NjksIDAuMDIwOTA5LCAwLjAyMDkzLCAwLjAyMDk0OSIsIFwKLSAgICAgICAgICAiMC4wMjAzNTYsIDAuMDIwODEzLCAwLjAyMDkzNywgMC4wMjA5ODEsIDAuMDIxMDIsIDAuMDIxMDQyLCAwLjAyMTA2MSIsIFwKLSAgICAgICAgICAiMC4wMjA2MzUsIDAuMDIxMDk1LCAwLjAyMTIxMywgMC4wMjEyNTcsIDAuMDIxMzA0LCAwLjAyMTMxNSwgMC4wMjEzMzQiLCBcCi0gICAgICAgICAgIjAuMDIwODI1LCAwLjAyMTMsIDAuMDIxNDI4LCAwLjAyMTQ2NiwgMC4wMjE1MTMsIDAuMDIxNTM1LCAwLjAyMTU0NCIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBFREZGSFFYNCAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoRURGRkhRWDQpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMS40MTc7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgZmYgKE4zMCxRQklOVCkgewotICAgIG5leHRfc3RhdGUgOiAiKChFIEQpICsgKCFFICghKCFOMzApKSkpIjsKLSAgICBjbG9ja2VkX29uIDogIkNLIjsKLSAgfQotICBwaW4oQ0spICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY2ODEzNDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2NjgwOTc7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjY4MTM0OwotICAgIGNsb2NrIDogdHJ1ZTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDQ0NTYsIDAuMDA0NDUxLCAwLjAwNDUyNiwgMC4wMDQ2MjcsIDAuMDA0NzQ3LCAwLjAwNDk2OSwgMC4wMDUxNTgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDg2MzksIDAuMDA4NjQ2LCAwLjAwODczMiwgMC4wMDg4NTQsIDAuMDA5MDA3LCAwLjAwOTI3NSwgMC4wMDk1NzYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFEJkUiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX0VfRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjA4NDk0LCAwLjA5MzEsIDAuMTAyMDM3LCAwLjEwODc4MiwgMC4xMTQyNTksIDAuMTIxNzIzLCAwLjEyNzMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjA2MDU5LCAwLjA2ODY4MiwgMC4wNzc1MDksIDAuMDg0MDA3LCAwLjA4OTM3OSwgMC4wOTYyMTksIDAuMTAxMzYzIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihEKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA5MzUwNzc7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwOTMyNDM3OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDkzNTA3NzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDM5OSwgMC4wMDM5NDYsIDAuMDAzOTcyLCAwLjAwNDAxNiwgMC4wMDQxMDEsIDAuMDA0MjUsIDAuMDA0NDQ5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA4NTg0LCAwLjAwODU1NCwgMC4wMDg1NzcsIDAuMDA4NjI3LCAwLjAwODY4NCwgMC4wMDg4MzksIDAuMDA4OTg4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIkUiOwotICAgICAgc2RmX2NvbmQgOiAiRSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMzEyNSwgLTAuMDI2MjUsIC0wLjAyLCAtMC4wMiwgLTAuMDIsIC0wLjAxNjI1LCAtMC4wMTM3NSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAzMTI1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMjUsIC0wLjAyMTI1LCAtMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDI3NSwgLTAuMDI1IiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzMzc1LCAtMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDYxMjUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wNCwgLTAuMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDY1LCAtMC4wNiwgLTAuMDYsIC0wLjA1Mzc1LCAtMC4wNTM3NSwgLTAuMDUsIC0wLjA0NzUiLCBcCi0gICAgICAgICAgIi0wLjA3Mzc1LCAtMC4wNjg3NSwgLTAuMDYyNSwgLTAuMDYyNSwgLTAuMDYyNSwgLTAuMDU4NzUsIC0wLjA1NjI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDA2MjUsIC0wLjAwMTI1LCAwLjAwNSwgMC4wMTEyNSwgMC4wMTc1LCAwLjAyMTI1LCAwLjAyMzc1IiwgXAotICAgICAgICAgICItMC4wMTEyNSwgLTAuMDA2MjUsIDAsIDAuMDA2MjUsIDAuMDEyNSwgMC4wMTYyNSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLCAwLCAwLjAxLCAwLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAsIDAuMDAzNzUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgLTAuMDAyNSwgMCIsIFwKLSAgICAgICAgICAiLTAuMDMzNzUsIC0wLjAyODc1LCAtMC4wMjI1LCAtMC4wMTYyNSwgLTAuMDE2MjUsIC0wLjAwNjI1LCAtMC4wMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxNSwgLTAuMDA2MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIkUiOwotICAgICAgc2RmX2NvbmQgOiAiRSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTYyNSwgMC4wNDUsIDAuMDM4NzUsIDAuMDM4NzUsIDAuMDMyNSwgMC4wMjg3NSwgMC4wMjYyNSIsIFwKLSAgICAgICAgICAiMC4wNjEyNSwgMC4wNTYyNSwgMC4wNSwgMC4wNDM3NSwgMC4wNDM3NSwgMC4wNCwgMC4wMzc1IiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNSwgMC4wNSwgMC4wNDYyNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4wNzM3NSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1NjI1LCAwLjA1MjUsIDAuMDUiLCBcCi0gICAgICAgICAgIjAuMDgsIDAuMDc1LCAwLjA2ODc1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDU4NzUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIjAuMDksIDAuMDg1LCAwLjA3ODc1LCAwLjA3MjUsIDAuMDcyNSwgMC4wNjg3NSwgMC4wNjYyNSIsIFwKLSAgICAgICAgICAiMC4wOTg3NSwgMC4wOTM3NSwgMC4wODc1LCAwLjA4MTI1LCAwLjA4MTI1LCAwLjA3NzUsIDAuMDc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM3NSwgMC4wMzI1LCAwLjAyLCAwLjAxMzc1LCAwLjAxMzc1LCAwLjAwMzc1LCAwLjAwMTI1IiwgXAotICAgICAgICAgICIwLjA0MjUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMjUsIDAuMDE4NzUsIDAuMDA4NzUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMDU1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDI1LCAwLjAxNSwgMC4wMTI1IiwgXAotICAgICAgICAgICIwLjA2MTI1LCAwLjA1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDIxMjUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMDYxMjUsIDAuMDU2MjUsIDAuMDUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMjc1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiMC4wNzEyNSwgMC4wNjYyNSwgMC4wNTM3NSwgMC4wNDc1LCAwLjA0MTI1LCAwLjAzNzUsIDAuMDI4NzUiLCBcCi0gICAgICAgICAgIjAuMDgsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNSwgMC4wNCwgMC4wMzc1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihFKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE3ODQ0OTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE3ODQ0OTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE3ODQwNDsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDc4ODQsIDAuMDA3ODg3LCAwLjAwNzk2OCwgMC4wMDgwNzYsIDAuMDA4MjA1LCAwLjAwODQxLCAwLjAwODYxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA5MDkzLCAwLjAwOTExMiwgMC4wMDkyMjUsIDAuMDA5NDM2LCAwLjAwOTY4OSwgMC4wMTAxMDgsIDAuMDEwNDk1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEIjsKLSAgICAgIHNkZl9jb25kIDogIkQgPT0gMSdiMCI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDMxMjUsIC0wLjAyNjI1LCAtMC4wMiwgLTAuMDEzNzUsIC0wLjAwNzUsIDAuMDAyNSwgMC4wMDUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDg3NSwgMCIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTUsIC0wLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjA1NSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAyMTI1LCAtMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA1LCAtMC4wMzc1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDIxMjUsIC0wLjAxODc1IiwgXAotICAgICAgICAgICItMC4wNTg3NSwgLTAuMDUzNzUsIC0wLjA0NzUsIC0wLjA0MTI1LCAtMC4wMzUsIC0wLjAzMTI1LCAtMC4wMjI1IiwgXAotICAgICAgICAgICItMC4wNjc1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzM3NSwgLTAuMDI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMCwgMC4wMTEyNSwgMC4wMTEyNSwgMC4wMDUsIC0wLjAwMTI1LCAtMC4wMDM3NSwgLTAuMDAxMjUiLCBcCi0gICAgICAgICAgIi0wLjAwNSwgMCwgMCwgMCwgLTAuMDEyNSwgLTAuMDE1LCAtMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wMTEyNSwgLTAuMDA2MjUsIC0wLjAwNjI1LCAtMC4wMTI1LCAtMC4wMTg3NSwgLTAuMDIxMjUsIC0wLjAxODc1IiwgXAotICAgICAgICAgICItMC4wMTc1LCAtMC4wMTI1LCAtMC4wMTI1LCAtMC4wMTg3NSwgLTAuMDI1LCAtMC4wMjc1LCAtMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTg3NSwgLTAuMDE4NzUsIC0wLjAxODc1LCAtMC4wMzEyNSwgLTAuMDMzNzUsIC0wLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wMzM3NSwgLTAuMDI4NzUsIC0wLjAyMjUsIC0wLjAyODc1LCAtMC4wMzUsIC0wLjAzNzUsIC0wLjAzNSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAzMTI1LCAtMC4wMzc1LCAtMC4wMzc1LCAtMC4wNDM3NSwgLTAuMDQsIC0wLjAzNzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiRCI7Ci0gICAgICBzZGZfY29uZCA6ICJEID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAzMTI1LCAtMC4wMjYyNSwgLTAuMDIsIC0wLjAyLCAtMC4wMiwgLTAuMDE2MjUsIC0wLjAxMzc1IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMjUsIC0wLjAyMTI1LCAtMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzc1LCAtMC4wMzc1LCAtMC4wMzM3NSwgLTAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjA2MTI1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wNDM3NSwgLTAuMDQsIC0wLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjA2NzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjA0NjI1LCAtMC4wNDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDc3NSwgLTAuMDcyNSwgLTAuMDY2MjUsIC0wLjA2NjI1LCAtMC4wNiwgLTAuMDU2MjUsIC0wLjA1Mzc1IiwgXAotICAgICAgICAgICItMC4wODYyNSwgLTAuMDgxMjUsIC0wLjA3NSwgLTAuMDY4NzUsIC0wLjA2ODc1LCAtMC4wNjUsIC0wLjA2MjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMjUsIDAuMDE3NSwgMC4wMjM3NSwgMC4wMywgMC4wMzYyNSwgMC4wNCwgMC4wNDI1IiwgXAotICAgICAgICAgICIwLjAwMTI1LCAwLjAxMjUsIDAuMDE4NzUsIDAuMDI1LCAwLjAyNSwgMC4wMzUsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDA1LCAwLjAwNjI1LCAwLjAxMjUsIDAuMDEyNSwgMC4wMTg3NSwgMC4wMjI1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wMTEyNSwgMCwgMC4wMDYyNSwgMC4wMTI1LCAwLjAxMjUsIDAuMDIyNSwgMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjAxMTI1LCAtMC4wMDYyNSwgMCwgMC4wMDYyNSwgMC4wMDYyNSwgMC4wMTYyNSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDIxMjUsIC0wLjAxNjI1LCAtMC4wMSwgLTAuMDAzNzUsIDAuMDAyNSwgMC4wMDYyNSwgMC4wMDg3NSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgLTAuMDA2MjUsIC0wLjAwMjUsIDAuMDA2MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEIjsKLSAgICAgIHNkZl9jb25kIDogIkQgPT0gMSdiMCI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQzNzUsIDAuMDM4NzUsIDAuMDI2MjUsIDAuMDIsIDAuMDIsIDAuMDEsIDAuMDA3NSIsIFwKLSAgICAgICAgICAiMC4wNTUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMjUsIDAuMDIxMjUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4wNjEyNSwgMC4wNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyNzUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMDY3NSwgMC4wNTYyNSwgMC4wNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAyNzUsIDAuMDI1IiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDYyNSwgMC4wNSwgMC4wNDM3NSwgMC4wNDM3NSwgMC4wMzM3NSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4wNzEyNSwgMC4wNjYyNSwgMC4wNiwgMC4wNTM3NSwgMC4wNDc1LCAwLjAzNzUsIDAuMDM1IiwgXAotICAgICAgICAgICIwLjA4LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDUsIDAuMDQ2MjUsIDAuMDM3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzMTI1LCAwLjAyNjI1LCAwLjAyLCAwLjAyLCAwLjAyLCAwLjAxNjI1LCAwLjAxMzc1IiwgXAotICAgICAgICAgICIwLjA0MjUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMzEyNSwgMC4wMjUsIDAuMDIxMjUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMDQ4NzUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzc1LCAwLjAzNzUsIDAuMDMzNzUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMDU1LCAwLjA1LCAwLjA0Mzc1LCAwLjA0Mzc1LCAwLjA0Mzc1LCAwLjA0LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIjAuMDYxMjUsIDAuMDU2MjUsIDAuMDUsIDAuMDUsIDAuMDQzNzUsIDAuMDQsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiMC4wNjUsIDAuMDYsIDAuMDUzNzUsIDAuMDUzNzUsIDAuMDUzNzUsIDAuMDUsIDAuMDQ3NSIsIFwKLSAgICAgICAgICAiMC4wNjc1LCAwLjA2MjUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNTYyNSwgMC4wNTI1LCAwLjA1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJEIjsKLSAgICAgIHNkZl9jb25kIDogIkQgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDUsIDAuMDQ1LCAwLjAzODc1LCAwLjAzMjUsIDAuMDMyNSwgMC4wMjg3NSwgMC4wMjYyNSIsIFwKLSAgICAgICAgICAiMC4wNTUsIDAuMDUsIDAuMDQzNzUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzM3NSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4wNjc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDUsIDAuMDUsIDAuMDQ2MjUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMDczNzUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1MjUsIDAuMDUiLCBcCi0gICAgICAgICAgIjAuMDg2MjUsIDAuMDc1LCAwLjA2ODc1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDU4NzUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIjAuMDk2MjUsIDAuMDg1LCAwLjA3ODc1LCAwLjA3ODc1LCAwLjA3MjUsIDAuMDY4NzUsIDAuMDY2MjUiLCBcCi0gICAgICAgICAgIjAuMTA1LCAwLjA5Mzc1LCAwLjA4NzUsIDAuMDg3NSwgMC4wODEyNSwgMC4wNzc1LCAwLjA3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMjUsIDAuMDAxMjUsIC0wLjAwNSwgLTAuMDExMjUsIC0wLjAxMTI1LCAtMC4wMjEyNSwgLTAuMDIzNzUiLCBcCi0gICAgICAgICAgIjAuMDE3NSwgMC4wMTI1LCAwLjAwNjI1LCAwLCAtMC4wMDYyNSwgLTAuMDEsIC0wLjAxODc1IiwgXAotICAgICAgICAgICIwLjAzLCAwLjAxODc1LCAwLjAxMjUsIDAuMDA2MjUsIDAsIC0wLjAwMzc1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiMC4wMzYyNSwgMC4wMjUsIDAuMDE4NzUsIDAuMDEyNSwgMC4wMTI1LCAwLjAwMjUsIDAiLCBcCi0gICAgICAgICAgIjAuMDQyNSwgMC4wMzEyNSwgMC4wMjUsIDAuMDE4NzUsIDAuMDE4NzUsIDAuMDA4NzUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMDQ2MjUsIDAuMDQxMjUsIDAuMDM1LCAwLjAyODc1LCAwLjAyMjUsIDAuMDE4NzUsIDAuMDE2MjUiLCBcCi0gICAgICAgICAgIjAuMDU1LCAwLjA1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDMxMjUsIDAuMDIxMjUsIDAuMDE4NzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFEpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMS4zMjg1MjsKLSAgICBmdW5jdGlvbiA6ICJOMzAiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5vbl91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcmlzaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc2MTI4LCAwLjEzMjIyOSwgMC4xODc1NzksIDAuMjI3MDYyLCAwLjI5MDQxMSwgMC4zNDU3MTUsIDAuNDI0NzQ1IiwgXAotICAgICAgICAgICIwLjA4NDE5LCAwLjE0MDI5MiwgMC4xOTU2MzcsIDAuMjM1MTU0LCAwLjI5ODMzOCwgMC4zNTM2NywgMC40MzI4NTgiLCBcCi0gICAgICAgICAgIjAuMDkzMTE4LCAwLjE0OTIyNCwgMC4yMDQ1NzIsIDAuMjQ0MDksIDAuMzA3MzkyLCAwLjM2MjcwNywgMC40NDE3MzIiLCBcCi0gICAgICAgICAgIjAuMDk5Nzg0LCAwLjE1NTg5NCwgMC4yMTEyMzQsIDAuMjUwNzY2LCAwLjMxNDA3MywgMC4zNjkzODEsIDAuNDQ4NDA5IiwgXAotICAgICAgICAgICIwLjEwNTE5NSwgMC4xNjEzLCAwLjIxNjY1NywgMC4yNTYxNzcsIDAuMzE5NDkxLCAwLjM3NDgsIDAuNDUzODkxIiwgXAotICAgICAgICAgICIwLjExMjQ2MiwgMC4xNjg2ODksIDAuMjIzOTE5LCAwLjI2MzQ0OCwgMC4zMjY3MDksIDAuMzgyMDUxLCAwLjQ2MTA3NSIsIFwKLSAgICAgICAgICAiMC4xMTc5NTIsIDAuMTc0MTYsIDAuMjI5NTA1LCAwLjI2OTA0MiwgMC4zMzIxOTIsIDAuMzg3NTE0LCAwLjQ2NjcxNCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyNTI0LCAwLjE0MDI0MywgMC4yNTgyMTcsIDAuMzQyMzY0LCAwLjQ3NzE4OCwgMC41OTYyMDgsIDAuNzY1MDk4IiwgXAotICAgICAgICAgICIwLjAyNTI0LCAwLjE0MDI0MSwgMC4yNTgyMzUsIDAuMzQyNTc5LCAwLjQ3NzA1NCwgMC41OTQ4MTEsIDAuNzY0MDI3IiwgXAotICAgICAgICAgICIwLjAyNTIzMywgMC4xNDAyNDIsIDAuMjU4MjI4LCAwLjM0MjQ0NiwgMC40NzcyMjUsIDAuNTk2MTg4LCAwLjc2NTA4NSIsIFwKLSAgICAgICAgICAiMC4wMjUyNCwgMC4xNDAyNDEsIDAuMjU4MTg3LCAwLjM0MjY1NywgMC40NzcyMTQsIDAuNTk2MTc3LCAwLjc2NTA2MiIsIFwKLSAgICAgICAgICAiMC4wMjUyMzcsIDAuMTQwMjI5LCAwLjI1ODIxMiwgMC4zNDI1OTQsIDAuNDc3MjAxLCAwLjU5NjEwOCwgMC43NjQ5ODgiLCBcCi0gICAgICAgICAgIjAuMDI1MjI5LCAwLjE0MDMxOCwgMC4yNTgyLCAwLjM0Mjc2NywgMC40NzcyNTksIDAuNTk2MDg5LCAwLjc2NDM0NSIsIFwKLSAgICAgICAgICAiMC4wMjUyNzUsIDAuMTQwMTc4LCAwLjI1ODMxMSwgMC4zNDI4LCAwLjQ3Nzg1NSwgMC41OTU1ODcsIDAuNzY0MzU0Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg0OTQsIDAuMTM5Nzg2LCAwLjE5MzY5OCwgMC4yMzIxOTcsIDAuMjkzODAxLCAwLjM0NzY4MiwgMC40MjQ2NjgiLCBcCi0gICAgICAgICAgIjAuMDkzMSwgMC4xNDc5NDQsIDAuMjAxODU2LCAwLjI0MDM2LCAwLjMwMTk1OSwgMC4zNTU4MzgsIDAuNDMyODM0IiwgXAotICAgICAgICAgICIwLjEwMjAzNywgMC4xNTY4NzUsIDAuMjEwNzg3LCAwLjI0OTMwNSwgMC4zMTA4ODgsIDAuMzY0NzY5LCAwLjQ0MTc1NCIsIFwKLSAgICAgICAgICAiMC4xMDg3ODIsIDAuMTYzNjI4LCAwLjIxNzU0NCwgMC4yNTYwNTEsIDAuMzE3NjQ5LCAwLjM3MTUyMywgMC40NDg1MTMiLCBcCi0gICAgICAgICAgIjAuMTE0MjU5LCAwLjE2OTA3OCwgMC4yMjI5OTUsIDAuMjYxNDk3LCAwLjMyMzA4OCwgMC4zNzY5NzUsIDAuNDUzOTYiLCBcCi0gICAgICAgICAgIjAuMTIxNzIzLCAwLjE3NjU4MSwgMC4yMzA0ODQsIDAuMjY4OTgxLCAwLjMzMDU4NiwgMC4zODQ0ODksIDAuNDYxNDQyIiwgXAotICAgICAgICAgICIwLjEyNzMsIDAuMTgyMTUxLCAwLjIzNjA1NCwgMC4yNzQ1NTcsIDAuMzM2MDI1LCAwLjM4OTk2LCAwLjQ2Njg4NSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyNDAxOSwgMC4xMzMzMDIsIDAuMjQ1MTY0LCAwLjMyNDg5OCwgMC40NTM1NzQsIDAuNTY1Nzg2LCAwLjcyNjA3MSIsIFwKLSAgICAgICAgICAiMC4wMjQwMTgsIDAuMTMzMjk3LCAwLjI0NTE2MSwgMC4zMjQ5MTcsIDAuNDUzNTcyLCAwLjU2NTc4MiwgMC43MjUzMzciLCBcCi0gICAgICAgICAgIjAuMDI0MDI0LCAwLjEzMzMwNCwgMC4yNDUxNTMsIDAuMzI1MzQ2LCAwLjQ1MzU2NiwgMC41NjU3ODksIDAuNzI2MTI3IiwgXAotICAgICAgICAgICIwLjAyNDAxNywgMC4xMzMzMDQsIDAuMjQ1MTg5LCAwLjMyNDc2NSwgMC40NTM1ODEsIDAuNTY1Nzg4LCAwLjcyNTI3IiwgXAotICAgICAgICAgICIwLjAyNDA1NywgMC4xMzMzMTgsIDAuMjQ1MTk2LCAwLjMyNDkyOCwgMC40NTM1NTQsIDAuNTY1Nzk2LCAwLjcyNTIxNCIsIFwKLSAgICAgICAgICAiMC4wMjQwMTgsIDAuMTMzMjg3LCAwLjI0NTE3NCwgMC4zMjUyODUsIDAuNDUzNTc0LCAwLjU2NTc4OCwgMC43MjYxMDYiLCBcCi0gICAgICAgICAgIjAuMDI0MDE3LCAwLjEzMzA4OSwgMC4yNDQ3OTUsIDAuMzI1MzI1LCAwLjQ1MzU5LCAwLjU2NDY4OSwgMC43MjYxNDIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTQ1NzUsIDAuMDE0NzE2LCAwLjAxNDczOSwgMC4wMTQ3NDYsIDAuMDE0NzUyLCAwLjAxNDc1NiwgMC4wMTQ3NTMiLCBcCi0gICAgICAgICAgIjAuMDE0NTU5LCAwLjAxNDcsIDAuMDE0NzIzLCAwLjAxNDczOCwgMC4wMTQ3NDIsIDAuMDE0NzQsIDAuMDE0NzQyIiwgXAotICAgICAgICAgICIwLjAxNDYxNSwgMC4wMTQ3NjIsIDAuMDE0Nzg2LCAwLjAxNDc5MywgMC4wMTQ4LCAwLjAxNDgwMywgMC4wMTQ4MDMiLCBcCi0gICAgICAgICAgIjAuMDE0NzMsIDAuMDE0ODgyLCAwLjAxNDkwNywgMC4wMTQ5MTUsIDAuMDE0OTIsIDAuMDE0OTI0LCAwLjAxNDkyOSIsIFwKLSAgICAgICAgICAiMC4wMTQ4NzYsIDAuMDE1MDI4LCAwLjAxNTA1MywgMC4wMTUwNiwgMC4wMTUwNjcsIDAuMDE1MDcxLCAwLjAxNTA3NCIsIFwKLSAgICAgICAgICAiMC4wMTUwODIsIDAuMDE1MjM4LCAwLjAxNTI0NywgMC4wMTUyNDksIDAuMDE1MjU2LCAwLjAxNTI1OSwgMC4wMTUyNjIiLCBcCi0gICAgICAgICAgIjAuMDE1MzIyLCAwLjAxNTQxNiwgMC4wMTU0MzksIDAuMDE1NDQ4LCAwLjAxNTQ4NCwgMC4wMTU1MDEsIDAuMDE1NDYyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTQ0OTEsIDAuMDE0NjkyLCAwLjAxNDcyMSwgMC4wMTQ3MjgsIDAuMDE0NzM3LCAwLjAxNDc0MSwgMC4wMTQ3NDQiLCBcCi0gICAgICAgICAgIjAuMDE0NTA0LCAwLjAxNDcsIDAuMDE0NzI4LCAwLjAxNDczNiwgMC4wMTQ3NDMsIDAuMDE0NzQ3LCAwLjAxNDc1MSIsIFwKLSAgICAgICAgICAiMC4wMTQ2MTIsIDAuMDE0ODAzLCAwLjAxNDgzLCAwLjAxNDgzOCwgMC4wMTQ4NDUsIDAuMDE0ODQ4LCAwLjAxNDg1MSIsIFwKLSAgICAgICAgICAiMC4wMTQ3MzIsIDAuMDE0OTI5LCAwLjAxNDk1NiwgMC4wMTQ5NjUsIDAuMDE0OTcxLCAwLjAxNDk3NiwgMC4wMTQ5NzgiLCBcCi0gICAgICAgICAgIjAuMDE0ODg4LCAwLjAxNTEwMSwgMC4wMTUxMjksIDAuMDE1MTM4LCAwLjAxNTE0NiwgMC4wMTUxNDgsIDAuMDE1MTUyIiwgXAotICAgICAgICAgICIwLjAxNTE1NiwgMC4wMTUzNSwgMC4wMTUzNzgsIDAuMDE1Mzg0LCAwLjAxNTM5MSwgMC4wMTUzNzksIDAuMDE1Mzk3IiwgXAotICAgICAgICAgICIwLjAxNTM0MSwgMC4wMTU1MzUsIDAuMDE1NTYxLCAwLjAxNTU3LCAwLjAxNTYwMiwgMC4wMTU2MDUsIDAuMDE1NjA4Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IElOVlhMICoKLSAqIC0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChJTlZYTCkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjA1ODc0MzM7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYzNTAzNDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MzUwMzQ7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjM0OTA3OwotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMjAwODIyOwotICAgIGZ1bmN0aW9uIDogIighQSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1Nzg3OCwgMC4wNjg0NDUsIDAuMTYzMzU2LCAwLjMyMTM3NSwgMC40Nzg5NDUsIDAuODQ3NDksIDEuMDU4MTYiLCBcCi0gICAgICAgICAgIjAuMDY1OTI5LCAwLjA3NjUxMSwgMC4xNzEyNzQsIDAuMzI5MTQzLCAwLjQ4NjkzOSwgMC44NTUyMzcsIDEuMDY2MjUiLCBcCi0gICAgICAgICAgIjAuMDc2MDA5LCAwLjA4NjUxOSwgMC4xODEyMjksIDAuMzM5MTE2LCAwLjQ5NjkyNSwgMC44NjU1ODYsIDEuMDc2NjkiLCBcCi0gICAgICAgICAgIjAuMDg2MzMsIDAuMDk2NzcxLCAwLjE5MTMyMywgMC4zNDkzNiwgMC41MDY5MjIsIDAuODc1MiwgMS4wODYyOCIsIFwKLSAgICAgICAgICAiMC4wOTY1OTgsIDAuMTA3MTM1LCAwLjIwMTQzOSwgMC4zNTg0MTMsIDAuNTE3MTkxLCAwLjg4NTc3NSwgMS4wOTU3MyIsIFwKLSAgICAgICAgICAiMC4xMTA3ODcsIDAuMTIyNzM3LCAwLjIxNzcxMywgMC4zNzU1MTEsIDAuNTMzMTc1LCAwLjkwMTQ4MSwgMS4xMTE4NyIsIFwKLSAgICAgICAgICAiMC4xMjA5NywgMC4xMzQxODcsIDAuMjMyMTk1LCAwLjM4OTY0NSwgMC41NDc0ODEsIDAuOTE1NTcyLCAxLjEyNjEzIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExNjA0NiwgMC4xMzgwNTksIDAuMzM3NDg2LCAwLjY2OTczMSwgMS4wMDIxNSwgMS43NzY1NCwgMi4yMTk1IiwgXAotICAgICAgICAgICIwLjExNjQxNCwgMC4xMzgxMzcsIDAuMzM3MzQsIDAuNjY5NDIxLCAxLjAwMTE1LCAxLjc3NjE0LCAyLjIxOTY0IiwgXAotICAgICAgICAgICIwLjEyMDc1NiwgMC4xNDE2NywgMC4zMzcxOCwgMC42NjkxMDMsIDEuMDAxNTEsIDEuNzc2NjQsIDIuMjE5MTEiLCBcCi0gICAgICAgICAgIjAuMTI3Nzg0LCAwLjE0Nzk3MywgMC4zMzg3NSwgMC42Njk0MDQsIDEuMDAyNjIsIDEuNzc4OTQsIDIuMjE5NDMiLCBcCi0gICAgICAgICAgIjAuMTM2MDU0LCAwLjE1NTYyMSwgMC4zNDIyMTEsIDAuNjY5MzAyLCAxLjAwMTU1LCAxLjc3NjYyLCAyLjIxODMiLCBcCi0gICAgICAgICAgIjAuMTUxMiwgMC4xNjkzNDMsIDAuMzUwNjAzLCAwLjY3MTMxLCAxLjAwMTc4LCAxLjc3NTc1LCAyLjIxODIyIiwgXAotICAgICAgICAgICIwLjE2NDA1NywgMC4xODMwNzQsIDAuMzU5NDc1LCAwLjY3NjQyOCwgMS4wMDE1OSwgMS43Nzg1LCAyLjIyMDQ0Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1MzQwNiwgMC4wNjMwNDUsIDAuMTQ5ODgyLCAwLjI5NDY4MSwgMC40MzkzMTUsIDAuNzc3MzA2LCAwLjk3MDU5NyIsIFwKLSAgICAgICAgICAiMC4wNjE1MDEsIDAuMDcxMTQyLCAwLjE1ODAyNSwgMC4zMDI3MjcsIDAuNDQ3NDAyLCAwLjc4NTE1MSwgMC45Nzg0NzIiLCBcCi0gICAgICAgICAgIjAuMDcxOTk3LCAwLjA4MTU5OSwgMC4xNjgyMjMsIDAuMzEzMjU5LCAwLjQ1NzY5NiwgMC43OTYwMSwgMC45ODgxNzUiLCBcCi0gICAgICAgICAgIjAuMDgyNTQ3LCAwLjA5MjEyOCwgMC4xNzg3OTMsIDAuMzIzNTc2LCAwLjQ2ODQyMywgMC44MDU4NzUsIDAuOTk4NDkiLCBcCi0gICAgICAgICAgIjAuMDkyOTc0LCAwLjEwMjc1LCAwLjE4OTA2NSwgMC4zMzM0MDgsIDAuNDc4NDEyLCAwLjgxNjU5MywgMS4wMDg3NSIsIFwKLSAgICAgICAgICAiMC4xMDY5NzIsIDAuMTE4NDE5LCAwLjIwNjAwNiwgMC4zNTAzNzIsIDAuNDkyNzQxLCAwLjgzMjU4NCwgMS4wMjUzMSIsIFwKLSAgICAgICAgICAiMC4xMTc0NjYsIDAuMTMwMTYxLCAwLjIyMDY1NiwgMC4zNjQ5NjYsIDAuNTA5NTMxLCAwLjg0NzQwNywgMS4wNDAwNCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDM1MDgsIDAuMTIzMjc1LCAwLjMwMTk5NywgMC41OTg4MSwgMC44OTY4ODcsIDEuNTg4MTYsIDEuOTg1MTciLCBcCi0gICAgICAgICAgIjAuMTA0MDIyLCAwLjEyMzUzNSwgMC4zMDE0NjksIDAuNTk4OTAyLCAwLjg5NTE1OCwgMS41OTA5OCwgMS45ODQwOSIsIFwKLSAgICAgICAgICAiMC4xMDg4MSwgMC4xMjc1LCAwLjMwMTUzNiwgMC41OTgyOTgsIDAuODk0OTIxLCAxLjU4ODg2LCAxLjk4NzU0IiwgXAotICAgICAgICAgICIwLjExNTgzLCAwLjEzMzcyNywgMC4zMDM3NTEsIDAuNTk4MzM3LCAwLjg5NTc0LCAxLjU4OTM3LCAxLjk4MzI4IiwgXAotICAgICAgICAgICIwLjEyNDE1OSwgMC4xNDE0OTIsIDAuMzA3NDUxLCAwLjU5ODQ5MywgMC44OTUxMzksIDEuNTg4NzIsIDEuOTgzMzIiLCBcCi0gICAgICAgICAgIjAuMTM4OTkzLCAwLjE1NTQ4LCAwLjMxNjM0OCwgMC42MDExMiwgMC44OTcxNSwgMS41ODc1LCAxLjk4NDMxIiwgXAotICAgICAgICAgICIwLjE1MjgxNywgMC4xNjg5OTMsIDAuMzI0OTY3LCAwLjYwNTYyNSwgMC44OTc4MjMsIDEuNTg4MTcsIDEuOTg0MzciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDEwMDIsIDAuMDAxMDAzLCAwLjAwMTAwNSwgMC4wMDEwMDYsIDAuMDAxMDA2LCAwLjAwMTAwNiwgMC4wMDEwMDciLCBcCi0gICAgICAgICAgIjAuMDAwOTk3LCAwLjAwMDk5OCwgMC4wMDEwMDMsIDAuMDAxMDA1LCAwLjAwMTAwNiwgMC4wMDEwMDYsIDAuMDAxMDA1IiwgXAotICAgICAgICAgICIwLjAwMTAxNCwgMC4wMDEwMTIsIDAuMDAxMDA5LCAwLjAwMTAwOCwgMC4wMDEwMDcsIDAuMDAxMDA3LCAwLjAwMTAwNyIsIFwKLSAgICAgICAgICAiMC4wMDEwNTEsIDAuMDAxMDQ1LCAwLjAwMTAyNCwgMC4wMDEwMTYsIDAuMDAxMDEzLCAwLjAwMTAxLCAwLjAwMTAwOSIsIFwKLSAgICAgICAgICAiMC4wMDExMDIsIDAuMDAxMDksIDAuMDAxMDQ2LCAwLjAwMTAyNiwgMC4wMDEwMjIsIDAuMDAxMDE1LCAwLjAwMTAxMyIsIFwKLSAgICAgICAgICAiMC4wMDEyMDgsIDAuMDAxMTgzLCAwLjAwMTA5NCwgMC4wMDEwNTcsIDAuMDAxMDQyLCAwLjAwMTAyOCwgMC4wMDEwMjMiLCBcCi0gICAgICAgICAgIjAuMDAxMzE4LCAwLjAwMTI3OCwgMC4wMDExNDUsIDAuMDAxMDg3LCAwLjAwMTA2NSwgMC4wMDEwNDEsIDAuMDAxMDM1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwMDE2LCAwLjAwMDAxNSwgMC4wMDAwMTIsIDAuMDAwMDExLCAwLjAwMDAxMSwgMC4wMDAwMTEsIDAuMDAwMDExIiwgXAotICAgICAgICAgICIwLjAwMDAyMSwgMC4wMDAwMiwgMC4wMDAwMTUsIDAuMDAwMDEzLCAwLjAwMDAxMiwgMC4wMDAwMTEsIDAuMDAwMDExIiwgXAotICAgICAgICAgICIwLjAwMDAwNywgMC4wMDAwMDgsIDAuMDAwMDA5LCAwLjAwMDAxLCAwLjAwMDAxMSwgMC4wMDAwMTEsIDAuMDAwMDEiLCBcCi0gICAgICAgICAgIjAuMDAwMDMxLCAwLjAwMDAyNCwgMC4wMDAwMDUsIDAuMDAwMDAyLCAwLjAwMDAwNSwgMC4wMDAwMDcsIDAuMDAwMDA4IiwgXAotICAgICAgICAgICIwLjAwMDA4NCwgMC4wMDAwNzEsIDAuMDAwMDI2LCAwLjAwMDAxMSwgMC4wMDAwMDQsIDAuMDAwMDAzLCAwLjAwMDAwNCIsIFwKLSAgICAgICAgICAiMC4wMDAxOTUsIDAuMDAwMTY4LCAwLjAwMDA3NywgMC4wMDAwMzgsIDAuMDAwMDI1LCAwLjAwMDAxLCAwLjAwMDAwNiIsIFwKLSAgICAgICAgICAiMC4wMDAzMTMsIDAuMDAwMjcyLCAwLjAwMDEzLCAwLjAwMDA3LCAwLjAwMDA0NywgMC4wMDAwMjQsIDAuMDAwMDE3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBNWEkyWDggKgotICogLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChNWEkyWDgpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMS4yNTYxOTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjgwNzgzOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDY3OTUzODsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2ODA3ODM7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjgsIDAuMDAwMjgzLCAwLjAwMDI4NSwgMC4wMDAyODUsIDAuMDAwMjg2LCAwLjAwMDI4NywgMC4wMDAyODciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAzMTUsIDAuMDAwMzA1LCAwLjAwMDMwMiwgMC4wMDAzMDIsIDAuMDAwMywgMC4wMDAzLCAwLjAwMDI5OSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjUzNjA1OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDY1MjMxOTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2NTM2MDU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjg3LCAwLjAwMDI4OSwgMC4wMDAyOSwgMC4wMDAyOSwgMC4wMDAyOTEsIDAuMDAwMjkxLCAwLjAwMDI5MSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDMxMywgMC4wMDAzMDMsIDAuMDAwMywgMC4wMDAzLCAwLjAwMDI5OSwgMC4wMDAyOTgsIDAuMDAwMjk4Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxMzY0ODsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDEzNjQ4OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTM2NDU5OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDIwNywgMC4wMDAyMjgsIDAuMDAwMzA2LCAwLjAwMDQxOSwgMC4wMDA1NTIsIDAuMDAwODE5LCAwLjAwMTAyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyNDU0LCAwLjAwMjQ3NywgMC4wMDI1NDksIDAuMDAyNjU2LCAwLjAwMjc4MiwgMC4wMDMwMDMsIDAuMDAzMTk1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDIuNjU1MDc7Ci0gICAgZnVuY3Rpb24gOiAiKCEoKFMwIEIpICsgKCFTMCBBKSkpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2NzIzMywgMC4wOTY4NjUsIDAuMTI0NDk5LCAwLjE0NDE2OSwgMC4xNzU2MSwgMC4yMDMxMjMsIDAuMjQyMzg1IiwgXAotICAgICAgICAgICIwLjA3MzEyNCwgMC4xMDI3MzcsIDAuMTMwMzY3LCAwLjE1MDAzNSwgMC4xODE0NzYsIDAuMjA4OTkzLCAwLjI0ODI5IiwgXAotICAgICAgICAgICIwLjA3OTg5OSwgMC4xMDk0ODEsIDAuMTM3MTMzLCAwLjE1Njc4NCwgMC4xODgyNDcsIDAuMjE1NzY0LCAwLjI1NTA1OCIsIFwKLSAgICAgICAgICAiMC4wODYwMjEsIDAuMTE1NTk2LCAwLjE0MzE2MiwgMC4xNjI4MzMsIDAuMTk0MjcsIDAuMjIxNzgzLCAwLjI2MTA3MSIsIFwKLSAgICAgICAgICAiMC4wOTEzMDIsIDAuMTIwODk4LCAwLjE0ODQ2MiwgMC4xNjgxMjMsIDAuMTk5NTYzLCAwLjIyNzA2OSwgMC4yNjY0MDUiLCBcCi0gICAgICAgICAgIjAuMDk4MzYxLCAwLjEyODA2OCwgMC4xNTU2MSwgMC4xNzUyNTQsIDAuMjA2Njk5LCAwLjIzNDIwNCwgMC4yNzM0OTciLCBcCi0gICAgICAgICAgIjAuMTAzNjc4LCAwLjEzMzQyNSwgMC4xNjA5ODQsIDAuMTgwNjMzLCAwLjIxMjA2MSwgMC4yMzk1NjYsIDAuMjc4ODciKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTgzMjIsIDAuMDczMDcsIDAuMTMwMDI2LCAwLjE3MTE3NiwgMC4yMzcyMDcsIDAuMjk1MTE4LCAwLjM3ODIzNCIsIFwKLSAgICAgICAgICAiMC4wMTgzNjcsIDAuMDczMDY4LCAwLjEzMDAyNCwgMC4xNzExNzQsIDAuMjM3MjA0LCAwLjI5NTA4LCAwLjM3ODY0MiIsIFwKLSAgICAgICAgICAiMC4wMTg0MDUsIDAuMDczMDI4LCAwLjEyOTk5OSwgMC4xNzExMTEsIDAuMjM3MTk4LCAwLjI5NTA2NywgMC4zNzg2NyIsIFwKLSAgICAgICAgICAiMC4wMTg1MzcsIDAuMDczMTExLCAwLjEzMDExNywgMC4xNzEwNDgsIDAuMjM3NTM1LCAwLjI5NTYyNSwgMC4zNzg1NzQiLCBcCi0gICAgICAgICAgIjAuMDE4NjYsIDAuMDczMTI5LCAwLjEzMDEzOSwgMC4xNzEyODQsIDAuMjM3Mzc1LCAwLjI5NTU4NiwgMC4zNzgxMjEiLCBcCi0gICAgICAgICAgIjAuMDE4ODMzLCAwLjA3MzIwNCwgMC4xMzAyMDUsIDAuMTcxMzE1LCAwLjIzNzU0LCAwLjI5NTQxMSwgMC4zNzg1MzQiLCBcCi0gICAgICAgICAgIjAuMDE5MDI5LCAwLjA3MzQxNCwgMC4xMzAxMDUsIDAuMTcxMjI5LCAwLjIzNzQzMSwgMC4yOTUzMzYsIDAuMzc4MzMiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjQyNTksIDAuMDk0NTA1LCAwLjEyMjg3LCAwLjE0MzA4OCwgMC4xNzU0MDEsIDAuMjAzNjQ3LCAwLjI0Mzk5MyIsIFwKLSAgICAgICAgICAiMC4wNzA0MywgMC4xMDA2NzUsIDAuMTI5MDUsIDAuMTQ5MjU0LCAwLjE4MTU1NSwgMC4yMDk4MTgsIDAuMjUwMTYzIiwgXAotICAgICAgICAgICIwLjA3Nzg2LCAwLjEwODA3OCwgMC4xMzY0MjUsIDAuMTU2NjQyLCAwLjE4ODk3OSwgMC4yMTcyMzQsIDAuMjU3NTk1IiwgXAotICAgICAgICAgICIwLjA4NDU1MiwgMC4xMTQ3LCAwLjE0MzAzNSwgMC4xNjMyMywgMC4xOTU1MjksIDAuMjIzNzg2LCAwLjI2NDEzOSIsIFwKLSAgICAgICAgICAiMC4wOTAzMjksIDAuMTIwNTIsIDAuMTQ4ODUyLCAwLjE2OTA0NywgMC4yMDEzNDMsIDAuMjI5NTkzLCAwLjI2OTk0NiIsIFwKLSAgICAgICAgICAiMC4wOTgwOTEsIDAuMTI4MzcyLCAwLjE1NjY2MywgMC4xNzY4NTUsIDAuMjA5MTUyLCAwLjIzNzM5NiwgMC4yNzc3NDciLCBcCi0gICAgICAgICAgIjAuMTA0MDY5LCAwLjEzNDM5MSwgMC4xNjI3MjIsIDAuMTgyOTI3LCAwLjIxNTIwOSwgMC4yNDM0NjUsIDAuMjgzODMxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE3NzYxLCAwLjA3MzU3MiwgMC4xMzEzNjcsIDAuMTczMjQ0LCAwLjIzOTkzNSwgMC4yOTkxNDQsIDAuMzgzMDM3IiwgXAotICAgICAgICAgICIwLjAxNzc1MSwgMC4wNzM1NjgsIDAuMTMxMzM2LCAwLjE3Mjk4NCwgMC4yMzk5MDgsIDAuMjk5MTE5LCAwLjM4MzA0NSIsIFwKLSAgICAgICAgICAiMC4wMTc4MTYsIDAuMDczNTczLCAwLjEzMTQzNCwgMC4xNzI5OTgsIDAuMjQwMzM3LCAwLjI5OTExNSwgMC4zODI2NDIiLCBcCi0gICAgICAgICAgIjAuMDE3ODY4LCAwLjA3MzYzOSwgMC4xMzE0MTQsIDAuMTczMzAzLCAwLjIzOTk5MSwgMC4yOTkxNiwgMC4zODI2OCIsIFwKLSAgICAgICAgICAiMC4wMTgwMzUsIDAuMDczNjU1LCAwLjEzMTQ0NywgMC4xNzMwMTMsIDAuMjQwMzE0LCAwLjI5OTEwMSwgMC4zODMwMDkiLCBcCi0gICAgICAgICAgIjAuMDE4MjI4LCAwLjA3MzY5NSwgMC4xMzE1NDMsIDAuMTczMjkyLCAwLjI0MDAyOSwgMC4yOTg3OTEsIDAuMzgzMDE3IiwgXAotICAgICAgICAgICIwLjAxODM5NSwgMC4wNzM5MDcsIDAuMTMxNDAyLCAwLjE3MzE0LCAwLjI0MDA5NywgMC4yOTg3NTMsIDAuMzgyNzE2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY4Mjc0LCAwLjA5Nzg3NywgMC4xMjU0MTUsIDAuMTQ1MDc4LCAwLjE3NjUxNCwgMC4yMDQwMjksIDAuMjQzMzEiLCBcCi0gICAgICAgICAgIjAuMDc0MTQyLCAwLjEwMzc1NywgMC4xMzEzNzQsIDAuMTUxMDQyLCAwLjE4MjQ4MywgMC4yMDk5OTYsIDAuMjQ5MjUxIiwgXAotICAgICAgICAgICIwLjA4MDg3LCAwLjExMDQ1NiwgMC4xMzgwNTcsIDAuMTU3NzAyLCAwLjE4OTEzMywgMC4yMTY2ODQsIDAuMjU1OTY0IiwgXAotICAgICAgICAgICIwLjA4Njk4MSwgMC4xMTY1NiwgMC4xNDQxMywgMC4xNjM4MDUsIDAuMTk1MjM0LCAwLjIyMjczNywgMC4yNjIwNDkiLCBcCi0gICAgICAgICAgIjAuMDkyMjQ2LCAwLjEyMTg1NywgMC4xNDk0MiwgMC4xNjkwODcsIDAuMjAwNTU1LCAwLjIyODA2MSwgMC4yNjczNDgiLCBcCi0gICAgICAgICAgIjAuMDk5MzE2LCAwLjEyOTA0MywgMC4xNTY2MDcsIDAuMTc2MjI5LCAwLjIwNzY2NCwgMC4yMzUxNjQsIDAuMjc0NDYiLCBcCi0gICAgICAgICAgIjAuMTA0NzIyLCAwLjEzNDQzOSwgMC4xNjE5ODMsIDAuMTgxNjI1LCAwLjIxMzA1OCwgMC4yNDA1NjQsIDAuMjc5ODcxIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE4MzYxLCAwLjA3MzA5LCAwLjEzMDEwMSwgMC4xNzExNDksIDAuMjM3NTQzLCAwLjI5NTYyLCAwLjM3ODU3NyIsIFwKLSAgICAgICAgICAiMC4wMTg0MDMsIDAuMDczMDc5LCAwLjEzMDAyOSwgMC4xNzExNzcsIDAuMjM3MjA4LCAwLjI5NTEyNiwgMC4zNzc4MyIsIFwKLSAgICAgICAgICAiMC4wMTg0MjQsIDAuMDczMDAyLCAwLjEzMDA0NCwgMC4xNzEyMTEsIDAuMjM3MjQxLCAwLjI5NTYzMywgMC4zNzg1ODciLCBcCi0gICAgICAgICAgIjAuMDE4NTI0LCAwLjA3MzEyMSwgMC4xMzAxMSwgMC4xNzExODksIDAuMjM3MzYsIDAuMjk1NTI1LCAwLjM3NzkzMiIsIFwKLSAgICAgICAgICAiMC4wMTg2NzEsIDAuMDczMTYyLCAwLjEzMDEyOSwgMC4xNzEyODYsIDAuMjM3NTg5LCAwLjI5NTYyNCwgMC4zNzg2NDQiLCBcCi0gICAgICAgICAgIjAuMDE4ODcxLCAwLjA3MzIzMywgMC4xMzAxNDIsIDAuMTcxMzA0LCAwLjIzNzU0MSwgMC4yOTU1NjQsIDAuMzc4NTUzIiwgXAotICAgICAgICAgICIwLjAxOTA2NiwgMC4wNzMzMzksIDAuMTMwMTIsIDAuMTcxMTk4LCAwLjIzNzMxMiwgMC4yOTUzMzksIDAuMzc4MzI5Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY0NTc4LCAwLjA5NDgwMywgMC4xMjMxNzcsIDAuMTQzMzEzLCAwLjE3NTYwNywgMC4yMDM4NzMsIDAuMjQ0MTk1IiwgXAotICAgICAgICAgICIwLjA3MDg2NCwgMC4xMDExMTIsIDAuMTI5NDYzLCAwLjE0OTY2MywgMC4xODE5ODIsIDAuMjEwMjQyLCAwLjI1MDU4NyIsIFwKLSAgICAgICAgICAiMC4wNzgzOCwgMC4xMDg1ODIsIDAuMTM2OTM3LCAwLjE1NzEzOSwgMC4xODk0NDgsIDAuMjE3Njk2LCAwLjI1ODA1NSIsIFwKLSAgICAgICAgICAiMC4wODUxMzIsIDAuMTE1MjksIDAuMTQzNjI3LCAwLjE2MzgzMiwgMC4xOTYxMjIsIDAuMjI0MzcxLCAwLjI2NDc0IiwgXAotICAgICAgICAgICIwLjA5MDk2NywgMC4xMjExNjEsIDAuMTQ5NDkxLCAwLjE2OTY5LCAwLjIwMTk4NywgMC4yMzAyMzUsIDAuMjcwNTkyIiwgXAotICAgICAgICAgICIwLjA5ODc5NSwgMC4xMjkwOCwgMC4xNTc0NjEsIDAuMTc3Njg5LCAwLjIxMDAwNCwgMC4yMzgyNTMsIDAuMjc4NDI3IiwgXAotICAgICAgICAgICIwLjEwNDgyNiwgMC4xMzUxODEsIDAuMTYzNDY4LCAwLjE4MzY2MiwgMC4yMTU5NDQsIDAuMjQ0MTk0LCAwLjI4NDU2MyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxNzc5NiwgMC4wNzM1NjgsIDAuMTMxMjg1LCAwLjE3MzAxMSwgMC4yMzk5MzQsIDAuMjk5MTg1LCAwLjM4MjY0MSIsIFwKLSAgICAgICAgICAiMC4wMTc3NjQsIDAuMDczNTcyLCAwLjEzMTM1MSwgMC4xNzI5OTYsIDAuMjM5Nzk5LCAwLjI5OTEyNSwgMC4zODMwNjIiLCBcCi0gICAgICAgICAgIjAuMDE3Nzk3LCAwLjA3MzU5MywgMC4xMzE0MjEsIDAuMTczMzAzLCAwLjI0MDM2MywgMC4yOTkxMDQsIDAuMzgyNzAzIiwgXAotICAgICAgICAgICIwLjAxNzg0MywgMC4wNzM2MzMsIDAuMTMxNDA1LCAwLjE3MzI2OCwgMC4yNDAzMjksIDAuMjk5MDc2LCAwLjM4MzE4NSIsIFwKLSAgICAgICAgICAiMC4wMTc5OTIsIDAuMDczNjY0LCAwLjEzMTQ2NiwgMC4xNzMyNjUsIDAuMjQwMzUxLCAwLjI5OTA0NCwgMC4zODMwMTkiLCBcCi0gICAgICAgICAgIjAuMDE4MTQyLCAwLjA3MzY4NSwgMC4xMzE1MzEsIDAuMTczMjgxLCAwLjI0MDA5OCwgMC4yOTg3NTIsIDAuMzgzMDEyIiwgXAotICAgICAgICAgICIwLjAxODQwOCwgMC4wNzM4MTgsIDAuMTMxNDMyLCAwLjE3MzEyNywgMC4yNDAzMDksIDAuMjk4NzU4LCAwLjM4MjcxMSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzQzNDQsIDAuMTAzOTY1LCAwLjEzMTUxMSwgMC4xNTExNzMsIDAuMTgyNjEyLCAwLjIxMDEzNiwgMC4yNDkzNzQiLCBcCi0gICAgICAgICAgIjAuMDgxODEzLCAwLjExMTQyNywgMC4xMzg5ODUsIDAuMTU4NjUxLCAwLjE5MDA4NSwgMC4yMTc1NTksIDAuMjU2ODUxIiwgXAotICAgICAgICAgICIwLjA4ODA4MywgMC4xMTc3MDYsIDAuMTQ1MjQ4LCAwLjE2NDkxNywgMC4xOTYzNDksIDAuMjIzODU1LCAwLjI2MzE0MiIsIFwKLSAgICAgICAgICAiMC4wOTI1MTUsIDAuMTIyMTIsIDAuMTQ5Njc2LCAwLjE2OTMzOSwgMC4yMDA3OTIsIDAuMjI4MzA3LCAwLjI2NzU3NyIsIFwKLSAgICAgICAgICAiMC4wOTYyMTYsIDAuMTI1ODE4LCAwLjE1MzM2OCwgMC4xNzMwMjQsIDAuMjA0NDczLCAwLjIzMTk3NywgMC4yNzEyNjEiLCBcCi0gICAgICAgICAgIjAuMTAxMTczLCAwLjEzMDc3NiwgMC4xNTgzOTQsIDAuMTc4MDk5LCAwLjIwOTUzNywgMC4yMzY5OTYsIDAuMjc2MzU5IiwgXAotICAgICAgICAgICIwLjEwNDkzNywgMC4xMzQ1NDMsIDAuMTYyMDc4LCAwLjE4MTg4NywgMC4yMTMzMjYsIDAuMjQwNjczLCAwLjI4MDEzMiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxODM1OSwgMC4wNzMwOSwgMC4xMjk5NTIsIDAuMTcxMTQ2LCAwLjIzNzMwNiwgMC4yOTUxNjcsIDAuMzc4Mjk4IiwgXAotICAgICAgICAgICIwLjAxODM4NSwgMC4wNzMwMTgsIDAuMTMwMTA1LCAwLjE3MTI1NCwgMC4yMzcyNDUsIDAuMjk0OTgsIDAuMzc3ODY0IiwgXAotICAgICAgICAgICIwLjAxODM1NiwgMC4wNzMwMjcsIDAuMTI5OTU5LCAwLjE3MTI2OCwgMC4yMzc1NDIsIDAuMjk1NjQxLCAwLjM3ODU2NyIsIFwKLSAgICAgICAgICAiMC4wMTgzMDQsIDAuMDczMDgxLCAwLjEzMDEwMSwgMC4xNzExNjksIDAuMjM3Mzg2LCAwLjI5NTE0MSwgMC4zNzg1MjIiLCBcCi0gICAgICAgICAgIjAuMDE4Mzc0LCAwLjA3MzA3NSwgMC4xMzAxMTIsIDAuMTcxMTcyLCAwLjIzNzU1OCwgMC4yOTU2MDEsIDAuMzc4NTY2IiwgXAotICAgICAgICAgICIwLjAxODQwMSwgMC4wNzI5OTksIDAuMTMwMDc3LCAwLjE3MTI0NSwgMC4yMzczNTYsIDAuMjk1MzI4LCAwLjM3ODI0MSIsIFwKLSAgICAgICAgICAiMC4wMTgzNDksIDAuMDczMDUxLCAwLjEzMDAyMiwgMC4xNzEwOTUsIDAuMjM3MywgMC4yOTUxMTMsIDAuMzc4MjUzIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDcyNjI5LCAwLjEwMjg2NCwgMC4xMzExNjYsIDAuMTUxMzYyLCAwLjE4MzY2MiwgMC4yMTE5MDYsIDAuMjUyMjY1IiwgXAotICAgICAgICAgICIwLjA3OTk3MSwgMC4xMTAxOTEsIDAuMTM4NDkxLCAwLjE1ODY4OSwgMC4xOTA5ODUsIDAuMjE5MjMyLCAwLjI1OTU5MyIsIFwKLSAgICAgICAgICAiMC4wODYxODUsIDAuMTE2NDA4LCAwLjE0NDc5NCwgMC4xNjUwMDUsIDAuMTk3MjEyLCAwLjIyNTQ4MywgMC4yNjU4MTkiLCBcCi0gICAgICAgICAgIjAuMDkwMzg1LCAwLjEyMDU3MSwgMC4xNDg5MDMsIDAuMTY5MSwgMC4yMDEzOTcsIDAuMjI5NjQ1LCAwLjI3MDAwOSIsIFwKLSAgICAgICAgICAiMC4wOTM3NzUsIDAuMTIzOTkyLCAwLjE1MjMsIDAuMTcyNDk5LCAwLjIwNDc5MywgMC4yMzMwNDQsIDAuMjczMzgyIiwgXAotICAgICAgICAgICIwLjA5ODMyLCAwLjEyODU0LCAwLjE1NjkyMSwgMC4xNzcwNDgsIDAuMjA5MzM2LCAwLjIzNzU4MSwgMC4yNzc5MzYiLCBcCi0gICAgICAgICAgIjAuMTAxNzgzLCAwLjEzMjAwNSwgMC4xNjAzMDEsIDAuMTgwNTA2LCAwLjIxMjc4MiwgMC4yNDEwMjYsIDAuMjgxMzc3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE3NzU1LCAwLjA3MzU3NywgMC4xMzE0MTMsIDAuMTczMTI0LCAwLjI0MDM1MiwgMC4yOTkxMTEsIDAuMzgyNjc4IiwgXAotICAgICAgICAgICIwLjAxNzc0OCwgMC4wNzM1NzgsIDAuMTMxNDEyLCAwLjE3MzI4OCwgMC4yNDAzNDcsIDAuMjk5MDkyLCAwLjM4Mjc1MiIsIFwKLSAgICAgICAgICAiMC4wMTc3OTIsIDAuMDczNTczLCAwLjEzMTQxOSwgMC4xNzMwMTksIDAuMjQwMTE0LCAwLjI5ODU4NiwgMC4zODI3MTQiLCBcCi0gICAgICAgICAgIjAuMDE3NzE3LCAwLjA3MzU3NCwgMC4xMzE0MDIsIDAuMTczMDAyLCAwLjI0MDM0LCAwLjI5OTA4MSwgMC4zODI2ODMiLCBcCi0gICAgICAgICAgIjAuMDE3NzUsIDAuMDczNTc0LCAwLjEzMTQwOSwgMC4xNzMxODcsIDAuMjQwMzQ3LCAwLjI5ODgwOSwgMC4zODMwNTciLCBcCi0gICAgICAgICAgIjAuMDE3NzU2LCAwLjA3MzUxLCAwLjEzMTM5NiwgMC4xNzMwODYsIDAuMjQwMDE2LCAwLjI5ODc5NSwgMC4zODI0ODgiLCBcCi0gICAgICAgICAgIjAuMDE3NzU4LCAwLjA3MzU5NSwgMC4xMzEyNzksIDAuMTcyOTY5LCAwLjIzOTgyNCwgMC4yOTg2NzcsIDAuMzgyNTQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUzAiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDYyNzUxLCAwLjA5MjMxOCwgMC4xMTk5MDMsIDAuMTM5NTQ5LCAwLjE3MDk3OSwgMC4xOTg1MjcsIDAuMjM3ODA4IiwgXAotICAgICAgICAgICIwLjA3MDA1MywgMC4wOTk2NjYsIDAuMTI3MjEzLCAwLjE0Njg4MSwgMC4xNzgzMTUsIDAuMjA1ODIyLCAwLjI0NTA5NCIsIFwKLSAgICAgICAgICAiMC4wNzk0NjQsIDAuMTA5MDc5LCAwLjEzNjYzNCwgMC4xNTYyOTUsIDAuMTg3NzQ1LCAwLjIxNTI1NSwgMC4yNTQ1MyIsIFwKLSAgICAgICAgICAiMC4wODc3NjYsIDAuMTE3MzQxLCAwLjE0NDkxOCwgMC4xNjQ1ODYsIDAuMTk2MDIzLCAwLjIyMzUzNywgMC4yNjI4MjEiLCBcCi0gICAgICAgICAgIjAuMDk0NjU3LCAwLjEyNDMzLCAwLjE1MTg5NCwgMC4xNzE1NTMsIDAuMjAyOTk1LCAwLjIzMDUxNiwgMC4yNjk4MDciLCBcCi0gICAgICAgICAgIjAuMTAzOTMxLCAwLjEzMzU2NiwgMC4xNjExMDQsIDAuMTgwNzYxLCAwLjIxMjE5OSwgMC4yMzk2OTgsIDAuMjc5MDE3IiwgXAotICAgICAgICAgICIwLjExMDc4OSwgMC4xNDA0NTksIDAuMTY4MDM0LCAwLjE4NzcwOSwgMC4yMTkxMzUsIDAuMjQ2NjUyLCAwLjI4NTk1NiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxODQwMSwgMC4wNzMwMjMsIDAuMTMwMSwgMC4xNzEyMDQsIDAuMjM3MjA0LCAwLjI5NTYzNSwgMC4zNzg1ODUiLCBcCi0gICAgICAgICAgIjAuMDE4MzQyLCAwLjA3MzA3NywgMC4xMjk5NDYsIDAuMTcxMjUsIDAuMjM3MzU4LCAwLjI5NTA4MSwgMC4zNzg0NzEiLCBcCi0gICAgICAgICAgIjAuMDE4MzUsIDAuMDczMDg0LCAwLjEzMDEwNywgMC4xNzEyNDYsIDAuMjM3MjY5LCAwLjI5NTYwOCwgMC4zNzgxNTMiLCBcCi0gICAgICAgICAgIjAuMDE4NTQzLCAwLjA3MzEyOCwgMC4xMzAxMTUsIDAuMTcxMjc3LCAwLjIzNzIxNiwgMC4yOTU2MTEsIDAuMzc4NjAyIiwgXAotICAgICAgICAgICIwLjAxODgzMywgMC4wNzMxOTYsIDAuMTMwMDc1LCAwLjE3MTMyOSwgMC4yMzczMzUsIDAuMjk1NjA4LCAwLjM3ODcxMSIsIFwKLSAgICAgICAgICAiMC4wMTg4ODYsIDAuMDczMjc3LCAwLjEzMDE3LCAwLjE3MTMxOCwgMC4yMzczNDYsIDAuMjk1MTY3LCAwLjM3ODcxNyIsIFwKLSAgICAgICAgICAiMC4wMTkxNDEsIDAuMDczNDgsIDAuMTMwMTM3LCAwLjE3MTI5NywgMC4yMzc0MTUsIDAuMjk1NDI5LCAwLjM3ODU2NSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2MDA3NCwgMC4wOTAzMTUsIDAuMTE4NjE3LCAwLjEzODgxNCwgMC4xNzExMTMsIDAuMTk5MzU5LCAwLjIzOTcyNSIsIFwKLSAgICAgICAgICAiMC4wNjc1NDIsIDAuMDk3NzczLCAwLjEyNjA3MiwgMC4xNDYyNzEsIDAuMTc4NTY5LCAwLjIwNjgxNiwgMC4yNDcxNzUiLCBcCi0gICAgICAgICAgIjAuMDc3MDA5LCAwLjEwNzIzNCwgMC4xMzU1OTEsIDAuMTU1ODA0LCAwLjE4ODEwOSwgMC4yMTYzODIsIDAuMjU2NzUyIiwgXAotICAgICAgICAgICIwLjA4NTIyLCAwLjExNTM4MSwgMC4xNDM3MjMsIDAuMTYzOTI1LCAwLjE5NjIyMiwgMC4yMjQ0NzEsIDAuMjY0ODI5IiwgXAotICAgICAgICAgICIwLjA5MjEwNywgMC4xMjIzNzUsIDAuMTUwNzExLCAwLjE3MDkwOCwgMC4yMDMyMSwgMC4yMzE0NiwgMC4yNzE4MTIiLCBcCi0gICAgICAgICAgIjAuMTAxMTg0LCAwLjEzMTQ4NSwgMC4xNTk3NjUsIDAuMTc5OTU4LCAwLjIxMjI1LCAwLjI0MDUxNCwgMC4yODA5NDEiLCBcCi0gICAgICAgICAgIjAuMTA3OTMsIDAuMTM4Mjg5LCAwLjE2NjY1OSwgMC4xODY4ODYsIDAuMjE5MjEyLCAwLjI0NzUwMywgMC4yODc4MjQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTc3NTgsIDAuMDczNTgsIDAuMTMxNDExLCAwLjE3MzE0MywgMC4yNDAzNTUsIDAuMjk5MDk2LCAwLjM4MjY3MyIsIFwKLSAgICAgICAgICAiMC4wMTc3NzksIDAuMDczNTgxLCAwLjEzMTQxMiwgMC4xNzMyODYsIDAuMjQwMzU2LCAwLjI5OTA5NiwgMC4zODI3MjkiLCBcCi0gICAgICAgICAgIjAuMDE3NzYxLCAwLjA3MzU5NCwgMC4xMzE0MTEsIDAuMTczMDU4LCAwLjI0MDI3LCAwLjI5OTE1NiwgMC4zODI0NDIiLCBcCi0gICAgICAgICAgIjAuMDE3OTgyLCAwLjA3MzYwOSwgMC4xMzE0MjYsIDAuMTczMjcsIDAuMjQwMzYsIDAuMjk5MDg5LCAwLjM4MjcxOCIsIFwKLSAgICAgICAgICAiMC4wMTgxOTUsIDAuMDczNzA4LCAwLjEzMTQ2MiwgMC4xNzMzMywgMC4yNDAzNywgMC4yOTkxMDYsIDAuMzgzMDIyIiwgXAotICAgICAgICAgICIwLjAxODQ5NywgMC4wNzM3NTUsIDAuMTMxNTYsIDAuMTczMTM2LCAwLjI0MDMyNCwgMC4yOTg0ODQsIDAuMzgyMzE4IiwgXAotICAgICAgICAgICIwLjAxODU5MSwgMC4wNzQwMjUsIDAuMTMxNDM1LCAwLjE3MzE1MywgMC4yNDAxMDEsIDAuMjk5MDI5LCAwLjM4MzAyMyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE0Njg1LCAwLjAxNDk3LCAwLjAxNTA1OCwgMC4wMTUwNzMsIDAuMDE1MTI1LCAwLjAxNTE0MywgMC4wMTUxMjIiLCBcCi0gICAgICAgICAgIjAuMDE0Njk1LCAwLjAxNDkzNywgMC4wMTUwMTQsIDAuMDE1MDc3LCAwLjAxNTA5MiwgMC4wMTUwNzYsIDAuMDE1MTQ2IiwgXAotICAgICAgICAgICIwLjAxNDY5NywgMC4wMTQ5NDksIDAuMDE1MDQ1LCAwLjAxNTA1OCwgMC4wMTUwODQsIDAuMDE1MDk4LCAwLjAxNTE1IiwgXAotICAgICAgICAgICIwLjAxNDc4MiwgMC4wMTUwMzksIDAuMDE1MTEsIDAuMDE1MTM5LCAwLjAxNTE2NiwgMC4wMTUxODEsIDAuMDE1MjA0IiwgXAotICAgICAgICAgICIwLjAxNDkyNSwgMC4wMTUxMjUsIDAuMDE1MjE1LCAwLjAxNTIzMSwgMC4wMTUyNjQsIDAuMDE1Mjc0LCAwLjAxNTI4OCIsIFwKLSAgICAgICAgICAiMC4wMTUwOTYsIDAuMDE1MjczLCAwLjAxNTMyNSwgMC4wMTUzNTMsIDAuMDE1Mzc2LCAwLjAxNTM5NSwgMC4wMTU0MSIsIFwKLSAgICAgICAgICAiMC4wMTUyNTgsIDAuMDE1NDMsIDAuMDE1NTA1LCAwLjAxNTUxMywgMC4wMTU1NTUsIDAuMDE1NTcxLCAwLjAxNTU4MiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEzMTc1LCAwLjAxMzU3NywgMC4wMTM2OTYsIDAuMDEzNzM5LCAwLjAxMzc3OCwgMC4wMTM4LCAwLjAxMzgxOSIsIFwKLSAgICAgICAgICAiMC4wMTMxMywgMC4wMTM1MzcsIDAuMDEzNjU3LCAwLjAxMzY5OCwgMC4wMTM3MzgsIDAuMDEzNzU4LCAwLjAxMzc3NyIsIFwKLSAgICAgICAgICAiMC4wMTMxMzEsIDAuMDEzNTQ2LCAwLjAxMzY3MiwgMC4wMTM3MTYsIDAuMDEzNzU4LCAwLjAxMzc4MSwgMC4wMTM4MDEiLCBcCi0gICAgICAgICAgIjAuMDEzMjI0LCAwLjAxMzYyMiwgMC4wMTM3NSwgMC4wMTM3OTUsIDAuMDEzODM4LCAwLjAxMzg2LCAwLjAxMzg4MSIsIFwKLSAgICAgICAgICAiMC4wMTMzODQsIDAuMDEzNzI1LCAwLjAxMzg0OCwgMC4wMTM4ODQsIDAuMDEzOTI2LCAwLjAxMzk0OSwgMC4wMTM5NjkiLCBcCi0gICAgICAgICAgIjAuMDEzNTM0LCAwLjAxMzgzNywgMC4wMTM5NTksIDAuMDE0MDA0LCAwLjAxNDA0NywgMC4wMTQwNjgsIDAuMDE0MDkiLCBcCi0gICAgICAgICAgIjAuMDEzNzEsIDAuMDE0MDE5LCAwLjAxNDE0NSwgMC4wMTQxOTMsIDAuMDE0MjM5LCAwLjAxNDI2LCAwLjAxNDI4NyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE1MDM0LCAwLjAxNTI0NSwgMC4wMTUzMTgsIDAuMDE1MzQ0LCAwLjAxNTM2OCwgMC4wMTUzOTQsIDAuMDE1NDEyIiwgXAotICAgICAgICAgICIwLjAxNDk3OSwgMC4wMTUyMTUsIDAuMDE1MjksIDAuMDE1MzE2LCAwLjAxNTM2NiwgMC4wMTUzMTcsIDAuMDE1MzcxIiwgXAotICAgICAgICAgICIwLjAxNDk4NCwgMC4wMTUyMzEsIDAuMDE1MzEsIDAuMDE1MzU3LCAwLjAxNTM2MywgMC4wMTU0MDIsIDAuMDE1MzkiLCBcCi0gICAgICAgICAgIjAuMDE1MDQ2LCAwLjAxNTI5MSwgMC4wMTUzNzUsIDAuMDE1NDA0LCAwLjAxNTQzNywgMC4wMTU0NDcsIDAuMDE1NDYiLCBcCi0gICAgICAgICAgIjAuMDE1MTgzLCAwLjAxNTM5MSwgMC4wMTU0NzQsIDAuMDE1NTA3LCAwLjAxNTUzMiwgMC4wMTU1NDcsIDAuMDE1NTYzIiwgXAotICAgICAgICAgICIwLjAxNTMxOSwgMC4wMTU1MTQsIDAuMDE1NTkxLCAwLjAxNTYyMiwgMC4wMTU2NDQsIDAuMDE1NjU3LCAwLjAxNTY3OSIsIFwKLSAgICAgICAgICAiMC4wMTU1MjgsIDAuMDE1NzQ1LCAwLjAxNTgyMywgMC4wMTU4NTEsIDAuMDE1ODY4LCAwLjAxNTg5MSwgMC4wMTU5MDUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMjk2NSwgMC4wMTMzNjcsIDAuMDEzNDg5LCAwLjAxMzUyOSwgMC4wMTM1NjksIDAuMDEzNTkxLCAwLjAxMzYxIiwgXAotICAgICAgICAgICIwLjAxMjkyNSwgMC4wMTMzMjgsIDAuMDEzNDQ3LCAwLjAxMzQ4OSwgMC4wMTM1MjgsIDAuMDEzNTUsIDAuMDEzNTY5IiwgXAotICAgICAgICAgICIwLjAxMjkzOSwgMC4wMTMzMzgsIDAuMDEzNDY0LCAwLjAxMzUwOSwgMC4wMTM1NTIsIDAuMDEzNTc0LCAwLjAxMzU5NSIsIFwKLSAgICAgICAgICAiMC4wMTMwMjIsIDAuMDEzNDI0LCAwLjAxMzU1LCAwLjAxMzU5NywgMC4wMTM2NCwgMC4wMTM2NjQsIDAuMDEzNjg1IiwgXAotICAgICAgICAgICIwLjAxMzE2NiwgMC4wMTM1MDMsIDAuMDEzNjIzLCAwLjAxMzY2NSwgMC4wMTM3MTMsIDAuMDEzNzMzLCAwLjAxMzc1NSIsIFwKLSAgICAgICAgICAiMC4wMTMyNjEsIDAuMDEzNjA1LCAwLjAxMzcyNywgMC4wMTM3NzcsIDAuMDEzODIzLCAwLjAxMzg0LCAwLjAxMzg3NSIsIFwKLSAgICAgICAgICAiMC4wMTM1NzcsIDAuMDEzODU2LCAwLjAxMzk3MSwgMC4wMTQwMTgsIDAuMDE0MDYyLCAwLjAxNDA4NiwgMC4wMTQxMDkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTMCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTQ0ODEsIDAuMDE0NzA1LCAwLjAxNDc3OSwgMC4wMTQ4MDUsIDAuMDE0ODE1LCAwLjAxNDg0MywgMC4wMTQ4NTQiLCBcCi0gICAgICAgICAgIjAuMDE0NDg0LCAwLjAxNDcxMywgMC4wMTQ3ODcsIDAuMDE0ODEzLCAwLjAxNDgzOCwgMC4wMTQ4NjMsIDAuMDE0ODYyIiwgXAotICAgICAgICAgICIwLjAxNDU2OSwgMC4wMTQ4MDQsIDAuMDE0ODgsIDAuMDE0OTA5LCAwLjAxNDkyNiwgMC4wMTQ5NDIsIDAuMDE0OTU1IiwgXAotICAgICAgICAgICIwLjAxNDYzMSwgMC4wMTQ4OTUsIDAuMDE0OTc4LCAwLjAxNTAwNiwgMC4wMTUwMzMsIDAuMDE1MDQ3LCAwLjAxNTA2IiwgXAotICAgICAgICAgICIwLjAxNDgyMiwgMC4wMTUwNTIsIDAuMDE1MTI0LCAwLjAxNTE1MywgMC4wMTUxNzgsIDAuMDE1MTgxLCAwLjAxNTIwNCIsIFwKLSAgICAgICAgICAiMC4wMTUwNzIsIDAuMDE1MzEsIDAuMDE1MzksIDAuMDE1NDE5LCAwLjAxNTQzMSwgMC4wMTU0NTMsIDAuMDE1NDU5IiwgXAotICAgICAgICAgICIwLjAxNTI4OSwgMC4wMTU1MTYsIDAuMDE1NTkyLCAwLjAxNTYxNCwgMC4wMTU2NDUsIDAuMDE1NjU0LCAwLjAxNTY2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTU1NzEsIDAuMDE1OTc2LCAwLjAxNjA5NiwgMC4wMTYxMzgsIDAuMDE2MTc4LCAwLjAxNjE5OSwgMC4wMTYyMTgiLCBcCi0gICAgICAgICAgIjAuMDE1NTg5LCAwLjAxNTk4NywgMC4wMTYxMDgsIDAuMDE2MTUsIDAuMDE2MTg5LCAwLjAxNjIxLCAwLjAxNjIzIiwgXAotICAgICAgICAgICIwLjAxNTY1OCwgMC4wMTYwNzUsIDAuMDE2MTk2LCAwLjAxNjIzOCwgMC4wMTYyNzYsIDAuMDE2Mjk2LCAwLjAxNjMxNiIsIFwKLSAgICAgICAgICAiMC4wMTU3ODEsIDAuMDE2MTgzLCAwLjAxNjMwNCwgMC4wMTYzNDcsIDAuMDE2Mzg2LCAwLjAxNjQwNywgMC4wMTY0MjYiLCBcCi0gICAgICAgICAgIjAuMDE1OTI1LCAwLjAxNjMxMywgMC4wMTY0MjUsIDAuMDE2NDc3LCAwLjAxNjUxNiwgMC4wMTY1MzgsIDAuMDE2NTU3IiwgXAotICAgICAgICAgICIwLjAxNjE0MywgMC4wMTY1NzYsIDAuMDE2NjkyLCAwLjAxNjczMSwgMC4wMTY3NywgMC4wMTY3OTMsIDAuMDE2ODEyIiwgXAotICAgICAgICAgICIwLjAxNjM0NywgMC4wMTY3NTIsIDAuMDE2ODc3LCAwLjAxNjkxOCwgMC4wMTY5NTUsIDAuMDE2OTc2LCAwLjAxNjk5NyIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogTVhJNFgxICoKLSAqIC0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoTVhJNFgxKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuNzc0MDkzOwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2Nzg1Mjk7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjc3NDYzOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDY3ODUyOTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA5NDQsIDAuMDAwOTE4LCAwLjAwMDkzMiwgMC4wMDA5NzYsIDAuMDAxMDM4LCAwLjAwMTE2MywgMC4wMDEyOTQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDI4MDEsIDAuMDAyNzg0LCAwLjAwMjgsIDAuMDAyODQsIDAuMDAyODk5LCAwLjAwMzAyMSwgMC4wMDMxNDUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY2NzA1OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDY2NTU2NDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2NjcwNTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyODgsIDAuMDAwMjksIDAuMDAwMjkxLCAwLjAwMDI5MSwgMC4wMDAyOTEsIDAuMDAwMjkxLCAwLjAwMDI5MiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDMxMywgMC4wMDAzMDIsIDAuMDAwMywgMC4wMDAzLCAwLjAwMDI5OSwgMC4wMDAyOTgsIDAuMDAwMjk4Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihDKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2NDIxNjI7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjQwOTE2OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDY0MjE2MjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA5ODYsIDAuMDAwOTYxLCAwLjAwMDk3OCwgMC4wMDEwMjUsIDAuMDAxMDksIDAuMDAxMjIsIDAuMDAxMzUxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyNjg5LCAwLjAwMjY3MywgMC4wMDI2ODYsIDAuMDAyNzIyLCAwLjAwMjc4LCAwLjAwMjg5NywgMC4wMDMwMjEiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEQpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYyNTcwNTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MjQ1MTk7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjI1NzA1OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDI4OSwgMC4wMDAyOSwgMC4wMDAyOTEsIDAuMDAwMjkxLCAwLjAwMDI5MiwgMC4wMDAyOTIsIDAuMDAwMjkyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzE0LCAwLjAwMDMwMywgMC4wMDAzMDEsIDAuMDAwMywgMC4wMDAyOTksIDAuMDAwMjk5LCAwLjAwMDI5OSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUzApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMjAzOTk5OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMjAzOTk5OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMjAzOTcxOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDUxMywgMC4wMDA1MSwgMC4wMDA1ODQsIDAuMDAwNjg4LCAwLjAwMDc5OCwgMC4wMDA5OTYsIDAuMDAxMTgxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA0MjU4LCAwLjAwNDI1NywgMC4wMDQzMTksIDAuMDA0NDQsIDAuMDA0NTAzLCAwLjAwNDY5LCAwLjAwNDg2MyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUzEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTQ3MzQ7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNDczNDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE0NzMyODsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyMzIsIDAuMDAwMjQ3LCAwLjAwMDMzNiwgMC4wMDA0NTIsIDAuMDAwNTg2LCAwLjAwMDgxNiwgMC4wMDEwMTgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDIxNTQsIDAuMDAyMTkxLCAwLjAwMjI3MSwgMC4wMDIzODcsIDAuMDAyNTE1LCAwLjAwMjc0MSwgMC4wMDI5NDQiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4zMzY2MzE7Ci0gICAgZnVuY3Rpb24gOiAiKCEoKFMxICgoUzAgRCkgKyAoIVMwIEMpKSkgKyAoIVMxICgoUzAgQikgKyAoIVMwIEEpKSkpKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk2MTExLCAwLjExNDkzNywgMC4yMjA1NTgsIDAuMzEzNzEzLCAwLjQzNzc3OCwgMC42ODU5NiwgMC44NDEwNzEiLCBcCi0gICAgICAgICAgIjAuMTAxODg4LCAwLjEyMDcwOCwgMC4yMjYzMywgMC4zMTk0ODUsIDAuNDQzNTU2LCAwLjY5MTczMSwgMC44NDY4NCIsIFwKLSAgICAgICAgICAiMC4xMDgwOSwgMC4xMjY5MDMsIDAuMjMyNTY3LCAwLjMyNTY5OCwgMC40NDk2MzgsIDAuNjk3OTg2LCAwLjg1MzAzNiIsIFwKLSAgICAgICAgICAiMC4xMTMxMjQsIDAuMTMxOTM0LCAwLjIzNzU5MywgMC4zMzA3MjksIDAuNDU0NzkyLCAwLjcwMjk1OSwgMC44NTgwNDEiLCBcCi0gICAgICAgICAgIjAuMTE3MjcsIDAuMTM2MTE0LCAwLjI0MTc1OSwgMC4zMzQ5MjMsIDAuNDU5MDI5LCAwLjcwNzEzMiwgMC44NjIyNDEiLCBcCi0gICAgICAgICAgIjAuMTIyOTI1LCAwLjE0MTczOCwgMC4yNDc0MjksIDAuMzQwNTE5LCAwLjQ2NDY2NywgMC43MTI4MDYsIDAuODY3ODQxIiwgXAotICAgICAgICAgICIwLjEyNzE1LCAwLjE0NTk2MiwgMC4yNTE2MDYsIDAuMzQ0NzE4LCAwLjQ2ODgxNiwgMC43MTY5OTQsIDAuODcyMDg4Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3MzgzMywgMC4xMTE5MzUsIDAuMzMxODc3LCAwLjUyODQ4NSwgMC43ODk4MDEsIDEuMzExMzksIDEuNjM3NjQiLCBcCi0gICAgICAgICAgIjAuMDczODM4LCAwLjExMTkzNSwgMC4zMzE4OCwgMC41Mjg0ODYsIDAuNzg5MDc1LCAxLjMxMTQsIDEuNjM3NjUiLCBcCi0gICAgICAgICAgIjAuMDczODQ1LCAwLjExMTg2MywgMC4zMzI2MDUsIDAuNTI4NDkzLCAwLjc4ODI4NywgMS4zMTExMywgMS42Mzc4OCIsIFwKLSAgICAgICAgICAiMC4wNzM5MTUsIDAuMTExOTY2LCAwLjMzMjYxMiwgMC41Mjg0OTIsIDAuNzg5MTUyLCAxLjMxMTYxLCAxLjYzNzg2IiwgXAotICAgICAgICAgICIwLjA3Mzg5OSwgMC4xMTE5NjksIDAuMzMyNTgsIDAuNTI3NzI0LCAwLjc4OTc4OSwgMS4zMTE0MiwgMS42Mzc3IiwgXAotICAgICAgICAgICIwLjA3Mzk3LCAwLjExMTg2NywgMC4zMzI2MjIsIDAuNTI4Mzk1LCAwLjc4OTg1LCAxLjMxMjQ4LCAxLjYzODA2IiwgXAotICAgICAgICAgICIwLjA3MzkzNiwgMC4xMTIwNywgMC4zMzIyMTUsIDAuNTI3OTE3LCAwLjc4OTYyOSwgMS4zMTIzOSwgMS42MzkxMiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTYzNjksIDAuMTE0ODU2LCAwLjIxNzYyNiwgMC4zMDgxMzQsIDAuNDI4NzgyLCAwLjY2OTk5MywgMC44MjA3NzMiLCBcCi0gICAgICAgICAgIjAuMTAyNDk2LCAwLjEyMDk4OSwgMC4yMjM3NjYsIDAuMzE0MjkxLCAwLjQzNDkzNCwgMC42NzYxNDksIDAuODI2OTE3IiwgXAotICAgICAgICAgICIwLjEwOTM2MSwgMC4xMjc4MTMsIDAuMjMwNTg1LCAwLjMyMTExMSwgMC40NDE3NiwgMC42ODI5NjEsIDAuODMzNzI5IiwgXAotICAgICAgICAgICIwLjExNDg1NywgMC4xMzMzMSwgMC4yMzYwODksIDAuMzI2NjQ2LCAwLjQ0NzI0OCwgMC42ODg0NjYsIDAuODM5MjM3IiwgXAotICAgICAgICAgICIwLjExOTQ5MiwgMC4xMzc5NTUsIDAuMjQwNzQ1LCAwLjMzMTI0OCwgMC40NTE5MTMsIDAuNjkzMTU1LCAwLjg0Mzk5NiIsIFwKLSAgICAgICAgICAiMC4xMjU3ODEsIDAuMTQ0MjQxLCAwLjI0NzAxNCwgMC4zMzc1MTgsIDAuNDU4MTU5LCAwLjY5OTM4OSwgMC44NTAxNjIiLCBcCi0gICAgICAgICAgIjAuMTMwNTg0LCAwLjE0OTAzNSwgMC4yNTE4MDksIDAuMzQyMzIxLCAwLjQ2Mjk2NSwgMC43MDQyNjEsIDAuODU0OTciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDcxMjgxLCAwLjEwNzM3NSwgMC4zMTY2MTQsIDAuNTAyMDU2LCAwLjc1MTI4OCwgMS4yNDgzNiwgMS41NTcyNyIsIFwKLSAgICAgICAgICAiMC4wNzEzNDYsIDAuMTA3MzU2LCAwLjMxNjUyMiwgMC41MDIwNTcsIDAuNzUxMjQ2LCAxLjI0NjY5LCAxLjU1NzI1IiwgXAotICAgICAgICAgICIwLjA3MTM3NywgMC4xMDczNjUsIDAuMzE2NTUsIDAuNTAxNzM1LCAwLjc1MTMxMiwgMS4yNDgwNSwgMS41NTcwNSIsIFwKLSAgICAgICAgICAiMC4wNzE0MTgsIDAuMTA3NDAxLCAwLjMxNjE3MSwgMC41MDIxNzUsIDAuNzUxMjIsIDEuMjQ2NjMsIDEuNTU3MzMiLCBcCi0gICAgICAgICAgIjAuMDcxNDI1LCAwLjEwNzQxLCAwLjMxNjY1MywgMC41MDI2OTcsIDAuNzUxMzI1LCAxLjI0ODU5LCAxLjU1OTQ3IiwgXAotICAgICAgICAgICIwLjA3MTM4OSwgMC4xMDc0MzcsIDAuMzE2MTc0LCAwLjUwMjY1NiwgMC43NTExNzEsIDEuMjQ2NjgsIDEuNTU5MTMiLCBcCi0gICAgICAgICAgIjAuMDcxNDc0LCAwLjEwNzM4MSwgMC4zMTY0NTEsIDAuNTAxOTk4LCAwLjc0OTc3MywgMS4yNDg3MywgMS41NTkxNiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTY5NDUsIDAuMTE1NzU3LCAwLjIyMTQyOSwgMC4zMTQ1MjcsIDAuNDM4NTk5LCAwLjY4Njc5MSwgMC44NDE4ODMiLCBcCi0gICAgICAgICAgIjAuMTAyNzM5LCAwLjEyMTU0OCwgMC4yMjcyNDEsIDAuMzIwMzcxLCAwLjQ0NDQzMywgMC42OTI1NzcsIDAuODQ3NjgiLCBcCi0gICAgICAgICAgIjAuMTA4ODYzLCAwLjEyNzY3MiwgMC4yMzMzMzQsIDAuMzI2NDY1LCAwLjQ1MDUzLCAwLjY5ODc0NSwgMC44NTM3OTYiLCBcCi0gICAgICAgICAgIjAuMTEzODc2LCAwLjEzMjY5NSwgMC4yMzgzODQsIDAuMzMxNDkyLCAwLjQ1NTU5NSwgMC43MDM3NCwgMC44NTg4NDYiLCBcCi0gICAgICAgICAgIjAuMTE4MDkyLCAwLjEzNjkwOCwgMC4yNDI2MDcsIDAuMzM1Njc5LCAwLjQ1OTc1OSwgMC43MDc5NTMsIDAuODYzMDI5IiwgXAotICAgICAgICAgICIwLjEyMzY2NiwgMC4xNDI0ODQsIDAuMjQ4MTcxLCAwLjM0MTI2NywgMC40NjU0NSwgMC43MTM1MjIsIDAuODY4NjEiLCBcCi0gICAgICAgICAgIjAuMTI3ODk3LCAwLjE0NjcwOCwgMC4yNTIzNTksIDAuMzQ1NDY3LCAwLjQ2OTU3LCAwLjcxNzc1MSwgMC44NzI4MDkiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDczODYxLCAwLjExMTk0MSwgMC4zMzIzMzMsIDAuNTI4NDg3LCAwLjc4OTgxMiwgMS4zMTE0MiwgMS42Mzc3OCIsIFwKLSAgICAgICAgICAiMC4wNzM4NTgsIDAuMTExOTM5LCAwLjMzMjExMywgMC41Mjg0ODcsIDAuNzg5ODUsIDEuMzExNCwgMS42Mzc3IiwgXAotICAgICAgICAgICIwLjA3Mzg0MywgMC4xMTE4OTIsIDAuMzMyNjAzLCAwLjUyODQ5LCAwLjc4OTA5NiwgMS4zMTI2OSwgMS42MzgwNyIsIFwKLSAgICAgICAgICAiMC4wNzM4OTgsIDAuMTExOTU4LCAwLjMzMjYyNiwgMC41Mjg0ODksIDAuNzg5ODQyLCAxLjMxMTQyLCAxLjYzNzYiLCBcCi0gICAgICAgICAgIjAuMDczODgyLCAwLjExMTk2NiwgMC4zMzIxMjgsIDAuNTI4NDEsIDAuNzg4OTg0LCAxLjMxMTIxLCAxLjYzNzkiLCBcCi0gICAgICAgICAgIjAuMDczOTUzLCAwLjExMTg2OCwgMC4zMzIzMzgsIDAuNTI4MDAyLCAwLjc4ODY3MSwgMS4zMTE0MiwgMS42Mzc5MiIsIFwKLSAgICAgICAgICAiMC4wNzM5NDQsIDAuMTExOTgyLCAwLjMzMjA1NSwgMC41MjgzMzYsIDAuNzg5NjM4LCAxLjMxMjQyLCAxLjYzOTE1Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5NjYyMiwgMC4xMTUwNzgsIDAuMjE3ODQ3LCAwLjMwODM2MywgMC40MjkwMDEsIDAuNjcwMjI4LCAwLjgyMDk4NyIsIFwKLSAgICAgICAgICAiMC4xMDI4ODEsIDAuMTIxMzI5LCAwLjIyNDEwMSwgMC4zMTQ2MjYsIDAuNDM1MjUyLCAwLjY3NjQ3OSwgMC44MjcyMzYiLCBcCi0gICAgICAgICAgIjAuMTA5NzcsIDAuMTI4MjI1LCAwLjIzMDk5NSwgMC4zMjE1MTYsIDAuNDQyMTQ1LCAwLjY4MzM3MSwgMC44MzQxNjIiLCBcCi0gICAgICAgICAgIjAuMTE1MzY2LCAwLjEzMzgxMywgMC4yMzY1OTEsIDAuMzI3MTIsIDAuNDQ3NzQ1LCAwLjY4OTA1MSwgMC44Mzk3MzciLCBcCi0gICAgICAgICAgIjAuMTIwMDU3LCAwLjEzODUyNCwgMC4yNDEyOTQsIDAuMzMxODE5LCAwLjQ1MjQ5MywgMC42OTM3MDUsIDAuODQ0NTYxIiwgXAotICAgICAgICAgICIwLjEyNjQ1LCAwLjE0NDkxMywgMC4yNDc2ODYsIDAuMzM4MTk2LCAwLjQ1ODgzNiwgMC43MDAwNTksIDAuODUwODY0IiwgXAotICAgICAgICAgICIwLjEzMTI5NiwgMC4xNDk3NTIsIDAuMjUyNTI1LCAwLjM0MzAzNCwgMC40NjM2OTIsIDAuNzA0OTQ2LCAwLjg1NTY3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3MTM2NiwgMC4xMDczNzQsIDAuMzE2MjgzLCAwLjUwMTA4OCwgMC43NTEyNDIsIDEuMjQ0NywgMS41NTcxNyIsIFwKLSAgICAgICAgICAiMC4wNzEzNTksIDAuMTA3MzY0LCAwLjMxNjU3LCAwLjUwMTQzLCAwLjc1MTIwNSwgMS4yNDY4NSwgMS41NTcxMyIsIFwKLSAgICAgICAgICAiMC4wNzEzNzksIDAuMTA3MzkxLCAwLjMxNjU1OCwgMC41MDIxMzksIDAuNzUxMTgxLCAxLjI0NjcyLCAxLjU1OTE5IiwgXAotICAgICAgICAgICIwLjA3MTQyMywgMC4xMDczODgsIDAuMzE2NDk3LCAwLjUwMTgzMywgMC43NTAyNDcsIDEuMjQ4NzEsIDEuNTU3MDUiLCBcCi0gICAgICAgICAgIjAuMDcxNDEzLCAwLjEwNzQwMSwgMC4zMTY1MDIsIDAuNTAyMTg2LCAwLjc1MTMyOSwgMS4yNDg0NSwgMS41NTk2IiwgXAotICAgICAgICAgICIwLjA3MTM5LCAwLjEwNzM2LCAwLjMxNjU2NiwgMC41MDI2ODQsIDAuNzUxMTg3LCAxLjI0NjYzLCAxLjU1NjMxIiwgXAotICAgICAgICAgICIwLjA3MTQ4MywgMC4xMDczNzcsIDAuMzE2NTYyLCAwLjUwMjU4MywgMC43NTAyMTEsIDEuMjQ4NTEsIDEuNTU4ODIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk0Njc0LCAwLjExMzQ4MSwgMC4yMTkwNzgsIDAuMzEyMjI2LCAwLjQzNjM3LCAwLjY4NDQ5NSwgMC44Mzk1NzUiLCBcCi0gICAgICAgICAgIjAuMTAwNTQyLCAwLjExOTM1NSwgMC4yMjQ5OTUsIDAuMzE3OTk1LCAwLjQ0MjE3MiwgMC42OTAzNTMsIDAuODQ1NDU5IiwgXAotICAgICAgICAgICIwLjEwNjY5MiwgMC4xMjU0ODgsIDAuMjMxMTMyLCAwLjMyNDI1NSwgMC40NDgzMjEsIDAuNjk2NTI4LCAwLjg1MTU4NiIsIFwKLSAgICAgICAgICAiMC4xMTE2NjYsIDAuMTMwNDY0LCAwLjIzNjEwNSwgMC4zMjkyMzQsIDAuNDUzMjk0LCAwLjcwMTQ2NSwgMC44NTY2MTYiLCBcCi0gICAgICAgICAgIjAuMTE1NzM4LCAwLjEzNDU0OSwgMC4yNDAyLCAwLjMzMzMxNywgMC40NTczOCwgMC43MDU1MzksIDAuODYwNjMzIiwgXAotICAgICAgICAgICIwLjEyMTIxOSwgMC4xNDAwMzksIDAuMjQ1NzI1LCAwLjMzODc3MywgMC40NjI5NDIsIDAuNzEwOTg3LCAwLjg2NjA3MyIsIFwKLSAgICAgICAgICAiMC4xMjUzNDksIDAuMTQ0MTQyLCAwLjI0OTc3NiwgMC4zNDI4OTEsIDAuNDY2OTU5LCAwLjcxNTE4MSwgMC44NzAyMTEiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDczNzE2LCAwLjExMTgyNSwgMC4zMzE5MjMsIDAuNTI4NDQzLCAwLjc4OTg1OSwgMS4zMTI2NSwgMS42Mzc1OCIsIFwKLSAgICAgICAgICAiMC4wNzM2NzIsIDAuMTExODI3LCAwLjMzMjU3NCwgMC41MjcyMDIsIDAuNzg4OTk0LCAxLjMxMTEyLCAxLjYzNjY5IiwgXAotICAgICAgICAgICIwLjA3MzcxNywgMC4xMTE3NTksIDAuMzMyNTQxLCAwLjUyODQ0NiwgMC43ODkxMDYsIDEuMzEyNjcsIDEuNjM3NzgiLCBcCi0gICAgICAgICAgIjAuMDczNzg1LCAwLjExMTg2MywgMC4zMzI1NjIsIDAuNTI4NDQxLCAwLjc4OTExOSwgMS4zMTEzMiwgMS42Mzk0NiIsIFwKLSAgICAgICAgICAiMC4wNzM3MzgsIDAuMTExODQ3LCAwLjMzMjI0NSwgMC41MjgzOTgsIDAuNzg5MTE4LCAxLjMxMjUxLCAxLjYzODEiLCBcCi0gICAgICAgICAgIjAuMDczODQ3LCAwLjExMTgwOSwgMC4zMzIwMTYsIDAuNTI4MzA1LCAwLjc4ODY3OSwgMS4zMTIzMiwgMS42MzkxMiIsIFwKLSAgICAgICAgICAiMC4wNzM3OTEsIDAuMTExOTI5LCAwLjMzMjQzOSwgMC41MjgyNzcsIDAuNzg4OTU1LCAxLjMxMjM5LCAxLjYzOTEiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk1NTM2LCAwLjExMzk4NCwgMC4yMTY3NDEsIDAuMzA3MjU0LCAwLjQyNzg4NiwgMC42NjkxMDQsIDAuODE5ODYyIiwgXAotICAgICAgICAgICIwLjEwMTU5MSwgMC4xMjAwNDUsIDAuMjIyNzk5LCAwLjMxMzMxNywgMC40MzM5NTUsIDAuNjc1MTYyLCAwLjgyNTkyNCIsIFwKLSAgICAgICAgICAiMC4xMDgzNiwgMC4xMjY4MDYsIDAuMjI5NTY5LCAwLjMyMDA4OCwgMC40NDA3NDYsIDAuNjgxOTI5LCAwLjgzMjcwNCIsIFwKLSAgICAgICAgICAiMC4xMTM4MTgsIDAuMTMyMjYzLCAwLjIzNTAzLCAwLjMyNTU1MSwgMC40NDYxNzEsIDAuNjg3NDc2LCAwLjgzODE1NyIsIFwKLSAgICAgICAgICAiMC4xMTg0NzMsIDAuMTM2OTIsIDAuMjM5NjgzLCAwLjMzMDE5OCwgMC40NTA4MzgsIDAuNjkyMDQzLCAwLjg0MjgxMSIsIFwKLSAgICAgICAgICAiMC4xMjQ3MjMsIDAuMTQzMTk3LCAwLjI0NTk1MywgMC4zMzY0NjksIDAuNDU3MDk2LCAwLjY5ODMxMiwgMC44NDkxMjIiLCBcCi0gICAgICAgICAgIjAuMTI5NTA4LCAwLjE0Nzk1OCwgMC4yNTA3MTgsIDAuMzQxMjM4LCAwLjQ2MTg1MywgMC43MDMxMywgMC44NTM4NTYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDcxMzU4LCAwLjEwNzM3MiwgMC4zMTY1NzEsIDAuNTAxMTIxLCAwLjc1MTIzMiwgMS4yNDY3MiwgMS41NTU2IiwgXAotICAgICAgICAgICIwLjA3MTM2MiwgMC4xMDczNTQsIDAuMzE2NTM4LCAwLjUwMjcxMiwgMC43NTEyNDUsIDEuMjQ4MjIsIDEuNTU3MDYiLCBcCi0gICAgICAgICAgIjAuMDcxMzUyLCAwLjEwNzM0NiwgMC4zMTY1NDIsIDAuNTAyMTUyLCAwLjc1MTI5NCwgMS4yNDgyNCwgMS41NTkwNSIsIFwKLSAgICAgICAgICAiMC4wNzE0MDgsIDAuMTA3MzgzLCAwLjMxNjQ4OSwgMC41MDE3NjksIDAuNzUwMTg0LCAxLjI0ODY0LCAxLjU1ODYzIiwgXAotICAgICAgICAgICIwLjA3MTM1OCwgMC4xMDczNjUsIDAuMzE2NTU3LCAwLjUwMjY4OSwgMC43NTEyMzMsIDEuMjQ4MDgsIDEuNTU3MDQiLCBcCi0gICAgICAgICAgIjAuMDcxMzUzLCAwLjEwNzM2OSwgMC4zMTYxNywgMC41MDIxMTksIDAuNzUxMTksIDEuMjQ2NTMsIDEuNTU5MjMiLCBcCi0gICAgICAgICAgIjAuMDcxMzU4LCAwLjEwNzM3MywgMC4zMTY0ODMsIDAuNTAyNDkxLCAwLjc1MDk5NSwgMS4yNDg0OSwgMS41NTg4MSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJEIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTUzMjIsIDAuMTE0MTIyLCAwLjIxOTc2NSwgMC4zMTI4ODgsIDAuNDM2OTUxLCAwLjY4NTIyMiwgMC44NDAyMjIiLCBcCi0gICAgICAgICAgIjAuMTAxMDgyLCAwLjExOTg4MywgMC4yMjU1MjMsIDAuMzE4NjA4LCAwLjQ0MjcsIDAuNjkwOTAxLCAwLjg0NTk2NyIsIFwKLSAgICAgICAgICAiMC4xMDcxODYsIDAuMTI1OTg4LCAwLjIzMTYyMywgMC4zMjQ3NTIsIDAuNDQ4ODEzLCAwLjY5Njk4NCwgMC44NTIxNTMiLCBcCi0gICAgICAgICAgIjAuMTEyMTczLCAwLjEzMDk3MSwgMC4yMzY2MTIsIDAuMzI5NzQsIDAuNDUzODAzLCAwLjcwMTk2OSwgMC44NTcwODkiLCBcCi0gICAgICAgICAgIjAuMTE2MjUzLCAwLjEzNTA3NSwgMC4yNDA3MjMsIDAuMzMzODQyLCAwLjQ1NzkwNiwgMC43MDYwNjQsIDAuODYxMTUzIiwgXAotICAgICAgICAgICIwLjEyMTc5OCwgMC4xNDA2MDIsIDAuMjQ2MzAyLCAwLjMzOTM0MSwgMC40NjM0ODEsIDAuNzExNTYxLCAwLjg2NjY0OSIsIFwKLSAgICAgICAgICAiMC4xMjU5NTksIDAuMTQ0NzUzLCAwLjI1MDM4NSwgMC4zNDM1NTMsIDAuNDY3NTc2LCAwLjcxNTc2NCwgMC44NzA4NTEiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDczNjkxLCAwLjExMTgyLCAwLjMzMjU0NywgMC41Mjg0NTMsIDAuNzg5MDU5LCAxLjMxMjczLCAxLjYzNzczIiwgXAotICAgICAgICAgICIwLjA3MzczNCwgMC4xMTE4MzEsIDAuMzMyNTYzLCAwLjUyODQxNSwgMC43ODkwMzEsIDEuMzEwNjYsIDEuNjM3NzIiLCBcCi0gICAgICAgICAgIjAuMDczNzM3LCAwLjExMTgzNiwgMC4zMzI1NDgsIDAuNTI4NDQ5LCAwLjc4OTEzNSwgMS4zMTEyNCwgMS42Mzk0OCIsIFwKLSAgICAgICAgICAiMC4wNzM3ODUsIDAuMTExODY0LCAwLjMzMjA1NCwgMC41Mjg0NCwgMC43ODkxNDYsIDEuMzExMzgsIDEuNjM2NjgiLCBcCi0gICAgICAgICAgIjAuMDczNzc1LCAwLjExMTc5NSwgMC4zMzIyMzEsIDAuNTI4Mzk5LCAwLjc4OTEzMSwgMS4zMTE1NiwgMS42MzgwNSIsIFwKLSAgICAgICAgICAiMC4wNzM4NDYsIDAuMTExNzgsIDAuMzMyMDg5LCAwLjUyODMyMywgMC43ODk3MTIsIDEuMzExMjcsIDEuNjM3NyIsIFwKLSAgICAgICAgICAiMC4wNzM4MDgsIDAuMTExODg3LCAwLjMzMTk5MywgMC41MjgzMzQsIDAuNzg5LCAxLjMxMTAxLCAxLjYzOTEiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk1NTM2LCAwLjExMzk5MSwgMC4yMTY3NDksIDAuMzA3MjYsIDAuNDI3ODk1LCAwLjY2OTExMywgMC44MTk4NyIsIFwKLSAgICAgICAgICAiMC4xMDE3MDksIDAuMTIwMjE0LCAwLjIyMjk1NiwgMC4zMTM0NTYsIDAuNDM0MTIzLCAwLjY3NTMyOSwgMC44MjYwOTMiLCBcCi0gICAgICAgICAgIjAuMTA4NjI1LCAwLjEyNzA3NSwgMC4yMjk4NTgsIDAuMzIwMzU4LCAwLjQ0MDk5MSwgMC42ODIxOTUsIDAuODMyOTY1IiwgXAotICAgICAgICAgICIwLjExNDA4NiwgMC4xMzI1NDgsIDAuMjM1MzE0LCAwLjMyNTgyMiwgMC40NDY0NTksIDAuNjg3Njc2LCAwLjgzODQzMyIsIFwKLSAgICAgICAgICAiMC4xMTg3NzcsIDAuMTM3MjMsIDAuMjM5OTkxLCAwLjMzMDUsIDAuNDUxMTQ3LCAwLjY5MjM1MSwgMC44NDMxMTgiLCBcCi0gICAgICAgICAgIjAuMTI1MDI0LCAwLjE0MzQ4LCAwLjI0NjI0LCAwLjMzNjc1MywgMC40NTc0MDksIDAuNjk4NjQxLCAwLjg0OTM2NCIsIFwKLSAgICAgICAgICAiMC4xMjk4MDIsIDAuMTQ4MjUyLCAwLjI1MTAxMiwgMC4zNDE1MzgsIDAuNDYyMTQ5LCAwLjcwMzQxOSwgMC44NTQxNDkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDcxMzQ5LCAwLjEwNzM2OSwgMC4zMTY1NywgMC41MDEwODcsIDAuNzUxMjM0LCAxLjI0Njc0LCAxLjU1NTYzIiwgXAotICAgICAgICAgICIwLjA3MTIwOSwgMC4xMDczNTQsIDAuMzE2NTE3LCAwLjUwMjY1NSwgMC43NTEyNTQsIDEuMjQ1NDksIDEuNTU0NTgiLCBcCi0gICAgICAgICAgIjAuMDcxMzAzLCAwLjEwNzM0NSwgMC4zMTYwMzIsIDAuNTAyNjkyLCAwLjc1MTI0MSwgMS4yNDgxOSwgMS41NTcyNCIsIFwKLSAgICAgICAgICAiMC4wNzEzOSwgMC4xMDczOSwgMC4zMTY1NSwgMC41MDIwMjksIDAuNzUxMjA3LCAxLjI0NjcsIDEuNTU4ODkiLCBcCi0gICAgICAgICAgIjAuMDcxMzcsIDAuMTA3MzY0LCAwLjMxNjUwMSwgMC41MDI2NjYsIDAuNzUxMjM4LCAxLjI0ODA4LCAxLjU1NyIsIFwKLSAgICAgICAgICAiMC4wNzEzNjEsIDAuMTA3MzUzLCAwLjMxNjQ5NiwgMC41MDIwMDIsIDAuNzUxMjkxLCAxLjI0NjI5LCAxLjU1ODcyIiwgXAotICAgICAgICAgICIwLjA3MTQ0OSwgMC4xMDczNzEsIDAuMzE2NDg0LCAwLjUwMjQ3MSwgMC43NTEwMDUsIDEuMjQ4NDYsIDEuNTU4ODEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUzAiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExMDU4NSwgMC4xMjkzOTYsIDAuMjM1MDIsIDAuMzI4MTU2LCAwLjQ1MjI0OCwgMC43MDA0NzMsIDAuODU1NTQ5IiwgXAotICAgICAgICAgICIwLjExODYwOCwgMC4xMzc0MjEsIDAuMjQzMDQ5LCAwLjMzNjEwNSwgMC40NjAyNzMsIDAuNzA4NDk4LCAwLjg2MzU3IiwgXAotICAgICAgICAgICIwLjEyNjk3NywgMC4xNDU3OTEsIDAuMjUxNDQ0LCAwLjM0NDU2OCwgMC40Njg2NDgsIDAuNzE2ODMxLCAwLjg3MTkzMiIsIFwKLSAgICAgICAgICAiMC4xMzMzMDgsIDAuMTUyMTMsIDAuMjU3OCwgMC4zNTA5MjMsIDAuNDc0OTgzLCAwLjcyMzIwMiwgMC44NzgyOTMiLCBcCi0gICAgICAgICAgIjAuMTM4MDcsIDAuMTU2OTAxLCAwLjI2MjU3NCwgMC4zNTU2NjYsIDAuNDc5NzU3LCAwLjcyNzk4LCAwLjg4MzA1MSIsIFwKLSAgICAgICAgICAiMC4xNDUwNTYsIDAuMTYzODU4LCAwLjI2OTUxMiwgMC4zNjI2MDgsIDAuNDg2NzI5LCAwLjczNDg2LCAwLjg5MDA1MSIsIFwKLSAgICAgICAgICAiMC4xNDk5NzYsIDAuMTY4NzksIDAuMjc0NDQsIDAuMzY3NTM0LCAwLjQ5MTYxNywgMC43Mzk3NjQsIDAuODk0OTA3Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3Mzg2NywgMC4xMTE5NDUsIDAuMzMyNjAzLCAwLjUyODUwMSwgMC43ODk4ODEsIDEuMzExNDksIDEuNjM3NjkiLCBcCi0gICAgICAgICAgIjAuMDczODY3LCAwLjExMTk0MywgMC4zMzI2MDYsIDAuNTI4NTEsIDAuNzg5OTI3LCAxLjMxMjY3LCAxLjYzNzc1IiwgXAotICAgICAgICAgICIwLjA3Mzg2NywgMC4xMTE5NDMsIDAuMzMyNjMsIDAuNTI4NTQsIDAuNzg5ODk5LCAxLjMxMjgyLCAxLjYzOTQzIiwgXAotICAgICAgICAgICIwLjA3Mzg1OSwgMC4xMTE5NDEsIDAuMzMyNjY0LCAwLjUyODQ5MSwgMC43ODk4ODgsIDEuMzEyNzIsIDEuNjM5NCIsIFwKLSAgICAgICAgICAiMC4wNzM5MTksIDAuMTExOTc2LCAwLjMzMjYxNiwgMC41Mjg0OTQsIDAuNzg5ODk0LCAxLjMxMjY0LCAxLjYzODEyIiwgXAotICAgICAgICAgICIwLjA3Mzg3MiwgMC4xMTE5NDMsIDAuMzMyNDk2LCAwLjUyODM4LCAwLjc4OTc0NywgMS4zMTI1MiwgMS42MzkzNiIsIFwKLSAgICAgICAgICAiMC4wNzQwMTEsIDAuMTExODc5LCAwLjMzMjE5NywgMC41MjgxOTUsIDAuNzg5NTk5LCAxLjMxMjM0LCAxLjYzODkyIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExMzA5MSwgMC4xMzE1NTcsIDAuMjM0MzIsIDAuMzI0ODMxLCAwLjQ0NTQ4LCAwLjY4NjY5OCwgMC44Mzc0NjgiLCBcCi0gICAgICAgICAgIjAuMTIwOTg0LCAwLjEzOTQzNiwgMC4yNDIyMDgsIDAuMzMyNzMxLCAwLjQ1MzM1OCwgMC42OTQ1ODQsIDAuODQ1Mzc4IiwgXAotICAgICAgICAgICIwLjEyOTI2NSwgMC4xNDc2OTgsIDAuMjUwNDg5LCAwLjM0MTAxMiwgMC40NjE2MzksIDAuNzAyODY1LCAwLjg1MzU3NCIsIFwKLSAgICAgICAgICAiMC4xMzU0MjUsIDAuMTUzODY3LCAwLjI1NjYzOCwgMC4zNDcxNDUsIDAuNDY3NzkxLCAwLjcwOTA5OSwgMC44NTk3OTEiLCBcCi0gICAgICAgICAgIjAuMTQwMTgxLCAwLjE1ODYzMywgMC4yNjE0MTEsIDAuMzUxOTIyLCAwLjQ3MjU3LCAwLjcxMzgwOCwgMC44NjQ1NiIsIFwKLSAgICAgICAgICAiMC4xNDY1NDksIDAuMTY0OTk5LCAwLjI2Nzc3MywgMC4zNTgyNjksIDAuNDc4OTU2LCAwLjcyMDIyNCwgMC44NzA4OTgiLCBcCi0gICAgICAgICAgIjAuMTUxMjcsIDAuMTY5NzIxLCAwLjI3MjQ5MSwgMC4zNjI5OTYsIDAuNDgzNjE3LCAwLjcyNDg1MiwgMC44NzU2NjYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDcxMzg0LCAwLjEwNzM4MywgMC4zMTY1NzIsIDAuNTAyNzAzLCAwLjc1MTI3OCwgMS4yNDg2NCwgMS41NTg5NiIsIFwKLSAgICAgICAgICAiMC4wNzEzODQsIDAuMTA3NCwgMC4zMTY1ODgsIDAuNTAyMTU1LCAwLjc1MTI4MSwgMS4yNDgyOCwgMS41NTk3OSIsIFwKLSAgICAgICAgICAiMC4wNzEzODUsIDAuMTA3Mzc0LCAwLjMxNjYwNSwgMC41MDI3NSwgMC43NTEyNjUsIDEuMjQ4MiwgMS41NTkwOSIsIFwKLSAgICAgICAgICAiMC4wNzEzODcsIDAuMTA3MzgxLCAwLjMxNjYzMywgMC41MDI3MSwgMC43NTEyNzIsIDEuMjQ4NzgsIDEuNTU5MjMiLCBcCi0gICAgICAgICAgIjAuMDcxNDQ1LCAwLjEwNzQ0MSwgMC4zMTY1NzgsIDAuNTAyNTAxLCAwLjc1MTIzNiwgMS4yNDg2OCwgMS41NTk1NyIsIFwKLSAgICAgICAgICAiMC4wNzEzNzksIDAuMTA3MzgxLCAwLjMxNjU2MiwgMC41MDI2LCAwLjc1MTM0MSwgMS4yNDg3LCAxLjU1OTIiLCBcCi0gICAgICAgICAgIjAuMDcxNDc1LCAwLjEwNzI4NCwgMC4zMTYxNTEsIDAuNTAyMjg3LCAwLjc1MTA1NiwgMS4yNDgxNCwgMS41NTc3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlMwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTE0MzcsIDAuMTEwMjU4LCAwLjIxNTg4NCwgMC4zMDkwNDgsIDAuNDMzMTYxLCAwLjY4MTMyNCwgMC44MzY0MjEiLCBcCi0gICAgICAgICAgIjAuMDk4NjY5LCAwLjExNzQ4MywgMC4yMjMxOTUsIDAuMzE2MjM2LCAwLjQ0MDM0OCwgMC42ODg1MzksIDAuODQzNTg2IiwgXAotICAgICAgICAgICIwLjEwNjgwOSwgMC4xMjU2MjUsIDAuMjMxMjkzLCAwLjMyNDQyMiwgMC40NDg0OTYsIDAuNjk2Njk3LCAwLjg1MTgzNyIsIFwKLSAgICAgICAgICAiMC4xMTMxMjksIDAuMTMxOTQyLCAwLjIzNzYwNSwgMC4zMzA3MDcsIDAuNDU0ODAxLCAwLjcwMzAxMywgMC44NTgwOSIsIFwKLSAgICAgICAgICAiMC4xMTgzMywgMC4xMzcxNTksIDAuMjQyODI1LCAwLjMzNTk0NiwgMC40NjAwMTgsIDAuNzA4MjU3LCAwLjg2MzMwMiIsIFwKLSAgICAgICAgICAiMC4xMjUyNDQsIDAuMTQ0MDYzLCAwLjI0OTcwOSwgMC4zNDI4MywgMC40NjY5NDMsIDAuNzE1MDg3LCAwLjg3MDI1MSIsIFwKLSAgICAgICAgICAiMC4xMzA1MDcsIDAuMTQ5MzE1LCAwLjI1NDk2NCwgMC4zNDgwODcsIDAuNDcyMjQ4LCAwLjcyMDM0OSwgMC44NzU0MzMiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDczODY5LCAwLjExMTk0NCwgMC4zMzI2MDUsIDAuNTI4NDk3LCAwLjc4OTg3NywgMS4zMTI2OCwgMS42Mzk0NiIsIFwKLSAgICAgICAgICAiMC4wNzM4NzEsIDAuMTExOTQ1LCAwLjMzMjYwOSwgMC41Mjg0OTYsIDAuNzg5ODc3LCAxLjMxMjczLCAxLjYzOTUiLCBcCi0gICAgICAgICAgIjAuMDczODcyLCAwLjExMTk1MywgMC4zMzI2NiwgMC41Mjg1MzksIDAuNzg5OTIsIDEuMzEyNjksIDEuNjM5NDUiLCBcCi0gICAgICAgICAgIjAuMDczOTQxLCAwLjExMTk4MiwgMC4zMzI2NTYsIDAuNTI4NSwgMC43ODk4ODIsIDEuMzExNDIsIDEuNjM5NTMiLCBcCi0gICAgICAgICAgIjAuMDczOTQ4LCAwLjExMTk5OSwgMC4zMzI2MDksIDAuNTI4NTMzLCAwLjc4OTc5MywgMS4zMTI3OCwgMS42MzgwOSIsIFwKLSAgICAgICAgICAiMC4wNzM5ODQsIDAuMTExOTQ4LCAwLjMzMjUxNiwgMC41Mjg1MjIsIDAuNzg5OTEsIDEuMzExNTksIDEuNjM5MzciLCBcCi0gICAgICAgICAgIjAuMDczOTg5LCAwLjExMjAzNywgMC4zMzIyODksIDAuNTI4NTc1LCAwLjc4OTk2OCwgMS4zMTI2OSwgMS42Mzg5OCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTE3NTksIDAuMTEwMjE3LCAwLjIxMjk4NiwgMC4zMDM1MzMsIDAuNDI0MTQ5LCAwLjY2NTM4MywgMC44MTYxNDgiLCBcCi0gICAgICAgICAgIjAuMDk5MDcsIDAuMTE3NTI3LCAwLjIyMDI5NCwgMC4zMTA4MzEsIDAuNDMxNDgsIDAuNjcyNjk3LCAwLjgyMzQ3MyIsIFwKLSAgICAgICAgICAiMC4xMDcxMzgsIDAuMTI1NTg0LCAwLjIyODM3OSwgMC4zMTg4OTcsIDAuNDM5NTIyLCAwLjY4MDc1MiwgMC44MzE1MjgiLCBcCi0gICAgICAgICAgIjAuMTEzMTk2LCAwLjEzMTY0OCwgMC4yMzQ0NTEsIDAuMzI0OTc3LCAwLjQ0NTU5MSwgMC42ODY4MjEsIDAuODM3NTk3IiwgXAotICAgICAgICAgICIwLjExODEyLCAwLjEzNjU4MSwgMC4yMzkzODIsIDAuMzI5ODc5LCAwLjQ1MDUxOCwgMC42OTE3NDIsIDAuODQyNTAzIiwgXAotICAgICAgICAgICIwLjEyNDk2MiwgMC4xNDM0MzYsIDAuMjQ2MTk2LCAwLjMzNjY5MSwgMC40NTczNTYsIDAuNjk4NTg5LCAwLjg0OTM2MiIsIFwKLSAgICAgICAgICAiMC4xMjk5MjgsIDAuMTQ4Mzg2LCAwLjI1MTE1MywgMC4zNDE2ODQsIDAuNDYyMjk3LCAwLjcwMzUzLCAwLjg1NDI4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3MTQxNCwgMC4xMDc0LCAwLjMxNjY2OSwgMC41MDI4MTEsIDAuNzUxMzMzLCAxLjI0ODcsIDEuNTU3MzQiLCBcCi0gICAgICAgICAgIjAuMDcxNDI0LCAwLjEwNzQzMSwgMC4zMTY1OTIsIDAuNTAyNzE3LCAwLjc1MTM2NywgMS4yNDg3OSwgMS41NTk0MiIsIFwKLSAgICAgICAgICAiMC4wNzE0MiwgMC4xMDc0MDksIDAuMzE2NjYyLCAwLjUwMjgyMywgMC43NTEyOTQsIDEuMjQ4OTIsIDEuNTU3MzMiLCBcCi0gICAgICAgICAgIjAuMDcxNDk3LCAwLjEwNzQ1NiwgMC4zMTY2NzgsIDAuNTAyODI4LCAwLjc1MTI5NywgMS4yNDg2NywgMS41NTk0NSIsIFwKLSAgICAgICAgICAiMC4wNzE0OTEsIDAuMTA3NDUsIDAuMzE2NjYxLCAwLjUwMjcyMSwgMC43NTEyMzEsIDEuMjQ4NzMsIDEuNTU5NDIiLCBcCi0gICAgICAgICAgIjAuMDcxNDU5LCAwLjEwNzQzLCAwLjMxNjU3NSwgMC41MDI1NzUsIDAuNzUxMjQ4LCAxLjI0ODE5LCAxLjU1OTQiLCBcCi0gICAgICAgICAgIjAuMDcxNTQ5LCAwLjEwNzQ1MiwgMC4zMTY1MjUsIDAuNTAyMTU4LCAwLjc1MTIwOCwgMS4yNDg0OSwgMS41NTg5MiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTMSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDYyMTgxLCAwLjA4MDk0NCwgMC4xODY1MjcsIDAuMjc5NjQsIDAuNDAzNzA5LCAwLjY1MTg3OCwgMC44MDY5ODkiLCBcCi0gICAgICAgICAgIjAuMDY5NjIxLCAwLjA4ODM4NywgMC4xOTM5ODYsIDAuMjg3MDkyLCAwLjQxMTE2MywgMC42NTkzNTUsIDAuODE0NDI1IiwgXAotICAgICAgICAgICIwLjA3ODQ3OCwgMC4wOTcyNTcsIDAuMjAyODQzLCAwLjI5NTk1NCwgMC40MjAwMTQsIDAuNjY4MjIsIDAuODIzMjc2IiwgXAotICAgICAgICAgICIwLjA4NTYsIDAuMTA0MzkyLCAwLjIwOTk2OCwgMC4zMDMxMDcsIDAuNDI3MTI2LCAwLjY3NTI4NCwgMC44MzAzNDYiLCBcCi0gICAgICAgICAgIjAuMDkxNDA1LCAwLjExMDI5OSwgMC4yMTU4NywgMC4zMDg5NTUsIDAuNDMzMDM5LCAwLjY4MTE1NSwgMC44MzYyNTQiLCBcCi0gICAgICAgICAgIjAuMDk5MzMxLCAwLjExODE2NSwgMC4yMjM4LCAwLjMxNjg1NCwgMC40NDA5NTEsIDAuNjg5MDcsIDAuODQ0MTY2IiwgXAotICAgICAgICAgICIwLjEwNTI0NywgMC4xMjQxMzcsIDAuMjI5NzUyLCAwLjMyMjgwOCwgMC40NDY5MjMsIDAuNjk1MTYxLCAwLjg1MDEzNSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzM2NywgMC4xMTE3OTEsIDAuMzMyNTM1LCAwLjUyODQ2MiwgMC43ODkxNDgsIDEuMzExMTksIDEuNjM4MTEiLCBcCi0gICAgICAgICAgIjAuMDczNjM4LCAwLjExMTc2OCwgMC4zMzIxNywgMC41Mjg0MDIsIDAuNzg5MTk3LCAxLjMxMjY5LCAxLjYzNzY2IiwgXAotICAgICAgICAgICIwLjA3NDAyLCAwLjExMjAyLCAwLjMzMjU3MywgMC41Mjg0MDQsIDAuNzg5MTA3LCAxLjMxMjU0LCAxLjYzNzY1IiwgXAotICAgICAgICAgICIwLjA3NDc2NCwgMC4xMTI0ODksIDAuMzMyMzA0LCAwLjUyNzY4MSwgMC43ODkwMjYsIDEuMzExMzYsIDEuNjM5MjUiLCBcCi0gICAgICAgICAgIjAuMDc1NDUsIDAuMTEzMDA2LCAwLjMzMjQ1NCwgMC41Mjc5NzIsIDAuNzg5NzU1LCAxLjMxMTU2LCAxLjYzNzkzIiwgXAotICAgICAgICAgICIwLjA3NjgzMSwgMC4xMTM3NTksIDAuMzMyODk2LCAwLjUyODU1MSwgMC43ODk4MDIsIDEuMzExMjYsIDEuNjM5MzEiLCBcCi0gICAgICAgICAgIjAuMDc3Njc5LCAwLjExNDY3LCAwLjMzMjczNSwgMC41Mjg2NjQsIDAuNzg5OTcxLCAxLjMxMjUzLCAxLjYzOTMxIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2NDk5OSwgMC4wODM0MjcsIDAuMTg2MTU5LCAwLjI3NjY3NSwgMC4zOTcyOTEsIDAuNjM4NTEzLCAwLjc4OTMzOSIsIFwKLSAgICAgICAgICAiMC4wNzIzMTYsIDAuMDkwNzQ2LCAwLjE5MzUwMywgMC4yODQwMjksIDAuNDA0NjQyLCAwLjY0NTg1NiwgMC43OTY2MjUiLCBcCi0gICAgICAgICAgIjAuMDgxMTU2LCAwLjA5OTYzMSwgMC4yMDIzNjksIDAuMjkyODc4LCAwLjQxMzUwNiwgMC42NTQ3MjcsIDAuODA1NDg1IiwgXAotICAgICAgICAgICIwLjA4ODMxNCwgMC4xMDY4MTUsIDAuMjA5NTUyLCAwLjMwMDA0MiwgMC40MjA2ODQsIDAuNjYxODk1LCAwLjgxMjY1MyIsIFwKLSAgICAgICAgICAiMC4wOTQyMzUsIDAuMTEyODA1LCAwLjIxNTU1NCwgMC4zMDYwNTksIDAuNDI2NzE5LCAwLjY2Nzg5NSwgMC44MTg2NTUiLCBcCi0gICAgICAgICAgIjAuMTAyMTA3LCAwLjEyMDY5NCwgMC4yMjM1NjcsIDAuMzE0MDcyLCAwLjQzNDcxLCAwLjY3NTkxOSwgMC44MjY2MzkiLCBcCi0gICAgICAgICAgIjAuMTA3OTkzLCAwLjEyNjYyNiwgMC4yMjk2MTUsIDAuMzIwMDgsIDAuNDQwNzg0LCAwLjY4MTk3LCAwLjgzMjcyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3MTM0OSwgMC4xMDczNzksIDAuMzE2NTQ4LCAwLjUwMTcxOSwgMC43NTExNzksIDEuMjQ3OTgsIDEuNTU5MzEiLCBcCi0gICAgICAgICAgIjAuMDcxMzYxLCAwLjEwNzM2LCAwLjMxNjA3OSwgMC41MDI3MzgsIDAuNzUxMjE4LCAxLjI0NjY5LCAxLjU1NzI5IiwgXAotICAgICAgICAgICIwLjA3MTYzNCwgMC4xMDc1NjgsIDAuMzE2NTg3LCAwLjUwMjA3OSwgMC43NTExODMsIDEuMjQ2NjYsIDEuNTU4ODkiLCBcCi0gICAgICAgICAgIjAuMDcyMzU5LCAwLjEwODEwMSwgMC4zMTY3MzYsIDAuNTAxOTg3LCAwLjc1MTI0MiwgMS4yNDgwOCwgMS41NTg4OSIsIFwKLSAgICAgICAgICAiMC4wNzMwMiwgMC4xMDg2MDEsIDAuMzE2ODk0LCAwLjUwMjc3OCwgMC43NTEyNTYsIDEuMjQ4MTgsIDEuNTU4OCIsIFwKLSAgICAgICAgICAiMC4wNzQyNjYsIDAuMTA5MjczLCAwLjMxNjY0MiwgMC41MDMwMTQsIDAuNzUwMDA4LCAxLjI0ODM3LCAxLjU1ODc0IiwgXAotICAgICAgICAgICIwLjA3NDk4NCwgMC4xMTAxNjksIDAuMzE3MDk5LCAwLjUwMjM4NSwgMC43NDk5MzcsIDEuMjQ4NTMsIDEuNTU5MTgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUzEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3NDE4NSwgMC4wOTI5OTgsIDAuMTk4NjY2LCAwLjI5MTc5OCwgMC40MTU4NjksIDAuNjY0MTAzLCAwLjgxOTEzOSIsIFwKLSAgICAgICAgICAiMC4wODEyMzksIDAuMTAwMDU2LCAwLjIwNTcxMiwgMC4yOTg4MzUsIDAuNDIyOTM3LCAwLjY3MTA5NSwgMC44MjYyMTUiLCBcCi0gICAgICAgICAgIjAuMDg2NzQ1LCAwLjEwNTUxNywgMC4yMTExODMsIDAuMzA0MzA4LCAwLjQyODM1NywgMC42NzY2OCwgMC44MzE2NjYiLCBcCi0gICAgICAgICAgIjAuMDkwNDM4LCAwLjEwOTI2NSwgMC4yMTQ5NDQsIDAuMzA4MDYsIDAuNDMyMTM2LCAwLjY4MDI5NiwgMC44MzUzOTMiLCBcCi0gICAgICAgICAgIjAuMDkzNDkyLCAwLjExMjM4NCwgMC4yMTgwNiwgMC4zMTExNTksIDAuNDM1MjgzLCAwLjY4MzQ3LCAwLjgzODUwNCIsIFwKLSAgICAgICAgICAiMC4wOTc1ODQsIDAuMTE2NDM2LCAwLjIyMjI4LCAwLjMxNTM4MywgMC40Mzk0OTEsIDAuNjg3NjM1LCAwLjg0Mjc3IiwgXAotICAgICAgICAgICIwLjEwMDU5MSwgMC4xMTk0MjgsIDAuMjI1Mjc0LCAwLjMxODM5MiwgMC40NDI1MTgsIDAuNjkwNjYxLCAwLjg0NTc5MyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzM3MDYsIDAuMTExNzkzLCAwLjMzMjU3OSwgMC41Mjg0ODcsIDAuNzg5MTExLCAxLjMxMjY5LCAxLjYzNzkzIiwgXAotICAgICAgICAgICIwLjA3MzczLCAwLjExMTg2NSwgMC4zMzIyNDIsIDAuNTI4NDgsIDAuNzg4NTM3LCAxLjMxMTI5LCAxLjYzNjcxIiwgXAotICAgICAgICAgICIwLjA3Mzc4MiwgMC4xMTE4OTksIDAuMzMyNTc0LCAwLjUyODQ4MSwgMC43ODk3NDIsIDEuMzExNiwgMS42MzgwNiIsIFwKLSAgICAgICAgICAiMC4wNzM4ODMsIDAuMTEyMDMsIDAuMzMyNjA3LCAwLjUyNzgzMywgMC43ODkwOTksIDEuMzExMzgsIDEuNjM5MzUiLCBcCi0gICAgICAgICAgIjAuMDczODM0LCAwLjExMTk5NywgMC4zMzIzOSwgMC41Mjg0LCAwLjc4OTczNSwgMS4zMTA5OSwgMS42MzkxNSIsIFwKLSAgICAgICAgICAiMC4wNzM4NCwgMC4xMTE5OTYsIDAuMzMyNDk3LCAwLjUyODA5NywgMC43ODg2NywgMS4zMTIyOCwgMS42MzkwMiIsIFwKLSAgICAgICAgICAiMC4wNzM4MjYsIDAuMTEyMDgsIDAuMzMyNDM4LCAwLjUyODIzNywgMC43ODkyMDgsIDEuMzExMjQsIDEuNjM4OTUiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc1MjY0LCAwLjA5MzcxNCwgMC4xOTY0NzgsIDAuMjg3MDA2LCAwLjQwNzYzMiwgMC42NDg4NDYsIDAuNzk5NjE2IiwgXAotICAgICAgICAgICIwLjA4MjQwMiwgMC4xMDA4NCwgMC4yMDM2MDMsIDAuMjk0MTExLCAwLjQxNDc3NSwgMC42NTU5NjgsIDAuODA2NzM5IiwgXAotICAgICAgICAgICIwLjA4NzkzNCwgMC4xMDYzNzcsIDAuMjA5MTQ3LCAwLjI5OTY3MSwgMC40MjAzMDcsIDAuNjYxNTcyLCAwLjgxMjI5MiIsIFwKLSAgICAgICAgICAiMC4wOTE5OTQsIDAuMTEwNDY0LCAwLjIxMzI1NywgMC4zMDM3NjcsIDAuNDI0NDQxLCAwLjY2NTYzNSwgMC44MTYzODYiLCBcCi0gICAgICAgICAgIjAuMDk1MzQ1LCAwLjExMzgxOCwgMC4yMTY2MzksIDAuMzA3MTU2LCAwLjQyNzc3OSwgMC42NjkwMjgsIDAuODE5ODYiLCBcCi0gICAgICAgICAgIjAuMDk5ODg0LCAwLjExODMzLCAwLjIyMTE4NCwgMC4zMTE3LCAwLjQzMjMzMiwgMC42NzM1NTUsIDAuODI0MzUiLCBcCi0gICAgICAgICAgIjAuMTAzMzM1LCAwLjEyMTc4NiwgMC4yMjQ2MzIsIDAuMzE1MTQ2LCAwLjQzNTgwNCwgMC42NzcwMDUsIDAuODI3ODIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDcxMjczLCAwLjEwNzMwOSwgMC4zMTY1MzIsIDAuNTAxODU4LCAwLjc1MTI1NiwgMS4yNDY3MSwgMS41NTcyIiwgXAotICAgICAgICAgICIwLjA3MTI3MiwgMC4xMDczMDgsIDAuMzE2NTI2LCAwLjUwMTk3OSwgMC43NTEyNDUsIDEuMjQ4MjYsIDEuNTU3MTQiLCBcCi0gICAgICAgICAgIjAuMDcxMzE2LCAwLjEwNzMyNiwgMC4zMTY0NzksIDAuNTAxODA3LCAwLjc0OTc2LCAxLjI0ODU5LCAxLjU1NzIxIiwgXAotICAgICAgICAgICIwLjA3MTMyNSwgMC4xMDczNzUsIDAuMzE2NTEsIDAuNTAyNTQsIDAuNzUwOTgsIDEuMjQ4MTUsIDEuNTU4NzkiLCBcCi0gICAgICAgICAgIjAuMDcxMjU3LCAwLjEwNzM1OCwgMC4zMTYxMTcsIDAuNTAyMzQ5LCAwLjc1MDkwOCwgMS4yNDcwNywgMS41NTg5IiwgXAotICAgICAgICAgICIwLjA3MTI2LCAwLjEwNzI1NiwgMC4zMTYxOSwgMC41MDE5MzIsIDAuNzUwNDQ3LCAxLjI0NjcxLCAxLjU1ODYzIiwgXAotICAgICAgICAgICIwLjA3MTMyOSwgMC4xMDc0MzksIDAuMzE1OTY1LCAwLjUwMjAwMywgMC43NTAwNTksIDEuMjQ3NjIsIDEuNTU4MTgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDUzNzcsIDAuMDA1Mzg2LCAwLjAwNTQwMSwgMC4wMDU0MDQsIDAuMDA1NDA2LCAwLjAwNTQwOSwgMC4wMDU0MDkiLCBcCi0gICAgICAgICAgIjAuMDA1MzYsIDAuMDA1MzY5LCAwLjAwNTM4NCwgMC4wMDUzODcsIDAuMDA1Mzg5LCAwLjAwNTM5MiwgMC4wMDUzOTEiLCBcCi0gICAgICAgICAgIjAuMDA1MzcsIDAuMDA1MzgxLCAwLjAwNTM5NiwgMC4wMDUzOTksIDAuMDA1NDAzLCAwLjAwNTQwNCwgMC4wMDU0MDUiLCBcCi0gICAgICAgICAgIjAuMDA1NDA5LCAwLjAwNTQxOSwgMC4wMDU0MzQsIDAuMDA1NDM3LCAwLjAwNTQ0LCAwLjAwNTQ0MSwgMC4wMDU0NDEiLCBcCi0gICAgICAgICAgIjAuMDA1NDY4LCAwLjAwNTQ3OCwgMC4wMDU0OTQsIDAuMDA1NDk2LCAwLjAwNTUsIDAuMDA1NTAxLCAwLjAwNTUwMSIsIFwKLSAgICAgICAgICAiMC4wMDU1OTEsIDAuMDA1NTk5LCAwLjAwNTYxNiwgMC4wMDU2MTksIDAuMDA1NjIsIDAuMDA1NjI0LCAwLjAwNTYyMyIsIFwKLSAgICAgICAgICAiMC4wMDU3MTgsIDAuMDA1NzI4LCAwLjAwNTc0MywgMC4wMDU3NDcsIDAuMDA1NzUsIDAuMDA1NzUxLCAwLjAwNTc1MSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDE0LCAwLjAwNDE1MiwgMC4wMDQxNzEsIDAuMDA0MTc1LCAwLjAwNDE3OCwgMC4wMDQxOCwgMC4wMDQxOCIsIFwKLSAgICAgICAgICAiMC4wMDQxMTMsIDAuMDA0MTI1LCAwLjAwNDE0NCwgMC4wMDQxNDgsIDAuMDA0MTUsIDAuMDA0MTUyLCAwLjAwNDE1MyIsIFwKLSAgICAgICAgICAiMC4wMDQxMjUsIDAuMDA0MTM3LCAwLjAwNDE1NywgMC4wMDQxNjEsIDAuMDA0MTYzLCAwLjAwNDE2NSwgMC4wMDQxNjYiLCBcCi0gICAgICAgICAgIjAuMDA0MTY2LCAwLjAwNDE3OSwgMC4wMDQxOTgsIDAuMDA0MjAyLCAwLjAwNDIwNSwgMC4wMDQyMDcsIDAuMDA0MjA4IiwgXAotICAgICAgICAgICIwLjAwNDIyOCwgMC4wMDQyNDIsIDAuMDA0MjYsIDAuMDA0MjY0LCAwLjAwNDI2NywgMC4wMDQyNjksIDAuMDA0MjciLCBcCi0gICAgICAgICAgIjAuMDA0MzU1LCAwLjAwNDM2OCwgMC4wMDQzODgsIDAuMDA0MzkyLCAwLjAwNDM5MywgMC4wMDQzOTUsIDAuMDA0Mzk2IiwgXAotICAgICAgICAgICIwLjAwNDQ4NCwgMC4wMDQ0OTgsIDAuMDA0NTE3LCAwLjAwNDUyMSwgMC4wMDQ1MjQsIDAuMDA0NTI2LCAwLjAwNDUyNyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNTYzMywgMC4wMDU2NDIsIDAuMDA1NjU3LCAwLjAwNTY2LCAwLjAwNTY2MiwgMC4wMDU2NjUsIDAuMDA1NjY1IiwgXAotICAgICAgICAgICIwLjAwNTYxNCwgMC4wMDU2MjQsIDAuMDA1NjQsIDAuMDA1NjQyLCAwLjAwNTY0NCwgMC4wMDU2NDcsIDAuMDA1NjQ4IiwgXAotICAgICAgICAgICIwLjAwNTYyNCwgMC4wMDU2MzQsIDAuMDA1NjQ4LCAwLjAwNTY1MiwgMC4wMDU2NTUsIDAuMDA1NjU2LCAwLjAwNTY1NiIsIFwKLSAgICAgICAgICAiMC4wMDU2NTcsIDAuMDA1NjY3LCAwLjAwNTY4MywgMC4wMDU2ODYsIDAuMDA1Njg4LCAwLjAwNTY5LCAwLjAwNTY5MSIsIFwKLSAgICAgICAgICAiMC4wMDU3MTMsIDAuMDA1NzIxLCAwLjAwNTczNywgMC4wMDU3NCwgMC4wMDU3NDIsIDAuMDA1NzQ0LCAwLjAwNTc0NSIsIFwKLSAgICAgICAgICAiMC4wMDU4MjksIDAuMDA1ODM3LCAwLjAwNTg1NCwgMC4wMDU4NTgsIDAuMDA1ODU4LCAwLjAwNTg2LCAwLjAwNTg2IiwgXAotICAgICAgICAgICIwLjAwNTk1MywgMC4wMDU5NjIsIDAuMDA1OTc3LCAwLjAwNTk4MSwgMC4wMDU5ODQsIDAuMDA1OTg2LCAwLjAwNTk4NSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzk2NiwgMC4wMDM5NzgsIDAuMDAzOTk3LCAwLjAwNDAwMSwgMC4wMDQwMDQsIDAuMDA0MDA2LCAwLjAwNDAwNiIsIFwKLSAgICAgICAgICAiMC4wMDM5MzYsIDAuMDAzOTQ5LCAwLjAwMzk2OSwgMC4wMDM5NzMsIDAuMDAzOTc2LCAwLjAwMzk3OCwgMC4wMDM5NzgiLCBcCi0gICAgICAgICAgIjAuMDAzOTQ4LCAwLjAwMzk2MSwgMC4wMDM5OCwgMC4wMDM5ODQsIDAuMDAzOTg3LCAwLjAwMzk4OCwgMC4wMDM5ODkiLCBcCi0gICAgICAgICAgIjAuMDAzOTg5LCAwLjAwNDAwMSwgMC4wMDQwMjEsIDAuMDA0MDI1LCAwLjAwNDAyOCwgMC4wMDQwMywgMC4wMDQwMyIsIFwKLSAgICAgICAgICAiMC4wMDQwNTEsIDAuMDA0MDYyLCAwLjAwNDA4MywgMC4wMDQwODcsIDAuMDA0MDksIDAuMDA0MDkyLCAwLjAwNDA5MiIsIFwKLSAgICAgICAgICAiMC4wMDQxNzYsIDAuMDA0MTg4LCAwLjAwNDIwNywgMC4wMDQyMTEsIDAuMDA0MjE0LCAwLjAwNDIxNiwgMC4wMDQyMTYiLCBcCi0gICAgICAgICAgIjAuMDA0MzAzLCAwLjAwNDMxNSwgMC4wMDQzMzQsIDAuMDA0MzQsIDAuMDA0MzQzLCAwLjAwNDM0NSwgMC4wMDQzNDYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQ5NywgMC4wMDQ5OCwgMC4wMDQ5OTUsIDAuMDA0OTk4LCAwLjAwNTAwMSwgMC4wMDUwMDEsIDAuMDA1MDAzIiwgXAotICAgICAgICAgICIwLjAwNDk1MSwgMC4wMDQ5NjEsIDAuMDA0OTc3LCAwLjAwNDk4LCAwLjAwNDk4MywgMC4wMDQ5ODUsIDAuMDA0OTg0IiwgXAotICAgICAgICAgICIwLjAwNDk2MSwgMC4wMDQ5NzEsIDAuMDA0OTg3LCAwLjAwNDk5MSwgMC4wMDQ5OTUsIDAuMDA0OTk3LCAwLjAwNDk5NyIsIFwKLSAgICAgICAgICAiMC4wMDQ5OTYsIDAuMDA1MDA2LCAwLjAwNTAyMywgMC4wMDUwMjcsIDAuMDA1MDI5LCAwLjAwNTAzMSwgMC4wMDUwMzEiLCBcCi0gICAgICAgICAgIjAuMDA1MDU0LCAwLjAwNTA2MywgMC4wMDUwOCwgMC4wMDUwODMsIDAuMDA1MDg1LCAwLjAwNTA4NywgMC4wMDUwODciLCBcCi0gICAgICAgICAgIjAuMDA1MTc0LCAwLjAwNTE4MSwgMC4wMDUxOTgsIDAuMDA1MjAyLCAwLjAwNTIwNCwgMC4wMDUyMDYsIDAuMDA1MjA2IiwgXAotICAgICAgICAgICIwLjAwNTMwMSwgMC4wMDUzMTEsIDAuMDA1MzI2LCAwLjAwNTMzLCAwLjAwNTMzMSwgMC4wMDUzMzQsIDAuMDA1MzMzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0MzksIDAuMDA0NDAyLCAwLjAwNDQyLCAwLjAwNDQyNCwgMC4wMDQ0MjYsIDAuMDA0NDI4LCAwLjAwNDQyOSIsIFwKLSAgICAgICAgICAiMC4wMDQzNjMsIDAuMDA0Mzc1LCAwLjAwNDM5NCwgMC4wMDQzOTcsIDAuMDA0NCwgMC4wMDQ0MDIsIDAuMDA0NDAyIiwgXAotICAgICAgICAgICIwLjAwNDM3OCwgMC4wMDQzOSwgMC4wMDQ0MDksIDAuMDA0NDEzLCAwLjAwNDQxNiwgMC4wMDQ0MTgsIDAuMDA0NDE4IiwgXAotICAgICAgICAgICIwLjAwNDQyMywgMC4wMDQ0MzUsIDAuMDA0NDU0LCAwLjAwNDQ1OCwgMC4wMDQ0NjEsIDAuMDA0NDYzLCAwLjAwNDQ2NCIsIFwKLSAgICAgICAgICAiMC4wMDQ0ODksIDAuMDA0NTAxLCAwLjAwNDUxOSwgMC4wMDQ1MjMsIDAuMDA0NTI1LCAwLjAwNDUyNywgMC4wMDQ1MjgiLCBcCi0gICAgICAgICAgIjAuMDA0NjE4LCAwLjAwNDYzMSwgMC4wMDQ2NDksIDAuMDA0NjUzLCAwLjAwNDY1NiwgMC4wMDQ2NTgsIDAuMDA0NjU4IiwgXAotICAgICAgICAgICIwLjAwNDc1MSwgMC4wMDQ3NjMsIDAuMDA0NzgzLCAwLjAwNDc4NywgMC4wMDQ3OSwgMC4wMDQ3OTIsIDAuMDA0NzkyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1MjUyLCAwLjAwNTI2MiwgMC4wMDUyNzcsIDAuMDA1MjgsIDAuMDA1Mjg0LCAwLjAwNTI4NiwgMC4wMDUyODYiLCBcCi0gICAgICAgICAgIjAuMDA1MjM0LCAwLjAwNTI0NCwgMC4wMDUyNTksIDAuMDA1MjYyLCAwLjAwNTI2NSwgMC4wMDUyNjYsIDAuMDA1MjY2IiwgXAotICAgICAgICAgICIwLjAwNTI0MywgMC4wMDUyNTQsIDAuMDA1MjY5LCAwLjAwNTI3MywgMC4wMDUyNzYsIDAuMDA1Mjc2LCAwLjAwNTI3OCIsIFwKLSAgICAgICAgICAiMC4wMDUyNzYsIDAuMDA1Mjg3LCAwLjAwNTMwNCwgMC4wMDUzMDgsIDAuMDA1MzEsIDAuMDA1MzEyLCAwLjAwNTMxMyIsIFwKLSAgICAgICAgICAiMC4wMDUzMzMsIDAuMDA1MzQ0LCAwLjAwNTM2LCAwLjAwNTM2MywgMC4wMDUzNjUsIDAuMDA1MzY3LCAwLjAwNTM2OCIsIFwKLSAgICAgICAgICAiMC4wMDU0NTIsIDAuMDA1NDYxLCAwLjAwNTQ3OCwgMC4wMDU0ODEsIDAuMDA1NDg0LCAwLjAwNTQ4NSwgMC4wMDU0ODYiLCBcCi0gICAgICAgICAgIjAuMDA1NTc4LCAwLjAwNTU4OCwgMC4wMDU2MDQsIDAuMDA1NjA4LCAwLjAwNTYxLCAwLjAwNTYxMiwgMC4wMDU2MTIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQxNTcsIDAuMDA0MTY5LCAwLjAwNDE4OCwgMC4wMDQxOTIsIDAuMDA0MTk0LCAwLjAwNDE5NiwgMC4wMDQxOTYiLCBcCi0gICAgICAgICAgIjAuMDA0MTI5LCAwLjAwNDE0MiwgMC4wMDQxNiwgMC4wMDQxNjQsIDAuMDA0MTY2LCAwLjAwNDE2OCwgMC4wMDQxNjkiLCBcCi0gICAgICAgICAgIjAuMDA0MTQxLCAwLjAwNDE1MywgMC4wMDQxNzIsIDAuMDA0MTc2LCAwLjAwNDE3OSwgMC4wMDQxODEsIDAuMDA0MTgxIiwgXAotICAgICAgICAgICIwLjAwNDE4MiwgMC4wMDQxOTUsIDAuMDA0MjE1LCAwLjAwNDIxOSwgMC4wMDQyMjEsIDAuMDA0MjIzLCAwLjAwNDIyNCIsIFwKLSAgICAgICAgICAiMC4wMDQyNDcsIDAuMDA0MjU5LCAwLjAwNDI3NiwgMC4wMDQyODEsIDAuMDA0MjgzLCAwLjAwNDI4NSwgMC4wMDQyODYiLCBcCi0gICAgICAgICAgIjAuMDA0MzczLCAwLjAwNDM4NSwgMC4wMDQ0MDQsIDAuMDA0NDA5LCAwLjAwNDQxLCAwLjAwNDQxMiwgMC4wMDQ0MTIiLCBcCi0gICAgICAgICAgIjAuMDA0NTAzLCAwLjAwNDUxNSwgMC4wMDQ1MzQsIDAuMDA0NTM4LCAwLjAwNDU0MSwgMC4wMDQ1NDMsIDAuMDA0NTQ0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUzAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNzc0OSwgMC4wMDc3NiwgMC4wMDc3NzQsIDAuMDA3Nzc3LCAwLjAwNzc3OSwgMC4wMDc3ODIsIDAuMDA3NzgzIiwgXAotICAgICAgICAgICIwLjAwNzczNCwgMC4wMDc3NDQsIDAuMDA3NzU4LCAwLjAwNzc2MiwgMC4wMDc3NjMsIDAuMDA3NzY1LCAwLjAwNzc2NSIsIFwKLSAgICAgICAgICAiMC4wMDc3ODQsIDAuMDA3NzkzLCAwLjAwNzgwOCwgMC4wMDc4MTEsIDAuMDA3ODEzLCAwLjAwNzgxNCwgMC4wMDc4MTUiLCBcCi0gICAgICAgICAgIjAuMDA3ODY4LCAwLjAwNzg3OSwgMC4wMDc4OTQsIDAuMDA3ODk3LCAwLjAwNzg5OSwgMC4wMDc5LCAwLjAwNzg5OSIsIFwKLSAgICAgICAgICAiMC4wMDc5NzMsIDAuMDA3OTgzLCAwLjAwNzk5OCwgMC4wMDgwMDIsIDAuMDA4MDAzLCAwLjAwODAwNiwgMC4wMDgwMDUiLCBcCi0gICAgICAgICAgIjAuMDA4MTgyLCAwLjAwODE5MSwgMC4wMDgyMDcsIDAuMDA4MjA5LCAwLjAwODIxMSwgMC4wMDgyMTUsIDAuMDA4MjEzIiwgXAotICAgICAgICAgICIwLjAwODM2MiwgMC4wMDgzNywgMC4wMDgzODQsIDAuMDA4Mzg3LCAwLjAwODM4OSwgMC4wMDgzOSwgMC4wMDgzOTEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTA2MjUsIDAuMDEwNjM3LCAwLjAxMDY1NSwgMC4wMTA2NTksIDAuMDEwNjYxLCAwLjAxMDY2MywgMC4wMTA2NjQiLCBcCi0gICAgICAgICAgIjAuMDEwNjIxLCAwLjAxMDYzMywgMC4wMTA2NTEsIDAuMDEwNjU1LCAwLjAxMDY1OCwgMC4wMTA2NTksIDAuMDEwNjYiLCBcCi0gICAgICAgICAgIjAuMDEwNzI0LCAwLjAxMDczNywgMC4wMTA3NTUsIDAuMDEwNzU5LCAwLjAxMDc2MSwgMC4wMTA3NjMsIDAuMDEwNzY0IiwgXAotICAgICAgICAgICIwLjAxMDg5NiwgMC4wMTA5MDgsIDAuMDEwOTI3LCAwLjAxMDkzMSwgMC4wMTA5MzMsIDAuMDEwOTM1LCAwLjAxMDkzNiIsIFwKLSAgICAgICAgICAiMC4wMTExMDksIDAuMDExMTIsIDAuMDExMTM5LCAwLjAxMTE0NCwgMC4wMTExNDYsIDAuMDExMTQ4LCAwLjAxMTE0OCIsIFwKLSAgICAgICAgICAiMC4wMTE0MjgsIDAuMDExNDM3LCAwLjAxMTQ1OCwgMC4wMTE0NjMsIDAuMDExNDY0LCAwLjAxMTQ2NywgMC4wMTE0NjciLCBcCi0gICAgICAgICAgIjAuMDExNjk2LCAwLjAxMTcxLCAwLjAxMTcyNywgMC4wMTE3MzEsIDAuMDExNzMzLCAwLjAxMTczNiwgMC4wMTE3MzYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTMSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0MzIsIDAuMDA0MzMxLCAwLjAwNDM0OSwgMC4wMDQzNTQsIDAuMDA0MzU2LCAwLjAwNDM1OCwgMC4wMDQzNTgiLCBcCi0gICAgICAgICAgIjAuMDA0MzM4LCAwLjAwNDM0OCwgMC4wMDQzNjUsIDAuMDA0MzY5LCAwLjAwNDM3MywgMC4wMDQzNzUsIDAuMDA0Mzc2IiwgXAotICAgICAgICAgICIwLjAwNDQyNywgMC4wMDQ0NDMsIDAuMDA0NDU4LCAwLjAwNDQ2MiwgMC4wMDQ0NjUsIDAuMDA0NDY2LCAwLjAwNDQ2NyIsIFwKLSAgICAgICAgICAiMC4wMDQ1NDMsIDAuMDA0NTUxLCAwLjAwNDU2NCwgMC4wMDQ1NjcsIDAuMDA0NTY5LCAwLjAwNDU3MSwgMC4wMDQ1NzEiLCBcCi0gICAgICAgICAgIjAuMDA0NjcxLCAwLjAwNDY3OCwgMC4wMDQ2ODMsIDAuMDA0Njg1LCAwLjAwNDY4NywgMC4wMDQ2ODgsIDAuMDA0Njg4IiwgXAotICAgICAgICAgICIwLjAwNDg5LCAwLjAwNDksIDAuMDA0OTA3LCAwLjAwNDkwOCwgMC4wMDQ5MDgsIDAuMDA0OTEsIDAuMDA0OTA5IiwgXAotICAgICAgICAgICIwLjAwNTE0OCwgMC4wMDUxNTQsIDAuMDA1MTU4LCAwLjAwNTE1OCwgMC4wMDUxNTYsIDAuMDA1MTU2LCAwLjAwNTE1NiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzI0OCwgMC4wMDMyNjIsIDAuMDAzMjgzLCAwLjAwMzI4OCwgMC4wMDMyOTEsIDAuMDAzMjkzLCAwLjAwMzI5MyIsIFwKLSAgICAgICAgICAiMC4wMDMyNTgsIDAuMDAzMjcxLCAwLjAwMzI5MiwgMC4wMDMyOTcsIDAuMDAzMywgMC4wMDMzMDIsIDAuMDAzMzAzIiwgXAotICAgICAgICAgICIwLjAwMzM0MywgMC4wMDMzNTYsIDAuMDAzMzc3LCAwLjAwMzM4MSwgMC4wMDMzODQsIDAuMDAzMzg3LCAwLjAwMzM4OCIsIFwKLSAgICAgICAgICAiMC4wMDM0NjMsIDAuMDAzNDc0LCAwLjAwMzQ5MiwgMC4wMDM0OTYsIDAuMDAzNDk5LCAwLjAwMzUwMSwgMC4wMDM1MDIiLCBcCi0gICAgICAgICAgIjAuMDAzNTg2LCAwLjAwMzU5OSwgMC4wMDM2MTUsIDAuMDAzNjE5LCAwLjAwMzYyMSwgMC4wMDM2MjMsIDAuMDAzNjI0IiwgXAotICAgICAgICAgICIwLjAwMzgxOCwgMC4wMDM4MjksIDAuMDAzODQzLCAwLjAwMzg0NSwgMC4wMDM4NDcsIDAuMDAzODQ5LCAwLjAwMzg0OSIsIFwKLSAgICAgICAgICAiMC4wMDQwMjcsIDAuMDA0MDM2LCAwLjAwNDA1LCAwLjAwNDA1MiwgMC4wMDQwNTMsIDAuMDA0MDUzLCAwLjAwNDA1NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBOQU5ENEJYMSAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoTkFORDRCWDEpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC40MzcwMDI7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEFOKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2NTkxMDU7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjU5MTA1OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDY1OTA1MTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA1MjUsIDAuMDAwNTM0LCAwLjAwMDYxNywgMC4wMDA3MjgsIDAuMDAwODU0LCAwLjAwMTA4MywgMC4wMDEyNzkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDE4MywgMC4wMDE4NDQsIDAuMDAxOTI1LCAwLjAwMjAzMywgMC4wMDIxNjMsIDAuMDAyMzk2LCAwLjAwMjU3NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwOTM1MzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA5MzUzOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDkzMzY4OTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA1MjQsIDAuMDAwNTI0LCAwLjAwMDUyNCwgMC4wMDA1MjQsIDAuMDAwNTI0LCAwLjAwMDUyMywgMC4wMDA1MjMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA1MjUsIDAuMDAwNTI1LCAwLjAwMDUyNiwgMC4wMDA1MjUsIDAuMDAwNTI1LCAwLjAwMDUyNSwgMC4wMDA1MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEMpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDk0NTcwNTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA5NDU3MDU7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwOTQ0NjE2OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDUyNCwgMC4wMDA1MjQsIDAuMDAwNTI0LCAwLjAwMDUyNCwgMC4wMDA1MjQsIDAuMDAwNTIzLCAwLjAwMDUyMyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDUyNSwgMC4wMDA1MjUsIDAuMDAwNTI2LCAwLjAwMDUyNiwgMC4wMDA1MjYsIDAuMDAwNTI2LCAwLjAwMDUyNiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwOTQ1Mjk4OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDk0NDc4NTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA5NDUyOTg7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzIsIDAuMDAwMzE5LCAwLjAwMDMxOSwgMC4wMDAzMTksIDAuMDAwMzE5LCAwLjAwMDMxOSwgMC4wMDAzMTkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA1OTUsIDAuMDAwNTk2LCAwLjAwMDU5NiwgMC4wMDA1OTYsIDAuMDAwNTk2LCAwLjAwMDU5NiwgMC4wMDA1OTYiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4xMDA2NTE7Ci0gICAgZnVuY3Rpb24gOiAiKCEoKCgoIUFOKSBCKSBDKSBEKSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkFOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTMxMjQsIDAuMDcxOSwgMC4xNzc3NDUsIDAuMjcwODA0LCAwLjM5NTIxNywgMC42NDM2MTcsIDAuNzk5MTU0IiwgXAotICAgICAgICAgICIwLjA2MDc0OCwgMC4wNzk1MzEsIDAuMTg1NDUyLCAwLjI3ODU4LCAwLjQwMjgwNCwgMC42NTA4MTksIDAuODA3MTk2IiwgXAotICAgICAgICAgICIwLjA2NzI1NiwgMC4wODYwMzcsIDAuMTkxOTIsIDAuMjg1MTU1LCAwLjQwOTM5NiwgMC42NTc3ODksIDAuODEzNTE5IiwgXAotICAgICAgICAgICIwLjA3MjEzLCAwLjA5MDkwNCwgMC4xOTY3MTUsIDAuMjg5OTg5LCAwLjQxNDI5NywgMC42NjMwNjcsIDAuODE3OTM4IiwgXAotICAgICAgICAgICIwLjA3NTkwNywgMC4wOTQ3MDksIDAuMjAwNjU5LCAwLjI5MzkwOCwgMC40MTgxMjQsIDAuNjY2NjExLCAwLjgyMTY4MyIsIFwKLSAgICAgICAgICAiMC4wODEyLCAwLjEwMDAyOCwgMC4yMDU3MTMsIDAuMjk4OTIyLCAwLjQyMzEzMSwgMC42NzE1OTIsIDAuODI2ODYxIiwgXAotICAgICAgICAgICIwLjA4NTMzMSwgMC4xMDQwNjMsIDAuMjA5Nzk4LCAwLjMwMjkyNCwgMC40MjcyMywgMC42NzU1NTEsIDAuODMwODkzIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4MDk0OSwgMC4xMjAxMTYsIDAuMzQyNDk2LCAwLjUzODYyMywgMC44MDA0MDEsIDEuMzIzNDYsIDEuNjUxMTYiLCBcCi0gICAgICAgICAgIjAuMDgxMDI0LCAwLjEyMDE1LCAwLjM0MjU2LCAwLjUzODcwOCwgMC44MDA2MDgsIDEuMzIzNTQsIDEuNjUxNTEiLCBcCi0gICAgICAgICAgIjAuMDgxMzgzLCAwLjEyMDI1NiwgMC4zNDI0NzIsIDAuNTM4NzU0LCAwLjgwMDUyMiwgMS4zMjM3NywgMS42NTEyMSIsIFwKLSAgICAgICAgICAiMC4wODE3MjYsIDAuMTIwNDk0LCAwLjM0MjQ5OSwgMC41Mzg3MDYsIDAuODAwNTYxLCAxLjMyNDM1LCAxLjY1MDgxIiwgXAotICAgICAgICAgICIwLjA4MjE1OSwgMC4xMjA2NDMsIDAuMzQyNTY0LCAwLjUzODcyLCAwLjgwMDMzOCwgMS4zMjM4OCwgMS42NTE4NiIsIFwKLSAgICAgICAgICAiMC4wODI4MTMsIDAuMTIxMTk0LCAwLjM0MjU1OCwgMC41Mzg3NjQsIDAuODAwNTk1LCAxLjMyMzQyLCAxLjY1MTY3IiwgXAotICAgICAgICAgICIwLjA4MzQxNiwgMC4xMjE0ODgsIDAuMzQyNTU5LCAwLjUzODgxOSwgMC44MDA0NzcsIDEuMzI0MzMsIDEuNjUwNDMiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTM2NjA1LCAwLjE5NTQ1MiwgMC41MjkxMiwgMC44MjM1MDcsIDEuMjE1NjksIDEuOTk5MDMsIDIuNDkwNDYiLCBcCi0gICAgICAgICAgIjAuMTQzODk3LCAwLjIwMjgyMSwgMC41MzY2NTYsIDAuODMwNzA5LCAxLjIyMjQ5LCAyLjAwNjQ2LCAyLjQ5NzgxIiwgXAotICAgICAgICAgICIwLjE0OTYyOSwgMC4yMDg1OTMsIDAuNTQyNTE2LCAwLjgzNjgxOCwgMS4yMjg4LCAyLjAxMzk1LCAyLjUwMzc1IiwgXAotICAgICAgICAgICIwLjE1MzczMywgMC4yMTI2NTksIDAuNTQ2Mjk0LCAwLjg0MDI5MSwgMS4yMzI0OCwgMi4wMTgzOCwgMi41MDc4NCIsIFwKLSAgICAgICAgICAiMC4xNTY5MTcsIDAuMjE1ODMzLCAwLjU0OTgxMywgMC44NDM1NDksIDEuMjM2MDEsIDIuMDIxMTksIDIuNTExMjMiLCBcCi0gICAgICAgICAgIjAuMTYxMTE0LCAwLjIxOTk5MywgMC41NTM1MzQsIDAuODQ3NzMsIDEuMjM5OTIsIDIuMDI0MzQsIDIuNTE0ODciLCBcCi0gICAgICAgICAgIjAuMTY0MjA1LCAwLjIyMzEwMywgMC41NTY2MTUsIDAuODUwNzYxLCAxLjI0Mjg2LCAyLjAyNzIzLCAyLjUxODg2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIzNjk3NCwgMC4zNTc5NzMsIDEuMDQwMDIsIDEuNjQyNDYsIDIuNDQ1ODMsIDQuMDU4MTgsIDUuMDU0OTQiLCBcCi0gICAgICAgICAgIjAuMjM2OTg4LCAwLjM1Nzk4NywgMS4wNDAwOCwgMS42NDI0MiwgMi40NDU5MiwgNC4wNTgxNiwgNS4wNTU3MiIsIFwKLSAgICAgICAgICAiMC4yMzY5MDcsIDAuMzU3NDU0LCAxLjA0MDA2LCAxLjY0MjQyLCAyLjQ0NjExLCA0LjA1MTg5LCA1LjA1NDIyIiwgXAotICAgICAgICAgICIwLjIzNzMxNSwgMC4zNTc5MzYsIDEuMDQxNzksIDEuNjQzNzMsIDIuNDQ2MzMsIDQuMDUxODQsIDUuMDU1MjMiLCBcCi0gICAgICAgICAgIjAuMjM2OTAxLCAwLjM1Nzg1MywgMS4wNDAwOSwgMS42NDQ5NywgMi40NDk2NiwgNC4wNTE4OCwgNS4wNjQxNSIsIFwKLSAgICAgICAgICAiMC4yMzY5MjIsIDAuMzU3ODE1LCAxLjA0MTYzLCAxLjY0MjU1LCAyLjQ0OTM2LCA0LjA1ODM1LCA1LjA1NTkzIiwgXAotICAgICAgICAgICIwLjIzNjgwNywgMC4zNTczMzIsIDEuMDQxNTgsIDEuNjQyNjEsIDIuNDQ5MzEsIDQuMDU4MSwgNS4wNTU4MyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDEyOTksIDAuMDU5OTkxLCAwLjE2NTc2NywgMC4yNTg4MjUsIDAuMzgzMzM3LCAwLjYzMTg5NSwgMC43ODcwOCIsIFwKLSAgICAgICAgICAiMC4wNDk0ODQsIDAuMDY4MTcyLCAwLjE3MzkxNCwgMC4yNjY5NjYsIDAuMzkxNDgyLCAwLjYzOTg1MywgMC43OTUzMTQiLCBcCi0gICAgICAgICAgIjAuMDU5NzM2LCAwLjA3ODM0MywgMC4xODQwMiwgMC4yNzcxODksIDAuNDAxMjEsIDAuNjQ5OTUzLCAwLjgwNTI3NyIsIFwKLSAgICAgICAgICAiMC4wNzA1NTEsIDAuMDg4Nzc3LCAwLjE5NDIwNywgMC4yODc0NTksIDAuNDExNTc4LCAwLjY1OTk3NiwgMC44MTUwNDMiLCBcCi0gICAgICAgICAgIjAuMDc5NDc5LCAwLjEwMDAyMywgMC4yMDQ1NDcsIDAuMjk3NjkzLCAwLjQyMTg4LCAwLjY3MDA0MSwgMC44MjUyODciLCBcCi0gICAgICAgICAgIjAuMDkxMDM3LCAwLjExNTAxNywgMC4yMjEyOTIsIDAuMzE0MjkyLCAwLjQzODU5NSwgMC42ODY4MjYsIDAuODQyMDI1IiwgXAotICAgICAgICAgICIwLjA5OTM1LCAwLjEyNTk1OCwgMC4yMzYwMzUsIDAuMzI4OTM3LCAwLjQ1Mjk5OSwgMC43MDEzNzUsIDAuODU2NTg3Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3ODk1OSwgMC4xMTgyMTEsIDAuMzQwODAyLCAwLjUzNzA1OCwgMC43OTkyMjgsIDEuMzIyNDgsIDEuNjQ4OTciLCBcCi0gICAgICAgICAgIjAuMDgwMDkzLCAwLjExODQ4NSwgMC4zNDA3NCwgMC41MzY4ODksIDAuNzk4OTQ2LCAxLjMyMTkyLCAxLjY0OTMxIiwgXAotICAgICAgICAgICIwLjA4NjQ2OCwgMC4xMjI3NjQsIDAuMzQwNzMxLCAwLjUzNzEyNywgMC43OTg2MDQsIDEuMzIyMjMsIDEuNjQ5MjIiLCBcCi0gICAgICAgICAgIjAuMDk0MTIxLCAwLjEyOTc1OCwgMC4zNDE4OTQsIDAuNTM3MTI0LCAwLjc5ODcyOSwgMS4zMjIwMSwgMS42NDg3OCIsIFwKLSAgICAgICAgICAiMC4xMDMzMzgsIDAuMTM3MDUxLCAwLjM0NTIyMywgMC41Mzc0MjQsIDAuNzk4NTg1LCAxLjMyMTYxLCAxLjY0ODYzIiwgXAotICAgICAgICAgICIwLjExODgwNSwgMC4xNTExODYsIDAuMzUzMjk4LCAwLjU0MTQ0MywgMC43OTkwMDUsIDEuMzIxODcsIDEuNjQ4OTYiLCBcCi0gICAgICAgICAgIjAuMTMxNjUzLCAwLjE2NDY2MiwgMC4zNjIxNzIsIDAuNTQ3MTgsIDAuODAxNjE5LCAxLjMyMTUzLCAxLjY0ODg5Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEyNDUzLCAwLjE4MzM5NiwgMC41MTY4ODQsIDAuODExMjM5LCAxLjIwNDI5LCAxLjk4Njg5LCAyLjQ3ODM4IiwgXAotICAgICAgICAgICIwLjEzMDAzLCAwLjE4ODkzMSwgMC41MjI1MzcsIDAuODE2NjI0LCAxLjIwODYyLCAxLjk5Mzk2LCAyLjQ4MzQiLCBcCi0gICAgICAgICAgIjAuMTM2MTA2LCAwLjE5NTE5NywgMC41MjkyNzcsIDAuODIzMjYxLCAxLjIxNTkzLCAyLjAwMTM2LCAyLjQ5MDMiLCBcCi0gICAgICAgICAgIjAuMTQyMzgsIDAuMjAxNTI1LCAwLjUzNTU4OSwgMC44Mjk1NjQsIDEuMjIxNzMsIDIuMDA2NzUsIDIuNDk3MTUiLCBcCi0gICAgICAgICAgIjAuMTQ4OTQzLCAwLjIwNzY5NiwgMC41NDE2ODcsIDAuODM2MTg5LCAxLjIyOTIzLCAyLjAxMzcxLCAyLjUwMjUiLCBcCi0gICAgICAgICAgIjAuMTU5NDkyLCAwLjIxODA5MSwgMC41NTE4MywgMC44NDYxODksIDEuMjM4NTksIDIuMDIzMDUsIDIuNTEzMTgiLCBcCi0gICAgICAgICAgIjAuMTY4NjAzLCAwLjIyNzkwNSwgMC41NjA5NjYsIDAuODU1NzI4LCAxLjI0OCwgMi4wMzM5NywgMi41MjMxNSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMzcxNzgsIDAuMzU3NDU4LCAxLjA0MTgsIDEuNjQ1MzgsIDIuNDQ1MzgsIDQuMDU0MDMsIDUuMDU1MTYiLCBcCi0gICAgICAgICAgIjAuMjM2OTQ5LCAwLjM1Nzk2NSwgMS4wNDAwOSwgMS42NDI2MSwgMi40NDkzNCwgNC4wNTEzMSwgNS4wNTU5NiIsIFwKLSAgICAgICAgICAiMC4yMzczMzcsIDAuMzU3NDM2LCAxLjAzOTk0LCAxLjY0NTE2LCAyLjQ0NTU2LCA0LjA1MTcsIDUuMDYzNTkiLCBcCi0gICAgICAgICAgIjAuMjM5MzMxLCAwLjM1ODY4MywgMS4wNDAwOSwgMS42NDI2NCwgMi40NDU5LCA0LjA1MjQsIDUuMDY0MDIiLCBcCi0gICAgICAgICAgIjAuMjQxOTQ5LCAwLjM1OTU5NiwgMS4wNDE2OCwgMS42NDI1MiwgMi40NDU0NywgNC4wNTE5LCA1LjA2MjgyIiwgXAotICAgICAgICAgICIwLjI0NzM5OCwgMC4zNjM3MzksIDEuMDQxNjIsIDEuNjQ0ODksIDIuNDQ1ODgsIDQuMDU4NCwgNS4wNTYzOSIsIFwKLSAgICAgICAgICAiMC4yNTMyMjMsIDAuMzY4NTcsIDEuMDQwNzUsIDEuNjQ1MjksIDIuNDQ5NzcsIDQuMDUxNTIsIDUuMDU1NjMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQwMTkxLCAwLjA1ODg1NywgMC4xNjQ1MzksIDAuMjU3NTc3LCAwLjM4MTk1NSwgMC42MzA2MzEsIDAuNzg1Nzc5IiwgXAotICAgICAgICAgICIwLjA0ODQxNiwgMC4wNjcwNzMsIDAuMTcyNjU1LCAwLjI2NTcyMywgMC4zOTAyMzgsIDAuNjM4NTYzLCAwLjc5MzkyNiIsIFwKLSAgICAgICAgICAiMC4wNTg2NzIsIDAuMDc3MjMsIDAuMTgyODAxLCAwLjI3NTg5MSwgMC40MDAxNzcsIDAuNjQ4OTIzLCAwLjgwNDMzNyIsIFwKLSAgICAgICAgICAiMC4wNjk0MiwgMC4wODc2NjYsIDAuMTkzMDM0LCAwLjI4NjI3NSwgMC40MTAzNDgsIDAuNjU4NzM1LCAwLjgxMzc4NSIsIFwKLSAgICAgICAgICAiMC4wNzgwNywgMC4wOTg5MzgsIDAuMjAzMzYsIDAuMjk2NDk3LCAwLjQyMDY1MSwgMC42Njg4MTgsIDAuODI0MDIxIiwgXAotICAgICAgICAgICIwLjA4OTMyNCwgMC4xMTM2NzksIDAuMjIwMDk5LCAwLjMxMzA5OSwgMC40MzczOTMsIDAuNjg1NjAzLCAwLjg0MDkyMSIsIFwKLSAgICAgICAgICAiMC4wOTczMjgsIDAuMTI0NDAyLCAwLjIzNDgyNywgMC4zMjc3MDMsIDAuNDUxNzgyLCAwLjcwMDE4NywgMC44NTUzMzkiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc3NTA0LCAwLjExNjc3NSwgMC4zMzkzMDgsIDAuNTM1MjgyLCAwLjc5NzAxMywgMS4zMjA0NCwgMS42NDcxMyIsIFwKLSAgICAgICAgICAiMC4wNzg2OTIsIDAuMTE3MDA1LCAwLjMzOTE1NywgMC41MzUzOTEsIDAuNzk3MTk1LCAxLjMyMDA1LCAxLjY0NzU3IiwgXAotICAgICAgICAgICIwLjA4NTE1MywgMC4xMjEzODYsIDAuMzM5MjE1LCAwLjUzNTQwNiwgMC43OTcxMjMsIDEuMzIwNTksIDEuNjQ3NTUiLCBcCi0gICAgICAgICAgIjAuMDkyODc2LCAwLjEyODQ3MSwgMC4zNDAzNjYsIDAuNTM1NDM3LCAwLjc5NzExLCAxLjMyMDcsIDEuNjQ2ODIiLCBcCi0gICAgICAgICAgIjAuMTAyMjA2LCAwLjEzNTg5OCwgMC4zNDM4MywgMC41MzU3NDksIDAuNzk2NzM3LCAxLjMxOTg3LCAxLjY0NzkxIiwgXAotICAgICAgICAgICIwLjExNzYzNCwgMC4xNTAwMjUsIDAuMzUxODkzLCAwLjUzOTkwOSwgMC43OTczNTYsIDEuMzIwNTUsIDEuNjQ2OTkiLCBcCi0gICAgICAgICAgIjAuMTMwNTI3LCAwLjE2MzUyNywgMC4zNjA3OTQsIDAuNTQ1NTcyLCAwLjc5OTg3MiwgMS4zMjAzOSwgMS42NDc4NSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMjE2MzYsIDAuMTgwNTM2LCAwLjUxMzk4MiwgMC44MDg0OCwgMS4yMDA5MiwgMS45ODQ3MiwgMi40NzQ4NCIsIFwKLSAgICAgICAgICAiMC4xMjc4MTcsIDAuMTg2NzQ5LCAwLjUyMDMzNCwgMC44MTQ0MDMsIDEuMjA2NDgsIDEuOTkxNDIsIDIuNDgxMjEiLCBcCi0gICAgICAgICAgIjAuMTM1NjY0LCAwLjE5NDcxNCwgMC41Mjg0MDgsIDAuODIyNjk4LCAxLjIxNTExLCAxLjk5OTU3LCAyLjQ4OTY3IiwgXAotICAgICAgICAgICIwLjE0MzcyMSwgMC4yMDI3NjksIDAuNTM2ODEsIDAuODMwNjY5LCAxLjIyMjg1LCAyLjAwNzgyLCAyLjQ5ODY4IiwgXAotICAgICAgICAgICIwLjE1MjEzNSwgMC4yMTA3ODYsIDAuNTQ0NjUxLCAwLjgzODg3MywgMS4yMzEwOSwgMi4wMTcxNiwgMi41MDY3OCIsIFwKLSAgICAgICAgICAiMC4xNjU1MiwgMC4yMjQ0MDQsIDAuNTU3ODEsIDAuODUxOTI4LCAxLjI0NDE3LCAyLjAyOTgsIDIuNTE4NjgiLCBcCi0gICAgICAgICAgIjAuMTc3MzM5LCAwLjIzNjA5OCwgMC41NjkzNjgsIDAuODYzNzM4LCAxLjI1NTgxLCAyLjA0MDEsIDIuNTMxNDMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjM2OTkzLCAwLjM1ODAyNCwgMS4wNDE4NSwgMS42NDI0NiwgMi40NDU2LCA0LjA1ODY1LCA1LjA2MzUiLCBcCi0gICAgICAgICAgIjAuMjM3MzgxLCAwLjM1Nzk4MywgMS4wNDAwNiwgMS42NDI1NSwgMi40NDU4MiwgNC4wNTg4LCA1LjA1NTgiLCBcCi0gICAgICAgICAgIjAuMjM3Nzc2LCAwLjM1NzM4NSwgMS4wNDE2NywgMS42NDI2NCwgMi40NDk2OCwgNC4wNTg2MywgNS4wNjM0MiIsIFwKLSAgICAgICAgICAiMC4yMzk2NTksIDAuMzU4Njg1LCAxLjA0MDA5LCAxLjY0NDk1LCAyLjQ0NzMyLCA0LjA1ODc1LCA1LjA1NTYyIiwgXAotICAgICAgICAgICIwLjI0MzQ5NiwgMC4zNjAwMDMsIDEuMDQwMSwgMS42NDQ5NCwgMi40NDU5MSwgNC4wNTE3MiwgNS4wNTUyNSIsIFwKLSAgICAgICAgICAiMC4yNTEwMjEsIDAuMzY1ODM5LCAxLjA0MDEyLCAxLjY0MjU1LCAyLjQ0NjY0LCA0LjA1MTg5LCA1LjA1NzI1IiwgXAotICAgICAgICAgICIwLjI1ODY4OSwgMC4zNzE2MzgsIDEuMDQwMzgsIDEuNjQ1MDQsIDIuNDQ5MzYsIDQuMDU4MTYsIDUuMDU1MzYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM4OTc2LCAwLjA1NzYyMiwgMC4xNjMxODEsIDAuMjU2MzMsIDAuMzgwNjg3LCAwLjYyOTE0OCwgMC43ODQ0NDYiLCBcCi0gICAgICAgICAgIjAuMDQ3MTk4LCAwLjA2NTgzOSwgMC4xNzE0NDcsIDAuMjY0NTQ4LCAwLjM4ODc0NCwgMC42MzcxNCwgMC43OTI3MjkiLCBcCi0gICAgICAgICAgIjAuMDU3NTc4LCAwLjA3NjEyOSwgMC4xODE2MjUsIDAuMjc0ODE5LCAwLjM5ODg2NywgMC42NDc2ODcsIDAuODAyNDM1IiwgXAotICAgICAgICAgICIwLjA2NzczOSwgMC4wODY2ODYsIDAuMTkyMDM5LCAwLjI4NTM1OSwgMC40MDkzNjQsIDAuNjU3NzUxLCAwLjgxMjc4OSIsIFwKLSAgICAgICAgICAiMC4wNzYzMjUsIDAuMDk3MjE4LCAwLjIwMjU2LCAwLjI5NTY0NSwgMC40MTk3OTgsIDAuNjY3OTAyLCAwLjgyMzE4NyIsIFwKLSAgICAgICAgICAiMC4wODcwOCwgMC4xMTE4MTQsIDAuMjE5MjkyLCAwLjMxMjMzOCwgMC40MzY2MDQsIDAuNjg0ODExLCAwLjg0MDM2NiIsIFwKLSAgICAgICAgICAiMC4wOTU0MjQsIDAuMTIyLCAwLjIzNDAzMiwgMC4zMjY5OTgsIDAuNDUxMDg3LCAwLjY5OTQxNSwgMC44NTQ1NjciKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc1OTMxLCAwLjExNTIwMSwgMC4zMzgwMTgsIDAuNTMzNDYxLCAwLjc5NTM3MSwgMS4zMTg1OSwgMS42NDYwNiIsIFwKLSAgICAgICAgICAiMC4wNzcyNzMsIDAuMTE1NjU1LCAwLjMzNzc1NCwgMC41MzQyNzQsIDAuNzk0OTQ1LCAxLjMxOTg0LCAxLjY0NjQxIiwgXAotICAgICAgICAgICIwLjA4MzY5NSwgMC4xMjAwMzQsIDAuMzM4MDU2LCAwLjUzNDA4LCAwLjc5NDk3MiwgMS4zMTgyNywgMS42NDc0NSIsIFwKLSAgICAgICAgICAiMC4wOTIwOSwgMC4xMjY4NjQsIDAuMzM5MjUxLCAwLjUzMzY0MywgMC43OTU2NDMsIDEuMzE5NDYsIDEuNjQ0NjMiLCBcCi0gICAgICAgICAgIjAuMTAxNjY2LCAwLjEzNTAyOSwgMC4zNDIwMjIsIDAuNTM0MTM5LCAwLjc5NTA2OCwgMS4zMTgyMSwgMS42NDQ2OCIsIFwKLSAgICAgICAgICAiMC4xMTgxMzMsIDAuMTQ5NzI4LCAwLjM1MDM1MiwgMC41MzgzODYsIDAuNzk1NjM5LCAxLjMxOTgxLCAxLjY0NTU2IiwgXAotICAgICAgICAgICIwLjEyOTQ4LCAwLjE2Mzc0NywgMC4zNTkwMTQsIDAuNTQzODUsIDAuNzk3ODI1LCAxLjMxODkxLCAxLjY0NzE2Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExNzIzMiwgMC4xNzYyODYsIDAuNTA5NjU1LCAwLjgwNDAwOCwgMS4xOTYxNiwgMS45Nzk3MiwgMi40NzExOCIsIFwKLSAgICAgICAgICAiMC4xMjM3ODUsIDAuMTgyNzkxLCAwLjUxNjI3NywgMC44MTAzNjgsIDEuMjAyNDQsIDEuOTg2NDksIDIuNDc2OTciLCBcCi0gICAgICAgICAgIjAuMTMyNDM4LCAwLjE5MTQxMiwgMC41MjQ4NjQsIDAuODE5MDc4LCAxLjIxMjA4LCAxLjk5NTM2LCAyLjQ4NjQyIiwgXAotICAgICAgICAgICIwLjE0MTE4MiwgMC4xOTk5MTcsIDAuNTMzNzMsIDAuODI3NTMsIDEuMjE5NjksIDIuMDA0NTksIDIuNDk1MDYiLCBcCi0gICAgICAgICAgIjAuMTUwMzM0LCAwLjIwODg3NSwgMC41NDE5MTksIDAuODM2MjY0LCAxLjIyOTE3LCAyLjAxMzI3LCAyLjUwMzUxIiwgXAotICAgICAgICAgICIwLjE2NTMxOSwgMC4yMjM0OTEsIDAuNTU1ODk1LCAwLjg1MDA2NiwgMS4yNDE4NywgMi4wMjU5MiwgMi41MTc1NiIsIFwKLSAgICAgICAgICAiMC4xNzg4NDUsIDAuMjM2NTU5LCAwLjU2ODYwMiwgMC44NjIyMTQsIDEuMjU0NTQsIDIuMDM5OSwgMi41MjgwNSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMzczMTUsIDAuMzU3NDMzLCAxLjA0MTg1LCAxLjY0MjI1LCAyLjQ0NTk4LCA0LjA1MjYyLCA1LjA1NDA5IiwgXAotICAgICAgICAgICIwLjIzNzI5NCwgMC4zNTc0NCwgMS4wNDE2OCwgMS42NDQ5NCwgMi40NDY5OCwgNC4wNTI1NiwgNS4wNTY0OSIsIFwKLSAgICAgICAgICAiMC4yMzc2NzYsIDAuMzU4MDE0LCAxLjA0MTcsIDEuNjQyNTgsIDIuNDQ1NTgsIDQuMDUyMDksIDUuMDU2NDYiLCBcCi0gICAgICAgICAgIjAuMjQwMjI0LCAwLjM1ODY0OCwgMS4wNDAxLCAxLjY0MjY0LCAyLjQ0NTc5LCA0LjA1MjI3LCA1LjA2NDA4IiwgXAotICAgICAgICAgICIwLjI0NTAxMSwgMC4zNjA3NDYsIDEuMDQwMTEsIDEuNjQyNjgsIDIuNDQ1NTUsIDQuMDU4OTUsIDUuMDYzOTMiLCBcCi0gICAgICAgICAgIjAuMjU0NDY0LCAwLjM2NzUxNSwgMS4wNDE2NiwgMS42NDUxOSwgMi40NDkzNiwgNC4wNTgyLCA1LjA1NTEzIiwgXAotICAgICAgICAgICIwLjI2NDA4LCAwLjM3NTI2MSwgMS4wNDAyOCwgMS42NDUxLCAyLjQ0OTg3LCA0LjA1MTcsIDUuMDYyNzgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzOTMyLCAwLjAwMzkzMywgMC4wMDM5MzMsIDAuMDAzOTMzLCAwLjAwMzkzMywgMC4wMDM5MzIsIDAuMDAzOTMyIiwgXAotICAgICAgICAgICIwLjAwMzk0NCwgMC4wMDM5NDUsIDAuMDAzOTQ2LCAwLjAwMzk0NiwgMC4wMDM5NDYsIDAuMDAzOTQ1LCAwLjAwMzk0NSIsIFwKLSAgICAgICAgICAiMC4wMDQwMjIsIDAuMDA0MDIyLCAwLjAwNDAyMywgMC4wMDQwMjMsIDAuMDA0MDIzLCAwLjAwNDAyMywgMC4wMDQwMjIiLCBcCi0gICAgICAgICAgIjAuMDA0MTI3LCAwLjAwNDEyNywgMC4wMDQxMjgsIDAuMDA0MTI3LCAwLjAwNDEyOCwgMC4wMDQxMjcsIDAuMDA0MTI2IiwgXAotICAgICAgICAgICIwLjAwNDI2MSwgMC4wMDQyNiwgMC4wMDQyNSwgMC4wMDQyNSwgMC4wMDQyNTEsIDAuMDA0MjUxLCAwLjAwNDI1OSIsIFwKLSAgICAgICAgICAiMC4wMDQ0NjEsIDAuMDA0NDYsIDAuMDA0NDczLCAwLjAwNDQ3MiwgMC4wMDQ0NTksIDAuMDA0NDYsIDAuMDA0NDcxIiwgXAotICAgICAgICAgICIwLjAwNDY3MSwgMC4wMDQ2NTgsIDAuMDA0NjY4LCAwLjAwNDY2OCwgMC4wMDQ2NjYsIDAuMDA0NjUxLCAwLjAwNDY1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzMTkxLCAwLjAwMzE5NSwgMC4wMDMyLCAwLjAwMzIwMSwgMC4wMDMyMDEsIDAuMDAzMjAyLCAwLjAwMzIwMiIsIFwKLSAgICAgICAgICAiMC4wMDMxOTQsIDAuMDAzMjAyLCAwLjAwMzIxMiwgMC4wMDMyMTQsIDAuMDAzMjE1LCAwLjAwMzIxNiwgMC4wMDMyMTYiLCBcCi0gICAgICAgICAgIjAuMDAzMjY5LCAwLjAwMzI3OSwgMC4wMDMyOTIsIDAuMDAzMjk1LCAwLjAwMzI5NywgMC4wMDMyOTksIDAuMDAzMjk5IiwgXAotICAgICAgICAgICIwLjAwMzM2NiwgMC4wMDMzNzYsIDAuMDAzMzkyLCAwLjAwMzM5NSwgMC4wMDMzOTcsIDAuMDAzMzk5LCAwLjAwMzM5OSIsIFwKLSAgICAgICAgICAiMC4wMDM0ODcsIDAuMDAzNDksIDAuMDAzNTA4LCAwLjAwMzUxOSwgMC4wMDM1MjEsIDAuMDAzNTIzLCAwLjAwMzUxNiIsIFwKLSAgICAgICAgICAiMC4wMDM2OTMsIDAuMDAzNjk0LCAwLjAwMzcxMywgMC4wMDM3MjYsIDAuMDAzNzI5LCAwLjAwMzcyMiwgMC4wMDM3MjIiLCBcCi0gICAgICAgICAgIjAuMDAzODgxLCAwLjAwMzg5MiwgMC4wMDM5MTEsIDAuMDAzOTE1LCAwLjAwMzkxOCwgMC4wMDM5MiwgMC4wMDM5MjEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDMzNTQsIDAuMDAzMzU2LCAwLjAwMzM1NiwgMC4wMDMzNTYsIDAuMDAzMzU2LCAwLjAwMzM1NiwgMC4wMDMzNTYiLCBcCi0gICAgICAgICAgIjAuMDAzMzQ1LCAwLjAwMzM0NiwgMC4wMDMzNDgsIDAuMDAzMzQ3LCAwLjAwMzM1LCAwLjAwMzM0OCwgMC4wMDMzNDgiLCBcCi0gICAgICAgICAgIjAuMDAzMzc2LCAwLjAwMzM2OCwgMC4wMDMzNTcsIDAuMDAzMzU0LCAwLjAwMzM1LCAwLjAwMzM0NywgMC4wMDMzNDciLCBcCi0gICAgICAgICAgIjAuMDAzMzg2LCAwLjAwMzQwOCwgMC4wMDMzNzMsIDAuMDAzMzY0LCAwLjAwMzM1OSwgMC4wMDMzNTMsIDAuMDAzMzUxIiwgXAotICAgICAgICAgICIwLjAwMzQzMiwgMC4wMDM0MDUsIDAuMDAzMzk1LCAwLjAwMzM4LCAwLjAwMzM3MSwgMC4wMDMzNTksIDAuMDAzMzU2IiwgXAotICAgICAgICAgICIwLjAwMzUzMywgMC4wMDM0ODQsIDAuMDAzNDM1LCAwLjAwMzQwNiwgMC4wMDMzOTIsIDAuMDAzMzc1LCAwLjAwMzM2NiIsIFwKLSAgICAgICAgICAiMC4wMDM2NDQsIDAuMDAzNTY2LCAwLjAwMzQ4MSwgMC4wMDM0NCwgMC4wMDM0MTQsIDAuMDAzMzkxLCAwLjAwMzM4MyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDgxNiwgMC4wMDA4MiwgMC4wMDA4MjYsIDAuMDAwODI3LCAwLjAwMDgyNywgMC4wMDA4MjgsIDAuMDAwODI4IiwgXAotICAgICAgICAgICIwLjAwMDc3NSwgMC4wMDA3OSwgMC4wMDA4MTQsIDAuMDAwODE5LCAwLjAwMDgyMiwgMC4wMDA4MjUsIDAuMDAwODI2IiwgXAotICAgICAgICAgICIwLjAwMDc0NiwgMC4wMDA3NjUsIDAuMDAwODAyLCAwLjAwMDgxMSwgMC4wMDA4MTYsIDAuMDAwODIxLCAwLjAwMDgyMyIsIFwKLSAgICAgICAgICAiMC4wMDA3MzgsIDAuMDAwNzU0LCAwLjAwMDc5MywgMC4wMDA4MDUsIDAuMDAwODEyLCAwLjAwMDgxOCwgMC4wMDA4MiIsIFwKLSAgICAgICAgICAiMC4wMDA3NDgsIDAuMDAwNzU3LCAwLjAwMDc5LCAwLjAwMDgwMiwgMC4wMDA4MSwgMC4wMDA4MTcsIDAuMDAwODE5IiwgXAotICAgICAgICAgICIwLjAwMDc5MywgMC4wMDA3ODYsIDAuMDAwNzk2LCAwLjAwMDgwNCwgMC4wMDA4MTEsIDAuMDAwODE3LCAwLjAwMDgxOSIsIFwKLSAgICAgICAgICAiMC4wMDA4NTQsIDAuMDAwODMzLCAwLjAwMDgxMiwgMC4wMDA4MTMsIDAuMDAwODE2LCAwLjAwMDgyLCAwLjAwMDgyMSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjg0NiwgMC4wMDI4NDcsIDAuMDAyODQ5LCAwLjAwMjg0OSwgMC4wMDI4NDksIDAuMDAyODQ5LCAwLjAwMjg0OSIsIFwKLSAgICAgICAgICAiMC4wMDI4NDksIDAuMDAyODUyLCAwLjAwMjg1NSwgMC4wMDI4NTcsIDAuMDAyODU3LCAwLjAwMjg1NiwgMC4wMDI4NTYiLCBcCi0gICAgICAgICAgIjAuMDAyODc4LCAwLjAwMjg3MiwgMC4wMDI4NjUsIDAuMDAyODYzLCAwLjAwMjg2MiwgMC4wMDI4NjIsIDAuMDAyODYxIiwgXAotICAgICAgICAgICIwLjAwMjg4NSwgMC4wMDI5MTEsIDAuMDAyODgxLCAwLjAwMjg3NSwgMC4wMDI4NywgMC4wMDI4NjYsIDAuMDAyODY0IiwgXAotICAgICAgICAgICIwLjAwMjkzLCAwLjAwMjkxMSwgMC4wMDI5MDIsIDAuMDAyODg5LCAwLjAwMjg4MSwgMC4wMDI4NzIsIDAuMDAyODY5IiwgXAotICAgICAgICAgICIwLjAwMzAyMywgMC4wMDI5ODEsIDAuMDAyOTQyLCAwLjAwMjkxNywgMC4wMDI5MDIsIDAuMDAyODg2LCAwLjAwMjg3OSIsIFwKLSAgICAgICAgICAiMC4wMDMxMzUsIDAuMDAzMDYxLCAwLjAwMjk4OCwgMC4wMDI5NDgsIDAuMDAyOTI0LCAwLjAwMjkwMiwgMC4wMDI4OTQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDA4MTYsIDAuMDAwODIsIDAuMDAwODI2LCAwLjAwMDgyNywgMC4wMDA4MjgsIDAuMDAwODI4LCAwLjAwMDgyOCIsIFwKLSAgICAgICAgICAiMC4wMDA3NzYsIDAuMDAwNzkxLCAwLjAwMDgxNCwgMC4wMDA4MTksIDAuMDAwODIzLCAwLjAwMDgyNSwgMC4wMDA4MjYiLCBcCi0gICAgICAgICAgIjAuMDAwNzUzLCAwLjAwMDc3LCAwLjAwMDgwMywgMC4wMDA4MTIsIDAuMDAwODE3LCAwLjAwMDgyMiwgMC4wMDA4MjMiLCBcCi0gICAgICAgICAgIjAuMDAwNzU2LCAwLjAwMDc2NywgMC4wMDA3OTgsIDAuMDAwODA4LCAwLjAwMDgxNCwgMC4wMDA4MiwgMC4wMDA4MjEiLCBcCi0gICAgICAgICAgIjAuMDAwNzc4LCAwLjAwMDc3OSwgMC4wMDA3OTgsIDAuMDAwODA3LCAwLjAwMDgxMywgMC4wMDA4MTksIDAuMDAwODIxIiwgXAotICAgICAgICAgICIwLjAwMDg0LCAwLjAwMDgyMSwgMC4wMDA4MSwgMC4wMDA4MTMsIDAuMDAwODE3LCAwLjAwMDgyMSwgMC4wMDA4MjIiLCBcCi0gICAgICAgICAgIjAuMDAwOTE0LCAwLjAwMDg3OSwgMC4wMDA4MzEsIDAuMDAwODI2LCAwLjAwMDgyNSwgMC4wMDA4MjUsIDAuMDAwODI2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyMzI4LCAwLjAwMjMzMSwgMC4wMDIzMzQsIDAuMDAyMzM2LCAwLjAwMjMzNywgMC4wMDIzMzcsIDAuMDAyMzM3IiwgXAotICAgICAgICAgICIwLjAwMjMzMywgMC4wMDIzNCwgMC4wMDIzNDksIDAuMDAyMzUzLCAwLjAwMjM1MSwgMC4wMDIzNTMsIDAuMDAyMzUyIiwgXAotICAgICAgICAgICIwLjAwMjM1NiwgMC4wMDIzNTYsIDAuMDAyMzU3LCAwLjAwMjM1NywgMC4wMDIzNTksIDAuMDAyMzYsIDAuMDAyMzYyIiwgXAotICAgICAgICAgICIwLjAwMjM5MiwgMC4wMDIzODIsIDAuMDAyMzY3LCAwLjAwMjM2NiwgMC4wMDIzNjIsIDAuMDAyMzYzLCAwLjAwMjM2MyIsIFwKLSAgICAgICAgICAiMC4wMDI0MzksIDAuMDAyNDE0LCAwLjAwMjM4MywgMC4wMDIzNzYsIDAuMDAyMzcxLCAwLjAwMjM2NiwgMC4wMDIzNjUiLCBcCi0gICAgICAgICAgIjAuMDAyNTU1LCAwLjAwMjQ5OCwgMC4wMDI0MTcsIDAuMDAyNDAxLCAwLjAwMjM4OSwgMC4wMDIzNzgsIDAuMDAyMzc1IiwgXAotICAgICAgICAgICIwLjAwMjYwNCwgMC4wMDI1OTIsIDAuMDAyNDU3LCAwLjAwMjQyNywgMC4wMDI0MDksIDAuMDAyMzkyLCAwLjAwMjM4NiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDgxNCwgMC4wMDA4MTksIDAuMDAwODI1LCAwLjAwMDgyNiwgMC4wMDA4MjcsIDAuMDAwODI4LCAwLjAwMDgyOCIsIFwKLSAgICAgICAgICAiMC4wMDA3ODIsIDAuMDAwNzk0LCAwLjAwMDgxNSwgMC4wMDA4MiwgMC4wMDA4MjMsIDAuMDAwODI1LCAwLjAwMDgyNiIsIFwKLSAgICAgICAgICAiMC4wMDA3OCwgMC4wMDA3ODgsIDAuMDAwODEsIDAuMDAwODE2LCAwLjAwMDgyLCAwLjAwMDgyMywgMC4wMDA4MjQiLCBcCi0gICAgICAgICAgIjAuMDAwODE4LCAwLjAwMDgxMiwgMC4wMDA4MTYsIDAuMDAwODE5LCAwLjAwMDgyMiwgMC4wMDA4MjQsIDAuMDAwODI1IiwgXAotICAgICAgICAgICIwLjAwMDg2OSwgMC4wMDA4NDksIDAuMDAwODI3LCAwLjAwMDgyOCwgMC4wMDA4MjcsIDAuMDAwODI4LCAwLjAwMDgyOCIsIFwKLSAgICAgICAgICAiMC4wMDA5NzUsIDAuMDAwOTM0LCAwLjAwMDg2LCAwLjAwMDg0NywgMC4wMDA4NCwgMC4wMDA4MzUsIDAuMDAwODM0IiwgXAotICAgICAgICAgICIwLjAwMTA4NSwgMC4wMDEwMiwgMC4wMDA5LCAwLjAwMDg3MywgMC4wMDA4NTgsIDAuMDAwODQ2LCAwLjAwMDg0MiIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogT0EyMVg0ICoKLSAqIC0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoT0EyMVg0KSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuNjAxOTY3OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwOTI3MjQ2OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDkyNTQwMjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA5MjcyNDY7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNTI0LCAwLjAwMDUyNCwgMC4wMDA1MjQsIDAuMDAwNTI0LCAwLjAwMDUyMywgMC4wMDA1MjMsIDAuMDAwNTIzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNTMyLCAwLjAwMDUyNiwgMC4wMDA1MjYsIDAuMDAwNTI2LCAwLjAwMDUyNiwgMC4wMDA1MjYsIDAuMDAwNTI2Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihBMSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwOTc2MDAzOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDk3NjAwMzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA5NzQyNTk7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNTI0LCAwLjAwMDUyNCwgMC4wMDA1MjQsIDAuMDAwNTI0LCAwLjAwMDUyNCwgMC4wMDA1MjQsIDAuMDAwNTI0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNTMyLCAwLjAwMDUyNiwgMC4wMDA1MjUsIDAuMDAwNTI1LCAwLjAwMDUyNSwgMC4wMDA1MjUsIDAuMDAwNTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwOTQxNzUyOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDk0MTY1ODsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA5NDE3NTI7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjE1LCAwLjAwMDIxNiwgMC4wMDAyMTYsIDAuMDAwMjE1LCAwLjAwMDIxNiwgMC4wMDAyMTUsIDAuMDAwMjE1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNTk1LCAwLjAwMDU5NiwgMC4wMDA1OTYsIDAuMDAwNTk2LCAwLjAwMDU5NiwgMC4wMDA1OTYsIDAuMDAwNTk2Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDEuMzEwNDc7Ci0gICAgZnVuY3Rpb24gOiAiKChBMCtBMSkgQjApIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTIxMzUsIDAuMTEwNTg1LCAwLjE2NDk3MywgMC4yMDM3NjksIDAuMjY1NzgsIDAuMzIwMDY3LCAwLjM5NzU3OSIsIFwKLSAgICAgICAgICAiMC4wNTg5MjIsIDAuMTE3Mzc4LCAwLjE3MTc3LCAwLjIxMDU2OCwgMC4yNzI2MjEsIDAuMzI2ODY0LCAwLjQwNDQzNSIsIFwKLSAgICAgICAgICAiMC4wNjY3MzQsIDAuMTI1MDkxLCAwLjE3OTUwMSwgMC4yMTgyOTEsIDAuMjgwMzEzLCAwLjMzNDYwNSwgMC40MTIxMTUiLCBcCi0gICAgICAgICAgIjAuMDczNjUxLCAwLjEzMjE4NSwgMC4xODY1NzgsIDAuMjI1MzY2LCAwLjI4NzM4NSwgMC4zNDE2NTMsIDAuNDE5MTg2IiwgXAotICAgICAgICAgICIwLjA3OTY1MiwgMC4xMzg1MjEsIDAuMTkyOTMxLCAwLjIzMTcxOCwgMC4yOTM3NCwgMC4zNDgwMTEsIDAuNDI1NDg2IiwgXAotICAgICAgICAgICIwLjA4ODAxLCAwLjE0NzQ5LCAwLjIwMTkwMywgMC4yNDA2NzQsIDAuMzAyNzI4LCAwLjM1Njk3OSwgMC40MzQ0MjUiLCBcCi0gICAgICAgICAgIjAuMDk0MTU2LCAwLjE1NDIzMSwgMC4yMDg2NSwgMC4yNDc0MjQsIDAuMzA5NDQ4LCAwLjM2MzY3MywgMC40NDExNjEiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzA2NCwgMC4xMzk5NiwgMC4yNTI4NywgMC4zMzM2NTcsIDAuNDY0NzgxLCAwLjU3ODIzNSwgMC43NDI4MTkiLCBcCi0gICAgICAgICAgIjAuMDMwNTMsIDAuMTM5OTU1LCAwLjI1MjgyNywgMC4zMzQzMDgsIDAuNDY0ODM4LCAwLjU3OTE4OSwgMC43NDE2OTEiLCBcCi0gICAgICAgICAgIjAuMDMwNzYzLCAwLjEzOTk4NSwgMC4yNTI4NzIsIDAuMzM0MywgMC40NjQ3NjIsIDAuNTc4MywgMC43NDI3NyIsIFwKLSAgICAgICAgICAiMC4wMzE1NzcsIDAuMTQwMTk3LCAwLjI1Mjk1NiwgMC4zMzQyODQsIDAuNDY0Nzc0LCAwLjU3ODYyMSwgMC43NDI2OTEiLCBcCi0gICAgICAgICAgIjAuMDMyNjQsIDAuMTQwNjY1LCAwLjI1MzExOSwgMC4zMzQzNTgsIDAuNDY0MzY3LCAwLjU3OTEzMywgMC43NDIwNzUiLCBcCi0gICAgICAgICAgIjAuMDMzOTE2LCAwLjE0MTMxOCwgMC4yNTM0NSwgMC4zMzQ0NzksIDAuNDY0MjAxLCAwLjU3OTE2MiwgMC43NDI2MzMiLCBcCi0gICAgICAgICAgIjAuMDM1NDAyLCAwLjE0MTkxNSwgMC4yNTM3MTUsIDAuMzM0NDgxLCAwLjQ2NDUzMywgMC41NzkwODMsIDAuNzQyNTc0Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU0NjMsIDAuMTEzMTgyLCAwLjE2NzI3MywgMC4yMDU3OTQsIDAuMjY3Mzc2LCAwLjMyMTIzNywgMC4zOTgxOTYiLCBcCi0gICAgICAgICAgIjAuMDYwNzU5LCAwLjExOTMzNCwgMC4xNzM0MjQsIDAuMjExOTQ2LCAwLjI3MzUzMSwgMC4zMjc0MDIsIDAuNDA0MzkiLCBcCi0gICAgICAgICAgIjAuMDY4MDEsIDAuMTI2NDg5LCAwLjE4MDU4NCwgMC4yMTkxMDEsIDAuMjgwNjgzLCAwLjMzNDU1NiwgMC40MTE1MzQiLCBcCi0gICAgICAgICAgIjAuMDc0NDQ5LCAwLjEzMzAzMywgMC4xODcxMDYsIDAuMjI1NjM0LCAwLjI4NzIxOSwgMC4zNDEwNzgsIDAuNDE4MDY0IiwgXAotICAgICAgICAgICIwLjA3OTkzLCAwLjEzODgzOSwgMC4xOTI5MjgsIDAuMjMxNDQzLCAwLjI5MzAzNSwgMC4zNDY4OSwgMC40MjM4MzQiLCBcCi0gICAgICAgICAgIjAuMDg3NDEzLCAwLjE0Njg0MywgMC4yMDA5NTksIDAuMjM5NDcxLCAwLjMwMTA0MywgMC4zNTQ5MTksIDAuNDMxODQ0IiwgXAotICAgICAgICAgICIwLjA5MzAwOSwgMC4xNTI4MSwgMC4yMDY5NDgsIDAuMjQ1NDUxLCAwLjMwNzA1OSwgMC4zNjA4OTEsIDAuNDM3Nzk4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDMwNjMsIDAuMTM3NTk4LCAwLjI0NzkxNiwgMC4zMjczNiwgMC40NTQ5MzUsIDAuNTY2NjU2LCAwLjcyNTYyIiwgXAotICAgICAgICAgICIwLjAzMDUyMiwgMC4xMzc1ODQsIDAuMjQ3ODk2LCAwLjMyNzM1MiwgMC40NTQ5MzIsIDAuNTY2MTc2LCAwLjcyNTM1MSIsIFwKLSAgICAgICAgICAiMC4wMzA3MDIsIDAuMTM3NjI3LCAwLjI0NzY1NCwgMC4zMjczNjEsIDAuNDU0OTIzLCAwLjU2NjIxNiwgMC43MjY4OTUiLCBcCi0gICAgICAgICAgIjAuMDMxNjEsIDAuMTM3ODEsIDAuMjQ4MDE3LCAwLjMyNzQ1MSwgMC40NTQ5NzksIDAuNTY2NzE4LCAwLjcyNTQ4OSIsIFwKLSAgICAgICAgICAiMC4wMzI0NDksIDAuMTM4MjgsIDAuMjQ4MjIzLCAwLjMyNzU2MiwgMC40NTUwMzQsIDAuNTY2NzQ0LCAwLjcyNjA2OSIsIFwKLSAgICAgICAgICAiMC4wMzM0NTcsIDAuMTM4ODYsIDAuMjQ4NDk0LCAwLjMyNzc0NCwgMC40NTUxMTgsIDAuNTY2MzE0LCAwLjcyNjgyNiIsIFwKLSAgICAgICAgICAiMC4wMzQ2NjQsIDAuMTM5NDAzLCAwLjI0ODc0NCwgMC4zMjc1NzYsIDAuNDU1MzA4LCAwLjU2NjUwMSwgMC43MjY4MjkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTEiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQ4MTc2LCAwLjEwNjEwNiwgMC4xNjA0NSwgMC4xOTkyMTUsIDAuMjYxMjA2LCAwLjMxNTU2NCwgMC4zOTMwMDIiLCBcCi0gICAgICAgICAgIjAuMDU0ODc0LCAwLjExMjgxMSwgMC4xNjcxNTgsIDAuMjA1OTIzLCAwLjI2Nzk2NSwgMC4zMjIxOTUsIDAuMzk5OTIiLCBcCi0gICAgICAgICAgIjAuMDYyNTQzLCAwLjEyMDQ4NCwgMC4xNzQ4MjcsIDAuMjEzNTk0LCAwLjI3NTU5MywgMC4zMjk5MzMsIDAuNDA3NDQxIiwgXAotICAgICAgICAgICIwLjA2OTIwMiwgMC4xMjczNTgsIDAuMTgxNjc4LCAwLjIyMDQ0NywgMC4yODI0MzMsIDAuMzM2Nzk5LCAwLjQxNDIzOCIsIFwKLSAgICAgICAgICAiMC4wNzQ5MywgMC4xMzM0NTgsIDAuMTg3NzYzLCAwLjIyNjUyNiwgMC4yODg1MzksIDAuMzQyNzc0LCAwLjQyMDQwMyIsIFwKLSAgICAgICAgICAiMC4wODI1NzksIDAuMTQxODM3LCAwLjE5NjIsIDAuMjM0OTU0LCAwLjI5Njk2MywgMC4zNTEyNzIsIDAuNDI4Njc0IiwgXAotICAgICAgICAgICIwLjA4ODM4LCAwLjE0ODAyOCwgMC4yMDIzODYsIDAuMjQxMTIyLCAwLjMwMzA5NSwgMC4zNTczNjcsIDAuNDM0ODU0Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDI5NzgxLCAwLjEzOTMxNCwgMC4yNTIxMSwgMC4zMzMzOTQsIDAuNDY0Mzc5LCAwLjU3Nzg4NCwgMC43NDE3OTUiLCBcCi0gICAgICAgICAgIjAuMDI5NzE4LCAwLjEzOTI2NCwgMC4yNTIzOTQsIDAuMzMzODg4LCAwLjQ2NDYxNiwgMC41NzkwOTUsIDAuNzQxNjMxIiwgXAotICAgICAgICAgICIwLjAzMDA4OSwgMC4xMzk0MTIsIDAuMjUyNDQ4LCAwLjMzMzkzOSwgMC40NjM5NDUsIDAuNTc3OTE5LCAwLjc0MTMzMyIsIFwKLSAgICAgICAgICAiMC4wMzExNDIsIDAuMTM5NzE5LCAwLjI1MjM0OSwgMC4zMzM5ODgsIDAuNDY0NDY2LCAwLjU3Nzg4MSwgMC43NDE3ODQiLCBcCi0gICAgICAgICAgIjAuMDMyMDQzLCAwLjE0MDIyMiwgMC4yNTI1MywgMC4zMzM5ODEsIDAuNDY0NjA0LCAwLjU3OTAzNSwgMC43NDE2MzMiLCBcCi0gICAgICAgICAgIjAuMDMzODQ1LCAwLjE0MDk1NCwgMC4yNTI5NTcsIDAuMzM0Mjg3LCAwLjQ2NDc3OSwgMC41NzgwMzQsIDAuNzQyNzE0IiwgXAotICAgICAgICAgICIwLjAzNTExNywgMC4xNDE3ODIsIDAuMjUzMTk1LCAwLjMzNDQ2MywgMC40NjQ3MjUsIDAuNTc5MjU1LCAwLjc0MjgxMSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1MjYzNiwgMC4xMTExODIsIDAuMTY1MjYsIDAuMjAzNzgyLCAwLjI2NTM1MywgMC4zMTkyMTYsIDAuMzk2MTQ3IiwgXAotICAgICAgICAgICIwLjA2MDE3OCwgMC4xMTg2OTUsIDAuMTcyNzgyLCAwLjIxMTMwMiwgMC4yNzI4OTEsIDAuMzI2NzYyLCAwLjQwMzc1NCIsIFwKLSAgICAgICAgICAiMC4wNjk3NjksIDAuMTI4MjI3LCAwLjE4MjMyMSwgMC4yMjA4NDgsIDAuMjgyNDc1LCAwLjMzNjMyMiwgMC40MTMyMjUiLCBcCi0gICAgICAgICAgIjAuMDc4NzUyLCAwLjEzNzMyMSwgMC4xOTEzOTYsIDAuMjI5OTE2LCAwLjI5MTUsIDAuMzQ1MzY2LCAwLjQyMjMyNyIsIFwKLSAgICAgICAgICAiMC4wODY2MjksIDAuMTQ1Mjc2LCAwLjE5OTMzLCAwLjIzNzgzNCwgMC4yOTk0MSwgMC4zNTMyNzcsIDAuNDMwMjA5IiwgXAotICAgICAgICAgICIwLjA5NjU3MiwgMC4xNTU5NzgsIDAuMjEwMDQ3LCAwLjI0ODUzNiwgMC4zMTAxMDksIDAuMzYzOTUzLCAwLjQ0MDg4MiIsIFwKLSAgICAgICAgICAiMC4xMDM5NjYsIDAuMTYzNTY3LCAwLjIxNzY4MSwgMC4yNTYxNTUsIDAuMzE3NzAzLCAwLjM3MTU1NiwgMC40NDg0NzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzA2NzMsIDAuMTM3NTk1LCAwLjI0Nzg1NiwgMC4zMjczNTcsIDAuNDU0ODk2LCAwLjU2Njc1NCwgMC43MjY3MzIiLCBcCi0gICAgICAgICAgIjAuMDMwNTg2LCAwLjEzNzU4NSwgMC4yNDc4OTQsIDAuMzI2OTU2LCAwLjQ1NDkyMSwgMC41NjYxNSwgMC43MjU2MTgiLCBcCi0gICAgICAgICAgIjAuMDMwNzMzLCAwLjEzNzY0NywgMC4yNDc5MTUsIDAuMzI3Mzg1LCAwLjQ1NDIsIDAuNTY1OTUxLCAwLjcyNjYzNSIsIFwKLSAgICAgICAgICAiMC4wMzE1OTMsIDAuMTM3ODU1LCAwLjI0ODAyMywgMC4zMjc0NDIsIDAuNDU0OTYyLCAwLjU2NjcyNSwgMC43MjU3MjMiLCBcCi0gICAgICAgICAgIjAuMDMyOTI5LCAwLjEzODQxNCwgMC4yNDc4NzUsIDAuMzI3Mjg4LCAwLjQ1NTA0MiwgMC41NjY4NjksIDAuNzI1NjE4IiwgXAotICAgICAgICAgICIwLjAzNDczNSwgMC4xMzkxNTgsIDAuMjQ4MzI2LCAwLjMyNzU0MiwgMC40NTUyMDIsIDAuNTY2OTA4LCAwLjcyNjc5NSIsIFwKLSAgICAgICAgICAiMC4wMzY1MjcsIDAuMTM5NzU4LCAwLjI0ODg1NSwgMC4zMjc4MjEsIDAuNDU0ODkzLCAwLjU2NzExNSwgMC43MjY5NTEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjAiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQ4ODE0LCAwLjEwNzI0NywgMC4xNjE2MzYsIDAuMjAwNDIxLCAwLjI2MjQ2MywgMC4zMTY2NDYsIDAuMzk0MjQ0IiwgXAotICAgICAgICAgICIwLjA1NjQ1OSwgMC4xMTQ4NTcsIDAuMTY5MjU0LCAwLjIwODA0NSwgMC4yNzAwNjcsIDAuMzI0MzU5LCAwLjQwMTg2OSIsIFwKLSAgICAgICAgICAiMC4wNjY0NTQsIDAuMTI0NzQzLCAwLjE3OTEzLCAwLjIxNzkyLCAwLjI3OTkzOSwgMC4zMzQyMjQsIDAuNDExNzQyIiwgXAotICAgICAgICAgICIwLjA3NTQwNCwgMC4xMzM4MzksIDAuMTg4MjM0LCAwLjIyNzAxNywgMC4yODkwNDEsIDAuMzQzMzE5LCAwLjQyMDg0MiIsIFwKLSAgICAgICAgICAiMC4wODMyMDUsIDAuMTQyMDQ1LCAwLjE5NjQxNywgMC4yMzUxOTUsIDAuMjk3MjI2LCAwLjM1MTQ3NiwgMC40MjkwMzgiLCBcCi0gICAgICAgICAgIjAuMDkzMywgMC4xNTI4MTUsIDAuMjA3MDk3LCAwLjI0NTgzNCwgMC4zMDc4MjgsIDAuMzYyMTQyLCAwLjQzOTYwNiIsIFwKLSAgICAgICAgICAiMC4xMDExNzgsIDAuMTYxMTQsIDAuMjE1NTAxLCAwLjI1NDI3MiwgMC4zMTYyNSwgMC4zNzA0OTgsIDAuNDQ4MDMiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzA1NzgsIDAuMTM5OTY1LCAwLjI1MjYyMywgMC4zMzQxMjQsIDAuNDY0ODMsIDAuNTc4ODM3LCAwLjc0Mjc5OSIsIFwKLSAgICAgICAgICAiMC4wMzA1MTgsIDAuMTM5OTQ2LCAwLjI1Mjg1MiwgMC4zMzQyNTcsIDAuNDY0NzQ4LCAwLjU3ODMxNCwgMC43NDI3ODkiLCBcCi0gICAgICAgICAgIjAuMDMwOTEsIDAuMTQwMDU5LCAwLjI1Mjg5MiwgMC4zMzQyOCwgMC40NjQ3NzksIDAuNTc4MjczLCAwLjc0MjczMyIsIFwKLSAgICAgICAgICAiMC4wMzE5OTQsIDAuMTQwMjYyLCAwLjI1Mjk1OCwgMC4zMzQwMDYsIDAuNDY0Nzk0LCAwLjU3ODU2NiwgMC43NDI3MjgiLCBcCi0gICAgICAgICAgIjAuMDMzMjkzLCAwLjE0MDc2LCAwLjI1MzEyMSwgMC4zMzQzMDMsIDAuNDY0ODU2LCAwLjU3OTIwNywgMC43NDI3NTEiLCBcCi0gICAgICAgICAgIjAuMDM1NTgxLCAwLjE0MTU3OSwgMC4yNTM0MjIsIDAuMzM0MzE3LCAwLjQ2NDgyMywgMC41NzkxNTIsIDAuNzQyNzg2IiwgXAotICAgICAgICAgICIwLjAzNzAwNSwgMC4xNDIyNjcsIDAuMjUzODIzLCAwLjMzNDgxMiwgMC40NjQ5NjMsIDAuNTc5NDIxLCAwLjc0Mjc5NSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzNDY2NiwgMC4wOTAxOTUsIDAuMTQ0MDUyLCAwLjE4MjUxNiwgMC4yNDQwNCwgMC4yOTgwMSwgMC4zNzQ4MzMiLCBcCi0gICAgICAgICAgIjAuMDQyNzk3LCAwLjA5ODM1MiwgMC4xNTIyMTgsIDAuMTkwNjc0LCAwLjI1MjIxMSwgMC4zMDYxODYsIDAuMzgzMDA1IiwgXAotICAgICAgICAgICIwLjA1MTg1LCAwLjEwNzQ0NiwgMC4xNjEzMTEsIDAuMTk5NzUzLCAwLjI2MTMyOSwgMC4zMTUxMTgsIDAuMzkyMDY4IiwgXAotICAgICAgICAgICIwLjA1OTAyNywgMC4xMTQ5MzUsIDAuMTY4NzY1LCAwLjIwNzIxOCwgMC4yNjg4MDgsIDAuMzIyNTg1LCAwLjM5OTUzNyIsIFwKLSAgICAgICAgICAiMC4wNjQ0ODcsIDAuMTIwODQ2LCAwLjE3NDY2NiwgMC4yMTMwNDYsIDAuMjc0NjMxLCAwLjMyODQxOCwgMC40MDU0NzIiLCBcCi0gICAgICAgICAgIjAuMDcxNTI2LCAwLjEyODU0NCwgMC4xODIzMTksIDAuMjIwNzUyLCAwLjI4MjIzNywgMC4zMzYwOTgsIDAuNDEyOTgiLCBcCi0gICAgICAgICAgIjAuMDc2NTY0LCAwLjEzNDA4NiwgMC4xODc5MTIsIDAuMjI2Mjk4LCAwLjI4Nzc5NiwgMC4zNDE1OTMsIDAuNDE4NDc5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDI1NzMzLCAwLjEzNDAzLCAwLjI0NTM3NywgMC4zMjUyODQsIDAuNDUzMywgMC41NjQzODUsIDAuNzI1MzUyIiwgXAotICAgICAgICAgICIwLjAyNTgzOCwgMC4xMzQwMjgsIDAuMjQ1MzgsIDAuMzI1MTg2LCAwLjQ1MzMwMiwgMC41NjQzODMsIDAuNzI1MzU1IiwgXAotICAgICAgICAgICIwLjAyNzEzNSwgMC4xMzQyMTIsIDAuMjQ1NDQ4LCAwLjMyNTI2NCwgMC40NTI3MjEsIDAuNTY1MzY4LCAwLjcyNTM0OSIsIFwKLSAgICAgICAgICAiMC4wMjg3OTEsIDAuMTM0NTA1LCAwLjI0NTQ4MiwgMC4zMjUzMDMsIDAuNDUyNTA5LCAwLjU2NTIsIDAuNzI0Njc3IiwgXAotICAgICAgICAgICIwLjAzMDMxMiwgMC4xMzUwMTYsIDAuMjQ1NzMsIDAuMzI1NDI4LCAwLjQ1MzMzNywgMC41NjU0MTEsIDAuNzI0Nzc0IiwgXAotICAgICAgICAgICIwLjAzMjU5OCwgMC4xMzU2OTcsIDAuMjQ2MDU2LCAwLjMyNTM4MiwgMC40NTMzMjcsIDAuNTY0NDkxLCAwLjcyNTU4IiwgXAotICAgICAgICAgICIwLjAzNDM0NCwgMC4xMzY1LCAwLjI0NTk3LCAwLjMyNTc2NCwgMC40NTM0NjcsIDAuNTY1NTQsIDAuNzI1NTU4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1OTYyLCAwLjAwNjA3NiwgMC4wMDYwOTksIDAuMDA2MTA4LCAwLjAwNjExLCAwLjAwNjExOSwgMC4wMDYxMjMiLCBcCi0gICAgICAgICAgIjAuMDA1ODgzLCAwLjAwNjAxMiwgMC4wMDYwNDUsIDAuMDA2MDU0LCAwLjAwNjA2NSwgMC4wMDYwNjksIDAuMDA2MDc0IiwgXAotICAgICAgICAgICIwLjAwNTkwMywgMC4wMDU5OTcsIDAuMDA2MDMxLCAwLjAwNjA0LCAwLjAwNjA1MywgMC4wMDYwNTksIDAuMDA2MDYzIiwgXAotICAgICAgICAgICIwLjAwNjAxMSwgMC4wMDYwMjksIDAuMDA2MDUzLCAwLjAwNjA2OCwgMC4wMDYwNzgsIDAuMDA2MDgyLCAwLjAwNjA4OCIsIFwKLSAgICAgICAgICAiMC4wMDYxNTYsIDAuMDA2MDg1LCAwLjAwNjEwNywgMC4wMDYxMTcsIDAuMDA2MTI1LCAwLjAwNjEzLCAwLjAwNjEzNSIsIFwKLSAgICAgICAgICAiMC4wMDYzMjYsIDAuMDA2MjAyLCAwLjAwNjIxOCwgMC4wMDYyMywgMC4wMDYyMzksIDAuMDA2MjQxLCAwLjAwNjI0NiIsIFwKLSAgICAgICAgICAiMC4wMDY0MzgsIDAuMDA2MzAzLCAwLjAwNjMzMiwgMC4wMDYzNDIsIDAuMDA2MzUzLCAwLjAwNjM1NCwgMC4wMDYzNjkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwODcyLCAwLjAwODg3MSwgMC4wMDg5MSwgMC4wMDg5MjMsIDAuMDA4OTM1LCAwLjAwODk0MSwgMC4wMDg5NDciLCBcCi0gICAgICAgICAgIjAuMDA4NjYzLCAwLjAwODgyNiwgMC4wMDg4NzMsIDAuMDA4ODg4LCAwLjAwODkwMiwgMC4wMDg5MSwgMC4wMDg5MTciLCBcCi0gICAgICAgICAgIjAuMDA4NzI1LCAwLjAwODgyOSwgMC4wMDg4NzIsIDAuMDA4ODg4LCAwLjAwODkwMywgMC4wMDg5MTEsIDAuMDA4OTE4IiwgXAotICAgICAgICAgICIwLjAwODgyMiwgMC4wMDg4NywgMC4wMDg5MSwgMC4wMDg5MjUsIDAuMDA4OTM5LCAwLjAwODk0NywgMC4wMDg5NTQiLCBcCi0gICAgICAgICAgIjAuMDA4OTk0LCAwLjAwODkyNywgMC4wMDg5NjcsIDAuMDA4OTgsIDAuMDA4OTk1LCAwLjAwOTAwMywgMC4wMDkwMSIsIFwKLSAgICAgICAgICAiMC4wMDkxMSwgMC4wMDkwMjYsIDAuMDA5MDY2LCAwLjAwOTA4NiwgMC4wMDkxMDIsIDAuMDA5MTEyLCAwLjAwOTEyMSIsIFwKLSAgICAgICAgICAiMC4wMDkzMzQsIDAuMDA5MTcyLCAwLjAwOTIwNSwgMC4wMDkyMjEsIDAuMDA5MjM4LCAwLjAwOTI0NywgMC4wMDkyNTciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDU2NzQsIDAuMDA1ODExLCAwLjAwNTgzNiwgMC4wMDU4NTIsIDAuMDA1ODYsIDAuMDA1ODU1LCAwLjAwNTg2NSIsIFwKLSAgICAgICAgICAiMC4wMDU1NywgMC4wMDU3MjQsIDAuMDA1NzUxLCAwLjAwNTc2NCwgMC4wMDU3NzUsIDAuMDA1Nzc3LCAwLjAwNTc4MSIsIFwKLSAgICAgICAgICAiMC4wMDU2MjksIDAuMDA1Njk0LCAwLjAwNTcyNSwgMC4wMDU3MzUsIDAuMDA1NzQ1LCAwLjAwNTc0OSwgMC4wMDU3NTQiLCBcCi0gICAgICAgICAgIjAuMDA1NjMsIDAuMDA1NzMsIDAuMDA1NzUyLCAwLjAwNTc2LCAwLjAwNTc3LCAwLjAwNTc3MSwgMC4wMDU3NzUiLCBcCi0gICAgICAgICAgIjAuMDA1NzMsIDAuMDA1NzY1LCAwLjAwNTc5LCAwLjAwNTgwMywgMC4wMDU4MDcsIDAuMDA1ODEsIDAuMDA1ODE3IiwgXAotICAgICAgICAgICIwLjAwNjA0LCAwLjAwNTg4NiwgMC4wMDU5MDcsIDAuMDA1OTE5LCAwLjAwNTkyNiwgMC4wMDU5MjQsIDAuMDA1OTMxIiwgXAotICAgICAgICAgICIwLjAwNjIwNiwgMC4wMDU5OTUsIDAuMDA2MDI3LCAwLjAwNjAzNCwgMC4wMDYwNDMsIDAuMDA2MDQ3LCAwLjAwNjA1MiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA4MjksIDAuMDA4NDI4LCAwLjAwODQ2NiwgMC4wMDg0NzgsIDAuMDA4NDksIDAuMDA4NDk2LCAwLjAwODUwMSIsIFwKLSAgICAgICAgICAiMC4wMDgyMjMsIDAuMDA4Mzc2LCAwLjAwODQyNCwgMC4wMDg0NDEsIDAuMDA4NDU3LCAwLjAwODQ2NCwgMC4wMDg0NzIiLCBcCi0gICAgICAgICAgIjAuMDA4MzM2LCAwLjAwODQxNSwgMC4wMDg0NjQsIDAuMDA4NDgyLCAwLjAwODQ5OCwgMC4wMDg1MDgsIDAuMDA4NTE3IiwgXAotICAgICAgICAgICIwLjAwODQ5NiwgMC4wMDg0OTUsIDAuMDA4NTM4LCAwLjAwODU1NCwgMC4wMDg1NzIsIDAuMDA4NTgxLCAwLjAwODU5MSIsIFwKLSAgICAgICAgICAiMC4wMDg2NjcsIDAuMDA4NjM2LCAwLjAwODY1LCAwLjAwODY2MywgMC4wMDg2NzQsIDAuMDA4NjgsIDAuMDA4Njg2IiwgXAotICAgICAgICAgICIwLjAwOTAxLCAwLjAwODc3OSwgMC4wMDg3OTMsIDAuMDA4ODAxLCAwLjAwODgxNSwgMC4wMDg4MjMsIDAuMDA4ODMiLCBcCi0gICAgICAgICAgIjAuMDA5Mzc5LCAwLjAwODk5OCwgMC4wMDg5ODcsIDAuMDA4OTg5LCAwLjAwODk5OCwgMC4wMDkwMDIsIDAuMDA5MDA5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1OTgzLCAwLjAwNjA5NywgMC4wMDYxMjgsIDAuMDA2MTM0LCAwLjAwNjE0MiwgMC4wMDYxNDksIDAuMDA2MTU2IiwgXAotICAgICAgICAgICIwLjAwNTkxNCwgMC4wMDYwMzksIDAuMDA2MDcyLCAwLjAwNjA4NywgMC4wMDYwOTgsIDAuMDA2MTAzLCAwLjAwNjExMiIsIFwKLSAgICAgICAgICAiMC4wMDYxMDksIDAuMDA2MTA4LCAwLjAwNjEzNywgMC4wMDYxNDcsIDAuMDA2MTU4LCAwLjAwNjE2MiwgMC4wMDYxNzEiLCBcCi0gICAgICAgICAgIjAuMDA2MTk3LCAwLjAwNjE5MSwgMC4wMDYyMjUsIDAuMDA2MjQsIDAuMDA2MjUzLCAwLjAwNjI2LCAwLjAwNjI3MSIsIFwKLSAgICAgICAgICAiMC4wMDYzOTUsIDAuMDA2Mjk4LCAwLjAwNjMyNiwgMC4wMDYzMzksIDAuMDA2MzU0LCAwLjAwNjM1NywgMC4wMDYzNjQiLCBcCi0gICAgICAgICAgIjAuMDA2NzcyLCAwLjAwNjUyOCwgMC4wMDY1MjksIDAuMDA2NTM0LCAwLjAwNjU0MSwgMC4wMDY1NDQsIDAuMDA2NTUxIiwgXAotICAgICAgICAgICIwLjAwNjk4NSwgMC4wMDY3MTUsIDAuMDA2NzI0LCAwLjAwNjczMSwgMC4wMDY3MzgsIDAuMDA2NzQxLCAwLjAwNjc0OSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA3NTkzLCAwLjAwNzc2MywgMC4wMDc3ODUsIDAuMDA3NzkyLCAwLjAwNzc5OCwgMC4wMDc4MDEsIDAuMDA3ODA0IiwgXAotICAgICAgICAgICIwLjAwNzU0MiwgMC4wMDc3MjksIDAuMDA3NzYyLCAwLjAwNzc3MywgMC4wMDc3ODIsIDAuMDA3Nzg3LCAwLjAwNzc5MSIsIFwKLSAgICAgICAgICAiMC4wMDc2OTQsIDAuMDA3Nzg3LCAwLjAwNzgyLCAwLjAwNzgzMSwgMC4wMDc4NDEsIDAuMDA3ODQ2LCAwLjAwNzg1MSIsIFwKLSAgICAgICAgICAiMC4wMDc4NCwgMC4wMDc4NiwgMC4wMDc4ODcsIDAuMDA3ODk3LCAwLjAwNzkwNiwgMC4wMDc5MTEsIDAuMDA3OTE1IiwgXAotICAgICAgICAgICIwLjAwNzkyMiwgMC4wMDc5MzksIDAuMDA3OTc0LCAwLjAwNzk5NywgMC4wMDgsIDAuMDA4MDExLCAwLjAwODAxMyIsIFwKLSAgICAgICAgICAiMC4wMDgyMzMsIDAuMDA4MTUyLCAwLjAwODE3OSwgMC4wMDgxOSwgMC4wMDgyMDIsIDAuMDA4MTk0LCAwLjAwODIxNSIsIFwKLSAgICAgICAgICAiMC4wMDg1MzksIDAuMDA4MzQ4LCAwLjAwODM4MiwgMC4wMDgzOTEsIDAuMDA4NDAxLCAwLjAwODQwNiwgMC4wMDg0MTIiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogT0FJMjIxWDIgKgotICogLS0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKE9BSTIyMVgyKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuODE3MjkyOwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNzc2NjQ7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNzczNzE7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNzc2NjQ7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxMDQ5LCAwLjAwMTA0OCwgMC4wMDEwNDcsIDAuMDAxMDQ3LCAwLjAwMTA0NywgMC4wMDEwNDcsIDAuMDAxMDQ3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxMDUsIDAuMDAxMDUsIDAuMDAxMDUxLCAwLjAwMTA1MSwgMC4wMDEwNTIsIDAuMDAxMDUsIDAuMDAxMDUxIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihBMSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNjg1NDc7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNjg1NDc7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNjgwNjU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxMDQ5LCAwLjAwMTA0OCwgMC4wMDEwNDgsIDAuMDAxMDQ4LCAwLjAwMTA0OCwgMC4wMDEwNDcsIDAuMDAxMDQ3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxMDQ5LCAwLjAwMTA1LCAwLjAwMTA1LCAwLjAwMTA1LCAwLjAwMTA1MSwgMC4wMDEwNTEsIDAuMDAxMDUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE3NjYwNjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE3NjE1MTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE3NjYwNjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDEwNDgsIDAuMDAxMDQ4LCAwLjAwMTA0NywgMC4wMDEwNDcsIDAuMDAxMDQ3LCAwLjAwMTA0NiwgMC4wMDEwNDciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDEwNDksIDAuMDAxMDUsIDAuMDAxMDUxLCAwLjAwMTA1MiwgMC4wMDEwNTIsIDAuMDAxMDUsIDAuMDAxMDUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIxKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE2NDY1NTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE2NDY1NTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE2NDI3MzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDEwNDksIDAuMDAxMDQ4LCAwLjAwMTA0OCwgMC4wMDEwNDgsIDAuMDAxMDQ4LCAwLjAwMTA0NywgMC4wMDEwNDciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDEwNDksIDAuMDAxMDUsIDAuMDAxMDUsIDAuMDAxMDUxLCAwLjAwMTA1MSwgMC4wMDEwNTEsIDAuMDAxMDUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEMwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE3MTc0NDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE3MTcxNzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE3MTc0NDsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA0MjUsIDAuMDAwNDI3LCAwLjAwMDQyNywgMC4wMDA0MjcsIDAuMDAwNDI4LCAwLjAwMDQyNywgMC4wMDA0MjciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDExOTEsIDAuMDAxMTkxLCAwLjAwMTE5MiwgMC4wMDExOTIsIDAuMDAxMTkyLCAwLjAwMTE5MiwgMC4wMDExOTIiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4yNjgxMTQ7Ci0gICAgZnVuY3Rpb24gOiAiKCEoKChBMCtBMSkgKEIwK0IxKSkgQzApKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTAiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0OTkxNCwgMC4xOTI1NjgsIDAuMzA2MTI2LCAwLjQ0NzgxMSwgMC41ODkwNTksIDAuNzMwNDM1LCAwLjg3MTQ0NyIsIFwKLSAgICAgICAgICAiMC4wNTYwMjgsIDAuMTk4NzU5LCAwLjMxMjMzOCwgMC40NTM4OTcsIDAuNTk1MjI4LCAwLjczNjczOCwgMC44Nzc5ODciLCBcCi0gICAgICAgICAgIjAuMDYzMzg1LCAwLjIwNjIzOSwgMC4zMTk4NjEsIDAuNDYxNDI2LCAwLjYwMjc1OCwgMC43NDQxMTcsIDAuODg1MTc4IiwgXAotICAgICAgICAgICIwLjA3MDYyNywgMC4yMTM3MjksIDAuMzI3Mjc4LCAwLjQ2ODkxMiwgMC42MTAzMjQsIDAuNzUxNDM0LCAwLjg5MjY1MiIsIFwKLSAgICAgICAgICAiMC4wNzcwODIsIDAuMjIxMDQ4LCAwLjMzNDczNSwgMC40NzYzODEsIDAuNjE3Nzk0LCAwLjc1OTAzNSwgMC45MDEwMTEiLCBcCi0gICAgICAgICAgIjAuMDg1NjcxLCAwLjIzMjk1NSwgMC4zNDY0MjgsIDAuNDg4MDc5LCAwLjYyOTM3OCwgMC43NzA1MzgsIDAuOTExNzEyIiwgXAotICAgICAgICAgICIwLjA5MjEzNiwgMC4yNDMxNjgsIDAuMzU3MDU0LCAwLjQ5OTEwOCwgMC42NDA1ODgsIDAuNzgxNjcsIDAuOTIyOTE0Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5NTkwNiwgMC4zOTYwODcsIDAuNjM2NTU5LCAwLjkzNzIyNCwgMS4yMzc2OCwgMS41MzgxLCAxLjgzODc2IiwgXAotICAgICAgICAgICIwLjA5NjI2NCwgMC4zOTYxMDEsIDAuNjM2NDY4LCAwLjkzNzExOCwgMS4yMzc2OSwgMS41MzgzNCwgMS44MzkwNyIsIFwKLSAgICAgICAgICAiMC4wOTk0ODMsIDAuMzk2MDg4LCAwLjYzNjUzOCwgMC45MzcxMTIsIDEuMjM3NjUsIDEuNTM4MDEsIDEuODM4NzQiLCBcCi0gICAgICAgICAgIjAuMTA0MzE3LCAwLjM5NjY0OSwgMC42MzYzMjUsIDAuOTM3MDM4LCAxLjIzNzc4LCAxLjUzNzk4LCAxLjgzODc2IiwgXAotICAgICAgICAgICIwLjExMDA2NiwgMC4zOTg0MTIsIDAuNjM2Njk3LCAwLjkzNjg3NCwgMS4yMzc1OCwgMS41MzgwMywgMS44Mzg2NyIsIFwKLSAgICAgICAgICAiMC4xMjA0NzcsIDAuNDAzMDkxLCAwLjYzODY0NCwgMC45MzcyMywgMS4yMzc3MSwgMS41Mzc5MywgMS44Mzg3NCIsIFwKLSAgICAgICAgICAiMC4xMjk1MzUsIDAuNDA4MTk2LCAwLjY0MTk5NiwgMC45Mzg1MzcsIDEuMjM3NzIsIDEuNTM4MDIsIDEuODM4NzUiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDcyMjQ0LCAwLjI2NzYzNywgMC40MjQzNzIsIDAuNjIyNjI5LCAwLjgyMDkwNSwgMS4wMTkzMSwgMS4yMTY3IiwgXAotICAgICAgICAgICIwLjA3ODg0MSwgMC4yNzQzNjEsIDAuNDMxMjU2LCAwLjYyOTY2NywgMC44MjczMjUsIDEuMDI2MjYsIDEuMjIzNiIsIFwKLSAgICAgICAgICAiMC4wODUyOCwgMC4yODA4MzQsIDAuNDM3NjUyLCAwLjYzNTcwNywgMC44MzM1ODQsIDEuMDMyMDUsIDEuMjMwMzgiLCBcCi0gICAgICAgICAgIjAuMDkxMjU3LCAwLjI4NjgzNywgMC40NDM2NTQsIDAuNjQyMDMyLCAwLjg0MDU3MSwgMS4wMzc5MSwgMS4yMzYxNCIsIFwKLSAgICAgICAgICAiMC4wOTcxMjMsIDAuMjkyODE4LCAwLjQ0OTY0OCwgMC42NDc3NzYsIDAuODQ1NjAyLCAxLjA0Mzc2LCAxLjI0MTUyIiwgXAotICAgICAgICAgICIwLjEwNTUwNiwgMC4zMDIyNTYsIDAuNDU4ODA0LCAwLjY1NzExNCwgMC44NTQ5OTMsIDEuMDUyODgsIDEuMjUxMDUiLCBcCi0gICAgICAgICAgIjAuMTExOTkyLCAwLjMxMDQ4LCAwLjQ2NzAxMywgMC42NjUwNTcsIDAuODYzMTA5LCAxLjA2MTg1LCAxLjI1OTE2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExNjA5NSwgMC41MjMzMDUsIDAuODUxODUxLCAxLjI2MjcyLCAxLjY3MzgzLCAyLjA4NTI2LCAyLjQ5NTUyIiwgXAotICAgICAgICAgICIwLjExNjExNSwgMC41MjMzNTksIDAuODUxODgsIDEuMjYzMzMsIDEuNjczNjIsIDIuMDg1MjQsIDIuNDk1NDYiLCBcCi0gICAgICAgICAgIjAuMTE3MDQxLCAwLjUyMzMzMiwgMC44NTE4MzEsIDEuMjYzMDgsIDEuNjczNjUsIDIuMDg1MTUsIDIuNDk1NDEiLCBcCi0gICAgICAgICAgIjAuMTE5MTk3LCAwLjUyMzI5MiwgMC44NTE4ODgsIDEuMjYzMDUsIDEuNjc0NDYsIDIuMDg0ODQsIDIuNDk2MTYiLCBcCi0gICAgICAgICAgIjAuMTIyMzQxLCAwLjUyMzcwOSwgMC44NTIwNzIsIDEuMjYyNzMsIDEuNjczODcsIDIuMDg0NzgsIDIuNDk1NTQiLCBcCi0gICAgICAgICAgIjAuMTI4ODgxLCAwLjUyNTY2NSwgMC44NTI0NzgsIDEuMjYyOTMsIDEuNjc0NCwgMi4wODQ2LCAyLjQ5NTczIiwgXAotICAgICAgICAgICIwLjEzNTY0NCwgMC41Mjc4MjYsIDAuODUzNDc1LCAxLjI2MzE1LCAxLjY3MzY1LCAyLjA4NDU1LCAyLjQ5NTY2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkExIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDc3NDEsIDAuMTkwNTY4LCAwLjMwMzk3NCwgMC40NDU0OTcsIDAuNTg2OTU3LCAwLjcyODI5LCAwLjg2OTIyIiwgXAotICAgICAgICAgICIwLjA1NTE4NiwgMC4xOTc5NDYsIDAuMzExNDIyLCAwLjQ1MzAyNCwgMC41OTQ0ODUsIDAuNzM1NjQ1LCAwLjg3NjgwNSIsIFwKLSAgICAgICAgICAiMC4wNjQ4MTgsIDAuMjA3MzUsIDAuMzIwOTExLCAwLjQ2MjUwNywgMC42MDM4NjEsIDAuNzQ1MDEzLCAwLjg4Njc3NCIsIFwKLSAgICAgICAgICAiMC4wNzQ2NjcsIDAuMjE2OTgzLCAwLjMzMDUzNCwgMC40NzIxNDUsIDAuNjEzNDIxLCAwLjc1NDU4NiwgMC44OTU3NjMiLCBcCi0gICAgICAgICAgIjAuMDgzNTY1LCAwLjIyNjYzNSwgMC4zNDAxODEsIDAuNDgxNzk5LCAwLjYyMzEzNSwgMC43NjQzNTgsIDAuOTA2MTA1IiwgXAotICAgICAgICAgICIwLjA5NTMwOSwgMC4yNDIyNzcsIDAuMzU1Njc3LCAwLjQ5NjY1MywgMC42Mzg1MzYsIDAuNzc5NTMzLCAwLjkyMDY4MSIsIFwKLSAgICAgICAgICAiMC4xMDQwMDksIDAuMjU1ODkxLCAwLjM2OTE3LCAwLjUxMDYwNywgMC42NTE5NDcsIDAuNzkzMTgzLCAwLjkzNDI4OSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTU5MiwgMC4zOTYxNzYsIDAuNjM2NTQ2LCAwLjkzNjk3OSwgMS4yMzc3NywgMS41Mzg0OCwgMS44Mzg3IiwgXAotICAgICAgICAgICIwLjA5NjU1OCwgMC4zOTYxOCwgMC42MzY0ODQsIDAuOTM3MDY4LCAxLjIzNzY1LCAxLjUzODA2LCAxLjgzODUxIiwgXAotICAgICAgICAgICIwLjEwMTg4MiwgMC4zOTYwNTEsIDAuNjM2NTA4LCAwLjkzNzE4LCAxLjIzNzU4LCAxLjUzNzI2LCAxLjgzODQiLCBcCi0gICAgICAgICAgIjAuMTA5NTA3LCAwLjM5NjcwMiwgMC42MzY1OTUsIDAuOTM3MDc2LCAxLjIzNzcxLCAxLjUzODA5LCAxLjgzODgxIiwgXAotICAgICAgICAgICIwLjExODA5MywgMC4zOTkyMDgsIDAuNjM2NTkzLCAwLjkzNzA3MywgMS4yMzc3NiwgMS41MzgxOSwgMS44Mzg3OSIsIFwKLSAgICAgICAgICAiMC4xMzIzNjgsIDAuNDA2MjAxLCAwLjYzOTE2OSwgMC45MzcxOTIsIDEuMjM3NzYsIDEuNTM3OTQsIDEuODM4NzUiLCBcCi0gICAgICAgICAgIjAuMTQzODM5LCAwLjQxNDA3MSwgMC42NDM2NzgsIDAuOTM4Mzk3LCAxLjIzNzYzLCAxLjUzODAyLCAxLjgzODU5Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2ODc2MywgMC4yNjY1NiwgMC40MjU1MzIsIDAuNjI2MDY0LCAwLjgyNzQ0NiwgMS4wMjc1NCwgMS4yMjc4OSIsIFwKLSAgICAgICAgICAiMC4wNzUyOTQsIDAuMjczNDU4LCAwLjQzMjM2OCwgMC42MzMwNDMsIDAuODMzOTUyLCAxLjAzNDU0LCAxLjIzNDg5IiwgXAotICAgICAgICAgICIwLjA4MTU3OCwgMC4yODAwNDIsIDAuNDM4NzIzLCAwLjYzOTM2NywgMC44Mzk4NTYsIDEuMDQwODcsIDEuMjQxOTciLCBcCi0gICAgICAgICAgIjAuMDg3NDgsIDAuMjg2MDUsIDAuNDQ1MTI2LCAwLjY0NTQwMSwgMC44NDYwMjgsIDEuMDQ3NDgsIDEuMjQ3MiIsIFwKLSAgICAgICAgICAiMC4wOTMxNiwgMC4yOTE4ODIsIDAuNDUwODAxLCAwLjY1MTE0NywgMC44NTI4ODIsIDEuMDUyNDgsIDEuMjUzMDYiLCBcCi0gICAgICAgICAgIjAuMTAxMzMyLCAwLjMwMTMyMywgMC40NTk4ODIsIDAuNjYwNzI2LCAwLjg2MTY0NiwgMS4wNjIwMSwgMS4yNjI3NCIsIFwKLSAgICAgICAgICAiMC4xMDc2MDksIDAuMzA5NTY5LCAwLjQ2ODIwNCwgMC42Njg4ODQsIDAuODY5NjAzLCAxLjA3MDE2LCAxLjI3MDg3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExMTg2NSwgMC41MjQzMDksIDAuODU3MDA1LCAxLjI3MzMyLCAxLjY5MDAxLCAyLjEwNiwgMi41Mjc3OSIsIFwKLSAgICAgICAgICAiMC4xMTE4NjksIDAuNTI0MTM4LCAwLjg1NzE4NCwgMS4yNzMzNSwgMS42ODk3NiwgMi4xMDYwMywgMi41MjY1IiwgXAotICAgICAgICAgICIwLjExMjg2LCAwLjUyNDAxMSwgMC44NTgzMTYsIDEuMjc0MTIsIDEuNjkyMTMsIDIuMTA2OTcsIDIuNTIyMTQiLCBcCi0gICAgICAgICAgIjAuMTE1MTM5LCAwLjUyMzk0MiwgMC44NTcxNjIsIDEuMjc0NDYsIDEuNjkyMjksIDIuMTA2MTMsIDIuNTI2MTkiLCBcCi0gICAgICAgICAgIjAuMTE4MzczLCAwLjUyNDM4MiwgMC44NTcwMSwgMS4yNzQyNSwgMS42OTAwNywgMi4xMDkyNSwgMi41MjYxNyIsIFwKLSAgICAgICAgICAiMC4xMjUxNDcsIDAuNTI2OTEzLCAwLjg1NzU3MSwgMS4yNzUyNiwgMS42OTAyMiwgMi4xMDkyMSwgMi41MjM2NSIsIFwKLSAgICAgICAgICAiMC4xMzIxODIsIDAuNTI4NjQ4LCAwLjg1ODMxMSwgMS4yNzUyOSwgMS42OTIzMSwgMi4xMDY3OCwgMi41MjM3NCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQ1NDExLCAwLjE4NzU2NCwgMC4zMDEwMDIsIDAuNDQyMzc1LCAwLjU4Mzc4MiwgMC43MjQ4NTksIDAuODY2MDYiLCBcCi0gICAgICAgICAgIjAuMDUxNjI5LCAwLjE5Mzg5LCAwLjMwNzMwNCwgMC40NDg3MjUsIDAuNTkwMDEyLCAwLjczMTIxNSwgMC44NzI1MjgiLCBcCi0gICAgICAgICAgIjAuMDU4OTI3LCAwLjIwMTM0MSwgMC4zMTQ3NDIsIDAuNDU2MTk4LCAwLjU5NzU5MywgMC43Mzg3MjcsIDAuODc5ODU0IiwgXAotICAgICAgICAgICIwLjA2NTg2MiwgMC4yMDg3ODQsIDAuMzIyMjgyLCAwLjQ2Mzc1LCAwLjYwNTA3OCwgMC43NDYyNDIsIDAuODg3Mzg1IiwgXAotICAgICAgICAgICIwLjA3MTkzNywgMC4yMTYxNzcsIDAuMzI5NjY1LCAwLjQ3MTIzOSwgMC42MTI1MiwgMC43NTM3NDcsIDAuODk0ODk1IiwgXAotICAgICAgICAgICIwLjA3OTkwNiwgMC4yMjc5ODMsIDAuMzQxNzM0LCAwLjQ4MzY2NCwgMC42MjQ5NTUsIDAuNzY2MTkxLCAwLjkwNzM3NCIsIFwKLSAgICAgICAgICAiMC4wODU4ODQsIDAuMjM4NDE3LCAwLjM1MTkyMSwgMC40OTQwMzksIDAuNjM1ODk5LCAwLjc3NzIzMiwgMC45MTgzMjciKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg4OTk1LCAwLjM4OTI1MiwgMC42Mjk2OTIsIDAuOTMwMDQ1LCAxLjIzMDc0LCAxLjUzMDk2LCAxLjgzMTQyIiwgXAotICAgICAgICAgICIwLjA4OTUxNywgMC4zODkzMDIsIDAuNjI5NjQ0LCAwLjkzMDE3NywgMS4yMzA2OSwgMS41MzA3OCwgMS44MzE1MSIsIFwKLSAgICAgICAgICAiMC4wOTMwNDYsIDAuMzg5Mjg0LCAwLjYyOTYyLCAwLjkzMDEzOSwgMS4yMzA2OCwgMS41MzA5OSwgMS44MzEzNiIsIFwKLSAgICAgICAgICAiMC4wOTgxNTIsIDAuMzg5OTQ3LCAwLjYyOTU0OCwgMC45MzAxNSwgMS4yMzA3MiwgMS41MzA3NywgMS44MzEyNyIsIFwKLSAgICAgICAgICAiMC4xMDQxMzEsIDAuMzkxNzA5LCAwLjYyOTc0LCAwLjkzMDAwMywgMS4yMzA3LCAxLjUzMTA2LCAxLjgzMTM3IiwgXAotICAgICAgICAgICIwLjExNDY0NSwgMC4zOTY0NTYsIDAuNjMxODcyLCAwLjkzMDMzNywgMS4yMzA2NSwgMS41MzA5MiwgMS44MzEzNSIsIFwKLSAgICAgICAgICAiMC4xMjM3NSwgMC40MDE4MTgsIDAuNjM0OTY5LCAwLjkzMTU3MSwgMS4yMzA3NiwgMS41MzA4MSwgMS44MzEzMyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjc4NzUsIDAuMjYzMTQ1LCAwLjQxOTMyOCwgMC42MTY2NjksIDAuODE0NDM1LCAxLjAxMTg4LCAxLjIwODk4IiwgXAotICAgICAgICAgICIwLjA3NDU4LCAwLjI3MDAyMywgMC40MjU5NDUsIDAuNjIzMzYxLCAwLjgyMTUzMiwgMS4wMTgxMSwgMS4yMTU3NCIsIFwKLSAgICAgICAgICAiMC4wODI2OTQsIDAuMjc4MjA0LCAwLjQzNDMzNiwgMC42MzE3OTYsIDAuODI5MTY4LCAxLjAyNjk2LCAxLjIyNDQ2IiwgXAotICAgICAgICAgICIwLjA5MDgzNSwgMC4yODY0LCAwLjQ0MjYyNywgMC42NDAxMDUsIDAuODM3Mjc1LCAxLjAzNTI2LCAxLjIzMjc0IiwgXAotICAgICAgICAgICIwLjA5OTA5NCwgMC4yOTQ1MjgsIDAuNDUwODQ5LCAwLjY0ODE3NCwgMC44NDYxNTYsIDEuMDQzMDgsIDEuMjQxNTEiLCBcCi0gICAgICAgICAgIjAuMTEwNjE1LCAwLjMwODA3NiwgMC40NjQwNDMsIDAuNjYxNTEsIDAuODU5MTYzLCAxLjA1NjQ2LCAxLjI1Mzg5IiwgXAotICAgICAgICAgICIwLjExOTc5NSwgMC4zMTk1ODQsIDAuNDc1NjAyLCAwLjY3MzMxMiwgMC44NzA3NTMsIDEuMDY4NzYsIDEuMjY2NCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTYwOTIsIDAuNTIwNTYzLCAwLjg0NzE5MiwgMS4yNTUyNCwgMS42NjM5NywgMi4wNzE0MSwgMi40Nzk4OCIsIFwKLSAgICAgICAgICAiMC4xMTYyMDMsIDAuNTIwNDQ5LCAwLjg0NzE0NCwgMS4yNTQ5NCwgMS42NjM4OCwgMi4wNzE0OSwgMi40ODA0IiwgXAotICAgICAgICAgICIwLjExODA4MywgMC41MjA0MTQsIDAuODQ3MjExLCAxLjI1NTQsIDEuNjYzNCwgMi4wNzE5NywgMi40Nzk2IiwgXAotICAgICAgICAgICIwLjEyMjIwOSwgMC41MjA0MjksIDAuODQ2OTg5LCAxLjI1NTM4LCAxLjY2MzI2LCAyLjA3MTQxLCAyLjQ3OTU0IiwgXAotICAgICAgICAgICIwLjEyNzY3LCAwLjUyMDkwNywgMC44NDY4MDUsIDEuMjU0OTMsIDEuNjYzNzQsIDIuMDcxNTgsIDIuNDc5OTgiLCBcCi0gICAgICAgICAgIjAuMTM3NDA2LCAwLjUyMzQ5NSwgMC44NDY4NywgMS4yNTQ5NiwgMS42NjMzOCwgMi4wNzI2LCAyLjQ3OTk2IiwgXAotICAgICAgICAgICIwLjE0NjU5NywgMC41Mjc0OTEsIDAuODQ4MTc3LCAxLjI1NTA2LCAxLjY2MzI3LCAyLjA3MTM5LCAyLjQ3OTY4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIxIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDI5ODcsIDAuMTg1MTEzLCAwLjI5ODU5OSwgMC40Mzk5NzUsIDAuNTgxMzc3LCAwLjcyMjQ1MywgMC44NjM2OTMiLCBcCi0gICAgICAgICAgIjAuMDUwNTI1LCAwLjE5Mjc2NCwgMC4zMDYxODEsIDAuNDQ3NTU4LCAwLjU4ODg3OCwgMC43MzAxMzIsIDAuODcxNDU4IiwgXAotICAgICAgICAgICIwLjA2MDE5MywgMC4yMDIzMzksIDAuMzE1NzM1LCAwLjQ1NzE2LCAwLjU5ODQxNywgMC43Mzk2MjksIDAuODgwODI2IiwgXAotICAgICAgICAgICIwLjA2OTY2NywgMC4yMTE3MjcsIDAuMzI1MDY2LCAwLjQ2NjU2NiwgMC42MDc3MjcsIDAuNzQ4OTE0LCAwLjg5MDA3MSIsIFwKLSAgICAgICAgICAiMC4wNzc4NTksIDAuMjIxMywgMC4zMzQ3MDksIDAuNDc2MTE2LCAwLjYxNzQ0NCwgMC43NTg2MTYsIDAuODk5Njg1IiwgXAotICAgICAgICAgICIwLjA4ODk5NSwgMC4yMzY5ODgsIDAuMzUwMTgxLCAwLjQ5MTAyNCwgMC42MzI4OTEsIDAuNzczOTYzLCAwLjkxNTEzMSIsIFwKLSAgICAgICAgICAiMC4wOTcwODUsIDAuMjUwNzI3LCAwLjM2Mzc4MywgMC41MDUwMjYsIDAuNjQ2MzQ0LCAwLjc4NzU2MSwgMC45Mjg2NDkiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg5MDA4LCAwLjM4OTMxLCAwLjYyOTYxOCwgMC45MzAwNzYsIDEuMjMwNzMsIDEuNTMwNzQsIDEuODMxNDYiLCBcCi0gICAgICAgICAgIjAuMDg5OTczLCAwLjM4OTMzMywgMC42Mjk1NzEsIDAuOTMwMTUsIDEuMjMwNTksIDEuNTMwOTksIDEuODMxNiIsIFwKLSAgICAgICAgICAiMC4wOTU3NzksIDAuMzg5MjY1LCAwLjYyOTY5OCwgMC45MzA0NjYsIDEuMjMwNjgsIDEuNTMwODYsIDEuODMxNDEiLCBcCi0gICAgICAgICAgIjAuMTAzOTM1LCAwLjM5MDAwMiwgMC42Mjk1MTcsIDAuOTMwMTg2LCAxLjIzMDY2LCAxLjUzMDcxLCAxLjgzMTMzIiwgXAotICAgICAgICAgICIwLjExMjcyNCwgMC4zOTI2MjksIDAuNjI5NjMzLCAwLjkzMDE0NSwgMS4yMzA3OCwgMS41MzA5LCAxLjgzMTM3IiwgXAotICAgICAgICAgICIwLjEyNjQ0NywgMC4zOTk4MzIsIDAuNjMyNDE4LCAwLjkzMDEzNSwgMS4yMzA2NCwgMS41MzA3OSwgMS44MzEzNiIsIFwKLSAgICAgICAgICAiMC4xMzgyMzgsIDAuNDA3OTU5LCAwLjYzNzA3NCwgMC45MzE1NjUsIDEuMjMwNjQsIDEuNTMwODUsIDEuODMxMzUiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY0MTE4LCAwLjI2MjUxLCAwLjQyMTE2NSwgMC42MjE1NDIsIDAuODIyOTQzLCAxLjAyMzE0LCAxLjIyMzM4IiwgXAotICAgICAgICAgICIwLjA3MDcxOSwgMC4yNjk0MTUsIDAuNDI3ODUxLCAwLjYyODMwMywgMC44Mjg5NDQsIDEuMDI5NTEsIDEuMjMwNDMiLCBcCi0gICAgICAgICAgIjAuMDc4NDgzLCAwLjI3NzU1NiwgMC40MzYwMDMsIDAuNjM2ODYzLCAwLjgzNzQxNiwgMS4wMzc4OCwgMS4yMzgyNCIsIFwKLSAgICAgICAgICAiMC4wODYzMDEsIDAuMjg1NTUxLCAwLjQ0NDIyNywgMC42NDUzOTIsIDAuODQ1MjU4LCAxLjA0NjMxLCAxLjI0NjUzIiwgXAotICAgICAgICAgICIwLjA5NDE3MiwgMC4yOTM0NTUsIDAuNDUyMjUsIDAuNjUyNjY3LCAwLjg1MzQzOSwgMS4wNTM5NiwgMS4yNTU5OSIsIFwKLSAgICAgICAgICAiMC4xMDUyMzIsIDAuMzA2NjM0LCAwLjQ2NTIyOCwgMC42NjU5MDcsIDAuODY3MTA5LCAxLjA2NzYzLCAxLjI2ODIyIiwgXAotICAgICAgICAgICIwLjExMzgwMywgMC4zMTc4ODMsIDAuNDc2NTU0LCAwLjY3NzM5LCAwLjg3ODAzNiwgMS4wNzkxNSwgMS4yODAwNSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTIxMDcsIDAuNTI0MjMyLCAwLjg1NzAyOSwgMS4yNzMzMywgMS42OTAzNywgMi4xMDU4MiwgMi41Mjc4MiIsIFwKLSAgICAgICAgICAiMC4xMTIxNDIsIDAuNTI0NzgsIDAuODU3NjcyLCAxLjI3NDA4LCAxLjY5MjI1LCAyLjEwNjQ1LCAyLjUyMjM5IiwgXAotICAgICAgICAgICIwLjExNDIyMSwgMC41MjM5MTUsIDAuODU4NDI4LCAxLjI3MzQxLCAxLjY4OTg0LCAyLjEwNTgzLCAyLjUyMzQ5IiwgXAotICAgICAgICAgICIwLjExODM5NiwgMC41MjQ3NTYsIDAuODU3MDk2LCAxLjI3MzYxLCAxLjY5MSwgMi4xMDYxNiwgMi41MjM2NiIsIFwKLSAgICAgICAgICAiMC4xMjM4NzcsIDAuNTI1MjM2LCAwLjg1NzA5NSwgMS4yNzUzMSwgMS42OTAyMSwgMi4xMDkzLCAyLjUyMjgxIiwgXAotICAgICAgICAgICIwLjEzMzgxNiwgMC41MjY5OTEsIDAuODU4NDcsIDEuMjc1MzMsIDEuNjg5NTgsIDIuMTA2MDEsIDIuNTIzNDkiLCBcCi0gICAgICAgICAgIjAuMTQzMzE5LCAwLjUzMTI3MSwgMC44NTk3MzgsIDEuMjc1MjYsIDEuNjkyMjUsIDIuMTA2MDIsIDIuNTIyMTEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQzAiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyMjQ3NSwgMC4xMDAwOTMsIDAuMTYyMTgyLCAwLjIzOTY5MSwgMC4zMTcxNjQsIDAuMzk0NDY3LCAwLjQ3MTgwMyIsIFwKLSAgICAgICAgICAiMC4wMzA3NCwgMC4xMDg0MzYsIDAuMTcwNTA3LCAwLjI0ODAyOSwgMC4zMjU0OTEsIDAuNDAyODY5LCAwLjQ4MDA4IiwgXAotICAgICAgICAgICIwLjA0MDQxNCwgMC4xMTg4NDcsIDAuMTgwOTA3LCAwLjI1ODQyMSwgMC4zMzU4NDMsIDAuNDEzMjE1LCAwLjQ5MDUyOSIsIFwKLSAgICAgICAgICAiMC4wNDczNDYsIDAuMTI5MTEsIDAuMTkxMTQyLCAwLjI2ODYxOCwgMC4zNDYxMDMsIDAuNDIzNDUzLCAwLjUwMDc1NSIsIFwKLSAgICAgICAgICAiMC4wNTMyNTMsIDAuMTM5NjMxLCAwLjIwMTYzLCAwLjI3OTEwOSwgMC4zNTU2OTgsIDAuNDMzODU5LCAwLjUxMTA5MyIsIFwKLSAgICAgICAgICAiMC4wNjA2NzUsIDAuMTU2NTM0LCAwLjIxODM4NiwgMC4yOTU4MTYsIDAuMzczMTg4LCAwLjQ1MDUwOSwgMC41Mjc3NjMiLCBcCi0gICAgICAgICAgIjAuMDY1NzQyLCAwLjE3MTI2LCAwLjIzMzEwOSwgMC4zMTA0MDksIDAuMzg3NjgsIDAuNDY1MDQ4LCAwLjU0MjQyMiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDg4NzQsIDAuMjExNjIxLCAwLjM0MjA0NSwgMC41MDUxMTksIDAuNjY4Mzg3LCAwLjgzMTUxNiwgMC45OTQzODQiLCBcCi0gICAgICAgICAgIjAuMDUyMTcxLCAwLjIxMTY0NSwgMC4zNDE5OTgsIDAuNTA1MTA5LCAwLjY2ODQxNSwgMC44MzEzNTksIDAuOTk0MzI5IiwgXAotICAgICAgICAgICIwLjA2MDcyNCwgMC4yMTI3ODEsIDAuMzQyMTI3LCAwLjUwNTE4MSwgMC42NjgzOTYsIDAuODMxMjc2LCAwLjk5NDgxMSIsIFwKLSAgICAgICAgICAiMC4wNzA3MDEsIDAuMjE3MDUxLCAwLjM0MzQwOCwgMC41MDUxNTEsIDAuNjY4MzcsIDAuODMxMzMxLCAwLjk5NDg1MiIsIFwKLSAgICAgICAgICAiMC4wNzk4MzksIDAuMjIyOTgyLCAwLjM0NjcxNCwgMC41MDYwMDQsIDAuNjY4MTYyLCAwLjgzMTU0OCwgMC45OTQzMjYiLCBcCi0gICAgICAgICAgIjAuMDkzNzIyLCAwLjIzNDYwNiwgMC4zNTQ5NDEsIDAuNTEwNzU0LCAwLjY3MDI0OSwgMC44MzE0ODksIDAuOTk0NzE5IiwgXAotICAgICAgICAgICIwLjEwNDc5NiwgMC4yNDYyNjQsIDAuMzYzODcyLCAwLjUxNzA1NywgMC42NzQyMjcsIDAuODMzODc5LCAwLjk5NTI2MSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjE0OCwgMC4yNTY5NiwgMC40MTM4NDMsIDAuNjE0MjU3LCAwLjgxNTY2MiwgMS4wMTU2NCwgMS4yMTU1OCIsIFwKLSAgICAgICAgICAiMC4wNjg1NDcsIDAuMjY0MDksIDAuNDIxMTQxLCAwLjYyMTQsIDAuODIxNjY4LCAxLjAyMjM5LCAxLjIyMyIsIFwKLSAgICAgICAgICAiMC4wNzc4MzEsIDAuMjczMTkxLCAwLjQzMDI4OSwgMC42MzAzNzksIDAuODMxMDEyLCAxLjAzMjA2LCAxLjIzMjExIiwgXAotICAgICAgICAgICIwLjA4NzQ3NywgMC4yODIzOSwgMC40Mzk0MDUsIDAuNjM5ODEsIDAuODQwMzYzLCAxLjA0MTk3LCAxLjI0MTY3IiwgXAotICAgICAgICAgICIwLjA5NzE0NSwgMC4yOTE0NjEsIDAuNDQ4NDU5LCAwLjY0ODg3OCwgMC44NDkyNzQsIDEuMDQ5OSwgMS4yNTAyOSIsIFwKLSAgICAgICAgICAiMC4xMTExODcsIDAuMzA2MzQ1LCAwLjQ2MzU1MSwgMC42NjM1MzgsIDAuODY0MTQ5LCAxLjA2NDU2LCAxLjI2NTQyIiwgXAotICAgICAgICAgICIwLjEyMTc0OCwgMC4zMTk2MjUsIDAuNDc2NTI5LCAwLjY3NjQ1MiwgMC44NzcwOTIsIDEuMDc3NjUsIDEuMjc4MzMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTE2MDc2LCAwLjUyNDIsIDAuODU3MDQ1LCAxLjI3MzM1LCAxLjY5MDQ0LCAyLjEwNjE4LCAyLjUyNjA2IiwgXAotICAgICAgICAgICIwLjExNTc2NywgMC41MjQyMzgsIDAuODU3MDg3LCAxLjI3NTM5LCAxLjY5MDQ3LCAyLjEwOTIzLCAyLjUyMzQxIiwgXAotICAgICAgICAgICIwLjExOTE1OCwgMC41MjQwNTcsIDAuODU3MDczLCAxLjI3NTI4LCAxLjY5MjI4LCAyLjEwNjAxLCAyLjUyNjE1IiwgXAotICAgICAgICAgICIwLjEyNDk4OCwgMC41MjQxNzQsIDAuODU3MjczLCAxLjI3NTQyLCAxLjY5MjM3LCAyLjEwNjYxLCAyLjUyNjQ2IiwgXAotICAgICAgICAgICIwLjEzMjE2OSwgMC41MjUyMjIsIDAuODU3Nzg1LCAxLjI3MzQyLCAxLjY5MDE2LCAyLjEwNzEsIDIuNTIzMDUiLCBcCi0gICAgICAgICAgIjAuMTQ0OCwgMC41MjgyODEsIDAuODU3MDQxLCAxLjI3NTMzLCAxLjY5MjQzLCAyLjEwOTI5LCAyLjUyMjQ3IiwgXAotICAgICAgICAgICIwLjE1NTczMSwgMC41MzQ2MjMsIDAuODYwMDg2LCAxLjI3NTI4LCAxLjY5MjQyLCAyLjEwNTc4LCAyLjUyMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEwNTA1LCAwLjAxMDUwNiwgMC4wMTA1MDMsIDAuMDEwNTAyLCAwLjAxMDUwNCwgMC4wMTA0OTksIDAuMDEwNDk4IiwgXAotICAgICAgICAgICIwLjAxMDQ1NiwgMC4wMTA0NjYsIDAuMDEwNDY1LCAwLjAxMDQ2NCwgMC4wMTA0NjQsIDAuMDEwNDYxLCAwLjAxMDQ2MSIsIFwKLSAgICAgICAgICAiMC4wMTA0NTIsIDAuMDEwNDYsIDAuMDEwNDYsIDAuMDEwNDYsIDAuMDEwNDU3LCAwLjAxMDQ1NiwgMC4wMTA0NTMiLCBcCi0gICAgICAgICAgIjAuMDEwNDg0LCAwLjAxMDQ2OSwgMC4wMTA0NjUsIDAuMDEwNDYxLCAwLjAxMDQ1OCwgMC4wMTA0NTgsIDAuMDEwNDU1IiwgXAotICAgICAgICAgICIwLjAxMDU0NiwgMC4wMTA0ODgsIDAuMDEwNDc2LCAwLjAxMDQ3MSwgMC4wMTA0NjcsIDAuMDEwNDY0LCAwLjAxMDQ1OSIsIFwKLSAgICAgICAgICAiMC4wMTA3MDMsIDAuMDEwNTQ0LCAwLjAxMDUxNywgMC4wMTA0OTgsIDAuMDEwNDg5LCAwLjAxMDQ3OCwgMC4wMTA0NzQiLCBcCi0gICAgICAgICAgIjAuMDEwODg3LCAwLjAxMDYxNywgMC4wMTA1NywgMC4wMTA1MzgsIDAuMDEwNTIsIDAuMDEwNTA3LCAwLjAxMDQ5NyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjQ2LCAwLjAwMjQ2NywgMC4wMDI0NjcsIDAuMDAyNDY3LCAwLjAwMjQ2NiwgMC4wMDI0NjYsIDAuMDAyNDY1IiwgXAotICAgICAgICAgICIwLjAwMjM4OCwgMC4wMDI0MjksIDAuMDAyNDM0LCAwLjAwMjQzNiwgMC4wMDI0MzcsIDAuMDAyNDM4LCAwLjAwMjQzOCIsIFwKLSAgICAgICAgICAiMC4wMDIzNDgsIDAuMDAyNDExLCAwLjAwMjQyMSwgMC4wMDI0MjYsIDAuMDAyNDI5LCAwLjAwMjQzLCAwLjAwMjQzMSIsIFwKLSAgICAgICAgICAiMC4wMDIzMjksIDAuMDAyMzk5LCAwLjAwMjQxMiwgMC4wMDI0MiwgMC4wMDI0MjQsIDAuMDAyNDI1LCAwLjAwMjQyNyIsIFwKLSAgICAgICAgICAiMC4wMDIzMzYsIDAuMDAyMzk1LCAwLjAwMjQwOSwgMC4wMDI0MTYsIDAuMDAyNDIxLCAwLjAwMjQyMywgMC4wMDI0MjUiLCBcCi0gICAgICAgICAgIjAuMDAyMzg3LCAwLjAwMjQwNiwgMC4wMDI0MTUsIDAuMDAyNDIxLCAwLjAwMjQyNCwgMC4wMDI0MjUsIDAuMDAyNDI3IiwgXAotICAgICAgICAgICIwLjAwMjQ3NywgMC4wMDI0MzUsIDAuMDAyNDM1LCAwLjAwMjQzNSwgMC4wMDI0MzUsIDAuMDAyNDM0LCAwLjAwMjQzNCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkExIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDk2MTksIDAuMDA5NjIxLCAwLjAwOTYxOCwgMC4wMDk2MTgsIDAuMDA5NjE2LCAwLjAwOTYxNCwgMC4wMDk2MTMiLCBcCi0gICAgICAgICAgIjAuMDA5NTYyLCAwLjAwOTU3NywgMC4wMDk1NzcsIDAuMDA5NTc3LCAwLjAwOTU3NSwgMC4wMDk1NzYsIDAuMDA5NTc1IiwgXAotICAgICAgICAgICIwLjAwOTYxMywgMC4wMDk1ODYsIDAuMDA5NTgsIDAuMDA5NTc3LCAwLjAwOTU3NiwgMC4wMDk1NzMsIDAuMDA5NTcxIiwgXAotICAgICAgICAgICIwLjAwOTY4NiwgMC4wMDk2MSwgMC4wMDk1OTYsIDAuMDA5NTg4LCAwLjAwOTU4MiwgMC4wMDk1NzcsIDAuMDA5NTc2IiwgXAotICAgICAgICAgICIwLjAwOTgwNywgMC4wMDk2NSwgMC4wMDk2MjcsIDAuMDA5NjA5LCAwLjAwOTU5NywgMC4wMDk1OSwgMC4wMDk1ODYiLCBcCi0gICAgICAgICAgIjAuMDEwMDg4LCAwLjAwOTc0NywgMC4wMDk2ODgsIDAuMDA5NjQ4LCAwLjAwOTYzOCwgMC4wMDk2MTgsIDAuMDA5NjA4IiwgXAotICAgICAgICAgICIwLjAxMDI4NCwgMC4wMDk4NDUsIDAuMDA5NzY0LCAwLjAwOTcwNywgMC4wMDk2ODEsIDAuMDA5NjYzLCAwLjAwOTY0NSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTgyNywgMC4wMDE4NTcsIDAuMDAxODYsIDAuMDAxODYxLCAwLjAwMTg2MiwgMC4wMDE4NjIsIDAuMDAxODYyIiwgXAotICAgICAgICAgICIwLjAwMTczMywgMC4wMDE4NDgsIDAuMDAxODYzLCAwLjAwMTg3MSwgMC4wMDE4NzYsIDAuMDAxODc4LCAwLjAwMTg3OSIsIFwKLSAgICAgICAgICAiMC4wMDE2NDUsIDAuMDAxODE0LCAwLjAwMTg0MiwgMC4wMDE4NTcsIDAuMDAxODY1LCAwLjAwMTg3LCAwLjAwMTg3MyIsIFwKLSAgICAgICAgICAiMC4wMDE1OTgsIDAuMDAxNzg0LCAwLjAwMTgyMSwgMC4wMDE4NDMsIDAuMDAxODU1LCAwLjAwMTg2MiwgMC4wMDE4NjYiLCBcCi0gICAgICAgICAgIjAuMDAxNTg4LCAwLjAwMTc2NSwgMC4wMDE4MDcsIDAuMDAxODMyLCAwLjAwMTg0NiwgMC4wMDE4NTQsIDAuMDAxODYiLCBcCi0gICAgICAgICAgIjAuMDAxNjI3LCAwLjAwMTc1NCwgMC4wMDE3OTYsIDAuMDAxODI0LCAwLjAwMTgzOSwgMC4wMDE4NDksIDAuMDAxODU1IiwgXAotICAgICAgICAgICIwLjAwMTcxLCAwLjAwMTc2OCwgMC4wMDE4MDMsIDAuMDAxODI4LCAwLjAwMTg0MSwgMC4wMDE4NSwgMC4wMDE4NTciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA3OTkxLCAwLjAwNzk5NiwgMC4wMDc5OTYsIDAuMDA3OTk1LCAwLjAwNzk5NiwgMC4wMDc5OTQsIDAuMDA3OTkzIiwgXAotICAgICAgICAgICIwLjAwNzk1LCAwLjAwNzk4OCwgMC4wMDc5OTIsIDAuMDA3OTkzLCAwLjAwNzk5NCwgMC4wMDc5OTUsIDAuMDA3OTk1IiwgXAotICAgICAgICAgICIwLjAwNzkzNiwgMC4wMDc5ODIsIDAuMDA3OTg5LCAwLjAwNzk5MiwgMC4wMDc5OTIsIDAuMDA3OTkzLCAwLjAwNzk5MyIsIFwKLSAgICAgICAgICAiMC4wMDc5NjcsIDAuMDA3OTksIDAuMDA3OTkzLCAwLjAwNzk5NSwgMC4wMDc5OTUsIDAuMDA3OTk4LCAwLjAwNzk5NSIsIFwKLSAgICAgICAgICAiMC4wMDgwMjcsIDAuMDA4MDA5LCAwLjAwODAwNiwgMC4wMDgwMDQsIDAuMDA4MDAyLCAwLjAwODAwMSwgMC4wMDgwMDMiLCBcCi0gICAgICAgICAgIjAuMDA4MTg1LCAwLjAwODA2NCwgMC4wMDgwNDUsIDAuMDA4MDM0LCAwLjAwODAyNywgMC4wMDgwMjIsIDAuMDA4MDE3IiwgXAotICAgICAgICAgICIwLjAwODM2MiwgMC4wMDgxMjcsIDAuMDA4MDkxLCAwLjAwODA3MiwgMC4wMDgwNTgsIDAuMDA4MDQ4LCAwLjAwODAzOSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjQ2MSwgMC4wMDI0NjgsIDAuMDAyNDY4LCAwLjAwMjQ2OCwgMC4wMDI0NjgsIDAuMDAyNDY3LCAwLjAwMjQ2NyIsIFwKLSAgICAgICAgICAiMC4wMDIzOSwgMC4wMDI0MjksIDAuMDAyNDM1LCAwLjAwMjQzNywgMC4wMDI0MzgsIDAuMDAyNDM4LCAwLjAwMjQzOCIsIFwKLSAgICAgICAgICAiMC4wMDIzNTcsIDAuMDAyNDEzLCAwLjAwMjQyMywgMC4wMDI0MjcsIDAuMDAyNDMsIDAuMDAyNDMxLCAwLjAwMjQzMiIsIFwKLSAgICAgICAgICAiMC4wMDIzNjQsIDAuMDAyNDA5LCAwLjAwMjQxOCwgMC4wMDI0MjUsIDAuMDAyNDI4LCAwLjAwMjQyOSwgMC4wMDI0MjkiLCBcCi0gICAgICAgICAgIjAuMDAyNDAzLCAwLjAwMjQxNiwgMC4wMDI0MjIsIDAuMDAyNDI2LCAwLjAwMjQyOCwgMC4wMDI0MjksIDAuMDAyNDI5IiwgXAotICAgICAgICAgICIwLjAwMjUyMSwgMC4wMDI0NTMsIDAuMDAyNDQ2LCAwLjAwMjQ0MiwgMC4wMDI0NDEsIDAuMDAyNDM5LCAwLjAwMjQzOCIsIFwKLSAgICAgICAgICAiMC4wMDI2OCwgMC4wMDI1MDgsIDAuMDAyNDgyLCAwLjAwMjQ2OCwgMC4wMDI0NiwgMC4wMDI0NTUsIDAuMDAyNDUxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNzA4LCAwLjAwNzA4OCwgMC4wMDcwODgsIDAuMDA3MDg4LCAwLjAwNzA4NywgMC4wMDcwODcsIDAuMDA3MDg1IiwgXAotICAgICAgICAgICIwLjAwNzA0NywgMC4wMDcwOCwgMC4wMDcwODQsIDAuMDA3MDg2LCAwLjAwNzA4OCwgMC4wMDcwODcsIDAuMDA3MDg3IiwgXAotICAgICAgICAgICIwLjAwNzA4MSwgMC4wMDcwODgsIDAuMDA3MDg5LCAwLjAwNzA4OSwgMC4wMDcwODksIDAuMDA3MDg3LCAwLjAwNzA4OCIsIFwKLSAgICAgICAgICAiMC4wMDcxOCwgMC4wMDcxMjQsIDAuMDA3MTEzLCAwLjAwNzEwNSwgMC4wMDcxMDEsIDAuMDA3MDk4LCAwLjAwNzA5NiIsIFwKLSAgICAgICAgICAiMC4wMDczMTUsIDAuMDA3MTYzLCAwLjAwNzE0NCwgMC4wMDcxMjcsIDAuMDA3MTE4LCAwLjAwNzExMiwgMC4wMDcxMDgiLCBcCi0gICAgICAgICAgIjAuMDA3NTE0LCAwLjAwNzI1NSwgMC4wMDcyMDMsIDAuMDA3MTczLCAwLjAwNzE1OSwgMC4wMDcxNDYsIDAuMDA3MTM1IiwgXAotICAgICAgICAgICIwLjAwNzc1MSwgMC4wMDczNDgsIDAuMDA3Mjc2LCAwLjAwNzIyNCwgMC4wMDcyMDMsIDAuMDA3MTg0LCAwLjAwNzE3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxNzQsIDAuMDAxNzcsIDAuMDAxNzczLCAwLjAwMTc3NSwgMC4wMDE3NzUsIDAuMDAxNzc1LCAwLjAwMTc3NiIsIFwKLSAgICAgICAgICAiMC4wMDE2NDgsIDAuMDAxNzYyLCAwLjAwMTc3OCwgMC4wMDE3ODYsIDAuMDAxNzksIDAuMDAxNzkzLCAwLjAwMTc5NCIsIFwKLSAgICAgICAgICAiMC4wMDE1NzIsIDAuMDAxNzMxLCAwLjAwMTc1OCwgMC4wMDE3NzMsIDAuMDAxNzgxLCAwLjAwMTc4NiwgMC4wMDE3ODkiLCBcCi0gICAgICAgICAgIjAuMDAxNTU0LCAwLjAwMTcxLCAwLjAwMTc0MywgMC4wMDE3NjMsIDAuMDAxNzczLCAwLjAwMTc3OSwgMC4wMDE3ODQiLCBcCi0gICAgICAgICAgIjAuMDAxNTgzLCAwLjAwMTcwNCwgMC4wMDE3MzgsIDAuMDAxNzU4LCAwLjAwMTc2OSwgMC4wMDE3NzYsIDAuMDAxNzgxIiwgXAotICAgICAgICAgICIwLjAwMTY5NSwgMC4wMDE3MjEsIDAuMDAxNzQ2LCAwLjAwMTc2MiwgMC4wMDE3NzIsIDAuMDAxNzc4LCAwLjAwMTc4MyIsIFwKLSAgICAgICAgICAiMC4wMDE4NDEsIDAuMDAxNzYsIDAuMDAxNzY5LCAwLjAwMTc3OCwgMC4wMDE3ODQsIDAuMDAxNzg5LCAwLjAwMTc5MiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDU4MzMsIDAuMDA1ODYsIDAuMDA1ODYzLCAwLjAwNTg2NSwgMC4wMDU4NjYsIDAuMDA1ODY2LCAwLjAwNTg2NiIsIFwKLSAgICAgICAgICAiMC4wMDU4MjUsIDAuMDA1ODgzLCAwLjAwNTg5MSwgMC4wMDU4OTUsIDAuMDA1ODk3LCAwLjAwNTg5OCwgMC4wMDU5MDIiLCBcCi0gICAgICAgICAgIjAuMDA1OTI1LCAwLjAwNTkxMiwgMC4wMDU5MTIsIDAuMDA1OTExLCAwLjAwNTkxLCAwLjAwNTkxLCAwLjAwNTkxMSIsIFwKLSAgICAgICAgICAiMC4wMDYwMzQsIDAuMDA1OTQxLCAwLjAwNTkzMywgMC4wMDU5MjMsIDAuMDA1OTI2LCAwLjAwNTkyMywgMC4wMDU5MjEiLCBcCi0gICAgICAgICAgIjAuMDA2MTI3LCAwLjAwNTk5MSwgMC4wMDU5NjgsIDAuMDA1OTU0LCAwLjAwNTkzNiwgMC4wMDU5MzksIDAuMDA1OTM1IiwgXAotICAgICAgICAgICIwLjAwNjQyNSwgMC4wMDYxMTMsIDAuMDA2MDQ1LCAwLjAwNjAxMywgMC4wMDU5ODcsIDAuMDA1OTc5LCAwLjAwNTk3IiwgXAotICAgICAgICAgICIwLjAwNjcwOCwgMC4wMDYyNDEsIDAuMDA2MTM2LCAwLjAwNjA3NywgMC4wMDYwNDEsIDAuMDA2MDIzLCAwLjAwNjAwOSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjUzMSwgMC4wMDI1NjYsIDAuMDAyNTcsIDAuMDAyNTcxLCAwLjAwMjU3MiwgMC4wMDI1NzIsIDAuMDAyNTcyIiwgXAotICAgICAgICAgICIwLjAwMjQ1OSwgMC4wMDI1MzcsIDAuMDAyNTUxLCAwLjAwMjU1OSwgMC4wMDI1NjIsIDAuMDAyNTY1LCAwLjAwMjU2NSIsIFwKLSAgICAgICAgICAiMC4wMDI1MTksIDAuMDAyNTM5LCAwLjAwMjU1LCAwLjAwMjU1NywgMC4wMDI1NjEsIDAuMDAyNTYzLCAwLjAwMjU2NSIsIFwKLSAgICAgICAgICAiMC4wMDI1ODgsIDAuMDAyNTQ4LCAwLjAwMjU1MywgMC4wMDI1NTgsIDAuMDAyNTYxLCAwLjAwMjU2MywgMC4wMDI1NjQiLCBcCi0gICAgICAgICAgIjAuMDAyNzU5LCAwLjAwMjYwNiwgMC4wMDI1OSwgMC4wMDI1ODMsIDAuMDAyNTgsIDAuMDAyNTc4LCAwLjAwMjU3NiIsIFwKLSAgICAgICAgICAiMC4wMDMwNTgsIDAuMDAyNzIzLCAwLjAwMjY2NSwgMC4wMDI2MzUsIDAuMDAyNjE5LCAwLjAwMjYxLCAwLjAwMjYwMyIsIFwKLSAgICAgICAgICAiMC4wMDMzNjcsIDAuMDAyODUyLCAwLjAwMjc1NCwgMC4wMDI3MDksIDAuMDAyNjc3LCAwLjAwMjY1NywgMC4wMDI2NDMiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogT1IzWDYgKgotICogLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKE9SM1g2KSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDEuMTcwOTQ7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTk3MDc7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxOTYyMjM7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxOTcwNzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA5MDIsIDAuMDAwOTY1LCAwLjAwMDk3NCwgMC4wMDA5OTMsIDAuMDAxMDA3LCAwLjAwMTAwNCwgMC4wMDEwMTgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDE5MDMsIDAuMDAxOTAzLCAwLjAwMTkwNCwgMC4wMDE5MDQsIDAuMDAxOTA0LCAwLjAwMTkwNCwgMC4wMDE5MDQiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTgxMzM5OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTgwNjU4OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTgxMzM5OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDg4LCAwLjAwMDk4MywgMC4wMDEwMDUsIDAuMDAxMDExLCAwLjAwMTAxMiwgMC4wMDEwMTUsIDAuMDAxMDExIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxMDc4LCAwLjAwMTA3OCwgMC4wMDEwNzksIDAuMDAxMDc5LCAwLjAwMTA3OSwgMC4wMDEwNzksIDAuMDAxMDc5Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihDKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE2NjIwNDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE2NjIwNDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE2NjEyNTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyNDksIDAuMDAwMjQ5LCAwLjAwMDI0OSwgMC4wMDAyNDksIDAuMDAwMjQ5LCAwLjAwMDI0OSwgMC4wMDAyNDkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA3NzcsIDAuMDAwNzc4LCAwLjAwMDc3NywgMC4wMDA3NzcsIDAuMDAwNzc3LCAwLjAwMDc3NywgMC4wMDA3NzciKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMi4wMTA0OwotICAgIGZ1bmN0aW9uIDogIigoQStCKStDKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjkyOTYsIDAuMDY3MjcyLCAwLjEwNDAyMywgMC4xMzAyNDUsIDAuMTcyMTEyLCAwLjIwODc3LCAwLjI2MTIxMiIsIFwKLSAgICAgICAgICAiMC4wMzc2NzIsIDAuMDc1NjI5LCAwLjExMjQxLCAwLjEzODYwOSwgMC4xODA1NjQsIDAuMjE3MjE2LCAwLjI2OTU4NCIsIFwKLSAgICAgICAgICAiMC4wNDcwMDEsIDAuMDg1MDM3LCAwLjEyMTc4NSwgMC4xNDc5OTMsIDAuMTg5OTIzLCAwLjIyNjU5NCwgMC4yNzg5NTkiLCBcCi0gICAgICAgICAgIjAuMDU0MTExLCAwLjA5MjUxNSwgMC4xMjkyNDUsIDAuMTU1NDU1LCAwLjE5NzM5MSwgMC4yMzQwNCwgMC4yODY0MzkiLCBcCi0gICAgICAgICAgIjAuMDU5Nzk2LCAwLjA5ODU2OSwgMC4xMzUyMSwgMC4xNjE0MiwgMC4yMDMzMywgMC4yNDAwMDYsIDAuMjkyMzc2IiwgXAotICAgICAgICAgICIwLjA2NzE2NywgMC4xMDY1NzYsIDAuMTQzMjc4LCAwLjE2OTQ1NywgMC4yMTEzNTQsIDAuMjQ4MDEsIDAuMzAwMzgxIiwgXAotICAgICAgICAgICIwLjA3MjUwMywgMC4xMTIzNSwgMC4xNDg5NCwgMC4xNzUxNjUsIDAuMjE3MDMyLCAwLjI1MzY3OSwgMC4zMDYwMzUiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTk1NzMsIDAuMDk0MjI3LCAwLjE3MTExMSwgMC4yMjY0NTMsIDAuMzE0MjIsIDAuMzkxNDIzLCAwLjUwMjk3IiwgXAotICAgICAgICAgICIwLjAxOTU1NSwgMC4wOTQyNTMsIDAuMTcxMjM0LCAwLjIyNjI2LCAwLjMxNDkxMSwgMC4zOTIzMDgsIDAuNTAyOTQ0IiwgXAotICAgICAgICAgICIwLjAyMDg3MywgMC4wOTQ0MzUsIDAuMTcxMjg1LCAwLjIyNjQzNywgMC4zMTQ1NDEsIDAuMzkyMjkxLCAwLjUwMjkzNyIsIFwKLSAgICAgICAgICAiMC4wMjIwOTksIDAuMDk0ODEyLCAwLjE3MTM5MSwgMC4yMjY0ODgsIDAuMzE0Mzg3LCAwLjM5MjI3MywgMC41MDI5MDciLCBcCi0gICAgICAgICAgIjAuMDIzNDE1LCAwLjA5NTI0MSwgMC4xNzE0NDcsIDAuMjI2NDY5LCAwLjMxNDg4OSwgMC4zOTIyOTQsIDAuNTAyNTEzIiwgXAotICAgICAgICAgICIwLjAyNTQ1LCAwLjA5NjE1MiwgMC4xNzE2NzMsIDAuMjI2NTU1LCAwLjMxNDczMSwgMC4zOTIxMzMsIDAuNTAyNjgxIiwgXAotICAgICAgICAgICIwLjAyNzAwNywgMC4wOTY4OTIsIDAuMTcyMDE2LCAwLjIyNjc0MSwgMC4zMTQ4NzcsIDAuMzkyMDk4LCAwLjUwMjUzNyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1NjUzNSwgMC4xMDEyMzcsIDAuMTM5NTU5LCAwLjE2NjUsIDAuMjA5NDUzLCAwLjI0NzAxMSwgMC4zMDA2NTQiLCBcCi0gICAgICAgICAgIjAuMDYxNjk5LCAwLjEwNjM3OCwgMC4xNDQ3MDIsIDAuMTcxNjMyLCAwLjIxNDU4OSwgMC4yNTIxNDQsIDAuMzA1ODA2IiwgXAotICAgICAgICAgICIwLjA2NjkxMiwgMC4xMTE1NTUsIDAuMTQ5ODU5LCAwLjE3Njc4OCwgMC4yMTk3NDYsIDAuMjU3MzE4LCAwLjMxMDk2MSIsIFwKLSAgICAgICAgICAiMC4wNzEzNTcsIDAuMTE2MjA4LCAwLjE1NDUyNiwgMC4xODE0NTcsIDAuMjI0NDE4LCAwLjI2MTk4MywgMC4zMTU2MjYiLCBcCi0gICAgICAgICAgIjAuMDc1MTc5LCAwLjEyMDM5MSwgMC4xNTg4MDUsIDAuMTg1NzQ1LCAwLjIyODY5NSwgMC4yNjYyNTUsIDAuMzE5OTA3IiwgXAotICAgICAgICAgICIwLjA4MDQyOSwgMC4xMjYyMTksIDAuMTY0NzM2LCAwLjE5MTY3LCAwLjIzNDYyLCAwLjI3MjE3NCwgMC4zMjU4MTMiLCBcCi0gICAgICAgICAgIjAuMDg0NDM4LCAwLjEzMDcwMiwgMC4xNjkyOTEsIDAuMTk2MjQ2LCAwLjIzOTE4OCwgMC4yNzY3NTgsIDAuMzMwNCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyNzI0OCwgMC4xMDE1MDcsIDAuMTc2Mjc5LCAwLjIzMDQ2NCwgMC4zMTgwNjIsIDAuMzk0OTgzLCAwLjUwNTE0MiIsIFwKLSAgICAgICAgICAiMC4wMjcyMTMsIDAuMTAxNDczLCAwLjE3NjI0LCAwLjIzMDI1MiwgMC4zMTgwNTUsIDAuMzk0OTE2LCAwLjUwNDMzMSIsIFwKLSAgICAgICAgICAiMC4wMjczMTgsIDAuMTAxNTMxLCAwLjE3NjI2OCwgMC4yMzA0ODgsIDAuMzE4MDY2LCAwLjM5NDk2OSwgMC41MDUxNTciLCBcCi0gICAgICAgICAgIjAuMDI3OTMxLCAwLjEwMTg0NywgMC4xNzY0OTUsIDAuMjMwNTEyLCAwLjMxNzg5OCwgMC4zOTUwMjksIDAuNTA1MTkiLCBcCi0gICAgICAgICAgIjAuMDI4NjAxLCAwLjEwMjM1NCwgMC4xNzY3ODYsIDAuMjMwNzM2LCAwLjMxNzg1MiwgMC4zOTUxMzksIDAuNTA1MzQyIiwgXAotICAgICAgICAgICIwLjAyOTU0NCwgMC4xMDMxNjQsIDAuMTc3NDMxLCAwLjIzMTI0OCwgMC4zMTg2NTYsIDAuMzk1MzY1LCAwLjUwNTM3NSIsIFwKLSAgICAgICAgICAiMC4wMzA0NDQsIDAuMTA0MTgzLCAwLjE3NzkxMywgMC4yMzE4MTMsIDAuMzE4OTQ0LCAwLjM5NTAyNiwgMC41MDU2ODQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjc5MjksIDAuMDY1NzYzLCAwLjEwMjQ2MiwgMC4xMjg2NjIsIDAuMTcwNjE1LCAwLjIwNzI1OCwgMC4yNTk2MiIsIFwKLSAgICAgICAgICAiMC4wMzYyMjMsIDAuMDc0MDE1LCAwLjExMDc0MywgMC4xMzY5NTIsIDAuMTc4ODY3LCAwLjIxNTUxOSwgMC4yNjc4OTMiLCBcCi0gICAgICAgICAgIjAuMDQ1MTA3LCAwLjA4MzA2MSwgMC4xMTk3ODYsIDAuMTQ1OTg0LCAwLjE4NzkwOCwgMC4yMjQ1NzIsIDAuMjc2OTI0IiwgXAotICAgICAgICAgICIwLjA1MTU3NywgMC4wODk5MDUsIDAuMTI2NjIyLCAwLjE1MjgxNCwgMC4xOTQ3MDcsIDAuMjMxMzc4LCAwLjI4Mzc3OCIsIFwKLSAgICAgICAgICAiMC4wNTY2OTgsIDAuMDk1Mzk3LCAwLjEzMjAzLCAwLjE1ODIzMiwgMC4yMDAxMjYsIDAuMjM2NzgyLCAwLjI4OTE2NSIsIFwKLSAgICAgICAgICAiMC4wNjM1MDMsIDAuMTAyODczLCAwLjEzOTI1MywgMC4xNjU3NzYsIDAuMjA3MzMyLCAwLjI0NDMxOSwgMC4yOTYzNDEiLCBcCi0gICAgICAgICAgIjAuMDY4MTM2LCAwLjEwODE2MiwgMC4xNDQ3NzEsIDAuMTcxMDE2LCAwLjIxMjg0NCwgMC4yNDk0OCwgMC4zMDE4OTMiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTkwOCwgMC4wOTM5NjYsIDAuMTcwODY5LCAwLjIyNjE4MywgMC4zMTQ4MDksIDAuMzkyMjI1LCAwLjUwMjQ1OCIsIFwKLSAgICAgICAgICAiMC4wMTkyMTQsIDAuMDk0MDAyLCAwLjE3MTA5LCAwLjIyNjEyNiwgMC4zMTQ3OCwgMC4zOTE4MzksIDAuNTAyNTAyIiwgXAotICAgICAgICAgICIwLjAyMDU1NSwgMC4wOTQyMzcsIDAuMTcwOTI4LCAwLjIyNjMyMywgMC4zMTQ0MywgMC4zOTIyMTEsIDAuNTAyODc0IiwgXAotICAgICAgICAgICIwLjAyMjA1LCAwLjA5NDYyMywgMC4xNzEyNzEsIDAuMjI2MzUzLCAwLjMxNDc0NywgMC4zOTIxNTMsIDAuNTAyODMzIiwgXAotICAgICAgICAgICIwLjAyMzUzOCwgMC4wOTUxNjMsIDAuMTcxMzAxLCAwLjIyNjI5MywgMC4zMTQ3NTIsIDAuMzkxOTg3LCAwLjUwMjc4IiwgXAotICAgICAgICAgICIwLjAyNTI2MSwgMC4wOTYxNDgsIDAuMTcxNjA3LCAwLjIyNjMyNCwgMC4zMTQ2NDEsIDAuMzkyMDE1LCAwLjUwMjUzNyIsIFwKLSAgICAgICAgICAiMC4wMjY4NjgsIDAuMDk2Nzg5LCAwLjE3MTk0NiwgMC4yMjY2MDcsIDAuMzE0NzksIDAuMzkxOTYsIDAuNTAyMjYyIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU0NTA3LCAwLjA5OTIyNiwgMC4xMzc1NTQsIDAuMTY0NSwgMC4yMDc0NTUsIDAuMjQ1MDE2LCAwLjI5ODY1OCIsIFwKLSAgICAgICAgICAiMC4wNjA1MzEsIDAuMTA1MjEzLCAwLjE0MzUzOCwgMC4xNzA0NzEsIDAuMjEzNDMsIDAuMjUwOTkyLCAwLjMwNDYzMiIsIFwKLSAgICAgICAgICAiMC4wNjc4MjQsIDAuMTEyNDM4LCAwLjE1MDc1MSwgMC4xNzc2NzksIDAuMjIwNjQzLCAwLjI1ODIxLCAwLjMxMTg1NCIsIFwKLSAgICAgICAgICAiMC4wNzQ1MDQsIDAuMTE5MjY2LCAwLjE1NzcxOSwgMC4xODQ2NDcsIDAuMjI3NjAyLCAwLjI2NTE2NSwgMC4zMTg4NCIsIFwKLSAgICAgICAgICAiMC4wODAxODQsIDAuMTI1NDIsIDAuMTYzODA0LCAwLjE5MDY5NCwgMC4yMzM3LCAwLjI3MTIwNSwgMC4zMjQ4NDMiLCBcCi0gICAgICAgICAgIjAuMDg4MDgyLCAwLjEzMzg5MywgMC4xNzI0NDQsIDAuMTk5NDI4LCAwLjI0MjM4MiwgMC4yNzk5MywgMC4zMzM1MzgiLCBcCi0gICAgICAgICAgIjAuMDk0MjA0LCAwLjE0MDM0NywgMC4xNzg5NzcsIDAuMjA1OTY4LCAwLjI0ODkzOSwgMC4yODY0NjUsIDAuMzQwMTE3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDI3Mjk5LCAwLjEwMTUwMywgMC4xNzYyNzQsIDAuMjMwNDYyLCAwLjMxODA1MSwgMC4zOTQ5OCwgMC41MDUxNDIiLCBcCi0gICAgICAgICAgIjAuMDI3MTcxLCAwLjEwMTQ2NiwgMC4xNzYyMzYsIDAuMjMwNDM3LCAwLjMxODA1OSwgMC4zOTQ5MjgsIDAuNTA0NTA4IiwgXAotICAgICAgICAgICIwLjAyNzQ3NywgMC4xMDE1NywgMC4xNzYyOTMsIDAuMjMwNDY1LCAwLjMxNzc1OSwgMC4zOTQ5NzQsIDAuNTA1MTUiLCBcCi0gICAgICAgICAgIjAuMDI4MTI3LCAwLjEwMjA0OSwgMC4xNzY1MzEsIDAuMjMwNTEzLCAwLjMxODE2NiwgMC4zOTUwNDYsIDAuNTA1MzI3IiwgXAotICAgICAgICAgICIwLjAyODk3OCwgMC4xMDI2MzQsIDAuMTc2OTYyLCAwLjIzMDkyOSwgMC4zMTgzNzIsIDAuMzk0NjAzLCAwLjUwNTI4OCIsIFwKLSAgICAgICAgICAiMC4wMzAyODYsIDAuMTAzNjAzLCAwLjE3NzYwMSwgMC4yMzE0NTYsIDAuMzE4NzM0LCAwLjM5NTU3MiwgMC41MDU0NDIiLCBcCi0gICAgICAgICAgIjAuMDMxNDU4LCAwLjEwNDUwMywgMC4xNzgxNDksIDAuMjMxODk2LCAwLjMxODYwMiwgMC4zOTUxMzksIDAuNTA1ODIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjYxNDIsIDAuMDYzODk2LCAwLjEwMDU3MSwgMC4xMjY3NzMsIDAuMTY4Njk3LCAwLjIwNTM3OCwgMC4yNTc3ODciLCBcCi0gICAgICAgICAgIjAuMDM0MzQyLCAwLjA3MjA3NSwgMC4xMDg3NzMsIDAuMTM1MDI1LCAwLjE3NjkxNiwgMC4yMTM1NjksIDAuMjY1ODI1IiwgXAotICAgICAgICAgICIwLjA0MjQ1MiwgMC4wODA2MDIsIDAuMTE3MzI1LCAwLjE0MzQyMiwgMC4xODUzNDEsIDAuMjIyMTI1LCAwLjI3NDM5NiIsIFwKLSAgICAgICAgICAiMC4wNDgyMzEsIDAuMDg2NzAxLCAwLjEyMzM5LCAwLjE0OTU3OCwgMC4xOTE0NzIsIDAuMjI4MTU4LCAwLjI4MDY5NSIsIFwKLSAgICAgICAgICAiMC4wNTI5NzgsIDAuMDkxNzgzLCAwLjEyODQ5MiwgMC4xNTQ2MjUsIDAuMTk2NTYzLCAwLjIzMzIyNywgMC4yODU3MTEiLCBcCi0gICAgICAgICAgIjAuMDU4NzQ2LCAwLjA5ODA2NCwgMC4xMzQ3MTksIDAuMTYwOTM3LCAwLjIwMjcxMywgMC4yMzk2MzIsIDAuMjkxNzgiLCBcCi0gICAgICAgICAgIjAuMDYyODc2LCAwLjEwMjk5MiwgMC4xMzk4ODEsIDAuMTY1ODM3LCAwLjIwNzY0MSwgMC4yNDQ1NTcsIDAuMjk2NTg2Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE4ODgzLCAwLjA5Mzg1MiwgMC4xNzA4MDUsIDAuMjI2MDE4LCAwLjMxNDg1MywgMC4zOTE4MiwgMC41MDE5NjgiLCBcCi0gICAgICAgICAgIjAuMDE5MTU2LCAwLjA5MzkyNCwgMC4xNzEwMjEsIDAuMjI1ODYzLCAwLjMxNDIyLCAwLjM5MjA5MiwgMC41MDIyMjIiLCBcCi0gICAgICAgICAgIjAuMDIwNzEyLCAwLjA5NDI2NCwgMC4xNzA5NCwgMC4yMjYzMywgMC4zMTQ4MywgMC4zOTE3MzIsIDAuNTAyMzk1IiwgXAotICAgICAgICAgICIwLjAyMjM0OCwgMC4wOTQ4NSwgMC4xNzExNiwgMC4yMjYzODUsIDAuMzE0ODM0LCAwLjM5MTg0MywgMC41MDIyNjciLCBcCi0gICAgICAgICAgIjAuMDIzNjk1LCAwLjA5NTMxNywgMC4xNzEzNjcsIDAuMjI2NDE3LCAwLjMxNDQwNywgMC4zOTE2NjgsIDAuNTAyMzA0IiwgXAotICAgICAgICAgICIwLjAyNTYzOCwgMC4wOTY1MzgsIDAuMTcxNjU4LCAwLjIyNjU0OCwgMC4zMTQ2MDcsIDAuMzkyMTA0LCAwLjUwMjkzMyIsIFwKLSAgICAgICAgICAiMC4wMjcyNDEsIDAuMDk3MTkyLCAwLjE3MjA2MSwgMC4yMjY2NSwgMC4zMTQ3NzcsIDAuMzkxOTQyLCAwLjUwMjExNSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0OTczMywgMC4wOTQ0NTIsIDAuMTMyNzk3LCAwLjE1OTczLCAwLjIwMjcxLCAwLjI0MDI3OSwgMC4yOTM5MzEiLCBcCi0gICAgICAgICAgIjAuMDU2Nzk1LCAwLjEwMTQ2MSwgMC4xMzk4MTQsIDAuMTY2NzUzLCAwLjIwOTcxMywgMC4yNDcyNzYsIDAuMzAwOTUxIiwgXAotICAgICAgICAgICIwLjA2NjIzNCwgMC4xMTA3OTMsIDAuMTQ5MTA3LCAwLjE3NjA0MSwgMC4yMTkwMDIsIDAuMjU2NTY0LCAwLjMxMDIyIiwgXAotICAgICAgICAgICIwLjA3NDcxMiwgMC4xMTkxOTEsIDAuMTU3NTM0LCAwLjE4NDQ1LCAwLjIyNzQxNywgMC4yNjQ5NzksIDAuMzE4NjEiLCBcCi0gICAgICAgICAgIjAuMDgxOTcsIDAuMTI3MDQ2LCAwLjE2NTQ2MiwgMC4xOTI0MDIsIDAuMjM1NDI4LCAwLjI3Mjk5NCwgMC4zMjY2MzEiLCBcCi0gICAgICAgICAgIjAuMDkxNzY5LCAwLjEzNzAxNiwgMC4xNzU3MTcsIDAuMjAyNzExLCAwLjI0NTYyOCwgMC4yODMxNjUsIDAuMzM2ODI1IiwgXAotICAgICAgICAgICIwLjA5OTIwNCwgMC4xNDQ3MzUsIDAuMTgzMzk2LCAwLjIxMDM3NiwgMC4yNTMzMywgMC4yOTA4NjMsIDAuMzQ0NDgxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDI3MjM1LCAwLjEwMTQ5NywgMC4xNzYyNTUsIDAuMjMwMzc5LCAwLjMxODA0MywgMC4zOTQ5ODgsIDAuNTA1MTUyIiwgXAotICAgICAgICAgICIwLjAyNzIxNywgMC4xMDEyODQsIDAuMTc2MTU1LCAwLjIzMDIzNywgMC4zMTgwNDQsIDAuMzk0OTUxLCAwLjUwNTI3OSIsIFwKLSAgICAgICAgICAiMC4wMjcyOTIsIDAuMTAxNjIsIDAuMTc2MzIsIDAuMjMwMzM4LCAwLjMxODA5NywgMC4zOTQ1MzQsIDAuNTA1MTY0IiwgXAotICAgICAgICAgICIwLjAyODE5NCwgMC4xMDIwOTQsIDAuMTc2NTg3LCAwLjIzMDY4MSwgMC4zMTgxMzQsIDAuMzk1MDUxLCAwLjUwNTEzIiwgXAotICAgICAgICAgICIwLjAyOTIyNSwgMC4xMDI3NDUsIDAuMTc3MDI1LCAwLjIzMDkxNiwgMC4zMTc4NjgsIDAuMzk1MjE3LCAwLjUwNTM0MyIsIFwKLSAgICAgICAgICAiMC4wMzA5OTcsIDAuMTAzODUxLCAwLjE3Nzc2NiwgMC4yMzE1NDYsIDAuMzE4ODU0LCAwLjM5NTEzNiwgMC41MDU2NDMiLCBcCi0gICAgICAgICAgIjAuMDMyMzYsIDAuMTA0NDU2LCAwLjE3ODQ4MSwgMC4yMzIxMTksIDAuMzE4ODYxLCAwLjM5NTg4NiwgMC41MDU3OTMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwOTI1MiwgMC4wMDk0ODUsIDAuMDA5NTI1LCAwLjAwOTUzNywgMC4wMDk1NDgsIDAuMDA5NTQ4LCAwLjAwOTU0NiIsIFwKLSAgICAgICAgICAiMC4wMDkxODcsIDAuMDA5NDA2LCAwLjAwOTQ1OCwgMC4wMDk0NzUsIDAuMDA5NDkxLCAwLjAwOTQ5OSwgMC4wMDk1MDciLCBcCi0gICAgICAgICAgIjAuMDA5Mzk2LCAwLjAwOTQ4NCwgMC4wMDk1MzMsIDAuMDA5NTYsIDAuMDA5NTc0LCAwLjAwOTU3NywgMC4wMDk1ODgiLCBcCi0gICAgICAgICAgIjAuMDA5NTk3LCAwLjAwOTYzNSwgMC4wMDk2ODMsIDAuMDA5NzAyLCAwLjAwOTcyNywgMC4wMDk3MzgsIDAuMDA5NzQxIiwgXAotICAgICAgICAgICIwLjAwOTk0LCAwLjAwOTg3MSwgMC4wMDk5MDIsIDAuMDA5OTE3LCAwLjAwOTkzNSwgMC4wMDk5NDgsIDAuMDA5OTUzIiwgXAotICAgICAgICAgICIwLjAxMDUzNywgMC4wMTAyNzYsIDAuMDEwMzA3LCAwLjAxMDMyNywgMC4wMTAzNDUsIDAuMDEwMzUsIDAuMDEwMzYxIiwgXAotICAgICAgICAgICIwLjAxMTE3MiwgMC4wMTA3NjgsIDAuMDEwNzQ3LCAwLjAxMDc1LCAwLjAxMDc0OSwgMC4wMTA3NTYsIDAuMDEwNzU4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTM4NzQsIDAuMDEzOTY3LCAwLjAxNDAxNSwgMC4wMTQwMzIsIDAuMDE0MDQ4LCAwLjAxNDA1NywgMC4wMTQwNjUiLCBcCi0gICAgICAgICAgIjAuMDEzNzMzLCAwLjAxMzg1NSwgMC4wMTM5MTUsIDAuMDEzOTM2LCAwLjAxMzk1NSwgMC4wMTM5NjUsIDAuMDEzOTc0IiwgXAotICAgICAgICAgICIwLjAxMzc0NiwgMC4wMTM4MzUsIDAuMDEzODk2LCAwLjAxMzkxOCwgMC4wMTM5MzksIDAuMDEzOTQ5LCAwLjAxMzk1OSIsIFwKLSAgICAgICAgICAiMC4wMTM4NzIsIDAuMDEzODc3LCAwLjAxMzkzNCwgMC4wMTM5NTYsIDAuMDEzOTc2LCAwLjAxMzk4NywgMC4wMTM5OTYiLCBcCi0gICAgICAgICAgIjAuMDE0MDM5LCAwLjAxMzk2NiwgMC4wMTQwMTQsIDAuMDE0MDMzLCAwLjAxNDA0NiwgMC4wMTQwNjMsIDAuMDE0MDcyIiwgXAotICAgICAgICAgICIwLjAxNDM0MiwgMC4wMTQxODksIDAuMDE0MjIsIDAuMDE0MjM1LCAwLjAxNDI1MiwgMC4wMTQyNjEsIDAuMDE0MjciLCBcCi0gICAgICAgICAgIjAuMDE0NjI5LCAwLjAxNDQ3NCwgMC4wMTQ0ODgsIDAuMDE0NDk0LCAwLjAxNDUwNSwgMC4wMTQ1MTEsIDAuMDE0NTE3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDg3MjEsIDAuMDA5MDI1LCAwLjAwOTA3MiwgMC4wMDkwODcsIDAuMDA5MSwgMC4wMDkxMDYsIDAuMDA5MDkzIiwgXAotICAgICAgICAgICIwLjAwODY0NywgMC4wMDg5MzksIDAuMDA5MDAyLCAwLjAwOTAyLCAwLjAwOTAzOSwgMC4wMDkwNTUsIDAuMDA5MDYxIiwgXAotICAgICAgICAgICIwLjAwODc0OSwgMC4wMDg5NTYsIDAuMDA5MDMzLCAwLjAwOTA2NCwgMC4wMDkwODUsIDAuMDA5MDk3LCAwLjAwOTExNCIsIFwKLSAgICAgICAgICAiMC4wMDkwMDgsIDAuMDA5MTE4LCAwLjAwOTE4NywgMC4wMDkyMjIsIDAuMDA5MjM4LCAwLjAwOTI1OCwgMC4wMDkyNTkiLCBcCi0gICAgICAgICAgIjAuMDA5Mzg1LCAwLjAwOTM1MSwgMC4wMDk0MDYsIDAuMDA5NDM0LCAwLjAwOTQ1MiwgMC4wMDk0NjYsIDAuMDA5NDc4IiwgXAotICAgICAgICAgICIwLjAwOTg1NSwgMC4wMDk3NjEsIDAuMDA5Nzg3LCAwLjAwOTgzMiwgMC4wMDk4MzEsIDAuMDA5ODc2LCAwLjAwOTg1OSIsIFwKLSAgICAgICAgICAiMC4wMTAyMzIsIDAuMDEwMDc2LCAwLjAxMDEyNSwgMC4wMTAyMzMsIDAuMDEwMTgzLCAwLjAxMDE5OSwgMC4wMTAyODQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMywgMC4wMTMxMDUsIDAuMDEzMTYsIDAuMDEzMTgxLCAwLjAxMzIsIDAuMDEzMjEsIDAuMDEzMjE5IiwgXAotICAgICAgICAgICIwLjAxMjg1NiwgMC4wMTI5OSwgMC4wMTMwNiwgMC4wMTMwODQsIDAuMDEzMTA3LCAwLjAxMzExOSwgMC4wMTMxMyIsIFwKLSAgICAgICAgICAiMC4wMTI5NzYsIDAuMDEzMDA4LCAwLjAxMzA2OCwgMC4wMTMwOTEsIDAuMDEzMTEzLCAwLjAxMzEyNSwgMC4wMTMxMzYiLCBcCi0gICAgICAgICAgIjAuMDEzMTQyLCAwLjAxMzA2MywgMC4wMTMxMjQsIDAuMDEzMTQ3LCAwLjAxMzE3LCAwLjAxMzE4MywgMC4wMTMxOTUiLCBcCi0gICAgICAgICAgIjAuMDEzMzEzLCAwLjAxMzIxNywgMC4wMTMyNTQsIDAuMDEzMjc2LCAwLjAxMzI4OCwgMC4wMTMzMDMsIDAuMDEzMzEzIiwgXAotICAgICAgICAgICIwLjAxMzY2NywgMC4wMTM0ODQsIDAuMDEzNTAzLCAwLjAxMzUxNywgMC4wMTM1MzMsIDAuMDEzNTQzLCAwLjAxMzU1NCIsIFwKLSAgICAgICAgICAiMC4wMTQwNSwgMC4wMTM3NzEsIDAuMDEzNzc2LCAwLjAxMzc4MiwgMC4wMTM3OTgsIDAuMDEzODA5LCAwLjAxMzgyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDgwNCwgMC4wMDgzMzIsIDAuMDA4MzcxLCAwLjAwODM4MywgMC4wMDgzOTQsIDAuMDA4NDMyLCAwLjAwODQwNCIsIFwKLSAgICAgICAgICAiMC4wMDc5NzIsIDAuMDA4MjU1LCAwLjAwODMxMSwgMC4wMDgzMjgsIDAuMDA4MzQ0LCAwLjAwODM1MiwgMC4wMDgzNiIsIFwKLSAgICAgICAgICAiMC4wMDgwNzYsIDAuMDA4MjcyLCAwLjAwODM0MiwgMC4wMDgzNywgMC4wMDgzODYsIDAuMDA4Mzk4LCAwLjAwODQwOSIsIFwKLSAgICAgICAgICAiMC4wMDgzNjcsIDAuMDA4NDM4LCAwLjAwODUxMSwgMC4wMDg1MywgMC4wMDg1NTMsIDAuMDA4NTY4LCAwLjAwODU4MiIsIFwKLSAgICAgICAgICAiMC4wMDg2NDMsIDAuMDA4NjI4LCAwLjAwODY4MywgMC4wMDg3MTcsIDAuMDA4NzM5LCAwLjAwODc1OCwgMC4wMDg3NjQiLCBcCi0gICAgICAgICAgIjAuMDA5MDMxLCAwLjAwOTA2NSwgMC4wMDkxMTMsIDAuMDA5MDk2LCAwLjAwOTE1NSwgMC4wMDkxNDksIDAuMDA5MTQ2IiwgXAotICAgICAgICAgICIwLjAwOTU2NiwgMC4wMDk0NDUsIDAuMDA5NDM1LCAwLjAwOTQ5OSwgMC4wMDk1MjMsIDAuMDA5NTAxLCAwLjAwOTU1MyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEyMDMsIDAuMDEyMTY2LCAwLjAxMjIzNiwgMC4wMTIyNiwgMC4wMTIyODMsIDAuMDEyMjk1LCAwLjAxMjMwNiIsIFwKLSAgICAgICAgICAiMC4wMTE5NDIsIDAuMDEyMDg1LCAwLjAxMjE2MywgMC4wMTIxOTIsIDAuMDEyMjE5LCAwLjAxMjIzNCwgMC4wMTIyNDciLCBcCi0gICAgICAgICAgIjAuMDEyMTgsIDAuMDEyMTgxLCAwLjAxMjI1MSwgMC4wMTIyNzksIDAuMDEyMzA3LCAwLjAxMjMyMiwgMC4wMTIzMzYiLCBcCi0gICAgICAgICAgIjAuMDEyNDk1LCAwLjAxMjM5NCwgMC4wMTI0NDgsIDAuMDEyNDcyLCAwLjAxMjQ5MiwgMC4wMTI1MDcsIDAuMDEyNTIxIiwgXAotICAgICAgICAgICIwLjAxMjgyMywgMC4wMTI2MjMsIDAuMDEyNjQyLCAwLjAxMjY2MiwgMC4wMTI2ODIsIDAuMDEyNjk1LCAwLjAxMjcwNyIsIFwKLSAgICAgICAgICAiMC4wMTM0ODgsIDAuMDEyOTYyLCAwLjAxMjk5NywgMC4wMTMwMTMsIDAuMDEzMDMyLCAwLjAxMzA0NiwgMC4wMTMwNTkiLCBcCi0gICAgICAgICAgIjAuMDEzODUyLCAwLjAxMzM1NywgMC4wMTM0MjMsIDAuMDEzNDIyLCAwLjAxMzQyOCwgMC4wMTM0MzMsIDAuMDEzNDQiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogT1IzWEwgKgotICogLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKE9SM1hMKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMjg4OTgyOwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2ODcyNzQ7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjg1MjM0OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDY4NzI3NDsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyNTYsIDAuMDAwMjcyLCAwLjAwMDI3OCwgMC4wMDAyODMsIDAuMDAwMjg2LCAwLjAwMDI4NywgMC4wMDAyODUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA1MTMsIDAuMDAwNTEzLCAwLjAwMDUxMywgMC4wMDA1MTMsIDAuMDAwNTEzLCAwLjAwMDUxMywgMC4wMDA1MTMiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDcwOTIzMTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA3MDc1NDY7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNzA5MjMxOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDI0NywgMC4wMDAyNzcsIDAuMDAwMjg0LCAwLjAwMDI4NiwgMC4wMDAyODYsIDAuMDAwMjg4LCAwLjAwMDI4OSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDMwNCwgMC4wMDAzMDUsIDAuMDAwMzA1LCAwLjAwMDMwNSwgMC4wMDAzMDUsIDAuMDAwMzA1LCAwLjAwMDMwNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQykgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjcxMzI4OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDY3MTMyODsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2NzExNDsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAwNzEsIDAuMDAwMDcxLCAwLjAwMDA3MSwgMC4wMDAwNzEsIDAuMDAwMDcxLCAwLjAwMDA3MSwgMC4wMDAwNzEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyNDUsIDAuMDAwMjQ1LCAwLjAwMDI0NSwgMC4wMDAyNDUsIDAuMDAwMjQ1LCAwLjAwMDI0NSwgMC4wMDAyNDUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4xOTk4OTQ7Ci0gICAgZnVuY3Rpb24gOiAiKChBK0IpK0MpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzM5MjksIDAuMDg0NDczLCAwLjE3OTI0NiwgMC4zMzcwOCwgMC40OTQ5MDksIDAuODYzMTEyLCAxLjA3MzUzIiwgXAotICAgICAgICAgICIwLjA4MjAxNCwgMC4wOTI1NiwgMC4xODczMSwgMC4zNDUxNjUsIDAuNTAzMDIsIDAuODcxMzA1LCAxLjA4MTU5IiwgXAotICAgICAgICAgICIwLjA5MDI5NCwgMC4xMDA4MzUsIDAuMTk1NjE4LCAwLjM1MzQzNywgMC41MTEyNTcsIDAuODc5NDc1LCAxLjA5MDA5IiwgXAotICAgICAgICAgICIwLjA5NjQzOCwgMC4xMDY5OTcsIDAuMjAxNzQ4LCAwLjM1OTU5MywgMC41MTc0MTEsIDAuODg1NjAzLCAxLjA5NiIsIFwKLSAgICAgICAgICAiMC4xMDEyMjIsIDAuMTExNzUzLCAwLjIwNjUwMiwgMC4zNjQzMjYsIDAuNTIyMjM3LCAwLjg5MDM4NiwgMS4xMDA3OCIsIFwKLSAgICAgICAgICAiMC4xMDc0OTIsIDAuMTE4MDMzLCAwLjIxMjc1NSwgMC4zNzA1OTMsIDAuNTI4NDI1LCAwLjg5NjgxMiwgMS4xMDcxMyIsIFwKLSAgICAgICAgICAiMC4xMTIxODksIDAuMTIyNzUyLCAwLjIxNzUwMywgMC4zNzUyOTMsIDAuNTMzMTYxLCAwLjkwMTMsIDEuMTExOCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTY4MTYsIDAuMTM4ODg4LCAwLjMzODE5MSwgMC42NzA2NiwgMS4wMDMxMywgMS43Nzg5NSwgMi4yMjA0IiwgXAotICAgICAgICAgICIwLjExNjgyMiwgMC4xMzg2NjgsIDAuMzM4MTQ3LCAwLjY3MDYzOCwgMS4wMDMxMSwgMS43NzY4MiwgMi4yMjIxNiIsIFwKLSAgICAgICAgICAiMC4xMTY4NjksIDAuMTM4OTM2LCAwLjMzODE2NywgMC42NzAxMTIsIDEuMDAzMDcsIDEuNzc3MiwgMi4yMjIxOSIsIFwKLSAgICAgICAgICAiMC4xMTcwODQsIDAuMTM5MDI3LCAwLjMzNzY1NywgMC42NzA1NjIsIDEuMDAzMDIsIDEuNzc4OTIsIDIuMjIyMTUiLCBcCi0gICAgICAgICAgIjAuMTE3MzEyLCAwLjEzOTE4MSwgMC4zMzgxODUsIDAuNjcwNTM3LCAxLjAwMzA4LCAxLjc3NjE0LCAyLjIyMjExIiwgXAotICAgICAgICAgICIwLjExNzgzOCwgMC4xMzk1MzEsIDAuMzM3OTc4LCAwLjY3MDUyOCwgMS4wMDE4OCwgMS43NzY2LCAyLjIyMjA2IiwgXAotICAgICAgICAgICIwLjExODUxOSwgMC4xNDAwMjIsIDAuMzM4MDk5LCAwLjY3MDIzNiwgMS4wMDI5NywgMS43Nzg1NCwgMi4yMTk1NSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTcwMTksIDAuMTA2ODE5LCAwLjE5MzgwMywgMC4zMzg0NzQsIDAuNDgzMjM0LCAwLjgyMTAwNCwgMS4wMTQzNCIsIFwKLSAgICAgICAgICAiMC4xMDE4NzksIDAuMTExNjYsIDAuMTk4NjQyLCAwLjM0MzM2NCwgMC40ODgwNywgMC44MjU4NiwgMS4wMTg4NyIsIFwKLSAgICAgICAgICAiMC4xMDY2MTMsIDAuMTE2NDEsIDAuMjAzMzk0LCAwLjM0ODA5MSwgMC40OTI4NjMsIDAuODMwODkxLCAxLjAyMzg4IiwgXAotICAgICAgICAgICIwLjExMDcyOCwgMC4xMjA1NTUsIDAuMjA3NTQsIDAuMzUyMjE5LCAwLjQ5NzAyNCwgMC44MzUwNiwgMS4wMjc5OCIsIFwKLSAgICAgICAgICAiMC4xMTQzMTMsIDAuMTI0MTIsIDAuMjExMTQ3LCAwLjM1NTgzLCAwLjUwMDU0OSwgMC44Mzg4NTIsIDEuMDMxMzgiLCBcCi0gICAgICAgICAgIjAuMTE5MjkzLCAwLjEyOTE3NiwgMC4yMTYyNzUsIDAuMzYwOTQxLCAwLjUwNTczNiwgMC44NDMzMjgsIDEuMDM2NzIiLCBcCi0gICAgICAgICAgIjAuMTIzMzU3LCAwLjEzMzI1LCAwLjIyMDQzMiwgMC4zNjUxMiwgMC41MDk4MTQsIDAuODQ3NjU2LCAxLjA0MDcxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwOTMxMywgMC4xMjg0NTMsIDAuMzA0MTE5LCAwLjYwMDMyMSwgMC44OTgwNzQsIDEuNTkwMjMsIDEuOTg0OTgiLCBcCi0gICAgICAgICAgIjAuMTA5Mjk2LCAwLjEyODQyMSwgMC4zMDQxMTEsIDAuNjAwNjczLCAwLjg5NzcxNywgMS41OTAyLCAxLjk4NTU4IiwgXAotICAgICAgICAgICIwLjEwOTQxNSwgMC4xMjg1MTgsIDAuMzA0MTI4LCAwLjU5OTgwNSwgMC44OTU5NjQsIDEuNTg5MSwgMS45ODUwNiIsIFwKLSAgICAgICAgICAiMC4xMDk4MjYsIDAuMTI4ODg3LCAwLjMwNDI3NSwgMC42MDA0MjUsIDAuODk1ODQyLCAxLjU4OTAyLCAxLjk4NTA1IiwgXAotICAgICAgICAgICIwLjExMDM1MywgMC4xMjkyNDEsIDAuMzA0NDIzLCAwLjYwMDYwNywgMC44OTc5OTksIDEuNTg5OTQsIDEuOTg1NTIiLCBcCi0gICAgICAgICAgIjAuMTExMDYyLCAwLjEzMDAyMywgMC4zMDQ3NDYsIDAuNjAwNjI4LCAwLjg5NTkyOSwgMS41OTIzNiwgMS45ODUwNiIsIFwKLSAgICAgICAgICAiMC4xMTE5NiwgMC4xMzA3MTIsIDAuMzA0OTQ3LCAwLjU5OTg4NCwgMC44OTY4NTMsIDEuNTg5MzYsIDEuOTg2NDciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDcyNjI0LCAwLjA4MzE2MywgMC4xNzc5MjMsIDAuMzM1NzQsIDAuNDkzNTMyLCAwLjg2MTc2OCwgMS4wNzIyMSIsIFwKLSAgICAgICAgICAiMC4wODA1NTcsIDAuMDkxMDkxLCAwLjE4NTgzMSwgMC4zNDM2NjgsIDAuNTAxNTE0LCAwLjg2OTY4OCwgMS4wODAxNCIsIFwKLSAgICAgICAgICAiMC4wODgzMTEsIDAuMDk4ODQ5LCAwLjE5MzYwMiwgMC4zNTE0MjEsIDAuNTA5MjM1LCAwLjg3NzY2NSwgMS4wODc4NiIsIFwKLSAgICAgICAgICAiMC4wOTM2MzQsIDAuMTA0MTY2LCAwLjE5ODkwOSwgMC4zNTY4MSwgMC41MTQ1ODQsIDAuODgyNzM5LCAxLjA5MzE0IiwgXAotICAgICAgICAgICIwLjA5NzkzOSwgMC4xMDg2MzksIDAuMjAzNDAyLCAwLjM2MDk5OSwgMC41MTkxMDksIDAuODg2OTk5LCAxLjA5NzY2IiwgXAotICAgICAgICAgICIwLjEwMzY3OSwgMC4xMTQyMjYsIDAuMjA4OTQ4LCAwLjM2Njc5NCwgMC41MjQ2MTUsIDAuODkyODQzLCAxLjEwMzE3IiwgXAotICAgICAgICAgICIwLjEwNzczMywgMC4xMTgzMjcsIDAuMjEzMTIxLCAwLjM3MDkyOCwgMC41Mjg2NywgMC44OTY4ODcsIDEuMTA3MzgiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTE2NjEyLCAwLjEzODcyLCAwLjMzODEzOCwgMC42Njk1MjEsIDEuMDAyMzMsIDEuNzc3MzEsIDIuMjE5OTUiLCBcCi0gICAgICAgICAgIjAuMTE2NjI3LCAwLjEzODcyMiwgMC4zMzc3NDUsIDAuNjcwMDc3LCAxLjAwMTY3LCAxLjc3NzU4LCAyLjIxOTk5IiwgXAotICAgICAgICAgICIwLjExNjczOCwgMC4xMzg3OTUsIDAuMzM4MDU0LCAwLjY3MDU0MiwgMS4wMDIxMywgMS43NzY0OSwgMi4yMjA0OCIsIFwKLSAgICAgICAgICAiMC4xMTY5MjUsIDAuMTM4ODcsIDAuMzM4MDI1LCAwLjY2OTM2OSwgMS4wMDI5NywgMS43Nzg3MiwgMi4yMjIxIiwgXAotICAgICAgICAgICIwLjExNzE1NCwgMC4xMzkwNDMsIDAuMzM3ODI4LCAwLjY2OTk0MSwgMS4wMDI5OSwgMS43Nzg1MywgMi4yMjIyMSIsIFwKLSAgICAgICAgICAiMC4xMTc2NzksIDAuMTM5MzU3LCAwLjMzNzg2NywgMC42NzAzOTQsIDEuMDAyODMsIDEuNzc4NjYsIDIuMjIwMDQiLCBcCi0gICAgICAgICAgIjAuMTE4MjA2LCAwLjE0MDA3MiwgMC4zMzc4MjIsIDAuNjcwMDcsIDEuMDAyNzUsIDEuNzc2MDIsIDIuMjIxOTUiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk0ODU3LCAwLjEwNDY0LCAwLjE5MTY0NywgMC4zMzYzNDksIDAuNDgxMDUzLCAwLjgxODg4NiwgMS4wMTE2OCIsIFwKLSAgICAgICAgICAiMC4xMDA1NDgsIDAuMTEwMzUsIDAuMTk3MzUzLCAwLjM0MjA1LCAwLjQ4NjgyOSwgMC44MjQ5NzYsIDEuMDE3NzciLCBcCi0gICAgICAgICAgIjAuMTA3MzExLCAwLjExNzA4MywgMC4yMDQwOTcsIDAuMzQ4Nzk2LCAwLjQ5MzUzMiwgMC44MzE2NTQsIDEuMDI0MyIsIFwKLSAgICAgICAgICAiMC4xMTM0NTgsIDAuMTIzMjY3LCAwLjIxMDI3NSwgMC4zNTQ5OTMsIDAuNDk5NjcxLCAwLjgzNzgzNiwgMS4wMzA1NyIsIFwKLSAgICAgICAgICAiMC4xMTg3NTksIDAuMTI4NTksIDAuMjE1NTk2LCAwLjM2MDI3MywgMC41MDUwMzQsIDAuODQzMjkxLCAxLjAzNTg0IiwgXAotICAgICAgICAgICIwLjEyNjI3OCwgMC4xMzYxNTEsIDAuMjIzMzE4LCAwLjM2ODAyMSwgMC41MTI4MiwgMC44NTA0ODYsIDEuMDQzOCIsIFwKLSAgICAgICAgICAiMC4xMzIxMzYsIDAuMTQyMDYsIDAuMjI5MzQyLCAwLjM3NDAzLCAwLjUxODc2NiwgMC44NTY1NTIsIDEuMDQ5NTYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTA5Mjk0LCAwLjEyODQ0NCwgMC4zMDQxMSwgMC41OTk3NTksIDAuODk3OTY4LCAxLjU4OTQ1LCAxLjk4NDY1IiwgXAotICAgICAgICAgICIwLjEwOTIyNCwgMC4xMjg0MjQsIDAuMzA0MTAzLCAwLjU5OTc5NCwgMC44OTY4NTQsIDEuNTg4ODYsIDEuOTg1MDQiLCBcCi0gICAgICAgICAgIjAuMTA5NTA1LCAwLjEyODU5NiwgMC4zMDQxNCwgMC41OTk3MjksIDAuODk3NzAzLCAxLjU4OTAzLCAxLjk4NDExIiwgXAotICAgICAgICAgICIwLjEwOTk5NSwgMC4xMjkwNDcsIDAuMzA0MzU1LCAwLjYwMDczMiwgMC44OTc5OTMsIDEuNTg4OTcsIDEuOTg1MTEiLCBcCi0gICAgICAgICAgIjAuMTEwNjM0LCAwLjEyOTYxNSwgMC4zMDQ1MjksIDAuNjAwNjM3LCAwLjg5NjA1MywgMS41ODk5NCwgMS45ODU0MyIsIFwKLSAgICAgICAgICAiMC4xMTEzMzUsIDAuMTMwMjU2LCAwLjMwNDYzMywgMC42MDA5MzgsIDAuODk2NDc3LCAxLjU4ODM3LCAxLjk4NTA3IiwgXAotICAgICAgICAgICIwLjExMjA4OSwgMC4xMzA4MjEsIDAuMzA0Nzk0LCAwLjYwMTA0OCwgMC44OTYyMTgsIDEuNTg5MzgsIDEuOTg2MjMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDcwNjc0LCAwLjA4MTE5OCwgMC4xNzU5NDUsIDAuMzMzODQ2LCAwLjQ5MTY2OSwgMC44NTk3ODgsIDEuMDcwNDUiLCBcCi0gICAgICAgICAgIjAuMDc4NDIzLCAwLjA4ODk1NSwgMC4xODM3MjgsIDAuMzQxNjYzLCAwLjQ5OTgzMiwgMC44NjgyOTYsIDEuMDc4OTMiLCBcCi0gICAgICAgICAgIjAuMDg1MjcxLCAwLjA5NTgwMiwgMC4xOTA1OTUsIDAuMzQ4NDI0LCAwLjUwNjM1NywgMC44NzQ3NDMsIDEuMDg1OTgiLCBcCi0gICAgICAgICAgIjAuMDkwMTI3LCAwLjEwMDY2MywgMC4xOTUzMiwgMC4zNTMxMjksIDAuNTExMjA4LCAwLjg3OTk0OCwgMS4wODk5NCIsIFwKLSAgICAgICAgICAiMC4wOTM3NzUsIDAuMTA0MjYyLCAwLjE5ODkwOSwgMC4zNTY4NiwgMC41MTQ3MzIsIDAuODgzNDU5LCAxLjA5MzY2IiwgXAotICAgICAgICAgICIwLjA5ODQ2MSwgMC4xMDg5NjksIDAuMjAzNjgzLCAwLjM2MTUzNywgMC41MTk0NTIsIDAuODg4MDI2LCAxLjA5OTA5IiwgXAotICAgICAgICAgICIwLjEwMjAzNiwgMC4xMTI1NDUsIDAuMjA3Mjg0LCAwLjM2NTA3NywgMC41MjMwMjQsIDAuODkxNDY0LCAxLjEwMjg0Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExNjQ4NSwgMC4xMzg1OTEsIDAuMzM3NTQ0LCAwLjY2OTQyNywgMS4wMDMxLCAxLjc3NjM0LCAyLjIyMjEiLCBcCi0gICAgICAgICAgIjAuMTE2Mzg3LCAwLjEzODYxLCAwLjMzNzcwOSwgMC42Njk3MjQsIDEuMDAxNzQsIDEuNzc2OSwgMi4yMjA5NSIsIFwKLSAgICAgICAgICAiMC4xMTY1NzYsIDAuMTM4NzY0LCAwLjMzNzUzNywgMC42Njk1OTIsIDEuMDAxMzcsIDEuNzc4NjgsIDIuMjE5NDMiLCBcCi0gICAgICAgICAgIjAuMTE2OTMsIDAuMTM4ODAxLCAwLjMzNzUzMywgMC42NzA0LCAxLjAwMTQsIDEuNzc3MywgMi4yMjIwNyIsIFwKLSAgICAgICAgICAiMC4xMTcxMzUsIDAuMTM4OTYxLCAwLjMzODE4OSwgMC42Njk4ODksIDEuMDAyMjMsIDEuNzc4MTcsIDIuMjE4NTkiLCBcCi0gICAgICAgICAgIjAuMTE3OTg3LCAwLjEzOTQ2NCwgMC4zMzc3OTMsIDAuNjcwNzg0LCAxLjAwMTY4LCAxLjc3ODAzLCAyLjIxOTQ1IiwgXAotICAgICAgICAgICIwLjExODM0OSwgMC4xNDAwMjEsIDAuMzM3ODc1LCAwLjY2OTkxOCwgMS4wMDE5MiwgMS43Nzc3MiwgMi4yMTk0MSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTAwMDMsIDAuMDk5Nzk1LCAwLjE4NjgsIDAuMzMxNDk4LCAwLjQ3NjIyOCwgMC44MTQxMTMsIDEuMDA3MDYiLCBcCi0gICAgICAgICAgIjAuMDk2OTA5LCAwLjEwNjcxMywgMC4xOTM3MTMsIDAuMzM4NDIsIDAuNDgzMTUyLCAwLjgyMTA3OCwgMS4wMTQyMyIsIFwKLSAgICAgICAgICAiMC4xMDU4NjIsIDAuMTE1NjUyLCAwLjIwMjY0OCwgMC4zNDczNTcsIDAuNDkyMDc5LCAwLjgzMDE4MywgMS4wMjI4MyIsIFwKLSAgICAgICAgICAiMC4xMTM2NjMsIDAuMTIzNDgyLCAwLjIxMDQ5MiwgMC4zNTUxNzQsIDAuNDk5OTA0LCAwLjgzODE2NiwgMS4wMzA3IiwgXAotICAgICAgICAgICIwLjExOTk3NiwgMC4xMjk4MjEsIDAuMjE2ODQzLCAwLjM2MTUyOCwgMC41MDYyNTYsIDAuODQ0NTgyLCAxLjAzNzA3IiwgXAotICAgICAgICAgICIwLjEyOTEyOSwgMC4xMzkwNDMsIDAuMjI2MTc1LCAwLjM3MDg4MSwgMC41MTU3NDcsIDAuODUzMzksIDEuMDQ2ODIiLCBcCi0gICAgICAgICAgIjAuMTM2MDA2LCAwLjE0NTkxNCwgMC4yMzMyNzMsIDAuMzc3OTIxLCAwLjUyMjYxOSwgMC44NjA2LCAxLjA1MzM0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwOTI4MSwgMC4xMjg0MTgsIDAuMzA0MDc0LCAwLjYwMDM1NCwgMC44OTc3MDksIDEuNTkwMTksIDEuOTg1NDMiLCBcCi0gICAgICAgICAgIjAuMTA5MjIyLCAwLjEyODMzMSwgMC4zMDQwMzcsIDAuNTk5NzQ0LCAwLjg5NzcxMiwgMS41ODkxMiwgMS45ODUwNyIsIFwKLSAgICAgICAgICAiMC4xMDk0NzQsIDAuMTI4NTg0LCAwLjMwMzY3NSwgMC42MDA1NDEsIDAuODk3Njg4LCAxLjU4OTA5LCAxLjk4NDMzIiwgXAotICAgICAgICAgICIwLjExMDAwOCwgMC4xMjkwNDQsIDAuMzA0Mjk5LCAwLjYwMDQyNywgMC44OTc2OTcsIDEuNTg5NzcsIDEuOTg1MzYiLCBcCi0gICAgICAgICAgIjAuMTEwNTkxLCAwLjEyOTYyMSwgMC4zMDQyNTYsIDAuNjAwNjE0LCAwLjg5ODAxOCwgMS41ODk0OCwgMS45ODU0NiIsIFwKLSAgICAgICAgICAiMC4xMTEyNiwgMC4xMzAxODUsIDAuMzA0NzIyLCAwLjYwMDk5NCwgMC44OTYwMzMsIDEuNTkxNiwgMS45ODQ3NyIsIFwKLSAgICAgICAgICAiMC4xMTIwNTksIDAuMTMwNzIyLCAwLjMwNDg3NCwgMC42MDA5NzIsIDAuODk2ODQsIDEuNTg5MDksIDEuOTg4NDgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDE0MDcsIDAuMDAxNDA3LCAwLjAwMTQwOSwgMC4wMDE0MDksIDAuMDAxNDA5LCAwLjAwMTQwOSwgMC4wMDE0MDkiLCBcCi0gICAgICAgICAgIjAuMDAxMzk5LCAwLjAwMTQsIDAuMDAxNCwgMC4wMDE0MDEsIDAuMDAxNDAxLCAwLjAwMTQsIDAuMDAxNCIsIFwKLSAgICAgICAgICAiMC4wMDE0NDYsIDAuMDAxNDQ1LCAwLjAwMTQ0NiwgMC4wMDE0NDYsIDAuMDAxNDQ2LCAwLjAwMTQ0NiwgMC4wMDE0NDYiLCBcCi0gICAgICAgICAgIjAuMDAxNTEzLCAwLjAwMTUxMiwgMC4wMDE1MTEsIDAuMDAxNTExLCAwLjAwMTUxMSwgMC4wMDE1MTEsIDAuMDAxNTEiLCBcCi0gICAgICAgICAgIjAuMDAxNjA1LCAwLjAwMTYwNCwgMC4wMDE2LCAwLjAwMTU5OCwgMC4wMDE1OTgsIDAuMDAxNTk3LCAwLjAwMTU5NyIsIFwKLSAgICAgICAgICAiMC4wMDE3NzQsIDAuMDAxNzcxLCAwLjAwMTc2NSwgMC4wMDE3NjEsIDAuMDAxNzYsIDAuMDAxNzU5LCAwLjAwMTc1OSIsIFwKLSAgICAgICAgICAiMC4wMDE5MzUsIDAuMDAxOTM0LCAwLjAwMTkyMywgMC4wMDE5MiwgMC4wMDE5MTksIDAuMDAxOTE4LCAwLjAwMTkxNiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzMyNiwgMC4wMDMzMjUsIDAuMDAzMzI0LCAwLjAwMzMyMywgMC4wMDMzMjMsIDAuMDAzMzIzLCAwLjAwMzMyMyIsIFwKLSAgICAgICAgICAiMC4wMDMyOTgsIDAuMDAzMjk4LCAwLjAwMzI5OCwgMC4wMDMyOTgsIDAuMDAzMjk4LCAwLjAwMzI5NywgMC4wMDMyOTciLCBcCi0gICAgICAgICAgIjAuMDAzMzAxLCAwLjAwMzMwMSwgMC4wMDMzLCAwLjAwMzMsIDAuMDAzMjk5LCAwLjAwMzI5OSwgMC4wMDMyOTkiLCBcCi0gICAgICAgICAgIjAuMDAzMzIzLCAwLjAwMzMyMywgMC4wMDMzMjIsIDAuMDAzMzIxLCAwLjAwMzMyMSwgMC4wMDMzMjEsIDAuMDAzMzIxIiwgXAotICAgICAgICAgICIwLjAwMzM2NCwgMC4wMDMzNjQsIDAuMDAzMzYyLCAwLjAwMzM2MSwgMC4wMDMzNiwgMC4wMDMzNiwgMC4wMDMzNiIsIFwKLSAgICAgICAgICAiMC4wMDM0NjQsIDAuMDAzNDYzLCAwLjAwMzQ1OCwgMC4wMDM0NTcsIDAuMDAzNDU2LCAwLjAwMzQ1NSwgMC4wMDM0NTUiLCBcCi0gICAgICAgICAgIjAuMDAzNTc1LCAwLjAwMzU3MywgMC4wMDM1NjgsIDAuMDAzNTY2LCAwLjAwMzU2NCwgMC4wMDM1NjQsIDAuMDAzNTY0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxMjQsIDAuMDAxMjQxLCAwLjAwMTI0NCwgMC4wMDEyNDYsIDAuMDAxMjQ2LCAwLjAwMTI0NywgMC4wMDEyNDYiLCBcCi0gICAgICAgICAgIjAuMDAxMjI4LCAwLjAwMTIyOSwgMC4wMDEyMzQsIDAuMDAxMjM2LCAwLjAwMTIzNywgMC4wMDEyMzcsIDAuMDAxMjM3IiwgXAotICAgICAgICAgICIwLjAwMTI2MywgMC4wMDEyNjQsIDAuMDAxMjcyLCAwLjAwMTI3NSwgMC4wMDEyNzYsIDAuMDAxMjc2LCAwLjAwMTI3NiIsIFwKLSAgICAgICAgICAiMC4wMDEzMzgsIDAuMDAxMzM5LCAwLjAwMTM0NSwgMC4wMDEzNDcsIDAuMDAxMzQ4LCAwLjAwMTM0OSwgMC4wMDEzNDkiLCBcCi0gICAgICAgICAgIjAuMDAxNDE5LCAwLjAwMTQzLCAwLjAwMTQzNiwgMC4wMDE0MywgMC4wMDE0NDEsIDAuMDAxNDMxLCAwLjAwMTQ0MiIsIFwKLSAgICAgICAgICAiMC4wMDE1ODEsIDAuMDAxNTgyLCAwLjAwMTU4OSwgMC4wMDE1ODEsIDAuMDAxNTkzLCAwLjAwMTU5NiwgMC4wMDE1ODQiLCBcCi0gICAgICAgICAgIjAuMDAxNzIyLCAwLjAwMTcyNCwgMC4wMDE3MjgsIDAuMDAxNzMxLCAwLjAwMTczMywgMC4wMDE3MzUsIDAuMDAxNzM0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzMDcyLCAwLjAwMzA3MywgMC4wMDMwNzQsIDAuMDAzMDc1LCAwLjAwMzA3NSwgMC4wMDMwNzUsIDAuMDAzMDc1IiwgXAotICAgICAgICAgICIwLjAwMzA0NywgMC4wMDMwNDcsIDAuMDAzMDUsIDAuMDAzMDUsIDAuMDAzMDUxLCAwLjAwMzA1MSwgMC4wMDMwNTEiLCBcCi0gICAgICAgICAgIjAuMDAzMDYsIDAuMDAzMDYsIDAuMDAzMDYyLCAwLjAwMzA2MywgMC4wMDMwNjMsIDAuMDAzMDYzLCAwLjAwMzA2MyIsIFwKLSAgICAgICAgICAiMC4wMDMwOTksIDAuMDAzMDk5LCAwLjAwMzA5OSwgMC4wMDMwOTksIDAuMDAzMDk4LCAwLjAwMzA5OCwgMC4wMDMwOTgiLCBcCi0gICAgICAgICAgIjAuMDAzMTU3LCAwLjAwMzE1NiwgMC4wMDMxNTQsIDAuMDAzMTUyLCAwLjAwMzE1MiwgMC4wMDMxNTEsIDAuMDAzMTUxIiwgXAotICAgICAgICAgICIwLjAwMzI3MywgMC4wMDMyNzMsIDAuMDAzMjY3LCAwLjAwMzI2NiwgMC4wMDMyNjUsIDAuMDAzMjY0LCAwLjAwMzI2NCIsIFwKLSAgICAgICAgICAiMC4wMDMzOTMsIDAuMDAzMzkxLCAwLjAwMzM4NSwgMC4wMDMzODMsIDAuMDAzMzgyLCAwLjAwMzM4MSwgMC4wMDMzODEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDEwMTIsIDAuMDAxMDEzLCAwLjAwMTAxNiwgMC4wMDEwMTcsIDAuMDAxMDE5LCAwLjAwMTAxOCwgMC4wMDEwMiIsIFwKLSAgICAgICAgICAiMC4wMDEwMDQsIDAuMDAxMDA1LCAwLjAwMTAxMSwgMC4wMDEwMTIsIDAuMDAxMDEzLCAwLjAwMTAxNCwgMC4wMDEwMTQiLCBcCi0gICAgICAgICAgIjAuMDAxMDQ4LCAwLjAwMTA0OCwgMC4wMDEwNTUsIDAuMDAxMDU4LCAwLjAwMTA1OCwgMC4wMDEwNTksIDAuMDAxMDU5IiwgXAotICAgICAgICAgICIwLjAwMTExNSwgMC4wMDExMTYsIDAuMDAxMTI2LCAwLjAwMTEyOSwgMC4wMDExMjYsIDAuMDAxMTI3LCAwLjAwMTEzIiwgXAotICAgICAgICAgICIwLjAwMTE5NywgMC4wMDExOTgsIDAuMDAxMjEsIDAuMDAxMjA3LCAwLjAwMTIxNiwgMC4wMDEyMDgsIDAuMDAxMjE2IiwgXAotICAgICAgICAgICIwLjAwMTM0NywgMC4wMDEzNDYsIDAuMDAxMzUxLCAwLjAwMTM1NSwgMC4wMDEzNTYsIDAuMDAxMzU3LCAwLjAwMTM1NyIsIFwKLSAgICAgICAgICAiMC4wMDE0ODksIDAuMDAxNDgyLCAwLjAwMTQ4NywgMC4wMDE0OTEsIDAuMDAxNDk5LCAwLjAwMTQ5MywgMC4wMDE0OTQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI4MDUsIDAuMDAyODA2LCAwLjAwMjgwOSwgMC4wMDI4MSwgMC4wMDI4MTEsIDAuMDAyODExLCAwLjAwMjgxMSIsIFwKLSAgICAgICAgICAiMC4wMDI4MDEsIDAuMDAyODAyLCAwLjAwMjgwNywgMC4wMDI4MDgsIDAuMDAyODA5LCAwLjAwMjgxLCAwLjAwMjgxIiwgXAotICAgICAgICAgICIwLjAwMjg2NywgMC4wMDI4NjcsIDAuMDAyODcsIDAuMDAyODcxLCAwLjAwMjg3MSwgMC4wMDI4NzEsIDAuMDAyODcxIiwgXAotICAgICAgICAgICIwLjAwMjkyMywgMC4wMDI5MjMsIDAuMDAyOTI0LCAwLjAwMjkyNSwgMC4wMDI5MjUsIDAuMDAyOTI2LCAwLjAwMjkyNiIsIFwKLSAgICAgICAgICAiMC4wMDMwMDMsIDAuMDAzMDAzLCAwLjAwMzAwNCwgMC4wMDMwMDYsIDAuMDAzMDA2LCAwLjAwMzAwNywgMC4wMDMwMDciLCBcCi0gICAgICAgICAgIjAuMDAzMTU3LCAwLjAwMzE1OSwgMC4wMDMxNTcsIDAuMDAzMTU3LCAwLjAwMzE1NiwgMC4wMDMxNTYsIDAuMDAzMTU2IiwgXAotICAgICAgICAgICIwLjAwMzI5NiwgMC4wMDMyOTYsIDAuMDAzMjk0LCAwLjAwMzI5MiwgMC4wMDMyOTEsIDAuMDAzMjkxLCAwLjAwMzI5Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogU0RGRlFYMiAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChTREZGUVgyKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDEuMDE1ODQ7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgZmYgKE4zMCxRQklOVCkgewotICAgIG5leHRfc3RhdGUgOiAiKChTRSBTSSkgKyAoIVNFIEQpKSI7Ci0gICAgY2xvY2tlZF9vbiA6ICJDSyI7Ci0gIH0KLSAgcGluKENLKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2NDQ2MTg7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjQ0NjE4OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDY0NDQ5NDsKLSAgICBjbG9jayA6IHRydWU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzNDU1LCAwLjAwMzQ1OSwgMC4wMDM1MiwgMC4wMDM2MjUsIDAuMDAzNzMxLCAwLjAwMzk1NSwgMC4wMDQxNTkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDc1NTcsIDAuMDA3NTU0LCAwLjAwNzYzOCwgMC4wMDc3NjQsIDAuMDA3OTEsIDAuMDA4MTg2LCAwLjAwODQxMyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQmIVNFJiFTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fU0VfRVFfMF9BTl9TSV9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDg3MzMzLCAwLjA5NTUyMiwgMC4xMDQzNDEsIDAuMTExNDA2LCAwLjExNjk0NCwgMC4xMjQzMjMsIDAuMTI5ODY3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wNjEwNzQsIDAuMDY5MTgxLCAwLjA3ODA5OCwgMC4wODQ3ODgsIDAuMDkwMTM4LCAwLjA5NzE0NiwgMC4xMDIzOTEiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEQpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY3MDYzMjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2Njk5MjQ7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjcwNjMyOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzMzNCwgMC4wMDMzMSwgMC4wMDMzMzUsIDAuMDAzMzg1LCAwLjAwMzQ0MSwgMC4wMDM1NTcsIDAuMDAzNzEyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA1MjM0LCAwLjAwNTIxNiwgMC4wMDUyNDIsIDAuMDA1Mjg3LCAwLjAwNTM0NywgMC4wMDU0NjIsIDAuMDA1NTgxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJTRSA9PSAxJ2IwIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMzEyNSwgLTAuMDI2MjUsIC0wLjAyLCAtMC4wMiwgLTAuMDEzNzUsIC0wLjAxLCAtMC4wMDc1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDI1LCAtMC4wMjUsIC0wLjAyMTI1LCAtMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDM3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAzMTI1LCAtMC4wMjc1LCAtMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wNDM3NSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzNzUsIC0wLjAzMzc1LCAtMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wNDM3NSwgLTAuMDQsIC0wLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjA2NSwgLTAuMDYsIC0wLjA1Mzc1LCAtMC4wNTM3NSwgLTAuMDUzNzUsIC0wLjA1LCAtMC4wNDc1IiwgXAotICAgICAgICAgICItMC4wNjc1LCAtMC4wNjI1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDU2MjUsIC0wLjA1MjUsIC0wLjA1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDEyNSwgLTAuMDAxMjUsIDAuMDA1LCAwLjAxMTI1LCAwLjAxMTI1LCAwLjAyMTI1LCAwLjAyMzc1IiwgXAotICAgICAgICAgICItMC4wMTc1LCAtMC4wMDYyNSwgMCwgMC4wMDYyNSwgMC4wMDYyNSwgMC4wMTYyNSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAtMC4wMDYyNSwgMCwgMC4wMDM3NSwgMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAtMC4wMDYyNSwgMC4wMDM3NSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAtMC4wMDI1LCAwIiwgXAotICAgICAgICAgICItMC4wNCwgLTAuMDI4NzUsIC0wLjAyMjUsIC0wLjAyMjUsIC0wLjAxNjI1LCAtMC4wMTI1LCAtMC4wMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxNSwgLTAuMDEyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIVNFIjsKLSAgICAgIHNkZl9jb25kIDogIlNFID09IDEnYjAiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1NjI1LCAwLjA0NSwgMC4wMzg3NSwgMC4wMzg3NSwgMC4wMzI1LCAwLjAyODc1LCAwLjAyNjI1IiwgXAotICAgICAgICAgICIwLjA2MTI1LCAwLjA1LCAwLjA0Mzc1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDMzNzUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMDY3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1LCAwLjA0Mzc1LCAwLjA0LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIjAuMDczNzUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNTYyNSwgMC4wNTI1LCAwLjA1IiwgXAotICAgICAgICAgICIwLjA4LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA2MjUsIDAuMDU4NzUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIjAuMDksIDAuMDg1LCAwLjA3MjUsIDAuMDcyNSwgMC4wNjYyNSwgMC4wNjI1LCAwLjA2IiwgXAotICAgICAgICAgICIwLjA5ODc1LCAwLjA4NzUsIDAuMDgxMjUsIDAuMDgxMjUsIDAuMDc1LCAwLjA3MTI1LCAwLjA2ODc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQzNzUsIDAuMDMyNSwgMC4wMjYyNSwgMC4wMiwgMC4wMTM3NSwgMC4wMDM3NSwgMC4wMDEyNSIsIFwKLSAgICAgICAgICAiMC4wNDg3NSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMTg3NSwgMC4wMTUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMDU1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDI1LCAwLjAyMTI1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMDYxMjUsIDAuMDUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMjc1LCAwLjAxODc1IiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDU2MjUsIDAuMDUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMjc1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiMC4wNzEyNSwgMC4wNjYyNSwgMC4wNTM3NSwgMC4wNDc1LCAwLjA0NzUsIDAuMDM3NSwgMC4wMzUiLCBcCi0gICAgICAgICAgIjAuMDgsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNSwgMC4wNDYyNSwgMC4wMzc1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihRKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuNjk2MTQ7Ci0gICAgZnVuY3Rpb24gOiAiTjMwIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBub25fdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJpc2luZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzg5MjUsIDAuMTU2MSwgMC4yMTc3MjMsIDAuMjk0NzIzLCAwLjM3MTczNSwgMC40NDg3NzYsIDAuNTI1ODQ5IiwgXAotICAgICAgICAgICIwLjA4NzA4NCwgMC4xNjQyNTcsIDAuMjI1ODU0LCAwLjMwMjg3MiwgMC4zNzk5MDUsIDAuNDU2OTU5LCAwLjUzMzk3NyIsIFwKLSAgICAgICAgICAiMC4wOTU4NjksIDAuMTczMDQ0LCAwLjIzNDY1MSwgMC4zMTE2NTgsIDAuMzg4Njg5LCAwLjQ2NTcyLCAwLjU0Mjc2NiIsIFwKLSAgICAgICAgICAiMC4xMDI3ODksIDAuMTc5OTc0LCAwLjI0MTU2MSwgMC4zMTg1ODMsIDAuMzk1NjAzLCAwLjQ3MjY1MSwgMC41NDk3MDUiLCBcCi0gICAgICAgICAgIjAuMTA4MjU0LCAwLjE4NTQzOCwgMC4yNDcwMjgsIDAuMzI0MDQ1LCAwLjQwMTA2MiwgMC40NzgxMDYsIDAuNTU1MTI3IiwgXAotICAgICAgICAgICIwLjExNTUyNSwgMC4xOTI3MTIsIDAuMjU0MzA5LCAwLjMzMTMyMiwgMC40MDgzMywgMC40ODUzNzcsIDAuNTYyMzk4IiwgXAotICAgICAgICAgICIwLjEyMTAzOSwgMC4xOTgyMTcsIDAuMjU5ODEyLCAwLjMzNjg0OCwgMC40MTM4NjMsIDAuNDkwOTM1LCAwLjU2Nzg3OSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzk1MDUsIDAuMTk5NzgzLCAwLjMyOTkyNywgMC40OTI1NiwgMC42NTUxODYsIDAuODE3MjExLCAwLjk3OTMwMSIsIFwKLSAgICAgICAgICAiMC4wMzk0ODIsIDAuMTk5NzkzLCAwLjMyOTQ1NSwgMC40OTI1NTMsIDAuNjU0NjI4LCAwLjgxNjc0OCwgMC45Nzk0NjciLCBcCi0gICAgICAgICAgIjAuMDM5NDgxLCAwLjE5OTc4OCwgMC4zMjk0NDUsIDAuNDkyNTQ0LCAwLjY1NDY0LCAwLjgxNzg2MiwgMC45Nzg4OTYiLCBcCi0gICAgICAgICAgIjAuMDM5NTEzLCAwLjE5OTc4OCwgMC4zMjk4MjQsIDAuNDkyNTMxLCAwLjY1NDU0MywgMC44MTY5MzEsIDAuOTc5MzM2IiwgXAotICAgICAgICAgICIwLjAzOTUyMywgMC4xOTk3NzcsIDAuMzI5NTMxLCAwLjQ5MjQ3MywgMC42NTQ1MTEsIDAuODE2OTQ5LCAwLjk4MDQ1MyIsIFwKLSAgICAgICAgICAiMC4wMzk1MjMsIDAuMTk5NzY3LCAwLjMyOTgxOCwgMC40OTIwMTcsIDAuNjU1MDY5LCAwLjgxNjkwNCwgMC45Nzk1NTEiLCBcCi0gICAgICAgICAgIjAuMDM5NTQ4LCAwLjE5OTYyOCwgMC4zMjk4NjksIDAuNDkyNDc3LCAwLjY1NTA1MywgMC44MTc3NTUsIDAuOTc5Njc2Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4NzMzMywgMC4xNjM0OSwgMC4yMjQxNCwgMC4yOTk4NjgsIDAuMzc1NjM2LCAwLjQ1MTQwOCwgMC41MjcwODciLCBcCi0gICAgICAgICAgIjAuMDk1NTIyLCAwLjE3MTY3OCwgMC4yMzIzMjIsIDAuMzA4MDU3LCAwLjM4MzgyNSwgMC40NTk1OTgsIDAuNTM1MzExIiwgXAotICAgICAgICAgICIwLjEwNDM0MSwgMC4xODA1MDMsIDAuMjQxMTI5LCAwLjMxNjg3OSwgMC4zOTI2NjIsIDAuNDY4NDIyLCAwLjU0NDE3NyIsIFwKLSAgICAgICAgICAiMC4xMTE0MDYsIDAuMTg3NTU1LCAwLjI0ODE5NywgMC4zMjM5MzcsIDAuMzk5NzMxLCAwLjQ3NTQ3NiwgMC41NTExOSIsIFwKLSAgICAgICAgICAiMC4xMTY5NDQsIDAuMTkzMDkyLCAwLjI1MzcyMiwgMC4zMjk0NTcsIDAuNDA1MjU5LCAwLjQ4MDkyOSwgMC41NTY3NTIiLCBcCi0gICAgICAgICAgIjAuMTI0MzYyLCAwLjIwMDUyMywgMC4yNjExMzMsIDAuMzM2ODg0LCAwLjQxMjY3MywgMC40ODg0MTEsIDAuNTY0MTg2IiwgXAotICAgICAgICAgICIwLjEyOTg2NywgMC4yMDYwMTIsIDAuMjY2NjI3LCAwLjM0MjM4MiwgMC40MTgxNzMsIDAuNDkzODU3LCAwLjU2OTY0NCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzgzMDQsIDAuMTkzNTI5LCAwLjMxODc4NiwgMC40NzYzNiwgMC42MzM0ODksIDAuNzkwNTg4LCAwLjk0OTYxOSIsIFwKLSAgICAgICAgICAiMC4wMzgzMDMsIDAuMTkzNTI1LCAwLjMxOTM5OSwgMC40NzYzOTEsIDAuNjMzNTc3LCAwLjc5MjI0OCwgMC45NDk2NDgiLCBcCi0gICAgICAgICAgIjAuMDM4MzAxLCAwLjE5MzMyMywgMC4zMTkwODcsIDAuNDc2ODcyLCAwLjYzMzY0MiwgMC43OTA1NzEsIDAuOTQ4MDI2IiwgXAotICAgICAgICAgICIwLjAzODMsIDAuMTkzNTIsIDAuMzE4OCwgMC40NzYzNzIsIDAuNjMzMzA4LCAwLjc5MDU4NywgMC45NDk2MjkiLCBcCi0gICAgICAgICAgIjAuMDM4MywgMC4xOTM1MjUsIDAuMzE4ODAxLCAwLjQ3NjkzMiwgMC42MzMzMzYsIDAuNzkyMDQxLCAwLjk0Nzg2NSIsIFwKLSAgICAgICAgICAiMC4wMzg0NjEsIDAuMTkzNTUyLCAwLjMxOTQyNiwgMC40NzY5NzUsIDAuNjMzODA5LCAwLjc5MjI0MSwgMC45NDk4NTkiLCBcCi0gICAgICAgICAgIjAuMDM4Mjk5LCAwLjE5MzQ4NCwgMC4zMTk0MzgsIDAuNDc2ODQxLCAwLjYzNDM1OSwgMC43OTIwMzEsIDAuOTQ5NzY4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwODc0OSwgMC4wMDg3MiwgMC4wMDg2OTksIDAuMDA4Njg1LCAwLjAwODY3NiwgMC4wMDg2NzEsIDAuMDA4NjY5IiwgXAotICAgICAgICAgICIwLjAwODczMywgMC4wMDg3MDcsIDAuMDA4Njg0LCAwLjAwODY3MSwgMC4wMDg2NjIsIDAuMDA4NjU3LCAwLjAwODY1MyIsIFwKLSAgICAgICAgICAiMC4wMDg4MzEsIDAuMDA4ODEsIDAuMDA4Nzg5LCAwLjAwODc3MiwgMC4wMDg3NjQsIDAuMDA4NzU3LCAwLjAwODc1MyIsIFwKLSAgICAgICAgICAiMC4wMDg5MjQsIDAuMDA4OTA0LCAwLjAwODg4MSwgMC4wMDg4NjYsIDAuMDA4ODU2LCAwLjAwODg0OSwgMC4wMDg4NDUiLCBcCi0gICAgICAgICAgIjAuMDA5MDY0LCAwLjAwOTA1MSwgMC4wMDkwMjgsIDAuMDA5MDE0LCAwLjAwOTAwMiwgMC4wMDg5OTYsIDAuMDA4OTkiLCBcCi0gICAgICAgICAgIjAuMDA5MjQ3LCAwLjAwOTIzNiwgMC4wMDkyMTEsIDAuMDA5MTk0LCAwLjAwOTE4MiwgMC4wMDkxNzgsIDAuMDA5MTcxIiwgXAotICAgICAgICAgICIwLjAwOTQ1MiwgMC4wMDk0MzgsIDAuMDA5NDE0LCAwLjAwOTM5NSwgMC4wMDkzODMsIDAuMDA5Mzc5LCAwLjAwOTM2MiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwOTMxMSwgMC4wMDk0MDQsIDAuMDA5NDE2LCAwLjAwOTQyMywgMC4wMDk0MjcsIDAuMDA5NDI4LCAwLjAwOTQzMSIsIFwKLSAgICAgICAgICAiMC4wMDkzMDcsIDAuMDA5NCwgMC4wMDk0MTMsIDAuMDA5NDE5LCAwLjAwOTQyMywgMC4wMDk0MjUsIDAuMDA5NDI3IiwgXAotICAgICAgICAgICIwLjAwOTQyMiwgMC4wMDk1MTQsIDAuMDA5NTI2LCAwLjAwOTUzMywgMC4wMDk1MzYsIDAuMDA5NTM4LCAwLjAwOTUzOSIsIFwKLSAgICAgICAgICAiMC4wMDk1MjksIDAuMDA5NjE4LCAwLjAwOTYyOSwgMC4wMDk2MzYsIDAuMDA5NjM5LCAwLjAwOTY0MSwgMC4wMDk2NDIiLCBcCi0gICAgICAgICAgIjAuMDA5Njc3LCAwLjAwOTc3MiwgMC4wMDk3ODMsIDAuMDA5Nzg5LCAwLjAwOTc5MSwgMC4wMDk3OTQsIDAuMDA5Nzk0IiwgXAotICAgICAgICAgICIwLjAwOTkyNSwgMC4wMTAwMDksIDAuMDEwMDIsIDAuMDEwMDIyLCAwLjAxMDAyNSwgMC4wMTAwMjcsIDAuMDEwMDI3IiwgXAotICAgICAgICAgICIwLjAxMDEwMiwgMC4wMTAxODgsIDAuMDEwMTk1LCAwLjAxMDIsIDAuMDEwMjAyLCAwLjAxMDIwMywgMC4wMTAyMDMiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFNFKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE0MDIzOTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE0MDIzOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTQwMjM5OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNDg2NiwgMC4wMDQ4ODUsIDAuMDA0OTY3LCAwLjAwNTA3OSwgMC4wMDUyMzksIDAuMDA1NDYsIDAuMDA1NjY1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA2NjA2LCAwLjAwNjYzNSwgMC4wMDY3NjQsIDAuMDA2OTM3LCAwLjAwNzE1OCwgMC4wMDc1NDIsIDAuMDA3ODkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUQmU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1NJX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDI1LCAtMC4wMiwgLTAuMDEzNzUsIC0wLjAxMzc1LCAtMC4wMTM3NSwgLTAuMDEsIC0wLjAwNzUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMjUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxODc1LCAtMC4wMTUsIC0wLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMjEyNSwgLTAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wNDM3NSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzNzUsIC0wLjAzMzc1LCAtMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wNDM3NSwgLTAuMDQsIC0wLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjA2NSwgLTAuMDYsIC0wLjA2LCAtMC4wNTM3NSwgLTAuMDUzNzUsIC0wLjA1LCAtMC4wNDc1IiwgXAotICAgICAgICAgICItMC4wNzM3NSwgLTAuMDY4NzUsIC0wLjA2MjUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNTg3NSwgLTAuMDU2MjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMDYyNSwgLTAuMDAxMjUsIDAuMDExMjUsIDAuMDExMjUsIDAuMDE3NSwgMC4wMjEyNSwgMC4wMyIsIFwKLSAgICAgICAgICAiLTAuMDExMjUsIC0wLjAwNjI1LCAwLCAwLjAwNjI1LCAwLjAxMjUsIDAuMDE2MjUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMCwgMCwgMC4wMSwgMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAxMjUsIC0wLjAwNjI1LCAtMC4wMDI1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDEyNSwgLTAuMDA4NzUsIDAiLCBcCi0gICAgICAgICAgIi0wLjA0LCAtMC4wMzUsIC0wLjAyODc1LCAtMC4wMjI1LCAtMC4wMTYyNSwgLTAuMDEyNSwgLTAuMDEiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMjEyNSwgLTAuMDE4NzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiRCYhU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8xX0FOX1NJX0VRXzAgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDE4NzUsIC0wLjAwNzUsIC0wLjAwMTI1LCAwLjAwNSwgMC4wMTEyNSwgMC4wMTUsIDAuMDE3NSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAtMC4wMDYyNSwgMCwgMC4wMSwgMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAtMC4wMDYyNSwgMC4wMDM3NSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAtMC4wMDI1LCAwIiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwODc1LCAwIiwgXAotICAgICAgICAgICItMC4wNCwgLTAuMDM1LCAtMC4wMjg3NSwgLTAuMDIyNSwgLTAuMDE2MjUsIC0wLjAxMjUsIC0wLjAwMzc1IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDE1LCAtMC4wMTI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDM3NSwgLTAuMDMyNSwgLTAuMDI2MjUsIC0wLjAyNjI1LCAtMC4wMiwgLTAuMDE2MjUsIC0wLjAxMzc1IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzc1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDMxMjUsIC0wLjAyNzUsIC0wLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjA0Mzc1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDM3NSwgLTAuMDMzNzUsIC0wLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzMzc1LCAtMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wNDM3NSwgLTAuMDQsIC0wLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjA1ODc1LCAtMC4wNTM3NSwgLTAuMDUzNzUsIC0wLjA0NzUsIC0wLjA0NzUsIC0wLjA0Mzc1LCAtMC4wNDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDY3NSwgLTAuMDU2MjUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDUsIC0wLjA0NjI1LCAtMC4wNDM3NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUQmU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1NJX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDUsIDAuMDM4NzUsIDAuMDMyNSwgMC4wMzI1LCAwLjAyNjI1LCAwLjAyMjUsIDAuMDIiLCBcCi0gICAgICAgICAgIjAuMDU1LCAwLjA1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDM3NSwgMC4wMzM3NSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4wNjc1LCAwLjA1NjI1LCAwLjA1LCAwLjA1LCAwLjA0Mzc1LCAwLjA0LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIjAuMDczNzUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNTYyNSwgMC4wNTI1LCAwLjA1IiwgXAotICAgICAgICAgICIwLjA4LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA2MjUsIDAuMDU4NzUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIjAuMDksIDAuMDg1LCAwLjA3ODc1LCAwLjA3MjUsIDAuMDcyNSwgMC4wNjg3NSwgMC4wNjYyNSIsIFwKLSAgICAgICAgICAiMC4wOTg3NSwgMC4wOTM3NSwgMC4wODc1LCAwLjA4MTI1LCAwLjA4MTI1LCAwLjA3NzUsIDAuMDY4NzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzc1LCAwLjAyNjI1LCAwLjAyLCAwLjAxMzc1LCAwLjAwNzUsIDAuMDAzNzUsIC0wLjAwNSIsIFwKLSAgICAgICAgICAiMC4wNDI1LCAwLjAzNzUsIDAuMDI1LCAwLjAxODc1LCAwLjAxMjUsIDAuMDA4NzUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMDU1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDI1LCAwLjAxNSwgMC4wMTI1IiwgXAotICAgICAgICAgICIwLjA2MTI1LCAwLjA1NjI1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDI3NSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4wNjc1LCAwLjA2MjUsIDAuMDUsIDAuMDQzNzUsIDAuMDQzNzUsIDAuMDMzNzUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMDc3NSwgMC4wNzI1LCAwLjA2LCAwLjA1Mzc1LCAwLjA0NzUsIDAuMDQzNzUsIDAuMDQxMjUiLCBcCi0gICAgICAgICAgIjAuMDg2MjUsIDAuMDgxMjUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNTI1LCAwLjA0Mzc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJEJiFTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzFfQU5fU0lfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDM3NSwgMC4wMzg3NSwgMC4wMzI1LCAwLjAyNjI1LCAwLjAyLCAwLjAxLCAwLjAwNzUiLCBcCi0gICAgICAgICAgIjAuMDU1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDI1LCAwLjAxNSwgMC4wMTI1IiwgXAotICAgICAgICAgICIwLjA2MTI1LCAwLjA1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDIxMjUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMDYxMjUsIDAuMDU2MjUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzc1LCAwLjAyNzUsIDAuMDI1IiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDU2MjUsIDAuMDUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzM3NSwgMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMDcxMjUsIDAuMDY2MjUsIDAuMDUzNzUsIDAuMDQ3NSwgMC4wNDEyNSwgMC4wMzc1LCAwLjAyODc1IiwgXAotICAgICAgICAgICIwLjA3Mzc1LCAwLjA2ODc1LCAwLjA1NjI1LCAwLjA1LCAwLjA0Mzc1LCAwLjA0LCAwLjAzNzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjI1LCAwLjA1MTI1LCAwLjA0NSwgMC4wNDUsIDAuMDM4NzUsIDAuMDM1LCAwLjAzMjUiLCBcCi0gICAgICAgICAgIjAuMDY3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1LCAwLjA0Mzc1LCAwLjA0LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIjAuMDczNzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNTYyNSwgMC4wNSwgMC4wNDYyNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4wOCwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1NjI1LCAwLjA1MjUsIDAuMDUiLCBcCi0gICAgICAgICAgIjAuMDgsIDAuMDc1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDUyNSwgMC4wNSIsIFwKLSAgICAgICAgICAiMC4wODM3NSwgMC4wNzg3NSwgMC4wNzI1LCAwLjA2NjI1LCAwLjA2NjI1LCAwLjA2MjUsIDAuMDUzNzUiLCBcCi0gICAgICAgICAgIjAuMDg2MjUsIDAuMDgxMjUsIDAuMDc1LCAwLjA2ODc1LCAwLjA2ODc1LCAwLjA2NSwgMC4wNjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTSSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNzE2MTIyOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDcxNTI2NDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA3MTYxMjI7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzMDcsIDAuMDAzMDQ4LCAwLjAwMzA4MSwgMC4wMDMxMjMsIDAuMDAzMTk4LCAwLjAwMzMxNSwgMC4wMDM0NDIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDUzOCwgMC4wMDUzNjQsIDAuMDA1MzkxLCAwLjAwNTQzOCwgMC4wMDU1MDIsIDAuMDA1NjE0LCAwLjAwNTczNyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJTRSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMzEyNSwgLTAuMDI2MjUsIC0wLjAyLCAtMC4wMiwgLTAuMDEzNzUsIC0wLjAxLCAtMC4wMDc1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDE1LCAtMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDMxMjUsIC0wLjAzMTI1LCAtMC4wMjc1LCAtMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wNDM3NSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzNzUsIC0wLjAzMzc1LCAtMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjA0Mzc1LCAtMC4wNDM3NSwgLTAuMDQsIC0wLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjA2NSwgLTAuMDYsIC0wLjA1Mzc1LCAtMC4wNTM3NSwgLTAuMDQ3NSwgLTAuMDQzNzUsIC0wLjA0MTI1IiwgXAotICAgICAgICAgICItMC4wNjc1LCAtMC4wNjI1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDU2MjUsIC0wLjA1MjUsIC0wLjA1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDEyNSwgLTAuMDAxMjUsIDAuMDA1LCAwLjAxMTI1LCAwLjAxMTI1LCAwLjAyMTI1LCAwLjAyMzc1IiwgXAotICAgICAgICAgICItMC4wMTc1LCAtMC4wMDYyNSwgMCwgMC4wMDYyNSwgMC4wMDYyNSwgMC4wMTYyNSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLCAwLCAwLjAxLCAwLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIC0wLjAwNjI1LCAwLjAwMzc1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIC0wLjAwMjUsIDAiLCBcCi0gICAgICAgICAgIi0wLjAzMzc1LCAtMC4wMjg3NSwgLTAuMDIyNSwgLTAuMDE2MjUsIC0wLjAxNjI1LCAtMC4wMDYyNSwgLTAuMDAzNzUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzMTI1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDE1LCAtMC4wMTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJTRSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNSwgMC4wNDUsIDAuMDM4NzUsIDAuMDMyNSwgMC4wMzI1LCAwLjAyODc1LCAwLjAyNjI1IiwgXAotICAgICAgICAgICIwLjA2MTI1LCAwLjA1LCAwLjA0Mzc1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDMzNzUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMDY3NSwgMC4wNTYyNSwgMC4wNSwgMC4wNSwgMC4wNDM3NSwgMC4wNCwgMC4wMzc1IiwgXAotICAgICAgICAgICIwLjA3Mzc1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDUsIDAuMDQ2MjUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMDgsIDAuMDc1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDUyNSwgMC4wNSIsIFwKLSAgICAgICAgICAiMC4wOSwgMC4wNzg3NSwgMC4wNzI1LCAwLjA3MjUsIDAuMDY2MjUsIDAuMDYyNSwgMC4wNiIsIFwKLSAgICAgICAgICAiMC4wOTI1LCAwLjA4NzUsIDAuMDgxMjUsIDAuMDc1LCAwLjA3NSwgMC4wNzEyNSwgMC4wNjg3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0Mzc1LCAwLjAzMjUsIDAuMDI2MjUsIDAuMDIsIDAuMDEzNzUsIDAuMDAzNzUsIDAuMDAxMjUiLCBcCi0gICAgICAgICAgIjAuMDQ4NzUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMjUsIDAuMDE4NzUsIDAuMDA4NzUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMDU1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDI1LCAwLjAxNSwgMC4wMTI1IiwgXAotICAgICAgICAgICIwLjA2MTI1LCAwLjA1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDIxMjUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMDY3NSwgMC4wNTYyNSwgMC4wNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAyNzUsIDAuMDI1IiwgXAotICAgICAgICAgICIwLjA3MTI1LCAwLjA2NjI1LCAwLjA1Mzc1LCAwLjA0NzUsIDAuMDQxMjUsIDAuMDM3NSwgMC4wMzUiLCBcCi0gICAgICAgICAgIjAuMDgsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNSwgMC4wNCwgMC4wMzc1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBTRURGRkhRWDQgKgotICogLS0tLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChTRURGRkhRWDQpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMS44NDgzOwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIGZmIChOMzAsUUJJTlQpIHsKLSAgICBuZXh0X3N0YXRlIDogIigoU0UgU0kpICsgKCFTRSAoKEUgRCkgKyAoIUUgKCEoIU4zMCkpKSkpKSI7Ci0gICAgY2xvY2tlZF9vbiA6ICJDSyI7Ci0gIH0KLSAgcGluKENLKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2MzQxMzk7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjM0MDI4OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDYzNDEzOTsKLSAgICBjbG9jayA6IHRydWU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA0NTQzLCAwLjAwNDUzMSwgMC4wMDQ2MDIsIDAuMDA0Njk4LCAwLjAwNDgxNiwgMC4wMDUwMzgsIDAuMDA1MjI3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA5MTMxLCAwLjAwOTEzOSwgMC4wMDkyMTMsIDAuMDA5MzQyLCAwLjAwOTQ5MSwgMC4wMDk3NzMsIDAuMDEwMDU1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRCYhRSZTRSYhU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX0VfRVFfMF9BTl9TRV9FUV8xX0FOX1NJX0VRXzAgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wODc1ODQsIDAuMDk1Nzk3LCAwLjEwNDk3NCwgMC4xMTIwMSwgMC4xMTc3ODcsIDAuMTI1NTEzLCAwLjEzMTE3MiIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDY1MDQsIDAuMDczMDkyLCAwLjA4MjIxLCAwLjA4OTEyNiwgMC4wOTQ3MDYsIDAuMTAxOTQ3LCAwLjEwNzQwMyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwOTI3ODU4OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDkyNTY5NjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA5Mjc4NTg7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA1MjI2LCAwLjAwNTE4NywgMC4wMDUxOTgsIDAuMDA1MjUxLCAwLjAwNTMxNywgMC4wMDU0NjcsIDAuMDA1NjE4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDEwNjM4LCAwLjAxMDYxNywgMC4wMTA2MjMsIDAuMDEwNjcxLCAwLjAxMDcyNiwgMC4wMTA4NjEsIDAuMDExMDA3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIkUmIVNFIjsKLSAgICAgIHNkZl9jb25kIDogIkVfRVFfMV9BTl9TRV9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjA1LCAtMC4wNDUsIC0wLjA0NSwgLTAuMDM4NzUsIC0wLjAzODc1LCAtMC4wMzUsIC0wLjAzMjUiLCBcCi0gICAgICAgICAgIi0wLjA1NSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjA0LCAtMC4wMzc1IiwgXAotICAgICAgICAgICItMC4wNjc1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDU2MjUsIC0wLjA1NjI1LCAtMC4wNTI1LCAtMC4wNSIsIFwKLSAgICAgICAgICAiLTAuMDczNzUsIC0wLjA2ODc1LCAtMC4wNjI1LCAtMC4wNjI1LCAtMC4wNjI1LCAtMC4wNTg3NSwgLTAuMDU2MjUiLCBcCi0gICAgICAgICAgIi0wLjA4LCAtMC4wNzUsIC0wLjA3NSwgLTAuMDY4NzUsIC0wLjA2ODc1LCAtMC4wNjUsIC0wLjA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA5LCAtMC4wODUsIC0wLjA4NSwgLTAuMDc4NzUsIC0wLjA3ODc1LCAtMC4wNzUsIC0wLjA3MjUiLCBcCi0gICAgICAgICAgIi0wLjA5ODc1LCAtMC4wOTM3NSwgLTAuMDg3NSwgLTAuMDg3NSwgLTAuMDg3NSwgLTAuMDgzNzUsIC0wLjA4MTI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDI1LCAtMC4wMTM3NSwgLTAuMDA3NSwgLTAuMDA3NSwgLTAuMDAxMjUsIDAuMDAyNSwgMC4wMDUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgLTAuMDAyNSwgMCIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDg3NSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTUsIC0wLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzNzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAyMTI1LCAtMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDUyNSwgLTAuMDQ3NSwgLTAuMDQxMjUsIC0wLjAzNSwgLTAuMDM1LCAtMC4wMzEyNSwgLTAuMDIyNSIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzM3NSwgLTAuMDMxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIkUmIVNFIjsKLSAgICAgIHNkZl9jb25kIDogIkVfRVFfMV9BTl9TRV9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4MTI1LCAwLjA3LCAwLjA2Mzc1LCAwLjA2Mzc1LCAwLjA1NzUsIDAuMDUzNzUsIDAuMDUxMjUiLCBcCi0gICAgICAgICAgIjAuMDg2MjUsIDAuMDc1LCAwLjA2ODc1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDU4NzUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIjAuMDkyNSwgMC4wODc1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNzUsIDAuMDcxMjUsIDAuMDY4NzUiLCBcCi0gICAgICAgICAgIjAuMDk4NzUsIDAuMDkzNzUsIDAuMDg3NSwgMC4wODEyNSwgMC4wODEyNSwgMC4wNzc1LCAwLjA3NSIsIFwKLSAgICAgICAgICAiMC4xMTEyNSwgMC4xLCAwLjA5Mzc1LCAwLjA4NzUsIDAuMDg3NSwgMC4wODM3NSwgMC4wODEyNSIsIFwKLSAgICAgICAgICAiMC4xMjEyNSwgMC4xMSwgMC4xMDM3NSwgMC4wOTc1LCAwLjA5NzUsIDAuMDkzNzUsIDAuMDkxMjUiLCBcCi0gICAgICAgICAgIjAuMTMsIDAuMTE4NzUsIDAuMTEyNSwgMC4xMDYyNSwgMC4xMDYyNSwgMC4xMDI1LCAwLjEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjI1LCAwLjA1MTI1LCAwLjA0NSwgMC4wMzg3NSwgMC4wMzI1LCAwLjAyODc1LCAwLjAyIiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDYyNSwgMC4wNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzMzc1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiMC4wNzM3NSwgMC4wNjg3NSwgMC4wNTYyNSwgMC4wNSwgMC4wNDM3NSwgMC4wNCwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4wOCwgMC4wNzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNSwgMC4wNDYyNSwgMC4wMzc1IiwgXAotICAgICAgICAgICIwLjA4NjI1LCAwLjA4MTI1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDUyNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4wOTYyNSwgMC4wODUsIDAuMDc4NzUsIDAuMDcyNSwgMC4wNjYyNSwgMC4wNjI1LCAwLjA1Mzc1IiwgXAotICAgICAgICAgICIwLjEwNSwgMC4wOTM3NSwgMC4wODc1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNjUsIDAuMDYyNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNjc3NjE7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNjc2NzM7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNjc3NjE7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA5ODQ3LCAwLjAwOTg0NCwgMC4wMDk5MjQsIDAuMDEwMDM1LCAwLjAxMDE5MSwgMC4wMTAzNzIsIDAuMDEwNTY4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDExNTU1LCAwLjAxMTU4LCAwLjAxMTY4MiwgMC4wMTE4NzUsIDAuMDEyMTA5LCAwLjAxMjUxNywgMC4wMTI4OSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhU0UiOwotICAgICAgc2RmX2NvbmQgOiAiU0UgPT0gMSdiMCI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDU2MjUsIC0wLjA1MTI1LCAtMC4wMzg3NSwgLTAuMDMyNSwgLTAuMDI2MjUsIC0wLjAyMjUsIC0wLjAxMzc1IiwgXAotICAgICAgICAgICItMC4wNjEyNSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDI3NSwgLTAuMDI1IiwgXAotICAgICAgICAgICItMC4wNjc1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wMzM3NSwgLTAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjA3Mzc1LCAtMC4wNjg3NSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNSwgLTAuMDQsIC0wLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjA4LCAtMC4wNjg3NSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNDYyNSwgLTAuMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDgzNzUsIC0wLjA3ODc1LCAtMC4wNjYyNSwgLTAuMDYsIC0wLjA1Mzc1LCAtMC4wNSwgLTAuMDQ3NSIsIFwKLSAgICAgICAgICAiLTAuMDg2MjUsIC0wLjA4MTI1LCAtMC4wNzUsIC0wLjA2ODc1LCAtMC4wNjI1LCAtMC4wNTI1LCAtMC4wNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAxODc1LCAtMC4wMTM3NSwgLTAuMDA3NSwgLTAuMDAxMjUsIDAuMDA1LCAwLjAwODc1LCAwLjAxMTI1IiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAtMC4wMDYyNSwgMC4wMDM3NSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDg3NSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAyNSwgLTAuMDE1LCAtMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAzMTI1LCAtMC4wMjEyNSwgLTAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjA1MjUsIC0wLjA0NzUsIC0wLjA0NzUsIC0wLjA0MTI1LCAtMC4wNDEyNSwgLTAuMDMxMjUsIC0wLjAyODc1IiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA1LCAtMC4wNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wNCwgLTAuMDM3NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIVNFIjsKLSAgICAgIHNkZl9jb25kIDogIlNFID09IDEnYjAiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3NSwgMC4wNywgMC4wNjM3NSwgMC4wNTc1LCAwLjA1MTI1LCAwLjA0NzUsIDAuMDQ1IiwgXAotICAgICAgICAgICIwLjA4LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA2MjUsIDAuMDU4NzUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIjAuMDkyNSwgMC4wODc1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjUsIDAuMDYyNSIsIFwKLSAgICAgICAgICAiMC4wOTg3NSwgMC4wOTM3NSwgMC4wODc1LCAwLjA4MTI1LCAwLjA4MTI1LCAwLjA3NzUsIDAuMDc1IiwgXAotICAgICAgICAgICIwLjExMTI1LCAwLjEsIDAuMDkzNzUsIDAuMDkzNzUsIDAuMDg3NSwgMC4wODM3NSwgMC4wODEyNSIsIFwKLSAgICAgICAgICAiMC4xMjEyNSwgMC4xMTYyNSwgMC4xMSwgMC4xMDM3NSwgMC4xMDM3NSwgMC4xLCAwLjA5NzUiLCBcCi0gICAgICAgICAgIjAuMTMsIDAuMTI1LCAwLjExODc1LCAwLjExMjUsIDAuMTEyNSwgMC4xMDg3NSwgMC4xMDYyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2ODc1LCAwLjA2Mzc1LCAwLjA1NzUsIDAuMDU3NSwgMC4wNTc1LCAwLjA1Mzc1LCAwLjA1MTI1IiwgXAotICAgICAgICAgICIwLjA3Mzc1LCAwLjA2ODc1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDYyNSwgMC4wNTg3NSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiMC4wOCwgMC4wNzUsIDAuMDc1LCAwLjA2ODc1LCAwLjA2ODc1LCAwLjA2NSwgMC4wNjI1IiwgXAotICAgICAgICAgICIwLjA4NjI1LCAwLjA4MTI1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNzUsIDAuMDcxMjUsIDAuMDY4NzUiLCBcCi0gICAgICAgICAgIjAuMDkyNSwgMC4wODc1LCAwLjA4MTI1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNzEyNSwgMC4wNzUiLCBcCi0gICAgICAgICAgIjAuMDk2MjUsIDAuMDkxMjUsIDAuMDg1LCAwLjA4NSwgMC4wODUsIDAuMDgxMjUsIDAuMDc4NzUiLCBcCi0gICAgICAgICAgIjAuMDk4NzUsIDAuMDkzNzUsIDAuMDkzNzUsIDAuMDg3NSwgMC4wODc1LCAwLjA4Mzc1LCAwLjA4MTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihRKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDEuMzc1Nzg7Ci0gICAgZnVuY3Rpb24gOiAiTjMwIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBub25fdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJpc2luZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3NzA1OSwgMC4xMzE5OTksIDAuMTg1ODIzLCAwLjIyNDI1OSwgMC4yODU3NjMsIDAuMzM5NTI4LCAwLjQxNjM3OCIsIFwKLSAgICAgICAgICAiMC4wODUyNSwgMC4xNDAxOTEsIDAuMTk0MDEyLCAwLjIzMjQ0MiwgMC4yOTM5NDksIDAuMzQ3NzExLCAwLjQyNDU3NyIsIFwKLSAgICAgICAgICAiMC4wOTQxMjksIDAuMTQ5MDY5LCAwLjIwMjg4NCwgMC4yNDEzMzQsIDAuMzAyODE2LCAwLjM1NjYzLCAwLjQzMzQ1MSIsIFwKLSAgICAgICAgICAiMC4xMDEyODksIDAuMTU2MjQ1LCAwLjIxMDA1NSwgMC4yNDg0OSwgMC4zMDk5ODgsIDAuMzYzNzgzLCAwLjQ0MDcwMyIsIFwKLSAgICAgICAgICAiMC4xMDY5ODQsIDAuMTYxOTM0LCAwLjIxNTc1LCAwLjI1NDIwMywgMC4zMTU2OCwgMC4zNjk1MDgsIDAuNDQ2Mjk2IiwgXAotICAgICAgICAgICIwLjExNDQ2OSwgMC4xNjk1NDYsIDAuMjIzMzU0LCAwLjI2MTgwMSwgMC4zMjMyNDEsIDAuMzc3MDcyLCAwLjQ1Mzg5MyIsIFwKLSAgICAgICAgICAiMC4xMjAyNjksIDAuMTc1MjI5LCAwLjIyOTAyLCAwLjI2NzQ5NywgMC4zMjg5NTIsIDAuMzgyNzM1LCAwLjQ1OTU3OCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyNDk0OCwgMC4xMzQ4ODQsIDAuMjQ3OTU1LCAwLjMyOTExLCAwLjQ1ODU0NCwgMC41NzI0NTksIDAuNzM0MzQ1IiwgXAotICAgICAgICAgICIwLjAyNDk1NSwgMC4xMzQ4NzgsIDAuMjQ3OTYxLCAwLjMyOTA5OSwgMC40NTg4OTMsIDAuNTcyNDU5LCAwLjczMzg1MSIsIFwKLSAgICAgICAgICAiMC4wMjQ5NjgsIDAuMTM0OTAxLCAwLjI0Nzk1MywgMC4zMjkwOTksIDAuNDU4ODg0LCAwLjU3MTY0NCwgMC43MzQzMTEiLCBcCi0gICAgICAgICAgIjAuMDI0OTU5LCAwLjEzNDkwNSwgMC4yNDc5NjIsIDAuMzI4OTc4LCAwLjQ1ODg2OSwgMC41NzI0MjMsIDAuNzM0NjQ5IiwgXAotICAgICAgICAgICIwLjAyNDk2NywgMC4xMzQ5MDUsIDAuMjQ3OTU1LCAwLjMyOTA5MywgMC40NTg4NTksIDAuNTcyNDIsIDAuNzM0NjI4IiwgXAotICAgICAgICAgICIwLjAyNDk3LCAwLjEzNDgwNywgMC4yNDc5NDEsIDAuMzI5MDQ5LCAwLjQ1ODc4NCwgMC41NzIzMjgsIDAuNzM0NTQ5IiwgXAotICAgICAgICAgICIwLjAyNDk4NCwgMC4xMzQ3NDUsIDAuMjQ3OTczLCAwLjMyOTA3NCwgMC40NTg3OSwgMC41NzIwNDYsIDAuNzM0NTMyIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg3NTk2LCAwLjE0MjY2NCwgMC4xOTY0ODgsIDAuMjM0OTE5LCAwLjI5NjM3OSwgMC4zNTAxNiwgMC40MjcwMDQiLCBcCi0gICAgICAgICAgIjAuMDk1ODA3LCAwLjE1MDg3LCAwLjIwNDY5MiwgMC4yNDMxMTgsIDAuMzA0NTgyLCAwLjM1ODM3NiwgMC40MzUyMDQiLCBcCi0gICAgICAgICAgIjAuMTA0OTg0LCAwLjE2MDA1LCAwLjIxMzg2OCwgMC4yNTIyODcsIDAuMzEzNzg2LCAwLjM2NzU2NCwgMC40NDQ0MDciLCBcCi0gICAgICAgICAgIjAuMTEyMDIzLCAwLjE2NzA5MSwgMC4yMjA5MTIsIDAuMjU5MzM3LCAwLjMyMDgwNywgMC4zNzQ1OTUsIDAuNDUxNDMiLCBcCi0gICAgICAgICAgIjAuMTE3Nzk1LCAwLjE3Mjg2LCAwLjIyNjY4NiwgMC4yNjUxMTYsIDAuMzI2NTgsIDAuMzgwMzU0LCAwLjQ1NzIwMyIsIFwKLSAgICAgICAgICAiMC4xMjU1MjksIDAuMTgwNjA3LCAwLjIzNDQwNywgMC4yNzI4MzcsIDAuMzM0MzExLCAwLjM4ODA4NiwgMC40NjQ5NCIsIFwKLSAgICAgICAgICAiMC4xMzEzLCAwLjE4NjM3NCwgMC4yNDAxOTYsIDAuMjc4NjM5LCAwLjM0MDA4NSwgMC4zOTM4NzUsIDAuNDcwNzExIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDI0MzM5LCAwLjEzMzAwNCwgMC4yNDQ0NzQsIDAuMzI0MzY1LCAwLjQ1MjI3NSwgMC41NjQxOTgsIDAuNzI0MjE5IiwgXAotICAgICAgICAgICIwLjAyNDM0NywgMC4xMzMwMDYsIDAuMjQ0NDc1LCAwLjMyNDM1NiwgMC40NTIyNTIsIDAuNTYzOTAxLCAwLjcyNDI0MiIsIFwKLSAgICAgICAgICAiMC4wMjQzMzgsIDAuMTMzMDAzLCAwLjI0NDQ1NywgMC4zMjQzMDUsIDAuNDUyMjc2LCAwLjU2NDI5NywgMC43MjQzMzgiLCBcCi0gICAgICAgICAgIjAuMDI0MzM3LCAwLjEzMzAwNCwgMC4yNDQ0NzQsIDAuMzI0MzU1LCAwLjQ1MjI3MSwgMC41NjQxODUsIDAuNzI0Mjc3IiwgXAotICAgICAgICAgICIwLjAyNDMzNywgMC4xMzMwMDMsIDAuMjQ0NDc5LCAwLjMyNDM3MiwgMC40NTIyOCwgMC41NjQxODcsIDAuNzI0Mjg2IiwgXAotICAgICAgICAgICIwLjAyNDMzNywgMC4xMzMwMTQsIDAuMjQ0NDI5LCAwLjMyNDM0NiwgMC40NTIyNzEsIDAuNTY0MTI0LCAwLjcyNDA1MyIsIFwKLSAgICAgICAgICAiMC4wMjQzMzQsIDAuMTMyODcxLCAwLjI0NDQ5MiwgMC4zMjQwMTksIDAuNDUyMTY5LCAwLjU2NDI3MiwgMC43MjQyODUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTg2NTksIDAuMDE4Nzk0LCAwLjAxODgxNiwgMC4wMTg4MjMsIDAuMDE4ODI4LCAwLjAxODgzMiwgMC4wMTg4MzQiLCBcCi0gICAgICAgICAgIjAuMDE4NjQ5LCAwLjAxODc4MywgMC4wMTg4MDUsIDAuMDE4ODEyLCAwLjAxODgxNywgMC4wMTg4MiwgMC4wMTg4MjMiLCBcCi0gICAgICAgICAgIjAuMDE4NzMzLCAwLjAxODg2NCwgMC4wMTg4ODQsIDAuMDE4ODkxLCAwLjAxODg5NiwgMC4wMTg4OTksIDAuMDE4OTAzIiwgXAotICAgICAgICAgICIwLjAxODc5NiwgMC4wMTg5MzksIDAuMDE4OTYyLCAwLjAxODk2OSwgMC4wMTg5NzUsIDAuMDE4OTc3LCAwLjAxODk4MiIsIFwKLSAgICAgICAgICAiMC4wMTg5NTgsIDAuMDE5MDk0LCAwLjAxOTExNiwgMC4wMTkxMjEsIDAuMDE5MTI4LCAwLjAxOTEzMiwgMC4wMTkxMzYiLCBcCi0gICAgICAgICAgIjAuMDE5MTQxLCAwLjAxOTI3OSwgMC4wMTkzMDMsIDAuMDE5MzExLCAwLjAxOTMxNSwgMC4wMTkzMTgsIDAuMDE5MzI0IiwgXAotICAgICAgICAgICIwLjAxOTM3OCwgMC4wMTk1MiwgMC4wMTk1NDIsIDAuMDE5NTQ5LCAwLjAxOTUyOCwgMC4wMTk1MywgMC4wMTk1MzQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyMDAzNiwgMC4wMjAyNTUsIDAuMDIwMjk0LCAwLjAyMDMwNiwgMC4wMjAzMTcsIDAuMDIwMzIyLCAwLjAyMDMyNyIsIFwKLSAgICAgICAgICAiMC4wMjAwNTYsIDAuMDIwMjcsIDAuMDIwMzA3LCAwLjAyMDMxOSwgMC4wMjAzMjcsIDAuMDIwMzM0LCAwLjAyMDMzOSIsIFwKLSAgICAgICAgICAiMC4wMjAxMjgsIDAuMDIwMzUsIDAuMDIwMzg4LCAwLjAyMDQsIDAuMDIwNDExLCAwLjAyMDQxNiwgMC4wMjA0MjEiLCBcCi0gICAgICAgICAgIjAuMDIwMjU1LCAwLjAyMDQ3NiwgMC4wMjA1MTQsIDAuMDIwNTI1LCAwLjAyMDUzNiwgMC4wMjA1NDEsIDAuMDIwNTQ2IiwgXAotICAgICAgICAgICIwLjAyMDQyMSwgMC4wMjA2MzksIDAuMDIwNjc2LCAwLjAyMDY4OCwgMC4wMjA2OTcsIDAuMDIwNzA0LCAwLjAyMDcwOCIsIFwKLSAgICAgICAgICAiMC4wMjA2NzUsIDAuMDIwODkzLCAwLjAyMDkyOSwgMC4wMjA5MzgsIDAuMDIwOTQ5LCAwLjAyMDk1NCwgMC4wMjA5NTkiLCBcCi0gICAgICAgICAgIjAuMDIwODc1LCAwLjAyMTEwMiwgMC4wMjExNDIsIDAuMDIxMTU0LCAwLjAyMTE2NywgMC4wMjExMzUsIDAuMDIxMTcyIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTRSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNTMyOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTUzMTQxOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTUzMjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDczMzIsIDAuMDA3MzQ3LCAwLjAwNzQzNywgMC4wMDc1NDksIDAuMDA3NjcxLCAwLjAwNzg4MywgMC4wMDgxMTkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDkxNzgsIDAuMDA5MTU4LCAwLjAwOTI3NSwgMC4wMDk1MjMsIDAuMDA5NjgzLCAwLjAxMDA4MywgMC4wMTA0NTMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUQmIUUmIVNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9FX0VRXzBfQU5fU0lfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMzEyNSwgLTAuMDMyNSwgLTAuMDI2MjUsIC0wLjAyNjI1LCAtMC4wMiwgLTAuMDE2MjUsIC0wLjAxMzc1IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzc1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDMxMjUsIC0wLjAyNzUsIC0wLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzM3NSwgLTAuMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDYxMjUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wNCwgLTAuMDQzNzUiLCBcCi0gICAgICAgICAgIi0wLjA2MTI1LCAtMC4wNTYyNSwgLTAuMDU2MjUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDQ2MjUsIC0wLjA0Mzc1IiwgXAotICAgICAgICAgICItMC4wNzEyNSwgLTAuMDY2MjUsIC0wLjA2LCAtMC4wNiwgLTAuMDYsIC0wLjA1NjI1LCAtMC4wNTM3NSIsIFwKLSAgICAgICAgICAiLTAuMDczNzUsIC0wLjA2ODc1LCAtMC4wNjg3NSwgLTAuMDYyNSwgLTAuMDYyNSwgLTAuMDU4NzUsIC0wLjA1NjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEJiFFJlNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9FX0VRXzBfQU5fU0lfRVFfMSA9PSAxJ2IxIjsKLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMDYyNSwgMC4wMDUsIDAuMDExMjUsIDAuMDE3NSwgMC4wMTc1LCAwLjAyNzUsIDAuMDMiLCBcCi0gICAgICAgICAgIi0wLjAxMTI1LCAtMC4wMDYyNSwgMC4wMDYyNSwgMC4wMDYyNSwgMC4wMTI1LCAwLjAxNjI1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDE3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAsIDAuMDA2MjUsIDAuMDEsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgLTAuMDA2MjUsIDAuMDAzNzUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMTI1LCAtMC4wMDI1LCAwIiwgXAotICAgICAgICAgICItMC4wNCwgLTAuMDI4NzUsIC0wLjAyODc1LCAtMC4wMjI1LCAtMC4wMTYyNSwgLTAuMDEyNSwgLTAuMDEiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAyNSwgLTAuMDIxMjUsIC0wLjAxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUQmRSZTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fRV9FUV8xX0FOX1NJX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDI1LCAtMC4wMiwgLTAuMDEzNzUsIC0wLjAwNzUsIC0wLjAwNzUsIC0wLjAwMzc1LCAtMC4wMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDg3NSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAyNSwgLTAuMDIxMjUsIC0wLjAxODc1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMjc1LCAtMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjA1NSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDMzNzUsIC0wLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wNjUsIC0wLjA2LCAtMC4wNTM3NSwgLTAuMDUzNzUsIC0wLjA0NzUsIC0wLjA0Mzc1LCAtMC4wNDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDY3NSwgLTAuMDYyNSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA1NjI1LCAtMC4wNTI1LCAtMC4wNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJEJkUmIVNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMV9BTl9FX0VRXzFfQU5fU0lfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMTI1LCAtMC4wMDc1LCAtMC4wMDEyNSwgMC4wMDUsIDAuMDExMjUsIDAuMDE1LCAwLjAyMzc1IiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAsIDAsIDAuMDEsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAyNSwgLTAuMDEyNSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAuMDAzNzUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMTI1LCAtMC4wMDI1LCAwIiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA4NzUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wNDYyNSwgLTAuMDQxMjUsIC0wLjAyODc1LCAtMC4wMjI1LCAtMC4wMjI1LCAtMC4wMTI1LCAtMC4wMSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMjEyNSwgLTAuMDEyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUQmIUUmIVNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9FX0VRXzBfQU5fU0lfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDM3NSwgMC4wMzI1LCAwLjAyNjI1LCAwLjAyLCAwLjAxMzc1LCAwLjAxLCAwLjAwMTI1IiwgXAotICAgICAgICAgICIwLjA0ODc1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDI1LCAwLjAyNSwgMC4wMTUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4wNjEyNSwgMC4wNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyMTI1LCAwLjAxODc1IiwgXAotICAgICAgICAgICIwLjA2MTI1LCAwLjA1NjI1LCAwLjA1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDI3NSwgMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMDY3NSwgMC4wNjI1LCAwLjA1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDMzNzUsIDAuMDI1IiwgXAotICAgICAgICAgICIwLjA3NzUsIDAuMDY2MjUsIDAuMDYsIDAuMDUzNzUsIDAuMDQ3NSwgMC4wMzc1LCAwLjAzNSIsIFwKLSAgICAgICAgICAiMC4wOCwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1LCAwLjA0LCAwLjAzNzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEJiFFJlNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9FX0VRXzBfQU5fU0lfRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDM3NSwgMC4wMzg3NSwgMC4wMzI1LCAwLjAyNjI1LCAwLjAyNjI1LCAwLjAyMjUsIDAuMDIiLCBcCi0gICAgICAgICAgIjAuMDU1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMjc1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiMC4wNjEyNSwgMC4wNTYyNSwgMC4wNSwgMC4wNDM3NSwgMC4wNDM3NSwgMC4wNCwgMC4wMzc1IiwgXAotICAgICAgICAgICIwLjA3Mzc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDU2MjUsIDAuMDUsIDAuMDQ2MjUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMDgsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1MjUsIDAuMDUiLCBcCi0gICAgICAgICAgIjAuMDksIDAuMDc4NzUsIDAuMDcyNSwgMC4wNzI1LCAwLjA2NjI1LCAwLjA2MjUsIDAuMDYiLCBcCi0gICAgICAgICAgIjAuMDk4NzUsIDAuMDg3NSwgMC4wODEyNSwgMC4wODEyNSwgMC4wNzUsIDAuMDcxMjUsIDAuMDY4NzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEJkUmU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX0VfRVFfMV9BTl9TSV9FUV8xID09IDEnYjEiOwotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzNzUsIDAuMDMyNSwgMC4wMiwgMC4wMTM3NSwgMC4wMDc1LCAwLjAwMzc1LCAtMC4wMDUiLCBcCi0gICAgICAgICAgIjAuMDQ4NzUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMjUsIDAuMDE4NzUsIDAuMDA4NzUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMDU1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDI1LCAwLjAyMTI1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMDYxMjUsIDAuMDU2MjUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMjc1LCAwLjAxODc1IiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNSwgMC4wNDM3NSwgMC4wMzM3NSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4wNzc1LCAwLjA3MjUsIDAuMDY2MjUsIDAuMDYsIDAuMDUzNzUsIDAuMDQzNzUsIDAuMDQxMjUiLCBcCi0gICAgICAgICAgIjAuMDg2MjUsIDAuMDgxMjUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNTI1LCAwLjA1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJEJkUmIVNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMV9BTl9FX0VRXzFfQU5fU0lfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjI1LCAwLjA1MTI1LCAwLjA0NSwgMC4wNDUsIDAuMDM4NzUsIDAuMDM1LCAwLjAzMjUiLCBcCi0gICAgICAgICAgIjAuMDY3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1LCAwLjA1LCAwLjA0NjI1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjA4LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNTI1LCAwLjA1IiwgXAotICAgICAgICAgICIwLjA4NjI1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1ODc1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICIwLjA5MjUsIDAuMDgxMjUsIDAuMDc1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjUsIDAuMDYyNSIsIFwKLSAgICAgICAgICAiMC4wOTYyNSwgMC4wOTEyNSwgMC4wODUsIDAuMDc4NzUsIDAuMDc4NzUsIDAuMDc1LCAwLjA3MjUiLCBcCi0gICAgICAgICAgIjAuMTA1LCAwLjA5Mzc1LCAwLjA4NzUsIDAuMDgxMjUsIDAuMDgxMjUsIDAuMDc3NSwgMC4wNzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFNJKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA5NTUxODY7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwOTUyOTg0OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDk1NTE4NjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDM4NzIsIDAuMDAzODMsIDAuMDAzODU4LCAwLjAwMzkwNCwgMC4wMDM5OSwgMC4wMDQxNDgsIDAuMDA0MzAxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA4MDg5LCAwLjAwODA2MywgMC4wMDgwODgsIDAuMDA4MTQzLCAwLjAwODIwMywgMC4wMDgzNjUsIDAuMDA4NTE4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlNFIjsKLSAgICAgIHNkZl9jb25kIDogIlNFID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAzMTI1LCAtMC4wMiwgLTAuMDIsIC0wLjAxMzc1LCAtMC4wMTM3NSwgLTAuMDEsIC0wLjAwNzUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDE4NzUsIC0wLjAxNSwgLTAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAyMTI1LCAtMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDI3NSwgLTAuMDI1IiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzMzc1LCAtMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDY1LCAtMC4wNiwgLTAuMDUzNzUsIC0wLjA1Mzc1LCAtMC4wNDc1LCAtMC4wNDM3NSwgLTAuMDQxMjUiLCBcCi0gICAgICAgICAgIi0wLjA2NzUsIC0wLjA2MjUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNTYyNSwgLTAuMDUyNSwgLTAuMDUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMDYyNSwgMC4wMDUsIDAuMDExMjUsIDAuMDE3NSwgMC4wMTc1LCAwLjAyNzUsIDAuMDMiLCBcCi0gICAgICAgICAgIi0wLjAxMTI1LCAtMC4wMDYyNSwgMC4wMDYyNSwgMC4wMDYyNSwgMC4wMTI1LCAwLjAyMjUsIDAuMDI1IiwgXAotICAgICAgICAgICItMC4wMTc1LCAtMC4wMTI1LCAwLCAwLCAwLjAwNjI1LCAwLjAxNjI1LCAwLjAxODc1IiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAsIDAsIDAuMDEsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMCwgMC4wMDM3NSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDMzNzUsIC0wLjAyMjUsIC0wLjAxNjI1LCAtMC4wMSwgLTAuMDEsIDAsIDAuMDAyNSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDg3NSwgMCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiU0UiOwotICAgICAgc2RmX2NvbmQgOiAiU0UgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDUsIDAuMDQ1LCAwLjAzODc1LCAwLjAzMjUsIDAuMDMyNSwgMC4wMjI1LCAwLjAyIiwgXAotICAgICAgICAgICIwLjA1NSwgMC4wNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzNzUsIDAuMDMzNzUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMDY3NSwgMC4wNTYyNSwgMC4wNSwgMC4wNSwgMC4wNDM3NSwgMC4wNCwgMC4wMzc1IiwgXAotICAgICAgICAgICIwLjA3Mzc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDU2MjUsIDAuMDUsIDAuMDQ2MjUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMDgsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1MjUsIDAuMDUiLCBcCi0gICAgICAgICAgIjAuMDksIDAuMDc4NzUsIDAuMDcyNSwgMC4wNzI1LCAwLjA2NjI1LCAwLjA2MjUsIDAuMDYiLCBcCi0gICAgICAgICAgIjAuMDkyNSwgMC4wODc1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNzUsIDAuMDcxMjUsIDAuMDY4NzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzEyNSwgMC4wMjYyNSwgMC4wMiwgMC4wMTM3NSwgMC4wMDc1LCAtMC4wMDI1LCAtMC4wMDUiLCBcCi0gICAgICAgICAgIjAuMDQyNSwgMC4wMzEyNSwgMC4wMjUsIDAuMDE4NzUsIDAuMDEyNSwgMC4wMDI1LCAwIiwgXAotICAgICAgICAgICIwLjA0ODc1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDI1LCAwLjAxODc1LCAwLjAwODc1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICIwLjA1NSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMTUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4wNjEyNSwgMC4wNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyMTI1LCAwLjAxODc1IiwgXAotICAgICAgICAgICIwLjA2NSwgMC4wNiwgMC4wNDc1LCAwLjA0MTI1LCAwLjAzNSwgMC4wMzEyNSwgMC4wMjI1IiwgXAotICAgICAgICAgICIwLjA3Mzc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDUsIDAuMDQzNzUsIDAuMDMzNzUsIDAuMDMxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBTRURGRlg0ICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKFNFREZGWDQpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMi4wMTU7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgZmYgKE4zMCxORVQ1MzYpIHsKLSAgICBuZXh0X3N0YXRlIDogIigoU0UgU0kpICsgKCFTRSAoKEUgRCkgKyAoIUUgKCEoIU4zMCkpKSkpKSI7Ci0gICAgY2xvY2tlZF9vbiA6ICJDSyI7Ci0gIH0KLSAgcGluKENLKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2MTU1ODc7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjE1NTg3OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDYxNTQyMzsKLSAgICBjbG9jayA6IHRydWU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzODA4LCAwLjAwMzgxOCwgMC4wMDM4NjQsIDAuMDAzOTc2LCAwLjAwNDA4NywgMC4wMDQzMDUsIDAuMDA0NTA5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA3Mzc1LCAwLjAwNzM3NiwgMC4wMDc0NjYsIDAuMDA3NTgxLCAwLjAwNzcyMywgMC4wMDc5OTksIDAuMDA4MjgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFEJiFFJlNFJiFTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fRV9FUV8wX0FOX1NFX0VRXzFfQU5fU0lfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjEwNjk4NSwgMC4xMTUxMzgsIDAuMTIzOTA4LCAwLjEzMDQ5OCwgMC4xMzU4NjIsIDAuMTQzMTk2LCAwLjE0ODQ0OCIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDYxOTEzLCAwLjA2OTk2OSwgMC4wNzg3MywgMC4wODUyMDcsIDAuMDkwMzcsIDAuMDk3MjAxLCAwLjEwMjMxOCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjkxODg3OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDY5MDcyOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDY5MTg4NzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDM5MTQsIDAuMDAzODk3LCAwLjAwMzkwOCwgMC4wMDM5NDYsIDAuMDA0MDAxLCAwLjAwNDExOSwgMC4wMDQyMjciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDgyOTEsIDAuMDA4Mjc5LCAwLjAwODI4OSwgMC4wMDgzMjUsIDAuMDA4MzgyLCAwLjAwODQ4OSwgMC4wMDg1ODkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiRSYhU0UiOwotICAgICAgc2RmX2NvbmQgOiAiRV9FUV8xX0FOX1NFX0VRXzAgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDYyNSwgLTAuMDU3NSwgLTAuMDUxMjUsIC0wLjA1MTI1LCAtMC4wNTEyNSwgLTAuMDQ3NSwgLTAuMDQ1IiwgXAotICAgICAgICAgICItMC4wNjc1LCAtMC4wNjI1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDU2MjUsIC0wLjA1MjUsIC0wLjA1IiwgXAotICAgICAgICAgICItMC4wNzM3NSwgLTAuMDY4NzUsIC0wLjA2ODc1LCAtMC4wNjg3NSwgLTAuMDYyNSwgLTAuMDY1LCAtMC4wNjI1IiwgXAotICAgICAgICAgICItMC4wOCwgLTAuMDc1LCAtMC4wNzUsIC0wLjA3NSwgLTAuMDc1LCAtMC4wNzEyNSwgLTAuMDY4NzUiLCBcCi0gICAgICAgICAgIi0wLjA4NjI1LCAtMC4wODc1LCAtMC4wODEyNSwgLTAuMDgxMjUsIC0wLjA4MTI1LCAtMC4wNzc1LCAtMC4wNzUiLCBcCi0gICAgICAgICAgIi0wLjA5NjI1LCAtMC4wOTEyNSwgLTAuMDkxMjUsIC0wLjA5MTI1LCAtMC4wOTEyNSwgLTAuMDg3NSwgLTAuMDg1IiwgXAotICAgICAgICAgICItMC4xMDUsIC0wLjEsIC0wLjEsIC0wLjEsIC0wLjEsIC0wLjA5NjI1LCAtMC4wOTM3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAzMTI1LCAtMC4wMjYyNSwgLTAuMDI2MjUsIC0wLjAyLCAtMC4wMTM3NSwgLTAuMDEsIC0wLjAwNzUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMzEyNSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDI1LCAtMC4wMjEyNSwgLTAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDM3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAzMTI1LCAtMC4wMjc1LCAtMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wNDM3NSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzNzUsIC0wLjAzMzc1LCAtMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wNDM3NSwgLTAuMDQsIC0wLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjA1ODc1LCAtMC4wNiwgLTAuMDUzNzUsIC0wLjA1Mzc1LCAtMC4wNTM3NSwgLTAuMDQzNzUsIC0wLjA0MTI1IiwgXAotICAgICAgICAgICItMC4wNjc1LCAtMC4wNjI1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDU2MjUsIC0wLjA1MjUsIC0wLjA1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJFJiFTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJFX0VRXzFfQU5fU0VfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTM3NSwgMC4wODg3NSwgMC4wODI1LCAwLjA3NjI1LCAwLjA3LCAwLjA2NjI1LCAwLjA2Mzc1IiwgXAotICAgICAgICAgICIwLjA5ODc1LCAwLjA5Mzc1LCAwLjA4NzUsIDAuMDgxMjUsIDAuMDgxMjUsIDAuMDc3NSwgMC4wNzUiLCBcCi0gICAgICAgICAgIjAuMTA1LCAwLjEsIDAuMDkzNzUsIDAuMDg3NSwgMC4wODc1LCAwLjA4Mzc1LCAwLjA4MTI1IiwgXAotICAgICAgICAgICIwLjExNzUsIDAuMTA2MjUsIDAuMSwgMC4wOTM3NSwgMC4wOTM3NSwgMC4wOSwgMC4wODc1IiwgXAotICAgICAgICAgICIwLjEyMzc1LCAwLjExMjUsIDAuMTA2MjUsIDAuMTA2MjUsIDAuMSwgMC4wOTYyNSwgMC4wOTM3NSIsIFwKLSAgICAgICAgICAiMC4xMzM3NSwgMC4xMjI1LCAwLjExNjI1LCAwLjExNjI1LCAwLjExLCAwLjEwNjI1LCAwLjEwMzc1IiwgXAotICAgICAgICAgICIwLjE0MjUsIDAuMTMxMjUsIDAuMTI1LCAwLjEyNSwgMC4xMTg3NSwgMC4xMTUsIDAuMTEyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4MTI1LCAwLjA3LCAwLjA2Mzc1LCAwLjA1NzUsIDAuMDUxMjUsIDAuMDQ3NSwgMC4wNDUiLCBcCi0gICAgICAgICAgIjAuMDg2MjUsIDAuMDgxMjUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNTI1LCAwLjA1IiwgXAotICAgICAgICAgICIwLjA5MjUsIDAuMDg3NSwgMC4wNzUsIDAuMDY4NzUsIDAuMDY4NzUsIDAuMDU4NzUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIjAuMDk4NzUsIDAuMDkzNzUsIDAuMDgxMjUsIDAuMDc1LCAwLjA3NSwgMC4wNjUsIDAuMDYyNSIsIFwKLSAgICAgICAgICAiMC4xMDUsIDAuMSwgMC4wODc1LCAwLjA4MTI1LCAwLjA4MTI1LCAwLjA3MTI1LCAwLjA2ODc1IiwgXAotICAgICAgICAgICIwLjExNSwgMC4xMSwgMC4wOTc1LCAwLjA5MTI1LCAwLjA5MTI1LCAwLjA4MTI1LCAwLjA3ODc1IiwgXAotICAgICAgICAgICIwLjEyMzc1LCAwLjExMjUsIDAuMTA2MjUsIDAuMSwgMC4wOTM3NSwgMC4wOSwgMC4wODc1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihFKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDEzNDk3NzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDEzNDk3NzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDEzNDk0NjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDc4MjEsIDAuMDA3ODMxLCAwLjAwNzkyMSwgMC4wMDgwMywgMC4wMDgxOTcsIDAuMDA4NDIsIDAuMDA4NjIyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA5NDY3LCAwLjAwOTUwMiwgMC4wMDk2MDksIDAuMDA5NzY2LCAwLjAwOTk4MSwgMC4wMTAzNDIsIDAuMDEwNjc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJTRSA9PSAxJ2IwIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wNjg3NSwgLTAuMDYzNzUsIC0wLjA1NzUsIC0wLjA1MTI1LCAtMC4wNTEyNSwgLTAuMDQxMjUsIC0wLjAzODc1IiwgXAotICAgICAgICAgICItMC4wNzM3NSwgLTAuMDY4NzUsIC0wLjA2MjUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNDYyNSwgLTAuMDQzNzUiLCBcCi0gICAgICAgICAgIi0wLjA4NjI1LCAtMC4wODEyNSwgLTAuMDc1LCAtMC4wNjg3NSwgLTAuMDYyNSwgLTAuMDUyNSwgLTAuMDUiLCBcCi0gICAgICAgICAgIi0wLjA5MjUsIC0wLjA4MTI1LCAtMC4wNzUsIC0wLjA2ODc1LCAtMC4wNjg3NSwgLTAuMDU4NzUsIC0wLjA1NjI1IiwgXAotICAgICAgICAgICItMC4wOTI1LCAtMC4wODc1LCAtMC4wODEyNSwgLTAuMDc1LCAtMC4wNjg3NSwgLTAuMDY1LCAtMC4wNTYyNSIsIFwKLSAgICAgICAgICAiLTAuMTAyNSwgLTAuMDkxMjUsIC0wLjA4NSwgLTAuMDc4NzUsIC0wLjA3MjUsIC0wLjA2ODc1LCAtMC4wNiIsIFwKLSAgICAgICAgICAiLTAuMTA1LCAtMC4wOTM3NSwgLTAuMDg3NSwgLTAuMDgxMjUsIC0wLjA3NSwgLTAuMDcxMjUsIC0wLjA2ODc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDI1LCAtMC4wMiwgLTAuMDIsIC0wLjAxMzc1LCAtMC4wMTM3NSwgLTAuMDEsIC0wLjAwMTI1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDE1LCAtMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzc1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDMxMjUsIC0wLjAyMTI1LCAtMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjA0Mzc1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDM3NSwgLTAuMDMzNzUsIC0wLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA1LCAtMC4wNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wNCwgLTAuMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDY1LCAtMC4wNiwgLTAuMDYsIC0wLjA2LCAtMC4wNTM3NSwgLTAuMDUsIC0wLjA0NzUiLCBcCi0gICAgICAgICAgIi0wLjA2NzUsIC0wLjA2ODc1LCAtMC4wNjg3NSwgLTAuMDYyNSwgLTAuMDYyNSwgLTAuMDU4NzUsIC0wLjA1NjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhU0UiOwotICAgICAgc2RmX2NvbmQgOiAiU0UgPT0gMSdiMCI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg3NSwgMC4wODI1LCAwLjA3NjI1LCAwLjA3LCAwLjA3LCAwLjA2NjI1LCAwLjA2Mzc1IiwgXAotICAgICAgICAgICIwLjA5ODc1LCAwLjA4NzUsIDAuMDgxMjUsIDAuMDgxMjUsIDAuMDc1LCAwLjA3MTI1LCAwLjA2ODc1IiwgXAotICAgICAgICAgICIwLjEwNSwgMC4xLCAwLjA5Mzc1LCAwLjA4NzUsIDAuMDg3NSwgMC4wODM3NSwgMC4wODEyNSIsIFwKLSAgICAgICAgICAiMC4xMTc1LCAwLjEwNjI1LCAwLjEsIDAuMSwgMC4wOTM3NSwgMC4wOSwgMC4wODc1IiwgXAotICAgICAgICAgICIwLjEyMzc1LCAwLjExODc1LCAwLjExMjUsIDAuMTA2MjUsIDAuMTA2MjUsIDAuMTAyNSwgMC4xIiwgXAotICAgICAgICAgICIwLjE0LCAwLjEyODc1LCAwLjEyMjUsIDAuMTIyNSwgMC4xMTYyNSwgMC4xMTI1LCAwLjExIiwgXAotICAgICAgICAgICIwLjE0ODc1LCAwLjE0Mzc1LCAwLjEzMTI1LCAwLjEzMTI1LCAwLjEyNSwgMC4xMjEyNSwgMC4xMTg3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3NSwgMC4wNywgMC4wNywgMC4wNywgMC4wNjM3NSwgMC4wNjYyNSwgMC4wNjM3NSIsIFwKLSAgICAgICAgICAiMC4wODYyNSwgMC4wODEyNSwgMC4wNzUsIDAuMDc1LCAwLjA3NSwgMC4wNzEyNSwgMC4wNjg3NSIsIFwKLSAgICAgICAgICAiMC4wOTI1LCAwLjA4NzUsIDAuMDgxMjUsIDAuMDgxMjUsIDAuMDgxMjUsIDAuMDc3NSwgMC4wNzUiLCBcCi0gICAgICAgICAgIjAuMDkyNSwgMC4wODc1LCAwLjA4NzUsIDAuMDg3NSwgMC4wODEyNSwgMC4wODM3NSwgMC4wODEyNSIsIFwKLSAgICAgICAgICAiMC4wOTg3NSwgMC4wOTM3NSwgMC4wODc1LCAwLjA4NzUsIDAuMDg3NSwgMC4wODM3NSwgMC4wODEyNSIsIFwKLSAgICAgICAgICAiMC4xMDI1LCAwLjA5NzUsIDAuMDk3NSwgMC4wOTEyNSwgMC4wOTEyNSwgMC4wODc1LCAwLjA4NSIsIFwKLSAgICAgICAgICAiMC4xMTEyNSwgMC4xMDYyNSwgMC4xLCAwLjA5Mzc1LCAwLjA5Mzc1LCAwLjA5LCAwLjA4NzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFEpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMS4zOTExODsKLSAgICBmdW5jdGlvbiA6ICJOMzAiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5vbl91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcmlzaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc4NDYxLCAwLjEzMzQ3NywgMC4xODczMjMsIDAuMjI2NDM1LCAwLjI4Nzk2OCwgMC4zNDE5NCwgMC40MTg3NTYiLCBcCi0gICAgICAgICAgIjAuMDg2NTUyLCAwLjE0MTU3NywgMC4xOTUzOTIsIDAuMjM0NTAxLCAwLjI5NTgyMywgMC4zNTAxODYsIDAuNDI2NzkiLCBcCi0gICAgICAgICAgIjAuMDk1MjYyLCAwLjE1MDI4MiwgMC4yMDQyNiwgMC4yNDMyNTMsIDAuMzA0NjIxLCAwLjM1ODgxMSwgMC40MzU0NjEiLCBcCi0gICAgICAgICAgIjAuMTAxNzY4LCAwLjE1Njc5NCwgMC4yMTA1ODgsIDAuMjQ5NzA0LCAwLjMxMTAyOSwgMC4zNjUzODcsIDAuNDQxOTk4IiwgXAotICAgICAgICAgICIwLjEwNzAwMSwgMC4xNjIwNCwgMC4yMTYwMzYsIDAuMjU0NDg0LCAwLjMxNjI5MSwgMC4zNzA1OTMsIDAuNDQ3MjA0IiwgXAotICAgICAgICAgICIwLjExNDI4LCAwLjE2OTMxMiwgMC4yMjM0NDIsIDAuMjYxODUzLCAwLjMyMzI4NiwgMC4zNzc3ODgsIDAuNDU0NDQxIiwgXAotICAgICAgICAgICIwLjExOTYxOSwgMC4xNzQ1OTUsIDAuMjI4OTMxLCAwLjI2NzU1NSwgMC4zMjg5OTksIDAuMzgyODA1LCAwLjQ1OTk3NCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyNTIzOCwgMC4xMzYxMTgsIDAuMjQ4MDY0LCAwLjMyODkzMSwgMC40NTkyMDMsIDAuNTcyODgxLCAwLjczNDA4MiIsIFwKLSAgICAgICAgICAiMC4wMjUxOCwgMC4xMzYwOTcsIDAuMjQ4MTY4LCAwLjMyODk5NSwgMC40NTkxOTksIDAuNTcyMjQyLCAwLjczNTAyNCIsIFwKLSAgICAgICAgICAiMC4wMjUyMzgsIDAuMTM2MTAxLCAwLjI0ODQxMiwgMC4zMjkwMTMsIDAuNDU5MjI0LCAwLjU3Mjg0NiwgMC43MzUwMTMiLCBcCi0gICAgICAgICAgIjAuMDI1MjIzLCAwLjEzNjA5NCwgMC4yNDgwMDUsIDAuMzI5MDIyLCAwLjQ1OTE5OCwgMC41NzIyNDIsIDAuNzM0OTk1IiwgXAotICAgICAgICAgICIwLjAyNTE2NCwgMC4xMzYxMjksIDAuMjQ4MTMyLCAwLjMyOTA5NSwgMC40NTkxOTYsIDAuNTcyMjQ2LCAwLjczNDk2OCIsIFwKLSAgICAgICAgICAiMC4wMjUyMDEsIDAuMTM2MTM1LCAwLjI0ODI0NiwgMC4zMjkwNzcsIDAuNDU4MzUzLCAwLjU3MjI0NywgMC43MzQ4NjYiLCBcCi0gICAgICAgICAgIjAuMDI1MjUxLCAwLjEzNTU2NywgMC4yNDgyNzUsIDAuMzI4OTAzLCAwLjQ1ODgyOCwgMC41NzI3NjksIDAuNzMzOTQ3Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg1MDA3LCAwLjE0MDExNCwgMC4xOTQzMTMsIDAuMjMzMDc4LCAwLjI5NDU2OSwgMC4zNDg1MTUsIDAuNDI1MjUyIiwgXAotICAgICAgICAgICIwLjA5MzE2NSwgMC4xNDgyOTksIDAuMjAyNTM3LCAwLjI0MTI4NywgMC4zMDIyNDcsIDAuMzU2NjIyLCAwLjQzMzQwMyIsIFwKLSAgICAgICAgICAiMC4xMDE5MjksIDAuMTU3MDQ1LCAwLjIxMTA4OSwgMC4yNTAwOSwgMC4zMTEzODQsIDAuMzY1MzQ4LCAwLjQ0MjE0MyIsIFwKLSAgICAgICAgICAiMC4xMDg1MTcsIDAuMTYzNjE5LCAwLjIxNzU4OSwgMC4yNTY2MzUsIDAuMzE3OTUsIDAuMzcxOTQyLCAwLjQ0ODgxMSIsIFwKLSAgICAgICAgICAiMC4xMTM4NzQsIDAuMTY4OTg5LCAwLjIyMzE2NCwgMC4yNjE3NjIsIDAuMzIzMzI1LCAwLjM3NzMyNiwgMC40NTQyOTUiLCBcCi0gICAgICAgICAgIjAuMTIxMjI2LCAwLjE3NjM1OCwgMC4yMzAzNzYsIDAuMjY5MDk0LCAwLjMzMTA4NiwgMC4zODQ2ODQsIDAuNDYxNTM1IiwgXAotICAgICAgICAgICIwLjEyNjU0NSwgMC4xODE2NSwgMC4yMzU5NDUsIDAuMjc0NTY5LCAwLjMzNjE0NywgMC4zOTAxMDUsIDAuNDY3MTY1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDI0NDIxLCAwLjEzNDc3OCwgMC4yNDU0OTQsIDAuMzI1MTA1LCAwLjQ1MjUxOCwgMC41NjUzOTksIDAuNzI0NDMyIiwgXAotICAgICAgICAgICIwLjAyNDM0NiwgMC4xMzQ3NjgsIDAuMjQ2MTU1LCAwLjMyNTY2OCwgMC40NTMwMzIsIDAuNTY1NDAxLCAwLjcyNDMzNCIsIFwKLSAgICAgICAgICAiMC4wMjQ0NDEsIDAuMTM0Nzg4LCAwLjI0NjE5MSwgMC4zMjU2NjgsIDAuNDUzODI5LCAwLjU2NTQsIDAuNzI1NTkyIiwgXAotICAgICAgICAgICIwLjAyNDM0NiwgMC4xMzQ3NjksIDAuMjQ2MjAzLCAwLjMyNTY1NiwgMC40NTI5NiwgMC41NjU2NTEsIDAuNzI0MzQyIiwgXAotICAgICAgICAgICIwLjAyNDMxNCwgMC4xMzQ3NzgsIDAuMjQ2MjA3LCAwLjMyNjExOCwgMC40NTM4MzksIDAuNTY1MzIsIDAuNzI1MTcyIiwgXAotICAgICAgICAgICIwLjAyNDMyMiwgMC4xMzQ3ODMsIDAuMjQ2MTgyLCAwLjMyNDIwNiwgMC40NTIzMzgsIDAuNTY1ODA3LCAwLjcyNDIzOCIsIFwKLSAgICAgICAgICAiMC4wMjQzMywgMC4xMzQ3ODIsIDAuMjQ1MzY1LCAwLjMyNjA2MSwgMC40NTM2MTEsIDAuNTY1MjE2LCAwLjcyNTMyMiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMDcyNSwgMC4wMTA5MDQsIDAuMDEwOTMyLCAwLjAxMDk0MSwgMC4wMTA5NDksIDAuMDEwOTUyLCAwLjAxMDk1NiIsIFwKLSAgICAgICAgICAiMC4wMTA3MDksIDAuMDEwODkxLCAwLjAxMDkyLCAwLjAxMDkyOCwgMC4wMTA5MzYsIDAuMDEwOTQsIDAuMDEwOTQzIiwgXAotICAgICAgICAgICIwLjAxMDc0NywgMC4wMTA5MjYsIDAuMDEwOTU0LCAwLjAxMDk2NCwgMC4wMTA5NzEsIDAuMDEwOTc1LCAwLjAxMDk3OSIsIFwKLSAgICAgICAgICAiMC4wMTA4MDIsIDAuMDEwOTg1LCAwLjAxMTAxNCwgMC4wMTEwMjIsIDAuMDExMDMsIDAuMDExMDM0LCAwLjAxMTAzOCIsIFwKLSAgICAgICAgICAiMC4wMTA4NzQsIDAuMDExMDUzLCAwLjAxMTA4MiwgMC4wMTEwOSwgMC4wMTEwOTgsIDAuMDExMTAyLCAwLjAxMTEwNiIsIFwKLSAgICAgICAgICAiMC4wMTA5OTQsIDAuMDExMTY5LCAwLjAxMTE5OCwgMC4wMTEyMDcsIDAuMDExMjE1LCAwLjAxMTIxOCwgMC4wMTEyMjIiLCBcCi0gICAgICAgICAgIjAuMDExMDcyLCAwLjAxMTI1MywgMC4wMTEyODUsIDAuMDExMjg5LCAwLjAxMTI5NywgMC4wMTEzMDUsIDAuMDExMzA5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTEyNDUsIDAuMDExNDQyLCAwLjAxMTQ3NCwgMC4wMTE0ODIsIDAuMDExNDkyLCAwLjAxMTQ5NiwgMC4wMTE1IiwgXAotICAgICAgICAgICIwLjAxMTI0NywgMC4wMTE0NDIsIDAuMDExNDcyLCAwLjAxMTQ4MiwgMC4wMTE0OSwgMC4wMTE0OTQsIDAuMDExNDk5IiwgXAotICAgICAgICAgICIwLjAxMTI4OSwgMC4wMTE0ODQsIDAuMDExNTE1LCAwLjAxMTUyNCwgMC4wMTE1MzMsIDAuMDExNTM4LCAwLjAxMTU0MSIsIFwKLSAgICAgICAgICAiMC4wMTEzNTUsIDAuMDExNTQ5LCAwLjAxMTU4MSwgMC4wMTE1OSwgMC4wMTE1OTgsIDAuMDExNjAyLCAwLjAxMTYwNiIsIFwKLSAgICAgICAgICAiMC4wMTE0MzQsIDAuMDExNjI4LCAwLjAxMTY1OSwgMC4wMTE2NjgsIDAuMDExNjc2LCAwLjAxMTY4LCAwLjAxMTY4NCIsIFwKLSAgICAgICAgICAiMC4wMTE1NDUsIDAuMDExNzQsIDAuMDExNzgxLCAwLjAxMTc5LCAwLjAxMTc5OCwgMC4wMTE3OTEsIDAuMDExODA2IiwgXAotICAgICAgICAgICIwLjAxMTY1MiwgMC4wMTE4NDQsIDAuMDExODcxLCAwLjAxMTg4NCwgMC4wMTE4ODcsIDAuMDExODk0LCAwLjAxMTkwMiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUU4pICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMS4zMjU3OwotICAgIGZ1bmN0aW9uIDogIk5FVDUzNiI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3NlbnNlIDogbm9uX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiByaXNpbmdfZWRnZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDY5ODUsIDAuMTYzMjE2LCAwLjIxODYxNCwgMC4yNTgyMDQsIDAuMzIxNTUyLCAwLjM3NzAwNSwgMC40NTYxOTUiLCBcCi0gICAgICAgICAgIjAuMTE1MTM4LCAwLjE3MTM2OSwgMC4yMjY3NzcsIDAuMjY2MzY1LCAwLjMyOTcwNiwgMC4zODUxNTYsIDAuNDY0MzY0IiwgXAotICAgICAgICAgICIwLjEyMzkwOCwgMC4xODAxMzUsIDAuMjM1NTQsIDAuMjc1MTIsIDAuMzM4NDY3LCAwLjM5MzkyNiwgMC40NzMwOTYiLCBcCi0gICAgICAgICAgIjAuMTMwNDk4LCAwLjE4NjcyMywgMC4yNDIxMjYsIDAuMjgxNzE0LCAwLjM0NTA2LCAwLjQwMDUxMSwgMC40Nzk3MzYiLCBcCi0gICAgICAgICAgIjAuMTM1ODYyLCAwLjE5MjA5NCwgMC4yNDc1MDEsIDAuMjg3MDg0LCAwLjM1MDQyMywgMC40MDU4NzYsIDAuNDg1MDY2IiwgXAotICAgICAgICAgICIwLjE0MzE5NiwgMC4xOTk0MzUsIDAuMjU0ODMxLCAwLjI5NDQxNiwgMC4zNTc4MSwgMC40MTMyMTUsIDAuNDkyNDA1IiwgXAotICAgICAgICAgICIwLjE0ODUyOSwgMC4yMDQ3NywgMC4yNjAwODMsIDAuMjk5NzY2LCAwLjM2MzAyOCwgMC40MTg1NTEsIDAuNDk3NzQyIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDI2MTgzLCAwLjE0MDYzMiwgMC4yNTg0OTMsIDAuMzQyOTA0LCAwLjQ3ODQyMSwgMC41OTY4OCwgMC43NjY0NDkiLCBcCi0gICAgICAgICAgIjAuMDI2MTg1LCAwLjE0MDYzNywgMC4yNTg2NTIsIDAuMzQyODA5LCAwLjQ3ODQyNiwgMC41OTY4NzYsIDAuNzY2NDQ5IiwgXAotICAgICAgICAgICIwLjAyNjE4MywgMC4xNDA2MTMsIDAuMjU4NzYzLCAwLjM0MjkxNCwgMC40Nzg3NTQsIDAuNTk2ODgsIDAuNzY2NDUiLCBcCi0gICAgICAgICAgIjAuMDI2MTg5LCAwLjE0MDYxNywgMC4yNTg3NDksIDAuMzQyOTA5LCAwLjQ3ODQyNSwgMC41OTY4NzgsIDAuNzY2NDUiLCBcCi0gICAgICAgICAgIjAuMDI2MTg5LCAwLjE0MDYzNiwgMC4yNTg3NDgsIDAuMzQzMzQsIDAuNDc4NzYyLCAwLjU5NzIxNCwgMC43NjY0NCIsIFwKLSAgICAgICAgICAiMC4wMjYxOCwgMC4xNDA2NjcsIDAuMjU4NzMxLCAwLjM0MjkxMiwgMC40Nzg0NzMsIDAuNTk2ODc3LCAwLjc2NjM5MSIsIFwKLSAgICAgICAgICAiMC4wMjYxODYsIDAuMTQwNjM5LCAwLjI1ODUxNCwgMC4zNDMyOTMsIDAuNDc4NDE3LCAwLjU5NzIwMywgMC43NjYzNzQiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDE4ODQsIDAuMTU2OTMzLCAwLjIxMDksIDAuMjQ5NDY0LCAwLjMxMTE2MiwgMC4zNjUxNDEsIDAuNDQyMjY0IiwgXAotICAgICAgICAgICIwLjEwOTk4NCwgMC4xNjUwMjgsIDAuMjE5MDA0LCAwLjI1NzU1NywgMC4zMTkyNTUsIDAuMzczMjQyLCAwLjQ1MDM3NyIsIFwKLSAgICAgICAgICAiMC4xMTg2ODUsIDAuMTczNzMyLCAwLjIyNzY5OCwgMC4yNjYyNTksIDAuMzI3OTU4LCAwLjM4MTk0NywgMC40NTkwNjMiLCBcCi0gICAgICAgICAgIjAuMTI1MTk3LCAwLjE4MDI0NCwgMC4yMzQyMTcsIDAuMjcyNzY4LCAwLjMzNDQ2OCwgMC4zODg0NTksIDAuNDY1NjAxIiwgXAotICAgICAgICAgICIwLjEzMDQ0MywgMC4xODU0ODksIDAuMjM5NDYxLCAwLjI3ODAxNSwgMC4zMzk3NDIsIDAuMzkzNjk4LCAwLjQ3MDgyIiwgXAotICAgICAgICAgICIwLjEzNzY4NCwgMC4xOTI3MzMsIDAuMjQ2NzAzLCAwLjI4NTI1NiwgMC4zNDY5NTcsIDAuNDAwOTU4LCAwLjQ3ODA5MyIsIFwKLSAgICAgICAgICAiMC4xNDMwNDQsIDAuMTk4MDY0LCAwLjI1MjA2MiwgMC4yOTA2MTcsIDAuMzUyMzMyLCAwLjQwNjI5NywgMC40ODM0MiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyNTE4MSwgMC4xMzM3NjEsIDAuMjQ1NTA4LCAwLjMyNTM4MSwgMC40NTQyMTUsIDAuNTY2NzAyLCAwLjcyNjQ4IiwgXAotICAgICAgICAgICIwLjAyNTE4MSwgMC4xMzM3NzMsIDAuMjQ1NTI3LCAwLjMyNTQ3NSwgMC40NTQyMTIsIDAuNTY2MjkxLCAwLjcyNzMwOSIsIFwKLSAgICAgICAgICAiMC4wMjUxODQsIDAuMTMzNzYsIDAuMjQ1NTk2LCAwLjMyNTQ5NywgMC40NTQyNDcsIDAuNTY2NjYsIDAuNzI3MzA3IiwgXAotICAgICAgICAgICIwLjAyNTE4MiwgMC4xMzM3NTgsIDAuMjQ1NDk5LCAwLjMyNTU0MywgMC40NTQyMDksIDAuNTY2MzA0LCAwLjcyNzI5NiIsIFwKLSAgICAgICAgICAiMC4wMjUxODQsIDAuMTMzNzYyLCAwLjI0NTUwOSwgMC4zMjU2OTcsIDAuNDU0MjAzLCAwLjU2NjI3NSwgMC43MjcyNjciLCBcCi0gICAgICAgICAgIjAuMDI1MjE1LCAwLjEzMzc1MiwgMC4yNDUzMjUsIDAuMzI1NzI4LCAwLjQ1Mzc0NiwgMC41NjYzMjIsIDAuNzI3MTUiLCBcCi0gICAgICAgICAgIjAuMDI1MTgsIDAuMTMzNzY0LCAwLjI0NTI4OCwgMC4zMjUzNjUsIDAuNDUzOTQyLCAwLjU2NjU2NywgMC43MjYzODMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTEyNDUsIDAuMDExNDQyLCAwLjAxMTQ3NCwgMC4wMTE0ODIsIDAuMDExNDkyLCAwLjAxMTQ5NiwgMC4wMTE1IiwgXAotICAgICAgICAgICIwLjAxMTI0NywgMC4wMTE0NDIsIDAuMDExNDcyLCAwLjAxMTQ4MiwgMC4wMTE0OSwgMC4wMTE0OTQsIDAuMDExNDk5IiwgXAotICAgICAgICAgICIwLjAxMTI4OSwgMC4wMTE0ODQsIDAuMDExNTE1LCAwLjAxMTUyNCwgMC4wMTE1MzMsIDAuMDExNTM4LCAwLjAxMTU0MSIsIFwKLSAgICAgICAgICAiMC4wMTEzNTUsIDAuMDExNTQ5LCAwLjAxMTU4MSwgMC4wMTE1OSwgMC4wMTE1OTgsIDAuMDExNjAyLCAwLjAxMTYwNiIsIFwKLSAgICAgICAgICAiMC4wMTE0MzQsIDAuMDExNjI4LCAwLjAxMTY1OSwgMC4wMTE2NjgsIDAuMDExNjc2LCAwLjAxMTY4LCAwLjAxMTY4NCIsIFwKLSAgICAgICAgICAiMC4wMTE1NDUsIDAuMDExNzQsIDAuMDExNzgxLCAwLjAxMTc5LCAwLjAxMTc5OCwgMC4wMTE3OTEsIDAuMDExODA2IiwgXAotICAgICAgICAgICIwLjAxMTY1MiwgMC4wMTE4NDQsIDAuMDExODcxLCAwLjAxMTg4NCwgMC4wMTE4ODcsIDAuMDExODk0LCAwLjAxMTkwMiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEwNzI1LCAwLjAxMDkwNCwgMC4wMTA5MzIsIDAuMDEwOTQxLCAwLjAxMDk0OSwgMC4wMTA5NTIsIDAuMDEwOTU2IiwgXAotICAgICAgICAgICIwLjAxMDcwOSwgMC4wMTA4OTEsIDAuMDEwOTIsIDAuMDEwOTI4LCAwLjAxMDkzNiwgMC4wMTA5NCwgMC4wMTA5NDMiLCBcCi0gICAgICAgICAgIjAuMDEwNzQ3LCAwLjAxMDkyNiwgMC4wMTA5NTQsIDAuMDEwOTY0LCAwLjAxMDk3MSwgMC4wMTA5NzUsIDAuMDEwOTc5IiwgXAotICAgICAgICAgICIwLjAxMDgwMiwgMC4wMTA5ODUsIDAuMDExMDE0LCAwLjAxMTAyMiwgMC4wMTEwMywgMC4wMTEwMzQsIDAuMDExMDM4IiwgXAotICAgICAgICAgICIwLjAxMDg3NCwgMC4wMTEwNTMsIDAuMDExMDgyLCAwLjAxMTA5LCAwLjAxMTA5OCwgMC4wMTExMDIsIDAuMDExMTA2IiwgXAotICAgICAgICAgICIwLjAxMDk5NCwgMC4wMTExNjksIDAuMDExMTk4LCAwLjAxMTIwNywgMC4wMTEyMTUsIDAuMDExMjE4LCAwLjAxMTIyMiIsIFwKLSAgICAgICAgICAiMC4wMTEwNzIsIDAuMDExMjUzLCAwLjAxMTI4NSwgMC4wMTEyODksIDAuMDExMjk3LCAwLjAxMTMwNSwgMC4wMTEzMDkiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFNFKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDEyNTAyMjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDEyNTAyMjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDEyNDk3MzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDU2ODcsIDAuMDA1NzEsIDAuMDA1ODE4LCAwLjAwNTkxOCwgMC4wMDYwNDYsIDAuMDA2MzI3LCAwLjAwNjUyNiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNzI2OSwgMC4wMDcyODIsIDAuMDA3NDA4LCAwLjAwNzU1LCAwLjAwNzc4LCAwLjAwODEyOCwgMC4wMDg0NTgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUQmIUUmIVNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9FX0VRXzBfQU5fU0lfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMzc1LCAtMC4wMzI1LCAtMC4wMzI1LCAtMC4wMjYyNSwgLTAuMDI2MjUsIC0wLjAyMjUsIC0wLjAyNjI1IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzc1LCAtMC4wMzc1LCAtMC4wMzc1LCAtMC4wMzc1LCAtMC4wMzM3NSwgLTAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjA1NSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wNDM3NSwgLTAuMDQzNzUsIC0wLjA0LCAtMC4wMzc1IiwgXAotICAgICAgICAgICItMC4wNjEyNSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNSwgLTAuMDUsIC0wLjA0NjI1LCAtMC4wNDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDYxMjUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNTYyNSwgLTAuMDU2MjUsIC0wLjA1MjUsIC0wLjA1IiwgXAotICAgICAgICAgICItMC4wNzEyNSwgLTAuMDY2MjUsIC0wLjA2LCAtMC4wNiwgLTAuMDYsIC0wLjA1NjI1LCAtMC4wNTM3NSIsIFwKLSAgICAgICAgICAiLTAuMDczNzUsIC0wLjA2ODc1LCAtMC4wNjg3NSwgLTAuMDYyNSwgLTAuMDYyNSwgLTAuMDU4NzUsIC0wLjA1NjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEJiFFJlNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9FX0VRXzBfQU5fU0lfRVFfMSA9PSAxJ2IxIjsKLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMDYyNSwgLTAuMDAxMjUsIDAuMDA1LCAwLjAwNSwgMC4wMTEyNSwgMC4wMTUsIDAuMDE3NSIsIFwKLSAgICAgICAgICAiLTAuMDE3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAsIDAuMDA2MjUsIDAuMDEsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgLTAuMDA2MjUsIC0wLjAwMjUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA4NzUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDE1LCAtMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wNCwgLTAuMDM1LCAtMC4wMzUsIC0wLjAyODc1LCAtMC4wMjg3NSwgLTAuMDI1LCAtMC4wMjI1IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAyNzUsIC0wLjAyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRCZFJlNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9FX0VRXzFfQU5fU0lfRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMzEyNSwgLTAuMDI2MjUsIC0wLjAyLCAtMC4wMiwgLTAuMDEzNzUsIC0wLjAxLCAtMC4wMDc1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDMxMjUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAyNSwgLTAuMDIxMjUsIC0wLjAxODc1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMjc1LCAtMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjA1NSwgLTAuMDUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDQzNzUsIC0wLjA0LCAtMC4wMzc1IiwgXAotICAgICAgICAgICItMC4wNjEyNSwgLTAuMDU2MjUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDUsIC0wLjA0NjI1LCAtMC4wNDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDcxMjUsIC0wLjA2NjI1LCAtMC4wNjYyNSwgLTAuMDYsIC0wLjA2LCAtMC4wNTYyNSwgLTAuMDUzNzUiLCBcCi0gICAgICAgICAgIi0wLjA4LCAtMC4wNzUsIC0wLjA2ODc1LCAtMC4wNjg3NSwgLTAuMDY4NzUsIC0wLjA2NSwgLTAuMDYyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJEJkUmIVNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMV9BTl9FX0VRXzFfQU5fU0lfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMTg3NSwgLTAuMDEzNzUsIC0wLjAwNzUsIC0wLjAwMTI1LCAwLjAwNSwgMC4wMDg3NSwgMC4wMTEyNSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMTI1LCAtMC4wMDYyNSwgLTAuMDAyNSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDg3NSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDE4NzUsIC0wLjAwODc1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxNSwgLTAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDQ2MjUsIC0wLjA0MTI1LCAtMC4wMzUsIC0wLjAyODc1LCAtMC4wMjg3NSwgLTAuMDE4NzUsIC0wLjAxNjI1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMzEyNSwgLTAuMDIxMjUsIC0wLjAxODc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRCYhRSYhU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX0VfRVFfMF9BTl9TSV9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1NjI1LCAwLjA0NSwgMC4wMzg3NSwgMC4wMzI1LCAwLjAyNjI1LCAwLjAyMjUsIDAuMDEzNzUiLCBcCi0gICAgICAgICAgIjAuMDYxMjUsIDAuMDU2MjUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMjc1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiMC4wNjc1LCAwLjA2MjUsIDAuMDUsIDAuMDQzNzUsIDAuMDQzNzUsIDAuMDMzNzUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMDczNzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNSwgMC4wNDM3NSwgMC4wNCwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4wNzM3NSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1LCAwLjA0LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIjAuMDgzNzUsIDAuMDcyNSwgMC4wNjYyNSwgMC4wNiwgMC4wNTM3NSwgMC4wNSwgMC4wNDEyNSIsIFwKLSAgICAgICAgICAiMC4wODYyNSwgMC4wNzUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNTI1LCAwLjA0Mzc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRCYhRSZTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fRV9FUV8wX0FOX1NJX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU2MjUsIDAuMDQ1LCAwLjAzODc1LCAwLjAzODc1LCAwLjAzMjUsIDAuMDI4NzUsIDAuMDI2MjUiLCBcCi0gICAgICAgICAgIjAuMDYxMjUsIDAuMDU2MjUsIDAuMDUsIDAuMDQzNzUsIDAuMDQzNzUsIDAuMDQsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiMC4wNzM3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1NjI1LCAwLjA1LCAwLjA0NjI1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjA4LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA2MjUsIDAuMDU4NzUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIjAuMDkyNSwgMC4wODEyNSwgMC4wNzUsIDAuMDY4NzUsIDAuMDY4NzUsIDAuMDY1LCAwLjA2MjUiLCBcCi0gICAgICAgICAgIjAuMTAyNSwgMC4wOTEyNSwgMC4wODUsIDAuMDg1LCAwLjA3ODc1LCAwLjA3NSwgMC4wNzI1IiwgXAotICAgICAgICAgICIwLjExMTI1LCAwLjEsIDAuMDkzNzUsIDAuMDg3NSwgMC4wODc1LCAwLjA4Mzc1LCAwLjA4MTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRCZFJlNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9FX0VRXzFfQU5fU0lfRVFfMSA9PSAxJ2IxIjsKLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNSwgMC4wNDUsIDAuMDMyNSwgMC4wMjYyNSwgMC4wMjYyNSwgMC4wMTYyNSwgMC4wMTM3NSIsIFwKLSAgICAgICAgICAiMC4wNjEyNSwgMC4wNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyNzUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMDY3NSwgMC4wNTYyNSwgMC4wNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzMzc1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICIwLjA3Mzc1LCAwLjA2ODc1LCAwLjA1NjI1LCAwLjA1LCAwLjA1LCAwLjA0LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIjAuMDgsIDAuMDc1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDQ2MjUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMDksIDAuMDg1LCAwLjA3ODc1LCAwLjA3MjUsIDAuMDY2MjUsIDAuMDU2MjUsIDAuMDUzNzUiLCBcCi0gICAgICAgICAgIjAuMDk4NzUsIDAuMDkzNzUsIDAuMDgxMjUsIDAuMDc1LCAwLjA3NSwgMC4wNjUsIDAuMDYyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiRCZFJiFTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzFfQU5fRV9FUV8xX0FOX1NJX0VRXzAgPT0gMSdiMSI7Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY4NzUsIDAuMDYzNzUsIDAuMDU3NSwgMC4wNTEyNSwgMC4wNTEyNSwgMC4wNDc1LCAwLjA0NSIsIFwKLSAgICAgICAgICAiMC4wOCwgMC4wNjg3NSwgMC4wNjI1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDUyNSwgMC4wNSIsIFwKLSAgICAgICAgICAiMC4wODYyNSwgMC4wODEyNSwgMC4wNjg3NSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1ODc1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICIwLjA5MjUsIDAuMDgxMjUsIDAuMDc1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjUsIDAuMDYyNSIsIFwKLSAgICAgICAgICAiMC4wOTg3NSwgMC4wODc1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNzUsIDAuMDcxMjUsIDAuMDY4NzUiLCBcCi0gICAgICAgICAgIjAuMTAyNSwgMC4wOTEyNSwgMC4wODUsIDAuMDg1LCAwLjA3ODc1LCAwLjA3NSwgMC4wNzI1IiwgXAotICAgICAgICAgICIwLjEwNSwgMC4xLCAwLjA5Mzc1LCAwLjA4NzUsIDAuMDgxMjUsIDAuMDgzNzUsIDAuMDgxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFNJKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2Mzk5MzU7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjM5MDEyOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDYzOTkzNTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDMxMjMsIDAuMDAzMTAyLCAwLjAwMzExNSwgMC4wMDMxNjgsIDAuMDAzMjI2LCAwLjAwMzMyOSwgMC4wMDM0NDciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDYxMTQsIDAuMDA2MDkzLCAwLjAwNjExLCAwLjAwNjE1OCwgMC4wMDYyMjMsIDAuMDA2MzIzLCAwLjAwNjQzOSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJTRSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMzEyNSwgLTAuMDMyNSwgLTAuMDI2MjUsIC0wLjAyLCAtMC4wMiwgLTAuMDE2MjUsIC0wLjAxMzc1IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDIxMjUsIC0wLjAxODc1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzNzUsIC0wLjAzNzUsIC0wLjAzMzc1LCAtMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wNDM3NSwgLTAuMDQsIC0wLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjA2MTI1LCAtMC4wNTYyNSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNSwgLTAuMDQ2MjUsIC0wLjA0Mzc1IiwgXAotICAgICAgICAgICItMC4wNzEyNSwgLTAuMDY2MjUsIC0wLjA2LCAtMC4wNiwgLTAuMDYsIC0wLjA1NjI1LCAtMC4wNTM3NSIsIFwKLSAgICAgICAgICAiLTAuMDczNzUsIC0wLjA2ODc1LCAtMC4wNjg3NSwgLTAuMDYyNSwgLTAuMDYyNSwgLTAuMDU4NzUsIC0wLjA1NjI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDEyNSwgLTAuMDA3NSwgLTAuMDAxMjUsIDAuMDA1LCAwLjAwNSwgMC4wMTUsIDAuMDE3NSIsIFwKLSAgICAgICAgICAiLTAuMDE3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAsIDAsIDAuMDEsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgLTAuMDA2MjUsIDAuMDAzNzUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMTI1LCAtMC4wMDI1LCAwIiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwODc1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDQsIC0wLjAzNSwgLTAuMDI4NzUsIC0wLjAyMjUsIC0wLjAyMjUsIC0wLjAxODc1LCAtMC4wMSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDM3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDIxMjUsIC0wLjAxODc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJTRSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjI1LCAwLjA1MTI1LCAwLjA0NSwgMC4wNDUsIDAuMDM4NzUsIDAuMDM1LCAwLjAzMjUiLCBcCi0gICAgICAgICAgIjAuMDY3NSwgMC4wNTYyNSwgMC4wNSwgMC4wNSwgMC4wNDM3NSwgMC4wNCwgMC4wMzc1IiwgXAotICAgICAgICAgICIwLjA3Mzc1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDU2MjUsIDAuMDUyNSwgMC4wNSIsIFwKLSAgICAgICAgICAiMC4wOCwgMC4wNzUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNjI1LCAwLjA1ODc1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICIwLjA4NjI1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjg3NSwgMC4wNjUsIDAuMDYyNSIsIFwKLSAgICAgICAgICAiMC4wOTYyNSwgMC4wOTEyNSwgMC4wODUsIDAuMDc4NzUsIDAuMDc4NzUsIDAuMDc1LCAwLjA3MjUiLCBcCi0gICAgICAgICAgIjAuMTA1LCAwLjA5Mzc1LCAwLjA4NzUsIDAuMDg3NSwgMC4wODEyNSwgMC4wNzc1LCAwLjA3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1LCAwLjAzODc1LCAwLjAzMjUsIDAuMDI2MjUsIDAuMDIsIDAuMDE2MjUsIDAuMDA3NSIsIFwKLSAgICAgICAgICAiMC4wNTUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMjUsIDAuMDIxMjUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4wNjEyNSwgMC4wNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyNzUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMDY3NSwgMC4wNTYyNSwgMC4wNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzMzc1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiMC4wNzM3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1LCAwLjA0Mzc1LCAwLjA0LCAwLjAzMTI1IiwgXAotICAgICAgICAgICIwLjA3NzUsIDAuMDcyNSwgMC4wNjYyNSwgMC4wNiwgMC4wNTM3NSwgMC4wNDM3NSwgMC4wNDEyNSIsIFwKLSAgICAgICAgICAiMC4wODYyNSwgMC4wODEyNSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1MjUsIDAuMDUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IFRCVUZYMSAqCi0gKiAtLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKFRCVUZYMSkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjM4MTUxMzsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNDY5MzE7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNDY4MDE7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNDY5MzE7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNTY0LCAwLjAwMDU4MiwgMC4wMDA1ODUsIDAuMDAwNTg2LCAwLjAwMDU4NiwgMC4wMDA1ODcsIDAuMDAwNTg3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNjE3LCAwLjAwMDYwNiwgMC4wMDA2MDQsIDAuMDAwNjAyLCAwLjAwMDYwMiwgMC4wMDA2MDEsIDAuMDAwNjAxIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihPRSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxMjAyODsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDEyMDI4OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTIwMjMzOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihzY2FsYXIpIHsKLSAgICAgICAgdmFsdWVzKCIwIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzOTAxLCAwLjAwMzkxNSwgMC4wMDQwNDcsIDAuMDA0MjU4LCAwLjAwNDQ5MywgMC4wMDQ4NTksIDAuMDA1MjE5Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY0ODI1NzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2NDgyNTc7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjQ3NzE4OwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMzQ1NDQ4OwotICAgIGZ1bmN0aW9uIDogIkEiOwotICAgIHRocmVlX3N0YXRlIDogIighT0UpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxMDY0ODMsIDAuMDE2NjQ4MywgMC4wNTA2NDgzLCAwLjA4MDY0ODMsIDAuMTIwNjQ4LCAwLjIwMDY0OCwgMC4yNTA2NDgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1ODYxOCwgMC4wNzcxMTYsIDAuMTgxNDY2LCAwLjI3MzQ1MSwgMC4zOTYyMDUsIDAuNjQxNjU5LCAwLjc5NDk0NSIsIFwKLSAgICAgICAgICAiMC4wNjQ2MTMsIDAuMDgzMDk4LCAwLjE4NzQ1MiwgMC4yNzk0NCwgMC40MDIxMjIsIDAuNjQ3NjM4LCAwLjgwMDg5OCIsIFwKLSAgICAgICAgICAiMC4wNzExNDcsIDAuMDg5NjQyLCAwLjE5Mzk3MSwgMC4yODU5OTcsIDAuNDA4NjY0LCAwLjY1NDA0OCwgMC44MDc0MDYiLCBcCi0gICAgICAgICAgIjAuMDc2NDQsIDAuMDk0OTY1LCAwLjE5OTI4NiwgMC4yOTEzMTMsIDAuNDEzOTkyLCAwLjY1OTMyOCwgMC44MTI2NzYiLCBcCi0gICAgICAgICAgIjAuMDgwOTEyLCAwLjA5OTQ5MSwgMC4yMDM4MzYsIDAuMjk1ODU0LCAwLjQxODUzMywgMC42NjM4NjksIDAuODE3MjQzIiwgXAotICAgICAgICAgICIwLjA4NzEyMSwgMC4xMDU3NDUsIDAuMjEwMTIyLCAwLjMwMjEzMywgMC40MjQ4MDIsIDAuNjcwMTY5LCAwLjgyMzY1MSIsIFwKLSAgICAgICAgICAiMC4wOTE5NjQsIDAuMTEwNjYyLCAwLjIxNTA1NywgMC4zMDcwNjMsIDAuNDI5Nzg3LCAwLjY3NTA2MSwgMC44Mjg0NSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxMDY0ODMsIDAuMDE2NjQ4MywgMC4wNTA2NDgzLCAwLjA4MDY0ODMsIDAuMTIwNjQ4LCAwLjIwMDY0OCwgMC4yNTA2NDgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3MTUzMSwgMC4xMDkzNzYsIDAuMzI3NTY0LCAwLjUyMTY3NCwgMC43ODAwNDEsIDEuMjk0NjQsIDEuNjE2NDUiLCBcCi0gICAgICAgICAgIjAuMDcxNjYsIDAuMTA5NDkyLCAwLjMyNzYyLCAwLjUyMTA4NywgMC43NzkwNjQsIDEuMjk0NiwgMS42MTc0MiIsIFwKLSAgICAgICAgICAiMC4wNzIwNDIsIDAuMTA5NzM5LCAwLjMyNzcsIDAuNTIxNTg5LCAwLjc3OTI1OSwgMS4yOTUwNiwgMS42MTc2NSIsIFwKLSAgICAgICAgICAiMC4wNzI2MDgsIDAuMTEwMTgyLCAwLjMyODAyNCwgMC41MjE1NDQsIDAuNzc5Nzk2LCAxLjI5NTExLCAxLjYxNzcxIiwgXAotICAgICAgICAgICIwLjA3MzI0NywgMC4xMTA0OTcsIDAuMzI4MDY2LCAwLjUyMDgyOCwgMC43Nzg5OTcsIDEuMjk1MTYsIDEuNjE5MTUiLCBcCi0gICAgICAgICAgIjAuMDc0MTU2LCAwLjExMTE4NiwgMC4zMjc5MTcsIDAuNTIxMzAyLCAwLjc3OTY3NSwgMS4yOTUwNCwgMS42MTkxNiIsIFwKLSAgICAgICAgICAiMC4wNzQ5NiwgMC4xMTE4MDgsIDAuMzI4MTU3LCAwLjUyMTE3MywgMC43NzkxMjQsIDEuMjk1MTUsIDEuNjE4OTQiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMTA2NDc3LCAwLjAxNjY0NzcsIDAuMDUwNjQ3NywgMC4wODA2NDc3LCAwLjEyMDY0OCwgMC4yMDA2NDgsIDAuMjUwNjQ4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTQ3OTQsIDAuMDcyOTU5LCAwLjE3NTU1NSwgMC4yNjYwNjYsIDAuMzg2NjcyLCAwLjYyNzkzMywgMC43Nzg3MjMiLCBcCi0gICAgICAgICAgIjAuMDYwMTU3LCAwLjA3ODMzLCAwLjE4MDk0MywgMC4yNzE0MTgsIDAuMzkyMDY3LCAwLjYzMzMxNiwgMC43ODQxMTMiLCBcCi0gICAgICAgICAgIjAuMDY1MzI5LCAwLjA4MzUwOCwgMC4xODYwOTQsIDAuMjc2NjAzLCAwLjM5NzIxOSwgMC42Mzg0NzksIDAuNzg5MjY5IiwgXAotICAgICAgICAgICIwLjA2OTI1MywgMC4wODc0NzcsIDAuMTkwMDQ0LCAwLjI4MDUyNSwgMC40MDExNDksIDAuNjQyNDE1LCAwLjc5MzIzOSIsIFwKLSAgICAgICAgICAiMC4wNzI1NjUsIDAuMDkwODEsIDAuMTkzNDM5LCAwLjI4MzkxMSwgMC40MDQ1MTMsIDAuNjQ1NzgxLCAwLjc5NjY1MyIsIFwKLSAgICAgICAgICAiMC4wNzcxMjEsIDAuMDk1MzgzLCAwLjE5ODAxNiwgMC4yODg0OTgsIDAuNDA5MTAzLCAwLjY1MDM2OCwgMC44MDExMjkiLCBcCi0gICAgICAgICAgIjAuMDgwNzM4LCAwLjA5OTAzLCAwLjIwMTc0NCwgMC4yOTIxOTIsIDAuNDEyODE1LCAwLjY1NDEzNSwgMC44MDQ4OTYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMTA2NDc3LCAwLjAxNjY0NzcsIDAuMDUwNjQ3NywgMC4wODA2NDc3LCAwLjEyMDY0OCwgMC4yMDA2NDgsIDAuMjUwNjQ4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjgyMjIsIDAuMTA0OTMxLCAwLjMxNTA5NSwgMC41MDIwMDEsIDAuNzQ5Njg3LCAxLjI0NjQ2LCAxLjU1ODgyIiwgXAotICAgICAgICAgICIwLjA2ODMxMiwgMC4xMDQ5ODIsIDAuMzE0OTc4LCAwLjUwMTk0MSwgMC43NDk4NjMsIDEuMjQ3ODgsIDEuNTU2ODUiLCBcCi0gICAgICAgICAgIjAuMDY4ODA5LCAwLjEwNTIyOSwgMC4zMTU0OTksIDAuNTAxODk1LCAwLjc1MDYxOCwgMS4yNDc1OSwgMS41NTg3OSIsIFwKLSAgICAgICAgICAiMC4wNjkzMDEsIDAuMTA1NjAxLCAwLjMxNTE3OCwgMC41MDE0MTIsIDAuNzUwNDUyLCAxLjI0NjM1LCAxLjU1ODk2IiwgXAotICAgICAgICAgICIwLjA2OTg1MSwgMC4xMDU4MywgMC4zMTUyMTcsIDAuNTAxNjY4LCAwLjc1MDQyNiwgMS4yNDYzOCwgMS41NTg5OCIsIFwKLSAgICAgICAgICAiMC4wNzA2MywgMC4xMDY1NSwgMC4zMTUzNzgsIDAuNTAxMjY2LCAwLjc1MDIxOSwgMS4yNDY2MiwgMS41NTg0NSIsIFwKLSAgICAgICAgICAiMC4wNzEzMTIsIDAuMTA2OTk0LCAwLjMxNTMxNSwgMC41MDE2MDcsIDAuNzQ5NDcsIDEuMjQ1MzQsIDEuNTU2NzkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiT0UiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHRocmVlX3N0YXRlX2VuYWJsZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMTA2NDgzLCAwLjAxNjY0ODMsIDAuMDUwNjQ4MywgMC4wODA2NDgzLCAwLjEyMDY0OCwgMC4yMDA2NDgsIDAuMjUwNjQ4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTY5NzMsIDAuMDc1NDQ2LCAwLjE3OTc3NywgMC4yNzE3OTYsIDAuMzk0NTAxLCAwLjYzOTk2MSwgMC43OTMzMjQiLCBcCi0gICAgICAgICAgIjAuMDY0NDU4LCAwLjA4MjkzMSwgMC4xODcyNTgsIDAuMjc5MjksIDAuNDAxOTkxLCAwLjY0NzQwOSwgMC44MDA5MDMiLCBcCi0gICAgICAgICAgIjAuMDcyODUxLCAwLjA5MTMzNSwgMC4xOTU2NTQsIDAuMjg3NjksIDAuNDEwMzgxLCAwLjY1NTgxNywgMC44MDkxNjYiLCBcCi0gICAgICAgICAgIjAuMDc5MzU3LCAwLjA5Nzg3OSwgMC4yMDIyNDksIDAuMjk0MjE2LCAwLjQxNjkwNiwgMC42NjIzNTEsIDAuODE1NzIiLCBcCi0gICAgICAgICAgIjAuMDg0Njk5LCAwLjEwMzMxMiwgMC4yMDc2MTUsIDAuMjk5NzA4LCAwLjQyMjM2NSwgMC42Njc3NSwgMC44MjExNTMiLCBcCi0gICAgICAgICAgIjAuMDkyMTM5LCAwLjExMDc0NCwgMC4yMTUxNDcsIDAuMzA3MjUyLCAwLjQyOTk5OCwgMC42NzUyNzMsIDAuODI4NjQ4IiwgXAotICAgICAgICAgICIwLjA5Nzk2MiwgMC4xMTY1MjEsIDAuMjIxMDQsIDAuMzEzMDEzLCAwLjQzNTgyOCwgMC42ODExNjcsIDAuODM0Njc2Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEwNjQ4MywgMC4wMTY2NDgzLCAwLjA1MDY0ODMsIDAuMDgwNjQ4MywgMC4xMjA2NDgsIDAuMjAwNjQ4LCAwLjI1MDY0OCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDcxNzU2LCAwLjEwOTU5NywgMC4zMjc4NzgsIDAuNTIxOTY0LCAwLjc3ODgyNCwgMS4yOTQ4MSwgMS42MTcxMyIsIFwKLSAgICAgICAgICAiMC4wNzE4MTMsIDAuMTA5NjU2LCAwLjMyNzg0LCAwLjUyMTUyNywgMC43Nzk1ODgsIDEuMjk1OCwgMS42MjA0NCIsIFwKLSAgICAgICAgICAiMC4wNzIzMDMsIDAuMTA5OTMyLCAwLjMyNzg2NywgMC41MjE5MDMsIDAuNzc5NjE5LCAxLjI5NzE2LCAxLjYxODYzIiwgXAotICAgICAgICAgICIwLjA3Mjk0NSwgMC4xMTA0MTUsIDAuMzI3ODUyLCAwLjUyMTM5NywgMC43ODAyOTksIDEuMjk1MzMsIDEuNjE3NTYiLCBcCi0gICAgICAgICAgIjAuMDczNjY4LCAwLjExMDg0NCwgMC4zMjgzNTEsIDAuNTIyMDEyLCAwLjc4MDMwNCwgMS4yOTU5NCwgMS42MTg2MSIsIFwKLSAgICAgICAgICAiMC4wNzQ2NTgsIDAuMTExNTU4LCAwLjMyODUwNywgMC41MjIwMiwgMC43ODA0MjQsIDEuMjk3MTgsIDEuNjE4NjMiLCBcCi0gICAgICAgICAgIjAuMDc1NDg4LCAwLjExMjIyMSwgMC4zMjg0MzMsIDAuNTIyMDcsIDAuNzgwNTg1LCAxLjI5NzEzLCAxLjYyMDIyIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEwNjQ3NywgMC4wMTY2NDc3LCAwLjA1MDY0NzcsIDAuMDgwNjQ3NywgMC4xMjA2NDgsIDAuMjAwNjQ4LCAwLjI1MDY0OCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDYwNTE3LCAwLjA3ODY2MywgMC4xODEyNTgsIDAuMjcxNzM4LCAwLjM5MjQ0OSwgMC42MzM3NSwgMC43ODQ2MzgiLCBcCi0gICAgICAgICAgIjAuMDY3NTk2LCAwLjA4NTczOSwgMC4xODgzMTcsIDAuMjc4ODE4LCAwLjM5OTQ3NywgMC42NDA3OTQsIDAuNzkxNjEzIiwgXAotICAgICAgICAgICIwLjA3MzMxMiwgMC4wOTE0NTcsIDAuMTk0MDI1LCAwLjI4NDUzMiwgMC40MDUxNjEsIDAuNjQ2NTA2LCAwLjc5NzI4MyIsIFwKLSAgICAgICAgICAiMC4wNzc1MTgsIDAuMDk1NjY3LCAwLjE5ODIyOCwgMC4yODg3NDQsIDAuNDA5MzU3LCAwLjY1MDY3NiwgMC44MDE1NDgiLCBcCi0gICAgICAgICAgIjAuMDgwOTA3LCAwLjA5OTA2MiwgMC4yMDE2MDgsIDAuMjkyMDksIDAuNDEyNzQxLCAwLjY1NDExNywgMC44MDQ4NjkiLCBcCi0gICAgICAgICAgIjAuMDg1NTA3LCAwLjEwMzY1NiwgMC4yMDYyMDEsIDAuMjk2NjgxLCAwLjQxNzMyNCwgMC42NTg2NDUsIDAuODA5NDMzIiwgXAotICAgICAgICAgICIwLjA4OTA3MiwgMC4xMDcyMjYsIDAuMjA5Nzc0LCAwLjMwMDI0MywgMC40MjA4MzcsIDAuNjYyMTUzLCAwLjgxMjk5NSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxMDY0NzcsIDAuMDE2NjQ3NywgMC4wNTA2NDc3LCAwLjA4MDY0NzcsIDAuMTIwNjQ4LCAwLjIwMDY0OCwgMC4yNTA2NDgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2ODQxNywgMC4xMDQ5NTgsIDAuMzE1MDU5LCAwLjUwMjIyOCwgMC43NDk1ODEsIDEuMjQ5MDMsIDEuNTU2MjUiLCBcCi0gICAgICAgICAgIjAuMDY4NDEsIDAuMTA1MDkxLCAwLjMxNTY0LCAwLjUwMjI2MywgMC43NTAzNTYsIDEuMjQ2MzMsIDEuNTU5ODUiLCBcCi0gICAgICAgICAgIjAuMDY4NDMxLCAwLjEwNTAyLCAwLjMxNTIzMiwgMC41MDIxMjcsIDAuNzUxMDA0LCAxLjI0ODg2LCAxLjU1NzcxIiwgXAotICAgICAgICAgICIwLjA2ODQzNCwgMC4xMDQ5OTYsIDAuMzE1Mzk2LCAwLjUwMTg1NiwgMC43NTA4MjcsIDEuMjQ4NDYsIDEuNTU5OTIiLCBcCi0gICAgICAgICAgIjAuMDY4NDcyLCAwLjEwNDkxNSwgMC4zMTUyNDgsIDAuNTAxNzM2LCAwLjc0OTk0MSwgMS4yNDgxOSwgMS41NTc3IiwgXAotICAgICAgICAgICIwLjA2ODU0NCwgMC4xMDUwNjYsIDAuMzE1MTE0LCAwLjUwMTM2MywgMC43NTAwNjYsIDEuMjQ2NTIsIDEuNTU3NTYiLCBcCi0gICAgICAgICAgIjAuMDY4NjI2LCAwLjEwNTA0NCwgMC4zMTQ5MzQsIDAuNTAxMzk4LCAwLjc0OTk5NSwgMS4yNDY1MywgMS41NTc1OSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJPRSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogdGhyZWVfc3RhdGVfZGlzYWJsZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAyMTI2NiwgMC4wMjgzMjUsIDAuMDM0MTY3LCAwLjAzODE1MywgMC4wNDE0NzgsIDAuMDQ1NjQyLCAwLjA0ODY3OCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKHNjYWxhcikgewotICAgICAgICB2YWx1ZXMoIjAiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAxNjA3NCwgMC4wMjM5NzQsIDAuMDMxMzY5LCAwLjAzNjU4NiwgMC4wNDA3MjgsIDAuMDQ2MDkxLCAwLjA0OTk3NyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKHNjYWxhcikgewotICAgICAgICB2YWx1ZXMoIjAiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxMDY0ODMsIDAuMDE2NjQ4MywgMC4wNTA2NDgzLCAwLjA4MDY0ODMsIDAuMTIwNjQ4LCAwLjIwMDY0OCwgMC4yNTA2NDgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTg0MSwgMC4wMDE4NDMsIDAuMDAxODQ0LCAwLjAwMTg0NSwgMC4wMDE4NDQsIDAuMDAxODQ1LCAwLjAwMTg0NCIsIFwKLSAgICAgICAgICAiMC4wMDE4MDQsIDAuMDAxODA5LCAwLjAwMTgxNCwgMC4wMDE4MTUsIDAuMDAxODE1LCAwLjAwMTgxNSwgMC4wMDE4MTYiLCBcCi0gICAgICAgICAgIjAuMDAxODk2LCAwLjAwMTkwMiwgMC4wMDE5MSwgMC4wMDE5MTIsIDAuMDAxOTEzLCAwLjAwMTkxMywgMC4wMDE5MTMiLCBcCi0gICAgICAgICAgIjAuMDAyMDUsIDAuMDAyMDU1LCAwLjAwMjA2NCwgMC4wMDIwNjYsIDAuMDAyMDY3LCAwLjAwMjA2OCwgMC4wMDIwNjgiLCBcCi0gICAgICAgICAgIjAuMDAyMjM2LCAwLjAwMjI0NCwgMC4wMDIyNTMsIDAuMDAyMjU1LCAwLjAwMjI1NywgMC4wMDIyNTcsIDAuMDAyMjU3IiwgXAotICAgICAgICAgICIwLjAwMjU4MiwgMC4wMDI1ODgsIDAuMDAyNTk4LCAwLjAwMjYsIDAuMDAyNjAxLCAwLjAwMjYwMiwgMC4wMDI2MDEiLCBcCi0gICAgICAgICAgIjAuMDAyOTEzLCAwLjAwMjkxOSwgMC4wMDI5MjgsIDAuMDAyOTI5LCAwLjAwMjkzLCAwLjAwMjkzMiwgMC4wMDI5MzEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxMDY0NzcsIDAuMDE2NjQ3NywgMC4wNTA2NDc3LCAwLjA4MDY0NzcsIDAuMTIwNjQ4LCAwLjIwMDY0OCwgMC4yNTA2NDgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNTExOCwgMC4wMDUxMjYsIDAuMDA1MTM2LCAwLjAwNTEzOCwgMC4wMDUxMzksIDAuMDA1MTQsIDAuMDA1MTQiLCBcCi0gICAgICAgICAgIjAuMDA1MDk0LCAwLjAwNTEwNCwgMC4wMDUxMTgsIDAuMDA1MTIxLCAwLjAwNTEyMywgMC4wMDUxMjQsIDAuMDA1MTI0IiwgXAotICAgICAgICAgICIwLjAwNTE4NSwgMC4wMDUxOTQsIDAuMDA1MjA2LCAwLjAwNTIwOSwgMC4wMDUyMTEsIDAuMDA1MjEyLCAwLjAwNTIxMiIsIFwKLSAgICAgICAgICAiMC4wMDUzNDYsIDAuMDA1MzQ2LCAwLjAwNTM1MSwgMC4wMDUzNTMsIDAuMDA1MzU0LCAwLjAwNTM1NSwgMC4wMDUzNTUiLCBcCi0gICAgICAgICAgIjAuMDA1NTMyLCAwLjAwNTUyOCwgMC4wMDU1MzMsIDAuMDA1NTM0LCAwLjAwNTUzNSwgMC4wMDU1MzYsIDAuMDA1NTM2IiwgXAotICAgICAgICAgICIwLjAwNTg5NywgMC4wMDU4ODQsIDAuMDA1ODczLCAwLjAwNTg3MiwgMC4wMDU4NzIsIDAuMDA1ODcyLCAwLjAwNTg3MiIsIFwKLSAgICAgICAgICAiMC4wMDYyMTQsIDAuMDA2MjAzLCAwLjAwNjE5NiwgMC4wMDYxOTMsIDAuMDA2MTkzLCAwLjAwNjE5MywgMC4wMDYxOTMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJPRSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMTA2NDgzLCAwLjAxNjY0ODMsIDAuMDUwNjQ4MywgMC4wODA2NDgzLCAwLjEyMDY0OCwgMC4yMDA2NDgsIDAuMjUwNjQ4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDE3NzYsIDAuMDAxNzc4LCAwLjAwMTc1OCwgMC4wMDE3MzIsIDAuMDAxNzI0LCAwLjAwMTY1MywgMC4wMDE2NDEiLCBcCi0gICAgICAgICAgIjAuMDAxNzgyLCAwLjAwMTc3LCAwLjAwMTc1NywgMC4wMDE3NDMsIDAuMDAxNjk3LCAwLjAwMTY1MSwgMC4wMDE2NDYiLCBcCi0gICAgICAgICAgIjAuMDAxOTI1LCAwLjAwMTkyNSwgMC4wMDE5MDcsIDAuMDAxODksIDAuMDAxODcyLCAwLjAwMTc4OCwgMC4wMDE3ODkiLCBcCi0gICAgICAgICAgIjAuMDAyMTMyLCAwLjAwMjEyNSwgMC4wMDIxMTMsIDAuMDAyMDgzLCAwLjAwMjA1OCwgMC4wMDIwMSwgMC4wMDE5NzciLCBcCi0gICAgICAgICAgIjAuMDAyMzU0LCAwLjAwMjM1LCAwLjAwMjMyNCwgMC4wMDIzMzQsIDAuMDAyMjg3LCAwLjAwMjI1LCAwLjAwMjIzNCIsIFwKLSAgICAgICAgICAiMC4wMDI3NzYsIDAuMDAyNzY2LCAwLjAwMjczOCwgMC4wMDI3MTksIDAuMDAyNjgzLCAwLjAwMjYyOCwgMC4wMDI2MyIsIFwKLSAgICAgICAgICAiMC4wMDMxMTEsIDAuMDAzMTM2LCAwLjAwMzEsIDAuMDAzMTEsIDAuMDAzMDQxLCAwLjAwMzAwNywgMC4wMDI5ODQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxMDY0NzcsIDAuMDE2NjQ3NywgMC4wNTA2NDc3LCAwLjA4MDY0NzcsIDAuMTIwNjQ4LCAwLjIwMDY0OCwgMC4yNTA2NDgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjIwNSwgMC4wMDIyMDUsIDAuMDAyMjA1LCAwLjAwMjIwNSwgMC4wMDIyMDUsIDAuMDAyMjA1LCAwLjAwMjIwNSIsIFwKLSAgICAgICAgICAiMC4wMDIyMSwgMC4wMDIyMSwgMC4wMDIyMSwgMC4wMDIyMSwgMC4wMDIyMSwgMC4wMDIyMSwgMC4wMDIyMSIsIFwKLSAgICAgICAgICAiMC4wMDIzMTIsIDAuMDAyMzEyLCAwLjAwMjMxMiwgMC4wMDIzMTIsIDAuMDAyMzEyLCAwLjAwMjMxMiwgMC4wMDIzMTIiLCBcCi0gICAgICAgICAgIjAuMDAyNDM1LCAwLjAwMjQzNSwgMC4wMDI0MzUsIDAuMDAyNDM0LCAwLjAwMjQzNCwgMC4wMDI0MzQsIDAuMDAyNDM1IiwgXAotICAgICAgICAgICIwLjAwMjU3MSwgMC4wMDI1NzEsIDAuMDAyNTcxLCAwLjAwMjU3MSwgMC4wMDI1NzEsIDAuMDAyNTcxLCAwLjAwMjU3MSIsIFwKLSAgICAgICAgICAiMC4wMDI4NjMsIDAuMDAyODYzLCAwLjAwMjg2NCwgMC4wMDI4NjQsIDAuMDAyODY0LCAwLjAwMjg2NCwgMC4wMDI4NjQiLCBcCi0gICAgICAgICAgIjAuMDAzMDcsIDAuMDAzMDcxLCAwLjAwMzA3LCAwLjAwMzA3LCAwLjAwMzA2OSwgMC4wMDMwNjksIDAuMDAzMDciKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IENMS1hPUjJYOCAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKENMS1hPUjJYOCkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAxLjAzMjc1OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2MTI0MDg7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjEyNDA4OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDYxMjMwNTsKLSAgfQotICBwaW4oQikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNDM1OTY7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNDM1NTM7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNDM1OTY7Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMi43NTg5OTsKLSAgICBmdW5jdGlvbiA6ICIoQV5CKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzg4ODEsIDAuMTIwOTU4LCAwLjE1MjIxLCAwLjE3MzAwNywgMC4yMDUyMjgsIDAuMjMyOTk4LCAwLjI3MjQ0NSIsIFwKLSAgICAgICAgICAiMC4wODY5NTEsIDAuMTI5MDEzLCAwLjE2MDI5NywgMC4xODEwNzUsIDAuMjEzMjgsIDAuMjQxMDQ0LCAwLjI4MDU1OCIsIFwKLSAgICAgICAgICAiMC4wOTY5NTMsIDAuMTM5MDE2LCAwLjE3MDMyMywgMC4xOTEwMjMsIDAuMjIzMjQ1LCAwLjI1MTA0OCwgMC4yOTA1MTEiLCBcCi0gICAgICAgICAgIjAuMTA2OTg5LCAwLjE0OTAxNiwgMC4xODAzMDEsIDAuMjAxMDA1LCAwLjIzMzI1NiwgMC4yNjEwMjEsIDAuMzAwNTE3IiwgXAotICAgICAgICAgICIwLjExNjIwNSwgMC4xNTgyNDUsIDAuMTg5NDk1LCAwLjIxMDI2OCwgMC4yNDI0NjQsIDAuMjcwMjYyLCAwLjMwOTczMSIsIFwKLSAgICAgICAgICAiMC4xMzAwNzUsIDAuMTcyNDM4LCAwLjIwMzg0MiwgMC4yMjQ1NTcsIDAuMjU2NzgzLCAwLjI4NDU0NiwgMC4zMjQwNDMiLCBcCi0gICAgICAgICAgIjAuMTQwMjcyLCAwLjE4MzM5NiwgMC4yMTQ4MjcsIDAuMjM1NjY5LCAwLjI2Nzk2NywgMC4yOTU3MzgsIDAuMzM1MjA1Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM1MTgsIDAuMDkzNzU2LCAwLjE0ODI0OCwgMC4xODc0MzcsIDAuMjUxMTU5LCAwLjMwNzQyNCwgMC4zODg1NzUiLCBcCi0gICAgICAgICAgIjAuMDM1MTM0LCAwLjA5Mzc0MiwgMC4xNDgxNzQsIDAuMTg3NSwgMC4yNTEwNTIsIDAuMzA3Mzk4LCAwLjM4ODUzIiwgXAotICAgICAgICAgICIwLjAzNTEsIDAuMDkzNzI2LCAwLjE0ODI2NCwgMC4xODc1MDksIDAuMjUwOTcxLCAwLjMwNzQxNywgMC4zODgzNDciLCBcCi0gICAgICAgICAgIjAuMDM1MDY5LCAwLjA5Mzc5NSwgMC4xNDgzMTUsIDAuMTg3NTQ1LCAwLjI1MDk0OSwgMC4zMDc0NCwgMC4zODgzNTciLCBcCi0gICAgICAgICAgIjAuMDM1NDg0LCAwLjA5NDAzOSwgMC4xNDg0MjEsIDAuMTg3NTc5LCAwLjI1MTE4MSwgMC4zMDc1MDQsIDAuMzg4NDA1IiwgXAotICAgICAgICAgICIwLjAzNzI1MSwgMC4wOTUwMDEsIDAuMTQ5MDEzLCAwLjE4ODIwMSwgMC4yNTE1MjcsIDAuMzA3Nzk5LCAwLjM4ODc3OSIsIFwKLSAgICAgICAgICAiMC4wMzkwODQsIDAuMDk2NDYsIDAuMTUwMTc2LCAwLjE4OTAzMiwgMC4yNTIwODEsIDAuMzA4MjQ4LCAwLjM4OTA5NyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4ODQ5NCwgMC4xMzIxMSwgMC4xNjQ2NTIsIDAuMTg2MTU1LCAwLjIxOTQ4NSwgMC4yNDgwNTEsIDAuMjg4NjE3IiwgXAotICAgICAgICAgICIwLjA5NjMzOCwgMC4xMzk5NTMsIDAuMTcyNTA1LCAwLjE5NDA0MywgMC4yMjczMTQsIDAuMjU1ODgxLCAwLjI5NjQ0NyIsIFwKLSAgICAgICAgICAiMC4xMDYyNDEsIDAuMTQ5ODE0LCAwLjE4MjMzMywgMC4yMDM5MjksIDAuMjM3MjE1LCAwLjI2NTgxLCAwLjMwNjMzOCIsIFwKLSAgICAgICAgICAiMC4xMTU5NTIsIDAuMTU5NTQ4LCAwLjE5MjA2OSwgMC4yMTM1NiwgMC4yNDY4OTUsIDAuMjc1NDY0LCAwLjMxNjAzMiIsIFwKLSAgICAgICAgICAiMC4xMjUwODMsIDAuMTY4NjAzLCAwLjIwMTEyMywgMC4yMjI2MTIsIDAuMjU1OTQ2LCAwLjI4NDUxMywgMC4zMjUwODIiLCBcCi0gICAgICAgICAgIjAuMTM4OTY2LCAwLjE4MjQ3NywgMC4yMTUwOSwgMC4yMzY2NzUsIDAuMjY5OTQzLCAwLjI5ODUwMiwgMC4zMzkwNjIiLCBcCi0gICAgICAgICAgIjAuMTQ5MTI2LCAwLjE5MzI2OSwgMC4yMjU5MTEsIDAuMjQ3NTQsIDAuMjgwODQ0LCAwLjMwOTQ1OSwgMC4zNDk5NjciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzc3MDQsIDAuMDk3MjI5LCAwLjE1MjMxNSwgMC4xOTE4NzUsIDAuMjU1OTExLCAwLjMxMjUxMywgMC4zOTQwNTYiLCBcCi0gICAgICAgICAgIjAuMDM3NzEyLCAwLjA5NzIwOSwgMC4xNTIzMjksIDAuMTkxODIxLCAwLjI1NTkyNCwgMC4zMTIzOTIsIDAuMzk0MDY3IiwgXAotICAgICAgICAgICIwLjAzNzYzOCwgMC4wOTcxNjcsIDAuMTUyMjU0LCAwLjE5MTg1NiwgMC4yNTU5MTgsIDAuMzEyNTQsIDAuMzk0MDkxIiwgXAotICAgICAgICAgICIwLjAzNzU5NCwgMC4wOTcyMTYsIDAuMTUyMzE5LCAwLjE5MTg3NywgMC4yNTU5MjUsIDAuMzEyNTE5LCAwLjM5NDA2MSIsIFwKLSAgICAgICAgICAiMC4wMzc5MDYsIDAuMDk3Mzc2LCAwLjE1MjQyOCwgMC4xOTE5NjUsIDAuMjU1OTU5LCAwLjMxMjUzNSwgMC4zOTQwNTYiLCBcCi0gICAgICAgICAgIjAuMDM5MDczLCAwLjA5ODA3NSwgMC4xNTI5MjQsIDAuMTkyNDA3LCAwLjI1NjI4NiwgMC4zMTI3OTMsIDAuMzk0MjUzIiwgXAotICAgICAgICAgICIwLjA0MDc3NSwgMC4wOTkyNTksIDAuMTUzNjcyLCAwLjE5MjkxMSwgMC4yNTY2NTUsIDAuMzEzMTY0LCAwLjM5NDYyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4NjEyLCAwLjEyNTcxNSwgMC4xNTU5MjEsIDAuMTc2MjY4LCAwLjIwODE0MiwgMC4yMzU4MjcsIDAuMjc1MjAzIiwgXAotICAgICAgICAgICIwLjA5Mzg4OSwgMC4xMzM0OTQsIDAuMTYzNjUzLCAwLjE4Mzk3OCwgMC4yMTU4OTMsIDAuMjQzNTQsIDAuMjgyOTY3IiwgXAotICAgICAgICAgICIwLjEwMTI3OCwgMC4xNDA4NzgsIDAuMTcxMDI1LCAwLjE5MTQxMiwgMC4yMjMyODEsIDAuMjUwOTY2LCAwLjI5MDM0MiIsIFwKLSAgICAgICAgICAiMC4xMDY1NTcsIDAuMTQ2MjE3LCAwLjE3NjM1NywgMC4xOTY3LCAwLjIyODU2OCwgMC4yNTYyNzQsIDAuMjk1NjM2IiwgXAotICAgICAgICAgICIwLjExMDgwMywgMC4xNTA0MDEsIDAuMTgwNTU5LCAwLjIwMDg1LCAwLjIzMjcxOSwgMC4yNjA0MTUsIDAuMjk5Nzk0IiwgXAotICAgICAgICAgICIwLjExNjQwNSwgMC4xNTU5MTcsIDAuMTg2MDg1LCAwLjIwNjM4NCwgMC4yMzgyNDYsIDAuMjY1OTU4LCAwLjMwNTM2NSIsIFwKLSAgICAgICAgICAiMC4xMjA0NjUsIDAuMTYwMDExLCAwLjE5MDI0OSwgMC4yMTA1NDcsIDAuMjQyNDQ3LCAwLjI3MDA5MywgMC4zMDk1MDciKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzIwNjcsIDAuMDg5MTExLCAwLjE0MzY2NiwgMC4xODMyMTQsIDAuMjQ3Mzc1LCAwLjMwNDA4OCwgMC4zODU2MTQiLCBcCi0gICAgICAgICAgIjAuMDMyMDQ0LCAwLjA4OTAxNywgMC4xNDM1ODgsIDAuMTgzMDY5LCAwLjI0NzM2NywgMC4zMDQwNjYsIDAuMzg1NjgxIiwgXAotICAgICAgICAgICIwLjAzMjA5MiwgMC4wODkwOTYsIDAuMTQzNjU5LCAwLjE4MzExOCwgMC4yNDczNzIsIDAuMzA0MDg1LCAwLjM4NTYxNiIsIFwKLSAgICAgICAgICAiMC4wMzE5MjcsIDAuMDg4OTU5LCAwLjE0MzYxNiwgMC4xODMxODgsIDAuMjQ3MzU1LCAwLjMwMzgwMiwgMC4zODU2MDEiLCBcCi0gICAgICAgICAgIjAuMDMxOTgzLCAwLjA4OTA0NCwgMC4xNDM2OTcsIDAuMTgzMjI1LCAwLjI0NzM2OCwgMC4zMDQwNTksIDAuMzg1NTk0IiwgXAotICAgICAgICAgICIwLjAzMjEwMywgMC4wODkwNDYsIDAuMTQzNjUzLCAwLjE4MzE5LCAwLjI0NzUxLCAwLjMwNDEyMywgMC4zODU2NTkiLCBcCi0gICAgICAgICAgIjAuMDMyMDUzLCAwLjA4ODk5OCwgMC4xNDM2NDMsIDAuMTgzMDkxLCAwLjI0NzM2MywgMC4zMDQwNywgMC4zODU2MjgiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTQwMjcsIDAuMTM0NjIsIDAuMTY2MDQ1LCAwLjE4NzA4NiwgMC4yMTk4NjgsIDAuMjQ4MjY4LCAwLjI4ODYzNSIsIFwKLSAgICAgICAgICAiMC4xMDE5NjcsIDAuMTQyNzYsIDAuMTc0MDAyLCAwLjE5NTAxNiwgMC4yMjc4MjcsIDAuMjU2MjY3LCAwLjI5NjY0NiIsIFwKLSAgICAgICAgICAiMC4xMDkzMjMsIDAuMTUwMTY1LCAwLjE4MTM3NSwgMC4yMDIzNTMsIDAuMjM1MjI4LCAwLjI2MzU4NCwgMC4zMDQiLCBcCi0gICAgICAgICAgIjAuMTE0NzAzLCAwLjE1NTQ3LCAwLjE4Njc3NywgMC4yMDc3OTUsIDAuMjQwNjA1LCAwLjI2OTAyOSwgMC4zMDk0MSIsIFwKLSAgICAgICAgICAiMC4xMTkxMTYsIDAuMTU5ODY5LCAwLjE5MTE3NCwgMC4yMTIxMzcsIDAuMjQ0OTU2LCAwLjI3MzM2NCwgMC4zMTM3NzEiLCBcCi0gICAgICAgICAgIjAuMTI0OTQ0LCAwLjE2NTY4MSwgMC4xOTY5ODYsIDAuMjE4MDUsIDAuMjUwODYsIDAuMjc5MjY3LCAwLjMxOTY1OSIsIFwKLSAgICAgICAgICAiMC4xMjkzMzQsIDAuMTcwMjEsIDAuMjAxMzYxLCAwLjIyMjM1LCAwLjI1NTIzOSwgMC4yODM2NDgsIDAuMzI0MDU3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDMzOTE5LCAwLjA5MTQ0LCAwLjE0Njc5MywgMC4xODY2MTgsIDAuMjUxMjQsIDAuMzA4MzIsIDAuMzkwMzIiLCBcCi0gICAgICAgICAgIjAuMDMzODIzLCAwLjA5MTc3LCAwLjE0Njc4NywgMC4xODY2NzIsIDAuMjUxMjI3LCAwLjMwODI5MSwgMC4zOTA2ODkiLCBcCi0gICAgICAgICAgIjAuMDMzODM2LCAwLjA5MTcxLCAwLjE0Njc2NSwgMC4xODY1ODUsIDAuMjUxMTcsIDAuMzA4MjAyLCAwLjM5MDQ3MSIsIFwKLSAgICAgICAgICAiMC4wMzM3NDksIDAuMDkxNjIyLCAwLjE0NjY3OSwgMC4xODY1ODcsIDAuMjUxMTU5LCAwLjMwODIzNSwgMC4zOTA2NiIsIFwKLSAgICAgICAgICAiMC4wMzM4NSwgMC4wOTE2NDQsIDAuMTQ2NzkyLCAwLjE4NjYyOSwgMC4yNTEyMDUsIDAuMzA4MjY2LCAwLjM5MDMzOCIsIFwKLSAgICAgICAgICAiMC4wMzM3NywgMC4wOTE1NzUsIDAuMTQ2NjYsIDAuMTg2NTQ2LCAwLjI1MTE4OCwgMC4zMDgzMTUsIDAuMzkwNzY0IiwgXAotICAgICAgICAgICIwLjAzMzY3OSwgMC4wOTE1ODgsIDAuMTQ2NzI4LCAwLjE4NjU5NiwgMC4yNTExNzEsIDAuMzA4MTY4LCAwLjM5MDIyMyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2NjcwNCwgMC4xMDYzNDEsIDAuMTM2NDU5LCAwLjE1Njg2LCAwLjE4ODc0OCwgMC4yMTY0MTYsIDAuMjU1Nzk2IiwgXAotICAgICAgICAgICIwLjA3NDQzMSwgMC4xMTQwMTgsIDAuMTQ0MjA2LCAwLjE2NDU1NSwgMC4xOTY0MjIsIDAuMjI0MDc3LCAwLjI2MzQ4NSIsIFwKLSAgICAgICAgICAiMC4wODQyNDgsIDAuMTIzODUxLCAwLjE1NDAyMiwgMC4xNzQzNDYsIDAuMjA2MjQ2LCAwLjIzMzg5NiwgMC4yNzMyOTIiLCBcCi0gICAgICAgICAgIjAuMDk0MTQ3LCAwLjEzMzY4MiwgMC4xNjM4MjUsIDAuMTg0MTExLCAwLjIxNjAxMSwgMC4yNDM2NjIsIDAuMjgzMDg4IiwgXAotICAgICAgICAgICIwLjEwMzczNSwgMC4xNDMyMzEsIDAuMTczNDE3LCAwLjE5Mzc1MywgMC4yMjU2MTYsIDAuMjUzMjY3LCAwLjI5MjY3NCIsIFwKLSAgICAgICAgICAiMC4xMTY2OTksIDAuMTU3MDYyLCAwLjE4NzI3NiwgMC4yMDc2NTYsIDAuMjM5NTM1LCAwLjI2NzE4MywgMC4zMDY1ODMiLCBcCi0gICAgICAgICAgIjAuMTI2MzM4LCAwLjE2Nzg2MiwgMC4xOTgwNDgsIDAuMjE4NDczLCAwLjI1MDQzMSwgMC4yNzgwNDksIDAuMzE3NDU1Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDMyMDUsIDAuMDg5MDU2LCAwLjE0MzU5MSwgMC4xODMxMTIsIDAuMjQ3MzM2LCAwLjMwNDA3NCwgMC4zODU1OTEiLCBcCi0gICAgICAgICAgIjAuMDMxOTUyLCAwLjA4OTAwNiwgMC4xNDM2MDUsIDAuMTgzMTksIDAuMjQ3MzYsIDAuMzAzOTMzLCAwLjM4NTcxNCIsIFwKLSAgICAgICAgICAiMC4wMzE5NTksIDAuMDg5MDMzLCAwLjE0MzU1MywgMC4xODMxNjUsIDAuMjQ3MzU1LCAwLjMwMzg1NiwgMC4zODUzNzUiLCBcCi0gICAgICAgICAgIjAuMDMyMjM3LCAwLjA4OTE3NSwgMC4xNDM2NjgsIDAuMTgzMjE2LCAwLjI0NzQsIDAuMzAzOTExLCAwLjM4NTc0NiIsIFwKLSAgICAgICAgICAiMC4wMzMyNzksIDAuMDg5NTg0LCAwLjE0NDAxNSwgMC4xODM0OTQsIDAuMjQ3NTU1LCAwLjMwMzkzOSwgMC4zODU3IiwgXAotICAgICAgICAgICIwLjAzNjI1NywgMC4wOTE0NDEsIDAuMTQ1MTI1LCAwLjE4NDMxNSwgMC4yNDgxNDEsIDAuMzA0NiwgMC4zODYwMjIiLCBcCi0gICAgICAgICAgIjAuMDM4NTcsIDAuMDkzNDE5LCAwLjE0NjUxNywgMC4xODU0MzQsIDAuMjQ4ODM4LCAwLjMwNTIzNCwgMC4zODYzOTEiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzU5OCwgMC4xMTk2MjgsIDAuMTUyMTk1LCAwLjE3MzcyNiwgMC4yMDcwMDMsIDAuMjM1NTg2LCAwLjI3NjEzOCIsIFwKLSAgICAgICAgICAiMC4wODMyMjMsIDAuMTI2ODM3LCAwLjE1OTQyNSwgMC4xODA5MDcsIDAuMjE0MjYsIDAuMjQyODM2LCAwLjI4MzM3IiwgXAotICAgICAgICAgICIwLjA5MTIyOSwgMC4xMzQ3NzksIDAuMTY3NDAyLCAwLjE4ODg4MywgMC4yMjIyNDIsIDAuMjUwODA0LCAwLjI5MTM3MiIsIFwKLSAgICAgICAgICAiMC4wOTg5ODIsIDAuMTQyNTUyLCAwLjE3NTEzNywgMC4xOTY2NCwgMC4yMjk5NzIsIDAuMjU4NTMsIDAuMjk5MTAxIiwgXAotICAgICAgICAgICIwLjEwNjkxLCAwLjE1MDMwMSwgMC4xODI4NTMsIDAuMjA0MzgzLCAwLjIzNzY4OSwgMC4yNjYyODMsIDAuMzA2ODM0IiwgXAotICAgICAgICAgICIwLjExODA4LCAwLjE2MTg0NywgMC4xOTQ1MTMsIDAuMjE2MDAzLCAwLjI0OTMyOCwgMC4yNzc5MTcsIDAuMzE4NTEzIiwgXAotICAgICAgICAgICIwLjEyNjQ5OSwgMC4xNzEwNDYsIDAuMjAzNiwgMC4yMjUyNywgMC4yNTg1OTQsIDAuMjg3MjA5LCAwLjMyNzcwMSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzNzU1NSwgMC4wOTcwOTksIDAuMTUyMjM3LCAwLjE5MTY1OCwgMC4yNTU4NTgsIDAuMzEyNDQzLCAwLjM5NDA0NiIsIFwKLSAgICAgICAgICAiMC4wMzc1NjcsIDAuMDk2OTc0LCAwLjE1MjIyNywgMC4xOTE3OTgsIDAuMjU1ODQ0LCAwLjMxMjQ3NywgMC4zOTQwNjMiLCBcCi0gICAgICAgICAgIjAuMDM3NDgyLCAwLjA5NzAwNywgMC4xNTIyMTEsIDAuMTkxNzg4LCAwLjI1NTg0LCAwLjMxMjQ2LCAwLjM5NDAyMiIsIFwKLSAgICAgICAgICAiMC4wMzc0NDMsIDAuMDk3MDcyLCAwLjE1MjIyNywgMC4xOTE4MDksIDAuMjU1ODM3LCAwLjMxMjQ2MiwgMC4zOTQwMiIsIFwKLSAgICAgICAgICAiMC4wMzgwNiwgMC4wOTczMywgMC4xNTI0MjgsIDAuMTkyMDA5LCAwLjI1NTk4MywgMC4zMTI2MDEsIDAuMzk0MDg5IiwgXAotICAgICAgICAgICIwLjA0MTEyLCAwLjA5ODgxNywgMC4xNTMzNjIsIDAuMTkyNzM3LCAwLjI1NjQ2OCwgMC4zMTMwMTUsIDAuMzk0Mzg0IiwgXAotICAgICAgICAgICIwLjA0MzQzNCwgMC4xMDA2OTUsIDAuMTU0NzA4LCAwLjE5Mzc5MSwgMC4yNTczNDcsIDAuMzEzNjQ5LCAwLjM5NDkyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY4NDk3LCAwLjExMDYxNiwgMC4xNDE4ODEsIDAuMTYyNjY5LCAwLjE5NDg5LCAwLjIyMjY3MiwgMC4yNjIxMzUiLCBcCi0gICAgICAgICAgIjAuMDc2NDMyLCAwLjExODUyMywgMC4xNDk3NjksIDAuMTcwNTc5LCAwLjIwMjc4OSwgMC4yMzA1NzMsIDAuMjcwMDM1IiwgXAotICAgICAgICAgICIwLjA4NTAwNiwgMC4xMjcwODcsIDAuMTU4NDQyLCAwLjE3OTE0OCwgMC4yMTE0MTksIDAuMjM5MTc3LCAwLjI3ODY3OSIsIFwKLSAgICAgICAgICAiMC4wOTIyMjEsIDAuMTM0MzEsIDAuMTY1NTY0LCAwLjE4NjMzOSwgMC4yMTg1NTYsIDAuMjQ2MzU3LCAwLjI4NTgyMiIsIFwKLSAgICAgICAgICAiMC4wOTczNjMsIDAuMTM5MjE3LCAwLjE3MDUxOSwgMC4xOTEyNjcsIDAuMjIzNDY0LCAwLjI1MTMzNiwgMC4yOTA3MTQiLCBcCi0gICAgICAgICAgIjAuMTAzMzAyLCAwLjE0NTA2MSwgMC4xNzYzNTksIDAuMTk3MDE3LCAwLjIyOTMwNSwgMC4yNTcwNjQsIDAuMjk2NTk4IiwgXAotICAgICAgICAgICIwLjEwNzY0NiwgMC4xNDkzNDQsIDAuMTgwNzM5LCAwLjIwMTQyNSwgMC4yMzM0MzYsIDAuMjYxNTA0LCAwLjMwMDc2MiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzNTA0NCwgMC4wOTM2NjIsIDAuMTQ4MTY1LCAwLjE4NzM3NiwgMC4yNTExMTMsIDAuMzA3Mzg0LCAwLjM4ODMyMyIsIFwKLSAgICAgICAgICAiMC4wMzQ5MjYsIDAuMDkzNDI3LCAwLjE0ODE3MiwgMC4xODczNzUsIDAuMjUwOTMxLCAwLjMwNzM5MywgMC4zODgzMDciLCBcCi0gICAgICAgICAgIjAuMDM0OTY2LCAwLjA5MzU2NSwgMC4xNDgxOSwgMC4xODc0NDgsIDAuMjUwOTYyLCAwLjMwNzM5LCAwLjM4ODMyMSIsIFwKLSAgICAgICAgICAiMC4wMzQ3ODksIDAuMDkzNTcsIDAuMTQ4MTE0LCAwLjE4NzQwNCwgMC4yNTA5NDEsIDAuMzA3MzU1LCAwLjM4ODE4OCIsIFwKLSAgICAgICAgICAiMC4wMzQ1ODcsIDAuMDkzMzkyLCAwLjE0Nzk0LCAwLjE4NzM5NywgMC4yNTA5MDIsIDAuMzA3MzQ3LCAwLjM4ODI2MiIsIFwKLSAgICAgICAgICAiMC4wMzQ1NzcsIDAuMDkzMTk2LCAwLjE0NzkzMSwgMC4xODcyMTgsIDAuMjUwODUsIDAuMzA3MjE2LCAwLjM4ODM1MSIsIFwKLSAgICAgICAgICAiMC4wMzQ2OTEsIDAuMDkzMzg2LCAwLjE0NzgxOCwgMC4xODcxNDIsIDAuMjUwODEzLCAwLjMwNzE1LCAwLjM4ODI1MyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4NzA1OCwgMC4xMjc3NTIsIDAuMTU5MDA1LCAwLjE4MDA2NywgMC4yMTI4ODYsIDAuMjQxMzEzLCAwLjI4MTY5MSIsIFwKLSAgICAgICAgICAiMC4wOTQ4MDEsIDAuMTM1NTUzLCAwLjE2NjgzMiwgMC4xODc4MiwgMC4yMjA2MjcsIDAuMjQ5MDQ5LCAwLjI4OTQzNSIsIFwKLSAgICAgICAgICAiMC4xMDE0NzQsIDAuMTQyMjI2LCAwLjE3MzUyNCwgMC4xOTQ1ODEsIDAuMjI3Mzg4LCAwLjI1NTgwNCwgMC4yOTYxNzkiLCBcCi0gICAgICAgICAgIjAuMTA2NDQ5LCAwLjE0NzE1MiwgMC4xNzg0NjIsIDAuMTk5NDYyLCAwLjIzMjI1OSwgMC4yNjA2OCwgMC4zMDEwNzQiLCBcCi0gICAgICAgICAgIjAuMTEwMTU4LCAwLjE1MDk0MiwgMC4xODIxMywgMC4yMDMxNjYsIDAuMjM1OTcxLCAwLjI2NDQwNiwgMC4zMDQ3OTEiLCBcCi0gICAgICAgICAgIjAuMTE1NDgxLCAwLjE1NjE3MSwgMC4xODc1MTUsIDAuMjA4NTQ1LCAwLjI0MTQxOSwgMC4yNjk4NTIsIDAuMzEwMjczIiwgXAotICAgICAgICAgICIwLjExOTQ3NiwgMC4xNjAxOTYsIDAuMTkxNTMxLCAwLjIxMjQ5NSwgMC4yNDUzOSwgMC4yNzM4NTUsIDAuMzE0MjY2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDMzODU3LCAwLjA5MTc2NywgMC4xNDY4MDQsIDAuMTg2Njg2LCAwLjI1MTIwNSwgMC4zMDgzMDcsIDAuMzkwMzYiLCBcCi0gICAgICAgICAgIjAuMDMzOTMyLCAwLjA5MTYzNywgMC4xNDY3OTksIDAuMTg2NTQ4LCAwLjI1MTIwNiwgMC4zMDgyOTUsIDAuMzkwNDM2IiwgXAotICAgICAgICAgICIwLjAzMzc5MywgMC4wOTE2NzYsIDAuMTQ2NzQxLCAwLjE4NjUzLCAwLjI1MTE5NiwgMC4zMDgyNjUsIDAuMzkwMzEiLCBcCi0gICAgICAgICAgIjAuMDMzNzE2LCAwLjA5MTUyOSwgMC4xNDY2ODksIDAuMTg2NTc2LCAwLjI1MTEwMywgMC4zMDgyMzcsIDAuMzkwMzg1IiwgXAotICAgICAgICAgICIwLjAzMzYwMSwgMC4wOTE3MSwgMC4xNDY3NzgsIDAuMTg2Njg2LCAwLjI1MTIyNSwgMC4zMDgyOTcsIDAuMzkwNDczIiwgXAotICAgICAgICAgICIwLjAzMzU3MywgMC4wOTE1ODMsIDAuMTQ2NzExLCAwLjE4NjYyOCwgMC4yNTEzNzQsIDAuMzA4MzE0LCAwLjM5MDQ0NCIsIFwKLSAgICAgICAgICAiMC4wMzM2MzUsIDAuMDkxNDk1LCAwLjE0Njc0MSwgMC4xODY2NTIsIDAuMjUxMjY4LCAwLjMwODI5NywgMC4zOTA0NTgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxNDgxMSwgMC4wMTM5ODEsIDAuMDEzOTgyLCAwLjAxNDAwNSwgMC4wMTQwMTQsIDAuMDE0MDIyLCAwLjAxNDAzIiwgXAotICAgICAgICAgICIwLjAxNDgyNSwgMC4wMTM5NzgsIDAuMDEzOTg2LCAwLjAxMzk5OCwgMC4wMTQwMTMsIDAuMDE0MDIsIDAuMDE0MDI4IiwgXAotICAgICAgICAgICIwLjAxNDg1OSwgMC4wMTQwNDEsIDAuMDE0MDQzLCAwLjAxNDA2LCAwLjAxNDA3MSwgMC4wMTQwOCwgMC4wMTQwODgiLCBcCi0gICAgICAgICAgIjAuMDE0OTM1LCAwLjAxNDEwNCwgMC4wMTQxMjUsIDAuMDE0MTQzLCAwLjAxNDE1MiwgMC4wMTQxNjEsIDAuMDE0MTcxIiwgXAotICAgICAgICAgICIwLjAxNTA0MiwgMC4wMTQyMTEsIDAuMDE0MjIyLCAwLjAxNDI1MywgMC4wMTQyNjEsIDAuMDE0Mjc0LCAwLjAxNDI4MyIsIFwKLSAgICAgICAgICAiMC4wMTUyNjgsIDAuMDE0NDM2LCAwLjAxNDQzNCwgMC4wMTQ0NDQsIDAuMDE0NDYyLCAwLjAxNDQ2NSwgMC4wMTQ0NzciLCBcCi0gICAgICAgICAgIjAuMDE1NDUxLCAwLjAxNDYwOSwgMC4wMTQ2MzEsIDAuMDE0NjMxLCAwLjAxNDY0NiwgMC4wMTQ2NDMsIDAuMDE0NjQ1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTQ4NTIsIDAuMDEzODQ3LCAwLjAxMzg0NiwgMC4wMTM4NjcsIDAuMDEzODg4LCAwLjAxMzkwNCwgMC4wMTM5MiIsIFwKLSAgICAgICAgICAiMC4wMTQ4ODMsIDAuMDEzODYzLCAwLjAxMzg2MSwgMC4wMTM4NzYsIDAuMDEzODk3LCAwLjAxMzkxMiwgMC4wMTM5MjciLCBcCi0gICAgICAgICAgIjAuMDE0OTIsIDAuMDEzOTAzLCAwLjAxMzg5MiwgMC4wMTM5MTEsIDAuMDEzOTM5LCAwLjAxMzk1NSwgMC4wMTM5NzMiLCBcCi0gICAgICAgICAgIjAuMDE0OTQ5LCAwLjAxMzk3NCwgMC4wMTM5OSwgMC4wMTQwMTMsIDAuMDE0MDM3LCAwLjAxNDA1NCwgMC4wMTQwNyIsIFwKLSAgICAgICAgICAiMC4wMTUxLCAwLjAxNDEyMiwgMC4wMTQxMjQsIDAuMDE0MTM4LCAwLjAxNDE1NCwgMC4wMTQxNzQsIDAuMDE0MTg4IiwgXAotICAgICAgICAgICIwLjAxNTMwMSwgMC4wMTQzMDUsIDAuMDE0MzE0LCAwLjAxNDMzMiwgMC4wMTQzNTMsIDAuMDE0MzY5LCAwLjAxNDM4NCIsIFwKLSAgICAgICAgICAiMC4wMTU0OTUsIDAuMDE0NTE0LCAwLjAxNDUwMSwgMC4wMTQ1MTIsIDAuMDE0NTQsIDAuMDE0NTYyLCAwLjAxNDU3MSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE1MDI4LCAwLjAxMzgzOSwgMC4wMTM3NjksIDAuMDEzNzU2LCAwLjAxMzc0NiwgMC4wMTM3NDYsIDAuMDEzNzQiLCBcCi0gICAgICAgICAgIjAuMDE1MTExLCAwLjAxMzkxOSwgMC4wMTM4NDIsIDAuMDEzODI3LCAwLjAxMzgxNywgMC4wMTM4MTIsIDAuMDEzODA4IiwgXAotICAgICAgICAgICIwLjAxNTI2OCwgMC4wMTQxMDQsIDAuMDE0MDMsIDAuMDE0MDEyLCAwLjAxNDAwNCwgMC4wMTQsIDAuMDEzOTkyIiwgXAotICAgICAgICAgICIwLjAxNTQ1LCAwLjAxNDI4LCAwLjAxNDIwNSwgMC4wMTQxOTYsIDAuMDE0MTgsIDAuMDE0MTc5LCAwLjAxNDE3NyIsIFwKLSAgICAgICAgICAiMC4wMTU2NDQsIDAuMDE0NDcyLCAwLjAxNDM5MSwgMC4wMTQzNzUsIDAuMDE0MzY2LCAwLjAxNDM2MywgMC4wMTQzNjIiLCBcCi0gICAgICAgICAgIjAuMDE2MDE4LCAwLjAxNDgwOSwgMC4wMTQ3MjcsIDAuMDE0NzA4LCAwLjAxNDY5NCwgMC4wMTQ3MDQsIDAuMDE0NjkxIiwgXAotICAgICAgICAgICIwLjAxNjM2NCwgMC4wMTUxMjQsIDAuMDE1MDYzLCAwLjAxNTA0MywgMC4wMTUwMDQsIDAuMDE1MDI4LCAwLjAxNDk5NiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEzNzkxLCAwLjAxMjc2OSwgMC4wMTI3NjEsIDAuMDEyNzc3LCAwLjAxMjc5OCwgMC4wMTI4MTEsIDAuMDEyODI2IiwgXAotICAgICAgICAgICIwLjAxMzc5LCAwLjAxMjc4LCAwLjAxMjc3MywgMC4wMTI3OSwgMC4wMTI4MTIsIDAuMDEyODI4LCAwLjAxMjg0NSIsIFwKLSAgICAgICAgICAiMC4wMTM4NjYsIDAuMDEyODY4LCAwLjAxMjg3LCAwLjAxMjg5MSwgMC4wMTI5MTgsIDAuMDEyOTMsIDAuMDEyOTUiLCBcCi0gICAgICAgICAgIjAuMDEzOTM3LCAwLjAxMjk3MiwgMC4wMTI5ODEsIDAuMDEyOTk4LCAwLjAxMzAyNSwgMC4wMTMwNDEsIDAuMDEzMDU5IiwgXAotICAgICAgICAgICIwLjAxNDA2OSwgMC4wMTMxMDIsIDAuMDEzMTEsIDAuMDEzMTI5LCAwLjAxMzE1NywgMC4wMTMxNzUsIDAuMDEzMTkzIiwgXAotICAgICAgICAgICIwLjAxNDMzNSwgMC4wMTMzNywgMC4wMTMzODIsIDAuMDEzMzk5LCAwLjAxMzQ0OSwgMC4wMTM0NDQsIDAuMDEzNDYyIiwgXAotICAgICAgICAgICIwLjAxNDUxOSwgMC4wMTM1NjUsIDAuMDEzNTg5LCAwLjAxMzYwNCwgMC4wMTM2MjgsIDAuMDEzNjQ3LCAwLjAxMzY2MiIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogTVhJMlg0ICoKLSAqIC0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoTVhJMlg0KSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuNzg0MDA0OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2NDYwODI7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjQ0OTY5OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDY0NjA4MjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyOCwgMC4wMDAyODQsIDAuMDAwMjg1LCAwLjAwMDI4NiwgMC4wMDAyODYsIDAuMDAwMjg3LCAwLjAwMDI4NyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDMxMywgMC4wMDAzMDIsIDAuMDAwMzAxLCAwLjAwMDMsIDAuMDAwMjk5LCAwLjAwMDI5OSwgMC4wMDAyOTgiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY2NzQzNTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2NjYwNDc7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjY3NDM1OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDI4NiwgMC4wMDAyODgsIDAuMDAwMjksIDAuMDAwMjksIDAuMDAwMjksIDAuMDAwMjkxLCAwLjAwMDI5MSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDMxNSwgMC4wMDAzMDQsIDAuMDAwMzAyLCAwLjAwMDMwMSwgMC4wMDAzLCAwLjAwMDI5OSwgMC4wMDAyOTkiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFMwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE0NTk5NTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE0NTk5NTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE0NTk4OTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxOTMsIDAuMDAwMjE3LCAwLjAwMDMsIDAuMDAwNDE5LCAwLjAwMDU1MSwgMC4wMDA4MjEsIDAuMDAxMDMyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyMjk1LCAwLjAwMjMyMSwgMC4wMDI0LCAwLjAwMjUwOSwgMC4wMDI2MzgsIDAuMDAyODU5LCAwLjAwMzA1OSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAxLjM4MjAzOwotICAgIGZ1bmN0aW9uIDogIighKChTMCBCKSArICghUzAgQSkpKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjg4ODUsIDAuMTI0MTg3LCAwLjE3ODMyLCAwLjIxNzAwNSwgMC4yNzkwMzQsIDAuMzMzMjAxLCAwLjQxMDYyNCIsIFwKLSAgICAgICAgICAiMC4wNzQ4MTYsIDAuMTMwMDEsIDAuMTg0MjIsIDAuMjIyOTMzLCAwLjI4NDkyOSwgMC4zMzkxMzYsIDAuNDE2NTkiLCBcCi0gICAgICAgICAgIjAuMDgxNDc3LCAwLjEzNjc2NSwgMC4xOTA5MDUsIDAuMjI5NjEzLCAwLjI5MTYyLCAwLjM0NTc5MywgMC40MjMyMiIsIFwKLSAgICAgICAgICAiMC4wODczNTcsIDAuMTQyNDk4LCAwLjE5NjcyNiwgMC4yMzU0MzQsIDAuMjk3NDEyLCAwLjM1MTY5NCwgMC40MjkxMTEiLCBcCi0gICAgICAgICAgIjAuMDkyMzQ2LCAwLjE0NzU0NywgMC4yMDE3NTEsIDAuMjQwNDY1LCAwLjMwMjQ5OSwgMC4zNTY2NiwgMC40MzQwNjgiLCBcCi0gICAgICAgICAgIjAuMDk5MDA4LCAwLjE1NDIzNywgMC4yMDg0NDksIDAuMjQ3MTcsIDAuMzA5MTQ2LCAwLjM2MzMxNSwgMC40NDA3NjYiLCBcCi0gICAgICAgICAgIjAuMTAzOTc3LCAwLjE1OTI0LCAwLjIxMzQzNSwgMC4yNTIxNTgsIDAuMzE0MTQ2LCAwLjM2ODM5NSwgMC40NDU3NjciKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjU2LCAwLjEzNjIzNywgMC4yNTA0MDYsIDAuMzMyMDY1LCAwLjQ2MjM4MSwgMC41Nzc2MzIsIDAuNzQwMzMxIiwgXAotICAgICAgICAgICIwLjAyNTYwNywgMC4xMzYzMDUsIDAuMjUwMDQxLCAwLjMzMjEwNiwgMC40NjMxNTUsIDAuNTc3NjE2LCAwLjc0MTEzNSIsIFwKLSAgICAgICAgICAiMC4wMjU2MTcsIDAuMTM2MTQ1LCAwLjI1MDE4LCAwLjMzMTg4LCAwLjQ2MjM3NiwgMC41Nzc2MTUsIDAuNzQwMzcyIiwgXAotICAgICAgICAgICIwLjAyNTY4NCwgMC4xMzYzMjIsIDAuMjUwNDQ5LCAwLjMzMjEwNSwgMC40NjI1MjcsIDAuNTc2NzM2LCAwLjc0MTE0MiIsIFwKLSAgICAgICAgICAiMC4wMjU4NTUsIDAuMTM2MzM5LCAwLjI1MDQyMiwgMC4zMzIxMDQsIDAuNDYyMjYzLCAwLjU3NzUyMiwgMC43NDEwNDEiLCBcCi0gICAgICAgICAgIjAuMDI2MDgyLCAwLjEzNjM5OSwgMC4yNTA0MTcsIDAuMzMyMTcsIDAuNDYyOTc2LCAwLjU3NzQ0NCwgMC43NDAzMSIsIFwKLSAgICAgICAgICAiMC4wMjYxMjIsIDAuMTM2MjgxLCAwLjI1MDE4NCwgMC4zMzIwMjksIDAuNDYyNDk0LCAwLjU3NjcxMiwgMC43NDA4NTIiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjYyODksIDAuMTIxMjM3LCAwLjE3NTExMywgMC4yMTM1OCwgMC4yNzUxMjUsIDAuMzI4OTY5LCAwLjQwNTg4MSIsIFwKLSAgICAgICAgICAiMC4wNzI1MTYsIDAuMTI3NDkyLCAwLjE4MTI5OCwgMC4yMTk3NDksIDAuMjgxMzAxLCAwLjMzNTEzMywgMC40MTIwNjQiLCBcCi0gICAgICAgICAgIjAuMDc5ODE2LCAwLjEzNDc1MywgMC4xODg2MzcsIDAuMjI3MTA4LCAwLjI4ODY1LCAwLjM0MjQ5NywgMC40MTkzOTciLCBcCi0gICAgICAgICAgIjAuMDg2MjE2LCAwLjE0MTE5LCAwLjE5NTA3NywgMC4yMzM1NjEsIDAuMjk1MDUzLCAwLjM0ODg5NiwgMC40MjU4MzUiLCBcCi0gICAgICAgICAgIjAuMDkxNzI1LCAwLjE0NjY0OSwgMC4yMDA1MTcsIDAuMjM4OTg1LCAwLjMwMDUyMywgMC4zNTQzNDYsIDAuNDMxMjcxIiwgXAotICAgICAgICAgICIwLjA5OTE2NCwgMC4xNTQxNTQsIDAuMjA4MDI4LCAwLjI0NjQ5NywgMC4zMDgwMiwgMC4zNjE4NTksIDAuNDM4NzY3IiwgXAotICAgICAgICAgICIwLjEwNDc3NywgMC4xNTk3MjgsIDAuMjEzNTgxLCAwLjI1MjA0MiwgMC4zMTM1OSwgMC4zNjc0MTMsIDAuNDQ0MzMzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDI0NjUxLCAwLjEzMzQ3OSwgMC4yNDUyMDgsIDAuMzI0ODY0LCAwLjQ1MzM4LCAwLjU2NTM1NSwgMC43MjU2NDQiLCBcCi0gICAgICAgICAgIjAuMDI0NjcyLCAwLjEzMzMwNSwgMC4yNDUyMzEsIDAuMzI0NzU2LCAwLjQ1MzM3NSwgMC41NjQ3MTMsIDAuNzI0MjczIiwgXAotICAgICAgICAgICIwLjAyNDY4NiwgMC4xMzM1MzQsIDAuMjQ1MTk0LCAwLjMyNDgxNiwgMC40NTMzNTEsIDAuNTY1NDU0LCAwLjcyNTU3IiwgXAotICAgICAgICAgICIwLjAyNDc5NiwgMC4xMzM0MTgsIDAuMjQ1MjIyLCAwLjMyNDg1NywgMC40NTMzMzEsIDAuNTY0NzQ0LCAwLjcyNDQ1MSIsIFwKLSAgICAgICAgICAiMC4wMjUwMjYsIDAuMTMzNTI4LCAwLjI0NDgxOCwgMC4zMjUyMjcsIDAuNDUzMzIzLCAwLjU2NTM4MywgMC43MjQ2NzMiLCBcCi0gICAgICAgICAgIjAuMDI1MDM2LCAwLjEzMzQ1NCwgMC4yNDUyMjQsIDAuMzI0NjM1LCAwLjQ1Mjc5NiwgMC41NjQ2ODgsIDAuNzI0NjU4IiwgXAotICAgICAgICAgICIwLjAyNTIyNywgMC4xMzMzMjIsIDAuMjQ0ODE3LCAwLjMyNDY4OCwgMC40NTMwNjksIDAuNTY0NzI4LCAwLjcyNDQ1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY5MzM3LCAwLjEyNDU0NiwgMC4xNzg3NiwgMC4yMTc0NzQsIDAuMjc5NDU1LCAwLjMzMzU2NSwgMC40MTEwODQiLCBcCi0gICAgICAgICAgIjAuMDc1MzA2LCAwLjEzMDYwOCwgMC4xODQ4NTMsIDAuMjIzNTU0LCAwLjI4NTUxOSwgMC4zMzk3MTUsIDAuNDE3MjIzIiwgXAotICAgICAgICAgICIwLjA4MTg1NSwgMC4xMzcxMTEsIDAuMTkxMzAyLCAwLjIzMDAyMSwgMC4yOTIwNDIsIDAuMzQ2MjIyLCAwLjQyMzY2NiIsIFwKLSAgICAgICAgICAiMC4wODc3NjgsIDAuMTQyOTA4LCAwLjE5NzEzMywgMC4yMzU4NjEsIDAuMjk3ODMxLCAwLjM1MjAxNiwgMC40Mjk0NSIsIFwKLSAgICAgICAgICAiMC4wOTI2MDcsIDAuMTQ3ODAyLCAwLjIwMjAzMiwgMC4yNDA3MzYsIDAuMzAyNzMsIDAuMzU2OTE1LCAwLjQzNDMyMyIsIFwKLSAgICAgICAgICAiMC4wOTkyMzcsIDAuMTU0NDg1LCAwLjIwODcwNiwgMC4yNDc0MTQsIDAuMzA5MzY2LCAwLjM2MzU2NCwgMC40NDEwNjgiLCBcCi0gICAgICAgICAgIjAuMTA0MTk2LCAwLjE1OTQyOSwgMC4yMTM2MjQsIDAuMjUyMzYxLCAwLjMxNDI5NywgMC4zNjg1MDgsIDAuNDQ1OTQyIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDI1NjM2LCAwLjEzNjQyNCwgMC4yNTA0NDIsIDAuMzMxODg1LCAwLjQ2MjQwMSwgMC41NzY4NTEsIDAuNzQwNDc4IiwgXAotICAgICAgICAgICIwLjAyNTYyNSwgMC4xMzYyNjEsIDAuMjUwNDc4LCAwLjMzMjE1MiwgMC40NjMxNjQsIDAuNTc2OTUyLCAwLjc0MTIxNiIsIFwKLSAgICAgICAgICAiMC4wMjU2NDEsIDAuMTM2MzE4LCAwLjI0OTkyMiwgMC4zMzE1ODIsIDAuNDYzMTM0LCAwLjU3NzYyMywgMC43NDA1MTYiLCBcCi0gICAgICAgICAgIjAuMDI1NzE1LCAwLjEzNjQzMSwgMC4yNTA0NywgMC4zMzE2MTEsIDAuNDYzMTI4LCAwLjU3NzU5MSwgMC43NDA0NTEiLCBcCi0gICAgICAgICAgIjAuMDI2MDMzLCAwLjEzNjI5OCwgMC4yNTA0ODMsIDAuMzMxNjU4LCAwLjQ2MzA5OCwgMC41Nzc1MTMsIDAuNzQxMDM3IiwgXAotICAgICAgICAgICIwLjAyNjAwMywgMC4xMzYzNzksIDAuMjUwMjIsIDAuMzMxODksIDAuNDYyNjEzLCAwLjU3NzQwNCwgMC43NDEiLCBcCi0gICAgICAgICAgIjAuMDI2MTU1LCAwLjEzNjI3OSwgMC4yNTAyNjQsIDAuMzMyMTU3LCAwLjQ2MjkwMywgMC41NzczNiwgMC43NDAyNjUiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjYyMzMsIDAuMTIxMjI5LCAwLjE3NTEyLCAwLjIxMzU4MywgMC4yNzUxMzgsIDAuMzI4OTc5LCAwLjQwNTkxMyIsIFwKLSAgICAgICAgICAiMC4wNzI1MDYsIDAuMTI3NDk4LCAwLjE4MTI5OSwgMC4yMTk3NTksIDAuMjgxMzU1LCAwLjMzNTE0MywgMC40MTIwNzUiLCBcCi0gICAgICAgICAgIjAuMDc5ODkyLCAwLjEzNDgyNywgMC4xODg3LCAwLjIyNzE4NywgMC4yODg3MTgsIDAuMzQyNTU0LCAwLjQxOTQ2OSIsIFwKLSAgICAgICAgICAiMC4wODY0NDksIDAuMTQxMzMyLCAwLjE5NTIwNCwgMC4yMzM2NzIsIDAuMjk1MjExLCAwLjM0OTA2NywgMC40MjYwMjMiLCBcCi0gICAgICAgICAgIjAuMDkxOTI1LCAwLjE0Njg2NSwgMC4yMDA3MzYsIDAuMjM5MjAzLCAwLjMwMDc0MSwgMC4zNTQ1NzQsIDAuNDMxNTEiLCBcCi0gICAgICAgICAgIjAuMDk5NDI2LCAwLjE1NDQsIDAuMjA4MjcsIDAuMjQ2NzI2LCAwLjMwODI2MiwgMC4zNjIxMTUsIDAuNDM5MDI5IiwgXAotICAgICAgICAgICIwLjEwNTE0MSwgMC4xNjAyMTUsIDAuMjE0MDk4LCAwLjI1MjU3MywgMC4zMTQwOTgsIDAuMzY3OTUxLCAwLjQ0NDg5NiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyNDcxNiwgMC4xMzM1MzUsIDAuMjQ1MjMyLCAwLjMyNTEyMywgMC40NTMzOTcsIDAuNTY0NzQ0LCAwLjcyMzgxNSIsIFwKLSAgICAgICAgICAiMC4wMjQ3LCAwLjEzMzI4NCwgMC4yNDUyNDMsIDAuMzI0ODQ3LCAwLjQ1MjY0OCwgMC41NjQ3NDQsIDAuNzI0Mjk5IiwgXAotICAgICAgICAgICIwLjAyNDcxNywgMC4xMzM1NTEsIDAuMjQ1MTg4LCAwLjMyNDcyMSwgMC40NTMyMSwgMC41NjU0NjIsIDAuNzI1NDM1IiwgXAotICAgICAgICAgICIwLjAyNDc5MywgMC4xMzM1NDYsIDAuMjQ0OTIxLCAwLjMyNDgzNiwgMC40NTMzNiwgMC41NjQ3NTMsIDAuNzI0MzA0IiwgXAotICAgICAgICAgICIwLjAyNTAyNywgMC4xMzM1NTYsIDAuMjQ1MjUyLCAwLjMyNDg0MywgMC40NTMzMzQsIDAuNTY1MjcxLCAwLjcyNDUwOSIsIFwKLSAgICAgICAgICAiMC4wMjUxMDMsIDAuMTMzNDk1LCAwLjI0NTI2MiwgMC4zMjUyMjQsIDAuNDUzMzEyLCAwLjU2NTQ3MywgMC43MjU2NDYiLCBcCi0gICAgICAgICAgIjAuMDI1MjI5LCAwLjEzMzM0OCwgMC4yNDUxNDUsIDAuMzI1MjI3LCAwLjQ1MzExNSwgMC41NjQ4NDksIDAuNzI1NTgxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlMwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3NDE4NywgMC4xMjkzOCwgMC4xODM2MDcsIDAuMjIyMzMsIDAuMjg0MzEsIDAuMzM4NDg2LCAwLjQxNTkyNSIsIFwKLSAgICAgICAgICAiMC4wODE0MiwgMC4xMzY2MTIsIDAuMTkwODU5LCAwLjIyOTU2NiwgMC4yOTE1NjMsIDAuMzQ1NzQyLCAwLjQyMzE3NiIsIFwKLSAgICAgICAgICAiMC4wODcxOTMsIDAuMTQyNDk2LCAwLjE5Njc1MywgMC4yMzU0MzQsIDAuMjk3NDU4LCAwLjM1MTYzLCAwLjQyOTA2NCIsIFwKLSAgICAgICAgICAiMC4wOTE0MDIsIDAuMTQ2NTc4LCAwLjIwMDgsIDAuMjM5NTEyLCAwLjMwMTQ5MSwgMC4zNTU2ODYsIDAuNDMzMTA3IiwgXAotICAgICAgICAgICIwLjA5NDk3OCwgMC4xNTAxNDIsIDAuMjA0MzY5LCAwLjI0MzEzMSwgMC4zMDUwNzcsIDAuMzU5MjUxLCAwLjQzNjY3MiIsIFwKLSAgICAgICAgICAiMC4wOTk1NzIsIDAuMTU0ODY4LCAwLjIwOTA4NiwgMC4yNDc4MSwgMC4zMDk3NDMsIDAuMzYzOTY4LCAwLjQ0MTM3NSIsIFwKLSAgICAgICAgICAiMC4xMDMyMzgsIDAuMTU4NDcyLCAwLjIxMjY3OCwgMC4yNTEzOTgsIDAuMzEzMzI3LCAwLjM2NzUzMywgMC40NDQ5NjIiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjU2OSwgMC4xMzYyNzksIDAuMjUwNDM4LCAwLjMzMjMzMywgMC40NjMxMjMsIDAuNTc3NjgxLCAwLjc0MDUwNiIsIFwKLSAgICAgICAgICAiMC4wMjU2ODEsIDAuMTM2MjI2LCAwLjI1MDQyNywgMC4zMzIxNzcsIDAuNDYzMTMxLCAwLjU3NzYyNCwgMC43NDA0NTYiLCBcCi0gICAgICAgICAgIjAuMDI1NjIyLCAwLjEzNjI2MiwgMC4yNTA0NzgsIDAuMzMyMDM4LCAwLjQ2MjM4NCwgMC41Nzc2MjQsIDAuNzQwNDU0IiwgXAotICAgICAgICAgICIwLjAyNTY4NSwgMC4xMzY0MjUsIDAuMjUwNDYxLCAwLjMzMTg3NywgMC40NjMwODIsIDAuNTc3NTUxLCAwLjc0MDM1IiwgXAotICAgICAgICAgICIwLjAyNTczMywgMC4xMzYzNDgsIDAuMjUwNDU0LCAwLjMzMTkyNCwgMC40NjIyMjQsIDAuNTc3NDA2LCAwLjc0MDk0IiwgXAotICAgICAgICAgICIwLjAyNTYzOCwgMC4xMzYyNzcsIDAuMjUwMjA3LCAwLjMzMTgyOCwgMC40NjI3ODcsIDAuNTc3MjU4LCAwLjc0MDM0OSIsIFwKLSAgICAgICAgICAiMC4wMjU2MjgsIDAuMTM2MTkyLCAwLjI1MDAzNiwgMC4zMzE4MTEsIDAuNDYyNDY0LCAwLjU3NjY1OCwgMC43NDAxOTkiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzMwODIsIDAuMTI3OTk3LCAwLjE4MTg1NywgMC4yMjAzMzIsIDAuMjgxODcyLCAwLjMzNTcxNSwgMC40MTI2OTUiLCBcCi0gICAgICAgICAgIjAuMDgwMjg1LCAwLjEzNTIzMiwgMC4xODkxMDksIDAuMjI3NTcsIDAuMjg5MTQ1LCAwLjM0Mjk4MSwgMC40MTk4NzkiLCBcCi0gICAgICAgICAgIjAuMDg1OTk3LCAwLjE0MDkwOSwgMC4xOTQ3NzIsIDAuMjMzMjM3LCAwLjI5NDc4NSwgMC4zNDg2MzMsIDAuNDI1NiIsIFwKLSAgICAgICAgICAiMC4wODk4MDUsIDAuMTQ0NzcsIDAuMTk4NjM3LCAwLjIzNzExNSwgMC4yOTg2NTEsIDAuMzUyNDgzLCAwLjQyOTM5NiIsIFwKLSAgICAgICAgICAiMC4wOTI5OTcsIDAuMTQ3OTE0LCAwLjIwMTc4NSwgMC4yNDAyNSwgMC4zMDE3OTIsIDAuMzU1NjE4LCAwLjQzMjUyIiwgXAotICAgICAgICAgICIwLjA5NzM1LCAwLjE1MjMyNywgMC4yMDYxMTMsIDAuMjQ0NTYzLCAwLjMwNjA5NSwgMC4zNTk5MzgsIDAuNDM2ODI0IiwgXAotICAgICAgICAgICIwLjEwMDQ5OSwgMC4xNTU0MjcsIDAuMjA5Mjc5LCAwLjI0NzczMSwgMC4zMDkyNjUsIDAuMzYzMDk2LCAwLjQzOTk5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDI0Njk0LCAwLjEzMzUyOSwgMC4yNDQ4OTMsIDAuMzI0ODE3LCAwLjQ1MzM2NywgMC41NjQ3OTUsIDAuNzI0NDQiLCBcCi0gICAgICAgICAgIjAuMDI0NjU5LCAwLjEzMzMsIDAuMjQ1MjIsIDAuMzI0ODAzLCAwLjQ1MjUxNCwgMC41NjU0OTksIDAuNzI1NjM5IiwgXAotICAgICAgICAgICIwLjAyNDY4OSwgMC4xMzM1MjcsIDAuMjQ1MTc1LCAwLjMyNDc5OSwgMC40NTMzNTMsIDAuNTY0NzkxLCAwLjcyNDI4MiIsIFwKLSAgICAgICAgICAiMC4wMjQ3MTcsIDAuMTMzNTI4LCAwLjI0NTE2MiwgMC4zMjQ2MzcsIDAuNDUzMzI4LCAwLjU2NDY5MSwgMC43MjQ3NTQiLCBcCi0gICAgICAgICAgIjAuMDI0NzUyLCAwLjEzMzUyNywgMC4yNDUxNzUsIDAuMzI1MTc5LCAwLjQ1MzMwNywgMC41NjUzNywgMC43MjU1MTMiLCBcCi0gICAgICAgICAgIjAuMDI0Njc0LCAwLjEzMzI2NiwgMC4yNDQ3NjUsIDAuMzI0NzY0LCAwLjQ1MjkxNiwgMC41NjQ1NTUsIDAuNzI1MzA2IiwgXAotICAgICAgICAgICIwLjAyNDY3NCwgMC4xMzMyNDUsIDAuMjQ0NjQxLCAwLjMyNDY1LCAwLjQ1MjYzNSwgMC41NjQ1MDgsIDAuNzI0NzM1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlMwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2NDE0MiwgMC4xMTkzMiwgMC4xNzM1NSwgMC4yMTIyNjEsIDAuMjc0MjI1LCAwLjMyODM2MSwgMC40MDU4OTYiLCBcCi0gICAgICAgICAgIjAuMDcxNDM3LCAwLjEyNjYzNywgMC4xODA4MjMsIDAuMjE5NTY4LCAwLjI4MTU3MywgMC4zMzU3NDcsIDAuNDEzMTc4IiwgXAotICAgICAgICAgICIwLjA4MDY1NiwgMC4xMzU5MzgsIDAuMTkwMDg1LCAwLjIyODc4NywgMC4yOTA3OTYsIDAuMzQ0OTY4LCAwLjQyMjM5NCIsIFwKLSAgICAgICAgICAiMC4wODg1MDksIDAuMTQzNjM5LCAwLjE5Nzg2MSwgMC4yMzY1NzEsIDAuMjk4NTY4LCAwLjM1Mjc4NCwgMC40MzAxNzUiLCBcCi0gICAgICAgICAgIjAuMDk0OTIzLCAwLjE1MDA5NCwgMC4yMDQzMjYsIDAuMjQzMDE4LCAwLjMwNTAzLCAwLjM1OTIxOSwgMC40MzY2MjgiLCBcCi0gICAgICAgICAgIjAuMTAzNDcsIDAuMTU4NzE0LCAwLjIxMjk3OCwgMC4yNTE2NzgsIDAuMzEzNTg2LCAwLjM2Nzg0OCwgMC40NDUyNDIiLCBcCi0gICAgICAgICAgIjAuMTA5OTI4LCAwLjE2NTE4MiwgMC4yMTkzNzgsIDAuMjU4MDk4LCAwLjMyMDA1NCwgMC4zNzQyNywgMC40NTE3MTQiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjU2MTcsIDAuMTM2MTk5LCAwLjI1MDQ5LCAwLjMzMjEzMSwgMC40NjMxNTksIDAuNTc2ODIxLCAwLjczOTg5OCIsIFwKLSAgICAgICAgICAiMC4wMjU2MjUsIDAuMTM2NCwgMC4yNTAwNzEsIDAuMzMxODgzLCAwLjQ2MjM3NCwgMC41Nzc2MjIsIDAuNzQwMzk2IiwgXAotICAgICAgICAgICIwLjAyNTYxNiwgMC4xMzYxMjcsIDAuMjUwMzg4LCAwLjMzMTg4LCAwLjQ2MjM3MiwgMC41Nzc2MTYsIDAuNzQwMzU5IiwgXAotICAgICAgICAgICIwLjAyNTg1NCwgMC4xMzYzNjQsIDAuMjUwMTUxLCAwLjMzMjEwNiwgMC40NjMxNDEsIDAuNTc3NjE1LCAwLjc0MTA5NSIsIFwKLSAgICAgICAgICAiMC4wMjYwMDEsIDAuMTM2MzgsIDAuMjUwNDQ0LCAwLjMzMjEyNSwgMC40NjIzNzIsIDAuNTc3NTQ5LCAwLjc0MDI3NSIsIFwKLSAgICAgICAgICAiMC4wMjYwNTMsIDAuMTM2NDA2LCAwLjI1MDQxNiwgMC4zMzE4ODEsIDAuNDYyNTk3LCAwLjU3NzU2OCwgMC43NDEwNjQiLCBcCi0gICAgICAgICAgIjAuMDI2MzgzLCAwLjEzNjMyMywgMC4yNTAxNjUsIDAuMzMxNjM3LCAwLjQ2MjI1MSwgMC41Nzc1NzQsIDAuNzQwNTExIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDYxODgzLCAwLjExNjgwOSwgMC4xNzA2ODYsIDAuMjA5MTQ1LCAwLjI3MDY4OCwgMC4zMjQ1NTYsIDAuNDAxNDc0IiwgXAotICAgICAgICAgICIwLjA2OTMxOSwgMC4xMjQyOTgsIDAuMTc4MTc5LCAwLjIxNjY0OSwgMC4yNzgyMTIsIDAuMzMyMDYxLCAwLjQwODk4NiIsIFwKLSAgICAgICAgICAiMC4wNzg2NDEsIDAuMTMzNjU1LCAwLjE4NzQ1NSwgMC4yMjU5MjgsIDAuMjg3NDUzLCAwLjM0MTMyNywgMC40MTgyNDIiLCBcCi0gICAgICAgICAgIjAuMDg2NDM1LCAwLjE0MTMyOCwgMC4xOTUyMTEsIDAuMjMzNzAyLCAwLjI5NTIwOCwgMC4zNDkwNjksIDAuNDI2MDEzIiwgXAotICAgICAgICAgICIwLjA5MjkyNiwgMC4xNDc3OCwgMC4yMDE2NDgsIDAuMjQwMjA2LCAwLjMwMTY2NSwgMC4zNTU0OTksIDAuNDMyNDQ0IiwgXAotICAgICAgICAgICIwLjEwMTQ0NSwgMC4xNTYzNDUsIDAuMjEwMjAzLCAwLjI0ODY3MywgMC4zMTAzNzcsIDAuMzY0MjQ3LCAwLjQ0MDk2NyIsIFwKLSAgICAgICAgICAiMC4xMDc4MywgMC4xNjI3MTQsIDAuMjE2ODIxLCAwLjI1NTExNSwgMC4zMTY2MzYsIDAuMzcwNTE5LCAwLjQ0NzM1MyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyNDcxNSwgMC4xMzM1NDMsIDAuMjQ1MjYsIDAuMzI0ODU0LCAwLjQ1MzI2NCwgMC41NjQ0OTYsIDAuNzI1NzM4IiwgXAotICAgICAgICAgICIwLjAyNDY2MywgMC4xMzM1MDksIDAuMjQ0NzQ0LCAwLjMyNDgyLCAwLjQ1MjQ5MywgMC41NjQ0MDYsIDAuNzI0MTIiLCBcCi0gICAgICAgICAgIjAuMDI0NjgsIDAuMTMzNTMyLCAwLjI0NDk1LCAwLjMyNDYzMiwgMC40NTMzNjgsIDAuNTY0NTA3LCAwLjcyNDM5MyIsIFwKLSAgICAgICAgICAiMC4wMjQ4MzksIDAuMTMzNTQ2LCAwLjI0NTI1NSwgMC4zMjQ2MTMsIDAuNDUzMzYsIDAuNTY0NzM5LCAwLjcyNDI5OCIsIFwKLSAgICAgICAgICAiMC4wMjUwNjcsIDAuMTMzNTcyLCAwLjI0NTIyNiwgMC4zMjQ4NTEsIDAuNDUzMzg1LCAwLjU2NTI3OSwgMC43MjQ0OTMiLCBcCi0gICAgICAgICAgIjAuMDI1MjI1LCAwLjEzMzUyLCAwLjI0NDkyMywgMC4zMjUyNCwgMC40NTMzOTEsIDAuNTY0NDEzLCAwLjcyNTM4MyIsIFwKLSAgICAgICAgICAiMC4wMjUzMjQsIDAuMTMzMzk2LCAwLjI0NDkyMiwgMC4zMjQ1NzUsIDAuNDUzMzA0LCAwLjU2NTQyOSwgMC43MjQ3MjIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwOTM2OCwgMC4wMDk1LCAwLjAwOTU0NiwgMC4wMDk1MzQsIDAuMDA5NTMxLCAwLjAwOTUzMywgMC4wMDk1NjgiLCBcCi0gICAgICAgICAgIjAuMDA5MzYzLCAwLjAwOTQ3MywgMC4wMDk0OTYsIDAuMDA5NDk5LCAwLjAwOTUxMSwgMC4wMDk1MSwgMC4wMDk1MSIsIFwKLSAgICAgICAgICAiMC4wMDkzNjgsIDAuMDA5NDk0LCAwLjAwOTUxNSwgMC4wMDk1MjIsIDAuMDA5NTI4LCAwLjAwOTUzMSwgMC4wMDk1MzQiLCBcCi0gICAgICAgICAgIjAuMDA5NDE2LCAwLjAwOTUzOCwgMC4wMDk1NjMsIDAuMDA5NTY5LCAwLjAwOTU3NiwgMC4wMDk1ODEsIDAuMDA5NTgyIiwgXAotICAgICAgICAgICIwLjAwOTUxNSwgMC4wMDk2MDcsIDAuMDA5NjI3LCAwLjAwOTYzMywgMC4wMDk2MzksIDAuMDA5NjQxLCAwLjAwOTY0NCIsIFwKLSAgICAgICAgICAiMC4wMDk2NjIsIDAuMDA5NzUyLCAwLjAwOTc3OCwgMC4wMDk3NzksIDAuMDA5NzkyLCAwLjAwOTc4OSwgMC4wMDk3OTMiLCBcCi0gICAgICAgICAgIjAuMDA5NzIzLCAwLjAwOTgzMiwgMC4wMDk4NTQsIDAuMDA5ODYsIDAuMDA5ODY3LCAwLjAwOTg3MSwgMC4wMDk4NzciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNzQ2MiwgMC4wMDc2NjksIDAuMDA3NzA2LCAwLjAwNzcxOCwgMC4wMDc3MjgsIDAuMDA3NzMzLCAwLjAwNzczOCIsIFwKLSAgICAgICAgICAiMC4wMDc0MjMsIDAuMDA3NjM2LCAwLjAwNzY3MywgMC4wMDc2ODQsIDAuMDA3Njk0LCAwLjAwNzcsIDAuMDA3NzA1IiwgXAotICAgICAgICAgICIwLjAwNzQzOCwgMC4wMDc2NTQsIDAuMDA3Njk0LCAwLjAwNzcwNywgMC4wMDc3MTgsIDAuMDA3NzI0LCAwLjAwNzcyOSIsIFwKLSAgICAgICAgICAiMC4wMDc0ODcsIDAuMDA3NzAxLCAwLjAwNzc0MywgMC4wMDc3NTYsIDAuMDA3Nzc1LCAwLjAwNzc4MSwgMC4wMDc3ODciLCBcCi0gICAgICAgICAgIjAuMDA3NTYyLCAwLjAwNzc1OSwgMC4wMDc3OTksIDAuMDA3ODEyLCAwLjAwNzgyMywgMC4wMDc4MjksIDAuMDA3ODM0IiwgXAotICAgICAgICAgICIwLjAwNzcxMSwgMC4wMDc4OTksIDAuMDA3OTM3LCAwLjAwNzk1LCAwLjAwNzk2MywgMC4wMDc5NjksIDAuMDA3OTcyIiwgXAotICAgICAgICAgICIwLjAwNzg0MiwgMC4wMDgwMTgsIDAuMDA4MDU2LCAwLjAwODA2OSwgMC4wMDgwODEsIDAuMDA4MDg3LCAwLjAwODA5MiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA5NTc0LCAwLjAwOTY4NywgMC4wMDk3MSwgMC4wMDk3MTUsIDAuMDA5NzIxLCAwLjAwOTcyNSwgMC4wMDk3MjkiLCBcCi0gICAgICAgICAgIjAuMDA5NTQ0LCAwLjAwOTY2MywgMC4wMDk2ODQsIDAuMDA5NjkxLCAwLjAwOTY5OCwgMC4wMDk3MDksIDAuMDA5NzIyIiwgXAotICAgICAgICAgICIwLjAwOTU1NSwgMC4wMDk2OCwgMC4wMDk3MDQsIDAuMDA5NzAxLCAwLjAwOTcyMiwgMC4wMDk3MjMsIDAuMDA5NzE5IiwgXAotICAgICAgICAgICIwLjAwOTU5MiwgMC4wMDk3MTUsIDAuMDA5NzQsIDAuMDA5NzQ3LCAwLjAwOTc1MywgMC4wMDk3NTcsIDAuMDA5NzU5IiwgXAotICAgICAgICAgICIwLjAwOTcwMSwgMC4wMDk3OSwgMC4wMDk4MTEsIDAuMDA5ODE4LCAwLjAwOTgyNSwgMC4wMDk4MjMsIDAuMDA5ODMiLCBcCi0gICAgICAgICAgIjAuMDA5Nzc2LCAwLjAwOTg4NSwgMC4wMDk5MDUsIDAuMDA5OTE2LCAwLjAwOTkxOSwgMC4wMDk5MjIsIDAuMDA5OTI1IiwgXAotICAgICAgICAgICIwLjAwOTg5NSwgMC4wMTAwMDUsIDAuMDEwMDE5LCAwLjAxMDAyNiwgMC4wMTAwMywgMC4wMTAwNDIsIDAuMDEwMDQ0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDcyOTcsIDAuMDA3NTA5LCAwLjAwNzU0NywgMC4wMDc1NTksIDAuMDA3NTcxLCAwLjAwNzU3NiwgMC4wMDc1ODEiLCBcCi0gICAgICAgICAgIjAuMDA3MjU4LCAwLjAwNzQ3NSwgMC4wMDc1MTMsIDAuMDA3NTI1LCAwLjAwNzUzNiwgMC4wMDc1NDIsIDAuMDA3NTQ3IiwgXAotICAgICAgICAgICIwLjAwNzI2NywgMC4wMDc0ODcsIDAuMDA3NTI5LCAwLjAwNzU0MiwgMC4wMDc1NTUsIDAuMDA3NTYxLCAwLjAwNzU2NyIsIFwKLSAgICAgICAgICAiMC4wMDczNDgsIDAuMDA3NTU1LCAwLjAwNzU5NSwgMC4wMDc2MDgsIDAuMDA3NjIsIDAuMDA3NjI2LCAwLjAwNzYzMSIsIFwKLSAgICAgICAgICAiMC4wMDc0LCAwLjAwNzU5OSwgMC4wMDc2MzgsIDAuMDA3NjUyLCAwLjAwNzY2MywgMC4wMDc2NywgMC4wMDc2NzUiLCBcCi0gICAgICAgICAgIjAuMDA3NTQyLCAwLjAwNzcyNCwgMC4wMDc3NjEsIDAuMDA3NzczLCAwLjAwNzc4MywgMC4wMDc3OSwgMC4wMDc3OTQiLCBcCi0gICAgICAgICAgIjAuMDA3Njg4LCAwLjAwNzg2NywgMC4wMDc5MDUsIDAuMDA3OTEyLCAwLjAwNzkyNywgMC4wMDc5MjgsIDAuMDA3OTMyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUzAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA5MDQ2LCAwLjAwOTE1OCwgMC4wMDkxNTMsIDAuMDA5MTg0LCAwLjAwOTE4OSwgMC4wMDkxOTIsIDAuMDA5MTk0IiwgXAotICAgICAgICAgICIwLjAwOTA1MywgMC4wMDkxNjcsIDAuMDA5MTg3LCAwLjAwOTE5MywgMC4wMDkxODEsIDAuMDA5MTc1LCAwLjAwOTE4NSIsIFwKLSAgICAgICAgICAiMC4wMDkxMzksIDAuMDA5MjU5LCAwLjAwOTI2LCAwLjAwOTI4NSwgMC4wMDkyOSwgMC4wMDkyNzIsIDAuMDA5MzEiLCBcCi0gICAgICAgICAgIjAuMDA5MjYyLCAwLjAwOTM4LCAwLjAwOTQsIDAuMDA5NDA3LCAwLjAwOTQxOCwgMC4wMDk0MTUsIDAuMDA5NDE0IiwgXAotICAgICAgICAgICIwLjAwOTQ0MywgMC4wMDk1NDcsIDAuMDA5NTY2LCAwLjAwOTU2OCwgMC4wMDk1NzgsIDAuMDA5NTgsIDAuMDA5NTgzIiwgXAotICAgICAgICAgICIwLjAwOTYxOSwgMC4wMDk3MzYsIDAuMDA5NzUyLCAwLjAwOTc2NSwgMC4wMDk3NjMsIDAuMDA5NzcxLCAwLjAwOTc2NyIsIFwKLSAgICAgICAgICAiMC4wMDk4MjgsIDAuMDA5OTM4LCAwLjAwOTk1NSwgMC4wMDk5NjIsIDAuMDA5OTY3LCAwLjAwOTk3LCAwLjAwOTk3MSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA5NjI0LCAwLjAwOTgzOSwgMC4wMDk4NzYsIDAuMDA5ODg4LCAwLjAwOTg5OCwgMC4wMDk5MDQsIDAuMDA5OTA4IiwgXAotICAgICAgICAgICIwLjAwOTY1MiwgMC4wMDk4NTksIDAuMDA5ODk2LCAwLjAwOTkwNywgMC4wMDk5MTcsIDAuMDA5OTIyLCAwLjAwOTkyNyIsIFwKLSAgICAgICAgICAiMC4wMDk3MjYsIDAuMDA5OTQ4LCAwLjAwOTk4NiwgMC4wMDk5OTgsIDAuMDEwMDAxLCAwLjAxMDAxNCwgMC4wMTAwMTEiLCBcCi0gICAgICAgICAgIjAuMDA5ODM5LCAwLjAxMDA2MiwgMC4wMTAwOTgsIDAuMDEwMTEsIDAuMDEwMTIxLCAwLjAxMDEyNSwgMC4wMTAxMyIsIFwKLSAgICAgICAgICAiMC4wMDk5ODksIDAuMDEwMTkxLCAwLjAxMDIyNiwgMC4wMTAyMzgsIDAuMDEwMjQ4LCAwLjAxMDI1MywgMC4wMTAyNTkiLCBcCi0gICAgICAgICAgIjAuMDEwMjQzLCAwLjAxMDQ1MywgMC4wMTA0ODcsIDAuMDEwNTAxLCAwLjAxMDUxMSwgMC4wMTA1MTYsIDAuMDEwNTE4IiwgXAotICAgICAgICAgICIwLjAxMDQ0MywgMC4wMTA2NTEsIDAuMDEwNjg4LCAwLjAxMDY5NywgMC4wMTA3MSwgMC4wMTA3MTIsIDAuMDEwNzE3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBOQU5ENEJCWDEgKgotICogLS0tLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChOQU5ENEJCWDEpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC41MTM2NzQ7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEFOKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2NDg1MDY7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjQ4NTA2OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDY0ODQ2NzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA1NzQsIDAuMDAwNTgyLCAwLjAwMDY2MiwgMC4wMDA3NzEsIDAuMDAwODk3LCAwLjAwMTEyNiwgMC4wMDEzMTkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDE5ODQsIDAuMDAxOTk4LCAwLjAwMjA3NSwgMC4wMDIxODUsIDAuMDAyMzEzLCAwLjAwMjUzOSwgMC4wMDI3MjgiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEJOKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2NDExMzE7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjQxMTMxOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDY0MTExMjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA1MTEsIDAuMDAwNTE3LCAwLjAwMDU5OSwgMC4wMDA3MDUsIDAuMDAwODMyLCAwLjAwMTA2MSwgMC4wMDEyNDgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDIwMzcsIDAuMDAyMDUsIDAuMDAyMTI1LCAwLjAwMjIzMiwgMC4wMDIzNTMsIDAuMDAyNTg0LCAwLjAwMjc3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihDKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA5NTU2MTE7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwOTU1NjExOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDk1NDY2MjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA1MjQsIDAuMDAwNTI0LCAwLjAwMDUyNCwgMC4wMDA1MjQsIDAuMDAwNTI0LCAwLjAwMDUyNCwgMC4wMDA1MjQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA1NjksIDAuMDAwNTM4LCAwLjAwMDUzMiwgMC4wMDA1MywgMC4wMDA1MywgMC4wMDA1MjYsIDAuMDAwNTI3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihEKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA5NzY5ODsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA5NzY1NzU7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwOTc2OTg7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzE1LCAwLjAwMDMxNSwgMC4wMDAzMTQsIDAuMDAwMzE0LCAwLjAwMDMxNCwgMC4wMDAzMTQsIDAuMDAwMzE1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNTk1LCAwLjAwMDU5NiwgMC4wMDA1OTYsIDAuMDAwNTk2LCAwLjAwMDU5NiwgMC4wMDA1OTYsIDAuMDAwNTk2Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMTA2NDE2OwotICAgIGZ1bmN0aW9uIDogIighKCgoKCFCTikgKCFBTikpIEMpIEQpKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQU4iOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1MzE0OCwgMC4wNzE2NzQsIDAuMTc1OTI2LCAwLjI2Nzc3MywgMC4zOTAxNDEsIDAuNjM0OCwgMC43ODc3MTQiLCBcCi0gICAgICAgICAgIjAuMDYwODE4LCAwLjA3OTMzLCAwLjE4MzY5MiwgMC4yNzU1MDgsIDAuMzk3ODA5LCAwLjY0MjUxMiwgMC43OTU3OTUiLCBcCi0gICAgICAgICAgIjAuMDY3NDQzLCAwLjA4NTk2NSwgMC4xOTAyOTcsIDAuMjgyMTQzLCAwLjQwNDQxNCwgMC42NDkxMzcsIDAuODAyNDUxIiwgXAotICAgICAgICAgICIwLjA3MjM4OCwgMC4wOTA5MDIsIDAuMTk1MTI0LCAwLjI4NzA3NCwgMC40MDk0NCwgMC42NTQyMiwgMC44MDcwMjciLCBcCi0gICAgICAgICAgIjAuMDc2MzMsIDAuMDk0Nzk2LCAwLjE5ODk2NiwgMC4yOTA4NCwgMC40MTMyMTksIDAuNjU3OTU3LCAwLjgxMDg4IiwgXAotICAgICAgICAgICIwLjA4MTYzMywgMC4xMDAyMTIsIDAuMjA0MzIzLCAwLjI5NjExNiwgMC40MTg1MjYsIDAuNjYzMTY5LCAwLjgxNjYxMyIsIFwKLSAgICAgICAgICAiMC4wODU3MSwgMC4xMDQyNjksIDAuMjA4NDY4LCAwLjMwMDEyMiwgMC40MjI1MzksIDAuNjY3MTQ2LCAwLjgyMDI4OSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODA1MTIsIDAuMTE5MDIzLCAwLjMzNzc4MiwgMC41MzA3NjksIDAuNzg4Mzk3LCAxLjMwMjcxLCAxLjYyNDMzIiwgXAotICAgICAgICAgICIwLjA4MDU4MSwgMC4xMTkwMzgsIDAuMzM3ODA0LCAwLjUzMDgwMywgMC43ODgxMzYsIDEuMzAzNzcsIDEuNjI1MDIiLCBcCi0gICAgICAgICAgIjAuMDgwOTQ1LCAwLjExOTIwOSwgMC4zMzc3NTYsIDAuNTMwODQsIDAuNzg4MTI5LCAxLjMwMzAyLCAxLjYyNTA4IiwgXAotICAgICAgICAgICIwLjA4MTMwNCwgMC4xMTkzNzMsIDAuMzM3NzUxLCAwLjUzMDg1NiwgMC43ODg0OTEsIDEuMzAzNTEsIDEuNjI0ODQiLCBcCi0gICAgICAgICAgIjAuMDgxNzY0LCAwLjExOTU4OCwgMC4zMzc3NzksIDAuNTMwNzg4LCAwLjc4ODQ2LCAxLjMwMzEzLCAxLjYyNDYiLCBcCi0gICAgICAgICAgIjAuMDgyNDQxLCAwLjEyMDA3OCwgMC4zMzc4MjgsIDAuNTMwOCwgMC43ODgxNzgsIDEuMzAyNzEsIDEuNjI1MDgiLCBcCi0gICAgICAgICAgIjAuMDgzMTY5LCAwLjEyMDUwNCwgMC4zMzc5MDUsIDAuNTMwODc3LCAwLjc4ODI2NiwgMS4zMDM0MSwgMS42MjQ1NyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMzg1MzcsIDAuMTk3NDA1LCAwLjUzMTE0LCAwLjgyNTY0LCAxLjIxNzI1LCAyLjAwMjc5LCAyLjQ5MjQyIiwgXAotICAgICAgICAgICIwLjE0NTgwOSwgMC4yMDQ4MTMsIDAuNTM4MDk3LCAwLjgzMjg5MiwgMS4yMjM3MiwgMi4wMDc1NywgMi40OTgxNCIsIFwKLSAgICAgICAgICAiMC4xNTE1NTgsIDAuMjEwNTg3LCAwLjU0NDQ3OCwgMC44Mzg3ODMsIDEuMjMwOTgsIDIuMDE1NTUsIDIuNTA2MDEiLCBcCi0gICAgICAgICAgIjAuMTU1NjkyLCAwLjIxNDcwNSwgMC41NDgzNDcsIDAuODQyMzcxLCAxLjIzNTMzLCAyLjAxODk2LCAyLjUwOTg1IiwgXAotICAgICAgICAgICIwLjE1ODkxNiwgMC4yMTc5MzUsIDAuNTUxNzkyLCAwLjg0NTc3OCwgMS4yMzgwNiwgMi4wMjM2NiwgMi41MTI5OSIsIFwKLSAgICAgICAgICAiMC4xNjMxMzMsIDAuMjIyMTA3LCAwLjU1NTc1MywgMC44NTAzLCAxLjI0MzMzLCAyLjAyNjYyLCAyLjUxNzE5IiwgXAotICAgICAgICAgICIwLjE2NjI1MiwgMC4yMjUyNSwgMC41NTg4NjEsIDAuODUzMDkzLCAxLjI0NTE2LCAyLjAyOTU4LCAyLjUyMTI5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIzOTAzOCwgMC4zNjAwMzcsIDEuMDQyMiwgMS42NDQ1MywgMi40NTE4MSwgNC4wNTQ0OSwgNS4wNTgxMiIsIFwKLSAgICAgICAgICAiMC4yMzkwNDgsIDAuMzYwMTA2LCAxLjA0MjIzLCAxLjY0NDYsIDIuNDQ3NSwgNC4wNTU5MywgNS4wNjQ1NCIsIFwKLSAgICAgICAgICAiMC4yMzkzNTksIDAuMzU5NTEsIDEuMDQyMTgsIDEuNjQ0NTksIDIuNDQ4MSwgNC4wNTM1MywgNS4wNTc3NCIsIFwKLSAgICAgICAgICAiMC4yMzkyNDMsIDAuMzYwMDQyLCAxLjA0Mzg4LCAxLjY0NjIzLCAyLjQ0Nzc3LCA0LjA2MDUxLCA1LjA1ODg3IiwgXAotICAgICAgICAgICIwLjIzODk0NiwgMC4zNjAwNTIsIDEuMDQyMTEsIDEuNjQ0ODEsIDIuNDUxNzcsIDQuMDU0MTEsIDUuMDU4MjIiLCBcCi0gICAgICAgICAgIjAuMjM4OTIyLCAwLjM1OTg5NSwgMS4wNDM3NSwgMS42NDc0NCwgMi40NDc1NywgNC4wNjA2LCA1LjA1ODI0IiwgXAotICAgICAgICAgICIwLjIzODg1MiwgMC4zNTkzMzksIDEuMDQyMDEsIDEuNjQ0NCwgMi40NTE0OCwgNC4wNjAzNywgNS4wNTgxNiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDUzNiwgMC4wNzIzMDQsIDAuMTc4MDA1LCAwLjI3MTI5NSwgMC4zOTU0MTksIDAuNjQzODQyLCAwLjc5ODUwMSIsIFwKLSAgICAgICAgICAiMC4wNjEzMjcsIDAuMDgwMDM0LCAwLjE4NTc0NywgMC4yNzg5NTYsIDAuNDAzMjIsIDAuNjUxOTI1LCAwLjgwNjMyNSIsIFwKLSAgICAgICAgICAiMC4wNjgyMDgsIDAuMDg2OTEsIDAuMTkyNjgyLCAwLjI4NTc5MSwgMC40MTAxMTUsIDAuNjU4NTUxLCAwLjgxMzcyOSIsIFwKLSAgICAgICAgICAiMC4wNzMzMTcsIDAuMDkyMDQyLCAwLjE5NzY4NSwgMC4yOTEwMDksIDAuNDE1MTksIDAuNjYzNjU1LCAwLjgxOTMzIiwgXAotICAgICAgICAgICIwLjA3NzMzOCwgMC4wOTYwMzcsIDAuMjAxNjc4LCAwLjI5NDg0NiwgMC40MTkwNzksIDAuNjY3NTYsIDAuODIyODczIiwgXAotICAgICAgICAgICIwLjA4Mjg5NSwgMC4xMDE1OTgsIDAuMjA3MjIxLCAwLjMwMDM2OSwgMC40MjQ1NzMsIDAuNjczMzQzLCAwLjgyODY2MyIsIFwKLSAgICAgICAgICAiMC4wODcxMDQsIDAuMTA1ODQ5LCAwLjIxMTQ3NywgMC4zMDQ2MDYsIDAuNDI4NzY3LCAwLjY3NzI2MywgMC44MzI3NjYiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDgwMjg1LCAwLjExOTQxMSwgMC4zNDE4MjgsIDAuNTM3NjYzLCAwLjc5OTY5MSwgMS4zMjMyOSwgMS42NDk0NyIsIFwKLSAgICAgICAgICAiMC4wODAzODUsIDAuMTE5NDM0LCAwLjM0MTczNSwgMC41MzgwMzYsIDAuNzk5ODg2LCAxLjMyMzE5LCAxLjY0OTg1IiwgXAotICAgICAgICAgICIwLjA4MDcxNiwgMC4xMTk2MDcsIDAuMzQxODE2LCAwLjUzODA4NywgMC43OTk3MTksIDEuMzIzMzIsIDEuNjQ5ODkiLCBcCi0gICAgICAgICAgIjAuMDgxMTIzLCAwLjExOTgwMywgMC4zNDE3NzMsIDAuNTM4MjUyLCAwLjc5OTYwNSwgMS4zMjMwNiwgMS42NTA1NyIsIFwKLSAgICAgICAgICAiMC4wODE1OCwgMC4xMjAwMzQsIDAuMzQxODExLCAwLjUzODE0MSwgMC43OTk5OTIsIDEuMzIyODgsIDEuNjUwMDEiLCBcCi0gICAgICAgICAgIjAuMDgyMzQ4LCAwLjEyMDYyMiwgMC4zNDE4NTMsIDAuNTM4MTA1LCAwLjc5OTk2MiwgMS4zMjMwOCwgMS42NTAwMSIsIFwKLSAgICAgICAgICAiMC4wODI5NzcsIDAuMTIxMTI2LCAwLjM0MTk0LCAwLjUzODA3MiwgMC43OTk4ODcsIDEuMzIyNjIsIDEuNjUwMDIiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTM3NTcxLCAwLjE5NjQ3NSwgMC41Mjk4NDQsIDAuODIzODk4LCAxLjIxNjUzLCAyLjAwMTcyLCAyLjQ5MTA4IiwgXAotICAgICAgICAgICIwLjE0NDkyMiwgMC4yMDM5MjQsIDAuNTM3MzQzLCAwLjgzMTYyMiwgMS4yMjQsIDIuMDA5LCAyLjQ5ODU4IiwgXAotICAgICAgICAgICIwLjE1MDk5MSwgMC4yMDk5NzksIDAuNTQzODY0LCAwLjgzODA2MiwgMS4yMzExNywgMi4wMTY0LCAyLjUwNTM1IiwgXAotICAgICAgICAgICIwLjE1NTM0NCwgMC4yMTQzODIsIDAuNTQ4MjYzLCAwLjg0MjExNywgMS4yMzQ3NCwgMi4wMTkzMiwgMi41MDkyOSIsIFwKLSAgICAgICAgICAiMC4xNTg4LCAwLjIxNzc5NCwgMC41NTE3MzgsIDAuODQ1NTk4LCAxLjIzODAxLCAyLjAyMzE4LCAyLjUxMjk4IiwgXAotICAgICAgICAgICIwLjE2MzI5MSwgMC4yMjIzMjksIDAuNTU1OTk1LCAwLjg1MDI2MiwgMS4yNDI0MiwgMi4wMjc1OCwgMi41MTY1OCIsIFwKLSAgICAgICAgICAiMC4xNjY2NzIsIDAuMjI1NTk1LCAwLjU1OTI4MywgMC44NTM2OCwgMS4yNDY3NiwgMi4wMzAwMiwgMi41MjA3NiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMzk0MDksIDAuMzYwMDY4LCAxLjA0MzgxLCAxLjY0NzA5LCAyLjQ1MjA0LCA0LjA1NDE3LCA1LjA2NTk1IiwgXAotICAgICAgICAgICIwLjIzOTAzNiwgMC4zNjAwNzksIDEuMDQzMjQsIDEuNjQ0NSwgMi40NTE4OSwgNC4wNTM4NiwgNS4wNjU3NyIsIFwKLSAgICAgICAgICAiMC4yMzg5NzQsIDAuMzU5NTIxLCAxLjA0MjIsIDEuNjQ3NDgsIDIuNDQ3NTcsIDQuMDU1MDQsIDUuMDY2MzYiLCBcCi0gICAgICAgICAgIjAuMjM5MzA1LCAwLjM2MDA2LCAxLjA0MjE5LCAxLjY0NzExLCAyLjQ1MTk5LCA0LjA2MTEzLCA1LjA2NTgzIiwgXAotICAgICAgICAgICIwLjIzODk3NywgMC4zNTk1MTEsIDEuMDQyMSwgMS42NDcwNywgMi40NTE3MywgNC4wNTQwMiwgNS4wNTgyMyIsIFwKLSAgICAgICAgICAiMC4yMzg5NjYsIDAuMzU5ODM1LCAxLjA0MzcyLCAxLjY0NDUxLCAyLjQ1MTUzLCA0LjA2MTI3LCA1LjA2MTAxIiwgXAotICAgICAgICAgICIwLjIzODk4MSwgMC4zNTk0OTMsIDEuMDQyMDMsIDEuNjQ0NjQsIDIuNDQ3NzMsIDQuMDU2NDgsIDUuMDY1ODEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQwNDgxLCAwLjA1OTE1LCAwLjE2NDc0NiwgMC4yNTgwNTYsIDAuMzgyMzc2LCAwLjYzMTMwMywgMC43ODYwNjgiLCBcCi0gICAgICAgICAgIjAuMDQ4NzA4LCAwLjA2NzM1MiwgMC4xNzMwMzcsIDAuMjY2MDU2LCAwLjM5MDY4NSwgMC42MzkyNTgsIDAuNzk0NDUzIiwgXAotICAgICAgICAgICIwLjA1OTMyNCwgMC4wNzc1MTgsIDAuMTgzMTM2LCAwLjI3NjI2MSwgMC40MDAzMDcsIDAuNjQ5MjMyLCAwLjgwNDQ5NCIsIFwKLSAgICAgICAgICAiMC4wNjk3NCwgMC4wODc5NjYsIDAuMTkzMzcyLCAwLjI4NjU4MiwgMC40MTA2ODMsIDAuNjU5MDk1LCAwLjgxNDE3MiIsIFwKLSAgICAgICAgICAiMC4wNzg0NCwgMC4wOTkyNDcsIDAuMjAzNjY4LCAwLjI5NjgxNSwgMC40MjA5ODYsIDAuNjY5MTYzLCAwLjgyNDQxNCIsIFwKLSAgICAgICAgICAiMC4wODk3NDIsIDAuMTE0MDI0LCAwLjIyMDQwNSwgMC4zMTM0MTksIDAuNDM3NzEzLCAwLjY4NTkzMSwgMC44NDExNDYiLCBcCi0gICAgICAgICAgIjAuMDk3NzUzLCAwLjEyNDc4NiwgMC4yMzUxNCwgMC4zMjgwMzEsIDAuNDUyMjcxLCAwLjcwMDU1NiwgMC44NTU2OTYiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc4MTE3LCAwLjExNzM5NCwgMC4zMzk4MzgsIDAuNTM2MTIyLCAwLjc5Nzg0NSwgMS4zMjEzNywgMS42NDc3NCIsIFwKLSAgICAgICAgICAiMC4wNzkyNzUsIDAuMTE3NjIzLCAwLjMzOTkxNiwgMC41MzYwMTgsIDAuNzk3OTcxLCAxLjMyMTIzLCAxLjY0ODUzIiwgXAotICAgICAgICAgICIwLjA4NTI5OCwgMC4xMjE5NDUsIDAuMzM5OTA3LCAwLjUzNjEsIDAuNzk3NzU1LCAxLjMyMTI2LCAxLjY0ODE5IiwgXAotICAgICAgICAgICIwLjA5MzQyMiwgMC4xMjkwMjEsIDAuMzQwOTY1LCAwLjUzNjA3NywgMC43OTc3ODYsIDEuMzIxNDYsIDEuNjQ3NjYiLCBcCi0gICAgICAgICAgIjAuMTAyNzEyLCAwLjEzNjQzNywgMC4zNDQ0NTMsIDAuNTM2NDA0LCAwLjc5NzQyLCAxLjMyMDYyLCAxLjY0NzYiLCBcCi0gICAgICAgICAgIjAuMTE4MTMsIDAuMTUwNTI1LCAwLjM1MjUsIDAuNTQwNTEsIDAuNzk4MDM0LCAxLjMyMTYyLCAxLjY0NzkxIiwgXAotICAgICAgICAgICIwLjEzMTA5OSwgMC4xNjQwMzMsIDAuMzYxMzgsIDAuNTQ2MjQyLCAwLjgwMDQ2OSwgMS4zMjEwMywgMS42NDg5OSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMjI0NjQsIDAuMTgxNDgxLCAwLjUxNDkzNiwgMC44MDg4MDEsIDEuMjAxNjQsIDEuOTg3MTMsIDIuNDc2MTEiLCBcCi0gICAgICAgICAgIjAuMTI4NjA1LCAwLjE4NzY0LCAwLjUyMTI4NSwgMC44MTU1MTgsIDEuMjA3MzEsIDEuOTkxNDcsIDIuNDgzMzkiLCBcCi0gICAgICAgICAgIjAuMTM2NTU4LCAwLjE5NTU3MiwgMC41MjkyOTYsIDAuODIzNTg4LCAxLjIxNjI3LCAyLjAwMDUxLCAyLjQ5MDgzIiwgXAotICAgICAgICAgICIwLjE0NDU5LCAwLjIwMzY0NCwgMC41Mzc2OTQsIDAuODMxNTY1LCAxLjIyMzc1LCAyLjAwODk1LCAyLjQ5OTU0IiwgXAotICAgICAgICAgICIwLjE1Mjk5NSwgMC4yMTE2NjUsIDAuNTQ1NTAzLCAwLjgzOTc2NCwgMS4yMzE5MywgMi4wMTgwOSwgMi41MDc2MyIsIFwKLSAgICAgICAgICAiMC4xNjYzNjksIDAuMjI1Mjc3LCAwLjU1ODcyMiwgMC44NTI4MSwgMS4yNDUwMiwgMi4wMzA4MiwgMi41MTk1NiIsIFwKLSAgICAgICAgICAiMC4xNzgyNTEsIDAuMjM2OTYyLCAwLjU3MDExMiwgMC44NjQ1MTQsIDEuMjU2NiwgMi4wNDA4OSwgMi41MzIyNSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMzkzNzgsIDAuMzU5NDE4LCAxLjA0NDAyLCAxLjY0NzExLCAyLjQ0NzY5LCA0LjA1MzkxLCA1LjA2NjExIiwgXAotICAgICAgICAgICIwLjIzODk4NywgMC4zNTkzODYsIDEuMDQyMjUsIDEuNjQ0NzQsIDIuNDQ5MTksIDQuMDU2NTksIDUuMDU3OSIsIFwKLSAgICAgICAgICAiMC4yMzkzODEsIDAuMzU5NDY2LCAxLjA0Mzc3LCAxLjY0NDgsIDIuNDQ3NDUsIDQuMDYwOTEsIDUuMDY1OTYiLCBcCi0gICAgICAgICAgIjAuMjQxNjY1LCAwLjM2MDczMSwgMS4wNDIxOSwgMS42NDcwOSwgMi40NDk2MywgNC4wNjEyMSwgNS4wNTgxNCIsIFwKLSAgICAgICAgICAiMC4yNDU0NjIsIDAuMzYxOTcyLCAxLjA0MzcyLCAxLjY0NzA5LCAyLjQ0ODU3LCA0LjA1Mzk5LCA1LjA1NzM2IiwgXAotICAgICAgICAgICIwLjI1MjkxNiwgMC4zNjc4MDYsIDEuMDQyMTcsIDEuNjQ0OTIsIDIuNDQ5NzEsIDQuMDU0MTUsIDUuMDYwNiIsIFwKLSAgICAgICAgICAiMC4yNjA2MTQsIDAuMzczNjE2LCAxLjA0MjMxLCAxLjY0NzIxLCAyLjQ1MTU3LCA0LjA2MDQzLCA1LjA1NzkyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkQiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzOTMsIDAuMDU3OTM1LCAwLjE2MzUyNCwgMC4yNTY2NTQsIDAuMzgxMDI0LCAwLjYyOTQ5MSwgMC43ODQ4MzciLCBcCi0gICAgICAgICAgIjAuMDQ3NiwgMC4wNjYyMzksIDAuMTcxODc2LCAwLjI2NTAyNiwgMC4zODkxMzcsIDAuNjM3Njg5LCAwLjc5MzA4NSIsIFwKLSAgICAgICAgICAiMC4wNTgxNDcsIDAuMDc2NzY2LCAwLjE4MjMyNiwgMC4yNzUzMjUsIDAuMzk5NjkxLCAwLjY0ODE0MywgMC44MDM0NjEiLCBcCi0gICAgICAgICAgIjAuMDY4MTA0LCAwLjA4NzAxOCwgMC4xOTIzOTMsIDAuMjg1NTE4LCAwLjQwOTY3OCwgMC42NTg2ODUsIDAuODEzMTU5IiwgXAotICAgICAgICAgICIwLjA3NjU4NCwgMC4wOTc1NjMsIDAuMjAyODcyLCAwLjI5NjAxMSwgMC40MjAyNjMsIDAuNjY4NDk2LCAwLjgyMzU4IiwgXAotICAgICAgICAgICIwLjA4NzU5MywgMC4xMTIwNDQsIDAuMjE5NjM2LCAwLjMxMjY5MSwgMC40MzY5NzMsIDAuNjg1MjQxLCAwLjg0MDU2NiIsIFwKLSAgICAgICAgICAiMC4wOTYyOTQsIDAuMTIyNDI3LCAwLjIzNDM4LCAwLjMyNzM1MywgMC40NTE1MzksIDAuNjk5ODE0LCAwLjg1NTAwMSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzY3MTYsIDAuMTE2MDE0LCAwLjMzODA2NiwgMC41MzQ5NjMsIDAuNzk2MSwgMS4zMTkzNSwgMS42NDkzMyIsIFwKLSAgICAgICAgICAiMC4wNzc4MTgsIDAuMTE2MjgxLCAwLjMzODIxMiwgMC41MzQ0MzUsIDAuNzk1NzAxLCAxLjMyMDA3LCAxLjY0NjQiLCBcCi0gICAgICAgICAgIjAuMDg0MDA0LCAwLjEyMDQyNCwgMC4zMzgxMjQsIDAuNTMzODMsIDAuNzk3MjI5LCAxLjMxOTE5LCAxLjY0NzE4IiwgXAotICAgICAgICAgICIwLjA5MjYzNywgMC4xMjc0NDQsIDAuMzM5OTQyLCAwLjUzNDI3MiwgMC43OTY5NDgsIDEuMzE5ODUsIDEuNjQ1NTMiLCBcCi0gICAgICAgICAgIjAuMTAyMDIsIDAuMTM1NTUzLCAwLjM0MzI0OSwgMC41MzQ4MDEsIDAuNzk2MDIxLCAxLjMxOTI0LCAxLjY0ODQ4IiwgXAotICAgICAgICAgICIwLjExODYxMSwgMC4xNTA3NDMsIDAuMzUxLCAwLjUzOTA1NywgMC43OTYzNTgsIDEuMzE5NzQsIDEuNjQ2MjIiLCBcCi0gICAgICAgICAgIjAuMTI5Njc5LCAwLjE2NDI4NCwgMC4zNTk2LCAwLjU0NDQ5MywgMC43OTg3NDIsIDEuMzE5NzYsIDEuNjQ3ODYiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTE4MTgzLCAwLjE3NzA0LCAwLjUxMDQ3NywgMC44MDQ2MjIsIDEuMTk2NDIsIDEuOTc5ODcsIDIuNDY5MzgiLCBcCi0gICAgICAgICAgIjAuMTI0NzMsIDAuMTgzNjkxLCAwLjUxNzIxOSwgMC44MTEyODgsIDEuMjAzNDQsIDEuOTg3NTgsIDIuNDc4MTUiLCBcCi0gICAgICAgICAgIjAuMTMzMzA2LCAwLjE5MjIxMSwgMC41MjU4MDksIDAuODIwNTIzLCAxLjIxMjk3LCAxLjk5ODAzLCAyLjQ4NzM3IiwgXAotICAgICAgICAgICIwLjE0MjI3NywgMC4yMDA5ODUsIDAuNTM0NjQ0LCAwLjgyODc5NiwgMS4yMjA4MywgMi4wMDU3NSwgMi40OTYyMiIsIFwKLSAgICAgICAgICAiMC4xNTEyNDQsIDAuMjA5NzksIDAuNTQzMDY3LCAwLjgzNzIyOSwgMS4yMzAxMywgMi4wMTQyNSwgMi41MDQ0NSIsIFwKLSAgICAgICAgICAiMC4xNjYyMTQsIDAuMjI0NDA1LCAwLjU1NjgyNSwgMC44NTEwMTEsIDEuMjQyODQsIDIuMDI2OTEsIDIuNTE4NSIsIFwKLSAgICAgICAgICAiMC4xNzk3MTYsIDAuMjM3NDY0LCAwLjU2OTMyLCAwLjg2MzE1MSwgMS4yNTU1MSwgMi4wNDA5LCAyLjUyOTA2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIzOTQzNSwgMC4zNjAwNywgMS4wNDIzMSwgMS42NDQ3NywgMi40NDkwNCwgNC4wNTY0OSwgNS4wNTcyMSIsIFwKLSAgICAgICAgICAiMC4yMzkzNzEsIDAuMzYwMDM2LCAxLjA0Mzc3LCAxLjY0NzAzLCAyLjQ1MTUsIDQuMDYwMzgsIDUuMDU4MDMiLCBcCi0gICAgICAgICAgIjAuMjM5MzIzLCAwLjM1OTk2OSwgMS4wNDIzMiwgMS42NDQ1OCwgMi40NDc3NywgNC4wNTQwMywgNS4wNjYxMiIsIFwKLSAgICAgICAgICAiMC4yNDI2MDgsIDAuMzYwNjY0LCAxLjA0MjA5LCAxLjY0NDY4LCAyLjQ0ODA4LCA0LjA1NDYzLCA1LjA2NjQiLCBcCi0gICAgICAgICAgIjAuMjQ2OTg3LCAwLjM2Mjc2MiwgMS4wNDM4NiwgMS42NDQ2OCwgMi40NDc3NCwgNC4wNjEyLCA1LjA2NjE4IiwgXAotICAgICAgICAgICIwLjI1NjMzNywgMC4zNjk0NDIsIDEuMDQzNzUsIDEuNjQ3MzIsIDIuNDUxNTQsIDQuMDYwNDcsIDUuMDU2OTYiLCBcCi0gICAgICAgICAgIjAuMjY1ODQ4LCAwLjM3NzIyNSwgMS4wNDIyNywgMS42NDcyMiwgMi40NDczMiwgNC4wNTM5NiwgNS4wNjUxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQU4iOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzgyMSwgMC4wMDM4MjEsIDAuMDAzODIyLCAwLjAwMzgyMiwgMC4wMDM4MjEsIDAuMDAzODIxLCAwLjAwMzgxOSIsIFwKLSAgICAgICAgICAiMC4wMDM4MjIsIDAuMDAzODIzLCAwLjAwMzgyNCwgMC4wMDM4MjQsIDAuMDAzODI0LCAwLjAwMzgyMywgMC4wMDM4MjIiLCBcCi0gICAgICAgICAgIjAuMDAzOTA4LCAwLjAwMzkwOSwgMC4wMDM5MSwgMC4wMDM5MSwgMC4wMDM5MTEsIDAuMDAzOTEsIDAuMDAzOTA5IiwgXAotICAgICAgICAgICIwLjAwNDAxNSwgMC4wMDQwMTQsIDAuMDA0MDE1LCAwLjAwNDAxNSwgMC4wMDQwMTUsIDAuMDA0MDE0LCAwLjAwNDAxNCIsIFwKLSAgICAgICAgICAiMC4wMDQxMzcsIDAuMDA0MTM4LCAwLjAwNDEzOSwgMC4wMDQxNDgsIDAuMDA0MTQ3LCAwLjAwNDE0NiwgMC4wMDQxNDYiLCBcCi0gICAgICAgICAgIjAuMDA0MzU0LCAwLjAwNDM1MywgMC4wMDQzNTMsIDAuMDA0MzYzLCAwLjAwNDM2MywgMC4wMDQzNTIsIDAuMDA0MzYzIiwgXAotICAgICAgICAgICIwLjAwNDU2MSwgMC4wMDQ1NjUsIDAuMDA0NTY0LCAwLjAwNDU1MywgMC4wMDQ1NjIsIDAuMDA0NTUxLCAwLjAwNDU2MSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzYzMiwgMC4wMDM2MzcsIDAuMDAzNjQ0LCAwLjAwMzY0NSwgMC4wMDM2NDYsIDAuMDAzNjQ2LCAwLjAwMzY0NiIsIFwKLSAgICAgICAgICAiMC4wMDM2NDEsIDAuMDAzNjUsIDAuMDAzNjYzLCAwLjAwMzY2NSwgMC4wMDM2NjcsIDAuMDAzNjY4LCAwLjAwMzY2OCIsIFwKLSAgICAgICAgICAiMC4wMDM3MDMsIDAuMDAzNzE0LCAwLjAwMzczMiwgMC4wMDM3MzYsIDAuMDAzNzM4LCAwLjAwMzc0LCAwLjAwMzc0IiwgXAotICAgICAgICAgICIwLjAwMzc5OCwgMC4wMDM4MTEsIDAuMDAzODMxLCAwLjAwMzgzNiwgMC4wMDM4MzgsIDAuMDAzODQsIDAuMDAzODQxIiwgXAotICAgICAgICAgICIwLjAwMzkxOSwgMC4wMDM5MjUsIDAuMDAzOTQ4LCAwLjAwMzk2MSwgMC4wMDM5NTYsIDAuMDAzOTY2LCAwLjAwMzk2IiwgXAotICAgICAgICAgICIwLjAwNDEyNCwgMC4wMDQxMzgsIDAuMDA0MTY0LCAwLjAwNDE3LCAwLjAwNDE2NCwgMC4wMDQxNzcsIDAuMDA0MTc4IiwgXAotICAgICAgICAgICIwLjAwNDMxMiwgMC4wMDQzMTgsIDAuMDA0MzQ2LCAwLjAwNDM2MSwgMC4wMDQzNTcsIDAuMDA0MzYxLCAwLjAwNDM2MiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkJOIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDM1MzUsIDAuMDAzNTM2LCAwLjAwMzUzNywgMC4wMDM1MzgsIDAuMDAzNTM3LCAwLjAwMzUzNywgMC4wMDM1MzciLCBcCi0gICAgICAgICAgIjAuMDAzNTQsIDAuMDAzNTQzLCAwLjAwMzU0NSwgMC4wMDM1NDYsIDAuMDAzNTQ2LCAwLjAwMzU0NiwgMC4wMDM1NDUiLCBcCi0gICAgICAgICAgIjAuMDAzNjE0LCAwLjAwMzYxNywgMC4wMDM2MjEsIDAuMDAzNjIxLCAwLjAwMzYyMSwgMC4wMDM2MjEsIDAuMDAzNjIxIiwgXAotICAgICAgICAgICIwLjAwMzcxOSwgMC4wMDM3MjEsIDAuMDAzNzMxLCAwLjAwMzczMiwgMC4wMDM3MzIsIDAuMDAzNzI2LCAwLjAwMzcyNSIsIFwKLSAgICAgICAgICAiMC4wMDM4NTEsIDAuMDAzODUzLCAwLjAwMzg1NiwgMC4wMDM4NTcsIDAuMDAzODQ4LCAwLjAwMzg1NywgMC4wMDM4NTciLCBcCi0gICAgICAgICAgIjAuMDA0MDU2LCAwLjAwNDA3MSwgMC4wMDQwNzQsIDAuMDA0MDc0LCAwLjAwNDA3NiwgMC4wMDQwNzUsIDAuMDA0MDc0IiwgXAotICAgICAgICAgICIwLjAwNDI1NCwgMC4wMDQyNTYsIDAuMDA0MjYxLCAwLjAwNDI3NywgMC4wMDQyNjIsIDAuMDA0Mjc3LCAwLjAwNDI3NyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzU2MywgMC4wMDM1NywgMC4wMDM1NzgsIDAuMDAzNTgsIDAuMDAzNTgxLCAwLjAwMzU4MiwgMC4wMDM1ODIiLCBcCi0gICAgICAgICAgIjAuMDAzNTU5LCAwLjAwMzU2OSwgMC4wMDM1ODQsIDAuMDAzNTg3LCAwLjAwMzU4OSwgMC4wMDM1OSwgMC4wMDM1OTEiLCBcCi0gICAgICAgICAgIjAuMDAzNjI4LCAwLjAwMzY0MSwgMC4wMDM2NjEsIDAuMDAzNjY2LCAwLjAwMzY2OCwgMC4wMDM2NywgMC4wMDM2NzEiLCBcCi0gICAgICAgICAgIjAuMDAzNzIxLCAwLjAwMzczNSwgMC4wMDM3NjUsIDAuMDAzNzcsIDAuMDAzNzc0LCAwLjAwMzc3NiwgMC4wMDM3NzEiLCBcCi0gICAgICAgICAgIjAuMDAzODQxLCAwLjAwMzg1NiwgMC4wMDM4NzYsIDAuMDAzODg5LCAwLjAwMzg5MywgMC4wMDM4OTYsIDAuMDAzODk3IiwgXAotICAgICAgICAgICIwLjAwNDAzNywgMC4wMDQwNjIsIDAuMDA0MDkyLCAwLjAwNDA5MSwgMC4wMDQxMDQsIDAuMDA0MDk5LCAwLjAwNDEwOSIsIFwKLSAgICAgICAgICAiMC4wMDQyMzYsIDAuMDA0MjM5LCAwLjAwNDI4NSwgMC4wMDQyOCwgMC4wMDQyOTgsIDAuMDA0MjksIDAuMDA0MzA0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyODcxLCAwLjAwMjg3MiwgMC4wMDI4NzQsIDAuMDAyODc0LCAwLjAwMjg3NCwgMC4wMDI4NzUsIDAuMDAyODc0IiwgXAotICAgICAgICAgICIwLjAwMjg3MiwgMC4wMDI4NzUsIDAuMDAyODgsIDAuMDAyODgyLCAwLjAwMjg4MiwgMC4wMDI4ODIsIDAuMDAyODgyIiwgXAotICAgICAgICAgICIwLjAwMjg4NCwgMC4wMDI4OTgsIDAuMDAyODkxLCAwLjAwMjg4OSwgMC4wMDI4ODYsIDAuMDAyODg3LCAwLjAwMjg4NyIsIFwKLSAgICAgICAgICAiMC4wMDI5MSwgMC4wMDI5MzYsIDAuMDAyOTA3LCAwLjAwMjksIDAuMDAyODk1LCAwLjAwMjg5MSwgMC4wMDI4OSIsIFwKLSAgICAgICAgICAiMC4wMDI5NTQsIDAuMDAyOTM3LCAwLjAwMjkyOCwgMC4wMDI5MTUsIDAuMDAyOTA2LCAwLjAwMjg5NywgMC4wMDI4OTUiLCBcCi0gICAgICAgICAgIjAuMDAzMDQ4LCAwLjAwMzAwNywgMC4wMDI5NjcsIDAuMDAyOTQ0LCAwLjAwMjkyNywgMC4wMDI5MTIsIDAuMDAyOTA1IiwgXAotICAgICAgICAgICIwLjAwMzE2LCAwLjAwMzA4NiwgMC4wMDMwMTMsIDAuMDAyOTc0LCAwLjAwMjk1LCAwLjAwMjkyOCwgMC4wMDI5MTkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDA5NDksIDAuMDAwOTUzLCAwLjAwMDk1OSwgMC4wMDA5NiwgMC4wMDA5NjEsIDAuMDAwOTYxLCAwLjAwMDk2MSIsIFwKLSAgICAgICAgICAiMC4wMDA5MSwgMC4wMDA5MjQsIDAuMDAwOTQ4LCAwLjAwMDk1MywgMC4wMDA5NTYsIDAuMDAwOTU4LCAwLjAwMDk2MSIsIFwKLSAgICAgICAgICAiMC4wMDA4ODcsIDAuMDAwOTA0LCAwLjAwMDkzNywgMC4wMDA5NDUsIDAuMDAwOTUsIDAuMDAwOTU1LCAwLjAwMDk1NiIsIFwKLSAgICAgICAgICAiMC4wMDA4OSwgMC4wMDA5MDEsIDAuMDAwOTMyLCAwLjAwMDk0MSwgMC4wMDA5NDcsIDAuMDAwOTUzLCAwLjAwMDk1NCIsIFwKLSAgICAgICAgICAiMC4wMDA5MTIsIDAuMDAwOTEzLCAwLjAwMDkzMiwgMC4wMDA5NDEsIDAuMDAwOTQ3LCAwLjAwMDk1MiwgMC4wMDA5NTQiLCBcCi0gICAgICAgICAgIjAuMDAwOTczLCAwLjAwMDk1NSwgMC4wMDA5NDMsIDAuMDAwOTQ3LCAwLjAwMDk1LCAwLjAwMDk1NCwgMC4wMDA5NTUiLCBcCi0gICAgICAgICAgIjAuMDAxMDQ4LCAwLjAwMTAxMywgMC4wMDA5NjMsIDAuMDAwOTU4LCAwLjAwMDk1NywgMC4wMDA5NTgsIDAuMDAwOTU4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyMzYxLCAwLjAwMjM2NCwgMC4wMDIzNjgsIDAuMDAyMzY4LCAwLjAwMjM2OSwgMC4wMDIzNjksIDAuMDAyMzY5IiwgXAotICAgICAgICAgICIwLjAwMjM2MywgMC4wMDIzNywgMC4wMDIzOCwgMC4wMDIzODQsIDAuMDAyMzg2LCAwLjAwMjM4NywgMC4wMDIzODciLCBcCi0gICAgICAgICAgIjAuMDAyMzc1LCAwLjAwMjM3OSwgMC4wMDIzODYsIDAuMDAyMzg2LCAwLjAwMjM4NywgMC4wMDIzODgsIDAuMDAyMzg4IiwgXAotICAgICAgICAgICIwLjAwMjQyNCwgMC4wMDI0MTQsIDAuMDAyNDAxLCAwLjAwMjM5OCwgMC4wMDIzOTQsIDAuMDAyMzk1LCAwLjAwMjM5NSIsIFwKLSAgICAgICAgICAiMC4wMDI0NywgMC4wMDI0NDgsIDAuMDAyNDE1LCAwLjAwMjQwOCwgMC4wMDI0MDMsIDAuMDAyMzk5LCAwLjAwMjM5OCIsIFwKLSAgICAgICAgICAiMC4wMDI1ODQsIDAuMDAyNTI5LCAwLjAwMjQ0OCwgMC4wMDI0MzMsIDAuMDAyNDIxLCAwLjAwMjQxMSwgMC4wMDI0MDYiLCBcCi0gICAgICAgICAgIjAuMDAyNjI5LCAwLjAwMjYyMywgMC4wMDI0ODksIDAuMDAyNDU4LCAwLjAwMjQ0MSwgMC4wMDI0MjUsIDAuMDAyNDE4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwOTQ3LCAwLjAwMDk1MiwgMC4wMDA5NTksIDAuMDAwOTYsIDAuMDAwOTYsIDAuMDAwOTYxLCAwLjAwMDk2MSIsIFwKLSAgICAgICAgICAiMC4wMDA5MTQsIDAuMDAwOTI3LCAwLjAwMDk0OCwgMC4wMDA5NTMsIDAuMDAwOTU2LCAwLjAwMDk1OCwgMC4wMDA5NTkiLCBcCi0gICAgICAgICAgIjAuMDAwOTE5LCAwLjAwMDkyNSwgMC4wMDA5NDQsIDAuMDAwOTUsIDAuMDAwOTU0LCAwLjAwMDk1NywgMC4wMDA5NTgiLCBcCi0gICAgICAgICAgIjAuMDAwOTQ1LCAwLjAwMDk0LCAwLjAwMDk0NiwgMC4wMDA5NTEsIDAuMDAwOTU0LCAwLjAwMDk1NywgMC4wMDA5NTgiLCBcCi0gICAgICAgICAgIjAuMDAxMDAyLCAwLjAwMDk4MiwgMC4wMDA5NjMsIDAuMDAwOTYxLCAwLjAwMDk2MSwgMC4wMDA5NjEsIDAuMDAwOTYxIiwgXAotICAgICAgICAgICIwLjAwMTEwNywgMC4wMDEwNjcsIDAuMDAwOTkzLCAwLjAwMDk4LCAwLjAwMDk3MywgMC4wMDA5NjgsIDAuMDAwOTY3IiwgXAotICAgICAgICAgICIwLjAwMTIxOCwgMC4wMDExNTMsIDAuMDAxMDMzLCAwLjAwMTAwNiwgMC4wMDA5OTEsIDAuMDAwOTc5LCAwLjAwMDk3NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogTk9SM1g4ICoKLSAqIC0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoTk9SM1g4KSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDEuODA4Mjg7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwNjc5NjA3OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwNjc2MDA4OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwNjc5NjA3OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzU5NiwgMC4wMDM4MTUsIDAuMDAzOTEyLCAwLjAwMzk0LCAwLjAwMzk3NywgMC4wMDQwMzQsIDAuMDA0MDUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDc2NDIsIDAuMDA3NjQ1LCAwLjAwNzY0NiwgMC4wMDc2NDgsIDAuMDA3NjQ4LCAwLjAwNzY0OSwgMC4wMDc2NTEiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwNjk2MTUzOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwNjkzMzQyOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwNjk2MTUzOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzUwNSwgMC4wMDM5MDcsIDAuMDA0MDAxLCAwLjAwNDAyOCwgMC4wMDQwMzQsIDAuMDA0MDIxLCAwLjAwNDAyNiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNDI4NCwgMC4wMDQyODgsIDAuMDA0Mjg3LCAwLjAwNDI4OCwgMC4wMDQyODgsIDAuMDA0Mjg5LCAwLjAwNDI4OSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQykgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDA3MDMxMjU7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDA3MDMxMjU7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDA3MDMwMDE7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxMDExLCAwLjAwMTAxMiwgMC4wMDEwMTEsIDAuMDAxMDEyLCAwLjAwMTAxMiwgMC4wMDEwMTIsIDAuMDAxMDExIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzMzQxLCAwLjAwMzM0MSwgMC4wMDMzNDIsIDAuMDAzMzQsIDAuMDAzMzM5LCAwLjAwMzMzOSwgMC4wMDMzNCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAxLjAwNDA3OwotICAgIGZ1bmN0aW9uIDogIighKChBK0IpK0MpKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjkzOTksIDAuMTAzMjQ1LCAwLjE3Njg5MywgMC4yMjk2MiwgMC4zMTM2MTUsIDAuMzg3MzU4LCAwLjQ5MjU3OSIsIFwKLSAgICAgICAgICAiMC4wMzQ2OTcsIDAuMTA4NzkzLCAwLjE4MjQ0NSwgMC4yMzUwMTIsIDAuMzE5MjIzLCAwLjM5MjY3LCAwLjQ5NzkwMSIsIFwKLSAgICAgICAgICAiMC4wMzk2NCwgMC4xMTQxMjksIDAuMTg3OTU3LCAwLjI0MDU0MSwgMC4zMjQ1NzksIDAuMzk4MTQxLCAwLjUwMzE5IiwgXAotICAgICAgICAgICIwLjA0MzI4MywgMC4xMTkyNjgsIDAuMTkyOTY1LCAwLjI0NTUyNiwgMC4zMjk3MTMsIDAuNDAzMjkyLCAwLjUwODQ5NiIsIFwKLSAgICAgICAgICAiMC4wNDYyMTYsIDAuMTI0NDQyLCAwLjE5ODEwNywgMC4yNTA3MSwgMC4zMzUwNjYsIDAuNDA4NDY2LCAwLjUxMzc0NCIsIFwKLSAgICAgICAgICAiMC4wNTAwMDYsIDAuMTMyNzUyLCAwLjIwNjQzOCwgMC4yNTkxMzEsIDAuMzQzMjM1LCAwLjQxNjk5MywgMC41MjIzOTEiLCBcCi0gICAgICAgICAgIjAuMDUyNzI1LCAwLjEzOTQ1LCAwLjIxMzg5NiwgMC4yNjYyMjIsIDAuMzUwNTQ1LCAwLjQyMzg5NywgMC41MjkyNzYiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDU4MTUsIDAuMjAxMzQyLCAwLjM1NjUwNywgMC40Njc1NjQsIDAuNjQ0OTYxLCAwLjgwMDU1NSwgMS4wMjI2NyIsIFwKLSAgICAgICAgICAiMC4wNDY1MjcsIDAuMjAxMDM5LCAwLjM1NjQwMiwgMC40NjczNDYsIDAuNjQ0OTYyLCAwLjgwMDU2MSwgMS4wMjIzOCIsIFwKLSAgICAgICAgICAiMC4wNDk1MzUsIDAuMjAxODUyLCAwLjM1NjQxNiwgMC40Njc0LCAwLjY0NTk3MSwgMC44MDE1NzQsIDEuMDIzODEiLCBcCi0gICAgICAgICAgIjAuMDU0MTUsIDAuMjAzNTQ1LCAwLjM1NzQ2MywgMC40Njc1ODQsIDAuNjQ1Nzk5LCAwLjgwMTQxMywgMS4wMjQwMiIsIFwKLSAgICAgICAgICAiMC4wNTg1NjcsIDAuMjA2MDYsIDAuMzU4NjA1LCAwLjQ2ODgxMSwgMC42NDUyMzcsIDAuODAwNDQyLCAxLjAyMjU1IiwgXAotICAgICAgICAgICIwLjA2NTk3NCwgMC4yMTE1NiwgMC4zNjIyNjYsIDAuNDcxNDg3LCAwLjY0NzQzNiwgMC44MDIxODUsIDEuMDIyMzciLCBcCi0gICAgICAgICAgIjAuMDcyNDMzLCAwLjIxNzU5NywgMC4zNjYzMiwgMC40NzQyODUsIDAuNjQ5NTkxLCAwLjgwMzI1NCwgMS4wMjQ0OCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMzM3NSwgMC4wNDI1MDgsIDAuMDcwODUsIDAuMDkxMDA1LCAwLjEyMzIwNywgMC4xNTEzNTEsIDAuMTkxNTk3IiwgXAotICAgICAgICAgICIwLjAyMTkxNSwgMC4wNTA5NDgsIDAuMDc5Mjc3LCAwLjA5OTQxNywgMC4xMzE2NDEsIDAuMTU5ODE0LCAwLjIwMDAxMyIsIFwKLSAgICAgICAgICAiMC4wMjk1MzksIDAuMDYxODI4LCAwLjA5MDA1LCAwLjExMDA5MSwgMC4xNDIyOCwgMC4xNjk3MTYsIDAuMjEwNzY0IiwgXAotICAgICAgICAgICIwLjAzNTAzOCwgMC4wNzI1NiwgMC4xMDA2MTMsIDAuMTIwNjY0LCAwLjE1MjgxNywgMC4xODA5NzEsIDAuMjIxMTE5IiwgXAotICAgICAgICAgICIwLjAzOTM2NSwgMC4wODIwNjgsIDAuMTExNjcyLCAwLjEzMTc3MywgMC4xNjM4LCAwLjE5MTk1MiwgMC4yMzIxNDQiLCBcCi0gICAgICAgICAgIjAuMDQ1MDY3LCAwLjA5NDc3LCAwLjEyODgxMiwgMC4xNDkyMDEsIDAuMTgxMjU0LCAwLjIwOTM1MiwgMC4yNDkzNjciLCBcCi0gICAgICAgICAgIjAuMDQ5NDY4LCAwLjEwNDQ0NiwgMC4xNDE4ODEsIDAuMTY0MTg2LCAwLjE5NjI0OSwgMC4yMjQyNzMsIDAuMjY0MjAyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDIwMjUzLCAwLjA3ODEwMiwgMC4xMzYwNjMsIDAuMTc3NDg5LCAwLjI0Mzc1MSwgMC4zMDE3NjMsIDAuMzg0Nzg3IiwgXAotICAgICAgICAgICIwLjAyNTE1MywgMC4wNzkwMywgMC4xMzYwNDksIDAuMTc3NDUyLCAwLjI0Mzc0NywgMC4zMDE4NjYsIDAuMzg0NjE5IiwgXAotICAgICAgICAgICIwLjAzNDE0NywgMC4wODQ1MywgMC4xMzg5MjksIDAuMTc4OTc5LCAwLjI0NDA2LCAwLjMwMTgxMSwgMC4zODQ2NjIiLCBcCi0gICAgICAgICAgIjAuMDQyMDU0LCAwLjA5MjM0LCAwLjE0NDgxNywgMC4xODM0NzIsIDAuMjQ2ODg3LCAwLjMwMzQyNCwgMC4zODUwNTkiLCBcCi0gICAgICAgICAgIjAuMDQ5MTU2LCAwLjEwMTU5NSwgMC4xNTE3MjUsIDAuMTg5NDQxLCAwLjI1MTM4NywgMC4zMDY3NTgsIDAuMzg3MTk0IiwgXAotICAgICAgICAgICIwLjA1OTA4MywgMC4xMTY3OCwgMC4xNjQ4NjEsIDAuMjAxMTgsIDAuMjYxMDgxLCAwLjMxNTAwMSwgMC4zOTMzNDQiLCBcCi0gICAgICAgICAgIjAuMDY3Njg0LCAwLjEyOTM5LCAwLjE3NzQ4LCAwLjIxMjY0MiwgMC4yNzE0NTUsIDAuMzI0MDcyLCAwLjQwMDc1MyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyNzAzOCwgMC4xMDA4MzYsIDAuMTc0MzU3LCAwLjIyNjg0NSwgMC4zMTEyNzksIDAuMzg0NjMxLCAwLjQ5MDMwNiIsIFwKLSAgICAgICAgICAiMC4wMzMwOTcsIDAuMTA3MjI1LCAwLjE4MDg3MiwgMC4yMzM0NzUsIDAuMzE3NTg3LCAwLjM5MDk5MiwgMC40OTYzNiIsIFwKLSAgICAgICAgICAiMC4wMzk4MTIsIDAuMTE0NTksIDAuMTg4NDAzLCAwLjI0MDk0NiwgMC4zMjUzMjEsIDAuMzk4ODQxLCAwLjUwNDAzNiIsIFwKLSAgICAgICAgICAiMC4wNDQ5NjMsIDAuMTIyMjk5LCAwLjE5NjA1MSwgMC4yNDg2MTYsIDAuMzMyNzgyLCAwLjQwNjUwMSwgMC41MTE5MzIiLCBcCi0gICAgICAgICAgIjAuMDQ5MjcxLCAwLjEzMDAxMiwgMC4yMDM1MDIsIDAuMjU2MzEzLCAwLjM0MDgsIDAuNDE0MjY3LCAwLjUxOTQzNiIsIFwKLSAgICAgICAgICAiMC4wNTQ4OTYsIDAuMTQyMzg3LCAwLjIxNjI3NiwgMC4yNjg1MTksIDAuMzUyNzkzLCAwLjQyNjQzNywgMC41MzA0MDIiLCBcCi0gICAgICAgICAgIjAuMDU5MjE2LCAwLjE1MjQxNywgMC4yMjcwNDcsIDAuMjc5NzYyLCAwLjM2MzQ1MywgMC40MzcyMjksIDAuNTQyMjIyIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQ1ODA5LCAwLjIwMTIxNywgMC4zNTY2MzQsIDAuNDY3NjIyLCAwLjY0NDkzLCAwLjgwMDU2MywgMS4wMjI4MiIsIFwKLSAgICAgICAgICAiMC4wNDcyNjksIDAuMjAxMDMzLCAwLjM1NjQxNCwgMC40Njc1MzQsIDAuNjQ1MTg0LCAwLjgwMDcyMiwgMS4wMjIzNCIsIFwKLSAgICAgICAgICAiMC4wNTI1MywgMC4yMDIxMzcsIDAuMzU2NDI5LCAwLjQ2ODA1OSwgMC42NDUyMzksIDAuODAwMzM3LCAxLjAyMjc2IiwgXAotICAgICAgICAgICIwLjA1OTMxNSwgMC4yMDQ5MDQsIDAuMzU3NzIyLCAwLjQ2NzU5OCwgMC42NDUwNDksIDAuODAwMzUyLCAxLjAyMjUzIiwgXAotICAgICAgICAgICIwLjA2NTIzNiwgMC4yMDkwMSwgMC4zNTk1MzIsIDAuNDY4NjQ5LCAwLjY0NTA5NiwgMC44MDAzNjEsIDEuMDIyNjEiLCBcCi0gICAgICAgICAgIjAuMDc0NDQ3LCAwLjIxNzA0MiwgMC4zNjQ5MzcsIDAuNDcyNjcxLCAwLjY0NzUyNywgMC44MDEwMTgsIDEuMDIyODQiLCBcCi0gICAgICAgICAgIjAuMDgxODM3LCAwLjIyNTIxMiwgMC4zNzA4NDksIDAuNDc3NDk3LCAwLjY0OTk5MiwgMC44MDM2NiwgMS4wMjQyNiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMjEwNiwgMC4wMzk4MzYsIDAuMDY3MjgxLCAwLjA4Njg3NCwgMC4xMTgyMDMsIDAuMTQ1NTg1LCAwLjE4NDgxOSIsIFwKLSAgICAgICAgICAiMC4wMjAxOTQsIDAuMDQ4MzcyLCAwLjA3NTgzOCwgMC4wOTUzMjgsIDAuMTI2NzQsIDAuMTU0MTM0LCAwLjE5MzI0MSIsIFwKLSAgICAgICAgICAiMC4wMjY4OTYsIDAuMDU5MDIsIDAuMDg2Mzc0LCAwLjEwNTk0NCwgMC4xMzc0MiwgMC4xNjQ2MDksIDAuMjAzOTUyIiwgXAotICAgICAgICAgICIwLjAzMTYwMiwgMC4wNjk4NiwgMC4wOTcxNywgMC4xMTY3MDUsIDAuMTQ3NTY2LCAwLjE3NDkyNSwgMC4yMTQwNzgiLCBcCi0gICAgICAgICAgIjAuMDM1Mjg4LCAwLjA3OTA0MSwgMC4xMDc5MjUsIDAuMTI3NDgsIDAuMTU4NjM2LCAwLjE4NTk4NSwgMC4yMjQ2MjEiLCBcCi0gICAgICAgICAgIjAuMDQwMTk4LCAwLjA5MDkyLCAwLjEyNTA4NSwgMC4xNDUyNTksIDAuMTc2MzA2LCAwLjIwMzUyNSwgMC4yNDI2MTIiLCBcCi0gICAgICAgICAgIjAuMDQzNTQ0LCAwLjEwMDE2NiwgMC4xMzgwNjEsIDAuMTYwMTM2LCAwLjE5MDY4NCwgMC4yMTc4NTEsIDAuMjU2ODYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTcyMjUsIDAuMDczNDk0LCAwLjEyOTg2OSwgMC4xNzAyMzEsIDAuMjM0Njg4LCAwLjI5MTAwNSwgMC4zNzE2NzkiLCBcCi0gICAgICAgICAgIjAuMDIyNTk4LCAwLjA3NDU3MiwgMC4xMjk5NTEsIDAuMTcwMTc2LCAwLjIzNDY1NiwgMC4yOTA5NzQsIDAuMzcxNTkyIiwgXAotICAgICAgICAgICIwLjAzMTM4MiwgMC4wODA1MTUsIDAuMTMzMTI1LCAwLjE3MTg2NSwgMC4yMzUwMDEsIDAuMjkxMDA5LCAwLjM3MTYxNyIsIFwKLSAgICAgICAgICAiMC4wMzg4ODMsIDAuMDg4MjcxLCAwLjEzOTA1MywgMC4xNzY1MjcsIDAuMjM4MTQsIDAuMjkyNzk1LCAwLjM3MTk1NCIsIFwKLSAgICAgICAgICAiMC4wNDU3NTksIDAuMDk3MzE2LCAwLjE0NjI2NCwgMC4xODI4MzYsIDAuMjQyNzI1LCAwLjI5NjQyOSwgMC4zNzQ1MzkiLCBcCi0gICAgICAgICAgIjAuMDU1NTUyLCAwLjExMzE0NCwgMC4xNTk2OCwgMC4xOTQ3MDMsIDAuMjUyNTQ3LCAwLjMwNDY2NiwgMC4zODA4ODUiLCBcCi0gICAgICAgICAgIjAuMDYzNjQ0LCAwLjEyNTQyMiwgMC4xNzIxNjksIDAuMjA1NjA5LCAwLjI2NDAxMywgMC4zMTQ2OTcsIDAuMzg5Mjk1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDIxODM0LCAwLjA5NTg0OCwgMC4xNjkzODMsIDAuMjIyMTU2LCAwLjMwNjM1MiwgMC4zNzk0NjYsIDAuNDg1MTIxIiwgXAotICAgICAgICAgICIwLjAyODg2NywgMC4xMDI3NzYsIDAuMTc2NDE3LCAwLjIyOTI4OCwgMC4zMTMyMDQsIDAuMzg3MDgyLCAwLjQ5MTY4NCIsIFwKLSAgICAgICAgICAiMC4wMzc1NywgMC4xMTE5MzYsIDAuMTg1NTM2LCAwLjIzODIxMywgMC4zMjIzMzMsIDAuMzk1NDMsIDAuNTAwNTA0IiwgXAotICAgICAgICAgICIwLjA0Mzk2NCwgMC4xMjExNzIsIDAuMTk0NjAyLCAwLjI0NzEzLCAwLjMzMTE3NSwgMC40MDQ3OTYsIDAuNTA5OTIiLCBcCi0gICAgICAgICAgIjAuMDQ5Mzg3LCAwLjEzMDgxNiwgMC4yMDM3NiwgMC4yNTYzMzgsIDAuMzQwMjg5LCAwLjQxMzk0NCwgMC41MTg3NzgiLCBcCi0gICAgICAgICAgIjAuMDU2NDI5LCAwLjE0NjEyOCwgMC4yMTg4MTQsIDAuMjcxMjEyLCAwLjM1NTAyMywgMC40Mjg0MjksIDAuNTMzMjgiLCBcCi0gICAgICAgICAgIjAuMDYxODEsIDAuMTU5MDEyLCAwLjIzMTk5MSwgMC4yODQyNSwgMC4zNjc4NDEsIDAuNDQxNDM3LCAwLjU0NjI3Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQ1MzU1LCAwLjIwMTA0NCwgMC4zNTY5ODQsIDAuNDY3NTk3LCAwLjY0NTI0NiwgMC44MDE0MjcsIDEuMDIyOTEiLCBcCi0gICAgICAgICAgIjAuMDQ4MzU5LCAwLjIwMTIwNywgMC4zNTY1NTIsIDAuNDY3NTM5LCAwLjY0NDk4OSwgMC44MDA3NzQsIDEuMDIzNDEiLCBcCi0gICAgICAgICAgIjAuMDU2MDU2LCAwLjIwMjM1LCAwLjM1NjY5MSwgMC40Njc0LCAwLjY0NTE0NSwgMC44MDAyMjMsIDEuMDIyNjkiLCBcCi0gICAgICAgICAgIjAuMDY0NDE3LCAwLjIwNjUwNCwgMC4zNTczODIsIDAuNDY3ODMzLCAwLjY0NTcwMSwgMC44MDE1NjksIDEuMDI0MDEiLCBcCi0gICAgICAgICAgIjAuMDcwMzY4LCAwLjIxMjA5MiwgMC4zNjA0NzMsIDAuNDY5NTE1LCAwLjY0NTExMywgMC44MDAzNCwgMS4wMjM4NCIsIFwKLSAgICAgICAgICAiMC4wNzk1ODEsIDAuMjIzNzIsIDAuMzY3OTMsIDAuNDc0NTksIDAuNjQ4MDUzLCAwLjgwMTQ4NywgMS4wMjI0OSIsIFwKLSAgICAgICAgICAiMC4wODY2NDgsIDAuMjM0Mzc2LCAwLjM3NjIxNiwgMC40ODA4MDYsIDAuNjUyMDM3LCAwLjgwNDU2NCwgMS4wMjQxNiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMDQ2LCAwLjAzODA5MywgMC4wNjU2MjIsIDAuMDg1MjY1LCAwLjExNjc3MiwgMC4xNDQyMzYsIDAuMTgzNTM3IiwgXAotICAgICAgICAgICIwLjAxODAzOCwgMC4wNDY2NDYsIDAuMDc0MTg5LCAwLjA5Mzg0NSwgMC4xMjUyNzgsIDAuMTUyOCwgMC4xOTIwOTciLCBcCi0gICAgICAgICAgIjAuMDIzNzE0LCAwLjA1NzMwNCwgMC4wODQ5MjYsIDAuMTA0NiwgMC4xMzYwMTgsIDAuMTYzNDQ3LCAwLjIwMjc4OCIsIFwKLSAgICAgICAgICAiMC4wMjc3MDUsIDAuMDY3NzYzLCAwLjA5NTU0LCAwLjExNTM4MiwgMC4xNDY4NDcsIDAuMTc0MTUyLCAwLjIxMzQ4NCIsIFwKLSAgICAgICAgICAiMC4wMzA2NTUsIDAuMDc2NDcxLCAwLjEwNjI2NSwgMC4xMjU5MTUsIDAuMTU2OTY2LCAwLjE4NDMyNCwgMC4yMjM2MTUiLCBcCi0gICAgICAgICAgIjAuMDM0NjA3LCAwLjA4ODU3NCwgMC4xMjI0MzIsIDAuMTQyOTcyLCAwLjE3NDczLCAwLjIwMjE2MywgMC4yNDE0MjEiLCBcCi0gICAgICAgICAgIjAuMDM3MTI5LCAwLjA5NzEzNiwgMC4xMzQ1ODUsIDAuMTU3MzU4LCAwLjE4OTQyOCwgMC4yMTY3NjUsIDAuMjU1OTk4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE1MDQxLCAwLjA3MjEzNywgMC4xMjkyMjQsIDAuMTcwMzg2LCAwLjIzNTM2MSwgMC4yOTMwMzIsIDAuMzc0MTgzIiwgXAotICAgICAgICAgICIwLjAyMDk2MywgMC4wNzMzNjIsIDAuMTI5NTMyLCAwLjE3MDM0MiwgMC4yMzU2OSwgMC4yOTI2MTcsIDAuMzc0MDU2IiwgXAotICAgICAgICAgICIwLjAyOTU5OSwgMC4wNzkzMjEsIDAuMTMyNjk0LCAwLjE3MTkyMywgMC4yMzU5MTUsIDAuMjkzMDc3LCAwLjM3NDE1IiwgXAotICAgICAgICAgICIwLjAzNjg3LCAwLjA4NzQ0MywgMC4xMzg3NSwgMC4xNzY2NTUsIDAuMjM5MjQyLCAwLjI5NDc4NiwgMC4zNzQ2MDEiLCBcCi0gICAgICAgICAgIjAuMDQzNDc3LCAwLjA5NjgwOCwgMC4xNDU4NTcsIDAuMTgzMTIzLCAwLjI0NDIyMywgMC4yOTg2NzcsIDAuMzc3MjcxIiwgXAotICAgICAgICAgICIwLjA1Mjc1NCwgMC4xMTE5NjksIDAuMTU5NzY0LCAwLjE5NTI2NCwgMC4yNTM1MjksIDAuMzA2NzAyLCAwLjM4MzU5MyIsIFwKLSAgICAgICAgICAiMC4wNjA2MjMsIDAuMTI0Njg2LCAwLjE3MzY5NywgMC4yMDcxMjEsIDAuMjY0NDIxLCAwLjMxNjAxOSwgMC4zOTIwNzgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyNDM5MiwgMC4wMjQ1NzgsIDAuMDI0NjA2LCAwLjAyNDYxLCAwLjAyNDYyMiwgMC4wMjQ2MjYsIDAuMDI0NjMiLCBcCi0gICAgICAgICAgIjAuMDI0MDExLCAwLjAyNDM3MSwgMC4wMjQ0NzMsIDAuMDI0NTA5LCAwLjAyNDU0MywgMC4wMjQ1NTgsIDAuMDI0NTgzIiwgXAotICAgICAgICAgICIwLjAyMzk0OSwgMC4wMjQyMjgsIDAuMDI0MzU5LCAwLjAyNDQxLCAwLjAyNDQ2NSwgMC4wMjQ0OTUsIDAuMDI0NTI0IiwgXAotICAgICAgICAgICIwLjAyNDA0OCwgMC4wMjQxOTksIDAuMDI0MzEyLCAwLjAyNDM2NywgMC4wMjQ0MTMsIDAuMDI0NDY3LCAwLjAyNDUwNiIsIFwKLSAgICAgICAgICAiMC4wMjQzMzcsIDAuMDI0MjY5LCAwLjAyNDMzNywgMC4wMjQzNzgsIDAuMDI0NDI1LCAwLjAyNDQ0NSwgMC4wMjQ0ODgiLCBcCi0gICAgICAgICAgIjAuMDI1MDgsIDAuMDI0NTY1LCAwLjAyNDUxMiwgMC4wMjQ1MDYsIDAuMDI0NTIzLCAwLjAyNDUzNCwgMC4wMjQ1NDkiLCBcCi0gICAgICAgICAgIjAuMDI1OTg5LCAwLjAyNDk4OSwgMC4wMjQ3OTUsIDAuMDI0NzMyLCAwLjAyNDY5MywgMC4wMjQ2NjksIDAuMDI0NjQ5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDU4ODgsIDAuMDA1OTA2LCAwLjAwNTkwOCwgMC4wMDU5MTIsIDAuMDA1OTEyLCAwLjAwNTkxLCAwLjAwNTkxMSIsIFwKLSAgICAgICAgICAiMC4wMDU2NDIsIDAuMDA1NjczLCAwLjAwNTY4MiwgMC4wMDU2ODQsIDAuMDA1NzA3LCAwLjAwNTcwOCwgMC4wMDU3MDkiLCBcCi0gICAgICAgICAgIjAuMDA2MTMzLCAwLjAwNTgyOCwgMC4wMDU3NzQsIDAuMDA1NzI4LCAwLjAwNTcwNiwgMC4wMDU2ODYsIDAuMDA1NzE5IiwgXAotICAgICAgICAgICIwLjAwNjY2OSwgMC4wMDYwNDgsIDAuMDA1OTk1LCAwLjAwNTkyOCwgMC4wMDU4NjQsIDAuMDA1ODI1LCAwLjAwNTc4OCIsIFwKLSAgICAgICAgICAiMC4wMDc1NTYsIDAuMDA2NiwgMC4wMDY0MTgsIDAuMDA2Mjc1LCAwLjAwNjEzNiwgMC4wMDYwNTYsIDAuMDA1OTg1IiwgXAotICAgICAgICAgICIwLjAwOTA2LCAwLjAwNzgwMSwgMC4wMDcxODIsIDAuMDA2OTMyLCAwLjAwNjY1MSwgMC4wMDY1MDMsIDAuMDA2MzUzIiwgXAotICAgICAgICAgICIwLjAxMDYxMiwgMC4wMDgyMTMsIDAuMDA4MDI5LCAwLjAwNzYyMywgMC4wMDczOTcsIDAuMDA3MTMzLCAwLjAwNjg2MSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDIwODc1LCAwLjAyMTA1OSwgMC4wMjEwODcsIDAuMDIxMDk1LCAwLjAyMTEwNSwgMC4wMjExMDcsIDAuMDIxMTA5IiwgXAotICAgICAgICAgICIwLjAyMDUxNiwgMC4wMjA4NTQsIDAuMDIwOTU0LCAwLjAyMDk5LCAwLjAyMTAyMywgMC4wMjEwNDMsIDAuMDIxMDYxIiwgXAotICAgICAgICAgICIwLjAyMDUzNCwgMC4wMjA3NDQsIDAuMDIwODUyLCAwLjAyMDkwOCwgMC4wMjA5NTMsIDAuMDIwOTgxLCAwLjAyMTAwOCIsIFwKLSAgICAgICAgICAiMC4wMjA3ODIsIDAuMDIwNzczLCAwLjAyMDg1LCAwLjAyMDg3NiwgMC4wMjA5MzQsIDAuMDIwOTYyLCAwLjAyMDk4OSIsIFwKLSAgICAgICAgICAiMC4wMjEyMDUsIDAuMDIwOTEyLCAwLjAyMDkxNCwgMC4wMjA5MzYsIDAuMDIwOTYzLCAwLjAyMDk2NywgMC4wMjA5OTgiLCBcCi0gICAgICAgICAgIjAuMDIyMjA5LCAwLjAyMTMxNiwgMC4wMjExNzMsIDAuMDIxMTMyLCAwLjAyMTEwNSwgMC4wMjEwOTIsIDAuMDIxMDc1IiwgXAotICAgICAgICAgICIwLjAyMzI5NCwgMC4wMjE4MjUsIDAuMDIxNDk4LCAwLjAyMTQxMiwgMC4wMjEzMTksIDAuMDIxMjY3LCAwLjAyMTIyOSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzMTQsIDAuMDAzMjM1LCAwLjAwMzI0NywgMC4wMDMyNTIsIDAuMDAzMjU2LCAwLjAwMzI1OCwgMC4wMDMyNTkiLCBcCi0gICAgICAgICAgIjAuMDAyOTAzLCAwLjAwMzEzOSwgMC4wMDMxOSwgMC4wMDMxOTcsIDAuMDAzMjIyLCAwLjAwMzIyOSwgMC4wMDMyMzciLCBcCi0gICAgICAgICAgIjAuMDAzMTU5LCAwLjAwMzIyOSwgMC4wMDMyMzcsIDAuMDAzMjQzLCAwLjAwMzI4MywgMC4wMDMyNjcsIDAuMDAzMjcyIiwgXAotICAgICAgICAgICIwLjAwMzg3NCwgMC4wMDMzODksIDAuMDAzNDE2LCAwLjAwMzM4NCwgMC4wMDM0NjEsIDAuMDAzNDMsIDAuMDAzNCIsIFwKLSAgICAgICAgICAiMC4wMDQ3NTcsIDAuMDAzNzU2LCAwLjAwMzY4OCwgMC4wMDM2MDksIDAuMDAzNTI2LCAwLjAwMzQ3NSwgMC4wMDM1NTUiLCBcCi0gICAgICAgICAgIjAuMDA2MzcsIDAuMDA1MTMsIDAuMDA0NTg1LCAwLjAwNDM2OCwgMC4wMDQxMjksIDAuMDA0MDAzLCAwLjAwMzg3NSIsIFwKLSAgICAgICAgICAiMC4wMDc5MTIsIDAuMDA1NDU3LCAwLjAwNDY3NiwgMC4wMDQ2MTksIDAuMDA0Njk1LCAwLjAwNDQ1OCwgMC4wMDQyNTEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxNzEzNiwgMC4wMTczOTUsIDAuMDE3NDM0LCAwLjAxNzQ0NiwgMC4wMTc0NTYsIDAuMDE3NDY0LCAwLjAxNzQ2NyIsIFwKLSAgICAgICAgICAiMC4wMTY5MDYsIDAuMDE3MTg2LCAwLjAxNzI4NiwgMC4wMTczMjcsIDAuMDE3MzU5LCAwLjAxNzM5MywgMC4wMTc0MDciLCBcCi0gICAgICAgICAgIjAuMDE3MzU1LCAwLjAxNzIwNiwgMC4wMTcyNjQsIDAuMDE3MjkxLCAwLjAxNzMzNCwgMC4wMTczNiwgMC4wMTczNzkiLCBcCi0gICAgICAgICAgIjAuMDE4MjA4LCAwLjAxNzQ5MiwgMC4wMTc0MTgsIDAuMDE3NDA4LCAwLjAxNzQwNSwgMC4wMTc0MSwgMC4wMTc0MjYiLCBcCi0gICAgICAgICAgIjAuMDE4OTM2LCAwLjAxNzg0OSwgMC4wMTc2OTQsIDAuMDE3NjI1LCAwLjAxNzU1NiwgMC4wMTc1MzUsIDAuMDE3NTE1IiwgXAotICAgICAgICAgICIwLjAyMDQ0OCwgMC4wMTg3MzcsIDAuMDE4MjY5LCAwLjAxODA5MywgMC4wMTc5MjQsIDAuMDE3ODYzLCAwLjAxNzc0NyIsIFwKLSAgICAgICAgICAiMC4wMjE4NjgsIDAuMDE5NjEyLCAwLjAxODg1LCAwLjAxODYyOSwgMC4wMTgzNDEsIDAuMDE4MTg2LCAwLjAxODAzNCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwMDQ4LCAwLjAwMDI3MSwgMC4wMDAzMTQsIDAuMDAwMzI4LCAwLjAwMDM0LCAwLjAwMDM0NiwgMC4wMDAzNTIiLCBcCi0gICAgICAgICAgIjAuMDAwMjMzLCAwLjAwMDI3NywgMC4wMDA0LCAwLjAwMDQ0LCAwLjAwMDQ3NywgMC4wMDA0OTgsIDAuMDAwNTE3IiwgXAotICAgICAgICAgICIwLjAwMDA4OSwgMC4wMDAzNzIsIDAuMDAwNDY4LCAwLjAwMDUsIDAuMDAwNTI4LCAwLjAwMDU3NCwgMC4wMDA1OCIsIFwKLSAgICAgICAgICAiMC4wMDA4MTksIDAuMDAwNjIyLCAwLjAwMDYwNCwgMC4wMDA2NTEsIDAuMDAwNjQ5LCAwLjAwMDY5MiwgMC4wMDA2NzciLCBcCi0gICAgICAgICAgIjAuMDAxNzAxLCAwLjAwMTAzMiwgMC4wMDA4NDksIDAuMDAwODEsIDAuMDAwODgsIDAuMDAwODMzLCAwLjAwMDgwNSIsIFwKLSAgICAgICAgICAiMC4wMDMxNDYsIDAuMDAxNTE4LCAwLjAwMTYxMSwgMC4wMDE0MjksIDAuMDAxMzIzLCAwLjAwMTIyNCwgMC4wMDExMjUiLCBcCi0gICAgICAgICAgIjAuMDA0NTksIDAuMDAyMzUzLCAwLjAwMjI3MiwgMC4wMDE5NzEsIDAuMDAxNjgsIDAuMDAxNTA0LCAwLjAwMTM2MiIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IE5PUjRCWEwgKgotICogLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoTk9SNEJYTCkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjIzOTAyNTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQU4pICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY2MzA3MzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2NjMwNzM7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjYyOTk3OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDY4MiwgMC4wMDA3MTEsIDAuMDAwNzk3LCAwLjAwMDkwNiwgMC4wMDEwMzUsIDAuMDAxMjY3LCAwLjAwMTQ2OCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTcxOSwgMC4wMDE3MzYsIDAuMDAxODIyLCAwLjAwMTkzNSwgMC4wMDIwNjcsIDAuMDAyMjkyLCAwLjAwMjQ5Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2Mjc5OTc7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjI2MTkzOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDYyNzk5NzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxMTUsIDAuMDAwMTE1LCAwLjAwMDExNSwgMC4wMDAxMTUsIDAuMDAwMTE1LCAwLjAwMDExNSwgMC4wMDAxMTUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyNTQsIDAuMDAwMjU0LCAwLjAwMDI1NCwgMC4wMDAyNTQsIDAuMDAwMjUzLCAwLjAwMDI1MywgMC4wMDAyNTMiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEMpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY0MTMxMjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2Mzk4MTE7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjQxMzEyOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDA4OCwgMC4wMDAwODgsIDAuMDAwMDg4LCAwLjAwMDA4OCwgMC4wMDAwODgsIDAuMDAwMDg4LCAwLjAwMDA4OCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDIzMiwgMC4wMDAyMzIsIDAuMDAwMjMzLCAwLjAwMDIzMiwgMC4wMDAyMzIsIDAuMDAwMjMyLCAwLjAwMDIzMiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjc0NDY2OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDY3NDQ2NjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2NzQxODY7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMDcxLCAwLjAwMDA3MSwgMC4wMDAwNzEsIDAuMDAwMDcxLCAwLjAwMDA3MSwgMC4wMDAwNzEsIDAuMDAwMDcxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjcxLCAwLjAwMDI3MSwgMC4wMDAyNzEsIDAuMDAwMjcxLCAwLjAwMDI3MSwgMC4wMDAyNzEsIDAuMDAwMjciKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4wNTI5MTc5OwotICAgIGZ1bmN0aW9uIDogIighKCgoKCFBTikrQikrQykrRCkpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjIxNzU4LCAwLjI1NzYzNywgMC41ODI2NTMsIDEuMTIzNDcsIDEuNjY1NjMsIDIuOTI0NTgsIDMuNjQ0MzkiLCBcCi0gICAgICAgICAgIjAuMjI4NjA0LCAwLjI2NDY0NCwgMC41ODk3MDgsIDEuMTMwODUsIDEuNjcxMzEsIDIuOTMzNiwgMy42NTI3MiIsIFwKLSAgICAgICAgICAiMC4yMzQwODcsIDAuMjcwMTI1LCAwLjU5NTIwNiwgMS4xMzU3OSwgMS42Nzc5NSwgMi45MzY5NywgMy42NTY3NiIsIFwKLSAgICAgICAgICAiMC4yMzc5MTQsIDAuMjczODg4LCAwLjU5OTA5MSwgMS4xMzkyMiwgMS42ODA0NSwgMi45NDI2MiwgMy42NjA4NyIsIFwKLSAgICAgICAgICAiMC4yNDA4NjMsIDAuMjc3MDI1LCAwLjYwMTQwMiwgMS4xNDMxNSwgMS42ODQ4NywgMi45NDQwMiwgMy42NjM4MyIsIFwKLSAgICAgICAgICAiMC4yNDQ4MiwgMC4yODA4OTQsIDAuNjA1Mzk1LCAxLjE0NjUxLCAxLjY4NjYzLCAyLjk0NzksIDMuNjY3MTQiLCBcCi0gICAgICAgICAgIjAuMjQ3Nzk4LCAwLjI4MzY3OCwgMC42MDgyNzksIDEuMTQ5MzIsIDEuNjg5NDcsIDIuOTUwNDcsIDMuNjcxMTkiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuNDI4NTYsIDAuNTA0NzM3LCAxLjE5MDU4LCAyLjMzNDE3LCAzLjQ3OTQsIDYuMTQ3NjUsIDcuNjcwNDkiLCBcCi0gICAgICAgICAgIjAuNDI4Mzc2LCAwLjUwNDY2MiwgMS4xOTA2LCAyLjMzNTI3LCAzLjQ3NzYyLCA2LjE0NTkyLCA3LjY3NTI4IiwgXAotICAgICAgICAgICIwLjQyODc3NywgMC41MDUwMjksIDEuMTkwODcsIDIuMzM0MTcsIDMuNDc5NjIsIDYuMTQ3MTYsIDcuNjcwMTYiLCBcCi0gICAgICAgICAgIjAuNDI4MzE3LCAwLjUwNDYwNywgMS4xOTExLCAyLjMzNDMzLCAzLjQ3NzcsIDYuMTQ1OTksIDcuNjczOTIiLCBcCi0gICAgICAgICAgIjAuNDI4MjUyLCAwLjUwNTAyNSwgMS4xOTE4OSwgMi4zMzQ0OCwgMy40Nzg2LCA2LjE0NTM3LCA3LjY3MDA4IiwgXAotICAgICAgICAgICIwLjQyODQzNSwgMC41MDQ4MjgsIDEuMTkxNjMsIDIuMzM0MSwgMy40ODA0MiwgNi4xNTEzMiwgNy42NzE1IiwgXAotICAgICAgICAgICIwLjQyODM1MiwgMC41MDQzNTIsIDEuMTkxMzYsIDIuMzM3MDgsIDMuNDgwNTIsIDYuMTUxNDEsIDcuNjc0MjYiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDcwNzk4LCAwLjA4MDU1LCAwLjE2NzgxNiwgMC4zMTI3MTksIDAuNDU3NTE2LCAwLjc5NTM5NSwgMC45ODg2MzQiLCBcCi0gICAgICAgICAgIjAuMDc3ODQ1LCAwLjA4NzU5MiwgMC4xNzQ4MzcsIDAuMzE5ODU4LCAwLjQ2NDc3MSwgMC44MDI1NzUsIDAuOTk1NjU4IiwgXAotICAgICAgICAgICIwLjA4MzQzOCwgMC4wOTMxODUsIDAuMTgwNDA2LCAwLjMyNTQ1MiwgMC40NzAxNjksIDAuODA4MjA2LCAxLjAwMSIsIFwKLSAgICAgICAgICAiMC4wODczNzYsIDAuMDk3MTU4LCAwLjE4NDMwNiwgMC4zMjkyMjcsIDAuNDc0MTEzLCAwLjgxMjE5NywgMS4wMDQ4NyIsIFwKLSAgICAgICAgICAiMC4wOTA3MTgsIDAuMTAwNDQ0LCAwLjE4NzU3NywgMC4zMzI1NzksIDAuNDc3Mzg1LCAwLjgxNTI2OCwgMS4wMDgyMyIsIFwKLSAgICAgICAgICAiMC4wOTQ5MzMsIDAuMTA0ODYxLCAwLjE5MjEzMSwgMC4zMzY5OTksIDAuNDgxNzMzLCAwLjgxOTUwMiwgMS4wMTI1IiwgXAotICAgICAgICAgICIwLjA5ODEzNiwgMC4xMDc4OTcsIDAuMTk1Mzg3LCAwLjM0MDA5NCwgMC40ODQ5MjQsIDAuODIyODA4LCAxLjAxNTgzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExNTYzOSwgMC4xMzUzNjYsIDAuMzEzNDEsIDAuNjEwMzM0LCAwLjkwNzEwMSwgMS42MDAxNCwgMS45OTU3OCIsIFwKLSAgICAgICAgICAiMC4xMTU2MjksIDAuMTM1Mzc2LCAwLjMxMzQ0MywgMC42MTA0NDUsIDAuOTA3MzQ5LCAxLjYwMDI2LCAxLjk5NjAzIiwgXAotICAgICAgICAgICIwLjExNTgyNiwgMC4xMzU1NiwgMC4zMTMzMTcsIDAuNjEwMzUxLCAwLjkwNzA4NiwgMS42MDAxMSwgMS45OTU3OCIsIFwKLSAgICAgICAgICAiMC4xMTU5OTgsIDAuMTM1NjQ5LCAwLjMxMzQyMiwgMC42MTAyNTQsIDAuOTA3MTg2LCAxLjYwMDI1LCAxLjk5NTUzIiwgXAotICAgICAgICAgICIwLjExNjExNCwgMC4xMzU3NTcsIDAuMzEzNDMsIDAuNjEwNTE2LCAwLjkwNzEwNCwgMS41OTk3NywgMS45OTU3NyIsIFwKLSAgICAgICAgICAiMC4xMTY1NjQsIDAuMTM2MDIxLCAwLjMxMzQ4NCwgMC42MTAyNTcsIDAuOTA3MjU0LCAxLjU5OTcxLCAxLjk5NTUzIiwgXAotICAgICAgICAgICIwLjExNjg5MSwgMC4xMzY0ODgsIDAuMzEzNzI0LCAwLjYxMDM3OSwgMC45MDcyNjksIDEuNTk5OTcsIDEuOTk1MjgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjExMjc1LCAwLjI0NzQyNywgMC41NzI3MDEsIDEuMTEzNDYsIDEuNjUzOTksIDIuOTE0OTUsIDMuNjM0MjciLCBcCi0gICAgICAgICAgIjAuMjE2ODEzLCAwLjI1MzAyOSwgMC41Nzc3MDUsIDEuMTE3ODksIDEuNjU5NjksIDIuOTIxMTEsIDMuNjQwMDgiLCBcCi0gICAgICAgICAgIjAuMjIyMTgzLCAwLjI1ODEwNSwgMC41ODI3OCwgMS4xMjQ1NywgMS42NjU0MiwgMi45MjY1NywgMy42NDQ5MiIsIFwKLSAgICAgICAgICAiMC4yMjcxMzcsIDAuMjYzNDA5LCAwLjU4ODM1NywgMS4xMjg3MiwgMS42NzA1OSwgMi45MzIxNywgMy42NTEzNSIsIFwKLSAgICAgICAgICAiMC4yMzIyNiwgMC4yNjgyOTMsIDAuNTkzNTk0LCAxLjEzNTI2LCAxLjY3NjY1LCAyLjkzNjI5LCAzLjY1NjUyIiwgXAotICAgICAgICAgICIwLjI0MDg1OCwgMC4yNzY3NDcsIDAuNjAxMzA1LCAxLjE0MjE5LCAxLjY4Mjc4LCAyLjk0Mzc1LCAzLjY2Mzc3IiwgXAotICAgICAgICAgICIwLjI0Nzk5OSwgMC4yODM5NjgsIDAuNjA4MzU4LCAxLjE0OTcyLCAxLjY5MDc1LCAyLjk1MTY1LCAzLjY3MDY3Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjQyODQwMSwgMC41MDUwMDQsIDEuMTkxMDMsIDIuMzM0MjksIDMuNDc3NjEsIDYuMTUxODYsIDcuNjc0MTUiLCBcCi0gICAgICAgICAgIjAuNDI4ODA3LCAwLjUwNDU0OCwgMS4xOTA2NSwgMi4zMzU3NSwgMy40Nzc3NSwgNi4xNDczOSwgNy42NzA2MiIsIFwKLSAgICAgICAgICAiMC40MjgzMywgMC41MDUwMTUsIDEuMTkyLCAyLjMzNTA4LCAzLjQ3OTQsIDYuMTUyNDYsIDcuNjczMDQiLCBcCi0gICAgICAgICAgIjAuNDI5MDM0LCAwLjUwNDY1OCwgMS4xOTA2LCAyLjMzNjUxLCAzLjQ3NzM5LCA2LjE0Njc1LCA3LjY2OTE0IiwgXAotICAgICAgICAgICIwLjQyOTkxMiwgMC41MDU4OTUsIDEuMTkwNzYsIDIuMzM1MzYsIDMuNDc5ODEsIDYuMTQ2OTEsIDcuNjc0NjQiLCBcCi0gICAgICAgICAgIjAuNDMzMzM5LCAwLjUwODAwMSwgMS4xOTEzNSwgMi4zMzY1OCwgMy40ODAwMiwgNi4xNTAwNiwgNy42NzAwOSIsIFwKLSAgICAgICAgICAiMC40MzY2NTksIDAuNTExMzgxLCAxLjE5MiwgMi4zMzQxNywgMy40Nzc3NCwgNi4xNDYwNCwgNy42NzM2MiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTk0NjksIDAuMDY5MTU5LCAwLjE1NjE3MywgMC4zMDA4OTcsIDAuNDQ1NjE4LCAwLjc4MzM5MiwgMC45NzY0NzMiLCBcCi0gICAgICAgICAgIjAuMDY3Njc1LCAwLjA3NzM1NSwgMC4xNjQzMzEsIDAuMzA5MTMzLCAwLjQ1NDA5MiwgMC43OTE1NDgsIDAuOTg0NzQyIiwgXAotICAgICAgICAgICIwLjA3ODAzNCwgMC4wODc3MjEsIDAuMTczODk1LCAwLjMxOTQ5LCAwLjQ2NDQzNCwgMC44MDE4ODIsIDAuOTk1NDMxIiwgXAotICAgICAgICAgICIwLjA4ODM3NSwgMC4wOTgwNTgsIDAuMTg0ODQsIDAuMzI5NjM5LCAwLjQ3NDUxNCwgMC44MTIxMzQsIDEuMDA1MSIsIFwKLSAgICAgICAgICAiMC4wOTg5MzgsIDAuMTA4ODksIDAuMTk0NjQ3LCAwLjMzOTAzNSwgMC40ODQxMjQsIDAuODIxNzk0LCAxLjAxNTAyIiwgXAotICAgICAgICAgICIwLjExNDI4OCwgMC4xMjUyMTMsIDAuMjExMzEsIDAuMzU1NzE2LCAwLjQ5ODM0NywgMC44MzgyNjQsIDEuMDMwNzciLCBcCi0gICAgICAgICAgIjAuMTI1Mjc1LCAwLjEzNzQ0NSwgMC4yMjU4NCwgMC4zNzAwNzEsIDAuNTE0NzgsIDAuODUyNjU3LCAxLjA0NTM1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExMzA5NywgMC4xMzI4NzEsIDAuMzExMDE3LCAwLjYwODE4MSwgMC45MDQ4MDgsIDEuNTk3MDgsIDEuOTkzMzIiLCBcCi0gICAgICAgICAgIjAuMTEzMzMsIDAuMTMyOTQ5LCAwLjMxMTAwNCwgMC42MDc4NzcsIDAuOTA1MDM3LCAxLjU5NzA0LCAxLjk5MzM5IiwgXAotICAgICAgICAgICIwLjExNzM5LCAwLjEzNjEzNCwgMC4zMTEwMTEsIDAuNjA4MDMxLCAwLjkwNTA4NCwgMS41OTczOCwgMS45OTM3OCIsIFwKLSAgICAgICAgICAiMC4xMjQxNjMsIDAuMTQyMjg4LCAwLjMxMjQ3NywgMC42MDgwODYsIDAuOTA1MDMzLCAxLjU5NzU2LCAxLjk5MzgyIiwgXAotICAgICAgICAgICIwLjEzMjQzNywgMC4xNDk0OTMsIDAuMzE2MjMxLCAwLjYwNzkyNSwgMC45MDQ3MjYsIDEuNTk3MzcsIDEuOTkzNjYiLCBcCi0gICAgICAgICAgIjAuMTQ2NDMxLCAwLjE2MzA5OCwgMC4zMjUwOTQsIDAuNjEwMzgsIDAuOTA0NzI3LCAxLjU5NzMzLCAxLjk5Mjg5IiwgXAotICAgICAgICAgICIwLjE2MDM1MywgMC4xNzY2NDcsIDAuMzM0NjA4LCAwLjYxNTE0LCAwLjkwNjE5LCAxLjU5NzQ1LCAxLjk5MzI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIwNjc5NCwgMC4yNDI5NDgsIDAuNTY3MzgxLCAxLjEwNzk4LCAxLjY0OTY2LCAyLjkxMDM1LCAzLjYyOTgxIiwgXAotICAgICAgICAgICIwLjIxMjYyNiwgMC4yNDg3MTcsIDAuNTczMzk2LCAxLjExNTQsIDEuNjU1MDQsIDIuOTE3MjcsIDMuNjM1MzEiLCBcCi0gICAgICAgICAgIjAuMjE5NTQ4LCAwLjI1NTg1OSwgMC41ODAzMDcsIDEuMTIyNTEsIDEuNjYyOTEsIDIuOTIyNTEsIDMuNjQyNzciLCBcCi0gICAgICAgICAgIjAuMjI2ODIxLCAwLjI2Mjg4MiwgMC41ODc0MDEsIDEuMTI5MzEsIDEuNjY5MzUsIDIuOTI5ODgsIDMuNjQ5NzYiLCBcCi0gICAgICAgICAgIjAuMjM0MDMyLCAwLjI3MDMyOSwgMC41OTQ5OTMsIDEuMTM2OTEsIDEuNjc4NiwgMi45Mzc2NSwgMy42NTc0IiwgXAotICAgICAgICAgICIwLjI0NjE4MywgMC4yODIwMDMsIDAuNjA2NDk4LCAxLjE0NzMyLCAxLjY4NzgxLCAyLjk0OTE4LCAzLjY2OTgxIiwgXAotICAgICAgICAgICIwLjI1NjgxLCAwLjI5Mjg2NCwgMC42MTcwNTksIDEuMTU3NTUsIDEuNjk3OCwgMi45NTk1OCwgMy42NzkwMSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC40Mjg3NDcsIDAuNTA0NjIsIDEuMTkwNjMsIDIuMzM2NDQsIDMuNDc3NzcsIDYuMTQ2NzIsIDcuNjcwMjkiLCBcCi0gICAgICAgICAgIjAuNDI4NDE1LCAwLjUwNTEzLCAxLjE5MDc5LCAyLjMzNTYyLCAzLjQ4MjA1LCA2LjE1MjczLCA3LjY3MzYxIiwgXAotICAgICAgICAgICIwLjQyODY4MiwgMC41MDQ1NTMsIDEuMTkyMDEsIDIuMzM1NjksIDMuNDc3NDEsIDYuMTQ5NzgsIDcuNjc0MDgiLCBcCi0gICAgICAgICAgIjAuNDI4NzE4LCAwLjUwNDk5NCwgMS4xOTE3MSwgMi4zMzUxOCwgMy40NzgzOCwgNi4xNDkzNiwgNy42NzIxNCIsIFwKLSAgICAgICAgICAiMC40MzA1NDUsIDAuNTA2MDg5LCAxLjE5MjE2LCAyLjMzNTI4LCAzLjQ3OTk5LCA2LjE0NTMsIDcuNjcwMTMiLCBcCi0gICAgICAgICAgIjAuNDM1MTE2LCAwLjUwOTM5OCwgMS4xOTE3NiwgMi4zMzY3NywgMy40Nzk5NywgNi4xNDUzMiwgNy42NzQ1NyIsIFwKLSAgICAgICAgICAiMC40NDA0MjQsIDAuNTEzODg5LCAxLjE5MjI4LCAyLjMzNjcyLCAzLjQ4MDQ3LCA2LjE0NjQ3LCA3LjY3MzY4Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1Nzg2MywgMC4wNjc1MjMsIDAuMTU0NDMzLCAwLjI5OTE2NSwgMC40NDM4MjgsIDAuNzgxNTE5LCAwLjk3NDgwMSIsIFwKLSAgICAgICAgICAiMC4wNjYxNDQsIDAuMDc1Nzk5LCAwLjE2MjY2NCwgMC4zMDc0ODIsIDAuNDUyMTc4LCAwLjc4OTg4MiwgMC45ODI5MzMiLCBcCi0gICAgICAgICAgIjAuMDc2NTUxLCAwLjA4NjIwMiwgMC4xNzIyNDgsIDAuMzE3NzIzLCAwLjQ2MjUxOSwgMC43OTk5NjEsIDAuOTkzODc0IiwgXAotICAgICAgICAgICIwLjA4Njg5MywgMC4wOTY1NTIsIDAuMTgzMjEzLCAwLjMyODA2MSwgMC40NzI4OTIsIDAuODEwNjk1LCAxLjAwMzM2IiwgXAotICAgICAgICAgICIwLjA5Nzc0NywgMC4xMDczLCAwLjE5MzAyMSwgMC4zMzc5MDksIDAuNDgzMDUzLCAwLjgyMDA1MiwgMS4wMTM3MiIsIFwKLSAgICAgICAgICAiMC4xMTI1MTQsIDAuMTIzNTAxLCAwLjIwOTY4OCwgMC4zNTQwNTgsIDAuNDk2NzM0LCAwLjgzNjU2LCAxLjAyOTA2IiwgXAotICAgICAgICAgICIwLjEyMzA2NiwgMC4xMzUzNTMsIDAuMjI0MjE1LCAwLjM2ODM5NywgMC41MTMwOTcsIDAuODUwODQ3LCAxLjA0MzU1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExMDk0NywgMC4xMzA3OCwgMC4zMDg5MzEsIDAuNjA1NjY5LCAwLjkwMjIyMiwgMS41OTQ3NywgMS45OTExOCIsIFwKLSAgICAgICAgICAiMC4xMTEyMjIsIDAuMTMwODA5LCAwLjMwODkyMywgMC42MDU3NTIsIDAuOTAyNTA0LCAxLjU5NDgxLCAxLjk5MTI3IiwgXAotICAgICAgICAgICIwLjExNTQyNiwgMC4xMzQxMzYsIDAuMzA4OTMxLCAwLjYwNTY3MywgMC45MDI3MjYsIDEuNTk1MjgsIDEuOTkxNDQiLCBcCi0gICAgICAgICAgIjAuMTIyMjkxLCAwLjE0MDM0OCwgMC4zMTA1MDgsIDAuNjA1NzU3LCAwLjkwMjc5LCAxLjU5NTA3LCAxLjk5MTI2IiwgXAotICAgICAgICAgICIwLjEzMDE0LCAwLjE0NzUxLCAwLjMxNDMwNCwgMC42MDU3MDIsIDAuOTAyNTI2LCAxLjU5NTA1LCAxLjk5MTM3IiwgXAotICAgICAgICAgICIwLjE0NDc4NCwgMC4xNjEzMjEsIDAuMzIzMDU2LCAwLjYwODM2OSwgMC45MDI0MTcsIDEuNTk1NDEsIDEuOTkxNzQiLCBcCi0gICAgICAgICAgIjAuMTU4ODAxLCAwLjE3NDkzOCwgMC4zMzI1NTgsIDAuNjEyOTk5LCAwLjkwMzM0NCwgMS41OTQ5NCwgMS45OTExNCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJEIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMDAwMywgMC4yMzYyNDUsIDAuNTYwNDgzLCAxLjEwMTcsIDEuNjQxNTIsIDIuOTAyNzQsIDMuNjIyNTYiLCBcCi0gICAgICAgICAgIjAuMjA2NTY0LCAwLjI0MjgyLCAwLjU2NzEyNSwgMS4xMDg2NSwgMS42NDk2NiwgMi45MTEzLCAzLjYyOTkxIiwgXAotICAgICAgICAgICIwLjIxNDkzMSwgMC4yNTA4NTIsIDAuNTc1NDE3LCAxLjExNjE3LCAxLjY1NzkzLCAyLjkxODg0LCAzLjYzNzk3IiwgXAotICAgICAgICAgICIwLjIyMzQxNywgMC4yNTkzOTEsIDAuNTg0MDIzLCAxLjEyNTYyLCAxLjY2NjM5LCAyLjkyNjAyLCAzLjY0NTk5IiwgXAotICAgICAgICAgICIwLjIzMjA4MywgMC4yNjgyMjYsIDAuNTkyMDM2LCAxLjEzNDA1LCAxLjY3NTI0LCAyLjkzNDcxLCAzLjY1NDM1IiwgXAotICAgICAgICAgICIwLjI0NjQyMiwgMC4yODIyMjMsIDAuNjA1OTQzLCAxLjE0NTk1LCAxLjY4ODcyLCAyLjk0Nzg3LCAzLjY2Nzc0IiwgXAotICAgICAgICAgICIwLjI1OTE2LCAwLjI5NDg1NSwgMC42MTgxNTQsIDEuMTU3OTUsIDEuNjk4NDcsIDIuOTU5NTYsIDMuNjc5NTQiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuNDI4NzU0LCAwLjUwNDU2MiwgMS4xOTE3OSwgMi4zMzUwMywgMy40ODAxOSwgNi4xNTAxMywgNy42NzMzNSIsIFwKLSAgICAgICAgICAiMC40MjgyODYsIDAuNTA0NTg4LCAxLjE5MTY4LCAyLjMzNTI1LCAzLjQ3NzU2LCA2LjE1Mjg0LCA3LjY3NDQ0IiwgXAotICAgICAgICAgICIwLjQyODIzNSwgMC41MDQ5NzQsIDEuMTkyMDYsIDIuMzM2NzgsIDMuNDc3MzksIDYuMTQ3MjIsIDcuNjcwNiIsIFwKLSAgICAgICAgICAiMC40Mjg4MTksIDAuNTA0NzY3LCAxLjE5MDYsIDIuMzM1MjQsIDMuNDc5MzgsIDYuMTQ3NTgsIDcuNjY5ODciLCBcCi0gICAgICAgICAgIjAuNDMwODExLCAwLjUwNTU2MywgMS4xOTE2LCAyLjMzNTE3LCAzLjQ3ODY1LCA2LjE0NTY5LCA3LjY3MDI5IiwgXAotICAgICAgICAgICIwLjQzNjcyMywgMC41MTAyMjEsIDEuMTkwODgsIDIuMzM2NzIsIDMuNDc4NTgsIDYuMTQ1MTgsIDcuNjczOTIiLCBcCi0gICAgICAgICAgIjAuNDQzNjYzLCAwLjUxNjUyNCwgMS4xOTA1MywgMi4zMzQyMSwgMy40ODE3MiwgNi4xNDU3LCA3LjY3NDIiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU2MjE2LCAwLjA2NTg2OCwgMC4xNTI3MDksIDAuMjk3NDUzLCAwLjQ0MjI1NiwgMC43Nzk3ODEsIDAuOTczMDU3IiwgXAotICAgICAgICAgICIwLjA2NDU1OSwgMC4wNzQyMDcsIDAuMTYxMDM5LCAwLjMwNTc1NywgMC40NTA0ODQsIDAuNzg4MTQ1LCAwLjk4MTg0OCIsIFwKLSAgICAgICAgICAiMC4wNzQ3MDEsIDAuMDg0Mjk4LCAwLjE3MDg3NSwgMC4zMTYyMTUsIDAuNDYwNDEsIDAuNzk4Mjk3LCAwLjk5MTY0OCIsIFwKLSAgICAgICAgICAiMC4wODUxNTUsIDAuMDk0NzA5LCAwLjE4MTU4OCwgMC4zMjYzNDYsIDAuNDcxMDE0LCAwLjgwODEzMiwgMS4wMDE2MSIsIFwKLSAgICAgICAgICAiMC4wOTU1NjEsIDAuMTA1MjE1LCAwLjE5MTkzLCAwLjMzNjAxNywgMC40ODExMiwgMC44MTg2NTIsIDEuMDEyMzIiLCBcCi0gICAgICAgICAgIjAuMTEwMDUxLCAwLjEyMTEyMywgMC4yMDg1MTUsIDAuMzUyOTAxLCAwLjQ5NTU1MSwgMC44MzU0MTEsIDEuMDI3OTMiLCBcCi0gICAgICAgICAgIjAuMTIwMzE2LCAwLjEzMjY2OSwgMC4yMjMwNjIsIDAuMzY3NDQ5LCAwLjUxMjEzMiwgMC44NDk3LCAxLjA0MjUzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwOTAzNSwgMC4xMjkwMzIsIDAuMzA3MTE2LCAwLjYwNDAyNSwgMC45MDA4NzUsIDEuNTkzNDIsIDEuOTkxMzMiLCBcCi0gICAgICAgICAgIjAuMTA5MzIzLCAwLjEyOTA2MywgMC4zMDc1NjgsIDAuNjAzNzcyLCAwLjkwMTM5OSwgMS41OTMzOCwgMS45OTA3MSIsIFwKLSAgICAgICAgICAiMC4xMTM5MzIsIDAuMTMyNDMzLCAwLjMwNzQ0NywgMC42MDQxOTUsIDAuOTAwNDg2LCAxLjU5MzA0LCAxLjk5MDc3IiwgXAotICAgICAgICAgICIwLjEyMDg1NCwgMC4xMzg4MDUsIDAuMzA5MTAzLCAwLjYwNDI4NiwgMC45MDA2NjIsIDEuNTkzNDEsIDEuOTkxNzEiLCBcCi0gICAgICAgICAgIjAuMTI5MTc3LCAwLjE0NjQ3MiwgMC4zMTI2NjYsIDAuNjAzOTY2LCAwLjkwMTQyOSwgMS41OTM3NCwgMS45OTA1MiIsIFwKLSAgICAgICAgICAiMC4xNDQxOTIsIDAuMTYwNjYxLCAwLjMyMTM5OSwgMC42MDczMzgsIDAuOTAwODQ1LCAxLjU5NTE0LCAxLjk5MzA0IiwgXAotICAgICAgICAgICIwLjE1ODM0OSwgMC4xNzQxNjIsIDAuMzMwMDU0LCAwLjYxMjAwMSwgMC45MDE3MTgsIDEuNTkzMjcsIDEuOTg5MjYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyNjg3LCAwLjAwMjY4OCwgMC4wMDI2ODgsIDAuMDAyNjg4LCAwLjAwMjY4OCwgMC4wMDI2ODcsIDAuMDAyNjg3IiwgXAotICAgICAgICAgICIwLjAwMjcxNSwgMC4wMDI3MTUsIDAuMDAyNzE3LCAwLjAwMjcxNywgMC4wMDI3MTYsIDAuMDAyNzE3LCAwLjAwMjcxNiIsIFwKLSAgICAgICAgICAiMC4wMDI3OSwgMC4wMDI3OTEsIDAuMDAyNzkzLCAwLjAwMjc5MywgMC4wMDI3OTMsIDAuMDAyNzkzLCAwLjAwMjc5MiIsIFwKLSAgICAgICAgICAiMC4wMDI5MDYsIDAuMDAyOTA2LCAwLjAwMjkwOCwgMC4wMDI5MDgsIDAuMDAyOTA4LCAwLjAwMjkwOCwgMC4wMDI5MDgiLCBcCi0gICAgICAgICAgIjAuMDAzMDM1LCAwLjAwMzAzNiwgMC4wMDMwNSwgMC4wMDMwMzcsIDAuMDAzMDM2LCAwLjAwMzAzOSwgMC4wMDMwMzgiLCBcCi0gICAgICAgICAgIjAuMDAzMjU2LCAwLjAwMzI2OSwgMC4wMDMyNTksIDAuMDAzMjcxLCAwLjAwMzI1NywgMC4wMDMyNywgMC4wMDMyNjkiLCBcCi0gICAgICAgICAgIjAuMDAzNDU2LCAwLjAwMzQ3NiwgMC4wMDM0NTcsIDAuMDAzNDYsIDAuMDAzNDU5LCAwLjAwMzQ1OCwgMC4wMDM0NzYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI2OSwgMC4wMDI2ODksIDAuMDAyNjg5LCAwLjAwMjY4OSwgMC4wMDI2ODksIDAuMDAyNjg5LCAwLjAwMjY4OSIsIFwKLSAgICAgICAgICAiMC4wMDI3MDcsIDAuMDAyNzA3LCAwLjAwMjcwNywgMC4wMDI3MDcsIDAuMDAyNzA2LCAwLjAwMjcwNiwgMC4wMDI3MDYiLCBcCi0gICAgICAgICAgIjAuMDAyNzkxLCAwLjAwMjc5MSwgMC4wMDI3OTEsIDAuMDAyNzkxLCAwLjAwMjc5MSwgMC4wMDI3OSwgMC4wMDI3OSIsIFwKLSAgICAgICAgICAiMC4wMDI5MTEsIDAuMDAyOTAyLCAwLjAwMjkxMSwgMC4wMDI5MSwgMC4wMDI5MDEsIDAuMDAyOTA5LCAwLjAwMjkwOSIsIFwKLSAgICAgICAgICAiMC4wMDMwMjksIDAuMDAzMDM4LCAwLjAwMzA0LCAwLjAwMzAyNywgMC4wMDMwMjgsIDAuMDAzMDI3LCAwLjAwMzAzOCIsIFwKLSAgICAgICAgICAiMC4wMDMyNDUsIDAuMDAzMjUyLCAwLjAwMzI1LCAwLjAwMzI1MSwgMC4wMDMyNDQsIDAuMDAzMjQzLCAwLjAwMzI0MyIsIFwKLSAgICAgICAgICAiMC4wMDM0NTEsIDAuMDAzNDUsIDAuMDAzNDM0LCAwLjAwMzQ0NywgMC4wMDM0NDcsIDAuMDAzNDQ2LCAwLjAwMzQzMiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjUwMiwgMC4wMDI1MDMsIDAuMDAyNTA0LCAwLjAwMjUwNSwgMC4wMDI1MDQsIDAuMDAyNTA0LCAwLjAwMjUwNCIsIFwKLSAgICAgICAgICAiMC4wMDI0OTEsIDAuMDAyNDkzLCAwLjAwMjQ5OSwgMC4wMDI1MDIsIDAuMDAyNTAzLCAwLjAwMjUwNCwgMC4wMDI1MDQiLCBcCi0gICAgICAgICAgIjAuMDAyNDgxLCAwLjAwMjQ4NCwgMC4wMDI0OTUsIDAuMDAyNDk5LCAwLjAwMjUwMSwgMC4wMDI1MDIsIDAuMDAyNTAzIiwgXAotICAgICAgICAgICIwLjAwMjQ3OSwgMC4wMDI0ODEsIDAuMDAyNDkyLCAwLjAwMjQ5OCwgMC4wMDI1MDEsIDAuMDAyNTAyLCAwLjAwMjUwMyIsIFwKLSAgICAgICAgICAiMC4wMDI0ODMsIDAuMDAyNDg0LCAwLjAwMjQ5MywgMC4wMDI0OTcsIDAuMDAyNDk5LCAwLjAwMjUwMiwgMC4wMDI1MDMiLCBcCi0gICAgICAgICAgIjAuMDAyNTA0LCAwLjAwMjUwMiwgMC4wMDI0OTksIDAuMDAyNTAxLCAwLjAwMjUsIDAuMDAyNTAxLCAwLjAwMjUwMyIsIFwKLSAgICAgICAgICAiMC4wMDI1MzMsIDAuMDAyNTI3LCAwLjAwMjUxMiwgMC4wMDI1MDcsIDAuMDAyNTA1LCAwLjAwMjUwNCwgMC4wMDI1MDYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDA0MTgsIDAuMDAwNDE4LCAwLjAwMDQxOCwgMC4wMDA0MTgsIDAuMDAwNDE4LCAwLjAwMDQxOCwgMC4wMDA0MTgiLCBcCi0gICAgICAgICAgIjAuMDAwNDA3LCAwLjAwMDQwNywgMC4wMDA0MDgsIDAuMDAwNDA4LCAwLjAwMDQwOCwgMC4wMDA0MDgsIDAuMDAwNDA4IiwgXAotICAgICAgICAgICIwLjAwMDQxOSwgMC4wMDA0MTgsIDAuMDAwNDEsIDAuMDAwNDEsIDAuMDAwNDA5LCAwLjAwMDQwNywgMC4wMDA0MDciLCBcCi0gICAgICAgICAgIjAuMDAwNDM2LCAwLjAwMDQzMywgMC4wMDA0MTgsIDAuMDAwNDE3LCAwLjAwMDQxNCwgMC4wMDA0MTEsIDAuMDAwNDEiLCBcCi0gICAgICAgICAgIjAuMDAwNDY3LCAwLjAwMDQ1MSwgMC4wMDA0NCwgMC4wMDA0MjYsIDAuMDAwNDIsIDAuMDAwNDEyLCAwLjAwMDQxIiwgXAotICAgICAgICAgICIwLjAwMDUxMywgMC4wMDA1MDIsIDAuMDAwNDc4LCAwLjAwMDQ0NiwgMC4wMDA0MzMsIDAuMDAwNDIzLCAwLjAwMDQxNyIsIFwKLSAgICAgICAgICAiMC4wMDA1NzUsIDAuMDAwNTYsIDAuMDAwNTIsIDAuMDAwNDcsIDAuMDAwNDUyLCAwLjAwMDQzMywgMC4wMDA0MjgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDIyNDEsIDAuMDAyMjQxLCAwLjAwMjI0MywgMC4wMDIyNDMsIDAuMDAyMjQzLCAwLjAwMjI0MywgMC4wMDIyNDMiLCBcCi0gICAgICAgICAgIjAuMDAyMjMsIDAuMDAyMjMxLCAwLjAwMjIzOCwgMC4wMDIyNDEsIDAuMDAyMjQyLCAwLjAwMjI0MiwgMC4wMDIyNDIiLCBcCi0gICAgICAgICAgIjAuMDAyMjIzLCAwLjAwMjIyNSwgMC4wMDIyMzQsIDAuMDAyMjM5LCAwLjAwMjIzOSwgMC4wMDIyNCwgMC4wMDIyNDIiLCBcCi0gICAgICAgICAgIjAuMDAyMjI2LCAwLjAwMjIyNywgMC4wMDIyMzQsIDAuMDAyMjM4LCAwLjAwMjI0LCAwLjAwMjI0MSwgMC4wMDIyNDEiLCBcCi0gICAgICAgICAgIjAuMDAyMjM2LCAwLjAwMjIzNiwgMC4wMDIyMzcsIDAuMDAyMjM5LCAwLjAwMjI0LCAwLjAwMjI0MSwgMC4wMDIyNDIiLCBcCi0gICAgICAgICAgIjAuMDAyMjY3LCAwLjAwMjI2MiwgMC4wMDIyNDgsIDAuMDAyMjQ1LCAwLjAwMjI0NCwgMC4wMDIyNDMsIDAuMDAyMjQ0IiwgXAotICAgICAgICAgICIwLjAwMjMwNSwgMC4wMDIyOTYsIDAuMDAyMjY1LCAwLjAwMjI1MywgMC4wMDIyNDksIDAuMDAyMjQ2LCAwLjAwMjI0NyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDIwMiwgMC4wMDAyMDMsIDAuMDAwMjA0LCAwLjAwMDIwNCwgMC4wMDAyMDQsIDAuMDAwMjA0LCAwLjAwMDIwNCIsIFwKLSAgICAgICAgICAiMC4wMDAyMDksIDAuMDAwMjEsIDAuMDAwMjEzLCAwLjAwMDIxMywgMC4wMDAyMTQsIDAuMDAwMjE0LCAwLjAwMDIxNCIsIFwKLSAgICAgICAgICAiMC4wMDAyMjUsIDAuMDAwMjI0LCAwLjAwMDIxOSwgMC4wMDAyMTcsIDAuMDAwMjE3LCAwLjAwMDIxNywgMC4wMDAyMTciLCBcCi0gICAgICAgICAgIjAuMDAwMjQxLCAwLjAwMDIzOCwgMC4wMDAyMjcsIDAuMDAwMjIzLCAwLjAwMDIyMSwgMC4wMDAyMiwgMC4wMDAyMiIsIFwKLSAgICAgICAgICAiMC4wMDAyNjEsIDAuMDAwMjU0LCAwLjAwMDI0OSwgMC4wMDAyMywgMC4wMDAyMjYsIDAuMDAwMjI0LCAwLjAwMDIyMyIsIFwKLSAgICAgICAgICAiMC4wMDAzMTUsIDAuMDAwMzA0LCAwLjAwMDI4NiwgMC4wMDAyNTcsIDAuMDAwMjQ0LCAwLjAwMDIzNCwgMC4wMDAyMyIsIFwKLSAgICAgICAgICAiMC4wMDAzNzQsIDAuMDAwMzU4LCAwLjAwMDMyNywgMC4wMDAyOCwgMC4wMDAyNjMsIDAuMDAwMjQ1LCAwLjAwMDIzOSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkQiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTk4LCAwLjAwMTk4MSwgMC4wMDE5ODMsIDAuMDAxOTg0LCAwLjAwMTk4NCwgMC4wMDE5ODUsIDAuMDAxOTg1IiwgXAotICAgICAgICAgICIwLjAwMTk2OSwgMC4wMDE5NzEsIDAuMDAxOTc3LCAwLjAwMTk4MiwgMC4wMDE5ODEsIDAuMDAxOTgzLCAwLjAwMTk4MyIsIFwKLSAgICAgICAgICAiMC4wMDE5NzUsIDAuMDAxOTc1LCAwLjAwMTk3OSwgMC4wMDE5ODEsIDAuMDAxOTgzLCAwLjAwMTk4MiwgMC4wMDE5ODMiLCBcCi0gICAgICAgICAgIjAuMDAxOTkzLCAwLjAwMTk5MSwgMC4wMDE5ODQsIDAuMDAxOTgzLCAwLjAwMTk4NCwgMC4wMDE5ODMsIDAuMDAxOTgzIiwgXAotICAgICAgICAgICIwLjAwMjAyLCAwLjAwMjAxNCwgMC4wMDE5OTUsIDAuMDAxOTg4LCAwLjAwMTk4NywgMC4wMDE5ODUsIDAuMDAxOTg1IiwgXAotICAgICAgICAgICIwLjAwMjA4MSwgMC4wMDIwNjksIDAuMDAyMDIxLCAwLjAwMjAwMywgMC4wMDE5OTYsIDAuMDAxOTksIDAuMDAxOTkiLCBcCi0gICAgICAgICAgIjAuMDAyMTQzLCAwLjAwMjEyNCwgMC4wMDIwNTIsIDAuMDAyMDIsIDAuMDAyMDA4LCAwLjAwMTk5NywgMC4wMDE5OTYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDAwMTEsIDAuMDAwMDExLCAwLjAwMDAxNCwgMC4wMDAwMTQsIDAuMDAwMDE1LCAwLjAwMDAxNSwgMC4wMDAwMTUiLCBcCi0gICAgICAgICAgIjAuMDAwMDI0LCAwLjAwMDAyNSwgMC4wMDAwMywgMC4wMDAwMzIsIDAuMDAwMDMzLCAwLjAwMDAzNCwgMC4wMDAwMzQiLCBcCi0gICAgICAgICAgIjAuMDAwMDQxLCAwLjAwMDA0LCAwLjAwMDA0LCAwLjAwMDAzOCwgMC4wMDAwNDEsIDAuMDAwMDQsIDAuMDAwMDQyIiwgXAotICAgICAgICAgICIwLjAwMDA2NCwgMC4wMDAwNiwgMC4wMDAwNDYsIDAuMDAwMDQzLCAwLjAwMDA0NCwgMC4wMDAwNDQsIDAuMDAwMDQ0IiwgXAotICAgICAgICAgICIwLjAwMDA5NCwgMC4wMDAwODcsIDAuMDAwMDU4LCAwLjAwMDA1NCwgMC4wMDAwNSwgMC4wMDAwNDcsIDAuMDAwMDQ3IiwgXAotICAgICAgICAgICIwLjAwMDE1MywgMC4wMDAxNCwgMC4wMDAwOTEsIDAuMDAwMDcsIDAuMDAwMDYyLCAwLjAwMDA1MywgMC4wMDAwNTEiLCBcCi0gICAgICAgICAgIjAuMDAwMjI0LCAwLjAwMDIsIDAuMDAwMTIxLCAwLjAwMDA4OCwgMC4wMDAwNzUsIDAuMDAwMDYxLCAwLjAwMDA1OCIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogTk9SNFg0ICoKLSAqIC0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoTk9SNFg0KSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDEuMTg4NzU7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMzIzNzM7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAzMjE1NjE7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAzMjM3MzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDE2ODQsIDAuMDAxODI0LCAwLjAwMTg4MiwgMC4wMDE5MTQsIDAuMDAxOTQ4LCAwLjAwMTk2MywgMC4wMDE5NjkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDcyOTcsIDAuMDA3MywgMC4wMDczLCAwLjAwNzMsIDAuMDA3MywgMC4wMDczLCAwLjAwNzMwMSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAzMjAwMjM7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAzMTgxNjM7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAzMjAwMjM7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxNjI1LCAwLjAwMTgxNCwgMC4wMDE4ODcsIDAuMDAxOTEyLCAwLjAwMTkyMSwgMC4wMDE5NTcsIDAuMDAxOTg3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA0NzI5LCAwLjAwNDczLCAwLjAwNDczMSwgMC4wMDQ3MywgMC4wMDQ3MzEsIDAuMDA0NzMxLCAwLjAwNDczMSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQykgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAzMTE4Njc7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAzMTAzMTM7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAzMTE4Njc7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxNjMzLCAwLjAwMTg3MSwgMC4wMDE5NDUsIDAuMDAxOTc0LCAwLjAwMTk4NSwgMC4wMDE5NywgMC4wMDE5NzYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDIyMDgsIDAuMDAyMjA5LCAwLjAwMjIwOSwgMC4wMDIyMDksIDAuMDAyMjA5LCAwLjAwMjIxLCAwLjAwMjIxIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihEKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDMyMDY0NTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDMyMDY0NTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDMyMDUzNTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA0MDksIDAuMDAwNDA5LCAwLjAwMDQwOCwgMC4wMDA0MDksIDAuMDAwNDA5LCAwLjAwMDQwOSwgMC4wMDA0MDkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDE1ODksIDAuMDAxNTksIDAuMDAxNTksIDAuMDAxNTg5LCAwLjAwMTU4OSwgMC4wMDE1ODksIDAuMDAxNTg5Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMzYzODA5OwotICAgIGZ1bmN0aW9uIDogIighKCgoQStCKStDKStEKSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDYyMjczLCAwLjI2MjI4NSwgMC40NjE5NDcsIDAuNjA0NDY2LCAwLjgzMzQ1NCwgMS4wMzM0MSwgMS4zMTkxMyIsIFwKLSAgICAgICAgICAiMC4wNjc3NTksIDAuMjY4MjA1LCAwLjQ2ODA0OSwgMC42MTEwMjksIDAuODQwMDM0LCAxLjAzOTI3LCAxLjMyNDk2IiwgXAotICAgICAgICAgICIwLjA3MjYzMSwgMC4yNzMzMzQsIDAuNDczNTksIDAuNjE1NzIsIDAuODQ0OTAzLCAxLjA0NTAxLCAxLjMyODgiLCBcCi0gICAgICAgICAgIjAuMDc2ODAzLCAwLjI3NzI5NywgMC40NzcyNiwgMC42MTk5NjcsIDAuODQ4MywgMS4wNDksIDEuMzMzNDQiLCBcCi0gICAgICAgICAgIjAuMDgwMDA2LCAwLjI4MDg4OSwgMC40ODA4OTUsIDAuNjI0MDM5LCAwLjg1MjY5MywgMS4wNTI1MSwgMS4zMzcwOCIsIFwKLSAgICAgICAgICAiMC4wODQxNjUsIDAuMjg2NTE4LCAwLjQ4Njc1LCAwLjYyOTUxOCwgMC44NTgxNzYsIDEuMDU4MDksIDEuMzQyOTEiLCBcCi0gICAgICAgICAgIjAuMDg3MjIxLCAwLjI5MTE0MywgMC40OTA4OTgsIDAuNjMzNzc5LCAwLjg2MjYwNiwgMS4wNjE4NiwgMS4zNDgzNCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwMjA0MSwgMC41MjUyNDYsIDAuOTQ4NjMyLCAxLjI1MDY5LCAxLjczMzM4LCAyLjE1NjQ5LCAyLjc2MDcxIiwgXAotICAgICAgICAgICIwLjEwMjEwMSwgMC41MjUzODUsIDAuOTQ4MDU2LCAxLjI0OTk1LCAxLjczNDQsIDIuMTU2NDEsIDIuNzYwODIiLCBcCi0gICAgICAgICAgIjAuMTAyOTA5LCAwLjUyNDg2OCwgMC45NDc5NTcsIDEuMjUwNjUsIDEuNzMzNTksIDIuMTU2OTQsIDIuNzYyMDYiLCBcCi0gICAgICAgICAgIjAuMTA0NTU5LCAwLjUyNDg4NywgMC45NDg5NTYsIDEuMjUxMzQsIDEuNzM1MzQsIDIuMTU2ODIsIDIuNzYxOTMiLCBcCi0gICAgICAgICAgIjAuMTA2OTQsIDAuNTI1NzMsIDAuOTQ4NzIxLCAxLjI1MDA0LCAxLjczNDA3LCAyLjE1NjUyLCAyLjc2MjQxIiwgXAotICAgICAgICAgICIwLjExMjAzNiwgMC41MjcyMTUsIDAuOTQ4MDMyLCAxLjI0OTg4LCAxLjczMzQ2LCAyLjE1NjQ4LCAyLjc2NDI1IiwgXAotICAgICAgICAgICIwLjExNzA4MiwgMC41Mjg3OTYsIDAuOTQ5MzYsIDEuMjUxMjksIDEuNzMzMzUsIDIuMTU4NDQsIDIuNzYwODQiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTg2MTYsIDAuMDc0ODI3LCAwLjEyOTExLCAwLjE2NzcwMiwgMC4yMjkzNjgsIDAuMjgzMjQyLCAwLjM2MDMxMSIsIFwKLSAgICAgICAgICAiMC4wMjcyNDQsIDAuMDgzMTUsIDAuMTM3Mzk0LCAwLjE3NjAxMSwgMC4yMzc2NywgMC4yOTE1ODcsIDAuMzY4NTEyIiwgXAotICAgICAgICAgICIwLjAzNzExNiwgMC4wOTM2MzUsIDAuMTQ3ODU3LCAwLjE4NjQ2MiwgMC4yNDgxNDMsIDAuMzAyMDA5LCAwLjM3OTAyOSIsIFwKLSAgICAgICAgICAiMC4wNDQxOCwgMC4xMDQwNTMsIDAuMTU4MjEyLCAwLjE5Njc1NCwgMC4yNTgxMTYsIDAuMzEyNDEyLCAwLjM4OTM0MSIsIFwKLSAgICAgICAgICAiMC4wNTAxNTksIDAuMTE0NzkzLCAwLjE2ODczNCwgMC4yMDczMzMsIDAuMjY4ODkyLCAwLjMyMjM5NywgMC4zOTk3NzgiLCBcCi0gICAgICAgICAgIjAuMDU3NTUxLCAwLjEzMTgyNCwgMC4xODU4NzksIDAuMjI0Mzc4LCAwLjI4NTg4NCwgMC4zMzk2NzEsIDAuNDE2NjY3IiwgXAotICAgICAgICAgICIwLjA2MjkxNSwgMC4xNDU3NTQsIDAuMjAwOTc4LCAwLjIzOTI4NywgMC4zMDA2NjIsIDAuMzU0NTQzLCAwLjQzMTM5NCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzMjUzLCAwLjE0NDQ5OSwgMC4yNTYwNzksIDAuMzM1OTExLCAwLjQ2MzY3MywgMC41NzU0ODMsIDAuNzM1MjQ3IiwgXAotICAgICAgICAgICIwLjAzNjA3LCAwLjE0NDM4NywgMC4yNTYxNjEsIDAuMzM2MDU4LCAwLjQ2MzY1NCwgMC41NzU2ODIsIDAuNzM1Mzc0IiwgXAotICAgICAgICAgICIwLjA0NDY2MywgMC4xNDcwNzMsIDAuMjU2MzU0LCAwLjMzNTk5MywgMC40NjM2NzYsIDAuNTc1NjQ0LCAwLjczNTQ5OCIsIFwKLSAgICAgICAgICAiMC4wNTQwMiwgMC4xNTI2NjgsIDAuMjU4OTYyLCAwLjMzNjk3NSwgMC40NjM4MjYsIDAuNTc1NjIyLCAwLjczNTQ5MSIsIFwKLSAgICAgICAgICAiMC4wNjI1NzMsIDAuMTU5ODI3LCAwLjI2MzM5MywgMC4zNDAwMzgsIDAuNDY0ODc2LCAwLjU3NTY0OSwgMC43MzU0MjIiLCBcCi0gICAgICAgICAgIjAuMDc1MjU4LCAwLjE3Mjk0LCAwLjI3MzE4NCwgMC4zNDc3MzEsIDAuNDY5NzQxLCAwLjU3ODQ2OCwgMC43MzU4NTQiLCBcCi0gICAgICAgICAgIjAuMDg1NTQ5LCAwLjE4NDY2NiwgMC4yODMzNjQsIDAuMzU2MTYyLCAwLjQ3NjA1LCAwLjU4MzI4MywgMC43Mzg4MTYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTg5NTcsIDAuMjU5MDExLCAwLjQ1ODc4NywgMC42MDA5MjIsIDAuODI5MjM4LCAxLjAzMDQsIDEuMzE1NTEiLCBcCi0gICAgICAgICAgIjAuMDY0NTg2LCAwLjI2NTA3NCwgMC40NjUzNjYsIDAuNjA3NzU5LCAwLjgzNjQ2LCAxLjAzNTM5LCAxLjMyMjMxIiwgXAotICAgICAgICAgICIwLjA3MDMyOSwgMC4yNzA4MjMsIDAuNDcwODgzLCAwLjYxMzQ5OSwgMC44NDI4MzcsIDEuMDQyMDcsIDEuMzI4MDUiLCBcCi0gICAgICAgICAgIjAuMDc1NjY1LCAwLjI3NjI4OCwgMC40NzYzNjIsIDAuNjE5MjczLCAwLjg0ODE3OCwgMS4wNDY5OCwgMS4zMzI0MSIsIFwKLSAgICAgICAgICAiMC4wODAxNzksIDAuMjgxNTAyLCAwLjQ4MTY0OSwgMC42MjQyMDIsIDAuODUzLCAxLjA1MjM1LCAxLjMzNzMiLCBcCi0gICAgICAgICAgIjAuMDg2NTA5LCAwLjI4OTgwOCwgMC40ODk5NzQsIDAuNjMyMzQsIDAuODYwNTI5LCAxLjA2MDYxLCAxLjM0NTkiLCBcCi0gICAgICAgICAgIjAuMDkxNTQsIDAuMjk3MzQyLCAwLjQ5NzI1NiwgMC42NDAxNTcsIDAuODY4NzExLCAxLjA2ODI4LCAxLjM1MzA0Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTAyMDMzLCAwLjUyNTI3MSwgMC45NDgzNzgsIDEuMjQ5OTUsIDEuNzM0MjgsIDIuMTU2OCwgMi43NjA3NiIsIFwKLSAgICAgICAgICAiMC4xMDIxMDcsIDAuNTI0ODMsIDAuOTQ3OTI4LCAxLjI1MDM1LCAxLjczMzU0LCAyLjE1NzE2LCAyLjc2MTA3IiwgXAotICAgICAgICAgICIwLjEwMzY3NCwgMC41MjQ4MjIsIDAuOTQ5MDg5LCAxLjI1MTM1LCAxLjczMzgyLCAyLjE1NjU4LCAyLjc2MTA0IiwgXAotICAgICAgICAgICIwLjEwNjM5MSwgMC41MjQ2OTIsIDAuOTQ3NzY2LCAxLjI1MDAxLCAxLjczMzc0LCAyLjE1ODgxLCAyLjc2MTMxIiwgXAotICAgICAgICAgICIwLjExMDMyMSwgMC41MjYwMDUsIDAuOTQ3NzcyLCAxLjI0OTk3LCAxLjczNDE2LCAyLjE1OSwgMi43NjIwNyIsIFwKLSAgICAgICAgICAiMC4xMTgxNTIsIDAuNTI3NDA2LCAwLjk0ODA4MSwgMS4yNTEwMywgMS43MzQ4OCwgMi4xNTg4NywgMi43NjM2OCIsIFwKLSAgICAgICAgICAiMC4xMjUzOSwgMC41MzA1NDUsIDAuOTQ5NTM3LCAxLjI1MDE0LCAxLjczNTYyLCAyLjE1ODY2LCAyLjc2MzU0Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE4MTAyLCAwLjA3MzA2OCwgMC4xMjcxMjcsIDAuMTY1NjM4LCAwLjIyNzIzNywgMC4yODExNzMsIDAuMzU4MTE2IiwgXAotICAgICAgICAgICIwLjAyNjU2MSwgMC4wODE0MywgMC4xMzU0NDQsIDAuMTczOTU4LCAwLjIzNTYxNCwgMC4yODk0NCwgMC4zNjY0MjEiLCBcCi0gICAgICAgICAgIjAuMDM1ODY4LCAwLjA5MjA2MSwgMC4xNDYxMDIsIDAuMTg0NjExLCAwLjI0NjIyNSwgMC4zMDAyMDYsIDAuMzc3MTYxIiwgXAotICAgICAgICAgICIwLjA0MjQwMywgMC4xMDI1NjcsIDAuMTU2NDg2LCAwLjE5NDk4NSwgMC4yNTY2NjYsIDAuMzEwNTUyLCAwLjM4NzY5OCIsIFwKLSAgICAgICAgICAiMC4wNDc4NzksIDAuMTEzNjI4LCAwLjE2Njg3NSwgMC4yMDUzMzQsIDAuMjY2ODgzLCAwLjMyMDgwNCwgMC4zOTc3MzUiLCBcCi0gICAgICAgICAgIjAuMDU0NjIsIDAuMTMwNjYzLCAwLjE4MzU5NSwgMC4yMjIwMjIsIDAuMjgzNDUxLCAwLjMzNzI2MywgMC40MTQyMjkiLCBcCi0gICAgICAgICAgIjAuMDU5NDg3LCAwLjE0Mzg2OSwgMC4xOTk3OTUsIDAuMjM2ODAyLCAwLjI5ODA4NCwgMC4zNTE5MjIsIDAuNDI4NzQ1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDI5NzMsIDAuMTQxNDY2LCAwLjI1MzI5OSwgMC4zMzMxNTYsIDAuNDYxMDYxLCAwLjU3MzE1OCwgMC43MzMwMzkiLCBcCi0gICAgICAgICAgIjAuMDMzMzc1LCAwLjE0MTM3NywgMC4yNTMyODksIDAuMzMzMTg5LCAwLjQ2MTA5MiwgMC41NzMwNiwgMC43MzI4NDQiLCBcCi0gICAgICAgICAgIjAuMDQyMTA5LCAwLjE0NDE4MywgMC4yNTM1ODIsIDAuMzMzMTg5LCAwLjQ2MTE3MSwgMC41NzMwOTksIDAuNzMyODgzIiwgXAotICAgICAgICAgICIwLjA1MTMxOCwgMC4xNDk4MTIsIDAuMjU2MTI3LCAwLjMzNDI1OCwgMC40NjEwOTIsIDAuNTczMDczLCAwLjczMzAxOSIsIFwKLSAgICAgICAgICAiMC4wNTkyOCwgMC4xNTY1NSwgMC4yNjA4MzcsIDAuMzM3NDIzLCAwLjQ2MjMxNiwgMC41NzMxNjIsIDAuNzMyNzQxIiwgXAotICAgICAgICAgICIwLjA3MTU4NCwgMC4xNjk0NzcsIDAuMjcwODY2LCAwLjM0NTM1NywgMC40NjczNzQsIDAuNTc2MTI0LCAwLjczMzQ2NSIsIFwKLSAgICAgICAgICAiMC4wODEyMTcsIDAuMTgyMjU5LCAwLjI4MDEyNiwgMC4zNTQxNCwgMC40NzM4ODcsIDAuNTgxMDg4LCAwLjczNjQ2OSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1Mjk3LCAwLjI1Mjk4NywgMC40NTMzMTcsIDAuNTk1NDQ1LCAwLjgyNDQ0MiwgMS4wMjM4NSwgMS4zMTA1MiIsIFwKLSAgICAgICAgICAiMC4wNTg4ODIsIDAuMjU5MzM0LCAwLjQ1OTc2NiwgMC42MDI0MDgsIDAuODMwNzQzLCAxLjAzMTA4LCAxLjMxNTc2IiwgXAotICAgICAgICAgICIwLjA2NjEyMywgMC4yNjY3MDksIDAuNDY2NTczLCAwLjYwOTA1LCAwLjgzODM4NywgMS4wMzc5LCAxLjMyNDIxIiwgXAotICAgICAgICAgICIwLjA3MzQ4LCAwLjI3NDE2OSwgMC40NzQwMDgsIDAuNjE2NzkyLCAwLjg0NTM5OSwgMS4wNDQ3MywgMS4zMzE4MyIsIFwKLSAgICAgICAgICAiMC4wODAxMTksIDAuMjgxNTkzLCAwLjQ4MTYzMiwgMC42MjQzNTcsIDAuODUyODA5LCAxLjA1MjQ1LCAxLjMzODgxIiwgXAotICAgICAgICAgICIwLjA4OTIyLCAwLjI5MzU1OCwgMC40OTMyMzksIDAuNjM2NzcyLCAwLjg2NTA0NSwgMS4wNjUwNCwgMS4zNTAxNSIsIFwKLSAgICAgICAgICAiMC4wOTYyNzEsIDAuMzA0NDk4LCAwLjUwNDQzMiwgMC42NDY0NDgsIDAuODc1MjU4LCAxLjA3NTY4LCAxLjM2MDkxIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTAxODk3LCAwLjUyNTQsIDAuOTQ3OTQ5LCAxLjI1MTIzLCAxLjczMzU3LCAyLjE1OTk1LCAyLjc2MTk4IiwgXAotICAgICAgICAgICIwLjEwMjE2NSwgMC41MjUzNzEsIDAuOTQ3OTkyLCAxLjI1MDE3LCAxLjczMzMsIDIuMTU2OTQsIDIuNzY1MzQiLCBcCi0gICAgICAgICAgIjAuMTA0ODcyLCAwLjUyNDg5MSwgMC45NDg5NjEsIDEuMjUwOSwgMS43MzM3OCwgMi4xNTY0NywgMi43NjE5NiIsIFwKLSAgICAgICAgICAiMC4xMDk3MTYsIDAuNTI0ODM2LCAwLjk0ODk3MywgMS4yNTAwNCwgMS43MzM5OSwgMi4xNTg2MywgMi43NjE3NCIsIFwKLSAgICAgICAgICAiMC4xMTU1NjYsIDAuNTI2MDU1LCAwLjk0OTAwNSwgMS4yNTE1MywgMS43MzM1OSwgMi4xNTkwMiwgMi43NjA5MSIsIFwKLSAgICAgICAgICAiMC4xMjY0MjgsIDAuNTI4NTQyLCAwLjk0ODQ0OCwgMS4yNDk5MiwgMS43MzU4NCwgMi4xNTYzNywgMi43NjEzMSIsIFwKLSAgICAgICAgICAiMC4xMzU1OTksIDAuNTMzMDAxLCAwLjk0ODc2MSwgMS4yNDk4NywgMS43MzUwOSwgMi4xNTY0OCwgMi43NjAzNSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxNjg3MSwgMC4wNzExMDUsIDAuMTI1MDY2LCAwLjE2MzU3OSwgMC4yMjUxNywgMC4yNzkwNTIsIDAuMzU2MjU0IiwgXAotICAgICAgICAgICIwLjAyNTM1NSwgMC4wNzk1NjcsIDAuMTMzNDksIDAuMTcxOTk0LCAwLjIzMzYxNywgMC4yODc0OTcsIDAuMzY0NTM5IiwgXAotICAgICAgICAgICIwLjAzMzg4MywgMC4wOTAwODEsIDAuMTQ0MDEyLCAwLjE4MjUwNSwgMC4yNDQxMjIsIDAuMjk3OTg1LCAwLjM3NTA5MiIsIFwKLSAgICAgICAgICAiMC4wMzk3MjYsIDAuMTAwODA0LCAwLjE1NDU2OSwgMC4xOTMwMywgMC4yNTQ0NzksIDAuMzA4NzMzLCAwLjM4NTgxMyIsIFwKLSAgICAgICAgICAiMC4wNDQ2MTYsIDAuMTExNzMxLCAwLjE2NTEzOSwgMC4yMDM1ODcsIDAuMjY0OTYxLCAwLjMxODgwMSwgMC4zOTU3ODQiLCBcCi0gICAgICAgICAgIjAuMDUwNjY3LCAwLjEyODYyNywgMC4xODE2NjgsIDAuMjIwOTExLCAwLjI4MjM3NywgMC4zMzYxNzUsIDAuNDEyMzQ0IiwgXAotICAgICAgICAgICIwLjA1NDgzNSwgMC4xNDE3MTYsIDAuMTk3ODg1LCAwLjIzNDg0NCwgMC4yOTYxMDQsIDAuMzUwNzc1LCAwLjQyNjgyNCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyNjg0OCwgMC4xMzg3OTMsIDAuMjUwOTUyLCAwLjMzMDg3MywgMC40NTg5MjEsIDAuNTcxMDE0LCAwLjczMTYyMiIsIFwKLSAgICAgICAgICAiMC4wMzA4MzQsIDAuMTM4ODM1LCAwLjI1MDg2MSwgMC4zMzA5MiwgMC40NTkwODYsIDAuNTcxMDU5LCAwLjczMDk2NyIsIFwKLSAgICAgICAgICAiMC4wMzk4MDEsIDAuMTQxNjg0LCAwLjI1MTEwMSwgMC4zMzA5NjEsIDAuNDU4OTA1LCAwLjU3MDkzMiwgMC43MzEyOTciLCBcCi0gICAgICAgICAgIjAuMDQ4OTEzLCAwLjE0NzUxMiwgMC4yNTM4MzYsIDAuMzMyMDY0LCAwLjQ1ODgyOCwgMC41NzExODEsIDAuNzMxMjI2IiwgXAotICAgICAgICAgICIwLjA1NjUyOCwgMC4xNTQzLCAwLjI1ODM0MiwgMC4zMzUwMDksIDAuNDU5OTkzLCAwLjU3MTA5MywgMC43MzA3ODQiLCBcCi0gICAgICAgICAgIjAuMDY4MzEsIDAuMTY3MzIsIDAuMjY4NjQzLCAwLjM0MjYyMSwgMC40NjQ5ODIsIDAuNTczOTIsIDAuNzMxODM1IiwgXAotICAgICAgICAgICIwLjA3NzkxOSwgMC4xODAyNDcsIDAuMjc4MDQ3LCAwLjM1MjA4MywgMC40NzE3OTgsIDAuNTc4NzY4LCAwLjczNDYzNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJEIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0MjY5MSwgMC4yNDMxMDgsIDAuNDQzMDA5LCAwLjU4NDczOCwgMC44MTM0NywgMS4wMTQ2OSwgMS4yOTkyNiIsIFwKLSAgICAgICAgICAiMC4wNDkyNjcsIDAuMjQ5NDQzLCAwLjQ0OTYxMiwgMC41OTI0MDgsIDAuODIwNDM1LCAxLjAyMTE2LCAxLjMwNTUyIiwgXAotICAgICAgICAgICIwLjA1ODUxMiwgMC4yNTg1MSwgMC40NTg2MzMsIDAuNjAwNjQ4LCAwLjgzMDI2OSwgMS4wMjk0OSwgMS4zMTU2NiIsIFwKLSAgICAgICAgICAiMC4wNjgwNzMsIDAuMjY3MDQ3LCAwLjQ2NjYzMywgMC42MDk1NzYsIDAuODM4MTgzLCAxLjAzNjU1LCAxLjMyNCIsIFwKLSAgICAgICAgICAiMC4wNzY2ODIsIDAuMjc1Njk4LCAwLjQ3NTIyNCwgMC42MTc5NzIsIDAuODQ2NjM3LCAxLjA0NjUzLCAxLjMzMjEzIiwgXAotICAgICAgICAgICIwLjA4ODAyNiwgMC4yOTAxNjMsIDAuNDg5Njg5LCAwLjYzMjAxOSwgMC44NjAxMDIsIDEuMDYwNSwgMS4zNDYxNiIsIFwKLSAgICAgICAgICAiMC4wOTYxMDYsIDAuMzAyOTQyLCAwLjUwMTk3NiwgMC42NDM2ODgsIDAuODczMDYzLCAxLjA3MjcsIDEuMzU4MTUiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDA2NDUsIDAuNTI0ODI4LCAwLjk0Nzg1MSwgMS4yNDkzOCwgMS43MzQyOCwgMi4xNTYzOSwgMi43NjAzOSIsIFwKLSAgICAgICAgICAiMC4xMDA4MDUsIDAuNTI0NTU1LCAwLjk0ODkzMiwgMS4yNTAwMiwgMS43MzUyOCwgMi4xNTY1LCAyLjc2MTAxIiwgXAotICAgICAgICAgICIwLjEwNTkyMywgMC41MjQ3MzcsIDAuOTQ3OTQxLCAxLjI1MDcsIDEuNzMzNzksIDIuMTU3MDcsIDIuNzYwNDkiLCBcCi0gICAgICAgICAgIjAuMTEyOTUzLCAwLjUyNDMwMywgMC45NDg3NCwgMS4yNDk4OSwgMS43MzQxNiwgMi4xNTcwOCwgMi43NjEyNSIsIFwKLSAgICAgICAgICAiMC4xMjAyMzYsIDAuNTI1NTgzLCAwLjk0ODU4NywgMS4yNTEyNCwgMS43MzMzOSwgMi4xNTY0NywgMi43NjIxMSIsIFwKLSAgICAgICAgICAiMC4xMzI0NjksIDAuNTI5NzQsIDAuOTQ4Njc0LCAxLjI1MTE1LCAxLjczNTA3LCAyLjE1NjUsIDIuNzYxOTEiLCBcCi0gICAgICAgICAgIjAuMTQyMzIsIDAuNTM1MzQ2LCAwLjk0OTY0MSwgMS4yNDk4MiwgMS43MzM1LCAyLjE1NjQ5LCAyLjc2MDgyIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE0NzY2LCAwLjA2ODc2OSwgMC4xMjI2OTksIDAuMTYxMjEsIDAuMjIyODY5LCAwLjI3Njg1MSwgMC4zNTM4MTEiLCBcCi0gICAgICAgICAgIjAuMDIzMjE5LCAwLjA3NzMwNywgMC4xMzEyMiwgMC4xNjk3NTEsIDAuMjMxMzg5LCAwLjI4NTMzNSwgMC4zNjIzMiIsIFwKLSAgICAgICAgICAiMC4wMzA3ODcsIDAuMDg3NzE1LCAwLjE0MTY5NiwgMC4xODAyMjQsIDAuMjQxOTA5LCAwLjI5NTc2NSwgMC4zNzI5MDMiLCBcCi0gICAgICAgICAgIjAuMDM1ODU4LCAwLjA5ODcyNSwgMC4xNTIzMDIsIDAuMTkwNzg0LCAwLjI1MjM3OSwgMC4zMDYzOTIsIDAuMzgzNTM0IiwgXAotICAgICAgICAgICIwLjA0MDA4MiwgMC4xMDg5NTksIDAuMTYyOTA0LCAwLjIwMTEyNiwgMC4yNjI2NjMsIDAuMzE2NTg5LCAwLjM5MzY4OCIsIFwKLSAgICAgICAgICAiMC4wNDUxNTUsIDAuMTI1NTg3LCAwLjE4MDI1OCwgMC4yMTg2NjcsIDAuMjgwMjg0LCAwLjMzMzQ5OCwgMC40MTA0NTQiLCBcCi0gICAgICAgICAgIjAuMDQ4Njg3LCAwLjEzNzc5NiwgMC4xOTQ3ODIsIDAuMjMzMTM1LCAwLjI5NDUwMiwgMC4zNDg2NDQsIDAuNDI1MjQ1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDIzOTc3LCAwLjEzNjM1MiwgMC4yNDgyMzgsIDAuMzI5MDA4LCAwLjQ1Njg2NywgMC41Njg3NjEsIDAuNzMwMjM1IiwgXAotICAgICAgICAgICIwLjAyODQ4MSwgMC4xMzYzODQsIDAuMjQ4NzA1LCAwLjMyODM0NSwgMC40NTY3ODgsIDAuNTY4NjcxLCAwLjczMDEyIiwgXAotICAgICAgICAgICIwLjAzNzc2NiwgMC4xMzk0MDksIDAuMjQ4OTU5LCAwLjMyODk3MywgMC40NTY2NiwgMC41Njg2NDgsIDAuNzI5MDI4IiwgXAotICAgICAgICAgICIwLjA0NjY4LCAwLjE0NTExMywgMC4yNTEzLCAwLjMyOTQ1MywgMC40NTc0MTUsIDAuNTY4NzI4LCAwLjcyODg3MSIsIFwKLSAgICAgICAgICAiMC4wNTQzNiwgMC4xNTI0OTQsIDAuMjU2Mzk0LCAwLjMzMzM3LCAwLjQ1ODcwMSwgMC41Njk5NCwgMC43Mjg5ODUiLCBcCi0gICAgICAgICAgIjAuMDY1NTE2LCAwLjE2NjAzNiwgMC4yNjU3ODYsIDAuMzQwNzgsIDAuNDYzNjY2LCAwLjU3MjE4NywgMC43MzA3ODMiLCBcCi0gICAgICAgICAgIjAuMDc0NTcsIDAuMTc5NzI0LCAwLjI3NjQwMSwgMC4zNDk4MTEsIDAuNDcwMjM5LCAwLjU3Njc0OSwgMC43MzM1NiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE4MjgyLCAwLjAxODM1LCAwLjAxODM1NywgMC4wMTgzNTksIDAuMDE4MzYsIDAuMDE4MzYsIDAuMDE4MzcxIiwgXAotICAgICAgICAgICIwLjAxODExLCAwLjAxODI4NSwgMC4wMTgzMjEsIDAuMDE4MzMxLCAwLjAxODM0LCAwLjAxODM0MywgMC4wMTgzNDgiLCBcCi0gICAgICAgICAgIjAuMDE4MDM1LCAwLjAxODIyNCwgMC4wMTgyNzUsIDAuMDE4Mjk4LCAwLjAxODMxOSwgMC4wMTgzMjMsIDAuMDE4MzM0IiwgXAotICAgICAgICAgICIwLjAxODAxNiwgMC4wMTgxODcsIDAuMDE4MjQ4LCAwLjAxODI3MSwgMC4wMTgyOTQsIDAuMDE4MzA5LCAwLjAxODMyNCIsIFwKLSAgICAgICAgICAiMC4wMTgwMzIsIDAuMDE4MTY1LCAwLjAxODIyMywgMC4wMTgyNTgsIDAuMDE4MjczLCAwLjAxODI5NCwgMC4wMTgzMDciLCBcCi0gICAgICAgICAgIjAuMDE4MTM4LCAwLjAxODE3NCwgMC4wMTgyMjIsIDAuMDE4MjQ0LCAwLjAxODI3MywgMC4wMTgyODYsIDAuMDE4Mjk2IiwgXAotICAgICAgICAgICIwLjAxODMxOSwgMC4wMTgyMjYsIDAuMDE4MjQ5LCAwLjAxODI2NCwgMC4wMTgyNzUsIDAuMDE4Mjk1LCAwLjAxODMwMyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0Mjg0LCAwLjAwNDI4MywgMC4wMDQyODUsIDAuMDA0Mjg1LCAwLjAwNDI4MiwgMC4wMDQyODQsIDAuMDA0MjgzIiwgXAotICAgICAgICAgICIwLjAwNDEyNiwgMC4wMDQxMiwgMC4wMDQxMTgsIDAuMDA0MTE4LCAwLjAwNDExOSwgMC4wMDQxMTgsIDAuMDA0MTE4IiwgXAotICAgICAgICAgICIwLjAwNDE5OSwgMC4wMDQxMzIsIDAuMDA0MTEyLCAwLjAwNDEwMiwgMC4wMDQwOTksIDAuMDA0MDk3LCAwLjAwNDA5NCIsIFwKLSAgICAgICAgICAiMC4wMDQzOTksIDAuMDA0MjQxLCAwLjAwNDE3OCwgMC4wMDQxNTEsIDAuMDA0MTI4LCAwLjAwNDExOSwgMC4wMDQxMTIiLCBcCi0gICAgICAgICAgIjAuMDA0NzEzLCAwLjAwNDM4MiwgMC4wMDQyNjEsIDAuMDA0MjIxLCAwLjAwNDE3OSwgMC4wMDQxNTcsIDAuMDA0MTQiLCBcCi0gICAgICAgICAgIjAuMDA1Mzk3LCAwLjAwNDY3NCwgMC4wMDQ0NDYsIDAuMDA0MzY3LCAwLjAwNDI5NSwgMC4wMDQyNTEsIDAuMDA0MjEiLCBcCi0gICAgICAgICAgIjAuMDA2MDY2LCAwLjAwNDgzMiwgMC4wMDQ2NjIsIDAuMDA0NTQsIDAuMDA0NDIzLCAwLjAwNDM2NCwgMC4wMDQyOTkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxNTMxOCwgMC4wMTUzODUsIDAuMDE1Mzg4LCAwLjAxNTM5NSwgMC4wMTUzOTYsIDAuMDE1Mzk3LCAwLjAxNTM5NyIsIFwKLSAgICAgICAgICAiMC4wMTUxNDUsIDAuMDE1MzIyLCAwLjAxNTM1NSwgMC4wMTUzNTksIDAuMDE1Mzc1LCAwLjAxNTM4LCAwLjAxNTM3OSIsIFwKLSAgICAgICAgICAiMC4wMTUwNzUsIDAuMDE1MjYzLCAwLjAxNTMxNSwgMC4wMTUzMzMsIDAuMDE1MzQ4LCAwLjAxNTM1OSwgMC4wMTUzNzIiLCBcCi0gICAgICAgICAgIjAuMDE1MDYyLCAwLjAxNTIyNiwgMC4wMTUyODMsIDAuMDE1MzA5LCAwLjAxNTMzMiwgMC4wMTUzNDYsIDAuMDE1MzU2IiwgXAotICAgICAgICAgICIwLjAxNTEwNSwgMC4wMTUyMTEsIDAuMDE1MjY1LCAwLjAxNTI5NCwgMC4wMTUzMTgsIDAuMDE1MzMzLCAwLjAxNTM0NiIsIFwKLSAgICAgICAgICAiMC4wMTUyNywgMC4wMTUyNCwgMC4wMTUyNzUsIDAuMDE1Mjk1LCAwLjAxNTMxNSwgMC4wMTUzMjYsIDAuMDE1MzM4IiwgXAotICAgICAgICAgICIwLjAxNTUxMSwgMC4wMTUzMTIsIDAuMDE1MzE3LCAwLjAxNTMyNCwgMC4wMTUzMzYsIDAuMDE1MzQxLCAwLjAxNTM0MyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyOTYzLCAwLjAwMjk3MSwgMC4wMDI5NzMsIDAuMDAyOTczLCAwLjAwMjk3MywgMC4wMDI5NzMsIDAuMDAyOTczIiwgXAotICAgICAgICAgICIwLjAwMjg1NCwgMC4wMDI4ODQsIDAuMDAyODg5LCAwLjAwMjg5MSwgMC4wMDI4OTMsIDAuMDAyODkzLCAwLjAwMjg5MyIsIFwKLSAgICAgICAgICAiMC4wMDI5MjYsIDAuMDAyOTAyLCAwLjAwMjg5NiwgMC4wMDI4OTMsIDAuMDAyODkxLCAwLjAwMjg4OSwgMC4wMDI4ODciLCBcCi0gICAgICAgICAgIjAuMDAzMTIxLCAwLjAwMjk4NiwgMC4wMDI5NDMsIDAuMDAyOTI3LCAwLjAwMjkzMywgMC4wMDI5MjIsIDAuMDAyOTEzIiwgXAotICAgICAgICAgICIwLjAwMzQwOCwgMC4wMDMwNjMsIDAuMDAzMTI5LCAwLjAwMzA3NywgMC4wMDMwMjksIDAuMDAzMDAyLCAwLjAwMjk3NSIsIFwKLSAgICAgICAgICAiMC4wMDQwODksIDAuMDAzMzA0LCAwLjAwMzI5NSwgMC4wMDMyMTMsIDAuMDAzMTMyLCAwLjAwMzA4NywgMC4wMDMwNDQiLCBcCi0gICAgICAgICAgIjAuMDA0NjY5LCAwLjAwMzU3MywgMC4wMDMzNiwgMC4wMDM0MjUsIDAuMDAzMjkxLCAwLjAwMzIyNCwgMC4wMDMxNTIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMjgwOSwgMC4wMTI4NzYsIDAuMDEyODg0LCAwLjAxMjg4NiwgMC4wMTI4ODgsIDAuMDEyODg4LCAwLjAxMjg4OSIsIFwKLSAgICAgICAgICAiMC4wMTI2MzYsIDAuMDEyODE0LCAwLjAxMjg0NiwgMC4wMTI4NTcsIDAuMDEyODY2LCAwLjAxMjg3MSwgMC4wMTI4NzUiLCBcCi0gICAgICAgICAgIjAuMDEyNTg4LCAwLjAxMjc1OSwgMC4wMTI4MDcsIDAuMDEyODI2LCAwLjAxMjg0NCwgMC4wMTI4NTEsIDAuMDEyODU4IiwgXAotICAgICAgICAgICIwLjAxMjYyOCwgMC4wMTI3MzgsIDAuMDEyNzksIDAuMDEyODExLCAwLjAxMjgyOSwgMC4wMTI4NDEsIDAuMDEyODUxIiwgXAotICAgICAgICAgICIwLjAxMjczNywgMC4wMTI3NDUsIDAuMDEyNzg3LCAwLjAxMjgwNSwgMC4wMTI4MjQsIDAuMDEyODM1LCAwLjAxMjg0NiIsIFwKLSAgICAgICAgICAiMC4wMTMwNDcsIDAuMDEyODIzLCAwLjAxMjgxNSwgMC4wMTI4MjksIDAuMDEyODM5LCAwLjAxMjg0NSwgMC4wMTI4NTMiLCBcCi0gICAgICAgICAgIjAuMDEzNDA1LCAwLjAxMjk0NCwgMC4wMTI4OTEsIDAuMDEyODYxLCAwLjAxMjg3NywgMC4wMTI4NzMsIDAuMDEyODc0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDE1MTksIDAuMDAxNTQ5LCAwLjAwMTU1MiwgMC4wMDE1NTMsIDAuMDAxNTU0LCAwLjAwMTU1NCwgMC4wMDE1NTUiLCBcCi0gICAgICAgICAgIjAuMDAxNTAxLCAwLjAwMTU5NywgMC4wMDE2MTEsIDAuMDAxNjE2LCAwLjAwMTYyMSwgMC4wMDE2MjMsIDAuMDAxNjI0IiwgXAotICAgICAgICAgICIwLjAwMTU3NywgMC4wMDE2NjksIDAuMDAxNjYxLCAwLjAwMTY0MywgMC4wMDE2NDQsIDAuMDAxNjQ1LCAwLjAwMTY0NSIsIFwKLSAgICAgICAgICAiMC4wMDE4NDMsIDAuMDAxNzIsIDAuMDAxNjk2LCAwLjAwMTY4NCwgMC4wMDE2OTUsIDAuMDAxNjg4LCAwLjAwMTY4IiwgXAotICAgICAgICAgICIwLjAwMjA5MSwgMC4wMDE3OTEsIDAuMDAxNzcxLCAwLjAwMTc0OSwgMC4wMDE4LCAwLjAwMTc3LCAwLjAwMTc0OCIsIFwKLSAgICAgICAgICAiMC4wMDI3MzEsIDAuMDAyMDIzLCAwLjAwMjA0NiwgMC4wMDE5NjUsIDAuMDAxODk2LCAwLjAwMTg1NywgMC4wMDE4MTkiLCBcCi0gICAgICAgICAgIjAuMDAzMjgyLCAwLjAwMjI4MywgMC4wMDIwOTQsIDAuMDAyMTgzLCAwLjAwMjA1NywgMC4wMDIwMTcsIDAuMDAxOTI5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTAwMTUsIDAuMDEwMTE4LCAwLjAxMDEyOCwgMC4wMTAxMzIsIDAuMDEwMTM1LCAwLjAxMDEzMywgMC4wMTAxMzgiLCBcCi0gICAgICAgICAgIjAuMDA5ODc2LCAwLjAxMDA0NywgMC4wMTAwODUsIDAuMDEwMDk3LCAwLjAxMDEwOCwgMC4wMTAxMDgsIDAuMDEwMTE5IiwgXAotICAgICAgICAgICIwLjAxMDAwNSwgMC4wMTAwMjYsIDAuMDEwMDY1LCAwLjAxMDA4LCAwLjAxMDA5NCwgMC4wMTAxMDIsIDAuMDEwMTEiLCBcCi0gICAgICAgICAgIjAuMDEwMzM2LCAwLjAxMDEwNCwgMC4wMTAxMDIsIDAuMDEwMTA1LCAwLjAxMDExLCAwLjAxMDExNiwgMC4wMTAxMTgiLCBcCi0gICAgICAgICAgIjAuMDEwNzQ0LCAwLjAxMDIxMSwgMC4wMTAxNTcsIDAuMDEwMTQ4LCAwLjAxMDEzOCwgMC4wMTAxMzQsIDAuMDEwMTM0IiwgXAotICAgICAgICAgICIwLjAxMTQwNiwgMC4wMTA0NzYsIDAuMDEwMzE5LCAwLjAxMDI3LCAwLjAxMDIyOCwgMC4wMTAyMDgsIDAuMDEwMTkiLCBcCi0gICAgICAgICAgIjAuMDExOTMzLCAwLjAxMDczOSwgMC4wMTA0ODIsIDAuMDEwMzgyLCAwLjAxMDMxNCwgMC4wMTAyNzYsIDAuMDEwMjQ1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDAwMDIsIDAuMDAwMTE0LCAwLjAwMDEyNiwgMC4wMDAxMjksIDAuMDAwMTMyLCAwLjAwMDEzNCwgMC4wMDAxMzUiLCBcCi0gICAgICAgICAgIjAuMDAwMDE2LCAwLjAwMDIyMywgMC4wMDAyNTYsIDAuMDAwMjY2LCAwLjAwMDI3NSwgMC4wMDAyOCwgMC4wMDAyODQiLCBcCi0gICAgICAgICAgIjAuMDAwMTIyLCAwLjAwMDI4OSwgMC4wMDAzLCAwLjAwMDMwOCwgMC4wMDAzMTQsIDAuMDAwMzE3LCAwLjAwMDMyIiwgXAotICAgICAgICAgICIwLjAwMDQ1MywgMC4wMDAzMzgsIDAuMDAwMzU1LCAwLjAwMDM1MiwgMC4wMDAzNSwgMC4wMDAzNDksIDAuMDAwMzQyIiwgXAotICAgICAgICAgICIwLjAwMDcwNSwgMC4wMDA1MzYsIDAuMDAwNDMyLCAwLjAwMDQ0NSwgMC4wMDA0MjEsIDAuMDAwNDEsIDAuMDAwMzk4IiwgXAotICAgICAgICAgICIwLjAwMTMxNCwgMC4wMDA4MDMsIDAuMDAwNjkzLCAwLjAwMDYzMiwgMC4wMDA1NywgMC4wMDA1MDEsIDAuMDAwNDcyIiwgXAotICAgICAgICAgICIwLjAwMTkxOCwgMC4wMDExMDEsIDAuMDAwODQsIDAuMDAwNzQ3LCAwLjAwMDY1MywgMC4wMDA3MDUsIDAuMDAwNTYxIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBPQTIyWEwgKgotICogLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChPQTIyWEwpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4yODY3OTE7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2MzMxMzc7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjMyMzU4OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDYzMzEzNzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyOTYsIDAuMDAwMjk2LCAwLjAwMDI5NiwgMC4wMDAyOTYsIDAuMDAwMjk2LCAwLjAwMDI5NiwgMC4wMDAyOTYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAzMDEsIDAuMDAwMjk4LCAwLjAwMDI5OCwgMC4wMDAyOTgsIDAuMDAwMjk4LCAwLjAwMDI5OCwgMC4wMDAyOTgiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEExKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2NzQ4MTc7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjc0ODE3OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDY3MzY4NzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyOTcsIDAuMDAwMjk3LCAwLjAwMDI5NiwgMC4wMDAyOTYsIDAuMDAwMjk2LCAwLjAwMDI5NiwgMC4wMDAyOTYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAzMDEsIDAuMDAwMjk4LCAwLjAwMDI5NywgMC4wMDAyOTcsIDAuMDAwMjk3LCAwLjAwMDI5NywgMC4wMDAyOTciKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2ODAzOTQ7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjc4NTA0OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDY4MDM5NDsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA2OTMsIDAuMDAwNjkzLCAwLjAwMDY5MywgMC4wMDA2OTMsIDAuMDAwNjkzLCAwLjAwMDY5MywgMC4wMDA2OTMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAzMzcsIDAuMDAwMzM4LCAwLjAwMDMzOCwgMC4wMDAzMzgsIDAuMDAwMzM4LCAwLjAwMDMzOCwgMC4wMDAzMzgiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIxKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2NzI2OTc7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjcyNjk3OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDY3MjU4OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDY5MywgMC4wMDA2OTMsIDAuMDAwNjkzLCAwLjAwMDY5MywgMC4wMDA2OTMsIDAuMDAwNjkzLCAwLjAwMDY5MyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDMzNywgMC4wMDAzMzcsIDAuMDAwMzM3LCAwLjAwMDMzNywgMC4wMDAzMzcsIDAuMDAwMzM3LCAwLjAwMDMzNyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjE5NzMwMzsKLSAgICBmdW5jdGlvbiA6ICIoKEEwK0ExKSAoQjArQjEpKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTAiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5NDEzNCwgMC4xMDQ3MDcsIDAuMTk5NTg0LCAwLjM1NzUxLCAwLjUxNTM3MSwgMC44ODM2NzMsIDEuMDk0MDgiLCBcCi0gICAgICAgICAgIjAuMTAxMjY0LCAwLjExMTgzMSwgMC4yMDY3MjIsIDAuMzY0NjQ5LCAwLjUyMjUwNywgMC44OTA4MTIsIDEuMTAxMyIsIFwKLSAgICAgICAgICAiMC4xMDg4NjksIDAuMTE5NDM1LCAwLjIxNDMyOSwgMC4zNzIyNzUsIDAuNTMwMTE5LCAwLjg5ODQyNSwgMS4xMDkwOSIsIFwKLSAgICAgICAgICAiMC4xMTUzODYsIDAuMTI1OTUyLCAwLjIyMDgzNywgMC4zNzg3NTksIDAuNTM2NjA5LCAwLjkwNDg4MywgMS4xMTUzNCIsIFwKLSAgICAgICAgICAiMC4xMjA4NDMsIDAuMTMxNDI1LCAwLjIyNjMwOCwgMC4zODQyNjEsIDAuNTQyMDY4LCAwLjkxMDQ2NSwgMS4xMjA3NiIsIFwKLSAgICAgICAgICAiMC4xMjgyNDQsIDAuMTM4ODQ3LCAwLjIzMzcyOCwgMC4zOTE2OTMsIDAuNTQ5NTE3LCAwLjkxNzc5NCwgMS4xMjg0NiIsIFwKLSAgICAgICAgICAiMC4xMzM3NDEsIDAuMTQ0MywgMC4yMzkyMDQsIDAuMzk3MTM5LCAwLjU1NDk4NSwgMC45MjMzOTcsIDEuMTMzNzciKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTE4ODQxLCAwLjE0MDUwOCwgMC4zMzkyMjQsIDAuNjcxNTcxLCAxLjAwMzE4LCAxLjc3ODIyLCAyLjIyMTYyIiwgXAotICAgICAgICAgICIwLjExODc1MSwgMC4xNDA1ODksIDAuMzM5MjQyLCAwLjY3MTIwMSwgMS4wMDMxLCAxLjc3Nzk3LCAyLjIyMzA5IiwgXAotICAgICAgICAgICIwLjExODg3MywgMC4xNDA2NzMsIDAuMzM5MjM2LCAwLjY3MTE1NiwgMS4wMDMxMywgMS43NzkzMSwgMi4yMjMxOCIsIFwKLSAgICAgICAgICAiMC4xMTkxNTUsIDAuMTQwOTAxLCAwLjMzOTIyNSwgMC42NzE0ODIsIDEuMDAzNTksIDEuNzc5NDksIDIuMjIxNDciLCBcCi0gICAgICAgICAgIjAuMTE5NTY0LCAwLjE0MTI1LCAwLjMzODgxMiwgMC42NzE0NjEsIDEuMDAzNTksIDEuNzc5NzQsIDIuMjIxMTkiLCBcCi0gICAgICAgICAgIjAuMTIwMTY1LCAwLjE0MTc2LCAwLjMzOTIsIDAuNjcxNDQ5LCAxLjAwMzcsIDEuNzc5NzEsIDIuMjIyOSIsIFwKLSAgICAgICAgICAiMC4xMjA5NDQsIDAuMTQyMTczLCAwLjMzOTA2NiwgMC42NzExODQsIDEuMDAzNzgsIDEuNzc5NjgsIDIuMjIyOTkiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk0Mjk1LCAwLjEwNDA5NywgMC4xOTEzNDQsIDAuMzM2MjYzLCAwLjQ4MTA4MiwgMC44MTg4MTMsIDEuMDExNzgiLCBcCi0gICAgICAgICAgIjAuMTAwMDY2LCAwLjEwOTg2OSwgMC4xOTcxMiwgMC4zNDIwNDcsIDAuNDg2ODUyLCAwLjgyNDU5MywgMS4wMTc2MiIsIFwKLSAgICAgICAgICAiMC4xMDY3NDEsIDAuMTE2NTMzLCAwLjIwMzgsIDAuMzQ4NzIxLCAwLjQ5MzU0MiwgMC44MzEyNzQsIDEuMDI0MjQiLCBcCi0gICAgICAgICAgIjAuMTEyNjc1LCAwLjEyMjQ3MiwgMC4yMDk3MzcsIDAuMzU0NjU2LCAwLjQ5OTQ4MiwgMC44MzcyMTIsIDEuMDMwMTgiLCBcCi0gICAgICAgICAgIjAuMTE3ODMyLCAwLjEyNzY1NCwgMC4yMTQ5MDIsIDAuMzU5ODI0LCAwLjUwNDY1MiwgMC44NDIzNjMsIDEuMDM1NDEiLCBcCi0gICAgICAgICAgIjAuMTI0ODk2LCAwLjEzNDcyLCAwLjIyMjAwMiwgMC4zNjY5MzksIDAuNTExNzQ3LCAwLjg0OTQ3MSwgMS4wNDI0MyIsIFwKLSAgICAgICAgICAiMC4xMzAyNTgsIDAuMTQwMTI5LCAwLjIyNzQzNCwgMC4zNzI0MzIsIDAuNTE3MjE0LCAwLjg1NDk1NSwgMS4wNDc5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwOTI3OCwgMC4xMjg0ODUsIDAuMzA0NzE0LCAwLjYwMTMzOCwgMC44OTg3NDYsIDEuNTkwOSwgMS45ODkwNSIsIFwKLSAgICAgICAgICAiMC4xMDkyNjYsIDAuMTI4NDY5LCAwLjMwNDcwNiwgMC42MDEzNDksIDAuODk4ODAzLCAxLjU5MjQ2LCAxLjk4OTUzIiwgXAotICAgICAgICAgICIwLjEwOTM0MywgMC4xMjg1MzcsIDAuMzA0NzMsIDAuNjAxMzQsIDAuODk4NzUxLCAxLjU5Mjg0LCAxLjk4OTAyIiwgXAotICAgICAgICAgICIwLjEwOTYxNSwgMC4xMjg4MDEsIDAuMzA0NzkyLCAwLjYwMTMzOCwgMC44OTg3NTgsIDEuNTkyNDYsIDEuOTg2ODYiLCBcCi0gICAgICAgICAgIjAuMTEwMDc4LCAwLjEyOTIyOSwgMC4zMDQ5MDcsIDAuNjAxMzczLCAwLjg5ODc3MiwgMS41OTI2LCAxLjk4OTY1IiwgXAotICAgICAgICAgICIwLjExMDgxLCAwLjEyOTgyOCwgMC4zMDQ4MSwgMC42MDEzNTksIDAuODk4NjQyLCAxLjU5MjYyLCAxLjk4OTIiLCBcCi0gICAgICAgICAgIjAuMTExNjA0LCAwLjEzMDQ5LCAwLjMwNDk5LCAwLjYwMTMzNywgMC44OTg2MzQsIDEuNTkyNywgMS45ODkwOCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDkwNjIxLCAwLjEwMTE3NiwgMC4xOTU5ODQsIDAuMzUzODQ0LCAwLjUxMTY4NywgMC44Nzk5ODUsIDEuMDkwMzciLCBcCi0gICAgICAgICAgIjAuMDk3NjA3LCAwLjEwODE1MywgMC4yMDI5NjksIDAuMzYwODMzLCAwLjUxODY2NSwgMC44ODY5MjksIDEuMDk3MzkiLCBcCi0gICAgICAgICAgIjAuMTA0OTU5LCAwLjExNTUwNywgMC4yMTAzMzQsIDAuMzY4MjE3LCAwLjUyNjAzNywgMC44OTQzMTcsIDEuMTA0NzIiLCBcCi0gICAgICAgICAgIjAuMTExMDkxLCAwLjEyMTY0LCAwLjIxNjQ0OSwgMC4zNzQzMiwgMC41MzIxNywgMC45MDA0NDMsIDEuMTEwNzgiLCBcCi0gICAgICAgICAgIjAuMTE2MTUyLCAwLjEyNjcsIDAuMjIxNTA5LCAwLjM3OTQsIDAuNTM3MjE2LCAwLjkwNTQ3MiwgMS4xMTU4OSIsIFwKLSAgICAgICAgICAiMC4xMjI4ODMsIDAuMTMzNDc3LCAwLjIyODI5LCAwLjM4NjIxOSwgMC41NDM5OTcsIDAuOTEyMjY5LCAxLjEyMjY4IiwgXAotICAgICAgICAgICIwLjEyNzc3OCwgMC4xMzgzNDUsIDAuMjMzMTgsIDAuMzkxMTk4LCAwLjU0ODkwNywgMC45MTcxMzcsIDEuMTI3NTgiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTE4NTQyLCAwLjE0MDM1MiwgMC4zMzg2ODMsIDAuNjcxNDAxLCAxLjAwMzAxLCAxLjc3OTkzLCAyLjIyMzI1IiwgXAotICAgICAgICAgICIwLjExODUwOSwgMC4xNDAzNTEsIDAuMzM4NzAzLCAwLjY3MDcxMywgMS4wMDM5MSwgMS43Nzg1MiwgMi4yMjE1IiwgXAotICAgICAgICAgICIwLjExODYxMSwgMC4xNDA0MTYsIDAuMzM5MDIyLCAwLjY3MTMyMywgMS4wMDI5MywgMS43ODAwNiwgMi4yMjA3MSIsIFwKLSAgICAgICAgICAiMC4xMTg5ODIsIDAuMTQwNzMyLCAwLjMzOTAxOCwgMC42NzEzMjEsIDEuMDAyODUsIDEuNzc2ODQsIDIuMjIyODIiLCBcCi0gICAgICAgICAgIjAuMTE5NDM2LCAwLjE0MTA1MSwgMC4zMzkxLCAwLjY3MTQxNSwgMS4wMDMzOSwgMS43Nzk4MSwgMi4yMjEzNyIsIFwKLSAgICAgICAgICAiMC4xMjAwNDgsIDAuMTQxNTk3LCAwLjMzOTIyOCwgMC42NzEzNTMsIDEuMDAyODcsIDEuNzc3ODIsIDIuMjIwOTIiLCBcCi0gICAgICAgICAgIjAuMTIwODkxLCAwLjE0MjE4NywgMC4zMzkwNjIsIDAuNjcxNDg4LCAxLjAwMzgyLCAxLjc3ODI2LCAyLjIyMDcyIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5MTk1MiwgMC4xMDE3NDksIDAuMTg4OTg5LCAwLjMzMzkyMywgMC40Nzg3NTMsIDAuODE2NDgsIDEuMDA5NDQiLCBcCi0gICAgICAgICAgIjAuMDk5Mjc0LCAwLjEwOTA3MiwgMC4xOTYzMTgsIDAuMzQxMjUzLCAwLjQ4NjA5MywgMC44MjM5MTIsIDEuMDE2NzciLCBcCi0gICAgICAgICAgIjAuMTA4NDcxLCAwLjExODI3LCAwLjIwNTUzLCAwLjM1MDQ1NiwgMC40OTUyNzcsIDAuODMzMDE0LCAxLjAyNTk4IiwgXAotICAgICAgICAgICIwLjExNjY3NCwgMC4xMjY0NzEsIDAuMjEzNzEzLCAwLjM1ODYyNSwgMC41MDM0MzgsIDAuODQxMTc2LCAxLjAzNDE4IiwgXAotICAgICAgICAgICIwLjEyMzk3NiwgMC4xMzM3ODQsIDAuMjIxMDIxLCAwLjM2NTk1NiwgMC41MTA3NTEsIDAuODQ4NDc5LCAxLjA0MTUxIiwgXAotICAgICAgICAgICIwLjEzMzQ2NSwgMC4xNDMzMzEsIDAuMjMwNTg4LCAwLjM3NTUyOSwgMC41MjAzMjYsIDAuODU4MDU0LCAxLjA1MTAzIiwgXAotICAgICAgICAgICIwLjE0MDU2MywgMC4xNTA0MzIsIDAuMjM3ODEzLCAwLjM4MjcyOCwgMC41Mjc1NywgMC44NjUyOSwgMS4wNTgyMyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDkyNzYsIDAuMTI4NDU1LCAwLjMwNDY0LCAwLjYwMTMzNywgMC44OTg3NzksIDEuNTkwNzgsIDEuOTg4ODMiLCBcCi0gICAgICAgICAgIjAuMTA5MjczLCAwLjEyODQ3MywgMC4zMDQzNDksIDAuNjAxMzA4LCAwLjg5ODc5MiwgMS41OTI5NywgMS45ODkwNCIsIFwKLSAgICAgICAgICAiMC4xMDkzNDIsIDAuMTI4NDY5LCAwLjMwNDcyLCAwLjYwMTM1OSwgMC44OTg3NCwgMS41OTI1MiwgMS45ODkwNCIsIFwKLSAgICAgICAgICAiMC4xMDk3NDIsIDAuMTI4ODUzLCAwLjMwNDgxMiwgMC42MDEzNjQsIDAuODk4NTc2LCAxLjU5MjQ2LCAxLjk4OTY3IiwgXAotICAgICAgICAgICIwLjExMDI1OCwgMC4xMjkzMDEsIDAuMzA0OTQsIDAuNjAxNDc1LCAwLjg5ODcxNCwgMS41OTI3LCAxLjk4OTU1IiwgXAotICAgICAgICAgICIwLjExMTAxMiwgMC4xMzAwMjYsIDAuMzA0OTU3LCAwLjYwMTQ1NSwgMC44OTc2NDksIDEuNTkyNjIsIDEuOTg5MiIsIFwKLSAgICAgICAgICAiMC4xMTE4NDQsIDAuMTMwNTUsIDAuMzA1Mzk4LCAwLjYwMTMzOSwgMC44OTg3MTEsIDEuNTkyNTYsIDEuOTg5MDgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjAiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4NzQ3NiwgMC4wOTgwNDksIDAuMTkyOTMxLCAwLjM1MDg1NSwgMC41MDg3MTQsIDAuODc2OTk4LCAxLjA4NzQzIiwgXAotICAgICAgICAgICIwLjA5NTAwNSwgMC4xMDU1NjgsIDAuMjAwNDYyLCAwLjM1ODM3OSwgMC41MTYyNDMsIDAuODg0NTM5LCAxLjA5NTAxIiwgXAotICAgICAgICAgICIwLjEwNDQ0NiwgMC4xMTUwMTQsIDAuMjA5OTMzLCAwLjM2Nzg2NSwgMC41MjU2OTIsIDAuODkzOTg2LCAxLjEwNDQ1IiwgXAotICAgICAgICAgICIwLjExMjE1LCAwLjEyMjcyNiwgMC4yMTc2LCAwLjM3NTUzMywgMC41MzMzNTksIDAuOTAxNzI2LCAxLjExMjA3IiwgXAotICAgICAgICAgICIwLjExODc1MiwgMC4xMjkzMjIsIDAuMjI0MjQsIDAuMzgyMTksIDAuNTM5OTk2LCAwLjkwODI1MywgMS4xMTg4NSIsIFwKLSAgICAgICAgICAiMC4xMjc0ODksIDAuMTM4MTAzLCAwLjIzMzAxNSwgMC4zOTA5NzksIDAuNTQ4Nzk1LCAwLjkxNzA3NywgMS4xMjc1MiIsIFwKLSAgICAgICAgICAiMC4xMzQwNDUsIDAuMTQ0NjQzLCAwLjIzOTYyNywgMC4zOTc1NDcsIDAuNTU1Mzk1LCAwLjkyMzc4OCwgMS4xMzQxNiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTg4NTQsIDAuMTQwNjM3LCAwLjMzOTIyMSwgMC42NzE1NTIsIDEuMDAzMjksIDEuNzgwMDMsIDIuMjIxNTQiLCBcCi0gICAgICAgICAgIjAuMTE4ODA0LCAwLjE0MDYzMywgMC4zMzg4NjYsIDAuNjcxNTI2LCAxLjAwMywgMS43NzgzMiwgMi4yMjMyNSIsIFwKLSAgICAgICAgICAiMC4xMTg5MSwgMC4xNDA2OSwgMC4zMzkyMTYsIDAuNjcxNDc0LCAxLjAwMzI3LCAxLjc3OTY4LCAyLjIyMjkyIiwgXAotICAgICAgICAgICIwLjExOTI1NSwgMC4xNDA5MiwgMC4zMzkyMzIsIDAuNjcxNDY2LCAxLjAwMzgyLCAxLjc3OTgsIDIuMjIzMDkiLCBcCi0gICAgICAgICAgIjAuMTE5NTk2LCAwLjE0MTI0MywgMC4zMzkzMDksIDAuNjcxNDcxLCAxLjAwMzkyLCAxLjc3OTU0LCAyLjIyMzE0IiwgXAotICAgICAgICAgICIwLjEyMDAwNSwgMC4xNDE1NzUsIDAuMzM5MzczLCAwLjY3MTQ3MSwgMS4wMDM1MiwgMS43Nzk1MiwgMi4yMjMwOSIsIFwKLSAgICAgICAgICAiMC4xMjA1OSwgMC4xNDIsIDAuMzM5MjYyLCAwLjY3MTQ1MywgMS4wMDM4MSwgMS43Nzk2NywgMi4yMjI5OSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODQ5NTgsIDAuMDk0NjY0LCAwLjE4MTU0MywgMC4zMjYzMDIsIDAuNDcxMDc5LCAwLjgwODc5NSwgMS4wMDE4MiIsIFwKLSAgICAgICAgICAiMC4wOTA2NjYsIDAuMTAwMzcxLCAwLjE4NzI1NCwgMC4zMzE5NDEsIDAuNDc2NzUxLCAwLjgxNDQ2MywgMS4wMDc1IiwgXAotICAgICAgICAgICIwLjA5Njg1LCAwLjEwNjU2NCwgMC4xOTM0NTMsIDAuMzM4MjMsIDAuNDgzMDIsIDAuODIwODIyLCAxLjAxMzY0IiwgXAotICAgICAgICAgICIwLjEwMTk5LCAwLjExMTcwNCwgMC4xOTg1OSwgMC4zNDM0MDMsIDAuNDg4MjA5LCAwLjgyNTg3MiwgMS4wMTg4NyIsIFwKLSAgICAgICAgICAiMC4xMDYzMTEsIDAuMTE2MDQsIDAuMjAyOTI0LCAwLjM0NzcxLCAwLjQ5MjQzMSwgMC44MzAyMzgsIDEuMDIzMzMiLCBcCi0gICAgICAgICAgIjAuMTEyMTA5LCAwLjEyMTg3OCwgMC4yMDg4MjUsIDAuMzUzNTM1LCAwLjQ5ODMzNywgMC44MzY1MTIsIDEuMDI5MjgiLCBcCi0gICAgICAgICAgIjAuMTE2NDkyLCAwLjEyNjI2OSwgMC4yMTMyNTIsIDAuMzU3OTgsIDAuNTAyNzkyLCAwLjg0MDQ5NCwgMS4wMzM4NyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDc5OTUsIDAuMTI3MjU3LCAwLjMwMzczNiwgMC42MDA1NTgsIDAuODk2NTUyLCAxLjU5MDM3LCAxLjk4OTIxIiwgXAotICAgICAgICAgICIwLjEwNzk5NiwgMC4xMjcyNTUsIDAuMzAzNzMsIDAuNjAwNjE3LCAwLjg5Nzk3NCwgMS41ODkwMSwgMS45ODkwNCIsIFwKLSAgICAgICAgICAiMC4xMDgyMzksIDAuMTI3NDMxLCAwLjMwMzI5MSwgMC41OTk4NTYsIDAuODk3OTgzLCAxLjU5MjI4LCAxLjk4OTE5IiwgXAotICAgICAgICAgICIwLjEwODc0NywgMC4xMjc4NzEsIDAuMzAzODMyLCAwLjYwMDYxNSwgMC44OTY0MjQsIDEuNTg5NzYsIDEuOTg2MiIsIFwKLSAgICAgICAgICAiMC4xMDkzMTYsIDAuMTI4NDEsIDAuMzAzNjk1LCAwLjU5OTYzMywgMC44OTY5NzUsIDEuNTg5NjQsIDEuOTg5MDUiLCBcCi0gICAgICAgICAgIjAuMTEwMTc5LCAwLjEyOTA2MSwgMC4zMDQ0LCAwLjYwMDg4MiwgMC44OTgyLCAxLjU5MjE4LCAxLjk4NTM1IiwgXAotICAgICAgICAgICIwLjExMTE0NCwgMC4xMjk4OTgsIDAuMzA0MTQ4LCAwLjYwMDk3NywgMC44OTY5NDQsIDEuNTkwNDMsIDEuOTg2NDIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjEiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4Mzc2NiwgMC4wOTQzMTUsIDAuMTg5MTIsIDAuMzQ3MDcyLCAwLjUwNDgzLCAwLjg3MzExMywgMS4wODM0MyIsIFwKLSAgICAgICAgICAiMC4wOTExOTcsIDAuMTAxNzUxLCAwLjE5NjU1OSwgMC4zNTQ0MjksIDAuNTEyMjY3LCAwLjg4MDUzNCwgMS4wOTA5MyIsIFwKLSAgICAgICAgICAiMC4xMDAwNjEsIDAuMTEwNjEsIDAuMjA1NDc0LCAwLjM2MzI5OCwgMC41MjExMzIsIDAuODg5NCwgMS4wOTk5MyIsIFwKLSAgICAgICAgICAiMC4xMDcwMzgsIDAuMTE3NTc5LCAwLjIxMjM5MSwgMC4zNzAyNDIsIDAuNTI4MDU5LCAwLjg5NjMyNywgMS4xMDY3NCIsIFwKLSAgICAgICAgICAiMC4xMTI2NDQsIDAuMTIzMjIzLCAwLjIxNzk5LCAwLjM3NTk0MywgMC41MzM2NzEsIDAuOTAyMTI5LCAxLjExMjM3IiwgXAotICAgICAgICAgICIwLjEyMDYzNCwgMC4xMzEyMjYsIDAuMjI1NzM1LCAwLjM4Mzk4MiwgMC41NDE0MjUsIDAuOTA5NjgzLCAxLjEyMDE1IiwgXAotICAgICAgICAgICIwLjEyNTk0NCwgMC4xMzY1MzIsIDAuMjMxMzg3LCAwLjM4OTIzNSwgMC41NDc2NjgsIDAuOTE1NzY5LCAxLjEyNjI0Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExODQ4NSwgMC4xNDAyOTgsIDAuMzM4ODEsIDAuNjcxNDk4LCAxLjAwMjc5LCAxLjc3NzYyLCAyLjIyMzE1IiwgXAotICAgICAgICAgICIwLjExODQ2OSwgMC4xNDAzMywgMC4zMzg2OCwgMC42NzA3NjgsIDEuMDAzMzgsIDEuNzc3NzksIDIuMjIzMjkiLCBcCi0gICAgICAgICAgIjAuMTE4NjY5LCAwLjE0MDQ0LCAwLjMzODcwMiwgMC42NzEyOTgsIDEuMDAyOCwgMS43Nzk2NiwgMi4yMjMwNiIsIFwKLSAgICAgICAgICAiMC4xMTkwNDEsIDAuMTQwNzYyLCAwLjMzODk3NSwgMC42NzEzMDcsIDEuMDAzMDQsIDEuNzc5NzMsIDIuMjIxMjgiLCBcCi0gICAgICAgICAgIjAuMTE5NDQ0LCAwLjE0MTEwNywgMC4zMzg5OTQsIDAuNjcwNDQxLCAxLjAwMzgxLCAxLjc3NzU4LCAyLjIyMTcyIiwgXAotICAgICAgICAgICIwLjExOTkxNiwgMC4xNDEzOTcsIDAuMzM5MTk1LCAwLjY3MTQ2NSwgMS4wMDI4NSwgMS43Nzc5OSwgMi4yMjAzNyIsIFwKLSAgICAgICAgICAiMC4xMjA3NjgsIDAuMTQyMDY5LCAwLjMzOTExOSwgMC42NzE0ODcsIDEuMDAyNTcsIDEuNzc3OSwgMi4yMjI1MiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODI0MDEsIDAuMDkyMTA0LCAwLjE3ODk4NCwgMC4zMjM3NjgsIDAuNDY4NTUsIDAuODA2Mjc3LCAwLjk5OTI0IiwgXAotICAgICAgICAgICIwLjA4OTc2MiwgMC4wOTk0NzgsIDAuMTg2MzU2LCAwLjMzMTE0OCwgMC40NzU5MzQsIDAuODEzNTgyLCAxLjAwNjU3IiwgXAotICAgICAgICAgICIwLjA5ODI4NywgMC4xMDgwMDMsIDAuMTk0ODk2LCAwLjMzOTY1NCwgMC40ODQzODQsIDAuODIyMzE4LCAxLjAxNTEyIiwgXAotICAgICAgICAgICIwLjEwNTEzLCAwLjExNDg1MSwgMC4yMDE3MjgsIDAuMzQ2NDc1LCAwLjQ5MTM0MSwgMC44Mjg5OTgsIDEuMDIyMDEiLCBcCi0gICAgICAgICAgIjAuMTEwODg2LCAwLjEyMDY0MywgMC4yMDc1MTcsIDAuMzUyMjEyLCAwLjQ5Njk4NiwgMC44MzQ5MDcsIDEuMDI3NzQiLCBcCi0gICAgICAgICAgIjAuMTE4NjA5LCAwLjEyODQ0NywgMC4yMTU0MjcsIDAuMzYwMTQyLCAwLjUwNDgzLCAwLjg0Mjc0MiwgMS4wMzYwMSIsIFwKLSAgICAgICAgICAiMC4xMjQ0MzksIDAuMTM0MjA3LCAwLjIyMTI5OCwgMC4zNjU5MzMsIDAuNTEwNzUzLCAwLjg0ODYyMSwgMS4wNDE2OSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDc5ODEsIDAuMTI3MjI0LCAwLjMwMzM0MywgMC42MDA2NiwgMC44OTc5ODIsIDEuNTkyNDMsIDEuOTg1NzciLCBcCi0gICAgICAgICAgIjAuMTA3OTk1LCAwLjEyNzI0MywgMC4zMDMzODMsIDAuNTk5NTA2LCAwLjg5NjYzMiwgMS41OTIxMiwgMS45ODQ4MSIsIFwKLSAgICAgICAgICAiMC4xMDgyOTEsIDAuMTI3NDk3LCAwLjMwMzMxNywgMC41OTk4NTQsIDAuODk3ODY2LCAxLjU5MjIzLCAxLjk4NzUyIiwgXAotICAgICAgICAgICIwLjEwODkzOCwgMC4xMjgwNCwgMC4zMDM5MjQsIDAuNjAwNjYsIDAuODk3OTY5LCAxLjU5MjI3LCAxLjk4NTgiLCBcCi0gICAgICAgICAgIjAuMTA5NTIxLCAwLjEyODU2OCwgMC4zMDQxMDksIDAuNjAwNjk3LCAwLjg5NjkyNiwgMS41ODkzOSwgMS45ODg5OSIsIFwKLSAgICAgICAgICAiMC4xMTA0MjYsIDAuMTI5MzE1LCAwLjMwNDEzNSwgMC42MDA5OTMsIDAuODk4MjQxLCAxLjU5MjE3LCAxLjk4NTM1IiwgXAotICAgICAgICAgICIwLjExMTQ1OCwgMC4xMzAxMzIsIDAuMzA0MzQxLCAwLjYwMDE4NiwgMC44OTgzNTQsIDEuNTg5MzksIDEuOTg3NCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDE3NDEsIDAuMDAxNzQyLCAwLjAwMTc0OCwgMC4wMDE3NSwgMC4wMDE3NTIsIDAuMDAxNzUxLCAwLjAwMTc1MiIsIFwKLSAgICAgICAgICAiMC4wMDE3MTEsIDAuMDAxNzEzLCAwLjAwMTcxOSwgMC4wMDE3MjIsIDAuMDAxNzI0LCAwLjAwMTcyNCwgMC4wMDE3MjMiLCBcCi0gICAgICAgICAgIjAuMDAxNzAyLCAwLjAwMTcwNCwgMC4wMDE3MTEsIDAuMDAxNzE0LCAwLjAwMTcxNSwgMC4wMDE3MTYsIDAuMDAxNzE2IiwgXAotICAgICAgICAgICIwLjAwMTcxMywgMC4wMDE3MTQsIDAuMDAxNzIxLCAwLjAwMTcyMywgMC4wMDE3MjUsIDAuMDAxNzI2LCAwLjAwMTcyNSIsIFwKLSAgICAgICAgICAiMC4wMDE3NDMsIDAuMDAxNzQzLCAwLjAwMTc1LCAwLjAwMTc1MiwgMC4wMDE3NTMsIDAuMDAxNzU0LCAwLjAwMTc1NCIsIFwKLSAgICAgICAgICAiMC4wMDE4MTEsIDAuMDAxODExLCAwLjAwMTgxNSwgMC4wMDE4MTcsIDAuMDAxODE4LCAwLjAwMTgyLCAwLjAwMTgyIiwgXAotICAgICAgICAgICIwLjAwMTkwMywgMC4wMDE5MDMsIDAuMDAxOTAzLCAwLjAwMTkwNSwgMC4wMDE5MDUsIDAuMDAxOTA2LCAwLjAwMTkwNiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDMyMywgMC4wMDQzMjUsIDAuMDA0MzMsIDAuMDA0MzMyLCAwLjAwNDMzMiwgMC4wMDQzMzMsIDAuMDA0MzMzIiwgXAotICAgICAgICAgICIwLjAwNDMwMiwgMC4wMDQzMDQsIDAuMDA0MzEsIDAuMDA0MzEyLCAwLjAwNDMxMywgMC4wMDQzMTQsIDAuMDA0MzE0IiwgXAotICAgICAgICAgICIwLjAwNDMxMSwgMC4wMDQzMTIsIDAuMDA0MzE4LCAwLjAwNDMyMSwgMC4wMDQzMjIsIDAuMDA0MzIzLCAwLjAwNDMyMyIsIFwKLSAgICAgICAgICAiMC4wMDQzNDUsIDAuMDA0MzQ3LCAwLjAwNDM1MiwgMC4wMDQzNTUsIDAuMDA0MzU1LCAwLjAwNDM1NiwgMC4wMDQzNTciLCBcCi0gICAgICAgICAgIjAuMDA0Mzk5LCAwLjAwNDQsIDAuMDA0NDAzLCAwLjAwNDQwNiwgMC4wMDQ0MDcsIDAuMDA0NDA3LCAwLjAwNDQwNyIsIFwKLSAgICAgICAgICAiMC4wMDQ1MTEsIDAuMDA0NTEyLCAwLjAwNDUxNCwgMC4wMDQ1MTUsIDAuMDA0NTE2LCAwLjAwNDUxNiwgMC4wMDQ1MTYiLCBcCi0gICAgICAgICAgIjAuMDA0NjI1LCAwLjAwNDYyNSwgMC4wMDQ2MjcsIDAuMDA0NjMsIDAuMDA0NjMsIDAuMDA0NjMxLCAwLjAwNDYzMiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkExIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDE1MzMsIDAuMDAxNTM0LCAwLjAwMTUzOSwgMC4wMDE1NDEsIDAuMDAxNTQyLCAwLjAwMTU0MiwgMC4wMDE1NDMiLCBcCi0gICAgICAgICAgIjAuMDAxNDg1LCAwLjAwMTQ4NywgMC4wMDE0OTIsIDAuMDAxNDk0LCAwLjAwMTQ5NSwgMC4wMDE0OTYsIDAuMDAxNDk1IiwgXAotICAgICAgICAgICIwLjAwMTQ2NywgMC4wMDE0NjgsIDAuMDAxNDc0LCAwLjAwMTQ3NywgMC4wMDE0NzcsIDAuMDAxNDc4LCAwLjAwMTQ3OCIsIFwKLSAgICAgICAgICAiMC4wMDE0NzQsIDAuMDAxNDc1LCAwLjAwMTQ4MiwgMC4wMDE0ODQsIDAuMDAxNDg1LCAwLjAwMTQ4NiwgMC4wMDE0ODYiLCBcCi0gICAgICAgICAgIjAuMDAxNTAzLCAwLjAwMTUwNSwgMC4wMDE1MTEsIDAuMDAxNTEzLCAwLjAwMTUxNCwgMC4wMDE1MTUsIDAuMDAxNTE1IiwgXAotICAgICAgICAgICIwLjAwMTU3MSwgMC4wMDE1NzIsIDAuMDAxNTc4LCAwLjAwMTU4MSwgMC4wMDE1ODIsIDAuMDAxNTgzLCAwLjAwMTU4MyIsIFwKLSAgICAgICAgICAiMC4wMDE2NiwgMC4wMDE2NiwgMC4wMDE2NjIsIDAuMDAxNjY0LCAwLjAwMTY2NiwgMC4wMDE2NjYsIDAuMDAxNjY3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0MDU2LCAwLjAwNDA1OCwgMC4wMDQwNjIsIDAuMDA0MDY0LCAwLjAwNDA2NSwgMC4wMDQwNjUsIDAuMDA0MDY1IiwgXAotICAgICAgICAgICIwLjAwNDAzOSwgMC4wMDQwNDEsIDAuMDA0MDQ3LCAwLjAwNDA1LCAwLjAwNDA1MSwgMC4wMDQwNTIsIDAuMDA0MDUyIiwgXAotICAgICAgICAgICIwLjAwNDA4NCwgMC4wMDQwODYsIDAuMDA0MDkzLCAwLjAwNDA5NiwgMC4wMDQwOTgsIDAuMDA0MDk5LCAwLjAwNDA5OSIsIFwKLSAgICAgICAgICAiMC4wMDQxNTksIDAuMDA0MTYxLCAwLjAwNDE2MywgMC4wMDQxNjUsIDAuMDA0MTY2LCAwLjAwNDE2NiwgMC4wMDQxNjciLCBcCi0gICAgICAgICAgIjAuMDA0MjIzLCAwLjAwNDIyMiwgMC4wMDQyMjMsIDAuMDA0MjI2LCAwLjAwNDIyNywgMC4wMDQyMjgsIDAuMDA0MjI4IiwgXAotICAgICAgICAgICIwLjAwNDM2MiwgMC4wMDQzNjIsIDAuMDA0MzYyLCAwLjAwNDM2NCwgMC4wMDQzNjUsIDAuMDA0MzY2LCAwLjAwNDM2NiIsIFwKLSAgICAgICAgICAiMC4wMDQ1MDIsIDAuMDA0NTAxLCAwLjAwNDQ5OSwgMC4wMDQ1LCAwLjAwNDUwMSwgMC4wMDQ1MDIsIDAuMDA0NTAyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTczOSwgMC4wMDE3NDEsIDAuMDAxNzQ2LCAwLjAwMTc0OSwgMC4wMDE3NDksIDAuMDAxNzUxLCAwLjAwMTc1MSIsIFwKLSAgICAgICAgICAiMC4wMDE3MzEsIDAuMDAxNzMzLCAwLjAwMTc0LCAwLjAwMTc0MywgMC4wMDE3NDQsIDAuMDAxNzQ0LCAwLjAwMTc0NyIsIFwKLSAgICAgICAgICAiMC4wMDE3NjYsIDAuMDAxNzY3LCAwLjAwMTc3NCwgMC4wMDE3NzgsIDAuMDAxNzc5LCAwLjAwMTc4MSwgMC4wMDE3OCIsIFwKLSAgICAgICAgICAiMC4wMDE4MzQsIDAuMDAxODM1LCAwLjAwMTg0MSwgMC4wMDE4NDMsIDAuMDAxODQ1LCAwLjAwMTg0NiwgMC4wMDE4NDYiLCBcCi0gICAgICAgICAgIjAuMDAxOTIxLCAwLjAwMTkyMiwgMC4wMDE5MjgsIDAuMDAxOTMyLCAwLjAwMTkzMywgMC4wMDE5MzUsIDAuMDAxOTM1IiwgXAotICAgICAgICAgICIwLjAwMjA3NiwgMC4wMDIwNzYsIDAuMDAyMDgsIDAuMDAyMDg0LCAwLjAwMjA4NSwgMC4wMDIwODYsIDAuMDAyMDg3IiwgXAotICAgICAgICAgICIwLjAwMjIyNSwgMC4wMDIyMjUsIDAuMDAyMjI2LCAwLjAwMjIyOCwgMC4wMDIyMywgMC4wMDIyMzEsIDAuMDAyMjMyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzMDg2LCAwLjAwMzA4NiwgMC4wMDMwODYsIDAuMDAzMDg2LCAwLjAwMzA4NiwgMC4wMDMwODYsIDAuMDAzMDg2IiwgXAotICAgICAgICAgICIwLjAwMzA2LCAwLjAwMzA2LCAwLjAwMzA2MSwgMC4wMDMwNjIsIDAuMDAzMDYyLCAwLjAwMzA2MiwgMC4wMDMwNjIiLCBcCi0gICAgICAgICAgIjAuMDAzMDc0LCAwLjAwMzA3NCwgMC4wMDMwNzUsIDAuMDAzMDc2LCAwLjAwMzA3NiwgMC4wMDMwNzYsIDAuMDAzMDc2IiwgXAotICAgICAgICAgICIwLjAwMzExNiwgMC4wMDMxMTUsIDAuMDAzMTE3LCAwLjAwMzExOCwgMC4wMDMxMTgsIDAuMDAzMTE4LCAwLjAwMzExOCIsIFwKLSAgICAgICAgICAiMC4wMDMxNzcsIDAuMDAzMTc4LCAwLjAwMzE3OCwgMC4wMDMxNzcsIDAuMDAzMTc3LCAwLjAwMzE3NywgMC4wMDMxNzciLCBcCi0gICAgICAgICAgIjAuMDAzMzAyLCAwLjAwMzMwMiwgMC4wMDMyOTksIDAuMDAzMjk4LCAwLjAwMzI5OCwgMC4wMDMyOTgsIDAuMDAzMjk4IiwgXAotICAgICAgICAgICIwLjAwMzQyNywgMC4wMDM0MjYsIDAuMDAzNDIzLCAwLjAwMzQyMiwgMC4wMDM0MjEsIDAuMDAzNDIsIDAuMDAzNDIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxNTA0LCAwLjAwMTUwNiwgMC4wMDE1MTEsIDAuMDAxNTEzLCAwLjAwMTUxMywgMC4wMDE1MTQsIDAuMDAxNTE0IiwgXAotICAgICAgICAgICIwLjAwMTQ4OCwgMC4wMDE0OSwgMC4wMDE0OTYsIDAuMDAxNDk4LCAwLjAwMTUsIDAuMDAxNSwgMC4wMDE1MDEiLCBcCi0gICAgICAgICAgIjAuMDAxNTE3LCAwLjAwMTUxOSwgMC4wMDE1MjYsIDAuMDAxNTI4LCAwLjAwMTUzLCAwLjAwMTUzMSwgMC4wMDE1MzEiLCBcCi0gICAgICAgICAgIjAuMDAxNTg0LCAwLjAwMTU4NSwgMC4wMDE1OTEsIDAuMDAxNTkzLCAwLjAwMTU5NCwgMC4wMDE1OTUsIDAuMDAxNTk1IiwgXAotICAgICAgICAgICIwLjAwMTY2NywgMC4wMDE2NjgsIDAuMDAxNjcxLCAwLjAwMTY3MywgMC4wMDE2NzQsIDAuMDAxNjc1LCAwLjAwMTY3NSIsIFwKLSAgICAgICAgICAiMC4wMDE4MTMsIDAuMDAxODEzLCAwLjAwMTgwNywgMC4wMDE4MTksIDAuMDAxODA5LCAwLjAwMTgxLCAwLjAwMTgxIiwgXAotICAgICAgICAgICIwLjAwMTk0MywgMC4wMDE5NDEsIDAuMDAxOTQsIDAuMDAxOTQyLCAwLjAwMTk1OCwgMC4wMDE5NTksIDAuMDAxOTU5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyODE2LCAwLjAwMjgxNywgMC4wMDI4MTksIDAuMDAyODIsIDAuMDAyODIsIDAuMDAyODIsIDAuMDAyODIiLCBcCi0gICAgICAgICAgIjAuMDAyODA3LCAwLjAwMjgwOCwgMC4wMDI4MTIsIDAuMDAyODEzLCAwLjAwMjgxMywgMC4wMDI4MTQsIDAuMDAyODE0IiwgXAotICAgICAgICAgICIwLjAwMjg1NSwgMC4wMDI4NTYsIDAuMDAyODU5LCAwLjAwMjg2LCAwLjAwMjg2LCAwLjAwMjg2LCAwLjAwMjg2IiwgXAotICAgICAgICAgICIwLjAwMjkzMywgMC4wMDI5MzIsIDAuMDAyOTMyLCAwLjAwMjkzMiwgMC4wMDI5MzIsIDAuMDAyOTMyLCAwLjAwMjkzMiIsIFwKLSAgICAgICAgICAiMC4wMDMwMTMsIDAuMDAzMDEzLCAwLjAwMzAxMywgMC4wMDMwMTQsIDAuMDAzMDE0LCAwLjAwMzAxNCwgMC4wMDMwMTQiLCBcCi0gICAgICAgICAgIjAuMDAzMTYsIDAuMDAzMTczLCAwLjAwMzE2NywgMC4wMDMxNjYsIDAuMDAzMTY1LCAwLjAwMzE2NCwgMC4wMDMxNjQiLCBcCi0gICAgICAgICAgIjAuMDAzMzI1LCAwLjAwMzMwMywgMC4wMDMyOTUsIDAuMDAzMzA2LCAwLjAwMzMwNCwgMC4wMDMyOTIsIDAuMDAzMzA0Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IE9BSTIyMlhMICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChPQUkyMjJYTCkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjI4NzExMzsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQTApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY2NzY4MzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2NjcxNDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2Njc2ODM7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjk2LCAwLjAwMDI5NiwgMC4wMDAyOTYsIDAuMDAwMjk2LCAwLjAwMDI5NiwgMC4wMDAyOTYsIDAuMDAwMjk2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjk3LCAwLjAwMDI5NywgMC4wMDAyOTcsIDAuMDAwMjk3LCAwLjAwMDI5NywgMC4wMDAyOTcsIDAuMDAwMjk3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihBMSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjY5Nzk7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjY5Nzk7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjY4MzUxOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDI5NiwgMC4wMDAyOTcsIDAuMDAwMjk3LCAwLjAwMDI5NiwgMC4wMDAyOTYsIDAuMDAwMjk2LCAwLjAwMDI5NiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDI5NywgMC4wMDAyOTcsIDAuMDAwMjk3LCAwLjAwMDI5NiwgMC4wMDAyOTcsIDAuMDAwMjk3LCAwLjAwMDI5NyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQjApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDcyMDQzOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDcxOTU0OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDcyMDQzOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDI5NiwgMC4wMDAyOTYsIDAuMDAwMjk2LCAwLjAwMDI5NiwgMC4wMDAyOTYsIDAuMDAwMjk2LCAwLjAwMDI5NiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDI5NywgMC4wMDAyOTcsIDAuMDAwMjk3LCAwLjAwMDI5NywgMC4wMDAyOTcsIDAuMDAwMjk3LCAwLjAwMDI5NyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQjEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY5NDQ5OTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2OTQ0OTk7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjkzMzUzOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDI5NiwgMC4wMDAyOTYsIDAuMDAwMjk2LCAwLjAwMDI5NiwgMC4wMDAyOTYsIDAuMDAwMjk2LCAwLjAwMDI5NiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDI5NywgMC4wMDAyOTcsIDAuMDAwMjk3LCAwLjAwMDI5NywgMC4wMDAyOTcsIDAuMDAwMjk3LCAwLjAwMDI5NyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQzApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDc0Nzg0NjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA3NDYyMTE7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNzQ3ODQ2OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDY0NCwgMC4wMDA2NDUsIDAuMDAwNjQ1LCAwLjAwMDY0NCwgMC4wMDA2NDUsIDAuMDAwNjQ1LCAwLjAwMDY0NCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDMzNywgMC4wMDAzMzcsIDAuMDAwMzM3LCAwLjAwMDMzOCwgMC4wMDAzMzgsIDAuMDAwMzM4LCAwLjAwMDMzOCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQzEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDc2ODk1NzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA3Njg5NTc7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNzY4ODI2OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDY0NCwgMC4wMDA2NDQsIDAuMDAwNjQ0LCAwLjAwMDY0NCwgMC4wMDA2NDQsIDAuMDAwNjQ0LCAwLjAwMDY0NCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDMzNywgMC4wMDAzMzcsIDAuMDAwMzM3LCAwLjAwMDMzNywgMC4wMDAzMzcsIDAuMDAwMzM3LCAwLjAwMDMzNyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjA4NjgzOTk7Ci0gICAgZnVuY3Rpb24gOiAiKCEoKChDMCtDMSkgKEEwK0ExKSkgKEIwK0IxKSkpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTI3NDg2LCAwLjE0NjYwMywgMC4zMTg1NDYsIDAuNjAyNzM0LCAwLjg4NjQ5MiwgMS41NDk4MywgMS45Mjc5MiIsIFwKLSAgICAgICAgICAiMC4xMzMyOTUsIDAuMTUyNDU4LCAwLjMyNDM1MSwgMC42MDg1ODIsIDAuODkyMzU1LCAxLjU1NDMyLCAxLjkzMzI3IiwgXAotICAgICAgICAgICIwLjE0MDQyNywgMC4xNTk1NTUsIDAuMzMxNDUyLCAwLjYxNTc0MywgMC44OTk1MTMsIDEuNTYyMzYsIDEuOTQwOTciLCBcCi0gICAgICAgICAgIjAuMTQ3NDEyLCAwLjE2NjU0LCAwLjMzODYzLCAwLjYyMjg1NCwgMC45MDY2MywgMS41Njk3MSwgMS45NDg1NCIsIFwKLSAgICAgICAgICAiMC4xNTQ1MjYsIDAuMTczODgyLCAwLjM0NTY2MSwgMC42Mjk5ODksIDAuOTEzNzQzLCAxLjU3NTYyLCAxLjk1NTA4IiwgXAotICAgICAgICAgICIwLjE2NTc4MSwgMC4xODQ5NSwgMC4zNTczOSwgMC42NDE4NjUsIDAuOTI1Njk5LCAxLjU4NzU2LCAxLjk2NTc3IiwgXAotICAgICAgICAgICIwLjE3NTY3NSwgMC4xOTQ3NTcsIDAuMzY2NzExLCAwLjY1MTUxMSwgMC45MzU0ODgsIDEuNTk3NzcsIDEuOTc1NjgiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjU3OTg0LCAwLjI5ODA5NiwgMC42NTk0NTgsIDEuMjYxODgsIDEuODYzNywgMy4yNjc3MSwgNC4wNzA5OCIsIFwKLSAgICAgICAgICAiMC4yNTc5MywgMC4yOTgwODYsIDAuNjU5NDI4LCAxLjI2MTg4LCAxLjg2MzQ3LCAzLjI2Nzg2LCA0LjA3MDkiLCBcCi0gICAgICAgICAgIjAuMjU4NDA5LCAwLjI5ODIzLCAwLjY1OTU0MywgMS4yNjE5NSwgMS44NjM3NywgMy4yNjgzOCwgNC4wNzAzNSIsIFwKLSAgICAgICAgICAiMC4yNjA0NjEsIDAuMjk5OTA4LCAwLjY1OTYzOSwgMS4yNjE5NSwgMS44NjM5MywgMy4yNjc5OCwgNC4wNzEwNCIsIFwKLSAgICAgICAgICAiMC4yNjM3NTQsIDAuMzAyNzY2LCAwLjY1OTYxOSwgMS4yNjE5NCwgMS44NjQwMywgMy4yNjc3OCwgNC4wNzA5MyIsIFwKLSAgICAgICAgICAiMC4yNzA2NzUsIDAuMzA4OTA4LCAwLjY2MTU5OCwgMS4yNjE2NiwgMS44NjQxMiwgMy4yNjc4MSwgNC4wNzAzNSIsIFwKLSAgICAgICAgICAiMC4yNzc5MTgsIDAuMzE1NDgzLCAwLjY2NDU0NiwgMS4yNjE5OSwgMS44NjM3MSwgMy4yNjgxLCA0LjA3MDU0Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE2OTAxMiwgMC4xOTM1ODYsIDAuNDE0MDM0LCAwLjc4NDA1LCAxLjE1NDk3LCAyLjAyMDU0LCAyLjUxNDMyIiwgXAotICAgICAgICAgICIwLjE3NTkxNSwgMC4yMDA0MDUsIDAuNDIwODU3LCAwLjc5MDcxNSwgMS4xNjE5NywgMi4wMjczMiwgMi41MjA4NCIsIFwKLSAgICAgICAgICAiMC4xODI2NTQsIDAuMjA3MTIzLCAwLjQyNzYyMiwgMC43OTc4NzYsIDEuMTY5MTMsIDIuMDM0NzMsIDIuNTI4MTIiLCBcCi0gICAgICAgICAgIjAuMTg4NTY0LCAwLjIxMzA5OSwgMC40MzM1NjYsIDAuODAzNjcxLCAxLjE3NTY0LCAyLjA0MDk1LCAyLjUzNDE2IiwgXAotICAgICAgICAgICIwLjE5NDI1NCwgMC4yMTg3OTgsIDAuNDM5NDUxLCAwLjgwOTQyLCAxLjE3OTk2LCAyLjA0NTkzLCAyLjU0MDA1IiwgXAotICAgICAgICAgICIwLjIwMzM4MSwgMC4yMjc5MDksIDAuNDQ4NDAyLCAwLjgxODY2NSwgMS4xODk4MiwgMi4wNTQwMiwgMi41NDk5MiIsIFwKLSAgICAgICAgICAiMC4yMTEyOTcsIDAuMjM1ODcxLCAwLjQ1NjI3NywgMC44MjYxNjMsIDEuMTk2OTUsIDIuMDYyMDYsIDIuNTU2OTciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzA0OTgsIDAuMzU1NjM2LCAwLjgxNDM5NywgMS41ODE0MywgMi4zNDc0NiwgNC4xMzUyOCwgNS4xNjE5NyIsIFwKLSAgICAgICAgICAiMC4zMDUwMDMsIDAuMzU1NTE2LCAwLjgxNDU5NSwgMS41ODA4MywgMi4zNDc1MiwgNC4xMzQ5NywgNS4xNTcwNiIsIFwKLSAgICAgICAgICAiMC4zMDQ5NTUsIDAuMzU1NTA3LCAwLjgxNDQ0LCAxLjU4MTAyLCAyLjM0NzczLCA0LjEzNjIzLCA1LjE1NzU0IiwgXAotICAgICAgICAgICIwLjMwNTM2MSwgMC4zNTU2OTEsIDAuODE0MzUxLCAxLjU4MjI0LCAyLjM0ODQsIDQuMTM2NDUsIDUuMTU3NjEiLCBcCi0gICAgICAgICAgIjAuMzA2NTE0LCAwLjM1NjY3OSwgMC44MTQ0MzQsIDEuNTgxMDksIDIuMzQ3MjcsIDQuMTM4MzYsIDUuMTU3NDkiLCBcCi0gICAgICAgICAgIjAuMzA5OTE1LCAwLjM1OTUwNCwgMC44MTQ3NzgsIDEuNTgwOTYsIDIuMzQ3NTEsIDQuMTQwMjUsIDUuMTU3ODYiLCBcCi0gICAgICAgICAgIjAuMzEzODAyLCAwLjM2MzExMiwgMC44MTU4OTYsIDEuNTgwOTQsIDIuMzQ3NDEsIDQuMTM2OTksIDUuMTU5NzYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEyNTIyNCwgMC4xNDQzNzMsIDAuMzE2MjU1LCAwLjYwMDQ5MiwgMC44ODQyNzcsIDEuNTQ3MjYsIDEuOTI0ODMiLCBcCi0gICAgICAgICAgIjAuMTMyNDcsIDAuMTUxNjE0LCAwLjMyMzU1NSwgMC42MDc3NDUsIDAuODkxNTE4LCAxLjU1MzUsIDEuOTMzNDYiLCBcCi0gICAgICAgICAgIjAuMTQxNzMyLCAwLjE2MDg0OSwgMC4zMzI2NDYsIDAuNjE2OTAyLCAwLjkwMDg4NywgMS41NjMxLCAxLjk0MjIyIiwgXAotICAgICAgICAgICIwLjE1MTE4MSwgMC4xNzAyODcsIDAuMzQyMTE2LCAwLjYyNjIzMSwgMC45MDk5NzYsIDEuNTczMDcsIDEuOTUwOTgiLCBcCi0gICAgICAgICAgIjAuMTYwNzA2LCAwLjE3OTgwNywgMC4zNTExMTEsIDAuNjM1NTA5LCAwLjkxOTMwMywgMS41ODExMSwgMS45NjA1IiwgXAotICAgICAgICAgICIwLjE3NjA0MywgMC4xOTUwMjcsIDAuMzY2NDc0LCAwLjY1MDUzMiwgMC45MzQxMjQsIDEuNTk1OTksIDEuOTc1OTUiLCBcCi0gICAgICAgICAgIjAuMTg5NjE3LCAwLjIwODcxMywgMC4zNzk2NjEsIDAuNjYzNzA1LCAwLjk0NzM2OSwgMS42MTAzNiwgMS45ODczIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI1NzkyMywgMC4yOTgxNDYsIDAuNjU5NDg0LCAxLjI2MTg4LCAxLjg2Mzg4LCAzLjI2ODQ1LCA0LjA3MDM0IiwgXAotICAgICAgICAgICIwLjI1NzkxOSwgMC4yOTgxMjQsIDAuNjU5NTY1LCAxLjI2MTkzLCAxLjg2Mzg5LCAzLjI2ODQzLCA0LjA3MTA4IiwgXAotICAgICAgICAgICIwLjI1ODQ0MSwgMC4yOTgyMjIsIDAuNjU5NTM1LCAxLjI2MTk2LCAxLjg2NDEyLCAzLjI2Nzc1LCA0LjA3MDkiLCBcCi0gICAgICAgICAgIjAuMjYxNTc5LCAwLjMwMDUzLCAwLjY1OTU4LCAxLjI2MTg2LCAxLjg2MzY5LCAzLjI2ODIyLCA0LjA3MDI3IiwgXAotICAgICAgICAgICIwLjI2NjYzNiwgMC4zMDQ3ODMsIDAuNjU5NTYyLCAxLjI2MTk3LCAxLjg2MzkxLCAzLjI2NzcsIDQuMDcwODIiLCBcCi0gICAgICAgICAgIjAuMjc2OTA4LCAwLjMxNDE0MSwgMC42NjE5NywgMS4yNjE2NSwgMS44NjM5OCwgMy4yNjgxNSwgNC4wNzA5NCIsIFwKLSAgICAgICAgICAiMC4yODc0NjksIDAuMzI0MDU1LCAwLjY2NjQ0OSwgMS4yNjE5MSwgMS44NjM5NCwgMy4yNjgyNSwgNC4wNzA1MyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNjQ5NTgsIDAuMTg5NDQ2LCAwLjQxMDAxOCwgMC43Nzk5NDgsIDEuMTUxMDcsIDIuMDE3MTEsIDIuNTEwMzQiLCBcCi0gICAgICAgICAgIjAuMTcyMDA0LCAwLjE5NjQ2LCAwLjQxNjg4NCwgMC43ODc0NTMsIDEuMTU3OTMsIDIuMDIzMSwgMi41MTg1IiwgXAotICAgICAgICAgICIwLjE3ODU2NiwgMC4yMDMxMTEsIDAuNDIzNzkyLCAwLjc5MzYwMSwgMS4xNjQ4MiwgMi4wMzAxNiwgMi41MjM1MSIsIFwKLSAgICAgICAgICAiMC4xODQzNDEsIDAuMjA4OTE5LCAwLjQyOTU0NSwgMC44MDA0MywgMS4xNzE3NiwgMi4wMzcyLCAyLjUzMDI4IiwgXAotICAgICAgICAgICIwLjE4OTk3NSwgMC4yMTQ1MjIsIDAuNDM1Mzc2LCAwLjgwNTM5MSwgMS4xNzU5OCwgMi4wNDIwMywgMi41MzYxNCIsIFwKLSAgICAgICAgICAiMC4xOTkwMSwgMC4yMjM1NzcsIDAuNDQ0Mjc2LCAwLjgxNDYxMSwgMS4xODU4NSwgMi4wNTAwOCwgMi41NDU5OSIsIFwKLSAgICAgICAgICAiMC4yMDY4NzEsIDAuMjMxNDc4LCAwLjQ1MjA5MSwgMC44MjIwNzMsIDEuMTkyOTMsIDIuMDU4MTQsIDIuNTUzMDciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjk5MzkzLCAwLjM0OTg5LCAwLjgwODU3NywgMS41NzQ5NywgMi4zNDE0NCwgNC4xMzA0MSwgNS4xNTI1OSIsIFwKLSAgICAgICAgICAiMC4yOTkzOTMsIDAuMzQ5OTIsIDAuODA5MTQ2LCAxLjU3NTMxLCAyLjM0MjM1LCA0LjEzMTIxLCA1LjE1MTY4IiwgXAotICAgICAgICAgICIwLjI5OTQwNiwgMC4zNDk4OTQsIDAuODA4ODg3LCAxLjU3NTk4LCAyLjM0MTUxLCA0LjEyODg3LCA1LjE1MTg1IiwgXAotICAgICAgICAgICIwLjI5OTc2MSwgMC4zNTAwNzMsIDAuODA4NjAxLCAxLjU3NTc0LCAyLjM0MjI2LCA0LjEzMDU4LCA1LjE1MjY5IiwgXAotICAgICAgICAgICIwLjMwMTEyOSwgMC4zNTEwMzIsIDAuODA4NTc0LCAxLjU3NTEzLCAyLjM0MTI5LCA0LjEzMTksIDUuMTUxNDEiLCBcCi0gICAgICAgICAgIjAuMzA0NDE2LCAwLjM1MzkwNCwgMC44MDg5MTksIDEuNTc0OTksIDIuMzQxNjksIDQuMTM0MDcsIDUuMTUxNzkiLCBcCi0gICAgICAgICAgIjAuMzA4NDM3LCAwLjM1NzYyLCAwLjgxMDA3MSwgMS41NzQ5OSwgMi4zNDE0LCA0LjEzMDk1LCA1LjE1MzMyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMjEyOTQsIDAuMTQwMzYxLCAwLjMxMTkzOSwgMC41OTU4NzksIDAuODc5Nzg4LCAxLjU0MjI4LCAxLjkxOTc0IiwgXAotICAgICAgICAgICIwLjEyNzI5MiwgMC4xNDYzNDQsIDAuMzE3OTk1LCAwLjYwMTkxMiwgMC44ODU1OTksIDEuNTQ3NSwgMS45MjU4MiIsIFwKLSAgICAgICAgICAiMC4xMzQzNzUsIDAuMTUzMzg4LCAwLjMyNTE0LCAwLjYwOTA3MSwgMC44OTI3NTksIDEuNTU1MiwgMS45MzM0MiIsIFwKLSAgICAgICAgICAiMC4xNDEzMzgsIDAuMTYwNDY3LCAwLjMzMjI2MywgMC42MTYyMSwgMC44OTk5MSwgMS41NjI5OCwgMS45NDAxNSIsIFwKLSAgICAgICAgICAiMC4xNDg1MzcsIDAuMTY3NDY4LCAwLjMzODkzNywgMC42MjI5ODIsIDAuOTA2NjgsIDEuNTY4NTQsIDEuOTQ2OCIsIFwKLSAgICAgICAgICAiMC4xNTk3ODQsIDAuMTc4ODc5LCAwLjM1MDUxNywgMC42MzQ2NzMsIDAuOTE4NDA1LCAxLjU4MDI4LCAxLjk1OTI2IiwgXAotICAgICAgICAgICIwLjE2OTU5OCwgMC4xODg5NDgsIDAuMzYwNTkyLCAwLjY0NDc3OSwgMC45Mjg0MjcsIDEuNTkxMTUsIDEuOTY4NDYiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjQ5MDEsIDAuMjg5MTk0LCAwLjY1MDYxLCAxLjI1MjQ4LCAxLjg1NDY1LCAzLjI1Nzg4LCA0LjA1OTM5IiwgXAotICAgICAgICAgICIwLjI0OTAyMiwgMC4yODkyMTUsIDAuNjUwNDY2LCAxLjI1MjUxLCAxLjg1NDM2LCAzLjI1NzU0LCA0LjA1OTc4IiwgXAotICAgICAgICAgICIwLjI0OTUzMywgMC4yODk0MSwgMC42NTA2NTksIDEuMjUyNTYsIDEuODU0MjcsIDMuMjU4NjgsIDQuMDU5NDEiLCBcCi0gICAgICAgICAgIjAuMjUxNzUxLCAwLjI5MTE3OSwgMC42NTA2NDcsIDEuMjUyNTksIDEuODU0MzksIDMuMjU4MzgsIDQuMDYwOTEiLCBcCi0gICAgICAgICAgIjAuMjU1MjYxLCAwLjI5NDAzOSwgMC42NTA4MTEsIDEuMjUyNDUsIDEuODU0MDcsIDMuMjU4NjMsIDQuMDU5NDEiLCBcCi0gICAgICAgICAgIjAuMjYyMzg3LCAwLjMwMDYyNywgMC42NTI3OTgsIDEuMjUyMjgsIDEuODU0NCwgMy4yNTgxNCwgNC4wNjA3MiIsIFwKLSAgICAgICAgICAiMC4yNjk3NTEsIDAuMzA3NDk3LCAwLjY1NjAxOSwgMS4yNTI2OCwgMS44NTQxNCwgMy4yNTg0NCwgNC4wNTkwNyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNjM1MzQsIDAuMTg4MDQsIDAuNDA4NDQ4LCAwLjc3ODkyMSwgMS4xNDk0NiwgMi4wMTQ3MSwgMi41MDgzMSIsIFwKLSAgICAgICAgICAiMC4xNzA2MTksIDAuMTk1MTQ1LCAwLjQxNTU3OCwgMC43ODUzOTgsIDEuMTU1OTgsIDIuMDIxMTUsIDIuNTE2MTUiLCBcCi0gICAgICAgICAgIjAuMTc4NTQ5LCAwLjIwMzExMSwgMC40MjM1ODIsIDAuNzkzNzExLCAxLjE2NDUzLCAyLjAzMDg2LCAyLjUyNDM4IiwgXAotICAgICAgICAgICIwLjE4NjQxNCwgMC4yMTA5MzMsIDAuNDMxNTIsIDAuODAxMzM0LCAxLjE3Mjk0LCAyLjAzODcyLCAyLjUzMTkzIiwgXAotICAgICAgICAgICIwLjE5NDEyLCAwLjIxODY1NSwgMC40MzkzNDksIDAuODA5MTIsIDEuMTc5NzgsIDIuMDQ3MjgsIDIuNTM5OCIsIFwKLSAgICAgICAgICAiMC4yMDY4NzcsIDAuMjMxNTc1LCAwLjQ1MTkxMiwgMC44MjE2MzcsIDEuMTkyNDYsIDIuMDU4NjgsIDIuNTUxNzciLCBcCi0gICAgICAgICAgIjAuMjE4MDk4LCAwLjI0MjY2NywgMC40NjMyMywgMC44MzMwODIsIDEuMjAzODksIDIuMDY4NDgsIDIuNTY0MTQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzA0OTg1LCAwLjM1NTUyNSwgMC44MTQ2MTIsIDEuNTgxMTksIDIuMzQ3NjgsIDQuMTM1NjUsIDUuMTU5MiIsIFwKLSAgICAgICAgICAiMC4zMDUwMjUsIDAuMzU1NDY2LCAwLjgxNDUzOCwgMS41ODEyNywgMi4zNDg5NSwgNC4xMzcyNiwgNS4xNTgzNSIsIFwKLSAgICAgICAgICAiMC4zMDQ5NjEsIDAuMzU1NTI0LCAwLjgxNDQyNiwgMS41ODE1OSwgMi4zNDc0LCA0LjEzNjUzLCA1LjE1Nzg2IiwgXAotICAgICAgICAgICIwLjMwNTcxNSwgMC4zNTU3ODYsIDAuODE0NTM2LCAxLjU4MDkyLCAyLjM0NzgsIDQuMTM2NDcsIDUuMTU3NjUiLCBcCi0gICAgICAgICAgIjAuMzA3NTkzLCAwLjM1NzIyNiwgMC44MTQ0ODgsIDEuNTgwOTgsIDIuMzQ3MDMsIDQuMTM2NjgsIDUuMTU3NDEiLCBcCi0gICAgICAgICAgIjAuMzEzMjE3LCAwLjM2MjMxNSwgMC44MTQ3NiwgMS41ODA5MiwgMi4zNDcyOSwgNC4xMzU5LCA1LjE2MTc1IiwgXAotICAgICAgICAgICIwLjMxOTQ3MiwgMC4zNjc1NTMsIDAuODE2MjE3LCAxLjU4MTExLCAyLjM0NzM0LCA0LjEzNSwgNS4xNTc2MSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTE4Njg3LCAwLjEzNzc4NSwgMC4zMDk0MiwgMC41OTMzNTMsIDAuODc3MTk1LCAxLjUzOTg2LCAxLjkxNzcyIiwgXAotICAgICAgICAgICIwLjEyNjA3NiwgMC4xNDUxNjgsIDAuMzE2NzY3LCAwLjYwMDY4NSwgMC44ODQzNDksIDEuNTQ2MjQsIDEuOTI2ODUiLCBcCi0gICAgICAgICAgIjAuMTM1MzI1LCAwLjE1NDQwOCwgMC4zMjU5OCwgMC42MDk4NiwgMC44OTM2MTUsIDEuNTU1MzcsIDEuOTM2MDYiLCBcCi0gICAgICAgICAgIjAuMTQ0ODA1LCAwLjE2Mzc4NCwgMC4zMzUyOTMsIDAuNjE5MTMyLCAwLjkwMjg0NywgMS41NjYyLCAxLjk0MzEiLCBcCi0gICAgICAgICAgIjAuMTU0Mjc3LCAwLjE3MzMwMSwgMC4zNDQ3MDksIDAuNjI4NDY3LCAwLjkxMjE2MywgMS41NzM5OCwgMS45NTQ2OCIsIFwKLSAgICAgICAgICAiMC4xNjk2MjksIDAuMTg4NTA1LCAwLjM1OTY5MywgMC42NDM1ODcsIDAuOTI3MDMyLCAxLjU4ODgsIDEuOTY4MTkiLCBcCi0gICAgICAgICAgIjAuMTgzMjA2LCAwLjIwMjIyMywgMC4zNzI4NzMsIDAuNjU2NjM3LCAwLjk0MDA3NiwgMS42MDMxLCAxLjk3OTk3Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI0OTA1NiwgMC4yODkxMjUsIDAuNjUwNTM0LCAxLjI1MjUzLCAxLjg1NDMzLCAzLjI1ODIsIDQuMDU5NDkiLCBcCi0gICAgICAgICAgIjAuMjQ5MDA0LCAwLjI4OTIwNSwgMC42NTAzNDUsIDEuMjUyNjUsIDEuODU0MzIsIDMuMjU4MiwgNC4wNTk2NSIsIFwKLSAgICAgICAgICAiMC4yNDk3MjQsIDAuMjg5MzQzLCAwLjY1MDY3OSwgMS4yNTI0NiwgMS44NTQ0NywgMy4yNTgyMiwgNC4wNjA4NiIsIFwKLSAgICAgICAgICAiMC4yNTMyMTIsIDAuMjkxOTc5LCAwLjY1MDYwMSwgMS4yNTI1MywgMS44NTQzNSwgMy4yNTgzNCwgNC4wNTk4MyIsIFwKLSAgICAgICAgICAiMC4yNTg0MDgsIDAuMjk2NDEzLCAwLjY1MDY5OSwgMS4yNTI1NiwgMS44NTQzNCwgMy4yNTgyOCwgNC4wNjEwMSIsIFwKLSAgICAgICAgICAiMC4yNjkxNTgsIDAuMzA2MTI0LCAwLjY1MzE5NiwgMS4yNTI3MywgMS44NTQyMywgMy4yNTgwNiwgNC4wNTk2NyIsIFwKLSAgICAgICAgICAiMC4yNzk4ODcsIDAuMzE2MzE1LCAwLjY1Nzg3NCwgMS4yNTI1NiwgMS44NTQyNCwgMy4yNTgzOCwgNC4wNTkxNCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNjA1MzYsIDAuMTg1MzIyLCAwLjQwNzc0MiwgMC43Nzg0NSwgMS4xNDg5NywgMi4wMTM2NSwgMi41MDg1MiIsIFwKLSAgICAgICAgICAiMC4xNjc2MzQsIDAuMTkyNDQ4LCAwLjQxNTAyMSwgMC43ODYzOTYsIDEuMTU2NjEsIDIuMDIxODIsIDIuNTE3MDEiLCBcCi0gICAgICAgICAgIjAuMTc1NTA3LCAwLjIwMDM0MywgMC40MjI5ODcsIDAuNzk0NzgsIDEuMTY0OSwgMi4wMzAxMywgMi41MjUxNiIsIFwKLSAgICAgICAgICAiMC4xODMxMjcsIDAuMjA3OTczLCAwLjQzMTA3OSwgMC44MDI1OSwgMS4xNzMyNCwgMi4wMzg2MiwgMi41MzI4MSIsIFwKLSAgICAgICAgICAiMC4xOTA2ODcsIDAuMjE1NTE3LCAwLjQzODU1NywgMC44MDk0MDMsIDEuMTgwMTIsIDIuMDQ3NjUsIDIuNTQwMTciLCBcCi0gICAgICAgICAgIjAuMjAzMjQzLCAwLjIyODIyNSwgMC40NTA5NDUsIDAuODIxOTEzLCAxLjE5Mjc0LCAyLjA1ODk5LCAyLjU1MjE1IiwgXAotICAgICAgICAgICIwLjIxNDQwMywgMC4yMzkxNTQsIDAuNDYyMTA0LCAwLjgzMzMwNCwgMS4yMDQwOCwgMi4wNjg4MiwgMi41NjQ1OCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMDI1MzgsIDAuMzUzNzE3LCAwLjgxMzg2MiwgMS41ODA0MywgMi4zNDc2MiwgNC4xMzM4NiwgNS4xNTg3IiwgXAotICAgICAgICAgICIwLjMwMjUxLCAwLjM1MzcyMywgMC44MTM2OTYsIDEuNTgwMzQsIDIuMzQ3MTYsIDQuMTM2MywgNS4xNTU4IiwgXAotICAgICAgICAgICIwLjMwMjU3LCAwLjM1Mzc2NywgMC44MTM1MzcsIDEuNTgwODUsIDIuMzQ3MzcsIDQuMTM0NywgNS4xNTYzNCIsIFwKLSAgICAgICAgICAiMC4zMDMyNTMsIDAuMzUzOTE4LCAwLjgxMzcyNiwgMS41ODA4NywgMi4zNDY4MiwgNC4xMzQ5MywgNS4xNTc5MSIsIFwKLSAgICAgICAgICAiMC4zMDUyNzgsIDAuMzU1NDM0LCAwLjgxMzYzMywgMS41ODAwOCwgMi4zNDc0LCA0LjEzNTg3LCA1LjE1NjUxIiwgXAotICAgICAgICAgICIwLjMxMDgxOCwgMC4zNjA0MTUsIDAuODEzNzAxLCAxLjU4MTcsIDIuMzQ2MzcsIDQuMTM0ODgsIDUuMTYwNjciLCBcCi0gICAgICAgICAgIjAuMzE3MjA1LCAwLjM2NTg4MiwgMC44MTUzMDcsIDEuNTgwMjMsIDIuMzQ3NDUsIDQuMTM0MzIsIDUuMTU3MzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQzAiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExMjY2OSwgMC4xMzE4NTgsIDAuMzAzNTM5LCAwLjU4NzU1NCwgMC44NzEzMDQsIDEuNTMzMSwgMS45MTI0MSIsIFwKLSAgICAgICAgICAiMC4xMTg2MzgsIDAuMTM3ODE4LCAwLjMwOTU2NywgMC41OTM2MDIsIDAuODc3MjU1LCAxLjUzOTEyLCAxLjkxNzMyIiwgXAotICAgICAgICAgICIwLjEyNTc1MSwgMC4xNDQ5MTUsIDAuMzE2NzM2LCAwLjYwMDc3MywgMC44ODQ0MzcsIDEuNTQ2NDksIDEuOTI0NDYiLCBcCi0gICAgICAgICAgIjAuMTMyODY3LCAwLjE1MTk0MywgMC4zMjM3MTgsIDAuNjA3ODQxLCAwLjg5MTUzMywgMS41NTM0OCwgMS45MzE1IiwgXAotICAgICAgICAgICIwLjEzOTc4LCAwLjE1ODk5MSwgMC4zMzA5ODEsIDAuNjE1MTE4LCAwLjg5ODc3OSwgMS41NjA3MywgMS45Mzg4NCIsIFwKLSAgICAgICAgICAiMC4xNTEwMjUsIDAuMTcwMjM1LCAwLjM0MjA1OSwgMC42MjY2OTEsIDAuOTEwMzM1LCAxLjU3MjE2LCAxLjk1MDMiLCBcCi0gICAgICAgICAgIjAuMTYwNjkyLCAwLjE4MDEwNywgMC4zNTE5MywgMC42MzcxOTksIDAuOTIwNzM3LCAxLjU4MjUxLCAxLjk2MDc1Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIzOTgzNCwgMC4yNzk4NTEsIDAuNjQwNjA4LCAxLjI0MjE1LCAxLjg0Mzc2LCAzLjI0NzEsIDQuMDQ5NTgiLCBcCi0gICAgICAgICAgIjAuMjM5Nzk5LCAwLjI3OTkxOCwgMC42NDA2OCwgMS4yNDE5OCwgMS44NDM0NywgMy4yNDY0MywgNC4wNDg2OCIsIFwKLSAgICAgICAgICAiMC4yNDA1NzQsIDAuMjgwMjAyLCAwLjY0MDY4MSwgMS4yNDIxMiwgMS44NDM0OSwgMy4yNDcxNiwgNC4wNDg4OSIsIFwKLSAgICAgICAgICAiMC4yNDMwODQsIDAuMjgyMjQ3LCAwLjY0MDYxMiwgMS4yNDIwNywgMS44NDM0NCwgMy4yNDcxNSwgNC4wNDg5NCIsIFwKLSAgICAgICAgICAiMC4yNDY3MzksIDAuMjg1Mzk1LCAwLjY0MDg0NiwgMS4yNDIwNiwgMS44NDM0OSwgMy4yNDcxNSwgNC4wNDg2NSIsIFwKLSAgICAgICAgICAiMC4yNTQyMTYsIDAuMjkyMTg0LCAwLjY0MzAzMSwgMS4yNDIxMywgMS44NDM0MiwgMy4yNDY4NywgNC4wNDkzNSIsIFwKLSAgICAgICAgICAiMC4yNjE4NTQsIDAuMjk5MTQ5LCAwLjY0NjI4NywgMS4yNDIyNSwgMS44NDMzOCwgMy4yNDY5NCwgNC4wNDg2NiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNTE1MjEsIDAuMTc2MDkzLCAwLjM5NjY2OCwgMC43NjU2MDUsIDEuMTM2OTEsIDIuMDAyMDcsIDIuNDk2OTciLCBcCi0gICAgICAgICAgIjAuMTU4NzE2LCAwLjE4MzIxNCwgMC40MDM2ODgsIDAuNzczMDUxLCAxLjE0NDAxLCAyLjAwODM3LCAyLjUwMjQxIiwgXAotICAgICAgICAgICIwLjE2Nzc1OCwgMC4xOTE2MDMsIDAuNDEyODg0LCAwLjc4MTkwMiwgMS4xNTM1NywgMi4wMTg4NywgMi41MTI5MSIsIFwKLSAgICAgICAgICAiMC4xNzY4NSwgMC4yMDEzNjksIDAuNDIxODMxLCAwLjc5MDk4NSwgMS4xNjE1MiwgMi4wMjczNCwgMi41MjE3MiIsIFwKLSAgICAgICAgICAiMC4xODYwMjYsIDAuMjEwNDMxLCAwLjQzMDQ4MiwgMC44MDAwNjIsIDEuMTcxMSwgMi4wMzY0NCwgMi41MzA4MyIsIFwKLSAgICAgICAgICAiMC4yMDA1NjgsIDAuMjI0ODA1LCAwLjQ0NDUwMSwgMC44MTM3NjMsIDEuMTg0NywgMi4wNDkxNSwgMi41NDQ3NiIsIFwKLSAgICAgICAgICAiMC4yMTM4MTQsIDAuMjM4MDcxLCAwLjQ1NzMxOSwgMC44MjYzNjcsIDEuMTk3MiwgMi4wNjMyNywgMi41NTU4NCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMDQ5NTcsIDAuMzU1NTE4LCAwLjgxMzc3NywgMS41Nzk5NCwgMi4zNDYyNSwgNC4xMzQ4MywgNS4xNTYwNCIsIFwKLSAgICAgICAgICAiMC4zMDQ5MjYsIDAuMzU1NTc2LCAwLjgxMzU4NywgMS41ODAyMiwgMi4zNDcyLCA0LjEzNTksIDUuMTYxNDciLCBcCi0gICAgICAgICAgIjAuMzA0NDk2LCAwLjM1NTIyNywgMC44MTM4MjIsIDEuNTgwMDUsIDIuMzQ2OTcsIDQuMTM1MTYsIDUuMTU3NzUiLCBcCi0gICAgICAgICAgIjAuMzA1OTE1LCAwLjM1NTcwMiwgMC44MTM2MzQsIDEuNTgwMTQsIDIuMzQ2MTUsIDQuMTM3NiwgNS4xNTY3OCIsIFwKLSAgICAgICAgICAiMC4zMDkyMDksIDAuMzU4NTE3LCAwLjgxMzUyOCwgMS41ODAxLCAyLjM0NjU3LCA0LjEzNDU1LCA1LjE1ODMxIiwgXAotICAgICAgICAgICIwLjMxNzM5MSwgMC4zNjUxOTksIDAuODEzNjksIDEuNTc5OTcsIDIuMzQ2ODIsIDQuMTM5OTMsIDUuMTU2MSIsIFwKLSAgICAgICAgICAiMC4zMjYyMywgMC4zNzMzMjcsIDAuODE1OTU0LCAxLjU3OTk0LCAyLjM0NzM3LCA0LjEzNTQ0LCA1LjE2Mjc0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMxIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTA2MDQsIDAuMTI5NzU1LCAwLjMwMTQ2OCwgMC41ODU1MDcsIDAuODY5MTcyLCAxLjUzMTA0LCAxLjkwOTQ0IiwgXAotICAgICAgICAgICIwLjExODAzOSwgMC4xMzcxOTksIDAuMzA4OTY4LCAwLjU5MzAyOSwgMC44NzY2NzUsIDEuNTM4NTcsIDEuOTE2NjciLCBcCi0gICAgICAgICAgIjAuMTI3MzQ0LCAwLjE0NjQ1MywgMC4zMTgxNjEsIDAuNjAyMTk2LCAwLjg4NTkzMiwgMS41NDc2NywgMS45MjU5NyIsIFwKLSAgICAgICAgICAiMC4xMzY4MDEsIDAuMTU1ODg1LCAwLjMyNzQ3MywgMC42MTE0OTcsIDAuODk1MTMxLCAxLjU1NzA3LCAxLjkzNTE1IiwgXAotICAgICAgICAgICIwLjE0NjI1OSwgMC4xNjUzNiwgMC4zMzY5MDYsIDAuNjIwODEzLCAwLjkwNDQ3NiwgMS41NjYyMiwgMS45NDQ0OCIsIFwKLSAgICAgICAgICAiMC4xNjE3NDEsIDAuMTgwNjQzLCAwLjM1MTkzMSwgMC42MzU4MDIsIDAuOTE5NDI5LCAxLjU4MTA3LCAxLjk1OTU3IiwgXAotICAgICAgICAgICIwLjE3NTIwOCwgMC4xOTQwOTgsIDAuMzY1MTQsIDAuNjQ2NTc4LCAwLjkzMjQxMiwgMS41OTQyMSwgMS45NzIyNSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMzk4MzUsIDAuMjc5ODkxLCAwLjY0MDY2OCwgMS4yNDE5OSwgMS44NDM1MiwgMy4yNDY5MiwgNC4wNDkwMiIsIFwKLSAgICAgICAgICAiMC4yMzk4MjcsIDAuMjc5OTE0LCAwLjY0MDcwOSwgMS4yNDIxMiwgMS44NDM1MiwgMy4yNDczNSwgNC4wNDg2MiIsIFwKLSAgICAgICAgICAiMC4yNDA3NzEsIDAuMjgwMjc1LCAwLjY0MDYzNSwgMS4yNDIwNywgMS44NDM0MiwgMy4yNDY3NSwgNC4wNDkyOCIsIFwKLSAgICAgICAgICAiMC4yNDQ2MTgsIDAuMjgzMTY1LCAwLjY0MDYxOSwgMS4yNDIwMiwgMS44NDM0MywgMy4yNDcxNSwgNC4wNDg3IiwgXAotICAgICAgICAgICIwLjI1MDE5OCwgMC4yODc5MywgMC42NDA3MDYsIDEuMjQyLCAxLjg0MzUzLCAzLjI0NzA3LCA0LjA0OTY0IiwgXAotICAgICAgICAgICIwLjI2MTQyMiwgMC4yOTgwNzUsIDAuNjQzNjA3LCAxLjI0MjA4LCAxLjg0MzYsIDMuMjQ2ODcsIDQuMDQ5NzgiLCBcCi0gICAgICAgICAgIjAuMjcyNDE4LCAwLjMwODM2OCwgMC42NDg0NDcsIDEuMjQyMTMsIDEuODQzNDIsIDMuMjQ3MDYsIDQuMDQ5NTEiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTQ5MjU4LCAwLjE3NDA4NCwgMC4zOTY4MzMsIDAuNzY3MjU5LCAxLjEzODU0LCAyLjAwMzc1LCAyLjQ5NzIzIiwgXAotICAgICAgICAgICIwLjE1NjQ1MywgMC4xODEyMDYsIDAuNDAzOTg0LCAwLjc3NDcxNiwgMS4xNDU4NCwgMi4wMDk5NiwgMi41MDQyIiwgXAotICAgICAgICAgICIwLjE2NTUwMiwgMC4xODk2MDYsIDAuNDEzMTIxLCAwLjc4MzYyOCwgMS4xNTUxOSwgMi4wMjA1MSwgMi41MTQ3NCIsIFwKLSAgICAgICAgICAiMC4xNzQ1NTQsIDAuMTk5MzIyLCAwLjQyMTg3NCwgMC43OTI2OCwgMS4xNjMyOCwgMi4wMjkxNywgMi41MjM0OSIsIFwKLSAgICAgICAgICAiMC4xODM2OTIsIDAuMjA4NDAzLCAwLjQzMTEwNCwgMC44MDE3MzMsIDEuMTcyMjgsIDIuMDM4MTMsIDIuNTMyNjQiLCBcCi0gICAgICAgICAgIjAuMTk4MjA5LCAwLjIyMjc4NywgMC40NDQ5NjcsIDAuODE1NDMsIDEuMTg2OTcsIDIuMDUwOTQsIDIuNTQ2NTEiLCBcCi0gICAgICAgICAgIjAuMjExMjQ3LCAwLjIzNTk1NSwgMC40NTc3MzksIDAuODI3OTc4LCAxLjE5ODk4LCAyLjA2NDk4LCAyLjU1NzYzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMwMzQ0MiwgMC4zNTQ0ODYsIDAuODE0Nzg3LCAxLjU4MDksIDIuMzQ3MiwgNC4xMzQ5NSwgNS4xNTg5OSIsIFwKLSAgICAgICAgICAiMC4zMDMyODMsIDAuMzU0NDUsIDAuODE0NTAyLCAxLjU4MTAzLCAyLjM0ODEyLCA0LjEzNjMxLCA1LjE2MjIyIiwgXAotICAgICAgICAgICIwLjMwMzA2MiwgMC4zNTQyMDEsIDAuODE0NTYzLCAxLjU4MDkyLCAyLjM0NzcsIDQuMTM1OCwgNS4xNTg4NyIsIFwKLSAgICAgICAgICAiMC4zMDQyMjcsIDAuMzU0OTA2LCAwLjgxNDQwNSwgMS41ODEsIDIuMzQ2OTQsIDQuMTM4MzUsIDUuMTU3NjYiLCBcCi0gICAgICAgICAgIjAuMzA3NjY3LCAwLjM1NzMyOSwgMC44MTQ2MTIsIDEuNTgwOTUsIDIuMzQ3NDEsIDQuMTM1MjgsIDUuMTU5MzQiLCBcCi0gICAgICAgICAgIjAuMzE1ODgxLCAwLjM2NDM1NCwgMC44MTQ2MDgsIDEuNTgyNTcsIDIuMzQ3NzQsIDQuMTQwNTEsIDUuMTU3MDEiLCBcCi0gICAgICAgICAgIjAuMzI0NjUyLCAwLjM3MjQ1LCAwLjgxNzA1OSwgMS41ODA4LCAyLjM0ODE5LCA0LjEzNjI4LCA1LjE2MzMyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDgzMSwgMC4wMDQ4MywgMC4wMDQ4MywgMC4wMDQ4MjksIDAuMDA0ODI4LCAwLjAwNDgyMywgMC4wMDQ4MjEiLCBcCi0gICAgICAgICAgIjAuMDA0ODE5LCAwLjAwNDgxOSwgMC4wMDQ4MTksIDAuMDA0ODE3LCAwLjAwNDgxNywgMC4wMDQ4MTIsIDAuMDA0ODEiLCBcCi0gICAgICAgICAgIjAuMDA0ODE3LCAwLjAwNDgxNywgMC4wMDQ4MTYsIDAuMDA0ODE0LCAwLjAwNDgxNCwgMC4wMDQ4MSwgMC4wMDQ4MDgiLCBcCi0gICAgICAgICAgIjAuMDA0ODI1LCAwLjAwNDgyMywgMC4wMDQ4MTgsIDAuMDA0ODE3LCAwLjAwNDgxNSwgMC4wMDQ4MTEsIDAuMDA0ODA4IiwgXAotICAgICAgICAgICIwLjAwNDgzOCwgMC4wMDQ4MzYsIDAuMDA0ODI1LCAwLjAwNDgxOSwgMC4wMDQ4MTYsIDAuMDA0ODEyLCAwLjAwNDgwOSIsIFwKLSAgICAgICAgICAiMC4wMDQ4NywgMC4wMDQ4NjUsIDAuMDA0ODQ0LCAwLjAwNDgzLCAwLjAwNDgyNCwgMC4wMDQ4MTYsIDAuMDA0ODEzIiwgXAotICAgICAgICAgICIwLjAwNDkxMSwgMC4wMDQ5MDEsIDAuMDA0ODYzLCAwLjAwNDg0MywgMC4wMDQ4MzMsIDAuMDA0ODIxLCAwLjAwNDgxNiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTA1NCwgMC4wMDEwNTQsIDAuMDAxMDU0LCAwLjAwMTA1NCwgMC4wMDEwNTQsIDAuMDAxMDUzLCAwLjAwMTA1MiIsIFwKLSAgICAgICAgICAiMC4wMDEwNDIsIDAuMDAxMDQzLCAwLjAwMTA0NiwgMC4wMDEwNDcsIDAuMDAxMDQ2LCAwLjAwMTA0NiwgMC4wMDEwNDUiLCBcCi0gICAgICAgICAgIjAuMDAxMDM1LCAwLjAwMTAzNiwgMC4wMDEwNDIsIDAuMDAxMDQ0LCAwLjAwMTA0NSwgMC4wMDEwNDQsIDAuMDAxMDQ0IiwgXAotICAgICAgICAgICIwLjAwMTAzLCAwLjAwMTAzMiwgMC4wMDEwMzksIDAuMDAxMDQyLCAwLjAwMTA0MywgMC4wMDEwNDQsIDAuMDAxMDQzIiwgXAotICAgICAgICAgICIwLjAwMTAyOCwgMC4wMDEwMjksIDAuMDAxMDM4LCAwLjAwMTA0MiwgMC4wMDEwNDMsIDAuMDAxMDQzLCAwLjAwMTA0MyIsIFwKLSAgICAgICAgICAiMC4wMDEwMzIsIDAuMDAxMDMzLCAwLjAwMTAzOSwgMC4wMDEwNDIsIDAuMDAxMDQzLCAwLjAwMTA0MywgMC4wMDEwNDMiLCBcCi0gICAgICAgICAgIjAuMDAxMDQ1LCAwLjAwMTA0NSwgMC4wMDEwNDUsIDAuMDAxMDQ2LCAwLjAwMTA0NSwgMC4wMDEwNDQsIDAuMDAxMDQ0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDU3NSwgMC4wMDQ1NzUsIDAuMDA0NTc0LCAwLjAwNDU3MywgMC4wMDQ1NzIsIDAuMDA0NTY5LCAwLjAwNDU2NiIsIFwKLSAgICAgICAgICAiMC4wMDQ1NjIsIDAuMDA0NTYzLCAwLjAwNDU2MiwgMC4wMDQ1NjEsIDAuMDA0NTYsIDAuMDA0NTU2LCAwLjAwNDU1NCIsIFwKLSAgICAgICAgICAiMC4wMDQ1NjksIDAuMDA0NTY3LCAwLjAwNDU2NCwgMC4wMDQ1NjEsIDAuMDA0NTU5LCAwLjAwNDU1NCwgMC4wMDQ1NTIiLCBcCi0gICAgICAgICAgIjAuMDA0NTgzLCAwLjAwNDU4MSwgMC4wMDQ1NywgMC4wMDQ1NjQsIDAuMDA0NTYsIDAuMDA0NTU1LCAwLjAwNDU1MiIsIFwKLSAgICAgICAgICAiMC4wMDQ2MDgsIDAuMDA0NjAzLCAwLjAwNDU3OSwgMC4wMDQ1NjksIDAuMDA0NTY1LCAwLjAwNDU1OCwgMC4wMDQ1NTQiLCBcCi0gICAgICAgICAgIjAuMDA0NjU3LCAwLjAwNDY0NywgMC4wMDQ2MDcsIDAuMDA0NTg2LCAwLjAwNDU3NCwgMC4wMDQ1NjMsIDAuMDA0NTU4IiwgXAotICAgICAgICAgICIwLjAwNDcxMiwgMC4wMDQ2OTcsIDAuMDA0NjM2LCAwLjAwNDYwNCwgMC4wMDQ1ODksIDAuMDA0NTcsIDAuMDA0NTY1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwODY2LCAwLjAwMDg2NiwgMC4wMDA4NjgsIDAuMDAwODY5LCAwLjAwMDg2OSwgMC4wMDA4NjgsIDAuMDAwODY4IiwgXAotICAgICAgICAgICIwLjAwMDg1NywgMC4wMDA4NiwgMC4wMDA4NjksIDAuMDAwODcyLCAwLjAwMDg3MywgMC4wMDA4NzQsIDAuMDAwODc0IiwgXAotICAgICAgICAgICIwLjAwMDg0MiwgMC4wMDA4NDYsIDAuMDAwODYyLCAwLjAwMDg2OSwgMC4wMDA4NzEsIDAuMDAwODczLCAwLjAwMDg3MyIsIFwKLSAgICAgICAgICAiMC4wMDA4MywgMC4wMDA4MzUsIDAuMDAwODU2LCAwLjAwMDg2NiwgMC4wMDA4NjksIDAuMDAwODcyLCAwLjAwMDg3MiIsIFwKLSAgICAgICAgICAiMC4wMDA4MjIsIDAuMDAwODI4LCAwLjAwMDg1MiwgMC4wMDA4NjMsIDAuMDAwODY3LCAwLjAwMDg3MSwgMC4wMDA4NzEiLCBcCi0gICAgICAgICAgIjAuMDAwODIsIDAuMDAwODI1LCAwLjAwMDg0OCwgMC4wMDA4NjEsIDAuMDAwODY1LCAwLjAwMDg3LCAwLjAwMDg3MSIsIFwKLSAgICAgICAgICAiMC4wMDA4MjgsIDAuMDAwODMyLCAwLjAwMDg1MSwgMC4wMDA4NjIsIDAuMDAwODY2LCAwLjAwMDg3LCAwLjAwMDg3MSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDM4NTYsIDAuMDAzODU2LCAwLjAwMzg1NywgMC4wMDM4NTYsIDAuMDAzODU1LCAwLjAwMzg1MiwgMC4wMDM4NTIiLCBcCi0gICAgICAgICAgIjAuMDAzODUxLCAwLjAwMzg1MiwgMC4wMDM4NTQsIDAuMDAzODU1LCAwLjAwMzg1NCwgMC4wMDM4NTIsIDAuMDAzODUxIiwgXAotICAgICAgICAgICIwLjAwMzg0OSwgMC4wMDM4NSwgMC4wMDM4NTQsIDAuMDAzODU0LCAwLjAwMzg1NCwgMC4wMDM4NTIsIDAuMDAzODUyIiwgXAotICAgICAgICAgICIwLjAwMzg1NiwgMC4wMDM4NTYsIDAuMDAzODU3LCAwLjAwMzg1NiwgMC4wMDM4NTUsIDAuMDAzODUyLCAwLjAwMzg1MSIsIFwKLSAgICAgICAgICAiMC4wMDM4NjksIDAuMDAzODY3LCAwLjAwMzg2MiwgMC4wMDM4NTksIDAuMDAzODU2LCAwLjAwMzg1NCwgMC4wMDM4NTIiLCBcCi0gICAgICAgICAgIjAuMDAzOTAyLCAwLjAwMzg5OCwgMC4wMDM4NzksIDAuMDAzODY5LCAwLjAwMzg2NCwgMC4wMDM4NTgsIDAuMDAzODU1IiwgXAotICAgICAgICAgICIwLjAwMzk0NSwgMC4wMDM5MzYsIDAuMDAzOTAyLCAwLjAwMzg4MiwgMC4wMDM4NzQsIDAuMDAzODYzLCAwLjAwMzg2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxMDU1LCAwLjAwMTA1NSwgMC4wMDEwNTUsIDAuMDAxMDU1LCAwLjAwMTA1NCwgMC4wMDEwNTMsIDAuMDAxMDUzIiwgXAotICAgICAgICAgICIwLjAwMTA0MiwgMC4wMDEwNDMsIDAuMDAxMDQ2LCAwLjAwMTA0NywgMC4wMDEwNDcsIDAuMDAxMDQ2LCAwLjAwMTA0NSIsIFwKLSAgICAgICAgICAiMC4wMDEwMzUsIDAuMDAxMDM3LCAwLjAwMTA0MiwgMC4wMDEwNDQsIDAuMDAxMDQ1LCAwLjAwMTA0NSwgMC4wMDEwNDQiLCBcCi0gICAgICAgICAgIjAuMDAxMDMzLCAwLjAwMTAzNCwgMC4wMDEwNDEsIDAuMDAxMDQzLCAwLjAwMTA0NCwgMC4wMDEwNDQsIDAuMDAxMDQzIiwgXAotICAgICAgICAgICIwLjAwMTAzNSwgMC4wMDEwMzYsIDAuMDAxMDQxLCAwLjAwMTA0MywgMC4wMDEwNDQsIDAuMDAxMDQ0LCAwLjAwMTA0MyIsIFwKLSAgICAgICAgICAiMC4wMDEwNDksIDAuMDAxMDQ4LCAwLjAwMTA0NywgMC4wMDEwNDYsIDAuMDAxMDQ2LCAwLjAwMTA0NCwgMC4wMDEwNDQiLCBcCi0gICAgICAgICAgIjAuMDAxMDcyLCAwLjAwMTA2OSwgMC4wMDEwNTgsIDAuMDAxMDUyLCAwLjAwMTA1LCAwLjAwMTA0NywgMC4wMDEwNDYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzNTkzLCAwLjAwMzU5MiwgMC4wMDM1OTMsIDAuMDAzNTkyLCAwLjAwMzU5MiwgMC4wMDM1ODksIDAuMDAzNTg4IiwgXAotICAgICAgICAgICIwLjAwMzU4OSwgMC4wMDM1ODksIDAuMDAzNTkxLCAwLjAwMzU5MSwgMC4wMDM1OSwgMC4wMDM1ODksIDAuMDAzNTg3IiwgXAotICAgICAgICAgICIwLjAwMzU5NiwgMC4wMDM1OTYsIDAuMDAzNTk0LCAwLjAwMzU5MiwgMC4wMDM1OTEsIDAuMDAzNTg4LCAwLjAwMzU4OCIsIFwKLSAgICAgICAgICAiMC4wMDM2MTEsIDAuMDAzNjA5LCAwLjAwMzYwMiwgMC4wMDM1OTYsIDAuMDAzNTk0LCAwLjAwMzU5LCAwLjAwMzU4OCIsIFwKLSAgICAgICAgICAiMC4wMDM2MzQsIDAuMDAzNjMxLCAwLjAwMzYxMywgMC4wMDM2MDIsIDAuMDAzNTk4LCAwLjAwMzU5MywgMC4wMDM1OTEiLCBcCi0gICAgICAgICAgIjAuMDAzNjgzLCAwLjAwMzY3NCwgMC4wMDM2MzcsIDAuMDAzNjE5LCAwLjAwMzYwOCwgMC4wMDM1OTksIDAuMDAzNTk2IiwgXAotICAgICAgICAgICIwLjAwMzczOCwgMC4wMDM3MjQsIDAuMDAzNjY2LCAwLjAwMzYzNiwgMC4wMDM2MiwgMC4wMDM2MDYsIDAuMDAzNjAxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwODIzLCAwLjAwMDgyNCwgMC4wMDA4MjYsIDAuMDAwODI2LCAwLjAwMDgyNiwgMC4wMDA4MjYsIDAuMDAwODI2IiwgXAotICAgICAgICAgICIwLjAwMDgxNSwgMC4wMDA4MTgsIDAuMDAwODI3LCAwLjAwMDgzLCAwLjAwMDgzMiwgMC4wMDA4MzIsIDAuMDAwODMyIiwgXAotICAgICAgICAgICIwLjAwMDgwMSwgMC4wMDA4MDUsIDAuMDAwODIxLCAwLjAwMDgyOCwgMC4wMDA4MywgMC4wMDA4MzEsIDAuMDAwODMyIiwgXAotICAgICAgICAgICIwLjAwMDc5MiwgMC4wMDA3OTYsIDAuMDAwODE2LCAwLjAwMDgyNSwgMC4wMDA4MjgsIDAuMDAwODMsIDAuMDAwODMxIiwgXAotICAgICAgICAgICIwLjAwMDc4OSwgMC4wMDA3OTMsIDAuMDAwODEzLCAwLjAwMDgyMywgMC4wMDA4MjcsIDAuMDAwODMsIDAuMDAwODMiLCBcCi0gICAgICAgICAgIjAuMDAwNzk3LCAwLjAwMDgsIDAuMDAwODE1LCAwLjAwMDgyMywgMC4wMDA4MjcsIDAuMDAwODMsIDAuMDAwODMiLCBcCi0gICAgICAgICAgIjAuMDAwODE2LCAwLjAwMDgxNSwgMC4wMDA4MjIsIDAuMDAwODI3LCAwLjAwMDgzLCAwLjAwMDgzMSwgMC4wMDA4MzIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDMCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyNjY4LCAwLjAwMjY2OCwgMC4wMDI2NjksIDAuMDAyNjcsIDAuMDAyNjcsIDAuMDAyNjcsIDAuMDAyNjciLCBcCi0gICAgICAgICAgIjAuMDAyNjcxLCAwLjAwMjY3MiwgMC4wMDI2NzgsIDAuMDAyNjgyLCAwLjAwMjY4MSwgMC4wMDI2ODUsIDAuMDAyNjgyIiwgXAotICAgICAgICAgICIwLjAwMjY3MSwgMC4wMDI2NzMsIDAuMDAyNjc5LCAwLjAwMjY4MiwgMC4wMDI2ODMsIDAuMDAyNjg1LCAwLjAwMjY4NSIsIFwKLSAgICAgICAgICAiMC4wMDI2NzksIDAuMDAyNjc5LCAwLjAwMjY4MiwgMC4wMDI2ODUsIDAuMDAyNjg1LCAwLjAwMjY4NSwgMC4wMDI2ODUiLCBcCi0gICAgICAgICAgIjAuMDAyNjkzLCAwLjAwMjY5MywgMC4wMDI2OTEsIDAuMDAyNjg5LCAwLjAwMjY4OCwgMC4wMDI2ODcsIDAuMDAyNjg3IiwgXAotICAgICAgICAgICIwLjAwMjczLCAwLjAwMjcyNCwgMC4wMDI3MDgsIDAuMDAyNzAxLCAwLjAwMjY5NywgMC4wMDI2OTMsIDAuMDAyNjkyIiwgXAotICAgICAgICAgICIwLjAwMjc3MywgMC4wMDI3NjIsIDAuMDAyNzI5LCAwLjAwMjcxNSwgMC4wMDI3MDcsIDAuMDAyNjk5LCAwLjAwMjY5NyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTA1MywgMC4wMDEwNTMsIDAuMDAxMDU0LCAwLjAwMTA1NCwgMC4wMDEwNTMsIDAuMDAxMDUyLCAwLjAwMTA1MiIsIFwKLSAgICAgICAgICAiMC4wMDEwNDUsIDAuMDAxMDQ2LCAwLjAwMTA0NywgMC4wMDEwNDcsIDAuMDAxMDQ3LCAwLjAwMTA0NiwgMC4wMDEwNDUiLCBcCi0gICAgICAgICAgIjAuMDAxMDUyLCAwLjAwMTA0OCwgMC4wMDEwNDksIDAuMDAxMDQ4LCAwLjAwMTA0NywgMC4wMDEwNDYsIDAuMDAxMDQ1IiwgXAotICAgICAgICAgICIwLjAwMTA2OSwgMC4wMDEwNjYsIDAuMDAxMDU2LCAwLjAwMTA1MSwgMC4wMDEwNDksIDAuMDAxMDQ3LCAwLjAwMTA0NiIsIFwKLSAgICAgICAgICAiMC4wMDEwOTYsIDAuMDAxMDkxLCAwLjAwMTA2OCwgMC4wMDEwNTgsIDAuMDAxMDU0LCAwLjAwMTA0OSwgMC4wMDEwNDgiLCBcCi0gICAgICAgICAgIjAuMDAxMTU5LCAwLjAwMTE0OCwgMC4wMDExLCAwLjAwMTA3NywgMC4wMDEwNjcsIDAuMDAxMDU3LCAwLjAwMTA1NCIsIFwKLSAgICAgICAgICAiMC4wMDEyMTQsIDAuMDAxMiwgMC4wMDExMzEsIDAuMDAxMDk0LCAwLjAwMTA3OSwgMC4wMDEwNjUsIDAuMDAxMDYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDMSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyNDExLCAwLjAwMjQxMiwgMC4wMDI0MTQsIDAuMDAyNDE1LCAwLjAwMjQxNSwgMC4wMDI0MTUsIDAuMDAyNDE0IiwgXAotICAgICAgICAgICIwLjAwMjQxOCwgMC4wMDI0MiwgMC4wMDI0MjQsIDAuMDAyNDI1LCAwLjAwMjQyNiwgMC4wMDI0MjcsIDAuMDAyNDI3IiwgXAotICAgICAgICAgICIwLjAwMjQyOCwgMC4wMDI0MjgsIDAuMDAyNDI5LCAwLjAwMjQyOSwgMC4wMDI0MywgMC4wMDI0MjksIDAuMDAyNDI5IiwgXAotICAgICAgICAgICIwLjAwMjQ0NCwgMC4wMDI0NDIsIDAuMDAyNDM2LCAwLjAwMjQzNCwgMC4wMDI0MzIsIDAuMDAyNDMxLCAwLjAwMjQzMSIsIFwKLSAgICAgICAgICAiMC4wMDI0NjYsIDAuMDAyNDY0LCAwLjAwMjQ0OSwgMC4wMDI0MzksIDAuMDAyNDM3LCAwLjAwMjQzNCwgMC4wMDI0MzMiLCBcCi0gICAgICAgICAgIjAuMDAyNTE3LCAwLjAwMjUwNywgMC4wMDI0NzMsIDAuMDAyNDU0LCAwLjAwMjQ0NywgMC4wMDI0NCwgMC4wMDI0MzgiLCBcCi0gICAgICAgICAgIjAuMDAyNTY5LCAwLjAwMjU1NywgMC4wMDI1MDIsIDAuMDAyNDczLCAwLjAwMjQ1OSwgMC4wMDI0NDgsIDAuMDAyNDQ0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwODkyLCAwLjAwMDg5MywgMC4wMDA4OTUsIDAuMDAwODk2LCAwLjAwMDg5NiwgMC4wMDA4OTUsIDAuMDAwODk1IiwgXAotICAgICAgICAgICIwLjAwMDg4OSwgMC4wMDA4OTEsIDAuMDAwODk4LCAwLjAwMDksIDAuMDAwOTAxLCAwLjAwMDkwMSwgMC4wMDA5MDEiLCBcCi0gICAgICAgICAgIjAuMDAwODksIDAuMDAwODg5LCAwLjAwMDg5OCwgMC4wMDA5MDEsIDAuMDAwOTAxLCAwLjAwMDkwMiwgMC4wMDA5MDEiLCBcCi0gICAgICAgICAgIjAuMDAwOSwgMC4wMDA5LCAwLjAwMDkwMSwgMC4wMDA5MDIsIDAuMDAwOTAyLCAwLjAwMDkwMywgMC4wMDA5MDIiLCBcCi0gICAgICAgICAgIjAuMDAwOTI0LCAwLjAwMDkyMSwgMC4wMDA5MTEsIDAuMDAwOTA4LCAwLjAwMDkwNiwgMC4wMDA5MDUsIDAuMDAwOTA0IiwgXAotICAgICAgICAgICIwLjAwMDk3NywgMC4wMDA5NjksIDAuMDAwOTQxLCAwLjAwMDkyNCwgMC4wMDA5MTgsIDAuMDAwOTExLCAwLjAwMDkwOSIsIFwKLSAgICAgICAgICAiMC4wMDEwMjYsIDAuMDAxMDE2LCAwLjAwMDk2NCwgMC4wMDA5MzgsIDAuMDAwOTI3LCAwLjAwMDkxNywgMC4wMDA5MTQiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IFhPUjNYMSAqCi0gKiAtLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKFhPUjNYMSkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjgxNjM0ODsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwODM2MDQ2OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDgzNTQ0MTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA4MzYwNDY7Ci0gIH0KLSAgcGluKEIpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMjI3NzQ2OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMjI3NzMzOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMjI3NzQ2OwotICB9Ci0gIHBpbihDKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE1MDAzNzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE1MDAwODsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE1MDAzNzsKLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjI5OTE5ODsKLSAgICBmdW5jdGlvbiA6ICIoKEFeQileQykiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwMTIzMiwgMC4xMjA5NDcsIDAuMjI1Nzk3LCAwLjMxNzQ2MSwgMC40Mzk2OTQsIDAuNjg0MTQsIDAuODM2OTI0IiwgXAotICAgICAgICAgICIwLjEwOTMsIDAuMTI5MDA4LCAwLjIzMzg3MiwgMC4zMjU1NDQsIDAuNDQ3NzMsIDAuNjkyMjQ0LCAwLjg0NTM5IiwgXAotICAgICAgICAgICIwLjExOTQ5NCwgMC4xMzkyMTIsIDAuMjQ0MDksIDAuMzM1NzQ0LCAwLjQ1Nzk0MywgMC43MDI0NzksIDAuODU1MjUxIiwgXAotICAgICAgICAgICIwLjEyODkxLCAwLjE0ODYyOSwgMC4yNTM1MDcsIDAuMzQ1MTcyLCAwLjQ2NzM2MSwgMC43MTE5ODcsIDAuODY0NzI4IiwgXAotICAgICAgICAgICIwLjEzNzUyOSwgMC4xNTcyNjcsIDAuMjYyMTgyLCAwLjM1MzgzLCAwLjQ3NjA2OSwgMC43MjA1NzksIDAuODczMzQzIiwgXAotICAgICAgICAgICIwLjE0OTkzLCAwLjE2OTc4MywgMC4yNzQ3MzMsIDAuMzY2MzgzLCAwLjQ4ODY0MywgMC43MzMxMDQsIDAuODg1OTIxIiwgXAotICAgICAgICAgICIwLjE1OTEsIDAuMTc5MDk5LCAwLjI4NDE1LCAwLjM3NTc4NiwgMC40OTc5NzgsIDAuNzQyNjExLCAwLjg5NTQxMyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzk2MTQsIDAuMTE2NDQ4LCAwLjMzMDYwOSwgMC41MjMxMjEsIDAuNzc5OTg2LCAxLjI5Nzk4LCAxLjYxODIyIiwgXAotICAgICAgICAgICIwLjA3OTYwMiwgMC4xMTYzNTUsIDAuMzMwNTEyLCAwLjUyMjQ5NCwgMC43ODAwNTksIDEuMjk1OSwgMS42MTg1OSIsIFwKLSAgICAgICAgICAiMC4wNzk2OTgsIDAuMTE2NDcsIDAuMzMwNTE5LCAwLjUyMjk4NiwgMC43ODA4NTQsIDEuMjk2MTQsIDEuNjIwNDciLCBcCi0gICAgICAgICAgIjAuMDc5ODgxLCAwLjExNjYwMywgMC4zMzA1NTYsIDAuNTIyMzk3LCAwLjc4MDg2OCwgMS4yOTUyLCAxLjYxODUyIiwgXAotICAgICAgICAgICIwLjA4MDI4MywgMC4xMTY5MTIsIDAuMzMwNTIzLCAwLjUyMjgzMywgMC43ODExNDksIDEuMjk2NTksIDEuNjE4MTUiLCBcCi0gICAgICAgICAgIjAuMDgxNDM3LCAwLjExNzc5NiwgMC4zMzA5NTQsIDAuNTIzMTYyLCAwLjc4MTExNywgMS4yOTY0NSwgMS42MjAzMSIsIFwKLSAgICAgICAgICAiMC4wODI1MDYsIDAuMTE4NzE0LCAwLjMzMTE4MiwgMC41MjMwMDcsIDAuNzgwOTcxLCAxLjI5NTkxLCAxLjYxODU3Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwMTYzNiwgMC4xMjQyNTUsIDAuMjQ3MDk0LCAwLjM1NDkyNywgMC40OTg3ODksIDAuNzg2NDIsIDAuOTY2MTMxIiwgXAotICAgICAgICAgICIwLjEwOTYwOSwgMC4xMzIyMjYsIDAuMjU1MDY0LCAwLjM2MjkwMywgMC41MDY3MzcsIDAuNzk0NzQ0LCAwLjk3NDA2IiwgXAotICAgICAgICAgICIwLjExODkyLCAwLjE0MTUzNiwgMC4yNjQzODcsIDAuMzcyMjQ1LCAwLjUxNjEwMywgMC44MDM3OTEsIDAuOTgzNDk4IiwgXAotICAgICAgICAgICIwLjEyNzUxNiwgMC4xNTAxNDIsIDAuMjcyOTk5LCAwLjM4MDgzNSwgMC41MjQ2MjksIDAuODEyNTAyLCAwLjk5MjI5NiIsIFwKLSAgICAgICAgICAiMC4xMzQ4NzEsIDAuMTU3NTIyLCAwLjI4MDM4NSwgMC4zODgyNywgMC41MzIwMzksIDAuODE5NjQxLCAwLjk5OTQ1NyIsIFwKLSAgICAgICAgICAiMC4xNDQ5OTUsIDAuMTY3NzUyLCAwLjI5MDY1NCwgMC4zOTg1MTgsIDAuNTQyMjU0LCAwLjgzMDMyOCwgMS4wMTAxNyIsIFwKLSAgICAgICAgICAiMC4xNTIzOSwgMC4xNzU0MDksIDAuMjk4MjM4LCAwLjQwNjA2LCAwLjU0OTg0NSwgMC44Mzc3NzQsIDEuMDE3MjciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg3NjY3LCAwLjEzMDAzMSwgMC4zNzY1OSwgMC41OTcwNTcsIDAuODkxNzk4LCAxLjQ4MDMzLCAxLjg1MTg3IiwgXAotICAgICAgICAgICIwLjA4NzY4LCAwLjEzMDA1MSwgMC4zNzY1NTIsIDAuNTk2Mjc5LCAwLjg5MjAyMiwgMS40ODA1NiwgMS44NTE5NiIsIFwKLSAgICAgICAgICAiMC4wODc3MDIsIDAuMTMwMDk4LCAwLjM3NjU2NSwgMC41OTcxMDgsIDAuODkyMDcxLCAxLjQ4MDExLCAxLjg1MTk3IiwgXAotICAgICAgICAgICIwLjA4NzkzNiwgMC4xMzAxOTEsIDAuMzc2NjA0LCAwLjU5NjMwMSwgMC44OTIwNzksIDEuNDgwOTksIDEuODQ4NiIsIFwKLSAgICAgICAgICAiMC4wODg0NDksIDAuMTMwNjE3LCAwLjM3NjY4NSwgMC41OTU5NTIsIDAuODkyMTcyLCAxLjQ4MjYsIDEuODQ4MDkiLCBcCi0gICAgICAgICAgIjAuMDg5NDksIDAuMTMxNDA3LCAwLjM3NzAwNiwgMC41OTczMDEsIDAuODkyMDQsIDEuNDgwMzMsIDEuODQ5MjIiLCBcCi0gICAgICAgICAgIjAuMDkwMzg5LCAwLjEzMjI2MywgMC4zNzcyMDMsIDAuNTk3MTIsIDAuODkyMTA3LCAxLjQ3OTk4LCAxLjg1MTk3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEyMjk0OSwgMC4xNDI1MDgsIDAuMjQ3MzU5LCAwLjMzOTAzLCAwLjQ2MTIxOSwgMC43MDU3MDQsIDAuODU4NzE3IiwgXAotICAgICAgICAgICIwLjEzMTI0MSwgMC4xNTA5MDEsIDAuMjU1NjY3LCAwLjM0NzMxMSwgMC40Njk1MjQsIDAuNzE0MTI2LCAwLjg2Njg4NyIsIFwKLSAgICAgICAgICAiMC4xNDA1MzMsIDAuMTYwMDg2LCAwLjI2NDk0OSwgMC4zNTY2MjQsIDAuNDc4ODEsIDAuNzIzMzI5LCAwLjg3NjAzOSIsIFwKLSAgICAgICAgICAiMC4xNDgxNDksIDAuMTY3ODE5LCAwLjI3MjU5MSwgMC4zNjQyNDUsIDAuNDg2NDUsIDAuNzMwOTc4LCAwLjg4MzgxOSIsIFwKLSAgICAgICAgICAiMC4xNTQyMjYsIDAuMTczODQ5LCAwLjI3ODYyLCAwLjM3MDI5NSwgMC40OTI0ODcsIDAuNzM2NzU3LCAwLjg4OTc5NSIsIFwKLSAgICAgICAgICAiMC4xNjIwMjksIDAuMTgxNzExLCAwLjI4NjQ4NSwgMC4zNzgxNDIsIDAuNTAwMzQ4LCAwLjc0NSwgMC44OTc2OTgiLCBcCi0gICAgICAgICAgIjAuMTY3OTk1LCAwLjE4NzYyOSwgMC4yOTIyMjcsIDAuMzg0MDgzLCAwLjUwNjA4LCAwLjc1MDczNywgMC45MDMzNjIiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc5NTQsIDAuMTE2MjQyLCAwLjMzMDM1MSwgMC41MjI4OCwgMC43ODA5NTksIDEuMjk3OTksIDEuNjIwMTIiLCBcCi0gICAgICAgICAgIjAuMDc5NTI2LCAwLjExNjI4OSwgMC4zMzAzNjMsIDAuNTIyODc5LCAwLjc4MDA5LCAxLjI5NjQ3LCAxLjYyIiwgXAotICAgICAgICAgICIwLjA3OTU0NSwgMC4xMTYxNzEsIDAuMzMwMzUyLCAwLjUyMjg5LCAwLjc4MDA5NywgMS4yOTY0MSwgMS42MjExNyIsIFwKLSAgICAgICAgICAiMC4wNzk1MjIsIDAuMTE2MzA3LCAwLjMzMDM2MSwgMC41MjI4NzQsIDAuNzgwODQyLCAxLjI5NTg4LCAxLjYxOTAyIiwgXAotICAgICAgICAgICIwLjA3OTU1NSwgMC4xMTYzMDcsIDAuMzMwMzcxLCAwLjUyMzE3NCwgMC43ODA5NzIsIDEuMjk2ODQsIDEuNjE4OTUiLCBcCi0gICAgICAgICAgIjAuMDc5NTUyLCAwLjExNjMxOSwgMC4zMzAzOTYsIDAuNTIyNjgxLCAwLjc4MDA5NCwgMS4yOTU5MiwgMS42MTgxOSIsIFwKLSAgICAgICAgICAiMC4wNzk1MTksIDAuMTE2MjU1LCAwLjMzMDM4MywgMC41MjMwMjcsIDAuNzgwMTU1LCAxLjI5NjIyLCAxLjYxODYxIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEzNDM5MywgMC4xNTczNjMsIDAuMjgwNDk5LCAwLjM4ODMzOCwgMC41MzIxMzQsIDAuODIwMDYsIDAuOTk5NDQ0IiwgXAotICAgICAgICAgICIwLjE0Mjc3NywgMC4xNjU2OTIsIDAuMjg4ODI1LCAwLjM5NjY2NiwgMC41NDA0NSwgMC44MjgyMjgsIDEuMDA3NzgiLCBcCi0gICAgICAgICAgIjAuMTUzMDM3LCAwLjE3NTk2NSwgMC4yOTkxMDMsIDAuNDA2OTQyLCAwLjU1MDczNCwgMC44Mzg2OTgsIDEuMDE4MDUiLCBcCi0gICAgICAgICAgIjAuMTYxNzEsIDAuMTg0NjY0LCAwLjMwNzc4OSwgMC40MTU2MjQsIDAuNTU5NDQxLCAwLjg0NzMzNywgMS4wMjY5MiIsIFwKLSAgICAgICAgICAiMC4xNjkxMzQsIDAuMTkyMDQ5LCAwLjMxNTIwOCwgMC40MjMwMywgMC41NjY4MTMsIDAuODU0NTksIDEuMDM0MTUiLCBcCi0gICAgICAgICAgIjAuMTc5MTA3LCAwLjIwMjA3MSwgMC4zMjUyMDEsIDAuNDMzMDQ3LCAwLjU3NjgyNCwgMC44NjQ0OTcsIDEuMDQ0MjEiLCBcCi0gICAgICAgICAgIjAuMTg2NzEsIDAuMjA5NjY2LCAwLjMzMjgyNCwgMC40NDA2NTgsIDAuNTg0NDQ0LCAwLjg3MjA0MSwgMS4wNTE4NCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODk2NzgsIDAuMTMxODY1LCAwLjM3NzMzNywgMC41OTc0NTksIDAuODkxMTM4LCAxLjQ4MDA4LCAxLjg1MjY1IiwgXAotICAgICAgICAgICIwLjA4OTczMywgMC4xMzE4NTksIDAuMzc3MzUsIDAuNTk3NDcxLCAwLjg5MTA0OSwgMS40ODMyMSwgMS44NDgzNSIsIFwKLSAgICAgICAgICAiMC4wODk1MzgsIDAuMTMxODY2LCAwLjM3NzMyOSwgMC41OTc0NTcsIDAuODkxMDM1LCAxLjQ4MDU3LCAxLjg1MjEyIiwgXAotICAgICAgICAgICIwLjA4OTcxOCwgMC4xMzE4NzEsIDAuMzc3Mzk0LCAwLjU5NzQ3NywgMC44OTI0NCwgMS40ODAxLCAxLjg1MjU4IiwgXAotICAgICAgICAgICIwLjA4OTcyLCAwLjEzMTg2LCAwLjM3NzEyNiwgMC41OTc0NjQsIDAuODkyMDA2LCAxLjQ4MDUxLCAxLjg1MjA4IiwgXAotICAgICAgICAgICIwLjA4OTcxLCAwLjEzMTkyNCwgMC4zNzczNjgsIDAuNTk3MjQ2LCAwLjg5MTA0NCwgMS40Nzk4MSwgMS44NDkxMyIsIFwKLSAgICAgICAgICAiMC4wODk4MDYsIDAuMTMxOTI3LCAwLjM3NzEzMSwgMC41OTczODYsIDAuODkxMTk2LCAxLjQ4MjUyLCAxLjg0ODM0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4ODQwOCwgMC4xMDc5MDYsIDAuMjEyNTQxLCAwLjMwNDE4OSwgMC40MjYzOTIsIDAuNjcxMTM0LCAwLjgyMzc1MSIsIFwKLSAgICAgICAgICAiMC4wOTU5MzUsIDAuMTE1NDM1LCAwLjIyMDA1OCwgMC4zMTE3MjYsIDAuNDMzOTcxLCAwLjY3ODc0MSwgMC44MzEyNCIsIFwKLSAgICAgICAgICAiMC4xMDUsIDAuMTI0Njk0LCAwLjIyOTUwOCwgMC4zMjExNTcsIDAuNDQzMzc2LCAwLjY4Nzk4LCAwLjg0MDcyMiIsIFwKLSAgICAgICAgICAiMC4xMTM3NDQsIDAuMTMzNDQsIDAuMjM4MjU2LCAwLjMyOTkyNywgMC40NTIxNDYsIDAuNjk2NzU5LCAwLjg0OTQyOCIsIFwKLSAgICAgICAgICAiMC4xMjE0NzksIDAuMTQxMjIsIDAuMjQ2MDk2LCAwLjMzNzc1LCAwLjQ1OTkzNywgMC43MDQ0NDMsIDAuODU3NTEyIiwgXAotICAgICAgICAgICIwLjEzMTk1OCwgMC4xNTE4NDksIDAuMjU2ODA1LCAwLjM0ODQ0NCwgMC40NzA2NTUsIDAuNzE1NDQxLCAwLjg2ODI3MyIsIFwKLSAgICAgICAgICAiMC4xMzk3NTgsIDAuMTU5ODIyLCAwLjI2NDkwNCwgMC4zNTY1NjQsIDAuNDc4NzQ2LCAwLjcyMzE5NywgMC44NzYxMzUiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc5MzAyLCAwLjExNjE3OSwgMC4zMzAzNzgsIDAuNTIzMDU4LCAwLjc4MTA2NCwgMS4yOTc5NSwgMS42MiIsIFwKLSAgICAgICAgICAiMC4wNzkyODYsIDAuMTE2MTY4LCAwLjMzMDM5MiwgMC41MjMwNzcsIDAuNzgwMjIxLCAxLjI5NTkzLCAxLjYyMDA0IiwgXAotICAgICAgICAgICIwLjA3OTI2NSwgMC4xMTYxNjIsIDAuMzMwMzg4LCAwLjUyMzA2NiwgMC43ODAxNjIsIDEuMjk2MzcsIDEuNjE4MiIsIFwKLSAgICAgICAgICAiMC4wNzk1NDksIDAuMTE2MzQsIDAuMzMwNDI4LCAwLjUyMzEwMSwgMC43ODEwNzgsIDEuMjk2MDgsIDEuNjE4NSIsIFwKLSAgICAgICAgICAiMC4wODAxNjcsIDAuMTE2ODEzLCAwLjMzMDU5NywgMC41MjMxOTksIDAuNzgwMDUzLCAxLjI5NjI4LCAxLjYxODI2IiwgXAotICAgICAgICAgICIwLjA4MTM4NiwgMC4xMTc3NywgMC4zMzA5NDMsIDAuNTIzMjQsIDAuNzgxMDE3LCAxLjI5NjI2LCAxLjYxODU4IiwgXAotICAgICAgICAgICIwLjA4Mjc1MiwgMC4xMTg2OCwgMC4zMzEzNDMsIDAuNTIzMzQ5LCAwLjc4MTAwNiwgMS4yOTc3OSwgMS42MTkyIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5OTAxNCwgMC4xMjE5NDUsIDAuMjQ1MDgxLCAwLjM1MjkwOSwgMC40OTY3MjksIDAuNzg0Mjc3LCAwLjk2NDM5IiwgXAotICAgICAgICAgICIwLjEwNjU1NywgMC4xMjk1MiwgMC4yNTI2NDksIDAuMzYwNDksIDAuNTA0MjczLCAwLjc5MjIzLCAwLjk3MTYiLCBcCi0gICAgICAgICAgIjAuMTE1NDAzLCAwLjEzODMzNCwgMC4yNjE0NzgsIDAuMzY5MzIyLCAwLjUxMzEwOCwgMC44MDEwNiwgMC45ODA0MzMiLCBcCi0gICAgICAgICAgIjAuMTIzNTQ3LCAwLjE0NjQ4OCwgMC4yNjk2MjYsIDAuMzc3NDYxLCAwLjUyMTI1NywgMC44MDkyMDEsIDAuOTg4NTgiLCBcCi0gICAgICAgICAgIjAuMTMwNzI2LCAwLjE1Mzc0MiwgMC4yNzY5MSwgMC4zODQ3NDgsIDAuNTI4NTIsIDAuODE2MTQ0LCAwLjk5NTkzMiIsIFwKLSAgICAgICAgICAiMC4xNDA1MTEsIDAuMTYzNiwgMC4yODY5MSwgMC4zOTQ3MzQsIDAuNTM4NTA2LCAwLjgyNjIwMiwgMS4wMDU4NSIsIFwKLSAgICAgICAgICAiMC4xNDc2OTIsIDAuMTcxMDAxLCAwLjI5NDM4NiwgMC40MDIyMDIsIDAuNTQ2MDI5LCAwLjgzMzU3LCAxLjAxMzQzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4OTc5LCAwLjEzMTkwOSwgMC4zNzc0MDEsIDAuNTk3NDY2LCAwLjg5MDc4NSwgMS40ODI2NywgMS44NTAzOSIsIFwKLSAgICAgICAgICAiMC4wODk3OTQsIDAuMTMxOTI1LCAwLjM3NzM4NiwgMC41OTc0NywgMC44OTEwNzMsIDEuNDgwNDgsIDEuODQ4MzUiLCBcCi0gICAgICAgICAgIjAuMDg5NzkzLCAwLjEzMTkxMywgMC4zNzczNzYsIDAuNTk3NDY1LCAwLjg5MTA3NCwgMS40ODA1MSwgMS44NDgzNSIsIFwKLSAgICAgICAgICAiMC4wODk5OTEsIDAuMTMyMDU0LCAwLjM3NzQzMiwgMC41OTY4NCwgMC44OTEwMjQsIDEuNDgwNjUsIDEuODQ4MzYiLCBcCi0gICAgICAgICAgIjAuMDkwNDUyLCAwLjEzMjQyMywgMC4zNzc1NTIsIDAuNTk2OTM4LCAwLjg5MDk5NiwgMS40Nzk4MiwgMS44NDgxOSIsIFwKLSAgICAgICAgICAiMC4wOTE2NzcsIDAuMTMzMzc5LCAwLjM3Nzg5MiwgMC41OTc2MjYsIDAuODkyMDkzLCAxLjQ4MDE0LCAxLjg1MDA2IiwgXAotICAgICAgICAgICIwLjA5MjczNywgMC4xMzQxMDksIDAuMzc3ODc3LCAwLjU5NzgyOCwgMC44OTIwODcsIDEuNDgyNjUsIDEuODQ4ODkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDkyODgxLCAwLjExMjUxMiwgMC4yMTcyOTIsIDAuMzA4OTYyLCAwLjQzMTE0NywgMC42NzYwMTEsIDAuODI4OTIyIiwgXAotICAgICAgICAgICIwLjEwMDg2MiwgMC4xMjA1MDUsIDAuMjI1Mjc5LCAwLjMxNjk0OSwgMC40MzkxNTIsIDAuNjgzNzgzLCAwLjgzNjQ4MyIsIFwKLSAgICAgICAgICAiMC4xMDk0MjksIDAuMTI5MDg4LCAwLjIzMzg2MSwgMC4zMjU1MjEsIDAuNDQ3NzIsIDAuNjkyMzAyLCAwLjg0NTA4OSIsIFwKLSAgICAgICAgICAiMC4xMTUxOSwgMC4xMzQ4NDksIDAuMjM5NjEzLCAwLjMzMTI4MiwgMC40NTM0ODQsIDAuNjk4Mzg5LCAwLjg1MDc2MyIsIFwKLSAgICAgICAgICAiMC4xMTk1NzQsIDAuMTM5MjE2LCAwLjI0NDAwMSwgMC4zMzU2NTcsIDAuNDU3ODg4LCAwLjcwMjMwMywgMC44NTU4ODgiLCBcCi0gICAgICAgICAgIjAuMTI1MTAyLCAwLjE0NDcwNywgMC4yNDk0MjcsIDAuMzQxMDg4LCAwLjQ2MzI4NywgMC43MDc5MTYsIDAuODYwOTUxIiwgXAotICAgICAgICAgICIwLjEyOTE1NiwgMC4xNDg3MywgMC4yNTMzNjEsIDAuMzQ1MDUsIDAuNDY3MjU4LCAwLjcxMTgxNCwgMC44NjQ1NjEiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc5NDkxLCAwLjExNjI4NSwgMC4zMzAzNTUsIDAuNTIyNjQxLCAwLjc4MDA3MSwgMS4yOTU5NCwgMS42MTg1IiwgXAotICAgICAgICAgICIwLjA3OTQzOCwgMC4xMTYxODQsIDAuMzMwMzU1LCAwLjUyMjgyMiwgMC43ODAxNDUsIDEuMjk1ODksIDEuNjE5OTYiLCBcCi0gICAgICAgICAgIjAuMDc5NDAxLCAwLjExNjIwOCwgMC4zMzAzNTMsIDAuNTIyOTgsIDAuNzgwNzc2LCAxLjI5NjYxLCAxLjYxOTA0IiwgXAotICAgICAgICAgICIwLjA3OTM2OCwgMC4xMTYyMSwgMC4zMzA0MDIsIDAuNTIzMDYsIDAuNzgxMDMyLCAxLjI5NjI0LCAxLjYxOTU4IiwgXAotICAgICAgICAgICIwLjA3OTIzOSwgMC4xMTYwNSwgMC4zMzAyOTQsIDAuNTIzMDA4LCAwLjc4MTAxMywgMS4yOTc4MSwgMS42MTkwMyIsIFwKLSAgICAgICAgICAiMC4wNzkxNDIsIDAuMTE1OTMsIDAuMzMwMjIsIDAuNTIyOTMsIDAuNzgwODg3LCAxLjI5NjQxLCAxLjYyMDI1IiwgXAotICAgICAgICAgICIwLjA3OTI3LCAwLjExNTk3NCwgMC4zMzAxODgsIDAuNTIyNjk0LCAwLjc3OTkzNiwgMS4yOTY5MiwgMS42MjAwNSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTg1MTEsIDAuMTIxNDA3LCAwLjI0NDQzMiwgMC4zNTIyODcsIDAuNDk2MDkzLCAwLjc4Mzk0NywgMC45NjMzNyIsIFwKLSAgICAgICAgICAiMC4xMDY5MDUsIDAuMTI5NzQ0LCAwLjI1Mjc3OSwgMC4zNjA2MTIsIDAuNTA0NDA3LCAwLjc5MTk5MiwgMC45NzIxMjUiLCBcCi0gICAgICAgICAgIjAuMTE1ODQsIDAuMTM4NjYyLCAwLjI2MTcwMSwgMC4zNjk1NDMsIDAuNTEzMzYsIDAuODAxMjA4LCAwLjk4MDYzOSIsIFwKLSAgICAgICAgICAiMC4xMjE5OTIsIDAuMTQ0ODM3LCAwLjI2Nzg2OSwgMC4zNzU3MDcsIDAuNTE5NDg1LCAwLjgwNzA5OCwgMC45ODcwMjciLCBcCi0gICAgICAgICAgIjAuMTI2Nzc3LCAwLjE0OTYzNSwgMC4yNzI2NzUsIDAuMzgwNTIsIDAuNTI0MjkyLCAwLjgxMjEzNCwgMC45OTE2OTciLCBcCi0gICAgICAgICAgIjAuMTMzNDcsIDAuMTU2MTc0LCAwLjI3OTE5OSwgMC4zODY5MywgMC41MzA4MTksIDAuODE4ODQ3LCAwLjk5ODExMiIsIFwKLSAgICAgICAgICAiMC4xMzgxNDcsIDAuMTYwODc3LCAwLjI4Mzc5NCwgMC4zOTE2OTIsIDAuNTM1NTEsIDAuODIzMTk4LCAxLjAwMjc5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4OTI1NiwgMC4xMzE0MjksIDAuMzc3MTQ5LCAwLjU5NzQ5NiwgMC44OTA1NDYsIDEuNDgwMDgsIDEuODQ5NjIiLCBcCi0gICAgICAgICAgIjAuMDg5MTk3LCAwLjEzMTM2MywgMC4zNzcxNzMsIDAuNTk3MzU3LCAwLjg5MjA0NywgMS40ODI2NCwgMS44NDg3MiIsIFwKLSAgICAgICAgICAiMC4wODkyMDIsIDAuMTMxMzY1LCAwLjM3Njc4MiwgMC41OTczNDEsIDAuODkyMTc5LCAxLjQ4MDEsIDEuODUyNiIsIFwKLSAgICAgICAgICAiMC4wODkxNDYsIDAuMTMxMzU5LCAwLjM3NzE1MywgMC41OTczMjksIDAuODkyMjI0LCAxLjQ4MjY3LCAxLjg1MTc4IiwgXAotICAgICAgICAgICIwLjA4ODk4LCAwLjEzMTIwMywgMC4zNzcwOTYsIDAuNTk3MjI1LCAwLjg5MTkxNywgMS40ODAxNSwgMS44NTE4MyIsIFwKLSAgICAgICAgICAiMC4wODg4NTYsIDAuMTMxMDM3LCAwLjM3NzAxMiwgMC41OTcxNiwgMC44OTIwMzcsIDEuNDc5ODYsIDEuODUxODQiLCBcCi0gICAgICAgICAgIjAuMDg5MDg4LCAwLjEzMDk0MywgMC4zNzY5MzEsIDAuNTk2OTEzLCAwLjg5MTY2MiwgMS40ODAyOCwgMS44NDgzNCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjI1NzQsIDAuMDgyMDgxLCAwLjE4Njc2MiwgMC4yNzgzOTcsIDAuNDAwNjE2LCAwLjY0NTM5NiwgMC43OTgxNTEiLCBcCi0gICAgICAgICAgIjAuMDcwNTIsIDAuMDkwMDEsIDAuMTk0NjY1LCAwLjI4NjMwNywgMC40MDg1NjEsIDAuNjUzMDE5LCAwLjgwNTg5NiIsIFwKLSAgICAgICAgICAiMC4wNzkzMTYsIDAuMDk4Nzg0LCAwLjIwMzQyOSwgMC4yOTUwOCwgMC40MTczLCAwLjY2MTk0OSwgMC44MTQ5MjgiLCBcCi0gICAgICAgICAgIjAuMDg2MzAxLCAwLjEwNTc5LCAwLjIxMDQ2NywgMC4zMDIxMjQsIDAuNDI0MzgyLCAwLjY2OTI0NywgMC44MjE2MjkiLCBcCi0gICAgICAgICAgIjAuMDkyMTk1LCAwLjExMTczNCwgMC4yMTY0ODQsIDAuMzA4MTEzLCAwLjQzMDI5MywgMC42NzQ4NTUsIDAuODI3NzY4IiwgXAotICAgICAgICAgICIwLjEwMDIxMSwgMC4xMTk3NjMsIDAuMjI0NjY2LCAwLjMxNjMxNSwgMC40Mzg1MTYsIDAuNjgzMDAzLCAwLjgzNjAyOCIsIFwKLSAgICAgICAgICAiMC4xMDY0MzksIDAuMTI2MDQ2LCAwLjIzMDk2LCAwLjMyMjYxLCAwLjQ0NDg4MSwgMC42ODkxOTMsIDAuODQyMTc3Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3NzU1NSwgMC4xMTQ5MTMsIDAuMzMwMjc2LCAwLjUyMjgzOCwgMC43ODEwMzEsIDEuMjk1OTMsIDEuNjE4NzYiLCBcCi0gICAgICAgICAgIjAuMDc3MjQyLCAwLjExNDYzMywgMC4zMzAyMTEsIDAuNTIyNzg4LCAwLjc4MTA1OSwgMS4yOTU2MiwgMS42MTc3NSIsIFwKLSAgICAgICAgICAiMC4wNzcxOTcsIDAuMTE0NTU0LCAwLjMyOTk5LCAwLjUyMjczNiwgMC43ODA5NDQsIDEuMjk2NDYsIDEuNjE4NjIiLCBcCi0gICAgICAgICAgIjAuMDc3NTUyLCAwLjExNDg1NCwgMC4zMzAwMSwgMC41MjI4NTgsIDAuNzc5ODg0LCAxLjI5NTg4LCAxLjYxODE5IiwgXAotICAgICAgICAgICIwLjA3ODA3MiwgMC4xMTUxNTQsIDAuMzMwMjAyLCAwLjUyMjk0NSwgMC43ODA3MzksIDEuMjk3ODIsIDEuNjE4NDciLCBcCi0gICAgICAgICAgIjAuMDc5MTI3LCAwLjExNTc4LCAwLjMzMDUwOCwgMC41MjMyNTksIDAuNzgwODAzLCAxLjI5NjQ5LCAxLjYxODUiLCBcCi0gICAgICAgICAgIjAuMDc5OTksIDAuMTE2NywgMC4zMzA3MjMsIDAuNTIzMzcxLCAwLjc4MTMxMSwgMS4yOTY5MSwgMS42MTk0MSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzEzMTEsIDAuMDk0MDY3LCAwLjIxNjk5NiwgMC4zMjQ4NjQsIDAuNDY4NzIsIDAuNzU2NDY3LCAwLjkzNTk0NSIsIFwKLSAgICAgICAgICAiMC4wNzg5NiwgMC4xMDE3MDYsIDAuMjI0NjM0LCAwLjMzMjQ3MywgMC40NzYzNTIsIDAuNzY0MDc4LCAwLjk0MzY0NiIsIFwKLSAgICAgICAgICAiMC4wODcyNjgsIDAuMTA5OTg2LCAwLjIzMjkzOCwgMC4zNDA4MTcsIDAuNDg0NjU5LCAwLjc3MjM4NSwgMC45NTE4NTYiLCBcCi0gICAgICAgICAgIjAuMDkzODA0LCAwLjExNjU0NiwgMC4yMzk1NCwgMC4zNDczNjEsIDAuNDkxMjUxLCAwLjc3ODkzNSwgMC45NTg2MDUiLCBcCi0gICAgICAgICAgIjAuMDk5MTQ4LCAwLjEyMTk5OSwgMC4yNDUwMjIsIDAuMzUyODcxLCAwLjQ5NjY4OSwgMC43ODQ2MTMsIDAuOTY0MDI2IiwgXAotICAgICAgICAgICIwLjEwNjQsIDAuMTI5Mjg3LCAwLjI1MjU1NywgMC4zNjAzNjcsIDAuNTA0MjE5LCAwLjc5MTc3NiwgMC45NzE1MjMiLCBcCi0gICAgICAgICAgIjAuMTExODY3LCAwLjEzNDY4OCwgMC4yNTgxOTMsIDAuMzY2MDEyLCAwLjUwOTc3MywgMC43OTczMDEsIDAuOTc3NDUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg3NzU5LCAwLjEzMDM5LCAwLjM3NjkxNiwgMC41OTc0MzYsIDAuODkyMTE3LCAxLjQ4MDA5LCAxLjg1MjEiLCBcCi0gICAgICAgICAgIjAuMDg3NDk1LCAwLjEzMDE5OCwgMC4zNzY0ODMsIDAuNTk3MjksIDAuODkyMDY4LCAxLjQ4MDEyLCAxLjg1MjA0IiwgXAotICAgICAgICAgICIwLjA4NzQ2OSwgMC4xMzAxMzksIDAuMzc2MzI1LCAwLjU5NjY4NSwgMC44OTA1MjMsIDEuNDgwMTIsIDEuODUxOTciLCBcCi0gICAgICAgICAgIjAuMDg3NzksIDAuMTMwNDIzLCAwLjM3Njk3NiwgMC41OTcyMywgMC44OTAxMjYsIDEuNDgwMiwgMS44NTIxMyIsIFwKLSAgICAgICAgICAiMC4wODgxMTYsIDAuMTMwNzMzLCAwLjM3NjgwMywgMC41OTc0ODQsIDAuODkwNzM5LCAxLjQ4MDExLCAxLjg1MjA1IiwgXAotICAgICAgICAgICIwLjA4ODg1OCwgMC4xMzExMTIsIDAuMzc2OTA1LCAwLjU5NzExOSwgMC44OTIxOTUsIDEuNDgxMDMsIDEuODUxOTUiLCBcCi0gICAgICAgICAgIjAuMDg5NDg3LCAwLjEzMTY5NywgMC4zNzcyODUsIDAuNTk3OTYyLCAwLjg5MjYzOSwgMS40ODMwOCwgMS44NDg3OSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjgwMDYsIDAuMDg3NDU2LCAwLjE5MjAxMywgMC4yODM2NzYsIDAuNDA2MDQzLCAwLjY1MDYzNSwgMC44MDMyNjQiLCBcCi0gICAgICAgICAgIjAuMDc1OTExLCAwLjA5NTM1NiwgMC4xOTk5MTIsIDAuMjkxNTY4LCAwLjQxMzg1NCwgMC42NTgyNjQsIDAuODExMTM2IiwgXAotICAgICAgICAgICIwLjA4MjcyNSwgMC4xMDIxMiwgMC4yMDY3MTQsIDAuMjk4MzU0LCAwLjQyMDU2OSwgMC42NjUyMjcsIDAuODE3OTk1IiwgXAotICAgICAgICAgICIwLjA4NjkzNSwgMC4xMDYyNDcsIDAuMjEwODI0LCAwLjMwMjUyMywgMC40MjQ4MTUsIDAuNjY5MzY3LCAwLjgyMjIzOSIsIFwKLSAgICAgICAgICAiMC4wOTAyNzIsIDAuMTA5NTE5LCAwLjIxNDAzNCwgMC4zMDU3NCwgMC40Mjc5NzcsIDAuNjcyNjA1LCAwLjgyNTM0OSIsIFwKLSAgICAgICAgICAiMC4wOTQ0NjgsIDAuMTEzNzIzLCAwLjIxODA3MSwgMC4zMDk4MDUsIDAuNDMyMDEzLCAwLjY3NjQzMywgMC44Mjk2MDUiLCBcCi0gICAgICAgICAgIjAuMDk3NDcyLCAwLjExNjgwMSwgMC4yMjEwMzQsIDAuMzEyNzA3LCAwLjQzNDk3NywgMC42Nzk3NCwgMC44MzI3NCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzc1NCwgMC4xMTQ3NTYsIDAuMzI5ODE1LCAwLjUyMjc4NywgMC43Nzk3MTUsIDEuMjk1ODcsIDEuNjE5MzEiLCBcCi0gICAgICAgICAgIjAuMDc3Mzc4LCAwLjExNDY0MiwgMC4zMjk3OCwgMC41MjI3MTYsIDAuNzgwODUzLCAxLjI5Nzk1LCAxLjYxODA3IiwgXAotICAgICAgICAgICIwLjA3NzA2NSwgMC4xMTQ0LCAwLjMyOTk4NiwgMC41MjI2OTksIDAuNzgwNzczLCAxLjI5NTgsIDEuNjE5MzciLCBcCi0gICAgICAgICAgIjAuMDc2ODMsIDAuMTE0MTc2LCAwLjMyOTkwNSwgMC41MjI5NjIsIDAuNzgwMDUsIDEuMjk1ODEsIDEuNjE5NjgiLCBcCi0gICAgICAgICAgIjAuMDc2NzIsIDAuMTE0MDEyLCAwLjMyOTY2NSwgMC41MjI4OTYsIDAuNzc5NTg0LCAxLjI5NjE4LCAxLjYxOTQyIiwgXAotICAgICAgICAgICIwLjA3Njc4NiwgMC4xMTM5ODMsIDAuMzI5ODY2LCAwLjUyMjEzNiwgMC43ODAyNDMsIDEuMjk1NiwgMS42MTg2MyIsIFwKLSAgICAgICAgICAiMC4wNzY4NDksIDAuMTE0MTE5LCAwLjMyOTQ0NSwgMC41MjI1MzIsIDAuNzc5Nzg2LCAxLjI5NjE4LCAxLjYxODQxIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3NTU1MiwgMC4wOTg0MjMsIDAuMjIxNDgsIDAuMzI5MzMxLCAwLjQ3MzE0NCwgMC43NjA5OTYsIDAuOTQwNDA2IiwgXAotICAgICAgICAgICIwLjA4Mzg3OCwgMC4xMDY3MiwgMC4yMjk3OTQsIDAuMzM3NjI2LCAwLjQ4MTUyNCwgMC43NjkyNzIsIDAuOTQ4NzgiLCBcCi0gICAgICAgICAgIjAuMDkxMTgsIDAuMTE0MDYxLCAwLjIzNzA2NSwgMC4zNDQ5NiwgMC40ODg3NCwgMC43NzY2MDcsIDAuOTU2MDk4IiwgXAotICAgICAgICAgICIwLjA5NTk0LCAwLjExODc1NSwgMC4yNDE4MTQsIDAuMzQ5Njg3LCAwLjQ5MzU1NywgMC43ODEzMTcsIDAuOTYwODIxIiwgXAotICAgICAgICAgICIwLjA5OTkzMSwgMC4xMjI2MjYsIDAuMjQ1Njg1LCAwLjM1MzUyMiwgMC40OTczODMsIDAuNzg1MTUzLCAwLjk2NDczNSIsIFwKLSAgICAgICAgICAiMC4xMDUwNDcsIDAuMTI3NzU1LCAwLjI1MDY4NywgMC4zNTg1NTEsIDAuNTAyMzU0LCAwLjc5MDAyOCwgMC45Njk3NDQiLCBcCi0gICAgICAgICAgIjAuMTA4OTc0LCAwLjEzMTY5MSwgMC4yNTQ1MDUsIDAuMzYyNDM4LCAwLjUwNjIyNywgMC43OTM4NDMsIDAuOTczNDQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg4MjYxLCAwLjEzMDg1NiwgMC4zNzY4MDQsIDAuNTk3NTEzLCAwLjg5MDc0OSwgMS40ODAxLCAxLjg1MjciLCBcCi0gICAgICAgICAgIjAuMDg4MDk4LCAwLjEzMDczNCwgMC4zNzY3NTgsIDAuNTk3MzE3LCAwLjg5MjE3MywgMS40ODAxLCAxLjg1MjA3IiwgXAotICAgICAgICAgICIwLjA4NzgyMywgMC4xMzA1NTIsIDAuMzc3MDQ2LCAwLjU5NzQzNywgMC44OTAzNTYsIDEuNDgwMDksIDEuODUyMDYiLCBcCi0gICAgICAgICAgIjAuMDg3NTczLCAwLjEzMDMzNiwgMC4zNzY5ODEsIDAuNTk3NDczLCAwLjg5MDU0OCwgMS40ODAwOSwgMS44NTIwNSIsIFwKLSAgICAgICAgICAiMC4wODc0MTMsIDAuMTMwMjIzLCAwLjM3NjUxNiwgMC41OTcxNTUsIDAuODkyMDU4LCAxLjQ4MDExLCAxLjg1MjA0IiwgXAotICAgICAgICAgICIwLjA4NzQ0NiwgMC4xMjk5NTIsIDAuMzc2NDIxLCAwLjU5NzI5NSwgMC44OTA0NzYsIDEuNDgzMDUsIDEuODUyMDUiLCBcCi0gICAgICAgICAgIjAuMDg3NDkzLCAwLjEzMDAyNywgMC4zNzY2OTYsIDAuNTk1ODk1LCAwLjg5MDkyMiwgMS40ODI2MSwgMS44NTE3OSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMTQxMSwgMC4wMTE0MTQsIDAuMDExNDI0LCAwLjAxMTQyNiwgMC4wMTE0MjcsIDAuMDExNDI4LCAwLjAxMTQyOSIsIFwKLSAgICAgICAgICAiMC4wMTEzOTksIDAuMDExNDAzLCAwLjAxMTQxMiwgMC4wMTE0MTUsIDAuMDExNDE2LCAwLjAxMTQxNywgMC4wMTE0MjEiLCBcCi0gICAgICAgICAgIjAuMDExNDg3LCAwLjAxMTQ5LCAwLjAxMTUsIDAuMDExNTAxLCAwLjAxMTUwNCwgMC4wMTE1MDYsIDAuMDExNTA4IiwgXAotICAgICAgICAgICIwLjAxMTU2OCwgMC4wMTE1NzIsIDAuMDExNTgyLCAwLjAxMTU4NCwgMC4wMTE1ODYsIDAuMDExNTg4LCAwLjAxMTU4OCIsIFwKLSAgICAgICAgICAiMC4wMTE2OTgsIDAuMDExNzAxLCAwLjAxMTcxMSwgMC4wMTE3MTQsIDAuMDExNzE1LCAwLjAxMTcxNywgMC4wMTE3MTciLCBcCi0gICAgICAgICAgIjAuMDExODk1LCAwLjAxMTg5NywgMC4wMTE5MDgsIDAuMDExOTExLCAwLjAxMTkxMywgMC4wMTE5MTUsIDAuMDExOTE2IiwgXAotICAgICAgICAgICIwLjAxMjEyMywgMC4wMTIxMjYsIDAuMDEyMTM2LCAwLjAxMjEzOCwgMC4wMTIxNDEsIDAuMDEyMTQzLCAwLjAxMjE0NCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMTA4MiwgMC4wMTEwOSwgMC4wMTExMDgsIDAuMDExMTEzLCAwLjAxMTExNywgMC4wMTExMTksIDAuMDExMTIiLCBcCi0gICAgICAgICAgIjAuMDExMDU4LCAwLjAxMTA2NSwgMC4wMTEwODQsIDAuMDExMDg5LCAwLjAxMTA5MywgMC4wMTEwOTUsIDAuMDExMDk2IiwgXAotICAgICAgICAgICIwLjAxMTEyMSwgMC4wMTExMjgsIDAuMDExMTQ3LCAwLjAxMTE1MiwgMC4wMTExNTYsIDAuMDExMTU3LCAwLjAxMTE1OSIsIFwKLSAgICAgICAgICAiMC4wMTEyNTgsIDAuMDExMjY1LCAwLjAxMTI4NCwgMC4wMTEyODksIDAuMDExMjkzLCAwLjAxMTI5NSwgMC4wMTEyOTYiLCBcCi0gICAgICAgICAgIjAuMDExNDA3LCAwLjAxMTQxNCwgMC4wMTE0MzQsIDAuMDExNDQsIDAuMDExNDQzLCAwLjAxMTQ0NiwgMC4wMTE0NDciLCBcCi0gICAgICAgICAgIjAuMDExNTkyLCAwLjAxMTYsIDAuMDExNjIsIDAuMDExNjI2LCAwLjAxMTYzLCAwLjAxMTYzMywgMC4wMTE2MzQiLCBcCi0gICAgICAgICAgIjAuMDExODAyLCAwLjAxMTgxMSwgMC4wMTE4MywgMC4wMTE4MzUsIDAuMDExODM5LCAwLjAxMTg0MiwgMC4wMTE4NDMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDk0MSwgMC4wMDk0MTYsIDAuMDA5NDI2LCAwLjAwOTQyOCwgMC4wMDk0MjksIDAuMDA5NDMsIDAuMDA5NDMxIiwgXAotICAgICAgICAgICIwLjAwOTQ5NSwgMC4wMDk1MDEsIDAuMDA5NTEyLCAwLjAwOTUxNSwgMC4wMDk1MTcsIDAuMDA5NTE4LCAwLjAwOTUxOSIsIFwKLSAgICAgICAgICAiMC4wMDk2ODIsIDAuMDA5Njg3LCAwLjAwOTcsIDAuMDA5NzA0LCAwLjAwOTcwNiwgMC4wMDk3MDgsIDAuMDA5NzA4IiwgXAotICAgICAgICAgICIwLjAwOTkxMiwgMC4wMDk5MTYsIDAuMDA5OTMsIDAuMDA5OTM0LCAwLjAwOTkzNiwgMC4wMDk5MzgsIDAuMDA5OTM5IiwgXAotICAgICAgICAgICIwLjAxMDE3OSwgMC4wMTAxOCwgMC4wMTAxOSwgMC4wMTAyMDEsIDAuMDEwMjA0LCAwLjAxMDIwNiwgMC4wMTAxOTkiLCBcCi0gICAgICAgICAgIjAuMDEwNjksIDAuMDEwNjc1LCAwLjAxMDY4OCwgMC4wMTA3MSwgMC4wMTA3MTMsIDAuMDEwNzE1LCAwLjAxMDcxNiIsIFwKLSAgICAgICAgICAiMC4wMTEwNzgsIDAuMDExMDgyLCAwLjAxMTA5NCwgMC4wMTEwOTgsIDAuMDExMTAxLCAwLjAxMTEwNCwgMC4wMTExMDUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTA3MzQsIDAuMDEwNzQyLCAwLjAxMDc1OSwgMC4wMTA3NjMsIDAuMDEwNzY1LCAwLjAxMDc2NywgMC4wMTA3NjgiLCBcCi0gICAgICAgICAgIjAuMDEwODY1LCAwLjAxMDg3NCwgMC4wMTA4OTIsIDAuMDEwODk3LCAwLjAxMDg5OSwgMC4wMTA5MDEsIDAuMDEwOTAyIiwgXAotICAgICAgICAgICIwLjAxMTA0MiwgMC4wMTEwNSwgMC4wMTEwNywgMC4wMTEwNzYsIDAuMDExMDgsIDAuMDExMDgyLCAwLjAxMTA4MyIsIFwKLSAgICAgICAgICAiMC4wMTEyNjQsIDAuMDExMjcsIDAuMDExMjg5LCAwLjAxMTI5NSwgMC4wMTEyOTksIDAuMDExMzAzLCAwLjAxMTMwMyIsIFwKLSAgICAgICAgICAiMC4wMTE1MTYsIDAuMDExNTE5LCAwLjAxMTUzNSwgMC4wMTE1NDEsIDAuMDExNTQ1LCAwLjAxMTU0OSwgMC4wMTE1NSIsIFwKLSAgICAgICAgICAiMC4wMTIwMjYsIDAuMDEyMDA1LCAwLjAxMjAxNywgMC4wMTIwMjIsIDAuMDEyMDI2LCAwLjAxMjAzLCAwLjAxMjAzMSIsIFwKLSAgICAgICAgICAiMC4wMTI0MDYsIDAuMDEyMzk5LCAwLjAxMjQwNiwgMC4wMTI0MTEsIDAuMDEyNDE0LCAwLjAxMjQxOCwgMC4wMTI0MTkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQ1NzIsIDAuMDA0NTc5LCAwLjAwNDU4OCwgMC4wMDQ1OSwgMC4wMDQ1OTEsIDAuMDA0NTkyLCAwLjAwNDU5MSIsIFwKLSAgICAgICAgICAiMC4wMDQ2NzEsIDAuMDA0Njc4LCAwLjAwNDY5LCAwLjAwNDY5MywgMC4wMDQ2OTQsIDAuMDA0Njk2LCAwLjAwNDY5NSIsIFwKLSAgICAgICAgICAiMC4wMDQ4NTQsIDAuMDA0ODY0LCAwLjAwNDg3NSwgMC4wMDQ4NzgsIDAuMDA0ODgsIDAuMDA0ODgzLCAwLjAwNDg4MiIsIFwKLSAgICAgICAgICAiMC4wMDUwNzMsIDAuMDA1MDczLCAwLjAwNTA4OCwgMC4wMDUwODksIDAuMDA1MDkxLCAwLjAwNTA5MywgMC4wMDUxMDIiLCBcCi0gICAgICAgICAgIjAuMDA1MzEyLCAwLjAwNTMxOCwgMC4wMDUzMzEsIDAuMDA1MzE0LCAwLjAwNTMxNiwgMC4wMDUzMTgsIDAuMDA1MzM5IiwgXAotICAgICAgICAgICIwLjAwNTY2OSwgMC4wMDU2OTgsIDAuMDA1NzEsIDAuMDA1Njg5LCAwLjAwNTcxNCwgMC4wMDU3MTcsIDAuMDA1NzE3IiwgXAotICAgICAgICAgICIwLjAwNjAwNSwgMC4wMDYwMTYsIDAuMDA2MDIsIDAuMDA2MDIzLCAwLjAwNjAyNSwgMC4wMDYwMjYsIDAuMDA2MDMyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzNTUyLCAwLjAwMzU2MywgMC4wMDM1NzksIDAuMDAzNTgzLCAwLjAwMzU4NSwgMC4wMDM1ODYsIDAuMDAzNTg3IiwgXAotICAgICAgICAgICIwLjAwMzY1MywgMC4wMDM2NjQsIDAuMDAzNjg0LCAwLjAwMzY4OCwgMC4wMDM2OSwgMC4wMDM2OTMsIDAuMDAzNjkzIiwgXAotICAgICAgICAgICIwLjAwMzg0NiwgMC4wMDM4NjcsIDAuMDAzODc2LCAwLjAwMzg5MywgMC4wMDM4ODQsIDAuMDAzODk5LCAwLjAwMzkiLCBcCi0gICAgICAgICAgIjAuMDA0MTM0LCAwLjAwNDE0NSwgMC4wMDQxNjYsIDAuMDA0MTcyLCAwLjAwNDE3NSwgMC4wMDQxNzgsIDAuMDA0MTc5IiwgXAotICAgICAgICAgICIwLjAwNDMxMywgMC4wMDQzMjQsIDAuMDA0MzQxLCAwLjAwNDM0NywgMC4wMDQzNTQsIDAuMDA0MzU3LCAwLjAwNDM1OCIsIFwKLSAgICAgICAgICAiMC4wMDQ3LCAwLjAwNDcxOCwgMC4wMDQ3MzYsIDAuMDA0NzM3LCAwLjAwNDc0NiwgMC4wMDQ3NDksIDAuMDA0NzUiLCBcCi0gICAgICAgICAgIjAuMDA1MDY3LCAwLjAwNTA3NiwgMC4wMDUwOTYsIDAuMDA1MTAyLCAwLjAwNTEwNCwgMC4wMDUxMDgsIDAuMDA1MDk1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IENMS01YMlg4ICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChDTEtNWDJYOCkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAxLjAxNzQ4OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA4MDE3OTQ7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwODAwMDAyOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDgwMTc5NDsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAzOTcsIDAuMDAwNDAxLCAwLjAwMDQwNCwgMC4wMDA0MDUsIDAuMDAwNDA2LCAwLjAwMDQwNywgMC4wMDA0MDciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA0NDIsIDAuMDAwNDI4LCAwLjAwMDQyNiwgMC4wMDA0MjUsIDAuMDAwNDI1LCAwLjAwMDQyNCwgMC4wMDA0MjQiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDc0NzM4MjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA3NDU0NDc7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNzQ3MzgyOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDQwNiwgMC4wMDA0MSwgMC4wMDA0MTEsIDAuMDAwNDEyLCAwLjAwMDQxMiwgMC4wMDA0MTIsIDAuMDAwNDEzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNDQyLCAwLjAwMDQyOCwgMC4wMDA0MjYsIDAuMDAwNDI1LCAwLjAwMDQyNSwgMC4wMDA0MjMsIDAuMDAwNDIzIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNTMzOTM7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNTMzOTE7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNTMzOTM7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzA0LCAwLjAwMDMxNSwgMC4wMDA0MzEsIDAuMDAwNTA5LCAwLjAwMDYzNywgMC4wMDA4NjUsIDAuMDAxMDY1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyNjE5LCAwLjAwMjY0MiwgMC4wMDI3MDksIDAuMDAyODE1LCAwLjAwMjkzOCwgMC4wMDMxNjEsIDAuMDAzMzUyIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDIuNzc2Nzg7Ci0gICAgZnVuY3Rpb24gOiAiKChTMCBCKSArICghUzAgQSkpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzAwNjYsIDAuMDk5ODYyLCAwLjExODI1LCAwLjEzOTM4MiwgMC4xNTk3MDgsIDAuMTc5Njc2LCAwLjE5OTUzOCIsIFwKLSAgICAgICAgICAiMC4wNzY0MDcsIDAuMTA2MjEsIDAuMTI0NTc3LCAwLjE0NTcxOSwgMC4xNjYwMjUsIDAuMTg2MDQ4LCAwLjIwNTkwNSIsIFwKLSAgICAgICAgICAiMC4wODQ0ODgsIDAuMTE0Mzg1LCAwLjEzMjY3OCwgMC4xNTM4NDcsIDAuMTc0MTg4LCAwLjE5NDE1OCwgMC4yMTQwMTUiLCBcCi0gICAgICAgICAgIjAuMDkyMzksIDAuMTIyMTMyLCAwLjE0MDQ4NCwgMC4xNjE1OCwgMC4xODE4NjMsIDAuMjAxODY0LCAwLjIyMTcxNiIsIFwKLSAgICAgICAgICAiMC4wOTk5MTksIDAuMTI5NjMyLCAwLjE0ODAzNSwgMC4xNjkxMzIsIDAuMTg5NDMsIDAuMjA5Mzg2LCAwLjIyOTI0NCIsIFwKLSAgICAgICAgICAiMC4xMTAzNTEsIDAuMTQwNjg0LCAwLjE1OTEwOSwgMC4xODAyOTcsIDAuMjAwNTk3LCAwLjIyMDYzNSwgMC4yNDA0ODgiLCBcCi0gICAgICAgICAgIjAuMTE4NDE5LCAwLjE0OTMzNSwgMC4xNjgwNTEsIDAuMTg5MTgxLCAwLjIwOTUxOCwgMC4yMjk1MjIsIDAuMjQ5NTE4Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzMTcyNiwgMC4wNzMxODIsIDAuMTA0MjcsIDAuMTQzNDAzLCAwLjE4MzA5MywgMC4yMjMyMTksIDAuMjYzNjQ1IiwgXAotICAgICAgICAgICIwLjAzMTcxMSwgMC4wNzMxMSwgMC4xMDQyMjIsIDAuMTQzMzE5LCAwLjE4MzAxNCwgMC4yMjMyMDQsIDAuMjYzNjI5IiwgXAotICAgICAgICAgICIwLjAzMTYyOCwgMC4wNzMwNjYsIDAuMTA0MTcxLCAwLjE0MzM0MiwgMC4xODMwNDgsIDAuMjIzMTc4LCAwLjI2MzYyMiIsIFwKLSAgICAgICAgICAiMC4wMzE5MTMsIDAuMDczMzU2LCAwLjEwNDQwMiwgMC4xNDM0OTgsIDAuMTgzMTQ0LCAwLjIyMzI2NSwgMC4yNjM2NzkiLCBcCi0gICAgICAgICAgIjAuMDMyNjk2LCAwLjA3MzgwNiwgMC4xMDQ2ODUsIDAuMTQzNzk4LCAwLjE4MzI3MSwgMC4yMjM0MjYsIDAuMjYzODM4IiwgXAotICAgICAgICAgICIwLjAzNDAzOSwgMC4wNzUyODMsIDAuMTA1ODk4LCAwLjE0NDYwOSwgMC4xODQwMDcsIDAuMjIzOTQzLCAwLjI2NDIyMSIsIFwKLSAgICAgICAgICAiMC4wMzU0MzcsIDAuMDc2NjU2LCAwLjEwNjg0OCwgMC4xNDU0NzgsIDAuMTg0NjA5LCAwLjIyNDUxMywgMC4yNjQ3MDgiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc4MjAzLCAwLjEwODY3MSwgMC4xMjc3LCAwLjE0OTUyNSwgMC4xNzA0NzMsIDAuMTkxMDQ4LCAwLjIxMTQ5OSIsIFwKLSAgICAgICAgICAiMC4wODQyNjYsIDAuMTE0NzQ3LCAwLjEzMzc5NiwgMC4xNTU2NTcsIDAuMTc2NjIzLCAwLjE5NzI0MiwgMC4yMTc2MTMiLCBcCi0gICAgICAgICAgIjAuMDkxNTE1LCAwLjEyMjEzLCAwLjE0MTA2NSwgMC4xNjI5MTUsIDAuMTgzODc0LCAwLjIwNDQ2NywgMC4yMjQ4MzkiLCBcCi0gICAgICAgICAgIjAuMDk4NzE1LCAwLjEyOTE3MSwgMC4xNDgxNzQsIDAuMTcwMDI1LCAwLjE5MDk2MSwgMC4yMTE1NDgsIDAuMjMxOTEyIiwgXAotICAgICAgICAgICIwLjEwNTU5NSwgMC4xMzYwNzYsIDAuMTU1MDIxLCAwLjE3Njg0MSwgMC4xOTc4MzMsIDAuMjE4MzgxLCAwLjIzODc3NSIsIFwKLSAgICAgICAgICAiMC4xMTUzMjUsIDAuMTQ2MTQ4LCAwLjE2NTE3MywgMC4xODcxMTcsIDAuMjA4MDksIDAuMjI4NjczLCAwLjI0OTA3OCIsIFwKLSAgICAgICAgICAiMC4xMjI3MDYsIDAuMTUzODkxLCAwLjE3MzE4NCwgMC4xOTUwOTQsIDAuMjE2MSwgMC4yMzY2NDYsIDAuMjU3MDkxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzMzE2MiwgMC4wNzU0MTEsIDAuMTA2ODYzLCAwLjE0NjM2OSwgMC4xODYzNDMsIDAuMjI2ODE1LCAwLjI2NzUzIiwgXAotICAgICAgICAgICIwLjAzMzI1LCAwLjA3NTI2NCwgMC4xMDY3OTUsIDAuMTQ2Mjk0LCAwLjE4NjMxMSwgMC4yMjY2OTYsIDAuMjY3NDg0IiwgXAotICAgICAgICAgICIwLjAzMzE5NywgMC4wNzUyMDksIDAuMTA2NTUsIDAuMTQ2MTYsIDAuMTg2MjU0LCAwLjIyNjY3LCAwLjI2NzM1MiIsIFwKLSAgICAgICAgICAiMC4wMzMyODksIDAuMDc1MjUyLCAwLjEwNjczNCwgMC4xNDYzMjYsIDAuMTg2MzgzLCAwLjIyNjc2MywgMC4yNjc1NDciLCBcCi0gICAgICAgICAgIjAuMDMzODU1LCAwLjA3NTYyNiwgMC4xMDcwNDUsIDAuMTQ2NTMxLCAwLjE4NjU2LCAwLjIyNjg4NiwgMC4yNjc2NjEiLCBcCi0gICAgICAgICAgIjAuMDM1MzExLCAwLjA3NjgyNiwgMC4xMDc5ODIsIDAuMTQ3MjM3LCAwLjE4Njk4MSwgMC4yMjczNDUsIDAuMjY3OTIzIiwgXAotICAgICAgICAgICIwLjAzNjQyOSwgMC4wNzgzNDUsIDAuMTA5MjM2LCAwLjE0ODMwNiwgMC4xODc5MzQsIDAuMjI4MDIzLCAwLjI2ODQ2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3MDA2NCwgMC4wOTk4MTMsIDAuMTE4MTY1LCAwLjEzOTI2MSwgMC4xNTk2MzMsIDAuMTc5NTM3LCAwLjE5OTM5OSIsIFwKLSAgICAgICAgICAiMC4wNzY1MzMsIDAuMTA2MzkzLCAwLjEyNDY4OSwgMC4xNDU3NTYsIDAuMTY2MTIzLCAwLjE4NjA1NSwgMC4yMDU5MjUiLCBcCi0gICAgICAgICAgIjAuMDg0NjgzLCAwLjExNDU0NCwgMC4xMzI4MzgsIDAuMTUzOTk1LCAwLjE3NDMyOCwgMC4xOTQyOTYsIDAuMjE0MTUxIiwgXAotICAgICAgICAgICIwLjA5MjYwMSwgMC4xMjIzMzEsIDAuMTQwNjc0LCAwLjE2MTc2MiwgMC4xODIwODIsIDAuMjAyMDQyLCAwLjIyMTg5NCIsIFwKLSAgICAgICAgICAiMC4xMDAwODYsIDAuMTI5OTA0LCAwLjE0ODI5NywgMC4xNjkzNzksIDAuMTg5Njc5LCAwLjIwOTYyNywgMC4yMjk0ODciLCBcCi0gICAgICAgICAgIjAuMTEwNzY1LCAwLjE0MDk1NywgMC4xNTk0NDEsIDAuMTgwNjA1LCAwLjIwMDkxOCwgMC4yMjA5MTIsIDAuMjQwNzQ0IiwgXAotICAgICAgICAgICIwLjExODk0NCwgMC4xNDk2MTEsIDAuMTY4MzU5LCAwLjE4OTU4OCwgMC4yMDk5MDYsIDAuMjI5OTkzLCAwLjI0OTkxNCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzE3ODUsIDAuMDczMjgyLCAwLjEwNDM3NiwgMC4xNDM0NjQsIDAuMTgzMDQyLCAwLjIyMzI5NSwgMC4yNjM3MTIiLCBcCi0gICAgICAgICAgIjAuMDMxODIyLCAwLjA3MzIxNCwgMC4xMDQzMjgsIDAuMTQzNDI4LCAwLjE4MzEwMywgMC4yMjMyNDQsIDAuMjYzNzA2IiwgXAotICAgICAgICAgICIwLjAzMTY4OSwgMC4wNzMxMTYsIDAuMTA0MjMsIDAuMTQzMzk1LCAwLjE4MzA5NywgMC4yMjMyMjUsIDAuMjYzNjY2IiwgXAotICAgICAgICAgICIwLjAzMTkzNiwgMC4wNzMzOSwgMC4xMDQ0MzcsIDAuMTQzNTM1LCAwLjE4MzIwMywgMC4yMjMzMDgsIDAuMjYzNzE3IiwgXAotICAgICAgICAgICIwLjAzMjY4NiwgMC4wNzM4NDIsIDAuMTA0NzU4LCAwLjE0MzgzNCwgMC4xODMzNzIsIDAuMjIzNDcyLCAwLjI2Mzg3NCIsIFwKLSAgICAgICAgICAiMC4wMzQwMDYsIDAuMDc1MzE0LCAwLjEwNTkzNywgMC4xNDQ3NDcsIDAuMTg0MDY2LCAwLjIyMzk0MiwgMC4yNjQyNzIiLCBcCi0gICAgICAgICAgIjAuMDM1NjEsIDAuMDc2OTg5LCAwLjEwNzEyMiwgMC4xNDU3NzksIDAuMTg0OTY4LCAwLjIyNDQxOCwgMC4yNjQ2NTYiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc5MDgyLCAwLjEwOTY0MSwgMC4xMjg2MDUsIDAuMTUwNDc2LCAwLjE3MTQzNCwgMC4xOTIwMDksIDAuMjEyMzc5IiwgXAotICAgICAgICAgICIwLjA4NTA4NSwgMC4xMTU3MDksIDAuMTM0NjU3LCAwLjE1NjUyOSwgMC4xNzc0ODgsIDAuMTk4MDY1LCAwLjIxODQzMyIsIFwKLSAgICAgICAgICAiMC4wOTIyNTUsIDAuMTIyNzczLCAwLjE0MTgyOSwgMC4xNjM3MDQsIDAuMTg0NjY3LCAwLjIwNTIxMywgMC4yMjU2MjUiLCBcCi0gICAgICAgICAgIjAuMDk5NTQ5LCAwLjEzMDAzOCwgMC4xNDkwMiwgMC4xNzA4ODksIDAuMTkxODM3LCAwLjIxMjQwNSwgMC4yMzI3ODkiLCBcCi0gICAgICAgICAgIjAuMTA2MiwgMC4xMzY2MTEsIDAuMTU1NzAzLCAwLjE3NzU4OSwgMC4xOTg1NDQsIDAuMjE5MTIzLCAwLjIzOTQ4NiIsIFwKLSAgICAgICAgICAiMC4xMTU5NjYsIDAuMTQ2ODA0LCAwLjE2NTgwNywgMC4xODc3MjgsIDAuMjA4Njg5LCAwLjIyOTMxOCwgMC4yNDk3MDIiLCBcCi0gICAgICAgICAgIjAuMTIzMzYxLCAwLjE1NDU4MSwgMC4xNzM4NTYsIDAuMTk1NzQ3LCAwLjIxNjc0MywgMC4yMzczMzMsIDAuMjU3NzUzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzMzMzOSwgMC4wNzU0MjgsIDAuMTA2ODI5LCAwLjE0NjM5LCAwLjE4NjQ0OSwgMC4yMjY4MTUsIDAuMjY3NjM0IiwgXAotICAgICAgICAgICIwLjAzMzUwNSwgMC4wNzU0MTgsIDAuMTA2ODI3LCAwLjE0NjM4LCAwLjE4NjQ0NiwgMC4yMjY4MTEsIDAuMjY3NjMxIiwgXAotICAgICAgICAgICIwLjAzMzM2NSwgMC4wNzUyNjgsIDAuMTA2ODI3LCAwLjE0NjMzNSwgMC4xODY0MzIsIDAuMjI2ODQ1LCAwLjI2NzU3NSIsIFwKLSAgICAgICAgICAiMC4wMzMzNTgsIDAuMDc1MzIxLCAwLjEwNjgyOCwgMC4xNDY0MSwgMC4xODY0NTUsIDAuMjI2ODc2LCAwLjI2NzYwMSIsIFwKLSAgICAgICAgICAiMC4wMzM5OTEsIDAuMDc1OTYxLCAwLjEwNzIxNCwgMC4xNDY2MTYsIDAuMTg2NjczLCAwLjIyNjk5MSwgMC4yNjc3MyIsIFwKLSAgICAgICAgICAiMC4wMzU0OTUsIDAuMDc3MTkzLCAwLjEwODIzMywgMC4xNDczNTksIDAuMTg3MjE2LCAwLjIyNzQ2OSwgMC4yNjgwOTYiLCBcCi0gICAgICAgICAgIjAuMDM2ODk4LCAwLjA3ODQ2LCAwLjEwOTM1NywgMC4xNDgzOTcsIDAuMTg4MDA4LCAwLjIyODE2LCAwLjI2ODciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUzAiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2NTUzMywgMC4wOTUzNjksIDAuMTEzNzM3LCAwLjEzNDg4NywgMC4xNTUyMTgsIDAuMTc1MjA5LCAwLjE5NTAzOSIsIFwKLSAgICAgICAgICAiMC4wNzMxMjgsIDAuMTAyOTU4LCAwLjEyMTMyOCwgMC4xNDI0NjcsIDAuMTYyODE2LCAwLjE4MjgwMSwgMC4yMDI2MzYiLCBcCi0gICAgICAgICAgIjAuMDgyODk3LCAwLjExMjcxNSwgMC4xMzEwNTYsIDAuMTUyMjAyLCAwLjE3MjU1MSwgMC4xOTI1MTcsIDAuMjEyMzc2IiwgXAotICAgICAgICAgICIwLjA5MjgyMywgMC4xMjI2MDEsIDAuMTQwOTI1LCAwLjE2MjAzLCAwLjE4MjM1MiwgMC4yMDIzMTUsIDAuMjIyMTcxIiwgXAotICAgICAgICAgICIwLjEwMjMyOCwgMC4xMzE5NDgsIDAuMTUwNTIsIDAuMTcxNjE2LCAwLjE5MTkzOCwgMC4yMTE4OTIsIDAuMjMxNzUzIiwgXAotICAgICAgICAgICIwLjExNTI2MSwgMC4xNDU4MTksIDAuMTY0MjQzLCAwLjE4NTUwMSwgMC4yMDU4MDYsIDAuMjI1ODk5LCAwLjI0NTU4MSIsIFwKLSAgICAgICAgICAiMC4xMjQ4MTgsIDAuMTU2MzI3LCAwLjE3NTAzOSwgMC4xOTYxMDIsIDAuMjE2NTEsIDAuMjM2NTc0LCAwLjI1NjM4NiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzE3ODQsIDAuMDczMDM3LCAwLjEwNDIyOSwgMC4xNDMzNDMsIDAuMTgyOTE2LCAwLjIyMzE5NiwgMC4yNjM0MTIiLCBcCi0gICAgICAgICAgIjAuMDMxNzQ0LCAwLjA3MzExMiwgMC4xMDQyMjgsIDAuMTQzMzg3LCAwLjE4MzA3NywgMC4yMjMxODQsIDAuMjYzNTA5IiwgXAotICAgICAgICAgICIwLjAzMTcxOCwgMC4wNzMxMywgMC4xMDQyMSwgMC4xNDMzODgsIDAuMTgzMDgyLCAwLjIyMzIyNCwgMC4yNjM2NTUiLCBcCi0gICAgICAgICAgIjAuMDMxODY3LCAwLjA3MzI2OCwgMC4xMDQzMywgMC4xNDMzOTMsIDAuMTgzMTQ1LCAwLjIyMzI2NCwgMC4yNjM2ODQiLCBcCi0gICAgICAgICAgIjAuMDMzMTQ3LCAwLjA3NDE2OSwgMC4xMDQ4MzIsIDAuMTQzODIsIDAuMTgzNDMsIDAuMjIzNDcyLCAwLjI2Mzg1MSIsIFwKLSAgICAgICAgICAiMC4wMzYwNzEsIDAuMDc1OTU5LCAwLjEwNjMzOCwgMC4xNDQ5OCwgMC4xODQxNTgsIDAuMjI0MTA2LCAwLjI2NDQzNiIsIFwKLSAgICAgICAgICAiMC4wMzg1LCAwLjA3ODE3MiwgMC4xMDgxODcsIDAuMTQ2Mjg3LCAwLjE4NTM1NSwgMC4yMjUwMTksIDAuMjY1MDkxIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3MzYzMywgMC4xMDQyODIsIDAuMTIzMjIyLCAwLjE0NTA4NCwgMC4xNjYwNDYsIDAuMTg2NjQ3LCAwLjIwNzAxIiwgXAotICAgICAgICAgICIwLjA4MTEyLCAwLjExMTczMywgMC4xMzA2NjYsIDAuMTUyNTY0LCAwLjE3MzU0OCwgMC4xOTQwOTYsIDAuMjE0NTA1IiwgXAotICAgICAgICAgICIwLjA5MDc5MiwgMC4xMjE0MDIsIDAuMTQwMzM4LCAwLjE2MjE5NCwgMC4xODMxNTMsIDAuMjAzNzQ5LCAwLjIyNDE0NiIsIFwKLSAgICAgICAgICAiMC4xMDA2NDQsIDAuMTMxMTU5LCAwLjE1MDEwNCwgMC4xNzE5MzMsIDAuMTkyOTE5LCAwLjIxMzQ2NiwgMC4yMzM4NzkiLCBcCi0gICAgICAgICAgIjAuMTEwMDc5LCAwLjE0MDU3NiwgMC4xNTk1ODgsIDAuMTgxNCwgMC4yMDIzODksIDAuMjIyOTc5LCAwLjI0MzMyNiIsIFwKLSAgICAgICAgICAiMC4xMjM2NzQsIDAuMTU0NDc3LCAwLjE3MzQzOCwgMC4xOTUzNzksIDAuMjE2Mzg2LCAwLjIzNjgyOCwgMC4yNTcyNDEiLCBcCi0gICAgICAgICAgIjAuMTMzNjcxLCAwLjE2NTE0NywgMC4xODQxNzQsIDAuMjA2MDkxLCAwLjIyNzEwMiwgMC4yNDc2NiwgMC4yNjgwNDMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDMzMjY1LCAwLjA3NTIyNywgMC4xMDY1OTYsIDAuMTQ2MTc0LCAwLjE4NjEzNSwgMC4yMjY2ODgsIDAuMjY3NDYiLCBcCi0gICAgICAgICAgIjAuMDMzMjA5LCAwLjA3NTE1OSwgMC4xMDY2MzksIDAuMTQ2MTcyLCAwLjE4NjI4NCwgMC4yMjY3MzgsIDAuMjY3NDkzIiwgXAotICAgICAgICAgICIwLjAzMzIzOSwgMC4wNzUyNCwgMC4xMDY2MzYsIDAuMTQ2MTc3LCAwLjE4NjI0NywgMC4yMjY2MTEsIDAuMjY3NDg1IiwgXAotICAgICAgICAgICIwLjAzMzI1OSwgMC4wNzUxOTEsIDAuMTA2Njk2LCAwLjE0NjI3NSwgMC4xODYzMzYsIDAuMjI2NzY5LCAwLjI2NzQ5NSIsIFwKLSAgICAgICAgICAiMC4wMzQwMDYsIDAuMDc1NjcyLCAwLjEwNzA2NSwgMC4xNDY1NDUsIDAuMTg2NDA1LCAwLjIyNjg3NiwgMC4yNjc2MTUiLCBcCi0gICAgICAgICAgIjAuMDM2NDU0LCAwLjA3NzE0MiwgMC4xMDgxMDcsIDAuMTQ3MzIsIDAuMTg3MDgxLCAwLjIyNzM3NCwgMC4yNjgwNSIsIFwKLSAgICAgICAgICAiMC4wMzg1MjYsIDAuMDc4OTIzLCAwLjEwOTUyMywgMC4xNDg0NjgsIDAuMTg4MDM3LCAwLjIyODEzMSwgMC4yNjg2NDMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUzAiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3ODM5NCwgMC4xMDgyMzYsIDAuMTI2NjA2LCAwLjE0Nzc0NCwgMC4xNjgwNTIsIDAuMTg4MDc2LCAwLjIwNzkyNyIsIFwKLSAgICAgICAgICAiMC4wODU5MTYsIDAuMTE1NzI3LCAwLjEzNDEyOCwgMC4xNTUyNTcsIDAuMTc1NTY0LCAwLjE5NTUyOSwgMC4yMTUzOTQiLCBcCi0gICAgICAgICAgIjAuMDkyNDk1LCAwLjEyMjM2OSwgMC4xNDA3NDQsIDAuMTYxODcsIDAuMTgyMiwgMC4yMDIyMDMsIDAuMjIyMDMiLCBcCi0gICAgICAgICAgIjAuMDk3MjA1LCAwLjEyNzA4OSwgMC4xNDUzOTYsIDAuMTY2NDksIDAuMTg2ODI1LCAwLjIwNjc4OCwgMC4yMjY2NTMiLCBcCi0gICAgICAgICAgIjAuMTAwNzM5LCAwLjEzMDUxMSwgMC4xNDg5MTcsIDAuMTcwMDY5LCAwLjE5MDM4OCwgMC4yMTAzNSwgMC4yMzAyMTciLCBcCi0gICAgICAgICAgIjAuMTA1NTc2LCAwLjEzNTQxMywgMC4xNTM2OTQsIDAuMTc0ODgyLCAwLjE5NTI2NCwgMC4yMTUyOTUsIDAuMjM1MTUzIiwgXAotICAgICAgICAgICIwLjEwOTI0NSwgMC4xMzkwNjUsIDAuMTU3NDQ2LCAwLjE3ODYzNSwgMC4xOTg5NTEsIDAuMjE5MDQ1LCAwLjIzODg5MyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzE2OTYsIDAuMDczMDQ3LCAwLjEwNDE3LCAwLjE0MzI5NiwgMC4xODI5OTQsIDAuMjIzMDYxLCAwLjI2MzYxNiIsIFwKLSAgICAgICAgICAiMC4wMzE3MjQsIDAuMDczMDk3LCAwLjEwNDIyOSwgMC4xNDMyNTIsIDAuMTgzMDc0LCAwLjIyMzIwNywgMC4yNjM2MzUiLCBcCi0gICAgICAgICAgIjAuMDMxNzE5LCAwLjA3MzA5NCwgMC4xMDQxOTgsIDAuMTQzMjczLCAwLjE4MjkyOSwgMC4yMjMwNDQsIDAuMjYzNjE5IiwgXAotICAgICAgICAgICIwLjAzMTYzNywgMC4wNzMwMzMsIDAuMTA0MTU5LCAwLjE0MzMzNywgMC4xODMwNDEsIDAuMjIzMTc1LCAwLjI2MzYwNCIsIFwKLSAgICAgICAgICAiMC4wMzE0ODgsIDAuMDczMDM5LCAwLjEwNDIwOCwgMC4xNDMzMTUsIDAuMTgzMTE1LCAwLjIyMzI1MSwgMC4yNjM2NjkiLCBcCi0gICAgICAgICAgIjAuMDMxMzg2LCAwLjA3Mjk1NywgMC4xMDQxNDcsIDAuMTQzNDA2LCAwLjE4MzE0NSwgMC4yMjMxNjEsIDAuMjYzNzIxIiwgXAotICAgICAgICAgICIwLjAzMTQ2LCAwLjA3MzAyOSwgMC4xMDQwNzEsIDAuMTQzMzc1LCAwLjE4MzEyMywgMC4yMjMyNTksIDAuMjYzNzMyIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4NTEyMSwgMC4xMTU2NjQsIDAuMTM0NjksIDAuMTU2NTQ0LCAwLjE3NzU2NSwgMC4xOTgxNTgsIDAuMjE4NTI4IiwgXAotICAgICAgICAgICIwLjA5Mjc4NCwgMC4xMjMzMDcsIDAuMTQyMzc1LCAwLjE2NDIzMywgMC4xODUyMDIsIDAuMjA1NzgsIDAuMjI2MTc5IiwgXAotICAgICAgICAgICIwLjA5OTM5MSwgMC4xMjk5ODMsIDAuMTQ4OTgzLCAwLjE3MDgyNSwgMC4xOTE4NTMsIDAuMjEyMzc2LCAwLjIzMjc3OSIsIFwKLSAgICAgICAgICAiMC4xMDQzMSwgMC4xMzQ4MiwgMC4xNTM4NTksIDAuMTc1NzAzLCAwLjE5NjcwNSwgMC4yMTcyNTYsIDAuMjM3NjYxIiwgXAotICAgICAgICAgICIwLjEwODA3NywgMC4xMzg1NTgsIDAuMTU3NTc1LCAwLjE3OTQzMSwgMC4yMDAzOTEsIDAuMjIwOTgxLCAwLjI0MTM0NyIsIFwKLSAgICAgICAgICAiMC4xMTMzNTQsIDAuMTQzODczLCAwLjE2Mjg5NywgMC4xODQ3NTMsIDAuMjA1ODg0LCAwLjIyNjQ5MywgMC4yNDY3OTciLCBcCi0gICAgICAgICAgIjAuMTE3MzI3LCAwLjE0NzgxNywgMC4xNjY4OTQsIDAuMTg4NzQsIDAuMjA5ODA2LCAwLjIzMDM1OSwgMC4yNTA4MTUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDMzMzg4LCAwLjA3NTM2MSwgMC4xMDY5MzIsIDAuMTQ2NDEzLCAwLjE4NjQyLCAwLjIyNjc4MSwgMC4yNjc1NzciLCBcCi0gICAgICAgICAgIjAuMDMzMzcyLCAwLjA3NTQwOSwgMC4xMDY5MzMsIDAuMTQ2NDI1LCAwLjE4NjQ1LCAwLjIyNjgxOCwgMC4yNjc2MDMiLCBcCi0gICAgICAgICAgIjAuMDMzMzY1LCAwLjA3NTMzNiwgMC4xMDY4NjEsIDAuMTQ2MzY2LCAwLjE4NjM3NiwgMC4yMjY4MiwgMC4yNjc1ODYiLCBcCi0gICAgICAgICAgIjAuMDMzMjUyLCAwLjA3NTE4MywgMC4xMDY3NDcsIDAuMTQ2MzIxLCAwLjE4NjM5LCAwLjIyNjgwOCwgMC4yNjc1NDYiLCBcCi0gICAgICAgICAgIjAuMDMzMjYzLCAwLjA3NTM0OCwgMC4xMDY4NDIsIDAuMTQ2NDM3LCAwLjE4NjQ3NSwgMC4yMjY4NDcsIDAuMjY3NjMxIiwgXAotICAgICAgICAgICIwLjAzMzE5NCwgMC4wNzUyMjYsIDAuMTA2ODA0LCAwLjE0NjM4NCwgMC4xODY0NTIsIDAuMjI2ODY2LCAwLjI2NzY0NSIsIFwKLSAgICAgICAgICAiMC4wMzMxNzMsIDAuMDc1MjIzLCAwLjEwNjY5OCwgMC4xNDYyOTgsIDAuMTg2NDU2LCAwLjIyNjg5NywgMC4yNjc1OSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMjEzMiwgMC4wMTEzNTMsIDAuMDExMzMsIDAuMDExMzM3LCAwLjAxMTM0NCwgMC4wMTEzNTEsIDAuMDExMzU3IiwgXAotICAgICAgICAgICIwLjAxMjA5MywgMC4wMTEyOTIsIDAuMDExMjg1LCAwLjAxMTI5LCAwLjAxMTMsIDAuMDExMzEsIDAuMDExMzE3IiwgXAotICAgICAgICAgICIwLjAxMjA2LCAwLjAxMTI3MywgMC4wMTEyMzksIDAuMDExMjYsIDAuMDExMjczLCAwLjAxMTI4NCwgMC4wMTEyOTMiLCBcCi0gICAgICAgICAgIjAuMDEyMzIxLCAwLjAxMTQzOCwgMC4wMTEzNjEsIDAuMDExMzQxLCAwLjAxMTM0NywgMC4wMTEzNDIsIDAuMDExMzQ1IiwgXAotICAgICAgICAgICIwLjAxMjgwMywgMC4wMTE2MjYsIDAuMDExNSwgMC4wMTE0NDcsIDAuMDExNDMxLCAwLjAxMTQyLCAwLjAxMTQxMiIsIFwKLSAgICAgICAgICAiMC4wMTI5MzksIDAuMDExODc4LCAwLjAxMTcxMiwgMC4wMTE2MjgsIDAuMDExNTg3LCAwLjAxMTU2NCwgMC4wMTE1NDkiLCBcCi0gICAgICAgICAgIjAuMDEzMjczLCAwLjAxMTg3LCAwLjAxMTcyLCAwLjAxMTY0NiwgMC4wMTE2MTcsIDAuMDExNjA1LCAwLjAxMTYwMSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMzc2NywgMC4wMTI4NzYsIDAuMDEyODQyLCAwLjAxMjg0NSwgMC4wMTI4NTYsIDAuMDEyODY3LCAwLjAxMjg3NyIsIFwKLSAgICAgICAgICAiMC4wMTM3MTgsIDAuMDEyODAxLCAwLjAxMjc3MywgMC4wMTI3ODcsIDAuMDEyODA4LCAwLjAxMjgyMywgMC4wMTI4MzYiLCBcCi0gICAgICAgICAgIjAuMDEzNjM3LCAwLjAxMjc0NywgMC4wMTI3MTYsIDAuMDEyNzM3LCAwLjAxMjc2MiwgMC4wMTI3ODQsIDAuMDEyODAyIiwgXAotICAgICAgICAgICIwLjAxMzkyNiwgMC4wMTI5MDgsIDAuMDEyODMxLCAwLjAxMjgyMSwgMC4wMTI4MjgsIDAuMDEyODM5LCAwLjAxMjg1IiwgXAotICAgICAgICAgICIwLjAxNDI2LCAwLjAxMzA2OCwgMC4wMTI5NSwgMC4wMTI5MDksIDAuMDEyOTAzLCAwLjAxMjkwNiwgMC4wMTI5MTEiLCBcCi0gICAgICAgICAgIjAuMDE0Nzg0LCAwLjAxMzMzNywgMC4wMTMxNiwgMC4wMTMwODcsIDAuMDEzMDUxLCAwLjAxMzA0NSwgMC4wMTMwMzQiLCBcCi0gICAgICAgICAgIjAuMDE1MjYsIDAuMDEzNDc1LCAwLjAxMzMwOCwgMC4wMTMyMTQsIDAuMDEzMTcsIDAuMDEzMTUzLCAwLjAxMzE0MyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMjAxOSwgMC4wMTEwOTMsIDAuMDExMDA5LCAwLjAxMDk3NCwgMC4wMTA5NTYsIDAuMDEwOTQzLCAwLjAxMDkzNiIsIFwKLSAgICAgICAgICAiMC4wMTE4MywgMC4wMTA5OTksIDAuMDEwOTMsIDAuMDEwOTA1LCAwLjAxMDg5OCwgMC4wMTA4ODUsIDAuMDEwODg3IiwgXAotICAgICAgICAgICIwLjAxMTc5MSwgMC4wMTA5NDUsIDAuMDEwODgsIDAuMDEwODczLCAwLjAxMDg3MSwgMC4wMTA4NjYsIDAuMDEwODY2IiwgXAotICAgICAgICAgICIwLjAxMjAwMSwgMC4wMTEwOTEsIDAuMDEwOTksIDAuMDEwOTU0LCAwLjAxMDkzMSwgMC4wMTA5MjcsIDAuMDEwOTE0IiwgXAotICAgICAgICAgICIwLjAxMjUxNSwgMC4wMTEzMDIsIDAuMDExMTUxLCAwLjAxMTA3MiwgMC4wMTEwMzIsIDAuMDExMDE0LCAwLjAxMTAwMSIsIFwKLSAgICAgICAgICAiMC4wMTI3NzQsIDAuMDExNTM0LCAwLjAxMTMzNiwgMC4wMTEyMjgsIDAuMDExMTgxLCAwLjAxMTE1MiwgMC4wMTExMjkiLCBcCi0gICAgICAgICAgIjAuMDEzMjM5LCAwLjAxMTc1LCAwLjAxMTU1OCwgMC4wMTE0MiwgMC4wMTEzNDgsIDAuMDExMjc2LCAwLjAxMTI0OSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxNDEyNiwgMC4wMTMxMTQsIDAuMDEzMDUxLCAwLjAxMzAzMywgMC4wMTMwMzIsIDAuMDEzMDMxLCAwLjAxMzAzMyIsIFwKLSAgICAgICAgICAiMC4wMTQwNjcsIDAuMDEzMTAyLCAwLjAxMzAyNSwgMC4wMTMwMSwgMC4wMTMwMDksIDAuMDEzMDExLCAwLjAxMzAxMyIsIFwKLSAgICAgICAgICAiMC4wMTM5NTksIDAuMDEzMDEzLCAwLjAxMjk1OSwgMC4wMTI5NTksIDAuMDEyOTY0LCAwLjAxMjk3MiwgMC4wMTI5OCIsIFwKLSAgICAgICAgICAiMC4wMTQxMzUsIDAuMDEzMTE3LCAwLjAxMzAyOSwgMC4wMTMwMDYsIDAuMDEzMDA1LCAwLjAxMzAwOCwgMC4wMTMwMTQiLCBcCi0gICAgICAgICAgIjAuMDE0NDU0LCAwLjAxMzIxNiwgMC4wMTMxMDQsIDAuMDEzMDY2LCAwLjAxMzA1NSwgMC4wMTMwNTUsIDAuMDEzMDU3IiwgXAotICAgICAgICAgICIwLjAxNTExOCwgMC4wMTM1MzksIDAuMDEzMzU0LCAwLjAxMzI3MSwgMC4wMTMyMzIsIDAuMDEzMjE4LCAwLjAxMzIwMSIsIFwKLSAgICAgICAgICAiMC4wMTU2MTIsIDAuMDEzODE3LCAwLjAxMzU3MSwgMC4wMTM0NTIsIDAuMDEzMzg5LCAwLjAxMzM1NywgMC4wMTMzNCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlMwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTQ1OTMsIDAuMDEzODA2LCAwLjAxMzc5OSwgMC4wMTM4MDgsIDAuMDEzODE3LCAwLjAxMzgzMiwgMC4wMTM4NDEiLCBcCi0gICAgICAgICAgIjAuMDE0NTkzLCAwLjAxMzgzNCwgMC4wMTM4MTMsIDAuMDEzODI2LCAwLjAxMzg0MywgMC4wMTM4NDcsIDAuMDEzODU2IiwgXAotICAgICAgICAgICIwLjAxNDY0NywgMC4wMTM5LCAwLjAxMzg5NywgMC4wMTM5MDcsIDAuMDEzOTIzLCAwLjAxMzkzNywgMC4wMTM5NCIsIFwKLSAgICAgICAgICAiMC4wMTQ3OTEsIDAuMDE0MDU1LCAwLjAxNDAyNSwgMC4wMTQwMjQsIDAuMDE0MDUsIDAuMDE0MDUzLCAwLjAxNDA2MiIsIFwKLSAgICAgICAgICAiMC4wMTQ4ODMsIDAuMDE0MTI2LCAwLjAxNDExNCwgMC4wMTQxMjUsIDAuMDE0MTQ2LCAwLjAxNDE1OCwgMC4wMTQxNzEiLCBcCi0gICAgICAgICAgIjAuMDE1MTI2LCAwLjAxNDM5NiwgMC4wMTQzODksIDAuMDE0Mzk4LCAwLjAxNDQyLCAwLjAxNDQyOSwgMC4wMTQ0MzciLCBcCi0gICAgICAgICAgIjAuMDE1MzE4LCAwLjAxNDU4OCwgMC4wMTQ1ODEsIDAuMDE0NTg1LCAwLjAxNDYwNSwgMC4wMTQ2MTUsIDAuMDE0NjI0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEzMzE4LCAwLjAxMjM1NywgMC4wMTIzMDUsIDAuMDEyMzAyLCAwLjAxMjMxMiwgMC4wMTIzMiwgMC4wMTIzMjciLCBcCi0gICAgICAgICAgIjAuMDEzMzUxLCAwLjAxMjM4MywgMC4wMTIzMjcsIDAuMDEyMzIsIDAuMDEyMzI1LCAwLjAxMjMzMiwgMC4wMTIzNCIsIFwKLSAgICAgICAgICAiMC4wMTMzNzMsIDAuMDEyNDM5LCAwLjAxMjM4OSwgMC4wMTIzOSwgMC4wMTI0MDMsIDAuMDEyNDA5LCAwLjAxMjQxOCIsIFwKLSAgICAgICAgICAiMC4wMTM0NDgsIDAuMDEyNTQyLCAwLjAxMjQ5OCwgMC4wMTI0OTcsIDAuMDEyNTEsIDAuMDEyNTIsIDAuMDEyNTMiLCBcCi0gICAgICAgICAgIjAuMDEzNTY3LCAwLjAxMjY2MiwgMC4wMTI2MTMsIDAuMDEyNjE4LCAwLjAxMjYzMSwgMC4wMTI2NDQsIDAuMDEyNjU0IiwgXAotICAgICAgICAgICIwLjAxMzgyMSwgMC4wMTI5MjQsIDAuMDEyODg4LCAwLjAxMjg4MSwgMC4wMTI5MDUsIDAuMDEyOTE1LCAwLjAxMjkyMiIsIFwKLSAgICAgICAgICAiMC4wMTQwMjgsIDAuMDEzMTM5LCAwLjAxMzA4MywgMC4wMTMwOTksIDAuMDEzMTAxLCAwLjAxMzExMSwgMC4wMTMxMjkiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBERkZIUVg0ICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKERGRkhRWDQpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMS4yMTM0NzsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBmZiAoTjMwLFFCSU5UKSB7Ci0gICAgbmV4dF9zdGF0ZSA6ICJEIjsKLSAgICBjbG9ja2VkX29uIDogIkNLIjsKLSAgfQotICBwaW4oQ0spICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYzNzIzODsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MzY5MjM7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjM3MjM4OwotICAgIGNsb2NrIDogdHJ1ZTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDM4NjcsIDAuMDAzODU3LCAwLjAwMzkyMiwgMC4wMDQwMzIsIDAuMDA0MTU5LCAwLjAwNDMyMSwgMC4wMDQ2MDkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMTAwNTksIDAuMDEwMDQ5LCAwLjAxMDEyMiwgMC4wMTAyMjksIDAuMDEwMzExLCAwLjAxMDQ0OSwgMC4wMTA2MjQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFEIjsKLSAgICAgIHNkZl9jb25kIDogIkQgPT0gMSdiMCI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wODczODgsIDAuMDk1NjU0LCAwLjEwNTQ4MywgMC4xMTM1MTMsIDAuMTIwNTI4LCAwLjEyOTE5NSwgMC4xMzU5NjkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjA3NDMxNiwgMC4wODI0NywgMC4wOTIwNTcsIDAuMDk5NzExLCAwLjEwNTk5NiwgMC4xMTQyMDIsIDAuMTIwMDY3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihEKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA4NDczNDY7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwODQ1MDc3OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDg0NzM0NjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDMyMTEsIDAuMDAzMTc1LCAwLjAwMzIxNCwgMC4wMDMyNjIsIDAuMDAzMzUsIDAuMDAzNTM2LCAwLjAwMzcxOSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNDQxMiwgMC4wMDQzODcsIDAuMDA0NDA4LCAwLjAwNDQ2NSwgMC4wMDQ1NTMsIDAuMDA0Njg2LCAwLjAwNDg5MyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAwNjI1LCAtMC4wMDEyNSwgMC4wMDUsIDAuMDA1LCAwLjAxMTI1LCAwLjAxNSwgMC4wMTc1IiwgXAotICAgICAgICAgICItMC4wMTEyNSwgLTAuMDA2MjUsIDAsIDAsIDAuMDA2MjUsIDAuMDEsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDE3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIC0wLjAwNjI1LCAwLCAwLjAwMzc1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAtMC4wMDYyNSwgLTAuMDAyNSwgMCIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAxODc1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIC0wLjAwMjUsIDAiLCBcCi0gICAgICAgICAgIi0wLjAzMzc1LCAtMC4wMjg3NSwgLTAuMDIyNSwgLTAuMDE2MjUsIC0wLjAxNjI1LCAtMC4wMTI1LCAtMC4wMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTg3NSwgLTAuMDE1LCAtMC4wMTI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTg3NSwgMC4wMywgMC4wMzYyNSwgMC4wNDI1LCAwLjA0ODc1LCAwLjA1ODc1LCAwLjA2MTI1IiwgXAotICAgICAgICAgICIwLjAxMzc1LCAwLjAyNSwgMC4wMzEyNSwgMC4wMzc1LCAwLjA0Mzc1LCAwLjA1Mzc1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICIwLjAxMzc1LCAwLjAxODc1LCAwLjAyNSwgMC4wMzc1LCAwLjA0Mzc1LCAwLjA0NzUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIjAuMDA3NSwgMC4wMTg3NSwgMC4wMjUsIDAuMDMxMjUsIDAuMDM3NSwgMC4wNDc1LCAwLjA1IiwgXAotICAgICAgICAgICIwLjAwNzUsIDAuMDEyNSwgMC4wMjUsIDAuMDMxMjUsIDAuMDM3NSwgMC4wNDEyNSwgMC4wNSIsIFwKLSAgICAgICAgICAiMC4wMDM3NSwgMC4wMTUsIDAuMDIxMjUsIDAuMDI3NSwgMC4wMzM3NSwgMC4wNDM3NSwgMC4wNDYyNSIsIFwKLSAgICAgICAgICAiMC4wMDc1LCAwLjAxMjUsIDAuMDE4NzUsIDAuMDMxMjUsIDAuMDMxMjUsIDAuMDQxMjUsIDAuMDUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDI1LCAwLjAxMzc1LCAwLjAwNzUsIDAuMDA3NSwgMC4wMDEyNSwgLTAuMDAyNSwgLTAuMDA1IiwgXAotICAgICAgICAgICIwLjAzLCAwLjAyNSwgMC4wMTg3NSwgMC4wMTI1LCAwLjAwNjI1LCAwLjAwMjUsIDAiLCBcCi0gICAgICAgICAgIjAuMDM2MjUsIDAuMDMxMjUsIDAuMDI1LCAwLjAxODc1LCAwLjAxMjUsIDAuMDA4NzUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMDQyNSwgMC4wMzc1LCAwLjAyNSwgMC4wMjUsIDAuMDE4NzUsIDAuMDE1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMDQ4NzUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMjUsIDAuMDI1LCAwLjAyMTI1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMDUyNSwgMC4wNDc1LCAwLjA0MTI1LCAwLjAzNSwgMC4wMjg3NSwgMC4wMjUsIDAuMDIyNSIsIFwKLSAgICAgICAgICAiMC4wNjEyNSwgMC4wNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzNzUsIDAuMDI3NSwgMC4wMjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDYyNSwgLTAuMDA1LCAtMC4wMTEyNSwgLTAuMDIzNzUsIC0wLjAzLCAtMC4wNCwgLTAuMDQyNSIsIFwKLSAgICAgICAgICAiMC4wMTEyNSwgMCwgLTAuMDA2MjUsIC0wLjAxODc1LCAtMC4wMjUsIC0wLjAyODc1LCAtMC4wMzc1IiwgXAotICAgICAgICAgICIwLjAxNzUsIDAuMDA2MjUsIDAsIC0wLjAxMjUsIC0wLjAxODc1LCAtMC4wMjI1LCAtMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4wMjM3NSwgMC4wMTI1LCAwLjAwNjI1LCAtMC4wMDYyNSwgLTAuMDEyNSwgLTAuMDIyNSwgLTAuMDI1IiwgXAotICAgICAgICAgICIwLjAyMzc1LCAwLjAxODc1LCAwLjAwNjI1LCAwLCAtMC4wMDYyNSwgLTAuMDE2MjUsIC0wLjAyNSIsIFwKLSAgICAgICAgICAiMC4wMzM3NSwgMC4wMjI1LCAwLjAxLCAwLjAwMzc1LCAtMC4wMDI1LCAtMC4wMTI1LCAtMC4wMjEyNSIsIFwKLSAgICAgICAgICAiMC4wMzYyNSwgMC4wMjUsIDAuMDE4NzUsIDAuMDA2MjUsIDAsIC0wLjAxLCAtMC4wMTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihRKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDEuMzc4MDc7Ci0gICAgZnVuY3Rpb24gOiAiTjMwIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBub25fdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJpc2luZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3Nzg5MiwgMC4xMzIyMzYsIDAuMTg1OTUyLCAwLjIyNDMyNSwgMC4yODU3MjUsIDAuMzM5NDM4LCAwLjQxNjI4OSIsIFwKLSAgICAgICAgICAiMC4wODYxMjQsIDAuMTQwNDc0LCAwLjE5NDE5MSwgMC4yMzI1NjcsIDAuMjk0MDA0LCAwLjM0NzY3NywgMC40MjQ0MzMiLCBcCi0gICAgICAgICAgIjAuMDk1ODkxLCAwLjE1MDI0NCwgMC4yMDM5NjIsIDAuMjQyMzM3LCAwLjMwMzc2LCAwLjM1NzUyOSwgMC40MzQyMDMiLCBcCi0gICAgICAgICAgIjAuMTAzOCwgMC4xNTgxNTYsIDAuMjExODgsIDAuMjUwMjc3LCAwLjMxMTcxNiwgMC4zNjU0NDksIDAuNDQyMjA5IiwgXAotICAgICAgICAgICIwLjExMDc5MywgMC4xNjUxNDgsIDAuMjE4ODcyLCAwLjI1NzI1MywgMC4zMTg3MTQsIDAuMzcyNDQyLCAwLjQ0OTE2OSIsIFwKLSAgICAgICAgICAiMC4xMTk0MjgsIDAuMTczNzk4LCAwLjIyNzUyNCwgMC4yNjU4OTgsIDAuMzI3MzE5LCAwLjM4MTA5OCwgMC40NTc4NDciLCBcCi0gICAgICAgICAgIjAuMTI2MTc2LCAwLjE4MDU3OSwgMC4yMzQzMDEsIDAuMjcyNzMzLCAwLjMzNDA3MywgMC4zODc4ODEsIDAuNDY0NjUzIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDI0MDg5LCAwLjEzNDU3LCAwLjI0Nzg3LCAwLjMyODgyMywgMC40NTg0NDQsIDAuNTcxNDgsIDAuNzM0MzEyIiwgXAotICAgICAgICAgICIwLjAyNDA2MSwgMC4xMzQ1NjksIDAuMjQ3ODg3LCAwLjMyODYxLCAwLjQ1ODE5MywgMC41NzE0MTMsIDAuNzMzMzU1IiwgXAotICAgICAgICAgICIwLjAyNDA2MSwgMC4xMzQ1NjksIDAuMjQ3ODg3LCAwLjMyODYxMiwgMC40NTg2MTEsIDAuNTcwOTYyLCAwLjczMzM2NCIsIFwKLSAgICAgICAgICAiMC4wMjQwNzQsIDAuMTM0NTY5LCAwLjI0Nzg4MiwgMC4zMjg5ODQsIDAuNDU4NjY1LCAwLjU3MjEyNywgMC43MzQyMDYiLCBcCi0gICAgICAgICAgIjAuMDI0MDk1LCAwLjEzNDU3MSwgMC4yNDc4ODgsIDAuMzI4OTIzLCAwLjQ1ODY2NCwgMC41NzIxMTksIDAuNzM0MzY2IiwgXAotICAgICAgICAgICIwLjAyNDEwNSwgMC4xMzQ1NTMsIDAuMjQ3ODQyLCAwLjMyODg2OSwgMC40NTgxMTIsIDAuNTcyMDQ2LCAwLjczNDEzOCIsIFwKLSAgICAgICAgICAiMC4wMjQxMDksIDAuMTM0NTU0LCAwLjI0NzkzOSwgMC4zMjg0NDMsIDAuNDU4NTMzLCAwLjU3MTA4MywgMC43MzMzMiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4NzM4OCwgMC4xNDE5NjMsIDAuMTk1NzczLCAwLjIzNDIwNSwgMC4yOTU2ODYsIDAuMzQ5NDcyLCAwLjQyNjMyMiIsIFwKLSAgICAgICAgICAiMC4wOTU2NTQsIDAuMTUwMjMzLCAwLjIwNDA0NiwgMC4yNDI1MDEsIDAuMzAzOTY1LCAwLjM1Nzc0NCwgMC40MzQ1ODkiLCBcCi0gICAgICAgICAgIjAuMTA1NDgzLCAwLjE2MDA2MiwgMC4yMTM4NzUsIDAuMjUyMzA0LCAwLjMxMzc4NiwgMC4zNjc1NzQsIDAuNDQ0NDI3IiwgXAotICAgICAgICAgICIwLjExMzUxMywgMC4xNjgwOTksIDAuMjIxOTA2LCAwLjI2MDM2MiwgMC4zMjE4NTQsIDAuMzc1NjAzLCAwLjQ1MjQ0NiIsIFwKLSAgICAgICAgICAiMC4xMjA1MjgsIDAuMTc1MTA3LCAwLjIyODkxOCwgMC4yNjczNzQsIDAuMzI4ODYzLCAwLjM4MjYxNiwgMC40NTk0NiIsIFwKLSAgICAgICAgICAiMC4xMjkxOTUsIDAuMTgzNzgsIDAuMjM3NTkzLCAwLjI3NjAyOCwgMC4zMzc0OTQsIDAuMzkxMjg1LCAwLjQ2ODEzMyIsIFwKLSAgICAgICAgICAiMC4xMzU5NjksIDAuMTkwNTIxLCAwLjI0NDM2OSwgMC4yODI3NywgMC4zNDQyNzYsIDAuMzk4MDYsIDAuNDc0ODg5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDIzNDY3LCAwLjEzMjg1OCwgMC4yNDQ1NCwgMC4zMjQ1MzcsIDAuNDUyNTMxLCAwLjU2NDUwNSwgMC43MjM3MjEiLCBcCi0gICAgICAgICAgIjAuMDIzNDU5LCAwLjEzMjcxOSwgMC4yNDQyNjQsIDAuMzIzOTIsIDAuNDUxOTkyLCAwLjU2NDQ4NiwgMC43MjM2NyIsIFwKLSAgICAgICAgICAiMC4wMjM0NTgsIDAuMTMyODYsIDAuMjQ0NTU3LCAwLjMyNDE1NSwgMC40NTI1MzIsIDAuNTYzODExLCAwLjcyMzc5NSIsIFwKLSAgICAgICAgICAiMC4wMjM0NTYsIDAuMTMyODI5LCAwLjI0NDI2MSwgMC4zMjM5MiwgMC40NTE2NjYsIDAuNTY0NDcxLCAwLjcyMzcyMSIsIFwKLSAgICAgICAgICAiMC4wMjM0NTksIDAuMTMyNzE5LCAwLjI0NDI2MSwgMC4zMjM5MiwgMC40NTE2NjcsIDAuNTY0NDc3LCAwLjcyMzY4NiIsIFwKLSAgICAgICAgICAiMC4wMjM0NjQsIDAuMTMyNzI5LCAwLjI0NDU5OCwgMC4zMjQwMTgsIDAuNDUyNTI0LCAwLjU2Mzc2OCwgMC43MjM3MDciLCBcCi0gICAgICAgICAgIjAuMDIzNDM5LCAwLjEzMjcxNSwgMC4yNDQyNjcsIDAuMzI0MTA0LCAwLjQ1MjQzMywgMC41NjQ0MTYsIDAuNzI0NTEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTMzMDEsIDAuMDEzMzQ5LCAwLjAxMzMxNiwgMC4wMTMzMDEsIDAuMDEzMjkyLCAwLjAxMzI3NiwgMC4wMTMyNjciLCBcCi0gICAgICAgICAgIjAuMDEzMjc1LCAwLjAxMzMzMSwgMC4wMTMyOTksIDAuMDEzMjkzLCAwLjAxMzI2NywgMC4wMTMyNTgsIDAuMDEzMjQ5IiwgXAotICAgICAgICAgICIwLjAxMzM0NywgMC4wMTM0MDcsIDAuMDEzMzc2LCAwLjAxMzM2OCwgMC4wMTMzNDQsIDAuMDEzMzM0LCAwLjAxMzMyNCIsIFwKLSAgICAgICAgICAiMC4wMTM0ODEsIDAuMDEzNTQ3LCAwLjAxMzUxOCwgMC4wMTM1MDIsIDAuMDEzNDg3LCAwLjAxMzQ3NiwgMC4wMTM0NjYiLCBcCi0gICAgICAgICAgIjAuMDEzNTcxLCAwLjAxMzY0MiwgMC4wMTM2MTMsIDAuMDEzNTk2LCAwLjAxMzU4MSwgMC4wMTM1NjksIDAuMDEzNTYiLCBcCi0gICAgICAgICAgIjAuMDEzODEyLCAwLjAxMzg4MSwgMC4wMTM4NTQsIDAuMDEzODM0LCAwLjAxMzgxOCwgMC4wMTM4MDgsIDAuMDEzNzk3IiwgXAotICAgICAgICAgICIwLjAxMzk5OSwgMC4wMTQwMzQsIDAuMDE0MDE1LCAwLjAxMzk5MSwgMC4wMTQwMTYsIDAuMDEzOTYzLCAwLjAxMzk0OCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEzNjg3LCAwLjAxMzkxMSwgMC4wMTM5NDUsIDAuMDEzOTU2LCAwLjAxMzk2NSwgMC4wMTM5NywgMC4wMTM5NzUiLCBcCi0gICAgICAgICAgIjAuMDEzNjcxLCAwLjAxMzksIDAuMDEzOTM2LCAwLjAxMzk0NiwgMC4wMTM5NTcsIDAuMDEzOTYyLCAwLjAxMzk2NyIsIFwKLSAgICAgICAgICAiMC4wMTM3NzYsIDAuMDE0MDA0LCAwLjAxNDAzOSwgMC4wMTQwNSwgMC4wMTQwNiwgMC4wMTQwNjYsIDAuMDE0MDciLCBcCi0gICAgICAgICAgIjAuMDEzOTIsIDAuMDE0MTUsIDAuMDE0MTg1LCAwLjAxNDE5NiwgMC4wMTQyMDUsIDAuMDE0MjEsIDAuMDE0MjE1IiwgXAotICAgICAgICAgICIwLjAxNDAxOCwgMC4wMTQyNDksIDAuMDE0Mjg0LCAwLjAxNDI5NSwgMC4wMTQzMDQsIDAuMDE0MzA5LCAwLjAxNDMxNCIsIFwKLSAgICAgICAgICAiMC4wMTQyOCwgMC4wMTQ1MSwgMC4wMTQ1NDQsIDAuMDE0NTU0LCAwLjAxNDU2MywgMC4wMTQ1NjgsIDAuMDE0NTcyIiwgXAotICAgICAgICAgICIwLjAxNDQ0MiwgMC4wMTQ3MDgsIDAuMDE0NzA2LCAwLjAxNDc1LCAwLjAxNDcyNSwgMC4wMTQ3MzEsIDAuMDE0NzM0Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBOT1IzWDQgKgotICogLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChOT1IzWDQpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC45MTQwNDk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMzc1NjM2OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMzczOTIzOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMzc1NjM2OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTgwNywgMC4wMDE5MjksIDAuMDAxOTUyLCAwLjAwMTk3OCwgMC4wMDIwMTQsIDAuMDAyMDI4LCAwLjAwMjAzNyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzgxOCwgMC4wMDM4MiwgMC4wMDM4MiwgMC4wMDM4MjEsIDAuMDAzODIxLCAwLjAwMzgyMSwgMC4wMDM4MjIiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMzY0MTAxOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMzYyNjk0OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMzY0MTAxOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTc2LCAwLjAwMTk2OCwgMC4wMDIwMTIsIDAuMDAyMDI1LCAwLjAwMjAyNiwgMC4wMDIwMzEsIDAuMDAyMDIzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyMTU2LCAwLjAwMjE1OCwgMC4wMDIxNTgsIDAuMDAyMTU4LCAwLjAwMjE1OCwgMC4wMDIxNTksIDAuMDAyMTU5Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihDKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDM0Mzk1MjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDM0Mzk1MjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDM0Mzc3MTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA1MDMsIDAuMDAwNTAzLCAwLjAwMDUwNCwgMC4wMDA1MDQsIDAuMDAwNTA0LCAwLjAwMDUwNCwgMC4wMDA1MDMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDE2MjYsIDAuMDAxNjI3LCAwLjAwMTYyNywgMC4wMDE2MjYsIDAuMDAxNjI3LCAwLjAwMTYyNiwgMC4wMDE2MjYiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC41MTM1Mzg7Ci0gICAgZnVuY3Rpb24gOiAiKCEoKEErQikrQykpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzOTQzOSwgMC4xODM5NzEsIDAuMzI4NzA0LCAwLjQzMTY5NywgMC41OTcwMTcsIDAuNzQxMDAyLCAwLjk0NjU2MyIsIFwKLSAgICAgICAgICAiMC4wNDQ2MjMsIDAuMTg5NDI1LCAwLjMzMzc3NCwgMC40MzcyLCAwLjYwMjI5MSwgMC43NDY1MjUsIDAuOTUyNzg3IiwgXAotICAgICAgICAgICIwLjA0OTg2MywgMC4xOTQ2NjksIDAuMzM5MTUxLCAwLjQ0Mjc4LCAwLjYwODA2NCwgMC43NTE0NDIsIDAuOTU4NDUzIiwgXAotICAgICAgICAgICIwLjA1NDA5OSwgMC4xOTk3MjEsIDAuMzQ0MjI4LCAwLjQ0NzYyNywgMC42MTI0MjksIDAuNzU2OTcxLCAwLjk2Mjg3OSIsIFwKLSAgICAgICAgICAiMC4wNTc2OSwgMC4yMDQ3NzMsIDAuMzQ5NDgzLCAwLjQ1MjM5NiwgMC42MTcyMjUsIDAuNzYxNzkzLCAwLjk2ODAxOCIsIFwKLSAgICAgICAgICAiMC4wNjI1MzksIDAuMjEyOTc0LCAwLjM1NzM3NywgMC40NjA5MjIsIDAuNjI1ODIxLCAwLjc2OTg3MiwgMC45NzYyNTkiLCBcCi0gICAgICAgICAgIjAuMDY2MzM3LCAwLjIyMDEwNCwgMC4zNjQ1OTUsIDAuNDY3NTg1LCAwLjYzMjMyMywgMC43NzY2OTksIDAuOTgyNzM3Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY3Mjg3LCAwLjM3MTk2MSwgMC42NzU4OTIsIDAuODkyODgxLCAxLjI0MDYxLCAxLjU0NDk0LCAxLjk4MDgyIiwgXAotICAgICAgICAgICIwLjA2NzcwOSwgMC4zNzE1MzksIDAuNjc2NDk1LCAwLjg5MjkyOCwgMS4yNDEyMSwgMS41NDQ5OCwgMS45Nzk2MyIsIFwKLSAgICAgICAgICAiMC4wNzAxNjMsIDAuMzcxNjkxLCAwLjY3NjY1OSwgMC44OTM0NTksIDEuMjQzMTMsIDEuNTQ2NjYsIDEuOTc5MzQiLCBcCi0gICAgICAgICAgIjAuMDc0MDU4LCAwLjM3MjEwMywgMC42NzY1NTQsIDAuODkyOTMxLCAxLjI0MjY2LCAxLjU0NTQ4LCAxLjk4MjU3IiwgXAotICAgICAgICAgICIwLjA3ODk3NCwgMC4zNzM2NzYsIDAuNjc1NzkxLCAwLjg5NDMwNiwgMS4yNDE3NywgMS41NDczNCwgMS45ODI1MSIsIFwKLSAgICAgICAgICAiMC4wODY3MjMsIDAuMzc3MTIxLCAwLjY3NzE4NywgMC44OTM0MTEsIDEuMjQwODksIDEuNTQ1NTgsIDEuOTgyNjciLCBcCi0gICAgICAgICAgIjAuMDkzNDEyLCAwLjM4MDg1NSwgMC42Nzk4NTMsIDAuODk1OTk5LCAxLjI0MjIyLCAxLjU0Njg5LCAxLjk4MTM4Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE3MDQ4LCAwLjA3MTQ1NywgMC4xMjUxNDcsIDAuMTYzNDU2LCAwLjIyNDcyLCAwLjI3ODM3LCAwLjM1NDg3MyIsIFwKLSAgICAgICAgICAiMC4wMjU1MTcsIDAuMDc5NzI0LCAwLjEzMzU3LCAwLjE3MTg0LCAwLjIzMzA4LCAwLjI4NjY1MywgMC4zNjMyNjUiLCBcCi0gICAgICAgICAgIjAuMDM0NDQsIDAuMDkwMzI4LCAwLjE0Mzk1OCwgMC4xODIxMjQsIDAuMjQzMzgzLCAwLjI5Njk1NCwgMC4zNzM1MDMiLCBcCi0gICAgICAgICAgIjAuMDQwNzIxLCAwLjEwMDcxOSwgMC4xNTQyNjMsIDAuMTkyNTE3LCAwLjI1MzQ3NSwgMC4zMDczODIsIDAuMzgzODk4IiwgXAotICAgICAgICAgICIwLjA0NTg5MywgMC4xMTE2ODEsIDAuMTY0OTAyLCAwLjIwMzEsIDAuMjY0Mjk3LCAwLjMxNzkzOSwgMC4zOTQ0NjUiLCBcCi0gICAgICAgICAgIjAuMDUyNDU5LCAwLjEyODg1OSwgMC4xODI2MzQsIDAuMjIwODI1LCAwLjI4MTkwNiwgMC4zMzU0MzksIDAuNDEyMDI3IiwgXAotICAgICAgICAgICIwLjA1NzUyNCwgMC4xNDEyOTMsIDAuMTk3MTgsIDAuMjM1MjgxLCAwLjI5NjIwNCwgMC4zNDk3MjgsIDAuNDI2MTE1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDI3MzA0LCAwLjEzNzQ3LCAwLjI0NzczMywgMC4zMjY1MjgsIDAuNDUyNjE1LCAwLjU2Mjk2NiwgMC43MjA2OTYiLCBcCi0gICAgICAgICAgIjAuMDMxMzkxLCAwLjEzNzUyNSwgMC4yNDc4MDgsIDAuMzI2NTIxLCAwLjQ1MjY2LCAwLjU2MzAxNiwgMC43MjA1ODkiLCBcCi0gICAgICAgICAgIjAuMDQwMzU2LCAwLjE0MDQ0NCwgMC4yNDgwNjMsIDAuMzI2NjAzLCAwLjQ1MjcxMywgMC41NjMwNjUsIDAuNzIwNTc5IiwgXAotICAgICAgICAgICIwLjA0OTI4MSwgMC4xNDY0ODksIDAuMjUwOTQzLCAwLjMyNzc0NCwgMC40NTI2OTEsIDAuNTYyOTUxLCAwLjcyMDY0OSIsIFwKLSAgICAgICAgICAiMC4wNTc0MTQsIDAuMTUzMzcyLCAwLjI1NTY2NywgMC4zMzA5ODksIDAuNDUzOTQ5LCAwLjU2MzI3OCwgMC43MjA1NTgiLCBcCi0gICAgICAgICAgIjAuMDY5MDA1LCAwLjE2NjQ5MiwgMC4yNjUwMjcsIDAuMzM4NDU0LCAwLjQ1ODc3MSwgMC41NjYwNDQsIDAuNzIxMzc1IiwgXAotICAgICAgICAgICIwLjA3Nzc2OSwgMC4xODAxODQsIDAuMjc1ODE0LCAwLjM0NzUsIDAuNDY1NTA2LCAwLjU3MTA2MSwgMC43MjQzMTMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzcyODQsIDAuMTgxNzU2LCAwLjMyNjQxNCwgMC40MjkzODUsIDAuNTk0OCwgMC43Mzg3NzMsIDAuOTQ1NTAyIiwgXAotICAgICAgICAgICIwLjA0MzI1MSwgMC4xODgwNzcsIDAuMzMyNTA3LCAwLjQzNjA3NiwgMC42MDExMjYsIDAuNzQ1MjMsIDAuOTUxNjUyIiwgXAotICAgICAgICAgICIwLjA1MDY3MywgMC4xOTU1NTUsIDAuMzQwMTgzLCAwLjQ0MzIxMiwgMC42MDc5MjQsIDAuNzUzMDksIDAuOTU4ODQxIiwgXAotICAgICAgICAgICIwLjA1NzAwNCwgMC4yMDMwMDUsIDAuMzQ3NzIsIDAuNDUwNzk4LCAwLjYxNTg2MywgMC43NTk5NDIsIDAuOTY2NDI0IiwgXAotICAgICAgICAgICIwLjA2MjUyNiwgMC4yMTA1NzEsIDAuMzU1MjUsIDAuNDU4Njk5LCAwLjYyNDEzMywgMC43Njc2ODMsIDAuOTc1MDE5IiwgXAotICAgICAgICAgICIwLjA2OTc3NywgMC4yMjI4NzMsIDAuMzY3NTM3LCAwLjQ3MTE0NSwgMC42MzU2ODEsIDAuNzgwMDY5LCAwLjk4NjUiLCBcCi0gICAgICAgICAgIjAuMDc1MzcsIDAuMjMzNzQ1LCAwLjM3ODAwNSwgMC40ODEyNjQsIDAuNjQ2MzgyLCAwLjc5MDkzOSwgMC45OTc0OTMiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjcyODIsIDAuMzcxNzMsIDAuNjc2MDE0LCAwLjg5MzAxMywgMS4yNDA1OCwgMS41NDUsIDEuOTc5NzciLCBcCi0gICAgICAgICAgIjAuMDY4MTg4LCAwLjM3MTU3MSwgMC42NzU3MywgMC44OTMzNTksIDEuMjQwODksIDEuNTQ0OTMsIDEuOTc5NCIsIFwKLSAgICAgICAgICAiMC4wNzI0NjMsIDAuMzcxNDM2LCAwLjY3NTYxOCwgMC44OTI4ODUsIDEuMjQxNTUsIDEuNTQ1NzgsIDEuOTc5NTYiLCBcCi0gICAgICAgICAgIjAuMDc4NDQ1LCAwLjM3MjA2MywgMC42NzU1OTcsIDAuODkzMTg1LCAxLjI0MDUzLCAxLjU0NjgxLCAxLjk4MDEiLCBcCi0gICAgICAgICAgIjAuMDg1MzA5LCAwLjM3NDMwMSwgMC42NzY0NzMsIDAuODkyOTIsIDEuMjQxMDgsIDEuNTQ3MDMsIDEuOTgwNjUiLCBcCi0gICAgICAgICAgIjAuMDk1NDcyLCAwLjM3OTEyNSwgMC42NzcyMDQsIDAuODkzMzQzLCAxLjI0MDc0LCAxLjU0NzIsIDEuOTc5NDIiLCBcCi0gICAgICAgICAgIjAuMTAzNTk0LCAwLjM4NDkwOSwgMC42ODA1OTYsIDAuODk1NTc2LCAxLjI0MjEyLCAxLjU0NDk5LCAxLjk4MDMxIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE1NzUsIDAuMDY4ODQyLCAwLjEyMTczNSwgMC4xNTk0NDksIDAuMjE5ODgxLCAwLjI3MjcwMSwgMC4zNDgyODMiLCBcCi0gICAgICAgICAgIjAuMDI0MTA4LCAwLjA3NzI3MiwgMC4xMzAwNjUsIDAuMTY3ODYyLCAwLjIyODI0OCwgMC4yODEwMzYsIDAuMzU2NTY0IiwgXAotICAgICAgICAgICIwLjAzMjM4LCAwLjA4Nzc1MywgMC4xNDA3NDQsIDAuMTc4NDcxLCAwLjIzODg4OCwgMC4yOTE3MTQsIDAuMzY3MzA1IiwgXAotICAgICAgICAgICIwLjAzOCwgMC4wOTg0NTksIDAuMTUwODA2LCAwLjE4ODUxLCAwLjI0ODYzOCwgMC4zMDE3MjQsIDAuMzc3MTciLCBcCi0gICAgICAgICAgIjAuMDQyNjYsIDAuMTA5MTg3LCAwLjE2MTM5MywgMC4xOTkwMTksIDAuMjU5MzkxLCAwLjMxMjI3NywgMC4zODc2OTQiLCBcCi0gICAgICAgICAgIjAuMDQ4NjQ2LCAwLjEyNjMxNiwgMC4xNzg0NjYsIDAuMjE2ODc5LCAwLjI3NzEwMSwgMC4zMzAwMDIsIDAuNDA1MzUyIiwgXAotICAgICAgICAgICIwLjA1Mjc5MywgMC4xMzkyMjMsIDAuMTkzNTM3LCAwLjIzMDk2OSwgMC4yOTExNDYsIDAuMzQzODA0LCAwLjQxOTIxNyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyNDU3OCwgMC4xMzMyMjcsIDAuMjQxOTIsIDAuMzE5NTgxLCAwLjQ0Mzc4NywgMC41NTI1MjMsIDAuNzA3ODM4IiwgXAotICAgICAgICAgICIwLjAyOTAxNCwgMC4xMzMyNjMsIDAuMjQyMDIsIDAuMzE5NTU5LCAwLjQ0MzcwNiwgMC41NTIzOTIsIDAuNzA3Nzg3IiwgXAotICAgICAgICAgICIwLjAzODA1MiwgMC4xMzYzNywgMC4yNDIzMTMsIDAuMzE5NTEsIDAuNDQzNzEsIDAuNTUyNTA4LCAwLjcwNzkwNSIsIFwKLSAgICAgICAgICAiMC4wNDY4MDMsIDAuMTQyMjQ3LCAwLjI0NTI3MSwgMC4zMjA4MzQsIDAuNDQzOTg4LCAwLjU1MjUyLCAwLjcwNzYzNSIsIFwKLSAgICAgICAgICAiMC4wNTQ1MzksIDAuMTQ5NjExLCAwLjI1MDE3MSwgMC4zMjQyLCAwLjQ0NTM3MiwgMC41NTI3MzEsIDAuNzA3NjczIiwgXAotICAgICAgICAgICIwLjA2NTY0MiwgMC4xNjI0NTgsIDAuMjYwMjI3LCAwLjMzMTc0MywgMC40NTAxNzksIDAuNTU1ODczLCAwLjcwODQzNSIsIFwKLSAgICAgICAgICAiMC4wNzQ4MTIsIDAuMTc1Mzc3LCAwLjI3MDgzMSwgMC4zNDExMDEsIDAuNDU3MjU3LCAwLjU2MDk4NCwgMC43MTE1ODIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzIzMjgsIDAuMTc2OTU0LCAwLjMyMTcyNCwgMC40MjQzNTksIDAuNTg5NzUsIDAuNzMzOTc0LCAwLjk0MDc4OCIsIFwKLSAgICAgICAgICAiMC4wMzkyNDYsIDAuMTgzOTYsIDAuMzI4NjEsIDAuNDMxNjk5LCAwLjU5NjgzNCwgMC43NDE2NjcsIDAuOTQ3NDE0IiwgXAotICAgICAgICAgICIwLjA0ODgwNCwgMC4xOTI5NTUsIDAuMzM3NTc3LCAwLjQ0MDgwOSwgMC42MDU2NzcsIDAuNzQ5NDk5LCAwLjk1NTU3IiwgXAotICAgICAgICAgICIwLjA1NzA3NCwgMC4yMDIwMDQsIDAuMzQ2MzU0LCAwLjQ0OTcxOCwgMC42MTQ3MTYsIDAuNzU4NjYxLCAwLjk2NDE4IiwgXAotICAgICAgICAgICIwLjA2Mzk1LCAwLjIxMTQxNSwgMC4zNTU3NTEsIDAuNDU5MTIsIDAuNjIzODIsIDAuNzY4MjY0LCAwLjk3MzQiLCBcCi0gICAgICAgICAgIjAuMDcyODY5LCAwLjIyNjE0NywgMC4zNjk5NDUsIDAuNDczMjIsIDAuNjM3NzQsIDAuNzgxODc5LCAwLjk4ODY5OSIsIFwKLSAgICAgICAgICAiMC4wNzk3NSwgMC4yMzkyODUsIDAuMzgyOSwgMC40ODU2ODYsIDAuNjUwMTk0LCAwLjc5NDc4MSwgMS4wMDA4OSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2NzA4MSwgMC4zNzIwMDYsIDAuNjc1OTcsIDAuODkzMDkzLCAxLjI0MDU0LCAxLjU0NDg2LCAxLjk4MDU3IiwgXAotICAgICAgICAgICIwLjA2ODY3NywgMC4zNzE4NDksIDAuNjc1NTgxLCAwLjg5MzI2OSwgMS4yNDA1OCwgMS41NDU0NiwgMS45Nzk0NyIsIFwKLSAgICAgICAgICAiMC4wNzUzMjksIDAuMzcxMzU3LCAwLjY3NTcxOSwgMC44OTMxMTgsIDEuMjQwNiwgMS41NDU3LCAxLjk4MTk2IiwgXAotICAgICAgICAgICIwLjA4MzMxNywgMC4zNzI0NSwgMC42NzU3MzgsIDAuODkyOTAxLCAxLjI0MDYsIDEuNTQ1NCwgMS45ODA1MiIsIFwKLSAgICAgICAgICAiMC4wOTE0MTYsIDAuMzc1MjI0LCAwLjY3NTU1MSwgMC44OTMwNTYsIDEuMjQwODYsIDEuNTQ0ODcsIDEuOTgwMzkiLCBcCi0gICAgICAgICAgIjAuMTAyNzcxLCAwLjM4MjMxMywgMC42Nzc1MzgsIDAuODkzMDQsIDEuMjQwNzYsIDEuNTQ2MDMsIDEuOTc5NDUiLCBcCi0gICAgICAgICAgIjAuMTEwOTcxLCAwLjM5MDQyNCwgMC42ODIwNzIsIDAuODk1Mzk3LCAxLjI0MTE1LCAxLjU0NTE2LCAxLjk4MDAxIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE0MTIsIDAuMDY3Mjk0LCAwLjEyMDQyOCwgMC4xNTgzMTQsIDAuMjE4OTc4LCAwLjI3MjE5LCAwLjM0Nzk5NSIsIFwKLSAgICAgICAgICAiMC4wMjI0MjMsIDAuMDc1NzkyLCAwLjEyODg2NywgMC4xNjY4MDEsIDAuMjI3NDMyLCAwLjI4MDUzNiwgMC4zNTYzODYiLCBcCi0gICAgICAgICAgIjAuMDI5NzE4LCAwLjA4NjMxMywgMC4xMzk0ODYsIDAuMTc3NDcxLCAwLjIzNzk3MSwgMC4yOTEwNSwgMC4zNjY4NjkiLCBcCi0gICAgICAgICAgIjAuMDM0ODM4LCAwLjA5NjkwOSwgMC4xNTAwMTgsIDAuMTg3NjUyLCAwLjI0ODMyLCAwLjMwMTQxMSwgMC4zNzcxNzgiLCBcCi0gICAgICAgICAgIjAuMDM4OTMxLCAwLjEwNzU2NiwgMC4xNjA4MjIsIDAuMTk4Njc1LCAwLjI1OTMwNywgMC4zMTI0MDksIDAuMzg4MjU1IiwgXAotICAgICAgICAgICIwLjA0Mzk1NywgMC4xMjM3NjMsIDAuMTc3ODI2LCAwLjIxNTcyMSwgMC4yNzYyMzQsIDAuMzI5NDMxLCAwLjQwNTE0IiwgXAotICAgICAgICAgICIwLjA0NzQ0OCwgMC4xMzY1ODgsIDAuMTkyOTE2LCAwLjIzMDc5NSwgMC4yOTEyMjIsIDAuMzQ0MTU3LCAwLjQyMDAyOCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyMjYzLCAwLjEzMjgwNSwgMC4yNDMwOTMsIDAuMzIxODkxLCAwLjQ0NzkwNywgMC41NTc5NjYsIDAuNzE2MjE3IiwgXAotICAgICAgICAgICIwLjAyNzM0OSwgMC4xMzI4MzgsIDAuMjQzNTIsIDAuMzIxNjgsIDAuNDQ4NjY2LCAwLjU1ODQzOSwgMC43MTU0IiwgXAotICAgICAgICAgICIwLjAzNjczOSwgMC4xMzYyMjgsIDAuMjQzODUzLCAwLjMyMTY3NSwgMC40NDg1MjUsIDAuNTU3OTg0LCAwLjcxNjYxNyIsIFwKLSAgICAgICAgICAiMC4wNDUyMzEsIDAuMTQyMjQ0LCAwLjI0NjMwMywgMC4zMjM2ODEsIDAuNDQ4MTE1LCAwLjU1ODE0LCAwLjcxNTQ1MyIsIFwKLSAgICAgICAgICAiMC4wNTI2NSwgMC4xNDkyNzEsIDAuMjUxMzMsIDAuMzI2MTY0LCAwLjQ0OTk2NywgMC41NTkxNTEsIDAuNzE1Mjc2IiwgXAotICAgICAgICAgICIwLjA2Mzc4NSwgMC4xNjMxMzcsIDAuMjYwODc1LCAwLjMzNDU3NSwgMC40NTUxLCAwLjU2MTI3MSwgMC43MTY0MjIiLCBcCi0gICAgICAgICAgIjAuMDcyNzAyLCAwLjE3NjI5NywgMC4yNzEwNDksIDAuMzQzMjM4LCAwLjQ2MTU0MiwgMC41NjcwOTksIDAuNzE5Mzk3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTI1NzEsIDAuMDEyNjQ1LCAwLjAxMjY1LCAwLjAxMjY1NCwgMC4wMTI2NTksIDAuMDEyNjU5LCAwLjAxMjY2IiwgXAotICAgICAgICAgICIwLjAxMjM5LCAwLjAxMjU3NywgMC4wMTI2MTUsIDAuMDEyNjI2LCAwLjAxMjYzNSwgMC4wMTI2NDQsIDAuMDEyNjQyIiwgXAotICAgICAgICAgICIwLjAxMjMzNywgMC4wMTI1MjQsIDAuMDEyNTc3LCAwLjAxMjU5NSwgMC4wMTI2MTMsIDAuMDEyNjI5LCAwLjAxMjYzMSIsIFwKLSAgICAgICAgICAiMC4wMTIzOTUsIDAuMDEyNTA2LCAwLjAxMjU1NywgMC4wMTI1NzQsIDAuMDEyNTk4LCAwLjAxMjYwOSwgMC4wMTI2MTciLCBcCi0gICAgICAgICAgIjAuMDEyNTI0LCAwLjAxMjUyNCwgMC4wMTI1NjIsIDAuMDEyNTc5LCAwLjAxMjU5OCwgMC4wMTI2MSwgMC4wMTI2MiIsIFwKLSAgICAgICAgICAiMC4wMTI4NzcsIDAuMDEyNjI5LCAwLjAxMjYyMiwgMC4wMTI2MjYsIDAuMDEyNjI5LCAwLjAxMjYyNiwgMC4wMTI2NDIiLCBcCi0gICAgICAgICAgIjAuMDEzMzE2LCAwLjAxMjc4NCwgMC4wMTI3MTUsIDAuMDEyNjk1LCAwLjAxMjY4NiwgMC4wMTI2NzIsIDAuMDEyNjY3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI4MDEsIDAuMDAyODA4LCAwLjAwMjgwOSwgMC4wMDI4MDksIDAuMDAyODEsIDAuMDAyODEsIDAuMDAyODA5IiwgXAotICAgICAgICAgICIwLjAwMjY5NCwgMC4wMDI3MDUsIDAuMDAyNzExLCAwLjAwMjcxMSwgMC4wMDI3MTIsIDAuMDAyNzEyLCAwLjAwMjcxMSIsIFwKLSAgICAgICAgICAiMC4wMDI4NDUsIDAuMDAyNzQ3LCAwLjAwMjc1NywgMC4wMDI3MywgMC4wMDI3MjEsIDAuMDAyNzE2LCAwLjAwMjcxMiIsIFwKLSAgICAgICAgICAiMC4wMDMxNDksIDAuMDAyOTIzLCAwLjAwMjgzMSwgMC4wMDI3OTksIDAuMDAyNzcxLCAwLjAwMjc1OCwgMC4wMDI3NDQiLCBcCi0gICAgICAgICAgIjAuMDAzNjIzLCAwLjAwMzAyNCwgMC4wMDI5NDYsIDAuMDAyODkxLCAwLjAwMjg0NCwgMC4wMDI4MTUsIDAuMDAyNzg5IiwgXAotICAgICAgICAgICIwLjAwNDQzMywgMC4wMDM1MjQsIDAuMDAzMjMxLCAwLjAwMzEyNywgMC4wMDMwMjQsIDAuMDAyOTY5LCAwLjAwMjkxNSIsIFwKLSAgICAgICAgICAiMC4wMDUxNDMsIDAuMDAzODY4LCAwLjAwMzQzNSwgMC4wMDMyODMsIDAuMDAzMTM3LCAwLjAwMzA2LCAwLjAwMjk4NSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEwODAyLCAwLjAxMDg3NywgMC4wMTA4ODYsIDAuMDEwODg5LCAwLjAxMDg5LCAwLjAxMDg5MywgMC4wMTA4OTEiLCBcCi0gICAgICAgICAgIjAuMDEwNjMsIDAuMDEwODExLCAwLjAxMDg0NSwgMC4wMTA4NTcsIDAuMDEwODY2LCAwLjAxMDg3NiwgMC4wMTA4NzciLCBcCi0gICAgICAgICAgIjAuMDEwNjE4LCAwLjAxMDc2NiwgMC4wMTA4MTYsIDAuMDEwODMxLCAwLjAxMDg0NywgMC4wMTA4NTcsIDAuMDEwODY0IiwgXAotICAgICAgICAgICIwLjAxMDcyNywgMC4wMTA3NjQsIDAuMDEwODA1LCAwLjAxMDgyMywgMC4wMTA4MzksIDAuMDEwODUsIDAuMDEwODU3IiwgXAotICAgICAgICAgICIwLjAxMDkyMywgMC4wMTA4MDMsIDAuMDEwODI0LCAwLjAxMDgzMSwgMC4wMTA4NDYsIDAuMDEwODU1LCAwLjAxMDg2MiIsIFwKLSAgICAgICAgICAiMC4wMTEzNzksIDAuMDEwOTQ3LCAwLjAxMDkwNCwgMC4wMTA4OTQsIDAuMDEwODg4LCAwLjAxMDg4NywgMC4wMTA4ODUiLCBcCi0gICAgICAgICAgIjAuMDExODk0LCAwLjAxMTEzLCAwLjAxMTAxOCwgMC4wMTA5ODQsIDAuMDEwOTU1LCAwLjAxMDk0MSwgMC4wMTA5MjgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTUzLCAwLjAwMTU2OSwgMC4wMDE1NzIsIDAuMDAxNTc0LCAwLjAwMTU3NCwgMC4wMDE1NzUsIDAuMDAxNTc1IiwgXAotICAgICAgICAgICIwLjAwMTQ0OSwgMC4wMDE1MzYsIDAuMDAxNTU3LCAwLjAwMTU1OSwgMC4wMDE1NjQsIDAuMDAxNTY3LCAwLjAwMTU2OSIsIFwKLSAgICAgICAgICAiMC4wMDE1NzgsIDAuMDAxNTczLCAwLjAwMTU5NiwgMC4wMDE1OTIsIDAuMDAxNTg4LCAwLjAwMTU4NiwgMC4wMDE1ODQiLCBcCi0gICAgICAgICAgIjAuMDAxODQ5LCAwLjAwMTY3NCwgMC4wMDE2ODksIDAuMDAxNjY2LCAwLjAwMTY0NCwgMC4wMDE2MzMsIDAuMDAxNjIyIiwgXAotICAgICAgICAgICIwLjAwMjI1OSwgMC4wMDE4MjcsIDAuMDAxODExLCAwLjAwMTc2MywgMC4wMDE3MTksIDAuMDAxNjk2LCAwLjAwMTY3MiIsIFwKLSAgICAgICAgICAiMC4wMDI5NzIsIDAuMDAyMDQyLCAwLjAwMjA1NCwgMC4wMDE5NjYsIDAuMDAxODc5LCAwLjAwMTgzLCAwLjAwMTc4MiIsIFwKLSAgICAgICAgICAiMC4wMDM3OTcsIDAuMDAyMzU5LCAwLjAwMjMzOSwgMC4wMDIxODEsIDAuMDAyMDQyLCAwLjAwMTk2NSwgMC4wMDE4OSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA4OTI0LCAwLjAwOTAyOSwgMC4wMDkwNDIsIDAuMDA5MDQ1LCAwLjAwOTA0OSwgMC4wMDkwNSwgMC4wMDkwNTMiLCBcCi0gICAgICAgICAgIjAuMDA4Nzk1LCAwLjAwODk2MiwgMC4wMDg5OTksIDAuMDA5MDEyLCAwLjAwOTAyMywgMC4wMDkwMjksIDAuMDA5MDM0IiwgXAotICAgICAgICAgICIwLjAwOTAzNSwgMC4wMDg5NzYsIDAuMDA4OTk5LCAwLjAwOTAxLCAwLjAwOTAyLCAwLjAwOTAyNiwgMC4wMDkwMzIiLCBcCi0gICAgICAgICAgIjAuMDA5Mzg0LCAwLjAwOTA1NiwgMC4wMDkwMzgsIDAuMDA5MDM3LCAwLjAwOTAzOCwgMC4wMDkwMzgsIDAuMDA5MDQyIiwgXAotICAgICAgICAgICIwLjAwOTcyNiwgMC4wMDkxNTIsIDAuMDA5MDkxLCAwLjAwOTA3NSwgMC4wMDkwNjUsIDAuMDA5MDYyLCAwLjAwOTA2MiIsIFwKLSAgICAgICAgICAiMC4wMTAzNjcsIDAuMDA5NDgsIDAuMDA5MjkzLCAwLjAwOTIzMywgMC4wMDkxNzksIDAuMDA5MTQ4LCAwLjAwOTEzIiwgXAotICAgICAgICAgICIwLjAxMTA1LCAwLjAwOTc3OSwgMC4wMDk1MSwgMC4wMDk0MDYsIDAuMDA5Mjk3LCAwLjAwOTI1NiwgMC4wMDkyMTUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDA0MSwgMC4wMDAxNjMsIDAuMDAwMTc2LCAwLjAwMDE3OSwgMC4wMDAxODMsIDAuMDAwMTg0LCAwLjAwMDE4NiIsIFwKLSAgICAgICAgICAiMC4wMDAwMzYsIDAuMDAwMjA3LCAwLjAwMDI0NCwgMC4wMDAyNTcsIDAuMDAwMjY4LCAwLjAwMDI3MywgMC4wMDAyNzgiLCBcCi0gICAgICAgICAgIjAuMDAwMDc4LCAwLjAwMDIzMiwgMC4wMDAyNjgsIDAuMDAwMjc1LCAwLjAwMDI4NSwgMC4wMDAyOSwgMC4wMDAyOTUiLCBcCi0gICAgICAgICAgIjAuMDAwMzY5LCAwLjAwMDMzNCwgMC4wMDAzMDMsIDAuMDAwMzQsIDAuMDAwMzMzLCAwLjAwMDMzMSwgMC4wMDAzMjgiLCBcCi0gICAgICAgICAgIjAuMDAwNzU3LCAwLjAwMDQ2MSwgMC4wMDAzOTIsIDAuMDAwMzc5LCAwLjAwMDM2NiwgMC4wMDAzNTgsIDAuMDAwMzU4IiwgXAotICAgICAgICAgICIwLjAwMTQ3NiwgMC4wMDA4NTQsIDAuMDAwNzEsIDAuMDAwNjM5LCAwLjAwMDU2OCwgMC4wMDA1MjksIDAuMDAwNDkiLCBcCi0gICAgICAgICAgIjAuMDAyMjQ2LCAwLjAwMTAyLCAwLjAwMDc1LCAwLjAwMDY3NiwgMC4wMDA1OTEsIDAuMDAwNTM5LCAwLjAwMDUwNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBFREZGVFJYMiAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoRURGRlRSWDIpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMS41Mjg0OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIGZmIChOMzAsUUJJTlQpIHsKLSAgICBuZXh0X3N0YXRlIDogIigoKCEoKCFEKSBFKSkgKCEoKCFFKSAoIU4zMCkpKSkgUk4pIjsKLSAgICBjbG9ja2VkX29uIDogIkNLIjsKLSAgfQotICBwaW4oQ0spICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY1Mjk0NzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2NTI5NDc7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjUyNzg7Ci0gICAgY2xvY2sgOiB0cnVlOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzU5OSwgMC4wMDM1OSwgMC4wMDM2NzIsIDAuMDAzNzY2LCAwLjAwMzg5NSwgMC4wMDQxMTcsIDAuMDA0MzA3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA4Mjg0LCAwLjAwODI3NSwgMC4wMDgzNDQsIDAuMDA4NDQ1LCAwLjAwODU1NSwgMC4wMDg3MTgsIDAuMDA4ODg5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRCYhRSYhUk4iOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX0VfRVFfMF9BTl9STl9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMTEyMzQ3LCAwLjEyMDU5OSwgMC4xMjk5MDcsIDAuMTM3NDk4LCAwLjE0MzYwNiwgMC4xNTE1MDcsIDAuMTU3NjUzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wNzIwODEsIDAuMDgwMjE0LCAwLjA4OTQ5MSwgMC4wOTY1MjksIDAuMTAxOTc1LCAwLjEwOTM5MiwgMC4xMTQ2MzYiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEQpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY0NDMxOTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2NDQxOTg7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjQ0MzE5OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNjQ1OSwgMC4wMDY0NjIsIDAuMDA2NTQsIDAuMDA2NjQ4LCAwLjAwNjc3NiwgMC4wMDcwMTEsIDAuMDA3MjA4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA2MTI0LCAwLjAwNjEzNiwgMC4wMDYyMTEsIDAuMDA2MzMzLCAwLjAwNjQ2NywgMC4wMDY2OSwgMC4wMDY4ODQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiRSZSTiI7Ci0gICAgICBzZGZfY29uZCA6ICJFX0VRXzFfQU5fUk5fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wNSwgLTAuMDQ1LCAtMC4wMzg3NSwgLTAuMDM4NzUsIC0wLjAzMjUsIC0wLjAyODc1LCAtMC4wMjYyNSIsIFwKLSAgICAgICAgICAiLTAuMDYxMjUsIC0wLjA1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjA0Mzc1LCAtMC4wNCwgLTAuMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDYxMjUsIC0wLjA1NjI1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjA1LCAtMC4wNDYyNSwgLTAuMDQzNzUiLCBcCi0gICAgICAgICAgIi0wLjA2NzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjA0NjI1LCAtMC4wNDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDczNzUsIC0wLjA2ODc1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDU2MjUsIC0wLjA1MjUsIC0wLjA1IiwgXAotICAgICAgICAgICItMC4wNzc1LCAtMC4wNzI1LCAtMC4wNjYyNSwgLTAuMDY2MjUsIC0wLjA2LCAtMC4wNTYyNSwgLTAuMDUzNzUiLCBcCi0gICAgICAgICAgIi0wLjA4LCAtMC4wNzUsIC0wLjA2ODc1LCAtMC4wNjg3NSwgLTAuMDYyNSwgLTAuMDU4NzUsIC0wLjA1NjI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDI1LCAtMC4wMTM3NSwgLTAuMDA3NSwgLTAuMDAxMjUsIDAuMDA1LCAwLjAxNSwgMC4wMTc1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLCAwLjAwMzc1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgLTAuMDAyNSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDI1LCAwIiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDg3NSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA0NjI1LCAtMC4wNDEyNSwgLTAuMDI4NzUsIC0wLjAyMjUsIC0wLjAxNjI1LCAtMC4wMTI1LCAtMC4wMSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjA0Mzc1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMjUsIC0wLjAxNSwgLTAuMDEyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiRSZSTiI7Ci0gICAgICBzZGZfY29uZCA6ICJFX0VRXzFfQU5fUk5fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODEyNSwgMC4wNywgMC4wNjM3NSwgMC4wNjM3NSwgMC4wNTc1LCAwLjA1Mzc1LCAwLjA1MTI1IiwgXAotICAgICAgICAgICIwLjA4NjI1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1ODc1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICIwLjA5MjUsIDAuMDg3NSwgMC4wODEyNSwgMC4wNzUsIDAuMDY4NzUsIDAuMDY1LCAwLjA2MjUiLCBcCi0gICAgICAgICAgIjAuMDk4NzUsIDAuMDg3NSwgMC4wODEyNSwgMC4wODEyNSwgMC4wNzUsIDAuMDcxMjUsIDAuMDY4NzUiLCBcCi0gICAgICAgICAgIjAuMDk4NzUsIDAuMDkzNzUsIDAuMDg3NSwgMC4wODEyNSwgMC4wODEyNSwgMC4wNzc1LCAwLjA3NSIsIFwKLSAgICAgICAgICAiMC4xMDI1LCAwLjA5NzUsIDAuMDkxMjUsIDAuMDg1LCAwLjA4NSwgMC4wODEyNSwgMC4wNzg3NSIsIFwKLSAgICAgICAgICAiMC4xMTEyNSwgMC4xLCAwLjA5Mzc1LCAwLjA5Mzc1LCAwLjA4NzUsIDAuMDgzNzUsIDAuMDgxMjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNSwgMC4wMzg3NSwgMC4wMzI1LCAwLjAyLCAwLjAxMzc1LCAwLjAxLCAwLjAwMTI1IiwgXAotICAgICAgICAgICIwLjA1NSwgMC4wNSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMTUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4wNjEyNSwgMC4wNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyMTI1LCAwLjAxODc1IiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDU2MjUsIDAuMDUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMjc1LCAwLjAxODc1IiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDYyNSwgMC4wNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAyNzUsIDAuMDI1IiwgXAotICAgICAgICAgICIwLjA3MTI1LCAwLjA2NjI1LCAwLjA1Mzc1LCAwLjA0NzUsIDAuMDQxMjUsIDAuMDMxMjUsIDAuMDI4NzUiLCBcCi0gICAgICAgICAgIjAuMDgsIDAuMDY4NzUsIDAuMDU2MjUsIDAuMDUsIDAuMDQzNzUsIDAuMDQsIDAuMDMxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEUpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTM2OTI3OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTM2OTI3OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTM2ODU0OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNzA2MSwgMC4wMDcwNjYsIDAuMDA3MTcsIDAuMDA3MjgsIDAuMDA3Mzk4LCAwLjAwNzU5MiwgMC4wMDc4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA4Mjg5LCAwLjAwODMxNiwgMC4wMDg0MDksIDAuMDA4NTg0LCAwLjAwODc5NSwgMC4wMDkxNjUsIDAuMDA5NDkyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlJOIjsKLSAgICAgIHNkZl9jb25kIDogIlJOID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAyNSwgLTAuMDIsIC0wLjAwNzUsIC0wLjAwMTI1LCAwLjAwNSwgMC4wMDg3NSwgMC4wMTc1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDI1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMCwgMC4wMDM3NSwgMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDMxMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgLTAuMDAyNSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDM3NSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA4NzUsIDAiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDA4NzUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wNTI1LCAtMC4wNDc1LCAtMC4wMzUsIC0wLjAyODc1LCAtMC4wMjI1LCAtMC4wMTg3NSwgLTAuMDEiLCBcCi0gICAgICAgICAgIi0wLjA1NSwgLTAuMDUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAyMTI1LCAtMC4wMTI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDMxMjUsIC0wLjAyLCAtMC4wMTM3NSwgLTAuMDA3NSwgLTAuMDAxMjUsIDAuMDAyNSwgMC4wMTEyNSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDEyNSwgLTAuMDAyNSwgMCIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDM3NSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA4NzUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxNSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDI1LCAtMC4wMjUsIC0wLjAxNSwgLTAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDU4NzUsIC0wLjA0NzUsIC0wLjA0MTI1LCAtMC4wMzUsIC0wLjAyODc1LCAtMC4wMTg3NSwgLTAuMDE2MjUiLCBcCi0gICAgICAgICAgIi0wLjA2MTI1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMjEyNSwgLTAuMDE4NzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlJOIjsKLSAgICAgIHNkZl9jb25kIDogIlJOID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5Mzc1LCAwLjA4MjUsIDAuMDc2MjUsIDAuMDc2MjUsIDAuMDcsIDAuMDY2MjUsIDAuMDYzNzUiLCBcCi0gICAgICAgICAgIjAuMDk4NzUsIDAuMDkzNzUsIDAuMDg3NSwgMC4wODEyNSwgMC4wODEyNSwgMC4wNzc1LCAwLjA3NSIsIFwKLSAgICAgICAgICAiMC4xMDUsIDAuMSwgMC4wOTM3NSwgMC4wODc1LCAwLjA4NzUsIDAuMDgzNzUsIDAuMDgxMjUiLCBcCi0gICAgICAgICAgIjAuMTExMjUsIDAuMTA2MjUsIDAuMSwgMC4wOTM3NSwgMC4wODc1LCAwLjA4Mzc1LCAwLjA4MTI1IiwgXAotICAgICAgICAgICIwLjExNzUsIDAuMTA2MjUsIDAuMSwgMC4xLCAwLjA5Mzc1LCAwLjA5LCAwLjA4NzUiLCBcCi0gICAgICAgICAgIjAuMTIxMjUsIDAuMTEsIDAuMTAzNzUsIDAuMTAzNzUsIDAuMDk3NSwgMC4wOTM3NSwgMC4wOTEyNSIsIFwKLSAgICAgICAgICAiMC4xMjM3NSwgMC4xMTg3NSwgMC4xMTI1LCAwLjEwNjI1LCAwLjEsIDAuMDk2MjUsIDAuMDkzNzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTYyNSwgMC4wNTEyNSwgMC4wNDUsIDAuMDM4NzUsIDAuMDM4NzUsIDAuMDM1LCAwLjAzMjUiLCBcCi0gICAgICAgICAgIjAuMDYxMjUsIDAuMDU2MjUsIDAuMDUsIDAuMDUsIDAuMDQzNzUsIDAuMDQsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiMC4wNzM3NSwgMC4wNjI1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDU2MjUsIDAuMDUyNSwgMC4wNSIsIFwKLSAgICAgICAgICAiMC4wOCwgMC4wNzUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNjI1LCAwLjA1ODc1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICIwLjA4NjI1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNzUsIDAuMDY4NzUsIDAuMDY1LCAwLjA2MjUiLCBcCi0gICAgICAgICAgIjAuMDk2MjUsIDAuMDkxMjUsIDAuMDg1LCAwLjA4NSwgMC4wNzg3NSwgMC4wNzUsIDAuMDcyNSIsIFwKLSAgICAgICAgICAiMC4xMDUsIDAuMSwgMC4wOTM3NSwgMC4wODc1LCAwLjA4NzUsIDAuMDgzNzUsIDAuMDgxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFEpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC42NzcyNDU7Ci0gICAgZnVuY3Rpb24gOiAiTjMwIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBub25fdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJpc2luZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODk5OTQsIDAuMTY4OTYzLCAwLjIzMTUwMywgMC4zMTAwMzEsIDAuMzg4MDc5LCAwLjQ2NjI2NywgMC41NDQzOTgiLCBcCi0gICAgICAgICAgIjAuMDk4MjAxLCAwLjE3NzI3NCwgMC4yMzk4MjcsIDAuMzE4MjMzLCAwLjM5NjI4NCwgMC40NzQ0NzEsIDAuNTUyNDU2IiwgXAotICAgICAgICAgICIwLjEwNzQ2NCwgMC4xODY1NDQsIDAuMjQ5MDksIDAuMzI3MzgsIDAuNDA1NTc1LCAwLjQ4MzczMywgMC41NjE2MzIiLCBcCi0gICAgICAgICAgIjAuMTE0OTMyLCAwLjE5Mzg3OCwgMC4yNTY2MywgMC4zMzQ5NTIsIDAuNDEzMDExLCAwLjQ5MTE3OSwgMC41Njk0MTgiLCBcCi0gICAgICAgICAgIjAuMTIwODg2LCAwLjE5OTg0MiwgMC4yNjI2MTcsIDAuMzQwOTM1LCAwLjQxODk4LCAwLjQ5NzEzMSwgMC41NzUyNjciLCBcCi0gICAgICAgICAgIjAuMTI4NzgsIDAuMjA3Nzc0LCAwLjI3MDUzMywgMC4zNDg4MTQsIDAuNDI3MDAzLCAwLjUwNTAwMiwgMC41ODMyMTUiLCBcCi0gICAgICAgICAgIjAuMTM0ODI4LCAwLjIxMzcxMiwgMC4yNzY1NjgsIDAuMzU0ODA2LCAwLjQzMjg2MywgMC41MTExMTMsIDAuNTg5MjYyIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0MjEzOSwgMC4yMDUwNDgsIDAuMzM4MDksIDAuNTA1MTU1LCAwLjY3MjkzNywgMC44NDAyODQsIDEuMDA3NzgiLCBcCi0gICAgICAgICAgIjAuMDQyMTQxLCAwLjIwNTM0NiwgMC4zMzgyMywgMC41MDUxNzYsIDAuNjcyOTI2LCAwLjg0MDI3MSwgMS4wMDYwMSIsIFwKLSAgICAgICAgICAiMC4wNDIxNDEsIDAuMjA1MzQ2LCAwLjMzODIyNCwgMC41MDU3ODksIDAuNjcyOTU3LCAwLjg0MDI1NSwgMS4wMDU3NCIsIFwKLSAgICAgICAgICAiMC4wNDIwMDEsIDAuMjA1MjkyLCAwLjMzODcxLCAwLjUwNTIyNiwgMC42NzI4NDYsIDAuODQwMjY5LCAxLjAwNzY2IiwgXAotICAgICAgICAgICIwLjA0MjE3LCAwLjIwNTMwOSwgMC4zMzgxMjEsIDAuNTA1MTQ3LCAwLjY3MjgwNywgMC44NDAyNDMsIDEuMDA2MTQiLCBcCi0gICAgICAgICAgIjAuMDQyMTE4LCAwLjIwNTMyNSwgMC4zMzgxMDUsIDAuNTA1MTksIDAuNjcxOTYxLCAwLjg0MDIyNywgMS4wMDc1OCIsIFwKLSAgICAgICAgICAiMC4wNDIxNzYsIDAuMjA1MDQ3LCAwLjMzODEyNywgMC41MDUyMjQsIDAuNjcyNjY4LCAwLjgzODg3NCwgMS4wMDc1NiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTgzMDgsIDAuMTc1Mjk5LCAwLjIzNjEzMSwgMC4zMTI1OTEsIDAuMzg4MDQ1LCAwLjQ2NDMyNiwgMC41NDA2NjIiLCBcCi0gICAgICAgICAgIjAuMTA2NTU3LCAwLjE4MzQyOSwgMC4yNDQ0MTEsIDAuMzIwODAxLCAwLjM5Njc2OCwgMC40NzI4MzYsIDAuNTQ4OTAxIiwgXAotICAgICAgICAgICIwLjExNTg2MiwgMC4xOTI4OTIsIDAuMjUzNjA4LCAwLjMyOTc1NSwgMC40MDU2NjcsIDAuNDgyMTUzLCAwLjU1ODIzMSIsIFwKLSAgICAgICAgICAiMC4xMjM0NTIsIDAuMjAwNDksIDAuMjYxMjE5LCAwLjMzNzY1NSwgMC40MTM0NTgsIDAuNDg5NzIsIDAuNTY1ODI1IiwgXAotICAgICAgICAgICIwLjEyOTU2MywgMC4yMDY1NTIsIDAuMjY3MzQ0LCAwLjM0Mzc4NywgMC40MTk3NTUsIDAuNDk1ODQyLCAwLjU3MTg4NyIsIFwKLSAgICAgICAgICAiMC4xMzc0OCwgMC4yMTQ1NDUsIDAuMjc1MjQyLCAwLjM1MTcwNiwgMC40Mjc2OTksIDAuNTAzNzQsIDAuNTc5ODIiLCBcCi0gICAgICAgICAgIjAuMTQzNTI1LCAwLjIyMDYzNCwgMC4yODE3MiwgMC4zNTc0NDksIDAuNDMzOTUxLCAwLjUwOTg0NiwgMC41ODU1MTIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQwMTA5LCAwLjE5NTM5NiwgMC4zMjA2ODIsIDAuNDc4ODA1LCAwLjYzNjg0MSwgMC43OTQ2MDIsIDAuOTUyMzczIiwgXAotICAgICAgICAgICIwLjA0MDE0MSwgMC4xOTU0MjEsIDAuMzIxMTg0LCAwLjQ3ODkwOSwgMC42MzY5NzMsIDAuNzk0MTE2LCAwLjk1MjM4OSIsIFwKLSAgICAgICAgICAiMC4wNDAwOTMsIDAuMTk1NDMsIDAuMzIxMTcsIDAuNDc4OTM1LCAwLjYzNjk5LCAwLjc5NDc0NiwgMC45NTIzOTEiLCBcCi0gICAgICAgICAgIjAuMDQwMTMyLCAwLjE5NTQzMiwgMC4zMjExNjgsIDAuNDc5MDU0LCAwLjYzNjk5NCwgMC43OTQxLCAwLjk1MjM4MiIsIFwKLSAgICAgICAgICAiMC4wNDAxMDQsIDAuMTk0NjcsIDAuMzIwODMzLCAwLjQ3ODczOCwgMC42MzU4NzIsIDAuNzk0NzE2LCAwLjk1MjMyNSIsIFwKLSAgICAgICAgICAiMC4wNDAxNTksIDAuMTk1MDc0LCAwLjMyMTIwMywgMC40NzgzOTEsIDAuNjM2Nzk4LCAwLjc5Mzk1MywgMC45NTIyMTQiLCBcCi0gICAgICAgICAgIjAuMDQwMTM0LCAwLjE5NTQwNSwgMC4zMjEwMjcsIDAuNDc5MDExLCAwLjYzNjc1NiwgMC43OTQ5MjcsIDAuOTUyODM0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjI5OCwgMC4wMDYyOTMsIDAuMDA2MjgsIDAuMDA2MjcyLCAwLjAwNjI2NiwgMC4wMDYyNjMsIDAuMDA2MjYiLCBcCi0gICAgICAgICAgIjAuMDA2Mjg4LCAwLjAwNjI4NCwgMC4wMDYyNzIsIDAuMDA2MjYzLCAwLjAwNjI1NywgMC4wMDYyNTIsIDAuMDA2MjUyIiwgXAotICAgICAgICAgICIwLjAwNjMzMywgMC4wMDYzMzEsIDAuMDA2MzE4LCAwLjAwNjMwOCwgMC4wMDYzMDIsIDAuMDA2Mjk4LCAwLjAwNjI5NiIsIFwKLSAgICAgICAgICAiMC4wMDYzODMsIDAuMDA2MzgzLCAwLjAwNjM3LCAwLjAwNjM2LCAwLjAwNjM1MywgMC4wMDYzNDksIDAuMDA2MzQ3IiwgXAotICAgICAgICAgICIwLjAwNjQ0NiwgMC4wMDY0NDcsIDAuMDA2NDM0LCAwLjAwNjQyMywgMC4wMDY0MTYsIDAuMDA2NDEyLCAwLjAwNjQxIiwgXAotICAgICAgICAgICIwLjAwNjU0NSwgMC4wMDY1NDYsIDAuMDA2NTMyLCAwLjAwNjUyMiwgMC4wMDY1MTQsIDAuMDA2NTEsIDAuMDA2NTA2IiwgXAotICAgICAgICAgICIwLjAwNjY0LCAwLjAwNjY0NSwgMC4wMDY2MywgMC4wMDY2MzIsIDAuMDA2NjExLCAwLjAwNjYyLCAwLjAwNjYwMiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNzU0NywgMC4wMDc1OTEsIDAuMDA3NTk1LCAwLjAwNzU5NywgMC4wMDc2MDEsIDAuMDA3NTk2LCAwLjAwNzU5OSIsIFwKLSAgICAgICAgICAiMC4wMDc1NDUsIDAuMDA3NTg4LCAwLjAwNzU5MiwgMC4wMDc1OTQsIDAuMDA3NTk1LCAwLjAwNzU5NywgMC4wMDc1OTYiLCBcCi0gICAgICAgICAgIjAuMDA3NTk5LCAwLjAwNzY0MiwgMC4wMDc2NDYsIDAuMDA3NjQ4LCAwLjAwNzY0OSwgMC4wMDc2NSwgMC4wMDc2NSIsIFwKLSAgICAgICAgICAiMC4wMDc2NDUsIDAuMDA3Njg2LCAwLjAwNzY5LCAwLjAwNzY5MiwgMC4wMDc2OTMsIDAuMDA3NjkzLCAwLjAwNzY5MiIsIFwKLSAgICAgICAgICAiMC4wMDc3MjIsIDAuMDA3NzY0LCAwLjAwNzc2OSwgMC4wMDc3NywgMC4wMDc3NywgMC4wMDc3NywgMC4wMDc3NjkiLCBcCi0gICAgICAgICAgIjAuMDA3ODMzLCAwLjAwNzg3NCwgMC4wMDc4NzYsIDAuMDA3ODc4LCAwLjAwNzg3OCwgMC4wMDc4OCwgMC4wMDc4NzgiLCBcCi0gICAgICAgICAgIjAuMDA3OTM1LCAwLjAwNzk4NSwgMC4wMDc5ODksIDAuMDA3OTg0LCAwLjAwNzk3OSwgMC4wMDc5OTEsIDAuMDA3OTg3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihRTikgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjY2OTc1MjsKLSAgICBmdW5jdGlvbiA6ICJRQklOVCI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3NlbnNlIDogbm9uX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiByaXNpbmdfZWRnZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTEyNzk3LCAwLjE5MTExMywgMC4yNTM3MzUsIDAuMzMyMDYsIDAuNDEwMTY4LCAwLjQ4ODYxMywgMC41NjY4NzYiLCBcCi0gICAgICAgICAgIjAuMTIxMDUxLCAwLjE5OTI4MiwgMC4yNjE4OTUsIDAuMzQwMjUsIDAuNDE4NTA3LCAwLjQ5Njc5MywgMC41NzUwNzkiLCBcCi0gICAgICAgICAgIjAuMTMwMzU1LCAwLjIwODU2OCwgMC4yNzExOTEsIDAuMzQ5NDgxLCAwLjQyNzc3NiwgMC41MDYwNDEsIDAuNTg0MzM0IiwgXAotICAgICAgICAgICIwLjEzNzk0LCAwLjIxNjE2OCwgMC4yNzg3OTYsIDAuMzU3MDg4LCAwLjQzNTM1OCwgMC41MTM2MzgsIDAuNTkxOTM5IiwgXAotICAgICAgICAgICIwLjE0NDA1MiwgMC4yMjIyNTcsIDAuMjg0ODgsIDAuMzYzMTg4LCAwLjQ0MTQ0NSwgMC41MTk3MzUsIDAuNTk4MDE0IiwgXAotICAgICAgICAgICIwLjE1MTk1MywgMC4yMzAyNTUsIDAuMjkyODgzLCAwLjM3MTE4NSwgMC40NDk0NDgsIDAuNTI3NzI0LCAwLjYwNjAxNyIsIFwKLSAgICAgICAgICAiMC4xNTgwMDMsIDAuMjM2MzIzLCAwLjI5ODkxNywgMC4zNzcyMzksIDAuNDU1NTUyLCAwLjUzMzc4MSwgMC42MTIwNjciKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM5NzczLCAwLjIwNTA0NiwgMC4zMzgzMjMsIDAuNTA1MDcyLCAwLjY3MjE3MSwgMC44Mzg4MzMsIDEuMDA3MTIiLCBcCi0gICAgICAgICAgIjAuMDM5NzcxLCAwLjIwNTA3NiwgMC4zMzgzOTgsIDAuNTA1OTM0LCAwLjY3Mjk1NywgMC44NDAwNzIsIDEuMDA3MTciLCBcCi0gICAgICAgICAgIjAuMDM5NzY5LCAwLjIwNTA3NiwgMC4zMzgzOTEsIDAuNTA1Mjg3LCAwLjY3MjI5OSwgMC44NDAwNjksIDEuMDA3MTYiLCBcCi0gICAgICAgICAgIjAuMDM5NzYzLCAwLjIwNTA4MywgMC4zMzgzODksIDAuNTA1OTIyLCAwLjY3MjMxMiwgMC44NDAwNzIsIDEuMDA3MTYiLCBcCi0gICAgICAgICAgIjAuMDM5NzcxLCAwLjIwNDg0MSwgMC4zMzgzMywgMC41MDU5MzUsIDAuNjcyOTUzLCAwLjg0MDA1MywgMS4wMDcxNyIsIFwKLSAgICAgICAgICAiMC4wMzk3NjgsIDAuMjA0ODc5LCAwLjMzODQwNiwgMC41MDU5MDcsIDAuNjcyOTA1LCAwLjg0MDAyNSwgMS4wMDcwOSIsIFwKLSAgICAgICAgICAiMC4wMzk5MzYsIDAuMjA1MDYzLCAwLjMzODMzNSwgMC41MDU4NjUsIDAuNjcyOTI0LCAwLjgzOTk3NywgMS4wMDcwOCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDU3NTgsIDAuMTgxODQzLCAwLjI0MjY3NiwgMC4zMTg3NTgsIDAuMzk0NzI3LCAwLjQ3MDc0OCwgMC41NDY3MzIiLCBcCi0gICAgICAgICAgIjAuMTEzOTY2LCAwLjE5MDA2LCAwLjI1MDg4OSwgMC4zMjY5NjEsIDAuNDAyOTMyLCAwLjQ3ODk1MSwgMC41NTQ4NDciLCBcCi0gICAgICAgICAgIjAuMTIzMjMsIDAuMTk5MzIyLCAwLjI2MDE1MSwgMC4zMzYxNiwgMC40MTIxODUsIDAuNDg4MjEzLCAwLjU2NDA1NyIsIFwKLSAgICAgICAgICAiMC4xMzA3LCAwLjIwNjgsIDAuMjY3NjI0LCAwLjM0MzY4NSwgMC40MTk2NTksIDAuNDk1NjY5LCAwLjU3MTcxOSIsIFwKLSAgICAgICAgICAiMC4xMzY2NTQsIDAuMjEyNzUzLCAwLjI3MzU4MSwgMC4zNDk2NDcsIDAuNDI1NjE2LCAwLjUwMTYxOCwgMC41Nzc2MjciLCBcCi0gICAgICAgICAgIjAuMTQ0NTY4LCAwLjIyMDYwOSwgMC4yODE0MzgsIDAuMzU3NDkyLCAwLjQzMzUzLCAwLjUwOTQ1OCwgMC41ODU0OTIiLCBcCi0gICAgICAgICAgIjAuMTUwNTk4LCAwLjIyNjY3OSwgMC4yODc1MTIsIDAuMzYzNTMyLCAwLjQzOTUyLCAwLjUxNTU1OSwgMC41OTE1NjciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM4MDA0LCAwLjE5Mzc3MSwgMC4zMTk4MzUsIDAuNDc3NzUsIDAuNjM2NDkxLCAwLjc5NDUwOCwgMC45NTI1NTYiLCBcCi0gICAgICAgICAgIjAuMDM4MDAzLCAwLjE5NDAzMSwgMC4zMTk5MDcsIDAuNDc3NzU4LCAwLjYzNjQ4MiwgMC43OTQ0OTgsIDAuOTUxNDc3IiwgXAotICAgICAgICAgICIwLjAzODAwMywgMC4xOTQwMzEsIDAuMzE5OTA0LCAwLjQ3ODQ1NCwgMC42MzY1MDksIDAuNzk0NDkyLCAwLjk1MDk0NiIsIFwKLSAgICAgICAgICAiMC4wMzgwMDIsIDAuMTkzOTgxLCAwLjMyMDM3LCAwLjQ3NzQ2OSwgMC42MzY0NDgsIDAuNzk0NDc4LCAwLjk1MjU3OCIsIFwKLSAgICAgICAgICAiMC4wMzgwMDQsIDAuMTkzOTksIDAuMzE5ODI5LCAwLjQ3NzczMSwgMC42MzY0NDcsIDAuNzk0NDY0LCAwLjk1MTU2MyIsIFwKLSAgICAgICAgICAiMC4wMzgwMTcsIDAuMTkzOTk3LCAwLjMxOTgzNCwgMC40Nzc3NDgsIDAuNjM1NDc0LCAwLjc5NDM2NiwgMC45NTIzOTIiLCBcCi0gICAgICAgICAgIjAuMDM4MDA0LCAwLjE5Mzc1NSwgMC4zMTk4MzIsIDAuNDc3NDY4LCAwLjYzNjI5MywgMC43OTMyMzcsIDAuOTUyMzg0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNzU0NywgMC4wMDc1OTEsIDAuMDA3NTk1LCAwLjAwNzU5NywgMC4wMDc2MDEsIDAuMDA3NTk2LCAwLjAwNzU5OSIsIFwKLSAgICAgICAgICAiMC4wMDc1NDUsIDAuMDA3NTg4LCAwLjAwNzU5MiwgMC4wMDc1OTQsIDAuMDA3NTk1LCAwLjAwNzU5NywgMC4wMDc1OTYiLCBcCi0gICAgICAgICAgIjAuMDA3NTk5LCAwLjAwNzY0MiwgMC4wMDc2NDYsIDAuMDA3NjQ4LCAwLjAwNzY0OSwgMC4wMDc2NSwgMC4wMDc2NSIsIFwKLSAgICAgICAgICAiMC4wMDc2NDUsIDAuMDA3Njg2LCAwLjAwNzY5LCAwLjAwNzY5MiwgMC4wMDc2OTMsIDAuMDA3NjkzLCAwLjAwNzY5MiIsIFwKLSAgICAgICAgICAiMC4wMDc3MjIsIDAuMDA3NzY0LCAwLjAwNzc2OSwgMC4wMDc3NywgMC4wMDc3NywgMC4wMDc3NywgMC4wMDc3NjkiLCBcCi0gICAgICAgICAgIjAuMDA3ODMzLCAwLjAwNzg3NCwgMC4wMDc4NzYsIDAuMDA3ODc4LCAwLjAwNzg3OCwgMC4wMDc4OCwgMC4wMDc4NzgiLCBcCi0gICAgICAgICAgIjAuMDA3OTM1LCAwLjAwNzk4NSwgMC4wMDc5ODksIDAuMDA3OTg0LCAwLjAwNzk3OSwgMC4wMDc5OTEsIDAuMDA3OTg3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2Mjk4LCAwLjAwNjI5MywgMC4wMDYyOCwgMC4wMDYyNzIsIDAuMDA2MjY2LCAwLjAwNjI2MywgMC4wMDYyNiIsIFwKLSAgICAgICAgICAiMC4wMDYyODgsIDAuMDA2Mjg0LCAwLjAwNjI3MiwgMC4wMDYyNjMsIDAuMDA2MjU3LCAwLjAwNjI1MiwgMC4wMDYyNTIiLCBcCi0gICAgICAgICAgIjAuMDA2MzMzLCAwLjAwNjMzMSwgMC4wMDYzMTgsIDAuMDA2MzA4LCAwLjAwNjMwMiwgMC4wMDYyOTgsIDAuMDA2Mjk2IiwgXAotICAgICAgICAgICIwLjAwNjM4MywgMC4wMDYzODMsIDAuMDA2MzcsIDAuMDA2MzYsIDAuMDA2MzUzLCAwLjAwNjM0OSwgMC4wMDYzNDciLCBcCi0gICAgICAgICAgIjAuMDA2NDQ2LCAwLjAwNjQ0NywgMC4wMDY0MzQsIDAuMDA2NDIzLCAwLjAwNjQxNiwgMC4wMDY0MTIsIDAuMDA2NDEiLCBcCi0gICAgICAgICAgIjAuMDA2NTQ1LCAwLjAwNjU0NiwgMC4wMDY1MzIsIDAuMDA2NTIyLCAwLjAwNjUxNCwgMC4wMDY1MSwgMC4wMDY1MDYiLCBcCi0gICAgICAgICAgIjAuMDA2NjQsIDAuMDA2NjQ1LCAwLjAwNjYzLCAwLjAwNjYzMiwgMC4wMDY2MTEsIDAuMDA2NjIsIDAuMDA2NjAyIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihSTikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjIzNDE0OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYyMzQxNDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2MjMzNzM7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA3ODM2LCAwLjAwNzg0NCwgMC4wMDc5MjcsIDAuMDA4MDQxLCAwLjAwODE2NywgMC4wMDgzOTYsIDAuMDA4NTkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDcwNTgsIDAuMDA3MDcsIDAuMDA3MTUxLCAwLjAwNzI2MywgMC4wMDczOTcsIDAuMDA3NjA5LCAwLjAwNzgwNCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRCYhRSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fRV9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjA4MTI1LCAtMC4wNywgLTAuMDcsIC0wLjA2Mzc1LCAtMC4wNjM3NSwgLTAuMDYsIC0wLjA1NzUiLCBcCi0gICAgICAgICAgIi0wLjA4NjI1LCAtMC4wODEyNSwgLTAuMDc1LCAtMC4wNjg3NSwgLTAuMDY4NzUsIC0wLjA2NSwgLTAuMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDkyNSwgLTAuMDg3NSwgLTAuMDgxMjUsIC0wLjA3NSwgLTAuMDc1LCAtMC4wNzEyNSwgLTAuMDY4NzUiLCBcCi0gICAgICAgICAgIi0wLjA5MjUsIC0wLjA4NzUsIC0wLjA4NzUsIC0wLjA4MTI1LCAtMC4wODEyNSwgLTAuMDc3NSwgLTAuMDc1IiwgXAotICAgICAgICAgICItMC4wOTg3NSwgLTAuMDkzNzUsIC0wLjA4NzUsIC0wLjA4NzUsIC0wLjA4MTI1LCAtMC4wNzc1LCAtMC4wNzUiLCBcCi0gICAgICAgICAgIi0wLjEwMjUsIC0wLjA5NzUsIC0wLjA5MTI1LCAtMC4wOTEyNSwgLTAuMDg1LCAtMC4wODEyNSwgLTAuMDc4NzUiLCBcCi0gICAgICAgICAgIi0wLjEwNSwgLTAuMSwgLTAuMDkzNzUsIC0wLjA5Mzc1LCAtMC4wODc1LCAtMC4wODM3NSwgLTAuMDgxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiRCZFIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMV9BTl9FX0VRXzEgPT0gMSdiMSI7Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDE4NzUsIC0wLjAwNzUsIC0wLjAwMTI1LCAwLjAwNSwgMC4wMTEyNSwgMC4wMTUsIDAuMDIzNzUiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAsIDAuMDA2MjUsIDAuMDEsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAyNSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAsIDAuMDAzNzUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgLTAuMDAyNSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDEyNSwgLTAuMDAyNSwgMCIsIFwKLSAgICAgICAgICAiLTAuMDQsIC0wLjAzNSwgLTAuMDI4NzUsIC0wLjAyMjUsIC0wLjAxNjI1LCAtMC4wMDYyNSwgLTAuMDAzNzUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDA4NzUsIC0wLjAwNjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRCYhRSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fRV9FUV8wID09IDEnYjEiOwotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0Mzc1LCAwLjAzODc1LCAwLjAyNjI1LCAwLjAyLCAwLjAxMzc1LCAwLjAwMzc1LCAwLjAwMTI1IiwgXAotICAgICAgICAgICIwLjA1NSwgMC4wNDM3NSwgMC4wMzEyNSwgMC4wMjUsIDAuMDE4NzUsIDAuMDE1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICIwLjA2MTI1LCAwLjA1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDI1LCAwLjAxNSwgMC4wMTI1IiwgXAotICAgICAgICAgICIwLjA2MTI1LCAwLjA1NjI1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDIxMjUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMDY3NSwgMC4wNTYyNSwgMC4wNSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyNzUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMDcxMjUsIDAuMDYsIDAuMDUzNzUsIDAuMDQxMjUsIDAuMDM1LCAwLjAzMTI1LCAwLjAyMjUiLCBcCi0gICAgICAgICAgIjAuMDczNzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNSwgMC4wNDM3NSwgMC4wMzM3NSwgMC4wMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIkQmRSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzFfQU5fRV9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEsIDAuMDg4NzUsIDAuMDgyNSwgMC4wODI1LCAwLjA3NjI1LCAwLjA3MjUsIDAuMDciLCBcCi0gICAgICAgICAgIjAuMTA1LCAwLjEsIDAuMDkzNzUsIDAuMDg3NSwgMC4wODc1LCAwLjA4Mzc1LCAwLjA3NSIsIFwKLSAgICAgICAgICAiMC4xMTEyNSwgMC4xMDYyNSwgMC4xLCAwLjA5Mzc1LCAwLjA4NzUsIDAuMDgzNzUsIDAuMDgxMjUiLCBcCi0gICAgICAgICAgIjAuMTE3NSwgMC4xMDYyNSwgMC4xLCAwLjEsIDAuMDkzNzUsIDAuMDksIDAuMDg3NSIsIFwKLSAgICAgICAgICAiMC4xMTc1LCAwLjExMjUsIDAuMTA2MjUsIDAuMSwgMC4xLCAwLjA5NjI1LCAwLjA5Mzc1IiwgXAotICAgICAgICAgICIwLjEyMTI1LCAwLjExNjI1LCAwLjExLCAwLjEwMzc1LCAwLjEwMzc1LCAwLjEsIDAuMDk3NSIsIFwKLSAgICAgICAgICAiMC4xMjM3NSwgMC4xMTg3NSwgMC4xMTI1LCAwLjEwNjI1LCAwLjEwNjI1LCAwLjEwMjUsIDAuMSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogU0VERkZIUVgxICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoU0VERkZIUVgxKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDEuNDM3NzQ7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgZmYgKE4zMCxRQklOVCkgewotICAgIG5leHRfc3RhdGUgOiAiKChTRSBTSSkgKyAoIVNFICgoRSBEKSArICghRSAoISghTjMwKSkpKSkpIjsKLSAgICBjbG9ja2VkX29uIDogIkNLIjsKLSAgfQotICBwaW4oQ0spICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY4MTA2ODsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2ODEwNjg7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjgxMDA4OwotICAgIGNsb2NrIDogdHJ1ZTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDQxMDcsIDAuMDA0MTA2LCAwLjAwNDE3NiwgMC4wMDQyODEsIDAuMDA0MzgxLCAwLjAwNDU5LCAwLjAwNDc4OSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwODk1NiwgMC4wMDg5NjIsIDAuMDA5MDcyLCAwLjAwOTE2OSwgMC4wMDkzMTYsIDAuMDA5NTk1LCAwLjAwOTgzNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQmIUUmU0UmIVNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9FX0VRXzBfQU5fU0VfRVFfMV9BTl9TSV9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMTA0NTI3LCAwLjExMjcyMSwgMC4xMjE5NDksIDAuMTI5MTk1LCAwLjEzNTA1NCwgMC4xNDI4MzYsIDAuMTQ4NjAzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wNjMwNjQsIDAuMDcxMDgxLCAwLjA4MDQxNSwgMC4wODc0MzcsIDAuMDkzMjA2LCAwLjEwMDU3LCAwLjEwNjA0NCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwOTA2MzkyOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDkwNDEyMTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA5MDYzOTI7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA1MzUsIDAuMDA1MzEzLCAwLjAwNTMyLCAwLjAwNTM3NSwgMC4wMDU0MzYsIDAuMDA1NTg2LCAwLjAwNTcyNiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAxMDQ0MSwgMC4wMTA0MTksIDAuMDEwNDI3LCAwLjAxMDQ3NiwgMC4wMTA1MzUsIDAuMDEwNjczLCAwLjAxMDgxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIkUmIVNFIjsKLSAgICAgIHNkZl9jb25kIDogIkVfRVFfMV9BTl9TRV9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjA1LCAtMC4wNDUsIC0wLjA0NSwgLTAuMDM4NzUsIC0wLjAzODc1LCAtMC4wMzUsIC0wLjAzMjUiLCBcCi0gICAgICAgICAgIi0wLjA2MTI1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDQsIC0wLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjA2NzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNTYyNSwgLTAuMDU2MjUsIC0wLjA1MjUsIC0wLjA1IiwgXAotICAgICAgICAgICItMC4wNzM3NSwgLTAuMDY4NzUsIC0wLjA2ODc1LCAtMC4wNjI1LCAtMC4wNjI1LCAtMC4wNTg3NSwgLTAuMDU2MjUiLCBcCi0gICAgICAgICAgIi0wLjA4LCAtMC4wNzUsIC0wLjA3NSwgLTAuMDY4NzUsIC0wLjA2ODc1LCAtMC4wNjUsIC0wLjA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA5LCAtMC4wODUsIC0wLjA4NSwgLTAuMDc4NzUsIC0wLjA3ODc1LCAtMC4wNzUsIC0wLjA3MjUiLCBcCi0gICAgICAgICAgIi0wLjA5ODc1LCAtMC4wOTM3NSwgLTAuMDg3NSwgLTAuMDg3NSwgLTAuMDg3NSwgLTAuMDgzNzUsIC0wLjA4MTI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDI1LCAtMC4wMiwgLTAuMDEzNzUsIC0wLjAwNzUsIC0wLjAwMTI1LCAwLjAwMjUsIDAuMDA1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDEyNSwgLTAuMDAyNSwgMCIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxODc1LCAtMC4wMDg3NSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDE1LCAtMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDMxMjUsIC0wLjAyMTI1LCAtMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDU4NzUsIC0wLjA1Mzc1LCAtMC4wNDc1LCAtMC4wNDEyNSwgLTAuMDM1LCAtMC4wMzEyNSwgLTAuMDI4NzUiLCBcCi0gICAgICAgICAgIi0wLjA2MTI1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDQsIC0wLjAzMTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJFJiFTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJFX0VRXzFfQU5fU0VfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzUsIDAuMDcsIDAuMDYzNzUsIDAuMDU3NSwgMC4wNTc1LCAwLjA1Mzc1LCAwLjA1MTI1IiwgXAotICAgICAgICAgICIwLjA4LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA2MjUsIDAuMDU4NzUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIjAuMDkyNSwgMC4wODEyNSwgMC4wNzUsIDAuMDc1LCAwLjA2ODc1LCAwLjA2NSwgMC4wNjI1IiwgXAotICAgICAgICAgICIwLjA5ODc1LCAwLjA4NzUsIDAuMDgxMjUsIDAuMDgxMjUsIDAuMDc1LCAwLjA3MTI1LCAwLjA2ODc1IiwgXAotICAgICAgICAgICIwLjEwNSwgMC4xLCAwLjA5Mzc1LCAwLjA4NzUsIDAuMDg3NSwgMC4wODM3NSwgMC4wODEyNSIsIFwKLSAgICAgICAgICAiMC4xMTUsIDAuMTEsIDAuMTAzNzUsIDAuMDk3NSwgMC4wOTc1LCAwLjA5Mzc1LCAwLjA5MTI1IiwgXAotICAgICAgICAgICIwLjEyMzc1LCAwLjExMjUsIDAuMTA2MjUsIDAuMTA2MjUsIDAuMSwgMC4xMDI1LCAwLjEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjI1LCAwLjA1MTI1LCAwLjA0NSwgMC4wMzg3NSwgMC4wMzI1LCAwLjAyMjUsIDAuMDIiLCBcCi0gICAgICAgICAgIjAuMDY3NSwgMC4wNTYyNSwgMC4wNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAyNzUsIDAuMDI1IiwgXAotICAgICAgICAgICIwLjA3Mzc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDUsIDAuMDQzNzUsIDAuMDQsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMDgsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNSwgMC4wNDYyNSwgMC4wMzc1IiwgXAotICAgICAgICAgICIwLjA4NjI1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1MjUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMDk2MjUsIDAuMDg1LCAwLjA3ODc1LCAwLjA3MjUsIDAuMDY2MjUsIDAuMDU2MjUsIDAuMDUzNzUiLCBcCi0gICAgICAgICAgIjAuMDk4NzUsIDAuMDkzNzUsIDAuMDgxMjUsIDAuMDc1LCAwLjA3NSwgMC4wNjUsIDAuMDYyNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNTEyNzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE1MTE1NzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE1MTI3OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwOTY2MywgMC4wMDk2NjMsIDAuMDA5NzMsIDAuMDA5ODM1LCAwLjAwOTk5OCwgMC4wMTAyMTcsIDAuMDEwNDE1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDExNjM4LCAwLjAxMTY0LCAwLjAxMTc2LCAwLjAxMTkzNSwgMC4wMTIxNTUsIDAuMDEyNTc3LCAwLjAxMjk0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJTRSA9PSAxJ2IwIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wNTYyNSwgLTAuMDQ1LCAtMC4wMzg3NSwgLTAuMDMyNSwgLTAuMDI2MjUsIC0wLjAyMjUsIC0wLjAyIiwgXAotICAgICAgICAgICItMC4wNjEyNSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDI3NSwgLTAuMDI1IiwgXAotICAgICAgICAgICItMC4wNjc1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wNCwgLTAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjA4LCAtMC4wNjg3NSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNCwgLTAuMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDgsIC0wLjA3NSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA1NjI1LCAtMC4wNDYyNSwgLTAuMDQzNzUiLCBcCi0gICAgICAgICAgIi0wLjA5LCAtMC4wNzg3NSwgLTAuMDcyNSwgLTAuMDY2MjUsIC0wLjA2LCAtMC4wNSwgLTAuMDQ3NSIsIFwKLSAgICAgICAgICAiLTAuMDkyNSwgLTAuMDgxMjUsIC0wLjA3NSwgLTAuMDY4NzUsIC0wLjA2MjUsIC0wLjA1ODc1LCAtMC4wNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAyNSwgLTAuMDEzNzUsIC0wLjAwNzUsIC0wLjAwMTI1LCAtMC4wMDEyNSwgMC4wMDg3NSwgMC4wMTEyNSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAtMC4wMDI1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxODc1LCAtMC4wMDg3NSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wNDM3NSwgLTAuMDMxMjUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAyMTI1LCAtMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAyNzUsIC0wLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDY1LCAtMC4wNTM3NSwgLTAuMDQ3NSwgLTAuMDQ3NSwgLTAuMDQxMjUsIC0wLjAzNzUsIC0wLjAzNSIsIFwKLSAgICAgICAgICAiLTAuMDY3NSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDQ2MjUsIC0wLjAzNzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJTRSA9PSAxJ2IwIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjg3NSwgMC4wNjM3NSwgMC4wNTc1LCAwLjA1MTI1LCAwLjA1MTI1LCAwLjA0NzUsIDAuMDQ1IiwgXAotICAgICAgICAgICIwLjA4LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNTI1LCAwLjA1IiwgXAotICAgICAgICAgICIwLjA4NjI1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjg3NSwgMC4wNjUsIDAuMDYyNSIsIFwKLSAgICAgICAgICAiMC4wOTg3NSwgMC4wODc1LCAwLjA4MTI1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNzEyNSwgMC4wNjg3NSIsIFwKLSAgICAgICAgICAiMC4xMDUsIDAuMSwgMC4wOTM3NSwgMC4wODc1LCAwLjA4NzUsIDAuMDgzNzUsIDAuMDgxMjUiLCBcCi0gICAgICAgICAgIjAuMTIxMjUsIDAuMTEsIDAuMTAzNzUsIDAuMTAzNzUsIDAuMDk3NSwgMC4wOTM3NSwgMC4wOTEyNSIsIFwKLSAgICAgICAgICAiMC4xMywgMC4xMTg3NSwgMC4xMTI1LCAwLjExMjUsIDAuMTA2MjUsIDAuMTAyNSwgMC4xIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY4NzUsIDAuMDYzNzUsIDAuMDYzNzUsIDAuMDU3NSwgMC4wNTc1LCAwLjA1Mzc1LCAwLjA1MTI1IiwgXAotICAgICAgICAgICIwLjA4LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1ODc1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICIwLjA4NjI1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNzUsIDAuMDY4NzUsIDAuMDcxMjUsIDAuMDY4NzUiLCBcCi0gICAgICAgICAgIjAuMDkyNSwgMC4wODc1LCAwLjA4MTI1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNzEyNSwgMC4wNjg3NSIsIFwKLSAgICAgICAgICAiMC4wOTI1LCAwLjA4NzUsIDAuMDg3NSwgMC4wODEyNSwgMC4wODEyNSwgMC4wNzc1LCAwLjA3NSIsIFwKLSAgICAgICAgICAiMC4xMDI1LCAwLjA5NzUsIDAuMDkxMjUsIDAuMDkxMjUsIDAuMDg1LCAwLjA4MTI1LCAwLjA3ODc1IiwgXAotICAgICAgICAgICIwLjEwNSwgMC4xLCAwLjA5Mzc1LCAwLjA5Mzc1LCAwLjA4NzUsIDAuMDksIDAuMDg3NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjMzOTQ0MzsKLSAgICBmdW5jdGlvbiA6ICJOMzAiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5vbl91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcmlzaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5MjY4OSwgMC4xMTExNCwgMC4yMTU1MTgsIDAuMzA3NTQ0LCAwLjQzMDM1NSwgMC42NzU4MjUsIDAuODI5MzA3IiwgXAotICAgICAgICAgICIwLjEwMDgxMiwgMC4xMTkyNjIsIDAuMjIzNjQyLCAwLjMxNTY3MSwgMC40Mzg0NjIsIDAuNjgzOTU0LCAwLjgzNzQ0MiIsIFwKLSAgICAgICAgICAiMC4xMDk5ODksIDAuMTI4NDQzLCAwLjIzMjgyMywgMC4zMjQ4NDYsIDAuNDQ3NjQsIDAuNjkzMTM1LCAwLjg0NjYwMiIsIFwKLSAgICAgICAgICAiMC4xMTcxMTEsIDAuMTM1NTY3LCAwLjIzOTkzOSwgMC4zMzE5NjgsIDAuNDU0NzU3LCAwLjcwMDI4NCwgMC44NTM2MTEiLCBcCi0gICAgICAgICAgIjAuMTIyODM1LCAwLjE0MTI4OCwgMC4yNDU2NzEsIDAuMzM3NjksIDAuNDYwNTA0LCAwLjcwNTkyMywgMC44NTk0NTgiLCBcCi0gICAgICAgICAgIjAuMTMwMzQ4LCAwLjE0ODgxMiwgMC4yNTMyMTQsIDAuMzQ1MjYsIDAuNDY3OTM0LCAwLjcxMzQyMywgMC44NjY4MzkiLCBcCi0gICAgICAgICAgIjAuMTM2MDAzLCAwLjE1NDQ1OCwgMC4yNTg3NzgsIDAuMzUwODc1LCAwLjQ3MzYwNywgMC43MTkwMDIsIDAuODcyNDk4Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3MTM4OSwgMC4xMDk0NjEsIDAuMzI4NTE1LCAwLjUyMjIzNiwgMC43ODAzMzEsIDEuMjk3NCwgMS42MjAyMSIsIFwKLSAgICAgICAgICAiMC4wNzEzODYsIDAuMTA5NDY0LCAwLjMyODUxNCwgMC41MjIyMzgsIDAuNzgwMzMsIDEuMjk2MTcsIDEuNjIwMjIiLCBcCi0gICAgICAgICAgIjAuMDcxMzkyLCAwLjEwOTUzNiwgMC4zMjg1MTUsIDAuNTIxOTQ5LCAwLjc4MDY0NiwgMS4yOTc1NCwgMS42MTg2MSIsIFwKLSAgICAgICAgICAiMC4wNzE0MDMsIDAuMTA5NTM4LCAwLjMyODQ5MiwgMC41MjE5NTcsIDAuNzgwNDA4LCAxLjI5NTQ5LCAxLjYyMDU0IiwgXAotICAgICAgICAgICIwLjA3MTQwNiwgMC4xMDk1MzgsIDAuMzI4NDg3LCAwLjUyMjIwNCwgMC43ODA2MjgsIDEuMjk3NCwgMS42MjAyNCIsIFwKLSAgICAgICAgICAiMC4wNzEzOTMsIDAuMTA5NDY2LCAwLjMyODQyNCwgMC41MjE5MTksIDAuNzc5ODUzLCAxLjI5NTc4LCAxLjYyMDEiLCBcCi0gICAgICAgICAgIjAuMDcxNjExLCAwLjEwOTQyOSwgMC4zMjgyOSwgMC41MjIxOSwgMC43ODAzNSwgMS4yOTcxOCwgMS42MjAzNiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDQ1MjcsIDAuMTIyNjksIDAuMjI1MzE0LCAwLjMxNTgxNywgMC40MzY1MDcsIDAuNjc3ODU0LCAwLjgyODcwMiIsIFwKLSAgICAgICAgICAiMC4xMTI3MjEsIDAuMTMwODg0LCAwLjIzMzUwNywgMC4zMjQwMTIsIDAuNDQ0Njk1LCAwLjY4NjA1NywgMC44MzY4OTMiLCBcCi0gICAgICAgICAgIjAuMTIxOTQ5LCAwLjE0MDExMiwgMC4yNDI3MzMsIDAuMzMzMjM3LCAwLjQ1MzkzMSwgMC42OTUyNzQsIDAuODQ2MTgzIiwgXAotICAgICAgICAgICIwLjEyOTE5NSwgMC4xNDczNTksIDAuMjQ5OTc5LCAwLjM0MDQ5NywgMC40NjEyMTYsIDAuNzAyNTIsIDAuODUzNDU5IiwgXAotICAgICAgICAgICIwLjEzNTA1NCwgMC4xNTMyMTcsIDAuMjU1ODY0LCAwLjM0NjM0MiwgMC40NjcwMzMsIDAuNzA4MzkyLCAwLjg1OTIyNiIsIFwKLSAgICAgICAgICAiMC4xNDI4NzUsIDAuMTYxMDM4LCAwLjI2MzY1MSwgMC4zNTQxNiwgMC40NzQ4NTUsIDAuNzE2MTgyLCAwLjg2NzA3IiwgXAotICAgICAgICAgICIwLjE0ODYwMywgMC4xNjY3NjcsIDAuMjY5NDE4LCAwLjM1OTkxNywgMC40ODA1ODUsIDAuNzIxOTgzLCAwLjg3Mjc2MSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjg4OTMsIDAuMTA1NTY4LCAwLjMxNjE3MiwgMC41MDI2ODEsIDAuNzUwNTIyLCAxLjI0NjgsIDEuNTYwMzciLCBcCi0gICAgICAgICAgIjAuMDY4ODkyLCAwLjEwNTU0OSwgMC4zMTYxNzcsIDAuNTAyNDc2LCAwLjc1MTUwOCwgMS4yNDcxOSwgMS41NjAyNyIsIFwKLSAgICAgICAgICAiMC4wNjg4OTMsIDAuMTA1NTcyLCAwLjMxNjE3MiwgMC41MDI2ODYsIDAuNzUxNDgyLCAxLjI0NjgxLCAxLjU2MDYiLCBcCi0gICAgICAgICAgIjAuMDY4ODk0LCAwLjEwNTU3MiwgMC4zMTYxNzIsIDAuNTAyNzU1LCAwLjc1MTQ4OSwgMS4yNDY3OSwgMS41NjAyNyIsIFwKLSAgICAgICAgICAiMC4wNjg4OTYsIDAuMTA1NTY0LCAwLjMxNjE2NSwgMC41MDI2MzYsIDAuNzUxMTI3LCAxLjI0OTM5LCAxLjU2MDI2IiwgXAotICAgICAgICAgICIwLjA2ODkwNiwgMC4xMDU1NjMsIDAuMzE2MTU1LCAwLjUwMjY4MiwgMC43NTEwMSwgMS4yNDc3OCwgMS41NjAzIiwgXAotICAgICAgICAgICIwLjA2ODk2NCwgMC4xMDUzMzUsIDAuMzE1NzI2LCAwLjUwMjYxMywgMC43NTE2MjIsIDEuMjQ3NTYsIDEuNTYwMyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTMzOCwgMC4wMTMzOSwgMC4wMTM0LCAwLjAxMzQwMywgMC4wMTM0MDQsIDAuMDEzNDA2LCAwLjAxMzQwNiIsIFwKLSAgICAgICAgICAiMC4wMTMzNjgsIDAuMDEzMzc4LCAwLjAxMzM4OSwgMC4wMTMzOSwgMC4wMTMzOTIsIDAuMDEzMzkzLCAwLjAxMzM5MyIsIFwKLSAgICAgICAgICAiMC4wMTM0NDcsIDAuMDEzNDU1LCAwLjAxMzQ2NiwgMC4wMTM0NywgMC4wMTM0NzEsIDAuMDEzNDczLCAwLjAxMzQ3MiIsIFwKLSAgICAgICAgICAiMC4wMTM1NTEsIDAuMDEzNTYxLCAwLjAxMzU3MiwgMC4wMTM1NzQsIDAuMDEzNTc1LCAwLjAxMzU3NiwgMC4wMTM1NzgiLCBcCi0gICAgICAgICAgIjAuMDEzNjk3LCAwLjAxMzcwNywgMC4wMTM3MTgsIDAuMDEzNzIsIDAuMDEzNzIzLCAwLjAxMzcyNCwgMC4wMTM3MjQiLCBcCi0gICAgICAgICAgIjAuMDEzODkzLCAwLjAxMzkwNiwgMC4wMTM5MTYsIDAuMDEzOTIsIDAuMDEzOTIxLCAwLjAxMzkyMywgMC4wMTM5MjMiLCBcCi0gICAgICAgICAgIjAuMDE0MDgxLCAwLjAxNDA5LCAwLjAxNDE0MywgMC4wMTQxNDUsIDAuMDE0MTQ3LCAwLjAxNDE1MSwgMC4wMTQxNTIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTM2OSwgMC4wMTM3MDEsIDAuMDEzNzE4LCAwLjAxMzcyMiwgMC4wMTM3MjMsIDAuMDEzNzI1LCAwLjAxMzcyNSIsIFwKLSAgICAgICAgICAiMC4wMTM2OTYsIDAuMDEzNzA3LCAwLjAxMzcyMywgMC4wMTM3MjcsIDAuMDEzNzI4LCAwLjAxMzczMSwgMC4wMTM3MyIsIFwKLSAgICAgICAgICAiMC4wMTM4MDIsIDAuMDEzODE0LCAwLjAxMzgzLCAwLjAxMzgzNCwgMC4wMTM4MzYsIDAuMDEzODM3LCAwLjAxMzgzNyIsIFwKLSAgICAgICAgICAiMC4wMTM5MiwgMC4wMTM5MzIsIDAuMDEzOTQ4LCAwLjAxMzk1MSwgMC4wMTM5NTMsIDAuMDEzOTU0LCAwLjAxMzk1NSIsIFwKLSAgICAgICAgICAiMC4wMTQwODIsIDAuMDE0MDkxLCAwLjAxNDEwOCwgMC4wMTQxMSwgMC4wMTQxMTIsIDAuMDE0MTEzLCAwLjAxNDExNCIsIFwKLSAgICAgICAgICAiMC4wMTQzNCwgMC4wMTQzNTksIDAuMDE0MzcxLCAwLjAxNDM2NiwgMC4wMTQzNjcsIDAuMDE0MzY5LCAwLjAxNDM2OSIsIFwKLSAgICAgICAgICAiMC4wMTQ1NDMsIDAuMDE0NTIyLCAwLjAxNDU2NCwgMC4wMTQ1NzMsIDAuMDE0NTM5LCAwLjAxNDU3NCwgMC4wMTQ1NzQiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFNFKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE0ODY3MzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE0ODY2NTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE0ODY3MzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDcwOTksIDAuMDA3MTE0LCAwLjAwNzIxLCAwLjAwNzMwNCwgMC4wMDc0MjUsIDAuMDA3NjY0LCAwLjAwNzg2NiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwOTAxMiwgMC4wMDg5OTMsIDAuMDA5MTA4LCAwLjAwOTI5NiwgMC4wMDk1MTQsIDAuMDA5OTE1LCAwLjAxMDI4MSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRCYhRSYhU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX0VfRVFfMF9BTl9TSV9FUV8wID09IDEnYjEiOwotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAzNzUsIC0wLjAzMjUsIC0wLjAyNjI1LCAtMC4wMjYyNSwgLTAuMDIsIC0wLjAxNjI1LCAtMC4wMTM3NSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDM3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAzMTI1LCAtMC4wMjc1LCAtMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjA1NSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDMzNzUsIC0wLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wNjEyNSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjA0NjI1LCAtMC4wNDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDY3NSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDQ2MjUsIC0wLjA0Mzc1IiwgXAotICAgICAgICAgICItMC4wNzEyNSwgLTAuMDY2MjUsIC0wLjA2LCAtMC4wNiwgLTAuMDYsIC0wLjA1NjI1LCAtMC4wNTM3NSIsIFwKLSAgICAgICAgICAiLTAuMDczNzUsIC0wLjA2ODc1LCAtMC4wNjg3NSwgLTAuMDYyNSwgLTAuMDYyNSwgLTAuMDU4NzUsIC0wLjA1NjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEJiFFJlNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9FX0VRXzBfQU5fU0lfRVFfMSA9PSAxJ2IxIjsKLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMDYyNSwgLTAuMDAxMjUsIDAuMDA1LCAwLjAxMTI1LCAwLjAxNzUsIDAuMDIxMjUsIDAuMDMiLCBcCi0gICAgICAgICAgIi0wLjAxMTI1LCAtMC4wMDYyNSwgMCwgMC4wMDYyNSwgMC4wMTI1LCAwLjAxNjI1LCAwLjAxODc1IiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDE4NzUsIC0wLjAwNjI1LCAtMC4wMDYyNSwgMCwgMC4wMSwgMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIC0wLjAwMjUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA4NzUsIDAiLCBcCi0gICAgICAgICAgIi0wLjA0NjI1LCAtMC4wMzUsIC0wLjAyODc1LCAtMC4wMjg3NSwgLTAuMDIyNSwgLTAuMDE4NzUsIC0wLjAxIiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMzEyNSwgLTAuMDIxMjUsIC0wLjAxODc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEJkUmU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX0VfRVFfMV9BTl9TSV9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAyNSwgLTAuMDIsIC0wLjAxMzc1LCAtMC4wMTM3NSwgLTAuMDA3NSwgLTAuMDAzNzUsIC0wLjAwMTI1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTg3NSwgLTAuMDE1LCAtMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDIxMjUsIC0wLjAxODc1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMjc1LCAtMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjA1NSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDMzNzUsIC0wLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wNjUsIC0wLjA2LCAtMC4wNTM3NSwgLTAuMDUzNzUsIC0wLjA0NzUsIC0wLjA0Mzc1LCAtMC4wNDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDY3NSwgLTAuMDYyNSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA1NjI1LCAtMC4wNTI1LCAtMC4wNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJEJkUmIVNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMV9BTl9FX0VRXzFfQU5fU0lfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMTg3NSwgLTAuMDA3NSwgLTAuMDAxMjUsIDAuMDA1LCAwLjAxMTI1LCAwLjAxNSwgMC4wMTc1IiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLCAwLjAxLCAwLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgLTAuMDAyNSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDg3NSwgMCIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDM3NSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDE4NzUsIC0wLjAwODc1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDQ2MjUsIC0wLjA0MTI1LCAtMC4wMzUsIC0wLjAyODc1LCAtMC4wMjI1LCAtMC4wMTg3NSwgLTAuMDEiLCBcCi0gICAgICAgICAgIi0wLjA1NSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAyMTI1LCAtMC4wMTg3NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUQmIUUmIVNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9FX0VRXzBfQU5fU0lfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDM3NSwgMC4wMzI1LCAwLjAyNjI1LCAwLjAyLCAwLjAxMzc1LCAwLjAwMzc1LCAwLjAwMTI1IiwgXAotICAgICAgICAgICIwLjA0ODc1LCAwLjA0Mzc1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMTg3NSwgMC4wMTUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMDU1LCAwLjA1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDI1LCAwLjAyMTI1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMDYxMjUsIDAuMDU2MjUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMjc1LCAwLjAxODc1IiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDU2MjUsIDAuMDUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzM3NSwgMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMDcxMjUsIDAuMDY2MjUsIDAuMDUzNzUsIDAuMDQ3NSwgMC4wNDEyNSwgMC4wMzc1LCAwLjAyODc1IiwgXAotICAgICAgICAgICIwLjA4LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDUsIDAuMDQsIDAuMDM3NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUQmIUUmU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX0VfRVFfMF9BTl9TSV9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0Mzc1LCAwLjAzMjUsIDAuMDMyNSwgMC4wMjYyNSwgMC4wMiwgMC4wMTYyNSwgMC4wMTM3NSIsIFwKLSAgICAgICAgICAiMC4wNDg3NSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAzMTI1LCAwLjAyNzUsIDAuMDI1IiwgXAotICAgICAgICAgICIwLjA2MTI1LCAwLjA1LCAwLjA1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDMzNzUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMDY3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1LCAwLjA1LCAwLjA0NjI1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjA3Mzc1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDU2MjUsIDAuMDUyNSwgMC4wNSIsIFwKLSAgICAgICAgICAiMC4wODM3NSwgMC4wNzg3NSwgMC4wNzI1LCAwLjA2NjI1LCAwLjA2NjI1LCAwLjA2MjUsIDAuMDYiLCBcCi0gICAgICAgICAgIjAuMDkyNSwgMC4wODc1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNzUsIDAuMDcxMjUsIDAuMDYyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUQmRSZTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fRV9FUV8xX0FOX1NJX0VRXzEgPT0gMSdiMSI7Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM3NSwgMC4wMjYyNSwgMC4wMiwgMC4wMTM3NSwgMC4wMDc1LCAtMC4wMDI1LCAtMC4wMDUiLCBcCi0gICAgICAgICAgIjAuMDQyNSwgMC4wMzc1LCAwLjAyNSwgMC4wMTg3NSwgMC4wMTI1LCAwLjAwODc1LCAwIiwgXAotICAgICAgICAgICIwLjA1NSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMTUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4wNjEyNSwgMC4wNTYyNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyNzUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMDY3NSwgMC4wNjI1LCAwLjA1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDMzNzUsIDAuMDI1IiwgXAotICAgICAgICAgICIwLjA3NzUsIDAuMDcyNSwgMC4wNiwgMC4wNTM3NSwgMC4wNDc1LCAwLjA0Mzc1LCAwLjAzNSIsIFwKLSAgICAgICAgICAiMC4wODYyNSwgMC4wODEyNSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1MjUsIDAuMDQzNzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIkQmRSYhU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8xX0FOX0VfRVFfMV9BTl9TSV9FUV8wID09IDEnYjEiOwotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1NjI1LCAwLjA1MTI1LCAwLjA0NSwgMC4wMzg3NSwgMC4wMzg3NSwgMC4wMzUsIDAuMDMyNSIsIFwKLSAgICAgICAgICAiMC4wNjc1LCAwLjA1NjI1LCAwLjA1LCAwLjA1LCAwLjA0Mzc1LCAwLjA0LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIjAuMDczNzUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNTYyNSwgMC4wNTI1LCAwLjA1IiwgXAotICAgICAgICAgICIwLjA4LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA2MjUsIDAuMDU4NzUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIjAuMDg2MjUsIDAuMDgxMjUsIDAuMDc1LCAwLjA2ODc1LCAwLjA2ODc1LCAwLjA2NSwgMC4wNjI1IiwgXAotICAgICAgICAgICIwLjA5NjI1LCAwLjA4NSwgMC4wNzg3NSwgMC4wNzg3NSwgMC4wNzI1LCAwLjA2ODc1LCAwLjA2NjI1IiwgXAotICAgICAgICAgICIwLjA5ODc1LCAwLjA5Mzc1LCAwLjA4NzUsIDAuMDgxMjUsIDAuMDgxMjUsIDAuMDc3NSwgMC4wNzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFNJKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA5NDUyNjU7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwOTQyNzEzOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDk0NTI2NTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDM5OTksIDAuMDAzOTU2LCAwLjAwMzk5LCAwLjAwNDAzOCwgMC4wMDQxMiwgMC4wMDQyOCwgMC4wMDQ0NjciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDc4MTEsIDAuMDA3NzgyLCAwLjAwNzgxMiwgMC4wMDc4NTksIDAuMDA3OTMsIDAuMDA4MDkyLCAwLjAwODI0NCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJTRSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMzEyNSwgLTAuMDI2MjUsIC0wLjAyLCAtMC4wMTM3NSwgLTAuMDEzNzUsIC0wLjAxLCAtMC4wMDc1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxODc1LCAtMC4wMTUsIC0wLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMjEyNSwgLTAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAyNzUsIC0wLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzM3NSwgLTAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjA2NSwgLTAuMDYsIC0wLjA1Mzc1LCAtMC4wNTM3NSwgLTAuMDQ3NSwgLTAuMDQzNzUsIC0wLjA0MTI1IiwgXAotICAgICAgICAgICItMC4wNjc1LCAtMC4wNjI1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDU2MjUsIC0wLjA1MjUsIC0wLjA1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDA2MjUsIC0wLjAwMTI1LCAwLjAwNSwgMC4wMTEyNSwgMC4wMTc1LCAwLjAyNzUsIDAuMDMiLCBcCi0gICAgICAgICAgIi0wLjAxMTI1LCAtMC4wMDYyNSwgMCwgMC4wMDYyNSwgMC4wMTI1LCAwLjAxNjI1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDE3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAsIDAuMDA2MjUsIDAuMDEsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAsIDAuMDAzNzUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAyNSwgLTAuMDEyNSwgLTAuMDA2MjUsIC0wLjAwNjI1LCAwLjAwMzc1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wMzM3NSwgLTAuMDI4NzUsIC0wLjAyMjUsIC0wLjAxNjI1LCAtMC4wMSwgLTAuMDA2MjUsIDAuMDAyNSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwODc1LCAtMC4wMDYyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiU0UiOwotICAgICAgc2RmX2NvbmQgOiAiU0UgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQzNzUsIDAuMDM4NzUsIDAuMDMyNSwgMC4wMzI1LCAwLjAyNjI1LCAwLjAyMjUsIDAuMDIiLCBcCi0gICAgICAgICAgIjAuMDU1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMjc1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiMC4wNjEyNSwgMC4wNTYyNSwgMC4wNSwgMC4wNDM3NSwgMC4wNDM3NSwgMC4wNCwgMC4wMzc1IiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNSwgMC4wNSwgMC4wNDYyNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4wNzM3NSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1NjI1LCAwLjA1MjUsIDAuMDUiLCBcCi0gICAgICAgICAgIjAuMDgzNzUsIDAuMDc4NzUsIDAuMDcyNSwgMC4wNjYyNSwgMC4wNjYyNSwgMC4wNjI1LCAwLjA2IiwgXAotICAgICAgICAgICIwLjA5MjUsIDAuMDgxMjUsIDAuMDc1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjUsIDAuMDYyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzMTI1LCAwLjAyNjI1LCAwLjAxMzc1LCAwLjAwNzUsIDAuMDAxMjUsIC0wLjAwMjUsIC0wLjAxMTI1IiwgXAotICAgICAgICAgICIwLjAzNjI1LCAwLjAzMTI1LCAwLjAxODc1LCAwLjAxMjUsIDAuMDA2MjUsIDAuMDAyNSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMDQyNSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAxODc1LCAwLjAxODc1LCAwLjAwODc1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICIwLjA0ODc1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDI1LCAwLjAyNSwgMC4wMTUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4wNTUsIDAuMDUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMjUsIDAuMDIxMjUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4wNjUsIDAuMDUzNzUsIDAuMDQ3NSwgMC4wNDEyNSwgMC4wMzUsIDAuMDI1LCAwLjAyMjUiLCBcCi0gICAgICAgICAgIjAuMDY3NSwgMC4wNjI1LCAwLjA1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDMzNzUsIDAuMDI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBDTEtBTkQyWDQgKgotICogLS0tLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChDTEtBTkQyWDQpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC42MzE4ODM7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTM5MzAzOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTM5MzAzOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTM4Nzk2OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDU0LCAwLjAwMDU0LCAwLjAwMDU0LCAwLjAwMDU0LCAwLjAwMDU0LCAwLjAwMDU0LCAwLjAwMDU0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNTk3LCAwLjAwMDU2MSwgMC4wMDA1NSwgMC4wMDA1NDMsIDAuMDAwNTQzLCAwLjAwMDU0MiwgMC4wMDA1NDQiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTM0MDc4OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTM0MDc4OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTMzOTAzOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDE0MSwgMC4wMDAxNCwgMC4wMDAxNCwgMC4wMDAxNCwgMC4wMDAxNCwgMC4wMDAxNDEsIDAuMDAwMTQxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNjgzLCAwLjAwMDY4MywgMC4wMDA2ODMsIDAuMDAwNjgzLCAwLjAwMDY4MywgMC4wMDA2ODMsIDAuMDAwNjgzIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDEuMzYwMDM7Ci0gICAgZnVuY3Rpb24gOiAiKEEgQikiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDMyNjk5LCAwLjA4ODc0NiwgMC4xNDM1NjgsIDAuMTgyNzI2LCAwLjI0NTM3OCwgMC4zMDAyNCwgMC4zNzg0ODkiLCBcCi0gICAgICAgICAgIjAuMDM5MDk1LCAwLjA5NTA5OCwgMC4xNDk5MjgsIDAuMTg5MTAzLCAwLjI1MTg3NiwgMC4zMDY1NjYsIDAuMzg1MDc3IiwgXAotICAgICAgICAgICIwLjA0NTUwNSwgMC4xMDE2ODUsIDAuMTU2NTIyLCAwLjE5NTY5OCwgMC4yNTgzOTQsIDAuMzEzMTYxLCAwLjM5MTY5OSIsIFwKLSAgICAgICAgICAiMC4wNTAzNywgMC4xMDY5NTYsIDAuMTYxNzc4LCAwLjIwMDk3NiwgMC4yNjM2MTksIDAuMzE4NDM1LCAwLjM5Njc5NiIsIFwKLSAgICAgICAgICAiMC4wNTQzODIsIDAuMTExMTIxLCAwLjE2NTkzOCwgMC4yMDUwNzMsIDAuMjY3NywgMC4zMjI1NzUsIDAuNDAwODM3IiwgXAotICAgICAgICAgICIwLjA1OTY2OCwgMC4xMTY3NywgMC4xNzE1NzksIDAuMjEwNzAxLCAwLjI3MzM0NSwgMC4zMjgxMjUsIDAuNDA2NTIyIiwgXAotICAgICAgICAgICIwLjA2MzYyNCwgMC4xMjEwNDYsIDAuMTc1ODk3LCAwLjIxNTAwNywgMC4yNzc1OTYsIDAuMzMyMzg5LCAwLjQxMDciKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjUxNDUsIDAuMTM3ODA5LCAwLjI1MzMzNywgMC4zMzU2MjMsIDAuNDY3OTQ5LCAwLjU4MzE1NCwgMC43NDk0MjQiLCBcCi0gICAgICAgICAgIjAuMDI1MjUxLCAwLjEzNzk3OCwgMC4yNTM0MDQsIDAuMzM2MTAyLCAwLjQ2Nzc4NiwgMC41ODMzMjksIDAuNzQ4NzU1IiwgXAotICAgICAgICAgICIwLjAyNjE4MiwgMC4xMzgwNiwgMC4yNTI5NjIsIDAuMzM1NDg2LCAwLjQ2NzY0NSwgMC41ODMzMTksIDAuNzQ4NjgyIiwgXAotICAgICAgICAgICIwLjAyNzIxNywgMC4xMzgzMDEsIDAuMjUzMjQ2LCAwLjMzNTU1NiwgMC40Njc2NTIsIDAuNTgzNTkzLCAwLjc0OTE0NyIsIFwKLSAgICAgICAgICAiMC4wMjgyNjcsIDAuMTM4NTM4LCAwLjI1MzYyNCwgMC4zMzU2NjEsIDAuNDY4NTA2LCAwLjU4MzYwNSwgMC43NDg1NzEiLCBcCi0gICAgICAgICAgIjAuMDI5ODg4LCAwLjEzOTA1NSwgMC4yNTM1NDIsIDAuMzM1ODQ1LCAwLjQ2ODU1NCwgMC41ODQzMjksIDAuNzQ4NDA4IiwgXAotICAgICAgICAgICIwLjAzMDY4OSwgMC4xMzk3MDYsIDAuMjUzNDk0LCAwLjMzNjAwMSwgMC40NjgwNjMsIDAuNTgzNjg4LCAwLjc0OTg3NyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzNTY4MSwgMC4wOTA4NCwgMC4xNDQ3MjMsIDAuMTgzMjA5LCAwLjI0NDczMiwgMC4yOTg1MzIsIDAuMzc1Mzk5IiwgXAotICAgICAgICAgICIwLjA0MzcwNiwgMC4wOTg4NywgMC4xNTI3NjMsIDAuMTkxMjQyLCAwLjI1Mjc2MSwgMC4zMDY1NzIsIDAuMzgzNDU4IiwgXAotICAgICAgICAgICIwLjA1Mjk0NCwgMC4xMDgxMTEsIDAuMTYxOTk4LCAwLjIwMDQ2MywgMC4yNjE5OTgsIDAuMzE1ODM0LCAwLjM5MjY5IiwgXAotICAgICAgICAgICIwLjA2MDE5MiwgMC4xMTU2MjksIDAuMTY5NDk3LCAwLjIwNzk3OCwgMC4yNjk0OTEsIDAuMzIzMzE4LCAwLjQwMDE5MSIsIFwKLSAgICAgICAgICAiMC4wNjU5ODMsIDAuMTIxNjQ3LCAwLjE3NTUxOSwgMC4yMTM5NzMsIDAuMjc1NDk3LCAwLjMyOTMwOCwgMC40MDYyNDMiLCBcCi0gICAgICAgICAgIjAuMDczNjc0LCAwLjEyOTc2NywgMC4xODM1ODgsIDAuMjIyMDMyLCAwLjI4MzU0OCwgMC4zMzczNjIsIDAuNDE0MjQ4IiwgXAotICAgICAgICAgICIwLjA3OTQwNCwgMC4xMzU4MTEsIDAuMTg5NzEzLCAwLjIyODEzOSwgMC4yODk2NDMsIDAuMzQzNDU3LCAwLjQyMDMzMiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyNDY1NiwgMC4xMzM1OSwgMC4yNDUxMzksIDAuMzI0NDMxLCAwLjQ1MzExNCwgMC41NjUwOTgsIDAuNzI1MTU2IiwgXAotICAgICAgICAgICIwLjAyNDY2LCAwLjEzMzM4MiwgMC4yNDQ4NTMsIDAuMzI0NjI3LCAwLjQ1MzA4MSwgMC41NjUwNjIsIDAuNzI0MzQzIiwgXAotICAgICAgICAgICIwLjAyNTU3NSwgMC4xMzM1MjgsIDAuMjQ1MTQyLCAwLjMyNDcwMiwgMC40NTMwODEsIDAuNTY1MTYzLCAwLjcyNTEyNiIsIFwKLSAgICAgICAgICAiMC4wMjY4MzcsIDAuMTMzODM5LCAwLjI0NTIxOCwgMC4zMjUwNywgMC40NTI0MywgMC41NjUxMzYsIDAuNzI1MTY2IiwgXAotICAgICAgICAgICIwLjAyODIwMywgMC4xMzQxNTksIDAuMjQ1MTM2LCAwLjMyNTA5NywgMC40NTMwNDQsIDAuNTY1MDc3LCAwLjcyMzk5MiIsIFwKLSAgICAgICAgICAiMC4wMjk3NjcsIDAuMTM0NjMzLCAwLjI0NTI3MywgMC4zMjQ4MjksIDAuNDUyODgxLCAwLjU2NDU2MywgMC43MjQxMzgiLCBcCi0gICAgICAgICAgIjAuMDMxMTk3LCAwLjEzNTE4NiwgMC4yNDU1MDQsIDAuMzI0OTgxLCAwLjQ1MjgwMSwgMC41NjQ2MjUsIDAuNzI0NTgyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDMxMzUsIDAuMDg3Mzc1LCAwLjE0MjIxOSwgMC4xODE0MjksIDAuMjQ0MDIsIDAuMjk4OTEzLCAwLjM3NzEyOSIsIFwKLSAgICAgICAgICAiMC4wMzg4NjgsIDAuMDk0ODYxLCAwLjE0OTcxMSwgMC4xODg4OTYsIDAuMjUxNjMzLCAwLjMwNjM1NSwgMC4zODQ4NTYiLCBcCi0gICAgICAgICAgIjAuMDQ2NzM2LCAwLjEwMjkxNiwgMC4xNTc3NDUsIDAuMTk2ODk1LCAwLjI1OTYwMywgMC4zMTQzODcsIDAuMzkyOTMzIiwgXAotICAgICAgICAgICIwLjA1MjQ2NSwgMC4xMDg5OTQsIDAuMTYzODA5LCAwLjIwMjk4MiwgMC4yNjU2MzUsIDAuMzIwNjEsIDAuMzk4ODEyIiwgXAotICAgICAgICAgICIwLjA1NzAzOSwgMC4xMTM3MDUsIDAuMTY4NDgxLCAwLjIwNzYxMSwgMC4yNzAyODIsIDAuMzI1MjQ5LCAwLjQwMzM4NCIsIFwKLSAgICAgICAgICAiMC4wNjMzMjgsIDAuMTIwMzU3LCAwLjE3NTA2OCwgMC4yMTQxODYsIDAuMjc2ODA4LCAwLjMzMTU4OSwgMC40MDk5NTEiLCBcCi0gICAgICAgICAgIjAuMDY3OTMyLCAwLjEyNDk4MiwgMC4xNzk4ODcsIDAuMjE5MDA2LCAwLjI4MTU4LCAwLjMzNjM3NywgMC40MTQ2NzQiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjUxNywgMC4xMzc5NTMsIDAuMjUzMzEzLCAwLjMzNTQyNSwgMC40Njc4NDgsIDAuNTgzMTMyLCAwLjc0OTkyNCIsIFwKLSAgICAgICAgICAiMC4wMjUzMDEsIDAuMTM3OTgzLCAwLjI1MzA2MSwgMC4zMzU2MTksIDAuNDY3Nzc0LCAwLjU4Mzk4MywgMC43NDg3NTQiLCBcCi0gICAgICAgICAgIjAuMDI2NDU1LCAwLjEzNzk5MiwgMC4yNTM0NDcsIDAuMzM2MDc2LCAwLjQ2NzkwNywgMC41ODMzMjksIDAuNzQ4Njg0IiwgXAotICAgICAgICAgICIwLjAyNzc4MywgMC4xMzg0NDcsIDAuMjUzNDU0LCAwLjMzNjE3NCwgMC40Njc2OCwgMC41ODM0ODMsIDAuNzQ5MDI3IiwgXAotICAgICAgICAgICIwLjAyOTE5NywgMC4xMzg3NjgsIDAuMjUzMjgzLCAwLjMzNjA5NywgMC40Njg1NzMsIDAuNTgzNTI2LCAwLjc0ODU2NSIsIFwKLSAgICAgICAgICAiMC4wMzA5ODcsIDAuMTM5MjM3LCAwLjI1MzY5NSwgMC4zMzU5NDcsIDAuNDY4NjI4LCAwLjU4NDQ3NiwgMC43NDkwMjQiLCBcCi0gICAgICAgICAgIjAuMDMyMDg3LCAwLjE0MDAwNCwgMC4yNTM3NDQsIDAuMzM2MTUxLCAwLjQ2Nzg3NSwgMC41ODQzNzMsIDAuNzQ5OTY4Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDMzNjgyLCAwLjA4ODc2OCwgMC4xNDI2MjYsIDAuMTgxMDg3LCAwLjI0MjY4LCAwLjI5NjQ3LCAwLjM3MzYyNyIsIFwKLSAgICAgICAgICAiMC4wNDE0NTEsIDAuMDk2NTE1LCAwLjE1MDM3LCAwLjE4ODg3LCAwLjI1MDQ3NywgMC4zMDQyMDksIDAuMzgxMTE3IiwgXAotICAgICAgICAgICIwLjA1MDIwMiwgMC4xMDUzMTYsIDAuMTU5MTYyLCAwLjE5NzY3OSwgMC4yNTkyMzYsIDAuMzEzMDEzLCAwLjM4OTkzMSIsIFwKLSAgICAgICAgICAiMC4wNTY2OTIsIDAuMTEyMTUxLCAwLjE2NTk4LCAwLjIwNDQ4LCAwLjI2NTk2OCwgMC4zMTk5MTUsIDAuMzk2NzQ2IiwgXAotICAgICAgICAgICIwLjA2MjE2NCwgMC4xMTc4NDcsIDAuMTcxNzcsIDAuMjEwMjMxLCAwLjI3MTc5NiwgMC4zMjU2MDYsIDAuNDAyNjA0IiwgXAotICAgICAgICAgICIwLjA2OTE4NCwgMC4xMjUyMjIsIDAuMTc4ODk5LCAwLjIxNzMxMiwgMC4yNzkwOTUsIDAuMzMyNjEsIDAuNDA5NjU1IiwgXAotICAgICAgICAgICIwLjA3NDI4NiwgMC4xMzA3OTIsIDAuMTg0NDU1LCAwLjIyMjg1OSwgMC4yODQ3ODMsIDAuMzM4MjUyLCAwLjQxNTAxNCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyNDQ1NCwgMC4xMzMyODksIDAuMjQ0OTMzLCAwLjMyNDk5MiwgMC40NTIzNTgsIDAuNTY0MDQyLCAwLjcyNDI1MyIsIFwKLSAgICAgICAgICAiMC4wMjQ1NTEsIDAuMTMzNDMxLCAwLjI0NDk3OCwgMC4zMjQyNjgsIDAuNDUyMjc0LCAwLjU2NDAzOCwgMC43MjUxMDMiLCBcCi0gICAgICAgICAgIjAuMDI1NzU2LCAwLjEzMzYxNCwgMC4yNDUwNDksIDAuMzI0NSwgMC40NTIyNDQsIDAuNTYzOTUxLCAwLjcyNTEzMiIsIFwKLSAgICAgICAgICAiMC4wMjcwNDksIDAuMTMzOTg2LCAwLjI0NTExNywgMC4zMjQzNDUsIDAuNDUzMDk0LCAwLjU2NDE0NSwgMC43MjUxMjciLCBcCi0gICAgICAgICAgIjAuMDI4MzM2LCAwLjEzNDI2OSwgMC4yNDUwOTIsIDAuMzI1MDQxLCAwLjQ1MjE0LCAwLjU2NDA1LCAwLjcyMzk1MyIsIFwKLSAgICAgICAgICAiMC4wMzAxMTgsIDAuMTM0NzUyLCAwLjI0NTI5OCwgMC4zMjUyMTIsIDAuNDUyMzQzLCAwLjU2NDUyOSwgMC43MjQxNDEiLCBcCi0gICAgICAgICAgIjAuMDMxNTA0LCAwLjEzNTQ0MiwgMC4yNDU0MjQsIDAuMzI0OTI2LCAwLjQ1MjY4NywgMC41NjUyNTYsIDAuNzI1MzM4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDU4MjMsIDAuMDA1OTQ1LCAwLjAwNTk2NCwgMC4wMDU5NzIsIDAuMDA1OTcyLCAwLjAwNTk3NCwgMC4wMDU5NzYiLCBcCi0gICAgICAgICAgIjAuMDA1NzU5LCAwLjAwNTg5MSwgMC4wMDU5MDksIDAuMDA1OTE1LCAwLjAwNTkyLCAwLjAwNTkyMywgMC4wMDU5MjUiLCBcCi0gICAgICAgICAgIjAuMDA1ODA0LCAwLjAwNTkzOSwgMC4wMDU5NTgsIDAuMDA1OTYzLCAwLjAwNTk2OSwgMC4wMDU5NzEsIDAuMDA1OTc0IiwgXAotICAgICAgICAgICIwLjAwNjAzMiwgMC4wMDYwMzgsIDAuMDA2MDYyLCAwLjAwNjA2OSwgMC4wMDYwNzYsIDAuMDA2MDgsIDAuMDA2MDg0IiwgXAotICAgICAgICAgICIwLjAwNjIxOCwgMC4wMDYyMTMsIDAuMDA2MjIzLCAwLjAwNjIzNSwgMC4wMDYyNDEsIDAuMDA2MjQxLCAwLjAwNjI0NCIsIFwKLSAgICAgICAgICAiMC4wMDY1OSwgMC4wMDY1MTksIDAuMDA2NTMzLCAwLjAwNjU0MiwgMC4wMDY1NDgsIDAuMDA2NTUxLCAwLjAwNjU1MyIsIFwKLSAgICAgICAgICAiMC4wMDY4NTQsIDAuMDA2ODA5LCAwLjAwNjgyOCwgMC4wMDY4MzcsIDAuMDA2ODQ0LCAwLjAwNjg0OCwgMC4wMDY4NTYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwODU1NywgMC4wMDg3NDcsIDAuMDA4Nzc1LCAwLjAwODc4MywgMC4wMDg3OTEsIDAuMDA4Nzk1LCAwLjAwODc5OSIsIFwKLSAgICAgICAgICAiMC4wMDg0ODYsIDAuMDA4NzAyLCAwLjAwODc0MiwgMC4wMDg3NTUsIDAuMDA4NzY3LCAwLjAwODc3MywgMC4wMDg3NzgiLCBcCi0gICAgICAgICAgIjAuMDA4NjczLCAwLjAwODgwNywgMC4wMDg4NTEsIDAuMDA4ODY2LCAwLjAwODg4LCAwLjAwODg4NywgMC4wMDg4OTMiLCBcCi0gICAgICAgICAgIjAuMDA4ODgsIDAuMDA4OTkxLCAwLjAwOTAzNSwgMC4wMDkwNSwgMC4wMDkwNjYsIDAuMDA5MDczLCAwLjAwOTA4MSIsIFwKLSAgICAgICAgICAiMC4wMDkxMjEsIDAuMDA5MTk1LCAwLjAwOTI0LCAwLjAwOTI1OCwgMC4wMDkyNzQsIDAuMDA5MjgzLCAwLjAwOTI5MSIsIFwKLSAgICAgICAgICAiMC4wMDk2MTIsIDAuMDA5NTkxLCAwLjAwOTYyNywgMC4wMDk2NDMsIDAuMDA5NjU5LCAwLjAwOTY2OCwgMC4wMDk2NzciLCBcCi0gICAgICAgICAgIjAuMDEwMTMzLCAwLjAwOTk2NywgMC4wMDk5OTYsIDAuMDEwMDExLCAwLjAxMDAyNCwgMC4wMTAwMzIsIDAuMDEwMDQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNTgxNCwgMC4wMDU5NTgsIDAuMDA1OTczLCAwLjAwNTk4MSwgMC4wMDU5ODIsIDAuMDA1OTg3LCAwLjAwNTk5MSIsIFwKLSAgICAgICAgICAiMC4wMDU3OTIsIDAuMDA1OTM4LCAwLjAwNTk2NCwgMC4wMDU5NzEsIDAuMDA1OTc4LCAwLjAwNTk4MiwgMC4wMDU5ODUiLCBcCi0gICAgICAgICAgIjAuMDA1OTYsIDAuMDA2MDU4LCAwLjAwNjA4LCAwLjAwNjA4NiwgMC4wMDYwOTksIDAuMDA2MTAyLCAwLjAwNjEwNiIsIFwKLSAgICAgICAgICAiMC4wMDYyMTgsIDAuMDA2MjM1LCAwLjAwNjI2MSwgMC4wMDYyNzEsIDAuMDA2MjgxLCAwLjAwNjI4OCwgMC4wMDYyOTEiLCBcCi0gICAgICAgICAgIjAuMDA2NDgyLCAwLjAwNjQ2MiwgMC4wMDY0ODQsIDAuMDA2NDkyLCAwLjAwNjUwMiwgMC4wMDY1MDYsIDAuMDA2NTEiLCBcCi0gICAgICAgICAgIjAuMDA2OTcyLCAwLjAwNjg4LCAwLjAwNjg2NCwgMC4wMDY4NzEsIDAuMDA2ODgxLCAwLjAwNjksIDAuMDA2ODg3IiwgXAotICAgICAgICAgICIwLjAwNzMyNCwgMC4wMDcyNjMsIDAuMDA3MjcsIDAuMDA3MjUsIDAuMDA3MjcyLCAwLjAwNzI3NSwgMC4wMDcyODciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNzYxMywgMC4wMDc4MzUsIDAuMDA3ODY1LCAwLjAwNzg3NCwgMC4wMDc4ODIsIDAuMDA3ODg2LCAwLjAwNzg5IiwgXAotICAgICAgICAgICIwLjAwNzUyOCwgMC4wMDc3NjEsIDAuMDA3ODAxLCAwLjAwNzgxNCwgMC4wMDc4MjUsIDAuMDA3ODMxLCAwLjAwNzgzNyIsIFwKLSAgICAgICAgICAiMC4wMDc3NjUsIDAuMDA3OTA4LCAwLjAwNzk1MSwgMC4wMDc5NjUsIDAuMDA3OTc4LCAwLjAwNzk4NSwgMC4wMDc5OTEiLCBcCi0gICAgICAgICAgIjAuMDA3OTI4LCAwLjAwODAyNywgMC4wMDgwNzYsIDAuMDA4MDkzLCAwLjAwODEwOSwgMC4wMDgxMTgsIDAuMDA4MTI2IiwgXAotICAgICAgICAgICIwLjAwODE2OSwgMC4wMDgyMTYsIDAuMDA4MjY3LCAwLjAwODI4NCwgMC4wMDgzMDEsIDAuMDA4MzA5LCAwLjAwODMxOCIsIFwKLSAgICAgICAgICAiMC4wMDg2MTQsIDAuMDA4NjI3LCAwLjAwODY0NSwgMC4wMDg2NjEsIDAuMDA4NzA3LCAwLjAwODY4NSwgMC4wMDg2OTMiLCBcCi0gICAgICAgICAgIjAuMDA4OTk4LCAwLjAwODk4NSwgMC4wMDkwMTQsIDAuMDA5MDI1LCAwLjAwOTA2NSwgMC4wMDkwNzIsIDAuMDA5MDUyIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IE9BSTIxMVhMICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChPQUkyMTFYTCkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjIxMjM4NzsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQTApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYyODk3OTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MjgyMDY7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjI4OTc5OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDI5NiwgMC4wMDAyOTYsIDAuMDAwMjk2LCAwLjAwMDI5NiwgMC4wMDAyOTYsIDAuMDAwMjk2LCAwLjAwMDI5NiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDI5NywgMC4wMDAyOTcsIDAuMDAwMjk3LCAwLjAwMDI5NywgMC4wMDAyOTcsIDAuMDAwMjk3LCAwLjAwMDI5NyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQTEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY5ODY2OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDY5ODY2OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDY5NzM4NjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyOTYsIDAuMDAwMjk2LCAwLjAwMDI5NiwgMC4wMDAyOTYsIDAuMDAwMjk2LCAwLjAwMDI5NiwgMC4wMDAyOTYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyOTcsIDAuMDAwMjk3LCAwLjAwMDI5NywgMC4wMDAyOTcsIDAuMDAwMjk3LCAwLjAwMDI5NywgMC4wMDAyOTciKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA3MTQ5MTI7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNzE0OTEyOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDcxNDIzMTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyOTYsIDAuMDAwMjk2LCAwLjAwMDI5NiwgMC4wMDAyOTYsIDAuMDAwMjk2LCAwLjAwMDI5NiwgMC4wMDAyOTYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAzLCAwLjAwMDI5OCwgMC4wMDAyOTgsIDAuMDAwMjk4LCAwLjAwMDI5OCwgMC4wMDAyOTgsIDAuMDAwMjk3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihDMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjk1MTY3OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDY5NDk4NzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2OTUxNjc7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMTQ5LCAwLjAwMDE0OSwgMC4wMDAxNDksIDAuMDAwMTQ5LCAwLjAwMDE0OSwgMC4wMDAxNDksIDAuMDAwMTQ5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzM3LCAwLjAwMDMzOCwgMC4wMDAzMzgsIDAuMDAwMzM4LCAwLjAwMDMzOCwgMC4wMDAzMzgsIDAuMDAwMzM4Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMDg3OTY7Ci0gICAgZnVuY3Rpb24gOiAiKCEoKChBMCtBMSkgQjApIEMwKSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTYyNDMsIDAuMTM1MjM1LCAwLjMwNTgzMSwgMC41OTAyMzgsIDAuODc0MTkxLCAxLjUzNywgMS45MTUzIiwgXAotICAgICAgICAgICIwLjEyMjEzLCAwLjE0MTE2NCwgMC4zMTE3MjEsIDAuNTk2MTY5LCAwLjg4MDQyNCwgMS41NDM4NSwgMS45MjAzNiIsIFwKLSAgICAgICAgICAiMC4xMjkxMDgsIDAuMTQ4MjExLCAwLjMxOTA4LCAwLjYwMjk1MiwgMC44ODY5MDIsIDEuNTUwMjMsIDEuOTMwMDMiLCBcCi0gICAgICAgICAgIjAuMTM2MTE2LCAwLjE1NTI0OCwgMC4zMjYwMzMsIDAuNjEwMTUsIDAuODkzOTkzLCAxLjU1ODIsIDEuOTM1OTciLCBcCi0gICAgICAgICAgIjAuMTQzMTk5LCAwLjE2MjIyNiwgMC4zMzMwNTksIDAuNjE3NjIyLCAwLjkwMTQ0MywgMS41NjQ3MiwgMS45NDI4OSIsIFwKLSAgICAgICAgICAiMC4xNTQ2MDUsIDAuMTczNjg0LCAwLjM0NDMzMSwgMC42Mjg2NzUsIDAuOTEyODkxLCAxLjU3NTI4LCAxLjk1NTI2IiwgXAotICAgICAgICAgICIwLjE2NDI2LCAwLjE4MzQ5NCwgMC4zNTQwNzQsIDAuNjM4NjEzLCAwLjkyMjc5MSwgMS41ODY5OCwgMS45NjM5NCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMzA1MTQsIDAuMjcwODE3LCAwLjYzMjU5NiwgMS4yMzQ2OCwgMS44MzYzNywgMy4yNDEyMiwgNC4wNDMwMSIsIFwKLSAgICAgICAgICAiMC4yMzA1MjIsIDAuMjcwNzI1LCAwLjYzMjU3NiwgMS4yMzQ2MywgMS44MzY5NiwgMy4yNDI0OCwgNC4wNDUyMiIsIFwKLSAgICAgICAgICAiMC4yMzExMiwgMC4yNzEwNTYsIDAuNjMyMzgyLCAxLjIzNDI1LCAxLjgzNjc1LCAzLjI0MTksIDQuMDQ1MSIsIFwKLSAgICAgICAgICAiMC4yMzM0NDYsIDAuMjcyODE2LCAwLjYzMjI3NSwgMS4yMzQyMywgMS44MzY2LCAzLjI0MjI1LCA0LjA0NDAxIiwgXAotICAgICAgICAgICIwLjIzNjk4MiwgMC4yNzU4MzMsIDAuNjMyNjM3LCAxLjIzNDcsIDEuODM3MTEsIDMuMjQxNDksIDQuMDQ0MDYiLCBcCi0gICAgICAgICAgIjAuMjQ0MzI5LCAwLjI4MjQ5LCAwLjYzNDY4NSwgMS4yMzUzOSwgMS44MzYzMywgMy4yNDEwMiwgNC4wNDQxNCIsIFwKLSAgICAgICAgICAiMC4yNTE2NjEsIDAuMjg5MzUxLCAwLjYzNzc2LCAxLjIzNDI2LCAxLjgzNjc0LCAzLjI0MjM0LCA0LjA0Mjc1Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE0ODgwOSwgMC4xNzMzNDQsIDAuMzkzODUyLCAwLjc2MTM0NCwgMS4xMjc0OCwgMS45ODQ0MSwgMi40NzQzMiIsIFwKLSAgICAgICAgICAiMC4xNTUwMiwgMC4xNzk0NjQsIDAuNDAwMDI2LCAwLjc2NjkyOSwgMS4xMzQ0MSwgMS45OTE0NywgMi40ODAzMyIsIFwKLSAgICAgICAgICAiMC4xNjA5MDQsIDAuMTg1NDA4LCAwLjQwNTg2LCAwLjc3MzE4MywgMS4xNDA3OCwgMS45OTc4MiwgMi40ODYyNCIsIFwKLSAgICAgICAgICAiMC4xNjY0NywgMC4xOTEwMjIsIDAuNDExNjY0LCAwLjc3ODQwOSwgMS4xNDYyMSwgMi4wMDI1MiwgMi40OTE3MyIsIFwKLSAgICAgICAgICAiMC4xNzIwMzEsIDAuMTk2NTcyLCAwLjQxNzE2MSwgMC43ODQ0NzgsIDEuMTUxMTYsIDIuMDA5NTQsIDIuNDk2OTkiLCBcCi0gICAgICAgICAgIjAuMTgxMzU1LCAwLjIwNTcwMywgMC40MjYxNzcsIDAuNzkzNjY2LCAxLjE2MDcsIDIuMDE5MTgsIDIuNTA3MTUiLCBcCi0gICAgICAgICAgIjAuMTg5MzMxLCAwLjIxMzg2NywgMC40MzM5MTgsIDAuODAxMTI4LCAxLjE2ODM2LCAyLjAyNDU5LCAyLjUxNTI3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI4NDEwOCwgMC4zMzQ1NjksIDAuNzg5MDgyLCAxLjU0NjE1LCAyLjMwMjE4LCA0LjA2ODUxLCA1LjA3ODQyIiwgXAotICAgICAgICAgICIwLjI4NDA2OSwgMC4zMzQ1NzQsIDAuNzg4OTM4LCAxLjU0NTY4LCAyLjMwMjQyLCA0LjA2ODU0LCA1LjA3Nzc3IiwgXAotICAgICAgICAgICIwLjI4NDE2MiwgMC4zMzQ1NDYsIDAuNzg4Njk0LCAxLjU0NTU4LCAyLjMwMjc5LCA0LjA2ODk3LCA1LjA3NzU1IiwgXAotICAgICAgICAgICIwLjI4NTE2NSwgMC4zMzUyNTEsIDAuNzg4OTQzLCAxLjU0NTQ2LCAyLjMwMjQ2LCA0LjA2ODI4LCA1LjA3NzQ1IiwgXAotICAgICAgICAgICIwLjI4NzAyMywgMC4zMzY4NCwgMC43ODg3MDksIDEuNTQ1NTIsIDIuMzAyMjgsIDQuMDY5MzksIDUuMDc4OTEiLCBcCi0gICAgICAgICAgIjAuMjkxNTE1LCAwLjM0MDU1OSwgMC43ODkzMDEsIDEuNTQ1NTIsIDIuMzAyMzksIDQuMDY5MSwgNS4wNzY0NCIsIFwKLSAgICAgICAgICAiMC4yOTYzOTgsIDAuMzQ1MDEsIDAuNzkwNzg4LCAxLjU0NTQ0LCAyLjMwMjQ1LCA0LjA2OCwgNS4wNzc4MSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTEzODkyLCAwLjEzMjg0NCwgMC4zMDM0MTksIDAuNTg3NTQzLCAwLjg3MjA3NywgMS41MzQyNiwgMS45MTQ1NyIsIFwKLSAgICAgICAgICAiMC4xMjEwNTcsIDAuMTQwMDcsIDAuMzEwNjQ2LCAwLjU5NDk0OSwgMC44NzkwMTIsIDEuNTQxMTMsIDEuOTIxODMiLCBcCi0gICAgICAgICAgIjAuMTMwMzIzLCAwLjE0OTM3OCwgMC4zMTk5ODEsIDAuNjAzOTMxLCAwLjg4NzkyNywgMS41NTExMiwgMS45MzA4NiIsIFwKLSAgICAgICAgICAiMC4xMzk3NTgsIDAuMTU4NzQ5LCAwLjMyOTUwMywgMC42MTMyNzEsIDAuODk3OTExLCAxLjU2MTIsIDEuOTM4MzciLCBcCi0gICAgICAgICAgIjAuMTQ5Mjg5LCAwLjE2ODI1MywgMC4zMzg2NiwgMC42MjI3MDMsIDAuOTA3NTA1LCAxLjU2OTY4LCAxLjk0ODU0IiwgXAotICAgICAgICAgICIwLjE2NDc0NiwgMC4xODM1MDksIDAuMzUzNjU5LCAwLjYzNzc2OCwgMC45MjEzNjUsIDEuNTgzODUsIDEuOTY0MTQiLCBcCi0gICAgICAgICAgIjAuMTc4Mzg2LCAwLjE5NzA4MSwgMC4zNjY4NjUsIDAuNjQ4MTQyLCAwLjkzNDU5MywgMS41OTg1NSwgMS45NzU0MiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMzA1NTQsIDAuMjcwNzkxLCAwLjYzMjQ1OSwgMS4yMzQ4NiwgMS44MzY5MSwgMy4yNDA1NCwgNC4wNDUwMiIsIFwKLSAgICAgICAgICAiMC4yMzA1NzEsIDAuMjcwNzE5LCAwLjYzMjQ1NiwgMS4yMzQ5MSwgMS44MzY2MywgMy4yNDEzLCA0LjA0NTEiLCBcCi0gICAgICAgICAgIjAuMjMxMzQ1LCAwLjI3MTAxOCwgMC42MzIwNjQsIDEuMjM0ODEsIDEuODM3NzUsIDMuMjQyNCwgNC4wNDQ1MiIsIFwKLSAgICAgICAgICAiMC4yMzQ5MjIsIDAuMjczNjg5LCAwLjYzMjQ0LCAxLjIzNDI0LCAxLjgzNzI1LCAzLjI0MjQ2LCA0LjA0MjcyIiwgXAotICAgICAgICAgICIwLjI0MDMyLCAwLjI3ODM2NCwgMC42MzI1OSwgMS4yMzQyMSwgMS44MzcyMSwgMy4yNDE2NiwgNC4wNDU0MyIsIFwKLSAgICAgICAgICAiMC4yNTEzMjEsIDAuMjg4MTczLCAwLjYzNTExMSwgMS4yMzQ1LCAxLjgzNjU4LCAzLjI0MTAxLCA0LjA0NDQ2IiwgXAotICAgICAgICAgICIwLjI2MjI5NywgMC4yOTgzMjQsIDAuNjM5ODAzLCAxLjIzNTM2LCAxLjgzNjkyLCAzLjI0MjMxLCA0LjA0MjczIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE0MjU0LCAwLjE2Njc4MiwgMC4zODQwMywgMC43NDY0MTEsIDEuMTA3NTYsIDEuOTUyMTYsIDIuNDM0ODYiLCBcCi0gICAgICAgICAgIjAuMTQ4OTAyLCAwLjE3Mjk3NCwgMC4zOTA0NDYsIDAuNzUyMDg4LCAxLjExNDU3LCAxLjk1OTcxLCAyLjQ0MTI2IiwgXAotICAgICAgICAgICIwLjE1NDc0OCwgMC4xNzg5MzYsIDAuMzk2MzQ4LCAwLjc1ODUwNCwgMS4xMjA5MSwgMS45NjU4MSwgMi40NDczMyIsIFwKLSAgICAgICAgICAiMC4xNjAzMzcsIDAuMTg0NTEzLCAwLjQwMjIyMywgMC43NjQzNjEsIDEuMTI2MjgsIDEuOTcwNjEsIDIuNDUzMzQiLCBcCi0gICAgICAgICAgIjAuMTY1ODk0LCAwLjE5MDEyMiwgMC40MDc2MjUsIDAuNzY5OTcsIDEuMTMxNDcsIDEuOTc3NzgsIDIuNDU3NzYiLCBcCi0gICAgICAgICAgIjAuMTc1MTM2LCAwLjE5OTMyOSwgMC40MTY3NDEsIDAuNzc5Mjc1LCAxLjE0MTEyLCAxLjk4NzM2LCAyLjQ2NzgyIiwgXAotICAgICAgICAgICIwLjE4MzMxLCAwLjIwNzU3OCwgMC40MjQ3NTEsIDAuNzg2NzMzLCAxLjE0OTEsIDEuOTkzNjEsIDIuNDc2NjMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjc0MDU3LCAwLjMyMzU1MSwgMC43NzA5MjMsIDEuNTE2MjgsIDIuMjYyMDYsIDQuMDA4OTcsIDQuOTkzNzMiLCBcCi0gICAgICAgICAgIjAuMjczODgxLCAwLjMyMzc1NCwgMC43NzA2ODksIDEuNTE4MzIsIDIuMjYxMTEsIDQuMDAwMTQsIDUuMDA0MTIiLCBcCi0gICAgICAgICAgIjAuMjc0Mzc5LCAwLjMyNDA2MywgMC43NzIzMDgsIDEuNTE2MDcsIDIuMjYxMiwgNC4wMDAwNywgNS4wMDQiLCBcCi0gICAgICAgICAgIjAuMjc1NTE1LCAwLjMyNDc5MiwgMC43NzA3MDIsIDEuNTE1ODQsIDIuMjYxMjMsIDQuMDA4NzUsIDQuOTk2MjUiLCBcCi0gICAgICAgICAgIjAuMjc3MDMxLCAwLjMyNjE5NiwgMC43NzEwMDksIDEuNTE1OTUsIDIuMjY0NzEsIDQuMDAwODMsIDQuOTk3NTkiLCBcCi0gICAgICAgICAgIjAuMjgxNTg0LCAwLjMyOTkwNywgMC43NzE1NiwgMS41MTU5NywgMi4yNjExMSwgNC4wMDEyOSwgNS4wMDE1MyIsIFwKLSAgICAgICAgICAiMC4yODY3OTksIDAuMzM0NjIyLCAwLjc3MjksIDEuNTE4MjIsIDIuMjYxMjgsIDQuMDAwNzQsIDQuOTk0MDUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjAiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2MTk1OCwgMC4wNzI1MTksIDAuMTY3NTczLCAwLjMyNTY3OCwgMC40ODM0NiwgMC44NTE5MjQsIDEuMDYyNjgiLCBcCi0gICAgICAgICAgIjAuMDcwMDU0LCAwLjA4MDUxNCwgMC4xNzU2NjgsIDAuMzMzNzM4LCAwLjQ5MTUwNywgMC44NTk1NjksIDEuMDcwNTYiLCBcCi0gICAgICAgICAgIjAuMDc5OTE5LCAwLjA5MDQ1NCwgMC4xODU0NTIsIDAuMzQzNDUzLCAwLjUwMTE2MSwgMC44NjkyMSwgMS4wODAyMSIsIFwKLSAgICAgICAgICAiMC4wOTAxNjEsIDAuMTAwNjQ1LCAwLjE5NTQ5OCwgMC4zNTM1NjcsIDAuNTExMTkyLCAwLjg3OTIxOSwgMS4wODk4IiwgXAotICAgICAgICAgICIwLjEwMDQ0NCwgMC4xMTA5OTIsIDAuMjA1NzAyLCAwLjM2MzI2MSwgMC41MjEzODcsIDAuODg5NDA4LCAxLjA5OTU2IiwgXAotICAgICAgICAgICIwLjExNTI4NywgMC4xMjcwNTUsIDAuMjIyMDM1LCAwLjM3OTksIDAuNTM3NjYxLCAwLjkwNTYzMywgMS4xMTU3MyIsIFwKLSAgICAgICAgICAiMC4xMjU5MTYsIDAuMTM4ODU5LCAwLjIzNjQzLCAwLjM5NDA1OCwgMC41NTE5MTIsIDAuOTE5NzksIDEuMTMwMDUiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTI2NjM0LCAwLjE0ODc4NSwgMC4zNDc5MzQsIDAuNjc5OTY4LCAxLjAxMTg3LCAxLjc4NjYzLCAyLjIyODYyIiwgXAotICAgICAgICAgICIwLjEyNjg1MSwgMC4xNDg3OTksIDAuMzQ3OTA0LCAwLjY3OTkzNCwgMS4wMTE4NCwgMS43ODYyMSwgMi4yMjg0NyIsIFwKLSAgICAgICAgICAiMC4xMzExMiwgMC4xNTIwOTgsIDAuMzQ3OTczLCAwLjY3OTk1LCAxLjAxMTgyLCAxLjc4NjA1LCAyLjIyODY2IiwgXAotICAgICAgICAgICIwLjEzODAyNCwgMC4xNTgyNTUsIDAuMzQ5MjA5LCAwLjY4MDAxMywgMS4wMTE4MywgMS43ODY1NSwgMi4yMjkzNiIsIFwKLSAgICAgICAgICAiMC4xNDYwODgsIDAuMTY1Nzc0LCAwLjM1MjU5MSwgMC42Nzk4ODQsIDEuMDExNzcsIDEuNzg2NiwgMi4yMjkwNSIsIFwKLSAgICAgICAgICAiMC4xNjA1OTUsIDAuMTc5NTA5LCAwLjM2MDYzNywgMC42ODE2OTQsIDEuMDExODEsIDEuNzg1OTksIDIuMjI5MDYiLCBcCi0gICAgICAgICAgIjAuMTc0MTA5LCAwLjE5MjQ4NCwgMC4zNjk2NCwgMC42ODU3NDcsIDEuMDEyMzUsIDEuNzg2NTQsIDIuMjI5MDIiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTQ1MTA1LCAwLjE2OTU3LCAwLjM4OTg3NSwgMC43NTcxNzcsIDEuMTIzNjksIDEuOTgwNzgsIDIuNDcwNTUiLCBcCi0gICAgICAgICAgIjAuMTUxMjMyLCAwLjE3NTcxOCwgMC4zOTY0NCwgMC43NjMxODgsIDEuMTMwODUsIDEuOTg3NjksIDIuNDc2OTciLCBcCi0gICAgICAgICAgIjAuMTU5MDQsIDAuMTgzNjg2LCAwLjQwNDA0OCwgMC43NzE2MDcsIDEuMTM4NTYsIDEuOTk1MTcsIDIuNDg0NzkiLCBcCi0gICAgICAgICAgIjAuMTY2ODE5LCAwLjE5MTUyNywgMC40MTIyNTEsIDAuNzc5MjE3LCAxLjE0NjIxLCAyLjAwMjQ5LCAyLjQ5MzYzIiwgXAotICAgICAgICAgICIwLjE3NDk1NywgMC4xOTkzOCwgMC40MjAwNDUsIDAuNzg3MDI1LCAxLjE1NDYxLCAyLjAxMTQ3LCAyLjUwMTA5IiwgXAotICAgICAgICAgICIwLjE4ODA4NywgMC4yMTI2NiwgMC40MzI2NTcsIDAuODAwMzA1LCAxLjE2NzIsIDIuMDI0OTksIDIuNTEyNDQiLCBcCi0gICAgICAgICAgIjAuMTk5MzM1LCAwLjIyMzgyNCwgMC40NDQwMjUsIDAuODExMjY0LCAxLjE3ODEsIDIuMDM0NCwgMi41MjUxNyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yODQwOTYsIDAuMzM0Njg4LCAwLjc4ODg4NywgMS41NDU5NSwgMi4zMDM1LCA0LjA2ODIyLCA1LjA3ODM4IiwgXAotICAgICAgICAgICIwLjI4NDEwOCwgMC4zMzQ1OCwgMC43ODkwNTIsIDEuNTQ1ODIsIDIuMzAyNDQsIDQuMDY4MTYsIDUuMDc2MzIiLCBcCi0gICAgICAgICAgIjAuMjg0MTg3LCAwLjMzNDU3NSwgMC43ODg3ODcsIDEuNTQ1NTYsIDIuMzAyNjQsIDQuMDY4NTYsIDUuMDgwNzkiLCBcCi0gICAgICAgICAgIjAuMjg1NzU3LCAwLjMzNTUzOCwgMC43ODg4NTQsIDEuNTQ1NjEsIDIuMzAzMjUsIDQuMDcxODUsIDUuMDc4MyIsIFwKLSAgICAgICAgICAiMC4yODg3OTIsIDAuMzM3OTU3LCAwLjc4ODcwNiwgMS41NDU0OSwgMi4zMDMzOSwgNC4wNjc4NCwgNS4wNzY4OCIsIFwKLSAgICAgICAgICAiMC4yOTU2MjIsIDAuMzQzOTQyLCAwLjc4OTE2NywgMS41NDU1NiwgMi4zMDIzOSwgNC4wNjkxNiwgNS4wNzY1MSIsIFwKLSAgICAgICAgICAiMC4zMDIzNTIsIDAuMzUwMDQ4LCAwLjc5MTA3LCAxLjU0NTcxLCAyLjMwMjM1LCA0LjA2Nzk0LCA1LjA3ODMxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjA2NTQsIDAuMDcxMjE4LCAwLjE2NjIxOSwgMC4zMjQzNDYsIDAuNDgyMTQzLCAwLjg1MDY5MSwgMS4wNjE0NyIsIFwKLSAgICAgICAgICAiMC4wNjg2NjQsIDAuMDc5MjA4LCAwLjE3NDIzLCAwLjMzMjI3MSwgMC40OTAxOTgsIDAuODU4MjE1LCAxLjA2ODY3IiwgXAotICAgICAgICAgICIwLjA3ODY4NywgMC4wODkyMDYsIDAuMTg0MTgxLCAwLjM0MjE2NiwgMC40OTk5NjEsIDAuODY4MDA4LCAxLjA3OTAyIiwgXAotICAgICAgICAgICIwLjA4ODk4MywgMC4wOTk0NjQsIDAuMTk0MzQ0LCAwLjM1MjM1NSwgMC41MTAwNjQsIDAuODc4MTAxLCAxLjA4ODc0IiwgXAotICAgICAgICAgICIwLjA5OTI1MSwgMC4xMDk3ODgsIDAuMjA0NTQxLCAwLjM2MjUwMywgMC41MjAzMDcsIDAuODg4MzMsIDEuMDk4NDkiLCBcCi0gICAgICAgICAgIjAuMTEzNTg1LCAwLjEyNTYzNywgMC4yMjA3NTIsIDAuMzc4NzQ2LCAwLjUzNjQ1NywgMC45MDQ0MzgsIDEuMTE0NTUiLCBcCi0gICAgICAgICAgIjAuMTI0MjIzLCAwLjEzNzI2NCwgMC4yMzUxMzksIDAuMzkyOTE1LCAwLjU1MDY5NywgMC45MTg2MTUsIDEuMTI4ODciKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTI1MDI5LCAwLjE0NzEzMiwgMC4zNDYxMiwgMC42NzgyMiwgMS4wMTAxNCwgMS43ODQyNSwgMi4yMjY2NiIsIFwKLSAgICAgICAgICAiMC4xMjUyNjksIDAuMTQ3MTQ3LCAwLjM0NjIzMSwgMC42NzgxODcsIDEuMDEwMjMsIDEuNzg0OTYsIDIuMjI3NDQiLCBcCi0gICAgICAgICAgIjAuMTI5NTY1LCAwLjE1MDQ5OSwgMC4zNDYyMTUsIDAuNjc4MTU3LCAxLjAwOTc5LCAxLjc4NDI2LCAyLjIyNzY1IiwgXAotICAgICAgICAgICIwLjEzNjQxOCwgMC4xNTY1OTcsIDAuMzQ3MzkyLCAwLjY3ODE1NywgMS4wMTAxNSwgMS43ODQ5NSwgMi4yMjc2OSIsIFwKLSAgICAgICAgICAiMC4xNDQ0NDgsIDAuMTY0MTA0LCAwLjM1MDc4MiwgMC42Nzc5OCwgMS4wMTAxLCAxLjc4NDksIDIuMjI3NTQiLCBcCi0gICAgICAgICAgIjAuMTU5MDgxLCAwLjE3ODAxOSwgMC4zNTg5MTYsIDAuNjc5NzI0LCAxLjAxMDIyLCAxLjc4NDM2LCAyLjIyNzU2IiwgXAotICAgICAgICAgICIwLjE3Mjc0OSwgMC4xOTEwNywgMC4zNjc4OTcsIDAuNjgzOTc0LCAxLjAxMDYzLCAxLjc4NDYyLCAyLjIyNzYyIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE0MjA1MiwgMC4xNjY0OTksIDAuMzg2NzcsIDAuNzU0NjAyLCAxLjEyMDgxLCAxLjk3NzksIDIuNDY4MjEiLCBcCi0gICAgICAgICAgIjAuMTQ4OTIxLCAwLjE3MzQ2NCwgMC4zOTM3NjgsIDAuNzYxNTEsIDEuMTI4OTYsIDEuOTg1ODIsIDIuNDczOSIsIFwKLSAgICAgICAgICAiMC4xNTc3OTksIDAuMTgxNjcxLCAwLjQwMjY2OCwgMC43Njk3MjcsIDEuMTM3MjEsIDEuOTk0NSwgMi40ODM2NCIsIFwKLSAgICAgICAgICAiMC4xNjY3MzcsIDAuMTkxMjgzLCAwLjQxMTQ0NywgMC43Nzg1MjksIDEuMTQ1NDYsIDIuMDAyNDQsIDIuNDkyODMiLCBcCi0gICAgICAgICAgIjAuMTc1OTc3LCAwLjIwMDQwOSwgMC40MjA2MzUsIDAuNzg3MzI1LCAxLjE1NDg5LCAyLjAxMTY4LCAyLjUwMTQ0IiwgXAotICAgICAgICAgICIwLjE5MTAwMSwgMC4yMTUyMjIsIDAuNDM0ODM3LCAwLjgwMTUyNywgMS4xNjg2LCAyLjAyNDYzLCAyLjUxNDg1IiwgXAotICAgICAgICAgICIwLjIwNDE3NiwgMC4yMjg1NTksIDAuNDQ3NTMyLCAwLjgxNDA3NywgMS4xODA4MiwgMi4wMzgxOCwgMi41MjY0NSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yODQwNiwgMC4zMzQ1NjksIDAuNzg4NzU1LCAxLjU0NjEyLCAyLjMwMzc5LCA0LjA2NzQ5LCA1LjA3NzE4IiwgXAotICAgICAgICAgICIwLjI4NDA4NywgMC4zMzQ2MzQsIDAuNzg4NjA3LCAxLjU0NTkyLCAyLjMwMjg3LCA0LjA2ODk2LCA1LjA3NzMxIiwgXAotICAgICAgICAgICIwLjI4NDEyNCwgMC4zMzQ1NzYsIDAuNzg4OTY4LCAxLjU0NjQyLCAyLjMwMjM4LCA0LjA2ODg2LCA1LjA3ODg0IiwgXAotICAgICAgICAgICIwLjI4NjI0MywgMC4zMzU3MzgsIDAuNzg4NTY0LCAxLjU0NTU1LCAyLjMwMiwgNC4wNywgNS4wNzc3MiIsIFwKLSAgICAgICAgICAiMC4yOTAxNTksIDAuMzM5MDM0LCAwLjc4ODkyNCwgMS41NDU1MywgMi4zMDM0NiwgNC4wNjgwOCwgNS4wNzgxOCIsIFwKLSAgICAgICAgICAiMC4yOTg5MDgsIDAuMzQ2MzQsIDAuNzg5NTM2LCAxLjU0NTQ2LCAyLjMwMzYyLCA0LjA2Nzg1LCA1LjA3OTgzIiwgXAotICAgICAgICAgICIwLjMwNzczNywgMC4zNTQ3MzEsIDAuNzkxNjcyLCAxLjU0NjQyLCAyLjMwMjExLCA0LjA3MDEsIDUuMDc2ODQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyNzU1LCAwLjAwMjc1NCwgMC4wMDI3NTQsIDAuMDAyNzU0LCAwLjAwMjc1MywgMC4wMDI3NTEsIDAuMDAyNzUxIiwgXAotICAgICAgICAgICIwLjAwMjc0MywgMC4wMDI3NDQsIDAuMDAyNzQ0LCAwLjAwMjc0NCwgMC4wMDI3NDQsIDAuMDAyNzQyLCAwLjAwMjc0IiwgXAotICAgICAgICAgICIwLjAwMjc0NCwgMC4wMDI3NDQsIDAuMDAyNzQ0LCAwLjAwMjc0MywgMC4wMDI3NDIsIDAuMDAyNzQsIDAuMDAyNzQiLCBcCi0gICAgICAgICAgIjAuMDAyNzUyLCAwLjAwMjc1MSwgMC4wMDI3NDcsIDAuMDAyNzQ1LCAwLjAwMjc0MywgMC4wMDI3NDEsIDAuMDAyNzQiLCBcCi0gICAgICAgICAgIjAuMDAyNzY4LCAwLjAwMjc2NSwgMC4wMDI3NTUsIDAuMDAyNzQ5LCAwLjAwMjc0NiwgMC4wMDI3NDIsIDAuMDAyNzQxIiwgXAotICAgICAgICAgICIwLjAwMjgwOCwgMC4wMDI4LCAwLjAwMjc3MywgMC4wMDI3NiwgMC4wMDI3NTQsIDAuMDAyNzQ4LCAwLjAwMjc0NSIsIFwKLSAgICAgICAgICAiMC4wMDI4NDksIDAuMDAyODM4LCAwLjAwMjc5NCwgMC4wMDI3NzMsIDAuMDAyNzY0LCAwLjAwMjc1MywgMC4wMDI3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDY0NiwgMC4wMDA2NDYsIDAuMDAwNjQ2LCAwLjAwMDY0NiwgMC4wMDA2NDYsIDAuMDAwNjQ2LCAwLjAwMDY0NiIsIFwKLSAgICAgICAgICAiMC4wMDA2MzMsIDAuMDAwNjMzLCAwLjAwMDYzNywgMC4wMDA2MzgsIDAuMDAwNjM4LCAwLjAwMDYzOSwgMC4wMDA2MzgiLCBcCi0gICAgICAgICAgIjAuMDAwNjI2LCAwLjAwMDYyNywgMC4wMDA2MzMsIDAuMDAwNjM2LCAwLjAwMDYzNywgMC4wMDA2MzcsIDAuMDAwNjM3IiwgXAotICAgICAgICAgICIwLjAwMDYyNSwgMC4wMDA2MjYsIDAuMDAwNjMyLCAwLjAwMDYzNSwgMC4wMDA2MzYsIDAuMDAwNjM3LCAwLjAwMDYzNiIsIFwKLSAgICAgICAgICAiMC4wMDA2MywgMC4wMDA2MzEsIDAuMDAwNjM1LCAwLjAwMDYzNiwgMC4wMDA2MzcsIDAuMDAwNjM3LCAwLjAwMDYzNyIsIFwKLSAgICAgICAgICAiMC4wMDA2NTMsIDAuMDAwNjUsIDAuMDAwNjQ0LCAwLjAwMDY0MSwgMC4wMDA2NCwgMC4wMDA2MzksIDAuMDAwNjM4IiwgXAotICAgICAgICAgICIwLjAwMDY4NSwgMC4wMDA2OCwgMC4wMDA2NTksIDAuMDAwNjUsIDAuMDAwNjQ2LCAwLjAwMDY0MiwgMC4wMDA2NDEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyNDk1LCAwLjAwMjQ5NSwgMC4wMDI0OTUsIDAuMDAyNDk3LCAwLjAwMjQ5NCwgMC4wMDI0OTMsIDAuMDAyNDkyIiwgXAotICAgICAgICAgICIwLjAwMjQ4NSwgMC4wMDI0ODYsIDAuMDAyNDg2LCAwLjAwMjQ4NiwgMC4wMDI0ODUsIDAuMDAyNDg0LCAwLjAwMjQ4MyIsIFwKLSAgICAgICAgICAiMC4wMDI0OTUsIDAuMDAyNDk0LCAwLjAwMjQ4OSwgMC4wMDI0ODYsIDAuMDAyNDg1LCAwLjAwMjQ4MywgMC4wMDI0ODIiLCBcCi0gICAgICAgICAgIjAuMDAyNTEyLCAwLjAwMjUwOSwgMC4wMDI0OTcsIDAuMDAyNDksIDAuMDAyNDg3LCAwLjAwMjQ4NCwgMC4wMDI0ODMiLCBcCi0gICAgICAgICAgIjAuMDAyNTM4LCAwLjAwMjUzMywgMC4wMDI1MDksIDAuMDAyNDk3LCAwLjAwMjQ5MiwgMC4wMDI0ODYsIDAuMDAyNDg1IiwgXAotICAgICAgICAgICIwLjAwMjU5MywgMC4wMDI1ODEsIDAuMDAyNTM2LCAwLjAwMjUxNCwgMC4wMDI1MDMsIDAuMDAyNDkyLCAwLjAwMjQ5IiwgXAotICAgICAgICAgICIwLjAwMjY1MiwgMC4wMDI2MzUsIDAuMDAyNTY3LCAwLjAwMjUyNiwgMC4wMDI1MTgsIDAuMDAyNSwgMC4wMDI0OTYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDA0MzUsIDAuMDAwNDM1LCAwLjAwMDQzOCwgMC4wMDA0MzgsIDAuMDAwNDM5LCAwLjAwMDQzOSwgMC4wMDA0MzkiLCBcCi0gICAgICAgICAgIjAuMDAwNDI1LCAwLjAwMDQyOCwgMC4wMDA0MzgsIDAuMDAwNDQyLCAwLjAwMDQ0MywgMC4wMDA0NDUsIDAuMDAwNDQ1IiwgXAotICAgICAgICAgICIwLjAwMDQxLCAwLjAwMDQxNSwgMC4wMDA0MzIsIDAuMDAwNDM5LCAwLjAwMDQ0MiwgMC4wMDA0NDQsIDAuMDAwNDQ1IiwgXAotICAgICAgICAgICIwLjAwMDQwMywgMC4wMDA0MDgsIDAuMDAwNDI4LCAwLjAwMDQzNywgMC4wMDA0NCwgMC4wMDA0NDMsIDAuMDAwNDQ0IiwgXAotICAgICAgICAgICIwLjAwMDQwMywgMC4wMDA0MDgsIDAuMDAwNDI3LCAwLjAwMDQzNiwgMC4wMDA0NCwgMC4wMDA0NDMsIDAuMDAwNDQ0IiwgXAotICAgICAgICAgICIwLjAwMDQxOCwgMC4wMDA0MiwgMC4wMDA0MzIsIDAuMDAwNDM5LCAwLjAwMDQ0MiwgMC4wMDA0NDQsIDAuMDAwNDQ1IiwgXAotICAgICAgICAgICIwLjAwMDQ0NywgMC4wMDA0NDYsIDAuMDAwNDQ0LCAwLjAwMDQ0NSwgMC4wMDA0NDYsIDAuMDAwNDQ3LCAwLjAwMDQ0NyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDE5OTcsIDAuMDAxOTk3LCAwLjAwMTk5OCwgMC4wMDE5OTgsIDAuMDAxOTk4LCAwLjAwMTk5OCwgMC4wMDE5OTgiLCBcCi0gICAgICAgICAgIjAuMDAxOTk5LCAwLjAwMTk5OCwgMC4wMDIsIDAuMDAyMDAxLCAwLjAwMTk5OSwgMC4wMDIwMDEsIDAuMDAyMDAxIiwgXAotICAgICAgICAgICIwLjAwMjAxNiwgMC4wMDIwMTQsIDAuMDAyMDA5LCAwLjAwMjAwNSwgMC4wMDIwMDMsIDAuMDAyMDAzLCAwLjAwMjAwMiIsIFwKLSAgICAgICAgICAiMC4wMDIwNDQsIDAuMDAyMDM4LCAwLjAwMjAyMSwgMC4wMDIwMTIsIDAuMDAyMDA4LCAwLjAwMjAwNSwgMC4wMDIwMDQiLCBcCi0gICAgICAgICAgIjAuMDAyMDc4LCAwLjAwMjA3LCAwLjAwMjAzNiwgMC4wMDIwMjIsIDAuMDAyMDE2LCAwLjAwMjAwOSwgMC4wMDIwMDciLCBcCi0gICAgICAgICAgIjAuMDAyMTUsIDAuMDAyMTMzLCAwLjAwMjA2OCwgMC4wMDIwNCwgMC4wMDIwMywgMC4wMDIwMTgsIDAuMDAyMDEzIiwgXAotICAgICAgICAgICIwLjAwMjIzNiwgMC4wMDIyMDYsIDAuMDAyMTA1LCAwLjAwMjA2LCAwLjAwMjA0NiwgMC4wMDIwMjgsIDAuMDAyMDIzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwNjc0LCAwLjAwMDY3NSwgMC4wMDA2NzcsIDAuMDAwNjc4LCAwLjAwMDY3OCwgMC4wMDA2NzcsIDAuMDAwNjc3IiwgXAotICAgICAgICAgICIwLjAwMDY1OSwgMC4wMDA2NjIsIDAuMDAwNjcxLCAwLjAwMDY3NCwgMC4wMDA2NzUsIDAuMDAwNjc2LCAwLjAwMDY3NiIsIFwKLSAgICAgICAgICAiMC4wMDA2NTIsIDAuMDAwNjU1LCAwLjAwMDY2NiwgMC4wMDA2NzIsIDAuMDAwNjc0LCAwLjAwMDY3NSwgMC4wMDA2NzUiLCBcCi0gICAgICAgICAgIjAuMDAwNjU4LCAwLjAwMDY1OSwgMC4wMDA2NjcsIDAuMDAwNjcyLCAwLjAwMDY3MywgMC4wMDA2NzUsIDAuMDAwNjc1IiwgXAotICAgICAgICAgICIwLjAwMDY3NCwgMC4wMDA2NzMsIDAuMDAwNjcyLCAwLjAwMDY3NCwgMC4wMDA2NzUsIDAuMDAwNjc2LCAwLjAwMDY3NiIsIFwKLSAgICAgICAgICAiMC4wMDA3MTYsIDAuMDAwNzEsIDAuMDAwNjg5LCAwLjAwMDY4MiwgMC4wMDA2ODEsIDAuMDAwNjc5LCAwLjAwMDY3OCIsIFwKLSAgICAgICAgICAiMC4wMDA3NywgMC4wMDA3NTcsIDAuMDAwNzEzLCAwLjAwMDY5NSwgMC4wMDA2ODksIDAuMDAwNjg0LCAwLjAwMDY4MiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDE2ODEsIDAuMDAxNjgxLCAwLjAwMTY4MywgMC4wMDE2ODQsIDAuMDAxNjg0LCAwLjAwMTY4NCwgMC4wMDE2ODQiLCBcCi0gICAgICAgICAgIjAuMDAxNjgzLCAwLjAwMTY4NCwgMC4wMDE2ODgsIDAuMDAxNjkxLCAwLjAwMTY4OSwgMC4wMDE2OSwgMC4wMDE2OTEiLCBcCi0gICAgICAgICAgIjAuMDAxNjk3LCAwLjAwMTY5NywgMC4wMDE2OTUsIDAuMDAxNjk0LCAwLjAwMTY5NCwgMC4wMDE2OTQsIDAuMDAxNjk0IiwgXAotICAgICAgICAgICIwLjAwMTcyLCAwLjAwMTcxNSwgMC4wMDE3MDQsIDAuMDAxNjk5LCAwLjAwMTY5NywgMC4wMDE2OTUsIDAuMDAxNjk1IiwgXAotICAgICAgICAgICIwLjAwMTc1LCAwLjAwMTc0NCwgMC4wMDE3MTgsIDAuMDAxNzA0LCAwLjAwMTcwMywgMC4wMDE2OTgsIDAuMDAxNjk3IiwgXAotICAgICAgICAgICIwLjAwMTgyMywgMC4wMDE4MDgsIDAuMDAxNzUsIDAuMDAxNzI2LCAwLjAwMTcxNywgMC4wMDE3MDcsIDAuMDAxNzAzIiwgXAotICAgICAgICAgICIwLjAwMTkwNCwgMC4wMDE4NzYsIDAuMDAxNzg1LCAwLjAwMTc0OCwgMC4wMDE3MzMsIDAuMDAxNzE3LCAwLjAwMTcxMiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDY3NCwgMC4wMDA2NzQsIDAuMDAwNjc3LCAwLjAwMDY3OCwgMC4wMDA2NzgsIDAuMDAwNjc3LCAwLjAwMDY4MiIsIFwKLSAgICAgICAgICAiMC4wMDA2NjMsIDAuMDAwNjY1LCAwLjAwMDY3MiwgMC4wMDA2NzUsIDAuMDAwNjc2LCAwLjAwMDY3NywgMC4wMDA2NzciLCBcCi0gICAgICAgICAgIjAuMDAwNjY5LCAwLjAwMDY2NywgMC4wMDA2NzMsIDAuMDAwNjc1LCAwLjAwMDY3NiwgMC4wMDA2NzcsIDAuMDAwNjc3IiwgXAotICAgICAgICAgICIwLjAwMDY4OSwgMC4wMDA2ODcsIDAuMDAwNjgxLCAwLjAwMDY3OSwgMC4wMDA2NzksIDAuMDAwNjc4LCAwLjAwMDY3OCIsIFwKLSAgICAgICAgICAiMC4wMDA3MjEsIDAuMDAwNzE1LCAwLjAwMDY5MywgMC4wMDA2ODUsIDAuMDAwNjgzLCAwLjAwMDY4LCAwLjAwMDY4IiwgXAotICAgICAgICAgICIwLjAwMDc4OCwgMC4wMDA3NzUsIDAuMDAwNzI5LCAwLjAwMDcwMywgMC4wMDA2OTUsIDAuMDAwNjg3LCAwLjAwMDY4NSIsIFwKLSAgICAgICAgICAiMC4wMDA4NTQsIDAuMDAwODM4LCAwLjAwMDc2MSwgMC4wMDA3MjMsIDAuMDAwNzA5LCAwLjAwMDY5NSwgMC4wMDA2OTIiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotfQpkaWZmIC0tZ2l0IGEvZmxvdy9wbnIvRVhBTVBMRVMvSU5OT1ZVUy9ERVNJR04vR1BESy9MSUJTL0dQREswNDUvdGltaW5nL3Nsb3cubGliIGIvZmxvdy9wbnIvRVhBTVBMRVMvSU5OT1ZVUy9ERVNJR04vR1BESy9MSUJTL0dQREswNDUvdGltaW5nL3Nsb3cubGliCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDc1NQppbmRleCA2Yzg5NDY2Li4wMDAwMDAwCi0tLSBhL2Zsb3cvcG5yL0VYQU1QTEVTL0lOTk9WVVMvREVTSUdOL0dQREsvTElCUy9HUERLMDQ1L3RpbWluZy9zbG93LmxpYgorKysgL2Rldi9udWxsCkBAIC0xLDE4NzU2NiArMCwwIEBACi0vKgotIGRlbGF5IG1vZGVsIDogICAgICAgbWF4Ci0gY2hlY2sgbW9kZWwgOiAgICAgICBtYXgKLSBwb3dlciBtb2RlbCA6ICAgICAgIG1heAotIGNhcGFjaXRhbmNlIG1vZGVsIDogbWF4Ci0gb3RoZXIgbW9kZWwgOiAgICAgICBtYXgKLSovCi1saWJyYXJ5KGdwZGswNDViYykgewotCi0gIGRlbGF5X21vZGVsIDogdGFibGVfbG9va3VwOwotICBpbl9wbGFjZV9zd2FwX21vZGUgOiBtYXRjaF9mb290cHJpbnQ7Ci0KLSAgLyogdW5pdCBhdHRyaWJ1dGVzICovCi0gIHRpbWVfdW5pdCA6ICIxbnMiOwotICB2b2x0YWdlX3VuaXQgOiAiMVYiOwotICBjdXJyZW50X3VuaXQgOiAiMW1BIjsKLSAgcHVsbGluZ19yZXNpc3RhbmNlX3VuaXQgOiAiMWtvaG0iOwotICBsZWFrYWdlX3Bvd2VyX3VuaXQgOiAiMW5XIjsKLSAgY2FwYWNpdGl2ZV9sb2FkX3VuaXQgKDEscGYpOwotCi0gIHBvd2VyX3N1cHBseSAoKSB7Ci0gICAgICBkZWZhdWx0X3Bvd2VyX3JhaWwgOiBSQUlMX1ZERDsKLSAgICAgIHBvd2VyX3JhaWwoIFJBSUxfVkRELCAxLjA4ICk7Ci0gICAgICBwb3dlcl9yYWlsKCBSQUlMX1ZTUywgMCApOwotICB9Ci0KLSAgc2xld191cHBlcl90aHJlc2hvbGRfcGN0X3Jpc2UgOiA5MDsKLSAgc2xld19sb3dlcl90aHJlc2hvbGRfcGN0X3Jpc2UgOiAxMDsKLSAgc2xld191cHBlcl90aHJlc2hvbGRfcGN0X2ZhbGwgOiA5MDsKLSAgc2xld19sb3dlcl90aHJlc2hvbGRfcGN0X2ZhbGwgOiAxMDsKLSAgaW5wdXRfdGhyZXNob2xkX3BjdF9yaXNlIDogNTA7Ci0gIGlucHV0X3RocmVzaG9sZF9wY3RfZmFsbCA6IDUwOwotICBvdXRwdXRfdGhyZXNob2xkX3BjdF9yaXNlIDogNTA7Ci0gIG91dHB1dF90aHJlc2hvbGRfcGN0X2ZhbGwgOiA1MDsKLSAgbm9tX3Byb2Nlc3MgOiAxOwotICBub21fdm9sdGFnZSA6IDEuMDg7Ci0gIG5vbV90ZW1wZXJhdHVyZSA6IDEyNTsKLSAgb3BlcmF0aW5nX2NvbmRpdGlvbnMgKCBzbG93ICkgewotICAgICBwcm9jZXNzIDogMTsKLSAgICAgdm9sdGFnZSA6IDEuMDg7Ci0gICAgIHRlbXBlcmF0dXJlIDogMTI1OwotICAgICBwb3dlcl9yYWlsKCBSQUlMX1ZERCwgMS4wOCApOwotICAgICBwb3dlcl9yYWlsKCBSQUlMX1ZTUywgMCApOwotICB9Ci0gIGRlZmF1bHRfb3BlcmF0aW5nX2NvbmRpdGlvbnMgOiBzbG93OwotICBkZWZhdWx0X21heF90cmFuc2l0aW9uIDogICAgICAwLjgxMzYKLSAgZGVmYXVsdF9mYW5vdXRfbG9hZCA6IDEgOwotCi0gIGx1X3RhYmxlX3RlbXBsYXRlKGRlbGF5X3RlbXBsYXRlXzd4MSkgewotICAgIHZhcmlhYmxlXzEgOiBpbnB1dF9uZXRfdHJhbnNpdGlvbjsKLSAgICBpbmRleF8xICgiMTAwMC4wLCAxMDAxLjAsIDEwMDIuMCwgMTAwMy4wLCAxMDA0LjAsIDEwMDUuMCwgMTAwNi4wIik7Ci0gIH0KLSAgbHVfdGFibGVfdGVtcGxhdGUoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgdmFyaWFibGVfMSA6IGlucHV0X25ldF90cmFuc2l0aW9uOwotICAgIHZhcmlhYmxlXzIgOiB0b3RhbF9vdXRwdXRfbmV0X2NhcGFjaXRhbmNlOwotICAgIGluZGV4XzEgKCIxMDAwLjAsIDEwMDEuMCwgMTAwMi4wLCAxMDAzLjAsIDEwMDQuMCwgMTAwNS4wLCAxMDA2LjAiKTsKLSAgICBpbmRleF8yICgiMTAwMC4wLCAxMDAxLjAsIDEwMDIuMCwgMTAwMy4wLCAxMDA0LjAsIDEwMDUuMCwgMTAwNi4wIik7Ci0gIH0KLSAgcG93ZXJfbHV0X3RlbXBsYXRlKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICB2YXJpYWJsZV8xIDogaW5wdXRfdHJhbnNpdGlvbl90aW1lOwotICAgIHZhcmlhYmxlXzIgOiB0b3RhbF9vdXRwdXRfbmV0X2NhcGFjaXRhbmNlOwotICAgIGluZGV4XzEgKCIxMDAwLjAsIDEwMDEuMCwgMTAwMi4wLCAxMDAzLjAsIDEwMDQuMCwgMTAwNS4wLCAxMDA2LjAiKTsKLSAgICBpbmRleF8yICgiMTAwMC4wLCAxMDAxLjAsIDEwMDIuMCwgMTAwMy4wLCAxMDA0LjAsIDEwMDUuMCwgMTAwNi4wIik7Ci0gIH0KLSAgbHVfdGFibGVfdGVtcGxhdGUoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICB2YXJpYWJsZV8xIDogY29uc3RyYWluZWRfcGluX3RyYW5zaXRpb247Ci0gICAgdmFyaWFibGVfMiA6IHJlbGF0ZWRfcGluX3RyYW5zaXRpb247Ci0gICAgaW5kZXhfMSAoIjEwMDAuMCwgMTAwMS4wLCAxMDAyLjAsIDEwMDMuMCwgMTAwNC4wLCAxMDA1LjAsIDEwMDYuMCIpOwotICAgIGluZGV4XzIgKCIxMDAwLjAsIDEwMDEuMCwgMTAwMi4wLCAxMDAzLjAsIDEwMDQuMCwgMTAwNS4wLCAxMDA2LjAiKTsKLSAgfQotICBwb3dlcl9sdXRfdGVtcGxhdGUocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgdmFyaWFibGVfMSA6IGlucHV0X3RyYW5zaXRpb25fdGltZTsKLSAgICBpbmRleF8xICgiMTAwMC4wLCAxMDAxLjAsIDEwMDIuMCwgMTAwMy4wLCAxMDA0LjAsIDEwMDUuMCwgMTAwNi4wIik7Ci0gIH0KLSAgbHVfdGFibGVfdGVtcGxhdGUocmVjb3ZlcnlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgdmFyaWFibGVfMSA6IGNvbnN0cmFpbmVkX3Bpbl90cmFuc2l0aW9uOwotICAgIHZhcmlhYmxlXzIgOiByZWxhdGVkX3Bpbl90cmFuc2l0aW9uOwotICAgIGluZGV4XzEgKCIxMDAwLjAsIDEwMDEuMCwgMTAwMi4wLCAxMDAzLjAsIDEwMDQuMCwgMTAwNS4wLCAxMDA2LjAiKTsKLSAgICBpbmRleF8yICgiMTAwMC4wLCAxMDAxLjAsIDEwMDIuMCwgMTAwMy4wLCAxMDA0LjAsIDEwMDUuMCwgMTAwNi4wIik7Ci0gIH0KLSAgbHVfdGFibGVfdGVtcGxhdGUocmVtb3ZhbF90ZW1wbGF0ZV83eDcpIHsKLSAgICB2YXJpYWJsZV8xIDogY29uc3RyYWluZWRfcGluX3RyYW5zaXRpb247Ci0gICAgdmFyaWFibGVfMiA6IHJlbGF0ZWRfcGluX3RyYW5zaXRpb247Ci0gICAgaW5kZXhfMSAoIjEwMDAuMCwgMTAwMS4wLCAxMDAyLjAsIDEwMDMuMCwgMTAwNC4wLCAxMDA1LjAsIDEwMDYuMCIpOwotICAgIGluZGV4XzIgKCIxMDAwLjAsIDEwMDEuMCwgMTAwMi4wLCAxMDAzLjAsIDEwMDQuMCwgMTAwNS4wLCAxMDA2LjAiKTsKLSAgfQotICBsdV90YWJsZV90ZW1wbGF0ZShzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICB2YXJpYWJsZV8xIDogY29uc3RyYWluZWRfcGluX3RyYW5zaXRpb247Ci0gICAgdmFyaWFibGVfMiA6IHJlbGF0ZWRfcGluX3RyYW5zaXRpb247Ci0gICAgaW5kZXhfMSAoIjEwMDAuMCwgMTAwMS4wLCAxMDAyLjAsIDEwMDMuMCwgMTAwNC4wLCAxMDA1LjAsIDEwMDYuMCIpOwotICAgIGluZGV4XzIgKCIxMDAwLjAsIDEwMDEuMCwgMTAwMi4wLCAxMDAzLjAsIDEwMDQuMCwgMTAwNS4wLCAxMDA2LjAiKTsKLSAgfQotICBsdV90YWJsZV90ZW1wbGF0ZSh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICB2YXJpYWJsZV8xIDogcmVsYXRlZF9waW5fdHJhbnNpdGlvbjsKLSAgICBpbmRleF8xICgiMTAwMC4wLCAxMDAxLjAsIDEwMDIuMCwgMTAwMy4wLCAxMDA0LjAsIDEwMDUuMCwgMTAwNi4wIik7Ci0gIH0KLQotLyogLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBBRERGSFgyICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKEFEREZIWDIpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4zMjc3NzQ7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMjg5NTk0OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMjg4OTk5OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMjg5NTk0OwotICB9Ci0gIHBpbihCKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDI4NjQ4MjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDI4NTE3NDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDI4NjQ4MjsKLSAgfQotICBwaW4oQ0kpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMjIwMDMzOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMjE4NzYzOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMjIwMDMzOwotICB9Ci0gIHBpbihDTykgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjI2MjU3NTsKLSAgICBmdW5jdGlvbiA6ICIoKChBIEIpKyhCIENJKSkrKENJIEEpKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjA1ODMyLCAwLjM5NTU1MywgMC41Mzk4MTYsIDAuNzE4OTgzLCAwLjg5OTE2LCAxLjA4MTE2LCAxLjI1OTY2IiwgXAotICAgICAgICAgICIwLjIxNzUyMywgMC40MDcyMzUsIDAuNTUxMDgsIDAuNzMwNzE4LCAwLjkxMDYzMiwgMS4wOTEzOCwgMS4yNzIxMyIsIFwKLSAgICAgICAgICAiMC4yMzIxNDYsIDAuNDIxODIxLCAwLjU2NTcwNCwgMC43NDQ5MTUsIDAuOTI2MDA1LCAxLjEwNTQ2LCAxLjI4NTQ1IiwgXAotICAgICAgICAgICIwLjI0NjAzMSwgMC40MzU3MzgsIDAuNTc5NzQzLCAwLjc1OTAyMywgMC45MzkzNDIsIDEuMTE5MTksIDEuMjk5NSIsIFwKLSAgICAgICAgICAiMC4yNTk3MDMsIDAuNDQ5NDExLCAwLjU5MzQzMiwgMC43NzI2OTcsIDAuOTUzMDAxLCAxLjEzMjg2LCAxLjMxMzA2IiwgXAotICAgICAgICAgICIwLjI4MTM4NCwgMC40NzEwNTcsIDAuNjE0OTMsIDAuNzkzODY0LCAwLjk3NDc4NSwgMS4xNTE5MywgMS4zMzQ5NiIsIFwKLSAgICAgICAgICAiMC4zMDA0MDcsIDAuNDkwMTExLCAwLjYzNDAyNiwgMC44MTMzNDcsIDAuOTkyNDE4LCAxLjE3MzM4LCAxLjM1MzY4Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExNDAxMywgMC40NjM5NzUsIDAuNzU2MDU5LCAxLjEyNTY5LCAxLjQ4OTY5LCAxLjg1OTE4LCAyLjIzMjczIiwgXAotICAgICAgICAgICIwLjExNDE2NCwgMC40NjM5MzYsIDAuNzUyODc2LCAxLjEyNDUzLCAxLjQ5NDE3LCAxLjg1ODQ1LCAyLjIyOTY2IiwgXAotICAgICAgICAgICIwLjExNDQ0MSwgMC40NjM2NTQsIDAuNzUzMTc0LCAxLjEyNTAxLCAxLjQ5MTU1LCAxLjg2MzYyLCAyLjIyODI0IiwgXAotICAgICAgICAgICIwLjExNDMxNywgMC40NjI4MzEsIDAuNzU1ODkzLCAxLjEyNDU0LCAxLjQ4OTE3LCAxLjg1NTE4LCAyLjIzMjg0IiwgXAotICAgICAgICAgICIwLjExNDEzNSwgMC40NjI4MTYsIDAuNzU2MDcsIDEuMTI0NTUsIDEuNDg5NDEsIDEuODU0NiwgMi4yMzI4IiwgXAotICAgICAgICAgICIwLjExNDAxLCAwLjQ2MTU1OCwgMC43NTk5OTIsIDEuMTI1MzUsIDEuNDg1NDQsIDEuODYzNzUsIDIuMjA4NjciLCBcCi0gICAgICAgICAgIjAuMTEyNzc4LCAwLjQ2MzkxMSwgMC43NTU5ODUsIDEuMTI0NjgsIDEuNDk0NDMsIDEuODUwNDcsIDIuMjMwMTgiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTk5OTg0LCAwLjQxNTQ2MSwgMC41ODA4NDYsIDAuNzg3Mzg1LCAwLjk5Mzg4MiwgMS4xOTk4OCwgMS40MDkyMyIsIFwKLSAgICAgICAgICAiMC4yMTE1OTMsIDAuNDI3MTIsIDAuNTkyNTg4LCAwLjc5ODg3OSwgMS4wMDU1OSwgMS4yMTMyOCwgMS40MTk0NSIsIFwKLSAgICAgICAgICAiMC4yMjU3OTUsIDAuNDQxMjg2LCAwLjYwNjY4OSwgMC44MTMwNDUsIDEuMDE5MTEsIDEuMjI1NTQsIDEuNDMzNjIiLCBcCi0gICAgICAgICAgIjAuMjM4ODExLCAwLjQ1NDM0MSwgMC42MTk4MjMsIDAuODI2MTAyLCAxLjAzMjA2LCAxLjIzODUxLCAxLjQ0NjExIiwgXAotICAgICAgICAgICIwLjI1MTY3MiwgMC40NjcwMjgsIDAuNjMyNzIyLCAwLjgzODk3NywgMS4wNDQ3OSwgMS4yNTI0LCAxLjQ1NzUiLCBcCi0gICAgICAgICAgIjAuMjcxNTc4LCAwLjQ4NzA4OSwgMC42NTI2MTYsIDAuODU4ODU2LCAxLjA2NDkzLCAxLjI3MTMxLCAxLjQ3NzM0IiwgXAotICAgICAgICAgICIwLjI4ODgxMywgMC41MDQyODMsIDAuNjY5ODkzLCAwLjg3NjEyNSwgMS4wODIyLCAxLjI4ODgxLCAxLjQ5NTE1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEyMTc0NiwgMC41MTY4OTUsIDAuODQwMzQ2LCAxLjI0OTI2LCAxLjY2MTM2LCAyLjA2ODAxLCAyLjQ4NDE3IiwgXAotICAgICAgICAgICIwLjEyMDk4NSwgMC41MTYwMDIsIDAuODQwMzM3LCAxLjI1MDE4LCAxLjY2MTQ5LCAyLjA3MjU4LCAyLjQ4MDMyIiwgXAotICAgICAgICAgICIwLjEyMTY5MiwgMC41MTY4ODEsIDAuODQxNDE0LCAxLjI0OTI2LCAxLjY2MDk3LCAyLjA2OTg5LCAyLjQ4NDEyIiwgXAotICAgICAgICAgICIwLjEyMDU5NSwgMC41MTYzNzYsIDAuODQxMjI1LCAxLjI0OTIxLCAxLjY2MTMzLCAyLjA2ODYzLCAyLjQ4NDE0IiwgXAotICAgICAgICAgICIwLjEyMTU3NSwgMC41MTY0NDcsIDAuODQxMjM1LCAxLjI1MDI5LCAxLjY2MTQ0LCAyLjA2OTIxLCAyLjQ3OTM5IiwgXAotICAgICAgICAgICIwLjEyMTM5NCwgMC41MTY4MjEsIDAuODQwMzE2LCAxLjI0OTMzLCAxLjY2MTYsIDIuMDcyNzcsIDIuNDgwNTYiLCBcCi0gICAgICAgICAgIjAuMTIxMDMsIDAuNTE2NzkyLCAwLjg0MDMxNywgMS4yNTAyOSwgMS42NjEyNSwgMi4wNzEzNCwgMi40ODQxMiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMDU4MjgsIDAuMzk1NTM0LCAwLjUzOTc0LCAwLjcyMDIyNCwgMC45MDEwMTQsIDEuMDc5ODcsIDEuMjYxMDkiLCBcCi0gICAgICAgICAgIjAuMjE2MjY1LCAwLjQwNjAyNywgMC41NTAyMTIsIDAuNzI5NTcyLCAwLjkwODgwMywgMS4wOTEzNywgMS4yNzA0OSIsIFwKLSAgICAgICAgICAiMC4yMjk2MDEsIDAuNDE5MjU5LCAwLjU2MzU3MSwgMC43NDI5OTQsIDAuOTIyMTI3LCAxLjEwNDc5LCAxLjI4MzcyIiwgXAotICAgICAgICAgICIwLjI0MjE5OSwgMC40MzE5NjksIDAuNTc2MTQ5LCAwLjc1NTczMSwgMC45MzQ4OTksIDEuMTE3MjcsIDEuMjk2NDciLCBcCi0gICAgICAgICAgIjAuMjU1NDM4LCAwLjQ0NTEyNSwgMC41ODk0MjEsIDAuNzY4NDY1LCAwLjk0OTk5MiwgMS4xMzA3NSwgMS4zMTAwMiIsIFwKLSAgICAgICAgICAiMC4yNzY4ODQsIDAuNDY2NjMsIDAuNjEwODQzLCAwLjc5MDE5MSwgMC45Njk0NDksIDEuMTUyMTMsIDEuMzMwODEiLCBcCi0gICAgICAgICAgIjAuMjk1NzU2LCAwLjQ4NTUyMSwgMC42Mjk3MzcsIDAuODA5MTQsIDAuOTg4MzMyLCAxLjE3MDk5LCAxLjM0OTc5Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExNDQ4MiwgMC40NjM5MTMsIDAuNzUzMDAyLCAxLjEyNDU0LCAxLjQ5MDE1LCAxLjg2MDQ0LCAyLjIzMTA2IiwgXAotICAgICAgICAgICIwLjExMzk1NiwgMC40NjcyOTgsIDAuNzU0NTkzLCAxLjEyNTY2LCAxLjQ5MzQ0LCAxLjg0NjY2LCAyLjIyNjY0IiwgXAotICAgICAgICAgICIwLjExNDEzMiwgMC40NjQwMTksIDAuNzUzMTkyLCAxLjEyNTkxLCAxLjQ5Mzc2LCAxLjg1NjUsIDIuMjI0NTIiLCBcCi0gICAgICAgICAgIjAuMTE0NTA4LCAwLjQ2NjkxNywgMC43NTIwOTEsIDEuMTI2OTYsIDEuNDkwMDUsIDEuODM2NDcsIDIuMjMyMiIsIFwKLSAgICAgICAgICAiMC4xMTQ1NiwgMC40NjM3OTksIDAuNzUyODA3LCAxLjEyMzc0LCAxLjQ5NDYxLCAxLjg2MDgxLCAyLjIyNTA3IiwgXAotICAgICAgICAgICIwLjExNDMxOSwgMC40NjM2NzUsIDAuNzUyMjAyLCAxLjEyNDc4LCAxLjQ4ODIyLCAxLjg1OTExLCAyLjIyNTYiLCBcCi0gICAgICAgICAgIjAuMTE0MDE2LCAwLjQ2MzYwMSwgMC43NTE1NjYsIDEuMTI1MjEsIDEuNDg1OSwgMS44NjMzMSwgMi4yMDczNSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xOTYzNTQsIDAuNDE0MjQ2LCAwLjU3OTkxNSwgMC43ODYwMywgMC45OTE1MDksIDEuMTk4MjYsIDEuNDA0ODMiLCBcCi0gICAgICAgICAgIjAuMjA4MTY5LCAwLjQyNjAzOCwgMC41OTE2MzIsIDAuNzk3ODI3LCAxLjAwMzMxLCAxLjIxMDA4LCAxLjQxNjMxIiwgXAotICAgICAgICAgICIwLjIyMTk4MywgMC40Mzk4OTUsIDAuNjA1NTExLCAwLjgxMTYyMSwgMS4wMTcyLCAxLjIyMzM4LCAxLjQzMDQ0IiwgXAotICAgICAgICAgICIwLjIzNTA5NCwgMC40NTI5OTcsIDAuNjE4NDkyLCAwLjgyNDc4MiwgMS4wMzAyNiwgMS4yMzY5NiwgMS40NDMzOCIsIFwKLSAgICAgICAgICAiMC4yNDc2NzgsIDAuNDY1NTY4LCAwLjYzMTExNSwgMC44MzczNTgsIDEuMDQyODQsIDEuMjQ5NTYsIDEuNDU1OTEiLCBcCi0gICAgICAgICAgIjAuMjY3NTgxLCAwLjQ4NTQ2NSwgMC42NTEwMzUsIDAuODU2NzQxLCAxLjA2Mjc0LCAxLjI2OTUsIDEuNDc1NTEiLCBcCi0gICAgICAgICAgIjAuMjg0NjU1LCAwLjUwMjUyOSwgMC42NjgxMTgsIDAuODczODc1LCAxLjA3OTgzLCAxLjI4NzIxLCAxLjQ5MzI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEyNTM5NSwgMC41MTk2NTEsIDAuODQxMzc3LCAxLjI0OTQsIDEuNjYxMzgsIDIuMDcwODIsIDIuNDg0MTciLCBcCi0gICAgICAgICAgIjAuMTI1MTIsIDAuNTE5Njg1LCAwLjg0MTMzMSwgMS4yNDk0MiwgMS42NTkxNSwgMi4wNzA2OSwgMi40ODQxNiIsIFwKLSAgICAgICAgICAiMC4xMjUwOSwgMC41MTc5MzIsIDAuODQwNDIxLCAxLjI1MDQsIDEuNjYxMTQsIDIuMDcwMzYsIDIuNDg0MTMiLCBcCi0gICAgICAgICAgIjAuMTI0Nzc3LCAwLjUxOTYwNSwgMC44NDEyODIsIDEuMjUwMDUsIDEuNjYxNjcsIDIuMDY3NTIsIDIuNDgzODYiLCBcCi0gICAgICAgICAgIjAuMTI0ODA4LCAwLjUxOTUyOCwgMC44NDAzMzIsIDEuMjQ5MzksIDEuNjYwNjksIDIuMDY5OTUsIDIuNDg0MTMiLCBcCi0gICAgICAgICAgIjAuMTI0Nzc1LCAwLjUxODc0MiwgMC44NDA1NzMsIDEuMjQ5MjcsIDEuNjYxMjcsIDIuMDY4MywgMi40Nzc3NCIsIFwKLSAgICAgICAgICAiMC4xMjQ4MDIsIDAuNTE4NjE5LCAwLjg0MDMzMiwgMS4yNDg3NywgMS42NjE2NiwgMi4wNzI2OSwgMi40ODI0NyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTkyNzIzLCAwLjM4MjMyOSwgMC41MjYyMDYsIDAuNzA1NjM0LCAwLjg4NDU2OCwgMS4wNjUzOCwgMS4yNDUzIiwgXAotICAgICAgICAgICIwLjIwMzM2NywgMC4zOTI5MTMsIDAuNTM2ODY3LCAwLjcxNjYwNCwgMC44OTY3MjEsIDEuMDc2MDksIDEuMjU1NzYiLCBcCi0gICAgICAgICAgIjAuMjE2MzQyLCAwLjQwNjA1MywgMC41NDk2NiwgMC43MjkzLCAwLjkwODM5NSwgMS4wODk0MSwgMS4yNjg5MiIsIFwKLSAgICAgICAgICAiMC4yMjk5NjQsIDAuNDE5NTkyLCAwLjU2MzQ3MywgMC43NDM4MiwgMC45MjE2NzMsIDEuMTAzMDcsIDEuMjgyNSIsIFwKLSAgICAgICAgICAiMC4yNDMxODgsIDAuNDMyODQ5LCAwLjU3NjcwNCwgMC43NTY5NzYsIDAuOTM2NjM3LCAxLjExNjExLCAxLjI5NTg0IiwgXAotICAgICAgICAgICIwLjI2NDg3NiwgMC40NTQ1MjcsIDAuNTk4Mzk0LCAwLjc3NzkzMywgMC45NTgzNDgsIDEuMTM3NzYsIDEuMzE3NSIsIFwKLSAgICAgICAgICAiMC4yODQwMDQsIDAuNDczNjMxLCAwLjYxNzQ1OSwgMC43OTY5NDIsIDAuOTc3MjgxLCAxLjE1NzAxLCAxLjMzNDE1Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExNDg3MiwgMC40NjI0NjEsIDAuNzYsIDEuMTI0NzEsIDEuNDk1MDMsIDEuODUyOSwgMi4yMjU4MiIsIFwKLSAgICAgICAgICAiMC4xMTQ5MjQsIDAuNDYyNTY1LCAwLjc1OTg0NSwgMS4xMjQ1NSwgMS40OTMxNCwgMS44NjI1NywgMi4yMDEyMSIsIFwKLSAgICAgICAgICAiMC4xMTUyMTUsIDAuNDYzNjY3LCAwLjc1NzI3OSwgMS4xMjQ3MSwgMS40OTQ0MSwgMS44Mzc5NCwgMi4yMjU5MiIsIFwKLSAgICAgICAgICAiMC4xMTU1NTQsIDAuNDY0MDkxLCAwLjc1OTgzNSwgMS4xMjQyMywgMS40OTQ3LCAxLjg1Nzk2LCAyLjIyMzYxIiwgXAotICAgICAgICAgICIwLjExNTQ0MywgMC40NjkwMzQsIDAuNzU5NzI4LCAxLjEyNDIzLCAxLjQ5MzgyLCAxLjg2MTU5LCAyLjIyNzMiLCBcCi0gICAgICAgICAgIjAuMTE1Nzc0LCAwLjQ2ODU5NywgMC43NTk3MiwgMS4xMjQ2MSwgMS40OTM5NywgMS44NDY5NiwgMi4yMjc2OCIsIFwKLSAgICAgICAgICAiMC4xMTU2NTQsIDAuNDYzNzQsIDAuNzU2ODA1LCAxLjEyNDc3LCAxLjQ4Nzk0LCAxLjg2MzE1LCAyLjIzMjc0Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE4OTI1LCAwLjQwNzQ5MywgMC41NzI5NiwgMC43NzkyMjgsIDAuOTg0ODQ2LCAxLjE5MTUyLCAxLjM5Nzg4IiwgXAotICAgICAgICAgICIwLjE5OTYwOCwgMC40MTc3NiwgMC41ODM0OTcsIDAuNzg5NjQxLCAwLjk5NTE5MywgMS4yMDIwNSwgMS40MDgwNiIsIFwKLSAgICAgICAgICAiMC4yMTI0MTEsIDAuNDMwNywgMC41OTYxOTEsIDAuODAyNDM3LCAxLjAwODA0LCAxLjIxNDY1LCAxLjQyMjU0IiwgXAotICAgICAgICAgICIwLjIyNTg4NSwgMC40NDQxNjcsIDAuNjA5NDMxLCAwLjgxNTkxNywgMS4wMjE1MiwgMS4yMjgxOCwgMS40MzQ1MiIsIFwKLSAgICAgICAgICAiMC4yMzkwODYsIDAuNDU3MzcsIDAuNjIyOTkzLCAwLjgyOTE1MSwgMS4wMzQ3OSwgMS4yNDE1OSwgMS40NDc1OCIsIFwKLSAgICAgICAgICAiMC4yNjAzNywgMC40Nzg2NzgsIDAuNjQ0Mzg0LCAwLjg1MDQ0OSwgMS4wNTYwNywgMS4yNjI3NCwgMS40NjkwOCIsIFwKLSAgICAgICAgICAiMC4yNzg4NzcsIDAuNDk3MjIzLCAwLjY2MjU0MywgMC44NjkwMDEsIDEuMDc0NjQsIDEuMjgxMjksIDEuNDg3NjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTI3Mzg2LCAwLjUxOTc5LCAwLjg0MDQyMiwgMS4yNDk0MywgMS42NTgwNSwgMi4wNjY4LCAyLjQ3NzAxIiwgXAotICAgICAgICAgICIwLjEyNzMyLCAwLjUxOTc2NCwgMC44NDA2NCwgMS4yNDk0NCwgMS42NTgxMSwgMi4wNzA1MywgMi40NzkxNyIsIFwKLSAgICAgICAgICAiMC4xMjczNSwgMC41MTk5MzQsIDAuODQwNDc0LCAxLjI0OTQ4LCAxLjY1Nzk4LCAyLjA2ODI1LCAyLjQ3NjY4IiwgXAotICAgICAgICAgICIwLjEyNzQxNCwgMC41MTk3OTcsIDAuODQxMjQsIDEuMjQ5NDcsIDEuNjU5NTksIDIuMDY3MDYsIDIuNDgxMTMiLCBcCi0gICAgICAgICAgIjAuMTI3NCwgMC41MjAwMTcsIDAuODQwNjE5LCAxLjI0OTQzLCAxLjY1ODc3LCAyLjA3MDM2LCAyLjQ3OTciLCBcCi0gICAgICAgICAgIjAuMTI3NTk3LCAwLjUxOTgyNCwgMC44NDAyNDQsIDEuMjQ5NDcsIDEuNjU4LCAyLjA2NjY0LCAyLjQ3NzA4IiwgXAotICAgICAgICAgICIwLjEyNzc3LCAwLjUxOTc5NiwgMC44NDEyNjYsIDEuMjQ5NDgsIDEuNjU3OTgsIDIuMDY3MDUsIDIuNDc2MzEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI0NDYsIDAuMDAyNTA3LCAwLjAwMjUxNiwgMC4wMDI1MjEsIDAuMDAyNTI0LCAwLjAwMjUyNSwgMC4wMDI1MjYiLCBcCi0gICAgICAgICAgIjAuMDAyNDMxLCAwLjAwMjQ5MywgMC4wMDI1MDIsIDAuMDAyNTA3LCAwLjAwMjUwOCwgMC4wMDI1MTEsIDAuMDAyNTEyIiwgXAotICAgICAgICAgICIwLjAwMjQyNCwgMC4wMDI0ODYsIDAuMDAyNDk1LCAwLjAwMjUsIDAuMDAyNTAzLCAwLjAwMjUwNCwgMC4wMDI1MDUiLCBcCi0gICAgICAgICAgIjAuMDAyNDIsIDAuMDAyNDgyLCAwLjAwMjQ5MSwgMC4wMDI0OTYsIDAuMDAyNDk4LCAwLjAwMjUsIDAuMDAyNTAxIiwgXAotICAgICAgICAgICIwLjAwMjQxNiwgMC4wMDI0NzgsIDAuMDAyNDg4LCAwLjAwMjQ5MywgMC4wMDI0OTUsIDAuMDAyNDk3LCAwLjAwMjQ5OCIsIFwKLSAgICAgICAgICAiMC4wMDI0MTIsIDAuMDAyNDc0LCAwLjAwMjQ4MywgMC4wMDI0ODksIDAuMDAyNDkxLCAwLjAwMjQ5MywgMC4wMDI0OTQiLCBcCi0gICAgICAgICAgIjAuMDAyNDA5LCAwLjAwMjQ3MiwgMC4wMDI0ODEsIDAuMDAyNDg3LCAwLjAwMjQ4OSwgMC4wMDI0OTEsIDAuMDAyNDkyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0MDIsIDAuMDA0MDgxLCAwLjAwNDA5LCAwLjAwNDA5NSwgMC4wMDQwOTcsIDAuMDA0MDk4LCAwLjAwNDA5OSIsIFwKLSAgICAgICAgICAiMC4wMDQwMTcsIDAuMDA0MDc4LCAwLjAwNDA4NywgMC4wMDQwOTIsIDAuMDA0MDk0LCAwLjAwNDA5NSwgMC4wMDQwOTYiLCBcCi0gICAgICAgICAgIjAuMDA0MDE1LCAwLjAwNDA3NywgMC4wMDQwODUsIDAuMDA0MDksIDAuMDA0MDkyLCAwLjAwNDA5NCwgMC4wMDQwOTUiLCBcCi0gICAgICAgICAgIjAuMDA0MDEzLCAwLjAwNDA3NSwgMC4wMDQwODMsIDAuMDA0MDg5LCAwLjAwNDA4OSwgMC4wMDQwOTEsIDAuMDA0MDk0IiwgXAotICAgICAgICAgICIwLjAwNDAxMSwgMC4wMDQwNzMsIDAuMDA0MDgyLCAwLjAwNDA4NiwgMC4wMDQwODksIDAuMDA0MDksIDAuMDA0MDkxIiwgXAotICAgICAgICAgICIwLjAwNDAwNywgMC4wMDQwNywgMC4wMDQwNzksIDAuMDA0MDg0LCAwLjAwNDA4NywgMC4wMDQwODgsIDAuMDA0MDg5IiwgXAotICAgICAgICAgICIwLjAwNDAwNCwgMC4wMDQwNjcsIDAuMDA0MDc3LCAwLjAwNDA4MiwgMC4wMDQwODUsIDAuMDA0MDg2LCAwLjAwNDA4NyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjU1NywgMC4wMDI2MTgsIDAuMDAyNjI3LCAwLjAwMjYzMSwgMC4wMDI2MzQsIDAuMDAyNjM2LCAwLjAwMjYzNiIsIFwKLSAgICAgICAgICAiMC4wMDI1NSwgMC4wMDI2MTEsIDAuMDAyNjIsIDAuMDAyNjI1LCAwLjAwMjYyNywgMC4wMDI2MjksIDAuMDAyNjI5IiwgXAotICAgICAgICAgICIwLjAwMjU0LCAwLjAwMjYwMiwgMC4wMDI2MTEsIDAuMDAyNjE1LCAwLjAwMjYxOCwgMC4wMDI2MiwgMC4wMDI2MiIsIFwKLSAgICAgICAgICAiMC4wMDI1MzEsIDAuMDAyNTk0LCAwLjAwMjYwMiwgMC4wMDI2MDcsIDAuMDAyNjA5LCAwLjAwMjYxMSwgMC4wMDI2MTIiLCBcCi0gICAgICAgICAgIjAuMDAyNTI0LCAwLjAwMjU4NiwgMC4wMDI1OTUsIDAuMDAyNiwgMC4wMDI2MDMsIDAuMDAyNjA0LCAwLjAwMjYwNSIsIFwKLSAgICAgICAgICAiMC4wMDI1MTQsIDAuMDAyNTc2LCAwLjAwMjU4NiwgMC4wMDI1OTEsIDAuMDAyNTk0LCAwLjAwMjU5NiwgMC4wMDI1OTYiLCBcCi0gICAgICAgICAgIjAuMDAyNTA3LCAwLjAwMjU3LCAwLjAwMjU4MSwgMC4wMDI1ODYsIDAuMDAyNTg4LCAwLjAwMjU5LCAwLjAwMjU5MSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNCwgMC4wMDQwNiwgMC4wMDQwNjksIDAuMDA0MDc0LCAwLjAwNDA3NywgMC4wMDQwNzgsIDAuMDA0MDc5IiwgXAotICAgICAgICAgICIwLjAwNCwgMC4wMDQwNjEsIDAuMDA0MDY5LCAwLjAwNDA3NCwgMC4wMDQwNzcsIDAuMDA0MDc4LCAwLjAwNDA3OSIsIFwKLSAgICAgICAgICAiMC4wMDM5OTYsIDAuMDA0MDU3LCAwLjAwNDA2NiwgMC4wMDQwNzEsIDAuMDA0MDczLCAwLjAwNDA3NSwgMC4wMDQwNzYiLCBcCi0gICAgICAgICAgIjAuMDAzOTkxLCAwLjAwNDA1MiwgMC4wMDQwNjEsIDAuMDA0MDY2LCAwLjAwNDA2OCwgMC4wMDQwNywgMC4wMDQwNzEiLCBcCi0gICAgICAgICAgIjAuMDAzOTg1LCAwLjAwNDA0NiwgMC4wMDQwNTUsIDAuMDA0MDYsIDAuMDA0MDYzLCAwLjAwNDA2NCwgMC4wMDQwNjUiLCBcCi0gICAgICAgICAgIjAuMDAzOTc1LCAwLjAwNDAzNywgMC4wMDQwNDYsIDAuMDA0MDUyLCAwLjAwNDA1NCwgMC4wMDQwNTYsIDAuMDA0MDU3IiwgXAotICAgICAgICAgICIwLjAwMzk2NywgMC4wMDQwMywgMC4wMDQwNCwgMC4wMDQwNDUsIDAuMDA0MDQ4LCAwLjAwNDA0OSwgMC4wMDQwNTEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyNTUsIDAuMDAyNjEsIDAuMDAyNjE5LCAwLjAwMjYyNCwgMC4wMDI2MjcsIDAuMDAyNjI4LCAwLjAwMjYyOSIsIFwKLSAgICAgICAgICAiMC4wMDI1NDksIDAuMDAyNjEsIDAuMDAyNjE4LCAwLjAwMjYyMywgMC4wMDI2MjYsIDAuMDAyNjI5LCAwLjAwMjYyNyIsIFwKLSAgICAgICAgICAiMC4wMDI1NDMsIDAuMDAyNjA0LCAwLjAwMjYxMywgMC4wMDI2MTcsIDAuMDAyNjE5LCAwLjAwMjYyMiwgMC4wMDI2MjMiLCBcCi0gICAgICAgICAgIjAuMDAyNTM2LCAwLjAwMjU5NywgMC4wMDI2MDYsIDAuMDAyNjExLCAwLjAwMjYxNCwgMC4wMDI2MTYsIDAuMDAyNjE3IiwgXAotICAgICAgICAgICIwLjAwMjUyOSwgMC4wMDI1OTEsIDAuMDAyNiwgMC4wMDI2MDUsIDAuMDAyNjA4LCAwLjAwMjYxLCAwLjAwMjYxIiwgXAotICAgICAgICAgICIwLjAwMjUxOSwgMC4wMDI1ODEsIDAuMDAyNTkxLCAwLjAwMjU5NiwgMC4wMDI1OTksIDAuMDAyNjAxLCAwLjAwMjYwMyIsIFwKLSAgICAgICAgICAiMC4wMDI1MTEsIDAuMDAyNTczLCAwLjAwMjU4MywgMC4wMDI1ODksIDAuMDAyNTkyLCAwLjAwMjU5NCwgMC4wMDI1OTUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDM3MzksIDAuMDAzNzk4LCAwLjAwMzgwNywgMC4wMDM4MTIsIDAuMDAzODE1LCAwLjAwMzgxNywgMC4wMDM4MTgiLCBcCi0gICAgICAgICAgIjAuMDAzNzQsIDAuMDAzOCwgMC4wMDM4MDksIDAuMDAzODEzLCAwLjAwMzgxNiwgMC4wMDM4MTgsIDAuMDAzODE5IiwgXAotICAgICAgICAgICIwLjAwMzczNiwgMC4wMDM3OTYsIDAuMDAzODA1LCAwLjAwMzgxLCAwLjAwMzgxMywgMC4wMDM4MTQsIDAuMDAzODE2IiwgXAotICAgICAgICAgICIwLjAwMzczLCAwLjAwMzc5MSwgMC4wMDM4MDEsIDAuMDAzODA2LCAwLjAwMzgwOSwgMC4wMDM4MTEsIDAuMDAzODEyIiwgXAotICAgICAgICAgICIwLjAwMzcyNCwgMC4wMDM3ODcsIDAuMDAzNzk2LCAwLjAwMzgwMiwgMC4wMDM4MDUsIDAuMDAzODA3LCAwLjAwMzgwOCIsIFwKLSAgICAgICAgICAiMC4wMDM3MTcsIDAuMDAzNzc5LCAwLjAwMzc5LCAwLjAwMzc5NSwgMC4wMDM3OTksIDAuMDAzODAxLCAwLjAwMzgwMiIsIFwKLSAgICAgICAgICAiMC4wMDM3MDksIDAuMDAzNzczLCAwLjAwMzc4NCwgMC4wMDM3OSwgMC4wMDM3OTQsIDAuMDAzNzk2LCAwLjAwMzc5OCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUykgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjI1NTIzODsKLSAgICBmdW5jdGlvbiA6ICIoKEFeQileQ0kpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yNDI0MTcsIDAuNDMzNDQzLCAwLjU3Nzk0NSwgMC43NTc5OTksIDAuOTM3NjU3LCAxLjExNzIzLCAxLjI5NjgyIiwgXAotICAgICAgICAgICIwLjI1MzQ4NSwgMC40NDQ2NTksIDAuNTg5MTg2LCAwLjc2OTE2NiwgMC45NDg3OTgsIDEuMTI4NDMsIDEuMzA3OCIsIFwKLSAgICAgICAgICAiMC4yNjY0MTgsIDAuNDU3MzQyLCAwLjYwMTg3LCAwLjc4MTg0MiwgMC45NjE1NzYsIDEuMTQxMDcsIDEuMzIwNTEiLCBcCi0gICAgICAgICAgIjAuMjc4NDM3LCAwLjQ2OTUyMSwgMC42MTQwNTMsIDAuNzk0MDIyLCAwLjk3Mzc2MywgMS4xNTMyNSwgMS4zMzI2OSIsIFwKLSAgICAgICAgICAiMC4yOTA0MjcsIDAuNDgxNDA5LCAwLjYyNTkzMSwgMC44MDU5MDcsIDAuOTg1NjQ3LCAxLjE2NTE0LCAxLjM0NDU3IiwgXAotICAgICAgICAgICIwLjMwOTEwOCwgMC41MDAxNywgMC42NDQ2NjUsIDAuODI0NjM0LCAxLjAwNDM5LCAxLjE4NDA0LCAxLjM2MzM0IiwgXAotICAgICAgICAgICIwLjMyNTc4OCwgMC41MTY2MzcsIDAuNjYxMTQ2LCAwLjg0MTE1NCwgMS4wMjA4OCwgMS4yMDAzNywgMS4zNzk5Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExODEwNSwgMC40NjYwODcsIDAuNzUzMDA3LCAxLjExNzg1LCAxLjQ4MjAzLCAxLjg0NywgMi4yMDU2NCIsIFwKLSAgICAgICAgICAiMC4xMTgzNjMsIDAuNDY1NjYzLCAwLjc1NDM2NiwgMS4xMTc2MSwgMS40ODE1MSwgMS44NDI1OSwgMi4yMTExNCIsIFwKLSAgICAgICAgICAiMC4xMTg0NjgsIDAuNDY2MDM5LCAwLjc1MjM3NiwgMS4xMTQ5NSwgMS40ODIwMSwgMS44NDY1MSwgMi4yMDc1NyIsIFwKLSAgICAgICAgICAiMC4xMTg0OTUsIDAuNDY2MDI3LCAwLjc1MjI0OCwgMS4xMTQ4MywgMS40ODIwMSwgMS44NDY1MSwgMi4yMDc0OCIsIFwKLSAgICAgICAgICAiMC4xMTgyOTUsIDAuNDY1NjI2LCAwLjc1MjE1MywgMS4xMTUwMiwgMS40ODE5OSwgMS44NDY1LCAyLjIwNzQ5IiwgXAotICAgICAgICAgICIwLjExODE4LCAwLjQ2NTg5LCAwLjc1NDA4NSwgMS4xMTcxNiwgMS40ODE4NCwgMS44NDY3MywgMi4yMTExNSIsIFwKLSAgICAgICAgICAiMC4xMTc5OTcsIDAuNDY1OTcsIDAuNzUyODE3LCAxLjExNSwgMS40ODE5LCAxLjg0NjQsIDIuMjExNTciKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjMxMzE4LCAwLjQ0ODc3MiwgMC42MTQ2OSwgMC44MjE2NjksIDEuMDI4MjgsIDEuMjM0ODcsIDEuNDQxMjciLCBcCi0gICAgICAgICAgIjAuMjQyNDQ5LCAwLjQ1OTkwOCwgMC42MjU4MjEsIDAuODMyOCwgMS4wMzk0MiwgMS4yNDYsIDEuNDUyNCIsIFwKLSAgICAgICAgICAiMC4yNTUxMjcsIDAuNDcyNTA4LCAwLjYzODQyOSwgMC44NDU0MDgsIDEuMDUyMDIsIDEuMjU4NTksIDEuNDY1MDciLCBcCi0gICAgICAgICAgIjAuMjY2NjAzLCAwLjQ4NDAxNSwgMC42NDk5NjIsIDAuODU2OTAyLCAxLjA2MzYxLCAxLjI3MDA4LCAxLjQ3NjQ5IiwgXAotICAgICAgICAgICIwLjI3Nzg2LCAwLjQ5NTIzMywgMC42NjExNCwgMC44NjgxMjcsIDEuMDc0NzUsIDEuMjgxMjQsIDEuNDg3NzkiLCBcCi0gICAgICAgICAgIjAuMjk1MDI5LCAwLjUxMjM0NSwgMC42NzgyOTcsIDAuODg1MTk2LCAxLjA5MTksIDEuMjk4NDEsIDEuNTA0ODMiLCBcCi0gICAgICAgICAgIjAuMzA5ODEsIDAuNTI3MTUxLCAwLjY5MzEwOSwgMC45MDAxMDQsIDEuMTA2NzIsIDEuMzEzMjIsIDEuNTE5NjciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTI3MDIxLCAwLjUyMTU1MywgMC44NDc0MzksIDEuMjU3MTksIDEuNjY3NDIsIDIuMDc3OTgsIDIuNDkwNCIsIFwKLSAgICAgICAgICAiMC4xMjcwMTUsIDAuNTIxNTUxLCAwLjg0NzM2MSwgMS4yNTcyMywgMS42NjczNiwgMi4wNzc2OSwgMi40OTA0IiwgXAotICAgICAgICAgICIwLjEyNzA3MywgMC41MjE0NjcsIDAuODQ2NDEzLCAxLjI1NzE3LCAxLjY2NzMyLCAyLjA3ODA3LCAyLjQ4NTA3IiwgXAotICAgICAgICAgICIwLjEyNjgxNCwgMC41MjE0NjgsIDAuODQ1NDk4LCAxLjI1NzI0LCAxLjY2NzExLCAyLjA3ODQ0LCAyLjQ5MDk1IiwgXAotICAgICAgICAgICIwLjEyNzEzNCwgMC41MjE0NDYsIDAuODQ3MzQ5LCAxLjI1NzExLCAxLjY2NzM4LCAyLjA3OTA5LCAyLjQ4NTAxIiwgXAotICAgICAgICAgICIwLjEyNjk0NiwgMC41MjE1NDQsIDAuODQ1NzMzLCAxLjI1NzM0LCAxLjY2NzE2LCAyLjA3ODQ1LCAyLjQ5MDk3IiwgXAotICAgICAgICAgICIwLjEyNjc3NiwgMC41MjEzMjksIDAuODQ2NjQ0LCAxLjI1NTMxLCAxLjY2NzExLCAyLjA3ODY3LCAyLjQ4NzQxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMwMjQzMiwgMC40ODM3MTQsIDAuNjI2OTg4LCAwLjgwNjIwOSwgMC45ODUzMzQsIDEuMTY0NDksIDEuMzQzNjYiLCBcCi0gICAgICAgICAgIjAuMzE0MDQ3LCAwLjQ5NTM3NiwgMC42Mzg2ODMsIDAuODE3ODgsIDAuOTk3MDA4LCAxLjE3NjE4LCAxLjM1NTQ2IiwgXAotICAgICAgICAgICIwLjMyODI2LCAwLjUwOTU0OCwgMC42NTI4MjYsIDAuODMyMDQ1LCAxLjAxMTE3LCAxLjE5MDMzLCAxLjM2OTUiLCBcCi0gICAgICAgICAgIjAuMzQxMjQ5LCAwLjUyMjU4OSwgMC42NjU5MDIsIDAuODQ1MDk4LCAxLjAyNDIzLCAxLjIwMzM5LCAxLjM4MjU0IiwgXAotICAgICAgICAgICIwLjM1NDE0MiwgMC41MzUzNzgsIDAuNjc4Njk5LCAwLjg1NzkxNiwgMS4wMzcwNSwgMS4yMTYyNSwgMS4zOTUzNSIsIFwKLSAgICAgICAgICAiMC4zNzM5ODUsIDAuNTU1MjksIDAuNjk4NTgzLCAwLjg3Nzc4NSwgMS4wNTY5MSwgMS4yMzYwNywgMS40MTUyNCIsIFwKLSAgICAgICAgICAiMC4zOTEwODMsIDAuNTcyNDg3LCAwLjcxNTgwMiwgMC44OTUwMTYsIDEuMDc0MTUsIDEuMjUzMjgsIDEuNDMyNDYiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTA3NzY5LCAwLjQ1NjIxLCAwLjc0NjAyNiwgMS4xMTA2MywgMS40NzUyNCwgMS44Mzc1MSwgMi4yMDUxNCIsIFwKLSAgICAgICAgICAiMC4xMDc4MDEsIDAuNDU2MDgxLCAwLjc0NDkxLCAxLjExMDU4LCAxLjQ3NTE3LCAxLjgzOTgzLCAyLjIwNTUxIiwgXAotICAgICAgICAgICIwLjEwNzc3MywgMC40NTYyMTIsIDAuNzQ2MDQ2LCAxLjExMDYzLCAxLjQ3NTIzLCAxLjgzNzU2LCAyLjIwNTE1IiwgXAotICAgICAgICAgICIwLjEwNzY5LCAwLjQ1NjY5NCwgMC43NDU3MzYsIDEuMTEwNTgsIDEuNDc1MTgsIDEuODM3NDcsIDIuMjA1MTUiLCBcCi0gICAgICAgICAgIjAuMTA3NzMzLCAwLjQ1NTY2NCwgMC43NDU3NTMsIDEuMTEwNjgsIDEuNDc0NSwgMS44NDA1NCwgMi4yMDIwMyIsIFwKLSAgICAgICAgICAiMC4xMDc4NDYsIDAuNDU2MjE4LCAwLjc0NjE5NiwgMS4xMTA2MiwgMS40NzUyMSwgMS44Mzc2MiwgMi4yMDIxNSIsIFwKLSAgICAgICAgICAiMC4xMDc4NTYsIDAuNDU2MDYsIDAuNzQ1MDQ0LCAxLjExMDY2LCAxLjQ3NTMxLCAxLjgzOTQ2LCAyLjIwNTE1Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMxNDczLCAwLjUyNTE1MSwgMC42ODk5ODYsIDAuODk2MjM2LCAxLjEwMjQxLCAxLjMwODcxLCAxLjUxNDk4IiwgXAotICAgICAgICAgICIwLjMyNjEwMSwgMC41MzY0NjQsIDAuNzAxMzIzLCAwLjkwNzUyNSwgMS4xMTM4MSwgMS4zMjAxMiwgMS41MjY0MiIsIFwKLSAgICAgICAgICAiMC4zMzk1MjksIDAuNTQ5OTU5LCAwLjcxNDc5NCwgMC45MjA5ODcsIDEuMTI3NCwgMS4zMzM1LCAxLjUzOTg4IiwgXAotICAgICAgICAgICIwLjM1Mjk3NywgMC41NjM0MjQsIDAuNzI4Mjc0LCAwLjkzNDQ0MiwgMS4xNDA3MiwgMS4zNDY5OCwgMS41NTM0IiwgXAotICAgICAgICAgICIwLjM2NjQ2NSwgMC41NzY5MDgsIDAuNzQxNzU5LCAwLjk0NzkyNiwgMS4xNTQyLCAxLjM2MDQ1LCAxLjU2Njg5IiwgXAotICAgICAgICAgICIwLjM4ODI0OSwgMC41OTg2MTUsIDAuNzYzNDY3LCAwLjk2OTYzMSwgMS4xNzU5MSwgMS4zODIxNCwgMS41ODg2MiIsIFwKLSAgICAgICAgICAiMC40MDcxNTgsIDAuNjE3NjY0LCAwLjc4MjUxOSwgMC45ODg3MDksIDEuMTk1LCAxLjQwMTI4LCAxLjYwNzY0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEyMDg5NCwgMC41MTM2ODcsIDAuODM4NjYxLCAxLjI0NzUxLCAxLjY1ODE5LCAyLjA2NzA2LCAyLjQ3OTc2IiwgXAotICAgICAgICAgICIwLjEyMDgyOSwgMC41MTM2MjYsIDAuODM3OTg1LCAxLjI0NzUxLCAxLjY1ODIyLCAyLjA2NzQ2LCAyLjQ3ODAyIiwgXAotICAgICAgICAgICIwLjEyMDkxMiwgMC41MTM3MDcsIDAuODM3ODgxLCAxLjI0NzU3LCAxLjY1NzU1LCAyLjA2ODQzLCAyLjQ3OCIsIFwKLSAgICAgICAgICAiMC4xMjA5MjIsIDAuNTE0MjQ0LCAwLjgzODIxNSwgMS4yNDczNywgMS42NTc5NywgMi4wNjg1NiwgMi40Nzg4NCIsIFwKLSAgICAgICAgICAiMC4xMjA5MzcsIDAuNTE0MTkxLCAwLjgzODIyMSwgMS4yNDczNywgMS42NTc5NiwgMi4wNjg1MiwgMi40Nzg4MiIsIFwKLSAgICAgICAgICAiMC4xMjA4NzMsIDAuNTEzOTQsIDAuODM4MjY1LCAxLjI0NzQ2LCAxLjY1ODA5LCAyLjA2ODY0LCAyLjQ3NzkzIiwgXAotICAgICAgICAgICIwLjEyMDg3OSwgMC41MTM2MjUsIDAuODM4MjEyLCAxLjI0NzM4LCAxLjY1ODA2LCAyLjA2ODY5LCAyLjQ3ODM0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIzNzQzLCAwLjQyODQ5NywgMC41NzMwMSwgMC43NTMwNzUsIDAuOTMyNzM4LCAxLjExMjMxLCAxLjI5MTgiLCBcCi0gICAgICAgICAgIjAuMjQ3NDgyLCAwLjQzODcwNSwgMC41ODMyNDIsIDAuNzYzMjk4LCAwLjk0Mjk1NiwgMS4xMjI0NiwgMS4zMDE5MiIsIFwKLSAgICAgICAgICAiMC4yNjAxNTYsIDAuNDUxMTcyLCAwLjU5NTcxMiwgMC43NzU3NSwgMC45NTU0MTYsIDEuMTM0OTIsIDEuMzE0MzkiLCBcCi0gICAgICAgICAgIjAuMjcyODc1LCAwLjQ2MzkwNSwgMC42MDg0MzUsIDAuNzg4NDg1LCAwLjk2ODE0MiwgMS4xNDc2NSwgMS4zMjcxNCIsIFwKLSAgICAgICAgICAiMC4yODU2MzksIDAuNDc2NjYxLCAwLjYyMTE4NiwgMC44MDEyNCwgMC45ODA4OTksIDEuMTYwNDEsIDEuMzM5ODciLCBcCi0gICAgICAgICAgIjAuMzA2MTI3LCAwLjQ5NzEyOCwgMC42NDE2NDksIDAuODIxNzE3LCAxLjAwMTM4LCAxLjE4MDg5LCAxLjM2MDM2IiwgXAotICAgICAgICAgICIwLjMyNDE1MywgMC41MTUxODYsIDAuNjU5NzIyLCAwLjgzOTc3MywgMS4wMTk0NCwgMS4xOTg5NSwgMS4zNzg0NSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTg1NywgMC40NjYxMDksIDAuNzUzMDIxLCAxLjExNzg3LCAxLjQ4MjA0LCAxLjg0Njk2LCAyLjIxMjAxIiwgXAotICAgICAgICAgICIwLjExODU2MSwgMC40NjU3MTcsIDAuNzU0NCwgMS4xMTQ5MywgMS40ODIxLCAxLjg0NjcsIDIuMjA3ODgiLCBcCi0gICAgICAgICAgIjAuMTE4NDQ3LCAwLjQ2NjEwMSwgMC43NTI0NzIsIDEuMTE3ODUsIDEuNDgyMDMsIDEuODQ2NjMsIDIuMjExNTUiLCBcCi0gICAgICAgICAgIjAuMTE4MTUzLCAwLjQ2NjA5MSwgMC43NTQ0MTQsIDEuMTE3ODYsIDEuNDgyMDcsIDEuODQ2NjgsIDIuMjExODIiLCBcCi0gICAgICAgICAgIjAuMTE4MDY5LCAwLjQ2NTY2OCwgMC43NTQ0MSwgMS4xMTQyOCwgMS40ODIwOSwgMS44NDY2OSwgMi4yMDc5OCIsIFwKLSAgICAgICAgICAiMC4xMTc5NzgsIDAuNDY2MDU2LCAwLjc1Mjk5NywgMS4xMTc4NiwgMS40ODIwNCwgMS44NDY2NCwgMi4yMTAyNCIsIFwKLSAgICAgICAgICAiMC4xMTc4NjYsIDAuNDY2MDYsIDAuNzU0NDAyLCAxLjExNzg0LCAxLjQ4MjA1LCAxLjg0NjY3LCAyLjIxMTg3Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIyNTMwNCwgMC40NDI2OTEsIDAuNjA4NjIsIDAuODE1NjIzLCAxLjAyMjI1LCAxLjIyODg1LCAxLjQzNTI1IiwgXAotICAgICAgICAgICIwLjIzNTQyNiwgMC40NTI4OTIsIDAuNjE4ODY3LCAwLjgyNTgxNiwgMS4wMzI0NSwgMS4yMzkwNywgMS40NDU0NCIsIFwKLSAgICAgICAgICAiMC4yNDc2NzEsIDAuNDY1MTkxLCAwLjYzMTEyOCwgMC44MzgxMTMsIDEuMDQ0NzQsIDEuMjUxMzEsIDEuNDU3OTQiLCBcCi0gICAgICAgICAgIjAuMjU5NjczLCAwLjQ3NzA2NywgMC42NDMwMDUsIDAuODUwMDAyLCAxLjA1NjYzLCAxLjI2MzE0LCAxLjQ2OTY3IiwgXAotICAgICAgICAgICIwLjI3MTE5NiwgMC40ODg2OTcsIDAuNjU0NjQ2LCAwLjg2MTYzLCAxLjA2ODI2LCAxLjI3NDg3LCAxLjQ4MTI2IiwgXAotICAgICAgICAgICIwLjI5MDA5OCwgMC41MDc0NzYsIDAuNjczNDQ2LCAwLjg4MDQ1NywgMS4wODcwOCwgMS4yOTM1OSwgMS41MDAwNSIsIFwKLSAgICAgICAgICAiMC4zMDY1MjcsIDAuNTIzODk2LCAwLjY4OTg3NCwgMC44OTY4ODMsIDEuMTAzNTEsIDEuMzEwMDIsIDEuNTE2NDkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTI3MjA0LCAwLjUyMTUxNywgMC44NDczNjcsIDEuMjU3MjIsIDEuNjY3NDUsIDIuMDc4MDMsIDIuNDkwNDYiLCBcCi0gICAgICAgICAgIjAuMTI3MDUxLCAwLjUyMTU0LCAwLjg0Nzc5NSwgMS4yNTcyOCwgMS42Njc0NCwgMi4wNzc1NSwgMi40OTA1NCIsIFwKLSAgICAgICAgICAiMC4xMjcwMDMsIDAuNTIxNTMyLCAwLjg0NzEwMywgMS4yNTcyNywgMS42Njc0NCwgMi4wNzgzOSwgMi40ODU3MSIsIFwKLSAgICAgICAgICAiMC4xMjcxNDksIDAuNTIxNDU5LCAwLjg0NzQ1OCwgMS4yNTcxNywgMS42Njc0NSwgMi4wNzkxNiwgMi40ODk2NyIsIFwKLSAgICAgICAgICAiMC4xMjcxMjgsIDAuNTIxNTIxLCAwLjg0NzYzMywgMS4yNTcyMywgMS42Njc0NiwgMi4wNzc5NywgMi40OTAzOSIsIFwKLSAgICAgICAgICAiMC4xMjY5NDYsIDAuNTIxMzgzLCAwLjg0Njc4NSwgMS4yNTQ5NCwgMS42NjcxNywgMi4wNzg3NywgMi40ODc0OSIsIFwKLSAgICAgICAgICAiMC4xMjY3OTEsIDAuNTIxMzYzLCAwLjg0Njc0MywgMS4yNTQxOCwgMS42NjcxNSwgMi4wNzg4MiwgMi40ODczMyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMDcwODksIDAuNDg5MTM3LCAwLjYzMjY5MiwgMC44MTIwNjYsIDAuOTkxMzIsIDEuMTcwNTYsIDEuMzQ5NzkiLCBcCi0gICAgICAgICAgIjAuMzE5MTUyLCAwLjUwMTE2NCwgMC42NDQ3MTMsIDAuODI0MDk2LCAxLjAwMzM1LCAxLjE4MjU5LCAxLjM2MTgyIiwgXAotICAgICAgICAgICIwLjMzMzAwOCwgMC41MTUwMjEsIDAuNjU4NTk4LCAwLjgzNzk2NywgMS4wMTcyOCwgMS4xOTY1NSwgMS4zNzU3MSIsIFwKLSAgICAgICAgICAiMC4zNDYwMjEsIDAuNTI4MTY3LCAwLjY3MTcxLCAwLjg1MTA5OCwgMS4wMzAzNSwgMS4yMDk2LCAxLjM4ODgyIiwgXAotICAgICAgICAgICIwLjM1ODU4MywgMC41NDA2MjEsIDAuNjg0MTU2LCAwLjg2MzU1MywgMS4wNDI4MSwgMS4yMjIwNSwgMS40MDEyOCIsIFwKLSAgICAgICAgICAiMC4zNzgxNjIsIDAuNTYwMjI3LCAwLjcwMzc5MywgMC44ODMxNjQsIDEuMDYyNDMsIDEuMjQxNjgsIDEuNDIwOTQiLCBcCi0gICAgICAgICAgIjAuMzk0OTcxLCAwLjU3NzAzMSwgMC43MjA2MDIsIDAuODk5OTYyLCAxLjA3OTI0LCAxLjI1ODUzLCAxLjQzNzcxIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwNzI3LCAwLjQ1NzMwNiwgMC43NDczMzQsIDEuMTExNSwgMS40NzYyNiwgMS44MzgzMywgMi4yMDUyIiwgXAotICAgICAgICAgICIwLjEwNzE5NCwgMC40NTczMTUsIDAuNzQ3MzAxLCAxLjExMTU1LCAxLjQ3NjMsIDEuODQwMzIsIDIuMjA1MTkiLCBcCi0gICAgICAgICAgIjAuMTA3MjUyLCAwLjQ1NjQ5MSwgMC43NDYxMTIsIDEuMTExNTYsIDEuNDc2MjcsIDEuODM4MDksIDIuMjA1MTQiLCBcCi0gICAgICAgICAgIjAuMTA3MzE0LCAwLjQ1NzMxMywgMC43NDcyNjYsIDEuMTExNTMsIDEuNDc2MjYsIDEuODM4NDgsIDIuMjA0NzciLCBcCi0gICAgICAgICAgIjAuMTA3MTg4LCAwLjQ1NzMwMSwgMC43NDYwNDIsIDEuMTExNTIsIDEuNDc2MjYsIDEuODM4NDEsIDIuMjA1MTUiLCBcCi0gICAgICAgICAgIjAuMTA3Mjg3LCAwLjQ1NjYyNiwgMC43NDYwNTYsIDEuMTA5NzQsIDEuNDc2MiwgMS44MzgzNiwgMi4yMDI5OSIsIFwKLSAgICAgICAgICAiMC4xMDcyMzUsIDAuNDU2NjM1LCAwLjc0NjA1MSwgMS4xMDk4NywgMS40NzYxNywgMS44NDEyMywgMi4yMDUxNyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMTI4MjksIDAuNTIzMTQ4LCAwLjY4ODAwNiwgMC44OTQzMjEsIDEuMTAwNDYsIDEuMzA2NjcsIDEuNTEzMTEiLCBcCi0gICAgICAgICAgIjAuMzIzMzE4LCAwLjUzMzYxMywgMC42OTg0ODcsIDAuOTA0NzQ2LCAxLjExMDksIDEuMzE3MiwgMS41MjM1MiIsIFwKLSAgICAgICAgICAiMC4zMzY2MDYsIDAuNTQ2ODk0LCAwLjcxMTc2OCwgMC45MTgwMzMsIDEuMTI0MTksIDEuMzMwNDksIDEuNTM2NzkiLCBcCi0gICAgICAgICAgIjAuMzQ5MjE5LCAwLjU1OTUzNSwgMC43MjQ0MDQsIDAuOTMwNjc3LCAxLjEzNjgxLCAxLjM0MzExLCAxLjU0OTQ0IiwgXAotICAgICAgICAgICIwLjM2MjM4OSwgMC41NzI3MzgsIDAuNzM3NjEsIDAuOTQzODMxLCAxLjE1MDAyLCAxLjM1NjMzLCAxLjU2MjUzIiwgXAotICAgICAgICAgICIwLjM4Mzg4OCwgMC41OTQyNywgMC43NTkxMSwgMC45NjUzNywgMS4xNzE1MiwgMS4zNzc4MywgMS41ODQxMiIsIFwKLSAgICAgICAgICAiMC40MDI3MzEsIDAuNjEzMTU5LCAwLjc3Nzk5NSwgMC45ODQyNjEsIDEuMTkwNDEsIDEuMzk2NzIsIDEuNjAzMDEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTE5ODE4LCAwLjUxMzU1MiwgMC44Mzg0NTcsIDEuMjQ4MjIsIDEuNjU4NjQsIDIuMDY4MjIsIDIuNDc5MjEiLCBcCi0gICAgICAgICAgIjAuMTE5ODI2LCAwLjUxNDI2MSwgMC44Mzg0OTEsIDEuMjQ4MTMsIDEuNjU4NDIsIDIuMDY4NzUsIDIuNDc5MyIsIFwKLSAgICAgICAgICAiMC4xMTk5NDUsIDAuNTEzNDg4LCAwLjgzODQwNSwgMS4yNDc4NCwgMS42NTg0NywgMi4wNjg0MywgMi40Nzc5NiIsIFwKLSAgICAgICAgICAiMC4xMTk4MzIsIDAuNTE0MjkzLCAwLjgzODQ1OCwgMS4yNDgxMiwgMS42NTg0NSwgMi4wNjgyLCAyLjQ3OTU1IiwgXAotICAgICAgICAgICIwLjExOTc5NiwgMC41MTM1NTgsIDAuODM4NDQ1LCAxLjI0ODE0LCAxLjY1ODQzLCAyLjA2ODQxLCAyLjQ3Nzc0IiwgXAotICAgICAgICAgICIwLjExOTkwNywgMC41MTM1NTMsIDAuODM4NDYyLCAxLjI0ODEzLCAxLjY1ODUsIDIuMDY4MjQsIDIuNDc5MzkiLCBcCi0gICAgICAgICAgIjAuMTE5OTIxLCAwLjUxMzU1NiwgMC44Mzg1MiwgMS4yNDgzOCwgMS42NTgzNywgMi4wNjkzMSwgMi40Nzg4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNJIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMzUzOCwgMC40MjY2MjcsIDAuNTcxMTYxLCAwLjc1MTE0NCwgMC45MzA5NzMsIDEuMTEwMzksIDEuMjg5ODQiLCBcCi0gICAgICAgICAgIjAuMjQ0NzY5LCAwLjQzNTk3MywgMC41ODA1MSwgMC43NjA1NjYsIDAuOTQwMjIzLCAxLjExOTczLCAxLjI5OTE4IiwgXAotICAgICAgICAgICIwLjI1NjM0OCwgMC40NDc0NTEsIDAuNTkxOTMyLCAwLjc3MTkxNCwgMC45NTE2NjgsIDEuMTMxMzIsIDEuMzEwNjIiLCBcCi0gICAgICAgICAgIjAuMjY4MDE2LCAwLjQ1OTE2OCwgMC42MDM3MjUsIDAuNzgzNjcyLCAwLjk2MzQ0NCwgMS4xNDI5NCwgMS4zMjIzOCIsIFwKLSAgICAgICAgICAiMC4yNzk3OTEsIDAuNDcwODkzLCAwLjYxNTM3OCwgMC43OTUzNTMsIDAuOTc1MTE0LCAxLjE1NDc5LCAxLjMzNDA2IiwgXAotICAgICAgICAgICIwLjI5OTEzNSwgMC40OTAwMzMsIDAuNjM0NTY5LCAwLjgxNDU2MSwgMC45OTQyODksIDEuMTczNzksIDEuMzUzMjYiLCBcCi0gICAgICAgICAgIjAuMzE3MjQxLCAwLjUwODIxNiwgMC42NTI3NjYsIDAuODMyNzY1LCAxLjAxMjQyLCAxLjE5MiwgMS4zNzE0MiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTg1MzEsIDAuNDY1NzY0LCAwLjc1NDQ0MiwgMS4xMTc2OSwgMS40Nzg2NywgMS44NDY4NiwgMi4yMDc4MiIsIFwKLSAgICAgICAgICAiMC4xMTg1ODUsIDAuNDY1Njg5LCAwLjc1NDM4NywgMS4xMTQ3MSwgMS40ODIwNiwgMS44NDY2NCwgMi4yMDc4MSIsIFwKLSAgICAgICAgICAiMC4xMTg0MSwgMC40NjU2LCAwLjc1MzI2MSwgMS4xMTU0MiwgMS40ODE5MywgMS44NDY4MiwgMi4yMTEzMiIsIFwKLSAgICAgICAgICAiMC4xMTgzNzksIDAuNDY2MDM0LCAwLjc1NDMzOSwgMS4xMTU2MiwgMS40ODIwMywgMS44NDY1OSwgMi4yMDc1NiIsIFwKLSAgICAgICAgICAiMC4xMTgzMzIsIDAuNDY1MzYsIDAuNzUzOTgyLCAxLjExNjk3LCAxLjQ4MTg3LCAxLjg0MjU0LCAyLjIxMTI1IiwgXAotICAgICAgICAgICIwLjExODIyOSwgMC40NjU5NjcsIDAuNzUyMzQ4LCAxLjExNTAzLCAxLjQ4MTk2LCAxLjg0NjQ3LCAyLjIxMTQ5IiwgXAotICAgICAgICAgICIwLjExNzg3OSwgMC40NjU1ODEsIDAuNzUyMTYxLCAxLjExNzUzLCAxLjQ4MTYyLCAxLjg0NjUyLCAyLjIxMDY2Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIxNDU0NSwgMC40MzIwNTksIDAuNTk4MDA2LCAwLjgwNDkwNywgMS4wMTE2MywgMS4yMTgzLCAxLjQyNDYzIiwgXAotICAgICAgICAgICIwLjIyMzkwNywgMC40NDEzMzksIDAuNjA3MzA0LCAwLjgxNDE4LCAxLjAyMDkyLCAxLjIyNzQ0LCAxLjQzMzg3IiwgXAotICAgICAgICAgICIwLjIzNTc5MSwgMC40NTMzNzQsIDAuNjE5MzQyLCAwLjgyNjI5OSwgMS4wMzI5MiwgMS4yMzk0MiwgMS40NDU5MiIsIFwKLSAgICAgICAgICAiMC4yNDcwMzcsIDAuNDY0NDUxLCAwLjYzMDQxMywgMC44Mzc0MTMsIDEuMDQ0MDMsIDEuMjUwNTMsIDEuNDU3IiwgXAotICAgICAgICAgICIwLjI1OTY3OSwgMC40NzcyMTcsIDAuNjQzMjEzLCAwLjg1MDA5NSwgMS4wNTY4OCwgMS4yNjMyNSwgMS40Njk3NyIsIFwKLSAgICAgICAgICAiMC4yNzk0NjgsIDAuNDk2ODMsIDAuNjYyODEsIDAuODY5Njg0LCAxLjA3NjQsIDEuMjgyOTYsIDEuNDg5MzgiLCBcCi0gICAgICAgICAgIjAuMjk2Njc3LCAwLjUxNDAxMiwgMC42Nzk5OTgsIDAuODg2ODg0LCAxLjA5MzU3LCAxLjMwMDE2LCAxLjUwNjU4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEyNzA5NSwgMC41MjE1NTYsIDAuODQ3NTIxLCAxLjI1NDkyLCAxLjY2NzUsIDIuMDcyNzEsIDIuNDkwNiIsIFwKLSAgICAgICAgICAiMC4xMjcwMjcsIDAuNTIxNDI5LCAwLjg0NTU1MSwgMS4yNTQ5NCwgMS42NjQ1NSwgMi4wNzg0MiwgMi40OTA5MyIsIFwKLSAgICAgICAgICAiMC4xMjY5OTgsIDAuNTIxNDg5LCAwLjg0NzgxMSwgMS4yNTcxNSwgMS42NjczNSwgMi4wNzg5MywgMi40OTAxIiwgXAotICAgICAgICAgICIwLjEyNjk1NCwgMC41MjEzMzgsIDAuODQ2NzYxLCAxLjI1NTQ1LCAxLjY2NzIxLCAyLjA3ODc3LCAyLjQ4NzA0IiwgXAotICAgICAgICAgICIwLjEyNjk5LCAwLjUyMTU1LCAwLjg0NTg4NiwgMS4yNTcxOCwgMS42NjI3NCwgMi4wNzg5MSwgMi40ODc0MiIsIFwKLSAgICAgICAgICAiMC4xMjY4NTUsIDAuNTIxNTYyLCAwLjg0NjAwNCwgMS4yNTc0OSwgMS42Njc1NSwgMi4wNzg1MywgMi40OTA5NSIsIFwKLSAgICAgICAgICAiMC4xMjY4MDMsIDAuNTIxNTI4LCAwLjg0NTcxMSwgMS4yNTQ4LCAxLjY2Nzk3LCAyLjA3ODM5LCAyLjQ5MDkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0kiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI5ODI5MSwgMC40ODAzMTYsIDAuNjIzODQ4LCAwLjgwMzI1LCAwLjk4MjUwNSwgMS4xNjE3NSwgMS4zNDA5NyIsIFwKLSAgICAgICAgICAiMC4zMDg4ODcsIDAuNDkwOTEsIDAuNjM0NDgsIDAuODEzODgsIDAuOTkzMTU1LCAxLjE3MjM3LCAxLjM1MTYiLCBcCi0gICAgICAgICAgIjAuMzIxNzg2LCAwLjUwMzg1NywgMC42NDczOTMsIDAuODI2Nzg0LCAxLjAwNjA0LCAxLjE4NTI5LCAxLjM2NDU4IiwgXAotICAgICAgICAgICIwLjMzNTMzNywgMC41MTczNSwgMC42NjA4NjYsIDAuODQwMjc5LCAxLjAxOTUzLCAxLjE5ODc4LCAxLjM3OCIsIFwKLSAgICAgICAgICAiMC4zNDg0MDksIDAuNTMwNTAxLCAwLjY3NDAyNCwgMC44NTM0MjUsIDEuMDMyNzMsIDEuMjExOTEsIDEuMzkxMTUiLCBcCi0gICAgICAgICAgIjAuMzY5NTczLCAwLjU1MTU4OSwgMC42OTUxMzgsIDAuODc0NTIsIDEuMDUzNzcsIDEuMjMzMDIsIDEuNDEyMjQiLCBcCi0gICAgICAgICAgIjAuMzg3OTMzLCAwLjU2OTk0NywgMC43MTM0NjYsIDAuODkyODc3LCAxLjA3MjEzLCAxLjI1MTM4LCAxLjQzMDYiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTA1MzM5LCAwLjQ1NzMyMywgMC43NDYxMDUsIDEuMTExNDksIDEuNDc2MjgsIDEuODM4NCwgMi4yMDMxNCIsIFwKLSAgICAgICAgICAiMC4xMDUyOTYsIDAuNDU3MDc0LCAwLjc0NjIwMSwgMS4xMTE0OCwgMS40NzUxNywgMS44NDA1OSwgMi4yMDI4NyIsIFwKLSAgICAgICAgICAiMC4xMDUzMjYsIDAuNDU3MzIyLCAwLjc0NjA1NiwgMS4xMTE1NSwgMS40NzYyMiwgMS44NDA2MywgMi4yMDYxMSIsIFwKLSAgICAgICAgICAiMC4xMDUzMjQsIDAuNDU3MzA4LCAwLjc0NzA2NCwgMS4xMTE1MywgMS40NzYyNSwgMS44Mzg0NSwgMi4yMDUxMyIsIFwKLSAgICAgICAgICAiMC4xMDUzMzYsIDAuNDU3MzA2LCAwLjc0NjE3OCwgMS4xMTE0NywgMS40NzYwOCwgMS44NDA1NSwgMi4yMDI4OCIsIFwKLSAgICAgICAgICAiMC4xMDUzMzQsIDAuNDU3MzA4LCAwLjc0NjA1LCAxLjExMTUyLCAxLjQ3NjI2LCAxLjgzODQxLCAyLjIwMzE4IiwgXAotICAgICAgICAgICIwLjEwNTMzNiwgMC40NTczMDksIDAuNzQ3MDg5LCAxLjExMTUzLCAxLjQ3NjI0LCAxLjgzODQ1LCAyLjIwMzE5Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI5NTI0MywgMC41MDM1MjEsIDAuNjY4NTY3LCAwLjg3NDc5MSwgMS4wODExLCAxLjI4NzMsIDEuNDkzNTgiLCBcCi0gICAgICAgICAgIjAuMzA1OTI4LCAwLjUxNDIyLCAwLjY3OTI2NywgMC44ODU1ODQsIDEuMDkxNzQsIDEuMjk4MTIsIDEuNTA0MjYiLCBcCi0gICAgICAgICAgIjAuMzE5MDQ5LCAwLjUyNzI5MywgMC42OTIyNDIsIDAuODk4NTM4LCAxLjEwNDc3LCAxLjMxMTA1LCAxLjUxNzMyIiwgXAotICAgICAgICAgICIwLjMzMjQ2LCAwLjU0MDcyNywgMC43MDU3NzUsIDAuOTExOTgxLCAxLjExODI3LCAxLjMyNDU1LCAxLjUzMDc4IiwgXAotICAgICAgICAgICIwLjM0NTUzOSwgMC41NTM4NzMsIDAuNzE4OTAxLCAwLjkyNTEyLCAxLjEzMTQsIDEuMzM3NzcsIDEuNTQzOTIiLCBcCi0gICAgICAgICAgIjAuMzY2OTc3LCAwLjU3NTMyMiwgMC43NDAzNSwgMC45NDY1NTMsIDEuMTUyODQsIDEuMzU5MSwgMS41NjUzOCIsIFwKLSAgICAgICAgICAiMC4zODU4ODMsIDAuNTk0MTcyLCAwLjc1OTIwOCwgMC45NjU0MTcsIDEuMTcxNjYsIDEuMzc3OTQsIDEuNTg0MiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTM5MDMsIDAuNTEyMzYzLCAwLjgzODU2NCwgMS4yNDgyOCwgMS42NTgwOCwgMi4wNjg4NywgMi40Nzc2NSIsIFwKLSAgICAgICAgICAiMC4xMTM5MzcsIDAuNTEyNzkxLCAwLjgzODQ0NywgMS4yNDgzNywgMS42NTg3NCwgMi4wNjkyOCwgMi40Nzg1NSIsIFwKLSAgICAgICAgICAiMC4xMTM5NDMsIDAuNTEyMjUzLCAwLjgzODI0NSwgMS4yNDgxNiwgMS42NTg0NCwgMi4wNjgyOSwgMi40Nzc2OSIsIFwKLSAgICAgICAgICAiMC4xMTQwMDEsIDAuNTExOTg5LCAwLjgzODQ1MiwgMS4yNDgxNywgMS42NTc4NSwgMi4wNjg2OSwgMi40Nzc2MiIsIFwKLSAgICAgICAgICAiMC4xMTM5NDUsIDAuNTEyMDU1LCAwLjgzODQ1MywgMS4yNDgxNywgMS42NTg0NywgMi4wNjg2NiwgMi40Nzc4MiIsIFwKLSAgICAgICAgICAiMC4xMTM5NjMsIDAuNTEyMjUsIDAuODM4NDUzLCAxLjI0ODE2LCAxLjY1ODQ5LCAyLjA2ODQ4LCAyLjQ3ODUxIiwgXAotICAgICAgICAgICIwLjExMzk3OSwgMC41MTIwNTIsIDAuODM4NjEzLCAxLjI0ODI0LCAxLjY1ODMsIDIuMDY5MDMsIDIuNDc5MSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDAyLCAwLjAwNDA4MSwgMC4wMDQwOSwgMC4wMDQwOTUsIDAuMDA0MDk3LCAwLjAwNDA5OCwgMC4wMDQwOTkiLCBcCi0gICAgICAgICAgIjAuMDA0MDE3LCAwLjAwNDA3OCwgMC4wMDQwODcsIDAuMDA0MDkyLCAwLjAwNDA5NCwgMC4wMDQwOTUsIDAuMDA0MDk2IiwgXAotICAgICAgICAgICIwLjAwNDAxNSwgMC4wMDQwNzcsIDAuMDA0MDg1LCAwLjAwNDA5LCAwLjAwNDA5MiwgMC4wMDQwOTQsIDAuMDA0MDk1IiwgXAotICAgICAgICAgICIwLjAwNDAxMywgMC4wMDQwNzUsIDAuMDA0MDgzLCAwLjAwNDA4OSwgMC4wMDQwODksIDAuMDA0MDkxLCAwLjAwNDA5NCIsIFwKLSAgICAgICAgICAiMC4wMDQwMTEsIDAuMDA0MDczLCAwLjAwNDA4MiwgMC4wMDQwODYsIDAuMDA0MDg5LCAwLjAwNDA5LCAwLjAwNDA5MSIsIFwKLSAgICAgICAgICAiMC4wMDQwMDcsIDAuMDA0MDcsIDAuMDA0MDc5LCAwLjAwNDA4NCwgMC4wMDQwODcsIDAuMDA0MDg4LCAwLjAwNDA4OSIsIFwKLSAgICAgICAgICAiMC4wMDQwMDQsIDAuMDA0MDY3LCAwLjAwNDA3NywgMC4wMDQwODIsIDAuMDA0MDg1LCAwLjAwNDA4NiwgMC4wMDQwODciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI0NDYsIDAuMDAyNTA3LCAwLjAwMjUxNiwgMC4wMDI1MjEsIDAuMDAyNTI0LCAwLjAwMjUyNSwgMC4wMDI1MjYiLCBcCi0gICAgICAgICAgIjAuMDAyNDMxLCAwLjAwMjQ5MywgMC4wMDI1MDIsIDAuMDAyNTA3LCAwLjAwMjUwOCwgMC4wMDI1MTEsIDAuMDAyNTEyIiwgXAotICAgICAgICAgICIwLjAwMjQyNCwgMC4wMDI0ODYsIDAuMDAyNDk1LCAwLjAwMjUsIDAuMDAyNTAzLCAwLjAwMjUwNCwgMC4wMDI1MDUiLCBcCi0gICAgICAgICAgIjAuMDAyNDIsIDAuMDAyNDgyLCAwLjAwMjQ5MSwgMC4wMDI0OTYsIDAuMDAyNDk4LCAwLjAwMjUsIDAuMDAyNTAxIiwgXAotICAgICAgICAgICIwLjAwMjQxNiwgMC4wMDI0NzgsIDAuMDAyNDg4LCAwLjAwMjQ5MywgMC4wMDI0OTUsIDAuMDAyNDk3LCAwLjAwMjQ5OCIsIFwKLSAgICAgICAgICAiMC4wMDI0MTIsIDAuMDAyNDc0LCAwLjAwMjQ4MywgMC4wMDI0ODksIDAuMDAyNDkxLCAwLjAwMjQ5MywgMC4wMDI0OTQiLCBcCi0gICAgICAgICAgIjAuMDAyNDA5LCAwLjAwMjQ3MiwgMC4wMDI0ODEsIDAuMDAyNDg3LCAwLjAwMjQ4OSwgMC4wMDI0OTEsIDAuMDAyNDkyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0LCAwLjAwNDA2LCAwLjAwNDA2OSwgMC4wMDQwNzQsIDAuMDA0MDc3LCAwLjAwNDA3OCwgMC4wMDQwNzkiLCBcCi0gICAgICAgICAgIjAuMDA0LCAwLjAwNDA2MSwgMC4wMDQwNjksIDAuMDA0MDc0LCAwLjAwNDA3NywgMC4wMDQwNzgsIDAuMDA0MDc5IiwgXAotICAgICAgICAgICIwLjAwMzk5NiwgMC4wMDQwNTcsIDAuMDA0MDY2LCAwLjAwNDA3MSwgMC4wMDQwNzMsIDAuMDA0MDc1LCAwLjAwNDA3NiIsIFwKLSAgICAgICAgICAiMC4wMDM5OTEsIDAuMDA0MDUyLCAwLjAwNDA2MSwgMC4wMDQwNjYsIDAuMDA0MDY4LCAwLjAwNDA3LCAwLjAwNDA3MSIsIFwKLSAgICAgICAgICAiMC4wMDM5ODUsIDAuMDA0MDQ2LCAwLjAwNDA1NSwgMC4wMDQwNiwgMC4wMDQwNjMsIDAuMDA0MDY0LCAwLjAwNDA2NSIsIFwKLSAgICAgICAgICAiMC4wMDM5NzUsIDAuMDA0MDM3LCAwLjAwNDA0NiwgMC4wMDQwNTIsIDAuMDA0MDU0LCAwLjAwNDA1NiwgMC4wMDQwNTciLCBcCi0gICAgICAgICAgIjAuMDAzOTY3LCAwLjAwNDAzLCAwLjAwNDA0LCAwLjAwNDA0NSwgMC4wMDQwNDgsIDAuMDA0MDQ5LCAwLjAwNDA1MSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjU1NywgMC4wMDI2MTgsIDAuMDAyNjI3LCAwLjAwMjYzMSwgMC4wMDI2MzQsIDAuMDAyNjM2LCAwLjAwMjYzNiIsIFwKLSAgICAgICAgICAiMC4wMDI1NSwgMC4wMDI2MTEsIDAuMDAyNjIsIDAuMDAyNjI1LCAwLjAwMjYyNywgMC4wMDI2MjksIDAuMDAyNjI5IiwgXAotICAgICAgICAgICIwLjAwMjU0LCAwLjAwMjYwMiwgMC4wMDI2MTEsIDAuMDAyNjE1LCAwLjAwMjYxOCwgMC4wMDI2MiwgMC4wMDI2MiIsIFwKLSAgICAgICAgICAiMC4wMDI1MzEsIDAuMDAyNTk0LCAwLjAwMjYwMiwgMC4wMDI2MDcsIDAuMDAyNjA5LCAwLjAwMjYxMSwgMC4wMDI2MTIiLCBcCi0gICAgICAgICAgIjAuMDAyNTI0LCAwLjAwMjU4NiwgMC4wMDI1OTUsIDAuMDAyNiwgMC4wMDI2MDMsIDAuMDAyNjA0LCAwLjAwMjYwNSIsIFwKLSAgICAgICAgICAiMC4wMDI1MTQsIDAuMDAyNTc2LCAwLjAwMjU4NiwgMC4wMDI1OTEsIDAuMDAyNTk0LCAwLjAwMjU5NiwgMC4wMDI1OTYiLCBcCi0gICAgICAgICAgIjAuMDAyNTA3LCAwLjAwMjU3LCAwLjAwMjU4MSwgMC4wMDI1ODYsIDAuMDAyNTg4LCAwLjAwMjU5LCAwLjAwMjU5MSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNJIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDM3MzksIDAuMDAzNzk4LCAwLjAwMzgwNywgMC4wMDM4MTIsIDAuMDAzODE1LCAwLjAwMzgxNywgMC4wMDM4MTgiLCBcCi0gICAgICAgICAgIjAuMDAzNzQsIDAuMDAzOCwgMC4wMDM4MDksIDAuMDAzODEzLCAwLjAwMzgxNiwgMC4wMDM4MTgsIDAuMDAzODE5IiwgXAotICAgICAgICAgICIwLjAwMzczNiwgMC4wMDM3OTYsIDAuMDAzODA1LCAwLjAwMzgxLCAwLjAwMzgxMywgMC4wMDM4MTQsIDAuMDAzODE2IiwgXAotICAgICAgICAgICIwLjAwMzczLCAwLjAwMzc5MSwgMC4wMDM4MDEsIDAuMDAzODA2LCAwLjAwMzgwOSwgMC4wMDM4MTEsIDAuMDAzODEyIiwgXAotICAgICAgICAgICIwLjAwMzcyNCwgMC4wMDM3ODcsIDAuMDAzNzk2LCAwLjAwMzgwMiwgMC4wMDM4MDUsIDAuMDAzODA3LCAwLjAwMzgwOCIsIFwKLSAgICAgICAgICAiMC4wMDM3MTcsIDAuMDAzNzc5LCAwLjAwMzc5LCAwLjAwMzc5NSwgMC4wMDM3OTksIDAuMDAzODAxLCAwLjAwMzgwMiIsIFwKLSAgICAgICAgICAiMC4wMDM3MDksIDAuMDAzNzczLCAwLjAwMzc4NCwgMC4wMDM3OSwgMC4wMDM3OTQsIDAuMDAzNzk2LCAwLjAwMzc5OCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjU1LCAwLjAwMjYxLCAwLjAwMjYxOSwgMC4wMDI2MjQsIDAuMDAyNjI3LCAwLjAwMjYyOCwgMC4wMDI2MjkiLCBcCi0gICAgICAgICAgIjAuMDAyNTQ5LCAwLjAwMjYxLCAwLjAwMjYxOCwgMC4wMDI2MjMsIDAuMDAyNjI2LCAwLjAwMjYyOSwgMC4wMDI2MjciLCBcCi0gICAgICAgICAgIjAuMDAyNTQzLCAwLjAwMjYwNCwgMC4wMDI2MTMsIDAuMDAyNjE3LCAwLjAwMjYxOSwgMC4wMDI2MjIsIDAuMDAyNjIzIiwgXAotICAgICAgICAgICIwLjAwMjUzNiwgMC4wMDI1OTcsIDAuMDAyNjA2LCAwLjAwMjYxMSwgMC4wMDI2MTQsIDAuMDAyNjE2LCAwLjAwMjYxNyIsIFwKLSAgICAgICAgICAiMC4wMDI1MjksIDAuMDAyNTkxLCAwLjAwMjYsIDAuMDAyNjA1LCAwLjAwMjYwOCwgMC4wMDI2MSwgMC4wMDI2MSIsIFwKLSAgICAgICAgICAiMC4wMDI1MTksIDAuMDAyNTgxLCAwLjAwMjU5MSwgMC4wMDI1OTYsIDAuMDAyNTk5LCAwLjAwMjYwMSwgMC4wMDI2MDMiLCBcCi0gICAgICAgICAgIjAuMDAyNTExLCAwLjAwMjU3MywgMC4wMDI1ODMsIDAuMDAyNTg5LCAwLjAwMjU5MiwgMC4wMDI1OTQsIDAuMDAyNTk1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogQURERkhYNCAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChBRERGSFg0KSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuNTE0MDk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMzMxNDQxOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMzMwNzA2OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMzMxNDQxOwotICB9Ci0gIHBpbihCKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDMxNTg1ODsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDMxMzk0MzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDMxNTg1ODsKLSAgfQotICBwaW4oQ0kpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMjUwMzk0OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMjQ4Njc3OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMjUwMzk0OwotICB9Ci0gIHBpbihDTykgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjUyNTE2MjsKLSAgICBmdW5jdGlvbiA6ICIoKChBIEIpKyhCIENJKSkrKENJIEEpKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xOTQwNjksIDAuMzM5NzYsIDAuNDY4NzAxLCAwLjU1OTgyOSwgMC43MDUxOTIsIDAuODMyMDk5LCAxLjAxNTU3IiwgXAotICAgICAgICAgICIwLjIwNTUsIDAuMzUxNDEyLCAwLjQ4MDEyLCAwLjU3MTAwMiwgMC43MTY1NzksIDAuODQzOTEzLCAxLjAyNTA4IiwgXAotICAgICAgICAgICIwLjIyMDAxMiwgMC4zNjU3MjksIDAuNDk0NDAxLCAwLjU4NTQzNCwgMC43MzA3NzEsIDAuODU3NzA4LCAxLjA0MDczIiwgXAotICAgICAgICAgICIwLjIzMzM3NywgMC4zNzk0NTIsIDAuNTA4MTA1LCAwLjU5OTA2NywgMC43NDQwMzcsIDAuODcyNDQsIDEuMDU0MTYiLCBcCi0gICAgICAgICAgIjAuMjQ2OSwgMC4zOTI4ODIsIDAuNTIxNTg5LCAwLjYxMjY1LCAwLjc1NzkwNCwgMC44ODUwMDMsIDEuMDY3NTMiLCBcCi0gICAgICAgICAgIjAuMjY4NjU2LCAwLjQxNDQxMywgMC41NDMwNzIsIDAuNjMzODMxLCAwLjc3OTQ5NywgMC45MDczMiwgMS4wODg5IiwgXAotICAgICAgICAgICIwLjI4NzQ1MiwgMC40MzMzMDEsIDAuNTYyMDA3LCAwLjY1MzA4MiwgMC43OTgyLCAwLjkyNTQwNiwgMS4xMDY2MyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4NzQxOCwgMC4zMzAzNjgsIDAuNTgyNTE0LCAwLjc2OTkxOSwgMS4wNjc3LCAxLjMzMDg3LCAxLjcwMDc2IiwgXAotICAgICAgICAgICIwLjA4NjQ0NSwgMC4zMjk1NTMsIDAuNTgyNTEsIDAuNzYwNzQ1LCAxLjA2NzksIDEuMzI0NjksIDEuNzAxNTkiLCBcCi0gICAgICAgICAgIjAuMDg3NDc2LCAwLjMzMDgxMywgMC41ODI0NDMsIDAuNzYxODYsIDEuMDY0ODcsIDEuMzI2MTYsIDEuNzAwNTYiLCBcCi0gICAgICAgICAgIjAuMDg2NzgzLCAwLjMzMDA4NiwgMC41ODI2NzIsIDAuNzYwMTg5LCAxLjA2NzUyLCAxLjMyODY0LCAxLjY5MDMxIiwgXAotICAgICAgICAgICIwLjA4NjE4MywgMC4zMzAwMiwgMC41ODIzMjYsIDAuNzcwNzQsIDEuMDY4NjksIDEuMzI1ODYsIDEuNzAwOTIiLCBcCi0gICAgICAgICAgIjAuMDg2Mjc3LCAwLjMzMDM3MSwgMC41ODkzNDQsIDAuNzYyMDcxLCAxLjA2NjE4LCAxLjMxODQzLCAxLjcwMDM2IiwgXAotICAgICAgICAgICIwLjA4NTk4LCAwLjMyOTA5MiwgMC41ODk5NTEsIDAuNzY5NjI3LCAxLjA2NTYyLCAxLjMyNjA4LCAxLjcwMDQ0Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTg4MzU1LCAwLjM1MTM0OSwgMC40OTg0MzcsIDAuNjAzMDU2LCAwLjc3MDI0NSwgMC45MTU1NDEsIDEuMTIyODkiLCBcCi0gICAgICAgICAgIjAuMjAwMjEzLCAwLjM2MzE0NiwgMC41MTAyMTgsIDAuNjE0ODA3LCAwLjc4MTYzMywgMC45MjcyMjIsIDEuMTM0NjIiLCBcCi0gICAgICAgICAgIjAuMjE0MjE3LCAwLjM3NzIxNiwgMC41MjQyOTQsIDAuNjI4OTI4LCAwLjc5NTAxNiwgMC45NDE0MDMsIDEuMTQ4NzUiLCBcCi0gICAgICAgICAgIjAuMjI3NDI2LCAwLjM5MDQxMywgMC41Mzc0NjMsIDAuNjQyMDgyLCAwLjgwODEwNiwgMC45NTM5OTYsIDEuMTYyIiwgXAotICAgICAgICAgICIwLjI0MDMxOCwgMC40MDMyMDMsIDAuNTUwMjg2LCAwLjY1NDg3MywgMC44MjIxMTcsIDAuOTY3MjM2LCAxLjE3NDY3IiwgXAotICAgICAgICAgICIwLjI2MDE1NSwgMC40MjMxNTcsIDAuNTcwMjIsIDAuNjc0ODM3LCAwLjg0MDk0OCwgMC45ODY4NDQsIDEuMTk0NjQiLCBcCi0gICAgICAgICAgIjAuMjc3NjI0LCAwLjQ0MDUyOCwgMC41ODc2MjEsIDAuNjkyMjE3LCAwLjg1OTQ2OCwgMS4wMDQ1OSwgMS4yMTIwMiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4OTE0NSwgMC4zNjUyODksIDAuNjQ2OTY4LCAwLjg1MjE5MiwgMS4xODE1MiwgMS40NzE3NywgMS44ODUwNSIsIFwKLSAgICAgICAgICAiMC4wODg3MTYsIDAuMzY2MTkxLCAwLjY0Nzg1MSwgMC44NTE3MTksIDEuMTgwOTIsIDEuNDcwNjMsIDEuODg1NTgiLCBcCi0gICAgICAgICAgIjAuMDg5MTA2LCAwLjM2NjUyOCwgMC42NDcwMzcsIDAuODUxNzgyLCAxLjE4MDY3LCAxLjQ3MDc1LCAxLjg4NjE2IiwgXAotICAgICAgICAgICIwLjA4OTI4NywgMC4zNjYzODgsIDAuNjQ3Njg5LCAwLjg1MTc4MiwgMS4xODA3MywgMS40NzE5NSwgMS44ODUzNyIsIFwKLSAgICAgICAgICAiMC4wODkyNDYsIDAuMzY2MDgzLCAwLjY0ODMsIDAuODUxNzE5LCAxLjE4MDY0LCAxLjQ3MDUyLCAxLjg4NTg0IiwgXAotICAgICAgICAgICIwLjA4OTI2NiwgMC4zNjY1OTYsIDAuNjQ3NzM5LCAwLjg1MTY4OCwgMS4xODA5MywgMS40NjkwNCwgMS44ODU1MiIsIFwKLSAgICAgICAgICAiMC4wODg5ODgsIDAuMzY1MjE2LCAwLjY0ODI2OCwgMC44NTE2OTgsIDEuMTgxODQsIDEuNDcwNTIsIDEuODg1NTUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xOTM5MjMsIDAuMzM5NzUxLCAwLjQ2ODY2NCwgMC41NTk3NzQsIDAuNzA1Mjc5LCAwLjgzMzE0NiwgMS4wMTQxNiIsIFwKLSAgICAgICAgICAiMC4yMDQ2MTUsIDAuMzUwMjM1LCAwLjQ3OTEzMiwgMC41NzAyNjIsIDAuNzE1Njk0LCAwLjg0NDAxNiwgMS4wMjY1OSIsIFwKLSAgICAgICAgICAiMC4yMTc2MTMsIDAuMzYzMzMxLCAwLjQ5MjI1NywgMC41ODMzOTEsIDAuNzI4NzU1LCAwLjg1NTkxLCAxLjAzNzAzIiwgXAotICAgICAgICAgICIwLjIzMDIyOCwgMC4zNzYwNTgsIDAuNTA0OTk1LCAwLjU5NjEzMiwgMC43NDE0MjUsIDAuODY4NTgsIDEuMDUyNDQiLCBcCi0gICAgICAgICAgIjAuMjQzNDEsIDAuMzg5MjA0LCAwLjUxODE5NiwgMC42MDkzMzYsIDAuNzU0NjA4LCAwLjg4MTczNSwgMS4wNjU1MiIsIFwKLSAgICAgICAgICAiMC4yNjUxMjYsIDAuNDEwNTUsIDAuNTM5NTQyLCAwLjYzMDY4OSwgMC43NzYwMDEsIDAuOTA0MTk2LCAxLjA4NDEzIiwgXAotICAgICAgICAgICIwLjI4Mzg1MSwgMC40MjkzNSwgMC41NTgzNDIsIDAuNjQ5NDkzLCAwLjc5NDcxOSwgMC45MjE4NjIsIDEuMTA1NTIiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODczNDksIDAuMzMxNDY4LCAwLjU4MjQ3NSwgMC43NzEwMDcsIDEuMDYwMDcsIDEuMzI0MTgsIDEuNjg5MTciLCBcCi0gICAgICAgICAgIjAuMDg3MjU1LCAwLjMzMDg2MiwgMC41ODI0MjQsIDAuNzYzNTE3LCAxLjA3MDM0LCAxLjMyNDI2LCAxLjY5ODkiLCBcCi0gICAgICAgICAgIjAuMDg3NjAxLCAwLjMzMDUyLCAwLjU4MjIxMiwgMC43NzIxODMsIDEuMDYxMjgsIDEuMzI1MDMsIDEuNjk5NDUiLCBcCi0gICAgICAgICAgIjAuMDg2NjAxLCAwLjMzMDUyOCwgMC41ODIzNDQsIDAuNzYxODYsIDEuMDYwODEsIDEuMzI1NSwgMS42OTk5NyIsIFwKLSAgICAgICAgICAiMC4wODcyMywgMC4zMzA1MDYsIDAuNTgyMjQ4LCAwLjc2MDExOSwgMS4wNjE5NywgMS4zMjQ3NSwgMS43MDA0NCIsIFwKLSAgICAgICAgICAiMC4wODY1OTMsIDAuMzI5NjI2LCAwLjU4MjMxNCwgMC43NTk3NDIsIDEuMDY5MjIsIDEuMzI0NSwgMS42OTY1MSIsIFwKLSAgICAgICAgICAiMC4wODYxMTUsIDAuMzMwMTgsIDAuNTgyMDE4LCAwLjc3MDI4NSwgMS4wNjc2LCAxLjMyNTQ4LCAxLjcwMTIzIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTgyOTM5LCAwLjM0OTI2NCwgMC40OTY2MTUsIDAuNjAwNjU2LCAwLjc2ODIxMSwgMC45MTM2ODksIDEuMTIwODgiLCBcCi0gICAgICAgICAgIjAuMTk0NzQ1LCAwLjM2MDk5OSwgMC41MDg0MTgsIDAuNjEyOTYzLCAwLjc3OTgwNCwgMC45MjUzNzQsIDEuMTMyNzUiLCBcCi0gICAgICAgICAgIjAuMjA4ODE0LCAwLjM3NTA5MSwgMC41MjI0NDMsIDAuNjI2OTU5LCAwLjc5MzQ1OCwgMC45Mzk0ODcsIDEuMTQ2ODMiLCBcCi0gICAgICAgICAgIjAuMjIxODM4LCAwLjM4ODExNiwgMC41MzU0ODgsIDAuNjQwMDQ0LCAwLjgwNjgyMiwgMC45NTI0NzgsIDEuMTU5ODQiLCBcCi0gICAgICAgICAgIjAuMjM0NjI1LCAwLjQwMDc3MiwgMC41NDgwOTUsIDAuNjUyNzQ4LCAwLjgxOTY1NywgMC45NjUxNDcsIDEuMTcyNTQiLCBcCi0gICAgICAgICAgIjAuMjU0NTE5LCAwLjQyMDY5MiwgMC41NjgwMTIsIDAuNjcyNjcxLCAwLjgzOTUyNywgMC45ODUwOCwgMS4xOTI0NyIsIFwKLSAgICAgICAgICAiMC4yNzI2ODcsIDAuNDM3ODQ2LCAwLjU4NTI0OSwgMC42ODk3OTQsIDAuODU3MDkxLCAxLjAwMjE4LCAxLjIwOTU4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDkzMDcsIDAuMzY2NTMxLCAwLjY0ODA0NCwgMC44NTMwOTMsIDEuMTgxNzcsIDEuNDcwMzksIDEuODg1OTMiLCBcCi0gICAgICAgICAgIjAuMDkyNTQ1LCAwLjM2NjQyMiwgMC42NTA2OTIsIDAuODUyNzQyLCAxLjE4MDksIDEuNDcxNjksIDEuODg0IiwgXAotICAgICAgICAgICIwLjA5MjMwNiwgMC4zNjYzNzMsIDAuNjQ4MDI1LCAwLjg1MTc2LCAxLjE4MDcsIDEuNDcxNDksIDEuODgzNDEiLCBcCi0gICAgICAgICAgIjAuMDkyNTI2LCAwLjM2NjY1MSwgMC42NDcxMjYsIDAuODUxOTMsIDEuMTgwNjYsIDEuNDcwMzIsIDEuODg1ODEiLCBcCi0gICAgICAgICAgIjAuMDkyMDcyLCAwLjM2NjMwOCwgMC42NTA1MTIsIDAuODUyNTM0LCAxLjE4MTc3LCAxLjQ3MDM2LCAxLjg4NTY0IiwgXAotICAgICAgICAgICIwLjA5MTUwNCwgMC4zNjYyNDcsIDAuNjUwNDksIDAuODUxOTU3LCAxLjE4MDkyLCAxLjQ3MDM0LCAxLjg4NTU0IiwgXAotICAgICAgICAgICIwLjA5MTc3NCwgMC4zNjY3OCwgMC42NTA0ODMsIDAuODUyMDAzLCAxLjE4MDY2LCAxLjQ3MTg3LCAxLjg4NTgyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNJIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE4MjMxNSwgMC4zMjgyOTksIDAuNDU2OTk5LCAwLjU0Nzg4LCAwLjY5MzM2MSwgMC44MTk4MzIsIDEuMDAxMTMiLCBcCi0gICAgICAgICAgIjAuMTkyODk3LCAwLjMzODg3LCAwLjQ2NzU1NiwgMC41NTg2MjcsIDAuNzAzNzUsIDAuODMwOTM4LCAxLjAxMjE1IiwgXAotICAgICAgICAgICIwLjIwNjIzMiwgMC4zNTE5OTUsIDAuNDgwNjg1LCAwLjU3MTU4NywgMC43MTcwNTQsIDAuODQzNDAzLCAxLjAyNDg3IiwgXAotICAgICAgICAgICIwLjIxOTc4NCwgMC4zNjU3ODcsIDAuNDk0NDYyLCAwLjU4NTU0MSwgMC43MzA1MzEsIDAuODU3ODI1LCAxLjAzOTAzIiwgXAotICAgICAgICAgICIwLjIzMjgyNywgMC4zNzg3OTUsIDAuNTA3NDEyLCAwLjU5ODQ5NCwgMC43NDM0NTksIDAuODcwNzY2LCAxLjA1MTk4IiwgXAotICAgICAgICAgICIwLjI1NDM5MSwgMC40MDAxMjgsIDAuNTI4NzgxLCAwLjYxOTQ2NSwgMC43NjUxMjUsIDAuODkyODM2LCAxLjA3Mzc4IiwgXAotICAgICAgICAgICIwLjI3MzIxNywgMC40MTkxMTIsIDAuNTQ3NzU5LCAwLjYzODgyMywgMC43ODQwNTQsIDAuOTExMjY2LCAxLjA5Mzc2Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg3MzYyLCAwLjMzMTY1MiwgMC41OTAxNDcsIDAuNzY3OTI5LCAxLjA2MjkxLCAxLjMyNTQzLCAxLjcwMTE2IiwgXAotICAgICAgICAgICIwLjA4ODA5NSwgMC4zMzEzOTcsIDAuNTkwMDksIDAuNzcyNTkyLCAxLjA2MzEzLCAxLjMyNjQ4LCAxLjcwMDI4IiwgXAotICAgICAgICAgICIwLjA4Nzc3OCwgMC4zMzA1NDQsIDAuNTg4NjksIDAuNzYxMTE0LCAxLjA2NjIyLCAxLjMyNzMsIDEuNzAxMiIsIFwKLSAgICAgICAgICAiMC4wODc2NjgsIDAuMzMwNSwgMC41ODE3OTcsIDAuNzYxMzcyLCAxLjA2ODM1LCAxLjMyNjM3LCAxLjcwMDUyIiwgXAotICAgICAgICAgICIwLjA4NzQ4NCwgMC4zMjk3NjMsIDAuNTkwMTk4LCAwLjc3MTU3NywgMS4wNjg2NCwgMS4zMjYyNywgMS43MDA3NSIsIFwKLSAgICAgICAgICAiMC4wODc0MiwgMC4zMzA5MjUsIDAuNTkwMDg3LCAwLjc3MDU2LCAxLjA2MzIzLCAxLjMyNTQ1LCAxLjcwMTEzIiwgXAotICAgICAgICAgICIwLjA4ODU2MSwgMC4zMzA3LCAwLjU4MjcyOSwgMC43NzE1MjksIDEuMDYyODEsIDEuMzI2MDUsIDEuNzAwMTciKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNzU5MzYsIDAuMzQzMDE2LCAwLjQ5MDQxLCAwLjU5NDk0OSwgMC43NjE3MTcsIDAuOTA3MzI3LCAxLjExNDY5IiwgXAotICAgICAgICAgICIwLjE4NjQxOSwgMC4zNTM0NiwgMC41MDA3OTEsIDAuNjA1Mzg5LCAwLjc3MjAxOCwgMC45MTc4MDQsIDEuMTI1MTQiLCBcCi0gICAgICAgICAgIjAuMTk5MjU5LCAwLjM2NjMxNCwgMC41MTM2NzgsIDAuNjE4MzQ0LCAwLjc4NDgzMywgMC45MzA4NDIsIDEuMTM4MDEiLCBcCi0gICAgICAgICAgIjAuMjEyNzgzLCAwLjM3OTgwOSwgMC41MjcwNTcsIDAuNjMxNzksIDAuNzk4NjM5LCAwLjk0NDE2OSwgMS4xNTE1NCIsIFwKLSAgICAgICAgICAiMC4yMjU5NjQsIDAuMzkyOTcsIDAuNTQwMzQ1LCAwLjY0NDk2NSwgMC44MTE3OTUsIDAuOTU3MzUsIDEuMTY0NzIiLCBcCi0gICAgICAgICAgIjAuMjQ3MzU4LCAwLjQxNDM2NiwgMC41NjE4MDMsIDAuNjY2MzUzLCAwLjgzMzE0NywgMC45Nzg1NTEsIDEuMTg2IiwgXAotICAgICAgICAgICIwLjI2NTkyNywgMC40MzI5OTgsIDAuNTgwMzMyLCAwLjY4NTAwNiwgMC44NTE4MjksIDAuOTk3NCwgMS4yMDQ3OCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5NTY1MywgMC4zNjc4MzYsIDAuNjUwNjYzLCAwLjg1MjE5LCAxLjE4MTM0LCAxLjQ3MDY3LCAxLjg4MzI2IiwgXAotICAgICAgICAgICIwLjA5NDg5NCwgMC4zNjcyMDYsIDAuNjQ4MDY2LCAwLjg1MjExNywgMS4xODE0OCwgMS40NzA2OCwgMS44ODMzMyIsIFwKLSAgICAgICAgICAiMC4wOTU2NTEsIDAuMzY3MTQyLCAwLjY0ODgyMSwgMC44NTIyMzEsIDEuMTgxNDMsIDEuNDY4MjIsIDEuODgzMjciLCBcCi0gICAgICAgICAgIjAuMDk1MjM2LCAwLjM2NzU3NSwgMC42NTA0NTMsIDAuODUyMTg1LCAxLjE4MDczLCAxLjQ3MDY4LCAxLjg4MzI2IiwgXAotICAgICAgICAgICIwLjA5NTMzNiwgMC4zNjc1MjUsIDAuNjUwMDkzLCAwLjg1MjE4NCwgMS4xNzk3OCwgMS40NzA1NywgMS44ODMyNiIsIFwKLSAgICAgICAgICAiMC4wOTUxNzgsIDAuMzY3MzAxLCAwLjY1MDc3MiwgMC44NTIxOTEsIDEuMTc5NzMsIDEuNDcwNDcsIDEuODgyODQiLCBcCi0gICAgICAgICAgIjAuMDk2MTcxLCAwLjM2Nzc4MSwgMC42NTAwNjUsIDAuODUyMjAzLCAxLjE3OTc5LCAxLjQ3MDQ0LCAxLjg4MzI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQyMTEsIDAuMDA0MzcyLCAwLjAwNDQwMywgMC4wMDQ0MTMsIDAuMDA0NDIzLCAwLjAwNDQyOCwgMC4wMDQ0MzIiLCBcCi0gICAgICAgICAgIjAuMDA0MTkzLCAwLjAwNDM1NCwgMC4wMDQzODUsIDAuMDA0Mzk2LCAwLjAwNDQwNSwgMC4wMDQ0MSwgMC4wMDQ0MTQiLCBcCi0gICAgICAgICAgIjAuMDA0MTg1LCAwLjAwNDM0NiwgMC4wMDQzNzcsIDAuMDA0Mzg4LCAwLjAwNDM5NywgMC4wMDQ0MDMsIDAuMDA0NDA2IiwgXAotICAgICAgICAgICIwLjAwNDE3OSwgMC4wMDQzNCwgMC4wMDQzNzIsIDAuMDA0MzgyLCAwLjAwNDM5MiwgMC4wMDQzOTcsIDAuMDA0NCIsIFwKLSAgICAgICAgICAiMC4wMDQxNzQsIDAuMDA0MzM2LCAwLjAwNDM2NywgMC4wMDQzNzgsIDAuMDA0Mzg4LCAwLjAwNDM5MywgMC4wMDQzOTciLCBcCi0gICAgICAgICAgIjAuMDA0MTY5LCAwLjAwNDMyOCwgMC4wMDQzNjEsIDAuMDA0MzcyLCAwLjAwNDM4MiwgMC4wMDQzODcsIDAuMDA0MzkyIiwgXAotICAgICAgICAgICIwLjAwNDE2NywgMC4wMDQzMjUsIDAuMDA0MzU5LCAwLjAwNDM2OSwgMC4wMDQzNzksIDAuMDA0Mzg0LCAwLjAwNDM5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDYwMTIsIDAuMDA2MTczLCAwLjAwNjIwNCwgMC4wMDYyMTQsIDAuMDA2MjIzLCAwLjAwNjIyNywgMC4wMDYyMzIiLCBcCi0gICAgICAgICAgIjAuMDA2MDA5LCAwLjAwNjE3LCAwLjAwNjIsIDAuMDA2MjEsIDAuMDA2MjE5LCAwLjAwNjIyMywgMC4wMDYyMjgiLCBcCi0gICAgICAgICAgIjAuMDA2MDA3LCAwLjAwNjE2OCwgMC4wMDYxOTgsIDAuMDA2MjA5LCAwLjAwNjIxOCwgMC4wMDYyMjIsIDAuMDA2MjI2IiwgXAotICAgICAgICAgICIwLjAwNjAwNCwgMC4wMDYxNjUsIDAuMDA2MTk3LCAwLjAwNjIwNiwgMC4wMDYyMTUsIDAuMDA2MjIxLCAwLjAwNjIyNSIsIFwKLSAgICAgICAgICAiMC4wMDYwMDEsIDAuMDA2MTYyLCAwLjAwNjE5NSwgMC4wMDYyMDQsIDAuMDA2MjEyLCAwLjAwNjIxOCwgMC4wMDYyMiIsIFwKLSAgICAgICAgICAiMC4wMDU5OTYsIDAuMDA2MTU3LCAwLjAwNjE4OSwgMC4wMDYxOTksIDAuMDA2MjA5LCAwLjAwNjIxNCwgMC4wMDYyMTkiLCBcCi0gICAgICAgICAgIjAuMDA1OTkzLCAwLjAwNjE1MywgMC4wMDYxODYsIDAuMDA2MTk3LCAwLjAwNjIwNiwgMC4wMDYyMSwgMC4wMDYyMTYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDM1MiwgMC4wMDQ1MTMsIDAuMDA0NTQ0LCAwLjAwNDU1NCwgMC4wMDQ1NjMsIDAuMDA0NTY4LCAwLjAwNDU3MyIsIFwKLSAgICAgICAgICAiMC4wMDQzNDUsIDAuMDA0NTA2LCAwLjAwNDUzNywgMC4wMDQ1NDcsIDAuMDA0NTU1LCAwLjAwNDU2LCAwLjAwNDU2NCIsIFwKLSAgICAgICAgICAiMC4wMDQzMzEsIDAuMDA0NDk0LCAwLjAwNDUyNSwgMC4wMDQ1MzUsIDAuMDA0NTQ0LCAwLjAwNDU0OSwgMC4wMDQ1NTQiLCBcCi0gICAgICAgICAgIjAuMDA0MzIyLCAwLjAwNDQ4MywgMC4wMDQ1MTUsIDAuMDA0NTI2LCAwLjAwNDUzNCwgMC4wMDQ1MzksIDAuMDA0NTQzIiwgXAotICAgICAgICAgICIwLjAwNDMxMywgMC4wMDQ0NzQsIDAuMDA0NTA2LCAwLjAwNDUxNywgMC4wMDQ1MjYsIDAuMDA0NTMxLCAwLjAwNDUzNiIsIFwKLSAgICAgICAgICAiMC4wMDQzMDEsIDAuMDA0NDYsIDAuMDA0NDkzLCAwLjAwNDUwNCwgMC4wMDQ1MTMsIDAuMDA0NTE5LCAwLjAwNDUyNCIsIFwKLSAgICAgICAgICAiMC4wMDQyOTMsIDAuMDA0NDUsIDAuMDA0NDg1LCAwLjAwNDQ5NiwgMC4wMDQ1MDYsIDAuMDA0NTEyLCAwLjAwNDUxNyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1OTgzLCAwLjAwNjE0MiwgMC4wMDYxNzIsIDAuMDA2MTgyLCAwLjAwNjE5MiwgMC4wMDYxOTYsIDAuMDA2MjAxIiwgXAotICAgICAgICAgICIwLjAwNTk4MiwgMC4wMDYxNDIsIDAuMDA2MTczLCAwLjAwNjE4MywgMC4wMDYxOTIsIDAuMDA2MTk3LCAwLjAwNjIwMSIsIFwKLSAgICAgICAgICAiMC4wMDU5OCwgMC4wMDYxMzksIDAuMDA2MTcsIDAuMDA2MTc5LCAwLjAwNjE4OCwgMC4wMDYxOTQsIDAuMDA2MTk3IiwgXAotICAgICAgICAgICIwLjAwNTk3MywgMC4wMDYxMzMsIDAuMDA2MTY0LCAwLjAwNjE3NCwgMC4wMDYxODIsIDAuMDA2MTg3LCAwLjAwNjE5MiIsIFwKLSAgICAgICAgICAiMC4wMDU5NjcsIDAuMDA2MTI2LCAwLjAwNjE1NywgMC4wMDYxNjcsIDAuMDA2MTc2LCAwLjAwNjE4MSwgMC4wMDYxODYiLCBcCi0gICAgICAgICAgIjAuMDA1OTU1LCAwLjAwNjExNCwgMC4wMDYxNDYsIDAuMDA2MTU3LCAwLjAwNjE2NiwgMC4wMDYxNzIsIDAuMDA2MTc2IiwgXAotICAgICAgICAgICIwLjAwNTk0NSwgMC4wMDYxMDMsIDAuMDA2MTM2LCAwLjAwNjE0NywgMC4wMDYxNTcsIDAuMDA2MTYzLCAwLjAwNjE2NyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNJIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDM0NiwgMC4wMDQ1MDUsIDAuMDA0NTM2LCAwLjAwNDU0NywgMC4wMDQ1NTUsIDAuMDA0NTYxLCAwLjAwNDU2NSIsIFwKLSAgICAgICAgICAiMC4wMDQzNDYsIDAuMDA0NTA2LCAwLjAwNDUzNywgMC4wMDQ1NSwgMC4wMDQ1NTYsIDAuMDA0NTYxLCAwLjAwNDU2OCIsIFwKLSAgICAgICAgICAiMC4wMDQzMzksIDAuMDA0NDk5LCAwLjAwNDUzLCAwLjAwNDU0LCAwLjAwNDU1LCAwLjAwNDU1NCwgMC4wMDQ1NTgiLCBcCi0gICAgICAgICAgIjAuMDA0MzMyLCAwLjAwNDQ5MiwgMC4wMDQ1MjMsIDAuMDA0NTM0LCAwLjAwNDU0MywgMC4wMDQ1NSwgMC4wMDQ1NTIiLCBcCi0gICAgICAgICAgIjAuMDA0MzIzLCAwLjAwNDQ4MSwgMC4wMDQ1MTQsIDAuMDA0NTI0LCAwLjAwNDUzNCwgMC4wMDQ1MzksIDAuMDA0NTQ0IiwgXAotICAgICAgICAgICIwLjAwNDMxMiwgMC4wMDQ0NjgsIDAuMDA0NTAxLCAwLjAwNDUxMiwgMC4wMDQ1MjMsIDAuMDA0NTI4LCAwLjAwNDUzNCIsIFwKLSAgICAgICAgICAiMC4wMDQzMDIsIDAuMDA0NDU3LCAwLjAwNDQ5MSwgMC4wMDQ1MDIsIDAuMDA0NTEzLCAwLjAwNDUxOSwgMC4wMDQ1MjYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNTY3OCwgMC4wMDU4MzQsIDAuMDA1ODY1LCAwLjAwNTg3NSwgMC4wMDU4ODUsIDAuMDA1ODksIDAuMDA1ODk1IiwgXAotICAgICAgICAgICIwLjAwNTY4LCAwLjAwNTgzNiwgMC4wMDU4NjYsIDAuMDA1ODc3LCAwLjAwNTg4NiwgMC4wMDU4OTEsIDAuMDA1ODk2IiwgXAotICAgICAgICAgICIwLjAwNTY3NSwgMC4wMDU4MzEsIDAuMDA1ODYyLCAwLjAwNTg3MywgMC4wMDU4ODIsIDAuMDA1ODg3LCAwLjAwNTg5MiIsIFwKLSAgICAgICAgICAiMC4wMDU2NywgMC4wMDU4MjUsIDAuMDA1ODU4LCAwLjAwNTg2OCwgMC4wMDU4NzgsIDAuMDA1ODg0LCAwLjAwNTg4OCIsIFwKLSAgICAgICAgICAiMC4wMDU2NjQsIDAuMDA1ODE4LCAwLjAwNTg1MSwgMC4wMDU4NjIsIDAuMDA1ODcyLCAwLjAwNTg3OCwgMC4wMDU4ODMiLCBcCi0gICAgICAgICAgIjAuMDA1NjU3LCAwLjAwNTgwNywgMC4wMDU4NDEsIDAuMDA1ODUzLCAwLjAwNTg2NCwgMC4wMDU4NzEsIDAuMDA1ODc2IiwgXAotICAgICAgICAgICIwLjAwNTY1LCAwLjAwNTc5OCwgMC4wMDU4MzQsIDAuMDA1ODQ2LCAwLjAwNTg1OCwgMC4wMDU4NjQsIDAuMDA1ODciKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFMpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC40Nzc3NzM7Ci0gICAgZnVuY3Rpb24gOiAiKChBXkIpXkNJKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yNDM3MTMsIDAuMzk1MTQ1LCAwLjUyNDQ2OSwgMC42MTU4NSwgMC43NjE2MjgsIDAuODg5MDU5LCAxLjA3MDkyIiwgXAotICAgICAgICAgICIwLjI1NDY3OCwgMC40MDYxNjEsIDAuNTM1MzQ2LCAwLjYyNjczMywgMC43NzI1MDYsIDAuODk5OTMxLCAxLjA4MTgyIiwgXAotICAgICAgICAgICIwLjI2NzQ1NCwgMC40MTg2MTIsIDAuNTQ3ODQzLCAwLjYzOTIwMSwgMC43ODUwNCwgMC45MTI0MTgsIDEuMDk0MzEiLCBcCi0gICAgICAgICAgIjAuMjc5NDM2LCAwLjQzMDY1MSwgMC41NTk5MjMsIDAuNjUxMzM3LCAwLjc5NzEwMSwgMC45MjQ0NjYsIDEuMTA2MzEiLCBcCi0gICAgICAgICAgIjAuMjkxMjg2LCAwLjQ0MjM5NywgMC41NzE2MTksIDAuNjYzMDA1LCAwLjgwODc3NCwgMC45MzYxOTUsIDEuMTE4MSIsIFwKLSAgICAgICAgICAiMC4zMTAxMDUsIDAuNDYwOTk1LCAwLjU5MDI2NCwgMC42ODE2MTEsIDAuODI3NDAzLCAwLjk1NDgzLCAxLjEzNjczIiwgXAotICAgICAgICAgICIwLjMyNjMxNCwgMC40NzcyNiwgMC42MDY1NjUsIDAuNjk3OTQ5LCAwLjg0MzczMSwgMC45NzExNDEsIDEuMTUzMDQiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTU3ODQsIDAuMzM2Mjg3LCAwLjU4NzExMSwgMC43NjkwNjIsIDEuMDU5NTgsIDEuMzE2MzcsIDEuNjg4MjMiLCBcCi0gICAgICAgICAgIjAuMDk1Njc1LCAwLjMzNjU0OCwgMC41ODcwMDcsIDAuNzY4OTg1LCAxLjA1OTI1LCAxLjMxNTk3LCAxLjY4ODE1IiwgXAotICAgICAgICAgICIwLjA5NTEyOCwgMC4zMzYzODYsIDAuNTg3LCAwLjc2NzA0LCAxLjA2MTk2LCAxLjMxNjA5LCAxLjY4ODExIiwgXAotICAgICAgICAgICIwLjA5NTQzNywgMC4zMzY0NTcsIDAuNTg2OTczLCAwLjc2ODc5OSwgMS4wNjAyOSwgMS4zMTg4NCwgMS42ODc2MiIsIFwKLSAgICAgICAgICAiMC4wOTQ3ODMsIDAuMzM2MzYzLCAwLjU4NjkwMSwgMC43Njg5MzksIDEuMDYwMSwgMS4zMTY3NywgMS42ODgxMSIsIFwKLSAgICAgICAgICAiMC4wOTQ4ODUsIDAuMzM2NDc5LCAwLjU4Njk3OSwgMC43Njc0MDUsIDEuMDYxNSwgMS4zMTU4NSwgMS42ODgxMiIsIFwKLSAgICAgICAgICAiMC4wOTQ1MzIsIDAuMzM2NDA1LCAwLjU4NjkzNSwgMC43Njg4NzMsIDEuMDYwMDYsIDEuMzE2MTIsIDEuNjg4MDYiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMzMyMDUsIDAuNDAxODA1LCAwLjU0OTY1MiwgMC42NTQzNTMsIDAuODIxNDc2LCAwLjk2NzU2OSwgMS4xNzYyMyIsIFwKLSAgICAgICAgICAiMC4yNDQzNjUsIDAuNDEzMDM1LCAwLjU2MDg1OSwgMC42NjU1NjIsIDAuODMyNjksIDAuOTc4ODM4LCAxLjE4NzQyIiwgXAotICAgICAgICAgICIwLjI1NzAyLCAwLjQyNTY5LCAwLjU3MzQ3OCwgMC42NzgxNTIsIDAuODQ1MzYxLCAwLjk5MTQ3NiwgMS4yMDAxMSIsIFwKLSAgICAgICAgICAiMC4yNjg4MzgsIDAuNDM3MzUxLCAwLjU4NTE4NCwgMC42ODk4ODcsIDAuODU3MDEzLCAxLjAwMzA5LCAxLjIxMTcxIiwgXAotICAgICAgICAgICIwLjI3OTk4MSwgMC40NDg1NTMsIDAuNTk2NDEyLCAwLjcwMTExMSwgMC44NjgyMzcsIDEuMDE0MzIsIDEuMjIyOTIiLCBcCi0gICAgICAgICAgIjAuMjk3MzM0LCAwLjQ2NTg4NCwgMC42MTM3MTcsIDAuNzE4NDI0LCAwLjg4NTU2MiwgMS4wMzE4LCAxLjI0MDM0IiwgXAotICAgICAgICAgICIwLjMxMjE0NCwgMC40ODA3NDYsIDAuNjI4NjE2LCAwLjczMzM0OSwgMC45MDA0NjYsIDEuMDQ2NywgMS4yNTUyNCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5ODAyOSwgMC4zNzI1NzksIDAuNjU1NDYsIDAuODYxMDMyLCAxLjE4NzY5LCAxLjQ4MTE3LCAxLjg5NTA1IiwgXAotICAgICAgICAgICIwLjA5ODMxNSwgMC4zNzI1MjIsIDAuNjU1NDEzLCAwLjg2MTAwOSwgMS4xODc2NiwgMS40NzcxNywgMS44OTUyOSIsIFwKLSAgICAgICAgICAiMC4wOTc5MDcsIDAuMzcyNjUsIDAuNjU1NTUsIDAuODYwOTM1LCAxLjE5MTc4LCAxLjQ3ODYzLCAxLjg5NDgiLCBcCi0gICAgICAgICAgIjAuMDk4MDQyLCAwLjM3MjUwNCwgMC42NTUzNzEsIDAuODYxMDA3LCAxLjE4NzQ5LCAxLjQ4MDk0LCAxLjg5NTg0IiwgXAotICAgICAgICAgICIwLjA5Nzg0NywgMC4zNzI1NzIsIDAuNjU1NDgxLCAwLjg2MTAzNiwgMS4xODc2NCwgMS40Nzg3MiwgMS44OTU5NSIsIFwKLSAgICAgICAgICAiMC4wOTgyMDYsIDAuMzcyNDk0LCAwLjY1NTIzNSwgMC44NTg0ODIsIDEuMTg5OSwgMS40Nzc3MywgMS44OTQ4NyIsIFwKLSAgICAgICAgICAiMC4wOTc5NjEsIDAuMzcyMzg1LCAwLjY1NTIxMywgMC44NTgyNzIsIDEuMTg5NjQsIDEuNDc2MjUsIDEuODk0ODciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMjE2NzcsIDAuNDU1MzE0LCAwLjU4MjAyNiwgMC42NzI2NzMsIDAuODE3NzcyLCAwLjk0NDcwNSwgMS4xMjYwMiIsIFwKLSAgICAgICAgICAiMC4zMzMyOTYsIDAuNDY3MTI4LCAwLjU5MzgxMSwgMC42ODQzNzgsIDAuODI5NDgsIDAuOTU2NDI5LCAxLjEzNzc1IiwgXAotICAgICAgICAgICIwLjM0NzU0MSwgMC40ODExNzYsIDAuNjA3ODkzLCAwLjY5ODUxNSwgMC44NDM1NTYsIDAuOTcwNTc0LCAxLjE1MTg5IiwgXAotICAgICAgICAgICIwLjM2MDY4MiwgMC40OTQzNjksIDAuNjIxMDc2LCAwLjcxMTY1NiwgMC44NTY3MTEsIDAuOTgzNjYzLCAxLjE2NTE0IiwgXAotICAgICAgICAgICIwLjM3MzQzNywgMC41MDcxNjYsIDAuNjMzODcxLCAwLjcyNDQzLCAwLjg2OTU4MywgMC45OTY0NywgMS4xNzc3OSIsIFwKLSAgICAgICAgICAiMC4zOTMzODMsIDAuNTI3MDYzLCAwLjY1Mzc2OCwgMC43NDQzNSwgMC44ODk0MDIsIDEuMDE2MzUsIDEuMTk3NzciLCBcCi0gICAgICAgICAgIjAuNDEwNzA2LCAwLjU0NDQ0OCwgMC42NzExNTYsIDAuNzYxNzE4LCAwLjkwNjg3MiwgMS4wMzM3NiwgMS4yMTUwOCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4MzM4MywgMC4zMjMxMjcsIDAuNTc1MTU4LCAwLjc1ODc3MSwgMS4wNTM0MSwgMS4zMTE1NCwgMS42ODA0NSIsIFwKLSAgICAgICAgICAiMC4wODMzMDIsIDAuMzIzMTM0LCAwLjU3NTk0MywgMC43NTc0MzQsIDEuMDUwODYsIDEuMzExNDUsIDEuNjgwMzciLCBcCi0gICAgICAgICAgIjAuMDgzMjU5LCAwLjMyMzI1NCwgMC41NzQ5NjYsIDAuNzU3NTM1LCAxLjA1MTM1LCAxLjMxMTU2LCAxLjY4MDQyIiwgXAotICAgICAgICAgICIwLjA4MzI1OCwgMC4zMjMyNDUsIDAuNTc0ODU1LCAwLjc1NzUyMiwgMS4wNTEzNCwgMS4zMTExMSwgMS42ODA2NyIsIFwKLSAgICAgICAgICAiMC4wODMyNTksIDAuMzIzMTA4LCAwLjU3NTU5MiwgMC43NTc0NjgsIDEuMDUwODQsIDEuMzExMzcsIDEuNjgwMzUiLCBcCi0gICAgICAgICAgIjAuMDgzMjg5LCAwLjMyMzEzMiwgMC41NzU3ODIsIDAuNzU3NDMzLCAxLjA1MTIsIDEuMzExMDMsIDEuNjc5OTUiLCBcCi0gICAgICAgICAgIjAuMDgzMzY1LCAwLjMyMzEyNSwgMC41NzU4NDMsIDAuNzU3NDA0LCAxLjA1MjQxLCAxLjMxMTM3LCAxLjY4MDM1Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzI5NTU2LCAwLjQ4NDgwMSwgMC42MzAzMzcsIDAuNzM0Mjc3LCAwLjkwMDc1NywgMS4wNDY2MSwgMS4yNTQ5IiwgXAotICAgICAgICAgICIwLjM0MDc4MiwgMC40OTYwNTEsIDAuNjQxNTg3LCAwLjc0NTU0NSwgMC45MTIwMTksIDEuMDU3NzksIDEuMjY2IiwgXAotICAgICAgICAgICIwLjM1NDI2NiwgMC41MDk0NTgsIDAuNjU1MDE5LCAwLjc1ODk2NiwgMC45MjU0ODQsIDEuMDcxMjQsIDEuMjc5NDUiLCBcCi0gICAgICAgICAgIjAuMzY3NzcxLCAwLjUyMzAwMSwgMC42Njg1NTYsIDAuNzcyNDk2LCAwLjkzOTAxOSwgMS4wODQ3OCwgMS4yOTMiLCBcCi0gICAgICAgICAgIjAuMzgwOTk2LCAwLjUzNjI3OSwgMC42ODE4MywgMC43ODU3NzcsIDAuOTUyMjg3LCAxLjA5ODA2LCAxLjMwNjI3IiwgXAotICAgICAgICAgICIwLjQwMjY0OSwgMC41NTc4MDgsIDAuNzAzMzQ0LCAwLjgwNzMwNSwgMC45NzM4MTUsIDEuMTE5NiwgMS4zMjc3NiIsIFwKLSAgICAgICAgICAiMC40MjE2MDIsIDAuNTc2Nzg4LCAwLjcyMjMyOCwgMC44MjYyODksIDAuOTkyNzk5LCAxLjEzODU4LCAxLjM0Njc0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDkwOTc4LCAwLjM2MjA5LCAwLjY0NTUyMSwgMC44NTAyODMsIDEuMTgwMDIsIDEuNDY5NTEsIDEuODgzMzgiLCBcCi0gICAgICAgICAgIjAuMDkwOTc4LCAwLjM2MjE1NSwgMC42NDUyOTgsIDAuODUwMywgMS4xODAwMywgMS40NjkyNiwgMS44ODM3OSIsIFwKLSAgICAgICAgICAiMC4wOTA5MzksIDAuMzYyMDksIDAuNjQ1NTMzLCAwLjg1MDA1NywgMS4xNzk3LCAxLjQ2OTcsIDEuODgzNTgiLCBcCi0gICAgICAgICAgIjAuMDkwOTMzLCAwLjM2MjEyNywgMC42NDUyODYsIDAuODUwMDYxLCAxLjE3OTgyLCAxLjQ2OTQ0LCAxLjg4Mzc3IiwgXAotICAgICAgICAgICIwLjA5MDkwNCwgMC4zNjIxMTIsIDAuNjQ1MzU5LCAwLjg0OTk2LCAxLjE4MDIxLCAxLjQ2OTY1LCAxLjg4MzM0IiwgXAotICAgICAgICAgICIwLjA5MDg4NiwgMC4zNjIxNjcsIDAuNjQ1NzM3LCAwLjg0OTgzLCAxLjE4MDE0LCAxLjQ2OTcxLCAxLjg4MzQyIiwgXAotICAgICAgICAgICIwLjA5MDkyNiwgMC4zNjIxNTksIDAuNjQ1OTgsIDAuODQ5ODIsIDEuMTgwMDcsIDEuNDY5NzEsIDEuODgzMzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMzk2NTksIDAuMzkwNzc5LCAwLjUyMDA0NCwgMC42MTE0MiwgMC43NTcyNjIsIDAuODg0NzExLCAxLjA2NjUiLCBcCi0gICAgICAgICAgIjAuMjQ5NzQyLCAwLjQwMDg5LCAwLjUzMDE2OSwgMC42MjE1NDUsIDAuNzY3MzU4LCAwLjg5NDgzMywgMS4wNzY2MiIsIFwKLSAgICAgICAgICAiMC4yNjIyNiwgMC40MTM0NCwgMC41NDI3NjIsIDAuNjM0MTY2LCAwLjc3OTk0MiwgMC45MDc0MTYsIDEuMDg5MjEiLCBcCi0gICAgICAgICAgIjAuMjc0OTA1LCAwLjQyNjEyNywgMC41NTU1MDIsIDAuNjQ2OTEsIDAuNzkyNjk3LCAwLjkyMDE2OCwgMS4xMDIiLCBcCi0gICAgICAgICAgIjAuMjg3ODEsIDAuNDM4ODY0LCAwLjU2ODE3MywgMC42NTk1OTQsIDAuODA1Mzg1LCAwLjkzMjc1MiwgMS4xMTQ3MiIsIFwKLSAgICAgICAgICAiMC4zMDgwMjMsIDAuNDU4OTQ1LCAwLjU4ODI5LCAwLjY3OTY5LCAwLjgyNTQ2OSwgMC45NTI5NDgsIDEuMTM0ODkiLCBcCi0gICAgICAgICAgIjAuMzI2MDAxLCAwLjQ3NzA0OSwgMC42MDYzMjgsIDAuNjk3NzUzLCAwLjg0MzU1MywgMC45NzA5MSwgMS4xNTI4MSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5NTQwOCwgMC4zMzY1NDksIDAuNTg3MTA2LCAwLjc2OTE0NiwgMS4wNTg4NywgMS4zMTYzMiwgMS42ODgyMSIsIFwKLSAgICAgICAgICAiMC4wOTU0NTYsIDAuMzM2NTMxLCAwLjU4NzA3OCwgMC43Njg5NCwgMS4wNTk0NCwgMS4zMTU1NywgMS42ODgxOSIsIFwKLSAgICAgICAgICAiMC4wOTU1MDMsIDAuMzM2NDEzLCAwLjU4NzA3NCwgMC43Njg4NDcsIDEuMDU5NDgsIDEuMzE1NzIsIDEuNjg4MTciLCBcCi0gICAgICAgICAgIjAuMDk1NjMzLCAwLjMzNjQ4OSwgMC41ODYxMTksIDAuNzY4OTgsIDEuMDU5NzgsIDEuMzE2MjIsIDEuNjg4MjUiLCBcCi0gICAgICAgICAgIjAuMDk0OTgsIDAuMzM2Mzg1LCAwLjU4NzExOSwgMC43Njg4NzUsIDEuMDU5NiwgMS4zMTkxLCAxLjY4ODQzIiwgXAotICAgICAgICAgICIwLjA5NDg1OCwgMC4zMzY0MTksIDAuNTg3MDc3LCAwLjc2ODg0OCwgMS4wNTk1LCAxLjMxNTMzLCAxLjY4MzU1IiwgXAotICAgICAgICAgICIwLjA5NDg2MywgMC4zMzY0MTYsIDAuNTg3MDY2LCAwLjc2ODg0NCwgMS4wNTk3MSwgMS4zMTkwMiwgMS42ODgwNSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIyNzAxMiwgMC4zOTU3NDMsIDAuNTQzNTg3LCAwLjY0ODI2MSwgMC44MTU0NDQsIDAuOTYxNjE3LCAxLjE3MDI2IiwgXAotICAgICAgICAgICIwLjIzNzI1NywgMC40MDYwNDgsIDAuNTUzODUsIDAuNjU4NTU3LCAwLjgyNTcxMSwgMC45NzE4ODMsIDEuMTgwNTQiLCBcCi0gICAgICAgICAgIjAuMjQ5NjY2LCAwLjQxODQ4MiwgMC41NjYzNiwgMC42NzEwNjgsIDAuODM4MjA0LCAwLjk4NDMwNSwgMS4xOTI5MSIsIFwKLSAgICAgICAgICAiMC4yNjE2MTMsIDAuNDMwMzM4LCAwLjU3ODIwNSwgMC42ODI5MTMsIDAuODUwMDUxLCAwLjk5NjE1NSwgMS4yMDQ4IiwgXAotICAgICAgICAgICIwLjI3MzQ0NywgMC40NDIxMSwgMC41ODk5NTksIDAuNjk0Njg5LCAwLjg2MTgzMSwgMS4wMDgwNSwgMS4yMTY2NCIsIFwKLSAgICAgICAgICAiMC4yOTI0NDQsIDAuNDYxMDc2LCAwLjYwODk2MiwgMC43MTM2NjcsIDAuODgwODEzLCAxLjAyNzAzLCAxLjIzNTYyIiwgXAotICAgICAgICAgICIwLjMwODkzMiwgMC40Nzc1MywgMC42MjUzODIsIDAuNzMwMTIsIDAuODk3MjU3LCAxLjA0MzQ5LCAxLjI1MjA1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk4MjQ2LCAwLjM3MjYwMiwgMC42NTUyNTEsIDAuODU5NzE4LCAxLjE5MDIzLCAxLjQ3OTE5LCAxLjg5NDkzIiwgXAotICAgICAgICAgICIwLjA5ODE5NSwgMC4zNzI1NzYsIDAuNjU1NDU1LCAwLjg2MDkyMSwgMS4xODk2NCwgMS40Nzc1MiwgMS44OTQ3OCIsIFwKLSAgICAgICAgICAiMC4wOTgxOTMsIDAuMzcyNTg2LCAwLjY1NTQxNiwgMC44NTk1MTUsIDEuMTg4MDksIDEuNDc4NjIsIDEuODk2MDQiLCBcCi0gICAgICAgICAgIjAuMDk4MjUzLCAwLjM3MjUxOSwgMC42NTU0NzQsIDAuODYxMDUxLCAxLjE4NzY4LCAxLjQ3NzgyLCAxLjg5MTk3IiwgXAotICAgICAgICAgICIwLjA5ODE5NSwgMC4zNzI0OTEsIDAuNjU1ODE3LCAwLjg2MTA0NCwgMS4xODc5NSwgMS40Nzc5MywgMS44OTM0OSIsIFwKLSAgICAgICAgICAiMC4wOTgwNTUsIDAuMzcyNDk4LCAwLjY1NTQ4MiwgMC44NjEwNTMsIDEuMTg3NzIsIDEuNDgwOTksIDEuODkyODkiLCBcCi0gICAgICAgICAgIjAuMDk3ODgyLCAwLjM3MjQ3OCwgMC42NTUyNCwgMC44NTg1MzksIDEuMTg4NzMsIDEuNDc2NTcsIDEuODk0OTgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMjUxNjcsIDAuNDU5MTg5LCAwLjU4NjE1NiwgMC42NzY5LCAwLjgyMjE0MSwgMC45NDkyMDQsIDEuMTMwNTkiLCBcCi0gICAgICAgICAgIjAuMzM3MTAzLCAwLjQ3MTI3NywgMC41OTgyLCAwLjY4ODg5NCwgMC44MzQxNCwgMC45NjExODcsIDEuMTQyNjEiLCBcCi0gICAgICAgICAgIjAuMzUxMjI1LCAwLjQ4NTM2NywgMC42MTIzMzcsIDAuNzAzMDY4LCAwLjg0ODI4NSwgMC45NzUzODQsIDEuMTU2ODEiLCBcCi0gICAgICAgICAgIjAuMzY0MTM1LCAwLjQ5ODM0OCwgMC42MjUzODEsIDAuNzE2MDc1LCAwLjg2MTMxNCwgMC45ODgzNywgMS4xNjk3OSIsIFwKLSAgICAgICAgICAiMC4zNzY4NjQsIDAuNTExMDk0LCAwLjYzNzk5NywgMC43Mjg3MTksIDAuODczOTczLCAxLjAwMTAxLCAxLjE4MjQzIiwgXAotICAgICAgICAgICIwLjM5NjYwMiwgMC41MzA4MDksIDAuNjU3NzAxLCAwLjc0ODQyNSwgMC44OTM2NzMsIDEuMDIwNzIsIDEuMjAyMTQiLCBcCi0gICAgICAgICAgIjAuNDEzNDE1LCAwLjU0NzcwNSwgMC42NzQ2NTUsIDAuNzY1MzM5LCAwLjkxMDY0NiwgMS4wMzc2MywgMS4yMTkwNSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4MjQ0NCwgMC4zMjMwODIsIDAuNTc1MjMsIDAuNzU5NTM2LCAxLjA1NDE5LCAxLjMxMjE4LCAxLjY4MDU4IiwgXAotICAgICAgICAgICIwLjA4MjQzNywgMC4zMjI5NDQsIDAuNTc2NDEsIDAuNzU4NTA1LCAxLjA1MTc4LCAxLjMxMjIsIDEuNjgxMjciLCBcCi0gICAgICAgICAgIjAuMDgyNTM1LCAwLjMyMzA2LCAwLjU3NTI0MSwgMC43NTgzNSwgMS4wNTIyNSwgMS4zMTIxOCwgMS42ODEzNCIsIFwKLSAgICAgICAgICAiMC4wODI0NDIsIDAuMzIzMTE1LCAwLjU3NDk3NCwgMC43NTgzMzQsIDEuMDUxODEsIDEuMzEyMTgsIDEuNjgxMzEiLCBcCi0gICAgICAgICAgIjAuMDgyNTM4LCAwLjMyMjksIDAuNTc2MjI5LCAwLjc1ODQwNCwgMS4wNTIzNiwgMS4zMTIyMSwgMS42ODEyNyIsIFwKLSAgICAgICAgICAiMC4wODI0NDksIDAuMzIzMDMxLCAwLjU3NjIyOSwgMC43NTgzMzEsIDEuMDUxNzgsIDEuMzEyMTksIDEuNjgxMjciLCBcCi0gICAgICAgICAgIjAuMDgyNDQsIDAuMzIzMDY2LCAwLjU3NjQ0NCwgMC43NTgzMzMsIDEuMDUxNTMsIDEuMzEyMjMsIDEuNjgxMjEiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMjc3NDUsIDAuNDgyNzc3LCAwLjYyODMyLCAwLjczMjI5MiwgMC44OTg4NDIsIDEuMDQ0NjcsIDEuMjUyODMiLCBcCi0gICAgICAgICAgIjAuMzM4MzM4LCAwLjQ5MzIzOSwgMC42Mzg3NzcsIDAuNzQyNzI4LCAwLjkwOTI5LCAxLjA1NDk3LCAxLjI2MzM5IiwgXAotICAgICAgICAgICIwLjM1MTMzNiwgMC41MDYzMDEsIDAuNjUxODU0LCAwLjc1NTgxMSwgMC45MjIzODQsIDEuMDY4MDgsIDEuMjc2MyIsIFwKLSAgICAgICAgICAiMC4zNjQxNDQsIDAuNTE4OTY1LCAwLjY2NDYwNywgMC43Njg1NjEsIDAuOTM1MDg2LCAxLjA4MDgzLCAxLjI4OTA2IiwgXAotICAgICAgICAgICIwLjM3NzI5NywgMC41MzIyMjksIDAuNjc3Nzk2LCAwLjc4MTc1LCAwLjk0ODI3NCwgMS4wOTQwMywgMS4zMDIyNSIsIFwKLSAgICAgICAgICAiMC4zOTg2NzUsIDAuNTUzNTE3LCAwLjY5OTEwMywgMC44MDMwNTQsIDAuOTY5NTc0LCAxLjExNTQ1LCAxLjMyMzU3IiwgXAotICAgICAgICAgICIwLjQxNzQyLCAwLjU3MjMzMSwgMC43MTc5MDcsIDAuODIxODU2LCAwLjk4ODM3OCwgMS4xMzQxNCwgMS4zNDIzNSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4OTQxLCAwLjM2MTcyNiwgMC42NDUzNjIsIDAuODUwMjg0LCAxLjE4MDM1LCAxLjQ2OTgxLCAxLjg4NDIyIiwgXAotICAgICAgICAgICIwLjA4OTM3MSwgMC4zNjE2ODMsIDAuNjQ1MzkzLCAwLjg1MDQwMiwgMS4xODAyLCAxLjQ2OTY3LCAxLjg4MzgxIiwgXAotICAgICAgICAgICIwLjA4OTQxNSwgMC4zNjE4MDYsIDAuNjQ1NCwgMC44NTAzOTEsIDEuMTgwMDIsIDEuNDY5NzEsIDEuODgzODkiLCBcCi0gICAgICAgICAgIjAuMDg5NCwgMC4zNjE5NDUsIDAuNjQ1NDA1LCAwLjg1MDI2MSwgMS4xODAwMSwgMS40Njk3NywgMS44ODM5NyIsIFwKLSAgICAgICAgICAiMC4wODk0MDEsIDAuMzYxOTE4LCAwLjY0NTQxNCwgMC44NTAxMTksIDEuMTgwMDIsIDEuNDY5NjksIDEuODgzODMiLCBcCi0gICAgICAgICAgIjAuMDg5NCwgMC4zNjE5LCAwLjY0NTQxOCwgMC44NTAwNjQsIDEuMTgwNTcsIDEuNDY5NjUsIDEuODgzOTciLCBcCi0gICAgICAgICAgIjAuMDg5NDAyLCAwLjM2MTc3NywgMC42NDU0MjgsIDAuODUwMDYyLCAxLjE3OTkzLCAxLjQ2OTc2LCAxLjg4NDEyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNJIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIzNzYzOSwgMC4zODg5MTIsIDAuNTE4MTc0LCAwLjYwOTU5NCwgMC43NTUzOTEsIDAuODgyNzcsIDEuMDY0NjMiLCBcCi0gICAgICAgICAgIjAuMjQ3MjIsIDAuMzk4NTEyLCAwLjUyNzg2NSwgMC42MTkyNzcsIDAuNzY1MDU0LCAwLjg5MjQzNywgMS4wNzQzOCIsIFwKLSAgICAgICAgICAiMC4yNTg2MDcsIDAuNDEwMTQxLCAwLjUzOTMzOSwgMC42MzA3MzEsIDAuNzc2NTA5LCAwLjkwMzkzNiwgMS4wODU4MyIsIFwKLSAgICAgICAgICAiMC4yNzEwNjksIDAuNDIyMzM0LCAwLjU1MTYwOCwgMC42NDMwMTksIDAuNzg4NzksIDAuOTE2MTUsIDEuMDk4IiwgXAotICAgICAgICAgICIwLjI4MjA3NiwgMC40MzMyODUsIDAuNTYyNTY3LCAwLjY1Mzk5MSwgMC43OTk3NjQsIDAuOTI3MTM1LCAxLjEwOSIsIFwKLSAgICAgICAgICAiMC4zMDEyNCwgMC40NTIyNzUsIDAuNTgxNjUyLCAwLjY3MzAyOSwgMC44MTg4MDksIDAuOTQ2MjMzLCAxLjEyODAzIiwgXAotICAgICAgICAgICIwLjMxOTE5NywgMC40NzAyMywgMC41OTk0OTcsIDAuNjkwOTE2LCAwLjgzNjY4NywgMC45NjQwNjIsIDEuMTQ1OTIiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTU1MzgsIDAuMzM2NDUxLCAwLjU4NzEzLCAwLjc2ODkzNiwgMS4wNTk5LCAxLjMxOTI5LCAxLjY4NSIsIFwKLSAgICAgICAgICAiMC4wOTU3MTQsIDAuMzM2NTM4LCAwLjU4NjkzNywgMC43Njg5NTQsIDEuMDU5NTcsIDEuMzE2OTYsIDEuNjg4MjkiLCBcCi0gICAgICAgICAgIjAuMDk1NzY4LCAwLjMzNjU0NiwgMC41ODcwMTUsIDAuNzY4OTg4LCAxLjA1OTMyLCAxLjMxNjAzLCAxLjY4ODE3IiwgXAotICAgICAgICAgICIwLjA5NTQ1MywgMC4zMzYzOTIsIDAuNTg3MDA3LCAwLjc2ODgxOCwgMS4wNjAxNywgMS4zMTg4NiwgMS42ODc2NyIsIFwKLSAgICAgICAgICAiMC4wOTUyMzgsIDAuMzM2NDQ0LCAwLjU4Njk5MiwgMC43Njg3ODEsIDEuMDYwMTUsIDEuMzE4ODksIDEuNjg3NzQiLCBcCi0gICAgICAgICAgIjAuMDk0OTUxLCAwLjMzNjM5MSwgMC41ODY3MzQsIDAuNzY4NzU1LCAxLjA1OTMyLCAxLjMxOTI3LCAxLjY4NDgxIiwgXAotICAgICAgICAgICIwLjA5NDcxMywgMC4zMzYyOTUsIDAuNTg2OTEyLCAwLjc2ODYyOCwgMS4wNjAyNywgMS4zMTY1OSwgMS42ODQ2NyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIxNjgwNCwgMC4zODU1OTYsIDAuNTMzNDI1LCAwLjYzODEzMiwgMC44MDUzMDUsIDAuOTUxNDUxLCAxLjE2MDEyIiwgXAotICAgICAgICAgICIwLjIyNjMyNCwgMC4zOTQ5ODgsIDAuNTQyODI3LCAwLjY0NzQ5NywgMC44MTQ3MDIsIDAuOTYwODQ2LCAxLjE2OTQ3IiwgXAotICAgICAgICAgICIwLjIzNzc5LCAwLjQwNjU2OSwgMC41NTQ0NTMsIDAuNjU5MTUxLCAwLjgyNjI4MSwgMC45NzI1MTIsIDEuMTgxMDQiLCBcCi0gICAgICAgICAgIjAuMjQ5NTU0LCAwLjQxODIwMiwgMC41NjYwOTEsIDAuNjcwNzg5LCAwLjgzNzkyMywgMC45ODQxNDksIDEuMTkyNjgiLCBcCi0gICAgICAgICAgIjAuMjYxNDYyLCAwLjQzMDA3MSwgMC41Nzc5MzUsIDAuNjgyNjQ3LCAwLjg0OTc4MSwgMC45OTYwMDMsIDEuMjA0NjgiLCBcCi0gICAgICAgICAgIjAuMjgxOTIsIDAuNDUwNjE0LCAwLjU5ODQ4LCAwLjcwMzE2MSwgMC44NzAzNDcsIDEuMDE2NTksIDEuMjI1MTQiLCBcCi0gICAgICAgICAgIjAuMjk5NDA1LCAwLjQ2Nzk1NSwgMC42MTU4MTMsIDAuNzIwNDg5LCAwLjg4NzcxLCAxLjAzMzkzLCAxLjI0MjQ4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk4MjExLCAwLjM3MjU0OCwgMC42NTU0NDgsIDAuODYwODksIDEuMTkxNjIsIDEuNDc2OSwgMS44OTQ4NCIsIFwKLSAgICAgICAgICAiMC4wOTc5NzMsIDAuMzcyNzA5LCAwLjY1NTQxMywgMC44NTk1OSwgMS4xOTE3MiwgMS40NzkwNiwgMS44OTQ4NiIsIFwKLSAgICAgICAgICAiMC4wOTgyMDgsIDAuMzcyNTU2LCAwLjY1NTQxNywgMC44NTg3MDYsIDEuMTg4MDgsIDEuNDc3NzcsIDEuODkyMjMiLCBcCi0gICAgICAgICAgIjAuMDk4NTEzLCAwLjM3MjU0NywgMC42NTU0MjUsIDAuODU4ODA0LCAxLjE4ODE2LCAxLjQ3NjIzLCAxLjg5MzE5IiwgXAotICAgICAgICAgICIwLjA5ODI5NiwgMC4zNzI0OTYsIDAuNjU1MTA5LCAwLjg1OTAzOSwgMS4xODgwNCwgMS40NzY5NiwgMS44OTE1OSIsIFwKLSAgICAgICAgICAiMC4wOTgwOTgsIDAuMzcyNTgsIDAuNjU1MjIzLCAwLjg2MDU5MSwgMS4xOTAwNywgMS40Nzg3LCAxLjg5NDg1IiwgXAotICAgICAgICAgICIwLjA5Nzg0OSwgMC4zNzI1MDgsIDAuNjU1Mzc3LCAwLjg2MDYxMiwgMS4xOTE2MiwgMS40Nzc5OCwgMS44OTQ4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNJIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMxNjk3MiwgMC40NTEwNjEsIDAuNTc4MDE0LCAwLjY2ODY5MywgMC44MTM5MzcsIDAuOTQwOTg5LCAxLjEyMjQxIiwgXAotICAgICAgICAgICIwLjMyNzU5OSwgMC40NjE2MzUsIDAuNTg4NjA1LCAwLjY3OTM2LCAwLjgyNDU1NiwgMC45NTE2NjEsIDEuMTMzMDgiLCBcCi0gICAgICAgICAgIjAuMzQwNjQsIDAuNDc0NjQ5LCAwLjYwMTYxMSwgMC42OTIzODcsIDAuODM3NTMxLCAwLjk2NDY5NCwgMS4xNDYwNiIsIFwKLSAgICAgICAgICAiMC4zNTQyOSwgMC40ODgzMzYsIDAuNjE1MjI5LCAwLjcwNTk1OSwgMC44NTEyMSwgMC45NzgyNSwgMS4xNTk2OCIsIFwKLSAgICAgICAgICAiMC4zNjc0MTYsIDAuNTAxNDc5LCAwLjYyODM4LCAwLjcxOTEwMSwgMC44NjQzNDksIDAuOTkxMzkzLCAxLjE3MjgyIiwgXAotICAgICAgICAgICIwLjM4ODY3MiwgMC41MjI2NTMsIDAuNjQ5NjMyLCAwLjc0MDM0MywgMC44ODU1ODcsIDEuMDEyNTYsIDEuMTk0MDUiLCBcCi0gICAgICAgICAgIjAuNDA2OTg0LCAwLjU0MTEzLCAwLjY2ODAyOSwgMC43NTg3NTIsIDAuOTAzOTk5LCAxLjAzMTA0LCAxLjIxMjQ3Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc5NjQ1LCAwLjMyMjUwOCwgMC41NzY0NTYsIDAuNzU4MzQ5LCAxLjA1MzMsIDEuMzEyMiwgMS42ODEyOCIsIFwKLSAgICAgICAgICAiMC4wNzk3OCwgMC4zMjI0NTgsIDAuNTc1MTg1LCAwLjc1ODM0NCwgMS4wNTM5MSwgMS4zMTIxOSwgMS42ODEzMyIsIFwKLSAgICAgICAgICAiMC4wNzk2ODIsIDAuMzIyNDM3LCAwLjU3NTI4NCwgMC43NTc5ODgsIDEuMDUzODcsIDEuMzA5MDQsIDEuNjgxMjUiLCBcCi0gICAgICAgICAgIjAuMDc5Nzk5LCAwLjMyMjUwMSwgMC41NzYyMTgsIDAuNzU4MzQyLCAxLjA1MjQxLCAxLjMxMjIsIDEuNjgxMjUiLCBcCi0gICAgICAgICAgIjAuMDc5ODM1LCAwLjMyMjUwMSwgMC41NzU1NTcsIDAuNzU4MzQxLCAxLjA1MTc3LCAxLjMxMjIxLCAxLjY4MTI2IiwgXAotICAgICAgICAgICIwLjA3OTgwNiwgMC4zMjI0NDEsIDAuNTc2MjksIDAuNzU4MzM1LCAxLjA1MTgsIDEuMzEyMDUsIDEuNjgwMzIiLCBcCi0gICAgICAgICAgIjAuMDc5Njk1LCAwLjMyMjUwMywgMC41NzU1OTQsIDAuNzU4MzQ0LCAxLjA1MTc3LCAxLjMxMjIxLCAxLjY4MTI3Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzEzOTE0LCAwLjQ2NDg3NiwgMC42MTA0MDEsIDAuNzE0Mzk3LCAwLjg4MTAyNiwgMS4wMjY4NSwgMS4yMzUwNiIsIFwKLSAgICAgICAgICAiMC4zMjQ1ODgsIDAuNDc1NTA4LCAwLjYyMTAzNCwgMC43MjUwNzUsIDAuODkxNjk4LCAxLjAzNzQzLCAxLjI0NTY1IiwgXAotICAgICAgICAgICIwLjMzNzcyNywgMC40ODg2MSwgMC42MzQxMzEsIDAuNzM4MTI4LCAwLjkwNDc1NiwgMS4wNTA1NywgMS4yNTg3OSIsIFwKLSAgICAgICAgICAiMC4zNTE0MjYsIDAuNTAyMzg2LCAwLjY0Nzg5MiwgMC43NTE5MjksIDAuOTE4NTcyLCAxLjA2NDI5LCAxLjI3MjUxIiwgXAotICAgICAgICAgICIwLjM2NDMzNSwgMC41MTUyMjgsIDAuNjYwNzI2LCAwLjc2NDc2NCwgMC45MzE0MTEsIDEuMDc3MTMsIDEuMjg1MzUiLCBcCi0gICAgICAgICAgIjAuMzg1MzY1LCAwLjUzNjM1OCwgMC42ODE4NDgsIDAuNzg1ODg3LCAwLjk1MjUwMiwgMS4wOTgyNSwgMS4zMDY2MSIsIFwKLSAgICAgICAgICAiMC40MDQyMDUsIDAuNTU1MTE5LCAwLjcwMDYwNywgMC44MDQ2NjcsIDAuOTcxMjQ1LCAxLjExNjk5LCAxLjMyNTI3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDgyOTIxLCAwLjM1ODcxMiwgMC42NDQ3OCwgMC44NTAyNjgsIDEuMTgwMjQsIDEuNDY5OTIsIDEuODg0MTYiLCBcCi0gICAgICAgICAgIjAuMDgyOTExLCAwLjM1ODY1MywgMC42NDUzNDMsIDAuODQ5OTQ3LCAxLjE4MDA1LCAxLjQ2OTM3LCAxLjg4MzU3IiwgXAotICAgICAgICAgICIwLjA4MjczNSwgMC4zNTg4NzEsIDAuNjQ1MTgxLCAwLjg0OTY0NywgMS4xODAxNSwgMS40Njk0NywgMS44ODM3IiwgXAotICAgICAgICAgICIwLjA4Mjc2MiwgMC4zNTg2ODgsIDAuNjQ0MDY2LCAwLjg0OTQ1OCwgMS4xODAwMywgMS40Njk1MSwgMS44ODM1NyIsIFwKLSAgICAgICAgICAiMC4wODI5NDIsIDAuMzU4ODgsIDAuNjQ0NzM0LCAwLjg1MDMwNSwgMS4xODAwNywgMS40Njk3MywgMS44ODM5MiIsIFwKLSAgICAgICAgICAiMC4wODI5NDgsIDAuMzU4ODc5LCAwLjY0NTI5LCAwLjg1MDUsIDEuMTgwMDgsIDEuNDY5NzQsIDEuODgzOTIiLCBcCi0gICAgICAgICAgIjAuMDgyOTY3LCAwLjM1ODY5MywgMC42NDQzNDMsIDAuODQ5NjA2LCAxLjE4MDA5LCAxLjQ2OTc2LCAxLjg4Mzk3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDYwMTIsIDAuMDA2MTczLCAwLjAwNjIwNCwgMC4wMDYyMTQsIDAuMDA2MjIzLCAwLjAwNjIyNywgMC4wMDYyMzIiLCBcCi0gICAgICAgICAgIjAuMDA2MDA5LCAwLjAwNjE3LCAwLjAwNjIsIDAuMDA2MjEsIDAuMDA2MjE5LCAwLjAwNjIyMywgMC4wMDYyMjgiLCBcCi0gICAgICAgICAgIjAuMDA2MDA3LCAwLjAwNjE2OCwgMC4wMDYxOTgsIDAuMDA2MjA5LCAwLjAwNjIxOCwgMC4wMDYyMjIsIDAuMDA2MjI2IiwgXAotICAgICAgICAgICIwLjAwNjAwNCwgMC4wMDYxNjUsIDAuMDA2MTk3LCAwLjAwNjIwNiwgMC4wMDYyMTUsIDAuMDA2MjIxLCAwLjAwNjIyNSIsIFwKLSAgICAgICAgICAiMC4wMDYwMDEsIDAuMDA2MTYyLCAwLjAwNjE5NSwgMC4wMDYyMDQsIDAuMDA2MjEyLCAwLjAwNjIxOCwgMC4wMDYyMiIsIFwKLSAgICAgICAgICAiMC4wMDU5OTYsIDAuMDA2MTU3LCAwLjAwNjE4OSwgMC4wMDYxOTksIDAuMDA2MjA5LCAwLjAwNjIxNCwgMC4wMDYyMTkiLCBcCi0gICAgICAgICAgIjAuMDA1OTkzLCAwLjAwNjE1MywgMC4wMDYxODYsIDAuMDA2MTk3LCAwLjAwNjIwNiwgMC4wMDYyMSwgMC4wMDYyMTYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDIxMSwgMC4wMDQzNzIsIDAuMDA0NDAzLCAwLjAwNDQxMywgMC4wMDQ0MjMsIDAuMDA0NDI4LCAwLjAwNDQzMiIsIFwKLSAgICAgICAgICAiMC4wMDQxOTMsIDAuMDA0MzU0LCAwLjAwNDM4NSwgMC4wMDQzOTYsIDAuMDA0NDA1LCAwLjAwNDQxLCAwLjAwNDQxNCIsIFwKLSAgICAgICAgICAiMC4wMDQxODUsIDAuMDA0MzQ2LCAwLjAwNDM3NywgMC4wMDQzODgsIDAuMDA0Mzk3LCAwLjAwNDQwMywgMC4wMDQ0MDYiLCBcCi0gICAgICAgICAgIjAuMDA0MTc5LCAwLjAwNDM0LCAwLjAwNDM3MiwgMC4wMDQzODIsIDAuMDA0MzkyLCAwLjAwNDM5NywgMC4wMDQ0IiwgXAotICAgICAgICAgICIwLjAwNDE3NCwgMC4wMDQzMzYsIDAuMDA0MzY3LCAwLjAwNDM3OCwgMC4wMDQzODgsIDAuMDA0MzkzLCAwLjAwNDM5NyIsIFwKLSAgICAgICAgICAiMC4wMDQxNjksIDAuMDA0MzI4LCAwLjAwNDM2MSwgMC4wMDQzNzIsIDAuMDA0MzgyLCAwLjAwNDM4NywgMC4wMDQzOTIiLCBcCi0gICAgICAgICAgIjAuMDA0MTY3LCAwLjAwNDMyNSwgMC4wMDQzNTksIDAuMDA0MzY5LCAwLjAwNDM3OSwgMC4wMDQzODQsIDAuMDA0MzkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNTk4MywgMC4wMDYxNDIsIDAuMDA2MTcyLCAwLjAwNjE4MiwgMC4wMDYxOTIsIDAuMDA2MTk2LCAwLjAwNjIwMSIsIFwKLSAgICAgICAgICAiMC4wMDU5ODIsIDAuMDA2MTQyLCAwLjAwNjE3MywgMC4wMDYxODMsIDAuMDA2MTkyLCAwLjAwNjE5NywgMC4wMDYyMDEiLCBcCi0gICAgICAgICAgIjAuMDA1OTgsIDAuMDA2MTM5LCAwLjAwNjE3LCAwLjAwNjE3OSwgMC4wMDYxODgsIDAuMDA2MTk0LCAwLjAwNjE5NyIsIFwKLSAgICAgICAgICAiMC4wMDU5NzMsIDAuMDA2MTMzLCAwLjAwNjE2NCwgMC4wMDYxNzQsIDAuMDA2MTgyLCAwLjAwNjE4NywgMC4wMDYxOTIiLCBcCi0gICAgICAgICAgIjAuMDA1OTY3LCAwLjAwNjEyNiwgMC4wMDYxNTcsIDAuMDA2MTY3LCAwLjAwNjE3NiwgMC4wMDYxODEsIDAuMDA2MTg2IiwgXAotICAgICAgICAgICIwLjAwNTk1NSwgMC4wMDYxMTQsIDAuMDA2MTQ2LCAwLjAwNjE1NywgMC4wMDYxNjYsIDAuMDA2MTcyLCAwLjAwNjE3NiIsIFwKLSAgICAgICAgICAiMC4wMDU5NDUsIDAuMDA2MTAzLCAwLjAwNjEzNiwgMC4wMDYxNDcsIDAuMDA2MTU3LCAwLjAwNjE2MywgMC4wMDYxNjciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDM1MiwgMC4wMDQ1MTMsIDAuMDA0NTQ0LCAwLjAwNDU1NCwgMC4wMDQ1NjMsIDAuMDA0NTY4LCAwLjAwNDU3MyIsIFwKLSAgICAgICAgICAiMC4wMDQzNDUsIDAuMDA0NTA2LCAwLjAwNDUzNywgMC4wMDQ1NDcsIDAuMDA0NTU1LCAwLjAwNDU2LCAwLjAwNDU2NCIsIFwKLSAgICAgICAgICAiMC4wMDQzMzEsIDAuMDA0NDk0LCAwLjAwNDUyNSwgMC4wMDQ1MzUsIDAuMDA0NTQ0LCAwLjAwNDU0OSwgMC4wMDQ1NTQiLCBcCi0gICAgICAgICAgIjAuMDA0MzIyLCAwLjAwNDQ4MywgMC4wMDQ1MTUsIDAuMDA0NTI2LCAwLjAwNDUzNCwgMC4wMDQ1MzksIDAuMDA0NTQzIiwgXAotICAgICAgICAgICIwLjAwNDMxMywgMC4wMDQ0NzQsIDAuMDA0NTA2LCAwLjAwNDUxNywgMC4wMDQ1MjYsIDAuMDA0NTMxLCAwLjAwNDUzNiIsIFwKLSAgICAgICAgICAiMC4wMDQzMDEsIDAuMDA0NDYsIDAuMDA0NDkzLCAwLjAwNDUwNCwgMC4wMDQ1MTMsIDAuMDA0NTE5LCAwLjAwNDUyNCIsIFwKLSAgICAgICAgICAiMC4wMDQyOTMsIDAuMDA0NDUsIDAuMDA0NDg1LCAwLjAwNDQ5NiwgMC4wMDQ1MDYsIDAuMDA0NTEyLCAwLjAwNDUxNyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNJIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNTY3OCwgMC4wMDU4MzQsIDAuMDA1ODY1LCAwLjAwNTg3NSwgMC4wMDU4ODUsIDAuMDA1ODksIDAuMDA1ODk1IiwgXAotICAgICAgICAgICIwLjAwNTY4LCAwLjAwNTgzNiwgMC4wMDU4NjYsIDAuMDA1ODc3LCAwLjAwNTg4NiwgMC4wMDU4OTEsIDAuMDA1ODk2IiwgXAotICAgICAgICAgICIwLjAwNTY3NSwgMC4wMDU4MzEsIDAuMDA1ODYyLCAwLjAwNTg3MywgMC4wMDU4ODIsIDAuMDA1ODg3LCAwLjAwNTg5MiIsIFwKLSAgICAgICAgICAiMC4wMDU2NywgMC4wMDU4MjUsIDAuMDA1ODU4LCAwLjAwNTg2OCwgMC4wMDU4NzgsIDAuMDA1ODg0LCAwLjAwNTg4OCIsIFwKLSAgICAgICAgICAiMC4wMDU2NjQsIDAuMDA1ODE4LCAwLjAwNTg1MSwgMC4wMDU4NjIsIDAuMDA1ODcyLCAwLjAwNTg3OCwgMC4wMDU4ODMiLCBcCi0gICAgICAgICAgIjAuMDA1NjU3LCAwLjAwNTgwNywgMC4wMDU4NDEsIDAuMDA1ODUzLCAwLjAwNTg2NCwgMC4wMDU4NzEsIDAuMDA1ODc2IiwgXAotICAgICAgICAgICIwLjAwNTY1LCAwLjAwNTc5OCwgMC4wMDU4MzQsIDAuMDA1ODQ2LCAwLjAwNTg1OCwgMC4wMDU4NjQsIDAuMDA1ODciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDM0NiwgMC4wMDQ1MDUsIDAuMDA0NTM2LCAwLjAwNDU0NywgMC4wMDQ1NTUsIDAuMDA0NTYxLCAwLjAwNDU2NSIsIFwKLSAgICAgICAgICAiMC4wMDQzNDYsIDAuMDA0NTA2LCAwLjAwNDUzNywgMC4wMDQ1NSwgMC4wMDQ1NTYsIDAuMDA0NTYxLCAwLjAwNDU2OCIsIFwKLSAgICAgICAgICAiMC4wMDQzMzksIDAuMDA0NDk5LCAwLjAwNDUzLCAwLjAwNDU0LCAwLjAwNDU1LCAwLjAwNDU1NCwgMC4wMDQ1NTgiLCBcCi0gICAgICAgICAgIjAuMDA0MzMyLCAwLjAwNDQ5MiwgMC4wMDQ1MjMsIDAuMDA0NTM0LCAwLjAwNDU0MywgMC4wMDQ1NSwgMC4wMDQ1NTIiLCBcCi0gICAgICAgICAgIjAuMDA0MzIzLCAwLjAwNDQ4MSwgMC4wMDQ1MTQsIDAuMDA0NTI0LCAwLjAwNDUzNCwgMC4wMDQ1MzksIDAuMDA0NTQ0IiwgXAotICAgICAgICAgICIwLjAwNDMxMiwgMC4wMDQ0NjgsIDAuMDA0NTAxLCAwLjAwNDUxMiwgMC4wMDQ1MjMsIDAuMDA0NTI4LCAwLjAwNDUzNCIsIFwKLSAgICAgICAgICAiMC4wMDQzMDIsIDAuMDA0NDU3LCAwLjAwNDQ5MSwgMC4wMDQ1MDIsIDAuMDA0NTEzLCAwLjAwNDUxOSwgMC4wMDQ1MjYiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBBRERGSFhMICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKEFEREZIWEwpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4yNDg0MDc7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMjg0MDkzOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMjgzNjM1OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMjg0MDkzOwotICB9Ci0gIHBpbihCKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDI4NDkxODsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDI4MzQ5OTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDI4NDkxODsKLSAgfQotICBwaW4oQ0kpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMjE0ODM2OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMjEzNDI5OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMjE0ODM2OwotICB9Ci0gIHBpbihDTykgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjEwNTI2NzsKLSAgICBmdW5jdGlvbiA6ICIoKChBIEIpKyhCIENJKSkrKENJIEEpKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjQ2ODczLCAwLjI2NTU4NCwgMC40Mjk0OTcsIDAuNjk5NDQyLCAwLjk3MjcxMSwgMS42MDEyNiwgMS45NjI5OCIsIFwKLSAgICAgICAgICAiMC4yNTg1MzQsIDAuMjc3MTgxLCAwLjQ0MDY4NSwgMC43MTA4MjEsIDAuOTg0MTU5LCAxLjYxNDEsIDEuOTcyODQiLCBcCi0gICAgICAgICAgIjAuMjczMDA3LCAwLjI5MTY1NiwgMC40NTUwNDEsIDAuNzI0ODQzLCAwLjk5NzUsIDEuNjI2NTQsIDEuOTg1OTYiLCBcCi0gICAgICAgICAgIjAuMjg2OTQ4LCAwLjMwNTYzNiwgMC40Njg5NjIsIDAuNzM5NzczLCAxLjAxMDMyLCAxLjY0MDk5LCAxLjk5OTg1IiwgXAotICAgICAgICAgICIwLjMwMDU1MiwgMC4zMTkyMDYsIDAuNDgyNTkxLCAwLjc1MjM4NiwgMS4wMjM5MiwgMS42NTQxMiwgMi4wMTYwOSIsIFwKLSAgICAgICAgICAiMC4zMjIyMjUsIDAuMzQwODc5LCAwLjUwNDI4MiwgMC43NzM3MiwgMS4wNDYzMiwgMS42NzYwMiwgMi4wMzY3NiIsIFwKLSAgICAgICAgICAiMC4zNDExODcsIDAuMzU5ODQ0LCAwLjUyMzI1NCwgMC43OTQyMjksIDEuMDY0NiwgMS42OTQ5MSwgMi4wNTM4OCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMTQ3NTgsIDAuMjQ5OTU0LCAwLjU3MzM3NywgMS4xMjk3NSwgMS42ODM5NiwgMi45NzI2MSwgMy43MDcyNCIsIFwKLSAgICAgICAgICAiMC4yMTUsIDAuMjQ5ODg2LCAwLjU3NjI0NywgMS4xMjk3NywgMS42ODE3MSwgMi45ODE3OSwgMy43MDc1NiIsIFwKLSAgICAgICAgICAiMC4yMTQyODcsIDAuMjUwMDk5LCAwLjU3NTY1NywgMS4xMjk3NSwgMS42ODMzOCwgMi45ODE4MiwgMy43MjE1MSIsIFwKLSAgICAgICAgICAiMC4yMTQ0MzMsIDAuMjUwMDQ3LCAwLjU3NjY1NCwgMS4xMjAzMSwgMS42ODY0NiwgMi45ODE3LCAzLjcyMTQ4IiwgXAotICAgICAgICAgICIwLjIxNDUzLCAwLjI0OTk2NywgMC41NzM1MTYsIDEuMTI5ODYsIDEuNjgwNDYsIDIuOTgxOCwgMy43MTg1MiIsIFwKLSAgICAgICAgICAiMC4yMTM0ODEsIDAuMjQ5OTE1LCAwLjU3MzQ5NSwgMS4xMzAxOCwgMS42ODA2NiwgMi45NzE1MywgMy43MjE0NyIsIFwKLSAgICAgICAgICAiMC4yMTM4MDcsIDAuMjUwMTUxLCAwLjU3Njk3MiwgMS4xMjU3OSwgMS42ODAyLCAyLjk4MTY5LCAzLjcyMTQ2Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI1MDc4NSwgMC4yNzIxNjUsIDAuNDYwMzg4LCAwLjc3Mjk3NSwgMS4wODY1MywgMS44MTcxNCwgMi4yMzQwNiIsIFwKLSAgICAgICAgICAiMC4yNjI1MTksIDAuMjgzOSwgMC40NzIxMjksIDAuNzg0MzQ4LCAxLjA5NzkxLCAxLjgyODQ1LCAyLjI0MDA1IiwgXAotICAgICAgICAgICIwLjI3NjU0OSwgMC4yOTc5MDcsIDAuNDg2MjM3LCAwLjc5Nzg1MSwgMS4xMDk2NCwgMS44NDEzNiwgMi4yNTg3OSIsIFwKLSAgICAgICAgICAiMC4yODk2NDUsIDAuMzExMDI1LCAwLjQ5OTMyLCAwLjgxMTIzMywgMS4xMjMyOCwgMS44NTM4MSwgMi4yNzA1MiIsIFwKLSAgICAgICAgICAiMC4zMDI0MzMsIDAuMzIzODA5LCAwLjUxMjExMSwgMC44MjQwMzQsIDEuMTM1NjksIDEuODY2MjEsIDIuMjgzMTMiLCBcCi0gICAgICAgICAgIjAuMzIyMzM5LCAwLjM0MzcyNSwgMC41MzIxNDEsIDAuODQzOTM1LCAxLjE1NTQ5LCAxLjg4NTc1LCAyLjMwMzA3IiwgXAotICAgICAgICAgICIwLjMzOTQ1OSwgMC4zNjA4NDcsIDAuNTQ5MTY5LCAwLjg2MTA3OCwgMS4xNzI2NSwgMS45MDI4NCwgMi4zMTk3NSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMzgzNTgsIDAuMjc3ODA5LCAwLjY0MDA1NSwgMS4yNTcxOSwgMS44NzU4NywgMy4zMTk0MSwgNC4xNDQ5IiwgXAotICAgICAgICAgICIwLjIzODQ1OCwgMC4yNzc3ODQsIDAuNjQwNTM1LCAxLjI1NzE2LCAxLjg3NTgyLCAzLjMxOTUxLCA0LjE0NDcxIiwgXAotICAgICAgICAgICIwLjIzODY3MSwgMC4yNzc1NDksIDAuNjQwNTU1LCAxLjI1NzMzLCAxLjg3NDI1LCAzLjMxOTcsIDQuMTQ0NCIsIFwKLSAgICAgICAgICAiMC4yMzg2NzUsIDAuMjc3NjIsIDAuNjM5OTk3LCAxLjI1NzE0LCAxLjg3NTgzLCAzLjMxOTUsIDQuMTQ1ODEiLCBcCi0gICAgICAgICAgIjAuMjM4MzYyLCAwLjI3Nzc3OCwgMC42NDAwMzksIDEuMjU3MTcsIDEuODc1ODMsIDMuMzE5NDIsIDQuMTQ0OSIsIFwKLSAgICAgICAgICAiMC4yMzg1MjMsIDAuMjc3NzE2LCAwLjY0MDczLCAxLjI1NzE0LCAxLjg3NTgyLCAzLjMxOTUzLCA0LjE0NDUyIiwgXAotICAgICAgICAgICIwLjIzODMsIDAuMjc3NzI1LCAwLjY0MDAyNSwgMS4yNTcxNywgMS44NzU4NSwgMy4zMTkzNywgNC4xNDQ4NyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yNDY3NiwgMC4yNjU0NTQsIDAuNDI5MzMxLCAwLjY5OTM2MywgMC45NzE2NDQsIDEuNjAxNiwgMS45NjIxMSIsIFwKLSAgICAgICAgICAiMC4yNTcwOTIsIDAuMjc1ODEsIDAuNDM5NzE2LCAwLjcwOTcxLCAwLjk4MTYxMiwgMS42MTE0LCAxLjk3MjE0IiwgXAotICAgICAgICAgICIwLjI3MDM3OSwgMC4yODkxMTYsIDAuNDUyOTQ4LCAwLjcyMzAzNywgMC45OTY0NDEsIDEuNjI0NzksIDEuOTg2MSIsIFwKLSAgICAgICAgICAiMC4yODI5MzgsIDAuMzAxNjI0LCAwLjQ2NTUyNSwgMC43MzU1MDksIDEuMDA1OTEsIDEuNjM3NiwgMS45OTgzNSIsIFwKLSAgICAgICAgICAiMC4yOTYyNjksIDAuMzE0OTg3LCAwLjQ3ODgwMSwgMC43NDg4NjcsIDEuMDIwNzMsIDEuNjUxMjksIDIuMDEzMyIsIFwKLSAgICAgICAgICAiMC4zMTc2OTMsIDAuMzM2MzgzLCAwLjUwMDI0NiwgMC43NzAzNjYsIDEuMDQzMTYsIDEuNjczODUsIDIuMDMyNjEiLCBcCi0gICAgICAgICAgIjAuMzM3NTI2LCAwLjM1NjI2MywgMC41MjAxMzUsIDAuNzkwMTE4LCAxLjA2MzQzLCAxLjY5MjQzLCAyLjA1MTI5Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIxNTgxNywgMC4yNTE0NDgsIDAuNTc3MjgzLCAxLjEyNzA5LCAxLjY4MjE3LCAyLjk2Nzk2LCAzLjY3NjQzIiwgXAotICAgICAgICAgICIwLjIxNTMxMiwgMC4yNTE2MDMsIDAuNTc2NTQ4LCAxLjEyNjc1LCAxLjY4NDQ4LCAyLjk3MTMyLCAzLjcwNjg4IiwgXAotICAgICAgICAgICIwLjIxNTcwOCwgMC4yNTE0NSwgMC41NzIzODQsIDEuMTI1MjYsIDEuNjY1MDYsIDIuOTY4OTIsIDMuNzA3NTYiLCBcCi0gICAgICAgICAgIjAuMjE1ODEyLCAwLjI1MTU2NiwgMC41NzMxNzQsIDEuMTI5MDUsIDEuNjg2MzUsIDIuOTc5LCAzLjcwNzg4IiwgXAotICAgICAgICAgICIwLjIxNTc1MiwgMC4yNTA1MjksIDAuNTczMTQ3LCAxLjEyNTY1LCAxLjY3Nzk3LCAyLjk4MTY3LCAzLjY4NjgxIiwgXAotICAgICAgICAgICIwLjIxNTY2NSwgMC4yNTA2MjcsIDAuNTc1MjIyLCAxLjEyOTE1LCAxLjY4Mzg0LCAyLjk3ODk5LCAzLjcyMTI4IiwgXAotICAgICAgICAgICIwLjIxNTcxOSwgMC4yNTA1MjQsIDAuNTcyMzI2LCAxLjEyOTI2LCAxLjY4MzA4LCAyLjk4MTUzLCAzLjcyMTI3Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI0OTM1MiwgMC4yNzA5NDIsIDAuNDU5NTg0LCAwLjc3MDg2MSwgMS4wODQwOCwgMS44MTM4LCAyLjIzMTMxIiwgXAotICAgICAgICAgICIwLjI2MTE3MiwgMC4yODI3NSwgMC40NzE0NjMsIDAuNzgyNjExLCAxLjA5NDg1LCAxLjgyMzEzLCAyLjI0MjgxIiwgXAotICAgICAgICAgICIwLjI3NDk0NywgMC4yOTY1NjksIDAuNDg1MjA2LCAwLjc5NjQ2MywgMS4xMDk2LCAxLjgzNzMzLCAyLjI1MzQiLCBcCi0gICAgICAgICAgIjAuMjg3OTMyLCAwLjMwOTU0NiwgMC40OTgyMzEsIDAuODA5NDg2LCAxLjEyMTc0LCAxLjg0OTgzLCAyLjI2NjM2IiwgXAotICAgICAgICAgICIwLjMwMDQ5OSwgMC4zMjIwOTEsIDAuNTEwNzIsIDAuODIyMDE1LCAxLjEzMzY0LCAxLjg2NTM3LCAyLjI4MjQxIiwgXAotICAgICAgICAgICIwLjMyMDM1NSwgMC4zNDE5NTMsIDAuNTMwNjY4LCAwLjg0MTkxMywgMS4xNTQxNSwgMS44ODUwNSwgMi4zMDIzMyIsIFwKLSAgICAgICAgICAiMC4zMzcyMzgsIDAuMzU4ODU3LCAwLjU0NzUzNCwgMC44NTg4NjksIDEuMTcxNTUsIDEuOTAyMTgsIDIuMzE5MDYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjQwMDk5LCAwLjI4MDc3NSwgMC42NDExNTMsIDEuMjU3MTksIDEuODc1ODQsIDMuMzE5NDYsIDQuMTQ0OTUiLCBcCi0gICAgICAgICAgIjAuMjQwNzU4LCAwLjI3ODkzOCwgMC42NDA1NTcsIDEuMjU3MTIsIDEuODc1OCwgMy4zMTkyNiwgNC4xNDQ5OCIsIFwKLSAgICAgICAgICAiMC4yNDA4MjYsIDAuMjgxMzg1LCAwLjY0MDQ4NywgMS4yNTcxNiwgMS44NzU4LCAzLjMxOTQ1LCA0LjE0MzQ0IiwgXAotICAgICAgICAgICIwLjI0MDczMywgMC4yODAxNTgsIDAuNjQwNTM3LCAxLjI1NzE3LCAxLjg3NTgxLCAzLjMxOTQxLCA0LjE0NDkiLCBcCi0gICAgICAgICAgIjAuMjQxNzQ1LCAwLjI4MTExMywgMC42NDA2NywgMS4yNTcxNSwgMS44NzU4LCAzLjMxOTUxLCA0LjE0NDU5IiwgXAotICAgICAgICAgICIwLjI0MDcyMywgMC4yNzk3NDIsIDAuNjQwNTQsIDEuMjU2MDQsIDEuODcwOTksIDMuMzE5ODcsIDQuMTQ0NDkiLCBcCi0gICAgICAgICAgIjAuMjQxMjA1LCAwLjI4MDI5MywgMC42NDA0NjEsIDEuMjU3MTYsIDEuODc1ODIsIDMuMzE5MjcsIDQuMTQ0ODUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0kiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIzMzY5NSwgMC4yNTIzODcsIDAuNDE1NzA3LCAwLjY4NjczMiwgMC45NTcwOTQsIDEuNTg3NjYsIDEuOTQ1ODUiLCBcCi0gICAgICAgICAgIjAuMjQ0MzU3LCAwLjI2MzAxMSwgMC40MjYzNjYsIDAuNjk2MTYzLCAwLjk2NzYzOSwgMS41OTc3NywgMS45NTU3MyIsIFwKLSAgICAgICAgICAiMC4yNTczODEsIDAuMjc2MDI1LCAwLjQzOTM1NCwgMC43MDkzLCAwLjk4MDYyLCAxLjYxMTI2LCAxLjk3MDc3IiwgXAotICAgICAgICAgICIwLjI3MDk0MSwgMC4yODk2MzYsIDAuNDUyOTU4LCAwLjcyMzg0NywgMC45OTQyOTgsIDEuNjI0NjgsIDEuOTgzODEiLCBcCi0gICAgICAgICAgIjAuMjg0MjA5LCAwLjMwMjg5NiwgMC40NjYxODMsIDAuNzM2NzU5LCAxLjAwNzQ3LCAxLjYzODEzLCAxLjk5NTI4IiwgXAotICAgICAgICAgICIwLjMwNTg5MywgMC4zMjQ1NjgsIDAuNDg3ODY0LCAwLjc1NzgyNiwgMS4wMjkwNiwgMS42NTk1OCwgMi4wMTk1MiIsIFwKLSAgICAgICAgICAiMC4zMjQ5OSwgMC4zNDM2NiwgMC41MDY5NzMsIDAuNzc2NTI4LCAxLjA0ODM2LCAxLjY3ODY1LCAyLjAzOTIyIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIxNDI2NiwgMC4yNTIzMTEsIDAuNTczNTkzLCAxLjEyOTcyLCAxLjY3OTk3LCAyLjk3MzI4LCAzLjcxOTAyIiwgXAotICAgICAgICAgICIwLjIxNDMxNiwgMC4yNTEwNjksIDAuNTczNjg1LCAxLjEyOTk2LCAxLjY3OTA0LCAyLjk0Nzc2LCAzLjcxOTE5IiwgXAotICAgICAgICAgICIwLjIxNDQ3NiwgMC4yNTEwMjUsIDAuNTczNzIyLCAxLjEzMDMyLCAxLjY2MDkxLCAyLjk3MjkyLCAzLjcxODM1IiwgXAotICAgICAgICAgICIwLjIxNDM0NCwgMC4yNTEzMjEsIDAuNTczNjgzLCAxLjEyOTM5LCAxLjY3ODkyLCAyLjk3MTMxLCAzLjcxNzczIiwgXAotICAgICAgICAgICIwLjIxNDY1LCAwLjI1MTUzNiwgMC41NzM3ODIsIDEuMTI5NzYsIDEuNjYwMTYsIDIuOTczMDYsIDMuNzE5MTQiLCBcCi0gICAgICAgICAgIjAuMjE0NDkzLCAwLjI1MTI1OSwgMC41NzM5NzEsIDEuMTI5NzMsIDEuNjYxMzUsIDIuOTcwMjcsIDMuNzExMzkiLCBcCi0gICAgICAgICAgIjAuMjE0MjkzLCAwLjI1MTM5NCwgMC41NzM4NzIsIDEuMTMwMTUsIDEuNjc4NDQsIDIuOTcsIDMuNzE0NjIiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjQyMjc1LCAwLjI2Mzg1NywgMC40NTIzNTMsIDAuNzYzOTAzLCAxLjA3NTkxLCAxLjgwNDUxLCAyLjIxNzcxIiwgXAotICAgICAgICAgICIwLjI1MjY0NywgMC4yNzQyNTYsIDAuNDYzMDQ1LCAwLjc3NDI2NSwgMS4wODYzNiwgMS44MTUxNSwgMi4yMzQ1NyIsIFwKLSAgICAgICAgICAiMC4yNjU5NTgsIDAuMjg3NTQ5LCAwLjQ3NjI2MSwgMC43ODc1ODksIDEuMDk5NTgsIDEuODI4MTIsIDIuMjQ3NjUiLCBcCi0gICAgICAgICAgIjAuMjc4ODQsIDAuMzAwNDkyLCAwLjQ4OTEzMywgMC44MDA1MjksIDEuMTEzNzYsIDEuODQxMTYsIDIuMjU3MjIiLCBcCi0gICAgICAgICAgIjAuMjkyMTk5LCAwLjMxMzgxNSwgMC41MDI3MDQsIDAuODEzODgsIDEuMTI2MDMsIDEuODU3MDIsIDIuMjc0MTkiLCBcCi0gICAgICAgICAgIjAuMzEzMzgsIDAuMzM0OTk3LCAwLjUyMzc2NCwgMC44MzUxMSwgMS4xNDcxOSwgMS44NzU5NiwgMi4yOTU0MyIsIFwKLSAgICAgICAgICAiMC4zMzE4NTIsIDAuMzUzNDQ1LCAwLjU0MjEwNSwgMC44NTM2MDksIDEuMTY1NjksIDEuODk0NDMsIDIuMzEzODkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjQyMjM2LCAwLjI4MTQyNCwgMC42NDEyMTEsIDEuMjU0MzgsIDEuODcyNzksIDMuMzE2ODMsIDQuMTQzMjUiLCBcCi0gICAgICAgICAgIjAuMjQyMTcsIDAuMjc5ODgsIDAuNjQxNDM1LCAxLjI1NDM3LCAxLjg3NDAyLCAzLjMxOTA3LCA0LjE0NDU5IiwgXAotICAgICAgICAgICIwLjI0MjE3MiwgMC4yODEzNjcsIDAuNjQwNDM4LCAxLjI1NDQyLCAxLjg2OTc4LCAzLjMxNzM2LCA0LjE0NTgxIiwgXAotICAgICAgICAgICIwLjI0MjA0NSwgMC4yODExODcsIDAuNjQwNjg5LCAxLjI1NDMsIDEuODcyNTIsIDMuMzE2NzksIDQuMTQwMzgiLCBcCi0gICAgICAgICAgIjAuMjQyMjEsIDAuMjc5NTYzLCAwLjY0MTQ4MiwgMS4yNTQzNSwgMS44NzI3OCwgMy4zMTg5OCwgNC4xNDQ2IiwgXAotICAgICAgICAgICIwLjI0MjMyNCwgMC4yODA0MjcsIDAuNjQxMzk4LCAxLjI1NTU4LCAxLjg2OTYzLCAzLjMxNTU0LCA0LjE0NDU5IiwgXAotICAgICAgICAgICIwLjI0MjQsIDAuMjgxNTg0LCAwLjY0MTMyNSwgMS4yNTQzNiwgMS44NzM5OCwgMy4zMTU1OSwgNC4xNDQ2NSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTY0MSwgMC4wMDE2NDMsIDAuMDAxNjUxLCAwLjAwMTY1NCwgMC4wMDE2NTYsIDAuMDAxNjU2LCAwLjAwMTY1NyIsIFwKLSAgICAgICAgICAiMC4wMDE2MjYsIDAuMDAxNjI4LCAwLjAwMTYzNiwgMC4wMDE2MzksIDAuMDAxNjQsIDAuMDAxNjQyLCAwLjAwMTY0IiwgXAotICAgICAgICAgICIwLjAwMTYxOSwgMC4wMDE2MjEsIDAuMDAxNjI5LCAwLjAwMTYzMywgMC4wMDE2MzQsIDAuMDAxNjM1LCAwLjAwMTYzNSIsIFwKLSAgICAgICAgICAiMC4wMDE2MTUsIDAuMDAxNjE3LCAwLjAwMTYyNSwgMC4wMDE2MjgsIDAuMDAxNjI5LCAwLjAwMTYzMSwgMC4wMDE2MzEiLCBcCi0gICAgICAgICAgIjAuMDAxNjExLCAwLjAwMTYxMywgMC4wMDE2MjEsIDAuMDAxNjI1LCAwLjAwMTYyNiwgMC4wMDE2MjcsIDAuMDAxNjI3IiwgXAotICAgICAgICAgICIwLjAwMTYwNywgMC4wMDE2MDksIDAuMDAxNjE4LCAwLjAwMTYyMSwgMC4wMDE2MjMsIDAuMDAxNjI0LCAwLjAwMTYyNCIsIFwKLSAgICAgICAgICAiMC4wMDE2MDQsIDAuMDAxNjA2LCAwLjAwMTYxNSwgMC4wMDE2MTgsIDAuMDAxNjIsIDAuMDAxNjIxLCAwLjAwMTYyMSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzE5LCAwLjAwMzE5MiwgMC4wMDMyLCAwLjAwMzIwMywgMC4wMDMyMDQsIDAuMDAzMjA1LCAwLjAwMzIwNSIsIFwKLSAgICAgICAgICAiMC4wMDMxODcsIDAuMDAzMTg5LCAwLjAwMzE5NywgMC4wMDMyLCAwLjAwMzIwMSwgMC4wMDMyMDIsIDAuMDAzMjAzIiwgXAotICAgICAgICAgICIwLjAwMzE4NSwgMC4wMDMxODcsIDAuMDAzMTk1LCAwLjAwMzE5OCwgMC4wMDMxOTksIDAuMDAzMiwgMC4wMDMyIiwgXAotICAgICAgICAgICIwLjAwMzE4MywgMC4wMDMxODUsIDAuMDAzMTkzLCAwLjAwMzE5NiwgMC4wMDMxOTcsIDAuMDAzMTk4LCAwLjAwMzE5OCIsIFwKLSAgICAgICAgICAiMC4wMDMxODEsIDAuMDAzMTgzLCAwLjAwMzE5MSwgMC4wMDMxOTQsIDAuMDAzMTk2LCAwLjAwMzE5NywgMC4wMDMxOTciLCBcCi0gICAgICAgICAgIjAuMDAzMTc4LCAwLjAwMzE4MSwgMC4wMDMxODksIDAuMDAzMTkyLCAwLjAwMzE5MywgMC4wMDMxOTUsIDAuMDAzMTk1IiwgXAotICAgICAgICAgICIwLjAwMzE3NiwgMC4wMDMxNzgsIDAuMDAzMTg3LCAwLjAwMzE5LCAwLjAwMzE5MiwgMC4wMDMxOTMsIDAuMDAzMTkzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxNzUxLCAwLjAwMTc1MywgMC4wMDE3NjEsIDAuMDAxNzY0LCAwLjAwMTc2NSwgMC4wMDE3NjQsIDAuMDAxNzY4IiwgXAotICAgICAgICAgICIwLjAwMTc0MywgMC4wMDE3NDUsIDAuMDAxNzUyLCAwLjAwMTc1NSwgMC4wMDE3NTYsIDAuMDAxNzU3LCAwLjAwMTc1OCIsIFwKLSAgICAgICAgICAiMC4wMDE3MzMsIDAuMDAxNzM1LCAwLjAwMTc0MiwgMC4wMDE3NDUsIDAuMDAxNzQ2LCAwLjAwMTc0NywgMC4wMDE3NDgiLCBcCi0gICAgICAgICAgIjAuMDAxNzIzLCAwLjAwMTcyNSwgMC4wMDE3MzMsIDAuMDAxNzM2LCAwLjAwMTczNywgMC4wMDE3MzgsIDAuMDAxNzM5IiwgXAotICAgICAgICAgICIwLjAwMTcxNiwgMC4wMDE3MTgsIDAuMDAxNzI2LCAwLjAwMTcyOSwgMC4wMDE3MywgMC4wMDE3MzEsIDAuMDAxNzMxIiwgXAotICAgICAgICAgICIwLjAwMTcwNywgMC4wMDE3MDksIDAuMDAxNzE3LCAwLjAwMTcyMSwgMC4wMDE3MjIsIDAuMDAxNzIzLCAwLjAwMTcyMyIsIFwKLSAgICAgICAgICAiMC4wMDE3MDMsIDAuMDAxNzA1LCAwLjAwMTcxNCwgMC4wMDE3MTcsIDAuMDAxNzE5LCAwLjAwMTcxOSwgMC4wMDE3MiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzE4MywgMC4wMDMxODUsIDAuMDAzMTkzLCAwLjAwMzE5NiwgMC4wMDMxOTgsIDAuMDAzMTk5LCAwLjAwMzE5OSIsIFwKLSAgICAgICAgICAiMC4wMDMxODIsIDAuMDAzMTg0LCAwLjAwMzE5MiwgMC4wMDMxOTUsIDAuMDAzMTk2LCAwLjAwMzE5NywgMC4wMDMxOTgiLCBcCi0gICAgICAgICAgIjAuMDAzMTc4LCAwLjAwMzE4LCAwLjAwMzE4OCwgMC4wMDMxOTEsIDAuMDAzMTkyLCAwLjAwMzE5MywgMC4wMDMxOTMiLCBcCi0gICAgICAgICAgIjAuMDAzMTcyLCAwLjAwMzE3NCwgMC4wMDMxODIsIDAuMDAzMTg1LCAwLjAwMzE4NiwgMC4wMDMxODgsIDAuMDAzMTg4IiwgXAotICAgICAgICAgICIwLjAwMzE2NSwgMC4wMDMxNjcsIDAuMDAzMTc1LCAwLjAwMzE3OSwgMC4wMDMxOCwgMC4wMDMxODEsIDAuMDAzMTgyIiwgXAotICAgICAgICAgICIwLjAwMzE1NiwgMC4wMDMxNTgsIDAuMDAzMTY3LCAwLjAwMzE3LCAwLjAwMzE3MiwgMC4wMDMxNzMsIDAuMDAzMTczIiwgXAotICAgICAgICAgICIwLjAwMzE0OSwgMC4wMDMxNTEsIDAuMDAzMTYsIDAuMDAzMTYzLCAwLjAwMzE2NSwgMC4wMDMxNjYsIDAuMDAzMTY3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0kiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTc1MiwgMC4wMDE3NTQsIDAuMDAxNzYyLCAwLjAwMTc2NSwgMC4wMDE3NjYsIDAuMDAxNzY3LCAwLjAwMTc2NyIsIFwKLSAgICAgICAgICAiMC4wMDE3NSwgMC4wMDE3NTIsIDAuMDAxNzYsIDAuMDAxNzYzLCAwLjAwMTc2NCwgMC4wMDE3NjMsIDAuMDAxNzY2IiwgXAotICAgICAgICAgICIwLjAwMTc0MywgMC4wMDE3NDUsIDAuMDAxNzUzLCAwLjAwMTc1NiwgMC4wMDE3NTcsIDAuMDAxNzU4LCAwLjAwMTc1OCIsIFwKLSAgICAgICAgICAiMC4wMDE3MzUsIDAuMDAxNzM3LCAwLjAwMTc0NSwgMC4wMDE3NDgsIDAuMDAxNzQ5LCAwLjAwMTc1LCAwLjAwMTc1MSIsIFwKLSAgICAgICAgICAiMC4wMDE3MjgsIDAuMDAxNzMsIDAuMDAxNzM4LCAwLjAwMTc0MiwgMC4wMDE3NDMsIDAuMDAxNzQ0LCAwLjAwMTc0NSIsIFwKLSAgICAgICAgICAiMC4wMDE3MTgsIDAuMDAxNzIsIDAuMDAxNzI4LCAwLjAwMTczMiwgMC4wMDE3MzMsIDAuMDAxNzM1LCAwLjAwMTczNSIsIFwKLSAgICAgICAgICAiMC4wMDE3MTEsIDAuMDAxNzEzLCAwLjAwMTcyMiwgMC4wMDE3MjYsIDAuMDAxNzI3LCAwLjAwMTcyOCwgMC4wMDE3MjkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI5MTQsIDAuMDAyOTE2LCAwLjAwMjkyNCwgMC4wMDI5MjgsIDAuMDAyOTI5LCAwLjAwMjkzLCAwLjAwMjkzIiwgXAotICAgICAgICAgICIwLjAwMjkxNCwgMC4wMDI5MTYsIDAuMDAyOTI0LCAwLjAwMjkyNywgMC4wMDI5MjksIDAuMDAyOTMsIDAuMDAyOTMiLCBcCi0gICAgICAgICAgIjAuMDAyOTExLCAwLjAwMjkxMywgMC4wMDI5MjEsIDAuMDAyOTI0LCAwLjAwMjkyNiwgMC4wMDI5MjcsIDAuMDAyOTI3IiwgXAotICAgICAgICAgICIwLjAwMjkwNSwgMC4wMDI5MDcsIDAuMDAyOTE1LCAwLjAwMjkxOSwgMC4wMDI5MiwgMC4wMDI5MjEsIDAuMDAyOTIyIiwgXAotICAgICAgICAgICIwLjAwMjksIDAuMDAyOTAyLCAwLjAwMjkxMSwgMC4wMDI5MTQsIDAuMDAyOTE2LCAwLjAwMjkxNywgMC4wMDI5MTciLCBcCi0gICAgICAgICAgIjAuMDAyODkyLCAwLjAwMjg5NSwgMC4wMDI5MDQsIDAuMDAyOTA4LCAwLjAwMjkxLCAwLjAwMjkxMSwgMC4wMDI5MTIiLCBcCi0gICAgICAgICAgIjAuMDAyODg4LCAwLjAwMjg5MSwgMC4wMDI5LCAwLjAwMjkwNSwgMC4wMDI5MDYsIDAuMDAyOTA4LCAwLjAwMjkwOSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUykgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjEwMjA3MTsKLSAgICBmdW5jdGlvbiA6ICIoKEFeQileQ0kpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yNjYzNzUsIDAuMjg0OTc0LCAwLjQ0ODgxOSwgMC43MTk4NTUsIDAuOTkwMDExLCAxLjYyMDA2LCAxLjk3OTg3IiwgXAotICAgICAgICAgICIwLjI3NzMyMiwgMC4yOTU5MTksIDAuNDU5ODEzLCAwLjczMDc1MSwgMS4wMDEwMiwgMS42MzA5LCAxLjk5MDYzIiwgXAotICAgICAgICAgICIwLjI5MDEzMSwgMC4zMDg3NTMsIDAuNDcyNjI5LCAwLjc0MzYwMywgMS4wMTM4MSwgMS42NDM3MSwgMi4wMDM1MSIsIFwKLSAgICAgICAgICAiMC4zMDIxMjEsIDAuMzIwNzA4LCAwLjQ4NDYwOCwgMC43NTU1NTksIDEuMDI1NzksIDEuNjU1NywgMi4wMTUzNiIsIFwKLSAgICAgICAgICAiMC4zMTQwNiwgMC4zMzI2NDUsIDAuNDk2NTQ2LCAwLjc2NzQ5OSwgMS4wMzc3MiwgMS42Njc2NCwgMi4wMjczMSIsIFwKLSAgICAgICAgICAiMC4zMzI4MTgsIDAuMzUxNDA3LCAwLjUxNTI4OSwgMC43ODYyNTgsIDEuMDU2NTEsIDEuNjg2NCwgMi4wNDYxNCIsIFwKLSAgICAgICAgICAiMC4zNDkzNDksIDAuMzY3OTMxLCAwLjUzMTg0OCwgMC44MDI4MDgsIDEuMDczMDMsIDEuNzAyOTUsIDIuMDYyNjIiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjEyMDksIDAuMjQ3MzI1LCAwLjU3MTEwOSwgMS4xMTU1NCwgMS42NjY1NSwgMi45NDc0MywgMy42NzUxMSIsIFwKLSAgICAgICAgICAiMC4yMTIxNDYsIDAuMjQ3MjY5LCAwLjU2OTcwMywgMS4xMTgxOSwgMS42NjY3MSwgMi45NDI5OCwgMy42Nzk0MyIsIFwKLSAgICAgICAgICAiMC4yMTIyMTgsIDAuMjQ3MzExLCAwLjU2OTkzOCwgMS4xMTU2OCwgMS42NjYzNSwgMi45NDcyLCAzLjY3NDk2IiwgXAotICAgICAgICAgICIwLjIxMjA4LCAwLjI0NzIwOCwgMC41NzExMzYsIDEuMTE4MTcsIDEuNjYzNjMsIDIuOTQzMSwgMy42Nzg3OCIsIFwKLSAgICAgICAgICAiMC4yMTIxOTMsIDAuMjQ3MjM0LCAwLjU2OTYxOSwgMS4xMTgyMSwgMS42NjU3MywgMi45NDI5OSwgMy42NzMwMiIsIFwKLSAgICAgICAgICAiMC4yMTIwMzIsIDAuMjQ3MTg0LCAwLjU2OTg5MiwgMS4xMTgxLCAxLjY2NjQxLCAyLjk0NzE1LCAzLjY3NDciLCBcCi0gICAgICAgICAgIjAuMjEyMDI1LCAwLjI0NzEwMSwgMC41Njk2MTUsIDEuMTE4MTcsIDEuNjYzNTksIDIuOTQzMTUsIDMuNjc0NzkiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjY2MDUzLCAwLjI4NzQxMywgMC40NzYxNDEsIDAuNzg4NzcxLCAxLjEwMDg5LCAxLjgyODc0LCAyLjI0NDM3IiwgXAotICAgICAgICAgICIwLjI3NzIzOCwgMC4yOTg1OTQsIDAuNDg3MzA2LCAwLjc5OTk1LCAxLjExMjEsIDEuODM5OTIsIDIuMjU1NTQiLCBcCi0gICAgICAgICAgIjAuMjg5ODc0LCAwLjMxMTI1OSwgMC40OTk5OCwgMC44MTI1ODIsIDEuMTI0NjgsIDEuODUyNDUsIDIuMjY4MiIsIFwKLSAgICAgICAgICAiMC4zMDE1NDYsIDAuMzIyOTExLCAwLjUxMTY2NSwgMC44MjQyNzcsIDEuMTM2NDIsIDEuODY0MTIsIDIuMjc5ODYiLCBcCi0gICAgICAgICAgIjAuMzEyNzU2LCAwLjMzNDE2MSwgMC41MjI4OTUsIDAuODM1NTEsIDEuMTQ3NywgMS44NzUzNiwgMi4yOTEwOCIsIFwKLSAgICAgICAgICAiMC4zMzAwMjcsIDAuMzUxNDAyLCAwLjU0MDE0OSwgMC44NTI3MjgsIDEuMTY0ODUsIDEuODkyNjQsIDIuMzA4MzYiLCBcCi0gICAgICAgICAgIjAuMzQ0NjkzLCAwLjM2NjA3NywgMC41NTQ4NDYsIDAuODY3NDczLCAxLjE3OTU1LCAxLjkwNzMzLCAyLjMyMzAyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIzNjYxLCAwLjI3NjMxOSwgMC42NDIzMywgMS4yNTg5LCAxLjg3NjU5LCAzLjMxODM5LCA0LjE0NTA5IiwgXAotICAgICAgICAgICIwLjIzNjU2NywgMC4yNzYxODIsIDAuNjQyMTE0LCAxLjI1ODg3LCAxLjg3NzEyLCAzLjMyMTM3LCA0LjE0NDEyIiwgXAotICAgICAgICAgICIwLjIzNjY0LCAwLjI3NjM0MywgMC42NDE3MzgsIDEuMjU4NTIsIDEuODc4MDgsIDMuMzE4ODQsIDQuMTQ2NDIiLCBcCi0gICAgICAgICAgIjAuMjM2NjU3LCAwLjI3NjQyOCwgMC42NDI0MjYsIDEuMjU4ODYsIDEuODc0NjksIDMuMzE4NDcsIDQuMTQ2MjYiLCBcCi0gICAgICAgICAgIjAuMjM2NTAzLCAwLjI3NjMxOCwgMC42NDI0MjQsIDEuMjU4ODUsIDEuODc2OCwgMy4zMTg1OSwgNC4xNDI3OCIsIFwKLSAgICAgICAgICAiMC4yMzY1MzMsIDAuMjc2MjU2LCAwLjY0MDU4MywgMS4yNTk0MiwgMS44NzgxOSwgMy4zMTk1OSwgNC4xNDQxIiwgXAotICAgICAgICAgICIwLjIzNjUyMSwgMC4yNzYyNTMsIDAuNjQyMzk5LCAxLjI1ODc3LCAxLjg3NTU2LCAzLjMxOTg0LCA0LjE0Mjg1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMxMTEzMywgMC4zMjkxOTcsIDAuNDkxMjMsIDAuNzYwOTUxLCAxLjAzMDYxLCAxLjY1OTU2LCAyLjAxODk2IiwgXAotICAgICAgICAgICIwLjMyMjk0MywgMC4zNDEwMDMsIDAuNTAzLCAwLjc3MjczNSwgMS4wNDIzNywgMS42NzEzNCwgMi4wMzA3IiwgXAotICAgICAgICAgICIwLjMzNjkyMiwgMC4zNTUwMDIsIDAuNTE3MDQ0LCAwLjc4Njc3LCAxLjA1NjQsIDEuNjg1MzksIDIuMDQ0OCIsIFwKLSAgICAgICAgICAiMC4zNDk5OTcsIDAuMzY4MDcyLCAwLjUzMDExMSwgMC43OTk4NzYsIDEuMDY5NDYsIDEuNjk4NDcsIDIuMDU3ODMiLCBcCi0gICAgICAgICAgIjAuMzYyNzUxLCAwLjM4MDgyNiwgMC41NDI4NjYsIDAuODEyNjQxLCAxLjA4MjIyLCAxLjcxMTIyLCAyLjA3MDU4IiwgXAotICAgICAgICAgICIwLjM4MjcwNiwgMC40MDA3NTksIDAuNTYyNzgzLCAwLjgzMjQ5NywgMS4xMDIxMywgMS43MzExLCAyLjA5MDQ4IiwgXAotICAgICAgICAgICIwLjM5OTc0OCwgMC40MTc4MDMsIDAuNTc5ODEyLCAwLjg0OTUzOSwgMS4xMTkxNywgMS43NDgxNSwgMi4xMDc1MSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMDQ1NDgsIDAuMjM5NzYsIDAuNTYzODkxLCAxLjExMjc1LCAxLjY2MTQ2LCAyLjk0MTg3LCAzLjY3NDM2IiwgXAotICAgICAgICAgICIwLjIwNDUxLCAwLjIzOTczMSwgMC41NjQ3MjIsIDEuMTEyODMsIDEuNjYxNCwgMi45NDE5NSwgMy42NjgyOSIsIFwKLSAgICAgICAgICAiMC4yMDQ1NzYsIDAuMjM5ODQ4LCAwLjU2NDI4LCAxLjExMjQ2LCAxLjY1OTE2LCAyLjk0MTY2LCAzLjY3NDMzIiwgXAotICAgICAgICAgICIwLjIwNDU3MiwgMC4yMzk3ODQsIDAuNTYzOTk5LCAxLjExMzAzLCAxLjY2MTQ0LCAyLjk0MjAyLCAzLjY3NDUiLCBcCi0gICAgICAgICAgIjAuMjA0NTI5LCAwLjIzOTcyOCwgMC41NjM5OTUsIDEuMTEyOTksIDEuNjYxNDIsIDIuOTQxOTEsIDMuNjc0MzkiLCBcCi0gICAgICAgICAgIjAuMjA0NTE4LCAwLjIzOTc1NCwgMC41NjQ4NTksIDEuMTEyODMsIDEuNjYxNDEsIDIuOTQxOTcsIDMuNjczNTIiLCBcCi0gICAgICAgICAgIjAuMjA0NTI1LCAwLjIzOTczMSwgMC41NjQ4MDgsIDEuMTEyODIsIDEuNjYxNDYsIDIuOTQxODUsIDMuNjc0MzQiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzM1NDMzLCAwLjM1NjQxMywgMC41NDM1MjYsIDAuODU1MTU0LCAxLjE2NjkzLCAxLjg5MzgyLCAyLjMwOTM2IiwgXAotICAgICAgICAgICIwLjM0NjcwOSwgMC4zNjc2ODEsIDAuNTU0Nzg5LCAwLjg2NjQxLCAxLjE3ODIyLCAxLjkwNTIxLCAyLjMyMDU2IiwgXAotICAgICAgICAgICIwLjM2MDIzNywgMC4zODEyMTUsIDAuNTY4MzIyLCAwLjg3OTk2LCAxLjE5MTc0LCAxLjkxODY3LCAyLjMzNDAxIiwgXAotICAgICAgICAgICIwLjM3MzYzNCwgMC4zOTQ2MDYsIDAuNTgxNzExLCAwLjg5MzMzNywgMS4yMDQ5NSwgMS45MzIwMSwgMi4zNDc0OSIsIFwKLSAgICAgICAgICAiMC4zODcwNzUsIDAuNDA4MDUxLCAwLjU5NTE4MSwgMC45MDY3OTMsIDEuMjE4NCwgMS45NDU1MiwgMi4zNjExNCIsIFwKLSAgICAgICAgICAiMC40MDg4NjQsIDAuNDI5ODQ1LCAwLjYxNjk2MSwgMC45Mjg1OCwgMS4yNDAzOSwgMS45NjcyMiwgMi4zODI3NSIsIFwKLSAgICAgICAgICAiMC40Mjc1NDgsIDAuNDQ4NTI5LCAwLjYzNTYzMywgMC45NDcyNiwgMS4yNTg5LCAxLjk4NTksIDIuNDAxNDIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjMxOTc5LCAwLjI3MTU4NSwgMC42MzU2NzQsIDEuMjUxODcsIDEuODY5MSwgMy4zMTE3NywgNC4xMzYxMSIsIFwKLSAgICAgICAgICAiMC4yMzE5OTUsIDAuMjcxNjAyLCAwLjYzNTU4MiwgMS4yNTE4LCAxLjg2ODU3LCAzLjMxMTE5LCA0LjEzNTY5IiwgXAotICAgICAgICAgICIwLjIzMTk2OSwgMC4yNzE1OTMsIDAuNjM1NTU3LCAxLjI1MTc2LCAxLjg2ODUzLCAzLjMxMDk2LCA0LjEzNDY0IiwgXAotICAgICAgICAgICIwLjIzMTk4OCwgMC4yNzE2MDcsIDAuNjM1NjIsIDEuMjUxNzgsIDEuODY5MDgsIDMuMzEwOTIsIDQuMTM1MjYiLCBcCi0gICAgICAgICAgIjAuMjMxOTgsIDAuMjcxNTk4LCAwLjYzNTc2OSwgMS4yNTE3OCwgMS44NjkwNiwgMy4zMTEwMSwgNC4xMzUxNCIsIFwKLSAgICAgICAgICAiMC4yMzE5NzIsIDAuMjcxNjAxLCAwLjYzNTc1NCwgMS4yNTE3OCwgMS44Njg0OCwgMy4zMTAyMiwgNC4xMzQ4NiIsIFwKLSAgICAgICAgICAiMC4yMzE5NiwgMC4yNzE1OTIsIDAuNjM1NjQ0LCAxLjI1MTc4LCAxLjg2ODUyLCAzLjMxMDgzLCA0LjEzNDg1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI2MTM3MiwgMC4yNzk5ODEsIDAuNDQzODY4LCAwLjcxNDkxNCwgMC45ODUxMTIsIDEuNjE1MDUsIDEuOTc1MDEiLCBcCi0gICAgICAgICAgIjAuMjcxNjQ5LCAwLjI5MDI1LCAwLjQ1NDE0NywgMC43MjUxMTksIDAuOTk1NDU2LCAxLjYyNTQsIDEuOTg1MTEiLCBcCi0gICAgICAgICAgIjAuMjg0MjY0LCAwLjMwMjg3NSwgMC40NjY3OTEsIDAuNzM3NzQsIDEuMDA4MDUsIDEuNjM3OTUsIDEuOTk3NzgiLCBcCi0gICAgICAgICAgIjAuMjk2NzYzLCAwLjMxNTMyMSwgMC40NzkyNDksIDAuNzUwMTk2LCAxLjAyMDQ5LCAxLjY1MDM2LCAyLjAxMDE3IiwgXAotICAgICAgICAgICIwLjMwOTY2NCwgMC4zMjgxODUsIDAuNDkyMTUyLCAwLjc2MzA1LCAxLjAzMzM3LCAxLjY2MzQ3LCAyLjAyMzAzIiwgXAotICAgICAgICAgICIwLjMyOTg1OCwgMC4zNDg0NDUsIDAuNTEyMzU5LCAwLjc4MzMyOSwgMS4wNTM2LCAxLjY4MzUyLCAyLjA0MzUiLCBcCi0gICAgICAgICAgIjAuMzQ4MDU2LCAwLjM2NjY0MywgMC41MzA1ODIsIDAuODAxNTQ2LCAxLjA3MTgxLCAxLjcwMTc2LCAyLjA2MTU1Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIxMjExLCAwLjI0NzI3OCwgMC41NzEwMzMsIDEuMTE4NTYsIDEuNjY2NTUsIDIuOTQ3OCwgMy42NzEzNCIsIFwKLSAgICAgICAgICAiMC4yMTIxMTgsIDAuMjQ3MjU5LCAwLjU3MDAyOSwgMS4xMTgyMywgMS42NjMyOSwgMi45NDc0OSwgMy42NzQ2MSIsIFwKLSAgICAgICAgICAiMC4yMTIxMzUsIDAuMjQ3MjU4LCAwLjU3MTE4MywgMS4xMTgyMywgMS42NjY5NCwgMi45NDA2MiwgMy42Nzk0NyIsIFwKLSAgICAgICAgICAiMC4yMTIwODcsIDAuMjQ3MjE4LCAwLjU3MTIwNCwgMS4xMTgyMSwgMS42NjM5NiwgMi45NDc0NywgMy42NzQzMyIsIFwKLSAgICAgICAgICAiMC4yMTIxMTcsIDAuMjQ3MTgxLCAwLjU3MTE0LCAxLjExNzk5LCAxLjY2Mzg0LCAyLjk0MDkxLCAzLjY3NDI3IiwgXAotICAgICAgICAgICIwLjIxMjAzOCwgMC4yNDcxODIsIDAuNTcwMDI0LCAxLjExODE5LCAxLjY2NjU3LCAyLjk0MjYxLCAzLjY3MTQ3IiwgXAotICAgICAgICAgICIwLjIxMjA4MSwgMC4yNDcxNDQsIDAuNTcxMTUzLCAxLjExODIzLCAxLjY2NjY1LCAyLjk0MjIsIDMuNjc5NzEiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjU5MzcsIDAuMjgwNzM0LCAwLjQ2OTQ5LCAwLjc4MjE2NywgMS4wOTQzNCwgMS44MjIxOSwgMi4yMzc4NCIsIFwKLSAgICAgICAgICAiMC4yNjk1MjYsIDAuMjkwOTA3LCAwLjQ3OTY3NiwgMC43OTIzMTQsIDEuMTA0NDMsIDEuODMyMjUsIDIuMjQ3OTkiLCBcCi0gICAgICAgICAgIjAuMjgxODE0LCAwLjMwMzE5MSwgMC40OTE5NjIsIDAuODA0NjIzLCAxLjExNjcyLCAxLjg0NDU5LCAyLjI2MDI4IiwgXAotICAgICAgICAgICIwLjI5MzY3NSwgMC4zMTUwNTUsIDAuNTAzODI5LCAwLjgxNjQ3NSwgMS4xMjg3NCwgMS44NTYzOCwgMi4yNzIxMyIsIFwKLSAgICAgICAgICAiMC4zMDUyODYsIDAuMzI2Njg4LCAwLjUxNTQ0NywgMC44MjgxOTMsIDEuMTQwMjMsIDEuODY4MTcsIDIuMjgzNzkiLCBcCi0gICAgICAgICAgIjAuMzIzOTg4LCAwLjM0NTM4MSwgMC41MzQxNzUsIDAuODQ2ODA1LCAxLjE1ODk0LCAxLjg4Njc0LCAyLjMwMjQ5IiwgXAotICAgICAgICAgICIwLjM0MDM0LCAwLjM2MTcyNSwgMC41NTA1MzEsIDAuODYzMjAyLCAxLjE3NTI5LCAxLjkwMzE0LCAyLjMxODg2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIzNjU2NCwgMC4yNzYyLCAwLjY0MjEyMywgMS4yNTg5NCwgMS44NzcyNiwgMy4zMjE2MSwgNC4xNDQyOCIsIFwKLSAgICAgICAgICAiMC4yMzY1NzQsIDAuMjc2MzAyLCAwLjY0MTE0MywgMS4yNTkxLCAxLjg3ODI2LCAzLjMxOTg5LCA0LjE0NDIiLCBcCi0gICAgICAgICAgIjAuMjM2NzEsIDAuMjc2MzI0LCAwLjY0MjQwNiwgMS4yNTg1NywgMS44NzgwMiwgMy4zMTk1LCA0LjE0NjUxIiwgXAotICAgICAgICAgICIwLjIzNjUyOSwgMC4yNzYzNjQsIDAuNjQyNDU2LCAxLjI1ODYzLCAxLjg3NjQ0LCAzLjMxODY1LCA0LjE0NjM1IiwgXAotICAgICAgICAgICIwLjIzNjYyLCAwLjI3NjM2MiwgMC42NDIzMzcsIDEuMjU4MDUsIDEuODc3OTUsIDMuMzIxMSwgNC4xNDY1OCIsIFwKLSAgICAgICAgICAiMC4yMzY1MjcsIDAuMjc2MjUxLCAwLjY0MDg0NywgMS4yNTc0MSwgMS44NzgxOSwgMy4zMTkwOSwgNC4xNDQ2MiIsIFwKLSAgICAgICAgICAiMC4yMzY2NzksIDAuMjc2Mjg1LCAwLjY0MjM4OSwgMS4yNTc2LCAxLjg3ODE1LCAzLjMyMzA0LCA0LjE0NjU2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMxNzA5NCwgMC4zMzUyNTgsIDAuNDk3Nzk4LCAwLjc2Nzg5NSwgMS4wMzc3NSwgMS42NjcwOSwgMi4wMjY0MSIsIFwKLSAgICAgICAgICAiMC4zMjkxNjksIDAuMzQ3MjcyLCAwLjUwOTg0MywgMC43Nzk5NSwgMS4wNDk3NywgMS42NzkwMSwgMi4wMzg1NCIsIFwKLSAgICAgICAgICAiMC4zNDMsIDAuMzYxMTY3LCAwLjUyMzcxMywgMC43OTM4MTIsIDEuMDYzNzUsIDEuNjkyODgsIDIuMDUyMzUiLCBcCi0gICAgICAgICAgIjAuMzU1ODY5LCAwLjM3NDA0OCwgMC41MzY2MDUsIDAuODA2NzU2LCAxLjA3NjUyLCAxLjcwNTc3LCAyLjA2NTI0IiwgXAotICAgICAgICAgICIwLjM2ODMxOCwgMC4zODY0ODcsIDAuNTQ5MDI5LCAwLjgxOTEyOSwgMS4wODg5OSwgMS43MTgxOSwgMi4wNzc2NiIsIFwKLSAgICAgICAgICAiMC4zODc5MiwgMC40MDYwODEsIDAuNTY4NjExLCAwLjgzODcxMywgMS4xMDg1MywgMS43Mzc4NCwgMi4wOTcyNSIsIFwKLSAgICAgICAgICAiMC40MDQ0MTQsIDAuNDIyNTk2LCAwLjU4NTE1MiwgMC44NTUzLCAxLjEyNTA3LCAxLjc1NDMyLCAyLjExMzgiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjA0MzgxLCAwLjIzOTg2NSwgMC41NjYxNDMsIDEuMTE0MDgsIDEuNjYyNjYsIDIuOTQyODMsIDMuNjc0NzIiLCBcCi0gICAgICAgICAgIjAuMjA0NDM0LCAwLjIzOTc5NywgMC41NjUzNjksIDEuMTEyNTMsIDEuNjYxMjcsIDIuOTQxNDUsIDMuNjc1MjEiLCBcCi0gICAgICAgICAgIjAuMjA0NDAzLCAwLjIzOTg3OCwgMC41NjUyNiwgMS4xMTQwNCwgMS42NjIzMywgMi45NDE5OCwgMy42NzM1OCIsIFwKLSAgICAgICAgICAiMC4yMDQzNzgsIDAuMjQwMDEyLCAwLjU2NTM2MSwgMS4xMTM5NSwgMS42NjE0MSwgMi45NDE5MywgMy42NzQ0NCIsIFwKLSAgICAgICAgICAiMC4yMDQzMzMsIDAuMjM5ODk1LCAwLjU2NTIzOCwgMS4xMTQwNywgMS42NjEzOSwgMi45NDMwNSwgMy42NzQ2OCIsIFwKLSAgICAgICAgICAiMC4yMDQ0MDYsIDAuMjM5ODM2LCAwLjU2NTQxNiwgMS4xMTQwOCwgMS42NjAyNywgMi45NDMxMywgMy42NzQ3MiIsIFwKLSAgICAgICAgICAiMC4yMDQzNjMsIDAuMjQwMDIxLCAwLjU2NTMxMSwgMS4xMTM5MywgMS42NjE0NywgMi45NDE4MSwgMy42NzQzMSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMzMyNTgsIDAuMzU0MjMsIDAuNTQxMzM2LCAwLjg1Mjk0NywgMS4xNjQ1OCwgMS44OTE2NywgMi4zMDcwOCIsIFwKLSAgICAgICAgICAiMC4zNDM2MiwgMC4zNjQ1OTEsIDAuNTUxNzE5LCAwLjg2MzMxNCwgMS4xNzUwMSwgMS45MDE5NiwgMi4zMTc0OCIsIFwKLSAgICAgICAgICAiMC4zNTY5NTksIDAuMzc3OTMxLCAwLjU2NTAzNCwgMC44NzY2NDMsIDEuMTg4NDUsIDEuOTE1MzMsIDIuMzMwODYiLCBcCi0gICAgICAgICAgIjAuMzY5NDY5LCAwLjM5MDQyOCwgMC41Nzc1NDgsIDAuODg5MTU3LCAxLjIwMDc1LCAxLjkyNzg3LCAyLjM0MzM3IiwgXAotICAgICAgICAgICIwLjM4Mjg1MiwgMC40MDM4MTcsIDAuNTkwOTI5LCAwLjkwMjU0OCwgMS4yMTQxNiwgMS45NDEyOCwgMi4zNTY3NyIsIFwKLSAgICAgICAgICAiMC40MDQyOTIsIDAuNDI1MjUyLCAwLjYxMjM2MSwgMC45MjM5NzUsIDEuMjM1NjUsIDEuOTYyNjksIDIuMzc4MTMiLCBcCi0gICAgICAgICAgIjAuNDI0MTE0LCAwLjQ0NTA1MywgMC42MzIxNjIsIDAuOTQzNzg5LCAxLjI1NTU3LCAxLjk4MjUsIDIuMzk3ODUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjMxNjkxLCAwLjI3MTQ5MSwgMC42MzU5NjcsIDEuMjUyNiwgMS44NzAwNSwgMy4zMTE5LCA0LjEzNTEiLCBcCi0gICAgICAgICAgIjAuMjMxNjE1LCAwLjI3MTQ0OSwgMC42MzU2OTEsIDEuMjUyNTUsIDEuODcwNDYsIDMuMzEwMzMsIDQuMTM1ODkiLCBcCi0gICAgICAgICAgIjAuMjMxNjQxLCAwLjI3MTI0MSwgMC42MzU1OTEsIDEuMjUyNDUsIDEuODY5NzEsIDMuMzExNDgsIDQuMTM1NzEiLCBcCi0gICAgICAgICAgIjAuMjMxNjQ2LCAwLjI3MTI4NiwgMC42MzU2OCwgMS4yNTI1NiwgMS44NjkwNiwgMy4zMTIwNCwgNC4xMzU4MSIsIFwKLSAgICAgICAgICAiMC4yMzE1ODQsIDAuMjcxMjY2LCAwLjYzNTY3MSwgMS4yNTI0NiwgMS44Njk2NiwgMy4zMTEwMSwgNC4xMzQ1OCIsIFwKLSAgICAgICAgICAiMC4yMzE2MTQsIDAuMjcxMjg3LCAwLjYzNTYwMywgMS4yNTI0MywgMS44Njk0OCwgMy4zMTIxMiwgNC4xMzQ5MSIsIFwKLSAgICAgICAgICAiMC4yMzE2MTksIDAuMjcxMjY1LCAwLjYzNTYwMSwgMS4yNTI0NSwgMS44NjkzNywgMy4zMTEwNCwgNC4xMzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0kiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI1OTI2OCwgMC4yNzc4NzksIDAuNDQxODA1LCAwLjcxMjc2MywgMC45ODMwNzUsIDEuNjEyOTMsIDEuOTcyOSIsIFwKLSAgICAgICAgICAiMC4yNjg0NiwgMC4yODcwMzcsIDAuNDUwOTY1LCAwLjcyMTkxOCwgMC45OTIxODMsIDEuNjIyMDksIDEuOTgxODMiLCBcCi0gICAgICAgICAgIjAuMjc5ODE2LCAwLjI5ODQxMywgMC40NjIzNDQsIDAuNzMzMjk5LCAxLjAwMzY0LCAxLjYzMzQ3LCAxLjk5MzIzIiwgXAotICAgICAgICAgICIwLjI5MTQ0MiwgMC4zMTAwMTcsIDAuNDczOTQyLCAwLjc0NDkwOCwgMS4wMTUxNSwgMS42NDUxLCAyLjAwNDc3IiwgXAotICAgICAgICAgICIwLjMwMzE5NCwgMC4zMjE4MDcsIDAuNDg1NzI4LCAwLjc1NjcyNywgMS4wMjY5NywgMS42NTY5LCAyLjAxNjY3IiwgXAotICAgICAgICAgICIwLjMyMzg3MywgMC4zNDI0ODksIDAuNTA2NDE2LCAwLjc3NzQwNCwgMS4wNDc2NywgMS42Nzc1NiwgMi4wMzczMiIsIFwKLSAgICAgICAgICAiMC4zNDE3MDIsIDAuMzYwMjk0LCAwLjUyNDIyOCwgMC43OTUyMTgsIDEuMDY1NTQsIDEuNjk1NDUsIDIuMDU1MTUiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjEyMTkxLCAwLjI0NzMzMywgMC41NzEyMzYsIDEuMTE4MjksIDEuNjY0MTEsIDIuOTQ3NTQsIDMuNjc5NDYiLCBcCi0gICAgICAgICAgIjAuMjEyMTI4LCAwLjI0NzI1MywgMC41NzExODksIDEuMTE4MiwgMS42NjYyOSwgMi45NDc1NCwgMy42Nzk2NSIsIFwKLSAgICAgICAgICAiMC4yMTIxMjEsIDAuMjQ3MjQ1LCAwLjU2OTY5NiwgMS4xMTgyLCAxLjY2NjczLCAyLjk0MzQzLCAzLjY3MTI3IiwgXAotICAgICAgICAgICIwLjIxMjEzNCwgMC4yNDcyMTQsIDAuNTcxMTI2LCAxLjExODIyLCAxLjY2MzY3LCAyLjk0MTEzLCAzLjY3MzI5IiwgXAotICAgICAgICAgICIwLjIxMjEyNiwgMC4yNDcyMiwgMC41NzAxMjksIDEuMTE2NTEsIDEuNjY2MjgsIDIuOTQzMjEsIDMuNjcyOSIsIFwKLSAgICAgICAgICAiMC4yMTIwNjUsIDAuMjQ3MTY4LCAwLjU2OTkyOCwgMS4xMTgxMSwgMS42NjM1OCwgMi45NDcxMSwgMy42NzQxMiIsIFwKLSAgICAgICAgICAiMC4yMTIwMTMsIDAuMjQ3MTQzLCAwLjU2OTk1MiwgMS4xMTgxLCAxLjY2Njc0LCAyLjk0NzE0LCAzLjY3MDI5Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI0ODU2NSwgMC4yNjk5NTQsIDAuNDU4NzQzLCAwLjc3MTQxNCwgMS4wODM1NCwgMS44MTEzNiwgMi4yMjcxIiwgXAotICAgICAgICAgICIwLjI1NzY5NiwgMC4yNzkwODQsIDAuNDY3ODcyLCAwLjc4MDUxNiwgMS4wOTI2NiwgMS44MjA0MywgMi4yMzYzNiIsIFwKLSAgICAgICAgICAiMC4yNjk1MDUsIDAuMjkwODc4LCAwLjQ3OTY3NywgMC43OTIzNDQsIDEuMTA0NDYsIDEuODMyMjMsIDIuMjQ3OTkiLCBcCi0gICAgICAgICAgIjAuMjgxNDgzLCAwLjMwMjg2MywgMC40OTE2OCwgMC44MDQzMzYsIDEuMTE2NCwgMS44NDQyMiwgMi4yNTk5MiIsIFwKLSAgICAgICAgICAiMC4yOTM1ODEsIDAuMzE0OTczLCAwLjUwMzc4NCwgMC44MTY0MzcsIDEuMTI4NjIsIDEuODU2MzIsIDIuMjcyMDYiLCBcCi0gICAgICAgICAgIjAuMzEzMjMxLCAwLjMzNDY0NCwgMC41MjM0NjQsIDAuODM2MTI2LCAxLjE0ODI4LCAxLjg3NjAxLCAyLjI5MTg2IiwgXAotICAgICAgICAgICIwLjMzMDMwNiwgMC4zNTE2NjYsIDAuNTQwNTA2LCAwLjg1MzEzMywgMS4xNjUyNywgMS44OTMwNiwgMi4zMDg4MiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMzY2MDMsIDAuMjc2NTA1LCAwLjY0MTUwNSwgMS4yNTg5NSwgMS44Nzc4MywgMy4zMjExMywgNC4xNDYyNCIsIFwKLSAgICAgICAgICAiMC4yMzY1MSwgMC4yNzYzNDcsIDAuNjQyNDM1LCAxLjI1ODg0LCAxLjg3Nzg1LCAzLjMyMjY1LCA0LjE0NTA0IiwgXAotICAgICAgICAgICIwLjIzNjYwOSwgMC4yNzYyNTIsIDAuNjQxNjM4LCAxLjI1ODkyLCAxLjg3NzksIDMuMzE4NzMsIDQuMTQ2NzIiLCBcCi0gICAgICAgICAgIjAuMjM2NTc2LCAwLjI3NjMzLCAwLjY0MjQxNywgMS4yNTg3NiwgMS44NzgzNSwgMy4zMjA4NCwgNC4xNDMxMyIsIFwKLSAgICAgICAgICAiMC4yMzY1MjUsIDAuMjc2MzU1LCAwLjY0MjQyMSwgMS4yNTg4NSwgMS44NzczNSwgMy4zMTg1OSwgNC4xNDYyOSIsIFwKLSAgICAgICAgICAiMC4yMzY1MjIsIDAuMjc2MzU2LCAwLjY0MjQzMiwgMS4yNTg4MSwgMS44NzczLCAzLjMxODc1LCA0LjE0NTU3IiwgXAotICAgICAgICAgICIwLjIzNjY3OCwgMC4yNzYyODgsIDAuNjQwMjg1LCAxLjI1Njk4LCAxLjg3ODEyLCAzLjMxODgzLCA0LjE0NjM4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNJIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMDc3NDksIDAuMzI1ODY1LCAwLjQ4ODQyLCAwLjc1ODU0NSwgMS4wMjgzNiwgMS42NTc2LCAyLjAxNzMzIiwgXAotICAgICAgICAgICIwLjMxODQyNCwgMC4zMzY1ODksIDAuNDk5MTI3LCAwLjc2OTIxMSwgMS4wMzkwMywgMS42NjgyNiwgMi4wMjc3NCIsIFwKLSAgICAgICAgICAiMC4zMzE4NDUsIDAuMzQ5OTYxLCAwLjUxMjUyOCwgMC43ODI2MzUsIDEuMDUyNDUsIDEuNjgxNjksIDIuMDQxMjMiLCBcCi0gICAgICAgICAgIjAuMzQ0NjU4LCAwLjM2MjgzMSwgMC41MjUzODEsIDAuNzk1NDc2LCAxLjA2NTMsIDEuNjk0NTQsIDIuMDU0MDIiLCBcCi0gICAgICAgICAgIjAuMzU3OTU2LCAwLjM3NjExOCwgMC41Mzg2NywgMC44MDg3NDEsIDEuMDc4NTYsIDEuNzA3ODUsIDIuMDY3MjciLCBcCi0gICAgICAgICAgIjAuMzc4ODkxLCAwLjM5NzA2MiwgMC41NTk1ODUsIDAuODI5Njc4LCAxLjA5OTQ5LCAxLjcyODczLCAyLjA4ODIxIiwgXAotICAgICAgICAgICIwLjM5NzEyOCwgMC40MTUyNDQsIDAuNTc3ODEyLCAwLjg0NzkxOCwgMS4xMTc3MywgMS43NDY5NywgMi4xMDY0NSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMDQyNjcsIDAuMjQwMDMyLCAwLjU2NjAwNiwgMS4xMTQxMSwgMS42NjA0NiwgMi45NDIxMiwgMy42NjgyNSIsIFwKLSAgICAgICAgICAiMC4yMDQyNDksIDAuMjM5ODMzLCAwLjU2NjIxNCwgMS4xMTQwOSwgMS42NjAzNiwgMi45NDIyNywgMy42NzQ3NCIsIFwKLSAgICAgICAgICAiMC4yMDQyNjQsIDAuMjQwMDMyLCAwLjU2NDg2NywgMS4xMTQxMiwgMS42NjA1LCAyLjk0MjA5LCAzLjY3NDk4IiwgXAotICAgICAgICAgICIwLjIwNDIyMiwgMC4yNDAwMiwgMC41NjUyODMsIDEuMTE0MDMsIDEuNjYyNjgsIDIuOTQxOTYsIDMuNjczNDgiLCBcCi0gICAgICAgICAgIjAuMjA0MjUsIDAuMjM5ODQsIDAuNTY2MjU2LCAxLjExNDA5LCAxLjY2MDMsIDIuOTQzMjQsIDMuNjc0NzMiLCBcCi0gICAgICAgICAgIjAuMjA0MjcyLCAwLjIzOTg0LCAwLjU2NjE3MiwgMS4xMTQwOSwgMS42NjAzOCwgMi45NDIwNCwgMy42NzQ3NSIsIFwKLSAgICAgICAgICAiMC4yMDQyNDUsIDAuMjQwMDIsIDAuNTY2MTE1LCAxLjExNDA5LCAxLjY2MTU5LCAyLjk0MjA3LCAzLjY3NDc1Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMxMzc2OCwgMC4zMzQ2MzcsIDAuNTIxODYyLCAwLjgzMzYwNiwgMS4xNDUyNywgMS44NzI0NSwgMi4yODc5MyIsIFwKLSAgICAgICAgICAiMC4zMjQ0NjgsIDAuMzQ1MzM4LCAwLjUzMjU2MSwgMC44NDQyNzQsIDEuMTU1OTYsIDEuODgzMTIsIDIuMjk4NTgiLCBcCi0gICAgICAgICAgIjAuMzM3NDEsIDAuMzU4Mjc3LCAwLjU0NTUxMiwgMC44NTcyNzIsIDEuMTY4OSwgMS44OTYwOSwgMi4zMTE1NiIsIFwKLSAgICAgICAgICAiMC4zNTA4NTYsIDAuMzcxNzI4LCAwLjU1ODk1MiwgMC44NzA2NzIsIDEuMTgyMzYsIDEuOTA5NTMsIDIuMzI1MDgiLCBcCi0gICAgICAgICAgIjAuMzYzOTQ4LCAwLjM4NDgxOCwgMC41NzIwNTQsIDAuODgzODQyLCAxLjE5NTQ0LCAxLjkyMjYzLCAyLjMzODA1IiwgXAotICAgICAgICAgICIwLjM4NTMxOCwgMC40MDYxNzgsIDAuNTkzNDM5LCAwLjkwNTEyOCwgMS4yMTY4MiwgMS45NDQsIDIuMzU5NDkiLCBcCi0gICAgICAgICAgIjAuNDA0MDg2LCAwLjQyNDk3NiwgMC42MTIyLCAwLjkyMzk0MSwgMS4yMzU2LCAxLjk2Mjc3LCAyLjM3ODQxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIyODI4NiwgMC4yNjg1OTcsIDAuNjM1NjksIDEuMjUyNjksIDEuODY5NCwgMy4zMTA5LCA0LjEzNTM2IiwgXAotICAgICAgICAgICIwLjIyODQwNiwgMC4yNjg2MTEsIDAuNjM1NjEzLCAxLjI1MjUsIDEuODY5MzQsIDMuMzEwODMsIDQuMTM1MiIsIFwKLSAgICAgICAgICAiMC4yMjg0ODcsIDAuMjY4NjU0LCAwLjYzNTYxNiwgMS4yNTI1MSwgMS44Njk0MSwgMy4zMTA1NSwgNC4xMzYwMiIsIFwKLSAgICAgICAgICAiMC4yMjg0NiwgMC4yNjg2MjUsIDAuNjM1NjE1LCAxLjI1MjQ3LCAxLjg2OTM1LCAzLjMxMDY4LCA0LjEzNDkyIiwgXAotICAgICAgICAgICIwLjIyODQ4OCwgMC4yNjg4NSwgMC42MzU2MTcsIDEuMjUyMSwgMS44NjkzMiwgMy4zMTA2NCwgNC4xMzU1IiwgXAotICAgICAgICAgICIwLjIyODUwNywgMC4yNjg2MTMsIDAuNjM1NjE4LCAxLjI1MjU5LCAxLjg2OTM1LCAzLjMxMDc4LCA0LjEzNTQ5IiwgXAotICAgICAgICAgICIwLjIyODQ1NCwgMC4yNjg5MTIsIDAuNjM1NjkxLCAxLjI1MjUyLCAxLjg2OTMxLCAzLjMxMDc1LCA0LjEzNTMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDMxOSwgMC4wMDMxOTIsIDAuMDAzMiwgMC4wMDMyMDMsIDAuMDAzMjA0LCAwLjAwMzIwNSwgMC4wMDMyMDUiLCBcCi0gICAgICAgICAgIjAuMDAzMTg3LCAwLjAwMzE4OSwgMC4wMDMxOTcsIDAuMDAzMiwgMC4wMDMyMDEsIDAuMDAzMjAyLCAwLjAwMzIwMyIsIFwKLSAgICAgICAgICAiMC4wMDMxODUsIDAuMDAzMTg3LCAwLjAwMzE5NSwgMC4wMDMxOTgsIDAuMDAzMTk5LCAwLjAwMzIsIDAuMDAzMiIsIFwKLSAgICAgICAgICAiMC4wMDMxODMsIDAuMDAzMTg1LCAwLjAwMzE5MywgMC4wMDMxOTYsIDAuMDAzMTk3LCAwLjAwMzE5OCwgMC4wMDMxOTgiLCBcCi0gICAgICAgICAgIjAuMDAzMTgxLCAwLjAwMzE4MywgMC4wMDMxOTEsIDAuMDAzMTk0LCAwLjAwMzE5NiwgMC4wMDMxOTcsIDAuMDAzMTk3IiwgXAotICAgICAgICAgICIwLjAwMzE3OCwgMC4wMDMxODEsIDAuMDAzMTg5LCAwLjAwMzE5MiwgMC4wMDMxOTMsIDAuMDAzMTk1LCAwLjAwMzE5NSIsIFwKLSAgICAgICAgICAiMC4wMDMxNzYsIDAuMDAzMTc4LCAwLjAwMzE4NywgMC4wMDMxOSwgMC4wMDMxOTIsIDAuMDAzMTkzLCAwLjAwMzE5MyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTY0MSwgMC4wMDE2NDMsIDAuMDAxNjUxLCAwLjAwMTY1NCwgMC4wMDE2NTYsIDAuMDAxNjU2LCAwLjAwMTY1NyIsIFwKLSAgICAgICAgICAiMC4wMDE2MjYsIDAuMDAxNjI4LCAwLjAwMTYzNiwgMC4wMDE2MzksIDAuMDAxNjQsIDAuMDAxNjQyLCAwLjAwMTY0IiwgXAotICAgICAgICAgICIwLjAwMTYxOSwgMC4wMDE2MjEsIDAuMDAxNjI5LCAwLjAwMTYzMywgMC4wMDE2MzQsIDAuMDAxNjM1LCAwLjAwMTYzNSIsIFwKLSAgICAgICAgICAiMC4wMDE2MTUsIDAuMDAxNjE3LCAwLjAwMTYyNSwgMC4wMDE2MjgsIDAuMDAxNjI5LCAwLjAwMTYzMSwgMC4wMDE2MzEiLCBcCi0gICAgICAgICAgIjAuMDAxNjExLCAwLjAwMTYxMywgMC4wMDE2MjEsIDAuMDAxNjI1LCAwLjAwMTYyNiwgMC4wMDE2MjcsIDAuMDAxNjI3IiwgXAotICAgICAgICAgICIwLjAwMTYwNywgMC4wMDE2MDksIDAuMDAxNjE4LCAwLjAwMTYyMSwgMC4wMDE2MjMsIDAuMDAxNjI0LCAwLjAwMTYyNCIsIFwKLSAgICAgICAgICAiMC4wMDE2MDQsIDAuMDAxNjA2LCAwLjAwMTYxNSwgMC4wMDE2MTgsIDAuMDAxNjIsIDAuMDAxNjIxLCAwLjAwMTYyMSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzE4MywgMC4wMDMxODUsIDAuMDAzMTkzLCAwLjAwMzE5NiwgMC4wMDMxOTgsIDAuMDAzMTk5LCAwLjAwMzE5OSIsIFwKLSAgICAgICAgICAiMC4wMDMxODIsIDAuMDAzMTg0LCAwLjAwMzE5MiwgMC4wMDMxOTUsIDAuMDAzMTk2LCAwLjAwMzE5NywgMC4wMDMxOTgiLCBcCi0gICAgICAgICAgIjAuMDAzMTc4LCAwLjAwMzE4LCAwLjAwMzE4OCwgMC4wMDMxOTEsIDAuMDAzMTkyLCAwLjAwMzE5MywgMC4wMDMxOTMiLCBcCi0gICAgICAgICAgIjAuMDAzMTcyLCAwLjAwMzE3NCwgMC4wMDMxODIsIDAuMDAzMTg1LCAwLjAwMzE4NiwgMC4wMDMxODgsIDAuMDAzMTg4IiwgXAotICAgICAgICAgICIwLjAwMzE2NSwgMC4wMDMxNjcsIDAuMDAzMTc1LCAwLjAwMzE3OSwgMC4wMDMxOCwgMC4wMDMxODEsIDAuMDAzMTgyIiwgXAotICAgICAgICAgICIwLjAwMzE1NiwgMC4wMDMxNTgsIDAuMDAzMTY3LCAwLjAwMzE3LCAwLjAwMzE3MiwgMC4wMDMxNzMsIDAuMDAzMTczIiwgXAotICAgICAgICAgICIwLjAwMzE0OSwgMC4wMDMxNTEsIDAuMDAzMTYsIDAuMDAzMTYzLCAwLjAwMzE2NSwgMC4wMDMxNjYsIDAuMDAzMTY3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxNzUxLCAwLjAwMTc1MywgMC4wMDE3NjEsIDAuMDAxNzY0LCAwLjAwMTc2NSwgMC4wMDE3NjQsIDAuMDAxNzY4IiwgXAotICAgICAgICAgICIwLjAwMTc0MywgMC4wMDE3NDUsIDAuMDAxNzUyLCAwLjAwMTc1NSwgMC4wMDE3NTYsIDAuMDAxNzU3LCAwLjAwMTc1OCIsIFwKLSAgICAgICAgICAiMC4wMDE3MzMsIDAuMDAxNzM1LCAwLjAwMTc0MiwgMC4wMDE3NDUsIDAuMDAxNzQ2LCAwLjAwMTc0NywgMC4wMDE3NDgiLCBcCi0gICAgICAgICAgIjAuMDAxNzIzLCAwLjAwMTcyNSwgMC4wMDE3MzMsIDAuMDAxNzM2LCAwLjAwMTczNywgMC4wMDE3MzgsIDAuMDAxNzM5IiwgXAotICAgICAgICAgICIwLjAwMTcxNiwgMC4wMDE3MTgsIDAuMDAxNzI2LCAwLjAwMTcyOSwgMC4wMDE3MywgMC4wMDE3MzEsIDAuMDAxNzMxIiwgXAotICAgICAgICAgICIwLjAwMTcwNywgMC4wMDE3MDksIDAuMDAxNzE3LCAwLjAwMTcyMSwgMC4wMDE3MjIsIDAuMDAxNzIzLCAwLjAwMTcyMyIsIFwKLSAgICAgICAgICAiMC4wMDE3MDMsIDAuMDAxNzA1LCAwLjAwMTcxNCwgMC4wMDE3MTcsIDAuMDAxNzE5LCAwLjAwMTcxOSwgMC4wMDE3MiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNJIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI5MTQsIDAuMDAyOTE2LCAwLjAwMjkyNCwgMC4wMDI5MjgsIDAuMDAyOTI5LCAwLjAwMjkzLCAwLjAwMjkzIiwgXAotICAgICAgICAgICIwLjAwMjkxNCwgMC4wMDI5MTYsIDAuMDAyOTI0LCAwLjAwMjkyNywgMC4wMDI5MjksIDAuMDAyOTMsIDAuMDAyOTMiLCBcCi0gICAgICAgICAgIjAuMDAyOTExLCAwLjAwMjkxMywgMC4wMDI5MjEsIDAuMDAyOTI0LCAwLjAwMjkyNiwgMC4wMDI5MjcsIDAuMDAyOTI3IiwgXAotICAgICAgICAgICIwLjAwMjkwNSwgMC4wMDI5MDcsIDAuMDAyOTE1LCAwLjAwMjkxOSwgMC4wMDI5MiwgMC4wMDI5MjEsIDAuMDAyOTIyIiwgXAotICAgICAgICAgICIwLjAwMjksIDAuMDAyOTAyLCAwLjAwMjkxMSwgMC4wMDI5MTQsIDAuMDAyOTE2LCAwLjAwMjkxNywgMC4wMDI5MTciLCBcCi0gICAgICAgICAgIjAuMDAyODkyLCAwLjAwMjg5NSwgMC4wMDI5MDQsIDAuMDAyOTA4LCAwLjAwMjkxLCAwLjAwMjkxMSwgMC4wMDI5MTIiLCBcCi0gICAgICAgICAgIjAuMDAyODg4LCAwLjAwMjg5MSwgMC4wMDI5LCAwLjAwMjkwNSwgMC4wMDI5MDYsIDAuMDAyOTA4LCAwLjAwMjkwOSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTc1MiwgMC4wMDE3NTQsIDAuMDAxNzYyLCAwLjAwMTc2NSwgMC4wMDE3NjYsIDAuMDAxNzY3LCAwLjAwMTc2NyIsIFwKLSAgICAgICAgICAiMC4wMDE3NSwgMC4wMDE3NTIsIDAuMDAxNzYsIDAuMDAxNzYzLCAwLjAwMTc2NCwgMC4wMDE3NjMsIDAuMDAxNzY2IiwgXAotICAgICAgICAgICIwLjAwMTc0MywgMC4wMDE3NDUsIDAuMDAxNzUzLCAwLjAwMTc1NiwgMC4wMDE3NTcsIDAuMDAxNzU4LCAwLjAwMTc1OCIsIFwKLSAgICAgICAgICAiMC4wMDE3MzUsIDAuMDAxNzM3LCAwLjAwMTc0NSwgMC4wMDE3NDgsIDAuMDAxNzQ5LCAwLjAwMTc1LCAwLjAwMTc1MSIsIFwKLSAgICAgICAgICAiMC4wMDE3MjgsIDAuMDAxNzMsIDAuMDAxNzM4LCAwLjAwMTc0MiwgMC4wMDE3NDMsIDAuMDAxNzQ0LCAwLjAwMTc0NSIsIFwKLSAgICAgICAgICAiMC4wMDE3MTgsIDAuMDAxNzIsIDAuMDAxNzI4LCAwLjAwMTczMiwgMC4wMDE3MzMsIDAuMDAxNzM1LCAwLjAwMTczNSIsIFwKLSAgICAgICAgICAiMC4wMDE3MTEsIDAuMDAxNzEzLCAwLjAwMTcyMiwgMC4wMDE3MjYsIDAuMDAxNzI3LCAwLjAwMTcyOCwgMC4wMDE3MjkiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IEFEREZYTCAqCi0gKiAtLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKEFEREZYTCkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjE2NzkzMjsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAyNDY5NDU7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAyNDY0Nzk7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAyNDY5NDU7Ci0gIH0KLSAgcGluKEIpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMjI5OTQzOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMjI4OTQyOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMjI5OTQzOwotICB9Ci0gIHBpbihDSSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxODQ5Mzk7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxODQwNTY7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxODQ5Mzk7Ci0gIH0KLSAgcGluKENPKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMDczMjQxODsKLSAgICBmdW5jdGlvbiA6ICIoKChBIEIpKyhCIENJKSkrKENJIEEpKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzA4MDk3LCAwLjMzNDAyMSwgMC41NjMxNzgsIDAuOTQ1NTIxLCAxLjMyMzQxLCAyLjIxMDk3LCAyLjcxODMiLCBcCi0gICAgICAgICAgIjAuMzE5NTkyLCAwLjM0NTU5MSwgMC41NzQ2OSwgMC45NTY5NjEsIDEuMzM1MDYsIDIuMjIyODUsIDIuNzI4NiIsIFwKLSAgICAgICAgICAiMC4zMzM0NSwgMC4zNTk0NTIsIDAuNTg4NTA5LCAwLjk3MDc0LCAxLjM0ODksIDIuMjM2NzYsIDIuNzQwMTIiLCBcCi0gICAgICAgICAgIjAuMzQ3NDM4LCAwLjM3MzI1MSwgMC42MDIxODksIDAuOTgyNTk3LCAxLjM2Mjg1LCAyLjI0OTU1LCAyLjc1NTYyIiwgXAotICAgICAgICAgICIwLjM2MTQ2MSwgMC4zODcyNDUsIDAuNjE2MDc3LCAwLjk5ODI3MiwgMS4zNzY1NCwgMi4yNjQ0LCAyLjc3MTgzIiwgXAotICAgICAgICAgICIwLjM4MzU5NiwgMC40MDkzODYsIDAuNjM4MDI4LCAxLjAyMDI4LCAxLjM5ODcyLCAyLjI4NDg1LCAyLjc5Mjc2IiwgXAotICAgICAgICAgICIwLjQwMjg1NCwgMC40Mjg2NywgMC42NTc0MzMsIDEuMDM5NjEsIDEuNDE3OTUsIDIuMzA1OTMsIDIuODEyNjEiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjg5OCwgMC4zNDA2ODcsIDAuODAwNzI4LCAxLjU2ODQ4LCAyLjM2MTMsIDQuMTgyMTgsIDUuMjAwNTEiLCBcCi0gICAgICAgICAgIjAuMjkwNjU1LCAwLjM0MDkxLCAwLjgwMDE0OSwgMS41NzA0NiwgMi4zNjE0NCwgNC4xODIyOSwgNS4yMDEwNCIsIFwKLSAgICAgICAgICAiMC4yOTA2MDQsIDAuMzQwNTg3LCAwLjc5NjExOCwgMS41NzI0NywgMi4zNjE0NiwgNC4xODIzMSwgNS4xODE0MyIsIFwKLSAgICAgICAgICAiMC4yOTA2MzMsIDAuMzQwODQ5LCAwLjgwMjQwMywgMS41Nzk1MiwgMi4zNjE1OSwgNC4xODIwNSwgNS4xNTQ2NCIsIFwKLSAgICAgICAgICAiMC4yOTA1MzEsIDAuMzQxMDA1LCAwLjgwMTk1NiwgMS41NzI4NSwgMi4zNjEzOSwgNC4xODE4NiwgNS4yMDAyMSIsIFwKLSAgICAgICAgICAiMC4yOTAzNzksIDAuMzQwOTkxLCAwLjc5OTkyNSwgMS41NjU1OSwgMi4zNTQzMiwgNC4xODIxNCwgNS4xOTc2NyIsIFwKLSAgICAgICAgICAiMC4yOTAyOTgsIDAuMzQwNjU5LCAwLjc5NzQxNiwgMS41NzkyLCAyLjM2MTQzLCA0LjE4MTEsIDUuMTk3NzMiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzE1NDc3LCAwLjM0NTU1OSwgMC42MTM5NzYsIDEuMDU5NjYsIDEuNTA4OTksIDIuNTQ1NDksIDMuMTQ5MTgiLCBcCi0gICAgICAgICAgIjAuMzI3MTgyLCAwLjM1NzI2OSwgMC42MjU2NzcsIDEuMDcxMzYsIDEuNTIwNDEsIDIuNTU2OTYsIDMuMTYwNTkiLCBcCi0gICAgICAgICAgIjAuMzQxNjA3LCAwLjM3MTY4NSwgMC42NDAxMDcsIDEuMDg1ODEsIDEuNTMzNDksIDIuNTc2NTksIDMuMTczNjgiLCBcCi0gICAgICAgICAgIjAuMzU0OTczLCAwLjM4NTA1NywgMC42NTMwMTQsIDEuMTAwNDksIDEuNTQ1OTMsIDIuNTg5OCwgMy4xODYxNCIsIFwKLSAgICAgICAgICAiMC4zNjgwMDIsIDAuMzk4MDkyLCAwLjY2NjQ5NSwgMS4xMTM1MywgMS41NTgzOCwgMi42MDIxMywgMy4yMDA4MSIsIFwKLSAgICAgICAgICAiMC4zODgyNzMsIDAuNDE4NDMzLCAwLjY4Njc4NCwgMS4xMzI1MywgMS41NzgxNiwgMi42MTc2NSwgMy4yMTgzOSIsIFwKLSAgICAgICAgICAiMC40MDU2ODksIDAuNDM1ODM4LCAwLjcwNDIwNiwgMS4xNDk5OSwgMS41OTUxNywgMi42MzkzLCAzLjIzOTE4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMyNzA4MiwgMC4zODM1MDksIDAuOTA1Mzg2LCAxLjc4Njc4LCAyLjY2ODY4LCA0LjcyOTk0LCA1LjkxOTE4IiwgXAotICAgICAgICAgICIwLjMyNzA3LCAwLjM4MzU1MywgMC45MDUzOSwgMS43ODY3MywgMi42Njc5LCA0LjczMTcsIDUuOTE5MTQiLCBcCi0gICAgICAgICAgIjAuMzI3MDgyLCAwLjM4MzQ2MywgMC45MDUzNzIsIDEuNzg2NTYsIDIuNjY3ODksIDQuNzI5NjksIDUuOTE5MTUiLCBcCi0gICAgICAgICAgIjAuMzI2ODY1LCAwLjM4MzU0MywgMC45MDU4MTIsIDEuNzg2OTksIDIuNjY5ODgsIDQuNzMyLCA1LjkxOTA5IiwgXAotICAgICAgICAgICIwLjMyNjY2MiwgMC4zODM1NTcsIDAuOTA2MTI5LCAxLjc4Njk3LCAyLjY2ODMxLCA0LjcyNjI2LCA1LjkxOTA3IiwgXAotICAgICAgICAgICIwLjMyNjk2NCwgMC4zODMzNCwgMC45MDUyNzQsIDEuNzg0MTEsIDIuNjY4MDgsIDQuNzMxMDUsIDUuOTE5MTEiLCBcCi0gICAgICAgICAgIjAuMzI2OTgyLCAwLjM4MzUsIDAuOTA1MzI3LCAxLjc4NTc2LCAyLjY2OTg4LCA0LjcyNDI2LCA1LjkxOTEzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMwNzEzNiwgMC4zMzMwODksIDAuNTYyMTg2LCAwLjk0NDcyNywgMS4zMjI1NCwgMi4yMDk3NywgMi43MTU5OSIsIFwKLSAgICAgICAgICAiMC4zMTc2ODUsIDAuMzQzNjc4LCAwLjU3Mjc4NywgMC45NTUwODUsIDEuMzMzMTYsIDIuMjIwOTIsIDIuNzI4MjQiLCBcCi0gICAgICAgICAgIjAuMzMwNzU3LCAwLjM1NjcwMywgMC41ODYwNCwgMC45NjgyMDIsIDEuMzQ2MjcsIDIuMjMzMywgMi43NDA5MSIsIFwKLSAgICAgICAgICAiMC4zNDM5NzEsIDAuMzY5ODgxLCAwLjU5ODkzOSwgMC45ODExOTQsIDEuMzU5MzQsIDIuMjQ3MjEsIDIuNzUxNyIsIFwKLSAgICAgICAgICAiMC4zNTczOTEsIDAuMzgzMjc1LCAwLjYxMjMwMiwgMC45OTQ5NCwgMS4zNzM2NywgMi4yNTg2NywgMi43Njg3OCIsIFwKLSAgICAgICAgICAiMC4zNzkxNjMsIDAuNDA1MTIsIDAuNjM0MDUxLCAxLjAxNjcxLCAxLjM5NTQsIDIuMjgwNiwgMi43OTA0MyIsIFwKLSAgICAgICAgICAiMC4zOTgyNzksIDAuNDI0MjcxLCAwLjY1MzMyNiwgMS4wMzM1OCwgMS40MTM4LCAyLjMwMTcxLCAyLjgwOTcxIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI5MTcxNywgMC4zNDEwNzgsIDAuNzk4MjEyLCAxLjU3NDg0LCAyLjM2MTI0LCA0LjE0Mjg0LCA1LjE5NzM4IiwgXAotICAgICAgICAgICIwLjI5MDU4NiwgMC4zNDA5NDYsIDAuODAwODY2LCAxLjU2NzY2LCAyLjM2MTM4LCA0LjE4MjE4LCA1LjE5NzU2IiwgXAotICAgICAgICAgICIwLjI5MDgyMSwgMC4zNDA5MzUsIDAuNzk2NTU1LCAxLjU3ODUxLCAyLjM2MTQ4LCA0LjEzODU1LCA1LjE5NzU1IiwgXAotICAgICAgICAgICIwLjI5MDQ3OSwgMC4zNDA5NDQsIDAuNzk0OTQyLCAxLjU3NzU4LCAyLjM2MTQ0LCA0LjE4MiwgNS4xOTcxNyIsIFwKLSAgICAgICAgICAiMC4yOTE1MzQsIDAuMzQyMTEyLCAwLjgwMjE0MywgMS41NzU1MywgMi4zNjE2OCwgNC4xODE2NiwgNS4xOTc2NSIsIFwKLSAgICAgICAgICAiMC4yOTA0OTYsIDAuMzQwOTMzLCAwLjgwMjQxNywgMS41NzM5OCwgMi4zNjE2NywgNC4xODE1MiwgNS4xOTc2MyIsIFwKLSAgICAgICAgICAiMC4yOTA2NDIsIDAuMzQwNzY5LCAwLjgwMjYzNSwgMS41Nzk3MywgMi4zNjEzOSwgNC4xODE3LCA1LjE0NzI3Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMxMzkwNiwgMC4zNDQxMjUsIDAuNjEyNzEsIDEuMDU4MjIsIDEuNTA0MTcsIDIuNTQ3NzEsIDMuMTQ0IiwgXAotICAgICAgICAgICIwLjMyNTUzMywgMC4zNTU4MTEsIDAuNjIzOTkxLCAxLjA3MDY1LCAxLjUxNjAzLCAyLjU1Nzk0LCAzLjE1Nzg3IiwgXAotICAgICAgICAgICIwLjMzOTczNSwgMC4zNjk5ODksIDAuNjM4NTM2LCAxLjA4NDA2LCAxLjUyOTg2LCAyLjU3MTM1LCAzLjE3MTc5IiwgXAotICAgICAgICAgICIwLjM1MzExMywgMC4zODMzOSwgMC42NTE1NzQsIDEuMDk4MjQsIDEuNTQzNjQsIDIuNTg1MDYsIDMuMTg1NTciLCBcCi0gICAgICAgICAgIjAuMzY1OTUzLCAwLjM5NjE5OCwgMC42NjQ3MzYsIDEuMTEwNDYsIDEuNTU2MDQsIDIuNTk3NTMsIDMuMTk4MzMiLCBcCi0gICAgICAgICAgIjAuMzg2MTI4LCAwLjQxNjM5MiwgMC42ODQ2NDgsIDEuMTMxMjcsIDEuNTc2NDksIDIuNjIxODYsIDMuMjE4NTMiLCBcCi0gICAgICAgICAgIjAuNDAzMzYzLCAwLjQzMzU3OSwgMC43MDIxOCwgMS4xNDc3MiwgMS41OTM2NCwgMi42MzY4LCAzLjIzMDIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzI4ODc0LCAwLjM4NzE2OCwgMC45MDYxMjUsIDEuNzg3LCAyLjY2ODA2LCA0LjcyNTQxLCA1LjkxOTE4IiwgXAotICAgICAgICAgICIwLjMzMTUxOCwgMC4zODY5MTQsIDAuOTA2MjM4LCAxLjc4Njk2LCAyLjY2Nzk5LCA0LjcyNTQyLCA1LjkxOTE0IiwgXAotICAgICAgICAgICIwLjMyOTc5LCAwLjM4NzEzMSwgMC45MDU0NzcsIDEuNzg2NjQsIDIuNjY3NjcsIDQuNzIxODMsIDUuOTE4NyIsIFwKLSAgICAgICAgICAiMC4zMzE0MDEsIDAuMzg2ODg1LCAwLjkwNTM5NywgMS43ODU1NSwgMi42Njc5NywgNC43MjIwOCwgNS45MTkxOSIsIFwKLSAgICAgICAgICAiMC4zMzA2MzYsIDAuMzg3MDA3LCAwLjkwNTY3OCwgMS43ODY3NywgMi42Njc3MSwgNC43MjM0NCwgNS45MTg5NCIsIFwKLSAgICAgICAgICAiMC4zMzAyMTMsIDAuMzg2ODksIDAuOTA2MDIsIDEuNzg3MDEsIDIuNjY4LCA0LjczMzg3LCA1LjkxODAxIiwgXAotICAgICAgICAgICIwLjMyODc2MiwgMC4zODcwMjEsIDAuOTA1NDg2LCAxLjc4NjAyLCAyLjY2ODEzLCA0LjcyMzU1LCA1LjkxMjQyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNJIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yOTA1NTQsIDAuMzE2MzUzLCAwLjU0NTA0NCwgMC45MjQ5OSwgMS4zMDU2NywgMi4xODc5NCwgMi42OTYzNiIsIFwKLSAgICAgICAgICAiMC4zMDE0MywgMC4zMjcyMDYsIDAuNTU1Nzk0LCAwLjkzNjQ0MSwgMS4zMTYzMSwgMi4yMDE5NSwgMi43MDgiLCBcCi0gICAgICAgICAgIjAuMzE1MTg4LCAwLjM0MDk2LCAwLjU2OTUzOSwgMC45NTAyMDcsIDEuMzMwMDYsIDIuMjEyNjIsIDIuNzIxNjMiLCBcCi0gICAgICAgICAgIjAuMzI4MDMyLCAwLjM1MzgyMywgMC41ODI1MDgsIDAuOTYxOTQ0LCAxLjM0MzAzLCAyLjIyNjA2LCAyLjczMzQzIiwgXAotICAgICAgICAgICIwLjM0MTc3OCwgMC4zNjc1NywgMC41OTU4NTUsIDAuOTc2ODM5LCAxLjM1Njg2LCAyLjI0MjA3LCAyLjc0ODQ4IiwgXAotICAgICAgICAgICIwLjM2Mzc3NiwgMC4zODk1NDMsIDAuNjE4MTM4LCAwLjk5ODc3NiwgMS4zNzg2OCwgMi4yNjI5MSwgMi43Njk5NiIsIFwKLSAgICAgICAgICAiMC4zODMxMTcsIDAuNDA4OTA1LCAwLjYzNzYsIDEuMDE4MTcsIDEuMzk1NCwgMi4yODUxLCAyLjc4OTYxIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI5MTk5OCwgMC4zNDEzNSwgMC43OTg4NTEsIDEuNTc4ODMsIDIuMzUwMDIsIDQuMTc5MzUsIDUuMTc0NjMiLCBcCi0gICAgICAgICAgIjAuMjkxMzE4LCAwLjM0MTM4NSwgMC43OTU4OCwgMS41NzgxOSwgMi4zNDIzMywgNC4xNzUwNiwgNS4xOTQ3MyIsIFwKLSAgICAgICAgICAiMC4yOTEyNjgsIDAuMzQxNCwgMC43OTU3NTMsIDEuNTY2MTcsIDIuMzIxODYsIDQuMTc5MzgsIDUuMTc1MSIsIFwKLSAgICAgICAgICAiMC4yOTEzMDIsIDAuMzQxMzc4LCAwLjc5OTIwNiwgMS41Nzg1OCwgMi4zNDg0MiwgNC4xNzk2NCwgNS4xNjU0OSIsIFwKLSAgICAgICAgICAiMC4yOTE0MDMsIDAuMzQxMjU1LCAwLjgwMDQ3OCwgMS41NjYyLCAyLjM1Njc4LCA0LjE3ODQ3LCA1LjE2ODE4IiwgXAotICAgICAgICAgICIwLjI5MTA2NywgMC4zNDEzMDMsIDAuODAwMjE1LCAxLjU3MTQzLCAyLjMzNDE4LCA0LjE0NDEzLCA1LjE3NjQzIiwgXAotICAgICAgICAgICIwLjI5MTQ5MywgMC4zMzk3NDMsIDAuNzk2NjQsIDEuNTY1ODUsIDIuMzU5NTMsIDQuMTY2MTcsIDUuMTYyNDgiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzA0OTczLCAwLjMzNTIyOSwgMC42MDMxNjQsIDEuMDUwMDUsIDEuNDk1MTYsIDIuNTM2ODEsIDMuMTM2MzkiLCBcCi0gICAgICAgICAgIjAuMzE1MjcsIDAuMzQ1NTYxLCAwLjYxNDAzNCwgMS4wNjA0OCwgMS41MDU3LCAyLjU1MDQsIDMuMTQ3NjIiLCBcCi0gICAgICAgICAgIjAuMzI4MjczLCAwLjM1ODUzMSwgMC42MjY0NjQsIDEuMDczMzcsIDEuNTE4NDMsIDIuNTYwMDQsIDMuMTU5OTMiLCBcCi0gICAgICAgICAgIjAuMzQxNjQ4LCAwLjM3MTkxNiwgMC42NDAxMDUsIDEuMDg2ODUsIDEuNTMxOTEsIDIuNTc3NjYsIDMuMTc0MDMiLCBcCi0gICAgICAgICAgIjAuMzU0OTYsIDAuMzg1MTcsIDAuNjUzNzQ2LCAxLjEwMDEyLCAxLjU0NTA5LCAyLjU4NjQ1LCAzLjE4NjkxIiwgXAotICAgICAgICAgICIwLjM3NjIwNSwgMC40MDY1MDIsIDAuNjc0NzMyLCAxLjEyMTQ4LCAxLjU2NjU2LCAyLjYxMjMsIDMuMjA4NiIsIFwKLSAgICAgICAgICAiMC4zOTQ4MzQsIDAuNDI1MDg0LCAwLjY5MzY0OCwgMS4xMzkyOCwgMS41ODUxMiwgMi42MjY3MSwgMy4yMjcxMyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMzEwMzgsIDAuMzg3NDYxLCAwLjkwNDgyOSwgMS43ODQ0OSwgMi42Njc2NSwgNC43MjY5MywgNS45MTE2NSIsIFwKLSAgICAgICAgICAiMC4zMzEzMjYsIDAuMzg3MzM4LCAwLjkwNTgwNiwgMS43ODU2NiwgMi42NjcsIDQuNzM1NTYsIDUuOTE0NzUiLCBcCi0gICAgICAgICAgIjAuMzMxMDIxLCAwLjM4NzQ4MSwgMC45MDQ3OTEsIDEuNzg0MTMsIDIuNjY3NzIsIDQuNzMwMSwgNS45MTI2NiIsIFwKLSAgICAgICAgICAiMC4zMzEwNzksIDAuMzg3NDY0LCAwLjkwNTU0NCwgMS43ODU3NCwgMi42Njc1NywgNC43Mjc4MywgNS45MTQ3OCIsIFwKLSAgICAgICAgICAiMC4zMzA0MzMsIDAuMzg3MzgxLCAwLjkwNDIwNCwgMS43ODU3MSwgMi42Njc3NywgNC43Mjg0NCwgNS45MTM3MyIsIFwKLSAgICAgICAgICAiMC4zMzEzNTksIDAuMzg3NDI2LCAwLjkwNTU1MSwgMS43ODU3LCAyLjY2ODcyLCA0LjcyODE2LCA1LjkxNDY4IiwgXAotICAgICAgICAgICIwLjMzMDAzNCwgMC4zODU5NzMsIDAuOTA0NDM0LCAxLjc4NTk4LCAyLjY2OTQyLCA0LjcyNjUyLCA1LjkxNDUzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxMzY1LCAwLjAwMTM2NiwgMC4wMDEzNzEsIDAuMDAxMzczLCAwLjAwMTM3NCwgMC4wMDEzNzQsIDAuMDAxMzc0IiwgXAotICAgICAgICAgICIwLjAwMTM1NSwgMC4wMDEzNTcsIDAuMDAxMzYxLCAwLjAwMTM2MywgMC4wMDEzNjQsIDAuMDAxMzY1LCAwLjAwMTM2NSIsIFwKLSAgICAgICAgICAiMC4wMDEzNTEsIDAuMDAxMzUyLCAwLjAwMTM1NywgMC4wMDEzNTksIDAuMDAxMzYsIDAuMDAxMzYsIDAuMDAxMzYiLCBcCi0gICAgICAgICAgIjAuMDAxMzQ4LCAwLjAwMTM0OSwgMC4wMDEzNTQsIDAuMDAxMzU2LCAwLjAwMTM1NywgMC4wMDEzNTcsIDAuMDAxMzU4IiwgXAotICAgICAgICAgICIwLjAwMTM0NiwgMC4wMDEzNDcsIDAuMDAxMzUyLCAwLjAwMTM1NCwgMC4wMDEzNTUsIDAuMDAxMzU1LCAwLjAwMTM1NSIsIFwKLSAgICAgICAgICAiMC4wMDEzNDMsIDAuMDAxMzQ0LCAwLjAwMTM0OSwgMC4wMDEzNTEsIDAuMDAxMzUyLCAwLjAwMTM1MywgMC4wMDEzNTMiLCBcCi0gICAgICAgICAgIjAuMDAxMzQyLCAwLjAwMTM0MywgMC4wMDEzNDgsIDAuMDAxMzUsIDAuMDAxMzUxLCAwLjAwMTM1MiwgMC4wMDEzNTEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI0OTYsIDAuMDAyNDk3LCAwLjAwMjUwMSwgMC4wMDI1MDMsIDAuMDAyNTA0LCAwLjAwMjUwNCwgMC4wMDI1MDQiLCBcCi0gICAgICAgICAgIjAuMDAyNDk0LCAwLjAwMjQ5NSwgMC4wMDI0OTksIDAuMDAyNTAxLCAwLjAwMjUwMiwgMC4wMDI1MDIsIDAuMDAyNTAyIiwgXAotICAgICAgICAgICIwLjAwMjQ5MiwgMC4wMDI0OTQsIDAuMDAyNDk4LCAwLjAwMjUsIDAuMDAyNSwgMC4wMDI1MDEsIDAuMDAyNTAxIiwgXAotICAgICAgICAgICIwLjAwMjQ5MSwgMC4wMDI0OTIsIDAuMDAyNDk3LCAwLjAwMjQ5OSwgMC4wMDI0OTksIDAuMDAyNSwgMC4wMDI1IiwgXAotICAgICAgICAgICIwLjAwMjQ5LCAwLjAwMjQ5MSwgMC4wMDI0OTYsIDAuMDAyNDk4LCAwLjAwMjQ5OCwgMC4wMDI0OTksIDAuMDAyNDk5IiwgXAotICAgICAgICAgICIwLjAwMjQ4OCwgMC4wMDI0ODksIDAuMDAyNDk0LCAwLjAwMjQ5NiwgMC4wMDI0OTcsIDAuMDAyNDk3LCAwLjAwMjQ5NyIsIFwKLSAgICAgICAgICAiMC4wMDI0ODYsIDAuMDAyNDg4LCAwLjAwMjQ5MywgMC4wMDI0OTUsIDAuMDAyNDk1LCAwLjAwMjQ5NiwgMC4wMDI0OTYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDE0NCwgMC4wMDE0NDEsIDAuMDAxNDQ2LCAwLjAwMTQ0NywgMC4wMDE0NDgsIDAuMDAxNDQ4LCAwLjAwMTQ0OSIsIFwKLSAgICAgICAgICAiMC4wMDE0MzUsIDAuMDAxNDM3LCAwLjAwMTQ0MSwgMC4wMDE0NDMsIDAuMDAxNDQzLCAwLjAwMTQ0NCwgMC4wMDE0NDQiLCBcCi0gICAgICAgICAgIjAuMDAxNDI5LCAwLjAwMTQzLCAwLjAwMTQzNCwgMC4wMDE0MzYsIDAuMDAxNDM3LCAwLjAwMTQzNywgMC4wMDE0MzciLCBcCi0gICAgICAgICAgIjAuMDAxNDIzLCAwLjAwMTQyNCwgMC4wMDE0MjksIDAuMDAxNDMsIDAuMDAxNDMxLCAwLjAwMTQzMSwgMC4wMDE0MzIiLCBcCi0gICAgICAgICAgIjAuMDAxNDE4LCAwLjAwMTQxOSwgMC4wMDE0MjQsIDAuMDAxNDI2LCAwLjAwMTQyNywgMC4wMDE0MjcsIDAuMDAxNDI3IiwgXAotICAgICAgICAgICIwLjAwMTQxMiwgMC4wMDE0MTMsIDAuMDAxNDE4LCAwLjAwMTQyLCAwLjAwMTQyMSwgMC4wMDE0MjEsIDAuMDAxNDIyIiwgXAotICAgICAgICAgICIwLjAwMTQwOCwgMC4wMDE0MSwgMC4wMDE0MTUsIDAuMDAxNDE3LCAwLjAwMTQxNywgMC4wMDE0MTgsIDAuMDAxNDE4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyNDg2LCAwLjAwMjQ4NywgMC4wMDI0OTEsIDAuMDAyNDkzLCAwLjAwMjQ5NCwgMC4wMDI0OTUsIDAuMDAyNDk1IiwgXAotICAgICAgICAgICIwLjAwMjQ4NiwgMC4wMDI0ODcsIDAuMDAyNDkxLCAwLjAwMjQ5MywgMC4wMDI0OTQsIDAuMDAyNDk0LCAwLjAwMjQ5NSIsIFwKLSAgICAgICAgICAiMC4wMDI0ODMsIDAuMDAyNDg0LCAwLjAwMjQ4OSwgMC4wMDI0OSwgMC4wMDI0OTEsIDAuMDAyNDkyLCAwLjAwMjQ5MiIsIFwKLSAgICAgICAgICAiMC4wMDI0NzksIDAuMDAyNDgxLCAwLjAwMjQ4NSwgMC4wMDI0ODcsIDAuMDAyNDg4LCAwLjAwMjQ4OCwgMC4wMDI0ODkiLCBcCi0gICAgICAgICAgIjAuMDAyNDc1LCAwLjAwMjQ3NywgMC4wMDI0ODEsIDAuMDAyNDgzLCAwLjAwMjQ4NCwgMC4wMDI0ODUsIDAuMDAyNDg1IiwgXAotICAgICAgICAgICIwLjAwMjQ2OSwgMC4wMDI0NzEsIDAuMDAyNDc2LCAwLjAwMjQ3OCwgMC4wMDI0NzgsIDAuMDAyNDc5LCAwLjAwMjQ3OSIsIFwKLSAgICAgICAgICAiMC4wMDI0NjUsIDAuMDAyNDY2LCAwLjAwMjQ3MSwgMC4wMDI0NzMsIDAuMDAyNDc0LCAwLjAwMjQ3NSwgMC4wMDI0NzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxNDMzLCAwLjAwMTQzNSwgMC4wMDE0MzksIDAuMDAxNDQxLCAwLjAwMTQ0MiwgMC4wMDE0NDIsIDAuMDAxNDQzIiwgXAotICAgICAgICAgICIwLjAwMTQzMywgMC4wMDE0MzQsIDAuMDAxNDM4LCAwLjAwMTQ0LCAwLjAwMTQ0MSwgMC4wMDE0NDEsIDAuMDAxNDQzIiwgXAotICAgICAgICAgICIwLjAwMTQyOSwgMC4wMDE0MywgMC4wMDE0MzQsIDAuMDAxNDM2LCAwLjAwMTQzNywgMC4wMDE0MzgsIDAuMDAxNDM4IiwgXAotICAgICAgICAgICIwLjAwMTQyNCwgMC4wMDE0MjUsIDAuMDAxNDMsIDAuMDAxNDMyLCAwLjAwMTQzMiwgMC4wMDE0MzMsIDAuMDAxNDMzIiwgXAotICAgICAgICAgICIwLjAwMTQxOSwgMC4wMDE0MjEsIDAuMDAxNDI2LCAwLjAwMTQyNywgMC4wMDE0MjgsIDAuMDAxNDI5LCAwLjAwMTQyOSIsIFwKLSAgICAgICAgICAiMC4wMDE0MTMsIDAuMDAxNDE0LCAwLjAwMTQxOSwgMC4wMDE0MjEsIDAuMDAxNDIyLCAwLjAwMTQyMywgMC4wMDE0MjMiLCBcCi0gICAgICAgICAgIjAuMDAxNDA4LCAwLjAwMTQxLCAwLjAwMTQxNSwgMC4wMDE0MTcsIDAuMDAxNDE4LCAwLjAwMTQxOCwgMC4wMDE0MTkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDIyNTgsIDAuMDAyMjYsIDAuMDAyMjY0LCAwLjAwMjI2NiwgMC4wMDIyNjcsIDAuMDAyMjY3LCAwLjAwMjI2NyIsIFwKLSAgICAgICAgICAiMC4wMDIyNTksIDAuMDAyMjYsIDAuMDAyMjY1LCAwLjAwMjI2NiwgMC4wMDIyNjcsIDAuMDAyMjY4LCAwLjAwMjI2OCIsIFwKLSAgICAgICAgICAiMC4wMDIyNTYsIDAuMDAyMjU4LCAwLjAwMjI2MiwgMC4wMDIyNjQsIDAuMDAyMjY1LCAwLjAwMjI2NSwgMC4wMDIyNjYiLCBcCi0gICAgICAgICAgIjAuMDAyMjUzLCAwLjAwMjI1NSwgMC4wMDIyNiwgMC4wMDIyNjIsIDAuMDAyMjYyLCAwLjAwMjI2MywgMC4wMDIyNjMiLCBcCi0gICAgICAgICAgIjAuMDAyMjUsIDAuMDAyMjUxLCAwLjAwMjI1NiwgMC4wMDIyNTksIDAuMDAyMjU5LCAwLjAwMjI2LCAwLjAwMjI2IiwgXAotICAgICAgICAgICIwLjAwMjI0NSwgMC4wMDIyNDcsIDAuMDAyMjUyLCAwLjAwMjI1NSwgMC4wMDIyNTUsIDAuMDAyMjU2LCAwLjAwMjI1NiIsIFwKLSAgICAgICAgICAiMC4wMDIyNDIsIDAuMDAyMjQzLCAwLjAwMjI0OSwgMC4wMDIyNTIsIDAuMDAyMjUzLCAwLjAwMjI1MywgMC4wMDIyNTQiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFMpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4wNjc5OTgxOwotICAgIGZ1bmN0aW9uIDogIigoQV5CKV5DSSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMzMjkzMywgMC4zNTg4MjMsIDAuNTg4NTE3LCAwLjk2ODk4MSwgMS4zNDg2NywgMi4yMzM3MiwgMi43MzkwNiIsIFwKLSAgICAgICAgICAiMC4zNDQyMiwgMC4zNzAxMTcsIDAuNTk5Nzk5LCAwLjk4MDI3MiwgMS4zNTk5MiwgMi4yNDQ5NiwgMi43NTAzNCIsIFwKLSAgICAgICAgICAiMC4zNTczOTgsIDAuMzgzMzAxLCAwLjYxMjk3LCAwLjk5MzQ3MSwgMS4zNzMwOCwgMi4yNTgwOSwgMi43NjM1IiwgXAotICAgICAgICAgICIwLjM2OTcwMiwgMC4zOTU2LCAwLjYyNTI3OSwgMS4wMDU3OSwgMS4zODUzOCwgMi4yNzAzOSwgMi43NzU4MyIsIFwKLSAgICAgICAgICAiMC4zODE5OTEsIDAuNDA3ODkxLCAwLjYzNzU2MywgMS4wMTgwMiwgMS4zOTc2OCwgMi4yODI3LCAyLjc4ODA5IiwgXAotICAgICAgICAgICIwLjQwMTA3OCwgMC40MjcwMDQsIDAuNjU2NzE0LCAxLjAzNzE5LCAxLjQxNjg1LCAyLjMwMTc5LCAyLjgwNzIiLCBcCi0gICAgICAgICAgIjAuNDE3ODMzLCAwLjQ0Mzc1MiwgMC42NzM0NTcsIDEuMDUzOTQsIDEuNDMzNiwgMi4zMTg1NSwgMi44MjQiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjg3NjkzLCAwLjMzNzI3NCwgMC43OTE3NDksIDEuNTYxNTgsIDIuMzI3NDksIDQuMTIxNzUsIDUuMTQzMSIsIFwKLSAgICAgICAgICAiMC4yODc2NzksIDAuMzM3MjUsIDAuNzkxNDkxLCAxLjU1OTAxLCAyLjMyNzEyLCA0LjExNzk5LCA1LjE0MzEiLCBcCi0gICAgICAgICAgIjAuMjg3Njc4LCAwLjMzNzI0MSwgMC43OTIyMDQsIDEuNTU4MDcsIDIuMzI2ODksIDQuMTIxMzgsIDUuMTQzMDkiLCBcCi0gICAgICAgICAgIjAuMjg3NjYxLCAwLjMzNzIzMSwgMC43OTIxOTcsIDEuNTYxNSwgMi4zMjY4MywgNC4xMjA5MiwgNS4xNDI5NyIsIFwKLSAgICAgICAgICAiMC4yODc2NjksIDAuMzM3MjMsIDAuNzkyMTUxLCAxLjU1ODgxLCAyLjMyNzAxLCA0LjEyMTM4LCA1LjE0MzIyIiwgXAotICAgICAgICAgICIwLjI4NzU3OSwgMC4zMzcyNjgsIDAuNzkxNDkyLCAxLjU2MTM0LCAyLjMyNjk4LCA0LjEyMDcxLCA1LjE0MzY1IiwgXAotICAgICAgICAgICIwLjI4NzU5OSwgMC4zMzcwMDIsIDAuNzkxNDY5LCAxLjU2MTM2LCAyLjMyNzA0LCA0LjEyMTMyLCA1LjE0NTg3Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMzMjc3NCwgMC4zNjI5ODcsIDAuNjMyMTUsIDEuMDc4ODksIDEuNTI0OTUsIDIuNTY1MywgMy4xNTk1OCIsIFwKLSAgICAgICAgICAiMC4zNDQwNjgsIDAuMzc0MjMyLCAwLjY0MzQwMSwgMS4wOTAwOCwgMS41MzYyLCAyLjU3NjU2LCAzLjE3MDgyIiwgXAotICAgICAgICAgICIwLjM1NjgwNywgMC4zODcwMjgsIDAuNjU2MTgyLCAxLjEwMjksIDEuNTQ4OTgsIDIuNTg5MzIsIDMuMTgzNjIiLCBcCi0gICAgICAgICAgIjAuMzY4NTEyLCAwLjM5ODczNywgMC42Njc4OTgsIDEuMTE0NjQsIDEuNTYwNjksIDIuNjAxMDQsIDMuMTk1MzMiLCBcCi0gICAgICAgICAgIjAuMzc5NzQ0LCAwLjQwOTk0MiwgMC42NzkxMTEsIDEuMTI1ODksIDEuNTcxOTEsIDIuNjEyMjYsIDMuMjA2NTQiLCBcCi0gICAgICAgICAgIjAuMzk3MDg5LCAwLjQyNzMxNCwgMC42OTY0NjgsIDEuMTQzMTQsIDEuNTg5NDYsIDIuNjI5ODksIDMuMjIzOSIsIFwKLSAgICAgICAgICAiMC40MTE4OTIsIDAuNDQyMTEzLCAwLjcxMTIxOCwgMS4xNTc5NCwgMS42MDQwOCwgMi42NDQzNywgMy4yMzg2NyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMjYwNzEsIDAuMzgzNCwgMC45MDczNSwgMS43ODkzMSwgMi42Njk0NywgNC43Mjc4MiwgNS44OTczMyIsIFwKLSAgICAgICAgICAiMC4zMjU3NDUsIDAuMzgzMjE2LCAwLjkwNjk4MSwgMS43ODc1NywgMi42Njk3MywgNC43Mjc0LCA1Ljg5NzQ0IiwgXAotICAgICAgICAgICIwLjMyNTcxNiwgMC4zODMzMDYsIDAuOTA2OTQ1LCAxLjc4OTAxLCAyLjY2OTMzLCA0LjcyODMsIDUuODk3MjciLCBcCi0gICAgICAgICAgIjAuMzI1NjYyLCAwLjM4MzM2NiwgMC45MDcxNDYsIDEuNzg4ODQsIDIuNjY4OTEsIDQuNzI4MTgsIDUuODk3MjkiLCBcCi0gICAgICAgICAgIjAuMzI1NzEsIDAuMzgzMjEsIDAuOTA3NDI0LCAxLjc4ODYxLCAyLjY2OTQxLCA0LjcyNzk0LCA1Ljg5NzMxIiwgXAotICAgICAgICAgICIwLjMyNTYyNiwgMC4zODMxMTMsIDAuOTA1ODk1LCAxLjc4OTc0LCAyLjY2NjUyLCA0LjcyNjM2LCA1Ljg5NzEzIiwgXAotICAgICAgICAgICIwLjMyNTY1NSwgMC4zODI4MTcsIDAuOTA3OTMxLCAxLjc4OTIyLCAyLjY3MjYxLCA0LjcyNzUsIDUuODk3MzgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzc5MTMyLCAwLjQwNDQzMiwgMC42MzIwNCwgMS4wMTA5MSwgMS4zODk3OCwgMi4yNzM1NywgMi43Nzg2IiwgXAotICAgICAgICAgICIwLjM5MDgyNiwgMC40MTYxMjksIDAuNjQzNzM0LCAxLjAyMjYsIDEuNDAxNDYsIDIuMjg1MjcsIDIuNzkwMyIsIFwKLSAgICAgICAgICAiMC40MDUyNzMsIDAuNDMwNTcxLCAwLjY1ODE3OSwgMS4wMzcwNCwgMS40MTU4NiwgMi4yOTk3LCAyLjgwNDc0IiwgXAotICAgICAgICAgICIwLjQxODU4NywgMC40NDM5MTcsIDAuNjcxNDU2LCAxLjA1MDQ1LCAxLjQyOTI2LCAyLjMxMzA4LCAyLjgxODA3IiwgXAotICAgICAgICAgICIwLjQzMTU5NCwgMC40NTY5MzIsIDAuNjg0NTA2LCAxLjA2MzQxLCAxLjQ0MjI1LCAyLjMyNjA4LCAyLjgzMTIxIiwgXAotICAgICAgICAgICIwLjQ1MTg2NywgMC40NzcxODEsIDAuNzA0Nzc1LCAxLjA4MzY1LCAxLjQ2MjUsIDIuMzQ2MzMsIDIuODUxMzQiLCBcCi0gICAgICAgICAgIjAuNDY5MjcxLCAwLjQ5NDU4NiwgMC43MjIxODEsIDEuMTAxMDUsIDEuNDc5OTEsIDIuMzYzNzUsIDIuODY4NzMiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjc4NDIyLCAwLjMyODIwOSwgMC43ODQ0MzEsIDEuNTUyOTEsIDIuMzI1MDUsIDQuMTE0NjksIDUuMTQwMjUiLCBcCi0gICAgICAgICAgIjAuMjc4Mzg5LCAwLjMyODE1OCwgMC43ODQ0MzgsIDEuNTUyOSwgMi4zMjQxNCwgNC4xMTQ2OCwgNS4xNDAyNiIsIFwKLSAgICAgICAgICAiMC4yNzg0MjMsIDAuMzI4MjAyLCAwLjc4NDQyOCwgMS41NTI5NiwgMi4zMjQ1MiwgNC4xMjA0NCwgNS4xNDAyOCIsIFwKLSAgICAgICAgICAiMC4yNzg0MzcsIDAuMzI4MTg1LCAwLjc4NTc1OCwgMS41NTUzNywgMi4zMjQ0NSwgNC4xMjA1NCwgNS4xNDAxOCIsIFwKLSAgICAgICAgICAiMC4yNzg0MDMsIDAuMzI4MTgzLCAwLjc4NjQ3NSwgMS41NTUzNywgMi4zMjQ0NSwgNC4xMjA0OSwgNS4xNDA3OCIsIFwKLSAgICAgICAgICAiMC4yNzgzODYsIDAuMzI4MTc2LCAwLjc4NDM3LCAxLjU1Mjk1LCAyLjMyNDQ4LCA0LjExNDQsIDUuMTQwMjUiLCBcCi0gICAgICAgICAgIjAuMjc4Mzg2LCAwLjMyODQzMSwgMC43ODY0ODYsIDEuNTUyOTMsIDIuMzIxMzQsIDQuMTIwMzcsIDUuMTQxMDkiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuNDEzNzc2LCAwLjQ0MzU0OCwgMC43MTA4OTMsIDEuMTU2NCwgMS42MDE5LCAyLjY0MTQyLCAzLjIzNTQ1IiwgXAotICAgICAgICAgICIwLjQyNTM0NSwgMC40NTUxMjUsIDAuNzIyNDc4LCAxLjE2Nzk3LCAxLjYxMzQ5LCAyLjY1MzAzLCAzLjI0NyIsIFwKLSAgICAgICAgICAiMC40MzkyMTIsIDAuNDY4OTkxLCAwLjczNjMwNiwgMS4xODE4MywgMS42MjczNSwgMi42NjY5LCAzLjI2MDY3IiwgXAotICAgICAgICAgICIwLjQ1MjkyNSwgMC40ODI3MDIsIDAuNzUwMDExLCAxLjE5NTU4LCAxLjY0MTA4LCAyLjY4MDU2LCAzLjI3NDM5IiwgXAotICAgICAgICAgICIwLjQ2Njc3MywgMC40OTY1NDgsIDAuNzYzODYsIDEuMjA5MzksIDEuNjU0OTIsIDIuNjk0NDYsIDMuMjg4MzUiLCBcCi0gICAgICAgICAgIjAuNDg4NDY4LCAwLjUxODI0NCwgMC43ODU1NTIsIDEuMjMxMSwgMS42NzY1NCwgMi43MTYwOSwgMy4zMTAxNCIsIFwKLSAgICAgICAgICAiMC41MDgxMDMsIDAuNTM3ODc2LCAwLjgwNTE0MSwgMS4yNTA3MSwgMS42OTYyNCwgMi43MzU4LCAzLjMyOTc5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMxOTg2NiwgMC4zNzY2LCAwLjg5OTg0NCwgMS43Nzk4OCwgMi42NjI2NiwgNC43MTk4MiwgNS44OTM3OSIsIFwKLSAgICAgICAgICAiMC4zMTk0MDgsIDAuMzc2NjE0LCAwLjg5OTU0OCwgMS43Nzk3NSwgMi42NjIxMSwgNC43MTk5MywgNS44OTM3NyIsIFwKLSAgICAgICAgICAiMC4zMTkzOTgsIDAuMzc2NjA3LCAwLjg5OTQ5NCwgMS43Nzk3NywgMi42NjIxMiwgNC43MTk5NSwgNS44OTMyNSIsIFwKLSAgICAgICAgICAiMC4zMTk0MjMsIDAuMzc2NjE3LCAwLjg5OTc1NywgMS43ODAzMSwgMi42NjIxNSwgNC43MjAyNiwgNS44OTI3OSIsIFwKLSAgICAgICAgICAiMC4zMTk0MjYsIDAuMzc2NjIxLCAwLjg5OTcwNCwgMS43Nzk5OSwgMi42NjIxMiwgNC43MTk5OSwgNS44OTI0MSIsIFwKLSAgICAgICAgICAiMC4zMTk0MjksIDAuMzc2NjI5LCAwLjg5OTQyLCAxLjc3OTg5LCAyLjY2MTc3LCA0LjcxOTg3LCA1Ljg5Mzc5IiwgXAotICAgICAgICAgICIwLjMxOTM5NCwgMC4zNzY2MTksIDAuODk5NzE1LCAxLjc4MDcxLCAyLjY2MjEzLCA0LjcyMDE1LCA1Ljg5MzgxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMyODQ1LCAwLjM1NDMyNSwgMC41ODQwMywgMC45NjQ0OTgsIDEuMzQ0MjEsIDIuMjI5MiwgMi43MzQ2OSIsIFwKLSAgICAgICAgICAiMC4zMzg3MjQsIDAuMzY0NjE0LCAwLjU5NDMyMiwgMC45NzQ3OTEsIDEuMzU0NSwgMi4yMzk0OSwgMi43NDUyNCIsIFwKLSAgICAgICAgICAiMC4zNTEzNjEsIDAuMzc3MjcxLCAwLjYwNzAyMiwgMC45ODc0NTYsIDEuMzY3MTcsIDIuMjUyMTYsIDIuNzU3NjgiLCBcCi0gICAgICAgICAgIjAuMzY0MTY3LCAwLjM5MDA4OSwgMC42MTk4NDQsIDEuMDAwMjgsIDEuMzc5OTksIDIuMjY0OTgsIDIuNzcwNzUiLCBcCi0gICAgICAgICAgIjAuMzc3MjU1LCAwLjQwMzExLCAwLjYzMjg2MSwgMS4wMTMzLCAxLjM5MywgMi4yNzgwOCwgMi43ODM0OCIsIFwKLSAgICAgICAgICAiMC4zOTgxNjIsIDAuNDIzOTkxLCAwLjY1Mzc0MywgMS4wMzQyNCwgMS40MTM5OSwgMi4yOTg5MiwgMi44MDQ0IiwgXAotICAgICAgICAgICIwLjQxNjM4OCwgMC40NDIyOTEsIDAuNjcyMDI0LCAxLjA1MjU0LCAxLjQzMjIxLCAyLjMxNzI3LCAyLjgyMjY0Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI4NzcyNiwgMC4zMzczMiwgMC43OTEyMTEsIDEuNTYxNjIsIDIuMzI0ODMsIDQuMTE2MTksIDUuMTQwMDEiLCBcCi0gICAgICAgICAgIjAuMjg3NjczLCAwLjMzNzMxMiwgMC43OTE4OTgsIDEuNTYxNiwgMi4zMjcxNCwgNC4xMTYyNSwgNS4xNDAzMSIsIFwKLSAgICAgICAgICAiMC4yODc3NzEsIDAuMzM3Mjg1LCAwLjc5MTY3OCwgMS41NjE1OCwgMi4zMjc3LCA0LjEyMTIxLCA1LjE0NjMzIiwgXAotICAgICAgICAgICIwLjI4NzczNCwgMC4zMzcyMzIsIDAuNzkxNjg1LCAxLjU2MTU5LCAyLjMyNzk5LCA0LjEyMTU3LCA1LjE0MTgiLCBcCi0gICAgICAgICAgIjAuMjg3NjU5LCAwLjMzNzE3MSwgMC43OTM0ODcsIDEuNTYxNDksIDIuMzI3MjgsIDQuMTE4NCwgNS4xNDAzIiwgXAotICAgICAgICAgICIwLjI4NzU2MiwgMC4zMzcwODcsIDAuNzkzMDQzLCAxLjU2MTUyLCAyLjMzMTI1LCA0LjEyNjc0LCA1LjE0MzA3IiwgXAotICAgICAgICAgICIwLjI4NzU3OSwgMC4zMzcxNTEsIDAuNzkxNzQ2LCAxLjU2MTcxLCAyLjMyNzc0LCA0LjEyMDUsIDUuMTQzMTMiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzI1OTA2LCAwLjM1NjEyOSwgMC42MjUzMjYsIDEuMDcyMTUsIDEuNTE4MTYsIDIuNTU4NTUsIDMuMTUyODMiLCBcCi0gICAgICAgICAgIjAuMzM2MTU2LCAwLjM2NjMyMSwgMC42MzU1MzksIDEuMDgyMjYsIDEuNTI4MzksIDIuNTY4NzMsIDMuMTYzMTgiLCBcCi0gICAgICAgICAgIjAuMzQ4NDk2LCAwLjM3ODcyNSwgMC42NDc5MTQsIDEuMDk0NjcsIDEuNTQwNzUsIDIuNTgxMTIsIDMuMTc1NDIiLCBcCi0gICAgICAgICAgIjAuMzYwMzE1LCAwLjM5MDUzOCwgMC42NTk2OCwgMS4xMDY0MSwgMS41NTI1NiwgMi41OTI5MSwgMy4xODcyMiIsIFwKLSAgICAgICAgICAiMC4zNzIwMjMsIDAuNDAyMjQ2LCAwLjY3MTM3NywgMS4xMTgxMiwgMS41NjQyOCwgMi42MDQ2LCAzLjE5ODkxIiwgXAotICAgICAgICAgICIwLjM5MDgwNCwgMC40MjA5ODIsIDAuNjkwMjQsIDEuMTM3LCAxLjU4MzA1LCAyLjYyMzQxLCAzLjIxNzc1IiwgXAotICAgICAgICAgICIwLjQwNzIzOCwgMC40Mzc0MTcsIDAuNzA2NjgxLCAxLjE1MzQ4LCAxLjU5OTUsIDIuNjM5ODYsIDMuMjM0MjEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzI1OTM4LCAwLjM4MzE5MSwgMC45MDc0NTksIDEuNzg0OTYsIDIuNjY5NTcsIDQuNzI3OSwgNS44OTc1MiIsIFwKLSAgICAgICAgICAiMC4zMjU3MDgsIDAuMzgyOTM2LCAwLjkwNjEwNiwgMS43ODkxNywgMi42NzAyMSwgNC43Mjg1LCA1Ljg5NzI0IiwgXAotICAgICAgICAgICIwLjMyNTYzNiwgMC4zODMyOTcsIDAuOTA3MDU1LCAxLjc4ODc2LCAyLjY2OTEsIDQuNzI3ODgsIDUuODk3MjMiLCBcCi0gICAgICAgICAgIjAuMzI1OTg1LCAwLjM4Mjk5MiwgMC45MDgyMTUsIDEuNzg5NzIsIDIuNjY5MjUsIDQuNzI4NDYsIDUuODk3NSIsIFwKLSAgICAgICAgICAiMC4zMjU3NDQsIDAuMzgyODg2LCAwLjkwODAwMywgMS43ODk2LCAyLjY3MzAyLCA0LjcyNzY0LCA1Ljg5NzUiLCBcCi0gICAgICAgICAgIjAuMzI1Njc3LCAwLjM4MzE2NywgMC45MDY2MjQsIDEuNzg4MzYsIDIuNjcwMTcsIDQuNzI4MDYsIDUuODk3OSIsIFwKLSAgICAgICAgICAiMC4zMjU2MzksIDAuMzgzMTI4LCAwLjkwNjM2MSwgMS43ODUxNSwgMi42NzAxOSwgNC43MjgwNSwgNS44OTc5MSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zODU2NDUsIDAuNDExMDQ3LCAwLjYzOTE5MiwgMS4wMTg0MSwgMS4zOTc0NSwgMi4yODE1MywgMi43ODY2MyIsIFwKLSAgICAgICAgICAiMC4zOTczODQsIDAuNDIyODE0LCAwLjY1MDg1NiwgMS4wMzAxNiwgMS40MDkyMSwgMi4yOTMzMSwgMi43OTg0IiwgXAotICAgICAgICAgICIwLjQxMTY5NCwgMC40MzcxMTEsIDAuNjY1MjQyLCAxLjA0NDQ3LCAxLjQyMzUxLCAyLjMwNzYsIDIuODEyNzkiLCBcCi0gICAgICAgICAgIjAuNDI1MDQ0LCAwLjQ1MDQ3MSwgMC42Nzg1MTUsIDEuMDU3ODMsIDEuNDM2ODcsIDIuMzIwOTYsIDIuODI2MDYiLCBcCi0gICAgICAgICAgIjAuNDM3NzMxLCAwLjQ2MzE2NCwgMC42OTEyNzgsIDEuMDcwNTIsIDEuNDQ5NTUsIDIuMzMzNjQsIDIuODM4NzQiLCBcCi0gICAgICAgICAgIjAuNDU3NjYzLCAwLjQ4MzA5NCwgMC43MTExNDcsIDEuMDkwNDUsIDEuNDY5NDksIDIuMzUzNzEsIDIuODU4NyIsIFwKLSAgICAgICAgICAiMC40NzQ2NjUsIDAuNTAwMDY4LCAwLjcyODIxNCwgMS4xMDc0NCwgMS40ODY0OCwgMi4zNzA1NywgMi44NzU2NyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yNzg0NDIsIDAuMzI4OTYzLCAwLjc4NTgzNCwgMS41NTU2NCwgMi4zMjQ0NSwgNC4xMjA1NCwgNS4xNDAyMSIsIFwKLSAgICAgICAgICAiMC4yNzgzNjYsIDAuMzI4OTMzLCAwLjc4NzM0NSwgMS41NTYyNiwgMi4zMjQ0NSwgNC4xMjA1NCwgNS4xNDE5NiIsIFwKLSAgICAgICAgICAiMC4yNzg0NjUsIDAuMzI4ODgsIDAuNzg1NjQzLCAxLjU1NTY1LCAyLjMyMjUzLCA0LjEyMDM5LCA1LjE0MTY5IiwgXAotICAgICAgICAgICIwLjI3ODM2OSwgMC4zMjg5MzQsIDAuNzg3MzM3LCAxLjU1NjI0LCAyLjMyNDUxLCA0LjExOTk2LCA1LjE0MjAzIiwgXAotICAgICAgICAgICIwLjI3ODQ1MywgMC4zMjg5MjMsIDAuNzg3NjU3LCAxLjU1NTc1LCAyLjMyMjU4LCA0LjEyMDM3LCA1LjE0MTk5IiwgXAotICAgICAgICAgICIwLjI3ODYxOSwgMC4zMjg5MiwgMC43ODc0MzgsIDEuNTU2MywgMi4zMjQ0NSwgNC4xMjExNiwgNS4xNDE4MiIsIFwKLSAgICAgICAgICAiMC4yNzg0NDksIDAuMzI4OTY5LCAwLjc4NTQ3NywgMS41NTU2NywgMi4zMjQ1MiwgNC4xMjA0OSwgNS4xMzg2NSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC40MTA4MTEsIDAuNDQwNTc1LCAwLjcwNzg0OSwgMS4xNTM0NiwgMS41OTg5MiwgMi42MzgzMywgMy4yMzI0MiIsIFwKLSAgICAgICAgICAiMC40MjE0MjEsIDAuNDUxMTk3LCAwLjcxODU0NywgMS4xNjQwNSwgMS42MDk1NiwgMi42NDkxLCAzLjI0MzEzIiwgXAotICAgICAgICAgICIwLjQzNDQ0NywgMC40NjQyMjIsIDAuNzMxNTEsIDEuMTc3MDgsIDEuNjIyNTksIDIuNjYxOTYsIDMuMjU2MTMiLCBcCi0gICAgICAgICAgIjAuNDQ3NjU1LCAwLjQ3NzQyLCAwLjc0NDc3MywgMS4xOTAyNiwgMS42MzU3OCwgMi42NzUzMiwgMy4yNjkyIiwgXAotICAgICAgICAgICIwLjQ2MTA2MywgMC40OTA4MywgMC43NTgxNDgsIDEuMjAzNzEsIDEuNjQ5MjQsIDIuNjg4NjEsIDMuMjgyODIiLCBcCi0gICAgICAgICAgIjAuNDgyODYyLCAwLjUxMjYzMiwgMC43Nzk5NSwgMS4yMjU1MSwgMS42NzEwNCwgMi43MTA0MiwgMy4zMDQ2MiIsIFwKLSAgICAgICAgICAiMC41MDIwNjMsIDAuNTMxODM5LCAwLjc5OTE5NywgMS4yNDQ3MSwgMS42OTAyLCAyLjcyOTc0LCAzLjMyMzcxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMxOTM4OCwgMC4zNzY0NiwgMC45MDA0NjgsIDEuNzgwNzksIDIuNjYzMzQsIDQuNzE5MzcsIDUuODkzNzYiLCBcCi0gICAgICAgICAgIjAuMzE5MTg0LCAwLjM3NjQxOCwgMC45MDA0MjMsIDEuNzgwMDksIDIuNjYzNDQsIDQuNzE5OTEsIDUuODkzODQiLCBcCi0gICAgICAgICAgIjAuMzE5MTk3LCAwLjM3NjQ0MiwgMC45MDAzMDIsIDEuNzgxNTUsIDIuNjYyMTIsIDQuNzE4NjEsIDUuODk0NyIsIFwKLSAgICAgICAgICAiMC4zMTkzMDYsIDAuMzc2NDI0LCAwLjkwMDMwNiwgMS43ODEzNSwgMi42NjIxMSwgNC43MjAzMywgNS44OTQxMSIsIFwKLSAgICAgICAgICAiMC4zMTkzOTksIDAuMzc3MTEyLCAwLjkwMDc1NiwgMS43ODA4NCwgMi42NjIyLCA0LjcyMDksIDUuODkzOTEiLCBcCi0gICAgICAgICAgIjAuMzE5MTksIDAuMzc2NDI0LCAwLjkwMDMwOCwgMS43ODA5MSwgMi42NjIyLCA0LjcxOTY0LCA1Ljg5Mzk2IiwgXAotICAgICAgICAgICIwLjMxOTE4NywgMC4zNzY0MjksIDAuOTAwMzczLCAxLjc4MDU5LCAyLjY2MTgzLCA0LjcxOTkyLCA1Ljg5MzUyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNJIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMjU0MTEsIDAuMzUxMzM2LCAwLjU4MTA4MywgMC45NjE1MiwgMS4zNDEyNCwgMi4yMjYyNCwgMi43MzE2NSIsIFwKLSAgICAgICAgICAiMC4zMzQ5NjEsIDAuMzYwODY0LCAwLjU5MDU3MiwgMC45NzEwMzEsIDEuMzUwNzEsIDIuMjM1NzgsIDIuNzQxMTYiLCBcCi0gICAgICAgICAgIjAuMzQ2NzQ3LCAwLjM3MjY1NCwgMC42MDIzNjcsIDAuOTgyODQ5LCAxLjM2MjUzLCAyLjI0NzUxLCAyLjc1Mjg5IiwgXAotICAgICAgICAgICIwLjM1ODE1OSwgMC4zODQwNDUsIDAuNjEzNzYxLCAwLjk5NDIxNiwgMS4zNzM5MSwgMi4yNTg5NywgMi43NjQzMiIsIFwKLSAgICAgICAgICAiMC4zNzAyNzksIDAuMzk2MTg1LCAwLjYyNTkyOSwgMS4wMDY0LCAxLjM4NjA1LCAyLjI3MTA0LCAyLjc3NjQ3IiwgXAotICAgICAgICAgICIwLjM4OTc5LCAwLjQxNTY4LCAwLjY0NTQsIDEuMDI1ODksIDEuNDA1NTYsIDIuMjkwNiwgMi43OTU5NCIsIFwKLSAgICAgICAgICAiMC40MDkxMzYsIDAuNDM1MDQ2LCAwLjY2NDc2OSwgMS4wNDUyOSwgMS40MjQ5MSwgMi4zMDk5NCwgMi44MTUzNCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yODc2ODgsIDAuMzM3MzI0LCAwLjc5MTcyNiwgMS41NjE2NiwgMi4zMjcxNCwgNC4xMjA0NywgNS4xNDY3IiwgXAotICAgICAgICAgICIwLjI4NzY3OCwgMC4zMzcyNDgsIDAuNzkxNjEsIDEuNTYxNDcsIDIuMzI3MjQsIDQuMTIwNDMsIDUuMTM4OTciLCBcCi0gICAgICAgICAgIjAuMjg3NzMxLCAwLjMzNzI4LCAwLjc5MTcyNSwgMS41NjE1LCAyLjMyNzQ4LCA0LjEyMTI5LCA1LjE0NjQ2IiwgXAotICAgICAgICAgICIwLjI4NzYyNCwgMC4zMzcyMDEsIDAuNzkxNTYyLCAxLjU2MTMzLCAyLjMyNzEsIDQuMTIwNCwgNS4xNDMxNyIsIFwKLSAgICAgICAgICAiMC4yODc2MDUsIDAuMzM3MjY1LCAwLjc5MTU2NCwgMS41NjEzOCwgMi4zMzA2MSwgNC4xMjAxNSwgNS4xNDM0NCIsIFwKLSAgICAgICAgICAiMC4yODc1ODksIDAuMzM3MTYxLCAwLjc5MjA5MiwgMS41NjE0LCAyLjMyNzA1LCA0LjExODE4LCA1LjE0MzQ5IiwgXAotICAgICAgICAgICIwLjI4NzUxLCAwLjMzNzA4NywgMC43OTIxODcsIDEuNTU3OTcsIDIuMzI3MDksIDQuMTIwOTQsIDUuMTQzMDQiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzE1Nzc0LCAwLjM0NTk5OCwgMC42MTUxMzYsIDEuMDYxOSwgMS41MDgwMywgMi41NDgzOCwgMy4xNDI2OCIsIFwKLSAgICAgICAgICAiMC4zMjUwNTIsIDAuMzU1MjE3LCAwLjYyNDQ0MSwgMS4wNzEyMywgMS41MTcyOCwgMi41NTc2MywgMy4xNTE5MyIsIFwKLSAgICAgICAgICAiMC4zMzY0ODYsIDAuMzY2NjU0LCAwLjYzNTg4MSwgMS4wODI1OSwgMS41Mjg3MiwgMi41NjkwNiwgMy4xNjM0MiIsIFwKLSAgICAgICAgICAiMC4zNDgyOTUsIDAuMzc4NTIzLCAwLjY0NzY5NCwgMS4wOTQ0MSwgMS41NDA1NCwgMi41ODA4NiwgMy4xNzUxOSIsIFwKLSAgICAgICAgICAiMC4zNjEwNTksIDAuMzkxMjI1LCAwLjY2MDUwNywgMS4xMDcxOSwgMS41NTMzMiwgMi41OTM2NSwgMy4xODgxNSIsIFwKLSAgICAgICAgICAiMC4zODA2NjUsIDAuNDEwOTE0LCAwLjY4MDEyOCwgMS4xMjY4MywgMS41NzI5NywgMi42MTMzMSwgMy4yMDc2MyIsIFwKLSAgICAgICAgICAiMC4zOTc4OTksIDAuNDI4MTMyLCAwLjY5NzMwOSwgMS4xNDQwNiwgMS41OTAyMywgMi42MzA1NywgMy4yMjQ4MiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMjU3NzcsIDAuMzgyODU0LCAwLjkwNzkzNCwgMS43ODk1MSwgMi42Njk2OCwgNC43MjgzMiwgNS44OTc4IiwgXAotICAgICAgICAgICIwLjMyNTc5NCwgMC4zODI5ODQsIDAuOTA2NDIsIDEuNzg4NjUsIDIuNjcwMTIsIDQuNzI4NDMsIDUuODk4MTkiLCBcCi0gICAgICAgICAgIjAuMzI1NzcsIDAuMzgyOTkyLCAwLjkwNjg4NCwgMS43ODc1MywgMi42NzAyLCA0LjcyODU4LCA1Ljg5ODIyIiwgXAotICAgICAgICAgICIwLjMyNTczMiwgMC4zODMwNDUsIDAuOTA4Mzg2LCAxLjc4OTcyLCAyLjY3MzMxLCA0LjcyNzMxLCA1Ljg5NzM4IiwgXAotICAgICAgICAgICIwLjMyNTcwNSwgMC4zODI5NTgsIDAuOTA2MTg0LCAxLjc4OTI4LCAyLjY3MDM3LCA0LjcyODQ5LCA1Ljg5Nzk4IiwgXAotICAgICAgICAgICIwLjMyNTYxNSwgMC4zODI5NSwgMC45MDY4MTMsIDEuNzg5NzcsIDIuNjY5NjYsIDQuNzI4NDksIDUuODk3MSIsIFwKLSAgICAgICAgICAiMC4zMjU2NzUsIDAuMzgyODEyLCAwLjkwODA3MiwgMS43ODkzMSwgMi42NzI0NiwgNC43MjY5NiwgNS44OTczOCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzc0NDEyLCAwLjM5OTg0NiwgMC42Mjc4OTQsIDEuMDA3MjksIDEuMzg2MjQsIDIuMjcwMzMsIDIuNzc1NjciLCBcCi0gICAgICAgICAgIjAuMzg0OTc0LCAwLjQxMDQwMSwgMC42Mzg1MjIsIDEuMDE3NzYsIDEuMzk2OCwgMi4yODExNiwgMi43ODYiLCBcCi0gICAgICAgICAgIjAuMzk4MDM3LCAwLjQyMzQ3MiwgMC42NTE1MiwgMS4wMzA4OSwgMS40MDk4NiwgMi4yOTM5NSwgMi43OTkyNCIsIFwKLSAgICAgICAgICAiMC40MTE0MjgsIDAuNDM2ODYsIDAuNjY0ODk1LCAxLjA0NDIxLCAxLjQyMzI1LCAyLjMwNzQsIDIuODEyNDYiLCBcCi0gICAgICAgICAgIjAuNDI0NjY0LCAwLjQ1MDA4MSwgMC42NzgyMTMsIDEuMDU3NDYsIDEuNDM2NDgsIDIuMzIwNTcsIDIuODI1NzYiLCBcCi0gICAgICAgICAgIjAuNDQ1NjY1LCAwLjQ3MTA5MiwgMC42OTkxMzYsIDEuMDc4NDUsIDEuNDU3NDksIDIuMzQxNjQsIDIuODQ2NyIsIFwKLSAgICAgICAgICAiMC40NjQxMTgsIDAuNDg5NTMsIDAuNzE3NjY4LCAxLjA5Njg5LCAxLjQ3NTkzLCAyLjM2MDAxLCAyLjg2NTIiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjc4NjUzLCAwLjMyODk0MiwgMC43ODYyMjcsIDEuNTU2MDMsIDIuMzIyNSwgNC4xMTk3NiwgNS4xNDE2NSIsIFwKLSAgICAgICAgICAiMC4yNzg1ODgsIDAuMzI4OTI5LCAwLjc4NzY3LCAxLjU1NjI3LCAyLjMyMjMzLCA0LjEyMTA4LCA1LjE0MTc4IiwgXAotICAgICAgICAgICIwLjI3ODYzNiwgMC4zMjg5NDEsIDAuNzg2MjU2LCAxLjU1NjA2LCAyLjMyMjUzLCA0LjExOTcxLCA1LjE0MTUyIiwgXAotICAgICAgICAgICIwLjI3ODYzNiwgMC4zMjg5MzEsIDAuNzg3MzU0LCAxLjU1NjMyLCAyLjMyMjQ2LCA0LjEyMTcsIDUuMTQxOCIsIFwKLSAgICAgICAgICAiMC4yNzg0ODcsIDAuMzI4NjM5LCAwLjc4NTYzOCwgMS41NTY0MSwgMi4zMjQyMiwgNC4xMTk2NSwgNS4xNDEzIiwgXAotICAgICAgICAgICIwLjI3ODU5NCwgMC4zMjg5MzQsIDAuNzg3Mzg4LCAxLjU1NjMxLCAyLjMyMjQ2LCA0LjEyMTU2LCA1LjE0MTc1IiwgXAotICAgICAgICAgICIwLjI3ODQ3NiwgMC4zMjg1OTYsIDAuNzg1NjI1LCAxLjU1NTU4LCAyLjMyMjI2LCA0LjEyMDEyLCA1LjE0MTQ0Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjM4ODUyNywgMC40MTgzMSwgMC42ODU4MzYsIDEuMTMxNTYsIDEuNTc3MDQsIDIuNjE2NTcsIDMuMjEwNTkiLCBcCi0gICAgICAgICAgIjAuMzk5NDcsIDAuNDI5MjMzLCAwLjY5Njc1OSwgMS4xNDIzOCwgMS41ODc5NSwgMi42Mjc2OCwgMy4yMjE1NCIsIFwKLSAgICAgICAgICAiMC40MTMyMDMsIDAuNDQyOTYyLCAwLjcxMDQ5NCwgMS4xNTYxMSwgMS42MDE2OCwgMi42NDEyMywgMy4yMzUyNiIsIFwKLSAgICAgICAgICAiMC40MjU5NDEsIDAuNDU1NzIsIDAuNzIzMjQ3LCAxLjE2ODk0LCAxLjYxNDQ0LCAyLjY1NDAxLCAzLjI0Nzk4IiwgXAotICAgICAgICAgICIwLjQzOTYzMiwgMC40NjkzODgsIDAuNzM2OTMxLCAxLjE4MjUzLCAxLjYyODI2LCAyLjY2NzY2LCAzLjI2MTY5IiwgXAotICAgICAgICAgICIwLjQ2MTM0NCwgMC40OTExMDUsIDAuNzU4NjQsIDEuMjA0MjUsIDEuNjQ5ODIsIDIuNjg5MzcsIDMuMjgzNCIsIFwKLSAgICAgICAgICAiMC40ODA0ODgsIDAuNTEwMjQsIDAuNzc3NzM3LCAxLjIyMzM5LCAxLjY2ODk2LCAyLjcwODY4LCAzLjMwMjU0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMxNzA5NywgMC4zNzQ4OCwgMC45MDA1NjYsIDEuNzgxMDIsIDIuNjYyMTUsIDQuNzIwODcsIDUuODk0NCIsIFwKLSAgICAgICAgICAiMC4zMTcxMywgMC4zNzQ4NzUsIDAuOTAwMzQ2LCAxLjc4MTYzLCAyLjY2MDk3LCA0LjcyMDA0LCA1Ljg5NDg3IiwgXAotICAgICAgICAgICIwLjMxNzE0MywgMC4zNzQ4ODcsIDAuOTAwMzQxLCAxLjc3OTg5LCAyLjY2MTYsIDQuNzIwMDksIDUuODk0MTEiLCBcCi0gICAgICAgICAgIjAuMzE3MTMsIDAuMzc0ODgsIDAuOTAwMDMyLCAxLjc4MDgzLCAyLjY2MTMsIDQuNzIwMTgsIDUuODkzODQiLCBcCi0gICAgICAgICAgIjAuMzE3MTE1LCAwLjM3NDg5NSwgMC45MDAyMjYsIDEuNzgwNjUsIDIuNjYyMjcsIDQuNzIwMjUsIDUuODkzOTIiLCBcCi0gICAgICAgICAgIjAuMzE2OTMyLCAwLjM3NDg4NSwgMC45MDAxNTYsIDEuNzgwOTEsIDIuNjYxODgsIDQuNzE4NTksIDUuODk0MzQiLCBcCi0gICAgICAgICAgIjAuMzE3MTMsIDAuMzc1Mjc3LCAwLjkwMDM3NiwgMS43ODA2MSwgMi42NjMwMywgNC43MTg4OSwgNS44OTM3MiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjQ5NiwgMC4wMDI0OTcsIDAuMDAyNTAxLCAwLjAwMjUwMywgMC4wMDI1MDQsIDAuMDAyNTA0LCAwLjAwMjUwNCIsIFwKLSAgICAgICAgICAiMC4wMDI0OTQsIDAuMDAyNDk1LCAwLjAwMjQ5OSwgMC4wMDI1MDEsIDAuMDAyNTAyLCAwLjAwMjUwMiwgMC4wMDI1MDIiLCBcCi0gICAgICAgICAgIjAuMDAyNDkyLCAwLjAwMjQ5NCwgMC4wMDI0OTgsIDAuMDAyNSwgMC4wMDI1LCAwLjAwMjUwMSwgMC4wMDI1MDEiLCBcCi0gICAgICAgICAgIjAuMDAyNDkxLCAwLjAwMjQ5MiwgMC4wMDI0OTcsIDAuMDAyNDk5LCAwLjAwMjQ5OSwgMC4wMDI1LCAwLjAwMjUiLCBcCi0gICAgICAgICAgIjAuMDAyNDksIDAuMDAyNDkxLCAwLjAwMjQ5NiwgMC4wMDI0OTgsIDAuMDAyNDk4LCAwLjAwMjQ5OSwgMC4wMDI0OTkiLCBcCi0gICAgICAgICAgIjAuMDAyNDg4LCAwLjAwMjQ4OSwgMC4wMDI0OTQsIDAuMDAyNDk2LCAwLjAwMjQ5NywgMC4wMDI0OTcsIDAuMDAyNDk3IiwgXAotICAgICAgICAgICIwLjAwMjQ4NiwgMC4wMDI0ODgsIDAuMDAyNDkzLCAwLjAwMjQ5NSwgMC4wMDI0OTUsIDAuMDAyNDk2LCAwLjAwMjQ5NiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTM2NSwgMC4wMDEzNjYsIDAuMDAxMzcxLCAwLjAwMTM3MywgMC4wMDEzNzQsIDAuMDAxMzc0LCAwLjAwMTM3NCIsIFwKLSAgICAgICAgICAiMC4wMDEzNTUsIDAuMDAxMzU3LCAwLjAwMTM2MSwgMC4wMDEzNjMsIDAuMDAxMzY0LCAwLjAwMTM2NSwgMC4wMDEzNjUiLCBcCi0gICAgICAgICAgIjAuMDAxMzUxLCAwLjAwMTM1MiwgMC4wMDEzNTcsIDAuMDAxMzU5LCAwLjAwMTM2LCAwLjAwMTM2LCAwLjAwMTM2IiwgXAotICAgICAgICAgICIwLjAwMTM0OCwgMC4wMDEzNDksIDAuMDAxMzU0LCAwLjAwMTM1NiwgMC4wMDEzNTcsIDAuMDAxMzU3LCAwLjAwMTM1OCIsIFwKLSAgICAgICAgICAiMC4wMDEzNDYsIDAuMDAxMzQ3LCAwLjAwMTM1MiwgMC4wMDEzNTQsIDAuMDAxMzU1LCAwLjAwMTM1NSwgMC4wMDEzNTUiLCBcCi0gICAgICAgICAgIjAuMDAxMzQzLCAwLjAwMTM0NCwgMC4wMDEzNDksIDAuMDAxMzUxLCAwLjAwMTM1MiwgMC4wMDEzNTMsIDAuMDAxMzUzIiwgXAotICAgICAgICAgICIwLjAwMTM0MiwgMC4wMDEzNDMsIDAuMDAxMzQ4LCAwLjAwMTM1LCAwLjAwMTM1MSwgMC4wMDEzNTIsIDAuMDAxMzUxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyNDg2LCAwLjAwMjQ4NywgMC4wMDI0OTEsIDAuMDAyNDkzLCAwLjAwMjQ5NCwgMC4wMDI0OTUsIDAuMDAyNDk1IiwgXAotICAgICAgICAgICIwLjAwMjQ4NiwgMC4wMDI0ODcsIDAuMDAyNDkxLCAwLjAwMjQ5MywgMC4wMDI0OTQsIDAuMDAyNDk0LCAwLjAwMjQ5NSIsIFwKLSAgICAgICAgICAiMC4wMDI0ODMsIDAuMDAyNDg0LCAwLjAwMjQ4OSwgMC4wMDI0OSwgMC4wMDI0OTEsIDAuMDAyNDkyLCAwLjAwMjQ5MiIsIFwKLSAgICAgICAgICAiMC4wMDI0NzksIDAuMDAyNDgxLCAwLjAwMjQ4NSwgMC4wMDI0ODcsIDAuMDAyNDg4LCAwLjAwMjQ4OCwgMC4wMDI0ODkiLCBcCi0gICAgICAgICAgIjAuMDAyNDc1LCAwLjAwMjQ3NywgMC4wMDI0ODEsIDAuMDAyNDgzLCAwLjAwMjQ4NCwgMC4wMDI0ODUsIDAuMDAyNDg1IiwgXAotICAgICAgICAgICIwLjAwMjQ2OSwgMC4wMDI0NzEsIDAuMDAyNDc2LCAwLjAwMjQ3OCwgMC4wMDI0NzgsIDAuMDAyNDc5LCAwLjAwMjQ3OSIsIFwKLSAgICAgICAgICAiMC4wMDI0NjUsIDAuMDAyNDY2LCAwLjAwMjQ3MSwgMC4wMDI0NzMsIDAuMDAyNDc0LCAwLjAwMjQ3NSwgMC4wMDI0NzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDE0NCwgMC4wMDE0NDEsIDAuMDAxNDQ2LCAwLjAwMTQ0NywgMC4wMDE0NDgsIDAuMDAxNDQ4LCAwLjAwMTQ0OSIsIFwKLSAgICAgICAgICAiMC4wMDE0MzUsIDAuMDAxNDM3LCAwLjAwMTQ0MSwgMC4wMDE0NDMsIDAuMDAxNDQzLCAwLjAwMTQ0NCwgMC4wMDE0NDQiLCBcCi0gICAgICAgICAgIjAuMDAxNDI5LCAwLjAwMTQzLCAwLjAwMTQzNCwgMC4wMDE0MzYsIDAuMDAxNDM3LCAwLjAwMTQzNywgMC4wMDE0MzciLCBcCi0gICAgICAgICAgIjAuMDAxNDIzLCAwLjAwMTQyNCwgMC4wMDE0MjksIDAuMDAxNDMsIDAuMDAxNDMxLCAwLjAwMTQzMSwgMC4wMDE0MzIiLCBcCi0gICAgICAgICAgIjAuMDAxNDE4LCAwLjAwMTQxOSwgMC4wMDE0MjQsIDAuMDAxNDI2LCAwLjAwMTQyNywgMC4wMDE0MjcsIDAuMDAxNDI3IiwgXAotICAgICAgICAgICIwLjAwMTQxMiwgMC4wMDE0MTMsIDAuMDAxNDE4LCAwLjAwMTQyLCAwLjAwMTQyMSwgMC4wMDE0MjEsIDAuMDAxNDIyIiwgXAotICAgICAgICAgICIwLjAwMTQwOCwgMC4wMDE0MSwgMC4wMDE0MTUsIDAuMDAxNDE3LCAwLjAwMTQxNywgMC4wMDE0MTgsIDAuMDAxNDE4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0kiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjI1OCwgMC4wMDIyNiwgMC4wMDIyNjQsIDAuMDAyMjY2LCAwLjAwMjI2NywgMC4wMDIyNjcsIDAuMDAyMjY3IiwgXAotICAgICAgICAgICIwLjAwMjI1OSwgMC4wMDIyNiwgMC4wMDIyNjUsIDAuMDAyMjY2LCAwLjAwMjI2NywgMC4wMDIyNjgsIDAuMDAyMjY4IiwgXAotICAgICAgICAgICIwLjAwMjI1NiwgMC4wMDIyNTgsIDAuMDAyMjYyLCAwLjAwMjI2NCwgMC4wMDIyNjUsIDAuMDAyMjY1LCAwLjAwMjI2NiIsIFwKLSAgICAgICAgICAiMC4wMDIyNTMsIDAuMDAyMjU1LCAwLjAwMjI2LCAwLjAwMjI2MiwgMC4wMDIyNjIsIDAuMDAyMjYzLCAwLjAwMjI2MyIsIFwKLSAgICAgICAgICAiMC4wMDIyNSwgMC4wMDIyNTEsIDAuMDAyMjU2LCAwLjAwMjI1OSwgMC4wMDIyNTksIDAuMDAyMjYsIDAuMDAyMjYiLCBcCi0gICAgICAgICAgIjAuMDAyMjQ1LCAwLjAwMjI0NywgMC4wMDIyNTIsIDAuMDAyMjU1LCAwLjAwMjI1NSwgMC4wMDIyNTYsIDAuMDAyMjU2IiwgXAotICAgICAgICAgICIwLjAwMjI0MiwgMC4wMDIyNDMsIDAuMDAyMjQ5LCAwLjAwMjI1MiwgMC4wMDIyNTMsIDAuMDAyMjUzLCAwLjAwMjI1NCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTQzMywgMC4wMDE0MzUsIDAuMDAxNDM5LCAwLjAwMTQ0MSwgMC4wMDE0NDIsIDAuMDAxNDQyLCAwLjAwMTQ0MyIsIFwKLSAgICAgICAgICAiMC4wMDE0MzMsIDAuMDAxNDM0LCAwLjAwMTQzOCwgMC4wMDE0NCwgMC4wMDE0NDEsIDAuMDAxNDQxLCAwLjAwMTQ0MyIsIFwKLSAgICAgICAgICAiMC4wMDE0MjksIDAuMDAxNDMsIDAuMDAxNDM0LCAwLjAwMTQzNiwgMC4wMDE0MzcsIDAuMDAxNDM4LCAwLjAwMTQzOCIsIFwKLSAgICAgICAgICAiMC4wMDE0MjQsIDAuMDAxNDI1LCAwLjAwMTQzLCAwLjAwMTQzMiwgMC4wMDE0MzIsIDAuMDAxNDMzLCAwLjAwMTQzMyIsIFwKLSAgICAgICAgICAiMC4wMDE0MTksIDAuMDAxNDIxLCAwLjAwMTQyNiwgMC4wMDE0MjcsIDAuMDAxNDI4LCAwLjAwMTQyOSwgMC4wMDE0MjkiLCBcCi0gICAgICAgICAgIjAuMDAxNDEzLCAwLjAwMTQxNCwgMC4wMDE0MTksIDAuMDAxNDIxLCAwLjAwMTQyMiwgMC4wMDE0MjMsIDAuMDAxNDIzIiwgXAotICAgICAgICAgICIwLjAwMTQwOCwgMC4wMDE0MSwgMC4wMDE0MTUsIDAuMDAxNDE3LCAwLjAwMTQxOCwgMC4wMDE0MTgsIDAuMDAxNDE5Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBBRERIWDIgKgotICogLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChBRERIWDIpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4yMzIyNTI7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTE0MjM7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxMTQyMzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDExNDEyNTsKLSAgfQotICBwaW4oQikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxOTI1Nzk7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxOTEyNDk7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxOTI1Nzk7Ci0gIH0KLSAgcGluKENPKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMjU3NDg1OwotICAgIGZ1bmN0aW9uIDogIihBIEIpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNjM0MiwgMC4zNDgwNTksIDAuNDkzMTYzLCAwLjY3NDY0MywgMC44NTQxMzUsIDEuMDM1NDMsIDEuMjE1OTYiLCBcCi0gICAgICAgICAgIjAuMTc1MTIzLCAwLjM1OTc1NywgMC41MDQ3MTcsIDAuNjg0OTYxLCAwLjg2NTEyNSwgMS4wNDY3OSwgMS4yMjc2NiIsIFwKLSAgICAgICAgICAiMC4xODg5NDYsIDAuMzczNjkxLCAwLjUxODA0MiwgMC42OTg4MDQsIDAuODc4ODkzLCAxLjA2MDg1LCAxLjI0MDgiLCBcCi0gICAgICAgICAgIjAuMjAyNjM1LCAwLjM4NzMzLCAwLjUzMjE4NywgMC43MTI1MDIsIDAuODkyNzA4LCAxLjA3NDE5LCAxLjI1NTMyIiwgXAotICAgICAgICAgICIwLjIxNjI2OCwgMC40MDEwNCwgMC41NDU1MTEsIDAuNzI2MDIxLCAwLjkwNjg4MiwgMS4wODgyNSwgMS4yNzAxMSIsIFwKLSAgICAgICAgICAiMC4yMzgwMjIsIDAuNDIyNjU0LCAwLjU2NzgwNSwgMC43NDkyMSwgMC45Mjg4MTUsIDEuMTA5NTYsIDEuMjkwNDkiLCBcCi0gICAgICAgICAgIjAuMjU2ODg0LCAwLjQ0MTY2OCwgMC41ODY2MjEsIDAuNzY2NzA1LCAwLjk0ODExNSwgMS4xMjc2MywgMS4zMDk2NyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDcxMiwgMC40Njc1MTYsIDAuNzY0OTY3LCAxLjExOTk2LCAxLjQ5NDI4LCAxLjg4MDQxLCAyLjI0ODcxIiwgXAotICAgICAgICAgICIwLjEwNjMxNywgMC40Njc3MzYsIDAuNzYwNDY3LCAxLjEzNzAyLCAxLjUwOTE0LCAxLjg1OTk2LCAyLjI0ODkyIiwgXAotICAgICAgICAgICIwLjEwNzA2NywgMC40Njc2MjIsIDAuNzY0ODE0LCAxLjEzNzA5LCAxLjUwOTI2LCAxLjg2MzA4LCAyLjI1MzQxIiwgXAotICAgICAgICAgICIwLjEwNjgyMiwgMC40NjcxMzMsIDAuNzY0OTQxLCAxLjEzNzE1LCAxLjUwOTMyLCAxLjg1NTE3LCAyLjI0OTMzIiwgXAotICAgICAgICAgICIwLjEwNjgxNCwgMC40NjcyODMsIDAuNzY0ODUyLCAxLjEzNzI1LCAxLjQ5ODU1LCAxLjg2MzcyLCAyLjI0OTM2IiwgXAotICAgICAgICAgICIwLjEwNjQ4NSwgMC40NjY5NDUsIDAuNzYxNzQ3LCAxLjEyMDM2LCAxLjQ5NjU2LCAxLjg4MTUyLCAyLjIzMjM2IiwgXAotICAgICAgICAgICIwLjEwNjQ3NywgMC40NjY3MTIsIDAuNzU5MDY0LCAxLjEzNzI4LCAxLjUwODM4LCAxLjg4MTYyLCAyLjI0OTQiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTA3OTc0LCAwLjMxNDk0MywgMC40ODA2NSwgMC42ODY5ODYsIDAuODkyNTcxLCAxLjA5ODY0LCAxLjMwNDk0IiwgXAotICAgICAgICAgICIwLjExOTU1OSwgMC4zMjY1OTQsIDAuNDkyMjM3LCAwLjY5ODYwNywgMC45MDQyMTQsIDEuMTEwMjgsIDEuMzE2NDMiLCBcCi0gICAgICAgICAgIjAuMTM0MzQ4LCAwLjM0MTM2OSwgMC41MDY2MzksIDAuNzEzNDEzLCAwLjkxODk5MywgMS4xMjUwOCwgMS4zMzEzNiIsIFwKLSAgICAgICAgICAiMC4xNDkwODYsIDAuMzU2MTc1LCAwLjUyMTU4LCAwLjcyODIxOSwgMC45MzM4MTMsIDEuMTM5ODksIDEuMzQ3NjEiLCBcCi0gICAgICAgICAgIjAuMTYzNzc1LCAwLjM3MTAwOSwgMC41MzY1NjEsIDAuNzQyNzc1LCAwLjk0ODU3NCwgMS4xNTUwOCwgMS4zNjExOSIsIFwKLSAgICAgICAgICAiMC4xODY0MjQsIDAuMzkzNzA2LCAwLjU1OTI0NCwgMC43NjU2NTksIDAuOTcxMDM5LCAxLjE3Nzg4LCAxLjM4MzczIiwgXAotICAgICAgICAgICIwLjIwNDk3MiwgMC40MTIyNjcsIDAuNTc3NzM5LCAwLjc4MzU1OCwgMC45ODk2MjMsIDEuMTk2NTYsIDEuNDAyNTciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTAwNzQsIDAuNTA5MzY5LCAwLjgzNjA3NiwgMS4yNDYzLCAxLjY1NzMzLCAyLjA2NjAxLCAyLjQ3ODIzIiwgXAotICAgICAgICAgICIwLjEwMDk1OSwgMC41MDkzNDksIDAuODM0ODU3LCAxLjI0NjI1LCAxLjY1NzI5LCAyLjA2NDczLCAyLjQ3NTc1IiwgXAotICAgICAgICAgICIwLjEwMDc1NywgMC41MDkzOTMsIDAuODM1ODkzLCAxLjI0NjMsIDEuNjU3MzUsIDIuMDY2NzcsIDIuNDc4MzYiLCBcCi0gICAgICAgICAgIjAuMTAxMTcxLCAwLjUwOTM0MSwgMC44MzU5MTksIDEuMjQ2MjYsIDEuNjU3MzEsIDIuMDY1MTYsIDIuNDc3MTciLCBcCi0gICAgICAgICAgIjAuMTAwODQxLCAwLjUwOTMzNSwgMC44MzQ5MzMsIDEuMjQ2MDIsIDEuNjU3NSwgMi4wNjc5NiwgMi40Nzc4OSIsIFwKLSAgICAgICAgICAiMC4xMDIwOTEsIDAuNTA4NzQ1LCAwLjgzNDg4OCwgMS4yNDYyNiwgMS42NTQ4NSwgMi4wNjc4MywgMi40NzUyOSIsIFwKLSAgICAgICAgICAiMC4xMDIzMTIsIDAuNTA3MTM5LCAwLjgzNDc5NywgMS4yNDQ5LCAxLjY1NzIyLCAyLjA2NzQ5LCAyLjQ3NzQ0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE1NjQ3MywgMC4zNDExOTYsIDAuNDg2NTg4LCAwLjY2NjkyNSwgMC44NDcxNTYsIDEuMDI3OTQsIDEuMjA5MzQiLCBcCi0gICAgICAgICAgIjAuMTY2NjEyLCAwLjM1MTMxNSwgMC40OTY3OCwgMC42NzcwODgsIDAuODU4MTA2LCAxLjAzNzc3LCAxLjIxOTUxIiwgXAotICAgICAgICAgICIwLjE4MDI4NiwgMC4zNjQ4NjcsIDAuNTEwMzc3LCAwLjY5MDY3OCwgMC44NzA4OTksIDEuMDUxNjEsIDEuMjMzMDQiLCBcCi0gICAgICAgICAgIjAuMTkzNzkzLCAwLjM3ODQxNCwgMC41MjM5NjYsIDAuNzA0MjUsIDAuODg0MTc2LCAxLjA2NDg3LCAxLjI0NjY1IiwgXAotICAgICAgICAgICIwLjIwNzU4NiwgMC4zOTIzNywgMC41Mzc3ODEsIDAuNzE3ODksIDAuODk5MjE5LCAxLjA3ODg1LCAxLjI2MDIxIiwgXAotICAgICAgICAgICIwLjIyOTcxMywgMC40MTQzNTUsIDAuNTU4ODI3LCAwLjc0MDA2LCAwLjkyMDIwNSwgMS4xMDE0LCAxLjI4MjA5IiwgXAotICAgICAgICAgICIwLjI0OTA1MiwgMC40MzM2NzMsIDAuNTc4MDUsIDAuNzU5NDI0LCAwLjkzOTUyNCwgMS4xMjA5MSwgMS4zMDIxNSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDc2MDcsIDAuNDY4MTc5LCAwLjc2MDkxMywgMS4xMzU2NiwgMS41MDc2MywgMS44NTg3NCwgMi4yNDE2OSIsIFwKLSAgICAgICAgICAiMC4xMDcyNzUsIDAuNDY3MTM2LCAwLjc2NDQ1MiwgMS4xMzU4MiwgMS41MDY3LCAxLjg1NTI5LCAyLjI0ODEyIiwgXAotICAgICAgICAgICIwLjEwNjQ2NywgMC40Njc0NjUsIDAuNzY0NTUsIDEuMTM2MDEsIDEuNTA3ODIsIDEuODU2MzgsIDIuMjQ4NDEiLCBcCi0gICAgICAgICAgIjAuMTA3MjQ1LCAwLjQ2NjkwNiwgMC43NjQ1OSwgMS4xMzYwNywgMS40OTU4MywgMS44NTgxMywgMi4yNDg1IiwgXAotICAgICAgICAgICIwLjEwNjMzNCwgMC40Njc5OTgsIDAuNzU1NDQ2LCAxLjEzNjE4LCAxLjUwNjY0LCAxLjg4MDA2LCAyLjI0ODM4IiwgXAotICAgICAgICAgICIwLjEwNzk1NywgMC40NjYyNiwgMC43NjQzNzcsIDEuMTM2MDIsIDEuNTA3OTksIDEuODYxMjMsIDIuMjM1MjciLCBcCi0gICAgICAgICAgIjAuMTA3MTkzLCAwLjQ2ODIwNSwgMC43NjQyNSwgMS4xMzU4MiwgMS41MDc3LCAxLjg2NDgzLCAyLjI0OTE5Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwNDQ3NCwgMC4zMTEzNjcsIDAuNDc2MTg0LCAwLjY4MjU4MiwgMC44ODkxOCwgMS4wOTQ1OSwgMS4zMDA1OCIsIFwKLSAgICAgICAgICAiMC4xMTYxNjksIDAuMzIzMDcyLCAwLjQ4Nzg5OCwgMC42OTQwMjUsIDAuOTAwODg4LCAxLjEwNjQ4LCAxLjMxNjE1IiwgXAotICAgICAgICAgICIwLjEzMDgzNSwgMC4zMzc4MTcsIDAuNTAyNTg3LCAwLjcwODk5NiwgMC45MTU3NzEsIDEuMTIxMDcsIDEuMzI5OTQiLCBcCi0gICAgICAgICAgIjAuMTQ1NTE4LCAwLjM1MjYxNiwgMC41MTczNTEsIDAuNzIzOTA3LCAwLjkzMDU4MiwgMS4xMzU4NSwgMS4zNDQ4NyIsIFwKLSAgICAgICAgICAiMC4xNjAwNTUsIDAuMzY3MTk3LCAwLjUzMTkyNSwgMC43Mzg1MjUsIDAuOTQ1NzEsIDEuMTUwNDMsIDEuMzU5NTciLCBcCi0gICAgICAgICAgIjAuMTgyMjE0LCAwLjM4OTM1NywgMC41NTQzOTUsIDAuNzYwNjg3LCAwLjk2NzM0NCwgMS4xNzI2NCwgMS4zODE3MSIsIFwKLSAgICAgICAgICAiMC4yMDAyNTIsIDAuNDA3NDI2LCAwLjU3MjE1NCwgMC43NzgyODcsIDAuOTg3MjAzLCAxLjE5MDYsIDEuNDAwNjQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTAwNzc3LCAwLjUwNjkzMiwgMC44MzM5OTMsIDEuMjQ1ODgsIDEuNjU3OTEsIDIuMDY4ODcsIDIuNDc2MTkiLCBcCi0gICAgICAgICAgIjAuMTAwNjg5LCAwLjUwNjk1NiwgMC44MzQwMTksIDEuMjQzOTcsIDEuNjU3OTMsIDIuMDY2NTUsIDIuNDgwMjMiLCBcCi0gICAgICAgICAgIjAuMTAwNDk2LCAwLjUwNjk2NCwgMC44MzM4NSwgMS4yNDU5NSwgMS42NTc2OCwgMi4wNjY5NCwgMi40Nzc0NSIsIFwKLSAgICAgICAgICAiMC4xMDA2MDMsIDAuNTA2OTg4LCAwLjgzNDM4NCwgMS4yNDY2OSwgMS42NTc1MiwgMi4wNjUxMywgMi40NzY4MiIsIFwKLSAgICAgICAgICAiMC4xMDA0LCAwLjUwNjk3OSwgMC44MzQzNjMsIDEuMjQ2NjksIDEuNjU2OTMsIDIuMDY1MDYsIDIuNDc3NjgiLCBcCi0gICAgICAgICAgIjAuMTAxMTYzLCAwLjUwNjkwNiwgMC44MzQ3NzcsIDEuMjQ1ODMsIDEuNjU3ODIsIDIuMDY3MDUsIDIuNDc2NzciLCBcCi0gICAgICAgICAgIjAuMTAyNjc4LCAwLjUwNjg1OCwgMC44MzQxMzcsIDEuMjQ0MywgMS42NTY4NiwgMi4wNjYxOCwgMi40ODEwNyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjU0MiwgMC4wMDI1OCwgMC4wMDI1ODQsIDAuMDAyNTg2LCAwLjAwMjU4OCwgMC4wMDI1ODgsIDAuMDAyNTg5IiwgXAotICAgICAgICAgICIwLjAwMjUyOCwgMC4wMDI1NjcsIDAuMDAyNTcxLCAwLjAwMjU3NCwgMC4wMDI1NzUsIDAuMDAyNTc1LCAwLjAwMjU3NiIsIFwKLSAgICAgICAgICAiMC4wMDI1MTgsIDAuMDAyNTU4LCAwLjAwMjU2MiwgMC4wMDI1NjUsIDAuMDAyNTY2LCAwLjAwMjU2NiwgMC4wMDI1NjciLCBcCi0gICAgICAgICAgIjAuMDAyNTEyLCAwLjAwMjU1MiwgMC4wMDI1NTcsIDAuMDAyNTU5LCAwLjAwMjU2LCAwLjAwMjU2MSwgMC4wMDI1NjEiLCBcCi0gICAgICAgICAgIjAuMDAyNTA3LCAwLjAwMjU0OSwgMC4wMDI1NTQsIDAuMDAyNTU2LCAwLjAwMjU1NywgMC4wMDI1NTcsIDAuMDAyNTU3IiwgXAotICAgICAgICAgICIwLjAwMjUwMSwgMC4wMDI1NDUsIDAuMDAyNTUsIDAuMDAyNTUzLCAwLjAwMjU1NCwgMC4wMDI1NTQsIDAuMDAyNTU1IiwgXAotICAgICAgICAgICIwLjAwMjQ5OCwgMC4wMDI1NDMsIDAuMDAyNTQ5LCAwLjAwMjU1MiwgMC4wMDI1NTMsIDAuMDAyNTU0LCAwLjAwMjU1NCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzIyOCwgMC4wMDMyNjMsIDAuMDAzMjY2LCAwLjAwMzI2OSwgMC4wMDMyNjksIDAuMDAzMjcsIDAuMDAzMjcxIiwgXAotICAgICAgICAgICIwLjAwMzIxNywgMC4wMDMyNTMsIDAuMDAzMjU3LCAwLjAwMzI1OSwgMC4wMDMyNiwgMC4wMDMyNjEsIDAuMDAzMjYxIiwgXAotICAgICAgICAgICIwLjAwMzIwNywgMC4wMDMyNDYsIDAuMDAzMjUsIDAuMDAzMjUyLCAwLjAwMzI1MywgMC4wMDMyNTQsIDAuMDAzMjU0IiwgXAotICAgICAgICAgICIwLjAwMzE5OSwgMC4wMDMyNCwgMC4wMDMyNDUsIDAuMDAzMjQ4LCAwLjAwMzI0OSwgMC4wMDMyNSwgMC4wMDMyNSIsIFwKLSAgICAgICAgICAiMC4wMDMxOTIsIDAuMDAzMjM2LCAwLjAwMzI0MiwgMC4wMDMyNDQsIDAuMDAzMjQ2LCAwLjAwMzI0NywgMC4wMDMyNDciLCBcCi0gICAgICAgICAgIjAuMDAzMTg0LCAwLjAwMzIzMSwgMC4wMDMyMzgsIDAuMDAzMjQxLCAwLjAwMzI0MiwgMC4wMDMyNDQsIDAuMDAzMjQ1IiwgXAotICAgICAgICAgICIwLjAwMzE4LCAwLjAwMzIyOSwgMC4wMDMyMzUsIDAuMDAzMjM5LCAwLjAwMzI0MSwgMC4wMDMyNDIsIDAuMDAzMjQzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyMzI5LCAwLjAwMjM3OCwgMC4wMDIzODUsIDAuMDAyMzg2LCAwLjAwMjM5LCAwLjAwMjM5MSwgMC4wMDIzOTEiLCBcCi0gICAgICAgICAgIjAuMDAyMzE4LCAwLjAwMjM2NywgMC4wMDIzNzQsIDAuMDAyMzc2LCAwLjAwMjM3OSwgMC4wMDIzNzksIDAuMDAyMzgxIiwgXAotICAgICAgICAgICIwLjAwMjMxMiwgMC4wMDIzNjEsIDAuMDAyMzY4LCAwLjAwMjM3MSwgMC4wMDIzNzMsIDAuMDAyMzc0LCAwLjAwMjM3NSIsIFwKLSAgICAgICAgICAiMC4wMDIzMDYsIDAuMDAyMzU2LCAwLjAwMjM2MywgMC4wMDIzNjcsIDAuMDAyMzY5LCAwLjAwMjM3LCAwLjAwMjM3MSIsIFwKLSAgICAgICAgICAiMC4wMDIzMDIsIDAuMDAyMzUzLCAwLjAwMjM2LCAwLjAwMjM2NCwgMC4wMDIzNjYsIDAuMDAyMzY4LCAwLjAwMjM2OCIsIFwKLSAgICAgICAgICAiMC4wMDIyOTgsIDAuMDAyMzUxLCAwLjAwMjM1OCwgMC4wMDIzNjMsIDAuMDAyMzY1LCAwLjAwMjM2NiwgMC4wMDIzNjciLCBcCi0gICAgICAgICAgIjAuMDAyMjk2LCAwLjAwMjM0OSwgMC4wMDIzNTgsIDAuMDAyMzYyLCAwLjAwMjM2NCwgMC4wMDIzNjYsIDAuMDAyMzY2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyOTYsIDAuMDAzMDAxLCAwLjAwMzAwNiwgMC4wMDMwMDksIDAuMDAzMDEsIDAuMDAzMDExLCAwLjAwMzAxMSIsIFwKLSAgICAgICAgICAiMC4wMDI5NjEsIDAuMDAzMDAyLCAwLjAwMzAwNywgMC4wMDMwMTEsIDAuMDAzMDEyLCAwLjAwMzAxMywgMC4wMDMwMTMiLCBcCi0gICAgICAgICAgIjAuMDAyOTYyLCAwLjAwMzAwOCwgMC4wMDMwMTQsIDAuMDAzMDE3LCAwLjAwMzAxOSwgMC4wMDMwMiwgMC4wMDMwMiIsIFwKLSAgICAgICAgICAiMC4wMDI5NTksIDAuMDAzMDA4LCAwLjAwMzAxNSwgMC4wMDMwMTksIDAuMDAzMDIxLCAwLjAwMzAyMSwgMC4wMDMwMjMiLCBcCi0gICAgICAgICAgIjAuMDAyOTYsIDAuMDAzMDEyLCAwLjAwMzAyLCAwLjAwMzAyNCwgMC4wMDMwMjYsIDAuMDAzMDI3LCAwLjAwMzAyOSIsIFwKLSAgICAgICAgICAiMC4wMDI5NjQsIDAuMDAzMDIsIDAuMDAzMDI3LCAwLjAwMzAzMywgMC4wMDMwMzYsIDAuMDAzMDM3LCAwLjAwMzAzOSIsIFwKLSAgICAgICAgICAiMC4wMDI5NjcsIDAuMDAzMDI1LCAwLjAwMzAzNCwgMC4wMDMwNCwgMC4wMDMwNDIsIDAuMDAzMDQ0LCAwLjAwMzA0NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUykgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjI1MjE5ODsKLSAgICBmdW5jdGlvbiA6ICIoQV5CKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTg0NTYxLCAwLjM3MTA3LCAwLjUxNTQ4OSwgMC42OTU5NzYsIDAuODc2MzI3LCAxLjA1Njk1LCAxLjIzNzE0IiwgXAotICAgICAgICAgICIwLjE5NjI1MywgMC4zODI3NjUsIDAuNTI3MTc4LCAwLjcwNzU4NSwgMC44ODgwMTYsIDEuMDY4NDMsIDEuMjQ4ODkiLCBcCi0gICAgICAgICAgIjAuMjExMzk2LCAwLjM5Nzg5OCwgMC41NDIzNTMsIDAuNzIyODU4LCAwLjkwMzM2LCAxLjA4Mzg3LCAxLjI2NDAzIiwgXAotICAgICAgICAgICIwLjIyNjYwNiwgMC40MTMwOTEsIDAuNTU3NTA5LCAwLjczNzk4OCwgMC45MTgzNTYsIDEuMDk4OTUsIDEuMjc5MjciLCBcCi0gICAgICAgICAgIjAuMjQxNzk4LCAwLjQyODI0OCwgMC41NzI2ODMsIDAuNzUzMTU2LCAwLjkzMzUxMSwgMS4xMTQxMiwgMS4yOTQ0NiIsIFwKLSAgICAgICAgICAiMC4yNjU3NjEsIDAuNDUyMzEyLCAwLjU5Njc0LCAwLjc3NzE3MiwgMC45NTc2MDQsIDEuMTM4MTUsIDEuMzE4NDgiLCBcCi0gICAgICAgICAgIjAuMjg2ODQ3LCAwLjQ3MzI4MiwgMC42MTc2OTYsIDAuNzk4MjA2LCAwLjk3ODU1MywgMS4xNTkyLCAxLjMzOTM5Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwODQyLCAwLjQ2MzAwMSwgMC43NTM3MDYsIDEuMTIzNTUsIDEuNDkxNjcsIDEuODU3MDgsIDIuMjMwNDQiLCBcCi0gICAgICAgICAgIjAuMTA4NDc5LCAwLjQ2MzA2MywgMC43NTQyMDgsIDEuMTIyOTYsIDEuNDkyMDgsIDEuODYwNTMsIDIuMjMwNiIsIFwKLSAgICAgICAgICAiMC4xMDg0NjksIDAuNDYzMDgyLCAwLjc1NDI5MSwgMS4xMjUzMSwgMS40ODgwMiwgMS44NTY4MSwgMi4yMjk2OCIsIFwKLSAgICAgICAgICAiMC4xMDg1MTcsIDAuNDYzMDUzLCAwLjc1NDIyMywgMS4xMjM1LCAxLjQ5MTYyLCAxLjg1NzEyLCAyLjIyNDY3IiwgXAotICAgICAgICAgICIwLjEwODUwNiwgMC40NjMwNTYsIDAuNzU1NTEyLCAxLjEyMzUyLCAxLjQ5MTYsIDEuODU3MDcsIDIuMjI0NjQiLCBcCi0gICAgICAgICAgIjAuMTA4NTE2LCAwLjQ2MzA0NCwgMC43NTQyMjUsIDEuMTIxNSwgMS40OTE2MiwgMS44NTgwMywgMi4yMjQ2MyIsIFwKLSAgICAgICAgICAiMC4xMDg1OCwgMC40NjMwMzksIDAuNzU0MzA5LCAxLjEyMzUzLCAxLjQ5MTU1LCAxLjg1Njk4LCAyLjIyOTY3Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE3ODA1MiwgMC4zODk1MjEsIDAuNTU0NTc4LCAwLjc2MDgxMywgMC45NjczNTYsIDEuMTczMjgsIDEuMzc5OTciLCBcCi0gICAgICAgICAgIjAuMTg5NDI3LCAwLjQwMDgyNiwgMC41NjU5NDQsIDAuNzcyMTUzLCAwLjk3ODY3NywgMS4xODQ2NywgMS4zOTEyNiIsIFwKLSAgICAgICAgICAiMC4yMDQwNTgsIDAuNDE1NTIsIDAuNTgwNjEsIDAuNzg2ODIyLCAwLjk5MzQxNSwgMS4xOTkzMSwgMS40MDYzMiIsIFwKLSAgICAgICAgICAiMC4yMTgxNzYsIDAuNDI5NjE2LCAwLjU5NDc0OCwgMC44MDA5NTYsIDEuMDA3MiwgMS4yMTM3MywgMS40MTk5OSIsIFwKLSAgICAgICAgICAiMC4yMzI2MywgMC40NDQxLCAwLjYwOTIyMiwgMC44MTU0MTIsIDEuMDIxNjYsIDEuMjI4MjYsIDEuNDM0NDMiLCBcCi0gICAgICAgICAgIjAuMjU1MzExLCAwLjQ2Njc0NywgMC42MzE4NzgsIDAuODM4MDU3LCAxLjA0NDMxLCAxLjI1MDk0LCAxLjQ1NzA5IiwgXAotICAgICAgICAgICIwLjI3NDUyOCwgMC40ODU5NDQsIDAuNjUxMDgyLCAwLjg1NzI4MiwgMS4wNjM1LCAxLjI2OTg0LCAxLjQ3NjIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTE1NDkzLCAwLjUxNDE0NCwgMC44NDE0NTUsIDEuMjUyMDgsIDEuNjYwMTQsIDIuMDc1NSwgMi40Nzk0NCIsIFwKLSAgICAgICAgICAiMC4xMTU1MTksIDAuNTE0MDk4LCAwLjg0MTM3NywgMS4yNTIwOCwgMS42NTgyOCwgMi4wNjgxOSwgMi40Nzk4NiIsIFwKLSAgICAgICAgICAiMC4xMTU0OTgsIDAuNTE0MTQsIDAuODQxMzc2LCAxLjI1MjA4LCAxLjY1NzU2LCAyLjA2OTA0LCAyLjQ4MDUyIiwgXAotICAgICAgICAgICIwLjExNTU1NSwgMC41MTQwMjcsIDAuODQxMzc2LCAxLjI1MjA4LCAxLjY2MzY5LCAyLjA3MDk4LCAyLjQ4NTc0IiwgXAotICAgICAgICAgICIwLjExNTU3LCAwLjUxNDE2OSwgMC44NDEzNzgsIDEuMjUyMDUsIDEuNjYzNjUsIDIuMDY5ODcsIDIuNDg1MDgiLCBcCi0gICAgICAgICAgIjAuMTE1NjgyLCAwLjUxNDE2MywgMC44NDEzODEsIDEuMjUyMDgsIDEuNjYzNjQsIDIuMDY5NjMsIDIuNDg1MiIsIFwKLSAgICAgICAgICAiMC4xMTU3NzIsIDAuNTE0MTQ2LCAwLjg0MTM3MiwgMS4yNDkzMiwgMS42NjM2LCAyLjA2ODE2LCAyLjQ4MTU3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIxNDMyLCAwLjQwMDI2OSwgMC41NDQ5NTgsIDAuNzI1NTk0LCAwLjkwNjA4MSwgMS4wODY1OCwgMS4yNjcwNCIsIFwKLSAgICAgICAgICAiMC4yMjU5MzQsIDAuNDExODA2LCAwLjU1NjQ2OSwgMC43MzcxMzEsIDAuOTE3NjE4LCAxLjA5ODEyLCAxLjI3ODYyIiwgXAotICAgICAgICAgICIwLjI0MDUzOCwgMC40MjY0NzgsIDAuNTcxMTMxLCAwLjc1MTgwMSwgMC45MzIyODksIDEuMTEyNzgsIDEuMjkzMjUiLCBcCi0gICAgICAgICAgIjAuMjU1MjE3LCAwLjQ0MTAxNSwgMC41ODU2ODMsIDAuNzY2MzQyLCAwLjk0NjgyOCwgMS4xMjczMywgMS4zMDc3OCIsIFwKLSAgICAgICAgICAiMC4yNjg4MDcsIDAuNDU0NzQ4LCAwLjU5OTQzNCwgMC43ODAwNjYsIDAuOTYwNjI0LCAxLjE0MTE1LCAxLjMyMTU0IiwgXAotICAgICAgICAgICIwLjI4ODk1NywgMC40NzQ2OTMsIDAuNjE5MzksIDAuODAwMDgsIDAuOTgwNTYxLCAxLjE2MTA4LCAxLjM0MTUxIiwgXAotICAgICAgICAgICIwLjMwNDUwMSwgMC40OTA0NDYsIDAuNjM1MTA3LCAwLjgxNTc0NSwgMC45OTYyNTgsIDEuMTc2NzgsIDEuMzU3MjEiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTA3NDU5LCAwLjQ2MzAyNywgMC43NTYxNCwgMS4xMjQzNCwgMS40OTI4NiwgMS44NTkyMywgMi4yMjc3MyIsIFwKLSAgICAgICAgICAiMC4xMDc1NjMsIDAuNDYzMDQxLCAwLjc1NDgwOCwgMS4xMjQzMSwgMS40OTI4MywgMS44NTkxMiwgMi4yMjY4IiwgXAotICAgICAgICAgICIwLjEwNzM1MSwgMC40NjMwMjcsIDAuNzU1OTksIDEuMTI0MzQsIDEuNDkyODcsIDEuODU5MzUsIDIuMjI3NzUiLCBcCi0gICAgICAgICAgIjAuMTA3NTk0LCAwLjQ2MzAzLCAwLjc1NjA0OCwgMS4xMjQzMiwgMS40OTI4MywgMS44NTkwNiwgMi4yMzA4NyIsIFwKLSAgICAgICAgICAiMC4xMDc1MDcsIDAuNDYyMzU0LCAwLjc1NDc5MSwgMS4xMjQxNCwgMS40OTMwMywgMS44NjIyMSwgMi4yMjc4MyIsIFwKLSAgICAgICAgICAiMC4xMDc2MTUsIDAuNDYyMjY4LCAwLjc1NDgyMywgMS4xMjQ0LCAxLjQ5MDczLCAxLjg2MjExLCAyLjIyNzUiLCBcCi0gICAgICAgICAgIjAuMTA3MzkzLCAwLjQ2MjAyNiwgMC43NTQ3NzksIDEuMTIyMjYsIDEuNDkyNzksIDEuODYxOTQsIDIuMjI3NjciKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjEzNDk2LCAwLjQyNDQyLCAwLjU4OTcwMywgMC43OTYxMTMsIDEuMDAyMjgsIDEuMjA4NjEsIDEuNDE0NzciLCBcCi0gICAgICAgICAgIjAuMjI1NTEsIDAuNDM2MzkxLCAwLjYwMTU5NCwgMC44MDc5ODYsIDEuMDE0MjMsIDEuMjIwNSwgMS40MjY3MyIsIFwKLSAgICAgICAgICAiMC4yNDA0OSwgMC40NTE2MDEsIDAuNjE2ODQsIDAuODIzMTk1LCAxLjAyOTQ0LCAxLjIzNTcxLCAxLjQ0MTk0IiwgXAotICAgICAgICAgICIwLjI1NTk1NCwgMC40NjY4MzMsIDAuNjMyMDk3LCAwLjgzODQzMywgMS4wNDQ2OCwgMS4yNTA5MywgMS40NTcxOCIsIFwKLSAgICAgICAgICAiMC4yNzEwMjMsIDAuNDgxOTMyLCAwLjY0NzE4NSwgMC44NTM1MjYsIDEuMDU5NzgsIDEuMjY2MDUsIDEuNDcyNDIiLCBcCi0gICAgICAgICAgIjAuMjkzNjc3LCAwLjUwNDYzNiwgMC42Njk5NDcsIDAuODc2MzQ2LCAxLjA4MjUyLCAxLjI4ODgxLCAxLjQ5NSIsIFwKLSAgICAgICAgICAiMC4zMTE4OCwgMC41MjI4MjIsIDAuNjg4MTE0LCAwLjg5NDQzOCwgMS4xMDA3NiwgMS4zMDY5MywgMS41MTMxOCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTQzOTcsIDAuNTEyNTc4LCAwLjgzODk1MiwgMS4yNDc4MiwgMS42NTg1MSwgMi4wNjkzNiwgMi40Nzc1OSIsIFwKLSAgICAgICAgICAiMC4xMTQzMjYsIDAuNTEyNjk1LCAwLjgzODc4MiwgMS4yNDg1OSwgMS42NTg3OSwgMi4wNjg1MywgMi40Nzc3MSIsIFwKLSAgICAgICAgICAiMC4xMTQyMzgsIDAuNTEyNjg1LCAwLjgzODg5NSwgMS4yNDg1OSwgMS42NTg3OCwgMi4wNjg0MiwgMi40Nzk3MSIsIFwKLSAgICAgICAgICAiMC4xMTQzMTgsIDAuNTEyNTU0LCAwLjgzODk1MSwgMS4yNDg0NCwgMS42NTg3OSwgMi4wNjg2MSwgMi40Nzc4NCIsIFwKLSAgICAgICAgICAiMC4xMTQzNDMsIDAuNTEyNjg1LCAwLjgzODkxMywgMS4yNDg1OCwgMS42NTg1NywgMi4wNjgzNywgMi40Nzk3NyIsIFwKLSAgICAgICAgICAiMC4xMTQ0MjgsIDAuNTEyNjM3LCAwLjgzODY0NywgMS4yNDc3MywgMS42NTg1MSwgMi4wNjkwOCwgMi40Nzg3MSIsIFwKLSAgICAgICAgICAiMC4xMTQ0NSwgMC41MTI1NDgsIDAuODM4NTM1LCAxLjI0ODYsIDEuNjU4OSwgMi4wNjkyLCAyLjQ3Nzg0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE2MzEwOSwgMC4zNDg5NjQsIDAuNDkzNjIxLCAwLjY3NDIzMSwgMC44NTQ4NTUsIDEuMDM1MTgsIDEuMjE1NjMiLCBcCi0gICAgICAgICAgIjAuMTczOTg5LCAwLjM1OTgzMiwgMC41MDQ1MDMsIDAuNjg1MTYsIDAuODY1NjI1LCAxLjA0NjExLCAxLjIyNjUyIiwgXAotICAgICAgICAgICIwLjE4NzY1MywgMC4zNzM0MzksIDAuNTE4MDc1LCAwLjY5ODcyMSwgMC44NzkxODMsIDEuMDU5NjUsIDEuMjQwMDkiLCBcCi0gICAgICAgICAgIjAuMjAxMTI2LCAwLjM4Njk4OSwgMC41MzE2MzEsIDAuNzEyMjY4LCAwLjg5MjczMiwgMS4wNzMyMSwgMS4yNTM2NiIsIFwKLSAgICAgICAgICAiMC4yMTQ3NTksIDAuNDAwNjQ0LCAwLjU0NTMwMiwgMC43MjU5NzQsIDAuOTA2NDUsIDEuMDg2ODcsIDEuMjY3MzQiLCBcCi0gICAgICAgICAgIjAuMjM2ODA4LCAwLjQyMjcxLCAwLjU2NzM1MiwgMC43NDgwMTYsIDAuOTI4NDgzLCAxLjEwODk2LCAxLjI4OTQ0IiwgXAotICAgICAgICAgICIwLjI1NjE5OCwgMC40NDIxMDksIDAuNTg2NzgyLCAwLjc2NzM5NiwgMC45NDc4OTksIDEuMTI4NDEsIDEuMzA4OCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDczNDUsIDAuNDYzMTE1LCAwLjc1NDIxNSwgMS4xMjI0OSwgMS40ODk2MiwgMS44NjE3NSwgMi4yMjczNyIsIFwKLSAgICAgICAgICAiMC4xMDcyOTYsIDAuNDYyMDIxLCAwLjc1NDg0NSwgMS4xMjQzMiwgMS40OTA1MiwgMS44NjE5NCwgMi4yMjczIiwgXAotICAgICAgICAgICIwLjEwNzMxOSwgMC40NjI5ODksIDAuNzU0NzE5LCAxLjEyNDIzLCAxLjQ5MjcyLCAxLjg1OTEzLCAyLjIyNzMxIiwgXAotICAgICAgICAgICIwLjEwNzI3NSwgMC40NjI5MjIsIDAuNzU0NjczLCAxLjEyNDE4LCAxLjQ5MjY3LCAxLjg1ODk3LCAyLjIyNzE1IiwgXAotICAgICAgICAgICIwLjEwNzM3NSwgMC40NjI5NTMsIDAuNzU0Nzg5LCAxLjEyNDMsIDEuNDkyODUsIDEuODYxMzksIDIuMjI3MzIiLCBcCi0gICAgICAgICAgIjAuMTA3NDU0LCAwLjQ2MjkyOSwgMC43NTQ2OTIsIDEuMTI0MiwgMS40OTI2OCwgMS44NTkwMiwgMi4yMzA5NCIsIFwKLSAgICAgICAgICAiMC4xMDc0NTgsIDAuNDYyMzE1LCAwLjc1NDY3OCwgMS4xMjM4LCAxLjQ5MjY0LCAxLjg2MTgxLCAyLjIyNzUxIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE0OTYyOSwgMC4zNjA5MzUsIDAuNTI1OTkyLCAwLjczMjM0NSwgMC45Mzg3MzgsIDEuMTQ1MjEsIDEuMzUwOTMiLCBcCi0gICAgICAgICAgIjAuMTYwMzg4LCAwLjM3MTY0OCwgMC41MzY2OTIsIDAuNzQyOTA5LCAwLjk0OTQ4MSwgMS4xNTUzNywgMS4zNjE4MiIsIFwKLSAgICAgICAgICAiMC4xNzM3NDksIDAuMzg0OTU3LCAwLjU1MDA0MSwgMC43NTYyMjMsIDAuOTYyNzkzLCAxLjE2ODY5LCAxLjM3NTI4IiwgXAotICAgICAgICAgICIwLjE4NjkzMSwgMC4zOTgyOSwgMC41NjMzNTYsIDAuNzY5Njc5LCAwLjk3NjEwOSwgMS4xODI0NSwgMS4zODgyOSIsIFwKLSAgICAgICAgICAiMC4yMDAxMzgsIDAuNDExNDY2LCAwLjU3NjU2MywgMC43ODI3NTcsIDAuOTg4OTY5LCAxLjE5NTIzLCAxLjQwMTU3IiwgXAotICAgICAgICAgICIwLjIyMTMwMywgMC40MzI3MDMsIDAuNTk3ODA2LCAwLjgwNDAwOSwgMS4wMTA0LCAxLjIxNjUyLCAxLjQyMzA0IiwgXAotICAgICAgICAgICIwLjIzOTUyNSwgMC40NTA4OTgsIDAuNjE1OTUzLCAwLjgyMjIyMywgMS4wMjg2NCwgMS4yMzQ3NiwgMS40NDEyNyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTUzMzMsIDAuNTE0LCAwLjg0MDA5MSwgMS4yNDgxNSwgMS42NTc5NiwgMi4wNzIxOCwgMi40ODUwNCIsIFwKLSAgICAgICAgICAiMC4xMTUzNzMsIDAuNTEzOTcyLCAwLjg0MTMxMSwgMS4yNTIwOSwgMS42NTk5OSwgMi4wNjk1NywgMi40ODIxNSIsIFwKLSAgICAgICAgICAiMC4xMTU0MiwgMC41MTM5NzYsIDAuODM4MjksIDEuMjUyMDksIDEuNjU5MTgsIDIuMDY5NzIsIDIuNDgwNzIiLCBcCi0gICAgICAgICAgIjAuMTE1MzY1LCAwLjUxMzk5NiwgMC44Mzk5NjQsIDEuMjQ3NDgsIDEuNjU4MiwgMi4wNjg4OSwgMi40ODU0OSIsIFwKLSAgICAgICAgICAiMC4xMTUzNzQsIDAuNTEzODUyLCAwLjgzOTU3NiwgMS4yNTA0MiwgMS42NjM2MSwgMi4wNzU1LCAyLjQ4MzcyIiwgXAotICAgICAgICAgICIwLjExNTM4NSwgMC41MTM5NzYsIDAuODM4MzYzLCAxLjI1MjEsIDEuNjU5NzEsIDIuMDY4MjUsIDIuNDg1MjEiLCBcCi0gICAgICAgICAgIjAuMTE1NjU0LCAwLjUxMzkyOSwgMC44NDEwNDcsIDEuMjUyMSwgMS42NTkwOCwgMi4wNjgxNCwgMi40ODQ5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE1ODk2NCwgMC4zNDc3NjUsIDAuNDk0MTIzLCAwLjY3NzAxOCwgMC44NTk4MTUsIDEuMDQyODIsIDEuMjI1NTUiLCBcCi0gICAgICAgICAgIjAuMTcwOTkxLCAwLjM1OTgwMywgMC41MDYxNjEsIDAuNjg5MDQ2LCAwLjg3MTg1NiwgMS4wNTUwOSwgMS4yMzc1MyIsIFwKLSAgICAgICAgICAiMC4xODYxMiwgMC4zNzUwNTgsIDAuNTIxNDA1LCAwLjcwNDMxNywgMC44ODcwOTUsIDEuMDcwMTQsIDEuMjUyNzgiLCBcCi0gICAgICAgICAgIjAuMjAwODQ4LCAwLjM4OTc2NiwgMC41MzYxNDgsIDAuNzE5MDgxLCAwLjkwMTgyNCwgMS4wODQ5NSwgMS4yNjc1NCIsIFwKLSAgICAgICAgICAiMC4yMTUwNDYsIDAuNDAzODgxLCAwLjU1MDI2NCwgMC43MzMyLCAwLjkxNTk0MywgMS4wOTkwNywgMS4yODE2NSIsIFwKLSAgICAgICAgICAiMC4yMzU0MTYsIDAuNDI0Mjc5LCAwLjU3MDYzMywgMC43NTM1NTcsIDAuOTM2MzQzLCAxLjExOTM4LCAxLjMwMjAyIiwgXAotICAgICAgICAgICIwLjI1MDc5OSwgMC40Mzk2ODQsIDAuNTg2MDYxLCAwLjc2OTAwOSwgMC45NTE4NDMsIDEuMTM0NzUsIDEuMzE3NDYiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTA5MjMsIDAuNDY3NjMsIDAuNzYxNzc4LCAxLjEzNDkxLCAxLjUwNjksIDEuODc0OTQsIDIuMjQ3MzEiLCBcCi0gICAgICAgICAgIjAuMTA5MjMzLCAwLjQ2NzY0MiwgMC43NjE3OTIsIDEuMTMxOTcsIDEuNTA2OTQsIDEuODc2MTcsIDIuMjUzMzMiLCBcCi0gICAgICAgICAgIjAuMTA5MTQ1LCAwLjQ2NzYxMywgMC43NjEzMzIsIDEuMTM0OTQsIDEuNTA2ODIsIDEuODc2MDQsIDIuMjUyNSIsIFwKLSAgICAgICAgICAiMC4xMDkxNjYsIDAuNDY3Njc0LCAwLjc2MTkzMSwgMS4xMzY3NywgMS41MDY3NiwgMS44NzU3OSwgMi4yNTI1NiIsIFwKLSAgICAgICAgICAiMC4xMDkxNTgsIDAuNDY3NjgyLCAwLjc2MTkyNywgMS4xMzY3OCwgMS41MDcxOSwgMS44NzU3OSwgMi4yNTI1MyIsIFwKLSAgICAgICAgICAiMC4xMDkxLCAwLjQ2NzYzMywgMC43NjI3NzYsIDEuMTM0OTUsIDEuNTA2ODQsIDEuODc2MDcsIDIuMjUyNTMiLCBcCi0gICAgICAgICAgIjAuMTA5MjUzLCAwLjQ2NzY5NCwgMC43NjE4ODMsIDEuMTMxOTMsIDEuNTA5OTksIDEuODc1MiwgMi4yNTMzNCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xOTA3ODIsIDAuNDAxNzQ0LCAwLjU2NzAxNCwgMC43NzMzNTksIDAuOTc5NjEyLCAxLjE4NTg3LCAxLjM5MjEzIiwgXAotICAgICAgICAgICIwLjIwMjg3OCwgMC40MTM4NDUsIDAuNTc5MTE2LCAwLjc4NTQ2NCwgMC45OTE3ODEsIDEuMTk3OTYsIDEuNDA0MjMiLCBcCi0gICAgICAgICAgIjAuMjE4NTI0LCAwLjQyOTUxNSwgMC41OTQ3ODcsIDAuODAxMTM0LCAxLjAwNzM5LCAxLjIxMzY0LCAxLjQxOTg5IiwgXAotICAgICAgICAgICIwLjIzMzU5NSwgMC40NDQ1NjcsIDAuNjA5ODU4LCAwLjgxNjIwMywgMS4wMjI0NiwgMS4yMjg3LCAxLjQzNDk1IiwgXAotICAgICAgICAgICIwLjI0NzgxOCwgMC40NTg3NzYsIDAuNjI0MDc5LCAwLjgzMDQxMSwgMS4wMzY3NSwgMS4yNDI5MiwgMS40NDkxNiIsIFwKLSAgICAgICAgICAiMC4yNjg5MzMsIDAuNDc5ODU5LCAwLjY0NTA4OSwgMC44NTE0NzYsIDEuMDU3NzMsIDEuMjYzOTksIDEuNDcwMjIiLCBcCi0gICAgICAgICAgIjAuMjg1NDcxLCAwLjQ5NjM5MiwgMC42NjE2MDgsIDAuODY4MDA4LCAxLjA3NDI2LCAxLjI4MDU0LCAxLjQ4Njg0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExNDQwNCwgMC41MTI2NzUsIDAuODM5MTg4LCAxLjI0ODU5LCAxLjY1ODc3LCAyLjA2ODcxLCAyLjQ3NTY1IiwgXAotICAgICAgICAgICIwLjExNDQxNSwgMC41MTI0MDMsIDAuODM4OTQ3LCAxLjI0ODU5LCAxLjY1ODkxLCAyLjA2ODcxLCAyLjQ3ODUzIiwgXAotICAgICAgICAgICIwLjExNDM4MiwgMC41MTI0NjYsIDAuODM4ODUxLCAxLjI0ODU5LCAxLjY1ODgsIDIuMDY4NjYsIDIuNDc4MDkiLCBcCi0gICAgICAgICAgIjAuMTE0NDA1LCAwLjUxMjMzOCwgMC44Mzg4NTYsIDEuMjQ4NiwgMS42NTg0MiwgMi4wNjg2MSwgMi40NzgwOCIsIFwKLSAgICAgICAgICAiMC4xMTQ0NTYsIDAuNTEyNjEzLCAwLjgzODQxMywgMS4yNDg0NCwgMS42NTg3LCAyLjA2ODk2LCAyLjQ3NzYiLCBcCi0gICAgICAgICAgIjAuMTE0NDIyLCAwLjUxMjQzNSwgMC44Mzg3NTcsIDEuMjQ4NDQsIDEuNjU4NzgsIDIuMDY4NDIsIDIuNDc4NjUiLCBcCi0gICAgICAgICAgIjAuMTE0MjcyLCAwLjUxMjU3MSwgMC44Mzg3NTksIDEuMjQ4NDMsIDEuNjU4NzksIDIuMDY4MzYsIDIuNDc5NzQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDMyMjgsIDAuMDAzMjYzLCAwLjAwMzI2NiwgMC4wMDMyNjksIDAuMDAzMjY5LCAwLjAwMzI3LCAwLjAwMzI3MSIsIFwKLSAgICAgICAgICAiMC4wMDMyMTcsIDAuMDAzMjUzLCAwLjAwMzI1NywgMC4wMDMyNTksIDAuMDAzMjYsIDAuMDAzMjYxLCAwLjAwMzI2MSIsIFwKLSAgICAgICAgICAiMC4wMDMyMDcsIDAuMDAzMjQ2LCAwLjAwMzI1LCAwLjAwMzI1MiwgMC4wMDMyNTMsIDAuMDAzMjU0LCAwLjAwMzI1NCIsIFwKLSAgICAgICAgICAiMC4wMDMxOTksIDAuMDAzMjQsIDAuMDAzMjQ1LCAwLjAwMzI0OCwgMC4wMDMyNDksIDAuMDAzMjUsIDAuMDAzMjUiLCBcCi0gICAgICAgICAgIjAuMDAzMTkyLCAwLjAwMzIzNiwgMC4wMDMyNDIsIDAuMDAzMjQ0LCAwLjAwMzI0NiwgMC4wMDMyNDcsIDAuMDAzMjQ3IiwgXAotICAgICAgICAgICIwLjAwMzE4NCwgMC4wMDMyMzEsIDAuMDAzMjM4LCAwLjAwMzI0MSwgMC4wMDMyNDIsIDAuMDAzMjQ0LCAwLjAwMzI0NSIsIFwKLSAgICAgICAgICAiMC4wMDMxOCwgMC4wMDMyMjksIDAuMDAzMjM1LCAwLjAwMzIzOSwgMC4wMDMyNDEsIDAuMDAzMjQyLCAwLjAwMzI0MyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjU0MiwgMC4wMDI1OCwgMC4wMDI1ODQsIDAuMDAyNTg2LCAwLjAwMjU4OCwgMC4wMDI1ODgsIDAuMDAyNTg5IiwgXAotICAgICAgICAgICIwLjAwMjUyOCwgMC4wMDI1NjcsIDAuMDAyNTcxLCAwLjAwMjU3NCwgMC4wMDI1NzUsIDAuMDAyNTc1LCAwLjAwMjU3NiIsIFwKLSAgICAgICAgICAiMC4wMDI1MTgsIDAuMDAyNTU4LCAwLjAwMjU2MiwgMC4wMDI1NjUsIDAuMDAyNTY2LCAwLjAwMjU2NiwgMC4wMDI1NjciLCBcCi0gICAgICAgICAgIjAuMDAyNTEyLCAwLjAwMjU1MiwgMC4wMDI1NTcsIDAuMDAyNTU5LCAwLjAwMjU2LCAwLjAwMjU2MSwgMC4wMDI1NjEiLCBcCi0gICAgICAgICAgIjAuMDAyNTA3LCAwLjAwMjU0OSwgMC4wMDI1NTQsIDAuMDAyNTU2LCAwLjAwMjU1NywgMC4wMDI1NTcsIDAuMDAyNTU3IiwgXAotICAgICAgICAgICIwLjAwMjUwMSwgMC4wMDI1NDUsIDAuMDAyNTUsIDAuMDAyNTUzLCAwLjAwMjU1NCwgMC4wMDI1NTQsIDAuMDAyNTU1IiwgXAotICAgICAgICAgICIwLjAwMjQ5OCwgMC4wMDI1NDMsIDAuMDAyNTQ5LCAwLjAwMjU1MiwgMC4wMDI1NTMsIDAuMDAyNTU0LCAwLjAwMjU1NCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjIwNywgMC4wMDIyMzksIDAuMDAyMjQzLCAwLjAwMjI0NCwgMC4wMDIyNDUsIDAuMDAyMjQ1LCAwLjAwMjI0NiIsIFwKLSAgICAgICAgICAiMC4wMDIxODIsIDAuMDAyMjE1LCAwLjAwMjIxOCwgMC4wMDIyMjIsIDAuMDAyMjIyLCAwLjAwMjIyMSwgMC4wMDIyMjIiLCBcCi0gICAgICAgICAgIjAuMDAyMTYyLCAwLjAwMjE5OCwgMC4wMDIyMDEsIDAuMDAyMjAzLCAwLjAwMjIwNCwgMC4wMDIyMDUsIDAuMDAyMjA1IiwgXAotICAgICAgICAgICIwLjAwMjE1LCAwLjAwMjE4NywgMC4wMDIxOTIsIDAuMDAyMTk0LCAwLjAwMjE5NSwgMC4wMDIxOTUsIDAuMDAyMTk2IiwgXAotICAgICAgICAgICIwLjAwMjE0MSwgMC4wMDIxOCwgMC4wMDIxODYsIDAuMDAyMTg4LCAwLjAwMjE4OSwgMC4wMDIxOSwgMC4wMDIxOSIsIFwKLSAgICAgICAgICAiMC4wMDIxMzIsIDAuMDAyMTc0LCAwLjAwMjE4MiwgMC4wMDIxODQsIDAuMDAyMTg1LCAwLjAwMjE4NywgMC4wMDIxODciLCBcCi0gICAgICAgICAgIjAuMDAyMTI5LCAwLjAwMjE3MywgMC4wMDIxOCwgMC4wMDIxODQsIDAuMDAyMTg2LCAwLjAwMjE4NywgMC4wMDIxODgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDIzMjksIDAuMDAyMzc4LCAwLjAwMjM4NSwgMC4wMDIzODYsIDAuMDAyMzksIDAuMDAyMzkxLCAwLjAwMjM5MSIsIFwKLSAgICAgICAgICAiMC4wMDIzMTgsIDAuMDAyMzY3LCAwLjAwMjM3NCwgMC4wMDIzNzYsIDAuMDAyMzc5LCAwLjAwMjM3OSwgMC4wMDIzODEiLCBcCi0gICAgICAgICAgIjAuMDAyMzEyLCAwLjAwMjM2MSwgMC4wMDIzNjgsIDAuMDAyMzcxLCAwLjAwMjM3MywgMC4wMDIzNzQsIDAuMDAyMzc1IiwgXAotICAgICAgICAgICIwLjAwMjMwNiwgMC4wMDIzNTYsIDAuMDAyMzYzLCAwLjAwMjM2NywgMC4wMDIzNjksIDAuMDAyMzcsIDAuMDAyMzcxIiwgXAotICAgICAgICAgICIwLjAwMjMwMiwgMC4wMDIzNTMsIDAuMDAyMzYsIDAuMDAyMzY0LCAwLjAwMjM2NiwgMC4wMDIzNjgsIDAuMDAyMzY4IiwgXAotICAgICAgICAgICIwLjAwMjI5OCwgMC4wMDIzNTEsIDAuMDAyMzU4LCAwLjAwMjM2MywgMC4wMDIzNjUsIDAuMDAyMzY2LCAwLjAwMjM2NyIsIFwKLSAgICAgICAgICAiMC4wMDIyOTYsIDAuMDAyMzQ5LCAwLjAwMjM1OCwgMC4wMDIzNjIsIDAuMDAyMzY0LCAwLjAwMjM2NiwgMC4wMDIzNjYiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IEFEREhYTCAqCi0gKiAtLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKEFEREhYTCkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjE1ODIwNDsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNDAyNDk7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNDAyNDk7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNDAxNDg7Ci0gIH0KLSAgcGluKEIpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTQ4MjQ7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNDY5Mzc7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNDgyNDsKLSAgfQotICBwaW4oQ08pICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4wNzQxODIzOwotICAgIGZ1bmN0aW9uIDogIihBIEIpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMjA0ODksIDAuMjQ1NjM4LCAwLjQ3MzE4NywgMC44NTM3MTIsIDEuMjMzNSwgMi4xMTg1NSwgMi42MjM1OSIsIFwKLSAgICAgICAgICAiMC4yMzE4NzMsIDAuMjU3MDI2LCAwLjQ4NDY0LCAwLjg2NDk2NCwgMS4yNDQzNiwgMi4xMzA2LCAyLjYzNDczIiwgXAotICAgICAgICAgICIwLjI0NTUxNSwgMC4yNzA4MDcsIDAuNDk3OTY1LCAwLjg3ODc3NCwgMS4yNTkzNSwgMi4xNDI4MSwgMi42NDkwNSIsIFwKLSAgICAgICAgICAiMC4yNTkxMDMsIDAuMjg0MzAyLCAwLjUxMTkxLCAwLjg5MjIzOSwgMS4yNzIxMiwgMi4xNTcwNCwgMi42NjQ0NyIsIFwKLSAgICAgICAgICAiMC4yNzI2NTcsIDAuMjk3ODkxLCAwLjUyNTUxOCwgMC45MDM5MTksIDEuMjg1NTgsIDIuMTcwMzYsIDIuNjczODgiLCBcCi0gICAgICAgICAgIjAuMjk0MDc1LCAwLjMxOTQyMSwgMC41NDc0OTYsIDAuOTI3MzQsIDEuMzA3MjIsIDIuMTkwODcsIDIuNjk3MzgiLCBcCi0gICAgICAgICAgIjAuMzEyNDA2LCAwLjMzNzc1MywgMC41NjU5MjcsIDAuOTQ1NjY2LCAxLjMyNTQ3LCAyLjIwOTIzLCAyLjcxNTYzIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI3NTcxMSwgMC4zMjU1NzMsIDAuNzk0Nzk2LCAxLjU2OTQxLCAyLjM0ODg2LCA0LjEwODc5LCA1LjE5MDE1IiwgXAotICAgICAgICAgICIwLjI3NTc4MiwgMC4zMjU1MjYsIDAuNzk0NTc5LCAxLjU1NDc4LCAyLjMyMzQ2LCA0LjE2MjIsIDUuMTQzMTkiLCBcCi0gICAgICAgICAgIjAuMjc1OTEyLCAwLjMyOTI3NSwgMC43OTUxOTEsIDEuNTcwNzIsIDIuMzQ0MTcsIDQuMTI1NjQsIDUuMTM0MjgiLCBcCi0gICAgICAgICAgIjAuMjc2MDU0LCAwLjMyNTkyNSwgMC43OTQ0MTIsIDEuNTUxNjYsIDIuMzQ4NTUsIDQuMTA5MTIsIDUuMTg3MjkiLCBcCi0gICAgICAgICAgIjAuMjc2MjM3LCAwLjMyNjA1MSwgMC43OTQxOTIsIDEuNTc2NjMsIDIuMzQ0ODcsIDQuMTE2MTUsIDUuMTkwNTEiLCBcCi0gICAgICAgICAgIjAuMjc2MjM3LCAwLjMyNjEsIDAuNzg1NzUxLCAxLjU2NTQyLCAyLjMyMTA1LCA0LjEzNTUzLCA1LjEzNjg2IiwgXAotICAgICAgICAgICIwLjI3NjM1MywgMC4zMjYxMzgsIDAuNzkxNzk4LCAxLjU2NTM1LCAyLjM1MTQ1LCA0LjEzNDk1LCA1LjEzNzUyIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIwMDM3NCwgMC4yMzAxMTQsIDAuNDk4MDE2LCAwLjk0MzMwMSwgMS4zODg0NywgMi40Mjg5OSwgMy4wMzI0NSIsIFwKLSAgICAgICAgICAiMC4yMTE5OTIsIDAuMjQxNzMyLCAwLjUwOTYzOCwgMC45NTQ5MTcsIDEuNDAwMDgsIDIuNDQwNjIsIDMuMDQ0MDgiLCBcCi0gICAgICAgICAgIjAuMjI2NzMyLCAwLjI1NjQ5NCwgMC41MjQ2MzQsIDAuOTcwOTczLCAxLjQxNTUzLCAyLjQ1NDE1LCAzLjA1MTcyIiwgXAotICAgICAgICAgICIwLjI0MTQyMSwgMC4yNzExNTcsIDAuNTM5MTAxLCAwLjk4NDM1NywgMS40Mjk1NywgMi40NzAyOCwgMy4wNzMxMiIsIFwKLSAgICAgICAgICAiMC4yNTUzMzYsIDAuMjg1MTEzLCAwLjU1MzA1MiwgMC45OTgwODUsIDEuNDQ0LCAyLjQ5MTA5LCAzLjA4MTE4IiwgXAotICAgICAgICAgICIwLjI3NTY4MiwgMC4zMDU0NjUsIDAuNTczNDEzLCAxLjAxODcxLCAxLjQ2NDQ4LCAyLjUxMTMsIDMuMTAxNDQiLCBcCi0gICAgICAgICAgIjAuMjkxNzc0LCAwLjMyMTU1OCwgMC41ODk1MTgsIDEuMDM2MTksIDEuNDgwMzUsIDIuNTI3NzgsIDMuMTE1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMxMTExNiwgMC4zNzA5NjIsIDAuODk4OTk0LCAxLjc3OTg3LCAyLjY1ODg0LCA0LjcyODc0LCA1LjkxMzI2IiwgXAotICAgICAgICAgICIwLjMxMTEyNSwgMC4zNzA5NjUsIDAuODk4OTkzLCAxLjc3OTM3LCAyLjY1OTA3LCA0LjcyODc3LCA1LjkxMzI3IiwgXAotICAgICAgICAgICIwLjMxMDQwNiwgMC4zNzEwMjMsIDAuODk3NTk0LCAxLjc4Mjg2LCAyLjY2MjEyLCA0LjcyOTY2LCA1Ljg5NTg1IiwgXAotICAgICAgICAgICIwLjMxMTAzMywgMC4zNzA5NzgsIDAuODk4OTkzLCAxLjc3ODE5LCAyLjY1OTEzLCA0LjcyODUxLCA1LjkxMjY0IiwgXAotICAgICAgICAgICIwLjMxMTM1NiwgMC4zNzA5MDQsIDAuODk4OTY4LCAxLjc3ODE4LCAyLjY2NTg4LCA0LjcyMzExLCA1Ljg5MzU1IiwgXAotICAgICAgICAgICIwLjMxMTYwNywgMC4zNzEwNTEsIDAuODk4OTY4LCAxLjc3ODM5LCAyLjY2NDMsIDQuNzIzNTYsIDUuODk0MyIsIFwKLSAgICAgICAgICAiMC4zMTE4NTUsIDAuMzcxMTYzLCAwLjg5ODk4LCAxLjc4MzAyLCAyLjY2NjI2LCA0LjcyMzA5LCA1LjkwMTY2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIxNTM0MiwgMC4yNDA3MjcsIDAuNDY3OTU3LCAwLjg0Njk3NCwgMS4yMjgzOSwgMi4xMTMyNCwgMi42MTg5NyIsIFwKLSAgICAgICAgICAiMC4yMjUzNTUsIDAuMjUwNjYzLCAwLjQ3NzgyMiwgMC44NTg1MjMsIDEuMjM2NTcsIDIuMTIxNjQsIDIuNjI4MjgiLCBcCi0gICAgICAgICAgIjAuMjM5MDIzLCAwLjI2NDI4LCAwLjQ5MTczMSwgMC44NzIwOTIsIDEuMjUxNSwgMi4xMzU0NiwgMi42NDEzOCIsIFwKLSAgICAgICAgICAiMC4yNTI3ODcsIDAuMjc4MTE4LCAwLjUwNTI5MywgMC44ODYwODIsIDEuMjY1ODcsIDIuMTQ5NzIsIDIuNjU2MTkiLCBcCi0gICAgICAgICAgIjAuMjY2NTYyLCAwLjI5MTc2NywgMC41MTk0MTUsIDAuODk5NzU0LCAxLjI3ODExLCAyLjE2Mjc0LCAyLjY2OTQyIiwgXAotICAgICAgICAgICIwLjI4ODQ3OCwgMC4zMTM3NjMsIDAuNTQxOTc0LCAwLjkyMTY5NSwgMS4zMDE2NSwgMi4xODUxNCwgMi42OTEyNyIsIFwKLSAgICAgICAgICAiMC4zMDc0NzMsIDAuMzMyNzM1LCAwLjU2MDE0NSwgMC45NDA3MDIsIDEuMzIwMjQsIDIuMjA0ODQsIDIuNzA5NTIiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjc0NDIyLCAwLjMyNTA0OCwgMC43OTU0OTgsIDEuNTc2NDgsIDIuMzQ5MjYsIDQuMTA4NDgsIDUuMTg5MjIiLCBcCi0gICAgICAgICAgIjAuMjc0NzA4LCAwLjMyNDU5OSwgMC43OTU2NjksIDEuNTUwMDgsIDIuMzU2NjQsIDQuMTM2NTcsIDUuMTM3NjIiLCBcCi0gICAgICAgICAgIjAuMjc0OTkxLCAwLjMyNDg0NSwgMC43OTUwOCwgMS41NTc4MSwgMi4zMjIzNywgNC4xNzQ3OCwgNS4xNTEyNiIsIFwKLSAgICAgICAgICAiMC4yNzUyOTksIDAuMzI1OTExLCAwLjc5NTUzOCwgMS41NzAwNywgMi4zNTI0OCwgNC4xMjg4MSwgNS4xMzM5NSIsIFwKLSAgICAgICAgICAiMC4yNzU0NzMsIDAuMzI1MTA3LCAwLjc5NTQ2MywgMS41NTAxOCwgMi4zNTU3NCwgNC4xMzg3NiwgNS4xNDExOSIsIFwKLSAgICAgICAgICAiMC4yNzU1NjIsIDAuMzI0OTIsIDAuNzg4MDk3LCAxLjU2NTkyLCAyLjMzNjgyLCA0LjEzMzY0LCA1LjE0MTE3IiwgXAotICAgICAgICAgICIwLjI3NTU0OCwgMC4zMjUwNzIsIDAuNzk1MjUzLCAxLjU2NTgyLCAyLjMyMDE0LCA0LjEyMDc1LCA1LjE4OTY1Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE5NzQyNCwgMC4yMjcxMjUsIDAuNDk1MDUxLCAwLjk0MzI0MiwgMS4zODU2OCwgMi40MjYwOCwgMy4wMTg3NCIsIFwKLSAgICAgICAgICAiMC4yMDkwODMsIDAuMjM4Njk0LCAwLjUwNzA0MSwgMC45NTQ4NzUsIDEuMzk3NSwgMi40NDE0OCwgMy4wMzU2NCIsIFwKLSAgICAgICAgICAiMC4yMjM4MjgsIDAuMjUzNTAyLCAwLjUyMTQxOCwgMC45Njk2NDksIDEuNDEyMTYsIDIuNDUxODEsIDMuMDQ1MjEiLCBcCi0gICAgICAgICAgIjAuMjM4MjE5LCAwLjI2Nzk2NCwgMC41MzU5LCAwLjk4NDEyNSwgMS40MjYzMywgMi40NjcxNCwgMy4wNTk1OSIsIFwKLSAgICAgICAgICAiMC4yNTE4NTUsIDAuMjgxNTE2LCAwLjU0OTA4NSwgMC45OTc2NjksIDEuNDQwMSwgMi40ODA4MSwgMy4wNzMwOSIsIFwKLSAgICAgICAgICAiMC4yNzEzNDUsIDAuMzAxMDM0LCAwLjU2ODgyNSwgMS4wMTcyMSwgMS40NTk2NiwgMi41MDQ5NiwgMy4xMDE5MyIsIFwKLSAgICAgICAgICAiMC4yODY5MDMsIDAuMzE2NTQxLCAwLjU4NDMzOSwgMS4wMjk0OSwgMS40NzUyLCAyLjUxNDc4LCAzLjEwOTU2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMxMDM5NywgMC4zNjg5NTIsIDAuODk5MTQxLCAxLjc4MDY4LCAyLjY2MzIzLCA0LjczNDg0LCA1Ljg5MDE3IiwgXAotICAgICAgICAgICIwLjMxMDQ4NSwgMC4zNjg5MzUsIDAuODk5MzEsIDEuNzgwMDUsIDIuNjYyOTksIDQuNzM2MTMsIDUuODkzODIiLCBcCi0gICAgICAgICAgIjAuMzEwNDg4LCAwLjM2ODk0NywgMC44OTkxMzIsIDEuNzgwODksIDIuNjYwMjEsIDQuNzI4NjgsIDUuODkyOTYiLCBcCi0gICAgICAgICAgIjAuMzEwMTc0LCAwLjM2ODk0OCwgMC44OTkxNzEsIDEuNzgwNzYsIDIuNjYyMzksIDQuNzMyNywgNS44ODY5OSIsIFwKLSAgICAgICAgICAiMC4zMTA1MTMsIDAuMzY4OTg2LCAwLjg5OTIzNCwgMS43ODAwNCwgMi42NjE1LCA0LjczMDgzLCA1Ljg5OTkiLCBcCi0gICAgICAgICAgIjAuMzEwNTYxLCAwLjM2OTE4LCAwLjg5OTAzNywgMS43ODAxOCwgMi42NjU4NSwgNC43MzU3NiwgNS44OTQ2NCIsIFwKLSAgICAgICAgICAiMC4zMTA4MzgsIDAuMzY5NDIxLCAwLjg5OTIyNCwgMS43ODE2NCwgMi42NjgzMSwgNC43MTU4NSwgNS45MDkwNSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTU0MywgMC4wMDE1NDQsIDAuMDAxNTQ1LCAwLjAwMTU0NiwgMC4wMDE1NDYsIDAuMDAxNTQ2LCAwLjAwMTU0NiIsIFwKLSAgICAgICAgICAiMC4wMDE1MjgsIDAuMDAxNTI5LCAwLjAwMTUzLCAwLjAwMTUzMSwgMC4wMDE1MzEsIDAuMDAxNTMyLCAwLjAwMTUzMSIsIFwKLSAgICAgICAgICAiMC4wMDE1MTgsIDAuMDAxNTE4LCAwLjAwMTUyLCAwLjAwMTUyLCAwLjAwMTUyLCAwLjAwMTUyMSwgMC4wMDE1MjEiLCBcCi0gICAgICAgICAgIjAuMDAxNTEyLCAwLjAwMTUxMiwgMC4wMDE1MTQsIDAuMDAxNTE0LCAwLjAwMTUxNSwgMC4wMDE1MTUsIDAuMDAxNTE1IiwgXAotICAgICAgICAgICIwLjAwMTUwOCwgMC4wMDE1MDgsIDAuMDAxNTEsIDAuMDAxNTExLCAwLjAwMTUxMSwgMC4wMDE1MTEsIDAuMDAxNTExIiwgXAotICAgICAgICAgICIwLjAwMTUwNSwgMC4wMDE1MDUsIDAuMDAxNTA4LCAwLjAwMTUwOCwgMC4wMDE1MDgsIDAuMDAxNTA5LCAwLjAwMTUwOSIsIFwKLSAgICAgICAgICAiMC4wMDE1MDMsIDAuMDAxNTA0LCAwLjAwMTUwNiwgMC4wMDE1MDcsIDAuMDAxNTA3LCAwLjAwMTUwNywgMC4wMDE1MDciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDIxOTIsIDAuMDAyMTkyLCAwLjAwMjE5MywgMC4wMDIxOTQsIDAuMDAyMTk0LCAwLjAwMjE5NCwgMC4wMDIxOTQiLCBcCi0gICAgICAgICAgIjAuMDAyMTgxLCAwLjAwMjE4MiwgMC4wMDIxODMsIDAuMDAyMTgzLCAwLjAwMjE4MywgMC4wMDIxODMsIDAuMDAyMTg0IiwgXAotICAgICAgICAgICIwLjAwMjE3MywgMC4wMDIxNzQsIDAuMDAyMTc1LCAwLjAwMjE3NiwgMC4wMDIxNzYsIDAuMDAyMTc2LCAwLjAwMjE3NiIsIFwKLSAgICAgICAgICAiMC4wMDIxNjgsIDAuMDAyMTY5LCAwLjAwMjE3MSwgMC4wMDIxNzIsIDAuMDAyMTcyLCAwLjAwMjE3MiwgMC4wMDIxNzIiLCBcCi0gICAgICAgICAgIjAuMDAyMTY1LCAwLjAwMjE2NSwgMC4wMDIxNjgsIDAuMDAyMTY4LCAwLjAwMjE2OSwgMC4wMDIxNjksIDAuMDAyMTY5IiwgXAotICAgICAgICAgICIwLjAwMjE2MSwgMC4wMDIxNjIsIDAuMDAyMTY1LCAwLjAwMjE2NiwgMC4wMDIxNjYsIDAuMDAyMTY2LCAwLjAwMjE2NiIsIFwKLSAgICAgICAgICAiMC4wMDIxNiwgMC4wMDIxNiwgMC4wMDIxNjQsIDAuMDAyMTY1LCAwLjAwMjE2NSwgMC4wMDIxNjUsIDAuMDAyMTY1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxMzI2LCAwLjAwMTMyNiwgMC4wMDEzMjksIDAuMDAxMzMsIDAuMDAxMzMsIDAuMDAxMzMsIDAuMDAxMzMxIiwgXAotICAgICAgICAgICIwLjAwMTMxMywgMC4wMDEzMTQsIDAuMDAxMzE3LCAwLjAwMTMxOCwgMC4wMDEzMTgsIDAuMDAxMzE5LCAwLjAwMTMxOCIsIFwKLSAgICAgICAgICAiMC4wMDEzMDUsIDAuMDAxMzA2LCAwLjAwMTMwOSwgMC4wMDEzMSwgMC4wMDEzMSwgMC4wMDEzMTEsIDAuMDAxMzExIiwgXAotICAgICAgICAgICIwLjAwMTI5OSwgMC4wMDEzLCAwLjAwMTMwMywgMC4wMDEzMDQsIDAuMDAxMzA0LCAwLjAwMTMwNCwgMC4wMDEzMDUiLCBcCi0gICAgICAgICAgIjAuMDAxMjk2LCAwLjAwMTI5NywgMC4wMDEzLCAwLjAwMTMwMSwgMC4wMDEzMDEsIDAuMDAxMzAxLCAwLjAwMTMwMiIsIFwKLSAgICAgICAgICAiMC4wMDEyOTQsIDAuMDAxMjk1LCAwLjAwMTI5OCwgMC4wMDEyOTksIDAuMDAxMywgMC4wMDEzLCAwLjAwMTMiLCBcCi0gICAgICAgICAgIjAuMDAxMjkyLCAwLjAwMTI5MywgMC4wMDEyOTYsIDAuMDAxMjk4LCAwLjAwMTI5OCwgMC4wMDEyOTksIDAuMDAxMjk5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyMTUsIDAuMDAyMTUxLCAwLjAwMjE1MywgMC4wMDIxNTQsIDAuMDAyMTU0LCAwLjAwMjE1NCwgMC4wMDIxNTQiLCBcCi0gICAgICAgICAgIjAuMDAyMTUzLCAwLjAwMjE1MywgMC4wMDIxNTYsIDAuMDAyMTU2LCAwLjAwMjE1NywgMC4wMDIxNTcsIDAuMDAyMTU3IiwgXAotICAgICAgICAgICIwLjAwMjE1OCwgMC4wMDIxNTksIDAuMDAyMTYyLCAwLjAwMjE2MywgMC4wMDIxNjMsIDAuMDAyMTY0LCAwLjAwMjE2NCIsIFwKLSAgICAgICAgICAiMC4wMDIxNjMsIDAuMDAyMTY0LCAwLjAwMjE2OCwgMC4wMDIxNjksIDAuMDAyMTY5LCAwLjAwMjE3LCAwLjAwMjE3IiwgXAotICAgICAgICAgICIwLjAwMjE3MSwgMC4wMDIxNzIsIDAuMDAyMTc1LCAwLjAwMjE3NywgMC4wMDIxNzgsIDAuMDAyMTc4LCAwLjAwMjE3OCIsIFwKLSAgICAgICAgICAiMC4wMDIxODEsIDAuMDAyMTgzLCAwLjAwMjE4NywgMC4wMDIxODksIDAuMDAyMTg5LCAwLjAwMjE5LCAwLjAwMjE5IiwgXAotICAgICAgICAgICIwLjAwMjE4OCwgMC4wMDIxOSwgMC4wMDIxOTQsIDAuMDAyMTk2LCAwLjAwMjE5NywgMC4wMDIxOTgsIDAuMDAyMTk4Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMDcwNDEzNzsKLSAgICBmdW5jdGlvbiA6ICIoQV5CKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjQ4NTA3LCAwLjI3Mzc5MiwgMC41MDExODcsIDAuODc5OTY1LCAxLjI1ODc1LCAyLjE0MzAzLCAyLjY0Nzc3IiwgXAotICAgICAgICAgICIwLjI2MDM3MiwgMC4yODU2ODgsIDAuNTEzMDM5LCAwLjg5MjA4MiwgMS4yNzEwMSwgMi4xNTQ4NywgMi42NTk3NyIsIFwKLSAgICAgICAgICAiMC4yNzU0ODMsIDAuMzAwNzk5LCAwLjUyODE1NywgMC45MDY5NzMsIDEuMjg1OTYsIDIuMTY5OCwgMi42NzUyOSIsIFwKLSAgICAgICAgICAiMC4yOTA2MjcsIDAuMzE1OTQ0LCAwLjU0MzMxMSwgMC45MjIxMDIsIDEuMzAxMTYsIDIuMTg0ODYsIDIuNjg5ODUiLCBcCi0gICAgICAgICAgIjAuMzA1NzE5LCAwLjMzMTAzNywgMC41NTg0MjQsIDAuOTM3MjA5LCAxLjMxNjE5LCAyLjIwMDEsIDIuNzA0OTMiLCBcCi0gICAgICAgICAgIjAuMzI5OTMsIDAuMzU1MjI2LCAwLjU4MjYyNSwgMC45NjE0NTUsIDEuMzQwNzMsIDIuMjI1NDYsIDIuNzI5MTciLCBcCi0gICAgICAgICAgIjAuMzUwODc4LCAwLjM3NjIwOCwgMC42MDM1ODYsIDAuOTgyNDI5LCAxLjM2MTUsIDIuMjQ1MDEsIDIuNzUwNjUiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjc2MjAxLCAwLjMyNjc0OSwgMC43ODU4NDksIDEuNTU1MywgMi4zMjQ1LCA0LjExNDYyLCA1LjEzNDA1IiwgXAotICAgICAgICAgICIwLjI3NjMzLCAwLjMyNjczLCAwLjc4NTc4OSwgMS41NTEzMywgMi4zMTkyNiwgNC4xMTE2LCA1LjEzNzk3IiwgXAotICAgICAgICAgICIwLjI3NjMyOCwgMC4zMjY3MjksIDAuNzg1Nzg2LCAxLjU1NTMxLCAyLjMxOTg2LCA0LjEwOTU0LCA1LjEzODA0IiwgXAotICAgICAgICAgICIwLjI3NjMzNCwgMC4zMjY3MzQsIDAuNzg1ODA2LCAxLjU1NTI0LCAyLjMxOTQ5LCA0LjExMDE0LCA1LjEzNDA2IiwgXAotICAgICAgICAgICIwLjI3NjMyOCwgMC4zMjY2ODgsIDAuNzg1ODE2LCAxLjU1NTIxLCAyLjMyMDk2LCA0LjEyMDQ5LCA1LjEzNjY3IiwgXAotICAgICAgICAgICIwLjI3NjA1NywgMC4zMjY3MjksIDAuNzg1NzU3LCAxLjU1NTMsIDIuMzE5MjQsIDQuMTEzMjgsIDUuMTM0MTciLCBcCi0gICAgICAgICAgIjAuMjc2MzQ3LCAwLjMyNjc0MiwgMC43ODQ0NzMsIDEuNTU0NjUsIDIuMzE5NDUsIDQuMTIwMzksIDUuMTM5NDIiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjYxOTYxLCAwLjI5MTcyLCAwLjU1OTE0MSwgMS4wMDQ5NSwgMS40NTA1MiwgMi40OTAxNiwgMy4wODQ0NCIsIFwKLSAgICAgICAgICAiMC4yNzMyOSwgMC4zMDMwNDgsIDAuNTcwNDY5LCAxLjAxNjE5LCAxLjQ2MTg3LCAyLjUwMTQ5LCAzLjA5NTUyIiwgXAotICAgICAgICAgICIwLjI4ODA1NiwgMC4zMTc4MDcsIDAuNTg1MjU2LCAxLjAzMTA1LCAxLjQ3NjUyLCAyLjUxNjQ3LCAzLjExMDQ2IiwgXAotICAgICAgICAgICIwLjMwMjM1MSwgMC4zMzIxMDUsIDAuNTk5NTU5LCAxLjA0NTM3LCAxLjQ5MDgsIDIuNTMwODMsIDMuMTI0OTIiLCBcCi0gICAgICAgICAgIjAuMzE2ODAxLCAwLjM0NjU1NywgMC42MTQwNDEsIDEuMDU5NzcsIDEuNTA1NjUsIDIuNTQ1ODcsIDMuMTM5MDMiLCBcCi0gICAgICAgICAgIjAuMzM5MjgsIDAuMzY5MDM3LCAwLjYzNjUzMiwgMS4wODIzNiwgMS41Mjc5OCwgMi41Njc2MiwgMy4xNjE1OCIsIFwKLSAgICAgICAgICAiMC4zNTc5OTcsIDAuMzg3NzYxLCAwLjY1NTI1OCwgMS4xMDEwNiwgMS41NDY2LCAyLjU4Njc1LCAzLjE4MDI0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMxNTc1MiwgMC4zNzM5ODUsIDAuOTAyMzUsIDEuNzgzMjQsIDIuNjYyMTEsIDQuNzE4NjUsIDUuODkxODYiLCBcCi0gICAgICAgICAgIjAuMzE1NzY2LCAwLjM3Mzk4LCAwLjkwMjM1LCAxLjc4MjQ5LCAyLjY2Mjk4LCA0LjcxODY5LCA1Ljg5NDE4IiwgXAotICAgICAgICAgICIwLjMxNTc0NywgMC4zNzQwMTgsIDAuOTAyMzc2LCAxLjc4MzE0LCAyLjY2MjA0LCA0LjcyMjQ3LCA1Ljg5MTA1IiwgXAotICAgICAgICAgICIwLjMxNTc0NiwgMC4zNzQwMTIsIDAuOTAyMzU5LCAxLjc4MzA5LCAyLjY2MjU4LCA0LjcyMjY3LCA1Ljg5MjMiLCBcCi0gICAgICAgICAgIjAuMzE1NzI2LCAwLjM3NDAwNCwgMC44OTk3NjksIDEuNzgzNDMsIDIuNjY1MjcsIDQuNzI0MzcsIDUuODkzODEiLCBcCi0gICAgICAgICAgIjAuMzE1NzQ3LCAwLjM3MzkzMSwgMC45MDIzNTEsIDEuNzgzMTcsIDIuNjYyNzQsIDQuNzI0NzYsIDUuODkyNTYiLCBcCi0gICAgICAgICAgIjAuMzE1ODA1LCAwLjM3NDA1NiwgMC45MDIzNTYsIDEuNzgyMjUsIDIuNjY5NDgsIDQuNzIzNTksIDUuODkyMjkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjcyOTcyLCAwLjI5ODM0MiwgMC41MjYwNzUsIDAuOTA1MDgsIDEuMjgzOTcsIDIuMTY3NzcsIDIuNjcyNzgiLCBcCi0gICAgICAgICAgIjAuMjg0NTAzLCAwLjMwOTg3MywgMC41Mzc2MDUsIDAuOTE2NjEyLCAxLjI5NTUsIDIuMTc5MywgMi42ODQzIiwgXAotICAgICAgICAgICIwLjI5OTE1LCAwLjMyNDUxOSwgMC41NTIyOTksIDAuOTMxMjkxLCAxLjMxMDExLCAyLjE5Mzk5LCAyLjY5ODkxIiwgXAotICAgICAgICAgICIwLjMxMzYxNSwgMC4zMzg5OTYsIDAuNTY2NzI0LCAwLjk0NTczMSwgMS4zMjQ2MiwgMi4yMDg0MSwgMi43MTM1MyIsIFwKLSAgICAgICAgICAiMC4zMjczMDcsIDAuMzUyNjgsIDAuNTgwNDEzLCAwLjk1OTUxNiwgMS4zMzgyOSwgMi4yMjIxNSwgMi43MjcwNyIsIFwKLSAgICAgICAgICAiMC4zNDcwNTgsIDAuMzcyNDMzLCAwLjYwMDE2NiwgMC45NzkxODgsIDEuMzU4MDMsIDIuMjQxOTQsIDIuNzQ2ODIiLCBcCi0gICAgICAgICAgIjAuMzYyNTg3LCAwLjM4Nzk1NiwgMC42MTU2ODksIDAuOTk0NzAzLCAxLjM3MzU2LCAyLjI1NzM1LCAyLjc2MjQ5Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI3NjA3OSwgMC4zMjY3LCAwLjc4NjU0OSwgMS41NTM1NCwgMi4zMjAxOSwgNC4xMTQ5MywgNS4xNDE0MiIsIFwKLSAgICAgICAgICAiMC4yNzYwNjksIDAuMzI2NywgMC43ODY1NDgsIDEuNTUzNTYsIDIuMzIwMjEsIDQuMTE0OTMsIDUuMTQxNDIiLCBcCi0gICAgICAgICAgIjAuMjc1NjU1LCAwLjMyNjcyNSwgMC43ODQyNDEsIDEuNTU1ODYsIDIuMzIxNzQsIDQuMTE1MTksIDUuMTM4MzUiLCBcCi0gICAgICAgICAgIjAuMjc2MDY0LCAwLjMyNjY4MSwgMC43ODY1NTEsIDEuNTUzNjQsIDIuMzIwMTQsIDQuMTE1MDksIDUuMTQxMDQiLCBcCi0gICAgICAgICAgIjAuMjc2MDU5LCAwLjMyNjY0NiwgMC43ODY1MjgsIDEuNTUyMDksIDIuMzIxODUsIDQuMTIxMjUsIDUuMTM3NDYiLCBcCi0gICAgICAgICAgIjAuMjc2MDk0LCAwLjMyNjY5NSwgMC43ODY1MjksIDEuNTUzNiwgMi4zMjE3MiwgNC4xMjE1MSwgNS4xMzc1NiIsIFwKLSAgICAgICAgICAiMC4yNzYwNTMsIDAuMzI2NjQyLCAwLjc4NjUzMSwgMS41NTU4NSwgMi4zMjE5NywgNC4xMjA3OCwgNS4xMzU2OCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yOTIyODQsIDAuMzIyMDk0LCAwLjU4OTc5NCwgMS4wMzU1MSwgMS40ODExMiwgMi41MjA2OSwgMy4xMTQ3OSIsIFwKLSAgICAgICAgICAiMC4zMDQyMjgsIDAuMzM0MDI0LCAwLjYwMTcyMiwgMS4wNDc0NCwgMS40OTMwMywgMi41MzI2NywgMy4xMjY2MSIsIFwKLSAgICAgICAgICAiMC4zMTk0MTIsIDAuMzQ5MjAyLCAwLjYxNjk1NCwgMS4wNjI2NCwgMS41MDg0MSwgMi41NDc3OSwgMy4xNDE4MSIsIFwKLSAgICAgICAgICAiMC4zMzQ2MDQsIDAuMzY0NDEyLCAwLjYzMjExNCwgMS4wNzc4MiwgMS41MjM0NCwgMi41NjMsIDMuMTU3MSIsIFwKLSAgICAgICAgICAiMC4zNDk3MTIsIDAuMzc5NTIxLCAwLjY0NzIyMSwgMS4wOTI5NCwgMS41Mzg1NCwgMi41NzgxLCAzLjE3MjEiLCBcCi0gICAgICAgICAgIjAuMzcyMzM1LCAwLjQwMjEyNiwgMC42Njk4NDEsIDEuMTE1NTYsIDEuNTYxMjEsIDIuNjAwNywgMy4xOTQ3MyIsIFwKLSAgICAgICAgICAiMC4zOTAzOTcsIDAuNDIwMTkyLCAwLjY4Nzg5OCwgMS4xMzM2MiwgMS41NzkyNCwgMi42MTg3NywgMy4yMTI3OCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMTQ5MiwgMC4zNzI5OCwgMC45MDAwMTQsIDEuNzgwMjQsIDIuNjYxNTUsIDQuNzE4MzMsIDUuODk0NjgiLCBcCi0gICAgICAgICAgIjAuMzE0OTAxLCAwLjM3Mjk5NSwgMC45MDAwMDIsIDEuNzgwNTQsIDIuNjYxODksIDQuNzE3MjcsIDUuODkzNTMiLCBcCi0gICAgICAgICAgIjAuMzE0OTI5LCAwLjM3Mjk0NCwgMC45MDAwOTYsIDEuNzgwNDQsIDIuNjYwNTcsIDQuNzE4NjIsIDUuODkzIiwgXAotICAgICAgICAgICIwLjMxNDkzNywgMC4zNzMwMDEsIDAuOTAwMDIsIDEuNzgwNDQsIDIuNjYxNTEsIDQuNzE4MjEsIDUuODkzMzMiLCBcCi0gICAgICAgICAgIjAuMzE0OTQ1LCAwLjM3MzAwOCwgMC45MDAwMTgsIDEuNzgxNTcsIDIuNjYwOTgsIDQuNzE4MzQsIDUuODk0NTUiLCBcCi0gICAgICAgICAgIjAuMzE0OTMzLCAwLjM3MywgMC44OTkxOTQsIDEuNzc5ODMsIDIuNjYxMjYsIDQuNzE4NjUsIDUuODkzMTciLCBcCi0gICAgICAgICAgIjAuMzE0OTMzLCAwLjM3Mjk5NiwgMC44OTk1NzYsIDEuNzc5ODEsIDIuNjYxOTMsIDQuNzE4NjMsIDUuODkzMDIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjIxODc4LCAwLjI0NzIzMiwgMC40NzUwMjEsIDAuODU0MDAyLCAxLjIzMjg2LCAyLjExNjY2LCAyLjYyMTY1IiwgXAotICAgICAgICAgICIwLjIzMjQwNywgMC4yNTc3NjgsIDAuNDg1NTU1LCAwLjg2NDUyNiwgMS4yNDM0NiwgMi4xMjcxNywgMi42MzIxNyIsIFwKLSAgICAgICAgICAiMC4yNDYwNzcsIDAuMjcxNDQsIDAuNDk5MjM4LCAwLjg3ODE5NSwgMS4yNTcyLCAyLjE0MDg0LCAyLjY0NTg0IiwgXAotICAgICAgICAgICIwLjI1OTY2NSwgMC4yODUwMzEsIDAuNTEyODQyLCAwLjg5MTc5OCwgMS4yNzA3LCAyLjE1NDQ1LCAyLjY1OTQ1IiwgXAotICAgICAgICAgICIwLjI3MzMxOSwgMC4yOTg3MDgsIDAuNTI2NDY0LCAwLjkwNTQ4MSwgMS4yODQzNCwgMi4xNjgyMywgMi42NzMxMyIsIFwKLSAgICAgICAgICAiMC4yOTUyNTUsIDAuMzIwNjUyLCAwLjU0ODQ2NiwgMC45Mjc0MzgsIDEuMzA2MywgMi4xOTAxMSwgMi42OTUwNiIsIFwKLSAgICAgICAgICAiMC4zMTQzOTgsIDAuMzM5NzkxLCAwLjU2NzYxOCwgMC45NDY3MSwgMS4zMjU0NiwgMi4yMDkyNiwgMi43MTQzNyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yNzYzMDIsIDAuMzI2MTU3LCAwLjc4NjUwNywgMS41NTM1LCAyLjMyMiwgNC4xMTQyOSwgNS4xMzg0NyIsIFwKLSAgICAgICAgICAiMC4yNzYzMDUsIDAuMzI2MTU5LCAwLjc4NjQ1NCwgMS41NTM1MywgMi4zMjUyNywgNC4xMjAxMiwgNS4xMzg0IiwgXAotICAgICAgICAgICIwLjI3NjMyOSwgMC4zMjY5OSwgMC43ODY0MTcsIDEuNTUzMjQsIDIuMzI1MTMsIDQuMTIwNjEsIDUuMTM3ODkiLCBcCi0gICAgICAgICAgIjAuMjc2MzcyLCAwLjMyNjk3MSwgMC43ODYyMTYsIDEuNTU0NjksIDIuMzIyMjcsIDQuMTIwNTcsIDUuMTM3MzYiLCBcCi0gICAgICAgICAgIjAuMjc2Mzk5LCAwLjMyNzAzOSwgMC43ODY0MTQsIDEuNTU1NTYsIDIuMzI0NiwgNC4xMTU3MSwgNS4xNDA5OCIsIFwKLSAgICAgICAgICAiMC4yNzY1MDEsIDAuMzI3MDE4LCAwLjc4NjIzMSwgMS41NTUxNCwgMi4zMjM3NiwgNC4xMjAyOSwgNS4xNDA0OCIsIFwKLSAgICAgICAgICAiMC4yNzY2NzMsIDAuMzI3MTY1LCAwLjc4NjI0NSwgMS41NTI1MiwgMi4zMjM4OSwgNC4xMTk3NywgNS4xMzUyOSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMzExNzksIDAuMjYwOTIzLCAwLjUyODI5MywgMC45NzQyODIsIDEuNDE5NjksIDIuNDU5MjcsIDMuMDUzMzIiLCBcCi0gICAgICAgICAgIjAuMjQxNjY5LCAwLjI3MTQxOCwgMC41Mzg3ODksIDAuOTg0NTMxLCAxLjQzMDE3LCAyLjQ2OTc0LCAzLjA2NDA1IiwgXAotICAgICAgICAgICIwLjI1NDk2MSwgMC4yODQ3LCAwLjU1MjA3LCAwLjk5Nzc3NCwgMS40NDM1OSwgMi40ODM5LCAzLjA3NzExIiwgXAotICAgICAgICAgICIwLjI2ODI3LCAwLjI5ODAyMywgMC41NjU0MjcsIDEuMDExMzksIDEuNDU2ODQsIDIuNDk2NDEsIDMuMDkwNDkiLCBcCi0gICAgICAgICAgIjAuMjgxNDY5LCAwLjMxMTIxNywgMC41Nzg2ODcsIDEuMDI0MywgMS40NzAzNiwgMi41MTA2MSwgMy4xMDM2OSIsIFwKLSAgICAgICAgICAiMC4zMDE2MjIsIDAuMzMxMzc0LCAwLjU5ODg2NiwgMS4wNDQ1OSwgMS40OTAyMywgMi41MzAzOCwgMy4xMjM4MyIsIFwKLSAgICAgICAgICAiMC4zMTgyMzgsIDAuMzQ3OTg4LCAwLjYxNTQ0MywgMS4wNjEwNiwgMS41MDcxMywgMi41NDYyLCAzLjE0MDQyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMxNTU5NSwgMC4zNzM4MzMsIDAuOTAyMzU1LCAxLjc4MTExLCAyLjY2Mjg5LCA0LjcyMjQzLCA1Ljg5NDE4IiwgXAotICAgICAgICAgICIwLjMxNTYxMiwgMC4zNzM4MTgsIDAuOTAyMzU3LCAxLjc4MjczLCAyLjY2Mjg1LCA0LjcxODk5LCA1Ljg5MjA4IiwgXAotICAgICAgICAgICIwLjMxNTU4LCAwLjM3MzgzOCwgMC45MDEyMDgsIDEuNzg0ODYsIDIuNjY3NzYsIDQuNzIzNzksIDUuODkzNjUiLCBcCi0gICAgICAgICAgIjAuMzE1NTczLCAwLjM3MzgxNywgMC45MDIzNSwgMS43ODE3MiwgMi42NjI5NiwgNC43MjIzNywgNS44OTM4OSIsIFwKLSAgICAgICAgICAiMC4zMTU1NTQsIDAuMzczODMzLCAwLjkwMDAxMywgMS43ODYxMywgMi42NjMzOCwgNC43MjQ0MiwgNS44OTI2MiIsIFwKLSAgICAgICAgICAiMC4zMTU2NDEsIDAuMzczNzQ1LCAwLjkwMjQyNSwgMS43ODI1MiwgMi42NjUxNiwgNC43MjQyNiwgNS44OTQwMyIsIFwKLSAgICAgICAgICAiMC4zMTUzNDQsIDAuMzczNjEyLCAwLjkwMjM4NywgMS43ODY4NywgMi42NjQzLCA0LjcyMjA3LCA1Ljg5MjI4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIyODQ2NiwgMC4yNTM3NSwgMC40ODEwODksIDAuODU5OTI3LCAxLjIzOTIsIDIuMTIzOTQsIDIuNjI3NjYiLCBcCi0gICAgICAgICAgIjAuMjQwMzg1LCAwLjI2NTY3OSwgMC40OTMwNTQsIDAuODcxODM2LCAxLjI1MTI2LCAyLjEzNDc3LCAyLjYzOTY3IiwgXAotICAgICAgICAgICIwLjI1NTY3MSwgMC4yODA5NDcsIDAuNTA4Mjc4LCAwLjg4NzE0MSwgMS4yNjY0NCwgMi4xNTA3NCwgMi42NTQ4NyIsIFwKLSAgICAgICAgICAiMC4yNzA4MTMsIDAuMjk2MDk5LCAwLjUyMzQ3MiwgMC45MDIyOTYsIDEuMjgxMTMsIDIuMTY2NDMsIDIuNjcwMDUiLCBcCi0gICAgICAgICAgIjAuMjg1NTYzLCAwLjMxMDg1MSwgMC41MzgxNzksIDAuOTE3MDQ4LCAxLjI5NTk5LCAyLjE4MTI3LCAyLjY4NDgzIiwgXAotICAgICAgICAgICIwLjMwNjg1NSwgMC4zMzIxNDksIDAuNTU5NDc5LCAwLjkzODM3LCAxLjMxNzU1LCAyLjIwMDk1LCAyLjcwNjI0IiwgXAotICAgICAgICAgICIwLjMyMzIxMywgMC4zNDg1MjgsIDAuNTc1OTAzLCAwLjk1NDc1OSwgMS4zMzM3NCwgMi4yMTc2MSwgMi43MjMwOCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yNzYxMzEsIDAuMzI2NjgyLCAwLjc4NTY4LCAxLjU1NTMyLCAyLjMxOTI3LCA0LjExMzM1LCA1LjEzNDI1IiwgXAotICAgICAgICAgICIwLjI3NjI3MywgMC4zMjY2NCwgMC43ODY2OTgsIDEuNTU1MjQsIDIuMzE5ODIsIDQuMTIwNjUsIDUuMTM3MzkiLCBcCi0gICAgICAgICAgIjAuMjc2MjQ0LCAwLjMyNjY4MSwgMC43ODU1OSwgMS41NTUzNCwgMi4zMTkyOCwgNC4xMTExNiwgNS4xMzQyNiIsIFwKLSAgICAgICAgICAiMC4yNzU5MywgMC4zMjY2ODYsIDAuNzg1NzY2LCAxLjU1NTMyLCAyLjMxODgyLCA0LjExMzM4LCA1LjEzNDI1IiwgXAotICAgICAgICAgICIwLjI3NjIzMiwgMC4zMjY2NTksIDAuNzg1Mzc2LCAxLjU1NTI5LCAyLjMxODI1LCA0LjExMzI2LCA1LjEzNDI1IiwgXAotICAgICAgICAgICIwLjI3NTg4NiwgMC4zMjY2ODUsIDAuNzg1NDgzLCAxLjU1NTM2LCAyLjMxOTI3LCA0LjEyMDI1LCA1LjEzNjg0IiwgXAotICAgICAgICAgICIwLjI3NjI3OSwgMC4zMjY2NzYsIDAuNzg1Nzg3LCAxLjU1MTAxLCAyLjMxOTg0LCA0LjEwOTU3LCA1LjEzODIxIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI3ODcxNCwgMC4zMDg1MjgsIDAuNTc2MjY3LCAxLjAyMiwgMS40Njc2MiwgMi41MDcxOSwgMy4xMDEzMiIsIFwKLSAgICAgICAgICAiMC4yOTA3ODYsIDAuMzIwNTksIDAuNTg4MzU0LCAxLjAzNDA2LCAxLjQ3OTY4LCAyLjUxOTIyLCAzLjExMzI1IiwgXAotICAgICAgICAgICIwLjMwNjM4LCAwLjMzNjE4MSwgMC42MDM5MTIsIDEuMDQ5NjUsIDEuNDk1MjQsIDIuNTM0ODcsIDMuMTI4ODIiLCBcCi0gICAgICAgICAgIjAuMzIxMTk1LCAwLjM1MDk5OSwgMC42MTg3NjksIDEuMDY0NDksIDEuNTEwMjEsIDIuNTQ5NjQsIDMuMTQzNjciLCBcCi0gICAgICAgICAgIjAuMzM2MjIxLCAwLjM2NjAyMiwgMC42MzM4MDcsIDEuMDc5NDksIDEuNTI1MTQsIDIuNTY0NjQsIDMuMTU4NjciLCBcCi0gICAgICAgICAgIjAuMzU4Mzc4LCAwLjM4ODE3NCwgMC42NTU5MjEsIDEuMTAxNjUsIDEuNTQ3MywgMi41ODY4MiwgMy4xODA4MiIsIFwKLSAgICAgICAgICAiMC4zNzY0MiwgMC40MDYyNCwgMC42NzM5NzIsIDEuMTE5NjksIDEuNTY1MjksIDIuNjA0ODYsIDMuMTk4OSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMTQ5MDcsIDAuMzcyOTYxLCAwLjkwMDAwNSwgMS43ODE1NCwgMi42NjE2MSwgNC43MTgzMiwgNS44OTQ2OSIsIFwKLSAgICAgICAgICAiMC4zMTQ4OTYsIDAuMzcyOTc1LCAwLjkwMDA2LCAxLjc4MDQzLCAyLjY2MzMyLCA0LjcxODk3LCA1Ljg5MzMyIiwgXAotICAgICAgICAgICIwLjMxNDg5LCAwLjM3Mjk3NiwgMC44OTk5OTgsIDEuNzgwNjEsIDIuNjYxODIsIDQuNzIwNjksIDUuODkzNjciLCBcCi0gICAgICAgICAgIjAuMzE0OTAxLCAwLjM3MjY2NSwgMC44OTk5NjQsIDEuNzgwMTcsIDIuNjYzMTIsIDQuNzE4NTMsIDUuODkyODMiLCBcCi0gICAgICAgICAgIjAuMzE0OSwgMC4zNzI5ODcsIDAuODk5OTc2LCAxLjc4MDM1LCAyLjY2Mjk4LCA0LjcxODk1LCA1Ljg5MzE0IiwgXAotICAgICAgICAgICIwLjMxNDkwMiwgMC4zNzI5NjgsIDAuODk5MTc0LCAxLjc3OTg5LCAyLjY2MTU4LCA0LjcxODYxLCA1Ljg5MzEyIiwgXAotICAgICAgICAgICIwLjMxNDg5NiwgMC4zNzI5NzQsIDAuODk5OTI3LCAxLjc3OTc5LCAyLjY2MTYxLCA0LjcxODQyLCA1Ljg5NDU3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyMTkyLCAwLjAwMjE5MiwgMC4wMDIxOTMsIDAuMDAyMTk0LCAwLjAwMjE5NCwgMC4wMDIxOTQsIDAuMDAyMTk0IiwgXAotICAgICAgICAgICIwLjAwMjE4MSwgMC4wMDIxODIsIDAuMDAyMTgzLCAwLjAwMjE4MywgMC4wMDIxODMsIDAuMDAyMTgzLCAwLjAwMjE4NCIsIFwKLSAgICAgICAgICAiMC4wMDIxNzMsIDAuMDAyMTc0LCAwLjAwMjE3NSwgMC4wMDIxNzYsIDAuMDAyMTc2LCAwLjAwMjE3NiwgMC4wMDIxNzYiLCBcCi0gICAgICAgICAgIjAuMDAyMTY4LCAwLjAwMjE2OSwgMC4wMDIxNzEsIDAuMDAyMTcyLCAwLjAwMjE3MiwgMC4wMDIxNzIsIDAuMDAyMTcyIiwgXAotICAgICAgICAgICIwLjAwMjE2NSwgMC4wMDIxNjUsIDAuMDAyMTY4LCAwLjAwMjE2OCwgMC4wMDIxNjksIDAuMDAyMTY5LCAwLjAwMjE2OSIsIFwKLSAgICAgICAgICAiMC4wMDIxNjEsIDAuMDAyMTYyLCAwLjAwMjE2NSwgMC4wMDIxNjYsIDAuMDAyMTY2LCAwLjAwMjE2NiwgMC4wMDIxNjYiLCBcCi0gICAgICAgICAgIjAuMDAyMTYsIDAuMDAyMTYsIDAuMDAyMTY0LCAwLjAwMjE2NSwgMC4wMDIxNjUsIDAuMDAyMTY1LCAwLjAwMjE2NSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTU0MywgMC4wMDE1NDQsIDAuMDAxNTQ1LCAwLjAwMTU0NiwgMC4wMDE1NDYsIDAuMDAxNTQ2LCAwLjAwMTU0NiIsIFwKLSAgICAgICAgICAiMC4wMDE1MjgsIDAuMDAxNTI5LCAwLjAwMTUzLCAwLjAwMTUzMSwgMC4wMDE1MzEsIDAuMDAxNTMyLCAwLjAwMTUzMSIsIFwKLSAgICAgICAgICAiMC4wMDE1MTgsIDAuMDAxNTE4LCAwLjAwMTUyLCAwLjAwMTUyLCAwLjAwMTUyLCAwLjAwMTUyMSwgMC4wMDE1MjEiLCBcCi0gICAgICAgICAgIjAuMDAxNTEyLCAwLjAwMTUxMiwgMC4wMDE1MTQsIDAuMDAxNTE0LCAwLjAwMTUxNSwgMC4wMDE1MTUsIDAuMDAxNTE1IiwgXAotICAgICAgICAgICIwLjAwMTUwOCwgMC4wMDE1MDgsIDAuMDAxNTEsIDAuMDAxNTExLCAwLjAwMTUxMSwgMC4wMDE1MTEsIDAuMDAxNTExIiwgXAotICAgICAgICAgICIwLjAwMTUwNSwgMC4wMDE1MDUsIDAuMDAxNTA4LCAwLjAwMTUwOCwgMC4wMDE1MDgsIDAuMDAxNTA5LCAwLjAwMTUwOSIsIFwKLSAgICAgICAgICAiMC4wMDE1MDMsIDAuMDAxNTA0LCAwLjAwMTUwNiwgMC4wMDE1MDcsIDAuMDAxNTA3LCAwLjAwMTUwNywgMC4wMDE1MDciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDIxNSwgMC4wMDIxNTEsIDAuMDAyMTUzLCAwLjAwMjE1NCwgMC4wMDIxNTQsIDAuMDAyMTU0LCAwLjAwMjE1NCIsIFwKLSAgICAgICAgICAiMC4wMDIxNTMsIDAuMDAyMTUzLCAwLjAwMjE1NiwgMC4wMDIxNTYsIDAuMDAyMTU3LCAwLjAwMjE1NywgMC4wMDIxNTciLCBcCi0gICAgICAgICAgIjAuMDAyMTU4LCAwLjAwMjE1OSwgMC4wMDIxNjIsIDAuMDAyMTYzLCAwLjAwMjE2MywgMC4wMDIxNjQsIDAuMDAyMTY0IiwgXAotICAgICAgICAgICIwLjAwMjE2MywgMC4wMDIxNjQsIDAuMDAyMTY4LCAwLjAwMjE2OSwgMC4wMDIxNjksIDAuMDAyMTcsIDAuMDAyMTciLCBcCi0gICAgICAgICAgIjAuMDAyMTcxLCAwLjAwMjE3MiwgMC4wMDIxNzUsIDAuMDAyMTc3LCAwLjAwMjE3OCwgMC4wMDIxNzgsIDAuMDAyMTc4IiwgXAotICAgICAgICAgICIwLjAwMjE4MSwgMC4wMDIxODMsIDAuMDAyMTg3LCAwLjAwMjE4OSwgMC4wMDIxODksIDAuMDAyMTksIDAuMDAyMTkiLCBcCi0gICAgICAgICAgIjAuMDAyMTg4LCAwLjAwMjE5LCAwLjAwMjE5NCwgMC4wMDIxOTYsIDAuMDAyMTk3LCAwLjAwMjE5OCwgMC4wMDIxOTgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDEzMjYsIDAuMDAxMzI2LCAwLjAwMTMyOSwgMC4wMDEzMywgMC4wMDEzMywgMC4wMDEzMywgMC4wMDEzMzEiLCBcCi0gICAgICAgICAgIjAuMDAxMzEzLCAwLjAwMTMxNCwgMC4wMDEzMTcsIDAuMDAxMzE4LCAwLjAwMTMxOCwgMC4wMDEzMTksIDAuMDAxMzE4IiwgXAotICAgICAgICAgICIwLjAwMTMwNSwgMC4wMDEzMDYsIDAuMDAxMzA5LCAwLjAwMTMxLCAwLjAwMTMxLCAwLjAwMTMxMSwgMC4wMDEzMTEiLCBcCi0gICAgICAgICAgIjAuMDAxMjk5LCAwLjAwMTMsIDAuMDAxMzAzLCAwLjAwMTMwNCwgMC4wMDEzMDQsIDAuMDAxMzA0LCAwLjAwMTMwNSIsIFwKLSAgICAgICAgICAiMC4wMDEyOTYsIDAuMDAxMjk3LCAwLjAwMTMsIDAuMDAxMzAxLCAwLjAwMTMwMSwgMC4wMDEzMDEsIDAuMDAxMzAyIiwgXAotICAgICAgICAgICIwLjAwMTI5NCwgMC4wMDEyOTUsIDAuMDAxMjk4LCAwLjAwMTI5OSwgMC4wMDEzLCAwLjAwMTMsIDAuMDAxMyIsIFwKLSAgICAgICAgICAiMC4wMDEyOTIsIDAuMDAxMjkzLCAwLjAwMTI5NiwgMC4wMDEyOTgsIDAuMDAxMjk4LCAwLjAwMTI5OSwgMC4wMDEyOTkiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IEFORDJYNCAqCi0gKiAtLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKEFORDJYNCkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjE3NzcwNjsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwODg1NTc4OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDg4NTU3ODsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA4ODM1NDY7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzA2LCAwLjAwMDMwNiwgMC4wMDAzMDYsIDAuMDAwMzA2LCAwLjAwMDMwNiwgMC4wMDAzMDYsIDAuMDAwMzA2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzE4LCAwLjAwMDMwOSwgMC4wMDAzMDgsIDAuMDAwMzA4LCAwLjAwMDMwOCwgMC4wMDAzMDgsIDAuMDAwMzA4Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA4OTIyMzU7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwODkxNTk4OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDg5MjIzNTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxNjYsIDAuMDAwMTY1LCAwLjAwMDE2NSwgMC4wMDAxNjUsIDAuMDAwMTY1LCAwLjAwMDE2NSwgMC4wMDAxNjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAzNDcsIDAuMDAwMzQ4LCAwLjAwMDM0OCwgMC4wMDAzNDgsIDAuMDAwMzQ4LCAwLjAwMDM0OCwgMC4wMDAzNDgiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC41MjA0NTE7Ci0gICAgZnVuY3Rpb24gOiAiKEEgQikiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTM5NTQ1LCAwLjI3NTI0MiwgMC40MDIxNDYsIDAuNDkyNjQ0LCAwLjYzNzQ4NywgMC43NjQwOTMsIDAuOTQ1MjMiLCBcCi0gICAgICAgICAgIjAuMTUwNDQsIDAuMjg2MjgxLCAwLjQxMzE5MiwgMC41MDM3MTYsIDAuNjQ4NDgxLCAwLjc3NTE1MywgMC45NTYyMDciLCBcCi0gICAgICAgICAgIjAuMTYzOTcyLCAwLjI5OTUzNywgMC40MjY0MzMsIDAuNTE2OTMyLCAwLjY2MTc3NiwgMC43ODgzOCwgMC45Njk1MTMiLCBcCi0gICAgICAgICAgIjAuMTc3Mjg0LCAwLjMxMzAyLCAwLjQzOTk0MSwgMC41MzA0NjYsIDAuNjc1MzAzLCAwLjgwMjEwNSwgMC45ODI4OTMiLCBcCi0gICAgICAgICAgIjAuMTkwODY5LCAwLjMyNjY0MiwgMC40NTM1NDMsIDAuNTQ0MDcyLCAwLjY4ODg4LCAwLjgxNTUzMywgMC45OTY1OTgiLCBcCi0gICAgICAgICAgIjAuMjEyMTExLCAwLjM0NzkyOSwgMC40NzQ4NTYsIDAuNTY1MzY0LCAwLjcxMDIwNywgMC44MzY4MTksIDEuMDE3OTYiLCBcCi0gICAgICAgICAgIjAuMjMwNjE0LCAwLjM2NjA1OSwgMC40OTI5NjEsIDAuNTgzNDc2LCAwLjcyODMyNiwgMC44NTQ5MzEsIDEuMDM2MDciKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzI4ODYsIDAuMzE3MTU4LCAwLjU3MDc2MiwgMC43NTM2MjEsIDEuMDUwNzYsIDEuMzA2NzEsIDEuNjcxODQiLCBcCi0gICAgICAgICAgIjAuMDczNjQ0LCAwLjMxNzEzMSwgMC41NzA3NjksIDAuNzU0ODI2LCAxLjA0ODg5LCAxLjMwNjk1LCAxLjY3MTE5IiwgXAotICAgICAgICAgICIwLjA3MzA3MiwgMC4zMTcyMTgsIDAuNTcwNzQ4LCAwLjc1MzYzNSwgMS4wNTA3OSwgMS4zMDY2MywgMS42NzE4IiwgXAotICAgICAgICAgICIwLjA3Mjk2LCAwLjMxNzAwNSwgMC41NzA4NDksIDAuNzU0ODEyLCAxLjA0Njc5LCAxLjMwNDA1LCAxLjY3NTIzIiwgXAotICAgICAgICAgICIwLjA3MjkwOCwgMC4zMTY5NzgsIDAuNTcwODA3LCAwLjc1NDg4MiwgMS4wNDkyMywgMS4zMDcwMSwgMS42NzEwMyIsIFwKLSAgICAgICAgICAiMC4wNzMwMTQsIDAuMzE3MDU0LCAwLjU3MDc4MiwgMC43NTM1NzEsIDEuMDUwNiwgMS4zMDY1OSwgMS42NzE4NCIsIFwKLSAgICAgICAgICAiMC4wNzMxMzMsIDAuMzE3NDg0LCAwLjU3MDc4OSwgMC43NTM1NTUsIDEuMDUwNzMsIDEuMzA2NTksIDEuNjcwNjYiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODc2NTMsIDAuMjM1NSwgMC4zODEyMTQsIDAuNDg1MjE1LCAwLjY1MTYxMiwgMC43OTcyMDIsIDEuMDA1MTUiLCBcCi0gICAgICAgICAgIjAuMDk5MTYsIDAuMjQ3MDY2LCAwLjM5Mjc4MywgMC40OTY4MTYsIDAuNjYzMTg2LCAwLjgwODc2LCAxLjAxNjcyIiwgXAotICAgICAgICAgICIwLjExMzkwNywgMC4yNjE3OTcsIDAuNDA3NTMxLCAwLjUxMTU0OSwgMC42Nzc5NTQsIDAuODIzNTI2LCAxLjAzMTUiLCBcCi0gICAgICAgICAgIjAuMTI4OCwgMC4yNzY3NTEsIDAuNDIyNDg3LCAwLjUyNjUyNCwgMC42OTI5MTIsIDAuODM4NTAxLCAxLjA0NjQzIiwgXAotICAgICAgICAgICIwLjE0MzU0NCwgMC4yOTE0NywgMC40MzcyMDksIDAuNTQxMjc4LCAwLjcwNzY1NCwgMC44NTMyNTIsIDEuMDYxMjEiLCBcCi0gICAgICAgICAgIjAuMTY2MzI0LCAwLjMxNDMsIDAuNDYwMDY1LCAwLjU2NDA4LCAwLjczMDQ5NSwgMC44NzYwOTUsIDEuMDg0MDUiLCBcCi0gICAgICAgICAgIjAuMTg0OTc4LCAwLjMzMjk3NywgMC40Nzg3NjEsIDAuNTgyNzc1LCAwLjc0OTE4NSwgMC44OTQ3ODMsIDEuMTAyNzQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjIzNTEsIDAuMzQ2NjQ4LCAwLjYzNjc2LCAwLjg0NDI0NCwgMS4xNzQwOCwgMS40NjU5NiwgMS44Nzk1NyIsIFwKLSAgICAgICAgICAiMC4wNjI0MzQsIDAuMzQ2NzI5LCAwLjYzNjY5NSwgMC44NDM3NCwgMS4xNzU5OSwgMS40NjQ1MSwgMS44NzkyNyIsIFwKLSAgICAgICAgICAiMC4wNjI0MTgsIDAuMzQ3MDY1LCAwLjYzNjc3MiwgMC44NDI4NTYsIDEuMTc1ODMsIDEuNDY0NzcsIDEuODgxMiIsIFwKLSAgICAgICAgICAiMC4wNjI0MDksIDAuMzQ2NDY2LCAwLjYzNjUyNCwgMC44NDM4OCwgMS4xNzU2OSwgMS40NjYyNywgMS44ODE3NyIsIFwKLSAgICAgICAgICAiMC4wNjI2NjEsIDAuMzQ2MjAyLCAwLjYzNjkwOSwgMC44NDM3MjYsIDEuMTc1NjMsIDEuNDY2MTgsIDEuODgxMiIsIFwKLSAgICAgICAgICAiMC4wNjMzNTMsIDAuMzQ2NTgsIDAuNjM2NzQzLCAwLjg0NDQwNCwgMS4xNzQxLCAxLjQ2NjA2LCAxLjg3OTc5IiwgXAotICAgICAgICAgICIwLjA2NDc1NCwgMC4zNDczMDEsIDAuNjM2NTkxLCAwLjg0NDIzNiwgMS4xNzQyMiwgMS40NjYwNCwgMS44NzkyMSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEzNDg3MiwgMC4yNzA2MzUsIDAuMzk3NTEyLCAwLjQ4ODAwMiwgMC42MzI4MjEsIDAuNzU5NjYyLCAwLjk0MDU0NCIsIFwKLSAgICAgICAgICAiMC4xNDQ5NTMsIDAuMjgwNTQ2LCAwLjQwNzQ0NSwgMC40OTc5NDcsIDAuNjQyNzgyLCAwLjc2OTM5NSwgMC45NTA1MTEiLCBcCi0gICAgICAgICAgIjAuMTU3NzE5LCAwLjI5MzU3MSwgMC40MjA0NjUsIDAuNTEwOTg1LCAwLjY1NTgwMiwgMC43ODI0NDgsIDAuOTYzNTE3IiwgXAotICAgICAgICAgICIwLjE3MTYxNSwgMC4zMDczNzQsIDAuNDM0Mjc0LCAwLjUyNDc4OCwgMC42Njk2MTEsIDAuNzk2MjUzLCAwLjk3NzMxNyIsIFwKLSAgICAgICAgICAiMC4xODUxMDgsIDAuMzIwODYyLCAwLjQ0Nzc5OCwgMC41MzgzMDQsIDAuNjgzMDc1LCAwLjgwOTc1OSwgMC45OTA5NDEiLCBcCi0gICAgICAgICAgIjAuMjA2ODU1LCAwLjM0MjYwNywgMC40Njk1NDUsIDAuNTYwMTMxLCAwLjcwNDg5OSwgMC44MzE2MDgsIDEuMDEyOSIsIFwKLSAgICAgICAgICAiMC4yMjYwNjcsIDAuMzYxMTc5LCAwLjQ4ODEwNCwgMC41Nzg2MjMsIDAuNzIzNDcyLCAwLjg1MDEwMSwgMS4wMzExOCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3MzQyMiwgMC4zMTcwMTIsIDAuNTcxNzM3LCAwLjc1MzYwNCwgMS4wNDkyNiwgMS4zMDM3LCAxLjY3MjU4IiwgXAotICAgICAgICAgICIwLjA3MzAwOCwgMC4zMTcyMjcsIDAuNTcwMjA0LCAwLjc1MzYxNiwgMS4wNDkzMywgMS4zMDY2NiwgMS42NzA3OSIsIFwKLSAgICAgICAgICAiMC4wNzMyNjQsIDAuMzE2OTkyLCAwLjU3MDg3NSwgMC43NTQ4MTYsIDEuMDQ5MjQsIDEuMzA2OTksIDEuNjcxMDYiLCBcCi0gICAgICAgICAgIjAuMDczMDY1LCAwLjMxNjk1LCAwLjU3MDg2NywgMC43NTQ3NTIsIDEuMDQ5MjIsIDEuMzA2OTQsIDEuNjcxMTUiLCBcCi0gICAgICAgICAgIjAuMDcyOTc2LCAwLjMxNzA1MSwgMC41NzE2NDgsIDAuNzUzNTMsIDEuMDQ4ODUsIDEuMzA2OTIsIDEuNjcxNzIiLCBcCi0gICAgICAgICAgIjAuMDczMzc2LCAwLjMxNjk4OCwgMC41NzA3NzgsIDAuNzUzMDQzLCAxLjA0OTIyLCAxLjMwODk4LCAxLjY3MTA0IiwgXAotICAgICAgICAgICIwLjA3MzM5MywgMC4zMTc1MzMsIDAuNTcwNzksIDAuNzUzNTgxLCAxLjA0OTMxLCAxLjMwNjYzLCAxLjY3MDk5Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg0NDk0LCAwLjIzMjAyLCAwLjM3NzY3MSwgMC40ODE3OSwgMC42NDgyNzYsIDAuNzkzOTI4LCAxLjAwMTgiLCBcCi0gICAgICAgICAgIjAuMDk1OTgxLCAwLjI0MzUyMiwgMC4zODkyMDEsIDAuNDkzMjgzLCAwLjY1OTYwOCwgMC44MDU0NzIsIDEuMDEzNTMiLCBcCi0gICAgICAgICAgIjAuMTEwOTMxLCAwLjI1ODUzOSwgMC40MDQxOTksIDAuNTA4Mjc2LCAwLjY3NDY3MywgMC44MjAzNjEsIDEuMDI4MzUiLCBcCi0gICAgICAgICAgIjAuMTI1NjU5LCAwLjI3MzMyOSwgMC40MTg5OTUsIDAuNTIzMTA5LCAwLjY4OTU1MywgMC44MzUyMiwgMS4wNDMxNyIsIFwKLSAgICAgICAgICAiMC4xNDAzMTgsIDAuMjg3NjkyLCAwLjQzMzM5NSwgMC41Mzc0OTcsIDAuNzAzODY2LCAwLjg0OTU5LCAxLjA1NzU3IiwgXAotICAgICAgICAgICIwLjE2MjgyNCwgMC4zMTA1ODIsIDAuNDU2Mjg2LCAwLjU2MDM5NiwgMC43MjY5NjgsIDAuODcyNDk2LCAxLjA4MDU0IiwgXAotICAgICAgICAgICIwLjE4MDk4OSwgMC4zMjg1NCwgMC40NzQyNCwgMC41Nzg0MDMsIDAuNzQ0ODUyLCAwLjg5MDQ4MSwgMS4wOTg1MSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2MTg3NiwgMC4zNDYwMDgsIDAuNjM2MzM0LCAwLjg0MjQ4NCwgMS4xNzQ0NiwgMS40NjQxMSwgMS44ODI1OCIsIFwKLSAgICAgICAgICAiMC4wNjE4OTksIDAuMzQ2NzQ3LCAwLjYzNjA5LCAwLjg0MTczMSwgMS4xNzY4NSwgMS40NjM1MywgMS44Nzc1NiIsIFwKLSAgICAgICAgICAiMC4wNjE4NzUsIDAuMzQ2OTEsIDAuNjM1OTAxLCAwLjg0MTI0OSwgMS4xNzQxOCwgMS40NjM3OCwgMS44NzcxNyIsIFwKLSAgICAgICAgICAiMC4wNjE5MjEsIDAuMzQ1Njk0LCAwLjYzNjI4LCAwLjg0MjI2OCwgMS4xNzM5NiwgMS40NjU0OSwgMS44ODE5OSIsIFwKLSAgICAgICAgICAiMC4wNjIxODgsIDAuMzQ2MTg3LCAwLjYzNjI1NywgMC44NDE3NDYsIDEuMTcyODYsIDEuNDYzOSwgMS44NzY4NiIsIFwKLSAgICAgICAgICAiMC4wNjMwNTYsIDAuMzQ2OTQ4LCAwLjYzNjQwOCwgMC44NDE3MzIsIDEuMTcyOTksIDEuNDYzNTksIDEuODc4NjYiLCBcCi0gICAgICAgICAgIjAuMDY0NTExLCAwLjM0NzA3OCwgMC42MzcsIDAuODQzMDU1LCAxLjE3NTAyLCAxLjQ2NDc5LCAxLjg3OTI3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDM2MjMsIDAuMDAzNzI4LCAwLjAwMzc0MSwgMC4wMDM3NDcsIDAuMDAzNzQ5LCAwLjAwMzc1LCAwLjAwMzc1MSIsIFwKLSAgICAgICAgICAiMC4wMDM1OTUsIDAuMDAzNzA2LCAwLjAwMzcyMiwgMC4wMDM3MjUsIDAuMDAzNzI5LCAwLjAwMzczLCAwLjAwMzczMyIsIFwKLSAgICAgICAgICAiMC4wMDM1ODEsIDAuMDAzNjkyLCAwLjAwMzcwNywgMC4wMDM3MTMsIDAuMDAzNzEyLCAwLjAwMzcxNCwgMC4wMDM3MTgiLCBcCi0gICAgICAgICAgIjAuMDAzNTY3LCAwLjAwMzY3OSwgMC4wMDM2OTcsIDAuMDAzNywgMC4wMDM3MDYsIDAuMDAzNzA3LCAwLjAwMzcwOSIsIFwKLSAgICAgICAgICAiMC4wMDM1NTgsIDAuMDAzNjcyLCAwLjAwMzY4OSwgMC4wMDM2OTQsIDAuMDAzNjk5LCAwLjAwMzcwMSwgMC4wMDM3MDIiLCBcCi0gICAgICAgICAgIjAuMDAzNTQ2LCAwLjAwMzY1OSwgMC4wMDM2NzgsIDAuMDAzNjg0LCAwLjAwMzY4OSwgMC4wMDM2OSwgMC4wMDM2OTMiLCBcCi0gICAgICAgICAgIjAuMDAzNTM1LCAwLjAwMzY0OCwgMC4wMDM2NjksIDAuMDAzNjc1LCAwLjAwMzY4MywgMC4wMDM2ODYsIDAuMDAzNjg4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDUwNCwgMC4wMDUxNTIsIDAuMDA1MTY1LCAwLjAwNTE2OCwgMC4wMDUxNzIsIDAuMDA1MTczLCAwLjAwNTE3NSIsIFwKLSAgICAgICAgICAiMC4wMDUwMTcsIDAuMDA1MTM3LCAwLjAwNTE1LCAwLjAwNTE1NCwgMC4wMDUxNTgsIDAuMDA1MTYsIDAuMDA1MTYxIiwgXAotICAgICAgICAgICIwLjAwNDk5MiwgMC4wMDUxMjEsIDAuMDA1MTM4LCAwLjAwNTE0MywgMC4wMDUxNDgsIDAuMDA1MTUsIDAuMDA1MTUyIiwgXAotICAgICAgICAgICIwLjAwNDk2OSwgMC4wMDUxMDgsIDAuMDA1MTI4LCAwLjAwNTEzNCwgMC4wMDUxNCwgMC4wMDUxNDMsIDAuMDA1MTQ1IiwgXAotICAgICAgICAgICIwLjAwNDk0OCwgMC4wMDUwOTQsIDAuMDA1MTE5LCAwLjAwNTEyNiwgMC4wMDUxMzMsIDAuMDA1MTM3LCAwLjAwNTE0IiwgXAotICAgICAgICAgICIwLjAwNDkyNSwgMC4wMDUwOCwgMC4wMDUxMDksIDAuMDA1MTE4LCAwLjAwNTEyNiwgMC4wMDUxMzEsIDAuMDA1MTM1IiwgXAotICAgICAgICAgICIwLjAwNDkxMywgMC4wMDUwNjgsIDAuMDA1MSwgMC4wMDUxMSwgMC4wMDUxMiwgMC4wMDUxMjUsIDAuMDA1MTMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzYxNSwgMC4wMDM3MjgsIDAuMDAzNzQzLCAwLjAwMzc1MiwgMC4wMDM3NTIsIDAuMDAzNzU0LCAwLjAwMzc2MiIsIFwKLSAgICAgICAgICAiMC4wMDM1OTIsIDAuMDAzNzA1LCAwLjAwMzcyMSwgMC4wMDM3MiwgMC4wMDM3MywgMC4wMDM3MzIsIDAuMDAzNzM0IiwgXAotICAgICAgICAgICIwLjAwMzU2OCwgMC4wMDM2ODUsIDAuMDAzNzAyLCAwLjAwMzcwNywgMC4wMDM3MTIsIDAuMDAzNzE0LCAwLjAwMzcxNiIsIFwKLSAgICAgICAgICAiMC4wMDM1NTQsIDAuMDAzNjcxLCAwLjAwMzY5LCAwLjAwMzY5NSwgMC4wMDM3LCAwLjAwMzcwMywgMC4wMDM3MDUiLCBcCi0gICAgICAgICAgIjAuMDAzNTQ0LCAwLjAwMzY2MSwgMC4wMDM2ODEsIDAuMDAzNjg4LCAwLjAwMzY5NCwgMC4wMDM2OTcsIDAuMDAzNjk4IiwgXAotICAgICAgICAgICIwLjAwMzUzMSwgMC4wMDM2NDYsIDAuMDAzNjcsIDAuMDAzNjc4LCAwLjAwMzY4NSwgMC4wMDM2ODgsIDAuMDAzNjkyIiwgXAotICAgICAgICAgICIwLjAwMzUyMSwgMC4wMDM2MzcsIDAuMDAzNjYzLCAwLjAwMzY3MiwgMC4wMDM2OCwgMC4wMDM2ODQsIDAuMDAzNjg4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQ3NTQsIDAuMDA0ODcxLCAwLjAwNDg4NCwgMC4wMDQ4ODgsIDAuMDA0ODkxLCAwLjAwNDg5MywgMC4wMDQ4OTUiLCBcCi0gICAgICAgICAgIjAuMDA0NzM0LCAwLjAwNDg1OSwgMC4wMDQ4NzMsIDAuMDA0ODc3LCAwLjAwNDg4MSwgMC4wMDQ4ODIsIDAuMDA0ODg0IiwgXAotICAgICAgICAgICIwLjAwNDcwMywgMC4wMDQ4MzksIDAuMDA0ODU2LCAwLjAwNDg2MSwgMC4wMDQ4NjUsIDAuMDA0ODY3LCAwLjAwNDg3IiwgXAotICAgICAgICAgICIwLjAwNDY3LCAwLjAwNDgyLCAwLjAwNDg0MSwgMC4wMDQ4NDgsIDAuMDA0ODU0LCAwLjAwNDg1NywgMC4wMDQ4NTkiLCBcCi0gICAgICAgICAgIjAuMDA0NjQ4LCAwLjAwNDgwMiwgMC4wMDQ4MjksIDAuMDA0ODM3LCAwLjAwNDg0NCwgMC4wMDQ4NDgsIDAuMDA0ODUxIiwgXAotICAgICAgICAgICIwLjAwNDYyNCwgMC4wMDQ3ODUsIDAuMDA0ODE2LCAwLjAwNDgyNSwgMC4wMDQ4MzQsIDAuMDA0ODM4LCAwLjAwNDg0MiIsIFwKLSAgICAgICAgICAiMC4wMDQ2MDcsIDAuMDA0NzY4LCAwLjAwNDgwMiwgMC4wMDQ4MTQsIDAuMDA0ODI0LCAwLjAwNDgzLCAwLjAwNDgzNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogQU5EMlg2ICoKLSAqIC0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoQU5EMlg2KSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMjg2MzgzOwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE2NjY2NDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE2NjY2NDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE2NjIzNjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA2MTIsIDAuMDAwNjEyLCAwLjAwMDYxMiwgMC4wMDA2MTIsIDAuMDAwNjExLCAwLjAwMDYxMSwgMC4wMDA2MTEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA2MzQsIDAuMDAwNjE4LCAwLjAwMDYxNywgMC4wMDA2MTYsIDAuMDAwNjE2LCAwLjAwMDYxNSwgMC4wMDA2MTUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTUyNjU5OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTUyNTUzOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTUyNjU5OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDMxMywgMC4wMDAzMTMsIDAuMDAwMzEyLCAwLjAwMDMxMiwgMC4wMDAzMTIsIDAuMDAwMzEyLCAwLjAwMDMxMiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDY5NSwgMC4wMDA2OTUsIDAuMDAwNjk1LCAwLjAwMDY5NiwgMC4wMDA2OTYsIDAuMDAwNjk2LCAwLjAwMDY5NiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjc2MDgwNjsKLSAgICBmdW5jdGlvbiA6ICIoQSBCKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDk1OTksIDAuMjAxMzI4LCAwLjI4NTgzNywgMC4zNDYwNjUsIDAuNDQyNDI2LCAwLjUyNjcwMywgMC42NDcwODQiLCBcCi0gICAgICAgICAgIjAuMTIwNzAxLCAwLjIxMjQ1MywgMC4yOTcwMjQsIDAuMzU3MjU4LCAwLjQ1MzYxOCwgMC41Mzc4OTYsIDAuNjU4Mjg5IiwgXAotICAgICAgICAgICIwLjEzMzk0MywgMC4yMjU4NzYsIDAuMzEwNDM0LCAwLjM3MDY4NSwgMC40NjcwNTIsIDAuNTUxMzIsIDAuNjcxNzYzIiwgXAotICAgICAgICAgICIwLjE0NzM2OSwgMC4yMzkyOTksIDAuMzIzODMxLCAwLjM4NDA3LCAwLjQ4MDQ3MSwgMC41NjQ3MDMsIDAuNjg1MTU3IiwgXAotICAgICAgICAgICIwLjE2MDYyOCwgMC4yNTI1OTMsIDAuMzM3MTcyLCAwLjM5NzM4OCwgMC40OTM3OTMsIDAuNTc4MDI2LCAwLjY5ODQ4MiIsIFwKLSAgICAgICAgICAiMC4xODE4MjksIDAuMjczNjc5LCAwLjM1ODI2MSwgMC40MTg0NjksIDAuNTE0ODAxLCAwLjU5OTExOCwgMC43MTk1NjciLCBcCi0gICAgICAgICAgIjAuMTk5Nzc2LCAwLjI5MTY3OCwgMC4zNzYwNTgsIDAuNDM2MzAyLCAwLjUzMjY3NSwgMC42MTY5NDgsIDAuNzM3Mzk1Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU0NDY4LCAwLjIxNjU5NSwgMC4zODQzNjMsIDAuNTA1MjE3LCAwLjcwMDY3OSwgMC44NzM3OTIsIDEuMTE2NzYiLCBcCi0gICAgICAgICAgIjAuMDU0NTkyLCAwLjIxNjU1MSwgMC4zODQ2MTksIDAuNTA1MjAxLCAwLjcwMDY5NCwgMC44NzM3ODIsIDEuMTE2ODUiLCBcCi0gICAgICAgICAgIjAuMDU0NTg1LCAwLjIxNjQ0MiwgMC4zODQ0NTQsIDAuNTA1OTE0LCAwLjcwMDcyMSwgMC44NzM3NDYsIDEuMTE0NjciLCBcCi0gICAgICAgICAgIjAuMDU0NDM4LCAwLjIxNjQxMywgMC4zODUwMjYsIDAuNTA1ODg1LCAwLjcwMDM3OCwgMC44NzM3MDksIDEuMTE2OTQiLCBcCi0gICAgICAgICAgIjAuMDU0MzIsIDAuMjE2NDI2LCAwLjM4NTIwNywgMC41MDU5MTMsIDAuNzAwNDMsIDAuODczNzE1LCAxLjExNDQyIiwgXAotICAgICAgICAgICIwLjA1NDU5NiwgMC4yMTYzNTQsIDAuMzg1MjMzLCAwLjUwNTkwNCwgMC43MDIwOCwgMC44NzM3NCwgMS4xMTY4NSIsIFwKLSAgICAgICAgICAiMC4wNTUwNzksIDAuMjE2NjcsIDAuMzg0NjI4LCAwLjUwNTkzMywgMC43MDA2NjUsIDAuODczNzIxLCAxLjExNjc2Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY5MDA2LCAwLjE3MDQ5NiwgMC4yNzAwOSwgMC4zNDExNTIsIDAuNDU0ODMzLCAwLjU1NDI4OSwgMC42OTYzNDMiLCBcCi0gICAgICAgICAgIjAuMDgwNjUyLCAwLjE4MjEwNCwgMC4yODE3MDEsIDAuMzUyNzY2LCAwLjQ2NjQ0NSwgMC41NjU5MDIsIDAuNzA3OTU4IiwgXAotICAgICAgICAgICIwLjA5NTQxMiwgMC4xOTY5NiwgMC4yOTY1NzQsIDAuMzY3NjQzLCAwLjQ4MTMzMywgMC41ODA3OTMsIDAuNzIyODUyIiwgXAotICAgICAgICAgICIwLjExMDEwNiwgMC4yMTE2ODUsIDAuMzExMzE1LCAwLjM4MjM5MiwgMC40OTYwOSwgMC41OTU1NTQsIDAuNzM3NjEyIiwgXAotICAgICAgICAgICIwLjEyNDUwNSwgMC4yMjYwOTYsIDAuMzI1NzM3LCAwLjM5NjgyMSwgMC41MTA1MTksIDAuNjEwMDIzLCAwLjc1MjA2NiIsIFwKLSAgICAgICAgICAiMC4xNDU5NjYsIDAuMjQ3NjExLCAwLjM0NzI4NywgMC40MTgzNzIsIDAuNTMyMDYxLCAwLjYzMTU0OCwgMC43NzM2MjEiLCBcCi0gICAgICAgICAgIjAuMTYyOTU1LCAwLjI2NDg0NiwgMC4zNjQ0ODgsIDAuNDM1NTczLCAwLjU0OTI3NywgMC42NDg3NzYsIDAuNzkwODM2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQ2ODcsIDAuMjQwNjExLCAwLjQzNzM2NCwgMC41Nzg0MzIsIDAuODAzMTMsIDEuMDAxMDQsIDEuMjgyNjMiLCBcCi0gICAgICAgICAgIjAuMDQ2OTkxLCAwLjIzOTczNCwgMC40MzczNTksIDAuNTc4NDI5LCAwLjgwMzE4NiwgMS4wMDA5NSwgMS4yODI1OSIsIFwKLSAgICAgICAgICAiMC4wNDY4OTgsIDAuMjQwNjA3LCAwLjQzNzM4MywgMC41Nzg1NDYsIDAuODAzMDY0LCAxLjAwMTUxLCAxLjI4Mjc4IiwgXAotICAgICAgICAgICIwLjA0NzA5NCwgMC4yNDA2MjIsIDAuNDM3Mzk3LCAwLjU3ODU2NSwgMC44MDI5NzgsIDEuMDAxNjcsIDEuMjgyNTYiLCBcCi0gICAgICAgICAgIjAuMDQ3NDYyLCAwLjIzOTg5MSwgMC40MzcyODcsIDAuNTc3NjE2LCAwLjgwMzIwNSwgMS4wMDEyOCwgMS4yODM3OSIsIFwKLSAgICAgICAgICAiMC4wNDg4NTEsIDAuMjQwMjIyLCAwLjQzNzMwNCwgMC41NzgyNzgsIDAuODAzMDAyLCAwLjk5OTY5LCAxLjI4MzY0IiwgXAotICAgICAgICAgICIwLjA1MDUwOCwgMC4yNDEwMzYsIDAuNDM2ODU2LCAwLjU3ODQ5OCwgMC44MDMxMTIsIDEuMDAxMzMsIDEuMjgxMjIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDUwNjgsIDAuMTk2OTIzLCAwLjI4MTQ3NSwgMC4zNDE2ODQsIDAuNDM4MDg1LCAwLjUyMjMxOCwgMC42NDI3NTgiLCBcCi0gICAgICAgICAgIjAuMTE0Nzk1LCAwLjIwNjczNSwgMC4yOTEyODgsIDAuMzUxNTQyLCAwLjQ0Nzk1MywgMC41MzIxNzcsIDAuNjUyNTczIiwgXAotICAgICAgICAgICIwLjEyNzc1MiwgMC4yMTk2NTEsIDAuMzA0MjI1LCAwLjM2NDQ0MywgMC40NjA4NDUsIDAuNTQ1MTQ4LCAwLjY2NTQ1MyIsIFwKLSAgICAgICAgICAiMC4xNDE2NSwgMC4yMzM2MSwgMC4zMTgxNjIsIDAuMzc4Mzk2LCAwLjQ3NDgwNywgMC41NTkwNCwgMC42Nzk0ODkiLCBcCi0gICAgICAgICAgIjAuMTU0OTkxLCAwLjI0NjkzMywgMC4zMzE1MjYsIDAuMzkxNzUyLCAwLjQ4ODE1NCwgMC41NzIzOTQsIDAuNjkyODYzIiwgXAotICAgICAgICAgICIwLjE3Njc3MiwgMC4yNjgxODIsIDAuMzUyNzMzLCAwLjQxMjk2OSwgMC41MDkzNDQsIDAuNTkzNjMzLCAwLjcxNDA1OCIsIFwKLSAgICAgICAgICAiMC4xOTUyNSwgMC4yODcxNzcsIDAuMzcxNzc2LCAwLjQzMjAyNSwgMC41MjgzOTgsIDAuNjEyNjkyLCAwLjczMzExMyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1NDMzMiwgMC4yMTY1MSwgMC4zODUyMzIsIDAuNTA1OTQ4LCAwLjcwMDYzNSwgMC44NzM3NjQsIDEuMTE0ODYiLCBcCi0gICAgICAgICAgIjAuMDU0NjM1LCAwLjIxNjQ3NywgMC4zODQzOTYsIDAuNTA1OTIxLCAwLjcwMDQ1NCwgMC44NzM3NDIsIDEuMTE2ODYiLCBcCi0gICAgICAgICAgIjAuMDU0NDUyLCAwLjIxNjQ2MiwgMC4zODUyMywgMC41MDU5NCwgMC43MDA0NDUsIDAuODcxMzk1LCAxLjExODgiLCBcCi0gICAgICAgICAgIjAuMDU0MzM3LCAwLjIxNjQwNSwgMC4zODUxMzgsIDAuNTA1OTE1LCAwLjcwMDY5MSwgMC44NzM3MjEsIDEuMTE0NTkiLCBcCi0gICAgICAgICAgIjAuMDU0NDQ1LCAwLjIxNjQzMywgMC4zODUxOTgsIDAuNTA1OTYsIDAuNzAzNjQzLCAwLjg3MzY3NCwgMS4xMTcwOCIsIFwKLSAgICAgICAgICAiMC4wNTQ3OCwgMC4yMTY3OTcsIDAuMzg1MzEzLCAwLjUwNTk4OSwgMC43MDA2ODgsIDAuODczNzYsIDEuMTE2ODUiLCBcCi0gICAgICAgICAgIjAuMDU1OTY4LCAwLjIxNjkxMSwgMC4zODUxODIsIDAuNTA1OTg2LCAwLjcwMjMzLCAwLjg3Mzc3LCAxLjExNjg3Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY3MTcxLCAwLjE2ODQ0OCwgMC4yNjc5NywgMC4zMzkwOTIsIDAuNDUyNzA5LCAwLjU1MjQzMiwgMC42OTQ0MDgiLCBcCi0gICAgICAgICAgIjAuMDc4ODU4LCAwLjE4MDEsIDAuMjc5NjU3LCAwLjM1MDY5MiwgMC40NjQzNjMsIDAuNTYzODk4LCAwLjcwNjIyMyIsIFwKLSAgICAgICAgICAiMC4wOTM1NiwgMC4xOTQ5MTksIDAuMjk0NDUsIDAuMzY1NjIzLCAwLjQ3OTIxNywgMC41Nzg5LCAwLjcyMDk0NiIsIFwKLSAgICAgICAgICAiMC4xMDgxMTcsIDAuMjA5MzI0LCAwLjMwODg5MiwgMC4zODAwMjEsIDAuNDkzNjY0LCAwLjU5MzM4OCwgMC43MzU0IiwgXAotICAgICAgICAgICIwLjEyMjI2OSwgMC4yMjM3NjYsIDAuMzIzMzM2LCAwLjM5NDQ5OSwgMC41MDgxMTksIDAuNjA3NzE1LCAwLjc0OTY3NyIsIFwKLSAgICAgICAgICAiMC4xNDMyMDEsIDAuMjQ0NDksIDAuMzQ0MDg1LCAwLjQxNTE1OSwgMC41Mjg4ODIsIDAuNjI4NjUxLCAwLjc3MDQ4MiIsIFwKLSAgICAgICAgICAiMC4xNTkzODgsIDAuMjYxNDQxLCAwLjM2MTAwNSwgMC40MzIwOTYsIDAuNTQ1ODMxLCAwLjY0NTQ1MSwgMC43ODc2MDQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDY4MDYsIDAuMjQwMjEsIDAuNDM3NTA2LCAwLjU3NzQ3NywgMC44MDQ4MiwgMC45OTkxMTcsIDEuMjgyOTkiLCBcCi0gICAgICAgICAgIjAuMDQ2NzUsIDAuMjQwMjI5LCAwLjQzNjA2LCAwLjU3NzQzOCwgMC44MDQ4MTcsIDEuMDAwNTIsIDEuMjgwNzMiLCBcCi0gICAgICAgICAgIjAuMDQ2ODA5LCAwLjI0MDM1OCwgMC40Mzc0OTYsIDAuNTc3NzE0LCAwLjgwNDQ5LCAwLjk5OTI0MiwgMS4yODIzNSIsIFwKLSAgICAgICAgICAiMC4wNDcwMzIsIDAuMjQwMzIyLCAwLjQzNzUxMywgMC41NzY5NTMsIDAuODA0ODI4LCAwLjk5OTExMywgMS4yODIzNyIsIFwKLSAgICAgICAgICAiMC4wNDc1MzUsIDAuMjQwMDcyLCAwLjQzNjQ5NSwgMC41NzczODQsIDAuODA0MzgyLCAxLjAwMDgzLCAxLjI4MDY4IiwgXAotICAgICAgICAgICIwLjA0OTA5NywgMC4yNDA0NzcsIDAuNDM3NTkzLCAwLjU3Nzg1OSwgMC44MDE5NzUsIDAuOTk5NDI3LCAxLjI4MDI1IiwgXAotICAgICAgICAgICIwLjA1MDczOSwgMC4yNDA5MDYsIDAuNDM3NjgxLCAwLjU3ODc3MiwgMC44MDE4MTMsIDAuOTk5NDI1LCAxLjI4MTIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNTYxMiwgMC4wMDU3ODUsIDAuMDA1ODEsIDAuMDA1ODI1LCAwLjAwNTgzMywgMC4wMDU4MTgsIDAuMDA1ODMxIiwgXAotICAgICAgICAgICIwLjAwNTU2MiwgMC4wMDU3NDYsIDAuMDA1NzY5LCAwLjAwNTc3NCwgMC4wMDU3OCwgMC4wMDU3NzcsIDAuMDA1Nzg2IiwgXAotICAgICAgICAgICIwLjAwNTUyMSwgMC4wMDU3MDUsIDAuMDA1NzMzLCAwLjAwNTc0NCwgMC4wMDU3NDcsIDAuMDA1NzQ3LCAwLjAwNTc1NiIsIFwKLSAgICAgICAgICAiMC4wMDU0OTYsIDAuMDA1NjgxLCAwLjAwNTcxLCAwLjAwNTcxOSwgMC4wMDU3MjUsIDAuMDA1NzMsIDAuMDA1NzM0IiwgXAotICAgICAgICAgICIwLjAwNTQ3NCwgMC4wMDU2NjMsIDAuMDA1Njk1LCAwLjAwNTcwMywgMC4wMDU3MTQsIDAuMDA1NzE2LCAwLjAwNTcyIiwgXAotICAgICAgICAgICIwLjAwNTQ0OCwgMC4wMDU2MzUsIDAuMDA1NjcyLCAwLjAwNTY4NSwgMC4wMDU2OTYsIDAuMDA1NzAyLCAwLjAwNTcwNCIsIFwKLSAgICAgICAgICAiMC4wMDU0MzgsIDAuMDA1NjIsIDAuMDA1NjYsIDAuMDA1Njc2LCAwLjAwNTY4NiwgMC4wMDU2OTIsIDAuMDA1Njk2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDc4MzEsIDAuMDA4MDA4LCAwLjAwODAzLCAwLjAwODAzNywgMC4wMDgwNDMsIDAuMDA4MDQ2LCAwLjAwODA0OCIsIFwKLSAgICAgICAgICAiMC4wMDc3ODIsIDAuMDA3OTcyLCAwLjAwNzk5OCwgMC4wMDgwMDUsIDAuMDA4MDEyLCAwLjAwODAxNSwgMC4wMDgwMTgiLCBcCi0gICAgICAgICAgIjAuMDA3NzMxLCAwLjAwNzkzNywgMC4wMDc5NjksIDAuMDA3OTc5LCAwLjAwNzk4NywgMC4wMDc5OTIsIDAuMDA3OTk2IiwgXAotICAgICAgICAgICIwLjAwNzY4NCwgMC4wMDc5MDUsIDAuMDA3OTQ1LCAwLjAwNzk1OCwgMC4wMDc5NjksIDAuMDA3OTc1LCAwLjAwNzk4IiwgXAotICAgICAgICAgICIwLjAwNzY0OCwgMC4wMDc4ODIsIDAuMDA3OTI4LCAwLjAwNzk0MywgMC4wMDc5NTcsIDAuMDA3OTY0LCAwLjAwNzk3MSIsIFwKLSAgICAgICAgICAiMC4wMDc2MTMsIDAuMDA3ODQ5LCAwLjAwNzkwMywgMC4wMDc5MjEsIDAuMDA3OTM4LCAwLjAwNzk0NywgMC4wMDc5NTUiLCBcCi0gICAgICAgICAgIjAuMDA3NTk0LCAwLjAwNzgyNywgMC4wMDc4ODYsIDAuMDA3OTA3LCAwLjAwNzkyNiwgMC4wMDc5MzcsIDAuMDA3OTQ2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDU2MTEsIDAuMDA1NzkxLCAwLjAwNTgxNywgMC4wMDU4MjQsIDAuMDA1ODMxLCAwLjAwNTgzNSwgMC4wMDU4MzgiLCBcCi0gICAgICAgICAgIjAuMDA1NTQ2LCAwLjAwNTczMSwgMC4wMDU3NjIsIDAuMDA1NzYxLCAwLjAwNTc3NSwgMC4wMDU3NzQsIDAuMDA1Nzc3IiwgXAotICAgICAgICAgICIwLjAwNTUsIDAuMDA1Njg0LCAwLjAwNTcxNiwgMC4wMDU3MjcsIDAuMDA1NzM2LCAwLjAwNTc0LCAwLjAwNTc0MiIsIFwKLSAgICAgICAgICAiMC4wMDU0NzcsIDAuMDA1NjYzLCAwLjAwNTY5MywgMC4wMDU3MDQsIDAuMDA1NzE0LCAwLjAwNTcxNiwgMC4wMDU3MjEiLCBcCi0gICAgICAgICAgIjAuMDA1NDU2LCAwLjAwNTYzNCwgMC4wMDU2NzMsIDAuMDA1Njg2LCAwLjAwNTY5OCwgMC4wMDU3MDUsIDAuMDA1NzEiLCBcCi0gICAgICAgICAgIjAuMDA1NDI4LCAwLjAwNTYwNywgMC4wMDU2NTMsIDAuMDA1NjY3LCAwLjAwNTY4NCwgMC4wMDU2OTIsIDAuMDA1NzAxIiwgXAotICAgICAgICAgICIwLjAwNTQyNSwgMC4wMDU1OTksIDAuMDA1NjQzLCAwLjAwNTY2MiwgMC4wMDU2ODEsIDAuMDA1NjksIDAuMDA1Njk5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDcyMTQsIDAuMDA3Mzk5LCAwLjAwNzQyLCAwLjAwNzQyNywgMC4wMDc0MzMsIDAuMDA3NDM1LCAwLjAwNzQzOCIsIFwKLSAgICAgICAgICAiMC4wMDcxNzQsIDAuMDA3MzY4LCAwLjAwNzM5MiwgMC4wMDczOTksIDAuMDA3NDA1LCAwLjAwNzQwOCwgMC4wMDc0MTEiLCBcCi0gICAgICAgICAgIjAuMDA3MTA2LCAwLjAwNzMyMSwgMC4wMDczNTMsIDAuMDA3MzYzLCAwLjAwNzM3MiwgMC4wMDczNzYsIDAuMDA3Mzc5IiwgXAotICAgICAgICAgICIwLjAwNzA0NiwgMC4wMDcyNzcsIDAuMDA3MzE5LCAwLjAwNzMzMywgMC4wMDczNDUsIDAuMDA3MzUxLCAwLjAwNzM1NiIsIFwKLSAgICAgICAgICAiMC4wMDcwMTIsIDAuMDA3MjUzLCAwLjAwNzI5OSwgMC4wMDczMTUsIDAuMDA3MzI4LCAwLjAwNzMzNSwgMC4wMDczNDEiLCBcCi0gICAgICAgICAgIjAuMDA2OTczLCAwLjAwNzIwOSwgMC4wMDcyNjYsIDAuMDA3Mjg2LCAwLjAwNzMwMywgMC4wMDczMTMsIDAuMDA3MzIxIiwgXAotICAgICAgICAgICIwLjAwNjk0NiwgMC4wMDcxODcsIDAuMDA3MjQ5LCAwLjAwNzI3MSwgMC4wMDcyOTEsIDAuMDA3MzAxLCAwLjAwNzMxMSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogQU5EMlhMICoKLSAqIC0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoQU5EMlhMKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMDQ2MzI0NzsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjE4OTI3OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYxODkyNzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2MTc5NTc7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMTY1LCAwLjAwMDE2NSwgMC4wMDAxNjUsIDAuMDAwMTY1LCAwLjAwMDE2NSwgMC4wMDAxNjUsIDAuMDAwMTY1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMTcsIDAuMDAwMTY3LCAwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiwgMC4wMDAxNjYiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDU3NTE5OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDU3NDk4NDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA1NzUxOTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAwODEsIDAuMDAwMDgxLCAwLjAwMDA4MSwgMC4wMDAwODEsIDAuMDAwMDgxLCAwLjAwMDA4MSwgMC4wMDAwODEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxODgsIDAuMDAwMTg4LCAwLjAwMDE4OCwgMC4wMDAxODgsIDAuMDAwMTg4LCAwLjAwMDE4OCwgMC4wMDAxODgiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4wNjg5NjM3OwotICAgIGZ1bmN0aW9uIDogIihBIEIpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMTA5MDQsIDAuMjM2MTU5LCAwLjQ2MzQzMSwgMC44NDIxOSwgMS4yMjExLCAyLjEwNTk5LCAyLjYwOTY0IiwgXAotICAgICAgICAgICIwLjIyMjMxOSwgMC4yNDc1NjMsIDAuNDc0ODEyLCAwLjg1Mzg0MiwgMS4yMzIyNCwgMi4xMTYwMywgMi42MjE5IiwgXAotICAgICAgICAgICIwLjIzNTk4MiwgMC4yNjEyMzQsIDAuNDg4NTAzLCAwLjg2NzU5MSwgMS4yNDYxLCAyLjEzMDYzLCAyLjYzNDg1IiwgXAotICAgICAgICAgICIwLjI0OTgxMywgMC4yNzUwNjQsIDAuNTAyMzYzLCAwLjg4MTM2MSwgMS4yNTk5NSwgMi4xNDM2MiwgMi42NDk1MiIsIFwKLSAgICAgICAgICAiMC4yNjMyOSwgMC4yODg1NDksIDAuNTE1ODMyLCAwLjg5NDYwOSwgMS4yNzM0NCwgMi4xNTgsIDIuNjYyMTciLCBcCi0gICAgICAgICAgIjAuMjg0NDM1LCAwLjMwOTY5OCwgMC41MzY5ODksIDAuOTE2MDY3LCAxLjI5NDU4LCAyLjE3OTAyLCAyLjY4MzQyIiwgXAotICAgICAgICAgICIwLjMwMjUwNiwgMC4zMjc3NjQsIDAuNTU1MDQ2LCAwLjkzMzkxMSwgMS4zMTI3NiwgMi4xOTc4NywgMi43MDExOSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yNzMsIDAuMzIzMjEyLCAwLjc4Mjk3NywgMS41NTM4LCAyLjMxODgyLCA0LjExMjA1LCA1LjEzNTg4IiwgXAotICAgICAgICAgICIwLjI3MzEwOCwgMC4zMjM3NjgsIDAuNzg0MzY1LCAxLjU1MDMsIDIuMzI0MTQsIDQuMTA5MTgsIDUuMTM0NTMiLCBcCi0gICAgICAgICAgIjAuMjczMDczLCAwLjMyMzE4NCwgMC43ODI5MjcsIDEuNTUwMjgsIDIuMzE3MzksIDQuMTA5ODksIDUuMTM1NCIsIFwKLSAgICAgICAgICAiMC4yNzMwNDYsIDAuMzIzNywgMC43ODMxMTEsIDEuNTUwMjgsIDIuMzIwMDMsIDQuMTE5NTEsIDUuMTMzODEiLCBcCi0gICAgICAgICAgIjAuMjczMDQ3LCAwLjMyMzE5MiwgMC43ODI5MDIsIDEuNTQ5OTgsIDIuMzE3MzcsIDQuMTA5NzgsIDUuMTM1MzYiLCBcCi0gICAgICAgICAgIjAuMjczMDExLCAwLjMyMzE1MSwgMC43ODM3OTgsIDEuNTUwMjcsIDIuMzE3NTcsIDQuMTA5OTQsIDUuMTM0OTQiLCBcCi0gICAgICAgICAgIjAuMjcyODI3LCAwLjMyMzk3MywgMC43ODQzNzUsIDEuNTQ5NTQsIDIuMzE4NjUsIDQuMTExNzgsIDUuMTMyNzgiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTk1Nzk4LCAwLjIyNTUyNCwgMC40OTI5MDYsIDAuOTM4NDQ0LCAxLjM4MzgzLCAyLjQyMzE1LCAzLjAxNzE3IiwgXAotICAgICAgICAgICIwLjIwNzUzMSwgMC4yMzcyNTUsIDAuNTA0NjQ1LCAwLjk1MDExNiwgMS4zOTU2NywgMi40MzQ5MywgMy4wMjg3MyIsIFwKLSAgICAgICAgICAiMC4yMjIyNDksIDAuMjUyMDAyLCAwLjUxOTQwMSwgMC45NjQ4OCwgMS40MTAzMiwgMi40NDk2NSwgMy4wNDM2MyIsIFwKLSAgICAgICAgICAiMC4yMzY2NjUsIDAuMjY2Mzk5LCAwLjUzMzgyOCwgMC45NzkzMiwgMS40MjQ3NiwgMi40NjQxNywgMy4wNTgxMSIsIFwKLSAgICAgICAgICAiMC4yNTAyMzQsIDAuMjc5OTg4LCAwLjU0NzQzMywgMC45OTI5NiwgMS40MzgzNiwgMi40Nzc2OSwgMy4wNzE2OSIsIFwKLSAgICAgICAgICAiMC4yNjk4MjUsIDAuMjk5NTcsIDAuNTY3MDEsIDEuMDEyNTIsIDEuNDU3OTYsIDIuNDk3MjYsIDMuMDkxMTkiLCBcCi0gICAgICAgICAgIjAuMjg1MTc3LCAwLjMxNDkxNSwgMC41ODIzNTUsIDEuMDI3ODcsIDEuNDczMywgMi41MTI3MywgMy4xMDY3OSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMTA0NTksIDAuMzY5MjIsIDAuODk4MTQsIDEuNzgyMjMsIDIuNjYzMzEsIDQuNzIxNDgsIDUuODkwNTciLCBcCi0gICAgICAgICAgIjAuMzEwNDIyLCAwLjM2OTI0MywgMC44OTg0NTYsIDEuNzgzNSwgMi42NjU4MiwgNC43MjIxMywgNS44OTE1MiIsIFwKLSAgICAgICAgICAiMC4zMTA0ODIsIDAuMzY5MDU0LCAwLjg5OTAwMiwgMS43ODAyMiwgMi42NjM0NCwgNC43MjE1NiwgNS44OTE2NiIsIFwKLSAgICAgICAgICAiMC4zMTAzNzIsIDAuMzY5MjA5LCAwLjg5OTExNywgMS43ODAzNCwgMi42NjMzMywgNC43MjA2LCA1Ljg4OTkzIiwgXAotICAgICAgICAgICIwLjMxMDYyNCwgMC4zNjkxNTYsIDAuODk3MzQ4LCAxLjc4MjI4LCAyLjY2MzQsIDQuNzIwNzcsIDUuODg5OCIsIFwKLSAgICAgICAgICAiMC4zMTA1NTMsIDAuMzY4ODY0LCAwLjg5Nzk5MSwgMS43ODA2NiwgMi42Njc0MywgNC43MjA2OSwgNS44OTA4NyIsIFwKLSAgICAgICAgICAiMC4zMTA2NTksIDAuMzY5MDksIDAuODk5MjExLCAxLjc4Mjk2LCAyLjY2Njg3LCA0LjcyMDU5LCA1Ljg5MTQ0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIwNjIyOSwgMC4yMzE1MDQsIDAuNDU4NzYxLCAwLjgzNzUwMywgMS4yMTY0NywgMi4wOTk2OCwgMi42MDQ5MyIsIFwKLSAgICAgICAgICAiMC4yMTYzMjcsIDAuMjQxNTcsIDAuNDY4ODUsIDAuODQ3OTA2LCAxLjIyNjM0LCAyLjExMDM5LCAyLjYxNTg1IiwgXAotICAgICAgICAgICIwLjIyOTkwOSwgMC4yNTUxODcsIDAuNDgyNDYxLCAwLjg2MTQ5NywgMS4yNDAwMiwgMi4xMjM2NSwgMi42Mjg5NyIsIFwKLSAgICAgICAgICAiMC4yNDM4MDgsIDAuMjY5MDksIDAuNDk2MzgyLCAwLjg3NTQ0NiwgMS4yNTM5NiwgMi4xMzg0LCAyLjY0MjgzIiwgXAotICAgICAgICAgICIwLjI1NzMwNywgMC4yODI1NzgsIDAuNTA5ODY1LCAwLjg4ODg1OSwgMS4yNjc2MSwgMi4xNTE1OSwgMi42NTY2OSIsIFwKLSAgICAgICAgICAiMC4yNzkxNDYsIDAuMzA0Mzg4LCAwLjUzMTY5NiwgMC45MTA1MTUsIDEuMjg5MzQsIDIuMTczODksIDIuNjc4MDciLCBcCi0gICAgICAgICAgIjAuMjk3NjU0LCAwLjMyMjkxMiwgMC41NTAyMTEsIDAuOTI5MjQzLCAxLjMwNzkxLCAyLjE5MTUxLCAyLjY5NzM4Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI3MjU0OSwgMC4zMjMxNzQsIDAuNzg0MjMsIDEuNTUzODUsIDIuMzE4NjEsIDQuMTIwMTQsIDUuMTMyOSIsIFwKLSAgICAgICAgICAiMC4yNzMwNzEsIDAuMzIzMTYxLCAwLjc4NDQxMSwgMS41NTAyNywgMi4zMTc3NSwgNC4xMTkzMSwgNS4xMzM5NCIsIFwKLSAgICAgICAgICAiMC4yNzI1NzQsIDAuMzIzMTU5LCAwLjc4NDE0MiwgMS41NTAyOCwgMi4zMTc3MSwgNC4xMDkxMSwgNS4xMzUzOSIsIFwKLSAgICAgICAgICAiMC4yNzIzOTgsIDAuMzIzMTY2LCAwLjc4Mzk0LCAxLjU1MDI2LCAyLjMxNzU3LCA0LjEwOTkzLCA1LjEzNTU1IiwgXAotICAgICAgICAgICIwLjI3MjYwNiwgMC4zMjM0MzEsIDAuNzg0MTI1LCAxLjU1MDM0LCAyLjMyMzM1LCA0LjExMzU4LCA1LjEzNjc4IiwgXAotICAgICAgICAgICIwLjI3MjU2MywgMC4zMjM0ODEsIDAuNzg0MDI5LCAxLjU0OTk2LCAyLjMxNzM0LCA0LjEwOTc5LCA1LjEzNDgxIiwgXAotICAgICAgICAgICIwLjI3MzM5NSwgMC4zMjM1NzcsIDAuNzg0MzUzLCAxLjU1MDI4LCAyLjMxODY0LCA0LjExOTY5LCA1LjEzNTA4Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE5MzAwNiwgMC4yMjI3MDUsIDAuNDkwMTI2LCAwLjkzNTcxNSwgMS4zODE3OSwgMi40MjEzNywgMy4wMTUwNyIsIFwKLSAgICAgICAgICAiMC4yMDQ3LCAwLjIzNDM4NywgMC41MDE3NDksIDAuOTQ3OTU3LCAxLjM5MzY2LCAyLjQzMzM2LCAzLjAyNjQ1IiwgXAotICAgICAgICAgICIwLjIxOTM0MywgMC4yNDkwNTEsIDAuNTE2NDcyLCAwLjk2MjQ2NywgMS40MDgyMSwgMi40NDc4OCwgMy4wNDEwOCIsIFwKLSAgICAgICAgICAiMC4yMzM1ODMsIDAuMjYzMzAyLCAwLjUzMDc4MiwgMC45NzY1OTUsIDEuNDIyMSwgMi40NjIzMiwgMy4wNTYwNyIsIFwKLSAgICAgICAgICAiMC4yNDY0OTksIDAuMjc2MjMxLCAwLjU0Mzg1LCAwLjk4OTMxOSwgMS40MzU2MywgMi40NzQ2OCwgMy4wNjg0NSIsIFwKLSAgICAgICAgICAiMC4yNjUzMTEsIDAuMjk1MDgyLCAwLjU2MjczNywgMS4wMDg1LCAxLjQ1NDU2LCAyLjQ5NDA4LCAzLjA4NzE5IiwgXAotICAgICAgICAgICIwLjI3OTU3NSwgMC4zMDkyOTEsIDAuNTc2NzM4LCAxLjAyMjM5LCAxLjQ2ODk2LCAyLjUwODIzLCAzLjEwMTQ4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMwOTg0NiwgMC4zNjg4MjIsIDAuODk4MTQ2LCAxLjc4MDM3LCAyLjY2MDIsIDQuNzIwNjUsIDUuODkwNDYiLCBcCi0gICAgICAgICAgIjAuMzA5Mjk3LCAwLjM2ODY0LCAwLjg5NzMxOSwgMS43ODEzNiwgMi42NjE2OSwgNC43MTgxOSwgNS44OTEyMSIsIFwKLSAgICAgICAgICAiMC4zMDk3NTMsIDAuMzY4ODE2LCAwLjg5ODQ3MywgMS43Nzg0NCwgMi42NjAwOCwgNC43MjA2NywgNS44OTE3OSIsIFwKLSAgICAgICAgICAiMC4zMTA0MjMsIDAuMzY4ODcyLCAwLjg5NzUwMSwgMS43ODI4NCwgMi42NjM1NywgNC43MjAxNiwgNS44OTA1NSIsIFwKLSAgICAgICAgICAiMC4zMTA0NzUsIDAuMzY5MzU4LCAwLjg5NzE5MSwgMS43ODQ1MiwgMi42NjE5LCA0LjcyMDExLCA1Ljg5MTg5IiwgXAotICAgICAgICAgICIwLjMxMDYwOCwgMC4zNjg1NDEsIDAuODk2OTA1LCAxLjc4MDM5LCAyLjY2MzM4LCA0LjcxOTExLCA1Ljg5MTUyIiwgXAotICAgICAgICAgICIwLjMxMDU4OSwgMC4zNjg3ODcsIDAuODk5OTU2LCAxLjc4NDU1LCAyLjY2NTg5LCA0LjcyMDY1LCA1Ljg5MTgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDA4MSwgMC4wMDA4MTEsIDAuMDAwODEyLCAwLjAwMDgxMiwgMC4wMDA4MTIsIDAuMDAwODEyLCAwLjAwMDgxMiIsIFwKLSAgICAgICAgICAiMC4wMDA3OTYsIDAuMDAwNzk2LCAwLjAwMDc5NywgMC4wMDA3OTcsIDAuMDAwNzk3LCAwLjAwMDc5NywgMC4wMDA3OTgiLCBcCi0gICAgICAgICAgIjAuMDAwNzg3LCAwLjAwMDc4NywgMC4wMDA3ODgsIDAuMDAwNzg4LCAwLjAwMDc4OCwgMC4wMDA3ODgsIDAuMDAwNzg4IiwgXAotICAgICAgICAgICIwLjAwMDc4MiwgMC4wMDA3ODIsIDAuMDAwNzgzLCAwLjAwMDc4MywgMC4wMDA3ODMsIDAuMDAwNzg0LCAwLjAwMDc4MyIsIFwKLSAgICAgICAgICAiMC4wMDA3NzgsIDAuMDAwNzc4LCAwLjAwMDc4LCAwLjAwMDc4LCAwLjAwMDc4LCAwLjAwMDc4LCAwLjAwMDc4MSIsIFwKLSAgICAgICAgICAiMC4wMDA3NzUsIDAuMDAwNzc1LCAwLjAwMDc3NywgMC4wMDA3NzgsIDAuMDAwNzc4LCAwLjAwMDc3OCwgMC4wMDA3NzgiLCBcCi0gICAgICAgICAgIjAuMDAwNzczLCAwLjAwMDc3MywgMC4wMDA3NzYsIDAuMDAwNzc2LCAwLjAwMDc3NywgMC4wMDA3NzcsIDAuMDAwNzc3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxNTc3LCAwLjAwMTU3NywgMC4wMDE1NzgsIDAuMDAxNTc5LCAwLjAwMTU3OSwgMC4wMDE1NzksIDAuMDAxNTc5IiwgXAotICAgICAgICAgICIwLjAwMTU2OCwgMC4wMDE1NjgsIDAuMDAxNTY5LCAwLjAwMTU3LCAwLjAwMTU3LCAwLjAwMTU3LCAwLjAwMTU3IiwgXAotICAgICAgICAgICIwLjAwMTU2MSwgMC4wMDE1NjEsIDAuMDAxNTYzLCAwLjAwMTU2NCwgMC4wMDE1NjQsIDAuMDAxNTY0LCAwLjAwMTU2NCIsIFwKLSAgICAgICAgICAiMC4wMDE1NTYsIDAuMDAxNTU3LCAwLjAwMTU2LCAwLjAwMTU2MSwgMC4wMDE1NjEsIDAuMDAxNTYyLCAwLjAwMTU2MiIsIFwKLSAgICAgICAgICAiMC4wMDE1NTMsIDAuMDAxNTU0LCAwLjAwMTU1NywgMC4wMDE1NTgsIDAuMDAxNTU5LCAwLjAwMTU1OSwgMC4wMDE1NTkiLCBcCi0gICAgICAgICAgIjAuMDAxNTQ4LCAwLjAwMTU1MSwgMC4wMDE1NTUsIDAuMDAxNTU2LCAwLjAwMTU1NywgMC4wMDE1NTcsIDAuMDAxNTU3IiwgXAotICAgICAgICAgICIwLjAwMTU0OCwgMC4wMDE1NDksIDAuMDAxNTU0LCAwLjAwMTU1NiwgMC4wMDE1NTYsIDAuMDAxNTU3LCAwLjAwMTU1NyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDgxMSwgMC4wMDA4MTEsIDAuMDAwODEyLCAwLjAwMDgxMywgMC4wMDA4MTMsIDAuMDAwODEzLCAwLjAwMDgxMyIsIFwKLSAgICAgICAgICAiMC4wMDA3OTMsIDAuMDAwNzkzLCAwLjAwMDc5NSwgMC4wMDA3OTUsIDAuMDAwNzk2LCAwLjAwMDc5NiwgMC4wMDA3OTYiLCBcCi0gICAgICAgICAgIjAuMDAwNzgzLCAwLjAwMDc4NCwgMC4wMDA3ODUsIDAuMDAwNzg2LCAwLjAwMDc4NiwgMC4wMDA3ODYsIDAuMDAwNzg2IiwgXAotICAgICAgICAgICIwLjAwMDc3OCwgMC4wMDA3NzgsIDAuMDAwNzgxLCAwLjAwMDc4MSwgMC4wMDA3ODEsIDAuMDAwNzgyLCAwLjAwMDc4MiIsIFwKLSAgICAgICAgICAiMC4wMDA3NzQsIDAuMDAwNzc1LCAwLjAwMDc3OCwgMC4wMDA3NzksIDAuMDAwNzc5LCAwLjAwMDc3OSwgMC4wMDA3NzkiLCBcCi0gICAgICAgICAgIjAuMDAwNzczLCAwLjAwMDc3NCwgMC4wMDA3NzgsIDAuMDAwNzc5LCAwLjAwMDc3OSwgMC4wMDA3NzksIDAuMDAwNzgiLCBcCi0gICAgICAgICAgIjAuMDAwNzczLCAwLjAwMDc3NCwgMC4wMDA3NzgsIDAuMDAwNzc5LCAwLjAwMDc4LCAwLjAwMDc4LCAwLjAwMDc4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxNDA1LCAwLjAwMTQwNiwgMC4wMDE0MDcsIDAuMDAxNDA3LCAwLjAwMTQwNywgMC4wMDE0MDcsIDAuMDAxNDA3IiwgXAotICAgICAgICAgICIwLjAwMTM5NSwgMC4wMDEzOTUsIDAuMDAxMzk3LCAwLjAwMTM5NywgMC4wMDEzOTcsIDAuMDAxMzk4LCAwLjAwMTM5OSIsIFwKLSAgICAgICAgICAiMC4wMDEzODUsIDAuMDAxMzg2LCAwLjAwMTM4OCwgMC4wMDEzODksIDAuMDAxMzg5LCAwLjAwMTM4OSwgMC4wMDEzODkiLCBcCi0gICAgICAgICAgIjAuMDAxMzc5LCAwLjAwMTM4LCAwLjAwMTM4MywgMC4wMDEzODQsIDAuMDAxMzg0LCAwLjAwMTM4NSwgMC4wMDEzODIiLCBcCi0gICAgICAgICAgIjAuMDAxMzc0LCAwLjAwMTM3NiwgMC4wMDEzNzgsIDAuMDAxMzc5LCAwLjAwMTM4LCAwLjAwMTM4LCAwLjAwMTM4IiwgXAotICAgICAgICAgICIwLjAwMTM3MSwgMC4wMDEzNzIsIDAuMDAxMzc3LCAwLjAwMTM3OCwgMC4wMDEzNzksIDAuMDAxMzgsIDAuMDAxMzgiLCBcCi0gICAgICAgICAgIjAuMDAxMzY5LCAwLjAwMTM3LCAwLjAwMTM3NiwgMC4wMDEzNzgsIDAuMDAxMzc5LCAwLjAwMTM3OSwgMC4wMDEzNzkiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IEFORDNYMSAqCi0gKiAtLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKEFORDNYMSkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjA3NDgxMzc7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDU2NzE3NTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA1NjcxNzU7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNTY1NTM1OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDE2NSwgMC4wMDAxNjUsIDAuMDAwMTY1LCAwLjAwMDE2NSwgMC4wMDAxNjUsIDAuMDAwMTY1LCAwLjAwMDE2NSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNTY5NDE2OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDU2OTQxNjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA1NjgyMTk7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMTY1LCAwLjAwMDE2NSwgMC4wMDAxNjUsIDAuMDAwMTY1LCAwLjAwMDE2NSwgMC4wMDAxNjUsIDAuMDAwMTY1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMTY2LCAwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY2Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihDKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA1OTU0NjQ7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNTk0Nzk7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNTk1NDY0OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDA3MSwgMC4wMDAwNzEsIDAuMDAwMDcxLCAwLjAwMDA3MSwgMC4wMDAwNzEsIDAuMDAwMDcxLCAwLjAwMDA3MSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDE4OCwgMC4wMDAxODgsIDAuMDAwMTg4LCAwLjAwMDE4OCwgMC4wMDAxODgsIDAuMDAwMTg4LCAwLjAwMDE4OCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjEyOTQwMTsKLSAgICBmdW5jdGlvbiA6ICIoKEEgQikgQykiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI1MzA4LCAwLjI5NzkzMywgMC41NDM1NTgsIDAuNzU5NDAxLCAxLjA0NzExLCAxLjYyMjYzLCAxLjk4MjgzIiwgXAotICAgICAgICAgICIwLjI2NDUyNywgMC4zMDk0MTUsIDAuNTU1MDY2LCAwLjc3MDg5OSwgMS4wNTg2MiwgMS42MzQxMywgMS45OTQxNyIsIFwKLSAgICAgICAgICAiMC4yNzc2ODUsIDAuMzIyNTk3LCAwLjU2ODIyMiwgMC43ODQwNTgsIDEuMDcxNzcsIDEuNjQ3MjksIDIuMDA3OTIiLCBcCi0gICAgICAgICAgIjAuMjkwMDQ1LCAwLjMzNTQ4OCwgMC41ODExNTgsIDAuNzk2OTkzLCAxLjA4NDcyLCAxLjY2MDIxLCAyLjAyMDE0IiwgXAotICAgICAgICAgICIwLjMwMjUxNiwgMC4zNDc5OCwgMC41OTM1NzksIDAuODA5Mzc1LCAxLjA5NzEzLCAxLjY3MjY0LCAyLjAzMzE0IiwgXAotICAgICAgICAgICIwLjMyMjI5OSwgMC4zNjc1MzMsIDAuNjEzMjExLCAwLjgyOTA4NiwgMS4xMTY4NiwgMS42OTI0LCAyLjA1Mjg5IiwgXAotICAgICAgICAgICIwLjMzOTA5NCwgMC4zODQzNTYsIDAuNjMwMDg1LCAwLjg0NjAyMSwgMS4xMzM3OCwgMS43MDkyMiwgMi4wNjk1Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE4MTk2NCwgMC4yNjQ2OTYsIDAuNzQ4MTc3LCAxLjE4NTg4LCAxLjc3Mjg0LCAyLjk0Mzk0LCAzLjY2ODgxIiwgXAotICAgICAgICAgICIwLjE4MTkyMywgMC4yNjQ1MjUsIDAuNzQ5NjYxLCAxLjE4NTc1LCAxLjc3Mjg1LCAyLjk0NDczLCAzLjY2ODQ2IiwgXAotICAgICAgICAgICIwLjE4MTg5MSwgMC4yNjQ0ODgsIDAuNzQ4MTU1LCAxLjE4NTc2LCAxLjc3MjgxLCAyLjk0MzgsIDMuNjY3NTIiLCBcCi0gICAgICAgICAgIjAuMTgyMDMxLCAwLjI2NDI3OSwgMC43NDk2MTcsIDEuMTg1NzIsIDEuNzcyODEsIDIuOTQ0NjEsIDMuNjcwODMiLCBcCi0gICAgICAgICAgIjAuMTgyMDA3LCAwLjI2NDI5MiwgMC43NDk3MSwgMS4xODc1NiwgMS43NzI4LCAyLjk0Mzc2LCAzLjY2NzciLCBcCi0gICAgICAgICAgIjAuMTgxNjg4LCAwLjI2Mzk1LCAwLjc0OTUyLCAxLjE4NTE5LCAxLjc3MzExLCAyLjk0NDE0LCAzLjY2NzYzIiwgXAotICAgICAgICAgICIwLjE4MTU3NCwgMC4yNjM2ODQsIDAuNzUwNDUzLCAxLjE4NTA3LCAxLjc2ODE5LCAyLjk0NDg0LCAzLjY2NzYzIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE0Nzc3NywgMC4xOTc0NDMsIDAuNDc3NzIxLCAwLjcyNDc0MiwgMS4wNTM5OSwgMS43MTI1MiwgMi4xMjM5MSIsIFwKLSAgICAgICAgICAiMC4xNTkyMjMsIDAuMjA4ODY2LCAwLjQ4OTIsIDAuNzM2MTU4LCAxLjA2NTQ4LCAxLjcyMzg1LCAyLjEzNTMxIiwgXAotICAgICAgICAgICIwLjE3NDAzNywgMC4yMjM2OTMsIDAuNTA0MDE4LCAwLjc1MTAxMSwgMS4wODAzNCwgMS43Mzg3LCAyLjE1MDE1IiwgXAotICAgICAgICAgICIwLjE4ODkzNCwgMC4yMzg2MTcsIDAuNTE4OTIzLCAwLjc2NTk0OSwgMS4wOTUyMSwgMS43NTM2MiwgMi4xNjUxNCIsIFwKLSAgICAgICAgICAiMC4yMDM1MzMsIDAuMjUzMjE0LCAwLjUzMzU1MiwgMC43ODA1NjQsIDEuMTA5ODUsIDEuNzY4MjUsIDIuMTc5NzEiLCBcCi0gICAgICAgICAgIjAuMjI2MTg1LCAwLjI3NTgyOSwgMC41NTYxNzMsIDAuODAzMjEsIDEuMTMyNDYsIDEuNzkwODgsIDIuMjAyNDQiLCBcCi0gICAgICAgICAgIjAuMjQ0MzczLCAwLjI5NDA0LCAwLjU3NDQxMiwgMC44MjE0MiwgMS4xNTA2OCwgMS44MDkxMSwgMi4yMjA1OCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNzk3MTQsIDAuMjc2MjUsIDAuODMxMzg3LCAxLjMyMjM2LCAxLjk3NzkyLCAzLjI4NjExLCA0LjEwNTc5IiwgXAotICAgICAgICAgICIwLjE3OTY3NywgMC4yNzY2MTcsIDAuODMxNzM2LCAxLjMyMzI1LCAxLjk3NzE2LCAzLjI4NzY0LCA0LjEwNjA0IiwgXAotICAgICAgICAgICIwLjE3OTY1LCAwLjI3Njk1NCwgMC44MzE4MjUsIDEuMzIxODYsIDEuOTc2OTYsIDMuMjg3NTYsIDQuMTA1OTMiLCBcCi0gICAgICAgICAgIjAuMTc5NTIsIDAuMjc2ODU1LCAwLjgzMjIzNSwgMS4zMjE4NywgMS45Nzc5OCwgMy4yODc4OCwgNC4xMDU5NSIsIFwKLSAgICAgICAgICAiMC4xNzk3MDIsIDAuMjc3MjI1LCAwLjgzMjQ5LCAxLjMyMTg1LCAxLjk3ODE2LCAzLjI4NzcsIDQuMTA1OTYiLCBcCi0gICAgICAgICAgIjAuMTc5ODc5LCAwLjI3NjQ0MSwgMC44MzIzNjEsIDEuMzIyMTUsIDEuOTc4MzIsIDMuMjg4MzIsIDQuMTA0NDMiLCBcCi0gICAgICAgICAgIjAuMTgsIDAuMjc2NDI0LCAwLjgzMDgwMiwgMS4zMjMyNCwgMS45NzgwOCwgMy4yODc1NiwgNC4xMDU0NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yNDY5NDgsIDAuMjkxNzgzLCAwLjUzNzQzMiwgMC43NTMyNjIsIDEuMDQwOTgsIDEuNjE2NjEsIDEuOTc2ODYiLCBcCi0gICAgICAgICAgIjAuMjU2ODA3LCAwLjMwMjMxNiwgMC41NDc5NTIsIDAuNzYzNzUyLCAxLjA1MTUyLCAxLjYyNzA2LCAxLjk4NzM2IiwgXAotICAgICAgICAgICIwLjI3MDA0MSwgMC4zMTUwNjUsIDAuNTYwNzUyLCAwLjc3NjU4OSwgMS4wNjQzMiwgMS42Mzk4MSwgMS45OTk4MyIsIFwKLSAgICAgICAgICAiMC4yODI3NjEsIDAuMzI3ODkyLCAwLjU3MzU0MywgMC43ODkzNDMsIDEuMDc3MSwgMS42NTI2MywgMi4wMTMwOCIsIFwKLSAgICAgICAgICAiMC4yOTU2ODksIDAuMzQxMTM0LCAwLjU4Njc5OCwgMC44MDI2MTYsIDEuMDkwMzYsIDEuNjY1ODcsIDIuMDI2NDIiLCBcCi0gICAgICAgICAgIjAuMzE2NjkyLCAwLjM2MjA3MSwgMC42MDc3NzcsIDAuODIzNjUsIDEuMTExMzYsIDEuNjg2OTQsIDIuMDQ3NiIsIFwKLSAgICAgICAgICAiMC4zMzQ4NTcsIDAuMzgwMjM3LCAwLjYyNTg5NywgMC44NDE3NDQsIDEuMTI5NDgsIDEuNzA1MTgsIDIuMDY1MTQiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTgxODMyLCAwLjI2NDYzMiwgMC43NDkwMTUsIDEuMTg1NiwgMS43NzI4OCwgMi45NDQyNywgMy42Njc2OCIsIFwKLSAgICAgICAgICAiMC4xODI2MjMsIDAuMjY0NTIsIDAuNzQ5NzAzLCAxLjE4NzY1LCAxLjc3MjksIDIuOTQzOSwgMy42Njc2NiIsIFwKLSAgICAgICAgICAiMC4xODE4NzEsIDAuMjY0NDE1LCAwLjc0OTYyMSwgMS4xODU3MywgMS43NzI4MiwgMi45NDQ2MSwgMy42NzAyOCIsIFwKLSAgICAgICAgICAiMC4xODE3NTcsIDAuMjY0MTY5LCAwLjc0OTcyMywgMS4xODc1NCwgMS43NzI4LCAyLjk0MzgzLCAzLjY2NzY3IiwgXAotICAgICAgICAgICIwLjE4MTgzOCwgMC4yNjQxNTUsIDAuNzQ5Njk5LCAxLjE4NzY2LCAxLjc3Mjc5LCAyLjk0MzczLCAzLjY2NzcyIiwgXAotICAgICAgICAgICIwLjE4MTUxMiwgMC4yNjQwMDUsIDAuNzQ5NTcyLCAxLjE4NDk3LCAxLjc3MjM3LCAyLjk0Mzk4LCAzLjY2OTI4IiwgXAotICAgICAgICAgICIwLjE4MTQ1MywgMC4yNjM5MTUsIDAuNzQ5NjY1LCAxLjE4Nzc4LCAxLjc3MjM2LCAyLjk0MjEsIDMuNjY3OTYiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTQ0NzU5LCAwLjE5NDMwOCwgMC40NzQzMjcsIDAuNzIxMjU0LCAxLjA1MDQ0LCAxLjcwODc3LCAyLjEyMDM4IiwgXAotICAgICAgICAgICIwLjE1NjQwMywgMC4yMDU5MzYsIDAuNDg1OTY3LCAwLjczMjkwMiwgMS4wNjIwNywgMS43MjA0LCAyLjEzMTkzIiwgXAotICAgICAgICAgICIwLjE3MTI5OSwgMC4yMjA4NTYsIDAuNTAwOTE2LCAwLjc0Nzg0LCAxLjA3NzA3LCAxLjczNTM1LCAyLjE0Njc5IiwgXAotICAgICAgICAgICIwLjE4NTk3MiwgMC4yMzU1NTYsIDAuNTE1NjExLCAwLjc2MjU1MywgMS4wOTE3NCwgMS43NTAwNywgMi4xNjE1NCIsIFwKLSAgICAgICAgICAiMC4yMDA0NzYsIDAuMjUwMDYsIDAuNTMwMjEyLCAwLjc3NzEwOCwgMS4xMDYyOSwgMS43NjQ2MiwgMi4xNzYxNSIsIFwKLSAgICAgICAgICAiMC4yMjI2NjIsIDAuMjcyMjI4LCAwLjU1MjM2MywgMC43OTkzNCwgMS4xMjg1LCAxLjc4NjgzLCAyLjE5ODI4IiwgXAotICAgICAgICAgICIwLjI0MDQyOSwgMC4yOTAwMTYsIDAuNTcwMTUyLCAwLjgxNzExNSwgMS4xNDYzLCAxLjgwNDYsIDIuMjE2MDciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTc4OTc3LCAwLjI3NjA1OCwgMC44MzExMDQsIDEuMzIxOTEsIDEuOTc1OCwgMy4yODkwMywgNC4xMDUxNiIsIFwKLSAgICAgICAgICAiMC4xNzg5MDUsIDAuMjc2NTgyLCAwLjgzMDk1LCAxLjMyMzM4LCAxLjk3NTg1LCAzLjI4MzYsIDQuMTA1NjYiLCBcCi0gICAgICAgICAgIjAuMTc5MDIzLCAwLjI3NTkwNCwgMC44MzIxMTIsIDEuMzIxNzYsIDEuOTc3OTMsIDMuMjg0NDMsIDQuMTAxMTYiLCBcCi0gICAgICAgICAgIjAuMTc5MDIsIDAuMjc1NjEyLCAwLjgzMTE1NiwgMS4zMjIzNSwgMS45NzU2NCwgMy4yODM4MywgNC4xMDQwMyIsIFwKLSAgICAgICAgICAiMC4xNzkwNDgsIDAuMjc1ODUxLCAwLjgzMDUwNSwgMS4zMjM0NiwgMS45NzUyOSwgMy4yODM2NywgNC4xMDU1NCIsIFwKLSAgICAgICAgICAiMC4xNzkxMTgsIDAuMjc2NjEsIDAuODMyMTk4LCAxLjMyMjc0LCAxLjk3NTcsIDMuMjg0NzIsIDQuMTAwNjciLCBcCi0gICAgICAgICAgIjAuMTc5NzAzLCAwLjI3Njg3MiwgMC44MzE5OTQsIDEuMzIyNzIsIDEuOTc1ODcsIDMuMjg5ODgsIDQuMTAyMDMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjM2MTc5LCAwLjI4MTE3NCwgMC41MjY4MzQsIDAuNzQyNzA1LCAxLjAzMDM5LCAxLjYwNTk2LCAxLjk2NjQ3IiwgXAotICAgICAgICAgICIwLjI0NTY2MiwgMC4yOTA2NzgsIDAuNTM2MzcxLCAwLjc1MjIxMywgMS4wMzk5NCwgMS42MTU0NCwgMS45NzYxNSIsIFwKLSAgICAgICAgICAiMC4yNTY5MjQsIDAuMzAyNTExLCAwLjU0ODEzMywgMC43NjQwMDksIDEuMDUxODgsIDEuNjI3MjcsIDEuOTg3NjEiLCBcCi0gICAgICAgICAgIjAuMjY5NDk4LCAwLjMxNDg3MSwgMC41NjA1OSwgMC43NzY0NDIsIDEuMDY0MTYsIDEuNjM5NjksIDIuMDAwMzEiLCBcCi0gICAgICAgICAgIjAuMjgyNjc1LCAwLjMyODAxMywgMC41NzM3MDgsIDAuNzg5NTMzLCAxLjA3NzI5LCAxLjY1Mjg0LCAyLjAxMzI1IiwgXAotICAgICAgICAgICIwLjMwMzMwNiwgMC4zNDg3MzQsIDAuNTk0NDQ2LCAwLjgxMDM0OSwgMS4wOTgyNywgMS42NzM4OSwgMi4wMzMzNyIsIFwKLSAgICAgICAgICAiMC4zMjE0OTUsIDAuMzY2ODI1LCAwLjYxMjQ1MywgMC44MjgzNTcsIDEuMTE2MTMsIDEuNjkyMDYsIDIuMDUyMzEiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTgyMDE4LCAwLjI2NDUwMywgMC43NDkwNzEsIDEuMTg4MDYsIDEuNzcyODUsIDIuOTQ0MTEsIDMuNjY4MjYiLCBcCi0gICAgICAgICAgIjAuMTgxODU0LCAwLjI2NDQ0NywgMC43NDk2NDUsIDEuMTg1NzEsIDEuNzcyODIsIDIuOTQ0NiwgMy42NjgxMyIsIFwKLSAgICAgICAgICAiMC4xODIwNzQsIDAuMjY0MDk4LCAwLjc1MDY2MywgMS4xODUyMywgMS43NjgwOSwgMi45NDQ4MSwgMy42Njc2NCIsIFwKLSAgICAgICAgICAiMC4xODE3MDMsIDAuMjY0MTMzLCAwLjc0OTcsIDEuMTg1OCwgMS43NzI3NiwgMi45NDM3MiwgMy42Njc1OCIsIFwKLSAgICAgICAgICAiMC4xODE2NDMsIDAuMjYzOTkxLCAwLjc0OTY1MSwgMS4xODU3MywgMS43NzI3NywgMi45NDM3NywgMy42Njc2NSIsIFwKLSAgICAgICAgICAiMC4xODE0NTcsIDAuMjYzODM0LCAwLjc0OTYyMywgMS4xODUyLCAxLjc2Nzc0LCAyLjkzNzc5LCAzLjY2Njk4IiwgXAotICAgICAgICAgICIwLjE4MTU5NywgMC4yNjM5MTUsIDAuNzQ5NDk3LCAxLjE4NTE5LCAxLjc3MzA3LCAyLjk0MDIsIDMuNjY4NTUiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTQxNTksIDAuMTkxMDU5LCAwLjQ3MDk5NCwgMC43MTgwNTEsIDEuMDQ3MSwgMS43MDYxMSwgMi4xMTcwNCIsIFwKLSAgICAgICAgICAiMC4xNTMyOTEsIDAuMjAyNzYsIDAuNDgyNzA1LCAwLjcyOTg0NiwgMS4wNTkxMywgMS43MTczNywgMi4xMzAxOSIsIFwKLSAgICAgICAgICAiMC4xNjgxMDQsIDAuMjE3NTcyLCAwLjQ5NzU5MywgMC43NDQ2MTgsIDEuMDczOTEsIDEuNzMyMjQsIDIuMTQ1MTgiLCBcCi0gICAgICAgICAgIjAuMTgyNjg5LCAwLjIzMjE5OSwgMC41MTIyNjUsIDAuNzU5MjkyLCAxLjA4ODM0LCAxLjc0NjksIDIuMTU5MzUiLCBcCi0gICAgICAgICAgIjAuMTk3MTA2LCAwLjI0NjYxMiwgMC41MjY2MDYsIDAuNzczNjQzLCAxLjEwMjk5LCAxLjc2MTM5LCAyLjE3MzY1IiwgXAotICAgICAgICAgICIwLjIxODgwNSwgMC4yNjgzMDUsIDAuNTQ4MzYsIDAuNzk1NDY0LCAxLjEyNDY2LCAxLjc4Mzc5LCAyLjE5NDc2IiwgXAotICAgICAgICAgICIwLjIzNjI5NiwgMC4yODU3OTIsIDAuNTY1OTQ5LCAwLjgxMjk3OSwgMS4xNDIsIDEuODAwNTgsIDIuMjEzNTIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTc4NjA3LCAwLjI3NjE3OCwgMC44MzI1MSwgMS4zMjE1MiwgMS45ODA0MSwgMy4yODUxLCA0LjEwNTc4IiwgXAotICAgICAgICAgICIwLjE3ODYyNiwgMC4yNzU4ODMsIDAuODMxOTEyLCAxLjMyMTExLCAxLjk3NTc0LCAzLjI3OTg3LCA0LjEwMDU5IiwgXAotICAgICAgICAgICIwLjE3ODU4NSwgMC4yNzU3MDIsIDAuODMwOTkxLCAxLjMyMjM4LCAxLjk3ODc3LCAzLjI3OTU3LCA0LjEwMjY2IiwgXAotICAgICAgICAgICIwLjE3ODY2OSwgMC4yNzU4MzIsIDAuODMxMzU0LCAxLjMyMTczLCAxLjk3MzQsIDMuMjkyMzgsIDQuMDk2OTkiLCBcCi0gICAgICAgICAgIjAuMTc4NzI1LCAwLjI3NTUwNiwgMC44MzA1MjYsIDEuMzIwNjUsIDEuOTc2MzUsIDMuMjkxNjIsIDQuMDk3ODYiLCBcCi0gICAgICAgICAgIjAuMTc5MDcxLCAwLjI3NTgxLCAwLjgyOTY0MSwgMS4zMjIxLCAxLjk3OTQzLCAzLjI4MDMzLCA0LjEwNDI1IiwgXAotICAgICAgICAgICIwLjE3OTY4MiwgMC4yNzY0ODQsIDAuODMxMDk3LCAxLjMyMTM2LCAxLjk4MDA1LCAzLjI3OTQ2LCA0LjEwMjc4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxNDAxLCAwLjAwMTQwNSwgMC4wMDE0MSwgMC4wMDE0MSwgMC4wMDE0MSwgMC4wMDE0MTEsIDAuMDAxNDEiLCBcCi0gICAgICAgICAgIjAuMDAxMzkxLCAwLjAwMTM5NCwgMC4wMDEzOTksIDAuMDAxNCwgMC4wMDE0LCAwLjAwMTM5OCwgMC4wMDE0IiwgXAotICAgICAgICAgICIwLjAwMTM4MiwgMC4wMDEzODUsIDAuMDAxMzkxLCAwLjAwMTM5MSwgMC4wMDEzOSwgMC4wMDEzOTEsIDAuMDAxMzkxIiwgXAotICAgICAgICAgICIwLjAwMTM3NSwgMC4wMDEzOCwgMC4wMDEzODQsIDAuMDAxMzg2LCAwLjAwMTM4NSwgMC4wMDEzODUsIDAuMDAxMzg2IiwgXAotICAgICAgICAgICIwLjAwMTM3MiwgMC4wMDEzNzYsIDAuMDAxMzgyLCAwLjAwMTM4MiwgMC4wMDEzODMsIDAuMDAxMzgzLCAwLjAwMTM4MyIsIFwKLSAgICAgICAgICAiMC4wMDEzNjcsIDAuMDAxMzcyLCAwLjAwMTM3OCwgMC4wMDEzNzksIDAuMDAxMzc5LCAwLjAwMTM3OSwgMC4wMDEzNzkiLCBcCi0gICAgICAgICAgIjAuMDAxMzY1LCAwLjAwMTM3LCAwLjAwMTM3NSwgMC4wMDEzNzcsIDAuMDAxMzc4LCAwLjAwMTM3OCwgMC4wMDEzNzgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDIzNTQsIDAuMDAyMzU4LCAwLjAwMjM2MiwgMC4wMDIzNjQsIDAuMDAyMzY0LCAwLjAwMjM2NCwgMC4wMDIzNjUiLCBcCi0gICAgICAgICAgIjAuMDAyMzQ1LCAwLjAwMjM0OSwgMC4wMDIzNTUsIDAuMDAyMzU2LCAwLjAwMjM1NiwgMC4wMDIzNTcsIDAuMDAyMzU3IiwgXAotICAgICAgICAgICIwLjAwMjMzOSwgMC4wMDIzNDQsIDAuMDAyMzUsIDAuMDAyMzUxLCAwLjAwMjM1MiwgMC4wMDIzNTMsIDAuMDAyMzUzIiwgXAotICAgICAgICAgICIwLjAwMjMzMywgMC4wMDIzMzksIDAuMDAyMzQ3LCAwLjAwMjM0OCwgMC4wMDIzNDksIDAuMDAyMzUsIDAuMDAyMzUiLCBcCi0gICAgICAgICAgIjAuMDAyMzI4LCAwLjAwMjMzNSwgMC4wMDIzNDQsIDAuMDAyMzQ2LCAwLjAwMjM0NywgMC4wMDIzNDgsIDAuMDAyMzQ4IiwgXAotICAgICAgICAgICIwLjAwMjMyNCwgMC4wMDIzMywgMC4wMDIzNDEsIDAuMDAyMzQ0LCAwLjAwMjM0NSwgMC4wMDIzNDYsIDAuMDAyMzQ3IiwgXAotICAgICAgICAgICIwLjAwMjMxOSwgMC4wMDIzMjYsIDAuMDAyMzM5LCAwLjAwMjM0MSwgMC4wMDIzNDMsIDAuMDAyMzQ1LCAwLjAwMjM0NSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTQwMiwgMC4wMDE0MDYsIDAuMDAxNDEzLCAwLjAwMTQxNCwgMC4wMDE0MTUsIDAuMDAxNDE2LCAwLjAwMTQxNiIsIFwKLSAgICAgICAgICAiMC4wMDEzOSwgMC4wMDEzOTUsIDAuMDAxNDAyLCAwLjAwMTQwNCwgMC4wMDE0MDQsIDAuMDAxNDA1LCAwLjAwMTQwNSIsIFwKLSAgICAgICAgICAiMC4wMDEzODIsIDAuMDAxMzg3LCAwLjAwMTM5MywgMC4wMDEzOTUsIDAuMDAxMzk2LCAwLjAwMTM5NSwgMC4wMDEzOTciLCBcCi0gICAgICAgICAgIjAuMDAxMzc3LCAwLjAwMTM4MiwgMC4wMDEzODksIDAuMDAxMzksIDAuMDAxMzksIDAuMDAxMzkxLCAwLjAwMTM5MSIsIFwKLSAgICAgICAgICAiMC4wMDEzNzIsIDAuMDAxMzc4LCAwLjAwMTM4NiwgMC4wMDEzODYsIDAuMDAxMzg3LCAwLjAwMTM4OCwgMC4wMDEzODgiLCBcCi0gICAgICAgICAgIjAuMDAxMzY4LCAwLjAwMTM3MywgMC4wMDEzODEsIDAuMDAxMzgzLCAwLjAwMTM4NSwgMC4wMDEzODQsIDAuMDAxMzg1IiwgXAotICAgICAgICAgICIwLjAwMTM2NSwgMC4wMDEzNywgMC4wMDEzNzksIDAuMDAxMzgxLCAwLjAwMTM4MiwgMC4wMDEzODIsIDAuMDAxMzgzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyMTQ5LCAwLjAwMjE1MywgMC4wMDIxNTksIDAuMDAyMTYsIDAuMDAyMTYxLCAwLjAwMjE2MSwgMC4wMDIxNjEiLCBcCi0gICAgICAgICAgIjAuMDAyMTQzLCAwLjAwMjE0NywgMC4wMDIxNTQsIDAuMDAyMTU1LCAwLjAwMjE1NiwgMC4wMDIxNTYsIDAuMDAyMTU2IiwgXAotICAgICAgICAgICIwLjAwMjEzNSwgMC4wMDIxNDEsIDAuMDAyMTQ4LCAwLjAwMjE1LCAwLjAwMjE1MSwgMC4wMDIxNTEsIDAuMDAyMTUxIiwgXAotICAgICAgICAgICIwLjAwMjEyNywgMC4wMDIxMzMsIDAuMDAyMTQzLCAwLjAwMjE0NSwgMC4wMDIxNDYsIDAuMDAyMTQ3LCAwLjAwMjE0NyIsIFwKLSAgICAgICAgICAiMC4wMDIxMiwgMC4wMDIxMjgsIDAuMDAyMTM5LCAwLjAwMjE0MiwgMC4wMDIxNDMsIDAuMDAyMTQ0LCAwLjAwMjE0NSIsIFwKLSAgICAgICAgICAiMC4wMDIxMTMsIDAuMDAyMTIxLCAwLjAwMjEzNSwgMC4wMDIxMzgsIDAuMDAyMTQsIDAuMDAyMTQxLCAwLjAwMjE0MSIsIFwKLSAgICAgICAgICAiMC4wMDIxMDcsIDAuMDAyMTE1LCAwLjAwMjEzMiwgMC4wMDIxMzUsIDAuMDAyMTM3LCAwLjAwMjEzOSwgMC4wMDIxMzkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDE0MDMsIDAuMDAxNDA4LCAwLjAwMTQxNiwgMC4wMDE0MTgsIDAuMDAxNDE5LCAwLjAwMTQyLCAwLjAwMTQyIiwgXAotICAgICAgICAgICIwLjAwMTM5LCAwLjAwMTM5NSwgMC4wMDE0MDIsIDAuMDAxNDA1LCAwLjAwMTQwNSwgMC4wMDE0MDcsIDAuMDAxNDA3IiwgXAotICAgICAgICAgICIwLjAwMTM3OCwgMC4wMDEzODQsIDAuMDAxMzkzLCAwLjAwMTM5NSwgMC4wMDEzOTYsIDAuMDAxMzk3LCAwLjAwMTM5NyIsIFwKLSAgICAgICAgICAiMC4wMDEzNzIsIDAuMDAxMzc4LCAwLjAwMTM4NywgMC4wMDEzODksIDAuMDAxMzksIDAuMDAxMzkxLCAwLjAwMTM5MSIsIFwKLSAgICAgICAgICAiMC4wMDEzNjgsIDAuMDAxMzc0LCAwLjAwMTM4NCwgMC4wMDEzODYsIDAuMDAxMzg3LCAwLjAwMTM4OCwgMC4wMDEzODgiLCBcCi0gICAgICAgICAgIjAuMDAxMzY0LCAwLjAwMTM3LCAwLjAwMTM4MSwgMC4wMDEzODMsIDAuMDAxMzg0LCAwLjAwMTM4NiwgMC4wMDEzODYiLCBcCi0gICAgICAgICAgIjAuMDAxMzYyLCAwLjAwMTM2OCwgMC4wMDEzNzksIDAuMDAxMzgyLCAwLjAwMTM4MywgMC4wMDEzODQsIDAuMDAxMzg1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxOTUsIDAuMDAxOTU0LCAwLjAwMTk1OSwgMC4wMDE5NiwgMC4wMDE5NjEsIDAuMDAxOTYxLCAwLjAwMTk2MSIsIFwKLSAgICAgICAgICAiMC4wMDE5NDYsIDAuMDAxOTUxLCAwLjAwMTk1NiwgMC4wMDE5NTcsIDAuMDAxOTU4LCAwLjAwMTk1OCwgMC4wMDE5NTkiLCBcCi0gICAgICAgICAgIjAuMDAxOTM3LCAwLjAwMTk0MiwgMC4wMDE5NDksIDAuMDAxOTUxLCAwLjAwMTk1MSwgMC4wMDE5NTIsIDAuMDAxOTUyIiwgXAotICAgICAgICAgICIwLjAwMTkyNywgMC4wMDE5MzQsIDAuMDAxOTQzLCAwLjAwMTk0NSwgMC4wMDE5NDYsIDAuMDAxOTQ3LCAwLjAwMTk0NyIsIFwKLSAgICAgICAgICAiMC4wMDE5MjEsIDAuMDAxOTI5LCAwLjAwMTkzOSwgMC4wMDE5NDIsIDAuMDAxOTQzLCAwLjAwMTk0NCwgMC4wMDE5NDQiLCBcCi0gICAgICAgICAgIjAuMDAxOTExLCAwLjAwMTkyLCAwLjAwMTkzMywgMC4wMDE5MzYsIDAuMDAxOTM4LCAwLjAwMTkzOSwgMC4wMDE5MzkiLCBcCi0gICAgICAgICAgIjAuMDAxOTA2LCAwLjAwMTkxNSwgMC4wMDE5MywgMC4wMDE5MzMsIDAuMDAxOTM1LCAwLjAwMTkzNiwgMC4wMDE5MzciKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IEFORDNYOCAqCi0gKiAtLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKEFORDNYOCkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjM5MTYwNzsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNzkyMjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE3OTIyOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTc4NjU4OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDYxMiwgMC4wMDA2MTIsIDAuMDAwNjEyLCAwLjAwMDYxMSwgMC4wMDA2MTEsIDAuMDAwNjExLCAwLjAwMDYxMSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDYxMywgMC4wMDA2MTMsIDAuMDAwNjE0LCAwLjAwMDYxNCwgMC4wMDA2MTQsIDAuMDAwNjE0LCAwLjAwMDYxNCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNjczNzU7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNjczNzU7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNjY5NzM7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNjEyLCAwLjAwMDYxMiwgMC4wMDA2MTIsIDAuMDAwNjExLCAwLjAwMDYxMSwgMC4wMDA2MTEsIDAuMDAwNjExIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNjE2LCAwLjAwMDYxNiwgMC4wMDA2MTYsIDAuMDAwNjE2LCAwLjAwMDYxNiwgMC4wMDA2MTcsIDAuMDAwNjE3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihDKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE1MTQzMjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE1MTM1OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTUxNDMyOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDMzOCwgMC4wMDAzMzgsIDAuMDAwMzM3LCAwLjAwMDMzOCwgMC4wMDAzMzcsIDAuMDAwMzM3LCAwLjAwMDMzNyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDY5NSwgMC4wMDA2OTYsIDAuMDAwNjk2LCAwLjAwMDY5NiwgMC4wMDA2OTYsIDAuMDAwNjk2LCAwLjAwMDY5NiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAxLjA0MjA4OwotICAgIGZ1bmN0aW9uIDogIigoQSBCKSBDKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xODM5OTQsIDAuMjcxMDE3LCAwLjMzODIyNiwgMC4zODQ0MjksIDAuNDU3NDQzLCAwLjUyMTEwNiwgMC42MTE4NzYiLCBcCi0gICAgICAgICAgIjAuMTk0OTQxLCAwLjI4MTk2NCwgMC4zNDkxOTIsIDAuMzk1Mzk1LCAwLjQ2ODQwNiwgMC41MzIwNzEsIDAuNjIyODQyIiwgXAotICAgICAgICAgICIwLjIwNzQzOSwgMC4yOTQ0MzksIDAuMzYxNDMzLCAwLjQwNzYyMiwgMC40ODA1ODYsIDAuNTQ0MjcxLCAwLjYzNTAyNiIsIFwKLSAgICAgICAgICAiMC4yMTk0NTMsIDAuMzA2MDAyLCAwLjM3MzU0NywgMC40MTk3MDQsIDAuNDkyNzA0LCAwLjU1NjM5MSwgMC42NDcxNTYiLCBcCi0gICAgICAgICAgIjAuMjMxMSwgMC4zMTgwMzEsIDAuMzg1NDYzLCAwLjQzMTU3MiwgMC41MDQ2MSwgMC41NjgyMzQsIDAuNjU5MDY3IiwgXAotICAgICAgICAgICIwLjI0OTg4NSwgMC4zMzY3NTMsIDAuNDA0Mjg3LCAwLjQ1MDQ3NCwgMC41MjM0OCwgMC41ODcxNzEsIDAuNjc3OTQxIiwgXAotICAgICAgICAgICIwLjI2NjI0MywgMC4zNTMyNjIsIDAuNDIwNjQ1LCAwLjQ2NjgxMSwgMC41Mzk4ODEsIDAuNjAzNTExLCAwLjY5NDMzMyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3MDA0NCwgMC4xOTE5MDIsIDAuMzEzNDI3LCAwLjQwMTc0LCAwLjU0NTU3OSwgMC42NzI5NzIsIDAuODU0MjQ1IiwgXAotICAgICAgICAgICIwLjA3MDAzMywgMC4xOTE4ODUsIDAuMzEzMzg0LCAwLjQwMTY4NCwgMC41NDU1NjIsIDAuNjcyOTQxLCAwLjg1NDI5IiwgXAotICAgICAgICAgICIwLjA3MDMyNywgMC4xOTIwNDcsIDAuMzEzNDE4LCAwLjQwMTg3LCAwLjU0NTgyNSwgMC42NzMwNTksIDAuODU0MTg0IiwgXAotICAgICAgICAgICIwLjA2OTk1MywgMC4xOTI0MTksIDAuMzEzMzc1LCAwLjQwMTc1OCwgMC41NDU1NDQsIDAuNjcyOSwgMC44NTQyMjUiLCBcCi0gICAgICAgICAgIjAuMDcwMzczLCAwLjE5MjA0NywgMC4zMTMwNiwgMC40MDE1NzQsIDAuNTQ1NzA4LCAwLjY3MTY1MiwgMC44NTQyNzQiLCBcCi0gICAgICAgICAgIjAuMDY5ODMyLCAwLjE5MTcwMSwgMC4zMTMwMTgsIDAuNDAxNTAyLCAwLjU0NTQzNywgMC42NzI2NzEsIDAuODU0MDc2IiwgXAotICAgICAgICAgICIwLjA2OTg3NSwgMC4xOTE0MiwgMC4zMTMwNDgsIDAuNDAxMzI3LCAwLjU0NTU3NSwgMC42NzI2NDEsIDAuODU0MjI1Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc5NDgxLCAwLjE1ODI4MSwgMC4yMzMwODcsIDAuMjg2Mzg3LCAwLjM3MTU1MiwgMC40NDYwMjEsIDAuNTUyMzc3IiwgXAotICAgICAgICAgICIwLjA5MDk1OCwgMC4xNjk3MTUsIDAuMjQ0NTI3LCAwLjI5Nzg0MywgMC4zODMwMDQsIDAuNDU3NDc1LCAwLjU2Mzg0NyIsIFwKLSAgICAgICAgICAiMC4xMDU3MzcsIDAuMTg0NTYxLCAwLjI1OTM4NywgMC4zMTI3LCAwLjM5Nzg2OSwgMC40NzIzNDIsIDAuNTc4NzAxIiwgXAotICAgICAgICAgICIwLjEyMDU1OCwgMC4xOTk0MDcsIDAuMjc0MjMyLCAwLjMyNzU3MSwgMC40MTI3MzUsIDAuNDg3MjE4LCAwLjU5MzYxOCIsIFwKLSAgICAgICAgICAiMC4xMzU0MSwgMC4yMTQzMSwgMC4yODkxNTIsIDAuMzQyNDM2LCAwLjQyNzYzOSwgMC41MDIxMzksIDAuNjA4NTIyIiwgXAotICAgICAgICAgICIwLjE1ODQ4MSwgMC4yMzc1LCAwLjMxMjM0NCwgMC4zNjU1OTIsIDAuNDUwNzc4LCAwLjUyNTI2LCAwLjYzMTYzOCIsIFwKLSAgICAgICAgICAiMC4xNzc0NDYsIDAuMjU2NTU3LCAwLjMzMTM3OCwgMC4zODQ3MDUsIDAuNDY5ODksIDAuNTQ0NDA1LCAwLjY1MDc3MyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0NDA4OSwgMC4xODY4MzYsIDAuMzMzNDY5LCAwLjQzOTM0NCwgMC42MDgzNCwgMC43NTY3MDEsIDAuOTY4OTUyIiwgXAotICAgICAgICAgICIwLjA0NDA5OSwgMC4xODY4MjYsIDAuMzMzNTM1LCAwLjQzOTM1OSwgMC42MDgzOTcsIDAuNzU2ODA4LCAwLjk2Nzc3OSIsIFwKLSAgICAgICAgICAiMC4wNDQxOTIsIDAuMTg2ODkyLCAwLjMzMzU1MiwgMC40MzkzNiwgMC42MDgzNTgsIDAuNzU2NzE5LCAwLjk2ODk2MiIsIFwKLSAgICAgICAgICAiMC4wNDQxMDUsIDAuMTg2NzYzLCAwLjMzMzkxNiwgMC40MzkzMzQsIDAuNjA3MzkyLCAwLjc1NjcwNSwgMC45Njg4MTQiLCBcCi0gICAgICAgICAgIjAuMDQ0MjU3LCAwLjE4Njc0NiwgMC4zMzMwNCwgMC40Mzg3NDksIDAuNjA4NDkxLCAwLjc1NjY2MSwgMC45Njg1OTEiLCBcCi0gICAgICAgICAgIjAuMDQ1MDM3LCAwLjE4Njk5NywgMC4zMzM2NTksIDAuNDM4NjgsIDAuNjA4MzMxLCAwLjc1NjcwNCwgMC45Njc5NTMiLCBcCi0gICAgICAgICAgIjAuMDQ2NiwgMC4xODcxNCwgMC4zMzM1NDMsIDAuNDM4NjMxLCAwLjYwODc0OCwgMC43NTY2MzQsIDAuOTY4OTM4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTc5NzEzLCAwLjI2NjU3MywgMC4zMzM3NDQsIDAuMzc5OTY2LCAwLjQ1Mjk4NywgMC41MTY2NDcsIDAuNjA3NDE4IiwgXAotICAgICAgICAgICIwLjE4OTYzOCwgMC4yNzY0NSwgMC4zNDM5MDIsIDAuMzkwMTE2LCAwLjQ2MzEzNSwgMC41MjY3OTgsIDAuNjE3NTY2IiwgXAotICAgICAgICAgICIwLjIwMjA4NSwgMC4yODg4ODEsIDAuMzU2MzQyLCAwLjQwMjU0NCwgMC40NzU1NSwgMC41MzkyMTksIDAuNjI5OTg5IiwgXAotICAgICAgICAgICIwLjIxNDY5NiwgMC4zMDE0OSwgMC4zNjg0NzcsIDAuNDE0NzA0LCAwLjQ4NzcwMSwgMC41NTEzNjIsIDAuNjQyMTY3IiwgXAotICAgICAgICAgICIwLjIyNzMzNCwgMC4zMTM5MzksIDAuMzgxNDYsIDAuNDI3NjI4LCAwLjUwMDYzLCAwLjU2NDMyMSwgMC42NTUwODkiLCBcCi0gICAgICAgICAgIjAuMjQ3NTA3LCAwLjMzNDI0MSwgMC40MDE3OCwgMC40NDc5ODYsIDAuNTIxMDE2LCAwLjU4NDY4MSwgMC42NzU0ODMiLCBcCi0gICAgICAgICAgIjAuMjY1NTc1LCAwLjM1MjUxOCwgMC40MTk5MDUsIDAuNDY2MTYyLCAwLjUzOTIwOCwgMC42MDI4NDQsIDAuNjkzNjQxIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY5NjQ2LCAwLjE5MTkyMywgMC4zMTMzODksIDAuNDAxNzYyLCAwLjU0NTYwMywgMC42NzI5ODEsIDAuODUyNDk1IiwgXAotICAgICAgICAgICIwLjA3MDAxNSwgMC4xOTIwODIsIDAuMzEzMjgzLCAwLjQwMTY5MywgMC41NDU0OTcsIDAuNjcyOTE0LCAwLjg1NDIyIiwgXAotICAgICAgICAgICIwLjA2OTk5LCAwLjE5MjEwOSwgMC4zMTMzNTEsIDAuNDAxNjU5LCAwLjU0NTU2MywgMC42NzI5MiwgMC44NTQyOTciLCBcCi0gICAgICAgICAgIjAuMDY5ODY4LCAwLjE5MTkyOCwgMC4zMTM0MjksIDAuNDAxODA3LCAwLjU0NTY4MiwgMC42NzE3MjYsIDAuODU1Mzk1IiwgXAotICAgICAgICAgICIwLjA2OTg0MSwgMC4xOTIxNjEsIDAuMzEzMjIyLCAwLjQwMTY0OSwgMC41NDU1NDIsIDAuNjcyODQsIDAuODU0MjE1IiwgXAotICAgICAgICAgICIwLjA2OTcwOCwgMC4xOTE3MzMsIDAuMzEyOTU5LCAwLjQwMTQ5OCwgMC41NDQ5NTksIDAuNjcxNzEsIDAuODU0MjAyIiwgXAotICAgICAgICAgICIwLjA3MDAxMiwgMC4xOTE2MSwgMC4zMTI4MywgMC40MDE1MzUsIDAuNTQ1NTQyLCAwLjY3MTIzLCAwLjg1Mzk1NiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3NzQ0NiwgMC4xNTU5NCwgMC4yMzA2NCwgMC4yODM4OTgsIDAuMzY5MDA1LCAwLjQ0MzQzOSwgMC41NDk3ODUiLCBcCi0gICAgICAgICAgIjAuMDg5MDYsIDAuMTY3NjA0LCAwLjI0MjMwNiwgMC4yOTU1NjEsIDAuMzgwNjY3LCAwLjQ1NTEwNSwgMC41NjE0MzQiLCBcCi0gICAgICAgICAgIjAuMTAzODcxLCAwLjE4MjQ1NCwgMC4yNTcxNzEsIDAuMzEwNDM0LCAwLjM5NTU0NywgMC40Njk5ODMsIDAuNTc2MzMzIiwgXAotICAgICAgICAgICIwLjExODcwMywgMC4xOTcyNywgMC4yNzIwMTMsIDAuMzI1MjgxLCAwLjQxMDQsIDAuNDg0ODQsIDAuNTkxMTg5IiwgXAotICAgICAgICAgICIwLjEzMzM2NSwgMC4yMTE5OTYsIDAuMjg2NzQzLCAwLjM0MDAyMSwgMC40MjUxNDYsIDAuNDk5NTkxLCAwLjYwNTk0MiIsIFwKLSAgICAgICAgICAiMC4xNTYxNCwgMC4yMzQ4NywgMC4zMDk2MSwgMC4zNjI4OTYsIDAuNDQ4MDMyLCAwLjUyMjQ4LCAwLjYyODgzNCIsIFwKLSAgICAgICAgICAiMC4xNzQ3NywgMC4yNTM3NDIsIDAuMzI4NDgsIDAuMzgxNzYyLCAwLjQ2Njg5MiwgMC41NDEzODEsIDAuNjQ3NzI4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQzNzM2LCAwLjE4NjQyMiwgMC4zMzMxNTgsIDAuNDM5MjQ0LCAwLjYwODQ0NSwgMC43NTcwNDQsIDAuOTY3NjIyIiwgXAotICAgICAgICAgICIwLjA0MzczOSwgMC4xODY0MTYsIDAuMzMzMTkyLCAwLjQzOTIwMiwgMC42MDgzNjMsIDAuNzU2ODI3LCAwLjk2NzgxNiIsIFwKLSAgICAgICAgICAiMC4wNDM3ODYsIDAuMTg2NDcyLCAwLjMzMjYxOCwgMC40MzkyMjEsIDAuNjA4NDcyLCAwLjc1NzAzMSwgMC45Njc2NjgiLCBcCi0gICAgICAgICAgIjAuMDQzODAzLCAwLjE4NjMwOCwgMC4zMzMxOTMsIDAuNDM5MjE0LCAwLjYwODQxNywgMC43NTY5ODIsIDAuOTY3NDg2IiwgXAotICAgICAgICAgICIwLjA0NDA3NywgMC4xODYzNDEsIDAuMzMyODkzLCAwLjQzOTIzLCAwLjYwODQxMywgMC43NTY5NzQsIDAuOTY3NDQzIiwgXAotICAgICAgICAgICIwLjA0NDk3OSwgMC4xODY2MzksIDAuMzMzMTIxLCAwLjQzOTI4OCwgMC42MDg0MzgsIDAuNzU3MDIyLCAwLjk2NzQ3MyIsIFwKLSAgICAgICAgICAiMC4wNDY2NzgsIDAuMTg3MDU4LCAwLjMzMzEzMywgMC40MzgxODcsIDAuNjA4Njc5LCAwLjc1NjYzNSwgMC45NjgxNDUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNzAyODksIDAuMjU3NDIsIDAuMzI0NTg1LCAwLjM3MDgzNywgMC40NDM4NDYsIDAuNTA3NTA3LCAwLjU5ODMxNCIsIFwKLSAgICAgICAgICAiMC4xNzkxOTEsIDAuMjY1ODM5LCAwLjMzMzM1NSwgMC4zNzk0NSwgMC40NTI1MTUsIDAuNTE2MTUxLCAwLjYwNjk2NyIsIFwKLSAgICAgICAgICAiMC4xOTA4NTEsIDAuMjc3NTIyLCAwLjM0NDk5MSwgMC4zOTEyMDcsIDAuNDY0MjMzLCAwLjUyNzg5NiwgMC42MTg2NjkiLCBcCi0gICAgICAgICAgIjAuMjAyODMzLCAwLjI4OTc4NSwgMC4zNTcxMjYsIDAuNDAzNCwgMC40NzY0MTUsIDAuNTQwMDYyLCAwLjYzMDkiLCBcCi0gICAgICAgICAgIjAuMjE1NTc3LCAwLjMwMjYzLCAwLjM3MDA3LCAwLjQxNjMwOSwgMC40ODkzMSwgMC41NTI5NzgsIDAuNjQzODEyIiwgXAotICAgICAgICAgICIwLjIzNTgwMywgMC4zMjI3ODMsIDAuMzkwMjA5LCAwLjQzNjM2NSwgMC41MDk0MzUsIDAuNTczMDY1LCAwLjY2MzkwMSIsIFwKLSAgICAgICAgICAiMC4yNTM2NSwgMC4zNDA2NzUsIDAuNDA4MDQyLCAwLjQ1NDE3OSwgMC41MjcyNDcsIDAuNTkwODgzLCAwLjY4MTcxNSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3MDEwNiwgMC4xOTIxNTIsIDAuMzEzMjY3LCAwLjQwMTY4MSwgMC41NDU1OTEsIDAuNjcxNzg0LCAwLjg1NTQxMyIsIFwKLSAgICAgICAgICAiMC4wNzAzNjEsIDAuMTkyMjk0LCAwLjMxMzI2NiwgMC40MDE3MywgMC41NDU4MDEsIDAuNjcyNzU3LCAwLjg1MjI5OCIsIFwKLSAgICAgICAgICAiMC4wNjk5OTYsIDAuMTkyMjY3LCAwLjMxMzI3MywgMC40MDE2OCwgMC41NDU1MTQsIDAuNjcyODg1LCAwLjg1NDE5OCIsIFwKLSAgICAgICAgICAiMC4wNzAyNTgsIDAuMTkyMDA5LCAwLjMxMzExNiwgMC40MDE0OTcsIDAuNTQ0NjQ1LCAwLjY3MTY0NiwgMC44NTQyODEiLCBcCi0gICAgICAgICAgIjAuMDcwMjM4LCAwLjE5MTgxOCwgMC4zMTMxMTcsIDAuNDAxNDI5LCAwLjU0NTUxNSwgMC42NzE2NjgsIDAuODU0MjczIiwgXAotICAgICAgICAgICIwLjA2OTg1OSwgMC4xOTE2ODYsIDAuMzEzMDc0LCAwLjQwMTQxMSwgMC41NDU1NDYsIDAuNjcxNTUzLCAwLjg1NDIwNCIsIFwKLSAgICAgICAgICAiMC4wNzAwMTMsIDAuMTkxNDk2LCAwLjMxMzAxNiwgMC40MDE1MDcsIDAuNTQ1NTA4LCAwLjY3MTU2OCwgMC44NTQyMTIiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzQ4NTcsIDAuMTUzMTQ1LCAwLjIyNzczOCwgMC4yODA5MzUsIDAuMzY2MDI2LCAwLjQ0MDUwOSwgMC41NDY5NTQiLCBcCi0gICAgICAgICAgIjAuMDg2NDk5LCAwLjE2NDkzNSwgMC4yMzk1NTUsIDAuMjkyNzgzLCAwLjM3NzgzOCwgMC40NTIyOTksIDAuNTU4NjQ3IiwgXAotICAgICAgICAgICIwLjEwMTM0MywgMC4xNzk3MDYsIDAuMjU0MzM2LCAwLjMwNzUzMSwgMC4zOTI2MjEsIDAuNDY3MTU0LCAwLjU3MzU1OSIsIFwKLSAgICAgICAgICAiMC4xMTYwMjQsIDAuMTk0NDcsIDAuMjY5MTE3LCAwLjMyMjMzNSwgMC40MDc0MTYsIDAuNDgyMDI3LCAwLjU4ODIzNCIsIFwKLSAgICAgICAgICAiMC4xMzA3MDgsIDAuMjA4ODc0LCAwLjI4MzUzMSwgMC4zMzY3NDQsIDAuNDIxODYyLCAwLjQ5NjM3NywgMC42MDI3MDEiLCBcCi0gICAgICAgICAgIjAuMTUzMjI2LCAwLjIzMTgzNiwgMC4zMDY0OSwgMC4zNTk3NDEsIDAuNDQ0ODMsIDAuNTE5MzQ2LCAwLjYyNTY2MyIsIFwKLSAgICAgICAgICAiMC4xNzE1MDQsIDAuMjUwMDY3LCAwLjMyNDcxNCwgMC4zNzc5MzQsIDAuNDYzMDQ3LCAwLjUzNzUyNiwgMC42NDM5NDQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDM0OTQsIDAuMTg2MDQ1LCAwLjMzMjYyMywgMC40MzgwMDgsIDAuNjA4NjgyLCAwLjc1NjM0NywgMC45Njc3NTYiLCBcCi0gICAgICAgICAgIjAuMDQzNTQyLCAwLjE4NjExNiwgMC4zMzMzNDksIDAuNDM5MTYxLCAwLjYwODY3MywgMC43NTcyNjYsIDAuOTY5MTYzIiwgXAotICAgICAgICAgICIwLjA0MzUzMywgMC4xODYxNTcsIDAuMzMyMTM0LCAwLjQzODUzMiwgMC42MDg2OCwgMC43NTU1NjQsIDAuOTY3NzYxIiwgXAotICAgICAgICAgICIwLjA0MzUzMSwgMC4xODYxNDQsIDAuMzMyMTQxLCAwLjQzOTE2MiwgMC42MDg2NzksIDAuNzU0ODkzLCAwLjk2OTYzMyIsIFwKLSAgICAgICAgICAiMC4wNDM4MTYsIDAuMTg2MTM1LCAwLjMzMzQ3MywgMC40MzkwMzUsIDAuNjA4NjkzLCAwLjc1NjIxNCwgMC45NjYyODgiLCBcCi0gICAgICAgICAgIjAuMDQ0OTY0LCAwLjE4NjQ0OCwgMC4zMzI1NTUsIDAuNDM5MjQzLCAwLjYwODcwOSwgMC43NTY0MjQsIDAuOTY2OTMzIiwgXAotICAgICAgICAgICIwLjA0Njg3MiwgMC4xODY4MzQsIDAuMzMzNTU0LCAwLjQzOTEzMywgMC42MDg3MzIsIDAuNzU2NDQzLCAwLjk2NTgwMiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA3NDA4LCAwLjAwNzY1NiwgMC4wMDc3MjEsIDAuMDA3NzQ0LCAwLjAwNzc2NSwgMC4wMDc3NzYsIDAuMDA3Nzg4IiwgXAotICAgICAgICAgICIwLjAwNzM3LCAwLjAwNzYyLCAwLjAwNzY5LCAwLjAwNzcxMywgMC4wMDc3MjUsIDAuMDA3NzQsIDAuMDA3NzUiLCBcCi0gICAgICAgICAgIjAuMDA3MzUyLCAwLjAwNzU4NiwgMC4wMDc2NTUsIDAuMDA3Njc2LCAwLjAwNzcwMiwgMC4wMDc3MTQsIDAuMDA3NzI0IiwgXAotICAgICAgICAgICIwLjAwNzMxNiwgMC4wMDc1NTQsIDAuMDA3NjI3LCAwLjAwNzY1NSwgMC4wMDc2NzUsIDAuMDA3Njg3LCAwLjAwNzY5OCIsIFwKLSAgICAgICAgICAiMC4wMDczLCAwLjAwNzU0MiwgMC4wMDc2MTQsIDAuMDA3NjQxLCAwLjAwNzY2NSwgMC4wMDc2NzQsIDAuMDA3Njg1IiwgXAotICAgICAgICAgICIwLjAwNzI3OSwgMC4wMDc1MjEsIDAuMDA3NTk0LCAwLjAwNzYyLCAwLjAwNzY0NCwgMC4wMDc2NTIsIDAuMDA3NjcxIiwgXAotICAgICAgICAgICIwLjAwNzI3MSwgMC4wMDc1MDcsIDAuMDA3NTg1LCAwLjAwNzYxLCAwLjAwNzYzMiwgMC4wMDc2NDUsIDAuMDA3NjU4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTA0NTEsIDAuMDEwNzU0LCAwLjAxMDgwNCwgMC4wMTA4MiwgMC4wMTA4MzUsIDAuMDEwODQyLCAwLjAxMDg0OSIsIFwKLSAgICAgICAgICAiMC4wMTA0MTYsIDAuMDEwNzE5LCAwLjAxMDc3MiwgMC4wMTA3ODksIDAuMDEwODA1LCAwLjAxMDgxMywgMC4wMTA4MiIsIFwKLSAgICAgICAgICAiMC4wMTAzNzYsIDAuMDEwNjgzLCAwLjAxMDc0NCwgMC4wMTA3NjQsIDAuMDEwNzgyLCAwLjAxMDc5MiwgMC4wMTA4MDEiLCBcCi0gICAgICAgICAgIjAuMDEwMzQ4LCAwLjAxMDY1LCAwLjAxMDcxOCwgMC4wMTA3NDIsIDAuMDEwNzY0LCAwLjAxMDc3NSwgMC4wMTA3ODUiLCBcCi0gICAgICAgICAgIjAuMDEwMzEsIDAuMDEwNjE2LCAwLjAxMDY5MywgMC4wMTA3MjEsIDAuMDEwNzQ2LCAwLjAxMDc1OSwgMC4wMTA3NzEiLCBcCi0gICAgICAgICAgIjAuMDEwMjY2LCAwLjAxMDU3NSwgMC4wMTA2NjIsIDAuMDEwNjk0LCAwLjAxMDcyNCwgMC4wMTA3NCwgMC4wMTA3NTYiLCBcCi0gICAgICAgICAgIjAuMDEwMjQyLCAwLjAxMDUzNywgMC4wMTA2MzYsIDAuMDEwNjcxLCAwLjAxMDcwNCwgMC4wMTA3MjMsIDAuMDEwNzQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNzQwOSwgMC4wMDc2NTcsIDAuMDA3NzIxLCAwLjAwNzc1MSwgMC4wMDc3NywgMC4wMDc3ODIsIDAuMDA3NzkiLCBcCi0gICAgICAgICAgIjAuMDA3MzcxLCAwLjAwNzYxOCwgMC4wMDc2ODUsIDAuMDA3NzEyLCAwLjAwNzczNCwgMC4wMDc3NDcsIDAuMDA3NzU2IiwgXAotICAgICAgICAgICIwLjAwNzMzNywgMC4wMDc1ODIsIDAuMDA3NjU1LCAwLjAwNzY3OSwgMC4wMDc3MDYsIDAuMDA3NzE3LCAwLjAwNzcyNSIsIFwKLSAgICAgICAgICAiMC4wMDczMTcsIDAuMDA3NTYsIDAuMDA3NjI4LCAwLjAwNzY1NiwgMC4wMDc2NzgsIDAuMDA3NjkxLCAwLjAwNzcwMyIsIFwKLSAgICAgICAgICAiMC4wMDczLCAwLjAwNzUzNiwgMC4wMDc2MTEsIDAuMDA3NjQsIDAuMDA3NjYzLCAwLjAwNzY3NiwgMC4wMDc2ODgiLCBcCi0gICAgICAgICAgIjAuMDA3Mjc5LCAwLjAwNzUxMywgMC4wMDc1ODksIDAuMDA3NjE5LCAwLjAwNzY0NSwgMC4wMDc2NTgsIDAuMDA3NjciLCBcCi0gICAgICAgICAgIjAuMDA3MjgxLCAwLjAwNzUsIDAuMDA3NTc1LCAwLjAwNzYwNCwgMC4wMDc2MzEsIDAuMDA3NjQ1LCAwLjAwNzY1NyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA5ODY4LCAwLjAxMDE3OSwgMC4wMTAyMywgMC4wMTAyNDYsIDAuMDEwMjYsIDAuMDEwMjY4LCAwLjAxMDI3NCIsIFwKLSAgICAgICAgICAiMC4wMDk4NDEsIDAuMDEwMTU2LCAwLjAxMDIxLCAwLjAxMDIyNiwgMC4wMTAyNDEsIDAuMDEwMjQ5LCAwLjAxMDI1NiIsIFwKLSAgICAgICAgICAiMC4wMDk3OTQsIDAuMDEwMTEzLCAwLjAxMDE3NiwgMC4wMTAxOTYsIDAuMDEwMjE0LCAwLjAxMDIyNCwgMC4wMTAyMzIiLCBcCi0gICAgICAgICAgIjAuMDA5NzUxLCAwLjAxMDA3MiwgMC4wMTAxNDQsIDAuMDEwMTY5LCAwLjAxMDE5MSwgMC4wMTAyMDMsIDAuMDEwMjEzIiwgXAotICAgICAgICAgICIwLjAwOTcxMSwgMC4wMTAwMzIsIDAuMDEwMTE0LCAwLjAxMDE0MiwgMC4wMTAxNjksIDAuMDEwMTgzLCAwLjAxMDE5NiIsIFwKLSAgICAgICAgICAiMC4wMDk2NjQsIDAuMDA5OTg1LCAwLjAxMDA3NywgMC4wMTAxMSwgMC4wMTAxNDIsIDAuMDEwMTU5LCAwLjAxMDE3NSIsIFwKLSAgICAgICAgICAiMC4wMDk2MzksIDAuMDA5OTUsIDAuMDEwMDQ3LCAwLjAxMDA4NCwgMC4wMTAxMTksIDAuMDEwMTM5LCAwLjAxMDE1NyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA3NDIxLCAwLjAwNzY1NSwgMC4wMDc3MjQsIDAuMDA3NzQ4LCAwLjAwNzc3LCAwLjAwNzc4NCwgMC4wMDc3OTYiLCBcCi0gICAgICAgICAgIjAuMDA3MzYzLCAwLjAwNzYwNSwgMC4wMDc2NzcsIDAuMDA3Njk1LCAwLjAwNzcxNiwgMC4wMDc3MzksIDAuMDA3NzUiLCBcCi0gICAgICAgICAgIjAuMDA3MzIsIDAuMDA3NTYxLCAwLjAwNzYzMiwgMC4wMDc2NjUsIDAuMDA3NjksIDAuMDA3NzAxLCAwLjAwNzcxNCIsIFwKLSAgICAgICAgICAiMC4wMDcyOTUsIDAuMDA3NTM1LCAwLjAwNzYwOSwgMC4wMDc2MzYsIDAuMDA3NjYyLCAwLjAwNzY3NiwgMC4wMDc2OTIiLCBcCi0gICAgICAgICAgIjAuMDA3Mjc5LCAwLjAwNzUxNiwgMC4wMDc1OTMsIDAuMDA3NjE5LCAwLjAwNzY0NSwgMC4wMDc2NiwgMC4wMDc2NzUiLCBcCi0gICAgICAgICAgIjAuMDA3MjcsIDAuMDA3NDkzLCAwLjAwNzU3MSwgMC4wMDc2MDEsIDAuMDA3NjI0LCAwLjAwNzY0MywgMC4wMDc2NTgiLCBcCi0gICAgICAgICAgIjAuMDA3Mjc4LCAwLjAwNzQ3NywgMC4wMDc1NTMsIDAuMDA3NTg0LCAwLjAwNzYxNCwgMC4wMDc2MzEsIDAuMDA3NjQ3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDkyNDQsIDAuMDA5NTQ2LCAwLjAwOTU5MywgMC4wMDk2MDgsIDAuMDA5NjIxLCAwLjAwOTYyOCwgMC4wMDk2MzQiLCBcCi0gICAgICAgICAgIjAuMDA5MjE5LCAwLjAwOTUzNCwgMC4wMDk1ODQsIDAuMDA5NTk5LCAwLjAwOTYxMywgMC4wMDk2MiwgMC4wMDk2MjYiLCBcCi0gICAgICAgICAgIjAuMDA5MTY4LCAwLjAwOTQ4OCwgMC4wMDk1NDgsIDAuMDA5NTY3LCAwLjAwOTU4NCwgMC4wMDk1OTMsIDAuMDA5NiIsIFwKLSAgICAgICAgICAiMC4wMDkxMTUsIDAuMDA5NDM5LCAwLjAwOTUxLCAwLjAwOTUzNCwgMC4wMDk1NTUsIDAuMDA5NTY2LCAwLjAwOTU3NiIsIFwKLSAgICAgICAgICAiMC4wMDkwNzMsIDAuMDA5MzksIDAuMDA5NDczLCAwLjAwOTUwMiwgMC4wMDk1MjgsIDAuMDA5NTQyLCAwLjAwOTU1NCIsIFwKLSAgICAgICAgICAiMC4wMDkwMzgsIDAuMDA5MzQ2LCAwLjAwOTQzNCwgMC4wMDk0NjYsIDAuMDA5NDk3LCAwLjAwOTUxMywgMC4wMDk1MjgiLCBcCi0gICAgICAgICAgIjAuMDA5MDA0LCAwLjAwOTMwNywgMC4wMDkzOTYsIDAuMDA5NDMyLCAwLjAwOTQ2NywgMC4wMDk0ODYsIDAuMDA5NTA0Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBBTkQzWEwgKgotICogLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChBTkQzWEwpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4wNjU1Mzg3OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA1OTQ5NzU7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNTk0OTc1OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDU5MzMxNDsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxNjUsIDAuMDAwMTY1LCAwLjAwMDE2NSwgMC4wMDAxNjUsIDAuMDAwMTY1LCAwLjAwMDE2NSwgMC4wMDAxNjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiwgMC4wMDAxNjYiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYxNTEyOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYxNTEyOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDYxMzg4NDsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxNjUsIDAuMDAwMTY1LCAwLjAwMDE2NSwgMC4wMDAxNjUsIDAuMDAwMTY1LCAwLjAwMDE2NSwgMC4wMDAxNjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiwgMC4wMDAxNjYiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEMpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYyMjQ1NjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MjIwMjQ7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjIyNDU2OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDA3OCwgMC4wMDAwNzgsIDAuMDAwMDc4LCAwLjAwMDA3OCwgMC4wMDAwNzgsIDAuMDAwMDc4LCAwLjAwMDA3OCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDE4OCwgMC4wMDAxODgsIDAuMDAwMTg4LCAwLjAwMDE4OCwgMC4wMDAxODgsIDAuMDAwMTg4LCAwLjAwMDE4OCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjA3MzM3NzI7Ci0gICAgZnVuY3Rpb24gOiAiKChBIEIpIEMpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yODU3NCwgMC4zMTExNjYsIDAuNTM4NTI1LCAwLjkxNzIzNCwgMS4yOTYzMywgMi4xNzk3OCwgMi42ODQ4OCIsIFwKLSAgICAgICAgICAiMC4yOTY4MywgMC4zMjIyMDIsIDAuNTQ5NiwgMC45MjgzMzEsIDEuMzA3MzgsIDIuMTkxNjMsIDIuNjk2MDQiLCBcCi0gICAgICAgICAgIjAuMzA5OTkzLCAwLjMzNTQxMiwgMC41NjI3OTEsIDAuOTQxNzIyLCAxLjMyMDMxLCAyLjIwNDIsIDIuNzA5MzgiLCBcCi0gICAgICAgICAgIjAuMzIyNjYyLCAwLjM0ODA0MiwgMC41NzU0OTMsIDAuOTU0MTcxLCAxLjMzMjk2LCAyLjIxNzM3LCAyLjcyMjIiLCBcCi0gICAgICAgICAgIjAuMzM1MTgsIDAuMzYwNjIsIDAuNTg4MDI4LCAwLjk2NjcxMSwgMS4zNDU5NywgMi4yMjkyNiwgMi43MzQ0NyIsIFwKLSAgICAgICAgICAiMC4zNTQ2ODMsIDAuMzgwMTI5LCAwLjYwNzUxOCwgMC45ODYyODEsIDEuMzY1MywgMi4yNDg4MywgMi43NTM5MyIsIFwKLSAgICAgICAgICAiMC4zNzEzMjYsIDAuMzk2NzE2LCAwLjYyNDE2NCwgMS4wMDI5MiwgMS4zODIzNSwgMi4yNjU2MSwgMi43NzA5MyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yODE5MDMsIDAuMzMwODY1LCAwLjc4NTY3MSwgMS41NTUwNywgMi4zMjE2MiwgNC4xMTAyLCA1LjEzMzgzIiwgXAotICAgICAgICAgICIwLjI4MTk1LCAwLjMzMTIxLCAwLjc4NTU5MywgMS41NTQ3LCAyLjMxOTUzLCA0LjExMDkzLCA1LjEzNjUyIiwgXAotICAgICAgICAgICIwLjI4MTc5MywgMC4zMzEzOCwgMC43ODU3NjIsIDEuNTUwNTgsIDIuMzI0MjksIDQuMTEwMDMsIDUuMTMyNDQiLCBcCi0gICAgICAgICAgIjAuMjgxNzg1LCAwLjMzMTIwNCwgMC43ODcxMDcsIDEuNTU0NjQsIDIuMzI1MDksIDQuMTEwOTUsIDUuMTM1MzQiLCBcCi0gICAgICAgICAgIjAuMjgxNjUxLCAwLjMzMDk4MSwgMC43ODcwOTUsIDEuNTU0NjMsIDIuMzE5MTIsIDQuMTEwMTMsIDUuMTM2NjEiLCBcCi0gICAgICAgICAgIjAuMjgxNTIzLCAwLjMzMDkwNSwgMC43ODU2NzYsIDEuNTU0MjYsIDIuMzIxMSwgNC4xMTAxLCA1LjE0MDQ3IiwgXAotICAgICAgICAgICIwLjI4MTQ2NSwgMC4zMzA4OTIsIDAuNzg1MjEyLCAxLjU1Mzg0LCAyLjMxODk5LCA0LjEwOTU1LCA1LjEzODA5Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIwODM3MywgMC4yMzgxNDIsIDAuNTA1NzI5LCAwLjk1MTM2MiwgMS4zOTY4OCwgMi40MzYzLCAzLjAzMDE2IiwgXAotICAgICAgICAgICIwLjIyMDAxNywgMC4yNDk3ODcsIDAuNTE3Mzc2LCAwLjk2MzA4MiwgMS40MDg1MywgMi40NDgxLCAzLjA0MjE3IiwgXAotICAgICAgICAgICIwLjIzNDY5MSwgMC4yNjQ0NjMsIDAuNTMyMDY2LCAwLjk3NzcxNiwgMS40MjMyMiwgMi40NjI2NCwgMy4wNTY1NiIsIFwKLSAgICAgICAgICAiMC4yNDk1OCwgMC4yNzkzNTMsIDAuNTQ2OTc2LCAwLjk5MjY1NywgMS40MzgxOSwgMi40Nzc4MiwgMy4wNzE1MiIsIFwKLSAgICAgICAgICAiMC4yNjM5NzMsIDAuMjkzNzYxLCAwLjU2MTM5MywgMS4wMDcwMiwgMS40NTI1OCwgMi40OTIsIDMuMDg1ODkiLCBcCi0gICAgICAgICAgIjAuMjg1NywgMC4zMTU0OTksIDAuNTgzMTY2LCAxLjAyODgsIDEuNDc0MywgMi41MTM3MSwgMy4xMDc3NSIsIFwKLSAgICAgICAgICAiMC4zMDMxMjEsIDAuMzMyOTIyLCAwLjYwMDU3NiwgMS4wNDYzOCwgMS40OTE5MSwgMi41MzEzNCwgMy4xMjUyMyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMTEzNzcsIDAuMzY5OTc3LCAwLjg5OTQ2MSwgMS43ODEzLCAyLjY2NjA1LCA0LjcyMTM3LCA1Ljg5MjAyIiwgXAotICAgICAgICAgICIwLjMxMTM5MywgMC4zNjk5ODksIDAuODk5NTQ3LCAxLjc4MTc2LCAyLjY2NjE1LCA0LjcyMTA1LCA1Ljg5MjM5IiwgXAotICAgICAgICAgICIwLjMxMTM4LCAwLjM2OTk5NCwgMC44OTk0OTIsIDEuNzgyODEsIDIuNjY2MDUsIDQuNzIxMjQsIDUuODkxNjEiLCBcCi0gICAgICAgICAgIjAuMzExMzQ0LCAwLjM2OTk3MywgMC44OTg2MTYsIDEuNzgwMjksIDIuNjY1MzksIDQuNzIwNzQsIDUuODkxNzUiLCBcCi0gICAgICAgICAgIjAuMzExNTEzLCAwLjM3MDAyMiwgMC44OTg5NSwgMS43ODI3MSwgMi42NjU1NywgNC43MjA5NCwgNS44OTE3IiwgXAotICAgICAgICAgICIwLjMxMTQ1NSwgMC4zNzAxMTMsIDAuODk5NjE1LCAxLjc4MjM0LCAyLjY2NjIxLCA0LjcyMTA5LCA1Ljg5MDQ1IiwgXAotICAgICAgICAgICIwLjMxMTI2OCwgMC4zNzAwNiwgMC44OTg2NzcsIDEuNzgwODksIDIuNjY1OTEsIDQuNzIwOTgsIDUuODkxNjgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjc5ODM3LCAwLjMwNTIxMSwgMC41MzI2MzUsIDAuOTExMzcsIDEuMjkwNTMsIDIuMTc0NjYsIDIuNjc5MjMiLCBcCi0gICAgICAgICAgIjAuMjkwMDEzLCAwLjMxNTM5NCwgMC41NDI4MDksIDAuOTIxNTQ0LCAxLjMwMDUzLCAyLjE4NDczLCAyLjY4OTU5IiwgXAotICAgICAgICAgICIwLjMwMjg2OCwgMC4zMjgzMDEsIDAuNTU1NjkzLCAwLjkzNDY1OSwgMS4zMTMyMywgMi4xOTcxLCAyLjcwMjIyIiwgXAotICAgICAgICAgICIwLjMxNTc5MywgMC4zNDEyMzEsIDAuNTY4NjEyLCAwLjk0NzM0OCwgMS4zMjYyOSwgMi4yMTAxNiwgMi43MTQ5OCIsIFwKLSAgICAgICAgICAiMC4zMjg3NywgMC4zNTQyMjUsIDAuNTgxNjQ2LCAwLjk2MDM5MywgMS4zMzkyMiwgMi4yMjMxNiwgMi43Mjc5NCIsIFwKLSAgICAgICAgICAiMC4zNDk3MjEsIDAuMzc1MTg3LCAwLjYwMjU5NCwgMC45ODE1NTYsIDEuMzYwMTIsIDIuMjQ0MDMsIDIuNzQ5MTQiLCBcCi0gICAgICAgICAgIjAuMzY3NTE4LCAwLjM5MjkzNSwgMC42MjAzNDQsIDAuOTk5MTM2LCAxLjM3NzksIDIuMjYyNjYsIDIuNzY2OTgiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjgxOTU2LCAwLjMzMTI1LCAwLjc4NjgzNiwgMS41NTQ3NywgMi4zMTkyMywgNC4xMTA5NSwgNS4xMzcxMiIsIFwKLSAgICAgICAgICAiMC4yODE5NDUsIDAuMzMxMzU5LCAwLjc4NTc1MSwgMS41NTQ2OCwgMi4zMTc5NSwgNC4xMTA5OSwgNS4xMzgwOSIsIFwKLSAgICAgICAgICAiMC4yODE4MjUsIDAuMzMxMTUxLCAwLjc4NTcxMiwgMS41NTE3OSwgMi4zMjUxMSwgNC4xMjA3MywgNS4xMzMwOSIsIFwKLSAgICAgICAgICAiMC4yODE2ODMsIDAuMzMxMDM1LCAwLjc4Njc2NSwgMS41NTQ2MiwgMi4zMjA5MSwgNC4xMTE2OCwgNS4xMzYyNyIsIFwKLSAgICAgICAgICAiMC4yODE1NjcsIDAuMzMxMTQzLCAwLjc4NTU4MSwgMS41NTQ2MiwgMi4zMjQyNCwgNC4xMDk0OSwgNS4xMzU3MyIsIFwKLSAgICAgICAgICAiMC4yODE0NDIsIDAuMzMxMDUyLCAwLjc4NTYzMywgMS41NTE3NywgMi4zMjUwMiwgNC4xMjAzOCwgNS4xMzI5NiIsIFwKLSAgICAgICAgICAiMC4yODE0NzQsIDAuMzMxMTA5LCAwLjc4NTY4MSwgMS41NTIyNSwgMi4zMjUxMywgNC4xMTA3NCwgNS4xMzY3OSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMDUzNTEsIDAuMjM1MDc2LCAwLjUwMjQ4LCAwLjk0Nzk2NiwgMS4zOTM0MywgMi40MzI5NywgMy4wMjY1OCIsIFwKLSAgICAgICAgICAiMC4yMTcxNjIsIDAuMjQ2ODksIDAuNTE0MzEzLCAwLjk1OTgwMywgMS40MDUyOSwgMi40NDQ1MywgMy4wMzg0NiIsIFwKLSAgICAgICAgICAiMC4yMzE4OSwgMC4yNjE2MjMsIDAuNTI5MDUyLCAwLjk3NDU0OCwgMS40MjAwNywgMi40NTk0NiwgMy4wNTMyMSIsIFwKLSAgICAgICAgICAiMC4yNDY1MjQsIDAuMjc2MjU3LCAwLjU0MzcxNiwgMC45ODkyMjIsIDEuNDM0NjUsIDIuNDczOTksIDMuMDY3OSIsIFwKLSAgICAgICAgICAiMC4yNjA4MzcsIDAuMjkwNjA5LCAwLjU1ODA5NiwgMS4wMDM1OCwgMS40NDkwMywgMi40ODgzNiwgMy4wODIzOCIsIFwKLSAgICAgICAgICAiMC4yODIwMjEsIDAuMzExNzcxLCAwLjU3OTIzLCAxLjAyNDc5LCAxLjQ3MDIyLCAyLjUwOTU4LCAzLjEwMzU2IiwgXAotICAgICAgICAgICIwLjI5ODkxMiwgMC4zMjg2NzUsIDAuNTk2MTQxLCAxLjA0MTcsIDEuNDg3MjEsIDIuNTI2NDYsIDMuMTIwMzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzEwOTc0LCAwLjM2OTY0NiwgMC44OTg0MTMsIDEuNzgzNTcsIDIuNjY3MTUsIDQuNzIwNjUsIDUuODkxMjUiLCBcCi0gICAgICAgICAgIjAuMzEwOTg2LCAwLjM2OTYyNiwgMC44OTk2MjYsIDEuNzgwNjgsIDIuNjY3MzksIDQuNzIxMjMsIDUuODkxMjUiLCBcCi0gICAgICAgICAgIjAuMzEwOTgxLCAwLjM2OTY2MywgMC44OTg4NjgsIDEuNzgwNzQsIDIuNjYyNzUsIDQuNzIwNjgsIDUuODkxMzciLCBcCi0gICAgICAgICAgIjAuMzExMDE5LCAwLjM2OTE1MSwgMC44OTk2OTEsIDEuNzgwOTcsIDIuNjY3ODQsIDQuNzIwODYsIDUuODkxMTEiLCBcCi0gICAgICAgICAgIjAuMzExMTMyLCAwLjM2OTY2OSwgMC44OTg5MTksIDEuNzgxMTEsIDIuNjYzMTIsIDQuNzIxMTMsIDUuODkxNDMiLCBcCi0gICAgICAgICAgIjAuMzEwODA3LCAwLjM2OTczMSwgMC44OTgzMDksIDEuNzgyNjIsIDIuNjYyODcsIDQuNzIwODQsIDUuODkxNDMiLCBcCi0gICAgICAgICAgIjAuMzExMzYyLCAwLjM2OTc5MSwgMC44OTgzNDMsIDEuNzgzNDcsIDIuNjY1ODcsIDQuNzIwOTEsIDUuODkxMDciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjY5NzM4LCAwLjI5NTE4OSwgMC41MjI1NzEsIDAuOTAxMjg0LCAxLjI4MDEzLCAyLjE2NDE3LCAyLjY2ODg1IiwgXAotICAgICAgICAgICIwLjI3ODYxOCwgMC4zMDQwMDksIDAuNTMxNDMzLCAwLjkxMDE3LCAxLjI4ODkzLCAyLjE3MzQzLCAyLjY3NzciLCBcCi0gICAgICAgICAgIjAuMjkwODE3LCAwLjMxNjI1LCAwLjU0MzY1NSwgMC45MjI0MTEsIDEuMzAxNTQsIDIuMTg0OSwgMi42ODk5OCIsIFwKLSAgICAgICAgICAiMC4zMDM1MjksIDAuMzI4OTg1LCAwLjU1NjQyMiwgMC45MzUyNzMsIDEuMzE0LCAyLjE5Nzg2LCAyLjcwMzA1IiwgXAotICAgICAgICAgICIwLjMxNjM0NCwgMC4zNDE3NjksIDAuNTY5MjI5LCAwLjk0Nzk5MiwgMS4zMjY4MywgMi4yMTE1NSwgMi43MTU4NyIsIFwKLSAgICAgICAgICAiMC4zMzY5MzEsIDAuMzYyMzUyLCAwLjU4OTgzOCwgMC45Njg1OCwgMS4zNDczOSwgMi4yMzE1OSwgMi43MzY2NiIsIFwKLSAgICAgICAgICAiMC4zNTQ3OTYsIDAuMzgwMjI5LCAwLjYwNzY1MiwgMC45ODY0NSwgMS4zNjUzMiwgMi4yNDkyNSwgMi43NTQyNCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yODE4NTUsIDAuMzMwNjMzLCAwLjc4Njg5MywgMS41NTUwNywgMi4zMjQ0NCwgNC4xMTE5MiwgNS4xMzM5MyIsIFwKLSAgICAgICAgICAiMC4yODE4NDYsIDAuMzMxMDQ3LCAwLjc4NjkzOSwgMS41NTQ2NywgMi4zMjUsIDQuMTEwOTIsIDUuMTM3NzkiLCBcCi0gICAgICAgICAgIjAuMjgxNjczLCAwLjMzMTA1OCwgMC43ODU2NDYsIDEuNTU0NjUsIDIuMzE5MjMsIDQuMTIwMDIsIDUuMTQwNzciLCBcCi0gICAgICAgICAgIjAuMjgxNjI0LCAwLjMzMTIwOCwgMC43ODU1NzksIDEuNTUxMDUsIDIuMzI0MjMsIDQuMTEwMDMsIDUuMTMyNDMiLCBcCi0gICAgICAgICAgIjAuMjgxNTI0LCAwLjMzMDgyMSwgMC43ODU2MTcsIDEuNTU0NjEsIDIuMzE4NjgsIDQuMTEwNzQsIDUuMTM2NzgiLCBcCi0gICAgICAgICAgIjAuMjgxNDc4LCAwLjMzMDg4OCwgMC43ODQ5MjksIDEuNTU0NTgsIDIuMzI0MiwgNC4xMTEyMSwgNS4xMzg5IiwgXAotICAgICAgICAgICIwLjI4MTU1OCwgMC4zMzEzMTEsIDAuNzg1NjAyLCAxLjU1NDAyLCAyLjMxODY2LCA0LjExMzkyLCA1LjEzNjA5Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIwMjIxNiwgMC4yMzE5MTMsIDAuNDk5MjY4LCAwLjk0NDg0NSwgMS4zOTA4OCwgMi40Mjk5LCAzLjAyMzk5IiwgXAotICAgICAgICAgICIwLjIxMzk0LCAwLjI0MzY2MywgMC41MTEwMDUsIDAuOTU2NTMzLCAxLjQwMjM0LCAyLjQ0MjMzLCAzLjAzNTciLCBcCi0gICAgICAgICAgIjAuMjI4NzI3LCAwLjI1ODQ0OSwgMC41MjU4MjIsIDAuOTcxNTY1LCAxLjQxNjg4LCAyLjQ1NjU3LCAzLjA1MDciLCBcCi0gICAgICAgICAgIjAuMjQzMzIzLCAwLjI3MzAzNCwgMC41NDA3MiwgMC45ODY0NDYsIDEuNDMyMzYsIDIuNDcxODEsIDMuMDY1NDkiLCBcCi0gICAgICAgICAgIjAuMjU3NDQxLCAwLjI4NzE2NiwgMC41NTQ4NTMsIDEuMDAwNTQsIDEuNDQ2NTcsIDIuNDg2MDIsIDMuMDc5NDYiLCBcCi0gICAgICAgICAgIjAuMjc3ODA4LCAwLjMwNzU3LCAwLjU3NTAzNywgMS4wMjA2NywgMS40NjYxNSwgMi41MDYyLCAzLjEwMDA2IiwgXAotICAgICAgICAgICIwLjI5NDIwNiwgMC4zMjM5NTMsIDAuNTkxNDEzLCAxLjAzNzIxLCAxLjQ4MjYyLCAyLjUyMjY2LCAzLjExNjY0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMxMDc5OSwgMC4zNjk2MDUsIDAuODk3ODQsIDEuNzc4NDgsIDIuNjYwNzksIDQuNzIwODksIDUuODkxOTYiLCBcCi0gICAgICAgICAgIjAuMzEwNzkzLCAwLjM2OTYwNSwgMC44OTgyMDMsIDEuNzc4MzksIDIuNjY0MDUsIDQuNzE5NDMsIDUuODkxOTkiLCBcCi0gICAgICAgICAgIjAuMzEwNzY1LCAwLjM2OTU5OCwgMC45MDAyNTUsIDEuNzgyNDQsIDIuNjY4NCwgNC43MjExLCA1Ljg5MTYzIiwgXAotICAgICAgICAgICIwLjMxMDgwMywgMC4zNjk2MDUsIDAuODk2OTE3LCAxLjc4MDMxLCAyLjY2MTYsIDQuNzIwNzcsIDUuODg5MjkiLCBcCi0gICAgICAgICAgIjAuMzEwODUsIDAuMzY5MTY1LCAwLjg5NzMzNywgMS43ODM2OCwgMi42NjI2NywgNC43MjA4MiwgNS44OTEwNSIsIFwKLSAgICAgICAgICAiMC4zMTAzOTksIDAuMzY4NTYyLCAwLjg5NzE5OCwgMS43Nzk0OCwgMi42NTk3NywgNC43MjE4OCwgNS44OTA4OSIsIFwKLSAgICAgICAgICAiMC4zMTEwOTMsIDAuMzY5ODk2LCAwLjg5NzM0MiwgMS43ODEyNywgMi42NTk1LCA0LjcyMTk3LCA1Ljg5MDUzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwOTYyLCAwLjAwMDk2MywgMC4wMDA5NjQsIDAuMDAwOTY0LCAwLjAwMDk2NCwgMC4wMDA5NjQsIDAuMDAwOTY0IiwgXAotICAgICAgICAgICIwLjAwMDk1LCAwLjAwMDk1LCAwLjAwMDk1MiwgMC4wMDA5NTIsIDAuMDAwOTUyLCAwLjAwMDk1MiwgMC4wMDA5NTIiLCBcCi0gICAgICAgICAgIjAuMDAwOTQxLCAwLjAwMDk0MSwgMC4wMDA5NDMsIDAuMDAwOTQzLCAwLjAwMDk0MywgMC4wMDA5NDMsIDAuMDAwOTQzIiwgXAotICAgICAgICAgICIwLjAwMDkzNiwgMC4wMDA5MzYsIDAuMDAwOTM4LCAwLjAwMDkzOCwgMC4wMDA5MzgsIDAuMDAwOTM4LCAwLjAwMDkzOCIsIFwKLSAgICAgICAgICAiMC4wMDA5MzIsIDAuMDAwOTMzLCAwLjAwMDkzNCwgMC4wMDA5MzQsIDAuMDAwOTM1LCAwLjAwMDkzNSwgMC4wMDA5MzUiLCBcCi0gICAgICAgICAgIjAuMDAwOTI5LCAwLjAwMDkyOSwgMC4wMDA5MzEsIDAuMDAwOTMxLCAwLjAwMDkzMSwgMC4wMDA5MzEsIDAuMDAwOTMxIiwgXAotICAgICAgICAgICIwLjAwMDkyNiwgMC4wMDA5MjcsIDAuMDAwOTI5LCAwLjAwMDkyOSwgMC4wMDA5MjksIDAuMDAwOTI5LCAwLjAwMDkyOSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjA3MiwgMC4wMDIwNzIsIDAuMDAyMDc0LCAwLjAwMjA3NCwgMC4wMDIwNzQsIDAuMDAyMDc1LCAwLjAwMjA3NSIsIFwKLSAgICAgICAgICAiMC4wMDIwNjQsIDAuMDAyMDY0LCAwLjAwMjA2NiwgMC4wMDIwNjcsIDAuMDAyMDY3LCAwLjAwMjA2NywgMC4wMDIwNjciLCBcCi0gICAgICAgICAgIjAuMDAyMDU4LCAwLjAwMjA1OSwgMC4wMDIwNjEsIDAuMDAyMDYyLCAwLjAwMjA2MiwgMC4wMDIwNjIsIDAuMDAyMDYyIiwgXAotICAgICAgICAgICIwLjAwMjA1NCwgMC4wMDIwNTUsIDAuMDAyMDU4LCAwLjAwMjA1OSwgMC4wMDIwNTksIDAuMDAyMDYsIDAuMDAyMDYiLCBcCi0gICAgICAgICAgIjAuMDAyMDUyLCAwLjAwMjA1MywgMC4wMDIwNTYsIDAuMDAyMDU3LCAwLjAwMjA1OCwgMC4wMDIwNTgsIDAuMDAyMDU4IiwgXAotICAgICAgICAgICIwLjAwMjA0OCwgMC4wMDIwNDksIDAuMDAyMDUzLCAwLjAwMjA1NSwgMC4wMDIwNTUsIDAuMDAyMDU2LCAwLjAwMjA1NiIsIFwKLSAgICAgICAgICAiMC4wMDIwNDQsIDAuMDAyMDQ2LCAwLjAwMjA1MSwgMC4wMDIwNTMsIDAuMDAyMDU0LCAwLjAwMjA1NCwgMC4wMDIwNTQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDA5NjMsIDAuMDAwOTY0LCAwLjAwMDk2NiwgMC4wMDA5NjcsIDAuMDAwOTY3LCAwLjAwMDk2NywgMC4wMDA5NjciLCBcCi0gICAgICAgICAgIjAuMDAwOTUxLCAwLjAwMDk1MiwgMC4wMDA5NTUsIDAuMDAwOTU1LCAwLjAwMDk1NSwgMC4wMDA5NTUsIDAuMDAwOTU1IiwgXAotICAgICAgICAgICIwLjAwMDk0MiwgMC4wMDA5NDMsIDAuMDAwOTQ1LCAwLjAwMDk0NiwgMC4wMDA5NDYsIDAuMDAwOTQ3LCAwLjAwMDk0NiIsIFwKLSAgICAgICAgICAiMC4wMDA5MzYsIDAuMDAwOTM3LCAwLjAwMDk0LCAwLjAwMDk0MSwgMC4wMDA5NDEsIDAuMDAwOTQxLCAwLjAwMDk0MSIsIFwKLSAgICAgICAgICAiMC4wMDA5MzMsIDAuMDAwOTM0LCAwLjAwMDkzNiwgMC4wMDA5MzcsIDAuMDAwOTM3LCAwLjAwMDkzNywgMC4wMDA5MzgiLCBcCi0gICAgICAgICAgIjAuMDAwOTI5LCAwLjAwMDkzLCAwLjAwMDkzMywgMC4wMDA5MzQsIDAuMDAwOTM0LCAwLjAwMDkzNCwgMC4wMDA5MzQiLCBcCi0gICAgICAgICAgIjAuMDAwOTI3LCAwLjAwMDkyOCwgMC4wMDA5MzEsIDAuMDAwOTMyLCAwLjAwMDkzMiwgMC4wMDA5MzIsIDAuMDAwOTMyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxODcyLCAwLjAwMTg3MiwgMC4wMDE4NzQsIDAuMDAxODc1LCAwLjAwMTg3NSwgMC4wMDE4NzUsIDAuMDAxODc1IiwgXAotICAgICAgICAgICIwLjAwMTg2NiwgMC4wMDE4NjcsIDAuMDAxODY5LCAwLjAwMTg3LCAwLjAwMTg3LCAwLjAwMTg3LCAwLjAwMTg3IiwgXAotICAgICAgICAgICIwLjAwMTg1OSwgMC4wMDE4NiwgMC4wMDE4NjMsIDAuMDAxODY0LCAwLjAwMTg2NCwgMC4wMDE4NjQsIDAuMDAxODY0IiwgXAotICAgICAgICAgICIwLjAwMTg1NCwgMC4wMDE4NTUsIDAuMDAxODU4LCAwLjAwMTg1OSwgMC4wMDE4NiwgMC4wMDE4NiwgMC4wMDE4NiIsIFwKLSAgICAgICAgICAiMC4wMDE4NSwgMC4wMDE4NTEsIDAuMDAxODU1LCAwLjAwMTg1NywgMC4wMDE4NTcsIDAuMDAxODU4LCAwLjAwMTg1OCIsIFwKLSAgICAgICAgICAiMC4wMDE4NDQsIDAuMDAxODQ2LCAwLjAwMTg1MSwgMC4wMDE4NTMsIDAuMDAxODU0LCAwLjAwMTg1NCwgMC4wMDE4NTQiLCBcCi0gICAgICAgICAgIjAuMDAxODQsIDAuMDAxODQyLCAwLjAwMTg0OSwgMC4wMDE4NTEsIDAuMDAxODUyLCAwLjAwMTg1MywgMC4wMDE4NTMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDA5NjQsIDAuMDAwOTY1LCAwLjAwMDk2NywgMC4wMDA5NjgsIDAuMDAwOTY5LCAwLjAwMDk2OSwgMC4wMDA5NjkiLCBcCi0gICAgICAgICAgIjAuMDAwOTQ5LCAwLjAwMDk0OSwgMC4wMDA5NTIsIDAuMDAwOTU0LCAwLjAwMDk1MywgMC4wMDA5NTQsIDAuMDAwOTUzIiwgXAotICAgICAgICAgICIwLjAwMDkzOCwgMC4wMDA5MzksIDAuMDAwOTQyLCAwLjAwMDk0MywgMC4wMDA5NDMsIDAuMDAwOTQzLCAwLjAwMDk0MyIsIFwKLSAgICAgICAgICAiMC4wMDA5MzMsIDAuMDAwOTM0LCAwLjAwMDkzNywgMC4wMDA5MzgsIDAuMDAwOTM4LCAwLjAwMDkzOCwgMC4wMDA5MzkiLCBcCi0gICAgICAgICAgIjAuMDAwOTI5LCAwLjAwMDkzLCAwLjAwMDkzNCwgMC4wMDA5MzUsIDAuMDAwOTM1LCAwLjAwMDkzNiwgMC4wMDA5MzYiLCBcCi0gICAgICAgICAgIjAuMDAwOTI3LCAwLjAwMDkyOCwgMC4wMDA5MzEsIDAuMDAwOTMzLCAwLjAwMDkzMywgMC4wMDA5MzQsIDAuMDAwOTM0IiwgXAotICAgICAgICAgICIwLjAwMDkyNSwgMC4wMDA5MjcsIDAuMDAwOTMxLCAwLjAwMDkzMiwgMC4wMDA5MzMsIDAuMDAwOTM0LCAwLjAwMDkzNCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTY4LCAwLjAwMTY4MSwgMC4wMDE2ODIsIDAuMDAxNjgzLCAwLjAwMTY4MywgMC4wMDE2ODMsIDAuMDAxNjgzIiwgXAotICAgICAgICAgICIwLjAwMTY3NiwgMC4wMDE2NzYsIDAuMDAxNjc4LCAwLjAwMTY3OCwgMC4wMDE2NzgsIDAuMDAxNjc5LCAwLjAwMTY3OSIsIFwKLSAgICAgICAgICAiMC4wMDE2NjcsIDAuMDAxNjY4LCAwLjAwMTY3LCAwLjAwMTY3MSwgMC4wMDE2NzIsIDAuMDAxNjcyLCAwLjAwMTY3MiIsIFwKLSAgICAgICAgICAiMC4wMDE2NjEsIDAuMDAxNjYyLCAwLjAwMTY2NSwgMC4wMDE2NjYsIDAuMDAxNjY3LCAwLjAwMTY2NywgMC4wMDE2NjciLCBcCi0gICAgICAgICAgIjAuMDAxNjU2LCAwLjAwMTY1OCwgMC4wMDE2NjEsIDAuMDAxNjYzLCAwLjAwMTY2MywgMC4wMDE2NjMsIDAuMDAxNjY0IiwgXAotICAgICAgICAgICIwLjAwMTY1LCAwLjAwMTY1MSwgMC4wMDE2NTYsIDAuMDAxNjU4LCAwLjAwMTY1OSwgMC4wMDE2NTksIDAuMDAxNjU5IiwgXAotICAgICAgICAgICIwLjAwMTY0NywgMC4wMDE2NDgsIDAuMDAxNjU0LCAwLjAwMTY1NiwgMC4wMDE2NTcsIDAuMDAxNjU3LCAwLjAwMTY1OCIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogQU5ENFgxICoKLSAqIC0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoQU5ENFgxKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMDkzOTU1OTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNTYwMzM7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNTYwMzM7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNTU4MTg2OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDE2NSwgMC4wMDAxNjUsIDAuMDAwMTY1LCAwLjAwMDE2NSwgMC4wMDAxNjUsIDAuMDAwMTY1LCAwLjAwMDE2NSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjAxNjA2OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYwMTYwNjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA1OTk5NTQ7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMTY1LCAwLjAwMDE2NSwgMC4wMDAxNjUsIDAuMDAwMTY1LCAwLjAwMDE2NSwgMC4wMDAxNjUsIDAuMDAwMTY1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMTY2LCAwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY2Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihDKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2MTI2Njc7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjEyNjY3OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDYxMTU1NTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxNjUsIDAuMDAwMTY1LCAwLjAwMDE2NSwgMC4wMDAxNjUsIDAuMDAwMTY1LCAwLjAwMDE2NSwgMC4wMDAxNjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiwgMC4wMDAxNjYiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEQpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDU5MzU2NTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA1OTI4OTc7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNTkzNTY1OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDA3NSwgMC4wMDAwNzUsIDAuMDAwMDc1LCAwLjAwMDA3NSwgMC4wMDAwNzUsIDAuMDAwMDc1LCAwLjAwMDA3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDE4OCwgMC4wMDAxODgsIDAuMDAwMTg4LCAwLjAwMDE4OCwgMC4wMDAxODgsIDAuMDAwMTg4LCAwLjAwMDE4OCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjEyNzA4NTsKLSAgICBmdW5jdGlvbiA6ICIoKChBIEIpIEMpIEQpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zNDEwMTcsIDAuMzg5MzUyLCAwLjYzNzYsIDAuODUzNDc3LCAxLjE0MTMyLCAxLjcxNzAxLCAyLjA3NjU4IiwgXAotICAgICAgICAgICIwLjM1MjEwMywgMC40MDA1MDYsIDAuNjQ4NzI5LCAwLjg2NDYyOCwgMS4xNTIzNSwgMS43Mjc4OSwgMi4wODc2OSIsIFwKLSAgICAgICAgICAiMC4zNjUyMTcsIDAuNDEzNjIxLCAwLjY2MTg2OCwgMC44Nzc3NjYsIDEuMTY1NDcsIDEuNzQwOTgsIDIuMTAwNzIiLCBcCi0gICAgICAgICAgIjAuMzc3NDc3LCAwLjQyNjAwMywgMC42NzQ4MDIsIDAuODkwNjQ0LCAxLjE3ODM4LCAxLjc1Mzg2LCAyLjExNDA1IiwgXAotICAgICAgICAgICIwLjM4OTcwOSwgMC40MzgxNjEsIDAuNjg2NDMyLCAwLjkwMjMyNSwgMS4xOTAxNywgMS43NjU5OSwgMi4xMjU2OCIsIFwKLSAgICAgICAgICAiMC40MDgxOTQsIDAuNDU2MTg1LCAwLjcwNTQ4OSwgMC45MjEzMzUsIDEuMjA5MTUsIDEuNzg0NzQsIDIuMTQ0NDUiLCBcCi0gICAgICAgICAgIjAuNDIzNTgsIDAuNDcyNDUyLCAwLjcyMTU0MywgMC45Mzc0MzQsIDEuMjI1MjMsIDEuODAwODIsIDIuMTYwNTciKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjAwOTU3LCAwLjI4MjIyNiwgMC43NTk3NDMsIDEuMTg5OTYsIDEuNzc2NjQsIDIuOTM3OTksIDMuNjcwMjYiLCBcCi0gICAgICAgICAgIjAuMjAwOTY1LCAwLjI4MTY2MiwgMC43NTk5MDcsIDEuMTkxNTgsIDEuNzc2LCAyLjk0NjY4LCAzLjY3OTQ3IiwgXAotICAgICAgICAgICIwLjIwMDk1OSwgMC4yODE2NTUsIDAuNzU5ODk3LCAxLjE5MTU2LCAxLjc3NTc5LCAyLjk0NjQ3LCAzLjY3OTA0IiwgXAotICAgICAgICAgICIwLjIwMTMxMywgMC4yODE5MzksIDAuNzU5NjUsIDEuMTkxNiwgMS43NzMxNCwgMi45NDYzNywgMy42NzAxNCIsIFwKLSAgICAgICAgICAiMC4yMDA5NTMsIDAuMjgyMjU5LCAwLjc1OTgyOSwgMS4xOTE1MywgMS43NzY2MywgMi45Mzk2NywgMy42NzAyOSIsIFwKLSAgICAgICAgICAiMC4yMDE0NjIsIDAuMjgyMzA4LCAwLjc1OTQ4NSwgMS4xOTE0NiwgMS43NzIwMywgMi45NDExMiwgMy42Njg5IiwgXAotICAgICAgICAgICIwLjIwMTEyLCAwLjI4MTkyNiwgMC43NTk1MzMsIDEuMTkxNDcsIDEuNzczNDIsIDIuOTQxNTgsIDMuNjY4ODciKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTU2MzE4LCAwLjIwNjE2MSwgMC40ODY3ODksIDAuNzMzOTEyLCAxLjA2MzMyLCAxLjcyMTg3LCAyLjEzMzM5IiwgXAotICAgICAgICAgICIwLjE2Nzc4NCwgMC4yMTc2MjYsIDAuNDk4MjU5LCAwLjc0NTM4MiwgMS4wNzQ3OSwgMS43MzMzNCwgMi4xNDQ4NiIsIFwKLSAgICAgICAgICAiMC4xODI1NjMsIDAuMjMyMzksIDAuNTEzMDIyLCAwLjc2MDE4NCwgMS4wODk1MywgMS43NDgwNywgMi4xNTk2OSIsIFwKLSAgICAgICAgICAiMC4xOTczNTUsIDAuMjQ3MTg4LCAwLjUyNzgzLCAwLjc3NDk4OCwgMS4xMDQzNSwgMS43NjI4NywgMi4xNzQ0OSIsIFwKLSAgICAgICAgICAiMC4yMTIyMTUsIDAuMjYyMDYxLCAwLjU0MjY5NSwgMC43ODk4MzYsIDEuMTE5MjEsIDEuNzc3NzgsIDIuMTg5MzUiLCBcCi0gICAgICAgICAgIjAuMjM1MzM2LCAwLjI4NTE1OSwgMC41NjU4MjEsIDAuODEyOTU4LCAxLjE0MjMzLCAxLjgwMDksIDIuMjEyNDYiLCBcCi0gICAgICAgICAgIjAuMjU0NzIsIDAuMzA0NTE1LCAwLjU4NTE5MiwgMC44MzIzMzIsIDEuMTYxNjksIDEuODIwMjgsIDIuMjMxOCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xODE2MzQsIDAuMjc4NTY5LCAwLjgzMjY5LCAxLjMyMzQ2LCAxLjk3NzMxLCAzLjI4NjQsIDQuMTA0NzgiLCBcCi0gICAgICAgICAgIjAuMTgxNjA5LCAwLjI3ODU5MSwgMC44MzI3NjIsIDEuMzIzNTcsIDEuOTc3MzksIDMuMjg2NTksIDQuMTA1MDMiLCBcCi0gICAgICAgICAgIjAuMTgxMjk2LCAwLjI3ODU4NSwgMC44MzI4NTgsIDEuMzIyMDIsIDEuOTc3ODQsIDMuMjg2MzcsIDQuMTA0MzgiLCBcCi0gICAgICAgICAgIjAuMTgxMjIzLCAwLjI3ODU4MSwgMC44MzI5MjUsIDEuMzI1MDMsIDEuOTc3OTUsIDMuMjg3NjQsIDQuMTA0NTUiLCBcCi0gICAgICAgICAgIjAuMTgxNDU0LCAwLjI3ODU5MywgMC44MzI4OTIsIDEuMzIzNjksIDEuOTc4MDEsIDMuMjg2ODQsIDQuMTA0NzEiLCBcCi0gICAgICAgICAgIjAuMTgxNDU1LCAwLjI3ODIwNSwgMC44MzI5MjMsIDEuMzIzOCwgMS45NzgxLCAzLjI4NywgNC4xMDUwOSIsIFwKLSAgICAgICAgICAiMC4xODE0NjcsIDAuMjc4Njc1LCAwLjgzMzc1NiwgMS4zMjMwMywgMS45NzgzNSwgMy4yODY4OSwgNC4xMDU1OSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMzUwMDQsIDAuMzgzNDAzLCAwLjYzMTYxOSwgMC44NDc1MjQsIDEuMTM1MjgsIDEuNzEwODUsIDIuMDcwODIiLCBcCi0gICAgICAgICAgIjAuMzQ1MDQ2LCAwLjM5MzQ2LCAwLjY0MTc1MiwgMC44NTc2NDMsIDEuMTQ1NDEsIDEuNzIxLCAyLjA4MDk4IiwgXAotICAgICAgICAgICIwLjM1NzQ2OSwgMC40MDU5OTcsIDAuNjU0MzQ3LCAwLjg3MDIyLCAxLjE1ODA5LCAxLjczMzc5LCAyLjA5MzM0IiwgXAotICAgICAgICAgICIwLjM2OTU1MywgMC40MTc0MTgsIDAuNjY2NzU1LCAwLjg4MjYzNSwgMS4xNzA0NSwgMS43NDYwMiwgMi4xMDU4MSIsIFwKLSAgICAgICAgICAiMC4zODE0NjMsIDAuNDMwMDQ3LCAwLjY3ODgzNCwgMC44OTQ3MDgsIDEuMTgyNDYsIDEuNzU4NDgsIDIuMTE4MTUiLCBcCi0gICAgICAgICAgIjAuMzk5OTQ1LCAwLjQ0ODcxMiwgMC42OTc3MjcsIDAuOTEzNjA0LCAxLjIwMTQxLCAxLjc3NzI2LCAyLjEzNjk3IiwgXAotICAgICAgICAgICIwLjQxNjYsIDAuNDY0ODUzLCAwLjcxNDA1NCwgMC45Mjk5MzgsIDEuMjE3NzYsIDEuNzkzNjIsIDIuMTUzMzYiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjAwOTY3LCAwLjI4MTg2NywgMC43NTk4OTEsIDEuMTkxNTksIDEuNzc2MjMsIDIuOTQ2OTIsIDMuNjY3NzEiLCBcCi0gICAgICAgICAgIjAuMjAwODg0LCAwLjI4MjE4NiwgMC43NTk3NjQsIDEuMTkxNTksIDEuNzc2MjQsIDIuOTQ2OTksIDMuNjcwNDkiLCBcCi0gICAgICAgICAgIjAuMjAwOTE5LCAwLjI4MjA0NCwgMC43NTk3MjMsIDEuMTkxNjIsIDEuNzc4OTIsIDIuOTM3ODUsIDMuNjcwMDIiLCBcCi0gICAgICAgICAgIjAuMjAxMDcyLCAwLjI4MjY0MSwgMC43NTkwNTMsIDEuMTkxNDksIDEuNzczMzgsIDIuOTQxNDksIDMuNjY4ODgiLCBcCi0gICAgICAgICAgIjAuMjAxMTU5LCAwLjI4MTkzLCAwLjc1OTY2LCAxLjE5MTU2LCAxLjc3MzE4LCAyLjkzOSwgMy42Njk4NiIsIFwKLSAgICAgICAgICAiMC4yMDEzMzksIDAuMjgyMTE1LCAwLjc1OTY0NCwgMS4xODk4NCwgMS43NzIzLCAyLjkzOTgzLCAzLjY3MDM5IiwgXAotICAgICAgICAgICIwLjIwMTE2OCwgMC4yODE3MTIsIDAuNzU5NTUyLCAxLjE5MTQ1LCAxLjc3NjQxLCAyLjkzOTY3LCAzLjY3MDEiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTUzODgzLCAwLjIwMzU1OSwgMC40ODM4NzgsIDAuNzMwODgzLCAxLjA2MDEzLCAxLjcxODU5LCAyLjEzMDA2IiwgXAotICAgICAgICAgICIwLjE2NTQ2MiwgMC4yMTUxNCwgMC40OTU0OSwgMC43NDI0NDgsIDEuMDcxNzIsIDEuNzMwMTcsIDIuMTQxNjQiLCBcCi0gICAgICAgICAgIjAuMTgwMzUyLCAwLjIzMDA0NCwgMC41MTAzNzUsIDAuNzU3NDExLCAxLjA4NjY0LCAxLjc0NTEsIDIuMTU2NTciLCBcCi0gICAgICAgICAgIjAuMTk0ODk0LCAwLjI0NDU5NiwgMC41MjQ5NjIsIDAuNzcxOTcyLCAxLjEwMTMyLCAxLjc1OTY4LCAyLjE3MTE2IiwgXAotICAgICAgICAgICIwLjIwOTY4OCwgMC4yNTkzOTksIDAuNTM5NzMxLCAwLjc4Njc3LCAxLjExNjA1LCAxLjc3NDU3LCAyLjE4NTk4IiwgXAotICAgICAgICAgICIwLjIzMjY3NCwgMC4yODIzODYsIDAuNTYyNzQ2LCAwLjgwOTgyMSwgMS4xMzkwOCwgMS43OTc1OCwgMi4yMDkwMSIsIFwKLSAgICAgICAgICAiMC4yNTE0NzIsIDAuMzAxMTQ5LCAwLjU4MTUzNiwgMC44Mjg1ODksIDEuMTU3ODgsIDEuODE2NDgsIDIuMjI3ODEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTgwNzIsIDAuMjc3ODg3LCAwLjgzMjI5MiwgMS4zMjI5LCAxLjk3ODU2LCAzLjI4ODAyLCA0LjEwNjQ0IiwgXAotICAgICAgICAgICIwLjE4MDcxMSwgMC4yNzc4OTEsIDAuODMyMjI1LCAxLjMyMzc4LCAxLjk3ODU1LCAzLjI4ODIxLCA0LjEwNjU4IiwgXAotICAgICAgICAgICIwLjE4MDcwNiwgMC4yNzc4ODEsIDAuODMyNDAzLCAxLjMyMTcsIDEuOTc4NjQsIDMuMjg4MDIsIDQuMTA2NDMiLCBcCi0gICAgICAgICAgIjAuMTgwNjkzLCAwLjI3Nzg3MSwgMC44MzE4NiwgMS4zMjIyMiwgMS45Nzc1LCAzLjI4ODM2LCA0LjEwNjQ1IiwgXAotICAgICAgICAgICIwLjE4MDYsIDAuMjc3ODY2LCAwLjgzMjcyMSwgMS4zMjIyMSwgMS45NzYxOCwgMy4yODcxNCwgNC4xMDIxNCIsIFwKLSAgICAgICAgICAiMC4xODA3MzIsIDAuMjc3MDcyLCAwLjgzMjc1LCAxLjMyMzI1LCAxLjk3NjQ0LCAzLjI4MTc1LCA0LjEwNTg3IiwgXAotICAgICAgICAgICIwLjE4MDkwNiwgMC4yNzc1ODEsIDAuODMyODU1LCAxLjMyMjYsIDEuOTc3MDEsIDMuMjg2NzUsIDQuMTA2NDciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzIzMTg5LCAwLjM3MTY4NiwgMC42MjA2MzIsIDAuODM2NTMsIDEuMTI0MjgsIDEuNjk5NzgsIDIuMDU5OTMiLCBcCi0gICAgICAgICAgIjAuMzMyNzE3LCAwLjM4MTM2OCwgMC42Mjk3MjUsIDAuODQ1NjAxLCAxLjEzMzMzLCAxLjcwODg1LCAyLjA2ODY5IiwgXAotICAgICAgICAgICIwLjM0NDgwOSwgMC4zOTMyNTYsIDAuNjQxMzM1LCAwLjg1NzIzOCwgMS4xNDUwOCwgMS43MjA2NSwgMi4wODA3OCIsIFwKLSAgICAgICAgICAiMC4zNTYwMzUsIDAuNDA0NzQxLCAwLjY1NDA1MywgMC44Njk5NzksIDEuMTU3NzgsIDEuNzMzMzIsIDIuMDkzMiIsIFwKLSAgICAgICAgICAiMC4zNjg5OTQsIDAuNDE3NTQyLCAwLjY2NjIyNSwgMC44ODIxMTYsIDEuMTY5OTksIDEuNzQ1OTQsIDIuMTA1NzEiLCBcCi0gICAgICAgICAgIjAuMzg4NDMsIDAuNDM3MTUzLCAwLjY4NjQ2OCwgMC45MDIzMzcsIDEuMTkwMTMsIDEuNzY1NjUsIDIuMTI1NjEiLCBcCi0gICAgICAgICAgIjAuNDA2MDA4LCAwLjQ1NDY3MywgMC43MDM4MTEsIDAuOTE5NzAyLCAxLjIwNzQ1LCAxLjc4MzQ1LCAyLjE0MzAyIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIwMTM5MywgMC4yODIwNiwgMC43NTg2LCAxLjE5MTU4LCAxLjc3MzE4LCAyLjk0NTgzLCAzLjY3MDM1IiwgXAotICAgICAgICAgICIwLjIwMTAzNCwgMC4yODIwOTUsIDAuNzU5NzQ5LCAxLjE5MTcsIDEuNzc0OTYsIDIuOTQ2NDgsIDMuNjY5MzMiLCBcCi0gICAgICAgICAgIjAuMjAwOTMyLCAwLjI4MTcwMywgMC43NTk4MTgsIDEuMTkxNTgsIDEuNzc2NTUsIDIuOTM4NjcsIDMuNjY5NjciLCBcCi0gICAgICAgICAgIjAuMjAyMzU0LCAwLjI4MjY2NSwgMC43NTg5MjQsIDEuMTkxNTksIDEuNzczMzIsIDIuOTQwOTksIDMuNjY4NjkiLCBcCi0gICAgICAgICAgIjAuMjAxMDM0LCAwLjI4MTgzOCwgMC43NTk2MjEsIDEuMTkxNTgsIDEuNzc4OTYsIDIuOTM4MTIsIDMuNjY5NjEiLCBcCi0gICAgICAgICAgIjAuMjAxMjU4LCAwLjI4MjAwNSwgMC43NTk1MTEsIDEuMTkxNDgsIDEuNzczMDUsIDIuOTQ1ODgsIDMuNjY4MjciLCBcCi0gICAgICAgICAgIjAuMjAwOTAzLCAwLjI4MTYxNSwgMC43NTk2NDQsIDEuMTkxNDUsIDEuNzcyNzMsIDIuOTM5NDUsIDMuNjY3OTMiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTUwODI5LCAwLjIwMDM4OSwgMC40ODA0MjksIDAuNzI3MzU3LCAxLjA1NjU3LCAxLjcxNDg4LCAyLjEyNjM3IiwgXAotICAgICAgICAgICIwLjE2MjUwMywgMC4yMTIwNzMsIDAuNDkyMTM1LCAwLjczOTEzOCwgMS4wNjgyNywgMS43MjY2LCAyLjEzODA3IiwgXAotICAgICAgICAgICIwLjE3NzI2LCAwLjIyNjgzNSwgMC41MDY4OTcsIDAuNzUzODMyLCAxLjA4MzA0LCAxLjc0MTM4LCAyLjE1Mjg1IiwgXAotICAgICAgICAgICIwLjE5MjA5OCwgMC4yNDE2ODgsIDAuNTIxODE5LCAwLjc2ODcyMSwgMS4wOTc5NCwgMS43NTYyOCwgMi4xNjc3NCIsIFwKLSAgICAgICAgICAiMC4yMDY2OTksIDAuMjU2MzE3LCAwLjUzNjQzNSwgMC43ODMzOTcsIDEuMTEyNiwgMS43NzA5NiwgMi4xODI0NCIsIFwKLSAgICAgICAgICAiMC4yMjk0NDksIDAuMjc5MDQzLCAwLjU1OTE3NywgMC44MDYxNDMsIDEuMTM1MzksIDEuNzkzNzEsIDIuMjA1MTciLCBcCi0gICAgICAgICAgIjAuMjQ3ODQ3LCAwLjI5NzQ0NiwgMC41Nzc1OTcsIDAuODI0NTY2LCAxLjE1Mzc4LCAxLjgxMjE0LCAyLjIyMzg0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE3OTk4NywgMC4yNzczNTIsIDAuODMxNjEsIDEuMzI0MSwgMS45NzYzNSwgMy4yOTAyLCA0LjEwMjIyIiwgXAotICAgICAgICAgICIwLjE3OTk3NSwgMC4yNzczNCwgMC44MzI1NzcsIDEuMzIyOTksIDEuOTc2MzEsIDMuMjg1NTQsIDQuMTAxNjciLCBcCi0gICAgICAgICAgIjAuMTgwMDAzLCAwLjI3NzM1LCAwLjgzMTYzMSwgMS4zMjQwNiwgMS45NzYzNCwgMy4yODU1NCwgNC4xMDE5OCIsIFwKLSAgICAgICAgICAiMC4xNzk5NDgsIDAuMjc3MzQzLCAwLjgzMjE2MiwgMS4zMjIyNiwgMS45Nzg4NiwgMy4yODUwNSwgNC4xMDIwMiIsIFwKLSAgICAgICAgICAiMC4xODAwMjcsIDAuMjc3MjE4LCAwLjgzMjY4NywgMS4zMjM4LCAxLjk3OTAzLCAzLjI4NDQzLCA0LjEwNjI3IiwgXAotICAgICAgICAgICIwLjE4MDI0NCwgMC4yNzc0NjIsIDAuODMyODY3LCAxLjMyMjYzLCAxLjk3ODI4LCAzLjI4MzYyLCA0LjEwMjI1IiwgXAotICAgICAgICAgICIwLjE4MDU1LCAwLjI3NzQ3NywgMC44MzI3MDcsIDEuMzIzMjMsIDEuOTc2NjUsIDMuMjg0NzEsIDQuMDk5MzciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzA2OTQ0LCAwLjM1NTQ5MSwgMC42MDM5OTMsIDAuODE5ODg1LCAxLjEwNzY2LCAxLjY4MzMxLCAyLjA0MzQ1IiwgXAotICAgICAgICAgICIwLjMxNTM5MSwgMC4zNjM3NjQsIDAuNjEyNDUzLCAwLjgyODM0NiwgMS4xMTYwOCwgMS42OTE2MSwgMi4wNTEyOSIsIFwKLSAgICAgICAgICAiMC4zMjYyNjMsIDAuMzc0NDQ5LCAwLjYyMzgwMywgMC44Mzk2OTUsIDEuMTI3NTIsIDEuNzAzMTIsIDIuMDYyODQiLCBcCi0gICAgICAgICAgIjAuMzM3Nzc0LCAwLjM4NjMxMiwgMC42MzUxODgsIDAuODUxMDg2LCAxLjEzODg0LCAxLjcxNDUsIDIuMDc0MTMiLCBcCi0gICAgICAgICAgIjAuMzQ5OTc5LCAwLjM5ODQ0NSwgMC42NDc2NCwgMC44NjM1NjUsIDEuMTUxMjgsIDEuNzI2ODgsIDIuMDg2NTIiLCBcCi0gICAgICAgICAgIjAuMzY5MjI5LCAwLjQxNzgwOCwgMC42NjY5ODIsIDAuODgyODc4LCAxLjE3MDY3LCAxLjc0NjEyLCAyLjEwNjIiLCBcCi0gICAgICAgICAgIjAuMzg2Nzg5LCAwLjQzNTEzLCAwLjY4NDM3OCwgMC45MDAyMDIsIDEuMTg4MDIsIDEuNzYzNjYsIDIuMTIzNTEiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjAxMjQ5LCAwLjI4MjA2MywgMC43NTk2MywgMS4xOTE1OCwgMS43NzYyNSwgMi45Mzg2OSwgMy42Njk3IiwgXAotICAgICAgICAgICIwLjIwMTAxNywgMC4yODE4NiwgMC43NTk2MjIsIDEuMTkxNTUsIDEuNzcyOTEsIDIuOTQ1NzMsIDMuNjc4NzYiLCBcCi0gICAgICAgICAgIjAuMjAxMzUsIDAuMjgyMzM5LCAwLjc1OTYsIDEuMTkxNDcsIDEuNzcyMDMsIDIuOTQxMzYsIDMuNjY4OTEiLCBcCi0gICAgICAgICAgIjAuMjAwODQxLCAwLjI4MTY3MiwgMC43NTk0OTUsIDEuMTg5NzEsIDEuNzc2MDIsIDIuOTM4NjUsIDMuNjc5MTMiLCBcCi0gICAgICAgICAgIjAuMjAxMjM2LCAwLjI4MjAxOSwgMC43NTk0MjIsIDEuMTkzNDUsIDEuNzc1OSwgMi45NDY4LCAzLjY3ODg4IiwgXAotICAgICAgICAgICIwLjIwMDg0NCwgMC4yODE3NDEsIDAuNzU5Mzk4LCAxLjE5MzM1LCAxLjc3MjA2LCAyLjk0NTc1LCAzLjY2Nzc5IiwgXAotICAgICAgICAgICIwLjIwMDc1MywgMC4yODE0MTUsIDAuNzU5NDUxLCAxLjE5MTQxLCAxLjc3NjIxLCAyLjkzODY1LCAzLjY2ODI1Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE0NzUyOCwgMC4xOTcwMDksIDAuNDc3MDM2LCAwLjcyMzk2OSwgMS4wNTMzMywgMS43MTIyMywgMi4xMjM0OCIsIFwKLSAgICAgICAgICAiMC4xNTkwODgsIDAuMjA4NTY3LCAwLjQ4ODYwNSwgMC43MzU2MzMsIDEuMDY0ODksIDEuNzIzNTIsIDIuMTM0NzYiLCBcCi0gICAgICAgICAgIjAuMTc0MDM0LCAwLjIyMzUzMywgMC41MDM1NjQsIDAuNzUwNDg2LCAxLjA3OTgxLCAxLjczOTI5LCAyLjE0OTg1IiwgXAotICAgICAgICAgICIwLjE4ODkxNCwgMC4yMzg0MTcsIDAuNTE4NDk3LCAwLjc2NTU4OSwgMS4wOTQ3NSwgMS43NTMxMSwgMi4xNjU0IiwgXAotICAgICAgICAgICIwLjIwMzQ1NiwgMC4yNTI3MDcsIDAuNTMyODA1LCAwLjc3OTk3NCwgMS4xMDkwMywgMS43Njg0MSwgMi4xNzkxNCIsIFwKLSAgICAgICAgICAiMC4yMjU4ODUsIDAuMjc1Mzk1LCAwLjU1NTUyNSwgMC44MDI3MTEsIDEuMTMxNzUsIDEuNzkxMTMsIDIuMjAxODYiLCBcCi0gICAgICAgICAgIjAuMjQzNjk5LCAwLjI5MzIzMSwgMC41NzMzMjcsIDAuODIwMjUyLCAxLjE0OTc0LCAxLjgwODQ4LCAyLjIyMDAyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE3OTU5NiwgMC4yNzYwOTcsIDAuODMxMDg0LCAxLjMyMjE1LCAxLjk3NjgzLCAzLjI4ODMsIDQuMTA1IiwgXAotICAgICAgICAgICIwLjE3OTU2NywgMC4yNzYwMTksIDAuODMxNTA2LCAxLjMyMjQyLCAxLjk3NzI3LCAzLjI4NTIxLCA0LjA5NzUiLCBcCi0gICAgICAgICAgIjAuMTc5NTc2LCAwLjI3Njk3MywgMC44MzA4MjYsIDEuMzIwMTIsIDEuOTc0MDMsIDMuMjg0MDMsIDQuMTA3NjkiLCBcCi0gICAgICAgICAgIjAuMTc5NTUzLCAwLjI3NjIzNiwgMC44MzE0MiwgMS4zMjEyLCAxLjk3OTg4LCAzLjI4MDU3LCA0LjEwNjg2IiwgXAotICAgICAgICAgICIwLjE3OTY2LCAwLjI3NjY5LCAwLjgzMTAyNiwgMS4zMjA1MywgMS45NzMxNywgMy4yODIxOSwgNC4xMDY3IiwgXAotICAgICAgICAgICIwLjE3OTg0MywgMC4yNzY4MDQsIDAuODMxNTIsIDEuMzIwNDEsIDEuOTczMTEsIDMuMjgyMjUsIDQuMTA2MTMiLCBcCi0gICAgICAgICAgIjAuMTgwNiwgMC4yNzczNjIsIDAuODMwMjM2LCAxLjMyMzg3LCAxLjk3NzUsIDMuMjg1MjIsIDQuMTAzNTEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDE1MzgsIDAuMDAxNTQyLCAwLjAwMTU0NiwgMC4wMDE1NDYsIDAuMDAxNTQ3LCAwLjAwMTU0NywgMC4wMDE1NDciLCBcCi0gICAgICAgICAgIjAuMDAxNTI3LCAwLjAwMTUzMSwgMC4wMDE1MzYsIDAuMDAxNTM2LCAwLjAwMTUzNiwgMC4wMDE1MzYsIDAuMDAxNTM2IiwgXAotICAgICAgICAgICIwLjAwMTUxOSwgMC4wMDE1MjMsIDAuMDAxNTI4LCAwLjAwMTUyOCwgMC4wMDE1MjgsIDAuMDAxNTI4LCAwLjAwMTUyOCIsIFwKLSAgICAgICAgICAiMC4wMDE1MTMsIDAuMDAxNTE3LCAwLjAwMTUyMywgMC4wMDE1MjMsIDAuMDAxNTIzLCAwLjAwMTUyNCwgMC4wMDE1MjMiLCBcCi0gICAgICAgICAgIjAuMDAxNTA5LCAwLjAwMTUxNCwgMC4wMDE1MTksIDAuMDAxNTE5LCAwLjAwMTUyLCAwLjAwMTUyLCAwLjAwMTUyIiwgXAotICAgICAgICAgICIwLjAwMTUwNCwgMC4wMDE1MDksIDAuMDAxNTE1LCAwLjAwMTUxNiwgMC4wMDE1MTYsIDAuMDAxNTE2LCAwLjAwMTUxNiIsIFwKLSAgICAgICAgICAiMC4wMDE1MDEsIDAuMDAxNTA3LCAwLjAwMTUxMywgMC4wMDE1MTQsIDAuMDAxNTE0LCAwLjAwMTUxNCwgMC4wMDE1MTQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI3MSwgMC4wMDI3MTQsIDAuMDAyNzIsIDAuMDAyNzIxLCAwLjAwMjcyMSwgMC4wMDI3MjIsIDAuMDAyNzIyIiwgXAotICAgICAgICAgICIwLjAwMjcwMiwgMC4wMDI3MDcsIDAuMDAyNzEzLCAwLjAwMjcxNCwgMC4wMDI3MTQsIDAuMDAyNzE1LCAwLjAwMjcxNSIsIFwKLSAgICAgICAgICAiMC4wMDI2OTYsIDAuMDAyNzAxLCAwLjAwMjcwOCwgMC4wMDI3MSwgMC4wMDI3MSwgMC4wMDI3MTEsIDAuMDAyNzExIiwgXAotICAgICAgICAgICIwLjAwMjY5MiwgMC4wMDI2OTcsIDAuMDAyNzA1LCAwLjAwMjcwNywgMC4wMDI3MDgsIDAuMDAyNzA5LCAwLjAwMjcwOSIsIFwKLSAgICAgICAgICAiMC4wMDI2ODYsIDAuMDAyNjkzLCAwLjAwMjcwMiwgMC4wMDI3MDQsIDAuMDAyNzA2LCAwLjAwMjcwNiwgMC4wMDI3MDciLCBcCi0gICAgICAgICAgIjAuMDAyNjgyLCAwLjAwMjY4OSwgMC4wMDI3LCAwLjAwMjcwMiwgMC4wMDI3MDQsIDAuMDAyNzA1LCAwLjAwMjcwNSIsIFwKLSAgICAgICAgICAiMC4wMDI2NzYsIDAuMDAyNjg0LCAwLjAwMjY5NiwgMC4wMDI2OTksIDAuMDAyNywgMC4wMDI3MDIsIDAuMDAyNzAyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxNTM4LCAwLjAwMTU0MywgMC4wMDE1NDksIDAuMDAxNTUsIDAuMDAxNTUxLCAwLjAwMTU1MiwgMC4wMDE1NTIiLCBcCi0gICAgICAgICAgIjAuMDAxNTI4LCAwLjAwMTUzMywgMC4wMDE1MzksIDAuMDAxNTQsIDAuMDAxNTQxLCAwLjAwMTU0MywgMC4wMDE1NDIiLCBcCi0gICAgICAgICAgIjAuMDAxNTE5LCAwLjAwMTUyNCwgMC4wMDE1MzEsIDAuMDAxNTMzLCAwLjAwMTUzMywgMC4wMDE1MzMsIDAuMDAxNTM0IiwgXAotICAgICAgICAgICIwLjAwMTUxMywgMC4wMDE1MTgsIDAuMDAxNTI2LCAwLjAwMTUyNywgMC4wMDE1MjgsIDAuMDAxNTI4LCAwLjAwMTUyOCIsIFwKLSAgICAgICAgICAiMC4wMDE1MDksIDAuMDAxNTE1LCAwLjAwMTUyMiwgMC4wMDE1MjQsIDAuMDAxNTI1LCAwLjAwMTUyNCwgMC4wMDE1MjUiLCBcCi0gICAgICAgICAgIjAuMDAxNTA0LCAwLjAwMTUxLCAwLjAwMTUxOCwgMC4wMDE1MiwgMC4wMDE1MiwgMC4wMDE1MjEsIDAuMDAxNTIxIiwgXAotICAgICAgICAgICIwLjAwMTUwMiwgMC4wMDE1MDcsIDAuMDAxNTE2LCAwLjAwMTUxOCwgMC4wMDE1MTksIDAuMDAxNTE5LCAwLjAwMTUxOSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjUxNCwgMC4wMDI1MiwgMC4wMDI1MjYsIDAuMDAyNTI4LCAwLjAwMjUyOSwgMC4wMDI1MjksIDAuMDAyNTI5IiwgXAotICAgICAgICAgICIwLjAwMjUwOSwgMC4wMDI1MTQsIDAuMDAyNTIyLCAwLjAwMjUyMywgMC4wMDI1MjQsIDAuMDAyNTI0LCAwLjAwMjUyNSIsIFwKLSAgICAgICAgICAiMC4wMDI1MDIsIDAuMDAyNTA4LCAwLjAwMjUxNywgMC4wMDI1MTgsIDAuMDAyNTE5LCAwLjAwMjUyLCAwLjAwMjUyIiwgXAotICAgICAgICAgICIwLjAwMjQ5NSwgMC4wMDI1MDIsIDAuMDAyNTEzLCAwLjAwMjUxNCwgMC4wMDI1MTYsIDAuMDAyNTE3LCAwLjAwMjUxNyIsIFwKLSAgICAgICAgICAiMC4wMDI0ODksIDAuMDAyNDk3LCAwLjAwMjUwOSwgMC4wMDI1MTIsIDAuMDAyNTEzLCAwLjAwMjUxNCwgMC4wMDI1MTQiLCBcCi0gICAgICAgICAgIjAuMDAyNDgyLCAwLjAwMjQ5MSwgMC4wMDI1MDUsIDAuMDAyNTA4LCAwLjAwMjUxLCAwLjAwMjUxMiwgMC4wMDI1MTIiLCBcCi0gICAgICAgICAgIjAuMDAyNDc1LCAwLjAwMjQ4NSwgMC4wMDI1LCAwLjAwMjUwNCwgMC4wMDI1MDYsIDAuMDAyNTA4LCAwLjAwMjUwOCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTUzOCwgMC4wMDE1NDQsIDAuMDAxNTUzLCAwLjAwMTU1NSwgMC4wMDE1NTUsIDAuMDAxNTU1LCAwLjAwMTU1NyIsIFwKLSAgICAgICAgICAiMC4wMDE1MjgsIDAuMDAxNTM0LCAwLjAwMTU0MiwgMC4wMDE1NDUsIDAuMDAxNTQ3LCAwLjAwMTU0NiwgMC4wMDE1NDciLCBcCi0gICAgICAgICAgIjAuMDAxNTIsIDAuMDAxNTI2LCAwLjAwMTUzNCwgMC4wMDE1MzYsIDAuMDAxNTM3LCAwLjAwMTUzOCwgMC4wMDE1MzgiLCBcCi0gICAgICAgICAgIjAuMDAxNTEyLCAwLjAwMTUxOSwgMC4wMDE1MjksIDAuMDAxNTMxLCAwLjAwMTUzMiwgMC4wMDE1MzMsIDAuMDAxNTMzIiwgXAotICAgICAgICAgICIwLjAwMTUwOSwgMC4wMDE1MTYsIDAuMDAxNTI1LCAwLjAwMTUyOCwgMC4wMDE1MjgsIDAuMDAxNTI5LCAwLjAwMTUyOSIsIFwKLSAgICAgICAgICAiMC4wMDE1MDQsIDAuMDAxNTExLCAwLjAwMTUyMSwgMC4wMDE1MjMsIDAuMDAxNTI0LCAwLjAwMTUyNiwgMC4wMDE1MjYiLCBcCi0gICAgICAgICAgIjAuMDAxNTAxLCAwLjAwMTUwOCwgMC4wMDE1MTgsIDAuMDAxNTIxLCAwLjAwMTUyMiwgMC4wMDE1MjMsIDAuMDAxNTIzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyMzA5LCAwLjAwMjMxNCwgMC4wMDIzMiwgMC4wMDIzMjEsIDAuMDAyMzIyLCAwLjAwMjMyMiwgMC4wMDIzMjMiLCBcCi0gICAgICAgICAgIjAuMDAyMzA3LCAwLjAwMjMxMiwgMC4wMDIzMTgsIDAuMDAyMzIsIDAuMDAyMzIsIDAuMDAyMzIxLCAwLjAwMjMyMSIsIFwKLSAgICAgICAgICAiMC4wMDIzLCAwLjAwMjMwNiwgMC4wMDIzMTQsIDAuMDAyMzE1LCAwLjAwMjMxNiwgMC4wMDIzMTcsIDAuMDAyMzE3IiwgXAotICAgICAgICAgICIwLjAwMjI5MywgMC4wMDIzLCAwLjAwMjMwOSwgMC4wMDIzMTEsIDAuMDAyMzEyLCAwLjAwMjMxMywgMC4wMDIzMTQiLCBcCi0gICAgICAgICAgIjAuMDAyMjg2LCAwLjAwMjI5NCwgMC4wMDIzMDYsIDAuMDAyMzA4LCAwLjAwMjMwOSwgMC4wMDIzMTEsIDAuMDAyMzExIiwgXAotICAgICAgICAgICIwLjAwMjI3OCwgMC4wMDIyODcsIDAuMDAyMzAxLCAwLjAwMjMwNCwgMC4wMDIzMDYsIDAuMDAyMzA3LCAwLjAwMjMwOCIsIFwKLSAgICAgICAgICAiMC4wMDIyNzMsIDAuMDAyMjgyLCAwLjAwMjI5NywgMC4wMDIzMDEsIDAuMDAyMzAzLCAwLjAwMjMwNSwgMC4wMDIzMDUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJEIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDE1MzgsIDAuMDAxNTQ1LCAwLjAwMTU1NSwgMC4wMDE1NTgsIDAuMDAxNTU5LCAwLjAwMTU2LCAwLjAwMTU2MSIsIFwKLSAgICAgICAgICAiMC4wMDE1MjUsIDAuMDAxNTMzLCAwLjAwMTU0MiwgMC4wMDE1NDUsIDAuMDAxNTQ3LCAwLjAwMTU0OCwgMC4wMDE1NDgiLCBcCi0gICAgICAgICAgIjAuMDAxNTE1LCAwLjAwMTUyMSwgMC4wMDE1MzMsIDAuMDAxNTM2LCAwLjAwMTUzNywgMC4wMDE1MzgsIDAuMDAxNTM5IiwgXAotICAgICAgICAgICIwLjAwMTUwOSwgMC4wMDE1MTYsIDAuMDAxNTI3LCAwLjAwMTUyOSwgMC4wMDE1MzEsIDAuMDAxNTMyLCAwLjAwMTUzMyIsIFwKLSAgICAgICAgICAiMC4wMDE1MDUsIDAuMDAxNTEyLCAwLjAwMTUyMywgMC4wMDE1MjYsIDAuMDAxNTI4LCAwLjAwMTUzLCAwLjAwMTUzIiwgXAotICAgICAgICAgICIwLjAwMTUwMSwgMC4wMDE1MDgsIDAuMDAxNTIsIDAuMDAxNTIzLCAwLjAwMTUyNSwgMC4wMDE1MjYsIDAuMDAxNTI3IiwgXAotICAgICAgICAgICIwLjAwMTUsIDAuMDAxNTA2LCAwLjAwMTUxOSwgMC4wMDE1MjIsIDAuMDAxNTIzLCAwLjAwMTUyNSwgMC4wMDE1MjYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDIxMDksIDAuMDAyMTE0LCAwLjAwMjEyLCAwLjAwMjEyMSwgMC4wMDIxMjEsIDAuMDAyMTIyLCAwLjAwMjEyMiIsIFwKLSAgICAgICAgICAiMC4wMDIxMDgsIDAuMDAyMTEzLCAwLjAwMjExOSwgMC4wMDIxMiwgMC4wMDIxMjEsIDAuMDAyMTIxLCAwLjAwMjEyMSIsIFwKLSAgICAgICAgICAiMC4wMDIxLCAwLjAwMjEwNiwgMC4wMDIxMTMsIDAuMDAyMTE1LCAwLjAwMjExNiwgMC4wMDIxMTYsIDAuMDAyMTE2IiwgXAotICAgICAgICAgICIwLjAwMjA5MiwgMC4wMDIwOTksIDAuMDAyMTA4LCAwLjAwMjExLCAwLjAwMjExMSwgMC4wMDIxMTIsIDAuMDAyMTEyIiwgXAotICAgICAgICAgICIwLjAwMjA4NiwgMC4wMDIwOTMsIDAuMDAyMTA0LCAwLjAwMjEwNywgMC4wMDIxMDgsIDAuMDAyMTA5LCAwLjAwMjEwOSIsIFwKLSAgICAgICAgICAiMC4wMDIwNzcsIDAuMDAyMDg2LCAwLjAwMjA5OSwgMC4wMDIxMDIsIDAuMDAyMTA0LCAwLjAwMjEwNSwgMC4wMDIxMDUiLCBcCi0gICAgICAgICAgIjAuMDAyMDcsIDAuMDAyMDc5LCAwLjAwMjA5NSwgMC4wMDIwOTgsIDAuMDAyMSwgMC4wMDIxMDIsIDAuMDAyMTAyIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBBTkQ0WDQgKgotICogLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChBTkQ0WDQpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4yMTEwMzE7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDg1NDg0MTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA4NTQ4NDE7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwODUxNjc0OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDMwNiwgMC4wMDAzMDYsIDAuMDAwMzA2LCAwLjAwMDMwNiwgMC4wMDAzMDYsIDAuMDAwMzA2LCAwLjAwMDMwNiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDMwNiwgMC4wMDAzMDcsIDAuMDAwMzA3LCAwLjAwMDMwNywgMC4wMDAzMDcsIDAuMDAwMzA3LCAwLjAwMDMwNyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwODk2NDM1OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDg5NjQzNTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA4OTM4MzM7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzA2LCAwLjAwMDMwNiwgMC4wMDAzMDYsIDAuMDAwMzA2LCAwLjAwMDMwNiwgMC4wMDAzMDYsIDAuMDAwMzA1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzA2LCAwLjAwMDMwNywgMC4wMDAzMDcsIDAuMDAwMzA3LCAwLjAwMDMwNywgMC4wMDAzMDcsIDAuMDAwMzA3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihDKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA4OTY5NTQ7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwODk2OTU0OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDg5NDkxOTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAzMDYsIDAuMDAwMzA2LCAwLjAwMDMwNiwgMC4wMDAzMDYsIDAuMDAwMzA2LCAwLjAwMDMwNiwgMC4wMDAzMDYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAzMDYsIDAuMDAwMzA3LCAwLjAwMDMwNywgMC4wMDAzMDYsIDAuMDAwMzA3LCAwLjAwMDMwNywgMC4wMDAzMDciKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEQpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDg3NTkyNjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA4NzUxNDI7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwODc1OTI2OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDM0NywgMC4wMDAzNDgsIDAuMDAwMzQ4LCAwLjAwMDM0OCwgMC4wMDAzNDgsIDAuMDAwMzQ4LCAwLjAwMDM0OCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjUxMjkzNTsKLSAgICBmdW5jdGlvbiA6ICIoKChBIEIpIEMpIEQpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI5NTM5MiwgMC40NjAzNzgsIDAuNTkxNCwgMC42ODI1NzIsIDAuODI3NzQ3LCAwLjk1NDQ1MiwgMS4xMzU1IiwgXAotICAgICAgICAgICIwLjMwNjQxMywgMC40NzAzMzQsIDAuNjAxNzU5LCAwLjY5MjkyOSwgMC44MzgxMDMsIDAuOTY0NzkxLCAxLjE0NTgzIiwgXAotICAgICAgICAgICIwLjMxODcyNiwgMC40ODI2NzYsIDAuNjEzOTI4LCAwLjcwNTEwOCwgMC44NTAyNDEsIDAuOTc3MDQxLCAxLjE1ODAzIiwgXAotICAgICAgICAgICIwLjMzMDIwMywgMC40OTQ3NjgsIDAuNjI2MDcsIDAuNzE3MjYyLCAwLjg2MjQxOCwgMC45ODkxMTksIDEuMTcwMiIsIFwKLSAgICAgICAgICAiMC4zNDE2MTksIDAuNTA2LCAwLjYzNjMzMiwgMC43Mjc0NjcsIDAuODcyNTcyLCAwLjk5OTQwNiwgMS4xODA0IiwgXAotICAgICAgICAgICIwLjM1ODc3MywgMC41MjM2ODEsIDAuNjU0NjY0LCAwLjc0NTgyOCwgMC44OTEwMTksIDEuMDE3NzIsIDEuMTk4NzYiLCBcCi0gICAgICAgICAgIjAuMzczNzQ3LCAwLjUzODUzOSwgMC42Njk2MjQsIDAuNzYwODIzLCAwLjkwNTk0NCwgMS4wMzI3LCAxLjIxMzczIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTEyMzExLCAwLjM1Mzk1MSwgMC41OTc3MjIsIDAuNzc1NDA2LCAxLjA2NTYzLCAxLjMxODY4LCAxLjY4MzU5IiwgXAotICAgICAgICAgICIwLjExMjA0MSwgMC4zNTQ2MTksIDAuNTk4MTM0LCAwLjc3NjI5OCwgMS4wNjU3NSwgMS4zMTg1OCwgMS42ODYwMyIsIFwKLSAgICAgICAgICAiMC4xMTIwNTUsIDAuMzU0NzQyLCAwLjU5Nzg4OSwgMC43NzU5LCAxLjA2NDU2LCAxLjMyMDYxLCAxLjY4MzYiLCBcCi0gICAgICAgICAgIjAuMTEyMzk5LCAwLjM1NDAxMSwgMC41OTc3NTMsIDAuNzc1NTQ0LCAxLjA2NTY5LCAxLjMxNzIyLCAxLjY4NjQ3IiwgXAotICAgICAgICAgICIwLjExMjQxNywgMC4zNTM4NCwgMC41OTgxNDYsIDAuNzc2NjYzLCAxLjA2NDUyLCAxLjMxODc5LCAxLjY4MzgxIiwgXAotICAgICAgICAgICIwLjExMjM2NCwgMC4zNTM4MDgsIDAuNTk3NjEyLCAwLjc3NTUwOSwgMS4wNjU2NywgMS4zMTg2LCAxLjY4NjIzIiwgXAotICAgICAgICAgICIwLjExMjY1NiwgMC4zNTM2NDcsIDAuNTk3NDA4LCAwLjc3NjA5LCAxLjA2MzYzLCAxLjMyMDIzLCAxLjY4MzY5Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTAzNjMzLCAwLjI1MzQzNSwgMC4zOTk0NiwgMC41MDM1OTUsIDAuNjcwMTA0LCAwLjgxNTc3MiwgMS4wMjM4OSIsIFwKLSAgICAgICAgICAiMC4xMTUwMTgsIDAuMjY0ODgyLCAwLjQxMDkwNiwgMC41MTUwNDMsIDAuNjgxNTYzLCAwLjgyNzIxOSwgMS4wMzUyOSIsIFwKLSAgICAgICAgICAiMC4xMjk4MzcsIDAuMjc5NzM1LCAwLjQyNTc2MiwgMC41Mjk4OTUsIDAuNjk2NDE5LCAwLjg0MjA3NSwgMS4wNTAxNCIsIFwKLSAgICAgICAgICAiMC4xNDQ2NjQsIDAuMjk0NDc1LCAwLjQ0MDUyNCwgMC41NDQ2NTQsIDAuNzExMjEzLCAwLjg1Njg1NSwgMS4wNjQ5IiwgXAotICAgICAgICAgICIwLjE1OTU4NSwgMC4zMDk1MzQsIDAuNDU1NTg1LCAwLjU1OTcyMiwgMC43MjYyNDgsIDAuODcxOTEzLCAxLjA3OTk3IiwgXAotICAgICAgICAgICIwLjE4MzE4MSwgMC4zMzMwNDMsIDAuNDc5MTAzLCAwLjU4MzI0NiwgMC43NDk3OTUsIDAuODk1NDU1LCAxLjEwMzUxIiwgXAotICAgICAgICAgICIwLjIwMzM2NiwgMC4zNTMyMDYsIDAuNDk5MjY5LCAwLjYwMzQxMiwgMC43Njk5NDQsIDAuOTE1NjIzLCAxLjEyMzY5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY2NDcsIDAuMzQ4NTE4LCAwLjYzNzMwMSwgMC44NDQ4ODksIDEuMTc2MjQsIDEuNDY2NDgsIDEuODgxMjYiLCBcCi0gICAgICAgICAgIjAuMDY2NDE0LCAwLjM0ODAxMiwgMC42Mzc0NjIsIDAuODQ0NDA5LCAxLjE3NjEzLCAxLjQ2NjUxLCAxLjg4MTA2IiwgXAotICAgICAgICAgICIwLjA2NjM3MSwgMC4zNDkwOTgsIDAuNjM3NTQyLCAwLjg0NDQ4NiwgMS4xNzYxNSwgMS40NjY1MywgMS44ODExOSIsIFwKLSAgICAgICAgICAiMC4wNjYzOTIsIDAuMzQ4MTExLCAwLjYzNzQ5MiwgMC44NDQzNjEsIDEuMTc1NjYsIDEuNDY2MTIsIDEuODgxMDciLCBcCi0gICAgICAgICAgIjAuMDY2MjY3LCAwLjM0ODIyOSwgMC42Mzc1MjksIDAuODQ0NDM2LCAxLjE3NTE3LCAxLjQ2NjQxLCAxLjg4MTIxIiwgXAotICAgICAgICAgICIwLjA2Njc4MSwgMC4zNDgzOTIsIDAuNjM3NjA3LCAwLjg0NDQ4OSwgMS4xNzY3MiwgMS40NjUxNSwgMS44Nzk0MyIsIFwKLSAgICAgICAgICAiMC4wNjcwNjEsIDAuMzQ4NDE5LCAwLjYzNzYwNywgMC44NDQ1MSwgMS4xNzYxOSwgMS40NjUwNSwgMS44NzkyOSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI5MTAyOCwgMC40NTUyMDMsIDAuNTg2NjA3LCAwLjY3Nzc4OCwgMC44MjI5NTUsIDAuOTQ5NjQxLCAxLjEzMDY5IiwgXAotICAgICAgICAgICIwLjMwMTE2NCwgMC40NjUxMjIsIDAuNTk2Mzg0LCAwLjY4NzU2NiwgMC44MzI3MDQsIDAuOTU5NDg5LCAxLjE0MDQ5IiwgXAotICAgICAgICAgICIwLjMxMzE5NCwgMC40Nzc3NjgsIDAuNjA5MDA5LCAwLjcwMDEyNiwgMC44NDUzMywgMC45NzIwOTgsIDEuMTUzMSIsIFwKLSAgICAgICAgICAiMC4zMjQ1NzYsIDAuNDg5MDY3LCAwLjYxOTQ5NywgMC43MTA2NzIsIDAuODU1Nzg1LCAwLjk4MjYxNiwgMS4xNjM2MSIsIFwKLSAgICAgICAgICAiMC4zMzU4NDUsIDAuNTAwMDkyLCAwLjYzMTQ1OCwgMC43MjI2MjUsIDAuODY3ODA1LCAwLjk5NDUwNCwgMS4xNzU1NSIsIFwKLSAgICAgICAgICAiMC4zNTM1OSwgMC41MTg1MTUsIDAuNjQ5NTcyLCAwLjc0MDgzOCwgMC44ODU5MzQsIDEuMDEyNzQsIDEuMTkzNzQiLCBcCi0gICAgICAgICAgIjAuMzY5NjM3LCAwLjUzNDIzLCAwLjY2NTUxNCwgMC43NTY2OTEsIDAuOTAxODcsIDEuMDI4NTgsIDEuMjA5NjUiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTIxNCwgMC4zNTQ1NjIsIDAuNTk4MDc2LCAwLjc3NTgzLCAxLjA2NTg5LCAxLjMyMDQzLCAxLjY4MTc1IiwgXAotICAgICAgICAgICIwLjExMjAyNywgMC4zNTQ2OTEsIDAuNTk3OTY1LCAwLjc3NTg4NSwgMS4wNjQ0NywgMS4zMjA1NCwgMS42ODM2MSIsIFwKLSAgICAgICAgICAiMC4xMTE5ODUsIDAuMzUzNjE3LCAwLjU5NzU3OCwgMC43NzU3NTIsIDEuMDYzNzksIDEuMzE4MSwgMS42ODM1NCIsIFwKLSAgICAgICAgICAiMC4xMTIzNDMsIDAuMzUzOTcyLCAwLjU5ODA3NSwgMC43NzY2MzksIDEuMDYzNTgsIDEuMzE4ODQsIDEuNjgzNjYiLCBcCi0gICAgICAgICAgIjAuMTEyMjkzLCAwLjM1NDE0NywgMC41OTc4MjMsIDAuNzc1Njc5LCAxLjA2NTY3LCAxLjMxODU5LCAxLjY4MzUiLCBcCi0gICAgICAgICAgIjAuMTEzMTY2LCAwLjM1MzQ5MSwgMC41OTc1MSwgMC43NzYxNjUsIDEuMDYzMjksIDEuMzE4MTIsIDEuNjgzNjgiLCBcCi0gICAgICAgICAgIjAuMTEyMjEsIDAuMzUzNTAxLCAwLjU5NzQ4MSwgMC43NzYwNTIsIDEuMDY1MzMsIDEuMzE4MzgsIDEuNjgzOCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwMTc2OSwgMC4yNTEwNjYsIDAuMzk2OTYzLCAwLjUwMTAzMiwgMC42Njc1ODEsIDAuODEzMTgsIDEuMDIxMiIsIFwKLSAgICAgICAgICAiMC4xMTMxOTUsIDAuMjYyNjI4LCAwLjQwODUwOCwgMC41MTI1ODEsIDAuNjc5MDM1LCAwLjgyNDY4MSwgMS4wMzI2OSIsIFwKLSAgICAgICAgICAiMC4xMjgxMTIsIDAuMjc3NTA5LCAwLjQyMzQyLCAwLjUyNzQ5LCAwLjY5Mzk3LCAwLjgzOTYxLCAxLjA0NzU5IiwgXAotICAgICAgICAgICIwLjE0MzEyNywgMC4yOTI1NjEsIDAuNDM4NDY3LCAwLjU0MjU0NCwgMC43MDkwMjcsIDAuODU0NjM5LCAxLjA2MjY2IiwgXAotICAgICAgICAgICIwLjE1NzcyOSwgMC4zMDcxODYsIDAuNDUzMTA4LCAwLjU1NzE4OSwgMC43MjM3MzQsIDAuODY5MzQxLCAxLjA3NzMyIiwgXAotICAgICAgICAgICIwLjE4MTA5NCwgMC4zMzA1OSwgMC40NzY1MjYsIDAuNTgwNjE1LCAwLjc0NzEyMywgMC44OTI3MzIsIDEuMTAwNzciLCBcCi0gICAgICAgICAgIjAuMjAwOTM1LCAwLjM1MDU1NiwgMC40OTY1MDUsIDAuNjAwNTk5LCAwLjc2NzA4NSwgMC45MTI3MzIsIDEuMTIwNzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjU4MDUsIDAuMzQ4MTYxLCAwLjYzNzI5OSwgMC44NDQzMjEsIDEuMTc1ODMsIDEuNDY2NiwgMS44NzkyNCIsIFwKLSAgICAgICAgICAiMC4wNjU3NzYsIDAuMzQ3NzUsIDAuNjM3MzI3LCAwLjg0NDQwNiwgMS4xNzY0NiwgMS40NjUxNCwgMS44NzkxNCIsIFwKLSAgICAgICAgICAiMC4wNjU5MTQsIDAuMzQ3ODMxLCAwLjYzNzI4MywgMC44NDQyNTYsIDEuMTc1MDEsIDEuNDY0NDEsIDEuODc5MjkiLCBcCi0gICAgICAgICAgIjAuMDY1NzksIDAuMzQ3NjE0LCAwLjYzNzI4LCAwLjg0NDMzNiwgMS4xNzY0MywgMS40NjQ5OSwgMS44NzkxOCIsIFwKLSAgICAgICAgICAiMC4wNjU4MTMsIDAuMzQ4MTM1LCAwLjYzNzI5MywgMC44NDQzNTksIDEuMTc0MTYsIDEuNDY2MTcsIDEuODc5MTQiLCBcCi0gICAgICAgICAgIjAuMDY2Mzg2LCAwLjM0Nzc1MSwgMC42MzczNzgsIDAuODQ0NDQzLCAxLjE3NTgyLCAxLjQ2NDg2LCAxLjg3OTgzIiwgXAotICAgICAgICAgICIwLjA2NzAxOSwgMC4zNDg1NjEsIDAuNjM2ODI5LCAwLjg0NDQxMSwgMS4xNzQ5MSwgMS40NjU1OCwgMS44NzkzMyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI4MTcwNywgMC40NDYwNDcsIDAuNTc3MTgxLCAwLjY2ODM0NywgMC44MTM1MzQsIDAuOTQwMjI4LCAxLjEyMTI3IiwgXAotICAgICAgICAgICIwLjI5MDk0NywgMC40NTU3NTIsIDAuNTg2NzksIDAuNjc2Nzg5LCAwLjgyMTkzNiwgMC45NDg3MzMsIDEuMTI5NzMiLCBcCi0gICAgICAgICAgIjAuMzAyNDA2LCAwLjQ2NzU0LCAwLjU5ODUyNywgMC42ODk3MDcsIDAuODM0ODI0LCAwLjk2MTYzLCAxLjE0MjYzIiwgXAotICAgICAgICAgICIwLjMxNDIyLCAwLjQ3OTMyOCwgMC42MDk3OTIsIDAuNzAwOTY2LCAwLjg0NjE0MywgMC45NzI4MzQsIDEuMTUzODMiLCBcCi0gICAgICAgICAgIjAuMzI2MzI5LCAwLjQ5MDUzMiwgMC42MjE3ODgsIDAuNzEyOTE4LCAwLjg1ODE0NSwgMC45ODQ4MzYsIDEuMTY1ODkiLCBcCi0gICAgICAgICAgIjAuMzQ1NjU5LCAwLjUxMDE0NywgMC42NDE1MTMsIDAuNzMyNjU2LCAwLjg3NzgwOSwgMS4wMDQ1NywgMS4xODU2MSIsIFwKLSAgICAgICAgICAiMC4zNjI3OTMsIDAuNTI3NzE2LCAwLjY1ODgxMywgMC43NDk5NzUsIDAuODk1MTA0LCAxLjAyMTg5LCAxLjIwMjkzIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTEyMjI1LCAwLjM1NDcxNCwgMC41OTgwOTQsIDAuNzc1OTcsIDEuMDY1ODgsIDEuMzE4NTUsIDEuNjg1NTYiLCBcCi0gICAgICAgICAgIjAuMTEyMjYyLCAwLjM1NDA1NywgMC41OTc3NDcsIDAuNzc2NzU1LCAxLjA2NTU1LCAxLjMxNzYxLCAxLjY4Mzc2IiwgXAotICAgICAgICAgICIwLjExMjk4MSwgMC4zNTM3MDksIDAuNTk3NTQxLCAwLjc3NjMwMywgMS4wNjM3NCwgMS4zMTU5NywgMS42ODM3NCIsIFwKLSAgICAgICAgICAiMC4xMTMwMjQsIDAuMzUzNjUzLCAwLjU5ODA2MywgMC43NzU0NDgsIDEuMDYzMzcsIDEuMzE4NTIsIDEuNjgzNTUiLCBcCi0gICAgICAgICAgIjAuMTEyMjY2LCAwLjM1NDI1NiwgMC41OTc4NjQsIDAuNzc1NjAxLCAxLjA2NTgxLCAxLjMxODM3LCAxLjY4MzU2IiwgXAotICAgICAgICAgICIwLjExMjQ1NiwgMC4zNTM2OSwgMC41OTc1OTMsIDAuNzc2MjExLCAxLjA2MzU4LCAxLjMxODU1LCAxLjY4MzUyIiwgXAotICAgICAgICAgICIwLjExMjE2MywgMC4zNTMyMywgMC41OTczODgsIDAuNzc1MzY1LCAxLjA2NTE4LCAxLjMxODU5LCAxLjY4NjExIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk5MTQ4LCAwLjI0ODE4MiwgMC4zOTM5NjEsIDAuNDk3OTg1LCAwLjY2NDQwMiwgMC44MTAwMTEsIDEuMDE4MDEiLCBcCi0gICAgICAgICAgIjAuMTEwODExLCAwLjI1OTc5MywgMC40MDU2MjYsIDAuNTA5NjA3LCAwLjY3NjAzNCwgMC44MjE2NDcsIDEuMDI5NjMiLCBcCi0gICAgICAgICAgIjAuMTI1NzQxLCAwLjI3NDc1OCwgMC40MjA1NTUsIDAuNTI0NTgxLCAwLjY5MTA3OSwgMC44MzY1OTcsIDEuMDQ0NiIsIFwKLSAgICAgICAgICAiMC4xNDAzNjgsIDAuMjg5NDMxLCAwLjQzNTIzOSwgMC41MzkyNjEsIDAuNzA1Njg5LCAwLjg1MTM1MiwgMS4wNTkyNyIsIFwKLSAgICAgICAgICAiMC4xNTUyNzcsIDAuMzA0NDA4LCAwLjQ1MDIxOSwgMC41NTQyNTYsIDAuNzIwNzExLCAwLjg2NjI4NywgMS4wNzQyOSIsIFwKLSAgICAgICAgICAiMC4xNzg1NTMsIDAuMzI3Njk3LCAwLjQ3MzUyOCwgMC41Nzc1NjksIDAuNzQzOTg5LCAwLjg4OTYwOCwgMS4wOTc2MiIsIFwKLSAgICAgICAgICAiMC4xOTgxMDksIDAuMzQ3NDczLCAwLjQ5MzMzNCwgMC41OTczODUsIDAuNzYzNzk0LCAwLjkwOTQzLCAxLjExNzQ0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY1MzM5LCAwLjM0NzExNiwgMC42MzcyNDUsIDAuODQ0NTEsIDEuMTc0ODcsIDEuNDY1MzEsIDEuODgxNSIsIFwKLSAgICAgICAgICAiMC4wNjU0MjUsIDAuMzQ2OTQyLCAwLjYzNjUzNCwgMC44NDQ2MDUsIDEuMTc0NDgsIDEuNDY2NDYsIDEuODgwMjYiLCBcCi0gICAgICAgICAgIjAuMDY1NTE0LCAwLjM0NzYxMywgMC42MzcyNDUsIDAuODQ0NDIzLCAxLjE3NTY0LCAxLjQ2NDU3LCAxLjg4MDg2IiwgXAotICAgICAgICAgICIwLjA2NTQwNywgMC4zNDczMzMsIDAuNjM3MTg1LCAwLjg0NDQ5OSwgMS4xNzQ3MywgMS40NjYxNiwgMS44Nzk2MyIsIFwKLSAgICAgICAgICAiMC4wNjUzODksIDAuMzQ3NjQ2LCAwLjYzNzIyNCwgMC44NDQ1MDgsIDEuMTczOSwgMS40NjQ1NiwgMS44ODEyNiIsIFwKLSAgICAgICAgICAiMC4wNjYxMzUsIDAuMzQ3NzY4LCAwLjYzNzI1MSwgMC44NDQ0OCwgMS4xNzY2OSwgMS40NjQ2MywgMS44ODE0MSIsIFwKLSAgICAgICAgICAiMC4wNjY5MTksIDAuMzQ3Mzc5LCAwLjYzNTg4MywgMC44NDQxNzMsIDEuMTc0NiwgMS40NjY2OSwgMS44NzcyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkQiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjY2Mjk5LCAwLjQzMTA2OSwgMC41NjI0MDgsIDAuNjUzNTc2LCAwLjc5ODc3MSwgMC45MjU0NjgsIDEuMTA2NiIsIFwKLSAgICAgICAgICAiMC4yNzUyMTYsIDAuNDQwMTc3LCAwLjU3MDI3LCAwLjY2MTUxMiwgMC44MDY2MTIsIDAuOTMzNDM2LCAxLjExNDQ0IiwgXAotICAgICAgICAgICIwLjI4NjA1MSwgMC40NTA3OCwgMC41ODE3NjMsIDAuNjcyOTQ2LCAwLjgxODEyOSwgMC45NDQ4MjgsIDEuMTI1ODMiLCBcCi0gICAgICAgICAgIjAuMjk3NDU5LCAwLjQ2MjQxOCwgMC41OTI1OTksIDAuNjgzNzc2LCAwLjgyODg4NSwgMC45NTU3MTEsIDEuMTM2NzEiLCBcCi0gICAgICAgICAgIjAuMzA4ODk1LCAwLjQ3MjkxOSwgMC42MDQyODksIDAuNjk1NDA5LCAwLjg0MDY0OCwgMC45NjczNDQsIDEuMTQ4NCIsIFwKLSAgICAgICAgICAiMC4zMjcwNjgsIDAuNDkxODg3LCAwLjYyMzE2NCwgMC43MTQzMzEsIDAuODU5NTMsIDAuOTg2MjQzLCAxLjE2NzMiLCBcCi0gICAgICAgICAgIjAuMzQ0NDg3LCAwLjUwOTMwNCwgMC42NDA0MjYsIDAuNzMxNjQzLCAwLjg3NjcyMiwgMS4wMDM1NCwgMS4xODQ1NiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExMzY1LCAwLjM1NDMzOSwgMC41OTc5NDYsIDAuNzc1ODE4LCAxLjA2NTQ4LCAxLjMxODY2LCAxLjY4Njg3IiwgXAotICAgICAgICAgICIwLjExMjEyOSwgMC4zNTM3MjksIDAuNTk3Njg0LCAwLjc3NjQ4MSwgMS4wNjM1MiwgMS4zMTczMywgMS42ODM3OSIsIFwKLSAgICAgICAgICAiMC4xMTIwNjQsIDAuMzUzOTczLCAwLjU5Nzc0NSwgMC43NzU2NSwgMS4wNjU1MywgMS4zMTcwNiwgMS42ODM3NSIsIFwKLSAgICAgICAgICAiMC4xMTIxMDYsIDAuMzUzNTk1LCAwLjU5Nzg2NSwgMC43NzY0MTksIDEuMDYzNjIsIDEuMzE4NTksIDEuNjgzNzQiLCBcCi0gICAgICAgICAgIjAuMTEyMjEzLCAwLjM1MzgzLCAwLjU5NzY1MywgMC43NzU0NDgsIDEuMDY1NzMsIDEuMzE4MzcsIDEuNjgzNDUiLCBcCi0gICAgICAgICAgIjAuMTEyNDg4LCAwLjM1MzM2MSwgMC41OTc0MTUsIDAuNzc1NTE5LCAxLjA2NTI4LCAxLjMxODQyLCAxLjY4MzQxIiwgXAotICAgICAgICAgICIwLjExMjUyNCwgMC4zNTI5NDIsIDAuNTk3MjEyLCAwLjc3NTI2OCwgMS4wNjQxNywgMS4zMTg1MSwgMS42ODM3OCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5NTU5MSwgMC4yNDQxODcsIDAuMzg5ODc2LCAwLjQ5MzkxNywgMC42NjAzOTksIDAuODA2MTQ1LCAxLjAxNDEyIiwgXAotICAgICAgICAgICIwLjEwNzI3NywgMC4yNTU3NTcsIDAuNDAxNDc1LCAwLjUwNTQ1NSwgMC42NzE5NDIsIDAuODE3NTM5LCAxLjAyNTk0IiwgXAotICAgICAgICAgICIwLjEyMjA3MSwgMC4yNzA4MzQsIDAuNDE2NTE1LCAwLjUyMDY0OCwgMC42ODcwMTIsIDAuODMyODA5LCAxLjA0MDU3IiwgXAotICAgICAgICAgICIwLjEzNzEzOCwgMC4yODU4MDYsIDAuNDMxNTAyLCAwLjUzNTU3NSwgMC43MDIwMTIsIDAuODQ4MDc0LCAxLjA1NTgxIiwgXAotICAgICAgICAgICIwLjE1MTY2NCwgMC4zMDA1MjEsIDAuNDQ2MjEzLCAwLjU1MDI5NSwgMC43MTY2OTcsIDAuODYyNzQ3LCAxLjA3MDUiLCBcCi0gICAgICAgICAgIjAuMTc0OTg4LCAwLjMyMzcxNSwgMC40Njk0NjcsIDAuNTczNDgsIDAuNzM5OTQ3LCAwLjg4NTc0NSwgMS4wOTM2OSIsIFwKLSAgICAgICAgICAiMC4xOTQzNDEsIDAuMzQzMzM5LCAwLjQ4OTEsIDAuNTkzMTM2LCAwLjc1OTYyNCwgMC45MDU2OTMsIDEuMTEzNDQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjQ5NCwgMC4zNDcyNTYsIDAuNjM3MzcyLCAwLjg0Mjc1NSwgMS4xNzI3MiwgMS40NjYyLCAxLjg3NzI4IiwgXAotICAgICAgICAgICIwLjA2NDg4MywgMC4zNDY2NzQsIDAuNjM1NzYxLCAwLjg0NDgxMSwgMS4xNzMyMSwgMS40NjMyMywgMS44NzY5NyIsIFwKLSAgICAgICAgICAiMC4wNjQ4NjUsIDAuMzQ2ODU5LCAwLjYzNzI4NSwgMC44NDE5NDgsIDEuMTc3MTIsIDEuNDY1MTcsIDEuODgzMjYiLCBcCi0gICAgICAgICAgIjAuMDY0OSwgMC4zNDY2LCAwLjYzNzM1NiwgMC44NDMzNzMsIDEuMTczMDksIDEuNDY1NiwgMS44NzkzNCIsIFwKLSAgICAgICAgICAiMC4wNjUyNCwgMC4zNDcyNDYsIDAuNjM2Mzc1LCAwLjg0MTgwOCwgMS4xNzcxMiwgMS40NjI1MywgMS44Nzg2OSIsIFwKLSAgICAgICAgICAiMC4wNjU2MjMsIDAuMzQ2NzYsIDAuNjM3NDAxLCAwLjg0Mzk2OCwgMS4xNzcxMywgMS40NjUyOCwgMS44NzkzNCIsIFwKLSAgICAgICAgICAiMC4wNjY2NzEsIDAuMzQ3NjUzLCAwLjYzNzQyOSwgMC44NDM2MDMsIDEuMTczMSwgMS40NjMyNiwgMS44NzkyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQwNjMsIDAuMDA0MTcsIDAuMDA0MTk0LCAwLjAwNDE5OSwgMC4wMDQyMDgsIDAuMDA0MjExLCAwLjAwNDIxNSIsIFwKLSAgICAgICAgICAiMC4wMDQwNDQsIDAuMDA0MTUxLCAwLjAwNDE3NywgMC4wMDQxODUsIDAuMDA0MTkyLCAwLjAwNDE5NSwgMC4wMDQyMDEiLCBcCi0gICAgICAgICAgIjAuMDA0MDI2LCAwLjAwNDEzNCwgMC4wMDQxNiwgMC4wMDQxNywgMC4wMDQxNzcsIDAuMDA0MTc3LCAwLjAwNDE4NCIsIFwKLSAgICAgICAgICAiMC4wMDQwMTYsIDAuMDA0MTI5LCAwLjAwNDE1NCwgMC4wMDQxNjIsIDAuMDA0MTY4LCAwLjAwNDE3MiwgMC4wMDQxNzUiLCBcCi0gICAgICAgICAgIjAuMDA0MDA5LCAwLjAwNDEyLCAwLjAwNDE0MywgMC4wMDQxNTEsIDAuMDA0MTU5LCAwLjAwNDE2MywgMC4wMDQxNjYiLCBcCi0gICAgICAgICAgIjAuMDAzOTk5LCAwLjAwNDExLCAwLjAwNDEzNywgMC4wMDQxNDgsIDAuMDA0MTU0LCAwLjAwNDE1NywgMC4wMDQxNTkiLCBcCi0gICAgICAgICAgIjAuMDAzOTkyLCAwLjAwNDEwNCwgMC4wMDQxMzIsIDAuMDA0MTM4LCAwLjAwNDE0OCwgMC4wMDQxNTIsIDAuMDA0MTU2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDYyLCAwLjAwNjMzNCwgMC4wMDYzNTEsIDAuMDA2MzU1LCAwLjAwNjM2LCAwLjAwNjM2MywgMC4wMDYzNjUiLCBcCi0gICAgICAgICAgIjAuMDA2MTg1LCAwLjAwNjMxOSwgMC4wMDYzMzYsIDAuMDA2MzQyLCAwLjAwNjM0NiwgMC4wMDYzNDksIDAuMDA2MzUiLCBcCi0gICAgICAgICAgIjAuMDA2MTY5LCAwLjAwNjMwOCwgMC4wMDYzMjcsIDAuMDA2MzMzLCAwLjAwNjMzOSwgMC4wMDYzNDEsIDAuMDA2MzQzIiwgXAotICAgICAgICAgICIwLjAwNjE1NCwgMC4wMDYyOTYsIDAuMDA2MzE5LCAwLjAwNjMyNiwgMC4wMDYzMzIsIDAuMDA2MzM1LCAwLjAwNjMzOCIsIFwKLSAgICAgICAgICAiMC4wMDYxMzgsIDAuMDA2Mjg3LCAwLjAwNjMxMiwgMC4wMDYzMiwgMC4wMDYzMjcsIDAuMDA2MzMxLCAwLjAwNjMzNCIsIFwKLSAgICAgICAgICAiMC4wMDYxMTgsIDAuMDA2MjcxLCAwLjAwNjMwMSwgMC4wMDYzMTEsIDAuMDA2MzE5LCAwLjAwNjMyNCwgMC4wMDYzMjgiLCBcCi0gICAgICAgICAgIjAuMDA2MTE1LCAwLjAwNjI2NCwgMC4wMDYyOTYsIDAuMDA2MzA2LCAwLjAwNjMxNiwgMC4wMDYzMjEsIDAuMDA2MzI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQwNTgsIDAuMDA0MTY5LCAwLjAwNDE5MywgMC4wMDQyMDUsIDAuMDA0MjEyLCAwLjAwNDIxMywgMC4wMDQyMTciLCBcCi0gICAgICAgICAgIjAuMDA0MDQsIDAuMDA0MTUsIDAuMDA0MTc4LCAwLjAwNDE5LCAwLjAwNDE5NywgMC4wMDQxOTksIDAuMDA0MjAzIiwgXAotICAgICAgICAgICIwLjAwNDAyNiwgMC4wMDQxNDIsIDAuMDA0MTY4LCAwLjAwNDE3NSwgMC4wMDQxODMsIDAuMDA0MTg2LCAwLjAwNDE5MSIsIFwKLSAgICAgICAgICAiMC4wMDQwMTUsIDAuMDA0MTMsIDAuMDA0MTUzLCAwLjAwNDE2NCwgMC4wMDQxNzEsIDAuMDA0MTc1LCAwLjAwNDE3OSIsIFwKLSAgICAgICAgICAiMC4wMDQwMDcsIDAuMDA0MTE5LCAwLjAwNDE0NywgMC4wMDQxNTcsIDAuMDA0MTY1LCAwLjAwNDE2OCwgMC4wMDQxNzQiLCBcCi0gICAgICAgICAgIjAuMDAzOTk5LCAwLjAwNDExMiwgMC4wMDQxNCwgMC4wMDQxNDgsIDAuMDA0MTU5LCAwLjAwNDE2MiwgMC4wMDQxNjQiLCBcCi0gICAgICAgICAgIjAuMDAzOTkyLCAwLjAwNDEwMywgMC4wMDQxMzIsIDAuMDA0MTQzLCAwLjAwNDE1MiwgMC4wMDQxNTYsIDAuMDA0MTU5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDU5MjYsIDAuMDA2MDY5LCAwLjAwNjA4OCwgMC4wMDYwOTMsIDAuMDA2MDk4LCAwLjAwNjEwMSwgMC4wMDYxMDMiLCBcCi0gICAgICAgICAgIjAuMDA1OTEzLCAwLjAwNjA1OSwgMC4wMDYwNzgsIDAuMDA2MDgzLCAwLjAwNjA4OCwgMC4wMDYwOTEsIDAuMDA2MDkzIiwgXAotICAgICAgICAgICIwLjAwNTg5NSwgMC4wMDYwNDYsIDAuMDA2MDY3LCAwLjAwNjA3NCwgMC4wMDYwOCwgMC4wMDYwODMsIDAuMDA2MDg1IiwgXAotICAgICAgICAgICIwLjAwNTg4MSwgMC4wMDYwMzUsIDAuMDA2MDU5LCAwLjAwNjA2NiwgMC4wMDYwNzMsIDAuMDA2MDc2LCAwLjAwNjA3OSIsIFwKLSAgICAgICAgICAiMC4wMDU4NTksIDAuMDA2MDIsIDAuMDA2MDQ4LCAwLjAwNjA1NywgMC4wMDYwNjUsIDAuMDA2MDY5LCAwLjAwNjA3MyIsIFwKLSAgICAgICAgICAiMC4wMDU4MzQsIDAuMDA2MDAyLCAwLjAwNjAzNSwgMC4wMDYwNDYsIDAuMDA2MDU2LCAwLjAwNjA2MSwgMC4wMDYwNjUiLCBcCi0gICAgICAgICAgIjAuMDA1ODIsIDAuMDA1OTksIDAuMDA2MDI2LCAwLjAwNjAzOSwgMC4wMDYwNSwgMC4wMDYwNTYsIDAuMDA2MDYxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQwNTksIDAuMDA0MTcyLCAwLjAwNDE5NywgMC4wMDQyMDksIDAuMDA0MjE3LCAwLjAwNDIyNCwgMC4wMDQyMjYiLCBcCi0gICAgICAgICAgIjAuMDA0MDQyLCAwLjAwNDE1NywgMC4wMDQxODQsIDAuMDA0MTksIDAuMDA0MTk5LCAwLjAwNDIwMywgMC4wMDQyMDgiLCBcCi0gICAgICAgICAgIjAuMDA0MDQxLCAwLjAwNDE0NCwgMC4wMDQxNzEsIDAuMDA0MTc4LCAwLjAwNDE4OCwgMC4wMDQxOTMsIDAuMDA0MTk1IiwgXAotICAgICAgICAgICIwLjAwNDAyNiwgMC4wMDQxMzMsIDAuMDA0MTU4LCAwLjAwNDE3LCAwLjAwNDE3OCwgMC4wMDQxNzksIDAuMDA0MTg1IiwgXAotICAgICAgICAgICIwLjAwNDAwOCwgMC4wMDQxMTksIDAuMDA0MTUsIDAuMDA0MTU3LCAwLjAwNDE2OSwgMC4wMDQxNzIsIDAuMDA0MTc4IiwgXAotICAgICAgICAgICIwLjAwMzk5OSwgMC4wMDQxMTEsIDAuMDA0MTQyLCAwLjAwNDE1MiwgMC4wMDQxNjIsIDAuMDA0MTY3LCAwLjAwNDE3MSIsIFwKLSAgICAgICAgICAiMC4wMDM5OTEsIDAuMDA0MTAzLCAwLjAwNDEzNCwgMC4wMDQxNDgsIDAuMDA0MTU2LCAwLjAwNDE2MSwgMC4wMDQxNjYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNTYxNiwgMC4wMDU3NTUsIDAuMDA1NzcyLCAwLjAwNTc3NywgMC4wMDU3ODIsIDAuMDA1Nzg0LCAwLjAwNTc4NiIsIFwKLSAgICAgICAgICAiMC4wMDU2MSwgMC4wMDU3NTMsIDAuMDA1NzcsIDAuMDA1Nzc1LCAwLjAwNTc4LCAwLjAwNTc4MiwgMC4wMDU3ODUiLCBcCi0gICAgICAgICAgIjAuMDA1NTksIDAuMDA1NzQxLCAwLjAwNTc2MSwgMC4wMDU3NjcsIDAuMDA1NzcyLCAwLjAwNTc3NSwgMC4wMDU3NzciLCBcCi0gICAgICAgICAgIjAuMDA1NTcsIDAuMDA1NzI1LCAwLjAwNTc0OSwgMC4wMDU3NTcsIDAuMDA1NzYzLCAwLjAwNTc2NywgMC4wMDU3NyIsIFwKLSAgICAgICAgICAiMC4wMDU1NDksIDAuMDA1NzExLCAwLjAwNTczOSwgMC4wMDU3NDgsIDAuMDA1NzU1LCAwLjAwNTc1OSwgMC4wMDU3NjMiLCBcCi0gICAgICAgICAgIjAuMDA1NTI2LCAwLjAwNTY5MywgMC4wMDU3MjYsIDAuMDA1NzM2LCAwLjAwNTc0NiwgMC4wMDU3NTEsIDAuMDA1NzU1IiwgXAotICAgICAgICAgICIwLjAwNTUwOSwgMC4wMDU2NzksIDAuMDA1NzE1LCAwLjAwNTcyNywgMC4wMDU3MzksIDAuMDA1NzQ0LCAwLjAwNTc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQwNjEsIDAuMDA0MTcyLCAwLjAwNDIsIDAuMDA0MjEzLCAwLjAwNDIyMywgMC4wMDQyMjYsIDAuMDA0MjMxIiwgXAotICAgICAgICAgICIwLjAwNDAzOCwgMC4wMDQxNTEsIDAuMDA0MTgxLCAwLjAwNDE5MiwgMC4wMDQyMDEsIDAuMDA0MjA2LCAwLjAwNDIxIiwgXAotICAgICAgICAgICIwLjAwNDAxOCwgMC4wMDQxMzIsIDAuMDA0MTY1LCAwLjAwNDE3NywgMC4wMDQxODYsIDAuMDA0MTksIDAuMDA0MTk0IiwgXAotICAgICAgICAgICIwLjAwNDAwNywgMC4wMDQxMjEsIDAuMDA0MTUyLCAwLjAwNDE2MywgMC4wMDQxNzMsIDAuMDA0MTc4LCAwLjAwNDE4MyIsIFwKLSAgICAgICAgICAiMC4wMDM5OTksIDAuMDA0MTExLCAwLjAwNDE0MywgMC4wMDQxNTMsIDAuMDA0MTY2LCAwLjAwNDE3LCAwLjAwNDE3NyIsIFwKLSAgICAgICAgICAiMC4wMDM5ODksIDAuMDA0MTAzLCAwLjAwNDEzNiwgMC4wMDQxNDUsIDAuMDA0MTU3LCAwLjAwNDE2MiwgMC4wMDQxNyIsIFwKLSAgICAgICAgICAiMC4wMDM5ODYsIDAuMDA0MDk4LCAwLjAwNDEyOSwgMC4wMDQxNCwgMC4wMDQxNTQsIDAuMDA0MTYsIDAuMDA0MTY1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDUyOTMsIDAuMDA1NDI4LCAwLjAwNTQ0MywgMC4wMDU0NDgsIDAuMDA1NDUyLCAwLjAwNTQ1NCwgMC4wMDU0NTYiLCBcCi0gICAgICAgICAgIjAuMDA1MjksIDAuMDA1NDI3LCAwLjAwNTQ0MywgMC4wMDU0NDgsIDAuMDA1NDUyLCAwLjAwNTQ1NSwgMC4wMDU0NTciLCBcCi0gICAgICAgICAgIjAuMDA1MjY2LCAwLjAwNTQxMywgMC4wMDU0MzIsIDAuMDA1NDM4LCAwLjAwNTQ0MywgMC4wMDU0NDYsIDAuMDA1NDQ4IiwgXAotICAgICAgICAgICIwLjAwNTI0OCwgMC4wMDU0LCAwLjAwNTQyMiwgMC4wMDU0MjksIDAuMDA1NDM1LCAwLjAwNTQzOCwgMC4wMDU0NCIsIFwKLSAgICAgICAgICAiMC4wMDUyMTksIDAuMDA1MzgxLCAwLjAwNTQwOSwgMC4wMDU0MTcsIDAuMDA1NDI1LCAwLjAwNTQyOCwgMC4wMDU0MzIiLCBcCi0gICAgICAgICAgIjAuMDA1MjAyLCAwLjAwNTM2NSwgMC4wMDUzOTYsIDAuMDA1NDA2LCAwLjAwNTQxNSwgMC4wMDU0MiwgMC4wMDU0MjQiLCBcCi0gICAgICAgICAgIjAuMDA1MTg1LCAwLjAwNTM0OSwgMC4wMDUzODQsIDAuMDA1Mzk2LCAwLjAwNTQwNiwgMC4wMDU0MTEsIDAuMDA1NDE2Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBBTkQ0WDggKgotICogLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChBTkQ0WDgpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC40NTg1NDI7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTk5NDU7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxOTk0NTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE5ODc5MzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA2MTIsIDAuMDAwNjEyLCAwLjAwMDYxMiwgMC4wMDA2MTEsIDAuMDAwNjExLCAwLjAwMDYxMSwgMC4wMDA2MTEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA2MTMsIDAuMDAwNjE0LCAwLjAwMDYxNCwgMC4wMDA2MTQsIDAuMDAwNjE0LCAwLjAwMDYxNCwgMC4wMDA2MTQiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTgwNjQ4OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTgwNjQ4OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTgwMTAyOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDYxMiwgMC4wMDA2MTIsIDAuMDAwNjExLCAwLjAwMDYxMSwgMC4wMDA2MTEsIDAuMDAwNjExLCAwLjAwMDYxMSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDYxMywgMC4wMDA2MTQsIDAuMDAwNjEzLCAwLjAwMDYxNCwgMC4wMDA2MTQsIDAuMDAwNjE0LCAwLjAwMDYxNCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQykgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNjI1MDU7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNjI1MDU7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNjIwODI7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNjEyLCAwLjAwMDYxMiwgMC4wMDA2MTIsIDAuMDAwNjEyLCAwLjAwMDYxMSwgMC4wMDA2MTEsIDAuMDAwNjExIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNjEzLCAwLjAwMDYxNCwgMC4wMDA2MTMsIDAuMDAwNjE0LCAwLjAwMDYxNCwgMC4wMDA2MTQsIDAuMDAwNjE0Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihEKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE1MDEyODsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE0OTk4NjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE1MDEyODsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyODEsIDAuMDAwMjgxLCAwLjAwMDI4LCAwLjAwMDI4LCAwLjAwMDI4LCAwLjAwMDI4LCAwLjAwMDI4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNjk1LCAwLjAwMDY5NSwgMC4wMDA2OTUsIDAuMDAwNjk2LCAwLjAwMDY5NiwgMC4wMDA2OTYsIDAuMDAwNjk2Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDEuMDIwNDM7Ci0gICAgZnVuY3Rpb24gOiAiKCgoQSBCKSBDKSBEKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yNjI2LCAwLjM2MzM4NiwgMC40MzU0OTgsIDAuNDgzNzA5LCAwLjU1NzgzNywgMC42MjE5NDQsIDAuNzEzMDQ1IiwgXAotICAgICAgICAgICIwLjI3MzI1NCwgMC4zNzM0MiwgMC40NDU3MiwgMC40OTQwNDEsIDAuNTY4MTc0LCAwLjYzMjI5LCAwLjcyMzQwOSIsIFwKLSAgICAgICAgICAiMC4yODU1NCwgMC4zODY2NDgsIDAuNDU4NjQxLCAwLjUwNjY1LCAwLjU4MDk4MSwgMC42NDUxMDgsIDAuNzM2MjM0IiwgXAotICAgICAgICAgICIwLjI5NzU0OCwgMC4zOTc2OTEsIDAuNDY5OTYxLCAwLjUxODAyMiwgMC41OTI0MzcsIDAuNjU2NTI3LCAwLjc0NzY5MSIsIFwKLSAgICAgICAgICAiMC4zMDg1MDYsIDAuNDA5NTE4LCAwLjQ4MTI2NiwgMC41MjkxODcsIDAuNjAzNTUzLCAwLjY2NzYzOSwgMC43NTg3NDciLCBcCi0gICAgICAgICAgIjAuMzI2Mjk4LCAwLjQyNzA3LCAwLjQ5ODc2NiwgMC41NDY3NzgsIDAuNjIwOTczLCAwLjY4NTA2LCAwLjc3NjE5MSIsIFwKLSAgICAgICAgICAiMC4zNDA5MDQsIDAuNDQxOTk3LCAwLjUxNDM5LCAwLjU2MjI4OSwgMC42MzY1MjcsIDAuNzAwNjgzLCAwLjc5MTc2OCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4ODAwMiwgMC4yMTM2ODcsIDAuMzMzNTIxLCAwLjQyMDE3MSwgMC41NjA5MTUsIDAuNjg1ODM4LCAwLjg2Njc4OCIsIFwKLSAgICAgICAgICAiMC4wODc3NiwgMC4yMTU1NjEsIDAuMzM0MjM4LCAwLjQyMDY2NSwgMC41NjEyODksIDAuNjg2MTMsIDAuODY1NDI0IiwgXAotICAgICAgICAgICIwLjA4NzkwOCwgMC4yMTM2MTEsIDAuMzMzNjI2LCAwLjQxOTk0NCwgMC41NjA4OTksIDAuNjg1NTIxLCAwLjg2Njc0NyIsIFwKLSAgICAgICAgICAiMC4wODc2NzQsIDAuMjE1MjA4LCAwLjMzNDAzOCwgMC40MjAzNzksIDAuNTYxMjA3LCAwLjY4NTY4OSwgMC44NjY3ODMiLCBcCi0gICAgICAgICAgIjAuMDg4NjE1LCAwLjIxMzk3OSwgMC4zMzQwMDUsIDAuNDIwNTA3LCAwLjU2MTE1MiwgMC42ODU4NTksIDAuODY2NjgyIiwgXAotICAgICAgICAgICIwLjA4NzU3MywgMC4yMTM5MzQsIDAuMzMzOTc1LCAwLjQyMDQ1MywgMC41NjA5MTMsIDAuNjg2MDgyLCAwLjg2NTk2NCIsIFwKLSAgICAgICAgICAiMC4wODg1NTQsIDAuMjEzOTU1LCAwLjMzMzM0MiwgMC40MTk4NjMsIDAuNTYwNjU0LCAwLjY4NTc3NiwgMC44NjY2OTYiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODY4MjUsIDAuMTY3MDk1LCAwLjI0MjE3MywgMC4yOTU1NywgMC4zODA4NywgMC40NTU0NjEsIDAuNTYxOTI3IiwgXAotICAgICAgICAgICIwLjA5ODMyNCwgMC4xNzg1NCwgMC4yNTM1OTksIDAuMzA2OTk0LCAwLjM5MjMyNCwgMC40NjY4NzgsIDAuNTczMzM5IiwgXAotICAgICAgICAgICIwLjExMzE1OCwgMC4xOTM0MTgsIDAuMjY4NTAzLCAwLjMyMTkxMywgMC40MDcyMTcsIDAuNDgxNzc5LCAwLjU4ODI0IiwgXAotICAgICAgICAgICIwLjEyNzkzMSwgMC4yMDgxNTIsIDAuMjgzMjMzLCAwLjMzNjY1NywgMC40MjE5NjUsIDAuNDk2NTI3LCAwLjYwMjk5MiIsIFwKLSAgICAgICAgICAiMC4xNDI4ODQsIDAuMjIzMTQ4LCAwLjI5ODI1MSwgMC4zNTE2MzYsIDAuNDM2OTcyLCAwLjUxMTUzNCwgMC42MTgwMDMiLCBcCi0gICAgICAgICAgIjAuMTY2MzU1LCAwLjI0NjU1NiwgMC4zMjE2NDcsIDAuMzc1MDYzLCAwLjQ2MDQsIDAuNTM0OTY5LCAwLjY0MTQzOCIsIFwKLSAgICAgICAgICAiMC4xODYyNDcsIDAuMjY2NTg1LCAwLjM0MTY1MSwgMC4zOTUwNjEsIDAuNDgwNDA4LCAwLjU1NDk3NCwgMC42NjE0NDIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDYyNzcsIDAuMTg4NDIsIDAuMzM1MTg1LCAwLjQ0MDQ3MywgMC42MDg4MjUsIDAuNzU3MjQsIDAuOTcwMTM3IiwgXAotICAgICAgICAgICIwLjA0NjE3NiwgMC4xODg0MTYsIDAuMzM0OTQzLCAwLjQ0MDA3MSwgMC42MDkyMDgsIDAuNzU3MzYyLCAwLjk2OTI3MiIsIFwKLSAgICAgICAgICAiMC4wNDYyOCwgMC4xODgzMzEsIDAuMzM0MzcxLCAwLjQzOTcyNSwgMC42MDkyNDUsIDAuNzU3MzcyLCAwLjk2OTQyMSIsIFwKLSAgICAgICAgICAiMC4wNDYxMjQsIDAuMTg4MjkzLCAwLjMzNDM4LCAwLjQ0MDEwNiwgMC42MDkyMjMsIDAuNzU3MzgxLCAwLjk2OTQiLCBcCi0gICAgICAgICAgIjAuMDQ2MDM3LCAwLjE4ODQyNiwgMC4zMzUyMTUsIDAuNDM5ODc0LCAwLjYwOTI0OCwgMC43NTczOTcsIDAuOTY5Mzc4IiwgXAotICAgICAgICAgICIwLjA0NzAwMywgMC4xODg2MSwgMC4zMzQ5MTgsIDAuNDQwMzQ0LCAwLjYwOTMzMSwgMC43NTc0ODYsIDAuOTY5NTI5IiwgXAotICAgICAgICAgICIwLjA0NzYxMiwgMC4xODg1NzIsIDAuMzM0OTA1LCAwLjQ0MDAwNCwgMC42MDkzMTgsIDAuNzU3NDYxLCAwLjk2OTQ5OCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI1ODIyNCwgMC4zNTgyNjksIDAuNDMwNTY3LCAwLjQ3ODg4MywgMC41NTMwMjgsIDAuNjE3MTQyLCAwLjcwODI2MSIsIFwKLSAgICAgICAgICAiMC4yNjc4OTQsIDAuMzY4OTU4LCAwLjQ0MTIyNiwgMC40ODkxOTQsIDAuNTYzMzk2LCAwLjYyNzQ3NCwgMC43MTg2IiwgXAotICAgICAgICAgICIwLjI4MDMzLCAwLjM4MDQ0LCAwLjQ1MjcxMywgMC41MDA4NTMsIDAuNTc1MTc3LCAwLjYzOTIzMywgMC43MzA0MDgiLCBcCi0gICAgICAgICAgIjAuMjkxODU5LCAwLjM5Mjg1OCwgMC40NjUxMTgsIDAuNTEyODU0LCAwLjU4NzE5OSwgMC42NTEzMTQsIDAuNzQyNDQ0IiwgXAotICAgICAgICAgICIwLjMwMzE3NywgMC40MDQxNDgsIDAuNDc1OTE2LCAwLjUyMzkyOSwgMC41OTgwOTcsIDAuNjYyMzA0LCAwLjc1MzQ0MSIsIFwKLSAgICAgICAgICAiMC4zMjE3NjEsIDAuNDIyMSwgMC40OTQ0MzUsIDAuNTQyMzUxLCAwLjYxNjYxNywgMC42ODA3OTIsIDAuNzcxOTEzIiwgXAotICAgICAgICAgICIwLjMzNzI5NSwgMC40Mzc4MTEsIDAuNTA5OTkzLCAwLjU1NzkxNywgMC42MzI0MSwgMC42OTY0OTUsIDAuNzg3NTk5Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg3Nzc4LCAwLjIxNTY3MSwgMC4zMzQzNDEsIDAuNDIwNzQ3LCAwLjU2MTMyMSwgMC42ODYxNDgsIDAuODY2ODAyIiwgXAotICAgICAgICAgICIwLjA4ODQ0NiwgMC4yMTQxMDksIDAuMzMzNTgzLCAwLjQyMDE2MywgMC41NjA5MTMsIDAuNjg1ODc2LCAwLjg2NTk1MSIsIFwKLSAgICAgICAgICAiMC4wODc3MTQsIDAuMjE1NTIsIDAuMzM0MjE0LCAwLjQyMDM2NCwgMC41NjEyODUsIDAuNjg1ODYsIDAuODY0MTI1IiwgXAotICAgICAgICAgICIwLjA4Nzg3LCAwLjIxMzYsIDAuMzMzNTg3LCAwLjQyMDAzNywgMC41NjA4NzYsIDAuNjg1NDY3LCAwLjg2Njg3MyIsIFwKLSAgICAgICAgICAiMC4wODg2MSwgMC4yMTM5MTUsIDAuMzMzODU3LCAwLjQyMDI5OCwgMC41NjEwNjIsIDAuNjg1NzkxLCAwLjg2NjU1MyIsIFwKLSAgICAgICAgICAiMC4wODc3MjgsIDAuMjE0MTU2LCAwLjMzMzM0MywgMC40MjAwMDYsIDAuNTYwNzUsIDAuNjg1NTIxLCAwLjg2Njc1NyIsIFwKLSAgICAgICAgICAiMC4wODg0MzEsIDAuMjE0MDg1LCAwLjMzMzI3MywgMC40MTk4NDcsIDAuNTYwNzUxLCAwLjY4NTc2NCwgMC44NjY3MTIiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODUzNDgsIDAuMTY1MjQ0LCAwLjI0MDE2NywgMC4yOTM1MDIsIDAuMzc4NzQ0LCAwLjQ1MzI1NywgMC41NTk2OCIsIFwKLSAgICAgICAgICAiMC4wOTY4NjksIDAuMTc2NzY0LCAwLjI1MTY4OCwgMC4zMDUwMjksIDAuMzkwMjU4LCAwLjQ2NDgyLCAwLjU3MTI1NSIsIFwKLSAgICAgICAgICAiMC4xMTE4MDksIDAuMTkxNjgyLCAwLjI2NjYsIDAuMzE5OTM0LCAwLjQwNTE5NSwgMC40Nzk3MDQsIDAuNTg2MTE2IiwgXAotICAgICAgICAgICIwLjEyNjgxOSwgMC4yMDY2ODgsIDAuMjgxNjMzLCAwLjMzNDk5MSwgMC40MjAyMTksIDAuNDk0NzQxLCAwLjYwMTE4MSIsIFwKLSAgICAgICAgICAiMC4xNDE0NjQsIDAuMjIxMjUxLCAwLjI5NjIxMiwgMC4zNDk1NTgsIDAuNDM0ODAzLCAwLjUwOTMyMiwgMC42MTU3NCIsIFwKLSAgICAgICAgICAiMC4xNjQ2MTQsIDAuMjQ0NTQ0LCAwLjMxOTUwNCwgMC4zNzI4NTksIDAuNDU4MTI2LCAwLjUzMjY1MSwgMC42MzkwNzEiLCBcCi0gICAgICAgICAgIjAuMTg0MTA5LCAwLjI2NDI2NywgMC4zMzkyMDQsIDAuMzkyNTU4LCAwLjQ3Nzg0NCwgMC41NTIzNjcsIDAuNjU4Nzg2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQ1ODEyLCAwLjE4NzgyNywgMC4zMzM2NywgMC40NDAxNCwgMC42MDg3OTEsIDAuNzU3NTQ3LCAwLjk2ODcwNiIsIFwKLSAgICAgICAgICAiMC4wNDU3OTYsIDAuMTg3ODg0LCAwLjMzMzc3NSwgMC40NDAwODYsIDAuNjA5MDE0LCAwLjc1Njk2OSwgMC45Njg4MzMiLCBcCi0gICAgICAgICAgIjAuMDQ1ODIzLCAwLjE4Nzg2NiwgMC4zMzQwMSwgMC40MzkxMzQsIDAuNjA4OTcsIDAuNzU3MTc4LCAwLjk2OTM1NCIsIFwKLSAgICAgICAgICAiMC4wNDU3MzEsIDAuMTg3NzUsIDAuMzM0MDMyLCAwLjQ0MDA5OSwgMC42MDkwMiwgMC43NTcyOTQsIDAuOTY5MTUyIiwgXAotICAgICAgICAgICIwLjA0NTgwMiwgMC4xODc5MiwgMC4zMzM2ODIsIDAuNDM5NjEzLCAwLjYwOTAxMiwgMC43NTcyNjgsIDAuOTY5NDYyIiwgXAotICAgICAgICAgICIwLjA0NjYyMiwgMC4xODc5NTYsIDAuMzM0NDQ4LCAwLjQzOTgxNSwgMC42MDkwOTQsIDAuNzU3MzQ4LCAwLjk2OTU5OSIsIFwKLSAgICAgICAgICAiMC4wNDc2MTgsIDAuMTg4MTIzLCAwLjMzNDExNCwgMC40MzkwNzYsIDAuNjA5MTk3LCAwLjc1NzI0NCwgMC45Njk2NDEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yNDc3NjcsIDAuMzQ4MTYxLCAwLjQyMDI5LCAwLjQ2ODQxNCwgMC41NDI3NjcsIDAuNjA2ODY5LCAwLjY5ODAzNiIsIFwKLSAgICAgICAgICAiMC4yNTcxOTQsIDAuMzU4MTIyLCAwLjQzMDMyMywgMC40NzgwOTcsIDAuNTUyNDQyLCAwLjYxNjU1MSwgMC43MDc3MDkiLCBcCi0gICAgICAgICAgIjAuMjY4ODEzLCAwLjM2OTExOCwgMC40NDE1OSwgMC40ODk0NzQsIDAuNTYzODA4LCAwLjYyNzg2OCwgMC43MTkwMzgiLCBcCi0gICAgICAgICAgIjAuMjgwNTk2LCAwLjM4MTUzLCAwLjQ1Mzc5NywgMC41MDA5NDUsIDAuNTc1MzY2LCAwLjYzOTQ2NSwgMC43MzA1NzEiLCBcCi0gICAgICAgICAgIjAuMjkyNTAzLCAwLjM5MzQ5LCAwLjQ2NTc3NywgMC41MTI4NiwgMC41ODcwNDQsIDAuNjUxMTYyLCAwLjc0MjI5OCIsIFwKLSAgICAgICAgICAiMC4zMTE2NzYsIDAuNDEyNDcxLCAwLjQ4NDc0MiwgMC41MzI3NjEsIDAuNjA2OTU1LCAwLjY3MTE2OCwgMC43NjIzMTMiLCBcCi0gICAgICAgICAgIjAuMzI4ODM1LCAwLjQyOTgyMywgMC41MDE5OTgsIDAuNTQ5OTc5LCAwLjYyNDMzNiwgMC42ODg0NTYsIDAuNzc5NjA2Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg3NzUzLCAwLjIxNDQ0LCAwLjMzNDI1LCAwLjQyMDUzLCAwLjU2MTI5NCwgMC42ODU3MzMsIDAuODY2NzczIiwgXAotICAgICAgICAgICIwLjA4NzkwNywgMC4yMTM2NDMsIDAuMzMzNjI1LCAwLjQxOTk5MywgMC41NjA5NDQsIDAuNjg1NTQ0LCAwLjg2NjYyOCIsIFwKLSAgICAgICAgICAiMC4wODc3ODEsIDAuMjE0NzcsIDAuMzM0NDUsIDAuNDIwNTY5LCAwLjU2MTMzMiwgMC42ODU4OTcsIDAuODY0OTM0IiwgXAotICAgICAgICAgICIwLjA4ODMxNCwgMC4yMTQwMzcsIDAuMzMzNTU2LCAwLjQyMDcwMSwgMC41NjEzMTYsIDAuNjg1OTk3LCAwLjg2Njc3OCIsIFwKLSAgICAgICAgICAiMC4wODgwMTQsIDAuMjEzNTg0LCAwLjMzMzUwNSwgMC40MjA4MDYsIDAuNTYxMDc0LCAwLjY4NjI2MSwgMC44NjY3OSIsIFwKLSAgICAgICAgICAiMC4wODc5MjEsIDAuMjE0MjM0LCAwLjMzMzM3NywgMC40MTk4NzcsIDAuNTYwNzY2LCAwLjY4NTU1NywgMC44NjY1MSIsIFwKLSAgICAgICAgICAiMC4wODc4NTUsIDAuMjEzODQ1LCAwLjMzMzIyMywgMC40MTk3NTYsIDAuNTYwNzE1LCAwLjY4NTQyNywgMC44NjY1NTgiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODI4MjUsIDAuMTYyMjY5LCAwLjIzNzA1OSwgMC4yOTAzMjUsIDAuMzc1NTAzLCAwLjQ0OTk4NCwgMC41NTY0MDEiLCBcCi0gICAgICAgICAgIjAuMDk0NDYsIDAuMTczOTkzLCAwLjI0ODc4MSwgMC4zMDIwNjMsIDAuMzg3MjQzLCAwLjQ2MTcxMiwgMC41NjgwODkiLCBcCi0gICAgICAgICAgIjAuMTA5MzgzLCAwLjE4ODkzMiwgMC4yNjM3MTEsIDAuMzE2OTk2LCAwLjQwMjE3OCwgMC40NzY2NDksIDAuNTgzMDExIiwgXAotICAgICAgICAgICIwLjEyMzk3MywgMC4yMDM1MjEsIDAuMjc4MzA4LCAwLjMzMTYwNywgMC40MTY3NjYsIDAuNDkxMjcyLCAwLjU5NzY0MSIsIFwKLSAgICAgICAgICAiMC4xMzg4MDUsIDAuMjE4NDI4LCAwLjI5MzI1MywgMC4zNDY1NDMsIDAuNDMxNzQ1LCAwLjUwNjIyMywgMC42MTI1OTMiLCBcCi0gICAgICAgICAgIjAuMTYxOTMyLCAwLjI0MTU3OSwgMC4zMTY0MDksIDAuMzY5NzA1LCAwLjQ1NDkyLCAwLjUyOTQwMiwgMC42MzU3NzYiLCBcCi0gICAgICAgICAgIjAuMTgxMTE4LCAwLjI2MDk1NCwgMC4zMzU3NTYsIDAuMzg5MDQ5LCAwLjQ3NDI1MSwgMC41NDg3ODIsIDAuNjU1MTczIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQ1MjQ0LCAwLjE4NzI3OCwgMC4zMzQxNTUsIDAuNDM5ODEsIDAuNjA4MTcyLCAwLjc1NzMxNywgMC45Njg4OSIsIFwKLSAgICAgICAgICAiMC4wNDUzNzgsIDAuMTg3MjY4LCAwLjMzNDA3NywgMC40Mzg2NzcsIDAuNjA3NjMzLCAwLjc1NjI4LCAwLjk2Nzc5NCIsIFwKLSAgICAgICAgICAiMC4wNDUzMzgsIDAuMTg3MTk0LCAwLjMzMzQ2NywgMC40MzkyMDYsIDAuNjA4ODM5LCAwLjc1NzIyNCwgMC45Njk3MTIiLCBcCi0gICAgICAgICAgIjAuMDQ1Mjk0LCAwLjE4NzI3LCAwLjMzNDA5LCAwLjQzOTE2NCwgMC42MDkxMTUsIDAuNzU3MjEsIDAuOTY5NjM1IiwgXAotICAgICAgICAgICIwLjA0NTQxMSwgMC4xODcxNzksIDAuMzMzMzI5LCAwLjQzODYxOSwgMC42MDg4MjgsIDAuNzU3MjM2LCAwLjk2OTY4MSIsIFwKLSAgICAgICAgICAiMC4wNDYxMjMsIDAuMTg3NjM1LCAwLjMzMzQ2NywgMC40Mzg2OTEsIDAuNjA4ODY2LCAwLjc1NzIyOCwgMC45Njk2MTciLCBcCi0gICAgICAgICAgIjAuMDQ3NjYzLCAwLjE4Nzc3OSwgMC4zMzQzNjYsIDAuNDM5MDcxLCAwLjYwNzk0MiwgMC43NTcwNTEsIDAuOTY5MjA4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkQiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjMxNjk5LCAwLjMzMTc3OSwgMC40MDQwNTgsIDAuNDUyMTMxLCAwLjUyNjUzLCAwLjU5MDYwNiwgMC42ODE3OTgiLCBcCi0gICAgICAgICAgIjAuMjQwMDAxLCAwLjM0MDY4NiwgMC40MTI3ODUsIDAuNDYwNjk0LCAwLjUzNTEwNiwgMC41OTkxNzcsIDAuNjkwMzM0IiwgXAotICAgICAgICAgICIwLjI1MDg3OSwgMC4zNTE3NTIsIDAuNDIzNjM1LCAwLjQ3MTY2NiwgMC41NDU4NTEsIDAuNjEwMDU2LCAwLjcwMTIiLCBcCi0gICAgICAgICAgIjAuMjYyMTg1LCAwLjM2MjcwOCwgMC40MzQzNzUsIDAuNDgyMzA1LCAwLjU1Njc4NSwgMC42MjA4OTMsIDAuNzEyMDA2IiwgXAotICAgICAgICAgICIwLjI3NDA2MiwgMC4zNzUxNDksIDAuNDQ2NjI5LCAwLjQ5NDU3NSwgMC41NjkwNSwgMC42MzMxNjEsIDAuNzI0MjcyIiwgXAotICAgICAgICAgICIwLjI5MjAxMSwgMC4zOTI2NjUsIDAuNDY0ODY2LCAwLjUxMjgzOSwgMC41ODczMDQsIDAuNjUxNDEzLCAwLjc0MjUyMSIsIFwKLSAgICAgICAgICAiMC4zMDg5MiwgMC40MDk4MDMsIDAuNDgyMTIsIDAuNTMwMDUzLCAwLjYwNDQ1OCwgMC42Njg1ODYsIDAuNzU5NzM4Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg3ODI5LCAwLjIxNTI4NywgMC4zMzQwODYsIDAuNDIwMzU2LCAwLjU2MTE5NiwgMC42ODU3ODMsIDAuODY2Njc4IiwgXAotICAgICAgICAgICIwLjA4NzczNCwgMC4yMTM5ODMsIDAuMzMzNTUzLCAwLjQyMDE2NiwgMC41NjA5OTUsIDAuNjg1NzQ1LCAwLjg2Njc5MiIsIFwKLSAgICAgICAgICAiMC4wODc3NDQsIDAuMjEzOTA2LCAwLjMzMzU4NywgMC40MjAxMzMsIDAuNTYwOTM2LCAwLjY4NTcxOCwgMC44NjY1MzIiLCBcCi0gICAgICAgICAgIjAuMDg3NTU0LCAwLjIxMzk4OCwgMC4zMzM4MTksIDAuNDIwMzA4LCAwLjU2MTAwMywgMC42ODYwMDksIDAuODY2NzY5IiwgXAotICAgICAgICAgICIwLjA4ODA1MSwgMC4yMTM5MzUsIDAuMzMzNjI5LCAwLjQyMDE3LCAwLjU2MDkxMiwgMC42ODU5MjcsIDAuODY2NzU4IiwgXAotICAgICAgICAgICIwLjA4NzgwMiwgMC4yMTM4MDIsIDAuMzMzMTU4LCAwLjQxOTczOCwgMC41NjA2ODcsIDAuNjg1NywgMC44NjY2NTIiLCBcCi0gICAgICAgICAgIjAuMDg3NjY0LCAwLjIxMzMxMywgMC4zMzI4NDcsIDAuNDE5NTY5LCAwLjU2MDU1NiwgMC42ODUyNDUsIDAuODY2NTU4Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDgwNTU1LCAwLjE1OTk4OCwgMC4yMzQ2NDUsIDAuMjg3ODYxLCAwLjM3MzAwOSwgMC40NDc0MzcsIDAuNTUzOTgyIiwgXAotICAgICAgICAgICIwLjA5MjIzNiwgMC4xNzE1NjIsIDAuMjQ2MjMzLCAwLjI5OTQ1NCwgMC4zODQ1NzgsIDAuNDU5MDQsIDAuNTY1NjAyIiwgXAotICAgICAgICAgICIwLjEwNzA2LCAwLjE4NjQzNSwgMC4yNjExNDQsIDAuMzE0MzgzLCAwLjM5OTQ5NywgMC40NzM5NiwgMC41ODA0NDciLCBcCi0gICAgICAgICAgIjAuMTIxOTc1LCAwLjIwMTM5OCwgMC4yNzYwOTEsIDAuMzI5MzMsIDAuNDE0NDc3LCAwLjQ4ODkxOCwgMC41OTU0NjQiLCBcCi0gICAgICAgICAgIjAuMTM2NjEyLCAwLjIxNTkxNiwgMC4yOTA2NDgsIDAuMzQzOTA0LCAwLjQyOTAzOSwgMC41MDM1MDEsIDAuNjEwMDEyIiwgXAotICAgICAgICAgICIwLjE1OTU2NiwgMC4yMzkwNzQsIDAuMzEzODA2LCAwLjM2NzA1OCwgMC40NTIyMTcsIDAuNTI2NjY4LCAwLjYzMzE5NCIsIFwKLSAgICAgICAgICAiMC4xNzgxOTksIDAuMjU4MTEyLCAwLjMzMjgzOSwgMC4zODYwOTIsIDAuNDcxMjgxLCAwLjU0NTcyNCwgMC42NTIyOTYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDUyOTEsIDAuMTg2OTkyLCAwLjMzNDA0MywgMC40MzgzOTksIDAuNjA5MTQ0LCAwLjc1NzYyOCwgMC45NjgxODEiLCBcCi0gICAgICAgICAgIjAuMDQ1MTMyLCAwLjE4NzE4NCwgMC4zMzMwNTEsIDAuNDM4Nzc4LCAwLjYwOTA5NiwgMC43NTc2MzYsIDAuOTY2NTUyIiwgXAotICAgICAgICAgICIwLjA0NTE3NSwgMC4xODcwMjYsIDAuMzMzMDkxLCAwLjQzOTY4NywgMC42MDkxMjEsIDAuNzU2ODEsIDAuOTY3MzkxIiwgXAotICAgICAgICAgICIwLjA0NTE5NSwgMC4xODY4MDUsIDAuMzMzOTg5LCAwLjQzODM5MywgMC42MDkxMzMsIDAuNzU3NjI0LCAwLjk2ODIyOSIsIFwKLSAgICAgICAgICAiMC4wNDU0NiwgMC4xODcxMjYsIDAuMzMzNjA1LCAwLjQzOTYxMywgMC42MDkxMzcsIDAuNzU2OTcsIDAuOTY3ODI4IiwgXAotICAgICAgICAgICIwLjA0NjIwNywgMC4xODc0NDgsIDAuMzMzNjg5LCAwLjQzODk0MywgMC42MDkxNTQsIDAuNzU3NjM2LCAwLjk2NzY0MSIsIFwKLSAgICAgICAgICAiMC4wNDg0NDEsIDAuMTg3ODE3LCAwLjMzMzYyOSwgMC40MzkwNDksIDAuNjA3Mjg0LCAwLjc1NzY2OCwgMC45NjgwNTQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwODE2NywgMC4wMDgzNDgsIDAuMDA4NDIyLCAwLjAwODQ0NywgMC4wMDg0NzcsIDAuMDA4NDksIDAuMDA4NTA0IiwgXAotICAgICAgICAgICIwLjAwODA5OSwgMC4wMDgyOTcsIDAuMDA4Mzc5LCAwLjAwODQwOCwgMC4wMDg0MzcsIDAuMDA4NDUyLCAwLjAwODQ2NiIsIFwKLSAgICAgICAgICAiMC4wMDgwODQsIDAuMDA4MjgyLCAwLjAwODM1OCwgMC4wMDgzODQsIDAuMDA4NDEsIDAuMDA4NDI0LCAwLjAwODQ0MiIsIFwKLSAgICAgICAgICAiMC4wMDgwNSwgMC4wMDgyNTIsIDAuMDA4MzMyLCAwLjAwODM2MiwgMC4wMDgzODgsIDAuMDA4NDA2LCAwLjAwODQxNCIsIFwKLSAgICAgICAgICAiMC4wMDgwNTgsIDAuMDA4MjQzLCAwLjAwODMxOSwgMC4wMDgzNDQsIDAuMDA4Mzc3LCAwLjAwODM4NiwgMC4wMDg0MDYiLCBcCi0gICAgICAgICAgIjAuMDA4MDI0LCAwLjAwODIyMiwgMC4wMDgyOTQsIDAuMDA4MzI5LCAwLjAwODM1NywgMC4wMDgzNzYsIDAuMDA4Mzg4IiwgXAotICAgICAgICAgICIwLjAwODAwNiwgMC4wMDgyMDcsIDAuMDA4Mjg4LCAwLjAwODMyLCAwLjAwODM0NSwgMC4wMDgzNzEsIDAuMDA4Mzc5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTEzNzIsIDAuMDExNjkyLCAwLjAxMTc0OCwgMC4wMTE3NjYsIDAuMDExNzgzLCAwLjAxMTc5MiwgMC4wMTE3OTkiLCBcCi0gICAgICAgICAgIjAuMDExMzQzLCAwLjAxMTY1OCwgMC4wMTE3MTYsIDAuMDExNzM3LCAwLjAxMTc1NCwgMC4wMTE3NjEsIDAuMDExNzY5IiwgXAotICAgICAgICAgICIwLjAxMTMxMiwgMC4wMTE2MjYsIDAuMDExNjkyLCAwLjAxMTcxNCwgMC4wMTE3MzQsIDAuMDExNzQzLCAwLjAxMTc1MyIsIFwKLSAgICAgICAgICAiMC4wMTEyODcsIDAuMDExNTkzLCAwLjAxMTY2NiwgMC4wMTE2OTEsIDAuMDExNzE1LCAwLjAxMTcyNywgMC4wMTE3MzciLCBcCi0gICAgICAgICAgIjAuMDExMjU3LCAwLjAxMTU2NSwgMC4wMTE2NDMsIDAuMDExNjcyLCAwLjAxMTY5OCwgMC4wMTE3MTEsIDAuMDExNzI0IiwgXAotICAgICAgICAgICIwLjAxMTIyLCAwLjAxMTUyNCwgMC4wMTE2MTEsIDAuMDExNjQ0LCAwLjAxMTY3NSwgMC4wMTE2OTIsIDAuMDExNzA3IiwgXAotICAgICAgICAgICIwLjAxMTIyNSwgMC4wMTE1MDIsIDAuMDExNTkxLCAwLjAxMTYyNywgMC4wMTE2NTksIDAuMDExNjc3LCAwLjAxMTY5NCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA4MTM2LCAwLjAwODMzMywgMC4wMDg0MTEsIDAuMDA4NDQ2LCAwLjAwODQ3MiwgMC4wMDg0ODcsIDAuMDA4NSIsIFwKLSAgICAgICAgICAiMC4wMDgxMzcsIDAuMDA4MzE0LCAwLjAwODM5LCAwLjAwODQxOSwgMC4wMDg0NDgsIDAuMDA4NDYyLCAwLjAwODQ3NSIsIFwKLSAgICAgICAgICAiMC4wMDgwNywgMC4wMDgyNzEsIDAuMDA4MzU0LCAwLjAwODM4NSwgMC4wMDg0MTEsIDAuMDA4NDI4LCAwLjAwODQ0NyIsIFwKLSAgICAgICAgICAiMC4wMDgwNTgsIDAuMDA4MjYsIDAuMDA4MzM1LCAwLjAwODM2OCwgMC4wMDgzOTcsIDAuMDA4NDA5LCAwLjAwODQyNCIsIFwKLSAgICAgICAgICAiMC4wMDgwNTQsIDAuMDA4MjQyLCAwLjAwODMxNywgMC4wMDgzNTIsIDAuMDA4Mzc3LCAwLjAwODM5NiwgMC4wMDg0MTEiLCBcCi0gICAgICAgICAgIjAuMDA4MDE4LCAwLjAwODIxNywgMC4wMDgzLCAwLjAwODMzNCwgMC4wMDgzNiwgMC4wMDgzNzEsIDAuMDA4Mzk0IiwgXAotICAgICAgICAgICIwLjAwODAwNSwgMC4wMDgyMDMsIDAuMDA4Mjg2LCAwLjAwODMxOCwgMC4wMDgzNDcsIDAuMDA4MzY2LCAwLjAwODM4MyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEwODA1LCAwLjAxMTEzNywgMC4wMTExOTUsIDAuMDExMjE1LCAwLjAxMTIzMiwgMC4wMTEyNDEsIDAuMDExMjQ4IiwgXAotICAgICAgICAgICIwLjAxMDc4MSwgMC4wMTExMTQsIDAuMDExMTczLCAwLjAxMTE5MywgMC4wMTEyMSwgMC4wMTEyMTksIDAuMDExMjI4IiwgXAotICAgICAgICAgICIwLjAxMDc1MiwgMC4wMTEwOCwgMC4wMTExNDcsIDAuMDExMTY5LCAwLjAxMTE4OSwgMC4wMTExOTksIDAuMDExMjEiLCBcCi0gICAgICAgICAgIjAuMDEwNzMsIDAuMDExMDQ5LCAwLjAxMTEyMiwgMC4wMTExNDcsIDAuMDExMTcxLCAwLjAxMTE4MiwgMC4wMTExOTMiLCBcCi0gICAgICAgICAgIjAuMDEwNjg0LCAwLjAxMTAwNywgMC4wMTEwOSwgMC4wMTExMTksIDAuMDExMTQ3LCAwLjAxMTE2MiwgMC4wMTExNzYiLCBcCi0gICAgICAgICAgIjAuMDEwNjQzLCAwLjAxMDk2MSwgMC4wMTEwNTQsIDAuMDExMDg5LCAwLjAxMTEyMSwgMC4wMTExMzgsIDAuMDExMTU1IiwgXAotICAgICAgICAgICIwLjAxMDYyMSwgMC4wMTA5MywgMC4wMTEwMjgsIDAuMDExMDY1LCAwLjAxMTEwMiwgMC4wMTExMjIsIDAuMDExMTQxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDgxMzUsIDAuMDA4MzQsIDAuMDA4NDIxLCAwLjAwODQ1MSwgMC4wMDg0NzcsIDAuMDA4NDk3LCAwLjAwODUxMiIsIFwKLSAgICAgICAgICAiMC4wMDgxMiwgMC4wMDgzMTQsIDAuMDA4MzkyLCAwLjAwODQyNiwgMC4wMDg0NTIsIDAuMDA4NDY3LCAwLjAwODQ4MiIsIFwKLSAgICAgICAgICAiMC4wMDgwNywgMC4wMDgyNzQsIDAuMDA4MzU3LCAwLjAwODM5MSwgMC4wMDg0MTksIDAuMDA4NDMzLCAwLjAwODQ1IiwgXAotICAgICAgICAgICIwLjAwODA4MSwgMC4wMDgyNjEsIDAuMDA4MzM4LCAwLjAwODM3MiwgMC4wMDgzOTksIDAuMDA4NDE2LCAwLjAwODQyNCIsIFwKLSAgICAgICAgICAiMC4wMDgwNDQsIDAuMDA4MjQxLCAwLjAwODMyMSwgMC4wMDgzNDksIDAuMDA4MzgsIDAuMDA4NCwgMC4wMDg0MTMiLCBcCi0gICAgICAgICAgIjAuMDA4MDE3LCAwLjAwODIxNiwgMC4wMDgyOTcsIDAuMDA4MzMsIDAuMDA4MzU4LCAwLjAwODM3MywgMC4wMDgzOTEiLCBcCi0gICAgICAgICAgIjAuMDA4MDA2LCAwLjAwODE5NCwgMC4wMDgyODIsIDAuMDA4MzE2LCAwLjAwODM0NywgMC4wMDgzNywgMC4wMDgzODUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMDEzOSwgMC4wMTA0NjIsIDAuMDEwNTE3LCAwLjAxMDUzNSwgMC4wMTA1NSwgMC4wMTA1NTgsIDAuMDEwNTY2IiwgXAotICAgICAgICAgICIwLjAxMDEyMywgMC4wMTA0NTMsIDAuMDEwNTEsIDAuMDEwNTI5LCAwLjAxMDU0NSwgMC4wMTA1NTMsIDAuMDEwNTYxIiwgXAotICAgICAgICAgICIwLjAxMDA5MiwgMC4wMTA0MTksIDAuMDEwNDg1LCAwLjAxMDUwNiwgMC4wMTA1MjUsIDAuMDEwNTM1LCAwLjAxMDU0NCIsIFwKLSAgICAgICAgICAiMC4wMTAwNTYsIDAuMDEwMzc4LCAwLjAxMDQ1MiwgMC4wMTA0NzgsIDAuMDEwNTAxLCAwLjAxMDUxMywgMC4wMTA1MjQiLCBcCi0gICAgICAgICAgIjAuMDEwMDE2LCAwLjAxMDM0MSwgMC4wMTA0MjQsIDAuMDEwNDUzLCAwLjAxMDQ3OSwgMC4wMTA0OTQsIDAuMDEwNTA3IiwgXAotICAgICAgICAgICIwLjAwOTk2NywgMC4wMTAyOTIsIDAuMDEwMzg0LCAwLjAxMDQxOSwgMC4wMTA0NTEsIDAuMDEwNDY4LCAwLjAxMDQ4NSIsIFwKLSAgICAgICAgICAiMC4wMDk5NDEsIDAuMDEwMjU3LCAwLjAxMDM1NSwgMC4wMTAzOTIsIDAuMDEwNDI5LCAwLjAxMDQ0OCwgMC4wMTA0NjciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJEIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwODEzMywgMC4wMDgzMzEsIDAuMDA4NDE3LCAwLjAwODQ1MiwgMC4wMDg0NzgsIDAuMDA4NDk3LCAwLjAwODUxNiIsIFwKLSAgICAgICAgICAiMC4wMDgwOTQsIDAuMDA4Mjk4LCAwLjAwODM3OSwgMC4wMDg0MTgsIDAuMDA4NDUxLCAwLjAwODQ2MiwgMC4wMDg0NzEiLCBcCi0gICAgICAgICAgIjAuMDA4MDU5LCAwLjAwODI2MywgMC4wMDgzNDUsIDAuMDA4Mzc4LCAwLjAwODQwOSwgMC4wMDg0MjYsIDAuMDA4NDQxIiwgXAotICAgICAgICAgICIwLjAwODAzNSwgMC4wMDgyMzgsIDAuMDA4MzEsIDAuMDA4MzUyLCAwLjAwODM4MiwgMC4wMDg0MDEsIDAuMDA4NDE3IiwgXAotICAgICAgICAgICIwLjAwODAxOSwgMC4wMDgyMiwgMC4wMDgzLCAwLjAwODMzNSwgMC4wMDgzNjcsIDAuMDA4Mzg4LCAwLjAwODQwMyIsIFwKLSAgICAgICAgICAiMC4wMDgsIDAuMDA4MTk3LCAwLjAwODI3OSwgMC4wMDgzMTMsIDAuMDA4MzQ0LCAwLjAwODM2NiwgMC4wMDgzODciLCBcCi0gICAgICAgICAgIjAuMDA3OTk2LCAwLjAwODE4NiwgMC4wMDgyNjgsIDAuMDA4MzAxLCAwLjAwODMzMSwgMC4wMDgzNTQsIDAuMDA4MzczIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDk0MjMsIDAuMDA5NzQ2LCAwLjAwOTc5OCwgMC4wMDk4MTUsIDAuMDA5ODI5LCAwLjAwOTgzNywgMC4wMDk4NDMiLCBcCi0gICAgICAgICAgIjAuMDA5NDE5LCAwLjAwOTc0LCAwLjAwOTc5NSwgMC4wMDk4MTIsIDAuMDA5ODI4LCAwLjAwOTgzNiwgMC4wMDk4NDMiLCBcCi0gICAgICAgICAgIjAuMDA5Mzc4LCAwLjAwOTcwNCwgMC4wMDk3NjgsIDAuMDA5Nzg4LCAwLjAwOTgwNywgMC4wMDk4MTYsIDAuMDA5ODI0IiwgXAotICAgICAgICAgICIwLjAwOTM0NiwgMC4wMDk2NjQsIDAuMDA5NzM2LCAwLjAwOTc2LCAwLjAwOTc4MSwgMC4wMDk3OTIsIDAuMDA5ODAyIiwgXAotICAgICAgICAgICIwLjAwOTI5LCAwLjAwOTYxNiwgMC4wMDk3LCAwLjAwOTcyOSwgMC4wMDk3NTYsIDAuMDA5NzcsIDAuMDA5NzgzIiwgXAotICAgICAgICAgICIwLjAwOTI2NCwgMC4wMDk1NzYsIDAuMDA5NjY2LCAwLjAwOTY5OSwgMC4wMDk3MywgMC4wMDk3NDYsIDAuMDA5NzYxIiwgXAotICAgICAgICAgICIwLjAwOTIxNywgMC4wMDk1MywgMC4wMDk2MjksIDAuMDA5NjY3LCAwLjAwOTcwMiwgMC4wMDk3MjIsIDAuMDA5NzQiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IEFORDRYTCAqCi0gKiAtLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKEFORDRYTCkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjA4NDc1ODU7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYwMDQ2OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYwMDQ2OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDU5ODczMTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxNjUsIDAuMDAwMTY1LCAwLjAwMDE2NSwgMC4wMDAxNjUsIDAuMDAwMTY1LCAwLjAwMDE2NSwgMC4wMDAxNjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiwgMC4wMDAxNjYiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYzMzY1OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYzMzY1OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDYzMjIxOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDE2NSwgMC4wMDAxNjUsIDAuMDAwMTY1LCAwLjAwMDE2NSwgMC4wMDAxNjUsIDAuMDAwMTY1LCAwLjAwMDE2NSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQykgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjY4NjM1OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDY2ODYzNTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2NjczMTc7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMTY1LCAwLjAwMDE2NSwgMC4wMDAxNjUsIDAuMDAwMTY1LCAwLjAwMDE2NSwgMC4wMDAxNjUsIDAuMDAwMTY1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMTY2LCAwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY2Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihEKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2MzQ2MDY7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjM0MTcxOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDYzNDYwNjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAwOTIsIDAuMDAwMDkyLCAwLjAwMDA5MiwgMC4wMDAwOTIsIDAuMDAwMDkyLCAwLjAwMDA5MiwgMC4wMDAwOTIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxODgsIDAuMDAwMTg4LCAwLjAwMDE4OCwgMC4wMDAxODgsIDAuMDAwMTg4LCAwLjAwMDE4OSwgMC4wMDAxODgiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4wNzAxOTQ0OwotICAgIGZ1bmN0aW9uIDogIigoKEEgQikgQykgRCkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjM3NDM0MSwgMC40MDA2MDYsIDAuNjI5MTk3LCAxLjAwNzg3LCAxLjM4NjYyLCAyLjI3MDQ4LCAyLjc3NjEyIiwgXAotICAgICAgICAgICIwLjM4NTE2NCwgMC40MTE0MTgsIDAuNjQwMDI1LCAxLjAxODcxLCAxLjM5NzQ3LCAyLjI4MTE3LCAyLjc4NzEzIiwgXAotICAgICAgICAgICIwLjM5ODI2MiwgMC40MjQ2MzMsIDAuNjUzMzI4LCAxLjAzMTk4LCAxLjQxMDc1LCAyLjI5NDQzLCAyLjgwMDEyIiwgXAotICAgICAgICAgICIwLjQxMDUxNSwgMC40MzY2NjIsIDAuNjY1Mzg0LCAxLjA0NDAzLCAxLjQyMjc4LCAyLjMwNjQ3LCAyLjgxMTc0IiwgXAotICAgICAgICAgICIwLjQyMjA4MiwgMC40NDgzMzksIDAuNjc2OTUzLCAxLjA1NTYzLCAxLjQzNDQsIDIuMzE4MjMsIDIuODIzMzYiLCBcCi0gICAgICAgICAgIjAuNDQwODI0LCAwLjQ2NzA1OSwgMC42OTU3MiwgMS4wNzQzOCwgMS40NTMxMiwgMi4zMzY4MSwgMi44NDI3MyIsIFwKLSAgICAgICAgICAiMC40NTY0NTUsIDAuNDgyNzExLCAwLjcxMTQyNywgMS4wOTAxOCwgMS40Njg4OSwgMi4zNTI4NCwgMi44NTg1OCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yOTg4MzUsIDAuMzQ2NzQ3LCAwLjc5MzcwNywgMS41NTgxOCwgMi4zMjcyMiwgNC4xMjIwOCwgNS4xMzcyNiIsIFwKLSAgICAgICAgICAiMC4yOTg4NjEsIDAuMzQ2NzIxLCAwLjc5MzY0LCAxLjU1ODMsIDIuMzI3MjUsIDQuMTIzMzYsIDUuMTM4MDciLCBcCi0gICAgICAgICAgIjAuMjk4NTU2LCAwLjM0NjU1NiwgMC43OTQ3OTQsIDEuNTU2MDMsIDIuMzI3MzIsIDQuMTIzMzcsIDUuMTM3MzciLCBcCi0gICAgICAgICAgIjAuMjk4NDI5LCAwLjM0NjU3MiwgMC43OTQ3NDEsIDEuNTU2MDUsIDIuMzI3MjMsIDQuMTIzMzMsIDUuMTQwOCIsIFwKLSAgICAgICAgICAiMC4yOTg0MiwgMC4zNDY2ODEsIDAuNzkzNzI1LCAxLjU1ODIxLCAyLjMyNzI0LCA0LjEyMzUsIDUuMTQwMDIiLCBcCi0gICAgICAgICAgIjAuMjk3OTY0LCAwLjM0NjI0MiwgMC43OTQ2NTMsIDEuNTU2MDksIDIuMzI3MTcsIDQuMTIzMjQsIDUuMTM2MzIiLCBcCi0gICAgICAgICAgIjAuMjk3NjgxLCAwLjM0NTk2LCAwLjc5MzE0NiwgMS41NTUwMywgMi4zMjI3OSwgNC4xMjA1NiwgNS4xMzkiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjE4OTM1LCAwLjI0ODc0MiwgMC41MTY1MzQsIDAuOTYyMjksIDEuNDA3ODksIDIuNDQ3NDEsIDMuMDQxMzYiLCBcCi0gICAgICAgICAgIjAuMjMwNDU2LCAwLjI2MDI2MSwgMC41MjgwNjQsIDAuOTczODE2LCAxLjQxOTUxLCAyLjQ1OTE4LCAzLjA1MyIsIFwKLSAgICAgICAgICAiMC4yNDUxNDUsIDAuMjc0OTYsIDAuNTQyNzYyLCAwLjk4ODYsIDEuNDM0MTIsIDIuNDczNjQsIDMuMDY3OTEiLCBcCi0gICAgICAgICAgIjAuMjYwMDU1LCAwLjI4OTg5LCAwLjU1NzY5NywgMS4wMDM0NSwgMS40NDkwNywgMi40ODg1OSwgMy4wODI1MyIsIFwKLSAgICAgICAgICAiMC4yNzQ3NDYsIDAuMzA0NTYyLCAwLjU3MjM5MiwgMS4wMTgxNSwgMS40NjM3NCwgMi41MDMzNiwgMy4wOTcyNyIsIFwKLSAgICAgICAgICAiMC4yOTc2MDQsIDAuMzI3NDUsIDAuNTk1MjU5LCAxLjA0MTA2LCAxLjQ4NjYyLCAyLjUyNjQxLCAzLjEyMDEzIiwgXAotICAgICAgICAgICIwLjMxNjA0MiwgMC4zNDU4OTIsIDAuNjEzNzIyLCAxLjA1OTQ5LCAxLjUwNTExLCAyLjU0NDY1LCAzLjEzODU3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMxMzc1NCwgMC4zNzIyMDcsIDAuOTAwODgyLCAxLjc4MzQsIDIuNjY2MTIsIDQuNzIyNTEsIDUuODkzNjIiLCBcCi0gICAgICAgICAgIjAuMzEzODMzLCAwLjM3MjU2NSwgMC45MDEwNywgMS43ODMxNywgMi42NjU4OCwgNC43MTg0MywgNS44OTA4NSIsIFwKLSAgICAgICAgICAiMC4zMTM4MTQsIDAuMzcyMjc4LCAwLjkwMDk2OCwgMS43ODMwNCwgMi42NjYzNywgNC43MjI3NywgNS44OTE1NiIsIFwKLSAgICAgICAgICAiMC4zMTM4MTQsIDAuMzcyMjgxLCAwLjkwMTAyMiwgMS43ODM3MywgMi42NjY0MiwgNC43MjI3MiwgNS44OTM5NyIsIFwKLSAgICAgICAgICAiMC4zMTM4ODgsIDAuMzcyMzc5LCAwLjkwMDYwMywgMS43ODM4NCwgMi42NjY5OSwgNC43MjMwMiwgNS44OTQiLCBcCi0gICAgICAgICAgIjAuMzEzNjEzLCAwLjM3MjM5NSwgMC45MDEzMDcsIDEuNzgxOSwgMi42NjcxMywgNC43MTg3MywgNS44OTA3OSIsIFwKLSAgICAgICAgICAiMC4zMTQwOTksIDAuMzcyNjgsIDAuOTAwNjUyLCAxLjc4MjU0LCAyLjY2NjU1LCA0LjcyMjUsIDUuODkzNTkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzY5MTk0LCAwLjM5NTM5MiwgMC42MjQwOTksIDEuMDAyNzQsIDEuMzgxNTIsIDIuMjY1MjIsIDIuNzcwMjEiLCBcCi0gICAgICAgICAgIjAuMzc5MTA4LCAwLjQwNTI4NywgMC42MzQwMjEsIDEuMDEyNjgsIDEuMzkxNDYsIDIuMjc1MTcsIDIuNzgwMTciLCBcCi0gICAgICAgICAgIjAuMzkxNjE1LCAwLjQxODAyMiwgMC42NDY3MSwgMS4wMjUzNywgMS40MDQwOCwgMi4yODc4MywgMi43OTI4NiIsIFwKLSAgICAgICAgICAiMC40MDM0NzcsIDAuNDI5NzIxLCAwLjY1ODQ0OCwgMS4wMzcwOSwgMS40MTU4NiwgMi4yOTk1OCwgMi44MDQ2OCIsIFwKLSAgICAgICAgICAiMC40MTU1MjksIDAuNDQxOTE5LCAwLjY3MDU3LCAxLjA0OTI3LCAxLjQyODM1LCAyLjMxMTc4LCAyLjgxNzU4IiwgXAotICAgICAgICAgICIwLjQzNDAyOSwgMC40NjA0MjcsIDAuNjg5MDQ2LCAxLjA2Nzc2LCAxLjQ0NjUzLCAyLjMzMTI4LCAyLjgzNTk1IiwgXAotICAgICAgICAgICIwLjQ1MDcxMSwgMC40NzY5MjIsIDAuNzA1NjQ4LCAxLjA4NDM3LCAxLjQ2MzI2LCAyLjM0ODIsIDIuODUyNzkiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjk4NjMxLCAwLjM0Njc2NywgMC43OTMwMTcsIDEuNTU1ODEsIDIuMzI3MzMsIDQuMTIzNDEsIDUuMTM5IiwgXAotICAgICAgICAgICIwLjI5ODU0NywgMC4zNDY3OSwgMC43OTMwNTgsIDEuNTU3NCwgMi4zMjczMiwgNC4xMjMzOCwgNS4xMzkxNyIsIFwKLSAgICAgICAgICAiMC4yOTg1NjcsIDAuMzQ2NTIsIDAuNzk0NzY4LCAxLjU1NjA4LCAyLjMyNzAyLCA0LjEyMzM3LCA1LjEzODQ2IiwgXAotICAgICAgICAgICIwLjI5ODQyMSwgMC4zNDY1OTUsIDAuNzkyOTY1LCAxLjU1NTgxLCAyLjMyNzI2LCA0LjEyMzM4LCA1LjE0MDAxIiwgXAotICAgICAgICAgICIwLjI5ODE5NiwgMC4zNDYzNDYsIDAuNzk0NjU0LCAxLjU1NTk4LCAyLjMyMTM0LCA0LjEyMTk1LCA1LjEzODU2IiwgXAotICAgICAgICAgICIwLjI5Nzk0NSwgMC4zNDYxMzIsIDAuNzkzMTczLCAxLjU1NzksIDIuMzI3MTksIDQuMTEzMDQsIDUuMTM3MjYiLCBcCi0gICAgICAgICAgIjAuMjk3NTU2LCAwLjM0NTkwMSwgMC43OTQ0NjksIDEuNTU2MjcsIDIuMzIxMTEsIDQuMTEzOCwgNS4xMzY5Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIxNjQ0NiwgMC4yNDYyMTUsIDAuNTEzNzY4LCAwLjk1OTM3MiwgMS40MDQ5MywgMi40NDQ1NiwgMy4wMzgyMyIsIFwKLSAgICAgICAgICAiMC4yMjgyMDUsIDAuMjU3OTczLCAwLjUyNTUzMSwgMC45NzEyNTQsIDEuNDE2NjMsIDIuNDU2MTMsIDMuMDUwMTEiLCBcCi0gICAgICAgICAgIjAuMjQzMDEzLCAwLjI3Mjc3OSwgMC41NDAzNTUsIDAuOTg1OTc4LCAxLjQzMTQ2LCAyLjQ3MTA5LCAzLjA2NDgxIiwgXAotICAgICAgICAgICIwLjI1NzY2MywgMC4yODc0MjcsIDAuNTU1MDIyLCAxLjAwMDYyLCAxLjQ0NjEzLCAyLjQ4NTUzLCAzLjA3OTU3IiwgXAotICAgICAgICAgICIwLjI3MjI2LCAwLjMwMjAzLCAwLjU2OTY1NywgMS4wMTUyOCwgMS40NjA3OSwgMi41MDAyLCAzLjA5NDA4IiwgXAotICAgICAgICAgICIwLjI5NDc4MiwgMC4zMjQ1OTksIDAuNTkyMjE5LCAxLjAzNzg0LCAxLjQ4MzM0LCAyLjUyMjc0LCAzLjExNjgiLCBcCi0gICAgICAgICAgIjAuMzEyOTA0LCAwLjM0MjY4NSwgMC42MTAzNDgsIDEuMDU1OTksIDEuNTAxNTYsIDIuNTQwODgsIDMuMTM0ODIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzEyNDE3LCAwLjM3MTc0OSwgMC45MDEwNTcsIDEuNzg0MjksIDIuNjY2OTgsIDQuNzIyMTcsIDUuODkzMTYiLCBcCi0gICAgICAgICAgIjAuMzEyMzU4LCAwLjM3MTc2NCwgMC45MDEwNDEsIDEuNzc5OTgsIDIuNjY4MTMsIDQuNzIyNjIsIDUuODkzNjUiLCBcCi0gICAgICAgICAgIjAuMzEzMjY0LCAwLjM3MTg3NiwgMC45MDEwNDYsIDEuNzgzMjEsIDIuNjY3OTgsIDQuNzIyMjYsIDUuODkyODQiLCBcCi0gICAgICAgICAgIjAuMzEzMjc1LCAwLjM3MTcwMSwgMC45MDA5MjEsIDEuNzg0NTEsIDIuNjY3OTEsIDQuNzIyNzMsIDUuODkzNiIsIFwKLSAgICAgICAgICAiMC4zMTMzNjUsIDAuMzcxODE5LCAwLjkwMDIzNSwgMS43ODIzMywgMi42Njc2OCwgNC43MjI2NCwgNS44OTM0NiIsIFwKLSAgICAgICAgICAiMC4zMTM0OTYsIDAuMzcwOTc5LCAwLjg5OTk3NiwgMS43ODIyMiwgMi42Njc5NywgNC43MjI1NCwgNS44OTMyMyIsIFwKLSAgICAgICAgICAiMC4zMTM1ODcsIDAuMzcyMTMxLCAwLjkwMDA3NiwgMS43ODI1LCAyLjY2NjgzLCA0LjcyMjUxLCA1Ljg5MzExIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjM1OTE5LCAwLjM4NTU2OCwgMC42MTQxNDQsIDAuOTkyODY3LCAxLjM3MTY0LCAyLjI1NjQ2LCAyLjc2MDM4IiwgXAotICAgICAgICAgICIwLjM2ODE5OCwgMC4zOTQ0ODYsIDAuNjIzMTcxLCAxLjAwMTk2LCAxLjM4MDYyLCAyLjI2NDM0LCAyLjc2OTQ0IiwgXAotICAgICAgICAgICIwLjM4MDAxOSwgMC40MDYzMTgsIDAuNjM0OTc4LCAxLjAxMzY5LCAxLjM5MjQ0LCAyLjI3NjE2LCAyLjc4MTUiLCBcCi0gICAgICAgICAgIjAuMzkyMjQ2LCAwLjQxODQ4NCwgMC42NDcxNTUsIDEuMDI1ODYsIDEuNDA0NjIsIDIuMjg4NjgsIDIuNzk0MzciLCBcCi0gICAgICAgICAgIjAuNDA0Njg5LCAwLjQzMDkyNywgMC42NTk1NjksIDEuMDM4MzYsIDEuNDE3MDgsIDIuMzAwOTEsIDIuODA2ODMiLCBcCi0gICAgICAgICAgIjAuNDI1MDI3LCAwLjQ1MTE2MSwgMC42Nzk4OTUsIDEuMDU4NjIsIDEuNDM3NTksIDIuMzIxNTEsIDIuODI3MTUiLCBcCi0gICAgICAgICAgIjAuNDQyMzM4LCAwLjQ2ODQ2NywgMC42OTcwODcsIDEuMDc1ODYsIDEuNDU0NiwgMi4zMzg1NSwgMi44NDM5NyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yOTg2MjIsIDAuMzQ2NjkyLCAwLjc5MzEsIDEuNTU4MzMsIDIuMzI3MzEsIDQuMTEzMDYsIDUuMTM4NDIiLCBcCi0gICAgICAgICAgIjAuMjk4ODIzLCAwLjM0NjcyNCwgMC43OTQ1ODYsIDEuNTU4OTQsIDIuMzI3MjgsIDQuMTIzMzgsIDUuMTQwMTMiLCBcCi0gICAgICAgICAgIjAuMjk4NjIxLCAwLjM0Njg2MywgMC43OTMxMzQsIDEuNTU4NCwgMi4zMjcyNCwgNC4xMjMzOCwgNS4xMzkyOSIsIFwKLSAgICAgICAgICAiMC4yOTg4MzgsIDAuMzQ2ODI5LCAwLjc5NDQ5NywgMS41NTgyNSwgMi4zMjcxOCwgNC4xMTEzNCwgNS4xMzY2NSIsIFwKLSAgICAgICAgICAiMC4yOTg1NjMsIDAuMzQ2NTg2LCAwLjc5MzgxLCAxLjU1ODYyLCAyLjMyNzE3LCA0LjEyMzQ4LCA1LjEzNjg5IiwgXAotICAgICAgICAgICIwLjI5NzcyNCwgMC4zNDYwNDUsIDAuNzk0NTQ1LCAxLjU1NjE2LCAyLjMyMDc1LCA0LjExNjE2LCA1LjEzNzI5IiwgXAotICAgICAgICAgICIwLjI5Nzc2OSwgMC4zNDU5ODEsIDAuNzkyOTQ2LCAxLjU1NDg3LCAyLjMyNzIyLCA0LjExNTg2LCA1LjEzNzMiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjEzNjA2LCAwLjI0MzM2NCwgMC41MTA3NTQsIDAuOTU2MjQ4LCAxLjQwMTY5LCAyLjQ0MTAyLCAzLjAzNTEyIiwgXAotICAgICAgICAgICIwLjIyNTQ1NSwgMC4yNTUxOTgsIDAuNTIyNTkyLCAwLjk2ODEyNSwgMS40MTM1NCwgMi40NTI5NiwgMy4wNDY2OSIsIFwKLSAgICAgICAgICAiMC4yNDAwMywgMC4yNjk3NjYsIDAuNTM3MTgsIDAuOTgyNjg5LCAxLjQyODEzLCAyLjQ2NzUsIDMuMDYxMzMiLCBcCi0gICAgICAgICAgIjAuMjU0ODM4LCAwLjI4NDYwOCwgMC41NTIwNzcsIDAuOTk3NTQxLCAxLjQ0Mjk5LCAyLjQ4MjMyLCAzLjA3NjI4IiwgXAotICAgICAgICAgICIwLjI2OTM3OSwgMC4yOTkxNDIsIDAuNTY2NTc2LCAxLjAxMjEsIDEuNDU3NTQsIDIuNDk2ODcsIDMuMDkwNzYiLCBcCi0gICAgICAgICAgIjAuMjkxNjAxLCAwLjMyMTM4NCwgMC41ODg4NjksIDEuMDM0MzYsIDEuNDc5ODIsIDIuNTE5MTUsIDMuMTEzMTkiLCBcCi0gICAgICAgICAgIjAuMzA5MzM2LCAwLjMzOTA4NywgMC42MDY1ODMsIDEuMDUyMTIsIDEuNDk3NTcsIDIuNTM2OSwgMy4xMzA3OSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMTI5MDUsIDAuMzcxNDc1LCAwLjg5OTYyNiwgMS43ODI2OSwgMi42NjQ4OCwgNC43MjM0LCA1Ljg5MzM5IiwgXAotICAgICAgICAgICIwLjMxMTgyMSwgMC4zNzE0NzgsIDAuODk5NjcxLCAxLjc4NDEsIDIuNjY1MjcsIDQuNzIyNDksIDUuODkzMTEiLCBcCi0gICAgICAgICAgIjAuMzExNzg2LCAwLjM3MTUwMSwgMC44OTk4NTksIDEuNzgzMjgsIDIuNjY4NzcsIDQuNzIyMTksIDUuODkyODUiLCBcCi0gICAgICAgICAgIjAuMzEyMzU3LCAwLjM3MTQ5MywgMC45MDAzNjYsIDEuNzgyODUsIDIuNjY0MjksIDQuNzIyNjYsIDUuODkyODciLCBcCi0gICAgICAgICAgIjAuMzEzMDIxLCAwLjM3MTUwNiwgMC44OTk5OTUsIDEuNzg1LCAyLjY2NDc4LCA0LjcyMzE5LCA1Ljg5MjUzIiwgXAotICAgICAgICAgICIwLjMxMjQ0MiwgMC4zNzE1ODIsIDAuODk5NzQ4LCAxLjc4MjY1LCAyLjY2NDYxLCA0LjcyMjY4LCA1Ljg5MjIxIiwgXAotICAgICAgICAgICIwLjMxMzMxLCAwLjM3MTczMiwgMC45MDA5NjcsIDEuNzgyNzgsIDIuNjY0NTMsIDQuNzIyNTIsIDUuODkyNCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJEIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zNDQ2NzQsIDAuMzcxMTQ3LCAwLjU5OTcxOCwgMC45Nzg0OTQsIDEuMzU3MjIsIDIuMjQxNzIsIDIuNzQ2MzkiLCBcCi0gICAgICAgICAgIjAuMzUzMjg3LCAwLjM3OTQ0OCwgMC42MDgxMDIsIDAuOTg2ODE0LCAxLjM2NTU3LCAyLjI0OTMxLCAyLjc1NTAxIiwgXAotICAgICAgICAgICIwLjM2NDM4LCAwLjM5MDE3NiwgMC42MTg4NCwgMC45OTc1NjMsIDEuMzc2MzMsIDIuMjYwMjksIDIuNzY1MjQiLCBcCi0gICAgICAgICAgIjAuMzc1ODExLCAwLjQwMjAzNywgMC42MzA3NDYsIDEuMDA5NDUsIDEuMzg4MTcsIDIuMjcxOTIsIDIuNzc3ODgiLCBcCi0gICAgICAgICAgIjAuMzg4MjI5LCAwLjQxNDQyNCwgMC42NDMxNzIsIDEuMDIxODgsIDEuNDAwNiwgMi4yODQ0MiwgMi43OTA0IiwgXAotICAgICAgICAgICIwLjQwNzUxNCwgMC40MzM2MjUsIDAuNjYyMjg3LCAxLjA0MTEsIDEuNDE5NzcsIDIuMzAzNTUsIDIuODA5NDYiLCBcCi0gICAgICAgICAgIjAuNDI0NzIzLCAwLjQ1MDkyLCAwLjY3OTU3MiwgMS4wNTgzMSwgMS40MzcwNCwgMi4zMjEwNSwgMi44MjYzNyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yOTgzNjUsIDAuMzQ2NDMxLCAwLjc5MzA3NCwgMS41NTQ4NiwgMi4zMjczLCA0LjExMzA5LCA1LjEzNzkyIiwgXAotICAgICAgICAgICIwLjI5ODM1OCwgMC4zNDYzNDMsIDAuNzk0NjU2LCAxLjU1NiwgMi4zMjMyOCwgNC4xMjIwMSwgNS4xMzczMyIsIFwKLSAgICAgICAgICAiMC4yOTc4MDcsIDAuMzQ2NDcxLCAwLjc5MzcsIDEuNTU4MzcsIDIuMzI3MjMsIDQuMTEyMTIsIDUuMTQwNzYiLCBcCi0gICAgICAgICAgIjAuMjk3ODQyLCAwLjM0NjAzOSwgMC43OTQ1OTgsIDEuNTU1OTEsIDIuMzI3MTEsIDQuMTIxODcsIDUuMTM4MSIsIFwKLSAgICAgICAgICAiMC4yOTc3LCAwLjM0NjAwNiwgMC43OTQ1NTMsIDEuNTU1OSwgMi4zMjcwOCwgNC4xMjE5NCwgNS4xMzg1OCIsIFwKLSAgICAgICAgICAiMC4yOTc2NjIsIDAuMzQ1OTM0LCAwLjc5NDM4MSwgMS41NTg4LCAyLjMyNzEsIDQuMTIxOTcsIDUuMTM2OSIsIFwKLSAgICAgICAgICAiMC4yOTc0MTcsIDAuMzQ1ODIxLCAwLjc5NDQzNiwgMS41NTg0NywgMi4zMjcwNiwgNC4xMjE5NywgNS4xMzc5MSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMTA0NzQsIDAuMjQwMTk2LCAwLjUwNzY5NCwgMC45NTMxODcsIDEuMzk4OTMsIDIuNDM5MzUsIDMuMDMyMTkiLCBcCi0gICAgICAgICAgIjAuMjIyMzI3LCAwLjI1MjAzMiwgMC41MTkzODgsIDAuOTY1MDU4LCAxLjQxMDQ2LCAyLjQ0OTk3LCAzLjA0NDIyIiwgXAotICAgICAgICAgICIwLjIzNzExNCwgMC4yNjY4MjgsIDAuNTM0MTg3LCAwLjk3OTg0MiwgMS40MjY0NCwgMi40NjU2MywgMy4wNTg5MyIsIFwKLSAgICAgICAgICAiMC4yNTE3NDgsIDAuMjgxNDUzLCAwLjU0ODg0NSwgMC45OTQ1NTEsIDEuNDQwODksIDIuNDc5NDYsIDMuMDczNiIsIFwKLSAgICAgICAgICAiMC4yNjYyMDMsIDAuMjk1OTA2LCAwLjU2MzMyLCAxLjAwODk3LCAxLjQ1NDc3LCAyLjQ5Mzk3LCAzLjA4ODA5IiwgXAotICAgICAgICAgICIwLjI4Nzk1MywgMC4zMTc2OTcsIDAuNTg1MzM3LCAxLjAzMDgsIDEuNDc2NTEsIDIuNTE2OTUsIDMuMTA5ODQiLCBcCi0gICAgICAgICAgIjAuMzA1NDg5LCAwLjMzNTIxOCwgMC42MDI3NDksIDEuMDQ4MzMsIDEuNDk0NzQsIDIuNTM0MjgsIDMuMTI3NDMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzEyNjQzLCAwLjM3MTM2NCwgMC44OTk1MzQsIDEuNzc5NDgsIDIuNjY2MjUsIDQuNzE5MDIsIDUuODkzMzciLCBcCi0gICAgICAgICAgIjAuMzExNDEzLCAwLjM3MTM1NCwgMC45MDE3NDksIDEuNzgwNzIsIDIuNjYxOTEsIDQuNzIxMjMsIDUuODkzMTYiLCBcCi0gICAgICAgICAgIjAuMzEyNjMsIDAuMzcxMzQyLCAwLjkwMTcyOSwgMS43ODYyOSwgMi42NjUsIDQuNzIyMzYsIDUuODkzNzUiLCBcCi0gICAgICAgICAgIjAuMzEyNjUxLCAwLjM3MTM4LCAwLjkwMTcyNywgMS43ODU0MSwgMi42NjQ0NCwgNC43MjE3MiwgNS44OTM3NSIsIFwKLSAgICAgICAgICAiMC4zMTIwMjcsIDAuMzcwNDMzLCAwLjkwMTczNCwgMS43ODY3NCwgMi42NjQ4OCwgNC43MjMxLCA1Ljg5MzE2IiwgXAotICAgICAgICAgICIwLjMxMjY4OSwgMC4zNzA2MTMsIDAuODk4NzIsIDEuNzc5NDcsIDIuNjY4MDIsIDQuNzE5MiwgNS44OTMwMiIsIFwKLSAgICAgICAgICAiMC4zMTIxODIsIDAuMzcxNjEyLCAwLjg5OTQsIDEuNzg2MywgMi42NjQ4MiwgNC43MTk4LCA1Ljg5MzM4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxMjM1LCAwLjAwMTIzNSwgMC4wMDEyMzcsIDAuMDAxMjM3LCAwLjAwMTIzNywgMC4wMDEyMzcsIDAuMDAxMjM3IiwgXAotICAgICAgICAgICIwLjAwMTIyNCwgMC4wMDEyMjQsIDAuMDAxMjI2LCAwLjAwMTIyNiwgMC4wMDEyMjYsIDAuMDAxMjI2LCAwLjAwMTIyNiIsIFwKLSAgICAgICAgICAiMC4wMDEyMTUsIDAuMDAxMjE2LCAwLjAwMTIxNywgMC4wMDEyMTcsIDAuMDAxMjE4LCAwLjAwMTIxNywgMC4wMDEyMTciLCBcCi0gICAgICAgICAgIjAuMDAxMjEsIDAuMDAxMjEsIDAuMDAxMjEyLCAwLjAwMTIxMiwgMC4wMDEyMTIsIDAuMDAxMjEzLCAwLjAwMTIxMSIsIFwKLSAgICAgICAgICAiMC4wMDEyMDYsIDAuMDAxMjA3LCAwLjAwMTIwOCwgMC4wMDEyMDksIDAuMDAxMjA5LCAwLjAwMTIwOCwgMC4wMDEyMDkiLCBcCi0gICAgICAgICAgIjAuMDAxMjAyLCAwLjAwMTIwMywgMC4wMDEyMDQsIDAuMDAxMjA1LCAwLjAwMTIwNSwgMC4wMDEyMDUsIDAuMDAxMjA1IiwgXAotICAgICAgICAgICIwLjAwMTIsIDAuMDAxMiwgMC4wMDEyMDMsIDAuMDAxMjAzLCAwLjAwMTIwMywgMC4wMDEyMDMsIDAuMDAxMjAzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyMzYxLCAwLjAwMjM2MSwgMC4wMDIzNjMsIDAuMDAyMzY0LCAwLjAwMjM2NCwgMC4wMDIzNjQsIDAuMDAyMzY0IiwgXAotICAgICAgICAgICIwLjAwMjM1MywgMC4wMDIzNTMsIDAuMDAyMzU1LCAwLjAwMjM1NiwgMC4wMDIzNTYsIDAuMDAyMzU2LCAwLjAwMjM1NyIsIFwKLSAgICAgICAgICAiMC4wMDIzNDgsIDAuMDAyMzQ5LCAwLjAwMjM1MSwgMC4wMDIzNTIsIDAuMDAyMzUyLCAwLjAwMjM1MywgMC4wMDIzNTMiLCBcCi0gICAgICAgICAgIjAuMDAyMzQ0LCAwLjAwMjM0NSwgMC4wMDIzNDgsIDAuMDAyMzQ5LCAwLjAwMjM1LCAwLjAwMjM1LCAwLjAwMjM1IiwgXAotICAgICAgICAgICIwLjAwMjM0MiwgMC4wMDIzNDMsIDAuMDAyMzQ2LCAwLjAwMjM0NywgMC4wMDIzNDgsIDAuMDAyMzQ4LCAwLjAwMjM0OCIsIFwKLSAgICAgICAgICAiMC4wMDIzMzksIDAuMDAyMzQsIDAuMDAyMzQ0LCAwLjAwMjM0NiwgMC4wMDIzNDYsIDAuMDAyMzQ3LCAwLjAwMjM0NyIsIFwKLSAgICAgICAgICAiMC4wMDIzMzYsIDAuMDAyMzM3LCAwLjAwMjM0MiwgMC4wMDIzNDQsIDAuMDAyMzQ1LCAwLjAwMjM0NiwgMC4wMDIzNDYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDEyMzYsIDAuMDAxMjM2LCAwLjAwMTIzOSwgMC4wMDEyMzksIDAuMDAxMjQsIDAuMDAxMjQsIDAuMDAxMjQiLCBcCi0gICAgICAgICAgIjAuMDAxMjI1LCAwLjAwMTIyNSwgMC4wMDEyMjcsIDAuMDAxMjI3LCAwLjAwMTIyOSwgMC4wMDEyMjksIDAuMDAxMjI4IiwgXAotICAgICAgICAgICIwLjAwMTIxNiwgMC4wMDEyMTcsIDAuMDAxMjE4LCAwLjAwMTIyLCAwLjAwMTIyLCAwLjAwMTIyMSwgMC4wMDEyMTkiLCBcCi0gICAgICAgICAgIjAuMDAxMjEsIDAuMDAxMjExLCAwLjAwMTIxNCwgMC4wMDEyMTQsIDAuMDAxMjE0LCAwLjAwMTIxNSwgMC4wMDEyMTUiLCBcCi0gICAgICAgICAgIjAuMDAxMjA3LCAwLjAwMTIwNywgMC4wMDEyMSwgMC4wMDEyMSwgMC4wMDEyMTEsIDAuMDAxMjExLCAwLjAwMTIxMSIsIFwKLSAgICAgICAgICAiMC4wMDEyMDMsIDAuMDAxMjAzLCAwLjAwMTIwNiwgMC4wMDEyMDcsIDAuMDAxMjA3LCAwLjAwMTIwNywgMC4wMDEyMDgiLCBcCi0gICAgICAgICAgIjAuMDAxMiwgMC4wMDEyMDEsIDAuMDAxMjA0LCAwLjAwMTIwNSwgMC4wMDEyMDUsIDAuMDAxMjA1LCAwLjAwMTIwNiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjE4NCwgMC4wMDIxODUsIDAuMDAyMTg3LCAwLjAwMjE4OCwgMC4wMDIxODgsIDAuMDAyMTg4LCAwLjAwMjE4OCIsIFwKLSAgICAgICAgICAiMC4wMDIxNzgsIDAuMDAyMTc5LCAwLjAwMjE4MiwgMC4wMDIxODIsIDAuMDAyMTgzLCAwLjAwMjE4MywgMC4wMDIxODMiLCBcCi0gICAgICAgICAgIjAuMDAyMTczLCAwLjAwMjE3NCwgMC4wMDIxNzcsIDAuMDAyMTc4LCAwLjAwMjE3OCwgMC4wMDIxNzgsIDAuMDAyMTc4IiwgXAotICAgICAgICAgICIwLjAwMjE2OCwgMC4wMDIxNjksIDAuMDAyMTczLCAwLjAwMjE3NCwgMC4wMDIxNzUsIDAuMDAyMTc1LCAwLjAwMjE3NSIsIFwKLSAgICAgICAgICAiMC4wMDIxNjQsIDAuMDAyMTY2LCAwLjAwMjE3LCAwLjAwMjE3MiwgMC4wMDIxNzIsIDAuMDAyMTczLCAwLjAwMjE3MyIsIFwKLSAgICAgICAgICAiMC4wMDIxNiwgMC4wMDIxNjIsIDAuMDAyMTY3LCAwLjAwMjE2OSwgMC4wMDIxNywgMC4wMDIxNywgMC4wMDIxNzEiLCBcCi0gICAgICAgICAgIjAuMDAyMTU3LCAwLjAwMjE1OSwgMC4wMDIxNjQsIDAuMDAyMTY3LCAwLjAwMjE2OCwgMC4wMDIxNjksIDAuMDAyMTY5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxMjM2LCAwLjAwMTIzNywgMC4wMDEyNCwgMC4wMDEyNDEsIDAuMDAxMjQyLCAwLjAwMTI0MiwgMC4wMDEyNDIiLCBcCi0gICAgICAgICAgIjAuMDAxMjI1LCAwLjAwMTIyNiwgMC4wMDEyMjksIDAuMDAxMjMsIDAuMDAxMjMxLCAwLjAwMTIzMSwgMC4wMDEyMzEiLCBcCi0gICAgICAgICAgIjAuMDAxMjE2LCAwLjAwMTIxNywgMC4wMDEyMjEsIDAuMDAxMjIyLCAwLjAwMTIyMiwgMC4wMDEyMjMsIDAuMDAxMjIzIiwgXAotICAgICAgICAgICIwLjAwMTIxMSwgMC4wMDEyMTIsIDAuMDAxMjE1LCAwLjAwMTIxNiwgMC4wMDEyMTcsIDAuMDAxMjE3LCAwLjAwMTIxNyIsIFwKLSAgICAgICAgICAiMC4wMDEyMDcsIDAuMDAxMjA4LCAwLjAwMTIxMiwgMC4wMDEyMTMsIDAuMDAxMjEzLCAwLjAwMTIxNCwgMC4wMDEyMTQiLCBcCi0gICAgICAgICAgIjAuMDAxMjAzLCAwLjAwMTIwNCwgMC4wMDEyMDgsIDAuMDAxMjA5LCAwLjAwMTIwOSwgMC4wMDEyMDksIDAuMDAxMjEiLCBcCi0gICAgICAgICAgIjAuMDAxMjAxLCAwLjAwMTIwMiwgMC4wMDEyMDYsIDAuMDAxMjA3LCAwLjAwMTIwNywgMC4wMDEyMDcsIDAuMDAxMjA4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxOTk5LCAwLjAwMTk5OSwgMC4wMDIwMDIsIDAuMDAyMDAyLCAwLjAwMjAwMiwgMC4wMDIwMDMsIDAuMDAyMDAzIiwgXAotICAgICAgICAgICIwLjAwMTk5NywgMC4wMDE5OTcsIDAuMDAyLCAwLjAwMiwgMC4wMDIwMDEsIDAuMDAyMDAxLCAwLjAwMjAwMSIsIFwKLSAgICAgICAgICAiMC4wMDE5OTEsIDAuMDAxOTkyLCAwLjAwMTk5NSwgMC4wMDE5OTYsIDAuMDAxOTk2LCAwLjAwMTk5NiwgMC4wMDE5OTYiLCBcCi0gICAgICAgICAgIjAuMDAxOTg1LCAwLjAwMTk4NiwgMC4wMDE5OSwgMC4wMDE5OTEsIDAuMDAxOTkyLCAwLjAwMTk5MiwgMC4wMDE5OTIiLCBcCi0gICAgICAgICAgIjAuMDAxOTgyLCAwLjAwMTk4MywgMC4wMDE5ODcsIDAuMDAxOTg5LCAwLjAwMTk5LCAwLjAwMTk5LCAwLjAwMTk5IiwgXAotICAgICAgICAgICIwLjAwMTk3NywgMC4wMDE5NzgsIDAuMDAxOTgzLCAwLjAwMTk4NSwgMC4wMDE5ODYsIDAuMDAxOTg3LCAwLjAwMTk4NyIsIFwKLSAgICAgICAgICAiMC4wMDE5NzMsIDAuMDAxOTc1LCAwLjAwMTk4MSwgMC4wMDE5ODMsIDAuMDAxOTg0LCAwLjAwMTk4NSwgMC4wMDE5ODUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJEIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDEyMzYsIDAuMDAxMjM3LCAwLjAwMTI0MiwgMC4wMDEyNDIsIDAuMDAxMjQzLCAwLjAwMTI0NCwgMC4wMDEyNDQiLCBcCi0gICAgICAgICAgIjAuMDAxMjIzLCAwLjAwMTIyNCwgMC4wMDEyMjgsIDAuMDAxMjI5LCAwLjAwMTIzLCAwLjAwMTIzLCAwLjAwMTIzIiwgXAotICAgICAgICAgICIwLjAwMTIxMywgMC4wMDEyMTQsIDAuMDAxMjE4LCAwLjAwMTIxOSwgMC4wMDEyMiwgMC4wMDEyMiwgMC4wMDEyMjEiLCBcCi0gICAgICAgICAgIjAuMDAxMjA3LCAwLjAwMTIwOCwgMC4wMDEyMTIsIDAuMDAxMjE0LCAwLjAwMTIxNCwgMC4wMDEyMTUsIDAuMDAxMjE1IiwgXAotICAgICAgICAgICIwLjAwMTIwMywgMC4wMDEyMDUsIDAuMDAxMjA4LCAwLjAwMTIxLCAwLjAwMTIxMSwgMC4wMDEyMTEsIDAuMDAxMjEyIiwgXAotICAgICAgICAgICIwLjAwMTIsIDAuMDAxMjAxLCAwLjAwMTIwNiwgMC4wMDEyMDgsIDAuMDAxMjA4LCAwLjAwMTIwOSwgMC4wMDEyMDkiLCBcCi0gICAgICAgICAgIjAuMDAxMTk5LCAwLjAwMTIsIDAuMDAxMjA1LCAwLjAwMTIwNywgMC4wMDEyMDcsIDAuMDAxMjA4LCAwLjAwMTIwOCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTgxOSwgMC4wMDE4MTksIDAuMDAxODIxLCAwLjAwMTgyMiwgMC4wMDE4MjIsIDAuMDAxODIyLCAwLjAwMTgyMiIsIFwKLSAgICAgICAgICAiMC4wMDE4MTcsIDAuMDAxODE4LCAwLjAwMTgxOSwgMC4wMDE4MiwgMC4wMDE4MiwgMC4wMDE4MjEsIDAuMDAxODIxIiwgXAotICAgICAgICAgICIwLjAwMTgxMSwgMC4wMDE4MTIsIDAuMDAxODE0LCAwLjAwMTgxNSwgMC4wMDE4MTUsIDAuMDAxODE1LCAwLjAwMTgxNiIsIFwKLSAgICAgICAgICAiMC4wMDE4MDUsIDAuMDAxODA2LCAwLjAwMTgwOSwgMC4wMDE4MSwgMC4wMDE4MTEsIDAuMDAxODExLCAwLjAwMTgxMSIsIFwKLSAgICAgICAgICAiMC4wMDE4LCAwLjAwMTgwMiwgMC4wMDE4MDYsIDAuMDAxODA3LCAwLjAwMTgwOCwgMC4wMDE4MDgsIDAuMDAxODA4IiwgXAotICAgICAgICAgICIwLjAwMTc5NCwgMC4wMDE3OTYsIDAuMDAxODAxLCAwLjAwMTgwMywgMC4wMDE4MDMsIDAuMDAxODA0LCAwLjAwMTgwNCIsIFwKLSAgICAgICAgICAiMC4wMDE3OSwgMC4wMDE3OTIsIDAuMDAxNzk3LCAwLjAwMTgsIDAuMDAxOCwgMC4wMDE4MDEsIDAuMDAxODAxIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBBTzIxWDEgKgotICogLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChBTzIxWDEpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4wNzQ3NDk4OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjAyMDU5OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDU5OTk1NjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2MDIwNTk7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMTY1LCAwLjAwMDE2NSwgMC4wMDAxNjUsIDAuMDAwMTY1LCAwLjAwMDE2NSwgMC4wMDAxNjUsIDAuMDAwMTY1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMTY5LCAwLjAwMDE2NywgMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY2Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihBMSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjM1OTM7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjMyMDc2OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDYzNTkzOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDA2NSwgMC4wMDAwNjUsIDAuMDAwMDY1LCAwLjAwMDA2NSwgMC4wMDAwNjUsIDAuMDAwMDY1LCAwLjAwMDA2NSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDE4OCwgMC4wMDAxODgsIDAuMDAwMTg4LCAwLjAwMDE4OCwgMC4wMDAxODgsIDAuMDAwMTg4LCAwLjAwMDE4OCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQjApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY0NDk5MjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2NDQ4Njk7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjQ0OTkyOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDAzOSwgMC4wMDAwMzksIDAuMDAwMDM5LCAwLjAwMDAzOSwgMC4wMDAwMzksIDAuMDAwMDM5LCAwLjAwMDAzOSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDMxMSwgMC4wMDAzMTEsIDAuMDAwMzExLCAwLjAwMDMxMSwgMC4wMDAzMTEsIDAuMDAwMzExLCAwLjAwMDMxMSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjEyNDU4OTsKLSAgICBmdW5jdGlvbiA6ICIoKEEwIEExKStCMCkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xOTIxNTcsIDAuMjM2MTcxLCAwLjQ4MjIxLCAwLjY5ODQzLCAwLjk4NjU2MywgMS41NjIzNywgMS45MjIxNiIsIFwKLSAgICAgICAgICAiMC4yMDM2NTEsIDAuMjQ3Njc3LCAwLjQ5MzcxOSwgMC43MDk5NDEsIDAuOTk4MDcyLCAxLjU3Mzg4LCAxLjkzMzY3IiwgXAotICAgICAgICAgICIwLjIxNzQ3OCwgMC4yNjE0NTgsIDAuNTA3NDg0LCAwLjcyMzc1NiwgMS4wMTE4NSwgMS41ODc4NywgMS45NDc0NiIsIFwKLSAgICAgICAgICAiMC4yMzExMDgsIDAuMjc1MDg3LCAwLjUyMTEwNSwgMC43Mzc0MjIsIDEuMDI1NDksIDEuNjAxMzUsIDEuOTYxMDgiLCBcCi0gICAgICAgICAgIjAuMjQ0OTMyLCAwLjI4ODkwMiwgMC41MzQ5NTgsIDAuNzUxMTkyLCAxLjAzOTI5LCAxLjYxNTE0LCAxLjk3NDk1IiwgXAotICAgICAgICAgICIwLjI2NjU1MSwgMC4zMTA1NTIsIDAuNTU2NjAzLCAwLjc3Mjg1NywgMS4wNjA5NiwgMS42MzY4OSwgMS45OTY1NyIsIFwKLSAgICAgICAgICAiMC4yODUzNTIsIDAuMzI5MzMsIDAuNTc1NDA2LCAwLjc5MTYzNywgMS4wNzk4NiwgMS42NTU1OCwgMi4wMTUzOCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNjkwNDIsIDAuMjU0MzQyLCAwLjc0OTExNiwgMS4xODc3OSwgMS43NzM0MSwgMi45NDAxNSwgMy42NzEyIiwgXAotICAgICAgICAgICIwLjE2OTAyLCAwLjI1NDMxNywgMC43NDkwOTQsIDEuMTg3NywgMS43NzA5MiwgMi45NDAxNiwgMy42NzEwMSIsIFwKLSAgICAgICAgICAiMC4xNjkwNSwgMC4yNTQ1MDIsIDAuNzQ4OTQ1LCAxLjE4Nzc2LCAxLjc3MDU4LCAyLjkzNzQ0LCAzLjY3NDk3IiwgXAotICAgICAgICAgICIwLjE2OTA3OCwgMC4yNTQ0ODQsIDAuNzQ4OTE2LCAxLjE4NTMzLCAxLjc3MDQsIDIuOTQ0NzQsIDMuNjc1NjgiLCBcCi0gICAgICAgICAgIjAuMTY5MDcyLCAwLjI1NDMyLCAwLjc0OTA5OCwgMS4xODc0NiwgMS43NzA1OSwgMi45NDAxNCwgMy42NzY3IiwgXAotICAgICAgICAgICIwLjE2ODk1NCwgMC4yNTQzNzksIDAuNzQ3NDE4LCAxLjE4Nzc1LCAxLjc3MDU1LCAyLjk0NDM5LCAzLjY3NTQzIiwgXAotICAgICAgICAgICIwLjE2OTA0NSwgMC4yNTQyOTgsIDAuNzQ5MDkyLCAxLjE4NzY2LCAxLjc3MzA3LCAyLjk0MDEsIDMuNjcxIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE5MTU3NCwgMC4yNDE0NDYsIDAuNTIxNzgyLCAwLjc2ODc4NiwgMS4wOTgwMiwgMS43NTYzOCwgMi4xNjc4MiIsIFwKLSAgICAgICAgICAiMC4yMDMyNjIsIDAuMjUzMTMxLCAwLjUzMzUyNSwgMC43ODA0NDUsIDEuMTA5NywgMS43NjgwNywgMi4xNzk1MiIsIFwKLSAgICAgICAgICAiMC4yMTczODksIDAuMjY3MjU1LCAwLjU0NzU4NSwgMC43OTQ2MTEsIDEuMTIzODMsIDEuNzgyMjYsIDIuMTkzNjQiLCBcCi0gICAgICAgICAgIjAuMjMwNTgzLCAwLjI4MDQ0OSwgMC41NjA3OCwgMC44MDc3OCwgMS4xMzcwMywgMS43OTU1LCAyLjIwNjg0IiwgXAotICAgICAgICAgICIwLjI0MzM3OCwgMC4yOTMyNSwgMC41NzM2NTcsIDAuODIwNTg3LCAxLjE0OTg0LCAxLjgwODI4LCAyLjIxOTY3IiwgXAotICAgICAgICAgICIwLjI2MzI2NywgMC4zMTMxNTQsIDAuNTkzNTI5LCAwLjg0MDUyNSwgMS4xNjk3NiwgMS44MjgxNSwgMi4yMzk3MiIsIFwKLSAgICAgICAgICAiMC4yODAzODQsIDAuMzMwMjgzLCAwLjYxMDY2NiwgMC44NTc2NzMsIDEuMTg2OTIsIDEuODQ1MjgsIDIuMjU2NzIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTg1MjA2LCAwLjI4MTExNiwgMC44MzQ2NjcsIDEuMzI1NSwgMS45ODA0NiwgMy4yODYzMSwgNC4xMDQwMSIsIFwKLSAgICAgICAgICAiMC4xODUyMzksIDAuMjgxMTUyLCAwLjgzMzk3NSwgMS4zMjU5NywgMS45NzgzNCwgMy4yOTExMywgNC4xMDM4NCIsIFwKLSAgICAgICAgICAiMC4xODUyMjksIDAuMjgxMTIxLCAwLjgzMzUwOSwgMS4zMjQ1LCAxLjk3OTg2LCAzLjI5MDEzLCA0LjEwMzA0IiwgXAotICAgICAgICAgICIwLjE4NTIzNiwgMC4yODExMTcsIDAuODMzNjU1LCAxLjMyNTgsIDEuOTc5NTEsIDMuMjg5NywgNC4xMDMyMSIsIFwKLSAgICAgICAgICAiMC4xODUyMDcsIDAuMjgxMTM0LCAwLjgzMjE0OCwgMS4zMjU5NCwgMS45NzgyMywgMy4yOTAxNSwgNC4xMDQwMSIsIFwKLSAgICAgICAgICAiMC4xODUyMDQsIDAuMjgxMDcyLCAwLjgzNDY1NSwgMS4zMjU3NywgMS45NzgyOCwgMy4yODY4NSwgNC4xMDY3OCIsIFwKLSAgICAgICAgICAiMC4xODU0MjcsIDAuMjgxMTkyLCAwLjgzNDY1MSwgMS4zMjQ2NSwgMS45ODA0MywgMy4yODYxNiwgNC4xMDM3OCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTg2OTc2LCAwLjIzMDk4MiwgMC40NzcwMiwgMC42OTMyNTMsIDAuOTgxMzU3LCAxLjU1NzIsIDEuOTE2OTgiLCBcCi0gICAgICAgICAgIjAuMTk3MSwgMC4yNDEwNjIsIDAuNDg3MDYsIDAuNzAzMzgxLCAwLjk5MTQ1NSwgMS41NjcyNywgMS45MjcwNSIsIFwKLSAgICAgICAgICAiMC4yMTA2MjksIDAuMjU0NjM2LCAwLjUwMDY4MSwgMC43MTY4OTksIDEuMDA1LCAxLjU4MDgzLCAxLjk0MDYxIiwgXAotICAgICAgICAgICIwLjIyNDEzNiwgMC4yNjgxMDEsIDAuNTE0MTQzLCAwLjczMDQyOSwgMS4wMTg1MSwgMS41OTQzMywgMS45NTQzNiIsIFwKLSAgICAgICAgICAiMC4yMzc4MzIsIDAuMjgxODAyLCAwLjUyNzg2OCwgMC43NDQxNDIsIDEuMDMyMjIsIDEuNjA4MDUsIDEuOTY3OTIiLCBcCi0gICAgICAgICAgIjAuMjYwMDA4LCAwLjMwNDAyNywgMC41NTAxMTEsIDAuNzY2MzQyLCAxLjA1NDQ1LCAxLjYzMDM1LCAxLjk5MDA4IiwgXAotICAgICAgICAgICIwLjI3OTQ0MywgMC4zMjM0MjYsIDAuNTY5NTA5LCAwLjc4NTc1NSwgMS4wNzM4NiwgMS42NDk3MSwgMi4wMDk1OSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNjkwNzcsIDAuMjU0Mzc1LCAwLjc0OTEzMiwgMS4xODc0NSwgMS43NzM0NSwgMi45NDAyOCwgMy42NzEwMyIsIFwKLSAgICAgICAgICAiMC4xNjkxMiwgMC4yNTQ1MjcsIDAuNzQ4ODc0LCAxLjE4Nzc2LCAxLjc2ODUyLCAyLjkzOTgzLCAzLjY3NTMzIiwgXAotICAgICAgICAgICIwLjE2OTAzNCwgMC4yNTQzMDUsIDAuNzQ5MDg5LCAxLjE4NzczLCAxLjc3MDYyLCAyLjk0MDEzLCAzLjY3NDU0IiwgXAotICAgICAgICAgICIwLjE2OTA5MSwgMC4yNTQ1MTQsIDAuNzQ3NzMxLCAxLjE4MzY2LCAxLjc3MDU2LCAyLjkzOTk0LCAzLjY3NjA0IiwgXAotICAgICAgICAgICIwLjE2OTAzNCwgMC4yNTQzMDIsIDAuNzQ5MDkxLCAxLjE4NzgzLCAxLjc3MDgsIDIuOTQwMTEsIDMuNjY5MzkiLCBcCi0gICAgICAgICAgIjAuMTY4OTM0LCAwLjI1NDIzMSwgMC43NDkwODYsIDEuMTg3NjksIDEuNzcwNzEsIDIuOTM4MzQsIDMuNjcwNzEiLCBcCi0gICAgICAgICAgIjAuMTY5MTA4LCAwLjI1NDQ2NywgMC43NDkwODgsIDEuMTg3NTEsIDEuNzcwNzQsIDIuOTQwMywgMy42NzY2OSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xODQ1MiwgMC4yMzQyMjcsIDAuNTE0MjEyLCAwLjc2MTM0MSwgMS4wOTA5OSwgMS43NDkwMiwgMi4xNjA0MiIsIFwKLSAgICAgICAgICAiMC4xOTYzMywgMC4yNDYwNDEsIDAuNTI2MDg0LCAwLjc3MzAwMywgMS4xMDI2OCwgMS43NjEwNiwgMi4xNzMwNSIsIFwKLSAgICAgICAgICAiMC4yMTAzMTksIDAuMjYwMDEzLCAwLjU0MDAxOSwgMC43ODcwNTMsIDEuMTE2MTgsIDEuNzc0NzYsIDIuMTg2MDkiLCBcCi0gICAgICAgICAgIjAuMjIzNTAxLCAwLjI3MzIwNiwgMC41NTMyMjEsIDAuODAwMjMxLCAxLjEyOTUyLCAxLjc4NzkzLCAyLjE5OTY2IiwgXAotICAgICAgICAgICIwLjIzNjI2NSwgMC4yODU5NzQsIDAuNTY1OTk2LCAwLjgxMzAwMywgMS4xNDIyLCAxLjgwMDc2LCAyLjIxMjEzIiwgXAotICAgICAgICAgICIwLjI1NTk1NiwgMC4zMDU2ODksIDAuNTg1NzY0LCAwLjgzMjcyNSwgMS4xNjIzLCAxLjgyMDQzLCAyLjIzMjk1IiwgXAotICAgICAgICAgICIwLjI3Mjg3MywgMC4zMjI2MSwgMC42MDI2NTksIDAuODQ5NjkzLCAxLjE3OTM4LCAxLjgzNzUsIDIuMjQ5MTUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTg0Mzc4LCAwLjI4MDIzMywgMC44MzI3MjcsIDEuMzIzOTUsIDEuOTc4NzUsIDMuMjgzMTEsIDQuMDk4NDIiLCBcCi0gICAgICAgICAgIjAuMTg0MzczLCAwLjI4MDI0LCAwLjgzMTg0NywgMS4zMjI4NywgMS45NzUxNSwgMy4yODc1MSwgNC4xMDM5MyIsIFwKLSAgICAgICAgICAiMC4xODQ0MDMsIDAuMjgwMjE2LCAwLjgzNDY3OSwgMS4zMjA5OCwgMS45NzY2OCwgMy4yODA5OSwgNC4xMDAzNiIsIFwKLSAgICAgICAgICAiMC4xODQzMzIsIDAuMjgwMjQ4LCAwLjgzNDY3MywgMS4zMjEzMywgMS45NzQ5MSwgMy4yODE0NCwgNC4xMDMxOSIsIFwKLSAgICAgICAgICAiMC4xODQxODcsIDAuMjgwMjE5LCAwLjgzNDY3LCAxLjMyMTQsIDEuOTgxMTUsIDMuMjgwODcsIDQuMDk4ODQiLCBcCi0gICAgICAgICAgIjAuMTg0NDU0LCAwLjI4MDI1OCwgMC44MzIyNDYsIDEuMzIxOTksIDEuOTc1OTEsIDMuMjkxOSwgNC4xMDE2NyIsIFwKLSAgICAgICAgICAiMC4xODQ3MzIsIDAuMjgwNDI1LCAwLjgzNDY4NiwgMS4zMjExNiwgMS45NzQ5NSwgMy4yODIyNywgNC4xMDYwMyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTI4NjQ3LCAwLjE3MTgzNywgMC40MTY0MzksIDAuNjMyMzIzLCAwLjkyMDI2OSwgMS40OTU0NCwgMS44NTUxMyIsIFwKLSAgICAgICAgICAiMC4xNDA3MjcsIDAuMTgzOTE5LCAwLjQyODYwMSwgMC42NDQ0NjMsIDAuOTMyMTgzLCAxLjUwODY1LCAxLjg2NzE4IiwgXAotICAgICAgICAgICIwLjE1NTk4OCwgMC4xOTkxODcsIDAuNDQzODE0LCAwLjY1OTg0MSwgMC45NDczODMsIDEuNTIyODksIDEuODgzMjgiLCBcCi0gICAgICAgICAgIjAuMTcxMTg1LCAwLjIxNDM5NSwgMC40NTkxMDksIDAuNjc0OTgzLCAwLjk2MjY4LCAxLjUzODAyLCAxLjg5ODM2IiwgXAotICAgICAgICAgICIwLjE4NjI0MSwgMC4yMjk0NTksIDAuNDc0MTk1LCAwLjY5MDAyLCAwLjk3Nzc3NSwgMS41NTQxNSwgMS45MTMwNCIsIFwKLSAgICAgICAgICAiMC4yMDkzNzcsIDAuMjUyNTkyLCAwLjQ5NzM4MiwgMC43MTMyNTUsIDEuMDAwOTEsIDEuNTc2MzIsIDEuOTM3MzQiLCBcCi0gICAgICAgICAgIjAuMjI4MzM5LCAwLjI3MTUzNSwgMC41MTYyMDgsIDAuNzMyMjQzLCAxLjAyMDE0LCAxLjU5NjExLCAxLjk1NjE4Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE2MTE3NSwgMC4yNDc3MjksIDAuNzQ0NzA1LCAxLjE4NDIsIDEuNzY1NzUsIDIuOTQyMzUsIDMuNjc0MTQiLCBcCi0gICAgICAgICAgIjAuMTYwODg2LCAwLjI0NzY3NCwgMC43NDMyNjgsIDEuMTgxMjIsIDEuNzY0ODMsIDIuOTQyMjcsIDMuNjc0OCIsIFwKLSAgICAgICAgICAiMC4xNjExMSwgMC4yNDc3MTcsIDAuNzQ0NTI3LCAxLjE4NCwgMS43NjY0MywgMi45NDE2MywgMy42NzQwNiIsIFwKLSAgICAgICAgICAiMC4xNjExMjMsIDAuMjQ3Njc3LCAwLjc0MzM0MiwgMS4xODQyNiwgMS43Njk4MiwgMi45NDIyMiwgMy42NjgxOCIsIFwKLSAgICAgICAgICAiMC4xNjA5NjMsIDAuMjQ3NzU5LCAwLjc0NDc0MiwgMS4xODEzNywgMS43NjU3NywgMi45MzU3NywgMy42NzM3NCIsIFwKLSAgICAgICAgICAiMC4xNjE0NzEsIDAuMjQ3ODY4LCAwLjc0NDM3NiwgMS4xODEwOSwgMS43NzAyMSwgMi45MzQ0LCAzLjY2NjgiLCBcCi0gICAgICAgICAgIjAuMTYyMTYyLCAwLjI0ODIwMiwgMC43NDQyMzIsIDEuMTg0MTYsIDEuNzY5MzIsIDIuOTQxMzYsIDMuNjczMDUiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTc1NjM2LCAwLjIyNTUyNiwgMC41MDU4NjUsIDAuNzUyODg3LCAxLjA4MjEsIDEuNzQwNDYsIDIuMTUyIiwgXAotICAgICAgICAgICIwLjE4NTc4MiwgMC4yMzU2MjcsIDAuNTE1OTc5LCAwLjc2Mjk1NywgMS4wOTIyLCAxLjc1MDYsIDIuMTYyMDYiLCBcCi0gICAgICAgICAgIjAuMTk5MDQ1LCAwLjI0ODkwNCwgMC41MjkyNzEsIDAuNzc2MjQ1LCAxLjEwNTU0LCAxLjc2Mzg4LCAyLjE3NTM0IiwgXAotICAgICAgICAgICIwLjIxMjI5MSwgMC4yNjIxNjYsIDAuNTQyNTYyLCAwLjc4OTUyNCwgMS4xMTg3OCwgMS43NzcxNiwgMi4xODg2MyIsIFwKLSAgICAgICAgICAiMC4yMjU1NTIsIDAuMjc1NDI2LCAwLjU1NTgyNSwgMC44MDI4NDUsIDEuMTMyMDcsIDEuNzkwNDcsIDIuMjAxODkiLCBcCi0gICAgICAgICAgIjAuMjQ2NDE3LCAwLjI5NjI5OSwgMC41NzY2OTEsIDAuODIzNzE2LCAxLjE1Mjk4LCAxLjgxMTQ1LCAyLjIyMjgyIiwgXAotICAgICAgICAgICIwLjI2MzgyLCAwLjMxMzcyMiwgMC41OTQxNTMsIDAuODQxMTU5LCAxLjE3MDQzLCAxLjgyODgsIDIuMjQwMjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTg1MzgzLCAwLjI4MTA3OSwgMC44MzQ2OCwgMS4zMjQxNSwgMS45ODAzNCwgMy4yODY0NiwgNC4xMDM2IiwgXAotICAgICAgICAgICIwLjE4NTE3NywgMC4yODExMDYsIDAuODM0NjcyLCAxLjMyNjIsIDEuOTc4MDUsIDMuMjg5ODMsIDQuMTA3NTQiLCBcCi0gICAgICAgICAgIjAuMTg1MjA3LCAwLjI4MTEyNiwgMC44MzQ2NzQsIDEuMzI0MDYsIDEuOTc2MTcsIDMuMjg2NjEsIDQuMTA0NzMiLCBcCi0gICAgICAgICAgIjAuMTg1MjE5LCAwLjI4MTE0NiwgMC44MzQ2NjQsIDEuMzI1OTgsIDEuOTc4MDYsIDMuMjg1OTQsIDQuMTA1MTYiLCBcCi0gICAgICAgICAgIjAuMTg1MTkyLCAwLjI4MTA2NiwgMC44MzI2ODEsIDEuMzI1MTIsIDEuOTgwMjUsIDMuMjkxMjUsIDQuMTA2ODUiLCBcCi0gICAgICAgICAgIjAuMTg1MzU0LCAwLjI4MTE2NCwgMC44MzUwOCwgMS4zMjU5LCAxLjk4MTA1LCAzLjI5MDQ2LCA0LjEwNzUyIiwgXAotICAgICAgICAgICIwLjE4NTczMiwgMC4yODEzMjYsIDAuODM0NzM0LCAxLjMyMzM2LCAxLjk4MDQsIDMuMjkzMjcsIDQuMTA1OTYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxMzI0LCAwLjAwMTMzLCAwLjAwMTMzOCwgMC4wMDEzNCwgMC4wMDEzNDEsIDAuMDAxMzQyLCAwLjAwMTM0MiIsIFwKLSAgICAgICAgICAiMC4wMDEzMTMsIDAuMDAxMzE5LCAwLjAwMTMyNywgMC4wMDEzMjksIDAuMDAxMzMsIDAuMDAxMzMsIDAuMDAxMzMxIiwgXAotICAgICAgICAgICIwLjAwMTMwNiwgMC4wMDEzMTIsIDAuMDAxMzIsIDAuMDAxMzIyLCAwLjAwMTMyMywgMC4wMDEzMjQsIDAuMDAxMzIzIiwgXAotICAgICAgICAgICIwLjAwMTMsIDAuMDAxMzA3LCAwLjAwMTMxNiwgMC4wMDEzMTcsIDAuMDAxMzE4LCAwLjAwMTMxOSwgMC4wMDEzMTkiLCBcCi0gICAgICAgICAgIjAuMDAxMjk2LCAwLjAwMTMwMywgMC4wMDEzMTIsIDAuMDAxMzE0LCAwLjAwMTMxNSwgMC4wMDEzMTUsIDAuMDAxMzE2IiwgXAotICAgICAgICAgICIwLjAwMTI5LCAwLjAwMTI5NywgMC4wMDEzMDcsIDAuMDAxMzEsIDAuMDAxMzExLCAwLjAwMTMxMiwgMC4wMDEzMTIiLCBcCi0gICAgICAgICAgIjAuMDAxMjg2LCAwLjAwMTI5MywgMC4wMDEzMDQsIDAuMDAxMzA3LCAwLjAwMTMwOCwgMC4wMDEzMDksIDAuMDAxMzEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI0NTEsIDAuMDAyNDU4LCAwLjAwMjQ2NywgMC4wMDI0NjksIDAuMDAyNDcsIDAuMDAyNDcxLCAwLjAwMjQ3MSIsIFwKLSAgICAgICAgICAiMC4wMDI0NDYsIDAuMDAyNDUzLCAwLjAwMjQ2MiwgMC4wMDI0NjMsIDAuMDAyNDY0LCAwLjAwMjQ2NSwgMC4wMDI0NjUiLCBcCi0gICAgICAgICAgIjAuMDAyNDQyLCAwLjAwMjQ0OSwgMC4wMDI0NTgsIDAuMDAyNDYsIDAuMDAyNDYxLCAwLjAwMjQ2MiwgMC4wMDI0NjIiLCBcCi0gICAgICAgICAgIjAuMDAyNDM5LCAwLjAwMjQ0NiwgMC4wMDI0NTYsIDAuMDAyNDU4LCAwLjAwMjQ1OSwgMC4wMDI0NiwgMC4wMDI0NiIsIFwKLSAgICAgICAgICAiMC4wMDI0MzYsIDAuMDAyNDQ0LCAwLjAwMjQ1NCwgMC4wMDI0NTYsIDAuMDAyNDU3LCAwLjAwMjQ1OCwgMC4wMDI0NTgiLCBcCi0gICAgICAgICAgIjAuMDAyNDMyLCAwLjAwMjQ0LCAwLjAwMjQ1MSwgMC4wMDI0NTQsIDAuMDAyNDU1LCAwLjAwMjQ1NiwgMC4wMDI0NTYiLCBcCi0gICAgICAgICAgIjAuMDAyNDMsIDAuMDAyNDM4LCAwLjAwMjQ1MSwgMC4wMDI0NTMsIDAuMDAyNDU1LCAwLjAwMjQ1NiwgMC4wMDI0NTYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxMzI0LCAwLjAwMTMzLCAwLjAwMTMzOCwgMC4wMDEzMzksIDAuMDAxMzQxLCAwLjAwMTM0MSwgMC4wMDEzNDEiLCBcCi0gICAgICAgICAgIjAuMDAxMzExLCAwLjAwMTMxNywgMC4wMDEzMjUsIDAuMDAxMzI3LCAwLjAwMTMyOCwgMC4wMDEzMjgsIDAuMDAxMzI5IiwgXAotICAgICAgICAgICIwLjAwMTMwMiwgMC4wMDEzMDgsIDAuMDAxMzE3LCAwLjAwMTMxOSwgMC4wMDEzMiwgMC4wMDEzMjEsIDAuMDAxMzIxIiwgXAotICAgICAgICAgICIwLjAwMTI5NSwgMC4wMDEzMDIsIDAuMDAxMzExLCAwLjAwMTMxNCwgMC4wMDEzMTQsIDAuMDAxMzE1LCAwLjAwMTMxNSIsIFwKLSAgICAgICAgICAiMC4wMDEyOSwgMC4wMDEyOTcsIDAuMDAxMzA3LCAwLjAwMTMwOSwgMC4wMDEzMTEsIDAuMDAxMzEyLCAwLjAwMTMxMiIsIFwKLSAgICAgICAgICAiMC4wMDEyODQsIDAuMDAxMjkxLCAwLjAwMTMwMywgMC4wMDEzMDYsIDAuMDAxMzA3LCAwLjAwMTMwOCwgMC4wMDEzMDkiLCBcCi0gICAgICAgICAgIjAuMDAxMjgxLCAwLjAwMTI4OCwgMC4wMDEzMDEsIDAuMDAxMzA0LCAwLjAwMTMwNiwgMC4wMDEzMDcsIDAuMDAxMzA4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyMjYsIDAuMDAyMjY2LCAwLjAwMjI3NCwgMC4wMDIyNzUsIDAuMDAyMjc2LCAwLjAwMjI3NywgMC4wMDIyNzciLCBcCi0gICAgICAgICAgIjAuMDAyMjU2LCAwLjAwMjI2MiwgMC4wMDIyNywgMC4wMDIyNzEsIDAuMDAyMjcyLCAwLjAwMjI3MiwgMC4wMDIyNzMiLCBcCi0gICAgICAgICAgIjAuMDAyMjUsIDAuMDAyMjU2LCAwLjAwMjI2NCwgMC4wMDIyNjUsIDAuMDAyMjY2LCAwLjAwMjI2NiwgMC4wMDIyNjciLCBcCi0gICAgICAgICAgIjAuMDAyMjQ0LCAwLjAwMjI1MSwgMC4wMDIyNTksIDAuMDAyMjYxLCAwLjAwMjI2MiwgMC4wMDIyNjIsIDAuMDAyMjYyIiwgXAotICAgICAgICAgICIwLjAwMjI0LCAwLjAwMjI0NywgMC4wMDIyNTYsIDAuMDAyMjU3LCAwLjAwMjI1OCwgMC4wMDIyNTksIDAuMDAyMjU5IiwgXAotICAgICAgICAgICIwLjAwMjIzNCwgMC4wMDIyNDEsIDAuMDAyMjUyLCAwLjAwMjI1NCwgMC4wMDIyNTUsIDAuMDAyMjU2LCAwLjAwMjI1NiIsIFwKLSAgICAgICAgICAiMC4wMDIyMywgMC4wMDIyMzgsIDAuMDAyMjUsIDAuMDAyMjUyLCAwLjAwMjI1NCwgMC4wMDIyNTUsIDAuMDAyMjU1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTAxOCwgMC4wMDEwMiwgMC4wMDEwMjMsIDAuMDAxMDIzLCAwLjAwMTAyMiwgMC4wMDEwMjIsIDAuMDAxMDIyIiwgXAotICAgICAgICAgICIwLjAwMTAwOSwgMC4wMDEwMTEsIDAuMDAxMDEyLCAwLjAwMTAxMywgMC4wMDEwMTMsIDAuMDAxMDEzLCAwLjAwMTAxMyIsIFwKLSAgICAgICAgICAiMC4wMDA5OTYsIDAuMDAwOTk5LCAwLjAwMTAwMiwgMC4wMDEwMDMsIDAuMDAxMDAzLCAwLjAwMTAwMywgMC4wMDEwMDMiLCBcCi0gICAgICAgICAgIjAuMDAwOTg3LCAwLjAwMDk5LCAwLjAwMDk5NSwgMC4wMDA5OTYsIDAuMDAwOTk2LCAwLjAwMDk5NiwgMC4wMDA5OTYiLCBcCi0gICAgICAgICAgIjAuMDAwOTgsIDAuMDAwOTg0LCAwLjAwMDk5LCAwLjAwMDk5MSwgMC4wMDA5OTIsIDAuMDAwOTkyLCAwLjAwMDk5MiIsIFwKLSAgICAgICAgICAiMC4wMDA5NzQsIDAuMDAwOTc5LCAwLjAwMDk4NiwgMC4wMDA5ODgsIDAuMDAwOTg4LCAwLjAwMDk4OSwgMC4wMDA5ODkiLCBcCi0gICAgICAgICAgIjAuMDAwOTcxLCAwLjAwMDk3NywgMC4wMDA5ODUsIDAuMDAwOTg3LCAwLjAwMDk4NywgMC4wMDA5ODgsIDAuMDAwOTg5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyMDQ1LCAwLjAwMjA1MiwgMC4wMDIwNiwgMC4wMDIwNjIsIDAuMDAyMDYzLCAwLjAwMjA2NCwgMC4wMDIwNjQiLCBcCi0gICAgICAgICAgIjAuMDAyMDM1LCAwLjAwMjA0MiwgMC4wMDIwNTEsIDAuMDAyMDUyLCAwLjAwMjA1MywgMC4wMDIwNTQsIDAuMDAyMDU0IiwgXAotICAgICAgICAgICIwLjAwMjAyNiwgMC4wMDIwMzMsIDAuMDAyMDQzLCAwLjAwMjA0NSwgMC4wMDIwNDYsIDAuMDAyMDQ3LCAwLjAwMjA0NyIsIFwKLSAgICAgICAgICAiMC4wMDIwMTksIDAuMDAyMDI3LCAwLjAwMjAzOCwgMC4wMDIwNCwgMC4wMDIwNDIsIDAuMDAyMDQzLCAwLjAwMjA0MyIsIFwKLSAgICAgICAgICAiMC4wMDIwMTMsIDAuMDAyMDIyLCAwLjAwMjAzNCwgMC4wMDIwMzcsIDAuMDAyMDM5LCAwLjAwMjA0LCAwLjAwMjA0MSIsIFwKLSAgICAgICAgICAiMC4wMDIwMDgsIDAuMDAyMDE3LCAwLjAwMjAzMSwgMC4wMDIwMzUsIDAuMDAyMDM3LCAwLjAwMjAzOCwgMC4wMDIwMzkiLCBcCi0gICAgICAgICAgIjAuMDAyMDAzLCAwLjAwMjAxMywgMC4wMDIwMywgMC4wMDIwMzQsIDAuMDAyMDM2LCAwLjAwMjAzOCwgMC4wMDIwMzgiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IEFPMjFYMiAqCi0gKiAtLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKEFPMjFYMikgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjExMDc1NDsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQTApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDU2MjA1MjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA1NjAwMTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA1NjIwNTI7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMTY1LCAwLjAwMDE2NSwgMC4wMDAxNjUsIDAuMDAwMTY1LCAwLjAwMDE2NSwgMC4wMDAxNjUsIDAuMDAwMTY1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMTY5LCAwLjAwMDE2NywgMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY2Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihBMSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNTY5NTE3OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDU2NTY4NTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA1Njk1MTc7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMDY2LCAwLjAwMDA2NiwgMC4wMDAwNjYsIDAuMDAwMDY2LCAwLjAwMDA2NiwgMC4wMDAwNjYsIDAuMDAwMDY2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMTg4LCAwLjAwMDE4OCwgMC4wMDAxODgsIDAuMDAwMTg4LCAwLjAwMDE4OCwgMC4wMDAxODgsIDAuMDAwMTg4Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNTk1MjY7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNTk0OTc5OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDU5NTI2OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDA0MywgMC4wMDAwNDMsIDAuMDAwMDQzLCAwLjAwMDA0MywgMC4wMDAwNDMsIDAuMDAwMDQzLCAwLjAwMDA0MyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDM2MywgMC4wMDAzNjMsIDAuMDAwMzYzLCAwLjAwMDM2MywgMC4wMDAzNjMsIDAuMDAwMzYzLCAwLjAwMDM2MyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjI2MDMzNjsKLSAgICBmdW5jdGlvbiA6ICIoKEEwIEExKStCMCkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xODQwNjEsIDAuMzY5NjM2LCAwLjUxMzUyOCwgMC42OTMwNTQsIDAuODcyMzA0LCAxLjA1MTQ5LCAxLjIzMDY2IiwgXAotICAgICAgICAgICIwLjE5NTYxOCwgMC4zODExOTksIDAuNTI1MDc4LCAwLjcwNDYxMywgMC44ODM4MzcsIDEuMDYzMTEsIDEuMjQyMiIsIFwKLSAgICAgICAgICAiMC4yMDk2NTIsIDAuMzk1MDk0LCAwLjUzODk0OSwgMC43MTg0NTQsIDAuODk3NzA1LCAxLjA3NjkyLCAxLjI1NjA5IiwgXAotICAgICAgICAgICIwLjIyMzExOCwgMC40MDg3NDEsIDAuNTUyNiwgMC43MzIxMDUsIDAuOTExMzU3LCAxLjA5MDU3LCAxLjI2OTc4IiwgXAotICAgICAgICAgICIwLjIzNjkyNSwgMC40MjI1MDgsIDAuNTY2MzUxLCAwLjc0NTkwMSwgMC45MjUxNiwgMS4xMDQzMiwgMS4yODM1IiwgXAotICAgICAgICAgICIwLjI1ODcxMiwgMC40NDQzMDIsIDAuNTg4MTQ2LCAwLjc2NzY3NSwgMC45NDY5MjksIDEuMTI2MTIsIDEuMzA1MjkiLCBcCi0gICAgICAgICAgIjAuMjc3ODI1LCAwLjQ2MzM4NCwgMC42MDcyNjcsIDAuNzg2ODExLCAwLjk2NjA2NSwgMS4xNDUyNSwgMS4zMjQ0MiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDgxNTEsIDAuNDU4NTU2LCAwLjc0ODA5OCwgMS4xMTMyMSwgMS40NzUyMSwgMS44NDE3OSwgMi4yMDM0OCIsIFwKLSAgICAgICAgICAiMC4xMDgwOTUsIDAuNDU4OTEzLCAwLjc0Nzk3NiwgMS4xMTMxNiwgMS40NzcxMiwgMS44Mzg0OSwgMi4yMDM2MiIsIFwKLSAgICAgICAgICAiMC4xMDgyMTIsIDAuNDU5NDgsIDAuNzQ3OTAzLCAxLjExMDU5LCAxLjQ3NzM5LCAxLjgzOTI3LCAyLjIwNjk2IiwgXAotICAgICAgICAgICIwLjEwODAzOSwgMC40NTk0NjcsIDAuNzQ3ODg4LCAxLjExMzE3LCAxLjQ3NzM5LCAxLjgzOTM1LCAyLjIwMjQ3IiwgXAotICAgICAgICAgICIwLjEwODAzMiwgMC40NTk2MDEsIDAuNzQ3OTA5LCAxLjExMzE3LCAxLjQ3NTU0LCAxLjg0MTk3LCAyLjIwMzUzIiwgXAotICAgICAgICAgICIwLjEwNzg4LCAwLjQ1OTQzNSwgMC43NDkwMDYsIDEuMTEzMTksIDEuNDc3NDUsIDEuODQxMDQsIDIuMjAzNDkiLCBcCi0gICAgICAgICAgIjAuMTA3ODMzLCAwLjQ1OTM1MywgMC43NDc5MTUsIDEuMTEzMTUsIDEuNDc3NTIsIDEuODQxNjQsIDIuMjAzNDYiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTc2OTIyLCAwLjM4NzkxMywgMC41NTMxNDQsIDAuNzU5NDQ0LCAwLjk2NTUzOCwgMS4xNzE3NCwgMS4zNzc4NSIsIFwKLSAgICAgICAgICAiMC4xODg3OTgsIDAuMzk5NzAyLCAwLjU2NDg0OSwgMC43NzExMzksIDAuOTc3Mjk4LCAxLjE4MzQ4LCAxLjM4OTYyIiwgXAotICAgICAgICAgICIwLjIwMjgyNCwgMC40MTM4NTYsIDAuNTc5MDM2LCAwLjc4NTI5MSwgMC45OTE0NjYsIDEuMTk3NjQsIDEuNDAzODMiLCBcCi0gICAgICAgICAgIjAuMjE2MjI4LCAwLjQyNzExOSwgMC41OTIzMTMsIDAuNzk4NTYzLCAxLjAwNDczLCAxLjIxMDg5LCAxLjQxNzA2IiwgXAotICAgICAgICAgICIwLjIyODk2MywgMC40Mzk4ODcsIDAuNjA1MDg1LCAwLjgxMTMzNCwgMS4wMTc0OSwgMS4yMjM2OCwgMS40Mjk4MyIsIFwKLSAgICAgICAgICAiMC4yNDkwOTQsIDAuNDU5OTgxLCAwLjYyNTE3LCAwLjgzMTQzMiwgMS4wMzc1OSwgMS4yNDM3OCwgMS40NDk5MyIsIFwKLSAgICAgICAgICAiMC4yNjY0OTUsIDAuNDc3NDM5LCAwLjY0MjYzNCwgMC44NDg5MDEsIDEuMDU1MDYsIDEuMjYxMjYsIDEuNDY3NDciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTE0NzczLCAwLjUxMjg4OSwgMC44NDAxNDYsIDEuMjQ3ODIsIDEuNjYwNzgsIDIuMDc0LCAyLjQ4MTg0IiwgXAotICAgICAgICAgICIwLjExNDc2LCAwLjUxNDIxMiwgMC44NDE2MzIsIDEuMjUxNTgsIDEuNjYzMTcsIDIuMDcxMDksIDIuNDgyOSIsIFwKLSAgICAgICAgICAiMC4xMTQ3NTgsIDAuNTE0MjExLCAwLjg0MDI3OCwgMS4yNTE2OCwgMS42NjA4MywgMi4wNzExNCwgMi40ODQ5MyIsIFwKLSAgICAgICAgICAiMC4xMTQ4MTEsIDAuNTEyNTkzLCAwLjg0MTQzMywgMS4yNTE0NiwgMS42NjI5MSwgMi4wNzA1OCwgMi40ODQ4NiIsIFwKLSAgICAgICAgICAiMC4xMTQ4MzYsIDAuNTE0MjEzLCAwLjg0MTQ4MSwgMS4yNTE1NiwgMS42NjMyNywgMi4wNzExNiwgMi40ODU2NiIsIFwKLSAgICAgICAgICAiMC4xMTQ3MjQsIDAuNTE0MTkzLCAwLjg0MTQ2OCwgMS4yNTE1OCwgMS42NjMzLCAyLjA3MTI1LCAyLjQ4NTc3IiwgXAotICAgICAgICAgICIwLjExNDcyNCwgMC41MTQyMDEsIDAuODQwMzY4LCAxLjI1MTY1LCAxLjY2MzM5LCAyLjA3MTM3LCAyLjQ4Mzc3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkExIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNzkwOTksIDAuMzY0NjA5LCAwLjUwODQ2MiwgMC42ODc5MjcsIDAuODY3MjE2LCAxLjA0NjQ4LCAxLjIyNTU4IiwgXAotICAgICAgICAgICIwLjE4OTIwMiwgMC4zNzQ3NzIsIDAuNTE4NjIxLCAwLjY5ODA5MSwgMC44NzczNzksIDEuMDU2NjQsIDEuMjM1NzQiLCBcCi0gICAgICAgICAgIjAuMjAyNTMsIDAuMzg4MTA1LCAwLjUzMTk4OCwgMC43MTE1MjQsIDAuODkwNzU1LCAxLjA2OTk2LCAxLjI0OTEyIiwgXAotICAgICAgICAgICIwLjIxNjI5LCAwLjQwMTg2MywgMC41NDU3MDgsIDAuNzI1MjM0LCAwLjkwNDQ4NCwgMS4wODM2OSwgMS4yNjI4NiIsIFwKLSAgICAgICAgICAiMC4yMjkxODUsIDAuNDE0ODE5LCAwLjU1ODY2NywgMC43MzgxOTUsIDAuOTE3NDQ4LCAxLjA5NjY2LCAxLjI3NTkzIiwgXAotICAgICAgICAgICIwLjI1MTk2OSwgMC40Mzc1NTIsIDAuNTgxNDAzLCAwLjc2MDkzOCwgMC45NDAxOTQsIDEuMTE5MzksIDEuMjk4NTUiLCBcCi0gICAgICAgICAgIjAuMjcxNTY4LCAwLjQ1NzAwNSwgMC42MDA4NzcsIDAuNzgwMzk3LCAwLjk1OTY1NSwgMS4xMzg4NywgMS4zMTgxNiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDgyODEsIDAuNDU5NjExLCAwLjc0Nzk0NywgMS4xMTI4NCwgMS40Nzc0NywgMS44NDIyOSwgMi4yMDM0MyIsIFwKLSAgICAgICAgICAiMC4xMDgxNDYsIDAuNDU5NTk3LCAwLjc0NzkwNiwgMS4xMTIzOSwgMS40Nzc0LCAxLjg0MjE5LCAyLjIwMzI5IiwgXAotICAgICAgICAgICIwLjEwODE1MSwgMC40NTg4NDIsIDAuNzQ3OTYsIDEuMTEzMTcsIDEuNDc3NDEsIDEuODM5MywgMi4yMDM1NyIsIFwKLSAgICAgICAgICAiMC4xMDc5ODIsIDAuNDU5NDY0LCAwLjc0ODgyMywgMS4xMTMyLCAxLjQ3NzQxLCAxLjgzOTE1LCAyLjIwNjg4IiwgXAotICAgICAgICAgICIwLjEwODAxLCAwLjQ1OTUyMywgMC43NDg3ODMsIDEuMTEzMTUsIDEuNDc3MzksIDEuODM5MzcsIDIuMjA2ODgiLCBcCi0gICAgICAgICAgIjAuMTA3ODY1LCAwLjQ1OTQyMywgMC43NDkwMzUsIDEuMTEzMTYsIDEuNDc3NDQsIDEuODQxMjgsIDIuMjAzNTUiLCBcCi0gICAgICAgICAgIjAuMTA3OTA4LCAwLjQ1OTQ4MywgMC43NDkwMjIsIDEuMTEzMTQsIDEuNDc3MzgsIDEuODM5MzQsIDIuMjA2NzkiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTcwMDY5LCAwLjM4MDE0OSwgMC41NDUxNzgsIDAuNzUxMzY2LCAwLjk1NzUyNSwgMS4xNjM3OCwgMS4zNzAwMSIsIFwKLSAgICAgICAgICAiMC4xODE2OTksIDAuMzkyMDY1LCAwLjU1NzEwNiwgMC43NjMzNzMsIDAuOTY5NzIsIDEuMTc1OTMsIDEuMzgxOTEiLCBcCi0gICAgICAgICAgIjAuMTk1ODI2LCAwLjQwNjE4NSwgMC41NzEyMjMsIDAuNzc3Mzg0LCAwLjk4MzgzMSwgMS4xODk3NiwgMS4zOTU5OSIsIFwKLSAgICAgICAgICAiMC4yMDkwNzQsIDAuNDE5NDgyLCAwLjU4NDUwMiwgMC43OTA2MzcsIDAuOTk3MDcxLCAxLjIwMzA0LCAxLjQwOTkzIiwgXAotICAgICAgICAgICIwLjIyMTg2NCwgMC40MzIyNDksIDAuNTk3MzQzLCAwLjgwMzU0LCAxLjAwOTg0LCAxLjIxNjA4LCAxLjQyMjQ0IiwgXAotICAgICAgICAgICIwLjI0MjAyNCwgMC40NTIzMTUsIDAuNjE3MzQ4LCAwLjgyMzUxMiwgMS4wMjk5NiwgMS4yMzU5MiwgMS40NDIxNyIsIFwKLSAgICAgICAgICAiMC4yNTg5MzQsIDAuNDY5MzM3LCAwLjYzNDQzMSwgMC44NDA1NjcsIDEuMDQ2ODUsIDEuMjUyOTYsIDEuNDU5ODUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTEzODg4LCAwLjUxMjAyOSwgMC44Mzg2MjMsIDEuMjUxOTIsIDEuNjYxMTYsIDIuMDY3ODgsIDIuNDgxNTciLCBcCi0gICAgICAgICAgIjAuMTE0MTIsIDAuNTEzMjkyLCAwLjgzODUwMywgMS4yNDczNiwgMS42NjA1MSwgMi4wNzE0MywgMi40ODQzMiIsIFwKLSAgICAgICAgICAiMC4xMTM5OTksIDAuNTEyNjk3LCAwLjgzODQxMiwgMS4yNTE4OSwgMS42NjA1NiwgMi4wNzUzMywgMi40NzgxOSIsIFwKLSAgICAgICAgICAiMC4xMTM5MTMsIDAuNTExOTI5LCAwLjgzOTQsIDEuMjUxOTEsIDEuNjYwNTMsIDIuMDY4NTQsIDIuNDc5MDMiLCBcCi0gICAgICAgICAgIjAuMTEzNzk2LCAwLjUxMzI2MywgMC44Mzc3MDgsIDEuMjQ3OTIsIDEuNjU5MTQsIDIuMDcwNzEsIDIuNDgwMyIsIFwKLSAgICAgICAgICAiMC4xMTM3MTcsIDAuNTExNzUyLCAwLjgzOTM0LCAxLjI1MTg4LCAxLjY2MDU5LCAyLjA3NDcsIDIuNDc3NzUiLCBcCi0gICAgICAgICAgIjAuMTEzOTEzLCAwLjUxMzI5OSwgMC44Mzg1MTksIDEuMjUwMjksIDEuNjU5ODYsIDIuMDc1MzMsIDIuNDc3OTkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjAiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwODE1MiwgMC4yODgxMTUsIDAuNDMxMzQ4LCAwLjYxMDM4MywgMC43ODk3MDIsIDAuOTY4NzY0LCAxLjE0NzQ1IiwgXAotICAgICAgICAgICIwLjExOTkzMywgMC4yOTk5MjEsIDAuNDQzMTUzLCAwLjYyMjE5MiwgMC44MDE0NzQsIDAuOTgwNDExLCAxLjE1OTE5IiwgXAotICAgICAgICAgICIwLjEzNTM4MywgMC4zMTUzODksIDAuNDU4NjE5LCAwLjYzNzgwOCwgMC44MTY5NDUsIDAuOTk1NzkzLCAxLjE3NDgzIiwgXAotICAgICAgICAgICIwLjE1MDY2NywgMC4zMzA3MDUsIDAuNDczOTQ2LCAwLjY1Mjk4OCwgMC44MzIyNjMsIDEuMDExMzMsIDEuMTkwMTIiLCBcCi0gICAgICAgICAgIjAuMTY1ODU4LCAwLjM0NTk1OSwgMC40ODkxOCwgMC42NjgyNDMsIDAuODQ3MjY2LCAxLjAyNjMyLCAxLjIwNTUxIiwgXAotICAgICAgICAgICIwLjE5MDA4OCwgMC4zNzAxNjIsIDAuNTEzNDM5LCAwLjY5MjQ3MSwgMC44NzE1NjksIDEuMDUwNTksIDEuMjI5NjYiLCBcCi0gICAgICAgICAgIjAuMjEwNTA4LCAwLjM5MDU5NiwgMC41MzM4NTIsIDAuNzEzMTcsIDAuODkyMjcxLCAxLjA3MTAzLCAxLjI1MDAyIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5MzY0NiwgMC40NTE1NTMsIDAuNzQyNDcxLCAxLjEwNzQ2LCAxLjQ2ODg3LCAxLjgzMjY1LCAyLjIwMTk4IiwgXAotICAgICAgICAgICIwLjA5MzY3NSwgMC40NTA3NzMsIDAuNzQyNDU5LCAxLjEwNzQ2LCAxLjQ2ODkyLCAxLjgzMjc5LCAyLjIwMjQ0IiwgXAotICAgICAgICAgICIwLjA5MzY2MywgMC40NTE0MTgsIDAuNzQyNDM4LCAxLjEwNTM0LCAxLjQ2ODU5LCAxLjgzMjk0LCAyLjE5ODg0IiwgXAotICAgICAgICAgICIwLjA5MzcyNywgMC40NTA5NCwgMC43NDI0NTMsIDEuMTA3NDMsIDEuNDY4NTksIDEuODM3MDYsIDIuMjAxODMiLCBcCi0gICAgICAgICAgIjAuMDkzODIxLCAwLjQ1MTE0MywgMC43NDI0MDEsIDEuMTA1MzksIDEuNDY4MzMsIDEuODMzNjQsIDIuMjAyMzQiLCBcCi0gICAgICAgICAgIjAuMDk0MTc3LCAwLjQ1MDk4MywgMC43NDI1NDYsIDEuMTA3MDUsIDEuNDY5NjcsIDEuODM3LCAyLjIwMTQzIiwgXAotICAgICAgICAgICIwLjA5NTIxLCAwLjQ1MTAyMSwgMC43NDI0NjYsIDEuMTA1NDIsIDEuNDY4NTMsIDEuODMzOTUsIDIuMjAxMzIiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTYwNjg2LCAwLjM3MTU4MiwgMC41MzY3MDYsIDAuNzQzMDIzLCAwLjk0OTE4NCwgMS4xNTUzNiwgMS4zNjE1MSIsIFwKLSAgICAgICAgICAiMC4xNzA5NDgsIDAuMzgxODQxLCAwLjU0Njk3MywgMC43NTMyODgsIDAuOTU5NDUsIDEuMTY1NjIsIDEuMzcxNzgiLCBcCi0gICAgICAgICAgIjAuMTgzNzQ4LCAwLjM5NDY4MiwgMC41NTk4MywgMC43NjYxMjksIDAuOTcyMjkyLCAxLjE3ODQ3LCAxLjM4NDYyIiwgXAotICAgICAgICAgICIwLjE5NzE5MSwgMC40MDgyLCAwLjU3MzQyOSwgMC43Nzk2OTksIDAuOTg1ODMxLCAxLjE5MiwgMS4zOTgxNSIsIFwKLSAgICAgICAgICAiMC4yMTA1MzYsIDAuNDIxNTE1LCAwLjU4Njc0MiwgMC43OTMwMiwgMC45OTkxNTcsIDEuMjA1MzQsIDEuNDExNDciLCBcCi0gICAgICAgICAgIjAuMjMxODMyLCAwLjQ0MjgwNSwgMC42MDc5NTcsIDAuODE0Mjg1LCAxLjAyMDQ1LCAxLjIyNjY1LCAxLjQzMjg1IiwgXAotICAgICAgICAgICIwLjI1MDI5MSwgMC40NjEzMDcsIDAuNjI2NDYyLCAwLjgzMjc5OSwgMS4wMzg5NywgMS4yNDUxNiwgMS40NTEzMSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTQ3NzcsIDAuNTEzMTU5LCAwLjg0MTU2MSwgMS4yNTE5MiwgMS42NjM0OCwgMi4wNzA4OCwgMi40ODM5NSIsIFwKLSAgICAgICAgICAiMC4xMTQ3ODMsIDAuNTEzMTYyLCAwLjgzOTg2NSwgMS4yNTE5MiwgMS42NjM1LCAyLjA3MDczLCAyLjQ4NDc1IiwgXAotICAgICAgICAgICIwLjExNDkwMiwgMC41MTMzNzEsIDAuODQxNjM3LCAxLjI1MTg4LCAxLjY2MzE2LCAyLjA3MzYyLCAyLjQ4MzUiLCBcCi0gICAgICAgICAgIjAuMTE0Njc3LCAwLjUxNDIxOSwgMC44NDA5OTcsIDEuMjUxODksIDEuNjYwNzMsIDIuMDc0MzksIDIuNDgxMzciLCBcCi0gICAgICAgICAgIjAuMTE0NjQ2LCAwLjUxNDIwNiwgMC44NDAxOTIsIDEuMjUxODksIDEuNjYyMDUsIDIuMDc0MjgsIDIuNDgxNzciLCBcCi0gICAgICAgICAgIjAuMTE0NjYyLCAwLjUxNDE5LCAwLjg0MTQzOCwgMS4yNTE4OSwgMS42NjM0NSwgMi4wNzM2MywgMi40ODUwOSIsIFwKLSAgICAgICAgICAiMC4xMTQ5ODEsIDAuNTE0MjMyLCAwLjg0MTQ4NSwgMS4yNTE2MSwgMS42NjMyNSwgMi4wNzE0MiwgMi40ODQ2OSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDIwOTYsIDAuMDAyMTQ3LCAwLjAwMjE1NCwgMC4wMDIxNTgsIDAuMDAyMTYsIDAuMDAyMTYsIDAuMDAyMTYxIiwgXAotICAgICAgICAgICIwLjAwMjA4NiwgMC4wMDIxMzcsIDAuMDAyMTQ0LCAwLjAwMjE0NywgMC4wMDIxNDksIDAuMDAyMTUsIDAuMDAyMTUxIiwgXAotICAgICAgICAgICIwLjAwMjA3OSwgMC4wMDIxMzEsIDAuMDAyMTM4LCAwLjAwMjE0MSwgMC4wMDIxNDMsIDAuMDAyMTQ1LCAwLjAwMjE0NSIsIFwKLSAgICAgICAgICAiMC4wMDIwNzQsIDAuMDAyMTI2LCAwLjAwMjEzMywgMC4wMDIxMzcsIDAuMDAyMTM5LCAwLjAwMjE0LCAwLjAwMjE0IiwgXAotICAgICAgICAgICIwLjAwMjA2OSwgMC4wMDIxMjIsIDAuMDAyMTMsIDAuMDAyMTMzLCAwLjAwMjEzNiwgMC4wMDIxMzYsIDAuMDAyMTM4IiwgXAotICAgICAgICAgICIwLjAwMjA2MiwgMC4wMDIxMTYsIDAuMDAyMTI0LCAwLjAwMjEyOCwgMC4wMDIxMzEsIDAuMDAyMTMyLCAwLjAwMjEzMyIsIFwKLSAgICAgICAgICAiMC4wMDIwNTgsIDAuMDAyMTEyLCAwLjAwMjEyMSwgMC4wMDIxMjUsIDAuMDAyMTI4LCAwLjAwMjEyOSwgMC4wMDIxMyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzIxLCAwLjAwMzI3MywgMC4wMDMyODEsIDAuMDAzMjg1LCAwLjAwMzI4NywgMC4wMDMyODksIDAuMDAzMjkiLCBcCi0gICAgICAgICAgIjAuMDAzMjA1LCAwLjAwMzI2OCwgMC4wMDMyNzYsIDAuMDAzMjgsIDAuMDAzMjgzLCAwLjAwMzI4NCwgMC4wMDMyODUiLCBcCi0gICAgICAgICAgIjAuMDAzMjAxLCAwLjAwMzI2NSwgMC4wMDMyNzMsIDAuMDAzMjc4LCAwLjAwMzI4LCAwLjAwMzI4MSwgMC4wMDMyODIiLCBcCi0gICAgICAgICAgIjAuMDAzMTk4LCAwLjAwMzI2MywgMC4wMDMyNzEsIDAuMDAzMjc1LCAwLjAwMzI3NywgMC4wMDMyNzksIDAuMDAzMjgiLCBcCi0gICAgICAgICAgIjAuMDAzMTk0LCAwLjAwMzI2LCAwLjAwMzI2OSwgMC4wMDMyNzMsIDAuMDAzMjc2LCAwLjAwMzI3NywgMC4wMDMyNzgiLCBcCi0gICAgICAgICAgIjAuMDAzMTg5LCAwLjAwMzI1NiwgMC4wMDMyNjUsIDAuMDAzMjcsIDAuMDAzMjczLCAwLjAwMzI3NCwgMC4wMDMyNzUiLCBcCi0gICAgICAgICAgIjAuMDAzMTg0LCAwLjAwMzI1MywgMC4wMDMyNjMsIDAuMDAzMjY5LCAwLjAwMzI3MiwgMC4wMDMyNzMsIDAuMDAzMjc0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjA5NywgMC4wMDIxNDcsIDAuMDAyMTU0LCAwLjAwMjE1NywgMC4wMDIxNTksIDAuMDAyMTYxLCAwLjAwMjE2MSIsIFwKLSAgICAgICAgICAiMC4wMDIwODQsIDAuMDAyMTM1LCAwLjAwMjE0MiwgMC4wMDIxNDcsIDAuMDAyMTQ4LCAwLjAwMjE0OSwgMC4wMDIxNSIsIFwKLSAgICAgICAgICAiMC4wMDIwNzYsIDAuMDAyMTI3LCAwLjAwMjEzNSwgMC4wMDIxMzgsIDAuMDAyMTQsIDAuMDAyMTQyLCAwLjAwMjE0MiIsIFwKLSAgICAgICAgICAiMC4wMDIwNjksIDAuMDAyMTIxLCAwLjAwMjEyOCwgMC4wMDIxMzMsIDAuMDAyMTM1LCAwLjAwMjEzNiwgMC4wMDIxMzciLCBcCi0gICAgICAgICAgIjAuMDAyMDYyLCAwLjAwMjExNSwgMC4wMDIxMjMsIDAuMDAyMTI4LCAwLjAwMjEzLCAwLjAwMjEzMiwgMC4wMDIxMzIiLCBcCi0gICAgICAgICAgIjAuMDAyMDU2LCAwLjAwMjEwOSwgMC4wMDIxMTksIDAuMDAyMTIzLCAwLjAwMjEyNiwgMC4wMDIxMjgsIDAuMDAyMTI5IiwgXAotICAgICAgICAgICIwLjAwMjA1MSwgMC4wMDIxMDUsIDAuMDAyMTE1LCAwLjAwMjEyMSwgMC4wMDIxMjQsIDAuMDAyMTI1LCAwLjAwMjEyNyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzAyMywgMC4wMDMwODIsIDAuMDAzMDksIDAuMDAzMDk0LCAwLjAwMzA5NiwgMC4wMDMwOTcsIDAuMDAzMDk4IiwgXAotICAgICAgICAgICIwLjAwMzAxOSwgMC4wMDMwOCwgMC4wMDMwODgsIDAuMDAzMDkxLCAwLjAwMzA5MywgMC4wMDMwOTUsIDAuMDAzMDk1IiwgXAotICAgICAgICAgICIwLjAwMzAxMywgMC4wMDMwNzYsIDAuMDAzMDgzLCAwLjAwMzA4NywgMC4wMDMwODksIDAuMDAzMDksIDAuMDAzMDkiLCBcCi0gICAgICAgICAgIjAuMDAzMDA5LCAwLjAwMzA3MiwgMC4wMDMwNzksIDAuMDAzMDgzLCAwLjAwMzA4NSwgMC4wMDMwODYsIDAuMDAzMDg3IiwgXAotICAgICAgICAgICIwLjAwMzAwNCwgMC4wMDMwNjcsIDAuMDAzMDc1LCAwLjAwMzA3OSwgMC4wMDMwODEsIDAuMDAzMDgyLCAwLjAwMzA4MyIsIFwKLSAgICAgICAgICAiMC4wMDI5OTYsIDAuMDAzMDYyLCAwLjAwMzA3LCAwLjAwMzA3NSwgMC4wMDMwNzcsIDAuMDAzMDc4LCAwLjAwMzA3OSIsIFwKLSAgICAgICAgICAiMC4wMDI5ODksIDAuMDAzMDU3LCAwLjAwMzA2NywgMC4wMDMwNzIsIDAuMDAzMDc0LCAwLjAwMzA3NiwgMC4wMDMwNzciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxNzYyLCAwLjAwMTc4NCwgMC4wMDE3ODYsIDAuMDAxNzg3LCAwLjAwMTc4NywgMC4wMDE3ODgsIDAuMDAxNzg5IiwgXAotICAgICAgICAgICIwLjAwMTc1NCwgMC4wMDE3NzgsIDAuMDAxNzgsIDAuMDAxNzgxLCAwLjAwMTc4MiwgMC4wMDE3ODIsIDAuMDAxNzgzIiwgXAotICAgICAgICAgICIwLjAwMTc0MSwgMC4wMDE3NjksIDAuMDAxNzcyLCAwLjAwMTc3MywgMC4wMDE3NzMsIDAuMDAxNzc0LCAwLjAwMTc3NCIsIFwKLSAgICAgICAgICAiMC4wMDE3MjYsIDAuMDAxNzYsIDAuMDAxNzYzLCAwLjAwMTc2NSwgMC4wMDE3NjYsIDAuMDAxNzY2LCAwLjAwMTc2NyIsIFwKLSAgICAgICAgICAiMC4wMDE3MTUsIDAuMDAxNzUzLCAwLjAwMTc1OCwgMC4wMDE3NiwgMC4wMDE3NjEsIDAuMDAxNzYyLCAwLjAwMTc2MiIsIFwKLSAgICAgICAgICAiMC4wMDE3MDQsIDAuMDAxNzQ1LCAwLjAwMTc1MSwgMC4wMDE3NTQsIDAuMDAxNzU1LCAwLjAwMTc1NiwgMC4wMDE3NTciLCBcCi0gICAgICAgICAgIjAuMDAxNjk2LCAwLjAwMTc0LCAwLjAwMTc0NywgMC4wMDE3NTEsIDAuMDAxNzUzLCAwLjAwMTc1NCwgMC4wMDE3NTQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI4NDgsIDAuMDAyOTExLCAwLjAwMjkxOSwgMC4wMDI5MjMsIDAuMDAyOTI2LCAwLjAwMjkyNywgMC4wMDI5MjgiLCBcCi0gICAgICAgICAgIjAuMDAyODQsIDAuMDAyOTAzLCAwLjAwMjkxMSwgMC4wMDI5MTYsIDAuMDAyOTE4LCAwLjAwMjkxOSwgMC4wMDI5MiIsIFwKLSAgICAgICAgICAiMC4wMDI4MywgMC4wMDI4OTUsIDAuMDAyOTA0LCAwLjAwMjkwOCwgMC4wMDI5MTEsIDAuMDAyOTEyLCAwLjAwMjkxMyIsIFwKLSAgICAgICAgICAiMC4wMDI4MjIsIDAuMDAyODg5LCAwLjAwMjg5OCwgMC4wMDI5MDMsIDAuMDAyOTA2LCAwLjAwMjkwNywgMC4wMDI5MDgiLCBcCi0gICAgICAgICAgIjAuMDAyODE2LCAwLjAwMjg4MywgMC4wMDI4OTMsIDAuMDAyODk5LCAwLjAwMjkwMiwgMC4wMDI5MDMsIDAuMDAyOTA1IiwgXAotICAgICAgICAgICIwLjAwMjgwNSwgMC4wMDI4NzYsIDAuMDAyODg3LCAwLjAwMjg5NCwgMC4wMDI4OTgsIDAuMDAyOSwgMC4wMDI5MDEiLCBcCi0gICAgICAgICAgIjAuMDAyOCwgMC4wMDI4NzEsIDAuMDAyODg0LCAwLjAwMjg5MiwgMC4wMDI4OTYsIDAuMDAyODk4LCAwLjAwMjkiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IEFPMjFYTCAqCi0gKiAtLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKEFPMjFYTCkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjA2MDcxMzc7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2MTQyNzM7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjEyMjE4OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDYxNDI3MzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxNjUsIDAuMDAwMTY1LCAwLjAwMDE2NSwgMC4wMDAxNjUsIDAuMDAwMTY1LCAwLjAwMDE2NSwgMC4wMDAxNjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxNywgMC4wMDAxNjcsIDAuMDAwMTY2LCAwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQTEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYyNzc1NTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MjM5NzU7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjI3NzU1OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDA3MywgMC4wMDAwNzMsIDAuMDAwMDczLCAwLjAwMDA3MywgMC4wMDAwNzMsIDAuMDAwMDczLCAwLjAwMDA3MyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDE4OCwgMC4wMDAxODgsIDAuMDAwMTg4LCAwLjAwMDE4OCwgMC4wMDAxODgsIDAuMDAwMTg4LCAwLjAwMDE4OCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQjApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYzNjcwMTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MzY1Mzc7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjM2NzAxOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDA0LCAwLjAwMDA0LCAwLjAwMDA0LCAwLjAwMDA0LCAwLjAwMDA0LCAwLjAwMDA0LCAwLjAwMDA0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzE3LCAwLjAwMDMxNywgMC4wMDAzMTcsIDAuMDAwMzE3LCAwLjAwMDMxNywgMC4wMDAzMTcsIDAuMDAwMzE3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMDY1MzYzMzsKLSAgICBmdW5jdGlvbiA6ICIoKEEwIEExKStCMCkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMzMwOTUsIDAuMjU4NTg1LCAwLjQ4Njg3NCwgMC44NjYyNTMsIDEuMjQ1MzIsIDIuMTI5MzQsIDIuNjM0NCIsIFwKLSAgICAgICAgICAiMC4yNDQ1NDEsIDAuMjcwMDMzLCAwLjQ5ODMyMSwgMC44Nzc2OTUsIDEuMjU2NzYsIDIuMTQwNzgsIDIuNjQ1ODQiLCBcCi0gICAgICAgICAgIjAuMjU4Mjc3LCAwLjI4Mzc2NSwgMC41MTIwNTYsIDAuODkxNTQ2LCAxLjI3MDQ4LCAyLjE1NDYsIDIuNjU5NTciLCBcCi0gICAgICAgICAgIjAuMjcxODMzLCAwLjI5NzMzLCAwLjUyNTYyMiwgMC45MDUwMzcsIDEuMjg0MDUsIDIuMTY4MjgsIDIuNjczMTUiLCBcCi0gICAgICAgICAgIjAuMjg1NTUzLCAwLjMxMTAxOSwgMC41MzkzMzIsIDAuOTE4NzIzLCAxLjI5Nzg3LCAyLjE4MTgsIDIuNjg2ODMiLCBcCi0gICAgICAgICAgIjAuMzA3MjY3LCAwLjMzMjc0MywgMC41NjEwNTksIDAuOTQwNDU0LCAxLjMxOTU1LCAyLjIwMzUzLCAyLjcwODU2IiwgXAotICAgICAgICAgICIwLjMyNTc3MywgMC4zNTEyNjUsIDAuNTc5NTc3LCAwLjk1ODk3MywgMS4zMzgwMSwgMi4yMjIzMywgMi43MjcxMiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yNzU2MiwgMC4zMjY0MTIsIDAuNzg2NzE3LCAxLjU1MzY5LCAyLjMyMTg4LCA0LjExNDEzLCA1LjEzNzYzIiwgXAotICAgICAgICAgICIwLjI3NTYxMywgMC4zMjY0MDIsIDAuNzg2Njk1LCAxLjU1MzY1LCAyLjMyMTg5LCA0LjExOTE4LCA1LjEzNzU4IiwgXAotICAgICAgICAgICIwLjI3NTQ1NiwgMC4zMjYzOSwgMC43ODY2NTUsIDEuNTU1NTYsIDIuMzIxNCwgNC4xMjEwNiwgNS4xNDA2MSIsIFwKLSAgICAgICAgICAiMC4yNzUyMzgsIDAuMzI2Mzk3LCAwLjc4NjY3LCAxLjU1MjY5LCAyLjMyMTc5LCA0LjEyMDQ5LCA1LjE0MDgzIiwgXAotICAgICAgICAgICIwLjI3NTUwNSwgMC4zMjU3NzgsIDAuNzg1NTEsIDEuNTUzNjIsIDIuMzI1MDEsIDQuMTIwNDMsIDUuMTQwNjkiLCBcCi0gICAgICAgICAgIjAuMjc1NTI4LCAwLjMyNjMxNSwgMC43ODY2MzUsIDEuNTUzNTcsIDIuMzIwNDEsIDQuMTIwMzgsIDUuMTQwNjQiLCBcCi0gICAgICAgICAgIjAuMjc1NTM5LCAwLjMyNTYxOSwgMC43ODY2NDcsIDEuNTUzNjQsIDIuMzIxNSwgNC4xMjA1OSwgNS4xNDA3NSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yNDYzOSwgMC4yNzYxNzEsIDAuNTQzNzUsIDAuOTg5MzU3LCAxLjQzNDg2LCAyLjQ3NDYxLCAzLjA2ODE4IiwgXAotICAgICAgICAgICIwLjI1ODAxMiwgMC4yODc3OTgsIDAuNTU1Mzc5LCAxLjAwMDk4LCAxLjQ0NjUsIDIuNDg1ODksIDMuMDc5OTQiLCBcCi0gICAgICAgICAgIjAuMjcyMTE0LCAwLjMwMTkwMSwgMC41Njk0ODQsIDEuMDE1MDgsIDEuNDYwNiwgMi41LCAzLjA5NDIiLCBcCi0gICAgICAgICAgIjAuMjg1MzI1LCAwLjMxNTExMSwgMC41ODI2OTgsIDEuMDI4MzQsIDEuNDczODIsIDIuNTEzMjYsIDMuMTA3MDUiLCBcCi0gICAgICAgICAgIjAuMjk4MTM0LCAwLjMyNzkyNywgMC41OTU1MzQsIDEuMDQxMTMsIDEuNDg2NjEsIDIuNTI2MDIsIDMuMTE5OTUiLCBcCi0gICAgICAgICAgIjAuMzE4MDk2LCAwLjM0Nzg3NCwgMC42MTU1NDcsIDEuMDYxMSwgMS41MDY2MSwgMi41NDYsIDMuMTM5OTMiLCBcCi0gICAgICAgICAgIjAuMzM0ODU4LCAwLjM2NDYzNiwgMC42MzIyNjUsIDEuMDc3ODksIDEuNTIzNDIsIDIuNTYyNzgsIDMuMTU2NzEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzEzNTM0LCAwLjM3MjE1MSwgMC45MDA2NDUsIDEuNzgxOTksIDIuNjY4MTcsIDQuNzIwNjMsIDUuODkxODkiLCBcCi0gICAgICAgICAgIjAuMzEzNTU0LCAwLjM3MjE1NiwgMC45MDA1MDcsIDEuNzgyMTQsIDIuNjY3MTksIDQuNzIyODcsIDUuODkxNjQiLCBcCi0gICAgICAgICAgIjAuMzEzNTUsIDAuMzcyMTU1LCAwLjkwMDQ4OSwgMS43ODIyMSwgMi42NjYxNiwgNC43MjI4MywgNS44OTIzNyIsIFwKLSAgICAgICAgICAiMC4zMTI5MTYsIDAuMzcyMTQyLCAwLjkwMDU1NywgMS43ODM1MiwgMi42NjUzMSwgNC43MjE4LCA1Ljg5MTk5IiwgXAotICAgICAgICAgICIwLjMxMzUyMSwgMC4zNzIxMzcsIDAuODk4NDksIDEuNzgzOSwgMi42Njg2MiwgNC43MjI0MiwgNS44OTE1MiIsIFwKLSAgICAgICAgICAiMC4zMTM1NTgsIDAuMzcyMDcxLCAwLjg5OTg3OCwgMS43ODMxOSwgMi42NjQwNiwgNC43MjE2NCwgNS44OTE1MyIsIFwKLSAgICAgICAgICAiMC4zMTM1OTgsIDAuMzcxNDgzLCAwLjg5OTM4NiwgMS43ODM1LCAyLjY2NzM0LCA0LjcyMTY4LCA1Ljg5MTUyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkExIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMjgxMTgsIDAuMjUzNTgyLCAwLjQ4MTg4NSwgMC44NjEyNzgsIDEuMjQwMzUsIDIuMTI0MzQsIDIuNjI5NDEiLCBcCi0gICAgICAgICAgIjAuMjM4MjMzLCAwLjI2MzcwNCwgMC40OTIwMjcsIDAuODcxMzg3LCAxLjI1MDQyLCAyLjEzNDU2LCAyLjYzOTUiLCBcCi0gICAgICAgICAgIjAuMjUxNDM2LCAwLjI3NjkxOSwgMC41MDUyNDQsIDAuODg0NjAyLCAxLjI2MzY1LCAyLjE0NzY2LCAyLjY1MjczIiwgXAotICAgICAgICAgICIwLjI2NTI1OCwgMC4yOTA3MzMsIDAuNTE5MTA3LCAwLjg5ODQzNiwgMS4yNzc0OCwgMi4xNjE1LCAyLjY2NjU3IiwgXAotICAgICAgICAgICIwLjI3OTAxNSwgMC4zMDQ0ODIsIDAuNTMyODAxLCAwLjkxMjIwNCwgMS4yOTEzOSwgMi4xNzUyOCwgMi42ODAzMiIsIFwKLSAgICAgICAgICAiMC4zMDEyNjYsIDAuMzI2NzY4LCAwLjU1NTA4OSwgMC45MzQ1MDEsIDEuMzEzNTMsIDIuMTk3NjIsIDIuNzAyNzkiLCBcCi0gICAgICAgICAgIjAuMzIwMzIzLCAwLjM0NTc4MiwgMC41NzQxNjgsIDAuOTUzNTIyLCAxLjMzMjU2LCAyLjIxNjg5LCAyLjcyMTY1Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI3NTU3NiwgMC4zMjU2MzUsIDAuNzg2Njc0LCAxLjU1MzU5LCAyLjMyMjE0LCA0LjEyMDY0LCA1LjEzNzU5IiwgXAotICAgICAgICAgICIwLjI3NTU1OSwgMC4zMjU1ODIsIDAuNzg2NTkyLCAxLjU1NTkxLCAyLjMyMTU5LCA0LjExMTU4LCA1LjE0MDg3IiwgXAotICAgICAgICAgICIwLjI3NTU2NSwgMC4zMjYzNTQsIDAuNzg2NTc3LCAxLjU1MzU2LCAyLjMyMTk2LCA0LjEyMDM5LCA1LjEzNzQ1IiwgXAotICAgICAgICAgICIwLjI3NTU1NiwgMC4zMjU2OTEsIDAuNzg0OTE0LCAxLjU1MzUxLCAyLjMyNTEzLCA0LjEyMDMsIDUuMTM3MDMiLCBcCi0gICAgICAgICAgIjAuMjc1NDk0LCAwLjMyNTc1OCwgMC43ODYzNzEsIDEuNTUzNjIsIDIuMzI0OSwgNC4xMjAzOCwgNS4xNDA2OSIsIFwKLSAgICAgICAgICAiMC4yNzU1NzIsIDAuMzI2MzY0LCAwLjc4NjY2NCwgMS41NTU4NywgMi4zMjE5MywgNC4xMjA3MiwgNS4xNDA1IiwgXAotICAgICAgICAgICIwLjI3NTU4NSwgMC4zMjU5NjYsIDAuNzg2NTY3LCAxLjU1MzQxLCAyLjMyMTM4LCA0LjExMTEyLCA1LjE0MDUxIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIzOTQ0MSwgMC4yNjkxNjIsIDAuNTM2NTY3LCAwLjk4MjUxMSwgMS40Mjc4NCwgMi40NjgzLCAzLjA2MTI3IiwgXAotICAgICAgICAgICIwLjI1MTEyOSwgMC4yODA4NiwgMC41NDgyMTgsIDAuOTk0MTA2LCAxLjQzOTM2LCAyLjQ3OTUzLCAzLjA3Mjk3IiwgXAotICAgICAgICAgICIwLjI2NTE2NiwgMC4yOTQ4NzcsIDAuNTYyMjg5LCAxLjAwODE0LCAxLjQ1MzM1LCAyLjQ5MzA4LCAzLjA4NzMxIiwgXAotICAgICAgICAgICIwLjI3ODMyMywgMC4zMDgwNiwgMC41NzU0MTUsIDEuMDIxMjMsIDEuNDY2NzgsIDIuNTA3MTksIDMuMTAwMjUiLCBcCi0gICAgICAgICAgIjAuMjkxMDg2LCAwLjMyMDgyNSwgMC41ODgyMzksIDEuMDM0MTQsIDEuNDc5NDQsIDIuNTE5OTUsIDMuMTEyOTgiLCBcCi0gICAgICAgICAgIjAuMzEwNzk3LCAwLjM0MDUyOCwgMC42MDc5MzMsIDEuMDUzNzUsIDEuNDk5MjEsIDIuNTM4NjgsIDMuMTMyODUiLCBcCi0gICAgICAgICAgIjAuMzI3MzcyLCAwLjM1NzEwOCwgMC42MjQ1MjgsIDEuMDcwNTMsIDEuNTE1OSwgMi41NTYxNSwgMy4xNDk0MyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMTI3NTgsIDAuMzcxNDIxLCAwLjg5OTkyNSwgMS43NzkyNSwgMi42NjM2NSwgNC43MjEyLCA1Ljg5MTg2IiwgXAotICAgICAgICAgICIwLjMxMjc4NSwgMC4zNzE0MjgsIDAuODk4NDg5LCAxLjc4MDE0LCAyLjY2MDc3LCA0LjcyMTEzLCA1Ljg5MjY5IiwgXAotICAgICAgICAgICIwLjMxMjc2NSwgMC4zNzA1OTksIDAuODk3ODUsIDEuNzgwMywgMi42NjA5MiwgNC43MjI2NywgNS44OTExNSIsIFwKLSAgICAgICAgICAiMC4zMTI3NzIsIDAuMzcxNDE4LCAwLjkwMDc1MiwgMS43ODI1OSwgMi42Njc0OSwgNC43MTg2OSwgNS44OTIxIiwgXAotICAgICAgICAgICIwLjMxMjczNywgMC4zNzEzOTMsIDAuODk5NDkyLCAxLjc3OTU4LCAyLjY1OTc4LCA0LjcxODQ4LCA1Ljg5MjM2IiwgXAotICAgICAgICAgICIwLjMxMjgzLCAwLjM3MDY4MiwgMC44OTg3NDMsIDEuNzgxNzUsIDIuNjY5MTIsIDQuNzE3NDEsIDUuODkxODIiLCBcCi0gICAgICAgICAgIjAuMzEyODk4LCAwLjM3MDI3NSwgMC44OTg5NTgsIDEuNzc5MjIsIDIuNjY1NjgsIDQuNzIxMzMsIDUuODkwMTMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjAiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE3NTk2OCwgMC4yMDEyMTksIDAuNDI4NTEyLCAwLjgwNzM0MiwgMS4xODYwMywgMi4wNzA0OSwgMi41NzU0IiwgXAotICAgICAgICAgICIwLjE4Nzc0MiwgMC4yMTI5ODcsIDAuNDQwMjgsIDAuODE5MDM1LCAxLjE5ODM2LCAyLjA4MTc3LCAyLjU4NyIsIFwKLSAgICAgICAgICAiMC4yMDMyMDksIDAuMjI4NDgsIDAuNDU1NzUsIDAuODM0NjUsIDEuMjEzMzIsIDIuMDk3MzgsIDIuNjAyOTMiLCBcCi0gICAgICAgICAgIjAuMjE4MzUyLCAwLjI0MzYwNiwgMC40NzA4MywgMC44NDk3NzcsIDEuMjI4ODksIDIuMTEyNTQsIDIuNjE3NTgiLCBcCi0gICAgICAgICAgIjAuMjMzMDMyLCAwLjI1ODI4LCAwLjQ4NTU4NywgMC44NjQ0NDMsIDEuMjQzOTcsIDIuMTI3NTMsIDIuNjMyNiIsIFwKLSAgICAgICAgICAiMC4yNTUyMiwgMC4yODA0OTMsIDAuNTA3ODk2LCAwLjg4NjYwOSwgMS4yNjYyMiwgMi4xNDk3NCwgMi42NTQ3NiIsIFwKLSAgICAgICAgICAiMC4yNzMxMDIsIDAuMjk4MzYxLCAwLjUyNTgxLCAwLjkwNDQ3NSwgMS4yODM2OSwgMi4xNjY4OCwgMi42NzI0NCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yNzA1NDgsIDAuMzIxNDksIDAuNzgxMzY3LCAxLjU1Mjg4LCAyLjMyMjY0LCA0LjExMjksIDUuMTM3MjciLCBcCi0gICAgICAgICAgIjAuMjcwMjY2LCAwLjMyMTYwNiwgMC43ODMxNTksIDEuNTUyNDYsIDIuMzE5MTYsIDQuMTEyMjgsIDUuMTM3NzkiLCBcCi0gICAgICAgICAgIjAuMjcwNTM3LCAwLjMyMTc1NSwgMC43ODM0MDMsIDEuNTQ5NTUsIDIuMzE3MTYsIDQuMTE2OTcsIDUuMTMzMDEiLCBcCi0gICAgICAgICAgIjAuMjcwNTY1LCAwLjMyMTYxOCwgMC43ODMwOSwgMS41NTA0OSwgMi4zMTcxLCA0LjExODM2LCA1LjEzNjkiLCBcCi0gICAgICAgICAgIjAuMjcwNjA5LCAwLjMyMTY1LCAwLjc4MzA4NSwgMS41NTI4NywgMi4zMjEzMywgNC4xMDkxMSwgNS4xMzU1OCIsIFwKLSAgICAgICAgICAiMC4yNzAzNjYsIDAuMzIxODY4LCAwLjc4MTQ4MiwgMS41NTI2OSwgMi4zMjI2NiwgNC4xMTIwNCwgNS4xMzM1OSIsIFwKLSAgICAgICAgICAiMC4yNzEwMDYsIDAuMzIxNzA4LCAwLjc4Mjk4NSwgMS41NTI4OCwgMi4zMTg0NCwgNC4xMDkxOCwgNS4xMzY1NCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMzA0MDIsIDAuMjYwMTk3LCAwLjUyNzc3NSwgMC45NzMzNzMsIDEuNDE4OSwgMi40NTgyOCwgMy4wNTIyIiwgXAotICAgICAgICAgICIwLjI0MDUsIDAuMjcwMjkxLCAwLjUzNzg4LCAwLjk4MzQ3NywgMS40Mjg5NywgMi40NjgzNywgMy4wNjIyOSIsIFwKLSAgICAgICAgICAiMC4yNTM3NTUsIDAuMjgzNTUzLCAwLjU1MTE0NiwgMC45OTY3NSwgMS40NDIyNywgMi40ODE2NiwgMy4wNzU2MyIsIFwKLSAgICAgICAgICAiMC4yNjcwMTEsIDAuMjk2ODEyLCAwLjU2NDQyMiwgMS4wMTAwMywgMS40NTU1NiwgMi40OTQ5NSwgMy4wODg4OSIsIFwKLSAgICAgICAgICAiMC4yODAxNzksIDAuMzA5OTgyLCAwLjU3NzYwOSwgMS4wMjMyMywgMS40Njg3NCwgMi41MDgxNCwgMy4xMDIwNSIsIFwKLSAgICAgICAgICAiMC4zMDA2MDEsIDAuMzMwMzc5LCAwLjU5ODA2OCwgMS4wNDM2NywgMS40ODkyNiwgMi41Mjg1OCwgMy4xMjI1MSIsIFwKLSAgICAgICAgICAiMC4zMTY4NiwgMC4zNDY2NjgsIDAuNjE0MzI4LCAxLjA1OTk3LCAxLjUwNTQ4LCAyLjU0NDg4LCAzLjEzODgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzEzNDczLCAwLjM3MjE2LCAwLjkwMDU3MSwgMS43ODI0OSwgMi42NjY3OSwgNC43MjI3NCwgNS44OTI3MSIsIFwKLSAgICAgICAgICAiMC4zMTM1NDMsIDAuMzcyMTUyLCAwLjkwMDQ1OCwgMS43ODM5NCwgMi42NjkxLCA0LjcyMjYzLCA1Ljg5MTczIiwgXAotICAgICAgICAgICIwLjMxMzQ2NSwgMC4zNzIxNTMsIDAuOTAwNTgyLCAxLjc4MTk0LCAyLjY2NjIzLCA0LjcyMjg5LCA1Ljg5MjQ5IiwgXAotICAgICAgICAgICIwLjMxMzQ0NSwgMC4zNzIxNDUsIDAuOTAwNTg1LCAxLjc4MzI0LCAyLjY2NjgyLCA0LjcyMjc0LCA1Ljg5MjExIiwgXAotICAgICAgICAgICIwLjMxMzQ4OCwgMC4zNzIxNSwgMC45MDAzMzcsIDEuNzgzODksIDIuNjY2MzgsIDQuNzIyMDIsIDUuODkyMzMiLCBcCi0gICAgICAgICAgIjAuMzEzNTY0LCAwLjM3MjA0OSwgMC45MDAxMzUsIDEuNzgzODEsIDIuNjY2NzgsIDQuNzIxNjUsIDUuODkyMzMiLCBcCi0gICAgICAgICAgIjAuMzEzNDM1LCAwLjM3MTc0LCAwLjkwMDc1MywgMS43ODQxNSwgMi42NzAxMywgNC43MjIxOCwgNS44OTIzMiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDA5NzcsIDAuMDAwOTc3LCAwLjAwMDk4LCAwLjAwMDk4MSwgMC4wMDA5ODEsIDAuMDAwOTgyLCAwLjAwMDk4MiIsIFwKLSAgICAgICAgICAiMC4wMDA5NjUsIDAuMDAwOTY2LCAwLjAwMDk2OSwgMC4wMDA5NywgMC4wMDA5NywgMC4wMDA5NzEsIDAuMDAwOTciLCBcCi0gICAgICAgICAgIjAuMDAwOTU4LCAwLjAwMDk1OSwgMC4wMDA5NjEsIDAuMDAwOTYyLCAwLjAwMDk2MywgMC4wMDA5NjMsIDAuMDAwOTYzIiwgXAotICAgICAgICAgICIwLjAwMDk1MywgMC4wMDA5NTMsIDAuMDAwOTU3LCAwLjAwMDk1OCwgMC4wMDA5NTgsIDAuMDAwOTU4LCAwLjAwMDk1OCIsIFwKLSAgICAgICAgICAiMC4wMDA5NDksIDAuMDAwOTUsIDAuMDAwOTUzLCAwLjAwMDk1NCwgMC4wMDA5NTQsIDAuMDAwOTU1LCAwLjAwMDk1NSIsIFwKLSAgICAgICAgICAiMC4wMDA5NDUsIDAuMDAwOTQ1LCAwLjAwMDk0OSwgMC4wMDA5NSwgMC4wMDA5NTEsIDAuMDAwOTUxLCAwLjAwMDk1MiIsIFwKLSAgICAgICAgICAiMC4wMDA5NDIsIDAuMDAwOTQzLCAwLjAwMDk0NywgMC4wMDA5NDgsIDAuMDAwOTQ5LCAwLjAwMDk0OSwgMC4wMDA5NSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjA5MiwgMC4wMDIwOTMsIDAuMDAyMDk1LCAwLjAwMjA5NiwgMC4wMDIwOTcsIDAuMDAyMDk3LCAwLjAwMjA5NyIsIFwKLSAgICAgICAgICAiMC4wMDIwODYsIDAuMDAyMDg2LCAwLjAwMjA4OSwgMC4wMDIwOSwgMC4wMDIwOTEsIDAuMDAyMDkxLCAwLjAwMjA5MSIsIFwKLSAgICAgICAgICAiMC4wMDIwODIsIDAuMDAyMDgzLCAwLjAwMjA4NiwgMC4wMDIwODcsIDAuMDAyMDg3LCAwLjAwMjA4NywgMC4wMDIwODciLCBcCi0gICAgICAgICAgIjAuMDAyMDc5LCAwLjAwMjA4LCAwLjAwMjA4MywgMC4wMDIwODQsIDAuMDAyMDg1LCAwLjAwMjA4NSwgMC4wMDIwODUiLCBcCi0gICAgICAgICAgIjAuMDAyMDc3LCAwLjAwMjA3OCwgMC4wMDIwODIsIDAuMDAyMDgzLCAwLjAwMjA4MywgMC4wMDIwODMsIDAuMDAyMDgzIiwgXAotICAgICAgICAgICIwLjAwMjA3NCwgMC4wMDIwNzYsIDAuMDAyMDc5LCAwLjAwMjA4MSwgMC4wMDIwODEsIDAuMDAyMDgyLCAwLjAwMjA4MiIsIFwKLSAgICAgICAgICAiMC4wMDIwNzMsIDAuMDAyMDc1LCAwLjAwMjA3OSwgMC4wMDIwOCwgMC4wMDIwODEsIDAuMDAyMDgxLCAwLjAwMjA4MSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkExIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDA5NzcsIDAuMDAwOTc3LCAwLjAwMDk4LCAwLjAwMDk4MSwgMC4wMDA5ODEsIDAuMDAwOTgyLCAwLjAwMDk4MSIsIFwKLSAgICAgICAgICAiMC4wMDA5NjMsIDAuMDAwOTY0LCAwLjAwMDk2NiwgMC4wMDA5NjcsIDAuMDAwOTY4LCAwLjAwMDk2OSwgMC4wMDA5NjgiLCBcCi0gICAgICAgICAgIjAuMDAwOTUzLCAwLjAwMDk1NCwgMC4wMDA5NTcsIDAuMDAwOTU4LCAwLjAwMDk1OSwgMC4wMDA5NiwgMC4wMDA5NTkiLCBcCi0gICAgICAgICAgIjAuMDAwOTQ4LCAwLjAwMDk0OSwgMC4wMDA5NTIsIDAuMDAwOTU0LCAwLjAwMDk1NCwgMC4wMDA5NTQsIDAuMDAwOTU0IiwgXAotICAgICAgICAgICIwLjAwMDk0NCwgMC4wMDA5NDUsIDAuMDAwOTQ5LCAwLjAwMDk1LCAwLjAwMDk1MSwgMC4wMDA5NTEsIDAuMDAwOTUxIiwgXAotICAgICAgICAgICIwLjAwMDk0LCAwLjAwMDk0MSwgMC4wMDA5NDUsIDAuMDAwOTQ3LCAwLjAwMDk0NywgMC4wMDA5NDgsIDAuMDAwOTQ4IiwgXAotICAgICAgICAgICIwLjAwMDkzOCwgMC4wMDA5MzksIDAuMDAwOTQ0LCAwLjAwMDk0NiwgMC4wMDA5NDcsIDAuMDAwOTQ3LCAwLjAwMDk0OCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTkwNywgMC4wMDE5MDcsIDAuMDAxOTEsIDAuMDAxOTEsIDAuMDAxOTExLCAwLjAwMTkxMSwgMC4wMDE5MTEiLCBcCi0gICAgICAgICAgIjAuMDAxOTAxLCAwLjAwMTkwMiwgMC4wMDE5MDQsIDAuMDAxOTA1LCAwLjAwMTkwNSwgMC4wMDE5MDUsIDAuMDAxOTA1IiwgXAotICAgICAgICAgICIwLjAwMTg5NSwgMC4wMDE4OTUsIDAuMDAxODk4LCAwLjAwMTg5OCwgMC4wMDE4OTksIDAuMDAxODk5LCAwLjAwMTg5OSIsIFwKLSAgICAgICAgICAiMC4wMDE4OSwgMC4wMDE4OTEsIDAuMDAxODkzLCAwLjAwMTg5NCwgMC4wMDE4OTQsIDAuMDAxODk0LCAwLjAwMTg5NSIsIFwKLSAgICAgICAgICAiMC4wMDE4ODYsIDAuMDAxODg3LCAwLjAwMTg5LCAwLjAwMTg5MSwgMC4wMDE4OTEsIDAuMDAxODkyLCAwLjAwMTg5MiIsIFwKLSAgICAgICAgICAiMC4wMDE4ODMsIDAuMDAxODg0LCAwLjAwMTg4OCwgMC4wMDE4ODksIDAuMDAxODg5LCAwLjAwMTg4OSwgMC4wMDE4ODkiLCBcCi0gICAgICAgICAgIjAuMDAxODgxLCAwLjAwMTg4MiwgMC4wMDE4ODYsIDAuMDAxODg3LCAwLjAwMTg4OCwgMC4wMDE4ODgsIDAuMDAxODg4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDY2LCAwLjAwMDY2LCAwLjAwMDY2LCAwLjAwMDY2MSwgMC4wMDA2NiwgMC4wMDA2NiwgMC4wMDA2NiIsIFwKLSAgICAgICAgICAiMC4wMDA2NDgsIDAuMDAwNjQ4LCAwLjAwMDY0OCwgMC4wMDA2NDgsIDAuMDAwNjQ4LCAwLjAwMDY0OCwgMC4wMDA2NDgiLCBcCi0gICAgICAgICAgIjAuMDAwNjM2LCAwLjAwMDYzNiwgMC4wMDA2MzcsIDAuMDAwNjM4LCAwLjAwMDYzOCwgMC4wMDA2MzgsIDAuMDAwNjM4IiwgXAotICAgICAgICAgICIwLjAwMDYyOSwgMC4wMDA2MywgMC4wMDA2MzEsIDAuMDAwNjMxLCAwLjAwMDYzMSwgMC4wMDA2MzEsIDAuMDAwNjMxIiwgXAotICAgICAgICAgICIwLjAwMDYyNCwgMC4wMDA2MjUsIDAuMDAwNjI3LCAwLjAwMDYyOCwgMC4wMDA2MjgsIDAuMDAwNjI4LCAwLjAwMDYyOCIsIFwKLSAgICAgICAgICAiMC4wMDA2MjIsIDAuMDAwNjIyLCAwLjAwMDYyNSwgMC4wMDA2MjYsIDAuMDAwNjI2LCAwLjAwMDYyNiwgMC4wMDA2MjYiLCBcCi0gICAgICAgICAgIjAuMDAwNjIxLCAwLjAwMDYyMiwgMC4wMDA2MjUsIDAuMDAwNjI2LCAwLjAwMDYyNiwgMC4wMDA2MjYsIDAuMDAwNjI3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxNjkzLCAwLjAwMTY5MywgMC4wMDE2OTYsIDAuMDAxNjk3LCAwLjAwMTY5OCwgMC4wMDE2OTgsIDAuMDAxNjk4IiwgXAotICAgICAgICAgICIwLjAwMTY4MSwgMC4wMDE2ODIsIDAuMDAxNjg1LCAwLjAwMTY4NiwgMC4wMDE2ODYsIDAuMDAxNjg3LCAwLjAwMTY4NyIsIFwKLSAgICAgICAgICAiMC4wMDE2NzMsIDAuMDAxNjc0LCAwLjAwMTY3OCwgMC4wMDE2NzksIDAuMDAxNjc5LCAwLjAwMTY4LCAwLjAwMTY4IiwgXAotICAgICAgICAgICIwLjAwMTY2OCwgMC4wMDE2NjksIDAuMDAxNjczLCAwLjAwMTY3NSwgMC4wMDE2NzUsIDAuMDAxNjc2LCAwLjAwMTY3NiIsIFwKLSAgICAgICAgICAiMC4wMDE2NjUsIDAuMDAxNjY2LCAwLjAwMTY3MSwgMC4wMDE2NzMsIDAuMDAxNjczLCAwLjAwMTY3NCwgMC4wMDE2NzQiLCBcCi0gICAgICAgICAgIjAuMDAxNjYyLCAwLjAwMTY2NCwgMC4wMDE2NjksIDAuMDAxNjcxLCAwLjAwMTY3MiwgMC4wMDE2NzMsIDAuMDAxNjczIiwgXAotICAgICAgICAgICIwLjAwMTY2LCAwLjAwMTY2MiwgMC4wMDE2NjgsIDAuMDAxNjcxLCAwLjAwMTY3MiwgMC4wMDE2NzIsIDAuMDAxNjczIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBBTzIyWDEgKgotICogLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChBTzIyWDEpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4wNzg1MDYxOwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNTc5NzUyOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDU3NzM5MjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA1Nzk3NTI7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMTY1LCAwLjAwMDE2NSwgMC4wMDAxNjUsIDAuMDAwMTY1LCAwLjAwMDE2NSwgMC4wMDAxNjUsIDAuMDAwMTY1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMTcsIDAuMDAwMTY3LCAwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiwgMC4wMDAxNjYiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEExKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA1ODE1ODM7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNTc3NTc0OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDU4MTU4MzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAwNzQsIDAuMDAwMDczLCAwLjAwMDA3MywgMC4wMDAwNzMsIDAuMDAwMDczLCAwLjAwMDA3MywgMC4wMDAwNzMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxODgsIDAuMDAwMTg4LCAwLjAwMDE4OCwgMC4wMDAxODgsIDAuMDAwMTg4LCAwLjAwMDE4OCwgMC4wMDAxODgiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA1ODMxMjU7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNTgzMTI1OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDU4MTU2MzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxNjUsIDAuMDAwMTY1LCAwLjAwMDE2NSwgMC4wMDAxNjUsIDAuMDAwMTY1LCAwLjAwMDE2NSwgMC4wMDAxNjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxNjcsIDAuMDAwMTY2LCAwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiwgMC4wMDAxNjYiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIxKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA1OTkzNjQ7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNTk5MDQ1OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDU5OTM2NDsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAwMjQsIDAuMDAwMDI0LCAwLjAwMDAyNCwgMC4wMDAwMjQsIDAuMDAwMDI0LCAwLjAwMDAyNCwgMC4wMDAwMjQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxODgsIDAuMDAwMTg4LCAwLjAwMDE4OCwgMC4wMDAxODgsIDAuMDAwMTg4LCAwLjAwMDE4OCwgMC4wMDAxODgiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4xMTg5MDI7Ci0gICAgZnVuY3Rpb24gOiAiKChBMCBBMSkrKEIwIEIxKSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMjI1MSwgMC4yNjcyNywgMC41MTQwMDMsIDAuNzMwNjMyLCAxLjAxOTA0LCAxLjU5NTA3LCAxLjk1NDk0IiwgXAotICAgICAgICAgICIwLjIzNDAyLCAwLjI3ODc3OCwgMC41MjU1MDMsIDAuNzQyMTQ0LCAxLjAzMDM5LCAxLjYwNjUxLCAxLjk2NjUzIiwgXAotICAgICAgICAgICIwLjI0NzgxMSwgMC4yOTI1NjEsIDAuNTM5MywgMC43NTU5NDEsIDEuMDQ0MjMsIDEuNjIwMzgsIDEuOTgwMjMiLCBcCi0gICAgICAgICAgIjAuMjYxNDczLCAwLjMwNjIzOCwgMC41NTI5NjksIDAuNzY5NiwgMS4wNTc4OCwgMS42MzQwNSwgMS45OTM5MiIsIFwKLSAgICAgICAgICAiMC4yNzUwNzQsIDAuMzE5ODM2LCAwLjU2NjU3NywgMC43ODMxNTUsIDEuMDcxNDgsIDEuNjQ3NiwgMi4wMDc1MSIsIFwKLSAgICAgICAgICAiMC4yOTcxMTcsIDAuMzQxODg0LCAwLjU4ODYyMiwgMC44MDUyNzQsIDEuMDkzNTIsIDEuNjY5NjMsIDIuMDI5NTciLCBcCi0gICAgICAgICAgIjAuMzE1ODgyLCAwLjM2MDYzOSwgMC42MDczOTgsIDAuODI0MDQ5LCAxLjExMjI5LCAxLjY4ODQyLCAyLjA0ODQ0Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE3NzExMSwgMC4yNjA0NDUsIDAuNzUxMDM5LCAxLjE4OTY1LCAxLjc3MjE3LCAyLjk0MjA3LCAzLjY3NjYiLCBcCi0gICAgICAgICAgIjAuMTc3MTE3LCAwLjI2MDM5NiwgMC43NTEyMDMsIDEuMTg5NTksIDEuNzc0NzEsIDIuOTQxNDksIDMuNjc3ODQiLCBcCi0gICAgICAgICAgIjAuMTc3MDgzLCAwLjI2MDM5MiwgMC43NTEyMTcsIDEuMTg5NTksIDEuNzc0OTEsIDIuOTQ1ODksIDMuNjc3ODIiLCBcCi0gICAgICAgICAgIjAuMTc3MDg5LCAwLjI2MDQwNSwgMC43NTExMDgsIDEuMTg5NTgsIDEuNzc0ODcsIDIuOTQ1ODcsIDMuNjc3OTUiLCBcCi0gICAgICAgICAgIjAuMTc3MDk1LCAwLjI2MDM0MiwgMC43NTA5NDUsIDEuMTg5NTEsIDEuNzc0NzksIDIuOTQ0NTUsIDMuNjc2NjQiLCBcCi0gICAgICAgICAgIjAuMTc3MDg2LCAwLjI2MDQwMywgMC43NTExMTYsIDEuMTg5NjEsIDEuNzc0NDMsIDIuOTQxNjEsIDMuNjcyNDkiLCBcCi0gICAgICAgICAgIjAuMTc3MDcsIDAuMjYwMzgzLCAwLjc1MTE3NywgMS4xODk1OCwgMS43NzQ2NiwgMi45NDE1MSwgMy42Nzc4MSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMTYzMTgsIDAuMjY2NjI3LCAwLjU0NzUyMywgMC43OTQ2NSwgMS4xMjQwNCwgMS43ODI2MywgMi4xOTQxNyIsIFwKLSAgICAgICAgICAiMC4yMjc5ODksIDAuMjc4MjkyLCAwLjU1OTExMSwgMC44MDYzMTMsIDEuMTM1NywgMS43OTQ0OCwgMi4yMDU4MiIsIFwKLSAgICAgICAgICAiMC4yNDI2MDQsIDAuMjkyOTEsIDAuNTczNzE4LCAwLjgyMDkzNCwgMS4xNTAzMiwgMS44MDkxLCAyLjIyMDQ1IiwgXAotICAgICAgICAgICIwLjI1NjQ2NywgMC4zMDY3OCwgMC41ODc2NzcsIDAuODM0ODA2LCAxLjE2NDIxLCAxLjgyMjc3LCAyLjIzNDMzIiwgXAotICAgICAgICAgICIwLjI2OTcwOCwgMC4zMjAwMTUsIDAuNjAwODUzLCAwLjg0ODA2NywgMS4xNzc0NiwgMS44MzYwMiwgMi4yNDc1NyIsIFwKLSAgICAgICAgICAiMC4yOTAyOTQsIDAuMzQwNTk4LCAwLjYyMTUwNywgMC44Njg2MzgsIDEuMTk4MDYsIDEuODU2NjEsIDIuMjY4MTciLCBcCi0gICAgICAgICAgIjAuMzA3ODA4LCAwLjM1ODEwMSwgMC42Mzg5NzIsIDAuODg2MTgyLCAxLjIxNTU4LCAxLjg3NDE3LCAyLjI4NTY5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE4ODg1LCAwLjI4NDI0NSwgMC44MzU1NDksIDEuMzI2OTUsIDEuOTc5MDYsIDMuMjg4NzEsIDQuMTA1NzgiLCBcCi0gICAgICAgICAgIjAuMTg4ODU5LCAwLjI4NDE2OSwgMC44MzU0ODQsIDEuMzI2ODksIDEuOTc5MjIsIDMuMjkwMjIsIDQuMTA3OTgiLCBcCi0gICAgICAgICAgIjAuMTg4ODQ5LCAwLjI4NDIwMywgMC44MzY3MzksIDEuMzI2OTIsIDEuOTc5MTUsIDMuMjg5ODYsIDQuMTA1NTEiLCBcCi0gICAgICAgICAgIjAuMTg4ODQ1LCAwLjI4NDI4OCwgMC44MzQ4NDMsIDEuMzI2OTksIDEuOTgxODMsIDMuMjg3OTcsIDQuMTA3MjciLCBcCi0gICAgICAgICAgIjAuMTg4ODUsIDAuMjgzODkxLCAwLjgzNTQ1OCwgMS4zMjY4MiwgMS45ODA0NSwgMy4yODc0NiwgNC4xMDc1MiIsIFwKLSAgICAgICAgICAiMC4xODg4MzIsIDAuMjg0MjM5LCAwLjgzNjQyOCwgMS4zMjcwMywgMS45ODE4MywgMy4yOTI3MywgNC4xMDc4NCIsIFwKLSAgICAgICAgICAiMC4xODg3OTMsIDAuMjgzODYyLCAwLjgzNjc2NCwgMS4zMjY5MywgMS45Nzk0NCwgMy4yOTIxNiwgNC4xMDczNyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjE3NTY5LCAwLjI2MjMwOSwgMC41MDkwNTYsIDAuNzI1Njg3LCAxLjAxMzk4LCAxLjU5MDEsIDEuOTQ5OTkiLCBcCi0gICAgICAgICAgIjAuMjI3ODMzLCAwLjI3MjU4NCwgMC41MTkzMjIsIDAuNzM1OTYyLCAxLjAyNDI2LCAxLjYwMDQsIDEuOTYwMjUiLCBcCi0gICAgICAgICAgIjAuMjQxMDE1LCAwLjI4NTc5MiwgMC41MzI1MSwgMC43NDkwOTcsIDEuMDM3NDEsIDEuNjEzNTMsIDEuOTczNDQiLCBcCi0gICAgICAgICAgIjAuMjU0Mzc0LCAwLjI5OTE0MSwgMC41NDU4NzcsIDAuNzYyNTExLCAxLjA1MDc4LCAxLjYyNjg4LCAxLjk4NjgzIiwgXAotICAgICAgICAgICIwLjI2ODQ0MiwgMC4zMTMyMDksIDAuNTU5OTUsIDAuNzc2NTg2LCAxLjA2NDg1LCAxLjY0MSwgMi4wMDA4OSIsIFwKLSAgICAgICAgICAiMC4yOTA1MTIsIDAuMzM1MjgsIDAuNTgyMDMxLCAwLjc5ODYyMSwgMS4wODY5NSwgMS42NjMwNywgMi4wMjI5OCIsIFwKLSAgICAgICAgICAiMC4zMDk5NTIsIDAuMzU0NzIyLCAwLjYwMTQ3NSwgMC44MTgxMjQsIDEuMTA2NDMsIDEuNjgyNTQsIDIuMDQyNDQiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTc3MTU1LCAwLjI2MDUwNiwgMC43NTExMzUsIDEuMTg5NjYsIDEuNzcyMjEsIDIuOTQxNjYsIDMuNjc4MDYiLCBcCi0gICAgICAgICAgIjAuMTc3MDg5LCAwLjI2MDM5OCwgMC43NTEyMjIsIDEuMTg5NiwgMS43NzQ5NCwgMi45NDU4OSwgMy42NzI2OCIsIFwKLSAgICAgICAgICAiMC4xNzcxMDEsIDAuMjYwNDI5LCAwLjc1MTAzNywgMS4xODk1OCwgMS43NzQ4LCAyLjk0MTUyLCAzLjY3NjUxIiwgXAotICAgICAgICAgICIwLjE3NzA5NywgMC4yNjA0MTEsIDAuNzUxMTkxLCAxLjE4OTU3LCAxLjc3NDc5LCAyLjk0NTc0LCAzLjY3Nzg2IiwgXAotICAgICAgICAgICIwLjE3NzA5NSwgMC4yNjA0MDksIDAuNzUxMTg5LCAxLjE4OTYyLCAxLjc3NDc3LCAyLjk0NjA5LCAzLjY3MjUxIiwgXAotICAgICAgICAgICIwLjE3NzA4LCAwLjI2MDM5MywgMC43NTExNzgsIDEuMTg5MzMsIDEuNzc0ODIsIDIuOTQxODIsIDMuNjcyNDkiLCBcCi0gICAgICAgICAgIjAuMTc3MDk0LCAwLjI2MDM5MiwgMC43NTExODcsIDEuMTg5NTgsIDEuNzc0ODMsIDIuOTQ1NTQsIDMuNjcyNjMiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjEwMDQsIDAuMjYwMjExLCAwLjU0MDc3NCwgMC43ODc3OTIsIDEuMTE3MDksIDEuNzc1NTgsIDIuMTg3MDUiLCBcCi0gICAgICAgICAgIjAuMjIxODc1LCAwLjI3MjAzOSwgMC41NTI1MzksIDAuNzk5NjIyLCAxLjEyODkxLCAxLjc4NzQ0LCAyLjE5ODg3IiwgXAotICAgICAgICAgICIwLjIzNjMwNSwgMC4yODY0ODUsIDAuNTY3MDA0LCAwLjgxNDA4MiwgMS4xNDMzNywgMS44MDE4MiwgMi4yMTM1MyIsIFwKLSAgICAgICAgICAiMC4yNTAxMTIsIDAuMzAwMjg0LCAwLjU4MDc4OSwgMC44Mjc4ODEsIDEuMTU3MTcsIDEuODE1NjEsIDIuMjI3MTEiLCBcCi0gICAgICAgICAgIjAuMjYzMywgMC4zMTM0NzEsIDAuNTk0MDU0LCAwLjg0MTEzNywgMS4xNzAzNywgMS44Mjg4NSwgMi4yNDAzNCIsIFwKLSAgICAgICAgICAiMC4yODM4MTksIDAuMzMzOTkyLCAwLjYxNDU4MSwgMC44NjE2ODQsIDEuMTkwOTEsIDEuODQ5MzgsIDIuMjYwOTEiLCBcCi0gICAgICAgICAgIjAuMzAxMjE5LCAwLjM1MTM4NywgMC42MzE5OTMsIDAuODc5MTAxLCAxLjIwODMzLCAxLjg2NjgsIDIuMjc4MzMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTg4MTI5LCAwLjI4MzQwNCwgMC44MzU2OTQsIDEuMzI2NDcsIDEuOTc5MTIsIDMuMjkyNzcsIDQuMTA1MDgiLCBcCi0gICAgICAgICAgIjAuMTg4MTQ3LCAwLjI4MzQxNSwgMC44MzU0LCAxLjMyNjU5LCAxLjk4MjM2LCAzLjI4NzIzLCA0LjEwNDc1IiwgXAotICAgICAgICAgICIwLjE4ODE3MywgMC4yODMxNDYsIDAuODM1Mzk4LCAxLjMyNjU3LCAxLjk4MjM2LCAzLjI5MTU4LCA0LjEwNzYxIiwgXAotICAgICAgICAgICIwLjE4ODE3NiwgMC4yODMxMjQsIDAuODM2MDgxLCAxLjMyNjE0LCAxLjk4MjM3LCAzLjI5MzE2LCA0LjEwMzk4IiwgXAotICAgICAgICAgICIwLjE4ODE0LCAwLjI4MzI0NiwgMC44MzU3MDIsIDEuMzI1NzQsIDEuOTc3ODEsIDMuMjg4NDIsIDQuMTA4MjIiLCBcCi0gICAgICAgICAgIjAuMTg4MDgyLCAwLjI4MzMwNywgMC44MzU3MTUsIDEuMzI1NDEsIDEuOTc4NzcsIDMuMjkwMTEsIDQuMTA3NjQiLCBcCi0gICAgICAgICAgIjAuMTg4MTE2LCAwLjI4MzIxOSwgMC44MzU3MzgsIDEuMzI1NDEsIDEuOTc4NjUsIDMuMjg4MSwgNC4xMDc3OCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTg5NjAxLCAwLjIzMzQ2NiwgMC40NzgyNDEsIDAuNjk0MDU5LCAwLjk4MTg3MSwgMS41NTc2LCAxLjkxNzE0IiwgXAotICAgICAgICAgICIwLjIwMTU0NiwgMC4yNDUzOTcsIDAuNDkwMTc5LCAwLjcwNjAxLCAwLjk5Mzc5NiwgMS41Njk2LCAxLjkyOTA5IiwgXAotICAgICAgICAgICIwLjIxNTQwMywgMC4yNTkyNjYsIDAuNTA0MDQ4LCAwLjcxOTg3NSwgMS4wMDc2NiwgMS41ODM1MywgMS45NDM2NSIsIFwKLSAgICAgICAgICAiMC4yMjg5NTksIDAuMjcyODEsIDAuNTE3NTk0LCAwLjczMzQ1NSwgMS4wMjEyMywgMS41OTY5MSwgMS45NTY3NiIsIFwKLSAgICAgICAgICAiMC4yNDI2NjUsIDAuMjg2NTQ2LCAwLjUzMTMzNCwgMC43NDcxNiwgMS4wMzUzOSwgMS42MTA0NiwgMS45NzAyOSIsIFwKLSAgICAgICAgICAiMC4yNjQyMDQsIDAuMzA4MDc4LCAwLjU1Mjg4NywgMC43Njg3NjYsIDEuMDU2NTcsIDEuNjMyMTcsIDEuOTkxOTEiLCBcCi0gICAgICAgICAgIjAuMjgyOTM1LCAwLjMyNjgxOSwgMC41NzE2MzEsIDAuNzg3NDYyLCAxLjA3NTM5LCAxLjY1MDk1LCAyLjAxMDU3Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE3MTcsIDAuMjU1NDc3LCAwLjc0NjA1NywgMS4xODU5MiwgMS43NzE5OSwgMi45Mzg1OSwgMy42NzU4NSIsIFwKLSAgICAgICAgICAiMC4xNzE2OTQsIDAuMjU1NDUxLCAwLjc0NjA0NywgMS4xODU5NiwgMS43NzE5NSwgMi45MzY3LCAzLjY3NTUyIiwgXAotICAgICAgICAgICIwLjE3MTY3MywgMC4yNTU0MTcsIDAuNzQ3MjE0LCAxLjE4NTkzLCAxLjc3MTkxLCAyLjk0MzE2LCAzLjY2NjY1IiwgXAotICAgICAgICAgICIwLjE3MTYyMiwgMC4yNTU0MTksIDAuNzQ3MTg5LCAxLjE4NjA2LCAxLjc3MTk3LCAyLjkzNjU5LCAzLjY3MzI2IiwgXAotICAgICAgICAgICIwLjE3MTY3NCwgMC4yNTU0MjksIDAuNzQ2NzEsIDEuMTg1ODksIDEuNzY3NjgsIDIuOTQyOTEsIDMuNjc1NCIsIFwKLSAgICAgICAgICAiMC4xNzE3MzMsIDAuMjU1NDQ0LCAwLjc0NzgyOCwgMS4xODYwOSwgMS43NjY5MSwgMi45MzY0LCAzLjY2NzY0IiwgXAotICAgICAgICAgICIwLjE3MTgxNSwgMC4yNTU1ODgsIDAuNzQ1OTUxLCAxLjE4NTg3LCAxLjc2NzA1LCAyLjk0MzExLCAzLjY3NTIxIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE5MjgxNiwgMC4yNDMxMzUsIDAuNTIzOTQyLCAwLjc3MTE2MywgMS4xMDA1NSwgMS43NTkxMSwgMi4xNzA2NiIsIFwKLSAgICAgICAgICAiMC4yMDMzNDEsIDAuMjUzNjQsIDAuNTM0NDY3LCAwLjc4MTY2MSwgMS4xMTEwNSwgMS43Njk2NywgMi4xODExNyIsIFwKLSAgICAgICAgICAiMC4yMTYwNjEsIDAuMjY2MzQ4LCAwLjU0NzI0NiwgMC43OTQzNzksIDEuMTIzOSwgMS43ODIzNiwgMi4xOTM5MyIsIFwKLSAgICAgICAgICAiMC4yMjk1NzksIDAuMjc5ODk2LCAwLjU2MDc5NiwgMC44MDc5MzcsIDEuMTM3MzQsIDEuNzk1OTUsIDIuMjA3NDgiLCBcCi0gICAgICAgICAgIjAuMjQyODc1LCAwLjI5MzE3NiwgMC41NzQxMDYsIDAuODIxMjczLCAxLjE1MDY3LCAxLjgwOTI2LCAyLjIyMDgyIiwgXAotICAgICAgICAgICIwLjI2NDE1NCwgMC4zMTQ0NzEsIDAuNTk1NDE0LCAwLjg0MjYxMiwgMS4xNzE5OCwgMS44MzA1OSwgMi4yNDIxMiIsIFwKLSAgICAgICAgICAiMC4yODI1MzcsIDAuMzMyODUzLCAwLjYxMzczOCwgMC44NjA5NzksIDEuMTkwMzgsIDEuODQ4OTYsIDIuMjYwNTEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTg4ODY1LCAwLjI4Mzg3NSwgMC44MzY3NzMsIDEuMzI2ODIsIDEuOTc5NTEsIDMuMjg5MDYsIDQuMTA2NDUiLCBcCi0gICAgICAgICAgIjAuMTg4ODU1LCAwLjI4NDAyNCwgMC44MzY2NjksIDEuMzI2ODcsIDEuOTc5ODksIDMuMjkxNzEsIDQuMTA3MTciLCBcCi0gICAgICAgICAgIjAuMTg4Nzk0LCAwLjI4NDI3LCAwLjgzNjM4OSwgMS4zMjcwMywgMS45ODA2NiwgMy4yOTAzMSwgNC4xMDg2IiwgXAotICAgICAgICAgICIwLjE4ODgwNCwgMC4yODQyMDgsIDAuODM2NDMxLCAxLjMyNzExLCAxLjk3OTE4LCAzLjI5MTI0LCA0LjEwODIxIiwgXAotICAgICAgICAgICIwLjE4ODgwMiwgMC4yODM5NjYsIDAuODM2NDU5LCAxLjMyNjk4LCAxLjk3OTIzLCAzLjI5MDIxLCA0LjEwNTg3IiwgXAotICAgICAgICAgICIwLjE4ODg2NSwgMC4yODQxMTcsIDAuODM2NDI0LCAxLjMyNjQsIDEuOTc5MjYsIDMuMjkxOSwgNC4xMDUyIiwgXAotICAgICAgICAgICIwLjE4ODk3NiwgMC4yODM5ODcsIDAuODM2Nzk3LCAxLjMyNjc5LCAxLjk3OTQ3LCAzLjI4NzQzLCA0LjEwNDY0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIxIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xODI4NDEsIDAuMjI2NzE0LCAwLjQ3MTUwOSwgMC42ODczNDgsIDAuOTc1MTM3LCAxLjU1MTMxLCAxLjkxMDQxIiwgXAotICAgICAgICAgICIwLjE5MzI5NiwgMC4yMzcxNzMsIDAuNDgxOTY3LCAwLjY5Nzc5NCwgMC45ODU2MywgMS41NjEzMywgMS45MjA4NyIsIFwKLSAgICAgICAgICAiMC4yMDY0ODIsIDAuMjUwMzU4LCAwLjQ5NTE2LCAwLjcxMTA5MywgMC45OTg4MzEsIDEuNTc0NDMsIDEuOTM0MjEiLCBcCi0gICAgICAgICAgIjAuMjIwMzA0LCAwLjI2NDE3NCwgMC41MDkwMywgMC43MjQ4MzQsIDEuMDEyNjMsIDEuNTg4NCwgMS45NDc4MyIsIFwKLSAgICAgICAgICAiMC4yMzQyMDcsIDAuMjc4MTAxLCAwLjUyMjkyMywgMC43Mzg3NjIsIDEuMDI2NTYsIDEuNjAyMTQsIDEuOTYxOTUiLCBcCi0gICAgICAgICAgIjAuMjU2MjYsIDAuMzAwMTU2LCAwLjU0NDk5OCwgMC43NjA4NDQsIDEuMDQ4NjQsIDEuNjI0NDksIDEuOTg0MjciLCBcCi0gICAgICAgICAgIjAuMjc1NTY1LCAwLjMxOTQ2OSwgMC41NjQzMTEsIDAuNzgwMTYsIDEuMDY3OTYsIDEuNjQ0LCAyLjAwMzA3Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE3MTczNywgMC4yNTU0NzMsIDAuNzQ2MDE1LCAxLjE4NTk2LCAxLjc3MTk0LCAyLjkzNjU3LCAzLjY2NjgyIiwgXAotICAgICAgICAgICIwLjE3MTY3MywgMC4yNTU0MjcsIDAuNzQ4MjIzLCAxLjE4NTksIDEuNzcxNDIsIDIuOTM2NzMsIDMuNjc1NjkiLCBcCi0gICAgICAgICAgIjAuMTcxNjY1LCAwLjI1NTQxNCwgMC43NDgxNjYsIDEuMTgyOSwgMS43NzE0OCwgMi45MzU0NywgMy42NjUxMiIsIFwKLSAgICAgICAgICAiMC4xNzE2ODYsIDAuMjU1NDE0LCAwLjc0ODE3NywgMS4xODU5MiwgMS43NzE4OSwgMi45MzY2MiwgMy42NjY5OSIsIFwKLSAgICAgICAgICAiMC4xNzE2ODMsIDAuMjU1NDI2LCAwLjc0ODA2MiwgMS4xODU4OSwgMS43NzE4NywgMi45MzU1NSwgMy42NzU0MyIsIFwKLSAgICAgICAgICAiMC4xNzE3NjksIDAuMjU1NDY3LCAwLjc0NzE4NCwgMS4xODU5MSwgMS43NzE4NiwgMi45MzY3OCwgMy42NjY3MSIsIFwKLSAgICAgICAgICAiMC4xNzIwMTIsIDAuMjU1NjEsIDAuNzQ2NzA3LCAxLjE4NTg4LCAxLjc3MTg0LCAyLjk0MjQ5LCAzLjY3NDkiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTg0OTM2LCAwLjIzNTA0NSwgMC41MTU0MTIsIDAuNzYyNDUsIDEuMDkxNywgMS43NTAyLCAyLjE2MTYiLCBcCi0gICAgICAgICAgIjAuMTk1NSwgMC4yNDU1OTYsIDAuNTI1OTcsIDAuNzczMDExLCAxLjEwMjI2LCAxLjc2MDY3LCAyLjE3MjE0IiwgXAotICAgICAgICAgICIwLjIwODE4NiwgMC4yNTgzMDUsIDAuNTM4NywgMC43ODU3MjUsIDEuMTE0OTgsIDEuNzczNDMsIDIuMTg0ODYiLCBcCi0gICAgICAgICAgIjAuMjIxNjcsIDAuMjcxNzk2LCAwLjU1MjI1NSwgMC43OTkyMzEsIDEuMTI4NDksIDEuNzg2OTUsIDIuMTk4NCIsIFwKLSAgICAgICAgICAiMC4yMzQ5NjksIDAuMjg1MTA0LCAwLjU2NTU2MiwgMC44MTI1NzEsIDEuMTQxODMsIDEuODAwMzgsIDIuMjExNzMiLCBcCi0gICAgICAgICAgIjAuMjU2MDk1LCAwLjMwNjIyNiwgMC41ODY3MTUsIDAuODMzNzI1LCAxLjE2Mjk5LCAxLjgyMTQ3LCAyLjIzMjg5IiwgXAotICAgICAgICAgICIwLjI3NDA5OCwgMC4zMjQyMTksIDAuNjA0NzIzLCAwLjg1MTczLCAxLjE4MSwgMS44Mzk0NywgMi4yNTA5MSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xODc4OTQsIDAuMjgzMTMyLCAwLjgzNTg3NCwgMS4zMjYxNCwgMS45Nzg3LCAzLjI5MDg3LCA0LjEwNjA4IiwgXAotICAgICAgICAgICIwLjE4Nzg1OSwgMC4yODI4MjMsIDAuODM1OTAzLCAxLjMyNiwgMS45Nzg5OCwgMy4yOTE4OCwgNC4xMDY4NyIsIFwKLSAgICAgICAgICAiMC4xODc4NDUsIDAuMjgzMDk4LCAwLjgzNTcwOCwgMS4zMjY2LCAxLjk4MDA0LCAzLjI5MTA4LCA0LjEwNDQyIiwgXAotICAgICAgICAgICIwLjE4NzgyMywgMC4yODMxMzIsIDAuODM1NDkxLCAxLjMyNjM5LCAxLjk3ODI5LCAzLjI5MTIzLCA0LjEwNTE1IiwgXAotICAgICAgICAgICIwLjE4NzgyNSwgMC4yODMxMDIsIDAuODM0NDgsIDEuMzI2NjUsIDEuOTc4NTEsIDMuMjg5OTUsIDQuMTA0NzgiLCBcCi0gICAgICAgICAgIjAuMTg4MDM3LCAwLjI4MzE0OCwgMC44MzU1OTQsIDEuMzI2NjEsIDEuOTgwMTUsIDMuMjkwMzksIDQuMTA0NzQiLCBcCi0gICAgICAgICAgIjAuMTg4MTg2LCAwLjI4MzI1NywgMC44MzU2NTMsIDEuMzI2MjYsIDEuOTc5MzIsIDMuMjkxMzIsIDQuMTA3MzEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxNjc0LCAwLjAwMTY4MSwgMC4wMDE2OSwgMC4wMDE2OTMsIDAuMDAxNjk0LCAwLjAwMTY5NSwgMC4wMDE2OTUiLCBcCi0gICAgICAgICAgIjAuMDAxNjY1LCAwLjAwMTY3MiwgMC4wMDE2ODIsIDAuMDAxNjg0LCAwLjAwMTY4NiwgMC4wMDE2ODYsIDAuMDAxNjg3IiwgXAotICAgICAgICAgICIwLjAwMTY1OCwgMC4wMDE2NjUsIDAuMDAxNjc2LCAwLjAwMTY3OCwgMC4wMDE2NzksIDAuMDAxNjc5LCAwLjAwMTY4IiwgXAotICAgICAgICAgICIwLjAwMTY1MywgMC4wMDE2NiwgMC4wMDE2NywgMC4wMDE2NzIsIDAuMDAxNjc0LCAwLjAwMTY3NSwgMC4wMDE2NzUiLCBcCi0gICAgICAgICAgIjAuMDAxNjQ4LCAwLjAwMTY1NiwgMC4wMDE2NjcsIDAuMDAxNjY5LCAwLjAwMTY3LCAwLjAwMTY3MSwgMC4wMDE2NzEiLCBcCi0gICAgICAgICAgIjAuMDAxNjQzLCAwLjAwMTY1LCAwLjAwMTY2MiwgMC4wMDE2NjQsIDAuMDAxNjY2LCAwLjAwMTY2NywgMC4wMDE2NjciLCBcCi0gICAgICAgICAgIjAuMDAxNjM5LCAwLjAwMTY0NiwgMC4wMDE2NTgsIDAuMDAxNjYxLCAwLjAwMTY2MywgMC4wMDE2NjQsIDAuMDAxNjY0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyODksIDAuMDAyODk4LCAwLjAwMjkwOSwgMC4wMDI5MTEsIDAuMDAyOTEyLCAwLjAwMjkxNCwgMC4wMDI5MTQiLCBcCi0gICAgICAgICAgIjAuMDAyODg1LCAwLjAwMjg5MywgMC4wMDI5MDQsIDAuMDAyOTA2LCAwLjAwMjkwOCwgMC4wMDI5MDksIDAuMDAyOTA5IiwgXAotICAgICAgICAgICIwLjAwMjg4MiwgMC4wMDI4OSwgMC4wMDI5MDEsIDAuMDAyOTAzLCAwLjAwMjkwNSwgMC4wMDI5MDYsIDAuMDAyOTA2IiwgXAotICAgICAgICAgICIwLjAwMjg4LCAwLjAwMjg4OCwgMC4wMDI4OTksIDAuMDAyOTAxLCAwLjAwMjkwMywgMC4wMDI5MDQsIDAuMDAyOTA0IiwgXAotICAgICAgICAgICIwLjAwMjg3NywgMC4wMDI4ODUsIDAuMDAyODk3LCAwLjAwMjg5OSwgMC4wMDI5MDEsIDAuMDAyOTAyLCAwLjAwMjkwMiIsIFwKLSAgICAgICAgICAiMC4wMDI4NzMsIDAuMDAyODgyLCAwLjAwMjg5NSwgMC4wMDI4OTcsIDAuMDAyODk5LCAwLjAwMjksIDAuMDAyOTAxIiwgXAotICAgICAgICAgICIwLjAwMjg3MSwgMC4wMDI4OCwgMC4wMDI4OTMsIDAuMDAyODk2LCAwLjAwMjg5OCwgMC4wMDI4OTksIDAuMDAyODk5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTY3NCwgMC4wMDE2OCwgMC4wMDE2OSwgMC4wMDE2OTMsIDAuMDAxNjk0LCAwLjAwMTY5NSwgMC4wMDE2OTQiLCBcCi0gICAgICAgICAgIjAuMDAxNjYzLCAwLjAwMTY3LCAwLjAwMTY4LCAwLjAwMTY4MiwgMC4wMDE2ODMsIDAuMDAxNjg1LCAwLjAwMTY4NSIsIFwKLSAgICAgICAgICAiMC4wMDE2NTQsIDAuMDAxNjYxLCAwLjAwMTY3MiwgMC4wMDE2NzQsIDAuMDAxNjc2LCAwLjAwMTY3NiwgMC4wMDE2NzciLCBcCi0gICAgICAgICAgIjAuMDAxNjQ4LCAwLjAwMTY1NSwgMC4wMDE2NjYsIDAuMDAxNjY4LCAwLjAwMTY3LCAwLjAwMTY3MSwgMC4wMDE2NzEiLCBcCi0gICAgICAgICAgIjAuMDAxNjQyLCAwLjAwMTY1LCAwLjAwMTY2MSwgMC4wMDE2NjUsIDAuMDAxNjY1LCAwLjAwMTY2NywgMC4wMDE2NjciLCBcCi0gICAgICAgICAgIjAuMDAxNjM3LCAwLjAwMTY0NSwgMC4wMDE2NTcsIDAuMDAxNjYsIDAuMDAxNjYyLCAwLjAwMTY2MywgMC4wMDE2NjQiLCBcCi0gICAgICAgICAgIjAuMDAxNjMzLCAwLjAwMTY0MSwgMC4wMDE2NTQsIDAuMDAxNjU4LCAwLjAwMTY2LCAwLjAwMTY2MSwgMC4wMDE2NjIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI3MDgsIDAuMDAyNzE1LCAwLjAwMjcyNSwgMC4wMDI3MjgsIDAuMDAyNzI5LCAwLjAwMjczLCAwLjAwMjczIiwgXAotICAgICAgICAgICIwLjAwMjcwNSwgMC4wMDI3MTMsIDAuMDAyNzIzLCAwLjAwMjcyNSwgMC4wMDI3MjYsIDAuMDAyNzI3LCAwLjAwMjcyNyIsIFwKLSAgICAgICAgICAiMC4wMDI3LCAwLjAwMjcwOCwgMC4wMDI3MTgsIDAuMDAyNzIsIDAuMDAyNzIxLCAwLjAwMjcyMiwgMC4wMDI3MjIiLCBcCi0gICAgICAgICAgIjAuMDAyNjk2LCAwLjAwMjcwMywgMC4wMDI3MTQsIDAuMDAyNzE2LCAwLjAwMjcxNywgMC4wMDI3MTgsIDAuMDAyNzE4IiwgXAotICAgICAgICAgICIwLjAwMjY5MSwgMC4wMDI2OTksIDAuMDAyNzEsIDAuMDAyNzEyLCAwLjAwMjcxMywgMC4wMDI3MTQsIDAuMDAyNzE0IiwgXAotICAgICAgICAgICIwLjAwMjY4NiwgMC4wMDI2OTQsIDAuMDAyNzA2LCAwLjAwMjcwOCwgMC4wMDI3MSwgMC4wMDI3MTEsIDAuMDAyNzExIiwgXAotICAgICAgICAgICIwLjAwMjY4MiwgMC4wMDI2OTEsIDAuMDAyNzA0LCAwLjAwMjcwNiwgMC4wMDI3MDgsIDAuMDAyNzA5LCAwLjAwMjcwOSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDExNzYsIDAuMDAxMTc4LCAwLjAwMTE4MiwgMC4wMDExODIsIDAuMDAxMTgyLCAwLjAwMTE4NCwgMC4wMDExODMiLCBcCi0gICAgICAgICAgIjAuMDAxMTcxLCAwLjAwMTE3NCwgMC4wMDExNzYsIDAuMDAxMTc2LCAwLjAwMTE3NywgMC4wMDExNzcsIDAuMDAxMTc3IiwgXAotICAgICAgICAgICIwLjAwMTE2MiwgMC4wMDExNjUsIDAuMDAxMTY4LCAwLjAwMTE2OCwgMC4wMDExNjgsIDAuMDAxMTY5LCAwLjAwMTE2OSIsIFwKLSAgICAgICAgICAiMC4wMDExNTQsIDAuMDAxMTU4LCAwLjAwMTE2MSwgMC4wMDExNjIsIDAuMDAxMTYyLCAwLjAwMTE2MiwgMC4wMDExNjIiLCBcCi0gICAgICAgICAgIjAuMDAxMTQ4LCAwLjAwMTE1MiwgMC4wMDExNTYsIDAuMDAxMTU3LCAwLjAwMTE1NywgMC4wMDExNTcsIDAuMDAxMTU3IiwgXAotICAgICAgICAgICIwLjAwMTE0LCAwLjAwMTE0NSwgMC4wMDExNTEsIDAuMDAxMTUyLCAwLjAwMTE1MiwgMC4wMDExNTIsIDAuMDAxMTUyIiwgXAotICAgICAgICAgICIwLjAwMTEzNiwgMC4wMDExNDEsIDAuMDAxMTQ4LCAwLjAwMTE0OSwgMC4wMDExNDksIDAuMDAxMTUsIDAuMDAxMTUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDIzNTcsIDAuMDAyMzY0LCAwLjAwMjM3NSwgMC4wMDIzNzgsIDAuMDAyMzc5LCAwLjAwMjM4LCAwLjAwMjM4IiwgXAotICAgICAgICAgICIwLjAwMjM0OSwgMC4wMDIzNTcsIDAuMDAyMzY4LCAwLjAwMjM3LCAwLjAwMjM3MSwgMC4wMDIzNzIsIDAuMDAyMzcyIiwgXAotICAgICAgICAgICIwLjAwMjM0MiwgMC4wMDIzNSwgMC4wMDIzNjIsIDAuMDAyMzY0LCAwLjAwMjM2NSwgMC4wMDIzNjcsIDAuMDAyMzY3IiwgXAotICAgICAgICAgICIwLjAwMjMzNywgMC4wMDIzNDUsIDAuMDAyMzU3LCAwLjAwMjM2LCAwLjAwMjM2MiwgMC4wMDIzNjMsIDAuMDAyMzYzIiwgXAotICAgICAgICAgICIwLjAwMjMzMSwgMC4wMDIzNCwgMC4wMDIzNTQsIDAuMDAyMzU3LCAwLjAwMjM1OSwgMC4wMDIzNiwgMC4wMDIzNjEiLCBcCi0gICAgICAgICAgIjAuMDAyMzI1LCAwLjAwMjMzNSwgMC4wMDIzNTEsIDAuMDAyMzU0LCAwLjAwMjM1NiwgMC4wMDIzNTgsIDAuMDAyMzU5IiwgXAotICAgICAgICAgICIwLjAwMjMyMiwgMC4wMDIzMzIsIDAuMDAyMzQ5LCAwLjAwMjM1MywgMC4wMDIzNTUsIDAuMDAyMzU3LCAwLjAwMjM1OCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIxIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDExNzcsIDAuMDAxMTgxLCAwLjAwMTE4NiwgMC4wMDExODcsIDAuMDAxMTg3LCAwLjAwMTE4OCwgMC4wMDExODgiLCBcCi0gICAgICAgICAgIjAuMDAxMTY5LCAwLjAwMTE3MywgMC4wMDExNzgsIDAuMDAxMTc5LCAwLjAwMTE4LCAwLjAwMTE4LCAwLjAwMTE4IiwgXAotICAgICAgICAgICIwLjAwMTE1OCwgMC4wMDExNjMsIDAuMDAxMTY5LCAwLjAwMTE2OSwgMC4wMDExNywgMC4wMDExNywgMC4wMDExNyIsIFwKLSAgICAgICAgICAiMC4wMDExNSwgMC4wMDExNTUsIDAuMDAxMTYxLCAwLjAwMTE2MywgMC4wMDExNjMsIDAuMDAxMTY0LCAwLjAwMTE2NCIsIFwKLSAgICAgICAgICAiMC4wMDExNDQsIDAuMDAxMTQ5LCAwLjAwMTE1NywgMC4wMDExNTgsIDAuMDAxMTU5LCAwLjAwMTE1OSwgMC4wMDExNiIsIFwKLSAgICAgICAgICAiMC4wMDExMzcsIDAuMDAxMTQzLCAwLjAwMTE1MiwgMC4wMDExNTMsIDAuMDAxMTU0LCAwLjAwMTE1NSwgMC4wMDExNTYiLCBcCi0gICAgICAgICAgIjAuMDAxMTM0LCAwLjAwMTE0LCAwLjAwMTE1LCAwLjAwMTE1MSwgMC4wMDExNTMsIDAuMDAxMTU0LCAwLjAwMTE1NCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjExOSwgMC4wMDIxMjYsIDAuMDAyMTM1LCAwLjAwMjEzNywgMC4wMDIxMzgsIDAuMDAyMTM5LCAwLjAwMjEzOSIsIFwKLSAgICAgICAgICAiMC4wMDIxMTMsIDAuMDAyMTIsIDAuMDAyMTMsIDAuMDAyMTMyLCAwLjAwMjEzMywgMC4wMDIxMzQsIDAuMDAyMTM0IiwgXAotICAgICAgICAgICIwLjAwMjEwNCwgMC4wMDIxMTEsIDAuMDAyMTIyLCAwLjAwMjEyNCwgMC4wMDIxMjUsIDAuMDAyMTI2LCAwLjAwMjEyNiIsIFwKLSAgICAgICAgICAiMC4wMDIwOTYsIDAuMDAyMTA0LCAwLjAwMjExNiwgMC4wMDIxMTgsIDAuMDAyMTIsIDAuMDAyMTIxLCAwLjAwMjEyMSIsIFwKLSAgICAgICAgICAiMC4wMDIwODksIDAuMDAyMDk4LCAwLjAwMjExMSwgMC4wMDIxMTQsIDAuMDAyMTE2LCAwLjAwMjExNywgMC4wMDIxMTgiLCBcCi0gICAgICAgICAgIjAuMDAyMDgyLCAwLjAwMjA5MSwgMC4wMDIxMDcsIDAuMDAyMTEsIDAuMDAyMTEyLCAwLjAwMjExNCwgMC4wMDIxMTQiLCBcCi0gICAgICAgICAgIjAuMDAyMDc4LCAwLjAwMjA4NywgMC4wMDIxMDQsIDAuMDAyMTA4LCAwLjAwMjExLCAwLjAwMjExMiwgMC4wMDIxMTMiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IEFPMjJYMiAqCi0gKiAtLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKEFPMjJYMikgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjExMTczOwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjAwMDc1OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDU5Nzc3MzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2MDAwNzU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMTY1LCAwLjAwMDE2NSwgMC4wMDAxNjUsIDAuMDAwMTY1LCAwLjAwMDE2NSwgMC4wMDAxNjUsIDAuMDAwMTY1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMTcsIDAuMDAwMTY3LCAwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiwgMC4wMDAxNjYiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEExKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA1ODU1MDY7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNTgxNDA4OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDU4NTUwNjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAwNzQsIDAuMDAwMDczLCAwLjAwMDA3MywgMC4wMDAwNzQsIDAuMDAwMDczLCAwLjAwMDA3NCwgMC4wMDAwNzQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxODgsIDAuMDAwMTg4LCAwLjAwMDE4OCwgMC4wMDAxODgsIDAuMDAwMTg4LCAwLjAwMDE4OCwgMC4wMDAxODgiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA1OTA0MzM7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNTkwNDMzOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDU4ODkyNDsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxNjUsIDAuMDAwMTY1LCAwLjAwMDE2NSwgMC4wMDAxNjUsIDAuMDAwMTY1LCAwLjAwMDE2NSwgMC4wMDAxNjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxNjcsIDAuMDAwMTY2LCAwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiwgMC4wMDAxNjYiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIxKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2MDMyNTE7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjAyOTgxOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDYwMzI1MTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAwMjQsIDAuMDAwMDI0LCAwLjAwMDAyNCwgMC4wMDAwMjQsIDAuMDAwMDI0LCAwLjAwMDAyNCwgMC4wMDAwMjQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxODgsIDAuMDAwMTg4LCAwLjAwMDE4OCwgMC4wMDAxODgsIDAuMDAwMTg4LCAwLjAwMDE4OCwgMC4wMDAxODgiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4yNTE5NDY7Ci0gICAgZnVuY3Rpb24gOiAiKChBMCBBMSkrKEIwIEIxKSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMTQ3NSwgMC40MDQ2NzEsIDAuNTQ4ODE2LCAwLjcyODU1OCwgMC45MDgxMTMsIDEuMDg3MzksIDEuMjY2NjIiLCBcCi0gICAgICAgICAgIjAuMjI2NDE4LCAwLjQxNjI2LCAwLjU2MDQzNSwgMC43NDAxNjMsIDAuOTE5NzUzLCAxLjA5OTAyLCAxLjI3ODIyIiwgXAotICAgICAgICAgICIwLjI0MDE0NiwgMC40Mjk5OTMsIDAuNTc0MTgxLCAwLjc1MzkxMiwgMC45MzM0ODksIDEuMTEyNzUsIDEuMjkxOTYiLCBcCi0gICAgICAgICAgIjAuMjUzODAyLCAwLjQ0MzcwOCwgMC41ODc4ODEsIDAuNzY3NTkzLCAwLjk0NzE0NiwgMS4xMjY1LCAxLjMwNTc2IiwgXAotICAgICAgICAgICIwLjI2NzUwNCwgMC40NTczNTQsIDAuNjAxNTIxLCAwLjc4MTI0OSwgMC45NjA4MzksIDEuMTQwMSwgMS4zMTkzMSIsIFwKLSAgICAgICAgICAiMC4yODk1MTksIDAuNDc5NDIyLCAwLjYyMzU3MiwgMC44MDMzMDksIDAuOTgyODgyLCAxLjE2MjE1LCAxLjM0MTM2IiwgXAotICAgICAgICAgICIwLjMwODY1LCAwLjQ5ODUzMiwgMC42NDI2ODQsIDAuODIyNDIsIDEuMDAyLCAxLjE4MTI3LCAxLjM2MDQ4Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExOTI1NiwgMC40NjQyOTMsIDAuNzUxMTY4LCAxLjExNSwgMS40Nzk0NiwgMS44NDM4OCwgMi4yMDc5NyIsIFwKLSAgICAgICAgICAiMC4xMTkyNDMsIDAuNDY0MjU0LCAwLjc1MTIxOCwgMS4xMTQ5NSwgMS40NzkzNCwgMS44NDM4NSwgMi4yMDgxNSIsIFwKLSAgICAgICAgICAiMC4xMTkxODcsIDAuNDY0MjY4LCAwLjc1MTE0LCAxLjExNDk2LCAxLjQ3OTMyLCAxLjg0Mzg0LCAyLjIwNzciLCBcCi0gICAgICAgICAgIjAuMTE5MjY1LCAwLjQ2NDIzOCwgMC43NTEwMTEsIDEuMTE1MDcsIDEuNDc5MzksIDEuODQzNjQsIDIuMjA4MjciLCBcCi0gICAgICAgICAgIjAuMTE5Mjc0LCAwLjQ2Mzc1OCwgMC43NTExMjIsIDEuMTE0OTQsIDEuNDc5MjgsIDEuODQzODMsIDIuMjA4MTciLCBcCi0gICAgICAgICAgIjAuMTE5MTc5LCAwLjQ2NDE4MSwgMC43NTEwNDksIDEuMTE0OTMsIDEuNDc5MzEsIDEuODQzNzksIDIuMjA3NjciLCBcCi0gICAgICAgICAgIjAuMTE5MjI1LCAwLjQ2NDE3NiwgMC43NTExMDUsIDEuMTE0ODksIDEuNDc5MzgsIDEuODQzODEsIDIuMjA3OTMiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjAzMTA5LCAwLjQxNjI1OSwgMC41ODE2MzcsIDAuNzg4MDk0LCAwLjk5NDM4NCwgMS4yMDA3LCAxLjQwNjg1IiwgXAotICAgICAgICAgICIwLjIxNDc4NiwgMC40Mjc5NDcsIDAuNTkzMzIxLCAwLjc5OTc2OSwgMS4wMDYwNywgMS4yMTI0NSwgMS40MTg1MyIsIFwKLSAgICAgICAgICAiMC4yMjk0MzIsIDAuNDQyNTg5LCAwLjYwNzk2MywgMC44MTQ0MzEsIDEuMDIwNzEsIDEuMjI3MDEsIDEuNDMzMTgiLCBcCi0gICAgICAgICAgIjAuMjQzMzc2LCAwLjQ1NjUzNywgMC42MjE5MTQsIDAuODI4MzkzLCAxLjAzNDY2LCAxLjI0MDk0LCAxLjQ0NzE2IiwgXAotICAgICAgICAgICIwLjI1NjUzOSwgMC40Njk4NTcsIDAuNjM1MjM4LCAwLjg0MTY4MywgMS4wNDgwMywgMS4yNTQzNiwgMS40NjA0NSIsIFwKLSAgICAgICAgICAiMC4yNzcxNywgMC40OTA0ODEsIDAuNjU1ODU1LCAwLjg2MjMzOSwgMS4wNjg2MiwgMS4yNzQ4NiwgMS40ODExMiIsIFwKLSAgICAgICAgICAiMC4yOTQ4NTQsIDAuNTA4MTIzLCAwLjY3MzQ4OSwgMC44Nzk5ODksIDEuMDg2MjcsIDEuMjkyNTEsIDEuNDk4NzQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTE5MzY5LCAwLjUxNjQyMiwgMC44NDE0NjgsIDEuMjUyNjcsIDEuNjY0MTUsIDIuMDc1MzIsIDIuNDgzMzIiLCBcCi0gICAgICAgICAgIjAuMTE5MzcyLCAwLjUxNjQ0MiwgMC44NDEzNTQsIDEuMjUyMDEsIDEuNjY0MTYsIDIuMDc0OTcsIDIuNDgzNDEiLCBcCi0gICAgICAgICAgIjAuMTE5Mzc3LCAwLjUxNjQyNiwgMC44NDE2OTEsIDEuMjUyMDgsIDEuNjY0MTksIDIuMDc1MjQsIDIuNDgzMzMiLCBcCi0gICAgICAgICAgIjAuMTE5MzU2LCAwLjUxNjQyMSwgMC44NDE4MywgMS4yNTIwNiwgMS42NjQxMywgMi4wNzUxNiwgMi40ODQ1NyIsIFwKLSAgICAgICAgICAiMC4xMTkzNzksIDAuNTE2NDI5LCAwLjg0MTI0LCAxLjI1MjA1LCAxLjY2MzU1LCAyLjA3NTE3LCAyLjQ4Mjg5IiwgXAotICAgICAgICAgICIwLjExOTI1NywgMC41MTYzMzgsIDAuODQzNDc4LCAxLjI1MzAzLCAxLjY2NDE3LCAyLjA3MjcxLCAyLjQ4NjY5IiwgXAotICAgICAgICAgICIwLjExOTE2NSwgMC41MTYzMTUsIDAuODQzMjU4LCAxLjI1MzAxLCAxLjY2NDEzLCAyLjA3NTA1LCAyLjQ4NzA3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkExIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMDk4NjEsIDAuMzk5NzU5LCAwLjU0MzkxNSwgMC43MjM2NTMsIDAuOTAzMTk5LCAxLjA4MjQ4LCAxLjI2MTc0IiwgXAotICAgICAgICAgICIwLjIyMDMyOSwgMC40MTAyMzIsIDAuNTU0NDAyLCAwLjczNDEzMSwgMC45MTM2MzIsIDEuMDkzMDcsIDEuMjcyMiIsIFwKLSAgICAgICAgICAiMC4yMzMyODUsIDAuNDIzMTkxLCAwLjU2NzM1MywgMC43NDcwOCwgMC45MjY1ODgsIDEuMTA2MDEsIDEuMjg1MjMiLCBcCi0gICAgICAgICAgIjAuMjQ2NjU4LCAwLjQzNjUzNywgMC41ODA3MDMsIDAuNzYwNDMxLCAwLjk0MDAyNCwgMS4xMTkyOSwgMS4yOTg0OSIsIFwKLSAgICAgICAgICAiMC4yNjAxNTQsIDAuNDUwMDU1LCAwLjU5NDIzMiwgMC43NzQwNTMsIDAuOTUzNDQyLCAxLjEzMjgsIDEuMzEyMDQiLCBcCi0gICAgICAgICAgIjAuMjgyNjg1LCAwLjQ3MjU4NCwgMC42MTY3NjUsIDAuNzk2NDc1LCAwLjk3NjA0MiwgMS4xNTUzNywgMS4zMzQ1OSIsIFwKLSAgICAgICAgICAiMC4zMDIxMjMsIDAuNDkyMDE0LCAwLjYzNjE4NywgMC44MTU5MTksIDAuOTk1NDM2LCAxLjE3NDg2LCAxLjM1NDA3Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExOTI5MSwgMC40NjQzMjksIDAuNzUyMTMxLCAxLjExNTAxLCAxLjQ3OTQ2LCAxLjg0Mzg1LCAyLjIwODE3IiwgXAotICAgICAgICAgICIwLjExOTM0NSwgMC40NjQyNjQsIDAuNzUxMDYxLCAxLjExNTE2LCAxLjQ3ODkxLCAxLjg0MzU5LCAyLjIwNzM5IiwgXAotICAgICAgICAgICIwLjExOTMzOSwgMC40NjQyMTIsIDAuNzUxMDMzLCAxLjExNTEzLCAxLjQ3ODk3LCAxLjg0MzUxLCAyLjIwNDg4IiwgXAotICAgICAgICAgICIwLjExOTMwOCwgMC40NjM3NjgsIDAuNzUxMTk1LCAxLjExNDQ5LCAxLjQ3OTM2LCAxLjg0Mzc2LCAyLjIwODEyIiwgXAotICAgICAgICAgICIwLjExOTI0NSwgMC40NjQyMDksIDAuNzUxMDU4LCAxLjExNTUzLCAxLjQ3OTA0LCAxLjg0MzM4LCAyLjIwODI1IiwgXAotICAgICAgICAgICIwLjExOTIzLCAwLjQ2NDIwOCwgMC43NTEwMDEsIDEuMTE1MDMsIDEuNDc5MzQsIDEuODQzNjcsIDIuMjA4MzIiLCBcCi0gICAgICAgICAgIjAuMTE5MTkyLCAwLjQ2Mzc1NSwgMC43NTEsIDEuMTE1MTEsIDEuNDc5LCAxLjg0MzY2LCAyLjIwNDU2Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE5NjkzMSwgMC40MDk2NiwgMC41NzQ5MTMsIDAuNzgxMzA5LCAwLjk4NzU1MSwgMS4xOTM2NywgMS4zOTk4NyIsIFwKLSAgICAgICAgICAiMC4yMDg4NTgsIDAuNDIxNTIzLCAwLjU4Njc2MSwgMC43OTMxMzEsIDAuOTk5MzMxLCAxLjIwNTU2LCAxLjQxMTciLCBcCi0gICAgICAgICAgIjAuMjIzMjg0LCAwLjQzNjA4NywgMC42MDEzMTgsIDAuODA3NzAyLCAxLjAxMzkxLCAxLjIyMDA2LCAxLjQyNjI3IiwgXAotICAgICAgICAgICIwLjIzNzE4LCAwLjQ0OTkyOSwgMC42MTUxOSwgMC44MjE1ODMsIDEuMDI3ODIsIDEuMjMzOTQsIDEuNDQwMTQiLCBcCi0gICAgICAgICAgIjAuMjUwNTUxLCAwLjQ2MzIxNSwgMC42Mjg0OTMsIDAuODM0ODgxLCAxLjA0MTE5LCAxLjI0NzI0LCAxLjQ1MzQ0IiwgXAotICAgICAgICAgICIwLjI3MTEwMywgMC40ODM3OCwgMC42NDkwMjksIDAuODU1Mzk4LCAxLjA2MTYxLCAxLjI2NzgsIDEuNDczOTgiLCBcCi0gICAgICAgICAgIjAuMjg4NzA0LCAwLjUwMTM5MiwgMC42NjY2NDksIDAuODcyOTY3LCAxLjA3OTMsIDEuMjg1NDYsIDEuNDkxNiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTg3MDcsIDAuNTE1Nzc0LCAwLjg0MDU4MiwgMS4yNTI0NCwgMS42NjIyMywgMi4wNzUwOSwgMi40ODY0OCIsIFwKLSAgICAgICAgICAiMC4xMTg3MjEsIDAuNTE1NzkzLCAwLjg0MTUwMywgMS4yNTI0LCAxLjY2MzU2LCAyLjA3NDQ4LCAyLjQ4MzU1IiwgXAotICAgICAgICAgICIwLjExODc2MSwgMC41MTU3MjEsIDAuODQxMDcxLCAxLjI1MjQ0LCAxLjY2MzE5LCAyLjA3NTIyLCAyLjQ4NjUyIiwgXAotICAgICAgICAgICIwLjExODczNiwgMC41MTUyMTQsIDAuODQwNTY0LCAxLjI1MjQ1LCAxLjY2MjI3LCAyLjA3NTAxLCAyLjQ4NjU0IiwgXAotICAgICAgICAgICIwLjExODY5LCAwLjUxNTc3NCwgMC44NDEzLCAxLjI1MjMzLCAxLjY2MzgzLCAyLjA3NTEzLCAyLjQ4NzQiLCBcCi0gICAgICAgICAgIjAuMTE4NzEzLCAwLjUxNTc0NywgMC44NDE4MjcsIDEuMjUyNCwgMS42NjM1LCAyLjA3MTg0LCAyLjQ4NjQ0IiwgXAotICAgICAgICAgICIwLjExODYxNywgMC41MTU2NzIsIDAuODQwNDc5LCAxLjI1Mjk4LCAxLjY2MjQ1LCAyLjA3NDA3LCAyLjQ4MzU5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xODE4NjQsIDAuMzY4MzE4LCAwLjUxMTYyNSwgMC42OTA3LCAwLjg2OTcwNSwgMS4wNDg4OSwgMS4yMjc4MiIsIFwKLSAgICAgICAgICAiMC4xOTM5ODIsIDAuMzgwNDI4LCAwLjUyMzcyNiwgMC43MDI4MTMsIDAuODgxODEsIDEuMDYxMTksIDEuMjM5ODciLCBcCi0gICAgICAgICAgIjAuMjA3OTQzLCAwLjM5NDM2MSwgMC41Mzc2NjUsIDAuNzE2NzQ3LCAwLjg5NTc4MSwgMS4wNzQ5LCAxLjI1Mzg5IiwgXAotICAgICAgICAgICIwLjIyMTQ5LCAwLjQwNzk3MSwgMC41NTEyNDYsIDAuNzMwMzQsIDAuOTA5MzYxLCAxLjA4ODUyLCAxLjI2NzQ2IiwgXAotICAgICAgICAgICIwLjIzNTIyMSwgMC40MjE2NzksIDAuNTY0OTcxLCAwLjc0NDAxNywgMC45MjMxNDIsIDEuMTAyMjYsIDEuMjgxMjUiLCBcCi0gICAgICAgICAgIjAuMjU2ODgzLCAwLjQ0MzMzNCwgMC41ODY2MTgsIDAuNzY1NzE0LCAwLjk0NDczNiwgMS4xMjM5LCAxLjMwMjg0IiwgXAotICAgICAgICAgICIwLjI3NTgyOCwgMC40NjIzMDQsIDAuNjA1NjExLCAwLjc4NDY4LCAwLjk2MzgsIDEuMTQyNzQsIDEuMzIxOTMiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTEzMjEyLCAwLjQ1OTcyMiwgMC43NDgwMTEsIDEuMTEwNzUsIDEuNDc1NTksIDEuODM2MTQsIDIuMjA1NTgiLCBcCi0gICAgICAgICAgIjAuMTEzMTQ0LCAwLjQ1OTc1NSwgMC43NDc4NDQsIDEuMTEwNTIsIDEuNDc1NTYsIDEuODQwNDYsIDIuMjA1NTEiLCBcCi0gICAgICAgICAgIjAuMTEzMDg0LCAwLjQ1OTY5NSwgMC43NDcwOSwgMS4xMTI3OSwgMS40NzU2MSwgMS44MzcwMywgMi4yMDUyNyIsIFwKLSAgICAgICAgICAiMC4xMTMwOTIsIDAuNDU5NjQ2LCAwLjc0Njc0OCwgMS4xMTI2OCwgMS40NzU1OCwgMS44Mzc0NSwgMi4yMDU1IiwgXAotICAgICAgICAgICIwLjExMzEyMywgMC40NTk1NDQsIDAuNzQ2NjQ5LCAxLjExMjUsIDEuNDc0OTksIDEuODM1MDEsIDIuMjA0NzMiLCBcCi0gICAgICAgICAgIjAuMTEzMTU2LCAwLjQ1OTYzNSwgMC43NDY4NzcsIDEuMTEyNjEsIDEuNDc1NTUsIDEuODM3NDYsIDIuMjA1NDgiLCBcCi0gICAgICAgICAgIjAuMTEzMjg1LCAwLjQ1OTYxMSwgMC43NDY4NzcsIDEuMTEyNTcsIDEuNDc0OTksIDEuODQwMywgMi4yMDQ3MiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNzg2MDcsIDAuMzkxODkzLCAwLjU1NzI0OCwgMC43NjM3NDIsIDAuOTcwMDE3LCAxLjE3NjI2LCAxLjM4MjQ4IiwgXAotICAgICAgICAgICIwLjE4OTAyMSwgMC40MDIxNzcsIDAuNTY3NTU1LCAwLjc3Mzk4NSwgMC45ODAzOTEsIDEuMTg2NTgsIDEuMzkyNzciLCBcCi0gICAgICAgICAgIjAuMjAyMDE3LCAwLjQxNTE1OCwgMC41ODA1MTUsIDAuNzg3MDEzLCAwLjk5MzI5MSwgMS4xOTk1NCwgMS40MDU3NyIsIFwKLSAgICAgICAgICAiMC4yMTUwNywgMC40MjgyMzcsIDAuNTkzNjIyLCAwLjgwMDA5NSwgMS4wMDYzNywgMS4yMTI2OCwgMS40MTg4NCIsIFwKLSAgICAgICAgICAiMC4yMjg3OTQsIDAuNDQxOTU0LCAwLjYwNzM0NiwgMC44MTM4MDksIDEuMDIwMSwgMS4yMjY0MywgMS40MzI1OCIsIFwKLSAgICAgICAgICAiMC4yNTAxMDMsIDAuNDYzMzg4LCAwLjYyODc3OSwgMC44MzUyNzksIDEuMDQxNTYsIDEuMjQ3NzgsIDEuNDU0MDMiLCBcCi0gICAgICAgICAgIjAuMjY4NzYxLCAwLjQ4MjA1MSwgMC42NDc0NzEsIDAuODU0MDExLCAxLjA2MDI4LCAxLjI2NjU1LCAxLjQ3MjczIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExOTMxOSwgMC41MTY0MDEsIDAuODQzMywgMS4yNTMwMSwgMS42NjQwNiwgMi4wNzM3LCAyLjQ4MzA0IiwgXAotICAgICAgICAgICIwLjExOTM3MywgMC41MTY0MzEsIDAuODQwNzM1LCAxLjI1MzQ4LCAxLjY2MzI5LCAyLjA3NTE3LCAyLjQ4MjU5IiwgXAotICAgICAgICAgICIwLjExOTM0MSwgMC41MTY0MjUsIDAuODQyNDU2LCAxLjI1MzA0LCAxLjY2NDEyLCAyLjA3MjM3LCAyLjQ4NTUxIiwgXAotICAgICAgICAgICIwLjExOTM1LCAwLjUxNjQyNiwgMC44NDExNzksIDEuMjUyMTgsIDEuNjY0MTYsIDIuMDc1LCAyLjQ4MzMzIiwgXAotICAgICAgICAgICIwLjExOTI5OSwgMC41MTYzNDMsIDAuODQwODUsIDEuMjUyNTMsIDEuNjY0MjksIDIuMDc1MDgsIDIuNDg0NDUiLCBcCi0gICAgICAgICAgIjAuMTE5MjI0LCAwLjUxNjM3MSwgMC44NDIxNjYsIDEuMjUyOTIsIDEuNjYzOCwgMi4wNzU5MiwgMi40ODQ2MiIsIFwKLSAgICAgICAgICAiMC4xMTkyMSwgMC41MTYzNTIsIDAuODQwOTQ2LCAxLjI1MjE0LCAxLjY2Mzk3LCAyLjA3NTA2LCAyLjQ4MjYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjEiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE3NTI0NSwgMC4zNjE2NzgsIDAuNTA0OTg5LCAwLjY4NDA3MywgMC44NjMwNzQsIDEuMDQyMjgsIDEuMjIxNTkiLCBcCi0gICAgICAgICAgIjAuMTg1Njk0LCAwLjM3MjEyMiwgMC41MTU0MjYsIDAuNjk0NTE1LCAwLjg3MzYzNSwgMS4wNTI1NywgMS4yMzE3MyIsIFwKLSAgICAgICAgICAiMC4xOTg5NzksIDAuMzg1NDE4LCAwLjUyODcyOCwgMC43MDc4MTMsIDAuODg2ODU0LCAxLjA2NTk4LCAxLjI0NDk3IiwgXAotICAgICAgICAgICIwLjIxMjI0OSwgMC4zOTg3MjksIDAuNTQyMDI0LCAwLjcyMTEwNSwgMC45MDAzMDUsIDEuMDc5MjcsIDEuMjU4MzIiLCBcCi0gICAgICAgICAgIjAuMjI2NDI5LCAwLjQxMjg3NywgMC41NTYxODQsIDAuNzM1MjY5LCAwLjkxNDMxNiwgMS4wOTM0NCwgMS4yNzI0NSIsIFwKLSAgICAgICAgICAiMC4yNDg0OTIsIDAuNDM0OTU2LCAwLjU3ODI0OCwgMC43NTczNSwgMC45MzYzOCwgMS4xMTU1NCwgMS4yOTQ0OSIsIFwKLSAgICAgICAgICAiMC4yNjc5MjksIDAuNDU0NDYzLCAwLjU5Nzc4NiwgMC43NzY4NywgMC45NTU4OTUsIDEuMTM1MDUsIDEuMzE0MjEiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTEzMTE1LCAwLjQ1OTcwNiwgMC43NDYzNjcsIDEuMTEyNjcsIDEuNDc1NTcsIDEuODM2MTQsIDIuMjA1MzkiLCBcCi0gICAgICAgICAgIjAuMTEzMzEzLCAwLjQ1OTcsIDAuNzQ2NjUyLCAxLjExMTI4LCAxLjQ3NzUzLCAxLjg0MDQxLCAyLjIwNTQzIiwgXAotICAgICAgICAgICIwLjExMzEwNywgMC40NTk2ODksIDAuNzQ2NzI2LCAxLjExMDY0LCAxLjQ3NTYsIDEuODM3MDEsIDIuMjA0MDciLCBcCi0gICAgICAgICAgIjAuMTEzMTg1LCAwLjQ1OTU0OSwgMC43NDY2NCwgMS4xMDkzNywgMS40NzI3NywgMS44MzUzOSwgMi4xOTk3MiIsIFwKLSAgICAgICAgICAiMC4xMTMxNjksIDAuNDU5Njg5LCAwLjc0NjY3OCwgMS4xMTA2NSwgMS40NzI5MiwgMS44MzcyNSwgMi4xOTk2OSIsIFwKLSAgICAgICAgICAiMC4xMTMyOTYsIDAuNDU5NjQyLCAwLjc0Njc4OCwgMS4xMDg1NCwgMS40NzU1NCwgMS44Mzk3NywgMi4yMDU0OCIsIFwKLSAgICAgICAgICAiMC4xMTM1MTcsIDAuNDU5NjgyLCAwLjc0NjM2MywgMS4xMDg1NywgMS40NzU1MywgMS44Mzk4NiwgMi4yMDQ2MSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNzEwNTcsIDAuMzgzNTM0LCAwLjU0ODcyMywgMC43NTUwNDcsIDAuOTYxMjIyLCAxLjE2NzQ0LCAxLjM3MzU1IiwgXAotICAgICAgICAgICIwLjE4MTUzNSwgMC4zOTQxNjUsIDAuNTU5Mzc1LCAwLjc2NTcxNSwgMC45NzE4NzcsIDEuMTc4MDMsIDEuMzg0MjIiLCBcCi0gICAgICAgICAgIjAuMTk0Mzg5LCAwLjQwNjg2NiwgMC41NzIwNTIsIDAuNzc4Mzg2LCAwLjk4NDU2NCwgMS4xOTA3MywgMS4zOTciLCBcCi0gICAgICAgICAgIjAuMjA3NzkyLCAwLjQyMDM2LCAwLjU4NTU3LCAwLjc5MTkyMiwgMC45OTc3MywgMS4yMDM3OCwgMS40MDk5NiIsIFwKLSAgICAgICAgICAiMC4yMjEwNzEsIDAuNDMzNTkzLCAwLjU5ODgxMiwgMC44MDUxMTEsIDEuMDExMzIsIDEuMjE3NTEsIDEuNDIzNjciLCBcCi0gICAgICAgICAgIjAuMjQyNDk2LCAwLjQ1NDk5NSwgMC42MjAxODMsIDAuODI2NTQ3LCAxLjAzMjczLCAxLjIzODkxLCAxLjQ0NTE0IiwgXAotICAgICAgICAgICIwLjI2MDg4MiwgMC40NzM0NzMsIDAuNjM4Njk5LCAwLjg0NTA3NCwgMS4wNTEyNSwgMS4yNTc0LCAxLjQ2MzU5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExODQ3NCwgMC41MTU1MjgsIDAuODQwNTczLCAxLjI1MjQxLCAxLjY2MzQ3LCAyLjA3NDIzLCAyLjQ4MjczIiwgXAotICAgICAgICAgICIwLjExODQ4NywgMC41MTU0NDgsIDAuODQxMjcyLCAxLjI1MjQ0LCAxLjY2Mzc2LCAyLjA3NTE3LCAyLjQ4NTczIiwgXAotICAgICAgICAgICIwLjExODQ1OSwgMC41MTU1MTQsIDAuODQwMjc5LCAxLjI1MjQsIDEuNjYzMzUsIDIuMDcxNjQsIDIuNDg0ODYiLCBcCi0gICAgICAgICAgIjAuMTE4MzYxLCAwLjUxNTQwNSwgMC44NDA0OTIsIDEuMjUyNCwgMS42NjIyNywgMi4wNzUwNCwgMi40ODM5NCIsIFwKLSAgICAgICAgICAiMC4xMTg0MDQsIDAuNTE1NDg2LCAwLjg0MTYzLCAxLjI1MjQ2LCAxLjY2MjIzLCAyLjA3MjE0LCAyLjQ4MjIyIiwgXAotICAgICAgICAgICIwLjExODM4NywgMC41MTU0ODgsIDAuODQyMjY3LCAxLjI1MjQxLCAxLjY2MzM5LCAyLjA3MDg5LCAyLjQ4MDU4IiwgXAotICAgICAgICAgICIwLjExODU1OSwgMC41MTU0MzgsIDAuODQwMDE3LCAxLjI1MjA0LCAxLjY2MzI1LCAyLjA3NTE1LCAyLjQ4NDk1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjQxMiwgMC4wMDI0NjcsIDAuMDAyNDc1LCAwLjAwMjQ3OSwgMC4wMDI0ODIsIDAuMDAyNDgzLCAwLjAwMjQ4NCIsIFwKLSAgICAgICAgICAiMC4wMDI0MDQsIDAuMDAyNDU5LCAwLjAwMjQ2NywgMC4wMDI0NzIsIDAuMDAyNDc0LCAwLjAwMjQ3NSwgMC4wMDI0NzYiLCBcCi0gICAgICAgICAgIjAuMDAyMzk3LCAwLjAwMjQ1MywgMC4wMDI0NjEsIDAuMDAyNDY2LCAwLjAwMjQ2OCwgMC4wMDI0NjksIDAuMDAyNDciLCBcCi0gICAgICAgICAgIjAuMDAyMzkyLCAwLjAwMjQ0OCwgMC4wMDI0NTcsIDAuMDAyNDYxLCAwLjAwMjQ2MywgMC4wMDI0NjUsIDAuMDAyNDY1IiwgXAotICAgICAgICAgICIwLjAwMjM4NywgMC4wMDI0NDQsIDAuMDAyNDUyLCAwLjAwMjQ1NywgMC4wMDI0NiwgMC4wMDI0NjEsIDAuMDAyNDYyIiwgXAotICAgICAgICAgICIwLjAwMjM4MiwgMC4wMDI0MzgsIDAuMDAyNDQ3LCAwLjAwMjQ1MiwgMC4wMDI0NTUsIDAuMDAyNDU3LCAwLjAwMjQ1OCIsIFwKLSAgICAgICAgICAiMC4wMDIzNzgsIDAuMDAyNDM0LCAwLjAwMjQ0NCwgMC4wMDI0NDksIDAuMDAyNDUyLCAwLjAwMjQ1MywgMC4wMDI0NTUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDM3NDgsIDAuMDAzODE4LCAwLjAwMzgyNywgMC4wMDM4MzIsIDAuMDAzODM1LCAwLjAwMzgzNywgMC4wMDM4MzgiLCBcCi0gICAgICAgICAgIjAuMDAzNzQ0LCAwLjAwMzgxNCwgMC4wMDM4MjMsIDAuMDAzODI4LCAwLjAwMzgzMSwgMC4wMDM4MzIsIDAuMDAzODMzIiwgXAotICAgICAgICAgICIwLjAwMzc0MSwgMC4wMDM4MTEsIDAuMDAzODIxLCAwLjAwMzgyNiwgMC4wMDM4MjgsIDAuMDAzODMsIDAuMDAzODMxIiwgXAotICAgICAgICAgICIwLjAwMzczOSwgMC4wMDM4MDksIDAuMDAzODE5LCAwLjAwMzgyNCwgMC4wMDM4MjYsIDAuMDAzODI4LCAwLjAwMzgyOSIsIFwKLSAgICAgICAgICAiMC4wMDM3MzYsIDAuMDAzODA3LCAwLjAwMzgxNywgMC4wMDM4MjIsIDAuMDAzODI1LCAwLjAwMzgyNiwgMC4wMDM4MjciLCBcCi0gICAgICAgICAgIjAuMDAzNzMxLCAwLjAwMzgwMywgMC4wMDM4MTQsIDAuMDAzODE5LCAwLjAwMzgyMiwgMC4wMDM4MjQsIDAuMDAzODI1IiwgXAotICAgICAgICAgICIwLjAwMzcyOCwgMC4wMDM4LCAwLjAwMzgxMSwgMC4wMDM4MTcsIDAuMDAzODIsIDAuMDAzODIyLCAwLjAwMzgyMyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkExIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI0MTEsIDAuMDAyNDY2LCAwLjAwMjQ3NSwgMC4wMDI0NzksIDAuMDAyNDgxLCAwLjAwMjQ4MywgMC4wMDI0ODQiLCBcCi0gICAgICAgICAgIjAuMDAyNDAzLCAwLjAwMjQ1OCwgMC4wMDI0NjYsIDAuMDAyNDcxLCAwLjAwMjQ3MywgMC4wMDI0NzQsIDAuMDAyNDc1IiwgXAotICAgICAgICAgICIwLjAwMjM5NCwgMC4wMDI0NDksIDAuMDAyNDU4LCAwLjAwMjQ2MywgMC4wMDI0NjYsIDAuMDAyNDY2LCAwLjAwMjQ2NyIsIFwKLSAgICAgICAgICAiMC4wMDIzODgsIDAuMDAyNDQzLCAwLjAwMjQ1MiwgMC4wMDI0NTcsIDAuMDAyNDYsIDAuMDAyNDYxLCAwLjAwMjQ2MiIsIFwKLSAgICAgICAgICAiMC4wMDIzODMsIDAuMDAyNDM4LCAwLjAwMjQ0NywgMC4wMDI0NTIsIDAuMDAyNDU2LCAwLjAwMjQ1NywgMC4wMDI0NTgiLCBcCi0gICAgICAgICAgIjAuMDAyMzc2LCAwLjAwMjQzMiwgMC4wMDI0NDIsIDAuMDAyNDQ3LCAwLjAwMjQ1LCAwLjAwMjQ1MywgMC4wMDI0NTQiLCBcCi0gICAgICAgICAgIjAuMDAyMzcyLCAwLjAwMjQyNywgMC4wMDI0MzgsIDAuMDAyNDQ0LCAwLjAwMjQ0NywgMC4wMDI0NDksIDAuMDAyNDUxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzNTY4LCAwLjAwMzYzNiwgMC4wMDM2NDUsIDAuMDAzNjQ5LCAwLjAwMzY1MiwgMC4wMDM2NTMsIDAuMDAzNjU0IiwgXAotICAgICAgICAgICIwLjAwMzU2NywgMC4wMDM2MzUsIDAuMDAzNjQ0LCAwLjAwMzY0OCwgMC4wMDM2NTEsIDAuMDAzNjUyLCAwLjAwMzY1MyIsIFwKLSAgICAgICAgICAiMC4wMDM1NjIsIDAuMDAzNjMxLCAwLjAwMzY0LCAwLjAwMzY0NCwgMC4wMDM2NDYsIDAuMDAzNjQ4LCAwLjAwMzY0OSIsIFwKLSAgICAgICAgICAiMC4wMDM1NTgsIDAuMDAzNjI3LCAwLjAwMzYzNiwgMC4wMDM2NDEsIDAuMDAzNjQzLCAwLjAwMzY0NCwgMC4wMDM2NDUiLCBcCi0gICAgICAgICAgIjAuMDAzNTU0LCAwLjAwMzYyMywgMC4wMDM2MzMsIDAuMDAzNjM3LCAwLjAwMzY0LCAwLjAwMzY0MSwgMC4wMDM2NDIiLCBcCi0gICAgICAgICAgIjAuMDAzNTQ3LCAwLjAwMzYxOCwgMC4wMDM2MjgsIDAuMDAzNjMzLCAwLjAwMzYzNSwgMC4wMDM2MzcsIDAuMDAzNjM4IiwgXAotICAgICAgICAgICIwLjAwMzU0MywgMC4wMDM2MTQsIDAuMDAzNjI0LCAwLjAwMzYzLCAwLjAwMzYzMywgMC4wMDM2MzQsIDAuMDAzNjM1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTkwNiwgMC4wMDE5NDMsIDAuMDAxOTQ3LCAwLjAwMTk0OSwgMC4wMDE5NSwgMC4wMDE5NTEsIDAuMDAxOTUxIiwgXAotICAgICAgICAgICIwLjAwMTkwNCwgMC4wMDE5NCwgMC4wMDE5NDYsIDAuMDAxOTQ2LCAwLjAwMTk0OCwgMC4wMDE5NDgsIDAuMDAxOTQ4IiwgXAotICAgICAgICAgICIwLjAwMTg5NiwgMC4wMDE5MzQsIDAuMDAxOTM4LCAwLjAwMTk0LCAwLjAwMTk0MSwgMC4wMDE5NDEsIDAuMDAxOTQyIiwgXAotICAgICAgICAgICIwLjAwMTg4NywgMC4wMDE5MjcsIDAuMDAxOTMyLCAwLjAwMTkzNCwgMC4wMDE5MzUsIDAuMDAxOTM1LCAwLjAwMTkzNiIsIFwKLSAgICAgICAgICAiMC4wMDE4OCwgMC4wMDE5MjIsIDAuMDAxOTI2LCAwLjAwMTkyOSwgMC4wMDE5MywgMC4wMDE5MywgMC4wMDE5MzEiLCBcCi0gICAgICAgICAgIjAuMDAxODcsIDAuMDAxOTE0LCAwLjAwMTkxOSwgMC4wMDE5MjIsIDAuMDAxOTIzLCAwLjAwMTkyNCwgMC4wMDE5MjUiLCBcCi0gICAgICAgICAgIjAuMDAxODYzLCAwLjAwMTkwOSwgMC4wMDE5MTUsIDAuMDAxOTE4LCAwLjAwMTkyLCAwLjAwMTkyLCAwLjAwMTkyMiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzIsIDAuMDAzMjY5LCAwLjAwMzI3OCwgMC4wMDMyODMsIDAuMDAzMjg2LCAwLjAwMzI4OCwgMC4wMDMyODkiLCBcCi0gICAgICAgICAgIjAuMDAzMTkzLCAwLjAwMzI2MiwgMC4wMDMyNzIsIDAuMDAzMjc2LCAwLjAwMzI3OSwgMC4wMDMyODEsIDAuMDAzMjgyIiwgXAotICAgICAgICAgICIwLjAwMzE4NywgMC4wMDMyNTYsIDAuMDAzMjY2LCAwLjAwMzI3MiwgMC4wMDMyNzQsIDAuMDAzMjc2LCAwLjAwMzI3NyIsIFwKLSAgICAgICAgICAiMC4wMDMxODEsIDAuMDAzMjUxLCAwLjAwMzI2MiwgMC4wMDMyNjcsIDAuMDAzMjcsIDAuMDAzMjcyLCAwLjAwMzI3MyIsIFwKLSAgICAgICAgICAiMC4wMDMxNzUsIDAuMDAzMjQ2LCAwLjAwMzI1OCwgMC4wMDMyNjQsIDAuMDAzMjY3LCAwLjAwMzI2OSwgMC4wMDMyNzEiLCBcCi0gICAgICAgICAgIjAuMDAzMTY3LCAwLjAwMzIzOSwgMC4wMDMyNTIsIDAuMDAzMjYsIDAuMDAzMjYzLCAwLjAwMzI2NSwgMC4wMDMyNjciLCBcCi0gICAgICAgICAgIjAuMDAzMTYxLCAwLjAwMzIzNSwgMC4wMDMyNDksIDAuMDAzMjU2LCAwLjAwMzI2MSwgMC4wMDMyNjMsIDAuMDAzMjY1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTkwNiwgMC4wMDE5NDYsIDAuMDAxOTUxLCAwLjAwMTk1NCwgMC4wMDE5NTUsIDAuMDAxOTU2LCAwLjAwMTk1NiIsIFwKLSAgICAgICAgICAiMC4wMDE5LCAwLjAwMTk0MSwgMC4wMDE5NDYsIDAuMDAxOTQ5LCAwLjAwMTk1LCAwLjAwMTk1MiwgMC4wMDE5NTIiLCBcCi0gICAgICAgICAgIjAuMDAxODkxLCAwLjAwMTkzMywgMC4wMDE5MzksIDAuMDAxOTQxLCAwLjAwMTk0MiwgMC4wMDE5NDMsIDAuMDAxOTQzIiwgXAotICAgICAgICAgICIwLjAwMTg4MSwgMC4wMDE5MjUsIDAuMDAxOTMxLCAwLjAwMTkzNCwgMC4wMDE5MzUsIDAuMDAxOTM2LCAwLjAwMTkzNyIsIFwKLSAgICAgICAgICAiMC4wMDE4NzQsIDAuMDAxOTE5LCAwLjAwMTkyNiwgMC4wMDE5MjksIDAuMDAxOTMxLCAwLjAwMTkzMiwgMC4wMDE5MzIiLCBcCi0gICAgICAgICAgIjAuMDAxODY1LCAwLjAwMTkxMSwgMC4wMDE5MTgsIDAuMDAxOTIyLCAwLjAwMTkyNSwgMC4wMDE5MjUsIDAuMDAxOTI2IiwgXAotICAgICAgICAgICIwLjAwMTg1NywgMC4wMDE5MDYsIDAuMDAxOTE0LCAwLjAwMTkxOSwgMC4wMDE5MjEsIDAuMDAxOTIyLCAwLjAwMTkyMyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjk2NSwgMC4wMDMwMzEsIDAuMDAzMDQsIDAuMDAzMDQ0LCAwLjAwMzA0NywgMC4wMDMwNDgsIDAuMDAzMDQ5IiwgXAotICAgICAgICAgICIwLjAwMjk2MiwgMC4wMDMwMjgsIDAuMDAzMDM3LCAwLjAwMzA0MSwgMC4wMDMwNDMsIDAuMDAzMDQ1LCAwLjAwMzA0NiIsIFwKLSAgICAgICAgICAiMC4wMDI5NTMsIDAuMDAzMDIsIDAuMDAzMDMsIDAuMDAzMDM0LCAwLjAwMzAzNywgMC4wMDMwMzgsIDAuMDAzMDM5IiwgXAotICAgICAgICAgICIwLjAwMjk0NiwgMC4wMDMwMTQsIDAuMDAzMDI0LCAwLjAwMzAyOSwgMC4wMDMwMzEsIDAuMDAzMDMzLCAwLjAwMzAzNCIsIFwKLSAgICAgICAgICAiMC4wMDI5MzcsIDAuMDAzMDA3LCAwLjAwMzAxOCwgMC4wMDMwMjQsIDAuMDAzMDI3LCAwLjAwMzAyOSwgMC4wMDMwMyIsIFwKLSAgICAgICAgICAiMC4wMDI5MjcsIDAuMDAyOTk4LCAwLjAwMzAxMSwgMC4wMDMwMTgsIDAuMDAzMDIxLCAwLjAwMzAyMywgMC4wMDMwMjUiLCBcCi0gICAgICAgICAgIjAuMDAyOTIsIDAuMDAyOTkzLCAwLjAwMzAwNiwgMC4wMDMwMTQsIDAuMDAzMDE4LCAwLjAwMzAyLCAwLjAwMzAyMiIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogQU8yMlhMICoKLSAqIC0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoQU8yMlhMKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMDY0NTA4NzsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQTApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDU4MjM0NDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA1ODAxOTY7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNTgyMzQ0OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDE2NSwgMC4wMDAxNjUsIDAuMDAwMTY1LCAwLjAwMDE2NSwgMC4wMDAxNjUsIDAuMDAwMTY1LCAwLjAwMDE2NSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDE2OCwgMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQTEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYxODYyOTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MTQ2MDQ7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjE4NjI5OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDA1NCwgMC4wMDAwNTQsIDAuMDAwMDU0LCAwLjAwMDA1NCwgMC4wMDAwNTQsIDAuMDAwMDU0LCAwLjAwMDA1NCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDE4OCwgMC4wMDAxODgsIDAuMDAwMTg4LCAwLjAwMDE4OCwgMC4wMDAxODgsIDAuMDAwMTg4LCAwLjAwMDE4OCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQjApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYzMzkxMTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MzM5MTE7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjMyNDg4OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDE2NSwgMC4wMDAxNjUsIDAuMDAwMTY1LCAwLjAwMDE2NSwgMC4wMDAxNjUsIDAuMDAwMTY1LCAwLjAwMDE2NSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDE2OSwgMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQjEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY0NjM0OTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2NDYwNjY7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjQ2MzQ5OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDA2LCAwLjAwMDA2LCAwLjAwMDA2LCAwLjAwMDA2LCAwLjAwMDA2LCAwLjAwMDA2LCAwLjAwMDA2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMTg4LCAwLjAwMDE4OCwgMC4wMDAxODgsIDAuMDAwMTg4LCAwLjAwMDE4OCwgMC4wMDAxODgsIDAuMDAwMTg4Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMDY5MDcwNTsKLSAgICBmdW5jdGlvbiA6ICIoKEEwIEExKSsoQjAgQjEpKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTAiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI2NDE3NCwgMC4yODk3NzQsIDAuNTE4NTcxLCAwLjg5ODM3LCAxLjI3NzU4LCAyLjE2MTksIDIuNjY3MjIiLCBcCi0gICAgICAgICAgIjAuMjc1Nzc5LCAwLjMwMTM2NiwgMC41MzAxNiwgMC45MDk5MDksIDEuMjg5MTcsIDIuMTczNDgsIDIuNjc4NjUiLCBcCi0gICAgICAgICAgIjAuMjg5NjA0LCAwLjMxNTE5MiwgMC41NDM5ODcsIDAuOTIzNzM1LCAxLjMwMjk5LCAyLjE4NzMxLCAyLjY5MjQ3IiwgXAotICAgICAgICAgICIwLjMwMzI3NSwgMC4zMjg4ODYsIDAuNTU3Njc3LCAwLjkzNzQ3NCwgMS4zMTY2OSwgMi4yMDEwMSwgMi43MDYyMyIsIFwKLSAgICAgICAgICAiMC4zMTcwMTIsIDAuMzQyNiwgMC41NzEzOTksIDAuOTUxMTQ3LCAxLjMzMDQxLCAyLjIxNDcyLCAyLjcxOTkiLCBcCi0gICAgICAgICAgIjAuMzM4NzE4LCAwLjM2NDMxNywgMC41OTMxMTQsIDAuOTcyODY5LCAxLjM1MjEyLCAyLjIzNjQ1LCAyLjc0MTYxIiwgXAotICAgICAgICAgICIwLjM1NzU4MSwgMC4zODMxNywgMC42MTE5ODEsIDAuOTkxNzQsIDEuMzcxLCAyLjI1NTMyLCAyLjc2MDQ5Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI4MDExOSwgMC4zMzA0ODQsIDAuNzg4NTMxLCAxLjU1NzQyLCAyLjMyMzYzLCA0LjEyMjYzLCA1LjE0MjQyIiwgXAotICAgICAgICAgICIwLjI4MDA4OCwgMC4zMzAwMDMsIDAuNzg4NTAyLCAxLjU1NzQ4LCAyLjMyNjgyLCA0LjEyMTg2LCA1LjE0MjI1IiwgXAotICAgICAgICAgICIwLjI4MDA4NiwgMC4zMjk5NiwgMC43ODg1LCAxLjU1NzMsIDIuMzI2NzQsIDQuMTIyMTQsIDUuMTQyMjEiLCBcCi0gICAgICAgICAgIjAuMjgwMDU2LCAwLjMzMDQyOCwgMC43ODg0NDgsIDEuNTU3NDgsIDIuMzI2NjYsIDQuMTIxOTQsIDUuMTQyMjEiLCBcCi0gICAgICAgICAgIjAuMjgwMDg4LCAwLjMzMDE4MiwgMC43ODg0NTgsIDEuNTU2ODksIDIuMzI2ODgsIDQuMTIxMDMsIDUuMTM5MzYiLCBcCi0gICAgICAgICAgIjAuMjgwMDczLCAwLjMyOTk2MSwgMC43ODg0MzMsIDEuNTU2OSwgMi4zMjY2NywgNC4xMjIyOCwgNS4xNDIxNCIsIFwKLSAgICAgICAgICAiMC4yODAwNzcsIDAuMzMwMTU1LCAwLjc4NzkzMywgMS41NTY4OCwgMi4zMjY3LCA0LjEyMjI1LCA1LjE0MjMxIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI3MjQ5OSwgMC4zMDIzNTMsIDAuNTcwMjk5LCAxLjAxNjE5LCAxLjQ2MTc4LCAyLjUwMTUzLCAzLjA5NTM1IiwgXAotICAgICAgICAgICIwLjI4NDE0MywgMC4zMTQwMTIsIDAuNTgxOTYxLCAxLjAyNzc5LCAxLjQ3MzQ1LCAyLjUxMzA0LCAzLjEwNzA4IiwgXAotICAgICAgICAgICIwLjI5ODcyMSwgMC4zMjg1ODIsIDAuNTk2NTY1LCAxLjA0MjM2LCAxLjQ4ODAzLCAyLjUyNzU5LCAzLjEyMTYiLCBcCi0gICAgICAgICAgIjAuMzEyNTcyLCAwLjM0MjQyNCwgMC42MTAzOTYsIDEuMDU2MjIsIDEuNTAxODYsIDIuNTQxNDUsIDMuMTM1NDYiLCBcCi0gICAgICAgICAgIjAuMzI1ODA3LCAwLjM1NTY2MywgMC42MjM2MzksIDEuMDY5NDcsIDEuNTE1MTEsIDIuNTU0NjksIDMuMTQ4NzEiLCBcCi0gICAgICAgICAgIjAuMzQ2MzM0LCAwLjM3NjE5NywgMC42NDQxNDQsIDEuMDksIDEuNTM1NzcsIDIuNTc1MjMsIDMuMTY5MjQiLCBcCi0gICAgICAgICAgIjAuMzYzNzU1LCAwLjM5MzYyNywgMC42NjE1OTgsIDEuMTA3NDcsIDEuNTUzMSwgMi41OTI3LCAzLjE4NjY2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMxNTk5MywgMC4zNzQzODMsIDAuOTAyMTcyLCAxLjc4NDQ5LCAyLjY2NzE3LCA0LjcyMzA1LCA1Ljg5MzI0IiwgXAotICAgICAgICAgICIwLjMxNjE0NCwgMC4zNzQzNjUsIDAuOTAyMDcsIDEuNzgzNzgsIDIuNjY5MzcsIDQuNzI0MiwgNS44OTM3NSIsIFwKLSAgICAgICAgICAiMC4zMTYxMTksIDAuMzc0Mzg4LCAwLjkwMTk2MiwgMS43ODMzOCwgMi42NjkyMiwgNC43MjM4LCA1Ljg5MjkiLCBcCi0gICAgICAgICAgIjAuMzE2MTIyLCAwLjM3NDI5MSwgMC45MDEyNDMsIDEuNzgzNjgsIDIuNjY4NzMsIDQuNzIzODMsIDUuODkyODgiLCBcCi0gICAgICAgICAgIjAuMzE2MTI1LCAwLjM3Mzk0MiwgMC45MDA5MzUsIDEuNzgzNDMsIDIuNjY1NzcsIDQuNzIzMTQsIDUuODkyNyIsIFwKLSAgICAgICAgICAiMC4zMTYxMTEsIDAuMzc0MzU4LCAwLjkwMjQ2MiwgMS43ODMyMywgMi42Njc4NywgNC43MjM2OSwgNS44OTI5MyIsIFwKLSAgICAgICAgICAiMC4zMTYxMSwgMC4zNzQzNiwgMC45MDIxMTMsIDEuNzg1MTMsIDIuNjY5NDEsIDQuNzI0MSwgNS44OTMwOSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjU4NjIyLCAwLjI4NDIwNCwgMC41MTMwMTUsIDAuODkyNzY3LCAxLjI3MjA0LCAyLjE1NjM1LCAyLjY2MTg0IiwgXAotICAgICAgICAgICIwLjI2ODc5NywgMC4yOTQzNzYsIDAuNTIzMTU2LCAwLjkwMjk2OSwgMS4yODIyLCAyLjE2NjUxLCAyLjY3MTczIiwgXAotICAgICAgICAgICIwLjI4MTk0NiwgMC4zMDc1MjYsIDAuNTM2MzM2LCAwLjkxNjA5MywgMS4yOTUzNSwgMi4xNzk2NiwgMi42ODQ4OCIsIFwKLSAgICAgICAgICAiMC4yOTUyODksIDAuMzIwODc3LCAwLjU0OTY4MSwgMC45Mjk0MzEsIDEuMzA4NjksIDIuMTkzMDEsIDIuNjk4MTciLCBcCi0gICAgICAgICAgIjAuMzA5Mzg0LCAwLjMzNDk5OSwgMC41NjM3OTgsIDAuOTQzNTUzLCAxLjMyMjgxLCAyLjIwNzEzLCAyLjcxMjMiLCBcCi0gICAgICAgICAgIjAuMzMxNTU0LCAwLjM1NzE0MywgMC41ODU5NiwgMC45NjU3MiwgMS4zNDUwNCwgMi4yMjkzLCAyLjczNDQ3IiwgXAotICAgICAgICAgICIwLjM1MDgyOSwgMC4zNzY0MzEsIDAuNjA1MjUsIDAuOTg1MDE1LCAxLjM2NDM0LCAyLjI0ODYsIDIuNzUzNzciKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjgwMTEyLCAwLjMzMDEyLCAwLjc4ODUxNywgMS41NTcyNywgMi4zMjM2LCA0LjEyMjA5LCA1LjE0MjUyIiwgXAotICAgICAgICAgICIwLjI4MDA3MSwgMC4zMzAwNDgsIDAuNzg4NjYzLCAxLjU1NzUzLCAyLjMyMzYsIDQuMTIyNTgsIDUuMTM5MjEiLCBcCi0gICAgICAgICAgIjAuMjgwMTA4LCAwLjMzMDMxMywgMC43ODg3NzEsIDEuNTU3MjQsIDIuMzIzNjQsIDQuMTIwMzEsIDUuMTQyMTYiLCBcCi0gICAgICAgICAgIjAuMjgwMDksIDAuMzMwMTk0LCAwLjc4ODQ5LCAxLjU1NzAyLCAyLjMyNjE3LCA0LjEyMjEzLCA1LjEzOTM2IiwgXAotICAgICAgICAgICIwLjI4MDA0NywgMC4zMzA0MTEsIDAuNzg4NDgxLCAxLjU1NzA1LCAyLjMyMzM1LCA0LjEyMjUxLCA1LjEzOTEyIiwgXAotICAgICAgICAgICIwLjI4MDExOSwgMC4zMjk5NTQsIDAuNzg4NDczLCAxLjU1NzIzLCAyLjMyMzU4LCA0LjEyMDU4LCA1LjE0MTk5IiwgXAotICAgICAgICAgICIwLjI4MDExNSwgMC4zMzAxNzgsIDAuNzg4NDM5LCAxLjU1NzAzLCAyLjMyMzQsIDQuMTIxMTIsIDUuMTQxNzYiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjY1MzU3LCAwLjI5NTE0LCAwLjU2MjgyOSwgMS4wMDg0MiwgMS40NTM5NywgMi40OTMzNywgMy4wODczMiIsIFwKLSAgICAgICAgICAiMC4yNzcwODcsIDAuMzA2ODg2LCAwLjU3NDU3MywgMS4wMjAxNSwgMS40NjU2OSwgMi41MDUxLCAzLjA5OTA1IiwgXAotICAgICAgICAgICIwLjI5MTU5NiwgMC4zMjEzODgsIDAuNTg5MDI5LCAxLjAzNDY3LCAxLjQ4MDE3LCAyLjUxOTYyLCAzLjExMzU3IiwgXAotICAgICAgICAgICIwLjMwNTM3MSwgMC4zMzUxOCwgMC42MDI4MzIsIDEuMDQ4NDUsIDEuNDkzOTgsIDIuNTMzNDEsIDMuMTI3MzEiLCBcCi0gICAgICAgICAgIjAuMzE4NTU1LCAwLjM0ODM1MywgMC42MTYwNTksIDEuMDYxNjMsIDEuNTA3MTUsIDIuNTQ2NTcsIDMuMTQwNTIiLCBcCi0gICAgICAgICAgIjAuMzM5MDIzLCAwLjM2ODgzMywgMC42MzY0OTgsIDEuMDgyMTMsIDEuNTI3NjYsIDIuNTY3MzksIDMuMTYxMDEiLCBcCi0gICAgICAgICAgIjAuMzU2MjA1LCAwLjM4NjAwOCwgMC42NTM3MDIsIDEuMDk5MzMsIDEuNTQ0ODMsIDIuNTg0MjgsIDMuMTc4MjMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzE1MzA1LCAwLjM3MzQ2NiwgMC45MDExMTMsIDEuNzgzNjgsIDIuNjY4NDYsIDQuNzIzMTEsIDUuODkyNjciLCBcCi0gICAgICAgICAgIjAuMzE1MzAyLCAwLjM3MzU5MSwgMC45MDEzNzMsIDEuNzgyNTcsIDIuNjY2MTEsIDQuNzIzMDQsIDUuODkyODgiLCBcCi0gICAgICAgICAgIjAuMzE1MzAzLCAwLjM3MzU3NCwgMC45MDEzNzQsIDEuNzg0MTgsIDIuNjY5MTIsIDQuNzIzMTYsIDUuODkyMiIsIFwKLSAgICAgICAgICAiMC4zMTUzMTEsIDAuMzczNTYsIDAuOTAxMzczLCAxLjc4NDM2LCAyLjY2Nzg1LCA0LjcyMzQsIDUuODkyNiIsIFwKLSAgICAgICAgICAiMC4zMTUyNTUsIDAuMzczNTcsIDAuOTAxMzY2LCAxLjc4MTY5LCAyLjY2NTE3LCA0LjcyMjk2LCA1Ljg5MjU5IiwgXAotICAgICAgICAgICIwLjMxNTI0NywgMC4zNzM1NTcsIDAuOTAxMzY3LCAxLjc4MzM2LCAyLjY2NTQxLCA0LjcyMjMyLCA1Ljg5MjU1IiwgXAotICAgICAgICAgICIwLjMxNTMzOCwgMC4zNzM1NDQsIDAuOTAxMDI0LCAxLjc4MzExLCAyLjY2OTMyLCA0LjcyMjU0LCA1Ljg5MjAxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMzE5NywgMC4yNTcyNTQsIDAuNDg0NTI5LCAwLjg2MzMwNSwgMS4yNDIwNywgMi4xMjY0MiwgMi42MzA5OCIsIFwKLSAgICAgICAgICAiMC4yNDM3MDMsIDAuMjY4OTY3LCAwLjQ5NjIxOSwgMC44NzUwNjQsIDEuMjU0MTgsIDIuMTM3NjMsIDIuNjQzMDQiLCBcCi0gICAgICAgICAgIjAuMjU3MzkzLCAwLjI4MjY2NywgMC41MDk5NTQsIDAuODg4Nzc0LCAxLjI2Nzc3LCAyLjE1MTQ2LCAyLjY1NjgzIiwgXAotICAgICAgICAgICIwLjI3MDg5NCwgMC4yOTYxNjUsIDAuNTIzNDQyLCAwLjkwMjIzOCwgMS4yODEyNiwgMi4xNjQ5NywgMi42NzAzNyIsIFwKLSAgICAgICAgICAiMC4yODQ2NjMsIDAuMzA5OTQ5LCAwLjUzNzIyNywgMC45MTYwMjEsIDEuMjk0OTYsIDIuMTc5NDYsIDIuNjgzNjUiLCBcCi0gICAgICAgICAgIjAuMzA1OTY2LCAwLjMzMTIzNywgMC41NTg1MTgsIDAuOTM3Mzk4LCAxLjMxNjM1LCAyLjIwMDA2LCAyLjcwNTUxIiwgXAotICAgICAgICAgICIwLjMyNDMzNywgMC4zNDk2MjgsIDAuNTc2OTE3LCAwLjk1NTcyMywgMS4zMzQ5OCwgMi4yMTk5LCAyLjcyMzM0Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI3NjE4NSwgMC4zMjYxNTEsIDAuNzg0NTM3LCAxLjU1NDU5LCAyLjMxODYxLCA0LjExOTU3LCA1LjEzNTIzIiwgXAotICAgICAgICAgICIwLjI3NjIyMSwgMC4zMjY2MjYsIDAuNzg0ODcxLCAxLjU1MDcxLCAyLjMyNDU0LCA0LjEwOTQ0LCA1LjEzNzY0IiwgXAotICAgICAgICAgICIwLjI3NjE1OCwgMC4zMjY1OTIsIDAuNzg1MTA4LCAxLjU1MTgxLCAyLjMxODU1LCA0LjExMjc2LCA1LjEzNzYiLCBcCi0gICAgICAgICAgIjAuMjc2MTU2LCAwLjMyNjYxMywgMC43ODUwMTQsIDEuNTU0NDEsIDIuMzE4OSwgNC4xMTA5NywgNS4xMzkwMSIsIFwKLSAgICAgICAgICAiMC4yNzYxNTIsIDAuMzI2Mzk0LCAwLjc4NDU5NywgMS41NTQ1NCwgMi4zMjM5MSwgNC4xMTQzNCwgNS4xMzM5IiwgXAotICAgICAgICAgICIwLjI3NjE5LCAwLjMyNjY1NiwgMC43ODQ5NDYsIDEuNTUxOTIsIDIuMzIzNDksIDQuMTE5NjgsIDUuMTM4NzEiLCBcCi0gICAgICAgICAgIjAuMjc2MjU1LCAwLjMyNjM5NiwgMC43ODQ2NDMsIDEuNTU0NTEsIDIuMzE4NDQsIDQuMTEyNjgsIDUuMTM0NDgiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjQ5MzQ5LCAwLjI3OTE5NSwgMC41NDcxNDIsIDAuOTkyOTg4LCAxLjQzODYzLCAyLjQ3ODIsIDMuMDcyMjIiLCBcCi0gICAgICAgICAgIjAuMjU5NTM5LCAwLjI4OTQwOSwgMC41NTczNTYsIDEuMDAzMTgsIDEuNDQ4ODUsIDIuNDg4NDQsIDMuMDgyNjQiLCBcCi0gICAgICAgICAgIjAuMjcyNTU0LCAwLjMwMjQyMiwgMC41NzAzNzksIDEuMDE2MjcsIDEuNDYxODcsIDIuNTAxNDYsIDMuMDk1NDUiLCBcCi0gICAgICAgICAgIjAuMjg2MDgyLCAwLjMxNTk0NywgMC41ODM5NzQsIDEuMDI5NzYsIDEuNDc1NDEsIDIuNTE0OTksIDMuMTA5MDEiLCBcCi0gICAgICAgICAgIjAuMjk5NDIyLCAwLjMyOTI5NSwgMC41OTcyODEsIDEuMDQzMTMsIDEuNDg4OCwgMi41MjgzOSwgMy4xMjI1MSIsIFwKLSAgICAgICAgICAiMC4zMjA2MzEsIDAuMzUwNTE1LCAwLjYxODUxNCwgMS4wNjQzNiwgMS41MTAwMywgMi41NDk2MywgMy4xNDM3IiwgXAotICAgICAgICAgICIwLjMzODQ3OCwgMC4zNjgzNDEsIDAuNjM2MzM4LCAxLjA4MjIzLCAxLjUyNzg3LCAyLjU2NzQ4LCAzLjE2MTQ5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMxNjEyNSwgMC4zNzQzNTgsIDAuOTAyMjE5LCAxLjc4MzYxLCAyLjY2OTI0LCA0LjcyMzc0LCA1Ljg5Mjk4IiwgXAotICAgICAgICAgICIwLjMxNjE0LCAwLjM3NDM3NiwgMC45MDIwNzUsIDEuNzgzMjQsIDIuNjY5NDIsIDQuNzI0MDcsIDUuODkzOTMiLCBcCi0gICAgICAgICAgIjAuMzE2MTMsIDAuMzc0Mzc0LCAwLjkwMjE0NCwgMS43ODQ2OSwgMi42NjkzMiwgNC43MjQxOSwgNS44OTM2OSIsIFwKLSAgICAgICAgICAiMC4zMTYxMjMsIDAuMzc0Mzg3LCAwLjkwMTM0NCwgMS43ODQxLCAyLjY2NTksIDQuNzIzODEsIDUuODkyODkiLCBcCi0gICAgICAgICAgIjAuMzE2MDkyLCAwLjM3NDMwNCwgMC45MDIxNDcsIDEuNzg1NjgsIDIuNjY5MjIsIDQuNzI0MDUsIDUuODkyNzYiLCBcCi0gICAgICAgICAgIjAuMzE2MTYyLCAwLjM3NDM3OCwgMC45MDIwNjYsIDEuNzgzNTksIDIuNjY5NTEsIDQuNzIzNTgsIDUuODkzNCIsIFwKLSAgICAgICAgICAiMC4zMTYyMjMsIDAuMzc0MzY1LCAwLjkwMjU1NSwgMS43ODMzNSwgMi42Njc1LCA0LjcyMzEzLCA1Ljg5MjciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjEiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIyNjU4MiwgMC4yNTE4NzMsIDAuNDc5MTY3LCAwLjg1Nzk0NSwgMS4yMzcwNCwgMi4xMjA1MywgMi42MjYzMSIsIFwKLSAgICAgICAgICAiMC4yMzY4NDQsIDAuMjYyMTIyLCAwLjQ4OTQwNSwgMC44NjgyMjcsIDEuMjQ3MzcsIDIuMTMxMjgsIDIuNjM2MTUiLCBcCi0gICAgICAgICAgIjAuMjUwMzg1LCAwLjI3NTY2NiwgMC41MDI5NDcsIDAuODgxNzc3LCAxLjI2MDkyLCAyLjE0NDg1LCAyLjY0OTY5IiwgXAotICAgICAgICAgICIwLjI2Mzk0LCAwLjI4OTIwNiwgMC41MTY1MSwgMC44OTU0NTIsIDEuMjc0MzMsIDIuMTU3OTcsIDIuNjYzNTQiLCBcCi0gICAgICAgICAgIjAuMjc3ODQ5LCAwLjMwMzEzMywgMC41MzA0NDMsIDAuOTA5Mjg2LCAxLjI4ODM3LCAyLjE3MTgsIDIuNjc3MjciLCBcCi0gICAgICAgICAgIjAuMjk5ODU0LCAwLjMyNTE0NywgMC41NTI0NTEsIDAuOTMxMjkxLCAxLjMxMDQ4LCAyLjE5NDgsIDIuNjk5MTEiLCBcCi0gICAgICAgICAgIjAuMzE4ODgzLCAwLjM0NDE4LCAwLjU3MTQ4NCwgMC45NTAzMzQsIDEuMzI5NiwgMi4yMTI3OCwgMi43MTc5NiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yNzYxNzEsIDAuMzI2MTUxLCAwLjc4NDY1NywgMS41NTQ1OSwgMi4zMjQzMywgNC4xMjAwMSwgNS4xMzM4MiIsIFwKLSAgICAgICAgICAiMC4yNzYxNiwgMC4zMjY2MTEsIDAuNzg0NjcsIDEuNTUxODcsIDIuMzE4OTksIDQuMTE5NCwgNS4xMzc4MSIsIFwKLSAgICAgICAgICAiMC4yNzYxMjEsIDAuMzI2MDIzLCAwLjc4NDYxMywgMS41NTAzOCwgMi4zMTgzNywgNC4xMTAyOCwgNS4xMzY1NyIsIFwKLSAgICAgICAgICAiMC4yNzYxNjEsIDAuMzI2Mjk0LCAwLjc4MzA0OSwgMS41NTQ0MiwgMi4zMTg3NSwgNC4xMTE5NCwgNS4xNDAxOSIsIFwKLSAgICAgICAgICAiMC4yNzYxNzEsIDAuMzI2NjQsIDAuNzg0OTk2LCAxLjU1MDQxLCAyLjMxODk2LCA0LjEwOTc5LCA1LjEzOTM2IiwgXAotICAgICAgICAgICIwLjI3NjE3NSwgMC4zMjYzMjIsIDAuNzgzNTAzLCAxLjU1MDQ1LCAyLjMxODcsIDQuMTEwMTMsIDUuMTM5NzEiLCBcCi0gICAgICAgICAgIjAuMjc2NDgsIDAuMzI2NDg2LCAwLjc4NDYzNiwgMS41NTEzNiwgMi4zMTg2NCwgNC4xMDk0NiwgNS4xMzk2Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI0MjQ5NiwgMC4yNzIyODEsIDAuNTM5OTM2LCAwLjk4NTY1MiwgMS40MzExLCAyLjQ3MDY5LCAzLjA2NDQ2IiwgXAotICAgICAgICAgICIwLjI1MjcyOSwgMC4yODI1MjcsIDAuNTUwMTc3LCAwLjk5NTgxLCAxLjQ0MTM5LCAyLjQ4MDc3LCAzLjA3NDcyIiwgXAotICAgICAgICAgICIwLjI2NTk1MywgMC4yOTU3NDksIDAuNTYzNDIzLCAxLjAwOTA3LCAxLjQ1NDYsIDIuNDk0MDIsIDMuMDg3OTciLCBcCi0gICAgICAgICAgIjAuMjc5MTksIDAuMzA4OTkxLCAwLjU3NjcxMSwgMS4wMjIzMiwgMS40Njc4NywgMi41MDcyOSwgMy4xMDEyNCIsIFwKLSAgICAgICAgICAiMC4yOTI0MDQsIDAuMzIyMjA3LCAwLjU4OTkwNCwgMS4wMzU1NywgMS40ODEwOSwgMi41MjA1NCwgMy4xMTQ1IiwgXAotICAgICAgICAgICIwLjMxMzM3MSwgMC4zNDMxOTEsIDAuNjEwOTExLCAxLjA1NjU3LCAxLjUwMjE1LCAyLjU0MTU4LCAzLjEzNTY4IiwgXAotICAgICAgICAgICIwLjMzMDc1LCAwLjM2MDU2NCwgMC42MjgyOTIsIDEuMDc0MDQsIDEuNTE5NTEsIDIuNTU4OTEsIDMuMTUzMzEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzE0NzgxLCAwLjM3MzYwOCwgMC45MDEzNjgsIDEuNzg0NjIsIDIuNjY1NSwgNC43MjMxNCwgNS44OTI2NyIsIFwKLSAgICAgICAgICAiMC4zMTUzMjUsIDAuMzczNjE2LCAwLjkwMTM2NywgMS43ODU4MywgMi42Njk4MiwgNC43MjI2NCwgNS44OTI3MyIsIFwKLSAgICAgICAgICAiMC4zMTUzMTksIDAuMzczNjE3LCAwLjkwMTM2OSwgMS43ODQ2MSwgMi42Njg0MywgNC43MjMyLCA1Ljg5Mjc3IiwgXAotICAgICAgICAgICIwLjMxNTMzNCwgMC4zNzMxNTgsIDAuOTAxMzY4LCAxLjc4MjY0LCAyLjY2NywgNC43MjMwNywgNS44OTI1OCIsIFwKLSAgICAgICAgICAiMC4zMTUzMzcsIDAuMzczNTUsIDAuOTAxMzc0LCAxLjc4MjksIDIuNjY5MTksIDQuNzIzMTgsIDUuODkyMjQiLCBcCi0gICAgICAgICAgIjAuMzE1Mzc1LCAwLjM3MzY0LCAwLjkwMTM3NiwgMS43ODI3MSwgMi42NjczMywgNC43MjMyOCwgNS44OTI4NCIsIFwKLSAgICAgICAgICAiMC4zMTUzNzcsIDAuMzczNjY5LCAwLjkwMTQ3NiwgMS43ODM2NiwgMi42Njg4MSwgNC43MjIzOCwgNS44OTI0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTIxNSwgMC4wMDEyMTYsIDAuMDAxMjE5LCAwLjAwMTIyLCAwLjAwMTIyMSwgMC4wMDEyMjEsIDAuMDAxMjIxIiwgXAotICAgICAgICAgICIwLjAwMTIwNiwgMC4wMDEyMDcsIDAuMDAxMjEsIDAuMDAxMjExLCAwLjAwMTIxMiwgMC4wMDEyMTIsIDAuMDAxMjEyIiwgXAotICAgICAgICAgICIwLjAwMTE5OSwgMC4wMDEyLCAwLjAwMTIwMywgMC4wMDEyMDQsIDAuMDAxMjA1LCAwLjAwMTIwNSwgMC4wMDEyMDYiLCBcCi0gICAgICAgICAgIjAuMDAxMTk0LCAwLjAwMTE5NCwgMC4wMDExOTgsIDAuMDAxMTk5LCAwLjAwMTIsIDAuMDAxMjAxLCAwLjAwMTIwMSIsIFwKLSAgICAgICAgICAiMC4wMDExOSwgMC4wMDExOTEsIDAuMDAxMTk0LCAwLjAwMTE5NiwgMC4wMDExOTYsIDAuMDAxMTk3LCAwLjAwMTE5NyIsIFwKLSAgICAgICAgICAiMC4wMDExODUsIDAuMDAxMTg2LCAwLjAwMTE5LCAwLjAwMTE5MiwgMC4wMDExOTIsIDAuMDAxMTkzLCAwLjAwMTE5MyIsIFwKLSAgICAgICAgICAiMC4wMDExODEsIDAuMDAxMTgzLCAwLjAwMTE4NywgMC4wMDExODksIDAuMDAxMTg5LCAwLjAwMTE5LCAwLjAwMTE5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyNjYzLCAwLjAwMjY2NCwgMC4wMDI2NjgsIDAuMDAyNjY5LCAwLjAwMjY2OSwgMC4wMDI2NywgMC4wMDI2NyIsIFwKLSAgICAgICAgICAiMC4wMDI2NTgsIDAuMDAyNjU5LCAwLjAwMjY2MiwgMC4wMDI2NjQsIDAuMDAyNjY0LCAwLjAwMjY2NSwgMC4wMDI2NjUiLCBcCi0gICAgICAgICAgIjAuMDAyNjU0LCAwLjAwMjY1NiwgMC4wMDI2NTksIDAuMDAyNjYxLCAwLjAwMjY2MSwgMC4wMDI2NjIsIDAuMDAyNjYyIiwgXAotICAgICAgICAgICIwLjAwMjY1MiwgMC4wMDI2NTMsIDAuMDAyNjU3LCAwLjAwMjY1OCwgMC4wMDI2NTksIDAuMDAyNjU5LCAwLjAwMjY2IiwgXAotICAgICAgICAgICIwLjAwMjY1LCAwLjAwMjY1MSwgMC4wMDI2NTUsIDAuMDAyNjU3LCAwLjAwMjY1NywgMC4wMDI2NTgsIDAuMDAyNjU4IiwgXAotICAgICAgICAgICIwLjAwMjY0OCwgMC4wMDI2NDksIDAuMDAyNjUzLCAwLjAwMjY1NSwgMC4wMDI2NTUsIDAuMDAyNjU2LCAwLjAwMjY1NiIsIFwKLSAgICAgICAgICAiMC4wMDI2NDYsIDAuMDAyNjQ3LCAwLjAwMjY1MiwgMC4wMDI2NTQsIDAuMDAyNjU1LCAwLjAwMjY1NSwgMC4wMDI2NTUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxMjE1LCAwLjAwMTIxNiwgMC4wMDEyMTksIDAuMDAxMjIsIDAuMDAxMjIxLCAwLjAwMTIyMSwgMC4wMDEyMjEiLCBcCi0gICAgICAgICAgIjAuMDAxMjA0LCAwLjAwMTIwNSwgMC4wMDEyMDgsIDAuMDAxMjEsIDAuMDAxMjEsIDAuMDAxMjExLCAwLjAwMTIxIiwgXAotICAgICAgICAgICIwLjAwMTE5NSwgMC4wMDExOTYsIDAuMDAxMTk5LCAwLjAwMTIwMSwgMC4wMDEyMDEsIDAuMDAxMjAxLCAwLjAwMTIwMiIsIFwKLSAgICAgICAgICAiMC4wMDExODksIDAuMDAxMTksIDAuMDAxMTk0LCAwLjAwMTE5NSwgMC4wMDExOTYsIDAuMDAxMTk2LCAwLjAwMTE5NiIsIFwKLSAgICAgICAgICAiMC4wMDExODUsIDAuMDAxMTg2LCAwLjAwMTE5LCAwLjAwMTE5MiwgMC4wMDExOTIsIDAuMDAxMTkzLCAwLjAwMTE5MyIsIFwKLSAgICAgICAgICAiMC4wMDExOCwgMC4wMDExODEsIDAuMDAxMTg2LCAwLjAwMTE4OCwgMC4wMDExODksIDAuMDAxMTg5LCAwLjAwMTE4OSIsIFwKLSAgICAgICAgICAiMC4wMDExNzgsIDAuMDAxMTc5LCAwLjAwMTE4NCwgMC4wMDExODYsIDAuMDAxMTg3LCAwLjAwMTE4NywgMC4wMDExODgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI0NTcsIDAuMDAyNDU4LCAwLjAwMjQ2MiwgMC4wMDI0NjMsIDAuMDAyNDYzLCAwLjAwMjQ2NCwgMC4wMDI0NjQiLCBcCi0gICAgICAgICAgIjAuMDAyNDU0LCAwLjAwMjQ1NSwgMC4wMDI0NTgsIDAuMDAyNDU5LCAwLjAwMjQ2LCAwLjAwMjQ2LCAwLjAwMjQ2IiwgXAotICAgICAgICAgICIwLjAwMjQ0OCwgMC4wMDI0NDksIDAuMDAyNDUzLCAwLjAwMjQ1NCwgMC4wMDI0NTQsIDAuMDAyNDU0LCAwLjAwMjQ1NCIsIFwKLSAgICAgICAgICAiMC4wMDI0NDQsIDAuMDAyNDQ1LCAwLjAwMjQ0OSwgMC4wMDI0NSwgMC4wMDI0NSwgMC4wMDI0NSwgMC4wMDI0NSIsIFwKLSAgICAgICAgICAiMC4wMDI0NDEsIDAuMDAyNDQyLCAwLjAwMjQ0NSwgMC4wMDI0NDcsIDAuMDAyNDQ3LCAwLjAwMjQ0NywgMC4wMDI0NDciLCBcCi0gICAgICAgICAgIjAuMDAyNDM3LCAwLjAwMjQzOCwgMC4wMDI0NDIsIDAuMDAyNDQzLCAwLjAwMjQ0NCwgMC4wMDI0NDQsIDAuMDAyNDQ0IiwgXAotICAgICAgICAgICIwLjAwMjQzNCwgMC4wMDI0MzYsIDAuMDAyNDQsIDAuMDAyNDQyLCAwLjAwMjQ0MiwgMC4wMDI0NDIsIDAuMDAyNDQzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDc5LCAwLjAwMDc5LCAwLjAwMDc5MSwgMC4wMDA3OTIsIDAuMDAwNzkyLCAwLjAwMDc5MiwgMC4wMDA3OTIiLCBcCi0gICAgICAgICAgIjAuMDAwNzgzLCAwLjAwMDc4MywgMC4wMDA3ODQsIDAuMDAwNzg0LCAwLjAwMDc4NSwgMC4wMDA3ODQsIDAuMDAwNzg1IiwgXAotICAgICAgICAgICIwLjAwMDc3NCwgMC4wMDA3NzQsIDAuMDAwNzc1LCAwLjAwMDc3NSwgMC4wMDA3NzUsIDAuMDAwNzc1LCAwLjAwMDc3NSIsIFwKLSAgICAgICAgICAiMC4wMDA3NjcsIDAuMDAwNzY4LCAwLjAwMDc2OCwgMC4wMDA3NjgsIDAuMDAwNzY5LCAwLjAwMDc2OSwgMC4wMDA3NjkiLCBcCi0gICAgICAgICAgIjAuMDAwNzYxLCAwLjAwMDc2MiwgMC4wMDA3NjMsIDAuMDAwNzY0LCAwLjAwMDc2NCwgMC4wMDA3NjQsIDAuMDAwNzY0IiwgXAotICAgICAgICAgICIwLjAwMDc1NiwgMC4wMDA3NTcsIDAuMDAwNzU4LCAwLjAwMDc1OSwgMC4wMDA3NTksIDAuMDAwNzU5LCAwLjAwMDc1OSIsIFwKLSAgICAgICAgICAiMC4wMDA3NTIsIDAuMDAwNzUzLCAwLjAwMDc1NSwgMC4wMDA3NTYsIDAuMDAwNzU2LCAwLjAwMDc1NiwgMC4wMDA3NTYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDIwNTgsIDAuMDAyMDU5LCAwLjAwMjA2MiwgMC4wMDIwNjQsIDAuMDAyMDY0LCAwLjAwMjA2NSwgMC4wMDIwNjUiLCBcCi0gICAgICAgICAgIjAuMDAyMDQ5LCAwLjAwMjA1MSwgMC4wMDIwNTQsIDAuMDAyMDU1LCAwLjAwMjA1NiwgMC4wMDIwNTYsIDAuMDAyMDU2IiwgXAotICAgICAgICAgICIwLjAwMjA0MywgMC4wMDIwNDUsIDAuMDAyMDQ4LCAwLjAwMjA1LCAwLjAwMjA1MSwgMC4wMDIwNTEsIDAuMDAyMDUxIiwgXAotICAgICAgICAgICIwLjAwMjAzOSwgMC4wMDIwNCwgMC4wMDIwNDUsIDAuMDAyMDQ2LCAwLjAwMjA0NywgMC4wMDIwNDgsIDAuMDAyMDQ4IiwgXAotICAgICAgICAgICIwLjAwMjAzNiwgMC4wMDIwMzcsIDAuMDAyMDQyLCAwLjAwMjA0NCwgMC4wMDIwNDUsIDAuMDAyMDQ1LCAwLjAwMjA0NSIsIFwKLSAgICAgICAgICAiMC4wMDIwMzIsIDAuMDAyMDM0LCAwLjAwMjAzOSwgMC4wMDIwNDIsIDAuMDAyMDQzLCAwLjAwMjA0MywgMC4wMDIwNDQiLCBcCi0gICAgICAgICAgIjAuMDAyMDMsIDAuMDAyMDMyLCAwLjAwMjAzOCwgMC4wMDIwNDEsIDAuMDAyMDQyLCAwLjAwMjA0MywgMC4wMDIwNDMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwNzkxLCAwLjAwMDc5MSwgMC4wMDA3OTMsIDAuMDAwNzkzLCAwLjAwMDc5NCwgMC4wMDA3OTQsIDAuMDAwNzk0IiwgXAotICAgICAgICAgICIwLjAwMDc4MSwgMC4wMDA3ODEsIDAuMDAwNzgzLCAwLjAwMDc4MywgMC4wMDA3ODMsIDAuMDAwNzg0LCAwLjAwMDc4NCIsIFwKLSAgICAgICAgICAiMC4wMDA3NywgMC4wMDA3NzEsIDAuMDAwNzczLCAwLjAwMDc3MywgMC4wMDA3NzMsIDAuMDAwNzc0LCAwLjAwMDc3NCIsIFwKLSAgICAgICAgICAiMC4wMDA3NjMsIDAuMDAwNzY0LCAwLjAwMDc2NiwgMC4wMDA3NjcsIDAuMDAwNzY3LCAwLjAwMDc2NywgMC4wMDA3NjciLCBcCi0gICAgICAgICAgIjAuMDAwNzU4LCAwLjAwMDc1OSwgMC4wMDA3NjIsIDAuMDAwNzYyLCAwLjAwMDc2MywgMC4wMDA3NjMsIDAuMDAwNzYzIiwgXAotICAgICAgICAgICIwLjAwMDc1NCwgMC4wMDA3NTUsIDAuMDAwNzU4LCAwLjAwMDc1OSwgMC4wMDA3NiwgMC4wMDA3NiwgMC4wMDA3NiIsIFwKLSAgICAgICAgICAiMC4wMDA3NTIsIDAuMDAwNzUzLCAwLjAwMDc1NywgMC4wMDA3NTgsIDAuMDAwNzU5LCAwLjAwMDc1OSwgMC4wMDA3NTkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDE4NTgsIDAuMDAxODU5LCAwLjAwMTg2MywgMC4wMDE4NjQsIDAuMDAxODY0LCAwLjAwMTg2NCwgMC4wMDE4NjUiLCBcCi0gICAgICAgICAgIjAuMDAxODUyLCAwLjAwMTg1MywgMC4wMDE4NTYsIDAuMDAxODU3LCAwLjAwMTg1NywgMC4wMDE4NTgsIDAuMDAxODU4IiwgXAotICAgICAgICAgICIwLjAwMTg0MywgMC4wMDE4NDQsIDAuMDAxODQ4LCAwLjAwMTg0OSwgMC4wMDE4NDksIDAuMDAxODUsIDAuMDAxODUiLCBcCi0gICAgICAgICAgIjAuMDAxODM3LCAwLjAwMTgzOCwgMC4wMDE4NDIsIDAuMDAxODQ0LCAwLjAwMTg0NCwgMC4wMDE4NDUsIDAuMDAxODQ1IiwgXAotICAgICAgICAgICIwLjAwMTgzMiwgMC4wMDE4MzMsIDAuMDAxODM4LCAwLjAwMTg0LCAwLjAwMTg0MSwgMC4wMDE4NDEsIDAuMDAxODQxIiwgXAotICAgICAgICAgICIwLjAwMTgyNywgMC4wMDE4MjksIDAuMDAxODM1LCAwLjAwMTgzNywgMC4wMDE4MzgsIDAuMDAxODM4LCAwLjAwMTgzOSIsIFwKLSAgICAgICAgICAiMC4wMDE4MjUsIDAuMDAxODI2LCAwLjAwMTgzMywgMC4wMDE4MzYsIDAuMDAxODM3LCAwLjAwMTgzNywgMC4wMDE4MzgiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogQU9JMjExWDIgKgotICogLS0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKEFPSTIxMVgyKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMjI1NDk3OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNjIwMDQ7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNjEwNDU7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNjIwMDQ7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNjEyLCAwLjAwMDYxMiwgMC4wMDA2MTIsIDAuMDAwNjExLCAwLjAwMDYxMSwgMC4wMDA2MTEsIDAuMDAwNjExIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNjM0LCAwLjAwMDYxOSwgMC4wMDA2MTcsIDAuMDAwNjE2LCAwLjAwMDYxNiwgMC4wMDA2MTUsIDAuMDAwNjE1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihBMSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNTEyODI7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNDk3Mjk7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNTEyODI7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzE1LCAwLjAwMDMxNSwgMC4wMDAzMTUsIDAuMDAwMzE1LCAwLjAwMDMxNSwgMC4wMDAzMTUsIDAuMDAwMzE1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNjk1LCAwLjAwMDY5NSwgMC4wMDA2OTYsIDAuMDAwNjk2LCAwLjAwMDY5NiwgMC4wMDA2OTYsIDAuMDAwNjk2Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNDcxNjc7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNDU4MTI7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNDcxNjc7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNTA3LCAwLjAwMDU0LCAwLjAwMDU1NSwgMC4wMDA1NjIsIDAuMDAwNTY2LCAwLjAwMDU3MSwgMC4wMDA1NzQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA2NDUsIDAuMDAwNjQ2LCAwLjAwMDY0NiwgMC4wMDA2NDYsIDAuMDAwNjQ2LCAwLjAwMDY0NiwgMC4wMDA2NDYiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEMwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE1MDI5MTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE1MDI4OTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE1MDI5MTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxNDksIDAuMDAwMTQ5LCAwLjAwMDE0OSwgMC4wMDAxNDksIDAuMDAwMTQ5LCAwLjAwMDE0OSwgMC4wMDAxNDkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA3MDMsIDAuMDAwNzA0LCAwLjAwMDcwMywgMC4wMDA3MDMsIDAuMDAwNzAzLCAwLjAwMDcwMywgMC4wMDA3MDMiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4wOTc3Mzg1OwotICAgIGZ1bmN0aW9uIDogIighKCgoQTAgQTEpK0IwKStDMCkpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTg0MDc1LCAwLjc1NjYwNCwgMS4yMTQwOSwgMS43ODYyNiwgMi4zNTgyLCAyLjkyOTcxLCAzLjUwMTI4IiwgXAotICAgICAgICAgICIwLjE5NTczNSwgMC43NjgyOTUsIDEuMjI2MDIsIDEuNzk4MjgsIDIuMzY5NzMsIDIuOTQxMzYsIDMuNTEyOTYiLCBcCi0gICAgICAgICAgIjAuMjA5NjE2LCAwLjc4MjQ0NiwgMS4yNDAxMiwgMS44MTIzOSwgMi4zODM4OCwgMi45NTU3LCAzLjUyNjc4IiwgXAotICAgICAgICAgICIwLjIyMjQ0NiwgMC43OTUzNTYsIDEuMjUyOTMsIDEuODI1MTcsIDIuMzk2NDksIDIuOTY4MjksIDMuNTM5ODkiLCBcCi0gICAgICAgICAgIjAuMjM0NTMsIDAuODA3NDIzLCAxLjI2NTA4LCAxLjgzNzM2LCAyLjQwODYsIDIuOTgwNDQsIDMuNTUyMDUiLCBcCi0gICAgICAgICAgIjAuMjUyOTYzLCAwLjgyNTc3NywgMS4yODM0MSwgMS44NTU4MiwgMi40Mjc0MywgMi45OTkxNiwgMy41NzA3IiwgXAotICAgICAgICAgICIwLjI2ODQ3NywgMC44NDE0NTEsIDEuMjk5MDIsIDEuODcxMjQsIDIuNDQzNDYsIDMuMDE0NTUsIDMuNTg2MiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yODkzMDUsIDEuMzg5OTIsIDIuMjY5NzQsIDMuMzY4NDgsIDQuNDY4NDMsIDUuNTY4MzMsIDYuNjY4MzkiLCBcCi0gICAgICAgICAgIjAuMjg5NTc1LCAxLjM4OTg0LCAyLjI2ODczLCAzLjM2ODQ2LCA0LjQ2ODUsIDUuNTY4NDksIDYuNjY3NDQiLCBcCi0gICAgICAgICAgIjAuMjg5Mzk0LCAxLjM4OTE4LCAyLjI2ODY1LCAzLjM2ODE0LCA0LjQ2ODE4LCA1LjU2ODI3LCA2LjY2OTI3IiwgXAotICAgICAgICAgICIwLjI4OTI5MSwgMS4zODkxNywgMi4yNjg3NiwgMy4zNjg0NCwgNC40NzE3MSwgNS41Njg1LCA2LjY2NzQ4IiwgXAotICAgICAgICAgICIwLjI4OTM4LCAxLjM4OTA5LCAyLjI2ODc2LCAzLjM2ODQ0LCA0LjQ3MTU4LCA1LjU2ODUsIDYuNjY3NTgiLCBcCi0gICAgICAgICAgIjAuMjg5OTQxLCAxLjM4ODk1LCAyLjI2OTY4LCAzLjM2ODQ1LCA0LjQ2ODcxLCA1LjU2ODY3LCA2LjY2ODUxIiwgXAotICAgICAgICAgICIwLjI5MTY0NSwgMS4zODk4OSwgMi4yNjk3MywgMy4zNjg0NCwgNC40NjgxOSwgNS41NjkyNSwgNi42NjcyOSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMzgxNjMsIDAuNTUwNzI4LCAwLjg3Nzc1MywgMS4yODYzMywgMS42OTM3NSwgMi4xMDIxOSwgMi41MDg3OSIsIFwKLSAgICAgICAgICAiMC4xNDkzNzgsIDAuNTYxOTU5LCAwLjg4OTE2MiwgMS4yOTc0MiwgMS43MDUzOSwgMi4xMTI3MywgMi41MjEyOSIsIFwKLSAgICAgICAgICAiMC4xNjI4NTYsIDAuNTc1NTE3LCAwLjkwMjY1NiwgMS4zMTA4NiwgMS43MTkxOSwgMi4xMjYxNiwgMi41MzM4OSIsIFwKLSAgICAgICAgICAiMC4xNzYyOTUsIDAuNTg5MDMxLCAwLjkxNjE4NywgMS4zMjQ2MiwgMS43MzI2NiwgMi4xMzk4NywgMi41NDg1NyIsIFwKLSAgICAgICAgICAiMC4xODk3MSwgMC42MDI2NjgsIDAuOTI5ODMyLCAxLjMzODIxLCAxLjc0NjMyLCAyLjE1NDM1LCAyLjU2MTA2IiwgXAotICAgICAgICAgICIwLjIxMTA4MiwgMC42MjQxNSwgMC45NTEzMTksIDEuMzU5ODIsIDEuNzY3NDgsIDIuMTc1MDMsIDIuNTgyOTYiLCBcCi0gICAgICAgICAgIjAuMjMwMTI5LCAwLjY0MjkyNiwgMC45NzAxMTksIDEuMzc4NDYsIDEuNzg2MzUsIDIuMTk0MjQsIDIuNjAxNTciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjIzNTE0LCAxLjAwNTE0LCAxLjYyODI2LCAyLjQwNzc0LCAzLjE4Nzc0LCAzLjk2NzMyLCA0Ljc0Njk1IiwgXAotICAgICAgICAgICIwLjIyMzU3MSwgMS4wMDUwOCwgMS42MjkzMSwgMi40MDkxLCAzLjE4NzMyLCAzLjk2NjkyLCA0Ljc0NTUzIiwgXAotICAgICAgICAgICIwLjIyMzUxMiwgMS4wMDUwOCwgMS42MjkxNywgMi40MDc4MSwgMy4xODc5MywgMy45Njc2NiwgNC43NDU4NyIsIFwKLSAgICAgICAgICAiMC4yMjMzODEsIDEuMDA1MDgsIDEuNjI5MzEsIDIuNDA5MDgsIDMuMTg3MDIsIDMuOTY2NzksIDQuNzQ2NTciLCBcCi0gICAgICAgICAgIjAuMjI0MTUyLCAxLjAwNDU2LCAxLjYyOTEzLCAyLjQwOTA0LCAzLjE4NzA0LCAzLjk2Nzk4LCA0Ljc0NTc1IiwgXAotICAgICAgICAgICIwLjIyNzE5NSwgMS4wMDUwNywgMS42Mjg1MiwgMi40MDkwMiwgMy4xODc0MSwgMy45Njc3MiwgNC43NDU2NCIsIFwKLSAgICAgICAgICAiMC4yMzE2NzQsIDEuMDA1MDIsIDEuNjI4NTMsIDIuNDA3NywgMy4xODY5NSwgMy45Njc5OSwgNC43NDcxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkExIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNzczNiwgMC43NTM3NjcsIDEuMjE0NzksIDEuNzkxNzMsIDIuMzY3MTQsIDIuOTQyOCwgMy41MTg5MyIsIFwKLSAgICAgICAgICAiMC4xODkyNTksIDAuNzY1ODYxLCAxLjIyNzA1LCAxLjgwMzk3LCAyLjM3OTM2LCAyLjk1NTA0LCAzLjUzMDc2IiwgXAotICAgICAgICAgICIwLjIwMjk5MSwgMC43Nzk2MzUsIDEuMjQwODEsIDEuODE3NzcsIDIuMzkzMjYsIDIuOTY4OTIsIDMuNTQ0NzUiLCBcCi0gICAgICAgICAgIjAuMjE1NTczLCAwLjc5Mjk0NCwgMS4yNTQyNCwgMS44MzAyLCAyLjQwNjcyLCAyLjk4MjAxLCAzLjU1Nzk0IiwgXAotICAgICAgICAgICIwLjIyNzY5OCwgMC44MDQ2MjIsIDEuMjY1ODksIDEuODQyNjgsIDIuNDE4ODgsIDIuOTk0MDksIDMuNTcwMDIiLCBcCi0gICAgICAgICAgIjAuMjQ1OTg2LCAwLjgyMzE4NiwgMS4yODQyNCwgMS44NjEwNSwgMi40MzczNiwgMy4wMTI5MywgMy41ODg1MiIsIFwKLSAgICAgICAgICAiMC4yNjE0MzEsIDAuODM4NzQ5LCAxLjMwMDI3LCAxLjg3Njc4LCAyLjQ1Mjc2LCAzLjAyODM0LCAzLjYwNDI2Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI4MzQ2NywgMS4zOTM4OSwgMi4yODIzMSwgMy4zOTU1NiwgNC41MDY3NSwgNS42MDU1MSwgNi43MDkwMSIsIFwKLSAgICAgICAgICAiMC4yODMzOTQsIDEuMzkzOTcsIDIuMjgyODIsIDMuMzg1NjIsIDQuNTA2OTMsIDUuNjA2NzksIDYuNzEzNTQiLCBcCi0gICAgICAgICAgIjAuMjgyNzA2LCAxLjM5MzM5LCAyLjI4MjEzLCAzLjM5NTQsIDQuNTA2NjksIDUuNjA1NTIsIDYuNzEyMTkiLCBcCi0gICAgICAgICAgIjAuMjgzMjk4LCAxLjM5NDU5LCAyLjI4MzU1LCAzLjM5MzQzLCA0LjUwNzU4LCA1LjYwNzAxLCA2LjcwOTI3IiwgXAotICAgICAgICAgICIwLjI4MzMyLCAxLjM5NDU0LCAyLjI4MjExLCAzLjM5NDc5LCA0LjUwNzU1LCA1LjYwNTg0LCA2LjcwOTczIiwgXAotICAgICAgICAgICIwLjI4MzYxLCAxLjM5MzQ5LCAyLjI3ODk3LCAzLjM5NDAzLCA0LjUwNzYzLCA1LjYwMDEsIDYuNzEzMjciLCBcCi0gICAgICAgICAgIjAuMjg1NjY2LCAxLjM5MzUxLCAyLjI4Mjk0LCAzLjM5NDc0LCA0LjUwNzE0LCA1LjYwNTg0LCA2LjcwOTE5Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEzMzc0MywgMC41NDYzMTksIDAuODczMzYxLCAxLjI4MTQ2LCAxLjY4OTI1LCAyLjA5NzE4LCAyLjUwNDk0IiwgXAotICAgICAgICAgICIwLjE0MzcxLCAwLjU1NjI5NiwgMC44ODMzMzYsIDEuMjkxNTQsIDEuNjk5MzQsIDIuMTA3MTQsIDIuNTE1NTYiLCBcCi0gICAgICAgICAgIjAuMTU2NjU0LCAwLjU2OTMwNSwgMC44OTY0NzIsIDEuMzA0NTcsIDEuNzEzMDQsIDIuMTE5OTcsIDIuNTI3NyIsIFwKLSAgICAgICAgICAiMC4xNjk5MDEsIDAuNTgyNjIsIDAuOTA5NzczLCAxLjMxNzc1LCAxLjcyNjEsIDIuMTMzMzcsIDIuNTQxODkiLCBcCi0gICAgICAgICAgIjAuMTgyOTcxLCAwLjU5NTcxLCAwLjkyMjgyLCAxLjMzMDg5LCAxLjczODgsIDIuMTQ2NDcsIDIuNTU0OTgiLCBcCi0gICAgICAgICAgIjAuMjA0MzgxLCAwLjYxODEyMSwgMC45NDQwOCwgMS4zNTI0NywgMS43NjA0NCwgMi4xNjg2MywgMi41NzU3MyIsIFwKLSAgICAgICAgICAiMC4yMjQwMTYsIDAuNjM1NDA1LCAwLjk2MjU0MiwgMS4zNzA4NCwgMS43Nzg0OSwgMi4xODY4LCAyLjU5Mzg3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIyNDMwOSwgMS4wMDUxOCwgMS42Mjg1NiwgMi40MDgxNCwgMy4xODg0OSwgMy45NjY2MywgNC43NDUyMyIsIFwKLSAgICAgICAgICAiMC4yMjM1NzksIDEuMDA0NDQsIDEuNjI4NTMsIDIuNDA4MSwgMy4xODc0OSwgMy45NjY3OCwgNC43NDYwMSIsIFwKLSAgICAgICAgICAiMC4yMjMzOTEsIDEuMDA0NDQsIDEuNjI5MSwgMi40MDgxLCAzLjE4ODAxLCAzLjk2NzY3LCA0Ljc0NTg5IiwgXAotICAgICAgICAgICIwLjIyMzM3MiwgMS4wMDUxLCAxLjYyOTIxLCAyLjQwNzk5LCAzLjE4ODYxLCAzLjk2Nzc0LCA0Ljc0NTk1IiwgXAotICAgICAgICAgICIwLjIyNTI4NCwgMS4wMDQ1NCwgMS42MjkzLCAyLjQwODEsIDMuMTg3NDcsIDMuOTY2NzMsIDQuNzQ1NDEiLCBcCi0gICAgICAgICAgIjAuMjMxMjMsIDEuMDA1MTQsIDEuNjI5MjQsIDIuNDA3OTQsIDMuMTg4NjUsIDMuOTY3MzYsIDQuNzQ3NDgiLCBcCi0gICAgICAgICAgIjAuMjM3NDk0LCAxLjAwNTA1LCAxLjYyOTE3LCAyLjQwNzgxLCAzLjE4ODM2LCAzLjk2ODE0LCA0Ljc0NTg3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNzE5NDYsIDAuNzQ0MjM0LCAxLjIwMjEyLCAxLjc3NzU5LCAyLjM1NDU5LCAyLjkzMDE4LCAzLjUwNTQzIiwgXAotICAgICAgICAgICIwLjE4MjQ1MSwgMC43NTUwOTgsIDEuMjEyNzksIDEuNzg5MDIsIDIuMzY1MTksIDIuOTQwOTIsIDMuNTE2NSIsIFwKLSAgICAgICAgICAiMC4xOTUyNTYsIDAuNzY4MTc5LCAxLjIyNTkzLCAxLjgwMjIsIDIuMzc3NzQsIDIuOTUzNCwgMy41MjkyNSIsIFwKLSAgICAgICAgICAiMC4yMDczMTIsIDAuNzgwMzYsIDEuMjM4MTYsIDEuODEzNzMsIDIuMzkwMzcsIDIuOTY2MTcsIDMuNTQxNzQiLCBcCi0gICAgICAgICAgIjAuMjE5MTUxLCAwLjc5MjI4MSwgMS4yNTAxNiwgMS44MjUyNywgMi40MDI2MiwgMi45NzgxNCwgMy41NTM0OCIsIFwKLSAgICAgICAgICAiMC4yMzgxNTQsIDAuODExNDc3LCAxLjI2OTUsIDEuODQ1NiwgMi40MjA3NCwgMi45OTY4MiwgMy41NzI3OSIsIFwKLSAgICAgICAgICAiMC4yNTQ2MjgsIDAuODI3OTM3LCAxLjI4NjM2LCAxLjg2MjM3LCAyLjQzNzI1LCAzLjAxMzQ1LCAzLjU4OTQ1Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI4OTU4NSwgMS4zOTE1OSwgMi4yODM3NiwgMy4zODg2OCwgNC41MDc5NSwgNS42MDc0NiwgNi43MDkzNyIsIFwKLSAgICAgICAgICAiMC4yODk0MDUsIDEuMzk0NTEsIDIuMjgzNjEsIDMuMzk0NDcsIDQuNTA3NzQsIDUuNjA3NDcsIDYuNzA3MzgiLCBcCi0gICAgICAgICAgIjAuMjg5MzM1LCAxLjM5MTg2LCAyLjI4MjExLCAzLjM5NTI2LCA0LjUwNjY4LCA1LjYwNTY0LCA2LjcxMTc5IiwgXAotICAgICAgICAgICIwLjI4OTYxOCwgMS4zOTE5NSwgMi4yODIzMywgMy4zOTI2NCwgNC40OTQ4MSwgNS42MDA2NCwgNi43MDkxNSIsIFwKLSAgICAgICAgICAiMC4yODk2NzEsIDEuMzkzNjMsIDIuMjc5NzEsIDMuMzg4NjEsIDQuNTA4MTQsIDUuNjA3NDcsIDYuNzA5MjQiLCBcCi0gICAgICAgICAgIjAuMjkxNTU5LCAxLjM5MjExLCAyLjI4Mjc5LCAzLjM5NTM1LCA0LjUwNTc5LCA1LjYwNTYxLCA2LjcxIiwgXAotICAgICAgICAgICIwLjI5NDY1OSwgMS4zOTQxNiwgMi4yODM2NywgMy4zOTU3NywgNC40OTc1LCA1LjYwNTIxLCA2LjcxMDE0Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2MTk5LCAwLjI2OTE3NCwgMC40MzQzNjMsIDAuNjQwNzQ3LCAwLjg0Njc3LCAxLjA1MzA1LCAxLjI1OTU4IiwgXAotICAgICAgICAgICIwLjA3Mzc0MSwgMC4yODA5OTIsIDAuNDQ2MDA5LCAwLjY1MjMwNywgMC44NTg1NSwgMS4wNjQ2MSwgMS4yNzA4NCIsIFwKLSAgICAgICAgICAiMC4wODg3NTgsIDAuMjk1NTM3LCAwLjQ2MDY5OSwgMC42NjQ2OSwgMC44NzA4MjUsIDEuMDc3NDEsIDEuMjgzNjkiLCBcCi0gICAgICAgICAgIjAuMTAzNzMzLCAwLjMxMDMwOCwgMC40NzUzNDQsIDAuNjgxNjQsIDAuODg4MDg0LCAxLjA5NCwgMS4zMDAzOSIsIFwKLSAgICAgICAgICAiMC4xMTg2MDgsIDAuMzI0OTE2LCAwLjQ4OTk4OCwgMC42OTYzODIsIDAuOTAyNjg3LCAxLjEwNzYzLCAxLjMwOTc1IiwgXAotICAgICAgICAgICIwLjE0MjkzNCwgMC4zNDg2OTMsIDAuNTE0ODc0LCAwLjcyMDk4OCwgMC45MjU4MjUsIDEuMTMyMDgsIDEuMzM4NzIiLCBcCi0gICAgICAgICAgIjAuMTYzNzU1LCAwLjM3MDU0NCwgMC41MzQyMDksIDAuNzQwMzQ0LCAwLjk0NjU0NCwgMS4xNTMwOCwgMS4zNTkxMyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTM1MTIsIDAuNTIzMTM0LCAwLjg1MTA2NywgMS4yNjEyNCwgMS42NzA1OCwgMi4wODA2MywgMi40ODk2OSIsIFwKLSAgICAgICAgICAiMC4xMTM0ODcsIDAuNTIzMTA3LCAwLjg1MDgyLCAxLjI2MDU5LCAxLjY3MDI2LCAyLjA4MDY1LCAyLjQ5MDA5IiwgXAotICAgICAgICAgICIwLjExNDQ3NSwgMC41MjMwNzIsIDAuODUwODM2LCAxLjI2MDUyLCAxLjY3MDc4LCAyLjA4MDQ1LCAyLjQ5MDU5IiwgXAotICAgICAgICAgICIwLjExODA5OSwgMC41MjMxMTIsIDAuODUwODYzLCAxLjI2MDUxLCAxLjY3MDg4LCAyLjA4MDUzLCAyLjQ5MDQ2IiwgXAotICAgICAgICAgICIwLjEyMzQ5NSwgMC41MjMxMDksIDAuODUwOTk5LCAxLjI2MTE3LCAxLjY3MDk0LCAyLjA4MDYzLCAyLjQ5MDA0IiwgXAotICAgICAgICAgICIwLjEzMzkzNCwgMC41MjMzMzMsIDAuODUxMDA1LCAxLjI2MDQzLCAxLjY3MDg4LCAyLjA4MDA5LCAyLjQ5MDYiLCBcCi0gICAgICAgICAgIjAuMTQ0NjEzLCAwLjUyNDg4NiwgMC44NTA5MjcsIDEuMjYwOTMsIDEuNjcwMywgMi4wODA1NywgMi40OSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTUxMTcsIDAuNzIzOTU0LCAxLjE4MDgzLCAxLjc1NzY1LCAyLjMzMzAyLCAyLjkwODY3LCAzLjQ4NDQ4IiwgXAotICAgICAgICAgICIwLjE2MDU3NiwgMC43MzM0MTYsIDEuMTkwODksIDEuNzY2MywgMi4zNDIzLCAyLjkxODQ2LCAzLjQ5NDU3IiwgXAotICAgICAgICAgICIwLjE3MjQwMywgMC43NDU1NDUsIDEuMjAzNzcsIDEuNzc4MzcsIDIuMzU1NDIsIDIuOTMxMjMsIDMuNTA2MzYiLCBcCi0gICAgICAgICAgIjAuMTg0NjAzLCAwLjc1Nzk3NSwgMS4yMTYwOCwgMS43OTIwNSwgMi4zNjgxNiwgMi45NDM2NSwgMy41MTkwNCIsIFwKLSAgICAgICAgICAiMC4xOTY1ODgsIDAuNzcwMDQ2LCAxLjIyODEsIDEuODAzNjIsIDIuMzc5MzMsIDIuOTU1NDYsIDMuNTMxMjUiLCBcCi0gICAgICAgICAgIjAuMjE2MDU1LCAwLjc4OTUyMSwgMS4yNDc0OSwgMS44MjM0NywgMi4zOTg2MywgMi45NzQ4MywgMy41NTA3NCIsIFwKLSAgICAgICAgICAiMC4yMzQwOTIsIDAuODA2NTYsIDEuMjY0NTgsIDEuODM5OTMsIDIuNDE2NDcsIDIuOTkyLCAzLjU2Nzg4Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI4OTQ5MSwgMS4zOTQyMiwgMi4yNzY3MywgMy4zOTU3LCA0LjUwNjY3LCA1LjYwNTM5LCA2LjcxMjc1IiwgXAotICAgICAgICAgICIwLjI4OTA1NCwgMS4zOTQ2LCAyLjI3NzY2LCAzLjM4ODQ5LCA0LjUwNTQ0LCA1LjU5NzY1LCA2LjcxMzkiLCBcCi0gICAgICAgICAgIjAuMjg4NjA0LCAxLjM5MTg2LCAyLjI4MzUsIDMuMzg3OTksIDQuNDkyNDgsIDUuNjA3MjcsIDYuNzExNTgiLCBcCi0gICAgICAgICAgIjAuMjg4MTI1LCAxLjM5MjA5LCAyLjI4Mjk4LCAzLjM4NTA5LCA0LjUwODIyLCA1LjYwNzIyLCA2LjcxMzM0IiwgXAotICAgICAgICAgICIwLjI5MDAzOCwgMS4zOTM2NiwgMi4yODI5OSwgMy4zOTQzMywgNC40OTcyOCwgNS42MDE1MywgNi43MDg4OSIsIFwKLSAgICAgICAgICAiMC4yOTU1ODUsIDEuMzk0NTEsIDIuMjc3NjgsIDMuMzk1NDcsIDQuNDk2ODUsIDUuNjAyOTMsIDYuNzA5MiIsIFwKLSAgICAgICAgICAiMC4zMDE5MjksIDEuMzk0NTcsIDIuMjgyNjMsIDMuMzkyNjQsIDQuNDkzOTYsIDUuNjA2ODQsIDYuNzEzNDIiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU1ODY3LCAwLjI2MjE1NywgMC40MjcxNywgMC42MzMyNzYsIDAuODM5NiwgMS4wNDU2OCwgMS4yNTI0MiIsIFwKLSAgICAgICAgICAiMC4wNjc3NCwgMC4yNzQxMzUsIDAuNDM5MDkxLCAwLjY0NTIyLCAwLjg1MTQ4MSwgMS4wNTc3NSwgMS4yNjM3NiIsIFwKLSAgICAgICAgICAiMC4wODI3NjUsIDAuMjg4ODM0LCAwLjQ1MjE5OCwgMC42NTgyNzQsIDAuODY0NTA3LCAxLjA3MDYzLCAxLjI3NzA2IiwgXAotICAgICAgICAgICIwLjA5Nzg0NiwgMC4zMDQxMzEsIDAuNDY5MDgzLCAwLjY3NTI5MSwgMC44ODE1NDYsIDEuMDg3NjcsIDEuMjkzOTgiLCBcCi0gICAgICAgICAgIjAuMTEyOTE0LCAwLjMxODI4NiwgMC40ODMyMDYsIDAuNjg5MzA1LCAwLjg5NTgwMSwgMS4xMDA1MSwgMS4zMDMwNyIsIFwKLSAgICAgICAgICAiMC4xMzY5NzIsIDAuMzQyMTY2LCAwLjUwODA1MywgMC43MTQxODMsIDAuOTIwMzYzLCAxLjEyNjQ5LCAxLjMzMzI5IiwgXAotICAgICAgICAgICIwLjE1NjczNCwgMC4zNjM4NzgsIDAuNTI3NDgsIDAuNzMzNzM2LCAwLjkzOTc0NywgMS4xNDY0NCwgMS4zNTE5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwNjQwNiwgMC41MTU1OTQsIDAuODQzMzc2LCAxLjI1MzI2LCAxLjY2MjU5LCAyLjA3NTM3LCAyLjQ4Mjg2IiwgXAotICAgICAgICAgICIwLjEwNjQwMiwgMC41MTU1NSwgMC44NDMxNjEsIDEuMjUzNzIsIDEuNjYzMzgsIDIuMDc3NTUsIDIuNDgyMDciLCBcCi0gICAgICAgICAgIjAuMTA3OTE3LCAwLjUxNTU2LCAwLjg0MzI0OSwgMS4yNTM4MSwgMS42NjM0NCwgMi4wNzI5OSwgMi40ODM1MSIsIFwKLSAgICAgICAgICAiMC4xMTIwOTIsIDAuNTE1NTY5LCAwLjg0MzMwNywgMS4yNTMzMSwgMS42NjI0OCwgMi4wNzMwOCwgMi40ODczNyIsIFwKLSAgICAgICAgICAiMC4xMTc4NDQsIDAuNTE1NTc3LCAwLjg0MzMyOSwgMS4yNTI4MywgMS42NjI5NCwgMi4wNzc0MSwgMi40ODUzOCIsIFwKLSAgICAgICAgICAiMC4xMjk0MDQsIDAuNTE1ODg2LCAwLjg0MzI1NiwgMS4yNTMxNiwgMS42NjM4NCwgMi4wNzMwOSwgMi40ODMyNiIsIFwKLSAgICAgICAgICAiMC4xNDA3MjMsIDAuNTE3NjQ2LCAwLjg0MzE4NiwgMS4yNTMxOSwgMS42NjMyLCAyLjA3NTg5LCAyLjQ4MzA0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNTUwMiwgMC4wMDU1MDIsIDAuMDA1NTAxLCAwLjAwNTQ5OSwgMC4wMDU0OTcsIDAuMDA1NDk4LCAwLjAwNTQ5NiIsIFwKLSAgICAgICAgICAiMC4wMDU0ODYsIDAuMDA1NDkxLCAwLjAwNTQ5LCAwLjAwNTQ5MSwgMC4wMDU0ODcsIDAuMDA1NDg3LCAwLjAwNTQ5IiwgXAotICAgICAgICAgICIwLjAwNTQ3OSwgMC4wMDU0ODgsIDAuMDA1NDg3LCAwLjAwNTQ4OCwgMC4wMDU0ODgsIDAuMDA1NDgzLCAwLjAwNTQ4MyIsIFwKLSAgICAgICAgICAiMC4wMDU0NzMsIDAuMDA1NDg3LCAwLjAwNTQ4NywgMC4wMDU0ODYsIDAuMDA1NDg4LCAwLjAwNTQ4NCwgMC4wMDU0ODQiLCBcCi0gICAgICAgICAgIjAuMDA1NDY4LCAwLjAwNTQ4NCwgMC4wMDU0ODYsIDAuMDA1NDg1LCAwLjAwNTQ4NSwgMC4wMDU0ODQsIDAuMDA1NDg0IiwgXAotICAgICAgICAgICIwLjAwNTQ2MSwgMC4wMDU0ODEsIDAuMDA1NDgzLCAwLjAwNTQ4MywgMC4wMDU0ODMsIDAuMDA1NDgzLCAwLjAwNTQ4MyIsIFwKLSAgICAgICAgICAiMC4wMDU0NTYsIDAuMDA1NDc5LCAwLjAwNTQ4MiwgMC4wMDU0ODMsIDAuMDA1NDgzLCAwLjAwNTQ4MywgMC4wMDU0ODIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDE3OCwgMC4wMDE3OCwgMC4wMDE3NzgsIDAuMDAxNzc4LCAwLjAwMTc3NiwgMC4wMDE3NzQsIDAuMDAxNzczIiwgXAotICAgICAgICAgICIwLjAwMTc0MSwgMC4wMDE3NDIsIDAuMDAxNzQsIDAuMDAxNzQsIDAuMDAxNzM2LCAwLjAwMTczNCwgMC4wMDE3MzQiLCBcCi0gICAgICAgICAgIjAuMDAxNzIyLCAwLjAwMTcyNywgMC4wMDE3MjUsIDAuMDAxNzI1LCAwLjAwMTcyNCwgMC4wMDE3MjIsIDAuMDAxNzIyIiwgXAotICAgICAgICAgICIwLjAwMTcxMiwgMC4wMDE3MiwgMC4wMDE3MiwgMC4wMDE3MTksIDAuMDAxNzE3LCAwLjAwMTcxNSwgMC4wMDE3MTQiLCBcCi0gICAgICAgICAgIjAuMDAxNzA1LCAwLjAwMTcxNSwgMC4wMDE3MTUsIDAuMDAxNzE0LCAwLjAwMTcxNSwgMC4wMDE3MTMsIDAuMDAxNzExIiwgXAotICAgICAgICAgICIwLjAwMTY5NCwgMC4wMDE3MDksIDAuMDAxNzEyLCAwLjAwMTcxMiwgMC4wMDE3MSwgMC4wMDE3MDgsIDAuMDAxNzA4IiwgXAotICAgICAgICAgICIwLjAwMTY4NywgMC4wMDE3MDcsIDAuMDAxNzA5LCAwLjAwMTcwOSwgMC4wMDE3MDgsIDAuMDAxNzA3LCAwLjAwMTcwNyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkExIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQ4NzQsIDAuMDA0ODc2LCAwLjAwNDg3NywgMC4wMDQ4NzYsIDAuMDA0ODc2LCAwLjAwNDg3NywgMC4wMDQ4NzUiLCBcCi0gICAgICAgICAgIjAuMDA0ODcsIDAuMDA0ODg1LCAwLjAwNDg4NSwgMC4wMDQ4ODcsIDAuMDA0ODg3LCAwLjAwNDg4NywgMC4wMDQ4OTEiLCBcCi0gICAgICAgICAgIjAuMDA0ODU3LCAwLjAwNDg4NCwgMC4wMDQ4ODYsIDAuMDA0ODg1LCAwLjAwNDg4OCwgMC4wMDQ4ODYsIDAuMDA0ODg5IiwgXAotICAgICAgICAgICIwLjAwNDg0NiwgMC4wMDQ4OCwgMC4wMDQ4ODQsIDAuMDA0ODg3LCAwLjAwNDg4NSwgMC4wMDQ4ODgsIDAuMDA0ODg2IiwgXAotICAgICAgICAgICIwLjAwNDgzNSwgMC4wMDQ4NzUsIDAuMDA0ODgyLCAwLjAwNDg4NywgMC4wMDQ4ODQsIDAuMDA0ODg3LCAwLjAwNDg4OCIsIFwKLSAgICAgICAgICAiMC4wMDQ4MjEsIDAuMDA0ODcxLCAwLjAwNDg3OCwgMC4wMDQ4ODIsIDAuMDA0ODg1LCAwLjAwNDg4NSwgMC4wMDQ4ODkiLCBcCi0gICAgICAgICAgIjAuMDA0ODEzLCAwLjAwNDg2NywgMC4wMDQ4NzYsIDAuMDA0ODgsIDAuMDA0ODgyLCAwLjAwNDg4NCwgMC4wMDQ4ODUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDE3ODQsIDAuMDAxNzgyLCAwLjAwMTc4MywgMC4wMDE3ODIsIDAuMDAxNzc4LCAwLjAwMTc3MiwgMC4wMDE3NjkiLCBcCi0gICAgICAgICAgIjAuMDAxNzQxLCAwLjAwMTc0MSwgMC4wMDE3NDIsIDAuMDAxNzM4LCAwLjAwMTc0MSwgMC4wMDE3NCwgMC4wMDE3MzYiLCBcCi0gICAgICAgICAgIjAuMDAxNzE5LCAwLjAwMTcyNSwgMC4wMDE3MjQsIDAuMDAxNzI0LCAwLjAwMTcyMywgMC4wMDE3MjIsIDAuMDAxNzIyIiwgXAotICAgICAgICAgICIwLjAwMTcwNiwgMC4wMDE3MTcsIDAuMDAxNzE4LCAwLjAwMTcxOCwgMC4wMDE3MTYsIDAuMDAxNzE1LCAwLjAwMTcxNCIsIFwKLSAgICAgICAgICAiMC4wMDE2OTcsIDAuMDAxNzEzLCAwLjAwMTcxMywgMC4wMDE3MTMsIDAuMDAxNzEzLCAwLjAwMTcxMiwgMC4wMDE3MDkiLCBcCi0gICAgICAgICAgIjAuMDAxNjg3LCAwLjAwMTcwOSwgMC4wMDE3MSwgMC4wMDE3MSwgMC4wMDE3MDgsIDAuMDAxNzA4LCAwLjAwMTcwNyIsIFwKLSAgICAgICAgICAiMC4wMDE2ODIsIDAuMDAxNzAzLCAwLjAwMTcwNywgMC4wMDE3MDcsIDAuMDAxNzA3LCAwLjAwMTcwNiwgMC4wMDE3MDUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0NDQyLCAwLjAwNDQ0NCwgMC4wMDQ0NDMsIDAuMDA0NDQzLCAwLjAwNDQ0MSwgMC4wMDQ0NCwgMC4wMDQ0MzkiLCBcCi0gICAgICAgICAgIjAuMDA0NDI5LCAwLjAwNDQ0MSwgMC4wMDQ0NDIsIDAuMDA0NDQsIDAuMDA0NDQzLCAwLjAwNDQzOCwgMC4wMDQ0MzciLCBcCi0gICAgICAgICAgIjAuMDA0NDE2LCAwLjAwNDQzOCwgMC4wMDQ0NDEsIDAuMDA0NDM4LCAwLjAwNDQzOCwgMC4wMDQ0NDIsIDAuMDA0NDQiLCBcCi0gICAgICAgICAgIjAuMDA0NDA3LCAwLjAwNDQzNCwgMC4wMDQ0MzcsIDAuMDA0NDM5LCAwLjAwNDQ0LCAwLjAwNDQzOSwgMC4wMDQ0MzciLCBcCi0gICAgICAgICAgIjAuMDA0Mzk5LCAwLjAwNDQzLCAwLjAwNDQzNSwgMC4wMDQ0MzgsIDAuMDA0NDM1LCAwLjAwNDQzNiwgMC4wMDQ0MzYiLCBcCi0gICAgICAgICAgIjAuMDA0MzksIDAuMDA0NDI2LCAwLjAwNDQzMiwgMC4wMDQ0MzUsIDAuMDA0NDM3LCAwLjAwNDQzNiwgMC4wMDQ0MzgiLCBcCi0gICAgICAgICAgIjAuMDA0MzgzLCAwLjAwNDQyMiwgMC4wMDQ0MjksIDAuMDA0NDMzLCAwLjAwNDQzNCwgMC4wMDQ0MzQsIDAuMDA0NDM0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwODI3LCAwLjAwMDgyOCwgMC4wMDA4MjcsIDAuMDAwODI3LCAwLjAwMDgyNywgMC4wMDA4MjcsIDAuMDAwODI2IiwgXAotICAgICAgICAgICIwLjAwMDgxNiwgMC4wMDA4MjcsIDAuMDAwODI4LCAwLjAwMDgyOCwgMC4wMDA4MjgsIDAuMDAwODI4LCAwLjAwMDgyOCIsIFwKLSAgICAgICAgICAiMC4wMDA4MDEsIDAuMDAwODI1LCAwLjAwMDgyNywgMC4wMDA4MjgsIDAuMDAwODI4LCAwLjAwMDgyOCwgMC4wMDA4MjgiLCBcCi0gICAgICAgICAgIjAuMDAwNzg0LCAwLjAwMDgyLCAwLjAwMDgyNSwgMC4wMDA4MjYsIDAuMDAwODI4LCAwLjAwMDgyOCwgMC4wMDA4MjgiLCBcCi0gICAgICAgICAgIjAuMDAwNzc2LCAwLjAwMDgxNywgMC4wMDA4MjMsIDAuMDAwODI2LCAwLjAwMDgyNywgMC4wMDA4MjgsIDAuMDAwODI3IiwgXAotICAgICAgICAgICIwLjAwMDc2MSwgMC4wMDA4MTMsIDAuMDAwODE5LCAwLjAwMDgyMywgMC4wMDA4MjUsIDAuMDAwODI2LCAwLjAwMDgyNyIsIFwKLSAgICAgICAgICAiMC4wMDA3NTIsIDAuMDAwODA4LCAwLjAwMDgxNywgMC4wMDA4MjEsIDAuMDAwODI0LCAwLjAwMDgyNSwgMC4wMDA4MjYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDMCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzNTMsIDAuMDAzNTM0LCAwLjAwMzUzNCwgMC4wMDM1MzQsIDAuMDAzNTMyLCAwLjAwMzUzLCAwLjAwMzUyOSIsIFwKLSAgICAgICAgICAiMC4wMDM1MDgsIDAuMDAzNTI5LCAwLjAwMzUzLCAwLjAwMzUzMiwgMC4wMDM1MzEsIDAuMDAzNTI5LCAwLjAwMzUyOCIsIFwKLSAgICAgICAgICAiMC4wMDM0ODgsIDAuMDAzNTIsIDAuMDAzNTI2LCAwLjAwMzUyNiwgMC4wMDM1MjgsIDAuMDAzNTI2LCAwLjAwMzUyNiIsIFwKLSAgICAgICAgICAiMC4wMDM0NzMsIDAuMDAzNTE2LCAwLjAwMzUyMSwgMC4wMDM1MjQsIDAuMDAzNTI1LCAwLjAwMzUyNiwgMC4wMDM1MjUiLCBcCi0gICAgICAgICAgIjAuMDAzNDYyLCAwLjAwMzUxMSwgMC4wMDM1MTksIDAuMDAzNTIsIDAuMDAzNTIzLCAwLjAwMzUyNCwgMC4wMDM1MjMiLCBcCi0gICAgICAgICAgIjAuMDAzNDUsIDAuMDAzNTA0LCAwLjAwMzUxMywgMC4wMDM1MTksIDAuMDAzNTIsIDAuMDAzNTIzLCAwLjAwMzUyMSIsIFwKLSAgICAgICAgICAiMC4wMDM0NDQsIDAuMDAzNDk4LCAwLjAwMzUwOSwgMC4wMDM1MTUsIDAuMDAzNTE4LCAwLjAwMzUxNywgMC4wMDM1MTkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDAxNDMsIDAuMDAwMTUsIDAuMDAwMTUxLCAwLjAwMDE1MiwgMC4wMDAxNTIsIDAuMDAwMTUyLCAwLjAwMDE1MiIsIFwKLSAgICAgICAgICAiMC4wMDAxNTEsIDAuMDAwMTgyLCAwLjAwMDE4NiwgMC4wMDAxODcsIDAuMDAwMTg4LCAwLjAwMDE4OSwgMC4wMDAxODkiLCBcCi0gICAgICAgICAgIjAuMDAwMTM1LCAwLjAwMDE4OCwgMC4wMDAxOTYsIDAuMDAwMTk5LCAwLjAwMDIwMSwgMC4wMDAyMDIsIDAuMDAwMjAyIiwgXAotICAgICAgICAgICIwLjAwMDExNywgMC4wMDAxODUsIDAuMDAwMTkzLCAwLjAwMDE5OCwgMC4wMDAyLCAwLjAwMDIwMSwgMC4wMDAyMDIiLCBcCi0gICAgICAgICAgIjAuMDAwMTAzLCAwLjAwMDE4MywgMC4wMDAxOTMsIDAuMDAwMTk5LCAwLjAwMDIwMiwgMC4wMDAyMDUsIDAuMDAwMjA3IiwgXAotICAgICAgICAgICIwLjAwMDA4MiwgMC4wMDAxNzYsIDAuMDAwMTg4LCAwLjAwMDE5NiwgMC4wMDAyLCAwLjAwMDIwMiwgMC4wMDAyMDMiLCBcCi0gICAgICAgICAgIjAuMDAwMDY5LCAwLjAwMDE3LCAwLjAwMDE4NiwgMC4wMDAxOTUsIDAuMDAwMiwgMC4wMDAyMDIsIDAuMDAwMjA0Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IEFPSTIxMVg0ICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChBT0kyMTFYNCkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjQ1MTg1NzsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQTApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMzIwOTMxOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMzE5MDU7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAzMjA5MzE7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxMjI1LCAwLjAwMTIyNCwgMC4wMDEyMjMsIDAuMDAxMjIzLCAwLjAwMTIyMywgMC4wMDEyMjIsIDAuMDAxMjIyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxMjcxLCAwLjAwMTIzOCwgMC4wMDEyMzQsIDAuMDAxMjMyLCAwLjAwMTIzMiwgMC4wMDEyMzEsIDAuMDAxMjMxIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihBMSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAzMDM0NDk7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAzMDA0MDE7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAzMDM0NDk7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNjYxLCAwLjAwMDY2LCAwLjAwMDY2LCAwLjAwMDY2LCAwLjAwMDY1OSwgMC4wMDA2NiwgMC4wMDA2NTkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDEzOSwgMC4wMDEzOTEsIDAuMDAxMzkxLCAwLjAwMTM5MiwgMC4wMDEzOTIsIDAuMDAxMzkyLCAwLjAwMTM5MiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQjApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMjgyMzQ0OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMjc5NjM2OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMjgyMzQ0OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTAyMiwgMC4wMDEwODcsIDAuMDAxMTE2LCAwLjAwMTEyOSwgMC4wMDExMzcsIDAuMDAxMTQ1LCAwLjAwMTE1MSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTI4NiwgMC4wMDEyODcsIDAuMDAxMjg4LCAwLjAwMTI4OCwgMC4wMDEyODgsIDAuMDAxMjg4LCAwLjAwMTI4OCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQzApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMjg0MTQ0OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMjg0MTE2OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMjg0MTQ0OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDMwNCwgMC4wMDAzMDQsIDAuMDAwMzA0LCAwLjAwMDMwNCwgMC4wMDAzMDQsIDAuMDAwMzA0LCAwLjAwMDMwNCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTQxNiwgMC4wMDE0MTYsIDAuMDAxNDE2LCAwLjAwMTQxNiwgMC4wMDE0MTYsIDAuMDAxNDE2LCAwLjAwMTQxNiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjE5ODQyNjsKLSAgICBmdW5jdGlvbiA6ICIoISgoKEEwIEExKStCMCkrQzApKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTAiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTI2MzY3LCAwLjUzMTI2NywgMC45MzU2MTgsIDEuMjI0MjQsIDEuNjg2NjIsIDIuMDkwMjcsIDIuNjY3MDUiLCBcCi0gICAgICAgICAgIjAuMTM3OTI1LCAwLjU0Mjk0NCwgMC45NDcyOTcsIDEuMjM1OTQsIDEuNjk4MzEsIDIuMTAxOTUsIDIuNjc4NiIsIFwKLSAgICAgICAgICAiMC4xNTE2NzIsIDAuNTU2ODIsIDAuOTYxMjQ3LCAxLjI0OTgyLCAxLjcxMjMxLCAyLjExNTc2LCAyLjY5MzE3IiwgXAotICAgICAgICAgICIwLjE2NDQ5NywgMC41Njk3MjEsIDAuOTc0MzIyLCAxLjI2MjUsIDEuNzI0ODMsIDIuMTI4NzIsIDIuNzA1ODciLCBcCi0gICAgICAgICAgIjAuMTc2NTcxLCAwLjU4MTk1NiwgMC45ODYwMzcsIDEuMjc1MjEsIDEuNzM2NTYsIDIuMTQxNywgMi43MTgyMyIsIFwKLSAgICAgICAgICAiMC4xOTQ5NjcsIDAuNjAwNDIzLCAxLjAwNDUyLCAxLjI5MzMsIDEuNzU1MjksIDIuMTU5NiwgMi43MzY3NCIsIFwKLSAgICAgICAgICAiMC4yMTA0MzksIDAuNjE1ODg4LCAxLjAyMDA1LCAxLjMwOTAxLCAxLjc3MDYyLCAyLjE3NTMzLCAyLjc1MjA3Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTc5NTYzLCAwLjk1NzkzOCwgMS43MzY1NSwgMi4yOTI0MywgMy4xODI0NCwgMy45NjA2OSwgNS4wNzcyOCIsIFwKLSAgICAgICAgICAiMC4xNzk1NjgsIDAuOTU3OTM5LCAxLjczNjU0LCAyLjI5MjQxLCAzLjE4MjU2LCAzLjk2MDgyLCA1LjA3NjQ4IiwgXAotICAgICAgICAgICIwLjE3OTU3MywgMC45NTgxMjUsIDEuNzM2NzUsIDIuMjkyNDQsIDMuMTgyMDQsIDMuOTYwOTMsIDUuMDczMTgiLCBcCi0gICAgICAgICAgIjAuMTc5NjA5LCAwLjk1Nzg5NCwgMS43MzY2MywgMi4yOTE4LCAzLjE4MjEyLCAzLjk2MDE4LCA1LjA3MzI0IiwgXAotICAgICAgICAgICIwLjE3OTY2MSwgMC45NTg1NjcsIDEuNzM2MDksIDIuMjkyNDIsIDMuMTgyMSwgMy45NjA0MiwgNS4wNzQyMiIsIFwKLSAgICAgICAgICAiMC4xODExNjgsIDAuOTU4MTI2LCAxLjczNzIyLCAyLjI5MzU1LCAzLjE4MjEyLCAzLjk2MTQ5LCA1LjA3MzEzIiwgXAotICAgICAgICAgICIwLjE4MzM3NiwgMC45NTg3MDgsIDEuNzM2MjUsIDIuMjkyNjQsIDMuMTgzNDYsIDMuOTYwNDQsIDUuMDczMTUiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTQ4ODQsIDAuMzg3ODU2LCAwLjY3NjA3NSwgMC44ODEzOTcsIDEuMjA5NzMsIDEuNDk2NTksIDEuOTA3MDkiLCBcCi0gICAgICAgICAgIjAuMTA2MDU5LCAwLjM5OTAxNiwgMC42ODcyNDcsIDAuODkyNTUxLCAxLjIyMDc2LCAxLjUwODMyLCAxLjkxNzc4IiwgXAotICAgICAgICAgICIwLjExOTUxLCAwLjQxMjUyNiwgMC43MDA3MiwgMC45MDYxOTYsIDEuMjM0MzQsIDEuNTIxMjcsIDEuOTMxMDMiLCBcCi0gICAgICAgICAgIjAuMTMyODY3LCAwLjQyNjAzOSwgMC43MTQyNTIsIDAuOTE5NzI4LCAxLjI0ODE0LCAxLjUzNDg3LCAxLjk0NTMzIiwgXAotICAgICAgICAgICIwLjE0NjIwMywgMC40Mzk1MDUsIDAuNzI3ODEyLCAwLjkzMzI3OSwgMS4yNjE1MSwgMS41NDgzOCwgMS45NTgxMyIsIFwKLSAgICAgICAgICAiMC4xNjc4ODUsIDAuNDYxMDAyLCAwLjc0OTI5NywgMC45NTQ2NzgsIDEuMjgzMjUsIDEuNTcwMjgsIDEuOTc5ODYiLCBcCi0gICAgICAgICAgIjAuMTg2NTksIDAuNDc4MzIsIDAuNzY4MzgxLCAwLjk3Mzc1LCAxLjMwMjEsIDEuNTg5MiwgMS45OTkyNCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE0NDYwMywgMC42OTQ1NTEsIDEuMjQ0MTYsIDEuNjM1NCwgMi4yNjMwNCwgMi44MTA2MSwgMy41OTMyOSIsIFwKLSAgICAgICAgICAiMC4xNDQ0MzIsIDAuNjk0NDQ3LCAxLjI0MzYxLCAxLjYzNTI5LCAyLjI2MjE1LCAyLjgxMDU4LCAzLjU5MzY5IiwgXAotICAgICAgICAgICIwLjE0NDQzMSwgMC42OTQ5OTgsIDEuMjQzMzYsIDEuNjM2MDcsIDIuMjYyMTcsIDIuODExMzUsIDMuNTk0NSIsIFwKLSAgICAgICAgICAiMC4xNDQ5NjUsIDAuNjk0NDE2LCAxLjI0MzQyLCAxLjYzNjA3LCAyLjI2MzA0LCAyLjgxMTQ1LCAzLjU5NTExIiwgXAotICAgICAgICAgICIwLjE0NjQ2MywgMC42OTUwMTQsIDEuMjQ0MTYsIDEuNjM1OTUsIDIuMjYxODEsIDIuODEwNTMsIDMuNTkzNjQiLCBcCi0gICAgICAgICAgIjAuMTUxNzUyLCAwLjY5NDc4OSwgMS4yNDMxLCAxLjYzNTM0LCAyLjI2MjI3LCAyLjgxMTQ2LCAzLjU5NDcyIiwgXAotICAgICAgICAgICIwLjE1NzM2OSwgMC42OTQ5ODcsIDEuMjQ0MTUsIDEuNjM2MDUsIDIuMjYxODIsIDIuODEwNDIsIDMuNTkzMTMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTE5MDA2LCAwLjUyNDc0NCwgMC45MzA1MDQsIDEuMjIwMTYsIDEuNjg0NDQsIDIuMDg5MzIsIDIuNjY4NTUiLCBcCi0gICAgICAgICAgIjAuMTMwNzA1LCAwLjUzNjc2LCAwLjk0MjQ3NSwgMS4yMzIzNSwgMS42OTY2OCwgMi4xMDE3NiwgMi42ODAyMyIsIFwKLSAgICAgICAgICAiMC4xNDQzMzEsIDAuNTUwNzE0LCAwLjk1NjUyNywgMS4yNDYyNiwgMS43MTA0OSwgMi4xMTU0MSwgMi42OTQ1NCIsIFwKLSAgICAgICAgICAiMC4xNTY4NTMsIDAuNTYzNTczLCAwLjk2OTYwNSwgMS4yNTkzNywgMS43MjI2OSwgMi4xMjg4NywgMi43MDc2OCIsIFwKLSAgICAgICAgICAiMC4xNjg5MzEsIDAuNTc1NjQ1LCAwLjk4MTUxNiwgMS4yNzEzOCwgMS43MzUzLCAyLjE0MTQ3LCAyLjcxOTk0IiwgXAotICAgICAgICAgICIwLjE4NzIwNCwgMC41OTQyNTEsIDEuMDAwMDYsIDEuMjg5NDksIDEuNzUzNDEsIDIuMTU4ODQsIDIuNzM4NyIsIFwKLSAgICAgICAgICAiMC4yMDI2MTIsIDAuNjA5NDkzLCAxLjAxNTI4LCAxLjMwNTA3LCAxLjc2ODk2LCAyLjE3NDM2LCAyLjc1NDE5Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTcxNzI5LCAwLjk1NDczOSwgMS43MzQ3MywgMi4yOTc0NCwgMy4xOTUwMiwgMy45NzkyNSwgNS4wODM5MiIsIFwKLSAgICAgICAgICAiMC4xNzE3MjEsIDAuOTUzNzIsIDEuNzM2MTgsIDIuMjk3NjQsIDMuMTg1NzUsIDMuOTc5ODEsIDUuMDk0NTYiLCBcCi0gICAgICAgICAgIjAuMTcxNzA1LCAwLjk1NDczNSwgMS43MzM4NCwgMi4yOTc0OCwgMy4xOTQ4NSwgMy45NzkxNywgNS4wODg0OCIsIFwKLSAgICAgICAgICAiMC4xNzIwNTksIDAuOTU0NzM3LCAxLjczODYsIDIuMjk4MDYsIDMuMTkyMTgsIDMuOTgwMTIsIDUuMDk2MDQiLCBcCi0gICAgICAgICAgIjAuMTcyMzI3LCAwLjk1MzcwMywgMS43MzgxMSwgMi4yOTMsIDMuMTg1MDYsIDMuOTY3MjYsIDUuMDk2NDQiLCBcCi0gICAgICAgICAgIjAuMTczNjI5LCAwLjk1Mjk5MywgMS43MzQ4LCAyLjI5NTM5LCAzLjE5MjcsIDMuOTcxMDgsIDUuMDgyNzgiLCBcCi0gICAgICAgICAgIjAuMTc1OTI2LCAwLjk1Mzc4NCwgMS43MzY0NCwgMi4yOTQ3NCwgMy4xOTI5MiwgMy45NzA5MiwgNS4wOTY5NSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5MDUsIDAuMzgzNDczLCAwLjY3MTY5MiwgMC44NzcwMTgsIDEuMjA1MzMsIDEuNDkyMjIsIDEuOTAyNzEiLCBcCi0gICAgICAgICAgIjAuMTAwNDU2LCAwLjM5MzQ1MSwgMC42ODE1NzYsIDAuODg3MDI0LCAxLjIxNTIzLCAxLjUwMjMzLCAxLjkxMjE4IiwgXAotICAgICAgICAgICIwLjExMzQwMSwgMC40MDY0NjYsIDAuNjk0NzI0LCAwLjkwMDEzMSwgMS4yMjgyOSwgMS41MTUyNSwgMS45MjU1NCIsIFwKLSAgICAgICAgICAiMC4xMjcxODYsIDAuNDIwMjQ4LCAwLjcwODUxNCwgMC45MTM5NzMsIDEuMjQyMDMsIDEuNTI5MjEsIDEuOTM4OTQiLCBcCi0gICAgICAgICAgIjAuMTM5NzQ4LCAwLjQzMjc3NCwgMC43MjA5MzQsIDAuOTI2NDMzLCAxLjI1NDg2LCAxLjU0MTYsIDEuOTUyMTUiLCBcCi0gICAgICAgICAgIjAuMTYyMDkzLCAwLjQ1Mzk2NSwgMC43NDM0NTcsIDAuOTQ3NjgxLCAxLjI3NjA4LCAxLjU2Mjg0LCAxLjk3MjYzIiwgXAotICAgICAgICAgICIwLjE4MTI2LCAwLjQ3MjUzNiwgMC43NjA3NzMsIDAuOTY2MTI4LCAxLjI5NDQzLCAxLjU4MTM2LCAxLjk5MTM1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTQ0ODE1LCAwLjY5NDU2MSwgMS4yNDQwOSwgMS42MzU0LCAyLjI2MzA4LCAyLjgxMDYxLCAzLjU5MzMiLCBcCi0gICAgICAgICAgIjAuMTQ0NjEyLCAwLjY5NDQ4LCAxLjI0Mjk5LCAxLjYzNjAyLCAyLjI2MjE3LCAyLjgxMDc5LCAzLjU5Mzc4IiwgXAotICAgICAgICAgICIwLjE0Mzk4OCwgMC42OTUwMiwgMS4yNDQyMiwgMS42MzYwMiwgMi4yNjIxNywgMi44MTEzOSwgMy41OTQ5MyIsIFwKLSAgICAgICAgICAiMC4xNDU2NDUsIDAuNjk0NDI5LCAxLjI0MzQ0LCAxLjYzNTkyLCAyLjI2MjExLCAyLjgxMDQxLCAzLjU5MzcxIiwgXAotICAgICAgICAgICIwLjE0OTUwMiwgMC42OTQ0ODIsIDEuMjQzMDcsIDEuNjM2MDMsIDIuMjYzMDMsIDIuODExNTEsIDMuNTk1MjIiLCBcCi0gICAgICAgICAgIjAuMTU3Mzc3LCAwLjY5NDQ3MiwgMS4yNDMxMSwgMS42MzYwNiwgMi4yNjMwMiwgMi44MTA0OSwgMy41OTM3MyIsIFwKLSAgICAgICAgICAiMC4xNjU5NTYsIDAuNjk0NTA3LCAxLjI0Mzk5LCAxLjYzNTg1LCAyLjI2MjA3LCAyLjgxMDUzLCAzLjU5MzY4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExNDA1NywgMC41MTkwMjcsIDAuOTIyODQ4LCAxLjIxMjI2LCAxLjY3MzcsIDIuMDc4NiwgMi42NTU1NCIsIFwKLSAgICAgICAgICAiMC4xMjQ0NTUsIDAuNTI5ODQ5LCAwLjkzMzkzNywgMS4yMjMxLCAxLjY4NDQ2LCAyLjA4OTM1LCAyLjY2NjM1IiwgXAotICAgICAgICAgICIwLjEzNzAzMywgMC41NDI1MjUsIDAuOTQ2NjUyLCAxLjIzNTU4LCAxLjY5Nzc5LCAyLjEwMTQ2LCAyLjY3ODk0IiwgXAotICAgICAgICAgICIwLjE0OTA2MywgMC41NTQ3MTIsIDAuOTU5MTk3LCAxLjI0ODExLCAxLjcwOTczLCAyLjExNDM1LCAyLjY5MTg1IiwgXAotICAgICAgICAgICIwLjE2MDg5MSwgMC41NjY1NjIsIDAuOTcxMDU0LCAxLjI1OTg4LCAxLjcyMTQ3LCAyLjEyNjUzLCAyLjcwMzQiLCBcCi0gICAgICAgICAgIjAuMTc5ODU0LCAwLjU4NTY1MiwgMC45OTAwMiwgMS4yNzkwNiwgMS43NDA4NywgMi4xNDQ4OSwgMi43MjIxOSIsIFwKLSAgICAgICAgICAiMC4xOTYyNDQsIDAuNjAyMTg3LCAxLjAwNjg4LCAxLjI5NTQsIDEuNzU3MTIsIDIuMTYxOTQsIDIuNzM4NTciKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNzk1NDUsIDAuOTU4NzExLCAxLjczNzIzLCAyLjI5ODQ5LCAzLjE4NywgMy45ODA1NiwgNS4wOTYxOSIsIFwKLSAgICAgICAgICAiMC4xNzk1MzcsIDAuOTU4MjEzLCAxLjczNjYyLCAyLjI5MjcsIDMuMTg2NiwgMy45Njc0LCA1LjA5NjQ1IiwgXAotICAgICAgICAgICIwLjE3OTU2NCwgMC45NTg3NDgsIDEuNzM5MjEsIDIuMjk3MzgsIDMuMTk0MDIsIDMuOTc5LCA1LjA4ODYiLCBcCi0gICAgICAgICAgIjAuMTc5NzUyLCAwLjk1ODA0NiwgMS43MzgxMywgMi4yOTI5NCwgMy4xOTI0MywgMy45NjgxNCwgNS4wOTcxOCIsIFwKLSAgICAgICAgICAiMC4xODA5NTQsIDAuOTU3OTMzLCAxLjczODIzLCAyLjI5MzE2LCAzLjE5MjU0LCAzLjk2NzE5LCA1LjA5NjM3IiwgXAotICAgICAgICAgICIwLjE4NDQ2MiwgMC45NTc5NCwgMS43Mzc3NSwgMi4yOTgxNCwgMy4xODg2MiwgMy45NzkyNiwgNS4wODc5NiIsIFwKLSAgICAgICAgICAiMC4xODkxNDcsIDAuOTU3OTI3LCAxLjczNjc4LCAyLjI5NDQ3LCAzLjE4OTIxLCAzLjk4MDE4LCA1LjA4NzE2Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQwOTYxLCAwLjE4Nzg2MywgMC4zMzM3ODksIDAuNDM3OTQ0LCAwLjYwNDY0OSwgMC43NTAyNDEsIDAuOTU4MzA2IiwgXAotICAgICAgICAgICIwLjA1MjYzMSwgMC4xOTk1OTEsIDAuMzQ1NTA0LCAwLjQ0OTY3MSwgMC42MTYxOTEsIDAuNzYxOTU3LCAwLjk2OTk4NyIsIFwKLSAgICAgICAgICAiMC4wNjc2NTEsIDAuMjE0MjE1LCAwLjM2MDE4OSwgMC40NjIzMjgsIDAuNjI5MDk5LCAwLjc3NDgxLCAwLjk4MjcyIiwgXAotICAgICAgICAgICIwLjA4Mjc2MywgMC4yMjkzMzcsIDAuMzc1MTIzLCAwLjQ3OTE5NywgMC42NDU0NzgsIDAuNzkxMTksIDAuOTk5Mzg2IiwgXAotICAgICAgICAgICIwLjA5Nzc5NCwgMC4yNDM3MiwgMC4zODk1MjIsIDAuNDkzNTQsIDAuNjYwMDU1LCAwLjgwNTg0NiwgMS4wMTI1OSIsIFwKLSAgICAgICAgICAiMC4xMTk5NzcsIDAuMjY4MjIxLCAwLjQxNDI0MiwgMC41MTg0NDMsIDAuNjg0OTQxLCAwLjgyOTI5MSwgMS4wMzczOSIsIFwKLSAgICAgICAgICAiMC4xMzc1MzYsIDAuMjg5MjY3LCAwLjQzMzkzOSwgMC41Mzc3NDcsIDAuNzA0MzY5LCAwLjg1MDE1NCwgMS4wNTc5OSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3MjYxMSwgMC4zNjE2MTUsIDAuNjUxMDU4LCAwLjg1Nzk1NCwgMS4xODg5LCAxLjQ3ODM3LCAxLjg5MjAzIiwgXAotICAgICAgICAgICIwLjA3MjU2LCAwLjM2MTU5NCwgMC42NTEwMDYsIDAuODU3NzM0LCAxLjE4ODksIDEuNDc4MTQsIDEuODkxNDQiLCBcCi0gICAgICAgICAgIjAuMDc1NDIxLCAwLjM2MTYwNywgMC42NTEwNzUsIDAuODU3OTA3LCAxLjE4ODcxLCAxLjQ3ODUsIDEuODkxOTkiLCBcCi0gICAgICAgICAgIjAuMDgwODEyLCAwLjM2MTYwMSwgMC42NTExNzUsIDAuODU3OTk0LCAxLjE4ODgxLCAxLjQ3ODQ4LCAxLjg5MTQyIiwgXAotICAgICAgICAgICIwLjA4NzYxNiwgMC4zNjE4MjMsIDAuNjUxMDM3LCAwLjg1Nzk5LCAxLjE4ODY0LCAxLjQ3Nzg0LCAxLjg5MTY3IiwgXAotICAgICAgICAgICIwLjEwMDY2MiwgMC4zNjQzMzYsIDAuNjUxMDA1LCAwLjg1NzgyOSwgMS4xODg0NywgMS40Nzg1NSwgMS44OTE4OSIsIFwKLSAgICAgICAgICAiMC4xMTMzNjMsIDAuMzY4NTQxLCAwLjY1MTM5MiwgMC44NTc5MDEsIDEuMTg4ODksIDEuNDc4MTYsIDEuODkyMDIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQzAiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDkzNzEzLCAwLjQ5ODcyMiwgMC45MDMxNjksIDEuMTkxNjYsIDEuNjUzNTUsIDIuMDU3NzQsIDIuNjM1NDIiLCBcCi0gICAgICAgICAgIjAuMTAyOTExLCAwLjUwODM5NSwgMC45MTI2NjUsIDEuMjAxMDksIDEuNjYyOTQsIDIuMDY3MTMsIDIuNjQ0MzEiLCBcCi0gICAgICAgICAgIjAuMTE0NjM2LCAwLjUyMDQzNSwgMC45MjQ4NywgMS4yMTQwNCwgMS42NzU4MywgMi4wODAyNCwgMi42NTcwNiIsIFwKLSAgICAgICAgICAiMC4xMjY5MTQsIDAuNTMyOTk1LCAwLjkzNzIyNCwgMS4yMjY0LCAxLjY4Nzk4LCAyLjA5MjI2LCAyLjY2OTg1IiwgXAotICAgICAgICAgICIwLjEzOTQ3LCAwLjU0NDgxMiwgMC45NDkzMzksIDEuMjM4MzYsIDEuNzAwNTEsIDIuMTAzNzUsIDIuNjgxMzUiLCBcCi0gICAgICAgICAgIjAuMTU5MjU2LCAwLjU2NDIzMSwgMC45Njg5MywgMS4yNTc3LCAxLjcxOTM1LCAyLjEyMzcxLCAyLjcwMDgzIiwgXAotICAgICAgICAgICIwLjE3NzAxNSwgMC41ODEyMDMsIDAuOTg1OTcsIDEuMjc0NzUsIDEuNzM3MjYsIDIuMTQwNTIsIDIuNzE4NTIiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNzkwNzMsIDAuOTU3OTQ0LCAxLjczODYyLCAyLjI5NDY5LCAzLjE5MjQ1LCAzLjk3OTI0LCA1LjA4MzYyIiwgXAotICAgICAgICAgICIwLjE3ODQyOCwgMC45NTc5MjksIDEuNzM3NzEsIDIuMjk4NTcsIDMuMTg4MzcsIDMuOTc4NDcsIDUuMDg3MjkiLCBcCi0gICAgICAgICAgIjAuMTc3NjczLCAwLjk1ODY5MSwgMS43MzY3LCAyLjI5MjMzLCAzLjE5Mzg3LCAzLjk4MDUyLCA1LjA5NjE0IiwgXAotICAgICAgICAgICIwLjE3OTk0MywgMC45NTgxNjcsIDEuNzM5MTYsIDIuMjk4NDYsIDMuMTg4ODUsIDMuOTc5NDgsIDUuMDgzMDMiLCBcCi0gICAgICAgICAgIjAuMTgzODk5LCAwLjk1ODY4NywgMS43MzgwNiwgMi4yOTg0NywgMy4xODQ2OSwgMy45Nzc5NSwgNS4wODgzNiIsIFwKLSAgICAgICAgICAiMC4xOTI3NTcsIDAuOTU4MDA1LCAxLjczNjUsIDIuMjk1MywgMy4xODgyNSwgMy45NzkzOSwgNS4wODc4IiwgXAotICAgICAgICAgICIwLjIwMjI1MiwgMC45NTg4LCAxLjczNjQxLCAyLjI5NDIzLCAzLjE5NDg2LCAzLjk3ODI1LCA1LjA4MzE1Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM1MjQ3LCAwLjE4MTA4OCwgMC4zMjY4MjMsIDAuNDMwOTI2LCAwLjU5NzQ3NSwgMC43NDM0NTIsIDAuOTUxNjYzIiwgXAotICAgICAgICAgICIwLjA0NzAxLCAwLjE5MzA5NSwgMC4zMzg4MzgsIDAuNDQyOTE0LCAwLjYwOTQ0NSwgMC43NTUxNTIsIDAuOTYzMjczIiwgXAotICAgICAgICAgICIwLjA2MjAyNCwgMC4yMDc3NDEsIDAuMzUxOTc4LCAwLjQ1NjA4MywgMC42MjI2LCAwLjc2ODM1NywgMC45NzY0NzkiLCBcCi0gICAgICAgICAgIjAuMDc3MTI5LCAwLjIyMzI3OCwgMC4zNjg4MjgsIDAuNDcyOTEsIDAuNjM5NTU1LCAwLjc4NTExNCwgMC45OTM0ODMiLCBcCi0gICAgICAgICAgIjAuMDkxNTYsIDAuMjM3NTcsIDAuMzgyOTgyLCAwLjQ4Njc5MywgMC42NTE2MjgsIDAuNzk3NDEzLCAxLjAwNTQxIiwgXAotICAgICAgICAgICIwLjExMjI3MywgMC4yNjE4NTEsIDAuNDA2ODExLCAwLjUxMDY3NywgMC42NzcwNTEsIDAuODIyNzc5LCAxLjAzMDc1IiwgXAotICAgICAgICAgICIwLjEyODU0OSwgMC4yODI5MDgsIDAuNDI3NDYzLCAwLjUzMTIyNSwgMC42OTc2MTcsIDAuODQzMzI1LCAxLjA1MTM4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY1NTU4LCAwLjM1NDQyNiwgMC42NDM3MTcsIDAuODUwNTQyLCAxLjE4MTc1LCAxLjQ3MTM0LCAxLjg4ODc5IiwgXAotICAgICAgICAgICIwLjA2NTgwOSwgMC4zNTQ0NDgsIDAuNjQzNzg4LCAwLjg1MDY3NSwgMS4xODE4NiwgMS40NzA4MywgMS44ODg3MSIsIFwKLSAgICAgICAgICAiMC4wNjk1ODgsIDAuMzU0Mzk3LCAwLjY0MzgyOSwgMC44NTA1MjQsIDEuMTgxNTYsIDEuNDcxNDcsIDEuODg0NTUiLCBcCi0gICAgICAgICAgIjAuMDc1NzYxLCAwLjM1NDQzMSwgMC42NDM3NSwgMC44NTA2MiwgMS4xODIxLCAxLjQ3MTU3LCAxLjg4ODAxIiwgXAotICAgICAgICAgICIwLjA4MzU4MSwgMC4zNTQ3MDMsIDAuNjQzODI2LCAwLjg1MDYxNywgMS4xODE1OCwgMS40NzI4MywgMS44ODU1MyIsIFwKLSAgICAgICAgICAiMC4wOTc4NTYsIDAuMzU3NSwgMC42NDM4NTUsIDAuODUwNjgyLCAxLjE4MTU0LCAxLjQ3MTMxLCAxLjg4NTUzIiwgXAotICAgICAgICAgICIwLjExMTYyMywgMC4zNjE5NzgsIDAuNjQ0MTk5LCAwLjg1MDQxMiwgMS4xODE2MSwgMS40NzEzMSwgMS44ODU1MiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMDcyMSwgMC4wMTA3MjIsIDAuMDEwNzIxLCAwLjAxMDcxNywgMC4wMTA3MTgsIDAuMDEwNzI1LCAwLjAxMDcxNCIsIFwKLSAgICAgICAgICAiMC4wMTA2ODUsIDAuMDEwNjk5LCAwLjAxMDcsIDAuMDEwNjk4LCAwLjAxMDY5NSwgMC4wMTA2OTksIDAuMDEwNjk4IiwgXAotICAgICAgICAgICIwLjAxMDY2MSwgMC4wMTA2OSwgMC4wMTA2OTMsIDAuMDEwNjkzLCAwLjAxMDY5MywgMC4wMTA2OTIsIDAuMDEwNjg5IiwgXAotICAgICAgICAgICIwLjAxMDY0OCwgMC4wMTA2ODcsIDAuMDEwNjksIDAuMDEwNjk2LCAwLjAxMDY5NSwgMC4wMTA2ODgsIDAuMDEwNjk2IiwgXAotICAgICAgICAgICIwLjAxMDYzMywgMC4wMTA2ODEsIDAuMDEwNjg2LCAwLjAxMDY4OSwgMC4wMTA2OSwgMC4wMTA2OTIsIDAuMDEwNjg2IiwgXAotICAgICAgICAgICIwLjAxMDYyMSwgMC4wMTA2NzQsIDAuMDEwNjgzLCAwLjAxMDY4NCwgMC4wMTA2ODYsIDAuMDEwNjg3LCAwLjAxMDY4NiIsIFwKLSAgICAgICAgICAiMC4wMTA2MTIsIDAuMDEwNjY4LCAwLjAxMDY3OSwgMC4wMTA2ODUsIDAuMDEwNjg0LCAwLjAxMDY4NCwgMC4wMTA2ODYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzU3MiwgMC4wMDM1NywgMC4wMDM1NjgsIDAuMDAzNTY3LCAwLjAwMzU2NCwgMC4wMDM1NjMsIDAuMDAzNTU5IiwgXAotICAgICAgICAgICIwLjAwMzQ5LCAwLjAwMzQ5MywgMC4wMDM0OTIsIDAuMDAzNDg4LCAwLjAwMzQ4NSwgMC4wMDM0ODUsIDAuMDAzNDg1IiwgXAotICAgICAgICAgICIwLjAwMzQ0OCwgMC4wMDM0NTksIDAuMDAzNDYsIDAuMDAzNDYxLCAwLjAwMzQ1NywgMC4wMDM0NTYsIDAuMDAzNDUzIiwgXAotICAgICAgICAgICIwLjAwMzQyMSwgMC4wMDM0NDYsIDAuMDAzNDQ3LCAwLjAwMzQ0OCwgMC4wMDM0NDQsIDAuMDAzNDQyLCAwLjAwMzQ0MSIsIFwKLSAgICAgICAgICAiMC4wMDM0MDMsIDAuMDAzNDM0LCAwLjAwMzQzOSwgMC4wMDM0NCwgMC4wMDM0MzgsIDAuMDAzNDM3LCAwLjAwMzQzNCIsIFwKLSAgICAgICAgICAiMC4wMDMzOCwgMC4wMDM0MjMsIDAuMDAzNDMxLCAwLjAwMzQyOSwgMC4wMDM0MzEsIDAuMDAzNDI5LCAwLjAwMzQyNyIsIFwKLSAgICAgICAgICAiMC4wMDMzNjcsIDAuMDAzNDAxLCAwLjAwMzQyMiwgMC4wMDM0MjUsIDAuMDAzNDI3LCAwLjAwMzQyNiwgMC4wMDM0MjQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDk0OTMsIDAuMDA5NTA0LCAwLjAwOTUwNywgMC4wMDk1MDcsIDAuMDA5NTA1LCAwLjAwOTUwNSwgMC4wMDk1MDQiLCBcCi0gICAgICAgICAgIjAuMDA5NDcsIDAuMDA5NTE2LCAwLjAwOTUyMiwgMC4wMDk1MjQsIDAuMDA5NTI1LCAwLjAwOTUyNSwgMC4wMDk1MjUiLCBcCi0gICAgICAgICAgIjAuMDA5NDMzLCAwLjAwOTUxMSwgMC4wMDk1MjEsIDAuMDA5NTI0LCAwLjAwOTUyMywgMC4wMDk1MjcsIDAuMDA5NTI5IiwgXAotICAgICAgICAgICIwLjAwOTQwMywgMC4wMDk1MDIsIDAuMDA5NTIxLCAwLjAwOTUyLCAwLjAwOTUyMywgMC4wMDk1MjQsIDAuMDA5NTI1IiwgXAotICAgICAgICAgICIwLjAwOTM3MiwgMC4wMDk0OTEsIDAuMDA5NTEzLCAwLjAwOTUxNSwgMC4wMDk1MTksIDAuMDA5NTI1LCAwLjAwOTUyNCIsIFwKLSAgICAgICAgICAiMC4wMDkzNTMsIDAuMDA5NDc1LCAwLjAwOTUsIDAuMDA5NTExLCAwLjAwOTUxNCwgMC4wMDk1MTksIDAuMDA5NTIxIiwgXAotICAgICAgICAgICIwLjAwOTMzNywgMC4wMDk0NjUsIDAuMDA5NDkyLCAwLjAwOTUwMSwgMC4wMDk1MSwgMC4wMDk1MTQsIDAuMDA5NTIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzU3MywgMC4wMDM1NzIsIDAuMDAzNTcxLCAwLjAwMzU3MSwgMC4wMDM1NjYsIDAuMDAzNTYzLCAwLjAwMzU2OCIsIFwKLSAgICAgICAgICAiMC4wMDM0ODUsIDAuMDAzNDkxLCAwLjAwMzQ5LCAwLjAwMzQ5LCAwLjAwMzQ4MywgMC4wMDM0ODUsIDAuMDAzNDg3IiwgXAotICAgICAgICAgICIwLjAwMzQzNywgMC4wMDM0NTUsIDAuMDAzNDU4LCAwLjAwMzQ1NSwgMC4wMDM0NTQsIDAuMDAzNDU0LCAwLjAwMzQ1MyIsIFwKLSAgICAgICAgICAiMC4wMDM0MDksIDAuMDAzNDQzLCAwLjAwMzQ0NiwgMC4wMDM0NDgsIDAuMDAzNDQ0LCAwLjAwMzQ0MywgMC4wMDM0NDMiLCBcCi0gICAgICAgICAgIjAuMDAzMzg1LCAwLjAwMzQyOCwgMC4wMDM0MzUsIDAuMDAzNDMzLCAwLjAwMzQzNSwgMC4wMDM0MzMsIDAuMDAzNDI5IiwgXAotICAgICAgICAgICIwLjAwMzM2NSwgMC4wMDM0MTYsIDAuMDAzNDI4LCAwLjAwMzQyNCwgMC4wMDM0MjYsIDAuMDAzNDI2LCAwLjAwMzQyMyIsIFwKLSAgICAgICAgICAiMC4wMDMzNTQsIDAuMDAzNDA3LCAwLjAwMzQxNiwgMC4wMDM0MiwgMC4wMDM0MiwgMC4wMDM0MiwgMC4wMDM0MiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwODYwNSwgMC4wMDg2MTQsIDAuMDA4NjE0LCAwLjAwODYxNCwgMC4wMDg2MTEsIDAuMDA4NjEsIDAuMDA4NjA3IiwgXAotICAgICAgICAgICIwLjAwODU2NywgMC4wMDg2MDQsIDAuMDA4NjA4LCAwLjAwODYwOSwgMC4wMDg2MDgsIDAuMDA4NjA4LCAwLjAwODYwNCIsIFwKLSAgICAgICAgICAiMC4wMDg1MzMsIDAuMDA4NTk0LCAwLjAwODYwMiwgMC4wMDg2MDMsIDAuMDA4NjAyLCAwLjAwODYwMiwgMC4wMDg2MDQiLCBcCi0gICAgICAgICAgIjAuMDA4NTA2LCAwLjAwODU4NCwgMC4wMDg1OTUsIDAuMDA4NTk4LCAwLjAwODYwMSwgMC4wMDg2MDIsIDAuMDA4NjAxIiwgXAotICAgICAgICAgICIwLjAwODQ5NiwgMC4wMDg1NzYsIDAuMDA4NTkxLCAwLjAwODU5NSwgMC4wMDg1OTcsIDAuMDA4NTk2LCAwLjAwODYiLCBcCi0gICAgICAgICAgIjAuMDA4NDc5LCAwLjAwODU2NCwgMC4wMDg1ODMsIDAuMDA4NTg5LCAwLjAwODU5NCwgMC4wMDg1OTcsIDAuMDA4NTk2IiwgXAotICAgICAgICAgICIwLjAwODQ2OSwgMC4wMDg1NTQsIDAuMDA4NTc4LCAwLjAwODU4NCwgMC4wMDg1OSwgMC4wMDg1OTEsIDAuMDA4NTk0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDE2NjUsIDAuMDAxNjY5LCAwLjAwMTY2OSwgMC4wMDE2NjgsIDAuMDAxNjY4LCAwLjAwMTY2OCwgMC4wMDE2NjciLCBcCi0gICAgICAgICAgIjAuMDAxNjI5LCAwLjAwMTY2MywgMC4wMDE2NjcsIDAuMDAxNjY4LCAwLjAwMTY2OCwgMC4wMDE2NjgsIDAuMDAxNjY4IiwgXAotICAgICAgICAgICIwLjAwMTU4NSwgMC4wMDE2NTQsIDAuMDAxNjYzLCAwLjAwMTY2NSwgMC4wMDE2NjcsIDAuMDAxNjY4LCAwLjAwMTY2OSIsIFwKLSAgICAgICAgICAiMC4wMDE1NDYsIDAuMDAxNjQzLCAwLjAwMTY1OCwgMC4wMDE2NjIsIDAuMDAxNjY1LCAwLjAwMTY2NywgMC4wMDE2NjciLCBcCi0gICAgICAgICAgIjAuMDAxNTI0LCAwLjAwMTYzNiwgMC4wMDE2NTMsIDAuMDAxNjU4LCAwLjAwMTY2MiwgMC4wMDE2NjUsIDAuMDAxNjY2IiwgXAotICAgICAgICAgICIwLjAwMTQ5MywgMC4wMDE2MjEsIDAuMDAxNjQ1LCAwLjAwMTY1MSwgMC4wMDE2NTcsIDAuMDAxNjYsIDAuMDAxNjYzIiwgXAotICAgICAgICAgICIwLjAwMTQ3NSwgMC4wMDE2MSwgMC4wMDE2MzcsIDAuMDAxNjQ2LCAwLjAwMTY1MywgMC4wMDE2NTgsIDAuMDAxNjYxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQzAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2ODY2LCAwLjAwNjg4MSwgMC4wMDY4ODEsIDAuMDA2ODgsIDAuMDA2ODc4LCAwLjAwNjg3NywgMC4wMDY4NzYiLCBcCi0gICAgICAgICAgIjAuMDA2ODAzLCAwLjAwNjg2NCwgMC4wMDY4NjksIDAuMDA2ODczLCAwLjAwNjg3NCwgMC4wMDY4NjgsIDAuMDA2ODcxIiwgXAotICAgICAgICAgICIwLjAwNjc1MSwgMC4wMDY4NDcsIDAuMDA2ODYyLCAwLjAwNjg2NSwgMC4wMDY4NjksIDAuMDA2ODY3LCAwLjAwNjg2OSIsIFwKLSAgICAgICAgICAiMC4wMDY3MTksIDAuMDA2ODMyLCAwLjAwNjg1MywgMC4wMDY4NTYsIDAuMDA2ODYxLCAwLjAwNjg2NiwgMC4wMDY4NjciLCBcCi0gICAgICAgICAgIjAuMDA2NzAxLCAwLjAwNjgyLCAwLjAwNjg0MiwgMC4wMDY4NTEsIDAuMDA2ODU2LCAwLjAwNjg1OSwgMC4wMDY4NjIiLCBcCi0gICAgICAgICAgIjAuMDA2NjgzLCAwLjAwNjgsIDAuMDA2ODMsIDAuMDA2ODQsIDAuMDA2ODQ5LCAwLjAwNjg1MywgMC4wMDY4NTUiLCBcCi0gICAgICAgICAgIjAuMDA2Njc1LCAwLjAwNjc4NywgMC4wMDY4MiwgMC4wMDY4MzIsIDAuMDA2ODQxLCAwLjAwNjg0NywgMC4wMDY4NSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwMjc5LCAwLjAwMDMwNCwgMC4wMDAzMDcsIDAuMDAwMzA4LCAwLjAwMDMwOCwgMC4wMDAzMDksIDAuMDAwMzA5IiwgXAotICAgICAgICAgICIwLjAwMDI2MiwgMC4wMDAzNjIsIDAuMDAwMzczLCAwLjAwMDM3NywgMC4wMDAzOCwgMC4wMDAzODEsIDAuMDAwMzgzIiwgXAotICAgICAgICAgICIwLjAwMDIxLCAwLjAwMDM2NywgMC4wMDAzOSwgMC4wMDAzOTYsIDAuMDAwNDAyLCAwLjAwMDQwNSwgMC4wMDA0MDciLCBcCi0gICAgICAgICAgIjAuMDAwMTY1LCAwLjAwMDM1NywgMC4wMDAzODQsIDAuMDAwMzkyLCAwLjAwMDQsIDAuMDAwNDAzLCAwLjAwMDQwNyIsIFwKLSAgICAgICAgICAiMC4wMDAxMjksIDAuMDAwMzQ0LCAwLjAwMDM3OSwgMC4wMDAzOTIsIDAuMDAwNDAyLCAwLjAwMDQwOCwgMC4wMDA0MTMiLCBcCi0gICAgICAgICAgIjAuMDAwMDg5LCAwLjAwMDMyNywgMC4wMDAzNywgMC4wMDAzODMsIDAuMDAwMzk2LCAwLjAwMDQwMywgMC4wMDA0MTIiLCBcCi0gICAgICAgICAgIjAuMDAwMDY5LCAwLjAwMDMxMSwgMC4wMDAzNjEsIDAuMDAwMzc3LCAwLjAwMDM5MiwgMC4wMDA0LCAwLjAwMDQwNyIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IEFPSTIxWDEgKgotICogLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoQU9JMjFYMSkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjA4MTIyMjU7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA4NjQwNDM7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwODYwMjc2OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDg2NDA0MzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAzMDYsIDAuMDAwMzA2LCAwLjAwMDMwNiwgMC4wMDAzMDYsIDAuMDAwMzA2LCAwLjAwMDMwNiwgMC4wMDAzMDYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAzMTgsIDAuMDAwMzEsIDAuMDAwMzA5LCAwLjAwMDMwOCwgMC4wMDAzMDgsIDAuMDAwMzA4LCAwLjAwMDMwOCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQTEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDkxMzEyOTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA5MDYwODI7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwOTEzMTI5OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDE2OSwgMC4wMDAxNjgsIDAuMDAwMTY4LCAwLjAwMDE2OCwgMC4wMDAxNjgsIDAuMDAwMTY4LCAwLjAwMDE2OCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDM0NywgMC4wMDAzNDgsIDAuMDAwMzQ4LCAwLjAwMDM0OCwgMC4wMDAzNDgsIDAuMDAwMzQ4LCAwLjAwMDM0OCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQjApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDkwMDEzOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDg5OTk0MzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA5MDAxMzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAwNzQsIDAuMDAwMDc0LCAwLjAwMDA3NCwgMC4wMDAwNzQsIDAuMDAwMDc0LCAwLjAwMDA3NCwgMC4wMDAwNzQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA1MTQsIDAuMDAwNTE0LCAwLjAwMDUxNCwgMC4wMDA1MTQsIDAuMDAwNTE0LCAwLjAwMDUxNCwgMC4wMDA1MTQiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4wNjcwODMxOwotICAgIGZ1bmN0aW9uIDogIighKChBMCBBMSkrQjApKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTAiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE4NzA4NiwgMC4yNzY1MTcsIDAuNzgyOTMxLCAxLjIyOTg5LCAxLjgyNTc2LCAzLjAxNjEsIDMuNzYwMDciLCBcCi0gICAgICAgICAgIjAuMTk4ODU3LCAwLjI4ODMyNSwgMC43OTQ4NzYsIDEuMjQxMzUsIDEuODM3NTIsIDMuMDI3OTMsIDMuNzcxODkiLCBcCi0gICAgICAgICAgIjAuMjEzMDE2LCAwLjMwMjQ5MSwgMC44MDkxNjUsIDEuMjU1NTgsIDEuODUxNDksIDMuMDQyMTcsIDMuNzg2MSIsIFwKLSAgICAgICAgICAiMC4yMjYwNzcsIDAuMzE1NjEzLCAwLjgyMjA4OSwgMS4yNjg5NSwgMS44NjQ2LCAzLjA1NTQ0LCAzLjc5OTI0IiwgXAotICAgICAgICAgICIwLjIzODk4NCwgMC4zMjg1MTEsIDAuODM0OTkxLCAxLjI4MjA5LCAxLjg3NzU1LCAzLjA2ODcxLCAzLjgxMjAyIiwgXAotICAgICAgICAgICIwLjI1ODk5NiwgMC4zNDg0NTUsIDAuODU1MjA5LCAxLjMwMjQxLCAxLjg5NzksIDMuMDg4MjcsIDMuODMyMjciLCBcCi0gICAgICAgICAgIjAuMjc2NDAzLCAwLjM2NTk1OSwgMC44NzI3NTUsIDEuMzE5NTcsIDEuOTE1MzUsIDMuMTA2MywgMy44NTAwOSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMjkwNTEsIDAuNTA0MTE3LCAxLjQ5MzI1LCAyLjM2NDkzLCAzLjUyOTEzLCA1Ljg1NTU0LCA3LjMxMTAxIiwgXAotICAgICAgICAgICIwLjMyOTAyMiwgMC41MDM2MTEsIDEuNDkyOTMsIDIuMzY2MDksIDMuNTI4MzEsIDUuODU1MzMsIDcuMzExMDMiLCBcCi0gICAgICAgICAgIjAuMzI5MDYxLCAwLjUwNDA2NiwgMS40OTI4LCAyLjM2NjEyLCAzLjUyODQsIDUuODU2MDksIDcuMzA5OTkiLCBcCi0gICAgICAgICAgIjAuMzI5MDQsIDAuNTAzNTU2LCAxLjQ5MzM2LCAyLjM2NTQ0LCAzLjUyODQxLCA1Ljg1Nzc5LCA3LjMxMDMzIiwgXAotICAgICAgICAgICIwLjMyOTM5OSwgMC41MDM2MTEsIDEuNDkyNSwgMi4zNjQ4NCwgMy41Mjg0OSwgNS44NTY3MywgNy4zMDk5MyIsIFwKLSAgICAgICAgICAiMC4zMzA3NDEsIDAuNTAzNzA2LCAxLjQ5MzM3LCAyLjM2NTExLCAzLjUyOTY3LCA1Ljg1Nzk4LCA3LjMxMTY5IiwgXAotICAgICAgICAgICIwLjMzMzI1MiwgMC41MDQ1NTcsIDEuNDkyOSwgMi4zNjQ4OCwgMy41Mjg0MiwgNS44NTg2NSwgNy4zMTIyOCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMDg2OTYsIDAuMzA3MTEzLCAwLjg2MjM5NCwgMS4zNTEzNSwgMi4wMDM1NCwgMy4zMDU5OCwgNC4xMTkwNiIsIFwKLSAgICAgICAgICAiMC4yMjAwMDgsIDAuMzE4NDI5LCAwLjg3MzY1NywgMS4zNjI1OCwgMi4wMTQ4NiwgMy4zMTc4MywgNC4xMzE1NiIsIFwKLSAgICAgICAgICAiMC4yMzM1MjgsIDAuMzMxOTc1LCAwLjg4NzMyMywgMS4zNzU5MSwgMi4wMjg0MywgMy4zMzE1NywgNC4xNDUyOSIsIFwKLSAgICAgICAgICAiMC4yNDcwNCwgMC4zNDU0ODEsIDAuOTAwNTU5LCAxLjM5MDIzLCAyLjA0MTk1LCAzLjM0NTMyLCA0LjE1ODg1IiwgXAotICAgICAgICAgICIwLjI1OTgxMSwgMC4zNTkwNDYsIDAuOTE0NDMyLCAxLjQwMzc4LCAyLjA1NTkzLCAzLjM1ODMxLCA0LjE3MjciLCBcCi0gICAgICAgICAgIjAuMjgxODgsIDAuMzc5NDYxLCAwLjkzNTg4NywgMS40MjUsIDIuMDc3MjQsIDMuMzgwMzMsIDQuMTkzOTIiLCBcCi0gICAgICAgICAgIjAuMzAwNjg3LCAwLjM5OTIxOSwgMC45NTUwNzcsIDEuNDQ0MjQsIDIuMDk1NjcsIDMuMzk5MDEsIDQuMjEzMzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzYxOTg1LCAwLjU0ODkzNSwgMS42MDc3MywgMi41Mzk1LCAzLjc4NDMsIDYuMjc2NTksIDcuODI1OTQiLCBcCi0gICAgICAgICAgIjAuMzYxODE4LCAwLjU0ODg1MywgMS42MDc2MSwgMi41Mzk1NywgMy43ODQyNCwgNi4yNzM4MiwgNy44MjUyNCIsIFwKLSAgICAgICAgICAiMC4zNjE5NDgsIDAuNTQ4ODQsIDEuNjA3NjYsIDIuNTQwNjEsIDMuNzgzMjcsIDYuMjc0ODIsIDcuODI2MzYiLCBcCi0gICAgICAgICAgIjAuMzYxODg5LCAwLjU0ODgyLCAxLjYwNzAxLCAyLjU0MDExLCAzLjc4MzI3LCA2LjI3MjUzLCA3LjgyNjMyIiwgXAotICAgICAgICAgICIwLjM2MTgsIDAuNTQ5MTE5LCAxLjYwNzU4LCAyLjU0MTAxLCAzLjc4NDIsIDYuMjcyMzQsIDcuODI2NCIsIFwKLSAgICAgICAgICAiMC4zNjMwNTQsIDAuNTQ4ODM1LCAxLjYwNjg3LCAyLjU0MDgyLCAzLjc4NDIsIDYuMjcyOTIsIDcuODI2ODEiLCBcCi0gICAgICAgICAgIjAuMzY1NTksIDAuNTQ5NTU2LCAxLjYwNjY0LCAyLjUzOTUyLCAzLjc4MzgsIDYuMjcyNCwgNy44MjcxMyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTgwODczLCAwLjI2OTg3NSwgMC43NzI5OTYsIDEuMjE3MjUsIDEuODEwMTksIDIuOTkzNTQsIDMuNzMyNjQiLCBcCi0gICAgICAgICAgIjAuMTkyODUxLCAwLjI4MTg5MSwgMC43ODUwMzUsIDEuMjI5MzIsIDEuODIyMjUsIDMuMDA1MDgsIDMuNzQ0NzQiLCBcCi0gICAgICAgICAgIjAuMjA2OTIyLCAwLjI5NTgwNywgMC43OTkzMTYsIDEuMjQzNTgsIDEuODM2NTgsIDMuMDE5MTcsIDMuNzU4OTIiLCBcCi0gICAgICAgICAgIjAuMjIwMDQ2LCAwLjMwOTAxOCwgMC44MTI0MDQsIDEuMjU3MTYsIDEuODQ4ODksIDMuMDMyNzcsIDMuNzcyMjIiLCBcCi0gICAgICAgICAgIjAuMjMyODgyLCAwLjMyMTg4MiwgMC44MjU4MzQsIDEuMjcwMTQsIDEuODYxOTcsIDMuMDQ1MzksIDMuNzg1MTYiLCBcCi0gICAgICAgICAgIjAuMjUyODg5LCAwLjM0MTkwMSwgMC44NDU5OTUsIDEuMjg5OTIsIDEuODgyNDEsIDMuMDY1NzMsIDMuODA1MzUiLCBcCi0gICAgICAgICAgIjAuMjcwMzExLCAwLjM1OTMzLCAwLjg2MzA4MiwgMS4zMDc1MiwgMS44OTk3NywgMy4wODM2OCwgMy44MjMxNiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMjM0MzgsIDAuNDk1MDU4LCAxLjQ4MzE2LCAyLjM1NCwgMy41MDMwNiwgNS44MTQ2NCwgNy4yNjIwOSIsIFwKLSAgICAgICAgICAiMC4zMjM0NzQsIDAuNDk0OTc2LCAxLjQ4MzE5LCAyLjM1NDAxLCAzLjUwMzI2LCA1LjgyMDc4LCA3LjI2MTgiLCBcCi0gICAgICAgICAgIjAuMzIyNDk0LCAwLjQ5NjI3NywgMS40ODMzNiwgMi4zNTQxNywgMy41MDMwMSwgNS44MTk5NiwgNy4yNjE3OCIsIFwKLSAgICAgICAgICAiMC4zMjI0NjMsIDAuNDk2Njk3LCAxLjQ4MTkzLCAyLjM0NTkxLCAzLjUyNDE1LCA1LjgxNjY5LCA3LjI2MTU2IiwgXAotICAgICAgICAgICIwLjMyMjI4MSwgMC40OTgwNTUsIDEuNDc4NDMsIDIuMzQ2MjYsIDMuNTA1ODQsIDUuODIwMSwgNy4yNjE4IiwgXAotICAgICAgICAgICIwLjMyMzg3NywgMC40OTY2MjYsIDEuNDc4NDQsIDIuMzU0MTYsIDMuNTAzMzEsIDUuODIyNSwgNy4yNjE1OCIsIFwKLSAgICAgICAgICAiMC4zMjU5MTcsIDAuNDk3NzQ1LCAxLjQ4MjA0LCAyLjM1NDMzLCAzLjUyNDMzLCA1LjgxODExLCA3LjI2MjA0Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIwNDQxNSwgMC4zMDI4MTUsIDAuODU4MDM3LCAxLjM0NzI4LCAxLjk5ODY2LCAzLjMwMjA4LCA0LjExNjEyIiwgXAotICAgICAgICAgICIwLjIxNDQ4NSwgMC4zMTI5MzYsIDAuODY3ODg0LCAxLjM1NzYzLCAyLjAwOTgyLCAzLjMxMjE0LCA0LjEyNTg5IiwgXAotICAgICAgICAgICIwLjIyNzYxNywgMC4zMjYxLCAwLjg4MTE2LCAxLjM3MDEyLCAyLjAyMjY5LCAzLjMyNTkzLCA0LjEzOTYyIiwgXAotICAgICAgICAgICIwLjI0MDY4OSwgMC4zMzkxMzIsIDAuODk0MTY5LCAxLjM4MzEzLCAyLjAzNTgzLCAzLjMzODUxLCA0LjE1MjQ2IiwgXAotICAgICAgICAgICIwLjI1Mzg3LCAwLjM1MjM0MywgMC45MDc1MjIsIDEuMzk3MTcsIDIuMDQ5MDgsIDMuMzUyMjksIDQuMTY1OTYiLCBcCi0gICAgICAgICAgIjAuMjc1MDg1LCAwLjM3MzU1OCwgMC45Mjg3MTUsIDEuNDE4NCwgMi4wNjk2OCwgMy4zNzI5OCwgNC4xODcwMiIsIFwKLSAgICAgICAgICAiMC4yOTM2NDgsIDAuMzkyMDksIDAuOTQ3MzY1LCAxLjQzNjQ2LCAyLjA4ODE5LCAzLjM5MTUzLCA0LjIwNTc4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjM2MTk5NSwgMC41NDg4NjIsIDEuNjA2NzEsIDIuNTQwMzcsIDMuNzg0ODksIDYuMjcyMjEsIDcuODI3MTkiLCBcCi0gICAgICAgICAgIjAuMzYxNzc1LCAwLjU0OTE2OCwgMS42MDY5OCwgMi41Mzk4LCAzLjc4NDI0LCA2LjI3MjY2LCA3LjgyNjc3IiwgXAotICAgICAgICAgICIwLjM2MjAxNywgMC41NDg4NzcsIDEuNjA3NiwgMi41NCwgMy43ODQxLCA2LjI3MjEyLCA3LjgyNzIxIiwgXAotICAgICAgICAgICIwLjM2MTc5NCwgMC41NDg5MzksIDEuNjA2ODEsIDIuNTQwNTksIDMuNzg0MjgsIDYuMjcyNTUsIDcuODI2OTMiLCBcCi0gICAgICAgICAgIjAuMzYyMTQ0LCAwLjU0ODcxNiwgMS42MDY4NCwgMi41NDAxMSwgMy43ODQwNiwgNi4yNzEwNSwgNy44MjY0OSIsIFwKLSAgICAgICAgICAiMC4zNjQ2NDQsIDAuNTQ4ODY1LCAxLjYwNzAxLCAyLjU0MDM1LCAzLjc4NDc3LCA2LjI3NjUsIDcuODI2OTciLCBcCi0gICAgICAgICAgIjAuMzY5Mzg5LCAwLjU1MDg4NCwgMS42MDY3NiwgMi41Mzk2NiwgMy43ODM1NywgNi4yNzA2NCwgNy44MjY2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNzI5NzEsIDAuMjYyMzg3LCAwLjc2OTE3OSwgMS4yMTU5OCwgMS44MTE5LCAzLjAwMjA4LCAzLjc0NjA2IiwgXAotICAgICAgICAgICIwLjE4MzMxNCwgMC4yNzI3OTMsIDAuNzc5NjE4LCAxLjIyNjQsIDEuODIxODMsIDMuMDEzMjEsIDMuNzU2NDEiLCBcCi0gICAgICAgICAgIjAuMTk2MzU2LCAwLjI4NTg4OSwgMC43OTI0MTIsIDEuMjM5OCwgMS44MzUyNiwgMy4wMjU3NCwgMy43Njk3OCIsIFwKLSAgICAgICAgICAiMC4yMDkzMjUsIDAuMjk4OTQsIDAuODA1Njg2LCAxLjI1MjE3LCAxLjg0ODE4LCAzLjAzOTA5LCAzLjc4MyIsIFwKLSAgICAgICAgICAiMC4yMjIzNTksIDAuMzExOTY3LCAwLjgxODY1MywgMS4yNjU0OSwgMS44NjEzMSwgMy4wNTIwMywgMy43OTU5NiIsIFwKLSAgICAgICAgICAiMC4yNDMyOTMsIDAuMzMyODc4LCAwLjgzOTgwMywgMS4yODY2LCAxLjg4MjE0LCAzLjA3Mjg0LCAzLjgxNjg1IiwgXAotICAgICAgICAgICIwLjI2MTc0NywgMC4zNTEyNDEsIDAuODU4MTYyLCAxLjMwNDg4LCAxLjkwMDUyLCAzLjA5MTk3LCAzLjgzNTQ2Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMyOTI4MiwgMC41MDMzMjEsIDEuNDkyNDMsIDIuMzY0ODMsIDMuNTI4NzUsIDUuODU2OTQsIDcuMzExMDUiLCBcCi0gICAgICAgICAgIjAuMzI5MDkzLCAwLjUwMzQzNCwgMS40OTI5MiwgMi4zNjU2OCwgMy41Mjg1MiwgNS44NTgyNCwgNy4zMTA2NCIsIFwKLSAgICAgICAgICAiMC4zMjkwMDcsIDAuNTAzNDM3LCAxLjQ5MzI0LCAyLjM2NTE1LCAzLjUyODM0LCA1Ljg1OTQ4LCA3LjMxMjEiLCBcCi0gICAgICAgICAgIjAuMzI4Njk0LCAwLjUwMzgwOCwgMS40OTI3NywgMi4zNjUwOCwgMy41MjgzOSwgNS44NTkwOCwgNy4zMTA3MyIsIFwKLSAgICAgICAgICAiMC4zMjk3MTMsIDAuNTAzNTM5LCAxLjQ5MjU3LCAyLjM2NjMxLCAzLjUyODM2LCA1Ljg1OTg1LCA3LjMxMjA4IiwgXAotICAgICAgICAgICIwLjMzNDIxMiwgMC41MDQxNTQsIDEuNDkyMzcsIDIuMzY1NTEsIDMuNTMsIDUuODU3OTgsIDcuMzExNDEiLCBcCi0gICAgICAgICAgIjAuMzQwMjMsIDAuNTA3MTY3LCAxLjQ5MjM4LCAyLjM2NDk3LCAzLjUyODQzLCA1Ljg1NTk0LCA3LjMxMjE5Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5NTYyMiwgMC4xNDUwOTIsIDAuNDI0ODk2LCAwLjY3MjAxNiwgMS4wMDExMywgMS42NTk3NiwgMi4wNzE5NyIsIFwKLSAgICAgICAgICAiMC4xMDc1MSwgMC4xNTcwMDksIDAuNDM2ODYxLCAwLjY4Mzc5OCwgMS4wMTI5OCwgMS42NzEzOSwgMi4wODI2MSIsIFwKLSAgICAgICAgICAiMC4xMjIxOSwgMC4xNzE1NjMsIDAuNDQ5MDE2LCAwLjY5NjY2MywgMS4wMjU4NCwgMS42ODQ0MSwgMi4wOTYyMyIsIFwKLSAgICAgICAgICAiMC4xMzc0MjcsIDAuMTg2MzE0LCAwLjQ2NjMwMiwgMC43MTMxOTIsIDEuMDQyODUsIDEuNzAxOTUsIDIuMTEyNjMiLCBcCi0gICAgICAgICAgIjAuMTUyMzIxLCAwLjIwMTc4OSwgMC40ODA5MzMsIDAuNzI3ODMxLCAxLjA1NDIsIDEuNzEyNzYsIDIuMTI0NjciLCBcCi0gICAgICAgICAgIjAuMTc2MzA3LCAwLjIyNTcxNSwgMC41MDQ0NTUsIDAuNzUxMzI4LCAxLjA3NjU0LCAxLjczNDc5LCAyLjE0Njk0IiwgXAotICAgICAgICAgICIwLjE5NzcxOCwgMC4yNDY3MTEsIDAuNTI1MTg3LCAwLjc3MjEzNywgMS4xMDE0OCwgMS43NTQ2MiwgMi4xNjYyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE4NDE3MSwgMC4yODE5NDMsIDAuODM2MDQzLCAxLjMyNTY1LCAxLjk4MDIyLCAzLjI4ODA2LCA0LjEwMTMxIiwgXAotICAgICAgICAgICIwLjE4NDE3OSwgMC4yODE5MjMsIDAuODM2MTEyLCAxLjMyNTY0LCAxLjk3NzgyLCAzLjI4NTM4LCA0LjEwNDciLCBcCi0gICAgICAgICAgIjAuMTg0MjA4LCAwLjI4MTkwMywgMC44MzYxMDQsIDEuMzI1NzgsIDEuOTgxOTksIDMuMjg3NzIsIDQuMTAzMjciLCBcCi0gICAgICAgICAgIjAuMTg1ODA4LCAwLjI4MTk2NiwgMC44MzY1MDgsIDEuMzI2NjQsIDEuOTc5MDYsIDMuMjg0NiwgNC4xMDYzMiIsIFwKLSAgICAgICAgICAiMC4xODkyOTEsIDAuMjgzMjIxLCAwLjgzNjE5OCwgMS4zMjU5MSwgMS45ODExMSwgMy4yODUyMywgNC4xMDc1MyIsIFwKLSAgICAgICAgICAiMC4xOTcxOTMsIDAuMjg3OTc5LCAwLjgzNjI1MywgMS4zMjU3MiwgMS45NzkwNCwgMy4yODQ1MSwgNC4xMDg5IiwgXAotICAgICAgICAgICIwLjIwNTM5NCwgMC4yOTM5NDIsIDAuODM2MTg4LCAxLjMyNTMzLCAxLjk4MjU1LCAzLjI4NzYsIDQuMTA2MDYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyMTg4LCAwLjAwMjE4OCwgMC4wMDIxODgsIDAuMDAyMTg2LCAwLjAwMjE5LCAwLjAwMjE4NiwgMC4wMDIxODUiLCBcCi0gICAgICAgICAgIjAuMDAyMTgyLCAwLjAwMjE4MiwgMC4wMDIxODMsIDAuMDAyMTgzLCAwLjAwMjE4MSwgMC4wMDIxODIsIDAuMDAyMTgiLCBcCi0gICAgICAgICAgIjAuMDAyMTc5LCAwLjAwMjE4LCAwLjAwMjE4MiwgMC4wMDIxODEsIDAuMDAyMTgxLCAwLjAwMjE4LCAwLjAwMjE3OSIsIFwKLSAgICAgICAgICAiMC4wMDIxNzYsIDAuMDAyMTc4LCAwLjAwMjE4MSwgMC4wMDIxODEsIDAuMDAyMTgxLCAwLjAwMjE4LCAwLjAwMjE3OSIsIFwKLSAgICAgICAgICAiMC4wMDIxNzUsIDAuMDAyMTc3LCAwLjAwMjE4LCAwLjAwMjE4LCAwLjAwMjE4MiwgMC4wMDIxODEsIDAuMDAyMTgiLCBcCi0gICAgICAgICAgIjAuMDAyMTcyLCAwLjAwMjE3NSwgMC4wMDIxOCwgMC4wMDIxOCwgMC4wMDIxOCwgMC4wMDIxNzksIDAuMDAyMTc4IiwgXAotICAgICAgICAgICIwLjAwMjE3MSwgMC4wMDIxNzQsIDAuMDAyMTc5LCAwLjAwMjE3OSwgMC4wMDIxOCwgMC4wMDIxNzksIDAuMDAyMTc5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwNTY4LCAwLjAwMDU2OCwgMC4wMDA1NjgsIDAuMDAwNTY3LCAwLjAwMDU2NiwgMC4wMDA1NjQsIDAuMDAwNTY0IiwgXAotICAgICAgICAgICIwLjAwMDU1MywgMC4wMDA1NTMsIDAuMDAwNTU0LCAwLjAwMDU1MywgMC4wMDA1NTIsIDAuMDAwNTUxLCAwLjAwMDU1IiwgXAotICAgICAgICAgICIwLjAwMDU0NiwgMC4wMDA1NDcsIDAuMDAwNTQ5LCAwLjAwMDU0OSwgMC4wMDA1NSwgMC4wMDA1NDcsIDAuMDAwNTQ1IiwgXAotICAgICAgICAgICIwLjAwMDU0MSwgMC4wMDA1NDQsIDAuMDAwNTQ3LCAwLjAwMDU0NywgMC4wMDA1NDcsIDAuMDAwNTQ2LCAwLjAwMDU0NSIsIFwKLSAgICAgICAgICAiMC4wMDA1MzYsIDAuMDAwNTQxLCAwLjAwMDU0NiwgMC4wMDA1NDYsIDAuMDAwNTQ2LCAwLjAwMDU0NSwgMC4wMDA1NDQiLCBcCi0gICAgICAgICAgIjAuMDAwNTMyLCAwLjAwMDUzNiwgMC4wMDA1NDQsIDAuMDAwNTQ1LCAwLjAwMDU0NSwgMC4wMDA1NDQsIDAuMDAwNTQzIiwgXAotICAgICAgICAgICIwLjAwMDUyOSwgMC4wMDA1MzQsIDAuMDAwNTQyLCAwLjAwMDU0MywgMC4wMDA1NDQsIDAuMDAwNTQzLCAwLjAwMDU0MyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkExIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDE4ODcsIDAuMDAxODg4LCAwLjAwMTg4OCwgMC4wMDE4ODgsIDAuMDAxODg4LCAwLjAwMTg4OCwgMC4wMDE4ODgiLCBcCi0gICAgICAgICAgIjAuMDAxODg5LCAwLjAwMTg5MSwgMC4wMDE4OTMsIDAuMDAxODkzLCAwLjAwMTg5NCwgMC4wMDE4OTUsIDAuMDAxODkyIiwgXAotICAgICAgICAgICIwLjAwMTg4NSwgMC4wMDE4ODgsIDAuMDAxODkzLCAwLjAwMTg5MywgMC4wMDE4OTQsIDAuMDAxODk1LCAwLjAwMTg5NCIsIFwKLSAgICAgICAgICAiMC4wMDE4OCwgMC4wMDE4ODUsIDAuMDAxODkyLCAwLjAwMTg5MywgMC4wMDE4OTQsIDAuMDAxODk0LCAwLjAwMTg5NCIsIFwKLSAgICAgICAgICAiMC4wMDE4NzUsIDAuMDAxODgyLCAwLjAwMTg5LCAwLjAwMTg5MiwgMC4wMDE4OTMsIDAuMDAxODk0LCAwLjAwMTg5NCIsIFwKLSAgICAgICAgICAiMC4wMDE4NzEsIDAuMDAxODc4LCAwLjAwMTg4OSwgMC4wMDE4OTEsIDAuMDAxODkyLCAwLjAwMTg5NCwgMC4wMDE4OTQiLCBcCi0gICAgICAgICAgIjAuMDAxODY3LCAwLjAwMTg3NSwgMC4wMDE4ODcsIDAuMDAxODksIDAuMDAxODkxLCAwLjAwMTg5NCwgMC4wMDE4OTQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDA1NjgsIDAuMDAwNTY5LCAwLjAwMDU2OSwgMC4wMDA1NjgsIDAuMDAwNTY3LCAwLjAwMDU2NSwgMC4wMDA1NjQiLCBcCi0gICAgICAgICAgIjAuMDAwNTUyLCAwLjAwMDU1MywgMC4wMDA1NTQsIDAuMDAwNTUzLCAwLjAwMDU1MywgMC4wMDA1NTEsIDAuMDAwNTUiLCBcCi0gICAgICAgICAgIjAuMDAwNTQzLCAwLjAwMDU0NiwgMC4wMDA1NDksIDAuMDAwNTQ5LCAwLjAwMDU0OSwgMC4wMDA1NDcsIDAuMDAwNTQ2IiwgXAotICAgICAgICAgICIwLjAwMDUzOCwgMC4wMDA1NDIsIDAuMDAwNTQ2LCAwLjAwMDU0NywgMC4wMDA1NDcsIDAuMDAwNTQ1LCAwLjAwMDU0NCIsIFwKLSAgICAgICAgICAiMC4wMDA1MzQsIDAuMDAwNTM4LCAwLjAwMDU0NCwgMC4wMDA1NDUsIDAuMDAwNTQ1LCAwLjAwMDU0NCwgMC4wMDA1NDMiLCBcCi0gICAgICAgICAgIjAuMDAwNTI4LCAwLjAwMDUzNCwgMC4wMDA1NDIsIDAuMDAwNTQ0LCAwLjAwMDU0NCwgMC4wMDA1NDMsIDAuMDAwNTQyIiwgXAotICAgICAgICAgICIwLjAwMDUyNSwgMC4wMDA1MzEsIDAuMDAwNTQxLCAwLjAwMDU0MiwgMC4wMDA1NDMsIDAuMDAwNTQzLCAwLjAwMDU0MiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDE1NjIsIDAuMDAxNTYzLCAwLjAwMTU2MywgMC4wMDE1NjEsIDAuMDAxNTY2LCAwLjAwMTU2MSwgMC4wMDE1NiIsIFwKLSAgICAgICAgICAiMC4wMDE1NTUsIDAuMDAxNTU4LCAwLjAwMTU2MSwgMC4wMDE1NjEsIDAuMDAxNTYxLCAwLjAwMTU2MSwgMC4wMDE1NiIsIFwKLSAgICAgICAgICAiMC4wMDE1NDgsIDAuMDAxNTUyLCAwLjAwMTU1OSwgMC4wMDE1NiwgMC4wMDE1NjEsIDAuMDAxNTYsIDAuMDAxNTU5IiwgXAotICAgICAgICAgICIwLjAwMTU0MiwgMC4wMDE1NDgsIDAuMDAxNTU3LCAwLjAwMTU1OSwgMC4wMDE1NTksIDAuMDAxNTYsIDAuMDAxNTYiLCBcCi0gICAgICAgICAgIjAuMDAxNTM3LCAwLjAwMTU0NCwgMC4wMDE1NTYsIDAuMDAxNTU4LCAwLjAwMTU1OSwgMC4wMDE1NTksIDAuMDAxNTU4IiwgXAotICAgICAgICAgICIwLjAwMTUzMSwgMC4wMDE1MzksIDAuMDAxNTUzLCAwLjAwMTU1NiwgMC4wMDE1NTcsIDAuMDAxNTU4LCAwLjAwMTU1OCIsIFwKLSAgICAgICAgICAiMC4wMDE1MjcsIDAuMDAxNTM1LCAwLjAwMTU1LCAwLjAwMTU1NCwgMC4wMDE1NTYsIDAuMDAxNTU3LCAwLjAwMTU1NyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDA3MSwgMC4wMDAwNzIsIDAuMDAwMDc0LCAwLjAwMDA3NCwgMC4wMDAwNzQsIDAuMDAwMDc0LCAwLjAwMDA3NCIsIFwKLSAgICAgICAgICAiMC4wMDAwNzUsIDAuMDAwMDgsIDAuMDAwMDg1LCAwLjAwMDA4NiwgMC4wMDAwODcsIDAuMDAwMDg3LCAwLjAwMDA4OCIsIFwKLSAgICAgICAgICAiMC4wMDAwNjksIDAuMDAwMDc3LCAwLjAwMDA4NywgMC4wMDAwODksIDAuMDAwMDksIDAuMDAwMDkyLCAwLjAwMDA5MiIsIFwKLSAgICAgICAgICAiMC4wMDAwNjEsIDAuMDAwMDcxLCAwLjAwMDA4NiwgMC4wMDAwODksIDAuMDAwMDksIDAuMDAwMDkxLCAwLjAwMDA5MiIsIFwKLSAgICAgICAgICAiMC4wMDAwNTUsIDAuMDAwMDY3LCAwLjAwMDA4NCwgMC4wMDAwODgsIDAuMDAwMDksIDAuMDAwMDkyLCAwLjAwMDA5MyIsIFwKLSAgICAgICAgICAiMC4wMDAwNDYsIDAuMDAwMDU5LCAwLjAwMDA4MSwgMC4wMDAwODYsIDAuMDAwMDg5LCAwLjAwMDA5MiwgMC4wMDAwOTIiLCBcCi0gICAgICAgICAgIjAuMDAwMDQsIDAuMDAwMDU0LCAwLjAwMDA3OCwgMC4wMDAwODQsIDAuMDAwMDg4LCAwLjAwMDA5MSwgMC4wMDAwOTIiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBBT0kyMVhMICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKEFPSTIxWEwpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4wNDEyMTk3OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNTY2NTIxOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDU2NDI5NTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA1NjY1MjE7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMTY1LCAwLjAwMDE2NSwgMC4wMDAxNjUsIDAuMDAwMTY1LCAwLjAwMDE2NSwgMC4wMDAxNjUsIDAuMDAwMTY1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMTcsIDAuMDAwMTY3LCAwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiwgMC4wMDAxNjYiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEExKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2MzI2MTE7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjI4NDIyOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDYzMjYxMTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAwNzMsIDAuMDAwMDczLCAwLjAwMDA3MywgMC4wMDAwNzMsIDAuMDAwMDczLCAwLjAwMDA3MywgMC4wMDAwNzMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxODgsIDAuMDAwMTg4LCAwLjAwMDE4OCwgMC4wMDAxODgsIDAuMDAwMTg4LCAwLjAwMDE4OCwgMC4wMDAxODgiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2Mjg2MjE7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjI4MzA2OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDYyODYyMTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAwNDIsIDAuMDAwMDQyLCAwLjAwMDA0MiwgMC4wMDAwNDIsIDAuMDAwMDQyLCAwLjAwMDA0MiwgMC4wMDAwNDIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAzNTQsIDAuMDAwMzU0LCAwLjAwMDM1MywgMC4wMDAzNTMsIDAuMDAwMzUzLCAwLjAwMDM1MywgMC4wMDAzNTMiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4wMzY2ODc4OwotICAgIGZ1bmN0aW9uIDogIighKChBMCBBMSkrQjApKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTAiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMwMzI3NywgMC4zNTUyNjgsIDAuODIzMDUxLCAxLjYwMjc4LCAyLjM4MjMxLCA0LjE5OTczLCA1LjIzODExIiwgXAotICAgICAgICAgICIwLjMxNTA2OSwgMC4zNjcwNzMsIDAuODM0ODMsIDEuNjE0MjcsIDIuMzkzNTMsIDQuMjExNTUsIDUuMjQ5ODUiLCBcCi0gICAgICAgICAgIjAuMzI5Mjg4LCAwLjM4MTI4MiwgMC44NDkzMTYsIDEuNjI4ODUsIDIuNDA4OSwgNC4yMjYsIDUuMjY0MTkiLCBcCi0gICAgICAgICAgIjAuMzQyNjUsIDAuMzk0NjM3LCAwLjg2MjUyOSwgMS42NDI1NywgMi40MjE3MSwgNC4yMzkxMywgNS4yNzc0NSIsIFwKLSAgICAgICAgICAiMC4zNTU0NDcsIDAuNDA3NDQ0LCAwLjg3NTU1NywgMS42NTUyMiwgMi40MzUyMiwgNC4yNTIyNSwgNS4yOTAzOCIsIFwKLSAgICAgICAgICAiMC4zNzU4NTQsIDAuNDI3OTU3LCAwLjg5NTcwMywgMS42NzU3NywgMi40NTUwOSwgNC4yNzI0NywgNS4zMTA4MSIsIFwKLSAgICAgICAgICAiMC4zOTMyODIsIDAuNDQ1MjQzLCAwLjkxMzEyNSwgMS42OTM1OCwgMi40NzI4NywgNC4yOTAxNywgNS4zMjgzMiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC41NTMzNzIsIDAuNjU0NDY0LCAxLjU2ODE4LCAzLjA5MDksIDQuNjEzOTksIDguMTY5MDgsIDEwLjE5NTkiLCBcCi0gICAgICAgICAgIjAuNTUzNSwgMC42NTQzNTEsIDEuNTY4OTgsIDMuMDkyNDYsIDQuNjE1OTYsIDguMTY1NzgsIDEwLjE5NTgiLCBcCi0gICAgICAgICAgIjAuNTUyOTEsIDAuNjU0NDM2LCAxLjU2ODEsIDMuMDkxMDcsIDQuNjE0MjQsIDguMTY5MzEsIDEwLjE5NDYiLCBcCi0gICAgICAgICAgIjAuNTUyOTIyLCAwLjY1NDQ2MSwgMS41NjkwMywgMy4wOTIwNiwgNC42MTQxNywgOC4xNjg4OCwgMTAuMTk0NyIsIFwKLSAgICAgICAgICAiMC41NTI3MywgMC42NTUxMjQsIDEuNTY4NTUsIDMuMDkwOTQsIDQuNjE1NjMsIDguMTY3NDksIDEwLjE5NDciLCBcCi0gICAgICAgICAgIjAuNTUzNDUyLCAwLjY1NDM4NCwgMS41Njc5LCAzLjA5MDgzLCA0LjYxNDAyLCA4LjE2ODksIDEwLjE5NDYiLCBcCi0gICAgICAgICAgIjAuNTUzNDc0LCAwLjY1NDYyNSwgMS41Njg4OCwgMy4wOTEyMiwgNC42MTU5NSwgOC4xNjYxOSwgMTAuMTk0NSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zNDkxMDcsIDAuNDA4MzkzLCAwLjk0MDQ1LCAxLjgyNTYsIDIuNzExMTEsIDQuNzczODEsIDUuOTUyNTUiLCBcCi0gICAgICAgICAgIjAuMzYwNzU0LCAwLjQyMDAxNSwgMC45NTE5MTIsIDEuODM3NzQsIDIuNzIxOTQsIDQuNzg1NTcsIDUuOTY0MTciLCBcCi0gICAgICAgICAgIjAuMzc0NjcxLCAwLjQzMzk5MywgMC45NjU3NDksIDEuODUxODEsIDIuNzM2NTMsIDQuNzk5NDMsIDUuOTc4MTgiLCBcCi0gICAgICAgICAgIjAuMzg4NTUsIDAuNDQ3Nzg5LCAwLjk3OTk3OSwgMS44NjQ5NSwgMi43NTA4NiwgNC44MTMzMywgNS45OTIxMSIsIFwKLSAgICAgICAgICAiMC40MDIyMjUsIDAuNDYxNjQzLCAwLjk5MzgyMiwgMS44Nzk2NCwgMi43NjQ2NywgNC44MjcyLCA2LjAwNiIsIFwKLSAgICAgICAgICAiMC40MjQzMTUsIDAuNDgzNjUyLCAxLjAxNTYxLCAxLjkwMTMzLCAyLjc4NjA3LCA0Ljg0OTI2LCA2LjAyODA2IiwgXAotICAgICAgICAgICIwLjQ0MjU2OCwgMC41MDI3MzYsIDEuMDM1MTIsIDEuOTIxMzgsIDIuODA1OTgsIDQuODY4NzgsIDYuMDQ3MzMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuNjI0ODk0LCAwLjczNzE0MiwgMS43NDg2NSwgMy40MzI0MiwgNS4xMTgzMywgOS4wNDI5OCwgMTEuMjgzNiIsIFwKLSAgICAgICAgICAiMC42MjUwMjEsIDAuNzM3MzExLCAxLjc0ODE0LCAzLjQzMzM0LCA1LjExNjkxLCA5LjA0MzQ4LCAxMS4yODM2IiwgXAotICAgICAgICAgICIwLjYyNTAwNywgMC43MzcxMDEsIDEuNzQ4NTEsIDMuNDMzNTcsIDUuMTE5MzMsIDkuMDQ0MjYsIDExLjI4MzEiLCBcCi0gICAgICAgICAgIjAuNjI1MDI4LCAwLjczNzU3NSwgMS43NDg2LCAzLjQzMjc1LCA1LjExODI5LCA5LjA0NDcyLCAxMS4yODM0IiwgXAotICAgICAgICAgICIwLjYyNDQyLCAwLjczNzA5MiwgMS43NDg4OCwgMy40MzM2LCA1LjExNzEzLCA5LjA0NDcyLCAxMS4yODM0IiwgXAotICAgICAgICAgICIwLjYyNDgwOSwgMC43MzY5LCAxLjc0ODUsIDMuNDM0MTYsIDUuMTE2NDcsIDkuMDQzNDMsIDExLjI4MzQiLCBcCi0gICAgICAgICAgIjAuNjI0MzY3LCAwLjczNjkxNSwgMS43NDgxMywgMy40MzM5MiwgNS4xMTc5MywgOS4wNDQyNiwgMTEuMjgzNiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjk1ODcsIDAuMzQ3NDg5LCAwLjgxMjE2NywgMS41ODY4NSwgMi4zNjExLCA0LjE2NjQ3LCA1LjE5ODE1IiwgXAotICAgICAgICAgICIwLjMwNzg5MSwgMC4zNTk1MjksIDAuODI0MTQ3LCAxLjU5OTIzLCAyLjM3MjgyLCA0LjE3ODMzLCA1LjIxMDA1IiwgXAotICAgICAgICAgICIwLjMyMjIxMywgMC4zNzM3NzksIDAuODM4NTk4LCAxLjYxMjk5LCAyLjM4ODA0LCA0LjE5MzAxLCA1LjIyNDQ1IiwgXAotICAgICAgICAgICIwLjMzNTQ4NSwgMC4zODcxMTYsIDAuODUxNzQ2LCAxLjYyNjY0LCAyLjQwMDc5LCA0LjIwNjE4LCA1LjIzNzc0IiwgXAotICAgICAgICAgICIwLjM0ODQ5MywgMC4zOTk5NzksIDAuODY0ODA1LCAxLjYzOTQzLCAyLjQxNDI3LCA0LjIxOTM5LCA1LjI1MDciLCBcCi0gICAgICAgICAgIjAuMzY4NDM0LCAwLjQyMDI1OCwgMC44ODU3NTQsIDEuNjYwMDcsIDIuNDM0MjUsIDQuMjM5NTksIDUuMjcxMTciLCBcCi0gICAgICAgICAgIjAuMzg2MDk3LCAwLjQzNzg1MSwgMC45MDI2NjYsIDEuNjc4MDIsIDIuNDUxOSwgNC4yNTczNSwgNS4yODg3MiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC41NDUwMjcsIDAuNjQ4MjU1LCAxLjU1NzI4LCAzLjA3NjUxLCA0LjU5MzA0LCA4LjEwNjQsIDEwLjExNjkiLCBcCi0gICAgICAgICAgIjAuNTQ1MDMzLCAwLjY0NTg0NCwgMS41NTU5MiwgMy4wNjU5MiwgNC41ODI1MSwgOC4xMDYyLCAxMC4xMTgyIiwgXAotICAgICAgICAgICIwLjU0Mzg2NywgMC42NDU4MzIsIDEuNTU3NDMsIDMuMDc1NzMsIDQuNTc5MDUsIDguMTA2MjksIDEwLjExNyIsIFwKLSAgICAgICAgICAiMC41NDUwNDEsIDAuNjQ2MjExLCAxLjU1NTksIDMuMDY1NzcsIDQuNTkyODgsIDguMTA2MDcsIDEwLjExNjkiLCBcCi0gICAgICAgICAgIjAuNTQzMzMzLCAwLjY0NDgzMywgMS41NTM3NCwgMy4wNzYzNywgNC41ODA5NiwgOC4xMDYzNywgMTAuMTE2OSIsIFwKLSAgICAgICAgICAiMC41NDQ2NjcsIDAuNjQ2NTQ3LCAxLjU1MjE5LCAzLjA2NTQ1LCA0LjU5Mjc0LCA4LjEwNjA5LCAxMC4xMTciLCBcCi0gICAgICAgICAgIjAuNTQ0NDc5LCAwLjY0NDY4MSwgMS41NTM5MywgMy4wNjUyMiwgNC41ODI4NiwgOC4xMDM2NywgMTAuMTE2OSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zNDQyMDgsIDAuNDAzNDksIDAuOTM1NTQ0LCAxLjgyMTQ1LCAyLjcwNiwgNC43Njg4NCwgNS45NDc2OSIsIFwKLSAgICAgICAgICAiMC4zNTQ1ODYsIDAuNDEzODA3LCAwLjk0NjA2NSwgMS44MzE1LCAyLjcxNjc5LCA0Ljc3OTMzLCA1Ljk1Nzg5IiwgXAotICAgICAgICAgICIwLjM2ODAxLCAwLjQyNzI0MSwgMC45NTk0MjIsIDEuODQ0NTIsIDIuNzMwMTMsIDQuNzkyODEsIDUuOTcxNTYiLCBcCi0gICAgICAgICAgIjAuMzgxNjU1LCAwLjQ0MDkwMywgMC45NzI5OTQsIDEuODU4OSwgMi43NDM3MywgNC44MDY1NywgNS45ODUxOCIsIFwKLSAgICAgICAgICAiMC4zOTUyNTUsIDAuNDU0NTA0LCAwLjk4NjY0NCwgMS44NzI2OCwgMi43NTcyMSwgNC44MjAyLCA1Ljk5ODkiLCBcCi0gICAgICAgICAgIjAuNDE2Mzk0LCAwLjQ3NTY3OCwgMS4wMDc3NCwgMS44OTM2OSwgMi43Nzg0NCwgNC44NDEwOSwgNi4wMjAwOCIsIFwKLSAgICAgICAgICAiMC40MzUyNjIsIDAuNDk0NDAyLCAxLjAyNjcxLCAxLjkxMjQsIDIuNzk3NjQsIDQuODYwMjcsIDYuMDM4OTQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuNjI0NDQxLCAwLjczNzYxMywgMS43NDkxMiwgMy40MzM4MSwgNS4xMTkzLCA5LjA0Mzc1LCAxMS4yODI5IiwgXAotICAgICAgICAgICIwLjYyNDYxMywgMC43MzczNjEsIDEuNzQ4NywgMy40MzI2LCA1LjExNzcsIDkuMDQ0NDEsIDExLjI4MjYiLCBcCi0gICAgICAgICAgIjAuNjI0NjI3LCAwLjczNzM2OSwgMS43NDgxMiwgMy40MzI1MSwgNS4xMTgxMywgOS4wNDQzLCAxMS4yODM0IiwgXAotICAgICAgICAgICIwLjYyNDUzOSwgMC43MzY5OTEsIDEuNzQ4OTksIDMuNDMzNTQsIDUuMTE4MTMsIDkuMDQzNTcsIDExLjI4MzQiLCBcCi0gICAgICAgICAgIjAuNjI0NDUyLCAwLjczNjc5NywgMS43NDg5OSwgMy40MzM4NSwgNS4xMTkxNywgOS4wNDQzOCwgMTEuMjgzIiwgXAotICAgICAgICAgICIwLjYyNDUyNCwgMC43MzY3NTUsIDEuNzQ4MTUsIDMuNDM0MjcsIDUuMTE3ODgsIDkuMDQzNDEsIDExLjI4MjQiLCBcCi0gICAgICAgICAgIjAuNjI0OTg1LCAwLjczNjgxNywgMS43NDgwNywgMy40MzM1MSwgNS4xMTg0NywgOS4wNDI4NywgMTEuMjgyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjg3MDI0LCAwLjMzODg5OSwgMC44MDY3MzksIDEuNTg2OCwgMi4zNjY1OSwgNC4xODM2MiwgNS4yMjE3NyIsIFwKLSAgICAgICAgICAiMC4yOTc2MDksIDAuMzQ5NjY1LCAwLjgxNzU3OSwgMS41OTY5LCAyLjM3NjIxLCA0LjE5NDI0LCA1LjIzMjQ3IiwgXAotICAgICAgICAgICIwLjMxMDQ1NSwgMC4zNjI0NDIsIDAuODMwMzUxLCAxLjYxMDY1LCAyLjM4OTE0LCA0LjIwNjk3LCA1LjI0NTM4IiwgXAotICAgICAgICAgICIwLjMyMzQ3MywgMC4zNzU0OTgsIDAuODQzNDQsIDEuNjIzNjcsIDIuNDAzMTYsIDQuMjE5OTYsIDUuMjU4NDgiLCBcCi0gICAgICAgICAgIjAuMzM2NDY5LCAwLjM4ODUxMiwgMC44NTY1MTcsIDEuNjM2MiwgMi40MTYxMSwgNC4yMzMzMiwgNS4yNzE1MiIsIFwKLSAgICAgICAgICAiMC4zNTcyOTcsIDAuNDA5MzksIDAuODc3NDMzLCAxLjY1NzU1LCAyLjQzNjc0LCA0LjI1NDEsIDUuMjkyNDkiLCBcCi0gICAgICAgICAgIjAuMzc1NTY5LCAwLjQyNzY0MywgMC44OTU3NCwgMS42NzYxNiwgMi40NTUyMywgNC4yNzI2MywgNS4zMTA4MSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC41NTI5MTcsIDAuNjU1MDkzLCAxLjU2NzkxLCAzLjA5MDk4LCA0LjYxNTk4LCA4LjE2OTMyLCAxMC4xOTU4IiwgXAotICAgICAgICAgICIwLjU1MjkyMSwgMC42NTQ5ODYsIDEuNTY4NDgsIDMuMDkyNDUsIDQuNjE2MDksIDguMTY3MDksIDEwLjE5NTgiLCBcCi0gICAgICAgICAgIjAuNTUyOTY0LCAwLjY1NDk1NiwgMS41NjgxOSwgMy4wOTEzNSwgNC42MTYsIDguMTY4OCwgMTAuMTk1OCIsIFwKLSAgICAgICAgICAiMC41NTI5MDgsIDAuNjU0OTQyLCAxLjU2ODE5LCAzLjA5MTIxLCA0LjYxNjIzLCA4LjE2ODY3LCAxMC4xOTU3IiwgXAotICAgICAgICAgICIwLjU1Mjg4LCAwLjY1NDk0NiwgMS41NjkwNywgMy4wOTE1NiwgNC42MTQyNCwgOC4xNjkxLCAxMC4xOTU3IiwgXAotICAgICAgICAgICIwLjU1MzIwMSwgMC42NTQxNjIsIDEuNTY4MjIsIDMuMDkwOTQsIDQuNjE0MDEsIDguMTY4ODYsIDEwLjE5NTciLCBcCi0gICAgICAgICAgIjAuNTU1MDg2LCAwLjY1NTE2NiwgMS41NjgxNiwgMy4wOTE4NSwgNC42MTU1OCwgOC4xNjc5NiwgMTAuMTk0NiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNjM5OTUsIDAuMTkzNzM3LCAwLjQ2MTIxOSwgMC45MDcwMzgsIDEuMzUyNCwgMi4zOTI1LCAyLjk4NTY2IiwgXAotICAgICAgICAgICIwLjE3NjEwNywgMC4yMDU4ODUsIDAuNDczMjYxLCAwLjkxODczMywgMS4zNjQ2NiwgMi40MDQ1OSwgMi45OTc4NyIsIFwKLSAgICAgICAgICAiMC4xOTA5NDMsIDAuMjIwNzE5LCAwLjQ4NTUwNSwgMC45MzExMTksIDEuMzc2OTMsIDIuNDE2MTUsIDMuMDA5NjYiLCBcCi0gICAgICAgICAgIjAuMjA1ODY5LCAwLjIzNTU5NCwgMC41MDMxNzgsIDAuOTQ1OTczLCAxLjM5MDgsIDIuNDMxNDEsIDMuMDI1MDgiLCBcCi0gICAgICAgICAgIjAuMjIxNzE3LCAwLjI1MDcxNSwgMC41MTgwNDksIDAuOTYwNzQ2LCAxLjQwNjMsIDIuNDQ2NDgsIDMuMDM5NzkiLCBcCi0gICAgICAgICAgIjAuMjQ2MDkxLCAwLjI3NTczNywgMC41NDE4NDUsIDAuOTgzODAzLCAxLjQyOTY2LCAyLjQ2OTU1LCAzLjA2MzIiLCBcCi0gICAgICAgICAgIjAuMjY3MzEzLCAwLjI5NzIyMiwgMC41NjI3ODUsIDEuMDAzNTQsIDEuNDQ5NjQsIDIuNDg4NDcsIDMuMDgyNTQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzE5MTQyLCAwLjM3Nzc2NiwgMC45MDU4MiwgMS43ODc5MiwgMi42NjgyOSwgNC43MjQ5MiwgNS44OTc0NSIsIFwKLSAgICAgICAgICAiMC4zMTkxNCwgMC4zNzc3OTgsIDAuOTA1ODE4LCAxLjc4Njg1LCAyLjY3MzU3LCA0LjcyNTAxLCA1Ljg5NjQ3IiwgXAotICAgICAgICAgICIwLjMxOTE0NCwgMC4zNzc3NzIsIDAuOTA1NjUzLCAxLjc4OTE0LCAyLjY2ODI2LCA0LjcyNTE0LCA1Ljg5NzA1IiwgXAotICAgICAgICAgICIwLjMxOTEzOCwgMC4zNzc3ODcsIDAuOTA1ODA1LCAxLjc4NjMsIDIuNjcwNjYsIDQuNzI2OSwgNS44OTU1OCIsIFwKLSAgICAgICAgICAiMC4zMTk2NTUsIDAuMzc3ODE4LCAwLjkwNTYyNiwgMS43ODY3OSwgMi42NzEsIDQuNzI1NzcsIDUuODk3MDkiLCBcCi0gICAgICAgICAgIjAuMzIzMDU5LCAwLjM3OTg4MywgMC45MDU1NzIsIDEuNzg4MDUsIDIuNjY5ODIsIDQuNzI2MDcsIDUuODk3NDIiLCBcCi0gICAgICAgICAgIjAuMzI4MTg1LCAwLjM4MzYzOCwgMC45MDU3MTYsIDEuNzg3MDUsIDIuNjcwNywgNC43MjQ0NCwgNS44OTYzOCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDE0MTUsIDAuMDAxNDE2LCAwLjAwMTQxNSwgMC4wMDE0MTMsIDAuMDAxNDE3LCAwLjAwMTQxMywgMC4wMDE0MTMiLCBcCi0gICAgICAgICAgIjAuMDAxNDEyLCAwLjAwMTQxMiwgMC4wMDE0MTIsIDAuMDAxNDEyLCAwLjAwMTQxMiwgMC4wMDE0MSwgMC4wMDE0MTEiLCBcCi0gICAgICAgICAgIjAuMDAxNDExLCAwLjAwMTQxMSwgMC4wMDE0MTIsIDAuMDAxNDEyLCAwLjAwMTQxMSwgMC4wMDE0MSwgMC4wMDE0MDkiLCBcCi0gICAgICAgICAgIjAuMDAxNDEsIDAuMDAxNDEsIDAuMDAxNDExLCAwLjAwMTQxMSwgMC4wMDE0MTEsIDAuMDAxNDA5LCAwLjAwMTQwOSIsIFwKLSAgICAgICAgICAiMC4wMDE0MSwgMC4wMDE0MSwgMC4wMDE0MTEsIDAuMDAxNDExLCAwLjAwMTQxMSwgMC4wMDE0MDksIDAuMDAxNDA5IiwgXAotICAgICAgICAgICIwLjAwMTQwOSwgMC4wMDE0MDksIDAuMDAxNDExLCAwLjAwMTQxMSwgMC4wMDE0MSwgMC4wMDE0MSwgMC4wMDE0MDkiLCBcCi0gICAgICAgICAgIjAuMDAxNDA4LCAwLjAwMTQwOCwgMC4wMDE0MSwgMC4wMDE0MTEsIDAuMDAxNDEsIDAuMDAxNDA5LCAwLjAwMTQwOSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDM5NiwgMC4wMDAzOTYsIDAuMDAwMzk1LCAwLjAwMDM5NSwgMC4wMDAzOTMsIDAuMDAwMzkyLCAwLjAwMDM5MSIsIFwKLSAgICAgICAgICAiMC4wMDAzODgsIDAuMDAwMzg4LCAwLjAwMDM4OCwgMC4wMDAzODcsIDAuMDAwMzg1LCAwLjAwMDM4NCwgMC4wMDAzODMiLCBcCi0gICAgICAgICAgIjAuMDAwMzg1LCAwLjAwMDM4NSwgMC4wMDAzODUsIDAuMDAwMzg1LCAwLjAwMDM4NCwgMC4wMDAzODIsIDAuMDAwMzgxIiwgXAotICAgICAgICAgICIwLjAwMDM4MywgMC4wMDAzODMsIDAuMDAwMzg0LCAwLjAwMDM4NCwgMC4wMDAzODMsIDAuMDAwMzgxLCAwLjAwMDM4IiwgXAotICAgICAgICAgICIwLjAwMDM4MSwgMC4wMDAzODIsIDAuMDAwMzgzLCAwLjAwMDM4MywgMC4wMDAzODMsIDAuMDAwMzgxLCAwLjAwMDM4IiwgXAotICAgICAgICAgICIwLjAwMDM3OSwgMC4wMDAzOCwgMC4wMDAzODIsIDAuMDAwMzgyLCAwLjAwMDM4MiwgMC4wMDAzODEsIDAuMDAwMzc5IiwgXAotICAgICAgICAgICIwLjAwMDM3NiwgMC4wMDAzNzksIDAuMDAwMzgxLCAwLjAwMDM4MiwgMC4wMDAzODIsIDAuMDAwMzgsIDAuMDAwMzc5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTIzMywgMC4wMDEyMzIsIDAuMDAxMjMzLCAwLjAwMTIzMywgMC4wMDEyMzIsIDAuMDAxMjMyLCAwLjAwMTIyOSIsIFwKLSAgICAgICAgICAiMC4wMDEyMzQsIDAuMDAxMjM0LCAwLjAwMTIzNSwgMC4wMDEyMzUsIDAuMDAxMjM2LCAwLjAwMTIzNCwgMC4wMDEyMzYiLCBcCi0gICAgICAgICAgIjAuMDAxMjMzLCAwLjAwMTIzMywgMC4wMDEyMzUsIDAuMDAxMjM1LCAwLjAwMTIzNiwgMC4wMDEyMzYsIDAuMDAxMjM2IiwgXAotICAgICAgICAgICIwLjAwMTIzMSwgMC4wMDEyMzIsIDAuMDAxMjM0LCAwLjAwMTIzNSwgMC4wMDEyMzYsIDAuMDAxMjM2LCAwLjAwMTIzNiIsIFwKLSAgICAgICAgICAiMC4wMDEyMywgMC4wMDEyMzEsIDAuMDAxMjM0LCAwLjAwMTIzNSwgMC4wMDEyMzUsIDAuMDAxMjM1LCAwLjAwMTIzNSIsIFwKLSAgICAgICAgICAiMC4wMDEyMjgsIDAuMDAxMjI5LCAwLjAwMTIzMywgMC4wMDEyMzUsIDAuMDAxMjM1LCAwLjAwMTIzNiwgMC4wMDEyMzUiLCBcCi0gICAgICAgICAgIjAuMDAxMjI2LCAwLjAwMTIyOCwgMC4wMDEyMzIsIDAuMDAxMjM0LCAwLjAwMTIzNSwgMC4wMDEyMzUsIDAuMDAxMjM1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwMzk2LCAwLjAwMDM5NiwgMC4wMDAzOTYsIDAuMDAwMzk1LCAwLjAwMDM5NCwgMC4wMDAzOTIsIDAuMDAwMzkiLCBcCi0gICAgICAgICAgIjAuMDAwMzg3LCAwLjAwMDM4OCwgMC4wMDAzODgsIDAuMDAwMzg3LCAwLjAwMDM4NywgMC4wMDAzODQsIDAuMDAwMzgzIiwgXAotICAgICAgICAgICIwLjAwMDM4NCwgMC4wMDAzODQsIDAuMDAwMzg1LCAwLjAwMDM4NCwgMC4wMDAzODQsIDAuMDAwMzgyLCAwLjAwMDM4MSIsIFwKLSAgICAgICAgICAiMC4wMDAzODIsIDAuMDAwMzgyLCAwLjAwMDM4NCwgMC4wMDAzODQsIDAuMDAwMzgzLCAwLjAwMDM4MSwgMC4wMDAzOCIsIFwKLSAgICAgICAgICAiMC4wMDAzOCwgMC4wMDAzODEsIDAuMDAwMzgzLCAwLjAwMDM4MywgMC4wMDAzODMsIDAuMDAwMzgxLCAwLjAwMDM3OSIsIFwKLSAgICAgICAgICAiMC4wMDAzNzcsIDAuMDAwMzc4LCAwLjAwMDM4MSwgMC4wMDAzODIsIDAuMDAwMzgyLCAwLjAwMDM4LCAwLjAwMDM3OSIsIFwKLSAgICAgICAgICAiMC4wMDAzNzYsIDAuMDAwMzc3LCAwLjAwMDM4LCAwLjAwMDM4MSwgMC4wMDAzODEsIDAuMDAwMzgsIDAuMDAwMzc5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTA0LCAwLjAwMTA0LCAwLjAwMTA0LCAwLjAwMTA0MSwgMC4wMDEwMzksIDAuMDAxMDM4LCAwLjAwMTAzNyIsIFwKLSAgICAgICAgICAiMC4wMDEwMzgsIDAuMDAxMDM4LCAwLjAwMTAzOSwgMC4wMDEwMzksIDAuMDAxMDM5LCAwLjAwMTA0LCAwLjAwMTAzNyIsIFwKLSAgICAgICAgICAiMC4wMDEwMzUsIDAuMDAxMDM2LCAwLjAwMTAzOCwgMC4wMDEwMzksIDAuMDAxMDM4LCAwLjAwMTAzOCwgMC4wMDEwMzciLCBcCi0gICAgICAgICAgIjAuMDAxMDMzLCAwLjAwMTAzNCwgMC4wMDEwMzcsIDAuMDAxMDM4LCAwLjAwMTAzOCwgMC4wMDEwMzcsIDAuMDAxMDM3IiwgXAotICAgICAgICAgICIwLjAwMTAzMSwgMC4wMDEwMzIsIDAuMDAxMDM2LCAwLjAwMTAzOCwgMC4wMDEwMzcsIDAuMDAxMDM3LCAwLjAwMTAzNiIsIFwKLSAgICAgICAgICAiMC4wMDEwMjksIDAuMDAxMDMsIDAuMDAxMDM1LCAwLjAwMTAzNywgMC4wMDEwMzgsIDAuMDAxMDM3LCAwLjAwMTAzNiIsIFwKLSAgICAgICAgICAiMC4wMDEwMjcsIDAuMDAxMDI4LCAwLjAwMTAzNCwgMC4wMDEwMzYsIDAuMDAxMDM3LCAwLjAwMTAzNywgMC4wMDEwMzYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDAwNDgsIDAuMDAwMDQ5LCAwLjAwMDA0OSwgMC4wMDAwNDksIDAuMDAwMDQ5LCAwLjAwMDA0OSwgMC4wMDAwNDkiLCBcCi0gICAgICAgICAgIjAuMDAwMDUzLCAwLjAwMDA1NCwgMC4wMDAwNTYsIDAuMDAwMDU3LCAwLjAwMDA1NywgMC4wMDAwNTcsIDAuMDAwMDU3IiwgXAotICAgICAgICAgICIwLjAwMDA1MiwgMC4wMDAwNTMsIDAuMDAwMDU3LCAwLjAwMDA1OCwgMC4wMDAwNTksIDAuMDAwMDU5LCAwLjAwMDA1OSIsIFwKLSAgICAgICAgICAiMC4wMDAwNDksIDAuMDAwMDUxLCAwLjAwMDA1NiwgMC4wMDAwNTgsIDAuMDAwMDU5LCAwLjAwMDA2LCAwLjAwMDA2IiwgXAotICAgICAgICAgICIwLjAwMDA0NywgMC4wMDAwNDgsIDAuMDAwMDU1LCAwLjAwMDA1OCwgMC4wMDAwNTksIDAuMDAwMDYsIDAuMDAwMDYiLCBcCi0gICAgICAgICAgIjAuMDAwMDQzLCAwLjAwMDA0NSwgMC4wMDAwNTQsIDAuMDAwMDU3LCAwLjAwMDA1OCwgMC4wMDAwNiwgMC4wMDAwNiIsIFwKLSAgICAgICAgICAiMC4wMDAwNCwgMC4wMDAwNDMsIDAuMDAwMDUyLCAwLjAwMDA1NiwgMC4wMDAwNTgsIDAuMDAwMDU5LCAwLjAwMDA2Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IEFPSTIyMVg0ICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChBT0kyMjFYNCkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjQ2NDA0NDsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQTApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMzI0NTM3OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMzIyNDk4OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMzI0NTM3OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTIyNSwgMC4wMDEyMjQsIDAuMDAxMjIzLCAwLjAwMTIyMywgMC4wMDEyMjMsIDAuMDAxMjIyLCAwLjAwMTIyMiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTI2OSwgMC4wMDEyMzgsIDAuMDAxMjMzLCAwLjAwMTIzMiwgMC4wMDEyMzEsIDAuMDAxMjMxLCAwLjAwMTIzIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihBMSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAzMDkwNTU7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAzMDU3ODQ7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAzMDkwNTU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNjM0LCAwLjAwMDYzMiwgMC4wMDA2MzIsIDAuMDAwNjMyLCAwLjAwMDYzMiwgMC4wMDA2MzIsIDAuMDAwNjMyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxMzksIDAuMDAxMzkxLCAwLjAwMTM5LCAwLjAwMTM5MiwgMC4wMDEzOTIsIDAuMDAxMzkyLCAwLjAwMTM5MiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQjApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMzA5NzUyOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMzA4MzI4OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMzA5NzUyOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTIyNSwgMC4wMDEyMjUsIDAuMDAxMjI0LCAwLjAwMTIyMywgMC4wMDEyMjQsIDAuMDAxMjI0LCAwLjAwMTIyNCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTI2MiwgMC4wMDEyMzUsIDAuMDAxMjMxLCAwLjAwMTIzLCAwLjAwMTIzLCAwLjAwMTIyOSwgMC4wMDEyMjgiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIxKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDI5NTQ1MTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDI5Mjc2MzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDI5NTQ1MTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA1NTYsIDAuMDAwNTU2LCAwLjAwMDU1NSwgMC4wMDA1NTYsIDAuMDAwNTU1LCAwLjAwMDU1MywgMC4wMDA1NTUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDEzOSwgMC4wMDEzOSwgMC4wMDEzOSwgMC4wMDEzOTMsIDAuMDAxMzkxLCAwLjAwMTM5MSwgMC4wMDEzOTEiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEMwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDI4NzUxNzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDI4NzQ2NDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDI4NzUxNzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAzMTIsIDAuMDAwMzEyLCAwLjAwMDMxMiwgMC4wMDAzMTIsIDAuMDAwMzEyLCAwLjAwMDMxMiwgMC4wMDAzMTIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDIwNzcsIDAuMDAyMDc4LCAwLjAwMjA3OCwgMC4wMDIwNzcsIDAuMDAyMDc3LCAwLjAwMjA3NiwgMC4wMDIwNzciKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4xOTU1NTg7Ci0gICAgZnVuY3Rpb24gOiAiKCEoKChBMCBBMSkrKEIwIEIxKSkrQzApKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTAiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTQ2NTQ4LCAwLjU0OTU5OCwgMC45NTE0OTMsIDEuMjM4MjMsIDEuNjk3MzcsIDIuMDk4MzMsIDIuNjcxNTYiLCBcCi0gICAgICAgICAgIjAuMTU4MTU0LCAwLjU2MTM2OCwgMC45NjMyMjcsIDEuMjQ5ODQsIDEuNzA4OCwgMi4xMTAxLCAyLjY4MzY1IiwgXAotICAgICAgICAgICIwLjE3MjM4MSwgMC41NzU3MzcsIDAuOTc3NTI5LCAxLjI2NDM3LCAxLjcyMzA3LCAyLjEyNDg3LCAyLjY5ODE1IiwgXAotICAgICAgICAgICIwLjE4NTgwMiwgMC41ODkxMDQsIDAuOTkxMDA3LCAxLjI3NzY0LCAxLjczNzE4LCAyLjEzODAxLCAyLjcxMTI5IiwgXAotICAgICAgICAgICIwLjE5ODMyNSwgMC42MDE3MDcsIDEuMDAzNjQsIDEuMjkwMTEsIDEuNzQ4OTIsIDIuMTUxNDQsIDIuNzI0MDEiLCBcCi0gICAgICAgICAgIjAuMjE3NTIsIDAuNjIxMDI5LCAxLjAyMjY0LCAxLjMwOTU4LCAxLjc2ODg4LCAyLjE3MDI0LCAyLjc0NDA0IiwgXAotICAgICAgICAgICIwLjIzMzk2MiwgMC42Mzc0MzIsIDEuMDM5MzEsIDEuMzI2NDgsIDEuNzg1MTIsIDIuMTg2NSwgMi43NTk2OSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE5NDAyMywgMC45Njc5MTEsIDEuNzQxNTEsIDIuMjkyOTMsIDMuMTc3NjIsIDMuOTUzMjEsIDUuMDYyOTgiLCBcCi0gICAgICAgICAgIjAuMTk0MDQxLCAwLjk2ODQ4NywgMS43NDExNywgMi4yOTM4MiwgMy4xNzcxOSwgMy45NTM3MSwgNS4wNjA5NCIsIFwKLSAgICAgICAgICAiMC4xOTM5MTEsIDAuOTY4NDU0LCAxLjc0MTEzLCAyLjI5MzYsIDMuMTc3NDMsIDMuOTUzNzUsIDUuMDYxNzEiLCBcCi0gICAgICAgICAgIjAuMTk0MDQ5LCAwLjk2NzY3MiwgMS43NDE0LCAyLjI5MjgxLCAzLjE3NzUyLCAzLjk1MzQsIDUuMDYxNzkiLCBcCi0gICAgICAgICAgIjAuMTk0MTIxLCAwLjk2NzY5MSwgMS43NDA4MywgMi4yOTQzMywgMy4xNzg3MSwgMy45NTMyLCA1LjA2MjI1IiwgXAotICAgICAgICAgICIwLjE5NDcxNiwgMC45Njg1MzcsIDEuNzQxOTcsIDIuMjk0NTMsIDMuMTc3NCwgMy45NTMxLCA1LjA2MTc4IiwgXAotICAgICAgICAgICIwLjE5NTk1NCwgMC45Njg0ODIsIDEuNzQwODEsIDIuMjkzNTQsIDMuMTc3NjUsIDMuOTUzMywgNS4wNjI1MSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwNTU1MSwgMC40MDEyMzQsIDAuNjkwMTc2LCAwLjg5NTkzNiwgMS4yMjQ2OSwgMS41MTE5NiwgMS45MjI1MSIsIFwKLSAgICAgICAgICAiMC4xMTY4MDcsIDAuNDEyNDkyLCAwLjcwMTU5NywgMC45MDcyNiwgMS4yMzU3MSwgMS41MjM0LCAxLjkzMzEyIiwgXAotICAgICAgICAgICIwLjEzMDMzMSwgMC40MjYwNzIsIDAuNzE1MDEyLCAwLjkyMDc5OSwgMS4yNDkyOCwgMS41MzY0MywgMS45NDY1OCIsIFwKLSAgICAgICAgICAiMC4xNDM2NDQsIDAuNDM5NTksIDAuNzI4NjI2LCAwLjkzNDQ4MiwgMS4yNjMwOCwgMS41NTA1NywgMS45NjAxNyIsIFwKLSAgICAgICAgICAiMC4xNTY5NjUsIDAuNDUzMDU4LCAwLjc0MjA3MiwgMC45NDc4NzYsIDEuMjc2NjUsIDEuNTY0MTEsIDEuOTc0MiIsIFwKLSAgICAgICAgICAiMC4xNzgzNjgsIDAuNDc0NzA0LCAwLjc2MzcwNCwgMC45Njk0ODcsIDEuMjk4MjEsIDEuNTg1NDEsIDEuOTk1MzYiLCBcCi0gICAgICAgICAgIjAuMTk3MTY5LCAwLjQ5MzQ4OCwgMC43ODI1ODcsIDAuOTg4MjcxLCAxLjMxNjg2LCAxLjYwNDI0LCAyLjAxNDMyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTY5MTI0LCAwLjcxNzkyMSwgMS4yNjcwNiwgMS42NTg2NSwgMi4yODU0NywgMi44MzM5NCwgMy42MTY3NCIsIFwKLSAgICAgICAgICAiMC4xNjg4NjksIDAuNzE3ODg2LCAxLjI2Njg3LCAxLjY1ODg2LCAyLjI4NDYxLCAyLjgzMzI3LCAzLjYxNjEiLCBcCi0gICAgICAgICAgIjAuMTY4NDc3LCAwLjcxNzg5MiwgMS4yNjY1NywgMS42NTgyMywgMi4yODUxMywgMi44MzMwNSwgMy42MTY0NCIsIFwKLSAgICAgICAgICAiMC4xNjg3MDcsIDAuNzE3OTY1LCAxLjI2NjY2LCAxLjY1ODMsIDIuMjg0ODYsIDIuODM0NDQsIDMuNjE2NjciLCBcCi0gICAgICAgICAgIjAuMTcwMTM4LCAwLjcxNzgxNiwgMS4yNjY4NiwgMS42NTg2MywgMi4yODU2MiwgMi44MzM5NiwgMy42MTc0MiIsIFwKLSAgICAgICAgICAiMC4xNzQzNDEsIDAuNzE3ODA4LCAxLjI2NjQ3LCAxLjY1ODM4LCAyLjI4NjE4LCAyLjgzMzMxLCAzLjYxNzAyIiwgXAotICAgICAgICAgICIwLjE3OTcyOSwgMC43MTc3MjcsIDEuMjY2MywgMS42NTgzNiwgMi4yODUwOCwgMi44MzQzNywgMy42MTY4MSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMzkxMjgsIDAuNTQzMDM5LCAwLjk0NTk2MSwgMS4yMzQxNSwgMS42OTQ2NywgMi4wOTcxMiwgMi42NzI5NCIsIFwKLSAgICAgICAgICAiMC4xNTA4NiwgMC41NTUxMzEsIDAuOTU4MzY1LCAxLjI0NjEyLCAxLjcwNjY1LCAyLjEwOTY3LCAyLjY4NTM4IiwgXAotICAgICAgICAgICIwLjE2NDk4OCwgMC41Njk0NzMsIDAuOTcyNzgzLCAxLjI2MDc2LCAxLjcyMTA5LCAyLjEyNDYyLCAyLjY5OTciLCBcCi0gICAgICAgICAgIjAuMTc4MTM1LCAwLjU4Mjc5MywgMC45ODYwNDksIDEuMjczOTUsIDEuNzM1MTQsIDIuMTM3NCwgMi43MTI3NiIsIFwKLSAgICAgICAgICAiMC4xOTA2ODUsIDAuNTk1NDg1LCAwLjk5ODU0NywgMS4yODY4OSwgMS43NDczMSwgMi4xNTA5LCAyLjcyNTY3IiwgXAotICAgICAgICAgICIwLjIwOTc0OSwgMC42MTQ1OSwgMS4wMTc4NywgMS4zMDYzLCAxLjc2NjgyLCAyLjE2OTY2LCAyLjc0NTciLCBcCi0gICAgICAgICAgIjAuMjI1Nzc5LCAwLjYzMTA3MiwgMS4wMzQzMiwgMS4zMjI3NywgMS43ODI5NSwgMi4xODYzMiwgMi43NjE2NCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE4NjA2OSwgMC45NjE5MDUsIDEuNzM5NjQsIDIuMjkyMjUsIDMuMTg4NzMsIDMuOTcxMDgsIDUuMDcyODQiLCBcCi0gICAgICAgICAgIjAuMTg2MDQxLCAwLjk2MjcxNiwgMS43Mzg4MiwgMi4yOTMyNiwgMy4xODgwMiwgMy45NjEwNywgNS4wODYxNSIsIFwKLSAgICAgICAgICAiMC4xODYwODQsIDAuOTYyMDEyLCAxLjczODY2LCAyLjI5MjQ2LCAzLjE4NzY1LCAzLjk2MDIsIDUuMDg1NjUiLCBcCi0gICAgICAgICAgIjAuMTg2MTA3LCAwLjk2MjY2NSwgMS43Mzg2LCAyLjI5NzI3LCAzLjE5MDUzLCAzLjk3MTg2LCA1LjA4NDY3IiwgXAotICAgICAgICAgICIwLjE4NjIsIDAuOTYxOTIyLCAxLjczODcyLCAyLjI5NzQ0LCAzLjE4NDIyLCAzLjk3MzQxLCA1LjA4NTE5IiwgXAotICAgICAgICAgICIwLjE4Njc5NCwgMC45NjI2NTcsIDEuNzM3OTMsIDIuMjk3MywgMy4xODgwNiwgMy45NzE3NywgNS4wNzExNCIsIFwKLSAgICAgICAgICAiMC4xODg0NjgsIDAuOTYxOTE5LCAxLjczNzk2LCAyLjI5NzMxLCAzLjE4NDAxLCAzLjk3Mjc3LCA1LjA3MzE4Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTAxMDE0LCAwLjM5NjcxMSwgMC42ODU1ODQsIDAuODkxNDA2LCAxLjIyMDE1LCAxLjUwNzI4LCAxLjkxNzE0IiwgXAotICAgICAgICAgICIwLjExMTA4MywgMC40MDY4MzcsIDAuNjk1NzcsIDAuOTAxNDksIDEuMjMwMDQsIDEuNTE3NDgsIDEuOTI3NDMiLCBcCi0gICAgICAgICAgIjAuMTI0MDQ5LCAwLjQxOTgxOSwgMC43MDg4MTMsIDAuOTE0NTY1LCAxLjI0MzE0LCAxLjUzMDIyLCAxLjk0MDU3IiwgXAotICAgICAgICAgICIwLjEzNzgxOSwgMC40MzM2MDksIDAuNzIyNjkyLCAwLjkyODQ4MywgMS4yNTcxMywgMS41NDQ1NiwgMS45NTQxOSIsIFwKLSAgICAgICAgICAiMC4xNTAzNTgsIDAuNDQ2MTU4LCAwLjczNTI1NiwgMC45NDA5NzYsIDEuMjY5NzEsIDEuNTU3MTgsIDEuOTY2NzgiLCBcCi0gICAgICAgICAgIjAuMTcyNTc4LCAwLjQ2NzM4NCwgMC43NTYzNjgsIDAuOTYyMDg2LCAxLjI5MDkzLCAxLjU3ODE5LCAxLjk4NzkiLCBcCi0gICAgICAgICAgIjAuMTkxODA5LCAwLjQ4NTkxMiwgMC43NzQ5MjMsIDAuOTgwNzcsIDEuMzA5MzUsIDEuNTk2OTMsIDIuMDA3MDIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNjkzMzcsIDAuNzE3ODY3LCAxLjI2Njk3LCAxLjY1ODM3LCAyLjI4NTg5LCAyLjgzNDM2LCAzLjYxNzM0IiwgXAotICAgICAgICAgICIwLjE2ODgyMywgMC43MTc4MjQsIDEuMjY2NCwgMS42NTgyNCwgMi4yODUwNywgMi44MzI2OCwgMy42MTYzOCIsIFwKLSAgICAgICAgICAiMC4xNjgwMzksIDAuNzE3ODY4LCAxLjI2NjYyLCAxLjY1ODE5LCAyLjI4NDcxLCAyLjgzMzY4LCAzLjYxNjc0IiwgXAotICAgICAgICAgICIwLjE2OTE2MywgMC43MTc3ODMsIDEuMjY2MzUsIDEuNjU4NzEsIDIuMjg1MDcsIDIuODMzMDEsIDMuNjE3MyIsIFwKLSAgICAgICAgICAiMC4xNzIzMjksIDAuNzE3Nzk3LCAxLjI2NjQxLCAxLjY1ODU4LCAyLjI4NDk2LCAyLjgzNDQzLCAzLjYxNjM4IiwgXAotICAgICAgICAgICIwLjE3OTMzMywgMC43MTc3NDUsIDEuMjY2NjgsIDEuNjU4NjEsIDIuMjg1MDQsIDIuODMzMzMsIDMuNjE2OTciLCBcCi0gICAgICAgICAgIjAuMTg3MjY2LCAwLjcxNzY3NCwgMS4yNjY4MiwgMS42NTgzOCwgMi4yODUwNCwgMi44MzMwOSwgMy42MTYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjAiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTI4ODYsIDAuNTMxODc3LCAwLjkzMzczMSwgMS4yMjAwOCwgMS42NzkyNywgMi4wODExMywgMi42NTQyNyIsIFwKLSAgICAgICAgICAiMC4xMzkzNzUsIDAuNTQyNDk3LCAwLjk0NDE0LCAxLjIzMDk5LCAxLjY4OTkxLCAyLjA5MDgxLCAyLjY2NDU1IiwgXAotICAgICAgICAgICIwLjE1MjUxNCwgMC41NTU4MTcsIDAuOTU3NDI1LCAxLjI0NDU3LCAxLjcwMzA3LCAyLjEwNDg1LCAyLjY3ODM2IiwgXAotICAgICAgICAgICIwLjE2NDg2MSwgMC41NjgyMzQsIDAuOTY5ODM5LCAxLjI1NjYyLCAxLjcxNjE4LCAyLjExNzA2LCAyLjY5MDU4IiwgXAotICAgICAgICAgICIwLjE3NzIwNCwgMC41ODA3MjcsIDAuOTgyNDg5LCAxLjI2OTAxLCAxLjcyNzgxLCAyLjEzMDM3LCAyLjcwMzE1IiwgXAotICAgICAgICAgICIwLjE5NjI3NiwgMC41OTk3MywgMS4wMDE3MSwgMS4yODg2MiwgMS43NDc1MiwgMi4xNDkyNSwgMi43MjI0NyIsIFwKLSAgICAgICAgICAiMC4yMTI2NTQsIDAuNjE2MzQ4LCAxLjAxODExLCAxLjMwNDkxLCAxLjc2Mzk5LCAyLjE2NTI4LCAyLjczOTE0Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTk0MDE1LCAwLjk2NzY4OCwgMS43NDA4NSwgMi4yOTQwNiwgMy4xNzkyNCwgMy45NTQ1NywgNS4wNjcxOCIsIFwKLSAgICAgICAgICAiMC4xOTQwMTMsIDAuOTY3Njg2LCAxLjc0MSwgMi4yOTI3MywgMy4xNzkxMywgMy45NTU2MiwgNS4wNjQ1MSIsIFwKLSAgICAgICAgICAiMC4xOTQwMDUsIDAuOTY3OTY0LCAxLjc0MDk3LCAyLjI5MzM5LCAzLjE3OTY1LCAzLjk1NDY0LCA1LjA2MjU1IiwgXAotICAgICAgICAgICIwLjE5NDAwNCwgMC45Njc5MTQsIDEuNzQwOTYsIDIuMjk0MzUsIDMuMTc4OCwgMy45NTQ1NywgNS4wNjM0OSIsIFwKLSAgICAgICAgICAiMC4xOTQ0NjksIDAuOTY4NDAzLCAxLjc0MTQ1LCAyLjI5MzA1LCAzLjE3ODE4LCAzLjk1NDYxLCA1LjA2MzMiLCBcCi0gICAgICAgICAgIjAuMTk2OTEzLCAwLjk2ODUwMSwgMS43NDE0MiwgMi4yOTM2LCAzLjE3ODc4LCAzLjk1NDgxLCA1LjA2Mzg3IiwgXAotICAgICAgICAgICIwLjIwMDM2LCAwLjk2ODUxNCwgMS43NDIxLCAyLjI5MjgyLCAzLjE3ODYyLCAzLjk1NTgzLCA1LjA2MzE2Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg4MTE4LCAwLjM3NzgzOCwgMC42NjUxMjIsIDAuODcwMjQ0LCAxLjE5ODI5LCAxLjQ4NTUyLCAxLjg5NTM5IiwgXAotICAgICAgICAgICIwLjA5OTcyLCAwLjM4OTQwOCwgMC42NzcyMTUsIDAuODgyMTE1LCAxLjIxMDExLCAxLjQ5NzE4LCAxLjkwNjk3IiwgXAotICAgICAgICAgICIwLjExMzIzOSwgMC40MDMzMzIsIDAuNjkwNjQ0LCAwLjg5NTg5NywgMS4yMjM4OCwgMS41MTA4OSwgMS45MjA3NiIsIFwKLSAgICAgICAgICAiMC4xMjY2MTksIDAuNDE2ODY4LCAwLjcwNDMxMiwgMC45MDkzNjcsIDEuMjM3NDIsIDEuNTI0NjksIDEuOTM0MzciLCBcCi0gICAgICAgICAgIjAuMTM5ODI0LCAwLjQzMDM0NCwgMC43MTc3NDUsIDAuOTIyODkxLCAxLjI1MTAzLCAxLjUzODE0LCAxLjk0ODA0IiwgXAotICAgICAgICAgICIwLjE2MTM2NywgMC40NTE4NTQsIDAuNzM5NDI4LCAwLjk0NDUwOSwgMS4yNzI2NCwgMS41NTk3NiwgMS45NzAxMyIsIFwKLSAgICAgICAgICAiMC4xNzk3OTcsIDAuNDY5MzM4LCAwLjc1ODM5OSwgMC45NjM1OTksIDEuMjkyMzMsIDEuNTc4ODMsIDEuOTg4NzMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNDU1ODUsIDAuNjk0MTUzLCAxLjI0MjQsIDEuNjM0MjksIDIuMjYwOTEsIDIuODA4NTMsIDMuNTkxMjUiLCBcCi0gICAgICAgICAgIjAuMTQ1NTc5LCAwLjY5Mzk2OSwgMS4yNDI0NSwgMS42MzQyMywgMi4yNjAxNCwgMi44MDkwNywgMy41OTEwNCIsIFwKLSAgICAgICAgICAiMC4xNDU1MzksIDAuNjk0MTA1LCAxLjI0MjMxLCAxLjYzMzY2LCAyLjI2MDkxLCAyLjgwODgzLCAzLjU5MTYyIiwgXAotICAgICAgICAgICIwLjE0NjQxNywgMC42OTQwNCwgMS4yNDI0MSwgMS42MzQyOSwgMi4yNjA4NCwgMi44MDg2MSwgMy41OTE3MSIsIFwKLSAgICAgICAgICAiMC4xNDg1NSwgMC42OTQwMjcsIDEuMjQyNDcsIDEuNjM0MTQsIDIuMjYwOSwgMi44MDgyNSwgMy41OTE5NiIsIFwKLSAgICAgICAgICAiMC4xNTQzNzIsIDAuNjk0MDUyLCAxLjI0MjM4LCAxLjYzMzkyLCAyLjI2MDE4LCAyLjgwODksIDMuNTkxMzEiLCBcCi0gICAgICAgICAgIjAuMTYwNTAyLCAwLjY5NDAyMiwgMS4yNDIyNywgMS42MzQxNSwgMi4yNjE0NywgMi44MDkxMSwgMy41OTE3MiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMjA2NiwgMC41MjQxNzEsIDAuOTI2Nzg3LCAxLjIxNDg2LCAxLjY3NDk1LCAyLjA3Nzc1LCAyLjY1MzA5IiwgXAotICAgICAgICAgICIwLjEzMTMyMywgMC41MzUyMzYsIDAuOTM3ODcxLCAxLjIyNjAzLCAxLjY4NTYsIDIuMDg4MTksIDIuNjYzMjMiLCBcCi0gICAgICAgICAgIjAuMTQ0MjA3LCAwLjU0ODMyNCwgMC45NTEwMiwgMS4yMzg3NCwgMS42OTkyNiwgMi4xMDE4NSwgMi42NzY4NCIsIFwKLSAgICAgICAgICAiMC4xNTY2ODYsIDAuNTYxMDAxLCAwLjk2NDA2MiwgMS4yNTE0LCAxLjcxMjMyLCAyLjExNDM5LCAyLjY4OTU3IiwgXAotICAgICAgICAgICIwLjE2ODc3OCwgMC41NzMyMDMsIDAuOTc2MDYxLCAxLjI2Mzk2LCAxLjcyMzcyLCAyLjEyNzQ4LCAyLjcwMjA2IiwgXAotICAgICAgICAgICIwLjE4NzY1LCAwLjU5MjI0MywgMC45OTUzLCAxLjI4MzAxLCAxLjc0MzM4LCAyLjE0NjI3LCAyLjcyMTIyIiwgXAotICAgICAgICAgICIwLjIwMzk3NSwgMC42MDg2NzIsIDEuMDExNjUsIDEuMjk5MzMsIDEuNzU5OCwgMi4xNjIzMiwgMi43Mzc5OSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE4NTM4NSwgMC45NjExMjMsIDEuNzM5MTEsIDIuMjk2NTIsIDMuMTgxOTEsIDMuOTcyNSwgNS4wODU3OSIsIFwKLSAgICAgICAgICAiMC4xODUzNzksIDAuOTYxMDA1LCAxLjczOTQ5LCAyLjI5NzEsIDMuMTgzNjIsIDMuOTU5LCA1LjA3NjM0IiwgXAotICAgICAgICAgICIwLjE4NTM2OCwgMC45NjEwMjQsIDEuNzM3NjUsIDIuMjk3MywgMy4xODk5NiwgMy45NzE4MywgNS4wNzc5MyIsIFwKLSAgICAgICAgICAiMC4xODUyNTUsIDAuOTYxMDM1LCAxLjczNzE4LCAyLjI5NTc0LCAzLjE5MDA5LCAzLjk3MTc4LCA1LjA3Nzc5IiwgXAotICAgICAgICAgICIwLjE4NTkxNCwgMC45NjEwMjUsIDEuNzM3ODEsIDIuMjk2MzYsIDMuMTg5NzIsIDMuOTczNSwgNS4wODUyNCIsIFwKLSAgICAgICAgICAiMC4xODg2NTgsIDAuOTYxMDQsIDEuNzM3MjEsIDIuMjkyODUsIDMuMTg4NjksIDMuOTYwMzcsIDUuMDcyOTYiLCBcCi0gICAgICAgICAgIjAuMTkyNDY4LCAwLjk2MTA4LCAxLjczNjQ2LCAyLjI5NTMsIDMuMTg4MjUsIDMuOTYzNDksIDUuMDg1ODgiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODMxNTEsIDAuMzcyODk2LCAwLjY2MDI0NiwgMC44NjUyOTYsIDEuMTkzMzMsIDEuNDgwMzMsIDEuODkwODEiLCBcCi0gICAgICAgICAgIjAuMDkzNTMyLCAwLjM4MzI5OSwgMC42NzA4MjQsIDAuODc2MjcsIDEuMjA0MDIsIDEuNDkwOSwgMS45MDA5OSIsIFwKLSAgICAgICAgICAiMC4xMDY1MDYsIDAuMzk2NjA0LCAwLjY4Mzk5NCwgMC44ODkwNzYsIDEuMjE3OCwgMS41MDQzNywgMS45MTQwNiIsIFwKLSAgICAgICAgICAiMC4xMjAxMTQsIDAuNDA5ODc3LCAwLjY5NzY3MywgMC45MDI1NzMsIDEuMjMwNjQsIDEuNTE3NjMsIDEuOTI3NTMiLCBcCi0gICAgICAgICAgIjAuMTMyNzUsIDAuNDIyOTQ4LCAwLjcxMDQxLCAwLjkxNTQ4NywgMS4yNDM1NiwgMS41MzA3MSwgMS45NDA2NiIsIFwKLSAgICAgICAgICAiMC4xNTQ4NDgsIDAuNDQ0MDU2LCAwLjczMTU4MiwgMC45MzY2MzIsIDEuMjY1MTYsIDEuNTUyNDMsIDEuOTYyNDMiLCBcCi0gICAgICAgICAgIjAuMTczOTU2LCAwLjQ2MjUyNSwgMC43NTAwNzUsIDAuOTU1MTQxLCAxLjI4MzM0LCAxLjU3MDUyLCAxLjk4MDM0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTQ1NjE1LCAwLjY5NDAyOCwgMS4yNDIxOSwgMS42MzQxNywgMi4yNjA3MSwgMi44MDg3NCwgMy41OTE2OSIsIFwKLSAgICAgICAgICAiMC4xNDU1NzQsIDAuNjkzOTE2LCAxLjI0MjM3LCAxLjYzMzk0LCAyLjI2MTAxLCAyLjgwODgzLCAzLjU5MTMyIiwgXAotICAgICAgICAgICIwLjE0NTY4NSwgMC42OTQwMzQsIDEuMjQyMzcsIDEuNjM0MjUsIDIuMjYxMzksIDIuODA4NjksIDMuNTkxMzgiLCBcCi0gICAgICAgICAgIjAuMTQ3OTc0LCAwLjY5Mzk4OCwgMS4yNDI1MywgMS42MzM2OSwgMi4yNjA0OCwgMi44MDkwMywgMy41OTExNiIsIFwKLSAgICAgICAgICAiMC4xNTI0OTksIDAuNjk0MDMxLCAxLjI0MjM3LCAxLjYzNDMsIDIuMjYwMjMsIDIuODA5MDcsIDMuNTkxMjEiLCBcCi0gICAgICAgICAgIjAuMTYxMjYxLCAwLjY5Mzk1MSwgMS4yNDI1NCwgMS42MzQxNiwgMi4yNjA0NiwgMi44MDg3MiwgMy41OTE2MSIsIFwKLSAgICAgICAgICAiMC4xNzEwMDUsIDAuNjk0MTY1LCAxLjI0MjM2LCAxLjYzNDI1LCAyLjI2MDk3LCAyLjgwOTI0LCAzLjU5MTIzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwMDkyOCwgMC41MDQxNDYsIDAuOTA1OTA5LCAxLjE5MjQxLCAxLjY1MTg5LCAyLjA1MzYzLCAyLjYyNjM0IiwgXAotICAgICAgICAgICIwLjExMDQwOSwgMC41MTM5OTksIDAuOTE1Njk5LCAxLjIwMjM2LCAxLjY2MTQ5LCAyLjA2Mjk3LCAyLjYzNjI1IiwgXAotICAgICAgICAgICIwLjEyMjMyNiwgMC41MjYxMjMsIDAuOTI3OTk2LCAxLjIxNDcyLCAxLjY3NDI3LCAyLjA3NTM4LCAyLjY0ODY0IiwgXAotICAgICAgICAgICIwLjEzNDY3OSwgMC41Mzg4NjUsIDAuOTQwNzc0LCAxLjIyNzU5LCAxLjY4NjQzLCAyLjA4ODM1LCAyLjY2MTY4IiwgXAotICAgICAgICAgICIwLjE0NzI0MSwgMC41NTA1MzUsIDAuOTUyNTMyLCAxLjIzOTM2LCAxLjY5ODUzLCAyLjA5OTY0LCAyLjY3MzA1IiwgXAotICAgICAgICAgICIwLjE2NzEyNCwgMC41NzAwOTcsIDAuOTcyMTkyLCAxLjI1OSwgMS43MTgzLCAyLjExOTEsIDIuNjkzMDkiLCBcCi0gICAgICAgICAgIjAuMTg0NzYsIDAuNTg3MjI2LCAwLjk4OTAzOSwgMS4yNzY0MywgMS43MzQ3OSwgMi4xMzY5MSwgMi43MDk1MyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE5Mjc1NiwgMC45Njc5NDksIDEuNzQxNDQsIDIuMjkzMDUsIDMuMTg5NiwgMy45NzMzMiwgNS4wODUxNCIsIFwKLSAgICAgICAgICAiMC4xOTIwMzYsIDAuOTY3OTIxLCAxLjc0MDg2LCAyLjI5NDMzLCAzLjE4NzkzLCAzLjk2NDE0LCA1LjA4NTgiLCBcCi0gICAgICAgICAgIjAuMTkwNzI2LCAwLjk2ODc2NCwgMS43NDA4MywgMi4yOTU0MSwgMy4xODkzMiwgMy45NjI4MywgNS4wNzI3MiIsIFwKLSAgICAgICAgICAiMC4xOTIwOTIsIDAuOTY3NjkzLCAxLjc0MjEsIDIuMjk1MjIsIDMuMTgzNywgMy45NzI1MSwgNS4wNzM3MSIsIFwKLSAgICAgICAgICAiMC4xOTU0NTYsIDAuOTY4NDk2LCAxLjc0MDgyLCAyLjI5MzA2LCAzLjE4ODY2LCAzLjk2MzAxLCA1LjA3NjUxIiwgXAotICAgICAgICAgICIwLjIwMzQ2NywgMC45Njc4MzQsIDEuNzQxNDMsIDIuMjk2NTQsIDMuMTg5NjMsIDMuOTYzODEsIDUuMDg2MDMiLCBcCi0gICAgICAgICAgIjAuMjEyMTY4LCAwLjk2NzU4MSwgMS43NDE5MSwgMi4yOTY3NSwgMy4xODM5OCwgMy45NjAzNSwgNS4wNzc2OCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzNTg0MSwgMC4xODE3ODcsIDAuMzI3Njk5LCAwLjQzMTkyNCwgMC41OTg0OTQsIDAuNzQ0MzA3LCAwLjk1MjU3MyIsIFwKLSAgICAgICAgICAiMC4wNDc2MDcsIDAuMTkzNzk2LCAwLjMzOTY1MSwgMC40NDM4NDcsIDAuNjEwNDc1LCAwLjc1NjMzNSwgMC45NjQ1NTMiLCBcCi0gICAgICAgICAgIjAuMDYyNjQsIDAuMjA4NDU3LCAwLjM1MzI4LCAwLjQ1NzQ2OSwgMC42MjQxNTUsIDAuNzY5OTY0LCAwLjk3ODIwOCIsIFwKLSAgICAgICAgICAiMC4wNzc2ODIsIDAuMjIzMjUsIDAuMzY5MTE3LCAwLjQ3MzE1NSwgMC42Mzk4NDcsIDAuNzg1Njk0LCAwLjk5MDE4OCIsIFwKLSAgICAgICAgICAiMC4wOTIzMDgsIDAuMjM4MTUyLCAwLjM4NDI2OCwgMC40ODgzNDIsIDAuNjU0ODQ3LCAwLjgwMDYzOCwgMS4wMDg1NiIsIFwKLSAgICAgICAgICAiMC4xMTMxNTIsIDAuMjYyNjIxLCAwLjQwNzU2NSwgMC41MTE1OCwgMC42Nzc5NjQsIDAuODI1MDMzLCAxLjAzMzAzIiwgXAotICAgICAgICAgICIwLjEyOTYyNCwgMC4yODI0NTcsIDAuNDI4MTc3LCAwLjUzMjEyNCwgMC42OTg3LCAwLjg0NDU3OSwgMS4wNTI5MSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3Mzc2NSwgMC4zNjIzODcsIDAuNjUxNzc3LCAwLjg1ODc1NCwgMS4xODkzOCwgMS40Nzk0MiwgMS44OTI5OSIsIFwKLSAgICAgICAgICAiMC4wNzQwMjMsIDAuMzYyNDA1LCAwLjY1MTgxOCwgMC44NTg1NCwgMS4xODkzNCwgMS40Nzk0NywgMS44OTMzNSIsIFwKLSAgICAgICAgICAiMC4wNzc3MTMsIDAuMzYyNDAyLCAwLjY1MTgyMSwgMC44NTg1MDUsIDEuMTg5NjMsIDEuNDc5NDYsIDEuODkzMjMiLCBcCi0gICAgICAgICAgIjAuMDgzOTIyLCAwLjM2MjQwNiwgMC42NTE4NjEsIDAuODU4NTUyLCAxLjE4OTUyLCAxLjQ3OTUyLCAxLjg5MzI2IiwgXAotICAgICAgICAgICIwLjA5MTYxMSwgMC4zNjI3MDcsIDAuNjUxODc0LCAwLjg1ODY1OCwgMS4xODk2NywgMS40NzkyNiwgMS44OTI5OSIsIFwKLSAgICAgICAgICAiMC4xMDU2NDIsIDAuMzY1NDM5LCAwLjY1MTg0MiwgMC44NTg1NywgMS4xODk2MSwgMS40Nzk0NywgMS44OTI3MyIsIFwKLSAgICAgICAgICAiMC4xMTkxMDcsIDAuMzcwNTY2LCAwLjY1MjE5NCwgMC44NTg2NywgMS4xODk1NiwgMS40Nzk0NCwgMS44OTMwMyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMzYwOSwgMC4wMTM2MDgsIDAuMDEzNjA2LCAwLjAxMzYwMywgMC4wMTM2MDEsIDAuMDEzNTk5LCAwLjAxMzU5NCIsIFwKLSAgICAgICAgICAiMC4wMTM1NzQsIDAuMDEzNTg2LCAwLjAxMzU4MywgMC4wMTM1ODIsIDAuMDEzNTgyLCAwLjAxMzU3NiwgMC4wMTM1NjgiLCBcCi0gICAgICAgICAgIjAuMDEzNTUyLCAwLjAxMzU3NiwgMC4wMTM1NzgsIDAuMDEzNTc2LCAwLjAxMzU3MiwgMC4wMTM1NzEsIDAuMDEzNTcxIiwgXAotICAgICAgICAgICIwLjAxMzUzNywgMC4wMTM1NzEsIDAuMDEzNTc0LCAwLjAxMzU3MiwgMC4wMTM1NzQsIDAuMDEzNTcyLCAwLjAxMzU2NSIsIFwKLSAgICAgICAgICAiMC4wMTM1MjYsIDAuMDEzNTY3LCAwLjAxMzU3MSwgMC4wMTM1NzMsIDAuMDEzNTcsIDAuMDEzNTY2LCAwLjAxMzU2MyIsIFwKLSAgICAgICAgICAiMC4wMTM1MTIsIDAuMDEzNTYsIDAuMDEzNTY2LCAwLjAxMzU2NywgMC4wMTM1NjcsIDAuMDEzNTY2LCAwLjAxMzU2NSIsIFwKLSAgICAgICAgICAiMC4wMTM1MDIsIDAuMDEzNTU1LCAwLjAxMzU2MywgMC4wMTM1NjUsIDAuMDEzNTY2LCAwLjAxMzU2NSwgMC4wMTM1NiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0OTA1LCAwLjAwNDkwMSwgMC4wMDQ4OTcsIDAuMDA0ODk3LCAwLjAwNDg5MiwgMC4wMDQ4OTEsIDAuMDA0ODg1IiwgXAotICAgICAgICAgICIwLjAwNDgzNiwgMC4wMDQ4MzUsIDAuMDA0ODMzLCAwLjAwNDgzMywgMC4wMDQ4MzEsIDAuMDA0ODI5LCAwLjAwNDgyNCIsIFwKLSAgICAgICAgICAiMC4wMDQ3OTUsIDAuMDA0ODA3LCAwLjAwNDgwMywgMC4wMDQ4MDQsIDAuMDA0OCwgMC4wMDQ3OTYsIDAuMDA0NzkyIiwgXAotICAgICAgICAgICIwLjAwNDc2NSwgMC4wMDQ3ODYsIDAuMDA0NzkxLCAwLjAwNDc4NiwgMC4wMDQ3ODUsIDAuMDA0NzgzLCAwLjAwNDc3OSIsIFwKLSAgICAgICAgICAiMC4wMDQ3NDYsIDAuMDA0Nzc3LCAwLjAwNDc4MywgMC4wMDQ3ODEsIDAuMDA0Nzc4LCAwLjAwNDc3NywgMC4wMDQ3NzIiLCBcCi0gICAgICAgICAgIjAuMDA0NzE5LCAwLjAwNDc2MywgMC4wMDQ3NjgsIDAuMDA0NzcxLCAwLjAwNDc2OSwgMC4wMDQ3NjgsIDAuMDA0NzY0IiwgXAotICAgICAgICAgICIwLjAwNDcwMiwgMC4wMDQ3NTIsIDAuMDA0NzYyLCAwLjAwNDc2MiwgMC4wMDQ3NjQsIDAuMDA0NzYzLCAwLjAwNDc2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEyMzUxLCAwLjAxMjM2LCAwLjAxMjM1OSwgMC4wMTIzNTgsIDAuMDEyMzU0LCAwLjAxMjM1NSwgMC4wMTIzNTUiLCBcCi0gICAgICAgICAgIjAuMDEyMzM0LCAwLjAxMjM3MywgMC4wMTIzNzUsIDAuMDEyMzc3LCAwLjAxMjM3OCwgMC4wMTIzNzYsIDAuMDEyMzY4IiwgXAotICAgICAgICAgICIwLjAxMjMsIDAuMDEyMzY0LCAwLjAxMjM3NiwgMC4wMTIzNzYsIDAuMDEyMzc0LCAwLjAxMjM3NywgMC4wMTIzODEiLCBcCi0gICAgICAgICAgIjAuMDEyMjcyLCAwLjAxMjM2LCAwLjAxMjM3MiwgMC4wMTIzNzcsIDAuMDEyMzc1LCAwLjAxMjM3NSwgMC4wMTIzNzUiLCBcCi0gICAgICAgICAgIjAuMDEyMjQ5LCAwLjAxMjM1LCAwLjAxMjM2NiwgMC4wMTIzNjgsIDAuMDEyMzc0LCAwLjAxMjM3MywgMC4wMTIzNzMiLCBcCi0gICAgICAgICAgIjAuMDEyMjIxLCAwLjAxMjMzNSwgMC4wMTIzNTUsIDAuMDEyMzYsIDAuMDEyMzY3LCAwLjAxMjM2OCwgMC4wMTIzNzIiLCBcCi0gICAgICAgICAgIjAuMDEyMjA1LCAwLjAxMjMyMiwgMC4wMTIzNDcsIDAuMDEyMzU2LCAwLjAxMjM2MSwgMC4wMTIzNjUsIDAuMDEyMzY2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQ5MDMsIDAuMDA0OTAxLCAwLjAwNDkwMSwgMC4wMDQ5LCAwLjAwNDg5NiwgMC4wMDQ4OSwgMC4wMDQ4ODkiLCBcCi0gICAgICAgICAgIjAuMDA0ODMsIDAuMDA0ODM2LCAwLjAwNDgzNiwgMC4wMDQ4MzQsIDAuMDA0ODI3LCAwLjAwNDgyOCwgMC4wMDQ4MjciLCBcCi0gICAgICAgICAgIjAuMDA0NzgxLCAwLjAwNDgwNCwgMC4wMDQ4MDIsIDAuMDA0ODAyLCAwLjAwNDc5NywgMC4wMDQ3OTgsIDAuMDA0Nzk0IiwgXAotICAgICAgICAgICIwLjAwNDc1MiwgMC4wMDQ3ODQsIDAuMDA0Nzg3LCAwLjAwNDc4NywgMC4wMDQ3ODgsIDAuMDA0Nzg3LCAwLjAwNDc4MyIsIFwKLSAgICAgICAgICAiMC4wMDQ3MjQsIDAuMDA0NzY4LCAwLjAwNDc3NiwgMC4wMDQ3NzQsIDAuMDA0Nzc1LCAwLjAwNDc3NSwgMC4wMDQ3NzEiLCBcCi0gICAgICAgICAgIjAuMDA0NzAxLCAwLjAwNDc1NCwgMC4wMDQ3NjEsIDAuMDA0NzY1LCAwLjAwNDc2NCwgMC4wMDQ3NjQsIDAuMDA0NzYxIiwgXAotICAgICAgICAgICIwLjAwNDY4NiwgMC4wMDQ3NDQsIDAuMDA0NzU1LCAwLjAwNDc1OCwgMC4wMDQ3NTgsIDAuMDA0NzU3LCAwLjAwNDc1NiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMDc1MywgMC4wMTA3NTMsIDAuMDEwNzUsIDAuMDEwNzQ5LCAwLjAxMDc0NCwgMC4wMTA3NDEsIDAuMDEwNzM5IiwgXAotICAgICAgICAgICIwLjAxMDcxNywgMC4wMTA3MjgsIDAuMDEwNzI5LCAwLjAxMDcyMiwgMC4wMTA3MjIsIDAuMDEwNzI4LCAwLjAxMDcyMyIsIFwKLSAgICAgICAgICAiMC4wMTA2OTYsIDAuMDEwNzE5LCAwLjAxMDcyLCAwLjAxMDcxNiwgMC4wMTA3MTcsIDAuMDEwNzI1LCAwLjAxMDcxIiwgXAotICAgICAgICAgICIwLjAxMDY4LCAwLjAxMDcxMywgMC4wMTA3MTUsIDAuMDEwNzE1LCAwLjAxMDcxNCwgMC4wMTA3MTQsIDAuMDEwNzA3IiwgXAotICAgICAgICAgICIwLjAxMDY2OSwgMC4wMTA3MSwgMC4wMTA3MTIsIDAuMDEwNzE0LCAwLjAxMDcxNCwgMC4wMTA3MDksIDAuMDEwNzA3IiwgXAotICAgICAgICAgICIwLjAxMDY1NywgMC4wMTA3MDIsIDAuMDEwNzA5LCAwLjAxMDcxLCAwLjAxMDcwOSwgMC4wMTA3MDgsIDAuMDEwNzA1IiwgXAotICAgICAgICAgICIwLjAxMDY0NywgMC4wMTA2OTgsIDAuMDEwNzA2LCAwLjAxMDcwOSwgMC4wMTA3MDgsIDAuMDEwNzA5LCAwLjAxMDcwMyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyMzI3LCAwLjAwMjMyOCwgMC4wMDIzMjYsIDAuMDAyMzI2LCAwLjAwMjMyNCwgMC4wMDIzMjIsIDAuMDAyMzIiLCBcCi0gICAgICAgICAgIjAuMDAyMzA0LCAwLjAwMjMyMiwgMC4wMDIzMjQsIDAuMDAyMzI0LCAwLjAwMjMyMywgMC4wMDIzMjIsIDAuMDAyMzI0IiwgXAotICAgICAgICAgICIwLjAwMjI2NiwgMC4wMDIzMTcsIDAuMDAyMzIyLCAwLjAwMjMyMiwgMC4wMDIzMjQsIDAuMDAyMzIzLCAwLjAwMjMyNCIsIFwKLSAgICAgICAgICAiMC4wMDIyMzEsIDAuMDAyMzA3LCAwLjAwMjMxNiwgMC4wMDIzMTksIDAuMDAyMzIyLCAwLjAwMjMyMSwgMC4wMDIzMjEiLCBcCi0gICAgICAgICAgIjAuMDAyMjAxLCAwLjAwMjI5NywgMC4wMDIzMTEsIDAuMDAyMzE1LCAwLjAwMjMxOSwgMC4wMDIzMTgsIDAuMDAyMzE5IiwgXAotICAgICAgICAgICIwLjAwMjE2MywgMC4wMDIyODIsIDAuMDAyMzAyLCAwLjAwMjMwNywgMC4wMDIzMTMsIDAuMDAyMzE1LCAwLjAwMjMxNiIsIFwKLSAgICAgICAgICAiMC4wMDIxMzcsIDAuMDAyMjY0LCAwLjAwMjI5NCwgMC4wMDIzMDIsIDAuMDAyMzA3LCAwLjAwMjMxMSwgMC4wMDIzMTIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDk0MDksIDAuMDA5NDE3LCAwLjAwOTQxNywgMC4wMDk0MTYsIDAuMDA5NDE3LCAwLjAwOTQwOSwgMC4wMDk0MTMiLCBcCi0gICAgICAgICAgIjAuMDA5MzkxLCAwLjAwOTQzMSwgMC4wMDk0MzYsIDAuMDA5NDMsIDAuMDA5NDM0LCAwLjAwOTQzMywgMC4wMDk0MzEiLCBcCi0gICAgICAgICAgIjAuMDA5MzU3LCAwLjAwOTQyNCwgMC4wMDk0MzMsIDAuMDA5NDM1LCAwLjAwOTQzOCwgMC4wMDk0MzMsIDAuMDA5NDM1IiwgXAotICAgICAgICAgICIwLjAwOTMyNywgMC4wMDk0MTQsIDAuMDA5NDI3LCAwLjAwOTQyOCwgMC4wMDk0MzMsIDAuMDA5NDMzLCAwLjAwOTQzNiIsIFwKLSAgICAgICAgICAiMC4wMDkzMDUsIDAuMDA5NDA0LCAwLjAwOTQyLCAwLjAwOTQyNSwgMC4wMDk0MjgsIDAuMDA5NDI5LCAwLjAwOTQyOCIsIFwKLSAgICAgICAgICAiMC4wMDkyNzksIDAuMDA5MzksIDAuMDA5NDExLCAwLjAwOTQxOCwgMC4wMDk0MjMsIDAuMDA5NDI1LCAwLjAwOTQyNiIsIFwKLSAgICAgICAgICAiMC4wMDkyNiwgMC4wMDkzNzksIDAuMDA5NDA0LCAwLjAwOTQxMiwgMC4wMDk0MTgsIDAuMDA5NDI0LCAwLjAwOTQyMyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyMzI0LCAwLjAwMjMyNiwgMC4wMDIzMjgsIDAuMDAyMzI0LCAwLjAwMjMyMSwgMC4wMDIzMiwgMC4wMDIzMyIsIFwKLSAgICAgICAgICAiMC4wMDIyOTMsIDAuMDAyMzIsIDAuMDAyMzIzLCAwLjAwMjMyMiwgMC4wMDIzMiwgMC4wMDIzMjEsIDAuMDAyMzIzIiwgXAotICAgICAgICAgICIwLjAwMjI1MSwgMC4wMDIzMTIsIDAuMDAyMzE4LCAwLjAwMjMyMSwgMC4wMDIzMjEsIDAuMDAyMzIxLCAwLjAwMjMxOSIsIFwKLSAgICAgICAgICAiMC4wMDIyMTMsIDAuMDAyMjk5LCAwLjAwMjMxMSwgMC4wMDIzMTUsIDAuMDAyMzE3LCAwLjAwMjMxOSwgMC4wMDIzMTgiLCBcCi0gICAgICAgICAgIjAuMDAyMTgzLCAwLjAwMjI5LCAwLjAwMjMwNywgMC4wMDIzMTIsIDAuMDAyMzE2LCAwLjAwMjMxNiwgMC4wMDIzMTYiLCBcCi0gICAgICAgICAgIjAuMDAyMTU1LCAwLjAwMjI3NSwgMC4wMDIyOTgsIDAuMDAyMzA1LCAwLjAwMjMxMSwgMC4wMDIzMTIsIDAuMDAyMzE0IiwgXAotICAgICAgICAgICIwLjAwMjEzNSwgMC4wMDIyNjQsIDAuMDAyMjksIDAuMDAyMjk5LCAwLjAwMjMwNSwgMC4wMDIzMDgsIDAuMDAyMzExIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQzAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA4NjE0LCAwLjAwODYyNCwgMC4wMDg2MjQsIDAuMDA4NjIyLCAwLjAwODYyNywgMC4wMDg2MTgsIDAuMDA4NjEyIiwgXAotICAgICAgICAgICIwLjAwODU1OCwgMC4wMDg2MSwgMC4wMDg2MTUsIDAuMDA4NjE1LCAwLjAwODYxNCwgMC4wMDg2MTIsIDAuMDA4NjA3IiwgXAotICAgICAgICAgICIwLjAwODUwOSwgMC4wMDg1OTEsIDAuMDA4NjAxLCAwLjAwODYwNCwgMC4wMDg2MDYsIDAuMDA4NjA2LCAwLjAwODYwMSIsIFwKLSAgICAgICAgICAiMC4wMDg0NzcsIDAuMDA4NTgsIDAuMDA4NTk2LCAwLjAwODYwMSwgMC4wMDg2MDMsIDAuMDA4NjA0LCAwLjAwODYwMiIsIFwKLSAgICAgICAgICAiMC4wMDg0NTksIDAuMDA4NTY2LCAwLjAwODU4NSwgMC4wMDg1OTMsIDAuMDA4NTk2LCAwLjAwODU5OCwgMC4wMDg1OTciLCBcCi0gICAgICAgICAgIjAuMDA4NDM5LCAwLjAwODU0NywgMC4wMDg1NzQsIDAuMDA4NTgyLCAwLjAwODU5LCAwLjAwODU5MiwgMC4wMDg1ODkiLCBcCi0gICAgICAgICAgIjAuMDA4NDMsIDAuMDA4NTMzLCAwLjAwODU2NSwgMC4wMDg1NzQsIDAuMDA4NTgxLCAwLjAwODU4NCwgMC4wMDg1ODYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDI2NywgMC4wMDAyOTIsIDAuMDAwMjk0LCAwLjAwMDI5NSwgMC4wMDAyOTYsIDAuMDAwMjk2LCAwLjAwMDI5NiIsIFwKLSAgICAgICAgICAiMC4wMDAyNDksIDAuMDAwMzQ4LCAwLjAwMDM1OSwgMC4wMDAzNjMsIDAuMDAwMzY2LCAwLjAwMDM2NywgMC4wMDAzNjgiLCBcCi0gICAgICAgICAgIjAuMDAwMjAxLCAwLjAwMDM1NywgMC4wMDAzNzksIDAuMDAwMzg2LCAwLjAwMDM5MSwgMC4wMDAzOTQsIDAuMDAwMzk3IiwgXAotICAgICAgICAgICIwLjAwMDE2MywgMC4wMDAzNTEsIDAuMDAwMzc5LCAwLjAwMDM4OCwgMC4wMDAzOTUsIDAuMDAwMzk5LCAwLjAwMDQwOCIsIFwKLSAgICAgICAgICAiMC4wMDAxMjIsIDAuMDAwMzM2LCAwLjAwMDM3MywgMC4wMDAzODMsIDAuMDAwMzkzLCAwLjAwMDM5OCwgMC4wMDA0MDMiLCBcCi0gICAgICAgICAgIjAuMDAwMDg4LCAwLjAwMDMyMSwgMC4wMDAzNjUsIDAuMDAwMzc5LCAwLjAwMDM5MiwgMC4wMDAzOTksIDAuMDAwNDA1IiwgXAotICAgICAgICAgICIwLjAwMDA2MiwgMC4wMDAzLCAwLjAwMDM1MywgMC4wMDAzNywgMC4wMDAzODYsIDAuMDAwMzk0LCAwLjAwMDQwMiIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBBT0kyMjFYTCAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoQU9JMjIxWEwpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4wNjEzMTc3OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNTM2MTE1OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDUzMzU3OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDUzNjExNTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxNjUsIDAuMDAwMTY1LCAwLjAwMDE2NSwgMC4wMDAxNjUsIDAuMDAwMTY1LCAwLjAwMDE2NSwgMC4wMDAxNjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxNjgsIDAuMDAwMTY2LCAwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiwgMC4wMDAxNjYiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEExKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA1NjczMDg7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNTYzMDI4OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDU2NzMwODsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAwNDksIDAuMDAwMDQ4LCAwLjAwMDA0OCwgMC4wMDAwNDgsIDAuMDAwMDQ4LCAwLjAwMDA0OCwgMC4wMDAwNDgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxODgsIDAuMDAwMTg4LCAwLjAwMDE4OCwgMC4wMDAxODgsIDAuMDAwMTg4LCAwLjAwMDE4OCwgMC4wMDAxODgiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA1OTQ3MjY7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNTkzMDUzOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDU5NDcyNjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxNjUsIDAuMDAwMTY1LCAwLjAwMDE2NSwgMC4wMDAxNjUsIDAuMDAwMTY1LCAwLjAwMDE2NSwgMC4wMDAxNjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxNjcsIDAuMDAwMTY2LCAwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiwgMC4wMDAxNjYiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIxKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA1ODI1ODU7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNTc4NDU5OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDU4MjU4NTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAwMjMsIDAuMDAwMDIzLCAwLjAwMDAyMywgMC4wMDAwMjMsIDAuMDAwMDIzLCAwLjAwMDAyMywgMC4wMDAwMjMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxODgsIDAuMDAwMTg4LCAwLjAwMDE4OCwgMC4wMDAxODgsIDAuMDAwMTg4LCAwLjAwMDE4OCwgMC4wMDAxODgiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEMwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA1NjYxNTg7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNTY1OTgyOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDU2NjE1ODsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAwNCwgMC4wMDAwNCwgMC4wMDAwNCwgMC4wMDAwNCwgMC4wMDAwNCwgMC4wMDAwNCwgMC4wMDAwNCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDM2NywgMC4wMDAzNjcsIDAuMDAwMzY3LCAwLjAwMDM2NywgMC4wMDAzNjcsIDAuMDAwMzY3LCAwLjAwMDM2NyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjAyODMyMTI7Ci0gICAgZnVuY3Rpb24gOiAiKCEoKChBMCBBMSkrKEIwIEIxKSkrQzApKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTAiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjUxMzUxNiwgMC41OTI3NSwgMS4zMDQ5MSwgMi40OTExNSwgMy42NzU4LCA2LjQ0OTUxLCA4LjAzNDY3IiwgXAotICAgICAgICAgICIwLjUyNTI1NiwgMC42MDQzNjYsIDEuMzE2NDcsIDIuNTAyOTMsIDMuNjg3MzUsIDYuNDYxMzEsIDguMDQ2NCIsIFwKLSAgICAgICAgICAiMC41Mzk3ODgsIDAuNjE5MDY3LCAxLjMzMTI3LCAyLjUxNjk3LCAzLjcwMTg2LCA2LjQ3NTg0LCA4LjA2MTAxIiwgXAotICAgICAgICAgICIwLjU1MzY0OSwgMC42MzI4MDMsIDEuMzQ1MjcsIDIuNTMwOSwgMy43MTU4MSwgNi40ODk3MywgOC4wNzQ5IiwgXAotICAgICAgICAgICIwLjU2Njc4NiwgMC42NDU5NDQsIDEuMzU3ODEsIDIuNTQ0MjEsIDMuNzI4OTYsIDYuNTAzMDIsIDguMDg4MDYiLCBcCi0gICAgICAgICAgIjAuNTg2OTExLCAwLjY2NjE0OCwgMS4zNzc5NiwgMi41NjQyMSwgMy43NDkxMSwgNi41MjMwMywgOC4xMDgyMSIsIFwKLSAgICAgICAgICAiMC42MDM2OCwgMC42ODI4NzEsIDEuMzk0NzksIDIuNTgxMTUsIDMuNzY2MTcsIDYuNTM5OTUsIDguMTI1Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjg3NTE2NiwgMS4wMjczLCAyLjM5NDM4LCA0LjY3ODYzLCA2Ljk2OTA1LCAxMi4yOTUzLCAxNS4zMzk4IiwgXAotICAgICAgICAgICIwLjg3NTIzMSwgMS4wMjY1NCwgMi4zOTQ0NSwgNC42NzgyNSwgNi45NjYxOSwgMTIuMjk0NywgMTUuMzM5MyIsIFwKLSAgICAgICAgICAiMC44NzQ1NTksIDEuMDI3MTksIDIuMzk0MjYsIDQuNjc5MSwgNi45Njc5OCwgMTIuMjk1MywgMTUuMzM5OCIsIFwKLSAgICAgICAgICAiMC44NzQ1NjcsIDEuMDI2NTIsIDIuMzk0NDQsIDQuNjc5MDgsIDYuOTY4NTEsIDEyLjI5NTIsIDE1LjMzOTgiLCBcCi0gICAgICAgICAgIjAuODc0NTcyLCAxLjAyNjUyLCAyLjM5NTIxLCA0LjY3OTQ2LCA2Ljk2ODUyLCAxMi4yOTQ5LCAxNS4zMzk3IiwgXAotICAgICAgICAgICIwLjg3NDU4MSwgMS4wMjczMywgMi4zOTUxNSwgNC42NzkwOCwgNi45Njg0OSwgMTIuMjk1MiwgMTUuMzM5OCIsIFwKLSAgICAgICAgICAiMC44NzQ1NzMsIDEuMDI2NTYsIDIuMzkzNjksIDQuNjc5NjIsIDYuOTY4OTQsIDEyLjI5NTQsIDE1LjMzOTciKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzg5ODY5LCAwLjQ0OTc1NCwgMC45ODQ3MjMsIDEuODcyNDUsIDIuNzU4NDcsIDQuODIyNDIsIDYuMDAxMzIiLCBcCi0gICAgICAgICAgIjAuNDAxNjA5LCAwLjQ2MTQ2NCwgMC45OTY2MDcsIDEuODg0MjQsIDIuNzcwMTQsIDQuODM0MTQsIDYuMDEzIiwgXAotICAgICAgICAgICIwLjQxNTQ4MiwgMC40NzU0MSwgMS4wMTA1NiwgMS44OTgxOCwgMi43ODM4MywgNC44NDgwMiwgNi4wMjcyOCIsIFwKLSAgICAgICAgICAiMC40MjkzMzMsIDAuNDg5MjQyLCAxLjAyNDQ1LCAxLjkxMjE2LCAyLjc5ODE2LCA0Ljg2MjAzLCA2LjA0MTA0IiwgXAotICAgICAgICAgICIwLjQ0MzE3NywgMC41MDMxMjksIDEuMDM4MywgMS45MjYsIDIuODExNzgsIDQuODc1OCwgNi4wNTUwNCIsIFwKLSAgICAgICAgICAiMC40NjUyMzMsIDAuNTI1MTcxLCAxLjA2MDQxLCAxLjk0NzY5LCAyLjgzNDE0LCA0Ljg5Nzk5LCA2LjA3Njg1IiwgXAotICAgICAgICAgICIwLjQ4NDQ2NiwgMC41NDQ0NTUsIDEuMDc5NjgsIDEuOTY3MzksIDIuODUzMzcsIDQuOTE3MywgNi4wOTYyOSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC42ODg4NzUsIDAuODAxMjM0LCAxLjgxMzYyLCAzLjQ5OTUxLCA1LjE4MzAzLCA5LjExMTUxLCAxMS4zNTIiLCBcCi0gICAgICAgICAgIjAuNjg4NzkyLCAwLjgwMTMzNSwgMS44MTQxMywgMy40OTkwNywgNS4xODI4NywgOS4xMTE4MSwgMTEuMzUyMSIsIFwKLSAgICAgICAgICAiMC42ODg3ODUsIDAuODAxMjc3LCAxLjgxMzY5LCAzLjQ5OTAxLCA1LjE4MzUyLCA5LjExMDgyLCAxMS4zNTIiLCBcCi0gICAgICAgICAgIjAuNjg4NzQ3LCAwLjgwMTI1MiwgMS44MTM0MywgMy40OTg4MywgNS4xODI5NywgOS4xMTIyNywgMTEuMzUyMiIsIFwKLSAgICAgICAgICAiMC42ODg2NzUsIDAuODAxMjk4LCAxLjgxNDEsIDMuNDk5MDcsIDUuMTgyOTMsIDkuMTExMjcsIDExLjM1MjIiLCBcCi0gICAgICAgICAgIjAuNjg4NjUyLCAwLjgwMTE1NiwgMS44MTM2LCAzLjQ5OTY3LCA1LjE4MzQ2LCA5LjExMTgzLCAxMS4zNTIxIiwgXAotICAgICAgICAgICIwLjY4ODQ5NiwgMC44MDExOTgsIDEuODEzMTksIDMuNDk5NzEsIDUuMTg0MDYsIDkuMTExODIsIDExLjM1MjEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjUwMzYzMywgMC41ODI3NzgsIDEuMjk0NjYsIDIuNDgwNzYsIDMuNjY1MjMsIDYuNDM5MDYsIDguMDI0MiIsIFwKLSAgICAgICAgICAiMC41MTU3MDcsIDAuNTk0ODg5LCAxLjMwNjM3LCAyLjQ5MjcsIDMuNjc3MzQsIDYuNDUxMzIsIDguMDM2MzQiLCBcCi0gICAgICAgICAgIjAuNTMwMjc2LCAwLjYwOTQyMSwgMS4zMjEzOSwgMi41MDY4MiwgMy42OTE5NSwgNi40NjU4NSwgOC4wNTEwMiIsIFwKLSAgICAgICAgICAiMC41NDQxMTQsIDAuNjIzMjE5LCAxLjMzNTUyLCAyLjUyMTAyLCAzLjcwNTg1LCA2LjQ3OTc0LCA4LjA2NDkyIiwgXAotICAgICAgICAgICIwLjU1NzIwNCwgMC42MzYzNiwgMS4zNDgwMywgMi41MzQ0MiwgMy43MTg5NiwgNi40OTI5NSwgOC4wNzgwOCIsIFwKLSAgICAgICAgICAiMC41NzcyMDIsIDAuNjU2NDQyLCAxLjM2ODEzLCAyLjU1NDMsIDMuNzM5MTMsIDYuNTEzMDUsIDguMDk4MjQiLCBcCi0gICAgICAgICAgIjAuNTkzOTk4LCAwLjY3MzExNiwgMS4zODUxMiwgMi41NzEyOCwgMy43NTU3MywgNi41Mjk5NywgOC4xMTUwOSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC44NjM1OTcsIDEuMDE2NDcsIDIuMzg0MDMsIDQuNjg0OSwgNi45NjA5OSwgMTIuMjgyOSwgMTUuMzI3NiIsIFwKLSAgICAgICAgICAiMC44NjQ1MDgsIDEuMDE2NTMsIDIuMzgyNDIsIDQuNjg0NTMsIDYuOTYwOTYsIDEyLjI4MzQsIDE1LjMyNzYiLCBcCi0gICAgICAgICAgIjAuODYzNiwgMS4wMTU1LCAyLjM4NzA3LCA0LjY3MzE3LCA2Ljk1NzU1LCAxMi4yODMxLCAxNS4zMjc2IiwgXAotICAgICAgICAgICIwLjg2MzYxMiwgMS4wMTU2NiwgMi4zODc4OSwgNC42ODM5LCA2Ljk2MDY1LCAxMi4yODMxLCAxNS4zMjc2IiwgXAotICAgICAgICAgICIwLjg2MzYxNSwgMS4wMTU1LCAyLjM4Mzk0LCA0LjY3MDcsIDYuOTU3NzcsIDEyLjI4MzIsIDE1LjMyNzUiLCBcCi0gICAgICAgICAgIjAuODYzNjU4LCAxLjAxNjQ5LCAyLjM4ODE4LCA0LjY4Mzg5LCA2Ljk2MDYyLCAxMi4yODMxLCAxNS4zMjc2IiwgXAotICAgICAgICAgICIwLjg2Mzg1MywgMS4wMTY0NywgMi4zODMwMiwgNC42NzA0NiwgNi45NjAzOCwgMTIuMjgyOCwgMTUuMzI3NSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zODQwODQsIDAuNDQzOTk5LCAwLjk3OTA0NywgMS44NjY1MywgMi43NTI1LCA0LjgxNjU2LCA1Ljk5NTY0IiwgXAotICAgICAgICAgICIwLjM5NDQzMSwgMC40NTQzNzksIDAuOTg5NDE1LCAxLjg3NjY1LCAyLjc2MzEsIDQuODI3MDYsIDYuMDA2MDMiLCBcCi0gICAgICAgICAgIjAuNDA3NzAyLCAwLjQ2NzcwMSwgMS4wMDI4LCAxLjg4OTc0LCAyLjc3NjE5LCA0Ljg0MDI1LCA2LjAxOTUiLCBcCi0gICAgICAgICAgIjAuNDIxMDg1LCAwLjQ4MTA2NywgMS4wMTYyMiwgMS45MDM5NCwgMi43ODk2NywgNC44NTM3MSwgNi4wMzI5MyIsIFwKLSAgICAgICAgICAiMC40MzQ2MzMsIDAuNDk0NTQ0LCAxLjAyOTU2LCAxLjkxNzA1LCAyLjgwMzM0LCA0Ljg2NzM2LCA2LjA0NjMzIiwgXAotICAgICAgICAgICIwLjQ1NjEyMiwgMC41MTYwNSwgMS4wNTEzLCAxLjkzODkzLCAyLjgyNDcyLCA0Ljg4ODg3LCA2LjA2Nzk5IiwgXAotICAgICAgICAgICIwLjQ3NTA0OCwgMC41MzUwMTEsIDEuMDcwMjQsIDEuOTU3NTksIDIuODQzODksIDQuOTA3ODksIDYuMDg2NzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuNjg4NzkzLCAwLjgwMTI3MSwgMS44MTM0MSwgMy40OTg4MiwgNS4xODI2NywgOS4xMTA5NiwgMTEuMzUyMiIsIFwKLSAgICAgICAgICAiMC42ODg3NTUsIDAuODAxMjc0LCAxLjgxNDExLCAzLjQ5OTcxLCA1LjE4NDc3LCA5LjExMTA5LCAxMS4zNTIyIiwgXAotICAgICAgICAgICIwLjY4ODc1OSwgMC44MDEzNjksIDEuODEzOCwgMy40OTg5OSwgNS4xODIxOCwgOS4xMTEyNiwgMTEuMzUyMiIsIFwKLSAgICAgICAgICAiMC42ODg2NzEsIDAuODAxMTk4LCAxLjgxNDA5LCAzLjQ5OTgxLCA1LjE4Mjg1LCA5LjExMTExLCAxMS4zNTIyIiwgXAotICAgICAgICAgICIwLjY4ODY1LCAwLjgwMTE3MiwgMS44MTM4MiwgMy40OTk4NywgNS4xODI3OCwgOS4xMTA3NSwgMTEuMzUyMiIsIFwKLSAgICAgICAgICAiMC42ODg1MDQsIDAuODAxMTU1LCAxLjgxMzUxLCAzLjQ5OTg3LCA1LjE4MjI1LCA5LjExMDY5LCAxMS4zNTE5IiwgXAotICAgICAgICAgICIwLjY4ODQ2LCAwLjgwMTAxOSwgMS44MTM0LCAzLjQ5OTczLCA1LjE4MzMzLCA5LjExMTgzLCAxMS4zNTIxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC40OTA5NDEsIDAuNTcwMDA1LCAxLjI4MjIyLCAyLjQ2ODM5LCAzLjY1MjgxLCA2LjQxNzExLCA3Ljk5Njc1IiwgXAotICAgICAgICAgICIwLjUwMTU0NiwgMC41ODA2NDEsIDEuMjkyOTgsIDIuNDc4NjksIDMuNjYzNCwgNi40Mjc3NiwgOC4wMDc0MSIsIFwKLSAgICAgICAgICAiMC41MTQ4NiwgMC41OTQwNTEsIDEuMzA2MDksIDIuNDkyMzcsIDMuNjc2NzUsIDYuNDQxMjMsIDguMDIwOCIsIFwKLSAgICAgICAgICAiMC41Mjc4NTMsIDAuNjA2OTA2LCAxLjMxOTE5LCAyLjUwNDU0LCAzLjY4OTc5LCA2LjQ1NDEsIDguMDMzNzQiLCBcCi0gICAgICAgICAgIjAuNTQwMzA0LCAwLjYxOTUxMSwgMS4zMzE3MywgMi41MTc2MywgMy43MDIzNSwgNi40NjY2NywgOC4wNDYzMSIsIFwKLSAgICAgICAgICAiMC41NTk3NDQsIDAuNjM4OTQxLCAxLjM1MTA5LCAyLjUzNzU2LCAzLjcyMTkyLCA2LjQ4NjIzLCA4LjA2NTg1IiwgXAotICAgICAgICAgICIwLjU3NjQ2NywgMC42NTU1ODksIDEuMzY3OTEsIDIuNTUzOTMsIDMuNzM4NjMsIDYuNTAzLCA4LjA4MjUiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuODc1MTkyLCAxLjAyNzI3LCAyLjM5NDEsIDQuNjcyOTgsIDYuOTUyNTcsIDEyLjI1OTgsIDE1LjI5MjIiLCBcCi0gICAgICAgICAgIjAuODc0NTUxLCAxLjAyNzI4LCAyLjM5NDIzLCA0LjY3MzA4LCA2Ljk1MzMzLCAxMi4yNTk4LCAxNS4yOTIyIiwgXAotICAgICAgICAgICIwLjg3NTIxOCwgMS4wMjY1NywgMi4zOTU0MywgNC42NzQwMywgNi45NTIyOCwgMTIuMjU5NSwgMTUuMjkyMSIsIFwKLSAgICAgICAgICAiMC44NzUyMzMsIDEuMDI3MjksIDIuMzk0MTUsIDQuNjcxNDIsIDYuOTUyNjYsIDEyLjI1OTcsIDE1LjI5MjIiLCBcCi0gICAgICAgICAgIjAuODc0MzExLCAxLjAyNjU1LCAyLjM5NDEsIDQuNjczNTcsIDYuOTUyNTUsIDEyLjI1OTcsIDE1LjI5MjIiLCBcCi0gICAgICAgICAgIjAuODc0NTc2LCAxLjAyNjU2LCAyLjM5NTM0LCA0LjY3MzUzLCA2Ljk1Mjc2LCAxMi4yNTk0LCAxNS4yOTIyIiwgXAotICAgICAgICAgICIwLjg3NTIzNiwgMS4wMjczLCAyLjM5NDAxLCA0LjY3MjksIDYuOTUxODMsIDEyLjI1OTQsIDE1LjI5MjMiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzYyNDgyLCAwLjQyMTc5NCwgMC45NTM5MDUsIDEuODM5NDUsIDIuNzI0ODYsIDQuNzg5NDQsIDUuOTY4NjEiLCBcCi0gICAgICAgICAgIjAuMzc0NjQ0LCAwLjQzMzk0MywgMC45NjYwOTksIDEuODUxODUsIDIuNzM2NjUsIDQuODAxNTUsIDUuOTgxMDgiLCBcCi0gICAgICAgICAgIjAuMzg4ODYsIDAuNDQ4MjE1LCAwLjk4MDM1NCwgMS44NjU4OSwgMi43NTEzMywgNC44MTU5NSwgNS45OTUyNCIsIFwKLSAgICAgICAgICAiMC40MDI4NDIsIDAuNDYyMTM0LCAwLjk5NDIwOCwgMS44Nzk5OCwgMi43NjQ4OSwgNC44Mjk4MiwgNi4wMDkzNSIsIFwKLSAgICAgICAgICAiMC40MTY0OTQsIDAuNDc1ODM3LCAxLjAwODE2LCAxLjg5MzcxLCAyLjc3OTIsIDQuODQzNzQsIDYuMDIzMSIsIFwKLSAgICAgICAgICAiMC40Mzg1ODcsIDAuNDk3OTQ0LCAxLjAzMDI3LCAxLjkxNTkzLCAyLjgwMTM3LCA0Ljg2NTkxLCA2LjA0NTI4IiwgXAotICAgICAgICAgICIwLjQ1NjExOCwgMC41MTczNjgsIDEuMDQ5NzcsIDEuOTM1NTIsIDIuODIwNTcsIDQuODg1NDYsIDYuMDY0ODQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuNjU3NjU0LCAwLjc2OTk5NiwgMS43ODA5NSwgMy40NjQ3NSwgNS4xNDk4NywgOS4wNzU3OCwgMTEuMzE2MSIsIFwKLSAgICAgICAgICAiMC42NTc3MzcsIDAuNzY5OTcsIDEuNzgwODMsIDMuNDY1MDIsIDUuMTQ5MjIsIDkuMDc2ODUsIDExLjMxNjMiLCBcCi0gICAgICAgICAgIjAuNjU3NjUzLCAwLjc3MDAzMSwgMS43ODEwMSwgMy40NjQ4NiwgNS4xNDkzNiwgOS4wNzU1MiwgMTEuMzE2NyIsIFwKLSAgICAgICAgICAiMC42NTc1OTIsIDAuNzcwMDIyLCAxLjc4MDU5LCAzLjQ2NTUxLCA1LjE0OTMxLCA5LjA3NjcxLCAxMS4zMTY1IiwgXAotICAgICAgICAgICIwLjY1NzY3NCwgMC43NzAwMzgsIDEuNzgxNCwgMy40NjU3NiwgNS4xNDk1NywgOS4wNzU5OSwgMTEuMzE2NyIsIFwKLSAgICAgICAgICAiMC42NTc1NjIsIDAuNzcwMDg1LCAxLjc4MTAyLCAzLjQ2NTIyLCA1LjE0OTQ0LCA5LjA3NTg4LCAxMS4zMTY2IiwgXAotICAgICAgICAgICIwLjY1NzU3NywgMC43Njk5MSwgMS43ODA4MywgMy40NjQ5NSwgNS4xNDkzOCwgOS4wNzY0LCAxMS4zMTY3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIxIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC40ODEzOTksIDAuNTYwODA5LCAxLjI3NSwgMi40NjQ0MiwgMy42NTM2NiwgNi40Mjc1OSwgOC4wMTI3MyIsIFwKLSAgICAgICAgICAiMC40OTIzOSwgMC41NzE4NDgsIDEuMjg1NzQsIDIuNDc2MjMsIDMuNjY0ODQsIDYuNDM4NjMsIDguMDIzODEiLCBcCi0gICAgICAgICAgIjAuNTA1NzE3LCAwLjU4NTExNCwgMS4yOTkzNiwgMi40ODk2NSwgMy42Nzg0OCwgNi40NTIxOCwgOC4wMzcyMiIsIFwKLSAgICAgICAgICAiMC41MTg2NTgsIDAuNTk3OTM0LCAxLjMxMjQzLCAyLjUwMjM2LCAzLjY5MTEyLCA2LjQ2NTA3LCA4LjA1MDIzIiwgXAotICAgICAgICAgICIwLjUzMTE1MSwgMC42MTA1MTMsIDEuMzI0OTYsIDIuNTE0NzcsIDMuNzAzNjksIDYuNDc3NjQsIDguMDYyNzkiLCBcCi0gICAgICAgICAgIjAuNTUwNDIsIDAuNjI5OTMzLCAxLjM0NDQsIDIuNTM0NzksIDMuNzIzMiwgNi40OTcsIDguMDgyMiIsIFwKLSAgICAgICAgICAiMC41NjcwNTMsIDAuNjQ2NDMxLCAxLjM2MTE1LCAyLjU1MTA5LCAzLjczOTg5LCA2LjUxMzg5LCA4LjA5ODkyIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjg2NjU0OCwgMS4wMTg0MywgMi4zOTA5OCwgNC42ODI3MywgNi45NjcwMSwgMTIuMjk1MywgMTUuMzM5OCIsIFwKLSAgICAgICAgICAiMC44NjU3MTMsIDEuMDE4OTMsIDIuMzkxOTgsIDQuNjg0NjQsIDYuOTY4ODUsIDEyLjI5NTMsIDE1LjMzOTkiLCBcCi0gICAgICAgICAgIjAuODY1NjksIDEuMDE4MTcsIDIuMzkyMjUsIDQuNjc5ODgsIDYuOTY5MTYsIDEyLjI5NDksIDE1LjMzOTciLCBcCi0gICAgICAgICAgIjAuODY2NTgzLCAxLjAxOTU1LCAyLjM5MDk4LCA0LjY3OTEsIDYuOTY2OTgsIDEyLjI5NTIsIDE1LjMzOTgiLCBcCi0gICAgICAgICAgIjAuODY2NjEyLCAxLjAxODE3LCAyLjM5MDk4LCA0LjY4NDA1LCA2Ljk2Njk3LCAxMi4yOTUzLCAxNS4zMzk4IiwgXAotICAgICAgICAgICIwLjg2NTcwMiwgMS4wMTg0NywgMi4zOTEzMSwgNC42Nzg2MiwgNi45Njc4OCwgMTIuMjk1MiwgMTUuMzM5OCIsIFwKLSAgICAgICAgICAiMC44NjY1OTksIDEuMDE5MTIsIDIuMzkxMTEsIDQuNjg0MjYsIDYuOTY2MzEsIDEyLjI5NDksIDE1LjM0Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjM1NTc4NCwgMC40MTUwODYsIDAuOTQ3NTU4LCAxLjgzMjc4LCAyLjcxNzg0LCA0Ljc4MjQyLCA1Ljk2MjE1IiwgXAotICAgICAgICAgICIwLjM2NjUwOCwgMC40MjU4NDQsIDAuOTU3OTg1LCAxLjg0MzcyLCAyLjcyODU0LCA0Ljc5MzQ0LCA1Ljk3Mjk3IiwgXAotICAgICAgICAgICIwLjM4MDE1NCwgMC40Mzk1NDMsIDAuOTcyMTgyLCAxLjg1NzIzLCAyLjc0MjE2LCA0LjgwNzI5LCA1Ljk4NjU2IiwgXAotICAgICAgICAgICIwLjM5MzgxOCwgMC40NTMwOSwgMC45ODU3NDEsIDEuODcwODUsIDIuNzU1OCwgNC44MjA5NCwgNi4wMDAzMSIsIFwKLSAgICAgICAgICAiMC40MDczMzMsIDAuNDY2Njc1LCAwLjk5ODkzMSwgMS44ODQ3LCAyLjc2OTU1LCA0LjgzNDQ1LCA2LjAxMzk3IiwgXAotICAgICAgICAgICIwLjQyODk4NCwgMC40ODg0MzYsIDEuMDIwNzIsIDEuOTA2MzUsIDIuNzkxNzMsIDQuODU2MzMsIDYuMDM1NTUiLCBcCi0gICAgICAgICAgIjAuNDQ4MDI0LCAwLjUwNjU2MywgMS4wMzk3MiwgMS45MjUzNywgMi44MTAzNywgNC44NzUzMywgNi4wNTQ4NiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC42NTc1OTksIDAuNzY5OTE5LCAxLjc4MTM0LCAzLjQ2NTU0LCA1LjE0OTU2LCA5LjA3NTU4LCAxMS4zMTY2IiwgXAotICAgICAgICAgICIwLjY1NzYzMiwgMC43NzAwMTIsIDEuNzgxMjUsIDMuNDY0OTcsIDUuMTQ4OTMsIDkuMDc2ODQsIDExLjMxNjUiLCBcCi0gICAgICAgICAgIjAuNjU3NjE2LCAwLjc2OTk5MSwgMS43ODEwNywgMy40NjUsIDUuMTQ4OTUsIDkuMDc1OTIsIDExLjMxNiIsIFwKLSAgICAgICAgICAiMC42NTc2MDgsIDAuNzcwMDI1LCAxLjc4MTE1LCAzLjQ2NTI0LCA1LjE0ODk0LCA5LjA3Njg4LCAxMS4zMTYzIiwgXAotICAgICAgICAgICIwLjY1NzYwMSwgMC43NzAwMDQsIDEuNzgxLCAzLjQ2NTAxLCA1LjE0OTE0LCA5LjA3NjgxLCAxMS4zMTY3IiwgXAotICAgICAgICAgICIwLjY1NzU4MywgMC43NzAwNTIsIDEuNzgwODIsIDMuNDY0NDEsIDUuMTQ5NDgsIDkuMDc2MjEsIDExLjMxNjQiLCBcCi0gICAgICAgICAgIjAuNjU3ODQ5LCAwLjc2OTg3MywgMS43ODEwMSwgMy40NjQ4OCwgNS4xNDg3LCA5LjA3NjU4LCAxMS4zMTY0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC40NTIzOTIsIDAuNTMxNjk3LCAxLjI0Mzc3LCAyLjQyOTcxLCAzLjYxNDY3LCA2LjM4ODYzLCA3Ljk3MzY4IiwgXAotICAgICAgICAgICIwLjQ2MjQ5OSwgMC41NDE3NywgMS4yNTM3NywgMi40Mzk1NywgMy42MjQ2MywgNi4zOTg1OCwgNy45ODM4IiwgXAotICAgICAgICAgICIwLjQ3NDgxOCwgMC41NTQxMzksIDEuMjY2MDEsIDIuNDUyLCAzLjYzNzI1LCA2LjQxMTI1LCA3Ljk5NjI4IiwgXAotICAgICAgICAgICIwLjQ4NzAxNiwgMC41NjYzMzMsIDEuMjc4NDIsIDIuNDY0ODcsIDMuNjQ5NSwgNi40MjM1LCA4LjAwODY4IiwgXAotICAgICAgICAgICIwLjQ5OTI5MywgMC41Nzg1NDksIDEuMjkwNjUsIDIuNDc2NDUsIDMuNjYxODMsIDYuNDM1ODEsIDguMDIwOTYiLCBcCi0gICAgICAgICAgIjAuNTE4NjM5LCAwLjU5NzkyNSwgMS4zMTAzNCwgMi40OTY0OSwgMy42ODEzNiwgNi40NTUzNywgOC4wNDA0NyIsIFwKLSAgICAgICAgICAiMC41MzQ3NzMsIDAuNjE1MDI0LCAxLjMyNzQ2LCAyLjUxMzEsIDMuNjk4ODYsIDYuNDcyNTEsIDguMDU3NjciKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuODc1MjQ1LCAxLjAyNjU1LCAyLjM5NDUyLCA0LjY4MzYzLCA2Ljk2NjY0LCAxMi4yOTQ5LCAxNS4zMzk0IiwgXAotICAgICAgICAgICIwLjg3NDU2OSwgMS4wMjY0MywgMi4zOTM1OCwgNC42ODAwNCwgNi45NjY3LCAxMi4yOTUzLCAxNS4zMzk3IiwgXAotICAgICAgICAgICIwLjg3NDMwMSwgMS4wMjY0MiwgMi4zOTUxNSwgNC42NzgxNiwgNi45NjYxNCwgMTIuMjk0OSwgMTUuMzM5NyIsIFwKLSAgICAgICAgICAiMC44NzUyMTcsIDEuMDI3MjQsIDIuMzk1MjgsIDQuNjc5MzIsIDYuOTY3ODYsIDEyLjI5NTIsIDE1LjMzOTgiLCBcCi0gICAgICAgICAgIjAuODc0Mzc0LCAxLjAyNzIyLCAyLjM5MzU2LCA0LjY4MzkyLCA2Ljk2NzA2LCAxMi4yOTUzLCAxNS4zMzk4IiwgXAotICAgICAgICAgICIwLjg3Mzk3OCwgMS4wMjYyMSwgMi4zOTQwMiwgNC42ODQxNywgNi45NjcxNiwgMTIuMjk1MywgMTUuMzM5OCIsIFwKLSAgICAgICAgICAiMC44NzI5NzgsIDEuMDI1OTMsIDIuMzkzNjcsIDQuNjgyODEsIDYuOTY1NDcsIDEyLjI5NTMsIDE1LjMzOTYiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTY4NjEyLCAwLjE5ODI5OSwgMC40NjU3ODIsIDAuOTExMzg0LCAxLjM1NzA3LCAyLjM5Njk3LCAyLjk5MDg5IiwgXAotICAgICAgICAgICIwLjE4MDg5NywgMC4yMTA2NDksIDAuNDc4MDc5LCAwLjkyNDE1NiwgMS4zNzAwNCwgMi40MDkzNCwgMy4wMDM2OSIsIFwKLSAgICAgICAgICAiMC4xOTU2ODQsIDAuMjI1NDYyLCAwLjQ5MDk3LCAwLjkzNjcxOCwgMS4zODIyMiwgMi40MjIxOSwgMy4wMTU1MiIsIFwKLSAgICAgICAgICAiMC4yMTA3MDUsIDAuMjQwMzg5LCAwLjUwNzY5OSwgMC45NTEwNDgsIDEuMzk2NjYsIDIuNDM2MzksIDMuMDI5ODQiLCBcCi0gICAgICAgICAgIjAuMjI1ODc0LCAwLjI1NTUwNSwgMC41MjI4NzIsIDAuOTY1OTEzLCAxLjQxMTYyLCAyLjQ1MTE1LCAzLjA0NTExIiwgXAotICAgICAgICAgICIwLjI1MDg5NCwgMC4yODA1NjMsIDAuNTQ2Nzc0LCAwLjk4OTExLCAxLjQzNDI0LCAyLjQ3NDQ0LCAzLjA2ODAzIiwgXAotICAgICAgICAgICIwLjI3MjE2NCwgMC4zMDIwNDksIDAuNTY3OTA0LCAxLjAwODc3LCAxLjQ1NDc1LCAyLjQ5NDEyLCAzLjA4ODM3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMzNzkzMSwgMC4zOTY0OTcsIDAuOTIzOTk0LCAxLjgwNDEzLCAyLjY4NDMyLCA0LjczODAzLCA1LjkxMjIzIiwgXAotICAgICAgICAgICIwLjMzNzk0MSwgMC4zOTY1MDQsIDAuOTI0MTg4LCAxLjgwNDUyLCAyLjY4NTE5LCA0LjczNzU4LCA1LjkxNDM5IiwgXAotICAgICAgICAgICIwLjMzNzkyOSwgMC4zOTY1MDEsIDAuOTI0MjIxLCAxLjgwNDMyLCAyLjY4NTEsIDQuNzM4NDgsIDUuOTEyMDMiLCBcCi0gICAgICAgICAgIjAuMzM3OTQ3LCAwLjM5NjQ5NiwgMC45MjQyMTQsIDEuODA0MzUsIDIuNjg1ODMsIDQuNzM5MjksIDUuOTEzMTYiLCBcCi0gICAgICAgICAgIjAuMzM4NDE5LCAwLjM5NjUxMywgMC45MjQwMTQsIDEuODA0MDksIDIuNjg1ODgsIDQuNzM5MzQsIDUuOTE0NDIiLCBcCi0gICAgICAgICAgIjAuMzQxNDgsIDAuMzk4MzcyLCAwLjkyNDIxNiwgMS44MDQwOSwgMi42ODUxMSwgNC43MzgwMSwgNS45MTE5MSIsIFwKLSAgICAgICAgICAiMC4zNDYzMjQsIDAuNDAxOTUsIDAuOTI0MjU5LCAxLjgwNDM0LCAyLjY4NDAzLCA0LjczNzk3LCA1LjkxNTMzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjU5OCwgMC4wMDI1OTgsIDAuMDAyNTk3LCAwLjAwMjU5NCwgMC4wMDI1OTMsIDAuMDAyNTg0LCAwLjAwMjUwNiIsIFwKLSAgICAgICAgICAiMC4wMDI1OTUsIDAuMDAyNTk1LCAwLjAwMjU5NCwgMC4wMDI1OTUsIDAuMDAyNTkxLCAwLjAwMjU4MSwgMC4wMDI0OTkiLCBcCi0gICAgICAgICAgIjAuMDAyNTkzLCAwLjAwMjU5NCwgMC4wMDI1OTQsIDAuMDAyNTkxLCAwLjAwMjU5LCAwLjAwMjU4MywgMC4wMDI1MDMiLCBcCi0gICAgICAgICAgIjAuMDAyNTkzLCAwLjAwMjU5MywgMC4wMDI1OTMsIDAuMDAyNTkxLCAwLjAwMjU4OSwgMC4wMDI1OCwgMC4wMDI1MDIiLCBcCi0gICAgICAgICAgIjAuMDAyNTkxLCAwLjAwMjU5MiwgMC4wMDI1OTIsIDAuMDAyNTkxLCAwLjAwMjU4OSwgMC4wMDI1OCwgMC4wMDI1MDgiLCBcCi0gICAgICAgICAgIjAuMDAyNTkxLCAwLjAwMjU5MSwgMC4wMDI1OTIsIDAuMDAyNTkxLCAwLjAwMjU4OSwgMC4wMDI1OCwgMC4wMDI1MDEiLCBcCi0gICAgICAgICAgIjAuMDAyNTksIDAuMDAyNTkxLCAwLjAwMjU5MiwgMC4wMDI1OTEsIDAuMDAyNTg5LCAwLjAwMjU4LCAwLjAwMjQ5NiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDkwNiwgMC4wMDA5MDcsIDAuMDAwOTA1LCAwLjAwMDkwNCwgMC4wMDA5MDEsIDAuMDAwODk2LCAwLjAwMDg5NCIsIFwKLSAgICAgICAgICAiMC4wMDA4OTksIDAuMDAwODk4LCAwLjAwMDg5OCwgMC4wMDA4OTUsIDAuMDAwODk0LCAwLjAwMDg4OSwgMC4wMDA4ODciLCBcCi0gICAgICAgICAgIjAuMDAwODk0LCAwLjAwMDg5NCwgMC4wMDA4OTQsIDAuMDAwODkyLCAwLjAwMDg5LCAwLjAwMDg4NiwgMC4wMDA4ODIiLCBcCi0gICAgICAgICAgIjAuMDAwODkyLCAwLjAwMDg5MiwgMC4wMDA4OTEsIDAuMDAwODksIDAuMDAwODg4LCAwLjAwMDg4MywgMC4wMDA4OCIsIFwKLSAgICAgICAgICAiMC4wMDA4OSwgMC4wMDA4OSwgMC4wMDA4OSwgMC4wMDA4ODksIDAuMDAwODg3LCAwLjAwMDg4MiwgMC4wMDA4NzkiLCBcCi0gICAgICAgICAgIjAuMDAwODg4LCAwLjAwMDg4OCwgMC4wMDA4ODksIDAuMDAwODg3LCAwLjAwMDg4NiwgMC4wMDA4ODEsIDAuMDAwODc4IiwgXAotICAgICAgICAgICIwLjAwMDg4NiwgMC4wMDA4ODYsIDAuMDAwODg3LCAwLjAwMDg4NiwgMC4wMDA4ODUsIDAuMDAwODgxLCAwLjAwMDg3NyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkExIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDIzODcsIDAuMDAyMzg3LCAwLjAwMjM4NywgMC4wMDIzODUsIDAuMDAyMzg1LCAwLjAwMjM3OSwgMC4wMDIzMSIsIFwKLSAgICAgICAgICAiMC4wMDIzODksIDAuMDAyMzg5LCAwLjAwMjM5LCAwLjAwMjM5LCAwLjAwMjM4OCwgMC4wMDIzOCwgMC4wMDIzMDYiLCBcCi0gICAgICAgICAgIjAuMDAyMzg4LCAwLjAwMjM4OSwgMC4wMDIzOSwgMC4wMDIzOSwgMC4wMDIzODgsIDAuMDAyMzgyLCAwLjAwMjMwNiIsIFwKLSAgICAgICAgICAiMC4wMDIzODcsIDAuMDAyMzg3LCAwLjAwMjM5LCAwLjAwMjM4OCwgMC4wMDIzODgsIDAuMDAyMzgyLCAwLjAwMjMwNiIsIFwKLSAgICAgICAgICAiMC4wMDIzODUsIDAuMDAyMzg1LCAwLjAwMjM4OCwgMC4wMDIzODksIDAuMDAyMzg3LCAwLjAwMjM4MSwgMC4wMDIzMDUiLCBcCi0gICAgICAgICAgIjAuMDAyMzg0LCAwLjAwMjM4NSwgMC4wMDIzODgsIDAuMDAyMzg4LCAwLjAwMjM4OCwgMC4wMDIzODMsIDAuMDAyMzA1IiwgXAotICAgICAgICAgICIwLjAwMjM4MiwgMC4wMDIzODMsIDAuMDAyMzg3LCAwLjAwMjM4OCwgMC4wMDIzODcsIDAuMDAyMzgxLCAwLjAwMjI5NSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDkwNiwgMC4wMDA5MDYsIDAuMDAwOTA2LCAwLjAwMDkwNCwgMC4wMDA5MDIsIDAuMDAwODk3LCAwLjAwMDg5NCIsIFwKLSAgICAgICAgICAiMC4wMDA4OTgsIDAuMDAwODk4LCAwLjAwMDg5NywgMC4wMDA4OTUsIDAuMDAwODkyLCAwLjAwMDg4OSwgMC4wMDA4ODUiLCBcCi0gICAgICAgICAgIjAuMDAwODkzLCAwLjAwMDg5MywgMC4wMDA4OTIsIDAuMDAwODkxLCAwLjAwMDg4OSwgMC4wMDA4ODUsIDAuMDAwODgyIiwgXAotICAgICAgICAgICIwLjAwMDg5MSwgMC4wMDA4OSwgMC4wMDA4OTEsIDAuMDAwODg5LCAwLjAwMDg4OCwgMC4wMDA4ODMsIDAuMDAwODgiLCBcCi0gICAgICAgICAgIjAuMDAwODg5LCAwLjAwMDg4OSwgMC4wMDA4ODksIDAuMDAwODg4LCAwLjAwMDg4NiwgMC4wMDA4ODIsIDAuMDAwODc4IiwgXAotICAgICAgICAgICIwLjAwMDg4NiwgMC4wMDA4ODcsIDAuMDAwODg4LCAwLjAwMDg4NiwgMC4wMDA4ODUsIDAuMDAwODgxLCAwLjAwMDg3NyIsIFwKLSAgICAgICAgICAiMC4wMDA4ODQsIDAuMDAwODg1LCAwLjAwMDg4NywgMC4wMDA4ODYsIDAuMDAwODg0LCAwLjAwMDg4LCAwLjAwMDg3NyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDIwNzgsIDAuMDAyMDc4LCAwLjAwMjA3NywgMC4wMDIwNzUsIDAuMDAyMDczLCAwLjAwMjA2NiwgMC4wMDE5ODciLCBcCi0gICAgICAgICAgIjAuMDAyMDc0LCAwLjAwMjA3NCwgMC4wMDIwNzQsIDAuMDAyMDcxLCAwLjAwMjA3LCAwLjAwMjA2MiwgMC4wMDE5ODQiLCBcCi0gICAgICAgICAgIjAuMDAyMDczLCAwLjAwMjA3MywgMC4wMDIwNzMsIDAuMDAyMDcxLCAwLjAwMjA2OSwgMC4wMDIwNjIsIDAuMDAxOTg2IiwgXAotICAgICAgICAgICIwLjAwMjA3MiwgMC4wMDIwNzIsIDAuMDAyMDczLCAwLjAwMjA3MSwgMC4wMDIwNjksIDAuMDAyMDYxLCAwLjAwMTk4MiIsIFwKLSAgICAgICAgICAiMC4wMDIwNzIsIDAuMDAyMDcyLCAwLjAwMjA3MiwgMC4wMDIwNzEsIDAuMDAyMDY5LCAwLjAwMjA2MSwgMC4wMDE5ODIiLCBcCi0gICAgICAgICAgIjAuMDAyMDcxLCAwLjAwMjA3MSwgMC4wMDIwNzIsIDAuMDAyMDcxLCAwLjAwMjA2OSwgMC4wMDIwNjEsIDAuMDAxOTg0IiwgXAotICAgICAgICAgICIwLjAwMjA3LCAwLjAwMjA3LCAwLjAwMjA3MSwgMC4wMDIwNywgMC4wMDIwNjksIDAuMDAyMDYxLCAwLjAwMTk4MiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDQ2LCAwLjAwMDQ2LCAwLjAwMDQ2LCAwLjAwMDQ1OSwgMC4wMDA0NiwgMC4wMDA0NTYsIDAuMDAwNDU1IiwgXAotICAgICAgICAgICIwLjAwMDQ2LCAwLjAwMDQ2LCAwLjAwMDQ2LCAwLjAwMDQ1OSwgMC4wMDA0NTgsIDAuMDAwNDU2LCAwLjAwMDQ1NSIsIFwKLSAgICAgICAgICAiMC4wMDA0NTksIDAuMDAwNDU5LCAwLjAwMDQ1OSwgMC4wMDA0NTksIDAuMDAwNDU4LCAwLjAwMDQ1NiwgMC4wMDA0NTUiLCBcCi0gICAgICAgICAgIjAuMDAwNDU3LCAwLjAwMDQ1NywgMC4wMDA0NTksIDAuMDAwNDU5LCAwLjAwMDQ1OCwgMC4wMDA0NTYsIDAuMDAwNDU1IiwgXAotICAgICAgICAgICIwLjAwMDQ1NiwgMC4wMDA0NTYsIDAuMDAwNDU4LCAwLjAwMDQ1OSwgMC4wMDA0NTgsIDAuMDAwNDU2LCAwLjAwMDQ1NSIsIFwKLSAgICAgICAgICAiMC4wMDA0NTMsIDAuMDAwNDU0LCAwLjAwMDQ1NywgMC4wMDA0NTgsIDAuMDAwNDU4LCAwLjAwMDQ1NiwgMC4wMDA0NTUiLCBcCi0gICAgICAgICAgIjAuMDAwNDQ5LCAwLjAwMDQ1MiwgMC4wMDA0NTcsIDAuMDAwNDU4LCAwLjAwMDQ1OCwgMC4wMDA0NTYsIDAuMDAwNDU1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTgzOSwgMC4wMDE4MzksIDAuMDAxODM5LCAwLjAwMTgzOCwgMC4wMDE4MzcsIDAuMDAxODMyLCAwLjAwMTc1MiIsIFwKLSAgICAgICAgICAiMC4wMDE4NDEsIDAuMDAxODQxLCAwLjAwMTg0MSwgMC4wMDE4NDIsIDAuMDAxODM5LCAwLjAwMTgzNCwgMC4wMDE3NTQiLCBcCi0gICAgICAgICAgIjAuMDAxODQsIDAuMDAxODQsIDAuMDAxODQxLCAwLjAwMTg0MSwgMC4wMDE4NCwgMC4wMDE4MzUsIDAuMDAxNzU4IiwgXAotICAgICAgICAgICIwLjAwMTgzOCwgMC4wMDE4MzksIDAuMDAxODQxLCAwLjAwMTg0MSwgMC4wMDE4NCwgMC4wMDE4MzQsIDAuMDAxNzU0IiwgXAotICAgICAgICAgICIwLjAwMTgzNywgMC4wMDE4MzgsIDAuMDAxODQsIDAuMDAxODQsIDAuMDAxODQsIDAuMDAxODM0LCAwLjAwMTc1NCIsIFwKLSAgICAgICAgICAiMC4wMDE4MzUsIDAuMDAxODM2LCAwLjAwMTgzOSwgMC4wMDE4NCwgMC4wMDE4NCwgMC4wMDE4MzQsIDAuMDAxNzUxIiwgXAotICAgICAgICAgICIwLjAwMTgzNCwgMC4wMDE4MzUsIDAuMDAxODM5LCAwLjAwMTg0LCAwLjAwMTgzOSwgMC4wMDE4MzQsIDAuMDAxNzQyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwNDYsIDAuMDAwNDYsIDAuMDAwNDYsIDAuMDAwNDYxLCAwLjAwMDQ1OCwgMC4wMDA0NTYsIDAuMDAwNDU1IiwgXAotICAgICAgICAgICIwLjAwMDQ1OSwgMC4wMDA0NTksIDAuMDAwNDU5LCAwLjAwMDQ1OSwgMC4wMDA0NTgsIDAuMDAwNDU2LCAwLjAwMDQ1NSIsIFwKLSAgICAgICAgICAiMC4wMDA0NTgsIDAuMDAwNDU4LCAwLjAwMDQ1OSwgMC4wMDA0NTksIDAuMDAwNDU4LCAwLjAwMDQ1NiwgMC4wMDA0NTUiLCBcCi0gICAgICAgICAgIjAuMDAwNDU2LCAwLjAwMDQ1NywgMC4wMDA0NTgsIDAuMDAwNDU4LCAwLjAwMDQ1OCwgMC4wMDA0NTYsIDAuMDAwNDU1IiwgXAotICAgICAgICAgICIwLjAwMDQ1NSwgMC4wMDA0NTUsIDAuMDAwNDU4LCAwLjAwMDQ1OCwgMC4wMDA0NTgsIDAuMDAwNDU2LCAwLjAwMDQ1NSIsIFwKLSAgICAgICAgICAiMC4wMDA0NTIsIDAuMDAwNDUzLCAwLjAwMDQ1NywgMC4wMDA0NTgsIDAuMDAwNDU4LCAwLjAwMDQ1NiwgMC4wMDA0NTQiLCBcCi0gICAgICAgICAgIjAuMDAwNDUxLCAwLjAwMDQ1MiwgMC4wMDA0NTYsIDAuMDAwNDU3LCAwLjAwMDQ1NywgMC4wMDA0NTYsIDAuMDAwNDU0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQzAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTYzNSwgMC4wMDE2MzUsIDAuMDAxNjM0LCAwLjAwMTYzMywgMC4wMDE2MzEsIDAuMDAxNjIzLCAwLjAwMTU0OCIsIFwKLSAgICAgICAgICAiMC4wMDE2MzMsIDAuMDAxNjMzLCAwLjAwMTYzMywgMC4wMDE2MzIsIDAuMDAxNjMsIDAuMDAxNjIzLCAwLjAwMTU0NyIsIFwKLSAgICAgICAgICAiMC4wMDE2MzEsIDAuMDAxNjMxLCAwLjAwMTYzMiwgMC4wMDE2MzIsIDAuMDAxNjMsIDAuMDAxNjIyLCAwLjAwMTU0NyIsIFwKLSAgICAgICAgICAiMC4wMDE2MjksIDAuMDAxNjI5LCAwLjAwMTYzMSwgMC4wMDE2MzEsIDAuMDAxNjMsIDAuMDAxNjIyLCAwLjAwMTU0MyIsIFwKLSAgICAgICAgICAiMC4wMDE2MjcsIDAuMDAxNjI4LCAwLjAwMTYzLCAwLjAwMTYzMSwgMC4wMDE2MjksIDAuMDAxNjIyLCAwLjAwMTU0MyIsIFwKLSAgICAgICAgICAiMC4wMDE2MjQsIDAuMDAxNjI1LCAwLjAwMTYyOSwgMC4wMDE2MjksIDAuMDAxNjI4LCAwLjAwMTYyLCAwLjAwMTU0MiIsIFwKLSAgICAgICAgICAiMC4wMDE2MjEsIDAuMDAxNjIzLCAwLjAwMTYyOCwgMC4wMDE2MjksIDAuMDAxNjI4LCAwLjAwMTYyMSwgMC4wMDE1MzIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDAwOTMsIDAuMDAwMDkzLCAwLjAwMDA5NCwgMC4wMDAwOTUsIDAuMDAwMDk1LCAwLjAwMDA5NCwgMC4wMDAwOTUiLCBcCi0gICAgICAgICAgIjAuMDAwMSwgMC4wMDAxMDEsIDAuMDAwMTAyLCAwLjAwMDEwMywgMC4wMDAxMDMsIDAuMDAwMTA0LCAwLjAwMDEwNCIsIFwKLSAgICAgICAgICAiMC4wMDAxMDEsIDAuMDAwMTAyLCAwLjAwMDEwNiwgMC4wMDAxMDcsIDAuMDAwMTA4LCAwLjAwMDEwOCwgMC4wMDAxMDkiLCBcCi0gICAgICAgICAgIjAuMDAwMSwgMC4wMDAxMDIsIDAuMDAwMTA3LCAwLjAwMDEwOSwgMC4wMDAxMDksIDAuMDAwMTEsIDAuMDAwMTEiLCBcCi0gICAgICAgICAgIjAuMDAwMDk4LCAwLjAwMDEsIDAuMDAwMTA2LCAwLjAwMDEwOSwgMC4wMDAxMSwgMC4wMDAxMTEsIDAuMDAwMTExIiwgXAotICAgICAgICAgICIwLjAwMDA5NiwgMC4wMDAwOTgsIDAuMDAwMTA2LCAwLjAwMDEwOSwgMC4wMDAxMSwgMC4wMDAxMTEsIDAuMDAwMTEyIiwgXAotICAgICAgICAgICIwLjAwMDA5NCwgMC4wMDAwOTYsIDAuMDAwMTA1LCAwLjAwMDEwOSwgMC4wMDAxMSwgMC4wMDAxMTEsIDAuMDAwMTEyIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IEFPSTIyMlhMICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChBT0kyMjJYTCkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjA2OTI0MDg7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA1MjkyODg7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNTI2NzY7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNTI5Mjg4OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDE2NSwgMC4wMDAxNjUsIDAuMDAwMTY1LCAwLjAwMDE2NSwgMC4wMDAxNjUsIDAuMDAwMTY1LCAwLjAwMDE2NSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDE2OCwgMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQTEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDU1MDI5ODsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA1NDU4MzI7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNTUwMjk4OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDA0MSwgMC4wMDAwNDEsIDAuMDAwMDQxLCAwLjAwMDA0MSwgMC4wMDAwNDEsIDAuMDAwMDQxLCAwLjAwMDA0MSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDE4OCwgMC4wMDAxODgsIDAuMDAwMTg4LCAwLjAwMDE4OCwgMC4wMDAxODgsIDAuMDAwMTg4LCAwLjAwMDE4OCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQjApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDU5MDk2MjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA1ODg5Njg7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNTkwOTYyOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDE2NSwgMC4wMDAxNjUsIDAuMDAwMTY1LCAwLjAwMDE2NSwgMC4wMDAxNjUsIDAuMDAwMTY1LCAwLjAwMDE2NSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDE2NywgMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQjEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDU2OTc1NzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA1NjYxMjE7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNTY5NzU3OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDAxNCwgMC4wMDAwMTQsIDAuMDAwMDE0LCAwLjAwMDAxNCwgMC4wMDAwMTQsIDAuMDAwMDE0LCAwLjAwMDAxNCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDE4OCwgMC4wMDAxODgsIDAuMDAwMTg4LCAwLjAwMDE4OCwgMC4wMDAxODgsIDAuMDAwMTg4LCAwLjAwMDE4OCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQzApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYyMjQ4NTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MjI0ODU7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjIwOTA4OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDE2NSwgMC4wMDAxNjUsIDAuMDAwMTY1LCAwLjAwMDE2NSwgMC4wMDAxNjUsIDAuMDAwMTY1LCAwLjAwMDE2NSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDE2OCwgMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQzEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY0MTYwNTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2NDEyNjg7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjQxNjA1OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDA1MiwgMC4wMDAwNTIsIDAuMDAwMDUyLCAwLjAwMDA1MiwgMC4wMDAwNTIsIDAuMDAwMDUyLCAwLjAwMDA1MiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDE4OCwgMC4wMDAxODgsIDAuMDAwMTg4LCAwLjAwMDE4OCwgMC4wMDAxODgsIDAuMDAwMTg4LCAwLjAwMDE4OCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjAyNzE3Mjk7Ci0gICAgZnVuY3Rpb24gOiAiKCEoKChDMCBDMSkrKEEwIEExKSkrKEIwIEIxKSkpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuNTM3OTg3LCAwLjYxNzE3LCAxLjMyOTM5LCAyLjUxNjAzLCAzLjcwMjI2LCA2LjQ3NjI5LCA4LjA2MTM2IiwgXAotICAgICAgICAgICIwLjU0OTYwMSwgMC42Mjg5MzksIDEuMzQwOTMsIDIuNTI3NTIsIDMuNzEzOTQsIDYuNDg3OTUsIDguMDczMDYiLCBcCi0gICAgICAgICAgIjAuNTY0MTgsIDAuNjQzNDcsIDEuMzU2MDYsIDIuNTQyMTEsIDMuNzI4NjMsIDYuNTAyNjIsIDguMDg3NzgiLCBcCi0gICAgICAgICAgIjAuNTc3OTY5LCAwLjY1NzI1NSwgMS4zNjk1OCwgMi41NTYwMSwgMy43NDI2NiwgNi41MTY0NSwgOC4xMDE0OCIsIFwKLSAgICAgICAgICAiMC41OTExMjIsIDAuNjcwMzc4LCAxLjM4MjczLCAyLjU2OTAxLCAzLjc1NTUzLCA2LjUyOTU3LCA4LjExNDY3IiwgXAotICAgICAgICAgICIwLjYxMTE2MywgMC42OTA1MTcsIDEuNDAzMDYsIDIuNTg5NDQsIDMuNzc1NzIsIDYuNTQ5NzIsIDguMTM0ODEiLCBcCi0gICAgICAgICAgIjAuNjI4MDE2LCAwLjcwNzI3NiwgMS40MTk0NywgMi42MDU4NiwgMy43OTI0MSwgNi41NjY0NiwgOC4xNTE2NSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC45MDYxODYsIDEuMDU3NTgsIDIuNDI2ODQsIDQuNzExOTYsIDcuMDAwMTUsIDEyLjMyOTUsIDE1LjM3NDYiLCBcCi0gICAgICAgICAgIjAuOTA1NTY2LCAxLjA1ODI1LCAyLjQyNTM4LCA0LjcxMTc3LCA3LjAwMjc4LCAxMi4zMjk4LCAxNS4zNzQzIiwgXAotICAgICAgICAgICIwLjkwNTMzMSwgMS4wNTc0MSwgMi40MjU1LCA0LjcxMjk1LCA3LjAwMDk4LCAxMi4zMjkxLCAxNS4zNzM3IiwgXAotICAgICAgICAgICIwLjkwNTMyMiwgMS4wNTc0MSwgMi40MjcsIDQuNzEyOTEsIDcuMDAwNjgsIDEyLjMyOTEsIDE1LjM3NDIiLCBcCi0gICAgICAgICAgIjAuOTA2MTg2LCAxLjA1NzQ1LCAyLjQyNTE2LCA0LjcxMjA3LCA3LjAwMDI2LCAxMi4zMjkxLCAxNS4zNzQzIiwgXAotICAgICAgICAgICIwLjkwNTI5NSwgMS4wNTgzNywgMi40MjU4MiwgNC43MTIzLCA3LjAwMjYsIDEyLjMyOTIsIDE1LjM3NDMiLCBcCi0gICAgICAgICAgIjAuOTA1NTU1LCAxLjA1NzQxLCAyLjQyNjczLCA0LjcxMjI2LCA3LjAwMTU1LCAxMi4zMjk2LCAxNS4zNzQzIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjQwNzA3NywgMC40NjY5NTEsIDEuMDAxNTUsIDEuODg4NjIsIDIuNzc0NDMsIDQuODM4MDMsIDYuMDE3MTQiLCBcCi0gICAgICAgICAgIjAuNDE4ODYyLCAwLjQ3ODcyLCAxLjAxMzM1LCAxLjg5OTg4LCAyLjc4NjE1LCA0Ljg0OTg1LCA2LjAyODk5IiwgXAotICAgICAgICAgICIwLjQzMjkxNCwgMC40OTI3MTQsIDEuMDI3MzgsIDEuOTEzODEsIDIuNzk5NTksIDQuODYzNzgsIDYuMDQyOTUiLCBcCi0gICAgICAgICAgIjAuNDQ2OCwgMC41MDY2MzcsIDEuMDQxMywgMS45Mjg1LCAyLjgxNDEsIDQuODc3ODksIDYuMDU2OSIsIFwKLSAgICAgICAgICAiMC40NjA1NDksIDAuNTIwNDQ3LCAxLjA1NDk3LCAxLjk0MTYsIDIuODI4LCA0Ljg5MTc5LCA2LjA3MDY4IiwgXAotICAgICAgICAgICIwLjQ4MjgyLCAwLjU0MjU5MSwgMS4wNzcxOSwgMS45NjQ2MSwgMi44NTAxLCA0LjkxMzg2LCA2LjA5Mjk4IiwgXAotICAgICAgICAgICIwLjUwMTgzOCwgMC41NjE4NTgsIDEuMDk2NTQsIDEuOTgzMjEsIDIuODY5NjQsIDQuOTMzMjcsIDYuMTEyMjYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuNzE5NDAzLCAwLjgzMTkzNywgMS44NDQxMSwgMy41MzAzNywgNS4yMTQ5LCA5LjE0MjE5LCAxMS4zODM0IiwgXAotICAgICAgICAgICIwLjcxOTQxMywgMC44MzE4NTQsIDEuODQ0NTksIDMuNTMwNjYsIDUuMjE0OSwgOS4xNDE4NiwgMTEuMzgyNCIsIFwKLSAgICAgICAgICAiMC43MTkzOTEsIDAuODMxODIyLCAxLjg0NDU4LCAzLjUzMDM0LCA1LjIxNDU2LCA5LjE0MTcsIDExLjM4MzQiLCBcCi0gICAgICAgICAgIjAuNzE5MzcsIDAuODMxOTM4LCAxLjg0MzUyLCAzLjUzMDUyLCA1LjIxNDUxLCA5LjE0MTU4LCAxMS4zODM0IiwgXAotICAgICAgICAgICIwLjcxOTM1MiwgMC44MzE4NjQsIDEuODQ0NDMsIDMuNTMwMzMsIDUuMjE0NjQsIDkuMTQyMjcsIDExLjM4MzQiLCBcCi0gICAgICAgICAgIjAuNzE5MjY2LCAwLjgzMTc0NSwgMS44NDQ0NiwgMy41MzAyNiwgNS4yMTM0NSwgOS4xNDA5NSwgMTEuMzgyNCIsIFwKLSAgICAgICAgICAiMC43MTkxNjcsIDAuODMxNjcsIDEuODQzODQsIDMuNTI5NDksIDUuMjE0OCwgOS4xNDE3NCwgMTEuMzgzMSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuNTI3NzEsIDAuNjA2ODY0LCAxLjMxODcyLCAyLjUwNTMxLCAzLjY5MTQsIDYuNDY1MzksIDguMDUwNDciLCBcCi0gICAgICAgICAgIjAuNTM5NzMzLCAwLjYxODk2NSwgMS4zMzA4OSwgMi41MTcyNywgMy43MDM2OCwgNi40Nzc1OCwgOC4wNjI2MyIsIFwKLSAgICAgICAgICAiMC41NTQyMzksIDAuNjMzNTMxLCAxLjM0NTU5LCAyLjUzMTksIDMuNzE4NDcsIDYuNDkyMiwgOC4wNzcyNSIsIFwKLSAgICAgICAgICAiMC41NjgwODUsIDAuNjQ3MzEsIDEuMzU5NCwgMi41NDU3NCwgMy43MzIzLCA2LjUwNjA1LCA4LjA5MTEiLCBcCi0gICAgICAgICAgIjAuNTgxMTY0LCAwLjY2MDI2NiwgMS4zNzI2NiwgMi41NTg2LCAzLjc0NTE3LCA2LjUxOTE4LCA4LjEwNDIzIiwgXAotICAgICAgICAgICIwLjYwMTE4MywgMC42ODA0MjQsIDEuMzkyODEsIDIuNTc5MTUsIDMuNzY1MzQsIDYuNTM5MzIsIDguMTI0NCIsIFwKLSAgICAgICAgICAiMC42MTc4NDQsIDAuNjk3MTkyLCAxLjQwOTI0LCAyLjU5NTU0LCAzLjc4MjAzLCA2LjU1NjA2LCA4LjE0MTI0Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjg5NTAyLCAxLjA0NjM4LCAyLjQxNTA2LCA0LjcwMDAxLCA2Ljk4NzgyLCAxMi4zMTYzLCAxNS4zNjEyIiwgXAotICAgICAgICAgICIwLjg5NDMzNywgMS4wNDYzNywgMi40MTUxNSwgNC43MDA1OSwgNi45OTA2MSwgMTIuMzE2MSwgMTUuMzYxNiIsIFwKLSAgICAgICAgICAiMC44OTQyNzEsIDEuMDQ2MzcsIDIuNDE1MjQsIDQuNzAwOTUsIDYuOTg2MzgsIDEyLjMxNjYsIDE1LjM2MTUiLCBcCi0gICAgICAgICAgIjAuODk0NzY1LCAxLjA0NjM3LCAyLjQxNTI0LCA0LjcwMDc0LCA2Ljk4ODQxLCAxMi4zMTY1LCAxNS4zNjE1IiwgXAotICAgICAgICAgICIwLjg5NTAxOSwgMS4wNDcxNCwgMi40MTM5MiwgNC43MDM2NCwgNi45ODc5NiwgMTIuMzE2NSwgMTUuMzYxNSIsIFwKLSAgICAgICAgICAiMC44OTQzODEsIDEuMDQ2MzgsIDIuNDE0MTcsIDQuNzA0NDYsIDYuOTkwMjUsIDEyLjMxNjUsIDE1LjM2MTYiLCBcCi0gICAgICAgICAgIjAuODk1MTI2LCAxLjA0NjM4LCAyLjQxNDk3LCA0LjcwMzQxLCA2Ljk4OTE2LCAxMi4zMTY5LCAxNS4zNjE2Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjQwMTA2NCwgMC40NjA4NDksIDAuOTk1NDI5LCAxLjg4MjAyLCAyLjc2ODM3LCA0LjgzMjA1LCA2LjAxMDg3IiwgXAotICAgICAgICAgICIwLjQxMTQwNiwgMC40NzEyMDYsIDEuMDA1OSwgMS44OTI5NiwgMi43Nzg5NSwgNC44NDI0NCwgNi4wMjE1MyIsIFwKLSAgICAgICAgICAiMC40MjQ4MjMsIDAuNDg0NjA0LCAxLjAxOTMsIDEuOTA1NzQsIDIuNzkyMjQsIDQuODU1OCwgNi4wMzQ4OCIsIFwKLSAgICAgICAgICAiMC40MzgyODYsIDAuNDk4MDI3LCAxLjAzMjc1LCAxLjkyLCAyLjgwNTU1LCA0Ljg2OTI3LCA2LjA0ODQiLCBcCi0gICAgICAgICAgIjAuNDUxNzM1LCAwLjUxMTQ4MSwgMS4wNDYxMiwgMS45MzMzMywgMi44MTk2OCwgNC44ODM0LCA2LjA2MjUyIiwgXAotICAgICAgICAgICIwLjQ3MzI1MSwgMC41MzMxMDgsIDEuMDY3NzEsIDEuOTU0MzEsIDIuODQwNjMsIDQuOTA0NDcsIDYuMDgzNSIsIFwKLSAgICAgICAgICAiMC40OTE2MywgMC41NTIwMTcsIDEuMDg2OCwgMS45NzM3NSwgMi44NTk3OCwgNC45MjM1MSwgNi4xMDIyNiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC43MTk0MjIsIDAuODMxOTkzLCAxLjg0MzQ4LCAzLjUzMDUsIDUuMjEzMzIsIDkuMTQwOTcsIDExLjM4MjMiLCBcCi0gICAgICAgICAgIjAuNzE5NDQyLCAwLjgzMTg4NywgMS44NDQ1MiwgMy41MzAyMywgNS4yMTMzNiwgOS4xNDI1MiwgMTEuMzgzNyIsIFwKLSAgICAgICAgICAiMC43MTkzNywgMC44MzE4ODksIDEuODQ0MTUsIDMuNTMwMjksIDUuMjE0NzMsIDkuMTQwOTIsIDExLjM4MzUiLCBcCi0gICAgICAgICAgIjAuNzE5Mjk3LCAwLjgzMTg0MywgMS44NDQ1NiwgMy41MzA0MiwgNS4yMTQ1MiwgOS4xNDE0OCwgMTEuMzgzNCIsIFwKLSAgICAgICAgICAiMC43MTkzMjEsIDAuODMxODIzLCAxLjg0NDQ5LCAzLjUzMDQzLCA1LjIxNDQ4LCA5LjE0MTc3LCAxMS4zODM0IiwgXAotICAgICAgICAgICIwLjcxOTA5NywgMC44MzE3NzMsIDEuODQzNTYsIDMuNTMwMzcsIDUuMjE0NTcsIDkuMTQxLCAxMS4zODI3IiwgXAotICAgICAgICAgICIwLjcxODkxOCwgMC44MzE3MTQsIDEuODQ0MzksIDMuNTI5NDIsIDUuMjE0ODgsIDkuMTQyODYsIDExLjM4MjMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjAiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjUxNjE2MywgMC41OTU0MzEsIDEuMzA3NDYsIDIuNDk0MDYsIDMuNjgwNTYsIDYuNDU0NTQsIDguMDM5NjkiLCBcCi0gICAgICAgICAgIjAuNTI2ODQzLCAwLjYwNjA4NiwgMS4zMTgzNywgMi41MDQ3NywgMy42OTA5NSwgNi40NjUyMiwgOC4wNTAzNSIsIFwKLSAgICAgICAgICAiMC41NDAxMywgMC42MTk0MywgMS4zMzE1OSwgMi41MTc3MiwgMy43MDQ1NSwgNi40Nzg0NiwgOC4wNjM2NCIsIFwKLSAgICAgICAgICAiMC41NTMzMTQsIDAuNjMyNjY2LCAxLjM0NTIyLCAyLjUzMTA3LCAzLjcxNzYyLCA2LjQ5MTY3LCA4LjA3Njg2IiwgXAotICAgICAgICAgICIwLjU2NjEwNCwgMC42NDUzNDgsIDEuMzU3ODcsIDIuNTQ0MzMsIDMuNzMwNDgsIDYuNTA0NTEsIDguMDg5NjMiLCBcCi0gICAgICAgICAgIjAuNTg1NzQyLCAwLjY2NTA4MiwgMS4zNzcyLCAyLjU2MzY3LCAzLjc1MDIsIDYuNTI0MTYsIDguMTA5MzYiLCBcCi0gICAgICAgICAgIjAuNjAyNTU3LCAwLjY4MTgzOSwgMS4zOTQxLCAyLjU4MDUyLCAzLjc2NzAzLCA2LjU0MTA4LCA4LjEyNjI2Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjkwNTMzNCwgMS4wNTc0MiwgMi40MjY2NSwgNC43MTI5NiwgNy4wMDA4OSwgMTIuMzI5MSwgMTUuMzc0MiIsIFwKLSAgICAgICAgICAiMC45MDU1NzIsIDEuMDU3NDEsIDIuNDI3LCA0LjcxMzE1LCA3LjAwMDk0LCAxMi4zMjkxLCAxNS4zNzQzIiwgXAotICAgICAgICAgICIwLjkwNTI5OSwgMS4wNTc0MywgMi40MjUzNSwgNC43MTI3NywgNy4wMDA1NywgMTIuMzI5NiwgMTUuMzc0MyIsIFwKLSAgICAgICAgICAiMC45MDU1MzUsIDEuMDU4NDMsIDIuNDI1ODEsIDQuNzEyMjMsIDcuMDAxOTksIDEyLjMyOTYsIDE1LjM3NDMiLCBcCi0gICAgICAgICAgIjAuOTA2MTkyLCAxLjA1ODM1LCAyLjQyNTkxLCA0LjcxMjM5LCA3LCAxMi4zMjk1LCAxNS4zNzQzIiwgXAotICAgICAgICAgICIwLjkwNTMwNSwgMS4wNTgzNywgMi40MjY4LCA0LjcxMjIyLCA3LjAwMjQ5LCAxMi4zMjk2LCAxNS4zNzQzIiwgXAotICAgICAgICAgICIwLjkwNjE5OSwgMS4wNTgzNCwgMi40MjY3OSwgNC43MTIyNSwgNy4wMDE1MywgMTIuMzI5NiwgMTUuMzc0MyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zNzg2MjksIDAuNDM3OSwgMC45NzAxMDYsIDEuODU1ODEsIDIuNzQwNzYsIDQuODA1NDMsIDUuOTg0OTMiLCBcCi0gICAgICAgICAgIjAuMzkxMDcsIDAuNDUwMjQzLCAwLjk4MjQ2OSwgMS44Njg0OCwgMi43NTMzOCwgNC44MTc5MywgNS45OTcyNSIsIFwKLSAgICAgICAgICAiMC40MDUyNiwgMC40NjQ1MzMsIDAuOTk2ODIxLCAxLjg4MjkzLCAyLjc2NzI0LCA0LjgzMjMsIDYuMDExNTQiLCBcCi0gICAgICAgICAgIjAuNDE5MDc2LCAwLjQ3ODYwOSwgMS4wMTA3OCwgMS44OTY0LCAyLjc4MTcyLCA0Ljg0NjIyLCA2LjAyNTcxIiwgXAotICAgICAgICAgICIwLjQzMzA0NCwgMC40OTI0MTEsIDEuMDI0NjgsIDEuOTEwMjksIDIuNzk1NTYsIDQuODYwMDksIDYuMDM5NTkiLCBcCi0gICAgICAgICAgIjAuNDU1MjY3LCAwLjUxNDUwNCwgMS4wNDY4MywgMS45MzI0MywgMi44MTc3NSwgNC44ODI1NSwgNi4wNjE3IiwgXAotICAgICAgICAgICIwLjQ3NDEyMiwgMC41MzM2NDQsIDEuMDY2MywgMS45NTE4NywgMi44MzY5MiwgNC45MDE3NCwgNi4wODEwNSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC42ODg5MTcsIDAuODAxMzQxLCAxLjgxMTk0LCAzLjQ5NjY0LCA1LjE4MDc5LCA5LjEwODM1LCAxMS4zNDc3IiwgXAotICAgICAgICAgICIwLjY4ODkwOCwgMC44MDEzMTEsIDEuODEyNzcsIDMuNDk1ODgsIDUuMTgxMywgOS4xMDc3OCwgMTEuMzQ4NCIsIFwKLSAgICAgICAgICAiMC42ODg5NzQsIDAuODAxNDU1LCAxLjgxMjc4LCAzLjQ5NjI0LCA1LjE4MDY4LCA5LjEwNzIyLCAxMS4zNDc0IiwgXAotICAgICAgICAgICIwLjY4ODg4NSwgMC44MDEyOTksIDEuODExODEsIDMuNDk3MDQsIDUuMTgxMTIsIDkuMTA3NzQsIDExLjM0ODciLCBcCi0gICAgICAgICAgIjAuNjg4ODU4LCAwLjgwMTI4NywgMS44MTI0OCwgMy40OTc0LCA1LjE4MTU0LCA5LjEwNzU4LCAxMS4zNDg3IiwgXAotICAgICAgICAgICIwLjY4ODg2MywgMC44MDEyMjksIDEuODExOCwgMy40OTU4NywgNS4xODEyNCwgOS4xMDcyMSwgMTEuMzQ4MiIsIFwKLSAgICAgICAgICAiMC42ODg4NDEsIDAuODAxMjQ1LCAxLjgxMjY4LCAzLjQ5NzE4LCA1LjE3OTM2LCA5LjEwODM0LCAxMS4zNDc5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIxIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC41MDYyNywgMC41ODU3MzgsIDEuMzAwNTIsIDIuNDkwMzksIDMuNjc5MTQsIDYuNDUzMDUsIDguMDM4MjMiLCBcCi0gICAgICAgICAgIjAuNTE3MjU1LCAwLjU5Njc1NiwgMS4zMTEyMywgMi41MDE2MywgMy42OTAyNiwgNi40NjQyNiwgOC4wNDkzMSIsIFwKLSAgICAgICAgICAiMC41MzA2NTIsIDAuNjEwMTE3LCAxLjMyNDc1LCAyLjUxNTM0LCAzLjcwMzc4LCA2LjQ3NzU5LCA4LjA2Mjc2IiwgXAotICAgICAgICAgICIwLjU0Mzc5NCwgMC42MjMzNDYsIDEuMzM4MTEsIDIuNTI3OTUsIDMuNzE2NzksIDYuNDkwODIsIDguMDc1OTkiLCBcCi0gICAgICAgICAgIjAuNTU2NTI5LCAwLjYzNTk2LCAxLjM1MDYzLCAyLjU0MTI3LCAzLjcyOTY1LCA2LjUwMzY2LCA4LjA4ODc3IiwgXAotICAgICAgICAgICIwLjU3NjEzMSwgMC42NTU2MTksIDEuMzcwMDYsIDIuNTYwNTIsIDMuNzQ5MzYsIDYuNTIzMzEsIDguMTA4NSIsIFwKLSAgICAgICAgICAiMC41OTI4NDIsIDAuNjcyMzQxLCAxLjM4NjkyLCAyLjU3NzMzLCAzLjc2NjE5LCA2LjU0MDIyLCA4LjEyNTQiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuODk2NTA5LCAxLjA0OTA5LCAyLjQyMjQxLCA0LjcxMDQ0LCA3LjAwMDQ3LCAxMi4zMjczLCAxNS4zNzIiLCBcCi0gICAgICAgICAgIjAuODk2NDY3LCAxLjA0OTExLCAyLjQyMzQzLCA0LjcxMTA3LCA3LjAwMDM4LCAxMi4zMjY4LCAxNS4zNzE5IiwgXAotICAgICAgICAgICIwLjg5NjUxMiwgMS4wNDkwOSwgMi40MjI1MSwgNC43MTAzMSwgNi45OTk5OCwgMTIuMzI3MywgMTUuMzcxOSIsIFwKLSAgICAgICAgICAiMC44OTY1MTQsIDEuMDQ5OSwgMi40MjIyNiwgNC43MTA1MiwgNi45OTk1NywgMTIuMzI3MywgMTUuMzcyIiwgXAotICAgICAgICAgICIwLjg5NzE3NiwgMS4wNDkwOSwgMi40MjIzNiwgNC43MDkzNSwgNi45OTc3OCwgMTIuMzI3MiwgMTUuMzcyIiwgXAotICAgICAgICAgICIwLjg5NjUsIDEuMDQ5MDksIDIuNDIzMTcsIDQuNzEwNiwgNy4wMDAyNiwgMTIuMzI3MywgMTUuMzcyIiwgXAotICAgICAgICAgICIwLjg5NzE4NSwgMS4wNDk4OCwgMi40MjMxNiwgNC43MTA1MywgNi45OTk0NywgMTIuMzI3MiwgMTUuMzcyIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjM3MTY1MywgMC40MzA5MzcsIDAuOTYyOTg2LCAxLjg0ODQxLCAyLjczMzg2LCA0Ljc5ODUxLCA1Ljk3Nzc2IiwgXAotICAgICAgICAgICIwLjM4MjQ5NywgMC40NDE4NjMsIDAuOTczODk3LCAxLjg1OTQzLCAyLjc0NDkzLCA0LjgwOTQzLCA1Ljk4ODc2IiwgXAotICAgICAgICAgICIwLjM5NjI5MiwgMC40NTU1NDMsIDAuOTg3Nzg3LCAxLjg3MzkzLCAyLjc1ODQ1LCA0LjgyMzI4LCA2LjAwMjQ0IiwgXAotICAgICAgICAgICIwLjQwOTgxMiwgMC40NjkwMiwgMS4wMDE4OSwgMS44ODc0OCwgMi43NzIxMiwgNC44MzY5NCwgNi4wMTYyMyIsIFwKLSAgICAgICAgICAiMC40MjM0MDcsIDAuNDgyODMxLCAxLjAxNDk2LCAxLjkwMDgsIDIuNzg1NjksIDQuODUwNDYsIDYuMDI5OTciLCBcCi0gICAgICAgICAgIjAuNDQ1MTQ2LCAwLjUwNDM1NSwgMS4wMzY3LCAxLjkyMjI0LCAyLjgwNzg3LCA0Ljg3MjM3LCA2LjA1MTY2IiwgXAotICAgICAgICAgICIwLjQ2MzM4LCAwLjUyMjYxMSwgMS4wNTU2LCAxLjk0MDk0LCAyLjgyNjE2LCA0Ljg5MDcxLCA2LjA2OTk2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjY4ODg0MywgMC44MDExODUsIDEuODEyNzUsIDMuNDk2ODYsIDUuMTgxMzksIDkuMTA3NDksIDExLjM0NzciLCBcCi0gICAgICAgICAgIjAuNjg4ODU4LCAwLjgwMTIzNiwgMS44MTI0OSwgMy40OTcxLCA1LjE4MTI1LCA5LjEwNjk0LCAxMS4zNDg3IiwgXAotICAgICAgICAgICIwLjY4ODg5NCwgMC44MDEzMDksIDEuODEyNzcsIDMuNDk3NTMsIDUuMTgwNzgsIDkuMTA4NDIsIDExLjM0ODIiLCBcCi0gICAgICAgICAgIjAuNjg4ODc3LCAwLjgwMTI1MSwgMS44MTI3NiwgMy40OTY4OSwgNS4xNzk1NywgOS4xMDg0MywgMTEuMzQ4IiwgXAotICAgICAgICAgICIwLjY4ODg4NSwgMC44MDEzMDQsIDEuODEyMDMsIDMuNDk3NTEsIDUuMTc5MzgsIDkuMTA3NDgsIDExLjM0ODciLCBcCi0gICAgICAgICAgIjAuNjg4ODQ4LCAwLjgwMTI0MiwgMS44MTI3OCwgMy40OTcxNywgNS4xNzk0MiwgOS4xMDgxOSwgMTEuMzQ3OSIsIFwKLSAgICAgICAgICAiMC42ODg5MDQsIDAuODAxMTk4LCAxLjgxMjcxLCAzLjQ5Njc1LCA1LjE4MTE2LCA5LjEwNzc1LCAxMS4zNDc2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC40Njk2MDcsIDAuNTQ4OTE2LCAxLjI2MSwgMi40NDczLCAzLjYzMjE3LCA2LjQwNTk1LCA3Ljk5MTEzIiwgXAotICAgICAgICAgICIwLjQ3OTQ5OCwgMC41NTg4MjEsIDEuMjcxMiwgMi40NTY3OSwgMy42NDIwMywgNi40MTU5MiwgOC4wMDA5OCIsIFwKLSAgICAgICAgICAiMC40OTE5NzIsIDAuNTcxMjgxLCAxLjI4MzUxLCAyLjQ3MDI5LCAzLjY1NDY3LCA2LjQyODMxLCA4LjAxMzQ5IiwgXAotICAgICAgICAgICIwLjUwNDI3NSwgMC41ODM1MjgsIDEuMjk1ODksIDIuNDgyMTcsIDMuNjY2ODgsIDYuNDQwNzEsIDguMDI1ODciLCBcCi0gICAgICAgICAgIjAuNTE2NTA4LCAwLjU5NTgwNCwgMS4zMDgxMywgMi40OTM5NCwgMy42NzkyMywgNi40NTMwNiwgOC4wMzgxOCIsIFwKLSAgICAgICAgICAiMC41MzYwOCwgMC42MTUzMywgMS4zMjc4MSwgMi41MTM1NiwgMy42OTg4OSwgNi40NzI3NiwgOC4wNTc5MiIsIFwKLSAgICAgICAgICAiMC41NTIyMjgsIDAuNjMyNDMyLCAxLjM0NDkzLCAyLjUzMDg2LCAzLjcxNjI5LCA2LjQ4OTg5LCA4LjA3NDk2Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjkwNjE5MywgMS4wNTc3MiwgMi40MjUzNSwgNC43MTE2NiwgNi45OTg1NSwgMTIuMzI2OCwgMTUuMzcyIiwgXAotICAgICAgICAgICIwLjkwNTQyLCAxLjA1ODAzLCAyLjQyNTk4LCA0LjcxMzkyLCA3LjAwMDM0LCAxMi4zMjc1LCAxNS4zNzE5IiwgXAotICAgICAgICAgICIwLjkwNTUzMywgMS4wNTc4LCAyLjQyNTE0LCA0LjcxMDMyLCA3LjAwMDQ5LCAxMi4zMjczLCAxNS4zNzIiLCBcCi0gICAgICAgICAgIjAuOTA1NTcyLCAxLjA1NzU2LCAyLjQyNywgNC43MTA0OCwgNi45OTk2MSwgMTIuMzI3MywgMTUuMzcyIiwgXAotICAgICAgICAgICIwLjkwNjA0NywgMS4wNTc1MSwgMi40MjUyNywgNC43MTM2OSwgNi45OTg5MiwgMTIuMzI3MiwgMTUuMzcxNSIsIFwKLSAgICAgICAgICAiMC45MDUzMzksIDEuMDU4MTQsIDIuNDI1MiwgNC43MDg3NywgNi45OTg3NiwgMTIuMzI2OCwgMTUuMzcxMyIsIFwKLSAgICAgICAgICAiMC45MDM1ODMsIDEuMDU3MDMsIDIuNDI1MjMsIDQuNzEyMTgsIDcuMDAwNzIsIDEyLjMyNzUsIDE1LjM3MiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zNDQyNTcsIDAuNDAzMDgzLCAwLjkzNDQxNiwgMS44MTk3MSwgMi43MDQ5MSwgNC43NzAwOSwgNS45NDk5NyIsIFwKLSAgICAgICAgICAiMC4zNTY2NjIsIDAuNDE1NzY4LCAwLjk0Njk3MiwgMS44MzIxNywgMi43MTcyNywgNC43ODI3NSwgNS45NjI0MSIsIFwKLSAgICAgICAgICAiMC4zNzA4OTYsIDAuNDI5OTg3LCAwLjk2MTEyLCAxLjg0NjYzLCAyLjczMjAyLCA0Ljc5NzIxLCA1Ljk3Njk2IiwgXAotICAgICAgICAgICIwLjM4NDg3MiwgMC40NDM5MTMsIDAuOTc1MDk5LCAxLjg2MDQ4LCAyLjc0NjExLCA0LjgxMTI2LCA1Ljk5MDg4IiwgXAotICAgICAgICAgICIwLjM5ODY2NywgMC40NTc4NzIsIDAuOTg5MjI0LCAxLjg3NDQyLCAyLjc1OTg4LCA0LjgyNTEsIDYuMDA0OTQiLCBcCi0gICAgICAgICAgIjAuNDIwNjQ4LCAwLjQ3OTk2NywgMS4wMTEzNCwgMS44OTY1OCwgMi43ODIwNSwgNC44NDcyMywgNi4wMjcxMiIsIFwKLSAgICAgICAgICAiMC40Mzg4NzgsIDAuNDk4OTM0LCAxLjAzMDY4LCAxLjkxNjA0LCAyLjgwMTE2LCA0Ljg2NjY5LCA2LjA0NjU4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjY2MDIxOCwgMC43NzIxNTgsIDEuNzgxNTMsIDMuNDY1NDIsIDUuMTUwMjcsIDkuMDczMjUsIDExLjMxMjciLCBcCi0gICAgICAgICAgIjAuNjYwMTY0LCAwLjc3MjIzNywgMS43ODEwMSwgMy40NjU4OCwgNS4xNDk0NCwgOS4wNzIyLCAxMS4zMTM0IiwgXAotICAgICAgICAgICIwLjY2MDE2MiwgMC43NzIyMTQsIDEuNzgxNjYsIDMuNDYzOTUsIDUuMTUwMjIsIDkuMDczMDIsIDExLjMxMzgiLCBcCi0gICAgICAgICAgIjAuNjYwMTk0LCAwLjc3MjIxMywgMS43ODE3MywgMy40NjM2OCwgNS4xNDk0MSwgOS4wNzIxLCAxMS4zMTM1IiwgXAotICAgICAgICAgICIwLjY2MDIyNywgMC43NzIyMywgMS43ODE0MiwgMy40NjUwNiwgNS4xNTAwNCwgOS4wNzM1NCwgMTEuMzEyNyIsIFwKLSAgICAgICAgICAiMC42NjAyMSwgMC43NzIyNDMsIDEuNzgxNjksIDMuNDY1MTQsIDUuMTUwMTUsIDkuMDczMTUsIDExLjMxMjciLCBcCi0gICAgICAgICAgIjAuNjYwMzA4LCAwLjc3MjI4MywgMS43ODEwMiwgMy40NjU2MywgNS4xNDY3NywgOS4wNzM2NywgMTEuMzEzNiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDMSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuNDYxNDU2LCAwLjU0MDkxLCAxLjI1NTI3LCAyLjQ0NTg5LCAzLjYzNDQ4LCA2LjQwODYxLCA3Ljk5Mzc1IiwgXAotICAgICAgICAgICIwLjQ3MTgyMSwgMC41NTEyMywgMS4yNjU4MiwgMi40NTYyNywgMy42NDUsIDYuNDE4OTcsIDguMDA0MTciLCBcCi0gICAgICAgICAgIjAuNDg0Mjg1LCAwLjU2MzgxMiwgMS4yNzgzNCwgMi40NjkxOCwgMy42NTc2MywgNi40MzE1LCA4LjAxNjciLCBcCi0gICAgICAgICAgIjAuNDk2NTQzLCAwLjU3NjA0NiwgMS4yOTA3MiwgMi40ODEwMywgMy42Njk4NywgNi40NDM5MywgOC4wMjkxMSIsIFwKLSAgICAgICAgICAiMC41MDg3NzUsIDAuNTg4MjE1LCAxLjMwMzAyLCAyLjQ5MzE5LCAzLjY4MjE5LCA2LjQ1NjIxLCA4LjA0MTQxIiwgXAotICAgICAgICAgICIwLjUyODIyMiwgMC42MDc3OTksIDEuMzIyNjEsIDIuNTEyNDMsIDMuNzAxODYsIDYuNDc2LCA4LjA2MTA2IiwgXAotICAgICAgICAgICIwLjU0NDMyMiwgMC42MjQ4NTYsIDEuMzM5NzEsIDIuNTI5NzEsIDMuNzE5MjcsIDYuNDkzMTQsIDguMDc4MTkiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuODk5MTEyLCAxLjA1MTg4LCAyLjQyNTIsIDQuNzEyODYsIDcuMDAyMDIsIDEyLjMyOTcsIDE1LjM3NDIiLCBcCi0gICAgICAgICAgIjAuODk5MDksIDEuMDUwNzgsIDIuNDI1NDIsIDQuNzEyMTcsIDcuMDAyNjQsIDEyLjMyOTYsIDE1LjM3NDMiLCBcCi0gICAgICAgICAgIjAuODk4NDM1LCAxLjA1MTI5LCAyLjQyMzcxLCA0LjcxMjMsIDcuMDAyNzYsIDEyLjMyOTcsIDE1LjM3NDMiLCBcCi0gICAgICAgICAgIjAuODk4NzQ2LCAxLjA1MTA0LCAyLjQyNTQ2LCA0LjcxMjI1LCA3LjAwMTY1LCAxMi4zMjk2LCAxNS4zNzQzIiwgXAotICAgICAgICAgICIwLjg5ODMzOSwgMS4wNTE3NiwgMi40MjM2NiwgNC43MTI2OSwgNy4wMDE1NiwgMTIuMzI5NywgMTUuMzc0MyIsIFwKLSAgICAgICAgICAiMC44OTc3NywgMS4wNTA4NiwgMi40MjM2NiwgNC43MTA2NCwgNy4wMDA5OCwgMTIuMzI5LCAxNS4zNzQzIiwgXAotICAgICAgICAgICIwLjg5NzQxMiwgMS4wNTAyOCwgMi40MjM2NiwgNC43MTQyNiwgNy4wMDI5NSwgMTIuMzI5OCwgMTUuMzc0MyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMzg0ODMsIDAuMzk3NTQ2LCAwLjkyODgyOSwgMS44MTQsIDIuNjk5MDMsIDQuNzY0MjUsIDUuOTQ0MzMiLCBcCi0gICAgICAgICAgIjAuMzQ5OTYyLCAwLjQwOTAyLCAwLjk0MDU5MSwgMS44MjUzMywgMi43MTA3NCwgNC43NzYwNiwgNS45NTU3NCIsIFwKLSAgICAgICAgICAiMC4zNjM0MiwgMC40MjI0MjQsIDAuOTUzNjcxLCAxLjgzOTE0LCAyLjcyNDIyLCA0Ljc4OTcyLCA1Ljk2OTYiLCBcCi0gICAgICAgICAgIjAuMzc2NjU1LCAwLjQzNjAxNywgMC45NjcyMzksIDEuODUyNDUsIDIuNzM3OTUsIDQuODAzMiwgNS45ODI3NCIsIFwKLSAgICAgICAgICAiMC4zOTEwMTcsIDAuNDUwMTQxLCAwLjk4MTc1OCwgMS44NjY2MiwgMi43NTE3NCwgNC44MTcyLCA1Ljk5NzA1IiwgXAotICAgICAgICAgICIwLjQxMTY4NiwgMC40NzEwNTUsIDEuMDAyNTUsIDEuODg3NzcsIDIuNzcyODcsIDQuODM4NDEsIDYuMDE4MjkiLCBcCi0gICAgICAgICAgIjAuNDMwODA2LCAwLjQ4OTU2OCwgMS4wMjE0MywgMS45MDY1NCwgMi43OTIwNywgNC44NTcyOSwgNi4wMzcxNyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC42NjAxOTMsIDAuNzcyMzIsIDEuNzgxODcsIDMuNDY0NDksIDUuMTQ5OSwgOS4wNzI3MSwgMTEuMzEyNyIsIFwKLSAgICAgICAgICAiMC42NjAyMDEsIDAuNzcyMjIyLCAxLjc4MTgxLCAzLjQ2NTIzLCA1LjE0NzEyLCA5LjA3MTY1LCAxMS4zMTM0IiwgXAotICAgICAgICAgICIwLjY2MDIxNiwgMC43NzIyMzUsIDEuNzgxNzMsIDMuNDY1NjQsIDUuMTQ5MDksIDkuMDczNjQsIDExLjMxMzYiLCBcCi0gICAgICAgICAgIjAuNjYwMTYxLCAwLjc3MjI0NiwgMS43ODEzOCwgMy40NjQzNSwgNS4xNDk4NCwgOS4wNzI3NywgMTEuMzEyNyIsIFwKLSAgICAgICAgICAiMC42NjAyMTEsIDAuNzcyMjQyLCAxLjc4MTg1LCAzLjQ2NTUxLCA1LjE1MDQ0LCA5LjA3MzI5LCAxMS4zMTM2IiwgXAotICAgICAgICAgICIwLjY2MDEyMSwgMC43NzIyNzEsIDEuNzgxNDIsIDMuNDY1NTksIDUuMTQ4ODIsIDkuMDczNzUsIDExLjMxMzIiLCBcCi0gICAgICAgICAgIjAuNjYwNzE0LCAwLjc3MjIwMywgMS43ODE0OSwgMy40NjU0LCA1LjE0OTYxLCA5LjA3MTc2LCAxMS4zMTI2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzA0NywgMC4wMDMwNDcsIDAuMDAzMDQ1LCAwLjAwMzA0MywgMC4wMDMwNCwgMC4wMDMwMjgsIDAuMDAyOTQ3IiwgXAotICAgICAgICAgICIwLjAwMzA0NCwgMC4wMDMwNDQsIDAuMDAzMDQyLCAwLjAwMzAzOCwgMC4wMDMwMzcsIDAuMDAzMDI3LCAwLjAwMjk0NCIsIFwKLSAgICAgICAgICAiMC4wMDMwNDMsIDAuMDAzMDQzLCAwLjAwMzA0MiwgMC4wMDMwMzksIDAuMDAzMDM2LCAwLjAwMzAyNCwgMC4wMDI5NDUiLCBcCi0gICAgICAgICAgIjAuMDAzMDQyLCAwLjAwMzA0MiwgMC4wMDMwNDEsIDAuMDAzMDM5LCAwLjAwMzAzNiwgMC4wMDMwMjUsIDAuMDAyOTQ2IiwgXAotICAgICAgICAgICIwLjAwMzA0MSwgMC4wMDMwNDIsIDAuMDAzMDQxLCAwLjAwMzAzOSwgMC4wMDMwMzcsIDAuMDAzMDI1LCAwLjAwMjkzMyIsIFwKLSAgICAgICAgICAiMC4wMDMwNCwgMC4wMDMwNCwgMC4wMDMwNCwgMC4wMDMwMzksIDAuMDAzMDM2LCAwLjAwMzAyNSwgMC4wMDI5NDEiLCBcCi0gICAgICAgICAgIjAuMDAzMDM5LCAwLjAwMzA0LCAwLjAwMzA0LCAwLjAwMzAzOCwgMC4wMDMwMzYsIDAuMDAzMDI0LCAwLjAwMjk0MSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTEwOCwgMC4wMDExMDgsIDAuMDAxMTA2LCAwLjAwMTEwNCwgMC4wMDExMDIsIDAuMDAxMDk3LCAwLjAwMTA5NCIsIFwKLSAgICAgICAgICAiMC4wMDExMDEsIDAuMDAxMSwgMC4wMDExLCAwLjAwMTA5OCwgMC4wMDEwOTYsIDAuMDAxMDksIDAuMDAxMDg3IiwgXAotICAgICAgICAgICIwLjAwMTA5NywgMC4wMDEwOTcsIDAuMDAxMDk2LCAwLjAwMTA5NCwgMC4wMDEwOTMsIDAuMDAxMDg4LCAwLjAwMTA4NSIsIFwKLSAgICAgICAgICAiMC4wMDEwOTUsIDAuMDAxMDk1LCAwLjAwMTA5NSwgMC4wMDEwOTMsIDAuMDAxMDkxLCAwLjAwMTA4NiwgMC4wMDEwODMiLCBcCi0gICAgICAgICAgIjAuMDAxMDkzLCAwLjAwMTA5MywgMC4wMDEwOTQsIDAuMDAxMDkyLCAwLjAwMTA5LCAwLjAwMTA4NiwgMC4wMDEwODMiLCBcCi0gICAgICAgICAgIjAuMDAxMDkxLCAwLjAwMTA5MSwgMC4wMDEwOTIsIDAuMDAxMDkxLCAwLjAwMTA4OSwgMC4wMDEwODUsIDAuMDAxMDgyIiwgXAotICAgICAgICAgICIwLjAwMTA5LCAwLjAwMTA5LCAwLjAwMTA5MiwgMC4wMDEwOTEsIDAuMDAxMDg5LCAwLjAwMTA4NCwgMC4wMDEwODEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyODI4LCAwLjAwMjgyOCwgMC4wMDI4MjcsIDAuMDAyODI1LCAwLjAwMjgyNCwgMC4wMDI4MTQsIDAuMDAyNzM2IiwgXAotICAgICAgICAgICIwLjAwMjgzLCAwLjAwMjgzLCAwLjAwMjgzLCAwLjAwMjgzLCAwLjAwMjgyNiwgMC4wMDI4MjIsIDAuMDAyNzM4IiwgXAotICAgICAgICAgICIwLjAwMjgyOSwgMC4wMDI4MywgMC4wMDI4MywgMC4wMDI4MjgsIDAuMDAyODI3LCAwLjAwMjgxOCwgMC4wMDI3NDIiLCBcCi0gICAgICAgICAgIjAuMDAyODI4LCAwLjAwMjgyOCwgMC4wMDI4MjksIDAuMDAyODI4LCAwLjAwMjgyNSwgMC4wMDI4MTksIDAuMDAyNzQxIiwgXAotICAgICAgICAgICIwLjAwMjgyNywgMC4wMDI4MjgsIDAuMDAyODMsIDAuMDAyODI4LCAwLjAwMjgyNywgMC4wMDI4MTksIDAuMDAyNzI5IiwgXAotICAgICAgICAgICIwLjAwMjgyNSwgMC4wMDI4MjYsIDAuMDAyODI4LCAwLjAwMjgyOCwgMC4wMDI4MjcsIDAuMDAyODE4LCAwLjAwMjczNyIsIFwKLSAgICAgICAgICAiMC4wMDI4MjMsIDAuMDAyODI0LCAwLjAwMjgyNywgMC4wMDI4MjcsIDAuMDAyODI2LCAwLjAwMjgxNywgMC4wMDI3MzciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDExMDgsIDAuMDAxMTA3LCAwLjAwMTEwNiwgMC4wMDExMDQsIDAuMDAxMTAzLCAwLjAwMTA5OCwgMC4wMDEwOTQiLCBcCi0gICAgICAgICAgIjAuMDAxMSwgMC4wMDExLCAwLjAwMTA5OSwgMC4wMDEwOTgsIDAuMDAxMDk1LCAwLjAwMTA5LCAwLjAwMTA4NyIsIFwKLSAgICAgICAgICAiMC4wMDEwOTYsIDAuMDAxMDk2LCAwLjAwMTA5NiwgMC4wMDEwOTQsIDAuMDAxMDkyLCAwLjAwMTA4NywgMC4wMDEwODQiLCBcCi0gICAgICAgICAgIjAuMDAxMDkzLCAwLjAwMTA5NCwgMC4wMDEwOTQsIDAuMDAxMDkzLCAwLjAwMTA5MSwgMC4wMDEwODYsIDAuMDAxMDgyIiwgXAotICAgICAgICAgICIwLjAwMTA5MiwgMC4wMDEwOTIsIDAuMDAxMDkzLCAwLjAwMTA5MiwgMC4wMDEwOSwgMC4wMDEwODUsIDAuMDAxMDgyIiwgXAotICAgICAgICAgICIwLjAwMTA5LCAwLjAwMTA5LCAwLjAwMTA5MSwgMC4wMDEwOTEsIDAuMDAxMDg5LCAwLjAwMTA4NCwgMC4wMDEwODEiLCBcCi0gICAgICAgICAgIjAuMDAxMDg3LCAwLjAwMTA4OCwgMC4wMDEwOSwgMC4wMDEwOSwgMC4wMDEwODksIDAuMDAxMDg0LCAwLjAwMTA4MSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI1NzEsIDAuMDAyNTcxLCAwLjAwMjU3LCAwLjAwMjU2NywgMC4wMDI1NjQsIDAuMDAyNTUzLCAwLjAwMjQ3NCIsIFwKLSAgICAgICAgICAiMC4wMDI1NjcsIDAuMDAyNTY3LCAwLjAwMjU2NiwgMC4wMDI1NjMsIDAuMDAyNTYxLCAwLjAwMjU0OSwgMC4wMDI0NzEiLCBcCi0gICAgICAgICAgIjAuMDAyNTY2LCAwLjAwMjU2NiwgMC4wMDI1NjUsIDAuMDAyNTYyLCAwLjAwMjU2LCAwLjAwMjU0OSwgMC4wMDI0NjUiLCBcCi0gICAgICAgICAgIjAuMDAyNTY1LCAwLjAwMjU2NSwgMC4wMDI1NjUsIDAuMDAyNTYyLCAwLjAwMjU2LCAwLjAwMjU0OSwgMC4wMDI0NjYiLCBcCi0gICAgICAgICAgIjAuMDAyNTY1LCAwLjAwMjU2NSwgMC4wMDI1NjQsIDAuMDAyNTYyLCAwLjAwMjU2LCAwLjAwMjU0OSwgMC4wMDI0NjYiLCBcCi0gICAgICAgICAgIjAuMDAyNTY0LCAwLjAwMjU2NCwgMC4wMDI1NjQsIDAuMDAyNTYyLCAwLjAwMjU1OSwgMC4wMDI1NDcsIDAuMDAyNDY1IiwgXAotICAgICAgICAgICIwLjAwMjU2MywgMC4wMDI1NjMsIDAuMDAyNTYzLCAwLjAwMjU2MiwgMC4wMDI1NTksIDAuMDAyNTQ3LCAwLjAwMjQ2NCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDY0NCwgMC4wMDA2NDQsIDAuMDAwNjQ1LCAwLjAwMDY0MywgMC4wMDA2NDIsIDAuMDAwNjM5LCAwLjAwMDYzOCIsIFwKLSAgICAgICAgICAiMC4wMDA2NDYsIDAuMDAwNjQ2LCAwLjAwMDY0NiwgMC4wMDA2NDYsIDAuMDAwNjQ2LCAwLjAwMDY0MiwgMC4wMDA2NDEiLCBcCi0gICAgICAgICAgIjAuMDAwNjQ2LCAwLjAwMDY0NiwgMC4wMDA2NDcsIDAuMDAwNjQ3LCAwLjAwMDY0NiwgMC4wMDA2NDQsIDAuMDAwNjQyIiwgXAotICAgICAgICAgICIwLjAwMDY0NCwgMC4wMDA2NDUsIDAuMDAwNjQ3LCAwLjAwMDY0NywgMC4wMDA2NDcsIDAuMDAwNjQ0LCAwLjAwMDY0MyIsIFwKLSAgICAgICAgICAiMC4wMDA2NDMsIDAuMDAwNjQ0LCAwLjAwMDY0NiwgMC4wMDA2NDcsIDAuMDAwNjQ3LCAwLjAwMDY0NCwgMC4wMDA2NDMiLCBcCi0gICAgICAgICAgIjAuMDAwNjQsIDAuMDAwNjQxLCAwLjAwMDY0NSwgMC4wMDA2NDYsIDAuMDAwNjQ2LCAwLjAwMDY0NCwgMC4wMDA2NDMiLCBcCi0gICAgICAgICAgIjAuMDAwNjM4LCAwLjAwMDYzOSwgMC4wMDA2NDQsIDAuMDAwNjQ2LCAwLjAwMDY0NiwgMC4wMDA2NDQsIDAuMDAwNjQzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjMyMiwgMC4wMDIzMjIsIDAuMDAyMzIxLCAwLjAwMjMxOSwgMC4wMDIzMTgsIDAuMDAyMzEsIDAuMDAyMjI2IiwgXAotICAgICAgICAgICIwLjAwMjMyNCwgMC4wMDIzMjQsIDAuMDAyMzI0LCAwLjAwMjMyMiwgMC4wMDIzMjEsIDAuMDAyMzExLCAwLjAwMjIyNCIsIFwKLSAgICAgICAgICAiMC4wMDIzMjMsIDAuMDAyMzIzLCAwLjAwMjMyNCwgMC4wMDIzMjIsIDAuMDAyMzIyLCAwLjAwMjMxMiwgMC4wMDIyMjgiLCBcCi0gICAgICAgICAgIjAuMDAyMzIyLCAwLjAwMjMyMiwgMC4wMDIzMjQsIDAuMDAyMzIyLCAwLjAwMjMyMSwgMC4wMDIzMTQsIDAuMDAyMjI5IiwgXAotICAgICAgICAgICIwLjAwMjMyMSwgMC4wMDIzMjEsIDAuMDAyMzIzLCAwLjAwMjMyMywgMC4wMDIzMjEsIDAuMDAyMzEyLCAwLjAwMjIyOSIsIFwKLSAgICAgICAgICAiMC4wMDIzMTksIDAuMDAyMzIsIDAuMDAyMzIyLCAwLjAwMjMyMiwgMC4wMDIzMjEsIDAuMDAyMzEzLCAwLjAwMjIyOCIsIFwKLSAgICAgICAgICAiMC4wMDIzMTcsIDAuMDAyMzE4LCAwLjAwMjMyMSwgMC4wMDIzMjIsIDAuMDAyMzIxLCAwLjAwMjMxMywgMC4wMDIyMzQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDA2NDQsIDAuMDAwNjQ0LCAwLjAwMDY0MywgMC4wMDA2NDMsIDAuMDAwNjQyLCAwLjAwMDYzOSwgMC4wMDA2MzgiLCBcCi0gICAgICAgICAgIjAuMDAwNjQ2LCAwLjAwMDY0NiwgMC4wMDA2NDYsIDAuMDAwNjQ2LCAwLjAwMDY0NSwgMC4wMDA2NDIsIDAuMDAwNjQiLCBcCi0gICAgICAgICAgIjAuMDAwNjQ1LCAwLjAwMDY0NiwgMC4wMDA2NDcsIDAuMDAwNjQ3LCAwLjAwMDY0NiwgMC4wMDA2NDQsIDAuMDAwNjQyIiwgXAotICAgICAgICAgICIwLjAwMDY0NCwgMC4wMDA2NDQsIDAuMDAwNjQ3LCAwLjAwMDY0NywgMC4wMDA2NDYsIDAuMDAwNjQ0LCAwLjAwMDY0MyIsIFwKLSAgICAgICAgICAiMC4wMDA2NDIsIDAuMDAwNjQzLCAwLjAwMDY0NiwgMC4wMDA2NDcsIDAuMDAwNjQ2LCAwLjAwMDY0NCwgMC4wMDA2NDMiLCBcCi0gICAgICAgICAgIjAuMDAwNjM5LCAwLjAwMDY0MSwgMC4wMDA2NDUsIDAuMDAwNjQ2LCAwLjAwMDY0NiwgMC4wMDA2NDQsIDAuMDAwNjQzIiwgXAotICAgICAgICAgICIwLjAwMDYzNywgMC4wMDA2MzksIDAuMDAwNjQ0LCAwLjAwMDY0NiwgMC4wMDA2NDYsIDAuMDAwNjQ0LCAwLjAwMDY0MyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDIwMTUsIDAuMDAyMDE0LCAwLjAwMjAxMywgMC4wMDIwMTEsIDAuMDAyMDA4LCAwLjAwMTk5NiwgMC4wMDE5MTkiLCBcCi0gICAgICAgICAgIjAuMDAyMDExLCAwLjAwMjAxMSwgMC4wMDIwMSwgMC4wMDIwMDgsIDAuMDAyMDA0LCAwLjAwMTk5MywgMC4wMDE5MTQiLCBcCi0gICAgICAgICAgIjAuMDAyMDA5LCAwLjAwMjAwOSwgMC4wMDIwMDgsIDAuMDAyMDA3LCAwLjAwMjAwNCwgMC4wMDE5OTMsIDAuMDAxOTExIiwgXAotICAgICAgICAgICIwLjAwMjAwNywgMC4wMDIwMDgsIDAuMDAyMDA4LCAwLjAwMjAwNSwgMC4wMDIwMDMsIDAuMDAxOTkzLCAwLjAwMTkxIiwgXAotICAgICAgICAgICIwLjAwMjAwNiwgMC4wMDIwMDYsIDAuMDAyMDA3LCAwLjAwMjAwNSwgMC4wMDIwMDMsIDAuMDAxOTkxLCAwLjAwMTkxMSIsIFwKLSAgICAgICAgICAiMC4wMDIwMDUsIDAuMDAyMDA1LCAwLjAwMjAwNiwgMC4wMDIwMDUsIDAuMDAyMDAyLCAwLjAwMTk5MiwgMC4wMDE5MSIsIFwKLSAgICAgICAgICAiMC4wMDIwMDIsIDAuMDAyMDA0LCAwLjAwMjAwNiwgMC4wMDIwMDUsIDAuMDAyMDAyLCAwLjAwMTk5MiwgMC4wMDE5MDgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDAyMDUsIDAuMDAwMjA1LCAwLjAwMDIwNiwgMC4wMDAyMDYsIDAuMDAwMjA2LCAwLjAwMDIwNiwgMC4wMDAyMDYiLCBcCi0gICAgICAgICAgIjAuMDAwMjEyLCAwLjAwMDIxMywgMC4wMDAyMTQsIDAuMDAwMjE1LCAwLjAwMDIxNSwgMC4wMDAyMTUsIDAuMDAwMjE1IiwgXAotICAgICAgICAgICIwLjAwMDIxNCwgMC4wMDAyMTUsIDAuMDAwMjE3LCAwLjAwMDIxOSwgMC4wMDAyMTksIDAuMDAwMjE5LCAwLjAwMDIxOSIsIFwKLSAgICAgICAgICAiMC4wMDAyMTMsIDAuMDAwMjE0LCAwLjAwMDIxOCwgMC4wMDAyMiwgMC4wMDAyMjEsIDAuMDAwMjIxLCAwLjAwMDIyMSIsIFwKLSAgICAgICAgICAiMC4wMDAyMTIsIDAuMDAwMjEzLCAwLjAwMDIxOSwgMC4wMDAyMjEsIDAuMDAwMjIxLCAwLjAwMDIyMiwgMC4wMDAyMjIiLCBcCi0gICAgICAgICAgIjAuMDAwMjA5LCAwLjAwMDIxMSwgMC4wMDAyMTgsIDAuMDAwMjIxLCAwLjAwMDIyMiwgMC4wMDAyMjMsIDAuMDAwMjIzIiwgXAotICAgICAgICAgICIwLjAwMDIwNiwgMC4wMDAyMDksIDAuMDAwMjE3LCAwLjAwMDIyMSwgMC4wMDAyMjIsIDAuMDAwMjIzLCAwLjAwMDIyMyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMxIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDE4MDgsIDAuMDAxODA3LCAwLjAwMTgwNywgMC4wMDE4MDUsIDAuMDAxODAzLCAwLjAwMTc5NCwgMC4wMDE3MDYiLCBcCi0gICAgICAgICAgIjAuMDAxODA5LCAwLjAwMTgwOSwgMC4wMDE4MDksIDAuMDAxODA5LCAwLjAwMTgwNiwgMC4wMDE3OTcsIDAuMDAxNzEzIiwgXAotICAgICAgICAgICIwLjAwMTgwNywgMC4wMDE4MDgsIDAuMDAxODA5LCAwLjAwMTgwOSwgMC4wMDE4MDYsIDAuMDAxNzk4LCAwLjAwMTcxMyIsIFwKLSAgICAgICAgICAiMC4wMDE4MDUsIDAuMDAxODA2LCAwLjAwMTgwOCwgMC4wMDE4MDcsIDAuMDAxODA2LCAwLjAwMTc5NiwgMC4wMDE3MTMiLCBcCi0gICAgICAgICAgIjAuMDAxODAzLCAwLjAwMTgwNCwgMC4wMDE4MDYsIDAuMDAxODA2LCAwLjAwMTgwNSwgMC4wMDE3OTcsIDAuMDAxNzEyIiwgXAotICAgICAgICAgICIwLjAwMTgwMSwgMC4wMDE4MDIsIDAuMDAxODA2LCAwLjAwMTgwNiwgMC4wMDE4MDQsIDAuMDAxNzk2LCAwLjAwMTcxMSIsIFwKLSAgICAgICAgICAiMC4wMDE3OTcsIDAuMDAxOCwgMC4wMDE4MDUsIDAuMDAxODA2LCAwLjAwMTgwNCwgMC4wMDE3OTYsIDAuMDAxNzExIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwMjA1LCAwLjAwMDIwNSwgMC4wMDAyMDcsIDAuMDAwMjA3LCAwLjAwMDIwNywgMC4wMDAyMDcsIDAuMDAwMjA2IiwgXAotICAgICAgICAgICIwLjAwMDIxMiwgMC4wMDAyMTIsIDAuMDAwMjE0LCAwLjAwMDIxNSwgMC4wMDAyMTUsIDAuMDAwMjE1LCAwLjAwMDIxNSIsIFwKLSAgICAgICAgICAiMC4wMDAyMTMsIDAuMDAwMjE0LCAwLjAwMDIxNywgMC4wMDAyMTksIDAuMDAwMjE5LCAwLjAwMDIxOSwgMC4wMDAyMiIsIFwKLSAgICAgICAgICAiMC4wMDAyMTIsIDAuMDAwMjE0LCAwLjAwMDIxOCwgMC4wMDAyMiwgMC4wMDAyMjEsIDAuMDAwMjIxLCAwLjAwMDIyMiIsIFwKLSAgICAgICAgICAiMC4wMDAyMTEsIDAuMDAwMjEzLCAwLjAwMDIxOCwgMC4wMDAyMjEsIDAuMDAwMjIyLCAwLjAwMDIyMiwgMC4wMDAyMjIiLCBcCi0gICAgICAgICAgIjAuMDAwMjA4LCAwLjAwMDIxLCAwLjAwMDIxOCwgMC4wMDAyMjEsIDAuMDAwMjIyLCAwLjAwMDIyMywgMC4wMDAyMjMiLCBcCi0gICAgICAgICAgIjAuMDAwMjA2LCAwLjAwMDIwOCwgMC4wMDAyMTcsIDAuMDAwMjIxLCAwLjAwMDIyMiwgMC4wMDAyMjMsIDAuMDAwMjI0Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogQU9JMjJYMiAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChBT0kyMlgyKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMTkyOTk1OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNjMzMjQ7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNjI1NDg7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNjMzMjQ7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNjEyLCAwLjAwMDYxMiwgMC4wMDA2MTIsIDAuMDAwNjEyLCAwLjAwMDYxMSwgMC4wMDA2MTEsIDAuMDAwNjExIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNjMzLCAwLjAwMDYxOCwgMC4wMDA2MTcsIDAuMDAwNjE2LCAwLjAwMDYxNiwgMC4wMDA2MTUsIDAuMDAwNjE1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihBMSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNTE3MzY7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNTAzODM7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNTE3MzY7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzA3LCAwLjAwMDMwNywgMC4wMDAzMDYsIDAuMDAwMzA2LCAwLjAwMDMwNiwgMC4wMDAzMDYsIDAuMDAwMzA3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNjk1LCAwLjAwMDY5NSwgMC4wMDA2OTcsIDAuMDAwNjk2LCAwLjAwMDY5NiwgMC4wMDA2OTYsIDAuMDAwNjk2Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNjA3ODg7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNjA3ODg7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNjAyOTE7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNjEyLCAwLjAwMDYxMiwgMC4wMDA2MTIsIDAuMDAwNjExLCAwLjAwMDYxMiwgMC4wMDA2MTIsIDAuMDAwNjEyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNjMxLCAwLjAwMDYxOCwgMC4wMDA2MTYsIDAuMDAwNjE1LCAwLjAwMDYxNSwgMC4wMDA2MTUsIDAuMDAwNjE1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCMSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNDcyOTY7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNDcxODM7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNDcyOTY7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjc4LCAwLjAwMDI3OCwgMC4wMDAyNzcsIDAuMDAwMjc4LCAwLjAwMDI3NywgMC4wMDAyNzgsIDAuMDAwMjc3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNjk1LCAwLjAwMDY5NSwgMC4wMDA2OTUsIDAuMDAwNjk1LCAwLjAwMDY5NSwgMC4wMDA2OTYsIDAuMDAwNjk2Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMTIyNTY3OwotICAgIGZ1bmN0aW9uIDogIighKChCMCBCMSkrKEEwIEExKSkpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTI2MTI2LCAwLjQ5ODM3MywgMC43OTc4NzYsIDEuMTczMDgsIDEuNTQ5MjQsIDEuOTI0MjMsIDIuMjk5OTYiLCBcCi0gICAgICAgICAgIjAuMTM3OTMyLCAwLjUxMDE1OCwgMC44MDk3MjUsIDEuMTg0OTUsIDEuNTYwMzMsIDEuOTM1NzQsIDIuMzEyMSIsIFwKLSAgICAgICAgICAiMC4xNTIzOTksIDAuNTI0NzgxLCAwLjgyNDIxLCAxLjE5OTQyLCAxLjU3NTc5LCAxLjk1MDY3LCAyLjMyNTcxIiwgXAotICAgICAgICAgICIwLjE2NjAyLCAwLjUzODI1NywgMC44Mzc4NDEsIDEuMjEzMDksIDEuNTg5MjYsIDEuOTY0MjgsIDIuMzM5ODEiLCBcCi0gICAgICAgICAgIjAuMTc5MDczLCAwLjU1MTM0OSwgMC44NTA3MDMsIDEuMjI2NDUsIDEuNjAxOTMsIDEuOTc3NiwgMi4zNTM0NSIsIFwKLSAgICAgICAgICAiMC4xOTk0MTQsIDAuNTcxODk3LCAwLjg3MTIzLCAxLjI0NjUzLCAxLjYyMjcxLCAxLjk5NzUxLCAyLjM3MzU3IiwgXAotICAgICAgICAgICIwLjIxNjkxNywgMC41ODkzNjQsIDAuODg4NTQzLCAxLjI2NDE3LCAxLjY0MDEzLCAyLjAxNDkxLCAyLjM5MTU2Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE5ODUxMiwgMC45MjkzNiwgMS41MTcyNCwgMi4yNTE2MiwgMi45ODYzLCAzLjcyMDk0LCA0LjQ1NTM2IiwgXAotICAgICAgICAgICIwLjE5ODUxNiwgMC45Mjk4ODQsIDEuNTE3NTMsIDIuMjUyNzQsIDIuOTg2MDQsIDMuNzIyNDgsIDQuNDU2NjciLCBcCi0gICAgICAgICAgIjAuMTk4NTE4LCAwLjkyOTM4NCwgMS41MTc1MSwgMi4yNTE2MSwgMi45ODY1LCAzLjcyMDk0LCA0LjQ1NzkyIiwgXAotICAgICAgICAgICIwLjE5ODUwMSwgMC45Mjk0NzgsIDEuNTE3NzgsIDIuMjUxNjIsIDIuOTg2MjYsIDMuNzIwOTUsIDQuNDU1NDYiLCBcCi0gICAgICAgICAgIjAuMTk4OTMyLCAwLjkyOTQ2MywgMS41MTY3OSwgMi4yNTIwOSwgMi45ODYyOSwgMy43MjIsIDQuNDU1NTYiLCBcCi0gICAgICAgICAgIjAuMjAxNDI0LCAwLjkzMDE2NSwgMS41MTcxMSwgMi4yNTE2MiwgMi45ODYyOCwgMy43MjEwMiwgNC40NTc0NyIsIFwKLSAgICAgICAgICAiMC4yMDQ3NywgMC45MjkzOTgsIDEuNTE3NzgsIDIuMjUxNzQsIDIuOTg2MDksIDMuNzIxMTUsIDQuNDU3MDYiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTQxMTg0LCAwLjU1MTQ1LCAwLjg3Nzk5NiwgMS4yODU5MSwgMS42OTQ2NSwgMi4xMDE4LCAyLjUwODkyIiwgXAotICAgICAgICAgICIwLjE1MjU3OCwgMC41NjI5NTcsIDAuODg5NzQ3LCAxLjI5Nzc5LCAxLjcwNTc3LCAyLjExMzYsIDIuNTIxMDQiLCBcCi0gICAgICAgICAgIjAuMTY2MDc1LCAwLjU3Njc5NCwgMC45MDM1MDYsIDEuMzExNDcsIDEuNzE5NzUsIDIuMTI3MTEsIDIuNTM0MjciLCBcCi0gICAgICAgICAgIjAuMTc5NDg1LCAwLjU5MDE0NSwgMC45MTY3NDIsIDEuMzI1MjQsIDEuNzMzMDQsIDIuMTQwNTYsIDIuNTQ4NzIiLCBcCi0gICAgICAgICAgIjAuMTkyODI3LCAwLjYwMzc3NSwgMC45MzAyMTIsIDEuMzM4NTgsIDEuNzQ2ODcsIDIuMTU0MzMsIDIuNTYxMSIsIFwKLSAgICAgICAgICAiMC4yMTQ1MjgsIDAuNjI1NDE3LCAwLjk1MjExOSwgMS4zNjAzOSwgMS43Njc4LCAyLjE3NjUsIDIuNTgzMDIiLCBcCi0gICAgICAgICAgIjAuMjMyOTE2LCAwLjY0NDMyNSwgMC45NzA4MzcsIDEuMzc4OTgsIDEuNzg2OTcsIDIuMTk0MzQsIDIuNjAyODciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjMyNDcsIDEuMDEyNDYsIDEuNjM1NjIsIDIuNDE1ODksIDMuMTk0OTYsIDMuOTcyNjUsIDQuNzUxNjciLCBcCi0gICAgICAgICAgIjAuMjMyNDYzLCAxLjAxMjU2LCAxLjYzNjAyLCAyLjQxNTYxLCAzLjE5NDA3LCAzLjk3MzQzLCA0Ljc1MTMzIiwgXAotICAgICAgICAgICIwLjIzMjQzNSwgMS4wMTI0MywgMS42MzU3MywgMi40MTU4NSwgMy4xOTQzLCAzLjk3MzQ0LCA0Ljc1MTM2IiwgXAotICAgICAgICAgICIwLjIzMjQxLCAxLjAxMjYxLCAxLjYzNTk3LCAyLjQxNTUxLCAzLjE5NDc2LCAzLjk3MjY0LCA0Ljc1MTkxIiwgXAotICAgICAgICAgICIwLjIzMzI5OCwgMS4wMTIzOCwgMS42MzYwOSwgMi40MTU1MiwgMy4xOTM1NCwgMy45NzM3NywgNC43NTE2NyIsIFwKLSAgICAgICAgICAiMC4yMzY1MzcsIDEuMDEyNTMsIDEuNjM1NzYsIDIuNDE0NjUsIDMuMTk0NDQsIDMuOTcyNzUsIDQuNzUxOTIiLCBcCi0gICAgICAgICAgIjAuMjQxMTQ4LCAxLjAxMjQxLCAxLjYzNTczLCAyLjQxNTY1LCAzLjE5NDczLCAzLjk3Mjk5LCA0Ljc1MTg0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkExIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMjE1MzcsIDAuNDk1NTA0LCAwLjc5NDgyNCwgMS4xNzE2MiwgMS41NDgxMiwgMS45MjUxMSwgMi4zMDIzNyIsIFwKLSAgICAgICAgICAiMC4xMzM0MzUsIDAuNTA3NjgyLCAwLjgwNjk2MSwgMS4xODMxNywgMS41NjAzNCwgMS45MzY0NywgMi4zMTQxMSIsIFwKLSAgICAgICAgICAiMC4xNDc4ODUsIDAuNTIyMTk0LCAwLjgyMTI0NiwgMS4xOTc3NywgMS41NzU1MSwgMS45NTE1MiwgMi4zMjc2MiIsIFwKLSAgICAgICAgICAiMC4xNjE0MywgMC41MzU3ODUsIDAuODM0NzkyLCAxLjIxMTYxLCAxLjU4OTE4LCAxLjk2NTE1LCAyLjM0MjY5IiwgXAotICAgICAgICAgICIwLjE3NDM3NSwgMC41NDg4MTYsIDAuODQ4MDg5LCAxLjIyNDY1LCAxLjYwMTQ5LCAxLjk3ODI3LCAyLjM1NTc2IiwgXAotICAgICAgICAgICIwLjE5NDU5NSwgMC41NjkyODYsIDAuODY4MjA4LCAxLjI0NDc0LCAxLjYyMjMzLCAxLjk5ODIsIDIuMzc1NTQiLCBcCi0gICAgICAgICAgIjAuMjEyMDE0LCAwLjU4NjY3NywgMC44ODU3NTgsIDEuMjYyOSwgMS42MzkxMywgMi4wMTYxMSwgMi4zOTMwNSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xOTQwMzEsIDAuOTMwMzU4LCAxLjUxNzQxLCAyLjI1NjAzLCAzLjAwMjI0LCAzLjc0MzU2LCA0LjQ2ODU0IiwgXAotICAgICAgICAgICIwLjE5NDAzNiwgMC45Mjc5ODIsIDEuNTE3NDIsIDIuMjU5NzgsIDIuOTkxMDgsIDMuNzM3NzYsIDQuNDY3OTYiLCBcCi0gICAgICAgICAgIjAuMTkzODYzLCAwLjkyOTQyNCwgMS41MTg3OSwgMi4yNTY0MSwgMi45OTI0MywgMy43NDMwMywgNC40Nzg3NCIsIFwKLSAgICAgICAgICAiMC4xOTQxLCAwLjkyOTkzOSwgMS41MjA2MywgMi4yNTQ5MiwgMi45OTIzNywgMy43NDI3OCwgNC40Njc5IiwgXAotICAgICAgICAgICIwLjE5NDQ4LCAwLjkyOTk2NiwgMS41MTc2MywgMi4yNTY4NCwgMy4wMDIxLCAzLjczMzk5LCA0LjQ2ODIiLCBcCi0gICAgICAgICAgIjAuMTk3MTEsIDAuOTMwMjg1LCAxLjUyMTg4LCAyLjI2MTc1LCAyLjk5MjgzLCAzLjc0MTk2LCA0LjQ2Nzk4IiwgXAotICAgICAgICAgICIwLjIwMDYzNiwgMC45Mjk5NCwgMS41MjA3NCwgMi4yNTUxOCwgMi45OTkzMywgMy43NDI5OSwgNC40ODI1NCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMzY1OCwgMC41NDY4NjcsIDAuODczNDIyLCAxLjI4MTU4LCAxLjY5MDA5LCAyLjA5NzIsIDIuNTAzNjkiLCBcCi0gICAgICAgICAgIjAuMTQ2NzQ2LCAwLjU1NzIwOCwgMC44ODM3ODUsIDEuMjkxNywgMS42OTk3NywgMi4xMDY5NCwgMi41MTQ1MiIsIFwKLSAgICAgICAgICAiMC4xNTk3MjEsIDAuNTcwNDQzLCAwLjg5NzE2MiwgMS4zMDUxNywgMS43MTM1MiwgMi4xMjA3NiwgMi41Mjc4OCIsIFwKLSAgICAgICAgICAiMC4xNzI5MzksIDAuNTgzNjA5LCAwLjkxMDU5OCwgMS4zMTgwOCwgMS43MjY4LCAyLjEzMzk2LCAyLjU0MTg2IiwgXAotICAgICAgICAgICIwLjE4NjAyOSwgMC41OTY5MzUsIDAuOTIzNDI3LCAxLjMzMTI0LCAxLjczOTY5LCAyLjE0ODAyLCAyLjU1NTI0IiwgXAotICAgICAgICAgICIwLjIwNzI1MSwgMC42MTc5MjIsIDAuOTQ0NTYxLCAxLjM1MzA4LCAxLjc2MDkyLCAyLjE2ODYxLCAyLjU3NjI2IiwgXAotICAgICAgICAgICIwLjIyNzEyNSwgMC42MzY2ODIsIDAuOTYzNDQ0LCAxLjM3MTIxLCAxLjc3ODk2LCAyLjE4NzE2LCAyLjU5NTE5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIzMjUxOCwgMS4wMTIzNSwgMS42MzU2MSwgMi40MTU0MywgMy4xOTQ4NywgMy45NzMxNSwgNC43NTMzNyIsIFwKLSAgICAgICAgICAiMC4yMzI0NjUsIDEuMDEyMzUsIDEuNjM1NjksIDIuNDE0ODksIDMuMTk0MzgsIDMuOTcyMzMsIDQuNzUyNDkiLCBcCi0gICAgICAgICAgIjAuMjMyNDE3LCAxLjAxMjQxLCAxLjYzNTcsIDIuNDE1NTcsIDMuMTk0MTQsIDMuOTczNDcsIDQuNzUxNTEiLCBcCi0gICAgICAgICAgIjAuMjMyNjY4LCAxLjAxMjQyLCAxLjYzNTU4LCAyLjQxNTAxLCAzLjE5NDUzLCAzLjk3MzY5LCA0Ljc1MjUzIiwgXAotICAgICAgICAgICIwLjIzNDc0OCwgMS4wMTIzOCwgMS42MzYxMywgMi40MTU0OSwgMy4xOTQ4NCwgMy45NzM3NywgNC43NTI5OSIsIFwKLSAgICAgICAgICAiMC4yNDA4MzIsIDEuMDEyNTIsIDEuNjM1NzIsIDIuNDE1NzEsIDMuMTk0NDgsIDMuOTcyOTksIDQuNzUyNzQiLCBcCi0gICAgICAgICAgIjAuMjQ3MjI3LCAxLjAxMjM5LCAxLjYzNjA0LCAyLjQxNTA2LCAzLjE5Mzc4LCAzLjk3MjM1LCA0Ljc1Mjk4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDY0NjIsIDAuNDc4NTE4LCAwLjc3NTUzNSwgMS4xNDgwMSwgMS41MjA1NSwgMS44OTU0NSwgMi4yNjg0IiwgXAotICAgICAgICAgICIwLjExNjcyOCwgMC40ODg5MzksIDAuNzg2MjMyLCAxLjE1ODA4LCAxLjUzMTU5LCAxLjkwNTAxLCAyLjI3OTE1IiwgXAotICAgICAgICAgICIwLjEyOTcyMiwgMC41MDIwMjEsIDAuNzk5MTkxLCAxLjE3MTMxLCAxLjU0NDg5LCAxLjkxODI0LCAyLjI5MjYxIiwgXAotICAgICAgICAgICIwLjE0Mjc3MiwgMC41MTUxNjUsIDAuODEyMjg3LCAxLjE4NDM1LCAxLjU1NzkxLCAxLjkzMTgsIDIuMzA0NDQiLCBcCi0gICAgICAgICAgIjAuMTU1ODk5LCAwLjUyODIzNSwgMC44MjU0NzQsIDEuMTk3NjQsIDEuNTcxNDMsIDEuOTQ0NjMsIDIuMzE4NjYiLCBcCi0gICAgICAgICAgIjAuMTc3ODgsIDAuNTQ5MzM0LCAwLjg0NjI1MSwgMS4yMTgzNiwgMS41OTE4NiwgMS45NjYzNSwgMi4zMzkxOSIsIFwKLSAgICAgICAgICAiMC4xOTY3MDMsIDAuNTY3NTgsIDAuODY0OTYyLCAxLjIzNzMxLCAxLjYxMDYyLCAxLjk4NDc3LCAyLjM1ODAxIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE5ODQxMiwgMC45MjUyOTcsIDEuNTA5MzIsIDIuMjM5MzcsIDIuOTcwNzIsIDMuNzAwNzIsIDQuNDMxMyIsIFwKLSAgICAgICAgICAiMC4xOTgyODQsIDAuOTI0NjYxLCAxLjUwOTUsIDIuMjQwNzIsIDIuOTcwMTYsIDMuNzAyMjEsIDQuNDMwODYiLCBcCi0gICAgICAgICAgIjAuMTk3NjI2LCAwLjkyNTMwNiwgMS41MDk4NiwgMi4yNDA2NiwgMi45NzAxMiwgMy43MDA2NywgNC40MzIzMyIsIFwKLSAgICAgICAgICAiMC4xOTkwNTgsIDAuOTI0ODIxLCAxLjUwOTk1LCAyLjI0MDgyLCAyLjk3MTYyLCAzLjcwMDM3LCA0LjQzMTU5IiwgXAotICAgICAgICAgICIwLjIwMjY0LCAwLjkyNTMwNSwgMS41MDkwNSwgMi4yNDAxNywgMi45Njk5MiwgMy43MDE1OSwgNC40MzI2OSIsIFwKLSAgICAgICAgICAiMC4yMTAyMDEsIDAuOTI0ODcyLCAxLjUwOTc5LCAyLjIzOTUzLCAyLjk3MTQ2LCAzLjcwMTYsIDQuNDMxMTkiLCBcCi0gICAgICAgICAgIjAuMjE4Nzg2LCAwLjkyNTM5OCwgMS41MDkxOCwgMi4yNDAxLCAyLjk3MDYyLCAzLjcwMDkzLCA0LjQzMDk1Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExNDAxNiwgMC41MjE3NDcsIDAuODQ4MjMyLCAxLjI1NTU0LCAxLjY2MzkyLCAyLjA3MDU2LCAyLjQ3Nzg3IiwgXAotICAgICAgICAgICIwLjEyNTgzMiwgMC41MzM4MTUsIDAuODU5ODc0LCAxLjI2Nzc4LCAxLjY3NTM3LCAyLjA4MzI1LCAyLjQ5MDQzIiwgXAotICAgICAgICAgICIwLjEzOTM5MSwgMC41NDc5NTIsIDAuODczNzIyLCAxLjI4MTMsIDEuNjg5NzgsIDIuMDk2OTQsIDIuNTA0NDYiLCBcCi0gICAgICAgICAgIjAuMTUyNzExLCAwLjU2MTE5MiwgMC44ODczNSwgMS4yOTUxNiwgMS43MDI5MSwgMi4xMTA0NiwgMi41MTc5NyIsIFwKLSAgICAgICAgICAiMC4xNjU5MDMsIDAuNTc0NzM1LCAwLjkwMDk5NCwgMS4zMDg2OSwgMS43MTY0MSwgMi4xMjQwNCwgMi41MzEzNCIsIFwKLSAgICAgICAgICAiMC4xODczMTgsIDAuNTk2NjIxLCAwLjkyMjc2MywgMS4zMzAyNiwgMS43MzgwNCwgMi4xNDY0NCwgMi41NTMxMyIsIFwKLSAgICAgICAgICAiMC4yMDU4NDgsIDAuNjE0OTYsIDAuOTQxMjI4LCAxLjM0ODk2LCAxLjc1NzM3LCAyLjE2NDMxLCAyLjU3MjQxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIwNjE5MywgMC45ODQxOTYsIDEuNjA3LCAyLjM5MzcxLCAzLjE2NTI4LCAzLjk1NTkyLCA0LjcyOTQ4IiwgXAotICAgICAgICAgICIwLjIwNjIwMiwgMC45ODQyMzEsIDEuNjA2NTYsIDIuMzkzNzksIDMuMTY1MzksIDMuOTU1MTgsIDQuNzI5ODUiLCBcCi0gICAgICAgICAgIjAuMjA2MjAxLCAwLjk4NDQwMSwgMS42MDY0NywgMi4zOTM1OCwgMy4xNzU5NCwgMy45NTU4NSwgNC43Mjk4MyIsIFwKLSAgICAgICAgICAiMC4yMDY1MzcsIDAuOTgzOTIyLCAxLjYwNzc0LCAyLjM5MzY3LCAzLjE2NzcsIDMuOTU1NzMsIDQuNzI5NjkiLCBcCi0gICAgICAgICAgIjAuMjA4MTM0LCAwLjk4NDE4MSwgMS42MDc0MywgMi4zOTM2MywgMy4xNjU3NSwgMy45NDI5LCA0LjcyOTc0IiwgXAotICAgICAgICAgICIwLjIxMjg2MiwgMC45ODQwNzIsIDEuNjA3LCAyLjM4ODY3LCAzLjE3MzAxLCAzLjk0NTUzLCA0LjcyOTA2IiwgXAotICAgICAgICAgICIwLjIxODI1NSwgMC45ODM5NTksIDEuNjA2ODIsIDIuMzkyMjgsIDMuMTY0MSwgMy45NTUyNiwgNC43MjM4NyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTAyMjE2LCAwLjQ3ODIxOSwgMC43Nzg3LCAxLjE1NDI0LCAxLjUzMDM4LCAxLjkwNTI1LCAyLjI4MTU0IiwgXAotICAgICAgICAgICIwLjExMjYxMywgMC40ODg3MzcsIDAuNzg5NTIyLCAxLjE2NTIxLCAxLjUzOTk0LCAxLjkxNTk2LCAyLjI5MjciLCBcCi0gICAgICAgICAgIjAuMTI1NjU3LCAwLjUwMjA4MiwgMC44MDI0NDMsIDEuMTc4NDYsIDEuNTUzNzMsIDEuOTI5OSwgMi4zMDY0MyIsIFwKLSAgICAgICAgICAiMC4xMzg1MjcsIDAuNTE0OTgsIDAuODE1NTUzLCAxLjE5MTA0LCAxLjU2NjYsIDEuOTQyMjYsIDIuMzE4MzgiLCBcCi0gICAgICAgICAgIjAuMTUxNjQzLCAwLjUyNzk2MiwgMC44Mjg1MTMsIDEuMjA0NDIsIDEuNTc5OTMsIDEuOTU1NDgsIDIuMzMyNTYiLCBcCi0gICAgICAgICAgIjAuMTczNTAyLCAwLjU0OTA3NiwgMC44NDk3NDUsIDEuMjI0OTksIDEuNjAwNjcsIDEuOTc3MTYsIDIuMzUyOTgiLCBcCi0gICAgICAgICAgIjAuMTkyMjksIDAuNTY3NDQsIDAuODY3NzU5LCAxLjI0MzY4LCAxLjYxOTI5LCAxLjk5NTM5LCAyLjM3MTEiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTk0NTkxLCAwLjkyOTkxNSwgMS41MjA2NSwgMi4yNjIwMywgMi45OTIzOCwgMy43NDI4OSwgNC40ODIyNSIsIFwKLSAgICAgICAgICAiMC4xOTQ0MDYsIDAuOTI5MjEzLCAxLjUxNzU0LCAyLjI1NDk1LCAzLjAwMTYxLCAzLjczMDE1LCA0LjQ4MjYzIiwgXAotICAgICAgICAgICIwLjE5Mzg1OCwgMC45MjkzNDEsIDEuNTIxOTIsIDIuMjU1MDgsIDMuMDAzMjcsIDMuNzMwMTMsIDQuNDY2ODciLCBcCi0gICAgICAgICAgIjAuMTk1Njk4LCAwLjkyOTk3LCAxLjUxODcxLCAyLjI1NjgyLCAyLjk5NTYyLCAzLjc0MzUxLCA0LjQ4MjA1IiwgXAotICAgICAgICAgICIwLjE5OTM0MywgMC45MjkxOTgsIDEuNTIxODMsIDIuMjU1MjEsIDMuMDAzMDUsIDMuNzQzMzcsIDQuNDY3NTUiLCBcCi0gICAgICAgICAgIjAuMjA3MjY3LCAwLjkyOTQ3OCwgMS41MTc0NCwgMi4yNjAwMSwgMi45OTU4MywgMy43Mjk5MywgNC40ODI1NSIsIFwKLSAgICAgICAgICAiMC4yMTYyNTIsIDAuOTI5MzU5LCAxLjUxNzUsIDIuMjYyMjksIDIuOTk0NjIsIDMuNzMwMTMsIDQuNDgyMTEiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTA5MTQsIDAuNTE2ODQzLCAwLjg0MzA4MSwgMS4yNTA2MiwgMS42NTg4NywgMi4wNjY1MSwgMi40NzM1MiIsIFwKLSAgICAgICAgICAiMC4xMTk3MjMsIDAuNTI3NzU3LCAwLjg1MzkxOCwgMS4yNjE4NSwgMS42Njg5OSwgMi4wNzY1NywgMi40ODQyMSIsIFwKLSAgICAgICAgICAiMC4xMzMyMTMsIDAuNTQxNTA3LCAwLjg2NzYyLCAxLjI3NTQ0LCAxLjY4MjcyLCAyLjA5MDkyLCAyLjQ5ODI0IiwgXAotICAgICAgICAgICIwLjE0NTY5MywgMC41NTQyNTIsIDAuODgwODI5LCAxLjI4Nzk2LCAxLjY5NjMzLCAyLjEwMzE4LCAyLjUxMTAyIiwgXAotICAgICAgICAgICIwLjE1ODgzMiwgMC41Njc0ODYsIDAuODkzOTY0LCAxLjMwMTMzLCAxLjcwODc0LCAyLjExNzY0LCAyLjUyNDUzIiwgXAotICAgICAgICAgICIwLjE4MTAxMSwgMC41ODg2NTMsIDAuOTE0ODU0LCAxLjMyMjc1LCAxLjczMDA4LCAyLjEzNzk2LCAyLjU0NTM5IiwgXAotICAgICAgICAgICIwLjE5OTk5NywgMC42MDcxNDcsIDAuOTMzNDQyLCAxLjM0MTE5LCAxLjc0ODg3LCAyLjE1NjI3LCAyLjU2NDU4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIwNjE4NywgMC45ODM4ODgsIDEuNjA3MTUsIDIuMzkyMDgsIDMuMTYzODksIDMuOTU1OTEsIDQuNzMwMDEiLCBcCi0gICAgICAgICAgIjAuMjA2MjA4LCAwLjk4NDE3OSwgMS42MDY5MSwgMi4zODgzNCwgMy4xNzIxMiwgMy45NTUyNywgNC43MjkwOSIsIFwKLSAgICAgICAgICAiMC4yMDYxODIsIDAuOTg0MTY5LCAxLjYwNjk2LCAyLjM4NTQ1LCAzLjE2ODQ5LCAzLjk0NDU4LCA0LjcyOTkiLCBcCi0gICAgICAgICAgIjAuMjA3NTE2LCAwLjk4NDE5MSwgMS42MDcwNiwgMi4zOTEyOSwgMy4xNjUyMiwgMy45NTU4MiwgNC43MjkwMSIsIFwKLSAgICAgICAgICAiMC4yMTA4NTcsIDAuOTg0MTg4LCAxLjYwNjg2LCAyLjM4NjI0LCAzLjE3MTgzLCAzLjk0ODk2LCA0LjcyNDA3IiwgXAotICAgICAgICAgICIwLjIxODMwMiwgMC45ODQxNjgsIDEuNjA3MiwgMi4zODU5MiwgMy4xNjk0OCwgMy45NTU5MSwgNC43Mjc0NSIsIFwKLSAgICAgICAgICAiMC4yMjY4NDksIDAuOTg0MTcyLCAxLjYwNjUzLCAyLjM5MDY1LCAzLjE3NTg5LCAzLjk1Mzc5LCA0LjcyMzUxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNTUxOSwgMC4wMDU1MTgsIDAuMDA1NTE4LCAwLjAwNTUxNSwgMC4wMDU1MTIsIDAuMDA1NTEzLCAwLjAwNTUxOCIsIFwKLSAgICAgICAgICAiMC4wMDU1MDQsIDAuMDA1NTA3LCAwLjAwNTUwNywgMC4wMDU1MSwgMC4wMDU1MDEsIDAuMDA1NTAzLCAwLjAwNTUxIiwgXAotICAgICAgICAgICIwLjAwNTQ5NiwgMC4wMDU1MDUsIDAuMDA1NTA1LCAwLjAwNTUwNCwgMC4wMDU1MDMsIDAuMDA1NTAyLCAwLjAwNTUwMiIsIFwKLSAgICAgICAgICAiMC4wMDU0OSwgMC4wMDU1MDEsIDAuMDA1NTAyLCAwLjAwNTUwMSwgMC4wMDU1MDEsIDAuMDA1NSwgMC4wMDU0OTgiLCBcCi0gICAgICAgICAgIjAuMDA1NDg1LCAwLjAwNTUsIDAuMDA1NSwgMC4wMDU1MDEsIDAuMDA1NDk5LCAwLjAwNTUsIDAuMDA1NDk5IiwgXAotICAgICAgICAgICIwLjAwNTQ3OCwgMC4wMDU0OTcsIDAuMDA1NDk5LCAwLjAwNTQ5OSwgMC4wMDU1LCAwLjAwNTQ5OCwgMC4wMDU0OTYiLCBcCi0gICAgICAgICAgIjAuMDA1NDc1LCAwLjAwNTQ5NSwgMC4wMDU0OTgsIDAuMDA1NDk5LCAwLjAwNTQ5OCwgMC4wMDU0OTcsIDAuMDA1NDk2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyMTUsIDAuMDAyMTQ5LCAwLjAwMjE0NywgMC4wMDIxNDcsIDAuMDAyMTQ1LCAwLjAwMjE0NCwgMC4wMDIxNDMiLCBcCi0gICAgICAgICAgIjAuMDAyMTIzLCAwLjAwMjEzLCAwLjAwMjEyOSwgMC4wMDIxMywgMC4wMDIxMjgsIDAuMDAyMTIzLCAwLjAwMjEyMSIsIFwKLSAgICAgICAgICAiMC4wMDIxMDQsIDAuMDAyMTIyLCAwLjAwMjEyMywgMC4wMDIxMjIsIDAuMDAyMTIyLCAwLjAwMjEyMywgMC4wMDIxMiIsIFwKLSAgICAgICAgICAiMC4wMDIwOTMsIDAuMDAyMTE2LCAwLjAwMjExOCwgMC4wMDIxMTksIDAuMDAyMTE5LCAwLjAwMjExNywgMC4wMDIxMTYiLCBcCi0gICAgICAgICAgIjAuMDAyMDgxLCAwLjAwMjExMiwgMC4wMDIxMTUsIDAuMDAyMTE3LCAwLjAwMjExNywgMC4wMDIxMTYsIDAuMDAyMTE1IiwgXAotICAgICAgICAgICIwLjAwMjA2NywgMC4wMDIxMDUsIDAuMDAyMTExLCAwLjAwMjExMywgMC4wMDIxMTQsIDAuMDAyMTE0LCAwLjAwMjExMyIsIFwKLSAgICAgICAgICAiMC4wMDIwNTcsIDAuMDAyMSwgMC4wMDIxMDcsIDAuMDAyMTEsIDAuMDAyMTEyLCAwLjAwMjExMiwgMC4wMDIxMTEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0ODgxLCAwLjAwNDg4NCwgMC4wMDQ4ODMsIDAuMDA0ODgyLCAwLjAwNDg4MSwgMC4wMDQ4ODEsIDAuMDA0ODgxIiwgXAotICAgICAgICAgICIwLjAwNDg3OSwgMC4wMDQ4OTIsIDAuMDA0ODkyLCAwLjAwNDg5MywgMC4wMDQ4ODksIDAuMDA0ODkyLCAwLjAwNDg5NyIsIFwKLSAgICAgICAgICAiMC4wMDQ4NjcsIDAuMDA0ODkxLCAwLjAwNDg5MywgMC4wMDQ4OTMsIDAuMDA0ODk0LCAwLjAwNDg5NSwgMC4wMDQ4OTIiLCBcCi0gICAgICAgICAgIjAuMDA0ODU2LCAwLjAwNDg4OCwgMC4wMDQ4OTEsIDAuMDA0ODkzLCAwLjAwNDg5MywgMC4wMDQ4OTQsIDAuMDA0ODk0IiwgXAotICAgICAgICAgICIwLjAwNDg0NiwgMC4wMDQ4ODQsIDAuMDA0ODg5LCAwLjAwNDg5MSwgMC4wMDQ4OTIsIDAuMDA0ODkyLCAwLjAwNDg5MiIsIFwKLSAgICAgICAgICAiMC4wMDQ4MzMsIDAuMDA0ODc5LCAwLjAwNDg4NSwgMC4wMDQ4ODksIDAuMDA0ODksIDAuMDA0ODkxLCAwLjAwNDg5IiwgXAotICAgICAgICAgICIwLjAwNDgyNSwgMC4wMDQ4NzQsIDAuMDA0ODgzLCAwLjAwNDg4NywgMC4wMDQ4ODgsIDAuMDA0ODksIDAuMDA0ODg5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyMTQ4LCAwLjAwMjE0OSwgMC4wMDIxNDYsIDAuMDAyMTQyLCAwLjAwMjE0NCwgMC4wMDIxMzcsIDAuMDAyMTQxIiwgXAotICAgICAgICAgICIwLjAwMjExOSwgMC4wMDIxMjcsIDAuMDAyMTI4LCAwLjAwMjEyNSwgMC4wMDIxMjYsIDAuMDAyMTI1LCAwLjAwMjEyMyIsIFwKLSAgICAgICAgICAiMC4wMDIwOTYsIDAuMDAyMTE4LCAwLjAwMjEyMSwgMC4wMDIxMTksIDAuMDAyMTE5LCAwLjAwMjEyMSwgMC4wMDIxMTYiLCBcCi0gICAgICAgICAgIjAuMDAyMDgxLCAwLjAwMjExMSwgMC4wMDIxMTYsIDAuMDAyMTE3LCAwLjAwMjExNywgMC4wMDIxMTUsIDAuMDAyMTE0IiwgXAotICAgICAgICAgICIwLjAwMjA2OSwgMC4wMDIxMDcsIDAuMDAyMTExLCAwLjAwMjExMywgMC4wMDIxMTMsIDAuMDAyMTEzLCAwLjAwMjExMyIsIFwKLSAgICAgICAgICAiMC4wMDIwNTQsIDAuMDAyMDk5LCAwLjAwMjEwNiwgMC4wMDIxMSwgMC4wMDIxMTEsIDAuMDAyMTEyLCAwLjAwMjExIiwgXAotICAgICAgICAgICIwLjAwMjA0OCwgMC4wMDIwOTQsIDAuMDAyMTAzLCAwLjAwMjEwNywgMC4wMDIxMDksIDAuMDAyMTA4LCAwLjAwMjEwOSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDM5NTcsIDAuMDAzOTU4LCAwLjAwMzk1NywgMC4wMDM5NTUsIDAuMDAzOTU0LCAwLjAwMzk1MywgMC4wMDM5NTIiLCBcCi0gICAgICAgICAgIjAuMDAzOTM2LCAwLjAwMzk0MywgMC4wMDM5NDUsIDAuMDAzOTQ0LCAwLjAwMzkzOSwgMC4wMDM5NDMsIDAuMDAzOTMzIiwgXAotICAgICAgICAgICIwLjAwMzkyMiwgMC4wMDM5MzksIDAuMDAzOTQsIDAuMDAzOTM5LCAwLjAwMzkzOCwgMC4wMDM5MzcsIDAuMDAzOTM2IiwgXAotICAgICAgICAgICIwLjAwMzkxMiwgMC4wMDM5MzUsIDAuMDAzOTM4LCAwLjAwMzkzOCwgMC4wMDM5MzgsIDAuMDAzOTM0LCAwLjAwMzkzNCIsIFwKLSAgICAgICAgICAiMC4wMDM5MDQsIDAuMDAzOTMyLCAwLjAwMzkzNSwgMC4wMDM5MzUsIDAuMDAzOTM4LCAwLjAwMzkzNSwgMC4wMDM5MzQiLCBcCi0gICAgICAgICAgIjAuMDAzODk2LCAwLjAwMzkyOCwgMC4wMDM5MzEsIDAuMDAzOTMzLCAwLjAwMzkzNCwgMC4wMDM5MzMsIDAuMDAzOTMzIiwgXAotICAgICAgICAgICIwLjAwMzg5MiwgMC4wMDM5MjUsIDAuMDAzOTMsIDAuMDAzOTMzLCAwLjAwMzkzMywgMC4wMDM5MzMsIDAuMDAzOTMyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwNjM5LCAwLjAwMDY0NSwgMC4wMDA2NDYsIDAuMDAwNjQ2LCAwLjAwMDY0NiwgMC4wMDA2NDYsIDAuMDAwNjQ2IiwgXAotICAgICAgICAgICIwLjAwMDY0LCAwLjAwMDY2NywgMC4wMDA2NywgMC4wMDA2NzEsIDAuMDAwNjcyLCAwLjAwMDY3MiwgMC4wMDA2NzMiLCBcCi0gICAgICAgICAgIjAuMDAwNjIyLCAwLjAwMDY2OCwgMC4wMDA2NzQsIDAuMDAwNjc3LCAwLjAwMDY3OCwgMC4wMDA2NzksIDAuMDAwNjgiLCBcCi0gICAgICAgICAgIjAuMDAwNjAyLCAwLjAwMDY2NCwgMC4wMDA2NzMsIDAuMDAwNjc3LCAwLjAwMDY3OSwgMC4wMDA2ODEsIDAuMDAwNjgyIiwgXAotICAgICAgICAgICIwLjAwMDU4NCwgMC4wMDA2NTksIDAuMDAwNjcsIDAuMDAwNjc2LCAwLjAwMDY3OSwgMC4wMDA2OCwgMC4wMDA2ODIiLCBcCi0gICAgICAgICAgIjAuMDAwNTYzLCAwLjAwMDY1MSwgMC4wMDA2NjUsIDAuMDAwNjcyLCAwLjAwMDY3NiwgMC4wMDA2NzksIDAuMDAwNjgxIiwgXAotICAgICAgICAgICIwLjAwMDU0NywgMC4wMDA2NDMsIDAuMDAwNjYsIDAuMDAwNjY5LCAwLjAwMDY3NCwgMC4wMDA2NzcsIDAuMDAwNjc5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzI4NywgMC4wMDMyOTEsIDAuMDAzMjksIDAuMDAzMjksIDAuMDAzMjg5LCAwLjAwMzI4OCwgMC4wMDMyODkiLCBcCi0gICAgICAgICAgIjAuMDAzMjc4LCAwLjAwMzI5NiwgMC4wMDMyOTksIDAuMDAzMjk5LCAwLjAwMzI5NywgMC4wMDMyOTksIDAuMDAzMjk0IiwgXAotICAgICAgICAgICIwLjAwMzI1OSwgMC4wMDMyOTMsIDAuMDAzMjk3LCAwLjAwMzI5OCwgMC4wMDMyOTgsIDAuMDAzMjk5LCAwLjAwMzI5OSIsIFwKLSAgICAgICAgICAiMC4wMDMyNDUsIDAuMDAzMjg5LCAwLjAwMzI5NCwgMC4wMDMyOTcsIDAuMDAzMjk5LCAwLjAwMzI5NiwgMC4wMDMzIiwgXAotICAgICAgICAgICIwLjAwMzIzMiwgMC4wMDMyODQsIDAuMDAzMjkxLCAwLjAwMzI5NSwgMC4wMDMyOTgsIDAuMDAzMjk5LCAwLjAwMzI5NyIsIFwKLSAgICAgICAgICAiMC4wMDMyMTcsIDAuMDAzMjc3LCAwLjAwMzI4NywgMC4wMDMyOTIsIDAuMDAzMjkzLCAwLjAwMzI5NCwgMC4wMDMyOTUiLCBcCi0gICAgICAgICAgIjAuMDAzMjA4LCAwLjAwMzI3MiwgMC4wMDMyODMsIDAuMDAzMjg5LCAwLjAwMzI5MSwgMC4wMDMyOTMsIDAuMDAzMjk0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwNjM5LCAwLjAwMDY0NiwgMC4wMDA2NDcsIDAuMDAwNjQ3LCAwLjAwMDY0OCwgMC4wMDA2NDgsIDAuMDAwNjQ3IiwgXAotICAgICAgICAgICIwLjAwMDYzNiwgMC4wMDA2NjcsIDAuMDAwNjcxLCAwLjAwMDY3MywgMC4wMDA2NzQsIDAuMDAwNjc0LCAwLjAwMDY3NSIsIFwKLSAgICAgICAgICAiMC4wMDA2MTYsIDAuMDAwNjY4LCAwLjAwMDY3NCwgMC4wMDA2NzgsIDAuMDAwNjc5LCAwLjAwMDY4LCAwLjAwMDY4MSIsIFwKLSAgICAgICAgICAiMC4wMDA1OTQsIDAuMDAwNjY0LCAwLjAwMDY3MywgMC4wMDA2NzgsIDAuMDAwNjgxLCAwLjAwMDY4MiwgMC4wMDA2ODMiLCBcCi0gICAgICAgICAgIjAuMDAwNTc1LCAwLjAwMDY1OSwgMC4wMDA2NywgMC4wMDA2NzcsIDAuMDAwNjgsIDAuMDAwNjgyLCAwLjAwMDY4MyIsIFwKLSAgICAgICAgICAiMC4wMDA1NTYsIDAuMDAwNjQ5LCAwLjAwMDY2NSwgMC4wMDA2NzMsIDAuMDAwNjc4LCAwLjAwMDY4LCAwLjAwMDY4MiIsIFwKLSAgICAgICAgICAiMC4wMDA1NDMsIDAuMDAwNjQyLCAwLjAwMDY2LCAwLjAwMDY3LCAwLjAwMDY3NSwgMC4wMDA2NzgsIDAuMDAwNjgxIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogQU9JMjJYNCAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChBT0kyMlg0KSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMzg1ODE0OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAzMTkyNTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDMxNzU0MzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDMxOTI1OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTIyNSwgMC4wMDEyMjQsIDAuMDAxMjIzLCAwLjAwMTIyMywgMC4wMDEyMjMsIDAuMDAxMjIyLCAwLjAwMTIyMiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTI2OSwgMC4wMDEyMzcsIDAuMDAxMjMzLCAwLjAwMTIzMiwgMC4wMDEyMzEsIDAuMDAxMjMxLCAwLjAwMTIzIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihBMSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAzMDQzODM7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAzMDE1MjE7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAzMDQzODM7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNjM3LCAwLjAwMDYzNiwgMC4wMDA2MzUsIDAuMDAwNjM2LCAwLjAwMDYzNiwgMC4wMDA2MzUsIDAuMDAwNjM2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxMzksIDAuMDAxMzkxLCAwLjAwMTM5MSwgMC4wMDEzOTMsIDAuMDAxMzkyLCAwLjAwMTM5MiwgMC4wMDEzOTIiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDMxOTE5MTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDMxOTE5MTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDMxODMzMTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDEyMjUsIDAuMDAxMjI1LCAwLjAwMTIyNCwgMC4wMDEyMjQsIDAuMDAxMjI0LCAwLjAwMTIyNCwgMC4wMDEyMjQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDEyNjgsIDAuMDAxMjM3LCAwLjAwMTIzMywgMC4wMDEyMzEsIDAuMDAxMjMxLCAwLjAwMTIzLCAwLjAwMTIzIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCMSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAzMDQyMTE7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAzMDQwMDU7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAzMDQyMTE7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNjM4LCAwLjAwMDYzNywgMC4wMDA2MzYsIDAuMDAwNjM3LCAwLjAwMDYzNywgMC4wMDA2MzcsIDAuMDAwNjM3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxMzksIDAuMDAxMzksIDAuMDAxMzksIDAuMDAxMzksIDAuMDAxMzksIDAuMDAxMzkxLCAwLjAwMTM5MiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjI2MTgxMzsKLSAgICBmdW5jdGlvbiA6ICIoISgoQjAgQjEpKyhBMCBBMSkpKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTAiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg2MjMxLCAwLjM0OTI1MSwgMC42MTEwMzMsIDAuNzk4NDQ5LCAxLjA5ODI5LCAxLjM2MTQ0LCAxLjczODUyIiwgXAotICAgICAgICAgICIwLjA5Nzk3NywgMC4zNjEwODIsIDAuNjIzMTczLCAwLjgxMDM2NSwgMS4xMTAxNSwgMS4zNzMzMSwgMS43NDk3MSIsIFwKLSAgICAgICAgICAiMC4xMTIzNDUsIDAuMzc1NDk1LCAwLjYzNzY4OCwgMC44MjQ1OCwgMS4xMjQxNywgMS4zODgzNCwgMS43NjQxMSIsIFwKLSAgICAgICAgICAiMC4xMjU3MDYsIDAuMzg4OTk4LCAwLjY1MDk5OCwgMC44MzgzNDgsIDEuMTM3ODQsIDEuNDAxMzgsIDEuNzc3MTIiLCBcCi0gICAgICAgICAgIjAuMTM4NjMyLCAwLjQwMTg2NCwgMC42NjQxMjEsIDAuODUxMDgxLCAxLjE1MDc5LCAxLjQxNDE3LCAxLjc5MDciLCBcCi0gICAgICAgICAgIjAuMTU4NzU2LCAwLjQyMjM1NywgMC42ODQ0MTYsIDAuODcxNTI3LCAxLjE3MTAzLCAxLjQzNDksIDEuODEwODciLCBcCi0gICAgICAgICAgIjAuMTc2MzIyLCAwLjQzOTY5MSwgMC43MDE5OSwgMC44ODkzMDgsIDEuMTg4NTQsIDEuNDUyNjksIDEuODI4NjEiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMjM2NzgsIDAuNjM2NTEzLCAxLjE1MDQxLCAxLjUxOCwgMi4xMDcwMywgMi42MjI1NiwgMy4zNTkyMSIsIFwKLSAgICAgICAgICAiMC4xMjM1NzUsIDAuNjM2NTI0LCAxLjE1MDU5LCAxLjUxNzk1LCAyLjEwNzE1LCAyLjYyMjU0LCAzLjM1OTY5IiwgXAotICAgICAgICAgICIwLjEyMzY1NywgMC42MzYzNTcsIDEuMTUwMTcsIDEuNTE3NzQsIDIuMTA3MDgsIDIuNjIyNzMsIDMuMzU4OTMiLCBcCi0gICAgICAgICAgIjAuMTI0MDYzLCAwLjYzNzAyMSwgMS4xNDk1NywgMS41MTc5NiwgMi4xMDczNiwgMi42MjIzMSwgMy4zNTg5OSIsIFwKLSAgICAgICAgICAiMC4xMjU0MTUsIDAuNjM3MTc2LCAxLjE1MDQ2LCAxLjUxODA0LCAyLjEwNjk4LCAyLjYyMzIyLCAzLjM1ODY2IiwgXAotICAgICAgICAgICIwLjEyOTE0OCwgMC42MzcxMzIsIDEuMTQ5ODgsIDEuNTE4OSwgMi4xMDcwOCwgMi42MjIzMywgMy4zNjA2IiwgXAotICAgICAgICAgICIwLjEzMzU4MywgMC42MzY1OTUsIDEuMTUwNTMsIDEuNTE3OTEsIDIuMTA4MDIsIDIuNjIyNzQsIDMuMzU5NjQiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTY4NDMsIDAuMzg2ODMzLCAwLjY3NDM3MywgMC44NzkxMywgMS4yMDc1NCwgMS40OTQzOSwgMS45MDQ5IiwgXAotICAgICAgICAgICIwLjEwODE3MiwgMC4zOTgzMTEsIDAuNjg1ODQyLCAwLjg5MTA3MSwgMS4yMTkwMSwgMS41MDU0NywgMS45MTY0MiIsIFwKLSAgICAgICAgICAiMC4xMjE2MjksIDAuNDExODA3LCAwLjY5OTI4MywgMC45MDQ2MDQsIDEuMjMyNDksIDEuNTE5NjEsIDEuOTI5NiIsIFwKLSAgICAgICAgICAiMC4xMzQ5MTQsIDAuNDI1MjcxLCAwLjcxMjk3OSwgMC45MTgzMDEsIDEuMjQ1OTIsIDEuNTMzNjYsIDEuOTQzMTEiLCBcCi0gICAgICAgICAgIjAuMTQ4MjM1LCAwLjQzODgxNiwgMC43MjYyOTYsIDAuOTMxMzgzLCAxLjI1OTc1LCAxLjU0NjcxLCAxLjk1NjY3IiwgXAotICAgICAgICAgICIwLjE2OTYxLCAwLjQ2MDU0OCwgMC43NDgyMjMsIDAuOTUzMjI4LCAxLjI4MTIsIDEuNTY4MzIsIDEuOTc4NTIiLCBcCi0gICAgICAgICAgIjAuMTg4Mjk0LCAwLjQ3NzUzOSwgMC43NjcxMDEsIDAuOTcyMjYxLCAxLjMwMDE5LCAxLjU4Njk4LCAxLjk5NjcyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTUwMjQ2LCAwLjY5ODg2NiwgMS4yNDcxMSwgMS42MzkyMiwgMi4yNjUyMSwgMi44MTM1OCwgMy41OTY4NCIsIFwKLSAgICAgICAgICAiMC4xNTAyMDYsIDAuNjk4ODUxLCAxLjI0NzEyLCAxLjYzOTA1LCAyLjI2NTQ4LCAyLjgxMzI3LCAzLjU5NjAxIiwgXAotICAgICAgICAgICIwLjE1MDEwOSwgMC42OTg5MjcsIDEuMjQ3MzgsIDEuNjM4NywgMi4yNjU1NCwgMi44MTMyNiwgMy41OTU3NSIsIFwKLSAgICAgICAgICAiMC4xNTA4ODksIDAuNjk4ODcyLCAxLjI0NzQxLCAxLjYzOTAzLCAyLjI2NTUsIDIuODEzOCwgMy41OTY5NCIsIFwKLSAgICAgICAgICAiMC4xNTI4OTQsIDAuNjk4ODI0LCAxLjI0NzQ1LCAxLjYzOTE0LCAyLjI2NDg2LCAyLjgxMzg3LCAzLjU5NjI1IiwgXAotICAgICAgICAgICIwLjE1ODE0MywgMC42OTg3OSwgMS4yNDcxMywgMS42MzkwNSwgMi4yNjU3NiwgMi44MTM3OSwgMy41OTYyNCIsIFwKLSAgICAgICAgICAiMC4xNjQzODIsIDAuNjk4OTI5LCAxLjI0NzA5LCAxLjYzODk1LCAyLjI2NTY0LCAyLjgxMzA4LCAzLjU5NTgzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkExIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4MTM5MSwgMC4zNDQ2NjcsIDAuNjA3MDk0LCAwLjc5NDk3NywgMS4wOTU0MiwgMS4zNTc3NiwgMS43MzU0NSIsIFwKLSAgICAgICAgICAiMC4wOTMyMDksIDAuMzU2NjM2LCAwLjYxOTQ1NSwgMC44MDcxMDcsIDEuMTA3NTksIDEuMzY5ODYsIDEuNzQ2NTEiLCBcCi0gICAgICAgICAgIjAuMTA3NDk2LCAwLjM3MTExMywgMC42MzM4NjQsIDAuODIxMzc4LCAxLjEyMTYyLCAxLjM4NDk1LCAxLjc2MTEyIiwgXAotICAgICAgICAgICIwLjEyMDc2NCwgMC4zODQ1NjksIDAuNjQ3MTg4LCAwLjgzNTE0NywgMS4xMzUyNSwgMS4zOTc5OCwgMS43NzQyIiwgXAotICAgICAgICAgICIwLjEzMzYxLCAwLjM5NzUzMywgMC42NjAzNjMsIDAuODQ3ODUyLCAxLjE0ODIxLCAxLjQxMDc2LCAxLjc4Nzc3IiwgXAotICAgICAgICAgICIwLjE1MzY0MSwgMC40MTc4MzMsIDAuNjgwNzAxLCAwLjg2ODMxNCwgMS4xNjg0NSwgMS40MzE3OSwgMS44MDgwMyIsIFwKLSAgICAgICAgICAiMC4xNzA5NTcsIDAuNDM1MjEyLCAwLjY5ODEyMiwgMC44ODU5NzQsIDEuMTg1OTYsIDEuNDQ5MjksIDEuODI1NDIiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTg0NTEsIDAuNjMyMzc3LCAxLjE0NTg0LCAxLjUyMDAxLCAyLjEwNTk3LCAyLjYzMDM4LCAzLjM1OTgzIiwgXAotICAgICAgICAgICIwLjExODM3MywgMC42MzIxOTksIDEuMTQ4ODEsIDEuNTIwMTEsIDIuMTA2MTgsIDIuNjMwNDksIDMuMzgyODkiLCBcCi0gICAgICAgICAgIjAuMTE4NDU4LCAwLjYzMjM0NSwgMS4xNDkwMywgMS41MTUwMSwgMi4xMTE5MywgMi42MjE4OCwgMy4zODI5NyIsIFwKLSAgICAgICAgICAiMC4xMTg4NzMsIDAuNjMyODk5LCAxLjE0Njc0LCAxLjUxNTQ5LCAyLjEwNzc1LCAyLjYzMTExLCAzLjM3MDExIiwgXAotICAgICAgICAgICIwLjEyMDM2OSwgMC42MzIyOTQsIDEuMTQ3MjIsIDEuNTI0OTEsIDIuMTEyMzMsIDIuNjI0MjgsIDMuMzgzMjEiLCBcCi0gICAgICAgICAgIjAuMTI0NDQ0LCAwLjYzMjk2MSwgMS4xNDk5NywgMS41MTg4MiwgMi4xMTg1NywgMi42Mjc5OCwgMy4zODMiLCBcCi0gICAgICAgICAgIjAuMTI5MDQxLCAwLjYzMjQ2OCwgMS4xNDg5NSwgMS41MTUyNCwgMi4xMTAwMSwgMi42MjEzMywgMy4zNjAyMyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5MjMzOCwgMC4zODIzMjcsIDAuNjY5ODE0LCAwLjg3NDY0OCwgMS4yMDI5MywgMS40ODkxOCwgMS44OTkwOSIsIFwKLSAgICAgICAgICAiMC4xMDI0LCAwLjM5MjQ2OCwgMC42Nzk5MDEsIDAuODg0OTc0LCAxLjIxMywgMS40OTk5OSwgMS45MDk0IiwgXAotICAgICAgICAgICIwLjExNTMwMSwgMC40MDU1NDQsIDAuNjkzMzE2LCAwLjg5ODQyMSwgMS4yMjYxMSwgMS41MTM1NCwgMS45MjMyOCIsIFwKLSAgICAgICAgICAiMC4xMjg5MDIsIDAuNDE5MzA3LCAwLjcwNjk2NiwgMC45MTIyMTIsIDEuMjM5ODYsIDEuNTI3MTMsIDEuOTM2NSIsIFwKLSAgICAgICAgICAiMC4xNDE2MDQsIDAuNDMyMDUyLCAwLjcxOTU4MywgMC45MjUwMTYsIDEuMjUzMDYsIDEuNTM5OTMsIDEuOTQ5OSIsIFwKLSAgICAgICAgICAiMC4xNjM4ODgsIDAuNDUzMTc0LCAwLjc0MDY2LCAwLjk0NTk0NywgMS4yNzQ0MywgMS41NjA5MSwgMS45NzEzNiIsIFwKLSAgICAgICAgICAiMC4xODI5MzEsIDAuNDcxNjg5LCAwLjc1OTUwOSwgMC45NjQ1ODQsIDEuMjkyNDgsIDEuNTgwMTQsIDEuOTg5MjgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNTAyNzMsIDAuNjk4ODc2LCAxLjI0NzEsIDEuNjM4OTUsIDIuMjY1OSwgMi44MTM5NSwgMy41OTY2NyIsIFwKLSAgICAgICAgICAiMC4xNTAyMDUsIDAuNjk4ODAxLCAxLjI0NzQyLCAxLjYzODY4LCAyLjI2NTI1LCAyLjgxMzA3LCAzLjU5NTYxIiwgXAotICAgICAgICAgICIwLjE1MDE0MiwgMC42OTg4NiwgMS4yNDc0MSwgMS42Mzg1MywgMi4yNjUxNCwgMi44MTMyNiwgMy41OTYxNiIsIFwKLSAgICAgICAgICAiMC4xNTIxOTUsIDAuNjk4NzU3LCAxLjI0NzMxLCAxLjYzOTExLCAyLjI2NDg2LCAyLjgxMzUsIDMuNTk1NjkiLCBcCi0gICAgICAgICAgIjAuMTU2MzI2LCAwLjY5ODgzNCwgMS4yNDcxNCwgMS42Mzg2NSwgMi4yNjU3MywgMi44MTM5MiwgMy41OTU5NCIsIFwKLSAgICAgICAgICAiMC4xNjQ2NDEsIDAuNjk4OTE1LCAxLjI0NzE4LCAxLjYzODY4LCAyLjI2NTI4LCAyLjgxMzA3LCAzLjU5NTY2IiwgXAotICAgICAgICAgICIwLjE3MzgwMywgMC42OTkwMTQsIDEuMjQ3NjEsIDEuNjM4NTEsIDIuMjY1MjgsIDIuODEzNzksIDMuNTk1NjIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjAiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY4MTk4LCAwLjMzMTIwNCwgMC41OTMyNjksIDAuNzgwMjcsIDEuMDc5OCwgMS4zNDIwMiwgMS43MTU2NyIsIFwKLSAgICAgICAgICAiMC4wNzg0NzIsIDAuMzQxNzAzLCAwLjYwMzcyMSwgMC43OTEwMTUsIDEuMDkwMjMsIDEuMzUyNDYsIDEuNzI2MTEiLCBcCi0gICAgICAgICAgIjAuMDkxMzc5LCAwLjM1NDYzMSwgMC42MTY2MSwgMC44MDM3NjQsIDEuMTAzMjksIDEuMzY1MjcsIDEuNzM5NyIsIFwKLSAgICAgICAgICAiMC4xMDQ0NywgMC4zNjc3NDIsIDAuNjI5ODU2LCAwLjgxNzExMSwgMS4xMTYyNCwgMS4zNzg0NywgMS43NTIzOSIsIFwKLSAgICAgICAgICAiMC4xMTgyMzgsIDAuMzgwODMzLCAwLjY0MjgzNywgMC44Mjk5NTIsIDEuMTI5MzEsIDEuMzkxMDksIDEuNzY2MSIsIFwKLSAgICAgICAgICAiMC4xMzk4NiwgMC40MDE4NTIsIDAuNjYzOTM1LCAwLjg1MTI1MiwgMS4xNTAyMywgMS40MTIyMywgMS43ODY1NiIsIFwKLSAgICAgICAgICAiMC4xNTc4OTUsIDAuNDIwMjI1LCAwLjY4MjM0LCAwLjg2OTMzMiwgMS4xNjg3OSwgMS40MzA2MSwgMS44MDUyMSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEyMzMwNiwgMC42MzYzMTMsIDEuMTQ5NDcsIDEuNTE1NDMsIDIuMTAwMDksIDIuNjEzODUsIDMuMzQ3ODciLCBcCi0gICAgICAgICAgIjAuMTIyOTkyLCAwLjYzNjk2OSwgMS4xNDg4MiwgMS41MTQ3LCAyLjEwMTEzLCAyLjYxMzgyLCAzLjM0OTA5IiwgXAotICAgICAgICAgICIwLjEyMzU3MSwgMC42MzY0MjYsIDEuMTQ5NCwgMS41MTU0NiwgMi4xMDA3OCwgMi42MTM3MSwgMy4zNDc3MyIsIFwKLSAgICAgICAgICAiMC4xMjc0NCwgMC42MzYzNDgsIDEuMTQ4ODYsIDEuNTE0OTgsIDIuMTAxMjksIDIuNjEzNjksIDMuMzQ3NjkiLCBcCi0gICAgICAgICAgIjAuMTMyNjI0LCAwLjYzNjI5OCwgMS4xNDk0LCAxLjUxNDM5LCAyLjEwMDE1LCAyLjYxNTA5LCAzLjM0ODA2IiwgXAotICAgICAgICAgICIwLjE0MzM5NywgMC42MzYxLCAxLjE0ODgsIDEuNTE0NzEsIDIuMTAwMSwgMi42MTUyMywgMy4zNDgzOCIsIFwKLSAgICAgICAgICAiMC4xNTQ0MzQsIDAuNjM3MTE5LCAxLjE0ODgxLCAxLjUxNTQxLCAyLjEwMTI4LCAyLjYxMzk3LCAzLjM0NzYxIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDcxOTk1LCAwLjM1OTE1NywgMC42NDU5MzgsIDAuODUxMTQzLCAxLjE3ODc3LCAxLjQ2NTc1LCAxLjg3NTgiLCBcCi0gICAgICAgICAgIjAuMDgzNTg2LCAwLjM3MTE0NiwgMC42NTgxOTcsIDAuODYzMDIyLCAxLjE5MDg0LCAxLjQ3ODA4LCAxLjg4Nzk1IiwgXAotICAgICAgICAgICIwLjA5NjksIDAuMzg0OTc2LCAwLjY3MTcxMywgMC44NzY3MjUsIDEuMjA0NTIsIDEuNDkxMjcsIDEuOTAxMzIiLCBcCi0gICAgICAgICAgIjAuMTEwMjA4LCAwLjM5ODM2NSwgMC42ODU0NzEsIDAuODkwMzg4LCAxLjIxODMzLCAxLjUwNTExLCAxLjkxNTA0IiwgXAotICAgICAgICAgICIwLjEyMzQ1OSwgMC40MTE4NDUsIDAuNjk5MDY5LCAwLjkwMzg1NSwgMS4yMzE2MywgMS41MTg4LCAxLjkyODIzIiwgXAotICAgICAgICAgICIwLjE0NDc2OSwgMC40MzMzODMsIDAuNzIwNjA4LCAwLjkyNTYsIDEuMjUzNDQsIDEuNTQwMjksIDEuOTQ5OTMiLCBcCi0gICAgICAgICAgIjAuMTYyNjYzLCAwLjQ1MTAzMiwgMC43Mzk1MjEsIDAuOTQ0MzE4LCAxLjI3MjI4LCAxLjU1OTIxLCAxLjk2ODgyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTI2NjQ1LCAwLjY3MzYzMywgMS4yMjEyOCwgMS42MTI5LCAyLjI0NjIsIDIuNzg4MzEsIDMuNTcxMzgiLCBcCi0gICAgICAgICAgIjAuMTI2NjUxLCAwLjY3MzYyNSwgMS4yMjE1NywgMS42MTI2LCAyLjI0NjE5LCAyLjc5Mzk1LCAzLjU4MTA1IiwgXAotICAgICAgICAgICIwLjEyNjgyMiwgMC42NzM4MzUsIDEuMjIxNDIsIDEuNjEyMywgMi4yNDQxMywgMi43ODY2MSwgMy41NzEzNCIsIFwKLSAgICAgICAgICAiMC4xMjg2OTUsIDAuNjczNzEzLCAxLjIyMTE1LCAxLjYxMjczLCAyLjI0NjE1LCAyLjc4ODUyLCAzLjU3MTM4IiwgXAotICAgICAgICAgICIwLjEzMTk3LCAwLjY3MzcxNSwgMS4yMjE2NCwgMS42MTIzMSwgMi4yNDE4NSwgMi43ODY0NSwgMy41ODA5OCIsIFwKLSAgICAgICAgICAiMC4xMzkxMjUsIDAuNjczNjY4LCAxLjIyMTM5LCAxLjYxMjg2LCAyLjI0MjM5LCAyLjc5MjgzLCAzLjU4MDM1IiwgXAotICAgICAgICAgICIwLjE0NjczNCwgMC42NzM2OTIsIDEuMjIxMzUsIDEuNjEzNywgMi4yNDE5MywgMi43OTQ0MSwgMy41ODA4OCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjM2MzcsIDAuMzI3NzM1LCAwLjU5MTM2MiwgMC43NzkzMzQsIDEuMDgwNDksIDEuMzQ0NjEsIDEuNzIwMzciLCBcCi0gICAgICAgICAgIjAuMDczOTEsIDAuMzM4MzQzLCAwLjYwMTkxOCwgMC43OTAzNiwgMS4wOTEyOSwgMS4zNTQ5NiwgMS43MzA4NiIsIFwKLSAgICAgICAgICAiMC4wODY3MjgsIDAuMzUxMjk3LCAwLjYxNDgyNSwgMC44MDI4OTIsIDEuMTA0MjYsIDEuMzY4MDksIDEuNzQzNzciLCBcCi0gICAgICAgICAgIjAuMTAwMTk3LCAwLjM2NDM4MiwgMC42MjgwNDYsIDAuODE2MTE3LCAxLjExNzI3LCAxLjM4MTIyLCAxLjc1NjkzIiwgXAotICAgICAgICAgICIwLjExMzQ4MywgMC4zNzc0NSwgMC42NDEwNzgsIDAuODI5MjE1LCAxLjEzMDM3LCAxLjM5NDM0LCAxLjc3MDYyIiwgXAotICAgICAgICAgICIwLjEzNTA3MSwgMC4zOTg0MDYsIDAuNjYyMDUzLCAwLjg1MDUyNCwgMS4xNTE0MSwgMS40MTQ3NCwgMS43OTExMSIsIFwKLSAgICAgICAgICAiMC4xNTI1OTgsIDAuNDE2NzYyLCAwLjY4MDUzMywgMC44Njg1MzUsIDEuMTY5NzksIDEuNDMzMjEsIDEuODEwMDkiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTg0MiwgMC42MzQ0MTksIDEuMTQ5ODIsIDEuNTE3NzQsIDIuMTEwMTEsIDIuNjIyNywgMy4zODI5NSIsIFwKLSAgICAgICAgICAiMC4xMTc5NjYsIDAuNjM0OTA3LCAxLjE1MDQxLCAxLjUxNzk3LCAyLjEwNzU4LCAyLjYyMjM0LCAzLjM4Mjg1IiwgXAotICAgICAgICAgICIwLjExOTAzMywgMC42MzUxMDksIDEuMTUwNDcsIDEuNTE4NjEsIDIuMTEwMjMsIDIuNjIyNTEsIDMuMzgwMyIsIFwKLSAgICAgICAgICAiMC4xMjI5NDcsIDAuNjM0NDI3LCAxLjE0OTkyLCAxLjUxODc3LCAyLjExMTI0LCAyLjYyMjQ2LCAzLjM2NzE4IiwgXAotICAgICAgICAgICIwLjEyODc4NywgMC42MzQ0MTYsIDEuMTUyOTksIDEuNTE3NzQsIDIuMTExODksIDIuNjIyNDgsIDMuMzYwODEiLCBcCi0gICAgICAgICAgIjAuMTQwMTI4LCAwLjYzNDE4MywgMS4xNDk4NiwgMS41MTc5MSwgMi4xMTIwNiwgMi42Mzg1NiwgMy4zODMwOSIsIFwKLSAgICAgICAgICAiMC4xNTE3MDQsIDAuNjM1MTgzLCAxLjE0OTg0LCAxLjUxNzYxLCAyLjExMDY2LCAyLjYzMDEyLCAzLjM2MDQzIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY3NDY1LCAwLjM1NDY3MSwgMC42NDE3NTMsIDAuODQ2Mzk3LCAxLjE3NDY3LCAxLjQ2MTA4LCAxLjg3MTQ3IiwgXAotICAgICAgICAgICIwLjA3Nzc2NSwgMC4zNjU0ODEsIDAuNjUyMjgxLCAwLjg1NzI1MywgMS4xODUzNywgMS40NzE4NSwgMS44ODE2IiwgXAotICAgICAgICAgICIwLjA5MDU5NiwgMC4zNzg2ODQsIDAuNjY1NjAzLCAwLjg3MDQzMiwgMS4xOTgyNSwgMS40ODU0MSwgMS44OTUxMiIsIFwKLSAgICAgICAgICAiMC4xMDQyMTgsIDAuMzkyNDQ4LCAwLjY3OTM4MywgMC44ODQzMzIsIDEuMjEyMjMsIDEuNDk5MTQsIDEuOTA5MDUiLCBcCi0gICAgICAgICAgIjAuMTE3NTQyLCAwLjQwNTAyNSwgMC42OTE5MjcsIDAuODk3MjQ5LCAxLjIyNDc3LCAxLjUxMTgxLCAxLjkyMTY2IiwgXAotICAgICAgICAgICIwLjEzOTMzOCwgMC40MjYxNzIsIDAuNzEzMjI3LCAwLjkxODA3LCAxLjI0NjUzLCAxLjUzMywgMS45NDM1MiIsIFwKLSAgICAgICAgICAiMC4xNTc0MzcsIDAuNDQ0NTUxLCAwLjczMTc0MSwgMC45MzY2NjYsIDEuMjY0NDYsIDEuNTUyMjQsIDEuOTYxOTQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMjY2NTQsIDAuNjczNjk2LCAxLjIyMTYyLCAxLjYxNDI4LCAyLjI0NTA5LCAyLjc5OTI3LCAzLjU3MzEyIiwgXAotICAgICAgICAgICIwLjEyNjYzOCwgMC42NzM2OTIsIDEuMjIxNTMsIDEuNjEyNzIsIDIuMjQxNTEsIDIuNzkzMDksIDMuNTgwMjMiLCBcCi0gICAgICAgICAgIjAuMTI3NjQyLCAwLjY3MzcwNywgMS4yMjEyNSwgMS42MTIzNiwgMi4yNDU1LCAyLjc4Njg2LCAzLjU4MTEyIiwgXAotICAgICAgICAgICIwLjEzMTI2OCwgMC42NzM2ODIsIDEuMjIxNTUsIDEuNjEyNTcsIDIuMjM5MjUsIDIuNzk4ODcsIDMuNTgxMDIiLCBcCi0gICAgICAgICAgIjAuMTM2OTI5LCAwLjY3MzcyLCAxLjIyMTI0LCAxLjYxMjY2LCAyLjI0MTc2LCAyLjc4NjI5LCAzLjU3MTAzIiwgXAotICAgICAgICAgICIwLjE0ODE3LCAwLjY3MzcxLCAxLjIyMTQ0LCAxLjYxMjMsIDIuMjM5MTIsIDIuNzg3MDgsIDMuNTcxMzEiLCBcCi0gICAgICAgICAgIjAuMTU5MTA3LCAwLjY3NDA5MywgMS4yMjExOCwgMS42MTIzMywgMi4yNDQ3NiwgMi43ODYzNywgMy41NzEyMSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMDQwMywgMC4wMTA0MDUsIDAuMDEwNDAzLCAwLjAxMDQsIDAuMDEwNDAxLCAwLjAxMDM5NSwgMC4wMTAzOTYiLCBcCi0gICAgICAgICAgIjAuMDEwMzY5LCAwLjAxMDM4MiwgMC4wMTAzODIsIDAuMDEwMzgzLCAwLjAxMDM4LCAwLjAxMDM3NiwgMC4wMTAzNzUiLCBcCi0gICAgICAgICAgIjAuMDEwMzQ5LCAwLjAxMDM3MywgMC4wMTAzNzYsIDAuMDEwMzc2LCAwLjAxMDM3NywgMC4wMTAzNzMsIDAuMDEwMzc0IiwgXAotICAgICAgICAgICIwLjAxMDMzMywgMC4wMTAzNjgsIDAuMDEwMzcxLCAwLjAxMDM3LCAwLjAxMDM3LCAwLjAxMDM3MSwgMC4wMTAzNjgiLCBcCi0gICAgICAgICAgIjAuMDEwMzIyLCAwLjAxMDM2MywgMC4wMTAzNjksIDAuMDEwMzY5LCAwLjAxMDM3LCAwLjAxMDM2OCwgMC4wMTAzNjgiLCBcCi0gICAgICAgICAgIjAuMDEwMzA3LCAwLjAxMDM1NiwgMC4wMTAzNjQsIDAuMDEwMzY3LCAwLjAxMDM2OSwgMC4wMTAzNjksIDAuMDEwMzY2IiwgXAotICAgICAgICAgICIwLjAxMDI5NSwgMC4wMTAzNDIsIDAuMDEwMzYzLCAwLjAxMDM2NSwgMC4wMTAzNjcsIDAuMDEwMzY2LCAwLjAxMDM2OCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzOTk1LCAwLjAwMzk5NSwgMC4wMDM5OTMsIDAuMDAzOTkyLCAwLjAwMzk5MiwgMC4wMDM5ODcsIDAuMDAzOTg2IiwgXAotICAgICAgICAgICIwLjAwMzkzMywgMC4wMDM5NTQsIDAuMDAzOTU1LCAwLjAwMzk1NywgMC4wMDM5NTcsIDAuMDAzOTUxLCAwLjAwMzk1MSIsIFwKLSAgICAgICAgICAiMC4wMDM4ODcsIDAuMDAzOTM1LCAwLjAwMzk0MiwgMC4wMDM5NDMsIDAuMDAzOTQ1LCAwLjAwMzk0MywgMC4wMDM5NDYiLCBcCi0gICAgICAgICAgIjAuMDAzODUzLCAwLjAwMzkyLCAwLjAwMzkzMiwgMC4wMDM5MzYsIDAuMDAzOTM3LCAwLjAwMzkzNywgMC4wMDM5MzciLCBcCi0gICAgICAgICAgIjAuMDAzODMsIDAuMDAzOTEsIDAuMDAzOTI1LCAwLjAwMzkyOCwgMC4wMDM5MywgMC4wMDM5MzMsIDAuMDAzOTMxIiwgXAotICAgICAgICAgICIwLjAwMzgsIDAuMDAzODkzLCAwLjAwMzkxNCwgMC4wMDM5MiwgMC4wMDM5MjQsIDAuMDAzOTI3LCAwLjAwMzkyNSIsIFwKLSAgICAgICAgICAiMC4wMDM3ODIsIDAuMDAzODcsIDAuMDAzOTA0LCAwLjAwMzkxMiwgMC4wMDM5MTgsIDAuMDAzOTIxLCAwLjAwMzkyMyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkExIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwOTE1LCAwLjAwOTE1OSwgMC4wMDkxNTksIDAuMDA5MTU5LCAwLjAwOTE1OSwgMC4wMDkxNTYsIDAuMDA5MTU2IiwgXAotICAgICAgICAgICIwLjAwOTEzMiwgMC4wMDkxNzMsIDAuMDA5MTc3LCAwLjAwOTE4LCAwLjAwOTE3OCwgMC4wMDkxNzUsIDAuMDA5MTcyIiwgXAotICAgICAgICAgICIwLjAwOTA5NywgMC4wMDkxNjcsIDAuMDA5MTc1LCAwLjAwOTE3OSwgMC4wMDkxODEsIDAuMDA5MTgsIDAuMDA5MTgyIiwgXAotICAgICAgICAgICIwLjAwOTA2OCwgMC4wMDkxNTcsIDAuMDA5MTcyLCAwLjAwOTE3NCwgMC4wMDkxNzcsIDAuMDA5MTc5LCAwLjAwOTE3OCIsIFwKLSAgICAgICAgICAiMC4wMDkwNDYsIDAuMDA5MTQ4LCAwLjAwOTE2NSwgMC4wMDkxNywgMC4wMDkxNzUsIDAuMDA5MTc2LCAwLjAwOTE3OCIsIFwKLSAgICAgICAgICAiMC4wMDkwMiwgMC4wMDkxMzQsIDAuMDA5MTU1LCAwLjAwOTE2MiwgMC4wMDkxNjcsIDAuMDA5MTcxLCAwLjAwOTE3NCIsIFwKLSAgICAgICAgICAiMC4wMDkwMDMsIDAuMDA5MTE3LCAwLjAwOTE0OSwgMC4wMDkxNTcsIDAuMDA5MTY0LCAwLjAwOTE2OCwgMC4wMDkxNyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzOTkzLCAwLjAwMzk5NSwgMC4wMDM5OSwgMC4wMDM5ODksIDAuMDAzOTk2LCAwLjAwMzk4OCwgMC4wMDM5ODQiLCBcCi0gICAgICAgICAgIjAuMDAzOTIxLCAwLjAwMzk1MSwgMC4wMDM5NTMsIDAuMDAzOTU0LCAwLjAwMzk0OCwgMC4wMDM5NTEsIDAuMDAzOTUiLCBcCi0gICAgICAgICAgIjAuMDAzODY4LCAwLjAwMzkyNywgMC4wMDM5MzcsIDAuMDAzOTM4LCAwLjAwMzkzNywgMC4wMDM5NCwgMC4wMDM5NDEiLCBcCi0gICAgICAgICAgIjAuMDAzODMzLCAwLjAwMzkxMiwgMC4wMDM5MjcsIDAuMDAzOTI5LCAwLjAwMzkzLCAwLjAwMzkzMiwgMC4wMDM5MzEiLCBcCi0gICAgICAgICAgIjAuMDAzODAyLCAwLjAwMzg5NywgMC4wMDM5MTYsIDAuMDAzOTIxLCAwLjAwMzkyNSwgMC4wMDM5MjgsIDAuMDAzOTI3IiwgXAotICAgICAgICAgICIwLjAwMzc3OSwgMC4wMDM4OCwgMC4wMDM5MDQsIDAuMDAzOTEyLCAwLjAwMzkxNiwgMC4wMDM5MiwgMC4wMDM5MjIiLCBcCi0gICAgICAgICAgIjAuMDAzNzY3LCAwLjAwMzg2NiwgMC4wMDM4OTQsIDAuMDAzOTA0LCAwLjAwMzkxMiwgMC4wMDM5MTQsIDAuMDAzOTE2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA3NTQ1LCAwLjAwNzU0NywgMC4wMDc1NDcsIDAuMDA3NTQ2LCAwLjAwNzU0MywgMC4wMDc1NDQsIDAuMDA3NTQxIiwgXAotICAgICAgICAgICIwLjAwNzQ5MSwgMC4wMDc1MTksIDAuMDA3NTIxLCAwLjAwNzUyMiwgMC4wMDc1MjEsIDAuMDA3NTE5LCAwLjAwNzUxNyIsIFwKLSAgICAgICAgICAiMC4wMDc0NTYsIDAuMDA3NTA2LCAwLjAwNzUxMSwgMC4wMDc1MTMsIDAuMDA3NTEyLCAwLjAwNzUxLCAwLjAwNzUxOCIsIFwKLSAgICAgICAgICAiMC4wMDc0MzIsIDAuMDA3NDk2LCAwLjAwNzUwNSwgMC4wMDc1MDcsIDAuMDA3NTA3LCAwLjAwNzUwOSwgMC4wMDc1MDkiLCBcCi0gICAgICAgICAgIjAuMDA3NDE2LCAwLjAwNzQ4OCwgMC4wMDc1LCAwLjAwNzUwMywgMC4wMDc1MDUsIDAuMDA3NTA1LCAwLjAwNzUwNSIsIFwKLSAgICAgICAgICAiMC4wMDczOTksIDAuMDA3NDc2LCAwLjAwNzQ5MywgMC4wMDc0OTYsIDAuMDA3NSwgMC4wMDc1MDEsIDAuMDA3NSIsIFwKLSAgICAgICAgICAiMC4wMDczOTIsIDAuMDA3NDY5LCAwLjAwNzQ4OCwgMC4wMDc0OTIsIDAuMDA3NDk3LCAwLjAwNzQ5OSwgMC4wMDc0OTkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTE3NiwgMC4wMDExOTYsIDAuMDAxMTk4LCAwLjAwMTE5OSwgMC4wMDExOTksIDAuMDAxMTk5LCAwLjAwMTE5OSIsIFwKLSAgICAgICAgICAiMC4wMDExNDksIDAuMDAxMjM0LCAwLjAwMTI0NCwgMC4wMDEyNDcsIDAuMDAxMjQ5LCAwLjAwMTI1LCAwLjAwMTI1MiIsIFwKLSAgICAgICAgICAiMC4wMDEwODksIDAuMDAxMjI5LCAwLjAwMTI0OCwgMC4wMDEyNTQsIDAuMDAxMjU5LCAwLjAwMTI2MiwgMC4wMDEyNjQiLCBcCi0gICAgICAgICAgIjAuMDAxMDM5LCAwLjAwMTIxNiwgMC4wMDEyNDMsIDAuMDAxMjUxLCAwLjAwMTI1OSwgMC4wMDEyNjMsIDAuMDAxMjY2IiwgXAotICAgICAgICAgICIwLjAwMTAwNCwgMC4wMDEyMDEsIDAuMDAxMjM1LCAwLjAwMTI0NiwgMC4wMDEyNTYsIDAuMDAxMjYxLCAwLjAwMTI2NSIsIFwKLSAgICAgICAgICAiMC4wMDA5NTksIDAuMDAxMTc4LCAwLjAwMTIyMSwgMC4wMDEyMzUsIDAuMDAxMjQ4LCAwLjAwMTI1NSwgMC4wMDEyNjEiLCBcCi0gICAgICAgICAgIjAuMDAwOTMxLCAwLjAwMTE1NCwgMC4wMDEyMDgsIDAuMDAxMjI1LCAwLjAwMTI0MSwgMC4wMDEyNSwgMC4wMDEyNTciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDYyODgsIDAuMDA2MzAyLCAwLjAwNjMwMywgMC4wMDYzMDMsIDAuMDA2MzAyLCAwLjAwNjMwMiwgMC4wMDYzMDEiLCBcCi0gICAgICAgICAgIjAuMDA2MjUsIDAuMDA2MzExLCAwLjAwNjMxNywgMC4wMDYzMTgsIDAuMDA2MzIsIDAuMDA2MzE4LCAwLjAwNjMyMiIsIFwKLSAgICAgICAgICAiMC4wMDYyMDEsIDAuMDA2Mjk5LCAwLjAwNjMxNCwgMC4wMDYzMTUsIDAuMDA2MzIsIDAuMDA2MzE4LCAwLjAwNjMyIiwgXAotICAgICAgICAgICIwLjAwNjE2NiwgMC4wMDYyODcsIDAuMDA2MzA1LCAwLjAwNjMxMSwgMC4wMDYzMTUsIDAuMDA2MzE3LCAwLjAwNjMxOCIsIFwKLSAgICAgICAgICAiMC4wMDYxMzcsIDAuMDA2MjczLCAwLjAwNjI5NywgMC4wMDYzMDMsIDAuMDA2MzEsIDAuMDA2MzEzLCAwLjAwNjMxNCIsIFwKLSAgICAgICAgICAiMC4wMDYxMDgsIDAuMDA2MjU1LCAwLjAwNjI4NSwgMC4wMDYyOTUsIDAuMDA2MzA0LCAwLjAwNjMwOCwgMC4wMDYzMDkiLCBcCi0gICAgICAgICAgIjAuMDA2MDk1LCAwLjAwNjI0MSwgMC4wMDYyNzYsIDAuMDA2Mjg3LCAwLjAwNjI5NiwgMC4wMDYzMDIsIDAuMDA2MzA1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDExNzIsIDAuMDAxMTk2LCAwLjAwMTE5OSwgMC4wMDExOTksIDAuMDAxMjAxLCAwLjAwMTIsIDAuMDAxMiIsIFwKLSAgICAgICAgICAiMC4wMDExMzIsIDAuMDAxMjMzLCAwLjAwMTI0NSwgMC4wMDEyNDgsIDAuMDAxMjUyLCAwLjAwMTI1MywgMC4wMDEyNTQiLCBcCi0gICAgICAgICAgIjAuMDAxMDY3LCAwLjAwMTIyNywgMC4wMDEyNDksIDAuMDAxMjU1LCAwLjAwMTI2MSwgMC4wMDEyNjQsIDAuMDAxMjY3IiwgXAotICAgICAgICAgICIwLjAwMTAxNCwgMC4wMDEyMTEsIDAuMDAxMjQxLCAwLjAwMTI1LCAwLjAwMTI1OSwgMC4wMDEyNjMsIDAuMDAxMjY3IiwgXAotICAgICAgICAgICIwLjAwMDk4MiwgMC4wMDExOTYsIDAuMDAxMjM0LCAwLjAwMTI0NiwgMC4wMDEyNTcsIDAuMDAxMjYyLCAwLjAwMTI2OCIsIFwKLSAgICAgICAgICAiMC4wMDA5NDUsIDAuMDAxMTcsIDAuMDAxMjE4LCAwLjAwMTIzNCwgMC4wMDEyNDgsIDAuMDAxMjU2LCAwLjAwMTI2MyIsIFwKLSAgICAgICAgICAiMC4wMDA5MjgsIDAuMDAxMTQ5LCAwLjAwMTIwNSwgMC4wMDEyMjQsIDAuMDAxMjQxLCAwLjAwMTI1LCAwLjAwMTI1OSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IEFPSTIyWEwgKgotICogLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoQU9JMjJYTCkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjA1MzY5ODg7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA1Nzc3NTg7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNTc0OTQxOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDU3Nzc1ODsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxNjUsIDAuMDAwMTY1LCAwLjAwMDE2NSwgMC4wMDAxNjUsIDAuMDAwMTY1LCAwLjAwMDE2NSwgMC4wMDAxNjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxNjgsIDAuMDAwMTY2LCAwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiwgMC4wMDAxNjYiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEExKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2MDk1NDk7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjA1NzUyOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDYwOTU0OTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAwNTQsIDAuMDAwMDU0LCAwLjAwMDA1NCwgMC4wMDAwNTQsIDAuMDAwMDU0LCAwLjAwMDA1NCwgMC4wMDAwNTQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxODgsIDAuMDAwMTg4LCAwLjAwMDE4OCwgMC4wMDAxODgsIDAuMDAwMTg4LCAwLjAwMDE4OCwgMC4wMDAxODgiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA1OTY5NTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA1OTY5NTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA1OTU3NjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxNjUsIDAuMDAwMTY1LCAwLjAwMDE2NSwgMC4wMDAxNjUsIDAuMDAwMTY1LCAwLjAwMDE2NSwgMC4wMDAxNjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxNjgsIDAuMDAwMTY2LCAwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiwgMC4wMDAxNjYiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIxKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2MjQzMzQ7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjI0MDg3OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDYyNDMzNDsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAwNTQsIDAuMDAwMDU0LCAwLjAwMDA1NCwgMC4wMDAwNTQsIDAuMDAwMDU0LCAwLjAwMDA1NCwgMC4wMDAwNTQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxODgsIDAuMDAwMTg4LCAwLjAwMDE4OCwgMC4wMDAxODgsIDAuMDAwMTg4LCAwLjAwMDE4OCwgMC4wMDAxODgiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4wMzc3ODk1OwotICAgIGZ1bmN0aW9uIDogIighKChCMCBCMSkrKEEwIEExKSkpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzIwNDkxLCAwLjM3MjUxNCwgMC44NDA1NTUsIDEuNjIwODUsIDIuNDAwNjIsIDQuMjE3NzksIDUuMjU2MDkiLCBcCi0gICAgICAgICAgIjAuMzMyMjcsIDAuMzg0Mjg1LCAwLjg1MjY1NiwgMS42MzIxNCwgMi40MTI0MSwgNC4yMjk3MywgNS4yNjgwMSIsIFwKLSAgICAgICAgICAiMC4zNDY4NzEsIDAuMzk4ODYxLCAwLjg2NzM0MSwgMS42NDY5OSwgMi40MjcxOSwgNC4yNDQzNCwgNS4yODI1MyIsIFwKLSAgICAgICAgICAiMC4zNjA3MDQsIDAuNDEyODIyLCAwLjg4MDc4MSwgMS42NjEyNiwgMi40NDA0LCA0LjI1Nzk4LCA1LjI5NjQiLCBcCi0gICAgICAgICAgIjAuMzczOTUsIDAuNDI1OTQzLCAwLjg5NDM1LCAxLjY3NDIxLCAyLjQ1NDI0LCA0LjI3MTQ3LCA1LjMwOTY2IiwgXAotICAgICAgICAgICIwLjM5NDQ4NCwgMC40NDY1NjMsIDAuOTE0NjUsIDEuNjk0MzMsIDIuNDc0NCwgNC4yOTE5MSwgNS4zMzAzOSIsIFwKLSAgICAgICAgICAiMC40MTIwNDksIDAuNDY0MTMsIDAuOTMyNDcxLCAxLjcxMTk0LCAyLjQ5MjM0LCA0LjMwOTU5LCA1LjM0Nzg3Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjU3MjU4MSwgMC42NzM5NiwgMS41ODc5NywgMy4xMTEyOCwgNC42MzY0OCwgOC4xODc1MSwgMTAuMjE3IiwgXAotICAgICAgICAgICIwLjU3MjUzLCAwLjY3NDgyOSwgMS41ODgxNiwgMy4xMTEwNiwgNC42MzU3MywgOC4xOTAzMiwgMTAuMjE2IiwgXAotICAgICAgICAgICIwLjU3Mjk3LCAwLjY3NDA4MiwgMS41ODgxOSwgMy4xMTE0NCwgNC42MzUwNiwgOC4xODgxNiwgMTAuMjE3IiwgXAotICAgICAgICAgICIwLjU3MjU0NywgMC42NzQxOTEsIDEuNTg5MDgsIDMuMTEyMzEsIDQuNjM0NzIsIDguMTg5OTEsIDEwLjIxNTkiLCBcCi0gICAgICAgICAgIjAuNTcyNjA0LCAwLjY3NDc5MywgMS41ODg2LCAzLjExMTI1LCA0LjYzNjA3LCA4LjE4ODQ5LCAxMC4yMTY0IiwgXAotICAgICAgICAgICIwLjU3MjY1NywgMC42NzQxNjgsIDEuNTg3OTcsIDMuMTEyODgsIDQuNjM0NTQsIDguMTkwMDcsIDEwLjIxNTciLCBcCi0gICAgICAgICAgIjAuNTcyNjk1LCAwLjY3NDcyOCwgMS41ODgyOCwgMy4xMTE0OCwgNC42MzQ1MywgOC4xOTAxNywgMTAuMjE1OCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zNjczMDksIDAuNDI2NTc3LCAwLjk1ODkyLCAxLjg0NDQ3LCAyLjcyOTcsIDQuNzkyMzcsIDUuOTcxMTYiLCBcCi0gICAgICAgICAgIjAuMzc5MjY2LCAwLjQzODU1NSwgMC45NzA2OTgsIDEuODU2MTYsIDIuNzQxNDgsIDQuODA0MzQsIDUuOTgzMDYiLCBcCi0gICAgICAgICAgIjAuMzkzMTc5LCAwLjQ1MjU3MiwgMC45ODQ4NDUsIDEuODcwMzksIDIuNzU1NTQsIDQuODE4MjksIDUuOTk3MTEiLCBcCi0gICAgICAgICAgIjAuNDA3MTM5LCAwLjQ2NjM4MiwgMC45OTg5NDksIDEuODg0NDIsIDIuNzY5NDMsIDQuODMyMjksIDYuMDExMDYiLCBcCi0gICAgICAgICAgIjAuNDIwOTQ0LCAwLjQ4MDIyNCwgMS4wMTI3MSwgMS44OTgzOSwgMi43ODM0NCwgNC44NDYzNiwgNi4wMjQ5NiIsIFwKLSAgICAgICAgICAiMC40NDI5NTMsIDAuNTAyMjQ3LCAxLjAzNDU2LCAxLjkyMDgyLCAyLjgwNTQyLCA0Ljg2ODQsIDYuMDQ3MTQiLCBcCi0gICAgICAgICAgIjAuNDYwMjc2LCAwLjUyMTI5MywgMS4wNTQwNCwgMS45NDAxNiwgMi44MjQ5MiwgNC44ODc3LCA2LjA2NjIxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjY1NTgzOCwgMC43NjgyNzIsIDEuNzc5MywgMy40NjQ0MywgNS4xNDc3MywgOS4wNzU2OCwgMTEuMzE1OSIsIFwKLSAgICAgICAgICAiMC42NTU4NywgMC43NjgyOTQsIDEuNzc5NzQsIDMuNDYzNzcsIDUuMTQ4MzEsIDkuMDc0MTcsIDExLjMxNTMiLCBcCi0gICAgICAgICAgIjAuNjU1ODMzLCAwLjc2ODIsIDEuNzc5NTgsIDMuNDY0MjgsIDUuMTQ3NjYsIDkuMDc0MzYsIDExLjMxNTIiLCBcCi0gICAgICAgICAgIjAuNjU1ODUyLCAwLjc2ODI0NCwgMS43NzkyLCAzLjQ2MzcxLCA1LjE0ODMsIDkuMDc1ODYsIDExLjMxNTYiLCBcCi0gICAgICAgICAgIjAuNjU1ODIsIDAuNzY4MjI5LCAxLjc3OTYxLCAzLjQ2MzY5LCA1LjE0ODM1LCA5LjA3NTM4LCAxMS4zMTU2IiwgXAotICAgICAgICAgICIwLjY1NTg2NywgMC43NjgyNDQsIDEuNzc5MzEsIDMuNDYzMjYsIDUuMTQ4MTIsIDkuMDc0NTgsIDExLjMxNTUiLCBcCi0gICAgICAgICAgIjAuNjU1ODA0LCAwLjc2ODE4MywgMS43Nzk3MywgMy40NjM3MywgNS4xNDcwNSwgOS4wNzU4NiwgMTEuMzE1NiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzE0MTc1LCAwLjM2NjI5MywgMC44MzQxMDIsIDEuNjE0LCAyLjM5NDEyLCA0LjIxMTE3LCA1LjI0OTMzIiwgXAotICAgICAgICAgICIwLjMyNjI3NywgMC4zNzgyNTUsIDAuODQ2NDk3LCAxLjYyNTk0LCAyLjQwNjA5LCA0LjIyMjY3LCA1LjI2MTM2IiwgXAotICAgICAgICAgICIwLjM0MDkyLCAwLjM5MjkzMiwgMC44NjEwNTYsIDEuNjQwNjYsIDIuNDIwOTQsIDQuMjM3OTQsIDUuMjc2MDYiLCBcCi0gICAgICAgICAgIjAuMzU0Nzc2LCAwLjQwNjg0OCwgMC44NzQ2MTYsIDEuNjU0OTgsIDIuNDM0MDYsIDQuMjUxNTUsIDUuMjg5OTMiLCBcCi0gICAgICAgICAgIjAuMzY3OTgyLCAwLjQxOTk0NywgMC44ODgxNjIsIDEuNjY3OTMsIDIuNDQ3OTEsIDQuMjY1MDQsIDUuMzAzMiIsIFwKLSAgICAgICAgICAiMC4zODg0NzIsIDAuNDQwNTI5LCAwLjkwODg2LCAxLjY4Nzk4LCAyLjQ2ODA1LCA0LjI4NTQ4LCA1LjMyMzk3IiwgXAotICAgICAgICAgICIwLjQwNjAwNywgMC40NTgwODMsIDAuOTI2MjksIDEuNzA1ODQsIDIuNDg2MDIsIDQuMzAzMTcsIDUuMzQxMzciKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuNTY1Nzg4LCAwLjY2NzI3NiwgMS41ODE4OSwgMy4xMDM4MSwgNC42MjcyNiwgOC4xODAzNiwgMTAuMjA4OCIsIFwKLSAgICAgICAgICAiMC41NjU2ODMsIDAuNjY3MjYyLCAxLjU4MTA4LCAzLjEwNDU1LCA0LjYyODAyLCA4LjE4MTQzLCAxMC4yMDkiLCBcCi0gICAgICAgICAgIjAuNTY2MjQzLCAwLjY2NzI3OSwgMS41ODA5MywgMy4xMDM5MSwgNC42MjgzNCwgOC4xODI0NSwgMTAuMjA4OCIsIFwKLSAgICAgICAgICAiMC41NjYxOTgsIDAuNjY3MTc4LCAxLjU4MDY1LCAzLjEwNDgsIDQuNjI2OTksIDguMTgxOTUsIDEwLjIwNzgiLCBcCi0gICAgICAgICAgIjAuNTY1Nzg5LCAwLjY2Nzk0LCAxLjU4MTQ3LCAzLjEwMzcyLCA0LjYyODM0LCA4LjE4MDY3LCAxMC4yMDgzIiwgXAotICAgICAgICAgICIwLjU2NTkyNiwgMC42NjcyNzksIDEuNTgxNTUsIDMuMTAzOTksIDQuNjI2ODMsIDguMTgyMDksIDEwLjIwOTEiLCBcCi0gICAgICAgICAgIjAuNTY1OTI0LCAwLjY2NzMxMywgMS41ODA5MSwgMy4xMDM5MiwgNC42MjY4OCwgOC4xODIyMSwgMTAuMjA3OCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zNjE3NDksIDAuNDIxMTA1LCAwLjk1MzM3NCwgMS44Mzg3NiwgMi43MjQzNCwgNC43ODY4MiwgNS45NjU1OSIsIFwKLSAgICAgICAgICAiMC4zNzIyMzksIDAuNDMxNTIsIDAuOTYzOTg5LCAxLjg0OTU0LCAyLjczNDU4LCA0Ljc5NzMzLCA1Ljk3NjE0IiwgXAotICAgICAgICAgICIwLjM4NjA2OSwgMC40NDU0MzcsIDAuOTc3NTg3LCAxLjg2MzE1LCAyLjc0ODUyLCA0LjgxMTI0LCA1Ljk5IiwgXAotICAgICAgICAgICIwLjM5OTA1OSwgMC40NTg0NjEsIDAuOTkwOTUsIDEuODc2ODIsIDIuNzYxNCwgNC44MjQwNiwgNi4wMDMwNSIsIFwKLSAgICAgICAgICAiMC40MTI1MDMsIDAuNDcxODQ1LCAxLjAwNDA3LCAxLjg5MDgxLCAyLjc3NTUzLCA0LjgzODQyLCA2LjAxNzI3IiwgXAotICAgICAgICAgICIwLjQzNDA4MywgMC40OTM0NTEsIDEuMDI1NzQsIDEuOTEyMjgsIDIuNzk2NDgsIDQuODU5NSwgNi4wMzgyNCIsIFwKLSAgICAgICAgICAiMC40NTI5ODMsIDAuNTEyMzA1LCAxLjA0NDczLCAxLjkzMDI2LCAyLjgxNTcsIDQuODc4NTIsIDYuMDU3MTMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuNjU1ODA1LCAwLjc2ODI0LCAxLjc3OTM0LCAzLjQ2NDQ1LCA1LjE0Nzg4LCA5LjA3NTYsIDExLjMxNTkiLCBcCi0gICAgICAgICAgIjAuNjU1ODM5LCAwLjc2ODM4LCAxLjc3OTQyLCAzLjQ2NDE4LCA1LjE0NzQyLCA5LjA3NDI4LCAxMS4zMTQ5IiwgXAotICAgICAgICAgICIwLjY1NTc3OSwgMC43NjgyNTIsIDEuNzc5MzcsIDMuNDYzMzEsIDUuMTQ4NTYsIDkuMDc0MywgMTEuMzE1NCIsIFwKLSAgICAgICAgICAiMC42NTU3ODgsIDAuNzY4MjcyLCAxLjc3OTM3LCAzLjQ2NDA2LCA1LjE0ODI5LCA5LjA3NTEzLCAxMS4zMTU0IiwgXAotICAgICAgICAgICIwLjY1NTc3NywgMC43NjgyNjYsIDEuNzc5NjgsIDMuNDY0MjQsIDUuMTQ4MTgsIDkuMDc0MjIsIDExLjMxNTQiLCBcCi0gICAgICAgICAgIjAuNjU1Nzg0LCAwLjc2ODI5MiwgMS43Nzk4NiwgMy40NjM2MywgNS4xNDgzNCwgOS4wNzQxOSwgMTEuMzE1MyIsIFwKLSAgICAgICAgICAiMC42NTU5OTIsIDAuNzY4MTUxLCAxLjc3OTU5LCAzLjQ2NDE4LCA1LjE0ODEsIDkuMDc1MTIsIDExLjMxNTUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjAiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI5ODAxOCwgMC4zNTAyMTgsIDAuODE4NDkzLCAxLjU5ODI2LCAyLjM3ODAzLCA0LjE5NTUsIDUuMjMzODYiLCBcCi0gICAgICAgICAgIjAuMzA4NTIyLCAwLjM2MDQ5MywgMC44Mjg4MTUsIDEuNjA4NzcsIDIuMzg4NzIsIDQuMjA1OTcsIDUuMjQ0MTciLCBcCi0gICAgICAgICAgIjAuMzIxNTE1LCAwLjM3MzU0LCAwLjg0MTk0MiwgMS42MjE4NSwgMi40MDE2LCA0LjIxODY3LCA1LjI1NzIyIiwgXAotICAgICAgICAgICIwLjMzNDU2LCAwLjM4NjY1LCAwLjg1NDc3OCwgMS42MzQ5MywgMi40MTQ1OSwgNC4yMzE3MiwgNS4yNzAzIiwgXAotICAgICAgICAgICIwLjM0NzYyNCwgMC4zOTk2OTUsIDAuODY3OTM1LCAxLjY0NzkzLCAyLjQyODEzLCA0LjI0NTE4LCA1LjI4MzUiLCBcCi0gICAgICAgICAgIjAuMzY4NTUxLCAwLjQyMDU3NywgMC44ODg5NDQsIDEuNjY4NDksIDIuNDQ3ODgsIDQuMjY1OTIsIDUuMzA0MzkiLCBcCi0gICAgICAgICAgIjAuMzg2ODgzLCAwLjQzODk4MiwgMC45MDczLCAxLjY4NzYyLCAyLjQ2NzQ1LCA0LjI4NDQ0LCA1LjMyMjY5Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjU3MzA0LCAwLjY3NDczNywgMS41ODgxNiwgMy4xMTEyNCwgNC42MzQ0OCwgOC4xOTAyNiwgMTAuMjE2IiwgXAotICAgICAgICAgICIwLjU3MjQ0OCwgMC42NzQ4MTIsIDEuNTg5MDMsIDMuMTExMiwgNC42MzY0OCwgOC4xODcyNCwgMTAuMjE2NCIsIFwKLSAgICAgICAgICAiMC41NzMwOTQsIDAuNjczOTk0LCAxLjU4ODY2LCAzLjExMjMxLCA0LjYzNTg0LCA4LjE4ODM5LCAxMC4yMTcxIiwgXAotICAgICAgICAgICIwLjU3MzA2NSwgMC42NzQxNzYsIDEuNTg4MjcsIDMuMTEyMDcsIDQuNjM2MjksIDguMTg3NzcsIDEwLjIxNyIsIFwKLSAgICAgICAgICAiMC41NzI0NDksIDAuNjczOTM1LCAxLjU4ODM2LCAzLjExMTI4LCA0LjYzNDcyLCA4LjE5MDMxLCAxMC4yMTU5IiwgXAotICAgICAgICAgICIwLjU3MjI3MywgMC42NzM5MDYsIDEuNTg4MzEsIDMuMTExNDcsIDQuNjM2NDIsIDguMTg5ODksIDEwLjIxNyIsIFwKLSAgICAgICAgICAiMC41NzQxMzUsIDAuNjc0MzYsIDEuNTg4MjksIDMuMTExNTMsIDQuNjM2MDUsIDguMTkwMjMsIDEwLjIxNTgiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzM0MzQ4LCAwLjM5MzQyOCwgMC45MjQxOTQsIDEuODA5MjQsIDIuNjkzNjcsIDQuNzU4MTUsIDUuOTM3NTEiLCBcCi0gICAgICAgICAgIjAuMzQ2NzU5LCAwLjQwNTgyMiwgMC45MzY2NjQsIDEuODIxNDIsIDIuNzA2MzEsIDQuNzcwNTMsIDUuOTQ5OTgiLCBcCi0gICAgICAgICAgIjAuMzYwOTQyLCAwLjQxOTkxOSwgMC45NTA5MjcsIDEuODM2MzgsIDIuNzIwNCwgNC43ODQ4MiwgNS45NjQyNyIsIFwKLSAgICAgICAgICAiMC4zNzQ3NzMsIDAuNDMzODEsIDAuOTY0ODkzLCAxLjg0OTc5LCAyLjczNDY0LCA0Ljc5ODg5LCA1Ljk3ODI1IiwgXAotICAgICAgICAgICIwLjM4ODY5LCAwLjQ0NzU4NywgMC45NzkyMDYsIDEuODY0NjUsIDIuNzQ4NjMsIDQuODEyODMsIDUuOTkyMjEiLCBcCi0gICAgICAgICAgIjAuNDEwNTAyLCAwLjQ2OTczOCwgMS4wMDA4NiwgMS44ODYyNiwgMi43NzA5MiwgNC44MzUxLCA2LjAxNDE1IiwgXAotICAgICAgICAgICIwLjQyODU5NSwgMC40ODg4MjMsIDEuMDIwMjEsIDEuOTA1NjksIDIuNzg5ODksIDQuODU0MzgsIDYuMDMzNjMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuNjI0NTUzLCAwLjczNjcwNCwgMS43NDY0MSwgMy40MzY4NywgNS4xMTUwNywgOS4wMzgxMiwgMTEuMjc4NCIsIFwKLSAgICAgICAgICAiMC42MjQ2NzIsIDAuNzM2NzY5LCAxLjc0NjA5LCAzLjQzNzI5LCA1LjExNTU3LCA5LjAzODEsIDExLjI3ODEiLCBcCi0gICAgICAgICAgIjAuNjI0NjkxLCAwLjczNjY3OCwgMS43NDY2MiwgMy40MzExNCwgNS4xMTU5OCwgOS4wMzkxMiwgMTEuMjc4NyIsIFwKLSAgICAgICAgICAiMC42MjQ2NzksIDAuNzM2Nzg2LCAxLjc0NjI1LCAzLjQzNzc4LCA1LjExNDg2LCA5LjAzOTM2LCAxMS4yNzg3IiwgXAotICAgICAgICAgICIwLjYyNDY1MSwgMC43MzY2ODcsIDEuNzQ2MTYsIDMuNDM4MzYsIDUuMTEyODQsIDkuMDM4NSwgMTEuMjc4NSIsIFwKLSAgICAgICAgICAiMC42MjQ1NiwgMC43MzY3NDYsIDEuNzQ2MzYsIDMuNDMxMzIsIDUuMTE2MDksIDkuMDM5MTYsIDExLjI3ODIiLCBcCi0gICAgICAgICAgIjAuNjI0OCwgMC43MzY2OSwgMS43NDY1MywgMy40Mjk5NywgNS4xMTQzMiwgOS4wMzg4OSwgMTEuMjc4NCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjkxODgyLCAwLjM0Mzg0NiwgMC44MTE4MTEsIDEuNTkxNjYsIDIuMzcxMTEsIDQuMTg4NTgsIDUuMjI3MDIiLCBcCi0gICAgICAgICAgIjAuMzAyNjU0LCAwLjM1NDcyNCwgMC44MjI2NDQsIDEuNjAyMzYsIDIuMzgyMTcsIDQuMTk5NiwgNS4yMzc3NSIsIFwKLSAgICAgICAgICAiMC4zMTU1MTMsIDAuMzY3NTc4LCAwLjgzNTQ1NywgMS42MTU1NSwgMi4zOTQ0NiwgNC4yMTIyMSwgNS4yNTA2NCIsIFwKLSAgICAgICAgICAiMC4zMjg1MzEsIDAuMzgwNTgzLCAwLjg0ODU2LCAxLjYyODU0LCAyLjQwNzg4LCA0LjIyNTE4LCA1LjI2MzczIiwgXAotICAgICAgICAgICIwLjM0MTU3NSwgMC4zOTM2MTQsIDAuODYxNjg1LCAxLjY0MTU3LCAyLjQyMTczLCA0LjIzODY2LCA1LjI3NjkzIiwgXAotICAgICAgICAgICIwLjM2MjQ1MywgMC40MTQ1NDksIDAuODgyNjE2LCAxLjY2MjEyLCAyLjQ0MTQzLCA0LjI1OTM5LCA1LjI5NzgxIiwgXAotICAgICAgICAgICIwLjM4MDc2MSwgMC40MzI4MjIsIDAuOTAxMDQyLCAxLjY4MTI0LCAyLjQ2MSwgNC4yNzc5MSwgNS4zMTYwOSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC41NjU2OTksIDAuNjY3OTQ4LCAxLjU4MTAzLCAzLjEwNDg3LCA0LjYyNjgsIDguMTgyMjMsIDEwLjIwODEiLCBcCi0gICAgICAgICAgIjAuNTY1NzMyLCAwLjY2NzI3OSwgMS41ODE5OSwgMy4xMDM4MywgNC42MjY3NywgOC4xODA5NiwgMTAuMjA4OSIsIFwKLSAgICAgICAgICAiMC41NjYyOTUsIDAuNjY3MzQ1LCAxLjU4MTkzLCAzLjEwNDksIDQuNjI3MTYsIDguMTgxOSwgMTAuMjA4OSIsIFwKLSAgICAgICAgICAiMC41NjYyNTgsIDAuNjY3Mjc1LCAxLjU4MTA1LCAzLjEwNDUyLCA0LjYyODMyLCA4LjE4MTIxLCAxMC4yMDg5IiwgXAotICAgICAgICAgICIwLjU2NTYwMywgMC42NjcyNywgMS41ODEwOCwgMy4xMDM3MiwgNC42MjcwNCwgOC4xODIyNCwgMTAuMjA3OCIsIFwKLSAgICAgICAgICAiMC41NjU1MzEsIDAuNjY2OTg3LCAxLjU4MTA4LCAzLjEwNDA0LCA0LjYyODcxLCA4LjE4MTg4LCAxMC4yMDg5IiwgXAotICAgICAgICAgICIwLjU2NzUxNCwgMC42Njc1MjgsIDEuNTgwOSwgMy4xMDQwMywgNC42MjgwMiwgOC4xODIyMiwgMTAuMjA3NyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMjg3MDcsIDAuMzg3ODgxLCAwLjkxODcxNSwgMS44MDM0NiwgMi42ODgwOCwgNC43NTI2MiwgNS45MzE4IiwgXAotICAgICAgICAgICIwLjMzOTg3LCAwLjM5ODgzNiwgMC45Mjk3OTYsIDEuODE0NzYsIDIuNjk5NTksIDQuNzYzNzMsIDUuOTQzMDciLCBcCi0gICAgICAgICAgIjAuMzUzNTM4LCAwLjQxMjYzMywgMC45NDM1NjcsIDEuODI4NTksIDIuNzEzNDcsIDQuNzc3NjUsIDUuOTU2NzkiLCBcCi0gICAgICAgICAgIjAuMzY3MDA3LCAwLjQyNjE2NiwgMC45NTc1NDksIDEuODQyMjMsIDIuNzI2NjMsIDQuNzkxMzMsIDUuOTcwMzQiLCBcCi0gICAgICAgICAgIjAuMzgwMTY0LCAwLjQzOTYzOCwgMC45NzEyNjcsIDEuODU2MDIsIDIuNzQwMzcsIDQuODA0ODcsIDUuOTg0MjYiLCBcCi0gICAgICAgICAgIjAuNDAxNjQxLCAwLjQ2MDgyMSwgMC45OTIzOCwgMS44Nzc4NywgMi43NjE1NSwgNC44MjYxMiwgNi4wMDU0OSIsIFwKLSAgICAgICAgICAiMC40MjA1NDcsIDAuNDc5NzUsIDEuMDExLCAxLjg5NTg5LCAyLjc4MDk2LCA0Ljg0NTE3LCA2LjAyNDM1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjYyNDUyMSwgMC43MzY3OTEsIDEuNzQ2NTcsIDMuNDI5NTIsIDUuMTE1MDYsIDkuMDM4MzEsIDExLjI3ODUiLCBcCi0gICAgICAgICAgIjAuNjI0NzU3LCAwLjczNjgzNywgMS43NDY2LCAzLjQzNzgzLCA1LjExNjI3LCA5LjAzOTIzLCAxMS4yNzkiLCBcCi0gICAgICAgICAgIjAuNjI0NjgsIDAuNzM2NzQyLCAxLjc0NzIzLCAzLjQzODExLCA1LjExNjA0LCA5LjAzNzczLCAxMS4yNzg5IiwgXAotICAgICAgICAgICIwLjYyNDU2MywgMC43MzY4MTIsIDEuNzQ2NCwgMy40MzIzOCwgNS4xMTQ5MiwgOS4wMzc3NywgMTEuMjc4NyIsIFwKLSAgICAgICAgICAiMC42MjQ1NjMsIDAuNzM2NjMzLCAxLjc0NjY3LCAzLjQzMDQ2LCA1LjExNDUyLCA5LjAzNzY2LCAxMS4yNzg1IiwgXAotICAgICAgICAgICIwLjYyNDUzNywgMC43MzY3MSwgMS43NDY0NCwgMy40MzA4NCwgNS4xMTQ4MiwgOS4wMzc2MiwgMTEuMjc4NyIsIFwKLSAgICAgICAgICAiMC42MjU0MTcsIDAuNzM2Nzk5LCAxLjc0NjU5LCAzLjQzNzc2LCA1LjExNjI2LCA5LjAzNzgzLCAxMS4yNzg2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTkzNCwgMC4wMDE5MzQsIDAuMDAxOTM0LCAwLjAwMTkzMiwgMC4wMDE5MzIsIDAuMDAxOTMsIDAuMDAxOTI3IiwgXAotICAgICAgICAgICIwLjAwMTkzMSwgMC4wMDE5MzEsIDAuMDAxOTMyLCAwLjAwMTkyOSwgMC4wMDE5MzIsIDAuMDAxOTI2LCAwLjAwMTkyNCIsIFwKLSAgICAgICAgICAiMC4wMDE5MjksIDAuMDAxOTI5LCAwLjAwMTkyOSwgMC4wMDE5MjgsIDAuMDAxOTI3LCAwLjAwMTkyNSwgMC4wMDE5MjMiLCBcCi0gICAgICAgICAgIjAuMDAxOTI5LCAwLjAwMTkyOSwgMC4wMDE5MywgMC4wMDE5MjksIDAuMDAxOTI5LCAwLjAwMTkyNiwgMC4wMDE5MjQiLCBcCi0gICAgICAgICAgIjAuMDAxOTI4LCAwLjAwMTkyOSwgMC4wMDE5MjksIDAuMDAxOTI5LCAwLjAwMTkyOCwgMC4wMDE5MjUsIDAuMDAxOTIzIiwgXAotICAgICAgICAgICIwLjAwMTkyOCwgMC4wMDE5MjgsIDAuMDAxOTI5LCAwLjAwMTkyOCwgMC4wMDE5MjgsIDAuMDAxOTI1LCAwLjAwMTkyNCIsIFwKLSAgICAgICAgICAiMC4wMDE5MjcsIDAuMDAxOTI3LCAwLjAwMTkyOSwgMC4wMDE5MjgsIDAuMDAxOTI4LCAwLjAwMTkyNSwgMC4wMDE5MjMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDA2MjQsIDAuMDAwNjI0LCAwLjAwMDYyMywgMC4wMDA2MjUsIDAuMDAwNjIyLCAwLjAwMDYxOSwgMC4wMDA2MTgiLCBcCi0gICAgICAgICAgIjAuMDAwNjE5LCAwLjAwMDYxOSwgMC4wMDA2MTgsIDAuMDAwNjE5LCAwLjAwMDYxNiwgMC4wMDA2MTUsIDAuMDAwNjEzIiwgXAotICAgICAgICAgICIwLjAwMDYxNiwgMC4wMDA2MTYsIDAuMDAwNjE3LCAwLjAwMDYxNywgMC4wMDA2MTUsIDAuMDAwNjEzLCAwLjAwMDYxMiIsIFwKLSAgICAgICAgICAiMC4wMDA2MTQsIDAuMDAwNjE0LCAwLjAwMDYxNiwgMC4wMDA2MTUsIDAuMDAwNjE1LCAwLjAwMDYxMywgMC4wMDA2MTEiLCBcCi0gICAgICAgICAgIjAuMDAwNjEyLCAwLjAwMDYxMywgMC4wMDA2MTUsIDAuMDAwNjE2LCAwLjAwMDYxNCwgMC4wMDA2MTMsIDAuMDAwNjExIiwgXAotICAgICAgICAgICIwLjAwMDYwOSwgMC4wMDA2MSwgMC4wMDA2MTQsIDAuMDAwNjE0LCAwLjAwMDYxNCwgMC4wMDA2MTIsIDAuMDAwNjEiLCBcCi0gICAgICAgICAgIjAuMDAwNjA1LCAwLjAwMDYwOCwgMC4wMDA2MTIsIDAuMDAwNjE0LCAwLjAwMDYxMywgMC4wMDA2MTEsIDAuMDAwNjEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxNzMsIDAuMDAxNzMsIDAuMDAxNzMsIDAuMDAxNzI5LCAwLjAwMTcyOCwgMC4wMDE3MjcsIDAuMDAxNzI3IiwgXAotICAgICAgICAgICIwLjAwMTczMSwgMC4wMDE3MzIsIDAuMDAxNzMyLCAwLjAwMTczMiwgMC4wMDE3MzUsIDAuMDAxNzI5LCAwLjAwMTcyOCIsIFwKLSAgICAgICAgICAiMC4wMDE3MywgMC4wMDE3MywgMC4wMDE3MzEsIDAuMDAxNzMxLCAwLjAwMTczMSwgMC4wMDE3MywgMC4wMDE3MjgiLCBcCi0gICAgICAgICAgIjAuMDAxNzI5LCAwLjAwMTczLCAwLjAwMTczMiwgMC4wMDE3MzIsIDAuMDAxNzMzLCAwLjAwMTczMSwgMC4wMDE3MyIsIFwKLSAgICAgICAgICAiMC4wMDE3MjgsIDAuMDAxNzI5LCAwLjAwMTczMSwgMC4wMDE3MzIsIDAuMDAxNzMyLCAwLjAwMTczMSwgMC4wMDE3MyIsIFwKLSAgICAgICAgICAiMC4wMDE3MjYsIDAuMDAxNzI3LCAwLjAwMTczMSwgMC4wMDE3MzIsIDAuMDAxNzMyLCAwLjAwMTczMSwgMC4wMDE3MyIsIFwKLSAgICAgICAgICAiMC4wMDE3MjQsIDAuMDAxNzI1LCAwLjAwMTczLCAwLjAwMTczMSwgMC4wMDE3MzIsIDAuMDAxNzMsIDAuMDAxNzI5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwNjI0LCAwLjAwMDYyNCwgMC4wMDA2MjQsIDAuMDAwNjIzLCAwLjAwMDYyMiwgMC4wMDA2MTksIDAuMDAwNjE4IiwgXAotICAgICAgICAgICIwLjAwMDYxOCwgMC4wMDA2MTgsIDAuMDAwNjE4LCAwLjAwMDYxOSwgMC4wMDA2MTcsIDAuMDAwNjE0LCAwLjAwMDYxMyIsIFwKLSAgICAgICAgICAiMC4wMDA2MTUsIDAuMDAwNjE1LCAwLjAwMDYxNiwgMC4wMDA2MTYsIDAuMDAwNjE2LCAwLjAwMDYxMywgMC4wMDA2MTIiLCBcCi0gICAgICAgICAgIjAuMDAwNjEyLCAwLjAwMDYxMywgMC4wMDA2MTUsIDAuMDAwNjE1LCAwLjAwMDYxNCwgMC4wMDA2MTIsIDAuMDAwNjExIiwgXAotICAgICAgICAgICIwLjAwMDYxLCAwLjAwMDYxMSwgMC4wMDA2MTQsIDAuMDAwNjE1LCAwLjAwMDYxNCwgMC4wMDA2MTIsIDAuMDAwNjExIiwgXAotICAgICAgICAgICIwLjAwMDYwOCwgMC4wMDA2MDksIDAuMDAwNjEzLCAwLjAwMDYxNCwgMC4wMDA2MTMsIDAuMDAwNjEyLCAwLjAwMDYxIiwgXAotICAgICAgICAgICIwLjAwMDYwNiwgMC4wMDA2MDcsIDAuMDAwNjExLCAwLjAwMDYxMywgMC4wMDA2MTMsIDAuMDAwNjExLCAwLjAwMDYxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTM3MiwgMC4wMDEzNzIsIDAuMDAxMzcxLCAwLjAwMTM3LCAwLjAwMTM2OCwgMC4wMDEzNjYsIDAuMDAxMzY0IiwgXAotICAgICAgICAgICIwLjAwMTM2OCwgMC4wMDEzNjgsIDAuMDAxMzY4LCAwLjAwMTM2NiwgMC4wMDEzNjYsIDAuMDAxMzY1LCAwLjAwMTM2MSIsIFwKLSAgICAgICAgICAiMC4wMDEzNjYsIDAuMDAxMzY2LCAwLjAwMTM2NywgMC4wMDEzNjYsIDAuMDAxMzY1LCAwLjAwMTM2MywgMC4wMDEzNjEiLCBcCi0gICAgICAgICAgIjAuMDAxMzY0LCAwLjAwMTM2NSwgMC4wMDEzNjYsIDAuMDAxMzY2LCAwLjAwMTM2NSwgMC4wMDEzNjIsIDAuMDAxMzYiLCBcCi0gICAgICAgICAgIjAuMDAxMzYzLCAwLjAwMTM2NCwgMC4wMDEzNjUsIDAuMDAxMzY1LCAwLjAwMTM2NCwgMC4wMDEzNjIsIDAuMDAxMzYiLCBcCi0gICAgICAgICAgIjAuMDAxMzYyLCAwLjAwMTM2MiwgMC4wMDEzNjQsIDAuMDAxMzY1LCAwLjAwMTM2NCwgMC4wMDEzNjIsIDAuMDAxMzYiLCBcCi0gICAgICAgICAgIjAuMDAxMzYsIDAuMDAxMzYxLCAwLjAwMTM2NCwgMC4wMDEzNjQsIDAuMDAxMzY0LCAwLjAwMTM2MiwgMC4wMDEzNTkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDAxOTUsIDAuMDAwMTk1LCAwLjAwMDE5NiwgMC4wMDAxOTYsIDAuMDAwMTk2LCAwLjAwMDE5NiwgMC4wMDAxOTYiLCBcCi0gICAgICAgICAgIjAuMDAwMiwgMC4wMDAyMDEsIDAuMDAwMjAyLCAwLjAwMDIwMywgMC4wMDAyMDMsIDAuMDAwMjAzLCAwLjAwMDIwMyIsIFwKLSAgICAgICAgICAiMC4wMDAxOTksIDAuMDAwMiwgMC4wMDAyMDQsIDAuMDAwMjA1LCAwLjAwMDIwNSwgMC4wMDAyMDYsIDAuMDAwMjA2IiwgXAotICAgICAgICAgICIwLjAwMDE5NywgMC4wMDAxOTksIDAuMDAwMjAzLCAwLjAwMDIwNSwgMC4wMDAyMDYsIDAuMDAwMjA2LCAwLjAwMDIwNiIsIFwKLSAgICAgICAgICAiMC4wMDAxOTUsIDAuMDAwMTk3LCAwLjAwMDIwMywgMC4wMDAyMDUsIDAuMDAwMjA2LCAwLjAwMDIwNywgMC4wMDAyMDciLCBcCi0gICAgICAgICAgIjAuMDAwMTkyLCAwLjAwMDE5NCwgMC4wMDAyMDEsIDAuMDAwMjA0LCAwLjAwMDIwNiwgMC4wMDAyMDYsIDAuMDAwMjA3IiwgXAotICAgICAgICAgICIwLjAwMDE4OCwgMC4wMDAxOTEsIDAuMDAwMiwgMC4wMDAyMDQsIDAuMDAwMjA1LCAwLjAwMDIwNiwgMC4wMDAyMDciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxMTY2LCAwLjAwMTE2NiwgMC4wMDExNjYsIDAuMDAxMTY2LCAwLjAwMTE2NSwgMC4wMDExNjQsIDAuMDAxMTYzIiwgXAotICAgICAgICAgICIwLjAwMTE2NywgMC4wMDExNjcsIDAuMDAxMTY4LCAwLjAwMTE2OCwgMC4wMDExNjcsIDAuMDAxMTY2LCAwLjAwMTE2NSIsIFwKLSAgICAgICAgICAiMC4wMDExNjYsIDAuMDAxMTY2LCAwLjAwMTE2OCwgMC4wMDExNjksIDAuMDAxMTY3LCAwLjAwMTE2NywgMC4wMDExNjYiLCBcCi0gICAgICAgICAgIjAuMDAxMTY0LCAwLjAwMTE2NSwgMC4wMDExNjgsIDAuMDAxMTY4LCAwLjAwMTE2OCwgMC4wMDExNjcsIDAuMDAxMTY2IiwgXAotICAgICAgICAgICIwLjAwMTE2MiwgMC4wMDExNjMsIDAuMDAxMTY3LCAwLjAwMTE2OCwgMC4wMDExNjcsIDAuMDAxMTY3LCAwLjAwMTE2NiIsIFwKLSAgICAgICAgICAiMC4wMDExNiwgMC4wMDExNjEsIDAuMDAxMTY2LCAwLjAwMTE2NywgMC4wMDExNjcsIDAuMDAxMTY2LCAwLjAwMTE2NiIsIFwKLSAgICAgICAgICAiMC4wMDExNTgsIDAuMDAxMTU5LCAwLjAwMTE2NSwgMC4wMDExNjYsIDAuMDAxMTY3LCAwLjAwMTE2NiwgMC4wMDExNjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDAxOTUsIDAuMDAwMTk1LCAwLjAwMDE5NiwgMC4wMDAxOTYsIDAuMDAwMTk2LCAwLjAwMDE5NiwgMC4wMDAxOTYiLCBcCi0gICAgICAgICAgIjAuMDAwMiwgMC4wMDAyLCAwLjAwMDIwMiwgMC4wMDAyMDMsIDAuMDAwMjAzLCAwLjAwMDIwMywgMC4wMDAyMDMiLCBcCi0gICAgICAgICAgIjAuMDAwMTk5LCAwLjAwMDIsIDAuMDAwMjAzLCAwLjAwMDIwNSwgMC4wMDAyMDUsIDAuMDAwMjA2LCAwLjAwMDIwNiIsIFwKLSAgICAgICAgICAiMC4wMDAxOTcsIDAuMDAwMTk4LCAwLjAwMDIwMywgMC4wMDAyMDUsIDAuMDAwMjA2LCAwLjAwMDIwNiwgMC4wMDAyMDciLCBcCi0gICAgICAgICAgIjAuMDAwMTk0LCAwLjAwMDE5NiwgMC4wMDAyMDIsIDAuMDAwMjA1LCAwLjAwMDIwNiwgMC4wMDAyMDcsIDAuMDAwMjA3IiwgXAotICAgICAgICAgICIwLjAwMDE5LCAwLjAwMDE5MywgMC4wMDAyMDEsIDAuMDAwMjA0LCAwLjAwMDIwNiwgMC4wMDAyMDcsIDAuMDAwMjA3IiwgXAotICAgICAgICAgICIwLjAwMDE4NywgMC4wMDAxOSwgMC4wMDAyLCAwLjAwMDIwNCwgMC4wMDAyMDUsIDAuMDAwMjA3LCAwLjAwMDIwNyIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogQU9JMkJCMVgyICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoQU9JMkJCMVgyKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMTM0NTkyOwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBME4pICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYwMjUxMzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA1OTkyMzk7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjAyNTEzOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDg3MiwgMC4wMDA4NiwgMC4wMDA4NTQsIDAuMDAwODUsIDAuMDAwODQ2LCAwLjAwMDg0MywgMC4wMDA4NDMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDIyNTQsIDAuMDAyMjQ4LCAwLjAwMjI0MywgMC4wMDIyNCwgMC4wMDIyMzgsIDAuMDAyMjM2LCAwLjAwMjIzNiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQTFOKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2MDY4MDg7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjA2NzY4OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDYwNjgwODsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA2NzMsIDAuMDAwNjY2LCAwLjAwMDY1NiwgMC4wMDA2NDksIDAuMDAwNjQzLCAwLjAwMDYzOCwgMC4wMDA2MzciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDIxMTUsIDAuMDAyMTA1LCAwLjAwMjA5OCwgMC4wMDIwOTQsIDAuMDAyMDkyLCAwLjAwMjA5LCAwLjAwMjA5Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNjg5Mjc7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNjc3MjM7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNjg5Mjc7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNTYyLCAwLjAwMDU4OSwgMC4wMDA1OTUsIDAuMDAwNTk3LCAwLjAwMDU5OCwgMC4wMDA1OTksIDAuMDAwNiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDYyLCAwLjAwMDYyMSwgMC4wMDA2MjEsIDAuMDAwNjIxLCAwLjAwMDYyMSwgMC4wMDA2MjEsIDAuMDAwNjIxIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMTQxNDA0OwotICAgIGZ1bmN0aW9uIDogIighKCghKEEwTitBMU4pKStCMCkpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBME4iOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE1NTUyNCwgMC41MjU0NTUsIDAuODIwOTkyLCAxLjE5MDIzLCAxLjU1OTUsIDEuOTI4NzQsIDIuMjk4MTEiLCBcCi0gICAgICAgICAgIjAuMTY3MjM3LCAwLjUzNzIsIDAuODMyNjkxLCAxLjIwMTk5LCAxLjU3MTIzLCAxLjk0MDYyLCAyLjMwOTcxIiwgXAotICAgICAgICAgICIwLjE4MjQyMywgMC41NTI0MTIsIDAuODQ3OTQyLCAxLjIxNzIxLCAxLjU4NjQ1LCAxLjk1NTcyLCAyLjMyNDk5IiwgXAotICAgICAgICAgICIwLjE5Nzc5MiwgMC41Njc4NTQsIDAuODYzMzc0LCAxLjIzMjY3LCAxLjYwMTkzLCAxLjk3MTI0LCAyLjM0MDQxIiwgXAotICAgICAgICAgICIwLjIxMzEyNCwgMC41ODMyMjUsIDAuODc4NzM4LCAxLjI0ODA2LCAxLjYxNzMxLCAxLjk4NjY3LCAyLjM1NTgiLCBcCi0gICAgICAgICAgIjAuMjM3MTEsIDAuNjA3MjM2LCAwLjkwMjc2OSwgMS4yNzIwOSwgMS42NDEzNSwgMi4wMTA3LCAyLjM3OTgzIiwgXAotICAgICAgICAgICIwLjI1NzkzOCwgMC42MjgwMjgsIDAuOTIzNTY4LCAxLjI5MjksIDEuNjYyMTgsIDIuMDMxNDEsIDIuNDAwNjUiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTc3NTE4LCAwLjg5ODM2LCAxLjQ3NDMxLCAyLjE5OTQsIDIuOTIyMzksIDMuNjQ1MjksIDQuMzY0MDUiLCBcCi0gICAgICAgICAgIjAuMTc3NTUsIDAuODk4MDQxLCAxLjQ3NjAxLCAyLjE5ODUxLCAyLjkyMjI5LCAzLjY1MDgyLCA0LjM2NzA1IiwgXAotICAgICAgICAgICIwLjE3NzUxMSwgMC44OTgxNiwgMS40NzUzNSwgMi4xOTkxMSwgMi45MjE1MiwgMy42NDQ4NiwgNC4zNzQ0IiwgXAotICAgICAgICAgICIwLjE3NzUzOCwgMC44OTgxMDYsIDEuNDc4NiwgMi4xOTg2OCwgMi45MjYzMSwgMy42NDExLCA0LjM2NzU5IiwgXAotICAgICAgICAgICIwLjE3NzU2NSwgMC44OTgwOTMsIDEuNDc2NjUsIDIuMTk4NywgMi45MjIxNywgMy42NTA1MSwgNC4zNjc0MSIsIFwKLSAgICAgICAgICAiMC4xNzc2NzIsIDAuODk3OTQ2LCAxLjQ3NTg2LCAyLjE5ODc1LCAyLjkyMTksIDMuNjUwNDMsIDQuMzY2NDQiLCBcCi0gICAgICAgICAgIjAuMTc3ODg2LCAwLjg5ODI2MywgMS40NzYzNywgMi4xOTgzNywgMi45MjE5OSwgMy42NDM2MiwgNC4zNjY3OSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNjkxMzYsIDAuMzgyNTAzLCAwLjU1MDE1MSwgMC43NTk1MTksIDAuOTY5MTk2LCAxLjE3ODM2LCAxLjM4ODMzIiwgXAotICAgICAgICAgICIwLjE4MDkyOSwgMC4zOTQwNTUsIDAuNTYxNjgsIDAuNzcxMDYyLCAwLjk4MDcwNCwgMS4xOSwgMS4zOTk5NCIsIFwKLSAgICAgICAgICAiMC4xOTM4NTUsIDAuNDA3MDIxLCAwLjU3NDY5MSwgMC43ODQwNjQsIDAuOTkzNjEzLCAxLjIwMjk4LCAxLjQxMzEyIiwgXAotICAgICAgICAgICIwLjIwNjE5OCwgMC40MTk1ODEsIDAuNTg3MjM5LCAwLjc5NjYwMSwgMS4wMDYxNSwgMS4yMTU1NywgMS40MjUwNSIsIFwKLSAgICAgICAgICAiMC4yMTg2MjcsIDAuNDMxOTY4LCAwLjU5OTU0OSwgMC44MDg5NzEsIDEuMDE4NTksIDEuMjI3OTcsIDEuNDM3ODEiLCBcCi0gICAgICAgICAgIjAuMjM4MDgzLCAwLjQ1MTQ0NSwgMC42MTkxMTMsIDAuODI4NTk5LCAxLjAzODIxLCAxLjI0Nzg4LCAxLjQ1NzQyIiwgXAotICAgICAgICAgICIwLjI1NDY1NSwgMC40NjgwMzQsIDAuNjM1NzI1LCAwLjg0NTA5MywgMS4wNTQ2MSwgMS4yNjQwNCwgMS40NzM5OSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTgzOTksIDAuNTIyNjQ5LCAwLjg1NDA1MiwgMS4yNzA5NSwgMS42ODQ5MSwgMi4xMDQ1OCwgMi41MTI4MSIsIFwKLSAgICAgICAgICAiMC4xMTgzNywgMC41MjE0MTcsIDAuODU0ODczLCAxLjI3MDk0LCAxLjY4MzQ3LCAyLjEwMjUzLCAyLjUxMjY0IiwgXAotICAgICAgICAgICIwLjExODI5OSwgMC41MjI2NjQsIDAuODUyMjU1LCAxLjI3MDk5LCAxLjY4MTczLCAyLjA5Njg5LCAyLjUxNjYiLCBcCi0gICAgICAgICAgIjAuMTE4MzczLCAwLjUyMTQ0MiwgMC44NTIyNDcsIDEuMjY5NjgsIDEuNjgxMDEsIDIuMTAxMzUsIDIuNTE2MTgiLCBcCi0gICAgICAgICAgIjAuMTE4MTg3LCAwLjUyMTQyOSwgMC44NTQ4OTEsIDEuMjcwOTMsIDEuNjgyNzQsIDIuMTAwOTYsIDIuNTEyODIiLCBcCi0gICAgICAgICAgIjAuMTE4MTgzLCAwLjUyMzE3LCAwLjg1MjQ0MywgMS4yNjYyMywgMS42ODQ2MiwgMi4wOTcyMSwgMi41MTIzNiIsIFwKLSAgICAgICAgICAiMC4xMTg4NCwgMC41MjIxNTUsIDAuODUyNjU3LCAxLjI3MDk1LCAxLjY4MzUxLCAyLjA5Njg4LCAyLjUxMjU0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkExTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTQ5NTM3LCAwLjUxOTIwOSwgMC44MTUwMzMsIDEuMTg0MSwgMS41NTM1OCwgMS45MjI2NSwgMi4yOTIyMSIsIFwKLSAgICAgICAgICAiMC4xNjE2NjIsIDAuNTMxMzQ0LCAwLjgyNjkyNSwgMS4xOTYzNCwgMS41NjU1MiwgMS45MzU2NSwgMi4zMDM5OSIsIFwKLSAgICAgICAgICAiMC4xNzY3NTUsIDAuNTQ2NTU0LCAwLjg0MjA1NywgMS4yMTE0NywgMS41ODEyOCwgMS45NTAxNCwgMi4zMjAzNiIsIFwKLSAgICAgICAgICAiMC4xOTE5NzgsIDAuNTYxODM5LCAwLjg1NzM3OCwgMS4yMjc1MiwgMS41OTYwNiwgMS45NjU4OSwgMi4zMzQ3OCIsIFwKLSAgICAgICAgICAiMC4yMDY3NDYsIDAuNTc2Njg5LCAwLjg3MjM4NywgMS4yNDIsIDEuNjExOTcsIDEuOTgwMjQsIDIuMzQ5OSIsIFwKLSAgICAgICAgICAiMC4yMzA4NzcsIDAuNjAwNzk0LCAwLjg5NjM3OCwgMS4yNjU2NCwgMS42MzU3NywgMi4wMDQzNCwgMi4zNzQ1IiwgXAotICAgICAgICAgICIwLjI1MDkxOCwgMC42MjA3NSwgMC45MTY1MDksIDEuMjg1NzMsIDEuNjU0OTksIDIuMDI1MDEsIDIuMzk0MjQiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTc2NjMzLCAwLjg5OTg1MSwgMS40NzQ5MywgMi4yMDQyMSwgMi45Mjg1NiwgMy42NDk1NCwgNC4zNzgyOCIsIFwKLSAgICAgICAgICAiMC4xNzcwMjYsIDAuODk5ODQ3LCAxLjQ3OTY1LCAyLjIwMjUyLCAyLjkzNzQ2LCAzLjY0MTY3LCA0LjM3NDUiLCBcCi0gICAgICAgICAgIjAuMTc3MDQ0LCAwLjg5OTEyNSwgMS40ODM1OCwgMi4yMDQxNiwgMi45Mjk3MiwgMy42NDk4MiwgNC4zNjQwMSIsIFwKLSAgICAgICAgICAiMC4xNzY5OTEsIDAuODk5ODU0LCAxLjQ4MzkyLCAyLjE5NjksIDIuOTI2MzgsIDMuNjU0NjcsIDQuMzczOTYiLCBcCi0gICAgICAgICAgIjAuMTc3MTQsIDAuODk5ODk2LCAxLjQ3OTc3LCAyLjE5NzA5LCAyLjkxOTA3LCAzLjY1MzExLCA0LjM2Nzg0IiwgXAotICAgICAgICAgICIwLjE3NzIzNCwgMC45MDI4NzMsIDEuNDc2MTEsIDIuMjAxOTYsIDIuOTE5NjksIDMuNjUwNiwgNC4zNjQ1NSIsIFwKLSAgICAgICAgICAiMC4xNzc3MDcsIDAuODk5NzgxLCAxLjQ3OTY5LCAyLjIwMzg4LCAyLjkzNjQsIDMuNjQxODcsIDQuMzc4MzMiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTYyNTQ1LCAwLjM3NTc4MywgMC41NDM0MzcsIDAuNzUyODA1LCAwLjk2MjM1NSwgMS4xNzE2NiwgMS4zODE2OCIsIFwKLSAgICAgICAgICAiMC4xNzI4NTgsIDAuMzg1OTg3LCAwLjU1MzU3MywgMC43NjI5OTksIDAuOTcyNjU3LCAxLjE4MTkxLCAxLjM5MTg3IiwgXAotICAgICAgICAgICIwLjE4NTI2MywgMC4zOTg2NTUsIDAuNTY2Mjc4LCAwLjc3NTY3NywgMC45ODUwODgsIDEuMTk0NTksIDEuNDA0NDYiLCBcCi0gICAgICAgICAgIjAuMTk4Nzk5LCAwLjQxMjA1MiwgMC41Nzk2NTMsIDAuNzg5MDg0LCAwLjk5ODY4NiwgMS4yMDgwNywgMS40MTc5NiIsIFwKLSAgICAgICAgICAiMC4yMTIwOTQsIDAuNDI1NDAyLCAwLjU5MzA3NiwgMC44MDI0NTgsIDEuMDEyLCAxLjIyMTM4LCAxLjQzMTQ5IiwgXAotICAgICAgICAgICIwLjIzMzI4OCwgMC40NDY2MjgsIDAuNjE0MjczLCAwLjgyMzY3MSwgMS4wMzMzLCAxLjI0MjY4LCAxLjQ1MjAyIiwgXAotICAgICAgICAgICIwLjI1MTY1NCwgMC40NjUwNzEsIDAuNjMyNzY4LCAwLjg0MjIyMiwgMS4wNTE5NywgMS4yNjExMywgMS40NzEwOSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTgyMDcsIDAuNTIyNDAyLCAwLjg1NDkzNSwgMS4yNzA5NSwgMS42ODExNiwgMi4wOTkyMywgMi41MTI1OSIsIFwKLSAgICAgICAgICAiMC4xMTgzMjMsIDAuNTIxNjUsIDAuODUyNjA3LCAxLjI3MDk0LCAxLjY4NDI3LCAyLjEwMzE1LCAyLjUxMjY1IiwgXAotICAgICAgICAgICIwLjExODMyNywgMC41MjEzNzYsIDAuODUyNzAzLCAxLjI3MTA0LCAxLjY4Nzc1LCAyLjEwMTI5LCAyLjUxMjczIiwgXAotICAgICAgICAgICIwLjExODMxOSwgMC41MjE1NTYsIDAuODU0ODI3LCAxLjI2OTk1LCAxLjY4MjU2LCAyLjEwMDMxLCAyLjUxMjYiLCBcCi0gICAgICAgICAgIjAuMTE4MjYsIDAuNTIzMjU4LCAwLjg1MjIzOSwgMS4yNzA5OCwgMS42ODEwNywgMi4wOTY5NCwgMi41MTE5OSIsIFwKLSAgICAgICAgICAiMC4xMTg1NDcsIDAuNTIxNDE4LCAwLjg1NDg3NSwgMS4yNzA5NCwgMS42ODI3NCwgMi4xMDA5MywgMi41MTIzOCIsIFwKLSAgICAgICAgICAiMC4xMTg3MDgsIDAuNTIxNjQ3LCAwLjg1MjY2MiwgMS4yNjgzLCAxLjY4MjczLCAyLjEwMTkzLCAyLjUxMjQzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDIyNTUsIDAuNDcxNzcyLCAwLjc2NzI1NCwgMS4xMzY4OCwgMS41MDU4NCwgMS44NzYyMiwgMi4yNDUwNyIsIFwKLSAgICAgICAgICAiMC4xMTMzODQsIDAuNDgzMDc5LCAwLjc3ODUyMiwgMS4xNDc5OSwgMS41MTcxNCwgMS44ODcxMiwgMi4yNTYzNiIsIFwKLSAgICAgICAgICAiMC4xMjU2ODcsIDAuNDk1NTM2LCAwLjc5MTEyNSwgMS4xNjA5NCwgMS41Mjk2MywgMS44OTk2LCAyLjI2ODIyIiwgXAotICAgICAgICAgICIwLjEzNzcxNCwgMC41MDc3NzYsIDAuODAzMjExLCAxLjE3MzEsIDEuNTQyNTUsIDEuOTExMjUsIDIuMjgxOSIsIFwKLSAgICAgICAgICAiMC4xNDk3MTksIDAuNTIwMDU3LCAwLjgxNTQwMiwgMS4xODU0OSwgMS41NTQ0MiwgMS45MjMzNywgMi4yOTMwMiIsIFwKLSAgICAgICAgICAiMC4xNjkwNzgsIDAuNTM5NDg0LCAwLjgzNTE2NiwgMS4yMDQ0NiwgMS41NzM4NSwgMS45NDQxOCwgMi4zMTI1MiIsIFwKLSAgICAgICAgICAiMC4xODYwMTgsIDAuNTU2NjMzLCAwLjg1MjQyMywgMS4yMjE3NCwgMS41OTExMiwgMS45NjE3NywgMi4zMzAyMiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNzU3NjcsIDAuOTAyODQ2LCAxLjQ3ODI3LCAyLjIwMzA5LCAyLjkzNjQ4LCAzLjY1MjgxLCA0LjM3ODY0IiwgXAotICAgICAgICAgICIwLjE3NTcyNCwgMC44OTk4ODUsIDEuNDc4NjksIDIuMjAzMDEsIDIuOTM2OTksIDMuNjQxODIsIDQuMzc4MzQiLCBcCi0gICAgICAgICAgIjAuMTc1NzE1LCAwLjg5OTg5MywgMS40ODIxMywgMi4yMDI2LCAyLjkyNjEyLCAzLjY1NDY5LCA0LjM3NzUyIiwgXAotICAgICAgICAgICIwLjE3NjUwOSwgMC45MDAwNiwgMS40ODI2MywgMi4yMDIwMSwgMi45MjE2OCwgMy42NTI4NywgNC4zNzQzMSIsIFwKLSAgICAgICAgICAiMC4xNzgxNTQsIDAuODk4NzYxLCAxLjQ3ODkxLCAyLjE5NywgMi45MjI2OCwgMy42NTI5NCwgNC4zNzcwOCIsIFwKLSAgICAgICAgICAiMC4xODMyOTEsIDAuOTAxMTIyLCAxLjQ3OTQzLCAyLjIxMDkxLCAyLjkyODM5LCAzLjY0MTcxLCA0LjM3Nzc5IiwgXAotICAgICAgICAgICIwLjE4ODg4OSwgMC44OTg4NTgsIDEuNDc5NjIsIDIuMjAzODUsIDIuOTI1ODQsIDMuNjQxOSwgNC4zNzg0NyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTgxOTksIDAuMjY0NTE4LCAwLjQyOTMyNCwgMC42MzUyMjEsIDAuODQxMTUzLCAxLjA0NjksIDEuMjUzMDUiLCBcCi0gICAgICAgICAgIjAuMDY5ODA2LCAwLjI3NTY5NSwgMC40NDAzODUsIDAuNjQ2MjExLCAwLjg1MTkwMiwgMS4wNTc3NiwgMS4yNjM4IiwgXAotICAgICAgICAgICIwLjA4NDksIDAuMjkxMTIyLCAwLjQ1NTg0LCAwLjY2MTg2MiwgMC44Njc3MTcsIDEuMDczNTEsIDEuMjc5MTMiLCBcCi0gICAgICAgICAgIjAuMDk5NzA5LCAwLjMwNTM4MywgMC40NzAwNzgsIDAuNjc1MzM1LCAwLjg3NzU4NywgMS4wODM1LCAxLjI4OTI2IiwgXAotICAgICAgICAgICIwLjExNDk3MywgMC4zMjAwNTYsIDAuNDg0NzA0LCAwLjY5MDYxMSwgMC44OTU4MDQsIDEuMDk2OTMsIDEuMzAyODgiLCBcCi0gICAgICAgICAgIjAuMTM5MDU4LCAwLjM0Mzg5MywgMC41MDgzMjQsIDAuNzE0Mjc1LCAwLjkyMDQwNCwgMS4xMjU2NywgMS4zMzAzNiIsIFwKLSAgICAgICAgICAiMC4xNTkzNDUsIDAuMzY1NzU3LCAwLjUyOTAyNiwgMC43MzQ5MzYsIDAuOTQwNzM3LCAxLjE0NjczLCAxLjM1MjA1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwMDg0OCwgMC41MDkwMTYsIDAuODM1NjMzLCAxLjI0MzQ2LCAxLjY1MTM3LCAyLjA1OTM2LCAyLjQ2NzY2IiwgXAotICAgICAgICAgICIwLjEwMDgyNCwgMC41MDg5NCwgMC44MzUyNTcsIDEuMjQzMTIsIDEuNjUxMzUsIDIuMDU4ODksIDIuNDY3NzgiLCBcCi0gICAgICAgICAgIjAuMTAyMjQ5LCAwLjUwOTAyNSwgMC44MzUzMywgMS4yNDMzNywgMS42NTE2MywgMi4wNTkyNywgMi40Njc1NSIsIFwKLSAgICAgICAgICAiMC4xMDY0NDksIDAuNTA4OTk4LCAwLjgzNTUxNSwgMS4yNDMzOSwgMS42NTE2NiwgMi4wNTkyNSwgMi40NjcxNSIsIFwKLSAgICAgICAgICAiMC4xMTE5NzcsIDAuNTA4OTI1LCAwLjgzNTQ5NywgMS4yNDMzMywgMS42NTE0MywgMi4wNTkzMSwgMi40Njc1NyIsIFwKLSAgICAgICAgICAiMC4xMjMwOTQsIDAuNTA5MzE1LCAwLjgzNTMwMSwgMS4yNDMzNSwgMS42NTE0MiwgMi4wNTkzMSwgMi40NjczMSIsIFwKLSAgICAgICAgICAiMC4xMzQyMjEsIDAuNTEwODU3LCAwLjgzNTM3MiwgMS4yNDMzNCwgMS42NTEzMSwgMi4wNTk1NSwgMi40NjczMyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEwTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyNTA5LCAwLjAwMjU0LCAwLjAwMjU0NCwgMC4wMDI1NDUsIDAuMDAyNTQ2LCAwLjAwMjU0NywgMC4wMDI1NDciLCBcCi0gICAgICAgICAgIjAuMDAyNDk1LCAwLjAwMjUyOCwgMC4wMDI1MzEsIDAuMDAyNTMzLCAwLjAwMjUzNCwgMC4wMDI1MzQsIDAuMDAyNTM1IiwgXAotICAgICAgICAgICIwLjAwMjQ4NCwgMC4wMDI1MiwgMC4wMDI1MjUsIDAuMDAyNTI3LCAwLjAwMjUyNywgMC4wMDI1MjcsIDAuMDAyNTI4IiwgXAotICAgICAgICAgICIwLjAwMjQ3NCwgMC4wMDI1MTMsIDAuMDAyNTE4LCAwLjAwMjUyMSwgMC4wMDI1MjIsIDAuMDAyNTIzLCAwLjAwMjUyNCIsIFwKLSAgICAgICAgICAiMC4wMDI0NjUsIDAuMDAyNTA4LCAwLjAwMjUxNSwgMC4wMDI1MTcsIDAuMDAyNTIsIDAuMDAyNTIsIDAuMDAyNTIxIiwgXAotICAgICAgICAgICIwLjAwMjQ1NCwgMC4wMDI1MDIsIDAuMDAyNTA5LCAwLjAwMjUxMywgMC4wMDI1MTUsIDAuMDAyNTE2LCAwLjAwMjUxNyIsIFwKLSAgICAgICAgICAiMC4wMDI0NDksIDAuMDAyNDk5LCAwLjAwMjUwNywgMC4wMDI1MSwgMC4wMDI1MTQsIDAuMDAyNTE1LCAwLjAwMjUxNiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjk3MSwgMC4wMDMwMzIsIDAuMDAzMDM5LCAwLjAwMzA0MywgMC4wMDMwNDUsIDAuMDAzMDQ2LCAwLjAwMzA0NiIsIFwKLSAgICAgICAgICAiMC4wMDI5NjcsIDAuMDAzMDI3LCAwLjAwMzAzNCwgMC4wMDMwMzcsIDAuMDAzMDM5LCAwLjAwMzA0LCAwLjAwMzA0MSIsIFwKLSAgICAgICAgICAiMC4wMDI5NTksIDAuMDAzMDIxLCAwLjAwMzAyOCwgMC4wMDMwMzIsIDAuMDAzMDM0LCAwLjAwMzAzNSwgMC4wMDMwMzYiLCBcCi0gICAgICAgICAgIjAuMDAyOTUyLCAwLjAwMzAxNywgMC4wMDMwMjQsIDAuMDAzMDI4LCAwLjAwMzAzLCAwLjAwMzAzMiwgMC4wMDMwMzIiLCBcCi0gICAgICAgICAgIjAuMDAyOTQ2LCAwLjAwMzAxMywgMC4wMDMwMjEsIDAuMDAzMDI2LCAwLjAwMzAyOCwgMC4wMDMwMjksIDAuMDAzMDMiLCBcCi0gICAgICAgICAgIjAuMDAyOTM3LCAwLjAwMzAwOSwgMC4wMDMwMTgsIDAuMDAzMDIyLCAwLjAwMzAyNSwgMC4wMDMwMjYsIDAuMDAzMDI3IiwgXAotICAgICAgICAgICIwLjAwMjkyOCwgMC4wMDMwMDcsIDAuMDAzMDE3LCAwLjAwMzAyMiwgMC4wMDMwMjUsIDAuMDAzMDI2LCAwLjAwMzAyOCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkExTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyMzE0LCAwLjAwMjM0MiwgMC4wMDIzNDQsIDAuMDAyMzQ2LCAwLjAwMjM0NiwgMC4wMDIzNDcsIDAuMDAyMzQ3IiwgXAotICAgICAgICAgICIwLjAwMjMwNywgMC4wMDIzMzYsIDAuMDAyMzM5LCAwLjAwMjM0LCAwLjAwMjM0MSwgMC4wMDIzNDEsIDAuMDAyMzQxIiwgXAotICAgICAgICAgICIwLjAwMjI5MSwgMC4wMDIzMjUsIDAuMDAyMzI4LCAwLjAwMjMzLCAwLjAwMjMzLCAwLjAwMjMzLCAwLjAwMjMzMSIsIFwKLSAgICAgICAgICAiMC4wMDIyNzYsIDAuMDAyMzE0LCAwLjAwMjMxOSwgMC4wMDIzMjEsIDAuMDAyMzIyLCAwLjAwMjMyMiwgMC4wMDIzMjMiLCBcCi0gICAgICAgICAgIjAuMDAyMjYyLCAwLjAwMjMwNiwgMC4wMDIzMTMsIDAuMDAyMzE0LCAwLjAwMjMxNiwgMC4wMDIzMTgsIDAuMDAyMzE3IiwgXAotICAgICAgICAgICIwLjAwMjI1MSwgMC4wMDIyOTgsIDAuMDAyMzA1LCAwLjAwMjMwOCwgMC4wMDIzMSwgMC4wMDIzMTEsIDAuMDAyMzEyIiwgXAotICAgICAgICAgICIwLjAwMjI0MiwgMC4wMDIyOTMsIDAuMDAyMzAxLCAwLjAwMjMwNSwgMC4wMDIzMDcsIDAuMDAyMzA4LCAwLjAwMjMwNyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjgzMywgMC4wMDI4OTQsIDAuMDAyOTAxLCAwLjAwMjkwNSwgMC4wMDI5MDYsIDAuMDAyOTA4LCAwLjAwMjkwOCIsIFwKLSAgICAgICAgICAiMC4wMDI4MjMsIDAuMDAyODg2LCAwLjAwMjg5MywgMC4wMDI4OTYsIDAuMDAyODk4LCAwLjAwMjksIDAuMDAyOSIsIFwKLSAgICAgICAgICAiMC4wMDI4MSwgMC4wMDI4NzYsIDAuMDAyODg0LCAwLjAwMjg4OCwgMC4wMDI4OSwgMC4wMDI4OTIsIDAuMDAyODkyIiwgXAotICAgICAgICAgICIwLjAwMjgsIDAuMDAyODcsIDAuMDAyODc4LCAwLjAwMjg4MywgMC4wMDI4ODUsIDAuMDAyODg3LCAwLjAwMjg4OCIsIFwKLSAgICAgICAgICAiMC4wMDI3OTEsIDAuMDAyODY0LCAwLjAwMjg3NCwgMC4wMDI4NzksIDAuMDAyODgxLCAwLjAwMjg4MywgMC4wMDI4ODQiLCBcCi0gICAgICAgICAgIjAuMDAyNzc4LCAwLjAwMjg1OCwgMC4wMDI4NjksIDAuMDAyODc1LCAwLjAwMjg3OCwgMC4wMDI4OCwgMC4wMDI4ODIiLCBcCi0gICAgICAgICAgIjAuMDAyNzY5LCAwLjAwMjg1MywgMC4wMDI4NjUsIDAuMDAyODcyLCAwLjAwMjg3NiwgMC4wMDI4NzgsIDAuMDAyODc5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjgxNSwgMC4wMDI4MTksIDAuMDAyODIsIDAuMDAyODIsIDAuMDAyODE5LCAwLjAwMjgyLCAwLjAwMjgxOSIsIFwKLSAgICAgICAgICAiMC4wMDI4LCAwLjAwMjgxNiwgMC4wMDI4MTgsIDAuMDAyODE4LCAwLjAwMjgxOSwgMC4wMDI4MTksIDAuMDAyODE5IiwgXAotICAgICAgICAgICIwLjAwMjc4NywgMC4wMDI4MTUsIDAuMDAyODE4LCAwLjAwMjgxNiwgMC4wMDI4MjEsIDAuMDAyODE3LCAwLjAwMjgyIiwgXAotICAgICAgICAgICIwLjAwMjc3NiwgMC4wMDI4MSwgMC4wMDI4MTQsIDAuMDAyODE2LCAwLjAwMjgxNywgMC4wMDI4MTcsIDAuMDAyODE5IiwgXAotICAgICAgICAgICIwLjAwMjc2OSwgMC4wMDI4MDUsIDAuMDAyODEzLCAwLjAwMjgxMywgMC4wMDI4MTUsIDAuMDAyODE2LCAwLjAwMjgxOCIsIFwKLSAgICAgICAgICAiMC4wMDI3NTksIDAuMDAyOCwgMC4wMDI4MDgsIDAuMDAyODExLCAwLjAwMjgxNSwgMC4wMDI4MTQsIDAuMDAyODE1IiwgXAotICAgICAgICAgICIwLjAwMjc1MywgMC4wMDI3OTcsIDAuMDAyODA2LCAwLjAwMjgxMSwgMC4wMDI4MTIsIDAuMDAyODE0LCAwLjAwMjgxNCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDY4MiwgMC4wMDA2ODMsIDAuMDAwNjgzLCAwLjAwMDY4MywgMC4wMDA2ODMsIDAuMDAwNjgyLCAwLjAwMDY4MiIsIFwKLSAgICAgICAgICAiMC4wMDA2NDUsIDAuMDAwNjU2LCAwLjAwMDY1NywgMC4wMDA2NTcsIDAuMDAwNjU3LCAwLjAwMDY1NywgMC4wMDA2NTciLCBcCi0gICAgICAgICAgIjAuMDAwNjI3LCAwLjAwMDY1LCAwLjAwMDY1MiwgMC4wMDA2NTMsIDAuMDAwNjU0LCAwLjAwMDY1NCwgMC4wMDA2NTQiLCBcCi0gICAgICAgICAgIjAuMDAwNjE1LCAwLjAwMDY0NCwgMC4wMDA2NDcsIDAuMDAwNjQ4LCAwLjAwMDY0OCwgMC4wMDA2NDgsIDAuMDAwNjQ4IiwgXAotICAgICAgICAgICIwLjAwMDYwNiwgMC4wMDA2NCwgMC4wMDA2NDQsIDAuMDAwNjQ3LCAwLjAwMDY0NywgMC4wMDA2NDYsIDAuMDAwNjQ2IiwgXAotICAgICAgICAgICIwLjAwMDU5NSwgMC4wMDA2MzIsIDAuMDAwNjQxLCAwLjAwMDY0NCwgMC4wMDA2NDUsIDAuMDAwNjQ2LCAwLjAwMDY0NiIsIFwKLSAgICAgICAgICAiMC4wMDA1OTEsIDAuMDAwNjMyLCAwLjAwMDYzOCwgMC4wMDA2NDIsIDAuMDAwNjQ0LCAwLjAwMDY0NSwgMC4wMDA2NDYiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IEFPSTJCQjFYNCAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKEFPSTJCQjFYNCkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjI2NzcwODsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQTBOKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA5MTg5MzI7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwOTEyODg2OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDkxODkzMjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDE2OTMsIDAuMDAxNjcyLCAwLjAwMTY2LCAwLjAwMTY1MywgMC4wMDE2NDcsIDAuMDAxNjQxLCAwLjAwMTY0MSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzg2NywgMC4wMDM4NTUsIDAuMDAzODQ2LCAwLjAwMzg0MSwgMC4wMDM4MzcsIDAuMDAzODMzLCAwLjAwMzgzMiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQTFOKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA4OTYxNDc7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwODk2MDc0OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDg5NjE0NzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDE0MDIsIDAuMDAxMzg5LCAwLjAwMTM3MiwgMC4wMDEzNTksIDAuMDAxMzQ5LCAwLjAwMTM0MSwgMC4wMDEzMzgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDM2MTQsIDAuMDAzNTk0LCAwLjAwMzU4MSwgMC4wMDM1NzMsIDAuMDAzNTY5LCAwLjAwMzU2NSwgMC4wMDM1NjYiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDMyMDAyOTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDMxNzU0NDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDMyMDAyOTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDExMjcsIDAuMDAxMTc4LCAwLjAwMTE4OSwgMC4wMDExOTMsIDAuMDAxMTk2LCAwLjAwMTE5NywgMC4wMDExOTkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDEyNDEsIDAuMDAxMjQyLCAwLjAwMTI0MiwgMC4wMDEyNDMsIDAuMDAxMjQzLCAwLjAwMTI0MywgMC4wMDEyNDMiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4yOTU4NTE7Ci0gICAgZnVuY3Rpb24gOiAiKCEoKCEoQTBOK0ExTikpK0IwKSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEwTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTU2MzEsIDAuMzc2NTkxLCAwLjYzNjY1MSwgMC44MjIzNjUsIDEuMTE5NCwgMS4zNzkzMywgMS43NTA2NSIsIFwKLSAgICAgICAgICAiMC4xMjcwOTksIDAuMzg4MDg5LCAwLjY0ODE1NywgMC44MzM4NDYsIDEuMTMwOTIsIDEuMzkwODQsIDEuNzYyMTIiLCBcCi0gICAgICAgICAgIjAuMTQyMTA1LCAwLjQwMzE0NCwgMC42NjMyMDQsIDAuODQ4NzM2LCAxLjE0NTk4LCAxLjQwNTg5LCAxLjc3NzE4IiwgXAotICAgICAgICAgICIwLjE1NzE5MywgMC40MTgyNSwgMC42NzgzNDIsIDAuODY0MDYxLCAxLjE2MTEyLCAxLjQyMTA1LCAxLjc5MjUyIiwgXAotICAgICAgICAgICIwLjE3MjA4NSwgMC40MzMxOTEsIDAuNjkzMjg0LCAwLjg3ODk4NiwgMS4xNzYwOCwgMS40MzYxNCwgMS44MDczIiwgXAotICAgICAgICAgICIwLjE5NTYxLCAwLjQ1NjY1OCwgMC43MTY3NjMsIDAuOTAyNDc1LCAxLjE5OTU3LCAxLjQ1OTQ5LCAxLjgzMDgxIiwgXAotICAgICAgICAgICIwLjIxNTc4LCAwLjQ3Njg2MiwgMC43MzY5NjUsIDAuOTIyNjc2LCAxLjIxOTc4LCAxLjQ3OTg1LCAxLjg1MTAxIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTA2NjYyLCAwLjYxMzQwMiwgMS4xMjMxNCwgMS40ODM4NywgMi4wNjYyMywgMi41NzQ2MywgMy4zMDE2MyIsIFwKLSAgICAgICAgICAiMC4xMDY3MTksIDAuNjEzMjc3LCAxLjEyMDM0LCAxLjQ4NDE1LCAyLjA2NTU5LCAyLjU3OTMsIDMuMzAyMzYiLCBcCi0gICAgICAgICAgIjAuMTA2NzAyLCAwLjYxMzM5NCwgMS4xMjAxNywgMS40ODQ3MiwgMi4wNjU3MiwgMi41Nzk0MywgMy4zMDIyNyIsIFwKLSAgICAgICAgICAiMC4xMDY2NTYsIDAuNjEzMzYxLCAxLjEyMDI4LCAxLjQ4NDA3LCAyLjA2NTkxLCAyLjU3NDcyLCAzLjMwNzgzIiwgXAotICAgICAgICAgICIwLjEwNjc1MywgMC42MTMzNiwgMS4xMjAxNSwgMS40ODQzNCwgMi4wNjU5MSwgMi41Nzk1NSwgMy4zMDIyOSIsIFwKLSAgICAgICAgICAiMC4xMDcyMDUsIDAuNjEzMzU4LCAxLjEyMDA0LCAxLjQ4NDMxLCAyLjA2OTU2LCAyLjU3NDk3LCAzLjMwMjMyIiwgXAotICAgICAgICAgICIwLjEwNzY5MiwgMC42MTMzOTcsIDEuMTIwMDQsIDEuNDg0MzgsIDIuMDY1ODksIDIuNTc5NDQsIDMuMzAxODgiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNDQxNDksIDAuMjk4MTgsIDAuNDQ1MDM2LCAwLjU0OTgzNiwgMC43MTc1MzksIDAuODY0MjcyLCAxLjA3MzU0IiwgXAotICAgICAgICAgICIwLjE1NTUxNiwgMC4zMDk5MzgsIDAuNDU2Nzk1LCAwLjU2MTYyOSwgMC43MjkxNzMsIDAuODc1OTQ4LCAxLjA4NTMzIiwgXAotICAgICAgICAgICIwLjE2ODAyNiwgMC4zMjI3NSwgMC40Njk2MDIsIDAuNTc0NDI2LCAwLjc0MTk3NiwgMC44ODg3ODQsIDEuMDk4MTMiLCBcCi0gICAgICAgICAgIjAuMTgwNjk5LCAwLjMzNTM2NywgMC40ODIyMzksIDAuNTg3MDc5LCAwLjc1NDY0LCAwLjkwMTQxNywgMS4xMTA4MSIsIFwKLSAgICAgICAgICAiMC4xOTMxNiwgMC4zNDc3MywgMC40OTQ1OTYsIDAuNTk5NDE3LCAwLjc2Njk3MSwgMC45MTM5MjcsIDEuMTIzMTEiLCBcCi0gICAgICAgICAgIjAuMjEyNzEzLCAwLjM2NzI4NywgMC41MTQxODQsIDAuNjE5MDIyLCAwLjc4NjU3NywgMC45MzMzNzksIDEuMTQyNzQiLCBcCi0gICAgICAgICAgIjAuMjI5MzY0LCAwLjM4Mzg3NywgMC41MzA3ODEsIDAuNjM1NjMxLCAwLjgwMzE4MywgMC45NTAwNDEsIDEuMTU5NDIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzk3NDgsIDAuMzU4OTU2LCAwLjY0NzkyNywgMC44NTI5ODEsIDEuMTg0LCAxLjQ3NzAyLCAxLjg5NzI3IiwgXAotICAgICAgICAgICIwLjA3OTcwMywgMC4zNTg3OTMsIDAuNjQ1OTAxLCAwLjg1MzQsIDEuMTg4NTUsIDEuNDc2NSwgMS44OTE4MSIsIFwKLSAgICAgICAgICAiMC4wODAxNTIsIDAuMzU4OTU5LCAwLjY0NjA2MSwgMC44NTU2OSwgMS4xODg1NCwgMS40NzU5MywgMS44OTczIiwgXAotICAgICAgICAgICIwLjA3OTg1MiwgMC4zNTg4NTgsIDAuNjQ2MzQsIDAuODUzMDUzLCAxLjE4ODU4LCAxLjQ3NjY4LCAxLjg5MDg1IiwgXAotICAgICAgICAgICIwLjA3OTczNSwgMC4zNTg5MywgMC42NDY3MzEsIDAuODU1Njc2LCAxLjE4ODU0LCAxLjQ3NTI0LCAxLjg5NzI5IiwgXAotICAgICAgICAgICIwLjA3OTc2OSwgMC4zNTg3OTYsIDAuNjQ1OTg0LCAwLjg1MzQ2MSwgMS4xODg1NCwgMS40NzU2NSwgMS44OTE1OSIsIFwKLSAgICAgICAgICAiMC4wODAzMywgMC4zNTg5MzcsIDAuNjQ2ODQ2LCAwLjg1MzA3NywgMS4xODg1NiwgMS40NzU4OSwgMS44OTE0NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMU4iOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTEwMjY4LCAwLjM3MTAyMSwgMC42MzEyODMsIDAuODE2NzI2LCAxLjExMzg0LCAxLjM3NDMzLCAxLjc0NTMxIiwgXAotICAgICAgICAgICIwLjEyMjAwOCwgMC4zODI3OTMsIDAuNjQyOTg1LCAwLjgyODcxLCAxLjEyNTYxLCAxLjM4NTU3LCAxLjc1NjkzIiwgXAotICAgICAgICAgICIwLjEzNzAzOCwgMC4zOTc4NTUsIDAuNjU4MTEyLCAwLjg0MzMwNCwgMS4xNDA4MSwgMS40MDE0MywgMS43NzIwNiIsIFwKLSAgICAgICAgICAiMC4xNTE5NzQsIDAuNDEyODY5LCAwLjY3MzEzMywgMC44NTg2NDksIDEuMTU2MDIsIDEuNDE1NzksIDEuNzg3OTYiLCBcCi0gICAgICAgICAgIjAuMTY2Mzg0LCAwLjQyNzE4NSwgMC42ODc0NjgsIDAuODczMDI2LCAxLjE3MDE5LCAxLjQzMDA1LCAxLjgwMjYxIiwgXAotICAgICAgICAgICIwLjE5MDA0NCwgMC40NTA4MSwgMC43MTExMTEsIDAuODk2OCwgMS4xOTM4OCwgMS40NTQ1NywgMS44MjUxNyIsIFwKLSAgICAgICAgICAiMC4yMDkyMDMsIDAuNDcwMjEzLCAwLjczMDU0NSwgMC45MTYwNiwgMS4yMTM1MiwgMS40NzMyMSwgMS44NDUzMyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwNjI2NSwgMC42MTIwNDEsIDEuMTI0MDQsIDEuNDg3OTQsIDIuMDcxMDUsIDIuNTczNTEsIDMuMzAyNTkiLCBcCi0gICAgICAgICAgIjAuMTA2MjMsIDAuNjExOTc5LCAxLjEyMzc3LCAxLjQ4NDg0LCAyLjA2NTk0LCAyLjU4MTE0LCAzLjMwOTkiLCBcCi0gICAgICAgICAgIjAuMTA2MTQ4LCAwLjYxMjczOCwgMS4xMjM4OCwgMS40ODQzMywgMi4wNzEwMywgMi41NzMzMiwgMy4zMDc1NyIsIFwKLSAgICAgICAgICAiMC4xMDYyNjYsIDAuNjExODQ2LCAxLjEyMzksIDEuNDg3MjUsIDIuMDY2NjcsIDIuNTgxMDIsIDMuMzAwMDkiLCBcCi0gICAgICAgICAgIjAuMTA2NTg1LCAwLjYxMzIzNiwgMS4xMjM3OSwgMS40OTI0MywgMi4wNjkyNCwgMi41Nzg5LCAzLjI5OTQ5IiwgXAotICAgICAgICAgICIwLjEwNjczMiwgMC42MTI3MzcsIDEuMTIzNzEsIDEuNDg3ODUsIDIuMDcwOCwgMi41NzMwNywgMy4zMDc1NSIsIFwKLSAgICAgICAgICAiMC4xMDc4OTIsIDAuNjEzMjU1LCAxLjEyMzg3LCAxLjQ5MjQ2LCAyLjA2NDQ1LCAyLjU4MDg3LCAzLjI5OTgxIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTM4MTY4LCAwLjI5MjU5MywgMC40Mzk0NTksIDAuNTQ0MjkxLCAwLjcxMTgzNSwgMC44NTg2MDcsIDEuMDY3OTkiLCBcCi0gICAgICAgICAgIjAuMTQ4MDQ4LCAwLjMwMjYxNiwgMC40NDk0OTEsIDAuNTU0MzI2LCAwLjcyMTg3NiwgMC44Njg2NTQsIDEuMDc4MDUiLCBcCi0gICAgICAgICAgIjAuMTYxMjI2LCAwLjMxNTgyNSwgMC40NjI3MDksIDAuNTY3NTQzLCAwLjczNTA5OCwgMC44ODE3NTUsIDEuMDkxMjMiLCBcCi0gICAgICAgICAgIjAuMTc0MjY2LCAwLjMyODg2NCwgMC40NzU3NDYsIDAuNTgwNTE0LCAwLjc0ODExOSwgMC44OTUwNjQsIDEuMTA0MjciLCBcCi0gICAgICAgICAgIjAuMTg3NjM1LCAwLjM0MjI1OSwgMC40ODkxNDQsIDAuNTkzOTgxLCAwLjc2MTUzNywgMC45MDgxNzUsIDEuMTE3ODEiLCBcCi0gICAgICAgICAgIjAuMjA4OTE4LCAwLjM2MzYxLCAwLjUxMDUwNiwgMC42MTUzMDQsIDAuNzgyOTEyLCAwLjkyOTUzOCwgMS4xMzkzNiIsIFwKLSAgICAgICAgICAiMC4yMjc0NjMsIDAuMzgyMTMxLCAwLjUyOTA2LCAwLjYzMzkxMiwgMC44MDE0NzgsIDAuOTQ4MjkxLCAxLjE1NzY1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc5NzA5LCAwLjM1ODk0NywgMC42NDU5MzQsIDAuODUzNDE2LCAxLjE4ODU1LCAxLjQ3Njc4LCAxLjg5MTc3IiwgXAotICAgICAgICAgICIwLjA3OTgyLCAwLjM1ODg0NCwgMC42NDY1MDIsIDAuODUzMTg4LCAxLjE4ODU1LCAxLjQ3NzIxLCAxLjg5MTAyIiwgXAotICAgICAgICAgICIwLjA3OTgxLCAwLjM1ODg2MywgMC42NDgwNzksIDAuODUyOTUxLCAxLjE4NzIxLCAxLjQ4MDMzLCAxLjg5NzMiLCBcCi0gICAgICAgICAgIjAuMDc5ODgxLCAwLjM1ODk1NSwgMC42NDcxMzgsIDAuODUzNDg3LCAxLjE4ODU0LCAxLjQ3NTQ2LCAxLjg5NzMiLCBcCi0gICAgICAgICAgIjAuMDc5NzMsIDAuMzU4OTQ5LCAwLjY0NjQxOCwgMC44NTU2NzcsIDEuMTg4NTMsIDEuNDgwMjUsIDEuODkyNzciLCBcCi0gICAgICAgICAgIjAuMDgwMjcyLCAwLjM1ODk5NCwgMC42NDc4ODcsIDAuODU1NTkxLCAxLjE4ODU0LCAxLjQ4MDIzLCAxLjg5Mzc5IiwgXAotICAgICAgICAgICIwLjA4MDMyMywgMC4zNTg5NDUsIDAuNjQ2MTgzLCAwLjg1MzQxNiwgMS4xODg1NSwgMS40NzU1NywgMS44OTE3MSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjU4OTUsIDAuMzI2MjA4LCAwLjU4NTk3LCAwLjc3MTkzOCwgMS4wNjkwMywgMS4zMjk1NiwgMS43MDA0NSIsIFwKLSAgICAgICAgICAiMC4wNzY5NDIsIDAuMzM3NDg1LCAwLjU5NzQ4NiwgMC43ODMzOTIsIDEuMDgwODgsIDEuMzQwNDEsIDEuNzEyMDMiLCBcCi0gICAgICAgICAgIjAuMDg5MTU1LCAwLjM0OTk2MywgMC42MTAwNDMsIDAuNzk1NjA0LCAxLjA5MzA4LCAxLjM1Mjc1LCAxLjcyNTAzIiwgXAotICAgICAgICAgICIwLjEwMTA1LCAwLjM2MTk5NCwgMC42MjIxNCwgMC44MDc4OTksIDEuMTA1MDIsIDEuMzY1NzYsIDEuNzM3MTUiLCBcCi0gICAgICAgICAgIjAuMTEyOTQzLCAwLjM3NDE5NSwgMC42MzQyOTYsIDAuODIwMDA3LCAxLjExNzU2LCAxLjM3NzE1LCAxLjc0OTI0IiwgXAotICAgICAgICAgICIwLjEzMTU4LCAwLjM5MzcwNywgMC42NTQxODMsIDAuODM5NzUyLCAxLjEzNjg0LCAxLjM5Njc2LCAxLjc2OTM5IiwgXAotICAgICAgICAgICIwLjE0NjY0MSwgMC40MTA3MSwgMC42NzEyNSwgMC44NTcxODMsIDEuMTU0MTUsIDEuNDE0MDQsIDEuNzg2NTkiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDM3LCAwLjYxMzI2NCwgMS4xMjA5NCwgMS40ODc4NSwgMi4wNzc4MSwgMi41Nzk2OCwgMy4zMDY5MyIsIFwKLSAgICAgICAgICAiMC4xMDM3NzUsIDAuNjEzMjQxLCAxLjEyMjU5LCAxLjQ4NjE5LCAyLjA2NDU0LCAyLjU3ODg2LCAzLjMwMzE1IiwgXAotICAgICAgICAgICIwLjEwNDA0NywgMC42MTMyNzgsIDEuMTIzMzYsIDEuNDg3NjUsIDIuMDc1MTUsIDIuNTg4MjQsIDMuMzA4IiwgXAotICAgICAgICAgICIwLjEwNTY5NSwgMC42MTMyMzQsIDEuMTIzNDYsIDEuNDg3ODEsIDIuMDcwODQsIDIuNTczMDIsIDMuMzAwMjMiLCBcCi0gICAgICAgICAgIjAuMTA4NjYxLCAwLjYxMzMzNSwgMS4xMjMzOSwgMS40OTI0MiwgMi4wNjc2NSwgMi41ODA4OSwgMy4zMDExMiIsIFwKLSAgICAgICAgICAiMC4xMTUyNjcsIDAuNjEzMzc0LCAxLjEyMDE3LCAxLjQ4NzgzLCAyLjA3MDgxLCAyLjU4NzksIDMuMzA2MDIiLCBcCi0gICAgICAgICAgIjAuMTIyNTA4LCAwLjYxMjc1OCwgMS4xMjUzNSwgMS40ODgzNSwgMi4wNzUyMSwgMi41Nzg1OSwgMy4zMjE1OCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzNzYxNywgMC4xODM3MzQsIDAuMzI5MTksIDAuNDMzMDYxLCAwLjU5OTMxLCAwLjc0NDgzMiwgMC45NTIzOSIsIFwKLSAgICAgICAgICAiMC4wNDkxMzIsIDAuMTk1MzUxLCAwLjM0MDg5MywgMC40NDQ2NjMsIDAuNjEwODUxLCAwLjc1NjMyLCAwLjk2MzgyIiwgXAotICAgICAgICAgICIwLjA2NDE0NCwgMC4yMDk5LCAwLjM1MzYwNCwgMC40NTc0ODcsIDAuNjIzNTc5LCAwLjc2ODkxMiwgMC45NzcwNDMiLCBcCi0gICAgICAgICAgIjAuMDc5MjkyLCAwLjIyNTI3OSwgMC4zNzA1MDYsIDAuNDc0NDEyLCAwLjY0MDQzOSwgMC43ODU4MTUsIDAuOTkzNzg1IiwgXAotICAgICAgICAgICIwLjA5NDA4MiwgMC4yMzk0MDQsIDAuMzg0Nzg0LCAwLjQ4ODY0NCwgMC42NTQ3NTEsIDAuODAwMTcsIDEuMDAyMTMiLCBcCi0gICAgICAgICAgIjAuMTE1NTY4LCAwLjI2Mzk5MiwgMC40MDgyOTMsIDAuNTEyMDkxLCAwLjY3ODMzNywgMC44MjM1NDUsIDEuMDMxMjMiLCBcCi0gICAgICAgICAgIjAuMTMyMjQ3LCAwLjI4NTA3MSwgMC40MjkxNDUsIDAuNTMyNzM5LCAwLjY5ODkyNiwgMC44NDQxMTEsIDEuMDUxODEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjA0NDMsIDAuMzQ4NTQ3LCAwLjYzNjUzOSwgMC44NDI2OSwgMS4xNzIwNiwgMS40NTk5NSwgMS44NzE2OSIsIFwKLSAgICAgICAgICAiMC4wNjA1MzgsIDAuMzQ4NTIyLCAwLjYzNjc0MywgMC44NDIzMjgsIDEuMTcxNywgMS40NTk2NCwgMS44NzEyMyIsIFwKLSAgICAgICAgICAiMC4wNjQxMDgsIDAuMzQ4NTI4LCAwLjYzNjcwNSwgMC44NDI1MzMsIDEuMTcxOTIsIDEuNDU5NTQsIDEuODcxNCIsIFwKLSAgICAgICAgICAiMC4wNjk5OCwgMC4zNDg0NTQsIDAuNjM2NjcsIDAuODQyNDc0LCAxLjE3MTk0LCAxLjQ1OTc1LCAxLjg3MTQxIiwgXAotICAgICAgICAgICIwLjA3NzQwOCwgMC4zNDg4MTksIDAuNjM2NjUxLCAwLjg0MjQxMSwgMS4xNzIsIDEuNDYwMTgsIDEuODcxMzQiLCBcCi0gICAgICAgICAgIjAuMDkxMjI0LCAwLjM1MTU3NywgMC42MzY3OSwgMC44NDI0MSwgMS4xNzE4LCAxLjQ1OTc1LCAxLjg3MTM3IiwgXAotICAgICAgICAgICIwLjEwNDQ1OCwgMC4zNTYwMTcsIDAuNjM2OTA5LCAwLjg0MjQzMiwgMS4xNzE3OSwgMS40NTk3NSwgMS44NzE3NyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEwTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQ2NTksIDAuMDA0NzUyLCAwLjAwNDc2MiwgMC4wMDQ3NjUsIDAuMDA0NzcsIDAuMDA0NzcsIDAuMDA0NzcxIiwgXAotICAgICAgICAgICIwLjAwNDYzMSwgMC4wMDQ3MjgsIDAuMDA0NzQxLCAwLjAwNDc0MywgMC4wMDQ3NDcsIDAuMDA0NzQ5LCAwLjAwNDc0OSIsIFwKLSAgICAgICAgICAiMC4wMDQ2MDgsIDAuMDA0NzExLCAwLjAwNDcyNSwgMC4wMDQ3MzEsIDAuMDA0NzMzLCAwLjAwNDczNSwgMC4wMDQ3MzYiLCBcCi0gICAgICAgICAgIjAuMDA0NTksIDAuMDA0Njk4LCAwLjAwNDcxNSwgMC4wMDQ3MjEsIDAuMDA0NzI1LCAwLjAwNDcyOCwgMC4wMDQ3MjkiLCBcCi0gICAgICAgICAgIjAuMDA0NTcxLCAwLjAwNDY4NiwgMC4wMDQ3MDUsIDAuMDA0NzExLCAwLjAwNDcxOSwgMC4wMDQ3MTksIDAuMDA0NzIyIiwgXAotICAgICAgICAgICIwLjAwNDU1MSwgMC4wMDQ2NzEsIDAuMDA0Njk0LCAwLjAwNDcwNCwgMC4wMDQ3MDgsIDAuMDA0NzExLCAwLjAwNDcxNSIsIFwKLSAgICAgICAgICAiMC4wMDQ1NDYsIDAuMDA0NjYzLCAwLjAwNDY4OSwgMC4wMDQ2OTksIDAuMDA0NzA1LCAwLjAwNDcxLCAwLjAwNDcxMSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1MjgyLCAwLjAwNTQ2NSwgMC4wMDU0OSwgMC4wMDU0OTgsIDAuMDA1NTA1LCAwLjAwNTUwOSwgMC4wMDU1MTIiLCBcCi0gICAgICAgICAgIjAuMDA1MjcyLCAwLjAwNTQ1NCwgMC4wMDU0NzgsIDAuMDA1NDg1LCAwLjAwNTQ5MSwgMC4wMDU0OTQsIDAuMDA1NDk3IiwgXAotICAgICAgICAgICIwLjAwNTI1NCwgMC4wMDU0NDUsIDAuMDA1NDY5LCAwLjAwNTQ3NiwgMC4wMDU0ODMsIDAuMDA1NDg2LCAwLjAwNTQ4OSIsIFwKLSAgICAgICAgICAiMC4wMDUyNDQsIDAuMDA1NDM2LCAwLjAwNTQ2LCAwLjAwNTQ2OCwgMC4wMDU0NzUsIDAuMDA1NDc4LCAwLjAwNTQ4MSIsIFwKLSAgICAgICAgICAiMC4wMDUyMzEsIDAuMDA1NDI3LCAwLjAwNTQ1NCwgMC4wMDU0NjIsIDAuMDA1NDY5LCAwLjAwNTQ3MywgMC4wMDU0NzYiLCBcCi0gICAgICAgICAgIjAuMDA1MjE0LCAwLjAwNTQxNywgMC4wMDU0NDYsIDAuMDA1NDU1LCAwLjAwNTQ2MywgMC4wMDU0NjcsIDAuMDA1NDcxIiwgXAotICAgICAgICAgICIwLjAwNTIsIDAuMDA1NDA5LCAwLjAwNTQ0MywgMC4wMDU0NTMsIDAuMDA1NDYyLCAwLjAwNTQ2NywgMC4wMDU0NzEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMU4iOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0Mzc3LCAwLjAwNDQ2MywgMC4wMDQ0NzMsIDAuMDA0NDc1LCAwLjAwNDQ3OCwgMC4wMDQ0NzksIDAuMDA0NDgiLCBcCi0gICAgICAgICAgIjAuMDA0MzYxLCAwLjAwNDQ1MSwgMC4wMDQ0NjEsIDAuMDA0NDYzLCAwLjAwNDQ2OCwgMC4wMDQ0NjcsIDAuMDA0NDY2IiwgXAotICAgICAgICAgICIwLjAwNDMzLCAwLjAwNDQyOSwgMC4wMDQ0NDIsIDAuMDA0NDQ0LCAwLjAwNDQ0NiwgMC4wMDQ0NDgsIDAuMDA0NDUiLCBcCi0gICAgICAgICAgIjAuMDA0MzAxLCAwLjAwNDQwOCwgMC4wMDQ0MjMsIDAuMDA0NDMxLCAwLjAwNDQzMiwgMC4wMDQ0MzQsIDAuMDA0NDM1IiwgXAotICAgICAgICAgICIwLjAwNDI3MiwgMC4wMDQzOTEsIDAuMDA0NDA5LCAwLjAwNDQxNSwgMC4wMDQ0MiwgMC4wMDQ0MjIsIDAuMDA0NDI1IiwgXAotICAgICAgICAgICIwLjAwNDI1NCwgMC4wMDQzNzIsIDAuMDA0Mzk0LCAwLjAwNDQwMiwgMC4wMDQ0MSwgMC4wMDQ0MTEsIDAuMDA0NDE1IiwgXAotICAgICAgICAgICIwLjAwNDIzNiwgMC4wMDQzNiwgMC4wMDQzODMsIDAuMDA0MzkzLCAwLjAwNDQsIDAuMDA0NDA1LCAwLjAwNDQwNyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1MDMxLCAwLjAwNTIxMywgMC4wMDUyMzcsIDAuMDA1MjQ0LCAwLjAwNTI1LCAwLjAwNTI1NCwgMC4wMDUyNTYiLCBcCi0gICAgICAgICAgIjAuMDA1MDEyLCAwLjAwNTE5NiwgMC4wMDUyMiwgMC4wMDUyMjcsIDAuMDA1MjM0LCAwLjAwNTIzNywgMC4wMDUyNCIsIFwKLSAgICAgICAgICAiMC4wMDQ5ODgsIDAuMDA1MTc5LCAwLjAwNTIwNCwgMC4wMDUyMTIsIDAuMDA1MjE5LCAwLjAwNTIyMiwgMC4wMDUyMjYiLCBcCi0gICAgICAgICAgIjAuMDA0OTY1LCAwLjAwNTE2MywgMC4wMDUxOTEsIDAuMDA1MiwgMC4wMDUyMDgsIDAuMDA1MjEyLCAwLjAwNTIxNiIsIFwKLSAgICAgICAgICAiMC4wMDQ5NSwgMC4wMDUxNSwgMC4wMDUxOCwgMC4wMDUxOSwgMC4wMDUxOTksIDAuMDA1MjAzLCAwLjAwNTIwNyIsIFwKLSAgICAgICAgICAiMC4wMDQ5MjgsIDAuMDA1MTM1LCAwLjAwNTE3MSwgMC4wMDUxODMsIDAuMDA1MTkzLCAwLjAwNTE5OCwgMC4wMDUyMDMiLCBcCi0gICAgICAgICAgIjAuMDA0OTA5LCAwLjAwNTEyMywgMC4wMDUxNjIsIDAuMDA1MTc1LCAwLjAwNTE4NywgMC4wMDUxOTMsIDAuMDA1MTk4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1NDQ4LCAwLjAwNTQ2MSwgMC4wMDU0NjIsIDAuMDA1NDYxLCAwLjAwNTQ2MSwgMC4wMDU0NjIsIDAuMDA1NDYyIiwgXAotICAgICAgICAgICIwLjAwNTQwMiwgMC4wMDU0NSwgMC4wMDU0NTYsIDAuMDA1NDU5LCAwLjAwNTQ1OSwgMC4wMDU0NiwgMC4wMDU0NiIsIFwKLSAgICAgICAgICAiMC4wMDUzNjYsIDAuMDA1NDM5LCAwLjAwNTQ0OSwgMC4wMDU0NjIsIDAuMDA1NDU1LCAwLjAwNTQ1NywgMC4wMDU0NjYiLCBcCi0gICAgICAgICAgIjAuMDA1MzQ1LCAwLjAwNTQzLCAwLjAwNTQ0OCwgMC4wMDU0NTUsIDAuMDA1NDUyLCAwLjAwNTQ1NCwgMC4wMDU0NTciLCBcCi0gICAgICAgICAgIjAuMDA1MzI5LCAwLjAwNTQyMSwgMC4wMDU0MzksIDAuMDA1NDQ3LCAwLjAwNTQ1NCwgMC4wMDU0NTIsIDAuMDA1NDU3IiwgXAotICAgICAgICAgICIwLjAwNTMxMywgMC4wMDU0MDksIDAuMDA1NDMxLCAwLjAwNTQ0LCAwLjAwNTQ0NSwgMC4wMDU0NDksIDAuMDA1NDUyIiwgXAotICAgICAgICAgICIwLjAwNTMwNSwgMC4wMDUzOTgsIDAuMDA1NDI2LCAwLjAwNTQzMywgMC4wMDU0NDEsIDAuMDA1NDQ3LCAwLjAwNTQ0OCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxNTAyLCAwLjAwMTUwOCwgMC4wMDE1MDcsIDAuMDAxNTA4LCAwLjAwMTUwNywgMC4wMDE1MDcsIDAuMDAxNTA3IiwgXAotICAgICAgICAgICIwLjAwMTQxNCwgMC4wMDE0NTIsIDAuMDAxNDU2LCAwLjAwMTQ1NywgMC4wMDE0NTgsIDAuMDAxNDU4LCAwLjAwMTQ1OCIsIFwKLSAgICAgICAgICAiMC4wMDEzNjUsIDAuMDAxNDMyLCAwLjAwMTQzNywgMC4wMDE0NCwgMC4wMDE0NDMsIDAuMDAxNDQzLCAwLjAwMTQ0NCIsIFwKLSAgICAgICAgICAiMC4wMDEzMzYsIDAuMDAxNDIxLCAwLjAwMTQzNCwgMC4wMDE0MzcsIDAuMDAxNDQxLCAwLjAwMTQ0MiwgMC4wMDE0NDMiLCBcCi0gICAgICAgICAgIjAuMDAxMzE4LCAwLjAwMTQwNCwgMC4wMDE0MjUsIDAuMDAxNDI5LCAwLjAwMTQzMywgMC4wMDE0MzUsIDAuMDAxNDMyIiwgXAotICAgICAgICAgICIwLjAwMTMwMiwgMC4wMDEzOTgsIDAuMDAxNDE3LCAwLjAwMTQyMywgMC4wMDE0MjcsIDAuMDAxNDMsIDAuMDAxNDMyIiwgXAotICAgICAgICAgICIwLjAwMTI5OSwgMC4wMDEzODksIDAuMDAxNDEsIDAuMDAxNDE4LCAwLjAwMTQyNCwgMC4wMDE0MjcsIDAuMDAxNDI5Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBBT0kyQkIxWEwgKgotICogLS0tLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChBT0kyQkIxWEwpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4wNjQ1NTUyOwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBME4pICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDcxODYyODsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA3MTUzNzY7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNzE4NjI4OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDM4NywgMC4wMDAzNzQsIDAuMDAwMzY2LCAwLjAwMDM2MSwgMC4wMDAzNTksIDAuMDAwMzU2LCAwLjAwMDM1NSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTU4MSwgMC4wMDE1NzMsIDAuMDAxNTY4LCAwLjAwMTU2NSwgMC4wMDE1NjQsIDAuMDAxNTYzLCAwLjAwMTU2MiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQTFOKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA3MDA5NjM7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNzAwOTQ2OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDcwMDk2MzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyMTIsIDAuMDAwMiwgMC4wMDAxODcsIDAuMDAwMTgsIDAuMDAwMTc2LCAwLjAwMDE3MywgMC4wMDAxNzIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDE0NDIsIDAuMDAxNDI5LCAwLjAwMTQyMiwgMC4wMDE0MTgsIDAuMDAxNDE3LCAwLjAwMTQxNiwgMC4wMDE0MTYiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA3MTIzNjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA3MDkxNDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA3MTIzNjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxNTIsIDAuMDAwMTU5LCAwLjAwMDE2LCAwLjAwMDE2MSwgMC4wMDAxNjIsIDAuMDAwMTYyLCAwLjAwMDE2MiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDE2OCwgMC4wMDAxNjgsIDAuMDAwMTY4LCAwLjAwMDE2OCwgMC4wMDAxNjgsIDAuMDAwMTY4LCAwLjAwMDE2OCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjAzOTE5MDI7Ci0gICAgZnVuY3Rpb24gOiAiKCEoKCEoQTBOK0ExTikpK0IwKSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEwTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzIyNDExLCAwLjM3NDA2NywgMC44Mzg2NzEsIDEuNjEyODMsIDIuMzg2OTQsIDQuMTkzMTgsIDUuMjI1MDQiLCBcCi0gICAgICAgICAgIjAuMzM0MTk0LCAwLjM4NTg5NSwgMC44NTA1NzUsIDEuNjI0NzMsIDIuMzk4NzIsIDQuMjA0OTUsIDUuMjM2ODQiLCBcCi0gICAgICAgICAgIjAuMzQ5NTk2LCAwLjQwMTI1NSwgMC44NjU4OTYsIDEuNjQwMDQsIDIuNDE0MTYsIDQuMjIwMzksIDUuMjUyMjgiLCBcCi0gICAgICAgICAgIjAuMzY0ODEzLCAwLjQxNjQ3NywgMC44ODExMzksIDEuNjU1MywgMi40Mjk0MSwgNC4yMzU2MywgNS4yNjc1NCIsIFwKLSAgICAgICAgICAiMC4zNzk1ODksIDAuNDMxMjYzLCAwLjg5NTkzMiwgMS42NzAxLCAyLjQ0NDMyLCA0LjI1MDQyLCA1LjI4MjM3IiwgXAotICAgICAgICAgICIwLjQwMjM4MywgMC40NTQwNDMsIDAuOTE4NzM5LCAxLjY5MjkzLCAyLjQ2NzA1LCA0LjI3MzU0LCA1LjMwNTI5IiwgXAotICAgICAgICAgICIwLjQyMDU1MSwgMC40NzIyMTMsIDAuOTM2OTI2LCAxLjcxMTExLCAyLjQ4NTI4LCA0LjI5MTc4LCA1LjMyMzQzIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjU0MjQxNCwgMC42NDI3MTYsIDEuNTU0NSwgMy4wNjY1NSwgNC41ODA1NCwgOC4xMDQxNiwgMTAuMTE2NiIsIFwKLSAgICAgICAgICAiMC41NDIyOTQsIDAuNjQyNjc2LCAxLjU1NDgxLCAzLjA3MTU5LCA0LjU4MDY4LCA4LjEwNDAyLCAxMC4xMTU1IiwgXAotICAgICAgICAgICIwLjU0MjI5NCwgMC42NDMwODksIDEuNTU0MzgsIDMuMDY1ODgsIDQuNTgwMDMsIDguMTA0MDgsIDEwLjExNjUiLCBcCi0gICAgICAgICAgIjAuNTQyMzUxLCAwLjY0MzE1MSwgMS41NTQzOSwgMy4wNjYyMywgNC41Nzk5LCA4LjEwNDI4LCAxMC4xMTY2IiwgXAotICAgICAgICAgICIwLjU0Mjk5NSwgMC42NDMwNjMsIDEuNTUxOTksIDMuMDY1NTYsIDQuNTc1OTUsIDguMTA0MjMsIDEwLjExNjUiLCBcCi0gICAgICAgICAgIjAuNTQzMjA0LCAwLjY0MzE4OSwgMS41NTE2OCwgMy4wNzA4NSwgNC41Nzk1OSwgOC4xMDQ1LCAxMC4xMTY2IiwgXAotICAgICAgICAgICIwLjU0MzIyLCAwLjY0MzE1MywgMS41NTE5LCAzLjA3MDY2LCA0LjU4MDUyLCA4LjEwMjQ3LCAxMC4xMTY2Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIzODk0MiwgMC4yNjg2NywgMC41MzU4MzgsIDAuOTgxMzU3LCAxLjQyNzE1LCAyLjQ2NzQ2LCAzLjA2MDQ0IiwgXAotICAgICAgICAgICIwLjI1MDA1OCwgMC4yNzk3NjMsIDAuNTQ3MTEzLCAwLjk5MjY3MiwgMS40Mzg0MSwgMi40Nzg3NiwgMy4wNzE3NiIsIFwKLSAgICAgICAgICAiMC4yNjI5NjksIDAuMjkyNjg4LCAwLjU2MDA5NywgMS4wMDU2NiwgMS40NTEzNSwgMi40OTE1NywgMy4wODQ5NyIsIFwKLSAgICAgICAgICAiMC4yNzU0NzUsIDAuMzA1MTk0LCAwLjU3MjYyOCwgMS4wMTgxOCwgMS40NjM2OSwgMi41MDM4OCwgMy4wOTY4OSIsIFwKLSAgICAgICAgICAiMC4yODc2MjcsIDAuMzE3MzM5LCAwLjU4NDY5NiwgMS4wMzA1NiwgMS40NzY0MiwgMi41MTU1MSwgMy4xMDk3MyIsIFwKLSAgICAgICAgICAiMC4zMDY2NDMsIDAuMzM2MzU4LCAwLjYwMzgxOCwgMS4wNDk1MiwgMS40OTUxMSwgMi41MzQyNiwgMy4xMjg0IiwgXAotICAgICAgICAgICIwLjMyMjQ4NiwgMC4zNTIyMTQsIDAuNjE5NjQ3LCAxLjA2NTQ3LCAxLjUxMTM3LCAyLjU1MDQsIDMuMTQ0NjIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzE3OTA0LCAwLjM3NTMwOCwgMC45MDM2ODcsIDEuNzkwNjYsIDIuNjcwMDgsIDQuNzI3MTMsIDUuODk2OTYiLCBcCi0gICAgICAgICAgIjAuMzE3ODg2LCAwLjM3NTMyMiwgMC45MDM2NDQsIDEuNzg5NDgsIDIuNjY5MTMsIDQuNzI3NTYsIDUuODk1NzgiLCBcCi0gICAgICAgICAgIjAuMzE3OTA5LCAwLjM3NjYxNCwgMC45MDQ3OTIsIDEuNzgzNzQsIDIuNjY5NjIsIDQuNzI2MzIsIDUuODkzMDYiLCBcCi0gICAgICAgICAgIjAuMzE3OTE4LCAwLjM3NjU5NSwgMC45MDMwNjksIDEuNzg2MjQsIDIuNjczMDYsIDQuNzI4NjYsIDUuODk3MDEiLCBcCi0gICAgICAgICAgIjAuMzE3OTE4LCAwLjM3NjMzNSwgMC45MDU5MTUsIDEuNzg1OTgsIDIuNjY2MDMsIDQuNzI2NzEsIDUuODk2NiIsIFwKLSAgICAgICAgICAiMC4zMTc5OTYsIDAuMzc1ODY0LCAwLjkwMjUwMywgMS43ODgxMSwgMi42NzIxMywgNC43MjQ1MywgNS44OTcyNSIsIFwKLSAgICAgICAgICAiMC4zMTc4MzQsIDAuMzc1NTYxLCAwLjkwMjgwMSwgMS43ODU1NywgMi42NjU4MSwgNC43MjY1MiwgNS44OTY2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkExTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzE2OTA5LCAwLjM2ODU5NiwgMC44MzMyMzksIDEuNjA3NjMsIDIuMzgxNjIsIDQuMTg3ODMsIDUuMjE5MiIsIFwKLSAgICAgICAgICAiMC4zMjg4ODEsIDAuMzgwNTIzLCAwLjg0NTI0NywgMS42MTk2MSwgMi4zOTM1NCwgNC4xOTk4LCA1LjIzMDk4IiwgXAotICAgICAgICAgICIwLjM0Mzk2LCAwLjM5NTc2OSwgMC44NjAyNzYsIDEuNjM1NSwgMi40MDk0MywgNC4yMTQ1NCwgNS4yNDYyNiIsIFwKLSAgICAgICAgICAiMC4zNTg5NDEsIDAuNDEwNjExLCAwLjg3NTU1NiwgMS42NDk3OSwgMi40MjM3MiwgNC4yMjk2OCwgNS4yNjEyOSIsIFwKLSAgICAgICAgICAiMC4zNzM1NzEsIDAuNDI1MjUxLCAwLjg5MDAwMiwgMS42NjQ2NSwgMi40Mzg3MSwgNC4yNDQyMiwgNS4yNzU5NSIsIFwKLSAgICAgICAgICAiMC4zOTUxNTMsIDAuNDQ2NzM5LCAwLjkxMTQ3OSwgMS42ODYzNCwgMi40NjEwMSwgNC4yNjYyMSwgNS4yOTc1NSIsIFwKLSAgICAgICAgICAiMC40MTIxMzQsIDAuNDYzODYxLCAwLjkyODU5MywgMS43MDMwNCwgMi40Nzc4OSwgNC4yODMxMSwgNS4zMTQ2NSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC41NDMyNDMsIDAuNjQyNDU0LCAxLjU1NTU5LCAzLjA2NzE3LCA0LjU4NzQ0LCA4LjEwMjIsIDEwLjExNTMiLCBcCi0gICAgICAgICAgIjAuNTQzMjM3LCAwLjY0MzEwNiwgMS41NTU2MiwgMy4wNjY3MSwgNC41ODc3LCA4LjEwNDc4LCAxMC4xMTYzIiwgXAotICAgICAgICAgICIwLjU0MzIyOCwgMC42NDI1NCwgMS41NTU0NCwgMy4wNjM2NiwgNC41ODEwOSwgOC4xMDQyOSwgMTAuMTE2NCIsIFwKLSAgICAgICAgICAiMC41NDMxNjEsIDAuNjQ2MjkxLCAxLjU1NTk5LCAzLjA3MTgsIDQuNTg2OTQsIDguMTA0MzEsIDEwLjExNjMiLCBcCi0gICAgICAgICAgIjAuNTQzMTgxLCAwLjY0NDQzOCwgMS41NTUzNCwgMy4wNjYzNywgNC41ODA4NywgOC4xMDQxNywgMTAuMTE2MyIsIFwKLSAgICAgICAgICAiMC41NDMzNjEsIDAuNjQzOTIyLCAxLjU1NTMyLCAzLjA3NDg5LCA0LjU3ODc5LCA4LjEwNDYyLCAxMC4xMTUyIiwgXAotICAgICAgICAgICIwLjU0Mjc4MywgMC42NDQ0NTIsIDEuNTU1MzQsIDMuMDczNDQsIDQuNTkxMTIsIDguMTA0NDEsIDEwLjExNjMiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjMyNjM5LCAwLjI2MjM0NywgMC41Mjk2OTksIDAuOTc1NzY5LCAxLjQyMTI0LCAyLjQ2MDU3LCAzLjA1NDMiLCBcCi0gICAgICAgICAgIjAuMjQyNjIxLCAwLjI3MjMyNCwgMC41Mzk3MjcsIDAuOTg1MzIsIDEuNDMwNjksIDIuNDcwMzQsIDMuMDY0MjkiLCBcCi0gICAgICAgICAgIjAuMjU1ODc4LCAwLjI4NTYxNSwgMC41NTMwMTIsIDAuOTk4ODQ0LCAxLjQ0NDE0LCAyLjQ4NDU4LCAzLjA3NzYzIiwgXAotICAgICAgICAgICIwLjI2OTA0MywgMC4yOTg3ODcsIDAuNTY2MiwgMS4wMTE5NywgMS40NTczNiwgMi40OTcwNywgMy4wOTA4MiIsIFwKLSAgICAgICAgICAiMC4yODIwNTMsIDAuMzExNzgzLCAwLjU3OTIzNSwgMS4wMjQ4MiwgMS40NzA0NywgMi41MTA4MiwgMy4xMDM3NyIsIFwKLSAgICAgICAgICAiMC4zMDI0NjQsIDAuMzMyMTk4LCAwLjU5OTY2OSwgMS4wNDUxOSwgMS40OTA5MywgMi41MzEyNSwgMy4xMjQxMyIsIFwKLSAgICAgICAgICAiMC4zMTg1NDMsIDAuMzQ4Mjc3LCAwLjYxNTcwOSwgMS4wNjE2OCwgMS41MDY5MiwgMi41NDczNSwgMy4xNDA0MSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMTc4ODUsIDAuMzc1NjE2LCAwLjkwMzkyOCwgMS43ODY4OCwgMi42NjY5OCwgNC43MjY5MywgNS44OTU3MiIsIFwKLSAgICAgICAgICAiMC4zMTc5MDgsIDAuMzc2Mjg0LCAwLjkwNDQyMiwgMS43ODcxNiwgMi42NjkxLCA0LjcyMjM3LCA1Ljg5NTI4IiwgXAotICAgICAgICAgICIwLjMxNzkzNiwgMC4zNzY1OTgsIDAuOTA0NDM3LCAxLjc4NTQ5LCAyLjY2NTI5LCA0LjcyMzg2LCA1Ljg5NzY3IiwgXAotICAgICAgICAgICIwLjMxNzkyNywgMC4zNzY1OTUsIDAuOTA0MTA3LCAxLjc4NjksIDIuNjc1NDEsIDQuNzI3NzMsIDUuODk3MjkiLCBcCi0gICAgICAgICAgIjAuMzE3OTgxLCAwLjM3NjY1NCwgMC45MDUxMzEsIDEuNzg3MjksIDIuNjY3NDIsIDQuNzI1OTIsIDUuODk3MjEiLCBcCi0gICAgICAgICAgIjAuMzE4MDM5LCAwLjM3NjY5OSwgMC45MDUxOTEsIDEuNzkwMTIsIDIuNjY4MDYsIDQuNzI0OTIsIDUuODk1MzQiLCBcCi0gICAgICAgICAgIjAuMzE3ODk1LCAwLjM3NjA5OCwgMC45MDQ4MTMsIDEuNzg0NTksIDIuNjY1MTMsIDQuNzIzODgsIDUuODk3MyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjg3OTksIDAuMzM5NTk3LCAwLjgwNDM1NSwgMS41Nzg5NiwgMi4zNTM3MiwgNC4xNTg4MywgNS4xOTAxOCIsIFwKLSAgICAgICAgICAiMC4yOTkzNywgMC4zNTEwMywgMC44MTU1OTksIDEuNTkxMDgsIDIuMzY1MTUsIDQuMTY5OTUsIDUuMjAxNjEiLCBcCi0gICAgICAgICAgIjAuMzEyMTY5LCAwLjM2NDAxNSwgMC44Mjg0NTUsIDEuNjAzOSwgMi4zNzc4NSwgNC4xODI4NCwgNS4yMTQ0NSIsIFwKLSAgICAgICAgICAiMC4zMjQ3NzcsIDAuMzc2MzU2LCAwLjg0MDk2OSwgMS42MTY1MSwgMi4zOTA0OCwgNC4xOTUzOCwgNS4yMjciLCBcCi0gICAgICAgICAgIjAuMzM3MDUxLCAwLjM4ODc4NSwgMC44NTM5MywgMS42Mjc5OSwgMi40MDI5NywgNC4yMDgwMSwgNS4yMzk1MyIsIFwKLSAgICAgICAgICAiMC4zNTY2MDcsIDAuNDA4MzMsIDAuODczMTIsIDEuNjQ4MTQsIDIuNDIyNDcsIDQuMjI3NzMsIDUuMjU5MzgiLCBcCi0gICAgICAgICAgIjAuMzczODQyLCAwLjQyNTY3NywgMC44OTA3MTgsIDEuNjY0OTgsIDIuNDM5MTYsIDQuMjQ1MTMsIDUuMjc2NzUiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuNTQzMjYxLCAwLjY0NDQ0LCAxLjU1NTI5LCAzLjA3NDc5LCA0LjU3OTg2LCA4LjEwNDQ1LCAxMC4xMTU4IiwgXAotICAgICAgICAgICIwLjU0MzIxNCwgMC42NDQ0ODUsIDEuNTU5NzUsIDMuMDczNTYsIDQuNTkxMjQsIDguMTA0MjIsIDEwLjExNjMiLCBcCi0gICAgICAgICAgIjAuNTQ0ODY5LCAwLjY0NDA3NiwgMS41NTUyOCwgMy4wNzM0OCwgNC41OTE0MSwgOC4xMDQ0NSwgMTAuMTE2NCIsIFwKLSAgICAgICAgICAiMC41NDE2MzgsIDAuNjQ0NTcyLCAxLjU1NDYxLCAzLjA2MzYzLCA0LjU5MTQ4LCA4LjEwNDE1LCAxMC4xMTY0IiwgXAotICAgICAgICAgICIwLjU0MzQ3NiwgMC42NDI3NzMsIDEuNTUwMywgMy4wNzM5OSwgNC41NzcxLCA4LjEwNDUzLCAxMC4xMTU1IiwgXAotICAgICAgICAgICIwLjU0MzM2OCwgMC42NDQzMTUsIDEuNTU1LCAzLjA3NDgxLCA0LjU5MDk2LCA4LjEwNDMzLCAxMC4xMTUyIiwgXAotICAgICAgICAgICIwLjU0NDcwNywgMC42NDUxMTcsIDEuNTU1NDIsIDMuMDgyNzIsIDQuNTg3MzksIDguMTA0MzEsIDEwLjExNjMiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTY4ODc0LCAwLjE5ODYxOCwgMC40NjYzMDcsIDAuOTExNzAzLCAxLjM1NzY1LCAyLjM5NzQ2LCAyLjk5MDg1IiwgXAotICAgICAgICAgICIwLjE4MDcsIDAuMjEwNDgyLCAwLjQ3Nzk2NiwgMC45MjM2NDQsIDEuMzY5MDcsIDIuNDA4NzIsIDMuMDAyOTciLCBcCi0gICAgICAgICAgIjAuMTk1NSwgMC4yMjUyNDIsIDAuNDg5NzkzLCAwLjkzNTc0NCwgMS4zODE0OCwgMi40MjA1MywgMy4wMTQ2NSIsIFwKLSAgICAgICAgICAiMC4yMTExMDMsIDAuMjQwMTMsIDAuNTA3NjkyLCAwLjk0OTIxMiwgMS4zOTQ2OCwgMi40MzQ4LCAzLjAyODI0IiwgXAotICAgICAgICAgICIwLjIyNjMwOCwgMC4yNTUzMjksIDAuNTIyNzMxLCAwLjk2MjYyMiwgMS40MDg0NiwgMi40NDgyNCwgMy4wNDEyNSIsIFwKLSAgICAgICAgICAiMC4yNTA3LCAwLjI4MDM0MywgMC41NDY1MTEsIDAuOTkyNDAzLCAxLjQyOTc1LCAyLjQ2ODc2LCAzLjA2MjkzIiwgXAotICAgICAgICAgICIwLjI3MjE0OSwgMC4zMDE3OTgsIDAuNTY3NDA4LCAxLjAxMzExLCAxLjQ1NjYsIDIuNDg4NTIsIDMuMDgyMTMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzE4NDQsIDAuMzc3MjMxLCAwLjkwNTgyLCAxLjc4NTg2LCAyLjY2NzI5LCA0LjcyMjU5LCA1LjkwMDg4IiwgXAotICAgICAgICAgICIwLjMxODQ1NCwgMC4zNzczMTQsIDAuOTA1ODcyLCAxLjc4NjY4LCAyLjY2NjQ5LCA0LjcyMjI4LCA1Ljg5NzMiLCBcCi0gICAgICAgICAgIjAuMzE4NTg1LCAwLjM3NzI5NiwgMC45MDU5MjMsIDEuNzg2NTEsIDIuNjY3MDgsIDQuNzIxODUsIDUuODk2NzkiLCBcCi0gICAgICAgICAgIjAuMzE4NTM5LCAwLjM3NzI1OCwgMC45MDU3NzYsIDEuNzg2NjIsIDIuNjY3NjIsIDQuNzIxNTIsIDUuODk3MzkiLCBcCi0gICAgICAgICAgIjAuMzE4OTU5LCAwLjM3NzM3OCwgMC45MDU3NjYsIDEuNzg2NDEsIDIuNjY3MTMsIDQuNzIzMjIsIDUuOTAwOTMiLCBcCi0gICAgICAgICAgIjAuMzIyMTc4LCAwLjM3OTE2NSwgMC45MDU4NjEsIDEuNzg2NCwgMi42NjcwMSwgNC43MjE2NCwgNS45MDEwNiIsIFwKLSAgICAgICAgICAiMC4zMjY5MzMsIDAuMzgyODUxLCAwLjkwNTc4LCAxLjc4NjQ3LCAyLjY2NzIxLCA0LjcyMjM5LCA1LjkwMTEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBME4iOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTA1NywgMC4wMDEwNTcsIDAuMDAxMDU4LCAwLjAwMTA1OSwgMC4wMDEwNTksIDAuMDAxMDYsIDAuMDAxMDU5IiwgXAotICAgICAgICAgICIwLjAwMTA0MywgMC4wMDEwNDMsIDAuMDAxMDQ1LCAwLjAwMTA0NSwgMC4wMDEwNDYsIDAuMDAxMDQ2LCAwLjAwMTA0NSIsIFwKLSAgICAgICAgICAiMC4wMDEwMzUsIDAuMDAxMDM2LCAwLjAwMTAzNywgMC4wMDEwMzgsIDAuMDAxMDM4LCAwLjAwMTAzOCwgMC4wMDEwMzgiLCBcCi0gICAgICAgICAgIjAuMDAxMDI5LCAwLjAwMTAzLCAwLjAwMTAzMiwgMC4wMDEwMzMsIDAuMDAxMDM0LCAwLjAwMTAzNCwgMC4wMDEwMzQiLCBcCi0gICAgICAgICAgIjAuMDAxMDI2LCAwLjAwMTAyNywgMC4wMDEwMjksIDAuMDAxMDMxLCAwLjAwMTAzMSwgMC4wMDEwMzEsIDAuMDAxMDMxIiwgXAotICAgICAgICAgICIwLjAwMTAyMywgMC4wMDEwMjQsIDAuMDAxMDI3LCAwLjAwMTAyOCwgMC4wMDEwMjksIDAuMDAxMDI5LCAwLjAwMTAyOSIsIFwKLSAgICAgICAgICAiMC4wMDEwMjEsIDAuMDAxMDIzLCAwLjAwMTAyNywgMC4wMDEwMjgsIDAuMDAxMDI5LCAwLjAwMTAyOSwgMC4wMDEwMjkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDE3OTMsIDAuMDAxNzk0LCAwLjAwMTc5NiwgMC4wMDE3OTcsIDAuMDAxNzk3LCAwLjAwMTc5OCwgMC4wMDE3OTgiLCBcCi0gICAgICAgICAgIjAuMDAxNzg2LCAwLjAwMTc4NywgMC4wMDE3ODksIDAuMDAxNzksIDAuMDAxNzksIDAuMDAxNzksIDAuMDAxNzkiLCBcCi0gICAgICAgICAgIjAuMDAxNzgxLCAwLjAwMTc4MiwgMC4wMDE3ODQsIDAuMDAxNzg1LCAwLjAwMTc4NSwgMC4wMDE3ODUsIDAuMDAxNzg1IiwgXAotICAgICAgICAgICIwLjAwMTc3OCwgMC4wMDE3NzgsIDAuMDAxNzgxLCAwLjAwMTc4MiwgMC4wMDE3ODIsIDAuMDAxNzgyLCAwLjAwMTc4MiIsIFwKLSAgICAgICAgICAiMC4wMDE3NzYsIDAuMDAxNzc2LCAwLjAwMTc3OSwgMC4wMDE3OCwgMC4wMDE3ODEsIDAuMDAxNzgxLCAwLjAwMTc4MSIsIFwKLSAgICAgICAgICAiMC4wMDE3NzQsIDAuMDAxNzc1LCAwLjAwMTc3OCwgMC4wMDE3NzksIDAuMDAxNzgsIDAuMDAxNzgsIDAuMDAxNzgiLCBcCi0gICAgICAgICAgIjAuMDAxNzcyLCAwLjAwMTc3MywgMC4wMDE3NzcsIDAuMDAxNzc4LCAwLjAwMTc3OSwgMC4wMDE3NzksIDAuMDAxNzc5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTFOIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDA4ODIsIDAuMDAwODgzLCAwLjAwMDg4MywgMC4wMDA4ODQsIDAuMDAwODg0LCAwLjAwMDg4NCwgMC4wMDA4ODQiLCBcCi0gICAgICAgICAgIjAuMDAwODcsIDAuMDAwODcsIDAuMDAwODcxLCAwLjAwMDg3MSwgMC4wMDA4NzEsIDAuMDAwODcyLCAwLjAwMDg3MSIsIFwKLSAgICAgICAgICAiMC4wMDA4NTcsIDAuMDAwODU3LCAwLjAwMDg1OSwgMC4wMDA4NTksIDAuMDAwODYsIDAuMDAwODU5LCAwLjAwMDg1OSIsIFwKLSAgICAgICAgICAiMC4wMDA4NDksIDAuMDAwODUsIDAuMDAwODUyLCAwLjAwMDg1MiwgMC4wMDA4NTIsIDAuMDAwODUzLCAwLjAwMDg1MyIsIFwKLSAgICAgICAgICAiMC4wMDA4NDQsIDAuMDAwODQ1LCAwLjAwMDg0NywgMC4wMDA4NDgsIDAuMDAwODQ4LCAwLjAwMDg0OSwgMC4wMDA4NDgiLCBcCi0gICAgICAgICAgIjAuMDAwODM5LCAwLjAwMDg0LCAwLjAwMDg0MywgMC4wMDA4NDQsIDAuMDAwODQ1LCAwLjAwMDg0NSwgMC4wMDA4NDUiLCBcCi0gICAgICAgICAgIjAuMDAwODM3LCAwLjAwMDgzOCwgMC4wMDA4NDIsIDAuMDAwODQzLCAwLjAwMDg0MywgMC4wMDA4NDQsIDAuMDAwODQ0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxNjU2LCAwLjAwMTY1NywgMC4wMDE2NTksIDAuMDAxNjYsIDAuMDAxNjYsIDAuMDAxNjYxLCAwLjAwMTY2MSIsIFwKLSAgICAgICAgICAiMC4wMDE2NDMsIDAuMDAxNjQ0LCAwLjAwMTY0NywgMC4wMDE2NDgsIDAuMDAxNjQ4LCAwLjAwMTY0OCwgMC4wMDE2NDgiLCBcCi0gICAgICAgICAgIjAuMDAxNjM1LCAwLjAwMTYzNiwgMC4wMDE2MzksIDAuMDAxNjQsIDAuMDAxNjQxLCAwLjAwMTY0MSwgMC4wMDE2NDEiLCBcCi0gICAgICAgICAgIjAuMDAxNjMxLCAwLjAwMTYzMiwgMC4wMDE2MzUsIDAuMDAxNjM2LCAwLjAwMTYzNywgMC4wMDE2MzcsIDAuMDAxNjM3IiwgXAotICAgICAgICAgICIwLjAwMTYyOCwgMC4wMDE2MjksIDAuMDAxNjMzLCAwLjAwMTYzNSwgMC4wMDE2MzUsIDAuMDAxNjM2LCAwLjAwMTYzNiIsIFwKLSAgICAgICAgICAiMC4wMDE2MjUsIDAuMDAxNjI3LCAwLjAwMTYzMiwgMC4wMDE2MzQsIDAuMDAxNjM0LCAwLjAwMTYzNSwgMC4wMDE2MzUiLCBcCi0gICAgICAgICAgIjAuMDAxNjI0LCAwLjAwMTYyNiwgMC4wMDE2MzIsIDAuMDAxNjM0LCAwLjAwMTYzNSwgMC4wMDE2MzYsIDAuMDAxNjM2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDk5NSwgMC4wMDA5OTUsIDAuMDAwOTk1LCAwLjAwMDk5NSwgMC4wMDA5OTUsIDAuMDAwOTk1LCAwLjAwMDk5NSIsIFwKLSAgICAgICAgICAiMC4wMDA5OTQsIDAuMDAwOTk0LCAwLjAwMDk5NSwgMC4wMDA5OTUsIDAuMDAwOTk1LCAwLjAwMDk5NSwgMC4wMDA5OTUiLCBcCi0gICAgICAgICAgIjAuMDAwOTkyLCAwLjAwMDk5MiwgMC4wMDA5OTQsIDAuMDAwOTk2LCAwLjAwMDk5NSwgMC4wMDA5OTUsIDAuMDAwOTk1IiwgXAotICAgICAgICAgICIwLjAwMDk5MSwgMC4wMDA5OTEsIDAuMDAwOTk0LCAwLjAwMDk5NCwgMC4wMDA5OTUsIDAuMDAwOTk1LCAwLjAwMDk5NSIsIFwKLSAgICAgICAgICAiMC4wMDA5ODksIDAuMDAwOTksIDAuMDAwOTkzLCAwLjAwMDk5NSwgMC4wMDA5OTQsIDAuMDAwOTk1LCAwLjAwMDk5NSIsIFwKLSAgICAgICAgICAiMC4wMDA5ODgsIDAuMDAwOTg5LCAwLjAwMDk5MiwgMC4wMDA5OTQsIDAuMDAwOTk1LCAwLjAwMDk5NSwgMC4wMDA5OTUiLCBcCi0gICAgICAgICAgIjAuMDAwOTg2LCAwLjAwMDk4NywgMC4wMDA5OTIsIDAuMDAwOTkzLCAwLjAwMDk5NCwgMC4wMDA5OTUsIDAuMDAwOTk1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwMjAyLCAwLjAwMDIwMiwgMC4wMDAyMDIsIDAuMDAwMjAyLCAwLjAwMDIwMiwgMC4wMDAyMDIsIDAuMDAwMjAxIiwgXAotICAgICAgICAgICIwLjAwMDE5NSwgMC4wMDAxOTUsIDAuMDAwMTk2LCAwLjAwMDE5NiwgMC4wMDAxOTYsIDAuMDAwMTk1LCAwLjAwMDE5NSIsIFwKLSAgICAgICAgICAiMC4wMDAxOTIsIDAuMDAwMTkyLCAwLjAwMDE5MywgMC4wMDAxOTQsIDAuMDAwMTk0LCAwLjAwMDE5MywgMC4wMDAxOTMiLCBcCi0gICAgICAgICAgIjAuMDAwMTksIDAuMDAwMTkxLCAwLjAwMDE5MywgMC4wMDAxOTMsIDAuMDAwMTkzLCAwLjAwMDE5MywgMC4wMDAxOTMiLCBcCi0gICAgICAgICAgIjAuMDAwMTg5LCAwLjAwMDE4OSwgMC4wMDAxOTIsIDAuMDAwMTkyLCAwLjAwMDE5MiwgMC4wMDAxOTIsIDAuMDAwMTkyIiwgXAotICAgICAgICAgICIwLjAwMDE4NywgMC4wMDAxODgsIDAuMDAwMTkxLCAwLjAwMDE5MiwgMC4wMDAxOTIsIDAuMDAwMTkyLCAwLjAwMDE5MiIsIFwKLSAgICAgICAgICAiMC4wMDAxODYsIDAuMDAwMTg3LCAwLjAwMDE5LCAwLjAwMDE5MiwgMC4wMDAxOTIsIDAuMDAwMTkyLCAwLjAwMDE5MiIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogQU9JMkJCMlgyICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoQU9JMkJCMlgyKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMjMxNTY1OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBME4pICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDU2MTc1OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDU2MTc1OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDU2MTU3OTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA3NDQsIDAuMDAwNzMsIDAuMDAwNzIsIDAuMDAwNzE1LCAwLjAwMDcxMiwgMC4wMDA3MSwgMC4wMDA3MSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTc2NiwgMC4wMDE3NTUsIDAuMDAxNzQ4LCAwLjAwMTc0MywgMC4wMDE3MzgsIDAuMDAxNzM0LCAwLjAwMTczMiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQTFOKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA1Nzg2MjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA1Nzg2MjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA1Nzg0OTc7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNzQxLCAwLjAwMDcyOCwgMC4wMDA3MTksIDAuMDAwNzEzLCAwLjAwMDcwOSwgMC4wMDA3MDcsIDAuMDAwNzA3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxOTA3LCAwLjAwMTg5NiwgMC4wMDE4OSwgMC4wMDE4ODQsIDAuMDAxODc5LCAwLjAwMTg3NiwgMC4wMDE4NzMiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE2MjA3NzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE2MjA3NzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE2MTYzNzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxNjksIDAuMDAwMTY5LCAwLjAwMDE2OSwgMC4wMDAxNjksIDAuMDAwMTY5LCAwLjAwMDE3LCAwLjAwMDE3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMTY5LCAwLjAwMDE2OSwgMC4wMDAxNjksIDAuMDAwMTY5LCAwLjAwMDE2OSwgMC4wMDAxNjksIDAuMDAwMTY5Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCMSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNTY5NTY7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNTY4NTE7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNTY5NTY7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMTY5LCAwLjAwMDE3LCAwLjAwMDE3LCAwLjAwMDE3LCAwLjAwMDE3LCAwLjAwMDE3LCAwLjAwMDE3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMTY5LCAwLjAwMDE2OSwgMC4wMDAxNjksIDAuMDAwMTY5LCAwLjAwMDE2OSwgMC4wMDAxNjksIDAuMDAwMTY5Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMTE3NzExOwotICAgIGZ1bmN0aW9uIDogIighKChCMCBCMSkrKCEoQTBOK0ExTikpKSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEwTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTgxMDcsIDAuNTU0MDQ2LCAwLjg1NTM0NywgMS4yMzIwOSwgMS42MDg3LCAxLjk4NTI2LCAyLjM2MjA0IiwgXAotICAgICAgICAgICIwLjE5MjgyMywgMC41NjU3MDksIDAuODY2OTQyLCAxLjI0Mzg1LCAxLjYyMTMyLCAxLjk5Nzc2LCAyLjM3NDI2IiwgXAotICAgICAgICAgICIwLjIwODE4NywgMC41ODEwNzIsIDAuODgyMzksIDEuMjU5NzIsIDEuNjM1ODMsIDIuMDEzMTksIDIuMzg5MzIiLCBcCi0gICAgICAgICAgIjAuMjIzNTMxLCAwLjU5NjM3OSwgMC44OTc4NiwgMS4yNzUxLCAxLjY1MTI0LCAyLjAyODQzLCAyLjQwNDYzIiwgXAotICAgICAgICAgICIwLjIzODc3OCwgMC42MTE3MTEsIDAuOTEzMDM2LCAxLjI5MDM1LCAxLjY2NzMyLCAyLjA0MzMyLCAyLjQyMDY5IiwgXAotICAgICAgICAgICIwLjI2Mjg0NSwgMC42MzU4NzEsIDAuOTM3MTgyLCAxLjMxNDM5LCAxLjY5MDYsIDIuMDY3NzEsIDIuNDQ0NzkiLCBcCi0gICAgICAgICAgIjAuMjgyOTIsIDAuNjU1ODk5LCAwLjk1NzI5NCwgMS4zMzM5NiwgMS43MTEyNCwgMi4wODc0OSwgMi40NjUwNSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xOTgxMDQsIDAuOTMyMDYyLCAxLjUyMTUsIDIuMjU4NDcsIDIuOTk1NzcsIDMuNzMzMjMsIDQuNDcyMDIiLCBcCi0gICAgICAgICAgIjAuMTk4MDg1LCAwLjkzMjIzMSwgMS41MjEyMSwgMi4yNTg2NywgMi45OTY0MywgMy43MzI3MSwgNC40NzE0OCIsIFwKLSAgICAgICAgICAiMC4xOTc5OTIsIDAuOTMxNDcxLCAxLjUyMjE0LCAyLjI1ODk4LCAyLjk5NzI3LCAzLjczMjgzLCA0LjQ3MDM3IiwgXAotICAgICAgICAgICIwLjE5ODA2NiwgMC45MzEzNTQsIDEuNTIyMTQsIDIuMjU4NTUsIDIuOTk3MjcsIDMuNzMyOCwgNC40NzE4NCIsIFwKLSAgICAgICAgICAiMC4xOTgxOCwgMC45MzEyMDgsIDEuNTIyMTQsIDIuMjU4ODQsIDIuOTk1OTQsIDMuNzM0ODMsIDQuNDcwMiIsIFwKLSAgICAgICAgICAiMC4xOTgxMjYsIDAuOTMyMDczLCAxLjUyMjE4LCAyLjI1ODQ3LCAyLjk5NzIzLCAzLjczMjgxLCA0LjQ3MDEzIiwgXAotICAgICAgICAgICIwLjE5ODE4MSwgMC45MzIwNDQsIDEuNTIxMjgsIDIuMjU4NDcsIDIuOTk2MjQsIDMuNzM0ODgsIDQuNDcwMzIiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTg5ODkxLCAwLjYwMDM0MiwgMC45MjcyMjQsIDEuMzM0ODUsIDEuNzQyODEsIDIuMTUxMTcsIDIuNTU4MDYiLCBcCi0gICAgICAgICAgIjAuMjAxMzEzLCAwLjYxMTgyMiwgMC45Mzg1NzYsIDEuMzQ2OTUsIDEuNzU0MDUsIDIuMTYyOSwgMi41Njk5MyIsIFwKLSAgICAgICAgICAiMC4yMTYwNzgsIDAuNjI2NzI4LCAwLjk1MzE4NiwgMS4zNjEyNSwgMS43Njk2NCwgMi4xNzcwNywgMi41ODQ4MyIsIFwKLSAgICAgICAgICAiMC4yMzA4NzYsIDAuNjQxNTc4LCAwLjk2ODE1OCwgMS4zNzU5LCAxLjc4NDY4LCAyLjE5MTM0LCAyLjU5OTc3IiwgXAotICAgICAgICAgICIwLjI0NTQ0MiwgMC42NTYwNDgsIDAuOTgyNzIyLCAxLjM5MDcyLCAxLjc5ODM4LCAyLjIwNjczLCAyLjYxNDM5IiwgXAotICAgICAgICAgICIwLjI2NzMyNSwgMC42NzgxMjksIDEuMDA0NzksIDEuNDEzMjEsIDEuODIwNjQsIDIuMjI4NzgsIDIuNjM1NTYiLCBcCi0gICAgICAgICAgIjAuMjg0OTE4LCAwLjY5NTU1NywgMS4wMjIzNiwgMS40MzA4NiwgMS44Mzc5NywgMi4yNDY3MywgMi42NTM0MiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMzE5ODksIDEuMDExMzQsIDEuNjM0ODgsIDIuNDE0NzIsIDMuMTkyNjgsIDMuOTcyODIsIDQuNzUyMDIiLCBcCi0gICAgICAgICAgIjAuMjMxOTk0LCAxLjAxMTA3LCAxLjYzNDgyLCAyLjQxMzg0LCAzLjE5MzIsIDMuOTcyMzksIDQuNzUyMzUiLCBcCi0gICAgICAgICAgIjAuMjMxOTg4LCAxLjAxMTA4LCAxLjYzNDU1LCAyLjQxNDQxLCAzLjE5MzY2LCAzLjk3Mjg0LCA0Ljc1MDQ4IiwgXAotICAgICAgICAgICIwLjIzMTk5MiwgMS4wMTExMywgMS42MzUxMSwgMi40MTQ0NywgMy4xOTI2MSwgMy45NzI4NCwgNC43NTA0NyIsIFwKLSAgICAgICAgICAiMC4yMzIwMDcsIDEuMDExNTUsIDEuNjM0NjMsIDIuNDE0NDcsIDMuMTkyOTQsIDMuOTcyMjEsIDQuNzUyMDciLCBcCi0gICAgICAgICAgIjAuMjMyMDY3LCAxLjAxMTE0LCAxLjYzNDk5LCAyLjQxNDQxLCAzLjE5MzY2LCAzLjk3MjM3LCA0Ljc1MTg1IiwgXAotICAgICAgICAgICIwLjIzMjIsIDEuMDExMzcsIDEuNjM0NjQsIDIuNDEzNjYsIDMuMTkyNSwgMy45NzI4NCwgNC43NTE5MyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMU4iOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE3OTcyMywgMC41NTQ0NTgsIDAuODUzODUyLCAxLjIyOTM1LCAxLjYwNjE2LCAxLjk4Mjk0LCAyLjM1OTUxIiwgXAotICAgICAgICAgICIwLjE5MTMxNywgMC41NjYwMjQsIDAuODY1NDYyLCAxLjI0MTE4LCAxLjYxNzg3LCAxLjk5NTE2LCAyLjM3MjMzIiwgXAotICAgICAgICAgICIwLjIwNjc0NSwgMC41ODE1NTQsIDAuODgwODc3LCAxLjI1NjcsIDEuNjMzMywgMi4wMTA4NiwgMi4zODY3MSIsIFwKLSAgICAgICAgICAiMC4yMjIwOTcsIDAuNTk2OTM4LCAwLjg5NjMzLCAxLjI3MjE5LCAxLjY0ODc0LCAyLjAyNTk4LCAyLjQwMjg0IiwgXAotICAgICAgICAgICIwLjIzNzMzMywgMC42MTIxNjQsIDAuOTExNjY3LCAxLjI4NzM1LCAxLjY2NDM5LCAyLjA0MDg1LCAyLjQxNzM5IiwgXAotICAgICAgICAgICIwLjI2MTQ1MiwgMC42MzYzMjcsIDAuOTM1NjE1LCAxLjMxMTQ2LCAxLjY4OTA1LCAyLjA2NTMyLCAyLjQ0MjI3IiwgXAotICAgICAgICAgICIwLjI4MTY3OSwgMC42NTY2OTksIDAuOTU2MDU3LCAxLjMzMjQyLCAxLjcwODgyLCAyLjA4NTEyLCAyLjQ2MjM4Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE5MzU3NCwgMC45Mjc4NjksIDEuNTIwNzgsIDIuMjU1NDEsIDMuMDAwNzksIDMuNzQxMTMsIDQuNDgxMDMiLCBcCi0gICAgICAgICAgIjAuMTkzNjIyLCAwLjkyODA0LCAxLjUxOTcsIDIuMjU5MjIsIDIuOTk4NiwgMy43NDI2NCwgNC40Njc2MyIsIFwKLSAgICAgICAgICAiMC4xOTM2MTMsIDAuOTI4ODM4LCAxLjUyNTcxLCAyLjI2MDUyLCAyLjk5OTM1LCAzLjcyOTU4LCA0LjQ4MTEyIiwgXAotICAgICAgICAgICIwLjE5MzcwNCwgMC45Mjc0NjksIDEuNTE5NTcsIDIuMjU0MDUsIDIuOTk4MzMsIDMuNzQyNTUsIDQuNDgxNzQiLCBcCi0gICAgICAgICAgIjAuMTkzNTQ3LCAwLjkyNjEwMSwgMS41MjEwOCwgMi4yNTU4NywgMi45OTE2NywgMy43NDE1NSwgNC40NzYxNiIsIFwKLSAgICAgICAgICAiMC4xOTM1NzEsIDAuOTI2MDk4LCAxLjUyMTM3LCAyLjI2MDc0LCAyLjk5MTc0LCAzLjcyOTcsIDQuNDY2ODkiLCBcCi0gICAgICAgICAgIjAuMTkzNzYxLCAwLjkyODg1OCwgMS41MTcyNCwgMi4yNTQwNywgMi45OTUwMywgMy43NDA4OCwgNC40ODE1NCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xODQ3MzYsIDAuNTk1MTQ4LCAwLjkyMTg4MiwgMS4zMjk2OCwgMS43Mzg0MywgMi4xNDU0MiwgMi41NTM1OSIsIFwKLSAgICAgICAgICAiMC4xOTYxOTMsIDAuNjA2NzksIDAuOTMzNDEyLCAxLjM0MTQ1LCAxLjc0OTc0LCAyLjE1Njc4LCAyLjU2NDciLCBcCi0gICAgICAgICAgIjAuMjExMTM3LCAwLjYyMTczMSwgMC45NDgyODcsIDEuMzU2NjQsIDEuNzY0NjksIDIuMTcyODksIDIuNTc5ODIiLCBcCi0gICAgICAgICAgIjAuMjI1ODk1LCAwLjYzNjU1MSwgMC45NjMyOTMsIDEuMzcxMDIsIDEuNzc4OTYsIDIuMTg3MzUsIDIuNTk0MjkiLCBcCi0gICAgICAgICAgIjAuMjM5OTAyLCAwLjY1MDQ2NCwgMC45NzczNTMsIDEuMzg1ODEsIDEuNzkzMTUsIDIuMjAxMTYsIDIuNjA5IiwgXAotICAgICAgICAgICIwLjI2MjQ4MSwgMC42NzMxMzMsIDAuOTk5ODcxLCAxLjQwNzkzLCAxLjgxNTU1LCAyLjIyNDQsIDIuNjMxNDYiLCBcCi0gICAgICAgICAgIjAuMjc5OTk0LCAwLjY5MDgyNiwgMS4wMTc3NSwgMS40MjU1NiwgMS44MzM5MywgMi4yNDEyMiwgMi42NDk1MiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMzIwNTUsIDEuMDExMTQsIDEuNjM1MjQsIDIuNDE0NTIsIDMuMTkyNjQsIDMuOTcyNDUsIDQuNzUxMjciLCBcCi0gICAgICAgICAgIjAuMjMyMDYsIDEuMDExNDUsIDEuNjM0ODgsIDIuNDEzNTMsIDMuMTkyNTcsIDMuOTcyNDIsIDQuNzUwOTEiLCBcCi0gICAgICAgICAgIjAuMjMyMDUyLCAxLjAxMTMxLCAxLjYzNTE5LCAyLjQxMzc5LCAzLjE5MzY1LCAzLjk3MTkyLCA0Ljc1MTcyIiwgXAotICAgICAgICAgICIwLjIzMjA1NywgMS4wMTExNCwgMS42MzQ5MywgMi40MTM5NiwgMy4xOTI2MiwgMy45NzI2NSwgNC43NTE5NiIsIFwKLSAgICAgICAgICAiMC4yMzIxNDUsIDEuMDExMywgMS42MzQ5OSwgMi40MTQyNCwgMy4xOTM3NywgMy45NzI3MSwgNC43NTE3NiIsIFwKLSAgICAgICAgICAiMC4yMzIyMTcsIDEuMDExMzIsIDEuNjM0NjEsIDIuNDE0NDgsIDMuMTkyODgsIDMuOTcyODMsIDQuNzUxOTMiLCBcCi0gICAgICAgICAgIjAuMjMyNDEzLCAxLjAxMTI4LCAxLjYzNDg3LCAyLjQxNDMzLCAzLjE5MzcxLCAzLjk3MjUyLCA0Ljc1MTkyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDYyMTIsIDAuNDc5MDk1LCAwLjc3Njc2MywgMS4xNDg5NiwgMS41MjMwNywgMS44OTc0OSwgMi4yNzE4NCIsIFwKLSAgICAgICAgICAiMC4xMTY0NSwgMC40ODk0NjgsIDAuNzg3MzkzLCAxLjE1OTczLCAxLjUzMzgxLCAxLjkwODI0LCAyLjI4MTczIiwgXAotICAgICAgICAgICIwLjEyOTQyNiwgMC41MDI1MTIsIDAuODAwMjI4LCAxLjE3MjgzLCAxLjU0NjQ2LCAxLjkyMTMsIDIuMjk0MzMiLCBcCi0gICAgICAgICAgIjAuMTQyNDkxLCAwLjUxNTU0NSwgMC44MTMzNzMsIDEuMTg1NjUsIDEuNTYwMjIsIDEuOTM0NTUsIDIuMzA3ODgiLCBcCi0gICAgICAgICAgIjAuMTU1NjEyLCAwLjUyODc4MywgMC44MjY0OTgsIDEuMTk4NjksIDEuNTcyODEsIDEuOTQ2ODEsIDIuMzIxNjQiLCBcCi0gICAgICAgICAgIjAuMTc3NTg1LCAwLjU0OTgxMywgMC44NDczNzIsIDEuMjE5NzIsIDEuNTk0NDksIDEuOTY4NzMsIDIuMzQxNzMiLCBcCi0gICAgICAgICAgIjAuMTk2NDA3LCAwLjU2ODI0NiwgMC44NjYwOTYsIDEuMjM4MjQsIDEuNjEyMzIsIDEuOTg2MDYsIDIuMzYwMDkiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTk3MjI4LCAwLjkyNTM0OCwgMS41MTA5NiwgMi4yNDI5LCAyLjk3MzgyLCAzLjcwNjUzLCA0LjQzNzgzIiwgXAotICAgICAgICAgICIwLjE5NzIyNSwgMC45MjUzNTcsIDEuNTEwMywgMi4yNDI0NywgMi45NzMyMSwgMy43MDUzMSwgNC40MzY5OCIsIFwKLSAgICAgICAgICAiMC4xOTY2OTUsIDAuOTI1MzUxLCAxLjUwOTcxLCAyLjI0MjQ4LCAyLjk3NSwgMy43MDUwOCwgNC40Mzg4OCIsIFwKLSAgICAgICAgICAiMC4xOTgxNDEsIDAuOTI1OTc4LCAxLjUxMDIxLCAyLjI0MzAzLCAyLjk3MzM2LCAzLjcwNTM3LCA0LjQzODY5IiwgXAotICAgICAgICAgICIwLjIwMTcwNSwgMC45MjU4NDcsIDEuNTEwOTksIDIuMjQyOTcsIDIuOTc1MDEsIDMuNzA2OTksIDQuNDM2NzkiLCBcCi0gICAgICAgICAgIjAuMjA5MzI5LCAwLjkyNTQ3LCAxLjUxMDgxLCAyLjI0MTc3LCAyLjk3MzUyLCAzLjcwNTM3LCA0LjQzODQxIiwgXAotICAgICAgICAgICIwLjIxNzk2MywgMC45MjUzNDMsIDEuNTEwMzgsIDIuMjQzMDEsIDIuOTc0OTUsIDMuNzA1MjcsIDQuNDM4NTgiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTEzMTY3LCAwLjUyMDkzMywgMC44NDc0MzQsIDEuMjU0OCwgMS42NjIwOSwgMi4wNjk3NiwgMi40NzcxOCIsIFwKLSAgICAgICAgICAiMC4xMjQ5NywgMC41MzMxMzYsIDAuODU5MDY1LCAxLjI2NjkzLCAxLjY3NDYxLCAyLjA4MjIzLCAyLjQ4OTczIiwgXAotICAgICAgICAgICIwLjEzODQ3OSwgMC41NDcwNDYsIDAuODcyOTgyLCAxLjI4MDUyLCAxLjY4ODk3LCAyLjA5NjA3LCAyLjUwMzg1IiwgXAotICAgICAgICAgICIwLjE1MTcyNSwgMC41NjAyODcsIDAuODg2NTI4LCAxLjI5NDU0LCAxLjcwMjY2LCAyLjEwOTU4LCAyLjUxNzE4IiwgXAotICAgICAgICAgICIwLjE2NDk5MywgMC41NzM4NjIsIDAuOTAwMTQsIDEuMzA3NjUsIDEuNzE1MzcsIDIuMTIzMzgsIDIuNTMxMjUiLCBcCi0gICAgICAgICAgIjAuMTg2NDU4LCAwLjU5NTQyMSwgMC45MjE2NDYsIDEuMzI5NzIsIDEuNzM2ODcsIDIuMTQ0ODksIDIuNTUyMTYiLCBcCi0gICAgICAgICAgIjAuMjA1MjM0LCAwLjYxNDM2NCwgMC45NDA2NDUsIDEuMzQ4MzIsIDEuNzU1OTMsIDIuMTYzNzYsIDIuNTcxNDUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjA0ODI1LCAwLjk4MjgzMywgMS42MDU2NiwgMi4zODk0NywgMy4xNzExNiwgMy45NTQ4LCA0LjcyNzA1IiwgXAotICAgICAgICAgICIwLjIwNDgzOCwgMC45ODI5MTIsIDEuNjA1NDgsIDIuMzkyNTQsIDMuMTYzMTQsIDMuOTQzODUsIDQuNzI4ODQiLCBcCi0gICAgICAgICAgIjAuMjA0ODQxLCAwLjk4MzA2OCwgMS42MDU3MSwgMi4zOTIzMSwgMy4xNzU3NCwgMy45NTQ3NiwgNC43Mjg3OSIsIFwKLSAgICAgICAgICAiMC4yMDUyMDEsIDAuOTgyODQ0LCAxLjYwNTU2LCAyLjM4NDQ5LCAzLjE2NDEsIDMuOTU0NzIsIDQuNzI1NTMiLCBcCi0gICAgICAgICAgIjAuMjA2ODM5LCAwLjk4Mjg3NywgMS42MDUyLCAyLjM5MjU1LCAzLjE3NDk1LCAzLjk0Njk4LCA0LjcyODA1IiwgXAotICAgICAgICAgICIwLjIxMTYzNiwgMC45ODI4MzQsIDEuNjA1NTYsIDIuMzg0NzUsIDMuMTcxNTgsIDMuOTQzNjYsIDQuNzI4MTkiLCBcCi0gICAgICAgICAgIjAuMjE3MzUzLCAwLjk4MjY4MiwgMS42MDY0MiwgMi4zODQ2LCAzLjE3MDI5LCAzLjk1NDI2LCA0LjcyNTY5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIxIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDIxNTMsIDAuNDc5NDQ5LCAwLjc4MTE1OCwgMS4xNTgwOSwgMS41MzQ0NSwgMS45MTE1MywgMi4yODc2IiwgXAotICAgICAgICAgICIwLjExMjU4OCwgMC40OTAwODcsIDAuNzkxNTM1LCAxLjE2ODI2LCAxLjU0NTQ0LCAxLjkyMTgsIDIuMjk5NTUiLCBcCi0gICAgICAgICAgIjAuMTI1NTAxLCAwLjUwMzE3NiwgMC44MDQ4NDYsIDEuMTgxOTMsIDEuNTU4MTksIDEuOTM1MzUsIDIuMzExMzkiLCBcCi0gICAgICAgICAgIjAuMTM4NDgzLCAwLjUxNjE0OCwgMC44MTc4MTgsIDEuMTk0NzQsIDEuNTcxMTgsIDEuOTQ4ODUsIDIuMzI0OTciLCBcCi0gICAgICAgICAgIjAuMTUxNTk3LCAwLjUyOTQwMSwgMC44MzA5MjksIDEuMjA3NjIsIDEuNTg0NTYsIDEuOTYxMzksIDIuMzM4NTgiLCBcCi0gICAgICAgICAgIjAuMTczNDQxLCAwLjU1MDIyOCwgMC44NTIwNzgsIDEuMjI4NTksIDEuNjA2MDcsIDEuOTgyNDcsIDIuMzU5MTYiLCBcCi0gICAgICAgICAgIjAuMTkyMjIzLCAwLjU2ODcwMiwgMC44NzAwODksIDEuMjQ3MTcsIDEuNjIzOTksIDIuMDAwMzMsIDIuMzc3MzgiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTkzOTgxLCAwLjkzMTUwNywgMS41MjE2OSwgMi4yNTg0LCAyLjk5ODA4LCAzLjc0MjUxLCA0LjQ3NjU0IiwgXAotICAgICAgICAgICIwLjE5MzY3OCwgMC45MzE1MDksIDEuNTIxMjcsIDIuMjYwNjcsIDMuMDAyMDMsIDMuNzM3NDksIDQuNDcxNjUiLCBcCi0gICAgICAgICAgIjAuMTkzMjQ5LCAwLjkzMTU0MiwgMS41MjE0MywgMi4yNTg0NiwgMi45OTgyMiwgMy43NDI2LCA0LjQ3NzU3IiwgXAotICAgICAgICAgICIwLjE5NTEzNiwgMC45MzIxOTksIDEuNTIyMTQsIDIuMjU4NzQsIDMuMDEwNTMsIDMuNzMyOTYsIDQuNDgxMzEiLCBcCi0gICAgICAgICAgIjAuMTk4Nzk3LCAwLjkzMTU0NiwgMS41MjEyOCwgMi4yNjA1OSwgMi45OTgyOSwgMy43NDIxOSwgNC40NzAxNyIsIFwKLSAgICAgICAgICAiMC4yMDY3MzksIDAuOTMyMDEsIDEuNTIxMTMsIDIuMjYwNTksIDIuOTk1NzIsIDMuNzQxNTMsIDQuNDcxODIiLCBcCi0gICAgICAgICAgIjAuMjE1NzQ5LCAwLjkzMTQ2MSwgMS41MjA4MywgMi4yNTk0OSwgMi45OTY0NywgMy43NDA3NCwgNC40NzY4OSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDg0MzcsIDAuNTE2MjU1LCAwLjg0MjY0OSwgMS4yNTAxMSwgMS42NTgxNSwgMi4wNjUzOCwgMi40NzI4NiIsIFwKLSAgICAgICAgICAiMC4xMTg5OTMsIDAuNTI3MTA2LCAwLjg1MzI4NiwgMS4yNjA4OSwgMS42Njg0MiwgMi4wNzYxMSwgMi40ODM0OCIsIFwKLSAgICAgICAgICAiMC4xMzE5NTgsIDAuNTQwNTM2LCAwLjg2NjU2NSwgMS4yNzQyMSwgMS42ODIzMywgMi4wODkzMywgMi40OTczMSIsIFwKLSAgICAgICAgICAiMC4xNDUwNzYsIDAuNTUzODQyLCAwLjg3OTkzNywgMS4yODgwMSwgMS42OTU3MiwgMi4xMDM5MiwgMi41MTA3OCIsIFwKLSAgICAgICAgICAiMC4xNTgxMTIsIDAuNTY2ODE0LCAwLjg5MzM1MiwgMS4zMDA2NSwgMS43MDg0OCwgMi4xMTYzNywgMi41MjQxOCIsIFwKLSAgICAgICAgICAiMC4xODAzMDQsIDAuNTg3OTgxLCAwLjkxNDIzMiwgMS4zMjIxOCwgMS43Mjk0OCwgMi4xMzc0NywgMi41NDQ4MyIsIFwKLSAgICAgICAgICAiMC4xOTkyODQsIDAuNjA2NDUxLCAwLjkzMjgxLCAxLjM0MDU1LCAxLjc0ODMzLCAyLjE1NTY1LCAyLjU2NDA2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIwNDg0MSwgMC45ODI4NjcsIDEuNjA1NzcsIDIuMzkzMjgsIDMuMTYzODIsIDMuOTU0ODEsIDQuNzI4ODgiLCBcCi0gICAgICAgICAgIjAuMjA0ODIsIDAuOTgyODA0LCAxLjYwNTY2LCAyLjM4Nzg3LCAzLjE3MDkzLCAzLjk1NDI3LCA0LjcyMzc1IiwgXAotICAgICAgICAgICIwLjIwNDc4OSwgMC45ODI4MDksIDEuNjA1ODcsIDIuMzg0MTMsIDMuMTYyOTcsIDMuOTU0ODMsIDQuNzI1NzMiLCBcCi0gICAgICAgICAgIjAuMjA2MTY5LCAwLjk4MjgxNiwgMS42MDU3MiwgMi4zODQ3NCwgMy4xNzQ5MSwgMy45NDM1NywgNC43Mjg4MSIsIFwKLSAgICAgICAgICAiMC4yMDk1NzUsIDAuOTgyODU3LCAxLjYwNTUzLCAyLjM4NDkzLCAzLjE3NDk0LCAzLjk0ODgsIDQuNzIyNjMiLCBcCi0gICAgICAgICAgIjAuMjE3MDc0LCAwLjk4MjgwNywgMS42MDYzOSwgMi4zODQ1OSwgMy4xNzAzOSwgMy45NDQsIDQuNzI4MDMiLCBcCi0gICAgICAgICAgIjAuMjI1NjgzLCAwLjk4MjYyOSwgMS42MDU4MSwgMi4zODk3MywgMy4xNzQ3NCwgMy45NTI4MywgNC43MjMxNiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEwTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0OTE3LCAwLjAwNDkyMSwgMC4wMDQ5MjEsIDAuMDA0OTE5LCAwLjAwNDkxNywgMC4wMDQ5MTYsIDAuMDA0OTE2IiwgXAotICAgICAgICAgICIwLjAwNDkwMywgMC4wMDQ5MDcsIDAuMDA0OTA3LCAwLjAwNDkwNiwgMC4wMDQ5MDUsIDAuMDA0OTA1LCAwLjAwNDkwMyIsIFwKLSAgICAgICAgICAiMC4wMDQ4OTIsIDAuMDA0ODk4LCAwLjAwNDg5OCwgMC4wMDQ4OTksIDAuMDA0ODk3LCAwLjAwNDg5MSwgMC4wMDQ4OTMiLCBcCi0gICAgICAgICAgIjAuMDA0ODg0LCAwLjAwNDg5MSwgMC4wMDQ4OTEsIDAuMDA0ODksIDAuMDA0ODg5LCAwLjAwNDg4NSwgMC4wMDQ4ODYiLCBcCi0gICAgICAgICAgIjAuMDA0ODc3LCAwLjAwNDg4NSwgMC4wMDQ4ODYsIDAuMDA0ODg1LCAwLjAwNDg4NiwgMC4wMDQ4ODQsIDAuMDA0ODc4IiwgXAotICAgICAgICAgICIwLjAwNDg3MiwgMC4wMDQ4ODIsIDAuMDA0ODgzLCAwLjAwNDg4MywgMC4wMDQ4ODIsIDAuMDA0ODgyLCAwLjAwNDg4IiwgXAotICAgICAgICAgICIwLjAwNDg3MywgMC4wMDQ4ODgsIDAuMDA0ODksIDAuMDA0ODksIDAuMDA0ODg5LCAwLjAwNDg4OCwgMC4wMDQ4ODciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQ5MDYsIDAuMDA0OTExLCAwLjAwNDkxMSwgMC4wMDQ5MDksIDAuMDA0OTA5LCAwLjAwNDkwOCwgMC4wMDQ5MDciLCBcCi0gICAgICAgICAgIjAuMDA0ODk0LCAwLjAwNDkwMSwgMC4wMDQ5MDIsIDAuMDA0OTAxLCAwLjAwNDg5OCwgMC4wMDQ4OTksIDAuMDA0ODk5IiwgXAotICAgICAgICAgICIwLjAwNDg4MiwgMC4wMDQ4OTMsIDAuMDA0ODkzLCAwLjAwNDg5MywgMC4wMDQ4OTEsIDAuMDA0ODkxLCAwLjAwNDg4OCIsIFwKLSAgICAgICAgICAiMC4wMDQ4NzIsIDAuMDA0ODg2LCAwLjAwNDg4NiwgMC4wMDQ4ODYsIDAuMDA0ODg1LCAwLjAwNDg4NCwgMC4wMDQ4ODIiLCBcCi0gICAgICAgICAgIjAuMDA0ODY0LCAwLjAwNDg4MSwgMC4wMDQ4ODUsIDAuMDA0ODgyLCAwLjAwNDg4MSwgMC4wMDQ4OCwgMC4wMDQ4NzgiLCBcCi0gICAgICAgICAgIjAuMDA0ODU0LCAwLjAwNDg3NSwgMC4wMDQ4NzcsIDAuMDA0ODc3LCAwLjAwNDg3NiwgMC4wMDQ4NzcsIDAuMDA0ODc1IiwgXAotICAgICAgICAgICIwLjAwNDg0OCwgMC4wMDQ4NzUsIDAuMDA0ODc2LCAwLjAwNDg3OCwgMC4wMDQ4NzgsIDAuMDA0ODc1LCAwLjAwNDg3NSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkExTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0NTc1LCAwLjAwNDU5LCAwLjAwNDU5MSwgMC4wMDQ1OTEsIDAuMDA0NTkxLCAwLjAwNDU5LCAwLjAwNDU5IiwgXAotICAgICAgICAgICIwLjAwNDU2LCAwLjAwNDU3NiwgMC4wMDQ1ODEsIDAuMDA0NTc4LCAwLjAwNDU3OCwgMC4wMDQ1NzEsIDAuMDA0NTc3IiwgXAotICAgICAgICAgICIwLjAwNDU0NywgMC4wMDQ1NjUsIDAuMDA0NTY3LCAwLjAwNDU2OCwgMC4wMDQ1NjgsIDAuMDA0NTY2LCAwLjAwNDU2OCIsIFwKLSAgICAgICAgICAiMC4wMDQ1MzYsIDAuMDA0NTU4LCAwLjAwNDU2LCAwLjAwNDU2MSwgMC4wMDQ1NiwgMC4wMDQ1NjEsIDAuMDA0NTYiLCBcCi0gICAgICAgICAgIjAuMDA0NTI2LCAwLjAwNDU1MiwgMC4wMDQ1NTcsIDAuMDA0NTU2LCAwLjAwNDU1NiwgMC4wMDQ1NTEsIDAuMDA0NTU0IiwgXAotICAgICAgICAgICIwLjAwNDUxNywgMC4wMDQ1NDcsIDAuMDA0NTUsIDAuMDA0NTUyLCAwLjAwNDU1MiwgMC4wMDQ1NTIsIDAuMDA0NTUxIiwgXAotICAgICAgICAgICIwLjAwNDUxOCwgMC4wMDQ1NTQsIDAuMDA0NTU5LCAwLjAwNDU2MSwgMC4wMDQ1NjMsIDAuMDA0NTYyLCAwLjAwNDU2MiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDc1OSwgMC4wMDQ3NjksIDAuMDA0NzY5LCAwLjAwNDc2OSwgMC4wMDQ3NjcsIDAuMDA0NzY1LCAwLjAwNDc2NSIsIFwKLSAgICAgICAgICAiMC4wMDQ3NDksIDAuMDA0NzYxLCAwLjAwNDc2MSwgMC4wMDQ3NjQsIDAuMDA0NzU5LCAwLjAwNDc1NywgMC4wMDQ3NTYiLCBcCi0gICAgICAgICAgIjAuMDA0NzM3LCAwLjAwNDc1MywgMC4wMDQ3NTMsIDAuMDA0NzUzLCAwLjAwNDc1MiwgMC4wMDQ3NSwgMC4wMDQ3NDgiLCBcCi0gICAgICAgICAgIjAuMDA0NzI2LCAwLjAwNDc0NiwgMC4wMDQ3NDcsIDAuMDA0NzQ3LCAwLjAwNDc0NiwgMC4wMDQ3NDYsIDAuMDA0NzQzIiwgXAotICAgICAgICAgICIwLjAwNDcxNCwgMC4wMDQ3MzksIDAuMDA0NzQyLCAwLjAwNDc0MywgMC4wMDQ3NDIsIDAuMDA0NzQsIDAuMDA0NzM5IiwgXAotICAgICAgICAgICIwLjAwNDcwNiwgMC4wMDQ3MzUsIDAuMDA0NzM5LCAwLjAwNDc0LCAwLjAwNDczOSwgMC4wMDQ3MzksIDAuMDA0NzM5IiwgXAotICAgICAgICAgICIwLjAwNDY5NiwgMC4wMDQ3MywgMC4wMDQ3MzUsIDAuMDA0NzM3LCAwLjAwNDczNSwgMC4wMDQ3MzUsIDAuMDA0NzM0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzU4OSwgMC4wMDM1ODksIDAuMDAzNTg5LCAwLjAwMzU4OCwgMC4wMDM1ODYsIDAuMDAzNTg1LCAwLjAwMzU3NyIsIFwKLSAgICAgICAgICAiMC4wMDM1NjcsIDAuMDAzNTc2LCAwLjAwMzU3NiwgMC4wMDM1NzUsIDAuMDAzNTczLCAwLjAwMzU3NSwgMC4wMDM1NzMiLCBcCi0gICAgICAgICAgIjAuMDAzNTUzLCAwLjAwMzU3LCAwLjAwMzU3MSwgMC4wMDM1NzEsIDAuMDAzNTcxLCAwLjAwMzU3MiwgMC4wMDM1NzIiLCBcCi0gICAgICAgICAgIjAuMDAzNTQ0LCAwLjAwMzU2NiwgMC4wMDM1NjksIDAuMDAzNTY5LCAwLjAwMzU3LCAwLjAwMzU2OCwgMC4wMDM1NjYiLCBcCi0gICAgICAgICAgIjAuMDAzNTM1LCAwLjAwMzU2MywgMC4wMDM1NjYsIDAuMDAzNTY4LCAwLjAwMzU2OCwgMC4wMDM1NjgsIDAuMDAzNTY1IiwgXAotICAgICAgICAgICIwLjAwMzUyNywgMC4wMDM1NTksIDAuMDAzNTYzLCAwLjAwMzU2NiwgMC4wMDM1NjYsIDAuMDAzNTY2LCAwLjAwMzU2NSIsIFwKLSAgICAgICAgICAiMC4wMDM1MjMsIDAuMDAzNTU2LCAwLjAwMzU2MSwgMC4wMDM1NjQsIDAuMDAzNTY0LCAwLjAwMzU2NSwgMC4wMDM1NjQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDA4OTgsIDAuMDAwOTA0LCAwLjAwMDkwNSwgMC4wMDA5MDQsIDAuMDAwOTA0LCAwLjAwMDkwNSwgMC4wMDA5MDUiLCBcCi0gICAgICAgICAgIjAuMDAwODk4LCAwLjAwMDkyNSwgMC4wMDA5MjgsIDAuMDAwOTI5LCAwLjAwMDkzMSwgMC4wMDA5MzEsIDAuMDAwOTMxIiwgXAotICAgICAgICAgICIwLjAwMDg3OCwgMC4wMDA5MjYsIDAuMDAwOTMyLCAwLjAwMDkzNSwgMC4wMDA5MzYsIDAuMDAwOTM3LCAwLjAwMDkzOCIsIFwKLSAgICAgICAgICAiMC4wMDA4NTgsIDAuMDAwOTIyLCAwLjAwMDkzLCAwLjAwMDkzNSwgMC4wMDA5MzcsIDAuMDAwOTM4LCAwLjAwMDkzOSIsIFwKLSAgICAgICAgICAiMC4wMDA4NDEsIDAuMDAwOTE3LCAwLjAwMDkyNywgMC4wMDA5MzMsIDAuMDAwOTM2LCAwLjAwMDkzOCwgMC4wMDA5MzkiLCBcCi0gICAgICAgICAgIjAuMDAwODE5LCAwLjAwMDkwOCwgMC4wMDA5MjIsIDAuMDAwOTMsIDAuMDAwOTM0LCAwLjAwMDkzNiwgMC4wMDA5MzgiLCBcCi0gICAgICAgICAgIjAuMDAwODA0LCAwLjAwMDksIDAuMDAwOTE3LCAwLjAwMDkyNiwgMC4wMDA5MzEsIDAuMDAwOTM0LCAwLjAwMDkzNiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIxIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI5MzUsIDAuMDAyOTM5LCAwLjAwMjkzOSwgMC4wMDI5MzksIDAuMDAyOTM4LCAwLjAwMjkzOCwgMC4wMDI5MzciLCBcCi0gICAgICAgICAgIjAuMDAyOTI2LCAwLjAwMjk0NSwgMC4wMDI5NDcsIDAuMDAyOTQ2LCAwLjAwMjk0OSwgMC4wMDI5NDgsIDAuMDAyOTQ3IiwgXAotICAgICAgICAgICIwLjAwMjkwOCwgMC4wMDI5NDIsIDAuMDAyOTQ2LCAwLjAwMjk0NywgMC4wMDI5NDgsIDAuMDAyOTQ5LCAwLjAwMjk0OCIsIFwKLSAgICAgICAgICAiMC4wMDI4OTMsIDAuMDAyOTM3LCAwLjAwMjk0MywgMC4wMDI5NDYsIDAuMDAyOTQ3LCAwLjAwMjk0NiwgMC4wMDI5NDYiLCBcCi0gICAgICAgICAgIjAuMDAyODgsIDAuMDAyOTMzLCAwLjAwMjk0LCAwLjAwMjk0MywgMC4wMDI5NDUsIDAuMDAyOTQ2LCAwLjAwMjk0NCIsIFwKLSAgICAgICAgICAiMC4wMDI4NjUsIDAuMDAyOTI2LCAwLjAwMjkzNiwgMC4wMDI5MzksIDAuMDAyOTQyLCAwLjAwMjk0MywgMC4wMDI5NDQiLCBcCi0gICAgICAgICAgIjAuMDAyODU2LCAwLjAwMjkyLCAwLjAwMjkzMSwgMC4wMDI5MzcsIDAuMDAyOTQsIDAuMDAyOTQyLCAwLjAwMjk0MiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDg5OCwgMC4wMDA5MDUsIDAuMDAwOTA2LCAwLjAwMDkwNSwgMC4wMDA5MDYsIDAuMDAwOTA1LCAwLjAwMDkwNiIsIFwKLSAgICAgICAgICAiMC4wMDA4OTQsIDAuMDAwOTI2LCAwLjAwMDkyOSwgMC4wMDA5MzEsIDAuMDAwOTMyLCAwLjAwMDkzMywgMC4wMDA5MzMiLCBcCi0gICAgICAgICAgIjAuMDAwODczLCAwLjAwMDkyNywgMC4wMDA5MzMsIDAuMDAwOTM3LCAwLjAwMDkzOCwgMC4wMDA5NCwgMC4wMDA5NCIsIFwKLSAgICAgICAgICAiMC4wMDA4NDksIDAuMDAwOTIxLCAwLjAwMDkzMSwgMC4wMDA5MzYsIDAuMDAwOTM4LCAwLjAwMDk0LCAwLjAwMDk0MSIsIFwKLSAgICAgICAgICAiMC4wMDA4MzMsIDAuMDAwOTE3LCAwLjAwMDkyOCwgMC4wMDA5MzUsIDAuMDAwOTM4LCAwLjAwMDk0LCAwLjAwMDk0MiIsIFwKLSAgICAgICAgICAiMC4wMDA4MTMsIDAuMDAwOTA3LCAwLjAwMDkyMiwgMC4wMDA5MzEsIDAuMDAwOTM1LCAwLjAwMDkzOCwgMC4wMDA5NCIsIFwKLSAgICAgICAgICAiMC4wMDA4MDEsIDAuMDAwODk5LCAwLjAwMDkxNywgMC4wMDA5MjgsIDAuMDAwOTMzLCAwLjAwMDkzNiwgMC4wMDA5MzgiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IEFPSTJCQjJYTCAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKEFPSTJCQjJYTCkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjA5MjA4ODc7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEwTikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjAwODEyOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYwMDU4MzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2MDA4MTI7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjIzLCAwLjAwMDIwNCwgMC4wMDAxOTUsIDAuMDAwMTkxLCAwLjAwMDE5LCAwLjAwMDE4OCwgMC4wMDAxODkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDEwNzMsIDAuMDAxMDU5LCAwLjAwMTA1MSwgMC4wMDEwNDYsIDAuMDAxMDQzLCAwLjAwMTA0MSwgMC4wMDEwNDEiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEExTikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjIwMjg0OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYxOTg4NjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2MjAyODQ7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjI1LCAwLjAwMDIwOCwgMC4wMDAxOTgsIDAuMDAwMTkzLCAwLjAwMDE5MSwgMC4wMDAxOSwgMC4wMDAxOSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTM2NSwgMC4wMDEzNTIsIDAuMDAxMzQzLCAwLjAwMTMzOSwgMC4wMDEzMzYsIDAuMDAxMzMzLCAwLjAwMTMzMyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQjApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDU0NDM3ODsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA1NDQzNzg7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNTQzMTIzOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDA0MSwgMC4wMDAwNDEsIDAuMDAwMDQxLCAwLjAwMDA0MSwgMC4wMDAwNDEsIDAuMDAwMDQxLCAwLjAwMDA0MiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDA0MSwgMC4wMDAwNDEsIDAuMDAwMDQxLCAwLjAwMDA0MSwgMC4wMDAwNDEsIDAuMDAwMDQxLCAwLjAwMDA0MSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQjEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDU4ODQ3NzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA1ODgyMDc7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNTg4NDc3OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDA0MSwgMC4wMDAwNDEsIDAuMDAwMDQxLCAwLjAwMDA0MiwgMC4wMDAwNDIsIDAuMDAwMDQyLCAwLjAwMDA0MiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDA0MSwgMC4wMDAwNDEsIDAuMDAwMDQxLCAwLjAwMDA0MSwgMC4wMDAwNDEsIDAuMDAwMDQxLCAwLjAwMDA0MSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjAzNjg5NzU7Ci0gICAgZnVuY3Rpb24gOiAiKCEoKEIwIEIxKSsoIShBME4rQTFOKSkpKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTBOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zNTI2NjQsIDAuNDA0ODcsIDAuODczMDk4LCAxLjY1MzMyLCAyLjQzMjc3LCA0LjI1MDA0LCA1LjI4ODYzIiwgXAotICAgICAgICAgICIwLjM2NDU5NywgMC40MTY2MzksIDAuODg0NjkzLCAxLjY2NDgsIDIuNDQ0NDMsIDQuMjYyMDYsIDUuMzAwNSIsIFwKLSAgICAgICAgICAiMC4zNzk4MDUsIDAuNDMxODc2LCAwLjg5OTk3NiwgMS42Nzk4OCwgMi40NTk2LCA0LjI3NzI1LCA1LjMxNTc5IiwgXAotICAgICAgICAgICIwLjM5NDc4NywgMC40NDY5MDEsIDAuOTE1MjA2LCAxLjY5NTM2LCAyLjQ3NDM3LCA0LjI5MjMyLCA1LjMzMDY3IiwgXAotICAgICAgICAgICIwLjQwODk3LCAwLjQ2MTAwMiwgMC45MjkwNzEsIDEuNzA5MjMsIDIuNDg5MzMsIDQuMzA2NjIsIDUuMzQ0ODUiLCBcCi0gICAgICAgICAgIjAuNDI5MjEzLCAwLjQ4MTMxOCwgMC45NDk0NTMsIDEuNzI5NTcsIDIuNTA5MDUsIDQuMzI2NywgNS4zNjUxNSIsIFwKLSAgICAgICAgICAiMC40NDUzNTUsIDAuNDk3NDA1LCAwLjk2NTU1OCwgMS43NDU5OSwgMi41MjU1OCwgNC4zNDI3OCwgNS4zODEyNCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC41NzcwNjcsIDAuNjc4Njc1LCAxLjU5MzgzLCAzLjExNTk5LCA0LjY0MDc1LCA4LjE5NDc5LCAxMC4yMjIiLCBcCi0gICAgICAgICAgIjAuNTc3NTUyLCAwLjY3ODY2NCwgMS41OTI3OSwgMy4xMTY4OCwgNC42Mzg1MiwgOC4xOTUxMSwgMTAuMjIwNCIsIFwKLSAgICAgICAgICAiMC41Nzc1NDMsIDAuNjc4Njg3LCAxLjU5MjgyLCAzLjExNjAyLCA0LjYzOTM0LCA4LjE5NTA1LCAxMC4yMjAzIiwgXAotICAgICAgICAgICIwLjU3Njg1OCwgMC42NzkxNTUsIDEuNTkzMjUsIDMuMTE1OTUsIDQuNjM5NTUsIDguMTk0MzQsIDEwLjIyMiIsIFwKLSAgICAgICAgICAiMC41NzcwNjgsIDAuNjc4NDQxLCAxLjU5MjQ0LCAzLjExNTksIDQuNjQwNzgsIDguMTkyMSwgMTAuMjIyIiwgXAotICAgICAgICAgICIwLjU3NzA0NywgMC42Nzg2NzksIDEuNTkyODQsIDMuMTE2NTcsIDQuNjM5MzcsIDguMTk0OTIsIDEwLjIyMiIsIFwKLSAgICAgICAgICAiMC41NzY5MywgMC42Nzg2NTMsIDEuNTkyODEsIDMuMTE2MDcsIDQuNjQwOTMsIDguMTk0ODksIDEwLjIyMiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zOTY0MDksIDAuNDU1NjIyLCAwLjk4Nzk2NCwgMS44NzMwNywgMi43NTg4NiwgNC44MjE1MiwgNi4wMDAzMSIsIFwKLSAgICAgICAgICAiMC40MDc5MTIsIDAuNDY3MTkxLCAwLjk5OTUxMiwgMS44ODU5OCwgMi43Njk1MSwgNC44MzMyNCwgNi4wMTE4MyIsIFwKLSAgICAgICAgICAiMC40MjI1MDIsIDAuNDgxNzg4LCAxLjAxNDEsIDEuOTAwNTgsIDIuNzg0MTMsIDQuODQ3ODYsIDYuMDI2NDQiLCBcCi0gICAgICAgICAgIjAuNDM2MTQsIDAuNDk1NTE2LCAxLjAyNzk1LCAxLjkxMzM2LCAyLjc5ODU0LCA0Ljg2MTMzLCA2LjA0MDE4IiwgXAotICAgICAgICAgICIwLjQ0ODMwNywgMC41MDc2MTIsIDEuMDM5OTgsIDEuOTI1OTgsIDIuODEwNTYsIDQuODczNTYsIDYuMDUyMzQiLCBcCi0gICAgICAgICAgIjAuNDY1NDczLCAwLjUyNDgwMiwgMS4wNTY4LCAxLjk0MzI1LCAyLjgyNzc4LCA0Ljg5MDY3LCA2LjA2OTUzIiwgXAotICAgICAgICAgICIwLjQ3ODgzLCAwLjUzODExNCwgMS4wNzA0MiwgMS45NTY2NCwgMi44NDExNywgNC45MDQxNCwgNi4wODI5OSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC42NjEzMjEsIDAuNzczNzQ1LCAxLjc4NTA5LCAzLjQ2ODc3LCA1LjE1MzcsIDkuMDgxMzQsIDExLjMyMTMiLCBcCi0gICAgICAgICAgIjAuNjYxMjg2LCAwLjc3MzgwOSwgMS43ODU2NCwgMy40NjkxMywgNS4xNTQwMSwgOS4wODEzMywgMTEuMzIwNSIsIFwKLSAgICAgICAgICAiMC42NjEzMTUsIDAuNzczNzg1LCAxLjc4NTUsIDMuNDY5MTUsIDUuMTUzOTgsIDkuMDgxMzQsIDExLjMyMDUiLCBcCi0gICAgICAgICAgIjAuNjYxMzY2LCAwLjc3MzcxNSwgMS43ODQ5MiwgMy40NjkzLCA1LjE1MzkyLCA5LjA4MDg4LCAxMS4zMjExIiwgXAotICAgICAgICAgICIwLjY2MTIzLCAwLjc3MzY3OSwgMS43ODQ4NSwgMy40NjkyMiwgNS4xNTI5MSwgOS4wODAxNSwgMTEuMzIxMiIsIFwKLSAgICAgICAgICAiMC42NjEzMzYsIDAuNzczNzg4LCAxLjc4NDkxLCAzLjQ2ODg0LCA1LjE1MzM0LCA5LjA3OTg0LCAxMS4zMjA4IiwgXAotICAgICAgICAgICIwLjY2MTMzNCwgMC43NzM3NTEsIDEuNzg1MjcsIDMuNDY5MDcsIDUuMTUzMDEsIDkuMDgxMTQsIDExLjMyMDkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTFOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zNTM2MDgsIDAuNDA1NjU3LCAwLjg3MzUwMiwgMS42NTM3MSwgMi40MzI1NCwgNC4yNTA2OCwgNS4yODg4OSIsIFwKLSAgICAgICAgICAiMC4zNjU0MTYsIDAuNDE3NDQsIDAuODg1NDc4LCAxLjY2NTQ1LCAyLjQ0NTIxLCA0LjI2MjEyLCA1LjMwMDYzIiwgXAotICAgICAgICAgICIwLjM4MDc1LCAwLjQzMjc3OCwgMC45MDA4MzIsIDEuNjgwNzUsIDIuNDYwNTksIDQuMjc3NDUsIDUuMzE2MDIiLCBcCi0gICAgICAgICAgIjAuMzk1ODk0LCAwLjQ0NzkzNywgMC45MTYwNTYsIDEuNjk2MDMsIDIuNDc1MywgNC4yOTI4NCwgNS4zMzEyNCIsIFwKLSAgICAgICAgICAiMC40MTA2NDksIDAuNDYyNzAzLCAwLjkzMDU3MywgMS43MTA3MiwgMi40OSwgNC4zMDc1NSwgNS4zNDYwMSIsIFwKLSAgICAgICAgICAiMC40MzI2MDUsIDAuNDg0NjQ5LCAwLjk1Mjg4MywgMS43MzI1NCwgMi41MTI1OSwgNC4zMjk3OCwgNS4zNjc5OCIsIFwKLSAgICAgICAgICAiMC40NDk5NjgsIDAuNTAyMDMsIDAuOTcwMDA2LCAxLjc1MDEsIDIuNTI5ODksIDQuMzQ3MTYsIDUuMzg1MzUiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuNTcwNTAzLCAwLjY3MTY3MiwgMS41ODU1NSwgMy4xMDg4NywgNC42MzM2NiwgOC4xODU0NywgMTAuMjEyOCIsIFwKLSAgICAgICAgICAiMC41NzAzNjYsIDAuNjcxNzI4LCAxLjU4NjQzLCAzLjEwODM3LCA0LjYzMzA0LCA4LjE4NjY5LCAxMC4yMTM4IiwgXAotICAgICAgICAgICIwLjU3MDEzLCAwLjY3MTcyNiwgMS41ODY0MywgMy4xMDgyOCwgNC42MzM0MSwgOC4xODYzNSwgMTAuMjEzOSIsIFwKLSAgICAgICAgICAiMC41NzAxNTUsIDAuNjcxODQxLCAxLjU4NTQxLCAzLjEwODM3LCA0LjYzMTQyLCA4LjE4Njk0LCAxMC4yMTI5IiwgXAotICAgICAgICAgICIwLjU3MDE2MywgMC42NzE2NTcsIDEuNTg1NSwgMy4xMDkyOSwgNC42MzE1OSwgOC4xODY3NywgMTAuMjEzIiwgXAotICAgICAgICAgICIwLjU3MDcxOSwgMC42NzE3MTgsIDEuNTg1ODYsIDMuMTA4MjYsIDQuNjMyODEsIDguMTgzODgsIDEwLjIxMzEiLCBcCi0gICAgICAgICAgIjAuNTcwMTkyLCAwLjY3MTYwMywgMS41ODY0NiwgMy4xMDgzMiwgNC42MzMwOCwgOC4xODU4NCwgMTAuMjEzNyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zOTUxMjEsIDAuNDU0NDM4LCAwLjk4NjkyNCwgMS44NzIzOSwgMi43NTczNiwgNC44MjAyNSwgNS45OTkxMiIsIFwKLSAgICAgICAgICAiMC40MDY3OTMsIDAuNDY2MTAxLCAwLjk5ODIwMSwgMS44ODQ3MywgMi43Njg5OCwgNC44MzE4NCwgNi4wMTA3NSIsIFwKLSAgICAgICAgICAiMC40MjEzNDYsIDAuNDgwNjE2LCAxLjAxMjg5LCAxLjg5OTA0LCAyLjc4MzU1LCA0Ljg0NjYzLCA2LjAyNTM0IiwgXAotICAgICAgICAgICIwLjQzNTYxOSwgMC40OTQ5MzksIDEuMDI3NDYsIDEuOTEyNzQsIDIuNzk4MTMsIDQuODYwOTQsIDYuMDM5NTciLCBcCi0gICAgICAgICAgIjAuNDQ4NTQ1LCAwLjUwNzg3NywgMS4wMzk5OCwgMS45MjYxMiwgMi44MTA4OCwgNC44NzQsIDYuMDUyNTciLCBcCi0gICAgICAgICAgIjAuNDY3MjAzLCAwLjUyNjU1MiwgMS4wNTg5NSwgMS45NDUwNSwgMi44Mjk3MywgNC44OTIzMiwgNi4wNzEzMSIsIFwKLSAgICAgICAgICAiMC40ODE2NDEsIDAuNTQwOTQ0LCAxLjA3MzE4LCAxLjk1OTc4LCAyLjg0Mzk4LCA0LjkwNzA2LCA2LjA4NTg0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjY2MTMyNSwgMC43NzM3MDUsIDEuNzg0OTcsIDMuNDY5ODYsIDUuMTUzNzIsIDkuMDgxMTQsIDExLjMyMDkiLCBcCi0gICAgICAgICAgIjAuNjYxMzU4LCAwLjc3MzYzNywgMS43ODUyMywgMy40NjkxNywgNS4xNTI1NiwgOS4wNzk3NCwgMTEuMzIxMSIsIFwKLSAgICAgICAgICAiMC42NjEzNjMsIDAuNzczNjk1LCAxLjc4NDc5LCAzLjQ2OTAyLCA1LjE1Mjk5LCA5LjA3OTksIDExLjMyMTMiLCBcCi0gICAgICAgICAgIjAuNjYxMjcxLCAwLjc3Mzc4MiwgMS43ODQ4MiwgMy40Njg4OSwgNS4xNTM5OCwgOS4wODAxMywgMTEuMzIxIiwgXAotICAgICAgICAgICIwLjY2MTI0NywgMC43NzM2NjYsIDEuNzg0OTgsIDMuNDY5NjEsIDUuMTUzNjksIDkuMDgwNTEsIDExLjMyMDUiLCBcCi0gICAgICAgICAgIjAuNjYxMjMyLCAwLjc3Mzc3OSwgMS43ODUyNywgMy40Njk2MSwgNS4xNTM5NywgOS4wODA4NiwgMTEuMzIwNSIsIFwKLSAgICAgICAgICAiMC42NjEzMSwgMC43NzM2MTYsIDEuNzg1MDEsIDMuNDY5MTksIDUuMTUzNjcsIDkuMDgwNjUsIDExLjMyMSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzAwNTE2LCAwLjM1MjU2NCwgMC44MjA2MDMsIDEuNjAwNjQsIDIuMzgwNTIsIDQuMTk3OTQsIDUuMjM2NDciLCBcCi0gICAgICAgICAgIjAuMzEwODc4LCAwLjM2Mjk2LCAwLjgzMDk2NSwgMS42MTEwNiwgMi4zOTEzMSwgNC4yMDg1NSwgNS4yNDY3OSIsIFwKLSAgICAgICAgICAiMC4zMjM4NjUsIDAuMzc1ODc2LCAwLjg0NDA2MSwgMS42MjQzLCAyLjQwMzkzLCA0LjIyMTMsIDUuMjU5ODEiLCBcCi0gICAgICAgICAgIjAuMzM2OTA3LCAwLjM4OTAwNCwgMC44NTcxNSwgMS42MzczOCwgMi40MTc0OCwgNC4yMzQyOCwgNS4yNzI4OCIsIFwKLSAgICAgICAgICAiMC4zNDk5NzIsIDAuNDAyMDQ0LCAwLjg3MDMyMywgMS42NTAzNSwgMi40MzA1OSwgNC4yNDc3MSwgNS4yODYwOCIsIFwKLSAgICAgICAgICAiMC4zNzA5MDYsIDAuNDIyNTg2LCAwLjg5MTMyOCwgMS42NzA5MiwgMi40NTAzMywgNC4yNjgzNCwgNS4zMDY5NiIsIFwKLSAgICAgICAgICAiMC4zODkyMywgMC40NDEzMzMsIDAuOTA5NjgxLCAxLjY5MDA2LCAyLjQ2OTg4LCA0LjI4Njk5LCA1LjMyNTIiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuNTc3MDQ5LCAwLjY3ODY2NCwgMS41OTM2MywgMy4xMTY3OSwgNC42Mzk3MSwgOC4xOTQ4NiwgMTAuMjIwMiIsIFwKLSAgICAgICAgICAiMC41NzcwNjYsIDAuNjc4Njc2LCAxLjU5MjQyLCAzLjExNjA1LCA0LjYzOTUxLCA4LjE5NTM1LCAxMC4yMjA4IiwgXAotICAgICAgICAgICIwLjU3NzU4MSwgMC42NzkzMDQsIDEuNTkyNzgsIDMuMTE2ODgsIDQuNjM5MDQsIDguMTk0NzksIDEwLjIyMiIsIFwKLSAgICAgICAgICAiMC41Nzc1MzEsIDAuNjc4NjU5LCAxLjU5Mjc5LCAzLjExNjc5LCA0LjY0MDQxLCA4LjE5MzE0LCAxMC4yMjIiLCBcCi0gICAgICAgICAgIjAuNTc2Nzc2LCAwLjY3ODQyMiwgMS41OTI5LCAzLjExNTg5LCA0LjYzOTM0LCA4LjE5NTE2LCAxMC4yMjA5IiwgXAotICAgICAgICAgICIwLjU3NjcwOCwgMC42Nzg3NjUsIDEuNTkyODYsIDMuMTE2MTMsIDQuNjQxMTIsIDguMTkzMTUsIDEwLjIyMiIsIFwKLSAgICAgICAgICAiMC41Nzg0OTgsIDAuNjc4OTQ0LCAxLjU5Mjg0LCAzLjExNjExLCA0LjY0MDE3LCA4LjE5NTEyLCAxMC4yMjE5Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMzNzA3NCwgMC4zOTYwNzUsIDAuOTI2OTQ3LCAxLjgxMTcyLCAyLjY5Njc5LCA0Ljc2MTA2LCA1Ljk0MDI4IiwgXAotICAgICAgICAgICIwLjM0OTM0NiwgMC40MDg0NzgsIDAuOTM5NDMsIDEuODI0MjYsIDIuNzA5MzEsIDQuNzczNTYsIDUuOTUyNzQiLCBcCi0gICAgICAgICAgIjAuMzYzNTQyLCAwLjQyMjU2MiwgMC45NTM1OTksIDEuODM5MzUsIDIuNzIzMTcsIDQuNzg3ODIsIDUuOTY2ODgiLCBcCi0gICAgICAgICAgIjAuMzc3NDUsIDAuNDM2NDUsIDAuOTY3NjQyLCAxLjg1MjYzLCAyLjczNzE1LCA0LjgwMTcxLCA1Ljk4MTEyIiwgXAotICAgICAgICAgICIwLjM5MTExOSwgMC40NTA0MDgsIDAuOTgxMzUzLCAxLjg2NjQ5LCAyLjc1MTA3LCA0LjgxNTY1LCA1Ljk5NTA3IiwgXAotICAgICAgICAgICIwLjQxMzI3OCwgMC40NzIzMiwgMS4wMDM3MSwgMS44ODg1OCwgMi43NzM2LCA0LjgzNzg4LCA2LjAxNzI2IiwgXAotICAgICAgICAgICIwLjQzMTIzLCAwLjQ5MTE3NywgMS4wMjI5LCAxLjkwODMzLCAyLjc5MjU0LCA0Ljg1NzE3LCA2LjAzNjYxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjYyOTQ1OCwgMC43NDE1ODcsIDEuNzUxNDMsIDMuNDQxNzIsIDUuMTIxLCA5LjA0MjYzLCAxMS4yODMiLCBcCi0gICAgICAgICAgIjAuNjI5MzMsIDAuNzQxNjAyLCAxLjc1MjA5LCAzLjQ0MTQ5LCA1LjEyMDg3LCA5LjA0MzM2LCAxMS4yODMiLCBcCi0gICAgICAgICAgIjAuNjI5MzQ1LCAwLjc0MTQ0NSwgMS43NTE0NSwgMy40MzUyNSwgNS4xMjA5LCA5LjA0MzIzLCAxMS4yODM5IiwgXAotICAgICAgICAgICIwLjYyOTQxOSwgMC43NDE0NDYsIDEuNzUxNDQsIDMuNDQzMTUsIDUuMTIwODQsIDkuMDQ0MTIsIDExLjI4MzUiLCBcCi0gICAgICAgICAgIjAuNjI5MzI3LCAwLjc0MTU0LCAxLjc1MDcsIDMuNDM1ODEsIDUuMTE5NDYsIDkuMDQzOTksIDExLjI4MzQiLCBcCi0gICAgICAgICAgIjAuNjI5NDYsIDAuNzQxNDc4LCAxLjc1MDczLCAzLjQ0Mjc5LCA1LjEyMDcyLCA5LjA0MzEyLCAxMS4yODM3IiwgXAotICAgICAgICAgICIwLjYyOTUxMiwgMC43NDE1MDYsIDEuNzUxNDksIDMuNDM1OCwgNS4xMjAwOSwgOS4wNDQwNywgMTEuMjgzNyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjk0MDY3LCAwLjM0NjEwNCwgMC44MTM5OTIsIDEuNTkzNjQsIDIuMzczMzMsIDQuMTkwODgsIDUuMjI5MzEiLCBcCi0gICAgICAgICAgIjAuMzA0Njc3LCAwLjM1NjY3OSwgMC44MjQ2MzEsIDEuNjA1MTIsIDIuMzg0NTcsIDQuMjAxMzcsIDUuMjM5OTEiLCBcCi0gICAgICAgICAgIjAuMzE3NjgxLCAwLjM2OTY4MiwgMC44Mzc3MzUsIDEuNjE3NzEsIDIuMzk2NzcsIDQuMjE0NiwgNS4yNTMyMSIsIFwKLSAgICAgICAgICAiMC4zMzA3MzYsIDAuMzgyNzg5LCAwLjg1MDc3NCwgMS42MzA4MywgMi40MTA1MiwgNC4yMjc1NywgNS4yNjYxNSIsIFwKLSAgICAgICAgICAiMC4zNDM3NjcsIDAuMzk1ODY3LCAwLjg2MzkxOCwgMS42NDM4MywgMi40MjQwMiwgNC4yNDEwMiwgNS4yNzkzNSIsIFwKLSAgICAgICAgICAiMC4zNjQ2NiwgMC40MTY3MTIsIDAuODg0OTI0LCAxLjY2NDM4LCAyLjQ0Mzc1LCA0LjI2MTc3LCA1LjMwMDIzIiwgXAotICAgICAgICAgICIwLjM4Mjk2LCAwLjQzNTAyOSwgMC45MDMyNjQsIDEuNjgzNTIsIDIuNDYzMjksIDQuMjgwMywgNS4zMTg0NyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC41NzAwMjUsIDAuNjcxNTA2LCAxLjU4NTQ1LCAzLjEwODM0LCA0LjYzMTQyLCA4LjE4NjgxLCAxMC4yMTM3IiwgXAotICAgICAgICAgICIwLjU2OTk0NywgMC42NzE1OTEsIDEuNTg2MzUsIDMuMTA5MTQsIDQuNjMyNDcsIDguMTg2NTcsIDEwLjIxMzciLCBcCi0gICAgICAgICAgIjAuNTcwMDQxLCAwLjY3MTM3OCwgMS41ODU0NCwgMy4xMDg5NywgNC42MzMwMiwgOC4xODY1OSwgMTAuMjEyMyIsIFwKLSAgICAgICAgICAiMC41NzA1NzEsIDAuNjcxNTg1LCAxLjU4NTQsIDMuMTA5MDYsIDQuNjMyNywgOC4xODQ0MiwgMTAuMjEzNyIsIFwKLSAgICAgICAgICAiMC41NzAxMDUsIDAuNjcxNTI0LCAxLjU4NTQ0LCAzLjEwODE0LCA0LjYzMTQ3LCA4LjE4Njk3LCAxMC4yMTI2IiwgXAotICAgICAgICAgICIwLjU2OTgyMiwgMC42NzEzLCAxLjU4NTMzLCAzLjEwODUyLCA0LjYzMzQ2LCA4LjE4NjU2LCAxMC4yMTM3IiwgXAotICAgICAgICAgICIwLjU3MTYzMiwgMC42NzE3OTMsIDEuNTg1MjcsIDMuMTA4NDQsIDQuNjMyNSwgOC4xODY5MiwgMTAuMjEzNiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMzExNjIsIDAuMzkwMTMyLCAwLjkyMTE3MywgMS44MDU5LCAyLjY5MDYsIDQuNzU1MTcsIDUuOTM0NSIsIFwKLSAgICAgICAgICAiMC4zNDI0MDYsIDAuNDAxNDkzLCAwLjkzMjQ2NSwgMS44MTc4MSwgMi43MDIxMywgNC43NjYyOCwgNS45NDU5NSIsIFwKLSAgICAgICAgICAiMC4zNTU5NzcsIDAuNDE1MDYzLCAwLjk0NjA1MSwgMS44MzA5OCwgMi43MTYsIDQuNzgwMjYsIDUuOTU5NSIsIFwKLSAgICAgICAgICAiMC4zNjk0MjMsIDAuNDI4NTU0LCAwLjk1OTYyNSwgMS44NDQ3OCwgMi43MjkyOSwgNC43OTM5NCwgNS45NzMyMyIsIFwKLSAgICAgICAgICAiMC4zODI1ODksIDAuNDQyMDYzLCAwLjk3MzcyMSwgMS44NTg0MSwgMi43NDI5LCA0LjgwNzUsIDUuOTg2OTIiLCBcCi0gICAgICAgICAgIjAuNDA0MDk1LCAwLjQ2MzI5MywgMC45OTQ0MzksIDEuODgwMjksIDIuNzY0MDgsIDQuODI4NzIsIDYuMDA4MTUiLCBcCi0gICAgICAgICAgIjAuNDIyOTk5LCAwLjQ4MTk4OSwgMS4wMTM0NCwgMS44OTgzMiwgMi43ODM1LCA0Ljg0Nzc4LCA2LjAyNyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC42Mjk0MTMsIDAuNzQxMzksIDEuNzUwOTEsIDMuNDQyNTYsIDUuMTE5OTMsIDkuMDQzMTEsIDExLjI4MzEiLCBcCi0gICAgICAgICAgIjAuNjI5MzI1LCAwLjc0MTQ1MSwgMS43NTE3OCwgMy40NDI1MSwgNS4xMTkyMywgOS4wNDIyMiwgMTEuMjgzOSIsIFwKLSAgICAgICAgICAiMC42Mjk0NDEsIDAuNzQxNTAxLCAxLjc1MTkyLCAzLjQ0MTQsIDUuMTIwODEsIDkuMDQzMjEsIDExLjI4MjkiLCBcCi0gICAgICAgICAgIjAuNjI5MzE1LCAwLjc0MTU4OSwgMS43NTExOCwgMy40Mzg0NiwgNS4xMjA1NywgOS4wNDMyNiwgMTEuMjgzOSIsIFwKLSAgICAgICAgICAiMC42Mjk0MTMsIDAuNzQxMzg2LCAxLjc1MTI2LCAzLjQzNjQxLCA1LjEyMDkxLCA5LjA0MzkyLCAxMS4yODMiLCBcCi0gICAgICAgICAgIjAuNjI5MzgxLCAwLjc0MTUyMSwgMS43NTEzMywgMy40MzQxNiwgNS4xMTgwNiwgOS4wNDM0NCwgMTEuMjgzNCIsIFwKLSAgICAgICAgICAiMC42MzAxMTUsIDAuNzQxNDIxLCAxLjc1MTQ4LCAzLjQ0MzAyLCA1LjEyMDk4LCA5LjA0MjUxLCAxMS4yODM2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTBOIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDE5NDEsIDAuMDAxOTQxLCAwLjAwMTk0LCAwLjAwMTk0MSwgMC4wMDE5MzgsIDAuMDAxOTM1LCAwLjAwMTkzNCIsIFwKLSAgICAgICAgICAiMC4wMDE5MjEsIDAuMDAxOTIxLCAwLjAwMTkyLCAwLjAwMTkyLCAwLjAwMTkxNiwgMC4wMDE5MTcsIDAuMDAxOTEzIiwgXAotICAgICAgICAgICIwLjAwMTkxLCAwLjAwMTkxLCAwLjAwMTkxLCAwLjAwMTkwOSwgMC4wMDE5MDksIDAuMDAxOTA2LCAwLjAwMTkwNCIsIFwKLSAgICAgICAgICAiMC4wMDE5MDYsIDAuMDAxOTA3LCAwLjAwMTkwNiwgMC4wMDE5MDYsIDAuMDAxOTA1LCAwLjAwMTkwMiwgMC4wMDE5IiwgXAotICAgICAgICAgICIwLjAwMTkwNiwgMC4wMDE5MDYsIDAuMDAxOTA2LCAwLjAwMTkwNiwgMC4wMDE5MDUsIDAuMDAxOTAyLCAwLjAwMTkiLCBcCi0gICAgICAgICAgIjAuMDAxOTA2LCAwLjAwMTkwNiwgMC4wMDE5MDYsIDAuMDAxOTA2LCAwLjAwMTkwNSwgMC4wMDE5MDIsIDAuMDAxOTAxIiwgXAotICAgICAgICAgICIwLjAwMTkwNywgMC4wMDE5MDcsIDAuMDAxOTA4LCAwLjAwMTkwNywgMC4wMDE5MDYsIDAuMDAxOTA0LCAwLjAwMTkwMiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjAwMiwgMC4wMDIwMDIsIDAuMDAyMDAyLCAwLjAwMjAwMSwgMC4wMDIsIDAuMDAxOTk3LCAwLjAwMTk5NSIsIFwKLSAgICAgICAgICAiMC4wMDE5ODgsIDAuMDAxOTg4LCAwLjAwMTk4NywgMC4wMDE5ODcsIDAuMDAxOTg1LCAwLjAwMTk4MiwgMC4wMDE5ODEiLCBcCi0gICAgICAgICAgIjAuMDAxOTgsIDAuMDAxOTgsIDAuMDAxOTc5LCAwLjAwMTk3OCwgMC4wMDE5NzgsIDAuMDAxOTc1LCAwLjAwMTk3MyIsIFwKLSAgICAgICAgICAiMC4wMDE5NzQsIDAuMDAxOTc0LCAwLjAwMTk3NSwgMC4wMDE5NzMsIDAuMDAxOTczLCAwLjAwMTk3LCAwLjAwMTk2OCIsIFwKLSAgICAgICAgICAiMC4wMDE5NzMsIDAuMDAxOTczLCAwLjAwMTk3NCwgMC4wMDE5NzMsIDAuMDAxOTcyLCAwLjAwMTk3LCAwLjAwMTk2NyIsIFwKLSAgICAgICAgICAiMC4wMDE5NzEsIDAuMDAxOTcyLCAwLjAwMTk3MywgMC4wMDE5NzIsIDAuMDAxOTcxLCAwLjAwMTk2OSwgMC4wMDE5NjciLCBcCi0gICAgICAgICAgIjAuMDAxOTcxLCAwLjAwMTk3MiwgMC4wMDE5NzMsIDAuMDAxOTczLCAwLjAwMTk3MiwgMC4wMDE5NywgMC4wMDE5NjgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMU4iOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTgxNiwgMC4wMDE4MTcsIDAuMDAxODE4LCAwLjAwMTgxNywgMC4wMDE4MTYsIDAuMDAxODA3LCAwLjAwMTgxMyIsIFwKLSAgICAgICAgICAiMC4wMDE3OTgsIDAuMDAxNzk4LCAwLjAwMTc5OSwgMC4wMDE3OTksIDAuMDAxNzk4LCAwLjAwMTc5NywgMC4wMDE3OTYiLCBcCi0gICAgICAgICAgIjAuMDAxNzg4LCAwLjAwMTc4OCwgMC4wMDE3ODksIDAuMDAxNzg5LCAwLjAwMTc4OSwgMC4wMDE3ODcsIDAuMDAxNzg2IiwgXAotICAgICAgICAgICIwLjAwMTc4MiwgMC4wMDE3ODMsIDAuMDAxNzgzLCAwLjAwMTc4MywgMC4wMDE3ODIsIDAuMDAxNzgyLCAwLjAwMTc4IiwgXAotICAgICAgICAgICIwLjAwMTc4LCAwLjAwMTc4MSwgMC4wMDE3ODIsIDAuMDAxNzgyLCAwLjAwMTc4MiwgMC4wMDE3OCwgMC4wMDE3NzkiLCBcCi0gICAgICAgICAgIjAuMDAxNzgsIDAuMDAxNzgsIDAuMDAxNzgyLCAwLjAwMTc4MiwgMC4wMDE3ODIsIDAuMDAxNzgxLCAwLjAwMTc3OSIsIFwKLSAgICAgICAgICAiMC4wMDE3OCwgMC4wMDE3ODEsIDAuMDAxNzgzLCAwLjAwMTc4MywgMC4wMDE3ODMsIDAuMDAxNzgxLCAwLjAwMTc4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyMjE3LCAwLjAwMjIxNywgMC4wMDIyMTcsIDAuMDAyMjEzLCAwLjAwMjIxNSwgMC4wMDIyMTIsIDAuMDAyMjExIiwgXAotICAgICAgICAgICIwLjAwMjIwNSwgMC4wMDIyMDUsIDAuMDAyMjA2LCAwLjAwMjIwNCwgMC4wMDIyMDUsIDAuMDAyMiwgMC4wMDIxOTgiLCBcCi0gICAgICAgICAgIjAuMDAyMTk2LCAwLjAwMjE5NiwgMC4wMDIxOTYsIDAuMDAyMTk2LCAwLjAwMjE5NSwgMC4wMDIxOTIsIDAuMDAyMTkiLCBcCi0gICAgICAgICAgIjAuMDAyMTkyLCAwLjAwMjE5MiwgMC4wMDIxOTQsIDAuMDAyMTkyLCAwLjAwMjE5NCwgMC4wMDIxODksIDAuMDAyMTg3IiwgXAotICAgICAgICAgICIwLjAwMjE4OSwgMC4wMDIxODksIDAuMDAyMTksIDAuMDAyMTksIDAuMDAyMTg5LCAwLjAwMjE4NSwgMC4wMDIxODQiLCBcCi0gICAgICAgICAgIjAuMDAyMTg2LCAwLjAwMjE4NywgMC4wMDIxODgsIDAuMDAyMTg4LCAwLjAwMjE4NywgMC4wMDIxODUsIDAuMDAyMTgzIiwgXAotICAgICAgICAgICIwLjAwMjE4NSwgMC4wMDIxODYsIDAuMDAyMTg4LCAwLjAwMjE4OCwgMC4wMDIxODcsIDAuMDAyMTg0LCAwLjAwMjE4MyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDEzODgsIDAuMDAxMzg4LCAwLjAwMTM4NywgMC4wMDEzODYsIDAuMDAxMzg1LCAwLjAwMTM4MywgMC4wMDEzODEiLCBcCi0gICAgICAgICAgIjAuMDAxMzg0LCAwLjAwMTM4NCwgMC4wMDEzODQsIDAuMDAxMzg0LCAwLjAwMTM4MiwgMC4wMDEzNzksIDAuMDAxMzc4IiwgXAotICAgICAgICAgICIwLjAwMTM4MiwgMC4wMDEzODIsIDAuMDAxMzgzLCAwLjAwMTM4MiwgMC4wMDEzOCwgMC4wMDEzNzksIDAuMDAxMzc3IiwgXAotICAgICAgICAgICIwLjAwMTM4LCAwLjAwMTM4MSwgMC4wMDEzODIsIDAuMDAxMzgyLCAwLjAwMTM4MSwgMC4wMDEzNzgsIDAuMDAxMzc3IiwgXAotICAgICAgICAgICIwLjAwMTM3OSwgMC4wMDEzOCwgMC4wMDEzODEsIDAuMDAxMzgxLCAwLjAwMTM4LCAwLjAwMTM3OCwgMC4wMDEzNzYiLCBcCi0gICAgICAgICAgIjAuMDAxMzc4LCAwLjAwMTM3NywgMC4wMDEzODEsIDAuMDAxMzgxLCAwLjAwMTM4LCAwLjAwMTM3OCwgMC4wMDEzNzYiLCBcCi0gICAgICAgICAgIjAuMDAxMzc2LCAwLjAwMTM3NywgMC4wMDEzOCwgMC4wMDEzOCwgMC4wMDEzOCwgMC4wMDEzNzgsIDAuMDAxMzc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwMjg1LCAwLjAwMDI4NSwgMC4wMDAyODYsIDAuMDAwMjg2LCAwLjAwMDI4NiwgMC4wMDAyODYsIDAuMDAwMjg2IiwgXAotICAgICAgICAgICIwLjAwMDI5LCAwLjAwMDI5MSwgMC4wMDAyOTIsIDAuMDAwMjkzLCAwLjAwMDI5MywgMC4wMDAyOTMsIDAuMDAwMjkzIiwgXAotICAgICAgICAgICIwLjAwMDI5LCAwLjAwMDI5LCAwLjAwMDI5NCwgMC4wMDAyOTUsIDAuMDAwMjk1LCAwLjAwMDI5NSwgMC4wMDAyOTYiLCBcCi0gICAgICAgICAgIjAuMDAwMjg3LCAwLjAwMDI4OSwgMC4wMDAyOTMsIDAuMDAwMjk1LCAwLjAwMDI5NiwgMC4wMDAyOTYsIDAuMDAwMjk2IiwgXAotICAgICAgICAgICIwLjAwMDI4NSwgMC4wMDAyODcsIDAuMDAwMjkzLCAwLjAwMDI5NSwgMC4wMDAyOTYsIDAuMDAwMjk2LCAwLjAwMDI5NiIsIFwKLSAgICAgICAgICAiMC4wMDAyODIsIDAuMDAwMjg0LCAwLjAwMDI5MSwgMC4wMDAyOTQsIDAuMDAwMjk1LCAwLjAwMDI5NiwgMC4wMDAyOTciLCBcCi0gICAgICAgICAgIjAuMDAwMjc4LCAwLjAwMDI4MSwgMC4wMDAyOSwgMC4wMDAyOTQsIDAuMDAwMjk1LCAwLjAwMDI5NiwgMC4wMDAyOTciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxMTc2LCAwLjAwMTE3NywgMC4wMDExNzcsIDAuMDAxMTc3LCAwLjAwMTE3NSwgMC4wMDExNzQsIDAuMDAxMTczIiwgXAotICAgICAgICAgICIwLjAwMTE3OCwgMC4wMDExNzgsIDAuMDAxMTc5LCAwLjAwMTE3OSwgMC4wMDExNzksIDAuMDAxMTc3LCAwLjAwMTE3NyIsIFwKLSAgICAgICAgICAiMC4wMDExNzYsIDAuMDAxMTc2LCAwLjAwMTE3OCwgMC4wMDExNzksIDAuMDAxMTc5LCAwLjAwMTE3OCwgMC4wMDExNzciLCBcCi0gICAgICAgICAgIjAuMDAxMTc0LCAwLjAwMTE3NSwgMC4wMDExNzgsIDAuMDAxMTc4LCAwLjAwMTE3OCwgMC4wMDExNzcsIDAuMDAxMTc3IiwgXAotICAgICAgICAgICIwLjAwMTE3MiwgMC4wMDExNzMsIDAuMDAxMTc3LCAwLjAwMTE3OCwgMC4wMDExNzgsIDAuMDAxMTc3LCAwLjAwMTE3NyIsIFwKLSAgICAgICAgICAiMC4wMDExNywgMC4wMDExNzEsIDAuMDAxMTc2LCAwLjAwMTE3NywgMC4wMDExNzgsIDAuMDAxMTc3LCAwLjAwMTE3NiIsIFwKLSAgICAgICAgICAiMC4wMDExNjgsIDAuMDAxMTY5LCAwLjAwMTE3NSwgMC4wMDExNzcsIDAuMDAxMTc3LCAwLjAwMTE3NywgMC4wMDExNzYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDAyODUsIDAuMDAwMjg1LCAwLjAwMDI4NSwgMC4wMDAyODYsIDAuMDAwMjg1LCAwLjAwMDI4NiwgMC4wMDAyODYiLCBcCi0gICAgICAgICAgIjAuMDAwMjksIDAuMDAwMjksIDAuMDAwMjkyLCAwLjAwMDI5MywgMC4wMDAyOTMsIDAuMDAwMjkzLCAwLjAwMDI5MyIsIFwKLSAgICAgICAgICAiMC4wMDAyODksIDAuMDAwMjksIDAuMDAwMjkzLCAwLjAwMDI5NSwgMC4wMDAyOTUsIDAuMDAwMjk2LCAwLjAwMDI5NiIsIFwKLSAgICAgICAgICAiMC4wMDAyODcsIDAuMDAwMjg4LCAwLjAwMDI5MywgMC4wMDAyOTUsIDAuMDAwMjk2LCAwLjAwMDI5NiwgMC4wMDAyOTYiLCBcCi0gICAgICAgICAgIjAuMDAwMjg0LCAwLjAwMDI4NiwgMC4wMDAyOTIsIDAuMDAwMjk1LCAwLjAwMDI5NiwgMC4wMDAyOTYsIDAuMDAwMjk3IiwgXAotICAgICAgICAgICIwLjAwMDI4MSwgMC4wMDAyODMsIDAuMDAwMjkxLCAwLjAwMDI5NCwgMC4wMDAyOTUsIDAuMDAwMjk3LCAwLjAwMDI5NyIsIFwKLSAgICAgICAgICAiMC4wMDAyNzcsIDAuMDAwMjgsIDAuMDAwMjksIDAuMDAwMjk0LCAwLjAwMDI5NSwgMC4wMDAyOTYsIDAuMDAwMjk3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogQU9JMzFYMiAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChBT0kzMVgyKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMTgwNjg1OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNzQ1NDg7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNzM4NjU7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNzQ1NDg7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNjEyLCAwLjAwMDYxMiwgMC4wMDA2MTIsIDAuMDAwNjEyLCAwLjAwMDYxMSwgMC4wMDA2MTEsIDAuMDAwNjExIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNjEzLCAwLjAwMDYxNCwgMC4wMDA2MTQsIDAuMDAwNjE0LCAwLjAwMDYxNCwgMC4wMDA2MTQsIDAuMDAwNjE0Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihBMSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNjQ3Njc7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNjM5ODk7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNjQ3Njc7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNjEyLCAwLjAwMDYxMiwgMC4wMDA2MTEsIDAuMDAwNjExLCAwLjAwMDYxMSwgMC4wMDA2MTEsIDAuMDAwNjExIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNjE1LCAwLjAwMDYxNSwgMC4wMDA2MTUsIDAuMDAwNjE2LCAwLjAwMDYxNiwgMC4wMDA2MTYsIDAuMDAwNjE2Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihBMikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNDc4OTc7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNDY1NjY7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNDc4OTc7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzE0LCAwLjAwMDMxNCwgMC4wMDAzMTQsIDAuMDAwMzEzLCAwLjAwMDMxMywgMC4wMDAzMTQsIDAuMDAwMzEzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNjk1LCAwLjAwMDY5NiwgMC4wMDA2OTUsIDAuMDAwNjk2LCAwLjAwMDY5NiwgMC4wMDA2OTYsIDAuMDAwNjk2Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNDk1OTU7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNDk1MjQ7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNDk1OTU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMTQ4LCAwLjAwMDE0OCwgMC4wMDAxNDgsIDAuMDAwMTQ4LCAwLjAwMDE0OCwgMC4wMDAxNDgsIDAuMDAwMTQ4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxMzUyLCAwLjAwMTM1MywgMC4wMDEzNTMsIDAuMDAxMzUyLCAwLjAwMTM1MiwgMC4wMDEzNTIsIDAuMDAxMzUyIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMDg4NDMwNzsKLSAgICBmdW5jdGlvbiA6ICIoISgoKEEwIEExKSBBMikrQjApKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTAiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExOTE0NywgMC40OTE4OTgsIDAuNzg5MDYsIDEuMTYwNDYsIDEuNTMyMiwgMS45MDM0MiwgMi4yNzQyNCIsIFwKLSAgICAgICAgICAiMC4xMzA4ODUsIDAuNTAzNjExLCAwLjgwMDksIDEuMTcyMywgMS41NDM1LCAxLjkxNTI5LCAyLjI4NjQ1IiwgXAotICAgICAgICAgICIwLjE0NTI2NywgMC41MTgwNTksIDAuODE1MjQxLCAxLjE4NjY4LCAxLjU1ODQ5LCAxLjkyOTQ0LCAyLjMwMDQ4IiwgXAotICAgICAgICAgICIwLjE1ODg0MiwgMC41MzE2NzgsIDAuODI5MDM0LCAxLjIwMDU1LCAxLjU3MTU2LCAxLjk0MzM5LCAyLjMxNDAxIiwgXAotICAgICAgICAgICIwLjE3MTg2NiwgMC41NDQ3NCwgMC44NDE5NzksIDEuMjEzNjIsIDEuNTg1MTUsIDEuOTU2NTUsIDIuMzI3MTciLCBcCi0gICAgICAgICAgIjAuMTkyNDIsIDAuNTY1MzQsIDAuODYyNjg2LCAxLjIzNDEyLCAxLjYwNTI4LCAxLjk3NjQ2LCAyLjM0ODc4IiwgXAotICAgICAgICAgICIwLjIwOTg0NiwgMC41ODI5MTEsIDAuODgwMzAxLCAxLjI1MTcyLCAxLjYyMzU1LCAxLjk5NDUsIDIuMzY1MzgiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTg2OTM5LCAwLjkxNDgwNywgMS40OTgzOCwgMi4yMjM0NSwgMi45NTExMSwgMy42Nzg2MywgNC40MDQ2NSIsIFwKLSAgICAgICAgICAiMC4xODY5NSwgMC45MTQ3MTksIDEuNDk3NzEsIDIuMjIzODEsIDIuOTUyNjUsIDMuNjc5MDcsIDQuNDA2NjYiLCBcCi0gICAgICAgICAgIjAuMTg2NzgzLCAwLjkxNTA4NSwgMS40OTYyLCAyLjIyMzg4LCAyLjk1MTAzLCAzLjY3ODQ5LCA0LjQwNDkzIiwgXAotICAgICAgICAgICIwLjE4Njg5NiwgMC45MTQ3MjEsIDEuNDk3NzksIDIuMjIzNywgMi45NTA1NSwgMy42Nzg0NywgNC40MDcyNiIsIFwKLSAgICAgICAgICAiMC4xODc2MjMsIDAuOTE0NTExLCAxLjQ5NjU5LCAyLjIyNTM1LCAyLjk1MTAyLCAzLjY3ODMzLCA0LjQwNDkyIiwgXAotICAgICAgICAgICIwLjE5MDIzMSwgMC45MTQ2NjYsIDEuNDk3NzIsIDIuMjIzOTQsIDIuOTUwNDUsIDMuNjc5NzQsIDQuNDA2NzciLCBcCi0gICAgICAgICAgIjAuMTkzNjg5LCAwLjkxNDU1LCAxLjQ5Njc5LCAyLjIyMzkzLCAyLjk1MTA2LCAzLjY4MDM1LCA0LjQwNDgyIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE5OTM5OSwgMC44MTUzNTEsIDEuMzA1MzgsIDEuOTE3MjgsIDIuNTI4OTYsIDMuMTQxMTMsIDMuNzUzMDEiLCBcCi0gICAgICAgICAgIjAuMjEwNDQ0LCAwLjgyNjU0MSwgMS4zMTY5OCwgMS45Mjg3MywgMi41NDEyOSwgMy4xNTI4NywgMy43NjM5OCIsIFwKLSAgICAgICAgICAiMC4yMjMyMTUsIDAuODM5NDgxLCAxLjMyOTkzLCAxLjk0MTY5LCAyLjU1NDI3LCAzLjE2NTY5LCAzLjc3Njk2IiwgXAotICAgICAgICAgICIwLjIzNTMwMywgMC44NTE5MDgsIDEuMzQxODcsIDEuOTUzOTcsIDIuNTY2NzUsIDMuMTc3OCwgMy43ODkzIiwgXAotICAgICAgICAgICIwLjI0NzE5NywgMC44NjM2ODIsIDEuMzUzODYsIDEuOTY2OTEsIDIuNTc4ODIsIDMuMTkwMDIsIDMuODAxMzgiLCBcCi0gICAgICAgICAgIjAuMjY1ODAzLCAwLjg4MjYwOSwgMS4zNzMxNSwgMS45ODUwNSwgMi41OTc5NSwgMy4yMDk0NiwgMy44MjAxNSIsIFwKLSAgICAgICAgICAiMC4yODIxMzEsIDAuODk5MDI1LCAxLjM4OTQ4LCAyLjAwMjExLCAyLjYxNDIyLCAzLjIyNTk5LCAzLjgzNjY1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMxMDQ5NSwgMS40NjM1OCwgMi4zODUyMSwgMy41MzU2MSwgNC42ODU3MywgNS44MzQ3MSwgNi45ODY3NyIsIFwKLSAgICAgICAgICAiMC4zMTA0ODIsIDEuNDYzMTIsIDIuMzg0NTksIDMuNTM3OTgsIDQuNjg1MDYsIDUuODM1NTcsIDYuOTg2MzkiLCBcCi0gICAgICAgICAgIjAuMzEwNDc1LCAxLjQ2MzA5LCAyLjM4NDU4LCAzLjUzODA1LCA0LjY4NTA0LCA1LjgzNjY0LCA2Ljk4NjMiLCBcCi0gICAgICAgICAgIjAuMzEwNDcsIDEuNDYzNzUsIDIuMzg1MjIsIDMuNTMzNTQsIDQuNjg0NDUsIDUuODM2MzYsIDYuOTg2NDEiLCBcCi0gICAgICAgICAgIjAuMzEwNDc1LCAxLjQ2MzUxLCAyLjM4Mzg1LCAzLjUzNDc4LCA0LjY4NDQ3LCA1LjgzNTQ3LCA2Ljk4NjM5IiwgXAotICAgICAgICAgICIwLjMxMTM3MywgMS40NjMwNCwgMi4zODUyNywgMy41MzQ4NywgNC42ODU5LCA1LjgzNDk5LCA2Ljk4NjIxIiwgXAotICAgICAgICAgICIwLjMxMzQ0OCwgMS40NjMwNCwgMi4zODQ0NiwgMy41MzQzOCwgNC42ODY0NCwgNS44MzUzNSwgNi45ODYyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTE0OTY1LCAwLjQ4NzY2NiwgMC43ODU5OTEsIDEuMTU4NzcsIDEuNTMwNzIsIDEuOTA0MDYsIDIuMjc1OTQiLCBcCi0gICAgICAgICAgIjAuMTI2ODUyLCAwLjQ5OTgxNywgMC43OTc3NDUsIDEuMTcwMSwgMS41NDMyMywgMS45MTQ5MiwgMi4yODcyMyIsIFwKLSAgICAgICAgICAiMC4xNDEyOTUsIDAuNTE0MzQ0LCAwLjgxMjQyMiwgMS4xODQ3NCwgMS41NTc5MiwgMS45Mjk3OCwgMi4zMDIyNCIsIFwKLSAgICAgICAgICAiMC4xNTQ3NDUsIDAuNTI3OTA4LCAwLjgyNjEyMywgMS4xOTg4MywgMS41NzA2MiwgMS45NDQxNSwgMi4zMTU4OCIsIFwKLSAgICAgICAgICAiMC4xNjc4NjQsIDAuNTQwOTkzLCAwLjgzOTA4NCwgMS4yMTE0NCwgMS41ODQ2NSwgMS45NTY1NiwgMi4zMjk1IiwgXAotICAgICAgICAgICIwLjE4ODA5OCwgMC41NjEzNzgsIDAuODU5NDc0LCAxLjIzMTkyLCAxLjYwNDU5LCAxLjk3NjkzLCAyLjM1MDAyIiwgXAotICAgICAgICAgICIwLjIwNTU0NywgMC41NzkwMzIsIDAuODc3MjU5LCAxLjI0OTQ4LCAxLjYyMjY1LCAxLjk5NDIxLCAyLjM2NzA2Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE4MjE1NSwgMC45MTEzNDIsIDEuNDk1NDQsIDIuMjI1LCAyLjk1NDg4LCAzLjY4NDU0LCA0LjQxMzY1IiwgXAotICAgICAgICAgICIwLjE4MjAyNiwgMC45MTE4MjcsIDEuNDk1MzQsIDIuMjI1OTgsIDIuOTU0NTksIDMuNjgzNzMsIDQuNDE1NTkiLCBcCi0gICAgICAgICAgIjAuMTgyMDQsIDAuOTExODI2LCAxLjQ5NjMzLCAyLjIyNTQ3LCAyLjk1NTE2LCAzLjY4MzM4LCA0LjQxNTA2IiwgXAotICAgICAgICAgICIwLjE4MjEwMywgMC45MTE1NjUsIDEuNDk1MzQsIDIuMjI0OTQsIDIuOTU0NTcsIDMuNjg0NTIsIDQuNDEzNyIsIFwKLSAgICAgICAgICAiMC4xODI4MjksIDAuOTEyNzg1LCAxLjQ5NTQ2LCAyLjIyNiwgMi45NTQ4OSwgMy42ODQxNiwgNC40MTM1NiIsIFwKLSAgICAgICAgICAiMC4xODU2MzMsIDAuOTExNTQxLCAxLjQ5NTQ2LCAyLjIyNjE3LCAyLjk1NDQ3LCAzLjY4NTY5LCA0LjQxMzc5IiwgXAotICAgICAgICAgICIwLjE4OTQyMywgMC45MTE4MTEsIDEuNDk1MzIsIDIuMjI0OTgsIDIuOTU0NywgMy42ODQzMSwgNC40MTUwMiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xOTQ5ODQsIDAuODExMjA3LCAxLjMwMTExLCAxLjkxMzE3LCAyLjUyNTgxLCAzLjEzNzAyLCAzLjc0NzQ0IiwgXAotICAgICAgICAgICIwLjIwNTE3MSwgMC44MjEyMDksIDEuMzExNzQsIDEuOTIzNjYsIDIuNTM2NDUsIDMuMTQ3ODgsIDMuNzU4NjciLCBcCi0gICAgICAgICAgIjAuMjE3ODk5LCAwLjgzNDMzMSwgMS4zMjQyMSwgMS45MzcwNywgMi41NDkyMywgMy4xNjA3NSwgMy43NzE2OSIsIFwKLSAgICAgICAgICAiMC4yMzA0OTksIDAuODQ3MTE1LCAxLjMzNzM1LCAxLjk0OTcxLCAyLjU2MjA4LCAzLjE3MzQ1LCAzLjc4NDY1IiwgXAotICAgICAgICAgICIwLjI0MzIyNSwgMC44NTk5MzIsIDEuMzUwNDcsIDEuOTYyNDcsIDIuNTc1MDQsIDMuMTg2NjQsIDMuNzk3NjEiLCBcCi0gICAgICAgICAgIjAuMjYzNDE1LCAwLjg4MDQ5NSwgMS4zNzA5MiwgMS45ODMyOSwgMi41OTU0OSwgMy4yMDY1MSwgMy44MTgwNyIsIFwKLSAgICAgICAgICAiMC4yODEyNzgsIDAuODk4NTQ1LCAxLjM4ODk1LCAyLjAwMTc0LCAyLjYxMzYzLCAzLjIyNTI2LCAzLjgzNjEzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMxMDQ5NSwgMS40NjM4MSwgMi4zODUyNiwgMy41MzM2MSwgNC42ODQ4LCA1LjgzNjQ1LCA2Ljk4NTg2IiwgXAotICAgICAgICAgICIwLjMxMDQ4NCwgMS40NjM1MSwgMi4zODUxNCwgMy41MzQ5LCA0LjY4NTY0LCA1LjgzNDM5LCA2Ljk4NjMzIiwgXAotICAgICAgICAgICIwLjMxMDU0OSwgMS40NjM3NSwgMi4zODM5MywgMy41MzQzMywgNC42ODQ0LCA1LjgzNTI0LCA2Ljk4NjQiLCBcCi0gICAgICAgICAgIjAuMzEwMjc2LCAxLjQ2NDIxLCAyLjM4NDQ4LCAzLjUzNDksIDQuNjg0OTgsIDUuODM1MjUsIDYuOTg3NDMiLCBcCi0gICAgICAgICAgIjAuMzExMTU4LCAxLjQ2NDIxLCAyLjM4NDkzLCAzLjUzNTcyLCA0LjY4NTQ4LCA1LjgzNDY2LCA2Ljk4NDg5IiwgXAotICAgICAgICAgICIwLjMxMjA5NCwgMS40NjM0NCwgMi4zODUyMSwgMy41MzYwNCwgNC42ODQ2NiwgNS44MzQ5OSwgNi45ODYzMSIsIFwKLSAgICAgICAgICAiMC4zMTUwMTEsIDEuNDYzNDgsIDIuMzg0NDUsIDMuNTM0MzgsIDQuNjg2NzgsIDUuODM2MjQsIDYuOTg2MjkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTIiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExMDQzNSwgMC40ODU4MTMsIDAuNzg2Njc0LCAxLjE2MjcxLCAxLjUzNzY3LCAxLjkxMzQ2LCAyLjI4OTE0IiwgXAotICAgICAgICAgICIwLjEyMjQxNywgMC40OTgxNDUsIDAuNzk4NjA3LCAxLjE3NCwgMS41NTAxNiwgMS45MjQ5NSwgMi4zMDEwNyIsIFwKLSAgICAgICAgICAiMC4xMzY4NTYsIDAuNTEyOTUxLCAwLjgxMzMxNSwgMS4xODg5MiwgMS41NjQ3OSwgMS45NDAzNywgMi4zMTU1NyIsIFwKLSAgICAgICAgICAiMC4xNTAyODMsIDAuNTI2NTc0LCAwLjgyNjk0MywgMS4yMDI4MiwgMS41Nzc3OCwgMS45NTQ1OSwgMi4zMjkyOSIsIFwKLSAgICAgICAgICAiMC4xNjMyMzYsIDAuNTM5MzY5LCAwLjgzOTg4OCwgMS4yMTU0LCAxLjU5MTE3LCAxLjk2NjgyLCAyLjM0MzAyIiwgXAotICAgICAgICAgICIwLjE4MzM0MSwgMC41NjAwNjQsIDAuODYwMzc0LCAxLjIzNTg2LCAxLjYxMjEzLCAxLjk4Njc1LCAyLjM2MzI2IiwgXAotICAgICAgICAgICIwLjIwMDk2OSwgMC41Nzc0NiwgMC44NzgwNjYsIDEuMjUzNDUsIDEuNjI5NTIsIDIuMDA0NTQsIDIuMzgxMzEiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTc4MTgyLCAwLjkxMjk3NywgMS41MDczMywgMi4yMzg0NiwgMi45NzUwNiwgMy43MTA0MywgNC40NjEwMyIsIFwKLSAgICAgICAgICAiMC4xNzc4MjksIDAuOTE1NTc0LCAxLjUwMzc0LCAyLjI0MzM1LCAyLjk4NDQ2LCAzLjcxODQyLCA0LjQ0NjUyIiwgXAotICAgICAgICAgICIwLjE3ODIwMSwgMC45MTM4MDksIDEuNTAyNDYsIDIuMjQ1MjEsIDIuOTc1NSwgMy43MjM0MiwgNC40NjA2NyIsIFwKLSAgICAgICAgICAiMC4xNzc4MzcsIDAuOTEzNjc0LCAxLjUwNzIyLCAyLjIzODY4LCAyLjk3NjQsIDMuNzEwMDEsIDQuNDYwNTYiLCBcCi0gICAgICAgICAgIjAuMTc5MDY5LCAwLjkxNjM1LCAxLjUwMzY5LCAyLjI0MzEzLCAyLjk4MzYyLCAzLjcyMjc2LCA0LjQ0OCIsIFwKLSAgICAgICAgICAiMC4xODE5MzEsIDAuOTEzNzA4LCAxLjUwNjgzLCAyLjI0NDg3LCAyLjk3NDc2LCAzLjcxODk2LCA0LjQ0NzE2IiwgXAotICAgICAgICAgICIwLjE4NTU3OSwgMC45MTY1MzUsIDEuNTA3MTksIDIuMjQ0OTgsIDIuOTg0MzIsIDMuNzE4MTEsIDQuNDQ1NSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xODUzOCwgMC44MDEzNDEsIDEuMjkxNDcsIDEuOTAzNjYsIDIuNTE1MzcsIDMuMTI2MjIsIDMuNzM4NTciLCBcCi0gICAgICAgICAgIjAuMTk0NDM4LCAwLjgxMDUzOCwgMS4zMDA4MiwgMS45MTM1MSwgMi41MjQ4MywgMy4xMzY3NywgMy43NDc5MSIsIFwKLSAgICAgICAgICAiMC4yMDYzMTYsIDAuODIyODYyLCAxLjMxMzI3LCAxLjkyNDg5LCAyLjUzNzU0LCAzLjE0ODc2LCAzLjc2MDE4IiwgXAotICAgICAgICAgICIwLjIxNzA5LCAwLjgzNDk1MiwgMS4zMjUzLCAxLjkzOCwgMi41NTAxLCAzLjE2MTM2LCAzLjc3Mjc3IiwgXAotICAgICAgICAgICIwLjIzMDQ4OSwgMC44NDcxNjUsIDEuMzM3NjMsIDEuOTQ5MzIsIDIuNTYyNTcsIDMuMTczMTIsIDMuNzg0ODMiLCBcCi0gICAgICAgICAgIjAuMjUwMDksIDAuODY2OTA4LCAxLjM1NzQ3LCAxLjk2OTc1LCAyLjU4MTU2LCAzLjE5MzA5LCAzLjgwNDU3IiwgXAotICAgICAgICAgICIwLjI2NzI4LCAwLjg4MzkxNywgMS4zNzQyMiwgMS45ODcyLCAyLjU5OTE5LCAzLjIxMDgxLCAzLjgyMTY5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMxMDQ5NSwgMS40NjM1NCwgMi4zODM2MiwgMy41MzQ5LCA0LjY4NDUxLCA1LjgzNTg5LCA2Ljk4NjIyIiwgXAotICAgICAgICAgICIwLjMxMDU3MSwgMS40NjM0OCwgMi4zODM4NywgMy41MzQ3NCwgNC42ODUxNywgNS44MzY0MywgNi45ODYyNiIsIFwKLSAgICAgICAgICAiMC4zMTA0OTcsIDEuNDYzNzUsIDIuMzg0MTYsIDMuNTMzNTgsIDQuNjg0OTIsIDUuODM2MzYsIDYuOTg2MzYiLCBcCi0gICAgICAgICAgIjAuMzEwMzU1LCAxLjQ2MzUyLCAyLjM4NDQzLCAzLjUzNDQ1LCA0LjY4NDM0LCA1LjgzNjY2LCA2Ljk4NjY3IiwgXAotICAgICAgICAgICIwLjMxMDM4MywgMS40NjMwMiwgMi4zODUyNCwgMy41MzM3LCA0LjY4NDQ3LCA1LjgzNTE3LCA2Ljk4NjQ4IiwgXAotICAgICAgICAgICIwLjMxMzkzOSwgMS40NjM1NywgMi4zODUyMSwgMy41MzYxLCA0LjY4NjMzLCA1LjgzNjQ3LCA2Ljk4NjQxIiwgXAotICAgICAgICAgICIwLjMxOTM0LCAxLjQ2MzQ4LCAyLjM4NDExLCAzLjUzNDM2LCA0LjY4NjkyLCA1LjgzNTk5LCA2Ljk4NDcxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDA0NTQsIDAuNDczMDM5LCAwLjc3MDYxLCAxLjE0MjM5LCAxLjUxOSwgMS44OTM4LCAyLjI2ODc4IiwgXAotICAgICAgICAgICIwLjExMDgwMiwgMC40ODM3NzksIDAuNzgxMTI3LCAxLjE1MzA1LCAxLjUyODQxLCAxLjkwNDM2LCAyLjI3OTM0IiwgXAotICAgICAgICAgICIwLjEyMzc1OCwgMC40OTY4MzIsIDAuNzk0MTg3LCAxLjE2NjAyLCAxLjU0MTQxLCAxLjkxNjk2LCAyLjI5MzY5IiwgXAotICAgICAgICAgICIwLjEzNzQyNiwgMC41MTA2NzIsIDAuODA3OTI0LCAxLjE4MDcsIDEuNTU1NDcsIDEuOTMyMjIsIDIuMzA2ODkiLCBcCi0gICAgICAgICAgIjAuMTQ5OTMzLCAwLjUyMzA2NywgMC44MjA0NzIsIDEuMTkyNDcsIDEuNTY3NzQsIDEuOTQ0ODIsIDIuMzE5MzgiLCBcCi0gICAgICAgICAgIjAuMTcxODI0LCAwLjU0NDAxNiwgMC44NDE1MDIsIDEuMjEzMzUsIDEuNTg4OCwgMS45NjUzNiwgMi4zNDA5MyIsIFwKLSAgICAgICAgICAiMC4xOTA2MDgsIDAuNTYyMzY3LCAwLjg1OTgzNSwgMS4yMzE4NSwgMS42MDgxNCwgMS45ODI2NCwgMi4zNTkzOCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xODY4OTEsIDAuOTEzODc0LCAxLjUwNTU0LCAyLjI1MjI3LCAyLjk3NDAxLCAzLjcyMjgzLCA0LjQ1NTM2IiwgXAotICAgICAgICAgICIwLjE4NjczOSwgMC45MTYzNzQsIDEuNTA1NDQsIDIuMjQwNywgMi45ODM0LCAzLjcxMDQ5LCA0LjQ1OTc0IiwgXAotICAgICAgICAgICIwLjE4NjE3NywgMC45MTQ5MTMsIDEuNTA2OTgsIDIuMjQ1MDgsIDIuOTgzMTMsIDMuNzE4MjcsIDQuNDQ2NzYiLCBcCi0gICAgICAgICAgIjAuMTg3NTkzLCAwLjkxNjUxOCwgMS41MDAzNiwgMi4yMzg5NSwgMi45NzcxNiwgMy43MDk5NSwgNC40NjA3NSIsIFwKLSAgICAgICAgICAiMC4xOTE0ODgsIDAuOTE1NzE3LCAxLjUxMTgzLCAyLjI0MDM0LCAyLjk4MDc0LCAzLjcxMTEyLCA0LjQ2MDc4IiwgXAotICAgICAgICAgICIwLjE5OTQwMSwgMC45MTU1NTEsIDEuNTA3MjcsIDIuMjQzMTIsIDIuOTgzMDksIDMuNzEwNDgsIDQuNDQ1MSIsIFwKLSAgICAgICAgICAiMC4yMDgyMTksIDAuOTE2MjMzLCAxLjUwMjU4LCAyLjI0NTIzLCAyLjk3NDIsIDMuNzIxNTMsIDQuNDQ3Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1MzU1MiwgMC4yNTk4NjgsIDAuNDI0ODE5LCAwLjYzMTI4NiwgMC44MzczNjIsIDEuMDQzNzQsIDEuMjUwMjgiLCBcCi0gICAgICAgICAgIjAuMDY1MzM0LCAwLjI3MTc3NSwgMC40MzY3MDMsIDAuNjQyODkyLCAwLjg0ODkzLCAxLjA1NTEzLCAxLjI2MTMiLCBcCi0gICAgICAgICAgIjAuMDgwMzQ5LCAwLjI4NTQ3OCwgMC40NTA5MzYsIDAuNjU3MDgzLCAwLjg2MzM0LCAxLjA2OTMzLCAxLjI3NTM0IiwgXAotICAgICAgICAgICIwLjA5NTIyMSwgMC4zMDExMjYsIDAuNDY1OTk2LCAwLjY3MjE4MiwgMC44NzUzMjcsIDEuMDgxMDQsIDEuMjg3NDgiLCBcCi0gICAgICAgICAgIjAuMTEwMzkxLCAwLjMxNjU1LCAwLjQ4MTE0LCAwLjY4NzQyMywgMC44OTM4MzUsIDEuMDk5OTYsIDEuMzA2NiIsIFwKLSAgICAgICAgICAiMC4xMzQzMTgsIDAuMzM5ODIxLCAwLjUwNDQxNSwgMC43MTA0MjEsIDAuOTE3MDUsIDEuMTE5MDYsIDEuMzI1OTQiLCBcCi0gICAgICAgICAgIjAuMTUzOTcxLCAwLjM2MTA0NCwgMC41MjU1ODgsIDAuNzMxNTE5LCAwLjkzNzQ1NSwgMS4xNDQxOSwgMS4zNDk1NSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDkyNDcsIDAuNTE3Mzk0LCAwLjg0NDY3OSwgMS4yNTM5NywgMS42NjM3MywgMi4wNzI3NywgMi40ODI1MyIsIFwKLSAgICAgICAgICAiMC4xMDkyNTYsIDAuNTE3MzcyLCAwLjg0NDY0LCAxLjI1Mzg2LCAxLjY2MzMxLCAyLjA3Mjg2LCAyLjQ4MjM3IiwgXAotICAgICAgICAgICIwLjExMTAzMiwgMC41MTczODcsIDAuODQ0NjQsIDEuMjU0MDUsIDEuNjYzMjYsIDIuMDczMTQsIDIuNDgyNzgiLCBcCi0gICAgICAgICAgIjAuMTE1NjA0LCAwLjUxNzM3NSwgMC44NDQ2MjgsIDEuMjU0MDQsIDEuNjYzNjEsIDIuMDcyOTMsIDIuNDgyNDUiLCBcCi0gICAgICAgICAgIjAuMTIxNTQsIDAuNTE3MzM5LCAwLjg0NDY0LCAxLjI1NDE5LCAxLjY2MzM2LCAyLjA3MzE0LCAyLjQ4MjM4IiwgXAotICAgICAgICAgICIwLjEzMzQ1OCwgMC41MTc3MDQsIDAuODQ0NzA4LCAxLjI1NDA2LCAxLjY2MzM1LCAyLjA3MjkzLCAyLjQ4MjkyIiwgXAotICAgICAgICAgICIwLjE0NDg2NywgMC41MTk4NjMsIDAuODQ0NjQzLCAxLjI1NDExLCAxLjY2MzI5LCAyLjA3Mjg1LCAyLjQ4Mjk3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNTA4OCwgMC4wMDUwODcsIDAuMDA1MDg1LCAwLjAwNTA4NSwgMC4wMDUwODEsIDAuMDA1MDc5LCAwLjAwNTA4IiwgXAotICAgICAgICAgICIwLjAwNTA2OCwgMC4wMDUwNjksIDAuMDA1MDY4LCAwLjAwNTA2OSwgMC4wMDUwNjUsIDAuMDA1MDY0LCAwLjAwNTA2MyIsIFwKLSAgICAgICAgICAiMC4wMDUwNTksIDAuMDA1MDY0LCAwLjAwNTA2MywgMC4wMDUwNjIsIDAuMDA1MDYzLCAwLjAwNTA1OSwgMC4wMDUwNTkiLCBcCi0gICAgICAgICAgIjAuMDA1MDU0LCAwLjAwNTA2MSwgMC4wMDUwNjEsIDAuMDA1MDYsIDAuMDA1MDU5LCAwLjAwNTA1NywgMC4wMDUwNTciLCBcCi0gICAgICAgICAgIjAuMDA1MDUxLCAwLjAwNTA1OSwgMC4wMDUwNiwgMC4wMDUwNTksIDAuMDA1MDU4LCAwLjAwNTA1NywgMC4wMDUwNTUiLCBcCi0gICAgICAgICAgIjAuMDA1MDQ2LCAwLjAwNTA1OCwgMC4wMDUwNTksIDAuMDA1MDU5LCAwLjAwNTA1OCwgMC4wMDUwNTcsIDAuMDA1MDU2IiwgXAotICAgICAgICAgICIwLjAwNTA0MywgMC4wMDUwNTcsIDAuMDA1MDU5LCAwLjAwNTA1OCwgMC4wMDUwNTgsIDAuMDA1MDU3LCAwLjAwNTA1NSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTQ2MSwgMC4wMDE0NiwgMC4wMDE0NTgsIDAuMDAxNDU3LCAwLjAwMTQ1NSwgMC4wMDE0NTIsIDAuMDAxNDUxIiwgXAotICAgICAgICAgICIwLjAwMTQyOCwgMC4wMDE0MzEsIDAuMDAxNDI5LCAwLjAwMTQyOSwgMC4wMDE0MjksIDAuMDAxNDI1LCAwLjAwMTQyMyIsIFwKLSAgICAgICAgICAiMC4wMDE0MDksIDAuMDAxNDIsIDAuMDAxNDIxLCAwLjAwMTQxOSwgMC4wMDE0MTUsIDAuMDAxNDE2LCAwLjAwMTQxNCIsIFwKLSAgICAgICAgICAiMC4wMDEzOTYsIDAuMDAxNDE0LCAwLjAwMTQxNSwgMC4wMDE0MTQsIDAuMDAxNDE0LCAwLjAwMTQxMSwgMC4wMDE0MSIsIFwKLSAgICAgICAgICAiMC4wMDEzODYsIDAuMDAxNDA5LCAwLjAwMTQxMSwgMC4wMDE0MTIsIDAuMDAxNDEsIDAuMDAxNDEsIDAuMDAxNDA3IiwgXAotICAgICAgICAgICIwLjAwMTM3MywgMC4wMDE0MDQsIDAuMDAxNDA3LCAwLjAwMTQwOCwgMC4wMDE0MDgsIDAuMDAxNDA2LCAwLjAwMTQwNSIsIFwKLSAgICAgICAgICAiMC4wMDEzNjQsIDAuMDAxMzk5LCAwLjAwMTQwNCwgMC4wMDE0MDYsIDAuMDAxNDA1LCAwLjAwMTQwNSwgMC4wMDE0MDMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0NDg2LCAwLjAwNDQ4NiwgMC4wMDQ0ODUsIDAuMDA0NDg2LCAwLjAwNDQ4MywgMC4wMDQ0ODMsIDAuMDA0NDgxIiwgXAotICAgICAgICAgICIwLjAwNDQ3OCwgMC4wMDQ0ODUsIDAuMDA0NDgzLCAwLjAwNDQ3OSwgMC4wMDQ0ODcsIDAuMDA0NDg4LCAwLjAwNDQ4MiIsIFwKLSAgICAgICAgICAiMC4wMDQ0NjksIDAuMDA0NDgzLCAwLjAwNDQ4NCwgMC4wMDQ0NzksIDAuMDA0NDgsIDAuMDA0NDc5LCAwLjAwNDQ4MiIsIFwKLSAgICAgICAgICAiMC4wMDQ0NjIsIDAuMDA0NDgsIDAuMDA0NDgyLCAwLjAwNDQ4MiwgMC4wMDQ0ODIsIDAuMDA0NDgyLCAwLjAwNDQ4MiIsIFwKLSAgICAgICAgICAiMC4wMDQ0NTQsIDAuMDA0NDc4LCAwLjAwNDQ4MSwgMC4wMDQ0ODEsIDAuMDA0NDgxLCAwLjAwNDQ4MSwgMC4wMDQ0OCIsIFwKLSAgICAgICAgICAiMC4wMDQ0NDQsIDAuMDA0NDc1LCAwLjAwNDQ3OCwgMC4wMDQ0OCwgMC4wMDQ0OCwgMC4wMDQ0ODEsIDAuMDA0NDgxIiwgXAotICAgICAgICAgICIwLjAwNDQzNywgMC4wMDQ0NywgMC4wMDQ0NzUsIDAuMDA0NDc3LCAwLjAwNDQ3OCwgMC4wMDQ0NzgsIDAuMDA0NDc4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxNDYyLCAwLjAwMTQ2LCAwLjAwMTQ1OSwgMC4wMDE0NTYsIDAuMDAxNDU2LCAwLjAwMTQ1MiwgMC4wMDE0NSIsIFwKLSAgICAgICAgICAiMC4wMDE0MjgsIDAuMDAxNDMsIDAuMDAxNDMsIDAuMDAxNDI2LCAwLjAwMTQyNywgMC4wMDE0MjQsIDAuMDAxNDIzIiwgXAotICAgICAgICAgICIwLjAwMTQxLCAwLjAwMTQxOSwgMC4wMDE0MTksIDAuMDAxNDIsIDAuMDAxNDE1LCAwLjAwMTQxMywgMC4wMDE0MTMiLCBcCi0gICAgICAgICAgIjAuMDAxMzk1LCAwLjAwMTQxNCwgMC4wMDE0MTUsIDAuMDAxNDEzLCAwLjAwMTQxMywgMC4wMDE0MTEsIDAuMDAxNDA5IiwgXAotICAgICAgICAgICIwLjAwMTM4NiwgMC4wMDE0MDksIDAuMDAxNDEsIDAuMDAxNDExLCAwLjAwMTQwOSwgMC4wMDE0MDksIDAuMDAxNDA2IiwgXAotICAgICAgICAgICIwLjAwMTM3MywgMC4wMDE0MDQsIDAuMDAxNDA3LCAwLjAwMTQwOCwgMC4wMDE0MDcsIDAuMDAxNDA2LCAwLjAwMTQwNSIsIFwKLSAgICAgICAgICAiMC4wMDEzNjQsIDAuMDAxMzk5LCAwLjAwMTQwNCwgMC4wMDE0MDUsIDAuMDAxNDA2LCAwLjAwMTQwNCwgMC4wMDE0MDIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzODE4LCAwLjAwMzgyMiwgMC4wMDM4MjIsIDAuMDAzODIyLCAwLjAwMzgyMywgMC4wMDM4MjIsIDAuMDAzODIxIiwgXAotICAgICAgICAgICIwLjAwMzgyNCwgMC4wMDM4MzgsIDAuMDAzODQsIDAuMDAzODQsIDAuMDAzODQsIDAuMDAzODQxLCAwLjAwMzg0NSIsIFwKLSAgICAgICAgICAiMC4wMDM4MTMsIDAuMDAzODM5LCAwLjAwMzg0MiwgMC4wMDM4NDIsIDAuMDAzODQ1LCAwLjAwMzg0NCwgMC4wMDM4NDQiLCBcCi0gICAgICAgICAgIjAuMDAzOCwgMC4wMDM4MzcsIDAuMDAzODQyLCAwLjAwMzg0MywgMC4wMDM4NDUsIDAuMDAzODQ1LCAwLjAwMzg0NiIsIFwKLSAgICAgICAgICAiMC4wMDM3OTIsIDAuMDAzODM0LCAwLjAwMzg0LCAwLjAwMzg0MywgMC4wMDM4NDQsIDAuMDAzODQ2LCAwLjAwMzg0NSIsIFwKLSAgICAgICAgICAiMC4wMDM3NzgsIDAuMDAzODI5LCAwLjAwMzgzNiwgMC4wMDM4NCwgMC4wMDM4NDIsIDAuMDAzODQzLCAwLjAwMzg0NCIsIFwKLSAgICAgICAgICAiMC4wMDM3NjcsIDAuMDAzODI1LCAwLjAwMzgzNCwgMC4wMDM4MzgsIDAuMDAzODQxLCAwLjAwMzg0MSwgMC4wMDM4NDQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDE0NjMsIDAuMDAxNDYyLCAwLjAwMTQ1OCwgMC4wMDE0NTUsIDAuMDAxNDUyLCAwLjAwMTQ1NCwgMC4wMDE0NTMiLCBcCi0gICAgICAgICAgIjAuMDAxNDI2LCAwLjAwMTQzMSwgMC4wMDE0MywgMC4wMDE0MjksIDAuMDAxNDI0LCAwLjAwMTQyNiwgMC4wMDE0MjMiLCBcCi0gICAgICAgICAgIjAuMDAxNDAzLCAwLjAwMTQxOCwgMC4wMDE0MTgsIDAuMDAxNDE4LCAwLjAwMTQxOCwgMC4wMDE0MTUsIDAuMDAxNDEzIiwgXAotICAgICAgICAgICIwLjAwMTM3OCwgMC4wMDE0MTEsIDAuMDAxNDEzLCAwLjAwMTQxMywgMC4wMDE0MTEsIDAuMDAxNDExLCAwLjAwMTQwOSIsIFwKLSAgICAgICAgICAiMC4wMDEzNzYsIDAuMDAxNDA2LCAwLjAwMTQwOSwgMC4wMDE0MSwgMC4wMDE0MDksIDAuMDAxNDA3LCAwLjAwMTQwNiIsIFwKLSAgICAgICAgICAiMC4wMDEzNjIsIDAuMDAxNCwgMC4wMDE0MDUsIDAuMDAxNDA2LCAwLjAwMTQwNiwgMC4wMDE0MDQsIDAuMDAxNDA0IiwgXAotICAgICAgICAgICIwLjAwMTM1NSwgMC4wMDEzOTUsIDAuMDAxNDAxLCAwLjAwMTQwNCwgMC4wMDE0MDQsIDAuMDAxNDAzLCAwLjAwMTQwMSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDM1MTYsIDAuMDAzNTIsIDAuMDAzNTIsIDAuMDAzNTE3LCAwLjAwMzUxNiwgMC4wMDM1MTksIDAuMDAzNTEzIiwgXAotICAgICAgICAgICIwLjAwMzQ5NSwgMC4wMDM1MTUsIDAuMDAzNTE3LCAwLjAwMzUxNywgMC4wMDM1MTgsIDAuMDAzNTE3LCAwLjAwMzUxOCIsIFwKLSAgICAgICAgICAiMC4wMDM0NzUsIDAuMDAzNTA5LCAwLjAwMzUxMywgMC4wMDM1MTIsIDAuMDAzNTE1LCAwLjAwMzUxNCwgMC4wMDM1MTMiLCBcCi0gICAgICAgICAgIjAuMDAzNDYyLCAwLjAwMzUwMywgMC4wMDM1MDgsIDAuMDAzNTEyLCAwLjAwMzUxMSwgMC4wMDM1MTEsIDAuMDAzNTEyIiwgXAotICAgICAgICAgICIwLjAwMzQ1LCAwLjAwMzQ5OSwgMC4wMDM1MDYsIDAuMDAzNTA4LCAwLjAwMzUwOSwgMC4wMDM1MTEsIDAuMDAzNTA3IiwgXAotICAgICAgICAgICIwLjAwMzQ0LCAwLjAwMzQ5MSwgMC4wMDM1LCAwLjAwMzUwNCwgMC4wMDM1MDYsIDAuMDAzNTA2LCAwLjAwMzUwOCIsIFwKLSAgICAgICAgICAiMC4wMDM0MzMsIDAuMDAzNDg1LCAwLjAwMzQ5NSwgMC4wMDM1MDEsIDAuMDAzNTA0LCAwLjAwMzUwNSwgMC4wMDM1MDUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDAxMjksIDAuMDAwMTM3LCAwLjAwMDEzOCwgMC4wMDAxMzgsIDAuMDAwMTM4LCAwLjAwMDEzOSwgMC4wMDAxMzkiLCBcCi0gICAgICAgICAgIjAuMDAwMTI1LCAwLjAwMDE1OSwgMC4wMDAxNjIsIDAuMDAwMTY0LCAwLjAwMDE2NSwgMC4wMDAxNjUsIDAuMDAwMTY2IiwgXAotICAgICAgICAgICIwLjAwMDEwMiwgMC4wMDAxNiwgMC4wMDAxNjcsIDAuMDAwMTcsIDAuMDAwMTcyLCAwLjAwMDE3MywgMC4wMDAxNzQiLCBcCi0gICAgICAgICAgIjAuMDAwMDgzLCAwLjAwMDE1NiwgMC4wMDAxNjUsIDAuMDAwMTcsIDAuMDAwMTczLCAwLjAwMDE3NSwgMC4wMDAxNzYiLCBcCi0gICAgICAgICAgIjAuMDAwMDY0LCAwLjAwMDE1LCAwLjAwMDE2MiwgMC4wMDAxNjgsIDAuMDAwMTcxLCAwLjAwMDE3MywgMC4wMDAxNzQiLCBcCi0gICAgICAgICAgIjAuMDAwMDQ1LCAwLjAwMDE0MSwgMC4wMDAxNTcsIDAuMDAwMTY1LCAwLjAwMDE2OSwgMC4wMDAxNzMsIDAuMDAwMTc1IiwgXAotICAgICAgICAgICIwLjAwMDAzLCAwLjAwMDEzMiwgMC4wMDAxNSwgMC4wMDAxNjEsIDAuMDAwMTY2LCAwLjAwMDE3LCAwLjAwMDE3MiIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IEFPSTMyWDIgKgotICogLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoQU9JMzJYMikgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjIyMzUxMzsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQTApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTY4MzU2OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTY3NjU2OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTY4MzU2OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDYxMiwgMC4wMDA2MTIsIDAuMDAwNjEyLCAwLjAwMDYxMSwgMC4wMDA2MTEsIDAuMDAwNjExLCAwLjAwMDYxMSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDYxMywgMC4wMDA2MTQsIDAuMDAwNjE0LCAwLjAwMDYxNCwgMC4wMDA2MTQsIDAuMDAwNjE0LCAwLjAwMDYxNCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQTEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTYyNjYzOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTYxNzk5OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTYyNjYzOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDYxMiwgMC4wMDA2MTIsIDAuMDAwNjEyLCAwLjAwMDYxMSwgMC4wMDA2MTEsIDAuMDAwNjExLCAwLjAwMDYxMSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDYxNSwgMC4wMDA2MTUsIDAuMDAwNjE1LCAwLjAwMDYxNSwgMC4wMDA2MTYsIDAuMDAwNjE2LCAwLjAwMDYxNiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQTIpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTUwNDU4OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTQ5MDY0OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTUwNDU4OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDMyMiwgMC4wMDAzMjEsIDAuMDAwMzIxLCAwLjAwMDMyMSwgMC4wMDAzMjEsIDAuMDAwMzIxLCAwLjAwMDMyMSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDY5NSwgMC4wMDA2OTYsIDAuMDAwNjk2LCAwLjAwMDY5NiwgMC4wMDA2OTYsIDAuMDAwNjk2LCAwLjAwMDY5NiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQjApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTU2Nzg3OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTU2Nzg3OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTU2MjYxOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDYxMiwgMC4wMDA2MTIsIDAuMDAwNjEyLCAwLjAwMDYxMiwgMC4wMDA2MTIsIDAuMDAwNjEyLCAwLjAwMDYxMiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDYyNiwgMC4wMDA2MTYsIDAuMDAwNjE1LCAwLjAwMDYxNSwgMC4wMDA2MTUsIDAuMDAwNjE0LCAwLjAwMDYxNCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQjEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTQ2ODI2OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTQ2NzA1OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTQ2ODI2OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDIxOCwgMC4wMDAyMTgsIDAuMDAwMjE4LCAwLjAwMDIxOCwgMC4wMDAyMTgsIDAuMDAwMjE4LCAwLjAwMDIxOCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDY5NSwgMC4wMDA2OTUsIDAuMDAwNjk1LCAwLjAwMDY5NSwgMC4wMDA2OTUsIDAuMDAwNjk2LCAwLjAwMDY5NiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjA5MjA0Mzk7Ci0gICAgZnVuY3Rpb24gOiAiKCEoKEIwIEIxKSsoKEEwIEExKSBBMikpKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTAiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEzNDgzNSwgMC41MDc5NywgMC44MDgxODgsIDEuMTg0MTYsIDEuNTYwODYsIDEuOTM2MDYsIDIuMzEyMTQiLCBcCi0gICAgICAgICAgIjAuMTQ2NTIyLCAwLjUxOTY0OSwgMC44MTk4NjksIDEuMTk1OTksIDEuNTcyLCAxLjk0ODA0LCAyLjMyMzgiLCBcCi0gICAgICAgICAgIjAuMTYxMTM1LCAwLjUzNDM0MSwgMC44MzQ2MzIsIDEuMjExMDQsIDEuNTg3MDcsIDEuOTYzMjUsIDIuMzM4OTciLCBcCi0gICAgICAgICAgIjAuMTc1MDcsIDAuNTQ4MywgMC44NDg1NDcsIDEuMjI0NTUsIDEuNjAwNDYsIDEuOTc2NDcsIDIuMzUzMTEiLCBcCi0gICAgICAgICAgIjAuMTg4MzY5LCAwLjU2MTU1MiwgMC44NjE4NzgsIDEuMjM4MjIsIDEuNjEzODksIDEuOTkwNDcsIDIuMzY2NzMiLCBcCi0gICAgICAgICAgIjAuMjA4OTg2LCAwLjU4MjI4MiwgMC44ODI0ODgsIDEuMjU4NjMsIDEuNjM0NDQsIDIuMDEwMzEsIDIuMzg3MjUiLCBcCi0gICAgICAgICAgIjAuMjI2NjEyLCAwLjYwMDMwMywgMC45MDA0OCwgMS4yNzY0OCwgMS42NTI2MSwgMi4wMjgzNSwgMi40MDQ1MSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMDYxLCAwLjkzOTI0MiwgMS41MjY2MSwgMi4yNjM5MywgMi45OTgyLCAzLjczNTU2LCA0LjQ2ODc5IiwgXAotICAgICAgICAgICIwLjIwNjExNywgMC45MzkyNDYsIDEuNTI2ODksIDIuMjYyNTYsIDIuOTk5NSwgMy43MzU3OCwgNC40NzEzOCIsIFwKLSAgICAgICAgICAiMC4yMDU5MTEsIDAuOTM4MjI3LCAxLjUyNzk2LCAyLjI2MjQ2LCAyLjk5ODc1LCAzLjczMzU3LCA0LjQ2ODk1IiwgXAotICAgICAgICAgICIwLjIwNjA4OSwgMC45MzgzNzksIDEuNTI4MDgsIDIuMjY0MDgsIDIuOTk5NjcsIDMuNzMzMDksIDQuNDY5OSIsIFwKLSAgICAgICAgICAiMC4yMDYzMjMsIDAuOTM5MjQyLCAxLjUyODE0LCAyLjI2MjQ5LCAyLjk5Nzg1LCAzLjczMzg0LCA0LjQ2OTI1IiwgXAotICAgICAgICAgICIwLjIwODE0NCwgMC45Mzg0MTMsIDEuNTI4MTUsIDIuMjYyNywgMi45OTc2NCwgMy43MzI5OSwgNC40NzA2MSIsIFwKLSAgICAgICAgICAiMC4yMTA5OTIsIDAuOTM4MzY2LCAxLjUyNzAyLCAyLjI2MjYzLCAyLjk5ODQxLCAzLjczMzI0LCA0LjQ3MTQ4Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIyNDMwNCwgMC44NDA1NDIsIDEuMzMwOTMsIDEuOTQyODMsIDIuNTU1NCwgMy4xNjcwMywgMy43NzgxIiwgXAotICAgICAgICAgICIwLjIzNTYyMiwgMC44NTIwMTMsIDEuMzQxOTEsIDEuOTU0NTYsIDIuNTY3MDUsIDMuMTc4NTUsIDMuNzg5NTMiLCBcCi0gICAgICAgICAgIjAuMjQ4NDY0LCAwLjg2NTEzNywgMS4zNTUwMywgMS45Njc2OCwgMi41ODAxOSwgMy4xOTE3MywgMy44MDI3IiwgXAotICAgICAgICAgICIwLjI2MDY2OSwgMC44NzcxODUsIDEuMzY4MTUsIDEuOTgwMTMsIDIuNTkyNTEsIDMuMjAzODQsIDMuODE1MDYiLCBcCi0gICAgICAgICAgIjAuMjcyNDgsIDAuODg5MTEyLCAxLjM4MDAxLCAxLjk5MjYyLCAyLjYwNDU3LCAzLjIxNjA5LCAzLjgyNzA4IiwgXAotICAgICAgICAgICIwLjI5MTIzMiwgMC45MDgwNDcsIDEuMzk4OTMsIDIuMDExODgsIDIuNjIyODEsIDMuMjM0NTUsIDMuODQ2MDMiLCBcCi0gICAgICAgICAgIjAuMzA3NDc3LCAwLjkyNDY3NywgMS40MTUwOSwgMi4wMjc3MywgMi42NDAwOSwgMy4yNTA5OSwgMy44NjI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjM1NDgyOCwgMS41MDY3NywgMi40Mjc3LCAzLjU3ODM1LCA0LjcyNjc3LCA1Ljg3ODE1LCA3LjAyNzgzIiwgXAotICAgICAgICAgICIwLjM1NDg0NSwgMS41MDY5NywgMi40MjczNiwgMy41NzgzOCwgNC43MjgwMSwgNS44NzgyNSwgNy4wMjc1NyIsIFwKLSAgICAgICAgICAiMC4zNTQ4MjIsIDEuNTA2NjksIDIuNDI3NzMsIDMuNTc4MzksIDQuNzI4MjQsIDUuODc4MjcsIDcuMDI3NTUiLCBcCi0gICAgICAgICAgIjAuMzU0ODQ5LCAxLjUwNjkxLCAyLjQyNzczLCAzLjU3Njg0LCA0LjcyNzY5LCA1Ljg3ODA4LCA3LjAyNzQ4IiwgXAotICAgICAgICAgICIwLjM1NDc5MSwgMS41MDcwNCwgMi40Mjc1OSwgMy41NzY5MywgNC43MjgyNCwgNS44Nzc4MywgNy4wMjYwNSIsIFwKLSAgICAgICAgICAiMC4zNTU0MDMsIDEuNTA2NzEsIDIuNDI3NjcsIDMuNTc4MTgsIDQuNzI2NjIsIDUuODc3OTQsIDcuMDI3NSIsIFwKLSAgICAgICAgICAiMC4zNTY5OSwgMS41MDcwMSwgMi40MjgyNywgMy41NzY3NCwgNC43Mjg1MSwgNS44NzgxNCwgNy4wMjU5MSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTMwNTU5LCAwLjUwNDkyLCAwLjgwMzU2MywgMS4xNzgzLCAxLjU1NDQyLCAxLjkyOTk1LCAyLjMwNzA1IiwgXAotICAgICAgICAgICIwLjE0MjM5OSwgMC41MTY4MjcsIDAuODE1NTkyLCAxLjE5MDAyLCAxLjU2NjY4LCAxLjk0MTkyLCAyLjMxODMxIiwgXAotICAgICAgICAgICIwLjE1NzExOCwgMC41MzE2NzksIDAuODMwNDUyLCAxLjIwNTA5LCAxLjU4MTIzLCAxLjk1NzM1LCAyLjMzMzA5IiwgXAotICAgICAgICAgICIwLjE3MDk2NiwgMC41NDU1MDcsIDAuODQ0NTkyLCAxLjIxOTM5LCAxLjU5NTUxLCAxLjk3MTIyLCAyLjM0Njk3IiwgXAotICAgICAgICAgICIwLjE4NDEzMywgMC41NTg3NTgsIDAuODU3NTg2LCAxLjIzMjI2LCAxLjYwODgzLCAxLjk4NDI1LCAyLjM2MDQiLCBcCi0gICAgICAgICAgIjAuMjA0ODY3LCAwLjU3OTUyMywgMC44NzgzMTUsIDEuMjUzMTcsIDEuNjI5MTUsIDIuMDA1MTMsIDIuMzgxMyIsIFwKLSAgICAgICAgICAiMC4yMjI0NDgsIDAuNTk3Mjg5LCAwLjg5NjI4MSwgMS4yNzA1MiwgMS42NDY1MywgMi4wMjI3NCwgMi4zOTkwMiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMDE1NzIsIDAuOTMyOTA3LCAxLjUyMDQxLCAyLjI1NjgsIDIuOTkxOTQsIDMuNzI4MTEsIDQuNDY0NTciLCBcCi0gICAgICAgICAgIjAuMjAxNTM0LCAwLjkzMjMzNCwgMS41MjE1MiwgMi4yNTYyMywgMi45OTIyMSwgMy43Mjk2NCwgNC40NjU2MSIsIFwKLSAgICAgICAgICAiMC4yMDE0MTYsIDAuOTMyNjk4LCAxLjUyMTMzLCAyLjI1NjM2LCAyLjk5Mjk2LCAzLjcyODUyLCA0LjQ2Mjc0IiwgXAotICAgICAgICAgICIwLjIwMTU1NSwgMC45MzIxNTIsIDEuNTIwNTgsIDIuMjU2NDMsIDIuOTkyMjIsIDMuNzI3NzYsIDQuNDYzNzciLCBcCi0gICAgICAgICAgIjAuMjAxNzM1LCAwLjkzMjg5OCwgMS41MjA3LCAyLjI1NjIyLCAyLjk5MjMyLCAzLjcyNzg5LCA0LjQ2MzUzIiwgXAotICAgICAgICAgICIwLjIwMzc4OCwgMC45MzMwNjEsIDEuNTIwNTksIDIuMjU2MjIsIDIuOTkyNzgsIDMuNzI3ODgsIDQuNDYzNDQiLCBcCi0gICAgICAgICAgIjAuMjA2NzIyLCAwLjkzMjg5MiwgMS41MjA2MiwgMi4yNTYzOSwgMi45OTI4LCAzLjcyOTM4LCA0LjQ2MzU0Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIxOTQzNiwgMC44MzU2OTcsIDEuMzI1NTksIDEuOTM4MjEsIDIuNTUwNzMsIDMuMTYwNzgsIDMuNzczMjIiLCBcCi0gICAgICAgICAgIjAuMjI5NzU4LCAwLjg0NjI0OSwgMS4zMzY0NywgMS45NDg4NywgMi41NjEwNywgMy4xNzI1NCwgMy43ODM0NiIsIFwKLSAgICAgICAgICAiMC4yNDI0OTYsIDAuODU5MDY4LCAxLjM0OTcyLCAxLjk2MjI5LCAyLjU3NDMxLCAzLjE4NTY4LCAzLjc5NjI2IiwgXAotICAgICAgICAgICIwLjI1NTExNywgMC44NzE5NjMsIDEuMzYyMTQsIDEuOTc0NTgsIDIuNTg2OTMsIDMuMTk4MjgsIDMuODA5NSIsIFwKLSAgICAgICAgICAiMC4yNjc4MTMsIDAuODg0NTU2LCAxLjM3NTQ0LCAxLjk4Nzk3LCAyLjU5OTgxLCAzLjIxMDg0LCAzLjgyMjM1IiwgXAotICAgICAgICAgICIwLjI4ODAwOSwgMC45MDUzMzksIDEuMzk1MzEsIDIuMDA4NDMsIDIuNjIwMjYsIDMuMjMxNTMsIDMuODQyOTIiLCBcCi0gICAgICAgICAgIjAuMzA2MDI5LCAwLjkyMzEzOSwgMS40MTM4NywgMi4wMjY1MywgMi42Mzg0NCwgMy4yNTAwNCwgMy44NjA3OSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zNTQ4MzgsIDEuNTA3MDksIDIuNDI3OTEsIDMuNTc4MTEsIDQuNzI3OTIsIDUuODc4MDUsIDcuMDI3NjIiLCBcCi0gICAgICAgICAgIjAuMzU0ODIzLCAxLjUwNjY5LCAyLjQyNzYzLCAzLjU3ODU1LCA0LjcyOCwgNS44NzgxNSwgNy4wMjU3OSIsIFwKLSAgICAgICAgICAiMC4zNTQ4MjcsIDEuNTA2NjQsIDIuNDI3MDMsIDMuNTc3OTYsIDQuNzI4MjQsIDUuODc4MzUsIDcuMDI3NDkiLCBcCi0gICAgICAgICAgIjAuMzU0Nzk1LCAxLjUwNjcyLCAyLjQyNzA3LCAzLjU3NzI5LCA0LjcyNzU5LCA1Ljg3NzMsIDcuMDI1NjIiLCBcCi0gICAgICAgICAgIjAuMzU0NzUsIDEuNTA3MzMsIDIuNDI3NTcsIDMuNTc3MzIsIDQuNzI2NjQsIDUuODc4MzMsIDcuMDI1OCIsIFwKLSAgICAgICAgICAiMC4zNTU4MDksIDEuNTA3MDMsIDIuNDI3NjgsIDMuNTc3MTgsIDQuNzI3MiwgNS44Nzc1NywgNy4wMjc3NiIsIFwKLSAgICAgICAgICAiMC4zNTg0MjksIDEuNTA3MDIsIDIuNDI3NTQsIDMuNTc4MDMsIDQuNzI3ODEsIDUuODc3NzYsIDcuMDI3NDYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTIiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEyNjE1OCwgMC41MDMyNjYsIDAuODA0NjI4LCAxLjE4MTgzLCAxLjU2MTgxLCAxLjk0MDQsIDIuMzE5NjIiLCBcCi0gICAgICAgICAgIjAuMTM4MTc5LCAwLjUxNTQ1LCAwLjgxNjUyNSwgMS4xOTQxNCwgMS41NzMwMywgMS45NTIyOCwgMi4zMzIyMyIsIFwKLSAgICAgICAgICAiMC4xNTI4NDUsIDAuNTMwMTc0LCAwLjgzMTQsIDEuMjA5MjUsIDEuNTg4MjcsIDEuOTY3NDgsIDIuMzQ2MzkiLCBcCi0gICAgICAgICAgIjAuMTY2NjI1LCAwLjU0NDA2MSwgMC44NDU0MDgsIDEuMjIyNzIsIDEuNjAyNjMsIDEuOTgxMjcsIDIuMzYwOCIsIFwKLSAgICAgICAgICAiMC4xNzk4MiwgMC41NTczODgsIDAuODU4NjYsIDEuMjM2MzUsIDEuNjE1ODQsIDEuOTk0NjQsIDIuMzc0MiIsIFwKLSAgICAgICAgICAiMC4yMDAyODIsIDAuNTc3OTkxLCAwLjg3OTI2NCwgMS4yNTY2NywgMS42MzY2OCwgMi4wMTU3LCAyLjM5NDUiLCBcCi0gICAgICAgICAgIjAuMjE3ODI4LCAwLjU5NTg1OSwgMC44OTcyNDcsIDEuMjc0OTQsIDEuNjUzNjgsIDIuMDMzNzUsIDIuNDEyODgiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTk3MjUyLCAwLjkzNjU0OCwgMS41MjkwOSwgMi4yNzY3NSwgMy4wMTIyLCAzLjc2NjY4LCA0LjUxMDY0IiwgXAotICAgICAgICAgICIwLjE5NzQzNCwgMC45MzQ5OTksIDEuNTI3OCwgMi4yNzIxMiwgMy4wMjExNSwgMy43NTcyNiwgNC40OTYwMiIsIFwKLSAgICAgICAgICAiMC4xOTcyOTcsIDAuOTM2ODY0LCAxLjUzMjQ1LCAyLjI3NzM5LCAzLjAxMzkxLCAzLjc2Njk0LCA0LjQ5NTY5IiwgXAotICAgICAgICAgICIwLjE5NzM3NCwgMC45MzY4NzksIDEuNTMxMDcsIDIuMjc0NTMsIDMuMDEyMzUsIDMuNzY2NDMsIDQuNDk2NTYiLCBcCi0gICAgICAgICAgIjAuMTk3Njk2LCAwLjkzNjk1NiwgMS41MzE0NiwgMi4yNzA1OSwgMy4wMTIxNywgMy43NTU1MSwgNC40OTc0NyIsIFwKLSAgICAgICAgICAiMC4xOTk4MzUsIDAuOTM3MDU3LCAxLjUzMDk2LCAyLjI3NjU2LCAzLjAxMTg4LCAzLjc1NDMyLCA0LjQ5OTIzIiwgXAotICAgICAgICAgICIwLjIwMzAxNCwgMC45MzY4MjYsIDEuNTMyMzcsIDIuMjcxMTYsIDMuMDE5ODQsIDMuNzU0NjIsIDQuNDk2MjQiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjA5OTYzLCAwLjgyNTk5NSwgMS4zMTY1NCwgMS45Mjg4OSwgMi41NDEzLCAzLjE1MjMyLCAzLjc2MzciLCBcCi0gICAgICAgICAgIjAuMjE5MjA2LCAwLjgzNTQ5MywgMS4zMjU2OCwgMS45Mzc4NywgMi41NDk3NCwgMy4xNjEzMiwgMy43NzMyOSIsIFwKLSAgICAgICAgICAiMC4yMzEwMzIsIDAuODQ3NTIsIDEuMzM3NjksIDEuOTUwNzksIDIuNTYzMDYsIDMuMTc0MzcsIDMuNzg1MTIiLCBcCi0gICAgICAgICAgIjAuMjQzMTYzLCAwLjg1OTgzNywgMS4zNTAyLCAxLjk2Mjg2LCAyLjU3NDg4LCAzLjE4NjI3LCAzLjc5NzY2IiwgXAotICAgICAgICAgICIwLjI1NTI3MSwgMC44NzIxMjEsIDEuMzYyNzYsIDEuOTc1MDUsIDIuNTg3NjUsIDMuMTk5MDUsIDMuODA5OTgiLCBcCi0gICAgICAgICAgIjAuMjc0ODY4LCAwLjg5MTg2MywgMS4zODI2OCwgMS45OTQ4OSwgMi42MDY0LCAzLjIxODE5LCAzLjgyOTY3IiwgXAotICAgICAgICAgICIwLjI5MTk1NCwgMC45MDg4NDksIDEuMzk5MTUsIDIuMDEyMjMsIDIuNjI0MjYsIDMuMjM1OTEsIDMuODQ2OTciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzU0ODE5LCAxLjUwNzM0LCAyLjQyNzkyLCAzLjU3ODM5LCA0LjcyODI3LCA1Ljg3NzU1LCA3LjAyNjIyIiwgXAotICAgICAgICAgICIwLjM1NDg3MywgMS41MDY3LCAyLjQyNzY3LCAzLjU3Nzc3LCA0LjcyODQ1LCA1Ljg3NzI4LCA3LjAyNjEiLCBcCi0gICAgICAgICAgIjAuMzU0ODQsIDEuNTA2ODgsIDIuNDI3NzMsIDMuNTc3OTgsIDQuNzI4NDksIDUuODc4MzUsIDcuMDI3ODkiLCBcCi0gICAgICAgICAgIjAuMzU0ODQxLCAxLjUwNjU4LCAyLjQyNzg0LCAzLjU3ODUsIDQuNzI4NDUsIDUuODc3MDEsIDcuMDI3MzgiLCBcCi0gICAgICAgICAgIjAuMzU0NzQyLCAxLjUwNjg3LCAyLjQyNzk5LCAzLjU3Njg2LCA0LjcyNzYzLCA1Ljg3ODI1LCA3LjAyNzQ0IiwgXAotICAgICAgICAgICIwLjM1NzI3MywgMS41MDY2MSwgMi40MjY4NiwgMy41NzY4NywgNC43MjgxNiwgNS44Nzc5NCwgNy4wMjc0OCIsIFwKLSAgICAgICAgICAiMC4zNjE1NzksIDEuNTA2NTQsIDIuNDI3NjcsIDMuNTc4MDgsIDQuNzI2NzMsIDUuODc2MzQsIDcuMDI1NjMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjAiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExMTU1NywgMC40ODQ2ODgsIDAuNzgyMDIxLCAxLjE1Njk1LCAxLjUzMzksIDEuOTA5OTUsIDIuMjg1ODkiLCBcCi0gICAgICAgICAgIjAuMTIxOTA0LCAwLjQ5NTE1MywgMC43OTIzNTgsIDEuMTY3NTQsIDEuNTQzNDgsIDEuOTIwODIsIDIuMjk2NDYiLCBcCi0gICAgICAgICAgIjAuMTM0OTA1LCAwLjUwODIxLCAwLjgwNTUzMSwgMS4xODAxNywgMS41NTcsIDEuOTMzNTgsIDIuMzA5NTkiLCBcCi0gICAgICAgICAgIjAuMTQ3OTYyLCAwLjUyMTMxOCwgMC44MTg2NjMsIDEuMTkzMzUsIDEuNTcwNCwgMS45NDY1NywgMi4zMjI5OCIsIFwKLSAgICAgICAgICAiMC4xNjExMDMsIDAuNTM0NDQ0LCAwLjgzMTYyNSwgMS4yMDY0OCwgMS41ODMyOSwgMS45NTk2MSwgMi4zMzY2NiIsIFwKLSAgICAgICAgICAiMC4xODMwMTQsIDAuNTU1NDY2LCAwLjg1MjgwMywgMS4yMjc2MywgMS42MDM5MywgMS45ODExNiwgMi4zNTY3MSIsIFwKLSAgICAgICAgICAiMC4yMDE3ODYsIDAuNTczODMzLCAwLjg3MTI2MSwgMS4yNDU4NywgMS42MjMxOSwgMS45OTg3MywgMi4zNzYyMiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMDU5MTksIDAuOTMzNjg4LCAxLjUyMzMxLCAyLjI1ODUyLCAyLjk5NDgsIDMuNzMwNzIsIDQuNDY3MTQiLCBcCi0gICAgICAgICAgIjAuMjA1NjA0LCAwLjkzMzY2MywgMS41MjI4MiwgMi4yNTg1NywgMi45OTQ3MSwgMy43MzA0OSwgNC40NjcwNiIsIFwKLSAgICAgICAgICAiMC4yMDUwMjksIDAuOTM0NDQ2LCAxLjUyMjUzLCAyLjI1ODUsIDIuOTk1MjUsIDMuNzMwNTksIDQuNDY5IiwgXAotICAgICAgICAgICIwLjIwNTk0MiwgMC45MzM1NTksIDEuNTIyNTMsIDIuMjU4NTYsIDIuOTk1NDgsIDMuNzMwNzMsIDQuNDY2OCIsIFwKLSAgICAgICAgICAiMC4yMDkwMzcsIDAuOTMzNjYzLCAxLjUyMjI5LCAyLjI1ODU2LCAyLjk5NDQzLCAzLjczMjQ1LCA0LjQ2NjY3IiwgXAotICAgICAgICAgICIwLjIxNTg3MywgMC45MzM2MywgMS41MjMzLCAyLjI1OTg2LCAyLjk5NDY2LCAzLjczMDU2LCA0LjQ2NzIxIiwgXAotICAgICAgICAgICIwLjIyNDAzOCwgMC45MzQyMzYsIDEuNTIyNzMsIDIuMjU4NTYsIDIuOTk1MzQsIDMuNzMwOTYsIDQuNDY3MjYiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTE0NzA4LCAwLjUyMjc1MiwgMC44NDg4MjEsIDEuMjU2NTMsIDEuNjYzOTcsIDIuMDcyNSwgMi40Nzk0OSIsIFwKLSAgICAgICAgICAiMC4xMjY1ODQsIDAuNTM0NTc4LCAwLjg2MDc2NSwgMS4yNjgzNiwgMS42NzYwOSwgMi4wODM5NSwgMi40OTE3NyIsIFwKLSAgICAgICAgICAiMC4xNDAxOTgsIDAuNTQ4NDY5LCAwLjg3NDY3NywgMS4yODIyNywgMS42OTA1LCAyLjA5NzkzLCAyLjUwNTEyIiwgXAotICAgICAgICAgICIwLjE1MzU1LCAwLjU2MjMxNCwgMC44ODgyMTEsIDEuMjk2MTcsIDEuNzAzODYsIDIuMTExMTcsIDIuNTE5MDQiLCBcCi0gICAgICAgICAgIjAuMTY2ODEsIDAuNTc1NjA0LCAwLjkwMjI4NywgMS4zMDk1NiwgMS43MTc0LCAyLjEyNTA1LCAyLjUzMjY0IiwgXAotICAgICAgICAgICIwLjE4Nzk4LCAwLjU5NzI0NywgMC45MjMzNDcsIDEuMzMxNCwgMS43Mzg3NSwgMi4xNDcyOCwgMi41NTQwNSIsIFwKLSAgICAgICAgICAiMC4yMDY2MjIsIDAuNjE2MTIxLCAwLjk0MjUzMiwgMS4zNTA2MSwgMS43NTc3NCwgMi4xNjUyLCAyLjU3Mjk1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIyMDYwNywgMC45OTY5NiwgMS42MTg5LCAyLjM5Njc5LCAzLjE3Njc5LCAzLjk1NjUsIDQuNzMyODYiLCBcCi0gICAgICAgICAgIjAuMjIwNjE1LCAwLjk5Njc3MiwgMS42MTg5MSwgMi4zOTY4LCAzLjE3Njc2LCAzLjk1MzUzLCA0LjczMjg1IiwgXAotICAgICAgICAgICIwLjIyMDYxMSwgMC45OTY3NjgsIDEuNjE4OTMsIDIuMzk3MDIsIDMuMTc3NDEsIDMuOTU2NTQsIDQuNzMyOTQiLCBcCi0gICAgICAgICAgIjAuMjIwOTE1LCAwLjk5NjkyLCAxLjYxOTAxLCAyLjM5NzA1LCAzLjE3NjIyLCAzLjk1NjQ3LCA0LjczMjUzIiwgXAotICAgICAgICAgICIwLjIyMjQyMywgMC45OTY3OTUsIDEuNjE5MjcsIDIuMzk3MzksIDMuMTc2NzksIDMuOTU1OTUsIDQuNzMyNTkiLCBcCi0gICAgICAgICAgIjAuMjI2ODQyLCAwLjk5Njg0NywgMS42MTg4NywgMi4zOTY5LCAzLjE3NjA3LCAzLjk1NDk1LCA0LjczMzkyIiwgXAotICAgICAgICAgICIwLjIzMjI2MSwgMC45OTY3MDgsIDEuNjE5MTMsIDIuMzk3NzYsIDMuMTc2MDcsIDMuOTU0MzIsIDQuNzMxODQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwNzAxNCwgMC40ODQ1MTgsIDAuNzg1NTAzLCAxLjE2MTQ4LCAxLjUzODE4LCAxLjkxNjQ4LCAyLjI5NjQ4IiwgXAotICAgICAgICAgICIwLjExNzQ4NSwgMC40OTUxNzQsIDAuNzk2Mjc4LCAxLjE3MjQyLCAxLjU0ODM2LCAxLjkyNzIyLCAyLjMwNTkyIiwgXAotICAgICAgICAgICIwLjEzMDYzMiwgMC41MDg3MzUsIDAuODA5NzY1LCAxLjE4NTg5LCAxLjU2MjE0LCAxLjk0MjIyLCAyLjMyMDQyIiwgXAotICAgICAgICAgICIwLjE0MzQ0LCAwLjUyMTMzMywgMC44MjI0NzMsIDEuMTk4NDQsIDEuNTc1MzIsIDEuOTUzNDUsIDIuMzMyOTEiLCBcCi0gICAgICAgICAgIjAuMTU2NTE0LCAwLjUzNDQxNCwgMC44MzU1NzMsIDEuMjExNzUsIDEuNTg4MTcsIDEuOTY2NzIsIDIuMzQ2NTIiLCBcCi0gICAgICAgICAgIjAuMTc4NDE5LCAwLjU1NTQyNSwgMC44NTY1ODYsIDEuMjMyOSwgMS42MDg4NCwgMS45ODgzOSwgMi4zNjY1MiIsIFwKLSAgICAgICAgICAiMC4xOTcxODUsIDAuNTczNzY0LCAwLjg3NDk5OSwgMS4yNTExNCwgMS42MjcwMywgMi4wMDU4MywgMi4zODU5MiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMDIwNjcsIDAuOTM5MjQxLCAxLjUyOTQ1LCAyLjI3NDgyLCAzLjAyMjEyLCAzLjc2NTk5LCA0LjQ5ODI0IiwgXAotICAgICAgICAgICIwLjIwMTcxNiwgMC45MzgwMzEsIDEuNTMxMzUsIDIuMjc0NTQsIDMuMDI5NzUsIDMuNzU4LCA0LjUwOTQ4IiwgXAotICAgICAgICAgICIwLjIwMDk2NSwgMC45MzgyNTcsIDEuNTI4NjUsIDIuMjY5NjYsIDMuMDIwOTksIDMuNzUzNywgNC41MTA3NiIsIFwKLSAgICAgICAgICAiMC4yMDIyMjQsIDAuOTM5MjU3LCAxLjUzMTM0LCAyLjI3NzUsIDMuMDExNzQsIDMuNzY2MTMsIDQuNTAxNDQiLCBcCi0gICAgICAgICAgIjAuMjA1NjI5LCAwLjkzOTMzMSwgMS41MzE0MSwgMi4yODQyMiwgMy4wMjE4MywgMy43NTczOCwgNC40OTYxNiIsIFwKLSAgICAgICAgICAiMC4yMTI5MDUsIDAuOTM5MjI1LCAxLjUyNzIsIDIuMjc0NzUsIDMuMDMxMzMsIDMuNzU0NTgsIDQuNTEwMTYiLCBcCi0gICAgICAgICAgIjAuMjIxNDQyLCAwLjkzODMwOCwgMS41Mjc3MiwgMi4yODM5OCwgMy4wMjA4NSwgMy43NjU2LCA0LjQ5NzcyIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwOTI0NSwgMC41MTcwMzQsIDAuODQzMjQyLCAxLjI1MDg3LCAxLjY1ODYsIDIuMDY2NjUsIDIuNDczNzUiLCBcCi0gICAgICAgICAgIjAuMTE5NzksIDAuNTI3ODg1LCAwLjg1NDA2MSwgMS4yNjE2NSwgMS42NjkxMSwgMi4wNzY4OSwgMi40ODQzNiIsIFwKLSAgICAgICAgICAiMC4xMzI3NDgsIDAuNTQxMDkxLCAwLjg2NzY2NywgMS4yNzQ5NiwgMS42ODMxOCwgMi4wOTAzNSwgMi40OTc4MSIsIFwKLSAgICAgICAgICAiMC4xNDU4ODIsIDAuNTU0NDYyLCAwLjg4MDgzNCwgMS4yODg5MywgMS42OTYsIDIuMTA0ODYsIDIuNTExMzciLCBcCi0gICAgICAgICAgIjAuMTU4OTgxLCAwLjU2NzY0MywgMC44OTQxMjEsIDEuMzAxODEsIDEuNzA5MjIsIDIuMTE3ODgsIDIuNTI0NjQiLCBcCi0gICAgICAgICAgIjAuMTgxMTUyLCAwLjU4ODgwNywgMC45MTUxNDksIDEuMzIyOTMsIDEuNzMwMzMsIDIuMTM4MTcsIDIuNTQ1NzgiLCBcCi0gICAgICAgICAgIjAuMjAwMTUyLCAwLjYwNzMxOSwgMC45MzM2NDgsIDEuMzQxNCwgMS43NDg4MSwgMi4xNTY2NCwgMi41NjQ2OCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMjA2LCAwLjk5Njc2MywgMS42MTg4OCwgMi4zOTc1OSwgMy4xNzU5MywgMy45NTQ1OSwgNC43MzM0NyIsIFwKLSAgICAgICAgICAiMC4yMjA2MDQsIDAuOTk2NzA2LCAxLjYxODk5LCAyLjM5NzExLCAzLjE3NTM3LCAzLjk1NjA3LCA0LjczMzM5IiwgXAotICAgICAgICAgICIwLjIyMDU2MiwgMC45OTY3MzUsIDEuNjE5MTYsIDIuMzk3NDQsIDMuMTc1NzcsIDMuOTU2NjUsIDQuNzMyOTMiLCBcCi0gICAgICAgICAgIjAuMjIxOTA2LCAwLjk5Njc4LCAxLjYxOTA2LCAyLjM5NzM0LCAzLjE3Njc1LCAzLjk1NDU4LCA0LjczMjg2IiwgXAotICAgICAgICAgICIwLjIyNTIyNCwgMC45OTY3MTQsIDEuNjE5MDEsIDIuMzk2NzgsIDMuMTc2NjEsIDMuOTU0NTMsIDQuNzMzNjUiLCBcCi0gICAgICAgICAgIjAuMjMyNjU5LCAwLjk5NjY5MiwgMS42MTg5NCwgMi4zOTcxNSwgMy4xNzU1MiwgMy45NTY2MSwgNC43MzIyMiIsIFwKLSAgICAgICAgICAiMC4yNDExNjUsIDAuOTk2NjQ4LCAxLjYxODg3LCAyLjM5NjkzLCAzLjE3NjAxLCAzLjk1NDUzLCA0LjczMjk4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjQ4NCwgMC4wMDY0ODMsIDAuMDA2NDgsIDAuMDA2NDc3LCAwLjAwNjQ3NiwgMC4wMDY0NzIsIDAuMDA2NDY5IiwgXAotICAgICAgICAgICIwLjAwNjQ2NCwgMC4wMDY0NjQsIDAuMDA2NDYzLCAwLjAwNjQ2MiwgMC4wMDY0NTcsIDAuMDA2NDU2LCAwLjAwNjQ1NCIsIFwKLSAgICAgICAgICAiMC4wMDY0NTcsIDAuMDA2NDU4LCAwLjAwNjQ1OSwgMC4wMDY0NTUsIDAuMDA2NDU1LCAwLjAwNjQ1OCwgMC4wMDY0NSIsIFwKLSAgICAgICAgICAiMC4wMDY0NTEsIDAuMDA2NDU3LCAwLjAwNjQ1NiwgMC4wMDY0NTUsIDAuMDA2NDUzLCAwLjAwNjQ1MSwgMC4wMDY0NDkiLCBcCi0gICAgICAgICAgIjAuMDA2NDQ0LCAwLjAwNjQ1MywgMC4wMDY0NTQsIDAuMDA2NDUzLCAwLjAwNjQ1MSwgMC4wMDY0NDcsIDAuMDA2NDQ4IiwgXAotICAgICAgICAgICIwLjAwNjQ0MiwgMC4wMDY0NTIsIDAuMDA2NDUyLCAwLjAwNjQ1MSwgMC4wMDY0NDksIDAuMDA2NDQ4LCAwLjAwNjQ0NyIsIFwKLSAgICAgICAgICAiMC4wMDY0MzcsIDAuMDA2NDUxLCAwLjAwNjQ1MiwgMC4wMDY0NTIsIDAuMDA2NDUsIDAuMDA2NDQ4LCAwLjAwNjQ0NiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjQ3MSwgMC4wMDI0NjksIDAuMDAyNDY3LCAwLjAwMjQ2NCwgMC4wMDI0NjMsIDAuMDAyNDYsIDAuMDAyNDU2IiwgXAotICAgICAgICAgICIwLjAwMjQ0NSwgMC4wMDI0NDksIDAuMDAyNDQ5LCAwLjAwMjQ0OCwgMC4wMDI0NDQsIDAuMDAyNDQyLCAwLjAwMjQzOSIsIFwKLSAgICAgICAgICAiMC4wMDI0MjcsIDAuMDAyNDQxLCAwLjAwMjQ0LCAwLjAwMjQzOSwgMC4wMDI0MzcsIDAuMDAyNDM1LCAwLjAwMjQzNCIsIFwKLSAgICAgICAgICAiMC4wMDI0MTQsIDAuMDAyNDM1LCAwLjAwMjQzNywgMC4wMDI0MzcsIDAuMDAyNDM0LCAwLjAwMjQzMywgMC4wMDI0MyIsIFwKLSAgICAgICAgICAiMC4wMDI0MDIsIDAuMDAyNDMxLCAwLjAwMjQzNCwgMC4wMDI0MzMsIDAuMDAyNDM0LCAwLjAwMjQzMywgMC4wMDI0MyIsIFwKLSAgICAgICAgICAiMC4wMDIzODksIDAuMDAyNDI0LCAwLjAwMjQyOSwgMC4wMDI0MzEsIDAuMDAyNDMsIDAuMDAyNDI4LCAwLjAwMjQyNyIsIFwKLSAgICAgICAgICAiMC4wMDIzNzksIDAuMDAyNDE5LCAwLjAwMjQyNSwgMC4wMDI0MjcsIDAuMDAyNDI3LCAwLjAwMjQyNiwgMC4wMDI0MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1ODI5LCAwLjAwNTgyOCwgMC4wMDU4MjcsIDAuMDA1ODI4LCAwLjAwNTgyMSwgMC4wMDU4MjgsIDAuMDA1ODE2IiwgXAotICAgICAgICAgICIwLjAwNTgyNCwgMC4wMDU4MjksIDAuMDA1ODI1LCAwLjAwNTgyOCwgMC4wMDU4MiwgMC4wMDU4MiwgMC4wMDU4MjIiLCBcCi0gICAgICAgICAgIjAuMDA1ODE2LCAwLjAwNTgyNiwgMC4wMDU4MjcsIDAuMDA1ODI0LCAwLjAwNTgyNSwgMC4wMDU4MjksIDAuMDA1ODI4IiwgXAotICAgICAgICAgICIwLjAwNTgwOSwgMC4wMDU4MjQsIDAuMDA1ODI1LCAwLjAwNTgyNCwgMC4wMDU4MjUsIDAuMDA1ODI1LCAwLjAwNTgyNCIsIFwKLSAgICAgICAgICAiMC4wMDU4LCAwLjAwNTgyMiwgMC4wMDU4MjMsIDAuMDA1ODI1LCAwLjAwNTgyMiwgMC4wMDU4MjIsIDAuMDA1ODIiLCBcCi0gICAgICAgICAgIjAuMDA1NzkyLCAwLjAwNTgxOCwgMC4wMDU4MjEsIDAuMDA1ODIzLCAwLjAwNTgyMiwgMC4wMDU4MiwgMC4wMDU4MiIsIFwKLSAgICAgICAgICAiMC4wMDU3ODYsIDAuMDA1ODE2LCAwLjAwNTgyLCAwLjAwNTgyMSwgMC4wMDU4MjEsIDAuMDA1ODIsIDAuMDA1ODE5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyNDcxLCAwLjAwMjQ2OSwgMC4wMDI0NjcsIDAuMDAyNDYzLCAwLjAwMjQ2MiwgMC4wMDI0NTksIDAuMDAyNDU2IiwgXAotICAgICAgICAgICIwLjAwMjQ0NCwgMC4wMDI0NSwgMC4wMDI0NDgsIDAuMDAyNDQzLCAwLjAwMjQ0NCwgMC4wMDI0NDEsIDAuMDAyNDM5IiwgXAotICAgICAgICAgICIwLjAwMjQyOCwgMC4wMDI0NDEsIDAuMDAyNDQyLCAwLjAwMjQ0MiwgMC4wMDI0MzgsIDAuMDAyNDMzLCAwLjAwMjQzMyIsIFwKLSAgICAgICAgICAiMC4wMDI0MTQsIDAuMDAyNDM2LCAwLjAwMjQzNywgMC4wMDI0MzUsIDAuMDAyNDM0LCAwLjAwMjQzMiwgMC4wMDI0MyIsIFwKLSAgICAgICAgICAiMC4wMDI0MDMsIDAuMDAyNDMxLCAwLjAwMjQzMywgMC4wMDI0MzQsIDAuMDAyNDMzLCAwLjAwMjQzLCAwLjAwMjQyOSIsIFwKLSAgICAgICAgICAiMC4wMDIzODksIDAuMDAyNDI1LCAwLjAwMjQyOSwgMC4wMDI0MywgMC4wMDI0MzEsIDAuMDAyNDI4LCAwLjAwMjQyNyIsIFwKLSAgICAgICAgICAiMC4wMDIzNzgsIDAuMDAyNDE4LCAwLjAwMjQyNCwgMC4wMDI0MjcsIDAuMDAyNDI3LCAwLjAwMjQyNiwgMC4wMDI0MjMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1MTcxLCAwLjAwNTE3MywgMC4wMDUxNzMsIDAuMDA1MTczLCAwLjAwNTE3MiwgMC4wMDUxNywgMC4wMDUxNjkiLCBcCi0gICAgICAgICAgIjAuMDA1MTc4LCAwLjAwNTE5LCAwLjAwNTE5LCAwLjAwNTE5MSwgMC4wMDUxOTMsIDAuMDA1MTg2LCAwLjAwNTE5NSIsIFwKLSAgICAgICAgICAiMC4wMDUxNjcsIDAuMDA1MTkxLCAwLjAwNTE5NSwgMC4wMDUxOTIsIDAuMDA1MTk1LCAwLjAwNTE5OCwgMC4wMDUxOTQiLCBcCi0gICAgICAgICAgIjAuMDA1MTYsIDAuMDA1MTksIDAuMDA1MTkzLCAwLjAwNTE5NCwgMC4wMDUxOTUsIDAuMDA1MTk0LCAwLjAwNTE5MyIsIFwKLSAgICAgICAgICAiMC4wMDUxNTEsIDAuMDA1MTg3LCAwLjAwNTE5MiwgMC4wMDUxOTMsIDAuMDA1MTk0LCAwLjAwNTE5MywgMC4wMDUxOTMiLCBcCi0gICAgICAgICAgIjAuMDA1MTM3LCAwLjAwNTE4MiwgMC4wMDUxODgsIDAuMDA1MTkyLCAwLjAwNTE5MywgMC4wMDUxOTMsIDAuMDA1MTk0IiwgXAotICAgICAgICAgICIwLjAwNTEyOCwgMC4wMDUxNzgsIDAuMDA1MTg1LCAwLjAwNTE4OSwgMC4wMDUxOSwgMC4wMDUxOTEsIDAuMDA1MTkyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyNDczLCAwLjAwMjQ3MSwgMC4wMDI0NjgsIDAuMDAyNDY5LCAwLjAwMjQ2NCwgMC4wMDI0NjEsIDAuMDAyNDU4IiwgXAotICAgICAgICAgICIwLjAwMjQ0MywgMC4wMDI0NSwgMC4wMDI0NSwgMC4wMDI0NDgsIDAuMDAyNDQ1LCAwLjAwMjQ0MiwgMC4wMDI0NDQiLCBcCi0gICAgICAgICAgIjAuMDAyNDIxLCAwLjAwMjQ0LCAwLjAwMjQ0MSwgMC4wMDI0NCwgMC4wMDI0NCwgMC4wMDI0MzYsIDAuMDAyNDMyIiwgXAotICAgICAgICAgICIwLjAwMjQwNiwgMC4wMDI0MzMsIDAuMDAyNDM1LCAwLjAwMjQzNSwgMC4wMDI0MzMsIDAuMDAyNDMzLCAwLjAwMjQzIiwgXAotICAgICAgICAgICIwLjAwMjM5MywgMC4wMDI0MjgsIDAuMDAyNDMxLCAwLjAwMjQzMywgMC4wMDI0MzEsIDAuMDAyNDI5LCAwLjAwMjQyOCIsIFwKLSAgICAgICAgICAiMC4wMDIzNzksIDAuMDAyNDIsIDAuMDAyNDI3LCAwLjAwMjQyOSwgMC4wMDI0MjksIDAuMDAyNDI3LCAwLjAwMjQyNiIsIFwKLSAgICAgICAgICAiMC4wMDIzNjgsIDAuMDAyNDE1LCAwLjAwMjQyMywgMC4wMDI0MjUsIDAuMDAyNDI2LCAwLjAwMjQyNCwgMC4wMDI0MjMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0NzA2LCAwLjAwNDcwNiwgMC4wMDQ3MDUsIDAuMDA0NzAzLCAwLjAwNDcwMSwgMC4wMDQ2OTksIDAuMDA0Njk3IiwgXAotICAgICAgICAgICIwLjAwNDY4NSwgMC4wMDQ2OTMsIDAuMDA0NjkxLCAwLjAwNDY4OSwgMC4wMDQ2ODYsIDAuMDA0Njg0LCAwLjAwNDY4NCIsIFwKLSAgICAgICAgICAiMC4wMDQ2NzMsIDAuMDA0Njg3LCAwLjAwNDY4NywgMC4wMDQ2ODcsIDAuMDA0Njg1LCAwLjAwNDY4NiwgMC4wMDQ2ODciLCBcCi0gICAgICAgICAgIjAuMDA0NjYyLCAwLjAwNDY4MywgMC4wMDQ2ODQsIDAuMDA0NjgzLCAwLjAwNDY4MiwgMC4wMDQ2ODEsIDAuMDA0NjgxIiwgXAotICAgICAgICAgICIwLjAwNDY1NCwgMC4wMDQ2OCwgMC4wMDQ2ODIsIDAuMDA0NjgyLCAwLjAwNDY4MSwgMC4wMDQ2ODEsIDAuMDA0NjgiLCBcCi0gICAgICAgICAgIjAuMDA0NjQ2LCAwLjAwNDY3NSwgMC4wMDQ2NzksIDAuMDA0NjgxLCAwLjAwNDY4LCAwLjAwNDY3OCwgMC4wMDQ2NzciLCBcCi0gICAgICAgICAgIjAuMDA0NjQxLCAwLjAwNDY3MiwgMC4wMDQ2NzcsIDAuMDA0Njc5LCAwLjAwNDY3OCwgMC4wMDQ2NzgsIDAuMDA0Njc2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwNjY1LCAwLjAwMDY3MSwgMC4wMDA2NzEsIDAuMDAwNjcxLCAwLjAwMDY3MiwgMC4wMDA2NzIsIDAuMDAwNjcyIiwgXAotICAgICAgICAgICIwLjAwMDY2NSwgMC4wMDA2OTIsIDAuMDAwNjk1LCAwLjAwMDY5NywgMC4wMDA2OTcsIDAuMDAwNjk4LCAwLjAwMDY5OSIsIFwKLSAgICAgICAgICAiMC4wMDA2NDgsIDAuMDAwNjk1LCAwLjAwMDcwMSwgMC4wMDA3MDMsIDAuMDAwNzA1LCAwLjAwMDcwNiwgMC4wMDA3MDciLCBcCi0gICAgICAgICAgIjAuMDAwNjI5LCAwLjAwMDY5MSwgMC4wMDA3LCAwLjAwMDcwNCwgMC4wMDA3MDYsIDAuMDAwNzA4LCAwLjAwMDcwOSIsIFwKLSAgICAgICAgICAiMC4wMDA2MTIsIDAuMDAwNjg3LCAwLjAwMDY5NywgMC4wMDA3MDMsIDAuMDAwNzA2LCAwLjAwMDcwOCwgMC4wMDA3MDkiLCBcCi0gICAgICAgICAgIjAuMDAwNTksIDAuMDAwNjc4LCAwLjAwMDY5MiwgMC4wMDA3LCAwLjAwMDcwNCwgMC4wMDA3MDcsIDAuMDAwNzA4IiwgXAotICAgICAgICAgICIwLjAwMDU3NSwgMC4wMDA2NzEsIDAuMDAwNjg4LCAwLjAwMDY5NywgMC4wMDA3MDIsIDAuMDAwNzA1LCAwLjAwMDcwNyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIxIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDM5NywgMC4wMDM5NzIsIDAuMDAzOTcyLCAwLjAwMzk3MSwgMC4wMDM5NywgMC4wMDM5NjgsIDAuMDAzOTY3IiwgXAotICAgICAgICAgICIwLjAwMzk2MiwgMC4wMDM5OCwgMC4wMDM5ODEsIDAuMDAzOTgsIDAuMDAzOTgzLCAwLjAwMzk3OSwgMC4wMDM5ODIiLCBcCi0gICAgICAgICAgIjAuMDAzOTQxLCAwLjAwMzk3NiwgMC4wMDM5NzksIDAuMDAzOTc5LCAwLjAwMzk3OSwgMC4wMDM5OCwgMC4wMDM5NzYiLCBcCi0gICAgICAgICAgIjAuMDAzOTMxLCAwLjAwMzk3MSwgMC4wMDM5NzYsIDAuMDAzOTgsIDAuMDAzOTgsIDAuMDAzOTc2LCAwLjAwMzk3OSIsIFwKLSAgICAgICAgICAiMC4wMDM5MTgsIDAuMDAzOTY3LCAwLjAwMzk3MywgMC4wMDM5NzUsIDAuMDAzOTc4LCAwLjAwMzk3NywgMC4wMDM5NzYiLCBcCi0gICAgICAgICAgIjAuMDAzOTA1LCAwLjAwMzk2LCAwLjAwMzk2OSwgMC4wMDM5NzIsIDAuMDAzOTc0LCAwLjAwMzk3NCwgMC4wMDM5NzMiLCBcCi0gICAgICAgICAgIjAuMDAzODk1LCAwLjAwMzk1NSwgMC4wMDM5NjUsIDAuMDAzOTcsIDAuMDAzOTcyLCAwLjAwMzk3MywgMC4wMDM5NzIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDA2NjQsIDAuMDAwNjcxLCAwLjAwMDY3MywgMC4wMDA2NzIsIDAuMDAwNjczLCAwLjAwMDY3MywgMC4wMDA2NzMiLCBcCi0gICAgICAgICAgIjAuMDAwNjYxLCAwLjAwMDY5MywgMC4wMDA2OTYsIDAuMDAwNjk4LCAwLjAwMDY5OSwgMC4wMDA2OTksIDAuMDAwNyIsIFwKLSAgICAgICAgICAiMC4wMDA2NDIsIDAuMDAwNjk1LCAwLjAwMDcwMSwgMC4wMDA3MDUsIDAuMDAwNzA3LCAwLjAwMDcwOCwgMC4wMDA3MDgiLCBcCi0gICAgICAgICAgIjAuMDAwNjE5LCAwLjAwMDY5LCAwLjAwMDcsIDAuMDAwNzA1LCAwLjAwMDcwNywgMC4wMDA3MDksIDAuMDAwNzEiLCBcCi0gICAgICAgICAgIjAuMDAwNjAzLCAwLjAwMDY4NiwgMC4wMDA2OTcsIDAuMDAwNzA0LCAwLjAwMDcwNywgMC4wMDA3MDksIDAuMDAwNzExIiwgXAotICAgICAgICAgICIwLjAwMDU4NCwgMC4wMDA2NzcsIDAuMDAwNjkyLCAwLjAwMDcsIDAuMDAwNzA1LCAwLjAwMDcwOCwgMC4wMDA3MSIsIFwKLSAgICAgICAgICAiMC4wMDA1NzEsIDAuMDAwNjY5LCAwLjAwMDY4NywgMC4wMDA2OTcsIDAuMDAwNzAzLCAwLjAwMDcwNiwgMC4wMDA3MDgiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBBT0kzMlg0ICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKEFPSTMyWDQpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC40NDY3OTI7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDMzODYyODsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDMzNzQyNTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDMzODYyODsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDEyMjUsIDAuMDAxMjI0LCAwLjAwMTIyMywgMC4wMDEyMjMsIDAuMDAxMjIzLCAwLjAwMTIyMiwgMC4wMDEyMjMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDEyMjYsIDAuMDAxMjI3LCAwLjAwMTIyNywgMC4wMDEyMjgsIDAuMDAxMjI3LCAwLjAwMTIyNywgMC4wMDEyMjgiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEExKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDMzNjkyOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMzM1MjQxOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMzM2OTI7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxMjI1LCAwLjAwMTIyNCwgMC4wMDEyMjMsIDAuMDAxMjIzLCAwLjAwMTIyMywgMC4wMDEyMjMsIDAuMDAxMjIzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxMjMsIDAuMDAxMjMsIDAuMDAxMjMsIDAuMDAxMjMxLCAwLjAwMTIzMSwgMC4wMDEyMzIsIDAuMDAxMjMyIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihBMikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAzMDkyMTg7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAzMDY0NTQ7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAzMDkyMTg7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNjIxLCAwLjAwMDYxOSwgMC4wMDA2MiwgMC4wMDA2MTksIDAuMDAwNjE5LCAwLjAwMDYxOSwgMC4wMDA2MTkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDEzOSwgMC4wMDEzOTEsIDAuMDAxMzkxLCAwLjAwMTM5MiwgMC4wMDEzOTIsIDAuMDAxMzkyLCAwLjAwMTM5MiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQjApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMzExMzc0OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMzExMzc0OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMzEwNDM7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxMjI1LCAwLjAwMTIyNSwgMC4wMDEyMjQsIDAuMDAxMjI0LCAwLjAwMTIyNCwgMC4wMDEyMjQsIDAuMDAxMjIzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxMjYzLCAwLjAwMTIzNSwgMC4wMDEyMzIsIDAuMDAxMjMxLCAwLjAwMTIzLCAwLjAwMTIzLCAwLjAwMTIyOSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQjEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMzA0NTIxOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMzA0MjY4OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMzA0NTIxOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDU3MiwgMC4wMDA1NzIsIDAuMDAwNTcyLCAwLjAwMDU3MiwgMC4wMDA1NzIsIDAuMDAwNTcsIDAuMDAwNTcyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxMzksIDAuMDAxMzksIDAuMDAxMzksIDAuMDAxMzksIDAuMDAxMzksIDAuMDAxMzkyLCAwLjAwMTM5MiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjE4MTU3MTsKLSAgICBmdW5jdGlvbiA6ICIoISgoQjAgQjEpKygoQTAgQTEpIEEyKSkpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTU4NzMsIDAuMzYwMDYsIDAuNjIyNDMxLCAwLjgwOTM5MSwgMS4xMDkxLCAxLjM3MTksIDEuNzQ4NjgiLCBcCi0gICAgICAgICAgIjAuMTA3NTc1LCAwLjM3MTc3MSwgMC42MzQxMjksIDAuODIxMjQ4LCAxLjEyMDUsIDEuMzgzNjYsIDEuNzU5NzIiLCBcCi0gICAgICAgICAgIjAuMTIyMTg2LCAwLjM4NjQzLCAwLjY0ODc0MiwgMC44MzU4MzYsIDEuMTM1MjIsIDEuMzk4MjIsIDEuNzc0MjciLCBcCi0gICAgICAgICAgIjAuMTM2MDg1LCAwLjQwMDM4MywgMC42NjI2ODYsIDAuODQ5OTI5LCAxLjE0OTUsIDEuNDEyMTksIDEuNzg4MzMiLCBcCi0gICAgICAgICAgIjAuMTQ5MjMyLCAwLjQxMzU0MywgMC42NzU5MzUsIDAuODYyOTc0LCAxLjE2MjM3LCAxLjQyNTM5LCAxLjgwMTYyIiwgXAotICAgICAgICAgICIwLjE2OTcyNSwgMC40MzQwNzksIDAuNjk2NDc4LCAwLjg4MzY5MywgMS4xODI5LCAxLjQ0NjE4LCAxLjgyMjczIiwgXAotICAgICAgICAgICIwLjE4NzU5NiwgMC40NTIwNTIsIDAuNzE0NDI4LCAwLjkwMTcyMiwgMS4yMDEwNSwgMS40NjM4NSwgMS44NDAzOSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEzMjEzMiwgMC42NDUyMjYsIDEuMTU4NDMsIDEuNTI1OTMsIDIuMTE1MTEsIDIuNjMwMDMsIDMuMzY2MzciLCBcCi0gICAgICAgICAgIjAuMTMyMTY0LCAwLjY0NTIwMywgMS4xNTk1MiwgMS41MjYzOSwgMi4xMTQ2OSwgMi42MzAzNywgMy4zNjgwMyIsIFwKLSAgICAgICAgICAiMC4xMzIyNjMsIDAuNjQ1Nzg2LCAxLjE1OTUsIDEuNTI3NTgsIDIuMTE1MjIsIDIuNjMxOTIsIDMuMzY4MDIiLCBcCi0gICAgICAgICAgIjAuMTMyMzk0LCAwLjY0NTMzMSwgMS4xNTg3NiwgMS41Mjc1NywgMi4xMTUyMiwgMi42MzE5NSwgMy4zNjgxMyIsIFwKLSAgICAgICAgICAiMC4xMzMxOTMsIDAuNjQ1Mzg1LCAxLjE1OTMsIDEuNTI3NTEsIDIuMTE1MjgsIDIuNjMwMDQsIDMuMzY2NTkiLCBcCi0gICAgICAgICAgIjAuMTM2MTA0LCAwLjY0NTcyNSwgMS4xNTgzMywgMS41Mjc0OCwgMi4xMTY2MiwgMi42MzIwMywgMy4zNjYzMyIsIFwKLSAgICAgICAgICAiMC4xMzk3MTEsIDAuNjQ1MjkzLCAxLjE1ODY5LCAxLjUyNjE5LCAyLjExNTMsIDIuNjMxODksIDMuMzY4MzUiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNTk5ODEsIDAuNTk1MTk0LCAxLjAyNTg4LCAxLjMzMzU4LCAxLjgyNTg5LCAyLjI1NTMxLCAyLjg2ODg2IiwgXAotICAgICAgICAgICIwLjE3MTIzMiwgMC42MDYzNjIsIDEuMDM3MjcsIDEuMzQ0OTksIDEuODM3MzgsIDIuMjY2ODUsIDIuODgwNzIiLCBcCi0gICAgICAgICAgIjAuMTgzOTk2LCAwLjYxOTQzNSwgMS4wNTA0NSwgMS4zNTc3MywgMS44NDk3OCwgMi4yODA0MSwgMi44OTQwMyIsIFwKLSAgICAgICAgICAiMC4xOTU5NDEsIDAuNjMxNzM5LCAxLjA2MjksIDEuMzcwODEsIDEuODYxOTQsIDIuMjkzLCAyLjkwNjMzIiwgXAotICAgICAgICAgICIwLjIwNzgyNSwgMC42NDM2MjIsIDEuMDc1MDQsIDEuMzgyNTUsIDEuODc0NjMsIDIuMzA0NTIsIDIuOTE3OTkiLCBcCi0gICAgICAgICAgIjAuMjI2NTg4LCAwLjY2MjUzMiwgMS4wOTM2OCwgMS40MDE1NSwgMS44OTM0MiwgMi4zMjMxNywgMi45MzY5OSIsIFwKLSAgICAgICAgICAiMC4yNDI3OTYsIDAuNjc4OTI1LCAxLjExMDA1LCAxLjQxNzU5LCAxLjkwOTc2LCAyLjMzOTQxLCAyLjk1MzgzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjM1MzUyLCAxLjA0NTIyLCAxLjg1MzksIDIuNDMxNTQsIDMuMzU0NTEsIDQuMTYzMDUsIDUuMzE1MjUiLCBcCi0gICAgICAgICAgIjAuMjM1MzU2LCAxLjA0NTAxLCAxLjg1Mzk2LCAyLjQzMTU1LCAzLjM1NDcsIDQuMTYyNywgNS4zMTY3OCIsIFwKLSAgICAgICAgICAiMC4yMzUzNTgsIDEuMDQ0OTUsIDEuODUzNzEsIDIuNDMxMzgsIDMuMzU0MTgsIDQuMTYzMTcsIDUuMzE3NDkiLCBcCi0gICAgICAgICAgIjAuMjM1MjgsIDEuMDQ0OTUsIDEuODUzNzEsIDIuNDMwNzUsIDMuMzU0MDUsIDQuMTYzMTcsIDUuMzE3MiIsIFwKLSAgICAgICAgICAiMC4yMzU1MDUsIDEuMDQ1MzYsIDEuODUzNTksIDIuNDMxNjcsIDMuMzU1MjUsIDQuMTYxODEsIDUuMzE2ODQiLCBcCi0gICAgICAgICAgIjAuMjM3MjQzLCAxLjA0NTEyLCAxLjg1MzQ4LCAyLjQzMTE5LCAzLjM1Mzc5LCA0LjE2Mjc3LCA1LjMxNjY1IiwgXAotICAgICAgICAgICIwLjIzOTg0OSwgMS4wNDUzMywgMS44NTM3OCwgMi40MzEwNSwgMy4zNTQ1OCwgNC4xNjI3OCwgNS4zMTcyOSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTEyODUsIDAuMzU0MzUzLCAwLjYxNjIxLCAwLjgwMzE4MSwgMS4xMDI2OSwgMS4zNjQ1NiwgMS43Mzk2MyIsIFwKLSAgICAgICAgICAiMC4xMDMxODIsIDAuMzY2MjY4LCAwLjYyODE4MywgMC44MTUzNDcsIDEuMTE0MjgsIDEuMzc2NjIsIDEuNzUxNDYiLCBcCi0gICAgICAgICAgIjAuMTE3ODI1LCAwLjM4MTAxNSwgMC42NDMwNTMsIDAuODMwMDQyLCAxLjEyOTUxLCAxLjM5MTE3LCAxLjc2Njg4IiwgXAotICAgICAgICAgICIwLjEzMTU0NSwgMC4zOTQ5MjgsIDAuNjU2ODc5LCAwLjg0NDA2NywgMS4xNDMzNiwgMS40MDQ2NiwgMS43ODExOSIsIFwKLSAgICAgICAgICAiMC4xNDQ3MzQsIDAuNDA4MTA5LCAwLjY3MDA0NiwgMC44NTY5NjEsIDEuMTU2MzMsIDEuNDE4MzEsIDEuNzk0MDEiLCBcCi0gICAgICAgICAgIjAuMTY1MzcyLCAwLjQyODg2OSwgMC42OTA3NiwgMC44Nzc3MzMsIDEuMTc3NSwgMS40Mzg3NiwgMS44MTQ4OSIsIFwKLSAgICAgICAgICAiMC4xODI4ODQsIDAuNDQ2NDgyLCAwLjcwODQyMiwgMC44OTU2NiwgMS4xOTQ3NCwgMS40NTY5NSwgMS44MzE5OCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEyNjU1OCwgMC42Mzg5OTgsIDEuMTUxODQsIDEuNTE4NzEsIDIuMTA2MzUsIDIuNjIwMzMsIDMuMzU1NjEiLCBcCi0gICAgICAgICAgIjAuMTI2NTk2LCAwLjYzODk5MSwgMS4xNTEwMiwgMS41MTgxNywgMi4xMDU4OCwgMi42MjA0NSwgMy4zNTUzNCIsIFwKLSAgICAgICAgICAiMC4xMjY1NzQsIDAuNjM5NjQ3LCAxLjE1MTg4LCAxLjUxODA4LCAyLjEwNTkyLCAyLjYyMDUyLCAzLjM1Njc4IiwgXAotICAgICAgICAgICIwLjEyNjg2NiwgMC42MzkyMDgsIDEuMTUxMjUsIDEuNTE3OTMsIDIuMTA1ODQsIDIuNjIwNTMsIDMuMzU1ODciLCBcCi0gICAgICAgICAgIjAuMTI3OCwgMC42MzkyMjEsIDEuMTUxMjYsIDEuNTE3NzMsIDIuMTA3MTksIDIuNjIwMzMsIDMuMzU1NTEiLCBcCi0gICAgICAgICAgIjAuMTMwODI3LCAwLjYzOTIxNSwgMS4xNTE4OCwgMS41MTg3MywgMi4xMDU5OSwgMi42MjE5MSwgMy4zNTUzOSIsIFwKLSAgICAgICAgICAiMC4xMzQ4NDQsIDAuNjM5MjY3LCAxLjE1MTA3LCAxLjUxODAyLCAyLjEwNjExLCAyLjYyMDQ1LCAzLjM1NzI3Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTU1MjUyLCAwLjU5MDI0OCwgMS4wMjExMywgMS4zMjgyMywgMS44MTk2LCAyLjI0OTc0LCAyLjg2MzYzIiwgXAotICAgICAgICAgICIwLjE2NTQ5OSwgMC42MDA3NjksIDEuMDMxODYsIDEuMzM5NDcsIDEuODMwOTcsIDIuMjYxMDUsIDIuODc1MzIiLCBcCi0gICAgICAgICAgIjAuMTc4MTg2LCAwLjYxMzU3OSwgMS4wNDQ1NCwgMS4zNTIyNywgMS44NDQ2NiwgMi4yNzQwMywgMi44ODc1NiIsIFwKLSAgICAgICAgICAiMC4xOTA3MjQsIDAuNjI2MzQ2LCAxLjA1NzY2LCAxLjM2NTQsIDEuODU2OCwgMi4yODcwMSwgMi45MDA4MiIsIFwKLSAgICAgICAgICAiMC4yMDMyNjksIDAuNjM5MTY4LCAxLjA3MDE2LCAxLjM3NzYsIDEuODY5OTksIDIuMzAwNTcsIDIuOTEzNzgiLCBcCi0gICAgICAgICAgIjAuMjIzODAzLCAwLjY1OTY2NiwgMS4wOTA5MiwgMS4zOTg3MSwgMS44OTAxNSwgMi4zMjA5MSwgMi45MzQwNSIsIFwKLSAgICAgICAgICAiMC4yNDEzNzUsIDAuNjc3NDMzLCAxLjEwODYzLCAxLjQxNjM2LCAxLjkwNzkzLCAyLjMzOTA1LCAyLjk1MjQ0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjM1MzU1LCAxLjA0NTE2LCAxLjg1MzQ3LCAyLjQzMTU0LCAzLjM1Mzg5LCA0LjE2MjgzLCA1LjMxNjY1IiwgXAotICAgICAgICAgICIwLjIzNTM0NCwgMS4wNDQ5NywgMS44NTM2MSwgMi40MzEzOSwgMy4zNTQ3NywgNC4xNjI5NCwgNS4zMTY4NiIsIFwKLSAgICAgICAgICAiMC4yMzUzMTIsIDEuMDQ1MTksIDEuODUzNSwgMi40MzE1NiwgMy4zNTUwMiwgNC4xNjMzMSwgNS4zMTY1MSIsIFwKLSAgICAgICAgICAiMC4yMzUyMjQsIDEuMDQ1LCAxLjg1NDA5LCAyLjQzMTI5LCAzLjM1NDUsIDQuMTYyOTMsIDUuMzE2ODYiLCBcCi0gICAgICAgICAgIjAuMjM1NzUyLCAxLjA0NTMzLCAxLjg1NDE0LCAyLjQzMTQ0LCAzLjM1NDM4LCA0LjE2MzE2LCA1LjMxNTQ2IiwgXAotICAgICAgICAgICIwLjIzODU0LCAxLjA0NTMyLCAxLjg1MzY2LCAyLjQzMTMyLCAzLjM1NDI2LCA0LjE2Mjg5LCA1LjMxNjIzIiwgXAotICAgICAgICAgICIwLjI0Mjc3OCwgMS4wNDUxNywgMS44NTM1MSwgMi40MzEyMSwgMy4zNTQ3MSwgNC4xNjI4OCwgNS4zMTcxMyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODY3MjgsIDAuMzUxNDE0LCAwLjYxNTQ3LCAwLjgwMzgyNywgMS4xMDU5MiwgMS4zNzAwOCwgMS43NDgyOSIsIFwKLSAgICAgICAgICAiMC4wOTg2NzUsIDAuMzYzNTM1LCAwLjYyNzUxNiwgMC44MTYwMTksIDEuMTE3OTQsIDEuMzgxODYsIDEuNzYwMTciLCBcCi0gICAgICAgICAgIjAuMTEzMiwgMC4zNzgyNSwgMC42NDIzMTIsIDAuODMwNzI2LCAxLjEzMjM5LCAxLjM5NzA5LCAxLjc3NTIxIiwgXAotICAgICAgICAgICIwLjEyNzA1NywgMC4zOTIyMDEsIDAuNjU2MTg4LCAwLjg0NDg2MywgMS4xNDY2MiwgMS40MTA2NCwgMS43ODk0NyIsIFwKLSAgICAgICAgICAiMC4xNDAwODcsIDAuNDA1MzY2LCAwLjY2OTUzOCwgMC44NTc5NTIsIDEuMTU5ODQsIDEuNDIzNjUsIDEuODAyODEiLCBcCi0gICAgICAgICAgIjAuMTYwNDcxLCAwLjQyNTg1LCAwLjY5MDA4MywgMC44Nzg1MjIsIDEuMTgwNTEsIDEuNDQ0MTUsIDEuODIzMDkiLCBcCi0gICAgICAgICAgIjAuMTc3ODEsIDAuNDQzNzI1LCAwLjcwNzc4NiwgMC44OTY0NjYsIDEuMTk4MjIsIDEuNDYyMDUsIDEuODQxOSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEyMTgzNiwgMC42MzgxNywgMS4xNTgwMiwgMS41MjQ4OSwgMi4xMTgzNCwgMi42MzcwNCwgMy40MDExMSIsIFwKLSAgICAgICAgICAiMC4xMjE5MjYsIDAuNjM4MTI3LCAxLjE1Nzc1LCAxLjUyOTUyLCAyLjExODI2LCAyLjY0NTcyLCAzLjM4MTI4IiwgXAotICAgICAgICAgICIwLjEyMTg3NywgMC42Mzg1OTgsIDEuMTU2NjIsIDEuNTI1MTQsIDIuMTIyNDcsIDIuNjM2ODUsIDMuNDAxMTIiLCBcCi0gICAgICAgICAgIjAuMTIyMTc5LCAwLjYzODkzNCwgMS4xNTQyNCwgMS41MjgzNCwgMi4xMjQ3MiwgMi42NDAxOCwgMy40MDEzOCIsIFwKLSAgICAgICAgICAiMC4xMjMyMzksIDAuNjM4MDA0LCAxLjE1NjgzLCAxLjUyNTE5LCAyLjEyNTExLCAyLjY0NTYxLCAzLjM3ODczIiwgXAotICAgICAgICAgICIwLjEyNjU1MiwgMC42MzgxNzEsIDEuMTU4MDUsIDEuNTI4NTMsIDIuMTI1MzQsIDIuNjQyODMsIDMuNDAxMjkiLCBcCi0gICAgICAgICAgIjAuMTMwNzg3LCAwLjYzODQ4NiwgMS4xNTgwMiwgMS41Mjk1LCAyLjEyMjgxLCAyLjY0NDgyLCAzLjM3ODE2Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTQ1NTMyLCAwLjU4MDU0NCwgMS4wMTE0MSwgMS4zMTkxMSwgMS44MTE0MywgMi4yNDA4MiwgMi44NTQ1OSIsIFwKLSAgICAgICAgICAiMC4xNTQ3MDQsIDAuNTg5OTkxLCAxLjAyMDg5LCAxLjMyODM5LCAxLjgxOTc4LCAyLjI0OTcyLCAyLjg2MzUyIiwgXAotICAgICAgICAgICIwLjE2NjQ3MywgMC42MDIxNiwgMS4wMzMxNiwgMS4zNDA2OSwgMS44MzIxLCAyLjI2MjQ1LCAyLjg3NTkiLCBcCi0gICAgICAgICAgIjAuMTc5MDg0LCAwLjYxNDg4OCwgMS4wNDU4NCwgMS4zNTMyNiwgMS44NDU0NSwgMi4yNzQ3OSwgMi44ODkzMSIsIFwKLSAgICAgICAgICAiMC4xOTA2NSwgMC42MjY1MjIsIDEuMDU3ODgsIDEuMzY1NDEsIDEuODU3MjMsIDIuMjg3NzIsIDIuOTAxMjUiLCBcCi0gICAgICAgICAgIjAuMjEwMjQzLCAwLjY0NjAzNiwgMS4wNzc0NCwgMS4zODQ1NiwgMS44NzY1NSwgMi4zMDY5OCwgMi45MjA4MiIsIFwKLSAgICAgICAgICAiMC4yMjg0MTQsIDAuNjYzMTMzLCAxLjA5NDYyLCAxLjQwMjA2LCAxLjg5NDMyLCAyLjMyMzY2LCAyLjkzODA1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjM1NDE0LCAxLjA0NDk5LCAxLjg1NDA2LCAyLjQzMDc0LCAzLjM1NTA5LCA0LjE2Mjc5LCA1LjMxNzQxIiwgXAotICAgICAgICAgICIwLjIzNTM4NSwgMS4wNDUyLCAxLjg1Mzc2LCAyLjQzMDMyLCAzLjM1Mzg5LCA0LjE2MjQ5LCA1LjMxNjI1IiwgXAotICAgICAgICAgICIwLjIzNTM3MSwgMS4wNDUyNiwgMS44NTM3MywgMi40MzE0MSwgMy4zNTQxMiwgNC4xNjI5MSwgNS4zMTY1OCIsIFwKLSAgICAgICAgICAiMC4yMzUwOTYsIDEuMDQ1MDksIDEuODUzNiwgMi40MzEzNiwgMy4zNTQ3NSwgNC4xNjI5NiwgNS4zMTY5MyIsIFwKLSAgICAgICAgICAiMC4yMzY3MDMsIDEuMDQ1MjIsIDEuODUzNzgsIDIuNDMxMzMsIDMuMzU0NTQsIDQuMTYyODksIDUuMzE3NDciLCBcCi0gICAgICAgICAgIjAuMjQxODEyLCAxLjA0NDk4LCAxLjg1MzcxLCAyLjQzMTMzLCAzLjM1NDEyLCA0LjE2MjQxLCA1LjMxNTQ5IiwgXAotICAgICAgICAgICIwLjI0ODI1MywgMS4wNDQ5OCwgMS44NTM3MiwgMi40MzA5NywgMy4zNTQ1NywgNC4xNjI0NCwgNS4zMTY5OCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzMwOTcsIDAuMzM3MzI3LCAwLjU5OTY2MywgMC43ODY5ODQsIDEuMDg2MDQsIDEuMzQ4MjgsIDEuNzIzNTEiLCBcCi0gICAgICAgICAgIjAuMDgzMzgsIDAuMzQ3NywgMC42MTAxMDYsIDAuNzk3Mjc0LCAxLjA5NjUyLCAxLjM1ODQzLCAxLjczMzY2IiwgXAotICAgICAgICAgICIwLjA5NjkwNCwgMC4zNjEzNCwgMC42MjM3ODEsIDAuODEwODI1LCAxLjExMDQxLCAxLjM3MjUzLCAxLjc0NzA4IiwgXAotICAgICAgICAgICIwLjEwOTQ4MywgMC4zNzM4NDksIDAuNjM2MjI2LCAwLjgyMzM2NywgMS4xMjI2NiwgMS4zODQ3MywgMS43NTk4IiwgXAotICAgICAgICAgICIwLjEyMzE5OSwgMC4zODY5NTIsIDAuNjQ5NDE3LCAwLjgzNjU2NCwgMS4xMzU3OCwgMS4zOTc2NiwgMS43NzI4IiwgXAotICAgICAgICAgICIwLjE0NDgsIDAuNDA3OTU4LCAwLjY3MDM4MywgMC44NTc2MDEsIDEuMTU2ODksIDEuNDE4OCwgMS43OTM4NSIsIFwKLSAgICAgICAgICAiMC4xNjM3NTUsIDAuNDI2MzQxLCAwLjY4ODc5OCwgMC44NzYwMzYsIDEuMTc1NTIsIDEuNDM3LCAxLjgxMjQxIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTMxNzE3LCAwLjY0NTMyNCwgMS4xNTg0NywgMS41MjM5LCAyLjExMzQsIDIuNjI4NTUsIDMuMzY1OTYiLCBcCi0gICAgICAgICAgIjAuMTMxMTIyLCAwLjY0NTI5MSwgMS4xNTc5NiwgMS41MjQ1NiwgMi4xMTI5NiwgMi42Mjg1NCwgMy4zNjY3MiIsIFwKLSAgICAgICAgICAiMC4xMzExNDMsIDAuNjQ1OTcyLCAxLjE1ODQ5LCAxLjUyMzUyLCAyLjExMzY0LCAyLjYyODMzLCAzLjM2NjU0IiwgXAotICAgICAgICAgICIwLjEzNDUwMSwgMC42NDU3NzYsIDEuMTU4NCwgMS41MjMzNSwgMi4xMTIzOCwgMi42Mjk4NCwgMy4zNjU1MSIsIFwKLSAgICAgICAgICAiMC4xMzkwMzUsIDAuNjQ1MzE1LCAxLjE1Nzg1LCAxLjUyMzg1LCAyLjExMjQ2LCAyLjYyODU2LCAzLjM2NjY0IiwgXAotICAgICAgICAgICIwLjE0OTAwNCwgMC42NDU1NDUsIDEuMTU3NTIsIDEuNTIzOTcsIDIuMTEyNDcsIDIuNjI4NzcsIDMuMzY2MzUiLCBcCi0gICAgICAgICAgIjAuMTU5MzI3LCAwLjY0NjE3MywgMS4xNTc1NCwgMS41MjM4MywgMi4xMTM2MiwgMi42MjgzOSwgMy4zNjY3OCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3Mjk3MSwgMC4zNjAxOTIsIDAuNjQ3MTc5LCAwLjg1MjEwNywgMS4xODAyNCwgMS40NjY5OSwgMS44NzcyMSIsIFwKLSAgICAgICAgICAiMC4wODQ2MTMsIDAuMzcyMjE3LCAwLjY1OTA5NCwgMC44NjQxMywgMS4xOTE5NiwgMS40NzkwNywgMS44ODkxIiwgXAotICAgICAgICAgICIwLjA5Nzk3NCwgMC4zODYwODEsIDAuNjcyODY5LCAwLjg3NzkzNywgMS4yMDU3OSwgMS40OTI2NywgMS45MDI3OSIsIFwKLSAgICAgICAgICAiMC4xMTEyMTcsIDAuMzk5Mzk3LCAwLjY4NjgxMSwgMC44OTE1MzUsIDEuMjE5OTksIDEuNTA2NDUsIDEuOTE2NTkiLCBcCi0gICAgICAgICAgIjAuMTI0NTUyLCAwLjQxMjkxMSwgMC43MDAzNjMsIDAuOTA1MTI2LCAxLjIzMzE4LCAxLjUxOTg3LCAxLjkzMDUzIiwgXAotICAgICAgICAgICIwLjE0NTg3NiwgMC40MzQ0NTMsIDAuNzIxNzcxLCAwLjkyNjUxOCwgMS4yNTQ1NSwgMS41NDEzNiwgMS45NTIzIiwgXAotICAgICAgICAgICIwLjE2MzgzNywgMC40NTIyMTYsIDAuNzQwNzYzLCAwLjk0NTU5NSwgMS4yNzQxMywgMS41NjA2MSwgMS45NzAyNCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE0Mjc4LCAwLjY4Nzk2NiwgMS4yMzUwNCwgMS42MjYxNCwgMi4yNTE4NSwgMi44MDA2NCwgMy41ODMyNiIsIFwKLSAgICAgICAgICAiMC4xNDI3OTMsIDAuNjg3OTM0LCAxLjIzNSwgMS42MjYyNSwgMi4yNTIxNSwgMi43OTk3OSwgMy41ODI3NiIsIFwKLSAgICAgICAgICAiMC4xNDI5MTksIDAuNjg4MDgzLCAxLjIzNTA1LCAxLjYyNjI0LCAyLjI1MTkxLCAyLjc5OTY2LCAzLjU4MjU3IiwgXAotICAgICAgICAgICIwLjE0NDcxLCAwLjY4NzkwOSwgMS4yMzUyNiwgMS42MjYzMiwgMi4yNTIyLCAyLjgwMDU1LCAzLjU4MjgiLCBcCi0gICAgICAgICAgIjAuMTQ3ODgzLCAwLjY4Nzk1OCwgMS4yMzUyNiwgMS42MjYxMywgMi4yNTIxNywgMi43OTk2MiwgMy41ODI2IiwgXAotICAgICAgICAgICIwLjE1NDg5OCwgMC42ODc5NywgMS4yMzUxOCwgMS42MjYyLCAyLjI1MTgxLCAyLjc5OTY2LCAzLjU4MjIzIiwgXAotICAgICAgICAgICIwLjE2MjM1MywgMC42ODgwMTgsIDEuMjM1MTYsIDEuNjI2MjQsIDIuMjUyNjEsIDIuODAwMTMsIDMuNTgzMTMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY4MTczLCAwLjMzMzQzMiwgMC41OTcxNDMsIDAuNzg1NTU4LCAxLjA4NjMyLCAxLjM1MDA2LCAxLjcyNjIxIiwgXAotICAgICAgICAgICIwLjA3ODUzOSwgMC4zNDQwMDgsIDAuNjA3ODUxLCAwLjc5NjA5OCwgMS4wOTcwMywgMS4zNjA3NiwgMS43MzcxNiIsIFwKLSAgICAgICAgICAiMC4wOTE5OTUsIDAuMzU3NjcsIDAuNjIxNDg0LCAwLjgwOTYyNiwgMS4xMTA5MiwgMS4zNzQ1MiwgMS43NTA3IiwgXAotICAgICAgICAgICIwLjEwNDQ0OSwgMC4zNzAxODYsIDAuNjM0MDQxLCAwLjgyMjIyLCAxLjEyMzM5LCAxLjM4NjU4LCAxLjc2MzE3IiwgXAotICAgICAgICAgICIwLjExODE5NiwgMC4zODMyMzgsIDAuNjQ3MTYyLCAwLjgzNTM3NCwgMS4xMzYzNCwgMS4zOTk3MSwgMS43NzU5OSIsIFwKLSAgICAgICAgICAiMC4xMzk5NjksIDAuNDA0MjA0LCAwLjY2ODExLCAwLjg1NjM4MywgMS4xNTc2MSwgMS40MjA2LCAxLjc5NzI4IiwgXAotICAgICAgICAgICIwLjE1ODE5NywgMC40MjI1NTQsIDAuNjg2NDUsIDAuODc0ODA1LCAxLjE3NTk1LCAxLjQzOTAyLCAxLjgxNTE3Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTI2NjksIDAuNjQyOTE5LCAxLjE1ODM0LCAxLjUzMDAzLCAyLjExODE3LCAyLjY0NTMzLCAzLjM4MTAyIiwgXAotICAgICAgICAgICIwLjEyNiwgMC42NDM0MjUsIDEuMTU5MTcsIDEuNTI4NSwgMi4xMjAzMSwgMi42NDU0LCAzLjM4MTY1IiwgXAotICAgICAgICAgICIwLjEyNjE1NiwgMC42NDI2NjksIDEuMTU4MzUsIDEuNTI1OTgsIDIuMTIyNywgMi42NDU4NSwgMy4zODE1NyIsIFwKLSAgICAgICAgICAiMC4xMjk4NjUsIDAuNjQyODczLCAxLjE1ODMzLCAxLjUyNjUyLCAyLjExODMyLCAyLjY0MzA3LCAzLjQwMTM5IiwgXAotICAgICAgICAgICIwLjEzNDg1LCAwLjY0MzAxOSwgMS4xNTgzNSwgMS41MjgzMSwgMi4xMTk1OSwgMi42MzY4OSwgMy4zODU2NCIsIFwKLSAgICAgICAgICAiMC4xNDUzNDcsIDAuNjQyODQ2LCAxLjE1ODMzLCAxLjUyNjcsIDIuMTI0NTQsIDIuNjQ1MTQsIDMuMzgxMjMiLCBcCi0gICAgICAgICAgIjAuMTU2MjM3LCAwLjY0MzYyNiwgMS4xNTgyOSwgMS41MjY1NywgMi4xMjI3MiwgMi42MzczMSwgMy4zODA4Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY4MTE3LCAwLjM1NTM2NSwgMC42NDIxODYsIDAuODQ3Mjc3LCAxLjE3NTI2LCAxLjQ2MjQ4LCAxLjg3MjU4IiwgXAotICAgICAgICAgICIwLjA3ODQzMSwgMC4zNjYxNzQsIDAuNjUzMDI2LCAwLjg1ODA0MSwgMS4xODU5MiwgMS40NzI2OSwgMS44ODI1IiwgXAotICAgICAgICAgICIwLjA5MTI5LCAwLjM3OTQyMiwgMC42NjYyODYsIDAuODcxMzIyLCAxLjE5OTIxLCAxLjQ4NjQ3LCAxLjg5NTk3IiwgXAotICAgICAgICAgICIwLjEwNDkxLCAwLjM5MjcyMiwgMC42Nzk5NywgMC44ODUxMzgsIDEuMjEzNTYsIDEuNTAwMDQsIDEuOTEwMjIiLCBcCi0gICAgICAgICAgIjAuMTE4MTk3LCAwLjQwNTc4NywgMC42OTI4MTQsIDAuODk4MDA2LCAxLjIyNTYyLCAxLjUxMjczLCAxLjkyMjU0IiwgXAotICAgICAgICAgICIwLjE0MDA4NSwgMC40MjY5MjQsIDAuNzE0MDMzLCAwLjkxODk5NywgMS4yNDcyOSwgMS41MzM5LCAxLjk0NDI4IiwgXAotICAgICAgICAgICIwLjE1ODIyNCwgMC40NDUzMTksIDAuNzMyNTYsIDAuOTM3NTY2LCAxLjI2NTU5LCAxLjU1Mjk4LCAxLjk2MjIyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTQyNzc5LCAwLjY4NzkyNiwgMS4yMzUsIDEuNjI2MSwgMi4yNTE4NywgMi44MDAxNywgMy41ODMyMyIsIFwKLSAgICAgICAgICAiMC4xNDI3ODQsIDAuNjg3OTYsIDEuMjM1MTIsIDEuNjI2MjQsIDIuMjUyMjksIDIuNzk5NTksIDMuNTgyNTkiLCBcCi0gICAgICAgICAgIjAuMTQzNzM4LCAwLjY4ODA2MiwgMS4yMzUxLCAxLjYyNjA4LCAyLjI1MjMxLCAyLjgwMDA4LCAzLjU4MzMxIiwgXAotICAgICAgICAgICIwLjE0NzMwOCwgMC42ODc5NzMsIDEuMjM1MzIsIDEuNjI2MjcsIDIuMjUyMjEsIDIuODAwODksIDMuNTgyOCIsIFwKLSAgICAgICAgICAiMC4xNTI4MzYsIDAuNjg4MDQ1LCAxLjIzNTExLCAxLjYyNjIyLCAyLjI1MTgyLCAyLjgwMDksIDMuNTgyMDUiLCBcCi0gICAgICAgICAgIjAuMTY0MDQ2LCAwLjY4Nzk2OSwgMS4yMzUwNCwgMS42MjYyMiwgMi4yNTE5LCAyLjc5OTYsIDMuNTgyMSIsIFwKLSAgICAgICAgICAiMC4xNzQ5MTEsIDAuNjg4MzUzLCAxLjIzNTA0LCAxLjYyNjIxLCAyLjI1MTk4LCAyLjc5OTYyLCAzLjU4Mjk3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEyNzA0LCAwLjAxMjcwMSwgMC4wMTI3MDEsIDAuMDEyNjk3LCAwLjAxMjY5MiwgMC4wMTI2OSwgMC4wMTI2ODgiLCBcCi0gICAgICAgICAgIjAuMDEyNjYzLCAwLjAxMjY2NSwgMC4wMTI2NjQsIDAuMDEyNjYyLCAwLjAxMjY2NiwgMC4wMTI2NTMsIDAuMDEyNjYxIiwgXAotICAgICAgICAgICIwLjAxMjY0NCwgMC4wMTI2NTYsIDAuMDEyNjU2LCAwLjAxMjY1MywgMC4wMTI2NTEsIDAuMDEyNjQ4LCAwLjAxMjY0MiIsIFwKLSAgICAgICAgICAiMC4wMTI2MzMsIDAuMDEyNjUsIDAuMDEyNjUxLCAwLjAxMjY0OSwgMC4wMTI2NDcsIDAuMDEyNjQzLCAwLjAxMjY0MSIsIFwKLSAgICAgICAgICAiMC4wMTI2MTksIDAuMDEyNjM4LCAwLjAxMjY0LCAwLjAxMjYzOSwgMC4wMTI2MzcsIDAuMDEyNjM2LCAwLjAxMjYzMyIsIFwKLSAgICAgICAgICAiMC4wMTI2MSwgMC4wMTI2NCwgMC4wMTI2NDEsIDAuMDEyNjQsIDAuMDEyNjQsIDAuMDEyNjM5LCAwLjAxMjYzNiIsIFwKLSAgICAgICAgICAiMC4wMTI2MDYsIDAuMDEyNjM1LCAwLjAxMjY0LCAwLjAxMjY0LCAwLjAxMjY0LCAwLjAxMjYzOCwgMC4wMTI2MzMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDY5OCwgMC4wMDQ2OTcsIDAuMDA0NjkyLCAwLjAwNDY5LCAwLjAwNDY4NiwgMC4wMDQ2ODIsIDAuMDA0Njc5IiwgXAotICAgICAgICAgICIwLjAwNDYzOSwgMC4wMDQ2NTYsIDAuMDA0NjU2LCAwLjAwNDY1MywgMC4wMDQ2NDgsIDAuMDA0NjQ0LCAwLjAwNDYzOSIsIFwKLSAgICAgICAgICAiMC4wMDQ1OTUsIDAuMDA0NjM1LCAwLjAwNDYzOSwgMC4wMDQ2MzcsIDAuMDA0NjM3LCAwLjAwNDYzNiwgMC4wMDQ2MzMiLCBcCi0gICAgICAgICAgIjAuMDA0NTYsIDAuMDA0NjIxLCAwLjAwNDYyOCwgMC4wMDQ2MjksIDAuMDA0NjMxLCAwLjAwNDYyOSwgMC4wMDQ2MjciLCBcCi0gICAgICAgICAgIjAuMDA0NTM1LCAwLjAwNDYxLCAwLjAwNDYyMSwgMC4wMDQ2MjQsIDAuMDA0NjI0LCAwLjAwNDYyNSwgMC4wMDQ2MjEiLCBcCi0gICAgICAgICAgIjAuMDA0NTA1LCAwLjAwNDU5MywgMC4wMDQ2MSwgMC4wMDQ2MTUsIDAuMDA0NjE2LCAwLjAwNDYxOCwgMC4wMDQ2MTQiLCBcCi0gICAgICAgICAgIjAuMDA0NDg3LCAwLjAwNDU3NywgMC4wMDQ2LCAwLjAwNDYwNSwgMC4wMDQ2MSwgMC4wMDQ2MSwgMC4wMDQ2MDkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTE0MzQsIDAuMDExNDMyLCAwLjAxMTQzMiwgMC4wMTE0MzIsIDAuMDExNDI4LCAwLjAxMTQyNiwgMC4wMTE0MjUiLCBcCi0gICAgICAgICAgIjAuMDExNDE0LCAwLjAxMTQzLCAwLjAxMTQzMiwgMC4wMTE0MywgMC4wMTE0MzIsIDAuMDExNDI4LCAwLjAxMTQxOCIsIFwKLSAgICAgICAgICAiMC4wMTEzOTMsIDAuMDExNDI3LCAwLjAxMTQzLCAwLjAxMTQyNywgMC4wMTE0MjgsIDAuMDExNDMzLCAwLjAxMTQxOSIsIFwKLSAgICAgICAgICAiMC4wMTEzNzQsIDAuMDExNDE5LCAwLjAxMTQyNSwgMC4wMTE0MjYsIDAuMDExNDIyLCAwLjAxMTQyOCwgMC4wMTE0MTkiLCBcCi0gICAgICAgICAgIjAuMDExMzU2LCAwLjAxMTQxNCwgMC4wMTE0MjEsIDAuMDExNDIyLCAwLjAxMTQyMiwgMC4wMTE0MjQsIDAuMDExNDIyIiwgXAotICAgICAgICAgICIwLjAxMTMzNCwgMC4wMTE0MDMsIDAuMDExNDE2LCAwLjAxMTQxOCwgMC4wMTE0MTksIDAuMDExNDIsIDAuMDExNDE4IiwgXAotICAgICAgICAgICIwLjAxMTMxOSwgMC4wMTEzOTYsIDAuMDExNDEsIDAuMDExNDE0LCAwLjAxMTQxNywgMC4wMTE0MTcsIDAuMDExNDIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDcsIDAuMDA0Njk4LCAwLjAwNDY5NCwgMC4wMDQ2OSwgMC4wMDQ2ODgsIDAuMDA0NjgyLCAwLjAwNDY3NyIsIFwKLSAgICAgICAgICAiMC4wMDQ2MzksIDAuMDA0NjU1LCAwLjAwNDY1MywgMC4wMDQ2NTQsIDAuMDA0NjU2LCAwLjAwNDY0OSwgMC4wMDQ2NDQiLCBcCi0gICAgICAgICAgIjAuMDA0NTk0LCAwLjAwNDYzNiwgMC4wMDQ2NCwgMC4wMDQ2NCwgMC4wMDQ2MzQsIDAuMDA0NjMyLCAwLjAwNDYzNCIsIFwKLSAgICAgICAgICAiMC4wMDQ1NjIsIDAuMDA0NjIyLCAwLjAwNDYyOSwgMC4wMDQ2MzEsIDAuMDA0NjMsIDAuMDA0NjI5LCAwLjAwNDYyNSIsIFwKLSAgICAgICAgICAiMC4wMDQ1MzgsIDAuMDA0NjEsIDAuMDA0NjIyLCAwLjAwNDYyMiwgMC4wMDQ2MjYsIDAuMDA0NjIzLCAwLjAwNDYxOSIsIFwKLSAgICAgICAgICAiMC4wMDQ1MDYsIDAuMDA0NTkyLCAwLjAwNDYxLCAwLjAwNDYxNSwgMC4wMDQ2MTYsIDAuMDA0NjE5LCAwLjAwNDYxNSIsIFwKLSAgICAgICAgICAiMC4wMDQ0ODgsIDAuMDA0NTgsIDAuMDA0NjAxLCAwLjAwNDYwNywgMC4wMDQ2MTIsIDAuMDA0NjExLCAwLjAwNDYxMSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEyIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMDA4NywgMC4wMTAwOTUsIDAuMDEwMDk3LCAwLjAxMDA5NSwgMC4wMTAwOTMsIDAuMDEwMDk0LCAwLjAxMDA5IiwgXAotICAgICAgICAgICIwLjAxMDA4OSwgMC4wMTAxMjcsIDAuMDEwMTI5LCAwLjAxMDEzMywgMC4wMTAxMjYsIDAuMDEwMTM1LCAwLjAxMDEzIiwgXAotICAgICAgICAgICIwLjAxMDA2MSwgMC4wMTAxMjgsIDAuMDEwMTMzLCAwLjAxMDEzNywgMC4wMTAxMzUsIDAuMDEwMTM5LCAwLjAxMDEzNSIsIFwKLSAgICAgICAgICAiMC4wMTAwMzQsIDAuMDEwMTE5LCAwLjAxMDEzMSwgMC4wMTAxMzQsIDAuMDEwMTM3LCAwLjAxMDEzNywgMC4wMTAxMzciLCBcCi0gICAgICAgICAgIjAuMDEwMDExLCAwLjAxMDExMiwgMC4wMTAxMjgsIDAuMDEwMTMxLCAwLjAxMDEzNiwgMC4wMTAxNCwgMC4wMTAxMzUiLCBcCi0gICAgICAgICAgIjAuMDA5OTgsIDAuMDEwMSwgMC4wMTAxMjEsIDAuMDEwMTI3LCAwLjAxMDEzMiwgMC4wMTAxMzYsIDAuMDEwMTM1IiwgXAotICAgICAgICAgICIwLjAwOTk2MSwgMC4wMTAwODgsIDAuMDEwMTEzLCAwLjAxMDEyLCAwLjAxMDEyNywgMC4wMTAxMjksIDAuMDEwMTM0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQ3LCAwLjAwNDcsIDAuMDA0Njk4LCAwLjAwNDY4OSwgMC4wMDQ3MDIsIDAuMDA0Njk4LCAwLjAwNDY4MyIsIFwKLSAgICAgICAgICAiMC4wMDQ2MzMsIDAuMDA0NjU0LCAwLjAwNDY1MywgMC4wMDQ2NTgsIDAuMDA0NjU0LCAwLjAwNDY0NCwgMC4wMDQ2NDQiLCBcCi0gICAgICAgICAgIjAuMDA0NTc5LCAwLjAwNDYzMiwgMC4wMDQ2MzksIDAuMDA0NjM5LCAwLjAwNDYzOCwgMC4wMDQ2MzYsIDAuMDA0NjMxIiwgXAotICAgICAgICAgICIwLjAwNDU0MywgMC4wMDQ2MTgsIDAuMDA0NjI5LCAwLjAwNDYyOSwgMC4wMDQ2MywgMC4wMDQ2MzEsIDAuMDA0NjI2IiwgXAotICAgICAgICAgICIwLjAwNDUxMSwgMC4wMDQ2MDIsIDAuMDA0NjE3LCAwLjAwNDYyLCAwLjAwNDYyMiwgMC4wMDQ2MjEsIDAuMDA0NjE4IiwgXAotICAgICAgICAgICIwLjAwNDQ4MiwgMC4wMDQ1ODIsIDAuMDA0NjAzLCAwLjAwNDYxMSwgMC4wMDQ2MTMsIDAuMDA0NjE1LCAwLjAwNDYxNSIsIFwKLSAgICAgICAgICAiMC4wMDQ0NzEsIDAuMDA0NTY4LCAwLjAwNDU5NCwgMC4wMDQ2MDIsIDAuMDA0NjA4LCAwLjAwNDYxLCAwLjAwNDYwOCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwOTE5LCAwLjAwOTE5MSwgMC4wMDkxODgsIDAuMDA5MTg2LCAwLjAwOTE4MywgMC4wMDkxOCwgMC4wMDkxOCIsIFwKLSAgICAgICAgICAiMC4wMDkxMzYsIDAuMDA5MTYsIDAuMDA5MTYxLCAwLjAwOTE2MiwgMC4wMDkxNiwgMC4wMDkxNTksIDAuMDA5MTU0IiwgXAotICAgICAgICAgICIwLjAwOTEwNiwgMC4wMDkxNDksIDAuMDA5MTUzLCAwLjAwOTE1MywgMC4wMDkxNTEsIDAuMDA5MTU1LCAwLjAwOTE0OCIsIFwKLSAgICAgICAgICAiMC4wMDkwOCwgMC4wMDkxMzcsIDAuMDA5MTQ1LCAwLjAwOTE0NiwgMC4wMDkxNDcsIDAuMDA5MTQ1LCAwLjAwOTE0MyIsIFwKLSAgICAgICAgICAiMC4wMDkwNjQsIDAuMDA5MTMxLCAwLjAwOTE0LCAwLjAwOTE0MiwgMC4wMDkxNDQsIDAuMDA5MTQyLCAwLjAwOTEzOCIsIFwKLSAgICAgICAgICAiMC4wMDkwNDcsIDAuMDA5MTE5LCAwLjAwOTEzMiwgMC4wMDkxMzUsIDAuMDA5MTM4LCAwLjAwOTEzNywgMC4wMDkxMzciLCBcCi0gICAgICAgICAgIjAuMDA5MDQsIDAuMDA5MTExLCAwLjAwOTEyNywgMC4wMDkxMzEsIDAuMDA5MTM0LCAwLjAwOTEzNSwgMC4wMDkxMzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTE4MiwgMC4wMDEyMDIsIDAuMDAxMjA0LCAwLjAwMTIwNCwgMC4wMDEyMDUsIDAuMDAxMjA1LCAwLjAwMTIwNSIsIFwKLSAgICAgICAgICAiMC4wMDExNTUsIDAuMDAxMjM5LCAwLjAwMTI0OSwgMC4wMDEyNTIsIDAuMDAxMjU1LCAwLjAwMTI1NiwgMC4wMDEyNTciLCBcCi0gICAgICAgICAgIjAuMDAxMDk5LCAwLjAwMTIzNywgMC4wMDEyNTYsIDAuMDAxMjYyLCAwLjAwMTI2NywgMC4wMDEyNywgMC4wMDEyNzIiLCBcCi0gICAgICAgICAgIjAuMDAxMDUyLCAwLjAwMTIyNiwgMC4wMDEyNTIsIDAuMDAxMjYxLCAwLjAwMTI2OCwgMC4wMDEyNzIsIDAuMDAxMjc2IiwgXAotICAgICAgICAgICIwLjAwMTAxNiwgMC4wMDEyMTEsIDAuMDAxMjQ1LCAwLjAwMTI1NiwgMC4wMDEyNjUsIDAuMDAxMjcxLCAwLjAwMTI3NSIsIFwKLSAgICAgICAgICAiMC4wMDA5NzIsIDAuMDAxMTg4LCAwLjAwMTIzMSwgMC4wMDEyNDYsIDAuMDAxMjU5LCAwLjAwMTI2NiwgMC4wMDEyNzIiLCBcCi0gICAgICAgICAgIjAuMDAwOTQ0LCAwLjAwMTE2NiwgMC4wMDEyMTksIDAuMDAxMjM2LCAwLjAwMTI1MiwgMC4wMDEyNiwgMC4wMDEyNjgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDc4NTksIDAuMDA3ODcxLCAwLjAwNzg3MywgMC4wMDc4NywgMC4wMDc4NjksIDAuMDA3ODY5LCAwLjAwNzg2OCIsIFwKLSAgICAgICAgICAiMC4wMDc4MjYsIDAuMDA3ODgyLCAwLjAwNzg4NywgMC4wMDc4ODcsIDAuMDA3ODg3LCAwLjAwNzg4NSwgMC4wMDc4ODciLCBcCi0gICAgICAgICAgIjAuMDA3Nzg0LCAwLjAwNzg2OSwgMC4wMDc4ODEsIDAuMDA3ODg0LCAwLjAwNzg4NSwgMC4wMDc4ODYsIDAuMDA3ODg3IiwgXAotICAgICAgICAgICIwLjAwNzc0NywgMC4wMDc4NTgsIDAuMDA3ODc1LCAwLjAwNzg3OSwgMC4wMDc4ODIsIDAuMDA3ODgyLCAwLjAwNzg4MyIsIFwKLSAgICAgICAgICAiMC4wMDc3MjEsIDAuMDA3ODQ0LCAwLjAwNzg2NSwgMC4wMDc4NzMsIDAuMDA3ODc4LCAwLjAwNzg3NywgMC4wMDc4NzciLCBcCi0gICAgICAgICAgIjAuMDA3NjkzLCAwLjAwNzgyNywgMC4wMDc4NTMsIDAuMDA3ODYyLCAwLjAwNzg2OSwgMC4wMDc4NzMsIDAuMDA3ODc2IiwgXAotICAgICAgICAgICIwLjAwNzY3OCwgMC4wMDc4MTMsIDAuMDA3ODQ1LCAwLjAwNzg1NSwgMC4wMDc4NjQsIDAuMDA3ODY4LCAwLjAwNzg2OSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxMTc5LCAwLjAwMTIwMywgMC4wMDEyMDYsIDAuMDAxMjA2LCAwLjAwMTIwNiwgMC4wMDEyMDgsIDAuMDAxMjA3IiwgXAotICAgICAgICAgICIwLjAwMTEzOCwgMC4wMDEyMzgsIDAuMDAxMjUsIDAuMDAxMjUzLCAwLjAwMTI1NiwgMC4wMDEyNTgsIDAuMDAxMjU5IiwgXAotICAgICAgICAgICIwLjAwMTA3NywgMC4wMDEyMzUsIDAuMDAxMjU3LCAwLjAwMTI2MywgMC4wMDEyNjksIDAuMDAxMjcyLCAwLjAwMTI3NSIsIFwKLSAgICAgICAgICAiMC4wMDEwMjcsIDAuMDAxMjE5LCAwLjAwMTI1LCAwLjAwMTI2LCAwLjAwMTI2OCwgMC4wMDEyNzIsIDAuMDAxMjc2IiwgXAotICAgICAgICAgICIwLjAwMDk5NSwgMC4wMDEyMDYsIDAuMDAxMjQzLCAwLjAwMTI1NiwgMC4wMDEyNjcsIDAuMDAxMjcyLCAwLjAwMTI3NyIsIFwKLSAgICAgICAgICAiMC4wMDA5NiwgMC4wMDExODEsIDAuMDAxMjI5LCAwLjAwMTI0NSwgMC4wMDEyNTksIDAuMDAxMjY3LCAwLjAwMTI3NCIsIFwKLSAgICAgICAgICAiMC4wMDA5NDEsIDAuMDAxMTYxLCAwLjAwMTIxNiwgMC4wMDEyMzUsIDAuMDAxMjUyLCAwLjAwMTI2MSwgMC4wMDEyNjkiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBBT0kzMlhMICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKEFPSTMyWEwpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4wNjM0MDY7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA1NDE5MzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA1Mzk5NDU7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNTQxOTM7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMTY1LCAwLjAwMDE2NSwgMC4wMDAxNjUsIDAuMDAwMTY1LCAwLjAwMDE2NSwgMC4wMDAxNjUsIDAuMDAwMTY1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMTY2LCAwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY2Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihBMSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNTgwNjEzOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDU3ODM4MjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA1ODA2MTM7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMTY1LCAwLjAwMDE2NSwgMC4wMDAxNjUsIDAuMDAwMTY1LCAwLjAwMDE2NSwgMC4wMDAxNjUsIDAuMDAwMTY1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMTY2LCAwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY2Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihBMikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNTgxNDkyOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDU3NzQyMjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA1ODE0OTI7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMDUzLCAwLjAwMDA1MywgMC4wMDAwNTMsIDAuMDAwMDUzLCAwLjAwMDA1MywgMC4wMDAwNTMsIDAuMDAwMDUzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMTg4LCAwLjAwMDE4OCwgMC4wMDAxODgsIDAuMDAwMTg4LCAwLjAwMDE4OCwgMC4wMDAxODgsIDAuMDAwMTg4Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNTk0NzMxOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDU5NDczMTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA1OTMzMzc7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMTY1LCAwLjAwMDE2NSwgMC4wMDAxNjUsIDAuMDAwMTY1LCAwLjAwMDE2NSwgMC4wMDAxNjUsIDAuMDAwMTY1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMTY5LCAwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY2Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCMSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjAwOTQ4OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYwMDUzODsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2MDA5NDg7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMDY3LCAwLjAwMDA2NywgMC4wMDAwNjcsIDAuMDAwMDY3LCAwLjAwMDA2NywgMC4wMDAwNjcsIDAuMDAwMDY3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMTg4LCAwLjAwMDE4OCwgMC4wMDAxODgsIDAuMDAwMTg4LCAwLjAwMDE4OCwgMC4wMDAxODgsIDAuMDAwMTg4Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMDI0ODk3OTsKLSAgICBmdW5jdGlvbiA6ICIoISgoQjAgQjEpKygoQTAgQTEpIEEyKSkpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzMwMzE2LCAwLjM4MjQ2MiwgMC44NTA5NzEsIDEuNjMwNjUsIDIuNDEwNzUsIDQuMjI4NDEsIDUuMjY2ODMiLCBcCi0gICAgICAgICAgIjAuMzQyMDMzLCAwLjM5NDIxLCAwLjg2MjYwNSwgMS42NDIzNCwgMi40MjI5OCwgNC4yNDAzNiwgNS4yNzg2IiwgXAotICAgICAgICAgICIwLjM1NjcxMywgMC40MDg4NTEsIDAuODc3NDEyLCAxLjY1NzA2LCAyLjQzNzE2LCA0LjI1NDgyLCA1LjI5MzI2IiwgXAotICAgICAgICAgICIwLjM3MDk0OCwgMC40MjMxMTIsIDAuODkxNzAxLCAxLjY3MTI1LCAyLjQ1MTY1LCA0LjI2ODkyLCA1LjMwNzQ5IiwgXAotICAgICAgICAgICIwLjM4NDU0NSwgMC40MzY3MTgsIDAuOTA1MzM0LCAxLjY4NDksIDIuNDY1NTIsIDQuMjgyNzMsIDUuMzIxMTMiLCBcCi0gICAgICAgICAgIjAuNDA1NDUzLCAwLjQ1NzYxOSwgMC45MjYxNDYsIDEuNzA2MzIsIDIuNDg1NzMsIDQuMzAzNjEsIDUuMzQyMSIsIFwKLSAgICAgICAgICAiMC40MjMyNjMsIDAuNDc1NDg1LCAwLjk0NDAyMSwgMS43MjM2OSwgMi41MDQyNywgNC4zMjE3NSwgNS4zNTk5NyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC41Nzg5MjksIDAuNjgwNTU1LCAxLjU5NTkzLCAzLjExNzczLCA0LjY0MTY3LCA4LjE5NjkyLCAxMC4yMjMxIiwgXAotICAgICAgICAgICIwLjU3OTA5NSwgMC42ODA1NiwgMS41OTQ2NCwgMy4xMTkzNiwgNC42NDEyNywgOC4xOTc1OSwgMTAuMjIzMiIsIFwKLSAgICAgICAgICAiMC41NzkxMSwgMC42ODA2ODksIDEuNTk1NDIsIDMuMTE3NzMsIDQuNjQxNjcsIDguMTk2OTQsIDEwLjIyMzEiLCBcCi0gICAgICAgICAgIjAuNTc4OTg3LCAwLjY4MDYxNCwgMS41OTYwMiwgMy4xMTc3LCA0LjY0MTU4LCA4LjE5NTAzLCAxMC4yMjQyIiwgXAotICAgICAgICAgICIwLjU3OTQxMiwgMC42ODEwOCwgMS41OTYwMSwgMy4xMTk1MiwgNC42NDI1NywgOC4xOTcxNiwgMTAuMjI0MiIsIFwKLSAgICAgICAgICAiMC41NzkwMDYsIDAuNjgxMjU0LCAxLjU5NDcyLCAzLjExOTE5LCA0LjY0MTU0LCA4LjE5Njc0LCAxMC4yMjQyIiwgXAotICAgICAgICAgICIwLjU3OTU5OCwgMC42ODA3MjksIDEuNTk0NzUsIDMuMTE3NzksIDQuNjQyNTMsIDguMTk0MzMsIDEwLjIyMzIiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuNTY4NzMyLCAwLjY1ODAyOSwgMS40NTc5NCwgMi43ODg2MywgNC4xMTc0NSwgNy4yMTc0NywgOC45ODg3OCIsIFwKLSAgICAgICAgICAiMC41ODA0ODIsIDAuNjY5NDg0LCAxLjQ2OTM1LCAyLjgwMDM1LCA0LjEyODk3LCA3LjIyOTEzLCA5LjAwMDQ1IiwgXAotICAgICAgICAgICIwLjU5Mzk5NiwgMC42ODMwNjEsIDEuNDgyOTcsIDIuODE0MDQsIDQuMTQyNjgsIDcuMjQyNzcsIDkuMDE0MDQiLCBcCi0gICAgICAgICAgIjAuNjA2ODk4LCAwLjY5NTg3MywgMS40OTU3OCwgMi44MjYyNSwgNC4xNTU2MywgNy4yNTU3MiwgOS4wMjcwNCIsIFwKLSAgICAgICAgICAiMC42MTkyMjUsIDAuNzA4MzUyLCAxLjUwODY0LCAyLjgzOTM4LCA0LjE2ODIsIDcuMjY4MjQsIDkuMDM5NTUiLCBcCi0gICAgICAgICAgIjAuNjM4NjMyLCAwLjcyNzc2OCwgMS41Mjc3NCwgMi44NTkyOCwgNC4xODc4NywgNy4yODc2MywgOS4wNTkxMyIsIFwKLSAgICAgICAgICAiMC42NTUzNDMsIDAuNzQ0NTcsIDEuNTQ1MzIsIDIuODc2MTMsIDQuMjA0NzksIDcuMzA0NzMsIDkuMDc2MDciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuOTgyNDY0LCAxLjE0ODQxLCAyLjY0NTI1LCA1LjEzNzM3LCA3LjYyNjg3LCAxMy40MjU4LCAxNi43Mzk0IiwgXAotICAgICAgICAgICIwLjk4MjA2MywgMS4xNDg1MywgMi42NDUwOCwgNS4xMzY5OSwgNy42MjY4LCAxMy40MjU4LCAxNi43MzkyIiwgXAotICAgICAgICAgICIwLjk4MjAxNywgMS4xNDgzOCwgMi42NDUxNSwgNS4xMzY1LCA3LjYyNjQyLCAxMy40MjU4LCAxNi43MzkiLCBcCi0gICAgICAgICAgIjAuOTgyNDUyLCAxLjE0ODQyLCAyLjY0NDg5LCA1LjEzNjk3LCA3LjYyNjY4LCAxMy40MjU4LCAxNi43Mzk0IiwgXAotICAgICAgICAgICIwLjk4MjA3MSwgMS4xNDgzNywgMi42NDUxMiwgNS4xMzYxOSwgNy42MjU3NywgMTMuNDI1OCwgMTYuNzM5NCIsIFwKLSAgICAgICAgICAiMC45ODIxMjMsIDEuMTQ4ODUsIDIuNjQ0OCwgNS4xMzY2NCwgNy42MjY4NiwgMTMuNDI2LCAxNi43Mzk0IiwgXAotICAgICAgICAgICIwLjk4MjM5NywgMS4xNDg4NCwgMi42NDQzNiwgNS4xMzcwNywgNy42MjY4NiwgMTMuNDI2MSwgMTYuNzM5NCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzI0ODExLCAwLjM3Njg5NiwgMC44NDUwMDcsIDEuNjI1NDUsIDIuNDA0MDksIDQuMjIxOTIsIDUuMjYwMzciLCBcCi0gICAgICAgICAgIjAuMzM2NTY3LCAwLjM4ODYzOCwgMC44NTY4NzksIDEuNjM3MDIsIDIuNDE2OTQsIDQuMjMzODgsIDUuMjcyMjkiLCBcCi0gICAgICAgICAgIjAuMzUxNTc3LCAwLjQwMzY2MSwgMC44NzE4MzksIDEuNjUyMzIsIDIuNDMxOTYsIDQuMjQ4NjgsIDUuMjg3MTgiLCBcCi0gICAgICAgICAgIjAuMzY1NzA0LCAwLjQxNzgwNywgMC44ODU5NjcsIDEuNjY2NDksIDIuNDQ2MTIsIDQuMjYyOCwgNS4zMDEzMyIsIFwKLSAgICAgICAgICAiMC4zNzkzMjQsIDAuNDMxNDE4LCAwLjg5OTgwMywgMS42NzkzNSwgMi40NTkxNSwgNC4yNzY2OSwgNS4zMTQ5MiIsIFwKLSAgICAgICAgICAiMC40MDAxNTYsIDAuNDUyMjU3LCAwLjkyMDQ3MywgMS43MDEsIDIuNDgwMTgsIDQuMjk3MzEsIDUuMzM1ODUiLCBcCi0gICAgICAgICAgIjAuNDE4MjMsIDAuNDcwMzQ1LCAwLjkzODY0MywgMS43MTkxMiwgMi40OTgzNiwgNC4zMTU4NywgNS4zNTQwNSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC41NzMxMDUsIDAuNjc0ODUxLCAxLjU4OTg0LCAzLjExMjU1LCA0LjYzNTQ5LCA4LjE5MDQ1LCAxMC4yMTc2IiwgXAotICAgICAgICAgICIwLjU3MzE4MiwgMC42NzQ4MTcsIDEuNTg5MSwgMy4xMTI0MiwgNC42MzYxOSwgOC4xOTA3NCwgMTAuMjE1MyIsIFwKLSAgICAgICAgICAiMC41NzMyMjksIDAuNjc0ODQ5LCAxLjU4OTg2LCAzLjExMjI2LCA0LjYzNTA3LCA4LjE5MDQyLCAxMC4yMTc1IiwgXAotICAgICAgICAgICIwLjU3MzIzMywgMC42NzQ4NSwgMS41ODk4MywgMy4xMTIyOCwgNC42MzUxNCwgOC4xOTAzNywgMTAuMjE3NSIsIFwKLSAgICAgICAgICAiMC41NzM2MzUsIDAuNjc0ODQyLCAxLjU4ODgsIDMuMTEyNzksIDQuNjM1MTUsIDguMTkwNjEsIDEwLjIxNzQiLCBcCi0gICAgICAgICAgIjAuNTczMjI4LCAwLjY3NDg0LCAxLjU4OTc2LCAzLjExMjIxLCA0LjYzNjY4LCA4LjE5MDIzLCAxMC4yMTc0IiwgXAotICAgICAgICAgICIwLjU3MzI1NywgMC42NzQ4MzQsIDEuNTg4OTYsIDMuMTEyMjEsIDQuNjM2NTUsIDguMTg4NzgsIDEwLjIxNjkiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuNTYzNzA4LCAwLjY1Mjg5NCwgMS40NTI1NCwgMi43ODM1MSwgNC4xMTIyNiwgNy4yMTIzLCA4Ljk4MzU4IiwgXAotICAgICAgICAgICIwLjU3NDM1NiwgMC42NjM0NTUsIDEuNDYzODksIDIuNzk0NDIsIDQuMTIzMTMsIDcuMjIzMDksIDguOTk0MzUiLCBcCi0gICAgICAgICAgIjAuNTg3NTQ2LCAwLjY3Njg2NywgMS40NzY5MywgMi44MDc4LCA0LjEzNjI4LCA3LjIzNjQyLCA5LjAwNzc4IiwgXAotICAgICAgICAgICIwLjYwMDU5MiwgMC42ODk5MzcsIDEuNDkwNDQsIDIuODIwODEsIDQuMTQ5NjQsIDcuMjQ5NzEsIDkuMDIxMDMiLCBcCi0gICAgICAgICAgIjAuNjEzNzU3LCAwLjcwMzExNSwgMS41MDMzOSwgMi44MzQwOSwgNC4xNjI4NywgNy4yNjI4NCwgOS4wMzQxOCIsIFwKLSAgICAgICAgICAiMC42MzQ3MDIsIDAuNzIzOTY3LCAxLjUyNDY5LCAyLjg1NDUsIDQuMTgzODgsIDcuMjgzOTcsIDkuMDU1MzEiLCBcCi0gICAgICAgICAgIjAuNjUzMDQ5LCAwLjc0MjMyOSwgMS41NDIyMSwgMi44NzMzOSwgNC4yMDIxNCwgNy4zMDIzNywgOS4wNzM3MiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC45ODIxNjIsIDEuMTQ4MzEsIDIuNjQ1MjQsIDUuMTM3NDQsIDcuNjI3MDUsIDEzLjQyNTgsIDE2LjczOTQiLCBcCi0gICAgICAgICAgIjAuOTgyMDc4LCAxLjE0ODg3LCAyLjY0NTMxLCA1LjEzNjk0LCA3LjYyNTc1LCAxMy40MjYxLCAxNi43Mzk1IiwgXAotICAgICAgICAgICIwLjk4MjA3NiwgMS4xNDg1MiwgMi42NDQ4NywgNS4xMzcsIDcuNjI2NjUsIDEzLjQyNTgsIDE2LjczODciLCBcCi0gICAgICAgICAgIjAuOTgyMTM5LCAxLjE0ODgzLCAyLjY0NDY3LCA1LjEzNzIsIDcuNjI1MDQsIDEzLjQyNTksIDE2LjczOTQiLCBcCi0gICAgICAgICAgIjAuOTgyNDQ5LCAxLjE0ODUsIDIuNjQ1MywgNS4xMzcxMiwgNy42MjY3NCwgMTMuNDI2MSwgMTYuNzM5NCIsIFwKLSAgICAgICAgICAiMC45ODIzNTQsIDEuMTQ4MzgsIDIuNjQ1MzEsIDUuMTM2NzYsIDcuNjI2MzgsIDEzLjQyNTgsIDE2LjczOTQiLCBcCi0gICAgICAgICAgIjAuOTgyMiwgMS4xNDg2LCAyLjY0NTA2LCA1LjEzNjI4LCA3LjYyNjYxLCAxMy40MjU5LCAxNi43Mzk0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEyIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMTgyMjMsIDAuMzcwMjMxLCAwLjgzODA5OCwgMS42MTgzOSwgMi4zOTY4OSwgNC4yMTQ3MiwgNS4yNTMxNCIsIFwKLSAgICAgICAgICAiMC4zMzAxMTUsIDAuMzgyMTI2LCAwLjg1MDEwMywgMS42MzAxMiwgMi40MDk5OSwgNC4yMjY4NCwgNS4yNjUyMyIsIFwKLSAgICAgICAgICAiMC4zNDUwNzIsIDAuMzk3MDgsIDAuODY0ODU0LCAxLjY0NTE2LCAyLjQyMzgyLCA0LjI0MTcsIDUuMjgwMTQiLCBcCi0gICAgICAgICAgIjAuMzU5MzE0LCAwLjQxMTM3NCwgMC44NzkzMTYsIDEuNjU5NiwgMi40Mzg4MSwgNC4yNTU4NSwgNS4yOTQzNSIsIFwKLSAgICAgICAgICAiMC4zNzI5MTIsIDAuNDI0OTgxLCAwLjg5Mjg4OCwgMS42NzMwMSwgMi40NTI2NiwgNC4yNjk2MiwgNS4zMDgwNCIsIFwKLSAgICAgICAgICAiMC4zOTM3ODcsIDAuNDQ1NzgyLCAwLjkxMzY2NSwgMS42OTM1OCwgMi40NzMwNywgNC4yOTA1NiwgNS4zMjg5OCIsIFwKLSAgICAgICAgICAiMC40MTE1MywgMC40NjM2NjQsIDAuOTMxNjkyLCAxLjcxMjAyLCAyLjQ5MTM2LCA0LjMwODcsIDUuMzQ2ODciKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuNTY2MDk1LCAwLjY2ODE5LCAxLjU4MjMxLCAzLjEwNDQ4LCA0LjYyNzkxLCA4LjE4MjE1LCAxMC4yMDkyIiwgXAotICAgICAgICAgICIwLjU2NjE0MiwgMC42Njc1ODIsIDEuNTgxNjUsIDMuMTA0NzEsIDQuNjI4NjcsIDguMTgyNDgsIDEwLjIwNzMiLCBcCi0gICAgICAgICAgIjAuNTY2MDk5LCAwLjY2NzYzNiwgMS41ODEwMiwgMy4xMDUyNiwgNC42Mjc5MywgOC4xODIyNCwgMTAuMjA4MiIsIFwKLSAgICAgICAgICAiMC41NjYwNzIsIDAuNjY3NTQxLCAxLjU4MjMxLCAzLjEwNDUxLCA0LjYyNzE5LCA4LjE4MDM5LCAxMC4yMDkxIiwgXAotICAgICAgICAgICIwLjU2NjA4NywgMC42Njc2MDksIDEuNTgyMjIsIDMuMTA1MjQsIDQuNjI3MTgsIDguMTgyMTIsIDEwLjIwOTEiLCBcCi0gICAgICAgICAgIjAuNTY2MTM1LCAwLjY2NzQwOSwgMS41ODIwOSwgMy4xMDU3NiwgNC42MjcyNCwgOC4xODIxMiwgMTAuMjA5MSIsIFwKLSAgICAgICAgICAiMC41NjY2MDQsIDAuNjY3NTc2LCAxLjU4MTQzLCAzLjEwNDQ0LCA0LjYyOTE1LCA4LjE4MTM3LCAxMC4yMDgxIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjU1MTc0OCwgMC42NDA3MzQsIDEuNDQxMDksIDIuNzcxNzksIDQuMTAwNDMsIDcuMjAwMzQsIDguOTcxNjciLCBcCi0gICAgICAgICAgIjAuNTYxMjU5LCAwLjY1MDU1MywgMS40NTA1OSwgMi43ODEzMywgNC4xMTAwNCwgNy4yMTAwNSwgOC45ODEzNyIsIFwKLSAgICAgICAgICAiMC41NzM4MSwgMC42NjI3ODksIDEuNDYyNjMsIDIuNzkzNzEsIDQuMTIyNTEsIDcuMjIyNTUsIDguOTkzOSIsIFwKLSAgICAgICAgICAiMC41ODYxMzEsIDAuNjc1MjQ3LCAxLjQ3NTc1LCAyLjgwNjIyLCA0LjEzNTA0LCA3LjIzNTEsIDkuMDA2NDEiLCBcCi0gICAgICAgICAgIjAuNTk4NDkxLCAwLjY4Nzc2NiwgMS40ODgyNiwgMi44MTgxOSwgNC4xNDc2LCA3LjI0NzY5LCA5LjAxOTAyIiwgXAotICAgICAgICAgICIwLjYxODQ5MywgMC43MDc2NTcsIDEuNTA4LCAyLjgzODc0LCA0LjE2NzQ5LCA3LjI2Nzc3LCA5LjAzOTEiLCBcCi0gICAgICAgICAgIjAuNjM2MDQ1LCAwLjcyNTI2NCwgMS41MjU0MiwgMi44NTY3MSwgNC4xODU0MiwgNy4yODUzNiwgOS4wNTY3MSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC45ODIwMzgsIDEuMTQ4ODEsIDIuNjQ1MjUsIDUuMTM3MDQsIDcuNjI2NTQsIDEzLjQyNiwgMTYuNzM5NCIsIFwKLSAgICAgICAgICAiMC45ODIwNjYsIDEuMTQ4ODEsIDIuNjQ0NzEsIDUuMTM2NjksIDcuNjI2NjcsIDEzLjQyNTgsIDE2LjczOTIiLCBcCi0gICAgICAgICAgIjAuOTgyMzI4LCAxLjE0ODU4LCAyLjY0NTEyLCA1LjEzNjcxLCA3LjYyNjg0LCAxMy40MjU4LCAxNi43Mzk0IiwgXAotICAgICAgICAgICIwLjk4MjE5OCwgMS4xNDg4NiwgMi42NDQzOCwgNS4xMzY4OCwgNy42MjUyLCAxMy40MjU4LCAxNi43Mzg3IiwgXAotICAgICAgICAgICIwLjk4MjA4NiwgMS4xNDgzNywgMi42NDUyMSwgNS4xMzY3MiwgNy42MjY0MywgMTMuNDI1NywgMTYuNzM5NCIsIFwKLSAgICAgICAgICAiMC45ODIyNTEsIDEuMTQ4NjUsIDIuNjQ1MzksIDUuMTM2MzQsIDcuNjI2NDksIDEzLjQyNTgsIDE2LjczOTQiLCBcCi0gICAgICAgICAgIjAuOTgxOTQ5LCAxLjE0ODM5LCAyLjY0NTMyLCA1LjEzNTY0LCA3LjYyMzg3LCAxMy40MjYxLCAxNi43Mzk0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMDIyMDYsIDAuMzU0MzQxLCAwLjgyMjkzNCwgMS42MDI1MSwgMi4zODMxMSwgNC4yMDA0MywgNS4yMzg3NSIsIFwKLSAgICAgICAgICAiMC4zMTI2NzUsIDAuMzY0ODY0LCAwLjgzMzM1OSwgMS42MTM1NSwgMi4zOTI1NywgNC4yMTA3LCA1LjI0OTI4IiwgXAotICAgICAgICAgICIwLjMyNTczNSwgMC4zNzc5MDMsIDAuODQ2NDk2LCAxLjYyNjExLCAyLjQwNjYxLCA0LjIyMzg1LCA1LjI2MjM1IiwgXAotICAgICAgICAgICIwLjMzODgzLCAwLjM5MDk2NywgMC44NTk1MjQsIDEuNjM5MjUsIDIuNDE5NTcsIDQuMjM2OTEsIDUuMjc1NDUiLCBcCi0gICAgICAgICAgIjAuMzUxODk2LCAwLjQwNDA3LCAwLjg3Mjc1LCAxLjY1MjUsIDIuNDMyOTIsIDQuMjUwMjgsIDUuMjg4NTUiLCBcCi0gICAgICAgICAgIjAuMzcyODQzLCAwLjQyNDU5MSwgMC44OTM3MDYsIDEuNjczNTEsIDIuNDUzNiwgNC4yNzEyNSwgNS4zMDk1OCIsIFwKLSAgICAgICAgICAiMC4zOTExOTUsIDAuNDQzMzg2LCAwLjkxMjA1LCAxLjY5MTY1LCAyLjQ3MTIxLCA0LjI4OTYsIDUuMzI3OSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC41NzkyNzksIDAuNjgxMzg5LCAxLjU5NiwgMy4xMTc4MiwgNC42NDI1OCwgOC4xOTczOSwgMTAuMjI0MiIsIFwKLSAgICAgICAgICAiMC41Nzk1OSwgMC42ODA1NDUsIDEuNTk0NzQsIDMuMTE4NTQsIDQuNjQyNzYsIDguMTk1MTksIDEwLjIyNDMiLCBcCi0gICAgICAgICAgIjAuNTc5MDkxLCAwLjY4MTI2NSwgMS41OTUxLCAzLjExNzY5LCA0LjY0MjQ2LCA4LjE5Njc1LCAxMC4yMjQyIiwgXAotICAgICAgICAgICIwLjU3OTAzNiwgMC42ODEyNzUsIDEuNTk0NzIsIDMuMTE3NzEsIDQuNjQyLCA4LjE5NTU2LCAxMC4yMjQyIiwgXAotICAgICAgICAgICIwLjU3ODcxOCwgMC42ODEyMjEsIDEuNTk1MTcsIDMuMTE4MjgsIDQuNjQxMzQsIDguMTk3MzgsIDEwLjIyMzEiLCBcCi0gICAgICAgICAgIjAuNTc4ODM4LCAwLjY4MDMxNywgMS41OTQ5NCwgMy4xMTgyOSwgNC42NDIyOSwgOC4xOTczMywgMTAuMjI0MiIsIFwKLSAgICAgICAgICAiMC41ODA0NTksIDAuNjgwNTY5LCAxLjU5NTM5LCAzLjExNzg2LCA0LjY0Mjc4LCA4LjE5NzI0LCAxMC4yMjQiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzMzNzE5LCAwLjM5Mjc4MywgMC45MjM5NTksIDEuODA4NTYsIDIuNjkzNSwgNC43NTc3NiwgNS45MzY5NiIsIFwKLSAgICAgICAgICAiMC4zNDYxNTEsIDAuNDA1MDA3LCAwLjkzNjA5LCAxLjgyMTU2LCAyLjcwNTc3LCA0Ljc3MDAzLCA1Ljk0OTM2IiwgXAotICAgICAgICAgICIwLjM2MDA2LCAwLjQxOTIyNywgMC45NTAwNzQsIDEuODM1OTcsIDIuNzE5OTQsIDQuNzg0MywgNS45NjM1NyIsIFwKLSAgICAgICAgICAiMC4zNzM4MDEsIDAuNDMzMDM0LCAwLjk2NDA3MywgMS44NDkxOCwgMi43MzM1OCwgNC43OTgxNCwgNS45Nzc1NSIsIFwKLSAgICAgICAgICAiMC4zODc3MzEsIDAuNDQ2ODI0LCAwLjk3ODI4OSwgMS44NjMxNiwgMi43NDc2OCwgNC44MTIxNiwgNS45OTE1NyIsIFwKLSAgICAgICAgICAiMC40MDk2MjksIDAuNDY4NTc1LCAwLjk5OTg1OCwgMS44ODUyOCwgMi43Njk5NCwgNC44MzQyNiwgNi4wMTM3IiwgXAotICAgICAgICAgICIwLjQyODQzMywgMC40ODgwMjYsIDEuMDE5MjksIDEuOTA1MDQsIDIuNzg5MTMsIDQuODUzNzEsIDYuMDMyOTIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuNjM3ODAxLCAwLjc0OTc0OCwgMS43NTc5NSwgMy40NDAxMiwgNS4xMjQyMiwgOS4wNDc1MywgMTEuMjkwMiIsIFwKLSAgICAgICAgICAiMC42Mzc4ODEsIDAuNzQ5NjY1LCAxLjc1Nzk4LCAzLjQ0MDQ3LCA1LjEyMzQzLCA5LjA0OTkzLCAxMS4yODk5IiwgXAotICAgICAgICAgICIwLjYzNzc3NCwgMC43NDk3OTMsIDEuNzU3OTEsIDMuNDQwMTQsIDUuMTIyMzMsIDkuMDQ4ODMsIDExLjI4OTQiLCBcCi0gICAgICAgICAgIjAuNjM3NjkyLCAwLjc0OTc2MSwgMS43NTc5MiwgMy40NDA0OSwgNS4xMjMyMywgOS4wNDk3MywgMTEuMjg5IiwgXAotICAgICAgICAgICIwLjYzNzcwMSwgMC43NDk2MzgsIDEuNzU3OSwgMy40NDA0OCwgNS4xMjMzNywgOS4wNDk3MiwgMTEuMjkwMiIsIFwKLSAgICAgICAgICAiMC42Mzc3NTksIDAuNzQ5NTg2LCAxLjc1Nzk5LCAzLjQzOTg5LCA1LjEyMzA4LCA5LjA0OTA1LCAxMS4yOTAxIiwgXAotICAgICAgICAgICIwLjYzNzk1MiwgMC43NDk2MzEsIDEuNzU4MDUsIDMuNDQwMzEsIDUuMTIzMzYsIDkuMDQ5NzcsIDExLjI5MDIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI5NjMyOCwgMC4zNDg0ODEsIDAuODE2ODU3LCAxLjU5NjMyLCAyLjM3NjM4LCA0LjE5NDA3LCA1LjIzMjM2IiwgXAotICAgICAgICAgICIwLjMwNzI1OCwgMC4zNTkzOTQsIDAuODI3NjQ4LCAxLjYwNzMzLCAyLjM4NjgzLCA0LjIwNTE4LCA1LjI0MzM4IiwgXAotICAgICAgICAgICIwLjMyMDEzNSwgMC4zNzIyNjksIDAuODQwNjkyLCAxLjYyMDE5LCAyLjQwMDc1LCA0LjIxNzczLCA1LjI1NjI3IiwgXAotICAgICAgICAgICIwLjMzMzIxMiwgMC4zODUzNjUsIDAuODUzNzM2LCAxLjYzMzM1LCAyLjQxMzYxLCA0LjIzMDg1LCA1LjI2OTM2IiwgXAotICAgICAgICAgICIwLjM0NjI1OCwgMC4zOTg0MjQsIDAuODY2OTU0LCAxLjY0NjYyLCAyLjQyNjk1LCA0LjI0NDI0LCA1LjI4MjQiLCBcCi0gICAgICAgICAgIjAuMzY3MTcxLCAwLjQxOTMzMiwgMC44ODc4NzgsIDEuNjY3NiwgMi40NDY3NSwgNC4yNjUxNiwgNS4zMDM0OSIsIFwKLSAgICAgICAgICAiMC4zODU0ODQsIDAuNDM3NjUsIDAuOTA2MjEyLCAxLjY4NTczLCAyLjQ2NTI1LCA0LjI4MzU0LCA1LjMyMTgxIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjU3Mjc2NCwgMC42NzQ2ODQsIDEuNTg5NTYsIDMuMTEwNTEsIDQuNjMzOTcsIDguMTg3MjEsIDEwLjIxNjciLCBcCi0gICAgICAgICAgIjAuNTczMTk5LCAwLjY3NDY3NSwgMS41ODk3MSwgMy4xMTEyNCwgNC42MzM5NCwgOC4xOTAzMSwgMTAuMjE1NyIsIFwKLSAgICAgICAgICAiMC41NzI2NjEsIDAuNjc0OTMxLCAxLjU4ODQzLCAzLjExMDQyLCA0LjYzNTMzLCA4LjE4OTIsIDEwLjIxNjciLCBcCi0gICAgICAgICAgIjAuNTcyNzg4LCAwLjY3NDQyNSwgMS41ODg0LCAzLjExMDY5LCA0LjYzNDY2LCA4LjE4OTQ5LCAxMC4yMTY2IiwgXAotICAgICAgICAgICIwLjU3MzAxOSwgMC42NzQzNzQsIDEuNTg4MTcsIDMuMTExMjYsIDQuNjMzNzYsIDguMTkwMTMsIDEwLjIxNjUiLCBcCi0gICAgICAgICAgIjAuNTcyMzIyLCAwLjY3Mzk1MSwgMS41ODg1OCwgMy4xMTEyOCwgNC42MzI4OSwgOC4xOTAwNCwgMTAuMjE2NiIsIFwKLSAgICAgICAgICAiMC41NzQxMjEsIDAuNjc0ODM3LCAxLjU4ODQ5LCAzLjExMDM5LCA0LjYzNTg3LCA4LjE5MDAzLCAxMC4yMTU2Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMyODQ2OCwgMC4zODc2MTQsIDAuOTE4NDY0LCAxLjgwMzQsIDIuNjg3OTcsIDQuNzUyNDYsIDUuOTMxODYiLCBcCi0gICAgICAgICAgIjAuMzM5NDIyLCAwLjM5ODYxMywgMC45Mjk4OTYsIDEuODE0NzksIDIuNjk5MjQsIDQuNzYzNTIsIDUuOTQyOTMiLCBcCi0gICAgICAgICAgIjAuMzUzMTAzLCAwLjQxMjEzNiwgMC45NDM2MTQsIDEuODI4NTksIDIuNzEyOTIsIDQuNzc3MTQsIDUuOTU2NiIsIFwKLSAgICAgICAgICAiMC4zNjY0MDksIDAuNDI1NjUzLCAwLjk1NjY1MiwgMS44NDE5NCwgMi43MjYxOCwgNC43OTA3NCwgNS45NzAxNSIsIFwKLSAgICAgICAgICAiMC4zODA1NjYsIDAuNDM5NTM0LCAwLjk3MTE3MSwgMS44NTYxNSwgMi43NDAzMSwgNC44MDQ5MSwgNS45ODQzMiIsIFwKLSAgICAgICAgICAiMC40MDEzNzcsIDAuNDYwNTYyLCAwLjk5MTc3OCwgMS44NzcwMiwgMi43NjE1MywgNC44MjU5MiwgNi4wMDUzOSIsIFwKLSAgICAgICAgICAiMC40MjAyOTQsIDAuNDc5NDg5LCAxLjAxMDc2LCAxLjg5NTY4LCAyLjc4MDc3LCA0Ljg0NTA1LCA2LjAyNDI2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjYzNzY4NiwgMC43NDk2ODgsIDEuNzU3OTIsIDMuNDQwMDgsIDUuMTIzMSwgOS4wNDc1MiwgMTEuMjkiLCBcCi0gICAgICAgICAgIjAuNjM3Njk3LCAwLjc0OTc1NSwgMS43NTg0MywgMy40NDAyMSwgNS4xMjI2MywgOS4wNDg3OCwgMTEuMjg5NiIsIFwKLSAgICAgICAgICAiMC42Mzc3NjgsIDAuNzQ5NzQxLCAxLjc1ODMxLCAzLjQzOTg0LCA1LjEyNDU1LCA5LjA0OTY0LCAxMS4yODkiLCBcCi0gICAgICAgICAgIjAuNjM3Njk4LCAwLjc0OTcyOSwgMS43NTc5NCwgMy40NDAyLCA1LjEyNDMsIDkuMDQ4MDQsIDExLjI4OTQiLCBcCi0gICAgICAgICAgIjAuNjM3NzUzLCAwLjc0OTYyMSwgMS43NTgyMSwgMy40NDA3MSwgNS4xMjI2MiwgOS4wNDk3MywgMTEuMjg5IiwgXAotICAgICAgICAgICIwLjYzNzY4NSwgMC43NDk3MDUsIDEuNzU4MjEsIDMuNDQwMTksIDUuMTIyNjQsIDkuMDQ4MDUsIDExLjI5MDEiLCBcCi0gICAgICAgICAgIjAuNjM4NDg3LCAwLjc0OTY2OSwgMS43NTgwMiwgMy40NDAyMywgNS4xMjUsIDkuMDUwMDEsIDExLjI4OTciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyMDk2LCAwLjAwMjA5NiwgMC4wMDIwOTYsIDAuMDAyMDk0LCAwLjAwMjA5MywgMC4wMDIwOSwgMC4wMDIwODciLCBcCi0gICAgICAgICAgIjAuMDAyMDkyLCAwLjAwMjA5MSwgMC4wMDIwOTEsIDAuMDAyMDksIDAuMDAyMDg4LCAwLjAwMjA4NCwgMC4wMDIwODIiLCBcCi0gICAgICAgICAgIjAuMDAyMDksIDAuMDAyMDksIDAuMDAyMDksIDAuMDAyMDg5LCAwLjAwMjA4NiwgMC4wMDIwODQsIDAuMDAyMDgxIiwgXAotICAgICAgICAgICIwLjAwMjA4OSwgMC4wMDIwODksIDAuMDAyMDg5LCAwLjAwMjA4OCwgMC4wMDIwODcsIDAuMDAyMDgzLCAwLjAwMjA4MSIsIFwKLSAgICAgICAgICAiMC4wMDIwODgsIDAuMDAyMDg4LCAwLjAwMjA4OCwgMC4wMDIwODcsIDAuMDAyMDg2LCAwLjAwMjA4MiwgMC4wMDIwOCIsIFwKLSAgICAgICAgICAiMC4wMDIwODgsIDAuMDAyMDg4LCAwLjAwMjA4OSwgMC4wMDIwODcsIDAuMDAyMDg2LCAwLjAwMjA4MiwgMC4wMDIwOCIsIFwKLSAgICAgICAgICAiMC4wMDIwODcsIDAuMDAyMDg4LCAwLjAwMjA4OCwgMC4wMDIwODcsIDAuMDAyMDg2LCAwLjAwMjA4MywgMC4wMDIwOCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDg1MiwgMC4wMDA4NTIsIDAuMDAwODUxLCAwLjAwMDg0OSwgMC4wMDA4NDYsIDAuMDAwODQsIDAuMDAwODM2IiwgXAotICAgICAgICAgICIwLjAwMDg0NiwgMC4wMDA4NDcsIDAuMDAwODQ2LCAwLjAwMDg0NCwgMC4wMDA4NDEsIDAuMDAwODM1LCAwLjAwMDgzMSIsIFwKLSAgICAgICAgICAiMC4wMDA4NDQsIDAuMDAwODQ0LCAwLjAwMDg0NCwgMC4wMDA4NDIsIDAuMDAwODQsIDAuMDAwODM0LCAwLjAwMDgzIiwgXAotICAgICAgICAgICIwLjAwMDg0MiwgMC4wMDA4NDIsIDAuMDAwODQzLCAwLjAwMDg0MSwgMC4wMDA4MzksIDAuMDAwODMzLCAwLjAwMDgyOSIsIFwKLSAgICAgICAgICAiMC4wMDA4NCwgMC4wMDA4NCwgMC4wMDA4NDIsIDAuMDAwODQxLCAwLjAwMDgzOSwgMC4wMDA4MzMsIDAuMDAwODI5IiwgXAotICAgICAgICAgICIwLjAwMDgzNywgMC4wMDA4MzgsIDAuMDAwODQxLCAwLjAwMDg0LCAwLjAwMDgzOCwgMC4wMDA4MzIsIDAuMDAwODI4IiwgXAotICAgICAgICAgICIwLjAwMDgzNSwgMC4wMDA4MzYsIDAuMDAwODQsIDAuMDAwODM5LCAwLjAwMDgzNywgMC4wMDA4MzIsIDAuMDAwODI4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTkxLCAwLjAwMTkxLCAwLjAwMTkxLCAwLjAwMTkwOSwgMC4wMDE5MDgsIDAuMDAxOTA1LCAwLjAwMTkwMyIsIFwKLSAgICAgICAgICAiMC4wMDE5MSwgMC4wMDE5MDksIDAuMDAxOTA5LCAwLjAwMTkwNywgMC4wMDE5MTEsIDAuMDAxOTA0LCAwLjAwMTkwMiIsIFwKLSAgICAgICAgICAiMC4wMDE5MDksIDAuMDAxOTA5LCAwLjAwMTkwOSwgMC4wMDE5MSwgMC4wMDE5MDcsIDAuMDAxOTA1LCAwLjAwMTkwMyIsIFwKLSAgICAgICAgICAiMC4wMDE5MDgsIDAuMDAxOTA5LCAwLjAwMTkwOSwgMC4wMDE5MDgsIDAuMDAxOTA5LCAwLjAwMTkwNiwgMC4wMDE5MDMiLCBcCi0gICAgICAgICAgIjAuMDAxOTA3LCAwLjAwMTkwNywgMC4wMDE5MDksIDAuMDAxOTA5LCAwLjAwMTkwOCwgMC4wMDE5MDUsIDAuMDAxOTAzIiwgXAotICAgICAgICAgICIwLjAwMTkwNiwgMC4wMDE5MDYsIDAuMDAxOTA4LCAwLjAwMTkwOCwgMC4wMDE5MDcsIDAuMDAxOTA1LCAwLjAwMTkwMyIsIFwKLSAgICAgICAgICAiMC4wMDE5MDQsIDAuMDAxOTA1LCAwLjAwMTkwOCwgMC4wMDE5MDgsIDAuMDAxOTA3LCAwLjAwMTkwNSwgMC4wMDE5MDMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDA4NTIsIDAuMDAwODUyLCAwLjAwMDg1MSwgMC4wMDA4NDksIDAuMDAwODQ2LCAwLjAwMDg0LCAwLjAwMDgzNiIsIFwKLSAgICAgICAgICAiMC4wMDA4NDcsIDAuMDAwODQ3LCAwLjAwMDg0NiwgMC4wMDA4NDQsIDAuMDAwODQzLCAwLjAwMDgzNSwgMC4wMDA4MzEiLCBcCi0gICAgICAgICAgIjAuMDAwODQ0LCAwLjAwMDg0NCwgMC4wMDA4NDQsIDAuMDAwODQyLCAwLjAwMDg0LCAwLjAwMDgzNCwgMC4wMDA4MjkiLCBcCi0gICAgICAgICAgIjAuMDAwODQyLCAwLjAwMDg0MiwgMC4wMDA4NDIsIDAuMDAwODQyLCAwLjAwMDgzOSwgMC4wMDA4MzMsIDAuMDAwODI5IiwgXAotICAgICAgICAgICIwLjAwMDg0LCAwLjAwMDg0LCAwLjAwMDg0MiwgMC4wMDA4NDEsIDAuMDAwODM5LCAwLjAwMDgzMywgMC4wMDA4MjkiLCBcCi0gICAgICAgICAgIjAuMDAwODM3LCAwLjAwMDgzOCwgMC4wMDA4NDEsIDAuMDAwODQsIDAuMDAwODM4LCAwLjAwMDgzMiwgMC4wMDA4MjgiLCBcCi0gICAgICAgICAgIjAuMDAwODM1LCAwLjAwMDgzNiwgMC4wMDA4NCwgMC4wMDA4MzksIDAuMDAwODM4LCAwLjAwMDgzMiwgMC4wMDA4MjgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxNjksIDAuMDAxNjkxLCAwLjAwMTY5LCAwLjAwMTY5LCAwLjAwMTY4OSwgMC4wMDE2ODgsIDAuMDAxNjg4IiwgXAotICAgICAgICAgICIwLjAwMTY5NSwgMC4wMDE2OTUsIDAuMDAxNjk1LCAwLjAwMTY5MywgMC4wMDE2OTksIDAuMDAxNjkzLCAwLjAwMTY4OSIsIFwKLSAgICAgICAgICAiMC4wMDE2OTUsIDAuMDAxNjk1LCAwLjAwMTY5NywgMC4wMDE2OTYsIDAuMDAxNjk1LCAwLjAwMTY5NiwgMC4wMDE2OTUiLCBcCi0gICAgICAgICAgIjAuMDAxNjk0LCAwLjAwMTY5NCwgMC4wMDE2OTYsIDAuMDAxNjk2LCAwLjAwMTY5NywgMC4wMDE2OTUsIDAuMDAxNjk0IiwgXAotICAgICAgICAgICIwLjAwMTY5MiwgMC4wMDE2OTMsIDAuMDAxNjk1LCAwLjAwMTY5NiwgMC4wMDE2OTUsIDAuMDAxNjk1LCAwLjAwMTY5NCIsIFwKLSAgICAgICAgICAiMC4wMDE2OTEsIDAuMDAxNjkyLCAwLjAwMTY5NSwgMC4wMDE2OTYsIDAuMDAxNjk2LCAwLjAwMTY5NSwgMC4wMDE2OTQiLCBcCi0gICAgICAgICAgIjAuMDAxNjg4LCAwLjAwMTY5MSwgMC4wMDE2OTUsIDAuMDAxNjk2LCAwLjAwMTY5NiwgMC4wMDE2OTUsIDAuMDAxNjk0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwODUzLCAwLjAwMDg1MywgMC4wMDA4NTEsIDAuMDAwODQ5LCAwLjAwMDg0NywgMC4wMDA4NDEsIDAuMDAwODM1IiwgXAotICAgICAgICAgICIwLjAwMDg0NywgMC4wMDA4NDcsIDAuMDAwODQ2LCAwLjAwMDg0MywgMC4wMDA4NDIsIDAuMDAwODM1LCAwLjAwMDgzMSIsIFwKLSAgICAgICAgICAiMC4wMDA4NDMsIDAuMDAwODQzLCAwLjAwMDg0NCwgMC4wMDA4NDMsIDAuMDAwODQsIDAuMDAwODM0LCAwLjAwMDgyOSIsIFwKLSAgICAgICAgICAiMC4wMDA4NCwgMC4wMDA4NDEsIDAuMDAwODQyLCAwLjAwMDg0MSwgMC4wMDA4MzksIDAuMDAwODMzLCAwLjAwMDgyOSIsIFwKLSAgICAgICAgICAiMC4wMDA4MzgsIDAuMDAwODM5LCAwLjAwMDg0MSwgMC4wMDA4NCwgMC4wMDA4MzksIDAuMDAwODMzLCAwLjAwMDgyOCIsIFwKLSAgICAgICAgICAiMC4wMDA4MzYsIDAuMDAwODM3LCAwLjAwMDg0LCAwLjAwMDgzOSwgMC4wMDA4MzgsIDAuMDAwODMyLCAwLjAwMDgyOCIsIFwKLSAgICAgICAgICAiMC4wMDA4MzQsIDAuMDAwODM1LCAwLjAwMDgzOSwgMC4wMDA4MzksIDAuMDAwODM3LCAwLjAwMDgzMSwgMC4wMDA4MjgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxNTI3LCAwLjAwMTUyNywgMC4wMDE1MjYsIDAuMDAxNTI1LCAwLjAwMTUyMywgMC4wMDE1MTksIDAuMDAxNTE2IiwgXAotICAgICAgICAgICIwLjAwMTUyMywgMC4wMDE1MjIsIDAuMDAxNTIyLCAwLjAwMTUyMiwgMC4wMDE1MiwgMC4wMDE1MTcsIDAuMDAxNTE0IiwgXAotICAgICAgICAgICIwLjAwMTUyMSwgMC4wMDE1MjEsIDAuMDAxNTIyLCAwLjAwMTUyLCAwLjAwMTUxOSwgMC4wMDE1MTYsIDAuMDAxNTEzIiwgXAotICAgICAgICAgICIwLjAwMTUyLCAwLjAwMTUyLCAwLjAwMTUyMSwgMC4wMDE1MiwgMC4wMDE1MTksIDAuMDAxNTE1LCAwLjAwMTUxMiIsIFwKLSAgICAgICAgICAiMC4wMDE1MTgsIDAuMDAxNTE5LCAwLjAwMTUyLCAwLjAwMTUyLCAwLjAwMTUxOCwgMC4wMDE1MTUsIDAuMDAxNTEzIiwgXAotICAgICAgICAgICIwLjAwMTUxNywgMC4wMDE1MTYsIDAuMDAxNTE5LCAwLjAwMTUxOSwgMC4wMDE1MTgsIDAuMDAxNTE1LCAwLjAwMTUxMiIsIFwKLSAgICAgICAgICAiMC4wMDE1MTYsIDAuMDAxNTE2LCAwLjAwMTUxOSwgMC4wMDE1MTksIDAuMDAxNTE4LCAwLjAwMTUxNSwgMC4wMDE1MTIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDAyMTYsIDAuMDAwMjE2LCAwLjAwMDIxNywgMC4wMDAyMTcsIDAuMDAwMjE3LCAwLjAwMDIxNywgMC4wMDAyMTgiLCBcCi0gICAgICAgICAgIjAuMDAwMjIxLCAwLjAwMDIyMSwgMC4wMDAyMjMsIDAuMDAwMjIzLCAwLjAwMDIyNCwgMC4wMDAyMjQsIDAuMDAwMjI0IiwgXAotICAgICAgICAgICIwLjAwMDIyLCAwLjAwMDIyMSwgMC4wMDAyMjQsIDAuMDAwMjI2LCAwLjAwMDIyNiwgMC4wMDAyMjYsIDAuMDAwMjI2IiwgXAotICAgICAgICAgICIwLjAwMDIxOCwgMC4wMDAyMiwgMC4wMDAyMjUsIDAuMDAwMjI2LCAwLjAwMDIyNywgMC4wMDAyMjcsIDAuMDAwMjI3IiwgXAotICAgICAgICAgICIwLjAwMDIxNiwgMC4wMDAyMTgsIDAuMDAwMjI0LCAwLjAwMDIyNiwgMC4wMDAyMjcsIDAuMDAwMjI4LCAwLjAwMDIyOCIsIFwKLSAgICAgICAgICAiMC4wMDAyMTMsIDAuMDAwMjE1LCAwLjAwMDIyMywgMC4wMDAyMjYsIDAuMDAwMjI3LCAwLjAwMDIyOCwgMC4wMDAyMjgiLCBcCi0gICAgICAgICAgIjAuMDAwMjEsIDAuMDAwMjEyLCAwLjAwMDIyMSwgMC4wMDAyMjUsIDAuMDAwMjI2LCAwLjAwMDIyOCwgMC4wMDAyMjgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxMzM2LCAwLjAwMTMzNiwgMC4wMDEzMzYsIDAuMDAxMzM1LCAwLjAwMTMzMywgMC4wMDEzMzIsIDAuMDAxMzI5IiwgXAotICAgICAgICAgICIwLjAwMTMzNywgMC4wMDEzMzcsIDAuMDAxMzM4LCAwLjAwMTMzOCwgMC4wMDEzMzcsIDAuMDAxMzM0LCAwLjAwMTMzMiIsIFwKLSAgICAgICAgICAiMC4wMDEzMzUsIDAuMDAxMzM2LCAwLjAwMTMzOCwgMC4wMDEzMzcsIDAuMDAxMzM3LCAwLjAwMTMzNCwgMC4wMDEzMzMiLCBcCi0gICAgICAgICAgIjAuMDAxMzMzLCAwLjAwMTMzNCwgMC4wMDEzMzcsIDAuMDAxMzM3LCAwLjAwMTMzNiwgMC4wMDEzMzQsIDAuMDAxMzMzIiwgXAotICAgICAgICAgICIwLjAwMTMzMiwgMC4wMDEzMzMsIDAuMDAxMzM2LCAwLjAwMTMzNywgMC4wMDEzMzYsIDAuMDAxMzM0LCAwLjAwMTMzMyIsIFwKLSAgICAgICAgICAiMC4wMDEzMjksIDAuMDAxMzMsIDAuMDAxMzM1LCAwLjAwMTMzNiwgMC4wMDEzMzUsIDAuMDAxMzM0LCAwLjAwMTMzMiIsIFwKLSAgICAgICAgICAiMC4wMDEzMjcsIDAuMDAxMzI4LCAwLjAwMTMzNCwgMC4wMDEzMzUsIDAuMDAxMzM1LCAwLjAwMTMzMywgMC4wMDEzMzIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDAyMTYsIDAuMDAwMjE2LCAwLjAwMDIxNiwgMC4wMDAyMTcsIDAuMDAwMjE3LCAwLjAwMDIxNywgMC4wMDAyMTciLCBcCi0gICAgICAgICAgIjAuMDAwMjIsIDAuMDAwMjIxLCAwLjAwMDIyMywgMC4wMDAyMjQsIDAuMDAwMjI0LCAwLjAwMDIyNCwgMC4wMDAyMjQiLCBcCi0gICAgICAgICAgIjAuMDAwMjIsIDAuMDAwMjIxLCAwLjAwMDIyNCwgMC4wMDAyMjYsIDAuMDAwMjI2LCAwLjAwMDIyNywgMC4wMDAyMjciLCBcCi0gICAgICAgICAgIjAuMDAwMjE3LCAwLjAwMDIxOSwgMC4wMDAyMjQsIDAuMDAwMjI2LCAwLjAwMDIyNywgMC4wMDAyMjcsIDAuMDAwMjI4IiwgXAotICAgICAgICAgICIwLjAwMDIxNSwgMC4wMDAyMTcsIDAuMDAwMjI0LCAwLjAwMDIyNiwgMC4wMDAyMjcsIDAuMDAwMjI4LCAwLjAwMDIyOCIsIFwKLSAgICAgICAgICAiMC4wMDAyMTEsIDAuMDAwMjE0LCAwLjAwMDIyMiwgMC4wMDAyMjYsIDAuMDAwMjI3LCAwLjAwMDIyOCwgMC4wMDAyMjgiLCBcCi0gICAgICAgICAgIjAuMDAwMjA5LCAwLjAwMDIxMSwgMC4wMDAyMjEsIDAuMDAwMjI1LCAwLjAwMDIyNiwgMC4wMDAyMjgsIDAuMDAwMjI4Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogQU9JMzNYMSAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChBT0kzM1gxKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMTQ0MDc2OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwODY4NTYzOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDg2NDYwMzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA4Njg1NjM7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzA2LCAwLjAwMDMwNiwgMC4wMDAzMDYsIDAuMDAwMzA2LCAwLjAwMDMwNiwgMC4wMDAzMDYsIDAuMDAwMzA2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzA2LCAwLjAwMDMwNywgMC4wMDAzMDcsIDAuMDAwMzA3LCAwLjAwMDMwNywgMC4wMDAzMDcsIDAuMDAwMzA3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihBMSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwODc1MDc4OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDg3MDY2NjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA4NzUwNzg7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzA2LCAwLjAwMDMwNiwgMC4wMDAzMDYsIDAuMDAwMzA2LCAwLjAwMDMwNSwgMC4wMDAzMDYsIDAuMDAwMzA2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzA3LCAwLjAwMDMwOCwgMC4wMDAzMDgsIDAuMDAwMzA4LCAwLjAwMDMwOCwgMC4wMDAzMDgsIDAuMDAwMzA4Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihBMikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwODYzNjU7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwODU2NDAzOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDg2MzY1OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDE1OCwgMC4wMDAxNTgsIDAuMDAwMTU3LCAwLjAwMDE1NywgMC4wMDAxNTcsIDAuMDAwMTU3LCAwLjAwMDE1NyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDM0NywgMC4wMDAzNDgsIDAuMDAwMzQ4LCAwLjAwMDM0OCwgMC4wMDAzNDgsIDAuMDAwMzQ4LCAwLjAwMDM0OCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQjApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDg5MTAwNDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA4OTEwMDQ7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwODg4MTA1OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDMwNiwgMC4wMDAzMDYsIDAuMDAwMzA2LCAwLjAwMDMwNiwgMC4wMDAzMDYsIDAuMDAwMzA2LCAwLjAwMDMwNiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDMwNiwgMC4wMDAzMDcsIDAuMDAwMzA3LCAwLjAwMDMwNywgMC4wMDAzMDcsIDAuMDAwMzA3LCAwLjAwMDMwNyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQjEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDg5MDc5OTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA4OTA3OTk7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwODg4NDMyOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDMwNiwgMC4wMDAzMDYsIDAuMDAwMzA2LCAwLjAwMDMwNiwgMC4wMDAzMDYsIDAuMDAwMzA2LCAwLjAwMDMwNiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDMwNywgMC4wMDAzMDcsIDAuMDAwMzA3LCAwLjAwMDMwOCwgMC4wMDAzMDgsIDAuMDAwMzA4LCAwLjAwMDMwOCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQjIpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDg4MTkwOTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA4ODEyNjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA4ODE5MDk7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMTUxLCAwLjAwMDE1MSwgMC4wMDAxNTEsIDAuMDAwMTUxLCAwLjAwMDE1MSwgMC4wMDAxNTEsIDAuMDAwMTUxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzQ3LCAwLjAwMDM0OCwgMC4wMDAzNDgsIDAuMDAwMzQ4LCAwLjAwMDM0OCwgMC4wMDAzNDgsIDAuMDAwMzQ4Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMDQxNjkzMzsKLSAgICBmdW5jdGlvbiA6ICIoISgoKEIwIEIxKSBCMikrKChBMCBBMSkgQTIpKSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMjMxNTgsIDAuMzEyODc2LCAwLjgxODQ4MSwgMS4yNjQxNiwgMS44NTcyNiwgMy4wNDQ2NCwgMy43ODU1OSIsIFwKLSAgICAgICAgICAiMC4yMzQ4MzksIDAuMzI0NTA4LCAwLjgzMDEwOCwgMS4yNzU0MSwgMS44NjkyMywgMy4wNTU5NSwgMy43OTcyNSIsIFwKLSAgICAgICAgICAiMC4yNDk2MzUsIDAuMzM5Mjk0LCAwLjg0NTExOCwgMS4yOTA2MSwgMS44ODQzLCAzLjA3MTI2LCAzLjgxMjA1IiwgXAotICAgICAgICAgICIwLjI2Mzc5NCwgMC4zNTM0OTcsIDAuODU5MjQyLCAxLjMwNDc4LCAxLjg5ODQ2LCAzLjA4NTM3LCAzLjgyNjQyIiwgXAotICAgICAgICAgICIwLjI3NzQwNiwgMC4zNjcwNTksIDAuODcyODI3LCAxLjMxODM1LCAxLjkxMTcyLCAzLjA5OTIsIDMuODM5ODUiLCBcCi0gICAgICAgICAgIjAuMjk4MjMzLCAwLjM4NzkyNywgMC44OTM2MzUsIDEuMzM5MTUsIDEuOTMzMDQsIDMuMTE5OTgsIDMuODYxMDMiLCBcCi0gICAgICAgICAgIjAuMzE2MDY1LCAwLjQwNTc0OCwgMC45MTE2NTMsIDEuMzU2ODUsIDEuOTUwODIsIDMuMTM3MzQsIDMuODc4NjgiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzY5NjksIDAuNTQzODk3LCAxLjUzMTMzLCAyLjQsIDMuNTU5LCA1Ljg4MjEyLCA3LjMzNTU0IiwgXAotICAgICAgICAgICIwLjM2OTc3NywgMC41NDQwMTksIDEuNTI5NzYsIDIuMzk5MzMsIDMuNTYxNDIsIDUuODg0MTksIDcuMzM1NzQiLCBcCi0gICAgICAgICAgIjAuMzY5ODk0LCAwLjU0NDIzNywgMS41MzE0NiwgMi40MDEzNCwgMy41NTk4OCwgNS44ODE2MywgNy4zMzIxIiwgXAotICAgICAgICAgICIwLjM2OTc5OSwgMC41NDM3NTQsIDEuNTMxNDMsIDIuNDAwMDIsIDMuNTU5ODcsIDUuODgxNjksIDcuMzMzMDMiLCBcCi0gICAgICAgICAgIjAuMzY5NjA0LCAwLjU0NDIyMiwgMS41MzEzMywgMi40MDE1OSwgMy41NTk3OCwgNS44ODIyOSwgNy4zMzU3NyIsIFwKLSAgICAgICAgICAiMC4zNjk5OTQsIDAuNTQ0MjczLCAxLjUyOTkxLCAyLjQwMTQ4LCAzLjU1OTgsIDUuODgxNywgNy4zMzI1NyIsIFwKLSAgICAgICAgICAiMC4zNzEwNzEsIDAuNTQ0NDI5LCAxLjUzMDM5LCAyLjM5OTcxLCAzLjU2MTU3LCA1Ljg4NDE4LCA3LjMzNTQ3Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjM3MjU5MSwgMC41MjA2NzgsIDEuMzU0MDcsIDIuMDg4MDQsIDMuMDY2NDUsIDUuMDIyMzMsIDYuMjQ0OCIsIFwKLSAgICAgICAgICAiMC4zODM4NzUsIDAuNTMyMDExLCAxLjM2NjIyLCAyLjEwMTU0LCAzLjA3OTUzLCA1LjAzNDcxLCA2LjI1NjciLCBcCi0gICAgICAgICAgIjAuMzk2NzIxLCAwLjU0NDc3MiwgMS4zNzg5NiwgMi4xMTM3MywgMy4wOTIxMiwgNS4wNDc2MywgNi4yNjk3NyIsIFwKLSAgICAgICAgICAiMC40MDg4NTQsIDAuNTU2OTM5LCAxLjM5MTQzLCAyLjEyNjc3LCAzLjEwNDI4LCA1LjA2MDExLCA2LjI4MjEyIiwgXAotICAgICAgICAgICIwLjQyMDY0OCwgMC41Njg5OTgsIDEuNDAzNTgsIDIuMTM4ODQsIDMuMTE2MzUsIDUuMDcyMDMsIDYuMjk0MDQiLCBcCi0gICAgICAgICAgIjAuNDM5MzQ5LCAwLjU4NzU1OSwgMS40MjIzLCAyLjE1NzEzLCAzLjEzNTIzLCA1LjA5MDg4LCA2LjMxMjk4IiwgXAotICAgICAgICAgICIwLjQ1NTQzMywgMC42MDQwNTcsIDEuNDM4ODMsIDIuMTczNTgsIDMuMTUxNjgsIDUuMTA3NTEsIDYuMzI5NDMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuNjI2NDU2LCAwLjkwMjI3LCAyLjQ2NDE0LCAzLjg0MTk4LCA1LjY3NTg3LCA5LjM0NTAxLCAxMS42NDIzIiwgXAotICAgICAgICAgICIwLjYyNjQ3NywgMC45MDIxNzIsIDIuNDY0MTIsIDMuODQyMDIsIDUuNjgwMywgOS4zNTA1OSwgMTEuNjQyNyIsIFwKLSAgICAgICAgICAiMC42MjY0MzQsIDAuOTAyMzM4LCAyLjQ2NDEsIDMuODQyODMsIDUuNjc4NDcsIDkuMzUwMTUsIDExLjY0MzMiLCBcCi0gICAgICAgICAgIjAuNjI2NDE0LCAwLjkwMjIzMSwgMi40NjQ0MSwgMy44NDMwNywgNS42NzgyNSwgOS4zNTAwOCwgMTEuNjQyNyIsIFwKLSAgICAgICAgICAiMC42MjY0NSwgMC45MDIzNzUsIDIuNDY0NDgsIDMuODQyOTYsIDUuNjgwMTEsIDkuMzUwOTQsIDExLjY0MzMiLCBcCi0gICAgICAgICAgIjAuNjI2NDIzLCAwLjkwMjMzOSwgMi40NjQzNiwgMy44NDIxNiwgNS42NzksIDkuMzUwNzMsIDExLjY0MjYiLCBcCi0gICAgICAgICAgIjAuNjI2NTUzLCAwLjkwMjI1MywgMi40NjQyNiwgMy44NDI5NiwgNS42NzgyNSwgOS4zNTA2OCwgMTEuNjQyNiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjE5Nzg2LCAwLjMwOTgwMiwgMC44MTc1OSwgMS4yNjU0NiwgMS44NjI4NiwgMy4wNTYyNSwgMy44MDE0OSIsIFwKLSAgICAgICAgICAiMC4yMzE2NzIsIDAuMzIxNjcyLCAwLjgyOTY5NywgMS4yNzc0NiwgMS44NzQ0NCwgMy4wNjg0MiwgMy44MTM0MSIsIFwKLSAgICAgICAgICAiMC4yNDY0OSwgMC4zMzY1NDEsIDAuODQ0NjY1LCAxLjI5MjcxLCAxLjg4OTEyLCAzLjA4Mjc1LCAzLjgyODIzIiwgXAotICAgICAgICAgICIwLjI2MDU2NSwgMC4zNTA2MDksIDAuODU4ODY1LCAxLjMwNjk5LCAxLjkwMzc4LCAzLjA5Njk1LCAzLjg0MjY5IiwgXAotICAgICAgICAgICIwLjI3NDEzNywgMC4zNjQxNTQsIDAuODcyNDI0LCAxLjMyMDM2LCAxLjkxNjk5LCAzLjExMTA5LCAzLjg1NTgxIiwgXAotICAgICAgICAgICIwLjI5NTI0MywgMC4zODUzMzIsIDAuODkzNTc1LCAxLjM0MTE2LCAxLjkzODU2LCAzLjEzMjI4LCAzLjg3NzE1IiwgXAotICAgICAgICAgICIwLjMxMjk0OSwgMC40MDMwMjksIDAuOTExNDU0LCAxLjM1OTM0LCAxLjk1NjI0LCAzLjE0OTQ2LCAzLjg5NDk3Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjM2NjcxNSwgMC41NDE2NzgsIDEuNTMzOTYsIDIuNDA4NjgsIDMuNTczODksIDUuOTEyMTUsIDcuMzY5MDIiLCBcCi0gICAgICAgICAgIjAuMzY2ODA4LCAwLjU0MTU2NCwgMS41MzMwMiwgMi40MDcyNywgMy41NzUwMiwgNS45MTUxNSwgNy4zNzA4MyIsIFwKLSAgICAgICAgICAiMC4zNjY3MzIsIDAuNTQxNTYyLCAxLjUzNDAxLCAyLjQwNzg4LCAzLjU3NDMyLCA1LjkxMDU3LCA3LjM2OTgxIiwgXAotICAgICAgICAgICIwLjM2NjgxNCwgMC41NDE1NjcsIDEuNTM0MTIsIDIuNDA3ODEsIDMuNTczODksIDUuOTEwMjIsIDcuMzcwNTgiLCBcCi0gICAgICAgICAgIjAuMzY2NTIyLCAwLjU0MjA2NCwgMS41MzQwOSwgMi40MDg4OCwgMy41NzQ5MiwgNS45MDkwNiwgNy4zNzAzIiwgXAotICAgICAgICAgICIwLjM2Njg1NywgMC41NDE2NDgsIDEuNTM0MDMsIDIuNDA3MjUsIDMuNTczODksIDUuOTExOTgsIDcuMzcwNzQiLCBcCi0gICAgICAgICAgIjAuMzY4MDk4LCAwLjU0MTY1MywgMS41MzMzNCwgMi40MDg5OCwgMy41NzUyNCwgNS45MTE0MiwgNy4zNzAzMiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zNjg1MzksIDAuNTE2NDgxLCAxLjM1MDcyLCAyLjA4NDMsIDMuMDYyNiwgNS4wMTgzMiwgNi4yNDEyNyIsIFwKLSAgICAgICAgICAiMC4zNzkwMiwgMC41MjcwMjMsIDEuMzYxMzYsIDIuMDk2MDEsIDMuMDc0NTcsIDUuMDI5ODQsIDYuMjUxNzgiLCBcCi0gICAgICAgICAgIjAuMzkxODM2LCAwLjU0MDAxNCwgMS4zNzQwMSwgMi4xMDkyNCwgMy4wODc4MSwgNS4wNDI3OSwgNi4yNjUwMyIsIFwKLSAgICAgICAgICAiMC40MDQ3MTEsIDAuNTUyODU4LCAxLjM4NzU1LCAyLjEyMTQ0LCAzLjEwMDUyLCA1LjA1NTY2LCA2LjI3NzkyIiwgXAotICAgICAgICAgICIwLjQxNzM4NywgMC41NjU0NjIsIDEuMzk5NzksIDIuMTM0NiwgMy4xMTI5OSwgNS4wNjg2NCwgNi4yOTA2OSIsIFwKLSAgICAgICAgICAiMC40Mzc1NTcsIDAuNTg1ODc2LCAxLjQyMDczLCAyLjE1NTQzLCAzLjEzMzQzLCA1LjA4OTA0LCA2LjMxMTIyIiwgXAotICAgICAgICAgICIwLjQ1NDUxNywgMC42MDM5ODIsIDEuNDM4NjksIDIuMTczNTksIDMuMTUyMTMsIDUuMTA3NDEsIDYuMzI5NjYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuNjI2NDk2LCAwLjkwMjM0NywgMi40NjQwNywgMy44NDI4NiwgNS42Nzc4NywgOS4zNDQ3OSwgMTEuNjQyMiIsIFwKLSAgICAgICAgICAiMC42MjY0MjIsIDAuOTAyMzM4LCAyLjQ2NDI3LCAzLjg0MjU4LCA1LjY3OTY5LCA5LjM1MDMzLCAxMS42NDI2IiwgXAotICAgICAgICAgICIwLjYyNjQzMiwgMC45MDIzNDIsIDIuNDY0MjcsIDMuODQyNjUsIDUuNjgwMywgOS4zNTEwNSwgMTEuNjQyOCIsIFwKLSAgICAgICAgICAiMC42MjY0NiwgMC45MDIxODcsIDIuNDY0MjIsIDMuODQyMzEsIDUuNjc4MjQsIDkuMzUxMTIsIDExLjY0MzMiLCBcCi0gICAgICAgICAgIjAuNjI2NDYzLCAwLjkwMjMzNywgMi40NjQ0NiwgMy44NDI2NywgNS42Nzk5MywgOS4zNTA1OCwgMTEuNjQyNiIsIFwKLSAgICAgICAgICAiMC42MjYzOTIsIDAuOTAyMzEsIDIuNDY0MTYsIDMuODQyOTIsIDUuNjc5LCA5LjM1MDc2LCAxMS42NDMyIiwgXAotICAgICAgICAgICIwLjYyNjUyOSwgMC45MDIyNDksIDIuNDY0NDEsIDMuODQxNywgNS42Nzg5NywgOS4zNTEyMSwgMTEuNjQyOCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjE0MTQ3LCAwLjMwNDA0NiwgMC44MTI2ODYsIDEuMjYwNDIsIDEuODU3NzYsIDMuMDUyMzQsIDMuNzk4NjMiLCBcCi0gICAgICAgICAgIjAuMjI2MjMyLCAwLjMxNjE5MywgMC44MjQ1MDcsIDEuMjcyNjEsIDEuODcwMDMsIDMuMDY1MTQsIDMuODEwOCIsIFwKLSAgICAgICAgICAiMC4yNDEwMTMsIDAuMzMxMDQxLCAwLjgzOTM1OCwgMS4yODc0MiwgMS44ODUxMiwgMy4wNzk0NywgMy44MjU2MiIsIFwKLSAgICAgICAgICAiMC4yNTUxNzQsIDAuMzQ1MjA2LCAwLjg1Mzc0MywgMS4zMDIwNCwgMS44OTk0OSwgMy4wOTQxMSwgMy44Mzk4MSIsIFwKLSAgICAgICAgICAiMC4yNjg3MjMsIDAuMzU4NzU0LCAwLjg2NzMxNywgMS4zMTU2MSwgMS45MTI3MSwgMy4xMDc5MiwgMy44NTMzMyIsIFwKLSAgICAgICAgICAiMC4yODk1MzgsIDAuMzc5NTYsIDAuODg4MTExLCAxLjMzNjE3LCAxLjkzNDIsIDMuMTI4MTcsIDMuODc0MzYiLCBcCi0gICAgICAgICAgIjAuMzA3MjM4LCAwLjM5NzIxMiwgMC45MDYwOTMsIDEuMzU0MDcsIDEuOTUxODMsIDMuMTQ2MDMsIDMuODkyMjIiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzYwODg2LCAwLjUzNjIzOSwgMS41MjgwMywgMi40MDQ2OCwgMy41NzExNSwgNS45MTAxOCwgNy4zNzA4MSIsIFwKLSAgICAgICAgICAiMC4zNjEwNTEsIDAuNTM2MTk2LCAxLjUyNzcyLCAyLjQwMzMzLCAzLjU3MTkyLCA1LjkxMzk1LCA3LjM3MDk5IiwgXAotICAgICAgICAgICIwLjM2MDg5NCwgMC41MzU5MjcsIDEuNTI5MjgsIDIuNDAyNTksIDMuNTcxODYsIDUuOTA4NzgsIDcuMzcwNzciLCBcCi0gICAgICAgICAgIjAuMzYwODYzLCAwLjUzNjA2NCwgMS41MjkzNCwgMi40MDMxMywgMy41NzAxOCwgNS45MTE5NywgNy4zNzA4MiIsIFwKLSAgICAgICAgICAiMC4zNjEwNDgsIDAuNTM2MjY0LCAxLjUyOTI2LCAyLjQwNDgxLCAzLjU3MTg2LCA1LjkwNzc3LCA3LjM3MDQ2IiwgXAotICAgICAgICAgICIwLjM2MTI2OCwgMC41MzYzMTYsIDEuNTI4MTQsIDIuNDAyNzUsIDMuNTcwODIsIDUuOTA5OTksIDcuMzcwNDUiLCBcCi0gICAgICAgICAgIjAuMzYyNDEyLCAwLjUzNjIwOCwgMS41MjgwMiwgMi40MDMzNCwgMy41NzE5MSwgNS45MTAwMiwgNy4zNzA0NCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zNTg4NjcsIDAuNTA2OTY4LCAxLjM0MTEzLCAyLjA3NTg1LCAzLjA1Mzk1LCA1LjAwOTU3LCA2LjIzMTYyIiwgXAotICAgICAgICAgICIwLjM2ODI5NywgMC41MTYzMTYsIDEuMzUwOTYsIDIuMDg1MzYsIDMuMDYzMjksIDUuMDE5MjMsIDYuMjQxMjUiLCBcCi0gICAgICAgICAgIjAuMzgwMjkxLCAwLjUyODM2NCwgMS4zNjMzMSwgMi4wOTcxMiwgMy4wNzYzNSwgNS4wMzEzLCA2LjI1MzU1IiwgXAotICAgICAgICAgICIwLjM5MjQ4LCAwLjU0MDY0OSwgMS4zNzQ5NSwgMi4xMDk3MiwgMy4wODgxMywgNS4wNDM3OSwgNi4yNjU4MyIsIFwKLSAgICAgICAgICAiMC40MDQ3NTUsIDAuNTUyODIzLCAxLjM4Nzc2LCAyLjEyMjM5LCAzLjEwMDM1LCA1LjA1NjEzLCA2LjI3ODE3IiwgXAotICAgICAgICAgICIwLjQyNDI3NCwgMC41NzIzNzksIDEuNDA2NzgsIDIuMTQyNDQsIDMuMTIwMDcsIDUuMDc1NzYsIDYuMjk3ODUiLCBcCi0gICAgICAgICAgIjAuNDQxMjg0LCAwLjU4OTUyMiwgMS40MjQxMiwgMi4xNTkxNiwgMy4xMzc2OCwgNS4wOTI5OCwgNi4zMTUyNSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC42MjY0NzksIDAuOTAyMzIyLCAyLjQ2NDM4LCAzLjg0MjIzLCA1LjY3OTgyLCA5LjM1MDAyLCAxMS42NDMyIiwgXAotICAgICAgICAgICIwLjYyNjQxMywgMC45MDIzMjIsIDIuNDY0NjEsIDMuODQyNjksIDUuNjc5NTcsIDkuMzQ5NTYsIDExLjY0MjciLCBcCi0gICAgICAgICAgIjAuNjI2NTEsIDAuOTAyNDA0LCAyLjQ2NDA2LCAzLjg0MTk1LCA1LjY3OTcyLCA5LjM1MDU3LCAxMS42NDMxIiwgXAotICAgICAgICAgICIwLjYyNjQ1MiwgMC45MDIxNTIsIDIuNDY0MSwgMy44NDI4MiwgNS42Nzk5NiwgOS4zNTEyNywgMTEuNjQzMiIsIFwKLSAgICAgICAgICAiMC42MjY0MzIsIDAuOTAyMTk0LCAyLjQ2NDIyLCAzLjg0MjgsIDUuNjc5NTgsIDkuMzUwNzEsIDExLjY0MjYiLCBcCi0gICAgICAgICAgIjAuNjI2MzI4LCAwLjkwMjIyOSwgMi40NjQyNSwgMy44NDI1NCwgNS42NzkxNCwgOS4zNTA1OCwgMTEuNjQyNiIsIFwKLSAgICAgICAgICAiMC42MjY5MTksIDAuOTAyMjc0LCAyLjQ2NDM0LCAzLjg0MjE2LCA1LjY4MDI1LCA5LjM1MDQ0LCAxMS42NDI4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xOTYzMzYsIDAuMjg1OTQxLCAwLjc5MTUzOSwgMS4yMzgwNywgMS44MzUwOCwgMy4wMjg0NywgMy43NzM5NyIsIFwKLSAgICAgICAgICAiMC4yMDY2OTksIDAuMjk2MzQyLCAwLjgwMTkzNywgMS4yNDg0NywgMS44NDUzMSwgMy4wMzkwOCwgMy43ODQ0MSIsIFwKLSAgICAgICAgICAiMC4yMTk3MTcsIDAuMzA5NCwgMC44MTUwMjIsIDEuMjYxNTUsIDEuODU4MzksIDMuMDUyMDYsIDMuNzk3NTkiLCBcCi0gICAgICAgICAgIjAuMjMyODc5LCAwLjMyMjU1MSwgMC44MjgzNzcsIDEuMjc0ODEsIDEuODcyMTQsIDMuMDY1NTcsIDMuODEwOCIsIFwKLSAgICAgICAgICAiMC4yNDYwMTYsIDAuMzM1NjcyLCAwLjg0MTQzNCwgMS4yODc5OCwgMS44ODQ1NiwgMy4wNzgyNSwgMy44MjM5IiwgXAotICAgICAgICAgICIwLjI2NzA0NSwgMC4zNTY3MzUsIDAuODYyNDc3LCAxLjMwODkzLCAxLjkwNjQyLCAzLjA5OTI5LCAzLjg0NDgiLCBcCi0gICAgICAgICAgIjAuMjg1NTA0LCAwLjM3NTEwOSwgMC44ODA5MDQsIDEuMzI3NTQsIDEuOTI0NCwgMy4xMTc5MSwgMy44NjMyOCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zNjk1NywgMC41NDQyNTcsIDEuNTMyODksIDIuNDA3MDMsIDMuNTc1MTMsIDUuOTA3NjgsIDcuMzY1MDMiLCBcCi0gICAgICAgICAgIjAuMzY5NTY2LCAwLjU0NDMwMiwgMS41MzM5NywgMi40MDg3NCwgMy41NzI5MSwgNS45MDYxNywgNy4zNjUzNCIsIFwKLSAgICAgICAgICAiMC4zNjk2NjUsIDAuNTQ0MzE1LCAxLjUzMywgMi40MDg3MSwgMy41NzI5MywgNS45MDU3NiwgNy4zNjEyIiwgXAotICAgICAgICAgICIwLjM2OTIzNCwgMC41NDM3MSwgMS41MzQxLCAyLjQwNzY2LCAzLjU3Mzg3LCA1LjkwNTE4LCA3LjM2MjM2IiwgXAotICAgICAgICAgICIwLjM2ODg4OSwgMC41NDQwNzEsIDEuNTMyNTksIDIuNDA3NjksIDMuNTc0MTUsIDUuOTA1LCA3LjM2NTU5IiwgXAotICAgICAgICAgICIwLjM3MjA0OCwgMC41NDM0NTQsIDEuNTMzMjMsIDIuNDA3MjgsIDMuNTc0NDksIDUuOTA3NTcsIDcuMzY0OTQiLCBcCi0gICAgICAgICAgIjAuMzc2Nzk4LCAwLjU0NTYzNiwgMS41MzQwMSwgMi40MDg5MiwgMy41NzM4NSwgNS45MDQ2LCA3LjM2MTMyIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMwOTkyNCwgMC40NTY1MTIsIDEuMjg4NTIsIDIuMDIyMjgsIDMuMDAwNzUsIDQuOTU3MzEsIDYuMTgwMjEiLCBcCi0gICAgICAgICAgIjAuMzIxNjMzLCAwLjQ2ODUwMywgMS4zMDA3MiwgMi4wMzQ2MywgMy4wMTM0LCA0Ljk2OTk5LCA2LjE5MjY4IiwgXAotICAgICAgICAgICIwLjMzNDU3LCAwLjQ4MTY5NSwgMS4zMTM4NCwgMi4wNDgxMSwgMy4wMjY2OCwgNC45ODMzLCA2LjIwNTk4IiwgXAotICAgICAgICAgICIwLjM0Njg2LCAwLjQ5MzgxNiwgMS4zMjYxNiwgMi4wNjA2LCAzLjAzODk1LCA0Ljk5NTYyLCA2LjIxODUyIiwgXAotICAgICAgICAgICIwLjM1ODU4NiwgMC41MDU2NTQsIDEuMzM4MDcsIDIuMDcyNjUsIDMuMDUwODEsIDUuMDA3NzIsIDYuMjMwNDIiLCBcCi0gICAgICAgICAgIjAuMzc3MTg2LCAwLjUyNDUzMywgMS4zNTcyMSwgMi4wOTEyLCAzLjA2OTc1LCA1LjAyNjY4LCA2LjI0OTQ5IiwgXAotICAgICAgICAgICIwLjM5MzM5NywgMC41NDA3OTgsIDEuMzczNTEsIDIuMTA3NDksIDMuMDg2MzMsIDUuMDQzMjcsIDYuMjY1OTYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuNTcyNjY3LCAwLjg0NzM5NCwgMi40MDYyLCAzLjc4MjY2LCA1LjYxNTE3LCA5LjI4MTgyLCAxMS41Nzg3IiwgXAotICAgICAgICAgICIwLjU3MjY2OCwgMC44NDczOTYsIDIuNDA2MjgsIDMuNzgyNzgsIDUuNjE4MDIsIDkuMjg3NzgsIDExLjU3OTMiLCBcCi0gICAgICAgICAgIjAuNTcyNjQ5LCAwLjg0NzQ0MywgMi40MDY1LCAzLjc4MjY5LCA1LjYxOTIyLCA5LjI4NzUzLCAxMS41NzkiLCBcCi0gICAgICAgICAgIjAuNTcyNzExLCAwLjg0NzQwNCwgMi40MDYsIDMuNzgyNDYsIDUuNjE4MTksIDkuMjg4MTgsIDExLjU3OTEiLCBcCi0gICAgICAgICAgIjAuNTcyNzUsIDAuODQ3NDI5LCAyLjQwNTk0LCAzLjc4MzE5LCA1LjYxNzI4LCA5LjI4ODMzLCAxMS41Nzk3IiwgXAotICAgICAgICAgICIwLjU3MjY5NywgMC44NDc0MTEsIDIuNDA1NzYsIDMuNzgxOSwgNS42MTc1MSwgOS4yODgxOCwgMTEuNTc5NiIsIFwKLSAgICAgICAgICAiMC41NzMzMzksIDAuODQ3NDE4LCAyLjQwNjM5LCAzLjc4MjE3LCA1LjYxNzM3LCA5LjI4NzkyLCAxMS41NzkxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIxIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xOTE3MTcsIDAuMjgxMTg2LCAwLjc4NjUyMiwgMS4yMzM1MiwgMS44MzExNCwgMy4wMjM3NSwgMy43Njk0NCIsIFwKLSAgICAgICAgICAiMC4yMDIyNiwgMC4yOTE3ODksIDAuNzk3MTMzLCAxLjI0NDI2LCAxLjg0MTUyLCAzLjAzNDc3LCAzLjc4MDA3IiwgXAotICAgICAgICAgICIwLjIxNTQ1LCAwLjMwNTAyMiwgMC44MTA0NjcsIDEuMjU3MDYsIDEuODU0NDQsIDMuMDQ3ODQsIDMuNzkzMzYiLCBcCi0gICAgICAgICAgIjAuMjI4NDA4LCAwLjMxNzk0MywgMC44MjM0NTYsIDEuMjcwNTgsIDEuODY3MjksIDMuMDYwOTksIDMuODA2MjMiLCBcCi0gICAgICAgICAgIjAuMjQxNTI0LCAwLjMzMTA1MSwgMC44MzY1OTUsIDEuMjgzMTgsIDEuODgwOTUsIDMuMDc0MzksIDMuODE5NjkiLCBcCi0gICAgICAgICAgIjAuMjYyNDY0LCAwLjM1MjAzNSwgMC44NTc2NzgsIDEuMzA0MTYsIDEuOTAxOTcsIDMuMDk0NzMsIDMuODQwNDIiLCBcCi0gICAgICAgICAgIjAuMjgwODgxLCAwLjM3MDM0NSwgMC44NzU4ODgsIDEuMzIyOTgsIDEuOTE5NDIsIDMuMTEzMDUsIDMuODU5MDgiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzY0NzMxLCAwLjUzOTgxMywgMS41Mjk3OCwgMi40MDU0OSwgMy41NzQ0MSwgNS45MTExNSwgNy4zNzA1NCIsIFwKLSAgICAgICAgICAiMC4zNjQ5NDYsIDAuNTM5ODI5LCAxLjUyOTg0LCAyLjQwNTUxLCAzLjU3NDU1LCA1LjkxMDEsIDcuMzcwNjciLCBcCi0gICAgICAgICAgIjAuMzY0NzQzLCAwLjUzOTI4NSwgMS41Mjk4NiwgMi40MDU3LCAzLjU3NDMyLCA1LjkxMjExLCA3LjM3MDYyIiwgXAotICAgICAgICAgICIwLjM2NDE4NCwgMC41Mzk3NjIsIDEuNTI5ODksIDIuNDA1OTQsIDMuNTc0OSwgNS45MTI4MSwgNy4zNjkwNCIsIFwKLSAgICAgICAgICAiMC4zNjQ1NDQsIDAuNTM5NTM0LCAxLjUyOTg5LCAyLjQwNTcsIDMuNTczMzYsIDUuOTA5MDQsIDcuMzcxMDgiLCBcCi0gICAgICAgICAgIjAuMzY3NjMxLCAwLjUzODgwNCwgMS41Mjk5NiwgMi40MDU3NiwgMy41NzM1NywgNS45MTE1NCwgNy4zNzA0NSIsIFwKLSAgICAgICAgICAiMC4zNzI3MjQsIDAuNTQxMDU0LCAxLjUyOTg3LCAyLjQwNjI5LCAzLjU3NjQsIDUuOTExNDMsIDcuMzcxMDkiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzA1NjY5LCAwLjQ1MjYwNCwgMS4yODQ0NSwgMi4wMTgyNSwgMi45OTY0MywgNC45NTMxMiwgNi4xNzY0MSIsIFwKLSAgICAgICAgICAiMC4zMTY3MDIsIDAuNDYzNzM2LCAxLjI5NTYxLCAyLjAyOTUxLCAzLjAwODE2LCA0Ljk2NTAzLCA2LjE4NzcyIiwgXAotICAgICAgICAgICIwLjMyOTc1NCwgMC40NzY4NjQsIDEuMzA4ODcsIDIuMDQzMDYsIDMuMDIxMzIsIDQuOTc4MzEsIDYuMjAxMDciLCBcCi0gICAgICAgICAgIjAuMzQyMzc5LCAwLjQ4OTQyNiwgMS4zMjE2NSwgMi4wNTU3NSwgMy4wMzQ1OCwgNC45OTEyMSwgNi4yMTQxMiIsIFwKLSAgICAgICAgICAiMC4zNTUwNjUsIDAuNTAyMTksIDEuMzM0NjcsIDIuMDY4NzMsIDMuMDQ3MjcsIDUuMDA0MzQsIDYuMjI2OTEiLCBcCi0gICAgICAgICAgIjAuMzc1MTcxLCAwLjUyMjQxLCAxLjM1NTExLCAyLjA4OTIyLCAzLjA2Nzc0LCA1LjAyNDgzLCA2LjI0NzUzIiwgXAotICAgICAgICAgICIwLjM5Mjk2MiwgMC41NDA0NDIsIDEuMzczMzEsIDIuMTA3NjIsIDMuMDg2MDUsIDUuMDQzMDIsIDYuMjY1OTQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuNTcyNzgzLCAwLjg0NzUxNywgMi40MDU5MiwgMy43ODIzNSwgNS42MTQ3NywgOS4yODQwNywgMTEuNTc4NyIsIFwKLSAgICAgICAgICAiMC41NzI2ODgsIDAuODQ3NDQ1LCAyLjQwNjA0LCAzLjc4MjAzLCA1LjYxOTEzLCA5LjI4NzEyLCAxMS41NzkzIiwgXAotICAgICAgICAgICIwLjU3MjcwNywgMC44NDc0MiwgMi40MDY0MywgMy43ODIzMywgNS42MTgzOCwgOS4yODgzNSwgMTEuNTc5NSIsIFwKLSAgICAgICAgICAiMC41NzI3MywgMC44NDc0MTcsIDIuNDA1OTcsIDMuNzgyMDYsIDUuNjE5MDQsIDkuMjg3NzksIDExLjU3OTciLCBcCi0gICAgICAgICAgIjAuNTcyNzI2LCAwLjg0NzM3MSwgMi40MDYxMywgMy43ODMyMiwgNS42MTg3NCwgOS4yODg1MiwgMTEuNTc5IiwgXAotICAgICAgICAgICIwLjU3MjY2NiwgMC44NDczODIsIDIuNDA2MDQsIDMuNzgzMjgsIDUuNjE4OSwgOS4yODc3MiwgMTEuNTc5IiwgXAotICAgICAgICAgICIwLjU3MzU1OSwgMC44NDczNjUsIDIuNDA1OTMsIDMuNzgyMjQsIDUuNjE5MTIsIDkuMjg4MTgsIDExLjU3OTYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjIiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE4NTIxMSwgMC4yNzQzMjMsIDAuNzc3OTcxLCAxLjIyMzUyLCAxLjgxODIxLCAzLjAwOTIsIDMuNzUyMTUiLCBcCi0gICAgICAgICAgIjAuMTk1OTg0LCAwLjI4NTE0MiwgMC43ODg3ODMsIDEuMjM0NTYsIDEuODI5OTIsIDMuMDE5NTUsIDMuNzYyODgiLCBcCi0gICAgICAgICAgIjAuMjA5MDczLCAwLjI5ODI2MiwgMC44MDE5NzIsIDEuMjQ3NzEsIDEuODQzMTMsIDMuMDMyNTQsIDMuNzc2MDQiLCBcCi0gICAgICAgICAgIjAuMjIyMTE2LCAwLjMxMTQwNiwgMC44MTUzMDIsIDEuMjYwNDEsIDEuODU2MDEsIDMuMDQ2MTgsIDMuNzg5MzkiLCBcCi0gICAgICAgICAgIjAuMjM1Mjk2LCAwLjMyNDUwMywgMC44MjgzNDIsIDEuMjczNTUsIDEuODY5NDIsIDMuMDU5MDUsIDMuODAyNTIiLCBcCi0gICAgICAgICAgIjAuMjU2MjY5LCAwLjM0NTQ5MSwgMC44NDk0ODgsIDEuMjk0NzgsIDEuODkwMTUsIDMuMDc5OSwgMy44MjM0MyIsIFwKLSAgICAgICAgICAiMC4yNzQ2OTIsIDAuMzYzODczLCAwLjg2Nzc5NywgMS4zMTMwMywgMS45MDg1NCwgMy4wOTgzMSwgMy44NDIwMSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zNTc4MDUsIDAuNTMxNjY5LCAxLjUxODg0LCAyLjM5MTc2LCAzLjU1NTc1LCA1Ljg4OTcsIDcuMzQwODYiLCBcCi0gICAgICAgICAgIjAuMzU3Nzg1LCAwLjUzMTgyNywgMS41MTg1LCAyLjM5MTQsIDMuNTU2NzksIDUuODg2NzEsIDcuMzQwNzQiLCBcCi0gICAgICAgICAgIjAuMzU3NTgsIDAuNTMxNTYsIDEuNTE4MiwgMi4zOTEzOCwgMy41NTY4MSwgNS44ODU5NSwgNy4zNDA1NCIsIFwKLSAgICAgICAgICAiMC4zNTcwODEsIDAuNTMxMjAxLCAxLjUxOTQsIDIuMzkxNDIsIDMuNTU1MywgNS44ODg2NSwgNy4zNDA3NyIsIFwKLSAgICAgICAgICAiMC4zNTcyODksIDAuNTMxMDEyLCAxLjUxOTI3LCAyLjM5MTQzLCAzLjU1NTI2LCA1Ljg4Nzc5LCA3LjM0MDkyIiwgXAotICAgICAgICAgICIwLjM2MDYyNCwgMC41MzEwMjgsIDEuNTE4NTEsIDIuMzkyNDksIDMuNTU2NTYsIDUuODg1ODMsIDcuMzM5ODIiLCBcCi0gICAgICAgICAgIjAuMzY1ODE5LCAwLjUzMzQsIDEuNTE5MzIsIDIuMzkyNzIsIDMuNTU1MjMsIDUuODg0NDIsIDcuMzQwOTQiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjk1NzIyLCAwLjQ0MjY2LCAxLjI3NDM2LCAyLjAwODQyLCAyLjk4Njg3LCA0Ljk0MzcxLCA2LjE2NjU5IiwgXAotICAgICAgICAgICIwLjMwNTczNiwgMC40NTI3ODcsIDEuMjg0NjQsIDIuMDE4NTUsIDIuOTk3MjIsIDQuOTUzOTcsIDYuMTc2ODQiLCBcCi0gICAgICAgICAgIjAuMzE3NzgsIDAuNDY0ODQ0LCAxLjI5NzI5LCAyLjAzMTEyLCAzLjAwOTk2LCA0Ljk2NjU1LCA2LjE4OTI2IiwgXAotICAgICAgICAgICIwLjMyOTk3MywgMC40NzcxMDcsIDEuMzA5MzksIDIuMDQzNzIsIDMuMDIxOTgsIDQuOTc4OTksIDYuMjAxNzgiLCBcCi0gICAgICAgICAgIjAuMzQyMTY5LCAwLjQ4OTQzNywgMS4zMjE3NCwgMi4wNTU3MSwgMy4wMzQxOSwgNC45OTE0MSwgNi4yMTQwNyIsIFwKLSAgICAgICAgICAiMC4zNjE1NDIsIDAuNTA4NzUzLCAxLjM0MTMzLCAyLjA3NTcyLCAzLjA1NDEyLCA1LjAxMTExLCA2LjIzMzg5IiwgXAotICAgICAgICAgICIwLjM3ODU1MSwgMC41MjI3MDcsIDEuMzU4NTcsIDIuMDkyNjQsIDMuMDcxNTgsIDUuMDI4MzcsIDYuMjUxMDIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuNTcyNzA5LCAwLjg0NzQwNCwgMi40MDY0NCwgMy43ODIxNiwgNS42MTcwNywgOS4yODg0MywgMTEuNTc5MyIsIFwKLSAgICAgICAgICAiMC41NzI2OTIsIDAuODQ3NDczLCAyLjQwNTg4LCAzLjc4MjgyLCA1LjYxNzQ2LCA5LjI4ODA2LCAxMS41NzkxIiwgXAotICAgICAgICAgICIwLjU3MjY3MywgMC44NDc0MzEsIDIuNDA1ODYsIDMuNzgzMjIsIDUuNjE5NDQsIDkuMjg3ODUsIDExLjU3OSIsIFwKLSAgICAgICAgICAiMC41NzI2NjcsIDAuODQ3NDI5LCAyLjQwNjQ0LCAzLjc4MjM2LCA1LjYxODA4LCA5LjI4ODI1LCAxMS41Nzk2IiwgXAotICAgICAgICAgICIwLjU3MjcyNSwgMC44NDc0NTQsIDIuNDA2MywgMy43ODIwMywgNS42MTg1MSwgOS4yODgzLCAxMS41NzkxIiwgXAotICAgICAgICAgICIwLjU3Mjg2OSwgMC44NDczODMsIDIuNDA1OTksIDMuNzgyOSwgNS42MTg4OSwgOS4yODgzMiwgMTEuNTc5NCIsIFwKLSAgICAgICAgICAiMC41NzQ4MzcsIDAuODQ3MzM2LCAyLjQwNjI1LCAzLjc4MjAxLCA1LjYxNzYyLCA5LjI4ODIyLCAxMS41NzkxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzkxNywgMC4wMDM5MTcsIDAuMDAzOTE1LCAwLjAwMzkxNCwgMC4wMDM5MTIsIDAuMDAzOTA3LCAwLjAwMzkwNSIsIFwKLSAgICAgICAgICAiMC4wMDM5MDcsIDAuMDAzOTA3LCAwLjAwMzkwNiwgMC4wMDM5MDUsIDAuMDAzOTAzLCAwLjAwMzg5OSwgMC4wMDM4OTYiLCBcCi0gICAgICAgICAgIjAuMDAzOTA1LCAwLjAwMzkwNSwgMC4wMDM5MDQsIDAuMDAzOTA0LCAwLjAwMzg5OSwgMC4wMDM4OTcsIDAuMDAzODk2IiwgXAotICAgICAgICAgICIwLjAwMzkwMywgMC4wMDM5MDQsIDAuMDAzOTAzLCAwLjAwMzkwMiwgMC4wMDM4OTksIDAuMDAzODk1LCAwLjAwMzg5NCIsIFwKLSAgICAgICAgICAiMC4wMDM5MDEsIDAuMDAzOTAzLCAwLjAwMzkwMiwgMC4wMDM5MDEsIDAuMDAzOSwgMC4wMDM4OTYsIDAuMDAzODkzIiwgXAotICAgICAgICAgICIwLjAwMzg5OCwgMC4wMDM5LCAwLjAwMzkwMSwgMC4wMDM5LCAwLjAwMzg5OSwgMC4wMDM4OTUsIDAuMDAzODkyIiwgXAotICAgICAgICAgICIwLjAwMzg5OCwgMC4wMDM4OTgsIDAuMDAzOTAxLCAwLjAwMzksIDAuMDAzODk5LCAwLjAwMzg5NSwgMC4wMDM4OTIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDE2MjcsIDAuMDAxNjI2LCAwLjAwMTYyNCwgMC4wMDE2MjMsIDAuMDAxNjE5LCAwLjAwMTYxNSwgMC4wMDE2MSIsIFwKLSAgICAgICAgICAiMC4wMDE2MTcsIDAuMDAxNjE3LCAwLjAwMTYxNywgMC4wMDE2MTcsIDAuMDAxNjE1LCAwLjAwMTYwOCwgMC4wMDE2MDMiLCBcCi0gICAgICAgICAgIjAuMDAxNjEsIDAuMDAxNjEzLCAwLjAwMTYxNCwgMC4wMDE2MTMsIDAuMDAxNjEyLCAwLjAwMTYwNiwgMC4wMDE2MDIiLCBcCi0gICAgICAgICAgIjAuMDAxNjA1LCAwLjAwMTYwOSwgMC4wMDE2MTIsIDAuMDAxNjEyLCAwLjAwMTYxLCAwLjAwMTYwNSwgMC4wMDE2MDEiLCBcCi0gICAgICAgICAgIjAuMDAxNjAxLCAwLjAwMTYwNSwgMC4wMDE2MTEsIDAuMDAxNjEsIDAuMDAxNjA5LCAwLjAwMTYwNCwgMC4wMDE2IiwgXAotICAgICAgICAgICIwLjAwMTU5NSwgMC4wMDE2LCAwLjAwMTYwOCwgMC4wMDE2MDksIDAuMDAxNjA3LCAwLjAwMTYwNCwgMC4wMDE2IiwgXAotICAgICAgICAgICIwLjAwMTU5LCAwLjAwMTU5NiwgMC4wMDE2MDYsIDAuMDAxNjA3LCAwLjAwMTYwNywgMC4wMDE2MDIsIDAuMDAxNTk5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzYzNCwgMC4wMDM2MzQsIDAuMDAzNjMzLCAwLjAwMzYzMiwgMC4wMDM2MjksIDAuMDAzNjI3LCAwLjAwMzYyNCIsIFwKLSAgICAgICAgICAiMC4wMDM2MzIsIDAuMDAzNjMzLCAwLjAwMzYzMiwgMC4wMDM2MzEsIDAuMDAzNjMsIDAuMDAzNjI1LCAwLjAwMzYyMyIsIFwKLSAgICAgICAgICAiMC4wMDM2MywgMC4wMDM2MzIsIDAuMDAzNjMyLCAwLjAwMzYzMywgMC4wMDM2MywgMC4wMDM2MjcsIDAuMDAzNjI1IiwgXAotICAgICAgICAgICIwLjAwMzYyOCwgMC4wMDM2MywgMC4wMDM2MzIsIDAuMDAzNjMyLCAwLjAwMzYyOSwgMC4wMDM2MjksIDAuMDAzNjIzIiwgXAotICAgICAgICAgICIwLjAwMzYyNSwgMC4wMDM2MjcsIDAuMDAzNjMsIDAuMDAzNjMsIDAuMDAzNjI5LCAwLjAwMzYyNywgMC4wMDM2MjQiLCBcCi0gICAgICAgICAgIjAuMDAzNjIxLCAwLjAwMzYyNCwgMC4wMDM2MjksIDAuMDAzNjMsIDAuMDAzNjI5LCAwLjAwMzYyNiwgMC4wMDM2MjQiLCBcCi0gICAgICAgICAgIjAuMDAzNjE5LCAwLjAwMzYyMSwgMC4wMDM2MjksIDAuMDAzNjI5LCAwLjAwMzYyOCwgMC4wMDM2MjUsIDAuMDAzNjI0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxNjI3LCAwLjAwMTYyNywgMC4wMDE2MjUsIDAuMDAxNjI0LCAwLjAwMTYyMSwgMC4wMDE2MTUsIDAuMDAxNjEiLCBcCi0gICAgICAgICAgIjAuMDAxNjE4LCAwLjAwMTYxOSwgMC4wMDE2MTgsIDAuMDAxNjE2LCAwLjAwMTYxNSwgMC4wMDE2MDksIDAuMDAxNjA1IiwgXAotICAgICAgICAgICIwLjAwMTYxMiwgMC4wMDE2MTMsIDAuMDAxNjE0LCAwLjAwMTYxNCwgMC4wMDE2MTEsIDAuMDAxNjA3LCAwLjAwMTYwNCIsIFwKLSAgICAgICAgICAiMC4wMDE2MDYsIDAuMDAxNjA5LCAwLjAwMTYxMiwgMC4wMDE2MTIsIDAuMDAxNjExLCAwLjAwMTYwNiwgMC4wMDE2MDEiLCBcCi0gICAgICAgICAgIjAuMDAxNjAyLCAwLjAwMTYwNiwgMC4wMDE2MTEsIDAuMDAxNjExLCAwLjAwMTYxLCAwLjAwMTYwNSwgMC4wMDE2MDEiLCBcCi0gICAgICAgICAgIjAuMDAxNTk2LCAwLjAwMTYwMSwgMC4wMDE2MDksIDAuMDAxNjA5LCAwLjAwMTYwOCwgMC4wMDE2MDMsIDAuMDAxNiIsIFwKLSAgICAgICAgICAiMC4wMDE1ODgsIDAuMDAxNTk3LCAwLjAwMTYwNywgMC4wMDE2MDgsIDAuMDAxNjA3LCAwLjAwMTYwMywgMC4wMDE2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTIiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzMwMiwgMC4wMDMzMDIsIDAuMDAzMzAyLCAwLjAwMzMwMSwgMC4wMDMzLCAwLjAwMzI5OCwgMC4wMDMyOTciLCBcCi0gICAgICAgICAgIjAuMDAzMzA4LCAwLjAwMzMxLCAwLjAwMzMxMSwgMC4wMDMzMSwgMC4wMDMzMSwgMC4wMDMzMDUsIDAuMDAzMzA1IiwgXAotICAgICAgICAgICIwLjAwMzMwNywgMC4wMDMzMSwgMC4wMDMzMTIsIDAuMDAzMzEyLCAwLjAwMzMxNCwgMC4wMDMzMSwgMC4wMDMzMDciLCBcCi0gICAgICAgICAgIjAuMDAzMzA0LCAwLjAwMzMwNywgMC4wMDMzMTIsIDAuMDAzMzEzLCAwLjAwMzMxMSwgMC4wMDMzMSwgMC4wMDMzMDkiLCBcCi0gICAgICAgICAgIjAuMDAzMywgMC4wMDMzMDUsIDAuMDAzMzExLCAwLjAwMzMxMiwgMC4wMDMzMTIsIDAuMDAzMzEsIDAuMDAzMzA4IiwgXAotICAgICAgICAgICIwLjAwMzI5NCwgMC4wMDMzMDEsIDAuMDAzMzEsIDAuMDAzMzExLCAwLjAwMzMxMSwgMC4wMDMzMSwgMC4wMDMzMDkiLCBcCi0gICAgICAgICAgIjAuMDAzMjkxLCAwLjAwMzI5NywgMC4wMDMzMDgsIDAuMDAzMzEsIDAuMDAzMzExLCAwLjAwMzMxLCAwLjAwMzMwOSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTYyNywgMC4wMDE2MjcsIDAuMDAxNjI1LCAwLjAwMTYyNCwgMC4wMDE2MiwgMC4wMDE2MTUsIDAuMDAxNjExIiwgXAotICAgICAgICAgICIwLjAwMTYxNywgMC4wMDE2MTgsIDAuMDAxNjE5LCAwLjAwMTYxNiwgMC4wMDE2MTQsIDAuMDAxNjA1LCAwLjAwMTYwNCIsIFwKLSAgICAgICAgICAiMC4wMDE2MDgsIDAuMDAxNjExLCAwLjAwMTYxNCwgMC4wMDE2MTMsIDAuMDAxNjEyLCAwLjAwMTYwNSwgMC4wMDE2MDIiLCBcCi0gICAgICAgICAgIjAuMDAxNjAzLCAwLjAwMTYwNywgMC4wMDE2MTEsIDAuMDAxNjExLCAwLjAwMTYxMSwgMC4wMDE2MDUsIDAuMDAxNjAxIiwgXAotICAgICAgICAgICIwLjAwMTU5OCwgMC4wMDE2MDMsIDAuMDAxNjEsIDAuMDAxNjExLCAwLjAwMTYwOCwgMC4wMDE2MDQsIDAuMDAxNjAxIiwgXAotICAgICAgICAgICIwLjAwMTU5MSwgMC4wMDE1OTcsIDAuMDAxNjA3LCAwLjAwMTYwOCwgMC4wMDE2MDcsIDAuMDAxNjAzLCAwLjAwMTYiLCBcCi0gICAgICAgICAgIjAuMDAxNTg3LCAwLjAwMTU5MywgMC4wMDE2MDQsIDAuMDAxNjA2LCAwLjAwMTYwNiwgMC4wMDE2MDIsIDAuMDAxNTk5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjkxNCwgMC4wMDI5MTMsIDAuMDAyOTEyLCAwLjAwMjkxLCAwLjAwMjkwOSwgMC4wMDI5MDUsIDAuMDAyOTAyIiwgXAotICAgICAgICAgICIwLjAwMjkwMiwgMC4wMDI5MDMsIDAuMDAyOTAxLCAwLjAwMjksIDAuMDAyODk4LCAwLjAwMjg5NSwgMC4wMDI4OTIiLCBcCi0gICAgICAgICAgIjAuMDAyODk3LCAwLjAwMjg5OCwgMC4wMDI4OTksIDAuMDAyODk3LCAwLjAwMjg5NSwgMC4wMDI4OTIsIDAuMDAyODg3IiwgXAotICAgICAgICAgICIwLjAwMjg5NCwgMC4wMDI4OTcsIDAuMDAyODk4LCAwLjAwMjg5NiwgMC4wMDI4OTQsIDAuMDAyODkxLCAwLjAwMjg4NyIsIFwKLSAgICAgICAgICAiMC4wMDI4OTIsIDAuMDAyODk0LCAwLjAwMjg5NiwgMC4wMDI4OTUsIDAuMDAyODk0LCAwLjAwMjg5MSwgMC4wMDI4ODciLCBcCi0gICAgICAgICAgIjAuMDAyODg5LCAwLjAwMjg5MiwgMC4wMDI4OTUsIDAuMDAyODk1LCAwLjAwMjg5MywgMC4wMDI4OSwgMC4wMDI4ODciLCBcCi0gICAgICAgICAgIjAuMDAyODg4LCAwLjAwMjg5LCAwLjAwMjg5NCwgMC4wMDI4OTQsIDAuMDAyODkyLCAwLjAwMjg4OSwgMC4wMDI4ODciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDA1NDQsIDAuMDAwNTQ1LCAwLjAwMDU0NiwgMC4wMDA1NDYsIDAuMDAwNTQ2LCAwLjAwMDU0NiwgMC4wMDA1NDYiLCBcCi0gICAgICAgICAgIjAuMDAwNTQ5LCAwLjAwMDU1MywgMC4wMDA1NTcsIDAuMDAwNTU4LCAwLjAwMDU1OCwgMC4wMDA1NTksIDAuMDAwNTU5IiwgXAotICAgICAgICAgICIwLjAwMDU0NiwgMC4wMDA1NTIsIDAuMDAwNTYsIDAuMDAwNTYyLCAwLjAwMDU2MywgMC4wMDA1NjMsIDAuMDAwNTY0IiwgXAotICAgICAgICAgICIwLjAwMDU0MSwgMC4wMDA1NDgsIDAuMDAwNTYsIDAuMDAwNTYyLCAwLjAwMDU2NCwgMC4wMDA1NjUsIDAuMDAwNTY1IiwgXAotICAgICAgICAgICIwLjAwMDUzNSwgMC4wMDA1NDQsIDAuMDAwNTU5LCAwLjAwMDU2MiwgMC4wMDA1NjQsIDAuMDAwNTY1LCAwLjAwMDU2NiIsIFwKLSAgICAgICAgICAiMC4wMDA1MjYsIDAuMDAwNTM4LCAwLjAwMDU1NywgMC4wMDA1NjEsIDAuMDAwNTYzLCAwLjAwMDU2NSwgMC4wMDA1NjYiLCBcCi0gICAgICAgICAgIjAuMDAwNTE5LCAwLjAwMDUzMiwgMC4wMDA1NTQsIDAuMDAwNTU5LCAwLjAwMDU2MiwgMC4wMDA1NjUsIDAuMDAwNTY2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjYyOCwgMC4wMDI2MjgsIDAuMDAyNjI2LCAwLjAwMjYyNiwgMC4wMDI2MjQsIDAuMDAyNjIsIDAuMDAyNjE4IiwgXAotICAgICAgICAgICIwLjAwMjYyNCwgMC4wMDI2MjUsIDAuMDAyNjI2LCAwLjAwMjYyNSwgMC4wMDI2MjMsIDAuMDAyNjIsIDAuMDAyNjE4IiwgXAotICAgICAgICAgICIwLjAwMjYyLCAwLjAwMjYyMiwgMC4wMDI2MjQsIDAuMDAyNjI0LCAwLjAwMjYyMywgMC4wMDI2MiwgMC4wMDI2MTciLCBcCi0gICAgICAgICAgIjAuMDAyNjE2LCAwLjAwMjYyLCAwLjAwMjYyMywgMC4wMDI2MjQsIDAuMDAyNjIyLCAwLjAwMjYyLCAwLjAwMjYxOCIsIFwKLSAgICAgICAgICAiMC4wMDI2MTMsIDAuMDAyNjE4LCAwLjAwMjYyMiwgMC4wMDI2MjMsIDAuMDAyNjIyLCAwLjAwMjYxOSwgMC4wMDI2MTciLCBcCi0gICAgICAgICAgIjAuMDAyNjA5LCAwLjAwMjYxNCwgMC4wMDI2MjEsIDAuMDAyNjIxLCAwLjAwMjYyLCAwLjAwMjYxOCwgMC4wMDI2MTciLCBcCi0gICAgICAgICAgIjAuMDAyNjA2LCAwLjAwMjYxMiwgMC4wMDI2MTksIDAuMDAyNjIxLCAwLjAwMjYyMSwgMC4wMDI2MTgsIDAuMDAyNjE1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwNTQ0LCAwLjAwMDU0NCwgMC4wMDA1NDUsIDAuMDAwNTQ1LCAwLjAwMDU0NSwgMC4wMDA1NDUsIDAuMDAwNTQ1IiwgXAotICAgICAgICAgICIwLjAwMDU0OSwgMC4wMDA1NTIsIDAuMDAwNTU3LCAwLjAwMDU1OCwgMC4wMDA1NTgsIDAuMDAwNTU4LCAwLjAwMDU1OCIsIFwKLSAgICAgICAgICAiMC4wMDA1NDYsIDAuMDAwNTUxLCAwLjAwMDU2LCAwLjAwMDU2MSwgMC4wMDA1NjIsIDAuMDAwNTYzLCAwLjAwMDU2MyIsIFwKLSAgICAgICAgICAiMC4wMDA1NCwgMC4wMDA1NDgsIDAuMDAwNTU5LCAwLjAwMDU2MiwgMC4wMDA1NjMsIDAuMDAwNTY0LCAwLjAwMDU2NSIsIFwKLSAgICAgICAgICAiMC4wMDA1MzUsIDAuMDAwNTQ0LCAwLjAwMDU1OCwgMC4wMDA1NjIsIDAuMDAwNTYzLCAwLjAwMDU2NSwgMC4wMDA1NjUiLCBcCi0gICAgICAgICAgIjAuMDAwNTI2LCAwLjAwMDUzNywgMC4wMDA1NTYsIDAuMDAwNTYsIDAuMDAwNTYzLCAwLjAwMDU2NSwgMC4wMDA1NjUiLCBcCi0gICAgICAgICAgIjAuMDAwNTE5LCAwLjAwMDUzMiwgMC4wMDA1NTQsIDAuMDAwNTU5LCAwLjAwMDU2MiwgMC4wMDA1NjQsIDAuMDAwNTY1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjIiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjI4OCwgMC4wMDIyODgsIDAuMDAyMjg4LCAwLjAwMjI4NywgMC4wMDIyODYsIDAuMDAyMjg0LCAwLjAwMjI4MiIsIFwKLSAgICAgICAgICAiMC4wMDIyOTIsIDAuMDAyMjk0LCAwLjAwMjI5NiwgMC4wMDIyOTYsIDAuMDAyMjk0LCAwLjAwMjI5NCwgMC4wMDIyOTIiLCBcCi0gICAgICAgICAgIjAuMDAyMjg5LCAwLjAwMjI5MiwgMC4wMDIyOTcsIDAuMDAyMjk3LCAwLjAwMjI5NiwgMC4wMDIyOTUsIDAuMDAyMjk0IiwgXAotICAgICAgICAgICIwLjAwMjI4MywgMC4wMDIyODksIDAuMDAyMjk2LCAwLjAwMjI5NiwgMC4wMDIyOTUsIDAuMDAyMjk2LCAwLjAwMjI5MyIsIFwKLSAgICAgICAgICAiMC4wMDIyODEsIDAuMDAyMjg2LCAwLjAwMjI5NCwgMC4wMDIyOTYsIDAuMDAyMjk2LCAwLjAwMjI5NSwgMC4wMDIyOTQiLCBcCi0gICAgICAgICAgIjAuMDAyMjc0LCAwLjAwMjI4MiwgMC4wMDIyOTMsIDAuMDAyMjk0LCAwLjAwMjI5NSwgMC4wMDIyOTQsIDAuMDAyMjkzIiwgXAotICAgICAgICAgICIwLjAwMjI3LCAwLjAwMjI3OCwgMC4wMDIyOTEsIDAuMDAyMjkzLCAwLjAwMjI5NSwgMC4wMDIyOTQsIDAuMDAyMjk0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwNTQzLCAwLjAwMDU0NCwgMC4wMDA1NDUsIDAuMDAwNTQ1LCAwLjAwMDU0NSwgMC4wMDA1NDUsIDAuMDAwNTQ2IiwgXAotICAgICAgICAgICIwLjAwMDU0OCwgMC4wMDA1NTEsIDAuMDAwNTU2LCAwLjAwMDU1NywgMC4wMDA1NTgsIDAuMDAwNTU4LCAwLjAwMDU1OCIsIFwKLSAgICAgICAgICAiMC4wMDA1NDQsIDAuMDAwNTUsIDAuMDAwNTU5LCAwLjAwMDU2MSwgMC4wMDA1NjIsIDAuMDAwNTYzLCAwLjAwMDU2MyIsIFwKLSAgICAgICAgICAiMC4wMDA1MzcsIDAuMDAwNTQ2LCAwLjAwMDU1OSwgMC4wMDA1NjIsIDAuMDAwNTYzLCAwLjAwMDU2NCwgMC4wMDA1NjUiLCBcCi0gICAgICAgICAgIjAuMDAwNTMxLCAwLjAwMDU0MSwgMC4wMDA1NTgsIDAuMDAwNTYxLCAwLjAwMDU2MywgMC4wMDA1NjUsIDAuMDAwNTY1IiwgXAotICAgICAgICAgICIwLjAwMDUyMiwgMC4wMDA1MzQsIDAuMDAwNTU1LCAwLjAwMDU2LCAwLjAwMDU2MywgMC4wMDA1NjUsIDAuMDAwNTY2IiwgXAotICAgICAgICAgICIwLjAwMDUxNSwgMC4wMDA1MjYsIDAuMDAwNTUzLCAwLjAwMDU1OCwgMC4wMDA1NjIsIDAuMDAwNTY0LCAwLjAwMDU2NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IEFPSTMzWDIgKgotICogLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoQU9JMzNYMikgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjI4Nzk0OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNzA0NzU7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNjk3MjI7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNzA0NzU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNjEyLCAwLjAwMDYxMiwgMC4wMDA2MTEsIDAuMDAwNjExLCAwLjAwMDYxMSwgMC4wMDA2MTEsIDAuMDAwNjExIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNjEzLCAwLjAwMDYxMywgMC4wMDA2MTQsIDAuMDAwNjE0LCAwLjAwMDYxNCwgMC4wMDA2MTQsIDAuMDAwNjE0Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihBMSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNjkxNDg7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNjgxOTI7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNjkxNDg7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNjEyLCAwLjAwMDYxMiwgMC4wMDA2MTEsIDAuMDAwNjExLCAwLjAwMDYxMSwgMC4wMDA2MTEsIDAuMDAwNjExIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNjE0LCAwLjAwMDYxNSwgMC4wMDA2MTUsIDAuMDAwNjE1LCAwLjAwMDYxNSwgMC4wMDA2MTUsIDAuMDAwNjE1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihBMikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNTUzMDc7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNTM4MDE7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNTUzMDc7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzA3LCAwLjAwMDMwNiwgMC4wMDAzMDYsIDAuMDAwMzA2LCAwLjAwMDMwNiwgMC4wMDAzMDYsIDAuMDAwMzA2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNjk1LCAwLjAwMDY5NSwgMC4wMDA2OTcsIDAuMDAwNjk2LCAwLjAwMDY5NiwgMC4wMDA2OTYsIDAuMDAwNjk2Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNzIyNzE7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNzIyNzE7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNzE2ODU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNjEyLCAwLjAwMDYxMiwgMC4wMDA2MTIsIDAuMDAwNjEyLCAwLjAwMDYxMiwgMC4wMDA2MTIsIDAuMDAwNjEyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNjEzLCAwLjAwMDYxMywgMC4wMDA2MTMsIDAuMDAwNjEzLCAwLjAwMDYxMywgMC4wMDA2MTMsIDAuMDAwNjEzIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCMSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNjczMzM7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNjczMzM7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNjY4OTU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNjEyLCAwLjAwMDYxMiwgMC4wMDA2MTIsIDAuMDAwNjEyLCAwLjAwMDYxMiwgMC4wMDA2MTIsIDAuMDAwNjEyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNjE0LCAwLjAwMDYxNCwgMC4wMDA2MTQsIDAuMDAwNjE0LCAwLjAwMDYxNSwgMC4wMDA2MTUsIDAuMDAwNjE1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCMikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNTIxOTc7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNTIwNTQ7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNTIxOTc7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjkzLCAwLjAwMDI5MywgMC4wMDAyOTMsIDAuMDAwMjkzLCAwLjAwMDI5MywgMC4wMDAyOTMsIDAuMDAwMjkzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNjk1LCAwLjAwMDY5NSwgMC4wMDA2OTUsIDAuMDAwNjk1LCAwLjAwMDY5NiwgMC4wMDA2OTYsIDAuMDAwNjk2Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMDc0ODc4OwotICAgIGZ1bmN0aW9uIDogIighKCgoQjAgQjEpIEIyKSsoKEEwIEExKSBBMikpKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTAiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE0ODQ2OSwgMC41MjIyODksIDAuODE5ODE0LCAxLjE5MzIsIDEuNTY3NjEsIDEuOTQwODksIDIuMzE1NDEiLCBcCi0gICAgICAgICAgIjAuMTYwMTY2LCAwLjUzNDAzMywgMC44MzE1NDUsIDEuMjA1MzQsIDEuNTc4ODMsIDEuOTUzMjgsIDIuMzI2NiIsIFwKLSAgICAgICAgICAiMC4xNzQ5MDgsIDAuNTQ4Nzk4LCAwLjg0NjI0NSwgMS4yMTk2OSwgMS41OTM4MSwgMS45Njc0NSwgMi4zNDIwMSIsIFwKLSAgICAgICAgICAiMC4xODkwNjQsIDAuNTYzMDkxLCAwLjg2MDQ4NywgMS4yMzQyMSwgMS42MDc4MiwgMS45ODIyMSwgMi4zNTUzNiIsIFwKLSAgICAgICAgICAiMC4yMDI3NDMsIDAuNTc2NzQ0LCAwLjg3NDE0OCwgMS4yNDc1NiwgMS42MjE1OSwgMS45OTUzMiwgMi4zNjk5IiwgXAotICAgICAgICAgICIwLjIyMzY0OCwgMC41OTc2MzQsIDAuODk1MjQ3LCAxLjI2ODQ2LCAxLjY0MjQsIDIuMDE2NjcsIDIuMzkwMSIsIFwKLSAgICAgICAgICAiMC4yNDE0OTYsIDAuNjE1NTkxLCAwLjkxMzIwNiwgMS4yODY1OCwgMS42NjA0MiwgMi4wMzQxOCwgMi40MDg3MyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMjMwMjIsIDAuOTUxOTIyLCAxLjUzNjY3LCAyLjI2ODk0LCAzLjAwMDM5LCAzLjczMDkzLCA0LjQ2NDk4IiwgXAotICAgICAgICAgICIwLjIyMzIyNCwgMC45NTE5MjksIDEuNTM2MywgMi4yNjgyMSwgMi45OTg3OSwgMy43MzE3NSwgNC40NjQ0NSIsIFwKLSAgICAgICAgICAiMC4yMjMwOTEsIDAuOTUxOTc4LCAxLjUzNzQyLCAyLjI2NzY3LCAzLjAwMDYsIDMuNzMxLCA0LjQ2NDExIiwgXAotICAgICAgICAgICIwLjIyMzEyNSwgMC45NTExOTcsIDEuNTM2MjUsIDIuMjY5MjUsIDIuOTk4OCwgMy43MzE5NiwgNC40NjU2NCIsIFwKLSAgICAgICAgICAiMC4yMjMzMTYsIDAuOTUxOTM5LCAxLjUzNjU4LCAyLjI2NzY4LCAyLjk5OTM2LCAzLjczMTEzLCA0LjQ2NDciLCBcCi0gICAgICAgICAgIjAuMjI0NDUzLCAwLjk1MTQxNCwgMS41MzY2NiwgMi4yNjkwMSwgMy4wMDA1MywgMy43MzM2MywgNC40NjM4NyIsIFwKLSAgICAgICAgICAiMC4yMjY1NDUsIDAuOTUxOTAyLCAxLjUzNjU5LCAyLjI2OTIzLCAyLjk5OTM2LCAzLjczMTIxLCA0LjQ2NDcxIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI0NzkwOSwgMC44NjQ1MjIsIDEuMzU0NiwgMS45NjcxNywgMi41Nzk2LCAzLjE5MDkyLCAzLjgwMjEiLCBcCi0gICAgICAgICAgIjAuMjU5Mjk2LCAwLjg3NTk3OCwgMS4zNjY3OSwgMS45Nzg2OCwgMi41OTEyMiwgMy4yMDI3NywgMy44MTMyIiwgXAotICAgICAgICAgICIwLjI3MjEzMywgMC44ODg4NjgsIDEuMzc5NjUsIDEuOTkyLCAyLjYwMzczLCAzLjIxNTM4LCAzLjgyNjc5IiwgXAotICAgICAgICAgICIwLjI4NDMxMiwgMC45MDE1MDIsIDEuMzkyMzIsIDIuMDA0ODIsIDIuNjE2OTgsIDMuMjI4MzIsIDMuODM5MDQiLCBcCi0gICAgICAgICAgIjAuMjk2MTU5LCAwLjkxMzUzMiwgMS40MDQyNiwgMi4wMTY4NiwgMi42Mjg3MSwgMy4yMzk2NiwgMy44NTEyNCIsIFwKLSAgICAgICAgICAiMC4zMTQ5MjMsIDAuOTMyMDg0LCAxLjQyMzIxLCAyLjAzNjA1LCAyLjY0NzcyLCAzLjI1ODczLCAzLjg3MDIxIiwgXAotICAgICAgICAgICIwLjMzMTM0MSwgMC45NDg3MSwgMS40MzkxNSwgMi4wNTI1MywgMi42NjQxMSwgMy4yNzU5NCwgMy44ODY2OCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zOTY2MDQsIDEuNTQ2ODYsIDIuNDY2ODEsIDMuNjE3MjUsIDQuNzY3NzksIDUuOTE2LCA3LjA2NTgyIiwgXAotICAgICAgICAgICIwLjM5NjYxLCAxLjU0Njk4LCAyLjQ2Njc5LCAzLjYxNjM1LCA0Ljc2NzY0LCA1LjkxNjQ2LCA3LjA2NjYzIiwgXAotICAgICAgICAgICIwLjM5NjYwOCwgMS41NDY4MSwgMi40NjY4OSwgMy42MTc0NywgNC43Njc4LCA1LjkxNzQ1LCA3LjA2NjgiLCBcCi0gICAgICAgICAgIjAuMzk2NTgyLCAxLjU0Njg4LCAyLjQ2NjgxLCAzLjYxNzU1LCA0Ljc2NzI5LCA1LjkxNjYsIDcuMDY2NjUiLCBcCi0gICAgICAgICAgIjAuMzk2NTU3LCAxLjU0Njg2LCAyLjQ2NjkyLCAzLjYxNzMxLCA0Ljc2NzkyLCA1LjkxNjEzLCA3LjA2NjA0IiwgXAotICAgICAgICAgICIwLjM5Njg3MiwgMS41NDY4MywgMi40NjcxNywgMy42MTczNiwgNC43Njc3NSwgNS45MTU2NSwgNy4wNjY4MyIsIFwKLSAgICAgICAgICAiMC4zOTgxNzQsIDEuNTQ2ODIsIDIuNDY2OSwgMy42MTc0NSwgNC43Njc4NSwgNS45MTU2NCwgNy4wNjU2OCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTQzOTE3LCAwLjUxODI0NCwgMC44MTY4ODYsIDEuMTg5NTgsIDEuNTYyMTMsIDEuOTM1MjcsIDIuMzA3NTkiLCBcCi0gICAgICAgICAgIjAuMTU1NzU0LCAwLjUzMDMwMSwgMC44Mjg3MTUsIDEuMjAxNDUsIDEuNTc0LCAxLjk0NjY3LCAyLjMxOTM5IiwgXAotICAgICAgICAgICIwLjE3MDU2OSwgMC41NDUyMDcsIDAuODQzNjU2LCAxLjIxNjY1LCAxLjU4ODk1LCAxLjk2MjE2LCAyLjMzNDc5IiwgXAotICAgICAgICAgICIwLjE4NDczNywgMC41NTk0NTIsIDAuODU3OTMxLCAxLjIzMDYyLCAxLjYwMzIxLCAxLjk3NjM3LCAyLjM0ODU3IiwgXAotICAgICAgICAgICIwLjE5ODI0OSwgMC41NzMsIDAuODcxNTE2LCAxLjI0NDM1LCAxLjYxNzM0LCAxLjk4OTc1LCAyLjM2MTkxIiwgXAotICAgICAgICAgICIwLjIxOTA2NSwgMC41OTQxOSwgMC44OTI3MTIsIDEuMjY1MzIsIDEuNjM3OTgsIDIuMDEwNzUsIDIuMzgzMTkiLCBcCi0gICAgICAgICAgIjAuMjM3MTIyLCAwLjYxMTk5MywgMC45MTA1OCwgMS4yODMzMywgMS42NTU3NCwgMi4wMjkwMywgMi40MDE5MSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMTgyOTEsIDAuOTQ4NjE5LCAxLjUzMTk4LCAyLjI2MDkyLCAyLjk4ODA4LCAzLjcxODI1LCA0LjQ1MTEzIiwgXAotICAgICAgICAgICIwLjIxODIzNiwgMC45NDc5MDEsIDEuNTMwNzUsIDIuMjYwODQsIDIuOTg3OSwgMy43MTc5NiwgNC40NTE2MiIsIFwKLSAgICAgICAgICAiMC4yMTgxNDUsIDAuOTQ3ODYsIDEuNTMxMzgsIDIuMjYwMTEsIDIuOTg4MDgsIDMuNzE4MDksIDQuNDQ5NiIsIFwKLSAgICAgICAgICAiMC4yMTgyNiwgMC45NDc5MDEsIDEuNTMxOTYsIDIuMjU5NDYsIDIuOTg4MDgsIDMuNzE4MjUsIDQuNDUzNDMiLCBcCi0gICAgICAgICAgIjAuMjE4MzQzLCAwLjk0NzcwMiwgMS41MzE5OSwgMi4yNjEwNywgMi45ODg4NywgMy43MTk4MywgNC40NTAyNyIsIFwKLSAgICAgICAgICAiMC4yMTk2MjksIDAuOTQ3Njk3LCAxLjUzMTEyLCAyLjI1OTQsIDIuOTg5ODUsIDMuNzE4MzgsIDQuNDUxNTgiLCBcCi0gICAgICAgICAgIjAuMjIxOTIzLCAwLjk0ODQzMSwgMS41MzA4OSwgMi4yNTk4OSwgMi45ODk3NCwgMy43MTk3MywgNC40NDk1MiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yNDMwNDIsIDAuODU5NDkzLCAxLjM1MDExLCAxLjk2MjY2LCAyLjU3NDgzLCAzLjE4NjIxLCAzLjc5NzA2IiwgXAotICAgICAgICAgICIwLjI1MzQ5NCwgMC44NzAxNjUsIDEuMzYwNzcsIDEuOTczMTUsIDIuNTg1NDcsIDMuMTk2MTksIDMuODA3NyIsIFwKLSAgICAgICAgICAiMC4yNjYwNjUsIDAuODgyODQ5LCAxLjM3MzQ3LCAxLjk4NjY0LCAyLjU5Nzk1LCAzLjIwOTE1LCAzLjgyMDYxIiwgXAotICAgICAgICAgICIwLjI3ODc4MiwgMC44OTU2MSwgMS4zODY2NSwgMS45OTg2OSwgMi42MTEwNiwgMy4yMjI1MSwgMy44MzM2NCIsIFwKLSAgICAgICAgICAiMC4yOTEyOTcsIDAuOTA4Nzc5LCAxLjM5OTM3LCAyLjAxMjQ0LCAyLjYyMzc4LCAzLjIzNTAyLCAzLjg0NjQ1IiwgXAotICAgICAgICAgICIwLjMxMTczOCwgMC45Mjg5ODQsIDEuNDIwMTQsIDIuMDMyNjcsIDIuNjQ0MzgsIDMuMjU1NzcsIDMuODY3MDYiLCBcCi0gICAgICAgICAgIjAuMzI5NCwgMC45NDcxMDUsIDEuNDM3NzEsIDIuMDUwNjUsIDIuNjYyNTgsIDMuMjc0MjMsIDMuODg0OTYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzk2NjA2LCAxLjU0Njk2LCAyLjQ2NjkyLCAzLjYxNzMyLCA0Ljc2NjY3LCA1LjkxNzM4LCA3LjA2NjkxIiwgXAotICAgICAgICAgICIwLjM5NjYxMiwgMS41NDY4NiwgMi40NjY4MywgMy42MTY5LCA0Ljc2NzI1LCA1LjkxNjk0LCA3LjA2Njc3IiwgXAotICAgICAgICAgICIwLjM5NjYwNiwgMS41NDY4LCAyLjQ2NzQyLCAzLjYxNjQ1LCA0Ljc2Nzc5LCA1LjkxNzM1LCA3LjA2NTMzIiwgXAotICAgICAgICAgICIwLjM5NjU0MywgMS41NDY4MywgMi40NjY4MiwgMy42MTc4NiwgNC43NjY2NiwgNS45MTc2NywgNy4wNjY4NCIsIFwKLSAgICAgICAgICAiMC4zOTY1MDksIDEuNTQ2ODIsIDIuNDY2NzgsIDMuNjE3NTksIDQuNzY2NDMsIDUuOTE2NiwgNy4wNjcwMiIsIFwKLSAgICAgICAgICAiMC4zOTcwODgsIDEuNTQ2ODEsIDIuNDY3MDEsIDMuNjE2NTEsIDQuNzY2NCwgNS45MTczNywgNy4wNjY4MyIsIFwKLSAgICAgICAgICAiMC4zOTg5NzgsIDEuNTQ2ODcsIDIuNDY2ODcsIDMuNjE3MjksIDQuNzY3NTEsIDUuOTE2ODUsIDcuMDY2NjkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTIiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEzOTUyLCAwLjUxNjczOSwgMC44MTc2NDUsIDEuMTkzNzEsIDEuNTY5MTQsIDEuOTQ1NTUsIDIuMzIxMTMiLCBcCi0gICAgICAgICAgIjAuMTUxNTEsIDAuNTI4ODU3LCAwLjgyOTgxMSwgMS4yMDU3MywgMS41ODEyMywgMS45NTc1LCAyLjMzMjciLCBcCi0gICAgICAgICAgIjAuMTY2Mjc1LCAwLjU0Mzc0MywgMC44NDQ2NzQsIDEuMjIwMzcsIDEuNTk2MTQsIDEuOTcxOTgsIDIuMzQ4NDYiLCBcCi0gICAgICAgICAgIjAuMTgwMzYsIDAuNTU3OTI5LCAwLjg1ODcxOSwgMS4yMzQ2MywgMS42MTA4NCwgMS45ODU5OCwgMi4zNjE3NiIsIFwKLSAgICAgICAgICAiMC4xOTM5NDksIDAuNTcxNTY0LCAwLjg3MjYzMSwgMS4yNDgyMywgMS42MjQyLCAxLjk5OTc1LCAyLjM3NjE3IiwgXAotICAgICAgICAgICIwLjIxNDczOCwgMC41OTI0NTksIDAuODkzMzI5LCAxLjI2OTE5LCAxLjY0NTI2LCAyLjAyMDY2LCAyLjM5NzA3IiwgXAotICAgICAgICAgICIwLjIzMjQ4NCwgMC42MTAyODQsIDAuOTExMzQyLCAxLjI4NzI2LCAxLjY2MjkzLCAyLjAzODYyLCAyLjQxNTA0Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIxNDEwNywgMC45NTAxNzEsIDEuNTM3OTUsIDIuMjc1OTksIDMuMDA4NTMsIDMuNzU3NjgsIDQuNDk2NjciLCBcCi0gICAgICAgICAgIjAuMjE0MjM2LCAwLjk0OTI5MSwgMS41MzgyOSwgMi4yNzMzOSwgMy4wMDc3OSwgMy43NTY5NiwgNC40ODI2NCIsIFwKLSAgICAgICAgICAiMC4yMTQxMzQsIDAuOTQ5MjkxLCAxLjUzODI0LCAyLjI3MzI4LCAzLjAwNzgsIDMuNzU1OTMsIDQuNDg1NjEiLCBcCi0gICAgICAgICAgIjAuMjE0MTQ3LCAwLjk1MDE0OCwgMS41MzY2MywgMi4yNzE2MywgMy4wMTYwOCwgMy43NDQzOCwgNC40ODM4MyIsIFwKLSAgICAgICAgICAiMC4yMTQyMjMsIDAuOTUwMTg4LCAxLjUzNjkyLCAyLjI3NjAzLCAzLjAwOTIyLCAzLjc1NzM3LCA0LjQ5NTgyIiwgXAotICAgICAgICAgICIwLjIxNTY3OCwgMC45NDkzMTksIDEuNTM2NjUsIDIuMjcxMDgsIDMuMDE2MjgsIDMuNzQ0NTYsIDQuNDk2NDgiLCBcCi0gICAgICAgICAgIjAuMjE4MTg3LCAwLjk1MDE4MiwgMS41MzY5OSwgMi4yODI2MSwgMy4wMjQzOSwgMy43NDQ3LCA0LjQ5NjU4Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIzMzIwNywgMC44NDk1ODMsIDEuMzQwMTQsIDEuOTUzMzEsIDIuNTY0NjEsIDMuMTc2MDQsIDMuNzg3MjQiLCBcCi0gICAgICAgICAgIjAuMjQyNTQ5LCAwLjg1OTEyMSwgMS4zNDk0MSwgMS45NjIyNCwgMi41NzM1MywgMy4xODU0NywgMy43OTcxIiwgXAotICAgICAgICAgICIwLjI1NDQyNywgMC44NzE0OTQsIDEuMzYxODQsIDEuOTczNzQsIDIuNTg2ODIsIDMuMTk3ODEsIDMuODA5MjEiLCBcCi0gICAgICAgICAgIjAuMjY3MjA5LCAwLjg4NDM4NSwgMS4zNzQ1LCAxLjk4NzMxLCAyLjU5OTExLCAzLjIxMDgzLCAzLjgyMjE4IiwgXAotICAgICAgICAgICIwLjI3Nzk1MywgMC44OTU5NjcsIDEuMzg2NjUsIDEuOTk5MzQsIDIuNjExNTQsIDMuMjIyOSwgMy44MzM4MiIsIFwKLSAgICAgICAgICAiMC4yOTgwMTgsIDAuOTE1NDQzLCAxLjQwNTcyLCAyLjAxOTE3LCAyLjYzMDMyLCAzLjI0MiwgMy44NTM0OSIsIFwKLSAgICAgICAgICAiMC4zMTUyNzEsIDAuOTMyNjUxLCAxLjQyMzA2LCAyLjAzNTk4LCAyLjY0ODA4LCAzLjI1OTg2LCAzLjg3MDQ5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjM5NjYxOCwgMS41NDY4MiwgMi40NjY4NSwgMy42MTcyMywgNC43NjYzMSwgNS45MTY1LCA3LjA2NzI0IiwgXAotICAgICAgICAgICIwLjM5NjU4MiwgMS41NDY4NSwgMi40NjY5NCwgMy42MTY3NywgNC43NjYwNSwgNS45MTYxMywgNy4wNjUyMiIsIFwKLSAgICAgICAgICAiMC4zOTY2MTIsIDEuNTQ3MTIsIDIuNDY2ODQsIDMuNjE2NDcsIDQuNzY2MzQsIDUuOTE1NTksIDcuMDY2NzciLCBcCi0gICAgICAgICAgIjAuMzk2NjIzLCAxLjU0NzA5LCAyLjQ2Njc2LCAzLjYxNzY5LCA0Ljc2NjcsIDUuOTE3NTgsIDcuMDY2ODkiLCBcCi0gICAgICAgICAgIjAuMzk2MzM2LCAxLjU0NzA1LCAyLjQ2Njc5LCAzLjYxNjQzLCA0Ljc2NzI5LCA1LjkxNjk1LCA3LjA2NjkyIiwgXAotICAgICAgICAgICIwLjM5ODAyOCwgMS41NDY4OSwgMi40NjY3OSwgMy42MTczNywgNC43Njc3MywgNS45MTU0OCwgNy4wNjY4NCIsIFwKLSAgICAgICAgICAiMC40MDE3MSwgMS41NDY4MywgMi40NjY4MiwgMy42MTY2MiwgNC43NjczNiwgNS45MTc4NCwgNy4wNjY3OSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTIwNjIsIDAuNDk0NDYzLCAwLjc5MTk5NSwgMS4xNjQ2NSwgMS41NDAyNCwgMS45MTY1MiwgMi4yOTIzIiwgXAotICAgICAgICAgICIwLjEzMDk0OCwgMC41MDQ5MTIsIDAuODAyMywgMS4xNzQ4NiwgMS41NTA3MSwgMS45MjYzNiwgMi4zMDI3OCIsIFwKLSAgICAgICAgICAiMC4xNDQxNTIsIDAuNTE4MDg2LCAwLjgxNTY1MywgMS4xODgwOSwgMS41NjQxOSwgMS45Mzk1NywgMi4zMTUyOCIsIFwKLSAgICAgICAgICAiMC4xNTcxMTYsIDAuNTMxMTA0LCAwLjgyODUwOCwgMS4yMDEyMywgMS41NzY4LCAxLjk1Mjc3LCAyLjMyOTAxIiwgXAotICAgICAgICAgICIwLjE3MDIyNiwgMC41NDQyNTEsIDAuODQxNzQsIDEuMjE0MzUsIDEuNTkwNTQsIDEuOTY2MTIsIDIuMzQxMzgiLCBcCi0gICAgICAgICAgIjAuMTkxMzYzLCAwLjU2NTI2OCwgMC44NjI3ODQsIDEuMjM1MzcsIDEuNjExMTcsIDEuOTg2NjUsIDIuMzYzMDYiLCBcCi0gICAgICAgICAgIjAuMjEwOTQ3LCAwLjU4MzYzNywgMC44ODEyMTYsIDEuMjUzNjcsIDEuNjI5MzYsIDIuMDA0OTUsIDIuMzgwNzkiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjIyODAxLCAwLjk1MDI3MSwgMS41Mzc3NiwgMi4yNzE2OSwgMy4wMDU2OSwgMy43NDA4NSwgNC40NzYxOSIsIFwKLSAgICAgICAgICAiMC4yMjI3MTIsIDAuOTQ5OTg1LCAxLjUzNjYsIDIuMjcxMTIsIDMuMDA2MjcsIDMuNzQwMTEsIDQuNDc1NDUiLCBcCi0gICAgICAgICAgIjAuMjIxOTc4LCAwLjk1MDk1NywgMS41MzcxMSwgMi4yNzExNiwgMy4wMDY2OSwgMy43NDAwNywgNC40NzQ1NCIsIFwKLSAgICAgICAgICAiMC4yMjIzNzMsIDAuOTUxMTA0LCAxLjUzNjU4LCAyLjI3MzAyLCAzLjAwNTM5LCAzLjc0MDg4LCA0LjQ3NTkyIiwgXAotICAgICAgICAgICIwLjIyNDY2LCAwLjk1MTA1NywgMS41MzY1NSwgMi4yNzE2OSwgMy4wMDYxLCAzLjc0MjgzLCA0LjQ3NzE1IiwgXAotICAgICAgICAgICIwLjIzMTUxMSwgMC45NTEwMzksIDEuNTM3MTMsIDIuMjczMDMsIDMuMDA2MzMsIDMuNzM5ODQsIDQuNDc1MzQiLCBcCi0gICAgICAgICAgIjAuMjM4NTk5LCAwLjk1MDE0NiwgMS41MzgxOCwgMi4yNzE2OCwgMy4wMDU3LCAzLjczOTgxLCA0LjQ3NDU1Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE4NTYzMSwgMC43OTc1NTgsIDEuMjg3MDEsIDEuODk4OSwgMi41MTA5LCAzLjEyMjM5LCAzLjczNDQ0IiwgXAotICAgICAgICAgICIwLjE5NzMwMywgMC44MTAwODgsIDEuMjk5NDUsIDEuOTExMjIsIDIuNTIyOTIsIDMuMTM0NzIsIDMuNzQ2NjQiLCBcCi0gICAgICAgICAgIjAuMjEwMjk2LCAwLjgyMzA4MywgMS4zMTI2NCwgMS45MjQ3NywgMi41MzY0NywgMy4xNDgzNCwgMy43NjAxNSIsIFwKLSAgICAgICAgICAiMC4yMjI0OTIsIDAuODM1NDM3LCAxLjMyNTMxLCAxLjkzNzEzLCAyLjU0OSwgMy4xNjEwNywgMy43NzI2MyIsIFwKLSAgICAgICAgICAiMC4yMzQyNTEsIDAuODQ3NTAzLCAxLjMzNzE4LCAxLjk0OTI2LCAyLjU2MTA0LCAzLjE3Mjc4LCAzLjc4NDY4IiwgXAotICAgICAgICAgICIwLjI1MjcwMywgMC44NjY0MzcsIDEuMzU2MTYsIDEuOTY4NjQsIDIuNTc5ODQsIDMuMTkxODUsIDMuODAzNzciLCBcCi0gICAgICAgICAgIjAuMjY4Nzk0LCAwLjg4MjY5OSwgMS4zNzI2LCAxLjk4NDQyLCAyLjU5NjU5LCAzLjIwODA4LCAzLjgyMDMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzQzMzM3LCAxLjQ4OTQsIDIuNDA4MDMsIDMuNTU3MDgsIDQuNzA1ODcsIDUuODU0ODMsIDcuMDA0MTYiLCBcCi0gICAgICAgICAgIjAuMzQzMzM1LCAxLjQ4OTYyLCAyLjQwODE5LCAzLjU1NzE2LCA0LjcwNTg2LCA1Ljg1NTE2LCA3LjAwNDYiLCBcCi0gICAgICAgICAgIjAuMzQzMzEsIDEuNDg5MzcsIDIuNDA4MDYsIDMuNTU2MzEsIDQuNzA1NzMsIDUuODU0MjMsIDcuMDA0MjgiLCBcCi0gICAgICAgICAgIjAuMzQzMzQ4LCAxLjQ4OTQ1LCAyLjQwODA5LCAzLjU1NjY1LCA0LjcwNTMxLCA1Ljg1NTU1LCA3LjAwNDYiLCBcCi0gICAgICAgICAgIjAuMzQzMzczLCAxLjQ4OTU5LCAyLjQwNzg1LCAzLjU1Njg1LCA0LjcwNDc4LCA1Ljg1NTY3LCA3LjAwNDU3IiwgXAotICAgICAgICAgICIwLjM0NDY4NywgMS40ODk0OSwgMi40MDgxLCAzLjU1NjMxLCA0LjcwNTc4LCA1Ljg1NDA2LCA3LjAwNDU3IiwgXAotICAgICAgICAgICIwLjM0NjkzNiwgMS40ODkzNSwgMi40MDc3OCwgMy41NTY1NSwgNC43MDYwNCwgNS44NTUwNywgNy4wMDQ2OCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTE2NDQ2LCAwLjQ5MjAxMywgMC43OTE3OCwgMS4xNjU1NiwgMS41Mzk1NiwgMS45MTM0MiwgMi4yODk0IiwgXAotICAgICAgICAgICIwLjEyNzA0NiwgMC41MDI5MSwgMC44MDIyNTksIDEuMTc2MjcsIDEuNTUwMjgsIDEuOTI0MiwgMi4yOTk5MyIsIFwKLSAgICAgICAgICAiMC4xNDAzMTEsIDAuNTE2NTU0LCAwLjgxNTg5MywgMS4xOTAxMSwgMS41NjQ0LCAxLjkzNzU0LCAyLjMxNDIyIiwgXAotICAgICAgICAgICIwLjE1MzEwMiwgMC41MjkwNzUsIDAuODI4NjI3LCAxLjIwMjc3LCAxLjU3Njg1LCAxLjk1MDg0LCAyLjMyNjA5IiwgXAotICAgICAgICAgICIwLjE2NjIzLCAwLjU0MjIyNCwgMC44NDE3NzEsIDEuMjE1NjQsIDEuNTg5ODIsIDEuOTYzNywgMi4zMzk2MiIsIFwKLSAgICAgICAgICAiMC4xODcyNTMsIDAuNTYzMTY0LCAwLjg2Mjc0MiwgMS4yMzY3NiwgMS42MTA3MiwgMS45ODQ3OSwgMi4zNjA0MSIsIFwKLSAgICAgICAgICAiMC4yMDY3MjYsIDAuNTgxNDU2LCAwLjg4MDk2NSwgMS4yNTQ4NywgMS42MjkwOSwgMi4wMDMzNywgMi4zNzgyMiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMTg5MTIsIDAuOTUyMTYzLCAxLjUzNjYsIDIuMjY4ODcsIDMuMDA1MDQsIDMuNzQwNjQsIDQuNDc1OTgiLCBcCi0gICAgICAgICAgIjAuMjE4NjU4LCAwLjk1MTEyMSwgMS41Mzc0MiwgMi4yNjg4OCwgMy4wMDU5OCwgMy43NDA5OCwgNC40NzYxMyIsIFwKLSAgICAgICAgICAiMC4yMTc4MTksIDAuOTUxMzY5LCAxLjUzNzQsIDIuMjcwMDgsIDMuMDA0MzYsIDMuNzQwMDUsIDQuNDc2NjQiLCBcCi0gICAgICAgICAgIjAuMjE4MzYxLCAwLjk1MjAwNSwgMS41Mzc1MiwgMi4yNzAxMSwgMy4wMDU0MiwgMy43NDA0LCA0LjQ3Nzk5IiwgXAotICAgICAgICAgICIwLjIyMTE1LCAwLjk1MTEwMywgMS41MzY0NCwgMi4yNjg5LCAzLjAwNDU3LCAzLjc0MTMsIDQuNDc3ODUiLCBcCi0gICAgICAgICAgIjAuMjI4MzE5LCAwLjk1MTg4NCwgMS41MzY2OCwgMi4yNjg3OSwgMy4wMDQzLCAzLjc0MjE4LCA0LjQ3NjAzIiwgXAotICAgICAgICAgICIwLjIzNTczOCwgMC45NTE2NjUsIDEuNTM2MjYsIDIuMjY4ODYsIDMuMDA0NTcsIDMuNzQxNTYsIDQuNDc4NDEiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTgwNjEzLCAwLjc5MjcwNCwgMS4yODIxOCwgMS44OTQxNCwgMi41MDU2NSwgMy4xMTc2MywgMy43Mjk1MSIsIFwKLSAgICAgICAgICAiMC4xOTE2MjIsIDAuODA0MDExLCAxLjI5MzUyLCAxLjkwNTMxLCAyLjUxNzM2LCAzLjEyODg1LCAzLjc0MDk5IiwgXAotICAgICAgICAgICIwLjIwNDM4NiwgMC44MTcxODMsIDEuMzA2NzcsIDEuOTE5MTIsIDIuNTMwNzcsIDMuMTQyNDIsIDMuNzU0MjYiLCBcCi0gICAgICAgICAgIjAuMjE2OTQzLCAwLjgzMDA3LCAxLjMxOTY0LCAxLjkzMTc4LCAyLjU0MzQ5LCAzLjE1NTQ3LCAzLjc2NzIiLCBcCi0gICAgICAgICAgIjAuMjI5NTU4LCAwLjg0MzI4NSwgMS4zMzI0NiwgMS45NDQ3LCAyLjU1NjQ0LCAzLjE2ODU2LCAzLjc4MDAyIiwgXAotICAgICAgICAgICIwLjI0OTUwMiwgMC44NjMzLCAxLjM1MzExLCAxLjk2NTAxLCAyLjU3NzI3LCAzLjE4OSwgMy44MDA4OSIsIFwKLSAgICAgICAgICAiMC4yNjcxNywgMC44ODE1NzYsIDEuMzcxMjIsIDEuOTgzMzEsIDIuNTk0OTksIDMuMjA3MDcsIDMuODE4OTUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzQzMzA2LCAxLjQ4OTM2LCAyLjQwODA2LCAzLjU1NjA1LCA0LjcwNTgyLCA1Ljg1MzcyLCA2Ljk5OTgiLCBcCi0gICAgICAgICAgIjAuMzQzMzQ2LCAxLjQ4OTU4LCAyLjQwODA4LCAzLjU1NjUzLCA0LjcwNTQ1LCA1Ljg1MzQ0LCA3LjAwNDU1IiwgXAotICAgICAgICAgICIwLjM0MzMyLCAxLjQ4OTQyLCAyLjQwNzg0LCAzLjU1NjMsIDQuNzA2MjYsIDUuODUzMjksIDcuMDA0NTgiLCBcCi0gICAgICAgICAgIjAuMzQzMzAyLCAxLjQ4OTQ0LCAyLjQwODA4LCAzLjU1NjI4LCA0LjcwNTc4LCA1Ljg1NTQ3LCA3LjAwNTMzIiwgXAotICAgICAgICAgICIwLjM0MzQ2MiwgMS40ODk2NiwgMi40MDgxMiwgMy41NTYzOCwgNC43MDYzNCwgNS44NTM4NCwgNy4wMDI0MSIsIFwKLSAgICAgICAgICAiMC4zNDU2NzcsIDEuNDg5NDUsIDIuNDA4MDgsIDMuNTU2NTQsIDQuNzA0ODksIDUuODU1MDEsIDcuMDA0MzQiLCBcCi0gICAgICAgICAgIjAuMzQ5MTU4LCAxLjQ4OTQ5LCAyLjQwODA3LCAzLjU1NjM1LCA0LjcwNDk0LCA1Ljg1Mzk0LCA3LjAwMzQ5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIyIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTA3NjgsIDAuNDg2Mjg0LCAwLjc4NTg4NywgMS4xNTk3NiwgMS41MzQwNywgMS45MDg0NSwgMi4yODM5OCIsIFwKLSAgICAgICAgICAiMC4xMjE0MDIsIDAuNDk3MDkxLCAwLjc5NjYwNywgMS4xNzA5MiwgMS41NDUwOCwgMS45MTg2NiwgMi4yOTUxNiIsIFwKLSAgICAgICAgICAiMC4xMzQ5NSwgMC41MTA3NjYsIDAuODEwMDkyLCAxLjE4NDI3LCAxLjU1ODMsIDEuOTMyNDQsIDIuMzA4NTEiLCBcCi0gICAgICAgICAgIjAuMTQ3NTI2LCAwLjUyMzM1NSwgMC44MjI4NzQsIDEuMTk2OTksIDEuNTcwOTksIDEuOTQ1NDksIDIuMzIwNzciLCBcCi0gICAgICAgICAgIjAuMTYwNjIsIDAuNTM2NDkyLCAwLjgzNjA1NCwgMS4yMTAyNSwgMS41ODQ3MiwgMS45NTg1NiwgMi4zMzQ4NyIsIFwKLSAgICAgICAgICAiMC4xODI0NTcsIDAuNTU3NDgxLCAwLjg1NzAzLCAxLjIzMTI1LCAxLjYwNTA4LCAxLjk3OTUsIDIuMzU1NjYiLCBcCi0gICAgICAgICAgIjAuMjAxMjI2LCAwLjU3NTc5MywgMC44NzU0MzIsIDEuMjQ5NjcsIDEuNjIzNTgsIDEuOTk3NzQsIDIuMzczNTciKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjEzMDc3LCAwLjk0Nzc0OSwgMS41MzM1NiwgMi4yNjg2NCwgMy4wMjQxMSwgMy43NDMxNywgNC40OTY3OSIsIFwKLSAgICAgICAgICAiMC4yMTI4NTEsIDAuOTQ3NzIxLCAxLjUzNTQ4LCAyLjI3NjEzLCAzLjAxNTc5LCAzLjc0Njc1LCA0LjQ4MjEzIiwgXAotICAgICAgICAgICIwLjIxMTk0MywgMC45NDY5MzEsIDEuNTM0OTEsIDIuMjgyNzMsIDMuMDA3MTEsIDMuNzU1NzQsIDQuNDgzNTEiLCBcCi0gICAgICAgICAgIjAuMjEyOTMyLCAwLjk0NzczNywgMS41MzQxOCwgMi4yNzYyNiwgMy4wMTgwNCwgMy43NTcyNywgNC40ODU4NCIsIFwKLSAgICAgICAgICAiMC4yMTYxMDIsIDAuOTQ2ODY5LCAxLjUzNTYyLCAyLjI3NTQ1LCAzLjAxNjU2LCAzLjc1MjI4LCA0LjQ4MjgzIiwgXAotICAgICAgICAgICIwLjIyMjg4MSwgMC45NDc3MjQsIDEuNTM1MzcsIDIuMjgyOTgsIDMuMDE1NDYsIDMuNzQ0MjcsIDQuNDgyMTciLCBcCi0gICAgICAgICAgIjAuMjMxMTY5LCAwLjk0NzY4OSwgMS41MzQ0MywgMi4yNzUzOCwgMy4wMDkyMSwgMy43NDc5OSwgNC40ODY5OCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNzA2MDEsIDAuNzgyNDk2LCAxLjI3MjI0LCAxLjg4NDIxLCAyLjQ5NTk5LCAzLjEwNzUsIDMuNzE5NDkiLCBcCi0gICAgICAgICAgIjAuMTgwMzk3LCAwLjc5Mjc5OCwgMS4yODIzLCAxLjg5NDE4LCAyLjUwNjE4LCAzLjExNzgzLCAzLjcyOTcxIiwgXAotICAgICAgICAgICIwLjE5MjQ0MSwgMC44MDUzMDgsIDEuMjk0ODksIDEuOTA2NzEsIDIuNTE4NywgMy4xMzA2LCAzLjc0MjM3IiwgXAotICAgICAgICAgICIwLjIwNDUwMiwgMC44MTgxNzksIDEuMzA3ODUsIDEuOTE5OTUsIDIuNTMxNTEsIDMuMTQzNSwgMy43NTUzNiIsIFwKLSAgICAgICAgICAiMC4yMTY0MTYsIDAuODI5OSwgMS4zMTk0OSwgMS45MzEzLCAyLjU0MzQzLCAzLjE1NTQ4LCAzLjc2NzExIiwgXAotICAgICAgICAgICIwLjIzNTc0NCwgMC44NDk0MjUsIDEuMzM5MDcsIDEuOTUxMDQsIDIuNTYzMTQsIDMuMTc0ODUsIDMuNzg2NzkiLCBcCi0gICAgICAgICAgIjAuMjUzOTc0LCAwLjg2NjkzNywgMS4zNTY0MywgMS45Njg1MSwgMi41ODAxOSwgMy4xOTI1MywgMy44MDM5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjM0MzMyNywgMS40ODkzOSwgMi40MDc3NiwgMy41NTYyLCA0LjcwNjU5LCA1Ljg1MzI0LCA3LjAwNDc5IiwgXAotICAgICAgICAgICIwLjM0MzMxOSwgMS40ODkzNCwgMi40MDc3LCAzLjU1NTk5LCA0LjcwNDcsIDUuODUzMDksIDcuMDAxMjgiLCBcCi0gICAgICAgICAgIjAuMzQzMzI4LCAxLjQ4OTQ1LCAyLjQwODA2LCAzLjU1NjYyLCA0LjcwNTM1LCA1Ljg1NTI1LCA3LjAwNDU3IiwgXAotICAgICAgICAgICIwLjM0MzEwMSwgMS40ODkzOSwgMi40MDc2NiwgMy41NTY4NiwgNC43MDUxNSwgNS44NTM4OSwgNy4wMDM0NiIsIFwKLSAgICAgICAgICAiMC4zNDQwNTIsIDEuNDg5NDYsIDIuNDA4MSwgMy41NTY1NSwgNC43MDYwMSwgNS44NTU1MywgNy4wMDQ2NiIsIFwKLSAgICAgICAgICAiMC4zNDg0NjksIDEuNDg5MzksIDIuNDA4MDMsIDMuNTU2NTgsIDQuNzA0ODksIDUuODU0MDYsIDcuMDA0NzEiLCBcCi0gICAgICAgICAgIjAuMzU0MDUyLCAxLjQ4OTU4LCAyLjQwNzY1LCAzLjU1NzIyLCA0LjcwNDcsIDUuODU1MzksIDcuMDA0NTIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA3ODA0LCAwLjAwNzgwMywgMC4wMDc4LCAwLjAwNzc5OSwgMC4wMDc3OTUsIDAuMDA3NzkyLCAwLjAwNzc5MiIsIFwKLSAgICAgICAgICAiMC4wMDc3ODUsIDAuMDA3Nzg0LCAwLjAwNzc4MiwgMC4wMDc3NzcsIDAuMDA3Nzc3LCAwLjAwNzc3NywgMC4wMDc3NjgiLCBcCi0gICAgICAgICAgIjAuMDA3Nzc5LCAwLjAwNzc4LCAwLjAwNzc3OCwgMC4wMDc3NzUsIDAuMDA3Nzc0LCAwLjAwNzc3MiwgMC4wMDc3NjIiLCBcCi0gICAgICAgICAgIjAuMDA3Nzc0LCAwLjAwNzc3NiwgMC4wMDc3NzUsIDAuMDA3NzcyLCAwLjAwNzc3LCAwLjAwNzc3LCAwLjAwNzc2NCIsIFwKLSAgICAgICAgICAiMC4wMDc3NjksIDAuMDA3NzcxLCAwLjAwNzc3LCAwLjAwNzc2OCwgMC4wMDc3NjUsIDAuMDA3NzYzLCAwLjAwNzc2IiwgXAotICAgICAgICAgICIwLjAwNzc2NSwgMC4wMDc3NzMsIDAuMDA3NzcyLCAwLjAwNzc3MSwgMC4wMDc3NjksIDAuMDA3NzY1LCAwLjAwNzc2MiIsIFwKLSAgICAgICAgICAiMC4wMDc3NjEsIDAuMDA3NzcyLCAwLjAwNzc3MSwgMC4wMDc3NywgMC4wMDc3NjcsIDAuMDA3NzY1LCAwLjAwNzc2NCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzMyLCAwLjAwMzMxOCwgMC4wMDMzMTYsIDAuMDAzMzExLCAwLjAwMzMxLCAwLjAwMzMwNiwgMC4wMDMzMDMiLCBcCi0gICAgICAgICAgIjAuMDAzMjk5LCAwLjAwMzMwMywgMC4wMDMzMDMsIDAuMDAzMjk4LCAwLjAwMzI5NywgMC4wMDMyOSwgMC4wMDMyOSIsIFwKLSAgICAgICAgICAiMC4wMDMyODEsIDAuMDAzMjk1LCAwLjAwMzI5NSwgMC4wMDMyOTMsIDAuMDAzMjkyLCAwLjAwMzI4OCwgMC4wMDMyODYiLCBcCi0gICAgICAgICAgIjAuMDAzMjY4LCAwLjAwMzI5LCAwLjAwMzI5MSwgMC4wMDMyOTEsIDAuMDAzMjkxLCAwLjAwMzI4OCwgMC4wMDMyODIiLCBcCi0gICAgICAgICAgIjAuMDAzMjU4LCAwLjAwMzI4NiwgMC4wMDMyODgsIDAuMDAzMjg4LCAwLjAwMzI4NywgMC4wMDMyODQsIDAuMDAzMjgyIiwgXAotICAgICAgICAgICIwLjAwMzI0MSwgMC4wMDMyNzgsIDAuMDAzMjgzLCAwLjAwMzI4NSwgMC4wMDMyODQsIDAuMDAzMjgxLCAwLjAwMzI4IiwgXAotICAgICAgICAgICIwLjAwMzIzMiwgMC4wMDMyNzIsIDAuMDAzMjgsIDAuMDAzMjgxLCAwLjAwMzI4MSwgMC4wMDMyODEsIDAuMDAzMjc4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNzE0MywgMC4wMDcxNDIsIDAuMDA3MTQsIDAuMDA3MTM4LCAwLjAwNzEzOCwgMC4wMDcxMzQsIDAuMDA3MTM0IiwgXAotICAgICAgICAgICIwLjAwNzEzOSwgMC4wMDcxNDIsIDAuMDA3MTQyLCAwLjAwNzE0NiwgMC4wMDcxMzYsIDAuMDA3MTMyLCAwLjAwNzEzMyIsIFwKLSAgICAgICAgICAiMC4wMDcxMzEsIDAuMDA3MTQxLCAwLjAwNzE0LCAwLjAwNzE0MSwgMC4wMDcxMzksIDAuMDA3MTMzLCAwLjAwNzEzOSIsIFwKLSAgICAgICAgICAiMC4wMDcxMjQsIDAuMDA3MTM3LCAwLjAwNzEzOCwgMC4wMDcxMzcsIDAuMDA3MTM1LCAwLjAwNzEzNywgMC4wMDcxMzMiLCBcCi0gICAgICAgICAgIjAuMDA3MTE3LCAwLjAwNzEzNSwgMC4wMDcxMzcsIDAuMDA3MTM2LCAwLjAwNzEzNSwgMC4wMDcxMzQsIDAuMDA3MTMyIiwgXAotICAgICAgICAgICIwLjAwNzExLCAwLjAwNzEzMiwgMC4wMDcxMzUsIDAuMDA3MTM0LCAwLjAwNzEzMywgMC4wMDcxMzQsIDAuMDA3MTMxIiwgXAotICAgICAgICAgICIwLjAwNzEwMiwgMC4wMDcxMjksIDAuMDA3MTMyLCAwLjAwNzEzMywgMC4wMDcxMzIsIDAuMDA3MTMyLCAwLjAwNzEzMSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzMyMSwgMC4wMDMzMTgsIDAuMDAzMzE2LCAwLjAwMzMxMiwgMC4wMDMzMDgsIDAuMDAzMzA3LCAwLjAwMzMwMyIsIFwKLSAgICAgICAgICAiMC4wMDMyOTksIDAuMDAzMzAzLCAwLjAwMzMwMiwgMC4wMDMyOTYsIDAuMDAzMzAxLCAwLjAwMzI5NCwgMC4wMDMyOSIsIFwKLSAgICAgICAgICAiMC4wMDMyODEsIDAuMDAzMjk2LCAwLjAwMzI5NiwgMC4wMDMyOTMsIDAuMDAzMjksIDAuMDAzMjg5LCAwLjAwMzI4NSIsIFwKLSAgICAgICAgICAiMC4wMDMyNjcsIDAuMDAzMjksIDAuMDAzMjkyLCAwLjAwMzI5LCAwLjAwMzI4OCwgMC4wMDMyODYsIDAuMDAzMjg0IiwgXAotICAgICAgICAgICIwLjAwMzI1NywgMC4wMDMyODUsIDAuMDAzMjg4LCAwLjAwMzI4NywgMC4wMDMyODcsIDAuMDAzMjg0LCAwLjAwMzI4MiIsIFwKLSAgICAgICAgICAiMC4wMDMyNDIsIDAuMDAzMjc4LCAwLjAwMzI4NCwgMC4wMDMyODUsIDAuMDAzMjg1LCAwLjAwMzI4MiwgMC4wMDMyODEiLCBcCi0gICAgICAgICAgIjAuMDAzMjMxLCAwLjAwMzI3MiwgMC4wMDMyNzgsIDAuMDAzMjgxLCAwLjAwMzI4MiwgMC4wMDMyNzksIDAuMDAzMjc3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTIiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjQ2OSwgMC4wMDY0NywgMC4wMDY0NjksIDAuMDA2NDcxLCAwLjAwNjQ2OSwgMC4wMDY0NjUsIDAuMDA2NDU5IiwgXAotICAgICAgICAgICIwLjAwNjQ3NywgMC4wMDY0ODYsIDAuMDA2NDg5LCAwLjAwNjQ4NiwgMC4wMDY0ODUsIDAuMDA2NDg2LCAwLjAwNjQ4NCIsIFwKLSAgICAgICAgICAiMC4wMDY0NywgMC4wMDY0ODksIDAuMDA2NDksIDAuMDA2NDg5LCAwLjAwNjQ5LCAwLjAwNjQ4NywgMC4wMDY0ODciLCBcCi0gICAgICAgICAgIjAuMDA2NDYsIDAuMDA2NDg3LCAwLjAwNjQ5LCAwLjAwNjQ5MiwgMC4wMDY0OSwgMC4wMDY0ODksIDAuMDA2NDg4IiwgXAotICAgICAgICAgICIwLjAwNjQ1LCAwLjAwNjQ4MiwgMC4wMDY0ODUsIDAuMDA2NDg3LCAwLjAwNjQ4NywgMC4wMDY0ODcsIDAuMDA2NDg2IiwgXAotICAgICAgICAgICIwLjAwNjQzOSwgMC4wMDY0OCwgMC4wMDY0ODUsIDAuMDA2NDg4LCAwLjAwNjQ4OCwgMC4wMDY0ODcsIDAuMDA2NDg3IiwgXAotICAgICAgICAgICIwLjAwNjQzLCAwLjAwNjQ3NywgMC4wMDY0ODMsIDAuMDA2NDg2LCAwLjAwNjQ4NywgMC4wMDY0ODgsIDAuMDA2NDg3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzMzIyLCAwLjAwMzMyLCAwLjAwMzMxNywgMC4wMDMzMTgsIDAuMDAzMzE0LCAwLjAwMzMwNywgMC4wMDMzMDQiLCBcCi0gICAgICAgICAgIjAuMDAzMjk3LCAwLjAwMzMwMywgMC4wMDMzMDMsIDAuMDAzMzAxLCAwLjAwMzI5OCwgMC4wMDMyOTUsIDAuMDAzMjk3IiwgXAotICAgICAgICAgICIwLjAwMzI3NywgMC4wMDMyOTUsIDAuMDAzMjk0LCAwLjAwMzI5MywgMC4wMDMyOTMsIDAuMDAzMjg5LCAwLjAwMzI4NyIsIFwKLSAgICAgICAgICAiMC4wMDMyNjIsIDAuMDAzMjg5LCAwLjAwMzI5MSwgMC4wMDMyOSwgMC4wMDMyODksIDAuMDAzMjg2LCAwLjAwMzI4NCIsIFwKLSAgICAgICAgICAiMC4wMDMyNDIsIDAuMDAzMjgyLCAwLjAwMzI4NywgMC4wMDMyODksIDAuMDAzMjg2LCAwLjAwMzI4NCwgMC4wMDMyODEiLCBcCi0gICAgICAgICAgIjAuMDAzMjMzLCAwLjAwMzI3NCwgMC4wMDMyOCwgMC4wMDMyODQsIDAuMDAzMjgzLCAwLjAwMzI4MSwgMC4wMDMyOCIsIFwKLSAgICAgICAgICAiMC4wMDMyMjMsIDAuMDAzMjY4LCAwLjAwMzI3NiwgMC4wMDMyOCwgMC4wMDMyOCwgMC4wMDMyNzgsIDAuMDAzMjc2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNTc0NiwgMC4wMDU3NDUsIDAuMDA1NzQzLCAwLjAwNTc0LCAwLjAwNTczOCwgMC4wMDU3MzQsIDAuMDA1NzMyIiwgXAotICAgICAgICAgICIwLjAwNTcyMSwgMC4wMDU3MjQsIDAuMDA1NzIxLCAwLjAwNTcyLCAwLjAwNTcxOSwgMC4wMDU3MTMsIDAuMDA1NzE2IiwgXAotICAgICAgICAgICIwLjAwNTcxLCAwLjAwNTcxOSwgMC4wMDU3MTcsIDAuMDA1NzE2LCAwLjAwNTcxMywgMC4wMDU3MDksIDAuMDA1NzExIiwgXAotICAgICAgICAgICIwLjAwNTcwMiwgMC4wMDU3MTQsIDAuMDA1NzEzLCAwLjAwNTcxMywgMC4wMDU3MDksIDAuMDA1NzA0LCAwLjAwNTcwNSIsIFwKLSAgICAgICAgICAiMC4wMDU2OTYsIDAuMDA1NzEsIDAuMDA1NzExLCAwLjAwNTcxLCAwLjAwNTcwNywgMC4wMDU3MDYsIDAuMDA1NzA0IiwgXAotICAgICAgICAgICIwLjAwNTY4OCwgMC4wMDU3MDcsIDAuMDA1NzA4LCAwLjAwNTcwNywgMC4wMDU3MDcsIDAuMDA1NzAzLCAwLjAwNTcwMiIsIFwKLSAgICAgICAgICAiMC4wMDU2ODcsIDAuMDA1NzA0LCAwLjAwNTcwNywgMC4wMDU3MDYsIDAuMDA1NzA1LCAwLjAwNTcwNCwgMC4wMDU3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxMTAxLCAwLjAwMTEwNywgMC4wMDExMDcsIDAuMDAxMTA3LCAwLjAwMTEwNywgMC4wMDExMDcsIDAuMDAxMTA3IiwgXAotICAgICAgICAgICIwLjAwMTEwMiwgMC4wMDExMjcsIDAuMDAxMTMsIDAuMDAxMTMyLCAwLjAwMTEzMywgMC4wMDExMzMsIDAuMDAxMTMzIiwgXAotICAgICAgICAgICIwLjAwMTA4NywgMC4wMDExMzEsIDAuMDAxMTM2LCAwLjAwMTEzOSwgMC4wMDExNDEsIDAuMDAxMTQyLCAwLjAwMTE0MiIsIFwKLSAgICAgICAgICAiMC4wMDEwNjksIDAuMDAxMTI4LCAwLjAwMTEzNiwgMC4wMDExNDEsIDAuMDAxMTQzLCAwLjAwMTE0NCwgMC4wMDExNDUiLCBcCi0gICAgICAgICAgIjAuMDAxMDU0LCAwLjAwMTEyNCwgMC4wMDExMzQsIDAuMDAxMTQsIDAuMDAxMTQzLCAwLjAwMTE0NSwgMC4wMDExNDYiLCBcCi0gICAgICAgICAgIjAuMDAxMDMyLCAwLjAwMTExNiwgMC4wMDExMywgMC4wMDExMzcsIDAuMDAxMTQxLCAwLjAwMTE0MywgMC4wMDExNDUiLCBcCi0gICAgICAgICAgIjAuMDAxMDE3LCAwLjAwMTEwOSwgMC4wMDExMjUsIDAuMDAxMTM0LCAwLjAwMTEzOSwgMC4wMDExNDIsIDAuMDAxMTQ0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNTA5NSwgMC4wMDUwOTUsIDAuMDA1MDk0LCAwLjAwNTA5MiwgMC4wMDUwOSwgMC4wMDUwODgsIDAuMDA1MDg1IiwgXAotICAgICAgICAgICIwLjAwNTA4NiwgMC4wMDUwOTMsIDAuMDA1MDkzLCAwLjAwNTA5MSwgMC4wMDUwOSwgMC4wMDUwODUsIDAuMDA1MDg4IiwgXAotICAgICAgICAgICIwLjAwNTA2OSwgMC4wMDUwODksIDAuMDA1MDg5LCAwLjAwNTA4OCwgMC4wMDUwODgsIDAuMDA1MDg4LCAwLjAwNTA4MyIsIFwKLSAgICAgICAgICAiMC4wMDUwNjUsIDAuMDA1MDg2LCAwLjAwNTA4NywgMC4wMDUwODgsIDAuMDA1MDg1LCAwLjAwNTA4MiwgMC4wMDUwODQiLCBcCi0gICAgICAgICAgIjAuMDA1MDU1LCAwLjAwNTA4MywgMC4wMDUwODUsIDAuMDA1MDg2LCAwLjAwNTA4NSwgMC4wMDUwODMsIDAuMDA1MDgzIiwgXAotICAgICAgICAgICIwLjAwNTA0NiwgMC4wMDUwNzksIDAuMDA1MDgzLCAwLjAwNTA4NCwgMC4wMDUwODMsIDAuMDA1MDgyLCAwLjAwNTA4MiIsIFwKLSAgICAgICAgICAiMC4wMDUwMzksIDAuMDA1MDc0LCAwLjAwNTA4LCAwLjAwNTA4MSwgMC4wMDUwODEsIDAuMDA1MDgxLCAwLjAwNTA3OCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTEwMSwgMC4wMDExMDcsIDAuMDAxMTA3LCAwLjAwMTEwOCwgMC4wMDExMDgsIDAuMDAxMTA4LCAwLjAwMTEwOCIsIFwKLSAgICAgICAgICAiMC4wMDExMDMsIDAuMDAxMTI4LCAwLjAwMTEzMSwgMC4wMDExMzIsIDAuMDAxMTMzLCAwLjAwMTEzMywgMC4wMDExMzMiLCBcCi0gICAgICAgICAgIjAuMDAxMDg3LCAwLjAwMTEzMSwgMC4wMDExMzcsIDAuMDAxMTM5LCAwLjAwMTE0MSwgMC4wMDExNDIsIDAuMDAxMTQyIiwgXAotICAgICAgICAgICIwLjAwMTA3LCAwLjAwMTEyOCwgMC4wMDExMzYsIDAuMDAxMTQxLCAwLjAwMTE0MywgMC4wMDExNDQsIDAuMDAxMTQ1IiwgXAotICAgICAgICAgICIwLjAwMTA1NCwgMC4wMDExMjQsIDAuMDAxMTM0LCAwLjAwMTE0LCAwLjAwMTE0MywgMC4wMDExNDUsIDAuMDAxMTQ2IiwgXAotICAgICAgICAgICIwLjAwMTAzMywgMC4wMDExMTYsIDAuMDAxMTMsIDAuMDAxMTM3LCAwLjAwMTE0MSwgMC4wMDExNDQsIDAuMDAxMTQ1IiwgXAotICAgICAgICAgICIwLjAwMTAxOCwgMC4wMDExMDksIDAuMDAxMTI1LCAwLjAwMTEzNCwgMC4wMDExMzksIDAuMDAxMTQyLCAwLjAwMTE0NCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIyIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQ0MDQsIDAuMDA0NDA3LCAwLjAwNDQwNiwgMC4wMDQ0MDUsIDAuMDA0NDA0LCAwLjAwNDQwMywgMC4wMDQ0MDIiLCBcCi0gICAgICAgICAgIjAuMDA0NDA4LCAwLjAwNDQyMywgMC4wMDQ0MjMsIDAuMDA0NDIzLCAwLjAwNDQyMSwgMC4wMDQ0MjEsIDAuMDA0NDIxIiwgXAotICAgICAgICAgICIwLjAwNDM5NSwgMC4wMDQ0MjIsIDAuMDA0NDI0LCAwLjAwNDQyNCwgMC4wMDQ0MjIsIDAuMDA0NDI1LCAwLjAwNDQyMyIsIFwKLSAgICAgICAgICAiMC4wMDQzODMsIDAuMDA0NDE5LCAwLjAwNDQyMywgMC4wMDQ0MjUsIDAuMDA0NDI2LCAwLjAwNDQyNSwgMC4wMDQ0MjMiLCBcCi0gICAgICAgICAgIjAuMDA0MzcxLCAwLjAwNDQxNSwgMC4wMDQ0MjIsIDAuMDA0NDIyLCAwLjAwNDQyMywgMC4wMDQ0MjQsIDAuMDA0NDIzIiwgXAotICAgICAgICAgICIwLjAwNDM1OSwgMC4wMDQ0MDksIDAuMDA0NDE3LCAwLjAwNDQyMSwgMC4wMDQ0MjEsIDAuMDA0NDIyLCAwLjAwNDQyMyIsIFwKLSAgICAgICAgICAiMC4wMDQzNDksIDAuMDA0NDA1LCAwLjAwNDQxMywgMC4wMDQ0MTksIDAuMDA0NDIxLCAwLjAwNDQxOSwgMC4wMDQ0MjEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDEwOTgsIDAuMDAxMTA1LCAwLjAwMTEwNSwgMC4wMDExMDYsIDAuMDAxMTA2LCAwLjAwMTEwNiwgMC4wMDExMDYiLCBcCi0gICAgICAgICAgIjAuMDAxMDk2LCAwLjAwMTEyNiwgMC4wMDExMjksIDAuMDAxMTMxLCAwLjAwMTEzMSwgMC4wMDExMzIsIDAuMDAxMTMyIiwgXAotICAgICAgICAgICIwLjAwMTA3OSwgMC4wMDExMjksIDAuMDAxMTM1LCAwLjAwMTEzOCwgMC4wMDExNCwgMC4wMDExNDEsIDAuMDAxMTQyIiwgXAotICAgICAgICAgICIwLjAwMTA1OCwgMC4wMDExMjUsIDAuMDAxMTM0LCAwLjAwMTEzOSwgMC4wMDExNDEsIDAuMDAxMTQzLCAwLjAwMTE0NCIsIFwKLSAgICAgICAgICAiMC4wMDEwNDMsIDAuMDAxMTIxLCAwLjAwMTEzMiwgMC4wMDExMzgsIDAuMDAxMTQxLCAwLjAwMTE0NCwgMC4wMDExNDUiLCBcCi0gICAgICAgICAgIjAuMDAxMDIyLCAwLjAwMTExMiwgMC4wMDExMjcsIDAuMDAxMTM2LCAwLjAwMTE0LCAwLjAwMTE0MywgMC4wMDExNDQiLCBcCi0gICAgICAgICAgIjAuMDAxMDExLCAwLjAwMTEwNSwgMC4wMDExMjIsIDAuMDAxMTMyLCAwLjAwMTEzOCwgMC4wMDExNDEsIDAuMDAxMTQzIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogQU9JMzNYNCAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChBT0kzM1g0KSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuNTc0NzQxOwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAzMzMwMzQ7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAzMzE1OTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDMzMzAzNDsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDEyMjUsIDAuMDAxMjI0LCAwLjAwMTIyMywgMC4wMDEyMjMsIDAuMDAxMjIzLCAwLjAwMTIyMiwgMC4wMDEyMjMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDEyMjYsIDAuMDAxMjI3LCAwLjAwMTIyNywgMC4wMDEyMjcsIDAuMDAxMjI3LCAwLjAwMTIyNywgMC4wMDEyMjgiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEExKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDMzMjM4NjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDMzMDYwNDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDMzMjM4NjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDEyMjUsIDAuMDAxMjI0LCAwLjAwMTIyMywgMC4wMDEyMjMsIDAuMDAxMjIzLCAwLjAwMTIyMywgMC4wMDEyMjMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDEyMywgMC4wMDEyMywgMC4wMDEyMzEsIDAuMDAxMjMxLCAwLjAwMTIzMSwgMC4wMDEyMzIsIDAuMDAxMjMyIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihBMikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAzMTA3MjI7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAzMDc3ODk7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAzMTA3MjI7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNjI5LCAwLjAwMDYyNywgMC4wMDA2MjcsIDAuMDAwNjI2LCAwLjAwMDYyNywgMC4wMDA2MjcsIDAuMDAwNjI2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxMzksIDAuMDAxMzkxLCAwLjAwMTM5NSwgMC4wMDEzOTIsIDAuMDAxMzkyLCAwLjAwMTM5MiwgMC4wMDEzOTIiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDMzNTUyNzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDMzNTUyNzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDMzNDI5MzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDEyMjUsIDAuMDAxMjI1LCAwLjAwMTIyNCwgMC4wMDEyMjQsIDAuMDAxMjI0LCAwLjAwMTIyNCwgMC4wMDEyMjMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDEyMjYsIDAuMDAxMjI2LCAwLjAwMTIyNywgMC4wMDEyMjcsIDAuMDAxMjI3LCAwLjAwMTIyNywgMC4wMDEyMjciKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIxKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDMzMzMzNDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDMzMzMzNDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDMzMjQ2OTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDEyMjUsIDAuMDAxMjI0LCAwLjAwMTIyNCwgMC4wMDEyMjQsIDAuMDAxMjI0LCAwLjAwMTIyNCwgMC4wMDEyMjQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDEyMjksIDAuMDAxMjMsIDAuMDAxMjI5LCAwLjAwMTIzLCAwLjAwMTIzLCAwLjAwMTIzLCAwLjAwMTIzIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCMikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAzMDc4ODI7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAzMDc1OTE7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAzMDc4ODI7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNjA3LCAwLjAwMDYwNywgMC4wMDA2MDYsIDAuMDAwNjA2LCAwLjAwMDYwNiwgMC4wMDA2MDYsIDAuMDAwNjA2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxMzksIDAuMDAxMzksIDAuMDAxMzksIDAuMDAxMzksIDAuMDAxMzkxLCAwLjAwMTM5MSwgMC4wMDEzOTEiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4xNjA5NjI7Ci0gICAgZnVuY3Rpb24gOiAiKCEoKChCMCBCMSkgQjIpKygoQTAgQTEpIEEyKSkpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTAwNDEsIDAuMzc1MTI0LCAwLjYzNzc0NSwgMC44MjUwNDgsIDEuMTI0ODMsIDEuMzg2NTQsIDEuNzYwNDMiLCBcCi0gICAgICAgICAgIjAuMTIxNzM5LCAwLjM4NjgwOSwgMC42NDkzOTcsIDAuODM2NjIxLCAxLjEzNjE2LCAxLjM5ODAxLCAxLjc3MjU1IiwgXAotICAgICAgICAgICIwLjEzNjQ0LCAwLjQwMTUzMiwgMC42NjQyMDIsIDAuODUxNDExLCAxLjE1MDk5LCAxLjQxMjkxLCAxLjc4NzA4IiwgXAotICAgICAgICAgICIwLjE1MDYyMywgMC40MTU3ODksIDAuNjc4NDQ1LCAwLjg2NTc1MiwgMS4xNjU1MiwgMS40MjcwMSwgMS44MDExMyIsIFwKLSAgICAgICAgICAiMC4xNjM5NTQsIDAuNDI5MzE5LCAwLjY5MTk3MiwgMC44NzkzMDUsIDEuMTc4NywgMS40NDA2MSwgMS44MTUyIiwgXAotICAgICAgICAgICIwLjE4NDg5NSwgMC40NTAxNzIsIDAuNzEyNzcyLCAwLjkwMDA2NywgMS4xOTk3LCAxLjQ2MiwgMS44MzYwMyIsIFwKLSAgICAgICAgICAiMC4yMDI2NjksIDAuNDY3OTYxLCAwLjczMDYyNCwgMC45MTgwMzgsIDEuMjE3NTEsIDEuNDc5MjcsIDEuODUzNzMiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNTA3MTIsIDAuNjY0MTY4LCAxLjE3Nzk3LCAxLjU0Mzg1LCAyLjEyODQ4LCAyLjY0MjMxLCAzLjM3MTgxIiwgXAotICAgICAgICAgICIwLjE1MDgzMiwgMC42NjQ4ODEsIDEuMTc4MDQsIDEuNTQ0MTcsIDIuMTI4MTQsIDIuNjQyMjYsIDMuMzcyODkiLCBcCi0gICAgICAgICAgIjAuMTUwNzYzLCAwLjY2NDg1NSwgMS4xNzY3MiwgMS41NDI2OCwgMi4xMjk4MywgMi42NDExMSwgMy4zNzQzMyIsIFwKLSAgICAgICAgICAiMC4xNTA4ODksIDAuNjY0MzA1LCAxLjE3ODAyLCAxLjU0MzE4LCAyLjEyODUyLCAyLjY0MDE2LCAzLjM3MTgyIiwgXAotICAgICAgICAgICIwLjE1MTE1MiwgMC42NjQyNzMsIDEuMTc3ODksIDEuNTQ0MTYsIDIuMTI4MTYsIDIuNjQwNDIsIDMuMzcyOSIsIFwKLSAgICAgICAgICAiMC4xNTMyNDEsIDAuNjY0MDg3LCAxLjE3NzA2LCAxLjU0MjY2LCAyLjEyOTg3LCAyLjY0MDc3LCAzLjM3NDUiLCBcCi0gICAgICAgICAgIjAuMTU2MzkzLCAwLjY2NDExNywgMS4xNzcwMywgMS41NDMxNCwgMi4xMjg2NiwgMi42NDIyNiwgMy4zNzQ0NiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE4Mzg3OCwgMC42MTkyODMsIDEuMDUwNTksIDEuMzU3ODMsIDEuODUwMiwgMi4yNzk2NCwgMi44OTMyMyIsIFwKLSAgICAgICAgICAiMC4xOTUxMzYsIDAuNjMwNzMsIDEuMDYxNjYsIDEuMzY5MzMsIDEuODYxNzQsIDIuMjkxMTcsIDIuOTA1MTgiLCBcCi0gICAgICAgICAgIjAuMjA4MDA0LCAwLjY0MzkwMiwgMS4wNzUyLCAxLjM4MjYzLCAxLjg3NDU0LCAyLjMwNTA1LCAyLjkxODQzIiwgXAotICAgICAgICAgICIwLjIyMDE5MiwgMC42NTU5LCAxLjA4NzA1LCAxLjM5NTEsIDEuODg2ODksIDIuMzE3NDUsIDIuOTMwODYiLCBcCi0gICAgICAgICAgIjAuMjMxOTUzLCAwLjY2NzgzNCwgMS4wOTkzNywgMS40MDcwMiwgMS44OTg0OSwgMi4zMjkzLCAyLjk0MjgiLCBcCi0gICAgICAgICAgIjAuMjUwNjMsIDAuNjg2NzM2LCAxLjExNzgxLCAxLjQyNTYyLCAxLjkxNzUzLCAyLjM0Nzg0LCAyLjk2MTY0IiwgXAotICAgICAgICAgICIwLjI2Njg0OCwgMC43MDMwMzYsIDEuMTM0MjUsIDEuNDQyMDUsIDEuOTMzOTcsIDIuMzY0NDQsIDIuOTc4MzMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yODExMzEsIDEuMDg4NjksIDEuODk2ODMsIDIuNDczNjMsIDMuMzk3MDMsIDQuMjA1MiwgNS4zNTg3NCIsIFwKLSAgICAgICAgICAiMC4yODExMjEsIDEuMDg4NjcsIDEuODk2ODEsIDIuNDczNjksIDMuMzk3MDksIDQuMjA1MzcsIDUuMzU4OTEiLCBcCi0gICAgICAgICAgIjAuMjgxMDk0LCAxLjA4ODg2LCAxLjg5NjczLCAyLjQ3MzU5LCAzLjM5Njg4LCA0LjIwNDk5LCA1LjM1OTciLCBcCi0gICAgICAgICAgIjAuMjgxMDYsIDEuMDg4NjQsIDEuODk2NjgsIDIuNDczNDksIDMuMzk2OTEsIDQuMjA1MDEsIDUuMzU5NSIsIFwKLSAgICAgICAgICAiMC4yODEwNjIsIDEuMDg4NjQsIDEuODk2NTEsIDIuNDczNTcsIDMuMzk3MDcsIDQuMjA1MTUsIDUuMzU5OTEiLCBcCi0gICAgICAgICAgIjAuMjgyMzk4LCAxLjA4ODY1LCAxLjg5NjcyLCAyLjQ3MzYsIDMuMzk2OTcsIDQuMjA1MjcsIDUuMzU5NDIiLCBcCi0gICAgICAgICAgIjAuMjg0NjE2LCAxLjA4ODY4LCAxLjg5NjUzLCAyLjQ3NDE3LCAzLjM5NjcyLCA0LjIwNTMsIDUuMzU5NTkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTA1MjU4LCAwLjM2OTM0LCAwLjYzMTM1NiwgMC44MTg0NjksIDEuMTE4MDcsIDEuMzc5ODUsIDEuNzU0MzYiLCBcCi0gICAgICAgICAgIjAuMTE3MTY3LCAwLjM4MTMyMywgMC42NDM2MTUsIDAuODMwNzIzLCAxLjEzMDA3LCAxLjM5MTgzLCAxLjc2NjMiLCBcCi0gICAgICAgICAgIjAuMTMxOTM1LCAwLjM5NjE2OCwgMC42NTg1MzgsIDAuODQ1NjY2LCAxLjE0NDg3LCAxLjQwNjg0LCAxLjc4MDY4IiwgXAotICAgICAgICAgICIwLjE0NTk0MiwgMC40MTAzNTEsIDAuNjcyNzE4LCAwLjg1OTg4OCwgMS4xNTkwOCwgMS40MjExNSwgMS43OTQ4NiIsIFwKLSAgICAgICAgICAiMC4xNTk0MzgsIDAuNDIzODI4LCAwLjY4NjIwOSwgMC44NzMzOTYsIDEuMTcyNjcsIDEuNDM0NDQsIDEuODA4ODkiLCBcCi0gICAgICAgICAgIjAuMTgwNDksIDAuNDQ0OTMsIDAuNzA3MzM3LCAwLjg5NDQ0MywgMS4xOTM5LCAxLjQ1NTU1LCAxLjgzMDA5IiwgXAotICAgICAgICAgICIwLjE5ODE3MiwgMC40NjI2NTgsIDAuNzI1MDgxLCAwLjkxMjM2NywgMS4yMTE3MSwgMS40NzMzNCwgMS44NDc2MiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE0NTE3MiwgMC42NTgyMDYsIDEuMTcxMDEsIDEuNTM3MiwgMi4xMjE0NywgMi42MzM1NCwgMy4zNjU5OSIsIFwKLSAgICAgICAgICAiMC4xNDUxODEsIDAuNjU4MTQ0LCAxLjE3MDM3LCAxLjUzNjE1LCAyLjEyMTQ3LCAyLjYzMzUzLCAzLjM2NTQ1IiwgXAotICAgICAgICAgICIwLjE0NTIwMywgMC42NTgxNTIsIDEuMTcxMzMsIDEuNTM3MzIsIDIuMTIyNzcsIDIuNjMzOTksIDMuMzY1MDkiLCBcCi0gICAgICAgICAgIjAuMTQ1MzYxLCAwLjY1ODE4MiwgMS4xNzEzMSwgMS41MzY3MywgMi4xMjI3NCwgMi42MzQ3MywgMy4zNjUyIiwgXAotICAgICAgICAgICIwLjE0NTcyNywgMC42NTgxNjcsIDEuMTcxMTIsIDEuNTM3NCwgMi4xMjE1LCAyLjYzMzU0LCAzLjM2NTk3IiwgXAotICAgICAgICAgICIwLjE0Nzk3NiwgMC42NTgxNTcsIDEuMTcwNjksIDEuNTM2MTYsIDIuMTIyOTgsIDIuNjM0OTQsIDMuMzY1OTIiLCBcCi0gICAgICAgICAgIjAuMTUxMTk2LCAwLjY1ODI5OSwgMS4xNzA2MywgMS41MzYzMSwgMi4xMjE5MywgMi42MzM3LCAzLjM2NzE3Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTc5MDgzLCAwLjYxNDQ3NiwgMS4wNDU3MywgMS4zNTMwMiwgMS44NDUzNSwgMi4yNzQ4MSwgMi44ODg1OSIsIFwKLSAgICAgICAgICAiMC4xODk1NjIsIDAuNjI0OTk4LCAxLjA1NTg3LCAxLjM2Mzk2LCAxLjg1NTQ5LCAyLjI4NTgxLCAyLjg5OTQ2IiwgXAotICAgICAgICAgICIwLjIwMjE4OSwgMC42Mzc3MjcsIDEuMDY4OCwgMS4zNzY2MywgMS44NjgxMSwgMi4yOTg5MiwgMi45MTI0OCIsIFwKLSAgICAgICAgICAiMC4yMTQyNzksIDAuNjUwNDc0LCAxLjA4MTg2LCAxLjM4OTYxLCAxLjg4MTIyLCAyLjMxMTk0LCAyLjkyNTM3IiwgXAotICAgICAgICAgICIwLjIyNzI0NywgMC42NjMyNTEsIDEuMDk0NzQsIDEuNDAyNTgsIDEuODkzOTcsIDIuMzI0NzQsIDIuOTM4NCIsIFwKLSAgICAgICAgICAiMC4yNDc2MDMsIDAuNjgzOTQyLCAxLjExNDk4LCAxLjQyMzIxLCAxLjkxNDU4LCAyLjM0NTI2LCAyLjk1ODU4IiwgXAotICAgICAgICAgICIwLjI2NTM4NSwgMC43MDE5MzEsIDEuMTMzMjEsIDEuNDQwNjcsIDEuOTMzMTcsIDIuMzYyNTYsIDIuOTc3MDIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yODExMjUsIDEuMDg4NzgsIDEuODk2OTIsIDIuNDczNTQsIDMuMzk3NSwgNC4yMDQ2OSwgNS4zNTk0NSIsIFwKLSAgICAgICAgICAiMC4yODExMjcsIDEuMDg4NTgsIDEuODk2NzgsIDIuNDczNSwgMy4zOTY4NSwgNC4yMDQ4NywgNS4zNTkzNCIsIFwKLSAgICAgICAgICAiMC4yODEwOTEsIDEuMDg4ODUsIDEuODk2NiwgMi40NzM1OSwgMy4zOTcwMiwgNC4yMDUwMiwgNS4zNTg1OCIsIFwKLSAgICAgICAgICAiMC4yODA5NjksIDEuMDg4NzcsIDEuODk2NjcsIDIuNDczNSwgMy4zOTcyMywgNC4yMDQ5LCA1LjM1OTQ3IiwgXAotICAgICAgICAgICIwLjI4MTEyOCwgMS4wODg4MiwgMS44OTY0OSwgMi40NzM5LCAzLjM5NzI0LCA0LjIwNTAzLCA1LjM1OTE2IiwgXAotICAgICAgICAgICIwLjI4MzQwOSwgMS4wODg3MywgMS44OTY1NywgMi40NzM1MiwgMy4zOTY5NywgNC4yMDU0MiwgNS4zNTgzNyIsIFwKLSAgICAgICAgICAiMC4yODY2ODcsIDEuMDg4ODMsIDEuODk2NjIsIDIuNDczNiwgMy4zOTcxLCA0LjIwNTE1LCA1LjM1ODYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTIiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTAwNzc4LCAwLjM2NjYwNSwgMC42MzEwMTQsIDAuODE5NjksIDEuMTIxMzQsIDEuMzg1NDUsIDEuNzYyNDQiLCBcCi0gICAgICAgICAgIjAuMTEyNzIxLCAwLjM3ODcyMSwgMC42NDMxNTUsIDAuODMxODgzLCAxLjEzMzg0LCAxLjM5NzU2LCAxLjc3NTMiLCBcCi0gICAgICAgICAgIjAuMTI3NDMsIDAuMzkzNTQxLCAwLjY1Nzk2NCwgMC44NDY1NTYsIDEuMTQ4NTEsIDEuNDEyMzMsIDEuNzg5NjYiLCBcCi0gICAgICAgICAgIjAuMTQxNTAyLCAwLjQwNzY5NiwgMC42NzIyMTYsIDAuODYwODkyLCAxLjE2MjU5LCAxLjQyNjUsIDEuODAzNzIiLCBcCi0gICAgICAgICAgIjAuMTU0OTA0LCAwLjQyMTI0MywgMC42ODU3NDIsIDAuODc0NDc3LCAxLjE3NjI0LCAxLjQ0MDE3LCAxLjgxNzc2IiwgXAotICAgICAgICAgICIwLjE3NTYyMiwgMC40NDIwNSwgMC43MDY0OTgsIDAuODk1MjMsIDEuMTk3MTgsIDEuNDYxNTUsIDEuODM4NTgiLCBcCi0gICAgICAgICAgIjAuMTkzMjczLCAwLjQ1OTc3NywgMC43MjQzNCwgMC45MTMxNzUsIDEuMjE0OTgsIDEuNDc4ODMsIDEuODU2MyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE0MDY1NiwgMC42NTc0MDksIDEuMTc0OCwgMS41NDI1NywgMi4xMzM4MSwgMi42NDg3NCwgMy4zODU0NiIsIFwKLSAgICAgICAgICAiMC4xNDA2OTgsIDAuNjU3Mzc5LCAxLjE3NDY0LCAxLjU0MzcxLCAyLjEzMjM3LCAyLjY0ODY5LCAzLjM4NTk4IiwgXAotICAgICAgICAgICIwLjE0MDgwMiwgMC42NTczOTEsIDEuMTczNzgsIDEuNTQyMSwgMi4xMzM4NiwgMi42NTAxMywgMy4zODc4NSIsIFwKLSAgICAgICAgICAiMC4xNDA4OTYsIDAuNjU3OTEyLCAxLjE3NDY3LCAxLjU0Mjc2LCAyLjEzMzc1LCAyLjY1MDAzLCAzLjQwMTc5IiwgXAotICAgICAgICAgICIwLjE0MTI1OCwgMC42NTcyMDgsIDEuMTc0ODMsIDEuNTQzNjcsIDIuMTMzNzUsIDIuNjQ4MjQsIDMuNDAxNzkiLCBcCi0gICAgICAgICAgIjAuMTQzNzQ3LCAwLjY1NzE2LCAxLjE3MzgyLCAxLjU0MjQ4LCAyLjEzMzgxLCAyLjY0OTEyLCAzLjM4Nzk2IiwgXAotICAgICAgICAgICIwLjE0NzE0OSwgMC42NTc3MjQsIDEuMTc0MDgsIDEuNTQyNTMsIDIuMTMyNTUsIDIuNjUwMTQsIDMuMzg3OTYiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNjk0NzMsIDAuNjA0NjU1LCAxLjAzNTY1LCAxLjM0MzQ5LCAxLjgzNTE0LCAyLjI2NTkzLCAyLjg3OTMxIiwgXAotICAgICAgICAgICIwLjE3ODcxNiwgMC42MTQxODgsIDEuMDQ1MjMsIDEuMzUyNzcsIDEuODQ0MjEsIDIuMjc0MjMsIDIuODg3OTIiLCBcCi0gICAgICAgICAgIjAuMTkwNjM3LCAwLjYyNjQ3MSwgMS4wNTc2MSwgMS4zNjUxMywgMS44NTY0NCwgMi4yODY4NiwgMi45MDA2NSIsIFwKLSAgICAgICAgICAiMC4yMDE3ODgsIDAuNjM5Mzc1LCAxLjA3MDc1LCAxLjM3ODIzLCAxLjg2OTk3LCAyLjI5OTM4LCAyLjkxMzg2IiwgXAotICAgICAgICAgICIwLjIxNDY2NywgMC42NTA3MTksIDEuMDgyMjMsIDEuMzg5ODksIDEuODgxNjMsIDIuMzEyMjgsIDIuOTI1ODIiLCBcCi0gICAgICAgICAgIjAuMjM0MTEzLCAwLjY3MDI1OSwgMS4xMDE2LCAxLjQwOTA2LCAxLjkwMTA3LCAyLjMzMTQxLCAyLjk0NTA1IiwgXAotICAgICAgICAgICIwLjI1MjQxLCAwLjY4NzM0MywgMS4xMTg5MiwgMS40MjYyNywgMS45MTg3NSwgMi4zNDgyLCAyLjk2MjU3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjgxMTc1LCAxLjA4ODY5LCAxLjg5Njc4LCAyLjQ3MzY0LCAzLjM5Njk1LCA0LjIwNDkzLCA1LjM1ODczIiwgXAotICAgICAgICAgICIwLjI4MTEzLCAxLjA4ODYzLCAxLjg5NjkxLCAyLjQ3MzY5LCAzLjM5NjM1LCA0LjIwMzYsIDUuMzU5MyIsIFwKLSAgICAgICAgICAiMC4yODExNDQsIDEuMDg4ODMsIDEuODk2NjYsIDIuNDczNTMsIDMuMzk3MSwgNC4yMDQ5OCwgNS4zNTkxOSIsIFwKLSAgICAgICAgICAiMC4yODA3MDgsIDEuMDg4NjUsIDEuODk2ODMsIDIuNDczNDksIDMuMzk3MjEsIDQuMjA1MywgNS4zNTgzOSIsIFwKLSAgICAgICAgICAiMC4yODE1NjYsIDEuMDg4NzIsIDEuODk2OCwgMi40NzM1MSwgMy4zOTcwOCwgNC4yMDUyOCwgNS4zNTg5MSIsIFwKLSAgICAgICAgICAiMC4yODU5OTQsIDEuMDg4NjUsIDEuODk2NzksIDIuNDczNjMsIDMuMzk2NzcsIDQuMjA1MTMsIDUuMzU4NzMiLCBcCi0gICAgICAgICAgIjAuMjkxMzUxLCAxLjA4ODY1LCAxLjg5NjUxLCAyLjQ3MzY0LCAzLjM5NzEsIDQuMjA0LCA1LjM1ODU1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4Mjk3MSwgMC4zNDc5NDYsIDAuNjEwNjQ0LCAwLjc5NzkxMiwgMS4wOTc2NiwgMS4zNTk2MiwgMS43MzUxIiwgXAotICAgICAgICAgICIwLjA5MzI0LCAwLjM1ODMzNSwgMC42MjEwMzYsIDAuODA4MzM2LCAxLjEwNzk3LCAxLjM3MDE0LCAxLjc0NTQzIiwgXAotICAgICAgICAgICIwLjEwNjMxNSwgMC4zNzE0OTksIDAuNjM0MDc4LCAwLjgyMTM0NCwgMS4xMjExMiwgMS4zODMwMiwgMS43NTgwNSIsIFwKLSAgICAgICAgICAiMC4xMjAwMTIsIDAuMzg0NzM4LCAwLjY0NzIxMiwgMC44MzQzOTgsIDEuMTM0MjcsIDEuMzk2MDMsIDEuNzcxODciLCBcCi0gICAgICAgICAgIjAuMTMyNTEsIDAuMzk3NjgzLCAwLjY2MDI5NiwgMC44NDc2NTYsIDEuMTQ3MjEsIDEuNDA4OTcsIDEuNzg0MzUiLCBcCi0gICAgICAgICAgIjAuMTU0NDk2LCAwLjQxODY1MywgMC42ODEzNDEsIDAuODY4Njg2LCAxLjE2ODMsIDEuNDMwMDksIDEuODA1NjgiLCBcCi0gICAgICAgICAgIjAuMTczNzQxLCAwLjQzNzAzNSwgMC42OTk3MTMsIDAuODg3MDg1LCAxLjE4NjM3LCAxLjQ0ODI5LCAxLjgyMzcyIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTUwMTY2LCAwLjY2NDg3MiwgMS4xNzgwMywgMS41NDMwNCwgMi4xMzIzNywgMi42NDk2NiwgMy4zODU5MyIsIFwKLSAgICAgICAgICAiMC4xNDk3NjMsIDAuNjY0ODQ3LCAxLjE3NzksIDEuNTQzMDcsIDIuMTMzOTMsIDIuNjQ4NjYsIDMuMzg2MDciLCBcCi0gICAgICAgICAgIjAuMTQ5MTQ3LCAwLjY2NDA3NSwgMS4xNzc5NSwgMS41NDI4NSwgMi4xMzM5MiwgMi42NTAwOCwgMy4zODYyMyIsIFwKLSAgICAgICAgICAiMC4xNTEyODYsIDAuNjY0NzEyLCAxLjE3ODE4LCAxLjU0NDA5LCAyLjEzMjU1LCAyLjY1MDIzLCAzLjM4NTk3IiwgXAotICAgICAgICAgICIwLjE1NTY4MywgMC42NjQwODUsIDEuMTc4MDcsIDEuNTQzMjgsIDIuMTMyNTUsIDIuNjQ4MDIsIDMuMzg4MDQiLCBcCi0gICAgICAgICAgIjAuMTY0MjcsIDAuNjY0NDQ3LCAxLjE3NjY5LCAxLjU0NDAxLCAyLjEzMjYxLCAyLjY0OTg4LCAzLjM4NjY4IiwgXAotICAgICAgICAgICIwLjE3MzczOCwgMC42NjQxMTQsIDEuMTc3OTIsIDEuNTQzOTIsIDIuMTMzODgsIDIuNjQ4OSwgMy4zODY4MyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEyNDQ1MSwgMC41NTQ2NDEsIDAuOTg0NjM3LCAxLjI5MTk4LCAxLjc4MzQxLCAyLjIxMzI5LCAyLjgyNzY4IiwgXAotICAgICAgICAgICIwLjEzNjA1MSwgMC41NjY3OTMsIDAuOTk2ODQyLCAxLjMwNDIsIDEuNzk1NTksIDIuMjI1NjUsIDIuODM5NzkiLCBcCi0gICAgICAgICAgIjAuMTQ4NzYxLCAwLjU4MDA2NCwgMS4wMTAzNCwgMS4zMTc0MywgMS44MDg5OSwgMi4yMzg4MSwgMi44NTMwOSIsIFwKLSAgICAgICAgICAiMC4xNjA3MiwgMC41OTI0NzUsIDEuMDIyNjQsIDEuMzI5OTQsIDEuODIxMzUsIDIuMjUxNDUsIDIuODY1ODYiLCBcCi0gICAgICAgICAgIjAuMTcyMzg2LCAwLjYwNDM2NCwgMS4wMzQ2NCwgMS4zNDE5MywgMS44MzMzOSwgMi4yNjM2NywgMi44Nzc5NCIsIFwKLSAgICAgICAgICAiMC4xOTA4NzEsIDAuNjIzMjYyLCAxLjA1MzU0LCAxLjM2MDg3LCAxLjg1MjI4LCAyLjI4MjYsIDIuODk2NjgiLCBcCi0gICAgICAgICAgIjAuMjA3MDMyLCAwLjYzOTY0MSwgMS4wNjk5LCAxLjM3NzI5LCAxLjg2ODc0LCAyLjI5ODc5LCAyLjkxMzM5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjI5MDE1LCAxLjAzMzI2LCAxLjgzOTkxLCAyLjQxNTgsIDMuMzM4NzgsIDQuMTQ2MTksIDUuMjk5NzciLCBcCi0gICAgICAgICAgIjAuMjI5MDI0LCAxLjAzMzM3LCAxLjgzOTc5LCAyLjQxNjI5LCAzLjMzODExLCA0LjE0NjY2LCA1LjI5OTkxIiwgXAotICAgICAgICAgICIwLjIyODk4NCwgMS4wMzMzNCwgMS44Mzk4NSwgMi40MTU3OSwgMy4zMzg4NCwgNC4xNDYwNiwgNS4yOTkwOSIsIFwKLSAgICAgICAgICAiMC4yMjkwMjUsIDEuMDMzNCwgMS44Mzk1NywgMi40MTU5MiwgMy4zMzgzNCwgNC4xNDYxNywgNS4yOTkxMSIsIFwKLSAgICAgICAgICAiMC4yMjk3ODEsIDEuMDMzMywgMS44Mzk1NywgMi40MTU4NywgMy4zMzg2MiwgNC4xNDYwMiwgNS4yOTg1MiIsIFwKLSAgICAgICAgICAiMC4yMzI1NDMsIDEuMDMzNCwgMS44Mzk1MywgMi40MTU4NywgMy4zMzg1MSwgNC4xNDYzMywgNS4yOTk5MyIsIFwKLSAgICAgICAgICAiMC4yMzYwNjcsIDEuMDMzNSwgMS44Mzk1NiwgMi40MTU5MSwgMy4zMzg2NSwgNC4xNDY0NCwgNS4zMDAyNyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzgxNTYsIDAuMzQyMzMsIDAuNjA0Nzk2LCAwLjc5MjA3NCwgMS4wOTE2MywgMS4zNTMzNywgMS43MjgwMyIsIFwKLSAgICAgICAgICAiMC4wODg2NjgsIDAuMzUyODYsIDAuNjE1NDUxLCAwLjgwMjYxMSwgMS4xMDIzNSwgMS4zNjQ1NCwgMS43Mzg2NiIsIFwKLSAgICAgICAgICAiMC4xMDIxODUsIDAuMzY2NjA5LCAwLjYyODk3MiwgMC44MTYyNjksIDEuMTE1ODUsIDEuMzc3NzUsIDEuNzUyNCIsIFwKLSAgICAgICAgICAiMC4xMTQ2OTksIDAuMzc5MTI5LCAwLjY0MTY1NiwgMC44Mjg4MDYsIDEuMTI4NDMsIDEuMzkwMjUsIDEuNzY0NDIiLCBcCi0gICAgICAgICAgIjAuMTI3ODI1LCAwLjM5MjIzOCwgMC42NTQ3NDEsIDAuODQyMTIsIDEuMTQxNjIsIDEuNDAzNTcsIDEuNzc3NiIsIFwKLSAgICAgICAgICAiMC4xNDk4MTIsIDAuNDEzMDMzLCAwLjY3NTc0NSwgMC44NjMwOCwgMS4xNjI0NSwgMS40MjQ1NywgMS43OTg3NSIsIFwKLSAgICAgICAgICAiMC4xNjkwMDcsIDAuNDMxNTA0LCAwLjY5NDAyOSwgMC44ODEzLCAxLjE4MDkzLCAxLjQ0MzE0LCAxLjgxNzEiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNDQ1NjUsIDAuNjU4MzY0LCAxLjE3MTM2LCAxLjUzODIxLCAyLjEyMzc2LCAyLjY0MDE2LCAzLjM3NjA4IiwgXAotICAgICAgICAgICIwLjE0MzkzOSwgMC42NTgzODksIDEuMTcxODcsIDEuNTM3MjUsIDIuMTI0ODgsIDIuNjM5MjQsIDMuMzc3NTEiLCBcCi0gICAgICAgICAgIjAuMTQzNTMzLCAwLjY1ODQ2NywgMS4xNzE3NSwgMS41MzgwOCwgMi4xMjM3MSwgMi42NDAwOSwgMy4zNzYwNyIsIFwKLSAgICAgICAgICAiMC4xNDYzNjYsIDAuNjU4OTk1LCAxLjE3MDk3LCAxLjUzNzA2LCAyLjEyMzcyLCAyLjYzOTE4LCAzLjM3NTc1IiwgXAotICAgICAgICAgICIwLjE1MDkzNywgMC42NTg3NjgsIDEuMTcxMywgMS41MzcxOSwgMi4xMjQ4OSwgMi42MzkzMywgMy4zNzU5OSIsIFwKLSAgICAgICAgICAiMC4xNjAwOTUsIDAuNjU4NDczLCAxLjE3MTg2LCAxLjUzNzM5LCAyLjEyNDE5LCAyLjYzOTMyLCAzLjM3NjAxIiwgXAotICAgICAgICAgICIwLjE3MDA3MSwgMC42NTkxNTQsIDEuMTcxODIsIDEuNTM2OTcsIDIuMTIzOCwgMi42Mzk3OSwgMy4zNzYwNiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExOTQ1LCAwLjU0OTY5OCwgMC45Nzk3NCwgMS4yODcwMywgMS43NzgzMiwgMi4yMDg1NywgMi44MjI2OCIsIFwKLSAgICAgICAgICAiMC4xMzAxMjcsIDAuNTYwOTUsIDAuOTkxMDE0LCAxLjI5ODIyLCAxLjc4OTcsIDIuMjE5NjUsIDIuODMzNzQiLCBcCi0gICAgICAgICAgIjAuMTQyNjk0LCAwLjU3NDA0OCwgMS4wMDQyLCAxLjMxMTM0LCAxLjgwMjg5LCAyLjIzMzA0LCAyLjg0Njg5IiwgXAotICAgICAgICAgICIwLjE1NTE0OCwgMC41ODY4NTIsIDEuMDE3MTEsIDEuMzI0MjEsIDEuODE1OTYsIDIuMjQ1NzgsIDIuODU5OTMiLCBcCi0gICAgICAgICAgIjAuMTY3NjAxLCAwLjU5OTU2NywgMS4wMjk4LCAxLjMzNzMzLCAxLjgyODY3LCAyLjI1ODk4LCAyLjg3MzEzIiwgXAotICAgICAgICAgICIwLjE4Nzc0NiwgMC42MjA0MDksIDEuMDUwNTgsIDEuMzU3OCwgMS44NDkyNSwgMi4yNzk3OSwgMi44OTM5NiIsIFwKLSAgICAgICAgICAiMC4yMDUzODcsIDAuNjM4MDM4LCAxLjA2ODU1LCAxLjM3NTg5LCAxLjg2NzY5LCAyLjI5NzQ4LCAyLjkxMTUyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjI4OTcyLCAxLjAzMzM2LCAxLjgzOTc3LCAyLjQxNjE1LCAzLjMzODUxLCA0LjE0NTM0LCA1LjI5ODgiLCBcCi0gICAgICAgICAgIjAuMjI4OTk2LCAxLjAzMzI5LCAxLjgzOTYsIDIuNDE1ODksIDMuMzM4NTcsIDQuMTQ2MjcsIDUuMjk5ODEiLCBcCi0gICAgICAgICAgIjAuMjI4OTg4LCAxLjAzMzMzLCAxLjgzOTgsIDIuNDE2MTcsIDMuMzM4NTksIDQuMTQ2NTksIDUuMjk5OCIsIFwKLSAgICAgICAgICAiMC4yMjkyMDIsIDEuMDMzMzMsIDEuODM5OTEsIDIuNDE1ODUsIDMuMzM4ODYsIDQuMTQ2LCA1LjMwMDAxIiwgXAotICAgICAgICAgICIwLjIzMDc0NywgMS4wMzMzNywgMS44Mzk1NCwgMi40MTYyMywgMy4zMzgzMSwgNC4xNDYyMiwgNS4zMDAxNyIsIFwKLSAgICAgICAgICAiMC4yMzU0NDgsIDEuMDMzNDMsIDEuODM5NjEsIDIuNDE1OTgsIDMuMzM4NTksIDQuMTQ2MiwgNS4zMDAyNiIsIFwKLSAgICAgICAgICAiMC4yNDEwMDksIDEuMDMzMzIsIDEuODM5NjIsIDIuNDE2MTMsIDMuMzM4NTksIDQuMTQ2NTEsIDUuMjk4MzYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjIiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDcyNjU0LCAwLjMzNjUwMywgMC41OTg5MzksIDAuNzg2MzcxLCAxLjA4NTY5LCAxLjM0ODEzLCAxLjcyMjA2IiwgXAotICAgICAgICAgICIwLjA4MzIyMiwgMC4zNDcyNjQsIDAuNjA5NzgsIDAuNzk3MDUxLCAxLjA5Njg3LCAxLjM1ODcxLCAxLjczMzA4IiwgXAotICAgICAgICAgICIwLjA5NjI0NSwgMC4zNjA0NTIsIDAuNjIyOTUsIDAuODEwMjgzLCAxLjEwOTc2LCAxLjM3MiwgMS43NDYxNyIsIFwKLSAgICAgICAgICAiMC4xMDk4OSwgMC4zNzM3MDIsIDAuNjM2MTE5LCAwLjgyMzQ3NywgMS4xMjMwNSwgMS4zODUxNSwgMS43NTk0OSIsIFwKLSAgICAgICAgICAiMC4xMjMwMiwgMC4zODY1OTgsIDAuNjQ5MTU3LCAwLjgzNjQ3NSwgMS4xMzYwOCwgMS4zOTgwNCwgMS43NzI0NiIsIFwKLSAgICAgICAgICAiMC4xNDQ2MDYsIDAuNDA3NTc1LCAwLjY3MDEyOSwgMC44NTc0NzksIDEuMTU3MDksIDEuNDE5MDEsIDEuNzkzNjUiLCBcCi0gICAgICAgICAgIjAuMTYzNTcyLCAwLjQyNTkzLCAwLjY4ODQ4OSwgMC44NzU4NzcsIDEuMTc1MjcsIDEuNDM3NjQsIDEuODExNzEiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMzg4NzYsIDAuNjUzNDc3LCAxLjE2NzI2LCAxLjUzMzk4LCAyLjEyNTUxLCAyLjY0ODUxLCAzLjM4MTY4IiwgXAotICAgICAgICAgICIwLjEzODIwNywgMC42NTM5MDMsIDEuMTY4MjYsIDEuNTM2ODYsIDIuMTI5OTUsIDIuNjQ4MTMsIDMuMzg1NjMiLCBcCi0gICAgICAgICAgIjAuMTM4MTM1LCAwLjY1NDE0OCwgMS4xNjcyNywgMS41MzY4NiwgMi4xMjk3LCAyLjY0MjM1LCAzLjM4OTA3IiwgXAotICAgICAgICAgICIwLjE0MDk2OCwgMC42NTM4OTEsIDEuMTcwMDgsIDEuNTMzNjUsIDIuMTM2MTIsIDIuNjQwNTUsIDMuNDAyMDEiLCBcCi0gICAgICAgICAgIjAuMTQ1ODczLCAwLjY1Mzg4NSwgMS4xNjczLCAxLjUzNDI0LCAyLjEyNzc0LCAyLjY1MDcsIDMuMzg2NyIsIFwKLSAgICAgICAgICAiMC4xNTU4MzgsIDAuNjUzNDk3LCAxLjE2NzI0LCAxLjUzNjg5LCAyLjEyOTY5LCAyLjY0MDYxLCAzLjM4NjY1IiwgXAotICAgICAgICAgICIwLjE2NjI0MSwgMC42NTM3MywgMS4xNjgzLCAxLjUzNTc3LCAyLjEzMDM5LCAyLjY0Nzk0LCAzLjM3OTM0Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTA5NDUyLCAwLjUzOTczOCwgMC45NzAyODIsIDEuMjc2OTYsIDEuNzY4NTIsIDIuMTk4NTIsIDIuODEyNDEiLCBcCi0gICAgICAgICAgIjAuMTE5MDA2LCAwLjU0OTkyMSwgMC45ODAxODYsIDEuMjg3MTcsIDEuNzc4NTIsIDIuMjA4NjUsIDIuODIyNjEiLCBcCi0gICAgICAgICAgIjAuMTMwNzkyLCAwLjU2MjQ4OSwgMC45OTI0NDEsIDEuMjk5NjgsIDEuNzkxMDYsIDIuMjIwOTksIDIuODM1MzYiLCBcCi0gICAgICAgICAgIjAuMTQzMTczLCAwLjU3NTEzOSwgMS4wMDUzNSwgMS4zMTI0NiwgMS44MDQxNCwgMi4yMzQxMSwgMi44NDgxNiIsIFwKLSAgICAgICAgICAiMC4xNTQ2ODgsIDAuNTg2NjgxLCAxLjAxNzAyLCAxLjMyNDIsIDEuODE1ODIsIDIuMjQ1NzUsIDIuODYwMzMiLCBcCi0gICAgICAgICAgIjAuMTc1MTc1LCAwLjYwNjI2OSwgMS4wMzY1OCwgMS4zNDM4NCwgMS44MzUzNywgMi4yNjU2MiwgMi44Nzk1NSIsIFwKLSAgICAgICAgICAiMC4xOTI3LCAwLjYyMzYyLCAxLjA1MzgsIDEuMzYxMTksIDEuODUyODEsIDIuMjgyODIsIDIuODk3MDUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMjg5NzcsIDEuMDMzMzQsIDEuODQwMjIsIDIuNDE2MDEsIDMuMzM4NDYsIDQuMTQ2MjQsIDUuMjk5ODQiLCBcCi0gICAgICAgICAgIjAuMjI4OTY1LCAxLjAzMzI3LCAxLjgzOTgsIDIuNDE1OTMsIDMuMzM4NTUsIDQuMTQ0NjYsIDUuMjk3MjIiLCBcCi0gICAgICAgICAgIjAuMjI4Njk0LCAxLjAzMzUsIDEuODM5NiwgMi40MTU5LCAzLjMzODYzLCA0LjE0NTk4LCA1LjI5OTg4IiwgXAotICAgICAgICAgICIwLjIyOTg0NywgMS4wMzMzMywgMS44Mzk4LCAyLjQxNTkzLCAzLjMzODI1LCA0LjE0NjQxLCA1LjI5OTg1IiwgXAotICAgICAgICAgICIwLjIzMzI3MSwgMS4wMzMyNywgMS44Mzk2MSwgMi40MTU5MSwgMy4zMzg0OCwgNC4xNDY0NywgNS4zMDAxNCIsIFwKLSAgICAgICAgICAiMC4yNDA4MDMsIDEuMDMzMywgMS44Mzk3NCwgMi40MTYxMSwgMy4zMzg2MywgNC4xNDU3MiwgNS4yOTk4NiIsIFwKLSAgICAgICAgICAiMC4yNDkyNiwgMS4wMzM0MiwgMS44Mzk1NiwgMi40MTU4OCwgMy4zMzgzNCwgNC4xNDY1MiwgNS4yOTk0MSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxNTU1LCAwLjAxNTU0NywgMC4wMTU1NDQsIDAuMDE1NTQzLCAwLjAxNTU0MSwgMC4wMTU1MzUsIDAuMDE1NTMxIiwgXAotICAgICAgICAgICIwLjAxNTUwOSwgMC4wMTU1MDcsIDAuMDE1NTA4LCAwLjAxNTUwMiwgMC4wMTU1LCAwLjAxNTQ5NywgMC4wMTU0OTMiLCBcCi0gICAgICAgICAgIjAuMDE1NDkzLCAwLjAxNTUsIDAuMDE1NSwgMC4wMTU0OTcsIDAuMDE1NDkzLCAwLjAxNTQ4OSwgMC4wMTU0ODUiLCBcCi0gICAgICAgICAgIjAuMDE1NDc2LCAwLjAxNTQ4OSwgMC4wMTU0ODgsIDAuMDE1NDg0LCAwLjAxNTQ4MSwgMC4wMTU0OCwgMC4wMTU0NzUiLCBcCi0gICAgICAgICAgIjAuMDE1NDYxLCAwLjAxNTQ5MSwgMC4wMTU0ODksIDAuMDE1NDg2LCAwLjAxNTQ4NSwgMC4wMTU0ODEsIDAuMDE1NDc5IiwgXAotICAgICAgICAgICIwLjAxNTQ2LCAwLjAxNTQ4MiwgMC4wMTU0ODQsIDAuMDE1NDgzLCAwLjAxNTQ4MywgMC4wMTU0NzgsIDAuMDE1NDcyIiwgXAotICAgICAgICAgICIwLjAxNTQ1MiwgMC4wMTU0NzksIDAuMDE1NDgyLCAwLjAxNTQ4NCwgMC4wMTU0ODEsIDAuMDE1NDc2LCAwLjAxNTQ3MyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2Mzc4LCAwLjAwNjM3NywgMC4wMDYzNzMsIDAuMDA2MzcxLCAwLjAwNjM2OCwgMC4wMDYzNjQsIDAuMDA2MzU1IiwgXAotICAgICAgICAgICIwLjAwNjMyOCwgMC4wMDYzNDcsIDAuMDA2MzQzLCAwLjAwNjM0NCwgMC4wMDYzMzYsIDAuMDA2MzMzLCAwLjAwNjMzIiwgXAotICAgICAgICAgICIwLjAwNjI5LCAwLjAwNjMyOCwgMC4wMDYzMzIsIDAuMDA2MzI5LCAwLjAwNjMyNywgMC4wMDYzMjksIDAuMDA2MzIyIiwgXAotICAgICAgICAgICIwLjAwNjI1NCwgMC4wMDYzMTQsIDAuMDA2MzIyLCAwLjAwNjMyMiwgMC4wMDYzMjEsIDAuMDA2MzIzLCAwLjAwNjMxNyIsIFwKLSAgICAgICAgICAiMC4wMDYyMjgsIDAuMDA2Mjk3LCAwLjAwNjMxMywgMC4wMDYzMTQsIDAuMDA2MzE0LCAwLjAwNjMxNywgMC4wMDYzMTEiLCBcCi0gICAgICAgICAgIjAuMDA2MTk4LCAwLjAwNjI4LCAwLjAwNjI5OSwgMC4wMDYzMDMsIDAuMDA2MzA4LCAwLjAwNjMwOCwgMC4wMDYzMDQiLCBcCi0gICAgICAgICAgIjAuMDA2MTc4LCAwLjAwNjI2NiwgMC4wMDYyOTEsIDAuMDA2Mjk1LCAwLjAwNjMwMSwgMC4wMDYzMDMsIDAuMDA2MyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkExIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxNDI3MSwgMC4wMTQyNjcsIDAuMDE0MjY1LCAwLjAxNDI2NSwgMC4wMTQyNjUsIDAuMDE0MjYsIDAuMDE0MjUxIiwgXAotICAgICAgICAgICIwLjAxNDI1NCwgMC4wMTQyNjUsIDAuMDE0MjY1LCAwLjAxNDI2NCwgMC4wMTQyNjIsIDAuMDE0MjYxLCAwLjAxNDI1NCIsIFwKLSAgICAgICAgICAiMC4wMTQyMzIsIDAuMDE0MjYxLCAwLjAxNDI2NSwgMC4wMTQyNjQsIDAuMDE0MjYyLCAwLjAxNDI1OCwgMC4wMTQyNiIsIFwKLSAgICAgICAgICAiMC4wMTQyMTgsIDAuMDE0MjU1LCAwLjAxNDI2MSwgMC4wMTQyNjEsIDAuMDE0MjU5LCAwLjAxNDI1NywgMC4wMTQyNSIsIFwKLSAgICAgICAgICAiMC4wMTQyMDEsIDAuMDE0MjUsIDAuMDE0MjU3LCAwLjAxNDI1NywgMC4wMTQyNTYsIDAuMDE0MjU1LCAwLjAxNDI1MyIsIFwKLSAgICAgICAgICAiMC4wMTQxOCwgMC4wMTQyNCwgMC4wMTQyNTIsIDAuMDE0MjUzLCAwLjAxNDI1MywgMC4wMTQyNTMsIDAuMDE0MjUyIiwgXAotICAgICAgICAgICIwLjAxNDE2NywgMC4wMTQyMzMsIDAuMDE0MjQ0LCAwLjAxNDI0NywgMC4wMTQyNSwgMC4wMTQyNSwgMC4wMTQyNDgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjM4MSwgMC4wMDYzOCwgMC4wMDYzNzMsIDAuMDA2MzcsIDAuMDA2MzcsIDAuMDA2MzY2LCAwLjAwNjM1NCIsIFwKLSAgICAgICAgICAiMC4wMDYzMzIsIDAuMDA2MzQ2LCAwLjAwNjM0NiwgMC4wMDYzNCwgMC4wMDYzNCwgMC4wMDYzMzYsIDAuMDA2MzQiLCBcCi0gICAgICAgICAgIjAuMDA2Mjg3LCAwLjAwNjMyOCwgMC4wMDYzMzIsIDAuMDA2MzMzLCAwLjAwNjMzLCAwLjAwNjMyNCwgMC4wMDYzMTciLCBcCi0gICAgICAgICAgIjAuMDA2MjU4LCAwLjAwNjMxNCwgMC4wMDYzMjIsIDAuMDA2MzIyLCAwLjAwNjMyMiwgMC4wMDYzMjMsIDAuMDA2MzE3IiwgXAotICAgICAgICAgICIwLjAwNjIzMywgMC4wMDYzMDIsIDAuMDA2MzEzLCAwLjAwNjMxNywgMC4wMDYzMTUsIDAuMDA2MzE1LCAwLjAwNjMxIiwgXAotICAgICAgICAgICIwLjAwNjE5OSwgMC4wMDYyODIsIDAuMDA2MywgMC4wMDYzMDcsIDAuMDA2MzA5LCAwLjAwNjMxLCAwLjAwNjMwNiIsIFwKLSAgICAgICAgICAiMC4wMDYxNzksIDAuMDA2MjY3LCAwLjAwNjI5LCAwLjAwNjI5NywgMC4wMDYzMDIsIDAuMDA2MzAyLCAwLjAwNjMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTI5MzMsIDAuMDEyOTM5LCAwLjAxMjk0LCAwLjAxMjkzOSwgMC4wMTI5MzcsIDAuMDEyOTMyLCAwLjAxMjkzNSIsIFwKLSAgICAgICAgICAiMC4wMTI5MzksIDAuMDEyOTcsIDAuMDEyOTc0LCAwLjAxMjk3NCwgMC4wMTI5NzIsIDAuMDEyOTcyLCAwLjAxMjk2OCIsIFwKLSAgICAgICAgICAiMC4wMTI5MTgsIDAuMDEyOTcyLCAwLjAxMjk4MSwgMC4wMTI5ODEsIDAuMDEyOTgxLCAwLjAxMjk5MywgMC4wMTI5NzkiLCBcCi0gICAgICAgICAgIjAuMDEyODg1LCAwLjAxMjk1NSwgMC4wMTI5NjYsIDAuMDEyOTY5LCAwLjAxMjk3MSwgMC4wMTI5NjksIDAuMDEyOTY4IiwgXAotICAgICAgICAgICIwLjAxMjg3LCAwLjAxMjk1OCwgMC4wMTI5NzEsIDAuMDEyOTc1LCAwLjAxMjk3OSwgMC4wMTI5NzgsIDAuMDEyOTc5IiwgXAotICAgICAgICAgICIwLjAxMjg0NCwgMC4wMTI5NDUsIDAuMDEyOTYzLCAwLjAxMjk3MSwgMC4wMTI5NzQsIDAuMDEyOTc2LCAwLjAxMjk3NCIsIFwKLSAgICAgICAgICAiMC4wMTI4MjQsIDAuMDEyOTM2LCAwLjAxMjk1NywgMC4wMTI5NjYsIDAuMDEyOTcsIDAuMDEyOTczLCAwLjAxMjk3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2MzgyLCAwLjAwNjM4MSwgMC4wMDYzNzYsIDAuMDA2MzcxLCAwLjAwNjM2OSwgMC4wMDYzNzksIDAuMDA2MzciLCBcCi0gICAgICAgICAgIjAuMDA2MzI0LCAwLjAwNjM0NiwgMC4wMDYzNDYsIDAuMDA2MzQ4LCAwLjAwNjM0MiwgMC4wMDYzMzksIDAuMDA2MzMzIiwgXAotICAgICAgICAgICIwLjAwNjI3MiwgMC4wMDYzMjUsIDAuMDA2MzMxLCAwLjAwNjMzMSwgMC4wMDYzMjksIDAuMDA2MzI3LCAwLjAwNjMxOCIsIFwKLSAgICAgICAgICAiMC4wMDYxOTksIDAuMDA2MzExLCAwLjAwNjMyMSwgMC4wMDYzMjMsIDAuMDA2MzIyLCAwLjAwNjMyMywgMC4wMDYzMTciLCBcCi0gICAgICAgICAgIjAuMDA2MjEsIDAuMDA2MjkyLCAwLjAwNjMxLCAwLjAwNjMxNCwgMC4wMDYzMTUsIDAuMDA2MzEzLCAwLjAwNjMwOSIsIFwKLSAgICAgICAgICAiMC4wMDYxNzUsIDAuMDA2MjcyLCAwLjAwNjI5NCwgMC4wMDYzMDEsIDAuMDA2MzA1LCAwLjAwNjMwNywgMC4wMDYzMDMiLCBcCi0gICAgICAgICAgIjAuMDA2MTYxLCAwLjAwNjI1NywgMC4wMDYyODQsIDAuMDA2MjkyLCAwLjAwNjI5OSwgMC4wMDYzLCAwLjAwNjI5OSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMTQ5NCwgMC4wMTE0OTIsIDAuMDExNDg5LCAwLjAxMTQ4NywgMC4wMTE0ODMsIDAuMDExNDgsIDAuMDExNDc1IiwgXAotICAgICAgICAgICIwLjAxMTQ0MiwgMC4wMTE0NTEsIDAuMDExNDQ4LCAwLjAxMTQ0NywgMC4wMTE0NDUsIDAuMDExNDQsIDAuMDExNDM0IiwgXAotICAgICAgICAgICIwLjAxMTQxNCwgMC4wMTE0MzQsIDAuMDExNDM4LCAwLjAxMTQzNSwgMC4wMTE0MzQsIDAuMDExNDMxLCAwLjAxMTQyNiIsIFwKLSAgICAgICAgICAiMC4wMTEzOTMsIDAuMDExNDI5LCAwLjAxMTQzMSwgMC4wMTE0MywgMC4wMTE0MjgsIDAuMDExNDI1LCAwLjAxMTQxOCIsIFwKLSAgICAgICAgICAiMC4wMTEzODEsIDAuMDExNDE5LCAwLjAxMTQyNSwgMC4wMTE0MjIsIDAuMDExNDIyLCAwLjAxMTQxOSwgMC4wMTE0MTciLCBcCi0gICAgICAgICAgIjAuMDExMzY1LCAwLjAxMTQxLCAwLjAxMTQxNywgMC4wMTE0MTgsIDAuMDExNDE4LCAwLjAxMTQxNywgMC4wMTE0MTIiLCBcCi0gICAgICAgICAgIjAuMDExMzYsIDAuMDExNDA0LCAwLjAxMTQxMywgMC4wMTE0MTYsIDAuMDExNDE0LCAwLjAxMTQxNCwgMC4wMTE0MDciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjA4NiwgMC4wMDIxMDMsIDAuMDAyMTA1LCAwLjAwMjEwNiwgMC4wMDIxMDYsIDAuMDAyMTA2LCAwLjAwMjEwNiIsIFwKLSAgICAgICAgICAiMC4wMDIwNjUsIDAuMDAyMTM5LCAwLjAwMjE0OSwgMC4wMDIxNTIsIDAuMDAyMTU0LCAwLjAwMjE1NiwgMC4wMDIxNTciLCBcCi0gICAgICAgICAgIjAuMDAyMDE2LCAwLjAwMjE0LCAwLjAwMjE1OCwgMC4wMDIxNjQsIDAuMDAyMTY5LCAwLjAwMjE3MSwgMC4wMDIxNzQiLCBcCi0gICAgICAgICAgIjAuMDAxOTcxLCAwLjAwMjEyOSwgMC4wMDIxNTUsIDAuMDAyMTYzLCAwLjAwMjE3MSwgMC4wMDIxNzQsIDAuMDAyMTc4IiwgXAotICAgICAgICAgICIwLjAwMTkzNywgMC4wMDIxMTYsIDAuMDAyMTQ5LCAwLjAwMjE1OSwgMC4wMDIxNjksIDAuMDAyMTc0LCAwLjAwMjE3OCIsIFwKLSAgICAgICAgICAiMC4wMDE4OTEsIDAuMDAyMDk0LCAwLjAwMjEzNiwgMC4wMDIxNSwgMC4wMDIxNjMsIDAuMDAyMTY5LCAwLjAwMjE3NiIsIFwKLSAgICAgICAgICAiMC4wMDE4NjEsIDAuMDAyMDc0LCAwLjAwMjEyMywgMC4wMDIxNDEsIDAuMDAyMTU2LCAwLjAwMjE2NSwgMC4wMDIxNzIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTAxOSwgMC4wMTAxOTIsIDAuMDEwMTksIDAuMDEwMTg4LCAwLjAxMDE4NSwgMC4wMTAxODMsIDAuMDEwMTgyIiwgXAotICAgICAgICAgICIwLjAxMDE2MywgMC4wMTAxODYsIDAuMDEwMTg1LCAwLjAxMDE4NSwgMC4wMTAxODgsIDAuMDEwMTc5LCAwLjAxMDE3NiIsIFwKLSAgICAgICAgICAiMC4wMTAxMzQsIDAuMDEwMTc3LCAwLjAxMDE4MSwgMC4wMTAxNzksIDAuMDEwMTc3LCAwLjAxMDE4MiwgMC4wMTAxNzQiLCBcCi0gICAgICAgICAgIjAuMDEwMTA2LCAwLjAxMDE2OCwgMC4wMTAxNzUsIDAuMDEwMTc4LCAwLjAxMDE3NiwgMC4wMTAxNzQsIDAuMDEwMTczIiwgXAotICAgICAgICAgICIwLjAxMDA4NSwgMC4wMTAxNTksIDAuMDEwMTY4LCAwLjAxMDE3MSwgMC4wMTAxNzMsIDAuMDEwMTcyLCAwLjAxMDE2OSIsIFwKLSAgICAgICAgICAiMC4wMTAwNjYsIDAuMDEwMTQzLCAwLjAxMDE2MSwgMC4wMTAxNjYsIDAuMDEwMTY3LCAwLjAxMDE2NywgMC4wMTAxNjUiLCBcCi0gICAgICAgICAgIjAuMDEwMDU0LCAwLjAxMDEzOCwgMC4wMTAxNTUsIDAuMDEwMTYxLCAwLjAxMDE2NiwgMC4wMTAxNjUsIDAuMDEwMTY0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDIwODUsIDAuMDAyMTAzLCAwLjAwMjEwNSwgMC4wMDIxMDUsIDAuMDAyMTA2LCAwLjAwMjEwNiwgMC4wMDIxMDYiLCBcCi0gICAgICAgICAgIjAuMDAyMDY1LCAwLjAwMjEzOSwgMC4wMDIxNDksIDAuMDAyMTUyLCAwLjAwMjE1NCwgMC4wMDIxNTUsIDAuMDAyMTU3IiwgXAotICAgICAgICAgICIwLjAwMjAxNiwgMC4wMDIxNCwgMC4wMDIxNTgsIDAuMDAyMTY0LCAwLjAwMjE2OSwgMC4wMDIxNzEsIDAuMDAyMTc0IiwgXAotICAgICAgICAgICIwLjAwMTk3MywgMC4wMDIxMjksIDAuMDAyMTU1LCAwLjAwMjE2MywgMC4wMDIxNywgMC4wMDIxNzQsIDAuMDAyMTc4IiwgXAotICAgICAgICAgICIwLjAwMTkzNiwgMC4wMDIxMTYsIDAuMDAyMTQ5LCAwLjAwMjE1OSwgMC4wMDIxNjksIDAuMDAyMTczLCAwLjAwMjE3OCIsIFwKLSAgICAgICAgICAiMC4wMDE4OTEsIDAuMDAyMDk0LCAwLjAwMjEzNiwgMC4wMDIxNSwgMC4wMDIxNjMsIDAuMDAyMTY5LCAwLjAwMjE3NSIsIFwKLSAgICAgICAgICAiMC4wMDE4NjMsIDAuMDAyMDc0LCAwLjAwMjEyNCwgMC4wMDIxNDEsIDAuMDAyMTU2LCAwLjAwMjE2NCwgMC4wMDIxNzIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDg4MjcsIDAuMDA4ODM3LCAwLjAwODgzOCwgMC4wMDg4MzcsIDAuMDA4ODM1LCAwLjAwODgzNSwgMC4wMDg4MzIiLCBcCi0gICAgICAgICAgIjAuMDA4ODIsIDAuMDA4ODY1LCAwLjAwODg2OSwgMC4wMDg4NzEsIDAuMDA4ODY5LCAwLjAwODg3NSwgMC4wMDg4NjYiLCBcCi0gICAgICAgICAgIjAuMDA4Nzg0LCAwLjAwODg2MSwgMC4wMDg4NjksIDAuMDA4ODc1LCAwLjAwODg3NiwgMC4wMDg4NzUsIDAuMDA4ODY4IiwgXAotICAgICAgICAgICIwLjAwODc1MSwgMC4wMDg4NDksIDAuMDA4ODY0LCAwLjAwODg2OCwgMC4wMDg4NzIsIDAuMDA4ODcyLCAwLjAwODg2OSIsIFwKLSAgICAgICAgICAiMC4wMDg3MywgMC4wMDg4NDMsIDAuMDA4ODYsIDAuMDA4ODY1LCAwLjAwODg3LCAwLjAwODg2OSwgMC4wMDg4NjgiLCBcCi0gICAgICAgICAgIjAuMDA4Njk5LCAwLjAwODgyNiwgMC4wMDg4NSwgMC4wMDg4NTgsIDAuMDA4ODY0LCAwLjAwODg2NiwgMC4wMDg4NjYiLCBcCi0gICAgICAgICAgIjAuMDA4NjgsIDAuMDA4ODE0LCAwLjAwODg0NCwgMC4wMDg4NTEsIDAuMDA4ODU5LCAwLjAwODg2MiwgMC4wMDg4NjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjA3OCwgMC4wMDIwOTksIDAuMDAyMSwgMC4wMDIxMDEsIDAuMDAyMTAzLCAwLjAwMjEwMywgMC4wMDIxMDMiLCBcCi0gICAgICAgICAgIjAuMDAyMDQ3LCAwLjAwMjEzNCwgMC4wMDIxNDUsIDAuMDAyMTQ4LCAwLjAwMjE1MSwgMC4wMDIxNTMsIDAuMDAyMTU0IiwgXAotICAgICAgICAgICIwLjAwMTk5MywgMC4wMDIxMzMsIDAuMDAyMTU0LCAwLjAwMjE2LCAwLjAwMjE2NiwgMC4wMDIxNjksIDAuMDAyMTcyIiwgXAotICAgICAgICAgICIwLjAwMTk0NiwgMC4wMDIxMjEsIDAuMDAyMTQ5LCAwLjAwMjE1OCwgMC4wMDIxNjYsIDAuMDAyMTcxLCAwLjAwMjE3NCIsIFwKLSAgICAgICAgICAiMC4wMDE5MDksIDAuMDAyMTA3LCAwLjAwMjE0MywgMC4wMDIxNTUsIDAuMDAyMTY1LCAwLjAwMjE3MSwgMC4wMDIxNzYiLCBcCi0gICAgICAgICAgIjAuMDAxODc1LCAwLjAwMjA4MywgMC4wMDIxMjksIDAuMDAyMTQ1LCAwLjAwMjE1OSwgMC4wMDIxNjYsIDAuMDAyMTczIiwgXAotICAgICAgICAgICIwLjAwMTg1NiwgMC4wMDIwNjQsIDAuMDAyMTE3LCAwLjAwMjEzNSwgMC4wMDIxNTIsIDAuMDAyMTYxLCAwLjAwMjE2OSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogQlVGWDEyICoKLSAqIC0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoQlVGWDEyKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuNTA0MTk0OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDIxOTM0NDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDIxOTE3MjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDIxOTM0NDsKLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAxLjU1Mzg7Ci0gICAgZnVuY3Rpb24gOiAiQSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDYzOTczLCAwLjA2ODc0OSwgMC4wOTE0NzMsIDAuMTEwMDM5LCAwLjEzNDIzMSwgMC4xODI0NjEsIDAuMjEyNTM1IiwgXAotICAgICAgICAgICIwLjA3NTM2NywgMC4wODAxNTYsIDAuMTAzMTM4LCAwLjEyMTU5OSwgMC4xNDU4NywgMC4xOTQwODIsIDAuMjI0MTk0IiwgXAotICAgICAgICAgICIwLjA5MDQxLCAwLjA5NTE5NywgMC4xMTgxMzMsIDAuMTM2NzIzLCAwLjE2MDk0MSwgMC4yMDkyMiwgMC4yMzkzMDUiLCBcCi0gICAgICAgICAgIjAuMTA1Mzc2LCAwLjExMDIxOSwgMC4xMzMxNDMsIDAuMTUxNzE0LCAwLjE3NTk0NiwgMC4yMjQyMDYsIDAuMjU0MjkiLCBcCi0gICAgICAgICAgIjAuMTIwMzEzLCAwLjEyNTEwOSwgMC4xNDc5ODYsIDAuMTY2NTcyLCAwLjE5MDgwMiwgMC4yMzkwNywgMC4yNjkxNjIiLCBcCi0gICAgICAgICAgIjAuMTQzMzE0LCAwLjE0ODExOCwgMC4xNzExODcsIDAuMTg5NzcxLCAwLjIxNDAxNSwgMC4yNjIyMzUsIDAuMjkyMzMxIiwgXAotICAgICAgICAgICIwLjE2MTY5LCAwLjE2NjcxNSwgMC4xOTAxMTIsIDAuMjA4NTgsIDAuMjMyODUzLCAwLjI4MTExLCAwLjMxMTIxIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzMzc2NiwgMC4wNDA1OTgsIDAuMDc5NjU5LCAwLjExNDY3NiwgMC4xNjIxMzQsIDAuMjU4MzUxLCAwLjMxOTAxOSIsIFwKLSAgICAgICAgICAiMC4wMzM3OTMsIDAuMDQwNjU3LCAwLjA3OTU1LCAwLjExNDU4MywgMC4xNjIyOTMsIDAuMjU4NzU1LCAwLjMxOTQ1NCIsIFwKLSAgICAgICAgICAiMC4wMzM3NzUsIDAuMDQwNjE3LCAwLjA3OTQ4OSwgMC4xMTQ2MDYsIDAuMTYyNDI3LCAwLjI1ODYzNiwgMC4zMTkzNiIsIFwKLSAgICAgICAgICAiMC4wMzQxMTUsIDAuMDQwOTQxLCAwLjA3OTU4NywgMC4xMTQ3NDIsIDAuMTYyNDc2LCAwLjI1OTMsIDAuMzE5NjY3IiwgXAotICAgICAgICAgICIwLjAzNDM3NCwgMC4wNDExMDUsIDAuMDc5NzE5LCAwLjExNDgsIDAuMTYyNTEzLCAwLjI1ODcwNCwgMC4zMTk3MzEiLCBcCi0gICAgICAgICAgIjAuMDM2MzA5LCAwLjA0MjcyNiwgMC4wODA1MjIsIDAuMTE1MjQ0LCAwLjE2MjczOSwgMC4yNTkwNDMsIDAuMzE5NzUzIiwgXAotICAgICAgICAgICIwLjAzODcxNSwgMC4wNDUxNjYsIDAuMDgyMDM3LCAwLjExNjYyMSwgMC4xNjM1MzMsIDAuMjU5NzM2LCAwLjMxOTgyNiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjI4NCwgMC4wNjgwNTQsIDAuMDk0MTUxLCAwLjExNTU4NywgMC4xNDQxNSwgMC4yMDEwNjUsIDAuMjM2NjMxIiwgXAotICAgICAgICAgICIwLjA3NDE4MSwgMC4wNzk0MjQsIDAuMTA1NjI2LCAwLjEyNzI5NSwgMC4xNTU4NzcsIDAuMjEyODA3LCAwLjI0ODMzOSIsIFwKLSAgICAgICAgICAiMC4wODkxNjQsIDAuMDk0NDMyLCAwLjEyMDU0OSwgMC4xNDIyNjcsIDAuMTcwODUxLCAwLjIyNzgwOSwgMC4yNjMzNDEiLCBcCi0gICAgICAgICAgIjAuMTAzNzI0LCAwLjEwODkzMSwgMC4xMzUxNzcsIDAuMTU2ODg4LCAwLjE4NTQ4NywgMC4yNDI0NTUsIDAuMjc3OTk3IiwgXAotICAgICAgICAgICIwLjExODE2OSwgMC4xMjM0MzksIDAuMTQ5NTMyLCAwLjE3MTMwMywgMC4xOTk5MTQsIDAuMjU2ODU2LCAwLjI5MjQzNCIsIFwKLSAgICAgICAgICAiMC4xMzk4NDEsIDAuMTQ0OTksIDAuMTcxMzQzLCAwLjE5MzEwMSwgMC4yMjE3MTQsIDAuMjc4NjcyLCAwLjMxNDI0NSIsIFwKLSAgICAgICAgICAiMC4xNTY1NDgsIDAuMTYyMDUyLCAwLjE4ODY2MywgMC4yMTA0MTcsIDAuMjM5MDgxLCAwLjI5NjAyLCAwLjMzMTU2NCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzQ4NDcsIDAuMDQyOTA3LCAwLjA4ODU0NSwgMC4xMjk1NzYsIDAuMTg1MjE0LCAwLjI5NjgyNSwgMC4zNjcyMSIsIFwKLSAgICAgICAgICAiMC4wMzQ4NzUsIDAuMDQyODgzLCAwLjA4ODQ5NCwgMC4xMjk2MzksIDAuMTg0NzQ4LCAwLjI5NzU1MiwgMC4zNjc5NDUiLCBcCi0gICAgICAgICAgIjAuMDM0ODgyLCAwLjA0MjkwOCwgMC4wODg1MDUsIDAuMTI5NDQzLCAwLjE4NTE5MSwgMC4yOTY2MjEsIDAuMzY3OTI5IiwgXAotICAgICAgICAgICIwLjAzNTM4OSwgMC4wNDMyODMsIDAuMDg4NTY5LCAwLjEyOTcwNywgMC4xODUyNTUsIDAuMjk3NTY4LCAwLjM2Nzk0OSIsIFwKLSAgICAgICAgICAiMC4wMzU0NTEsIDAuMDQzNDc0LCAwLjA4ODc2NiwgMC4xMjk3MjUsIDAuMTg1MzExLCAwLjI5Njc5NSwgMC4zNjc5NzYiLCBcCi0gICAgICAgICAgIjAuMDM3MjQ0LCAwLjA0NTMzMywgMC4wODk1OTYsIDAuMTMwMjc3LCAwLjE4NTUyNywgMC4yOTY2NzUsIDAuMzY3NjY4IiwgXAotICAgICAgICAgICIwLjAzOTUyNCwgMC4wNDcwMjQsIDAuMDkwODE0LCAwLjEzMTA1NCwgMC4xODYwMTUsIDAuMjk3OTMzLCAwLjM2NzI3NyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMDIzMSwgMC4wMTAzMSwgMC4wMTA0OTgsIDAuMDEwNTU5LCAwLjAxMDU5OSwgMC4wMTA2MzQsIDAuMDEwNjQ1IiwgXAotICAgICAgICAgICIwLjAxMDEyNSwgMC4wMTAyLCAwLjAxMDQsIDAuMDEwNDY3LCAwLjAxMDUwNywgMC4wMTA1NTEsIDAuMDEwNTYzIiwgXAotICAgICAgICAgICIwLjAxMDA0LCAwLjAxMDEwNywgMC4wMTAzMDQsIDAuMDEwMzc4LCAwLjAxMDQzMSwgMC4wMTA0OCwgMC4wMTA0OTIiLCBcCi0gICAgICAgICAgIjAuMDA5OTU1LCAwLjAxMDAxNywgMC4wMTAyMTIsIDAuMDEwMjk1LCAwLjAxMDM1NywgMC4wMTA0MTgsIDAuMDEwNDM5IiwgXAotICAgICAgICAgICIwLjAwOTkxMywgMC4wMDk5NzIsIDAuMDEwMTY0LCAwLjAxMDI1MiwgMC4wMTAzMTgsIDAuMDEwMzg3LCAwLjAxMDQxNiIsIFwKLSAgICAgICAgICAiMC4wMDk4OCwgMC4wMDk5MzEsIDAuMDEwMTEzLCAwLjAxMDE5OSwgMC4wMTAyNywgMC4wMTAzNDcsIDAuMDEwMzc1IiwgXAotICAgICAgICAgICIwLjAwOTg2OCwgMC4wMDk5MTQsIDAuMDEwMDc1LCAwLjAxMDE1NywgMC4wMTAyMjksIDAuMDEwMzIyLCAwLjAxMDM0NSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMjc1NywgMC4wMTI4NTEsIDAuMDEzMTAyLCAwLjAxMzE2NywgMC4wMTMyMjcsIDAuMDEzMjgxLCAwLjAxMzI5OSIsIFwKLSAgICAgICAgICAiMC4wMTI2NjUsIDAuMDEyNzU5LCAwLjAxMzAxOCwgMC4wMTMxMDksIDAuMDEzMTcsIDAuMDEzMjI3LCAwLjAxMzI0NSIsIFwKLSAgICAgICAgICAiMC4wMTI1ODUsIDAuMDEyNjcxLCAwLjAxMjkyNSwgMC4wMTMwMjQsIDAuMDEzMDk2LCAwLjAxMzE2NCwgMC4wMTMxODYiLCBcCi0gICAgICAgICAgIjAuMDEyNDgzLCAwLjAxMjU2MSwgMC4wMTI4MTgsIDAuMDEyOTI5LCAwLjAxMzAxNCwgMC4wMTMxLCAwLjAxMzEyOSIsIFwKLSAgICAgICAgICAiMC4wMTI0NDcsIDAuMDEyNTI1LCAwLjAxMjc2NywgMC4wMTI4OCwgMC4wMTI5NywgMC4wMTMwNjQsIDAuMDEzMDk3IiwgXAotICAgICAgICAgICIwLjAxMjM4NSwgMC4wMTI0MzcsIDAuMDEyNjgyLCAwLjAxMjgwNCwgMC4wMTI4OTIsIDAuMDEzMDA1LCAwLjAxMzA0NSIsIFwKLSAgICAgICAgICAiMC4wMTIzNTgsIDAuMDEyNDI5LCAwLjAxMjY0NSwgMC4wMTI3NTgsIDAuMDEyODU4LCAwLjAxMjk3MiwgMC4wMTMwMTMiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IEJVRlgxNiAqCi0gKiAtLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKEJVRlgxNikgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjY3MjA5NDsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAyODczOTM7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAyODcyMDY7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAyODczOTM7Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMi4xNTgwMTsKLSAgICBmdW5jdGlvbiA6ICJBIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjA2NTQsIDAuMDY0NDQ1LCAwLjA4MjQwMywgMC4wOTY2ODgsIDAuMTE1MTE4LCAwLjE1MTUxNSwgMC4xNzQxOTciLCBcCi0gICAgICAgICAgIjAuMDcyMDkyLCAwLjA3NTkyNywgMC4wOTM5NzMsIDAuMTA4Mjk1LCAwLjEyNjczLCAwLjE2MzE0MiwgMC4xODU4MjUiLCBcCi0gICAgICAgICAgIjAuMDg3MDg3LCAwLjA5MDg5NiwgMC4xMDg5NTcsIDAuMTIzMjU2LCAwLjE0MTcyMywgMC4xNzgxOTIsIDAuMjAwODc1IiwgXAotICAgICAgICAgICIwLjEwMjEwNSwgMC4xMDU5MjEsIDAuMTI0MDE0LCAwLjEzODM2NiwgMC4xNTY3NjIsIDAuMTkzMjA4LCAwLjIxNTkyMSIsIFwKLSAgICAgICAgICAiMC4xMTcxMjcsIDAuMTIwOTM3LCAwLjEzODk3NCwgMC4xNTMyNDMsIDAuMTcxNzIxLCAwLjIwODE0NCwgMC4yMzA4NDkiLCBcCi0gICAgICAgICAgIjAuMTM5NjEsIDAuMTQzNDk0LCAwLjE2MTgwMywgMC4xNzYyMDUsIDAuMTk0NjUxLCAwLjIzMTA1OSwgMC4yNTM3NTEiLCBcCi0gICAgICAgICAgIjAuMTU3OTE1LCAwLjE2MjA3OSwgMC4xODA2OTcsIDAuMTk1MDUxLCAwLjIxMzMyNSwgMC4yNDk3NiwgMC4yNzI0ODEiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDMwNTI1LCAwLjAzNTc2OCwgMC4wNjUwMDUsIDAuMDkxMTkzLCAwLjEyNjY2MiwgMC4xOTkyMTUsIDAuMjQ0Nzc5IiwgXAotICAgICAgICAgICIwLjAzMDU2NywgMC4wMzU3ODYsIDAuMDY0OTExLCAwLjA5MTExNSwgMC4xMjY1ODcsIDAuMTk5MTY4LCAwLjI0NDgwMyIsIFwKLSAgICAgICAgICAiMC4wMzA1MDYsIDAuMDM1NzQzLCAwLjA2NDg3MywgMC4wOTEwODEsIDAuMTI2NjA4LCAwLjE5OTA4OSwgMC4yNDQzMTMiLCBcCi0gICAgICAgICAgIjAuMDMwNzEyLCAwLjAzNTg3NCwgMC4wNjQ5NzUsIDAuMDkxMTU1LCAwLjEyNjU4NiwgMC4xOTkxMjUsIDAuMjQ0Nzc0IiwgXAotICAgICAgICAgICIwLjAzMTAyOSwgMC4wMzYzMjksIDAuMDY1MjM1LCAwLjA5MTMyNSwgMC4xMjY3MzEsIDAuMTk5MTk5LCAwLjI0NDM3NyIsIFwKLSAgICAgICAgICAiMC4wMzM3NDcsIDAuMDM4NTI3LCAwLjA2NjM5LCAwLjA5MjExLCAwLjEyNzIzOSwgMC4xOTk0NzksIDAuMjQ1MDE4IiwgXAotICAgICAgICAgICIwLjAzNTc2NiwgMC4wNDA2MzcsIDAuMDY4MDI1LCAwLjA5MzM2LCAwLjEyODQ5NCwgMC4xOTk4MjYsIDAuMjQ1Mzc5Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1OTIxNiwgMC4wNjMyNzIsIDAuMDgzNTY4LCAwLjEwMDAyMywgMC4xMjE1NDIsIDAuMTY0MjczLCAwLjE5MDkwNCIsIFwKLSAgICAgICAgICAiMC4wNzA1ODUsIDAuMDc0Njc4LCAwLjA5NDk5LCAwLjExMTUxLCAwLjEzMzAzMiwgMC4xNzU3NjgsIDAuMjAyNDEyIiwgXAotICAgICAgICAgICIwLjA4NTUzLCAwLjA4OTY0NiwgMC4xMDk5NTQsIDAuMTI2NDIzLCAwLjE0Nzk4NSwgMC4xOTA3MjQsIDAuMjE3NDA1IiwgXAotICAgICAgICAgICIwLjEwMDE1LCAwLjEwNDMwMSwgMC4xMjQ1NiwgMC4xNDEwNTMsIDAuMTYyNjU2LCAwLjIwNTQzMSwgMC4yMzIwODIiLCBcCi0gICAgICAgICAgIjAuMTE0NTc4LCAwLjExODcwNSwgMC4xMzkwMjQsIDAuMTU1NTUxLCAwLjE3NzEwNywgMC4yMTk4ODQsIDAuMjQ2NTM4IiwgXAotICAgICAgICAgICIwLjEzNTgxNCwgMC4xNDAwNDksIDAuMTYwNDcxLCAwLjE3Njk0OCwgMC4xOTg1MSwgMC4yNDEyNjcsIDAuMjY3OTE3IiwgXAotICAgICAgICAgICIwLjE1MjUyMywgMC4xNTY4NTMsIDAuMTc3NzkzLCAwLjE5NDQwNywgMC4yMTU5NjgsIDAuMjU4NjkzLCAwLjI4NTM1NyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzEwNTUsIDAuMDM3MTI2LCAwLjA3MTE4MiwgMC4xMDE5ODMsIDAuMTQzMzg2LCAwLjIyNzYxMiwgMC4yNzk0NDMiLCBcCi0gICAgICAgICAgIjAuMDMxMDU5LCAwLjAzNzEyNiwgMC4wNzEyOTcsIDAuMTAxOTcyLCAwLjE0MzM5NiwgMC4yMjc2MzEsIDAuMjgwNDgiLCBcCi0gICAgICAgICAgIjAuMDMxMDQ5LCAwLjAzNzEyNiwgMC4wNzEzNTgsIDAuMTAxOTAxLCAwLjE0MzI5NywgMC4yMjc1NjEsIDAuMjgwNDU3IiwgXAotICAgICAgICAgICIwLjAzMTMzNCwgMC4wMzczODMsIDAuMDcxNDA5LCAwLjEwMjA1NiwgMC4xNDM0MSwgMC4yMjc2MTUsIDAuMjgwNDg1IiwgXAotICAgICAgICAgICIwLjAzMTczMiwgMC4wMzc3MTQsIDAuMDcxNjE4LCAwLjEwMjE2NiwgMC4xNDM1ODIsIDAuMjI3Njg5LCAwLjI4MDQzMyIsIFwKLSAgICAgICAgICAiMC4wMzM3MTQsIDAuMDM5NTIsIDAuMDcyOTMxLCAwLjEwMjk1NSwgMC4xNDM5NTQsIDAuMjI3ODE1LCAwLjI4MDUwOCIsIFwKLSAgICAgICAgICAiMC4wMzU4NjMsIDAuMDQxNTU5LCAwLjA3NDAzMiwgMC4xMDM5NTgsIDAuMTQ0NjM4LCAwLjIyODE3MywgMC4yODAxMzgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTMyMjYsIDAuMDEzMzE5LCAwLjAxMzU3MywgMC4wMTM2NjcsIDAuMDEzNzMsIDAuMDEzNzg4LCAwLjAxMzgxOCIsIFwKLSAgICAgICAgICAiMC4wMTMwODcsIDAuMDEzMTc3LCAwLjAxMzQ0NCwgMC4wMTM1NDMsIDAuMDEzNjEyLCAwLjAxMzY3NiwgMC4wMTM2OTYiLCBcCi0gICAgICAgICAgIjAuMDEyOTc4LCAwLjAxMzA1NywgMC4wMTMzMDksIDAuMDEzNDE1LCAwLjAxMzQ5NSwgMC4wMTM1NzgsIDAuMDEzNTk5IiwgXAotICAgICAgICAgICIwLjAxMjg4LCAwLjAxMjk1MiwgMC4wMTMxOTcsIDAuMDEzMzEsIDAuMDEzNCwgMC4wMTM1MDEsIDAuMDEzNTI3IiwgXAotICAgICAgICAgICIwLjAxMjgzOCwgMC4wMTI4OTIsIDAuMDEzMTI3LCAwLjAxMzIzOCwgMC4wMTMzMzcsIDAuMDEzNDM4LCAwLjAxMzQ3NiIsIFwKLSAgICAgICAgICAiMC4wMTI3NDcsIDAuMDEyODExLCAwLjAxMzA0MSwgMC4wMTMxNTcsIDAuMDEzMjU5LCAwLjAxMzM4MywgMC4wMTM0MjkiLCBcCi0gICAgICAgICAgIjAuMDEyNzYsIDAuMDEyODMyLCAwLjAxMzAxNCwgMC4wMTMxMiwgMC4wMTMyMTQsIDAuMDEzMzI1LCAwLjAxMzM3OCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxNjcyLCAwLjAxNjgzMywgMC4wMTcxNzksIDAuMDE3MzA0LCAwLjAxNzM4OSwgMC4wMTc0NjksIDAuMDE3NDk1IiwgXAotICAgICAgICAgICIwLjAxNjU5OSwgMC4wMTY3MTEsIDAuMDE3MDU2LCAwLjAxNzE5LCAwLjAxNzI4NiwgMC4wMTczNzgsIDAuMDE3NDA4IiwgXAotICAgICAgICAgICIwLjAxNjQ5OCwgMC4wMTY1OTgsIDAuMDE2OTI0LCAwLjAxNzA2NiwgMC4wMTcxNzQsIDAuMDE3Mjg0LCAwLjAxNzMyMSIsIFwKLSAgICAgICAgICAiMC4wMTYzNjMsIDAuMDE2NDU3LCAwLjAxNjc4NSwgMC4wMTY5MzksIDAuMDE3MDYzLCAwLjAxNzE5NCwgMC4wMTcyNDEiLCBcCi0gICAgICAgICAgIjAuMDE2MzIzLCAwLjAxNjQwMywgMC4wMTY3MTQsIDAuMDE2ODY3LCAwLjAxNjk5NSwgMC4wMTcxMzYsIDAuMDE3MTg4IiwgXAotICAgICAgICAgICIwLjAxNjI1MSwgMC4wMTYzMzEsIDAuMDE2NTksIDAuMDE2NzUsIDAuMDE2ODg3LCAwLjAxNzA0LCAwLjAxNzEwNCIsIFwKLSAgICAgICAgICAiMC4wMTYyMzEsIDAuMDE2Mjk2LCAwLjAxNjU0MywgMC4wMTY2OTYsIDAuMDE2ODMzLCAwLjAxNjk5NCwgMC4wMTcwNTQiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogQlVGWDIgKgotICogLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKEJVRlgyKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMDg1MjYwNDsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjAxNTk1OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYwMTA1MjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2MDE1OTU7Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4yNjE2OTg7Ci0gICAgZnVuY3Rpb24gOiAiQSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk4NDg0LCAwLjI3ODAyNywgMC40MjEyNjgsIDAuNjAwMTQ3LCAwLjc3OTA5NiwgMC45NTgyNDgsIDEuMTM3MzIiLCBcCi0gICAgICAgICAgIjAuMTEwMzg5LCAwLjI4OTk2OCwgMC40MzMyMTksIDAuNjEyMzgzLCAwLjc5MTM0LCAwLjk3MDIwNCwgMS4xNDkxNSIsIFwKLSAgICAgICAgICAiMC4xMjU2MTksIDAuMzA1MjYzLCAwLjQ0ODUxNywgMC42MjcyNDEsIDAuODA2NTI4LCAwLjk4NTUzLCAxLjE2NDUiLCBcCi0gICAgICAgICAgIjAuMTQwOTksIDAuMzIwNjc1LCAwLjQ2Mzg4LCAwLjY0MjkxMywgMC44MjE1NjMsIDEuMDAwOTEsIDEuMTc5OTMiLCBcCi0gICAgICAgICAgIjAuMTU1NzYsIDAuMzM1Mzk1LCAwLjQ3ODYxMiwgMC42NTc4NDIsIDAuODM2NzU0LCAxLjAxNTc0LCAxLjE5NDU5IiwgXAotICAgICAgICAgICIwLjE3OTk5NiwgMC4zNTk2MTQsIDAuNTAyODg4LCAwLjY4MTkyNywgMC44NjA4NDYsIDEuMDM5OTUsIDEuMjE4ODUiLCBcCi0gICAgICAgICAgIjAuMTk5NzU5LCAwLjM3OTE4MiwgMC41MjI1MTIsIDAuNzAxMzcsIDAuODgwNjU0LCAxLjA1OTQ2LCAxLjIzODQzIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5MDA2OSwgMC40NTA0MTYsIDAuNzM5ODEsIDEuMTA0ODEsIDEuNDY4OTksIDEuODMxMTMsIDIuMTk2MTciLCBcCi0gICAgICAgICAgIjAuMDg5OTk0LCAwLjQ0OTMxNSwgMC43NDAzNCwgMS4xMDQxMywgMS40NjgwOCwgMS44MzY1NywgMi4xOTUzOSIsIFwKLSAgICAgICAgICAiMC4wODk4ODgsIDAuNDUwMzY2LCAwLjczOTgzMywgMS4xMDMyNywgMS40Njg0MiwgMS44MzY0OCwgMi4xOTUwOSIsIFwKLSAgICAgICAgICAiMC4wOTAwMTgsIDAuNDQ5MjgxLCAwLjc0MTk5OSwgMS4xMDQ4MSwgMS40Njg5LCAxLjgzNjMyLCAyLjE5NzYzIiwgXAotICAgICAgICAgICIwLjA5MDQzLCAwLjQ0OTE0OSwgMC43NDA2NDIsIDEuMTA0MDcsIDEuNDY4MDksIDEuODMyMDgsIDIuMTk1MzgiLCBcCi0gICAgICAgICAgIjAuMDkwNzIsIDAuNDQ5MTcsIDAuNzQwMjg4LCAxLjEwNDE3LCAxLjQ2NzY0LCAxLjgzMzE1LCAyLjE5NTIyIiwgXAotICAgICAgICAgICIwLjA5MjQ1MSwgMC40NDkzOSwgMC43NDAxODEsIDEuMTA2NTgsIDEuNDY4MDksIDEuODM2MTYsIDIuMTk1MDkiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk5NTE0LCAwLjMwNjEwNCwgMC40NzEwNDYsIDAuNjc3MzY2LCAwLjg4MzM5MSwgMS4wODk1MywgMS4yOTY1OSIsIFwKLSAgICAgICAgICAiMC4xMTA4NTYsIDAuMzE3NTIsIDAuNDgyNDYsIDAuNjg4ODI1LCAwLjg5NDc0OCwgMS4xMDA5NCwgMS4zMDc0MSIsIFwKLSAgICAgICAgICAiMC4xMjU4NTMsIDAuMzMyNTQyLCAwLjQ5NzQ4NiwgMC43MDM3NzMsIDAuOTA5ODQxLCAxLjExNiwgMS4zMjMwOSIsIFwKLSAgICAgICAgICAiMC4xNDA0NjEsIDAuMzQ3MTg3LCAwLjUxMjE0MiwgMC43MTg0NDgsIDAuOTI0NTI4LCAxLjEzMDY1LCAxLjMzNzY2IiwgXAotICAgICAgICAgICIwLjE1NDg3LCAwLjM2MTY3NSwgMC41MjY2NjksIDAuNzMyOTExLCAwLjkzOTAyOCwgMS4xNDUwNywgMS4zNTEyIiwgXAotICAgICAgICAgICIwLjE3NjU4MywgMC4zODMzODgsIDAuNTQ4MzU1LCAwLjc1NDcyNiwgMC45NjA2NjMsIDEuMTY2OTksIDEuMzcyOCIsIFwKLSAgICAgICAgICAiMC4xOTQwMjQsIDAuNDAwNzQ5LCAwLjU2NTc1MywgMC43NzIwOSwgMC45Nzc5NzEsIDEuMTg0MTcsIDEuMzkxMDkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk4NzEsIDAuNTA3MjQzLCAwLjgzNjU0MSwgMS4yNDUyOCwgMS42NTk0NywgMi4wNjUwMSwgMi40Nzk5NyIsIFwKLSAgICAgICAgICAiMC4wOTg3NTksIDAuNTA3MjQ0LCAwLjgzNjUzNSwgMS4yNDQ0OSwgMS42NTM5OCwgMi4wNjQ1NSwgMi40ODEyNyIsIFwKLSAgICAgICAgICAiMC4wOTg3MjQsIDAuNTA3MjM4LCAwLjgzNjUyNiwgMS4yNDYxMSwgMS42NTk3NCwgMi4wNjUxNSwgMi40NzU5NCIsIFwKLSAgICAgICAgICAiMC4wOTg5NCwgMC41MDcyNDMsIDAuODM2NTMsIDEuMjQ1OTYsIDEuNjU5MjUsIDIuMDY0ODYsIDIuNDc5NDkiLCBcCi0gICAgICAgICAgIjAuMDk4OTc1LCAwLjUwNjAxNCwgMC44MzM0ODYsIDEuMjQ1NjksIDEuNjU1MDYsIDIuMDY5MTQsIDIuNDc0MTMiLCBcCi0gICAgICAgICAgIjAuMDk5NzIxLCAwLjUwNTc1NSwgMC44MzM1OSwgMS4yNDQxNSwgMS42NTM2NSwgMi4wNjc1LCAyLjQ3NTUiLCBcCi0gICAgICAgICAgIjAuMTAwNzc0LCAwLjUwNTM4NiwgMC44MzQ4NjQsIDEuMjQzOTMsIDEuNjUzOSwgMi4wNjQ5NiwgMi40NzgzNSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTc2NCwgMC4wMDE3ODMsIDAuMDAxNzg3LCAwLjAwMTc4OCwgMC4wMDE3OSwgMC4wMDE3ODksIDAuMDAxNzg5IiwgXAotICAgICAgICAgICIwLjAwMTc0OCwgMC4wMDE3NzMsIDAuMDAxNzc0LCAwLjAwMTc3NSwgMC4wMDE3NzUsIDAuMDAxNzc3LCAwLjAwMTc3NiIsIFwKLSAgICAgICAgICAiMC4wMDE3MzIsIDAuMDAxNzYxLCAwLjAwMTc2NCwgMC4wMDE3NjUsIDAuMDAxNzY2LCAwLjAwMTc2NiwgMC4wMDE3NjciLCBcCi0gICAgICAgICAgIjAuMDAxNzIsIDAuMDAxNzUzLCAwLjAwMTc1NywgMC4wMDE3NTksIDAuMDAxNzYsIDAuMDAxNzYxLCAwLjAwMTc2MSIsIFwKLSAgICAgICAgICAiMC4wMDE3MDgsIDAuMDAxNzQ3LCAwLjAwMTc1MiwgMC4wMDE3NTQsIDAuMDAxNzU2LCAwLjAwMTc1NywgMC4wMDE3NTciLCBcCi0gICAgICAgICAgIjAuMDAxNzAxLCAwLjAwMTc0MywgMC4wMDE3NDksIDAuMDAxNzUzLCAwLjAwMTc1NCwgMC4wMDE3NTYsIDAuMDAxNzU2IiwgXAotICAgICAgICAgICIwLjAwMTY5NSwgMC4wMDE3NCwgMC4wMDE3NDcsIDAuMDAxNzUxLCAwLjAwMTc1MiwgMC4wMDE3NTQsIDAuMDAxNzU0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyNDQyLCAwLjAwMjQ3LCAwLjAwMjQ3MywgMC4wMDI0NzUsIDAuMDAyNDc2LCAwLjAwMjQ3NiwgMC4wMDI0NzciLCBcCi0gICAgICAgICAgIjAuMDAyNDI2LCAwLjAwMjQ2LCAwLjAwMjQ2NCwgMC4wMDI0NjYsIDAuMDAyNDY2LCAwLjAwMjQ2NywgMC4wMDI0NjciLCBcCi0gICAgICAgICAgIjAuMDAyNDEyLCAwLjAwMjQ1MiwgMC4wMDI0NTcsIDAuMDAyNDU5LCAwLjAwMjQ2LCAwLjAwMjQ2MSwgMC4wMDI0NjEiLCBcCi0gICAgICAgICAgIjAuMDAyMzk1LCAwLjAwMjQ0NCwgMC4wMDI0NSwgMC4wMDI0NTMsIDAuMDAyNDU1LCAwLjAwMjQ1NiwgMC4wMDI0NTYiLCBcCi0gICAgICAgICAgIjAuMDAyMzg4LCAwLjAwMjQ0LCAwLjAwMjQ0NywgMC4wMDI0NSwgMC4wMDI0NTIsIDAuMDAyNDU0LCAwLjAwMjQ1NCIsIFwKLSAgICAgICAgICAiMC4wMDIzNzIsIDAuMDAyNDMxLCAwLjAwMjQ0LCAwLjAwMjQ0NSwgMC4wMDI0NDcsIDAuMDAyNDQ4LCAwLjAwMjQ0OSIsIFwKLSAgICAgICAgICAiMC4wMDIzNjcsIDAuMDAyNDI5LCAwLjAwMjQzOSwgMC4wMDI0NDQsIDAuMDAyNDQ3LCAwLjAwMjQ0OSwgMC4wMDI0NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogQlVGWDIwICoKLSAqIC0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoQlVGWDIwKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuODQwMzQ0OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDM1OTE0OTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDM1ODkzMzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDM1OTE0OTsKLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAyLjU4OTQ7Ci0gICAgZnVuY3Rpb24gOiAiQSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDYwNTMzLCAwLjA4MjY3MiwgMC4wOTc5ODIsIDAuMTE2MzYzLCAwLjEzNDYxOSwgMC4xNTI3OTYsIDAuMTcwOTQ3IiwgXAotICAgICAgICAgICIwLjA3MjE3NiwgMC4wOTQ1NTcsIDAuMTA5NzQ3LCAwLjEyODIzNiwgMC4xNDY0OTcsIDAuMTY0NjgsIDAuMTgyODUzIiwgXAotICAgICAgICAgICIwLjA4Njk5LCAwLjEwOTI4MiwgMC4xMjQ1NzcsIDAuMTQzMDU4LCAwLjE2MTMwOSwgMC4xNzk0OTIsIDAuMTk3Njg3IiwgXAotICAgICAgICAgICIwLjEwMjAxOSwgMC4xMjQyNTQsIDAuMTM5NTg1LCAwLjE1ODA2NiwgMC4xNzYzMzIsIDAuMTk0NDksIDAuMjEyNjUyIiwgXAotICAgICAgICAgICIwLjExNjg1LCAwLjEzOTEyMiwgMC4xNTQzNzcsIDAuMTcyODUyLCAwLjE5MTA3MSwgMC4yMDkyNzYsIDAuMjI3NDM3IiwgXAotICAgICAgICAgICIwLjEzOTYxOCwgMC4xNjIyMzYsIDAuMTc3NjE1LCAwLjE5NjA4NywgMC4yMTQzMjgsIDAuMjMyNSwgMC4yNTA2NTMiLCBcCi0gICAgICAgICAgIjAuMTU3NzE4LCAwLjE4MTA1OSwgMC4xOTYxNTMsIDAuMjE0NzczLCAwLjIzMzAzMSwgMC4yNTExOTQsIDAuMjY5NDA4Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyOTMyOCwgMC4wNjM5NzMsIDAuMDkxODcsIDAuMTI3MjkyLCAwLjE2MzEwMywgMC4xOTkzNDQsIDAuMjM1OTQ3IiwgXAotICAgICAgICAgICIwLjAyOTM4NywgMC4wNjM4NjksIDAuMDkxNzE2LCAwLjEyNzIzOSwgMC4xNjMyMzQsIDAuMTk5NzYxLCAwLjIzNjI3NiIsIFwKLSAgICAgICAgICAiMC4wMjkzNzcsIDAuMDYzNzg4LCAwLjA5MTY3NywgMC4xMjczNDQsIDAuMTYzMjIyLCAwLjE5OTQzOCwgMC4yMzU3NDEiLCBcCi0gICAgICAgICAgIjAuMDI5ODIzLCAwLjA2Mzk0NywgMC4wOTE3NzYsIDAuMTI3NDEsIDAuMTYzMjI5LCAwLjE5OTc5MSwgMC4yMzYzNiIsIFwKLSAgICAgICAgICAiMC4wMjk5MzEsIDAuMDY0MTE2LCAwLjA5MTkzMiwgMC4xMjczNDYsIDAuMTYzNDgyLCAwLjE5OTgsIDAuMjM2MzMzIiwgXAotICAgICAgICAgICIwLjAzMjQ2LCAwLjA2NTI2NCwgMC4wOTI2NjIsIDAuMTI3ODk3LCAwLjE2MzU3MSwgMC4xOTk4NjEsIDAuMjM2MjE3IiwgXAotICAgICAgICAgICIwLjAzNDczNSwgMC4wNjY4NzMsIDAuMDk0MTksIDAuMTI4OTkxLCAwLjE2NDQ2OSwgMC4yMDAzNTQsIDAuMjM2OTEzIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1ODk1LCAwLjA4MzUzLCAwLjEwMTEzMiwgMC4xMjI2NDQsIDAuMTQ0MDAzLCAwLjE2NTMyOCwgMC4xODY2MDUiLCBcCi0gICAgICAgICAgIjAuMDcwMzI2LCAwLjA5NTA1NCwgMC4xMTI2OTksIDAuMTM0MjAzLCAwLjE1NTU2OSwgMC4xNzY4ODgsIDAuMTk4MTcxIiwgXAotICAgICAgICAgICIwLjA4NTIzMywgMC4xMDk5MzcsIDAuMTI3NTc2LCAwLjE0OTExOSwgMC4xNzA0OTQsIDAuMTkxODEzLCAwLjIxMzEyMiIsIFwKLSAgICAgICAgICAiMC4wOTk4OTQsIDAuMTI0NTE5LCAwLjE0MjE1NiwgMC4xNjM3MTcsIDAuMTg1MDk4LCAwLjIwNjQ0MSwgMC4yMjc3MjYiLCBcCi0gICAgICAgICAgIjAuMTE0MTQxLCAwLjEzOTAwNywgMC4xNTY2NjEsIDAuMTc4MTk4LCAwLjE5OTU5MSwgMC4yMjA5MjUsIDAuMjQyMjMiLCBcCi0gICAgICAgICAgIjAuMTM1Njk3LCAwLjE2MDY5OSwgMC4xNzgyOTgsIDAuMTk5ODA4LCAwLjIyMTIzMSwgMC4yNDI1NTQsIDAuMjYzODYyIiwgXAotICAgICAgICAgICIwLjE1MjUyMiwgMC4xNzgxNjUsIDAuMTk1ODU3LCAwLjIxNzMzNCwgMC4yMzg3MjYsIDAuMjYwMDEyLCAwLjI4MTMyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyOTU3MiwgMC4wNjk3OTYsIDAuMTAyMjI0LCAwLjE0MzUxNSwgMC4xODUyNDYsIDAuMjI3MjgzLCAwLjI2ODcwNSIsIFwKLSAgICAgICAgICAiMC4wMjk2MTYsIDAuMDY5NzMsIDAuMTAyMzEsIDAuMTQzNDQ0LCAwLjE4NTI0LCAwLjIyNzI4OSwgMC4yNjg5OTgiLCBcCi0gICAgICAgICAgIjAuMDI5NjM0LCAwLjA2OTY5MSwgMC4xMDIyMDcsIDAuMTQzNDQ1LCAwLjE4NTIzLCAwLjIyNjc3NCwgMC4yNjk0MDIiLCBcCi0gICAgICAgICAgIjAuMDI5ODgsIDAuMDY5OTczLCAwLjEwMjI3OCwgMC4xNDM1NDYsIDAuMTg1Mjk3LCAwLjIyNzMxNCwgMC4yNjkzMzQiLCBcCi0gICAgICAgICAgIjAuMDMwNTA2LCAwLjA3MDEzLCAwLjEwMjQ2NSwgMC4xNDM2MzQsIDAuMTg1MzQ2LCAwLjIyNzM3LCAwLjI2ODk5MSIsIFwKLSAgICAgICAgICAiMC4wMzIyNywgMC4wNzEzMDYsIDAuMTAzMjM1LCAwLjE0NDA5MSwgMC4xODU2MzEsIDAuMjI3NDY3LCAwLjI2ODc5NCIsIFwKLSAgICAgICAgICAiMC4wMzQ1NDYsIDAuMDcyNTcyLCAwLjEwNDE0NiwgMC4xNDQ3NCwgMC4xODYwMDYsIDAuMjI3ODI1LCAwLjI2OTUxNyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxNzEzNywgMC4wMTc2MTEsIDAuMDE3NzQxLCAwLjAxNzgyMiwgMC4wMTc4NjcsIDAuMDE3OTA0LCAwLjAxNzkyNSIsIFwKLSAgICAgICAgICAiMC4wMTY5NzUsIDAuMDE3NDU0LCAwLjAxNzU5MiwgMC4wMTc2ODEsIDAuMDE3NzMxLCAwLjAxNzc2MywgMC4wMTc3ODQiLCBcCi0gICAgICAgICAgIjAuMDE2ODM3LCAwLjAxNzI3OCwgMC4wMTc0MjQsIDAuMDE3NTI1LCAwLjAxNzU4NSwgMC4wMTc2MywgMC4wMTc2NTMiLCBcCi0gICAgICAgICAgIjAuMDE2NzA5LCAwLjAxNzEyLCAwLjAxNzI3NSwgMC4wMTczOTEsIDAuMDE3NDY0LCAwLjAxNzUxMSwgMC4wMTc1NDgiLCBcCi0gICAgICAgICAgIjAuMDE2NjU3LCAwLjAxNzA0MiwgMC4wMTcyMSwgMC4wMTczMiwgMC4wMTc0MDgsIDAuMDE3NDUyLCAwLjAxNzQ5MyIsIFwKLSAgICAgICAgICAiMC4wMTY1NSwgMC4wMTY5MjcsIDAuMDE3MDgzLCAwLjAxNzIxNywgMC4wMTczMDQsIDAuMDE3MzY1LCAwLjAxNzQxMSIsIFwKLSAgICAgICAgICAiMC4wMTY1NzcsIDAuMDE2OTA1LCAwLjAxNzA0NywgMC4wMTcxNzksIDAuMDE3MjY2LCAwLjAxNzMzMiwgMC4wMTczNzkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjExNTIsIDAuMDIxNzQxLCAwLjAyMTkxNCwgMC4wMjIwMjYsIDAuMDIyMDksIDAuMDIyMTMyLCAwLjAyMjE2MSIsIFwKLSAgICAgICAgICAiMC4wMjEwMDcsIDAuMDIxNjA0LCAwLjAyMTc4OCwgMC4wMjE5MDksIDAuMDIxOTgsIDAuMDIyMDI1LCAwLjAyMjA1NyIsIFwKLSAgICAgICAgICAiMC4wMjA4ODUsIDAuMDIxNDQzLCAwLjAyMTYzNSwgMC4wMjE3NzEsIDAuMDIxODUzLCAwLjAyMTkwOCwgMC4wMjE5NDciLCBcCi0gICAgICAgICAgIjAuMDIwNzI4LCAwLjAyMTI1NiwgMC4wMjE0NjIsIDAuMDIxNjE4LCAwLjAyMTcxNywgMC4wMjE3ODUsIDAuMDIxODM0IiwgXAotICAgICAgICAgICIwLjAyMDY0MSwgMC4wMjExNjEsIDAuMDIxMzgsIDAuMDIxNTQxLCAwLjAyMTY0NiwgMC4wMjE3MiwgMC4wMjE3NzUiLCBcCi0gICAgICAgICAgIjAuMDIwNTcsIDAuMDIxMDM0LCAwLjAyMTIzOCwgMC4wMjE0NDgsIDAuMDIxNTEzLCAwLjAyMTYwMSwgMC4wMjE2NjYiLCBcCi0gICAgICAgICAgIjAuMDIwNTg4LCAwLjAyMDk4MSwgMC4wMjExOCwgMC4wMjEzMzksIDAuMDIxNDYxLCAwLjAyMTUzNSwgMC4wMjE2MDkiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogQlVGWDMgKgotICogLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKEJVRlgzKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMTM2NTExOwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA4ODc1NDk7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwODg3MTM0OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDg4NzU0OTsKLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjM5MDM5NjsKLSAgICBmdW5jdGlvbiA6ICJBIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3NjcyMSwgMC4yNDcwOTksIDAuNDE2Nzk2LCAwLjUzODA1OCwgMC43MzIwMzcsIDAuOTAxNjE3LCAxLjE0NDA2IiwgXAotICAgICAgICAgICIwLjA4ODIyNywgMC4yNTg2NTUsIDAuNDI4Mjc4LCAwLjU0OTgyOCwgMC43NDM2OCwgMC45MTM0MjIsIDEuMTU1NTkiLCBcCi0gICAgICAgICAgIjAuMTAzMzAxLCAwLjI3MzcyOSwgMC40NDM0NTEsIDAuNTY0ODU5LCAwLjc1ODY0NSwgMC45Mjg0MywgMS4xNzEwNSIsIFwKLSAgICAgICAgICAiMC4xMTgwOCwgMC4yODg1NzMsIDAuNDU4MjY3LCAwLjU3OTY1NiwgMC43NzM0NTEsIDAuOTQyODQyLCAxLjE4NTQ5IiwgXAotICAgICAgICAgICIwLjEzMzA0NiwgMC4zMDM0ODMsIDAuNDczMjQ2LCAwLjU5NDYxNCwgMC43ODg0NywgMC45NTgyMjcsIDEuMjAwNTgiLCBcCi0gICAgICAgICAgIjAuMTU0OTk1LCAwLjMyNTY3MiwgMC40OTU0MjUsIDAuNjE2ODQ3LCAwLjgxMDU1MSwgMC45ODAzMDksIDEuMjIzMzMiLCBcCi0gICAgICAgICAgIjAuMTczMDczLCAwLjM0MzYxOSwgMC41MTMzNzgsIDAuNjM0ODczLCAwLjgyODUwNSwgMC45OTgyMzEsIDEuMjQwNjgiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjU5MzEsIDAuNDA3NTY0LCAwLjc1MzA4MywgMC45OTgwOSwgMS4zOTE3MywgMS43MzU4NCwgMi4yMzQwMiIsIFwKLSAgICAgICAgICAiMC4wNjU4MjUsIDAuNDA3NTAyLCAwLjc1MjcyMywgMC45OTcyNCwgMS4zOTEzNiwgMS43MzYwNywgMi4yMzM3NCIsIFwKLSAgICAgICAgICAiMC4wNjU4OTIsIDAuNDA3NDM1LCAwLjc1MzAxLCAwLjk5NzMyNCwgMS4zOTEwOCwgMS43MzYzOCwgMi4yMzA1NyIsIFwKLSAgICAgICAgICAiMC4wNjYyMDIsIDAuNDA2NDIsIDAuNzUzMDI1LCAwLjk5NzMxNywgMS4zOTQ3LCAxLjczOTM0LCAyLjIzNDQ0IiwgXAotICAgICAgICAgICIwLjA2NjMzNCwgMC40MDc1MDYsIDAuNzUwOTYxLCAwLjk5NzMyMSwgMS4zOTE2NCwgMS43MzYxMywgMi4yMzM4MyIsIFwKLSAgICAgICAgICAiMC4wNjgwMDEsIDAuNDA3MzY4LCAwLjc1MzA1LCAwLjk5NzM0LCAxLjM5NDkyLCAxLjc0MDA3LCAyLjIyODkxIiwgXAotICAgICAgICAgICIwLjA2OTIyNSwgMC40MDc1NDIsIDAuNzUwOTU2LCAwLjk5NzQ1LCAxLjM5MTA2LCAxLjc0MDExLCAyLjIyNzk1Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc4MTg1LCAwLjI3MzMzLCAwLjQ2Nzg3MSwgMC42MDY5NTcsIDAuODI5MzY5LCAxLjAyMzYyLCAxLjMwMTUyIiwgXAotICAgICAgICAgICIwLjA4OTU1OCwgMC4yODQ3OTUsIDAuNDc5Mzg3LCAwLjYxODQxNiwgMC44NDA2MDcsIDEuMDM1MjEsIDEuMzEyOTciLCBcCi0gICAgICAgICAgIjAuMTA0NTE2LCAwLjI5OTgyLCAwLjQ5NDY0OSwgMC42MzM1NDUsIDAuODU1Nzg5LCAxLjA1MDIyLCAxLjMyODEiLCBcCi0gICAgICAgICAgIjAuMTE5MTA4LCAwLjMxNDI0LCAwLjUwODg3NywgMC42NDc3ODEsIDAuODcwMTIzLCAxLjA2NDY5LCAxLjM0Mjc0IiwgXAotICAgICAgICAgICIwLjEzMzE2LCAwLjMyODUyLCAwLjUyMzE0MywgMC42NjIwNywgMC44ODQ4NjgsIDEuMDc5MSwgMS4zNTcwNiIsIFwKLSAgICAgICAgICAiMC4xNTM2NjEsIDAuMzQ4ODEzLCAwLjU0MzUwOSwgMC42ODI1NTYsIDAuOTA0NzkzLCAxLjA5OTM3LCAxLjM3NzY4IiwgXAotICAgICAgICAgICIwLjE2OTg0MywgMC4zNjUxMzEsIDAuNTU5OTM1LCAwLjY5ODc0OSwgMC45MjEyMTEsIDEuMTE1NzMsIDEuMzkzOCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3MTc2NSwgMC40NTU3NTIsIDAuODQ0ODI3LCAxLjExODQsIDEuNTYxOTUsIDEuOTQ3NzEsIDIuNTAwMTkiLCBcCi0gICAgICAgICAgIjAuMDcxNzQ5LCAwLjQ1NjA0MywgMC44NDI5ODUsIDEuMTIwMDMsIDEuNTYwNzMsIDEuOTQ1OTUsIDIuNTAxNzgiLCBcCi0gICAgICAgICAgIjAuMDcxODAzLCAwLjQ1NTgzMywgMC44NDMyMjYsIDEuMTE4ODQsIDEuNTYxOCwgMS45NDkxNiwgMi41MDc5MSIsIFwKLSAgICAgICAgICAiMC4wNzE5MDEsIDAuNDU2MzQzLCAwLjg0MzYwOCwgMS4xMTg2MSwgMS41NjM4NCwgMS45NDYzLCAyLjUwMzY1IiwgXAotICAgICAgICAgICIwLjA3MjIzNiwgMC40NTY4MTksIDAuODQxOTE2LCAxLjExOTIsIDEuNTYyNzgsIDEuOTUyLCAyLjUwMjg2IiwgXAotICAgICAgICAgICIwLjA3MzQ2NSwgMC40NTY4ODIsIDAuODQzNDM5LCAxLjExODksIDEuNTYwMzksIDEuOTQ5MzEsIDIuNTA1OSIsIFwKLSAgICAgICAgICAiMC4wNzQ3NzEsIDAuNDU2OTQxLCAwLjg0MTk3OSwgMS4xMTc3OSwgMS41NjI2NiwgMS45NTE1NywgMi41MDI0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI2NTUsIDAuMDAyNjg2LCAwLjAwMjY5NCwgMC4wMDI2OTUsIDAuMDAyNjk2LCAwLjAwMjY5NiwgMC4wMDI2ODkiLCBcCi0gICAgICAgICAgIjAuMDAyNjIsIDAuMDAyNjY0LCAwLjAwMjY2NiwgMC4wMDI2NjgsIDAuMDAyNjY3LCAwLjAwMjY2OCwgMC4wMDI2NzEiLCBcCi0gICAgICAgICAgIjAuMDAyNTg4LCAwLjAwMjY0MiwgMC4wMDI2NDgsIDAuMDAyNjQ4LCAwLjAwMjY1LCAwLjAwMjY1MSwgMC4wMDI2NDgiLCBcCi0gICAgICAgICAgIjAuMDAyNTYzLCAwLjAwMjYzLCAwLjAwMjYzNiwgMC4wMDI2MzksIDAuMDAyNjQyLCAwLjAwMjY0MSwgMC4wMDI2NDMiLCBcCi0gICAgICAgICAgIjAuMDAyNTUzLCAwLjAwMjYyMywgMC4wMDI2MzIsIDAuMDAyNjM0LCAwLjAwMjYzNiwgMC4wMDI2MzcsIDAuMDAyNjM4IiwgXAotICAgICAgICAgICIwLjAwMjUzOCwgMC4wMDI2MTcsIDAuMDAyNjI3LCAwLjAwMjYyOSwgMC4wMDI2MzMsIDAuMDAyNjM1LCAwLjAwMjYzNiIsIFwKLSAgICAgICAgICAiMC4wMDI1MzQsIDAuMDAyNjEyLCAwLjAwMjYyNSwgMC4wMDI2MjksIDAuMDAyNjMyLCAwLjAwMjYzNSwgMC4wMDI2MzYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzY0NiwgMC4wMDM2OTcsIDAuMDAzNzAxLCAwLjAwMzcwMywgMC4wMDM3MDMsIDAuMDAzNzA0LCAwLjAwMzcwNSIsIFwKLSAgICAgICAgICAiMC4wMDM2MTMsIDAuMDAzNjc1LCAwLjAwMzY4MSwgMC4wMDM2ODIsIDAuMDAzNjg0LCAwLjAwMzY4NCwgMC4wMDM2ODUiLCBcCi0gICAgICAgICAgIjAuMDAzNTgyLCAwLjAwMzY1OSwgMC4wMDM2NjYsIDAuMDAzNjY5LCAwLjAwMzY3LCAwLjAwMzY3MSwgMC4wMDM2NzIiLCBcCi0gICAgICAgICAgIjAuMDAzNTU5LCAwLjAwMzY0NiwgMC4wMDM2NTcsIDAuMDAzNjYsIDAuMDAzNjYzLCAwLjAwMzY2NCwgMC4wMDM2NjUiLCBcCi0gICAgICAgICAgIjAuMDAzNTQsIDAuMDAzNjM5LCAwLjAwMzY1MSwgMC4wMDM2NTUsIDAuMDAzNjU4LCAwLjAwMzY2LCAwLjAwMzY2MSIsIFwKLSAgICAgICAgICAiMC4wMDM1MjIsIDAuMDAzNjI3LCAwLjAwMzY0MywgMC4wMDM2NDgsIDAuMDAzNjUyLCAwLjAwMzY1NSwgMC4wMDM2NTciLCBcCi0gICAgICAgICAgIjAuMDAzNTExLCAwLjAwMzYyLCAwLjAwMzYzOSwgMC4wMDM2NDUsIDAuMDAzNjUsIDAuMDAzNjUzLCAwLjAwMzY1NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBCVUZYNCAqCi0gKiAtLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoQlVGWDQpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4xNjk2NzE7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDg2NTI5NDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA4NjUxNDY7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwODY1Mjk0OwotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuNTA3OTA0OwotICAgIGZ1bmN0aW9uIDogIkEiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc5NjczLCAwLjIwNzk0NiwgMC4zMzQ1OTIsIDAuNDI1MTQ2LCAwLjU2OTg2NywgMC42OTYzNzYsIDAuODc3Mjg2IiwgXAotICAgICAgICAgICIwLjA5MTA4NCwgMC4yMTk0OTQsIDAuMzQ2MTM2LCAwLjQzNjY1MSwgMC41ODEzMTMsIDAuNzA4MDU3LCAwLjg4ODkzOCIsIFwKLSAgICAgICAgICAiMC4xMDYxMjgsIDAuMjM0NjA0LCAwLjM2MTI2MSwgMC40NTE4NzksIDAuNTk2Njg4LCAwLjcyMjgyNCwgMC45MDQyMzIiLCBcCi0gICAgICAgICAgIjAuMTIxMjQzLCAwLjI0OTc4OSwgMC4zNzY1MjUsIDAuNDY2OTcyLCAwLjYxMTg5NywgMC43Mzg0MjksIDAuOTE5MTQ5IiwgXAotICAgICAgICAgICIwLjEzNjE1OCwgMC4yNjQ1OTcsIDAuMzkxMjcsIDAuNDgxNzYzLCAwLjYyNjc1LCAwLjc1MzEzNSwgMC45MzQxMDEiLCBcCi0gICAgICAgICAgIjAuMTU5MjksIDAuMjg3ODI5LCAwLjQxNDUzNywgMC41MDUwNTcsIDAuNjQ5ODIsIDAuNzc2NDI1LCAwLjk1NzMzMSIsIFwKLSAgICAgICAgICAiMC4xNzg0MzYsIDAuMzA2OTcsIDAuNDMzNjQxLCAwLjUyNDE1MSwgMC42Njg4NDIsIDAuNzk1NjA4LCAwLjk3NjMzOSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1Njg3NiwgMC4zMDgwNjgsIDAuNTY1OTU4LCAwLjc0ODM5NSwgMS4wNDI1OSwgMS4zMDMyNywgMS42NjcxOSIsIFwKLSAgICAgICAgICAiMC4wNTY4MTksIDAuMzA3ODQ2LCAwLjU2NTkxMiwgMC43NDgwOTYsIDEuMDQ1MTcsIDEuMzAwMDEsIDEuNjY3ODIiLCBcCi0gICAgICAgICAgIjAuMDU2NzksIDAuMzA4MDU4LCAwLjU2NDk1MiwgMC43NDg1OTQsIDEuMDQyNDIsIDEuMzAyMjcsIDEuNjY3NDciLCBcCi0gICAgICAgICAgIjAuMDU2OTMyLCAwLjMwNzk4MywgMC41NjQzMzYsIDAuNzQ4MTA1LCAxLjA0MjQyLCAxLjI5OTgyLCAxLjY2NzE3IiwgXAotICAgICAgICAgICIwLjA1NzEsIDAuMzA4MDY1LCAwLjU2NTkyOSwgMC43NDgxODMsIDEuMDQyNzgsIDEuMjk5NDMsIDEuNjY3NjQiLCBcCi0gICAgICAgICAgIjAuMDU4MzI2LCAwLjMwODYwNSwgMC41NjY3MjUsIDAuNzQ4NDY5LCAxLjA0MzE1LCAxLjMwMDA0LCAxLjY2Nzg1IiwgXAotICAgICAgICAgICIwLjA2MDAzNSwgMC4zMDg5MzQsIDAuNTY2MDUzLCAwLjc0ODM3NCwgMS4wNDIyNSwgMS4yOTk4LCAxLjY2NzE4Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc5NTE3LCAwLjIyNjU5NywgMC4zNzIyMjYsIDAuNDc2MTczLCAwLjY0MjgwMiwgMC43ODgyNjIsIDAuOTk2MDE3IiwgXAotICAgICAgICAgICIwLjA5MDkzOSwgMC4yMzgwOTEsIDAuMzgzNzk3LCAwLjQ4NzY2NywgMC42NTQyODksIDAuNzk5OTA1LCAxLjAwNzgyIiwgXAotICAgICAgICAgICIwLjEwNTk3MywgMC4yNTMwODQsIDAuMzk4ODExLCAwLjUwMjY4NywgMC42NjkyNDEsIDAuODE0NzY5LCAxLjAyMjYiLCBcCi0gICAgICAgICAgIjAuMTIwNTYxLCAwLjI2Nzc5NCwgMC40MTM1NDMsIDAuNTE3NDE1LCAwLjY4Mzk5NSwgMC44Mjk0NzEsIDEuMDM3MzQiLCBcCi0gICAgICAgICAgIjAuMTM1MTM4LCAwLjI4MjQxMywgMC40MjgwNDIsIDAuNTMyMDksIDAuNjk4NjM3LCAwLjg0NDA4OSwgMS4wNTIxOCIsIFwKLSAgICAgICAgICAiMC4xNTY4NSwgMC4zMDQyNiwgMC40NDk5NTUsIDAuNTUzOTQxLCAwLjcyMDYwNCwgMC44NjU5NDEsIDEuMDczOTMiLCBcCi0gICAgICAgICAgIjAuMTc0NjI4LCAwLjMyMTczNSwgMC40NjczODYsIDAuNTcxNDM2LCAwLjczODExLCAwLjg4MzQ5OCwgMS4wOTE0NiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2MDczNywgMC4zNDY1OTksIDAuNjM1NDA1LCAwLjg0MjA4MSwgMS4xNzI1MSwgMS40NjQ0LCAxLjg3NTczIiwgXAotICAgICAgICAgICIwLjA2MDgyNCwgMC4zNDU5MTYsIDAuNjM1NjExLCAwLjg0NDQwNSwgMS4xNzI3MywgMS40NjI0MiwgMS44NzY5IiwgXAotICAgICAgICAgICIwLjA2MDc4OSwgMC4zNDY1NzYsIDAuNjM1NjMzLCAwLjg0NDM5NCwgMS4xNzM3OSwgMS40NjQ2NiwgMS44NzUzNyIsIFwKLSAgICAgICAgICAiMC4wNjA5OTUsIDAuMzQ2NjAxLCAwLjYzNTM4OSwgMC44NDQ0MDIsIDEuMTczMTEsIDEuNDYzNDEsIDEuODgwODciLCBcCi0gICAgICAgICAgIjAuMDYxMTI1LCAwLjM0NjYzNywgMC42MzY4MDMsIDAuODQzMzk1LCAxLjE3Mjg2LCAxLjQ2NDIxLCAxLjg3ODI0IiwgXAotICAgICAgICAgICIwLjA2MjM2OSwgMC4zNDU2NDMsIDAuNjM1NzEyLCAwLjg0MTczOSwgMS4xNzI0MSwgMS40NjE1MywgMS44NzY4MiIsIFwKLSAgICAgICAgICAiMC4wNjM4MTksIDAuMzQ2NzU0LCAwLjYzNjgzNiwgMC44NDExMDEsIDEuMTcyMjUsIDEuNDY0NTIsIDEuODc5MSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzNDM0LCAwLjAwMzUwNCwgMC4wMDM1MTEsIDAuMDAzNTEyLCAwLjAwMzUxNCwgMC4wMDM1MDksIDAuMDAzNTE1IiwgXAotICAgICAgICAgICIwLjAwMzM5OSwgMC4wMDM0OCwgMC4wMDM0ODgsIDAuMDAzNDg3LCAwLjAwMzQ4OSwgMC4wMDM0OSwgMC4wMDM0OTEiLCBcCi0gICAgICAgICAgIjAuMDAzMzY4LCAwLjAwMzQ1NiwgMC4wMDM0NjcsIDAuMDAzNDY5LCAwLjAwMzQ3MSwgMC4wMDM0NzEsIDAuMDAzNDc0IiwgXAotICAgICAgICAgICIwLjAwMzM0MSwgMC4wMDM0MzksIDAuMDAzNDUyLCAwLjAwMzQ1NSwgMC4wMDM0NTksIDAuMDAzNDYxLCAwLjAwMzQ2MyIsIFwKLSAgICAgICAgICAiMC4wMDMzMjQsIDAuMDAzNDI5LCAwLjAwMzQ0NSwgMC4wMDM0NDksIDAuMDAzNDUzLCAwLjAwMzQ1NiwgMC4wMDM0NTciLCBcCi0gICAgICAgICAgIjAuMDAzMzA0LCAwLjAwMzQxNywgMC4wMDM0MzcsIDAuMDAzNDQyLCAwLjAwMzQ0NywgMC4wMDM0NTEsIDAuMDAzNDUzIiwgXAotICAgICAgICAgICIwLjAwMzI5OSwgMC4wMDM0MDksIDAuMDAzNDMxLCAwLjAwMzQzOSwgMC4wMDM0NDMsIDAuMDAzNDQ3LCAwLjAwMzQ1MiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0NTEyLCAwLjAwNDYxMSwgMC4wMDQ2MjEsIDAuMDA0NjI0LCAwLjAwNDYyNywgMC4wMDQ2MjksIDAuMDA0NjMiLCBcCi0gICAgICAgICAgIjAuMDA0NDgxLCAwLjAwNDU5MSwgMC4wMDQ2MDMsIDAuMDA0NjA3LCAwLjAwNDYxLCAwLjAwNDYxMSwgMC4wMDQ2MTIiLCBcCi0gICAgICAgICAgIjAuMDA0NDQ4LCAwLjAwNDU3MiwgMC4wMDQ1ODcsIDAuMDA0NTkyLCAwLjAwNDU5NiwgMC4wMDQ1OTgsIDAuMDA0NiIsIFwKLSAgICAgICAgICAiMC4wMDQ0MTYsIDAuMDA0NTU0LCAwLjAwNDU3NCwgMC4wMDQ1OCwgMC4wMDQ1ODUsIDAuMDA0NTg4LCAwLjAwNDU5IiwgXAotICAgICAgICAgICIwLjAwNDQwMSwgMC4wMDQ1NDQsIDAuMDA0NTY3LCAwLjAwNDU3NCwgMC4wMDQ1OCwgMC4wMDQ1ODMsIDAuMDA0NTg2IiwgXAotICAgICAgICAgICIwLjAwNDM3MSwgMC4wMDQ1MjMsIDAuMDA0NTUxLCAwLjAwNDU2LCAwLjAwNDU2OSwgMC4wMDQ1NzMsIDAuMDA0NTc2IiwgXAotICAgICAgICAgICIwLjAwNDM2MiwgMC4wMDQ1MTUsIDAuMDA0NTQ3LCAwLjAwNDU1NywgMC4wMDQ1NjYsIDAuMDA0NTcxLCAwLjAwNDU3NiIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogQ0xLQU5EMlgyICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoQ0xLQU5EMlgyKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMTA3MDE1OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA3NDM4NTU7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNzQzODU1OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDc0MDYzNzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxNjUsIDAuMDAwMTY1LCAwLjAwMDE2NSwgMC4wMDAxNjUsIDAuMDAwMTY1LCAwLjAwMDE2NSwgMC4wMDAxNjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxNzksIDAuMDAwMTY5LCAwLjAwMDE2OCwgMC4wMDAxNjcsIDAuMDAwMTY3LCAwLjAwMDE2NywgMC4wMDAxNjciKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDcyMDQxODsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA3MjA0MTg7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNzE5ODMyOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDAxNSwgMC4wMDAwMTUsIDAuMDAwMDE1LCAwLjAwMDAxNSwgMC4wMDAwMTUsIDAuMDAwMDE1LCAwLjAwMDAxNSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDIxMSwgMC4wMDAyMTIsIDAuMDAwMjEyLCAwLjAwMDIxMiwgMC4wMDAyMTIsIDAuMDAwMjEyLCAwLjAwMDIxMiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjI1NTk1OTsKLSAgICBmdW5jdGlvbiA6ICIoQSBCKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTEwMDI1LCAwLjI4OTk1MSwgMC40MzMxNTEsIDAuNjEyMTc3LCAwLjc5MTMxNCwgMC45NzAyNjksIDEuMTQ5MjgiLCBcCi0gICAgICAgICAgIjAuMTIxNTEsIDAuMzAxMzk5LCAwLjQ0NDY0LCAwLjYyMzY0NywgMC44MDI4OTYsIDAuOTgxOTc1LCAxLjE2MDY4IiwgXAotICAgICAgICAgICIwLjEzNTA0NywgMC4zMTUwNjQsIDAuNDU4MjY2LCAwLjYzNzI4NiwgMC44MTY1MTEsIDAuOTk1NDM4LCAxLjE3NDQzIiwgXAotICAgICAgICAgICIwLjE0ODQ4NCwgMC4zMjg0NzQsIDAuNDcxNjk1LCAwLjY1MDcxMywgMC44Mjk5MzIsIDEuMDA5MDQsIDEuMTg3MzUiLCBcCi0gICAgICAgICAgIjAuMTYxNTk2LCAwLjM0MTU1MiwgMC40ODQ4NywgMC42NjM4MDcsIDAuODQyNTIxLCAxLjAyMTkyLCAxLjIwMTM1IiwgXAotICAgICAgICAgICIwLjE4MjA0OSwgMC4zNjIwMTYsIDAuNTA1Mjk4LCAwLjY4NDI3OSwgMC44NjM1NDcsIDEuMDQyMzgsIDEuMjIxMzUiLCBcCi0gICAgICAgICAgIjAuMTk4ODE1LCAwLjM3ODk3NCwgMC41MjIxOTMsIDAuNzAxMjE3LCAwLjg4MDQzMiwgMS4wNTk1MSwgMS4yMzgzNyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTIxOTksIDAuNDQ5OTczLCAwLjc0MjQwNSwgMS4xMDcyMywgMS40Njg4NywgMS44MzE5OSwgMi4xOTU3NyIsIFwKLSAgICAgICAgICAiMC4wOTIxNjUsIDAuNDUwOTI2LCAwLjc0MjQxNywgMS4xMDc0NywgMS40Njg2NCwgMS44MzI2NCwgMi4xOTYyNyIsIFwKLSAgICAgICAgICAiMC4wOTIwMDMsIDAuNDUxMTA5LCAwLjc0MjUzNiwgMS4xMDcxMiwgMS40Njg2NCwgMS44MzI5NywgMi4xOTcwMyIsIFwKLSAgICAgICAgICAiMC4wOTE5OTksIDAuNDUwMDg1LCAwLjc0MTE4OCwgMS4xMDcxOCwgMS40Njg2NCwgMS44MzI2NSwgMi4yMDA5OSIsIFwKLSAgICAgICAgICAiMC4wOTIxMDksIDAuNDUwOTYyLCAwLjc0MDg3LCAxLjEwNzExLCAxLjQ2OTQsIDEuODMxODIsIDIuMTk3NDQiLCBcCi0gICAgICAgICAgIjAuMDkyNTcxLCAwLjQ1MDk3MSwgMC43NDA2MDUsIDEuMTA3NDcsIDEuNDY4NjMsIDEuODMxOTcsIDIuMTk1OTYiLCBcCi0gICAgICAgICAgIjAuMDkzNiwgMC40NTAzNTksIDAuNzQyNTMxLCAxLjEwNzExLCAxLjQ2ODY1LCAxLjgzMjYyLCAyLjIwMTY1Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExMzEyOCwgMC4zMjAzODEsIDAuNDg1MzcsIDAuNjkxNTg3LCAwLjg5NzY5MiwgMS4xMDM4MSwgMS4zMDk5MyIsIFwKLSAgICAgICAgICAiMC4xMjQzNzcsIDAuMzMxNjk4LCAwLjQ5NjY3NywgMC43MDI4NjMsIDAuOTA4OTk1LCAxLjExNTEyLCAxLjMyMTIzIiwgXAotICAgICAgICAgICIwLjEzOTEzNCwgMC4zNDY0MTYsIDAuNTExNDIzLCAwLjcxNzYwNSwgMC45MjM3NTQsIDEuMTI5ODYsIDEuMzM2MDEiLCBcCi0gICAgICAgICAgIjAuMTUzOTgyLCAwLjM2MTMyNCwgMC41MjYzMzcsIDAuNzMyNTIyLCAwLjkzODY3MSwgMS4xNDQ3OSwgMS4zNTA4NyIsIFwKLSAgICAgICAgICAiMC4xNjg2NTEsIDAuMzc2MDUzLCAwLjU0MTA0MSwgMC43NDcyMzMsIDAuOTUzMzg2LCAxLjE1OTUsIDEuMzY1NjUiLCBcCi0gICAgICAgICAgIjAuMTkxNjU5LCAwLjM5OTA0MSwgMC41NjQxMDIsIDAuNzcwMjc2LCAwLjk3NjQxNiwgMS4xODI1NiwgMS4zODg2NSIsIFwKLSAgICAgICAgICAiMC4yMTA2NTEsIDAuNDE4MDk4LCAwLjU4MzEwMiwgMC43ODkzNSwgMC45OTU0OTQsIDEuMjAxNTksIDEuNDA3NzEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTAxMTEyLCAwLjUwODExNywgMC44MzU4MzUsIDEuMjQ3MjcsIDEuNjU4MDcsIDIuMDcwMDYsIDIuNDgxOSIsIFwKLSAgICAgICAgICAiMC4xMDEwODgsIDAuNTA4MDk4LCAwLjgzNzEyMSwgMS4yNDczMSwgMS42NTcyNywgMi4wNjc5NywgMi40ODAxNiIsIFwKLSAgICAgICAgICAiMC4xMDExMzgsIDAuNTA4MTQxLCAwLjgzNTcwOCwgMS4yNDcwNCwgMS42NTg5LCAyLjA2OTMxLCAyLjQ4MTYzIiwgXAotICAgICAgICAgICIwLjEwMTEzLCAwLjUwODEzNSwgMC44MzU3NjYsIDEuMjQ2ODUsIDEuNjU5LCAyLjA2OTQ2LCAyLjQ4MjczIiwgXAotICAgICAgICAgICIwLjEwMTE1OSwgMC41MDgwNjQsIDAuODM1NzM3LCAxLjI0NzI1LCAxLjY1OTIsIDIuMDY5MzcsIDIuNDgxNjEiLCBcCi0gICAgICAgICAgIjAuMTAxNTI1LCAwLjUwNzk3NCwgMC44MzUwMzIsIDEuMjQ3ODIsIDEuNjU4MjMsIDIuMDcwNzgsIDIuNDc4NzkiLCBcCi0gICAgICAgICAgIjAuMTAyMTc0LCAwLjUwODEzMiwgMC44MzcxNTYsIDEuMjQ3NDEsIDEuNjU4NjksIDIuMDcsIDIuNDgyMyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDU3NTEsIDAuMjg1NzA0LCAwLjQyODkwOCwgMC42MDc5NTIsIDAuNzg3MDEyLCAwLjk2NjAyMiwgMS4xNDUxMSIsIFwKLSAgICAgICAgICAiMC4xMTU5NDYsIDAuMjk1OTM0LCAwLjQzOTE0LCAwLjYxODE3LCAwLjc5NzE4MSwgMC45NzYyMTYsIDEuMTU1NDUiLCBcCi0gICAgICAgICAgIjAuMTI5NTA3LCAwLjMwOTUzOSwgMC40NTI3NjQsIDAuNjMxNzk2LCAwLjgxMTAyMiwgMC45OSwgMS4xNjg4NyIsIFwKLSAgICAgICAgICAiMC4xNDMwNjcsIDAuMzIzMTA3LCAwLjQ2NjMzNCwgMC42NDU1MzQsIDAuODI0Mzg4LCAxLjAwMjk3LCAxLjE4MjQ1IiwgXAotICAgICAgICAgICIwLjE1NjU5OSwgMC4zMzYyMDMsIDAuNDc5NDQxLCAwLjY1ODUxMiwgMC44Mzc0NDgsIDEuMDE2NTIsIDEuMTk1NjEiLCBcCi0gICAgICAgICAgIjAuMTc3MjY1LCAwLjM1NzM2NywgMC41MDA2MDQsIDAuNjc5NzY3LCAwLjg1ODgyOCwgMS4wMzc3MSwgMS4yMTY3NiIsIFwKLSAgICAgICAgICAiMC4xOTM4ODcsIDAuMzc0MzA5LCAwLjUxNzU1MiwgMC42OTY1NzksIDAuODc1ODQzLCAxLjA1NDc0LCAxLjIzMzcyIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5MjEwMiwgMC40NTAwNTMsIDAuNzQyNDE4LCAxLjEwNzYyLCAxLjQ2OTc1LCAxLjgzMjA0LCAyLjE5NzAxIiwgXAotICAgICAgICAgICIwLjA5MjA2NSwgMC40NTAxODEsIDAuNzQyNTQ4LCAxLjEwNzU0LCAxLjQ2ODM4LCAxLjgzMjI3LCAyLjE5NjY1IiwgXAotICAgICAgICAgICIwLjA5MjAxNCwgMC40NTA5NDEsIDAuNzQyMzE3LCAxLjEwNzEzLCAxLjQ2ODY0LCAxLjgzMjcyLCAyLjIwMTc4IiwgXAotICAgICAgICAgICIwLjA5MjAzMiwgMC40NTAwOTEsIDAuNzQyMDIsIDEuMTA0NjUsIDEuNDY4MzgsIDEuODMyNzEsIDIuMTk1OSIsIFwKLSAgICAgICAgICAiMC4wOTIxNzksIDAuNDUwMDg3LCAwLjc0MTExMywgMS4xMDU0NSwgMS40NzI0NSwgMS44MzIyMiwgMi4xOTcxNCIsIFwKLSAgICAgICAgICAiMC4wOTMwMywgMC40NTA0MDMsIDAuNzQyMjgxLCAxLjEwNDcxLCAxLjQ2ODc5LCAxLjgzMjE0LCAyLjE5NTY3IiwgXAotICAgICAgICAgICIwLjA5NDQ0NiwgMC40NTExNDgsIDAuNzQyNTcyLCAxLjEwNzQ5LCAxLjQ2ODYzLCAxLjgzMjkxLCAyLjE5ODEiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTA3ODIsIDAuMzE0Njk0LCAwLjQ3OTcwMiwgMC42ODU4MywgMC44OTE5NjIsIDEuMDk4MywgMS4zMDQzMiIsIFwKLSAgICAgICAgICAiMC4xMTkwMjksIDAuMzI1OTM3LCAwLjQ5MDkzOSwgMC42OTcxMDQsIDAuOTAzMjYyLCAxLjEwOTMsIDEuMzE1NjciLCBcCi0gICAgICAgICAgIjAuMTMzODI5LCAwLjM0MDcwNSwgMC41MDU3MTQsIDAuNzEyMTkyLCAwLjkxODE2LCAxLjEyNDI2LCAxLjMzMDM5IiwgXAotICAgICAgICAgICIwLjE0ODUxMSwgMC4zNTU0MzMsIDAuNTIwNDU1LCAwLjcyNjU4LCAwLjkzMjc1NiwgMS4xMzg5MywgMS4zNDQ5MyIsIFwKLSAgICAgICAgICAiMC4xNjI2OTgsIDAuMzY5NjcsIDAuNTM0NzEsIDAuNzQwODk3LCAwLjk0NzAxMiwgMS4xNTMzMSwgMS4zNTkzNiIsIFwKLSAgICAgICAgICAiMC4xODU0ODYsIDAuMzkyNDc5LCAwLjU1NzUyNiwgMC43NjM4MTYsIDAuOTY5OTQxLCAxLjE3NjE4LCAxLjM4MjE5IiwgXAotICAgICAgICAgICIwLjIwMzc2LCAwLjQxMDU5MiwgMC41NzU3NDksIDAuNzgyMDYyLCAwLjk4ODIwMSwgMS4xOTQxOSwgMS40MDAzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwMDM5NiwgMC41MDc5MTYsIDAuODM0NDM3LCAxLjI0NDIyLCAxLjY1NDQ1LCAyLjA2OTI1LCAyLjQ3NTkiLCBcCi0gICAgICAgICAgIjAuMTAwNTA2LCAwLjUwNzkwNywgMC44MzM3ODYsIDEuMjQ2NjQsIDEuNjU4ODMsIDIuMDY1ODQsIDIuNDc5NjYiLCBcCi0gICAgICAgICAgIjAuMTAwNDM3LCAwLjUwNzkxMiwgMC44MzM3ODUsIDEuMjQ2NywgMS42NTg5NiwgMi4wNzA4OCwgMi40NzY4NCIsIFwKLSAgICAgICAgICAiMC4xMDA0ODMsIDAuNTA3OTE1LCAwLjgzNDIzMiwgMS4yNDQzOSwgMS42NTQyMiwgMi4wNzIzLCAyLjQ3NTkzIiwgXAotICAgICAgICAgICIwLjEwMDkzNywgMC41MDc5MzUsIDAuODM0NjMxLCAxLjI0NTEsIDEuNjU0MjMsIDIuMDY5OTYsIDIuNDc2MDIiLCBcCi0gICAgICAgICAgIjAuMTAxMjMzLCAwLjUwNzk2OCwgMC44MzQ3OTUsIDEuMjQ1NDgsIDEuNjU3NjEsIDIuMDY3OTEsIDIuNDc2MjkiLCBcCi0gICAgICAgICAgIjAuMTAyNDQyLCAwLjUwNjgwOCwgMC44MzQ2MjMsIDEuMjQ0NDYsIDEuNjU1MzIsIDIuMDcxMiwgMi40NzU4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxOTgxLCAwLjAwMjAwMSwgMC4wMDIwMDcsIDAuMDAyMDA2LCAwLjAwMjAwNCwgMC4wMDIwMDUsIDAuMDAyMDA1IiwgXAotICAgICAgICAgICIwLjAwMTk3MSwgMC4wMDE5OTIsIDAuMDAxOTkyLCAwLjAwMTk5NCwgMC4wMDE5OTUsIDAuMDAxOTk1LCAwLjAwMTk5NSIsIFwKLSAgICAgICAgICAiMC4wMDE5NjEsIDAuMDAxOTg0LCAwLjAwMTk4NiwgMC4wMDE5ODcsIDAuMDAxOTg3LCAwLjAwMTk4NywgMC4wMDE5ODgiLCBcCi0gICAgICAgICAgIjAuMDAxOTUyLCAwLjAwMTk3OCwgMC4wMDE5ODEsIDAuMDAxOTgyLCAwLjAwMTk4MiwgMC4wMDE5ODMsIDAuMDAxOTgzIiwgXAotICAgICAgICAgICIwLjAwMTk0NCwgMC4wMDE5NzQsIDAuMDAxOTc3LCAwLjAwMTk3OSwgMC4wMDE5OCwgMC4wMDE5NzksIDAuMDAxOTgiLCBcCi0gICAgICAgICAgIjAuMDAxOTM0LCAwLjAwMTk2OSwgMC4wMDE5NzMsIDAuMDAxOTc1LCAwLjAwMTk3NiwgMC4wMDE5NzYsIDAuMDAxOTc3IiwgXAotICAgICAgICAgICIwLjAwMTkyNiwgMC4wMDE5NjUsIDAuMDAxOTcsIDAuMDAxOTcyLCAwLjAwMTk3MywgMC4wMDE5NzQsIDAuMDAxOTc0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzMDAxLCAwLjAwMzAzNywgMC4wMDMwNDEsIDAuMDAzMDQzLCAwLjAwMzA0NCwgMC4wMDMwNDUsIDAuMDAzMDQ1IiwgXAotICAgICAgICAgICIwLjAwMjk4MSwgMC4wMDMwMiwgMC4wMDMwMjQsIDAuMDAzMDI2LCAwLjAwMzAyOCwgMC4wMDMwMjgsIDAuMDAzMDI5IiwgXAotICAgICAgICAgICIwLjAwMjk2NSwgMC4wMDMwMDksIDAuMDAzMDE0LCAwLjAwMzAxNiwgMC4wMDMwMTgsIDAuMDAzMDE4LCAwLjAwMzAxOSIsIFwKLSAgICAgICAgICAiMC4wMDI5NTIsIDAuMDAzMDAxLCAwLjAwMzAwNywgMC4wMDMwMSwgMC4wMDMwMTEsIDAuMDAzMDEzLCAwLjAwMzAxMyIsIFwKLSAgICAgICAgICAiMC4wMDI5NCwgMC4wMDI5OTQsIDAuMDAzMDAxLCAwLjAwMzAwNSwgMC4wMDMwMDcsIDAuMDAzMDA4LCAwLjAwMzAwOSIsIFwKLSAgICAgICAgICAiMC4wMDI5MjksIDAuMDAyOTg4LCAwLjAwMjk5NywgMC4wMDMwMDIsIDAuMDAzMDA1LCAwLjAwMzAwNiwgMC4wMDMwMDciLCBcCi0gICAgICAgICAgIjAuMDAyOTIxLCAwLjAwMjk4NCwgMC4wMDI5OTQsIDAuMDAyOTk5LCAwLjAwMzAwMiwgMC4wMDMwMDQsIDAuMDAzMDA1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxOTgzLCAwLjAwMjAwNywgMC4wMDIwMDksIDAuMDAyMDEsIDAuMDAyMDExLCAwLjAwMjAxMSwgMC4wMDIwMTIiLCBcCi0gICAgICAgICAgIjAuMDAxOTY2LCAwLjAwMTk5MiwgMC4wMDE5OTUsIDAuMDAxOTk2LCAwLjAwMTk5NywgMC4wMDE5OTcsIDAuMDAxOTk3IiwgXAotICAgICAgICAgICIwLjAwMTk1MSwgMC4wMDE5ODEsIDAuMDAxOTg0LCAwLjAwMTk4NiwgMC4wMDE5ODYsIDAuMDAxOTg3LCAwLjAwMTk4NyIsIFwKLSAgICAgICAgICAiMC4wMDE5MzgsIDAuMDAxOTcyLCAwLjAwMTk3NiwgMC4wMDE5NzksIDAuMDAxOTc5LCAwLjAwMTk4MSwgMC4wMDE5ODEiLCBcCi0gICAgICAgICAgIjAuMDAxOTI5LCAwLjAwMTk2NywgMC4wMDE5NzIsIDAuMDAxOTc1LCAwLjAwMTk3NiwgMC4wMDE5NzYsIDAuMDAxOTc3IiwgXAotICAgICAgICAgICIwLjAwMTkyLCAwLjAwMTk2MiwgMC4wMDE5NjksIDAuMDAxOTcxLCAwLjAwMTk3NCwgMC4wMDE5NzQsIDAuMDAxOTc1IiwgXAotICAgICAgICAgICIwLjAwMTkxNiwgMC4wMDE5NjEsIDAuMDAxOTY4LCAwLjAwMTk3MSwgMC4wMDE5NzMsIDAuMDAxOTc0LCAwLjAwMTk3NiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjY4MSwgMC4wMDI3MTcsIDAuMDAyNzIxLCAwLjAwMjcyMywgMC4wMDI3MjQsIDAuMDAyNzI0LCAwLjAwMjcyNSIsIFwKLSAgICAgICAgICAiMC4wMDI2NTksIDAuMDAyNjk5LCAwLjAwMjcwMywgMC4wMDI3MDUsIDAuMDAyNzA2LCAwLjAwMjcwNiwgMC4wMDI3MDciLCBcCi0gICAgICAgICAgIjAuMDAyNjM0LCAwLjAwMjY4MSwgMC4wMDI2ODUsIDAuMDAyNjg4LCAwLjAwMjY4OSwgMC4wMDI2OSwgMC4wMDI2OSIsIFwKLSAgICAgICAgICAiMC4wMDI2MTYsIDAuMDAyNjY4LCAwLjAwMjY3NCwgMC4wMDI2NzgsIDAuMDAyNjc5LCAwLjAwMjY4LCAwLjAwMjY4MSIsIFwKLSAgICAgICAgICAiMC4wMDI1OTgsIDAuMDAyNjU5LCAwLjAwMjY2NywgMC4wMDI2NzEsIDAuMDAyNjczLCAwLjAwMjY3NSwgMC4wMDI2NzUiLCBcCi0gICAgICAgICAgIjAuMDAyNTg3LCAwLjAwMjY1MSwgMC4wMDI2NiwgMC4wMDI2NjUsIDAuMDAyNjY4LCAwLjAwMjY3LCAwLjAwMjY3MSIsIFwKLSAgICAgICAgICAiMC4wMDI1NzgsIDAuMDAyNjQ1LCAwLjAwMjY1NSwgMC4wMDI2NjEsIDAuMDAyNjY1LCAwLjAwMjY2NiwgMC4wMDI2NjgiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IENMS0FORDJYNiAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKENMS0FORDJYNikgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjM0MTk5ODsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAyMzU2OTg7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAyMzU2OTg7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAyMzQ1OTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA1OTYsIDAuMDAwNTk2LCAwLjAwMDU5NiwgMC4wMDA1OTYsIDAuMDAwNTk1LCAwLjAwMDU5NiwgMC4wMDA1OTUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA2MzcsIDAuMDAwNjA4LCAwLjAwMDYwMywgMC4wMDA2MDIsIDAuMDAwNjAxLCAwLjAwMDYwMSwgMC4wMDA2Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDIyMzY0NzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDIyMzY0NzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDIyMzYxOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDAyMSwgMC4wMDAwMjEsIDAuMDAwMDIyLCAwLjAwMDAyMSwgMC4wMDAwMjEsIDAuMDAwMDIxLCAwLjAwMDAyMSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDc2MSwgMC4wMDA3NjIsIDAuMDAwNzYxLCAwLjAwMDc2MywgMC4wMDA3NjIsIDAuMDAwNzYyLCAwLjAwMDc2MiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjc1OTM3MjsKLSAgICBmdW5jdGlvbiA6ICIoQSBCKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzcwODMsIDAuMTY0MTgsIDAuMjQ4NTM1LCAwLjMwODgxOSwgMC40MDUxNjQsIDAuNDg5NTEzLCAwLjYwOTk0OSIsIFwKLSAgICAgICAgICAiMC4wODg1MDUsIDAuMTc1NzQ3LCAwLjI2MDEzNiwgMC4zMjAzODYsIDAuNDE2NjQ3LCAwLjUwMDk1MywgMC42MjE1NDgiLCBcCi0gICAgICAgICAgIjAuMTAyMDI3LCAwLjE4OTM3MywgMC4yNzM3NDksIDAuMzM0MDAyLCAwLjQzMDM4NywgMC41MTQ3MTcsIDAuNjM1MTc4IiwgXAotICAgICAgICAgICIwLjExNTQwOSwgMC4yMDI3MDYsIDAuMjg3MTE4LCAwLjM0NzM0MSwgMC40NDM3MywgMC41MjgwNTcsIDAuNjQ4NjA0IiwgXAotICAgICAgICAgICIwLjEyODI5MSwgMC4yMTU2NjIsIDAuMzAwMDUsIDAuMzYwMzQ5LCAwLjQ1NjczMywgMC41NDEwMTQsIDAuNjYxNzI4IiwgXAotICAgICAgICAgICIwLjE0ODM1NywgMC4yMzU4MTcsIDAuMzIwMjM1LCAwLjM4MDQ2NSwgMC40NzY4NzMsIDAuNTYxMzMzLCAwLjY4MTcxNyIsIFwKLSAgICAgICAgICAiMC4xNjQ1ODUsIDAuMjUyNDQ4LCAwLjMzNjg0MSwgMC4zOTcwODUsIDAuNDkzNDYzLCAwLjU3NzkxLCAwLjY5ODU4MyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0NDc1MywgMC4yMTA0NzQsIDAuMzc5ODIyLCAwLjUwNDE2LCAwLjY5OTYzMiwgMC44NjkwNjYsIDEuMTEzOTEiLCBcCi0gICAgICAgICAgIjAuMDQ0NjU5LCAwLjIxMDQ1NywgMC4zODAwMTUsIDAuNTAxNTYyLCAwLjY5NzM5OSwgMC44NzA5ODQsIDEuMTE2NDMiLCBcCi0gICAgICAgICAgIjAuMDQ0Njk5LCAwLjIxMDQwMiwgMC4zODA4NjIsIDAuNTAyNTE2LCAwLjY5ODM0MywgMC44NjkwNTcsIDEuMTE0NzkiLCBcCi0gICAgICAgICAgIjAuMDQ0NzAyLCAwLjIxMDM4OCwgMC4zODAwMjMsIDAuNTAzNDA4LCAwLjY5ODM0OCwgMC44NjkwNTYsIDEuMTEyNzkiLCBcCi0gICAgICAgICAgIjAuMDQ1MDkzLCAwLjIxMDQxNCwgMC4zODA4MzQsIDAuNTAyMDcsIDAuNjk3ODQ3LCAwLjg3MTQ3MiwgMS4xMTQwMiIsIFwKLSAgICAgICAgICAiMC4wNDYwNzIsIDAuMjEwNDE1LCAwLjM4MTA3NywgMC41MDMzNzIsIDAuNjk4Mjc1LCAwLjg2OTIwOSwgMS4xMTQyNyIsIFwKLSAgICAgICAgICAiMC4wNDc0MzYsIDAuMjEwOTUyLCAwLjM4MTA2MSwgMC41MDM0MTEsIDAuNjk5MzQ3LCAwLjg2OTI1LCAxLjExNDIyIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc3MDA1LCAwLjE3OTAxNSwgMC4yNzg3NDksIDAuMzQ5ODkxLCAwLjQ2MzY1MiwgMC41NjMyMjgsIDAuNzA1MzIyIiwgXAotICAgICAgICAgICIwLjA4ODM1NCwgMC4xOTA0NDQsIDAuMjkwMTc0LCAwLjM2MTMwNiwgMC40NzUxMjgsIDAuNTc0NjI0LCAwLjcxNjc0NCIsIFwKLSAgICAgICAgICAiMC4xMDMwMSwgMC4yMDUwNDksIDAuMzA0NzkyLCAwLjM3NTkzMSwgMC40ODk3MTMsIDAuNTg5MjI4LCAwLjczMTM5IiwgXAotICAgICAgICAgICIwLjExNzY4NywgMC4yMTk4MzIsIDAuMzE5NTg4LCAwLjM5MDczMiwgMC41MDQ1MTksIDAuNjA0MDM1LCAwLjc0NjE5OCIsIFwKLSAgICAgICAgICAiMC4xMzIxOTcsIDAuMjM0MzcxLCAwLjMzNDE0NSwgMC40MDUyOTUsIDAuNTE5MDg5LCAwLjYxODYsIDAuNzYwNzY4IiwgXAotICAgICAgICAgICIwLjE1NDYzNCwgMC4yNTY5NTIsIDAuMzU2NzMxLCAwLjQyNzkzNSwgMC41NDE2OTksIDAuNjQxMjMzLCAwLjc4MzM4OCIsIFwKLSAgICAgICAgICAiMC4xNzI2NTksIDAuMjc1MDQ4LCAwLjM3NDg4MSwgMC40NDYwMzEsIDAuNTU5ODE0LCAwLjY1OTM0MSwgMC44MDE1MDciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDgwNTksIDAuMjQwOTkyLCAwLjQzNzkxOCwgMC41Nzg4NTksIDAuODAzNDUyLCAxLjAwMTksIDEuMjgzMTMiLCBcCi0gICAgICAgICAgIjAuMDQ4MDksIDAuMjQwMzI3LCAwLjQzNzkwNSwgMC41Nzg4OSwgMC44MDMxMjcsIDEuMDAxNzcsIDEuMjgzNDkiLCBcCi0gICAgICAgICAgIjAuMDQ4MTI5LCAwLjI0MTEzNSwgMC40Mzc5MTMsIDAuNTc4OTM4LCAwLjgwNDcxNywgMS4wMDEwOCwgMS4yODQ1IiwgXAotICAgICAgICAgICIwLjA0ODA5MywgMC4yNDEwOTMsIDAuNDM3OTEyLCAwLjU3ODk1OCwgMC44MDQ0NjcsIDEuMDAwOTgsIDEuMjg0MzEiLCBcCi0gICAgICAgICAgIjAuMDQ4NDEyLCAwLjI0MDMyNywgMC40Mzc5MTMsIDAuNTc4OTM3LCAwLjgwNDY3OCwgMS4wMDI3LCAxLjI4Mzg1IiwgXAotICAgICAgICAgICIwLjA0OTMzOSwgMC4yNDExOTcsIDAuNDM4MjEsIDAuNTc4NjAxLCAwLjgwMzY5MSwgMS4wMDIxMSwgMS4yODMyOCIsIFwKLSAgICAgICAgICAiMC4wNTA4MjMsIDAuMjQxNDAyLCAwLjQzNzk5MywgMC41Nzg4MDksIDAuODA0ODQ5LCAxLjAwMTMyLCAxLjI4MzM1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDcyMzg5LCAwLjE1OTUxNywgMC4yNDM4OTQsIDAuMzA0MTUsIDAuNDAwNDkzLCAwLjQ4NDg4OSwgMC42MDUxODYiLCBcCi0gICAgICAgICAgIjAuMDgyNjU4LCAwLjE3MDAwNywgMC4yNTQzOTIsIDAuMzE0NjM3LCAwLjQxMTAyMSwgMC40OTUzNTQsIDAuNjE1NzY4IiwgXAotICAgICAgICAgICIwLjA5NjAxOCwgMC4xODMzOTMsIDAuMjY3Nzk3LCAwLjMyODA2NiwgMC40MjQ0MjgsIDAuNTA4NTk5LCAwLjYyOTEyIiwgXAotICAgICAgICAgICIwLjEwOTUyNSwgMC4xOTY4NjksIDAuMjgxMjgsIDAuMzQxNTI4LCAwLjQzNzkyNSwgMC41MjIyNDgsIDAuNjQyNTU3IiwgXAotICAgICAgICAgICIwLjEyMjg1MiwgMC4yMTAxMzIsIDAuMjk0NTQ2LCAwLjM1NDc3OSwgMC40NTEyMTYsIDAuNTM1NTE1LCAwLjY1NjI0NSIsIFwKLSAgICAgICAgICAiMC4xNDI0MSwgMC4yMzAxNzcsIDAuMzE0NTc1LCAwLjM3NDgyOSwgMC40NzEyMTcsIDAuNTU1NTc4LCAwLjY3NjMyMSIsIFwKLSAgICAgICAgICAiMC4xNTgwNzEsIDAuMjQ2MjY5LCAwLjMzMDY3MywgMC4zOTA4OTEsIDAuNDg3MjcsIDAuNTcxNzEzLCAwLjY5MjE1Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQ0NzMsIDAuMjEwNDY0LCAwLjM4MDM2OSwgMC41MDM0NzYsIDAuNjk3NDg5LCAwLjg2ODgzOCwgMS4xMTY2OCIsIFwKLSAgICAgICAgICAiMC4wNDQ3NSwgMC4yMTA0MTQsIDAuMzgwMDksIDAuNTAzNDI0LCAwLjY5ODM2NSwgMC44NjkwNTgsIDEuMTE2NjYiLCBcCi0gICAgICAgICAgIjAuMDQ0NjYyLCAwLjIxMDQxOSwgMC4zODAyNjgsIDAuNTA0MSwgMC42OTcxOTksIDAuODY3NzIyLCAxLjExMzA5IiwgXAotICAgICAgICAgICIwLjA0NDg1LCAwLjIxMDQyNiwgMC4zODAxMjMsIDAuNTAzNDA2LCAwLjY5ODMyNywgMC44NjkwNTQsIDEuMTE2MjkiLCBcCi0gICAgICAgICAgIjAuMDQ1MjY1LCAwLjIxMDQ3MywgMC4zODA5NjYsIDAuNTAzMjc0LCAwLjY5ODQ0MiwgMC44NzE0ODUsIDEuMTEzOTUiLCBcCi0gICAgICAgICAgIjAuMDQ3MzQ2LCAwLjIxMDgxMiwgMC4zODAzOTksIDAuNTAyNDcsIDAuNjk5MDQ4LCAwLjg2OTA0NiwgMS4xMTQ0NCIsIFwKLSAgICAgICAgICAiMC4wNDkzMzUsIDAuMjExMDMxLCAwLjM4MTI3OCwgMC41MDMzNjcsIDAuNjk5NTU5LCAwLjg2OTMyNSwgMS4xMTQ4OCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3MTc1LCAwLjE3MzI5NSwgMC4yNzI4NywgMC4zNDM5MzQsIDAuNDU3Njg0LCAwLjU1NzIyLCAwLjY5OTQ2NCIsIFwKLSAgICAgICAgICAiMC4wODI5MDMsIDAuMTg0NTA1LCAwLjI4NDA5NCwgMC4zNTUyMjcsIDAuNDY4ODk2LCAwLjU2ODQyMiwgMC43MTA1NDgiLCBcCi0gICAgICAgICAgIjAuMDk3Njg5LCAwLjE5OTI2LCAwLjI5ODg2LCAwLjM2OTk1MywgMC40ODM3NTcsIDAuNTgzMjU1LCAwLjcyNTI4OSIsIFwKLSAgICAgICAgICAiMC4xMTIxMjksIDAuMjEzODQ2LCAwLjMxMzQ0MiwgMC4zODQ1MjMsIDAuNDk4Mjc3LCAwLjU5Nzk5OCwgMC43Mzk5NTkiLCBcCi0gICAgICAgICAgIjAuMTI2NjcyLCAwLjIyODM1NCwgMC4zMjc5NTksIDAuMzk5MDgzLCAwLjUxMjgzMywgMC42MTI1MDMsIDAuNzU0NTQxIiwgXAotICAgICAgICAgICIwLjE0ODAwNCwgMC4yNDk4OTYsIDAuMzQ5NTUyLCAwLjQyMDYzNywgMC41MzQ0LCAwLjYzMzk1OSwgMC43NzYyNzEiLCBcCi0gICAgICAgICAgIjAuMTY1MzI3LCAwLjI2NzQ1MiwgMC4zNjcwODEsIDAuNDM4MTg4LCAwLjU1MjAyMSwgMC42NTE1NzQsIDAuNzkzODQ4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQ3NDA4LCAwLjIzOTkzOSwgMC40Mzc2NDksIDAuNTc4ODYsIDAuODAyNjA2LCAxLjAwMDUyLCAxLjI4MTY0IiwgXAotICAgICAgICAgICIwLjA0NzQyOSwgMC4yNDAwNTYsIDAuNDM2NTA1LCAwLjU3NjkyLCAwLjgwNTA2MSwgMS4wMDExNywgMS4yODA5NSIsIFwKLSAgICAgICAgICAiMC4wNDc0MzYsIDAuMjM5OTQ4LCAwLjQzNzY0MiwgMC41Nzg4ODMsIDAuODAyNiwgMS4wMDA0NSwgMS4yODU3NiIsIFwKLSAgICAgICAgICAiMC4wNDc3ODcsIDAuMjQwNTE5LCAwLjQzNzY1LCAwLjU3ODg1NywgMC44MDUwNjEsIDAuOTk5NzAyLCAxLjI4MSIsIFwKLSAgICAgICAgICAiMC4wNDc5NjIsIDAuMjQwNTYzLCAwLjQzNzY0OCwgMC41Nzc2MSwgMC44MDQzMDgsIDAuOTk5OTY4LCAxLjI4MDY0IiwgXAotICAgICAgICAgICIwLjA0OTc3NSwgMC4yNDAyODQsIDAuNDM2NTExLCAwLjU3ODg4OCwgMC44MDUwNzEsIDAuOTk5MTM5LCAxLjI4MjA5IiwgXAotICAgICAgICAgICIwLjA1MDk0OSwgMC4yNDA4ODIsIDAuNDM2NjY2LCAwLjU3ODkwNSwgMC44MDI0NzgsIDEuMDAwOSwgMS4yODE5NyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2MTA2LCAwLjAwNjI0NiwgMC4wMDYyNTksIDAuMDA2MjcxLCAwLjAwNjI3NSwgMC4wMDYyNjgsIDAuMDA2MjcxIiwgXAotICAgICAgICAgICIwLjAwNjA1OCwgMC4wMDYyMDMsIDAuMDA2MjE1LCAwLjAwNjIyNSwgMC4wMDYyMjksIDAuMDA2MjI2LCAwLjAwNjIyOSIsIFwKLSAgICAgICAgICAiMC4wMDYwMTQsIDAuMDA2MTY3LCAwLjAwNjE4MywgMC4wMDYxOSwgMC4wMDYxOTUsIDAuMDA2MTk1LCAwLjAwNjE5NyIsIFwKLSAgICAgICAgICAiMC4wMDU5NzUsIDAuMDA2MTQsIDAuMDA2MTYxLCAwLjAwNjE2OSwgMC4wMDYxNzMsIDAuMDA2MTc2LCAwLjAwNjE3OSIsIFwKLSAgICAgICAgICAiMC4wMDU5NCwgMC4wMDYxMTgsIDAuMDA2MTQ0LCAwLjAwNjE1NCwgMC4wMDYxNTksIDAuMDA2MTYyLCAwLjAwNjE2NSIsIFwKLSAgICAgICAgICAiMC4wMDU5MTEsIDAuMDA2MDkxLCAwLjAwNjEyNSwgMC4wMDYxMzUsIDAuMDA2MTQ0LCAwLjAwNjE0NywgMC4wMDYxNTIiLCBcCi0gICAgICAgICAgIjAuMDA1OTAxLCAwLjAwNjA3NCwgMC4wMDYxMSwgMC4wMDYxMTgsIDAuMDA2MTMxLCAwLjAwNjEzNiwgMC4wMDYxNDEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwOTI3MSwgMC4wMDk0NzIsIDAuMDA5NDk5LCAwLjAwOTUwNywgMC4wMDk1MTQsIDAuMDA5NTE4LCAwLjAwOTUyMSIsIFwKLSAgICAgICAgICAiMC4wMDkxOTMsIDAuMDA5NDAzLCAwLjAwOTQzMywgMC4wMDk0NDEsIDAuMDA5NDQ5LCAwLjAwOTQ1MywgMC4wMDk0NTYiLCBcCi0gICAgICAgICAgIjAuMDA5MTMzLCAwLjAwOTM1MSwgMC4wMDkzODYsIDAuMDA5Mzk3LCAwLjAwOTQwNywgMC4wMDk0MTEsIDAuMDA5NDE2IiwgXAotICAgICAgICAgICIwLjAwOTA4NCwgMC4wMDkzMTIsIDAuMDA5MzU0LCAwLjAwOTM2OCwgMC4wMDkzOCwgMC4wMDkzODcsIDAuMDA5MzkyIiwgXAotICAgICAgICAgICIwLjAwOTA0NiwgMC4wMDkyODMsIDAuMDA5MzMxLCAwLjAwOTM0OCwgMC4wMDkzNjMsIDAuMDA5MzcxLCAwLjAwOTM3OCIsIFwKLSAgICAgICAgICAiMC4wMDkwMTMsIDAuMDA5MjUyLCAwLjAwOTMwOSwgMC4wMDkzMjgsIDAuMDA5MzQ3LCAwLjAwOTM1NiwgMC4wMDkzNjUiLCBcCi0gICAgICAgICAgIjAuMDA4OTk4LCAwLjAwOTI1MSwgMC4wMDkyOTQsIDAuMDA5MzE1LCAwLjAwOTMzNiwgMC4wMDkzNDYsIDAuMDA5MzU2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDYxLCAwLjAwNjI0MiwgMC4wMDYyNiwgMC4wMDYyNjUsIDAuMDA2MjcsIDAuMDA2MjcyLCAwLjAwNjI3IiwgXAotICAgICAgICAgICIwLjAwNjAyOSwgMC4wMDYxODIsIDAuMDA2MjAxLCAwLjAwNjIwNiwgMC4wMDYyMTEsIDAuMDA2MjE1LCAwLjAwNjIxNSIsIFwKLSAgICAgICAgICAiMC4wMDU5NjksIDAuMDA2MTMsIDAuMDA2MTU0LCAwLjAwNjE2NSwgMC4wMDYxNjgsIDAuMDA2MTcxLCAwLjAwNjE3NCIsIFwKLSAgICAgICAgICAiMC4wMDU5MTcsIDAuMDA2MDkzLCAwLjAwNjEyLCAwLjAwNjEyOCwgMC4wMDYxNDEsIDAuMDA2MTQ0LCAwLjAwNjE0OSIsIFwKLSAgICAgICAgICAiMC4wMDU4OTgsIDAuMDA2MDczLCAwLjAwNjEwNywgMC4wMDYxMiwgMC4wMDYxMywgMC4wMDYxMzYsIDAuMDA2MTQiLCBcCi0gICAgICAgICAgIjAuMDA1ODY4LCAwLjAwNjA1LCAwLjAwNjA5LCAwLjAwNjEwOCwgMC4wMDYxMTksIDAuMDA2MTI2LCAwLjAwNjEzMiIsIFwKLSAgICAgICAgICAiMC4wMDU4NjcsIDAuMDA2MDQyLCAwLjAwNjA4NywgMC4wMDYxMDIsIDAuMDA2MTE3LCAwLjAwNjEyNSwgMC4wMDYxMzIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwODAwNiwgMC4wMDgxOTYsIDAuMDA4MjE5LCAwLjAwODIyNSwgMC4wMDgyMzEsIDAuMDA4MjM1LCAwLjAwODIzNyIsIFwKLSAgICAgICAgICAiMC4wMDc5MTMsIDAuMDA4MTE5LCAwLjAwODE0NCwgMC4wMDgxNTIsIDAuMDA4MTU4LCAwLjAwODE2MSwgMC4wMDgxNjQiLCBcCi0gICAgICAgICAgIjAuMDA3ODI2LCAwLjAwODA0NywgMC4wMDgwOCwgMC4wMDgwOSwgMC4wMDgwOTgsIDAuMDA4MTAzLCAwLjAwODEwNiIsIFwKLSAgICAgICAgICAiMC4wMDc3NTEsIDAuMDA3OTg5LCAwLjAwODAzMiwgMC4wMDgwNDUsIDAuMDA4MDU3LCAwLjAwODA2MywgMC4wMDgwNjgiLCBcCi0gICAgICAgICAgIjAuMDA3NzI2LCAwLjAwNzk2MiwgMC4wMDgwMSwgMC4wMDgwMjUsIDAuMDA4MDM5LCAwLjAwODA0NiwgMC4wMDgwNTIiLCBcCi0gICAgICAgICAgIjAuMDA3NjcyLCAwLjAwNzkyMiwgMC4wMDc5NzksIDAuMDA3OTk4LCAwLjAwODAxNiwgMC4wMDgwMjUsIDAuMDA4MDM0IiwgXAotICAgICAgICAgICIwLjAwNzY3LCAwLjAwNzkwNiwgMC4wMDc5NjQsIDAuMDA3OTg1LCAwLjAwODAwNSwgMC4wMDgwMTYsIDAuMDA4MDI2Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBDTEtCVUZYMTIgKgotICogLS0tLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChDTEtCVUZYMTIpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC41MDQxOTQ7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMjE5MzQ0OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMjE5MTcyOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMjE5MzQ0OwotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDEuNTUzODsKLSAgICBmdW5jdGlvbiA6ICJBIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjM5NzMsIDAuMDY4NzQ5LCAwLjA5MTQ3MywgMC4xMTAwMzksIDAuMTM0MjMxLCAwLjE4MjQ2MSwgMC4yMTI1MzUiLCBcCi0gICAgICAgICAgIjAuMDc1MzY3LCAwLjA4MDE1NiwgMC4xMDMxMzgsIDAuMTIxNTk5LCAwLjE0NTg3LCAwLjE5NDA4MiwgMC4yMjQxOTQiLCBcCi0gICAgICAgICAgIjAuMDkwNDEsIDAuMDk1MTk3LCAwLjExODEzMywgMC4xMzY3MjMsIDAuMTYwOTQxLCAwLjIwOTIyLCAwLjIzOTMwNSIsIFwKLSAgICAgICAgICAiMC4xMDUzNzYsIDAuMTEwMjE5LCAwLjEzMzE0MywgMC4xNTE3MTQsIDAuMTc1OTQ2LCAwLjIyNDIwNiwgMC4yNTQyOSIsIFwKLSAgICAgICAgICAiMC4xMjAzMTMsIDAuMTI1MTA5LCAwLjE0Nzk4NiwgMC4xNjY1NzIsIDAuMTkwODAyLCAwLjIzOTA3LCAwLjI2OTE2MiIsIFwKLSAgICAgICAgICAiMC4xNDMzMTQsIDAuMTQ4MTE4LCAwLjE3MTE4NywgMC4xODk3NzEsIDAuMjE0MDE1LCAwLjI2MjIzNSwgMC4yOTIzMzEiLCBcCi0gICAgICAgICAgIjAuMTYxNjksIDAuMTY2NzE1LCAwLjE5MDExMiwgMC4yMDg1OCwgMC4yMzI4NTMsIDAuMjgxMTEsIDAuMzExMjEiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDMzNzY2LCAwLjA0MDU5OCwgMC4wNzk2NTksIDAuMTE0Njc2LCAwLjE2MjEzNCwgMC4yNTgzNTEsIDAuMzE5MDE5IiwgXAotICAgICAgICAgICIwLjAzMzc5MywgMC4wNDA2NTcsIDAuMDc5NTUsIDAuMTE0NTgzLCAwLjE2MjI5MywgMC4yNTg3NTUsIDAuMzE5NDU0IiwgXAotICAgICAgICAgICIwLjAzMzc3NSwgMC4wNDA2MTcsIDAuMDc5NDg5LCAwLjExNDYwNiwgMC4xNjI0MjcsIDAuMjU4NjM2LCAwLjMxOTM2IiwgXAotICAgICAgICAgICIwLjAzNDExNSwgMC4wNDA5NDEsIDAuMDc5NTg3LCAwLjExNDc0MiwgMC4xNjI0NzYsIDAuMjU5MywgMC4zMTk2NjciLCBcCi0gICAgICAgICAgIjAuMDM0Mzc0LCAwLjA0MTEwNSwgMC4wNzk3MTksIDAuMTE0OCwgMC4xNjI1MTMsIDAuMjU4NzA0LCAwLjMxOTczMSIsIFwKLSAgICAgICAgICAiMC4wMzYzMDksIDAuMDQyNzI2LCAwLjA4MDUyMiwgMC4xMTUyNDQsIDAuMTYyNzM5LCAwLjI1OTA0MywgMC4zMTk3NTMiLCBcCi0gICAgICAgICAgIjAuMDM4NzE1LCAwLjA0NTE2NiwgMC4wODIwMzcsIDAuMTE2NjIxLCAwLjE2MzUzMywgMC4yNTk3MzYsIDAuMzE5ODI2Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2Mjg0LCAwLjA2ODA1NCwgMC4wOTQxNTEsIDAuMTE1NTg3LCAwLjE0NDE1LCAwLjIwMTA2NSwgMC4yMzY2MzEiLCBcCi0gICAgICAgICAgIjAuMDc0MTgxLCAwLjA3OTQyNCwgMC4xMDU2MjYsIDAuMTI3Mjk1LCAwLjE1NTg3NywgMC4yMTI4MDcsIDAuMjQ4MzM5IiwgXAotICAgICAgICAgICIwLjA4OTE2NCwgMC4wOTQ0MzIsIDAuMTIwNTQ5LCAwLjE0MjI2NywgMC4xNzA4NTEsIDAuMjI3ODA5LCAwLjI2MzM0MSIsIFwKLSAgICAgICAgICAiMC4xMDM3MjQsIDAuMTA4OTMxLCAwLjEzNTE3NywgMC4xNTY4ODgsIDAuMTg1NDg3LCAwLjI0MjQ1NSwgMC4yNzc5OTciLCBcCi0gICAgICAgICAgIjAuMTE4MTY5LCAwLjEyMzQzOSwgMC4xNDk1MzIsIDAuMTcxMzAzLCAwLjE5OTkxNCwgMC4yNTY4NTYsIDAuMjkyNDM0IiwgXAotICAgICAgICAgICIwLjEzOTg0MSwgMC4xNDQ5OSwgMC4xNzEzNDMsIDAuMTkzMTAxLCAwLjIyMTcxNCwgMC4yNzg2NzIsIDAuMzE0MjQ1IiwgXAotICAgICAgICAgICIwLjE1NjU0OCwgMC4xNjIwNTIsIDAuMTg4NjYzLCAwLjIxMDQxNywgMC4yMzkwODEsIDAuMjk2MDIsIDAuMzMxNTY0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzNDg0NywgMC4wNDI5MDcsIDAuMDg4NTQ1LCAwLjEyOTU3NiwgMC4xODUyMTQsIDAuMjk2ODI1LCAwLjM2NzIxIiwgXAotICAgICAgICAgICIwLjAzNDg3NSwgMC4wNDI4ODMsIDAuMDg4NDk0LCAwLjEyOTYzOSwgMC4xODQ3NDgsIDAuMjk3NTUyLCAwLjM2Nzk0NSIsIFwKLSAgICAgICAgICAiMC4wMzQ4ODIsIDAuMDQyOTA4LCAwLjA4ODUwNSwgMC4xMjk0NDMsIDAuMTg1MTkxLCAwLjI5NjYyMSwgMC4zNjc5MjkiLCBcCi0gICAgICAgICAgIjAuMDM1Mzg5LCAwLjA0MzI4MywgMC4wODg1NjksIDAuMTI5NzA3LCAwLjE4NTI1NSwgMC4yOTc1NjgsIDAuMzY3OTQ5IiwgXAotICAgICAgICAgICIwLjAzNTQ1MSwgMC4wNDM0NzQsIDAuMDg4NzY2LCAwLjEyOTcyNSwgMC4xODUzMTEsIDAuMjk2Nzk1LCAwLjM2Nzk3NiIsIFwKLSAgICAgICAgICAiMC4wMzcyNDQsIDAuMDQ1MzMzLCAwLjA4OTU5NiwgMC4xMzAyNzcsIDAuMTg1NTI3LCAwLjI5NjY3NSwgMC4zNjc2NjgiLCBcCi0gICAgICAgICAgIjAuMDM5NTI0LCAwLjA0NzAyNCwgMC4wOTA4MTQsIDAuMTMxMDU0LCAwLjE4NjAxNSwgMC4yOTc5MzMsIDAuMzY3Mjc3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEwMjMxLCAwLjAxMDMxLCAwLjAxMDQ5OCwgMC4wMTA1NTksIDAuMDEwNTk5LCAwLjAxMDYzNCwgMC4wMTA2NDUiLCBcCi0gICAgICAgICAgIjAuMDEwMTI1LCAwLjAxMDIsIDAuMDEwNCwgMC4wMTA0NjcsIDAuMDEwNTA3LCAwLjAxMDU1MSwgMC4wMTA1NjMiLCBcCi0gICAgICAgICAgIjAuMDEwMDQsIDAuMDEwMTA3LCAwLjAxMDMwNCwgMC4wMTAzNzgsIDAuMDEwNDMxLCAwLjAxMDQ4LCAwLjAxMDQ5MiIsIFwKLSAgICAgICAgICAiMC4wMDk5NTUsIDAuMDEwMDE3LCAwLjAxMDIxMiwgMC4wMTAyOTUsIDAuMDEwMzU3LCAwLjAxMDQxOCwgMC4wMTA0MzkiLCBcCi0gICAgICAgICAgIjAuMDA5OTEzLCAwLjAwOTk3MiwgMC4wMTAxNjQsIDAuMDEwMjUyLCAwLjAxMDMxOCwgMC4wMTAzODcsIDAuMDEwNDE2IiwgXAotICAgICAgICAgICIwLjAwOTg4LCAwLjAwOTkzMSwgMC4wMTAxMTMsIDAuMDEwMTk5LCAwLjAxMDI3LCAwLjAxMDM0NywgMC4wMTAzNzUiLCBcCi0gICAgICAgICAgIjAuMDA5ODY4LCAwLjAwOTkxNCwgMC4wMTAwNzUsIDAuMDEwMTU3LCAwLjAxMDIyOSwgMC4wMTAzMjIsIDAuMDEwMzQ1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEyNzU3LCAwLjAxMjg1MSwgMC4wMTMxMDIsIDAuMDEzMTY3LCAwLjAxMzIyNywgMC4wMTMyODEsIDAuMDEzMjk5IiwgXAotICAgICAgICAgICIwLjAxMjY2NSwgMC4wMTI3NTksIDAuMDEzMDE4LCAwLjAxMzEwOSwgMC4wMTMxNywgMC4wMTMyMjcsIDAuMDEzMjQ1IiwgXAotICAgICAgICAgICIwLjAxMjU4NSwgMC4wMTI2NzEsIDAuMDEyOTI1LCAwLjAxMzAyNCwgMC4wMTMwOTYsIDAuMDEzMTY0LCAwLjAxMzE4NiIsIFwKLSAgICAgICAgICAiMC4wMTI0ODMsIDAuMDEyNTYxLCAwLjAxMjgxOCwgMC4wMTI5MjksIDAuMDEzMDE0LCAwLjAxMzEsIDAuMDEzMTI5IiwgXAotICAgICAgICAgICIwLjAxMjQ0NywgMC4wMTI1MjUsIDAuMDEyNzY3LCAwLjAxMjg4LCAwLjAxMjk3LCAwLjAxMzA2NCwgMC4wMTMwOTciLCBcCi0gICAgICAgICAgIjAuMDEyMzg1LCAwLjAxMjQzNywgMC4wMTI2ODIsIDAuMDEyODA0LCAwLjAxMjg5MiwgMC4wMTMwMDUsIDAuMDEzMDQ1IiwgXAotICAgICAgICAgICIwLjAxMjM1OCwgMC4wMTI0MjksIDAuMDEyNjQ1LCAwLjAxMjc1OCwgMC4wMTI4NTgsIDAuMDEyOTcyLCAwLjAxMzAxMyIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogQ0xLQlVGWDE2ICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoQ0xLQlVGWDE2KSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuNjcyMDk0OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDI4NzM5MzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDI4NzIwNjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDI4NzM5MzsKLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAyLjE1ODAxOwotICAgIGZ1bmN0aW9uIDogIkEiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2MDY1NCwgMC4wNjQ0NDUsIDAuMDgyNDAzLCAwLjA5NjY4OCwgMC4xMTUxMTgsIDAuMTUxNTE1LCAwLjE3NDE5NyIsIFwKLSAgICAgICAgICAiMC4wNzIwOTIsIDAuMDc1OTI3LCAwLjA5Mzk3MywgMC4xMDgyOTUsIDAuMTI2NzMsIDAuMTYzMTQyLCAwLjE4NTgyNSIsIFwKLSAgICAgICAgICAiMC4wODcwODcsIDAuMDkwODk2LCAwLjEwODk1NywgMC4xMjMyNTYsIDAuMTQxNzIzLCAwLjE3ODE5MiwgMC4yMDA4NzUiLCBcCi0gICAgICAgICAgIjAuMTAyMTA1LCAwLjEwNTkyMSwgMC4xMjQwMTQsIDAuMTM4MzY2LCAwLjE1Njc2MiwgMC4xOTMyMDgsIDAuMjE1OTIxIiwgXAotICAgICAgICAgICIwLjExNzEyNywgMC4xMjA5MzcsIDAuMTM4OTc0LCAwLjE1MzI0MywgMC4xNzE3MjEsIDAuMjA4MTQ0LCAwLjIzMDg0OSIsIFwKLSAgICAgICAgICAiMC4xMzk2MSwgMC4xNDM0OTQsIDAuMTYxODAzLCAwLjE3NjIwNSwgMC4xOTQ2NTEsIDAuMjMxMDU5LCAwLjI1Mzc1MSIsIFwKLSAgICAgICAgICAiMC4xNTc5MTUsIDAuMTYyMDc5LCAwLjE4MDY5NywgMC4xOTUwNTEsIDAuMjEzMzI1LCAwLjI0OTc2LCAwLjI3MjQ4MSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzA1MjUsIDAuMDM1NzY4LCAwLjA2NTAwNSwgMC4wOTExOTMsIDAuMTI2NjYyLCAwLjE5OTIxNSwgMC4yNDQ3NzkiLCBcCi0gICAgICAgICAgIjAuMDMwNTY3LCAwLjAzNTc4NiwgMC4wNjQ5MTEsIDAuMDkxMTE1LCAwLjEyNjU4NywgMC4xOTkxNjgsIDAuMjQ0ODAzIiwgXAotICAgICAgICAgICIwLjAzMDUwNiwgMC4wMzU3NDMsIDAuMDY0ODczLCAwLjA5MTA4MSwgMC4xMjY2MDgsIDAuMTk5MDg5LCAwLjI0NDMxMyIsIFwKLSAgICAgICAgICAiMC4wMzA3MTIsIDAuMDM1ODc0LCAwLjA2NDk3NSwgMC4wOTExNTUsIDAuMTI2NTg2LCAwLjE5OTEyNSwgMC4yNDQ3NzQiLCBcCi0gICAgICAgICAgIjAuMDMxMDI5LCAwLjAzNjMyOSwgMC4wNjUyMzUsIDAuMDkxMzI1LCAwLjEyNjczMSwgMC4xOTkxOTksIDAuMjQ0Mzc3IiwgXAotICAgICAgICAgICIwLjAzMzc0NywgMC4wMzg1MjcsIDAuMDY2MzksIDAuMDkyMTEsIDAuMTI3MjM5LCAwLjE5OTQ3OSwgMC4yNDUwMTgiLCBcCi0gICAgICAgICAgIjAuMDM1NzY2LCAwLjA0MDYzNywgMC4wNjgwMjUsIDAuMDkzMzYsIDAuMTI4NDk0LCAwLjE5OTgyNiwgMC4yNDUzNzkiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU5MjE2LCAwLjA2MzI3MiwgMC4wODM1NjgsIDAuMTAwMDIzLCAwLjEyMTU0MiwgMC4xNjQyNzMsIDAuMTkwOTA0IiwgXAotICAgICAgICAgICIwLjA3MDU4NSwgMC4wNzQ2NzgsIDAuMDk0OTksIDAuMTExNTEsIDAuMTMzMDMyLCAwLjE3NTc2OCwgMC4yMDI0MTIiLCBcCi0gICAgICAgICAgIjAuMDg1NTMsIDAuMDg5NjQ2LCAwLjEwOTk1NCwgMC4xMjY0MjMsIDAuMTQ3OTg1LCAwLjE5MDcyNCwgMC4yMTc0MDUiLCBcCi0gICAgICAgICAgIjAuMTAwMTUsIDAuMTA0MzAxLCAwLjEyNDU2LCAwLjE0MTA1MywgMC4xNjI2NTYsIDAuMjA1NDMxLCAwLjIzMjA4MiIsIFwKLSAgICAgICAgICAiMC4xMTQ1NzgsIDAuMTE4NzA1LCAwLjEzOTAyNCwgMC4xNTU1NTEsIDAuMTc3MTA3LCAwLjIxOTg4NCwgMC4yNDY1MzgiLCBcCi0gICAgICAgICAgIjAuMTM1ODE0LCAwLjE0MDA0OSwgMC4xNjA0NzEsIDAuMTc2OTQ4LCAwLjE5ODUxLCAwLjI0MTI2NywgMC4yNjc5MTciLCBcCi0gICAgICAgICAgIjAuMTUyNTIzLCAwLjE1Njg1MywgMC4xNzc3OTMsIDAuMTk0NDA3LCAwLjIxNTk2OCwgMC4yNTg2OTMsIDAuMjg1MzU3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzMTA1NSwgMC4wMzcxMjYsIDAuMDcxMTgyLCAwLjEwMTk4MywgMC4xNDMzODYsIDAuMjI3NjEyLCAwLjI3OTQ0MyIsIFwKLSAgICAgICAgICAiMC4wMzEwNTksIDAuMDM3MTI2LCAwLjA3MTI5NywgMC4xMDE5NzIsIDAuMTQzMzk2LCAwLjIyNzYzMSwgMC4yODA0OCIsIFwKLSAgICAgICAgICAiMC4wMzEwNDksIDAuMDM3MTI2LCAwLjA3MTM1OCwgMC4xMDE5MDEsIDAuMTQzMjk3LCAwLjIyNzU2MSwgMC4yODA0NTciLCBcCi0gICAgICAgICAgIjAuMDMxMzM0LCAwLjAzNzM4MywgMC4wNzE0MDksIDAuMTAyMDU2LCAwLjE0MzQxLCAwLjIyNzYxNSwgMC4yODA0ODUiLCBcCi0gICAgICAgICAgIjAuMDMxNzMyLCAwLjAzNzcxNCwgMC4wNzE2MTgsIDAuMTAyMTY2LCAwLjE0MzU4MiwgMC4yMjc2ODksIDAuMjgwNDMzIiwgXAotICAgICAgICAgICIwLjAzMzcxNCwgMC4wMzk1MiwgMC4wNzI5MzEsIDAuMTAyOTU1LCAwLjE0Mzk1NCwgMC4yMjc4MTUsIDAuMjgwNTA4IiwgXAotICAgICAgICAgICIwLjAzNTg2MywgMC4wNDE1NTksIDAuMDc0MDMyLCAwLjEwMzk1OCwgMC4xNDQ2MzgsIDAuMjI4MTczLCAwLjI4MDEzOCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMzIyNiwgMC4wMTMzMTksIDAuMDEzNTczLCAwLjAxMzY2NywgMC4wMTM3MywgMC4wMTM3ODgsIDAuMDEzODE4IiwgXAotICAgICAgICAgICIwLjAxMzA4NywgMC4wMTMxNzcsIDAuMDEzNDQ0LCAwLjAxMzU0MywgMC4wMTM2MTIsIDAuMDEzNjc2LCAwLjAxMzY5NiIsIFwKLSAgICAgICAgICAiMC4wMTI5NzgsIDAuMDEzMDU3LCAwLjAxMzMwOSwgMC4wMTM0MTUsIDAuMDEzNDk1LCAwLjAxMzU3OCwgMC4wMTM1OTkiLCBcCi0gICAgICAgICAgIjAuMDEyODgsIDAuMDEyOTUyLCAwLjAxMzE5NywgMC4wMTMzMSwgMC4wMTM0LCAwLjAxMzUwMSwgMC4wMTM1MjciLCBcCi0gICAgICAgICAgIjAuMDEyODM4LCAwLjAxMjg5MiwgMC4wMTMxMjcsIDAuMDEzMjM4LCAwLjAxMzMzNywgMC4wMTM0MzgsIDAuMDEzNDc2IiwgXAotICAgICAgICAgICIwLjAxMjc0NywgMC4wMTI4MTEsIDAuMDEzMDQxLCAwLjAxMzE1NywgMC4wMTMyNTksIDAuMDEzMzgzLCAwLjAxMzQyOSIsIFwKLSAgICAgICAgICAiMC4wMTI3NiwgMC4wMTI4MzIsIDAuMDEzMDE0LCAwLjAxMzEyLCAwLjAxMzIxNCwgMC4wMTMzMjUsIDAuMDEzMzc4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE2NzIsIDAuMDE2ODMzLCAwLjAxNzE3OSwgMC4wMTczMDQsIDAuMDE3Mzg5LCAwLjAxNzQ2OSwgMC4wMTc0OTUiLCBcCi0gICAgICAgICAgIjAuMDE2NTk5LCAwLjAxNjcxMSwgMC4wMTcwNTYsIDAuMDE3MTksIDAuMDE3Mjg2LCAwLjAxNzM3OCwgMC4wMTc0MDgiLCBcCi0gICAgICAgICAgIjAuMDE2NDk4LCAwLjAxNjU5OCwgMC4wMTY5MjQsIDAuMDE3MDY2LCAwLjAxNzE3NCwgMC4wMTcyODQsIDAuMDE3MzIxIiwgXAotICAgICAgICAgICIwLjAxNjM2MywgMC4wMTY0NTcsIDAuMDE2Nzg1LCAwLjAxNjkzOSwgMC4wMTcwNjMsIDAuMDE3MTk0LCAwLjAxNzI0MSIsIFwKLSAgICAgICAgICAiMC4wMTYzMjMsIDAuMDE2NDAzLCAwLjAxNjcxNCwgMC4wMTY4NjcsIDAuMDE2OTk1LCAwLjAxNzEzNiwgMC4wMTcxODgiLCBcCi0gICAgICAgICAgIjAuMDE2MjUxLCAwLjAxNjMzMSwgMC4wMTY1OSwgMC4wMTY3NSwgMC4wMTY4ODcsIDAuMDE3MDQsIDAuMDE3MTA0IiwgXAotICAgICAgICAgICIwLjAxNjIzMSwgMC4wMTYyOTYsIDAuMDE2NTQzLCAwLjAxNjY5NiwgMC4wMTY4MzMsIDAuMDE2OTk0LCAwLjAxNzA1NCIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBDTEtCVUZYMiAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoQ0xLQlVGWDIpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4wODUyNjA0OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2MDE1OTU7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjAxMDUyOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDYwMTU5NTsKLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjI2MTY5ODsKLSAgICBmdW5jdGlvbiA6ICJBIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTg0ODQsIDAuMjc4MDI3LCAwLjQyMTI2OCwgMC42MDAxNDcsIDAuNzc5MDk2LCAwLjk1ODI0OCwgMS4xMzczMiIsIFwKLSAgICAgICAgICAiMC4xMTAzODksIDAuMjg5OTY4LCAwLjQzMzIxOSwgMC42MTIzODMsIDAuNzkxMzQsIDAuOTcwMjA0LCAxLjE0OTE1IiwgXAotICAgICAgICAgICIwLjEyNTYxOSwgMC4zMDUyNjMsIDAuNDQ4NTE3LCAwLjYyNzI0MSwgMC44MDY1MjgsIDAuOTg1NTMsIDEuMTY0NSIsIFwKLSAgICAgICAgICAiMC4xNDA5OSwgMC4zMjA2NzUsIDAuNDYzODgsIDAuNjQyOTEzLCAwLjgyMTU2MywgMS4wMDA5MSwgMS4xNzk5MyIsIFwKLSAgICAgICAgICAiMC4xNTU3NiwgMC4zMzUzOTUsIDAuNDc4NjEyLCAwLjY1Nzg0MiwgMC44MzY3NTQsIDEuMDE1NzQsIDEuMTk0NTkiLCBcCi0gICAgICAgICAgIjAuMTc5OTk2LCAwLjM1OTYxNCwgMC41MDI4ODgsIDAuNjgxOTI3LCAwLjg2MDg0NiwgMS4wMzk5NSwgMS4yMTg4NSIsIFwKLSAgICAgICAgICAiMC4xOTk3NTksIDAuMzc5MTgyLCAwLjUyMjUxMiwgMC43MDEzNywgMC44ODA2NTQsIDEuMDU5NDYsIDEuMjM4NDMiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDkwMDY5LCAwLjQ1MDQxNiwgMC43Mzk4MSwgMS4xMDQ4MSwgMS40Njg5OSwgMS44MzExMywgMi4xOTYxNyIsIFwKLSAgICAgICAgICAiMC4wODk5OTQsIDAuNDQ5MzE1LCAwLjc0MDM0LCAxLjEwNDEzLCAxLjQ2ODA4LCAxLjgzNjU3LCAyLjE5NTM5IiwgXAotICAgICAgICAgICIwLjA4OTg4OCwgMC40NTAzNjYsIDAuNzM5ODMzLCAxLjEwMzI3LCAxLjQ2ODQyLCAxLjgzNjQ4LCAyLjE5NTA5IiwgXAotICAgICAgICAgICIwLjA5MDAxOCwgMC40NDkyODEsIDAuNzQxOTk5LCAxLjEwNDgxLCAxLjQ2ODksIDEuODM2MzIsIDIuMTk3NjMiLCBcCi0gICAgICAgICAgIjAuMDkwNDMsIDAuNDQ5MTQ5LCAwLjc0MDY0MiwgMS4xMDQwNywgMS40NjgwOSwgMS44MzIwOCwgMi4xOTUzOCIsIFwKLSAgICAgICAgICAiMC4wOTA3MiwgMC40NDkxNywgMC43NDAyODgsIDEuMTA0MTcsIDEuNDY3NjQsIDEuODMzMTUsIDIuMTk1MjIiLCBcCi0gICAgICAgICAgIjAuMDkyNDUxLCAwLjQ0OTM5LCAwLjc0MDE4MSwgMS4xMDY1OCwgMS40NjgwOSwgMS44MzYxNiwgMi4xOTUwOSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTk1MTQsIDAuMzA2MTA0LCAwLjQ3MTA0NiwgMC42NzczNjYsIDAuODgzMzkxLCAxLjA4OTUzLCAxLjI5NjU5IiwgXAotICAgICAgICAgICIwLjExMDg1NiwgMC4zMTc1MiwgMC40ODI0NiwgMC42ODg4MjUsIDAuODk0NzQ4LCAxLjEwMDk0LCAxLjMwNzQxIiwgXAotICAgICAgICAgICIwLjEyNTg1MywgMC4zMzI1NDIsIDAuNDk3NDg2LCAwLjcwMzc3MywgMC45MDk4NDEsIDEuMTE2LCAxLjMyMzA5IiwgXAotICAgICAgICAgICIwLjE0MDQ2MSwgMC4zNDcxODcsIDAuNTEyMTQyLCAwLjcxODQ0OCwgMC45MjQ1MjgsIDEuMTMwNjUsIDEuMzM3NjYiLCBcCi0gICAgICAgICAgIjAuMTU0ODcsIDAuMzYxNjc1LCAwLjUyNjY2OSwgMC43MzI5MTEsIDAuOTM5MDI4LCAxLjE0NTA3LCAxLjM1MTIiLCBcCi0gICAgICAgICAgIjAuMTc2NTgzLCAwLjM4MzM4OCwgMC41NDgzNTUsIDAuNzU0NzI2LCAwLjk2MDY2MywgMS4xNjY5OSwgMS4zNzI4IiwgXAotICAgICAgICAgICIwLjE5NDAyNCwgMC40MDA3NDksIDAuNTY1NzUzLCAwLjc3MjA5LCAwLjk3Nzk3MSwgMS4xODQxNywgMS4zOTEwOSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTg3MSwgMC41MDcyNDMsIDAuODM2NTQxLCAxLjI0NTI4LCAxLjY1OTQ3LCAyLjA2NTAxLCAyLjQ3OTk3IiwgXAotICAgICAgICAgICIwLjA5ODc1OSwgMC41MDcyNDQsIDAuODM2NTM1LCAxLjI0NDQ5LCAxLjY1Mzk4LCAyLjA2NDU1LCAyLjQ4MTI3IiwgXAotICAgICAgICAgICIwLjA5ODcyNCwgMC41MDcyMzgsIDAuODM2NTI2LCAxLjI0NjExLCAxLjY1OTc0LCAyLjA2NTE1LCAyLjQ3NTk0IiwgXAotICAgICAgICAgICIwLjA5ODk0LCAwLjUwNzI0MywgMC44MzY1MywgMS4yNDU5NiwgMS42NTkyNSwgMi4wNjQ4NiwgMi40Nzk0OSIsIFwKLSAgICAgICAgICAiMC4wOTg5NzUsIDAuNTA2MDE0LCAwLjgzMzQ4NiwgMS4yNDU2OSwgMS42NTUwNiwgMi4wNjkxNCwgMi40NzQxMyIsIFwKLSAgICAgICAgICAiMC4wOTk3MjEsIDAuNTA1NzU1LCAwLjgzMzU5LCAxLjI0NDE1LCAxLjY1MzY1LCAyLjA2NzUsIDIuNDc1NSIsIFwKLSAgICAgICAgICAiMC4xMDA3NzQsIDAuNTA1Mzg2LCAwLjgzNDg2NCwgMS4yNDM5MywgMS42NTM5LCAyLjA2NDk2LCAyLjQ3ODM1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxNzY0LCAwLjAwMTc4MywgMC4wMDE3ODcsIDAuMDAxNzg4LCAwLjAwMTc5LCAwLjAwMTc4OSwgMC4wMDE3ODkiLCBcCi0gICAgICAgICAgIjAuMDAxNzQ4LCAwLjAwMTc3MywgMC4wMDE3NzQsIDAuMDAxNzc1LCAwLjAwMTc3NSwgMC4wMDE3NzcsIDAuMDAxNzc2IiwgXAotICAgICAgICAgICIwLjAwMTczMiwgMC4wMDE3NjEsIDAuMDAxNzY0LCAwLjAwMTc2NSwgMC4wMDE3NjYsIDAuMDAxNzY2LCAwLjAwMTc2NyIsIFwKLSAgICAgICAgICAiMC4wMDE3MiwgMC4wMDE3NTMsIDAuMDAxNzU3LCAwLjAwMTc1OSwgMC4wMDE3NiwgMC4wMDE3NjEsIDAuMDAxNzYxIiwgXAotICAgICAgICAgICIwLjAwMTcwOCwgMC4wMDE3NDcsIDAuMDAxNzUyLCAwLjAwMTc1NCwgMC4wMDE3NTYsIDAuMDAxNzU3LCAwLjAwMTc1NyIsIFwKLSAgICAgICAgICAiMC4wMDE3MDEsIDAuMDAxNzQzLCAwLjAwMTc0OSwgMC4wMDE3NTMsIDAuMDAxNzU0LCAwLjAwMTc1NiwgMC4wMDE3NTYiLCBcCi0gICAgICAgICAgIjAuMDAxNjk1LCAwLjAwMTc0LCAwLjAwMTc0NywgMC4wMDE3NTEsIDAuMDAxNzUyLCAwLjAwMTc1NCwgMC4wMDE3NTQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI0NDIsIDAuMDAyNDcsIDAuMDAyNDczLCAwLjAwMjQ3NSwgMC4wMDI0NzYsIDAuMDAyNDc2LCAwLjAwMjQ3NyIsIFwKLSAgICAgICAgICAiMC4wMDI0MjYsIDAuMDAyNDYsIDAuMDAyNDY0LCAwLjAwMjQ2NiwgMC4wMDI0NjYsIDAuMDAyNDY3LCAwLjAwMjQ2NyIsIFwKLSAgICAgICAgICAiMC4wMDI0MTIsIDAuMDAyNDUyLCAwLjAwMjQ1NywgMC4wMDI0NTksIDAuMDAyNDYsIDAuMDAyNDYxLCAwLjAwMjQ2MSIsIFwKLSAgICAgICAgICAiMC4wMDIzOTUsIDAuMDAyNDQ0LCAwLjAwMjQ1LCAwLjAwMjQ1MywgMC4wMDI0NTUsIDAuMDAyNDU2LCAwLjAwMjQ1NiIsIFwKLSAgICAgICAgICAiMC4wMDIzODgsIDAuMDAyNDQsIDAuMDAyNDQ3LCAwLjAwMjQ1LCAwLjAwMjQ1MiwgMC4wMDI0NTQsIDAuMDAyNDU0IiwgXAotICAgICAgICAgICIwLjAwMjM3MiwgMC4wMDI0MzEsIDAuMDAyNDQsIDAuMDAyNDQ1LCAwLjAwMjQ0NywgMC4wMDI0NDgsIDAuMDAyNDQ5IiwgXAotICAgICAgICAgICIwLjAwMjM2NywgMC4wMDI0MjksIDAuMDAyNDM5LCAwLjAwMjQ0NCwgMC4wMDI0NDcsIDAuMDAyNDQ5LCAwLjAwMjQ1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBDTEtCVUZYMjAgKgotICogLS0tLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChDTEtCVUZYMjApIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC44NDAzNDQ7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMzU5MTQ5OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMzU4OTMzOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMzU5MTQ5OwotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDIuNTg5NDsKLSAgICBmdW5jdGlvbiA6ICJBIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjA1MzMsIDAuMDgyNjcyLCAwLjA5Nzk4MiwgMC4xMTYzNjMsIDAuMTM0NjE5LCAwLjE1Mjc5NiwgMC4xNzA5NDciLCBcCi0gICAgICAgICAgIjAuMDcyMTc2LCAwLjA5NDU1NywgMC4xMDk3NDcsIDAuMTI4MjM2LCAwLjE0NjQ5NywgMC4xNjQ2OCwgMC4xODI4NTMiLCBcCi0gICAgICAgICAgIjAuMDg2OTksIDAuMTA5MjgyLCAwLjEyNDU3NywgMC4xNDMwNTgsIDAuMTYxMzA5LCAwLjE3OTQ5MiwgMC4xOTc2ODciLCBcCi0gICAgICAgICAgIjAuMTAyMDE5LCAwLjEyNDI1NCwgMC4xMzk1ODUsIDAuMTU4MDY2LCAwLjE3NjMzMiwgMC4xOTQ0OSwgMC4yMTI2NTIiLCBcCi0gICAgICAgICAgIjAuMTE2ODUsIDAuMTM5MTIyLCAwLjE1NDM3NywgMC4xNzI4NTIsIDAuMTkxMDcxLCAwLjIwOTI3NiwgMC4yMjc0MzciLCBcCi0gICAgICAgICAgIjAuMTM5NjE4LCAwLjE2MjIzNiwgMC4xNzc2MTUsIDAuMTk2MDg3LCAwLjIxNDMyOCwgMC4yMzI1LCAwLjI1MDY1MyIsIFwKLSAgICAgICAgICAiMC4xNTc3MTgsIDAuMTgxMDU5LCAwLjE5NjE1MywgMC4yMTQ3NzMsIDAuMjMzMDMxLCAwLjI1MTE5NCwgMC4yNjk0MDgiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDI5MzI4LCAwLjA2Mzk3MywgMC4wOTE4NywgMC4xMjcyOTIsIDAuMTYzMTAzLCAwLjE5OTM0NCwgMC4yMzU5NDciLCBcCi0gICAgICAgICAgIjAuMDI5Mzg3LCAwLjA2Mzg2OSwgMC4wOTE3MTYsIDAuMTI3MjM5LCAwLjE2MzIzNCwgMC4xOTk3NjEsIDAuMjM2Mjc2IiwgXAotICAgICAgICAgICIwLjAyOTM3NywgMC4wNjM3ODgsIDAuMDkxNjc3LCAwLjEyNzM0NCwgMC4xNjMyMjIsIDAuMTk5NDM4LCAwLjIzNTc0MSIsIFwKLSAgICAgICAgICAiMC4wMjk4MjMsIDAuMDYzOTQ3LCAwLjA5MTc3NiwgMC4xMjc0MSwgMC4xNjMyMjksIDAuMTk5NzkxLCAwLjIzNjM2IiwgXAotICAgICAgICAgICIwLjAyOTkzMSwgMC4wNjQxMTYsIDAuMDkxOTMyLCAwLjEyNzM0NiwgMC4xNjM0ODIsIDAuMTk5OCwgMC4yMzYzMzMiLCBcCi0gICAgICAgICAgIjAuMDMyNDYsIDAuMDY1MjY0LCAwLjA5MjY2MiwgMC4xMjc4OTcsIDAuMTYzNTcxLCAwLjE5OTg2MSwgMC4yMzYyMTciLCBcCi0gICAgICAgICAgIjAuMDM0NzM1LCAwLjA2Njg3MywgMC4wOTQxOSwgMC4xMjg5OTEsIDAuMTY0NDY5LCAwLjIwMDM1NCwgMC4yMzY5MTMiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU4OTUsIDAuMDgzNTMsIDAuMTAxMTMyLCAwLjEyMjY0NCwgMC4xNDQwMDMsIDAuMTY1MzI4LCAwLjE4NjYwNSIsIFwKLSAgICAgICAgICAiMC4wNzAzMjYsIDAuMDk1MDU0LCAwLjExMjY5OSwgMC4xMzQyMDMsIDAuMTU1NTY5LCAwLjE3Njg4OCwgMC4xOTgxNzEiLCBcCi0gICAgICAgICAgIjAuMDg1MjMzLCAwLjEwOTkzNywgMC4xMjc1NzYsIDAuMTQ5MTE5LCAwLjE3MDQ5NCwgMC4xOTE4MTMsIDAuMjEzMTIyIiwgXAotICAgICAgICAgICIwLjA5OTg5NCwgMC4xMjQ1MTksIDAuMTQyMTU2LCAwLjE2MzcxNywgMC4xODUwOTgsIDAuMjA2NDQxLCAwLjIyNzcyNiIsIFwKLSAgICAgICAgICAiMC4xMTQxNDEsIDAuMTM5MDA3LCAwLjE1NjY2MSwgMC4xNzgxOTgsIDAuMTk5NTkxLCAwLjIyMDkyNSwgMC4yNDIyMyIsIFwKLSAgICAgICAgICAiMC4xMzU2OTcsIDAuMTYwNjk5LCAwLjE3ODI5OCwgMC4xOTk4MDgsIDAuMjIxMjMxLCAwLjI0MjU1NCwgMC4yNjM4NjIiLCBcCi0gICAgICAgICAgIjAuMTUyNTIyLCAwLjE3ODE2NSwgMC4xOTU4NTcsIDAuMjE3MzM0LCAwLjIzODcyNiwgMC4yNjAwMTIsIDAuMjgxMzIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDI5NTcyLCAwLjA2OTc5NiwgMC4xMDIyMjQsIDAuMTQzNTE1LCAwLjE4NTI0NiwgMC4yMjcyODMsIDAuMjY4NzA1IiwgXAotICAgICAgICAgICIwLjAyOTYxNiwgMC4wNjk3MywgMC4xMDIzMSwgMC4xNDM0NDQsIDAuMTg1MjQsIDAuMjI3Mjg5LCAwLjI2ODk5OCIsIFwKLSAgICAgICAgICAiMC4wMjk2MzQsIDAuMDY5NjkxLCAwLjEwMjIwNywgMC4xNDM0NDUsIDAuMTg1MjMsIDAuMjI2Nzc0LCAwLjI2OTQwMiIsIFwKLSAgICAgICAgICAiMC4wMjk4OCwgMC4wNjk5NzMsIDAuMTAyMjc4LCAwLjE0MzU0NiwgMC4xODUyOTcsIDAuMjI3MzE0LCAwLjI2OTMzNCIsIFwKLSAgICAgICAgICAiMC4wMzA1MDYsIDAuMDcwMTMsIDAuMTAyNDY1LCAwLjE0MzYzNCwgMC4xODUzNDYsIDAuMjI3MzcsIDAuMjY4OTkxIiwgXAotICAgICAgICAgICIwLjAzMjI3LCAwLjA3MTMwNiwgMC4xMDMyMzUsIDAuMTQ0MDkxLCAwLjE4NTYzMSwgMC4yMjc0NjcsIDAuMjY4Nzk0IiwgXAotICAgICAgICAgICIwLjAzNDU0NiwgMC4wNzI1NzIsIDAuMTA0MTQ2LCAwLjE0NDc0LCAwLjE4NjAwNiwgMC4yMjc4MjUsIDAuMjY5NTE3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE3MTM3LCAwLjAxNzYxMSwgMC4wMTc3NDEsIDAuMDE3ODIyLCAwLjAxNzg2NywgMC4wMTc5MDQsIDAuMDE3OTI1IiwgXAotICAgICAgICAgICIwLjAxNjk3NSwgMC4wMTc0NTQsIDAuMDE3NTkyLCAwLjAxNzY4MSwgMC4wMTc3MzEsIDAuMDE3NzYzLCAwLjAxNzc4NCIsIFwKLSAgICAgICAgICAiMC4wMTY4MzcsIDAuMDE3Mjc4LCAwLjAxNzQyNCwgMC4wMTc1MjUsIDAuMDE3NTg1LCAwLjAxNzYzLCAwLjAxNzY1MyIsIFwKLSAgICAgICAgICAiMC4wMTY3MDksIDAuMDE3MTIsIDAuMDE3Mjc1LCAwLjAxNzM5MSwgMC4wMTc0NjQsIDAuMDE3NTExLCAwLjAxNzU0OCIsIFwKLSAgICAgICAgICAiMC4wMTY2NTcsIDAuMDE3MDQyLCAwLjAxNzIxLCAwLjAxNzMyLCAwLjAxNzQwOCwgMC4wMTc0NTIsIDAuMDE3NDkzIiwgXAotICAgICAgICAgICIwLjAxNjU1LCAwLjAxNjkyNywgMC4wMTcwODMsIDAuMDE3MjE3LCAwLjAxNzMwNCwgMC4wMTczNjUsIDAuMDE3NDExIiwgXAotICAgICAgICAgICIwLjAxNjU3NywgMC4wMTY5MDUsIDAuMDE3MDQ3LCAwLjAxNzE3OSwgMC4wMTcyNjYsIDAuMDE3MzMyLCAwLjAxNzM3OSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyMTE1MiwgMC4wMjE3NDEsIDAuMDIxOTE0LCAwLjAyMjAyNiwgMC4wMjIwOSwgMC4wMjIxMzIsIDAuMDIyMTYxIiwgXAotICAgICAgICAgICIwLjAyMTAwNywgMC4wMjE2MDQsIDAuMDIxNzg4LCAwLjAyMTkwOSwgMC4wMjE5OCwgMC4wMjIwMjUsIDAuMDIyMDU3IiwgXAotICAgICAgICAgICIwLjAyMDg4NSwgMC4wMjE0NDMsIDAuMDIxNjM1LCAwLjAyMTc3MSwgMC4wMjE4NTMsIDAuMDIxOTA4LCAwLjAyMTk0NyIsIFwKLSAgICAgICAgICAiMC4wMjA3MjgsIDAuMDIxMjU2LCAwLjAyMTQ2MiwgMC4wMjE2MTgsIDAuMDIxNzE3LCAwLjAyMTc4NSwgMC4wMjE4MzQiLCBcCi0gICAgICAgICAgIjAuMDIwNjQxLCAwLjAyMTE2MSwgMC4wMjEzOCwgMC4wMjE1NDEsIDAuMDIxNjQ2LCAwLjAyMTcyLCAwLjAyMTc3NSIsIFwKLSAgICAgICAgICAiMC4wMjA1NywgMC4wMjEwMzQsIDAuMDIxMjM4LCAwLjAyMTQ0OCwgMC4wMjE1MTMsIDAuMDIxNjAxLCAwLjAyMTY2NiIsIFwKLSAgICAgICAgICAiMC4wMjA1ODgsIDAuMDIwOTgxLCAwLjAyMTE4LCAwLjAyMTMzOSwgMC4wMjE0NjEsIDAuMDIxNTM1LCAwLjAyMTYwOSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBDTEtCVUZYNCAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoQ0xLQlVGWDQpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4xNjk2NzE7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDg2NTI5NDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA4NjUxNDY7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwODY1Mjk0OwotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuNTA3OTA0OwotICAgIGZ1bmN0aW9uIDogIkEiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc5NjczLCAwLjIwNzk0NiwgMC4zMzQ1OTIsIDAuNDI1MTQ2LCAwLjU2OTg2NywgMC42OTYzNzYsIDAuODc3Mjg2IiwgXAotICAgICAgICAgICIwLjA5MTA4NCwgMC4yMTk0OTQsIDAuMzQ2MTM2LCAwLjQzNjY1MSwgMC41ODEzMTMsIDAuNzA4MDU3LCAwLjg4ODkzOCIsIFwKLSAgICAgICAgICAiMC4xMDYxMjgsIDAuMjM0NjA0LCAwLjM2MTI2MSwgMC40NTE4NzksIDAuNTk2Njg4LCAwLjcyMjgyNCwgMC45MDQyMzIiLCBcCi0gICAgICAgICAgIjAuMTIxMjQzLCAwLjI0OTc4OSwgMC4zNzY1MjUsIDAuNDY2OTcyLCAwLjYxMTg5NywgMC43Mzg0MjksIDAuOTE5MTQ5IiwgXAotICAgICAgICAgICIwLjEzNjE1OCwgMC4yNjQ1OTcsIDAuMzkxMjcsIDAuNDgxNzYzLCAwLjYyNjc1LCAwLjc1MzEzNSwgMC45MzQxMDEiLCBcCi0gICAgICAgICAgIjAuMTU5MjksIDAuMjg3ODI5LCAwLjQxNDUzNywgMC41MDUwNTcsIDAuNjQ5ODIsIDAuNzc2NDI1LCAwLjk1NzMzMSIsIFwKLSAgICAgICAgICAiMC4xNzg0MzYsIDAuMzA2OTcsIDAuNDMzNjQxLCAwLjUyNDE1MSwgMC42Njg4NDIsIDAuNzk1NjA4LCAwLjk3NjMzOSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1Njg3NiwgMC4zMDgwNjgsIDAuNTY1OTU4LCAwLjc0ODM5NSwgMS4wNDI1OSwgMS4zMDMyNywgMS42NjcxOSIsIFwKLSAgICAgICAgICAiMC4wNTY4MTksIDAuMzA3ODQ2LCAwLjU2NTkxMiwgMC43NDgwOTYsIDEuMDQ1MTcsIDEuMzAwMDEsIDEuNjY3ODIiLCBcCi0gICAgICAgICAgIjAuMDU2NzksIDAuMzA4MDU4LCAwLjU2NDk1MiwgMC43NDg1OTQsIDEuMDQyNDIsIDEuMzAyMjcsIDEuNjY3NDciLCBcCi0gICAgICAgICAgIjAuMDU2OTMyLCAwLjMwNzk4MywgMC41NjQzMzYsIDAuNzQ4MTA1LCAxLjA0MjQyLCAxLjI5OTgyLCAxLjY2NzE3IiwgXAotICAgICAgICAgICIwLjA1NzEsIDAuMzA4MDY1LCAwLjU2NTkyOSwgMC43NDgxODMsIDEuMDQyNzgsIDEuMjk5NDMsIDEuNjY3NjQiLCBcCi0gICAgICAgICAgIjAuMDU4MzI2LCAwLjMwODYwNSwgMC41NjY3MjUsIDAuNzQ4NDY5LCAxLjA0MzE1LCAxLjMwMDA0LCAxLjY2Nzg1IiwgXAotICAgICAgICAgICIwLjA2MDAzNSwgMC4zMDg5MzQsIDAuNTY2MDUzLCAwLjc0ODM3NCwgMS4wNDIyNSwgMS4yOTk4LCAxLjY2NzE4Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc5NTE3LCAwLjIyNjU5NywgMC4zNzIyMjYsIDAuNDc2MTczLCAwLjY0MjgwMiwgMC43ODgyNjIsIDAuOTk2MDE3IiwgXAotICAgICAgICAgICIwLjA5MDkzOSwgMC4yMzgwOTEsIDAuMzgzNzk3LCAwLjQ4NzY2NywgMC42NTQyODksIDAuNzk5OTA1LCAxLjAwNzgyIiwgXAotICAgICAgICAgICIwLjEwNTk3MywgMC4yNTMwODQsIDAuMzk4ODExLCAwLjUwMjY4NywgMC42NjkyNDEsIDAuODE0NzY5LCAxLjAyMjYiLCBcCi0gICAgICAgICAgIjAuMTIwNTYxLCAwLjI2Nzc5NCwgMC40MTM1NDMsIDAuNTE3NDE1LCAwLjY4Mzk5NSwgMC44Mjk0NzEsIDEuMDM3MzQiLCBcCi0gICAgICAgICAgIjAuMTM1MTM4LCAwLjI4MjQxMywgMC40MjgwNDIsIDAuNTMyMDksIDAuNjk4NjM3LCAwLjg0NDA4OSwgMS4wNTIxOCIsIFwKLSAgICAgICAgICAiMC4xNTY4NSwgMC4zMDQyNiwgMC40NDk5NTUsIDAuNTUzOTQxLCAwLjcyMDYwNCwgMC44NjU5NDEsIDEuMDczOTMiLCBcCi0gICAgICAgICAgIjAuMTc0NjI4LCAwLjMyMTczNSwgMC40NjczODYsIDAuNTcxNDM2LCAwLjczODExLCAwLjg4MzQ5OCwgMS4wOTE0NiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2MDczNywgMC4zNDY1OTksIDAuNjM1NDA1LCAwLjg0MjA4MSwgMS4xNzI1MSwgMS40NjQ0LCAxLjg3NTczIiwgXAotICAgICAgICAgICIwLjA2MDgyNCwgMC4zNDU5MTYsIDAuNjM1NjExLCAwLjg0NDQwNSwgMS4xNzI3MywgMS40NjI0MiwgMS44NzY5IiwgXAotICAgICAgICAgICIwLjA2MDc4OSwgMC4zNDY1NzYsIDAuNjM1NjMzLCAwLjg0NDM5NCwgMS4xNzM3OSwgMS40NjQ2NiwgMS44NzUzNyIsIFwKLSAgICAgICAgICAiMC4wNjA5OTUsIDAuMzQ2NjAxLCAwLjYzNTM4OSwgMC44NDQ0MDIsIDEuMTczMTEsIDEuNDYzNDEsIDEuODgwODciLCBcCi0gICAgICAgICAgIjAuMDYxMTI1LCAwLjM0NjYzNywgMC42MzY4MDMsIDAuODQzMzk1LCAxLjE3Mjg2LCAxLjQ2NDIxLCAxLjg3ODI0IiwgXAotICAgICAgICAgICIwLjA2MjM2OSwgMC4zNDU2NDMsIDAuNjM1NzEyLCAwLjg0MTczOSwgMS4xNzI0MSwgMS40NjE1MywgMS44NzY4MiIsIFwKLSAgICAgICAgICAiMC4wNjM4MTksIDAuMzQ2NzU0LCAwLjYzNjgzNiwgMC44NDExMDEsIDEuMTcyMjUsIDEuNDY0NTIsIDEuODc5MSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzNDM0LCAwLjAwMzUwNCwgMC4wMDM1MTEsIDAuMDAzNTEyLCAwLjAwMzUxNCwgMC4wMDM1MDksIDAuMDAzNTE1IiwgXAotICAgICAgICAgICIwLjAwMzM5OSwgMC4wMDM0OCwgMC4wMDM0ODgsIDAuMDAzNDg3LCAwLjAwMzQ4OSwgMC4wMDM0OSwgMC4wMDM0OTEiLCBcCi0gICAgICAgICAgIjAuMDAzMzY4LCAwLjAwMzQ1NiwgMC4wMDM0NjcsIDAuMDAzNDY5LCAwLjAwMzQ3MSwgMC4wMDM0NzEsIDAuMDAzNDc0IiwgXAotICAgICAgICAgICIwLjAwMzM0MSwgMC4wMDM0MzksIDAuMDAzNDUyLCAwLjAwMzQ1NSwgMC4wMDM0NTksIDAuMDAzNDYxLCAwLjAwMzQ2MyIsIFwKLSAgICAgICAgICAiMC4wMDMzMjQsIDAuMDAzNDI5LCAwLjAwMzQ0NSwgMC4wMDM0NDksIDAuMDAzNDUzLCAwLjAwMzQ1NiwgMC4wMDM0NTciLCBcCi0gICAgICAgICAgIjAuMDAzMzA0LCAwLjAwMzQxNywgMC4wMDM0MzcsIDAuMDAzNDQyLCAwLjAwMzQ0NywgMC4wMDM0NTEsIDAuMDAzNDUzIiwgXAotICAgICAgICAgICIwLjAwMzI5OSwgMC4wMDM0MDksIDAuMDAzNDMxLCAwLjAwMzQzOSwgMC4wMDM0NDMsIDAuMDAzNDQ3LCAwLjAwMzQ1MiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0NTEyLCAwLjAwNDYxMSwgMC4wMDQ2MjEsIDAuMDA0NjI0LCAwLjAwNDYyNywgMC4wMDQ2MjksIDAuMDA0NjMiLCBcCi0gICAgICAgICAgIjAuMDA0NDgxLCAwLjAwNDU5MSwgMC4wMDQ2MDMsIDAuMDA0NjA3LCAwLjAwNDYxLCAwLjAwNDYxMSwgMC4wMDQ2MTIiLCBcCi0gICAgICAgICAgIjAuMDA0NDQ4LCAwLjAwNDU3MiwgMC4wMDQ1ODcsIDAuMDA0NTkyLCAwLjAwNDU5NiwgMC4wMDQ1OTgsIDAuMDA0NiIsIFwKLSAgICAgICAgICAiMC4wMDQ0MTYsIDAuMDA0NTU0LCAwLjAwNDU3NCwgMC4wMDQ1OCwgMC4wMDQ1ODUsIDAuMDA0NTg4LCAwLjAwNDU5IiwgXAotICAgICAgICAgICIwLjAwNDQwMSwgMC4wMDQ1NDQsIDAuMDA0NTY3LCAwLjAwNDU3NCwgMC4wMDQ1OCwgMC4wMDQ1ODMsIDAuMDA0NTg2IiwgXAotICAgICAgICAgICIwLjAwNDM3MSwgMC4wMDQ1MjMsIDAuMDA0NTUxLCAwLjAwNDU2LCAwLjAwNDU2OSwgMC4wMDQ1NzMsIDAuMDA0NTc2IiwgXAotICAgICAgICAgICIwLjAwNDM2MiwgMC4wMDQ1MTUsIDAuMDA0NTQ3LCAwLjAwNDU1NywgMC4wMDQ1NjYsIDAuMDA0NTcxLCAwLjAwNDU3NiIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBDTEtCVUZYNiAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoQ0xLQlVGWDYpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4yNzA0MjQ7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTU0NTg0OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTU0NDc1OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTU0NTg0OwotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuNzU2NzI1OwotICAgIGZ1bmN0aW9uIDogIkEiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDYxNzg2LCAwLjE0NzE4LCAwLjIzMTIzNiwgMC4yOTExOSwgMC4zODcyNjcsIDAuNDcxMjI3LCAwLjU5MTI0MSIsIFwKLSAgICAgICAgICAiMC4wNzMzODQsIDAuMTU5MDAyLCAwLjI0MzA0NCwgMC4zMDMwMTIsIDAuMzk5MDc4LCAwLjQ4Mjk4NSwgMC42MDI5NTgiLCBcCi0gICAgICAgICAgIjAuMDg4Mjk0LCAwLjE3Mzk5NiwgMC4yNTgwNjIsIDAuMzE4MDc4LCAwLjQxNDIxMywgMC40OTgxNjYsIDAuNjE3OTAzIiwgXAotICAgICAgICAgICIwLjEwMzIyNywgMC4xODg4MzYsIDAuMjcyOTExLCAwLjMzMjkzNywgMC40Mjg5NTQsIDAuNTEzMjEsIDAuNjMzMDIzIiwgXAotICAgICAgICAgICIwLjExNzc0OCwgMC4yMDM1NDUsIDAuMjg3NjMyLCAwLjM0NzY3MiwgMC40NDM2ODEsIDAuNTI3ODgxLCAwLjY0Nzc3MyIsIFwKLSAgICAgICAgICAiMC4xMzk1MTMsIDAuMjI1MjUxLCAwLjMwOTM1MywgMC4zNjkzMzMsIDAuNDY1NDA0LCAwLjU0OTQ3NSwgMC42Njk0NCIsIFwKLSAgICAgICAgICAiMC4xNTY3MjMsIDAuMjQyOTA0LCAwLjMyNjk1MSwgMC4zODcwMiwgMC40ODMwMzYsIDAuNTY3MDI2LCAwLjY4NzIwNiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0MjA4NCwgMC4yMDgwMDUsIDAuMzc4Mzk2LCAwLjUwMTI0LCAwLjY5NzM2MSwgMC44NjgzODgsIDEuMTEyOTUiLCBcCi0gICAgICAgICAgIjAuMDQyMDI4LCAwLjIwODc2OSwgMC4zNzg2OTIsIDAuNTAxMzAzLCAwLjY5NTA3MiwgMC44NjUxMzQsIDEuMTExMTEiLCBcCi0gICAgICAgICAgIjAuMDQyMDM1LCAwLjIwODMyNywgMC4zNzkzNzQsIDAuNTAwNjA1LCAwLjY5NTQ2OCwgMC44NjY0NDYsIDEuMTEwODQiLCBcCi0gICAgICAgICAgIjAuMDQyMjg2LCAwLjIwODMxMSwgMC4zNzkzNjIsIDAuNTAwNjg5LCAwLjY5NzAzNSwgMC44NjYzOTYsIDEuMTA5OTIiLCBcCi0gICAgICAgICAgIjAuMDQyOTkzLCAwLjIwODM1NywgMC4zNzkzODMsIDAuNTAwNjEzLCAwLjY5NzI4MiwgMC44NjYyODIsIDEuMTEwNDciLCBcCi0gICAgICAgICAgIjAuMDQ0OTAzLCAwLjIwOTExMiwgMC4zNzg0MTEsIDAuNTAxNTU0LCAwLjY5NTI1OSwgMC44NjY5MTIsIDEuMTA5OSIsIFwKLSAgICAgICAgICAiMC4wNDcyOCwgMC4yMDk2MjEsIDAuMzc5NTg4LCAwLjUwMDM5NywgMC42OTU1MjgsIDAuODY2MDg0LCAxLjExMDI4Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDYyMDE4LCAwLjE2Mjc2NywgMC4yNjIyMTMsIDAuMzMzMzIyLCAwLjQ0Njk4MSwgMC41NDY0NjUsIDAuNjg4MzE4IiwgXAotICAgICAgICAgICIwLjA3MzYzLCAwLjE3NDM4MSwgMC4yNzM4ODQsIDAuMzQ0OTY1LCAwLjQ1ODU2MiwgMC41NTc5MTIsIDAuNjk5OTU0IiwgXAotICAgICAgICAgICIwLjA4ODM1OCwgMC4xODkyMDMsIDAuMjg4NjgyLCAwLjM1OTc1OCwgMC40NzM0NTcsIDAuNTcyOTA0LCAwLjcxNDgyNSIsIFwKLSAgICAgICAgICAiMC4xMDI4OSwgMC4yMDM4MjYsIDAuMzAzMzI4LCAwLjM3NDQyMSwgMC40ODgyMzYsIDAuNTg3NTU3LCAwLjcyOTQ2IiwgXAotICAgICAgICAgICIwLjExNjY3MSwgMC4yMTc2NjEsIDAuMzE3MTY1LCAwLjM4ODI3NywgMC41MDIxMDEsIDAuNjAxMjkzLCAwLjc0MzM1MiIsIFwKLSAgICAgICAgICAiMC4xMzY1NTMsIDAuMjM3NzAxLCAwLjMzNzIyOCwgMC40MDg0MDQsIDAuNTIyMDI2LCAwLjYyMTU2MywgMC43NjM0MDEiLCBcCi0gICAgICAgICAgIjAuMTUyMTY0LCAwLjI1MzQ5NiwgMC4zNTI5OTUsIDAuNDI0MDMxLCAwLjUzNzY5NSwgMC42Mzc0NCwgMC43NzkxNiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0NTU5NiwgMC4yMzk5NjEsIDAuNDM3MjU1LCAwLjU3NzE0NSwgMC44MDIzNTYsIDAuOTk5MzIxLCAxLjI4MDEyIiwgXAotICAgICAgICAgICIwLjA0NTYyNCwgMC4yMzk5NjEsIDAuNDM1NjMzLCAwLjU3NzQ3OCwgMC44MDI2ODcsIDEuMDAxOTcsIDEuMjgwMDgiLCBcCi0gICAgICAgICAgIjAuMDQ1NjQ0LCAwLjIzOTk0OSwgMC40MzY4MzUsIDAuNTc3Mzk0LCAwLjgwMzA1NiwgMS4wMDAyNiwgMS4yNzk5MyIsIFwKLSAgICAgICAgICAiMC4wNDU4NzIsIDAuMjM5OTg1LCAwLjQzNjczNSwgMC41NzY1NSwgMC44MDI1NDUsIDEuMDAwNDUsIDEuMjgwMTkiLCBcCi0gICAgICAgICAgIjAuMDQ2NDU1LCAwLjIzOTA4NCwgMC40MzcyNzEsIDAuNTc3OTAzLCAwLjgwMTU2NSwgMS4wMDE1MywgMS4yODQ4NyIsIFwKLSAgICAgICAgICAiMC4wNDgxNjIsIDAuMjQwMTI3LCAwLjQzNzMyNSwgMC41NzczMDksIDAuODAzMDU5LCAwLjk5ODg3NSwgMS4yODAwMSIsIFwKLSAgICAgICAgICAiMC4wNTAwMjEsIDAuMjQwMDUxLCAwLjQzNjkyMiwgMC41Nzc3NzQsIDAuODAxOTU2LCAxLjAwMDgyLCAxLjI3OTk4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDUyODQsIDAuMDA1NDA1LCAwLjAwNTQxNCwgMC4wMDU0MTEsIDAuMDA1NDE0LCAwLjAwNTQxNSwgMC4wMDU0MTUiLCBcCi0gICAgICAgICAgIjAuMDA1MjA2LCAwLjAwNTMzNSwgMC4wMDUzNDgsIDAuMDA1MzU2LCAwLjAwNTM1OCwgMC4wMDUzNTksIDAuMDA1MzU4IiwgXAotICAgICAgICAgICIwLjAwNTEzNCwgMC4wMDUyODQsIDAuMDA1MzAxLCAwLjAwNTMwOCwgMC4wMDUzMTcsIDAuMDA1MzE4LCAwLjAwNTMyIiwgXAotICAgICAgICAgICIwLjAwNTA4OSwgMC4wMDUyNTcsIDAuMDA1MjgxLCAwLjAwNTI4OSwgMC4wMDUyOTYsIDAuMDA1Mjk5LCAwLjAwNTMwMiIsIFwKLSAgICAgICAgICAiMC4wMDUwNTMsIDAuMDA1MjMyLCAwLjAwNTI2MiwgMC4wMDUyNzUsIDAuMDA1MjgyLCAwLjAwNTI4NywgMC4wMDUyODkiLCBcCi0gICAgICAgICAgIjAuMDA1MDQsIDAuMDA1MjE2LCAwLjAwNTI1LCAwLjAwNTI2MiwgMC4wMDUyNzMsIDAuMDA1Mjc5LCAwLjAwNTI4NCIsIFwKLSAgICAgICAgICAiMC4wMDUwNDMsIDAuMDA1MTk5LCAwLjAwNTI0OCwgMC4wMDUyNTYsIDAuMDA1MjY5LCAwLjAwNTI3NywgMC4wMDUyODMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjg4OCwgMC4wMDcwNDQsIDAuMDA3MDYyLCAwLjAwNzA2NywgMC4wMDcwNzEsIDAuMDA3MDczLCAwLjAwNzA3NiIsIFwKLSAgICAgICAgICAiMC4wMDY4MTYsIDAuMDA2OTk1LCAwLjAwNzAxNywgMC4wMDcwMjMsIDAuMDA3MDI5LCAwLjAwNzAzMiwgMC4wMDcwMzQiLCBcCi0gICAgICAgICAgIjAuMDA2NzQyLCAwLjAwNjk0OCwgMC4wMDY5NzgsIDAuMDA2OTg4LCAwLjAwNjk5NiwgMC4wMDcsIDAuMDA3MDAzIiwgXAotICAgICAgICAgICIwLjAwNjY5NCwgMC4wMDY5MTYsIDAuMDA2OTU0LCAwLjAwNjk2NiwgMC4wMDY5NzcsIDAuMDA2OTgyLCAwLjAwNjk4NyIsIFwKLSAgICAgICAgICAiMC4wMDY2NiwgMC4wMDY4OSwgMC4wMDY5MzUsIDAuMDA2OTUsIDAuMDA2OTYzLCAwLjAwNjk3LCAwLjAwNjk3NiIsIFwKLSAgICAgICAgICAiMC4wMDY2MjcsIDAuMDA2ODU2LCAwLjAwNjkxMiwgMC4wMDY5MjksIDAuMDA2OTQ2LCAwLjAwNjk1NCwgMC4wMDY5NjMiLCBcCi0gICAgICAgICAgIjAuMDA2NjA0LCAwLjAwNjgzOCwgMC4wMDY4OTYsIDAuMDA2OTE4LCAwLjAwNjkzNywgMC4wMDY5NDgsIDAuMDA2OTU3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IENMS0JVRlg4ICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChDTEtCVUZYOCkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjMzNTc2NDsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNTM0NTc7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNTMzNTU7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNTM0NTc7Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMS4wMzEzNDsKLSAgICBmdW5jdGlvbiA6ICJBIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2NjA1LCAwLjEzMjQ1MywgMC4xOTU4ODMsIDAuMjQxMTY5LCAwLjMxMzUyLCAwLjM3Njk2NiwgMC40Njc0IiwgXAotICAgICAgICAgICIwLjA3NzYzOSwgMC4xNDQwOTksIDAuMjA3NTQ0LCAwLjI1MjgyOSwgMC4zMjUyMSwgMC4zODg1MTgsIDAuNDc4ODc4IiwgXAotICAgICAgICAgICIwLjA5Mjc3NSwgMC4xNTkyODksIDAuMjIyNzU4LCAwLjI2ODAyLCAwLjM0MDM5NywgMC40MDM4MzIsIDAuNDk0MjA4IiwgXAotICAgICAgICAgICIwLjEwNzY1NCwgMC4xNzQxOTgsIDAuMjM3NjcyLCAwLjI4Mjk1NSwgMC4zNTUzMiwgMC40MTg3NDksIDAuNTA5MTM3IiwgXAotICAgICAgICAgICIwLjEyMjY0OSwgMC4xODkxNDcsIDAuMjUyNjE3LCAwLjI5NzkxNCwgMC4zNzAyNzcsIDAuNDMzNzE2LCAwLjUyNDA5MiIsIFwKLSAgICAgICAgICAiMC4xNDUyMTksIDAuMjEyMDM2LCAwLjI3NTQ3MywgMC4zMjA3NDcsIDAuMzkzMTQ1LCAwLjQ1NjUyMiwgMC41NDY5NjIiLCBcCi0gICAgICAgICAgIjAuMTYzODI5LCAwLjIzMDY1NCwgMC4yOTQxMTEsIDAuMzM5MzU1LCAwLjQxMTc3NSwgMC40NzUwOCwgMC41NjU1OTIiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzkwMTQsIDAuMTYyNDQ5LCAwLjI4OTQyOCwgMC4zODEzNDQsIDAuNTI5MTk3LCAwLjY1NjY2MSwgMC44NDA2ODkiLCBcCi0gICAgICAgICAgIjAuMDM4OTk1LCAwLjE2MjM5LCAwLjI4OTU0LCAwLjM4MTA0OCwgMC41Mjc4NDEsIDAuNjU3MTA3LCAwLjg0MjIxOSIsIFwKLSAgICAgICAgICAiMC4wMzg5NjksIDAuMTYyMDg3LCAwLjI4OTQ1MywgMC4zODE5MTMsIDAuNTI5MTg0LCAwLjY1NjY3NywgMC44NDI2OTMiLCBcCi0gICAgICAgICAgIjAuMDM5MTAxLCAwLjE2MjI2NSwgMC4yODk0OTEsIDAuMzgyNjIzLCAwLjUyOTE4OCwgMC42NTY3MTQsIDAuODQyNDE4IiwgXAotICAgICAgICAgICIwLjAzOTQ3LCAwLjE2MjQ3MywgMC4yODk2OTcsIDAuMzgyNTgzLCAwLjUyOTE4OSwgMC42NTY2NjksIDAuODQyNjczIiwgXAotICAgICAgICAgICIwLjA0MTYyNywgMC4xNjI4OTcsIDAuMjg5ODAxLCAwLjM4MTQzNiwgMC41MjkyNTgsIDAuNjU3MTEzLCAwLjg0MjcwMSIsIFwKLSAgICAgICAgICAiMC4wNDM3MDksIDAuMTYzNzI4LCAwLjI5MDUwNiwgMC4zODE0LCAwLjUzMDA3OSwgMC42NTc5ODUsIDAuODQwMzkyIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY1MTg4LCAwLjE0MjEzMywgMC4yMTY1ODksIDAuMjY5NzU2LCAwLjM1NDc4MywgMC40MjkxMzgsIDAuNTM1NDQ0IiwgXAotICAgICAgICAgICIwLjA3NjY2LCAwLjE1MzYxNCwgMC4yMjgxMTcsIDAuMjgxMjQ4LCAwLjM2NjI0MSwgMC40NDA3NjUsIDAuNTQ2ODI1IiwgXAotICAgICAgICAgICIwLjA5MTYzNCwgMC4xNjg1ODIsIDAuMjQzMDk0LCAwLjI5NjI1NSwgMC4zODEzNTEsIDAuNDU1NjMxLCAwLjU2MTk3OCIsIFwKLSAgICAgICAgICAiMC4xMDYzMDEsIDAuMTgzMzQsIDAuMjU3ODM2LCAwLjMxMTAyMSwgMC4zOTYxMjcsIDAuNDcwNDc3LCAwLjU3Njc0OCIsIFwKLSAgICAgICAgICAiMC4xMjA3MiwgMC4xOTc3MjEsIDAuMjcyMjc4LCAwLjMyNTQyNSwgMC40MTA0NTIsIDAuNDg0OTIxLCAwLjU5MTE0OCIsIFwKLSAgICAgICAgICAiMC4xNDIwNzMsIDAuMjE5MDU4LCAwLjI5MzU5OCwgMC4zNDY3NjcsIDAuNDMxODAyLCAwLjUwNjIxOSwgMC42MTI1NjEiLCBcCi0gICAgICAgICAgIjAuMTU4OTA3LCAwLjIzNjQ4MywgMC4zMTA5OTEsIDAuMzY0MTQ3LCAwLjQ0OTIwMSwgMC41MjM1NzIsIDAuNjI5ODA4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQxMDA5LCAwLjE4NDg3LCAwLjMzMjM1LCAwLjQzNjk2NCwgMC42MDYyNjUsIDAuNzUzNzM0LCAwLjk2NjkzMyIsIFwKLSAgICAgICAgICAiMC4wNDA4NzEsIDAuMTg0NjE0LCAwLjMzMjU0NywgMC40MzgzNTgsIDAuNjA3OTU1LCAwLjc1NDUyMywgMC45Njg2NDUiLCBcCi0gICAgICAgICAgIjAuMDQwOTA4LCAwLjE4NDg2NiwgMC4zMzI1MzgsIDAuNDM4Mzg3LCAwLjYwNjgzMiwgMC43NTY0OTUsIDAuOTY2ODQ4IiwgXAotICAgICAgICAgICIwLjA0MTA3NiwgMC4xODQ1MTksIDAuMzMyNDQyLCAwLjQzNzM1LCAwLjYwNjgwOSwgMC43NTQzNjYsIDAuOTY2ODc5IiwgXAotICAgICAgICAgICIwLjA0MTQ1OCwgMC4xODQ5NjMsIDAuMzMyNTg0LCAwLjQzODM3NCwgMC42MDc5ODQsIDAuNzU1NjQ5LCAwLjk2NjM0MyIsIFwKLSAgICAgICAgICAiMC4wNDMxNDksIDAuMTg1MjIzLCAwLjMzMjE1LCAwLjQzODQzOSwgMC42MDY0NjksIDAuNzUzNTM4LCAwLjk2NzczOSIsIFwKLSAgICAgICAgICAiMC4wNDUxNTgsIDAuMTg1NzA5LCAwLjMzMjc5MywgMC40Mzc0MTQsIDAuNjA1OTUsIDAuNzU2NTEsIDAuOTY1OTc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDY2NjksIDAuMDA2ODY2LCAwLjAwNjg5MSwgMC4wMDY4OTksIDAuMDA2OTA2LCAwLjAwNjkwOSwgMC4wMDY5MTIiLCBcCi0gICAgICAgICAgIjAuMDA2NTk5LCAwLjAwNjgxMSwgMC4wMDY4MzYsIDAuMDA2ODQ1LCAwLjAwNjg1MiwgMC4wMDY4NjQsIDAuMDA2ODYiLCBcCi0gICAgICAgICAgIjAuMDA2NTM5LCAwLjAwNjc0OCwgMC4wMDY3OTYsIDAuMDA2ODA1LCAwLjAwNjgxMywgMC4wMDY4MTgsIDAuMDA2ODIzIiwgXAotICAgICAgICAgICIwLjAwNjQ4MSwgMC4wMDY3MDksIDAuMDA2NzU4LCAwLjAwNjc3MywgMC4wMDY3ODYsIDAuMDA2NzkzLCAwLjAwNjc5NyIsIFwKLSAgICAgICAgICAiMC4wMDY0NDcsIDAuMDA2NjgyLCAwLjAwNjczMSwgMC4wMDY3NTEsIDAuMDA2NzY3LCAwLjAwNjc3NCwgMC4wMDY3ODIiLCBcCi0gICAgICAgICAgIjAuMDA2NDEsIDAuMDA2NjQ5LCAwLjAwNjcxMywgMC4wMDY3MywgMC4wMDY3NTEsIDAuMDA2NzU5LCAwLjAwNjc3MSIsIFwKLSAgICAgICAgICAiMC4wMDY0MTksIDAuMDA2NjI2LCAwLjAwNjY5MiwgMC4wMDY3MTUsIDAuMDA2NzM4LCAwLjAwNjc1MSwgMC4wMDY3NjQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwODQxNSwgMC4wMDg2OTIsIDAuMDA4NzI5LCAwLjAwODc0LCAwLjAwODc1LCAwLjAwODc1NSwgMC4wMDg3NiIsIFwKLSAgICAgICAgICAiMC4wMDgzNTgsIDAuMDA4NjQxLCAwLjAwODY4NSwgMC4wMDg2OTgsIDAuMDA4NzEsIDAuMDA4NzE2LCAwLjAwODcyMSIsIFwKLSAgICAgICAgICAiMC4wMDgyOTcsIDAuMDA4NTksIDAuMDA4NjQ0LCAwLjAwODY2MSwgMC4wMDg2NzYsIDAuMDA4NjgzLCAwLjAwODY5IiwgXAotICAgICAgICAgICIwLjAwODIyOSwgMC4wMDg1NDEsIDAuMDA4NjA4LCAwLjAwODYzLCAwLjAwODY0OSwgMC4wMDg2NiwgMC4wMDg2NjkiLCBcCi0gICAgICAgICAgIjAuMDA4MTk2LCAwLjAwODUwOSwgMC4wMDg1ODMsIDAuMDA4NjA4LCAwLjAwODYzMSwgMC4wMDg2NDQsIDAuMDA4NjU1IiwgXAotICAgICAgICAgICIwLjAwODE1MywgMC4wMDg0NTIsIDAuMDA4NTQ3LCAwLjAwODU3OSwgMC4wMDg2MDYsIDAuMDA4NjIxLCAwLjAwODYzNiIsIFwKLSAgICAgICAgICAiMC4wMDgxNCwgMC4wMDg0MzEsIDAuMDA4NTE4LCAwLjAwODU1NCwgMC4wMDg1ODcsIDAuMDA4NjA0LCAwLjAwODYyMSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBDTEtJTlZYMSAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoQ0xLSU5WWDEpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4wMzMyMDk5OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA4MjkyNjk7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwODI4ODcyOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDgyOTI2OTsKLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjEzMjE1ODsKLSAgICBmdW5jdGlvbiA6ICIoIUEpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODE1MzEsIDAuMTI0NjQ3LCAwLjM2OTM2MSwgMC41ODU0MTUsIDAuODcyODg0LCAxLjQ0ODcyLCAxLjgwODEiLCBcCi0gICAgICAgICAgIjAuMDkzMDMzLCAwLjEzNjIzMywgMC4zODA5ODUsIDAuNTk2NzQxLCAwLjg4NDg4LCAxLjQ2MDgzLCAxLjgyMDA3IiwgXAotICAgICAgICAgICIwLjEwNzY4OCwgMC4xNTA3MzgsIDAuMzk0MzAxLCAwLjYxMDEyMiwgMC44OTc5NDcsIDEuNDczNTksIDEuODMzMjgiLCBcCi0gICAgICAgICAgIjAuMTIyNjU0LCAwLjE2NTUwNCwgMC40MDgwMTgsIDAuNjI0MTY2LCAwLjkxMjA1OCwgMS40ODc5NCwgMS44NDY5OCIsIFwKLSAgICAgICAgICAiMC4xMzczOTIsIDAuMTgwMjI5LCAwLjQyNDI2MywgMC42Mzc2OTcsIDAuOTI1NDYzLCAxLjUwMTI4LCAxLjg2MTA5IiwgXAotICAgICAgICAgICIwLjE2MTEyLCAwLjIwNDIxMiwgMC40NDc1OTUsIDAuNjYwMjI0LCAwLjk0Nzc5OCwgMS41MjMyNSwgMS44ODM0NSIsIFwKLSAgICAgICAgICAiMC4xODIyNDUsIDAuMjI0OTM1LCAwLjQ2ODMwOSwgMC42ODM1ODksIDAuOTY3NjcyLCAxLjU0MzYzLCAxLjkwMjgzIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE1NjM4NiwgMC4yNDQ0NzgsIDAuNzQwNjk4LCAxLjE3OTQ2LCAxLjc2MzUzLCAyLjkzMjE0LCAzLjY2MzE2IiwgXAotICAgICAgICAgICIwLjE1NjM0MywgMC4yNDQxMSwgMC43NDA2MTMsIDEuMTc5MDEsIDEuNzY0MTYsIDIuOTMyODIsIDMuNjYyNTgiLCBcCi0gICAgICAgICAgIjAuMTU2OTExLCAwLjI0Mzg0OSwgMC43NDA0OTcsIDEuMTc4OTgsIDEuNzY1MywgMi45MzUxOSwgMy42NjI1NCIsIFwKLSAgICAgICAgICAiMC4xNjAxNTcsIDAuMjQ0NjQyLCAwLjc0MjQyNywgMS4xNzk1NCwgMS43NjQyLCAyLjkzMzM2LCAzLjY2MjgyIiwgXAotICAgICAgICAgICIwLjE2NDE0MywgMC4yNDc1NTEsIDAuNzQwNDU4LCAxLjE4MTcsIDEuNzY0NDgsIDIuOTMyMDIsIDMuNjY1NjYiLCBcCi0gICAgICAgICAgIjAuMTczODg4LCAwLjI1MzgzMSwgMC43NDA1NDMsIDEuMTc4OTUsIDEuNzYyNywgMi45Mzg5OSwgMy42NjI1NiIsIFwKLSAgICAgICAgICAiMC4xODMyMzgsIDAuMjYwODQxLCAwLjc0MjU5OSwgMS4xNzg2NywgMS43NjMwMiwgMi45MzIxMSwgMy42NzExOCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTMzMjcsIDAuMTQyNjkzLCAwLjQyMjU5MywgMC42Njk2NDEsIDAuOTk4ODMxLCAxLjY1NzE2LCAyLjA2OTI4IiwgXAotICAgICAgICAgICIwLjEwNDk4MywgMC4xNTQ0NDYsIDAuNDM0MzgzLCAwLjY4MTQwNSwgMS4wMTA0MiwgMS42Njg3NiwgMi4wODE0MiIsIFwKLSAgICAgICAgICAiMC4xMTk1ODUsIDAuMTY4OTg1LCAwLjQ0OTE3MiwgMC42OTYyOTIsIDEuMDI1MzEsIDEuNjgzNDUsIDIuMDk2NDYiLCBcCi0gICAgICAgICAgIjAuMTM0ODY4LCAwLjE4Mzg5OCwgMC40NjE3MTYsIDAuNzA5MTYxLCAxLjAzODA1LCAxLjY5NjY3LCAyLjEwODc5IiwgXAotICAgICAgICAgICIwLjE0OTc4LCAwLjE5ODc5MSwgMC40NzgyNDksIDAuNzIzMDgsIDEuMDUyNDYsIDEuNzExMTksIDIuMTIxNyIsIFwKLSAgICAgICAgICAiMC4xNzM3NzIsIDAuMjIzMTI2LCAwLjUwMTgyLCAwLjc0NTM4NiwgMS4wNzQ5NSwgMS43MzMyOSwgMi4xNDQ3IiwgXAotICAgICAgICAgICIwLjE5NDk1LCAwLjI0NDE1LCAwLjUyMjczMywgMC43Njk2NzMsIDEuMDk0NjcsIDEuNzUzMTMsIDIuMTY1MjciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTc0NzEyLCAwLjI3Mjc0MiwgMC44MjkxNjMsIDEuMzE4MzUsIDEuOTc2NTksIDMuMjgxOCwgNC4wOTU0NyIsIFwKLSAgICAgICAgICAiMC4xNzQ1MTksIDAuMjcyNjQxLCAwLjgyOTY4NSwgMS4zMTg0MSwgMS45NzYzNCwgMy4yODcxMSwgNC4wOTY0MyIsIFwKLSAgICAgICAgICAiMC4xNzQ0ODcsIDAuMjcyMzU2LCAwLjgyODUsIDEuMzE5NzQsIDEuOTc0MjIsIDMuMjc3MTMsIDQuMTAyMjQiLCBcCi0gICAgICAgICAgIjAuMTc2ODk0LCAwLjI3MjU0MywgMC44MzA2NzgsIDEuMzIwODYsIDEuOTczNjQsIDMuMjgyNzksIDQuMDk0MTgiLCBcCi0gICAgICAgICAgIjAuMTgwNTk5LCAwLjI3NDMyMywgMC44Mjc3MDMsIDEuMzE4NzYsIDEuOTcyMjYsIDMuMjc5MzMsIDQuMTAxNDMiLCBcCi0gICAgICAgICAgIjAuMTg4Mzc5LCAwLjI3OTg2NiwgMC44Mjc3NjYsIDEuMzE5NjcsIDEuOTcxODUsIDMuMjgxMzIsIDQuMTAwMjUiLCBcCi0gICAgICAgICAgIjAuMTk3NDQsIDAuMjg1NjA4LCAwLjgyOTE0NCwgMS4zMTk5MiwgMS45NzE5MywgMy4yODcyMiwgNC4wOTU0OSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDk0NCwgMC4wMDA5NDUsIDAuMDAwOTQ2LCAwLjAwMDk0NiwgMC4wMDA5NDYsIDAuMDAwOTQ2LCAwLjAwMDk0NiIsIFwKLSAgICAgICAgICAiMC4wMDA5MzcsIDAuMDAwOTQsIDAuMDAwOTQ0LCAwLjAwMDk0NSwgMC4wMDA5NDUsIDAuMDAwOTQ2LCAwLjAwMDk0NiIsIFwKLSAgICAgICAgICAiMC4wMDA5MzEsIDAuMDAwOTM1LCAwLjAwMDk0MiwgMC4wMDA5NDQsIDAuMDAwOTQzLCAwLjAwMDk0NSwgMC4wMDA5NDUiLCBcCi0gICAgICAgICAgIjAuMDAwOTI0LCAwLjAwMDkzMSwgMC4wMDA5NDEsIDAuMDAwOTQzLCAwLjAwMDk0NCwgMC4wMDA5NDUsIDAuMDAwOTQ1IiwgXAotICAgICAgICAgICIwLjAwMDkxOSwgMC4wMDA5MjcsIDAuMDAwOTM5LCAwLjAwMDk0MiwgMC4wMDA5NDMsIDAuMDAwOTQ0LCAwLjAwMDk0NSIsIFwKLSAgICAgICAgICAiMC4wMDA5MTQsIDAuMDAwOTIyLCAwLjAwMDkzNSwgMC4wMDA5NCwgMC4wMDA5NDIsIDAuMDAwOTQ0LCAwLjAwMDk0NCIsIFwKLSAgICAgICAgICAiMC4wMDA5MSwgMC4wMDA5MTksIDAuMDAwOTM1LCAwLjAwMDkzOCwgMC4wMDA5NDEsIDAuMDAwOTQzLCAwLjAwMDk0NCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDA1LCAwLjAwMDA1MSwgMC4wMDAwNTIsIDAuMDAwMDUzLCAwLjAwMDA1MywgMC4wMDAwNTMsIDAuMDAwMDUzIiwgXAotICAgICAgICAgICIwLjAwMDA0LCAwLjAwMDA0NCwgMC4wMDAwNSwgMC4wMDAwNTEsIDAuMDAwMDUyLCAwLjAwMDA1MiwgMC4wMDAwNTIiLCBcCi0gICAgICAgICAgIjAuMDAwMDI5LCAwLjAwMDAzNywgMC4wMDAwNDcsIDAuMDAwMDUsIDAuMDAwMDUxLCAwLjAwMDA1MiwgMC4wMDAwNTIiLCBcCi0gICAgICAgICAgIjAuMDAwMDIyLCAwLjAwMDAzMSwgMC4wMDAwNDUsIDAuMDAwMDQ4LCAwLjAwMDA1LCAwLjAwMDA1MSwgMC4wMDAwNTIiLCBcCi0gICAgICAgICAgIjAuMDAwMDE1LCAwLjAwMDAyNiwgMC4wMDAwNDIsIDAuMDAwMDQ2LCAwLjAwMDA0OCwgMC4wMDAwNSwgMC4wMDAwNTEiLCBcCi0gICAgICAgICAgIjAuMDAwMDA3LCAwLjAwMDAxOSwgMC4wMDAwMzksIDAuMDAwMDQ0LCAwLjAwMDA0NywgMC4wMDAwNDksIDAuMDAwMDUiLCBcCi0gICAgICAgICAgIjAuMDAwMDAyLCAwLjAwMDAxNCwgMC4wMDAwMzYsIDAuMDAwMDQyLCAwLjAwMDA0NSwgMC4wMDAwNDgsIDAuMDAwMDQ5Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBDTEtJTlZYMTIgKgotICogLS0tLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChDTEtJTlZYMTIpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4zOTQwODI7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwODUyNTUxOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwODUyMDY2OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwODUyNTUxOwotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDEuNTM3MDg7Ci0gICAgZnVuY3Rpb24gOiAiKCFBKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE1MzIzLCAwLjAxOTAwNiwgMC4wMzk4MzcsIDAuMDU4MTQsIDAuMDgyNTE2LCAwLjEzMTMzNSwgMC4xNjE3OTEiLCBcCi0gICAgICAgICAgIjAuMDI2OTI1LCAwLjAzMDYxOCwgMC4wNTEzMTYsIDAuMDY5NjcxLCAwLjA5NDA5MiwgMC4xNDI5MjUsIDAuMTczMzk1IiwgXAotICAgICAgICAgICIwLjA0MDE5NywgMC4wNDQ5NiwgMC4wNjYxNjksIDAuMDg0NTAzLCAwLjEwODc2OCwgMC4xNTc0MTUsIDAuMTg3ODkzIiwgXAotICAgICAgICAgICIwLjA1MDkxNywgMC4wNTY5NjgsIDAuMDgwOSwgMC4wOTkyMjMsIDAuMTIzNjQ5LCAwLjE3MjA1LCAwLjIwMjUyNiIsIFwKLSAgICAgICAgICAiMC4wNjAyNCwgMC4wNjc1OSwgMC4wOTU2MDksIDAuMTE0MjIxLCAwLjEzODQ5MiwgMC4xODY1NjUsIDAuMjE3MDEyIiwgXAotICAgICAgICAgICIwLjA3Mjg1LCAwLjA4MjA0OSwgMC4xMTcxMjEsIDAuMTM4MTE2LCAwLjE2MjIyMywgMC4yMTA5NCwgMC4yNDEzOSIsIFwKLSAgICAgICAgICAiMC4wODMwNTEsIDAuMDkzNDkxLCAwLjEzMzU0OSwgMC4xNTc2NDMsIDAuMTgzMzY4LCAwLjIzMTY2OCwgMC4yNjIxIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyMTkzMiwgMC4wMjkzNzksIDAuMDcxNDg2LCAwLjEwODc3NCwgMC4xNTgyNywgMC4yNTczOTQsIDAuMzE5NDE2IiwgXAotICAgICAgICAgICIwLjAyNDksIDAuMDMxNTQyLCAwLjA3MTc0NCwgMC4xMDg5MTgsIDAuMTU4MjI5LCAwLjI1NzYsIDAuMzE5MzIiLCBcCi0gICAgICAgICAgIjAuMDMzMzMzLCAwLjAzODgzLCAwLjA3NTU1NiwgMC4xMTA2OCwgMC4xNTg2NDUsIDAuMjU3OTI1LCAwLjMxOTM4MyIsIFwKLSAgICAgICAgICAiMC4wNDI3NSwgMC4wNDgxODgsIDAuMDgxOTcxLCAwLjExNTA4NiwgMC4xNjIwMDEsIDAuMjU4NDk4LCAwLjMxOTQxMyIsIFwKLSAgICAgICAgICAiMC4wNTEzNzYsIDAuMDU3NjE1LCAwLjA4OTQ5NCwgMC4xMjEwNTcsIDAuMTY2MTAzLCAwLjI2MDY3MSwgMC4zMjEwNzYiLCBcCi0gICAgICAgICAgIjAuMDY1NTA5LCAwLjA3MjI5NywgMC4xMDMyNTgsIDAuMTMyNjU2LCAwLjE3NTUxOCwgMC4yNjYzMDUsIDAuMzI1MjM1IiwgXAotICAgICAgICAgICIwLjA3NTIwNSwgMC4wODQxNDcsIDAuMTE2NjQ3LCAwLjE0NDA0MSwgMC4xODQ4MDQsIDAuMjczNDMzLCAwLjMzMDg2NSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTc3NDEsIDAuMDIxOTc5LCAwLjA0NjIxNywgMC4wNjc1MzUsIDAuMDk1OTE1LCAwLjE1MjY1LCAwLjE4ODE3OSIsIFwKLSAgICAgICAgICAiMC4wMjkzNzMsIDAuMDMzNDI5LCAwLjA1NzY1NiwgMC4wNzkxODUsIDAuMTA3NjE3LCAwLjE2NDQwOCwgMC4xOTk4ODciLCBcCi0gICAgICAgICAgIjAuMDQzNTYzLCAwLjA0ODUyOSwgMC4wNzI3NzMsIDAuMDk0MTU5LCAwLjEyMjA1MywgMC4xNzgzNCwgMC4yMTM4NDUiLCBcCi0gICAgICAgICAgIjAuMDU1MzA4LCAwLjA2MTgxOSwgMC4wODc3MDcsIDAuMTA5MDEsIDAuMTM3NDcyLCAwLjE5Mzg2MSwgMC4yMjkyNTciLCBcCi0gICAgICAgICAgIjAuMDY1ODAyLCAwLjA3MzU3OSwgMC4xMDI4NDIsIDAuMTIzOTEsIDAuMTUyMzE2LCAwLjIwOTEzMywgMC4yNDM5ODciLCBcCi0gICAgICAgICAgIjAuMDgwNjAzLCAwLjA4OTk2OCwgMC4xMjU5MzQsIDAuMTQ4Mjk4LCAwLjE3NjM2NiwgMC4yMzMwOTIsIDAuMjY4MTQiLCBcCi0gICAgICAgICAgIjAuMDkxOTE5LCAwLjEwMzI1NCwgMC4xNDQyNjgsIDAuMTY4NzE2LCAwLjE5NzU3NCwgMC4yNTQxMiwgMC4yODk1NzMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDI0NTMzLCAwLjAzMjk4MSwgMC4wODA5MTYsIDAuMTIzMDAyLCAwLjE3OTUyNCwgMC4yOTIzNDgsIDAuMzYyOTQzIiwgXAotICAgICAgICAgICIwLjAyNjU4MiwgMC4wMzQ0OSwgMC4wODA4MTksIDAuMTIzMTM0LCAwLjE3OTQ0MiwgMC4yOTI4NjUsIDAuMzYzNDgiLCBcCi0gICAgICAgICAgIjAuMDMzOTgsIDAuMDQwNjIyLCAwLjA4MzQ4MiwgMC4xMjQzMDQsIDAuMTc5OTcsIDAuMjkyNDExLCAwLjM2MjMxMiIsIFwKLSAgICAgICAgICAiMC4wNDM1NjcsIDAuMDQ5MjcsIDAuMDg5MDE4LCAwLjEyNzYxLCAwLjE4MTYyNiwgMC4yOTIwNzUsIDAuMzYzNDkxIiwgXAotICAgICAgICAgICIwLjA1MjU2OSwgMC4wNTg4LCAwLjA5NTY0NywgMC4xMzI5ODQsIDAuMTg1MjI0LCAwLjI5Mjk3MywgMC4zNjI0NTQiLCBcCi0gICAgICAgICAgIjAuMDY2ODUzLCAwLjA3Mzk2MSwgMC4xMDgxMywgMC4xNDI2NzMsIDAuMTkyODM2LCAwLjI5ODM0NCwgMC4zNjYzOTUiLCBcCi0gICAgICAgICAgIjAuMDc3NjcyLCAwLjA4NTkxLCAwLjEyMDg0MiwgMC4xNTQyNDIsIDAuMjAxMjIyLCAwLjMwMzkyLCAwLjM3MDI3NSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMDIwNywgMC4wMTAyNCwgMC4wMTAzMSwgMC4wMTAzMjYsIDAuMDEwMzM1LCAwLjAxMDM0NCwgMC4wMTAzNDMiLCBcCi0gICAgICAgICAgIjAuMDA5ODY1LCAwLjAwOTk0MywgMC4wMTAxNDEsIDAuMDEwMjA3LCAwLjAxMDI1MSwgMC4wMTAyOTEsIDAuMDEwMzAxIiwgXAotICAgICAgICAgICIwLjAwOTcxMiwgMC4wMDk3NzYsIDAuMDEsIDAuMDEwMDk0LCAwLjAxMDE2MywgMC4wMTAyMzEsIDAuMDEwMjUiLCBcCi0gICAgICAgICAgIjAuMDA5NjY1LCAwLjAwOTcxMywgMC4wMDk5MDUsIDAuMDEwMDEsIDAuMDEwMDcyLCAwLjAxMDE3OSwgMC4wMTAyMSIsIFwKLSAgICAgICAgICAiMC4wMDk2MjUsIDAuMDA5NjY1LCAwLjAwOTgzMSwgMC4wMDk5NDQsIDAuMDEwMDM0LCAwLjAxMDEyNiwgMC4wMTAxNjkiLCBcCi0gICAgICAgICAgIjAuMDA5NjczLCAwLjAwOTY3NiwgMC4wMDk3OSwgMC4wMDk4ODksIDAuMDA5OTY4LCAwLjAxMDA4LCAwLjAxMDExNSIsIFwKLSAgICAgICAgICAiMC4wMDk2NCwgMC4wMDk2OTcsIDAuMDA5NzY4LCAwLjAwOTg0NiwgMC4wMDk5MTcsIDAuMDEwMDM4LCAwLjAxMDA4MyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDU5OSwgMC4wMDA2NDMsIDAuMDAwNzQxLCAwLjAwMDc2NiwgMC4wMDA3ODEsIDAuMDAwNzk0LCAwLjAwMDc5OCIsIFwKLSAgICAgICAgICAiMC4wMDAxNDksIDAuMDAwMjM1LCAwLjAwMDUsIDAuMDAwNTk4LCAwLjAwMDY2LCAwLjAwMDcxNiwgMC4wMDA3MzUiLCBcCi0gICAgICAgICAgIjAuMDAwMDY3LCAwLjAwMDAxNSwgMC4wMDAzMDgsIDAuMDAwNDM2LCAwLjAwMDUyOCwgMC4wMDA2MjQsIDAuMDAwNjU5IiwgXAotICAgICAgICAgICIwLjAwMDEzNCwgMC4wMDAwNzUsIDAuMDAwMTgsIDAuMDAwMzE5LCAwLjAwMDQzNCwgMC4wMDA1NTMsIDAuMDAwNTk4IiwgXAotICAgICAgICAgICIwLjAwMDE0NiwgMC4wMDAwOTgsIDAuMDAwMTA5LCAwLjAwMDI0LCAwLjAwMDM1OCwgMC4wMDA0OTUsIDAuMDAwNTQ2IiwgXAotICAgICAgICAgICIwLjAwMDA5NywgMC4wMDAxMDEsIDAuMDAwMDE4LCAwLjAwMDEzNSwgMC4wMDAyNTIsIDAuMDAwNDA0LCAwLjAwMDQ2NCIsIFwKLSAgICAgICAgICAiMC4wMDAxNDEsIDAuMDAwMTMyLCAwLjAwMDAxLCAwLjAwMDA4MywgMC4wMDAxOTYsIDAuMDAwMzQ4LCAwLjAwMDQxMyIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogQ0xLSU5WWDE2ICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoQ0xLSU5WWDE2KSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuNTM0MjI0OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMTEwODQ4OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAxMTA3Njc7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDExMDg0ODsKLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAyLjA0OTM0OwotICAgIGZ1bmN0aW9uIDogIighQSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMzUwOSwgMC4wMTYyOTcsIDAuMDMyMDE1LCAwLjA0NTg1MiwgMC4wNjQyNiwgMC4xMDEwOTQsIDAuMTI0MTc1IiwgXAotICAgICAgICAgICIwLjAyNTE1MiwgMC4wMjc4OTEsIDAuMDQzNDk4LCAwLjA1NzM1NCwgMC4wNzU4NDgsIDAuMTEyNjcyLCAwLjEzNTY5NyIsIFwKLSAgICAgICAgICAiMC4wMzczODUsIDAuMDQxNTE2LCAwLjA1ODM2MywgMC4wNzIyMDksIDAuMDkwNjIyLCAwLjEyNjk2MiwgMC4xNTAyMjciLCBcCi0gICAgICAgICAgIjAuMDQ3MzQ0LCAwLjA1MjQ2OSwgMC4wNzMyOCwgMC4wODcxNCwgMC4xMDU1MzMsIDAuMTQyMzc4LCAwLjE2NTQwNiIsIFwKLSAgICAgICAgICAiMC4wNTU4MTEsIDAuMDYxODc4LCAwLjA4Njg3OCwgMC4xMDIwNzYsIDAuMTIwMTUxLCAwLjE1NzAzNCwgMC4xNzk5ODMiLCBcCi0gICAgICAgICAgIjAuMDY3OTg3LCAwLjA3NTA2MiwgMC4xMDU5MzEsIDAuMTI0NDYyLCAwLjE0NDIwNSwgMC4xODA2NjEsIDAuMjAzNjcxIiwgXAotICAgICAgICAgICIwLjA3NjgyMSwgMC4wODYwODksIDAuMTIwOTk2LCAwLjE0MjI4MywgMC4xNjQzNjcsIDAuMjAxNDc1LCAwLjIyNDM5MyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTgzODMsIDAuMDIzOTU3LCAwLjA1NTc5MSwgMC4wODM4NzIsIDAuMTIxMjYzLCAwLjE5NjIzOCwgMC4yNDMxMTEiLCBcCi0gICAgICAgICAgIjAuMDIxODE3LCAwLjAyNjY5NiwgMC4wNTY1ODgsIDAuMDgzOTE4LCAwLjEyMTMxNSwgMC4xOTYxNzYsIDAuMjQzNTgyIiwgXAotICAgICAgICAgICIwLjAzMDg0NiwgMC4wMzQ3OTMsIDAuMDYxNDA4LCAwLjA4NzE1MiwgMC4xMjI4NDksIDAuMTk2MjczLCAwLjI0MzUwNiIsIFwKLSAgICAgICAgICAiMC4wMzk4NzIsIDAuMDQ0MzA1LCAwLjA2ODMyNSwgMC4wOTI1OTcsIDAuMTI2NzcyLCAwLjE5NzgzMiwgMC4yNDQxNDYiLCBcCi0gICAgICAgICAgIjAuMDQ4NjE4LCAwLjA1MzcwNSwgMC4wNzY4MzIsIDAuMDk5NjIxLCAwLjEzMjU1LCAwLjIwMjE0MywgMC4yNDYwNTUiLCBcCi0gICAgICAgICAgIjAuMDYwNjQ2LCAwLjA2NzU1OCwgMC4wOTIxMjYsIDAuMTEyNjQ4LCAwLjE0MzE5NSwgMC4yMDkzMjUsIDAuMjUyOTUiLCBcCi0gICAgICAgICAgIjAuMDcwOTYsIDAuMDc3MzgsIDAuMTA1NzEyLCAwLjEyNTU4NiwgMC4xNTQyMjMsIDAuMjE4MzE4LCAwLjI1OTk2NCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTU1NTEsIDAuMDE4ODE1LCAwLjAzNzA0NiwgMC4wNTMwMzQsIDAuMDc0MjkzLCAwLjExNjkzMywgMC4xNDM1MDEiLCBcCi0gICAgICAgICAgIjAuMDI3MTU1LCAwLjAzMDM2MywgMC4wNDg1MDgsIDAuMDY0NTYsIDAuMDg1OTU2LCAwLjEyODU5LCAwLjE1NTIwOCIsIFwKLSAgICAgICAgICAiMC4wNDA2MzUsIDAuMDQ0Nzk1LCAwLjA2MzU3LCAwLjA3OTQ4OCwgMC4xMDA3MTQsIDAuMTQzMzA1LCAwLjE2OTgxNyIsIFwKLSAgICAgICAgICAiMC4wNTE2MDIsIDAuMDU2OTU2LCAwLjA3ODQ2MiwgMC4wOTQzMjIsIDAuMTE1NjY3LCAwLjE1ODAwMSwgMC4xODQxMTQiLCBcCi0gICAgICAgICAgIjAuMDYxNDI4LCAwLjA2NzgsIDAuMDkzMTM5LCAwLjEwOTUwNCwgMC4xMzA3NjksIDAuMTczMjMyLCAwLjE5OTg2OCIsIFwKLSAgICAgICAgICAiMC4wNzQ4ODMsIDAuMDgyOTA3LCAwLjExNDIyOCwgMC4xMzMyLCAwLjE1NDY0MywgMC4xOTcxMTIsIDAuMjIzNjg2IiwgXAotICAgICAgICAgICIwLjA4NTQ4NSwgMC4wOTQ0OTgsIDAuMTMwNzQ3LCAwLjE1Mjc4NiwgMC4xNzUzNCwgMC4yMTc4NjksIDAuMjQ0NDk4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyMDM4LCAwLjAyNjc1OCwgMC4wNjI5MTMsIDAuMDk0NTUsIDAuMTM3MTYsIDAuMjIyMDEzLCAwLjI3NTE4NCIsIFwKLSAgICAgICAgICAiMC4wMjI5NTMsIDAuMDI4Njg1LCAwLjA2MzEzNCwgMC4wOTQ2NTYsIDAuMTM2OTEyLCAwLjIyMTc0NywgMC4yNzQ5OSIsIFwKLSAgICAgICAgICAiMC4wMzEwNTIsIDAuMDM1NzU2LCAwLjA2Njg1NywgMC4wOTY4MjEsIDAuMTM4MDAzLCAwLjIyMTkzMiwgMC4yNzUwNTciLCBcCi0gICAgICAgICAgIjAuMDQwNzY3LCAwLjA0NTI5MSwgMC4wNzMyODIsIDAuMTAxNjE4LCAwLjE0MDgxMSwgMC4yMjI5MTUsIDAuMjc1MzAyIiwgXAotICAgICAgICAgICIwLjA0ODk0MywgMC4wNTQ3ODQsIDAuMDgwODUyLCAwLjEwNzQ1OCwgMC4xNDUyODQsIDAuMjI1MjAzLCAwLjI3NzI1NyIsIFwKLSAgICAgICAgICAiMC4wNjI5MTQsIDAuMDY5MTcxLCAwLjA5NTExNSwgMC4xMTk1MjIsIDAuMTU1NzMxLCAwLjIzMjMxMiwgMC4yODIyNDgiLCBcCi0gICAgICAgICAgIjAuMDczNTc1LCAwLjA4MDIwMSwgMC4xMDg4NjIsIDAuMTMxMTEyLCAwLjE2NDg2NiwgMC4yMzk1NDQsIDAuMjg4MTg4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEyOTEyLCAwLjAxMjk2MiwgMC4wMTMwNjEsIDAuMDEzMDg4LCAwLjAxMzEwNSwgMC4wMTMxMTksIDAuMDEzMTI5IiwgXAotICAgICAgICAgICIwLjAxMjQyLCAwLjAxMjUyNywgMC4wMTI3OTQsIDAuMDEyODk0LCAwLjAxMjk2LCAwLjAxMzAyOSwgMC4wMTMwNTIiLCBcCi0gICAgICAgICAgIjAuMDEyMjU0LCAwLjAxMjI5OSwgMC4wMTI1OTEsIDAuMDEyNzMzLCAwLjAxMjgyNSwgMC4wMTI5MTcsIDAuMDEyOTY3IiwgXAotICAgICAgICAgICIwLjAxMjE4OSwgMC4wMTIyNDUsIDAuMDEyNDc1LCAwLjAxMjYwOCwgMC4wMTI3MjQsIDAuMDEyODQ2LCAwLjAxMjg5MSIsIFwKLSAgICAgICAgICAiMC4wMTIyMDMsIDAuMDEyMjIyLCAwLjAxMjM5NywgMC4wMTI1MTgsIDAuMDEyNjQxLCAwLjAxMjc4NiwgMC4wMTI4MzciLCBcCi0gICAgICAgICAgIjAuMDEyMTQyLCAwLjAxMjI0MSwgMC4wMTIzMzcsIDAuMDEyNDM4LCAwLjAxMjU0NywgMC4wMTI3LCAwLjAxMjc2MiIsIFwKLSAgICAgICAgICAiMC4wMTIxOTgsIDAuMDEyMjIyLCAwLjAxMjMyMSwgMC4wMTI0MDEsIDAuMDEyNDk3LCAwLjAxMjYzOSwgMC4wMTI3MDUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDA2MzksIDAuMDAwNzA5LCAwLjAwMDg1NCwgMC4wMDA4OTMsIDAuMDAwOTE2LCAwLjAwMDkzOSwgMC4wMDA5NDUiLCBcCi0gICAgICAgICAgIjAuMDAwMDAxLCAwLjAwMDExOSwgMC4wMDA0NzEsIDAuMDAwNjExLCAwLjAwMDcxLCAwLjAwMDgwNCwgMC4wMDA4MzUiLCBcCi0gICAgICAgICAgIjAuMDAwMjQ5LCAwLjAwMDE2MSwgMC4wMDAxOTUsIDAuMDAwMzcyLCAwLjAwMDUxMywgMC4wMDA2NjIsIDAuMDAwNzE1IiwgXAotICAgICAgICAgICIwLjAwMDMwOSwgMC4wMDAyNDcsIDAuMDAwMDMzLCAwLjAwMDIwOSwgMC4wMDAzNjYsIDAuMDAwNTQ3LCAwLjAwMDYwOSIsIFwKLSAgICAgICAgICAiMC4wMDAzNTgsIDAuMDAwMzEsIDAuMDAwMDY3LCAwLjAwMDA5OSwgMC4wMDAyNTgsIDAuMDAwNDU1LCAwLjAwMDUzMyIsIFwKLSAgICAgICAgICAiMC4wMDAyMzEsIDAuMDAwMjMsIDAuMDAwMTM5LCAwLjAwMDAxNSwgMC4wMDAxMywgMC4wMDAzMzUsIDAuMDAwNDE5IiwgXAotICAgICAgICAgICIwLjAwMDI3NywgMC4wMDAyNzcsIDAuMDAwMTgzLCAwLjAwMDA4MywgMC4wMDAwNDEsIDAuMDAwMjM5LCAwLjAwMDMyOSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBDTEtJTlZYMiAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoQ0xLSU5WWDIpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4wNjY0NDg7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTU0NDI2OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTU0MzQ0OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTU0NDI2OwotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMjY2OTY4OwotICAgIGZ1bmN0aW9uIDogIighQSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0NDY0LCAwLjIyMjc1MywgMC4zNjUzMzgsIDAuNTQzMjMxLCAwLjcyMTYyOSwgMC44OTk0MzUsIDEuMDc3NDIiLCBcCi0gICAgICAgICAgIjAuMDU2MTIxLCAwLjIzNDMzMiwgMC4zNzY3NCwgMC41NTQ5MzUsIDAuNzMzMDAzLCAwLjkxMTM1NCwgMS4wODkxMSIsIFwKLSAgICAgICAgICAiMC4wNzA5OTMsIDAuMjQ4Nzg1LCAwLjM4OTI1NywgMC41NjczMjcsIDAuNzQ1MzM1LCAwLjkyMzkxOSwgMS4xMDE3MyIsIFwKLSAgICAgICAgICAiMC4wODU3NTgsIDAuMjYzNTY5LCAwLjQwNTgxOCwgMC41ODM2MDksIDAuNzYxOTM5LCAwLjk0MDE0MywgMS4xMTc5MyIsIFwKLSAgICAgICAgICAiMC4xMDA5MzIsIDAuMjc3OTU1LCAwLjQyMDIxMSwgMC41OTYwNjcsIDAuNzc0NDc1LCAwLjk1MTk4OCwgMS4xMzA4MiIsIFwKLSAgICAgICAgICAiMC4xMjMxMiwgMC4zMDE3MTksIDAuNDQzNjA3LCAwLjYyMTQxMywgMC43OTYzNjUsIDAuOTc0MzUyLCAxLjE1MzA4IiwgXAotICAgICAgICAgICIwLjE0MDc0OCwgMC4zMjI0MTUsIDAuNDY0MzQ4LCAwLjY0MTg0MywgMC44MTYzNTIsIDAuOTk0MzU2LCAxLjE3MjM0Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4MTU0MSwgMC40NDM2NDMsIDAuNzMzNjczLCAxLjA5NTY2LCAxLjQ1ODI3LCAxLjgxOTc4LCAyLjE4MjI1IiwgXAotICAgICAgICAgICIwLjA4MTc3MywgMC40NDM5NiwgMC43MzMyMTgsIDEuMDk1NDgsIDEuNDU3NTksIDEuODIwNSwgMi4xODIiLCBcCi0gICAgICAgICAgIjAuMDg0OTkxLCAwLjQ0MzY0NywgMC43MzQ5NzQsIDEuMDk4MDYsIDEuNDU3MzYsIDEuODIwMDQsIDIuMTgxODYiLCBcCi0gICAgICAgICAgIjAuMDkwNzIsIDAuNDQzNTYsIDAuNzMzMTUzLCAxLjA5NzgsIDEuNDU4ODcsIDEuODE5NzgsIDIuMTg2OTgiLCBcCi0gICAgICAgICAgIjAuMDk3NjU4LCAwLjQ0MzM2NSwgMC43MzMwODMsIDEuMDk2MzcsIDEuNDU4MTUsIDEuODE5MzgsIDIuMTgyNDEiLCBcCi0gICAgICAgICAgIjAuMTEwODkyLCAwLjQ0NTA0LCAwLjczMzIxNywgMS4wOTgyNywgMS40NjA4MywgMS44MTkwMywgMi4xODI3NiIsIFwKLSAgICAgICAgICAiMC4xMjQwMTksIDAuNDQ5NzA2LCAwLjczNTAyNSwgMS4wOTUyOCwgMS40NTc2MiwgMS44MjQxNCwgMi4xODA5NyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTE1OTUsIDAuMjU3ODg1LCAwLjQyMjk3OCwgMC42Mjg5MTUsIDAuODM1NTAzLCAxLjA0MTMxLCAxLjI0NzQxIiwgXAotICAgICAgICAgICIwLjA2MzI0MiwgMC4yNjk2MDcsIDAuNDM0NDk3LCAwLjY0MDY2LCAwLjg0NjU1MiwgMS4wNTI5NywgMS4yNTg5MyIsIFwKLSAgICAgICAgICAiMC4wNzgyMDMsIDAuMjgyOTk2LCAwLjQ0Nzk2NiwgMC42NTQwNTQsIDAuODYwMTkzLCAxLjA2NjIzLCAxLjI3MjQ1IiwgXAotICAgICAgICAgICIwLjA5MzA3NywgMC4yOTg3OTksIDAuNDYzNzQxLCAwLjY3MDI4LCAwLjg3NTEyMywgMS4wNzc3NSwgMS4yODM5NyIsIFwKLSAgICAgICAgICAiMC4xMDgyODQsIDAuMzEzNjc5LCAwLjQ3ODQ2MSwgMC42ODQ2MSwgMC44OTEzMDcsIDEuMDk3MTcsIDEuMzAzNDEiLCBcCi0gICAgICAgICAgIjAuMTMyMDQ0LCAwLjMzNzU1MiwgMC41MDIwMjMsIDAuNzA4MjA1LCAwLjkxMTA3NiwgMS4xMTY4OSwgMS4zMjM4OCIsIFwKLSAgICAgICAgICAiMC4xNTE1MjQsIDAuMzU4NTMzLCAwLjUyMjk1OSwgMC43Mjg2OCwgMC45MzEwMDYsIDEuMTM3MjYsIDEuMzQzMSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTIxMTYsIDAuNTAyMjA0LCAwLjgzMjAyOCwgMS4yNDI5NSwgMS42NTM4OCwgMi4wNjM0NSwgMi40NzYwMSIsIFwKLSAgICAgICAgICAiMC4wOTE5ODUsIDAuNTAyNTgzLCAwLjgzMDc3NiwgMS4yNDIxLCAxLjY1Njc3LCAyLjA2MzcsIDIuNDcxOTkiLCBcCi0gICAgICAgICAgIjAuMDk0MjE1LCAwLjUwMjg0MSwgMC44MzEzOTcsIDEuMjQxNzMsIDEuNjU0MTUsIDIuMDYxMjEsIDIuNDc1NjMiLCBcCi0gICAgICAgICAgIjAuMDk5MjMzLCAwLjUwMjIxNCwgMC44MzI4NDQsIDEuMjQyNDMsIDEuNjU2NDIsIDIuMDYyODMsIDIuNDgwMDUiLCBcCi0gICAgICAgICAgIjAuMTA1NTExLCAwLjUwMjI2NCwgMC44MzI5MDEsIDEuMjQwNjIsIDEuNjUzMDksIDIuMDY0MzEsIDIuNDc2NzMiLCBcCi0gICAgICAgICAgIjAuMTE3MjAyLCAwLjUwNDQwOSwgMC44MzA0MjEsIDEuMjQyNjYsIDEuNjU1NjksIDIuMDYwNywgMi40NzU2NiIsIFwKLSAgICAgICAgICAiMC4xMjkwMjQsIDAuNTA1MDY3LCAwLjgzMDM5NSwgMS4yNDQxNCwgMS42NTM1NSwgMi4wNjM2OCwgMi40Nzk5NSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTcwMywgMC4wMDE3MDksIDAuMDAxNzA5LCAwLjAwMTcwOSwgMC4wMDE3MSwgMC4wMDE3MSwgMC4wMDE3MSIsIFwKLSAgICAgICAgICAiMC4wMDE2NzksIDAuMDAxNzA0LCAwLjAwMTcwNiwgMC4wMDE3MDgsIDAuMDAxNzA4LCAwLjAwMTcwOSwgMC4wMDE3MDkiLCBcCi0gICAgICAgICAgIjAuMDAxNjU4LCAwLjAwMTY5OCwgMC4wMDE3MDIsIDAuMDAxNzA1LCAwLjAwMTcwNiwgMC4wMDE3MDgsIDAuMDAxNzA3IiwgXAotICAgICAgICAgICIwLjAwMTY0MiwgMC4wMDE2OTMsIDAuMDAxNjk5LCAwLjAwMTcwMiwgMC4wMDE3MDUsIDAuMDAxNzA2LCAwLjAwMTcwNyIsIFwKLSAgICAgICAgICAiMC4wMDE2MjksIDAuMDAxNjg0LCAwLjAwMTY5NiwgMC4wMDE3LCAwLjAwMTcwMywgMC4wMDE3MDUsIDAuMDAxNzA1IiwgXAotICAgICAgICAgICIwLjAwMTYyMiwgMC4wMDE2ODEsIDAuMDAxNjkxLCAwLjAwMTY5NywgMC4wMDE3LCAwLjAwMTcwMiwgMC4wMDE3MDQiLCBcCi0gICAgICAgICAgIjAuMDAxNjE4LCAwLjAwMTY3NiwgMC4wMDE2ODgsIDAuMDAxNjk1LCAwLjAwMTY5OCwgMC4wMDE3MDEsIDAuMDAxNzAyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwMTA1LCAwLjAwMDExNCwgMC4wMDAxMTUsIDAuMDAwMTE1LCAwLjAwMDExNSwgMC4wMDAxMTUsIDAuMDAwMTE2IiwgXAotICAgICAgICAgICIwLjAwMDA3MSwgMC4wMDAxMDcsIDAuMDAwMTEsIDAuMDAwMTEyLCAwLjAwMDExMywgMC4wMDAxMTQsIDAuMDAwMTE0IiwgXAotICAgICAgICAgICIwLjAwMDA0MSwgMC4wMDAwOTcsIDAuMDAwMTA1LCAwLjAwMDEwOCwgMC4wMDAxMTEsIDAuMDAwMTEyLCAwLjAwMDExMyIsIFwKLSAgICAgICAgICAiMC4wMDAwMjEsIDAuMDAwMDksIDAuMDAwMSwgMC4wMDAxMDUsIDAuMDAwMTA4LCAwLjAwMDEwOSwgMC4wMDAxMSIsIFwKLSAgICAgICAgICAiMC4wMDAwMDUsIDAuMDAwMDgyLCAwLjAwMDA5NCwgMC4wMDAxMDEsIDAuMDAwMTA1LCAwLjAwMDEwNywgMC4wMDAxMDkiLCBcCi0gICAgICAgICAgIjAuMDAwMDA3LCAwLjAwMDA3MywgMC4wMDAwODgsIDAuMDAwMDk3LCAwLjAwMDEwMSwgMC4wMDAxMDQsIDAuMDAwMTA2IiwgXAotICAgICAgICAgICIwLjAwMDAxMywgMC4wMDAwNjUsIDAuMDAwMDgyLCAwLjAwMDA5MiwgMC4wMDAwOTcsIDAuMDAwMTAxLCAwLjAwMDEwMyIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogQ0xLSU5WWDIwICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoQ0xLSU5WWDIwKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuNjU2ODUxOwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMTQxNjIzOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAxNDE1Mzg7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDE0MTYyMzsKLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAyLjU3MTc4OwotICAgIGZ1bmN0aW9uIDogIighQSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMjkyOSwgMC4wMzE1MDEsIDAuMDQ2MjY0LCAwLjA2NDY3NiwgMC4wODMxNjcsIDAuMTAxNTcyLCAwLjExOTk4NyIsIFwKLSAgICAgICAgICAiMC4wMjQ0ODcsIDAuMDQzMTY3LCAwLjA1Nzk5MSwgMC4wNzY0NDksIDAuMDk0ODk5LCAwLjExMzM3NCwgMC4xMzE3OTkiLCBcCi0gICAgICAgICAgIjAuMDM2MzM2LCAwLjA1Nzg2NywgMC4wNzI2MSwgMC4wOTA3MzgsIDAuMTA5MTksIDAuMTI3NjE4LCAwLjE0NjA0IiwgXAotICAgICAgICAgICIwLjA0NTk5OSwgMC4wNzI1ODEsIDAuMDg3MzUxLCAwLjEwNTc4MiwgMC4xMjQyODEsIDAuMTQyNDk1LCAwLjE2MDg5OCIsIFwKLSAgICAgICAgICAiMC4wNTQxMDgsIDAuMDg2MTA0LCAwLjEwMjM0NiwgMC4xMjA1MjMsIDAuMTM4NDE0LCAwLjE1NzQzOSwgMC4xNzU1NTMiLCBcCi0gICAgICAgICAgIjAuMDY1NzMsIDAuMTA0OTk4LCAwLjEyNDg5OSwgMC4xNDQ2NjgsIDAuMTYzMDQxLCAwLjE4MTM1MSwgMC4xOTk3NDciLCBcCi0gICAgICAgICAgIjAuMDc0MTA2LCAwLjEyMDA4NSwgMC4xNDI4MjIsIDAuMTY0ODQzLCAwLjE4MzU5NywgMC4yMDE5OSwgMC4yMjAzMzUiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE3MTAxLCAwLjA1NDU5NSwgMC4wODQ2MjQsIDAuMTIyMDE3LCAwLjE1OTU4NSwgMC4xOTcwMTQsIDAuMjM1MDEiLCBcCi0gICAgICAgICAgIjAuMDIwNzY4LCAwLjA1NTM0NSwgMC4wODQ2MTUsIDAuMTIyMDM5LCAwLjE1OTY0LCAwLjE5NywgMC4yMzQ2MzEiLCBcCi0gICAgICAgICAgIjAuMDI5ODY3LCAwLjA2MDIxMiwgMC4wODc3OTIsIDAuMTIzNzIyLCAwLjE1OTg4NCwgMC4xOTcyMTIsIDAuMjM0NjMyIiwgXAotICAgICAgICAgICIwLjAzODY3NSwgMC4wNjc0NTcsIDAuMDkzMzA1LCAwLjEyNzMwNSwgMC4xNjI5MDcsIDAuMTk5MTIxLCAwLjIzNTg0MyIsIFwKLSAgICAgICAgICAiMC4wNDczNjIsIDAuMDc2MDIyLCAwLjEwMDE4NiwgMC4xMzMwODksIDAuMTY3ODI3LCAwLjIwMjUwNiwgMC4yMzg0ODEiLCBcCi0gICAgICAgICAgIjAuMDU5MDI0LCAwLjA5MTUyLCAwLjExMzE5MywgMC4xNDM2MjMsIDAuMTc2Mjc0LCAwLjIxMDIwOSwgMC4yNDQ3NjEiLCBcCi0gICAgICAgICAgIjAuMDcwNDY1LCAwLjEwNDcxNSwgMC4xMjU5MTQsIDAuMTU0NzI2LCAwLjE4NjIwNywgMC4yMTg5MTUsIDAuMjUyMjY0Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxNDgxNywgMC4wMzYyODgsIDAuMDUzMjY2LCAwLjA3NDUxLCAwLjA5NTc5NywgMC4xMTcwMiwgMC4xMzgyOTEiLCBcCi0gICAgICAgICAgIjAuMDI2Mzg4LCAwLjA0Nzk3MiwgMC4wNjUwODYsIDAuMDg2MzM4LCAwLjEwNzYyMywgMC4xMjg4NiwgMC4xNTAxMTUiLCBcCi0gICAgICAgICAgIjAuMDM5NjM4LCAwLjA2MjY3NCwgMC4wNzk0MjYsIDAuMTAwNzIzLCAwLjEyMjAxNiwgMC4xNDMyNTEsIDAuMTY0NDg2IiwgXAotICAgICAgICAgICIwLjA1MDI3OCwgMC4wNzc3NzgsIDAuMDk0NjI2LCAwLjExNTkxMywgMC4xMzcxODgsIDAuMTU4MjQyLCAwLjE3OTQzMiIsIFwKLSAgICAgICAgICAiMC4wNTk2NTEsIDAuMDkyMTg0LCAwLjEwOTczLCAwLjEzMDc4NSwgMC4xNTIwNTksIDAuMTczMzExLCAwLjE5NDIzMyIsIFwKLSAgICAgICAgICAiMC4wNzI4MTIsIDAuMTEzMjE3LCAwLjEzMzM4LCAwLjE1NDc2NCwgMC4xNzU5MDcsIDAuMTk3MTQ1LCAwLjIxODM1OSIsIFwKLSAgICAgICAgICAiMC4wODI5OTksIDAuMTI5NTk4LCAwLjE1MzA2MiwgMC4xNzU1NDYsIDAuMTk3MTkxLCAwLjIxODI0OCwgMC4yMzk0MDciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE4ODc4LCAwLjA2MTA1NiwgMC4wOTQ3ODksIDAuMTM3Mjc0LCAwLjE3OTE3MSwgMC4yMjE3NzQsIDAuMjYzNTk5IiwgXAotICAgICAgICAgICIwLjAyMTYyNywgMC4wNjE0MDMsIDAuMDk1MDE5LCAwLjEzNzQ3LCAwLjE3OTIxLCAwLjIyMTM4OSwgMC4yNjQwMyIsIFwKLSAgICAgICAgICAiMC4wMzAwNDMsIDAuMDY1Mzg5LCAwLjA5NjkyLCAwLjEzNzc2MSwgMC4xNzkyOTUsIDAuMjIyMTY5LCAwLjI2Mzk3OCIsIFwKLSAgICAgICAgICAiMC4wMzkyMjcsIDAuMDcxNjE4LCAwLjEwMTYxNSwgMC4xNDA5ODQsIDAuMTgxNDk3LCAwLjIyMjkxNywgMC4yNjQ2ODUiLCBcCi0gICAgICAgICAgIjAuMDQ4MTg2LCAwLjA3OTUsIDAuMTA3ODIxLCAwLjE0NTQ4LCAwLjE4NDgwNywgMC4yMjUwMzMsIDAuMjY2MzU5IiwgXAotICAgICAgICAgICIwLjA2MTI0MiwgMC4wOTQyMDksIDAuMTE5ODQyLCAwLjE1NTg4NSwgMC4xOTMyMiwgMC4yMzE3MzksIDAuMjcwOTYxIiwgXAotICAgICAgICAgICIwLjA3MTk3OCwgMC4xMDc1NzcsIDAuMTMxMjU4LCAwLjE2NDA5LCAwLjIwMTQxNiwgMC4yMzkxMzksIDAuMjc3NjYxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE3MDU0LCAwLjAxNzI2NiwgMC4wMTczMDQsIDAuMDE3MzIzLCAwLjAxNzMzNSwgMC4wMTczNDQsIDAuMDE3MzQ3IiwgXAotICAgICAgICAgICIwLjAxNjQ0MSwgMC4wMTY5MjgsIDAuMDE3MDYyLCAwLjAxNzE1NiwgMC4wMTcxOTgsIDAuMDE3MjM0LCAwLjAxNzI1MSIsIFwKLSAgICAgICAgICAiMC4wMTYxNzMsIDAuMDE2NjU4LCAwLjAxNjgzOCwgMC4wMTY5NjQsIDAuMDE3MDQzLCAwLjAxNzEwMiwgMC4wMTcxMjgiLCBcCi0gICAgICAgICAgIjAuMDE2MTI4LCAwLjAxNjQ5OSwgMC4wMTY2NzEsIDAuMDE2ODI5LCAwLjAxNjkyNywgMC4wMTcwMTIsIDAuMDE3MDUyIiwgXAotICAgICAgICAgICIwLjAxNjEzNywgMC4wMTY0MSwgMC4wMTY1NzYsIDAuMDE2NzI1LCAwLjAxNjgyNSwgMC4wMTY4ODYsIDAuMDE2OTY1IiwgXAotICAgICAgICAgICIwLjAxNjE2NiwgMC4wMTYzNDEsIDAuMDE2NDg0LCAwLjAxNjYxOSwgMC4wMTY3MTEsIDAuMDE2ODA1LCAwLjAxNjg4MSIsIFwKLSAgICAgICAgICAiMC4wMTYyMjksIDAuMDE2MzEyLCAwLjAxNjM4MiwgMC4wMTY1NCwgMC4wMTY2NDEsIDAuMDE2NzIyLCAwLjAxNjc5MSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDc5NCwgMC4wMDEwODksIDAuMDAxMTQsIDAuMDAxMTcyLCAwLjAwMTE4OSwgMC4wMDExOTksIDAuMDAxMjA3IiwgXAotICAgICAgICAgICIwLjAwMDAxMSwgMC4wMDA2MiwgMC4wMDA4MDQsIDAuMDAwOTI0LCAwLjAwMDk5MywgMC4wMDEwMzgsIDAuMDAxMDY5IiwgXAotICAgICAgICAgICIwLjAwMDMyOSwgMC4wMDAyNDYsIDAuMDAwNDc1LCAwLjAwMDY1OCwgMC4wMDA3NywgMC4wMDA4NDgsIDAuMDAwOTA0IiwgXAotICAgICAgICAgICIwLjAwMDQyNCwgMC4wMDAwMzUsIDAuMDAwMjc0LCAwLjAwMDQ3NSwgMC4wMDA2MDksIDAuMDAwNzAzLCAwLjAwMDc3MyIsIFwKLSAgICAgICAgICAiMC4wMDA0MjMsIDAuMDAwMDgyLCAwLjAwMDEzMiwgMC4wMDAzMywgMC4wMDA0NzQsIDAuMDAwNTgsIDAuMDAwNjYiLCBcCi0gICAgICAgICAgIjAuMDAwMzExLCAwLjAwMDE0LCAwLjAwMDAxNiwgMC4wMDAxODksIDAuMDAwMzI5LCAwLjAwMDQzNiwgMC4wMDA1MjMiLCBcCi0gICAgICAgICAgIjAuMDAwMzI3LCAwLjAwMDIxMSwgMC4wMDAwODEsIDAuMDAwMDcyLCAwLjAwMDIxLCAwLjAwMDMxOCwgMC4wMDA0MDkiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogQ0xLSU5WWDMgKgotICogLS0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKENMS0lOVlgzKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMDk5NjU4MTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAyMTgxNDQ7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAyMTc5OTQ7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAyMTgxNDQ7Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4zOTI4ODsKLSAgICBmdW5jdGlvbiA6ICIoIUEpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzMzQyOSwgMC4yMDI3NjMsIDAuMzcxOTQyLCAwLjQ5MzA3NCwgMC42ODYyMiwgMC44NTYwMSwgMS4wOTc0NyIsIFwKLSAgICAgICAgICAiMC4wNDQ4NjgsIDAuMjE0Mjk5LCAwLjM4MzUyNiwgMC41MDQ2OSwgMC42OTc4NiwgMC44Njc2MjgsIDEuMTA5MDUiLCBcCi0gICAgICAgICAgIjAuMDU5NzgyLCAwLjIyODc1NywgMC4zOTgyMywgMC41MTg4NzksIDAuNzEyNDMyLCAwLjg4MTY4NiwgMS4xMjM3NiIsIFwKLSAgICAgICAgICAiMC4wNzQ2NzYsIDAuMjQzMzI0LCAwLjQxMDY2OSwgMC41MzE1ODksIDAuNzI0OTIxLCAwLjg5NDE3MSwgMS4xMzY0IiwgXAotICAgICAgICAgICIwLjA4ODM5LCAwLjI1NzkzNiwgMC40MjY5MjUsIDAuNTQ3NzgxLCAwLjc0MTI1NCwgMC45MDYwNzIsIDEuMTQ3NTkiLCBcCi0gICAgICAgICAgIjAuMTA3NjI2LCAwLjI4MjA4NCwgMC40NTA4NzUsIDAuNTcxNTI3LCAwLjc2NDcyMiwgMC45MzM3NjUsIDEuMTc1NTMiLCBcCi0gICAgICAgICAgIjAuMTIyNTUyLCAwLjMwMjgwOSwgMC40NzA5OTMsIDAuNTkxNDQ1LCAwLjc4NDc1OSwgMC45NTM5NjEsIDEuMTkwODUiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTg2MDQsIDAuNDAyNDIyLCAwLjc0Nzk3NSwgMC45OTE3MzksIDEuMzg4LCAxLjcyOTUsIDIuMjIwMDMiLCBcCi0gICAgICAgICAgIjAuMDU5MTksIDAuNDAyMzEzLCAwLjc0NzgxMSwgMC45OTE3MDIsIDEuMzg3NzgsIDEuNzI5NDksIDIuMjIwMTEiLCBcCi0gICAgICAgICAgIjAuMDYzODUxLCAwLjQwMjQ3NSwgMC43NDY2MDIsIDAuOTk0MTcxLCAxLjM4NDk0LCAxLjcyODcyLCAyLjIxOTgyIiwgXAotICAgICAgICAgICIwLjA3MDY5NSwgMC40MDMxMjMsIDAuNzQ2MDcxLCAwLjk5MjczMywgMS4zODQ2MSwgMS43Mjg0MiwgMi4yMTk5NCIsIFwKLSAgICAgICAgICAiMC4wNzkyMjEsIDAuNDAzNTI0LCAwLjc0Nzk1LCAwLjk5MTU5OCwgMS4zODU5OSwgMS43Mjg3OCwgMi4yMjE0OSIsIFwKLSAgICAgICAgICAiMC4wOTQ0NzYsIDAuNDA1NjU5LCAwLjc0NjcyNCwgMC45OTQ0NDEsIDEuMzg0NCwgMS43MjgwMiwgMi4yMjAzMiIsIFwKLSAgICAgICAgICAiMC4xMDg1MiwgMC40MDk4NywgMC43NDgyMzQsIDAuOTk0NDA0LCAxLjM4NTg2LCAxLjczMjc3LCAyLjIyMDQiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzg0NzUsIDAuMjMzMTIyLCAwLjQyNzY5NSwgMC41NjY3MDEsIDAuNzg5MDU0LCAwLjk4MzcxMywgMS4yNjIwOSIsIFwKLSAgICAgICAgICAiMC4wNDk5NDMsIDAuMjQ0ODYxLCAwLjQzOTMxMiwgMC41NzgzMTEsIDAuODAwNDczLCAwLjk5NTA2LCAxLjI3MzE3IiwgXAotICAgICAgICAgICIwLjA2NDk1MSwgMC4yNTkzOTMsIDAuNDUzOTMzLCAwLjU5Mjc3MiwgMC44MTUyMTUsIDEuMDA5OTQsIDEuMjg3MzIiLCBcCi0gICAgICAgICAgIjAuMDgwMDI4LCAwLjI3NDA1NywgMC40NjcyMjYsIDAuNjA2MTkxLCAwLjgyODM5NiwgMS4wMjMwNSwgMS4zMDA4MiIsIFwKLSAgICAgICAgICAiMC4wOTQ3MTQsIDAuMjg4OTE0LCAwLjQ4MzE3LCAwLjYyMjMzMiwgMC44NDEyNiwgMS4wMzU2MSwgMS4zMTM2MiIsIFwKLSAgICAgICAgICAiMC4xMTYzMjcsIDAuMzEyNTExLCAwLjUwNjYyNywgMC42NDU2MjYsIDAuODY3OTUsIDEuMDYyNDEsIDEuMzQwMyIsIFwKLSAgICAgICAgICAiMC4xMzMxOTUsIDAuMzM0MzIsIDAuNTI3ODA4LCAwLjY2NDM4OSwgMC44ODY2NjEsIDEuMDgxNDEsIDEuMzU5MDciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjU1NSwgMC40NTI5MzgsIDAuODQwMjAxLCAxLjExNTM3LCAxLjU1ODc3LCAxLjk0MzgyLCAyLjQ5OTYyIiwgXAotICAgICAgICAgICIwLjA2NTc3MywgMC40NTIxMzEsIDAuODM5MTU1LCAxLjExNTI3LCAxLjU2MjUsIDEuOTQzOTEsIDIuNDk5NzMiLCBcCi0gICAgICAgICAgIjAuMDY5MzY3LCAwLjQ1MjU0NiwgMC44Mzg4NzMsIDEuMTE3NzQsIDEuNTU2NDcsIDEuOTQ0OTcsIDIuNTAxODMiLCBcCi0gICAgICAgICAgIjAuMDc1NDQzLCAwLjQ1MjMzNSwgMC44NDEyNzgsIDEuMTE3NDYsIDEuNTYyNDIsIDEuOTQzNjEsIDIuNDk4NyIsIFwKLSAgICAgICAgICAiMC4wODMxMDEsIDAuNDUzNzQ3LCAwLjg0MTgwNywgMS4xMTU2NiwgMS41NTg5LCAxLjk0MzQ1LCAyLjQ5NzAzIiwgXAotICAgICAgICAgICIwLjA5NjkwMiwgMC40NTM3MjEsIDAuODM4NzUzLCAxLjExNDg4LCAxLjU2MTIxLCAxLjk0MzIyLCAyLjQ5ODcxIiwgXAotICAgICAgICAgICIwLjExMDU2NywgMC40NTc0MzEsIDAuODM4OTUyLCAxLjExNjQ0LCAxLjU1NzAyLCAxLjk0NjI0LCAyLjQ5NTQyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI1ODYsIDAuMDAyNTk4LCAwLjAwMjU5OSwgMC4wMDI1OTksIDAuMDAyNiwgMC4wMDI2LCAwLjAwMjYiLCBcCi0gICAgICAgICAgIjAuMDAyNTM3LCAwLjAwMjU5LCAwLjAwMjU5MywgMC4wMDI1OTYsIDAuMDAyNTk3LCAwLjAwMjU5OCwgMC4wMDI1OTkiLCBcCi0gICAgICAgICAgIjAuMDAyNDk5LCAwLjAwMjU4LCAwLjAwMjU4OSwgMC4wMDI1OTIsIDAuMDAyNTk0LCAwLjAwMjU5NiwgMC4wMDI1OTciLCBcCi0gICAgICAgICAgIjAuMDAyNDc2LCAwLjAwMjU3LCAwLjAwMjU4MywgMC4wMDI1OSwgMC4wMDI1OTEsIDAuMDAyNTk0LCAwLjAwMjU5NSIsIFwKLSAgICAgICAgICAiMC4wMDI0NjMsIDAuMDAyNTYsIDAuMDAyNTgsIDAuMDAyNTg0LCAwLjAwMjU4OSwgMC4wMDI1OSwgMC4wMDI1OTYiLCBcCi0gICAgICAgICAgIjAuMDAyNDQ5LCAwLjAwMjU1MSwgMC4wMDI1NzQsIDAuMDAyNTc4LCAwLjAwMjU4NSwgMC4wMDI1ODgsIDAuMDAyNTkxIiwgXAotICAgICAgICAgICIwLjAwMjQ0OCwgMC4wMDI1NDIsIDAuMDAyNTY2LCAwLjAwMjU3MywgMC4wMDI1ODEsIDAuMDAyNTgzLCAwLjAwMjU4OCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwMTYxLCAwLjAwMDE4LCAwLjAwMDE4MiwgMC4wMDAxODIsIDAuMDAwMTgyLCAwLjAwMDE4MywgMC4wMDAxODMiLCBcCi0gICAgICAgICAgIjAuMDAwMDkzLCAwLjAwMDE2NywgMC4wMDAxNzUsIDAuMDAwMTc3LCAwLjAwMDE3OSwgMC4wMDAxOCwgMC4wMDAxODEiLCBcCi0gICAgICAgICAgIjAuMDAwMDQsIDAuMDAwMTUyLCAwLjAwMDE2NiwgMC4wMDAxNzEsIDAuMDAwMTc0LCAwLjAwMDE3NiwgMC4wMDAxNzgiLCBcCi0gICAgICAgICAgIjAuMDAwMDA5LCAwLjAwMDEzOSwgMC4wMDAxNTgsIDAuMDAwMTY0LCAwLjAwMDE3LCAwLjAwMDE3MiwgMC4wMDAxNzUiLCBcCi0gICAgICAgICAgIjAuMDAwMDA5LCAwLjAwMDEyNywgMC4wMDAxNTEsIDAuMDAwMTU5LCAwLjAwMDE2NSwgMC4wMDAxNjksIDAuMDAwMTcyIiwgXAotICAgICAgICAgICIwLjAwMDAyLCAwLjAwMDExMiwgMC4wMDAxNDEsIDAuMDAwMTUxLCAwLjAwMDE2LCAwLjAwMDE2NCwgMC4wMDAxNjkiLCBcCi0gICAgICAgICAgIjAuMDAwMDMxLCAwLjAwMDA5OCwgMC4wMDAxMzEsIDAuMDAwMTQyLCAwLjAwMDE1MywgMC4wMDAxNTksIDAuMDAwMTY0Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IENMS0lOVlg0ICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChDTEtJTlZYNCkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjEzMjg1NzsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAyODQ2MzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDI4NDQ3NTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDI4NDYzOwotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuNTMwNDU7Ci0gICAgZnVuY3Rpb24gOiAiKCFBKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjcwNzksIDAuMTUzNTE5LCAwLjI3OTk5MywgMC4zNzAxNDUsIDAuNTE0ODAxLCAwLjY0MDk5LCAwLjgyMTMxOSIsIFwKLSAgICAgICAgICAiMC4wMzg2ODEsIDAuMTY1MDgzLCAwLjI5MTUzOCwgMC4zODE4MTYsIDAuNTI2MzU5LCAwLjY1MjU1MywgMC44MzM1NTEiLCBcCi0gICAgICAgICAgIjAuMDUzNDUyLCAwLjE3OTQ5NiwgMC4zMDU5LCAwLjM5NDM5NSwgMC41MzkwMDMsIDAuNjY1NDA5LCAwLjg0NTU5OCIsIFwKLSAgICAgICAgICAiMC4wNjc2NTEsIDAuMTk0MTcxLCAwLjMyMDY5LCAwLjQxMDgzNSwgMC41NTUxMTYsIDAuNjgxMTY4LCAwLjg2MjA0NiIsIFwKLSAgICAgICAgICAiMC4wODAzNDUsIDAuMjA5MDA0LCAwLjMzNDk5NiwgMC40MjUwNTYsIDAuNTY3MTc5LCAwLjY5MzU1MywgMC44NzM5NTIiLCBcCi0gICAgICAgICAgIjAuMDk3OTM0LCAwLjIzMzA0LCAwLjM1ODYwNCwgMC40NDg2NDQsIDAuNTkyNzExLCAwLjcxNTkyNywgMC44OTYzNCIsIFwKLSAgICAgICAgICAiMC4xMTE1MjUsIDAuMjUzNjg5LCAwLjM3OTI4OSwgMC40NjkxNzYsIDAuNjEzMzQ3LCAwLjczOTU2NiwgMC45MTYxODIiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDU5MiwgMC4zMDMwMDMsIDAuNTYwMzk0LCAwLjc0Mzg2NiwgMS4wMzgwOCwgMS4yOTQ3NywgMS42NjMxIiwgXAotICAgICAgICAgICIwLjA0Njk2NiwgMC4zMDI5MSwgMC41NjA2NywgMC43NDM3OTksIDEuMDM3NDYsIDEuMjk0ODcsIDEuNjYyNDQiLCBcCi0gICAgICAgICAgIjAuMDUyNjE1LCAwLjMwMjk0MywgMC41NjAxMjIsIDAuNzQzNjE1LCAxLjAzNzYsIDEuMjk0NjksIDEuNjYxOCIsIFwKLSAgICAgICAgICAiMC4wNjA2MTksIDAuMzAzMDAyLCAwLjU2MDEyOCwgMC43NDQzMjcsIDEuMDQwMDIsIDEuMjkyOCwgMS42NjUzMiIsIFwKLSAgICAgICAgICAiMC4wNjk3NjcsIDAuMzA0MjUxLCAwLjU2MDEyMiwgMC43NDU0MDcsIDEuMDM5OTcsIDEuMjk0MywgMS42NjU3NiIsIFwKLSAgICAgICAgICAiMC4wODUzNDEsIDAuMzA4OTE3LCAwLjU2MDM1MSwgMC43NDM3MjEsIDEuMDM3MjUsIDEuMjk0NzYsIDEuNjYyNDMiLCBcCi0gICAgICAgICAgIjAuMDk4NTkzLCAwLjMxNTU2NywgMC41NjE5NCwgMC43NDU2ODEsIDEuMDM4MDUsIDEuMjk0OCwgMS42NjE0MSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzMTIxNywgMC4xNzY5MTMsIDAuMzIyNjA3LCAwLjQyNjYxMywgMC41OTMwMiwgMC43Mzg3ODIsIDAuOTQ2NTU1IiwgXAotICAgICAgICAgICIwLjA0MjcsIDAuMTg4NjE5LCAwLjMzNDI2NywgMC40MzgxOSwgMC42MDQ1MSwgMC43NTAxMDQsIDAuOTU4MjgxIiwgXAotICAgICAgICAgICIwLjA1NzY5MywgMC4yMDMxNjksIDAuMzQ3NzA1LCAwLjQ1MTczLCAwLjYxNzk5OSwgMC43NjM1MDgsIDAuOTcxMzk1IiwgXAotICAgICAgICAgICIwLjA3MjYyMSwgMC4yMTc5ODksIDAuMzYzNDczLCAwLjQ2NzM3OSwgMC42MzM5MDMsIDAuNzc5MzIzLCAwLjk4MzEyOSIsIFwKLSAgICAgICAgICAiMC4wODY1NDYsIDAuMjMyNjY2LCAwLjM3ODIwNCwgMC40ODIxNjUsIDAuNjQ4NTI3LCAwLjc5NDEwNSwgMS4wMDE5NiIsIFwKLSAgICAgICAgICAiMC4xMDU5OTQsIDAuMjU2NzcsIDAuNDAxOTQ2LCAwLjUwNTY0NiwgMC42NzE5MzcsIDAuODE0MTE1LCAxLjAyMTk4IiwgXAotICAgICAgICAgICIwLjEyMTQ3NiwgMC4yNzgxNzksIDAuNDIyODU2LCAwLjUyNjYyMSwgMC42OTI3OTQsIDAuODM4MDg2LCAxLjA0MjEzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDUxMjk0LCAwLjM0MTQzOSwgMC42MzE2OTIsIDAuODM3NTY0LCAxLjE2ODY1LCAxLjQ1OTUsIDEuODczNTQiLCBcCi0gICAgICAgICAgIjAuMDUyMDUsIDAuMzQxNzIyLCAwLjYzMTc1NiwgMC44MzcyOSwgMS4xNjg2OSwgMS40NTgxNSwgMS44NzMyNyIsIFwKLSAgICAgICAgICAiMC4wNTY2NzYsIDAuMzQxMTU5LCAwLjYzMTU5NCwgMC44Mzg1MDYsIDEuMTY4MjEsIDEuNDU5NjIsIDEuODc4NzciLCBcCi0gICAgICAgICAgIjAuMDYzNzQyLCAwLjM0MTAxMiwgMC42MzE3MDMsIDAuODM4NDU4LCAxLjE3MTIzLCAxLjQ1ODAyLCAxLjg3NzgiLCBcCi0gICAgICAgICAgIjAuMDcxODg2LCAwLjM0MTg5OCwgMC42MzEwMTMsIDAuODM4NTU1LCAxLjE2ODczLCAxLjQ2MzUxLCAxLjg3ODI3IiwgXAotICAgICAgICAgICIwLjA4NzQwNywgMC4zNDUyNTYsIDAuNjMwOTY2LCAwLjgzNzYxNCwgMS4xNjg0NywgMS40NTkxMSwgMS44NzE3MiIsIFwKLSAgICAgICAgICAiMC4xMDEyNywgMC4zNTA1NywgMC42MzMzODMsIDAuODM4NzUyLCAxLjE2ODc1LCAxLjQ1ODA1LCAxLjg3Mjk5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDMzMzYsIDAuMDAzMzU3LCAwLjAwMzM1OCwgMC4wMDMzNTgsIDAuMDAzMzU5LCAwLjAwMzM1OCwgMC4wMDMzNTkiLCBcCi0gICAgICAgICAgIjAuMDAzMjYsIDAuMDAzMzQxLCAwLjAwMzM1LCAwLjAwMzM1MiwgMC4wMDMzNTUsIDAuMDAzMzU2LCAwLjAwMzM1NyIsIFwKLSAgICAgICAgICAiMC4wMDMyMDYsIDAuMDAzMzIzLCAwLjAwMzMzOSwgMC4wMDMzMzgsIDAuMDAzMzQyLCAwLjAwMzM0NSwgMC4wMDMzNTMiLCBcCi0gICAgICAgICAgIjAuMDAzMTc3LCAwLjAwMzMwNywgMC4wMDMzMzEsIDAuMDAzMzM3LCAwLjAwMzM0NCwgMC4wMDMzNDgsIDAuMDAzMzQ3IiwgXAotICAgICAgICAgICIwLjAwMzE2MSwgMC4wMDMyOTcsIDAuMDAzMzIzLCAwLjAwMzMzMiwgMC4wMDMzNCwgMC4wMDMzNDQsIDAuMDAzMzQ1IiwgXAotICAgICAgICAgICIwLjAwMzE0OCwgMC4wMDMyOCwgMC4wMDMzMTEsIDAuMDAzMzIyLCAwLjAwMzMzMiwgMC4wMDMzMzcsIDAuMDAzMzQyIiwgXAotICAgICAgICAgICIwLjAwMzE0OSwgMC4wMDMyNjYsIDAuMDAzMzAyLCAwLjAwMzMxNCwgMC4wMDMzMjYsIDAuMDAzMzM0LCAwLjAwMzMzOCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwMjQ0LCAwLjAwMDI3NSwgMC4wMDAyNzcsIDAuMDAwMjc4LCAwLjAwMDI3OSwgMC4wMDAyNzksIDAuMDAwMjc5IiwgXAotICAgICAgICAgICIwLjAwMDEzNiwgMC4wMDAyNTIsIDAuMDAwMjY1LCAwLjAwMDI2OSwgMC4wMDAyNzIsIDAuMDAwMjc0LCAwLjAwMDI3NSIsIFwKLSAgICAgICAgICAiMC4wMDAwNjUsIDAuMDAwMjI4LCAwLjAwMDI1LCAwLjAwMDI1OCwgMC4wMDAyNjQsIDAuMDAwMjY4LCAwLjAwMDI3MSIsIFwKLSAgICAgICAgICAiMC4wMDAwMjksIDAuMDAwMjA3LCAwLjAwMDIzOCwgMC4wMDAyNDgsIDAuMDAwMjU3LCAwLjAwMDI2MiwgMC4wMDAyNjciLCBcCi0gICAgICAgICAgIjAuMDAwMDAyLCAwLjAwMDE4NSwgMC4wMDAyMjQsIDAuMDAwMjM3LCAwLjAwMDI0OSwgMC4wMDAyNTUsIDAuMDAwMjYxIiwgXAotICAgICAgICAgICIwLjAwMDAwNiwgMC4wMDAxNjMsIDAuMDAwMjA5LCAwLjAwMDIyNCwgMC4wMDAyMzksIDAuMDAwMjQ2LCAwLjAwMDI1MyIsIFwKLSAgICAgICAgICAiMC4wMDAwMDcsIDAuMDAwMTQ1LCAwLjAwMDE5NSwgMC4wMDAyMTMsIDAuMDAwMjMsIDAuMDAwMjM5LCAwLjAwMDI0NyIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBDTEtJTlZYNiAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoQ0xLSU5WWDYpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4xOTY4MDk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwNDIzNDYxOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwNDIzMjgyOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwNDIzNDYxOwotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuNzY1OTczOwotICAgIGZ1bmN0aW9uIDogIighQSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDIxNDcyLCAwLjEwNjgzOSwgMC4xOTIyMDEsIDAuMjUzMDI3LCAwLjM1MDQzNCwgMC40MzU4NTgsIDAuNTU3ODUzIiwgXAotICAgICAgICAgICIwLjAzMzExNywgMC4xMTg2MDQsIDAuMjAzODg2LCAwLjI2NDc3OCwgMC4zNjIzMywgMC40NDc3NDEsIDAuNTY5NTM2IiwgXAotICAgICAgICAgICIwLjA0NzczNCwgMC4xMzI4NzgsIDAuMjE4MjMzLCAwLjI3OTA3OCwgMC4zNzY1ODEsIDAuNDYxNzQxLCAwLjU4Mzk1OSIsIFwKLSAgICAgICAgICAiMC4wNjA2NjgsIDAuMTQ3Nzc2LCAwLjIzMjg1NywgMC4yOTM2NDEsIDAuMzg5NjgxLCAwLjQ3NDg1NCwgMC41OTcwNzgiLCBcCi0gICAgICAgICAgIjAuMDcxNTI2LCAwLjE2Mjc1NywgMC4yNDc0ODEsIDAuMzA4MjMsIDAuNDA1NTM1LCAwLjQ5MDc0NSwgMC42MTI3NTMiLCBcCi0gICAgICAgICAgIjAuMDg3NDM5LCAwLjE4NjY0NiwgMC4yNzE3MTgsIDAuMzMyNTkxLCAwLjQyOTk4OSwgMC41MTUyMjQsIDAuNjM3MTk1IiwgXAotICAgICAgICAgICIwLjA5OTU0NCwgMC4yMDcyNCwgMC4yOTI0OCwgMC4zNTI3NywgMC40NDk4OTgsIDAuNTM0NzMzLCAwLjY1NDE2Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM0MjksIDAuMjA3NTExLCAwLjM4MDksIDAuNTA0NTI2LCAwLjcwMjI4NCwgMC44NzU3NTYsIDEuMTIzNzYiLCBcCi0gICAgICAgICAgIjAuMDM1OTQsIDAuMjA3NDg0LCAwLjM4MTYyMywgMC41MDQ0MTIsIDAuNzAyNTA2LCAwLjg3NTU4OSwgMS4xMjMyOCIsIFwKLSAgICAgICAgICAiMC4wNDI3MjcsIDAuMjA4MDE3LCAwLjM4MDcwNiwgMC41MDU2NDIsIDAuNzAzMTA0LCAwLjg3ODA0NiwgMS4xMjM3NiIsIFwKLSAgICAgICAgICAiMC4wNTE1NzksIDAuMjA4ODM0LCAwLjM4MDczOSwgMC41MDQ1MDYsIDAuNzAyNTA3LCAwLjg3NTYyLCAxLjEyMzU1IiwgXAotICAgICAgICAgICIwLjA2MTU1OSwgMC4yMTI0MDMsIDAuMzgxODgyLCAwLjUwNTUyMiwgMC43MDIzOTYsIDAuODc3ODUyLCAxLjEyMzMyIiwgXAotICAgICAgICAgICIwLjA3NjExNCwgMC4yMTk3NTgsIDAuMzgzNjg2LCAwLjUwNDk1LCAwLjcwNDMwNCwgMC44Nzc3ODcsIDEuMTIzMiIsIFwKLSAgICAgICAgICAiMC4wODgwODgsIDAuMjI3ODkzLCAwLjM4ODM0OSwgMC41MDc5MTIsIDAuNzAyOTU5LCAwLjg3ODA0NCwgMS4xMjMzNSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyNDgxOSwgMC4xMjQxNTgsIDAuMjIzMzQ0LCAwLjI5NDM5OSwgMC40MDc2NDEsIDAuNTA2ODg3LCAwLjY0ODY1OSIsIFwKLSAgICAgICAgICAiMC4wMzY1NzEsIDAuMTM1OTA0LCAwLjIzNTExOCwgMC4zMDYwMzUsIDAuNDE5Mzg0LCAwLjUxODYxNCwgMC42NjAyNDYiLCBcCi0gICAgICAgICAgIjAuMDUxNDQ4LCAwLjE1MDQ3OSwgMC4yNDk3MDMsIDAuMzIwNTczLCAwLjQzMzk3NywgMC41MzMzLCAwLjY3NDkxOSIsIFwKLSAgICAgICAgICAiMC4wNjU1MjEsIDAuMTY1NDg2LCAwLjI2MzQzMiwgMC4zMzQyOTYsIDAuNDQ3Njg3LCAwLjU0Njk4OCwgMC42ODg3MTIiLCBcCi0gICAgICAgICAgIjAuMDc3NzY0LCAwLjE4MDY0OSwgMC4yNzkzMiwgMC4zNTAwODcsIDAuNDYzMjY1LCAwLjU2MDE3MSwgMC43MDE4NjkiLCBcCi0gICAgICAgICAgIjAuMDk1MzU1LCAwLjIwNDUzMiwgMC4zMDI5OTEsIDAuMzczNTI4LCAwLjQ4Njc5NiwgMC41ODU5OTcsIDAuNzI3OTI4IiwgXAotICAgICAgICAgICIwLjEwOTA4NCwgMC4yMjU2MzQsIDAuMzIzNTI5LCAwLjM5NDMyNywgMC41MDc1MTQsIDAuNjA2NjMzLCAwLjc0ODcxOCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzODQ1NiwgMC4yMzU1OTIsIDAuNDMxNTU3LCAwLjU3Mjk2NSwgMC43OTg0NTEsIDAuOTk2MDM4LCAxLjI3NTAzIiwgXAotICAgICAgICAgICIwLjAzOTU0MiwgMC4yMzUxNzgsIDAuNDMzMjcsIDAuNTcyMjU1LCAwLjc5Njg3NSwgMC45OTQ5NTYsIDEuMjc1MDQiLCBcCi0gICAgICAgICAgIjAuMDQ1MjQsIDAuMjM1MTU0LCAwLjQzMzI1OCwgMC41NzQyMzksIDAuNzk2ODg0LCAwLjk5NTIyNSwgMS4yNzUwMSIsIFwKLSAgICAgICAgICAiMC4wNTMxOTEsIDAuMjM1NzgzLCAwLjQzMzI3MiwgMC41NzQyMjgsIDAuNzk5ODEsIDAuOTk0NzM2LCAxLjI3NTUxIiwgXAotICAgICAgICAgICIwLjA2Mjk5NywgMC4yMzc3MDUsIDAuNDMzMjgzLCAwLjU3MjYyLCAwLjc5OTgwNywgMC45OTQwNTQsIDEuMjc2MzIiLCBcCi0gICAgICAgICAgIjAuMDc4Njg1LCAwLjI0NDUzMiwgMC40MzM2MTIsIDAuNTcyNTEyLCAwLjc5OTM5NywgMC45OTYzMzYsIDEuMjc0NTgiLCBcCi0gICAgICAgICAgIjAuMDkwNjM5LCAwLjI1MTU3NCwgMC40MzgwMDUsIDAuNTczODc5LCAwLjc5NzM4NywgMC45OTM1MDMsIDEuMjc1MDEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNTE0NSwgMC4wMDUxODcsIDAuMDA1MTkxLCAwLjAwNTE5MiwgMC4wMDUxOTMsIDAuMDA1MTk0LCAwLjAwNTE5NCIsIFwKLSAgICAgICAgICAiMC4wMDUwMDgsIDAuMDA1MTU1LCAwLjAwNTE3MywgMC4wMDUxNzksIDAuMDA1MTg0LCAwLjAwNTE4NiwgMC4wMDUxODgiLCBcCi0gICAgICAgICAgIjAuMDA0OTIsIDAuMDA1MTA5LCAwLjAwNTE1MSwgMC4wMDUxNjUsIDAuMDA1MTcxLCAwLjAwNTE3NiwgMC4wMDUxNzkiLCBcCi0gICAgICAgICAgIjAuMDA0ODgyLCAwLjAwNTA4OCwgMC4wMDUxMjIsIDAuMDA1MTQ2LCAwLjAwNTE2LCAwLjAwNTE2NywgMC4wMDUxNzMiLCBcCi0gICAgICAgICAgIjAuMDA0ODU0LCAwLjAwNTA2MiwgMC4wMDUxMSwgMC4wMDUxMzIsIDAuMDA1MTQ5LCAwLjAwNTE1OCwgMC4wMDUxNjQiLCBcCi0gICAgICAgICAgIjAuMDA0ODYsIDAuMDA1MDI1LCAwLjAwNTA5NCwgMC4wMDUxMTEsIDAuMDA1MTM1LCAwLjAwNTEzOSwgMC4wMDUxNTYiLCBcCi0gICAgICAgICAgIjAuMDA0ODQ5LCAwLjAwNTAwNywgMC4wMDUwNywgMC4wMDUxLCAwLjAwNTEyMSwgMC4wMDUxMzUsIDAuMDA1MTQ2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDAyODQsIDAuMDAwMzQ3LCAwLjAwMDM1MiwgMC4wMDAzNTUsIDAuMDAwMzU2LCAwLjAwMDM1NywgMC4wMDAzNTciLCBcCi0gICAgICAgICAgIjAuMDAwMTAxLCAwLjAwMDI5OSwgMC4wMDAzMjYsIDAuMDAwMzM0LCAwLjAwMDM0MSwgMC4wMDAzNDUsIDAuMDAwMzQ5IiwgXAotICAgICAgICAgICIwLjAwMDAxNywgMC4wMDAyNDYsIDAuMDAwMjk0LCAwLjAwMDMxLCAwLjAwMDMyNCwgMC4wMDAzMzEsIDAuMDAwMzM3IiwgXAotICAgICAgICAgICIwLjAwMDA3MSwgMC4wMDAyMDMsIDAuMDAwMjY0LCAwLjAwMDI4NiwgMC4wMDAzMDYsIDAuMDAwMzE2LCAwLjAwMDMyNiIsIFwKLSAgICAgICAgICAiMC4wMDAwOTQsIDAuMDAwMTY4LCAwLjAwMDI0MSwgMC4wMDAyNjYsIDAuMDAwMjkxLCAwLjAwMDMwMiwgMC4wMDAzMTUiLCBcCi0gICAgICAgICAgIjAuMDAwMDkyLCAwLjAwMDEyNCwgMC4wMDAyMDgsIDAuMDAwMjQsIDAuMDAwMjY5LCAwLjAwMDI4NSwgMC4wMDAzMDEiLCBcCi0gICAgICAgICAgIjAuMDAwMTA4LCAwLjAwMDA4OSwgMC4wMDAxNzYsIDAuMDAwMjEzLCAwLjAwMDI0OCwgMC4wMDAyNjgsIDAuMDAwMjg3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBDTEtNWDJYMTIgKgotICogLS0tLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChDTEtNWDJYMTIpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC40OTUxMTU7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDc1NjAwODsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA3NTMxMzg7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNzU2MDA4OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDIyNSwgMC4wMDAyMywgMC4wMDAyMzIsIDAuMDAwMjMyLCAwLjAwMDIzMywgMC4wMDAyMzMsIDAuMDAwMjM0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjUsIDAuMDAwMjQ1LCAwLjAwMDI0NCwgMC4wMDAyNDQsIDAuMDAwMjQ0LCAwLjAwMDI0NCwgMC4wMDAyNDMiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY4ODI5ODsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2ODUzODE7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjg4Mjk4OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDIzMywgMC4wMDAyMzUsIDAuMDAwMjM2LCAwLjAwMDIzNywgMC4wMDAyMzcsIDAuMDAwMjM3LCAwLjAwMDIzOCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDI0NiwgMC4wMDAyNDQsIDAuMDAwMjQ0LCAwLjAwMDI0NCwgMC4wMDAyNDMsIDAuMDAwMjQzLCAwLjAwMDI0MyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUzApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTU4MDU4OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTU3OTc7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNTgwNTg7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjU5LCAwLjAwMDIxOSwgMC4wMDAyMDQsIDAuMDAwMTk4LCAwLjAwMDE5OCwgMC4wMDAxOTUsIDAuMDAwMTk5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxOTM1LCAwLjAwMTkwOCwgMC4wMDE4OTYsIDAuMDAxODksIDAuMDAxODg4LCAwLjAwMTg4NywgMC4wMDE4ODgiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMS41NTQ2MjsKLSAgICBmdW5jdGlvbiA6ICIoKFMwIEIpICsgKCFTMCBBKSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI4OTA3MSwgMC4zMDA4MDMsIDAuMzQ2NzUzLCAwLjM3NjY4NSwgMC40MTA2NDEsIDAuNDY5NDAxLCAwLjUwMzI1NSIsIFwKLSAgICAgICAgICAiMC4zMDAzNTYsIDAuMzEyMjk4LCAwLjM1ODE5OCwgMC4zODc5ODEsIDAuNDIxOTY0LCAwLjQ4MDg0MywgMC41MTQ2NDUiLCBcCi0gICAgICAgICAgIjAuMzEzNzk0LCAwLjMyNTU2NCwgMC4zNzE1NTMsIDAuNDAxNDkzLCAwLjQzNTU2MSwgMC40OTQ0OTYsIDAuNTI3NzM5IiwgXAotICAgICAgICAgICIwLjMyNzQ1NSwgMC4zMzkyMjEsIDAuMzg1MjUyLCAwLjQxNTEwNywgMC40NDkwMTMsIDAuNTA3OTg1LCAwLjU0MTc2NiIsIFwKLSAgICAgICAgICAiMC4zNDExODcsIDAuMzUyOTE2LCAwLjM5ODc5MSwgMC40Mjg3MTUsIDAuNDYyODQ1LCAwLjUyMTMwNiwgMC41NTQ5MzIiLCBcCi0gICAgICAgICAgIjAuMzYyNjM4LCAwLjM3NDU3NSwgMC40MjAzMTEsIDAuNDUwMjU2LCAwLjQ4Mzk4OSwgMC41NDI2NywgMC41NzY1MTciLCBcCi0gICAgICAgICAgIjAuMzgxOTM2LCAwLjM5MzM5MiwgMC40MzkzNjQsIDAuNDY5MjU2LCAwLjUwMzM0NywgMC41NjE4ODUsIDAuNTk1NTUiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTA4MzA0LCAwLjExNzYwMiwgMC4xNjE4MDgsIDAuMTk2MzcxLCAwLjI0MTIyNywgMC4zMzAyMTgsIDAuMzg2NTAxIiwgXAotICAgICAgICAgICIwLjEwODIzNywgMC4xMTczNTYsIDAuMTYxNjAxLCAwLjE5NjE1NywgMC4yNDEyMjEsIDAuMzMwMjczLCAwLjM4NjQxNyIsIFwKLSAgICAgICAgICAiMC4xMDg0NDcsIDAuMTE3NjU2LCAwLjE2MTU3OCwgMC4xOTY0MzcsIDAuMjQxNDk5LCAwLjMzMDQyMywgMC4zODYzNjciLCBcCi0gICAgICAgICAgIjAuMTA4MTU4LCAwLjExNzQzOCwgMC4xNjE1NzMsIDAuMTk2MTIzLCAwLjI0MTEyNCwgMC4zMzAyMjcsIDAuMzg2NDA1IiwgXAotICAgICAgICAgICIwLjEwNzczMywgMC4xMTc0MDgsIDAuMTYxMzY3LCAwLjE5NjM1NCwgMC4yNDE1ODIsIDAuMzI5ODg3LCAwLjM4NjEyNSIsIFwKLSAgICAgICAgICAiMC4xMDgzNDgsIDAuMTE3NTgyLCAwLjE2MTQ3NSwgMC4xOTY1NzMsIDAuMjQxMjg2LCAwLjMzMDA4LCAwLjM4NjI1OSIsIFwKLSAgICAgICAgICAiMC4xMDczOTYsIDAuMTE2OTY2LCAwLjE2MTQzNCwgMC4xOTU4MzcsIDAuMjQxMzg5LCAwLjMyOTc3NiwgMC4zODYyMzEiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjgwMDcsIDAuMjkxMzMxLCAwLjMzODA4NCwgMC4zNjk1MzYsIDAuNDA2MzIsIDAuNDcxNDY2LCAwLjUwOTQwNCIsIFwKLSAgICAgICAgICAiMC4yOTE1MjksIDAuMzAzMDU3LCAwLjM0OTYzOSwgMC4zODEwMzcsIDAuNDE3NzYxLCAwLjQ4MjkzMiwgMC41MjA3MDkiLCBcCi0gICAgICAgICAgIjAuMzA0NjI2LCAwLjMxNjExOSwgMC4zNjI3MTIsIDAuMzk0NTMzLCAwLjQzMDgxOSwgMC40OTU4NzksIDAuNTMzOTA1IiwgXAotICAgICAgICAgICIwLjMxNzM2NiwgMC4zMjg2MTYsIDAuMzc1MTUxLCAwLjQwNjgyOSwgMC40NDM0NDQsIDAuNTA4NTU3LCAwLjU0NjQ4MyIsIFwKLSAgICAgICAgICAiMC4zMjk1NiwgMC4zNDA5NjEsIDAuMzg3NzgyLCAwLjQxOTAwMywgMC40NTU3NjUsIDAuNTIwOTAyLCAwLjU1ODU4NyIsIFwKLSAgICAgICAgICAiMC4zNDk1NzUsIDAuMzYwNzYyLCAwLjQwNzQ1NiwgMC40MzkyMDQsIDAuNDc1NTI5LCAwLjU0MDgwOCwgMC41Nzg0OTIiLCBcCi0gICAgICAgICAgIjAuMzY2NzYxLCAwLjM3ODEyMywgMC40MjUwODYsIDAuNDU2MTgsIDAuNDkzMTI5LCAwLjU1Nzc2MiwgMC41OTU4OTIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTAzNDI2LCAwLjExNDE1LCAwLjE2Mjk2NiwgMC4yMDI1MDUsIDAuMjU0MjE1LCAwLjM1NzQ0OSwgMC40MjIxNTIiLCBcCi0gICAgICAgICAgIjAuMTAzMjk1LCAwLjExMzI1NywgMC4xNjI3NTgsIDAuMjAyMjI5LCAwLjI1Mzk4NSwgMC4zNTcyMSwgMC40MjE4NzUiLCBcCi0gICAgICAgICAgIjAuMTAzMjQsIDAuMTEzMzA5LCAwLjE2MjY2NiwgMC4yMDI0ODMsIDAuMjUzODgzLCAwLjM1Njk4MywgMC40MjE5NDMiLCBcCi0gICAgICAgICAgIjAuMTAyNjUxLCAwLjExMzk0OCwgMC4xNjI1MzMsIDAuMjAyNDc5LCAwLjI1NDE5OSwgMC4zNTcyNzQsIDAuNDIyMTAxIiwgXAotICAgICAgICAgICIwLjEwMjYxNiwgMC4xMTI3OTUsIDAuMTYyODAyLCAwLjIwMjIzMSwgMC4yNTQxODcsIDAuMzU3MTQ4LCAwLjQyMTgzNSIsIFwKLSAgICAgICAgICAiMC4xMDI1MDQsIDAuMTEzNDM2LCAwLjE2MjM3MSwgMC4yMDI0MjksIDAuMjUzODY3LCAwLjM1NzI2NCwgMC40MjE4OTQiLCBcCi0gICAgICAgICAgIjAuMTAyODQ4LCAwLjExMzA2MywgMC4xNjI2NTYsIDAuMjAyMTM2LCAwLjI1NDEwOSwgMC4zNTY5OTQsIDAuNDIyMTYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjkxNjc4LCAwLjMwMzE0NiwgMC4zNDkxNjQsIDAuMzc5MTg5LCAwLjQxMzEyMywgMC40NzIxNjUsIDAuNTA1OTc2IiwgXAotICAgICAgICAgICIwLjMwMzA5OSwgMC4zMTQ2MjcsIDAuMzYwNzY1LCAwLjM5MDc1LCAwLjQyNDY1OSwgMC40ODM2MzEsIDAuNTE3NTU4IiwgXAotICAgICAgICAgICIwLjMxNjk0OCwgMC4zMjg3NzYsIDAuMzc0NzU0LCAwLjQwNDYxNywgMC40Mzg2MjQsIDAuNDk3Nzc0LCAwLjUzMTM5MiIsIFwKLSAgICAgICAgICAiMC4zMzA2MTEsIDAuMzQyNDc4LCAwLjM4ODMzMywgMC40MTgxOTIsIDAuNDUyMjA3LCAwLjUxMDg3MywgMC41NDQ2MDMiLCBcCi0gICAgICAgICAgIjAuMzQ0MTI5LCAwLjM1NTg3OSwgMC40MDIwNzcsIDAuNDMxNzc3LCAwLjQ2NTczMSwgMC41MjQ2MjksIDAuNTU4MzY1IiwgXAotICAgICAgICAgICIwLjM2NjMyMiwgMC4zNzc4NDksIDAuNDIzODQxLCAwLjQ1MzgzNCwgMC40ODczNzIsIDAuNTQ2MzA3LCAwLjU4MDA2NCIsIFwKLSAgICAgICAgICAiMC4zODUwNDQsIDAuMzk2MzAxLCAwLjQ0MjQyNywgMC40NzI0MjgsIDAuNTA2NjM5LCAwLjU2NTAzNCwgMC41OTg3NjgiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTA5MjM0LCAwLjExODIwMSwgMC4xNjIxMjQsIDAuMTk2NTU5LCAwLjI0MTgzMiwgMC4zMzA5LCAwLjM4Njc0MSIsIFwKLSAgICAgICAgICAiMC4xMDg5MzEsIDAuMTE4MDE4LCAwLjE2MjIwOCwgMC4xOTY2NiwgMC4yNDE1NjYsIDAuMzMwNzAyLCAwLjM4Njg2NyIsIFwKLSAgICAgICAgICAiMC4xMDgzNzUsIDAuMTE3NTEyLCAwLjE2MTY2MywgMC4xOTY1MDcsIDAuMjQxNTU4LCAwLjMzMDUzNywgMC4zODY3OTQiLCBcCi0gICAgICAgICAgIjAuMTA4MzE3LCAwLjExNzc1MywgMC4xNjE2NTEsIDAuMTk2NTgxLCAwLjI0MTQxOSwgMC4zMzA1NTgsIDAuMzg2NTUzIiwgXAotICAgICAgICAgICIwLjEwODQ2MSwgMC4xMTc2ODksIDAuMTYyMTYyLCAwLjE5NjY5LCAwLjI0MTI1OSwgMC4zMzA1MTUsIDAuMzg2NjY3IiwgXAotICAgICAgICAgICIwLjEwNzM0MywgMC4xMTc3MjgsIDAuMTYxNjcsIDAuMTk2NzM2LCAwLjI0MTIwNiwgMC4zMzA0NzQsIDAuMzg2NTQiLCBcCi0gICAgICAgICAgIjAuMTA3NzU1LCAwLjExNzM1LCAwLjE2MTI0MywgMC4xOTY0NCwgMC4yNDE2MjEsIDAuMzMwMzI0LCAwLjM4NjMzMyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yODM4MzksIDAuMjk1MzEyLCAwLjM0MjQzOCwgMC4zNzMzNzcsIDAuNDEwNjEzLCAwLjQ3NTM1NywgMC41MTM1MSIsIFwKLSAgICAgICAgICAiMC4yOTUzODIsIDAuMzA3MDMsIDAuMzUzNjEyLCAwLjM4NTQ5NCwgMC40MjE4NzcsIDAuNDg3MDI0LCAwLjUyNTEwMyIsIFwKLSAgICAgICAgICAiMC4zMDg2MTYsIDAuMzIwMDkxLCAwLjM2NjgwOCwgMC4zOTgzOCwgMC40MzUwOTksIDAuNTAwMzYyLCAwLjUzODE1MyIsIFwKLSAgICAgICAgICAiMC4zMjEyODgsIDAuMzMyNTU2LCAwLjM3OTM5OCwgMC40MTA4NDQsIDAuNDQ3ODQ3LCAwLjUxMjc3OCwgMC41NTA3NSIsIFwKLSAgICAgICAgICAiMC4zMzM1MTksIDAuMzQ1MDMxLCAwLjM5MTcyLCAwLjQyMzU4OSwgMC40NTk5OCwgMC41MjUwOTIsIDAuNTYzMTYzIiwgXAotICAgICAgICAgICIwLjM1MzQ2MywgMC4zNjQ4NzIsIDAuNDExNDkzLCAwLjQ0MjkxNiwgMC40ODAwMDMsIDAuNTQ0ODMsIDAuNTgyODc3IiwgXAotICAgICAgICAgICIwLjM3MDUzMiwgMC4zODE5MTcsIDAuNDI4ODk4LCAwLjQ2MDI5OSwgMC40OTY5MTEsIDAuNTYyMjI2LCAwLjYwMDAwNSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDMwOTcsIDAuMTEzMzIyLCAwLjE2MzM0OSwgMC4yMDI5MDEsIDAuMjU0ODY3LCAwLjM1NzQ5NCwgMC40MjI2MDQiLCBcCi0gICAgICAgICAgIjAuMTAzNjU3LCAwLjExMzM4LCAwLjE2MzQwNywgMC4yMDMyNjgsIDAuMjU0NzU0LCAwLjM1NzYyLCAwLjQyMjU2IiwgXAotICAgICAgICAgICIwLjEwMzI2MiwgMC4xMTM0NiwgMC4xNjMzMDQsIDAuMjAyOTM5LCAwLjI1NDU3LCAwLjM1Nzc3MiwgMC40MjI0NTYiLCBcCi0gICAgICAgICAgIjAuMTAzNTA5LCAwLjExMzk0NiwgMC4xNjMzOTMsIDAuMjAzMDg0LCAwLjI1NDgxNiwgMC4zNTc2MDYsIDAuNDIyNTc5IiwgXAotICAgICAgICAgICIwLjEwMzQ3NiwgMC4xMTM3MjQsIDAuMTYzMzk2LCAwLjIwMzEyMSwgMC4yNTQzODgsIDAuMzU3NTQ4LCAwLjQyMjUxNyIsIFwKLSAgICAgICAgICAiMC4xMDMwNDUsIDAuMTEzNTQxLCAwLjE2MzE0NywgMC4yMDI5NTgsIDAuMjU0Nzg4LCAwLjM1NzU4MSwgMC40MjI1NTgiLCBcCi0gICAgICAgICAgIjAuMTAzMTUzLCAwLjExMzc2NCwgMC4xNjMyODMsIDAuMjAyOTI3LCAwLjI1NDUyMSwgMC4zNTc2ODEsIDAuNDIyMjciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUzAiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI3NzMzOCwgMC4yODg5MTUsIDAuMzM0OTMyLCAwLjM2NDg2OSwgMC4zOTg3ODgsIDAuNDU3Njg0LCAwLjQ5MTQyNCIsIFwKLSAgICAgICAgICAiMC4yODg0NTMsIDAuMjk5OTIyLCAwLjM0NTkzNCwgMC4zNzU4MjksIDAuNDA5NzYxLCAwLjQ2ODY0MywgMC41MDIzNjUiLCBcCi0gICAgICAgICAgIjAuMzAxNzc2LCAwLjMxMzQyOSwgMC4zNTkzNTIsIDAuMzg5MzMzLCAwLjQyMzU1NywgMC40ODE4ODIsIDAuNTE1OTQ5IiwgXAotICAgICAgICAgICIwLjMxNTQ1NSwgMC4zMjcyODksIDAuMzcyOTEyLCAwLjQwMjg2OSwgMC40MzcwODIsIDAuNDk1NDg2LCAwLjUyOTIzMyIsIFwKLSAgICAgICAgICAiMC4zMjg5MjEsIDAuMzQwNjI3LCAwLjM4NjQ2NywgMC40MTYyODIsIDAuNDUwNTI3LCAwLjUwODkzMiwgMC41NDI2OTIiLCBcCi0gICAgICAgICAgIjAuMzUwMTA1LCAwLjM2MTkwMiwgMC40MDc4MTcsIDAuNDM3NzM1LCAwLjQ3MTcwNiwgMC41MzA4NTMsIDAuNTY0NDYyIiwgXAotICAgICAgICAgICIwLjM2ODkzLCAwLjM4MDg0NiwgMC40MjY3NDQsIDAuNDU2NzI1LCAwLjQ5MDk0NCwgMC41NDkzMzUsIDAuNTgzMDc3Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwODE4NCwgMC4xMTczOTksIDAuMTYyMDEsIDAuMTk2MzIxLCAwLjI0MTM3MSwgMC4zMzA0NzEsIDAuMzg2NjM0IiwgXAotICAgICAgICAgICIwLjEwNzkzMywgMC4xMTczNzcsIDAuMTYxODg5LCAwLjE5NjI5NywgMC4yNDEzNDksIDAuMzMwNDMsIDAuMzg2NTMzIiwgXAotICAgICAgICAgICIwLjEwODE2NSwgMC4xMTc1NCwgMC4xNjE4MzUsIDAuMTk1NzE5LCAwLjI0MTYyNSwgMC4zMzAyOTMsIDAuMzg2NzI5IiwgXAotICAgICAgICAgICIwLjEwNzMwNCwgMC4xMTcxNzYsIDAuMTYxMzY5LCAwLjE5NjM4NCwgMC4yNDE2MzIsIDAuMzMwMzMxLCAwLjM4NjQ4NyIsIFwKLSAgICAgICAgICAiMC4xMDcyNTUsIDAuMTE3MDYyLCAwLjE2MTAzOSwgMC4xOTYyNjksIDAuMjQxNTkzLCAwLjMzMDE3NywgMC4zODYyMDkiLCBcCi0gICAgICAgICAgIjAuMTA3OTg2LCAwLjExNzI3NCwgMC4xNjE1MzYsIDAuMTk2MTc5LCAwLjI0MTMwMSwgMC4zMzA2MzMsIDAuMzg2NjUxIiwgXAotICAgICAgICAgICIwLjEwNzc4OSwgMC4xMTczNTIsIDAuMTYxMzgxLCAwLjE5NjI3OSwgMC4yNDE1NDgsIDAuMzMwMTI4LCAwLjM4NjQxMiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yNjg0MzUsIDAuMjc5Nzk0LCAwLjMyNjQxLCAwLjM1ODI0MSwgMC4zOTQ1MjIsIDAuNDU5NTk0LCAwLjQ5NzYyOCIsIFwKLSAgICAgICAgICAiMC4yNzg5NDksIDAuMjkwMzc2LCAwLjMzNzI0NiwgMC4zNjg0NzEsIDAuNDA1MjI2LCAwLjQ3MDM0NiwgMC41MDgwNjgiLCBcCi0gICAgICAgICAgIjAuMjkyMzI0LCAwLjMwMzU2NSwgMC4zNTA1MzgsIDAuMzgxNjExLCAwLjQxODU3MywgMC40ODMzNTcsIDAuNTIxMzI1IiwgXAotICAgICAgICAgICIwLjMwNTQ4OCwgMC4zMTY3NzUsIDAuMzYzNjU3LCAwLjM5NDgwMSwgMC40MzE3NTYsIDAuNDk2NTI4LCAwLjUzNDUxNyIsIFwKLSAgICAgICAgICAiMC4zMTg0NSwgMC4zMjk3NzUsIDAuMzc2NDU2LCAwLjQwODAyOSwgMC40NDQ1NzIsIDAuNTA5Nzg4LCAwLjU0NzUxNCIsIFwKLSAgICAgICAgICAiMC4zNDAxMjYsIDAuMzUxMjY2LCAwLjM5ODE1NCwgMC40Mjk0NjQsIDAuNDY2MTgyLCAwLjUzMDk2MywgMC41Njg5OTEiLCBcCi0gICAgICAgICAgIjAuMzU4NTMzLCAwLjM3MDA4MywgMC40MTY1MzksIDAuNDQ4MzUxLCAwLjQ4NDkzNSwgMC41NDk3MDUsIDAuNTg3NjIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTAyNzEyLCAwLjExMzIsIDAuMTYyNTksIDAuMjAyNTMzLCAwLjI1Mzg5NywgMC4zNTY5OTgsIDAuNDIxOTY5IiwgXAotICAgICAgICAgICIwLjEwMjk2LCAwLjExMzE5NSwgMC4xNjI2NTgsIDAuMjAyMTQzLCAwLjI1NDExMiwgMC4zNTcxMTksIDAuNDIyMDgxIiwgXAotICAgICAgICAgICIwLjEwMjcyNCwgMC4xMTMxNTksIDAuMTYyNzczLCAwLjIwMjI0NCwgMC4yNTQyMjgsIDAuMzU2OTY3LCAwLjQyMjA2MSIsIFwKLSAgICAgICAgICAiMC4xMDI4NzYsIDAuMTEyOTQxLCAwLjE2MjU5OCwgMC4yMDIxNzEsIDAuMjU0MTcxLCAwLjM1NzAzNSwgMC40MjIxNzEiLCBcCi0gICAgICAgICAgIjAuMTAyODU1LCAwLjExMzQ0OCwgMC4xNjIzNDMsIDAuMjAyMjY3LCAwLjI1MzkzMiwgMC4zNTcxMzksIDAuNDIyMDg1IiwgXAotICAgICAgICAgICIwLjEwMjczMywgMC4xMTMzMTYsIDAuMTYyNjUzLCAwLjIwMjI0MSwgMC4yNTQxMDgsIDAuMzU2Nzc4LCAwLjQyMTg0IiwgXAotICAgICAgICAgICIwLjEwMjcwNCwgMC4xMTI5MTMsIDAuMTYyMjEzLCAwLjIwMjQxMywgMC4yNTQxNDEsIDAuMzU3MTQ4LCAwLjQyMjE3MSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjk5MDE3LCAwLjMxMDc4NywgMC4zNTY3MDEsIDAuMzg2NjEzLCAwLjQyMDM3NCwgMC40NzkyOTgsIDAuNTEzMDIiLCBcCi0gICAgICAgICAgIjAuMzExMDMzLCAwLjMyMjgyNiwgMC4zNjg4MywgMC4zOTg2NjQsIDAuNDMyNjcxLCAwLjQ5MTc3NiwgMC41MjUzNTQiLCBcCi0gICAgICAgICAgIjAuMzI1OTY4LCAwLjMzNzc1MywgMC4zODM1NzgsIDAuNDEzNDM3LCAwLjQ0NzUzOSwgMC41MDY0MjYsIDAuNTQwMTE4IiwgXAotICAgICAgICAgICIwLjMzOTAxNiwgMC4zNTA4ODgsIDAuMzk2ODkyLCAwLjQyNjU0MSwgMC40NjA0NDIsIDAuNTE5Mjg4LCAwLjU1MzAxMiIsIFwKLSAgICAgICAgICAiMC4zNTA0MjEsIDAuMzYyMzQzLCAwLjQwODA4MiwgMC40MzgyNjIsIDAuNDcxOTAzLCAwLjUzMDcyNywgMC41NjQ2NDIiLCBcCi0gICAgICAgICAgIjAuMzY2OCwgMC4zNzgwMjgsIDAuNDI0MDg1LCAwLjQ1NDI1OSwgMC40ODc4NDQsIDAuNTQ2NjMxLCAwLjU4MDIyNyIsIFwKLSAgICAgICAgICAiMC4zNzk1MjYsIDAuMzkxMjIsIDAuNDM3MTg2LCAwLjQ2NzEzLCAwLjUwMTMzMSwgMC41NTk2OTUsIDAuNTkzNDA2Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwODYyNiwgMC4xMTc4MzgsIDAuMTYxNDU2LCAwLjE5NjM4OCwgMC4yNDEwMjgsIDAuMzMwMDQzLCAwLjM4NjMyIiwgXAotICAgICAgICAgICIwLjEwODAxMiwgMC4xMTcyNDYsIDAuMTYxNDEzLCAwLjE5NjE3MywgMC4yNDEyMjksIDAuMzMwNTAzLCAwLjM4NjUyNyIsIFwKLSAgICAgICAgICAiMC4xMDgxNTksIDAuMTE3NzE5LCAwLjE2MTQ2OCwgMC4xOTYxOTEsIDAuMjQwODkzLCAwLjMzMDMyNSwgMC4zODY0OTEiLCBcCi0gICAgICAgICAgIjAuMTA4MTY0LCAwLjExNzMxMywgMC4xNjEzNjIsIDAuMTk2NDE3LCAwLjI0MDk4NCwgMC4zMzAyMjYsIDAuMzg2MzgiLCBcCi0gICAgICAgICAgIjAuMTA4MDQ4LCAwLjExNzA2NiwgMC4xNjE0OTMsIDAuMTk2NDI0LCAwLjI0MTE2LCAwLjMzMDIxNiwgMC4zODY0NDQiLCBcCi0gICAgICAgICAgIjAuMTA3NjA3LCAwLjExNzM5NCwgMC4xNjEzMzYsIDAuMTk1OTY2LCAwLjI0MTA2NCwgMC4zMjk4MzksIDAuMzg2MTA4IiwgXAotICAgICAgICAgICIwLjEwNzcxNCwgMC4xMTY5NDgsIDAuMTYxMTkxLCAwLjE5NTk1MiwgMC4yNDEyNTEsIDAuMzI5ODM3LCAwLjM4NjE0MSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yOTQ1MSwgMC4zMDU5OTIsIDAuMzUyNzMyLCAwLjM4NDIyNiwgMC40MjExMywgMC40ODYyMzQsIDAuNTI0MjAxIiwgXAotICAgICAgICAgICIwLjMwNjMwNSwgMC4zMTc5MzQsIDAuMzY0NjAyLCAwLjM5NjM4NSwgMC40MzI3NjQsIDAuNDk4MTE5LCAwLjUzNTkxNyIsIFwKLSAgICAgICAgICAiMC4zMjE1ODYsIDAuMzMyOTU0LCAwLjM3OTU2NywgMC40MTEyMzcsIDAuNDQ3OTc1LCAwLjUxMzE3OSwgMC41NTExMzEiLCBcCi0gICAgICAgICAgIjAuMzM1Mzk4LCAwLjM0Njg3MywgMC4zOTM3MDgsIDAuNDI1NDMyLCAwLjQ2MjExNiwgMC41MjcxNzcsIDAuNTY1MDQ0IiwgXAotICAgICAgICAgICIwLjM0ODQxNCwgMC4zNTk4NzIsIDAuNDA2NTM5LCAwLjQzODQwNSwgMC40NzQ3OTEsIDAuNTM5OTEzLCAwLjU3Nzk4NiIsIFwKLSAgICAgICAgICAiMC4zNjYzOTMsIDAuMzc3NzI5LCAwLjQyNDUzOSwgMC40NTYyODIsIDAuNDkzMDAxLCAwLjU1ODA3MSwgMC41OTU4NzMiLCBcCi0gICAgICAgICAgIjAuMzgwNjU1LCAwLjM5MTkyMywgMC40Mzg4MiwgMC40NzA1NDksIDAuNTA3MTk4LCAwLjU3MjAzNiwgMC42MTAwNjciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTAzMDQ1LCAwLjExMzc1MywgMC4xNjMyMjYsIDAuMjAyOTQ0LCAwLjI1NDgzMywgMC4zNTc4MzksIDAuNDIyNjk5IiwgXAotICAgICAgICAgICIwLjEwMzcwNiwgMC4xMTM2MTIsIDAuMTYzMTk0LCAwLjIwMzE4NywgMC4yNTQ2MiwgMC4zNTc5NTMsIDAuNDIyNTQ2IiwgXAotICAgICAgICAgICIwLjEwMzExNCwgMC4xMTM0ODQsIDAuMTYzMDc0LCAwLjIwMjk0NSwgMC4yNTQ1NzYsIDAuMzU3NzA4LCAwLjQyMjYwNSIsIFwKLSAgICAgICAgICAiMC4xMDM3NzEsIDAuMTEzNzA3LCAwLjE2MzMzOCwgMC4yMDMxNjksIDAuMjU0ODk2LCAwLjM1Nzk3NywgMC40MjI0NTMiLCBcCi0gICAgICAgICAgIjAuMTAzMzA0LCAwLjExMzY3MywgMC4xNjM0MDYsIDAuMjAzMTM0LCAwLjI1NDYwNiwgMC4zNTc1NDksIDAuNDIyNTIyIiwgXAotICAgICAgICAgICIwLjEwMjkzNSwgMC4xMTM3OTcsIDAuMTYzMDM0LCAwLjIwMjc5MywgMC4yNTQ2NTQsIDAuMzU3NzYzLCAwLjQyMjQ0NCIsIFwKLSAgICAgICAgICAiMC4xMDMwNDIsIDAuMTEzNjA2LCAwLjE2MzAwOSwgMC4yMDMwMjMsIDAuMjU0ODM5LCAwLjM1NzYxMiwgMC40MjI1ODkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTA0NDksIDAuMDEwNDQ4LCAwLjAxMDUyNywgMC4wMTA2MDMsIDAuMDEwNjg3LCAwLjAxMDgwMSwgMC4wMTA4NDUiLCBcCi0gICAgICAgICAgIjAuMDEwNDM3LCAwLjAxMDQzNiwgMC4wMTA1MTQsIDAuMDEwNTkxLCAwLjAxMDY3NCwgMC4wMTA3ODYsIDAuMDEwODMyIiwgXAotICAgICAgICAgICIwLjAxMDQ1MywgMC4wMTA0NDgsIDAuMDEwNTE3LCAwLjAxMDU5MiwgMC4wMTA2NzQsIDAuMDEwNzg0LCAwLjAxMDgzIiwgXAotICAgICAgICAgICIwLjAxMDQyOCwgMC4wMTA0MjcsIDAuMDEwNTA1LCAwLjAxMDU4MSwgMC4wMTA2NjQsIDAuMDEwNzc4LCAwLjAxMDgyMSIsIFwKLSAgICAgICAgICAiMC4wMTA0NCwgMC4wMTA0MzEsIDAuMDEwNTA2LCAwLjAxMDU4LCAwLjAxMDY2LCAwLjAxMDc3MiwgMC4wMTA4MTUiLCBcCi0gICAgICAgICAgIjAuMDEwNDMxLCAwLjAxMDQyOCwgMC4wMTA1LCAwLjAxMDU3MiwgMC4wMTA2NSwgMC4wMTA3NTksIDAuMDEwODAzIiwgXAotICAgICAgICAgICIwLjAxMDQxMiwgMC4wMTA0MTIsIDAuMDEwNDg5LCAwLjAxMDU2MSwgMC4wMTA2MzIsIDAuMDEwNzQ3LCAwLjAxMDc5MyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMTI0NSwgMC4wMTEyNDcsIDAuMDExMzUzLCAwLjAxMTQ1NSwgMC4wMTE1NjYsIDAuMDExNzE1LCAwLjAxMTc3NyIsIFwKLSAgICAgICAgICAiMC4wMTEyMDgsIDAuMDExMjE2LCAwLjAxMTMzMSwgMC4wMTE0MzcsIDAuMDExNTUsIDAuMDExNzAxLCAwLjAxMTc2NSIsIFwKLSAgICAgICAgICAiMC4wMTEyMDIsIDAuMDExMjEyLCAwLjAxMTMyOSwgMC4wMTE0MzUsIDAuMDExNTQ3LCAwLjAxMTY5OSwgMC4wMTE3NjIiLCBcCi0gICAgICAgICAgIjAuMDExMjIsIDAuMDExMjIyLCAwLjAxMTMzNSwgMC4wMTE0MzcsIDAuMDExNTQ3LCAwLjAxMTY5NywgMC4wMTE3NTkiLCBcCi0gICAgICAgICAgIjAuMDExMjEyLCAwLjAxMTIxOSwgMC4wMTEzMzEsIDAuMDExNDMyLCAwLjAxMTU0MSwgMC4wMTE2OSwgMC4wMTE3NTMiLCBcCi0gICAgICAgICAgIjAuMDExMTk5LCAwLjAxMTIwMSwgMC4wMTEzMTksIDAuMDExNDE5LCAwLjAxMTUyOCwgMC4wMTE2NzcsIDAuMDExNzQiLCBcCi0gICAgICAgICAgIjAuMDExMTg3LCAwLjAxMTE5NiwgMC4wMTEzMTIsIDAuMDExNDExLCAwLjAxMTUxOCwgMC4wMTE2NjUsIDAuMDExNzI4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEwMzY1LCAwLjAxMDM1OCwgMC4wMTA0MTgsIDAuMDEwNDg1LCAwLjAxMDU1OSwgMC4wMTA2NTcsIDAuMDEwNjk4IiwgXAotICAgICAgICAgICIwLjAxMDM0OCwgMC4wMTAzNDQsIDAuMDEwNDA2LCAwLjAxMDQ3MywgMC4wMTA1NDcsIDAuMDEwNjQ5LCAwLjAxMDY4NiIsIFwKLSAgICAgICAgICAiMC4wMTAzMywgMC4wMTAzMjUsIDAuMDEwMzksIDAuMDEwNDYsIDAuMDEwNTM2LCAwLjAxMDYzNSwgMC4wMTA2NzYiLCBcCi0gICAgICAgICAgIjAuMDEwMzM4LCAwLjAxMDMzMiwgMC4wMTAzOTIsIDAuMDEwNDYsIDAuMDEwNTM0LCAwLjAxMDYzMywgMC4wMTA2NzMiLCBcCi0gICAgICAgICAgIjAuMDEwMzQxLCAwLjAxMDMzNiwgMC4wMTAzOTUsIDAuMDEwNDYsIDAuMDEwNTMxLCAwLjAxMDYzMSwgMC4wMTA2NjkiLCBcCi0gICAgICAgICAgIjAuMDEwMzE3LCAwLjAxMDMwOCwgMC4wMTAzNzYsIDAuMDEwNDQzLCAwLjAxMDUxNiwgMC4wMTA2MTcsIDAuMDEwNjU2IiwgXAotICAgICAgICAgICIwLjAxMDI5NywgMC4wMTAyOTQsIDAuMDEwMzY2LCAwLjAxMDQzMywgMC4wMTA1MDUsIDAuMDEwNjA0LCAwLjAxMDY0NSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMTQ2OSwgMC4wMTE0NzYsIDAuMDExNTgyLCAwLjAxMTY3NywgMC4wMTE3ODEsIDAuMDExOTIyLCAwLjAxMTk3OSIsIFwKLSAgICAgICAgICAiMC4wMTE0ODksIDAuMDExNDk0LCAwLjAxMTU5MiwgMC4wMTE2ODcsIDAuMDExNzksIDAuMDExOTI4LCAwLjAxMTk4NSIsIFwKLSAgICAgICAgICAiMC4wMTE0ODMsIDAuMDExNDg4LCAwLjAxMTU4NywgMC4wMTE2ODMsIDAuMDExNzg2LCAwLjAxMTkyNCwgMC4wMTE5ODEiLCBcCi0gICAgICAgICAgIjAuMDExNDg0LCAwLjAxMTQ4OSwgMC4wMTE1ODYsIDAuMDExNjc4LCAwLjAxMTc4LCAwLjAxMTkxOCwgMC4wMTE5NzUiLCBcCi0gICAgICAgICAgIjAuMDExNDc1LCAwLjAxMTQ4LCAwLjAxMTU3OSwgMC4wMTE2NzIsIDAuMDExNzc0LCAwLjAxMTkxMiwgMC4wMTE5NjkiLCBcCi0gICAgICAgICAgIjAuMDExNDYsIDAuMDExNDY1LCAwLjAxMTU2NywgMC4wMTE2NiwgMC4wMTE3NjIsIDAuMDExODk5LCAwLjAxMTk1NyIsIFwKLSAgICAgICAgICAiMC4wMTE0MzksIDAuMDExNDQ3LCAwLjAxMTU1NCwgMC4wMTE2NDgsIDAuMDExNzQ5LCAwLjAxMTg4NywgMC4wMTE5NDYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTMCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEyMzE4LCAwLjAxMjMxNCwgMC4wMTIzODQsIDAuMDEyNDU3LCAwLjAxMjUzNiwgMC4wMTI2NDQsIDAuMDEyNjkxIiwgXAotICAgICAgICAgICIwLjAxMjI5NCwgMC4wMTIyOTEsIDAuMDEyMzY0LCAwLjAxMjQzNiwgMC4wMTI1MTksIDAuMDEyNjI5LCAwLjAxMjY3NSIsIFwKLSAgICAgICAgICAiMC4wMTIyOTYsIDAuMDEyMjkzLCAwLjAxMjM2MSwgMC4wMTI0MzYsIDAuMDEyNTE3LCAwLjAxMjYyNSwgMC4wMTI2NyIsIFwKLSAgICAgICAgICAiMC4wMTIyOTQsIDAuMDEyMjkxLCAwLjAxMjM2NywgMC4wMTI0NCwgMC4wMTI1MTksIDAuMDEyNjI3LCAwLjAxMjY3MiIsIFwKLSAgICAgICAgICAiMC4wMTIyOTcsIDAuMDEyMjk0LCAwLjAxMjM2NSwgMC4wMTI0NCwgMC4wMTI1MiwgMC4wMTI2MzIsIDAuMDEyNjczIiwgXAotICAgICAgICAgICIwLjAxMjI4OCwgMC4wMTIyODEsIDAuMDEyMzYyLCAwLjAxMjQzOSwgMC4wMTI1MiwgMC4wMTI2MywgMC4wMTI2NzUiLCBcCi0gICAgICAgICAgIjAuMDEyMjc0LCAwLjAxMjI3NCwgMC4wMTIzNTgsIDAuMDEyNDM2LCAwLjAxMjUyLCAwLjAxMjYzLCAwLjAxMjY3NiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMTA4OSwgMC4wMTEwODYsIDAuMDExMTksIDAuMDExMjg1LCAwLjAxMTM4OCwgMC4wMTE1MjcsIDAuMDExNTg2IiwgXAotICAgICAgICAgICIwLjAxMTA1LCAwLjAxMTA1NywgMC4wMTExNjIsIDAuMDExMjU2LCAwLjAxMTM1OSwgMC4wMTE0OTksIDAuMDExNTU3IiwgXAotICAgICAgICAgICIwLjAxMTA0OCwgMC4wMTEwNTMsIDAuMDExMTUyLCAwLjAxMTI0OCwgMC4wMTEzNTEsIDAuMDExNDkxLCAwLjAxMTU0OSIsIFwKLSAgICAgICAgICAiMC4wMTEwNDUsIDAuMDExMDUxLCAwLjAxMTE1MywgMC4wMTEyNDcsIDAuMDExMzUsIDAuMDExNDg5LCAwLjAxMTU0OCIsIFwKLSAgICAgICAgICAiMC4wMTEwNTUsIDAuMDExMDYxLCAwLjAxMTE2LCAwLjAxMTI1NCwgMC4wMTEzNTYsIDAuMDExNDk1LCAwLjAxMTU1MyIsIFwKLSAgICAgICAgICAiMC4wMTEwNDUsIDAuMDExMDQzLCAwLjAxMTE1NCwgMC4wMTEyNTEsIDAuMDExMzU1LCAwLjAxMTQ5NiwgMC4wMTE1NTUiLCBcCi0gICAgICAgICAgIjAuMDExMDM3LCAwLjAxMTA0NSwgMC4wMTExNTUsIDAuMDExMjUzLCAwLjAxMTM1NywgMC4wMTE0OTksIDAuMDExNTU4Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBDTEtYT1IyWDEgKgotICogLS0tLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChDTEtYT1IyWDEpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4xMjU4MzI7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYwMDgzMTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MDA1Njc7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjAwODMxOwotICB9Ci0gIHBpbihCKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDEyMzIxOTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDEyMzEzMTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDEyMzIxOTsKLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjExODE4OTsKLSAgICBmdW5jdGlvbiA6ICIoQV5CKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjE1NjgxLCAwLjI1OTgyNCwgMC41MDQ2NjIsIDAuNzIwNTU4LCAxLjAwODMyLCAxLjU4NDE2LCAxLjk0MzMyIiwgXAotICAgICAgICAgICIwLjIyNzY2NiwgMC4yNzE3OTQsIDAuNTE2NjI3LCAwLjczMjQ3OSwgMS4wMjAzLCAxLjU5NTg3LCAxLjk1NTQ2IiwgXAotICAgICAgICAgICIwLjI0MjUyNywgMC4yODY2NDQsIDAuNTMxNTA0LCAwLjc0NzMwNCwgMS4wMzUxNiwgMS42MTA2NywgMS45NzA0MyIsIFwKLSAgICAgICAgICAiMC4yNTc3NTYsIDAuMzAxNzkzLCAwLjU0NjcxMywgMC43NjI1MDMsIDEuMDUwNDUsIDEuNjI1NjIsIDEuOTg1NDMiLCBcCi0gICAgICAgICAgIjAuMjcyNzA1LCAwLjMxNjc3MiwgMC41NjE2OTgsIDAuNzc3NDksIDEuMDY1MzksIDEuNjQwOTksIDIuMDAwNTIiLCBcCi0gICAgICAgICAgIjAuMjk2OTc5LCAwLjM0MTA0OSwgMC41ODU5ODksIDAuODAxNzg0LCAxLjA4OTY5LCAxLjY2NTI5LCAyLjAyNDgxIiwgXAotICAgICAgICAgICIwLjMxODAzNSwgMC4zNjIwNzksIDAuNjA3MDQxLCAwLjgyMjg0LCAxLjExMDYxLCAxLjY4NjM4LCAyLjA0NTgzIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE3Mjc4MywgMC4yNTY2NzksIDAuNzQ2MTA1LCAxLjE4MzA1LCAxLjc2NjczLCAyLjkzNjc1LCAzLjY2OTMzIiwgXAotICAgICAgICAgICIwLjE3MjgyLCAwLjI1NjY0MiwgMC43NDY3OTUsIDEuMTg4MjksIDEuNzY2NjEsIDIuOTM2NjcsIDMuNjY1MDUiLCBcCi0gICAgICAgICAgIjAuMTcyNzY5LCAwLjI1NjY1NiwgMC43NDY4NDYsIDEuMTg0MTIsIDEuNzY2NzgsIDIuOTM0OTIsIDMuNjY3MzIiLCBcCi0gICAgICAgICAgIjAuMTcyODUzLCAwLjI1NjY3OCwgMC43NDY2NDksIDEuMTg2MjQsIDEuNzY3NjgsIDIuOTQzNywgMy42NjU5MiIsIFwKLSAgICAgICAgICAiMC4xNzI4MDMsIDAuMjU2NzA5LCAwLjc0NjcyNywgMS4xODYyNCwgMS43Njc3MiwgMi45MzYzNywgMy42NjUyOCIsIFwKLSAgICAgICAgICAiMC4xNzI3OTUsIDAuMjU2NzA4LCAwLjc0NjcyNCwgMS4xODYyNCwgMS43Njc3MSwgMi45MzYzNSwgMy42NjUzNyIsIFwKLSAgICAgICAgICAiMC4xNzI4NTQsIDAuMjU2NjM3LCAwLjc0NjY0NiwgMS4xODYyMywgMS43NzE0NCwgMi45MzYyNiwgMy42NjU1MyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMTQwNzYsIDAuMjY0Mjc3LCAwLjU0NDQwNywgMC43OTEyOTksIDEuMTIwNjgsIDEuNzc5MTMsIDIuMTkwNzEiLCBcCi0gICAgICAgICAgIjAuMjI1NTg5LCAwLjI3NTc3MiwgMC41NTU5MjgsIDAuODAyODA2LCAxLjEzMjA5LCAxLjc5MDcsIDIuMjAyMTIiLCBcCi0gICAgICAgICAgIjAuMjM5OTY0LCAwLjI5MDE4LCAwLjU3MDMyMywgMC44MTcyMTYsIDEuMTQ2NDksIDEuODA1MDQsIDIuMjE2NjciLCBcCi0gICAgICAgICAgIjAuMjU0NDQzLCAwLjMwNDY3MiwgMC41ODQ4MzgsIDAuODMxNzIxLCAxLjE2MTM3LCAxLjgxOTg0LCAyLjIzMDk4IiwgXAotICAgICAgICAgICIwLjI2OTAzMSwgMC4zMTkxODYsIDAuNTk5MzU3LCAwLjg0NjI2NiwgMS4xNzU1NCwgMS44MzQwOCwgMi4yNDU3MiIsIFwKLSAgICAgICAgICAiMC4yOTE3NDYsIDAuMzQxOTQ1LCAwLjYyMjExMSwgMC44NjkwNTYsIDEuMTk4MywgMS44NTY3NCwgMi4yNjg0OSIsIFwKLSAgICAgICAgICAiMC4zMTA5NSwgMC4zNjExODIsIDAuNjQxNDE4LCAwLjg4ODMxMiwgMS4yMTc3MiwgMS44NzYyNSwgMi4yODc2NiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xODk4MywgMC4yODQ2NzksIDAuODM2MjQyLCAxLjMyNDAxLCAxLjk3ODA5LCAzLjI4MTIxLCA0LjEwMDAxIiwgXAotICAgICAgICAgICIwLjE4OTgyMiwgMC4yODQ0NDYsIDAuODM2MjQ2LCAxLjMyNTEyLCAxLjk4MTk0LCAzLjI4MzM0LCA0LjA5ODEzIiwgXAotICAgICAgICAgICIwLjE4OTg0NiwgMC4yODQ3NDIsIDAuODM2MjQyLCAxLjMyNDE2LCAxLjk3NjA3LCAzLjI4MTMyLCA0LjEwMDc2IiwgXAotICAgICAgICAgICIwLjE4OTgzMiwgMC4yODQyNzUsIDAuODM2MjQyLCAxLjMyNTIzLCAxLjk3NjQyLCAzLjI4NjE0LCA0LjA5ODc3IiwgXAotICAgICAgICAgICIwLjE4OTkyNiwgMC4yODQ3MzEsIDAuODM2MjM5LCAxLjMyMzYxLCAxLjk3NjEzLCAzLjI4MTQ5LCA0LjEwMDg4IiwgXAotICAgICAgICAgICIwLjE4OTk4MiwgMC4yODQ3NTcsIDAuODM0Mzk0LCAxLjMyNjM1LCAxLjk4MjYzLCAzLjI4MzUzLCA0LjEwNzUzIiwgXAotICAgICAgICAgICIwLjE5MDAzMywgMC4yODQ2MDIsIDAuODM2MjQsIDEuMzI1NzUsIDEuOTc3ODIsIDMuMjgzNDIsIDQuMDk4MTYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjQwMDAyLCAwLjI4NCwgMC41MjkyNjUsIDAuNzQ1MjQ0LCAxLjAzMzAzLCAxLjYwODU4LCAxLjk2ODE1IiwgXAotICAgICAgICAgICIwLjI1MTUzNywgMC4yOTU1MiwgMC41NDA3OTUsIDAuNzU2Nzk0LCAxLjA0NDU2LCAxLjYyMDEsIDEuOTc5NjciLCBcCi0gICAgICAgICAgIjAuMjY2MjU3LCAwLjMxMDE0NSwgMC41NTU0NjcsIDAuNzcxNDIyLCAxLjA1OTI3LCAxLjYzNDc0LCAxLjk5NDM4IiwgXAotICAgICAgICAgICIwLjI4MDg3OCwgMC4zMjQ3NzcsIDAuNTcwMDY3LCAwLjc4NjAzOCwgMS4wNzM4NSwgMS42NDkzMiwgMi4wMDg5MyIsIFwKLSAgICAgICAgICAiMC4yOTQ3MTcsIDAuMzM4NzE2LCAwLjU4Mzk3MiwgMC43OTk5OTgsIDEuMDg3NzgsIDEuNjYzMjcsIDIuMDIyOTciLCBcCi0gICAgICAgICAgIjAuMzE1MDUyLCAwLjM1OTAwMiwgMC42MDQyODcsIDAuODIwMzAyLCAxLjEwODA1LCAxLjY4MzU4LCAyLjA0MzE3IiwgXAotICAgICAgICAgICIwLjMzMTA5MywgMC4zNzQ5ODcsIDAuNjIwMjc4LCAwLjgzNjI2MywgMS4xMjQwOCwgMS42OTk1NSwgMi4wNTkxOCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNzExODUsIDAuMjU1NDk1LCAwLjc0Njc1NywgMS4xODcwOCwgMS43Njk1OCwgMi45Mzc1NSwgMy42Njk2OSIsIFwKLSAgICAgICAgICAiMC4xNzExNzEsIDAuMjU1NDkzLCAwLjc0Njc1OCwgMS4xODcwNiwgMS43Njk2NSwgMi45MzczOCwgMy42Njk3MyIsIFwKLSAgICAgICAgICAiMC4xNzEyMTMsIDAuMjU1NDU2LCAwLjc0NjY1NiwgMS4xODY5MywgMS43NzI1NiwgMi45NDM2OCwgMy42NzAxOCIsIFwKLSAgICAgICAgICAiMC4xNzExODUsIDAuMjU1NDgsIDAuNzQ4NDAxLCAxLjE4Njk4LCAxLjc2OTU3LCAyLjkzODg0LCAzLjY3NTM0IiwgXAotICAgICAgICAgICIwLjE3MTExNSwgMC4yNTU0NzUsIDAuNzQ4MTcsIDEuMTg3MSwgMS43NjkzNywgMi45Mzg5LCAzLjY3NjA4IiwgXAotICAgICAgICAgICIwLjE3MTE1OSwgMC4yNTU0OTIsIDAuNzQ2NzYzLCAxLjE4NzAxLCAxLjc2OTY1LCAyLjkzNjg2LCAzLjY2OTcyIiwgXAotICAgICAgICAgICIwLjE3MTIxMSwgMC4yNTU1OTMsIDAuNzQ4MzIyLCAxLjE4Njk2LCAxLjc2OTQ4LCAyLjkzODg2LCAzLjY2OTcyIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI0NTA1NSwgMC4yOTUwOTcsIDAuNTc1NDc2LCAwLjgyMjQxMywgMS4xNTE2NiwgMS44MTAwNSwgMi4yMjE0NSIsIFwKLSAgICAgICAgICAiMC4yNTY5MjksIDAuMzA2OTY2LCAwLjU4NzM1OCwgMC44MzQ0MDMsIDEuMTYzNTUsIDEuODIxOSwgMi4yMzM1MSIsIFwKLSAgICAgICAgICAiMC4yNzIxMjMsIDAuMzIyMTY3LCAwLjYwMjU1NiwgMC44NDk0OTIsIDEuMTc4NzMsIDEuODM3MTIsIDIuMjQ4NTIiLCBcCi0gICAgICAgICAgIjAuMjg3MzYxLCAwLjMzNzM5MywgMC42MTc3ODUsIDAuODY0NzQ4LCAxLjE5Mzk5LCAxLjg1MjMzLCAyLjI2Mzc1IiwgXAotICAgICAgICAgICIwLjMwMjQ3MSwgMC4zNTI1MSwgMC42MzI4OTksIDAuODc5ODMzLCAxLjIwOTA5LCAxLjg2NzQ2LCAyLjI3ODg3IiwgXAotICAgICAgICAgICIwLjMyNTM3MywgMC4zNzU0MDQsIDAuNjU1NzczLCAwLjkwMjc4NywgMS4yMzIwMiwgMS44OTAzNSwgMi4zMDE3OCIsIFwKLSAgICAgICAgICAiMC4zNDM4NDgsIDAuMzkzODg2LCAwLjY3NDI2MywgMC45MjEzNDgsIDEuMjUwNDksIDEuOTA4ODIsIDIuMzIwMjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTg4MjUyLCAwLjI4MzMyMiwgMC44MzU5NjEsIDEuMzI3MTIsIDEuOTc4NDksIDMuMjgyMzMsIDQuMTA3NjgiLCBcCi0gICAgICAgICAgIjAuMTg4MjQsIDAuMjgzMiwgMC44MzU5NDEsIDEuMzI1ODEsIDEuOTc5NDUsIDMuMjkxMzIsIDQuMTA3NjkiLCBcCi0gICAgICAgICAgIjAuMTg4MjMsIDAuMjgzNDUzLCAwLjgzNTg2NiwgMS4zMjY5NCwgMS45NzgyOSwgMy4yOTA3NiwgNC4xMDYiLCBcCi0gICAgICAgICAgIjAuMTg4MjI5LCAwLjI4MzE5NSwgMC44MzM5MjcsIDEuMzI2NzgsIDEuOTgwNTEsIDMuMjg4NjksIDQuMTA4MjkiLCBcCi0gICAgICAgICAgIjAuMTg4MjIzLCAwLjI4MzQ4NiwgMC44MzU4MjMsIDEuMzI2ODUsIDEuOTc4NzQsIDMuMjkwMjksIDQuMTA3MTMiLCBcCi0gICAgICAgICAgIjAuMTg4MTI1LCAwLjI4MzE3NSwgMC44MzYyMTYsIDEuMzI2NDgsIDEuOTgwOTksIDMuMjg3MTIsIDQuMTA0NTEiLCBcCi0gICAgICAgICAgIjAuMTg4MTM0LCAwLjI4MzE2OCwgMC44MzQ1MjQsIDEuMzI1MzUsIDEuOTgwODMsIDMuMjg3MzQsIDQuMTA0MiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xODg5MjMsIDAuMjMyODkzLCAwLjQ3ODE5MiwgMC42OTQxNTMsIDAuOTgxOTE0LCAxLjU1NzQ3LCAxLjkxNzA0IiwgXAotICAgICAgICAgICIwLjE5OTg4NiwgMC4yNDM3NTcsIDAuNDg5MDcyLCAwLjcwNTAxNiwgMC45OTI4NTQsIDEuNTY4MzEsIDEuOTI3OTciLCBcCi0gICAgICAgICAgIjAuMjEzMzI3LCAwLjI1NzIxNywgMC41MDI1NDUsIDAuNzE4NDkyLCAxLjAwNjM2LCAxLjU4MTk1LCAxLjk0MTQ0IiwgXAotICAgICAgICAgICIwLjIyNjc4MiwgMC4yNzA3NjUsIDAuNTE2MDM5LCAwLjczMTk4NSwgMS4wMTk4NCwgMS41OTUzMiwgMS45NTQ5MiIsIFwKLSAgICAgICAgICAiMC4yNDA0MzUsIDAuMjg0MzQ2LCAwLjUyOTcwNiwgMC43NDU2NiwgMS4wMzM1MSwgMS42MDg5OCwgMS45Njg2MSIsIFwKLSAgICAgICAgICAiMC4yNjI0NjcsIDAuMzA2NDc0LCAwLjU1MTc3NywgMC43Njc3MzcsIDEuMDU1NjcsIDEuNjMxMDgsIDEuOTkwNjgiLCBcCi0gICAgICAgICAgIjAuMjgxNzc1LCAwLjMyNTY3OCwgMC41NzEwMTQsIDAuNzg3MDE2LCAxLjA3NDgyLCAxLjY1MDMxLCAyLjAwOTk1Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE3MTA0MiwgMC4yNTU0MjQsIDAuNzQ2NjY1LCAxLjE4NzE0LCAxLjc2OTc0LCAyLjkzNDk2LCAzLjY2ODkiLCBcCi0gICAgICAgICAgIjAuMTcxMDgxLCAwLjI1NTQ4NywgMC43NDY3NTgsIDEuMTg2OTUsIDEuNzcyNTUsIDIuOTQzNTgsIDMuNjcwMTYiLCBcCi0gICAgICAgICAgIjAuMTcxMDQ5LCAwLjI1NTUyLCAwLjc0Njc2MiwgMS4xODY5MywgMS43NzI1MiwgMi45NDM2MSwgMy42NyIsIFwKLSAgICAgICAgICAiMC4xNzExMDYsIDAuMjU1NDA5LCAwLjc0Njc1OSwgMS4xODY4OSwgMS43NzI1NiwgMi45Mzk2OSwgMy42Njk2NSIsIFwKLSAgICAgICAgICAiMC4xNzExMDksIDAuMjU1NTMxLCAwLjc0NjcxOSwgMS4xODY5LCAxLjc2ODYyLCAyLjkzOTAzLCAzLjY2OTczIiwgXAotICAgICAgICAgICIwLjE3MTExMywgMC4yNTU0NDMsIDAuNzQ2NzY5LCAxLjE4Njg4LCAxLjc3MjM0LCAyLjkzOTYyLCAzLjY2OTY1IiwgXAotICAgICAgICAgICIwLjE3MTI2NCwgMC4yNTU0NSwgMC43NDgzMzQsIDEuMTg2OTksIDEuNzY5NDgsIDIuOTM4ODIsIDMuNjY5NjEiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTgyNTE3LCAwLjIzMjY4MiwgMC41MTI4MjksIDAuNzU5NjkzLCAxLjA4OSwgMS43NDc1NiwgMi4xNTkxNCIsIFwKLSAgICAgICAgICAiMC4xOTMxODQsIDAuMjQzMzQ3LCAwLjUyMzQ5NSwgMC43NzAzNTcsIDEuMDk5NjQsIDEuNzU4MjMsIDIuMTY5NzkiLCBcCi0gICAgICAgICAgIjAuMjA2NTE4LCAwLjI1NjY3NiwgMC41MzY4NDMsIDAuNzgzNywgMS4xMTMwMSwgMS43NzE2MiwgMi4xODMwNCIsIFwKLSAgICAgICAgICAiMC4yMTk3NDYsIDAuMjY5OTQyLCAwLjU1MDA3NSwgMC43OTY5OTYsIDEuMTI2MjYsIDEuNzg1MTgsIDIuMTk2MTEiLCBcCi0gICAgICAgICAgIjAuMjMyOTE2LCAwLjI4MzExNSwgMC41NjMzMTcsIDAuODEwMiwgMS4xMzk1LCAxLjc5ODA1LCAyLjIwOTciLCBcCi0gICAgICAgICAgIjAuMjUzOTc5LCAwLjMwNDE5MywgMC41ODQ0MzgsIDAuODMxMzA4LCAxLjE2MTA4LCAxLjgxOTMyLCAyLjIzMDY4IiwgXAotICAgICAgICAgICIwLjI3MjE4LCAwLjMyMjQwMywgMC42MDI1ODYsIDAuODQ5NTEsIDEuMTc4NzksIDEuODM3NDEsIDIuMjQ5MDQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTg5NzE4LCAwLjI4NDIwMywgMC44MzYyNDUsIDEuMzI1NTMsIDEuOTc1NzEsIDMuMjgxMSwgNC4xMDAzIiwgXAotICAgICAgICAgICIwLjE4OTcxMiwgMC4yODQxOTYsIDAuODM2MjQ2LCAxLjMyNTU0LCAxLjk4MTcxLCAzLjI4MjQ5LCA0LjEwMDA0IiwgXAotICAgICAgICAgICIwLjE4OTYsIDAuMjg0MTMsIDAuODMzNDIyLCAxLjMyNTcyLCAxLjk4MTYyLCAzLjI4MzQ1LCA0LjA5ODA2IiwgXAotICAgICAgICAgICIwLjE4OTYxLCAwLjI4NDU4MiwgMC44MzQwMDQsIDEuMzI3MDEsIDEuOTgyNjYsIDMuMjg1OTMsIDQuMTAyMTIiLCBcCi0gICAgICAgICAgIjAuMTg5NzYsIDAuMjg0MjUyLCAwLjgzNjI0NSwgMS4zMjUzOSwgMS45NzU5NywgMy4yODEzNiwgNC4xMDEyNSIsIFwKLSAgICAgICAgICAiMC4xODk2NTQsIDAuMjg0NDI3LCAwLjgzMzQ2NSwgMS4zMjU4NCwgMS45NzU3OCwgMy4yODc5NCwgNC4xMDg0OSIsIFwKLSAgICAgICAgICAiMC4xODk4ODYsIDAuMjg0NzA3LCAwLjgzNTA2NSwgMS4zMjcwMSwgMS45ODI2NSwgMy4yODI3NCwgNC4xMDYxMiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xODY0OSwgMC4yMzA1NTcsIDAuNDc1NTAzLCAwLjY5MTM1OCwgMC45NzkxNzMsIDEuNTU0NzMsIDEuOTE0MzYiLCBcCi0gICAgICAgICAgIjAuMTk4NDY4LCAwLjI0MjYyMSwgMC40ODc1MTYsIDAuNzAzMjg3LCAwLjk5MTE3NCwgMS41NjY3NCwgMS45MjY1NyIsIFwKLSAgICAgICAgICAiMC4yMTM3NywgMC4yNTc4MDksIDAuNTAyNzEyLCAwLjcxODUzNiwgMS4wMDYzNCwgMS41ODIyNywgMS45NDE1NiIsIFwKLSAgICAgICAgICAiMC4yMjgyODcsIDAuMjcyNDA3LCAwLjUxNzMwNSwgMC43MzMxMzQsIDEuMDIwOTUsIDEuNTk2NjYsIDEuOTU2MDMiLCBcCi0gICAgICAgICAgIjAuMjQyMjI4LCAwLjI4NjMzNSwgMC41MzEyMzksIDAuNzQ3MDE0LCAxLjAzNDg5LCAxLjYxMDQ0LCAxLjk3MDI1IiwgXAotICAgICAgICAgICIwLjI2MjA4NCwgMC4zMDYxMDEsIDAuNTUxMDM2LCAwLjc2Njg0MiwgMS4wNTQ5LCAxLjYzMDQ1LCAxLjk4OTc1IiwgXAotICAgICAgICAgICIwLjI3NjcxNSwgMC4zMjA4MjksIDAuNTY1NzMxLCAwLjc4MTUzMywgMS4wNjkzOSwgMS42NDUwMiwgMi4wMDQ0NyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNzI1NTEsIDAuMjU2NTcxLCAwLjc0NjgxNywgMS4xODgxLCAxLjc2Njc1LCAyLjkzNjgzLCAzLjY2NTAyIiwgXAotICAgICAgICAgICIwLjE3MjU5NywgMC4yNTY1NTcsIDAuNzQ2Nzg5LCAxLjE4NjExLCAxLjc2Njg3LCAyLjkzNjkxLCAzLjY2NjY3IiwgXAotICAgICAgICAgICIwLjE3MjY1NywgMC4yNTY1NzQsIDAuNzQ3NzA0LCAxLjE4NjI3LCAxLjc2NzExLCAyLjkzNjExLCAzLjY2NDgxIiwgXAotICAgICAgICAgICIwLjE3MjU5LCAwLjI1NjU0MywgMC43NDc3MzgsIDEuMTg2MjgsIDEuNzY3MTIsIDIuOTM2MjksIDMuNjY1OTIiLCBcCi0gICAgICAgICAgIjAuMTcyNTkzLCAwLjI1NjU2MSwgMC43NDY3OTMsIDEuMTg2MTEsIDEuNzY2OTcsIDIuOTM0ODYsIDMuNjY2ODgiLCBcCi0gICAgICAgICAgIjAuMTcyNjQ0LCAwLjI1NjUzNCwgMC43NDY2MjUsIDEuMTg2MjUsIDEuNzY3NDQsIDIuOTM2MTIsIDMuNjY1OTIiLCBcCi0gICAgICAgICAgIjAuMTcyNjYyLCAwLjI1NjUxOCwgMC43NDY3NCwgMS4xODYyMywgMS43NjY5MiwgMi45Mzg5NiwgMy42NjU5MyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMjA1NiwgMC4yNzA2MTMsIDAuNTUxMDA4LCAwLjc5NzkzNywgMS4xMjcyMywgMS43ODU1MSwgMi4xOTY5OCIsIFwKLSAgICAgICAgICAiMC4yMzI5MjEsIDAuMjgyOTc1LCAwLjU2MzM3MiwgMC44MTAzMDMsIDEuMTM5NjEsIDEuNzk3OTIsIDIuMjA5MzYiLCBcCi0gICAgICAgICAgIjAuMjQ4MjEyLCAwLjI5ODI1MSwgMC41Nzg2NSwgMC44MjU1NzgsIDEuMTU0ODIsIDEuODEzMjcsIDIuMjI0NjIiLCBcCi0gICAgICAgICAgIjAuMjYzMjI5LCAwLjMxMzI4NCwgMC41OTM2ODEsIDAuODQwNjA4LCAxLjE2OTg3LCAxLjgyODI1LCAyLjIzOTY1IiwgXAotICAgICAgICAgICIwLjI3NzQxNSwgMC4zMjc0NTYsIDAuNjA3ODQ3LCAwLjg1NDc4LCAxLjE4NDAxLCAxLjg0MjQsIDIuMjUzODEiLCBcCi0gICAgICAgICAgIjAuMjk3ODc4LCAwLjM0NzkxMiwgMC42MjgzMDYsIDAuODc1MjM5LCAxLjIwNDU5LCAxLjg2Mjg2LCAyLjI3NDI3IiwgXAotICAgICAgICAgICIwLjMxNDA4NywgMC4zNjQxMTcsIDAuNjQ0NTE2LCAwLjg5MTU1NywgMS4yMjA3LCAxLjg3OTA1LCAyLjI5MDU4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE4ODE2MywgMC4yODI4ODYsIDAuODM0MTM5LCAxLjMyNzM0LCAxLjk4MTM2LCAzLjI4Mjk2LCA0LjA5MTMyIiwgXAotICAgICAgICAgICIwLjE4ODE2OCwgMC4yODM1MjksIDAuODM1OTA4LCAxLjMyNjk5LCAxLjk4MDgsIDMuMjkxMywgNC4xMDcyNiIsIFwKLSAgICAgICAgICAiMC4xODgxODMsIDAuMjgzNTI5LCAwLjgzNDAzLCAxLjMyNjc0LCAxLjk4MTQ4LCAzLjI5MDM1LCA0LjEwNzgxIiwgXAotICAgICAgICAgICIwLjE4ODE1OCwgMC4yODM1MjcsIDAuODM0MDUzLCAxLjMyNjc5LCAxLjk4MTM2LCAzLjI4NjE4LCA0LjEwNzg5IiwgXAotICAgICAgICAgICIwLjE4ODIyMSwgMC4yODM1MDUsIDAuODM1ODA2LCAxLjMyNjg5LCAxLjk3Nzk5LCAzLjI5MDc0LCA0LjEwNjM5IiwgXAotICAgICAgICAgICIwLjE4ODIwOSwgMC4yODM0NDksIDAuODM1NzksIDEuMzI2ODQsIDEuOTgwMjIsIDMuMjkwODYsIDQuMTA3ODciLCBcCi0gICAgICAgICAgIjAuMTg4MTg4LCAwLjI4MzEyMywgMC44MzU4MjMsIDEuMzI1NTQsIDEuOTc4NjIsIDMuMjg5OTEsIDQuMTA3ODkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDMwMDQsIDAuMDAzMDEsIDAuMDAzMDIsIDAuMDAzMDIxLCAwLjAwMzAyMiwgMC4wMDMwMjMsIDAuMDAzMDIzIiwgXAotICAgICAgICAgICIwLjAwMjk5MywgMC4wMDI5OTksIDAuMDAzMDA4LCAwLjAwMzAxLCAwLjAwMzAxMSwgMC4wMDMwMTIsIDAuMDAzMDEyIiwgXAotICAgICAgICAgICIwLjAwMjk4MywgMC4wMDI5OSwgMC4wMDI5OTksIDAuMDAzMDAxLCAwLjAwMzAwMiwgMC4wMDMwMDMsIDAuMDAzMDAzIiwgXAotICAgICAgICAgICIwLjAwMjk3OCwgMC4wMDI5ODQsIDAuMDAyOTkzLCAwLjAwMjk5NSwgMC4wMDI5OTYsIDAuMDAyOTk3LCAwLjAwMjk5OCIsIFwKLSAgICAgICAgICAiMC4wMDI5NzQsIDAuMDAyOTgsIDAuMDAyOTksIDAuMDAyOTkyLCAwLjAwMjk5MywgMC4wMDI5OTQsIDAuMDAyOTk0IiwgXAotICAgICAgICAgICIwLjAwMjk2OSwgMC4wMDI5NzUsIDAuMDAyOTg1LCAwLjAwMjk4NywgMC4wMDI5ODgsIDAuMDAyOTg5LCAwLjAwMjk4OSIsIFwKLSAgICAgICAgICAiMC4wMDI5NjgsIDAuMDAyOTc1LCAwLjAwMjk4NCwgMC4wMDI5ODYsIDAuMDAyOTg3LCAwLjAwMjk4OCwgMC4wMDI5ODgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI4LCAwLjAwMjgwOCwgMC4wMDI4MTksIDAuMDAyODIyLCAwLjAwMjgyMywgMC4wMDI4MjQsIDAuMDAyODI0IiwgXAotICAgICAgICAgICIwLjAwMjc4NCwgMC4wMDI3OTIsIDAuMDAyODA0LCAwLjAwMjgwNiwgMC4wMDI4MDgsIDAuMDAyODA5LCAwLjAwMjgwOSIsIFwKLSAgICAgICAgICAiMC4wMDI3NzMsIDAuMDAyNzgxLCAwLjAwMjc5MywgMC4wMDI3OTUsIDAuMDAyNzk2LCAwLjAwMjc5OCwgMC4wMDI3OTgiLCBcCi0gICAgICAgICAgIjAuMDAyNzY3LCAwLjAwMjc3NSwgMC4wMDI3ODYsIDAuMDAyNzg5LCAwLjAwMjc5LCAwLjAwMjc5MSwgMC4wMDI3OTIiLCBcCi0gICAgICAgICAgIjAuMDAyNzYzLCAwLjAwMjc3MSwgMC4wMDI3ODMsIDAuMDAyNzg1LCAwLjAwMjc4NywgMC4wMDI3ODgsIDAuMDAyNzg4IiwgXAotICAgICAgICAgICIwLjAwMjc2MSwgMC4wMDI3NjksIDAuMDAyNzgsIDAuMDAyNzgzLCAwLjAwMjc4NCwgMC4wMDI3ODYsIDAuMDAyNzg2IiwgXAotICAgICAgICAgICIwLjAwMjc2LCAwLjAwMjc2OCwgMC4wMDI3OCwgMC4wMDI3ODIsIDAuMDAyNzg0LCAwLjAwMjc4NSwgMC4wMDI3ODUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDE0NjksIDAuMDAxNDc0LCAwLjAwMTQ4MiwgMC4wMDE0ODMsIDAuMDAxNDg0LCAwLjAwMTQ4MywgMC4wMDE0ODUiLCBcCi0gICAgICAgICAgIjAuMDAxNDQyLCAwLjAwMTQ0NywgMC4wMDE0NTUsIDAuMDAxNDU2LCAwLjAwMTQ1NywgMC4wMDE0NTcsIDAuMDAxNDU3IiwgXAotICAgICAgICAgICIwLjAwMTQyMiwgMC4wMDE0MjgsIDAuMDAxNDM2LCAwLjAwMTQzOCwgMC4wMDE0MzksIDAuMDAxNDM5LCAwLjAwMTQzOSIsIFwKLSAgICAgICAgICAiMC4wMDE0MSwgMC4wMDE0MTcsIDAuMDAxNDI1LCAwLjAwMTQyNywgMC4wMDE0MjgsIDAuMDAxNDI5LCAwLjAwMTQzIiwgXAotICAgICAgICAgICIwLjAwMTQwMywgMC4wMDE0MSwgMC4wMDE0MiwgMC4wMDE0MjIsIDAuMDAxNDIzLCAwLjAwMTQyNCwgMC4wMDE0MjQiLCBcCi0gICAgICAgICAgIjAuMDAxMzk2LCAwLjAwMTQwMywgMC4wMDE0MTUsIDAuMDAxNDE4LCAwLjAwMTQyLCAwLjAwMTQyMSwgMC4wMDE0MjEiLCBcCi0gICAgICAgICAgIjAuMDAxMzk0LCAwLjAwMTQwMiwgMC4wMDE0MTUsIDAuMDAxNDE4LCAwLjAwMTQyLCAwLjAwMTQyMSwgMC4wMDE0MjIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDIyOTQsIDAuMDAyMzAyLCAwLjAwMjMxNCwgMC4wMDIzMTcsIDAuMDAyMzE4LCAwLjAwMjMyLCAwLjAwMjMyIiwgXAotICAgICAgICAgICIwLjAwMjI4NywgMC4wMDIyOTUsIDAuMDAyMzA3LCAwLjAwMjMxLCAwLjAwMjMxMSwgMC4wMDIzMTIsIDAuMDAyMzEzIiwgXAotICAgICAgICAgICIwLjAwMjI4MiwgMC4wMDIyOSwgMC4wMDIzMDIsIDAuMDAyMzA0LCAwLjAwMjMwNiwgMC4wMDIzMDcsIDAuMDAyMzA3IiwgXAotICAgICAgICAgICIwLjAwMjI3OSwgMC4wMDIyODcsIDAuMDAyMjk4LCAwLjAwMjMwMSwgMC4wMDIzMDIsIDAuMDAyMzA0LCAwLjAwMjMwNCIsIFwKLSAgICAgICAgICAiMC4wMDIyNzgsIDAuMDAyMjg2LCAwLjAwMjI5NywgMC4wMDIzLCAwLjAwMjMwMSwgMC4wMDIzMDIsIDAuMDAyMzAzIiwgXAotICAgICAgICAgICIwLjAwMjI3OCwgMC4wMDIyODUsIDAuMDAyMjk3LCAwLjAwMjI5OSwgMC4wMDIzMDEsIDAuMDAyMzAyLCAwLjAwMjMwMiIsIFwKLSAgICAgICAgICAiMC4wMDIyNzgsIDAuMDAyMjg2LCAwLjAwMjI5OCwgMC4wMDIzLCAwLjAwMjMwMiwgMC4wMDIzMDMsIDAuMDAyMzAzIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBDTEtYT1IyWDQgKgotICogLS0tLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChDTEtYT1IyWDQpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4yNTA2MjM7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDU1NjIwNzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA1NTU4ODE7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNTU2MjA3OwotICB9Ci0gIHBpbihCKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDEzMjM4NTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDEzMjI4NDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDEzMjM4NTsKLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjUwMjU4OTsKLSAgICBmdW5jdGlvbiA6ICIoQV5CKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMjQxMTcsIDAuMzc1MDAyLCAwLjUwMzMyMSwgMC41OTQwMjksIDAuNzM4OTc1LCAwLjg2NTc3NCwgMS4wNDY5OSIsIFwKLSAgICAgICAgICAiMC4yMzYxMzIsIDAuMzg3MDAyLCAwLjUxNTI5NSwgMC42MDYwMzgsIDAuNzUwOTcsIDAuODc3NzU1LCAxLjA1ODk5IiwgXAotICAgICAgICAgICIwLjI1MDk2NywgMC40MDE3NjksIDAuNTMwMTEsIDAuNjIwODQ4LCAwLjc2NTc5NiwgMC44OTI1NywgMS4wNzM3OSIsIFwKLSAgICAgICAgICAiMC4yNjYxMTMsIDAuNDE2OTAxLCAwLjU0NTI4LCAwLjYzNjA4LCAwLjc4MDk5MSwgMC45MDc3NjksIDEuMDg4ODciLCBcCi0gICAgICAgICAgIjAuMjgxMTIzLCAwLjQzMjAxNywgMC41NjAzMTEsIDAuNjUxMDYxLCAwLjc5NTk3OSwgMC45MjI3NzYsIDEuMTA0MDIiLCBcCi0gICAgICAgICAgIjAuMzA1MjQsIDAuNDU2MDc2LCAwLjU4NDM5MSwgMC42NzUxMTUsIDAuODIwMDc4LCAwLjk0Njg2NCwgMS4xMjgxIiwgXAotICAgICAgICAgICIwLjMyNjYyNiwgMC40Nzc0LCAwLjYwNTc3MSwgMC42OTY1MDYsIDAuODQxNDcsIDAuOTY4MjQ4LCAxLjE0OTQ3Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDkzNDI4LCAwLjMzNTA1OCwgMC41ODQyNywgMC43NjQ0MywgMS4wNTY5OSwgMS4zMTMzMiwgMS42ODAwNCIsIFwKLSAgICAgICAgICAiMC4wOTMyMzIsIDAuMzM0ODc4LCAwLjU4NDY4MywgMC43NjYxOTcsIDEuMDU4MzUsIDEuMzEzNTMsIDEuNjgwMDMiLCBcCi0gICAgICAgICAgIjAuMDkzMjMxLCAwLjMzNDk4MiwgMC41ODQ2NjEsIDAuNzY2MDE5LCAxLjA1NjgsIDEuMzEzNDcsIDEuNjgwMDMiLCBcCi0gICAgICAgICAgIjAuMDkzNTgxLCAwLjMzNTA3LCAwLjU4NDYxOCwgMC43NjYwMywgMS4wNTY4NCwgMS4zMTM1MiwgMS42ODE0IiwgXAotICAgICAgICAgICIwLjA5MzM5NCwgMC4zMzQ5MTYsIDAuNTg0NjczLCAwLjc2NjA2NSwgMS4wNTY4LCAxLjMxMzQ4LCAxLjY4MDAyIiwgXAotICAgICAgICAgICIwLjA5MzE4MywgMC4zMzUwNzgsIDAuNTg0NjY4LCAwLjc2NDk0NCwgMS4wNTY5LCAxLjMxMzQ5LCAxLjY4MDAzIiwgXAotICAgICAgICAgICIwLjA5MzIyOSwgMC4zMzUxNTgsIDAuNTg0NjQ2LCAwLjc2NDYzNCwgMS4wNTY4LCAxLjMxMzQ4LCAxLjY4MDAzIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjExNTk4LCAwLjM3ODM5NCwgMC41MjUyMjMsIDAuNjI5MzkyLCAwLjc5NTgyNiwgMC45NDE0NjksIDEuMTQ5MzUiLCBcCi0gICAgICAgICAgIjAuMjIzMTEzLCAwLjM4OTc4OSwgMC41MzY2MTcsIDAuNjQwNzY1LCAwLjgwNzI1MSwgMC45NTI4MTUsIDEuMTYwNzciLCBcCi0gICAgICAgICAgIjAuMjM3NzUxLCAwLjQwNDQyOSwgMC41NTEyNiwgMC42NTU0MTIsIDAuODIxODk4LCAwLjk2NzM5OSwgMS4xNzU0MiIsIFwKLSAgICAgICAgICAiMC4yNTIwNDcsIDAuNDE4ODU2LCAwLjU2NTY3NSwgMC42Njk4NSwgMC44MzYzNCwgMC45ODE5MjUsIDEuMTg5ODIiLCBcCi0gICAgICAgICAgIjAuMjY2NTcsIDAuNDMzMjMyLCAwLjU4MDA3NSwgMC42ODQyMjcsIDAuODUwNjQzLCAwLjk5NjM2NCwgMS4yMDQyNCIsIFwKLSAgICAgICAgICAiMC4yODk2OTQsIDAuNDU2MzgsIDAuNjAzMjQsIDAuNzA3Mzk1LCAwLjg3Mzg4NywgMS4wMTkzOCwgMS4yMjczOCIsIFwKLSAgICAgICAgICAiMC4zMDk4NzksIDAuNDc2NjY1LCAwLjYyMzUyMywgMC43Mjc2ODYsIDAuODk0MTUxLCAxLjAzOTgxLCAxLjI0NzciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTUzNjYsIDAuMzY5MDMxLCAwLjY1MTMzNCwgMC44NTM1NCwgMS4xODM4OCwgMS40NzU2OCwgMS44ODk4IiwgXAotICAgICAgICAgICIwLjA5NTQ3OCwgMC4zNjkwMTIsIDAuNjUxNTg2LCAwLjg1Njc4OCwgMS4xODI5OCwgMS40NzI2NSwgMS44ODk4MiIsIFwKLSAgICAgICAgICAiMC4wOTU0NDcsIDAuMzY5MDE1LCAwLjY1MTU2OCwgMC44NTY3NDcsIDEuMTgzMDUsIDEuNDczNTEsIDEuODg5ODIiLCBcCi0gICAgICAgICAgIjAuMDk1MzgxLCAwLjM2OTE5OCwgMC42NTEyMTIsIDAuODU2NzYzLCAxLjE4NDExLCAxLjQ3NTY3LCAxLjg4OTc5IiwgXAotICAgICAgICAgICIwLjA5NTQ3NSwgMC4zNjkwMDYsIDAuNjUxNTgxLCAwLjg1Njc5LCAxLjE4MzcsIDEuNDcxMTgsIDEuODg5ODEiLCBcCi0gICAgICAgICAgIjAuMDk1NDA4LCAwLjM2OTAyOSwgMC42NTE1NTMsIDAuODU2NzcsIDEuMTgyLCAxLjQ3NTgzLCAxLjg4OTc2IiwgXAotICAgICAgICAgICIwLjA5NTM5NCwgMC4zNjkwNSwgMC42NTEzNDEsIDAuODU2Njc1LCAxLjE4MzQ2LCAxLjQ3NTY4LCAxLjg4OTgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMjcyNzYsIDAuMzY5NjIxLCAwLjQ5NzEwNywgMC41ODc4MzYsIDAuNzMyODc4LCAwLjg1OTc5MywgMS4wNDA4NyIsIFwKLSAgICAgICAgICAiMC4yMzg4NTEsIDAuMzgxMTgxLCAwLjUwODc0OSwgMC41OTk0OTEsIDAuNzQ0NTE5LCAwLjg3MTQ0OSwgMS4wNTI1MyIsIFwKLSAgICAgICAgICAiMC4yNTM0MzcsIDAuMzk1ODMyLCAwLjUyMzM4NywgMC42MTQwODYsIDAuNzU5MTMxLCAwLjg4NTk1MywgMS4wNjcxNiIsIFwKLSAgICAgICAgICAiMC4yNjgxOTEsIDAuNDEwNTkzLCAwLjUzODE0NywgMC42Mjg4NDUsIDAuNzczODg4LCAwLjkwMDcyNSwgMS4wODIiLCBcCi0gICAgICAgICAgIjAuMjgyODY0LCAwLjQyNTEzOSwgMC41NTI2MzcsIDAuNjQzMzQ3LCAwLjc4ODM4NiwgMC45MTUzMDUsIDEuMDk2MzgiLCBcCi0gICAgICAgICAgIjAuMzA0NDQ5LCAwLjQ0NjgyNCwgMC41NzQzNjcsIDAuNjY1MDU3LCAwLjgxMDEsIDAuOTM3MDE0LCAxLjExODA5IiwgXAotICAgICAgICAgICIwLjMyMTgwMywgMC40NjQyMDgsIDAuNTkxNzYxLCAwLjY4MjQ1NSwgMC44Mjc1LCAwLjk1NDM3OCwgMS4xMzU1NCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4MzM2OCwgMC4zMjUyMywgMC41NzczMzUsIDAuNzU5ODY0LCAxLjA1MzM0LCAxLjMxMzQyLCAxLjY4MjI0IiwgXAotICAgICAgICAgICIwLjA4MzI4NSwgMC4zMjUyNjksIDAuNTc2OTI5LCAwLjc1OTgzLCAxLjA1MzIyLCAxLjMxMzQ2LCAxLjY4MjI3IiwgXAotICAgICAgICAgICIwLjA4MzI0NiwgMC4zMjUyMzMsIDAuNTc4MDkxLCAwLjc1OTg5MiwgMS4wNTM1MywgMS4zMTI3OCwgMS42Nzg4MSIsIFwKLSAgICAgICAgICAiMC4wODMyMywgMC4zMjUyMzIsIDAuNTc4MDksIDAuNzU5ODg1LCAxLjA1MzUsIDEuMzEwOTIsIDEuNjc4MTkiLCBcCi0gICAgICAgICAgIjAuMDgzMzQ3LCAwLjMyNTIzLCAwLjU3ODEzNCwgMC43NTk4NTYsIDEuMDUzMjksIDEuMzEzNDMsIDEuNjgyMjYiLCBcCi0gICAgICAgICAgIjAuMDgzMjM0LCAwLjMyNTIyMywgMC41NzgxLCAwLjc1OTgwMSwgMS4wNTM0LCAxLjMxMzM5LCAxLjY4MjIzIiwgXAotICAgICAgICAgICIwLjA4MzIsIDAuMzI1MjI0LCAwLjU3ODA4OCwgMC43NTk4LCAxLjA1MzQ2LCAxLjMxMTA0LCAxLjY4MjQ0Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjI4NDksIDAuMzg4MDA3LCAwLjUzNDIyMiwgMC42MzgzNTgsIDAuODA0ODcyLCAwLjk1MDQ5MiwgMS4xNTg0MSIsIFwKLSAgICAgICAgICAiMC4yNDA0NjQsIDAuMzk5OTcxLCAwLjU0NjE3NSwgMC42NTAzMjcsIDAuODE2OTEyLCAwLjk2MjQ2MywgMS4xNzAzOSIsIFwKLSAgICAgICAgICAiMC4yNTU0MDEsIDAuNDE1MDQ5LCAwLjU2MTMxMSwgMC42NjU0NTQsIDAuODMxODk3LCAwLjk3NzU4MiwgMS4xODU1MSIsIFwKLSAgICAgICAgICAiMC4yNzA5MTUsIDAuNDMwNDI1LCAwLjU3NjYzNiwgMC42ODA3NzIsIDAuODQ3Mjk4LCAwLjk5MjkxNywgMS4yMDA4NCIsIFwKLSAgICAgICAgICAiMC4yODYxMTgsIDAuNDQ1NjI5LCAwLjU5MTgzOCwgMC42OTU5NzUsIDAuODYyNTUzLCAxLjAwODEyLCAxLjIxNjA0IiwgXAotICAgICAgICAgICIwLjMxMDA4MywgMC40Njk1MzksIDAuNjE1ODIyLCAwLjcxOTkyNSwgMC44ODY0ODUsIDEuMDMyMTMsIDEuMjQwMDIiLCBcCi0gICAgICAgICAgIjAuMzI5ODQ4LCAwLjQ4OTM4MywgMC42MzU1NCwgMC43Mzk2NTYsIDAuOTA2MjMyLCAxLjA1MTc5LCAxLjI1OTcxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg1ODY1LCAwLjM2MDQ4NCwgMC42NDQzMjksIDAuODQ5MzM1LCAxLjE4MTM5LCAxLjQ3MjM2LCAxLjg4NzQzIiwgXAotICAgICAgICAgICIwLjA4NTg0NSwgMC4zNjA0OTYsIDAuNjQ2MTEsIDAuODUwOTAzLCAxLjE3OTE4LCAxLjQ3MjI5LCAxLjg4NzMiLCBcCi0gICAgICAgICAgIjAuMDg1NzQ1LCAwLjM2MDQxNSwgMC42NDQ2MzgsIDAuODUyNjIzLCAxLjE4MDI3LCAxLjQ3MjE5LCAxLjg4NjgiLCBcCi0gICAgICAgICAgIjAuMDg1ODI5LCAwLjM2MDQ4NiwgMC42NDYyMTEsIDAuODUxNDg1LCAxLjE4MTQyLCAxLjQ3MjE0LCAxLjg4NzEiLCBcCi0gICAgICAgICAgIjAuMDg1ODI2LCAwLjM2MDQ4NiwgMC42NDYxODksIDAuODUxNDg0LCAxLjE3OTAzLCAxLjQ3MjEyLCAxLjg4NzA2IiwgXAotICAgICAgICAgICIwLjA4NTgyNCwgMC4zNjA3NDIsIDAuNjQ2MzEzLCAwLjg0OTcyLCAxLjE4Mjc3LCAxLjQ2ODY2LCAxLjg4NjciLCBcCi0gICAgICAgICAgIjAuMDg1ODY5LCAwLjM2MDQ4MiwgMC42NDQ2NzgsIDAuODUwNTg2LCAxLjE3OTUzLCAxLjQ3MjMzLCAxLjg4NzQzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTY3NzExLCAwLjMwOTg0NSwgMC40Mzc0NTQsIDAuNTI4MjA3LCAwLjY3MzI1MSwgMC44MDAxNDcsIDAuOTgxMjMyIiwgXAotICAgICAgICAgICIwLjE3ODY1OSwgMC4zMjA5ODksIDAuNDQ4NTQ1LCAwLjUzOTI0OCwgMC42ODQyOTMsIDAuODExMTE5LCAwLjk5MjI2MyIsIFwKLSAgICAgICAgICAiMC4xOTIxNDcsIDAuMzM0NDkzLCAwLjQ2MjA1NCwgMC41NTI3NDcsIDAuNjk3NzkzLCAwLjgyNDY2NSwgMS4wMDU4NSIsIFwKLSAgICAgICAgICAiMC4yMDU1MzgsIDAuMzQ3ODIyLCAwLjQ3NTM5NiwgMC41NjYwODcsIDAuNzExMTQ1LCAwLjgzODA5MiwgMS4wMTkxNyIsIFwKLSAgICAgICAgICAiMC4yMTg5MzYsIDAuMzYxMjg1LCAwLjQ4ODg0OCwgMC41Nzk1NCwgMC43MjQ1ODcsIDAuODUxNDk4LCAxLjAzMjU4IiwgXAotICAgICAgICAgICIwLjI0MDU1MiwgMC4zODI4MzYsIDAuNTEwNDIyLCAwLjYwMTE3OCwgMC43NDYyMTksIDAuODczMTQ5LCAxLjA1NDIzIiwgXAotICAgICAgICAgICIwLjI1OTY0LCAwLjQwMTk0OCwgMC41Mjk1MzMsIDAuNjIwMjM5LCAwLjc2NTI3NCwgMC44OTIxOTcsIDEuMDczMzQiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODI3NTUsIDAuMzI1MTY3LCAwLjU3Njg0MywgMC43NTkyODQsIDEuMDUyNSwgMS4zMTM0NSwgMS42ODIzMiIsIFwKLSAgICAgICAgICAiMC4wODI4NDYsIDAuMzI1MTAxLCAwLjU3ODA3MywgMC43NTkyNDcsIDEuMDUyNywgMS4zMTMwNCwgMS42ODE5OCIsIFwKLSAgICAgICAgICAiMC4wODI4MjMsIDAuMzI1MTIzLCAwLjU3ODA1MiwgMC43NTk4NjUsIDEuMDUzNDgsIDEuMzExMDYsIDEuNjgyNTIiLCBcCi0gICAgICAgICAgIjAuMDgyOTAxLCAwLjMyNTEwNSwgMC41NzgwOTgsIDAuNzU5NzMxLCAxLjA1NTAyLCAxLjMwOTg5LCAxLjY4MjMxIiwgXAotICAgICAgICAgICIwLjA4MjgyOSwgMC4zMjUwODcsIDAuNTc3OTU4LCAwLjc1OTc2NywgMS4wNTMzNSwgMS4zMTMzNywgMS42ODIxOSIsIFwKLSAgICAgICAgICAiMC4wODI5NjUsIDAuMzI1MDIyLCAwLjU3NzEwMSwgMC43NTk3MTksIDEuMDUzMjIsIDEuMzEzNDMsIDEuNjgyMjMiLCBcCi0gICAgICAgICAgIjAuMDgyOTUxLCAwLjMyNTEzMSwgMC41Nzc5ODQsIDAuNzU5Nzk0LCAxLjA1NDc1LCAxLjMxMDMzLCAxLjY4MjM0Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTc1ODY1LCAwLjM0MjYxLCAwLjQ4OTQyLCAwLjU5MzU3MiwgMC43NTk5OTIsIDAuOTA1NTY3LCAxLjExMzU5IiwgXAotICAgICAgICAgICIwLjE4NjI2MywgMC4zNTMxMjMsIDAuNDk5OTUsIDAuNjA0MTE5LCAwLjc3MDUxOCwgMC45MTYyMDIsIDEuMTI0MDciLCBcCi0gICAgICAgICAgIjAuMTk5NCwgMC4zNjYxODUsIDAuNTEyOTgzLCAwLjYxNzExMywgMC43ODM1OTgsIDAuOTI5MTksIDEuMTM3MTMiLCBcCi0gICAgICAgICAgIjAuMjEyMzAyLCAwLjM3OTEwOSwgMC41MjU5NjcsIDAuNjMwMTQ1LCAwLjc5NjU0NywgMC45NDIyMzIsIDEuMTUwMTEiLCBcCi0gICAgICAgICAgIjAuMjI1MTQyLCAwLjM5MTg3OSwgMC41Mzg2NzMsIDAuNjQyNzk0LCAwLjgwOTI0OCwgMC45NTQ4OTYsIDEuMTYyODUiLCBcCi0gICAgICAgICAgIjAuMjQ1NDUyLCAwLjQxMjIzOSwgMC41NTkwNTYsIDAuNjYzMjI5LCAwLjgyOTY2LCAwLjk3NTM1NCwgMS4xODMyMyIsIFwKLSAgICAgICAgICAiMC4yNjM0MDIsIDAuNDMwMDc2LCAwLjU3Njg5NywgMC42ODEwOSwgMC44NDc1MDUsIDAuOTkzMiwgMS4yMDEwOCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5NTA4NCwgMC4zNjg5MzUsIDAuNjUxMjU2LCAwLjg1NjQ3MywgMS4xODI2OCwgMS40NzU1LCAxLjg4OTg3IiwgXAotICAgICAgICAgICIwLjA5NTAxOSwgMC4zNjkxMzMsIDAuNjUwOTY4LCAwLjg1MzQ4NiwgMS4xODI5NCwgMS40NzE0LCAxLjg4OTgyIiwgXAotICAgICAgICAgICIwLjA5NTE1LCAwLjM2ODk0MiwgMC42NTExNjcsIDAuODU2MzQ2LCAxLjE4NjI4LCAxLjQ3MzIyLCAxLjg4OTg1IiwgXAotICAgICAgICAgICIwLjA5NTAzNSwgMC4zNjg4MDIsIDAuNjUwODk5LCAwLjg1MzQ4LCAxLjE4MzMyLCAxLjQ3MTI0LCAxLjg4OTgzIiwgXAotICAgICAgICAgICIwLjA5NTA5OSwgMC4zNjg5MjgsIDAuNjUxMjk3LCAwLjg1NjEwMiwgMS4xODYxMywgMS40NzM0NywgMS44ODk4NiIsIFwKLSAgICAgICAgICAiMC4wOTUwNzgsIDAuMzY4ODg0LCAwLjY1MDk1NiwgMC44NTM2NjUsIDEuMTg0NjgsIDEuNDcwMzksIDEuODg5ODMiLCBcCi0gICAgICAgICAgIjAuMDk0OTU1LCAwLjM2ODg5MSwgMC42NTA5MTQsIDAuODUzNzIyLCAxLjE4Mzg2LCAxLjQ3MTIxLCAxLjg4OTgzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTgzODgxLCAwLjMzNDczMSwgMC40NjMwNTMsIDAuNTUzODIyLCAwLjY5ODc0MiwgMC44MjU2MDcsIDEuMDA2NzIiLCBcCi0gICAgICAgICAgIjAuMTk1Nzc2LCAwLjM0Njc2NCwgMC40NzUwOTQsIDAuNTY1ODk4LCAwLjcxMDgxNCwgMC44Mzc1OTMsIDEuMDE4NjgiLCBcCi0gICAgICAgICAgIjAuMjEwOTA0LCAwLjM2MTY1MSwgMC40OTAwMzYsIDAuNTgwODUsIDAuNzI1NzY3LCAwLjg1MjU0MSwgMS4wMzM2OSIsIFwKLSAgICAgICAgICAiMC4yMjU0OCwgMC4zNzYzMjQsIDAuNTA0NjcsIDAuNTk1NDcxLCAwLjc0MDM4NywgMC44NjcxNjYsIDEuMDQ4MjQiLCBcCi0gICAgICAgICAgIjAuMjM5OTAxLCAwLjM5MDg2NywgMC41MTkwMTIsIDAuNjA5ODAyLCAwLjc1NDc4NCwgMC44ODE1NTQsIDEuMDYyNzkiLCBcCi0gICAgICAgICAgIjAuMjYxMzkyLCAwLjQxMjM1NiwgMC41NDA2MTUsIDAuNjMxMzYsIDAuNzc2Mjk5LCAwLjkwMzA5NiwgMS4wODQzMiIsIFwKLSAgICAgICAgICAiMC4yNzg2NTEsIDAuNDI5NTU3LCAwLjU1Nzg3NywgMC42NDg2MzgsIDAuNzkzNTYzLCAwLjkyMDM3MSwgMS4xMDE0Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDkyOTMsIDAuMzM1MDY3LCAwLjU4NDQ5MywgMC43NjYwMjksIDEuMDU2OSwgMS4zMTYwMSwgMS42ODcwNiIsIFwKLSAgICAgICAgICAiMC4wOTI5MTUsIDAuMzM1MDcsIDAuNTg0NjE0LCAwLjc2NjA2NCwgMS4wNTY5LCAxLjMxMzU3LCAxLjY4NDEiLCBcCi0gICAgICAgICAgIjAuMDkzMDAxLCAwLjMzNDk5NywgMC41ODQ2MTcsIDAuNzY2MDY0LCAxLjA1NjksIDEuMzE1NDQsIDEuNjg0MzMiLCBcCi0gICAgICAgICAgIjAuMDkzMTYxLCAwLjMzNTA4MiwgMC41ODQ1ODYsIDAuNzY2MDQ5LCAxLjA1Njg0LCAxLjMxMzU1LCAxLjY4MzkiLCBcCi0gICAgICAgICAgIjAuMDkyODg1LCAwLjMzNTIyLCAwLjU4NDEzOSwgMC43NjYxMzcsIDEuMDU4NDIsIDEuMzEzNTgsIDEuNjgwMDEiLCBcCi0gICAgICAgICAgIjAuMDkzMTI5LCAwLjMzNTE3MSwgMC41ODQ2NTUsIDAuNzY0NDg3LCAxLjA1ODIyLCAxLjMxMzQsIDEuNjgwMDIiLCBcCi0gICAgICAgICAgIjAuMDkyOTYsIDAuMzM1MDUzLCAwLjU4NDQ4NiwgMC43NjU5MjUsIDEuMDU2OSwgMS4zMTU3NiwgMS42ODM2NCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIwMTQyNCwgMC4zNjA4NTgsIDAuNTA3MTQ1LCAwLjYxMTI2MiwgMC43Nzc4MDMsIDAuOTIzMzg0LCAxLjEzMTQ3IiwgXAotICAgICAgICAgICIwLjIxMzcxMiwgMC4zNzMyMzksIDAuNTE5NDUyLCAwLjYyMzU5OSwgMC43OTAwNTcsIDAuOTM1NzIsIDEuMTQzNjQiLCBcCi0gICAgICAgICAgIjAuMjI5MzA1LCAwLjM4ODc1OSwgMC41MzUwNDksIDAuNjM5MTU3LCAwLjgwNTcxMiwgMC45NTEzMDcsIDEuMTU5MjkiLCBcCi0gICAgICAgICAgIjAuMjQ0MjExLCAwLjQwMzY2MywgMC41NDk5MDIsIDAuNjU0MDE2LCAwLjgyMDYwNSwgMC45NjYxNTYsIDEuMTc0MDgiLCBcCi0gICAgICAgICAgIjAuMjU5NDgsIDAuNDE4OTczLCAwLjU2NTE4MiwgMC42NjkzMiwgMC44MzU4OTIsIDAuOTgxNDY3LCAxLjE4OTM5IiwgXAotICAgICAgICAgICIwLjI4MTU4MSwgMC40NDEwMzQsIDAuNTg3MjQyLCAwLjY5MTM4NSwgMC44NTc5ODMsIDEuMDAzNTMsIDEuMjExNDUiLCBcCi0gICAgICAgICAgIjAuMjk5MTc0LCAwLjQ1ODc1NywgMC42MDQ5NTEsIDAuNzA5MDk0LCAwLjg3NTU3NCwgMS4wMjEyNSwgMS4yMjkxNyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4NTg1MiwgMC4zNjA4MTQsIDAuNjQ2NDIxLCAwLjg1MDQ1LCAxLjE4MzEsIDEuNDY5NzksIDEuODgwNzUiLCBcCi0gICAgICAgICAgIjAuMDg1ODk1LCAwLjM2MDQ3NCwgMC42NDQ2MjgsIDAuODUyNjE3LCAxLjE4MzI1LCAxLjQ3MjE5LCAxLjg4NzMxIiwgXAotICAgICAgICAgICIwLjA4NTg2MiwgMC4zNjA3NjgsIDAuNjQ2MzYxLCAwLjg0OTk0MiwgMS4xODI4NywgMS40Njk0OCwgMS44ODYzNiIsIFwKLSAgICAgICAgICAiMC4wODU5MTQsIDAuMzYwNTksIDAuNjQ0OTM4LCAwLjg1MTE3OSwgMS4xNzkyNSwgMS40NzIyLCAxLjg4NzI4IiwgXAotICAgICAgICAgICIwLjA4NTgxNywgMC4zNjA0ODksIDAuNjQ2MTgyLCAwLjg1MTQ4NCwgMS4xNzk2NSwgMS40NzIwOSwgMS44ODcwNyIsIFwKLSAgICAgICAgICAiMC4wODU4OTYsIDAuMzYwNTYzLCAwLjY0NTk5NSwgMC44NTE0MTQsIDEuMTc5MDMsIDEuNDcyMTMsIDEuODg3MTIiLCBcCi0gICAgICAgICAgIjAuMDg1NzkyLCAwLjM2MDMyOSwgMC42NDU3MTQsIDAuODUwMjA4LCAxLjE4MzE1LCAxLjQ3MjEsIDEuODg3MDUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNTY2MSwgMC4wMDU4LCAwLjAwNTgyNSwgMC4wMDU4MzMsIDAuMDA1ODQsIDAuMDA1ODQ0LCAwLjAwNTg0NyIsIFwKLSAgICAgICAgICAiMC4wMDU2NTEsIDAuMDA1NzkxLCAwLjAwNTgxNSwgMC4wMDU4MjQsIDAuMDA1ODMsIDAuMDA1ODM0LCAwLjAwNTgzNyIsIFwKLSAgICAgICAgICAiMC4wMDU2NDMsIDAuMDA1NzgyLCAwLjAwNTgwNywgMC4wMDU4MTUsIDAuMDA1ODIyLCAwLjAwNTgyNCwgMC4wMDU4MyIsIFwKLSAgICAgICAgICAiMC4wMDU2MzYsIDAuMDA1Nzc1LCAwLjAwNTgsIDAuMDA1ODA4LCAwLjAwNTgxNSwgMC4wMDU4MTksIDAuMDA1ODIzIiwgXAotICAgICAgICAgICIwLjAwNTYzMywgMC4wMDU3NzIsIDAuMDA1Nzk2LCAwLjAwNTgwNCwgMC4wMDU4MTEsIDAuMDA1ODE1LCAwLjAwNTgxOCIsIFwKLSAgICAgICAgICAiMC4wMDU2MjgsIDAuMDA1NzY2LCAwLjAwNTc5MywgMC4wMDU3OTksIDAuMDA1ODA4LCAwLjAwNTgxLCAwLjAwNTgxNSIsIFwKLSAgICAgICAgICAiMC4wMDU2MjQsIDAuMDA1NzY0LCAwLjAwNTc4OSwgMC4wMDU3OTcsIDAuMDA1ODA0LCAwLjAwNTgwOCwgMC4wMDU4MTIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNTcwMSwgMC4wMDU4ODUsIDAuMDA1OTE5LCAwLjAwNTkyOSwgMC4wMDU5MzksIDAuMDA1OTQ0LCAwLjAwNTk0OCIsIFwKLSAgICAgICAgICAiMC4wMDU2ODgsIDAuMDA1ODcyLCAwLjAwNTkwNSwgMC4wMDU5MTYsIDAuMDA1OTI1LCAwLjAwNTkzMSwgMC4wMDU5MzUiLCBcCi0gICAgICAgICAgIjAuMDA1Njc2LCAwLjAwNTg2MSwgMC4wMDU4OTUsIDAuMDA1OTA1LCAwLjAwNTkxNSwgMC4wMDU5MiwgMC4wMDU5MjQiLCBcCi0gICAgICAgICAgIjAuMDA1NjcsIDAuMDA1ODU0LCAwLjAwNTg4OCwgMC4wMDU4OTgsIDAuMDA1OTA4LCAwLjAwNTkxMywgMC4wMDU5MTgiLCBcCi0gICAgICAgICAgIjAuMDA1NjY1LCAwLjAwNTg1LCAwLjAwNTg4MywgMC4wMDU4OTQsIDAuMDA1OTAzLCAwLjAwNTkwOSwgMC4wMDU5MTMiLCBcCi0gICAgICAgICAgIjAuMDA1NjYyLCAwLjAwNTg0NiwgMC4wMDU4NzksIDAuMDA1ODksIDAuMDA1OSwgMC4wMDU5MDUsIDAuMDA1OTA5IiwgXAotICAgICAgICAgICIwLjAwNTY2LCAwLjAwNTg0NCwgMC4wMDU4NzgsIDAuMDA1ODg4LCAwLjAwNTg5OCwgMC4wMDU5MDMsIDAuMDA1OTA4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDUzNzcsIDAuMDA1NTEyLCAwLjAwNTUzNiwgMC4wMDU1NDQsIDAuMDA1NTUyLCAwLjAwNTU1NSwgMC4wMDU1NTkiLCBcCi0gICAgICAgICAgIjAuMDA1Mzk0LCAwLjAwNTUyOCwgMC4wMDU1NTIsIDAuMDA1NTU2LCAwLjAwNTU2NywgMC4wMDU1NzEsIDAuMDA1NTc1IiwgXAotICAgICAgICAgICIwLjAwNTQyNCwgMC4wMDU1NTMsIDAuMDA1NTc4LCAwLjAwNTU4NiwgMC4wMDU1OTMsIDAuMDA1NTk3LCAwLjAwNTYwMSIsIFwKLSAgICAgICAgICAiMC4wMDU0NDgsIDAuMDA1NTczLCAwLjAwNTYsIDAuMDA1NjA3LCAwLjAwNTYxNSwgMC4wMDU2MTksIDAuMDA1NjIzIiwgXAotICAgICAgICAgICIwLjAwNTQ3NiwgMC4wMDU1OTgsIDAuMDA1NjIzLCAwLjAwNTYzMiwgMC4wMDU2MzksIDAuMDA1NjQ0LCAwLjAwNTY0OSIsIFwKLSAgICAgICAgICAiMC4wMDU1MSwgMC4wMDU2MjcsIDAuMDA1NjUzLCAwLjAwNTY2MiwgMC4wMDU2NzEsIDAuMDA1Njc1LCAwLjAwNTY4IiwgXAotICAgICAgICAgICIwLjAwNTUzNCwgMC4wMDU2NSwgMC4wMDU2NzYsIDAuMDA1Njg3LCAwLjAwNTY5NCwgMC4wMDU2OTksIDAuMDA1NzAzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQ5MDgsIDAuMDA1MDg3LCAwLjAwNTEyMSwgMC4wMDUxMzMsIDAuMDA1MTQzLCAwLjAwNTE0OCwgMC4wMDUxNTMiLCBcCi0gICAgICAgICAgIjAuMDA0OTA2LCAwLjAwNTA4NSwgMC4wMDUxMTksIDAuMDA1MTMxLCAwLjAwNTE0MSwgMC4wMDUxNDYsIDAuMDA1MTUxIiwgXAotICAgICAgICAgICIwLjAwNDkwNywgMC4wMDUwODYsIDAuMDA1MTIsIDAuMDA1MTMxLCAwLjAwNTE0MiwgMC4wMDUxNDcsIDAuMDA1MTUyIiwgXAotICAgICAgICAgICIwLjAwNDkwOCwgMC4wMDUwODcsIDAuMDA1MTIxLCAwLjAwNTEzMiwgMC4wMDUxNDIsIDAuMDA1MTQ4LCAwLjAwNTE1MyIsIFwKLSAgICAgICAgICAiMC4wMDQ5MDksIDAuMDA1MDg5LCAwLjAwNTEyMiwgMC4wMDUxMzMsIDAuMDA1MTQzLCAwLjAwNTE0OSwgMC4wMDUxNTQiLCBcCi0gICAgICAgICAgIjAuMDA0OTEsIDAuMDA1MDksIDAuMDA1MTI0LCAwLjAwNTEzNSwgMC4wMDUxNDUsIDAuMDA1MTUxLCAwLjAwNTE1NiIsIFwKLSAgICAgICAgICAiMC4wMDQ5MTEsIDAuMDA1MDkxLCAwLjAwNTEyNSwgMC4wMDUxMzYsIDAuMDA1MTQ3LCAwLjAwNTE1MiwgMC4wMDUxNTciKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBERkZIUVgxICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKERGRkhRWDEpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4yNjM2NDE7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgZmYgKE4zMCxRQklOVCkgewotICAgIG5leHRfc3RhdGUgOiAiRCI7Ci0gICAgY2xvY2tlZF9vbiA6ICJDSyI7Ci0gIH0KLSAgcGluKENLKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2MDMyOTk7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjAzOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDYwMzI5OTsKLSAgICBjbG9jayA6IHRydWU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyNTM5LCAwLjAwMjUyOCwgMC4wMDI1MTgsIDAuMDAyNTEyLCAwLjAwMjUwNywgMC4wMDI1LCAwLjAwMjQ5NiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNjAxNSwgMC4wMDYwMDgsIDAuMDA2MDAxLCAwLjAwNTk5NSwgMC4wMDU5OSwgMC4wMDU5ODIsIDAuMDA1OTc5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRCI7Ci0gICAgICBzZGZfY29uZCA6ICJEID09IDEnYjAiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMzA5OTYyLCAwLjMyMTgwMSwgMC4zMzcwNjYsIDAuMzUyNTU2LCAwLjM2Nzk4MiwgMC4zOTIzOTksIDAuNDEzNTIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjIxMTc3MSwgMC4yMjMyMzcsIDAuMjM4MTY4LCAwLjI1MzAyNCwgMC4yNjc3ODcsIDAuMjkwNjkyLCAwLjMxMDI0NyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNzM4OTA5OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDczNjQzMjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA3Mzg5MDk7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyMzEyLCAwLjAwMjI5NSwgMC4wMDIyODMsIDAuMDAyMjc2LCAwLjAwMjI3MSwgMC4wMDIyNjIsIDAuMDAyMjU4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyODM0LCAwLjAwMjgyNSwgMC4wMDI4MTksIDAuMDAyODE0LCAwLjAwMjgwOSwgMC4wMDI4MDQsIDAuMDAyOCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAzNzUsIC0wLjAyNjI1LCAtMC4wMTM3NSwgLTAuMDAxMjUsIDAuMDA1LCAwLjAyMTI1LCAwLjAzNjI1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDM3NSwgLTAuMDI1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMC4wMSwgMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjA2MTI1LCAtMC4wNSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAxODc1LCAtMC4wMDI1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjA3Mzc1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDQzNzUsIC0wLjAzMTI1LCAtMC4wMTUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wODYyNSwgLTAuMDgxMjUsIC0wLjA2ODc1LCAtMC4wNTYyNSwgLTAuMDQzNzUsIC0wLjAyNzUsIC0wLjAxODc1IiwgXAotICAgICAgICAgICItMC4xMDg3NSwgLTAuMDk3NSwgLTAuMDg1LCAtMC4wNzI1LCAtMC4wNjYyNSwgLTAuMDUsIC0wLjAzNSIsIFwKLSAgICAgICAgICAiLTAuMTIzNzUsIC0wLjExMjUsIC0wLjEsIC0wLjA5Mzc1LCAtMC4wODEyNSwgLTAuMDY1LCAtMC4wNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDYyNSwgMC4wNzM3NSwgMC4wODYyNSwgMC4xMDUsIDAuMTE3NSwgMC4xNCwgMC4xNjEyNSIsIFwKLSAgICAgICAgICAiMC4wNTEyNSwgMC4wNjI1LCAwLjA3NSwgMC4wODc1LCAwLjEwNjI1LCAwLjEyODc1LCAwLjE1IiwgXAotICAgICAgICAgICIwLjAzMjUsIDAuMDQzNzUsIDAuMDYyNSwgMC4wNzUsIDAuMDkzNzUsIDAuMTE2MjUsIDAuMTM3NSIsIFwKLSAgICAgICAgICAiMC4wMjYyNSwgMC4wMzc1LCAwLjA1LCAwLjA2MjUsIDAuMDgxMjUsIDAuMTAzNzUsIDAuMTI1IiwgXAotICAgICAgICAgICIwLjAxMzc1LCAwLjAyNSwgMC4wMzc1LCAwLjA1NjI1LCAwLjA2ODc1LCAwLjA5MTI1LCAwLjExMjUiLCBcCi0gICAgICAgICAgIi0wLjAwMjUsIDAuMDE1LCAwLjAyNzUsIDAuMDQsIDAuMDUyNSwgMC4wODEyNSwgMC4xMDI1IiwgXAotICAgICAgICAgICItMC4wMTEyNSwgMCwgMC4wMTI1LCAwLjAzMTI1LCAwLjA0Mzc1LCAwLjA2NjI1LCAwLjA4NzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDgxMjUsIDAuMDcsIDAuMDU3NSwgMC4wNDUsIDAuMDMyNSwgMC4wMTYyNSwgMC4wMDEyNSIsIFwKLSAgICAgICAgICAiMC4wOTI1LCAwLjA4MTI1LCAwLjA2ODc1LCAwLjA1LCAwLjA0Mzc1LCAwLjAyNzUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4xMDUsIDAuMDkzNzUsIDAuMDgxMjUsIDAuMDY4NzUsIDAuMDU2MjUsIDAuMDQsIDAuMDI1IiwgXAotICAgICAgICAgICIwLjExNzUsIDAuMTA2MjUsIDAuMDkzNzUsIDAuMDgxMjUsIDAuMDY4NzUsIDAuMDUyNSwgMC4wMzc1IiwgXAotICAgICAgICAgICIwLjEzLCAwLjExODc1LCAwLjEwNjI1LCAwLjA5Mzc1LCAwLjA4MTI1LCAwLjA2NSwgMC4wNSIsIFwKLSAgICAgICAgICAiMC4xNTI1LCAwLjE0MTI1LCAwLjEyODc1LCAwLjExNjI1LCAwLjEwMzc1LCAwLjA4NzUsIDAuMDcyNSIsIFwKLSAgICAgICAgICAiMC4xNzM3NSwgMC4xNTYyNSwgMC4xNDM3NSwgMC4xMzEyNSwgMC4xMTg3NSwgMC4xMDI1LCAwLjA4NzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTI1LCAwLjAwMTI1LCAtMC4wMTc1LCAtMC4wMywgLTAuMDQ4NzUsIC0wLjA3MTI1LCAtMC4wOTI1IiwgXAotICAgICAgICAgICIwLjAyMzc1LCAwLjAxMjUsIC0wLjAwNjI1LCAtMC4wMTg3NSwgLTAuMDM3NSwgLTAuMDYsIC0wLjA4MTI1IiwgXAotICAgICAgICAgICIwLjAzNjI1LCAwLjAyNSwgMC4wMDYyNSwgLTAuMDA2MjUsIC0wLjAyNSwgLTAuMDQ3NSwgLTAuMDY4NzUiLCBcCi0gICAgICAgICAgIjAuMDQ4NzUsIDAuMDM3NSwgMC4wMTg3NSwgMC4wMDYyNSwgLTAuMDEyNSwgLTAuMDM1LCAtMC4wNTYyNSIsIFwKLSAgICAgICAgICAiMC4wNjEyNSwgMC4wNSwgMC4wMzEyNSwgMC4wMTI1LCAwLCAtMC4wMjI1LCAtMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4wNzc1LCAwLjA2NjI1LCAwLjA1Mzc1LCAwLjAzNSwgMC4wMTYyNSwgLTAuMDA2MjUsIC0wLjAyNzUiLCBcCi0gICAgICAgICAgIjAuMDkyNSwgMC4wODEyNSwgMC4wNjg3NSwgMC4wNSwgMC4wMzc1LCAwLjAwODc1LCAtMC4wMTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihRKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMTMxMTQxOwotICAgIGZ1bmN0aW9uIDogIk4zMCI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3NlbnNlIDogbm9uX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiByaXNpbmdfZWRnZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjY2ODEyLCAwLjMwOTkxNywgMC41NTQyLCAwLjc2OTg2OCwgMS4wNTc0NiwgMS42MzI4MywgMS45OTIyMyIsIFwKLSAgICAgICAgICAiMC4yNzg2MzQsIDAuMzIxNzQyLCAwLjU2NjAxNiwgMC43ODE3MDEsIDEuMDY5MzEsIDEuNjQ0NTEsIDIuMDA0IiwgXAotICAgICAgICAgICIwLjI5MzgzLCAwLjMzNjkzMSwgMC41ODEyMDEsIDAuNzk2ODg4LCAxLjA4NDQ1LCAxLjY1OTg1LCAyLjAxOTI0IiwgXAotICAgICAgICAgICIwLjMwOTMzMiwgMC4zNTI0MzksIDAuNTk2NzA5LCAwLjgxMjM5OSwgMS4wOTk5MiwgMS42NzUzNSwgMi4wMzQ4IiwgXAotICAgICAgICAgICIwLjMyNDc2NywgMC4zNjc4NzcsIDAuNjEyMTUsIDAuODI3ODg0LCAxLjExNTQzLCAxLjY5MDc5LCAyLjA1MDE4IiwgXAotICAgICAgICAgICIwLjM0OTA1NSwgMC4zOTIxNjMsIDAuNjM2NDQsIDAuODUyMTI4LCAxLjEzOTY3LCAxLjcxNTA4LCAyLjA3NDU4IiwgXAotICAgICAgICAgICIwLjM3MDE3MSwgMC40MTMyODIsIDAuNjU3NTYzLCAwLjg3MzI1NywgMS4xNjA4NCwgMS43MzYwOCwgMi4wOTU1OSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNjAwMDYsIDAuMjQ2OTY2LCAwLjc0MjcxMiwgMS4xODM0MywgMS43NjkyNCwgMi45MzM0OSwgMy42NjQ2NyIsIFwKLSAgICAgICAgICAiMC4xNjAyNjQsIDAuMjQ2OTcxLCAwLjc0MjY5NSwgMS4xODM0NywgMS43NjkyMSwgMi45MzM5OSwgMy42NjYzNiIsIFwKLSAgICAgICAgICAiMC4xNjAyNTEsIDAuMjQ2OTczLCAwLjc0MzkwMSwgMS4xODM0NSwgMS43NjkwNCwgMi45MzM0NCwgMy42NjQ4NCIsIFwKLSAgICAgICAgICAiMC4xNjAyNTksIDAuMjQ2OTcyLCAwLjc0Mzg5NCwgMS4xODM0NywgMS43Njg1OSwgMi45MzM1MiwgMy42NzI4MyIsIFwKLSAgICAgICAgICAiMC4xNjAwMDksIDAuMjQ2OTY0LCAwLjc0Mzk1OSwgMS4xODM0LCAxLjc2OTIzLCAyLjkzMzc3LCAzLjY2NDU4IiwgXAotICAgICAgICAgICIwLjE2MDI2NywgMC4yNDY5NzIsIDAuNzQzODk1LCAxLjE4MzQ3LCAxLjc2ODg5LCAyLjkzMzI5LCAzLjY3MjY2IiwgXAotICAgICAgICAgICIwLjE2MDI3LCAwLjI0Njk3MiwgMC43NDM4OTksIDEuMTgzNDgsIDEuNzY5MjUsIDIuOTM0NDksIDMuNjY0NzkiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzA5OTYyLCAwLjM1OTQzMSwgMC42MzkzOCwgMC44ODYxODksIDEuMjE1MzIsIDEuODczNTQsIDIuMjg1MDIiLCBcCi0gICAgICAgICAgIjAuMzIxODAxLCAwLjM3MTI1LCAwLjY1MTIwNywgMC44OTgwMTQsIDEuMjI3MTgsIDEuODg1NTUsIDIuMjk2NzgiLCBcCi0gICAgICAgICAgIjAuMzM3MDY2LCAwLjM4NjUzMywgMC42NjY0NjksIDAuOTEzMjk1LCAxLjI0MjQzLCAxLjkwMDcxLCAyLjMxMjI5IiwgXAotICAgICAgICAgICIwLjM1MjU1NiwgMC40MDIwMiwgMC42ODE5NTcsIDAuOTI4NzgyLCAxLjI1NzkyLCAxLjkxNjE5LCAyLjMyNzc4IiwgXAotICAgICAgICAgICIwLjM2Nzk4MiwgMC40MTc0NDQsIDAuNjk3MzkzLCAwLjk0NDIwMywgMS4yNzMzNCwgMS45MzE1LCAyLjM0MzAzIiwgXAotICAgICAgICAgICIwLjM5MjM5OSwgMC40NDE4NjUsIDAuNzIxODA4LCAwLjk2ODYyNCwgMS4yOTc3NiwgMS45NTYwMywgMi4zNjc0NiIsIFwKLSAgICAgICAgICAiMC40MTM1MiwgMC40NjI5ODgsIDAuNzQyOTEsIDAuOTg5NzU3LCAxLjMxODg0LCAxLjk3NzI2LCAyLjM4ODQ0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE3NzgyNywgMC4yNzU4MDEsIDAuODMwMjgxLCAxLjMyMzYxLCAxLjk3ODc2LCAzLjI4OTU5LCA0LjEwMzk1IiwgXAotICAgICAgICAgICIwLjE3NzgyNCwgMC4yNzUyNTYsIDAuODI5MjY5LCAxLjMyMzc2LCAxLjk3ODY0LCAzLjI3OTMyLCA0LjEwMzM5IiwgXAotICAgICAgICAgICIwLjE3NzYxMiwgMC4yNzU3OTYsIDAuODI5MzA3LCAxLjMyMzU3LCAxLjk3ODY5LCAzLjI4NTM4LCA0LjEwMzk1IiwgXAotICAgICAgICAgICIwLjE3NzU5OSwgMC4yNzU3ODcsIDAuODI5MjksIDEuMzIzNTYsIDEuOTc4NzMsIDMuMjg1MzUsIDQuMTAyNjUiLCBcCi0gICAgICAgICAgIjAuMTc3OTk5LCAwLjI3NTc5OSwgMC44MzA1MjUsIDEuMzIzNiwgMS45Nzg3NiwgMy4yOTA1LCA0LjEwNCIsIFwKLSAgICAgICAgICAiMC4xNzc3NDcsIDAuMjc1NzksIDAuODI5MjE5LCAxLjMyMzU5LCAxLjk3ODc0LCAzLjI4NjQ0LCA0LjEwMjg3IiwgXAotICAgICAgICAgICIwLjE3NzcxLCAwLjI3NTgxNywgMC44Mjk0MDQsIDEuMzIzMjIsIDEuOTc3LCAzLjI4MTk3LCA0LjEwMTY1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNTYsIDAuMDA1NTk1LCAwLjAwNTU3NSwgMC4wMDU1NjcsIDAuMDA1NTYxLCAwLjAwNTU1NiwgMC4wMDU1NTQiLCBcCi0gICAgICAgICAgIjAuMDA1NTg4LCAwLjAwNTU4NCwgMC4wMDU1NjMsIDAuMDA1NTU1LCAwLjAwNTU1LCAwLjAwNTU0NSwgMC4wMDU1NDMiLCBcCi0gICAgICAgICAgIjAuMDA1NTc2LCAwLjAwNTU3MiwgMC4wMDU1NTEsIDAuMDA1NTQzLCAwLjAwNTUzNywgMC4wMDU1MzMsIDAuMDA1NTMyIiwgXAotICAgICAgICAgICIwLjAwNTU2NywgMC4wMDU1NjMsIDAuMDA1NTQzLCAwLjAwNTUzNCwgMC4wMDU1MjksIDAuMDA1NTI0LCAwLjAwNTUyMiIsIFwKLSAgICAgICAgICAiMC4wMDU1NjEsIDAuMDA1NTU3LCAwLjAwNTUzNywgMC4wMDU1MjksIDAuMDA1NTIzLCAwLjAwNTUxOSwgMC4wMDU1MTYiLCBcCi0gICAgICAgICAgIjAuMDA1NTQ4LCAwLjAwNTU0NSwgMC4wMDU1MjUsIDAuMDA1NTE3LCAwLjAwNTUxMSwgMC4wMDU1MDYsIDAuMDA1NTA0IiwgXAotICAgICAgICAgICIwLjAwNTU0MywgMC4wMDU1NCwgMC4wMDU1MjEsIDAuMDA1NTEyLCAwLjAwNTUwNywgMC4wMDU1MDEsIDAuMDA1NSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNTk4NSwgMC4wMDU5OTEsIDAuMDA1OTk4LCAwLjAwNiwgMC4wMDYwMDEsIDAuMDA2MDAyLCAwLjAwNjAwMiIsIFwKLSAgICAgICAgICAiMC4wMDU5NzMsIDAuMDA1OTc4LCAwLjAwNTk4NiwgMC4wMDU5ODgsIDAuMDA1OTg5LCAwLjAwNTk4OSwgMC4wMDU5OSIsIFwKLSAgICAgICAgICAiMC4wMDU5NjIsIDAuMDA1OTY4LCAwLjAwNTk3NiwgMC4wMDU5NzcsIDAuMDA1OTc5LCAwLjAwNTk3OSwgMC4wMDU5OCIsIFwKLSAgICAgICAgICAiMC4wMDU5NTMsIDAuMDA1OTU5LCAwLjAwNTk2NywgMC4wMDU5NjgsIDAuMDA1OTY5LCAwLjAwNTk3LCAwLjAwNTk3IiwgXAotICAgICAgICAgICIwLjAwNTk1LCAwLjAwNTk1NiwgMC4wMDU5NjQsIDAuMDA1OTY2LCAwLjAwNTk2NywgMC4wMDU5NjgsIDAuMDA1OTY4IiwgXAotICAgICAgICAgICIwLjAwNTk0NywgMC4wMDU5NTMsIDAuMDA1OTYsIDAuMDA1OTYyLCAwLjAwNTk2MywgMC4wMDU5NjQsIDAuMDA1OTY1IiwgXAotICAgICAgICAgICIwLjAwNTk1MiwgMC4wMDU5NTgsIDAuMDA1OTY2LCAwLjAwNTk2OCwgMC4wMDU5NjksIDAuMDA1OTY5LCAwLjAwNTk3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogREZGSFFYMiAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChERkZIUVgyKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMjk5NTQ3OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIGZmIChOMzAsUUJJTlQpIHsKLSAgICBuZXh0X3N0YXRlIDogIkQiOwotICAgIGNsb2NrZWRfb24gOiAiQ0siOwotICB9Ci0gIHBpbihDSykgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNTI3MDgyOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDUyNjk2NDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA1MjcwODI7Ci0gICAgY2xvY2sgOiB0cnVlOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjQ5NCwgMC4wMDI0ODMsIDAuMDAyNDczLCAwLjAwMjQ2NiwgMC4wMDI0NjEsIDAuMDAyNDU1LCAwLjAwMjQ1MSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNjE5OCwgMC4wMDYxODgsIDAuMDA2MTc4LCAwLjAwNjE2OSwgMC4wMDYxNjIsIDAuMDA2MTUxLCAwLjAwNjE0NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQiOwotICAgICAgc2RmX2NvbmQgOiAiRCA9PSAxJ2IwIjsKLSAgICAgIHJpc2VfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjI4MDk3LCAwLjI5Mjc1OSwgMC4zMDgwNTYsIDAuMzIzNDk5LCAwLjMzODk2NSwgMC4zNjM0MjUsIDAuMzg0NjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjIxNjM1MywgMC4yMjc0NzQsIDAuMjQyODIxLCAwLjI1NzY4MSwgMC4yNzI0MzksIDAuMjk1NjYsIDAuMzE1NDczIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihEKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA3MjY5NjY7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNzIzODY4OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDcyNjk2NjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDI0MywgMC4wMDI0MTMsIDAuMDAyNDAyLCAwLjAwMjM5NSwgMC4wMDIzOSwgMC4wMDIzODIsIDAuMDAyMzc2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyODcxLCAwLjAwMjg2MiwgMC4wMDI4NTYsIDAuMDAyODUxLCAwLjAwMjg0OCwgMC4wMDI4NDMsIDAuMDAyODM5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDM3NSwgLTAuMDMyNSwgLTAuMDIsIC0wLjAwNzUsIDAuMDA1LCAwLjAyMTI1LCAwLjAzIiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDQzNzUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAuMDEsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjA2NzUsIC0wLjA1NjI1LCAtMC4wNDM3NSwgLTAuMDMxMjUsIC0wLjAxODc1LCAtMC4wMDI1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wOCwgLTAuMDY4NzUsIC0wLjA1NjI1LCAtMC4wNDM3NSwgLTAuMDMxMjUsIC0wLjAxNSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA5MjUsIC0wLjA4MTI1LCAtMC4wNjg3NSwgLTAuMDU2MjUsIC0wLjA0Mzc1LCAtMC4wMjc1LCAtMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMTE1LCAtMC4xMDM3NSwgLTAuMDkxMjUsIC0wLjA3ODc1LCAtMC4wNjYyNSwgLTAuMDUsIC0wLjAzNSIsIFwKLSAgICAgICAgICAiLTAuMTMsIC0wLjExODc1LCAtMC4xMDYyNSwgLTAuMDkzNzUsIC0wLjA4MTI1LCAtMC4wNjUsIC0wLjA1NjI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjI1LCAwLjA3Mzc1LCAwLjA4NjI1LCAwLjEwNSwgMC4xMTc1LCAwLjE0LCAwLjE2MTI1IiwgXAotICAgICAgICAgICIwLjA1MTI1LCAwLjA2MjUsIDAuMDc1LCAwLjA5Mzc1LCAwLjEwNjI1LCAwLjEyODc1LCAwLjE1IiwgXAotICAgICAgICAgICIwLjAzODc1LCAwLjA1LCAwLjA2MjUsIDAuMDc1LCAwLjA5Mzc1LCAwLjExNjI1LCAwLjEzNzUiLCBcCi0gICAgICAgICAgIjAuMDI2MjUsIDAuMDM3NSwgMC4wNSwgMC4wNjI1LCAwLjA4MTI1LCAwLjEwMzc1LCAwLjEyNSIsIFwKLSAgICAgICAgICAiMC4wMTM3NSwgMC4wMjUsIDAuMDM3NSwgMC4wNTYyNSwgMC4wNjg3NSwgMC4wOTc1LCAwLjExMjUiLCBcCi0gICAgICAgICAgIjAuMDAzNzUsIDAuMDE1LCAwLjAyNzUsIDAuMDQsIDAuMDUyNSwgMC4wODEyNSwgMC4xMDI1IiwgXAotICAgICAgICAgICItMC4wMTEyNSwgMCwgMC4wMTI1LCAwLjAzMTI1LCAwLjA0Mzc1LCAwLjA2NjI1LCAwLjA4NzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg3NSwgMC4wNzYyNSwgMC4wNjM3NSwgMC4wNTEyNSwgMC4wMzg3NSwgMC4wMjI1LCAwLjAwNzUiLCBcCi0gICAgICAgICAgIjAuMDk4NzUsIDAuMDg3NSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1LCAwLjAzMzc1LCAwLjAxODc1IiwgXAotICAgICAgICAgICIwLjExMTI1LCAwLjEsIDAuMDg3NSwgMC4wNzUsIDAuMDYyNSwgMC4wNDYyNSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4xMjM3NSwgMC4xMTI1LCAwLjEsIDAuMDg3NSwgMC4wNzUsIDAuMDU4NzUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMTM2MjUsIDAuMTI1LCAwLjExMjUsIDAuMSwgMC4wODc1LCAwLjA3MTI1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICIwLjE1ODc1LCAwLjE0NzUsIDAuMTM1LCAwLjEyMjUsIDAuMTEsIDAuMDkzNzUsIDAuMDc4NzUiLCBcCi0gICAgICAgICAgIjAuMTgsIDAuMTY4NzUsIDAuMTUsIDAuMTM3NSwgMC4xMjUsIDAuMTA4NzUsIDAuMSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxODc1LCAwLjAwMTI1LCAtMC4wMTEyNSwgLTAuMDMsIC0wLjA0MjUsIC0wLjA3MTI1LCAtMC4wOTI1IiwgXAotICAgICAgICAgICIwLjAzLCAwLjAxMjUsIDAsIC0wLjAxODc1LCAtMC4wMzEyNSwgLTAuMDYsIC0wLjA4MTI1IiwgXAotICAgICAgICAgICIwLjA0MjUsIDAuMDMxMjUsIDAuMDEyNSwgLTAuMDA2MjUsIC0wLjAxODc1LCAtMC4wNDEyNSwgLTAuMDYyNSIsIFwKLSAgICAgICAgICAiMC4wNTUsIDAuMDQzNzUsIDAuMDI1LCAwLjAwNjI1LCAtMC4wMDYyNSwgLTAuMDM1LCAtMC4wNTYyNSIsIFwKLSAgICAgICAgICAiMC4wNjc1LCAwLjA1LCAwLjAzNzUsIDAuMDE4NzUsIDAuMDA2MjUsIC0wLjAyMjUsIC0wLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjA4Mzc1LCAwLjA3MjUsIDAuMDUzNzUsIDAuMDQxMjUsIDAuMDIyNSwgMCwgLTAuMDIxMjUiLCBcCi0gICAgICAgICAgIjAuMDk4NzUsIDAuMDg3NSwgMC4wNzUsIDAuMDU2MjUsIDAuMDM3NSwgMC4wMTUsIC0wLjAwNjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihRKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMjYwNTA5OwotICAgIGZ1bmN0aW9uIDogIk4zMCI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3NlbnNlIDogbm9uX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiByaXNpbmdfZWRnZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjQ1MTA3LCAwLjQyNDAzMywgMC41NjY3MjIsIDAuNzQ1MTI0LCAwLjkyMzQ0NSwgMS4xMDE4MSwgMS4yODAxOCIsIFwKLSAgICAgICAgICAiMC4yNTY2MiwgMC40MzU1NjUsIDAuNTc4MjIxLCAwLjc1NjYyMywgMC45MzQ5NjUsIDEuMTEzMjgsIDEuMjkxNjciLCBcCi0gICAgICAgICAgIjAuMjcxOTY4LCAwLjQ1MDkxNCwgMC41OTM1ODUsIDAuNzcxOTU3LCAwLjk1MDI3OCwgMS4xMjg2NiwgMS4zMDcwNSIsIFwKLSAgICAgICAgICAiMC4yODc0NiwgMC40NjY0MywgMC42MDkwOTIsIDAuNzg3NDk0LCAwLjk2NTgzNSwgMS4xNDQxNSwgMS4zMjI1MiIsIFwKLSAgICAgICAgICAiMC4zMDI5MzIsIDAuNDgxODk1LCAwLjYyNDU1MywgMC44MDI5NTgsIDAuOTgxMywgMS4xNTk2MywgMS4zMzc5OSIsIFwKLSAgICAgICAgICAiMC4zMjcyMTQsIDAuNTA2MTc1LCAwLjY0ODgzNSwgMC44MjcyMzgsIDEuMDA1NTgsIDEuMTgzOSwgMS4zNjIyNyIsIFwKLSAgICAgICAgICAiMC4zNDg0MDIsIDAuNTI3MzY0LCAwLjY3MDAyMSwgMC44NDg0MjIsIDEuMDI2NzYsIDEuMjA1MDcsIDEuMzgzNDYiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDkwNTU1LCAwLjQ0ODgzLCAwLjczOTI3NCwgMS4xMDMyLCAxLjQ2NjY1LCAxLjgzMDQsIDIuMTk0MiIsIFwKLSAgICAgICAgICAiMC4wOTA1NywgMC40NDc4LCAwLjczOTI0MSwgMS4xMDMxNywgMS40NjY3NCwgMS44Mjc0MiwgMi4xOTQwNCIsIFwKLSAgICAgICAgICAiMC4wOTA1MzUsIDAuNDQ3NjQyLCAwLjczODA3OCwgMS4xMDMwNSwgMS40NjY0NiwgMS44MzAzNiwgMi4xOTQyNCIsIFwKLSAgICAgICAgICAiMC4wOTA1MjksIDAuNDQ3NjM0LCAwLjczOTI4NCwgMS4xMDMxOCwgMS40NjY3NiwgMS44MzAyLCAyLjE5Mzk4IiwgXAotICAgICAgICAgICIwLjA5MDU0OSwgMC40NDc2MTEsIDAuNzM5MjU5LCAxLjEwMzE4LCAxLjQ2Njc2LCAxLjgzMDI5LCAyLjE5Mzk5IiwgXAotICAgICAgICAgICIwLjA5MDUzLCAwLjQ0NzYyMSwgMC43MzkyODMsIDEuMTAzMTgsIDEuNDY2NzcsIDEuODMwMjIsIDIuMTkzOTgiLCBcCi0gICAgICAgICAgIjAuMDkwNTI5LCAwLjQ0Nzc5NywgMC43MzkyNjksIDEuMTAzMTYsIDEuNDY2NzUsIDEuODI3MywgMi4xOTQwMiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yODA5NywgMC40ODc3ODIsIDAuNjUyNzcsIDAuODU4OTkzLCAxLjA2NTE5LCAxLjI3MTM3LCAxLjQ3NzYiLCBcCi0gICAgICAgICAgIjAuMjkyNzU5LCAwLjQ5OTU0MiwgMC42NjQ2MzMsIDAuODcwNzY0LCAxLjA3Njk4LCAxLjI4MzE3LCAxLjQ4OTM1IiwgXAotICAgICAgICAgICIwLjMwODA1NiwgMC41MTQ4NCwgMC42Nzk5MzYsIDAuODg2MTAxLCAxLjA5MjI1LCAxLjI5ODQ3LCAxLjUwNDcyIiwgXAotICAgICAgICAgICIwLjMyMzQ5OSwgMC41MzAyODQsIDAuNjk1MzY4LCAwLjkwMTUyMSwgMS4xMDc3MSwgMS4zMTM5MSwgMS41MjAwNSIsIFwKLSAgICAgICAgICAiMC4zMzg5NjUsIDAuNTQ1NzM3LCAwLjcxMDc3LCAwLjkxNjk4NSwgMS4xMjMxOCwgMS4zMjk1MywgMS41MzU2MSIsIFwKLSAgICAgICAgICAiMC4zNjM0MjUsIDAuNTcwMjAzLCAwLjczNTI4NywgMC45NDE0NDIsIDEuMTQ3NjQsIDEuMzUzODEsIDEuNTYwMDUiLCBcCi0gICAgICAgICAgIjAuMzg0NjUsIDAuNTkxNDIzLCAwLjc1NjQ3MiwgMC45NjI2NjUsIDEuMTY4ODYsIDEuMzc1MTMsIDEuNTgxMjkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk5Mjc4LCAwLjUwNzU2NSwgMC44MzY5NzQsIDEuMjQ5MTksIDEuNjYwODgsIDIuMDY3NzQsIDIuNDg0MDkiLCBcCi0gICAgICAgICAgIjAuMDk5MzU1LCAwLjUwNzUzNSwgMC44MzM2ODcsIDEuMjQ1NzcsIDEuNjYwNjMsIDIuMDcyNDcsIDIuNDc5ODMiLCBcCi0gICAgICAgICAgIjAuMDk5MzUsIDAuNTA3NTM0LCAwLjgzNDA4NywgMS4yNDQ5LCAxLjY1NzY5LCAyLjA3MjQsIDIuNDgzNTIiLCBcCi0gICAgICAgICAgIjAuMDk5MzM1LCAwLjUwNzUzNCwgMC44MzM3NzksIDEuMjQ5MDIsIDEuNjU2OTcsIDIuMDcyNTQsIDIuNDg1MTYiLCBcCi0gICAgICAgICAgIjAuMDk5MjYzLCAwLjUwNzUzNSwgMC44MzUxMjksIDEuMjQ5MDMsIDEuNjYwNzksIDIuMDY4NzgsIDIuNDgzNzMiLCBcCi0gICAgICAgICAgIjAuMDk5MjU5LCAwLjUwNjI3MiwgMC44MzM4MywgMS4yNDkwNywgMS42NjA3NSwgMi4wNzI3MiwgMi40ODM5MSIsIFwKLSAgICAgICAgICAiMC4wOTkzMzgsIDAuNTA2Nzk3LCAwLjgzNjMyMiwgMS4yNDkwNywgMS42NjA4MSwgMi4wNzE1LCAyLjQ4Mzc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjQ5NiwgMC4wMDY1MjYsIDAuMDA2NTI5LCAwLjAwNjUzMSwgMC4wMDY1MzIsIDAuMDA2NTMzLCAwLjAwNjUzMiIsIFwKLSAgICAgICAgICAiMC4wMDY0ODIsIDAuMDA2NTEzLCAwLjAwNjUxNiwgMC4wMDY1MTgsIDAuMDA2NTE5LCAwLjAwNjUyLCAwLjAwNjUxOSIsIFwKLSAgICAgICAgICAiMC4wMDY0NzIsIDAuMDA2NTAyLCAwLjAwNjUwNSwgMC4wMDY1MDcsIDAuMDA2NTA4LCAwLjAwNjUwOSwgMC4wMDY1MDgiLCBcCi0gICAgICAgICAgIjAuMDA2NDYzLCAwLjAwNjQ5NCwgMC4wMDY0OTcsIDAuMDA2NDk4LCAwLjAwNjUsIDAuMDA2NDk5LCAwLjAwNjUiLCBcCi0gICAgICAgICAgIjAuMDA2NDU2LCAwLjAwNjQ4NywgMC4wMDY0OSwgMC4wMDY0OTIsIDAuMDA2NDkzLCAwLjAwNjQ5MywgMC4wMDY0OTMiLCBcCi0gICAgICAgICAgIjAuMDA2NDQ0LCAwLjAwNjQ3NCwgMC4wMDY0NzgsIDAuMDA2NDc5LCAwLjAwNjQ4MSwgMC4wMDY0OCwgMC4wMDY0OCIsIFwKLSAgICAgICAgICAiMC4wMDY0MzksIDAuMDA2NDY5LCAwLjAwNjQ3MiwgMC4wMDY0NzQsIDAuMDA2NDc2LCAwLjAwNjQ3NiwgMC4wMDY0NzYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDY1NTMsIDAuMDA2NTk5LCAwLjAwNjYwNCwgMC4wMDY2MDYsIDAuMDA2NjA3LCAwLjAwNjYwOCwgMC4wMDY2MDgiLCBcCi0gICAgICAgICAgIjAuMDA2NTQsIDAuMDA2NTg1LCAwLjAwNjU4OSwgMC4wMDY1OTIsIDAuMDA2NTkzLCAwLjAwNjU5NCwgMC4wMDY1OTQiLCBcCi0gICAgICAgICAgIjAuMDA2NTMxLCAwLjAwNjU3NiwgMC4wMDY1ODEsIDAuMDA2NTgzLCAwLjAwNjU4NCwgMC4wMDY1ODUsIDAuMDA2NTg2IiwgXAotICAgICAgICAgICIwLjAwNjUyMSwgMC4wMDY1NjcsIDAuMDA2NTcxLCAwLjAwNjU3NCwgMC4wMDY1NzUsIDAuMDA2NTc2LCAwLjAwNjU3NiIsIFwKLSAgICAgICAgICAiMC4wMDY1MTksIDAuMDA2NTY0LCAwLjAwNjU2OSwgMC4wMDY1NzEsIDAuMDA2NTcyLCAwLjAwNjU3MiwgMC4wMDY1NzMiLCBcCi0gICAgICAgICAgIjAuMDA2NTE1LCAwLjAwNjU2LCAwLjAwNjU2NCwgMC4wMDY1NjcsIDAuMDA2NTY4LCAwLjAwNjU2OSwgMC4wMDY1NjkiLCBcCi0gICAgICAgICAgIjAuMDA2NTIsIDAuMDA2NTY1LCAwLjAwNjU2OSwgMC4wMDY1NzIsIDAuMDA2NTczLCAwLjAwNjU3MywgMC4wMDY1NzQiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogREZGTlNSWDIgKgotICogLS0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKERGRk5TUlgyKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMzg3NTY5OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIGZmIChOMzUsUUJJTlQpIHsKLSAgICBuZXh0X3N0YXRlIDogIkQiOwotICAgIGNsb2NrZWRfb24gOiAiKCFDS04pIjsKLSAgICBjbGVhciA6ICIoIVJOKSI7Ci0gICAgcHJlc2V0IDogIighU04pIjsKLSAgICBjbGVhcl9wcmVzZXRfdmFyMSA6IEg7Ci0gICAgY2xlYXJfcHJlc2V0X3ZhcjIgOiBMOwotICB9Ci0gIHBpbihDS04pICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY0NDQzOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDY0NDE3MTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2NDQ0MzsKLSAgICBjbG9jayA6IHRydWU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA1MzQ0LCAwLjAwNTMzMywgMC4wMDUzMjMsIDAuMDA1MzE4LCAwLjAwNTMxNCwgMC4wMDUzMDcsIDAuMDA1MzAxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzNzg2LCAwLjAwMzc3OCwgMC4wMDM3NzIsIDAuMDAzNzY3LCAwLjAwMzc2MiwgMC4wMDM3NTYsIDAuMDAzNzU0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQmUk4mU04iOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1JOX0VRXzFfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjI4ODE1LCAwLjI5OTY1NiwgMC4zMTQ1NjQsIDAuMzMwNTc4LCAwLjM0NjEyLCAwLjM3MDQxMSwgMC4zOTEzNzYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjM0NTM3NCwgMC4zNTY5OTgsIDAuMzcxMzYyLCAwLjM4NjI1NCwgMC40MDExMjIsIDAuNDI0MjYyLCAwLjQ0Mzk5MiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjQ4MjgxOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDY0NjUzMzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2NDgyODE7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyNjQ4LCAwLjAwMjYzNywgMC4wMDI2MywgMC4wMDI2MjUsIDAuMDAyNjIxLCAwLjAwMjYxNiwgMC4wMDI2MTIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDI2NzUsIDAuMDAyNjcsIDAuMDAyNjY2LCAwLjAwMjY2MiwgMC4wMDI2NTksIDAuMDAyNjU1LCAwLjAwMjY1MyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDS04iOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX2ZhbGxpbmc7Ci0gICAgICB3aGVuIDogIlJOJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIlJOX0VRXzFfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2MjUsIDAuMDY3NSwgMC4wODYyNSwgMC4wOTg3NSwgMC4xMTEyNSwgMC4xMzM3NSwgMC4xNTUiLCBcCi0gICAgICAgICAgIjAuMDQ1LCAwLjA1NjI1LCAwLjA3NSwgMC4wODc1LCAwLjEsIDAuMTIyNSwgMC4xNDM3NSIsIFwKLSAgICAgICAgICAiMC4wMzI1LCAwLjA0Mzc1LCAwLjA1NjI1LCAwLjA2ODc1LCAwLjA4NzUsIDAuMTEsIDAuMTI1IiwgXAotICAgICAgICAgICIwLjAyLCAwLjAzMTI1LCAwLjA0Mzc1LCAwLjA1NjI1LCAwLjA3NSwgMC4wOTc1LCAwLjExMjUiLCBcCi0gICAgICAgICAgIjAuMDA3NSwgMC4wMTg3NSwgMC4wMzEyNSwgMC4wNDM3NSwgMC4wNjI1LCAwLjA4NSwgMC4xIiwgXAotICAgICAgICAgICItMC4wMDg3NSwgMC4wMDI1LCAwLjAxNSwgMC4wMjc1LCAwLjA0LCAwLjA2MjUsIDAuMDgzNzUiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTI1LCAwLCAwLjAxMjUsIDAuMDMxMjUsIDAuMDQ3NSwgMC4wNjg3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAzNzUsIC0wLjAzMjUsIC0wLjAyLCAtMC4wMDc1LCAtMC4wMDEyNSwgMC4wMTUsIDAuMDIzNzUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wNDM3NSwgLTAuMDMxMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAwLjAwMzc1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjA2MTI1LCAtMC4wNTYyNSwgLTAuMDQzNzUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAwODc1LCAwIiwgXAotICAgICAgICAgICItMC4wNzM3NSwgLTAuMDY4NzUsIC0wLjA1NjI1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDIxMjUsIC0wLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjA4NjI1LCAtMC4wODEyNSwgLTAuMDY4NzUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDMzNzUsIC0wLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMTA4NzUsIC0wLjA5NzUsIC0wLjA4NSwgLTAuMDcyNSwgLTAuMDY2MjUsIC0wLjA1LCAtMC4wNDEyNSIsIFwKLSAgICAgICAgICAiLTAuMTIzNzUsIC0wLjExMjUsIC0wLjEsIC0wLjA4NzUsIC0wLjA4MTI1LCAtMC4wNjUsIC0wLjA1NjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX2ZhbGxpbmc7Ci0gICAgICB3aGVuIDogIlJOJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIlJOX0VRXzFfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMzEyNSwgMC4xMTM3NSwgMC4xMDEyNSwgMC4wODI1LCAwLjA3LCAwLjA0MTI1LCAwLjAyIiwgXAotICAgICAgICAgICIwLjE0MjUsIDAuMTI1LCAwLjExMjUsIDAuMDkzNzUsIDAuMDgxMjUsIDAuMDUyNSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4xNTUsIDAuMTQzNzUsIDAuMTI1LCAwLjExMjUsIDAuMDkzNzUsIDAuMDcxMjUsIDAuMDUiLCBcCi0gICAgICAgICAgIjAuMTY3NSwgMC4xNTYyNSwgMC4xMzc1LCAwLjEyNSwgMC4xMDYyNSwgMC4wODM3NSwgMC4wNjI1IiwgXAotICAgICAgICAgICIwLjE4LCAwLjE2ODc1LCAwLjE1LCAwLjEzNzUsIDAuMTE4NzUsIDAuMDk2MjUsIDAuMDc1IiwgXAotICAgICAgICAgICIwLjIwMjUsIDAuMTkxMjUsIDAuMTcyNSwgMC4xNiwgMC4xNDEyNSwgMC4xMTg3NSwgMC4wOTc1IiwgXAotICAgICAgICAgICIwLjIyMzc1LCAwLjIwNjI1LCAwLjE5Mzc1LCAwLjE3NSwgMC4xNjI1LCAwLjEzMzc1LCAwLjExMjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xODc1LCAwLjE3NjI1LCAwLjE1NzUsIDAuMTQ1LCAwLjEyNjI1LCAwLjEwMzc1LCAwLjA4MjUiLCBcCi0gICAgICAgICAgIjAuMTk4NzUsIDAuMTg3NSwgMC4xNjg3NSwgMC4xNTYyNSwgMC4xMzc1LCAwLjExNSwgMC4wOTM3NSIsIFwKLSAgICAgICAgICAiMC4yMTEyNSwgMC4yLCAwLjE4MTI1LCAwLjE2ODc1LCAwLjE1LCAwLjEyNzUsIDAuMTA2MjUiLCBcCi0gICAgICAgICAgIjAuMjIzNzUsIDAuMjEyNSwgMC4xOTM3NSwgMC4xODEyNSwgMC4xNjI1LCAwLjE0LCAwLjExODc1IiwgXAotICAgICAgICAgICIwLjIzNjI1LCAwLjIyNSwgMC4yMDYyNSwgMC4xOTM3NSwgMC4xNzUsIDAuMTUyNSwgMC4xMzEyNSIsIFwKLSAgICAgICAgICAiMC4yNTg3NSwgMC4yNDc1LCAwLjIyODc1LCAwLjIxLCAwLjE5MTI1LCAwLjE2ODc1LCAwLjE0NzUiLCBcCi0gICAgICAgICAgIjAuMjczNzUsIDAuMjYyNSwgMC4yNDM3NSwgMC4yMjUsIDAuMjEyNSwgMC4xODM3NSwgMC4xNjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihRKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMjY0NjQ5OwotICAgIGZ1bmN0aW9uIDogIk4zNSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0tOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5vbl91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogZmFsbGluZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMzA2MzYsIDAuNTEyNzU3LCAwLjY1NzM2NywgMC44MzcyODksIDEuMDE3NzksIDEuMTk4NjksIDEuMzc5MDYiLCBcCi0gICAgICAgICAgIjAuMzQyMjU3LCAwLjUyNDAzMiwgMC42NjgwOTgsIDAuODQ4ODE4LCAxLjAyOTg0LCAxLjIxMDMyLCAxLjM5MDQ4IiwgXAotICAgICAgICAgICIwLjM1NjkyNSwgMC41MzkwNDgsIDAuNjgzNzQ5LCAwLjg2MzUwNywgMS4wNDQyNSwgMS4yMjUwNCwgMS40MDUyOSIsIFwKLSAgICAgICAgICAiMC4zNzE2NTksIDAuNTUzNzg4LCAwLjY5NzU3MiwgMC44NzgzODcsIDEuMDU5NDgsIDEuMjM5MTQsIDEuNDE5ODEiLCBcCi0gICAgICAgICAgIjAuMzg2NjY0LCAwLjU2OTExMywgMC43MTM0NjcsIDAuODkzNTQ2LCAxLjA3NDcsIDEuMjU0NTIsIDEuNDM0ODciLCBcCi0gICAgICAgICAgIjAuNDEwMDc1LCAwLjU5MTg4OCwgMC43MzU5MzcsIDAuOTE2NTk1LCAxLjA5NzYxLCAxLjI3ODI0LCAxLjQ1ODI4IiwgXAotICAgICAgICAgICIwLjQzMDEwMSwgMC42MTIyMjUsIDAuNzU2OTM5LCAwLjkzNjYyMSwgMS4xMTc0MiwgMS4yOTgwOSwgMS40Nzg0NSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTgxMTksIDAuNDYwMjY0LCAwLjc1NTE0NywgMS4xMjQ5MywgMS40OTY0MSwgMS44Njg1NCwgMi4yNDAyMiIsIFwKLSAgICAgICAgICAiMC4wOTc3OTQsIDAuNDYxOTQxLCAwLjc1ODYzMSwgMS4xMjQ5OCwgMS40OTYyOCwgMS44NTQwOSwgMi4yNDYzOCIsIFwKLSAgICAgICAgICAiMC4wOTgwNywgMC40NjAyNiwgMC43NDkzMDEsIDEuMTI0OTcsIDEuNDk2MjcsIDEuODY4NTMsIDIuMjQ2NDEiLCBcCi0gICAgICAgICAgIjAuMDk3OTUsIDAuNDYwMjQzLCAwLjc1ODU5MiwgMS4xMjQ4OCwgMS40OTYzMiwgMS44NzQ4MSwgMi4yNDYyOCIsIFwKLSAgICAgICAgICAiMC4wOTgxNjQsIDAuNDYwNTA4LCAwLjc1NjE1NywgMS4xMjQ3NiwgMS40OTYzOCwgMS44NjgzMiwgMi4yNDYzNSIsIFwKLSAgICAgICAgICAiMC4wOTc3NzIsIDAuNDYxNTI4LCAwLjc1ODU3MSwgMS4xMjUwNiwgMS40OTYxNSwgMS44NTYxNywgMi4yNDYzNyIsIFwKLSAgICAgICAgICAiMC4wOTgwNDMsIDAuNDYwMjU2LCAwLjc0OTM2MywgMS4xMjUwNywgMS40OTYzNSwgMS44Njg2MiwgMi4yNDY0Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMwMDE5NiwgMC41MDg0MjEsIDAuNjczNDY3LCAwLjg4MTQ5OCwgMS4wODkxNCwgMS4yOTY3NSwgMS41MDQzIiwgXAotICAgICAgICAgICIwLjMxMTg4MiwgMC41MjAyODcsIDAuNjg1MTQyLCAwLjg5MjE5OCwgMS4wOTkwNywgMS4zMDg0LCAxLjUxNTkxIiwgXAotICAgICAgICAgICIwLjMyNjE4OCwgMC41MzQ2MzcsIDAuNjk5NjMsIDAuOTA3NDg4LCAxLjExNTE2LCAxLjMyMjcyLCAxLjUzMDI3IiwgXAotICAgICAgICAgICIwLjM0MTA3NSwgMC41NDkyLCAwLjcxNDM5MiwgMC45MjIzNzgsIDEuMTMwMDIsIDEuMzM3NjMsIDEuNTQ1MTgiLCBcCi0gICAgICAgICAgIjAuMzU1OTQzLCAwLjU2NDE0NiwgMC43MjkyNTYsIDAuOTM3MjQ2LCAxLjE0NDg5LCAxLjM1MjQ5LCAxLjU2MDA0IiwgXAotICAgICAgICAgICIwLjM3OTE0MSwgMC41ODc1NDUsIDAuNzUyNCwgMC45NTk2MDUsIDEuMTY2NTEsIDEuMzc1NjYsIDEuNTgzMTYiLCBcCi0gICAgICAgICAgIjAuMzk4ODE2LCAwLjYwNzA4OSwgMC43NzIxMDQsIDAuOTgwMTE5LCAxLjE4Nzc4LCAxLjM5MTcsIDEuNjAyOSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDQ0MjEsIDAuNTA3MjE3LCAwLjgzNTMxMSwgMS4yNDg2NywgMS42NjA2MSwgMi4wNzIzOCwgMi40ODM5NCIsIFwKLSAgICAgICAgICAiMC4xMDQzNTUsIDAuNTA4MDgsIDAuODM2MDUsIDEuMjQ1OTQsIDEuNjU3OTMsIDIuMDcyMzUsIDIuNDg0MTgiLCBcCi0gICAgICAgICAgIjAuMTA0NTgxLCAwLjUwODA5MiwgMC44MzYxODEsIDEuMjQ4NiwgMS42NjA2NywgMi4wNzI0LCAyLjQ4NDA1IiwgXAotICAgICAgICAgICIwLjEwNDQ0OCwgMC41MDc0ODEsIDAuODM1NzM4LCAxLjI0ODY3LCAxLjY2MDYxLCAyLjA3MjM4LCAyLjQ4Mzk0IiwgXAotICAgICAgICAgICIwLjEwNDQzNywgMC41MDcyLCAwLjgzNTc2NCwgMS4yNDg2NywgMS42NjA2MSwgMi4wNzIzOCwgMi40ODM5NCIsIFwKLSAgICAgICAgICAiMC4xMDQ0NTEsIDAuNTA4MDgzLCAwLjgzNTIxNCwgMS4yNDg2OSwgMS42NjA5MiwgMi4wNzIzNSwgMi40ODQyMSIsIFwKLSAgICAgICAgICAiMC4xMDQ1MTMsIDAuNTA3ODcxLCAwLjgzNjExNSwgMS4yNDg2LCAxLjY2MDY2LCAyLjA2OTU5LCAyLjQ4NDAzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiBjbGVhcjsKLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuNDMwOTk4LCAwLjYzOTIxNSwgMC44MDQwMjMsIDEuMDEyMTMsIDEuMjE5NzgsIDEuNDI3MjMsIDEuNjM0NjQiLCBcCi0gICAgICAgICAgIjAuNDQyNjg5LCAwLjY1MDkwOCwgMC44MTU3NzcsIDEuMDIzOCwgMS4yMzE0NSwgMS40Mzg5MSwgMS42NDYzMSIsIFwKLSAgICAgICAgICAiMC40NTc1NjksIDAuNjY1Nzc1LCAwLjgzMDY3MSwgMS4wMzg2OCwgMS4yNDYzNSwgMS40NTM4MiwgMS42NjA4NiIsIFwKLSAgICAgICAgICAiMC40NzIzNTQsIDAuNjgwNTU4LCAwLjg0NTM2NywgMS4wNTM0NiwgMS4yNjExMywgMS40Njg2LCAxLjY3NTY5IiwgXAotICAgICAgICAgICIwLjQ4NjQxMSwgMC42OTQzMDksIDAuODU5NDk3LCAxLjA2NzUzLCAxLjI3NTE3LCAxLjQ4MjYyLCAxLjY5MDAzIiwgXAotICAgICAgICAgICIwLjUwOTM1MSwgMC43MTcyMzcsIDAuODgyNDM3LCAxLjA5MDQ3LCAxLjI5ODExLCAxLjUwNTU3LCAxLjcxMjk3IiwgXAotICAgICAgICAgICIwLjUyNzQ2NiwgMC43MzUzNjcsIDAuOTAwNTU3LCAxLjEwODU5LCAxLjMxNjIzLCAxLjUyMzY4LCAxLjczMTA4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwNDM4MiwgMC41MDgwMjgsIDAuODM1MzYxLCAxLjI0ODgyLCAxLjY2MDc2LCAyLjA3MjgxLCAyLjQ4NTY0IiwgXAotICAgICAgICAgICIwLjEwNDQxNywgMC41MDgwMDIsIDAuODM1OTUsIDEuMjQ4ODQsIDEuNjYwNzUsIDIuMDcyOCwgMi40ODQzNCIsIFwKLSAgICAgICAgICAiMC4xMDQ1NTQsIDAuNTA4MDAxLCAwLjgzNTU4OCwgMS4yNDg4LCAxLjY2MDU5LCAyLjA3Mjc4LCAyLjQ4NTE0IiwgXAotICAgICAgICAgICIwLjEwNDg0NiwgMC41MDc5OTgsIDAuODM1MzM2LCAxLjI0ODczLCAxLjY2MDU5LCAyLjA3MjgsIDIuNDg1MDUiLCBcCi0gICAgICAgICAgIjAuMTA1MjUxLCAwLjUwNzc1LCAwLjgzNTk0NiwgMS4yNDg4NywgMS42NjA2NiwgMi4wNzI3NywgMi40ODUxIiwgXAotICAgICAgICAgICIwLjEwNDg5MywgMC41MDcxMTEsIDAuODM1NzYxLCAxLjI0ODg1LCAxLjY2MTA1LCAyLjA3MjgxLCAyLjQ4NTA5IiwgXAotICAgICAgICAgICIwLjEwNTA1MywgMC41MDc5ODksIDAuODM1OTIzLCAxLjI0ODg0LCAxLjY2MDcyLCAyLjA3MjksIDIuNDg1MDQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiU04iOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHByZXNldDsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjU0MDE3LCAwLjQzNTUxMywgMC41ODAzMTcsIDAuNzU5Njk0LCAwLjk0MDI1OSwgMS4xMjE0LCAxLjMwMTE0IiwgXAotICAgICAgICAgICIwLjI2NTY1LCAwLjQ0NzE1NywgMC41OTIwMDMsIDAuNzcxMzYxLCAwLjk1MTg5NywgMS4xMzI3MSwgMS4zMTI4MSIsIFwKLSAgICAgICAgICAiMC4yNzk4MjYsIDAuNDYxNDU4LCAwLjYwNjA2NCwgMC43ODY4MSwgMC45NjU1NTUsIDEuMTQ2MywgMS4zMjQ4NCIsIFwKLSAgICAgICAgICAiMC4yOTQ3OTEsIDAuNDc2NDMzLCAwLjYyMDgzNSwgMC44MDA0OTEsIDAuOTgxMDQzLCAxLjE2MTk5LCAxLjM0MTkzIiwgXAotICAgICAgICAgICIwLjMwOTQ1LCAwLjQ5MTA4MywgMC42MzU3MTIsIDAuODE2NDkyLCAwLjk5NTY4MywgMS4xNzU5NCwgMS4zNTY2MSIsIFwKLSAgICAgICAgICAiMC4zMzI3OTQsIDAuNTE0NDI5LCAwLjY1ODYyOCwgMC44Mzk3NywgMS4wMTg4MiwgMS4xOTk2MiwgMS4zODAzMyIsIFwKLSAgICAgICAgICAiMC4zNTMxMjYsIDAuNTM0NzU1LCAwLjY3OTUyOCwgMC44NTkwOTgsIDEuMDM5NjIsIDEuMjE5NywgMS40MDA5MyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTYyNzQsIDAuNDU5OTQ0LCAwLjc1NzYzOCwgMS4xMzEwNywgMS41MDI5MSwgMS44NzQ2NywgMi4yNDYxMyIsIFwKLSAgICAgICAgICAiMC4wOTYyNzUsIDAuNDYxNDU5LCAwLjc1NzYxNywgMS4xMzEwNywgMS41MDI5MSwgMS44NzQ1NSwgMi4yNDYxNiIsIFwKLSAgICAgICAgICAiMC4wOTYyODksIDAuNDYwMDgsIDAuNzU3NjgzLCAxLjEzMTA2LCAxLjUwMjk4LCAxLjg3NDUzLCAyLjI0NjI2IiwgXAotICAgICAgICAgICIwLjA5NjA5NywgMC40NTk2OTgsIDAuNzU4NDE0LCAxLjEzMDk3LCAxLjUwMjk3LCAxLjg3NDUyLCAyLjI0NjAzIiwgXAotICAgICAgICAgICIwLjA5NjA5MiwgMC40NjE3NTcsIDAuNzU2NjA1LCAxLjEzMTA2LCAxLjUwMjk0LCAxLjg3NDcxLCAyLjI0NTg3IiwgXAotICAgICAgICAgICIwLjA5NjA1NCwgMC40NjEzNTYsIDAuNzU0NzU5LCAxLjEzMDk1LCAxLjUwMjg5LCAxLjg3NDY1LCAyLjI0NjI4IiwgXAotICAgICAgICAgICIwLjA5NTk5LCAwLjQ1OTY4NiwgMC43NTc4NzEsIDEuMTMxMDcsIDEuNTAyOTksIDEuODc0NzEsIDIuMjQ1ODMiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzk1MTc4LCAwLjYwMzM5MiwgMC43NjgyMDEsIDAuOTc2MzE3LCAxLjE4Mzk2LCAxLjM5MTQ0LCAxLjU5ODg1IiwgXAotICAgICAgICAgICIwLjQwNzIxMywgMC42MTU0NDQsIDAuNzgwMjQ1LCAwLjk4ODM2MSwgMS4xOTYwMSwgMS40MDM0NywgMS42MTA4OCIsIFwKLSAgICAgICAgICAiMC40MjIwNDksIDAuNjMwMjYxLCAwLjc5NTE1NiwgMS4wMDIyNSwgMS4yMTA4NCwgMS40MTgzMSwgMS42MjU0MyIsIFwKLSAgICAgICAgICAiMC40MzY0MzUsIDAuNjQ0MzA2LCAwLjgwOTUyNCwgMS4wMTc1NiwgMS4yMjUyLCAxLjQzMjY2LCAxLjY0MDA2IiwgXAotICAgICAgICAgICIwLjQ1MDQzOSwgMC42NTg2NjYsIDAuODIzNTMxLCAxLjAzMTU2LCAxLjIzOTIxLCAxLjQ0NjY2LCAxLjY1NDA2IiwgXAotICAgICAgICAgICIwLjQ3MjQwNSwgMC42ODA2MjksIDAuODQ1NTE4LCAxLjA1MjE4LCAxLjI2MTE2LCAxLjQ2ODY4LCAxLjY3NTgiLCBcCi0gICAgICAgICAgIjAuNDkxNjQxLCAwLjY5OTQ1OSwgMC44NjQ3MzEsIDEuMDcyNzcsIDEuMjgwNDEsIDEuNDg3ODYsIDEuNjk1MSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDQ3MjYsIDAuNTA4MDMzLCAwLjgzNTUzNSwgMS4yNDg4NCwgMS42NjA1OCwgMi4wNzI3OSwgMi40ODUwOCIsIFwKLSAgICAgICAgICAiMC4xMDQ4MTgsIDAuNTA4MDMxLCAwLjgzNTQzMSwgMS4yNDg4MywgMS42NjA1OCwgMi4wNzI3NSwgMi40ODUxNCIsIFwKLSAgICAgICAgICAiMC4xMDQ1NiwgMC41MDc5OTUsIDAuODM1MywgMS4yNDg0OCwgMS42NjA3OCwgMi4wNzI3NCwgMi40ODUwNSIsIFwKLSAgICAgICAgICAiMC4xMDQ2MzQsIDAuNTA2OTM5LCAwLjgzNTI1NiwgMS4yNDg4NSwgMS42NjA2NiwgMi4wNzI3NSwgMi40ODUwNCIsIFwKLSAgICAgICAgICAiMC4xMDQ2NTcsIDAuNTA3OTk5LCAwLjgzNTQyNiwgMS4yNDg4MiwgMS42NjA2NSwgMi4wNzI3NSwgMi40ODUwMyIsIFwKLSAgICAgICAgICAiMC4xMDQ1MTgsIDAuNTA3OTg4LCAwLjgzNTMwMSwgMS4yNDg4NCwgMS42NjA3MSwgMi4wNzI3NCwgMi40ODUwMyIsIFwKLSAgICAgICAgICAiMC4xMDQ3MSwgMC41MDcyNDEsIDAuODM1Mzg1LCAxLjI0ODg2LCAxLjY2MDY0LCAyLjA3Mjc0LCAyLjQ4NSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1MTcyLCAwLjAwNTIwOSwgMC4wMDUyMTMsIDAuMDA1MjE1LCAwLjAwNTIxNiwgMC4wMDUyMTcsIDAuMDA1MjE3IiwgXAotICAgICAgICAgICIwLjAwNTE2OSwgMC4wMDUyMDYsIDAuMDA1MjEsIDAuMDA1MjEyLCAwLjAwNTIxNCwgMC4wMDUyMTQsIDAuMDA1MjE0IiwgXAotICAgICAgICAgICIwLjAwNTE2NSwgMC4wMDUyMDIsIDAuMDA1MjA2LCAwLjAwNTIwOCwgMC4wMDUyMDksIDAuMDA1MjA5LCAwLjAwNTIxIiwgXAotICAgICAgICAgICIwLjAwNTE2LCAwLjAwNTE5OCwgMC4wMDUyMDIsIDAuMDA1MjA0LCAwLjAwNTIwNSwgMC4wMDUyMDYsIDAuMDA1MjA1IiwgXAotICAgICAgICAgICIwLjAwNTE1OSwgMC4wMDUxOTYsIDAuMDA1MiwgMC4wMDUyMDIsIDAuMDA1MjAzLCAwLjAwNTIwNCwgMC4wMDUyMDQiLCBcCi0gICAgICAgICAgIjAuMDA1MTU5LCAwLjAwNTE5NiwgMC4wMDUyMDEsIDAuMDA1MjAyLCAwLjAwNTIwMiwgMC4wMDUyMDQsIDAuMDA1MjA0IiwgXAotICAgICAgICAgICIwLjAwNTE2MSwgMC4wMDUxOTgsIDAuMDA1MjAyLCAwLjAwNTIwNCwgMC4wMDUyMDYsIDAuMDA1MjA2LCAwLjAwNTIwNiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDkxLCAwLjAwNDk0OSwgMC4wMDQ5NTQsIDAuMDA0OTU2LCAwLjAwNDk1NywgMC4wMDQ5NTgsIDAuMDA0OTU4IiwgXAotICAgICAgICAgICIwLjAwNDkwNiwgMC4wMDQ5NDUsIDAuMDA0OTUsIDAuMDA0OTUyLCAwLjAwNDk1MywgMC4wMDQ5NTQsIDAuMDA0OTU0IiwgXAotICAgICAgICAgICIwLjAwNDksIDAuMDA0OTQsIDAuMDA0OTQ1LCAwLjAwNDk0NywgMC4wMDQ5NDgsIDAuMDA0OTQ5LCAwLjAwNDk0OSIsIFwKLSAgICAgICAgICAiMC4wMDQ4OTcsIDAuMDA0OTM2LCAwLjAwNDk0MSwgMC4wMDQ5NDQsIDAuMDA0OTQ1LCAwLjAwNDk0NSwgMC4wMDQ5NDYiLCBcCi0gICAgICAgICAgIjAuMDA0ODk0LCAwLjAwNDkzMywgMC4wMDQ5MzgsIDAuMDA0OTQsIDAuMDA0OTQxLCAwLjAwNDk0MiwgMC4wMDQ5NDIiLCBcCi0gICAgICAgICAgIjAuMDA0ODksIDAuMDA0OTI5LCAwLjAwNDkzNCwgMC4wMDQ5MzcsIDAuMDA0OTM3LCAwLjAwNDkzOSwgMC4wMDQ5MzgiLCBcCi0gICAgICAgICAgIjAuMDA0ODg5LCAwLjAwNDkyOCwgMC4wMDQ5MzMsIDAuMDA0OTM1LCAwLjAwNDkzNiwgMC4wMDQ5MzcsIDAuMDA0OTM3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUk4iOwotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNTU0NSwgMC4wMDU1ODYsIDAuMDA1NTkxLCAwLjAwNTU5NCwgMC4wMDU1OTQsIDAuMDA1NTk1LCAwLjAwNTU5NiIsIFwKLSAgICAgICAgICAiMC4wMDU1NDEsIDAuMDA1NTgxLCAwLjAwNTU4NiwgMC4wMDU1OSwgMC4wMDU1OSwgMC4wMDU1OTEsIDAuMDA1NTkxIiwgXAotICAgICAgICAgICIwLjAwNTUzNywgMC4wMDU1NzgsIDAuMDA1NTgzLCAwLjAwNTU4NSwgMC4wMDU1ODYsIDAuMDA1NTg3LCAwLjAwNTU4OCIsIFwKLSAgICAgICAgICAiMC4wMDU1MzUsIDAuMDA1NTc1LCAwLjAwNTU4MSwgMC4wMDU1ODEsIDAuMDA1NTgzLCAwLjAwNTU4NCwgMC4wMDU1ODQiLCBcCi0gICAgICAgICAgIjAuMDA1NTMxLCAwLjAwNTU3MiwgMC4wMDU1NzcsIDAuMDA1NTgxLCAwLjAwNTU4LCAwLjAwNTU4MSwgMC4wMDU1ODEiLCBcCi0gICAgICAgICAgIjAuMDA1NTMsIDAuMDA1NTcxLCAwLjAwNTU3NSwgMC4wMDU1NzgsIDAuMDA1NTc4LCAwLjAwNTU4LCAwLjAwNTU4MiIsIFwKLSAgICAgICAgICAiMC4wMDU1MjgsIDAuMDA1NTY4LCAwLjAwNTU3MywgMC4wMDU1NzYsIDAuMDA1NTc3LCAwLjAwNTU3OCwgMC4wMDU1NzkiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfcG93ZXIoc2NhbGFyKSB7Ci0gICAgICAgIHZhbHVlcygiMCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDUxMTEsIDAuMDA1MTQ0LCAwLjAwNTE0OCwgMC4wMDUxNSwgMC4wMDUxNSwgMC4wMDUxNTEsIDAuMDA1MTUxIiwgXAotICAgICAgICAgICIwLjAwNTEwNSwgMC4wMDUxMzksIDAuMDA1MTQyLCAwLjAwNTE0NCwgMC4wMDUxNDQsIDAuMDA1MTQ0LCAwLjAwNTE0NSIsIFwKLSAgICAgICAgICAiMC4wMDUxMDEsIDAuMDA1MTM1LCAwLjAwNTEzOCwgMC4wMDUxMzksIDAuMDA1MTQsIDAuMDA1MTQsIDAuMDA1MTQyIiwgXAotICAgICAgICAgICIwLjAwNTA5OCwgMC4wMDUxMzIsIDAuMDA1MTM1LCAwLjAwNTEzNiwgMC4wMDUxMzcsIDAuMDA1MTM3LCAwLjAwNTEzNyIsIFwKLSAgICAgICAgICAiMC4wMDUwOTYsIDAuMDA1MTMsIDAuMDA1MTMzLCAwLjAwNTEzNCwgMC4wMDUxMzUsIDAuMDA1MTM1LCAwLjAwNTEzNSIsIFwKLSAgICAgICAgICAiMC4wMDUwOTIsIDAuMDA1MTI3LCAwLjAwNTEzLCAwLjAwNTEzMSwgMC4wMDUxMzIsIDAuMDA1MTMzLCAwLjAwNTEzNCIsIFwKLSAgICAgICAgICAiMC4wMDUwOSwgMC4wMDUxMjMsIDAuMDA1MTI2LCAwLjAwNTEyOCwgMC4wMDUxMjksIDAuMDA1MTI5LCAwLjAwNTEzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0MzM0LCAwLjAwNDM3NSwgMC4wMDQzOCwgMC4wMDQzODMsIDAuMDA0MzgzLCAwLjAwNDM4MywgMC4wMDQzODUiLCBcCi0gICAgICAgICAgIjAuMDA0MzI3LCAwLjAwNDM2OCwgMC4wMDQzNzMsIDAuMDA0Mzc1LCAwLjAwNDM3NywgMC4wMDQzNzcsIDAuMDA0Mzc5IiwgXAotICAgICAgICAgICIwLjAwNDMyMiwgMC4wMDQzNjMsIDAuMDA0MzY4LCAwLjAwNDM3MSwgMC4wMDQzNzIsIDAuMDA0MzcyLCAwLjAwNDM3MyIsIFwKLSAgICAgICAgICAiMC4wMDQzMTksIDAuMDA0MzYsIDAuMDA0MzYzLCAwLjAwNDM2OSwgMC4wMDQzNjgsIDAuMDA0MzY5LCAwLjAwNDM2OSIsIFwKLSAgICAgICAgICAiMC4wMDQzMTYsIDAuMDA0MzU3LCAwLjAwNDM2MywgMC4wMDQzNjUsIDAuMDA0MzY2LCAwLjAwNDM2NywgMC4wMDQzNjgiLCBcCi0gICAgICAgICAgIjAuMDA0MzEzLCAwLjAwNDM1NCwgMC4wMDQzNTksIDAuMDA0MzYyLCAwLjAwNDM2MywgMC4wMDQzNjMsIDAuMDA0MzY0IiwgXAotICAgICAgICAgICIwLjAwNDMxMSwgMC4wMDQzNTIsIDAuMDA0MzU3LCAwLjAwNDM1OSwgMC4wMDQzNiwgMC4wMDQzNjEsIDAuMDA0MzYyIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihRTikgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjI1NjQ0OTsKLSAgICBmdW5jdGlvbiA6ICJRQklOVCI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0tOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5vbl91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogZmFsbGluZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zNDUzNzQsIDAuNTI1NDM0LCAwLjY2OTg3MiwgMC44NTA0OTQsIDEuMDMxMTEsIDEuMjExNzgsIDEuMzkyNDQiLCBcCi0gICAgICAgICAgIjAuMzU2OTk4LCAwLjUzNzEwOSwgMC42ODE1MzksIDAuODYyMTE4LCAxLjA0Mjc2LCAxLjIyMzQzLCAxLjQwNDEiLCBcCi0gICAgICAgICAgIjAuMzcxMzYyLCAwLjU1MTQzOSwgMC42OTU4NzcsIDAuODc2NDc2LCAxLjA1NzEzLCAxLjIzNzc0LCAxLjQxODQxIiwgXAotICAgICAgICAgICIwLjM4NjI1NCwgMC41NjYzMDcsIDAuNzEwNzMyLCAwLjg5MTM3MywgMS4wNzE5OSwgMS4yNTI2NiwgMS40MzMzMiIsIFwKLSAgICAgICAgICAiMC40MDExMjIsIDAuNTgxMTgsIDAuNzI1NiwgMC45MDYyNDEsIDEuMDg2ODUsIDEuMjY3NTMsIDEuNDQ4MTkiLCBcCi0gICAgICAgICAgIjAuNDI0MjYyLCAwLjYwNDM2OSwgMC43NDg4MDEsIDAuOTI5Mzc0LCAxLjExMDAxLCAxLjI5MDY5LCAxLjQ3MTM2IiwgXAotICAgICAgICAgICIwLjQ0Mzk5MiwgMC42MjQwMzEsIDAuNzY4NDkyLCAwLjk0OTEwNSwgMS4xMjk3NiwgMS4zMTA0NiwgMS40OTEwNCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTE0NDksIDAuNDU1MjI2LCAwLjc1MDEyNiwgMS4xMjE1MywgMS40OTExMiwgMS44NjA5NSwgMi4yMzA2NyIsIFwKLSAgICAgICAgICAiMC4wOTE0MDQsIDAuNDU2MzMxLCAwLjc1MDQ4MSwgMS4xMTk0MywgMS40ODg0NywgMS44NjA5LCAyLjIzMDU2IiwgXAotICAgICAgICAgICIwLjA5MTQ1MywgMC40NTYzMzMsIDAuNzUxODI4LCAxLjEyMTQ4LCAxLjQ5MTI2LCAxLjg2MDc4LCAyLjIzMDU1IiwgXAotICAgICAgICAgICIwLjA5MTQ0OCwgMC40NTU1MDQsIDAuNzUwNDU0LCAxLjEyMTUzLCAxLjQ5MTEyLCAxLjg2MDk1LCAyLjIzMDY2IiwgXAotICAgICAgICAgICIwLjA5MTQ0OCwgMC40NTUxNzQsIDAuNzUwNDgzLCAxLjEyMTUzLCAxLjQ5MTEyLCAxLjg2MDk0LCAyLjIzMDY2IiwgXAotICAgICAgICAgICIwLjA5MTQwOCwgMC40NTYzMzEsIDAuNzQ5OTE3LCAxLjEyMTIxLCAxLjQ5MDU4LCAxLjg2MDg5LCAyLjIzMDU2IiwgXAotICAgICAgICAgICIwLjA5MTQ1MywgMC40NTYxNjgsIDAuNzUwNTg5LCAxLjEyMTQ4LCAxLjQ5MTI0LCAxLjg1NjQsIDIuMjMwNTgiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzgyMzc2LCAwLjU4ODM1MywgMC43NTM1NjcsIDAuOTYwMDE2LCAxLjE2NjUyLCAxLjM3MzA4LCAxLjU3OTU5IiwgXAotICAgICAgICAgICIwLjM5Mzk5NSwgMC42MDAwMTYsIDAuNzY1MTI4LCAwLjk3MTYzNSwgMS4xNzgxNywgMS4zODQ2OCwgMS41OTEyIiwgXAotICAgICAgICAgICIwLjQwODY2OSwgMC42MTQ2NDEsIDAuNzc5ODAxLCAwLjk4NjMwMiwgMS4xOTI4MiwgMS4zOTkzNywgMS42MDU4NyIsIFwKLSAgICAgICAgICAiMC40MjM0MjcsIDAuNjI5MzczLCAwLjc5NDUxNywgMS4wMDEwNCwgMS4yMDc1OCwgMS40MTQwNSwgMS42MjA1OSIsIFwKLSAgICAgICAgICAiMC40Mzg0MDUsIDAuNjQ0MzQsIDAuODA5NTA5LCAxLjAxNjAxLCAxLjIyMjU2LCAxLjQyOTA0LCAxLjYzNTU2IiwgXAotICAgICAgICAgICIwLjQ2MTgxMywgMC42Njc4MzUsIDAuODMyOTQ0LCAxLjAzOTQ1LCAxLjI0NTk5LCAxLjQ1MjUxLCAxLjY1OTAxIiwgXAotICAgICAgICAgICIwLjQ4MTg0MywgMC42ODc4MTYsIDAuODUyOTc1LCAxLjA1OTQ3LCAxLjI2NiwgMS40NzI1NCwgMS42NzkwNSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTkyOTUsIDAuNTA2NTIzLCAwLjgzNDk4NywgMS4yNDY2MywgMS42NTc5NSwgMi4wNjkwNCwgMi40ODAxNyIsIFwKLSAgICAgICAgICAiMC4wOTkyNjcsIDAuNTA2NTk2LCAwLjgzNTIyNCwgMS4yNDY2OCwgMS42NTgwMSwgMi4wNjc3OCwgMi40Nzk1OSIsIFwKLSAgICAgICAgICAiMC4wOTkyOTMsIDAuNTA2NTIyLCAwLjgzNDk1MSwgMS4yNDY2MywgMS42NTc5OCwgMi4wNjkwNSwgMi40Nzk2IiwgXAotICAgICAgICAgICIwLjA5OTI4NCwgMC41MDY1MTgsIDAuODM1MjEyLCAxLjI0NjY1LCAxLjY1Nzk2LCAyLjA2ODQ0LCAyLjQ3OTU3IiwgXAotICAgICAgICAgICIwLjA5OTI5NywgMC41MDY1MDksIDAuODM1MTExLCAxLjI0NjY4LCAxLjY1Nzk5LCAyLjA2OTA1LCAyLjQ3OTYiLCBcCi0gICAgICAgICAgIjAuMDk5MjY3LCAwLjUwNjU1LCAwLjgzNTEyOSwgMS4yNDY2MSwgMS42NTc5MywgMi4wNjc2OCwgMi40Nzk1OSIsIFwKLSAgICAgICAgICAiMC4wOTkyODcsIDAuNTA2NDYzLCAwLjgzNDk0OCwgMS4yNDY2MSwgMS42NTc5NywgMi4wNjkwMiwgMi40Nzk2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiBwcmVzZXQ7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjQ3NjA1NywgMC42NTYyMTUsIDAuODAwNTE5LCAwLjk4MTI0NywgMS4xNjE4NiwgMS4zNDI1MiwgMS41MjMxNiIsIFwKLSAgICAgICAgICAiMC40ODc3NSwgMC42Njc4MzIsIDAuODEyMzI2LCAwLjk5MjkyNSwgMS4xNzM1MywgMS4zNTQxOSwgMS41MzQ4MyIsIFwKLSAgICAgICAgICAiMC41MDI2NTYsIDAuNjgyNzM4LCAwLjgyNzIzLCAxLjAwNzc3LCAxLjE4ODQxLCAxLjM2OTA1LCAxLjU0OTgyIiwgXAotICAgICAgICAgICIwLjUxNzQ1NSwgMC42OTc1MzcsIDAuODQxODYyLCAxLjAyMjU2LCAxLjIwMzIxLCAxLjM4Mzg1LCAxLjU2NDU5IiwgXAotICAgICAgICAgICIwLjUzMTQ5MSwgMC43MTE1MjYsIDAuODU2MDQsIDEuMDM2NjQsIDEuMjE3MjUsIDEuMzk3OTEsIDEuNTc4NTUiLCBcCi0gICAgICAgICAgIjAuNTU0NDMsIDAuNzM0NDYzLCAwLjg3ODk4LCAxLjA1OTU4LCAxLjI0MDE5LCAxLjQyMDg0LCAxLjYwMTQ5IiwgXAotICAgICAgICAgICIwLjU3MjU0LCAwLjc1MjU4NCwgMC44OTcwOTksIDEuMDc3NywgMS4yNTgzMSwgMS40Mzg5NywgMS42MTk2MSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTE0NjcsIDAuNDU2MzU0LCAwLjc1MDEzNywgMS4xMjE2NiwgMS40OTEzNCwgMS44NjEwNiwgMi4yMzA5MyIsIFwKLSAgICAgICAgICAiMC4wOTE1MTksIDAuNDU2MzcyLCAwLjc1MDE5NCwgMS4xMjE2OCwgMS40OTEzMiwgMS44NjEwOSwgMi4yMzA3OCIsIFwKLSAgICAgICAgICAiMC4wOTE0ODMsIDAuNDU2MzY2LCAwLjc0OTk5MywgMS4xMjE2LCAxLjQ5MTM3LCAxLjg2MTA1LCAyLjIzMTM3IiwgXAotICAgICAgICAgICIwLjA5MTQ3NSwgMC40NTYzNjYsIDAuNzUwMTI1LCAxLjEyMTUzLCAxLjQ5MTM3LCAxLjg2MTA0LCAyLjIzMTE5IiwgXAotICAgICAgICAgICIwLjA5MTQ3MiwgMC40NTU5OTEsIDAuNzUwMTgxLCAxLjEyMTY4LCAxLjQ5MTM0LCAxLjg2MTA4LCAyLjIzMDc5IiwgXAotICAgICAgICAgICIwLjA5MTQ0MSwgMC40NTUwOTEsIDAuNzUwMTc2LCAxLjEyMTY4LCAxLjQ5MTM4LCAxLjg2MTA3LCAyLjIzMDc5IiwgXAotICAgICAgICAgICIwLjA5MTQ2MywgMC40NTYzMzcsIDAuNzUxNzk5LCAxLjEyMTY4LCAxLjQ5MTM0LCAxLjg2MTA3LCAyLjIzMDc4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiBjbGVhcjsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuNDQwMjMzLCAwLjYyMDM5NSwgMC43NjQ3MDIsIDAuOTQ1NDMxLCAxLjEyNjA0LCAxLjMwNjcsIDEuNDg3MzQiLCBcCi0gICAgICAgICAgIjAuNDUyMjg1LCAwLjYzMjQ0MiwgMC43NzY3NDQsIDAuOTU3NDc0LCAxLjEzODA4LCAxLjMxODc0LCAxLjQ5OTM4IiwgXAotICAgICAgICAgICIwLjQ2NzEzLCAwLjY0NzIyLCAwLjc5MTcwOSwgMC45NzIyNTQsIDEuMTUyOSwgMS4zMzM1MywgMS41MTQyNCIsIFwKLSAgICAgICAgICAiMC40ODE1MTIsIDAuNjYxNTQ4LCAwLjgwNjA2NiwgMC45ODY2NjksIDEuMTY3MjgsIDEuMzQ3OTMsIDEuNTI4NTgiLCBcCi0gICAgICAgICAgIjAuNDk1NTA1LCAwLjY3NTU4NywgMC44MjAwNzUsIDEuMDAwNjcsIDEuMTgxMjgsIDEuMzYxOTQsIDEuNTQyNTgiLCBcCi0gICAgICAgICAgIjAuNTE3NDg2LCAwLjY5NzU3NywgMC44NDIwNjMsIDEuMDIyNjUsIDEuMjAzMjcsIDEuMzgzODksIDEuNTY0NTgiLCBcCi0gICAgICAgICAgIjAuNTM2NzE0LCAwLjcxNjc1LCAwLjg2MTI3NCwgMS4wNDE4OCwgMS4yMjI0OSwgMS40MDMxNCwgMS41ODM3OCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTE0ODksIDAuNDU2MzU4LCAwLjc1MDIwNCwgMS4xMjE2NywgMS40OTEzNywgMS44NjExLCAyLjIzMDc3IiwgXAotICAgICAgICAgICIwLjA5MTQ1NSwgMC40NTYzNTUsIDAuNzUwMTc5LCAxLjEyMTY2LCAxLjQ5MTM1LCAxLjg2MTA3LCAyLjIzMDc1IiwgXAotICAgICAgICAgICIwLjA5MTQ4LCAwLjQ1NjM2MiwgMC43NTAxMDcsIDEuMTIxNDMsIDEuNDkxMzcsIDEuODYxMDQsIDIuMjMxMDQiLCBcCi0gICAgICAgICAgIjAuMDkxNDQyLCAwLjQ1NTA5OCwgMC43NTAxNzUsIDEuMTIxNjksIDEuNDkxMzQsIDEuODYxMDcsIDIuMjMwOCIsIFwKLSAgICAgICAgICAiMC4wOTE1MTksIDAuNDU2MzcxLCAwLjc1MDE3NSwgMS4xMjE2NiwgMS40OTEzMywgMS44NjEwNCwgMi4yMzA3MyIsIFwKLSAgICAgICAgICAiMC4wOTE0OTUsIDAuNDU2MzYxLCAwLjc1MDEwNywgMS4xMjE0MywgMS40OTEzOSwgMS44NjEwMSwgMi4yMzA5IiwgXAotICAgICAgICAgICIwLjA5MTQ1NCwgMC40NTU0NDEsIDAuNzUwMTczLCAxLjEyMTY5LCAxLjQ5MTM0LCAxLjg2MTA1LCAyLjIzMDczIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMwNTc4MiwgMC41MTE4OTUsIDAuNjc3MDIzLCAwLjg4MzQ5MiwgMS4wOSwgMS4yOTY1LCAxLjUwMzAyIiwgXAotICAgICAgICAgICIwLjMxNzQzLCAwLjUyMzU0MSwgMC42ODg2NjksIDAuODk1MTM5LCAxLjEwMTY0LCAxLjMwODE4LCAxLjUxNDY2IiwgXAotICAgICAgICAgICIwLjMzMTU5MiwgMC41Mzc2NTEsIDAuNzAyODY5LCAwLjkwOTMyMywgMS4xMTU3NiwgMS4zMjIyOSwgMS41Mjg2IiwgXAotICAgICAgICAgICIwLjM0NjU3MiwgMC41NTI2MjQsIDAuNzE3ODMzLCAwLjkyNDI3OCwgMS4xMzA3OCwgMS4zMzcyOCwgMS41NDM4IiwgXAotICAgICAgICAgICIwLjM2MTIxNiwgMC41NjcyNzYsIDAuNzMyNDk1LCAwLjkzODk1MiwgMS4xNDU0MSwgMS4zNTE5MSwgMS41NTg0MyIsIFwKLSAgICAgICAgICAiMC4zODQ1NDUsIDAuNTkwNTgyLCAwLjc1NTc4NCwgMC45NjIyNjEsIDEuMTY4NzIsIDEuMzc1MjUsIDEuNTgxNzgiLCBcCi0gICAgICAgICAgIjAuNDA0ODg2LCAwLjYxMDk0NywgMC43NzYxNzQsIDAuOTgyNjA1LCAxLjE4OTExLCAxLjM5NTU5LCAxLjYwMjE2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5OTI4MSwgMC41MDY1MjEsIDAuODM1MzMsIDEuMjQ2MzksIDEuNjU3NCwgMi4wNjg0NSwgMi40ODA0IiwgXAotICAgICAgICAgICIwLjA5OTI4MSwgMC41MDY2MTMsIDAuODM1NTM5LCAxLjI0NjMyLCAxLjY1NzQsIDIuMDY4NTYsIDIuNDc5NiIsIFwKLSAgICAgICAgICAiMC4wOTkyODQsIDAuNTA2NTIyLCAwLjgzNTM4OCwgMS4yNDYzLCAxLjY1NzM5LCAyLjA2ODQ2LCAyLjQ4MDE1IiwgXAotICAgICAgICAgICIwLjA5OTI3NiwgMC41MDY1MjEsIDAuODM1MzQ3LCAxLjI0NjM3LCAxLjY1NzQsIDIuMDY4ODcsIDIuNDc5NjMiLCBcCi0gICAgICAgICAgIjAuMDk5MjY4LCAwLjUwNjYzMSwgMC44MzU1NjksIDEuMjQ2NzUsIDEuNjU3NDQsIDIuMDY4NjksIDIuNDc5NzIiLCBcCi0gICAgICAgICAgIjAuMDk5Mjc5LCAwLjUwNjYwNywgMC44MzU1NjgsIDEuMjQ2MzUsIDEuNjU3NDIsIDIuMDY4NTcsIDIuNDc5NjYiLCBcCi0gICAgICAgICAgIjAuMDk5Mjg2LCAwLjUwNjUyMiwgMC44MzU1OTYsIDEuMjQ2MzQsIDEuNjU3NDQsIDIuMDY4NDcsIDIuNDc5NzMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDS04iOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDkxLCAwLjAwNDk0OSwgMC4wMDQ5NTQsIDAuMDA0OTU2LCAwLjAwNDk1NywgMC4wMDQ5NTgsIDAuMDA0OTU4IiwgXAotICAgICAgICAgICIwLjAwNDkwNiwgMC4wMDQ5NDUsIDAuMDA0OTUsIDAuMDA0OTUyLCAwLjAwNDk1MywgMC4wMDQ5NTQsIDAuMDA0OTU0IiwgXAotICAgICAgICAgICIwLjAwNDksIDAuMDA0OTQsIDAuMDA0OTQ1LCAwLjAwNDk0NywgMC4wMDQ5NDgsIDAuMDA0OTQ5LCAwLjAwNDk0OSIsIFwKLSAgICAgICAgICAiMC4wMDQ4OTcsIDAuMDA0OTM2LCAwLjAwNDk0MSwgMC4wMDQ5NDQsIDAuMDA0OTQ1LCAwLjAwNDk0NSwgMC4wMDQ5NDYiLCBcCi0gICAgICAgICAgIjAuMDA0ODk0LCAwLjAwNDkzMywgMC4wMDQ5MzgsIDAuMDA0OTQsIDAuMDA0OTQxLCAwLjAwNDk0MiwgMC4wMDQ5NDIiLCBcCi0gICAgICAgICAgIjAuMDA0ODksIDAuMDA0OTI5LCAwLjAwNDkzNCwgMC4wMDQ5MzcsIDAuMDA0OTM3LCAwLjAwNDkzOSwgMC4wMDQ5MzgiLCBcCi0gICAgICAgICAgIjAuMDA0ODg5LCAwLjAwNDkyOCwgMC4wMDQ5MzMsIDAuMDA0OTM1LCAwLjAwNDkzNiwgMC4wMDQ5MzcsIDAuMDA0OTM3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1MTcyLCAwLjAwNTIwOSwgMC4wMDUyMTMsIDAuMDA1MjE1LCAwLjAwNTIxNiwgMC4wMDUyMTcsIDAuMDA1MjE3IiwgXAotICAgICAgICAgICIwLjAwNTE2OSwgMC4wMDUyMDYsIDAuMDA1MjEsIDAuMDA1MjEyLCAwLjAwNTIxNCwgMC4wMDUyMTQsIDAuMDA1MjE0IiwgXAotICAgICAgICAgICIwLjAwNTE2NSwgMC4wMDUyMDIsIDAuMDA1MjA2LCAwLjAwNTIwOCwgMC4wMDUyMDksIDAuMDA1MjA5LCAwLjAwNTIxIiwgXAotICAgICAgICAgICIwLjAwNTE2LCAwLjAwNTE5OCwgMC4wMDUyMDIsIDAuMDA1MjA0LCAwLjAwNTIwNSwgMC4wMDUyMDYsIDAuMDA1MjA1IiwgXAotICAgICAgICAgICIwLjAwNTE1OSwgMC4wMDUxOTYsIDAuMDA1MiwgMC4wMDUyMDIsIDAuMDA1MjAzLCAwLjAwNTIwNCwgMC4wMDUyMDQiLCBcCi0gICAgICAgICAgIjAuMDA1MTU5LCAwLjAwNTE5NiwgMC4wMDUyMDEsIDAuMDA1MjAyLCAwLjAwNTIwMiwgMC4wMDUyMDQsIDAuMDA1MjA0IiwgXAotICAgICAgICAgICIwLjAwNTE2MSwgMC4wMDUxOTgsIDAuMDA1MjAyLCAwLjAwNTIwNCwgMC4wMDUyMDYsIDAuMDA1MjA2LCAwLjAwNTIwNiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDU1NDUsIDAuMDA1NTg2LCAwLjAwNTU5MSwgMC4wMDU1OTQsIDAuMDA1NTk0LCAwLjAwNTU5NSwgMC4wMDU1OTYiLCBcCi0gICAgICAgICAgIjAuMDA1NTQxLCAwLjAwNTU4MSwgMC4wMDU1ODYsIDAuMDA1NTksIDAuMDA1NTksIDAuMDA1NTkxLCAwLjAwNTU5MSIsIFwKLSAgICAgICAgICAiMC4wMDU1MzcsIDAuMDA1NTc4LCAwLjAwNTU4MywgMC4wMDU1ODUsIDAuMDA1NTg2LCAwLjAwNTU4NywgMC4wMDU1ODgiLCBcCi0gICAgICAgICAgIjAuMDA1NTM1LCAwLjAwNTU3NSwgMC4wMDU1ODEsIDAuMDA1NTgxLCAwLjAwNTU4MywgMC4wMDU1ODQsIDAuMDA1NTg0IiwgXAotICAgICAgICAgICIwLjAwNTUzMSwgMC4wMDU1NzIsIDAuMDA1NTc3LCAwLjAwNTU4MSwgMC4wMDU1OCwgMC4wMDU1ODEsIDAuMDA1NTgxIiwgXAotICAgICAgICAgICIwLjAwNTUzLCAwLjAwNTU3MSwgMC4wMDU1NzUsIDAuMDA1NTc4LCAwLjAwNTU3OCwgMC4wMDU1OCwgMC4wMDU1ODIiLCBcCi0gICAgICAgICAgIjAuMDA1NTI4LCAwLjAwNTU2OCwgMC4wMDU1NzMsIDAuMDA1NTc2LCAwLjAwNTU3NywgMC4wMDU1NzgsIDAuMDA1NTc5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHNjYWxhcikgewotICAgICAgICB2YWx1ZXMoIjAiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0MzM0LCAwLjAwNDM3NSwgMC4wMDQzOCwgMC4wMDQzODMsIDAuMDA0MzgzLCAwLjAwNDM4MywgMC4wMDQzODUiLCBcCi0gICAgICAgICAgIjAuMDA0MzI3LCAwLjAwNDM2OCwgMC4wMDQzNzMsIDAuMDA0Mzc1LCAwLjAwNDM3NywgMC4wMDQzNzcsIDAuMDA0Mzc5IiwgXAotICAgICAgICAgICIwLjAwNDMyMiwgMC4wMDQzNjMsIDAuMDA0MzY4LCAwLjAwNDM3MSwgMC4wMDQzNzIsIDAuMDA0MzcyLCAwLjAwNDM3MyIsIFwKLSAgICAgICAgICAiMC4wMDQzMTksIDAuMDA0MzYsIDAuMDA0MzYzLCAwLjAwNDM2OSwgMC4wMDQzNjgsIDAuMDA0MzY5LCAwLjAwNDM2OSIsIFwKLSAgICAgICAgICAiMC4wMDQzMTYsIDAuMDA0MzU3LCAwLjAwNDM2MywgMC4wMDQzNjUsIDAuMDA0MzY2LCAwLjAwNDM2NywgMC4wMDQzNjgiLCBcCi0gICAgICAgICAgIjAuMDA0MzEzLCAwLjAwNDM1NCwgMC4wMDQzNTksIDAuMDA0MzYyLCAwLjAwNDM2MywgMC4wMDQzNjMsIDAuMDA0MzY0IiwgXAotICAgICAgICAgICIwLjAwNDMxMSwgMC4wMDQzNTIsIDAuMDA0MzU3LCAwLjAwNDM1OSwgMC4wMDQzNiwgMC4wMDQzNjEsIDAuMDA0MzYyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1MTExLCAwLjAwNTE0NCwgMC4wMDUxNDgsIDAuMDA1MTUsIDAuMDA1MTUsIDAuMDA1MTUxLCAwLjAwNTE1MSIsIFwKLSAgICAgICAgICAiMC4wMDUxMDUsIDAuMDA1MTM5LCAwLjAwNTE0MiwgMC4wMDUxNDQsIDAuMDA1MTQ0LCAwLjAwNTE0NCwgMC4wMDUxNDUiLCBcCi0gICAgICAgICAgIjAuMDA1MTAxLCAwLjAwNTEzNSwgMC4wMDUxMzgsIDAuMDA1MTM5LCAwLjAwNTE0LCAwLjAwNTE0LCAwLjAwNTE0MiIsIFwKLSAgICAgICAgICAiMC4wMDUwOTgsIDAuMDA1MTMyLCAwLjAwNTEzNSwgMC4wMDUxMzYsIDAuMDA1MTM3LCAwLjAwNTEzNywgMC4wMDUxMzciLCBcCi0gICAgICAgICAgIjAuMDA1MDk2LCAwLjAwNTEzLCAwLjAwNTEzMywgMC4wMDUxMzQsIDAuMDA1MTM1LCAwLjAwNTEzNSwgMC4wMDUxMzUiLCBcCi0gICAgICAgICAgIjAuMDA1MDkyLCAwLjAwNTEyNywgMC4wMDUxMywgMC4wMDUxMzEsIDAuMDA1MTMyLCAwLjAwNTEzMywgMC4wMDUxMzQiLCBcCi0gICAgICAgICAgIjAuMDA1MDksIDAuMDA1MTIzLCAwLjAwNTEyNiwgMC4wMDUxMjgsIDAuMDA1MTI5LCAwLjAwNTEyOSwgMC4wMDUxMyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUk4pICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDU0NTE5MjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA1NDQ4MzM7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNTQ1MTkyOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDU0MywgMC4wMDA1MywgMC4wMDA1MjEsIDAuMDAwNTE1LCAwLjAwMDUxMiwgMC4wMDA1MDksIDAuMDAwNTA4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyMTkyLCAwLjAwMjE4MywgMC4wMDIxNzgsIDAuMDAyMTc0LCAwLjAwMjE3MiwgMC4wMDIxNywgMC4wMDIxNjkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUk4iOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFEJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgZmFsbF9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuNDc2MDU3LCAwLjQ4Nzc1LCAwLjUwMjY1NiwgMC41MTc0NTUsIDAuNTMxNDkxLCAwLjU1NDQzLCAwLjU3MjU0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJlY292ZXJ5X2ZhbGxpbmc7Ci0gICAgICB3aGVuIDogIkQmU04iOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8xX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQocmVjb3ZlcnlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMSwgMC4wODg3NSwgMC4wNywgMC4wNTEyNSwgMC4wMzg3NSwgMC4wMSwgLTAuMDExMjUiLCBcCi0gICAgICAgICAgIjAuMTExMjUsIDAuMSwgMC4wODEyNSwgMC4wNjI1LCAwLjA1LCAwLjAyMTI1LCAwIiwgXAotICAgICAgICAgICIwLjEyMzc1LCAwLjExMjUsIDAuMDkzNzUsIDAuMDgxMjUsIDAuMDYyNSwgMC4wNCwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4xNDI1LCAwLjEyNSwgMC4xMTI1LCAwLjA5Mzc1LCAwLjA4MTI1LCAwLjA1MjUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMTU1LCAwLjE0Mzc1LCAwLjEyNSwgMC4xMTI1LCAwLjA5Mzc1LCAwLjA3MTI1LCAwLjA1IiwgXAotICAgICAgICAgICIwLjE3NzUsIDAuMTY2MjUsIDAuMTUzNzUsIDAuMTM1LCAwLjExNjI1LCAwLjA5Mzc1LCAwLjA3MjUiLCBcCi0gICAgICAgICAgIjAuMTk4NzUsIDAuMTg3NSwgMC4xNjg3NSwgMC4xNTYyNSwgMC4xMzc1LCAwLjExNSwgMC4wOTM3NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJlY292ZXJ5X3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUQiOwotICAgICAgc2RmX2NvbmQgOiAiRCA9PSAxJ2IwIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChyZWNvdmVyeV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xODc1LCAwLjE5ODc1LCAwLjIxNzUsIDAuMjMsIDAuMjQyNSwgMC4yNjUsIDAuMjg2MjUiLCBcCi0gICAgICAgICAgIjAuMTc2MjUsIDAuMTg3NSwgMC4yMDYyNSwgMC4yMTg3NSwgMC4yMzEyNSwgMC4yNTM3NSwgMC4yNzUiLCBcCi0gICAgICAgICAgIjAuMTYzNzUsIDAuMTc1LCAwLjE4NzUsIDAuMjA2MjUsIDAuMjE4NzUsIDAuMjQxMjUsIDAuMjYyNSIsIFwKLSAgICAgICAgICAiMC4xNTEyNSwgMC4xNjI1LCAwLjE3NSwgMC4xOTM3NSwgMC4yMDYyNSwgMC4yMjg3NSwgMC4yNSIsIFwKLSAgICAgICAgICAiMC4xMzg3NSwgMC4xNSwgMC4xNjg3NSwgMC4xODEyNSwgMC4xOTM3NSwgMC4yMTYyNSwgMC4yMzc1IiwgXAotICAgICAgICAgICIwLjEyMjUsIDAuMTQsIDAuMTUyNSwgMC4xNjUsIDAuMTc3NSwgMC4yLCAwLjIyMTI1IiwgXAotICAgICAgICAgICIwLjExMzc1LCAwLjEyNSwgMC4xNDM3NSwgMC4xNTYyNSwgMC4xNjg3NSwgMC4xOTEyNSwgMC4yMTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJlbW92YWxfZmFsbGluZzsKLSAgICAgIHdoZW4gOiAiRCZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzFfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChyZW1vdmFsX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjI1LCAwLjAxNzUsIDAuMDM2MjUsIDAuMDQ4NzUsIDAuMDYxMjUsIDAuMDksIDAuMTA1IiwgXAotICAgICAgICAgICItMC4wMDUsIDAuMDA2MjUsIDAuMDI1LCAwLjAzNzUsIDAuMDUsIDAuMDc4NzUsIDAuMDkzNzUiLCBcCi0gICAgICAgICAgIi0wLjAxNzUsIC0wLjAwNjI1LCAwLjAwNjI1LCAwLjAyNSwgMC4wMzc1LCAwLjA2LCAwLjA4MTI1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDI1LCAtMC4wMDYyNSwgMC4wMDYyNSwgMC4wMjUsIDAuMDQ3NSwgMC4wNjI1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDM3NSwgLTAuMDI1LCAtMC4wMDYyNSwgMC4wMDYyNSwgMC4wMjg3NSwgMC4wNSIsIFwKLSAgICAgICAgICAiLTAuMDcxMjUsIC0wLjA2LCAtMC4wNDc1LCAtMC4wMzUsIC0wLjAxNjI1LCAwLjAwNjI1LCAwLjAyNzUiLCBcCi0gICAgICAgICAgIi0wLjA5MjUsIC0wLjA4MTI1LCAtMC4wNjg3NSwgLTAuMDU2MjUsIC0wLjAzNzUsIC0wLjAxNSwgMC4wMDYyNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oU04pICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTMxMDE1OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTMxMDE1OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTMwOTk0OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDMzMSwgMC4wMDAzMywgMC4wMDAzMywgMC4wMDAzMywgMC4wMDAzMywgMC4wMDAzMywgMC4wMDAzMyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDMzMSwgMC4wMDAzMzIsIDAuMDAwMzMyLCAwLjAwMDMzMiwgMC4wMDAzMzIsIDAuMDAwMzMyLCAwLjAwMDMzMiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQmIVJOIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9STl9FUV8wID09IDEnYjEiOwotICAgICAgZmFsbF9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMzA1NzgyLCAwLjMxNzQzLCAwLjMzMTU5MiwgMC4zNDY1NzIsIDAuMzYxMjE2LCAwLjM4NDU0NSwgMC40MDQ4ODYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0tOIjsKLSAgICAgIHRpbWluZ190eXBlIDogcmVjb3ZlcnlfZmFsbGluZzsKLSAgICAgIHdoZW4gOiAiIUQmUk4iOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1JOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQocmVjb3ZlcnlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTE4NzUsIDAuMTAxMjUsIDAuMDg4NzUsIDAuMDcsIDAuMDUxMjUsIDAuMDI4NzUsIDAuMDA3NSIsIFwKLSAgICAgICAgICAiMC4xMywgMC4xMTg3NSwgMC4xLCAwLjA4MTI1LCAwLjA2ODc1LCAwLjA0LCAwLjAxODc1IiwgXAotICAgICAgICAgICIwLjE0MjUsIDAuMTMxMjUsIDAuMTEyNSwgMC4xLCAwLjA4MTI1LCAwLjA1ODc1LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIjAuMTU1LCAwLjE0Mzc1LCAwLjEzMTI1LCAwLjExMjUsIDAuMDkzNzUsIDAuMDcxMjUsIDAuMDUiLCBcCi0gICAgICAgICAgIjAuMTczNzUsIDAuMTU2MjUsIDAuMTQzNzUsIDAuMTI1LCAwLjExMjUsIDAuMDgzNzUsIDAuMDYyNSIsIFwKLSAgICAgICAgICAiMC4xOTYyNSwgMC4xNzg3NSwgMC4xNjYyNSwgMC4xNDc1LCAwLjEzNSwgMC4xMDYyNSwgMC4wODUiLCBcCi0gICAgICAgICAgIjAuMjExMjUsIDAuMiwgMC4xODEyNSwgMC4xNjg3NSwgMC4xNSwgMC4xMjc1LCAwLjEwNjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJlbW92YWxfZmFsbGluZzsKLSAgICAgIHdoZW4gOiAiIUQmUk4iOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1JOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQocmVtb3ZhbF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjUsIDAuMDM2MjUsIDAuMDQ4NzUsIDAuMDYxMjUsIDAuMDgsIDAuMTAyNSwgMC4xMTc1IiwgXAotICAgICAgICAgICIwLjAwNzUsIDAuMDI1LCAwLjAzNzUsIDAuMDUsIDAuMDY4NzUsIDAuMDkxMjUsIDAuMTA2MjUiLCBcCi0gICAgICAgICAgIi0wLjAwNSwgMC4wMDYyNSwgMC4wMjUsIDAuMDM3NSwgMC4wNSwgMC4wNzI1LCAwLjA5Mzc1IiwgXAotICAgICAgICAgICItMC4wMTc1LCAtMC4wMDYyNSwgMC4wMDYyNSwgMC4wMjUsIDAuMDM3NSwgMC4wNiwgMC4wODEyNSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAxODc1LCAtMC4wMDYyNSwgMC4wMDYyNSwgMC4wMjUsIDAuMDQ3NSwgMC4wNjI1IiwgXAotICAgICAgICAgICItMC4wNTI1LCAtMC4wNDEyNSwgLTAuMDI4NzUsIC0wLjAxLCAwLjAwMjUsIDAuMDI1LCAwLjA0NjI1IiwgXAotICAgICAgICAgICItMC4wNzM3NSwgLTAuMDYyNSwgLTAuMDQzNzUsIC0wLjAzMTI1LCAtMC4wMTI1LCAwLjAxLCAwLjAyNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogREZGUVgxICoKLSAqIC0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoREZGUVgxKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMjAzNjg2OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIGZmIChOMzAsUUJJTlQpIHsKLSAgICBuZXh0X3N0YXRlIDogIkQiOwotICAgIGNsb2NrZWRfb24gOiAiQ0siOwotICB9Ci0gIHBpbihDSykgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNTkzNTQyOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDU5MzIzNDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA1OTM1NDI7Ci0gICAgY2xvY2sgOiB0cnVlOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjMwNywgMC4wMDIyOTYsIDAuMDAyMjg2LCAwLjAwMjI4LCAwLjAwMjI3NCwgMC4wMDIyNjcsIDAuMDAyMjY0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA1MjczLCAwLjAwNTI2NCwgMC4wMDUyNTcsIDAuMDA1MjUxLCAwLjAwNTI0NSwgMC4wMDUyNDIsIDAuMDA1MjM3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRCI7Ci0gICAgICBzZGZfY29uZCA6ICJEID09IDEnYjAiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMzE2MTI0LCAwLjMyNzk3NywgMC4zNDMwMzMsIDAuMzU4NTE3LCAwLjM3Mzk4MywgMC4zOTgzNjEsIDAuNDE5MzgxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4yMTUxNDQsIDAuMjI2NDEyLCAwLjI0MTUyMiwgMC4yNTYzMjcsIDAuMjcxMDAyLCAwLjI5NDE3NywgMC4zMTMyNTkiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEQpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYwOTEyNzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MDczNzc7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjA5MTI3OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTg1NSwgMC4wMDE4NDQsIDAuMDAxODM2LCAwLjAwMTgzMiwgMC4wMDE4MjgsIDAuMDAxODIzLCAwLjAwMTgxOSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjI0NiwgMC4wMDIyNCwgMC4wMDIyMzYsIDAuMDAyMjMyLCAwLjAwMjIzMSwgMC4wMDIyMjcsIDAuMDAyMjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDQzNzUsIC0wLjAzMjUsIC0wLjAyLCAtMC4wMDc1LCAtMC4wMDEyNSwgMC4wMTUsIDAuMDIzNzUiLCBcCi0gICAgICAgICAgIi0wLjA1NSwgLTAuMDQzNzUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgMC4wMDM3NSwgMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wNjc1LCAtMC4wNTYyNSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAyNSwgLTAuMDA4NzUsIDAiLCBcCi0gICAgICAgICAgIi0wLjA4LCAtMC4wNjg3NSwgLTAuMDYyNSwgLTAuMDUsIC0wLjAzNzUsIC0wLjAyMTI1LCAtMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wOTg3NSwgLTAuMDg3NSwgLTAuMDc1LCAtMC4wNjI1LCAtMC4wNSwgLTAuMDMzNzUsIC0wLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMTE1LCAtMC4xMSwgLTAuMDk3NSwgLTAuMDg1LCAtMC4wNzI1LCAtMC4wNTYyNSwgLTAuMDQ3NSIsIFwKLSAgICAgICAgICAiLTAuMTM2MjUsIC0wLjEyNSwgLTAuMTEyNSwgLTAuMSwgLTAuMDg3NSwgLTAuMDc3NSwgLTAuMDYyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU2MjUsIDAuMDY3NSwgMC4wOCwgMC4wOTI1LCAwLjExMTI1LCAwLjEzMzc1LCAwLjE1NSIsIFwKLSAgICAgICAgICAiMC4wNDUsIDAuMDUsIDAuMDY4NzUsIDAuMDgxMjUsIDAuMDkzNzUsIDAuMTIyNSwgMC4xNDM3NSIsIFwKLSAgICAgICAgICAiMC4wMjYyNSwgMC4wMzc1LCAwLjA1NjI1LCAwLjA2ODc1LCAwLjA4MTI1LCAwLjExLCAwLjEzMTI1IiwgXAotICAgICAgICAgICIwLjAxMzc1LCAwLjAyNSwgMC4wNDM3NSwgMC4wNTYyNSwgMC4wNzUsIDAuMDk3NSwgMC4xMTg3NSIsIFwKLSAgICAgICAgICAiMC4wMDc1LCAwLjAxODc1LCAwLjAzMTI1LCAwLjA1LCAwLjA2MjUsIDAuMDg1LCAwLjEwNjI1IiwgXAotICAgICAgICAgICItMC4wMDg3NSwgMC4wMDI1LCAwLjAxNSwgMC4wMzM3NSwgMC4wNDYyNSwgMC4wNjg3NSwgMC4wOSIsIFwKLSAgICAgICAgICAiLTAuMDE3NSwgLTAuMDA2MjUsIDAuMDA2MjUsIDAuMDE4NzUsIDAuMDM3NSwgMC4wNiwgMC4wODEyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xLCAwLjA4MjUsIDAuMDcsIDAuMDU3NSwgMC4wNDUsIDAuMDI4NzUsIDAuMDIiLCBcCi0gICAgICAgICAgIjAuMTExMjUsIDAuMDkzNzUsIDAuMDgxMjUsIDAuMDY4NzUsIDAuMDU2MjUsIDAuMDQsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMTIzNzUsIDAuMTEyNSwgMC4wOTM3NSwgMC4wODEyNSwgMC4wNjg3NSwgMC4wNTI1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjEzNjI1LCAwLjEyNSwgMC4xMDYyNSwgMC4wOTM3NSwgMC4wODc1LCAwLjA3MTI1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICIwLjE0ODc1LCAwLjEzNzUsIDAuMTI1LCAwLjEwNjI1LCAwLjEsIDAuMDgzNzUsIDAuMDY4NzUiLCBcCi0gICAgICAgICAgIjAuMTcxMjUsIDAuMTYsIDAuMTQxMjUsIDAuMTI4NzUsIDAuMTIyNSwgMC4xMDYyNSwgMC4wOTEyNSIsIFwKLSAgICAgICAgICAiMC4xOTI1LCAwLjE3NSwgMC4xNjI1LCAwLjE1LCAwLjEzNzUsIDAuMTIxMjUsIDAuMTA2MjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzEyNSwgMC4wMiwgMC4wMDc1LCAtMC4wMTEyNSwgLTAuMDIzNzUsIC0wLjA1MjUsIC0wLjA3Mzc1IiwgXAotICAgICAgICAgICIwLjA0MjUsIDAuMDMxMjUsIDAuMDE4NzUsIDAsIC0wLjAxMjUsIC0wLjA0MTI1LCAtMC4wNjI1IiwgXAotICAgICAgICAgICIwLjA2MTI1LCAwLjA0Mzc1LCAwLjAzMTI1LCAwLjAxMjUsIDAsIC0wLjAyODc1LCAtMC4wNSIsIFwKLSAgICAgICAgICAiMC4wNzM3NSwgMC4wNTYyNSwgMC4wNDM3NSwgMC4wMjUsIDAuMDEyNSwgLTAuMDE2MjUsIC0wLjAzNzUiLCBcCi0gICAgICAgICAgIjAuMDg2MjUsIDAuMDY4NzUsIDAuMDU2MjUsIDAuMDM3NSwgMC4wMjUsIC0wLjAwMzc1LCAtMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMTAyNSwgMC4wOTEyNSwgMC4wNzI1LCAwLjA2LCAwLjA0MTI1LCAwLjAxODc1LCAtMC4wMDI1IiwgXAotICAgICAgICAgICIwLjExNzUsIDAuMTA2MjUsIDAuMDkzNzUsIDAuMDc1LCAwLjA1NjI1LCAwLjAzMzc1LCAwLjAxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFEpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4xMjk1NTQ7Ci0gICAgZnVuY3Rpb24gOiAiTjMwIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBub25fdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJpc2luZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yNzkxNzEsIDAuMzIyMzA3LCAwLjU2NjYyMywgMC43ODIzMSwgMS4wNjk4OSwgMS42NDUxNiwgMi4wMDQ1NiIsIFwKLSAgICAgICAgICAiMC4yOTEzMjcsIDAuMzM0NDY0LCAwLjU3ODc3MiwgMC43OTQ0NTgsIDEuMDgyMDEsIDEuNjU3MzUsIDIuMDE2OSIsIFwKLSAgICAgICAgICAiMC4zMDYzMTksIDAuMzQ5NDU3LCAwLjU5Mzc5NywgMC44MDk0MjMsIDEuMDk3MDMsIDEuNjcyMzIsIDIuMDMxOTgiLCBcCi0gICAgICAgICAgIjAuMzIxODA1LCAwLjM2NDk0NSwgMC42MDkyNTYsIDAuODI0OTQ5LCAxLjExMjUxLCAxLjY4NzgyLCAyLjA0NzIiLCBcCi0gICAgICAgICAgIjAuMzM3MjQxLCAwLjM4MDM4MSwgMC42MjQ2OTQsIDAuODQwNDAxLCAxLjEyNzk2LCAxLjcwMzI0LCAyLjA2MjkyIiwgXAotICAgICAgICAgICIwLjM2MTU1NSwgMC40MDQ2OTgsIDAuNjQ5MDE4LCAwLjg2NDY5NCwgMS4xNTIyNSwgMS43Mjc0NSwgMi4wODcyNSIsIFwKLSAgICAgICAgICAiMC4zODI1MDgsIDAuNDI1NjUxLCAwLjY2OTk2NywgMC44ODU2NDEsIDEuMTczMjIsIDEuNzQ4NTUsIDIuMTA4MDIiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTYxNTMzLCAwLjI0NzkzOSwgMC43NDI5MzUsIDEuMTgzNzEsIDEuNzY5MzgsIDIuOTQxMSwgMy42NzIxNCIsIFwKLSAgICAgICAgICAiMC4xNjE1MjIsIDAuMjQ3OTIxLCAwLjc0NDEyNywgMS4xODM2MywgMS43NjkwNywgMi45NDExLCAzLjY3MzAzIiwgXAotICAgICAgICAgICIwLjE2MTUyNCwgMC4yNDc5MywgMC43NDMxNjYsIDEuMTgzNDYsIDEuNzY5MjYsIDIuOTQxMSwgMy42NjM0MiIsIFwKLSAgICAgICAgICAiMC4xNjE1NDIsIDAuMjQ3OTM4LCAwLjc0NDEwNCwgMS4xODM2NywgMS43NjYxNSwgMi45NDExNCwgMy42NzIxNCIsIFwKLSAgICAgICAgICAiMC4xNjE1MjMsIDAuMjQ3OTI4LCAwLjc0NDEwNSwgMS4xODA5NiwgMS43NjkyOCwgMi45NDEwNSwgMy42NjIyOSIsIFwKLSAgICAgICAgICAiMC4xNjE1NzUsIDAuMjQ3OTMzLCAwLjc0NDE2MywgMS4xODM2LCAxLjc2OTE2LCAyLjkzNTY3LCAzLjY2NDA1IiwgXAotICAgICAgICAgICIwLjE2MTUyNiwgMC4yNDc0OTEsIDAuNzQ0MTU0LCAxLjE4MzU5LCAxLjc2OTI1LCAyLjk0MTAyLCAzLjY2NDg3Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMxNjEyNCwgMC4zNjU2MDgsIDAuNjQ1NTYxLCAwLjg5MjM3NiwgMS4yMjE1LCAxLjg3OTcxLCAyLjI5MTM5IiwgXAotICAgICAgICAgICIwLjMyNzk3NywgMC4zNzc0NDMsIDAuNjU3NDY3LCAwLjkwNDIyLCAxLjIzMzM1LCAxLjg5MTcxLCAyLjMwMzA3IiwgXAotICAgICAgICAgICIwLjM0MzAzMywgMC4zOTI0OTksIDAuNjcyNDgxLCAwLjkxOTI5NywgMS4yNDg1MiwgMS45MDY3NywgMi4zMTgxMiIsIFwKLSAgICAgICAgICAiMC4zNTg1MTcsIDAuNDA3OTc2LCAwLjY4NzkwMiwgMC45MzQ3NzMsIDEuMjYzODYsIDEuOTIyMjMsIDIuMzMzNiIsIFwKLSAgICAgICAgICAiMC4zNzM5ODMsIDAuNDIzNDYyLCAwLjcwMzQ1MiwgMC45NTAyMzksIDEuMjc5MzYsIDEuOTM3NzMsIDIuMzQ5MTgiLCBcCi0gICAgICAgICAgIjAuMzk4MzYxLCAwLjQ0Nzg0NCwgMC43Mjc3ODksIDAuOTc0NjA2LCAxLjMwMzc0LCAxLjk2MjEsIDIuMzczNjQiLCBcCi0gICAgICAgICAgIjAuNDE5MzgxLCAwLjQ2ODg2MSwgMC43NDg4MSwgMC45OTU2MjcsIDEuMzI0NzUsIDEuOTgyOTgsIDIuMzk0NjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTc4NiwgMC4yNzY0NDksIDAuODMxNDU0LCAxLjMyNDUxLCAxLjk3OTc1LCAzLjI4NDA4LCA0LjEwMTg2IiwgXAotICAgICAgICAgICIwLjE3ODk2NSwgMC4yNzYyOTEsIDAuODI5OTU3LCAxLjMyNDY3LCAxLjk3OTcyLCAzLjI4ODk3LCA0LjEwNDI0IiwgXAotICAgICAgICAgICIwLjE3ODgsIDAuMjc1NDczLCAwLjgzMDcxNCwgMS4zMjQ1MywgMS45Nzg1MiwgMy4yODkwOSwgNC4xMDExNCIsIFwKLSAgICAgICAgICAiMC4xNzg3ODUsIDAuMjc2Mjc4LCAwLjgzMjU2NSwgMS4zMjQ0NiwgMS45ODAxOCwgMy4yODkyMSwgNC4wOTkyOSIsIFwKLSAgICAgICAgICAiMC4xNzg1NzQsIDAuMjc2NDI5LCAwLjgyOTc3MywgMS4zMjQ0OCwgMS45Nzk3MSwgMy4yODkwMSwgNC4xMDQ4OCIsIFwKLSAgICAgICAgICAiMC4xNzg5NDQsIDAuMjc2NDQ2LCAwLjgzMDEyMywgMS4zMjQ2NiwgMS45Nzk3OCwgMy4yODg5MywgNC4xMDM2IiwgXAotICAgICAgICAgICIwLjE3ODgzOSwgMC4yNzY0NDQsIDAuODMwNTI2LCAxLjMyNDYyLCAxLjk3OTc5LCAzLjI4NzQ3LCA0LjEwMjc2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDg2NSwgMC4wMDQ4NjMsIDAuMDA0ODQ0LCAwLjAwNDgzNiwgMC4wMDQ4MzEsIDAuMDA0ODI2LCAwLjAwNDgyNSIsIFwKLSAgICAgICAgICAiMC4wMDQ4NTUsIDAuMDA0ODUyLCAwLjAwNDgzNCwgMC4wMDQ4MjYsIDAuMDA0ODIxLCAwLjAwNDgxNiwgMC4wMDQ4MTUiLCBcCi0gICAgICAgICAgIjAuMDA0ODQyLCAwLjAwNDg0LCAwLjAwNDgyMSwgMC4wMDQ4MTQsIDAuMDA0ODA4LCAwLjAwNDgwMywgMC4wMDQ4MDIiLCBcCi0gICAgICAgICAgIjAuMDA0ODM0LCAwLjAwNDgzMSwgMC4wMDQ4MTMsIDAuMDA0ODA1LCAwLjAwNDgsIDAuMDA0Nzk1LCAwLjAwNDc5NCIsIFwKLSAgICAgICAgICAiMC4wMDQ4MjgsIDAuMDA0ODI1LCAwLjAwNDgwNywgMC4wMDQ4LCAwLjAwNDc5NSwgMC4wMDQ3ODksIDAuMDA0Nzg4IiwgXAotICAgICAgICAgICIwLjAwNDgxNywgMC4wMDQ4MTUsIDAuMDA0Nzk3LCAwLjAwNDc4OSwgMC4wMDQ3ODQsIDAuMDA0Nzc4LCAwLjAwNDc3NyIsIFwKLSAgICAgICAgICAiMC4wMDQ4MTYsIDAuMDA0ODE0LCAwLjAwNDc5NywgMC4wMDQ3ODksIDAuMDA0Nzg0LCAwLjAwNDc3OSwgMC4wMDQ3NzYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDUxNjQsIDAuMDA1MTcxLCAwLjAwNTE4LCAwLjAwNTE4MiwgMC4wMDUxODMsIDAuMDA1MTg0LCAwLjAwNTE4NCIsIFwKLSAgICAgICAgICAiMC4wMDUxNTMsIDAuMDA1MTYsIDAuMDA1MTY4LCAwLjAwNTE3MSwgMC4wMDUxNzIsIDAuMDA1MTczLCAwLjAwNTE3MyIsIFwKLSAgICAgICAgICAiMC4wMDUxNDEsIDAuMDA1MTQ4LCAwLjAwNTE1NywgMC4wMDUxNTksIDAuMDA1MTYsIDAuMDA1MTYxLCAwLjAwNTE2MiIsIFwKLSAgICAgICAgICAiMC4wMDUxMzMsIDAuMDA1MTQsIDAuMDA1MTQ5LCAwLjAwNTE1MSwgMC4wMDUxNTIsIDAuMDA1MTUzLCAwLjAwNTE1NCIsIFwKLSAgICAgICAgICAiMC4wMDUxMzEsIDAuMDA1MTM3LCAwLjAwNTE0NiwgMC4wMDUxNDgsIDAuMDA1MTQ5LCAwLjAwNTE1LCAwLjAwNTE1MSIsIFwKLSAgICAgICAgICAiMC4wMDUxMjcsIDAuMDA1MTMzLCAwLjAwNTE0MiwgMC4wMDUxNDQsIDAuMDA1MTQ1LCAwLjAwNTE0NiwgMC4wMDUxNDYiLCBcCi0gICAgICAgICAgIjAuMDA1MTMxLCAwLjAwNTEzOCwgMC4wMDUxNDcsIDAuMDA1MTQ5LCAwLjAwNTE1LCAwLjAwNTE1MSwgMC4wMDUxNTEiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IERGRlFYMiAqCi0gKiAtLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKERGRlFYMikgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjI0NzYzOwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIGZmIChOMzAsUUJJTlQpIHsKLSAgICBuZXh0X3N0YXRlIDogIkQiOwotICAgIGNsb2NrZWRfb24gOiAiQ0siOwotICB9Ci0gIHBpbihDSykgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNTM2Mjg7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNTM1OTk3OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDUzNjI4OwotICAgIGNsb2NrIDogdHJ1ZTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDIzNCwgMC4wMDIzMjksIDAuMDAyMzE3LCAwLjAwMjMxMiwgMC4wMDIzMDcsIDAuMDAyMjk5LCAwLjAwMjI5NiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNTIyNCwgMC4wMDUyMTUsIDAuMDA1MjA5LCAwLjAwNTIwMywgMC4wMDUxOTgsIDAuMDA1MTkyLCAwLjAwNTE4OSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQiOwotICAgICAgc2RmX2NvbmQgOiAiRCA9PSAxJ2IwIjsKLSAgICAgIHJpc2VfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjI3ODcxNywgMC4yOTA3OTMsIDAuMzA1NzEzLCAwLjMyMTI2MywgMC4zMzY2NjMsIDAuMzYwOTkyLCAwLjM4MjA2OSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMjE2NzY0LCAwLjIyODA2OSwgMC4yNDMyNzEsIDAuMjU4MTUxLCAwLjI3Mjc4MSwgMC4yOTU3MywgMC4zMTQ5OCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNTcxODExOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDU3MDQ0MjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA1NzE4MTE7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxODcsIDAuMDAxODU4LCAwLjAwMTg1MSwgMC4wMDE4NDcsIDAuMDAxODQzLCAwLjAwMTgzOCwgMC4wMDE4MzQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDIyNiwgMC4wMDIyNTQsIDAuMDAyMjUsIDAuMDAyMjQ3LCAwLjAwMjI0NSwgMC4wMDIyNDEsIDAuMDAyMjM4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDQzNzUsIC0wLjAzMjUsIC0wLjAyLCAtMC4wMDc1LCAtMC4wMDEyNSwgMC4wMTUsIDAuMDMiLCBcCi0gICAgICAgICAgIi0wLjA1NSwgLTAuMDQzNzUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgMC4wMDM3NSwgMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wNjc1LCAtMC4wNTYyNSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAyNSwgLTAuMDA4NzUsIDAiLCBcCi0gICAgICAgICAgIi0wLjA4LCAtMC4wNjg3NSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wMzc1LCAtMC4wMjEyNSwgLTAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDkyNSwgLTAuMDg3NSwgLTAuMDc1LCAtMC4wNjI1LCAtMC4wNSwgLTAuMDMzNzUsIC0wLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMTE1LCAtMC4xMSwgLTAuMDk3NSwgLTAuMDg1LCAtMC4wNzI1LCAtMC4wNTYyNSwgLTAuMDQ3NSIsIFwKLSAgICAgICAgICAiLTAuMTM2MjUsIC0wLjEyNSwgLTAuMTEyNSwgLTAuMSwgLTAuMDg3NSwgLTAuMDc3NSwgLTAuMDYyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU2MjUsIDAuMDY3NSwgMC4wODYyNSwgMC4wOTg3NSwgMC4xMTEyNSwgMC4xNCwgMC4xNTUiLCBcCi0gICAgICAgICAgIjAuMDQ1LCAwLjA1NjI1LCAwLjA2ODc1LCAwLjA4NzUsIDAuMSwgMC4xMjI1LCAwLjE0Mzc1IiwgXAotICAgICAgICAgICIwLjAzMjUsIDAuMDQzNzUsIDAuMDU2MjUsIDAuMDc1LCAwLjA4NzUsIDAuMTEsIDAuMTMxMjUiLCBcCi0gICAgICAgICAgIjAuMDIsIDAuMDMxMjUsIDAuMDQzNzUsIDAuMDYyNSwgMC4wNzUsIDAuMDk3NSwgMC4xMTg3NSIsIFwKLSAgICAgICAgICAiMC4wMTM3NSwgMC4wMjUsIDAuMDM3NSwgMC4wNSwgMC4wNjg3NSwgMC4wOTEyNSwgMC4xMTI1IiwgXAotICAgICAgICAgICItMC4wMDI1LCAwLjAwODc1LCAwLjAyMTI1LCAwLjA0LCAwLjA1MjUsIDAuMDc1LCAwLjA5NjI1IiwgXAotICAgICAgICAgICItMC4wMTEyNSwgMCwgMC4wMTI1LCAwLjAyNSwgMC4wNDM3NSwgMC4wNjYyNSwgMC4wODEyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xLCAwLjA4ODc1LCAwLjA3NjI1LCAwLjA2Mzc1LCAwLjA1MTI1LCAwLjAzNSwgMC4wMiIsIFwKLSAgICAgICAgICAiMC4xMTEyNSwgMC4xLCAwLjA4NzUsIDAuMDc1LCAwLjA2MjUsIDAuMDQ2MjUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMTIzNzUsIDAuMTEyNSwgMC4xLCAwLjA4NzUsIDAuMDc1LCAwLjA1ODc1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjE0MjUsIDAuMTI1LCAwLjExMjUsIDAuMSwgMC4wODc1LCAwLjA3MTI1LCAwLjA2MjUiLCBcCi0gICAgICAgICAgIjAuMTU1LCAwLjE0Mzc1LCAwLjEyNSwgMC4xMTI1LCAwLjEsIDAuMDgzNzUsIDAuMDc1IiwgXAotICAgICAgICAgICIwLjE3NzUsIDAuMTY2MjUsIDAuMTQ3NSwgMC4xMzUsIDAuMTIyNSwgMC4xMDYyNSwgMC4wOTEyNSIsIFwKLSAgICAgICAgICAiMC4xOTI1LCAwLjE4MTI1LCAwLjE2ODc1LCAwLjE1NjI1LCAwLjE0Mzc1LCAwLjEyNzUsIDAuMTEyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzNzUsIDAuMDI2MjUsIDAuMDA3NSwgLTAuMDA1LCAtMC4wMjM3NSwgLTAuMDQ2MjUsIC0wLjA3Mzc1IiwgXAotICAgICAgICAgICIwLjA0ODc1LCAwLjAzNzUsIDAuMDE4NzUsIDAuMDA2MjUsIC0wLjAxMjUsIC0wLjAzNSwgLTAuMDYyNSIsIFwKLSAgICAgICAgICAiMC4wNjEyNSwgMC4wNSwgMC4wMzEyNSwgMC4wMTg3NSwgMCwgLTAuMDIyNSwgLTAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMDczNzUsIDAuMDYyNSwgMC4wNDM3NSwgMC4wMzEyNSwgMC4wMTI1LCAtMC4wMSwgLTAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMDg2MjUsIDAuMDc1LCAwLjA1NjI1LCAwLjA0Mzc1LCAwLjAyNSwgMC4wMDI1LCAtMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMTA4NzUsIDAuMDkxMjUsIDAuMDc4NzUsIDAuMDYsIDAuMDQ3NSwgMC4wMTg3NSwgLTAuMDAyNSIsIFwKLSAgICAgICAgICAiMC4xMjM3NSwgMC4xMTI1LCAwLjA5Mzc1LCAwLjA3NSwgMC4wNjI1LCAwLjAzMzc1LCAwLjAxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFEpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4yNTk2OTM7Ci0gICAgZnVuY3Rpb24gOiAiTjMwIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBub25fdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJpc2luZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yNDY3MDksIDAuNDI2NDkxLCAwLjU2OTkyMSwgMC43NDkzMzYsIDAuOTI4NTgzLCAxLjEwNzk0LCAxLjI4NzE0IiwgXAotICAgICAgICAgICIwLjI1ODg2NywgMC40Mzg2NDEsIDAuNTgyMDg3LCAwLjc2MTQ4LCAwLjk0MDcyOSwgMS4xMjAwMSwgMS4yOTkzMyIsIFwKLSAgICAgICAgICAiMC4yNzM4MDcsIDAuNDUzNTc3LCAwLjU5NzAyMiwgMC43NzY0MjMsIDAuOTU1NjY5LCAxLjEzNDk1LCAxLjMxNDIzIiwgXAotICAgICAgICAgICIwLjI4OTM2NywgMC40NjkxNTEsIDAuNjEyNTgzLCAwLjc5MjAwMywgMC45NzEyNDgsIDEuMTUwNTcsIDEuMzI5OCIsIFwKLSAgICAgICAgICAiMC4zMDQ2NjEsIDAuNDg0NDQ1LCAwLjYyNzg4NSwgMC44MDcyOSwgMC45ODY1MzUsIDEuMTY1ODIsIDEuMzQ1MTYiLCBcCi0gICAgICAgICAgIjAuMzI4OTg5LCAwLjUwODc2NCwgMC42NTIyMDEsIDAuODMxNjAxLCAxLjAxMDg1LCAxLjE5MDEsIDEuMzY5NDUiLCBcCi0gICAgICAgICAgIjAuMzQ5ODE2LCAwLjUyOTU4NiwgMC42NzMwOTUsIDAuODUyNDQ2LCAxLjAzMTY5LCAxLjIxMDk3LCAxLjM5MDE3Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5MDA3MiwgMC40NDk1OTcsIDAuNzQyNjQzLCAxLjEwNTY4LCAxLjQ3Mzk1LCAxLjgzNDU2LCAyLjIwNDg0IiwgXAotICAgICAgICAgICIwLjA5MDA3MywgMC40NTA1MTQsIDAuNzQxMzg1LCAxLjEwNTM2LCAxLjQ3Mzg2LCAxLjgzOTM0LCAyLjIwNDk3IiwgXAotICAgICAgICAgICIwLjA5MDA3OSwgMC40NTA1MSwgMC43NDE0LCAxLjEwNTM2LCAxLjQ3Mzg2LCAxLjgzOTI5LCAyLjIwNDc2IiwgXAotICAgICAgICAgICIwLjA5MDAzOCwgMC40NDk1NDUsIDAuNzQwMjk4LCAxLjEwNTQ2LCAxLjQ3Mzk2LCAxLjgzOTM5LCAyLjIwNDc5IiwgXAotICAgICAgICAgICIwLjA5MDExMSwgMC40NTA1MDksIDAuNzQxNDQ4LCAxLjEwNTM2LCAxLjQ3Mzg1LCAxLjgzOTMxLCAyLjIwNDk0IiwgXAotICAgICAgICAgICIwLjA5MDA5OSwgMC40NDk1NTcsIDAuNzQyNjY4LCAxLjEwNTM2LCAxLjQ3MzksIDEuODM2MzEsIDIuMjA0OTciLCBcCi0gICAgICAgICAgIjAuMDkwMTE1LCAwLjQ1MDQ1OSwgMC43NDA1NDcsIDEuMTA0OTksIDEuNDczOSwgMS44MzkzMSwgMi4yMDQxOCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yNzg3MTcsIDAuNDg1NDcyLCAwLjY1MDQ1NiwgMC44NTY3MzIsIDEuMDYyOSwgMS4yNjkwNywgMS40NzUzIiwgXAotICAgICAgICAgICIwLjI5MDc5MywgMC40OTc1NDEsIDAuNjYyNTEzLCAwLjg2ODgxNiwgMS4wNzQ5MiwgMS4yODExOCwgMS40ODczMyIsIFwKLSAgICAgICAgICAiMC4zMDU3MTMsIDAuNTEyNDY3LCAwLjY3NzQ1NywgMC44ODM2NjgsIDEuMDg5OTMsIDEuMjk2MDgsIDEuNTAyMTkiLCBcCi0gICAgICAgICAgIjAuMzIxMjYzLCAwLjUyODAwMiwgMC42OTI5ODcsIDAuODk5MjcxLCAxLjEwNTQ0LCAxLjMxMTYsIDEuNTE3NzUiLCBcCi0gICAgICAgICAgIjAuMzM2NjYzLCAwLjU0MzQxMSwgMC43MDg0MDUsIDAuOTE0NjksIDEuMTIwODcsIDEuMzI3MDEsIDEuNTMzMTgiLCBcCi0gICAgICAgICAgIjAuMzYwOTkyLCAwLjU2Nzc0MiwgMC43MzI3MzEsIDAuOTM5MDExLCAxLjE0NTE4LCAxLjM1MTM0LCAxLjU1NzQ3IiwgXAotICAgICAgICAgICIwLjM4MjA2OSwgMC41ODg4MSwgMC43NTM4MjYsIDAuOTYwMDYsIDEuMTY2MjMsIDEuMzcyNCwgMS41Nzg2MiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTg1OSwgMC41MDY5ODMsIDAuODM0NDUzLCAxLjI0NTIsIDEuNjU5ODQsIDIuMDcxNjQsIDIuNDgyOTYiLCBcCi0gICAgICAgICAgIjAuMDk4NiwgMC41MDcwMDUsIDAuODM0NDIxLCAxLjI0NDA1LCAxLjY1NjE2LCAyLjA3MTIxLCAyLjQ4MzEyIiwgXAotICAgICAgICAgICIwLjA5ODU5NCwgMC41MDY5ODQsIDAuODM0NjIsIDEuMjQ4NzcsIDEuNjU5NTYsIDIuMDcxNTQsIDIuNDg0NDIiLCBcCi0gICAgICAgICAgIjAuMDk4NTk4LCAwLjUwNjk4NCwgMC44MzQ0NjksIDEuMjQ0NDksIDEuNjU5NzYsIDIuMDcxNywgMi40NzgxOCIsIFwKLSAgICAgICAgICAiMC4wOTg1ODcsIDAuNTA2OTgyLCAwLjgzNTA0LCAxLjI0NDIyLCAxLjY1OTYyLCAyLjA3MTYsIDIuNDgzNTEiLCBcCi0gICAgICAgICAgIjAuMDk4NTkyLCAwLjUwNjk4MSwgMC44MzQ1NjEsIDEuMjQ0NjIsIDEuNjU5NTksIDIuMDcxNTQsIDIuNDg0MTEiLCBcCi0gICAgICAgICAgIjAuMDk4NTkyLCAwLjUwNTc0NywgMC44MzY0MzIsIDEuMjQ4MjEsIDEuNjU5OTUsIDIuMDcwNDYsIDIuNDgzMDciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2MDI0LCAwLjAwNjA1NSwgMC4wMDYwNTgsIDAuMDA2MDYsIDAuMDA2MDYzLCAwLjAwNjA2MiwgMC4wMDYwNjMiLCBcCi0gICAgICAgICAgIjAuMDA2MDEzLCAwLjAwNjA0NCwgMC4wMDYwNDgsIDAuMDA2MDQ5LCAwLjAwNjA1LCAwLjAwNjA1MSwgMC4wMDYwNTEiLCBcCi0gICAgICAgICAgIjAuMDA2LCAwLjAwNjAzMiwgMC4wMDYwMzUsIDAuMDA2MDM2LCAwLjAwNjAzNywgMC4wMDYwMzgsIDAuMDA2MDM4IiwgXAotICAgICAgICAgICIwLjAwNTk5MSwgMC4wMDYwMjMsIDAuMDA2MDI2LCAwLjAwNjAyNywgMC4wMDYwMywgMC4wMDYwMjksIDAuMDA2MDI5IiwgXAotICAgICAgICAgICIwLjAwNTk4NCwgMC4wMDYwMTYsIDAuMDA2MDE5LCAwLjAwNjAyMSwgMC4wMDYwMjEsIDAuMDA2MDIyLCAwLjAwNjAyMyIsIFwKLSAgICAgICAgICAiMC4wMDU5NzMsIDAuMDA2MDA1LCAwLjAwNjAwOCwgMC4wMDYwMSwgMC4wMDYwMTEsIDAuMDA2MDExLCAwLjAwNjAxMiIsIFwKLSAgICAgICAgICAiMC4wMDU5NjgsIDAuMDA2LCAwLjAwNjAwMywgMC4wMDYwMDUsIDAuMDA2MDA2LCAwLjAwNjAwNiwgMC4wMDYwMDciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDU4OTksIDAuMDA1OTQ0LCAwLjAwNTk0OSwgMC4wMDU5NTEsIDAuMDA1OTUyLCAwLjAwNTk1MywgMC4wMDU5NTMiLCBcCi0gICAgICAgICAgIjAuMDA1ODg2LCAwLjAwNTkzMSwgMC4wMDU5MzUsIDAuMDA1OTM3LCAwLjAwNTkzOSwgMC4wMDU5MzksIDAuMDA1OTQiLCBcCi0gICAgICAgICAgIjAuMDA1ODcyLCAwLjAwNTkxOSwgMC4wMDU5MjQsIDAuMDA1OTI2LCAwLjAwNTkyNywgMC4wMDU5MjgsIDAuMDA1OTI5IiwgXAotICAgICAgICAgICIwLjAwNTg2NiwgMC4wMDU5MTEsIDAuMDA1OTE2LCAwLjAwNTkxOCwgMC4wMDU5MiwgMC4wMDU5MiwgMC4wMDU5MjEiLCBcCi0gICAgICAgICAgIjAuMDA1ODYyLCAwLjAwNTkwOCwgMC4wMDU5MTMsIDAuMDA1OTE1LCAwLjAwNTkxNywgMC4wMDU5MTcsIDAuMDA1OTE4IiwgXAotICAgICAgICAgICIwLjAwNTg1OCwgMC4wMDU5MDQsIDAuMDA1OTA5LCAwLjAwNTkxMSwgMC4wMDU5MTIsIDAuMDA1OTEzLCAwLjAwNTkxNCIsIFwKLSAgICAgICAgICAiMC4wMDU4NjQsIDAuMDA1OTEsIDAuMDA1OTE0LCAwLjAwNTkxNywgMC4wMDU5MTgsIDAuMDA1OTE5LCAwLjAwNTkxOSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogREZGUVg0ICoKLSAqIC0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoREZGUVg0KSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMzQ3MDY2OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIGZmIChOMzAsUUJJTlQpIHsKLSAgICBuZXh0X3N0YXRlIDogIkQiOwotICAgIGNsb2NrZWRfb24gOiAiQ0siOwotICB9Ci0gIHBpbihDSykgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNTc0NTA3OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDU3NDI0NTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA1NzQ1MDc7Ci0gICAgY2xvY2sgOiB0cnVlOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjMwNCwgMC4wMDIyOTIsIDAuMDAyMjgyLCAwLjAwMjI3NiwgMC4wMDIyNzEsIDAuMDAyMjY0LCAwLjAwMjI2MSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNTQzNCwgMC4wMDU0MjYsIDAuMDA1NDE5LCAwLjAwNTQxMywgMC4wMDU0MDksIDAuMDA1NDAyLCAwLjAwNTM5OCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQiOwotICAgICAgc2RmX2NvbmQgOiAiRCA9PSAxJ2IwIjsKLSAgICAgIHJpc2VfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjI2Nzc2OCwgMC4yNzk0NTQsIDAuMjk0NzYyLCAwLjMxMDEwMywgMC4zMjU2MzQsIDAuMzUwMTI1LCAwLjM3MTE0MyIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMjE3MDEzLCAwLjIyODM5NSwgMC4yNDMzMjQsIDAuMjU4MTg3LCAwLjI3MjkyNCwgMC4yOTU4MTEsIDAuMzE1Mzc5Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihEKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2MTU3OTQ7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjE0MDU4OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDYxNTc5NDsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDE3MzQsIDAuMDAxNzIzLCAwLjAwMTcxNiwgMC4wMDE3MTEsIDAuMDAxNzA3LCAwLjAwMTcwMywgMC4wMDE2OTgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDIyNzQsIDAuMDAyMjY5LCAwLjAwMjI2NSwgMC4wMDIyNjIsIDAuMDAyMjU5LCAwLjAwMjI1NSwgMC4wMDIyNTMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMzc1LCAtMC4wMjYyNSwgLTAuMDEzNzUsIC0wLjAwNzUsIDAuMDA1LCAwLjAyMTI1LCAwLjAzIiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDM3NSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAuMDEsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjA2MTI1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgLTAuMDAyNSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDgsIC0wLjA2ODc1LCAtMC4wNTYyNSwgLTAuMDQzNzUsIC0wLjAzMTI1LCAtMC4wMTUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wOTI1LCAtMC4wODEyNSwgLTAuMDY4NzUsIC0wLjA1NjI1LCAtMC4wNDM3NSwgLTAuMDMzNzUsIC0wLjAxODc1IiwgXAotICAgICAgICAgICItMC4xMTUsIC0wLjEwMzc1LCAtMC4wOTEyNSwgLTAuMDc4NzUsIC0wLjA2NjI1LCAtMC4wNSwgLTAuMDQxMjUiLCBcCi0gICAgICAgICAgIi0wLjEzLCAtMC4xMTg3NSwgLTAuMTA2MjUsIC0wLjA5Mzc1LCAtMC4wODc1LCAtMC4wNzEyNSwgLTAuMDU2MjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2MjUsIDAuMDczNzUsIDAuMDg2MjUsIDAuMDk4NzUsIDAuMTE3NSwgMC4xNCwgMC4xNjEyNSIsIFwKLSAgICAgICAgICAiMC4wNTEyNSwgMC4wNjI1LCAwLjA3NSwgMC4wODc1LCAwLjEwNjI1LCAwLjEyODc1LCAwLjE1IiwgXAotICAgICAgICAgICIwLjAzMjUsIDAuMDQzNzUsIDAuMDYyNSwgMC4wNzUsIDAuMDkzNzUsIDAuMTE2MjUsIDAuMTM3NSIsIFwKLSAgICAgICAgICAiMC4wMjYyNSwgMC4wMzc1LCAwLjA1LCAwLjA2MjUsIDAuMDgxMjUsIDAuMTAzNzUsIDAuMTI1IiwgXAotICAgICAgICAgICIwLjAxMzc1LCAwLjAyNSwgMC4wMzc1LCAwLjA1NjI1LCAwLjA2ODc1LCAwLjA5MTI1LCAwLjExMjUiLCBcCi0gICAgICAgICAgIjAuMDAzNzUsIDAuMDE1LCAwLjAyNzUsIDAuMDQsIDAuMDUyNSwgMC4wODEyNSwgMC4xMDI1IiwgXAotICAgICAgICAgICItMC4wMTEyNSwgMCwgMC4wMTg3NSwgMC4wMzEyNSwgMC4wNDM3NSwgMC4wNjYyNSwgMC4wODc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEsIDAuMDg4NzUsIDAuMDcsIDAuMDU3NSwgMC4wNDUsIDAuMDI4NzUsIDAuMDIiLCBcCi0gICAgICAgICAgIjAuMTExMjUsIDAuMSwgMC4wODEyNSwgMC4wNjg3NSwgMC4wNTYyNSwgMC4wNCwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4xMjM3NSwgMC4xMTI1LCAwLjEsIDAuMDgxMjUsIDAuMDc1LCAwLjA1ODc1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjEzNjI1LCAwLjEyNSwgMC4xMTI1LCAwLjEsIDAuMDg3NSwgMC4wNzEyNSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiMC4xNDg3NSwgMC4xMzc1LCAwLjEyNSwgMC4xMTI1LCAwLjEsIDAuMDgzNzUsIDAuMDY4NzUiLCBcCi0gICAgICAgICAgIjAuMTcxMjUsIDAuMTYsIDAuMTQ3NSwgMC4xMzUsIDAuMTIyNSwgMC4xMDYyNSwgMC4wOTEyNSIsIFwKLSAgICAgICAgICAiMC4xOTI1LCAwLjE4MTI1LCAwLjE2MjUsIDAuMTUsIDAuMTM3NSwgMC4xMjEyNSwgMC4xMTI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDMxMjUsIDAuMDIsIDAuMDA3NSwgLTAuMDExMjUsIC0wLjAzLCAtMC4wNTI1LCAtMC4wNzM3NSIsIFwKLSAgICAgICAgICAiMC4wNDI1LCAwLjAzMTI1LCAwLjAxODc1LCAwLCAtMC4wMTg3NSwgLTAuMDQxMjUsIC0wLjA2MjUiLCBcCi0gICAgICAgICAgIjAuMDYxMjUsIDAuMDQzNzUsIDAuMDMxMjUsIDAuMDEyNSwgMCwgLTAuMDI4NzUsIC0wLjA1IiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDU2MjUsIDAuMDQzNzUsIDAuMDI1LCAwLjAxMjUsIC0wLjAxNjI1LCAtMC4wMzc1IiwgXAotICAgICAgICAgICIwLjA4LCAwLjA2ODc1LCAwLjA1NjI1LCAwLjAzNzUsIDAuMDE4NzUsIC0wLjAwMzc1LCAtMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMTAyNSwgMC4wOTEyNSwgMC4wNzI1LCAwLjA2LCAwLjA0MTI1LCAwLjAxODc1LCAtMC4wMDg3NSIsIFwKLSAgICAgICAgICAiMC4xMTc1LCAwLjEwNjI1LCAwLjA4NzUsIDAuMDc1LCAwLjA1NjI1LCAwLjAzMzc1LCAwLjAxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFEpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC41MzIwODI7Ci0gICAgZnVuY3Rpb24gOiAiTjMwIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBub25fdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJpc2luZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI0MTUzNSwgMC4zNjgyODksIDAuNDkzNjU5LCAwLjU4MzIxMywgMC43MjY1MzMsIDAuODUxODc0LCAxLjAzMDk4IiwgXAotICAgICAgICAgICIwLjI1MzM5OSwgMC4zODAxNSwgMC41MDU1MTUsIDAuNTk1MDUyLCAwLjczODMyNiwgMC44NjM3NDYsIDEuMDQyODMiLCBcCi0gICAgICAgICAgIjAuMjY4NDYyLCAwLjM5NTIxMiwgMC41MjA1OCwgMC42MTAxNCwgMC43NTMzOTMsIDAuODc4NjU4LCAxLjA1NzkiLCBcCi0gICAgICAgICAgIjAuMjgzOTg1LCAwLjQxMDc0OSwgMC41MzYxMjYsIDAuNjI1NjY0LCAwLjc2OTAxNCwgMC44OTQzOTYsIDEuMDczNDMiLCBcCi0gICAgICAgICAgIjAuMjk5Mzk5LCAwLjQyNjE1NiwgMC41NTE1MjUsIDAuNjQxMDgzLCAwLjc4NDMzNywgMC45MDk3NTIsIDEuMDg4ODQiLCBcCi0gICAgICAgICAgIjAuMzIzNzI2LCAwLjQ1MDQ4MSwgMC41NzU4MzQsIDAuNjY1MzkxLCAwLjgwODY1NCwgMC45MzQwNjMsIDEuMTEzMjEiLCBcCi0gICAgICAgICAgIjAuMzQ0NzIsIDAuNDcxNDY3LCAwLjU5NjgzMywgMC42ODYzOTQsIDAuODI5NjQ1LCAwLjk1NDg3MywgMS4xMzM5NiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1NTgxOCwgMC4zMDQyMDEsIDAuNTU4MjQzLCAwLjc0MjMwNiwgMS4wMzQ2LCAxLjI5MDAyLCAxLjY1MjMxIiwgXAotICAgICAgICAgICIwLjA1NTc2NiwgMC4zMDQyMzQsIDAuNTU4NTI0LCAwLjc0MTA2NiwgMS4wMzQyOCwgMS4yOTAwNywgMS42NTI0IiwgXAotICAgICAgICAgICIwLjA1NTgyOCwgMC4zMDQxODQsIDAuNTU4NTMsIDAuNzQyMzE5LCAxLjAzNDMxLCAxLjI4Njc1LCAxLjY1MjMxIiwgXAotICAgICAgICAgICIwLjA1NTgyMiwgMC4zMDQwNzYsIDAuNTU5ODI2LCAwLjc0MjI5OCwgMS4wMzE3NywgMS4yOTAzOSwgMS42NTIzMSIsIFwKLSAgICAgICAgICAiMC4wNTU4MiwgMC4zMDQyMDcsIDAuNTU4NTQ0LCAwLjc0MjMxLCAxLjAzNDMxLCAxLjI4Nzc2LCAxLjY1MjI5IiwgXAotICAgICAgICAgICIwLjA1NTgyNCwgMC4zMDQxODksIDAuNTU4NzcyLCAwLjc0MjIyNywgMS4wMzQyMSwgMS4yODc5MiwgMS42NDg5NSIsIFwKLSAgICAgICAgICAiMC4wNTU4MjYsIDAuMzA0MjMzLCAwLjU1ODUyOSwgMC43NDIzMTEsIDEuMDM0MjcsIDEuMjg1LCAxLjY1NDI4Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjY3NzY4LCAwLjQxNDQ3MiwgMC41NjAwMTksIDAuNjYzOTcyLCAwLjgzMDMzMiwgMC45NzU5NTksIDEuMTgzNzciLCBcCi0gICAgICAgICAgIjAuMjc5NDU0LCAwLjQyNjM0MywgMC41NzE5MiwgMC42NzU4NywgMC44NDIyMjcsIDAuOTg3NzQyLCAxLjE5NTY4IiwgXAotICAgICAgICAgICIwLjI5NDc2MiwgMC40NDE2MjIsIDAuNTg3MTgsIDAuNjkxMTU4LCAwLjg1NzQ5MywgMS4wMDMwMSwgMS4yMTA5NyIsIFwKLSAgICAgICAgICAiMC4zMTAxMDMsIDAuNDU2OTk2LCAwLjYwMjU1NSwgMC43MDY1MTcsIDAuODcyODUsIDEuMDE4MzksIDEuMjI2MyIsIFwKLSAgICAgICAgICAiMC4zMjU2MzQsIDAuNDcyNTA0LCAwLjYxODA4LCAwLjcyMjAxOSwgMC44ODgzNywgMS4wMzM5MywgMS4yNDE4NCIsIFwKLSAgICAgICAgICAiMC4zNTAxMjUsIDAuNDk2OTgsIDAuNjQyNTY4LCAwLjc0NjUxNiwgMC45MTI5NDgsIDEuMDU4MzgsIDEuMjY2MzEiLCBcCi0gICAgICAgICAgIjAuMzcxMTQzLCAwLjUxODAyNiwgMC42NjM2MTcsIDAuNzY3NTQyLCAwLjkzMzg5OCwgMS4wNzk0NywgMS4yODczMiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1OTkyNCwgMC4zNDQ1ODIsIDAuNjM0MzU4LCAwLjg0MzQsIDEuMTc0MTQsIDEuNDYxNzYsIDEuODgxMjkiLCBcCi0gICAgICAgICAgIjAuMDU5OTMxLCAwLjM0NDQyNywgMC42MzU3ODgsIDAuODQzMjkxLCAxLjE3NTYyLCAxLjQ2MjQ3LCAxLjg3NTcxIiwgXAotICAgICAgICAgICIwLjA1OTkyMSwgMC4zNDQ3MjYsIDAuNjM1ODE4LCAwLjg0MTM4MSwgMS4xNzM5NSwgMS40NjY0NSwgMS44ODA2OSIsIFwKLSAgICAgICAgICAiMC4wNTk5NDYsIDAuMzQ0MzcsIDAuNjM1NzY4LCAwLjg0MzI4LCAxLjE3NDQ1LCAxLjQ2NDA2LCAxLjg3OTczIiwgXAotICAgICAgICAgICIwLjA1OTkyMywgMC4zNDUwMzksIDAuNjM1NzM2LCAwLjg0MTIxMSwgMS4xNzQxNCwgMS40NjYyOSwgMS44NzcyMiIsIFwKLSAgICAgICAgICAiMC4wNTk5MzksIDAuMzQ1MDcxLCAwLjYzNTkzLCAwLjg0MzMsIDEuMTcxMTksIDEuNDYyOTQsIDEuODc2OSIsIFwKLSAgICAgICAgICAiMC4wNTk5MzMsIDAuMzQ0NzE0LCAwLjYzNTg2MSwgMC44NDE0MDUsIDEuMTc0MTEsIDEuNDY2MDEsIDEuODc3OTUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDgxNDQsIDAuMDA4MjMsIDAuMDA4MjI4LCAwLjAwODIyNSwgMC4wMDgyMjEsIDAuMDA4MjE4LCAwLjAwODIxNiIsIFwKLSAgICAgICAgICAiMC4wMDgxMzIsIDAuMDA4MjE5LCAwLjAwODIxNywgMC4wMDgyMTQsIDAuMDA4MjEsIDAuMDA4MjA4LCAwLjAwODIwNSIsIFwKLSAgICAgICAgICAiMC4wMDgxMjEsIDAuMDA4MjA2LCAwLjAwODIwNSwgMC4wMDgyMDIsIDAuMDA4MTk3LCAwLjAwODE5NiwgMC4wMDgxOTEiLCBcCi0gICAgICAgICAgIjAuMDA4MTExLCAwLjAwODE5OCwgMC4wMDgxOTgsIDAuMDA4MTk0LCAwLjAwODE5LCAwLjAwODE4OCwgMC4wMDgxODUiLCBcCi0gICAgICAgICAgIjAuMDA4MTA1LCAwLjAwODE5MiwgMC4wMDgxOTEsIDAuMDA4MTg4LCAwLjAwODE4NSwgMC4wMDgxODIsIDAuMDA4MTc5IiwgXAotICAgICAgICAgICIwLjAwODA5NCwgMC4wMDgxODIsIDAuMDA4MTgxLCAwLjAwODE3OCwgMC4wMDgxNzQsIDAuMDA4MTcxLCAwLjAwODE2OCIsIFwKLSAgICAgICAgICAiMC4wMDgwODksIDAuMDA4MTc3LCAwLjAwODE3NywgMC4wMDgxNzMsIDAuMDA4MTY5LCAwLjAwODE2NiwgMC4wMDgxNjQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwODEzOSwgMC4wMDgyNzgsIDAuMDA4Mjk4LCAwLjAwODMwNCwgMC4wMDgzMDksIDAuMDA4MzExLCAwLjAwODMxNCIsIFwKLSAgICAgICAgICAiMC4wMDgxMjIsIDAuMDA4MjY1LCAwLjAwODI4NSwgMC4wMDgyOTEsIDAuMDA4Mjk2LCAwLjAwODI5OSwgMC4wMDgzMDIiLCBcCi0gICAgICAgICAgIjAuMDA4MTE5LCAwLjAwODI1NywgMC4wMDgyNzYsIDAuMDA4MjgyLCAwLjAwODI4NywgMC4wMDgyODksIDAuMDA4MjkxIiwgXAotICAgICAgICAgICIwLjAwODEwMywgMC4wMDgyNDcsIDAuMDA4MjY2LCAwLjAwODI3MiwgMC4wMDgyNzgsIDAuMDA4MjgsIDAuMDA4MjgzIiwgXAotICAgICAgICAgICIwLjAwODEwNSwgMC4wMDgyNDUsIDAuMDA4MjY0LCAwLjAwODI3LCAwLjAwODI3NSwgMC4wMDgyNzcsIDAuMDA4MjgiLCBcCi0gICAgICAgICAgIjAuMDA4MTA2LCAwLjAwODI0MiwgMC4wMDgyNiwgMC4wMDgyNjYsIDAuMDA4MjcxLCAwLjAwODI3NCwgMC4wMDgyNzYiLCBcCi0gICAgICAgICAgIjAuMDA4MDk5LCAwLjAwODI0MywgMC4wMDgyNjIsIDAuMDA4MjY5LCAwLjAwODI3NCwgMC4wMDgyNzcsIDAuMDA4Mjc5Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IERGRlJIUVgyICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChERkZSSFFYMikgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjMyNjMyMjsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBmZiAoTjMwLFFCSU5UKSB7Ci0gICAgbmV4dF9zdGF0ZSA6ICJEIjsKLSAgICBjbG9ja2VkX29uIDogIkNLIjsKLSAgICBjbGVhciA6ICIoIVJOKSI7Ci0gIH0KLSAgcGluKENLKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA1OTM1Njk7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNTkzMzE1OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDU5MzU2OTsKLSAgICBjbG9jayA6IHRydWU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyNjI4LCAwLjAwMjYxNywgMC4wMDI2MDYsIDAuMDAyNjAxLCAwLjAwMjU5NywgMC4wMDI1OSwgMC4wMDI1ODYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDY2NjYsIDAuMDA2NjU5LCAwLjAwNjY1MiwgMC4wMDY2NDcsIDAuMDA2NjQ0LCAwLjAwNjYzNywgMC4wMDY2MzYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFEJlJOIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9STl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMjkzMTczLCAwLjMwNDgzOSwgMC4zMjAxNiwgMC4zMzU1OSwgMC4zNTEwOCwgMC4zNzUyNzIsIDAuMzk2ODI2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4yMjUzODksIDAuMjM2OTMxLCAwLjI1MTc4OSwgMC4yNjY2ODQsIDAuMjgxNTgxLCAwLjMwNDY0NywgMC4zMjQ4OTQiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEQpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDc1NDQ3OTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA3NTE1OTc7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNzU0NDc5OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjM4NywgMC4wMDIzNywgMC4wMDIzNTksIDAuMDAyMzUyLCAwLjAwMjM0NywgMC4wMDIzMzksIDAuMDAyMzM0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyOTIxLCAwLjAwMjkxMiwgMC4wMDI5MDYsIDAuMDAyOTAxLCAwLjAwMjg5OCwgMC4wMDI4OTIsIDAuMDAyODkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiUk4iOwotICAgICAgc2RmX2NvbmQgOiAiUk4gPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDQzNzUsIC0wLjAzMjUsIC0wLjAyLCAtMC4wMDc1LCAwLjAwNSwgMC4wMjEyNSwgMC4wMyIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNDM3NSwgLTAuMDMxMjUsIC0wLjAxODc1LCAtMC4wMDYyNSwgMC4wMSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDY3NSwgLTAuMDU2MjUsIC0wLjA0Mzc1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIC0wLjAwMjUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA4LCAtMC4wNjg3NSwgLTAuMDU2MjUsIC0wLjA0Mzc1LCAtMC4wMzEyNSwgLTAuMDE1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDkyNSwgLTAuMDgxMjUsIC0wLjA2ODc1LCAtMC4wNTYyNSwgLTAuMDQzNzUsIC0wLjAzMzc1LCAtMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMTE1LCAtMC4xMDM3NSwgLTAuMDkxMjUsIC0wLjA3ODc1LCAtMC4wNjYyNSwgLTAuMDUsIC0wLjAzNSIsIFwKLSAgICAgICAgICAiLTAuMTMsIC0wLjExODc1LCAtMC4xMDYyNSwgLTAuMDkzNzUsIC0wLjA4MTI1LCAtMC4wNjUsIC0wLjA1NjI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjg3NSwgMC4wOCwgMC4wOTg3NSwgMC4xMTEyNSwgMC4xMywgMC4xNTI1LCAwLjE3Mzc1IiwgXAotICAgICAgICAgICIwLjA1NzUsIDAuMDY4NzUsIDAuMDgxMjUsIDAuMSwgMC4xMTI1LCAwLjE0MTI1LCAwLjE2MjUiLCBcCi0gICAgICAgICAgIjAuMDQ1LCAwLjA1NjI1LCAwLjA2ODc1LCAwLjA4NzUsIDAuMSwgMC4xMjI1LCAwLjE0Mzc1IiwgXAotICAgICAgICAgICIwLjAzMjUsIDAuMDQzNzUsIDAuMDYyNSwgMC4wNzUsIDAuMDg3NSwgMC4xMTYyNSwgMC4xMzc1IiwgXAotICAgICAgICAgICIwLjAyNjI1LCAwLjAzNzUsIDAuMDUsIDAuMDYyNSwgMC4wODEyNSwgMC4xMDM3NSwgMC4xMjUiLCBcCi0gICAgICAgICAgIjAuMDEsIDAuMDIxMjUsIDAuMDQsIDAuMDUyNSwgMC4wNjUsIDAuMDkzNzUsIDAuMTE1IiwgXAotICAgICAgICAgICIwLjAwMTI1LCAwLjAxMjUsIDAuMDI1LCAwLjA0Mzc1LCAwLjA1NjI1LCAwLjA3ODc1LCAwLjEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlJOIjsKLSAgICAgIHNkZl9jb25kIDogIlJOID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5Mzc1LCAwLjA4MjUsIDAuMDYzNzUsIDAuMDUxMjUsIDAuMDQ1LCAwLjAyMjUsIDAuMDEzNzUiLCBcCi0gICAgICAgICAgIjAuMTA1LCAwLjA5Mzc1LCAwLjA3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjAzMzc1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiMC4xMTc1LCAwLjEwNjI1LCAwLjA4NzUsIDAuMDc1LCAwLjA2ODc1LCAwLjA1MjUsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiMC4xMywgMC4xMTg3NSwgMC4xMDYyNSwgMC4wOTM3NSwgMC4wODEyNSwgMC4wNjUsIDAuMDUiLCBcCi0gICAgICAgICAgIjAuMTQyNSwgMC4xMzEyNSwgMC4xMTg3NSwgMC4xMDYyNSwgMC4wOTM3NSwgMC4wNzc1LCAwLjA2MjUiLCBcCi0gICAgICAgICAgIjAuMTY1LCAwLjE1Mzc1LCAwLjE0MTI1LCAwLjEyMjUsIDAuMTE2MjUsIDAuMSwgMC4wODUiLCBcCi0gICAgICAgICAgIjAuMTg2MjUsIDAuMTY4NzUsIDAuMTU2MjUsIDAuMTQzNzUsIDAuMTMxMjUsIDAuMTE1LCAwLjEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDYyNSwgLTAuMDA1LCAtMC4wMTc1LCAtMC4wMzYyNSwgLTAuMDQ4NzUsIC0wLjA3NzUsIC0wLjA5ODc1IiwgXAotICAgICAgICAgICIwLjAxNzUsIDAuMDA2MjUsIC0wLjAwNjI1LCAtMC4wMjUsIC0wLjAzNzUsIC0wLjA2NjI1LCAtMC4wODc1IiwgXAotICAgICAgICAgICIwLjAzLCAwLjAxODc1LCAwLjAwNjI1LCAtMC4wMTI1LCAtMC4wMjUsIC0wLjA1Mzc1LCAtMC4wNzUiLCBcCi0gICAgICAgICAgIjAuMDQyNSwgMC4wMzEyNSwgMC4wMTg3NSwgMCwgLTAuMDE4NzUsIC0wLjA0MTI1LCAtMC4wNjI1IiwgXAotICAgICAgICAgICIwLjA1NSwgMC4wNDM3NSwgMC4wMzEyNSwgMC4wMTI1LCAtMC4wMDYyNSwgLTAuMDI4NzUsIC0wLjA1IiwgXAotICAgICAgICAgICIwLjA3NzUsIDAuMDY2MjUsIDAuMDQ3NSwgMC4wMjg3NSwgMC4wMTYyNSwgLTAuMDEyNSwgLTAuMDMzNzUiLCBcCi0gICAgICAgICAgIjAuMDkyNSwgMC4wODEyNSwgMC4wNjI1LCAwLjA1LCAwLjAzMTI1LCAwLjAwODc1LCAtMC4wMTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihRKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMjU0NDk7Ci0gICAgZnVuY3Rpb24gOiAiTjMwIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBub25fdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJpc2luZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMDkzMTksIDAuNDkzMzQ0LCAwLjYzNjQ4NywgMC44MTU0ODksIDAuOTk0MzcyLCAxLjE3MzM3LCAxLjM1MjI3IiwgXAotICAgICAgICAgICIwLjMyMTE4NSwgMC41MDUxNzcsIDAuNjQ4MzM5LCAwLjgyNzM2NiwgMS4wMDYyNSwgMS4xODUxNiwgMS4zNjQxNSIsIFwKLSAgICAgICAgICAiMC4zMzYyNTcsIDAuNTIwMjQ5LCAwLjY2MzQxMiwgMC44NDI0ODQsIDEuMDIxMywgMS4yMDAzOCwgMS4zNzkyMiIsIFwKLSAgICAgICAgICAiMC4zNTE3ODksIDAuNTM1ODAxLCAwLjY3ODk2OCwgMC44NTc5NjQsIDEuMDM2ODgsIDEuMjE1OCwgMS4zOTQ4MiIsIFwKLSAgICAgICAgICAiMC4zNjcyNDEsIDAuNTUxMjM3LCAwLjY5NDQsIDAuODczMzI3LCAxLjA1MjM3LCAxLjIzMTM0LCAxLjQxMDI0IiwgXAotICAgICAgICAgICIwLjM5MTIxOCwgMC41NzUyMSwgMC43MTgzNzYsIDAuODk3MzA4LCAxLjA3NjI2LCAxLjI1NTE3LCAxLjQzNDI1IiwgXAotICAgICAgICAgICIwLjQxMjc4OCwgMC41OTY4MDksIDAuNzM5OTUxLCAwLjkxODk1NiwgMS4wOTc4MywgMS4yNzY4MiwgMS40NTU3MyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDU4NzQsIDAuNDU1NDgsIDAuNzQ0NDg1LCAxLjEwODU3LCAxLjQ3MjQ5LCAxLjgzMzc3LCAyLjIwMjQ1IiwgXAotICAgICAgICAgICIwLjEwNTkwNywgMC40NTQ2MjksIDAuNzQzMzM5LCAxLjEwNTQ3LCAxLjQ3MDMzLCAxLjgzNzQ0LCAyLjIwMjYyIiwgXAotICAgICAgICAgICIwLjEwNTg0LCAwLjQ1NDU2NCwgMC43NDMzOTYsIDEuMTA1NzcsIDEuNDcyNTMsIDEuODMyNjQsIDIuMjAyNTkiLCBcCi0gICAgICAgICAgIjAuMTA1ODY1LCAwLjQ1NDg2NCwgMC43NDMzNSwgMS4xMDg1MiwgMS40NzI5NCwgMS44Mzc1MiwgMi4yMDI4OSIsIFwKLSAgICAgICAgICAiMC4xMDU5LCAwLjQ1NTM5NywgMC43NDMzNDksIDEuMTA4MTUsIDEuNDY5MDMsIDEuODMyODIsIDIuMjAyNzkiLCBcCi0gICAgICAgICAgIjAuMTA1ODYyLCAwLjQ1NDg5NywgMC43NDMzODYsIDEuMTA4MjIsIDEuNDcyODMsIDEuODM3MDMsIDIuMTk2NjciLCBcCi0gICAgICAgICAgIjAuMTA1ODIxLCAwLjQ1NTQwNywgMC43NDQ0NTMsIDEuMTA4NTYsIDEuNDcyNDcsIDEuODMzNSwgMi4yMDI0NCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yOTMxNzMsIDAuNTAwMTExLCAwLjY2NTA0MiwgMC44NzExMzMsIDEuMDc3MTgsIDEuMjgzMjgsIDEuNDg5MyIsIFwKLSAgICAgICAgICAiMC4zMDQ4MzksIDAuNTExNzg1LCAwLjY3NjczNiwgMC44ODI4MDMsIDEuMDg4ODYsIDEuMjk0OSwgMS41MDA5OSIsIFwKLSAgICAgICAgICAiMC4zMjAxNiwgMC41MjcxMTYsIDAuNjkyMDczLCAwLjg5ODEzMSwgMS4xMDQxOCwgMS4zMTAyNiwgMS41MTYyOSIsIFwKLSAgICAgICAgICAiMC4zMzU1OSwgMC41NDI1ODksIDAuNzA3NDY2LCAwLjkxMzU2LCAxLjExOTU5LCAxLjMyNTY5LCAxLjUzMTczIiwgXAotICAgICAgICAgICIwLjM1MTA4LCAwLjU1ODA1MiwgMC43MjI5NzgsIDAuOTI5MDQ0LCAxLjEzNTExLCAxLjM0MTE3LCAxLjU0NzIzIiwgXAotICAgICAgICAgICIwLjM3NTI3MiwgMC41ODIyMzIsIDAuNzQ3MTUsIDAuOTUzMjQzLCAxLjE1OTI4LCAxLjM2NTM3LCAxLjU3MTQxIiwgXAotICAgICAgICAgICIwLjM5NjgyNiwgMC42MDM3OTgsIDAuNzY4NzI0LCAwLjk3NDc5LCAxLjE4MDg1LCAxLjM4NjkyLCAxLjU5Mjk4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwMDIzNiwgMC41MDY3MjIsIDAuODM1NjA5LCAxLjI0NzcxLCAxLjY1OTMxLCAyLjA3MDE1LCAyLjQ4MjIyIiwgXAotICAgICAgICAgICIwLjEwMDIzNiwgMC41MDY1NzksIDAuODM0NjQ0LCAxLjI0NzY2LCAxLjY1OTEzLCAyLjA3MDc3LCAyLjQ4MTg1IiwgXAotICAgICAgICAgICIwLjEwMDIwNSwgMC41MDY1OTUsIDAuODMzMjQxLCAxLjI0NzU4LCAxLjY1OTI5LCAyLjA2OTA1LCAyLjQ4MjE1IiwgXAotICAgICAgICAgICIwLjEwMDIyOSwgMC41MDUyODgsIDAuODM1NjE3LCAxLjI0NzUsIDEuNjU5NDIsIDIuMDcwMjUsIDIuNDgyMDYiLCBcCi0gICAgICAgICAgIjAuMTAwMjM3LCAwLjUwNjYyNCwgMC44MzQ4NTksIDEuMjQ3NjUsIDEuNjU5MDgsIDIuMDcwMjQsIDIuNDgxNzYiLCBcCi0gICAgICAgICAgIjAuMTAwMTUzLCAwLjUwNjYxNywgMC44MzUxNiwgMS4yNDc0NSwgMS42NTkzOSwgMi4wNzAyOSwgMi40ODIwMiIsIFwKLSAgICAgICAgICAiMC4xMDAyMzYsIDAuNTA2NjI0LCAwLjgzNDg2NCwgMS4yNDc2NiwgMS42NTkwNywgMi4wNzAxMiwgMi40ODE3NCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogY2xlYXI7Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExMTQxOSwgMC4zMTg4MzUsIDAuNDgzNjM2LCAwLjY4OTY2NCwgMC44OTU3MTEsIDEuMTAxNzYsIDEuMzA3NzkiLCBcCi0gICAgICAgICAgIjAuMTIyODY4LCAwLjMzMDMwMywgMC40OTUxMTcsIDAuNzAxMTUsIDAuOTA3MTYyLCAxLjExMzMsIDEuMzE5MjEiLCBcCi0gICAgICAgICAgIjAuMTM3Nzc3LCAwLjM0NTIzNCwgMC41MTAwNDksIDAuNzE2MDcsIDAuOTIyMTY4LCAxLjEyODE3LCAxLjMzNDE5IiwgXAotICAgICAgICAgICIwLjE1MjQxNCwgMC4zNTk5MDksIDAuNTI0NzQ4LCAwLjczMDc2NCwgMC45MzY4MSwgMS4xNDI4MiwgMS4zNDg4NSIsIFwKLSAgICAgICAgICAiMC4xNjcxOTcsIDAuMzc0NzE3LCAwLjUzOTU1NSwgMC43NDU1ODIsIDAuOTUxNjIzLCAxLjE1NzY3LCAxLjM2MzgzIiwgXAotICAgICAgICAgICIwLjE4OTk2NywgMC4zOTc1MjIsIDAuNTYyMzY5LCAwLjc2ODQyMywgMC45NzQ0NzEsIDEuMTgwNTgsIDEuMzg2NTEiLCBcCi0gICAgICAgICAgIjAuMjA4ODYxLCAwLjQxNjQyNCwgMC41ODEyOTksIDAuNzg3MzEzLCAwLjk5MzQ0OCwgMS4xOTk0LCAxLjQwNTQyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwMDcyLCAwLjUwNTMxOSwgMC44MzM2NjgsIDEuMjQzOTUsIDEuNjU1NzIsIDIuMDY2NjQsIDIuNDc1NTMiLCBcCi0gICAgICAgICAgIjAuMTAwNzM5LCAwLjUwNTI3NywgMC44MzM4ODMsIDEuMjQzMDMsIDEuNjU1NzMsIDIuMDY1MDgsIDIuNDc3MTUiLCBcCi0gICAgICAgICAgIjAuMTAwNzE3LCAwLjUwNTI1OSwgMC44MzI5MDgsIDEuMjQzMDUsIDEuNjU0MTcsIDIuMDY1MTQsIDIuNDc4ODciLCBcCi0gICAgICAgICAgIjAuMTAwNzU4LCAwLjUwNTI2NiwgMC44MzQyNzgsIDEuMjQzMDEsIDEuNjU2MzEsIDIuMDY1ODQsIDIuNDc3MTciLCBcCi0gICAgICAgICAgIjAuMTAwNzk2LCAwLjUwNTc0LCAwLjgzMjczNCwgMS4yNDM2LCAxLjY1NDE0LCAyLjA2NzA0LCAyLjQ3NTczIiwgXAotICAgICAgICAgICIwLjEwMTE4NSwgMC41MDUyOTIsIDAuODMzOTc0LCAxLjI0Mjk1LCAxLjY1NDgzLCAyLjA2NDk1LCAyLjQ3NzE3IiwgXAotICAgICAgICAgICIwLjEwMTg1MywgMC41MDUzMDYsIDAuODMzMDcsIDEuMjQzMDMsIDEuNjUzOCwgMi4wNjQ5OSwgMi40NzcxMiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDY5MDcsIDAuMDA2OTMyLCAwLjAwNjkyNiwgMC4wMDY5MiwgMC4wMDY5MTYsIDAuMDA2OTEzLCAwLjAwNjkxMSIsIFwKLSAgICAgICAgICAiMC4wMDY4OTYsIDAuMDA2OTIyLCAwLjAwNjkxNSwgMC4wMDY5MSwgMC4wMDY5MDUsIDAuMDA2OTAyLCAwLjAwNjkwMSIsIFwKLSAgICAgICAgICAiMC4wMDY4ODUsIDAuMDA2OTA5LCAwLjAwNjkwMywgMC4wMDY4OTcsIDAuMDA2ODkzLCAwLjAwNjg5LCAwLjAwNjg4OSIsIFwKLSAgICAgICAgICAiMC4wMDY4NzcsIDAuMDA2OTAxLCAwLjAwNjg5NSwgMC4wMDY4ODksIDAuMDA2ODg1LCAwLjAwNjg4MywgMC4wMDY4ODEiLCBcCi0gICAgICAgICAgIjAuMDA2ODY5LCAwLjAwNjg5NCwgMC4wMDY4ODgsIDAuMDA2ODgyLCAwLjAwNjg3OCwgMC4wMDY4NzcsIDAuMDA2ODc0IiwgXAotICAgICAgICAgICIwLjAwNjg1NiwgMC4wMDY4ODIsIDAuMDA2ODc2LCAwLjAwNjg3MSwgMC4wMDY4NjYsIDAuMDA2ODY0LCAwLjAwNjg2MSIsIFwKLSAgICAgICAgICAiMC4wMDY4NTEsIDAuMDA2ODc4LCAwLjAwNjg3MSwgMC4wMDY4NjYsIDAuMDA2ODYyLCAwLjAwNjg1OSwgMC4wMDY4NTYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDcwMjcsIDAuMDA3MDc5LCAwLjAwNzA4NSwgMC4wMDcwODgsIDAuMDA3MDksIDAuMDA3MDkxLCAwLjAwNzA5MiIsIFwKLSAgICAgICAgICAiMC4wMDcwMTcsIDAuMDA3MDY5LCAwLjAwNzA3NSwgMC4wMDcwNzgsIDAuMDA3MDgsIDAuMDA3MDgxLCAwLjAwNzA4MiIsIFwKLSAgICAgICAgICAiMC4wMDcwMDcsIDAuMDA3MDU5LCAwLjAwNzA2NSwgMC4wMDcwNjgsIDAuMDA3MDcsIDAuMDA3MDcxLCAwLjAwNzA3MiIsIFwKLSAgICAgICAgICAiMC4wMDY5OTksIDAuMDA3MDUxLCAwLjAwNzA1NywgMC4wMDcwNiwgMC4wMDcwNjIsIDAuMDA3MDYzLCAwLjAwNzA2NCIsIFwKLSAgICAgICAgICAiMC4wMDY5OTQsIDAuMDA3MDQ2LCAwLjAwNzA1MiwgMC4wMDcwNTUsIDAuMDA3MDU3LCAwLjAwNzA1OCwgMC4wMDcwNTkiLCBcCi0gICAgICAgICAgIjAuMDA2OTk1LCAwLjAwNzA0NywgMC4wMDcwNTQsIDAuMDA3MDU3LCAwLjAwNzA1OSwgMC4wMDcwNiwgMC4wMDcwNjEiLCBcCi0gICAgICAgICAgIjAuMDA2OTk0LCAwLjAwNzA0NiwgMC4wMDcwNTIsIDAuMDA3MDU1LCAwLjAwNzA1NywgMC4wMDcwNTgsIDAuMDA3MDU5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUk4iOwotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNzczLCAwLjAwNzc3LCAwLjAwNzc3NSwgMC4wMDc3NzcsIDAuMDA3Nzc4LCAwLjAwNzc3OSwgMC4wMDc3NzkiLCBcCi0gICAgICAgICAgIjAuMDA3NzA3LCAwLjAwNzc1LCAwLjAwNzc1NCwgMC4wMDc3NTcsIDAuMDA3NzU4LCAwLjAwNzc1OSwgMC4wMDc3NTkiLCBcCi0gICAgICAgICAgIjAuMDA3Njg1LCAwLjAwNzczNCwgMC4wMDc3MzksIDAuMDA3NzQyLCAwLjAwNzc0NCwgMC4wMDc3NDUsIDAuMDA3NzQ1IiwgXAotICAgICAgICAgICIwLjAwNzY2NiwgMC4wMDc3MiwgMC4wMDc3MjgsIDAuMDA3NzMxLCAwLjAwNzczMywgMC4wMDc3MzQsIDAuMDA3NzM1IiwgXAotICAgICAgICAgICIwLjAwNzY0OCwgMC4wMDc3MDgsIDAuMDA3NzE3LCAwLjAwNzcyMSwgMC4wMDc3MjMsIDAuMDA3NzI1LCAwLjAwNzcyNiIsIFwKLSAgICAgICAgICAiMC4wMDc2MjcsIDAuMDA3NjkzLCAwLjAwNzcwMywgMC4wMDc3MDksIDAuMDA3NzExLCAwLjAwNzcxMywgMC4wMDc3MTQiLCBcCi0gICAgICAgICAgIjAuMDA3NjEsIDAuMDA3Njc5LCAwLjAwNzY5MSwgMC4wMDc2OTcsIDAuMDA3NzAxLCAwLjAwNzcwMywgMC4wMDc3MDQiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfcG93ZXIoc2NhbGFyKSB7Ci0gICAgICAgIHZhbHVlcygiMCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUk4pICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTQ3OTA0OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTM2NjExOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTQ3OTA0OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDQ4NSwgMC4wMDA0ODUsIDAuMDAwNDg0LCAwLjAwMDQ4NCwgMC4wMDA0ODMsIDAuMDAwNDg0LCAwLjAwMDQ4NCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDQ5MiwgMC4wMDA0ODcsIDAuMDAwNDg3LCAwLjAwMDQ4NywgMC4wMDA0ODcsIDAuMDAwNDg3LCAwLjAwMDQ4NyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQiOwotICAgICAgc2RmX2NvbmQgOiAiRCA9PSAxJ2IwIjsKLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjE2NjY4OSwgMC4xNzgzMDgsIDAuMTkyMzIxLCAwLjIwNTQ5NCwgMC4yMTgwNzksIDAuMjM3ODc1LCAwLjI1NDMyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJlY292ZXJ5X3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiRCI7Ci0gICAgICBzZGZfY29uZCA6ICJEID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHJlY292ZXJ5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wNzUsIC0wLjA4NjI1LCAtMC4xMDUsIC0wLjEyMzc1LCAtMC4xMzYyNSwgLTAuMTY1LCAtMC4xODYyNSIsIFwKLSAgICAgICAgICAiLTAuMDgyNSwgLTAuMSwgLTAuMTEyNSwgLTAuMTMxMjUsIC0wLjE0Mzc1LCAtMC4xNzI1LCAtMC4xOTM3NSIsIFwKLSAgICAgICAgICAiLTAuMDk1LCAtMC4xMDYyNSwgLTAuMTE4NzUsIC0wLjEzNzUsIC0wLjE1LCAtMC4xNzg3NSwgLTAuMiIsIFwKLSAgICAgICAgICAiLTAuMDk1LCAtMC4xMDYyNSwgLTAuMTI1LCAtMC4xMzc1LCAtMC4xNTYyNSwgLTAuMTc4NzUsIC0wLjIiLCBcCi0gICAgICAgICAgIi0wLjA4ODc1LCAtMC4xLCAtMC4xMTg3NSwgLTAuMTMxMjUsIC0wLjE1LCAtMC4xNzg3NSwgLTAuMiIsIFwKLSAgICAgICAgICAiLTAuMDY2MjUsIC0wLjA3NzUsIC0wLjA5NjI1LCAtMC4xMTUsIC0wLjEzMzc1LCAtMC4xNTYyNSwgLTAuMTc3NSIsIFwKLSAgICAgICAgICAiLTAuMDQ1LCAtMC4wNTYyNSwgLTAuMDc1LCAtMC4wOTM3NSwgLTAuMTEyNSwgLTAuMTM1LCAtMC4xNjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogcmVtb3ZhbF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIkQiOwotICAgICAgc2RmX2NvbmQgOiAiRCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChyZW1vdmFsX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExODc1LCAwLjEzNjI1LCAwLjE0ODc1LCAwLjE2MTI1LCAwLjE4LCAwLjIwMjUsIDAuMjIzNzUiLCBcCi0gICAgICAgICAgIjAuMTMyNSwgMC4xNDM3NSwgMC4xNTYyNSwgMC4xNzUsIDAuMTg3NSwgMC4yMSwgMC4yMzEyNSIsIFwKLSAgICAgICAgICAiMC4xMzg3NSwgMC4xNSwgMC4xNjg3NSwgMC4xODEyNSwgMC4yLCAwLjIyMjUsIDAuMjQzNzUiLCBcCi0gICAgICAgICAgIjAuMTUxMjUsIDAuMTYyNSwgMC4xNzUsIDAuMTkzNzUsIDAuMjA2MjUsIDAuMjM1LCAwLjI1NjI1IiwgXAotICAgICAgICAgICIwLjE2Mzc1LCAwLjE3NSwgMC4xODc1LCAwLjIwNjI1LCAwLjIxODc1LCAwLjI0MTI1LCAwLjI2MjUiLCBcCi0gICAgICAgICAgIjAuMTc4NzUsIDAuMTksIDAuMjAyNSwgMC4yMjEyNSwgMC4yMzM3NSwgMC4yNTYyNSwgMC4yNzc1IiwgXAotICAgICAgICAgICIwLjE4ODc1LCAwLjIsIDAuMjEyNSwgMC4yMzEyNSwgMC4yNDM3NSwgMC4yNjYyNSwgMC4yODc1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBERkZSWDEgKgotICogLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChERkZSWDEpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4yNzM0NDsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBmZiAoTjMwLFFCSU5UKSB7Ci0gICAgbmV4dF9zdGF0ZSA6ICJEIjsKLSAgICBjbG9ja2VkX29uIDogIkNLIjsKLSAgICBjbGVhciA6ICIoIVJOKSI7Ci0gIH0KLSAgcGluKENLKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA1OTY5MTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA1OTY2MDY7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNTk2OTE7Ci0gICAgY2xvY2sgOiB0cnVlOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjQwOCwgMC4wMDIzOTYsIDAuMDAyMzg2LCAwLjAwMjM3OSwgMC4wMDIzNzQsIDAuMDAyMzY3LCAwLjAwMjM2NCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNTYyNywgMC4wMDU2MTgsIDAuMDA1NjExLCAwLjAwNTYwNSwgMC4wMDU2MDEsIDAuMDA1NTk0LCAwLjAwNTU5MiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQmUk4iOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1JOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4zNjE2ODMsIDAuMzczNTIsIDAuMzg4NjMsIDAuNDA0MDY5LCAwLjQxOTUyMiwgMC40NDM4NzYsIDAuNDY0OTAzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4yMjAyOTksIDAuMjMxNTI5LCAwLjI0NjcsIDAuMjYxNDcsIDAuMjc2MjEsIDAuMjk5MDE3LCAwLjMxODM5OSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNTU4NjU5OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDU1Njc3NDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA1NTg2NTk7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxODksIDAuMDAxODc5LCAwLjAwMTg3MSwgMC4wMDE4NjYsIDAuMDAxODYzLCAwLjAwMTg1OSwgMC4wMDE4NTQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDIzMzEsIDAuMDAyMzI0LCAwLjAwMjMyMSwgMC4wMDIzMTcsIDAuMDAyMzE1LCAwLjAwMjMxMSwgMC4wMDIzMSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJSTiI7Ci0gICAgICBzZGZfY29uZCA6ICJSTiA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wNSwgLTAuMDM4NzUsIC0wLjAyNjI1LCAtMC4wMTM3NSwgLTAuMDAxMjUsIDAuMDA4NzUsIDAuMDIzNzUiLCBcCi0gICAgICAgICAgIi0wLjA2MTI1LCAtMC4wNSwgLTAuMDM3NSwgLTAuMDI1LCAtMC4wMTI1LCAtMC4wMDI1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjA3Mzc1LCAtMC4wNjI1LCAtMC4wNSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAxNSwgMCIsIFwKLSAgICAgICAgICAiLTAuMDg2MjUsIC0wLjA3NSwgLTAuMDYyNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wMjc1LCAtMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDk4NzUsIC0wLjA4NzUsIC0wLjA3NSwgLTAuMDY4NzUsIC0wLjA1NjI1LCAtMC4wNCwgLTAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjEyMTI1LCAtMC4xMSwgLTAuMDk3NSwgLTAuMDg1LCAtMC4wNzg3NSwgLTAuMDYyNSwgLTAuMDQ3NSIsIFwKLSAgICAgICAgICAiLTAuMTQyNSwgLTAuMTMxMjUsIC0wLjExODc1LCAtMC4xMDYyNSwgLTAuMDkzNzUsIC0wLjA3NzUsIC0wLjA2ODc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTYyNSwgMC4wNjc1LCAwLjA4NjI1LCAwLjA5ODc1LCAwLjExNzUsIDAuMTQsIDAuMTYxMjUiLCBcCi0gICAgICAgICAgIjAuMDQ1LCAwLjA1NjI1LCAwLjA3NSwgMC4wODc1LCAwLjEsIDAuMTI4NzUsIDAuMTUiLCBcCi0gICAgICAgICAgIjAuMDMyNSwgMC4wNDM3NSwgMC4wNTYyNSwgMC4wNzUsIDAuMDg3NSwgMC4xMTYyNSwgMC4xMzEyNSIsIFwKLSAgICAgICAgICAiMC4wMiwgMC4wMzEyNSwgMC4wNSwgMC4wNjI1LCAwLjA3NSwgMC4xMDM3NSwgMC4xMjUiLCBcCi0gICAgICAgICAgIjAuMDEzNzUsIDAuMDI1LCAwLjAzNzUsIDAuMDUsIDAuMDY4NzUsIDAuMDkxMjUsIDAuMTEyNSIsIFwKLSAgICAgICAgICAiLTAuMDAyNSwgMC4wMDg3NSwgMC4wMjEyNSwgMC4wNCwgMC4wNTI1LCAwLjA3NSwgMC4wOTYyNSIsIFwKLSAgICAgICAgICAiLTAuMDExMjUsIDAsIDAuMDEyNSwgMC4wMzEyNSwgMC4wNDM3NSwgMC4wNjYyNSwgMC4wODc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJSTiI7Ci0gICAgICBzZGZfY29uZCA6ICJSTiA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDYyNSwgMC4wOTUsIDAuMDc2MjUsIDAuMDYzNzUsIDAuMDU3NSwgMC4wNDEyNSwgMC4wMjYyNSIsIFwKLSAgICAgICAgICAiMC4xMTc1LCAwLjEwNjI1LCAwLjA4NzUsIDAuMDc1LCAwLjA2ODc1LCAwLjA1MjUsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiMC4xMywgMC4xMTg3NSwgMC4xMDYyNSwgMC4wOTM3NSwgMC4wODEyNSwgMC4wNjUsIDAuMDUiLCBcCi0gICAgICAgICAgIjAuMTQyNSwgMC4xMzEyNSwgMC4xMTg3NSwgMC4xMDYyNSwgMC4wOTM3NSwgMC4wNzc1LCAwLjA2MjUiLCBcCi0gICAgICAgICAgIjAuMTU1LCAwLjE0Mzc1LCAwLjEzMTI1LCAwLjExODc1LCAwLjEwNjI1LCAwLjA5LCAwLjA4MTI1IiwgXAotICAgICAgICAgICIwLjE3NzUsIDAuMTY2MjUsIDAuMTUzNzUsIDAuMTQxMjUsIDAuMTI4NzUsIDAuMTEyNSwgMC4wOTc1IiwgXAotICAgICAgICAgICIwLjE5ODc1LCAwLjE4NzUsIDAuMTY4NzUsIDAuMTU2MjUsIDAuMTUsIDAuMTMzNzUsIDAuMTE4NzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzEyNSwgMC4wMiwgMC4wMDEyNSwgLTAuMDExMjUsIC0wLjAzLCAtMC4wNTI1LCAtMC4wNzM3NSIsIFwKLSAgICAgICAgICAiMC4wNDI1LCAwLjAzMTI1LCAwLjAxMjUsIDAsIC0wLjAxODc1LCAtMC4wNDEyNSwgLTAuMDYyNSIsIFwKLSAgICAgICAgICAiMC4wNTUsIDAuMDQzNzUsIDAuMDI1LCAwLjAxMjUsIC0wLjAwNjI1LCAtMC4wMjg3NSwgLTAuMDUiLCBcCi0gICAgICAgICAgIjAuMDY3NSwgMC4wNTYyNSwgMC4wMzc1LCAwLjAyNSwgMC4wMDYyNSwgLTAuMDE2MjUsIC0wLjAzNzUiLCBcCi0gICAgICAgICAgIjAuMDgsIDAuMDY4NzUsIDAuMDUsIDAuMDM3NSwgMC4wMTg3NSwgLTAuMDAzNzUsIC0wLjAyNSIsIFwKLSAgICAgICAgICAiMC4xMDI1LCAwLjA4NSwgMC4wNzI1LCAwLjA1Mzc1LCAwLjA0MTI1LCAwLjAxMjUsIC0wLjAwODc1IiwgXAotICAgICAgICAgICIwLjExNzUsIDAuMTA2MjUsIDAuMDg3NSwgMC4wNzUsIDAuMDU2MjUsIDAuMDI3NSwgMC4wMDYyNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjEzMjgxOTsKLSAgICBmdW5jdGlvbiA6ICJOMzAiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5vbl91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcmlzaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjM3NTkzLCAwLjQyMTA2NSwgMC42Njc1MTEsIDAuODgzNzQxLCAxLjE3MzY2LCAxLjc0NjgsIDIuMTEwMjQiLCBcCi0gICAgICAgICAgIjAuMzg4MTM0LCAwLjQzMzQyNywgMC42NzkwNTgsIDAuODk1ODUsIDEuMTg3LCAxLjc2MTk3LCAyLjEyMjQ1IiwgXAotICAgICAgICAgICIwLjQwMzExNSwgMC40NDgzOTEsIDAuNjk0NTMzLCAwLjkxMTE0MiwgMS4yMDE0NCwgMS43NzY0NywgMi4xMzc5IiwgXAotICAgICAgICAgICIwLjQxODcxLCAwLjQ2Mzg2OSwgMC43MTAzMjIsIDAuOTI2NTU3LCAxLjIxNjUsIDEuNzkyMTEsIDIuMTUzMDYiLCBcCi0gICAgICAgICAgIjAuNDM0MDYxLCAwLjQ3OTM4MSwgMC43MjU2NywgMC45NDE4MTMsIDEuMjMxMTEsIDEuODA1ODIsIDIuMTY4MTkiLCBcCi0gICAgICAgICAgIjAuNDU4MzgyLCAwLjUwMzY4MSwgMC43NDk5ODIsIDAuOTY2MTA1LCAxLjI1NjAzLCAxLjgzMjExLCAyLjE5MjkzIiwgXAotICAgICAgICAgICIwLjQ3OTEzOSwgMC41MjQ0NSwgMC43NzAzNzYsIDAuOTg2ODksIDEuMjc2NzMsIDEuODUzMDUsIDIuMjEzMzciKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTgzODQ3LCAwLjI2NzE4NCwgMC43NTc3OTUsIDEuMTk5NDksIDEuNzcwOTcsIDIuOTQ0ODgsIDMuNzE1MTgiLCBcCi0gICAgICAgICAgIjAuMTg0MDY1LCAwLjI2Mzk1MiwgMC43NjAxNzUsIDEuMTk5NjMsIDEuNzgxNzIsIDIuOTc1MTEsIDMuNzE1MzIiLCBcCi0gICAgICAgICAgIjAuMTg0MTE4LCAwLjI2NzQ1NywgMC43NTc3OTcsIDEuMTk5NDQsIDEuNzg2MDEsIDIuOTc0OTQsIDMuNzE1MzQiLCBcCi0gICAgICAgICAgIjAuMTg0MTQ5LCAwLjI2NzE2LCAwLjc1NzgzMiwgMS4xOTk1NCwgMS43NzE2NSwgMi45NzQ4NSwgMy43MTUyNCIsIFwKLSAgICAgICAgICAiMC4xODQxMjEsIDAuMjY2NDUsIDAuNzU0MTYxLCAxLjE5OTQ1LCAxLjc5MDYsIDIuOTQ5MzMsIDMuNzE1MzkiLCBcCi0gICAgICAgICAgIjAuMTg0MDg4LCAwLjI2NDEwOSwgMC43NTc4MiwgMS4xOTk0OCwgMS43NzQ0OSwgMi45NzUyLCAzLjcxNTMyIiwgXAotICAgICAgICAgICIwLjE4NDEwNywgMC4yNjU0OTMsIDAuNzUxNTY1LCAxLjE5OTY0LCAxLjc3Njc2LCAyLjk3NTI5LCAzLjcxNTQiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzQwNzMsIDAuMzkwMjkzLCAwLjY3MTMzMywgMC45MTc4MjcsIDEuMjUwMjksIDEuOTExNTMsIDIuMzI0NzQiLCBcCi0gICAgICAgICAgIjAuMzUyNTc1LCAwLjQwMjIyOSwgMC42ODMxNjMsIDAuOTI5MjYzLCAxLjI1ODQsIDEuOTIzMDcsIDIuMzM2NDIiLCBcCi0gICAgICAgICAgIjAuMzY3NjgxLCAwLjQxNzQ0OCwgMC42OTgyNywgMC45NDQzMiwgMS4yNzM2MSwgMS45MzIzNCwgMi4zNTE2OCIsIFwKLSAgICAgICAgICAiMC4zODMxNCwgMC40MzI5ODcsIDAuNzEzNzIsIDAuOTU5ODg5LCAxLjI4OTE3LCAxLjk1MDM4LCAyLjM2Njk0IiwgXAotICAgICAgICAgICIwLjM5ODU4MywgMC40NDgxNTUsIDAuNzI5MTgxLCAwLjk3NTI3OSwgMS4zMDQzOSwgMS45NjkxNCwgMi4zODI0MyIsIFwKLSAgICAgICAgICAiMC40MjI5MzIsIDAuNDcyNjMsIDAuNzUzNTE0LCAxLjAwMDMsIDEuMzMyNDksIDEuOTkzNjQsIDIuNDA2OTMiLCBcCi0gICAgICAgICAgIjAuNDQzOTU2LCAwLjQ5MzYwNiwgMC43NzQ1NDIsIDEuMDIwNTksIDEuMzQ5OTUsIDIuMDExMTgsIDIuNDI3NzQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTgyOTQ3LCAwLjI3ODQ5LCAwLjgzMjI3OSwgMS4zMjIzNCwgMS45NzU3OCwgMy4yODM1NiwgNC4xMDA1IiwgXAotICAgICAgICAgICIwLjE4Mjk1NSwgMC4yNzg1ODEsIDAuODMyNDkxLCAxLjMyMTc2LCAxLjk3NzMsIDMuMjg2NDEsIDQuMTAyOTgiLCBcCi0gICAgICAgICAgIjAuMTgyOTE4LCAwLjI3ODIzMywgMC44MzI0ODIsIDEuMzE5NzMsIDEuOTc4MTIsIDMuMjgxNDUsIDQuMTAyNjgiLCBcCi0gICAgICAgICAgIjAuMTgyODY0LCAwLjI3ODE4LCAwLjgzMjQ4OSwgMS4zMjMwMiwgMS45NzcyMywgMy4yODAzMywgNC4xMDMwNCIsIFwKLSAgICAgICAgICAiMC4xODI4MzEsIDAuMjc4MjcyLCAwLjgzMjQ5MywgMS4zMjE4NCwgMS45NzY3OSwgMy4yODYyMiwgNC4xMDI5OCIsIFwKLSAgICAgICAgICAiMC4xODI5NDUsIDAuMjc4NjQxLCAwLjgzMjQ3OCwgMS4zMjM2OSwgMS45NzY3NywgMy4yODUyOSwgNC4xMDIzOCIsIFwKLSAgICAgICAgICAiMC4xODI5NTYsIDAuMjc4NTc4LCAwLjgzMjQ5MiwgMS4zMTk0OSwgMS45Nzc1MiwgMy4yODAxMSwgNC4xMDMwOSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogY2xlYXI7Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE2NjI5MiwgMC4yMTYxMjEsIDAuNDk2NjMzLCAwLjc0NDM2NiwgMS4wNzQ4NiwgMS43MzU3NCwgMi4xNDg1MiIsIFwKLSAgICAgICAgICAiMC4xNzc5NjgsIDAuMjI3NzksIDAuNTA4MzE3LCAwLjc1NjA2NiwgMS4wODQ4NSwgMS43NDc0MSwgMi4xNjAxOSIsIFwKLSAgICAgICAgICAiMC4xOTI1NzcsIDAuMjQyNDA4LCAwLjUyMjk2NCwgMC43NzA3MTYsIDEuMDk4NzksIDEuNzYyMTQsIDIuMTc1MTIiLCBcCi0gICAgICAgICAgIjAuMjA3Mzc4LCAwLjI1NzE1NywgMC41Mzc3NzMsIDAuNzg1NDYzLCAxLjExNTkxLCAxLjc3MjY5LCAyLjE4OTY3IiwgXAotICAgICAgICAgICIwLjIyMjEzNSwgMC4yNzE5NTYsIDAuNTUyNTg2LCAwLjgwMDM1OCwgMS4xMzA0OSwgMS43OTE0MSwgMi4xOTk3OCIsIFwKLSAgICAgICAgICAiMC4yNDU2MzEsIDAuMjk1NDU5LCAwLjU3NjA5MSwgMC44MjM4NTksIDEuMTUyNSwgMS44MTUwNiwgMi4yMjc5OSIsIFwKLSAgICAgICAgICAiMC4yNjUyODEsIDAuMzE1MTEsIDAuNTk1NzgyLCAwLjg0MzU2NiwgMS4xNzM0NSwgMS44MzQ4NywgMi4yNDgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTgzNDI4LCAwLjI3ODU2OCwgMC44MzEzMDIsIDEuMzIwODcsIDEuOTc3NDEsIDMuMjg4NzgsIDQuMTEwNyIsIFwKLSAgICAgICAgICAiMC4xODM0MzYsIDAuMjc4NTgzLCAwLjgzMzMyMSwgMS4zMjE2MSwgMS45Nzc3MiwgMy4yODg4NiwgNC4xMDg4NyIsIFwKLSAgICAgICAgICAiMC4xODMyOTMsIDAuMjc4NTYzLCAwLjgzMTY0NSwgMS4zMjA3MywgMS45NzY3MiwgMy4yODg3MiwgNC4xMDczMyIsIFwKLSAgICAgICAgICAiMC4xODMzODIsIDAuMjc4NTQsIDAuODMxMzIxLCAxLjMyMjQ3LCAxLjk3NTM5LCAzLjI4NjgxLCA0LjEwODgxIiwgXAotICAgICAgICAgICIwLjE4MzI1LCAwLjI3ODU1LCAwLjgzMTc2OSwgMS4zMjE3NSwgMS45NzQzMywgMy4yODg1NCwgNC4xMDY0MyIsIFwKLSAgICAgICAgICAiMC4xODM1MiwgMC4yNzg1OTIsIDAuODMxNzAzLCAxLjMyMDIyLCAxLjk3NjgxLCAzLjI4OTMzLCA0LjEwODgxIiwgXAotICAgICAgICAgICIwLjE4MzU2MSwgMC4yNzg2OTcsIDAuODMxNzg1LCAxLjMyMDI4LCAxLjk3NjI1LCAzLjI4OSwgNC4xMDgyMSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDM1MTcsIDAuMDAzNTIxLCAwLjAwMzUxOSwgMC4wMDM1MTYsIDAuMDAzNTEzLCAwLjAwMzUxMSwgMC4wMDM1MSIsIFwKLSAgICAgICAgICAiMC4wMDM1MTIsIDAuMDAzNTE2LCAwLjAwMzUxMywgMC4wMDM1MSwgMC4wMDM1MDgsIDAuMDAzNTA2LCAwLjAwMzUwNSIsIFwKLSAgICAgICAgICAiMC4wMDM1MDUsIDAuMDAzNTA5LCAwLjAwMzUwNywgMC4wMDM1MDQsIDAuMDAzNTAyLCAwLjAwMzQ5OSwgMC4wMDM0OTgiLCBcCi0gICAgICAgICAgIjAuMDAzNTAxLCAwLjAwMzUwNSwgMC4wMDM1MDMsIDAuMDAzNSwgMC4wMDM0OTcsIDAuMDAzNDk1LCAwLjAwMzQ5NCIsIFwKLSAgICAgICAgICAiMC4wMDM0OTcsIDAuMDAzNTAyLCAwLjAwMzUsIDAuMDAzNDk3LCAwLjAwMzQ5NCwgMC4wMDM0OTIsIDAuMDAzNDkxIiwgXAotICAgICAgICAgICIwLjAwMzQ5MiwgMC4wMDM0OTYsIDAuMDAzNDk0LCAwLjAwMzQ5MiwgMC4wMDM0ODksIDAuMDAzNDg2LCAwLjAwMzQ4NSIsIFwKLSAgICAgICAgICAiMC4wMDM0OSwgMC4wMDM0OTQsIDAuMDAzNDkyLCAwLjAwMzQ4OSwgMC4wMDM0ODcsIDAuMDAzNDg0LCAwLjAwMzQ4MyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzUxNSwgMC4wMDM1MiwgMC4wMDM1MjcsIDAuMDAzNTI5LCAwLjAwMzUzLCAwLjAwMzUzLCAwLjAwMzUzIiwgXAotICAgICAgICAgICIwLjAwMzUwOSwgMC4wMDM1MTUsIDAuMDAzNTIyLCAwLjAwMzUyMywgMC4wMDM1MjQsIDAuMDAzNTI1LCAwLjAwMzUyNSIsIFwKLSAgICAgICAgICAiMC4wMDM1MDQsIDAuMDAzNTA5LCAwLjAwMzUxNiwgMC4wMDM1MTgsIDAuMDAzNTE4LCAwLjAwMzUxOSwgMC4wMDM1MTkiLCBcCi0gICAgICAgICAgIjAuMDAzNDk5LCAwLjAwMzUwNSwgMC4wMDM1MTEsIDAuMDAzNTEzLCAwLjAwMzUxNCwgMC4wMDM1MTQsIDAuMDAzNTE1IiwgXAotICAgICAgICAgICIwLjAwMzQ5OCwgMC4wMDM1MDMsIDAuMDAzNTEsIDAuMDAzNTEyLCAwLjAwMzUxMywgMC4wMDM1MTMsIDAuMDAzNTE0IiwgXAotICAgICAgICAgICIwLjAwMzQ5NiwgMC4wMDM1MDEsIDAuMDAzNTA4LCAwLjAwMzUxLCAwLjAwMzUxMSwgMC4wMDM1MTEsIDAuMDAzNTEyIiwgXAotICAgICAgICAgICIwLjAwMzQ5OSwgMC4wMDM1MDQsIDAuMDAzNTExLCAwLjAwMzUxMiwgMC4wMDM1MTMsIDAuMDAzNTE0LCAwLjAwMzUxNCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDM2NTMsIDAuMDAzNjU3LCAwLjAwMzY2MiwgMC4wMDM2NjMsIDAuMDAzNjY0LCAwLjAwMzY2NCwgMC4wMDM2NjUiLCBcCi0gICAgICAgICAgIjAuMDAzNjQ2LCAwLjAwMzY1LCAwLjAwMzY1NiwgMC4wMDM2NTcsIDAuMDAzNjU3LCAwLjAwMzY1OCwgMC4wMDM2NTgiLCBcCi0gICAgICAgICAgIjAuMDAzNjM5LCAwLjAwMzY0NCwgMC4wMDM2NSwgMC4wMDM2NTIsIDAuMDAzNjUzLCAwLjAwMzY1MywgMC4wMDM2NTMiLCBcCi0gICAgICAgICAgIjAuMDAzNjMzLCAwLjAwMzYzOSwgMC4wMDM2NDYsIDAuMDAzNjQ3LCAwLjAwMzY0OCwgMC4wMDM2NDksIDAuMDAzNjQ5IiwgXAotICAgICAgICAgICIwLjAwMzYyOCwgMC4wMDM2MzMsIDAuMDAzNjQxLCAwLjAwMzY0MywgMC4wMDM2NDQsIDAuMDAzNjQ0LCAwLjAwMzY0NSIsIFwKLSAgICAgICAgICAiMC4wMDM2MiwgMC4wMDM2MjYsIDAuMDAzNjM1LCAwLjAwMzYzNywgMC4wMDM2MzgsIDAuMDAzNjM5LCAwLjAwMzYzOSIsIFwKLSAgICAgICAgICAiMC4wMDM2MTQsIDAuMDAzNjIxLCAwLjAwMzYzMSwgMC4wMDM2MzMsIDAuMDAzNjM0LCAwLjAwMzYzNSwgMC4wMDM2MzYiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfcG93ZXIoc2NhbGFyKSB7Ci0gICAgICAgIHZhbHVlcygiMCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUU4pICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4xMjY1MzY7Ci0gICAgZnVuY3Rpb24gOiAiUUJJTlQiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5vbl91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcmlzaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjM2MTY4MywgMC40MDQ3NywgMC42NDkyMzIsIDAuODY1MDAyLCAxLjE1MjY3LCAxLjcyNzkzLCAyLjA4NzUzIiwgXAotICAgICAgICAgICIwLjM3MzUyLCAwLjQxNjU5NCwgMC42NjEwNTksIDAuODc2ODQ5LCAxLjE2NDQ5LCAxLjczOTcxLCAyLjA5OTM2IiwgXAotICAgICAgICAgICIwLjM4ODYzLCAwLjQzMTcyMSwgMC42NzYxNzcsIDAuODkxOTgsIDEuMTc5NjEsIDEuNzU0OTcsIDIuMTE0NDQiLCBcCi0gICAgICAgICAgIjAuNDA0MDY5LCAwLjQ0NzE3NiwgMC42OTE2MiwgMC45MDc0MSwgMS4xOTUwNSwgMS43NzAyOSwgMi4xMjk5MyIsIFwKLSAgICAgICAgICAiMC40MTk1MjIsIDAuNDYyNjExLCAwLjcwNzA3NywgMC45MjI4NjUsIDEuMjEwNTEsIDEuNzg1NzMsIDIuMTQ1MzciLCBcCi0gICAgICAgICAgIjAuNDQzODc2LCAwLjQ4Njk2MSwgMC43MzE0MTUsIDAuOTQ3MTgyLCAxLjIzNDgxLCAxLjgxMDExLCAyLjE2OTcxIiwgXAotICAgICAgICAgICIwLjQ2NDkwMywgMC41MDc5NzcsIDAuNzUyNDQzLCAwLjk2ODIzNywgMS4yNTU4NywgMS44MzExMSwgMi4xOTA3NiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNTk3MjcsIDAuMjQ2ODY0LCAwLjc0NDY0MSwgMS4xODE5MiwgMS43Njk5OSwgMi45NDEyMSwgMy42NzM1NSIsIFwKLSAgICAgICAgICAiMC4xNTk2OTQsIDAuMjQ2ODg5LCAwLjc0NDY4MiwgMS4xODIwMSwgMS43NjY4MywgMi45NDA5MiwgMy42NzM1OSIsIFwKLSAgICAgICAgICAiMC4xNTk3MDgsIDAuMjQ2NDE5LCAwLjc0NDY1NCwgMS4xODIwOSwgMS43NjY3NSwgMi45MzQ0LCAzLjY3MzQyIiwgXAotICAgICAgICAgICIwLjE1OTY5NCwgMC4yNDYzMzUsIDAuNzQ0NjcsIDEuMTgxOTIsIDEuNzY2NjcsIDIuOTQxLCAzLjY3MzYzIiwgXAotICAgICAgICAgICIwLjE1OTQ2MiwgMC4yNDY0NTEsIDAuNzQ0Njg2LCAxLjE4MjAzLCAxLjc2Njg2LCAyLjk0MDkzLCAzLjY3MzU5IiwgXAotICAgICAgICAgICIwLjE1OTY5NywgMC4yNDY5MzYsIDAuNzQ0NjQ0LCAxLjE4MzE4LCAxLjc2OTc0LCAyLjk0MTIxLCAzLjY3MzU5IiwgXAotICAgICAgICAgICIwLjE1OTY5NCwgMC4yNDY4ODYsIDAuNzQ0NjgyLCAxLjE3OTU5LCAxLjc2NjY5LCAyLjk0MTAxLCAzLjY3MzY1Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjQwNjEyOCwgMC40NTU0MTIsIDAuNzM1MDQsIDAuOTgxODUzLCAxLjMxMTEyLCAxLjk2OTIyLCAyLjM4MDYxIiwgXAotICAgICAgICAgICIwLjQxODMyNywgMC40Njc2MDUsIDAuNzQ3MTk4LCAwLjk5NDA0LCAxLjMyMzQ3LCAxLjk4MTQ0LCAyLjM5MjgxIiwgXAotICAgICAgICAgICIwLjQzMzI5LCAwLjQ4MjU3LCAwLjc2MjE5MywgMS4wMDkwNCwgMS4zMzgzNSwgMS45OTYzNywgMi40MDc4MyIsIFwKLSAgICAgICAgICAiMC40NDg5MTQsIDAuNDk4MjA3LCAwLjc3NzgzOCwgMS4wMjQ2NSwgMS4zNTM5MiwgMi4wMTIwOCwgMi40MjM0MSIsIFwKLSAgICAgICAgICAiMC40NjQyNDIsIDAuNTEzNTIzLCAwLjc5MzE0NCwgMS4wMzk5NiwgMS4zNjkxNiwgMi4wMjczNiwgMi40Mzg3MiIsIFwKLSAgICAgICAgICAiMC40ODg1NzEsIDAuNTM3ODQ4LCAwLjgxNzQ4MSwgMS4wNjQyOCwgMS4zOTM1NiwgMi4wNTE2NywgMi40NjMwOCIsIFwKLSAgICAgICAgICAiMC41MDkzMzcsIDAuNTU4NjEzLCAwLjgzODIwNiwgMS4wODUwNSwgMS40MTQzMiwgMi4wNzI0NiwgMi40ODM4MSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNzc3MzYsIDAuMjc1MDIzLCAwLjgzMDI5NiwgMS4zMjA1MiwgMS45NzIyMSwgMy4yNzk2NywgNC4wOTgzMSIsIFwKLSAgICAgICAgICAiMC4xNzc3OTksIDAuMjc0OTA0LCAwLjgyOTgyOSwgMS4zMjA0MiwgMS45NzI2NiwgMy4yODEyLCA0LjA5ODA1IiwgXAotICAgICAgICAgICIwLjE3Nzc4NiwgMC4yNzQ5MzYsIDAuODMwMTc5LCAxLjMyMDUzLCAxLjk3MjUyLCAzLjI4MDkzLCA0LjA5ODEyIiwgXAotICAgICAgICAgICIwLjE3Nzc3NSwgMC4yNzQ5OTYsIDAuODMwMjg4LCAxLjMyMDQ1LCAxLjk3MjI0LCAzLjI3NzUxLCA0LjA5ODA3IiwgXAotICAgICAgICAgICIwLjE3Nzc5OSwgMC4yNzQ5NjUsIDAuODI5MzU1LCAxLjMyMDM4LCAxLjk3NDMsIDMuMjc5MzMsIDQuMDk3OTkiLCBcCi0gICAgICAgICAgIjAuMTc3Nzk5LCAwLjI3NDkwNiwgMC44MzAyNTEsIDEuMzIwMzcsIDEuOTcyMDgsIDMuMjgxMzEsIDQuMDk4MDkiLCBcCi0gICAgICAgICAgIjAuMTc3Nzk3LCAwLjI3NDk0MSwgMC44Mjk2NjEsIDEuMzIwNDIsIDEuOTcyMDEsIDMuMjgxMjksIDQuMDk4MjEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUk4iOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHByZXNldDsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTg2NTksIDAuMjI5NjYsIDAuNDc0MDU3LCAwLjY4OTgwNywgMC45Nzc0MTUsIDEuNTUyNzksIDEuOTEyMzgiLCBcCi0gICAgICAgICAgIjAuMTk4MjU5LCAwLjI0MTMzMywgMC40ODU3MywgMC43MDE0NjgsIDAuOTg5MDk1LCAxLjU2NDQxLCAxLjkyNDA1IiwgXAotICAgICAgICAgICIwLjIxMjg3OSwgMC4yNTU5NTgsIDAuNTAwMzU3LCAwLjcxNjA5NCwgMS4wMDM3MywgMS41NzkwMSwgMS45Mzg2MSIsIFwKLSAgICAgICAgICAiMC4yMjc2OSwgMC4yNzA3NjQsIDAuNTE1MTY2LCAwLjczMDk0MywgMS4wMTg1OCwgMS41OTM4MywgMS45NTM1IiwgXAotICAgICAgICAgICIwLjI0MjQ1NywgMC4yODU1MzksIDAuNTI5OTQ0LCAwLjc0NTY4MSwgMS4wMzM0MSwgMS42MDg3OCwgMS45NjgxNiIsIFwKLSAgICAgICAgICAiMC4yNjU5NDYsIDAuMzA5MDI0LCAwLjU1MzQyOSwgMC43NjkxNjQsIDEuMDU2OTEsIDEuNjMyMjQsIDEuOTkxODMiLCBcCi0gICAgICAgICAgIjAuMjg1NTk2LCAwLjMyODY3OSwgMC41NzMwODMsIDAuNzg4ODE4LCAxLjA3NjQ3LCAxLjY1MTczLCAyLjAxMTMzIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE1OTIwOSwgMC4yNDYxNywgMC43NDM2OTEsIDEuMTgyNzcsIDEuNzY4ODgsIDIuOTQwNDgsIDMuNjcyMjEiLCBcCi0gICAgICAgICAgIjAuMTU5MjI4LCAwLjI0NjE4MywgMC43NDM3MTYsIDEuMTgyNzQsIDEuNzY3ODcsIDIuOTQwNDQsIDMuNjcyMiIsIFwKLSAgICAgICAgICAiMC4xNTkyMzMsIDAuMjQ2MTMsIDAuNzQzNjg4LCAxLjE4Mjc1LCAxLjc2NjU1LCAyLjk0MDQsIDMuNjcyNzkiLCBcCi0gICAgICAgICAgIjAuMTU5MjI5LCAwLjI0NjA5NCwgMC43NDM2ODEsIDEuMTgyNDgsIDEuNzY4MywgMi45MzYzMiwgMy42NzIxNiIsIFwKLSAgICAgICAgICAiMC4xNTkyNDIsIDAuMjQ2MTEsIDAuNzQzNzE3LCAxLjE4Mjc5LCAxLjc2ODMxLCAyLjk0MDYyLCAzLjY2Njg1IiwgXAotICAgICAgICAgICIwLjE1OTI0LCAwLjI0NjEsIDAuNzQzNjkzLCAxLjE4Mjc5LCAxLjc2NjM2LCAyLjk0MDQ3LCAzLjY3MjE5IiwgXAotICAgICAgICAgICIwLjE1OTI1OCwgMC4yNDYxMjEsIDAuNzQzNjk0LCAxLjE4MjgxLCAxLjc2ODI0LCAyLjk0MDI2LCAzLjY3MjY1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzUxNSwgMC4wMDM1MiwgMC4wMDM1MjcsIDAuMDAzNTI5LCAwLjAwMzUzLCAwLjAwMzUzLCAwLjAwMzUzIiwgXAotICAgICAgICAgICIwLjAwMzUwOSwgMC4wMDM1MTUsIDAuMDAzNTIyLCAwLjAwMzUyMywgMC4wMDM1MjQsIDAuMDAzNTI1LCAwLjAwMzUyNSIsIFwKLSAgICAgICAgICAiMC4wMDM1MDQsIDAuMDAzNTA5LCAwLjAwMzUxNiwgMC4wMDM1MTgsIDAuMDAzNTE4LCAwLjAwMzUxOSwgMC4wMDM1MTkiLCBcCi0gICAgICAgICAgIjAuMDAzNDk5LCAwLjAwMzUwNSwgMC4wMDM1MTEsIDAuMDAzNTEzLCAwLjAwMzUxNCwgMC4wMDM1MTQsIDAuMDAzNTE1IiwgXAotICAgICAgICAgICIwLjAwMzQ5OCwgMC4wMDM1MDMsIDAuMDAzNTEsIDAuMDAzNTEyLCAwLjAwMzUxMywgMC4wMDM1MTMsIDAuMDAzNTE0IiwgXAotICAgICAgICAgICIwLjAwMzQ5NiwgMC4wMDM1MDEsIDAuMDAzNTA4LCAwLjAwMzUxLCAwLjAwMzUxMSwgMC4wMDM1MTEsIDAuMDAzNTEyIiwgXAotICAgICAgICAgICIwLjAwMzQ5OSwgMC4wMDM1MDQsIDAuMDAzNTExLCAwLjAwMzUxMiwgMC4wMDM1MTMsIDAuMDAzNTE0LCAwLjAwMzUxNCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzUxNywgMC4wMDM1MjEsIDAuMDAzNTE5LCAwLjAwMzUxNiwgMC4wMDM1MTMsIDAuMDAzNTExLCAwLjAwMzUxIiwgXAotICAgICAgICAgICIwLjAwMzUxMiwgMC4wMDM1MTYsIDAuMDAzNTEzLCAwLjAwMzUxLCAwLjAwMzUwOCwgMC4wMDM1MDYsIDAuMDAzNTA1IiwgXAotICAgICAgICAgICIwLjAwMzUwNSwgMC4wMDM1MDksIDAuMDAzNTA3LCAwLjAwMzUwNCwgMC4wMDM1MDIsIDAuMDAzNDk5LCAwLjAwMzQ5OCIsIFwKLSAgICAgICAgICAiMC4wMDM1MDEsIDAuMDAzNTA1LCAwLjAwMzUwMywgMC4wMDM1LCAwLjAwMzQ5NywgMC4wMDM0OTUsIDAuMDAzNDk0IiwgXAotICAgICAgICAgICIwLjAwMzQ5NywgMC4wMDM1MDIsIDAuMDAzNSwgMC4wMDM0OTcsIDAuMDAzNDk0LCAwLjAwMzQ5MiwgMC4wMDM0OTEiLCBcCi0gICAgICAgICAgIjAuMDAzNDkyLCAwLjAwMzQ5NiwgMC4wMDM0OTQsIDAuMDAzNDkyLCAwLjAwMzQ4OSwgMC4wMDM0ODYsIDAuMDAzNDg1IiwgXAotICAgICAgICAgICIwLjAwMzQ5LCAwLjAwMzQ5NCwgMC4wMDM0OTIsIDAuMDAzNDg5LCAwLjAwMzQ4NywgMC4wMDM0ODQsIDAuMDAzNDgzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUk4iOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzY1MywgMC4wMDM2NTcsIDAuMDAzNjYyLCAwLjAwMzY2MywgMC4wMDM2NjQsIDAuMDAzNjY0LCAwLjAwMzY2NSIsIFwKLSAgICAgICAgICAiMC4wMDM2NDYsIDAuMDAzNjUsIDAuMDAzNjU2LCAwLjAwMzY1NywgMC4wMDM2NTcsIDAuMDAzNjU4LCAwLjAwMzY1OCIsIFwKLSAgICAgICAgICAiMC4wMDM2MzksIDAuMDAzNjQ0LCAwLjAwMzY1LCAwLjAwMzY1MiwgMC4wMDM2NTMsIDAuMDAzNjUzLCAwLjAwMzY1MyIsIFwKLSAgICAgICAgICAiMC4wMDM2MzMsIDAuMDAzNjM5LCAwLjAwMzY0NiwgMC4wMDM2NDcsIDAuMDAzNjQ4LCAwLjAwMzY0OSwgMC4wMDM2NDkiLCBcCi0gICAgICAgICAgIjAuMDAzNjI4LCAwLjAwMzYzMywgMC4wMDM2NDEsIDAuMDAzNjQzLCAwLjAwMzY0NCwgMC4wMDM2NDQsIDAuMDAzNjQ1IiwgXAotICAgICAgICAgICIwLjAwMzYyLCAwLjAwMzYyNiwgMC4wMDM2MzUsIDAuMDAzNjM3LCAwLjAwMzYzOCwgMC4wMDM2MzksIDAuMDAzNjM5IiwgXAotICAgICAgICAgICIwLjAwMzYxNCwgMC4wMDM2MjEsIDAuMDAzNjMxLCAwLjAwMzYzMywgMC4wMDM2MzQsIDAuMDAzNjM1LCAwLjAwMzYzNiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihzY2FsYXIpIHsKLSAgICAgICAgdmFsdWVzKCIwIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihSTikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNDc5Mjk7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNDAyMDM7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNDc5Mjk7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzMxLCAwLjAwMDMzLCAwLjAwMDMzLCAwLjAwMDMzLCAwLjAwMDMzLCAwLjAwMDMzLCAwLjAwMDMzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzM1LCAwLjAwMDMzMiwgMC4wMDAzMzIsIDAuMDAwMzMyLCAwLjAwMDMzMiwgMC4wMDAzMzIsIDAuMDAwMzMyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRCI7Ci0gICAgICBzZGZfY29uZCA6ICJEID09IDEnYjAiOwotICAgICAgZmFsbF9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMTg2NTY5LCAwLjE5ODI1OSwgMC4yMTI4NzgsIDAuMjI3Njg5LCAwLjI0MjQ1NSwgMC4yNjU5NDYsIDAuMjg1NTk0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogcmVjb3ZlcnlfcmlzaW5nOwotICAgICAgd2hlbiA6ICJEIjsKLSAgICAgIHNkZl9jb25kIDogIkQgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQocmVjb3ZlcnlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjA2ODc1LCAtMC4wODYyNSwgLTAuMDk4NzUsIC0wLjExNzUsIC0wLjEzLCAtMC4xNTg3NSwgLTAuMTczNzUiLCBcCi0gICAgICAgICAgIi0wLjA3NjI1LCAtMC4wOTM3NSwgLTAuMTA2MjUsIC0wLjEyNSwgLTAuMTM3NSwgLTAuMTY2MjUsIC0wLjE4NzUiLCBcCi0gICAgICAgICAgIi0wLjA4ODc1LCAtMC4xLCAtMC4xMTI1LCAtMC4xMzEyNSwgLTAuMTUsIC0wLjE3MjUsIC0wLjE5Mzc1IiwgXAotICAgICAgICAgICItMC4wODg3NSwgLTAuMSwgLTAuMTE4NzUsIC0wLjEzMTI1LCAtMC4xNSwgLTAuMTcyNSwgLTAuMTkzNzUiLCBcCi0gICAgICAgICAgIi0wLjA4ODc1LCAtMC4xLCAtMC4xMTI1LCAtMC4xMzEyNSwgLTAuMTUsIC0wLjE3MjUsIC0wLjE5Mzc1IiwgXAotICAgICAgICAgICItMC4wNzI1LCAtMC4wODM3NSwgLTAuMDk2MjUsIC0wLjExNSwgLTAuMTMzNzUsIC0wLjE1NjI1LCAtMC4xNzc1IiwgXAotICAgICAgICAgICItMC4wNTEyNSwgLTAuMDYyNSwgLTAuMDgxMjUsIC0wLjA5Mzc1LCAtMC4xMTI1LCAtMC4xMzUsIC0wLjE2MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiByZW1vdmFsX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiRCI7Ci0gICAgICBzZGZfY29uZCA6ICJEID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHJlbW92YWxfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTEyNSwgMC4xMjM3NSwgMC4xNDI1LCAwLjE1NSwgMC4xNzM3NSwgMC4xOTYyNSwgMC4yMTc1IiwgXAotICAgICAgICAgICIwLjEyLCAwLjEzMTI1LCAwLjE1LCAwLjE2MjUsIDAuMTgxMjUsIDAuMjAzNzUsIDAuMjI1IiwgXAotICAgICAgICAgICIwLjEzMjUsIDAuMTQzNzUsIDAuMTYyNSwgMC4xNzUsIDAuMTg3NSwgMC4yMTYyNSwgMC4yMzc1IiwgXAotICAgICAgICAgICIwLjE0NSwgMC4xNTYyNSwgMC4xNjg3NSwgMC4xODc1LCAwLjIsIDAuMjIyNSwgMC4yNDM3NSIsIFwKLSAgICAgICAgICAiMC4xNTEyNSwgMC4xNjI1LCAwLjE4MTI1LCAwLjE5Mzc1LCAwLjIxMjUsIDAuMjM1LCAwLjI1NjI1IiwgXAotICAgICAgICAgICIwLjE2NjI1LCAwLjE3NzUsIDAuMTk2MjUsIDAuMjA4NzUsIDAuMjI3NSwgMC4yNSwgMC4yNzEyNSIsIFwKLSAgICAgICAgICAiMC4xODI1LCAwLjE5Mzc1LCAwLjIwNjI1LCAwLjIyNSwgMC4yMzc1LCAwLjI2LCAwLjI4MTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBERkZSWDQgKgotICogLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChERkZSWDQpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC41NjExMDI7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgZmYgKE4zMCxRQklOVCkgewotICAgIG5leHRfc3RhdGUgOiAiRCI7Ci0gICAgY2xvY2tlZF9vbiA6ICJDSyI7Ci0gICAgY2xlYXIgOiAiKCFSTikiOwotICB9Ci0gIHBpbihDSykgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNTI5Nzk3OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDUyOTU0ODsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA1Mjk3OTc7Ci0gICAgY2xvY2sgOiB0cnVlOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjI0OSwgMC4wMDIyMzcsIDAuMDAyMjI1LCAwLjAwMjIxOCwgMC4wMDIyMTMsIDAuMDAyMjA2LCAwLjAwMjIwNCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNTIxNiwgMC4wMDUyMDgsIDAuMDA1MiwgMC4wMDUxOTUsIDAuMDA1MTksIDAuMDA1MTg1LCAwLjAwNTE4MiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQmUk4iOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1JOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4zMjcxNjcsIDAuMzM4NjMzLCAwLjM1NDA3NCwgMC4zNjk0NDIsIDAuMzg0Nzk5LCAwLjQwOTEzMywgMC40Mjk5OTciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjIwNjY4NSwgMC4yMTgxMiwgMC4yMzMyNTcsIDAuMjQ4MDM1LCAwLjI2MjY5MSwgMC4yODUzMTMsIDAuMzA0MjM5Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihEKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2NTM4ODM7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjUxODk1OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDY1Mzg4MzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDE4ODMsIDAuMDAxODcxLCAwLjAwMTg2NCwgMC4wMDE4NTksIDAuMDAxODU2LCAwLjAwMTg1LCAwLjAwMTg0OSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjE4OCwgMC4wMDIxODIsIDAuMDAyMTc3LCAwLjAwMjE3NCwgMC4wMDIxNzIsIDAuMDAyMTY4LCAwLjAwMjE2NiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJSTiI7Ci0gICAgICBzZGZfY29uZCA6ICJSTiA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMzc1LCAtMC4wMzI1LCAtMC4wMiwgLTAuMDA3NSwgLTAuMDAxMjUsIDAuMDE1LCAwLjAyMzc1IiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA0Mzc1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIDAuMDAzNzUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDY3NSwgLTAuMDU2MjUsIC0wLjA0Mzc1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMDg3NSwgMCIsIFwKLSAgICAgICAgICAiLTAuMDgsIC0wLjA2ODc1LCAtMC4wNTYyNSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAyMTI1LCAtMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wOTI1LCAtMC4wODEyNSwgLTAuMDY4NzUsIC0wLjA2MjUsIC0wLjA1LCAtMC4wMzM3NSwgLTAuMDI1IiwgXAotICAgICAgICAgICItMC4xMTUsIC0wLjEwMzc1LCAtMC4wOTEyNSwgLTAuMDc4NzUsIC0wLjA3MjUsIC0wLjA1NjI1LCAtMC4wNDc1IiwgXAotICAgICAgICAgICItMC4xMywgLTAuMTE4NzUsIC0wLjEwNjI1LCAtMC4xLCAtMC4wODc1LCAtMC4wNzc1LCAtMC4wNjI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTYyNSwgMC4wNjc1LCAwLjA4NjI1LCAwLjA5ODc1LCAwLjExMTI1LCAwLjE0LCAwLjE1NSIsIFwKLSAgICAgICAgICAiMC4wNDUsIDAuMDU2MjUsIDAuMDY4NzUsIDAuMDg3NSwgMC4xLCAwLjEyODc1LCAwLjE0Mzc1IiwgXAotICAgICAgICAgICIwLjAzMjUsIDAuMDQzNzUsIDAuMDU2MjUsIDAuMDc1LCAwLjA4NzUsIDAuMTEsIDAuMTMxMjUiLCBcCi0gICAgICAgICAgIjAuMDIsIDAuMDMxMjUsIDAuMDUsIDAuMDYyNSwgMC4wNzUsIDAuMTAzNzUsIDAuMTI1IiwgXAotICAgICAgICAgICIwLjAxMzc1LCAwLjAyNSwgMC4wMzc1LCAwLjA1NjI1LCAwLjA2ODc1LCAwLjA5MTI1LCAwLjExMjUiLCBcCi0gICAgICAgICAgIi0wLjAwMjUsIDAuMDA4NzUsIDAuMDI3NSwgMC4wNCwgMC4wNTI1LCAwLjA4MTI1LCAwLjA5NjI1IiwgXAotICAgICAgICAgICItMC4wMTEyNSwgMCwgMC4wMTg3NSwgMC4wMzEyNSwgMC4wNDM3NSwgMC4wNzI1LCAwLjA4NzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlJOIjsKLSAgICAgIHNkZl9jb25kIDogIlJOID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwNjI1LCAwLjA5NSwgMC4wODI1LCAwLjA3LCAwLjA1NzUsIDAuMDQxMjUsIDAuMDI2MjUiLCBcCi0gICAgICAgICAgIjAuMTE3NSwgMC4xMDYyNSwgMC4wOTM3NSwgMC4wODEyNSwgMC4wNjg3NSwgMC4wNTI1LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIjAuMTMsIDAuMTE4NzUsIDAuMTA2MjUsIDAuMDkzNzUsIDAuMDgxMjUsIDAuMDY1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICIwLjE0ODc1LCAwLjEzMTI1LCAwLjExODc1LCAwLjEwNjI1LCAwLjA5Mzc1LCAwLjA3NzUsIDAuMDY4NzUiLCBcCi0gICAgICAgICAgIjAuMTYxMjUsIDAuMTUsIDAuMTMxMjUsIDAuMTE4NzUsIDAuMTA2MjUsIDAuMDksIDAuMDgxMjUiLCBcCi0gICAgICAgICAgIjAuMTgzNzUsIDAuMTY2MjUsIDAuMTUzNzUsIDAuMTQxMjUsIDAuMTI4NzUsIDAuMTEyNSwgMC4xMDM3NSIsIFwKLSAgICAgICAgICAiMC4xOTg3NSwgMC4xODc1LCAwLjE3NSwgMC4xNjI1LCAwLjE1LCAwLjEzMzc1LCAwLjExODc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQzNzUsIDAuMDI2MjUsIDAuMDEzNzUsIC0wLjAwNSwgLTAuMDE3NSwgLTAuMDQ2MjUsIC0wLjA2NzUiLCBcCi0gICAgICAgICAgIjAuMDU1LCAwLjAzNzUsIDAuMDI1LCAwLjAwNjI1LCAtMC4wMDYyNSwgLTAuMDM1LCAtMC4wNTYyNSIsIFwKLSAgICAgICAgICAiMC4wNjc1LCAwLjA1NjI1LCAwLjAzNzUsIDAuMDE4NzUsIDAuMDA2MjUsIC0wLjAyMjUsIC0wLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjA4LCAwLjA2MjUsIDAuMDUsIDAuMDMxMjUsIDAuMDE4NzUsIC0wLjAxLCAtMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4wOTI1LCAwLjA3NSwgMC4wNjI1LCAwLjA0Mzc1LCAwLjAzMTI1LCAwLjAwMjUsIC0wLjAxODc1IiwgXAotICAgICAgICAgICIwLjEwODc1LCAwLjA5NzUsIDAuMDc4NzUsIDAuMDY2MjUsIDAuMDQ3NSwgMC4wMjUsIDAuMDAzNzUiLCBcCi0gICAgICAgICAgIjAuMTIzNzUsIDAuMTEyNSwgMC4xLCAwLjA4MTI1LCAwLjA2MjUsIDAuMDQsIDAuMDE4NzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFEpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC41MjgyMDg7Ci0gICAgZnVuY3Rpb24gOiAiTjMwIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBub25fdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJpc2luZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMwNTg0NiwgMC40NDMzOTUsIDAuNTcwNjg1LCAwLjY2MjU5MywgMC44MDc0NzgsIDAuOTMzNzA2LCAxLjExNjg2IiwgXAotICAgICAgICAgICIwLjMxNzY3NCwgMC40NTUyMTIsIDAuNTgyMjc2LCAwLjY3NDQ2NywgMC44MTk0LCAwLjk0NTY0OCwgMS4xMjgzNCIsIFwKLSAgICAgICAgICAiMC4zMzI5MTgsIDAuNDcwNDU2LCAwLjU5Nzc0OSwgMC42ODk2NjEsIDAuODM1NjQ3LCAwLjk2MDgyOSwgMS4xNDM4IiwgXAotICAgICAgICAgICIwLjM0ODQ5MiwgMC40ODYwMzgsIDAuNjEzMzMzLCAwLjcwNTI2NiwgMC44NTE3ODEsIDAuOTc2NTA5LCAxLjE1OTQyIiwgXAotICAgICAgICAgICIwLjM2MzY4NywgMC41MDEyNDIsIDAuNjI4NTM4LCAwLjcyMDQ4MiwgMC44NjYxMDIsIDAuOTkxNzIzLCAxLjE3NDU3IiwgXAotICAgICAgICAgICIwLjM4Nzk2NiwgMC41MjU1MDgsIDAuNjUyNzk4LCAwLjc0NDcxNiwgMC44OTA3MSwgMS4wMTU4OCwgMS4xOTg4NiIsIFwKLSAgICAgICAgICAiMC40MDg0NjQsIDAuNTQ2MDEsIDAuNjczMzA1LCAwLjc2NTIyLCAwLjkxMTEyOCwgMS4wMzYzOCwgMS4yMTkzNiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3MzgyMSwgMC4zMTk1NDEsIDAuNTc4NjA0LCAwLjc2MjU3MywgMS4wNTYyMSwgMS4zMjE3MSwgMS42NzM2NSIsIFwKLSAgICAgICAgICAiMC4wNzMyNDIsIDAuMzE5OTE3LCAwLjU3ODU5NSwgMC43NTk0ODksIDEuMDU2MTksIDEuMzIwNzgsIDEuNjc4MyIsIFwKLSAgICAgICAgICAiMC4wNzMzOTMsIDAuMzIyMzE4LCAwLjU3ODYsIDAuNzYyOTU0LCAxLjA2MDYyLCAxLjMyMTA3LCAxLjY3NDgyIiwgXAotICAgICAgICAgICIwLjA3Mzc1OCwgMC4zMTk2NTYsIDAuNTc4NjEyLCAwLjc2MzM5NCwgMS4wNDc3OSwgMS4zMjA0NCwgMS42NzQ1NCIsIFwKLSAgICAgICAgICAiMC4wNzM3OTgsIDAuMzE5NjQyLCAwLjU3ODYzNCwgMC43NjM3MzYsIDEuMDQ4NjUsIDEuMzIwMzIsIDEuNjc1MTUiLCBcCi0gICAgICAgICAgIjAuMDczNDgxLCAwLjMxOTc4NSwgMC41Nzg1OTksIDAuNzYzMDkyLCAxLjA2MDczLCAxLjMyMTA3LCAxLjY3NDczIiwgXAotICAgICAgICAgICIwLjA3Mzc4MiwgMC4zMjA5MTEsIDAuNTc4NTk1LCAwLjc2MjkzOCwgMS4wNjAwNywgMS4zMjExMiwgMS42NzQ3OSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI3ODg5OSwgMC40Mjc5NTgsIDAuNTczNzcyLCAwLjY3Nzk1NywgMC44NDQ3NzQsIDAuOTkxMjUyLCAxLjE5OTciLCBcCi0gICAgICAgICAgIjAuMjkwNDMzLCAwLjQzOTQ4OCwgMC41ODUzMDUsIDAuNjg5NDkxLCAwLjg1Njg1MSwgMS4wMDI3NiwgMS4yMTEyNCIsIFwKLSAgICAgICAgICAiMC4zMDU4MTcsIDAuNDU0ODc1LCAwLjYwMDY4OCwgMC43MDQ4NzUsIDAuODcxNzA3LCAxLjAxODE4LCAxLjIyNzExIiwgXAotICAgICAgICAgICIwLjMyMTI1NywgMC40NzAwOCwgMC42MTYyMDMsIDAuNzIwMzEsIDAuODg3MjEyLCAxLjAzMzY3LCAxLjI0MjM1IiwgXAotICAgICAgICAgICIwLjMzNjYyNiwgMC40ODU0NSwgMC42MzE0NzEsIDAuNzM1NjU4LCAwLjkwMzg4NSwgMS4wNDg5NywgMS4yNTc2MiIsIFwKLSAgICAgICAgICAiMC4zNjA5NTUsIDAuNTA5OTg0LCAwLjY1NTg4MywgMC43NTk5OTMsIDAuOTI4MjE5LCAxLjA3MzMzLCAxLjI4MTkzIiwgXAotICAgICAgICAgICIwLjM4MTgxOSwgMC41MzA4NTQsIDAuNjc2NjczLCAwLjc4MDg2LCAwLjk0NzY4NCwgMS4wOTQxNSwgMS4zMDI1NyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2NDQwNywgMC4zNDYzOTUsIDAuNjM2MzU3LCAwLjg0Mjg1NCwgMS4xNzcxNSwgMS40NjM5MSwgMS44ODEyNiIsIFwKLSAgICAgICAgICAiMC4wNjQyMzMsIDAuMzQ2MzY5LCAwLjYzNjM1NSwgMC44NDI4NDUsIDEuMTc2NTMsIDEuNDY1MDIsIDEuODgxMjciLCBcCi0gICAgICAgICAgIjAuMDY0NDAyLCAwLjM0NjQwMSwgMC42MzYzNDYsIDAuODQzMzg0LCAxLjE3NDA2LCAxLjQ2NDQ1LCAxLjg4MzY5IiwgXAotICAgICAgICAgICIwLjA2NDE2MSwgMC4zNDY5MDgsIDAuNjM2MjkzLCAwLjg0MjIxNywgMS4xNzU4NiwgMS40NjQ5NSwgMS44ODE2OCIsIFwKLSAgICAgICAgICAiMC4wNjM4MDMsIDAuMzQ2OTQ1LCAwLjYzNjI5NiwgMC44NDI3OCwgMS4xNzY4LCAxLjQ2NDQ0LCAxLjg4MTI3IiwgXAotICAgICAgICAgICIwLjA2NDA0OSwgMC4zNDYyNTcsIDAuNjM2Mjk2LCAwLjg0MjczOCwgMS4xNzY3OSwgMS40NjQ4OSwgMS44ODA1OSIsIFwKLSAgICAgICAgICAiMC4wNjQxNTYsIDAuMzQ2MzczLCAwLjYzNjM4LCAwLjg0MzQ4LCAxLjE3NDc1LCAxLjQ2NDIsIDEuODgxODMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUk4iOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGNsZWFyOwotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4NjM5NSwgMC4yMzU3NDEsIDAuMzgxNTk1LCAwLjQ4NTkzMiwgMC42NTI5MTksIDAuNzk5NzM0LCAxLjAwOTI0IiwgXAotICAgICAgICAgICIwLjA5NzkyMSwgMC4yNDcyOSwgMC4zOTMxNjIsIDAuNDk3NDI4LCAwLjY2NDUwOSwgMC44MTE0MzYsIDEuMDIwNzgiLCBcCi0gICAgICAgICAgIjAuMTEyNTcyLCAwLjI2MTk1MiwgMC40MDc5MjksIDAuNTEyMTY3LCAwLjY3OTc4LCAwLjgyNjE0NSwgMS4wMzU1MyIsIFwKLSAgICAgICAgICAiMC4xMjcyNjgsIDAuMjc2Njc3LCAwLjQyMjYxMiwgMC41MjY3OTcsIDAuNjkzODcyLCAwLjg0MTAxMSwgMS4wNTAyNyIsIFwKLSAgICAgICAgICAiMC4xNDE4OCwgMC4yOTEzNTgsIDAuNDM3Mjc0LCAwLjU0MTU2NCwgMC43MDg0OTcsIDAuODU1NzIyLCAxLjA2NDk3IiwgXAotICAgICAgICAgICIwLjE2NDM3MSwgMC4zMTM4MzgsIDAuNDU5ODE0LCAwLjU2NDA2MSwgMC43MzE2NzUsIDAuODc4MTg5LCAxLjA4NzI3IiwgXAotICAgICAgICAgICIwLjE4Mjc4MSwgMC4zMzIzMDcsIDAuNDc4MzQ0LCAwLjU4MjY1NCwgMC43NTAyNzEsIDAuODk2NTYzLCAxLjEwNjA4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDYyNjAzLCAwLjM0NjI5MiwgMC42MzU2NjEsIDAuODQzNzkyLCAxLjE3NDE2LCAxLjQ2NTMzLCAxLjg3ODk4IiwgXAotICAgICAgICAgICIwLjA2Mjc0NywgMC4zNDYyMDUsIDAuNjM1NjM1LCAwLjg0MzM5NywgMS4xNzQ0NCwgMS40NjU5NCwgMS44ODA0MyIsIFwKLSAgICAgICAgICAiMC4wNjI2MzUsIDAuMzQ2MjQ1LCAwLjYzNTcyNiwgMC44NDMzOTgsIDEuMTc1MDYsIDEuNDY1MDQsIDEuODgwNjEiLCBcCi0gICAgICAgICAgIjAuMDYyODI0LCAwLjM0NjI1MiwgMC42MzU1MDYsIDAuODQyODU2LCAxLjE3NDA4LCAxLjQ2NDg3LCAxLjg4MDYiLCBcCi0gICAgICAgICAgIjAuMDYzMDIzLCAwLjM0NjI1MiwgMC42MzU0OCwgMC44NDMyNzUsIDEuMTc1MTgsIDEuNDY1NzgsIDEuODgwNjciLCBcCi0gICAgICAgICAgIjAuMDYzNTUsIDAuMzQ2Mjg2LCAwLjYzNTMyNywgMC44NDI5NDUsIDEuMTc1MDYsIDEuNDY0OSwgMS44ODEwOCIsIFwKLSAgICAgICAgICAiMC4wNjUwNDEsIDAuMzQ2NDA4LCAwLjYzNDcyNywgMC44NDMxOSwgMS4xNzUzLCAxLjQ2NTY1LCAxLjg4MTM0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2NTIzLCAwLjAwNjY1NSwgMC4wMDY2NzUsIDAuMDA2NjgyLCAwLjAwNjY4NiwgMC4wMDY2ODksIDAuMDA2NjkxIiwgXAotICAgICAgICAgICIwLjAwNjUxNiwgMC4wMDY2NDgsIDAuMDA2NjY4LCAwLjAwNjY3MywgMC4wMDY2NzksIDAuMDA2NjgyLCAwLjAwNjY4NCIsIFwKLSAgICAgICAgICAiMC4wMDY1MSwgMC4wMDY2NDIsIDAuMDA2NjYyLCAwLjAwNjY2OCwgMC4wMDY2NzMsIDAuMDA2Njc1LCAwLjAwNjY3OCIsIFwKLSAgICAgICAgICAiMC4wMDY1MDUsIDAuMDA2NjM3LCAwLjAwNjY1NywgMC4wMDY2NjMsIDAuMDA2NjY5LCAwLjAwNjY3LCAwLjAwNjY3NCIsIFwKLSAgICAgICAgICAiMC4wMDY1LCAwLjAwNjYzMywgMC4wMDY2NTEsIDAuMDA2NjU5LCAwLjAwNjY2MywgMC4wMDY2NjYsIDAuMDA2NjY5IiwgXAotICAgICAgICAgICIwLjAwNjQ5NiwgMC4wMDY2MjgsIDAuMDA2NjQ4LCAwLjAwNjY1NCwgMC4wMDY2NTksIDAuMDA2NjYyLCAwLjAwNjY2NCIsIFwKLSAgICAgICAgICAiMC4wMDY0OTQsIDAuMDA2NjI2LCAwLjAwNjY0NiwgMC4wMDY2NTIsIDAuMDA2NjU3LCAwLjAwNjY1OSwgMC4wMDY2NjIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjQ5MywgMC4wMDY2MDksIDAuMDA2NjI0LCAwLjAwNjYyNywgMC4wMDY2MzIsIDAuMDA2NjM1LCAwLjAwNjYzNSIsIFwKLSAgICAgICAgICAiMC4wMDY0ODQsIDAuMDA2NjAyLCAwLjAwNjYxNiwgMC4wMDY2MjEsIDAuMDA2NjI0LCAwLjAwNjYyNiwgMC4wMDY2MjgiLCBcCi0gICAgICAgICAgIjAuMDA2NDgxLCAwLjAwNjU5NiwgMC4wMDY2MTEsIDAuMDA2NjE1LCAwLjAwNjYxOSwgMC4wMDY2MjMsIDAuMDA2NjIiLCBcCi0gICAgICAgICAgIjAuMDA2NDczLCAwLjAwNjU5MSwgMC4wMDY2MDYsIDAuMDA2NjEsIDAuMDA2NjE1LCAwLjAwNjYxOCwgMC4wMDY2MTgiLCBcCi0gICAgICAgICAgIjAuMDA2NDc1LCAwLjAwNjU5MSwgMC4wMDY2MDYsIDAuMDA2NjEsIDAuMDA2NjE0LCAwLjAwNjYxNiwgMC4wMDY2MTciLCBcCi0gICAgICAgICAgIjAuMDA2NDc0LCAwLjAwNjU5LCAwLjAwNjYwNSwgMC4wMDY2MSwgMC4wMDY2MTMsIDAuMDA2NjE1LCAwLjAwNjYxNiIsIFwKLSAgICAgICAgICAiMC4wMDY0NzcsIDAuMDA2NTkyLCAwLjAwNjYwOCwgMC4wMDY2MTEsIDAuMDA2NjE1LCAwLjAwNjYxNywgMC4wMDY2MTkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDcwMjQsIDAuMDA3MTE4LCAwLjAwNzEyOCwgMC4wMDcxMywgMC4wMDcxMzIsIDAuMDA3MTM0LCAwLjAwNzEzNSIsIFwKLSAgICAgICAgICAiMC4wMDcwMDUsIDAuMDA3MTAyLCAwLjAwNzExMywgMC4wMDcxMTUsIDAuMDA3MTE3LCAwLjAwNzExOCwgMC4wMDcxMjEiLCBcCi0gICAgICAgICAgIjAuMDA2OTgzLCAwLjAwNzA4NSwgMC4wMDcwOTcsIDAuMDA3MTAxLCAwLjAwNzEwMywgMC4wMDcxMDUsIDAuMDA3MTA3IiwgXAotICAgICAgICAgICIwLjAwNjk2MiwgMC4wMDcwNjksIDAuMDA3MDgzLCAwLjAwNzA4NywgMC4wMDcwOTEsIDAuMDA3MDkzLCAwLjAwNzA5NSIsIFwKLSAgICAgICAgICAiMC4wMDY5NDEsIDAuMDA3MDUzLCAwLjAwNzA2OSwgMC4wMDcwNzQsIDAuMDA3MDc4LCAwLjAwNzA4MSwgMC4wMDcwODIiLCBcCi0gICAgICAgICAgIjAuMDA2OTIsIDAuMDA3MDM3LCAwLjAwNzA1NiwgMC4wMDcwNjEsIDAuMDA3MDY4LCAwLjAwNzA2OSwgMC4wMDcwNzIiLCBcCi0gICAgICAgICAgIjAuMDA2OTAzLCAwLjAwNzAyMywgMC4wMDcwNDQsIDAuMDA3MDUxLCAwLjAwNzA1NiwgMC4wMDcwNTksIDAuMDA3MDYyIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3Bvd2VyKHNjYWxhcikgewotICAgICAgICB2YWx1ZXMoIjAiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFFOKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuNTI1MzM5OwotICAgIGZ1bmN0aW9uIDogIlFCSU5UIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBub25fdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJpc2luZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMyNzE2NywgMC40NTM5ODgsIDAuNTgwNzA3LCAwLjY3MTMzOSwgMC44MTYzMDcsIDAuOTQzMDc2LCAxLjEyNDI0IiwgXAotICAgICAgICAgICIwLjMzODYzMywgMC40NjU1MDcsIDAuNTkyMjI4LCAwLjY4Mjg2LCAwLjgyNzU5NCwgMC45NTQ1OTksIDEuMTM1NzYiLCBcCi0gICAgICAgICAgIjAuMzU0MDc0LCAwLjQ4MDkwNSwgMC42MDc2MjMsIDAuNjk4MjU4LCAwLjg0MzI1NywgMC45Njk5OTIsIDEuMTUwOSIsIFwKLSAgICAgICAgICAiMC4zNjk0NDIsIDAuNDk2MzI5LCAwLjYyMzA2MSwgMC43MTM2NzQsIDAuODU4NTQ5LCAwLjk4NTQyMiwgMS4xNjY1OCIsIFwKLSAgICAgICAgICAiMC4zODQ3OTksIDAuNTExNjg2LCAwLjYzODQwOCwgMC43MjkwMzYsIDAuODczOTA5LCAxLjAwMDc4LCAxLjE4MTkzIiwgXAotICAgICAgICAgICIwLjQwOTEzMywgMC41MzYwMTMsIDAuNjYyNzU2LCAwLjc1MzM3NCwgMC44OTgyNDQsIDEuMDI1MTIsIDEuMjA2MjgiLCBcCi0gICAgICAgICAgIjAuNDI5OTk3LCAwLjU1Njg4MiwgMC42ODM2LCAwLjc3NDIzOCwgMC45MTkyMjIsIDEuMDQ1OTcsIDEuMjI3MTQiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTc0MDIsIDAuMzA4NjYxLCAwLjU2NzMxOCwgMC43NTAwNzksIDEuMDQ0OCwgMS4zMDE2NCwgMS42NzMwOSIsIFwKLSAgICAgICAgICAiMC4wNTc0MDUsIDAuMzA4NjU5LCAwLjU2NzMxOCwgMC43NTAwODcsIDEuMDQ3MywgMS4zMDQyNywgMS42NzMwOCIsIFwKLSAgICAgICAgICAiMC4wNTczOTQsIDAuMzA4NjYxLCAwLjU2NzMyMSwgMC43NTAwOTMsIDEuMDQ1NDUsIDEuMzAyODksIDEuNjc0NjgiLCBcCi0gICAgICAgICAgIjAuMDU3NDA1LCAwLjMwOTI0NiwgMC41Njc0NSwgMC43NTAxNSwgMS4wNDYxNCwgMS4zMDQzMSwgMS42NzMyIiwgXAotICAgICAgICAgICIwLjA1NzQxLCAwLjMwOTI4MywgMC41NjczNDMsIDAuNzUwMTI1LCAxLjA0Nzg0LCAxLjMwMjg5LCAxLjY3MzI2IiwgXAotICAgICAgICAgICIwLjA1NzQwMywgMC4zMDg2MjYsIDAuNTY3NDUzLCAwLjc1MDEzOCwgMS4wNDc4MiwgMS4zMDQzMiwgMS42NzMyNiIsIFwKLSAgICAgICAgICAiMC4wNTc0LCAwLjMwODY1OCwgMC41NjczMDgsIDAuNzUwMDY3LCAxLjA0NTQxLCAxLjMwNDMyLCAxLjY3MzA1Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzYwODQ1LCAwLjUwNTU2LCAwLjY1MTM1LCAwLjc1NTYyNywgMC45MjI0NTgsIDEuMDY4NDcsIDEuMjc3MDUiLCBcCi0gICAgICAgICAgIjAuMzcyNjc3LCAwLjUxNzM5OSwgMC42NjMyMjIsIDAuNzY3NDg1LCAwLjkzNDMwNywgMS4wODAzMSwgMS4yODg4OSIsIFwKLSAgICAgICAgICAiMC4zODc5MjcsIDAuNTMyNjMyLCAwLjY3ODQyLCAwLjc4MjY5OSwgMC45NDk2MTYsIDEuMDk1NTMsIDEuMzA0MTIiLCBcCi0gICAgICAgICAgIjAuNDAzNDkzLCAwLjU0ODIwNywgMC42OTQsIDAuNzk4MjgyLCAwLjk2NTIzLCAxLjExMTEyLCAxLjMxOTciLCBcCi0gICAgICAgICAgIjAuNDE4Njk4LCAwLjU2MzQwNywgMC43MDkxOTUsIDAuODEzNDc5LCAwLjk4MDM0NywgMS4xMjYzMSwgMS4zMzQ4OSIsIFwKLSAgICAgICAgICAiMC40NDI5NzksIDAuNTg3Njc1LCAwLjczMzQ2NiwgMC44Mzc3NDUsIDEuMDA0NjYsIDEuMTUwNTgsIDEuMzU5MTYiLCBcCi0gICAgICAgICAgIjAuNDYzNDYzLCAwLjYwODE4MiwgMC43NTM5NzEsIDAuODU4MjUxLCAxLjAyNTE2LCAxLjE3MTA5LCAxLjM3OTY3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDYyNTE4LCAwLjM0NjM1NiwgMC42MzYzMTcsIDAuODQzMzExLCAxLjE3NjI0LCAxLjQ2NjM1LCAxLjg4MDg2IiwgXAotICAgICAgICAgICIwLjA2MjQ2OSwgMC4zNDYyNjYsIDAuNjM2Mjc0LCAwLjg0MzQ3OCwgMS4xNzYyLCAxLjQ2NjMyLCAxLjg4MDkxIiwgXAotICAgICAgICAgICIwLjA2MjQ4NiwgMC4zNDY1OTMsIDAuNjM2MzE0LCAwLjg0MzM4MywgMS4xNzUzNCwgMS40NjYzMiwgMS44ODA4NCIsIFwKLSAgICAgICAgICAiMC4wNjI0OTgsIDAuMzQ2NDYyLCAwLjYzNjMxMywgMC44NDM0ODIsIDEuMTc1MTYsIDEuNDY2MywgMS44ODA4NSIsIFwKLSAgICAgICAgICAiMC4wNjI0OTgsIDAuMzQ2NDY1LCAwLjYzNjI0MywgMC44NDM1NzIsIDEuMTc1NDUsIDEuNDY2MywgMS44ODA3OCIsIFwKLSAgICAgICAgICAiMC4wNjI0ODcsIDAuMzQ2MzgyLCAwLjYzNjMxMywgMC44NDM0MTEsIDEuMTc1MzMsIDEuNDY2MzIsIDEuODgwODMiLCBcCi0gICAgICAgICAgIjAuMDYyNTAyLCAwLjM0NjQ2MiwgMC42MzYzMTMsIDAuODQzMzgsIDEuMTc1MzUsIDEuNDY2MzIsIDEuODgwODUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUk4iOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHByZXNldDsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMzQ0ODQsIDAuMjYxNTMyLCAwLjM4ODIxMywgMC40Nzg3NzIsIDAuNjIzNjcxLCAwLjc1MDUzNywgMC45MzE2NzgiLCBcCi0gICAgICAgICAgIjAuMTQ2MDYyLCAwLjI3MzA1MywgMC4zOTk3MzYsIDAuNDkwMjg5LCAwLjYzNTE5NywgMC43NjIwNiwgMC45NDMyMzIiLCBcCi0gICAgICAgICAgIjAuMTYwNjQzLCAwLjI4NzY2MSwgMC40MTQzNDksIDAuNTA0ODk1LCAwLjY0OTgyNiwgMC43NzY3MDgsIDAuOTU3Nzk0IiwgXAotICAgICAgICAgICIwLjE3NTQzMiwgMC4zMDIzOTcsIDAuNDI5MDgsIDAuNTE5NjI1LCAwLjY2NDUzOSwgMC43OTE0NTIsIDAuOTcyNTQ0IiwgXAotICAgICAgICAgICIwLjE4OTk3NSwgMC4zMTcwMiwgMC40NDM3MDcsIDAuNTM0MjQ2LCAwLjY3OTE3MiwgMC44MDYwMzUsIDAuOTg3MTQ0IiwgXAotICAgICAgICAgICIwLjIxMjUsIDAuMzM5NDc4LCAwLjQ2NjE2MywgMC41NTY3MDksIDAuNzAxNjI2LCAwLjgyODQ1NiwgMS4wMDk2MiIsIFwKLSAgICAgICAgICAiMC4yMzExMTQsIDAuMzU3OTk2LCAwLjQ4NDY4NSwgMC41NzUyMjYsIDAuNzIwMTQzLCAwLjg0NjkzOSwgMS4wMjgxMiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1NzM5MSwgMC4zMDgyNzgsIDAuNTY2Mjg1LCAwLjc1MTE2MiwgMS4wNDU4MSwgMS4zMDUsIDEuNjc0NzciLCBcCi0gICAgICAgICAgIjAuMDU3NDI4LCAwLjMwODMzLCAwLjU2NjI5NCwgMC43NTA2MDQsIDEuMDQ1ODgsIDEuMzA1MDksIDEuNjc0OTkiLCBcCi0gICAgICAgICAgIjAuMDU3Mzg5LCAwLjMwODMyOCwgMC41NjYxODQsIDAuNzUwNjAzLCAxLjA0Njc2LCAxLjMwNTEsIDEuNjc1MDQiLCBcCi0gICAgICAgICAgIjAuMDU3NDM2LCAwLjMwODI1NSwgMC41NjYzMDcsIDAuNzUwMTg4LCAxLjA0NTg2LCAxLjMwNTE3LCAxLjY3NTAyIiwgXAotICAgICAgICAgICIwLjA1NzM5MiwgMC4zMDgyNTYsIDAuNTY2MzA1LCAwLjc1MDYsIDEuMDQ2MDMsIDEuMzA1MzgsIDEuNjc1MDQiLCBcCi0gICAgICAgICAgIjAuMDU3NDE2LCAwLjMwODMzLCAwLjU2NjM2OCwgMC43NTA1MDMsIDEuMDQ2NzUsIDEuMzA1MSwgMS42NzQzIiwgXAotICAgICAgICAgICIwLjA1NzQzNiwgMC4zMDgyNjksIDAuNTY1MTE0LCAwLjc1MDU5OSwgMS4wNDY3NiwgMS4zMDUxLCAxLjY3NDY3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2NDkzLCAwLjAwNjYwOSwgMC4wMDY2MjQsIDAuMDA2NjI3LCAwLjAwNjYzMiwgMC4wMDY2MzUsIDAuMDA2NjM1IiwgXAotICAgICAgICAgICIwLjAwNjQ4NCwgMC4wMDY2MDIsIDAuMDA2NjE2LCAwLjAwNjYyMSwgMC4wMDY2MjQsIDAuMDA2NjI2LCAwLjAwNjYyOCIsIFwKLSAgICAgICAgICAiMC4wMDY0ODEsIDAuMDA2NTk2LCAwLjAwNjYxMSwgMC4wMDY2MTUsIDAuMDA2NjE5LCAwLjAwNjYyMywgMC4wMDY2MiIsIFwKLSAgICAgICAgICAiMC4wMDY0NzMsIDAuMDA2NTkxLCAwLjAwNjYwNiwgMC4wMDY2MSwgMC4wMDY2MTUsIDAuMDA2NjE4LCAwLjAwNjYxOCIsIFwKLSAgICAgICAgICAiMC4wMDY0NzUsIDAuMDA2NTkxLCAwLjAwNjYwNiwgMC4wMDY2MSwgMC4wMDY2MTQsIDAuMDA2NjE2LCAwLjAwNjYxNyIsIFwKLSAgICAgICAgICAiMC4wMDY0NzQsIDAuMDA2NTksIDAuMDA2NjA1LCAwLjAwNjYxLCAwLjAwNjYxMywgMC4wMDY2MTUsIDAuMDA2NjE2IiwgXAotICAgICAgICAgICIwLjAwNjQ3NywgMC4wMDY1OTIsIDAuMDA2NjA4LCAwLjAwNjYxMSwgMC4wMDY2MTUsIDAuMDA2NjE3LCAwLjAwNjYxOSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2NTIzLCAwLjAwNjY1NSwgMC4wMDY2NzUsIDAuMDA2NjgyLCAwLjAwNjY4NiwgMC4wMDY2ODksIDAuMDA2NjkxIiwgXAotICAgICAgICAgICIwLjAwNjUxNiwgMC4wMDY2NDgsIDAuMDA2NjY4LCAwLjAwNjY3MywgMC4wMDY2NzksIDAuMDA2NjgyLCAwLjAwNjY4NCIsIFwKLSAgICAgICAgICAiMC4wMDY1MSwgMC4wMDY2NDIsIDAuMDA2NjYyLCAwLjAwNjY2OCwgMC4wMDY2NzMsIDAuMDA2Njc1LCAwLjAwNjY3OCIsIFwKLSAgICAgICAgICAiMC4wMDY1MDUsIDAuMDA2NjM3LCAwLjAwNjY1NywgMC4wMDY2NjMsIDAuMDA2NjY5LCAwLjAwNjY3LCAwLjAwNjY3NCIsIFwKLSAgICAgICAgICAiMC4wMDY1LCAwLjAwNjYzMywgMC4wMDY2NTEsIDAuMDA2NjU5LCAwLjAwNjY2MywgMC4wMDY2NjYsIDAuMDA2NjY5IiwgXAotICAgICAgICAgICIwLjAwNjQ5NiwgMC4wMDY2MjgsIDAuMDA2NjQ4LCAwLjAwNjY1NCwgMC4wMDY2NTksIDAuMDA2NjYyLCAwLjAwNjY2NCIsIFwKLSAgICAgICAgICAiMC4wMDY0OTQsIDAuMDA2NjI2LCAwLjAwNjY0NiwgMC4wMDY2NTIsIDAuMDA2NjU3LCAwLjAwNjY1OSwgMC4wMDY2NjIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDcwMjQsIDAuMDA3MTE4LCAwLjAwNzEyOCwgMC4wMDcxMywgMC4wMDcxMzIsIDAuMDA3MTM0LCAwLjAwNzEzNSIsIFwKLSAgICAgICAgICAiMC4wMDcwMDUsIDAuMDA3MTAyLCAwLjAwNzExMywgMC4wMDcxMTUsIDAuMDA3MTE3LCAwLjAwNzExOCwgMC4wMDcxMjEiLCBcCi0gICAgICAgICAgIjAuMDA2OTgzLCAwLjAwNzA4NSwgMC4wMDcwOTcsIDAuMDA3MTAxLCAwLjAwNzEwMywgMC4wMDcxMDUsIDAuMDA3MTA3IiwgXAotICAgICAgICAgICIwLjAwNjk2MiwgMC4wMDcwNjksIDAuMDA3MDgzLCAwLjAwNzA4NywgMC4wMDcwOTEsIDAuMDA3MDkzLCAwLjAwNzA5NSIsIFwKLSAgICAgICAgICAiMC4wMDY5NDEsIDAuMDA3MDUzLCAwLjAwNzA2OSwgMC4wMDcwNzQsIDAuMDA3MDc4LCAwLjAwNzA4MSwgMC4wMDcwODIiLCBcCi0gICAgICAgICAgIjAuMDA2OTIsIDAuMDA3MDM3LCAwLjAwNzA1NiwgMC4wMDcwNjEsIDAuMDA3MDY4LCAwLjAwNzA2OSwgMC4wMDcwNzIiLCBcCi0gICAgICAgICAgIjAuMDA2OTAzLCAwLjAwNzAyMywgMC4wMDcwNDQsIDAuMDA3MDUxLCAwLjAwNzA1NiwgMC4wMDcwNTksIDAuMDA3MDYyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHNjYWxhcikgewotICAgICAgICB2YWx1ZXMoIjAiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFJOKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDIyNTQ2MTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDIwOTU5MjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDIyNTQ2MTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA2NSwgMC4wMDA2NDksIDAuMDAwNjQ5LCAwLjAwMDY0OSwgMC4wMDA2NDksIDAuMDAwNjQ5LCAwLjAwMDY0OSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDY2MywgMC4wMDA2NTQsIDAuMDAwNjUzLCAwLjAwMDY1MywgMC4wMDA2NTMsIDAuMDAwNjUzLCAwLjAwMDY1MyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQiOwotICAgICAgc2RmX2NvbmQgOiAiRCA9PSAxJ2IwIjsKLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjE5NTM3NSwgMC4yMDcwMjEsIDAuMjIxMjgzLCAwLjIzNDU3NywgMC4yNDczNDksIDAuMjY3MTk4LCAwLjI4NDI1MyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJlY292ZXJ5X3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiRCI7Ci0gICAgICBzZGZfY29uZCA6ICJEID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHJlY292ZXJ5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wNjI1LCAtMC4wNzM3NSwgLTAuMDg2MjUsIC0wLjEwNSwgLTAuMTE3NSwgLTAuMTQ2MjUsIC0wLjE2MTI1IiwgXAotICAgICAgICAgICItMC4wNywgLTAuMDgxMjUsIC0wLjA5Mzc1LCAtMC4xMTI1LCAtMC4xMjUsIC0wLjE1Mzc1LCAtMC4xNjg3NSIsIFwKLSAgICAgICAgICAiLTAuMDc2MjUsIC0wLjA4NzUsIC0wLjEsIC0wLjExODc1LCAtMC4xMzEyNSwgLTAuMTYsIC0wLjE4MTI1IiwgXAotICAgICAgICAgICItMC4wNzYyNSwgLTAuMDg3NSwgLTAuMTA2MjUsIC0wLjExODc1LCAtMC4xMzc1LCAtMC4xNiwgLTAuMTgxMjUiLCBcCi0gICAgICAgICAgIi0wLjA3NjI1LCAtMC4wODc1LCAtMC4xMDYyNSwgLTAuMTI1LCAtMC4xMzc1LCAtMC4xNiwgLTAuMTgxMjUiLCBcCi0gICAgICAgICAgIi0wLjA3MjUsIC0wLjA4Mzc1LCAtMC4xMDI1LCAtMC4xMTUsIC0wLjEzMzc1LCAtMC4xNTYyNSwgLTAuMTc3NSIsIFwKLSAgICAgICAgICAiLTAuMDU3NSwgLTAuMDY4NzUsIC0wLjA4NzUsIC0wLjEwNjI1LCAtMC4xMTg3NSwgLTAuMTQ3NSwgLTAuMTY4NzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiByZW1vdmFsX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiRCI7Ci0gICAgICBzZGZfY29uZCA6ICJEID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHJlbW92YWxfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMSwgMC4xMTEyNSwgMC4xMywgMC4xNDI1LCAwLjE2MTI1LCAwLjE4Mzc1LCAwLjIwNSIsIFwKLSAgICAgICAgICAiMC4xMDc1LCAwLjExODc1LCAwLjEzNzUsIDAuMTUsIDAuMTY4NzUsIDAuMTkxMjUsIDAuMjEyNSIsIFwKLSAgICAgICAgICAiMC4xMiwgMC4xMzEyNSwgMC4xNDM3NSwgMC4xNjI1LCAwLjE3NSwgMC4xOTc1LCAwLjIxODc1IiwgXAotICAgICAgICAgICIwLjEyNjI1LCAwLjEzNzUsIDAuMTU2MjUsIDAuMTY4NzUsIDAuMTg3NSwgMC4yMSwgMC4yMzEyNSIsIFwKLSAgICAgICAgICAiMC4xMzg3NSwgMC4xNSwgMC4xNjI1LCAwLjE4MTI1LCAwLjE5Mzc1LCAwLjIxNjI1LCAwLjIzNzUiLCBcCi0gICAgICAgICAgIjAuMTUzNzUsIDAuMTY1LCAwLjE3NzUsIDAuMTk2MjUsIDAuMjA4NzUsIDAuMjMxMjUsIDAuMjUyNSIsIFwKLSAgICAgICAgICAiMC4xNjM3NSwgMC4xNzUsIDAuMTg3NSwgMC4yMDYyNSwgMC4yMTg3NSwgMC4yNDEyNSwgMC4yNjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBERkZSWEwgKgotICogLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChERkZSWEwpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4yNDI3MjI7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgZmYgKE4zMCxRQklOVCkgewotICAgIG5leHRfc3RhdGUgOiAiRCI7Ci0gICAgY2xvY2tlZF9vbiA6ICJDSyI7Ci0gICAgY2xlYXIgOiAiKCFSTikiOwotICB9Ci0gIHBpbihDSykgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNTI4Njk5OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDUyODM4MzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA1Mjg2OTk7Ci0gICAgY2xvY2sgOiB0cnVlOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjQzNiwgMC4wMDI0MjMsIDAuMDAyNDEzLCAwLjAwMjQwNywgMC4wMDI0MDEsIDAuMDAyMzk0LCAwLjAwMjM5MSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNTYwOCwgMC4wMDU2LCAwLjAwNTU5MywgMC4wMDU1ODgsIDAuMDA1NTgzLCAwLjAwNTU3NywgMC4wMDU1NzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFEJlJOIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9STl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuNDAzOTU5LCAwLjQxNTYzLCAwLjQzMDg0OSwgMC40NDYzNzQsIDAuNDYxODE1LCAwLjQ4NjE1MSwgMC41MDcxNjgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjIyMDc4MywgMC4yMzIxODgsIDAuMjQ3Mjk5LCAwLjI2MjE2MSwgMC4yNzY4NDIsIDAuMjk5NzM0LCAwLjMxOTA1MSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNTU5NDAzOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDU1NzUzOTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA1NTk0MDM7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxOTE2LCAwLjAwMTkwNCwgMC4wMDE4OTcsIDAuMDAxODkyLCAwLjAwMTg4OSwgMC4wMDE4ODUsIDAuMDAxODc5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyMzU0LCAwLjAwMjM0OCwgMC4wMDIzNDUsIDAuMDAyMzQyLCAwLjAwMjM0LCAwLjAwMjMzNiwgMC4wMDIzMzQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiUk4iOwotICAgICAgc2RmX2NvbmQgOiAiUk4gPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDUsIC0wLjAzODc1LCAtMC4wMjYyNSwgLTAuMDEzNzUsIC0wLjAwNzUsIDAuMDA4NzUsIDAuMDIzNzUiLCBcCi0gICAgICAgICAgIi0wLjA2MTI1LCAtMC4wNSwgLTAuMDM3NSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDAyNSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDczNzUsIC0wLjA2MjUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDMxMjUsIC0wLjAxNSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA4NjI1LCAtMC4wNzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNDM3NSwgLTAuMDI3NSwgLTAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjEwNSwgLTAuMDkzNzUsIC0wLjA4MTI1LCAtMC4wNjg3NSwgLTAuMDU2MjUsIC0wLjA0LCAtMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMTIxMjUsIC0wLjExNjI1LCAtMC4xMDM3NSwgLTAuMDkxMjUsIC0wLjA3ODc1LCAtMC4wNjI1LCAtMC4wNTM3NSIsIFwKLSAgICAgICAgICAiLTAuMTQyNSwgLTAuMTMxMjUsIC0wLjExODc1LCAtMC4xMDYyNSwgLTAuMSwgLTAuMDgzNzUsIC0wLjA2ODc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTYyNSwgMC4wNjc1LCAwLjA4NjI1LCAwLjA5ODc1LCAwLjExMTI1LCAwLjE0LCAwLjE2MTI1IiwgXAotICAgICAgICAgICIwLjA0NSwgMC4wNTYyNSwgMC4wNjg3NSwgMC4wODc1LCAwLjEsIDAuMTI4NzUsIDAuMTQzNzUiLCBcCi0gICAgICAgICAgIjAuMDMyNSwgMC4wNDM3NSwgMC4wNTYyNSwgMC4wNzUsIDAuMDg3NSwgMC4xMSwgMC4xMzEyNSIsIFwKLSAgICAgICAgICAiMC4wMiwgMC4wMzEyNSwgMC4wNDM3NSwgMC4wNjI1LCAwLjA3NSwgMC4wOTc1LCAwLjExODc1IiwgXAotICAgICAgICAgICIwLjAwNzUsIDAuMDE4NzUsIDAuMDM3NSwgMC4wNSwgMC4wNjg3NSwgMC4wOTEyNSwgMC4xMTI1IiwgXAotICAgICAgICAgICItMC4wMDI1LCAwLjAwODc1LCAwLjAyMTI1LCAwLjA0LCAwLjA1MjUsIDAuMDc1LCAwLjA5NjI1IiwgXAotICAgICAgICAgICItMC4wMTc1LCAtMC4wMDYyNSwgMC4wMTI1LCAwLjAyNSwgMC4wNDM3NSwgMC4wNjYyNSwgMC4wODc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJSTiI7Ci0gICAgICBzZGZfY29uZCA6ICJSTiA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDYyNSwgMC4wOTUsIDAuMDc2MjUsIDAuMDYzNzUsIDAuMDU3NSwgMC4wNDEyNSwgMC4wMjYyNSIsIFwKLSAgICAgICAgICAiMC4xMTc1LCAwLjEwNjI1LCAwLjA4NzUsIDAuMDc1LCAwLjA2ODc1LCAwLjA1MjUsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiMC4xMywgMC4xMTg3NSwgMC4xMDYyNSwgMC4wODc1LCAwLjA4MTI1LCAwLjA2NSwgMC4wNSIsIFwKLSAgICAgICAgICAiMC4xNDI1LCAwLjEzMTI1LCAwLjExODc1LCAwLjEwNjI1LCAwLjA5Mzc1LCAwLjA3NzUsIDAuMDYyNSIsIFwKLSAgICAgICAgICAiMC4xNTUsIDAuMTQzNzUsIDAuMTMxMjUsIDAuMTE4NzUsIDAuMTA2MjUsIDAuMDksIDAuMDgxMjUiLCBcCi0gICAgICAgICAgIjAuMTc3NSwgMC4xNjYyNSwgMC4xNTM3NSwgMC4xNDEyNSwgMC4xMjg3NSwgMC4xMTI1LCAwLjA5NzUiLCBcCi0gICAgICAgICAgIjAuMTk4NzUsIDAuMTg3NSwgMC4xNjg3NSwgMC4xNTYyNSwgMC4xNSwgMC4xMjc1LCAwLjExODc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDMxMjUsIDAuMDIsIDAuMDAxMjUsIC0wLjAxNzUsIC0wLjAzLCAtMC4wNTg3NSwgLTAuMDgiLCBcCi0gICAgICAgICAgIjAuMDQyNSwgMC4wMzEyNSwgMC4wMTI1LCAwLCAtMC4wMTg3NSwgLTAuMDQxMjUsIC0wLjA2ODc1IiwgXAotICAgICAgICAgICIwLjA1NSwgMC4wNDM3NSwgMC4wMjUsIDAuMDEyNSwgLTAuMDA2MjUsIC0wLjAyODc1LCAtMC4wNSIsIFwKLSAgICAgICAgICAiMC4wNjc1LCAwLjA1NjI1LCAwLjAzNzUsIDAuMDI1LCAwLjAwNjI1LCAtMC4wMTYyNSwgLTAuMDM3NSIsIFwKLSAgICAgICAgICAiMC4wOCwgMC4wNjg3NSwgMC4wNSwgMC4wMzc1LCAwLjAxODc1LCAtMC4wMDM3NSwgLTAuMDI1IiwgXAotICAgICAgICAgICIwLjA5NjI1LCAwLjA4NSwgMC4wNzI1LCAwLjA1Mzc1LCAwLjA0MTI1LCAwLjAxMjUsIC0wLjAwODc1IiwgXAotICAgICAgICAgICIwLjExNzUsIDAuMTA2MjUsIDAuMDg3NSwgMC4wNjg3NSwgMC4wNTYyNSwgMC4wMjc1LCAwLjAwNjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihRKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMDczNjQwMjsKLSAgICBmdW5jdGlvbiA6ICJOMzAiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5vbl91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcmlzaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjQyMTA2NSwgMC40NDY2NzcsIDAuNjc0MjI0LCAxLjA1NTE3LCAxLjQzMzU0LCAyLjMxOTg2LCAyLjgyNjcyIiwgXAotICAgICAgICAgICIwLjQzMjYyNywgMC40NTgyMTYsIDAuNjg1NDEsIDEuMDY3MDgsIDEuNDQ0NDIsIDIuMzI5NjMsIDIuODM4MjUiLCBcCi0gICAgICAgICAgIjAuNDQ3OTgsIDAuNDczNTgyLCAwLjcwMDgyOSwgMS4wODMzOSwgMS40NTk4NiwgMi4zNDU2NiwgMi44NTM2MyIsIFwKLSAgICAgICAgICAiMC40NjM3MywgMC40ODkxMTcsIDAuNzE3MzIsIDEuMDk3NDIsIDEuNDc2MzksIDIuMzYxNCwgMi44NjgwNCIsIFwKLSAgICAgICAgICAiMC40Nzg5MTYsIDAuNTA0NTE3LCAwLjczMTc2NywgMS4xMTQzNCwgMS40OTA3OCwgMi4zNzY1LCAyLjg4NDU2IiwgXAotICAgICAgICAgICIwLjUwMzMxMiwgMC41Mjg3MjYsIDAuNzU2OTE5LCAxLjEzNzEsIDEuNTE1OTksIDIuNDAwOTcsIDIuOTA5ODQiLCBcCi0gICAgICAgICAgIjAuNTI0MDU5LCAwLjU0OTQ3MiwgMC43Nzc2NjIsIDEuMTU3NjksIDEuNTM2NzIsIDIuNDIxNzgsIDIuOTI3OTgiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjg4Mzk3LCAwLjMzODQzLCAwLjc5NTY0MywgMS41NjkxOSwgMi4zNTcyNiwgNC4xNzQ4NiwgNS4xODc2MyIsIFwKLSAgICAgICAgICAiMC4yODg1NDYsIDAuMzM4NDk3LCAwLjc5OTk3MiwgMS41NzE5MywgMi4zNTcxOCwgNC4xNzU4OSwgNS4xODc3NiIsIFwKLSAgICAgICAgICAiMC4yODg0OSwgMC4zMzg0LCAwLjc5OTk0NywgMS41NjkyOCwgMi4zNTcwNSwgNC4xNzQ5LCA1LjE4NzM3IiwgXAotICAgICAgICAgICIwLjI4ODE3MywgMC4zMzc5MjQsIDAuNzk1MjM2LCAxLjU3NDI4LCAyLjM1NzE4LCA0LjE3NTgyLCA1LjIwMDc0IiwgXAotICAgICAgICAgICIwLjI4ODQ5LCAwLjMzODQ1MywgMC43OTk5NDUsIDEuNTY5OTYsIDIuMzU3MDUsIDQuMTc1MTEsIDUuMTg3MzciLCBcCi0gICAgICAgICAgIjAuMjg4NjEzLCAwLjMzNzg4OSwgMC43OTUyNDIsIDEuNTczNDQsIDIuMzU3MTQsIDQuMTc1ODksIDUuMTg3NTUiLCBcCi0gICAgICAgICAgIjAuMjg4NjYzLCAwLjMzNzg5OSwgMC43OTUyNSwgMS41NzM4LCAyLjM1NzEzLCA0LjE3NTg5LCA1LjE5ODExIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjQwMzk1OSwgMC40MzM4OTgsIDAuNzAyNzkyLCAxLjE0NjcyLCAxLjU5NzgxLCAyLjY0MSwgMy4yMzY4NyIsIFwKLSAgICAgICAgICAiMC40MTU2MywgMC40NDUzNjYsIDAuNzE0NDYyLCAxLjE1ODA2LCAxLjYwNjA5LCAyLjY1MjY0LCAzLjI0ODQ4IiwgXAotICAgICAgICAgICIwLjQzMDg0OSwgMC40NjA4NjYsIDAuNzI4NDg2LCAxLjE3NDAxLCAxLjYyNCwgMi42Njc5OSwgMy4yNTY0MyIsIFwKLSAgICAgICAgICAiMC40NDYzNzQsIDAuNDc2MzI1LCAwLjc0NTIwMiwgMS4xODg4NCwgMS42MzYsIDIuNjgzMzMsIDMuMjc5MTciLCBcCi0gICAgICAgICAgIjAuNDYxODE1LCAwLjQ5MTUzMywgMC43NjA2NDMsIDEuMjA0MjksIDEuNjUyMjUsIDIuNjk4ODIsIDMuMjk0NjYiLCBcCi0gICAgICAgICAgIjAuNDg2MTUxLCAwLjUxNjA3MywgMC43ODQ5ODMsIDEuMjI4NjEsIDEuNjc2NzUsIDIuNzIzMTcsIDMuMzE5MDIiLCBcCi0gICAgICAgICAgIjAuNTA3MTY4LCAwLjUzNzExMSwgMC44MDQyNCwgMS4yNTA2NSwgMS43MDA5OSwgMi43NDQyMywgMy4zMjg3NCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMTUyOTcsIDAuMzczNDg2LCAwLjkwMjc2NSwgMS43ODQxNSwgMi42NzA4MiwgNC43MzMsIDUuOTEwNDciLCBcCi0gICAgICAgICAgIjAuMzE1NDQxLCAwLjM3MzQ0OCwgMC45MDI1NTMsIDEuNzgwODUsIDIuNjc0OSwgNC43Mjg0NiwgNS45MTk4NyIsIFwKLSAgICAgICAgICAiMC4zMTUwMDksIDAuMzczNjA4LCAwLjkwMDgzOCwgMS43ODM2NCwgMi42NjkwMiwgNC43Mjk2NSwgNS44OTc4MSIsIFwKLSAgICAgICAgICAiMC4zMTU0NDUsIDAuMzczNTgyLCAwLjkwMjQxNiwgMS43ODEsIDIuNjcwNTgsIDQuNzI4NjYsIDUuOTIwMDgiLCBcCi0gICAgICAgICAgIjAuMzE1NDQyLCAwLjM3MjkwNCwgMC45MDI1NzEsIDEuNzgxNDcsIDIuNjc0ODYsIDQuNzI4NDEsIDUuOTE5ODgiLCBcCi0gICAgICAgICAgIjAuMzE1NDQzLCAwLjM3Mzc0NSwgMC45MDI1NjgsIDEuNzgwMDgsIDIuNjc0OTIsIDQuNzI4NTgsIDUuOTE5ODIiLCBcCi0gICAgICAgICAgIjAuMzE1NDUzLCAwLjM3MzYxMywgMC45MDIxMDMsIDEuNzgxMiwgMi42NzA0NSwgNC43Mjk0MiwgNS44OTc3MiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogY2xlYXI7Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIzMDUwOCwgMC4yNjAyOTUsIDAuNTI4NjA0LCAwLjk3NTYzOCwgMS40MjI3OCwgMi40NjU3NiwgMy4wNjIyMSIsIFwKLSAgICAgICAgICAiMC4yNDIwMjksIDAuMjcxNzcyLCAwLjU0MDEyOSwgMC45ODcwOTQsIDEuNDM0MjksIDIuNDc3MzcsIDMuMDczNzgiLCBcCi0gICAgICAgICAgIjAuMjU2ODQ1LCAwLjI4NjYxNSwgMC41NTQ5MzgsIDEuMDAxMzEsIDEuNDQ5MjIsIDIuNDkyMjMsIDMuMDg4NTciLCBcCi0gICAgICAgICAgIjAuMjcxNTg2LCAwLjMwMTM3OSwgMC41Njk3MzEsIDEuMDE1MTYsIDEuNDY0MDMsIDIuNTA2OTMsIDMuMTAzMzUiLCBcCi0gICAgICAgICAgIjAuMjg2NDU4LCAwLjMxNjIyMywgMC41ODQ1NjUsIDEuMDMxMjUsIDEuNDc4ODksIDIuNTIxNzksIDMuMTE2NjYiLCBcCi0gICAgICAgICAgIjAuMzA5NzE5LCAwLjMzOTUxMSwgMC42MDgwMTEsIDEuMDU0NjMsIDEuNDk5MjIsIDIuNTQ1NTUsIDMuMTQxMTkiLCBcCi0gICAgICAgICAgIjAuMzI5MTE4LCAwLjM1ODkwNywgMC42MjczMDYsIDEuMDc0MDgsIDEuNTIxNTIsIDIuNTY0NTksIDMuMTYwOTMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzE1ODk5LCAwLjM3NDE5MywgMC45MDIzNDMsIDEuNzg4MDcsIDIuNjY2MzksIDQuNzI0OCwgNS45MjE0MSIsIFwKLSAgICAgICAgICAiMC4zMTYyNjYsIDAuMzc0MTg3LCAwLjkwMTk4MSwgMS43ODg1MiwgMi42NzM1MiwgNC43MzAzMSwgNS45MjE0MSIsIFwKLSAgICAgICAgICAiMC4zMTYyMTIsIDAuMzc0MjA1LCAwLjkwMjA4MSwgMS43ODgyMiwgMi42Njc0MSwgNC43MzQxLCA1LjkyMTQyIiwgXAotICAgICAgICAgICIwLjMxNTY4MiwgMC4zNzQxNjEsIDAuOTAyNTk1LCAxLjc4MjYsIDIuNjcxMTYsIDQuNzM0NTksIDUuOTIxMTkiLCBcCi0gICAgICAgICAgIjAuMzE1NzIyLCAwLjM3NDIzMywgMC45MDMwMTcsIDEuNzg4MjgsIDIuNjczMDEsIDQuNzI1NDksIDUuOTIxMTciLCBcCi0gICAgICAgICAgIjAuMzE1Nzc0LCAwLjM3NDI2NywgMC45MDMxMDMsIDEuNzg4NjUsIDIuNjYzNTIsIDQuNzI5MDgsIDUuOTIxNDIiLCBcCi0gICAgICAgICAgIjAuMzE2NDEsIDAuMzc0MjgsIDAuOTAyMzI1LCAxLjc4ODU1LCAyLjY2NzAxLCA0LjcyNTYxLCA1LjkyMTMzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzIzLCAwLjAwMzIzLCAwLjAwMzIyNywgMC4wMDMyMjQsIDAuMDAzMjIzLCAwLjAwMzIyMiwgMC4wMDMyMjIiLCBcCi0gICAgICAgICAgIjAuMDAzMjIzLCAwLjAwMzIyMywgMC4wMDMyMjEsIDAuMDAzMjE4LCAwLjAwMzIxNywgMC4wMDMyMTYsIDAuMDAzMjE2IiwgXAotICAgICAgICAgICIwLjAwMzIxNywgMC4wMDMyMTcsIDAuMDAzMjE1LCAwLjAwMzIxMiwgMC4wMDMyMTEsIDAuMDAzMjEsIDAuMDAzMjA5IiwgXAotICAgICAgICAgICIwLjAwMzIxMywgMC4wMDMyMTMsIDAuMDAzMjEsIDAuMDAzMjA4LCAwLjAwMzIwNiwgMC4wMDMyMDUsIDAuMDAzMjA1IiwgXAotICAgICAgICAgICIwLjAwMzIxLCAwLjAwMzIxLCAwLjAwMzIwNywgMC4wMDMyMDUsIDAuMDAzMjAzLCAwLjAwMzIwMiwgMC4wMDMyMDIiLCBcCi0gICAgICAgICAgIjAuMDAzMjA0LCAwLjAwMzIwNCwgMC4wMDMyMDIsIDAuMDAzMTk5LCAwLjAwMzE5OCwgMC4wMDMxOTYsIDAuMDAzMTk2IiwgXAotICAgICAgICAgICIwLjAwMzIwMiwgMC4wMDMyMDIsIDAuMDAzMTk5LCAwLjAwMzE5NywgMC4wMDMxOTYsIDAuMDAzMTk0LCAwLjAwMzE5NCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzE5MiwgMC4wMDMxOTMsIDAuMDAzMTk1LCAwLjAwMzE5NiwgMC4wMDMxOTYsIDAuMDAzMTk2LCAwLjAwMzE5NiIsIFwKLSAgICAgICAgICAiMC4wMDMxODYsIDAuMDAzMTg3LCAwLjAwMzE4OSwgMC4wMDMxOSwgMC4wMDMxOSwgMC4wMDMxOSwgMC4wMDMxOSIsIFwKLSAgICAgICAgICAiMC4wMDMxOCwgMC4wMDMxODEsIDAuMDAzMTgzLCAwLjAwMzE4NCwgMC4wMDMxODQsIDAuMDAzMTg1LCAwLjAwMzE4NSIsIFwKLSAgICAgICAgICAiMC4wMDMxNzYsIDAuMDAzMTc2LCAwLjAwMzE3OSwgMC4wMDMxOCwgMC4wMDMxOCwgMC4wMDMxOCwgMC4wMDMxOCIsIFwKLSAgICAgICAgICAiMC4wMDMxNzQsIDAuMDAzMTc1LCAwLjAwMzE3NywgMC4wMDMxNzgsIDAuMDAzMTc5LCAwLjAwMzE3OSwgMC4wMDMxNzkiLCBcCi0gICAgICAgICAgIjAuMDAzMTcyLCAwLjAwMzE3MywgMC4wMDMxNzYsIDAuMDAzMTc2LCAwLjAwMzE3NywgMC4wMDMxNzcsIDAuMDAzMTc3IiwgXAotICAgICAgICAgICIwLjAwMzE3NSwgMC4wMDMxNzYsIDAuMDAzMTc4LCAwLjAwMzE3OSwgMC4wMDMxNzksIDAuMDAzMTc5LCAwLjAwMzE4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUk4iOwotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzMzMSwgMC4wMDMzMzEsIDAuMDAzMzMzLCAwLjAwMzMzNCwgMC4wMDMzMzQsIDAuMDAzMzM0LCAwLjAwMzMzNCIsIFwKLSAgICAgICAgICAiMC4wMDMzMjQsIDAuMDAzMzI1LCAwLjAwMzMyNiwgMC4wMDMzMjcsIDAuMDAzMzI3LCAwLjAwMzMyNywgMC4wMDMzMjciLCBcCi0gICAgICAgICAgIjAuMDAzMzE4LCAwLjAwMzMxOSwgMC4wMDMzMjEsIDAuMDAzMzIyLCAwLjAwMzMyMiwgMC4wMDMzMjIsIDAuMDAzMzIyIiwgXAotICAgICAgICAgICIwLjAwMzMxMywgMC4wMDMzMTMsIDAuMDAzMzE2LCAwLjAwMzMxNywgMC4wMDMzMTcsIDAuMDAzMzE3LCAwLjAwMzMxNyIsIFwKLSAgICAgICAgICAiMC4wMDMzMDgsIDAuMDAzMzA5LCAwLjAwMzMxMiwgMC4wMDMzMTMsIDAuMDAzMzE0LCAwLjAwMzMxNCwgMC4wMDMzMTQiLCBcCi0gICAgICAgICAgIjAuMDAzMzAyLCAwLjAwMzMwMywgMC4wMDMzMDcsIDAuMDAzMzA4LCAwLjAwMzMwOCwgMC4wMDMzMDksIDAuMDAzMzA5IiwgXAotICAgICAgICAgICIwLjAwMzI5OCwgMC4wMDMyOTksIDAuMDAzMzAzLCAwLjAwMzMwNCwgMC4wMDMzMDUsIDAuMDAzMzA1LCAwLjAwMzMwNSIpOwotICAgICAgfQotICAgICAgcmlzZV9wb3dlcihzY2FsYXIpIHsKLSAgICAgICAgdmFsdWVzKCIwIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihRTikgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjA3NDM4NTk7Ci0gICAgZnVuY3Rpb24gOiAiUUJJTlQiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5vbl91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcmlzaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjQwMjIyOCwgMC40Mjc0NiwgMC42NTQ2NjgsIDEuMDMzMzQsIDEuNDExOTIsIDIuMjk1NTQsIDIuODAwNDQiLCBcCi0gICAgICAgICAgIjAuNDEzOSwgMC40MzkxMzMsIDAuNjY2MzM4LCAxLjA0NTAyLCAxLjQyMzU5LCAyLjMwNzIzLCAyLjgxMjEyIiwgXAotICAgICAgICAgICIwLjQyOTIwOCwgMC40NTQ0NDQsIDAuNjgxNjczLCAxLjA2MDMxLCAxLjQzOTA1LCAyLjMyMjQ3LCAyLjgyNzIzIiwgXAotICAgICAgICAgICIwLjQ0NDY1NSwgMC40Njk5MDEsIDAuNjk3MDgzLCAxLjA3NTc3LCAxLjQ1NDM1LCAyLjMzNzg5LCAyLjg0Mjg5IiwgXAotICAgICAgICAgICIwLjQ2MDA5MywgMC40ODUzMTQsIDAuNzEyNTE3LCAxLjA5MTIsIDEuNDY5NzcsIDIuMzUzNDEsIDIuODU4MyIsIFwKLSAgICAgICAgICAiMC40ODQ0MjIsIDAuNTA5NjUyLCAwLjczNjg2LCAxLjExNTU0LCAxLjQ5NDEyLCAyLjM3Nzc1LCAyLjg4MjY0IiwgXAotICAgICAgICAgICIwLjUwNTQ0MiwgMC41MzA2NzEsIDAuNzU3OTM3LCAxLjEzNjUyLCAxLjUxNTEzLCAyLjM5ODcyLCAyLjkwMzY2Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI2OTU2OSwgMC4zMjA3ODEsIDAuNzgyNjk4LCAxLjU0OTc1LCAyLjMyMTg4LCA0LjExODAyLCA1LjEzNzc1IiwgXAotICAgICAgICAgICIwLjI2OTU3LCAwLjMyMDI1OCwgMC43ODI2ODgsIDEuNTQ5NzIsIDIuMzIxNjQsIDQuMTE3OTgsIDUuMTM3NTciLCBcCi0gICAgICAgICAgIjAuMjY5MTQ2LCAwLjMyMDgwMywgMC43ODExODIsIDEuNTQ5NywgMi4zMjI3MSwgNC4xMTc5NSwgNS4xMzM3NyIsIFwKLSAgICAgICAgICAiMC4yNjk1OCwgMC4zMjA4NTgsIDAuNzgyNjYzLCAxLjU0OTcyLCAyLjMyMTA0LCA0LjExNzg5LCA1LjEzNzcxIiwgXAotICAgICAgICAgICIwLjI2OTU4MSwgMC4zMjAyNjQsIDAuNzgyNjksIDEuNTQ5NywgMi4zMjE1NCwgNC4xMTc5OCwgNS4xMzc1NyIsIFwKLSAgICAgICAgICAiMC4yNjk1NywgMC4zMjA3NTcsIDAuNzgyNjkxLCAxLjU0OTcxLCAyLjMyMTU3LCA0LjExNzk4LCA1LjEzNzU4IiwgXAotICAgICAgICAgICIwLjI2OTU4NywgMC4zMjA4MTMsIDAuNzgwNDksIDEuNTQ5NDUsIDIuMzIxODksIDQuMTE3OTYsIDUuMTMzMDIiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuNDUzNTkyLCAwLjQ4MzI3OSwgMC43NTA1MTksIDEuMTk2MDcsIDEuNjQxNDIsIDIuNjgwOCwgMy4yNzQ3MyIsIFwKLSAgICAgICAgICAiMC40NjUxMTgsIDAuNDk0ODE0LCAwLjc2MjAyOSwgMS4yMDc2NCwgMS42NTI5MSwgMi42OTIxOSwgMy4yODYyNyIsIFwKLSAgICAgICAgICAiMC40ODA0ODEsIDAuNTEwMTc0LCAwLjc3NzM5MywgMS4yMjMxMSwgMS42NjgyOCwgMi43MDc2MSwgMy4zMDE2MyIsIFwKLSAgICAgICAgICAiMC40OTYwODgsIDAuNTI1Nzg1LCAwLjc5MzA0OSwgMS4yMzg1NiwgMS42ODM5NSwgMi43MjMyMiwgMy4zMTcwOSIsIFwKLSAgICAgICAgICAiMC41MTE0MTIsIDAuNTQxMTA0LCAwLjgwODMyNCwgMS4yNTQwNSwgMS42OTkyMSwgMi43Mzg1MywgMy4zMzI1NiIsIFwKLSAgICAgICAgICAiMC41MzU2MzQsIDAuNTY1MzMxLCAwLjgzMjU5NiwgMS4yNzgxMSwgMS43MjM1LCAyLjc2Mjc3LCAzLjM1Njg2IiwgXAotICAgICAgICAgICIwLjU1NjM3OCwgMC41ODYwNzUsIDAuODUzMzQsIDEuMjk4ODUsIDEuNzQ0MjQsIDIuNzgzNTIsIDMuMzc3MzciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzA4Mzc4LCAwLjM2Njk3NSwgMC44OTYxMjMsIDEuNzc2OTQsIDIuNjU5MzIsIDQuNzE2NzIsIDUuODkwNjIiLCBcCi0gICAgICAgICAgIjAuMzA4Mzg0LCAwLjM2Njg0MSwgMC44OTU5NTMsIDEuNzc2MTIsIDIuNjU5MjQsIDQuNzE2NjEsIDUuODkwNjEiLCBcCi0gICAgICAgICAgIjAuMzA4MzYxLCAwLjM2NjgyMywgMC44OTU4MzcsIDEuNzc2ODEsIDIuNjU4OTcsIDQuNzE2NjMsIDUuODkwMjQiLCBcCi0gICAgICAgICAgIjAuMzA4MTIzLCAwLjM2NzAzMiwgMC44OTYxOTgsIDEuNzc2OCwgMi42NTkxMSwgNC43MTYxMywgNS44ODc2OCIsIFwKLSAgICAgICAgICAiMC4zMDgzNjEsIDAuMzY2ODMxLCAwLjg5NTgzNywgMS43NzY4MiwgMi42NTg5NiwgNC43MTYxNCwgNS44OTAyNCIsIFwKLSAgICAgICAgICAiMC4zMDgxOTcsIDAuMzY3MDMzLCAwLjg5NjE5OSwgMS43NzY5NCwgMi42NTkzOCwgNC43MTY2NCwgNS44OTAzMiIsIFwKLSAgICAgICAgICAiMC4zMDgyMDQsIDAuMzY3MDMzLCAwLjg5NjE5NywgMS43NzY2MSwgMi42NTkzNywgNC43MTY2NiwgNS44ODY4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiBwcmVzZXQ7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIyNzc5NywgMC4yNTMwMjcsIDAuNDgwMjEzLCAwLjg1ODgwOCwgMS4yMzc0MiwgMi4xMjEwMSwgMi42MjU4MyIsIFwKLSAgICAgICAgICAiMC4yMzkzMTUsIDAuMjY0NTQ3LCAwLjQ5MTczMiwgMC44NzAzNDEsIDEuMjQ5MDQsIDIuMTMyNTIsIDIuNjM3MzQiLCBcCi0gICAgICAgICAgIjAuMjU0MTE1LCAwLjI3OTM0OCwgMC41MDY1MzMsIDAuODg1MTI4LCAxLjI2Mzc0LCAyLjE0NzMxLCAyLjY1MjE0IiwgXAotICAgICAgICAgICIwLjI2ODg2LCAwLjI5NDA5NCwgMC41MjEyNzUsIDAuODk5ODY5LCAxLjI3ODQ5LCAyLjE2MjA4LCAyLjY2NjkyIiwgXAotICAgICAgICAgICIwLjI4MzY5NCwgMC4zMDg5MjYsIDAuNTM2MTE1LCAwLjkxNDc5MywgMS4yOTMzMiwgMi4xNzY5MSwgMi42ODE5OSIsIFwKLSAgICAgICAgICAiMC4zMDY5NTIsIDAuMzMyMTg1LCAwLjU1OTMzNywgMC45MzgwMzksIDEuMzE2NTgsIDIuMjAwMDYsIDIuNzA1MDUiLCBcCi0gICAgICAgICAgIjAuMzI2MjQ2LCAwLjM1MTQ3LCAwLjU3ODY1NCwgMC45NTczMTksIDEuMzM1ODcsIDIuMjE5NDUsIDIuNzI0MzEiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjY4NjgxLCAwLjMxOTg5MSwgMC43ODE1NDksIDEuNTUxMjUsIDIuMzIxMDIsIDQuMTE2NDgsIDUuMTM2OTkiLCBcCi0gICAgICAgICAgIjAuMjY4NjgzLCAwLjMxOTkyNywgMC43ODE1NSwgMS41NTEwMiwgMi4zMjEwNiwgNC4xMTY1OCwgNS4xMzY4MiIsIFwKLSAgICAgICAgICAiMC4yNjg2NDgsIDAuMzE5ODg4LCAwLjc4MTU1LCAxLjU1MDM3LCAyLjMyMTAyLCA0LjExNjU1LCA1LjEzNjgzIiwgXAotICAgICAgICAgICIwLjI2ODY5NywgMC4zMTk4OTMsIDAuNzgxNTE1LCAxLjU0OTQyLCAyLjMyMTA2LCA0LjExNjQ0LCA1LjEzNjgiLCBcCi0gICAgICAgICAgIjAuMjY4NTk5LCAwLjMxOTg4OSwgMC43ODE1NDUsIDEuNTUwNzEsIDIuMzIxMDYsIDQuMTE2NDQsIDUuMTM2NjciLCBcCi0gICAgICAgICAgIjAuMjY4Njg1LCAwLjMxOTg5MSwgMC43ODE2MDQsIDEuNTUwODMsIDIuMzE5NzQsIDQuMTE2ODYsIDUuMTM2NzMiLCBcCi0gICAgICAgICAgIjAuMjY4NjYxLCAwLjMxOTg3NCwgMC43ODE1MTMsIDEuNTUwNjksIDIuMzIxMDYsIDQuMTE3LCA1LjEzNjk5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzE5MiwgMC4wMDMxOTMsIDAuMDAzMTk1LCAwLjAwMzE5NiwgMC4wMDMxOTYsIDAuMDAzMTk2LCAwLjAwMzE5NiIsIFwKLSAgICAgICAgICAiMC4wMDMxODYsIDAuMDAzMTg3LCAwLjAwMzE4OSwgMC4wMDMxOSwgMC4wMDMxOSwgMC4wMDMxOSwgMC4wMDMxOSIsIFwKLSAgICAgICAgICAiMC4wMDMxOCwgMC4wMDMxODEsIDAuMDAzMTgzLCAwLjAwMzE4NCwgMC4wMDMxODQsIDAuMDAzMTg1LCAwLjAwMzE4NSIsIFwKLSAgICAgICAgICAiMC4wMDMxNzYsIDAuMDAzMTc2LCAwLjAwMzE3OSwgMC4wMDMxOCwgMC4wMDMxOCwgMC4wMDMxOCwgMC4wMDMxOCIsIFwKLSAgICAgICAgICAiMC4wMDMxNzQsIDAuMDAzMTc1LCAwLjAwMzE3NywgMC4wMDMxNzgsIDAuMDAzMTc5LCAwLjAwMzE3OSwgMC4wMDMxNzkiLCBcCi0gICAgICAgICAgIjAuMDAzMTcyLCAwLjAwMzE3MywgMC4wMDMxNzYsIDAuMDAzMTc2LCAwLjAwMzE3NywgMC4wMDMxNzcsIDAuMDAzMTc3IiwgXAotICAgICAgICAgICIwLjAwMzE3NSwgMC4wMDMxNzYsIDAuMDAzMTc4LCAwLjAwMzE3OSwgMC4wMDMxNzksIDAuMDAzMTc5LCAwLjAwMzE4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzMjMsIDAuMDAzMjMsIDAuMDAzMjI3LCAwLjAwMzIyNCwgMC4wMDMyMjMsIDAuMDAzMjIyLCAwLjAwMzIyMiIsIFwKLSAgICAgICAgICAiMC4wMDMyMjMsIDAuMDAzMjIzLCAwLjAwMzIyMSwgMC4wMDMyMTgsIDAuMDAzMjE3LCAwLjAwMzIxNiwgMC4wMDMyMTYiLCBcCi0gICAgICAgICAgIjAuMDAzMjE3LCAwLjAwMzIxNywgMC4wMDMyMTUsIDAuMDAzMjEyLCAwLjAwMzIxMSwgMC4wMDMyMSwgMC4wMDMyMDkiLCBcCi0gICAgICAgICAgIjAuMDAzMjEzLCAwLjAwMzIxMywgMC4wMDMyMSwgMC4wMDMyMDgsIDAuMDAzMjA2LCAwLjAwMzIwNSwgMC4wMDMyMDUiLCBcCi0gICAgICAgICAgIjAuMDAzMjEsIDAuMDAzMjEsIDAuMDAzMjA3LCAwLjAwMzIwNSwgMC4wMDMyMDMsIDAuMDAzMjAyLCAwLjAwMzIwMiIsIFwKLSAgICAgICAgICAiMC4wMDMyMDQsIDAuMDAzMjA0LCAwLjAwMzIwMiwgMC4wMDMxOTksIDAuMDAzMTk4LCAwLjAwMzE5NiwgMC4wMDMxOTYiLCBcCi0gICAgICAgICAgIjAuMDAzMjAyLCAwLjAwMzIwMiwgMC4wMDMxOTksIDAuMDAzMTk3LCAwLjAwMzE5NiwgMC4wMDMxOTQsIDAuMDAzMTk0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUk4iOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzMzMSwgMC4wMDMzMzEsIDAuMDAzMzMzLCAwLjAwMzMzNCwgMC4wMDMzMzQsIDAuMDAzMzM0LCAwLjAwMzMzNCIsIFwKLSAgICAgICAgICAiMC4wMDMzMjQsIDAuMDAzMzI1LCAwLjAwMzMyNiwgMC4wMDMzMjcsIDAuMDAzMzI3LCAwLjAwMzMyNywgMC4wMDMzMjciLCBcCi0gICAgICAgICAgIjAuMDAzMzE4LCAwLjAwMzMxOSwgMC4wMDMzMjEsIDAuMDAzMzIyLCAwLjAwMzMyMiwgMC4wMDMzMjIsIDAuMDAzMzIyIiwgXAotICAgICAgICAgICIwLjAwMzMxMywgMC4wMDMzMTMsIDAuMDAzMzE2LCAwLjAwMzMxNywgMC4wMDMzMTcsIDAuMDAzMzE3LCAwLjAwMzMxNyIsIFwKLSAgICAgICAgICAiMC4wMDMzMDgsIDAuMDAzMzA5LCAwLjAwMzMxMiwgMC4wMDMzMTMsIDAuMDAzMzE0LCAwLjAwMzMxNCwgMC4wMDMzMTQiLCBcCi0gICAgICAgICAgIjAuMDAzMzAyLCAwLjAwMzMwMywgMC4wMDMzMDcsIDAuMDAzMzA4LCAwLjAwMzMwOCwgMC4wMDMzMDksIDAuMDAzMzA5IiwgXAotICAgICAgICAgICIwLjAwMzI5OCwgMC4wMDMyOTksIDAuMDAzMzAzLCAwLjAwMzMwNCwgMC4wMDMzMDUsIDAuMDAzMzA1LCAwLjAwMzMwNSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihzY2FsYXIpIHsKLSAgICAgICAgdmFsdWVzKCIwIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihSTikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNDkyMTk7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNDE1Mjk7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNDkyMTk7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzMxLCAwLjAwMDMzLCAwLjAwMDMzLCAwLjAwMDMzLCAwLjAwMDMzLCAwLjAwMDMzLCAwLjAwMDMzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzM0LCAwLjAwMDMzMiwgMC4wMDAzMzEsIDAuMDAwMzMyLCAwLjAwMDMzMiwgMC4wMDAzMzIsIDAuMDAwMzMyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRCI7Ci0gICAgICBzZGZfY29uZCA6ICJEID09IDEnYjAiOwotICAgICAgZmFsbF9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMjMwNTA4LCAwLjI0MTk0OCwgMC4yNTY4NDQsIDAuMjcxNTg0LCAwLjI4NjQ1NywgMC4zMDk3MTksIDAuMzI5MTE3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogcmVjb3ZlcnlfcmlzaW5nOwotICAgICAgd2hlbiA6ICJEIjsKLSAgICAgIHNkZl9jb25kIDogIkQgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQocmVjb3ZlcnlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjA3NSwgLTAuMDg2MjUsIC0wLjA5ODc1LCAtMC4xMTc1LCAtMC4xMywgLTAuMTU4NzUsIC0wLjE4IiwgXAotICAgICAgICAgICItMC4wODI1LCAtMC4wOTM3NSwgLTAuMTEyNSwgLTAuMTI1LCAtMC4xNDM3NSwgLTAuMTY2MjUsIC0wLjE4NzUiLCBcCi0gICAgICAgICAgIi0wLjA4ODc1LCAtMC4xLCAtMC4xMTg3NSwgLTAuMTMxMjUsIC0wLjE1LCAtMC4xNzI1LCAtMC4xOTM3NSIsIFwKLSAgICAgICAgICAiLTAuMDk1LCAtMC4xMDYyNSwgLTAuMTE4NzUsIC0wLjEzNzUsIC0wLjE1LCAtMC4xNzg3NSwgLTAuMiIsIFwKLSAgICAgICAgICAiLTAuMDg4NzUsIC0wLjEsIC0wLjExODc1LCAtMC4xMzEyNSwgLTAuMTUsIC0wLjE3MjUsIC0wLjE5Mzc1IiwgXAotICAgICAgICAgICItMC4wNzI1LCAtMC4wODM3NSwgLTAuMTAyNSwgLTAuMTIxMjUsIC0wLjEzMzc1LCAtMC4xNjI1LCAtMC4xODM3NSIsIFwKLSAgICAgICAgICAiLTAuMDUxMjUsIC0wLjA2MjUsIC0wLjA4MTI1LCAtMC4xLCAtMC4xMTI1LCAtMC4xNDEyNSwgLTAuMTYyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJlbW92YWxfcmlzaW5nOwotICAgICAgd2hlbiA6ICJEIjsKLSAgICAgIHNkZl9jb25kIDogIkQgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQocmVtb3ZhbF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTI1LCAwLjEyMzc1LCAwLjE0MjUsIDAuMTU1LCAwLjE3Mzc1LCAwLjE5NjI1LCAwLjIxNzUiLCBcCi0gICAgICAgICAgIjAuMTIsIDAuMTMxMjUsIDAuMTUsIDAuMTYyNSwgMC4xODEyNSwgMC4yMDM3NSwgMC4yMjUiLCBcCi0gICAgICAgICAgIjAuMTMyNSwgMC4xNDM3NSwgMC4xNjI1LCAwLjE3NSwgMC4xOTM3NSwgMC4yMTYyNSwgMC4yMzc1IiwgXAotICAgICAgICAgICIwLjE0NSwgMC4xNTYyNSwgMC4xNjg3NSwgMC4xODc1LCAwLjIsIDAuMjI4NzUsIDAuMjQzNzUiLCBcCi0gICAgICAgICAgIjAuMTUxMjUsIDAuMTY4NzUsIDAuMTgxMjUsIDAuMTkzNzUsIDAuMjEyNSwgMC4yMzUsIDAuMjU2MjUiLCBcCi0gICAgICAgICAgIjAuMTcyNSwgMC4xODM3NSwgMC4xOTYyNSwgMC4yMDg3NSwgMC4yMjc1LCAwLjI1LCAwLjI3MTI1IiwgXAotICAgICAgICAgICIwLjE4MjUsIDAuMTkzNzUsIDAuMjA2MjUsIDAuMjI1LCAwLjIzNzUsIDAuMjYsIDAuMjgxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogREZGU0hRWDIgKgotICogLS0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKERGRlNIUVgyKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMzI4MTE4OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIGZmIChOMzUsUUJJTlQpIHsKLSAgICBuZXh0X3N0YXRlIDogIkQiOwotICAgIGNsb2NrZWRfb24gOiAiQ0siOwotICAgIHByZXNldCA6ICIoIVNOKSI7Ci0gIH0KLSAgcGluKENLKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA1OTY3OTM7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNTk2NTE3OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDU5Njc5MzsKLSAgICBjbG9jayA6IHRydWU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyNDY1LCAwLjAwMjQ1MywgMC4wMDI0NDQsIDAuMDAyNDM3LCAwLjAwMjQzMiwgMC4wMDI0MjUsIDAuMDAyNDIyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA2Njc1LCAwLjAwNjY2NSwgMC4wMDY2NTYsIDAuMDA2NjQ3LCAwLjAwNjY0LCAwLjAwNjYyOSwgMC4wMDY2MjQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFEJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMjk5ODQzLCAwLjMxMTQ3MiwgMC4zMjY3MDMsIDAuMzQyMjI5LCAwLjM1NzYzMSwgMC4zODIwNzcsIDAuNDAzMiIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMjQ2MjExLCAwLjI1NzgwNiwgMC4yNzI3NTcsIDAuMjg3NTM2LCAwLjMwMjMyOCwgMC4zMjUyNjMsIDAuMzQ0ODgiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEQpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDc0NTE3NDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA3NDIzMDI7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNzQ1MTc0OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjgyNSwgMC4wMDI4MDgsIDAuMDAyNzk3LCAwLjAwMjc4OSwgMC4wMDI3ODQsIDAuMDAyNzc0LCAwLjAwMjc2OCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzA2OSwgMC4wMDMwNjEsIDAuMDAzMDU1LCAwLjAwMzA1LCAwLjAwMzA0NSwgMC4wMDMwNDEsIDAuMDAzMDM4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlNOIjsKLSAgICAgIHNkZl9jb25kIDogIlNOID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAzNzUsIC0wLjAyNjI1LCAtMC4wMTM3NSwgLTAuMDA3NSwgMC4wMDUsIDAuMDIxMjUsIDAuMDM2MjUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMDYyNSwgMC4wMSwgMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjA2MTI1LCAtMC4wNSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAxODc1LCAtMC4wMDI1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjA3Mzc1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDQzNzUsIC0wLjAzMTI1LCAtMC4wMTUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wODYyNSwgLTAuMDgxMjUsIC0wLjA2ODc1LCAtMC4wNTYyNSwgLTAuMDQzNzUsIC0wLjAyNzUsIC0wLjAxODc1IiwgXAotICAgICAgICAgICItMC4xMDg3NSwgLTAuMDk3NSwgLTAuMDg1LCAtMC4wNzg3NSwgLTAuMDY2MjUsIC0wLjA1LCAtMC4wMzUiLCBcCi0gICAgICAgICAgIi0wLjEyMzc1LCAtMC4xMTg3NSwgLTAuMTA2MjUsIC0wLjA5Mzc1LCAtMC4wODEyNSwgLTAuMDY1LCAtMC4wNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDYyNSwgMC4wNzM3NSwgMC4wODYyNSwgMC4xMDUsIDAuMTE3NSwgMC4xNCwgMC4xNjEyNSIsIFwKLSAgICAgICAgICAiMC4wNTEyNSwgMC4wNjI1LCAwLjA3NSwgMC4wODc1LCAwLjEwNjI1LCAwLjEyODc1LCAwLjE1IiwgXAotICAgICAgICAgICIwLjAzMjUsIDAuMDUsIDAuMDYyNSwgMC4wNzUsIDAuMDkzNzUsIDAuMTE2MjUsIDAuMTM3NSIsIFwKLSAgICAgICAgICAiMC4wMjYyNSwgMC4wMzc1LCAwLjA1LCAwLjA2MjUsIDAuMDgxMjUsIDAuMTAzNzUsIDAuMTI1IiwgXAotICAgICAgICAgICIwLjAxMzc1LCAwLjAyNSwgMC4wMzc1LCAwLjA1NjI1LCAwLjA2ODc1LCAwLjA5MTI1LCAwLjExMjUiLCBcCi0gICAgICAgICAgIjAuMDAzNzUsIDAuMDE1LCAwLjAyNzUsIDAuMDQsIDAuMDUyNSwgMC4wODEyNSwgMC4xMDI1IiwgXAotICAgICAgICAgICItMC4wMTEyNSwgMCwgMC4wMTI1LCAwLjAzMTI1LCAwLjA0Mzc1LCAwLjA2NjI1LCAwLjA4NzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlNOIjsKLSAgICAgIHNkZl9jb25kIDogIlNOID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5Mzc1LCAwLjA3NjI1LCAwLjA2Mzc1LCAwLjA1MTI1LCAwLjAzODc1LCAwLjAyMjUsIDAuMDA3NSIsIFwKLSAgICAgICAgICAiMC4xMDUsIDAuMDg3NSwgMC4wNzUsIDAuMDYyNSwgMC4wNSwgMC4wMzM3NSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4xMTc1LCAwLjEsIDAuMDg3NSwgMC4wNzUsIDAuMDYyNSwgMC4wNDYyNSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4xMywgMC4xMTg3NSwgMC4xLCAwLjA4NzUsIDAuMDc1LCAwLjA1ODc1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjE0MjUsIDAuMTMxMjUsIDAuMTEyNSwgMC4xLCAwLjA4NzUsIDAuMDcxMjUsIDAuMDYyNSIsIFwKLSAgICAgICAgICAiMC4xNjUsIDAuMTQ3NSwgMC4xMzUsIDAuMTIyNSwgMC4xMSwgMC4wOTM3NSwgMC4wNzg3NSIsIFwKLSAgICAgICAgICAiMC4xOCwgMC4xNjg3NSwgMC4xNTYyNSwgMC4xMzc1LCAwLjEyNSwgMC4xMDg3NSwgMC4xIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDgxMjUsIDAuMDcsIDAuMDUxMjUsIDAuMDMyNSwgMC4wMiwgLTAuMDA4NzUsIC0wLjAzIiwgXAotICAgICAgICAgICIwLjA5MjUsIDAuMDgxMjUsIDAuMDYyNSwgMC4wNDM3NSwgMC4wMzEyNSwgMC4wMDI1LCAtMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4xMDUsIDAuMDkzNzUsIDAuMDc1LCAwLjA2MjUsIDAuMDQzNzUsIDAuMDE1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiMC4xMTc1LCAwLjEwNjI1LCAwLjA4NzUsIDAuMDY4NzUsIDAuMDU2MjUsIDAuMDI3NSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiMC4xMywgMC4xMTg3NSwgMC4xLCAwLjA4MTI1LCAwLjA2ODc1LCAwLjA0LCAwLjAxODc1IiwgXAotICAgICAgICAgICIwLjE0NjI1LCAwLjEzNSwgMC4xMTYyNSwgMC4xMDM3NSwgMC4wODUsIDAuMDU2MjUsIDAuMDM1IiwgXAotICAgICAgICAgICIwLjE2MTI1LCAwLjE1LCAwLjEzNzUsIDAuMTE4NzUsIDAuMSwgMC4wNzc1LCAwLjA1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihRKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMjQ4NjU2OwotICAgIGZ1bmN0aW9uIDogIk4zNSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3NlbnNlIDogbm9uX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiByaXNpbmdfZWRnZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjM5OTc0LCAwLjQxODYxMSwgMC41NjEwMjUsIDAuNzM5MDcxLCAwLjkxNzA0NSwgMS4wOTQ5OCwgMS4yNzMwMSIsIFwKLSAgICAgICAgICAiMC4yNTE2OTIsIDAuNDMwMzQyLCAwLjU3MjgwMiwgMC43NTA4MjMsIDAuOTI4NzczLCAxLjEwNjc2LCAxLjI4NDcxIiwgXAotICAgICAgICAgICIwLjI2Njc5LCAwLjQ0NTQ0LCAwLjU4Nzg0NSwgMC43NjU5MjYsIDAuOTQzODY5LCAxLjEyMTgzLCAxLjI5OTc3IiwgXAotICAgICAgICAgICIwLjI4MjI1NiwgMC40NjA5MjcsIDAuNjAzMzExLCAwLjc4MTM5MSwgMC45NTkzMzQsIDEuMTM3MywgMS4zMTUyMyIsIFwKLSAgICAgICAgICAiMC4yOTc2ODYsIDAuNDc2MzI2LCAwLjYxODc0NSwgMC43OTY4MywgMC45NzQ3NiwgMS4xNTI3MywgMS4zMzA2OCIsIFwKLSAgICAgICAgICAiMC4zMjE5NTgsIDAuNTAwNjA3LCAwLjY0MzAxMywgMC44MjEwOTQsIDAuOTk5MDM3LCAxLjE3NzAxLCAxLjM1NDk0IiwgXAotICAgICAgICAgICIwLjM0MzA2NCwgMC41MjE3MTMsIDAuNjY0MTE5LCAwLjg0MjIsIDEuMDIwMTQsIDEuMTk4MTEsIDEuMzc2MDQiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg5OTE3LCAwLjQ0NjM2LCAwLjczNzAyMSwgMS4xMDAyNSwgMS40NjMxMiwgMS44MjU3NCwgMi4xODg5NyIsIFwKLSAgICAgICAgICAiMC4wODk5MzMsIDAuNDQ3MDQzLCAwLjczNzMyOCwgMS4xMDAzNCwgMS40NjMwNSwgMS44MjYsIDIuMTg1MiIsIFwKLSAgICAgICAgICAiMC4wODk5MTcsIDAuNDQ3MTU1LCAwLjczNzAzNCwgMS4wOTczLCAxLjQ2MzEsIDEuODI1OTIsIDIuMTg4NTQiLCBcCi0gICAgICAgICAgIjAuMDg5OTEzLCAwLjQ0NzI1LCAwLjczNzAzLCAxLjA5NzMxLCAxLjQ2MzEsIDEuODI1OTMsIDIuMTg4NDkiLCBcCi0gICAgICAgICAgIjAuMDg5OTMyLCAwLjQ0NzA0NiwgMC43MzcwMjQsIDEuMDk3MywgMS40NjMwNSwgMS44MjU4OSwgMi4xODUxNyIsIFwKLSAgICAgICAgICAiMC4wODk5MjMsIDAuNDQ3MTU0LCAwLjczNzAzMSwgMS4wOTczLCAxLjQ2MzEsIDEuODI1OTMsIDIuMTg4NTIiLCBcCi0gICAgICAgICAgIjAuMDg5OTIsIDAuNDQ3MTU2LCAwLjczNzAzNCwgMS4wOTczLCAxLjQ2MzExLCAxLjgyNTkyLCAyLjE4ODUzIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI5OTg0MywgMC41MDY2NTQsIDAuNjcxNTI2LCAwLjg3NzU2NSwgMS4wODM2OSwgMS4yODk3LCAxLjQ5NTgzIiwgXAotICAgICAgICAgICIwLjMxMTQ3MiwgMC41MTgyODcsIDAuNjgzMTM1LCAwLjg4OTIxNCwgMS4wOTUzMywgMS4zMDEzNywgMS41MDc0NSIsIFwKLSAgICAgICAgICAiMC4zMjY3MDMsIDAuNTMzNDk1LCAwLjY5ODM2MiwgMC45MDQ0NDgsIDEuMTEwNTUsIDEuMzE2NjUsIDEuNTIyNjkiLCBcCi0gICAgICAgICAgIjAuMzQyMjI5LCAwLjU0OTA1MSwgMC43MTM5MDUsIDAuOTE5OTc2LCAxLjEyNjIyLCAxLjMzMjE0LCAxLjUzODM2IiwgXAotICAgICAgICAgICIwLjM1NzYzMSwgMC41NjQ0NTksIDAuNzI5MzE2LCAwLjkzNTM3LCAxLjE0MTQ4LCAxLjM0NzUyLCAxLjU1MzY1IiwgXAotICAgICAgICAgICIwLjM4MjA3NywgMC41ODg5MDIsIDAuNzUzNzYsIDAuOTU5ODExLCAxLjE2NTkzLCAxLjM3MjAyLCAxLjU3ODE0IiwgXAotICAgICAgICAgICIwLjQwMzIsIDAuNjA5OTk5LCAwLjc3NDg3MiwgMC45ODA5NDIsIDEuMTg3MDUsIDEuMzkzMDksIDEuNTk5MTgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk5NTg3LCAwLjUwNTYyNSwgMC44MzU1MTMsIDEuMjQ3MjgsIDEuNjU1OTksIDIuMDcwNzcsIDIuNDc3MzkiLCBcCi0gICAgICAgICAgIjAuMDk5NTk3LCAwLjUwNTYxMiwgMC44MzM0NDksIDEuMjQ1NjYsIDEuNjU2NCwgMi4wNjU1OCwgMi40NzkxNiIsIFwKLSAgICAgICAgICAiMC4wOTk2ODUsIDAuNTA1MTY0LCAwLjgzNTQ4OCwgMS4yNDU1MiwgMS42NTU1MywgMi4wNjM5OSwgMi40ODEwNSIsIFwKLSAgICAgICAgICAiMC4wOTk1OSwgMC41MDU1NCwgMC44MzU1ODYsIDEuMjQ0MDUsIDEuNjU0MjgsIDIuMDY4MTUsIDIuNDc2MzMiLCBcCi0gICAgICAgICAgIjAuMDk5NiwgMC41MDQ4MzEsIDAuODM1NDk5LCAxLjI0NzM4LCAxLjY1NTA3LCAyLjA3MDM2LCAyLjQ3NTAyIiwgXAotICAgICAgICAgICIwLjA5OTY4LCAwLjUwNTAxLCAwLjgzMzAyMSwgMS4yNDczNiwgMS42NTUxNSwgMi4wNjQ2NCwgMi40ODAyMSIsIFwKLSAgICAgICAgICAiMC4wOTk2NzUsIDAuNTA1OTIzLCAwLjgzNDczMiwgMS4yNDU1NSwgMS42NTY1MSwgMi4wNjU2LCAyLjQ4MDEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiU04iOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHByZXNldDsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjA0MTEyLCAwLjM4MjcyMSwgMC41MjUyMDIsIDAuNzAzMTIyLCAwLjg4MTEwMiwgMS4wNTkxLCAxLjIzNzA3IiwgXAotICAgICAgICAgICIwLjIxNTYxMSwgMC4zOTQyODcsIDAuNTM2NzM2LCAwLjcxNDY5MywgMC44OTI2OTEsIDEuMDcwNjYsIDEuMjQ4NjciLCBcCi0gICAgICAgICAgIjAuMjMwNDExLCAwLjQwODk4MywgMC41NTE0MywgMC43MjkzODksIDAuOTA3Mzg4LCAxLjA4NTM2LCAxLjI2MzM1IiwgXAotICAgICAgICAgICIwLjI0NDU2OCwgMC40MjMyNDUsIDAuNTY1Njk1LCAwLjc0MzY1LCAwLjkyMTY0OCwgMS4wOTk2MiwgMS4yNzc3NCIsIFwKLSAgICAgICAgICAiMC4yNTkyNTgsIDAuNDM3ODMsIDAuNTgwMjc4LCAwLjc1ODIzNywgMC45MzYyMzYsIDEuMTE0MiwgMS4yOTIyIiwgXAotICAgICAgICAgICIwLjI4MjA2NCwgMC40NjA3NDQsIDAuNjAzMTk4LCAwLjc4MTE0OCwgMC45NTkxNDIsIDEuMTM3MTIsIDEuMzE1MDciLCBcCi0gICAgICAgICAgIjAuMzAxMzk1LCAwLjQ4MDA3LCAwLjYyMjUyNywgMC44MDA0NzIsIDAuOTc4NDYzLCAxLjE1NjQ1LCAxLjMzNDQ4Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4OTQ4NiwgMC40NDY5ODcsIDAuNzM3MTcsIDEuMDk5OTYsIDEuNDYyNjksIDEuODI2MiwgMi4xODUyNCIsIFwKLSAgICAgICAgICAiMC4wODk0NjMsIDAuNDQ3MjQ1LCAwLjczNzI1NSwgMS4wOTk0OCwgMS40NjA2NCwgMS44MjU4NywgMi4xODg3NCIsIFwKLSAgICAgICAgICAiMC4wODk1MywgMC40NDcwNTksIDAuNzM3MjU0LCAxLjA5OTQzLCAxLjQ2MDY2LCAxLjgyMjg4LCAyLjE4NTUxIiwgXAotICAgICAgICAgICIwLjA4OTQ0MywgMC40NDcyNjgsIDAuNzM3MjQ5LCAxLjA5OTU5LCAxLjQ2MDYsIDEuODIyODcsIDIuMTg1NDYiLCBcCi0gICAgICAgICAgIjAuMDg5NTMsIDAuNDQ2OTI0LCAwLjczNzI0MiwgMS4wOTkyOSwgMS40NjA3OCwgMS44MjU3MSwgMi4xODU0NSIsIFwKLSAgICAgICAgICAiMC4wODk0NjQsIDAuNDQ2OTM2LCAwLjczNzIzLCAxLjA5OTc4LCAxLjQ2Mjk2LCAxLjgyMzI0LCAyLjE4ODc0IiwgXAotICAgICAgICAgICIwLjA4OTQ4OSwgMC40NDcwNjksIDAuNzM3MjIsIDEuMDk5NzgsIDEuNDYwNTMsIDEuODI2MDcsIDIuMTg1NzQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2NjE1LCAwLjAwNjY1MSwgMC4wMDY2NTQsIDAuMDA2NjU2LCAwLjAwNjY1NywgMC4wMDY2NTgsIDAuMDA2NjU4IiwgXAotICAgICAgICAgICIwLjAwNjYwMiwgMC4wMDY2MzgsIDAuMDA2NjQyLCAwLjAwNjY0MywgMC4wMDY2NDQsIDAuMDA2NjQ2LCAwLjAwNjY0NSIsIFwKLSAgICAgICAgICAiMC4wMDY1OSwgMC4wMDY2MjYsIDAuMDA2NjI5LCAwLjAwNjYzMSwgMC4wMDY2MzMsIDAuMDA2NjMzLCAwLjAwNjYzNCIsIFwKLSAgICAgICAgICAiMC4wMDY1ODEsIDAuMDA2NjE2LCAwLjAwNjYyLCAwLjAwNjYyMiwgMC4wMDY2MjMsIDAuMDA2NjI0LCAwLjAwNjYyNSIsIFwKLSAgICAgICAgICAiMC4wMDY1NzQsIDAuMDA2NjEsIDAuMDA2NjE0LCAwLjAwNjYxNiwgMC4wMDY2MTcsIDAuMDA2NjE4LCAwLjAwNjYxOCIsIFwKLSAgICAgICAgICAiMC4wMDY1NjIsIDAuMDA2NTk3LCAwLjAwNjYwMSwgMC4wMDY2MDMsIDAuMDA2NjA0LCAwLjAwNjYwNSwgMC4wMDY2MDUiLCBcCi0gICAgICAgICAgIjAuMDA2NTU2LCAwLjAwNjU5MSwgMC4wMDY1OTUsIDAuMDA2NTk3LCAwLjAwNjU5OSwgMC4wMDY1OTgsIDAuMDA2NTk5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2NDMzLCAwLjAwNjQ4NiwgMC4wMDY0OTMsIDAuMDA2NDk2LCAwLjAwNjQ5OCwgMC4wMDY0OTksIDAuMDA2NSIsIFwKLSAgICAgICAgICAiMC4wMDY0MjEsIDAuMDA2NDc1LCAwLjAwNjQ4MSwgMC4wMDY0ODUsIDAuMDA2NDg2LCAwLjAwNjQ4NywgMC4wMDY0ODgiLCBcCi0gICAgICAgICAgIjAuMDA2NDA4LCAwLjAwNjQ2MiwgMC4wMDY0NjksIDAuMDA2NDcyLCAwLjAwNjQ3NCwgMC4wMDY0NzUsIDAuMDA2NDc2IiwgXAotICAgICAgICAgICIwLjAwNjQwMiwgMC4wMDY0NTUsIDAuMDA2NDYyLCAwLjAwNjQ2NSwgMC4wMDY0NjYsIDAuMDA2NDY4LCAwLjAwNjQ2OCIsIFwKLSAgICAgICAgICAiMC4wMDYzOTYsIDAuMDA2NDUsIDAuMDA2NDU3LCAwLjAwNjQ2MSwgMC4wMDY0NjIsIDAuMDA2NDYzLCAwLjAwNjQ2NCIsIFwKLSAgICAgICAgICAiMC4wMDYzOTMsIDAuMDA2NDQ3LCAwLjAwNjQ1NCwgMC4wMDY0NTcsIDAuMDA2NDU5LCAwLjAwNjQ2LCAwLjAwNjQ2MSIsIFwKLSAgICAgICAgICAiMC4wMDYzOTksIDAuMDA2NDUzLCAwLjAwNjQ2LCAwLjAwNjQ2MywgMC4wMDY0NjUsIDAuMDA2NDY2LCAwLjAwNjQ2NyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDc2MjMsIDAuMDA3NjYsIDAuMDA3NjYzLCAwLjAwNzY2NiwgMC4wMDc2NjgsIDAuMDA3NjY3LCAwLjAwNzY2NyIsIFwKLSAgICAgICAgICAiMC4wMDc2MDIsIDAuMDA3NjM4LCAwLjAwNzY0MiwgMC4wMDc2NDQsIDAuMDA3NjQ1LCAwLjAwNzY0NSwgMC4wMDc2NDYiLCBcCi0gICAgICAgICAgIjAuMDA3NTg2LCAwLjAwNzYyMiwgMC4wMDc2MjYsIDAuMDA3NjI4LCAwLjAwNzYyOSwgMC4wMDc2MywgMC4wMDc2MzEiLCBcCi0gICAgICAgICAgIjAuMDA3NTcxLCAwLjAwNzYwOCwgMC4wMDc2MTIsIDAuMDA3NjEzLCAwLjAwNzYxNCwgMC4wMDc2MTUsIDAuMDA3NjE1IiwgXAotICAgICAgICAgICIwLjAwNzU1OCwgMC4wMDc1OTQsIDAuMDA3NTk5LCAwLjAwNzYsIDAuMDA3NjAxLCAwLjAwNzYwMiwgMC4wMDc2MDMiLCBcCi0gICAgICAgICAgIjAuMDA3NTQxLCAwLjAwNzU3OCwgMC4wMDc1ODIsIDAuMDA3NTgzLCAwLjAwNzU4NSwgMC4wMDc1ODUsIDAuMDA3NTg1IiwgXAotICAgICAgICAgICIwLjAwNzUzLCAwLjAwNzU2NywgMC4wMDc1NzEsIDAuMDA3NTczLCAwLjAwNzU3NCwgMC4wMDc1NzQsIDAuMDA3NTc2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHNjYWxhcikgewotICAgICAgICB2YWx1ZXMoIjAiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFNOKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE3MTUzNzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE1OTM4ODsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE3MTUzNzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA0ODUsIDAuMDAwNDg0LCAwLjAwMDQ4NCwgMC4wMDA0ODQsIDAuMDAwNDg0LCAwLjAwMDQ4NCwgMC4wMDA0ODQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA0OTMsIDAuMDAwNDg4LCAwLjAwMDQ4NywgMC4wMDA0ODcsIDAuMDAwNDg3LCAwLjAwMDQ4NywgMC4wMDA0ODciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiU04iOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFEIjsKLSAgICAgIHNkZl9jb25kIDogIkQgPT0gMSdiMCI7Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4yMDQxMTIsIDAuMjE1NjExLCAwLjIzMDQxMSwgMC4yNDQ1NjgsIDAuMjU5MjU4LCAwLjI4MjA2MywgMC4zMDEzOTUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiByZWNvdmVyeV9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEIjsKLSAgICAgIHNkZl9jb25kIDogIkQgPT0gMSdiMCI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQocmVjb3ZlcnlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEyNSwgLTAuMDA1LCAtMC4wMTc1LCAtMC4wMzYyNSwgLTAuMDU1LCAtMC4wNzc1LCAtMC4wOTg3NSIsIFwKLSAgICAgICAgICAiMC4wMjM3NSwgMC4wMDYyNSwgLTAuMDA2MjUsIC0wLjAyNSwgLTAuMDQzNzUsIC0wLjA2NjI1LCAtMC4wODc1IiwgXAotICAgICAgICAgICIwLjAzNjI1LCAwLjAxODc1LCAwLjAwNjI1LCAtMC4wMTI1LCAtMC4wMzEyNSwgLTAuMDUzNzUsIC0wLjA3NSIsIFwKLSAgICAgICAgICAiMC4wNDg3NSwgMC4wMzc1LCAwLjAxODc1LCAwLCAtMC4wMTI1LCAtMC4wNDEyNSwgLTAuMDYyNSIsIFwKLSAgICAgICAgICAiMC4wNjEyNSwgMC4wNSwgMC4wMzEyNSwgMC4wMTI1LCAwLCAtMC4wMjg3NSwgLTAuMDUiLCBcCi0gICAgICAgICAgIjAuMDgzNzUsIDAuMDY2MjUsIDAuMDUzNzUsIDAuMDM1LCAwLjAxNjI1LCAtMC4wMDYyNSwgLTAuMDI3NSIsIFwKLSAgICAgICAgICAiMC4wOTg3NSwgMC4wODc1LCAwLjA2ODc1LCAwLjA1NjI1LCAwLjAzNzUsIDAuMDA4NzUsIC0wLjAxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiByZW1vdmFsX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUQiOwotICAgICAgc2RmX2NvbmQgOiAiRCA9PSAxJ2IwIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChyZW1vdmFsX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4NzUsIDAuMDk4NzUsIDAuMTExMjUsIDAuMTMsIDAuMTQyNSwgMC4xNzEyNSwgMC4xOTI1IiwgXAotICAgICAgICAgICIwLjA3NjI1LCAwLjA4NzUsIDAuMSwgMC4xMTg3NSwgMC4xMzEyNSwgMC4xNiwgMC4xODEyNSIsIFwKLSAgICAgICAgICAiMC4wNjM3NSwgMC4wNzUsIDAuMDg3NSwgMC4xMDYyNSwgMC4xMTg3NSwgMC4xNDc1LCAwLjE2ODc1IiwgXAotICAgICAgICAgICIwLjA1MTI1LCAwLjA2MjUsIDAuMDc1LCAwLjA5Mzc1LCAwLjEwNjI1LCAwLjEzNSwgMC4xNTYyNSIsIFwKLSAgICAgICAgICAiMC4wMzg3NSwgMC4wNSwgMC4wNjI1LCAwLjA4MTI1LCAwLjA5Mzc1LCAwLjEyMjUsIDAuMTQzNzUiLCBcCi0gICAgICAgICAgIjAuMDE2MjUsIDAuMDI3NSwgMC4wNDYyNSwgMC4wNTg3NSwgMC4wNzEyNSwgMC4xLCAwLjEyMTI1IiwgXAotICAgICAgICAgICIwLjAwMTI1LCAwLjAxMjUsIDAuMDI1LCAwLjA0Mzc1LCAwLjA1NjI1LCAwLjA3ODc1LCAwLjEiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogREZGU0hRWDQgKgotICogLS0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKERGRlNIUVg0KSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuNDI2NTYxOwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIGZmIChOMzUsUUJJTlQpIHsKLSAgICBuZXh0X3N0YXRlIDogIkQiOwotICAgIGNsb2NrZWRfb24gOiAiQ0siOwotICAgIHByZXNldCA6ICIoIVNOKSI7Ci0gIH0KLSAgcGluKENLKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA1NjUzMjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA1NjUyMjE7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNTY1MzI7Ci0gICAgY2xvY2sgOiB0cnVlOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjUxMiwgMC4wMDI1MDEsIDAuMDAyNDkxLCAwLjAwMjQ4NSwgMC4wMDI0OCwgMC4wMDI0NzMsIDAuMDAyNDY5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA2NDUsIDAuMDA2NDQxLCAwLjAwNjQyOSwgMC4wMDY0MjEsIDAuMDA2NDEzLCAwLjAwNjQwMywgMC4wMDYzOTciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFEJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMjkzMjk4LCAwLjMwNDkzNSwgMC4zMjAyNTgsIDAuMzM1NjYyLCAwLjM1MTEyMywgMC4zNzU1OTQsIDAuMzk2Nzg4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4yNDMzMTEsIDAuMjU0NzQzLCAwLjI2OTc4MywgMC4yODQ2NDgsIDAuMjk5NDEyLCAwLjMyMjYxMSwgMC4zNDI0MDUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEQpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDc1MjM1ODsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA3NDkyMzk7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNzUyMzU4OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjYsIDAuMDAyNTgzLCAwLjAwMjU3MiwgMC4wMDI1NjQsIDAuMDAyNTU4LCAwLjAwMjU1LCAwLjAwMjU0MyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzA2NiwgMC4wMDMwNTgsIDAuMDAzMDUyLCAwLjAwMzA0NywgMC4wMDMwNDQsIDAuMDAzMDM4LCAwLjAwMzAzNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJTTiA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMzc1LCAtMC4wMjYyNSwgLTAuMDEzNzUsIC0wLjAwMTI1LCAwLjAxMTI1LCAwLjAyMTI1LCAwLjAzNjI1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDM3NSwgLTAuMDI1LCAtMC4wMTI1LCAwLCAwLjAxLCAwLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDYxMjUsIC0wLjA1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMDI1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjA3Mzc1LCAtMC4wNjI1LCAtMC4wNSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAxNSwgMCIsIFwKLSAgICAgICAgICAiLTAuMDg2MjUsIC0wLjA3NSwgLTAuMDYyNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wMjc1LCAtMC4wMTI1IiwgXAotICAgICAgICAgICItMC4xMDg3NSwgLTAuMDk3NSwgLTAuMDg1LCAtMC4wNzI1LCAtMC4wNiwgLTAuMDQzNzUsIC0wLjAzNSIsIFwKLSAgICAgICAgICAiLTAuMTIzNzUsIC0wLjExMjUsIC0wLjEsIC0wLjA4NzUsIC0wLjA4MTI1LCAtMC4wNjUsIC0wLjA1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjI1LCAwLjA3Mzc1LCAwLjA5MjUsIDAuMTA1LCAwLjExNzUsIDAuMTQ2MjUsIDAuMTY3NSIsIFwKLSAgICAgICAgICAiMC4wNTEyNSwgMC4wNjI1LCAwLjA4MTI1LCAwLjA5Mzc1LCAwLjEwNjI1LCAwLjEzNSwgMC4xNSIsIFwKLSAgICAgICAgICAiMC4wMzg3NSwgMC4wNSwgMC4wNjI1LCAwLjA4MTI1LCAwLjA5Mzc1LCAwLjExNjI1LCAwLjEzNzUiLCBcCi0gICAgICAgICAgIjAuMDI2MjUsIDAuMDM3NSwgMC4wNSwgMC4wNjg3NSwgMC4wODEyNSwgMC4xMSwgMC4xMjUiLCBcCi0gICAgICAgICAgIjAuMDIsIDAuMDMxMjUsIDAuMDQzNzUsIDAuMDU2MjUsIDAuMDc1LCAwLjA5NzUsIDAuMTE4NzUiLCBcCi0gICAgICAgICAgIjAuMDAzNzUsIDAuMDE1LCAwLjAyNzUsIDAuMDQ2MjUsIDAuMDU4NzUsIDAuMDgxMjUsIDAuMTAyNSIsIFwKLSAgICAgICAgICAiLTAuMDA1LCAwLjAwNjI1LCAwLjAxODc1LCAwLjAzMTI1LCAwLjA1LCAwLjA3MjUsIDAuMDkzNzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlNOIjsKLSAgICAgIHNkZl9jb25kIDogIlNOID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5Mzc1LCAwLjA3NjI1LCAwLjA2Mzc1LCAwLjA1MTI1LCAwLjAzODc1LCAwLjAyMjUsIDAuMDA3NSIsIFwKLSAgICAgICAgICAiMC4xMDUsIDAuMDg3NSwgMC4wNzUsIDAuMDYyNSwgMC4wNSwgMC4wMzM3NSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4xMTc1LCAwLjEwNjI1LCAwLjA4NzUsIDAuMDc1LCAwLjA2MjUsIDAuMDQ2MjUsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiMC4xMywgMC4xMTg3NSwgMC4xLCAwLjA4NzUsIDAuMDc1LCAwLjA1ODc1LCAwLjA1IiwgXAotICAgICAgICAgICIwLjE0MjUsIDAuMTMxMjUsIDAuMTEyNSwgMC4xLCAwLjA4NzUsIDAuMDcxMjUsIDAuMDYyNSIsIFwKLSAgICAgICAgICAiMC4xNjUsIDAuMTUzNzUsIDAuMTM1LCAwLjEyMjUsIDAuMTEsIDAuMDkzNzUsIDAuMDc4NzUiLCBcCi0gICAgICAgICAgIjAuMTgsIDAuMTY4NzUsIDAuMTU2MjUsIDAuMTQzNzUsIDAuMTMxMjUsIDAuMTE1LCAwLjEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzUsIDAuMDYzNzUsIDAuMDQ1LCAwLjAyNjI1LCAwLjAxMzc1LCAtMC4wMTUsIC0wLjAzNjI1IiwgXAotICAgICAgICAgICIwLjA4NjI1LCAwLjA3NSwgMC4wNTYyNSwgMC4wMzc1LCAwLjAyNSwgLTAuMDAzNzUsIC0wLjAyNSIsIFwKLSAgICAgICAgICAiMC4wOTg3NSwgMC4wODc1LCAwLjA2ODc1LCAwLjA1LCAwLjAzNzUsIDAuMDA4NzUsIC0wLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMTExMjUsIDAuMSwgMC4wODEyNSwgMC4wNjI1LCAwLjA1LCAwLjAyMTI1LCAwIiwgXAotICAgICAgICAgICIwLjEyMzc1LCAwLjExMjUsIDAuMDkzNzUsIDAuMDc1LCAwLjA2MjUsIDAuMDMzNzUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4xNCwgMC4xMjg3NSwgMC4xMSwgMC4wOTc1LCAwLjA3ODc1LCAwLjA1LCAwLjAyODc1IiwgXAotICAgICAgICAgICIwLjE1NSwgMC4xNDM3NSwgMC4xMjUsIDAuMTEyNSwgMC4wOTM3NSwgMC4wNzEyNSwgMC4wNDM3NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjUyNDA1MjsKLSAgICBmdW5jdGlvbiA6ICJOMzUiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5vbl91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcmlzaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjM0NTM0LCAwLjM2MTE2OCwgMC40ODYyMzcsIDAuNTc1NTIzLCAwLjcxODQyNSwgMC44NDM0ODMsIDEuMDIyMTciLCBcCi0gICAgICAgICAgIjAuMjQ2NDU5LCAwLjM3MzEwNiwgMC40OTgxNTMsIDAuNTg3NDUyLCAwLjczMDM1LCAwLjg1NTM3NywgMS4wMzM5OCIsIFwKLSAgICAgICAgICAiMC4yNjE1MzYsIDAuMzg4MTU3LCAwLjUxMzIwNiwgMC42MDI1MTgsIDAuNzQ1NDAyLCAwLjg3MDQ4NCwgMS4wNDkwNyIsIFwKLSAgICAgICAgICAiMC4yNzcwMTEsIDAuNDAzNjYsIDAuNTI4NzA4LCAwLjYxODAwNiwgMC43NjA4OTksIDAuODg1OTc4LCAxLjA2NDU2IiwgXAotICAgICAgICAgICIwLjI5MjQ3OSwgMC40MTkxNCwgMC41NDQyLCAwLjYzMzQ5NiwgMC43NzYzNzUsIDAuOTAxNDUyLCAxLjA4MDA0IiwgXAotICAgICAgICAgICIwLjMxNjc0NSwgMC40NDMzODgsIDAuNTY4NDM3LCAwLjY1NzczOSwgMC44MDA2MzUsIDAuOTI1Njk3LCAxLjEwNDI2IiwgXAotICAgICAgICAgICIwLjMzNzgyOSwgMC40NjQ1NDcsIDAuNTg5NTk3LCAwLjY3ODkxMSwgMC44MjE3OTIsIDAuOTQ2Njg5LCAxLjEyNTQyIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU1NjIsIDAuMzAzNTI3LCAwLjU1Nzg4MywgMC43Mzk3NzEsIDEuMDI5NDYsIDEuMjgyOTQsIDEuNjUwNTEiLCBcCi0gICAgICAgICAgIjAuMDU1NTIzLCAwLjMwMzU0MywgMC41NTY0ODksIDAuNzM5NzI0LCAxLjAyOTM1LCAxLjI4NTk4LCAxLjY0OTI0IiwgXAotICAgICAgICAgICIwLjA1NTQ5NiwgMC4zMDM1NCwgMC41NTY0MTcsIDAuNzM5ODM3LCAxLjAyOTMxLCAxLjI4MzIyLCAxLjY1MDI5IiwgXAotICAgICAgICAgICIwLjA1NTUzMywgMC4zMDM1MjgsIDAuNTU1NjYxLCAwLjczNzQ5NCwgMS4wMzA0NSwgMS4yODYyMSwgMS42NDc1OSIsIFwKLSAgICAgICAgICAiMC4wNTU1MjgsIDAuMzAzNTI3LCAwLjU1NzgyMywgMC43Mzk3NzcsIDEuMDMwNDksIDEuMjg2MiwgMS42NDc5MSIsIFwKLSAgICAgICAgICAiMC4wNTU0NjgsIDAuMzAzNTQ5LCAwLjU1NjM4MSwgMC43Mzk3NTgsIDEuMDI5MzQsIDEuMjg2MTgsIDEuNjQ5ODYiLCBcCi0gICAgICAgICAgIjAuMDU1NjEzLCAwLjMwMzU0MiwgMC41NTYwNDEsIDAuNzM5ODUyLCAxLjAyOTMxLCAxLjI4MjMsIDEuNjUwMzEiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yOTMyOTgsIDAuNDQwNDczLCAwLjU4NjAxOCwgMC42ODk5NTcsIDAuODU2MzIzLCAxLjAwMTgyLCAxLjIwOTY5IiwgXAotICAgICAgICAgICIwLjMwNDkzNSwgMC40NTIxMzUsIDAuNTk3Njg2LCAwLjcwMTYzLCAwLjg2Nzk3NywgMS4wMTM0OCwgMS4yMjEzNSIsIFwKLSAgICAgICAgICAiMC4zMjAyNTgsIDAuNDY3NDQyLCAwLjYxMjk5NywgMC43MTY5NjMsIDAuODgzMjk2LCAxLjAyODczLCAxLjIzNjY4IiwgXAotICAgICAgICAgICIwLjMzNTY2MiwgMC40ODI4NTgsIDAuNjI4NDE4LCAwLjczMjM2MywgMC44OTg3MDgsIDEuMDQ0MjEsIDEuMjUyMDgiLCBcCi0gICAgICAgICAgIjAuMzUxMTIzLCAwLjQ5ODMxNCwgMC42NDM4NzcsIDAuNzQ3ODIsIDAuOTE0MTc0LCAxLjA1OTY4LCAxLjI2NzU1IiwgXAotICAgICAgICAgICIwLjM3NTU5NCwgMC41MjI3ODMsIDAuNjY4MzQyLCAwLjc3MjI4NiwgMC45Mzg2MzYsIDEuMDg0MTQsIDEuMjkyMDEiLCBcCi0gICAgICAgICAgIjAuMzk2Nzg4LCAwLjU0Mzk4NCwgMC42ODk1NDUsIDAuNzkzNTExLCAwLjk1OTgzMywgMS4xMDUzNCwgMS4zMTMyMSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2MDk2MSwgMC4zNDQyNjUsIDAuNjM0MDY5LCAwLjg0MTMzNywgMS4xNzA4LCAxLjQ2NTg1LCAxLjg4MDQ5IiwgXAotICAgICAgICAgICIwLjA2MDk4LCAwLjM0NDM5OCwgMC42MzM1MiwgMC44NDAxMzgsIDEuMTc1LCAxLjQ2NTgzLCAxLjg4MDU3IiwgXAotICAgICAgICAgICIwLjA2MDk2MywgMC4zNDQ4OTQsIDAuNjM0MjAxLCAwLjgzOTc2NywgMS4xNzUwNywgMS40NjU2NSwgMS44ODAyNyIsIFwKLSAgICAgICAgICAiMC4wNjA5ODQsIDAuMzQ0NDgzLCAwLjYzMzQ2NiwgMC44Mzk3NzcsIDEuMTc1LCAxLjQ2NTgyLCAxLjg4MDU4IiwgXAotICAgICAgICAgICIwLjA2MDk3OSwgMC4zNDQyMzYsIDAuNjM0MDgyLCAwLjg0MTI5NywgMS4xNzUwNCwgMS40NjU4NywgMS44ODA1NSIsIFwKLSAgICAgICAgICAiMC4wNjA5NjksIDAuMzQ0NDY2LCAwLjYzNDEwOCwgMC44NDA2MDEsIDEuMTc1MDIsIDEuNDY1ODQsIDEuODgwNTYiLCBcCi0gICAgICAgICAgIjAuMDYwOTg0LCAwLjM0NDQ3OCwgMC42MzMyODksIDAuODM5NTE2LCAxLjE3NSwgMS40NjU3OSwgMS44ODA2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiBwcmVzZXQ7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTkwOCwgMC4zMTczOTMsIDAuNDQyNDYzLCAwLjUzMTc0OCwgMC42NzQ2NCwgMC43OTk2NzksIDAuOTc4Mjc1IiwgXAotICAgICAgICAgICIwLjIwMjQzNCwgMC4zMjkwMjYsIDAuNDU0MDk1LCAwLjU0MzM4LCAwLjY4NjI3LCAwLjgxMTMxNSwgMC45ODk5MDkiLCBcCi0gICAgICAgICAgIjAuMjE2NDk4LCAwLjM0MzA3NywgMC40NjgxNDUsIDAuNTU3NDQ0LCAwLjcwMDMzNywgMC44MjUzNzQsIDEuMDAzOTciLCBcCi0gICAgICAgICAgIjAuMjMwNzEzLCAwLjM1NzI1NywgMC40ODIzMiwgMC41NzE2NDgsIDAuNzE0NTA5LCAwLjgzOTUzNiwgMS4wMTgxNiIsIFwKLSAgICAgICAgICAiMC4yNDUyMTgsIDAuMzcxNzYzLCAwLjQ5NjgyNCwgMC41ODYxNjgsIDAuNzI5MDE0LCAwLjg1NDA0NywgMS4wMzI2NyIsIFwKLSAgICAgICAgICAiMC4yNjgwNDUsIDAuMzk0NTcsIDAuNTE5NjM5LCAwLjYwODk3NywgMC43NTE4NjQsIDAuODc2ODU4LCAxLjA1NTQ3IiwgXAotICAgICAgICAgICIwLjI4NzI1MiwgMC40MTM3ODYsIDAuNTM4Nzk2LCAwLjYyODE4LCAwLjc3MTAzOCwgMC44OTYwNjIsIDEuMDc0NjciKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTUyNjMsIDAuMzAyODA5LCAwLjU1Nzk0MiwgMC43Mzk5MTEsIDEuMDMxMDEsIDEuMjg0MjIsIDEuNjUwMDMiLCBcCi0gICAgICAgICAgIjAuMDU1Mjk0LCAwLjMwMzM2OCwgMC41NTc5MywgMC43Mzk3NDQsIDEuMDMxMTUsIDEuMjgzODUsIDEuNjQ3OTciLCBcCi0gICAgICAgICAgIjAuMDU1MjgsIDAuMzAzMzQsIDAuNTU3ODcxLCAwLjczOTg4NiwgMS4wMzEwNCwgMS4yODQxNywgMS42NDczNCIsIFwKLSAgICAgICAgICAiMC4wNTUyNzIsIDAuMzAzMzU5LCAwLjU1ODAxLCAwLjczOTksIDEuMDMwODgsIDEuMjg1OTQsIDEuNjUwMjUiLCBcCi0gICAgICAgICAgIjAuMDU1MjQ2LCAwLjMwMzM1NCwgMC41NTc4NDUsIDAuNzM5OTM3LCAxLjAzMDksIDEuMjg1OTYsIDEuNjUwMjQiLCBcCi0gICAgICAgICAgIjAuMDU1MjY5LCAwLjMwMzM2NywgMC41NTc4NiwgMC43Mzk4OTksIDEuMDMxMTMsIDEuMjg0MiwgMS42NTAxOCIsIFwKLSAgICAgICAgICAiMC4wNTUyNzUsIDAuMzAzMDU5LCAwLjU1Nzg2MywgMC43Mzk4OTgsIDEuMDMxMDIsIDEuMjg0MjMsIDEuNjQ3MzQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDkyMiwgMC4wMDkzMjMsIDAuMDA5MzM0LCAwLjAwOTMzOCwgMC4wMDkzNDEsIDAuMDA5MzQyLCAwLjAwOTM0NCIsIFwKLSAgICAgICAgICAiMC4wMDkyMSwgMC4wMDkzMTIsIDAuMDA5MzI0LCAwLjAwOTMyNywgMC4wMDkzMzEsIDAuMDA5MzMxLCAwLjAwOTMzMyIsIFwKLSAgICAgICAgICAiMC4wMDkxOTgsIDAuMDA5Mjk5LCAwLjAwOTMwOSwgMC4wMDkzMTMsIDAuMDA5MzE4LCAwLjAwOTMxOSwgMC4wMDkzMjEiLCBcCi0gICAgICAgICAgIjAuMDA5MTg4LCAwLjAwOTI5LCAwLjAwOTMwMiwgMC4wMDkzMDYsIDAuMDA5MzA2LCAwLjAwOTMxLCAwLjAwOTMxMSIsIFwKLSAgICAgICAgICAiMC4wMDkxODEsIDAuMDA5MjgzLCAwLjAwOTI5NCwgMC4wMDkzLCAwLjAwOTMwMiwgMC4wMDkzMDMsIDAuMDA5MzA1IiwgXAotICAgICAgICAgICIwLjAwOTE2OSwgMC4wMDkyNywgMC4wMDkyODIsIDAuMDA5Mjg2LCAwLjAwOTI4OSwgMC4wMDkyOSwgMC4wMDkyOTQiLCBcCi0gICAgICAgICAgIjAuMDA5MTYxLCAwLjAwOTI2NCwgMC4wMDkyNzYsIDAuMDA5MjgsIDAuMDA5MjgzLCAwLjAwOTI4NCwgMC4wMDkyODYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwODcyMywgMC4wMDg4NzEsIDAuMDA4ODkyLCAwLjAwODg5OSwgMC4wMDg5MDUsIDAuMDA4OTA4LCAwLjAwODkxIiwgXAotICAgICAgICAgICIwLjAwODcwNSwgMC4wMDg4NTcsIDAuMDA4ODgsIDAuMDA4ODg3LCAwLjAwODg5MywgMC4wMDg4OTYsIDAuMDA4ODk5IiwgXAotICAgICAgICAgICIwLjAwODY5MywgMC4wMDg4NDYsIDAuMDA4ODY4LCAwLjAwODg3NSwgMC4wMDg4ODEsIDAuMDA4ODg0LCAwLjAwODg4NyIsIFwKLSAgICAgICAgICAiMC4wMDg2ODIsIDAuMDA4ODM2LCAwLjAwODg1OSwgMC4wMDg4NjYsIDAuMDA4ODcyLCAwLjAwODg3NSwgMC4wMDg4NzgiLCBcCi0gICAgICAgICAgIjAuMDA4Njc5LCAwLjAwODgzMywgMC4wMDg4NTYsIDAuMDA4ODYzLCAwLjAwODg2OSwgMC4wMDg4NzIsIDAuMDA4ODc1IiwgXAotICAgICAgICAgICIwLjAwODY3NiwgMC4wMDg4MjksIDAuMDA4ODUyLCAwLjAwODg1OSwgMC4wMDg4NjUsIDAuMDA4ODY4LCAwLjAwODg3MSIsIFwKLSAgICAgICAgICAiMC4wMDg2ODEsIDAuMDA4ODM0LCAwLjAwODg1NywgMC4wMDg4NjQsIDAuMDA4ODcsIDAuMDA4ODczLCAwLjAwODg3NiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwOTgzNSwgMC4wMDk5MzgsIDAuMDA5OTQ5LCAwLjAwOTk1MywgMC4wMDk5NTYsIDAuMDA5OTYyLCAwLjAwOTk1NiIsIFwKLSAgICAgICAgICAiMC4wMDk4MTUsIDAuMDA5OTE2LCAwLjAwOTkyOCwgMC4wMDk5MzIsIDAuMDA5OTM1LCAwLjAwOTkzNiwgMC4wMDk5MzgiLCBcCi0gICAgICAgICAgIjAuMDA5Nzk5LCAwLjAwOTksIDAuMDA5OTEyLCAwLjAwOTkxNiwgMC4wMDk5MTksIDAuMDA5OTIxLCAwLjAwOTkyMiIsIFwKLSAgICAgICAgICAiMC4wMDk3ODUsIDAuMDA5ODg2LCAwLjAwOTg5OSwgMC4wMDk5MDIsIDAuMDA5OTA1LCAwLjAwOTkwNiwgMC4wMDk5MDgiLCBcCi0gICAgICAgICAgIjAuMDA5NzcyLCAwLjAwOTg3MiwgMC4wMDk4ODUsIDAuMDA5ODg4LCAwLjAwOTg5MSwgMC4wMDk4OTMsIDAuMDA5ODk0IiwgXAotICAgICAgICAgICIwLjAwOTc1NCwgMC4wMDk4NTUsIDAuMDA5ODcsIDAuMDA5ODcxLCAwLjAwOTg3NCwgMC4wMDk4NzYsIDAuMDA5ODc1IiwgXAotICAgICAgICAgICIwLjAwOTc0MSwgMC4wMDk4NDIsIDAuMDA5ODU1LCAwLjAwOTg1OSwgMC4wMDk4NjQsIDAuMDA5ODYzLCAwLjAwOTg2NSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihzY2FsYXIpIHsKLSAgICAgICAgdmFsdWVzKCIwIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTTikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNjYzNDU7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNTQxOTI7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNjYzNDU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNDg1LCAwLjAwMDQ4NCwgMC4wMDA0ODQsIDAuMDAwNDg0LCAwLjAwMDQ4NCwgMC4wMDA0ODQsIDAuMDAwNDg0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNDk0LCAwLjAwMDQ4OCwgMC4wMDA0ODcsIDAuMDAwNDg3LCAwLjAwMDQ4NywgMC4wMDA0ODcsIDAuMDAwNDg3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRCI7Ci0gICAgICBzZGZfY29uZCA6ICJEID09IDEnYjAiOwotICAgICAgZmFsbF9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMTkwOCwgMC4yMDI0MzQsIDAuMjE2NDk4LCAwLjIzMDcxMywgMC4yNDUyMTcsIDAuMjY4MDQ1LCAwLjI4NzI1MSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJlY292ZXJ5X3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUQiOwotICAgICAgc2RmX2NvbmQgOiAiRCA9PSAxJ2IwIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChyZWNvdmVyeV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMCwgLTAuMDExMjUsIC0wLjAzLCAtMC4wNDI1LCAtMC4wNjEyNSwgLTAuMDgzNzUsIC0wLjExMTI1IiwgXAotICAgICAgICAgICIwLjAxMTI1LCAwLCAtMC4wMTg3NSwgLTAuMDMxMjUsIC0wLjA1LCAtMC4wNzI1LCAtMC4xIiwgXAotICAgICAgICAgICIwLjAyMzc1LCAwLjAxMjUsIDAsIC0wLjAxODc1LCAtMC4wMzc1LCAtMC4wNiwgLTAuMDg3NSIsIFwKLSAgICAgICAgICAiMC4wMzYyNSwgMC4wMjUsIDAuMDEyNSwgLTAuMDA2MjUsIC0wLjAyNSwgLTAuMDQ3NSwgLTAuMDY4NzUiLCBcCi0gICAgICAgICAgIjAuMDU1LCAwLjAzNzUsIDAuMDI1LCAwLjAwNjI1LCAtMC4wMTI1LCAtMC4wMzUsIC0wLjA1NjI1IiwgXAotICAgICAgICAgICIwLjA3MTI1LCAwLjA2LCAwLjA0MTI1LCAwLjAyODc1LCAwLjAxLCAtMC4wMTI1LCAtMC4wNCIsIFwKLSAgICAgICAgICAiMC4wOTI1LCAwLjA4MTI1LCAwLjA2MjUsIDAuMDQzNzUsIDAuMDMxMjUsIDAuMDAyNSwgLTAuMDE4NzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiByZW1vdmFsX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUQiOwotICAgICAgc2RmX2NvbmQgOiAiRCA9PSAxJ2IwIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChyZW1vdmFsX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4NzUsIDAuMDk4NzUsIDAuMTE3NSwgMC4xMywgMC4xNDI1LCAwLjE3MTI1LCAwLjE5MjUiLCBcCi0gICAgICAgICAgIjAuMDc2MjUsIDAuMDg3NSwgMC4xMDYyNSwgMC4xMTg3NSwgMC4xMzc1LCAwLjE2LCAwLjE4MTI1IiwgXAotICAgICAgICAgICIwLjA2Mzc1LCAwLjA3NSwgMC4wOTM3NSwgMC4xMDYyNSwgMC4xMjUsIDAuMTQ3NSwgMC4xNjg3NSIsIFwKLSAgICAgICAgICAiMC4wNTEyNSwgMC4wNjI1LCAwLjA4MTI1LCAwLjA5Mzc1LCAwLjExMjUsIDAuMTM1LCAwLjE1NjI1IiwgXAotICAgICAgICAgICIwLjAzODc1LCAwLjA1LCAwLjA2ODc1LCAwLjA4MTI1LCAwLjEsIDAuMTIyNSwgMC4xNDM3NSIsIFwKLSAgICAgICAgICAiMC4wMTYyNSwgMC4wMjc1LCAwLjA0NjI1LCAwLjA1ODc1LCAwLjA3NzUsIDAuMSwgMC4xMjEyNSIsIFwKLSAgICAgICAgICAiMC4wMDEyNSwgMC4wMTI1LCAwLjAyNSwgMC4wNDM3NSwgMC4wNTYyNSwgMC4wODUsIDAuMTA2MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogREZGU0hRWDggKgotICogLS0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKERGRlNIUVg4KSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuNjEzOTQzOwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIGZmIChOMzUsUUJJTlQpIHsKLSAgICBuZXh0X3N0YXRlIDogIkQiOwotICAgIGNsb2NrZWRfb24gOiAiQ0siOwotICAgIHByZXNldCA6ICIoIVNOKSI7Ci0gIH0KLSAgcGluKENLKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2MDQ4MjE7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjA0NTI5OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDYwNDgyMTsKLSAgICBjbG9jayA6IHRydWU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyNTQ2LCAwLjAwMjUzNCwgMC4wMDI1MjMsIDAuMDAyNTE3LCAwLjAwMjUxMSwgMC4wMDI1MDUsIDAuMDAyNTAxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA2NTcsIDAuMDA2NTYyLCAwLjAwNjU0OSwgMC4wMDY1NCwgMC4wMDY1MzMsIDAuMDA2NTIxLCAwLjAwNjUxNCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQmU04iOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4zMDI0MTMsIDAuMzE0MTksIDAuMzI5Mzc2LCAwLjM0NDg2OCwgMC4zNjAzMSwgMC4zODQ2OTgsIDAuNDA1ODU3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4yNDU4NDYsIDAuMjU3NTIxLCAwLjI3MjIxNSwgMC4yODcxMjUsIDAuMzAxNzY4LCAwLjMyNDgxNiwgMC4zNDQyMTUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEQpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDc1OTQ4NTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA3NTY4NTI7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNzU5NDg1OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjg2MSwgMC4wMDI4NDQsIDAuMDAyODMyLCAwLjAwMjgyNCwgMC4wMDI4MTksIDAuMDAyODEsIDAuMDAyODA0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzMDU5LCAwLjAwMzA1LCAwLjAwMzA0NCwgMC4wMDMwMzksIDAuMDAzMDM0LCAwLjAwMzAzLCAwLjAwMzAyNiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJTTiA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMzc1LCAtMC4wMjYyNSwgLTAuMDEzNzUsIC0wLjAwMTI1LCAwLjAwNSwgMC4wMjEyNSwgMC4wMzYyNSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjAzNzUsIC0wLjAyNSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAuMDEsIDAuMDI1IiwgXAotICAgICAgICAgICItMC4wNjEyNSwgLTAuMDUsIC0wLjAzNzUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAwMjUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDczNzUsIC0wLjA2MjUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDMxMjUsIC0wLjAxNSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA4NjI1LCAtMC4wNzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNDM3NSwgLTAuMDI3NSwgLTAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjEwODc1LCAtMC4wOTc1LCAtMC4wODUsIC0wLjA3MjUsIC0wLjA2NjI1LCAtMC4wNSwgLTAuMDM1IiwgXAotICAgICAgICAgICItMC4xMjM3NSwgLTAuMTEyNSwgLTAuMSwgLTAuMDg3NSwgLTAuMDgxMjUsIC0wLjA2NSwgLTAuMDUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2MjUsIDAuMDczNzUsIDAuMDg2MjUsIDAuMTA1LCAwLjExNzUsIDAuMTQsIDAuMTYxMjUiLCBcCi0gICAgICAgICAgIjAuMDUxMjUsIDAuMDYyNSwgMC4wNzUsIDAuMDkzNzUsIDAuMTA2MjUsIDAuMTI4NzUsIDAuMTUiLCBcCi0gICAgICAgICAgIjAuMDM4NzUsIDAuMDUsIDAuMDYyNSwgMC4wNzUsIDAuMDkzNzUsIDAuMTE2MjUsIDAuMTM3NSIsIFwKLSAgICAgICAgICAiMC4wMjYyNSwgMC4wMzc1LCAwLjA1LCAwLjA2ODc1LCAwLjA4MTI1LCAwLjEwMzc1LCAwLjEyNSIsIFwKLSAgICAgICAgICAiMC4wMTM3NSwgMC4wMjUsIDAuMDQzNzUsIDAuMDU2MjUsIDAuMDY4NzUsIDAuMDk3NSwgMC4xMTI1IiwgXAotICAgICAgICAgICIwLjAwMzc1LCAwLjAxNSwgMC4wMjc1LCAwLjA0LCAwLjA1ODc1LCAwLjA4MTI1LCAwLjEwMjUiLCBcCi0gICAgICAgICAgIi0wLjAwNSwgMC4wMDYyNSwgMC4wMTg3NSwgMC4wMzEyNSwgMC4wNSwgMC4wNzI1LCAwLjA4NzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlNOIjsKLSAgICAgIHNkZl9jb25kIDogIlNOID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5Mzc1LCAwLjA4MjUsIDAuMDcsIDAuMDUxMjUsIDAuMDQ1LCAwLjAyODc1LCAwLjAxMzc1IiwgXAotICAgICAgICAgICIwLjEwNSwgMC4wOTM3NSwgMC4wODEyNSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA0LCAwLjAyNSIsIFwKLSAgICAgICAgICAiMC4xMTc1LCAwLjEwNjI1LCAwLjA5Mzc1LCAwLjA4MTI1LCAwLjA2ODc1LCAwLjA1MjUsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiMC4xMywgMC4xMTg3NSwgMC4xMDYyNSwgMC4wOTM3NSwgMC4wODEyNSwgMC4wNjUsIDAuMDUiLCBcCi0gICAgICAgICAgIjAuMTQ4NzUsIDAuMTMxMjUsIDAuMTE4NzUsIDAuMTA2MjUsIDAuMDkzNzUsIDAuMDc3NSwgMC4wNjI1IiwgXAotICAgICAgICAgICIwLjE2NSwgMC4xNTM3NSwgMC4xNDEyNSwgMC4xMjI1LCAwLjExNjI1LCAwLjEsIDAuMDg1IiwgXAotICAgICAgICAgICIwLjE4NjI1LCAwLjE3NSwgMC4xNTYyNSwgMC4xNDM3NSwgMC4xMzEyNSwgMC4xMTUsIDAuMSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4NzUsIDAuMDc2MjUsIDAuMDU3NSwgMC4wNDUsIDAuMDI2MjUsIC0wLjAwMjUsIC0wLjAyMzc1IiwgXAotICAgICAgICAgICIwLjA5ODc1LCAwLjA4NzUsIDAuMDY4NzUsIDAuMDU2MjUsIDAuMDM3NSwgMC4wMDg3NSwgLTAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4xMTEyNSwgMC4xLCAwLjA4MTI1LCAwLjA2ODc1LCAwLjA1LCAwLjAyMTI1LCAwIiwgXAotICAgICAgICAgICIwLjEyMzc1LCAwLjExMjUsIDAuMDkzNzUsIDAuMDgxMjUsIDAuMDYyNSwgMC4wMzM3NSwgMC4wMTI1IiwgXAotICAgICAgICAgICIwLjEzNjI1LCAwLjEyNSwgMC4xMDYyNSwgMC4wOTM3NSwgMC4wNzUsIDAuMDQ2MjUsIDAuMDI1IiwgXAotICAgICAgICAgICIwLjE1MjUsIDAuMTQxMjUsIDAuMTI4NzUsIDAuMTEsIDAuMDkxMjUsIDAuMDY4NzUsIDAuMDQ3NSIsIFwKLSAgICAgICAgICAiMC4xNzM3NSwgMC4xNTYyNSwgMC4xNDM3NSwgMC4xMjUsIDAuMTA2MjUsIDAuMDgzNzUsIDAuMDYyNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAxLjAzOTMzOwotICAgIGZ1bmN0aW9uIDogIk4zNSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3NlbnNlIDogbm9uX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiByaXNpbmdfZWRnZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMzk2MjYsIDAuMzA1OTY4LCAwLjM2OTEzMSwgMC40MTQyMDUsIDAuNDg2Mjk1LCAwLjU0OTM1OSwgMC42Mzk0NjUiLCBcCi0gICAgICAgICAgIjAuMjUxMjcsIDAuMzE3NjEyLCAwLjM4MDc2OSwgMC40MjU4NTksIDAuNDk3OTI2LCAwLjU2MTAwNiwgMC42NTEwNzQiLCBcCi0gICAgICAgICAgIjAuMjY2NTM5LCAwLjMzMjkyMiwgMC4zOTYwNjgsIDAuNDQxMTM2LCAwLjUxMzIyMywgMC41NzYzMDgsIDAuNjY2NDQ2IiwgXAotICAgICAgICAgICIwLjI4MjA2OSwgMC4zNDgzOTksIDAuNDExNTYsIDAuNDU2NjM0LCAwLjUyODcxNCwgMC41OTE3OTgsIDAuNjgxOTMzIiwgXAotICAgICAgICAgICIwLjI5NzM1MiwgMC4zNjM3MTYsIDAuNDI2ODczLCAwLjQ3MTk1OSwgMC41NDQwMjcsIDAuNjA3MTA3LCAwLjY5NzI2MiIsIFwKLSAgICAgICAgICAiMC4zMjE3NSwgMC4zODgxMDcsIDAuNDUxMjU4LCAwLjQ5NjMyOSwgMC41Njg0MTQsIDAuNjMxNDk1LCAwLjcyMTY0NiIsIFwKLSAgICAgICAgICAiMC4zNDI3NTEsIDAuNDA5MTEyLCAwLjQ3MjI3MSwgMC41MTczNDQsIDAuNTg5NDI2LCAwLjY1MjUwNywgMC43NDI2NiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzOTkwOSwgMC4xNjEwMjEsIDAuMjg3NjM0LCAwLjM3OTA5MywgMC41MjYxOTEsIDAuNjU0NTc0LCAwLjgzODM2NyIsIFwKLSAgICAgICAgICAiMC4wMzk3NDEsIDAuMTYwOTcsIDAuMjg3NjI3LCAwLjM3ODc4NywgMC41MjUyOTEsIDAuNjUyMzYsIDAuODM1Mjc2IiwgXAotICAgICAgICAgICIwLjAzOTcyOSwgMC4xNjExMzUsIDAuMjg3NjcxLCAwLjM3ODgzMiwgMC41MjUzOCwgMC42NTI4NzQsIDAuODM4NTEiLCBcCi0gICAgICAgICAgIjAuMDM5OTA0LCAwLjE2MTE1MiwgMC4yODc3OTMsIDAuMzc5MDY4LCAwLjUyNTM0OSwgMC42NTIyMDEsIDAuODM4NDk0IiwgXAotICAgICAgICAgICIwLjAzOTk3MiwgMC4xNjEwNSwgMC4yODc2NjIsIDAuMzc4Nzg3LCAwLjUyNTI5OSwgMC42NTM3LCAwLjgzODU1MiIsIFwKLSAgICAgICAgICAiMC4wMzk3NTMsIDAuMTYxMTMsIDAuMjg3NjI5LCAwLjM3ODg5MywgMC41MjUzMjQsIDAuNjUzNjk3LCAwLjgzODUzOCIsIFwKLSAgICAgICAgICAiMC4wMzk3NDUsIDAuMTYwOTA5LCAwLjI4NzYzOSwgMC4zNzg5NzksIDAuNTI1MzA2LCAwLjY1MzY0MSwgMC44Mzg1NDYiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMDI0MTMsIDAuMzc5OTkzLCAwLjQ1NDQ3OCwgMC41MDc2MDMsIDAuNTkyNTUxLCAwLjY2Njg0NSwgMC43NzMwMDIiLCBcCi0gICAgICAgICAgIjAuMzE0MTksIDAuMzkxNzUzLCAwLjQ2NjI0MywgMC41MTkzNzIsIDAuNjA0MzA4LCAwLjY3ODYxNSwgMC43ODQ3NzQiLCBcCi0gICAgICAgICAgIjAuMzI5Mzc2LCAwLjQwNjk4NCwgMC40ODE1MDEsIDAuNTM0NTkzLCAwLjYxOTU0NiwgMC42OTM4NDksIDAuODAwMDE2IiwgXAotICAgICAgICAgICIwLjM0NDg2OCwgMC40MjI0NjMsIDAuNDk2OTU5LCAwLjU1MDA4NiwgMC42MzUwMjYsIDAuNzA5MzQ5LCAwLjgxNTQ4NyIsIFwKLSAgICAgICAgICAiMC4zNjAzMSwgMC40Mzc4ODgsIDAuNTEyMzgzLCAwLjU2NTUwOCwgMC42NTA0NDUsIDAuNzI0NzUzLCAwLjgzMDkxMSIsIFwKLSAgICAgICAgICAiMC4zODQ2OTgsIDAuNDYyMjc1LCAwLjUzNjc2OCwgMC41ODk4OTMsIDAuNjc0ODMsIDAuNzQ5MTM3LCAwLjg1NTI5NiIsIFwKLSAgICAgICAgICAiMC40MDU4NTcsIDAuNDgzNDIzLCAwLjU1NzkxNSwgMC42MTEwNDIsIDAuNjk1OTc2LCAwLjc3MDI4NSwgMC44NzY0NTIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDM2NjksIDAuMTg0NDEzLCAwLjMzMTAzMiwgMC40MzYyNDEsIDAuNjA1MTc0LCAwLjc1Mzc5NywgMC45NjUxMTQiLCBcCi0gICAgICAgICAgIjAuMDQzNjczLCAwLjE4NDgwMiwgMC4zMzEwNjgsIDAuNDM2NzksIDAuNjA1MDUyLCAwLjc1MzY1NiwgMC45NjYxMjUiLCBcCi0gICAgICAgICAgIjAuMDQzNzYzLCAwLjE4NDgxNSwgMC4zMzEwMzIsIDAuNDM2MTksIDAuNjA1MzE2LCAwLjc1MzUxNCwgMC45NjcwNTgiLCBcCi0gICAgICAgICAgIjAuMDQzNzA0LCAwLjE4NDgxOSwgMC4zMzExMDcsIDAuNDM2MzM2LCAwLjYwNTE0MywgMC43NTMwMzgsIDAuOTY1NzEzIiwgXAotICAgICAgICAgICIwLjA0MzcyMiwgMC4xODQ4MDksIDAuMzMwOTAxLCAwLjQzNjU5NiwgMC42MDU1ODQsIDAuNzU0NDkxLCAwLjk2NjIyNyIsIFwKLSAgICAgICAgICAiMC4wNDM3NDcsIDAuMTg0ODA2LCAwLjMzMDkwMiwgMC40MzY1ODksIDAuNjA1NzA3LCAwLjc1NDUyOCwgMC45NjYxOTkiLCBcCi0gICAgICAgICAgIjAuMDQzNjcsIDAuMTg0ODE2LCAwLjMzMTIsIDAuNDM2MTM0LCAwLjYwNTEwNSwgMC43NTM1MTUsIDAuOTY3MDg3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiBwcmVzZXQ7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjAwNjYsIDAuMjY2ODAyLCAwLjMyOTk4NSwgMC4zNzUwNjQsIDAuNDQ3MTc3LCAwLjUxMDI1NiwgMC42MDAyOTgiLCBcCi0gICAgICAgICAgIjAuMjEyMjk4LCAwLjI3ODM4NiwgMC4zNDE1NTksIDAuMzg2NjQ3LCAwLjQ1ODczOCwgMC41MjE4NDQsIDAuNjExOTQ5IiwgXAotICAgICAgICAgICIwLjIyNjg2MiwgMC4yOTMwMDUsIDAuMzU2MTksIDAuNDAxMjcsIDAuNDczMzc4LCAwLjUzNjQ3MiwgMC42MjY1NjgiLCBcCi0gICAgICAgICAgIjAuMjQxMTIzLCAwLjMwNzE2NCwgMC4zNzAzMzYsIDAuNDE1NDEyLCAwLjQ4NzUxMSwgMC41NTA2MjEsIDAuNjQwNzIxIiwgXAotICAgICAgICAgICIwLjI1NTY1NCwgMC4zMjE3OTUsIDAuMzg0OTc4LCAwLjQzMDA1OCwgMC41MDIxNjYsIDAuNTY1MjYsIDAuNjU1MzU2IiwgXAotICAgICAgICAgICIwLjI3ODM5OSwgMC4zNDQ1OSwgMC40MDc3MjgsIDAuNDUyODA4LCAwLjUyNDkxNCwgMC41ODgwMzIsIDAuNjc4MTAzIiwgXAotICAgICAgICAgICIwLjI5ODEzMiwgMC4zNjQxOTMsIDAuNDI3MzY1LCAwLjQ3MjQzMSwgMC41NDQ1MzIsIDAuNjA3NjU0LCAwLjY5Nzc0NyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzOTg3NSwgMC4xNjA4OTgsIDAuMjg3NzY5LCAwLjM3ODc5NSwgMC41MjYxODEsIDAuNjUzMjUyLCAwLjgzODM4MyIsIFwKLSAgICAgICAgICAiMC4wMzk4NywgMC4xNjA4OTgsIDAuMjg3NzY1LCAwLjM3OTQxLCAwLjUyNTA3NiwgMC42NTQ4MDcsIDAuODM4Mzg1IiwgXAotICAgICAgICAgICIwLjAzOTcxMywgMC4xNjA5MjksIDAuMjg3NTY3LCAwLjM3OTIwOSwgMC41MjYxNjgsIDAuNjU0OTA4LCAwLjgzODUwNiIsIFwKLSAgICAgICAgICAiMC4wMzk4MTcsIDAuMTYwODk2LCAwLjI4NzM0NiwgMC4zNzg4MDYsIDAuNTI1Mjc0LCAwLjY1NDgxNCwgMC44Mzg0NCIsIFwKLSAgICAgICAgICAiMC4wMzk3NTMsIDAuMTYwOTIxLCAwLjI4NzQ3MywgMC4zNzkyMzUsIDAuNTI2MTQxLCAwLjY1NDkzNCwgMC44MzgzNzYiLCBcCi0gICAgICAgICAgIjAuMDM5NzM5LCAwLjE2MDgyOSwgMC4yODc1ODMsIDAuMzc5MjY4LCAwLjUyNjIwNCwgMC42NTMzNjIsIDAuODM4MzUxIiwgXAotICAgICAgICAgICIwLjAzOTY1MywgMC4xNjA5MiwgMC4yODc1NzcsIDAuMzc5MjIzLCAwLjUyNjIzOCwgMC42NTQ4NTQsIDAuODM4MzkyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEzMTI2LCAwLjAxMzM3NSwgMC4wMTM0MjUsIDAuMDEzNDQxLCAwLjAxMzQ1NSwgMC4wMTM0NjIsIDAuMDEzNDY4IiwgXAotICAgICAgICAgICIwLjAxMzExNiwgMC4wMTMzNjQsIDAuMDEzNDExLCAwLjAxMzQyOSwgMC4wMTM0NDIsIDAuMDEzNDQ5LCAwLjAxMzQ1NSIsIFwKLSAgICAgICAgICAiMC4wMTMxMDQsIDAuMDEzMzUyLCAwLjAxMzQwMSwgMC4wMTM0MTksIDAuMDEzNDMxLCAwLjAxMzQzOCwgMC4wMTM0NDQiLCBcCi0gICAgICAgICAgIjAuMDEzMDkyLCAwLjAxMzM0MSwgMC4wMTMzOSwgMC4wMTM0MDYsIDAuMDEzNDIsIDAuMDEzNDIzLCAwLjAxMzQzNCIsIFwKLSAgICAgICAgICAiMC4wMTMwOCwgMC4wMTMzMzIsIDAuMDEzMzgzLCAwLjAxMzQsIDAuMDEzNDEzLCAwLjAxMzQyMiwgMC4wMTM0MjYiLCBcCi0gICAgICAgICAgIjAuMDEzMDcyLCAwLjAxMzMyMiwgMC4wMTMzNzEsIDAuMDEzMzg3LCAwLjAxMzQwMSwgMC4wMTM0MDgsIDAuMDEzNDE0IiwgXAotICAgICAgICAgICIwLjAxMzA3MSwgMC4wMTMzMjEsIDAuMDEzMzcsIDAuMDEzMzg2LCAwLjAxMzM5OSwgMC4wMTM0MDgsIDAuMDEzNDEzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTI2MywgMC4wMTI5NjEsIDAuMDEzMDQyLCAwLjAxMzA3LCAwLjAxMzA5NiwgMC4wMTMxMDksIDAuMDEzMTIxIiwgXAotICAgICAgICAgICIwLjAxMjYyNCwgMC4wMTI5NTIsIDAuMDEzMDMzLCAwLjAxMzA2LCAwLjAxMzA4NSwgMC4wMTMwOTksIDAuMDEzMTExIiwgXAotICAgICAgICAgICIwLjAxMjYwMywgMC4wMTI5MzUsIDAuMDEzMDE3LCAwLjAxMzA0NSwgMC4wMTMwNzEsIDAuMDEzMDg1LCAwLjAxMzA5NyIsIFwKLSAgICAgICAgICAiMC4wMTI1OTIsIDAuMDEyOTI1LCAwLjAxMzAwNywgMC4wMTMwMzYsIDAuMDEzMDYyLCAwLjAxMzA3NiwgMC4wMTMwODgiLCBcCi0gICAgICAgICAgIjAuMDEyNTkzLCAwLjAxMjkyNSwgMC4wMTMwMDcsIDAuMDEzMDM1LCAwLjAxMzA2MSwgMC4wMTMwNzQsIDAuMDEzMDg3IiwgXAotICAgICAgICAgICIwLjAxMjU5MSwgMC4wMTI5MjQsIDAuMDEzMDA1LCAwLjAxMzAzMywgMC4wMTMwNTksIDAuMDEzMDczLCAwLjAxMzA4NSIsIFwKLSAgICAgICAgICAiMC4wMTI2MDEsIDAuMDEyOTMyLCAwLjAxMzAxMywgMC4wMTMwNDEsIDAuMDEzMDY3LCAwLjAxMzA4LCAwLjAxMzA5MiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxNDA1NSwgMC4wMTQzMDcsIDAuMDE0MzU4LCAwLjAxNDM3NywgMC4wMTQzODgsIDAuMDE0Mzk2LCAwLjAxNDQwNyIsIFwKLSAgICAgICAgICAiMC4wMTQwNDIsIDAuMDE0Mjg4LCAwLjAxNDMzOCwgMC4wMTQzNTQsIDAuMDE0MzY4LCAwLjAxNDM3NiwgMC4wMTQzODIiLCBcCi0gICAgICAgICAgIjAuMDE0MDIsIDAuMDE0MjcyLCAwLjAxNDMyOCwgMC4wMTQzMzksIDAuMDE0MzU0LCAwLjAxNDM2MSwgMC4wMTQzNzEiLCBcCi0gICAgICAgICAgIjAuMDE0MDE0LCAwLjAxNDI2LCAwLjAxNDMxNywgMC4wMTQzMjYsIDAuMDE0MzQxLCAwLjAxNDM0OCwgMC4wMTQzNDMiLCBcCi0gICAgICAgICAgIjAuMDEzOTk3LCAwLjAxNDI0OSwgMC4wMTQyOTksIDAuMDE0MzE2LCAwLjAxNDMzLCAwLjAxNDM0MSwgMC4wMTQzNDQiLCBcCi0gICAgICAgICAgIjAuMDEzOTc3LCAwLjAxNDIyOSwgMC4wMTQyODEsIDAuMDE0Mjk2LCAwLjAxNDMxMSwgMC4wMTQzMTgsIDAuMDE0MzI2IiwgXAotICAgICAgICAgICIwLjAxMzk3MSwgMC4wMTQyMTcsIDAuMDE0MjY3LCAwLjAxNDI4NCwgMC4wMTQzMDcsIDAuMDE0MzExLCAwLjAxNDMxOSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihzY2FsYXIpIHsKLSAgICAgICAgdmFsdWVzKCIwIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTTikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNzE1Njc7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNTkzODg7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNzE1Njc7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNDg1LCAwLjAwMDQ4NCwgMC4wMDA0ODQsIDAuMDAwNDg0LCAwLjAwMDQ4NCwgMC4wMDA0ODQsIDAuMDAwNDg0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNDkxLCAwLjAwMDQ4NywgMC4wMDA0ODcsIDAuMDAwNDg3LCAwLjAwMDQ4NiwgMC4wMDA0ODYsIDAuMDAwNDg2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRCI7Ci0gICAgICBzZGZfY29uZCA6ICJEID09IDEnYjAiOwotICAgICAgZmFsbF9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMjAwNjYsIDAuMjEyMjk4LCAwLjIyNjg2MSwgMC4yNDExMjMsIDAuMjU1NjU0LCAwLjI3ODM5OCwgMC4yOTgxMzIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiByZWNvdmVyeV9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEIjsKLSAgICAgIHNkZl9jb25kIDogIkQgPT0gMSdiMCI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQocmVjb3ZlcnlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE4NzUsIDAuMDA3NSwgLTAuMDExMjUsIC0wLjAzLCAtMC4wNDI1LCAtMC4wNzEyNSwgLTAuMDkyNSIsIFwKLSAgICAgICAgICAiMC4wMywgMC4wMTg3NSwgMCwgLTAuMDE4NzUsIC0wLjAzMTI1LCAtMC4wNiwgLTAuMDgxMjUiLCBcCi0gICAgICAgICAgIjAuMDQyNSwgMC4wMzEyNSwgMC4wMTI1LCAwLCAtMC4wMTg3NSwgLTAuMDQ3NSwgLTAuMDY4NzUiLCBcCi0gICAgICAgICAgIjAuMDU1LCAwLjA0Mzc1LCAwLjAyNSwgMC4wMTI1LCAtMC4wMDYyNSwgLTAuMDM1LCAtMC4wNTYyNSIsIFwKLSAgICAgICAgICAiMC4wNjc1LCAwLjA1NjI1LCAwLjA0Mzc1LCAwLjAyNSwgMC4wMDYyNSwgLTAuMDE2MjUsIC0wLjAzNzUiLCBcCi0gICAgICAgICAgIjAuMDksIDAuMDc4NzUsIDAuMDYsIDAuMDQ3NSwgMC4wMjg3NSwgMCwgLTAuMDIxMjUiLCBcCi0gICAgICAgICAgIjAuMTExMjUsIDAuMDkzNzUsIDAuMDgxMjUsIDAuMDYyNSwgMC4wNDM3NSwgMC4wMjEyNSwgMCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJlbW92YWxfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRCI7Ci0gICAgICBzZGZfY29uZCA6ICJEID09IDEnYjAiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHJlbW92YWxfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc1LCAwLjA4NjI1LCAwLjA5ODc1LCAwLjExNzUsIDAuMTMsIDAuMTUyNSwgMC4xNzM3NSIsIFwKLSAgICAgICAgICAiMC4wNjM3NSwgMC4wNzUsIDAuMDg3NSwgMC4xMDYyNSwgMC4xMTg3NSwgMC4xNDc1LCAwLjE2ODc1IiwgXAotICAgICAgICAgICIwLjA1MTI1LCAwLjA2MjUsIDAuMDc1LCAwLjA5Mzc1LCAwLjEwNjI1LCAwLjEzNSwgMC4xNSIsIFwKLSAgICAgICAgICAiMC4wMzg3NSwgMC4wNSwgMC4wNjI1LCAwLjA4MTI1LCAwLjA5Mzc1LCAwLjEyMjUsIDAuMTQzNzUiLCBcCi0gICAgICAgICAgIjAuMDI2MjUsIDAuMDM3NSwgMC4wNSwgMC4wNjg3NSwgMC4wODEyNSwgMC4xMDM3NSwgMC4xMjUiLCBcCi0gICAgICAgICAgIjAuMDAzNzUsIDAuMDE1LCAwLjAyNzUsIDAuMDQ2MjUsIDAuMDU4NzUsIDAuMDg3NSwgMC4xMDI1IiwgXAotICAgICAgICAgICItMC4wMTc1LCAtMC4wMDYyNSwgMC4wMTI1LCAwLjAyNSwgMC4wNDM3NSwgMC4wNjYyNSwgMC4wODc1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBERkZTUkhRWDEgKgotICogLS0tLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChERkZTUkhRWDEpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4zMzY5Mzk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgZmYgKE4zNSxRQklOVCkgewotICAgIG5leHRfc3RhdGUgOiAiRCI7Ci0gICAgY2xvY2tlZF9vbiA6ICJDSyI7Ci0gICAgY2xlYXIgOiAiKCFSTikiOwotICAgIHByZXNldCA6ICIoIVNOKSI7Ci0gICAgY2xlYXJfcHJlc2V0X3ZhcjEgOiBIOwotICB9Ci0gIHBpbihDSykgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNTY1MTk3OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDU2NDg5OTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA1NjUxOTc7Ci0gICAgY2xvY2sgOiB0cnVlOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzA5NSwgMC4wMDMwODQsIDAuMDAzMDc0LCAwLjAwMzA2NywgMC4wMDMwNjIsIDAuMDAzMDU1LCAwLjAwMzA1MSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNjgwMiwgMC4wMDY3OTMsIDAuMDA2NzgyLCAwLjAwNjc3MywgMC4wMDY3NjUsIDAuMDA2NzU1LCAwLjAwNjc0OSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQmUk4mU04iOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1JOX0VRXzFfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjM0NzkzNiwgMC4zNTk3NDIsIDAuMzc0OTYyLCAwLjM5MDU1MSwgMC40MDU5MDksIDAuNDMwMzMxLCAwLjQ1MTQxOCIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMjY0MjczLCAwLjI3NTU4MSwgMC4yOTA2MzgsIDAuMzA1NDUyLCAwLjMyMDE4LCAwLjM0MzAzLCAwLjM2MjY1NCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNzM4NjA5OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDczNTcwNjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA3Mzg2MDk7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyOTk1LCAwLjAwMjk3OCwgMC4wMDI5NjcsIDAuMDAyOTU5LCAwLjAwMjk1NCwgMC4wMDI5NDUsIDAuMDAyOTQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDMyMzUsIDAuMDAzMjI2LCAwLjAwMzIyLCAwLjAwMzIxNCwgMC4wMDMyMTEsIDAuMDAzMjA1LCAwLjAwMzIwMSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJSTiZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJSTl9FUV8xX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDQzNzUsIC0wLjAzMjUsIC0wLjAyLCAtMC4wMDc1LCAtMC4wMDEyNSwgMC4wMTUsIDAuMDMiLCBcCi0gICAgICAgICAgIi0wLjA1NSwgLTAuMDQzNzUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgMC4wMDM3NSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDY3NSwgLTAuMDU2MjUsIC0wLjA0Mzc1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMDg3NSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDgsIC0wLjA2ODc1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjAzNzUsIC0wLjAyMTI1LCAtMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wOTI1LCAtMC4wODEyNSwgLTAuMDc1LCAtMC4wNjI1LCAtMC4wNSwgLTAuMDMzNzUsIC0wLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMTE1LCAtMC4xMDM3NSwgLTAuMDkxMjUsIC0wLjA3ODc1LCAtMC4wNzI1LCAtMC4wNTYyNSwgLTAuMDQxMjUiLCBcCi0gICAgICAgICAgIi0wLjEzLCAtMC4xMTg3NSwgLTAuMTA2MjUsIC0wLjEsIC0wLjA4NzUsIC0wLjA3MTI1LCAtMC4wNjI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjI1LCAwLjA3Mzc1LCAwLjA5MjUsIDAuMTA1LCAwLjExNzUsIDAuMTQ2MjUsIDAuMTY3NSIsIFwKLSAgICAgICAgICAiMC4wNTEyNSwgMC4wNjI1LCAwLjA3NSwgMC4wOTM3NSwgMC4xMDYyNSwgMC4xMjg3NSwgMC4xNSIsIFwKLSAgICAgICAgICAiMC4wMzg3NSwgMC4wNSwgMC4wNjI1LCAwLjA4MTI1LCAwLjA5Mzc1LCAwLjExNjI1LCAwLjEzNzUiLCBcCi0gICAgICAgICAgIjAuMDI2MjUsIDAuMDM3NSwgMC4wNSwgMC4wNjg3NSwgMC4wODEyNSwgMC4xMDM3NSwgMC4xMjUiLCBcCi0gICAgICAgICAgIjAuMDEzNzUsIDAuMDI1LCAwLjA0Mzc1LCAwLjA1NjI1LCAwLjA3NSwgMC4wOTc1LCAwLjExODc1IiwgXAotICAgICAgICAgICIwLjAwMzc1LCAwLjAxNSwgMC4wMjc1LCAwLjA0NjI1LCAwLjA1ODc1LCAwLjA4MTI1LCAwLjEwMjUiLCBcCi0gICAgICAgICAgIi0wLjAwNSwgMC4wMDYyNSwgMC4wMTg3NSwgMC4wMzEyNSwgMC4wNSwgMC4wNzI1LCAwLjA5Mzc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJSTiZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJSTl9FUV8xX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTQzNzUsIDAuMTI2MjUsIDAuMTEzNzUsIDAuMDk1LCAwLjA3NjI1LCAwLjA1Mzc1LCAwLjAzODc1IiwgXAotICAgICAgICAgICIwLjE1NSwgMC4xMzc1LCAwLjEyNSwgMC4xMDYyNSwgMC4wODc1LCAwLjA2NSwgMC4wNSIsIFwKLSAgICAgICAgICAiMC4xNjc1LCAwLjE1NjI1LCAwLjEzNzUsIDAuMTE4NzUsIDAuMSwgMC4wNzc1LCAwLjA2MjUiLCBcCi0gICAgICAgICAgIjAuMTgsIDAuMTY4NzUsIDAuMTUsIDAuMTMxMjUsIDAuMTE4NzUsIDAuMDk2MjUsIDAuMDc1IiwgXAotICAgICAgICAgICIwLjE5MjUsIDAuMTgxMjUsIDAuMTYyNSwgMC4xNDM3NSwgMC4xMzEyNSwgMC4xMDg3NSwgMC4wODc1IiwgXAotICAgICAgICAgICIwLjIxNSwgMC4yMDM3NSwgMC4xODUsIDAuMTY2MjUsIDAuMTQ3NSwgMC4xMjUsIDAuMTEiLCBcCi0gICAgICAgICAgIjAuMjMsIDAuMjE4NzUsIDAuMiwgMC4xODEyNSwgMC4xNjg3NSwgMC4xNDYyNSwgMC4xMjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODc1LCAwLjA3LCAwLjA1NzUsIDAuMDM4NzUsIDAuMDI2MjUsIC0wLjAwMjUsIC0wLjAyMzc1IiwgXAotICAgICAgICAgICIwLjA5ODc1LCAwLjA4MTI1LCAwLjA2ODc1LCAwLjA1LCAwLjAzNzUsIDAuMDA4NzUsIC0wLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMTExMjUsIDAuMDkzNzUsIDAuMDgxMjUsIDAuMDYyNSwgMC4wNSwgMC4wMjEyNSwgMCIsIFwKLSAgICAgICAgICAiMC4xMjM3NSwgMC4xMDYyNSwgMC4wOTM3NSwgMC4wNzUsIDAuMDYyNSwgMC4wMzM3NSwgMC4wMTI1IiwgXAotICAgICAgICAgICIwLjEzLCAwLjExODc1LCAwLjEwNjI1LCAwLjA4NzUsIDAuMDY4NzUsIDAuMDQ2MjUsIDAuMDI1IiwgXAotICAgICAgICAgICIwLjE1MjUsIDAuMTQxMjUsIDAuMTIyNSwgMC4xMSwgMC4wOTEyNSwgMC4wNjI1LCAwLjA0MTI1IiwgXAotICAgICAgICAgICIwLjE2NzUsIDAuMTU2MjUsIDAuMTM3NSwgMC4xMjUsIDAuMTA2MjUsIDAuMDc3NSwgMC4wNTYyNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjExNDg0NzsKLSAgICBmdW5jdGlvbiA6ICJOMzUiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5vbl91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcmlzaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMwMTMwMywgMC4zNDQ1NywgMC41ODkxMTUsIDAuODA0ODQ2LCAxLjA5MjUyLCAxLjY2NzgxLCAyLjAyNzQxIiwgXAotICAgICAgICAgICIwLjMxMzE2NCwgMC4zNTY0MzIsIDAuNjAwOTYxLCAwLjgxNjcsIDEuMTA0MzcsIDEuNjc5NjgsIDIuMDM5MjEiLCBcCi0gICAgICAgICAgIjAuMzI4MjQ4LCAwLjM3MTUyMywgMC42MTYwNTQsIDAuODMxNzk0LCAxLjExOTQ2LCAxLjY5NDc4LCAyLjA1NDMxIiwgXAotICAgICAgICAgICIwLjM0MzcxOSwgMC4zODY5ODgsIDAuNjMxNTMxLCAwLjg0NzMxNiwgMS4xMzQ5MywgMS43MTAyMiwgMi4wNjk4MSIsIFwKLSAgICAgICAgICAiMC4zNTkwMywgMC40MDIzMDEsIDAuNjQ2ODMxLCAwLjg2MjU3LCAxLjE1MDI0LCAxLjcyNTU1LCAyLjA4NTEiLCBcCi0gICAgICAgICAgIjAuMzgzMjkyLCAwLjQyNjU2MSwgMC42NzExMDEsIDAuODg2ODQ1LCAxLjE3NDU3LCAxLjc0OTc5LCAyLjEwOTM4IiwgXAotICAgICAgICAgICIwLjQwNDIwOSwgMC40NDc0ODEsIDAuNjkyMDEyLCAwLjkwNzc1MiwgMS4xOTU0MiwgMS43NzA3MywgMi4xMzAyNiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNjExMjgsIDAuMjQ3MzgsIDAuNzQxOTA4LCAxLjE4MDksIDEuNzY4NTgsIDIuOTM1MTUsIDMuNjY0NjMiLCBcCi0gICAgICAgICAgIjAuMTYxMTc4LCAwLjI0NzM5OCwgMC43NDM1MjksIDEuMTgwOTksIDEuNzY4NSwgMi45MzUzOCwgMy42NzE2NSIsIFwKLSAgICAgICAgICAiMC4xNjExMjYsIDAuMjQ3Mzg1LCAwLjc0MzU1LCAxLjE4MSwgMS43Njg1MSwgMi45MzU0MiwgMy42NzE2MyIsIFwKLSAgICAgICAgICAiMC4xNjExMzEsIDAuMjQ3MzgxLCAwLjc0MjYzNywgMS4xODMxLCAxLjc2NTY2LCAyLjkzNzk3LCAzLjY2NTk2IiwgXAotICAgICAgICAgICIwLjE2MTE4OCwgMC4yNDczOTksIDAuNzQzNTM4LCAxLjE4MDk0LCAxLjc2ODQ5LCAyLjkzNTM1LCAzLjY3MTc2IiwgXAotICAgICAgICAgICIwLjE2MTEzNCwgMC4yNDczODIsIDAuNzQyNTkyLCAxLjE4Mjg3LCAxLjc2ODkzLCAyLjkzOSwgMy42NjU5OSIsIFwKLSAgICAgICAgICAiMC4xNjExMjYsIDAuMjQ3Mzg1LCAwLjc0MzU0OCwgMS4xODA5OSwgMS43Njg1LCAyLjkzNTQyLCAzLjY3MTYxIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjM0NzkzNiwgMC4zOTc0MDQsIDAuNjc3MjQsIDAuOTI0MTA5LCAxLjI1MzMyLCAxLjkxMTQ3LCAyLjMyMjkzIiwgXAotICAgICAgICAgICIwLjM1OTc0MiwgMC40MDkyMjYsIDAuNjg5MDQ4LCAwLjkzNTksIDEuMjY1MDYsIDEuOTIzMzUsIDIuMzM0OTgiLCBcCi0gICAgICAgICAgIjAuMzc0OTYyLCAwLjQyNDQ0MiwgMC43MDQyNzcsIDAuOTUxMTEzLCAxLjI4MDI4LCAxLjkzODU3LCAyLjM1MDEiLCBcCi0gICAgICAgICAgIjAuMzkwNTUxLCAwLjQ0MDAyMiwgMC43MTk4NjUsIDAuOTY2NzM5LCAxLjI5NTg1LCAxLjk1NDEzLCAyLjM2NTU3IiwgXAotICAgICAgICAgICIwLjQwNTkwOSwgMC40NTUzODQsIDAuNzM1MjI1LCAwLjk4MjA1NiwgMS4zMTEyMywgMS45Njk1MiwgMi4zODEwMSIsIFwKLSAgICAgICAgICAiMC40MzAzMzEsIDAuNDc5ODA3LCAwLjc1OTY0MiwgMS4wMDY0OCwgMS4zMzU2NCwgMS45OTM5NCwgMi40MDU0NiIsIFwKLSAgICAgICAgICAiMC40NTE0MTgsIDAuNTAwODksIDAuNzgwNzMyLCAxLjAyNzYsIDEuMzU2NzQsIDIuMDE0OTgsIDIuNDI2NDYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTc4MzI2LCAwLjI3NTIxMSwgMC44MzA3MDcsIDEuMzIzOCwgMS45Nzc5NSwgMy4yODQ4NSwgNC4wOTYzNCIsIFwKLSAgICAgICAgICAiMC4xNzgzNCwgMC4yNzUzMiwgMC44MzE4ODcsIDEuMzI0LCAxLjk3NjE1LCAzLjI4MjA2LCA0LjA5ODE5IiwgXAotICAgICAgICAgICIwLjE3ODMwNiwgMC4yNzUyNywgMC44MzA2ODEsIDEuMzIzODIsIDEuOTc2MDMsIDMuMjgxMzIsIDQuMTA0MjMiLCBcCi0gICAgICAgICAgIjAuMTc4MjgsIDAuMjc1MjAzLCAwLjgzMDUxNSwgMS4zMjM4NywgMS45NzkyMSwgMy4yODc5OCwgNC4wOTc3NCIsIFwKLSAgICAgICAgICAiMC4xNzgzMDcsIDAuMjc1MjE4LCAwLjgzMTE5MywgMS4zMjM3MSwgMS45NzYwOCwgMy4yODEzLCA0LjEwNDM2IiwgXAotICAgICAgICAgICIwLjE3ODMwOSwgMC4yNzUyNjcsIDAuODMwNzUyLCAxLjMyMzczLCAxLjk3NjEyLCAzLjI4MTE4LCA0LjEwNDI2IiwgXAotICAgICAgICAgICIwLjE3ODI5MywgMC4yNzUyMTUsIDAuODMxMzcyLCAxLjMyMzc2LCAxLjk3ODkxLCAzLjI4NDI5LCA0LjEwMDM4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiBjbGVhcjsKLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuNDA5MjE3LCAwLjQ1ODcwNywgMC43Mzg1MzcsIDAuOTg1NDExLCAxLjMxNDYsIDEuOTcyOCwgMi4zODQyNCIsIFwKLSAgICAgICAgICAiMC40MjA3MywgMC40NzAyMjMsIDAuNzUwMDY1LCAwLjk5Njk1NiwgMS4zMjYwNCwgMS45ODQzMSwgMi4zOTU3NSIsIFwKLSAgICAgICAgICAiMC40MzU3NDYsIDAuNDg1MjMzLCAwLjc2NTA4MywgMS4wMTE5NCwgMS4zNDEwNywgMS45OTkzMSwgMi40MTA4IiwgXAotICAgICAgICAgICIwLjQ1MDQ2NywgMC40OTk5NTksIDAuNzc5ODA1LCAxLjAyNjY1LCAxLjM1NTc4LCAyLjAxNDA0LCAyLjQyNTQ2IiwgXAotICAgICAgICAgICIwLjQ2NDU0NiwgMC41MTQwNDEsIDAuNzkzOTA2LCAxLjA0MDc0LCAxLjM2OTg2LCAyLjAyODEzLCAyLjQzOTU2IiwgXAotICAgICAgICAgICIwLjQ4NzQ4OCwgMC41MzY5NzksIDAuODE2ODI4LCAxLjA2MzcyLCAxLjM5MjgsIDIuMDUxMDMsIDIuNDYyNDIiLCBcCi0gICAgICAgICAgIjAuNTA1NjUxLCAwLjU1NTE0NSwgMC44MzQ5ODUsIDEuMDgxOTIsIDEuNDEwOTUsIDIuMDY5MjMsIDIuNDgwNTkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTc4MTk1LCAwLjI3NTQwNSwgMC44MzIwMDYsIDEuMzIzNjQsIDEuOTc3NjQsIDMuMjg4NDIsIDQuMTAzMjIiLCBcCi0gICAgICAgICAgIjAuMTc4MjE3LCAwLjI3NTQ1MywgMC44MzIwMywgMS4zMjI2OCwgMS45Nzc4MywgMy4yODg0MiwgNC4xMDQ4MiIsIFwKLSAgICAgICAgICAiMC4xNzgxNzIsIDAuMjc1MTUxLCAwLjgzMTc5NCwgMS4zMjM2LCAxLjk3NzE4LCAzLjI4ODI5LCA0LjEwNDM0IiwgXAotICAgICAgICAgICIwLjE3ODE5NywgMC4yNzU0OTEsIDAuODMyMDUsIDEuMzIzNjcsIDEuOTc3MjUsIDMuMjg5MDIsIDQuMTA0MDUiLCBcCi0gICAgICAgICAgIjAuMTc4MTc3LCAwLjI3NTM0NywgMC44MzIxNTQsIDEuMzIzNjEsIDEuOTc5MjQsIDMuMjg4OTcsIDQuMTAyNzMiLCBcCi0gICAgICAgICAgIjAuMTc4MjQ0LCAwLjI3NTQyNywgMC44MzIwNjksIDEuMzIzMDQsIDEuOTc3NTUsIDMuMjkwNjIsIDQuMTAxNjkiLCBcCi0gICAgICAgICAgIjAuMTc4MjMxLCAwLjI3NTA2MiwgMC44MzIwNjYsIDEuMzIyOTYsIDEuOTc3NjQsIDMuMjg3MDYsIDQuMTA1MTMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiU04iOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHByZXNldDsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjQ5MjksIDAuMjkyNTE3LCAwLjUzNzEyOSwgMC43NTI4ODgsIDEuMDQwNTMsIDEuNjE1ODcsIDEuOTc1MzYiLCBcCi0gICAgICAgICAgIjAuMjYwOTU2LCAwLjMwNDE5MiwgMC41NDg3NDYsIDAuNzY0NTQsIDEuMDUyMiwgMS42Mjc0OCwgMS45ODcwNSIsIFwKLSAgICAgICAgICAiMC4yNzUwMTEsIDAuMzE4MjY2LCAwLjU2Mjg3NywgMC43Nzg1OTYsIDEuMDY2MjcsIDEuNjQxNTgsIDIuMDAxMSIsIFwKLSAgICAgICAgICAiMC4yODkyMDksIDAuMzMyNCwgMC41NzY5NjYsIDAuNzkyNzIxLCAxLjA4MDMzLCAxLjY1NTYzLCAyLjAxNTE4IiwgXAotICAgICAgICAgICIwLjMwMzkxNSwgMC4zNDcxMDYsIDAuNTkxNjUsIDAuODA3NDI4LCAxLjA5NTA5LCAxLjY3MDMyLCAyLjAyOTg5IiwgXAotICAgICAgICAgICIwLjMyNzAxNCwgMC4zNzAyMTYsIDAuNjE0NzkxLCAwLjgzMDQ2LCAxLjExODE2LCAxLjY5MzQ1LCAyLjA1MzA3IiwgXAotICAgICAgICAgICIwLjM0NzA1NiwgMC4zOTAyNDcsIDAuNjM0ODE4LCAwLjg1MDU2NCwgMS4xMzgxOCwgMS43MTM0OCwgMi4wNzMwMyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNjAzMTgsIDAuMjQ3MDA2LCAwLjc0Mzk0NiwgMS4xODI4LCAxLjc2ODcsIDIuOTM5NDYsIDMuNjcyMDUiLCBcCi0gICAgICAgICAgIjAuMTYwNDU5LCAwLjI0NzAxNiwgMC43NDM3ODYsIDEuMTgyODMsIDEuNzY4NywgMi45MzU4NCwgMy42NzI0NCIsIFwKLSAgICAgICAgICAiMC4xNjA0NTYsIDAuMjQ3MDA2LCAwLjc0Mzk4NCwgMS4xODI5OSwgMS43Njg2LCAyLjkzOTg1LCAzLjY3MTciLCBcCi0gICAgICAgICAgIjAuMTYwNDU0LCAwLjI0Njc3MywgMC43NDM3NzMsIDEuMTgyOTIsIDEuNzY4MzgsIDIuOTQwMzMsIDMuNjcyMTQiLCBcCi0gICAgICAgICAgIjAuMTYwNDU0LCAwLjI0NjczNiwgMC43NDM3NzQsIDEuMTgyODQsIDEuNzY4NjQsIDIuOTM5MDUsIDMuNjciLCBcCi0gICAgICAgICAgIjAuMTYwNDk0LCAwLjI0NjcwMiwgMC43NDM4NTYsIDEuMTgyOTcsIDEuNzY4MDEsIDIuOTQwMSwgMy42NzIyNSIsIFwKLSAgICAgICAgICAiMC4xNjAxODcsIDAuMjQ2OTk3LCAwLjc0MzgxNCwgMS4xODMwMywgMS43Njg1LCAyLjkzOTY2LCAzLjY3MjI2Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjM2OTg1MywgMC40MTkzNDEsIDAuNjk5MTc1LCAwLjk0NjA0NywgMS4yNzUzLCAxLjkzMzQ0LCAyLjM0NDg5IiwgXAotICAgICAgICAgICIwLjM4MTcyNSwgMC40MzEyMTYsIDAuNzExMDU5LCAwLjk1Nzk2LCAxLjI4NzAzLCAxLjk0NTMxLCAyLjM1Njc0IiwgXAotICAgICAgICAgICIwLjM5NjAxMSwgMC40NDU1MDMsIDAuNzI1MzQ2LCAwLjk3MjMxNiwgMS4zMDEzMiwgMS45NTk2LCAyLjM3MDk5IiwgXAotICAgICAgICAgICIwLjQwOTc1NCwgMC40NTkyNDYsIDAuNzM5MDksIDAuOTg2MDQ0LCAxLjMxNTA2LCAxLjk3MzM0LCAyLjM4NDcxIiwgXAotICAgICAgICAgICIwLjQyMzE0LCAwLjQ3MjYzMywgMC43NTI0NzUsIDAuOTk5Mzc0LCAxLjMyODQ1LCAxLjk4NjcyLCAyLjM5ODEzIiwgXAotICAgICAgICAgICIwLjQ0NDY2MiwgMC40OTQxNDYsIDAuNzc0MDI1LCAxLjAyMDg1LCAxLjM1LCAyLjAwODIxLCAyLjQxOTciLCBcCi0gICAgICAgICAgIjAuNDYzNDE3LCAwLjUxMjkwOCwgMC43OTI3NTIsIDEuMDM5NjYsIDEuMzY4NzIsIDIuMDI3LCAyLjQzODM5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE3ODE4NSwgMC4yNzU1MjUsIDAuODMxNTc0LCAxLjMyMzcyLCAxLjk3NzYsIDMuMjg5MTksIDQuMTA0MTIiLCBcCi0gICAgICAgICAgIjAuMTc4MjU2LCAwLjI3NTQ5NywgMC44MzIwMjEsIDEuMzIyMzMsIDEuOTc3MzksIDMuMjg4MiwgNC4xMDQ4NyIsIFwKLSAgICAgICAgICAiMC4xNzgxOTgsIDAuMjc1NDA4LCAwLjgzMjA0NiwgMS4zMjIxNCwgMS45NzcwNywgMy4yODgsIDQuMTA0OTYiLCBcCi0gICAgICAgICAgIjAuMTc4MTk1LCAwLjI3NTQ3LCAwLjgzMjA1NywgMS4zMjIyLCAxLjk3NjE5LCAzLjI4NzkxLCA0LjEwNSIsIFwKLSAgICAgICAgICAiMC4xNzgyNDUsIDAuMjc1NDg2LCAwLjgzMjA0NSwgMS4zMjIyNywgMS45NzczNywgMy4yODg0NiwgNC4xMDQ5NyIsIFwKLSAgICAgICAgICAiMC4xNzgxODksIDAuMjc1NDEsIDAuODMxNTM0LCAxLjMyMzQ5LCAxLjk3NjU3LCAzLjI4MzI3LCA0LjEwMzYyIiwgXAotICAgICAgICAgICIwLjE3ODIwMywgMC4yNzU0ODcsIDAuODMyMDU3LCAxLjMyMjY0LCAxLjk3NzE5LCAzLjI4ODM4LCA0LjEwNDk0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjgxLCAwLjAwNjgxNCwgMC4wMDY4MTksIDAuMDA2ODIsIDAuMDA2ODIsIDAuMDA2ODIyLCAwLjAwNjgyIiwgXAotICAgICAgICAgICIwLjAwNjc5OSwgMC4wMDY4MDMsIDAuMDA2ODA4LCAwLjAwNjgwOSwgMC4wMDY4MDksIDAuMDA2ODEsIDAuMDA2ODEiLCBcCi0gICAgICAgICAgIjAuMDA2Nzg3LCAwLjAwNjc5LCAwLjAwNjc5NSwgMC4wMDY3OTYsIDAuMDA2Nzk2LCAwLjAwNjc5NywgMC4wMDY3OTYiLCBcCi0gICAgICAgICAgIjAuMDA2Nzc3LCAwLjAwNjc4MSwgMC4wMDY3ODYsIDAuMDA2Nzg3LCAwLjAwNjc4NywgMC4wMDY3ODgsIDAuMDA2Nzg4IiwgXAotICAgICAgICAgICIwLjAwNjc3MSwgMC4wMDY3NzQsIDAuMDA2Nzc5LCAwLjAwNjc4LCAwLjAwNjc4LCAwLjAwNjc4MSwgMC4wMDY3ODEiLCBcCi0gICAgICAgICAgIjAuMDA2NzU4LCAwLjAwNjc2MiwgMC4wMDY3NjcsIDAuMDA2NzY4LCAwLjAwNjc2OCwgMC4wMDY3NjgsIDAuMDA2NzY5IiwgXAotICAgICAgICAgICIwLjAwNjc1MiwgMC4wMDY3NTYsIDAuMDA2NzYsIDAuMDA2NzYyLCAwLjAwNjc2MiwgMC4wMDY3NjIsIDAuMDA2NzYyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2NDkzLCAwLjAwNjQ5OSwgMC4wMDY1MDcsIDAuMDA2NTA5LCAwLjAwNjUwOSwgMC4wMDY1MSwgMC4wMDY1MSIsIFwKLSAgICAgICAgICAiMC4wMDY0NzksIDAuMDA2NDg1LCAwLjAwNjQ5MywgMC4wMDY0OTQsIDAuMDA2NDk1LCAwLjAwNjQ5NiwgMC4wMDY0OTYiLCBcCi0gICAgICAgICAgIjAuMDA2NDY5LCAwLjAwNjQ3NSwgMC4wMDY0ODMsIDAuMDA2NDg1LCAwLjAwNjQ4NiwgMC4wMDY0ODYsIDAuMDA2NDg2IiwgXAotICAgICAgICAgICIwLjAwNjQ2MiwgMC4wMDY0NjgsIDAuMDA2NDc2LCAwLjAwNjQ3NywgMC4wMDY0NzgsIDAuMDA2NDc4LCAwLjAwNjQ3OSIsIFwKLSAgICAgICAgICAiMC4wMDY0NTksIDAuMDA2NDY0LCAwLjAwNjQ3MiwgMC4wMDY0NzQsIDAuMDA2NDc1LCAwLjAwNjQ3NSwgMC4wMDY0NzYiLCBcCi0gICAgICAgICAgIjAuMDA2NDU2LCAwLjAwNjQ2MSwgMC4wMDY0NjksIDAuMDA2NDcxLCAwLjAwNjQ3MiwgMC4wMDY0NzIsIDAuMDA2NDczIiwgXAotICAgICAgICAgICIwLjAwNjQ2LCAwLjAwNjQ2NSwgMC4wMDY0NzMsIDAuMDA2NDc1LCAwLjAwNjQ3NiwgMC4wMDY0NzYsIDAuMDA2NDc3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUk4iOwotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwODU0LCAwLjAwODU0NiwgMC4wMDg1NTUsIDAuMDA4NTU3LCAwLjAwODU1NywgMC4wMDg1NTgsIDAuMDA4NTU5IiwgXAotICAgICAgICAgICIwLjAwODUzMSwgMC4wMDg1MzcsIDAuMDA4NTQ2LCAwLjAwODU0OCwgMC4wMDg1NDksIDAuMDA4NTQ5LCAwLjAwODU1IiwgXAotICAgICAgICAgICIwLjAwODUyMywgMC4wMDg1MjksIDAuMDA4NTM4LCAwLjAwODU0LCAwLjAwODU0MSwgMC4wMDg1NDEsIDAuMDA4NTQyIiwgXAotICAgICAgICAgICIwLjAwODUxNSwgMC4wMDg1MjIsIDAuMDA4NTMxLCAwLjAwODUzMiwgMC4wMDg1MzMsIDAuMDA4NTM0LCAwLjAwODUzNCIsIFwKLSAgICAgICAgICAiMC4wMDg1MDgsIDAuMDA4NTE0LCAwLjAwODUyMywgMC4wMDg1MjUsIDAuMDA4NTI2LCAwLjAwODUyNywgMC4wMDg1MjciLCBcCi0gICAgICAgICAgIjAuMDA4NTA1LCAwLjAwODUxMSwgMC4wMDg1MiwgMC4wMDg1MjIsIDAuMDA4NTIzLCAwLjAwODUyNCwgMC4wMDg1MjQiLCBcCi0gICAgICAgICAgIjAuMDA4NDk5LCAwLjAwODUwNiwgMC4wMDg1MTQsIDAuMDA4NTE2LCAwLjAwODUxNywgMC4wMDg1MTgsIDAuMDA4NTE4Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3Bvd2VyKHNjYWxhcikgewotICAgICAgICB2YWx1ZXMoIjAiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA4MDc4LCAwLjAwODA4MSwgMC4wMDgwODQsIDAuMDA4MDg1LCAwLjAwODA4NCwgMC4wMDgwODYsIDAuMDA4MDg0IiwgXAotICAgICAgICAgICIwLjAwODA1OSwgMC4wMDgwNjIsIDAuMDA4MDY1LCAwLjAwODA2NSwgMC4wMDgwNjYsIDAuMDA4MDY2LCAwLjAwODA2NSIsIFwKLSAgICAgICAgICAiMC4wMDgwNDYsIDAuMDA4MDQ4LCAwLjAwODA1MywgMC4wMDgwNTMsIDAuMDA4MDUzLCAwLjAwODA1NCwgMC4wMDgwNTIiLCBcCi0gICAgICAgICAgIjAuMDA4MDM4LCAwLjAwODA0MSwgMC4wMDgwNDUsIDAuMDA4MDQ1LCAwLjAwODA0NSwgMC4wMDgwNDUsIDAuMDA4MDQ0IiwgXAotICAgICAgICAgICIwLjAwODAyOSwgMC4wMDgwMzMsIDAuMDA4MDM1LCAwLjAwODAzNiwgMC4wMDgwMzcsIDAuMDA4MDM2LCAwLjAwODAzNiIsIFwKLSAgICAgICAgICAiMC4wMDgwMjEsIDAuMDA4MDI0LCAwLjAwODAyOSwgMC4wMDgwMjksIDAuMDA4MDI4LCAwLjAwODAzLCAwLjAwODAyOCIsIFwKLSAgICAgICAgICAiMC4wMDgwMTcsIDAuMDA4MDIsIDAuMDA4MDIzLCAwLjAwODAyNCwgMC4wMDgwMjQsIDAuMDA4MDI0LCAwLjAwODAyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjA5MSwgMC4wMDYwOTcsIDAuMDA2MTA2LCAwLjAwNjEwOCwgMC4wMDYxMDksIDAuMDA2MTEsIDAuMDA2MTEiLCBcCi0gICAgICAgICAgIjAuMDA2MDcxLCAwLjAwNjA3NywgMC4wMDYwODYsIDAuMDA2MDg4LCAwLjAwNjA4OCwgMC4wMDYwODksIDAuMDA2MDg5IiwgXAotICAgICAgICAgICIwLjAwNjA1NywgMC4wMDYwNjMsIDAuMDA2MDcyLCAwLjAwNjA3MywgMC4wMDYwNzQsIDAuMDA2MDc1LCAwLjAwNjA3NSIsIFwKLSAgICAgICAgICAiMC4wMDYwNDcsIDAuMDA2MDUzLCAwLjAwNjA2MiwgMC4wMDYwNjMsIDAuMDA2MDY1LCAwLjAwNjA2NSwgMC4wMDYwNjYiLCBcCi0gICAgICAgICAgIjAuMDA2MDM5LCAwLjAwNjA0NSwgMC4wMDYwNTUsIDAuMDA2MDU2LCAwLjAwNjA1NywgMC4wMDYwNTgsIDAuMDA2MDU4IiwgXAotICAgICAgICAgICIwLjAwNjAzMSwgMC4wMDYwMzcsIDAuMDA2MDQ1LCAwLjAwNjA0OCwgMC4wMDYwNDgsIDAuMDA2MDQ5LCAwLjAwNjA1IiwgXAotICAgICAgICAgICIwLjAwNjAyNCwgMC4wMDYwMywgMC4wMDYwMzksIDAuMDA2MDQxLCAwLjAwNjA0MiwgMC4wMDYwNDMsIDAuMDA2MDQzIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihSTikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNTU0OTM5OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDU1NDU2OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDU1NDkzOTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA2NTgsIDAuMDAwNjQ1LCAwLjAwMDYzNSwgMC4wMDA2MywgMC4wMDA2MjcsIDAuMDAwNjI0LCAwLjAwMDYyMyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjEwOCwgMC4wMDIxLCAwLjAwMjA5NCwgMC4wMDIwOSwgMC4wMDIwODgsIDAuMDAyMDg2LCAwLjAwMjA4NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQmU04iOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC40MDkyMTcsIDAuNDIwNzMsIDAuNDM1NzQ2LCAwLjQ1MDQ2NywgMC40NjQ1NDYsIDAuNDg3NDg4LCAwLjUwNTY1MSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJlY292ZXJ5X3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiRCZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzFfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChyZWNvdmVyeV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMjUsIDAuMTEzNzUsIDAuMDk1LCAwLjA3NjI1LCAwLjA2Mzc1LCAwLjAzNSwgMC4wMTM3NSIsIFwKLSAgICAgICAgICAiMC4xMzYyNSwgMC4xMjUsIDAuMTA2MjUsIDAuMDkzNzUsIDAuMDc1LCAwLjA0NjI1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiMC4xNDg3NSwgMC4xMzc1LCAwLjEyNSwgMC4xMDYyNSwgMC4wODc1LCAwLjA2NSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4xNjc1LCAwLjE1NjI1LCAwLjEzNzUsIDAuMTE4NzUsIDAuMTA2MjUsIDAuMDc3NSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiMC4xOCwgMC4xNjg3NSwgMC4xNTYyNSwgMC4xMzc1LCAwLjExODc1LCAwLjA5NjI1LCAwLjA3NSIsIFwKLSAgICAgICAgICAiMC4yMDg3NSwgMC4xOTEyNSwgMC4xNzg3NSwgMC4xNiwgMC4xNDc1LCAwLjExODc1LCAwLjA5NzUiLCBcCi0gICAgICAgICAgIjAuMjMsIDAuMjEyNSwgMC4yLCAwLjE4MTI1LCAwLjE2MjUsIDAuMTQsIDAuMTE4NzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiU04iOwotICAgICAgdGltaW5nX3R5cGUgOiByZWNvdmVyeV9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEIjsKLSAgICAgIHNkZl9jb25kIDogIkQgPT0gMSdiMCI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQocmVjb3ZlcnlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTYyNSwgMC4xNzM3NSwgMC4xODYyNSwgMC4xOTg3NSwgMC4yMTEyNSwgMC4yMzM3NSwgMC4yNDg3NSIsIFwKLSAgICAgICAgICAiMC4xNTEyNSwgMC4xNjI1LCAwLjE3NSwgMC4xODc1LCAwLjIsIDAuMjIyNSwgMC4yMzc1IiwgXAotICAgICAgICAgICIwLjEzODc1LCAwLjE1LCAwLjE2MjUsIDAuMTc1LCAwLjE4NzUsIDAuMjEsIDAuMjI1IiwgXAotICAgICAgICAgICIwLjEyNjI1LCAwLjEzNzUsIDAuMTUsIDAuMTYyNSwgMC4xNzUsIDAuMTk3NSwgMC4yMTI1IiwgXAotICAgICAgICAgICIwLjExMzc1LCAwLjEyNSwgMC4xNDM3NSwgMC4xNTYyNSwgMC4xNjg3NSwgMC4xODUsIDAuMjA2MjUiLCBcCi0gICAgICAgICAgIjAuMTAzNzUsIDAuMTE1LCAwLjEyNzUsIDAuMTQsIDAuMTUyNSwgMC4xNzUsIDAuMTkiLCBcCi0gICAgICAgICAgIjAuMDk1LCAwLjEwNjI1LCAwLjExODc1LCAwLjEzMTI1LCAwLjE0Mzc1LCAwLjE2NjI1LCAwLjE4MTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogcmVtb3ZhbF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIkQmU04iOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8xX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQocmVtb3ZhbF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDMxMjUsIC0wLjAyLCAtMC4wMDEyNSwgMC4wMTEyNSwgMC4wMywgMC4wNTI1LCAwLjA3Mzc1IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzEyNSwgLTAuMDEyNSwgMCwgMC4wMTg3NSwgMC4wNDEyNSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNDM3NSwgLTAuMDMxMjUsIC0wLjAxMjUsIDAsIDAuMDIyNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDczNzUsIC0wLjA2MjUsIC0wLjA0Mzc1LCAtMC4wMzEyNSwgLTAuMDEyNSwgMC4wMSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDg2MjUsIC0wLjA3NSwgLTAuMDYyNSwgLTAuMDQzNzUsIC0wLjAzMTI1LCAtMC4wMDg3NSwgMC4wMTI1IiwgXAotICAgICAgICAgICItMC4xMDg3NSwgLTAuMDk3NSwgLTAuMDg1LCAtMC4wNzI1LCAtMC4wNTM3NSwgLTAuMDMxMjUsIC0wLjAxIiwgXAotICAgICAgICAgICItMC4xMywgLTAuMTE4NzUsIC0wLjEwNjI1LCAtMC4wODc1LCAtMC4wNzUsIC0wLjA1MjUsIC0wLjAzMTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTTikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNzk4Njk7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNzk4Njg7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNzk4Njk7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNDg1LCAwLjAwMDQ4NCwgMC4wMDA0ODQsIDAuMDAwNDg0LCAwLjAwMDQ4NCwgMC4wMDA0ODQsIDAuMDAwNDg0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNDg2LCAwLjAwMDQ4NiwgMC4wMDA0ODYsIDAuMDAwNDg2LCAwLjAwMDQ4NiwgMC4wMDA0ODcsIDAuMDAwNDg3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRCYhUk4iOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1JOX0VRXzAgPT0gMSdiMSI7Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4yNDkyOSwgMC4yNjA5MDIsIDAuMjc1MDAxLCAwLjI4OTIwOSwgMC4zMDM5MTQsIDAuMzI3MDEzLCAwLjM0NzA1NiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJlY292ZXJ5X3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUQmUk4iOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1JOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQocmVjb3ZlcnlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE4NzUsIDAuMDA3NSwgLTAuMDExMjUsIC0wLjAyMzc1LCAtMC4wNDI1LCAtMC4wNzEyNSwgLTAuMDkyNSIsIFwKLSAgICAgICAgICAiMC4wMywgMC4wMTg3NSwgMCwgLTAuMDEyNSwgLTAuMDMxMjUsIC0wLjA2LCAtMC4wODEyNSIsIFwKLSAgICAgICAgICAiMC4wNDI1LCAwLjAzMTI1LCAwLjAxODc1LCAwLCAtMC4wMTg3NSwgLTAuMDQxMjUsIC0wLjA2ODc1IiwgXAotICAgICAgICAgICIwLjA2MTI1LCAwLjA0Mzc1LCAwLjAzMTI1LCAwLjAxMjUsIC0wLjAwNjI1LCAtMC4wMjg3NSwgLTAuMDUiLCBcCi0gICAgICAgICAgIjAuMDczNzUsIDAuMDYyNSwgMC4wNDM3NSwgMC4wMjUsIDAuMDEyNSwgLTAuMDE2MjUsIC0wLjAzNzUiLCBcCi0gICAgICAgICAgIjAuMDk2MjUsIDAuMDc4NzUsIDAuMDY2MjUsIDAuMDQ3NSwgMC4wMjg3NSwgMC4wMDYyNSwgLTAuMDE1IiwgXAotICAgICAgICAgICIwLjExMTI1LCAwLjEsIDAuMDgxMjUsIDAuMDY4NzUsIDAuMDUsIDAuMDIxMjUsIDAiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiByZW1vdmFsX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUQmUk4iOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1JOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQocmVtb3ZhbF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODEyNSwgMC4wOTI1LCAwLjExMTI1LCAwLjEyMzc1LCAwLjE0MjUsIDAuMTY1LCAwLjE4NjI1IiwgXAotICAgICAgICAgICIwLjA3NjI1LCAwLjA4NzUsIDAuMSwgMC4xMTI1LCAwLjEzMTI1LCAwLjE1Mzc1LCAwLjE3NSIsIFwKLSAgICAgICAgICAiMC4wNTc1LCAwLjA2ODc1LCAwLjA4NzUsIDAuMSwgMC4xMTg3NSwgMC4xNDEyNSwgMC4xNjI1IiwgXAotICAgICAgICAgICIwLjA0NSwgMC4wNTYyNSwgMC4wNzUsIDAuMDg3NSwgMC4xMDYyNSwgMC4xMjg3NSwgMC4xNSIsIFwKLSAgICAgICAgICAiMC4wMzI1LCAwLjA0Mzc1LCAwLjA2MjUsIDAuMDc1LCAwLjA5Mzc1LCAwLjExNjI1LCAwLjEzNzUiLCBcCi0gICAgICAgICAgIjAuMDEsIDAuMDIxMjUsIDAuMDQsIDAuMDUyNSwgMC4wNzEyNSwgMC4wOTM3NSwgMC4xMTUiLCBcCi0gICAgICAgICAgIi0wLjAwNSwgMC4wMDYyNSwgMC4wMTg3NSwgMC4wMzc1LCAwLjA1LCAwLjA3ODc1LCAwLjA5Mzc1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBERkZTUkhRWDIgKgotICogLS0tLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChERkZTUkhRWDIpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4zNzM3MjQ7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgZmYgKE4zNSxRQklOVCkgewotICAgIG5leHRfc3RhdGUgOiAiRCI7Ci0gICAgY2xvY2tlZF9vbiA6ICJDSyI7Ci0gICAgY2xlYXIgOiAiKCFSTikiOwotICAgIHByZXNldCA6ICIoIVNOKSI7Ci0gICAgY2xlYXJfcHJlc2V0X3ZhcjEgOiBIOwotICB9Ci0gIHBpbihDSykgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNTQ2NzMxOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDU0NjUxNTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA1NDY3MzE7Ci0gICAgY2xvY2sgOiB0cnVlOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzA4NiwgMC4wMDMwNzQsIDAuMDAzMDY0LCAwLjAwMzA1OCwgMC4wMDMwNTIsIDAuMDAzMDQ1LCAwLjAwMzA0MiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNjY4LCAwLjAwNjY2OSwgMC4wMDY2NTgsIDAuMDA2NjUsIDAuMDA2NjQ1LCAwLjAwNjYzNywgMC4wMDY2MzQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFEJlJOJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9STl9FUV8xX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4zMTkxMDIsIDAuMzMwOTM2LCAwLjM0NjI0OCwgMC4zNjE2NjUsIDAuMzc3MTc5LCAwLjQwMTU5MiwgMC40MjI2NDMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjI2MDkyNiwgMC4yNzIzNTUsIDAuMjg3NDQ1LCAwLjMwMjI0NiwgMC4zMTY5NiwgMC4zMzk4NjUsIDAuMzU5NDU2Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihEKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA3MjQyMDY7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNzIxNDQzOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDcyNDIwNjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDI5NDUsIDAuMDAyOTI5LCAwLjAwMjkxOCwgMC4wMDI5MSwgMC4wMDI5MDUsIDAuMDAyODk2LCAwLjAwMjg5MSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzIxNywgMC4wMDMyMDksIDAuMDAzMjAzLCAwLjAwMzE5NywgMC4wMDMxOTMsIDAuMDAzMTg3LCAwLjAwMzE4MyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJSTiZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJSTl9FUV8xX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDQzNzUsIC0wLjAzMjUsIC0wLjAyLCAtMC4wMDc1LCAtMC4wMDEyNSwgMC4wMTUsIDAuMDMiLCBcCi0gICAgICAgICAgIi0wLjA1NSwgLTAuMDQzNzUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgMC4wMDM3NSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDY3NSwgLTAuMDU2MjUsIC0wLjA0Mzc1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMDg3NSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDgsIC0wLjA2ODc1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjAzNzUsIC0wLjAyMTI1LCAtMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wOTI1LCAtMC4wODEyNSwgLTAuMDY4NzUsIC0wLjA2MjUsIC0wLjA1LCAtMC4wMzM3NSwgLTAuMDI1IiwgXAotICAgICAgICAgICItMC4xMTUsIC0wLjEwMzc1LCAtMC4wOTEyNSwgLTAuMDc4NzUsIC0wLjA3MjUsIC0wLjA1NjI1LCAtMC4wNDEyNSIsIFwKLSAgICAgICAgICAiLTAuMTMsIC0wLjExODc1LCAtMC4xMDYyNSwgLTAuMSwgLTAuMDg3NSwgLTAuMDcxMjUsIC0wLjA2MjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2MjUsIDAuMDczNzUsIDAuMDkyNSwgMC4xMDUsIDAuMTE3NSwgMC4xNDYyNSwgMC4xNjc1IiwgXAotICAgICAgICAgICIwLjA1MTI1LCAwLjA2MjUsIDAuMDgxMjUsIDAuMDkzNzUsIDAuMTA2MjUsIDAuMTM1LCAwLjE1IiwgXAotICAgICAgICAgICIwLjAzODc1LCAwLjA1LCAwLjA2MjUsIDAuMDgxMjUsIDAuMDkzNzUsIDAuMTE2MjUsIDAuMTM3NSIsIFwKLSAgICAgICAgICAiMC4wMjYyNSwgMC4wMzc1LCAwLjA1LCAwLjA2ODc1LCAwLjA4MTI1LCAwLjExLCAwLjEzMTI1IiwgXAotICAgICAgICAgICIwLjAyLCAwLjAzMTI1LCAwLjA0Mzc1LCAwLjA1NjI1LCAwLjA3NSwgMC4wOTc1LCAwLjExODc1IiwgXAotICAgICAgICAgICIwLjAwMzc1LCAwLjAxNSwgMC4wMjc1LCAwLjA0NjI1LCAwLjA1ODc1LCAwLjA4MTI1LCAwLjEwMjUiLCBcCi0gICAgICAgICAgIi0wLjAwNSwgMC4wMDYyNSwgMC4wMTg3NSwgMC4wMzc1LCAwLjA1LCAwLjA3MjUsIDAuMDkzNzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlJOJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIlJOX0VRXzFfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNDM3NSwgMC4xMzI1LCAwLjExMzc1LCAwLjA5NSwgMC4wNzYyNSwgMC4wNTM3NSwgMC4wMzg3NSIsIFwKLSAgICAgICAgICAiMC4xNTUsIDAuMTQzNzUsIDAuMTI1LCAwLjEwNjI1LCAwLjA5Mzc1LCAwLjA2NSwgMC4wNSIsIFwKLSAgICAgICAgICAiMC4xNjc1LCAwLjE1NjI1LCAwLjEzNzUsIDAuMTE4NzUsIDAuMTA2MjUsIDAuMDgzNzUsIDAuMDYyNSIsIFwKLSAgICAgICAgICAiMC4xOCwgMC4xNjg3NSwgMC4xNSwgMC4xMzEyNSwgMC4xMTg3NSwgMC4wOTYyNSwgMC4wNzUiLCBcCi0gICAgICAgICAgIjAuMTkyNSwgMC4xODEyNSwgMC4xNjI1LCAwLjE0Mzc1LCAwLjEzMTI1LCAwLjEwODc1LCAwLjA4NzUiLCBcCi0gICAgICAgICAgIjAuMjE1LCAwLjIwMzc1LCAwLjE4NSwgMC4xNjYyNSwgMC4xNTM3NSwgMC4xMzEyNSwgMC4xMSIsIFwKLSAgICAgICAgICAiMC4yMzYyNSwgMC4yMTg3NSwgMC4yLCAwLjE4NzUsIDAuMTY4NzUsIDAuMTQ2MjUsIDAuMTMxMjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODc1LCAwLjA3NjI1LCAwLjA1NzUsIDAuMDM4NzUsIDAuMDI2MjUsIC0wLjAwMjUsIC0wLjAyMzc1IiwgXAotICAgICAgICAgICIwLjA5ODc1LCAwLjA4NzUsIDAuMDY4NzUsIDAuMDUsIDAuMDM3NSwgMC4wMDg3NSwgLTAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4xMTEyNSwgMC4xLCAwLjA4MTI1LCAwLjA2ODc1LCAwLjA1LCAwLjAyMTI1LCAwIiwgXAotICAgICAgICAgICIwLjEyMzc1LCAwLjExMjUsIDAuMDkzNzUsIDAuMDc1LCAwLjA2MjUsIDAuMDMzNzUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4xMzYyNSwgMC4xMjUsIDAuMTA2MjUsIDAuMDg3NSwgMC4wNzUsIDAuMDQ2MjUsIDAuMDI1IiwgXAotICAgICAgICAgICIwLjE1MjUsIDAuMTQxMjUsIDAuMTIyNSwgMC4xMSwgMC4wOTEyNSwgMC4wNjI1LCAwLjA0MTI1IiwgXAotICAgICAgICAgICIwLjE2NzUsIDAuMTU2MjUsIDAuMTM3NSwgMC4xMjUsIDAuMTA2MjUsIDAuMDgzNzUsIDAuMDU2MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFEpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4yNTc0NzM7Ci0gICAgZnVuY3Rpb24gOiAiTjM1IjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBub25fdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJpc2luZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yNzk1MTIsIDAuNDU5NzAzLCAwLjYwMjg2NSwgMC43ODE3ODIsIDAuOTYwNzI3LCAxLjEzOTY3LCAxLjMxODYiLCBcCi0gICAgICAgICAgIjAuMjkxNDA4LCAwLjQ3MTY2MywgMC42MTQ4MjYsIDAuNzkzNzUsIDAuOTcyNjc4LCAxLjE1MTYyLCAxLjMzMDU4IiwgXAotICAgICAgICAgICIwLjMwNjU0OSwgMC40ODY3MDgsIDAuNjI5ODY4LCAwLjgwODc4MSwgMC45ODc3MjEsIDEuMTY2NjUsIDEuMzQ1NjUiLCBcCi0gICAgICAgICAgIjAuMzIyMTEzLCAwLjUwMjI3NCwgMC42NDU0NDUsIDAuODI0MzU3LCAxLjAwMzMsIDEuMTgyMjIsIDEuMzYxMTgiLCBcCi0gICAgICAgICAgIjAuMzM3NDYsIDAuNTE3NjUsIDAuNjYwODIyLCAwLjgzOTcyNCwgMS4wMTg2OCwgMS4xOTc2MiwgMS4zNzY1NCIsIFwKLSAgICAgICAgICAiMC4zNjE0NzEsIDAuNTQxNjE1LCAwLjY4NDc4NiwgMC44NjM3MywgMS4wNDI2NCwgMS4yMjE1NywgMS40MDA1IiwgXAotICAgICAgICAgICIwLjM4MjQzNSwgMC41NjI3MSwgMC43MDU4NzEsIDAuODg0NzgxLCAxLjA2MzczLCAxLjI0MjY2LCAxLjQyMTc5Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5MzMxNCwgMC40NTAwMDYsIDAuNzM5MTU5LCAxLjEwNTU2LCAxLjQ3MDQ5LCAxLjgzMjE2LCAyLjE5NjQ3IiwgXAotICAgICAgICAgICIwLjA5MzI4LCAwLjQ1MDAxNCwgMC43Mzk0MzQsIDEuMTA1NjksIDEuNDcwNDMsIDEuODMyMDIsIDIuMjAwMDgiLCBcCi0gICAgICAgICAgIjAuMDkzMzk0LCAwLjQ1MDA0NCwgMC43Mzk1ODIsIDEuMTAzODYsIDEuNDcwNDQsIDEuODM0OTQsIDIuMjAwMjMiLCBcCi0gICAgICAgICAgIjAuMDkzMzE4LCAwLjQ0OTQxNCwgMC43Mzk1NTYsIDEuMTAzODMsIDEuNDcwNDUsIDEuODM0OTYsIDIuMTk2MzkiLCBcCi0gICAgICAgICAgIjAuMDkzMzE3LCAwLjQ0OTk4NSwgMC43NDExMTksIDEuMTAzNzgsIDEuNDcwNDUsIDEuODMyMjMsIDIuMTk2NDkiLCBcCi0gICAgICAgICAgIjAuMDkzNDAxLCAwLjQ0OTk4OSwgMC43Mzk1OTksIDEuMTA1ODIsIDEuNDcwNDYsIDEuODM0OTYsIDIuMTk5NjQiLCBcCi0gICAgICAgICAgIjAuMDkzMjk4LCAwLjQ0OTE4MiwgMC43Mzk0NzEsIDEuMTAzOTEsIDEuNDcwNDQsIDEuODM0NTIsIDIuMTk0NyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMTkxMDIsIDAuNTI2MTExLCAwLjY5MTAwNywgMC44OTcwNjQsIDEuMTAzMTksIDEuMzA5MjcsIDEuNTE1MzIiLCBcCi0gICAgICAgICAgIjAuMzMwOTM2LCAwLjUzNzk5LCAwLjcwMjg3OCwgMC45MDg5MzUsIDEuMTE1MDYsIDEuMzIxMTIsIDEuNTI3MTgiLCBcCi0gICAgICAgICAgIjAuMzQ2MjQ4LCAwLjU1MzI4NiwgMC43MTgxOTYsIDAuOTI0MjcxLCAxLjEzMDMzLCAxLjMzNjUxLCAxLjU0MjUzIiwgXAotICAgICAgICAgICIwLjM2MTY2NSwgMC41Njg3MywgMC43MzM1NywgMC45Mzk2NTksIDEuMTQ1NzQsIDEuMzUxODQsIDEuNTU3OTYiLCBcCi0gICAgICAgICAgIjAuMzc3MTc5LCAwLjU4NDIxOCwgMC43NDkxMjksIDAuOTU1MjA0LCAxLjE2MTI2LCAxLjM2NzQsIDEuNTczNDYiLCBcCi0gICAgICAgICAgIjAuNDAxNTkyLCAwLjYwODYyOSwgMC43NzM1MzksIDAuOTc5NjA1LCAxLjE4NTY3LCAxLjM5MTg5LCAxLjU5Nzg3IiwgXAotICAgICAgICAgICIwLjQyMjY0MywgMC42Mjk2OSwgMC43OTQ1OTYsIDEuMDAwNjMsIDEuMjA2NzcsIDEuNDEyODIsIDEuNjE4OTMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTAwODk5LCAwLjUwNTk2MSwgMC44MzI0MDMsIDEuMjQ3NTQsIDEuNjU1MzIsIDIuMDY2NzEsIDIuNDc3NTUiLCBcCi0gICAgICAgICAgIjAuMTAwODAxLCAwLjUwNTExMiwgMC44MzM0ODMsIDEuMjQ3NiwgMS42NTUxNCwgMi4wNjcyMiwgMi40NzcxNCIsIFwKLSAgICAgICAgICAiMC4xMDA3NywgMC41MDU1NjMsIDAuODMyODMyLCAxLjI0NDA1LCAxLjY1NjMyLCAyLjA2OTMzLCAyLjQ3NjI0IiwgXAotICAgICAgICAgICIwLjEwMDg3OSwgMC41MDUzOCwgMC44MzU3MTUsIDEuMjQ0NDcsIDEuNjU5MzcsIDIuMDY2NzEsIDIuNDc1MiIsIFwKLSAgICAgICAgICAiMC4xMDA3NzIsIDAuNTA1NDA1LCAwLjgzMjU5NiwgMS4yNDQyMiwgMS42NTYzNSwgMi4wNjk2OSwgMi40NzYzMiIsIFwKLSAgICAgICAgICAiMC4xMDA3NzUsIDAuNTA1NTMyLCAwLjgzMjYyNiwgMS4yNDMyNiwgMS42NTYzNSwgMi4wNjQ1NCwgMi40NzU4NCIsIFwKLSAgICAgICAgICAiMC4xMDA3OSwgMC41MDU5MTcsIDAuODM2MTc5LCAxLjI0NDE5LCAxLjY1ODk2LCAyLjA2NjI2LCAyLjQ3NDQ2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiBjbGVhcjsKLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzc5MjY4LCAwLjU4NjI0OSwgMC43NTExMTIsIDAuOTU3MjkxLCAxLjE2MzMzLCAxLjM2OTM5LCAxLjU3NTQyIiwgXAotICAgICAgICAgICIwLjM5MDc0LCAwLjU5NzY5NywgMC43NjI1NiwgMC45Njg2NiwgMS4xNzQ3OSwgMS4zODA4NCwgMS41ODY4NiIsIFwKLSAgICAgICAgICAiMC40MDU2OTQsIDAuNjEyNjIyLCAwLjc3NzUwNSwgMC45ODM1OSwgMS4xODk2OSwgMS4zOTU3OCwgMS42MDE4NSIsIFwKLSAgICAgICAgICAiMC40MjA1MjcsIDAuNjI3NDE4LCAwLjc5MjI5MywgMC45OTg0MTIsIDEuMjA0NSwgMS40MTA2MSwgMS42MTY3NSIsIFwKLSAgICAgICAgICAiMC40MzQ1MjQsIDAuNjQxNDg1LCAwLjgwNjM0OCwgMS4wMTI1MSwgMS4yMTg2LCAxLjQyNDYyLCAxLjYzMDY1IiwgXAotICAgICAgICAgICIwLjQ1NzI3NiwgMC42NjQyNTUsIDAuODI5MTE5LCAxLjAzNTI4LCAxLjI0MTMyLCAxLjQ0NzM5LCAxLjY1MzUiLCBcCi0gICAgICAgICAgIjAuNDc1MTM0LCAwLjY4MjA5LCAwLjg0Njk1NSwgMS4wNTMwOSwgMS4yNTkxNCwgMS40NjUyMywgMS42NzEyNSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDA4OTksIDAuNTA2MDk5LCAwLjgzNTg2NywgMS4yNDU3NSwgMS42NTg0MiwgMi4wNjk4OSwgMi40Nzk5MSIsIFwKLSAgICAgICAgICAiMC4xMDA5NjksIDAuNTA2MDI5LCAwLjgzNTg1NSwgMS4yNDYyNywgMS42NTY5NiwgMi4wNjk4OCwgMi40Nzg1MiIsIFwKLSAgICAgICAgICAiMC4xMDA5ODUsIDAuNTA2NjE2LCAwLjgzNTgyNCwgMS4yNDY1MywgMS42NTcyOSwgMi4wNzAxNSwgMi40Nzk5OSIsIFwKLSAgICAgICAgICAiMC4xMDA5OTEsIDAuNTA2ODc3LCAwLjgzNTk5NSwgMS4yNDY1NSwgMS42NTcwMiwgMi4wNjY3NCwgMi40ODA3MSIsIFwKLSAgICAgICAgICAiMC4xMDA5MTgsIDAuNTA2MDkxLCAwLjgzNTgzOSwgMS4yNDU5LCAxLjY1ODAyLCAyLjA2OTc4LCAyLjQ3OTg3IiwgXAotICAgICAgICAgICIwLjEwMDkwNywgMC41MDYxOTUsIDAuODM1ODQzLCAxLjI0NzEsIDEuNjU4NjMsIDIuMDY5NzYsIDIuNDc5OCIsIFwKLSAgICAgICAgICAiMC4xMDEwNTUsIDAuNTA2NzQyLCAwLjgzNTg5OCwgMS4yNDY5MSwgMS42NTczNSwgMi4wNjk5NywgMi40ODA1NyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcHJlc2V0OwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMjcyNzUsIDAuNDA3MjI3LCAwLjU1MDQwMiwgMC43MjkzODgsIDAuOTA4MzA2LCAxLjA4NzI0LCAxLjI2NjE4IiwgXAotICAgICAgICAgICIwLjIzODk4MSwgMC40MTg4OTQsIDAuNTYyMDY1LCAwLjc0MTAwOSwgMC45MTk5NiwgMS4wOTg4NywgMS4yNzc4NCIsIFwKLSAgICAgICAgICAiMC4yNTI5ODMsIDAuNDMyOTUsIDAuNTc2MDUsIDAuNzU1MDc3LCAwLjkzNDAzMSwgMS4xMTI5OCwgMS4yOTE5MiIsIFwKLSAgICAgICAgICAiMC4yNjYyMjQsIDAuNDQ2MDg3LCAwLjU4OTI2LCAwLjc2ODIyNCwgMC45NDcxMjUsIDEuMTI2MSwgMS4zMDUwNCIsIFwKLSAgICAgICAgICAiMC4yODA4MDgsIDAuNDYwNTY5LCAwLjYwMzczNCwgMC43ODI2NjMsIDAuOTYxNTk0LCAxLjE0MDU1LCAxLjMxOTQ1IiwgXAotICAgICAgICAgICIwLjMwMzk1OCwgMC40ODM2OCwgMC42MjY4NjEsIDAuODA1NzkyLCAwLjk4NDcxOCwgMS4xNjM2NywgMS4zNDI1OCIsIFwKLSAgICAgICAgICAiMC4zMjM4NTksIDAuNTAzNjQ5LCAwLjY0Njg0OCwgMC44MjU3NDksIDEuMDA0NjksIDEuMTgzNjEsIDEuMzYyNiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTE4NzMsIDAuNDQ5NzA2LCAwLjc0MTE4NiwgMS4xMDUxMSwgMS40NzA1MSwgMS44MzU1NiwgMi4yMDAwNyIsIFwKLSAgICAgICAgICAiMC4wOTE4NiwgMC40NDk4NjEsIDAuNzQxMTg2LCAxLjEwNTk1LCAxLjQ3MDc5LCAxLjgzNTU1LCAyLjIwMDAzIiwgXAotICAgICAgICAgICIwLjA5MTg3MywgMC40NDk1NTEsIDAuNzQxMjQ5LCAxLjEwNDA4LCAxLjQ3MDczLCAxLjgzNTU3LCAyLjIwMDA5IiwgXAotICAgICAgICAgICIwLjA5MTg1NywgMC40NDg4NzUsIDAuNzQxMTg5LCAxLjEwNTg5LCAxLjQ3MDYxLCAxLjgzNTU2LCAyLjE5ODYyIiwgXAotICAgICAgICAgICIwLjA5MTkxMSwgMC40NDk1NTUsIDAuNzQxMjk2LCAxLjEwNTM5LCAxLjQ3MDY5LCAxLjgzNTM2LCAyLjIwMDA4IiwgXAotICAgICAgICAgICIwLjA5MTg0NCwgMC40NDk0OTEsIDAuNzQxMTU0LCAxLjEwNTcyLCAxLjQ3MDY4LCAxLjgzNTM3LCAyLjE5OTk2IiwgXAotICAgICAgICAgICIwLjA5MTgzOSwgMC40NDk4MjIsIDAuNzQxMTc4LCAxLjEwNTczLCAxLjQ3MDU5LCAxLjgzNTUzLCAyLjE5NjU3Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjM0MTk1NSwgMC41NDg5MTIsIDAuNzEzNzc3LCAwLjkxOTg3MSwgMS4xMjU5NiwgMS4zMzIwNiwgMS41MzgwOCIsIFwKLSAgICAgICAgICAiMC4zNTM3NzEsIDAuNTYwNzUyLCAwLjcyNTYxNiwgMC45MzE3MDgsIDEuMTM3OCwgMS4zNDM5LCAxLjU0OTkyIiwgXAotICAgICAgICAgICIwLjM2ODEwOCwgMC41NzUwODEsIDAuNzM5OTQ1LCAwLjk0NjAzNiwgMS4xNTIxMywgMS4zNTgyMiwgMS41NjQyNCIsIFwKLSAgICAgICAgICAiMC4zODE3ODMsIDAuNTg4NzYsIDAuNzUzNjI3LCAwLjk1OTcxOCwgMS4xNjU4MSwgMS4zNzE5MSwgMS41Nzc5NiIsIFwKLSAgICAgICAgICAiMC4zOTUyNjUsIDAuNjAyMjIzLCAwLjc2NzA4NywgMC45NzMxNjgsIDEuMTc5MjcsIDEuMzg1MywgMS41OTE0NCIsIFwKLSAgICAgICAgICAiMC40MTY4LCAwLjYyMzc2OSwgMC43ODg2MzMsIDAuOTk0NzUsIDEuMjAwOCwgMS40MDY5LCAxLjYxMzAyIiwgXAotICAgICAgICAgICIwLjQzNTUwNywgMC42NDI0OCwgMC44MDczNDMsIDEuMDEzNDcsIDEuMjE5NTMsIDEuNDI1NjEsIDEuNjMxNzMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTAwOTIyLCAwLjUwNjExNywgMC44MzU4NjQsIDEuMjQ2MTQsIDEuNjU3NzgsIDIuMDY3MjksIDIuNDc4OSIsIFwKLSAgICAgICAgICAiMC4xMDA5ODEsIDAuNTA2MDk1LCAwLjgzNTgzNywgMS4yNDY0OSwgMS42NTcyNSwgMi4wNjkxLCAyLjQ4MDAxIiwgXAotICAgICAgICAgICIwLjEwMDk0OSwgMC41MDYxNTYsIDAuODM1ODQyLCAxLjI0NjU3LCAxLjY1Njc0LCAyLjA2OTg2LCAyLjQ3OTM1IiwgXAotICAgICAgICAgICIwLjEwMDk1NiwgMC41MDYwNTcsIDAuODM1Nzg4LCAxLjI0NTgzLCAxLjY1NzQ5LCAyLjA2NjI1LCAyLjQ4MTk2IiwgXAotICAgICAgICAgICIwLjEwMDkwOCwgMC41MDYxNTYsIDAuODM1NjU4LCAxLjI0NjI0LCAxLjY1NjU3LCAyLjA3MTIxLCAyLjQ3OTciLCBcCi0gICAgICAgICAgIjAuMTAwOTM0LCAwLjUwNTY0LCAwLjgzNTgzMSwgMS4yNDczMywgMS42NTkyNCwgMi4wNjg5NCwgMi40Nzk0NyIsIFwKLSAgICAgICAgICAiMC4xMDA5MzQsIDAuNTA2MDkxLCAwLjgzNTgxOSwgMS4yNDcyLCAxLjY1ODgzLCAyLjA2OTA5LCAyLjQ3OTE0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNzUyOSwgMC4wMDc1NjYsIDAuMDA3NTcsIDAuMDA3NTczLCAwLjAwNzU3MywgMC4wMDc1NzQsIDAuMDA3NTc0IiwgXAotICAgICAgICAgICIwLjAwNzUxOCwgMC4wMDc1NTUsIDAuMDA3NTYsIDAuMDA3NTYyLCAwLjAwNzU2MywgMC4wMDc1NjMsIDAuMDA3NTY0IiwgXAotICAgICAgICAgICIwLjAwNzUwNSwgMC4wMDc1NDMsIDAuMDA3NTQ4LCAwLjAwNzU0OSwgMC4wMDc1NSwgMC4wMDc1NSwgMC4wMDc1NTEiLCBcCi0gICAgICAgICAgIjAuMDA3NDk3LCAwLjAwNzUzNCwgMC4wMDc1MzgsIDAuMDA3NTQsIDAuMDA3NTQxLCAwLjAwNzU0MSwgMC4wMDc1NDIiLCBcCi0gICAgICAgICAgIjAuMDA3NDksIDAuMDA3NTI3LCAwLjAwNzUzMSwgMC4wMDc1MzMsIDAuMDA3NTM0LCAwLjAwNzUzNSwgMC4wMDc1MzYiLCBcCi0gICAgICAgICAgIjAuMDA3NDc3LCAwLjAwNzUxNCwgMC4wMDc1MTgsIDAuMDA3NTIsIDAuMDA3NTIyLCAwLjAwNzUyMiwgMC4wMDc1MjMiLCBcCi0gICAgICAgICAgIjAuMDA3NDcxLCAwLjAwNzUwOCwgMC4wMDc1MTMsIDAuMDA3NTE1LCAwLjAwNzUxNiwgMC4wMDc1MTYsIDAuMDA3NTE2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA3Mzg2LCAwLjAwNzQzOCwgMC4wMDc0NDUsIDAuMDA3NDQ4LCAwLjAwNzQ1LCAwLjAwNzQ1MSwgMC4wMDc0NTIiLCBcCi0gICAgICAgICAgIjAuMDA3Mzc1LCAwLjAwNzQyNiwgMC4wMDc0MzMsIDAuMDA3NDM2LCAwLjAwNzQzOCwgMC4wMDc0MzksIDAuMDA3NDQiLCBcCi0gICAgICAgICAgIjAuMDA3MzY0LCAwLjAwNzQxNSwgMC4wMDc0MjIsIDAuMDA3NDI1LCAwLjAwNzQyNywgMC4wMDc0MjgsIDAuMDA3NDI5IiwgXAotICAgICAgICAgICIwLjAwNzM1NCwgMC4wMDc0MDYsIDAuMDA3NDEzLCAwLjAwNzQxNywgMC4wMDc0MTgsIDAuMDA3NDE5LCAwLjAwNzQyIiwgXAotICAgICAgICAgICIwLjAwNzM1MywgMC4wMDc0MDUsIDAuMDA3NDExLCAwLjAwNzQxNCwgMC4wMDc0MTYsIDAuMDA3NDE3LCAwLjAwNzQxOCIsIFwKLSAgICAgICAgICAiMC4wMDczNTEsIDAuMDA3NDAyLCAwLjAwNzQwOCwgMC4wMDc0MTEsIDAuMDA3NDEzLCAwLjAwNzQxNCwgMC4wMDc0MTUiLCBcCi0gICAgICAgICAgIjAuMDA3MzU0LCAwLjAwNzQwNiwgMC4wMDc0MTIsIDAuMDA3NDE2LCAwLjAwNzQxNywgMC4wMDc0MTgsIDAuMDA3NDE5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUk4iOwotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwOTMyNiwgMC4wMDkzODEsIDAuMDA5Mzg4LCAwLjAwOTM5MSwgMC4wMDkzOTMsIDAuMDA5Mzk1LCAwLjAwOTM5NSIsIFwKLSAgICAgICAgICAiMC4wMDkzMTYsIDAuMDA5MzcxLCAwLjAwOTM3OCwgMC4wMDkzODIsIDAuMDA5Mzg0LCAwLjAwOTM4NSwgMC4wMDkzODYiLCBcCi0gICAgICAgICAgIjAuMDA5MzA4LCAwLjAwOTM2MywgMC4wMDkzNywgMC4wMDkzNzQsIDAuMDA5Mzc2LCAwLjAwOTM3NywgMC4wMDkzNzgiLCBcCi0gICAgICAgICAgIjAuMDA5MzAxLCAwLjAwOTM1NiwgMC4wMDkzNjMsIDAuMDA5MzY3LCAwLjAwOTM2OSwgMC4wMDkzNywgMC4wMDkzNzEiLCBcCi0gICAgICAgICAgIjAuMDA5MjkzLCAwLjAwOTM0OCwgMC4wMDkzNTUsIDAuMDA5MzU5LCAwLjAwOTM2MSwgMC4wMDkzNjIsIDAuMDA5MzYyIiwgXAotICAgICAgICAgICIwLjAwOTI5LCAwLjAwOTM0NSwgMC4wMDkzNTIsIDAuMDA5MzU2LCAwLjAwOTM1OCwgMC4wMDkzNTksIDAuMDA5MzYiLCBcCi0gICAgICAgICAgIjAuMDA5Mjg0LCAwLjAwOTMzOSwgMC4wMDkzNDYsIDAuMDA5MzQ5LCAwLjAwOTM1MiwgMC4wMDkzNTMsIDAuMDA5MzUzIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3Bvd2VyKHNjYWxhcikgewotICAgICAgICB2YWx1ZXMoIjAiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA4Nzc5LCAwLjAwODgxMiwgMC4wMDg4MTUsIDAuMDA4ODE1LCAwLjAwODgxNywgMC4wMDg4MTYsIDAuMDA4ODE4IiwgXAotICAgICAgICAgICIwLjAwODc2LCAwLjAwODc5MiwgMC4wMDg3OTYsIDAuMDA4Nzk3LCAwLjAwODc5OCwgMC4wMDg3OTgsIDAuMDA4Nzk4IiwgXAotICAgICAgICAgICIwLjAwODc0NywgMC4wMDg3OCwgMC4wMDg3ODMsIDAuMDA4NzgzLCAwLjAwODc4MywgMC4wMDg3ODQsIDAuMDA4Nzg0IiwgXAotICAgICAgICAgICIwLjAwODczNiwgMC4wMDg3NjksIDAuMDA4NzcxLCAwLjAwODc3MiwgMC4wMDg3NzMsIDAuMDA4NzczLCAwLjAwODc3MyIsIFwKLSAgICAgICAgICAiMC4wMDg3MzIsIDAuMDA4NzY1LCAwLjAwODc2OCwgMC4wMDg3NjksIDAuMDA4NzY5LCAwLjAwODc2OSwgMC4wMDg3NyIsIFwKLSAgICAgICAgICAiMC4wMDg3MjEsIDAuMDA4NzU0LCAwLjAwODc1NywgMC4wMDg3NTksIDAuMDA4NzU5LCAwLjAwODc2LCAwLjAwODc2MiIsIFwKLSAgICAgICAgICAiMC4wMDg3MTYsIDAuMDA4NzUsIDAuMDA4NzUzLCAwLjAwODc1MywgMC4wMDg3NTYsIDAuMDA4NzU0LCAwLjAwODc1NiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjk4NCwgMC4wMDcwMzksIDAuMDA3MDQ2LCAwLjAwNzA1LCAwLjAwNzA1MSwgMC4wMDcwNTMsIDAuMDA3MDU0IiwgXAotICAgICAgICAgICIwLjAwNjk2MywgMC4wMDcwMTgsIDAuMDA3MDI1LCAwLjAwNzAyOSwgMC4wMDcwMzEsIDAuMDA3MDMyLCAwLjAwNzAzMyIsIFwKLSAgICAgICAgICAiMC4wMDY5NDksIDAuMDA3MDA1LCAwLjAwNzAxMiwgMC4wMDcwMTYsIDAuMDA3MDE4LCAwLjAwNzAxOSwgMC4wMDcwMiIsIFwKLSAgICAgICAgICAiMC4wMDY5NCwgMC4wMDY5OTUsIDAuMDA3MDAyLCAwLjAwNzAwNiwgMC4wMDcwMDgsIDAuMDA3MDA5LCAwLjAwNzAxIiwgXAotICAgICAgICAgICIwLjAwNjkzMywgMC4wMDY5ODcsIDAuMDA2OTk1LCAwLjAwNjk5OCwgMC4wMDcsIDAuMDA3MDAyLCAwLjAwNzAwMiIsIFwKLSAgICAgICAgICAiMC4wMDY5MjMsIDAuMDA2OTc4LCAwLjAwNjk4NiwgMC4wMDY5ODksIDAuMDA2OTkxLCAwLjAwNjk5MywgMC4wMDY5OTMiLCBcCi0gICAgICAgICAgIjAuMDA2OTE3LCAwLjAwNjk3MiwgMC4wMDY5NzksIDAuMDA2OTgzLCAwLjAwNjk4NSwgMC4wMDY5ODYsIDAuMDA2OTg3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihSTikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNTUxNzQ1OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDU1MTQwNTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA1NTE3NDU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNjY3LCAwLjAwMDY1MywgMC4wMDA2NDMsIDAuMDAwNjM4LCAwLjAwMDYzNSwgMC4wMDA2MzIsIDAuMDAwNjMxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyMDAxLCAwLjAwMTk5MiwgMC4wMDE5ODYsIDAuMDAxOTgxLCAwLjAwMTk4LCAwLjAwMTk3OSwgMC4wMDE5NzciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUk4iOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFEJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgZmFsbF9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMzc5MjY4LCAwLjM5MDc0LCAwLjQwNTY5NCwgMC40MjA1MjcsIDAuNDM0NTI0LCAwLjQ1NzI3NiwgMC40NzUxMzQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiByZWNvdmVyeV9yaXNpbmc7Ci0gICAgICB3aGVuIDogIkQmU04iOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8xX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQocmVjb3ZlcnlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTI1LCAwLjExMzc1LCAwLjA5NSwgMC4wNzYyNSwgMC4wNjM3NSwgMC4wMzUsIDAuMDEzNzUiLCBcCi0gICAgICAgICAgIjAuMTM2MjUsIDAuMTI1LCAwLjEwNjI1LCAwLjA5Mzc1LCAwLjA3NSwgMC4wNDYyNSwgMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMTQ4NzUsIDAuMTM3NSwgMC4xMjUsIDAuMTA2MjUsIDAuMDg3NSwgMC4wNjUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMTY3NSwgMC4xNTYyNSwgMC4xMzc1LCAwLjExODc1LCAwLjEwNjI1LCAwLjA3NzUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIjAuMTgsIDAuMTY4NzUsIDAuMTU2MjUsIDAuMTM3NSwgMC4xMTg3NSwgMC4wOTYyNSwgMC4wNzUiLCBcCi0gICAgICAgICAgIjAuMjA4NzUsIDAuMTk3NSwgMC4xNzg3NSwgMC4xNiwgMC4xNDc1LCAwLjExODc1LCAwLjA5NzUiLCBcCi0gICAgICAgICAgIjAuMjMsIDAuMjEyNSwgMC4yLCAwLjE4MTI1LCAwLjE2MjUsIDAuMTQsIDAuMTE4NzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiU04iOwotICAgICAgdGltaW5nX3R5cGUgOiByZWNvdmVyeV9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEIjsKLSAgICAgIHNkZl9jb25kIDogIkQgPT0gMSdiMCI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQocmVjb3ZlcnlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTY4NzUsIDAuMTgsIDAuMTkyNSwgMC4yMDUsIDAuMjE3NSwgMC4yNCwgMC4yNTUiLCBcCi0gICAgICAgICAgIjAuMTU3NSwgMC4xNjg3NSwgMC4xODEyNSwgMC4xOTM3NSwgMC4yMDYyNSwgMC4yMjg3NSwgMC4yNDM3NSIsIFwKLSAgICAgICAgICAiMC4xNDUsIDAuMTU2MjUsIDAuMTY4NzUsIDAuMTgxMjUsIDAuMTkzNzUsIDAuMjE2MjUsIDAuMjMxMjUiLCBcCi0gICAgICAgICAgIjAuMTMyNSwgMC4xNDM3NSwgMC4xNTYyNSwgMC4xNjg3NSwgMC4xODEyNSwgMC4yMDM3NSwgMC4yMTg3NSIsIFwKLSAgICAgICAgICAiMC4xMiwgMC4xMzEyNSwgMC4xNSwgMC4xNjI1LCAwLjE3NSwgMC4xOTEyNSwgMC4yMTI1IiwgXAotICAgICAgICAgICIwLjExLCAwLjEyMTI1LCAwLjEzMzc1LCAwLjE0NjI1LCAwLjE1ODc1LCAwLjE4MTI1LCAwLjE5NjI1IiwgXAotICAgICAgICAgICIwLjEwMTI1LCAwLjExMjUsIDAuMTI1LCAwLjEzNzUsIDAuMTUsIDAuMTcyNSwgMC4xODc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogcmVtb3ZhbF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIkQmU04iOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8xX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQocmVtb3ZhbF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDMxMjUsIC0wLjAyLCAtMC4wMDEyNSwgMC4wMTEyNSwgMC4wMywgMC4wNTI1LCAwLjA3Mzc1IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzEyNSwgLTAuMDEyNSwgMCwgMC4wMTg3NSwgMC4wNDEyNSwgMC4wNjI1IiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA0Mzc1LCAtMC4wMzEyNSwgLTAuMDEyNSwgMCwgMC4wMjI1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICItMC4wNzM3NSwgLTAuMDYyNSwgLTAuMDQzNzUsIC0wLjAzMTI1LCAtMC4wMTI1LCAwLjAxLCAwLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wODYyNSwgLTAuMDc1LCAtMC4wNjI1LCAtMC4wNDM3NSwgLTAuMDMxMjUsIC0wLjAwODc1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjEwODc1LCAtMC4wOTc1LCAtMC4wODUsIC0wLjA2NjI1LCAtMC4wNTM3NSwgLTAuMDMxMjUsIC0wLjAxIiwgXAotICAgICAgICAgICItMC4xMywgLTAuMTE4NzUsIC0wLjEwNjI1LCAtMC4wODc1LCAtMC4wNzUsIC0wLjA1MjUsIC0wLjAzMTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTTikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNzg3ODQ7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNzg3ODQ7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNzg3ODI7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNDg1LCAwLjAwMDQ4NSwgMC4wMDA0ODQsIDAuMDAwNDg0LCAwLjAwMDQ4NCwgMC4wMDA0ODQsIDAuMDAwNDg0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNDg2LCAwLjAwMDQ4NiwgMC4wMDA0ODYsIDAuMDAwNDg2LCAwLjAwMDQ4NiwgMC4wMDA0ODcsIDAuMDAwNDg0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRCYhUk4iOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1JOX0VRXzAgPT0gMSdiMSI7Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4yMjcyNzUsIDAuMjM4ODc5LCAwLjI1Mjk4MywgMC4yNjYyMjQsIDAuMjgwODA4LCAwLjMwMzk1NywgMC4zMjM4NTgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiByZWNvdmVyeV9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEJlJOIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9STl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHJlY292ZXJ5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxODc1LCAwLjAwNzUsIC0wLjAwNSwgLTAuMDIzNzUsIC0wLjA0MjUsIC0wLjA2NSwgLTAuMDkyNSIsIFwKLSAgICAgICAgICAiMC4wMywgMC4wMTg3NSwgMC4wMDYyNSwgLTAuMDEyNSwgLTAuMDMxMjUsIC0wLjA1Mzc1LCAtMC4wODEyNSIsIFwKLSAgICAgICAgICAiMC4wNDg3NSwgMC4wMzc1LCAwLjAxODc1LCAwLCAtMC4wMTg3NSwgLTAuMDQxMjUsIC0wLjA2MjUiLCBcCi0gICAgICAgICAgIjAuMDYxMjUsIDAuMDUsIDAuMDMxMjUsIDAuMDEyNSwgMCwgLTAuMDI4NzUsIC0wLjA1IiwgXAotICAgICAgICAgICIwLjA3Mzc1LCAwLjA2MjUsIDAuMDQzNzUsIDAuMDMxMjUsIDAuMDEyNSwgLTAuMDE2MjUsIC0wLjAzNzUiLCBcCi0gICAgICAgICAgIjAuMDk2MjUsIDAuMDg1LCAwLjA2NjI1LCAwLjA0NzUsIDAuMDM1LCAwLjAwNjI1LCAtMC4wMTUiLCBcCi0gICAgICAgICAgIjAuMTE3NSwgMC4xLCAwLjA4NzUsIDAuMDY4NzUsIDAuMDUsIDAuMDI3NSwgMCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJlbW92YWxfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRCZSTiI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fUk5fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChyZW1vdmFsX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4MTI1LCAwLjA5MjUsIDAuMTExMjUsIDAuMTIzNzUsIDAuMTQyNSwgMC4xNjUsIDAuMTg2MjUiLCBcCi0gICAgICAgICAgIjAuMDcsIDAuMDgxMjUsIDAuMSwgMC4xMTI1LCAwLjEzMTI1LCAwLjE1Mzc1LCAwLjE3NSIsIFwKLSAgICAgICAgICAiMC4wNTc1LCAwLjA2ODc1LCAwLjA4NzUsIDAuMSwgMC4xMTg3NSwgMC4xNDEyNSwgMC4xNjI1IiwgXAotICAgICAgICAgICIwLjA0NSwgMC4wNTYyNSwgMC4wNzUsIDAuMDg3NSwgMC4xMDYyNSwgMC4xMjg3NSwgMC4xNSIsIFwKLSAgICAgICAgICAiMC4wMzI1LCAwLjA0Mzc1LCAwLjA1NjI1LCAwLjA3NSwgMC4wODc1LCAwLjExNjI1LCAwLjEzNzUiLCBcCi0gICAgICAgICAgIjAuMDEsIDAuMDIxMjUsIDAuMDQsIDAuMDUyNSwgMC4wNzEyNSwgMC4wOTM3NSwgMC4xMTUiLCBcCi0gICAgICAgICAgIi0wLjAwNSwgMC4wMDYyNSwgMC4wMTg3NSwgMC4wMzc1LCAwLjA1LCAwLjA3MjUsIDAuMDkzNzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBERkZTUlgxICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKERGRlNSWDEpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4zMTE1NzQ7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgZmYgKE4zNSxRQklOVCkgewotICAgIG5leHRfc3RhdGUgOiAiRCI7Ci0gICAgY2xvY2tlZF9vbiA6ICJDSyI7Ci0gICAgY2xlYXIgOiAiKCFSTikiOwotICAgIHByZXNldCA6ICIoIVNOKSI7Ci0gICAgY2xlYXJfcHJlc2V0X3ZhcjEgOiBIOwotICAgIGNsZWFyX3ByZXNldF92YXIyIDogTDsKLSAgfQotICBwaW4oQ0spICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDU1Njk4NDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA1NTY3Mjg7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNTU2OTg0OwotICAgIGNsb2NrIDogdHJ1ZTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDI3OTMsIDAuMDAyNzgsIDAuMDAyNzY4LCAwLjAwMjc2LCAwLjAwMjc1NSwgMC4wMDI3NDgsIDAuMDAyNzQ4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA1NzMsIDAuMDA1NzIsIDAuMDA1NzA4LCAwLjAwNTY5OSwgMC4wMDU2OTEsIDAuMDA1NjgyLCAwLjAwNTY3OCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQmUk4mU04iOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1JOX0VRXzFfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjM4MzUwMSwgMC4zOTUyMjYsIDAuNDEwNzAxLCAwLjQyNjA0MywgMC40NDEzMTgsIDAuNDY1NTgsIDAuNDg2MiIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMjYxNDczLCAwLjI3MjkwMSwgMC4yODc4NjgsIDAuMzAyNjEyLCAwLjMxNzE1OSwgMC4zMzk3ODcsIDAuMzU4NDI5Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihEKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA1NTUzNTk7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNTUzNTg4OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDU1NTM1OTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDI1NywgMC4wMDI1NTgsIDAuMDAyNTUxLCAwLjAwMjU0NSwgMC4wMDI1NDEsIDAuMDAyNTM2LCAwLjAwMjUzMiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjM4OCwgMC4wMDIzODIsIDAuMDAyMzc4LCAwLjAwMjM3NCwgMC4wMDIzNzIsIDAuMDAyMzY3LCAwLjAwMjM2NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJSTiZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJSTl9FUV8xX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDUsIC0wLjAzODc1LCAtMC4wMjYyNSwgLTAuMDIsIC0wLjAwNzUsIDAuMDAyNSwgMC4wMTc1IiwgXAotICAgICAgICAgICItMC4wNjEyNSwgLTAuMDUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgLTAuMDA4NzUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA3Mzc1LCAtMC4wNjI1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjAzMTI1LCAtMC4wMjEyNSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA4NjI1LCAtMC4wNzUsIC0wLjA2ODc1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjAzMzc1LCAtMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjEwNSwgLTAuMDkzNzUsIC0wLjA4MTI1LCAtMC4wNjg3NSwgLTAuMDYyNSwgLTAuMDQ2MjUsIC0wLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjEyMTI1LCAtMC4xMTYyNSwgLTAuMTAzNzUsIC0wLjA5MTI1LCAtMC4wNzg3NSwgLTAuMDY4NzUsIC0wLjA1Mzc1IiwgXAotICAgICAgICAgICItMC4xNDI1LCAtMC4xMzEyNSwgLTAuMTE4NzUsIC0wLjExMjUsIC0wLjEsIC0wLjA4Mzc1LCAtMC4wNzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1LCAwLjA2MTI1LCAwLjA4LCAwLjA5MjUsIDAuMTA1LCAwLjEzMzc1LCAwLjE0ODc1IiwgXAotICAgICAgICAgICIwLjAzODc1LCAwLjA1LCAwLjA2MjUsIDAuMDgxMjUsIDAuMDkzNzUsIDAuMTE2MjUsIDAuMTM3NSIsIFwKLSAgICAgICAgICAiMC4wMjYyNSwgMC4wMzc1LCAwLjA1LCAwLjA2ODc1LCAwLjA4MTI1LCAwLjEwMzc1LCAwLjEyNSIsIFwKLSAgICAgICAgICAiMC4wMTM3NSwgMC4wMjUsIDAuMDM3NSwgMC4wNTYyNSwgMC4wNjg3NSwgMC4wOTEyNSwgMC4xMTI1IiwgXAotICAgICAgICAgICIwLjAwMTI1LCAwLjAxMjUsIDAuMDMxMjUsIDAuMDQzNzUsIDAuMDU2MjUsIDAuMDg1LCAwLjEiLCBcCi0gICAgICAgICAgIi0wLjAwODc1LCAwLjAwMjUsIDAuMDE1LCAwLjAyNzUsIDAuMDQ2MjUsIDAuMDY4NzUsIDAuMDkiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTI1LCAwLjAwNjI1LCAwLjAxODc1LCAwLjAzMTI1LCAwLjA2LCAwLjA3NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiUk4mU04iOwotICAgICAgc2RmX2NvbmQgOiAiUk5fRVFfMV9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE3NSwgMC4xNjM3NSwgMC4xNDUsIDAuMTI2MjUsIDAuMTEzNzUsIDAuMDg1LCAwLjA3IiwgXAotICAgICAgICAgICIwLjE4NjI1LCAwLjE3NSwgMC4xNTYyNSwgMC4xMzc1LCAwLjEyNSwgMC4wOTYyNSwgMC4wODEyNSIsIFwKLSAgICAgICAgICAiMC4xOTg3NSwgMC4xODc1LCAwLjE2ODc1LCAwLjE1NjI1LCAwLjEzNzUsIDAuMTE1LCAwLjA5Mzc1IiwgXAotICAgICAgICAgICIwLjIxNzUsIDAuMiwgMC4xODc1LCAwLjE2ODc1LCAwLjE1LCAwLjEyNzUsIDAuMTA2MjUiLCBcCi0gICAgICAgICAgIjAuMjMsIDAuMjEyNSwgMC4yLCAwLjE4MTI1LCAwLjE2MjUsIDAuMTQsIDAuMTE4NzUiLCBcCi0gICAgICAgICAgIjAuMjUyNSwgMC4yMzUsIDAuMjIyNSwgMC4yMDM3NSwgMC4xODUsIDAuMTYyNSwgMC4xNDEyNSIsIFwKLSAgICAgICAgICAiMC4yNjc1LCAwLjI1NjI1LCAwLjIzNzUsIDAuMjE4NzUsIDAuMjA2MjUsIDAuMTc3NSwgMC4xNjI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTI1LCAwLjExMzc1LCAwLjA5NSwgMC4wODI1LCAwLjA2Mzc1LCAwLjA0MTI1LCAwLjAyIiwgXAotICAgICAgICAgICIwLjEzNjI1LCAwLjEyNSwgMC4xMDYyNSwgMC4wOTM3NSwgMC4wNzUsIDAuMDUyNSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4xNDg3NSwgMC4xMzc1LCAwLjEyNSwgMC4xMDYyNSwgMC4wODc1LCAwLjA2NSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4xNjEyNSwgMC4xNSwgMC4xMzEyNSwgMC4xMTg3NSwgMC4xLCAwLjA3NzUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIjAuMTczNzUsIDAuMTYyNSwgMC4xNDM3NSwgMC4xMzEyNSwgMC4xMTI1LCAwLjA5LCAwLjA2ODc1IiwgXAotICAgICAgICAgICIwLjE5NjI1LCAwLjE3ODc1LCAwLjE2NjI1LCAwLjE0NzUsIDAuMTM1LCAwLjEwNjI1LCAwLjA4NSIsIFwKLSAgICAgICAgICAiMC4yMTEyNSwgMC4yLCAwLjE4MTI1LCAwLjE2ODc1LCAwLjE1LCAwLjEyMTI1LCAwLjEiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFEpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4xMzQ1NTk7Ci0gICAgZnVuY3Rpb24gOiAiTjM1IjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBub25fdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJpc2luZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMjI4NTYsIDAuMzY2NDYyLCAwLjYxMTYzNywgMC44Mjk3MTcsIDEuMTE3NjYsIDEuNjkyNzQsIDIuMDU2NjYiLCBcCi0gICAgICAgICAgIjAuMzM0NDk4LCAwLjM3ODA2NywgMC42MjMyMjcsIDAuODQwODE4LCAxLjEyOTU2LCAxLjcwNTgyLCAyLjA2NzY3IiwgXAotICAgICAgICAgICIwLjM0OTc3MSwgMC4zOTMyODUsIDAuNjM4NTg5LCAwLjg1NjYxMSwgMS4xNDQ3NywgMS43MjE5MywgMi4wODE3OCIsIFwKLSAgICAgICAgICAiMC4zNjUyMDEsIDAuNDA4NzE2LCAwLjY1NDAwMSwgMC44NzIwNTksIDEuMTYwMTIsIDEuNzM3MzksIDIuMDk5NTMiLCBcCi0gICAgICAgICAgIjAuMzgwMjk0LCAwLjQyMzgxMiwgMC42NjkxMzEsIDAuODg3MTM1LCAxLjE3NTM2LCAxLjc1MjQ0LCAyLjExNTU3IiwgXAotICAgICAgICAgICIwLjQwNDQxMSwgMC40NDgwMTEsIDAuNjkzMTQ0LCAwLjkwOTY5NCwgMS4xOTkyOSwgMS43NzY0OSwgMi4xMzgwMiIsIFwKLSAgICAgICAgICAiMC40MjQ2NDMsIDAuNDY4MjQxLCAwLjcxMzM3MywgMC45MzExMTcsIDEuMjE5NzMsIDEuNzk2MjksIDIuMTU3ODgiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTY4NjY3LCAwLjI1NTI4LCAwLjc1MzA1NSwgMS4xOTEzOCwgMS43ODkwNywgMi45NDM4LCAzLjcxNDAyIiwgXAotICAgICAgICAgICIwLjE2NzAwNSwgMC4yNTUzMjYsIDAuNzU2NjEzLCAxLjE5NjM5LCAxLjc4OTE5LCAyLjk3ODMsIDMuNzE0MyIsIFwKLSAgICAgICAgICAiMC4xNjgzOTcsIDAuMjU0NjcyLCAwLjc1MzA5NCwgMS4xOTA3OCwgMS43ODkxNywgMi45NzQzMiwgMy43MDE5MyIsIFwKLSAgICAgICAgICAiMC4xNjczMTQsIDAuMjU0NTY2LCAwLjc1MzEwMiwgMS4xOTEyNiwgMS43ODkxOSwgMi45NzQzMSwgMy43MTQwOCIsIFwKLSAgICAgICAgICAiMC4xNjkzNzUsIDAuMjU0NzY2LCAwLjc1MzA4NSwgMS4xOTA0OCwgMS43ODkxNywgMi45NzQzMywgMy42ODM2OCIsIFwKLSAgICAgICAgICAiMC4xNjk1MDksIDAuMjU0Nzg1LCAwLjc1MzE4MywgMS4xOTczLCAxLjc4OTI1LCAyLjk3NzksIDMuNzE0MjUiLCBcCi0gICAgICAgICAgIjAuMTY3MTE1LCAwLjI1NTM0MywgMC43NTY2MTQsIDEuMTk2MzMsIDEuNzg5MjcsIDIuOTc4MTIsIDMuNzE0MzYiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzYyNjMzLCAwLjQxMjMzNywgMC42OTIxMjUsIDAuOTQxNDM3LCAxLjI3MjI4LCAxLjkzMjU1LCAyLjM0NjAzIiwgXAotICAgICAgICAgICIwLjM3NDM1LCAwLjQyNDA5LCAwLjcwNDgxNSwgMC45NTE0NDgsIDEuMjgzOTUsIDEuOTQ0NjIsIDIuMzU3OTEiLCBcCi0gICAgICAgICAgIjAuMzg5ODI1LCAwLjQzOTU4LCAwLjcyMDMwNiwgMC45NjcxOTMsIDEuMjk5NDEsIDEuOTYwMTEsIDIuMzczMzgiLCBcCi0gICAgICAgICAgIjAuNDA1MTUzLCAwLjQ1NDg3NCwgMC43MzU2NTQsIDAuOTg0MDEsIDEuMzE0ODQsIDEuOTc1NTEsIDIuMzgxNTgiLCBcCi0gICAgICAgICAgIjAuNDIwNDMyLCAwLjQ3MDE0OCwgMC43NTAwMTMsIDAuOTk5MjM1LCAxLjMzMDA3LCAxLjk5MDE5LCAyLjQwMzYzIiwgXAotICAgICAgICAgICIwLjQ0NDcxOSwgMC40OTQ0NCwgMC43NzUxNzQsIDEuMDIzNTMsIDEuMzU0MzQsIDIuMDE0OTcsIDIuNDI4MjIiLCBcCi0gICAgICAgICAgIjAuNDY1MzEsIDAuNTE1MDMxLCAwLjc5NTgxMiwgMS4wNDQxNywgMS4zNzQ5OSwgMi4wMzU2NiwgMi40NDE5MiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xODI3OTgsIDAuMjc3NjM5LCAwLjgzMTEzMSwgMS4zMjIwOSwgMS45NzUyNSwgMy4yODU5MiwgNC4xMDI2NiIsIFwKLSAgICAgICAgICAiMC4xODI4OCwgMC4yNzgwMzksIDAuODMyMjUyLCAxLjMyMjA4LCAxLjk3NTk1LCAzLjI4NjIxLCA0LjEwMzg1IiwgXAotICAgICAgICAgICIwLjE4Mjg3NSwgMC4yNzgwMjksIDAuODMyMjQ0LCAxLjMyMjU4LCAxLjk3NTk4LCAzLjI4NjE5LCA0LjEwMzgzIiwgXAotICAgICAgICAgICIwLjE4MjgwOCwgMC4yNzg0MzksIDAuODMyMjgzLCAxLjMyMjI5LCAxLjk3NjA3LCAzLjI4NjIxLCA0LjA5NjA1IiwgXAotICAgICAgICAgICIwLjE4MjgxOCwgMC4yNzc5NTIsIDAuODI5ODQ2LCAxLjMyMjQyLCAxLjk3NTc0LCAzLjI4NzI3LCA0LjEwNDM3IiwgXAotICAgICAgICAgICIwLjE4Mjg0NiwgMC4yNzc1NzUsIDAuODMyMjgxLCAxLjMyMjM0LCAxLjk3NTg5LCAzLjI4NjE0LCA0LjEwMzkyIiwgXAotICAgICAgICAgICIwLjE4MjgwNCwgMC4yNzg0NCwgMC44MzIyODQsIDEuMzIyMjksIDEuOTc2MDQsIDMuMjg2MiwgNC4xMDI5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiBjbGVhcjsKLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuNDUzOTUxLCAwLjUwMzU1NCwgMC43ODQ0ODMsIDEuMDMyNjQsIDEuMzYwNzMsIDIuMDI0MjMsIDIuNDMzNDIiLCBcCi0gICAgICAgICAgIjAuNDY1NDA1LCAwLjUxNDk0NywgMC43OTU4NzcsIDEuMDQ0MDUsIDEuMzcxODYsIDIuMDM1NjIsIDIuNDQ0MTUiLCBcCi0gICAgICAgICAgIjAuNDgwNDQ4LCAwLjUzMDI3MywgMC44MTA5MDIsIDEuMDU5MDcsIDEuMzg5NjksIDIuMDQ2ODUsIDIuNDYzNzMiLCBcCi0gICAgICAgICAgIjAuNDk0NzkzLCAwLjU0NDQ2OSwgMC44MjUyNjksIDEuMDczNDIsIDEuNDA0MDUsIDIuMDY0OTEsIDIuNDc3OTkiLCBcCi0gICAgICAgICAgIjAuNTA5MTI5LCAwLjU1ODgxNywgMC44Mzg4ODIsIDEuMDg3NzYsIDEuNDE4MzksIDIuMDcyNywgMi40OTIzMiIsIFwKLSAgICAgICAgICAiMC41MzAyOTgsIDAuNTc5OTA3LCAwLjg2MDUzOSwgMS4xMDg5MywgMS40Mzk1MywgMi4xMDA1MywgMi41MTM1NiIsIFwKLSAgICAgICAgICAiMC41NDcyNCwgMC41OTY5NTYsIDAuODc3Njc5LCAxLjEyNTgzLCAxLjQ1NjQ2LCAyLjExMDgyLCAyLjUzMDM2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE4MjYzMSwgMC4yNzc3NDUsIDAuODMyMTQxLCAxLjMyMjY0LCAxLjk3ODQ3LCAzLjI4ODE3LCA0LjEwNjUxIiwgXAotICAgICAgICAgICIwLjE4MjU0NCwgMC4yNzc3NzEsIDAuODMyMTU3LCAxLjMyMjM5LCAxLjk3NzcxLCAzLjI4ODgzLCA0LjEwOTY3IiwgXAotICAgICAgICAgICIwLjE4MjY0NSwgMC4yNzgzMTIsIDAuODMyMTg0LCAxLjMyMywgMS45NzgyNywgMy4yODkyNSwgNC4xMDg1NyIsIFwKLSAgICAgICAgICAiMC4xODIzNTYsIDAuMjc4MTc4LCAwLjgzMjE1MiwgMS4zMjI2NiwgMS45NzgxNSwgMy4yODg0OCwgNC4xMDY4NSIsIFwKLSAgICAgICAgICAiMC4xODI2NjYsIDAuMjc4MTgzLCAwLjgzMjE4OSwgMS4zMjMwNCwgMS45NzgyNywgMy4yODg5NSwgNC4xMDg2MSIsIFwKLSAgICAgICAgICAiMC4xODI2MDYsIDAuMjc3ODI4LCAwLjgzMjE2MiwgMS4zMjMwMiwgMS45Nzg2NywgMy4yODkxMSwgNC4xMDg4NSIsIFwKLSAgICAgICAgICAiMC4xODI2NTEsIDAuMjc4MjM2LCAwLjgzMjE4OSwgMS4zMjMwNywgMS45NzgyOCwgMy4yODkwNiwgNC4xMDg2NCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcHJlc2V0OwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yOTAyOTQsIDAuMzMzODU3LCAwLjU3OTQ0MiwgMC43OTU2NTEsIDEuMDg0NTYsIDEuNjYzNjcsIDIuMDI1NDQiLCBcCi0gICAgICAgICAgIjAuMzAxOTg1LCAwLjM0NTUzNywgMC41OTExMjQsIDAuODA3MzI4LCAxLjA5NjI0LCAxLjY3NTM2LCAyLjAzNzExIiwgXAotICAgICAgICAgICIwLjMxNjA5NiwgMC4zNTk1MTYsIDAuNjA1OTU4LCAwLjgyMTMxNiwgMS4xMTAyLCAxLjY4NzIsIDIuMDQ5NzQiLCBcCi0gICAgICAgICAgIjAuMzMxMDU2LCAwLjM3NDU3MywgMC42MjAxNjYsIDAuODM2MzgxLCAxLjEyNTI5LCAxLjcwNDM5LCAyLjA2NjE5IiwgXAotICAgICAgICAgICIwLjM0NTY1NSwgMC4zODkxNjUsIDAuNjM0Nzg0LCAwLjg1MDk4OSwgMS4xMzk4OSwgMS43MTkwMiwgMi4wODA3OCIsIFwKLSAgICAgICAgICAiMC4zNjkwNTksIDAuNDEyNjU1LCAwLjY1ODEzLCAwLjg3NDQ5NSwgMS4xNjM5OCwgMS43NDIwNiwgMi4xMDA4MSIsIFwKLSAgICAgICAgICAiMC4zODk0MDIsIDAuNDMyOTQ2LCAwLjY3ODU3MSwgMC44OTQ3NTEsIDEuMTgzNjUsIDEuNzYyOTEsIDIuMTI0NTMiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTY3MzgyLCAwLjI1MzgwMiwgMC43NTI0NDUsIDEuMjAxMTMsIDEuNzkzNjEsIDIuOTc4MzcsIDMuNzE0MzIiLCBcCi0gICAgICAgICAgIjAuMTY3OTU3LCAwLjI1MzgwNSwgMC43NTM2OCwgMS4yMDExMiwgMS43OTM0NywgMi45NzYyNywgMy43MTc5MyIsIFwKLSAgICAgICAgICAiMC4xNjYwNTYsIDAuMjU0MDMsIDAuNzUyMzksIDEuMjAxMTIsIDEuNzkzNDcsIDIuOTc4MTYsIDMuNzE0MzQiLCBcCi0gICAgICAgICAgIjAuMTY1OTcyLCAwLjI1Mzc5NiwgMC43NTUzMDQsIDEuMjAxMTIsIDEuNzkzNTksIDIuOTc3ODIsIDMuNzE4NzgiLCBcCi0gICAgICAgICAgIjAuMTY3NzAyLCAwLjI1Mzc3MSwgMC43NTQ0MzEsIDEuMjAwOTksIDEuNzkzNDMsIDIuOTc1MDUsIDMuNzE3ODciLCBcCi0gICAgICAgICAgIjAuMTY4NDI1LCAwLjI1Mzc4OSwgMC43NTMzMzQsIDEuMjAxMDMsIDEuNzkzNiwgMi45Nzc0MywgMy43MTg2NSIsIFwKLSAgICAgICAgICAiMC4xNjc5NzQsIDAuMjUzNzg3LCAwLjc1NDk2MywgMS4yMDA5NiwgMS43OTM1LCAyLjk3NDM1LCAzLjcxNDU1Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjQyOTgwOSwgMC40NzkzMzMsIDAuNzYwMzU5LCAxLjAwODYsIDEuMzM5MjcsIDIuMDAwMjUsIDIuNDEzNDIiLCBcCi0gICAgICAgICAgIjAuNDQxODI1LCAwLjQ5MTUyOSwgMC43NzI0MSwgMS4wMjA2NSwgMS4zNTEzMiwgMi4wMTIyNSwgMi40MjU0NiIsIFwKLSAgICAgICAgICAiMC40NTY3ODcsIDAuNTA2NDgxLCAwLjc4NzM4MywgMS4wMzU2MiwgMS4zNjYyOCwgMi4wMjcyLCAyLjQ0MDQyIiwgXAotICAgICAgICAgICIwLjQ3MTIyLCAwLjUyMDgyNywgMC44MDEzOTgsIDEuMDUwMDUsIDEuMzgwNzIsIDIuMDQxNzEsIDIuNDU0ODUiLCBcCi0gICAgICAgICAgIjAuNDg1MjAzLCAwLjUzNTAzNywgMC44MTQ4MTcsIDEuMDY0MDMsIDEuMzk0NzEsIDIuMDUxMiwgMi40Njg4MiIsIFwKLSAgICAgICAgICAiMC41MDczMzYsIDAuNTU2ODY4LCAwLjgzNzkzMSwgMS4wODYxOCwgMS40MTM3MiwgMi4wNzc4NiwgMi40ODU1NSIsIFwKLSAgICAgICAgICAiMC41MjY0NTIsIDAuNTc2MjkzLCAwLjg1NzAzOSwgMS4xMDUzLCAxLjQzMjkzLCAyLjA5Njk3LCAyLjUwNDc4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE4MjY0NCwgMC4yNzgwNCwgMC44MzE3OTUsIDEuMzIyMTQsIDEuOTc2NzEsIDMuMjg2MDEsIDQuMTA1MTQiLCBcCi0gICAgICAgICAgIjAuMTgyNjM4LCAwLjI3NzgzMywgMC44MzIxNzMsIDEuMzIzMDIsIDEuOTc4MjcsIDMuMjg5MDksIDQuMTA4NzgiLCBcCi0gICAgICAgICAgIjAuMTgyNTkzLCAwLjI3NzgwOSwgMC44MzIxNzIsIDEuMzIzMDIsIDEuOTc4MywgMy4yODkyMSwgNC4xMDg3OSIsIFwKLSAgICAgICAgICAiMC4xODI1NDMsIDAuMjc3ODk0LCAwLjgzMjE4LCAxLjMyMzAxLCAxLjk3ODMsIDMuMjg5MjgsIDQuMTA4OTMiLCBcCi0gICAgICAgICAgIjAuMTgyNTk4LCAwLjI3ODI5OCwgMC44MzIxODEsIDEuMzIzMDMsIDEuOTc4MzEsIDMuMjg5MjQsIDQuMTA4NzkiLCBcCi0gICAgICAgICAgIjAuMTgyNTU1LCAwLjI3ODE5MywgMC44MzIxODQsIDEuMzIzMDEsIDEuOTc4NjMsIDMuMjg5MzQsIDQuMTA4NiIsIFwKLSAgICAgICAgICAiMC4xODI1NjksIDAuMjc3ODI1LCAwLjgzMjE4MywgMS4zMjMwMiwgMS45NzgyOSwgMy4yODkzMywgNC4xMDg2MyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDM3OTUsIDAuMDAzODAxLCAwLjAwMzgwOCwgMC4wMDM4MSwgMC4wMDM4MTEsIDAuMDAzODEyLCAwLjAwMzgxMSIsIFwKLSAgICAgICAgICAiMC4wMDM3ODgsIDAuMDAzNzk0LCAwLjAwMzgwMSwgMC4wMDM4MDMsIDAuMDAzODA0LCAwLjAwMzgwNCwgMC4wMDM4MDUiLCBcCi0gICAgICAgICAgIjAuMDAzNzgyLCAwLjAwMzc4OCwgMC4wMDM3OTUsIDAuMDAzNzk3LCAwLjAwMzc5OCwgMC4wMDM3OTgsIDAuMDAzNzk4IiwgXAotICAgICAgICAgICIwLjAwMzc3NywgMC4wMDM3ODMsIDAuMDAzNzksIDAuMDAzNzkyLCAwLjAwMzc5MywgMC4wMDM3OTQsIDAuMDAzNzk0IiwgXAotICAgICAgICAgICIwLjAwMzc3MywgMC4wMDM3NzksIDAuMDAzNzg3LCAwLjAwMzc4OCwgMC4wMDM3ODksIDAuMDAzNzg5LCAwLjAwMzc5IiwgXAotICAgICAgICAgICIwLjAwMzc2OSwgMC4wMDM3NzUsIDAuMDAzNzgyLCAwLjAwMzc4NCwgMC4wMDM3ODUsIDAuMDAzNzg1LCAwLjAwMzc4NSIsIFwKLSAgICAgICAgICAiMC4wMDM3NjYsIDAuMDAzNzcyLCAwLjAwMzc3OSwgMC4wMDM3ODEsIDAuMDAzNzgyLCAwLjAwMzc4MiwgMC4wMDM3ODMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDM1ODYsIDAuMDAzNTkyLCAwLjAwMzU5OSwgMC4wMDM2MDEsIDAuMDAzNjAyLCAwLjAwMzYwMywgMC4wMDM2MDMiLCBcCi0gICAgICAgICAgIjAuMDAzNTc5LCAwLjAwMzU4NCwgMC4wMDM1OTIsIDAuMDAzNTkzLCAwLjAwMzU5NCwgMC4wMDM1OTUsIDAuMDAzNTk1IiwgXAotICAgICAgICAgICIwLjAwMzU3NCwgMC4wMDM1NzksIDAuMDAzNTg3LCAwLjAwMzU4OCwgMC4wMDM1ODksIDAuMDAzNTkxLCAwLjAwMzU5MSIsIFwKLSAgICAgICAgICAiMC4wMDM1NjksIDAuMDAzNTc1LCAwLjAwMzU4MywgMC4wMDM1ODQsIDAuMDAzNTg1LCAwLjAwMzU4NiwgMC4wMDM1ODYiLCBcCi0gICAgICAgICAgIjAuMDAzNTY4LCAwLjAwMzU3NCwgMC4wMDM1ODIsIDAuMDAzNTgzLCAwLjAwMzU4NCwgMC4wMDM1ODQsIDAuMDAzNTg1IiwgXAotICAgICAgICAgICIwLjAwMzU2NywgMC4wMDM1NzMsIDAuMDAzNTgxLCAwLjAwMzU4MiwgMC4wMDM1ODMsIDAuMDAzNTg0LCAwLjAwMzU4MyIsIFwKLSAgICAgICAgICAiMC4wMDM1NjksIDAuMDAzNTc1LCAwLjAwMzU4MywgMC4wMDM1ODQsIDAuMDAzNTg1LCAwLjAwMzU4NiwgMC4wMDM1ODYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0MjEzLCAwLjAwNDIxOSwgMC4wMDQyMjMsIDAuMDA0MjIxLCAwLjAwNDIyMSwgMC4wMDQyMTcsIDAuMDA0MjE4IiwgXAotICAgICAgICAgICIwLjAwNDIwOCwgMC4wMDQyMTQsIDAuMDA0MjE4LCAwLjAwNDIxNiwgMC4wMDQyMTQsIDAuMDA0MjEzLCAwLjAwNDIxMyIsIFwKLSAgICAgICAgICAiMC4wMDQyMDQsIDAuMDA0MjA5LCAwLjAwNDIxNCwgMC4wMDQyMTIsIDAuMDA0MjExLCAwLjAwNDIwOSwgMC4wMDQyMDgiLCBcCi0gICAgICAgICAgIjAuMDA0MiwgMC4wMDQyMDYsIDAuMDA0MjEsIDAuMDA0MjA4LCAwLjAwNDIwOCwgMC4wMDQyMDUsIDAuMDA0MjA0IiwgXAotICAgICAgICAgICIwLjAwNDE5OSwgMC4wMDQyMDQsIDAuMDA0MjA5LCAwLjAwNDIwNiwgMC4wMDQyMDUsIDAuMDA0MjAzLCAwLjAwNDIwMyIsIFwKLSAgICAgICAgICAiMC4wMDQxOTYsIDAuMDA0MjAxLCAwLjAwNDIwNSwgMC4wMDQyMDQsIDAuMDA0MjAyLCAwLjAwNDIsIDAuMDA0MiIsIFwKLSAgICAgICAgICAiMC4wMDQxOTQsIDAuMDA0MiwgMC4wMDQyMDQsIDAuMDA0MjAzLCAwLjAwNDIwMSwgMC4wMDQxOTksIDAuMDA0MTk4Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3Bvd2VyKHNjYWxhcikgewotICAgICAgICB2YWx1ZXMoIjAiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0Mjc0LCAwLjAwNDI3OSwgMC4wMDQyODUsIDAuMDA0Mjg3LCAwLjAwNDI4NywgMC4wMDQyODcsIDAuMDA0Mjg3IiwgXAotICAgICAgICAgICIwLjAwNDI2OCwgMC4wMDQyNzMsIDAuMDA0MjgsIDAuMDA0MjgxLCAwLjAwNDI4MSwgMC4wMDQyODIsIDAuMDA0MjgyIiwgXAotICAgICAgICAgICIwLjAwNDI2MywgMC4wMDQyNjgsIDAuMDA0Mjc1LCAwLjAwNDI3NiwgMC4wMDQyNzcsIDAuMDA0Mjc3LCAwLjAwNDI3NyIsIFwKLSAgICAgICAgICAiMC4wMDQyNiwgMC4wMDQyNjYsIDAuMDA0MjcyLCAwLjAwNDI3NCwgMC4wMDQyNzQsIDAuMDA0Mjc0LCAwLjAwNDI3NSIsIFwKLSAgICAgICAgICAiMC4wMDQyNTksIDAuMDA0MjYzLCAwLjAwNDI3LCAwLjAwNDI3MiwgMC4wMDQyNzIsIDAuMDA0MjczLCAwLjAwNDI3MiIsIFwKLSAgICAgICAgICAiMC4wMDQyNTUsIDAuMDA0MjU5LCAwLjAwNDI2NiwgMC4wMDQyNjcsIDAuMDA0MjY4LCAwLjAwNDI2OCwgMC4wMDQyNjgiLCBcCi0gICAgICAgICAgIjAuMDA0MjUzLCAwLjAwNDI1NywgMC4wMDQyNjUsIDAuMDA0MjY2LCAwLjAwNDI2NiwgMC4wMDQyNjcsIDAuMDA0MjY3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzMTk5LCAwLjAwMzIwNSwgMC4wMDMyMTQsIDAuMDAzMjE2LCAwLjAwMzIxNiwgMC4wMDMyMTYsIDAuMDAzMjE3IiwgXAotICAgICAgICAgICIwLjAwMzE5MywgMC4wMDMxOTksIDAuMDAzMjA3LCAwLjAwMzIwOSwgMC4wMDMyMSwgMC4wMDMyMSwgMC4wMDMyMSIsIFwKLSAgICAgICAgICAiMC4wMDMxODksIDAuMDAzMTk1LCAwLjAwMzIwMywgMC4wMDMyMDUsIDAuMDAzMjA1LCAwLjAwMzIwNiwgMC4wMDMyMDYiLCBcCi0gICAgICAgICAgIjAuMDAzMTg1LCAwLjAwMzE5MSwgMC4wMDMxOTksIDAuMDAzMjAxLCAwLjAwMzIwMiwgMC4wMDMyMDIsIDAuMDAzMjAzIiwgXAotICAgICAgICAgICIwLjAwMzE4MywgMC4wMDMxODksIDAuMDAzMTk3LCAwLjAwMzE5OSwgMC4wMDMxOTksIDAuMDAzMiwgMC4wMDMyIiwgXAotICAgICAgICAgICIwLjAwMzE4LCAwLjAwMzE4NSwgMC4wMDMxOTQsIDAuMDAzMTk1LCAwLjAwMzE5NiwgMC4wMDMxOTgsIDAuMDAzMTk2IiwgXAotICAgICAgICAgICIwLjAwMzE3OCwgMC4wMDMxODMsIDAuMDAzMTkyLCAwLjAwMzE5MywgMC4wMDMxOTQsIDAuMDAzMTk1LCAwLjAwMzE5NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUU4pICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4xMjg3ODE7Ci0gICAgZnVuY3Rpb24gOiAiUUJJTlQiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5vbl91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcmlzaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjM4MzUwMSwgMC40MjY1NzEsIDAuNjcxMDQ4LCAwLjg4Njc1MiwgMS4xNzQ0MywgMS43NDk4OSwgMi4xMDkzOCIsIFwKLSAgICAgICAgICAiMC4zOTUyMjYsIDAuNDM4Mjk5LCAwLjY4Mjc0NSwgMC44OTg0MzYsIDEuMTg2MTgsIDEuNzYxNTIsIDIuMTIxMDYiLCBcCi0gICAgICAgICAgIjAuNDEwNzAxLCAwLjQ1Mzc3NSwgMC42OTgyMiwgMC45MTM5MDYsIDEuMjAxNjYsIDEuNzc3LCAyLjEzNjU0IiwgXAotICAgICAgICAgICIwLjQyNjA0MywgMC40NjkxMjQsIDAuNzEzNTc5LCAwLjkyOTMyLCAxLjIxNjk1LCAxLjc5MjMyLCAyLjE1MTg2IiwgXAotICAgICAgICAgICIwLjQ0MTMxOCwgMC40ODQzODYsIDAuNzI4NzA2LCAwLjk0NDU1NywgMS4yMzIyNiwgMS44MDc3MywgMi4xNjcyNSIsIFwKLSAgICAgICAgICAiMC40NjU1OCwgMC41MDg2NTUsIDAuNzUzMTA2LCAwLjk2ODg0NSwgMS4yNTY1MiwgMS44MzE4OSwgMi4xOTE0MyIsIFwKLSAgICAgICAgICAiMC40ODYyLCAwLjUyOTI4MSwgMC43NzM3MzcsIDAuOTg5NDc4LCAxLjI3NzEyLCAxLjg1MjQ4LCAyLjIxMjAyIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE1OTY4OSwgMC4yNDYxMTgsIDAuNzQyNjY5LCAxLjE4NCwgMS43Njk5MSwgMi45NDIxOCwgMy42NzM4NCIsIFwKLSAgICAgICAgICAiMC4xNTk3MTcsIDAuMjQ2NDExLCAwLjc0NDY0NCwgMS4xODE3NiwgMS43NywgMi45NDE1NywgMy42NzM1OSIsIFwKLSAgICAgICAgICAiMC4xNTk3MTcsIDAuMjQ2NDE2LCAwLjc0NDYzMiwgMS4xODM1NCwgMS43NzAwMSwgMi45NDE1OCwgMy42NzM2MiIsIFwKLSAgICAgICAgICAiMC4xNTk0MDQsIDAuMjQ2OTExLCAwLjc0NDY4MSwgMS4xODQwOCwgMS43Njk3NCwgMi45NDEzNywgMy42NjcyMyIsIFwKLSAgICAgICAgICAiMC4xNTk2NzcsIDAuMjQ2Mjk4LCAwLjc0MzA2MywgMS4xODM5OCwgMS43Njk5NywgMi45NDI1LCAzLjY3NDI1IiwgXAotICAgICAgICAgICIwLjE1OTcwMywgMC4yNDYwMzgsIDAuNzQ0Njc1LCAxLjE4NDA2LCAxLjc2OTk1LCAyLjk0MTY3LCAzLjY3MzY2IiwgXAotICAgICAgICAgICIwLjE1OTQwNCwgMC4yNDY5MTIsIDAuNzQ0NjgsIDEuMTg0MDgsIDEuNzY5NzYsIDIuOTQxMzcsIDMuNjY3MzciKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzYwODkyLCAwLjQxMDIwNiwgMC42ODk5MDMsIDAuOTM2ODUsIDEuMjY1OTIsIDEuOTI0MTEsIDIuMzM1NjMiLCBcCi0gICAgICAgICAgIjAuMzcyNTEyLCAwLjQyMTgyNCwgMC43MDE1MTYsIDAuOTQ4NDIzLCAxLjI3NzU2LCAxLjkzNTcxLCAyLjM0NzIiLCBcCi0gICAgICAgICAgIjAuMzg3ODEsIDAuNDM3MTE1LCAwLjcxNjgxNywgMC45NjM3NiwgMS4yOTI4NSwgMS45NTEwOCwgMi4zNjI0NiIsIFwKLSAgICAgICAgICAiMC40MDMyMDgsIDAuNDUyNTE0LCAwLjczMjIxNywgMC45NzkxNjMsIDEuMzA4MjQsIDEuOTY2NDksIDIuMzc3OTkiLCBcCi0gICAgICAgICAgIjAuNDE4MzQxLCAwLjQ2NzY0NywgMC43NDczNTMsIDAuOTk0Mjk0LCAxLjMyMzM5LCAxLjk4MTYxLCAyLjM5MzIyIiwgXAotICAgICAgICAgICIwLjQ0MjQxMywgMC40OTE3MzMsIDAuNzcxNDIxLCAxLjAxODI1LCAxLjM0NzQ1LCAyLjAwNTY5LCAyLjQxNzE0IiwgXAotICAgICAgICAgICIwLjQ2MjY1NiwgMC41MTE5NjksIDAuNzkxNjYxLCAxLjAzODU4LCAxLjM2NzcsIDIuMDI1ODgsIDIuNDM3MzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTc3NDI5LCAwLjI3NDgyNCwgMC44MzAxMDEsIDEuMzE5MzUsIDEuOTc0MiwgMy4yNzk1MiwgNC4wOTg1NSIsIFwKLSAgICAgICAgICAiMC4xNzczMTYsIDAuMjc0ODI3LCAwLjgyOTg1MywgMS4zMjA2MiwgMS45NzQyMiwgMy4yODAzLCA0LjA5ODM0IiwgXAotICAgICAgICAgICIwLjE3NzQwOSwgMC4yNzQ3MzQsIDAuODMwMSwgMS4zMTkzMiwgMS45NzQyMiwgMy4yODEyNCwgNC4wOTUxMiIsIFwKLSAgICAgICAgICAiMC4xNzczMTcsIDAuMjc0NzI3LCAwLjgzMDA5OCwgMS4zMTkzMywgMS45NzQyLCAzLjI4MTI1LCA0LjA5ODYyIiwgXAotICAgICAgICAgICIwLjE3NzMwMSwgMC4yNzQ3NCwgMC44MzAxMDIsIDEuMzE5MywgMS45NzQyMywgMy4yODEyMywgNC4wOTQxMiIsIFwKLSAgICAgICAgICAiMC4xNzczMTcsIDAuMjc0NzM1LCAwLjgzMDA4MSwgMS4zMjAzMSwgMS45NzQxOCwgMy4yODA0NSwgNC4wOTg0MyIsIFwKLSAgICAgICAgICAiMC4xNzczMDMsIDAuMjc0ODMsIDAuODI5ODUzLCAxLjMyMDY1LCAxLjk3NDIsIDMuMjgwMzYsIDQuMDk4MzMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUk4iOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHByZXNldDsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuNDc1MDU2LCAwLjUxODE1NiwgMC43NjI2MSwgMC45NzgzOTIsIDEuMjY2LCAxLjg0MTMzLCAyLjIwMDg1IiwgXAotICAgICAgICAgICIwLjQ4NjQ5MiwgMC41Mjk1NTIsIDAuNzc0MDA2LCAwLjk4OTc3OCwgMS4yNzc0LCAxLjg1MjczLCAyLjIxMjI1IiwgXAotICAgICAgICAgICIwLjUwMTU1OSwgMC41NDQ2NDYsIDAuNzg5MDUsIDEuMDA0OCwgMS4yOTI0NiwgMS44Njc3NSwgMi4yMjc0MSIsIFwKLSAgICAgICAgICAiMC41MTU4NDYsIDAuNTU4OTE5LCAwLjgwMzM2LCAxLjAxOTA4LCAxLjMwNjc3LCAxLjg4MjIsIDIuMjQxOCIsIFwKLSAgICAgICAgICAiMC41MzAxOSwgMC41NzMyNjcsIDAuODE3Njg0LCAxLjAzMzQzLCAxLjMyMTExLCAxLjg5NjQ1LCAyLjI1NjA4IiwgXAotICAgICAgICAgICIwLjU1MTQxNSwgMC41OTQ0ODgsIDAuODM4ODYyLCAxLjA1NDY2LCAxLjM0MjMyLCAxLjkxNzYsIDIuMjc3MjYiLCBcCi0gICAgICAgICAgIjAuNTY4MzUzLCAwLjYxMTQyNCwgMC44NTU4NTYsIDEuMDcxNTgsIDEuMzU5MjcsIDEuOTM0NzksIDIuMjk0MjQiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTU5NzIsIDAuMjQ2MzU1LCAwLjc0NDY3OCwgMS4xODQzOCwgMS43Njk3MiwgMi45NDE1OCwgMy42NzM4IiwgXAotICAgICAgICAgICIwLjE1OTcxOSwgMC4yNDYzNTMsIDAuNzQ0Njc3LCAxLjE4NDMzLCAxLjc2OTgsIDIuOTQxNTgsIDMuNjczNjYiLCBcCi0gICAgICAgICAgIjAuMTU5NzY2LCAwLjI0NzA1OSwgMC43NDQ2NTMsIDEuMTg0MTYsIDEuNzcwMDMsIDIuOTQxNDUsIDMuNjc0MzkiLCBcCi0gICAgICAgICAgIjAuMTU5Mzg0LCAwLjI0NjkyMSwgMC43NDQ2OTMsIDEuMTg0MTEsIDEuNzcwMDQsIDIuOTQxOTIsIDMuNjc0NDEiLCBcCi0gICAgICAgICAgIjAuMTU5NzE3LCAwLjI0NjkzOSwgMC43NDQ2NTUsIDEuMTg0MSwgMS43NzAwMiwgMi45NDE1NCwgMy42NzQzNSIsIFwKLSAgICAgICAgICAiMC4xNTk3MjMsIDAuMjQ2NTMyLCAwLjc0NDYwNSwgMS4xODQxNSwgMS43NzAwMywgMi45NDE0NywgMy42NzQzMiIsIFwKLSAgICAgICAgICAiMC4xNTk3MSwgMC4yNDY5OSwgMC43NDQ3MDgsIDEuMTg0MSwgMS43NzAxMiwgMi45NDE0NSwgMy42NzQ2NiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogY2xlYXI7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjQ1MDkxNSwgMC40OTM5NzUsIDAuNzM4NDE1LCAwLjk1NDE1MiwgMS4yNDE4MSwgMS44MTcxNywgMi4xNzY3NSIsIFwKLSAgICAgICAgICAiMC40NjI5NSwgMC41MDYwMjMsIDAuNzUwNDYyLCAwLjk2NjE5MiwgMS4yNTM4NSwgMS44MjkyMywgMi4xODg3OSIsIFwKLSAgICAgICAgICAiMC40Nzc5MjIsIDAuNTIwOTk3LCAwLjc2NTQzNywgMC45ODExNjUsIDEuMjY4ODMsIDEuODQ0MjEsIDIuMjAzNzYiLCBcCi0gICAgICAgICAgIjAuNDkyMzM4LCAwLjUzNTQxMiwgMC43Nzk3NzEsIDAuOTk1NTg2LCAxLjI4MzI1LCAxLjg1ODU0LCAyLjIxODE5IiwgXAotICAgICAgICAgICIwLjUwNjMyLCAwLjU0OTQwOSwgMC43OTM3NDgsIDEuMDA5NTcsIDEuMjk3MjMsIDEuODcyNTIsIDIuMjMyMTciLCBcCi0gICAgICAgICAgIjAuNTI4NDE5LCAwLjU3MTQ2OSwgMC44MTU5MzUsIDEuMDMxNjksIDEuMzE5MzQsIDEuODk0NjYsIDIuMjU0MTkiLCBcCi0gICAgICAgICAgIjAuNTQ3NTU0LCAwLjU5MDY0MiwgMC44MzUwNjUsIDEuMDUwODMsIDEuMzM4NDcsIDEuOTEzOCwgMi4yNzMzMiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNTk3MDYsIDAuMjQ2OTE5LCAwLjc0NDc0MiwgMS4xODQyLCAxLjc3MDExLCAyLjk0MjEsIDMuNjc0NDciLCBcCi0gICAgICAgICAgIjAuMTU5NzM5LCAwLjI0NjU2OSwgMC43NDQ3NjQsIDEuMTg0MTgsIDEuNzcwMDYsIDIuOTQyMTEsIDMuNjc0MzUiLCBcCi0gICAgICAgICAgIjAuMTU5Njg5LCAwLjI0NjUxNywgMC43NDQ3NjIsIDEuMTg0MTcsIDEuNzcwMDQsIDIuOTQyMTIsIDMuNjc0MzEiLCBcCi0gICAgICAgICAgIjAuMTU5NjkxLCAwLjI0NjU2OSwgMC43NDQ2NDksIDEuMTg0MTUsIDEuNzcwMDMsIDIuOTQxNTYsIDMuNjc0MzEiLCBcCi0gICAgICAgICAgIjAuMTU5NjksIDAuMjQ3MDU2LCAwLjc0NDY0NCwgMS4xODQxNSwgMS43NzAwMSwgMi45NDEwNCwgMy42NzQzMiIsIFwKLSAgICAgICAgICAiMC4xNTk2ODUsIDAuMjQ2OTE1LCAwLjc0NDY2OCwgMS4xODQyNSwgMS43Njk3NCwgMi45NDE1NiwgMy42NzMxNiIsIFwKLSAgICAgICAgICAiMC4xNTk2ODUsIDAuMjQ2NTkyLCAwLjc0NDY3OCwgMS4xODQyNCwgMS43Njk1NywgMi45NDE3MywgMy42NzMxNyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMjkzNjgsIDAuMzc4NzAxLCAwLjY1ODQzNiwgMC45MDUyNDcsIDEuMjM0MzgsIDEuODkyNzUsIDIuMzA0MjMiLCBcCi0gICAgICAgICAgIjAuMzQxMDQ0LCAwLjM5MDM4LCAwLjY3MDExNiwgMC45MTY5MjYsIDEuMjQ2MDUsIDEuOTA0NDMsIDIuMzE1OTEiLCBcCi0gICAgICAgICAgIjAuMzU1MTc5LCAwLjQwNDUxMywgMC42ODQyNzksIDAuOTMxMDQ0LCAxLjI2MDE3LCAxLjkxODM4LCAyLjMyOTg4IiwgXAotICAgICAgICAgICIwLjM3MDA4OSwgMC40MTk0MjQsIDAuNjk5MTU4LCAwLjk0NTk2OSwgMS4yNzUxLCAxLjkzMzQ3LCAyLjM0NDk2IiwgXAotICAgICAgICAgICIwLjM4NDY4MywgMC40MzQwMiwgMC43MTM3NTYsIDAuOTYwNTY3LCAxLjI4OTY5LCAxLjk0ODA3LCAyLjM1OTU1IiwgXAotICAgICAgICAgICIwLjQwODE1NiwgMC40NTc0ODksIDAuNzM3MjE5LCAwLjk4NDA0LCAxLjMxMzE5LCAxLjk3MTUsIDIuMzgyNzQiLCBcCi0gICAgICAgICAgIjAuNDI4NDU4LCAwLjQ3Nzc5NSwgMC43NTc1MzIsIDEuMDA0MzQsIDEuMzMzNDcsIDEuOTkxODUsIDIuNDAzMzIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTc3NCwgMC4yNzQ3OTEsIDAuODMwMjUxLCAxLjMyMDIyLCAxLjk3Mzg5LCAzLjI4MTYzLCA0LjA5ODgzIiwgXAotICAgICAgICAgICIwLjE3NzM0NywgMC4yNzQ3OTMsIDAuODMwMjUyLCAxLjMyMDM0LCAxLjk3Mzk4LCAzLjI4MTU4LCA0LjA5NzIxIiwgXAotICAgICAgICAgICIwLjE3NzMxMywgMC4yNzQ3OTIsIDAuODMwMjUxLCAxLjMyMDMzLCAxLjk3Mzk2LCAzLjI4MTc2LCA0LjA5ODg3IiwgXAotICAgICAgICAgICIwLjE3NzMzMywgMC4yNzQ3OTcsIDAuODMwMjg4LCAxLjMyMDMyLCAxLjk3Mzg1LCAzLjI4MTY2LCA0LjA5NzI0IiwgXAotICAgICAgICAgICIwLjE3NzM5NSwgMC4yNzQ3ODcsIDAuODMwMjQ1LCAxLjMyMDQ1LCAxLjk3Mzg4LCAzLjI4MTYyLCA0LjA5OCIsIFwKLSAgICAgICAgICAiMC4xNzc0NiwgMC4yNzQ3ODgsIDAuODMwMjg5LCAxLjMyMDMxLCAxLjk3Mzg4LCAzLjI4MTY2LCA0LjA5ODkzIiwgXAotICAgICAgICAgICIwLjE3NzM2NiwgMC4yNzQ3ODgsIDAuODMwMjgsIDEuMzIwMzIsIDEuOTczODksIDMuMjgxNzIsIDQuMDk4OTEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzNTg2LCAwLjAwMzU5MiwgMC4wMDM1OTksIDAuMDAzNjAxLCAwLjAwMzYwMiwgMC4wMDM2MDMsIDAuMDAzNjAzIiwgXAotICAgICAgICAgICIwLjAwMzU3OSwgMC4wMDM1ODQsIDAuMDAzNTkyLCAwLjAwMzU5MywgMC4wMDM1OTQsIDAuMDAzNTk1LCAwLjAwMzU5NSIsIFwKLSAgICAgICAgICAiMC4wMDM1NzQsIDAuMDAzNTc5LCAwLjAwMzU4NywgMC4wMDM1ODgsIDAuMDAzNTg5LCAwLjAwMzU5MSwgMC4wMDM1OTEiLCBcCi0gICAgICAgICAgIjAuMDAzNTY5LCAwLjAwMzU3NSwgMC4wMDM1ODMsIDAuMDAzNTg0LCAwLjAwMzU4NSwgMC4wMDM1ODYsIDAuMDAzNTg2IiwgXAotICAgICAgICAgICIwLjAwMzU2OCwgMC4wMDM1NzQsIDAuMDAzNTgyLCAwLjAwMzU4MywgMC4wMDM1ODQsIDAuMDAzNTg0LCAwLjAwMzU4NSIsIFwKLSAgICAgICAgICAiMC4wMDM1NjcsIDAuMDAzNTczLCAwLjAwMzU4MSwgMC4wMDM1ODIsIDAuMDAzNTgzLCAwLjAwMzU4NCwgMC4wMDM1ODMiLCBcCi0gICAgICAgICAgIjAuMDAzNTY5LCAwLjAwMzU3NSwgMC4wMDM1ODMsIDAuMDAzNTg0LCAwLjAwMzU4NSwgMC4wMDM1ODYsIDAuMDAzNTg2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzNzk1LCAwLjAwMzgwMSwgMC4wMDM4MDgsIDAuMDAzODEsIDAuMDAzODExLCAwLjAwMzgxMiwgMC4wMDM4MTEiLCBcCi0gICAgICAgICAgIjAuMDAzNzg4LCAwLjAwMzc5NCwgMC4wMDM4MDEsIDAuMDAzODAzLCAwLjAwMzgwNCwgMC4wMDM4MDQsIDAuMDAzODA1IiwgXAotICAgICAgICAgICIwLjAwMzc4MiwgMC4wMDM3ODgsIDAuMDAzNzk1LCAwLjAwMzc5NywgMC4wMDM3OTgsIDAuMDAzNzk4LCAwLjAwMzc5OCIsIFwKLSAgICAgICAgICAiMC4wMDM3NzcsIDAuMDAzNzgzLCAwLjAwMzc5LCAwLjAwMzc5MiwgMC4wMDM3OTMsIDAuMDAzNzk0LCAwLjAwMzc5NCIsIFwKLSAgICAgICAgICAiMC4wMDM3NzMsIDAuMDAzNzc5LCAwLjAwMzc4NywgMC4wMDM3ODgsIDAuMDAzNzg5LCAwLjAwMzc4OSwgMC4wMDM3OSIsIFwKLSAgICAgICAgICAiMC4wMDM3NjksIDAuMDAzNzc1LCAwLjAwMzc4MiwgMC4wMDM3ODQsIDAuMDAzNzg1LCAwLjAwMzc4NSwgMC4wMDM3ODUiLCBcCi0gICAgICAgICAgIjAuMDAzNzY2LCAwLjAwMzc3MiwgMC4wMDM3NzksIDAuMDAzNzgxLCAwLjAwMzc4MiwgMC4wMDM3ODIsIDAuMDAzNzgzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUk4iOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDIxMywgMC4wMDQyMTksIDAuMDA0MjIzLCAwLjAwNDIyMSwgMC4wMDQyMjEsIDAuMDA0MjE3LCAwLjAwNDIxOCIsIFwKLSAgICAgICAgICAiMC4wMDQyMDgsIDAuMDA0MjE0LCAwLjAwNDIxOCwgMC4wMDQyMTYsIDAuMDA0MjE0LCAwLjAwNDIxMywgMC4wMDQyMTMiLCBcCi0gICAgICAgICAgIjAuMDA0MjA0LCAwLjAwNDIwOSwgMC4wMDQyMTQsIDAuMDA0MjEyLCAwLjAwNDIxMSwgMC4wMDQyMDksIDAuMDA0MjA4IiwgXAotICAgICAgICAgICIwLjAwNDIsIDAuMDA0MjA2LCAwLjAwNDIxLCAwLjAwNDIwOCwgMC4wMDQyMDgsIDAuMDA0MjA1LCAwLjAwNDIwNCIsIFwKLSAgICAgICAgICAiMC4wMDQxOTksIDAuMDA0MjA0LCAwLjAwNDIwOSwgMC4wMDQyMDYsIDAuMDA0MjA1LCAwLjAwNDIwMywgMC4wMDQyMDMiLCBcCi0gICAgICAgICAgIjAuMDA0MTk2LCAwLjAwNDIwMSwgMC4wMDQyMDUsIDAuMDA0MjA0LCAwLjAwNDIwMiwgMC4wMDQyLCAwLjAwNDIiLCBcCi0gICAgICAgICAgIjAuMDA0MTk0LCAwLjAwNDIsIDAuMDA0MjA0LCAwLjAwNDIwMywgMC4wMDQyMDEsIDAuMDA0MTk5LCAwLjAwNDE5OCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihzY2FsYXIpIHsKLSAgICAgICAgdmFsdWVzKCIwIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiU04iOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzE5OSwgMC4wMDMyMDUsIDAuMDAzMjE0LCAwLjAwMzIxNiwgMC4wMDMyMTYsIDAuMDAzMjE2LCAwLjAwMzIxNyIsIFwKLSAgICAgICAgICAiMC4wMDMxOTMsIDAuMDAzMTk5LCAwLjAwMzIwNywgMC4wMDMyMDksIDAuMDAzMjEsIDAuMDAzMjEsIDAuMDAzMjEiLCBcCi0gICAgICAgICAgIjAuMDAzMTg5LCAwLjAwMzE5NSwgMC4wMDMyMDMsIDAuMDAzMjA1LCAwLjAwMzIwNSwgMC4wMDMyMDYsIDAuMDAzMjA2IiwgXAotICAgICAgICAgICIwLjAwMzE4NSwgMC4wMDMxOTEsIDAuMDAzMTk5LCAwLjAwMzIwMSwgMC4wMDMyMDIsIDAuMDAzMjAyLCAwLjAwMzIwMyIsIFwKLSAgICAgICAgICAiMC4wMDMxODMsIDAuMDAzMTg5LCAwLjAwMzE5NywgMC4wMDMxOTksIDAuMDAzMTk5LCAwLjAwMzIsIDAuMDAzMiIsIFwKLSAgICAgICAgICAiMC4wMDMxOCwgMC4wMDMxODUsIDAuMDAzMTk0LCAwLjAwMzE5NSwgMC4wMDMxOTYsIDAuMDAzMTk4LCAwLjAwMzE5NiIsIFwKLSAgICAgICAgICAiMC4wMDMxNzgsIDAuMDAzMTgzLCAwLjAwMzE5MiwgMC4wMDMxOTMsIDAuMDAzMTk0LCAwLjAwMzE5NSwgMC4wMDMxOTUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQyNzQsIDAuMDA0Mjc5LCAwLjAwNDI4NSwgMC4wMDQyODcsIDAuMDA0Mjg3LCAwLjAwNDI4NywgMC4wMDQyODciLCBcCi0gICAgICAgICAgIjAuMDA0MjY4LCAwLjAwNDI3MywgMC4wMDQyOCwgMC4wMDQyODEsIDAuMDA0MjgxLCAwLjAwNDI4MiwgMC4wMDQyODIiLCBcCi0gICAgICAgICAgIjAuMDA0MjYzLCAwLjAwNDI2OCwgMC4wMDQyNzUsIDAuMDA0Mjc2LCAwLjAwNDI3NywgMC4wMDQyNzcsIDAuMDA0Mjc3IiwgXAotICAgICAgICAgICIwLjAwNDI2LCAwLjAwNDI2NiwgMC4wMDQyNzIsIDAuMDA0Mjc0LCAwLjAwNDI3NCwgMC4wMDQyNzQsIDAuMDA0Mjc1IiwgXAotICAgICAgICAgICIwLjAwNDI1OSwgMC4wMDQyNjMsIDAuMDA0MjcsIDAuMDA0MjcyLCAwLjAwNDI3MiwgMC4wMDQyNzMsIDAuMDA0MjcyIiwgXAotICAgICAgICAgICIwLjAwNDI1NSwgMC4wMDQyNTksIDAuMDA0MjY2LCAwLjAwNDI2NywgMC4wMDQyNjgsIDAuMDA0MjY4LCAwLjAwNDI2OCIsIFwKLSAgICAgICAgICAiMC4wMDQyNTMsIDAuMDA0MjU3LCAwLjAwNDI2NSwgMC4wMDQyNjYsIDAuMDA0MjY2LCAwLjAwNDI2NywgMC4wMDQyNjciKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFJOKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA1NzMxODM7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNTcyODYxOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDU3MzE4MzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA0MTcsIDAuMDAwNDAyLCAwLjAwMDM5MiwgMC4wMDAzODcsIDAuMDAwMzg0LCAwLjAwMDM4MiwgMC4wMDAzODIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDE3OTMsIDAuMDAxNzgzLCAwLjAwMTc3NywgMC4wMDE3NzMsIDAuMDAxNzcyLCAwLjAwMTc2OSwgMC4wMDE3NjgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUk4iOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFEJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgZmFsbF9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuNDc1MDU2LCAwLjQ4NjQ5MiwgMC41MDE1NTksIDAuNTE1ODQ2LCAwLjUzMDE5LCAwLjU1MTQxNSwgMC41NjgzNTMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiByZWNvdmVyeV9yaXNpbmc7Ci0gICAgICB3aGVuIDogIkQmU04iOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8xX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQocmVjb3ZlcnlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTQzNzUsIDAuMTMyNSwgMC4xMTM3NSwgMC4wOTUsIDAuMDgyNSwgMC4wNTM3NSwgMC4wMzI1IiwgXAotICAgICAgICAgICIwLjE1NSwgMC4xNDM3NSwgMC4xMjUsIDAuMTEyNSwgMC4wOTM3NSwgMC4wNzEyNSwgMC4wNSIsIFwKLSAgICAgICAgICAiMC4xNzM3NSwgMC4xNTYyNSwgMC4xNDM3NSwgMC4xMjUsIDAuMTA2MjUsIDAuMDgzNzUsIDAuMDYyNSIsIFwKLSAgICAgICAgICAiMC4xODYyNSwgMC4xNzUsIDAuMTU2MjUsIDAuMTQzNzUsIDAuMTI1LCAwLjEwMjUsIDAuMDc1IiwgXAotICAgICAgICAgICIwLjIwNSwgMC4xODc1LCAwLjE3NSwgMC4xNTYyNSwgMC4xMzc1LCAwLjExNSwgMC4wOTM3NSIsIFwKLSAgICAgICAgICAiMC4yMjc1LCAwLjIxLCAwLjE5NzUsIDAuMTc4NzUsIDAuMTYsIDAuMTM3NSwgMC4xMTYyNSIsIFwKLSAgICAgICAgICAiMC4yNDI1LCAwLjIzMTI1LCAwLjIxODc1LCAwLjIsIDAuMTgxMjUsIDAuMTU4NzUsIDAuMTM3NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJlY292ZXJ5X3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUQiOwotICAgICAgc2RmX2NvbmQgOiAiRCA9PSAxJ2IwIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChyZWNvdmVyeV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xOTM3NSwgMC4yMDUsIDAuMjE3NSwgMC4yMywgMC4yNDI1LCAwLjI2NSwgMC4yODYyNSIsIFwKLSAgICAgICAgICAiMC4xODI1LCAwLjE5Mzc1LCAwLjIwNjI1LCAwLjIxODc1LCAwLjIzMTI1LCAwLjI1Mzc1LCAwLjI3NSIsIFwKLSAgICAgICAgICAiMC4xNjM3NSwgMC4xODEyNSwgMC4xOTM3NSwgMC4yMDYyNSwgMC4yMTg3NSwgMC4yNDEyNSwgMC4yNjI1IiwgXAotICAgICAgICAgICIwLjE1NzUsIDAuMTY4NzUsIDAuMTgxMjUsIDAuMTkzNzUsIDAuMjA2MjUsIDAuMjI4NzUsIDAuMjUiLCBcCi0gICAgICAgICAgIjAuMTQ1LCAwLjE1NjI1LCAwLjE2ODc1LCAwLjE4NzUsIDAuMiwgMC4yMjI1LCAwLjIzNzUiLCBcCi0gICAgICAgICAgIjAuMTI4NzUsIDAuMTQsIDAuMTU4NzUsIDAuMTcxMjUsIDAuMTgzNzUsIDAuMjA2MjUsIDAuMjIxMjUiLCBcCi0gICAgICAgICAgIjAuMTIsIDAuMTMxMjUsIDAuMTUsIDAuMTYyNSwgMC4xNzUsIDAuMTk3NSwgMC4yMTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogcmVtb3ZhbF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIkQmU04iOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8xX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQocmVtb3ZhbF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDM3NSwgLTAuMDI2MjUsIC0wLjAwNzUsIDAuMDA1LCAwLjAxNzUsIDAuMDQsIDAuMDYxMjUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wMzc1LCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAuMDA2MjUsIDAuMDI4NzUsIDAuMDUiLCBcCi0gICAgICAgICAgIi0wLjA2MTI1LCAtMC4wNSwgLTAuMDM3NSwgLTAuMDI1LCAtMC4wMDYyNSwgMC4wMTYyNSwgMC4wMzc1IiwgXAotICAgICAgICAgICItMC4wOCwgLTAuMDY4NzUsIC0wLjA1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAwMjUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjA5MjUsIC0wLjA4MTI1LCAtMC4wNjg3NSwgLTAuMDUsIC0wLjAzNzUsIC0wLjAxNSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMTIxMjUsIC0wLjEwMzc1LCAtMC4wOTEyNSwgLTAuMDc4NzUsIC0wLjA2LCAtMC4wMzc1LCAtMC4wMjI1IiwgXAotICAgICAgICAgICItMC4xMzYyNSwgLTAuMTI1LCAtMC4xMTI1LCAtMC4wOTM3NSwgLTAuMDgxMjUsIC0wLjA1ODc1LCAtMC4wMzc1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTTikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNjkwMzI7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNjkwMzI7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNjg5NjQ7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzMxLCAwLjAwMDMzLCAwLjAwMDMzLCAwLjAwMDMzLCAwLjAwMDMzLCAwLjAwMDMzLCAwLjAwMDMzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzMxLCAwLjAwMDMzMiwgMC4wMDAzMzEsIDAuMDAwMzMyLCAwLjAwMDMzMiwgMC4wMDAzMzIsIDAuMDAwMzMyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRCYhUk4iOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1JOX0VRXzAgPT0gMSdiMSI7Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4zMjkzNjgsIDAuMzQxMDQ0LCAwLjM1NTE3OSwgMC4zNzAwODksIDAuMzg0NjgzLCAwLjQwODE1NiwgMC40Mjg0NTgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiByZWNvdmVyeV9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEJlJOIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9STl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHJlY292ZXJ5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2MjUsIDAuMDUxMjUsIDAuMDMyNSwgMC4wMiwgMC4wMDEyNSwgLTAuMDI3NSwgLTAuMDQ4NzUiLCBcCi0gICAgICAgICAgIjAuMDczNzUsIDAuMDYyNSwgMC4wNDM3NSwgMC4wMzEyNSwgMC4wMTI1LCAtMC4wMSwgLTAuMDM3NSIsIFwKLSAgICAgICAgICAiMC4wOTI1LCAwLjA3NSwgMC4wNjI1LCAwLjA0Mzc1LCAwLjAyNSwgMC4wMDI1LCAtMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4xMDUsIDAuMDkzNzUsIDAuMDc1LCAwLjA2MjUsIDAuMDQzNzUsIDAuMDE1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiMC4xMTc1LCAwLjEwNjI1LCAwLjA4NzUsIDAuMDc1LCAwLjA1NjI1LCAwLjAyNzUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMTQsIDAuMTI4NzUsIDAuMTEsIDAuMDk3NSwgMC4wNzg3NSwgMC4wNSwgMC4wMjg3NSIsIFwKLSAgICAgICAgICAiMC4xNjEyNSwgMC4xNSwgMC4xMzEyNSwgMC4xMTI1LCAwLjEsIDAuMDcxMjUsIDAuMDUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiByZW1vdmFsX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUQmUk4iOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1JOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQocmVtb3ZhbF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTYyNSwgMC4wNjc1LCAwLjA4LCAwLjA5ODc1LCAwLjExMTI1LCAwLjE0LCAwLjE2MTI1IiwgXAotICAgICAgICAgICIwLjA0NSwgMC4wNTYyNSwgMC4wNjg3NSwgMC4wODc1LCAwLjEsIDAuMTI4NzUsIDAuMTUiLCBcCi0gICAgICAgICAgIjAuMDMyNSwgMC4wNDM3NSwgMC4wNTYyNSwgMC4wNzUsIDAuMDg3NSwgMC4xMSwgMC4xMzEyNSIsIFwKLSAgICAgICAgICAiMC4wMTM3NSwgMC4wMzEyNSwgMC4wNDM3NSwgMC4wNTYyNSwgMC4wNzUsIDAuMDk3NSwgMC4xMTg3NSIsIFwKLSAgICAgICAgICAiMC4wMDEyNSwgMC4wMTI1LCAwLjAzMTI1LCAwLjA0Mzc1LCAwLjA2MjUsIDAuMDg1LCAwLjEwNjI1IiwgXAotICAgICAgICAgICItMC4wMjEyNSwgLTAuMDEsIDAuMDA4NzUsIDAuMDIxMjUsIDAuMDQsIDAuMDYyNSwgMC4wODM3NSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAyNSwgLTAuMDEyNSwgMCwgMC4wMTg3NSwgMC4wNDEyNSwgMC4wNjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogREZGU1JYTCAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChERkZTUlhMKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMjc4ODg3OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIGZmIChOMzUsUUJJTlQpIHsKLSAgICBuZXh0X3N0YXRlIDogIkQiOwotICAgIGNsb2NrZWRfb24gOiAiQ0siOwotICAgIGNsZWFyIDogIighUk4pIjsKLSAgICBwcmVzZXQgOiAiKCFTTikiOwotICAgIGNsZWFyX3ByZXNldF92YXIxIDogSDsKLSAgICBjbGVhcl9wcmVzZXRfdmFyMiA6IEw7Ci0gIH0KLSAgcGluKENLKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA1Njg0NjI7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNTY4MTg7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNTY4NDYyOwotICAgIGNsb2NrIDogdHJ1ZTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDI4MzgsIDAuMDAyODI0LCAwLjAwMjgxNSwgMC4wMDI4MDcsIDAuMDAyODAxLCAwLjAwMjc5NSwgMC4wMDI3OTUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDU2OTcsIDAuMDA1Njg2LCAwLjAwNTY3NSwgMC4wMDU2NjYsIDAuMDA1NjU1LCAwLjAwNTY0OSwgMC4wMDU2NDQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFEJlJOJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9STl9FUV8xX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC40MjgwMiwgMC40Mzk2NzEsIDAuNDU1MjQxLCAwLjQ3MDczOSwgMC40ODU4OTEsIDAuNTEwMjA4LCAwLjUzMDgzOCIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMjY1MjI0LCAwLjI3Njg1NCwgMC4yOTE3MjIsIDAuMzA2NTI5LCAwLjMyMDc5MywgMC4zNDM2NDEsIDAuMzYyNDQ0Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihEKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA1ODAzOTM7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNTc4ODY2OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDU4MDM5MzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDI1NjgsIDAuMDAyNTU3LCAwLjAwMjU0OSwgMC4wMDI1NDQsIDAuMDAyNTQsIDAuMDAyNTM2LCAwLjAwMjUzMSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjQ1OSwgMC4wMDI0NTQsIDAuMDAyNDUsIDAuMDAyNDQ1LCAwLjAwMjQ0MywgMC4wMDI0MzksIDAuMDAyNDM3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlJOJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIlJOX0VRXzFfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wNSwgLTAuMDQ1LCAtMC4wMzI1LCAtMC4wMiwgLTAuMDA3NSwgMC4wMDI1LCAwLjAxMTI1IiwgXAotICAgICAgICAgICItMC4wNjEyNSwgLTAuMDU2MjUsIC0wLjA0Mzc1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMDg3NSwgMCIsIFwKLSAgICAgICAgICAiLTAuMDgsIC0wLjA2ODc1LCAtMC4wNTYyNSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAyMTI1LCAtMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wOTI1LCAtMC4wODEyNSwgLTAuMDY4NzUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDMzNzUsIC0wLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMTA1LCAtMC4wOTM3NSwgLTAuMDgxMjUsIC0wLjA3NSwgLTAuMDYyNSwgLTAuMDQ2MjUsIC0wLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjEyNzUsIC0wLjExNjI1LCAtMC4xMDM3NSwgLTAuMDk3NSwgLTAuMDg1LCAtMC4wNjg3NSwgLTAuMDYiLCBcCi0gICAgICAgICAgIi0wLjE0MjUsIC0wLjEzNzUsIC0wLjEyNSwgLTAuMTEyNSwgLTAuMSwgLTAuMDksIC0wLjA3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDUsIDAuMDYxMjUsIDAuMDczNzUsIDAuMDkyNSwgMC4xMDUsIDAuMTI3NSwgMC4xNDg3NSIsIFwKLSAgICAgICAgICAiMC4wMzg3NSwgMC4wNSwgMC4wNjI1LCAwLjA4MTI1LCAwLjA5Mzc1LCAwLjExNjI1LCAwLjEzNzUiLCBcCi0gICAgICAgICAgIjAuMDI2MjUsIDAuMDM3NSwgMC4wNSwgMC4wNjI1LCAwLjA4MTI1LCAwLjEwMzc1LCAwLjEyNSIsIFwKLSAgICAgICAgICAiMC4wMTM3NSwgMC4wMjUsIDAuMDM3NSwgMC4wNTYyNSwgMC4wNjg3NSwgMC4wOTEyNSwgMC4xMTI1IiwgXAotICAgICAgICAgICIwLjAwMTI1LCAwLjAxMjUsIDAuMDMxMjUsIDAuMDQzNzUsIDAuMDU2MjUsIDAuMDc4NzUsIDAuMSIsIFwKLSAgICAgICAgICAiLTAuMDE1LCAtMC4wMDM3NSwgMC4wMTUsIDAuMDI3NSwgMC4wNDYyNSwgMC4wNjg3NSwgMC4wODM3NSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxMjUsIDAsIDAuMDE4NzUsIDAuMDMxMjUsIDAuMDUzNzUsIDAuMDc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJSTiZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJSTl9FUV8xX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTY4NzUsIDAuMTU3NSwgMC4xMzg3NSwgMC4xMjYyNSwgMC4xMDc1LCAwLjA4NSwgMC4wNyIsIFwKLSAgICAgICAgICAiMC4xODYyNSwgMC4xNjg3NSwgMC4xNTYyNSwgMC4xMzc1LCAwLjExODc1LCAwLjA5NjI1LCAwLjA4MTI1IiwgXAotICAgICAgICAgICIwLjE5ODc1LCAwLjE4NzUsIDAuMTY4NzUsIDAuMTUsIDAuMTM3NSwgMC4xMDg3NSwgMC4wOTM3NSIsIFwKLSAgICAgICAgICAiMC4yMTEyNSwgMC4yLCAwLjE4MTI1LCAwLjE2MjUsIDAuMTUsIDAuMTIxMjUsIDAuMTA2MjUiLCBcCi0gICAgICAgICAgIjAuMjIzNzUsIDAuMjEyNSwgMC4xOTM3NSwgMC4xNzUsIDAuMTYyNSwgMC4xNCwgMC4xMTg3NSIsIFwKLSAgICAgICAgICAiMC4yNDYyNSwgMC4yMzUsIDAuMjE2MjUsIDAuMTk3NSwgMC4xODUsIDAuMTYyNSwgMC4xNDEyNSIsIFwKLSAgICAgICAgICAiMC4yNjc1LCAwLjI1LCAwLjIzNzUsIDAuMjE4NzUsIDAuMiwgMC4xNzc1LCAwLjE2MjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMjUsIDAuMTEzNzUsIDAuMDk1LCAwLjA3NjI1LCAwLjA2Mzc1LCAwLjAzNSwgMC4wMTM3NSIsIFwKLSAgICAgICAgICAiMC4xMzYyNSwgMC4xMjUsIDAuMTA2MjUsIDAuMDg3NSwgMC4wNzUsIDAuMDQ2MjUsIDAuMDI1IiwgXAotICAgICAgICAgICIwLjE0ODc1LCAwLjEzNzUsIDAuMTE4NzUsIDAuMSwgMC4wODc1LCAwLjA1ODc1LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIjAuMTYxMjUsIDAuMTUsIDAuMTMxMjUsIDAuMTEyNSwgMC4xLCAwLjA3MTI1LCAwLjA1IiwgXAotICAgICAgICAgICIwLjE3Mzc1LCAwLjE2MjUsIDAuMTQzNzUsIDAuMTI1LCAwLjExMjUsIDAuMDgzNzUsIDAuMDYyNSIsIFwKLSAgICAgICAgICAiMC4xOSwgMC4xNzg3NSwgMC4xNiwgMC4xNDc1LCAwLjEyODc1LCAwLjEwNjI1LCAwLjA3ODc1IiwgXAotICAgICAgICAgICIwLjIwNSwgMC4xOTM3NSwgMC4xODEyNSwgMC4xNjI1LCAwLjE0Mzc1LCAwLjEyMTI1LCAwLjEiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFEpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4wNzM5NzU2OwotICAgIGZ1bmN0aW9uIDogIk4zNSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3NlbnNlIDogbm9uX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiByaXNpbmdfZWRnZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzc1NjQ1LCAwLjQwMDkyOSwgMC42MjkyODEsIDEuMDA4MTQsIDEuMzg5MTMsIDIuMjcwOSwgMi43ODI2MyIsIFwKLSAgICAgICAgICAiMC4zODcyODksIDAuNDEyNjI0LCAwLjY0MDM0MSwgMS4wMTk4NCwgMS40MDA3MSwgMi4yODM2LCAyLjc5NTMiLCBcCi0gICAgICAgICAgIjAuNDAyNTQsIDAuNDI3ODMsIDAuNjU1ODIsIDEuMDM3MjksIDEuNDEzNDUsIDIuMzAzMjQsIDIuODEwMjQiLCBcCi0gICAgICAgICAgIjAuNDE3OTkzLCAwLjQ0MzEzNiwgMC42NzExNjgsIDEuMDUyNjEsIDEuNDMyMTEsIDIuMzE3ODcsIDIuODI2NDEiLCBcCi0gICAgICAgICAgIjAuNDMzMDA5LCAwLjQ1ODM2MSwgMC42ODYwODcsIDEuMDY1NDcsIDEuNDQ2NDgsIDIuMzI5LCAyLjg0MTI0IiwgXAotICAgICAgICAgICIwLjQ1NzAxNSwgMC40ODIzNzEsIDAuNzEwMTQsIDEuMDkxNzgsIDEuNDcwOTQsIDIuMzU2NzEsIDIuODU4MTIiLCBcCi0gICAgICAgICAgIjAuNDc3NTIyLCAwLjUwMjgxMywgMC43MzA5NTMsIDEuMTEyMjEsIDEuNDg5NzMsIDIuMzc4MTcsIDIuODg1NDMiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjc4OTEyLCAwLjMzMDEyNSwgMC43OTI3ODQsIDEuNTY2ODIsIDIuMzU1MiwgNC4xMzk2MiwgNS4xODY5NiIsIFwKLSAgICAgICAgICAiMC4yNzkwMTMsIDAuMzMwMDgxLCAwLjc5NTg0NywgMS41NjY3MywgMi4zNTUxMSwgNC4xNzQzNSwgNS4xODcwNyIsIFwKLSAgICAgICAgICAiMC4yNzg4ODgsIDAuMzMwMTM3LCAwLjc5NTk5NSwgMS41Njc1MSwgMi4zMzgzOCwgNC4xNjkyOSwgNS4xODcxMiIsIFwKLSAgICAgICAgICAiMC4yNzg5MDEsIDAuMzI4NDMyLCAwLjc5NTkwNCwgMS41NjU0OSwgMi4zNTQ0LCA0LjE3MDU3LCA1LjE5Mzk3IiwgXAotICAgICAgICAgICIwLjI3ODk3MSwgMC4zMzAwNzQsIDAuNzk1ODU5LCAxLjU3NTYsIDIuMzU0OSwgNC4xNzQzMywgNS4xNzMwMSIsIFwKLSAgICAgICAgICAiMC4yNzg5NTQsIDAuMzI3Mzc0LCAwLjc5NTkxOSwgMS41Njc0OSwgMi4zNTQ1NywgNC4xNzA3OCwgNS4xNjEzOSIsIFwKLSAgICAgICAgICAiMC4yNzg4OTYsIDAuMzMwMTY0LCAwLjc4MzE1OSwgMS41NjY2NSwgMi4zNTUzLCA0LjE2OTI4LCA1LjE4NzE2Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjQyODAyLCAwLjQ1Nzc0LCAwLjcyNTMxNSwgMS4xNzA2MywgMS42MjE0MywgMi42NjQ2OCwgMy4yNTk4OSIsIFwKLSAgICAgICAgICAiMC40Mzk2NzEsIDAuNDY5Mzg5LCAwLjczODM0MiwgMS4xODIzNSwgMS42MzMxMiwgMi42NzYyNiwgMy4yNjM1IiwgXAotICAgICAgICAgICIwLjQ1NTI0MSwgMC40ODUwNTEsIDAuNzUyMzk4LCAxLjIwMTg0LCAxLjY0ODksIDIuNjkxNTQsIDMuMjg3NzkiLCBcCi0gICAgICAgICAgIjAuNDcwNzM5LCAwLjUwMDQyMywgMC43NjgwMSwgMS4yMTcyNiwgMS42NTg5NywgMi43MDY0NywgMy4zMDMyMiIsIFwKLSAgICAgICAgICAiMC40ODU4OTEsIDAuNTE1NTg2LCAwLjc4MjkyNSwgMS4yMjg0NywgMS42NzkyMSwgMi43MjI1NSwgMy4zMTgwNyIsIFwKLSAgICAgICAgICAiMC41MTAyMDgsIDAuNTM5OTI3LCAwLjgwODcyNiwgMS4yNTI3NywgMS43MDM2MywgMi43NDY4NywgMy4zNDI5NCIsIFwKLSAgICAgICAgICAiMC41MzA4MzgsIDAuNTYwNTU1LCAwLjgyOTM4NCwgMS4yNzM1OCwgMS43MjQyOSwgMi43Njc0LCAzLjM2NCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMTMxLCAwLjM3MTYzNiwgMC44OTk3NjUsIDEuNzg0MDEsIDIuNjY4MTgsIDQuNzI5MSwgNS45MDc5MSIsIFwKLSAgICAgICAgICAiMC4zMTMzNTQsIDAuMzcyMTE5LCAwLjg5OTIwMiwgMS43ODAyLCAyLjY2NzUsIDQuNzE4OSwgNS45MTg0MyIsIFwKLSAgICAgICAgICAiMC4zMTI5OTQsIDAuMzcxNjMzLCAwLjg5OTcwNiwgMS43ODQ5OCwgMi42NjU3MSwgNC43MTU4OCwgNS45MTg2MiIsIFwKLSAgICAgICAgICAiMC4zMTM2NzIsIDAuMzcxMzY3LCAwLjkwMDU4NCwgMS43ODUxMSwgMi42NjI2MiwgNC43MTk0OCwgNS45MTg2MiIsIFwKLSAgICAgICAgICAiMC4zMTM2MywgMC4zNzA5OTcsIDAuOTAxMTM3LCAxLjc4MzkxLCAyLjY2NzgyLCA0LjcyMDY5LCA1LjkxOTI1IiwgXAotICAgICAgICAgICIwLjMxMzEzMSwgMC4zNzE2NDEsIDAuODk5NTU5LCAxLjc4MTIzLCAyLjY2NzQ1LCA0LjcyMDE3LCA1LjkxODI4IiwgXAotICAgICAgICAgICIwLjMxMzM4NCwgMC4zNzE1MzEsIDAuODk5NDgzLCAxLjc4MzU3LCAyLjY2NzU3LCA0LjcxODM0LCA1LjkxNjkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUk4iOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGNsZWFyOwotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC41MTQxNTksIDAuNTQzODY1LCAwLjgxMjg4MiwgMS4yNjAxNywgMS43MDcwNiwgMi43NTAxNywgMy4zNDYyNCIsIFwKLSAgICAgICAgICAiMC41MjU4NDIsIDAuNTU1NzkzLCAwLjgyNDUzOSwgMS4yNzE4MiwgMS43MTg2LCAyLjc2MTkxLCAzLjM0ODMyIiwgXAotICAgICAgICAgICIwLjU0MDc4MiwgMC41NzA3MzEsIDAuODM5NDA4LCAxLjI4MzY0LCAxLjczNDEyLCAyLjc3NjcyLCAzLjM3Mjc5IiwgXAotICAgICAgICAgICIwLjU1NDk3NywgMC41ODQ5MjksIDAuODUzNjc0LCAxLjMwMDk2LCAxLjc0NzczLCAyLjc5MTAzLCAzLjM3Nzc2IiwgXAotICAgICAgICAgICIwLjU2OTMzOSwgMC41OTkyODgsIDAuODY4MDI2LCAxLjMxNTMyLCAxLjc2MjExLCAyLjgwNTM2LCAzLjM5Mzg1IiwgXAotICAgICAgICAgICIwLjU5MDMxLCAwLjYxOTk5NywgMC44ODg5OTEsIDEuMzM2MjksIDEuNzgzMDYsIDIuODI2MzIsIDMuNDE0NzMiLCBcCi0gICAgICAgICAgIjAuNjA3MTczLCAwLjYzNjg2OSwgMC45MDU4NTcsIDEuMzUzMTYsIDEuNzk5OTMsIDIuODQzMTgsIDMuNDMyMDciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzEzNSwgMC4zNzE3NDUsIDAuOTAwNzQ3LCAxLjc4NTY5LCAyLjY2ODE2LCA0LjcyOTY0LCA1LjkxOTA4IiwgXAotICAgICAgICAgICIwLjMxMzQ0MiwgMC4zNzE4MDUsIDAuOTAwOTg5LCAxLjc4NTY5LCAyLjY2ODcyLCA0LjczMjI5LCA1LjkxODc1IiwgXAotICAgICAgICAgICIwLjMxMzQzNCwgMC4zNzE1ODMsIDAuOTAwNzIyLCAxLjc4MjM1LCAyLjY2ODQzLCA0LjczMTAxLCA1LjkxODg5IiwgXAotICAgICAgICAgICIwLjMxMzQ5MiwgMC4zNzEyNzMsIDAuOTAxMDg3LCAxLjc4NTY1LCAyLjY2ODYyLCA0LjcyMDA0LCA1LjkxOTQ2IiwgXAotICAgICAgICAgICIwLjMxMzQzMiwgMC4zNzE4LCAwLjkwMDk0NywgMS43ODU2MSwgMi42Njg1NSwgNC43MjU4OCwgNS45MTgyNCIsIFwKLSAgICAgICAgICAiMC4zMTM0NzEsIDAuMzcxNzYsIDAuOTAwNDQ1LCAxLjc4NTMzLCAyLjY2ODU0LCA0LjcyNzI1LCA1LjkxOTUxIiwgXAotICAgICAgICAgICIwLjMxMzQ5MSwgMC4zNzA5MzcsIDAuOTAwODk0LCAxLjc4NTI2LCAyLjY2ODQ4LCA0LjcxOTE3LCA1LjkxOTc2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiBwcmVzZXQ7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjM0MDIzNSwgMC4zNjU2NDMsIDAuNTkzNjk3LCAwLjk3Mjk0NSwgMS4zNTQ1NSwgMi4yNDAwNSwgMi43NDQzMSIsIFwKLSAgICAgICAgICAiMC4zNTE4NDcsIDAuMzc3MTA5LCAwLjYwNTIwMSwgMC45ODQ4MjcsIDEuMzY2MDIsIDIuMjUwNjcsIDIuNzU1MzYiLCBcCi0gICAgICAgICAgIjAuMzY2MDY5LCAwLjM5MTQ1OCwgMC42MTk0NDQsIDAuOTk4ODE5LCAxLjM4MDM2LCAyLjI2NzU2LCAyLjc3MDEyIiwgXAotICAgICAgICAgICIwLjM4MTE4NiwgMC40MDYzNTYsIDAuNjM0Mzc1LCAxLjAxMzQ2LCAxLjM5NDUsIDIuMjc4NjgsIDIuNzg1MiIsIFwKLSAgICAgICAgICAiMC4zOTU0ODEsIDAuNDIwODg5LCAwLjY0OTM0NSwgMS4wMjc3MSwgMS40MDY4NywgMi4yOTM2OSwgMi44MDAwOCIsIFwKLSAgICAgICAgICAiMC40MTkwMzIsIDAuNDQ0NDExLCAwLjY3MjM1NCwgMS4wNTE4MywgMS40MzMzNCwgMi4zMTgsIDIuODIyOTMiLCBcCi0gICAgICAgICAgIjAuNDM5NDczLCAwLjQ2NDczNSwgMC42OTI5MTEsIDEuMDcyMzgsIDEuNDUzNDksIDIuMzM4MzcsIDIuODQyNjQiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjc3NjEyLCAwLjMyODg0NywgMC43OTU5NDksIDEuNTc1NzcsIDIuMzU1NDYsIDQuMTY1MTUsIDUuMTg2NjgiLCBcCi0gICAgICAgICAgIjAuMjc3Mjk2LCAwLjMyODkzNiwgMC43OTU4NzIsIDEuNTc1NzcsIDIuMzU1NDUsIDQuMTY1NjksIDUuMTk2MzkiLCBcCi0gICAgICAgICAgIjAuMjc3NTQxLCAwLjMyODk1MSwgMC43OTU5MjksIDEuNTc1NzIsIDIuMzU1NDYsIDQuMTc0MSwgNS4xODg5NSIsIFwKLSAgICAgICAgICAiMC4yNzc4NTIsIDAuMzI4OTE5LCAwLjc5MjM4OCwgMS41NzU2OCwgMi4zNTUyNSwgNC4xNjQwOSwgNS4xOTY1NSIsIFwKLSAgICAgICAgICAiMC4yNzc0MjYsIDAuMzI4OTMsIDAuNzk1ODg5LCAxLjU3NTc5LCAyLjM1NTIxLCA0LjE3NDI5LCA1LjE5ODE3IiwgXAotICAgICAgICAgICIwLjI3NzQzNCwgMC4zMjg5NzEsIDAuNzk1OTE4LCAxLjU3NTgsIDIuMzU1NDUsIDQuMTY5NDcsIDUuMTk2NDQiLCBcCi0gICAgICAgICAgIjAuMjc3NjM1LCAwLjMyODgzNywgMC43OTU5NDYsIDEuNTc1NjcsIDIuMzU1NDUsIDQuMTYzMTYsIDUuMTg3MTQiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuNDkwOTA1LCAwLjUyMDg2NiwgMC43ODk3MSwgMS4yMzcxNCwgMS42ODQwMiwgMi43MjczNywgMy4zMTcwNSIsIFwKLSAgICAgICAgICAiMC41MDI4ODQsIDAuNTMyODQ1LCAwLjgwMTcwMiwgMS4yNDkxMiwgMS42OTU5NSwgMi43MzkzMywgMy4zMjYxNyIsIFwKLSAgICAgICAgICAiMC41MTc5NDgsIDAuNTQ3NjU2LCAwLjgxNjc0MiwgMS4yNjQxNiwgMS43MTEwMSwgMi43NTQzMywgMy4zNDMyNyIsIFwKLSAgICAgICAgICAiMC41MzIzNzEsIDAuNTYyMDc5LCAwLjgzMTE2NiwgMS4yNzg1OCwgMS43MjU0MiwgMi43Njg3MywgMy4zNTc3MiIsIFwKLSAgICAgICAgICAiMC41NDYzMzMsIDAuNTc2MDczLCAwLjg0NTEyNCwgMS4yOTI1MywgMS43MzkzOCwgMi43ODI2NiwgMy4zNzk0MyIsIFwKLSAgICAgICAgICAiMC41NjgzMzgsIDAuNTk4MzMsIDAuODY3MjM2LCAxLjMxMTksIDEuNzYxNTcsIDIuODA1MDgsIDMuNDAwNzMiLCBcCi0gICAgICAgICAgIjAuNTg3NDgsIDAuNjE3NDM5LCAwLjg4NjI5NSwgMS4zMzM2NywgMS43ODA0OSwgMi44MjM4NSwgMy40MDg2NiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMTMzNjksIDAuMzcxNjIsIDAuOTAwOTE3LCAxLjc4NTU3LCAyLjY2OTY4LCA0LjcyNDM3LCA1LjkwNjk2IiwgXAotICAgICAgICAgICIwLjMxMzQ5MiwgMC4zNzE4MDIsIDAuOTAwNzg1LCAxLjc4NTc3LCAyLjY2ODg1LCA0LjcyOTg5LCA1Ljg5OTI2IiwgXAotICAgICAgICAgICIwLjMxMzQyMiwgMC4zNzE2MTQsIDAuOTAwNTEyLCAxLjc4NTQ1LCAyLjY2ODY0LCA0LjczNzY4LCA1Ljg5MTYiLCBcCi0gICAgICAgICAgIjAuMzEzNDY5LCAwLjM3MTcxLCAwLjkwMDQwMywgMS43ODUyNiwgMi42Njg0OCwgNC43MzE5NSwgNS45MTkzNyIsIFwKLSAgICAgICAgICAiMC4zMTM0NjksIDAuMzcxNDMyLCAwLjkwMDM1LCAxLjc4NTE4LCAyLjY2ODI4LCA0LjczMTU5LCA1LjkxOTIyIiwgXAotICAgICAgICAgICIwLjMxMzQ3NCwgMC4zNzE3OTMsIDAuOTAwMTAzLCAxLjc4MTgsIDIuNjY2ODYsIDQuNzIxOTUsIDUuOTE5NyIsIFwKLSAgICAgICAgICAiMC4zMTM0OTYsIDAuMzcxNzk1LCAwLjkwMDY0MywgMS43ODU1MSwgMi42Njc4OSwgNC43MzgxMSwgNS44ODg5NSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDM1NTMsIDAuMDAzNTU0LCAwLjAwMzU1NywgMC4wMDM1NTcsIDAuMDAzNTU4LCAwLjAwMzU1OCwgMC4wMDM1NTgiLCBcCi0gICAgICAgICAgIjAuMDAzNTQ3LCAwLjAwMzU0NywgMC4wMDM1NSwgMC4wMDM1NTEsIDAuMDAzNTUxLCAwLjAwMzU1MSwgMC4wMDM1NTEiLCBcCi0gICAgICAgICAgIjAuMDAzNTQsIDAuMDAzNTQxLCAwLjAwMzU0MywgMC4wMDM1NDQsIDAuMDAzNTQ1LCAwLjAwMzU0NSwgMC4wMDM1NDUiLCBcCi0gICAgICAgICAgIjAuMDAzNTM2LCAwLjAwMzUzNiwgMC4wMDM1MzksIDAuMDAzNTQsIDAuMDAzNTQsIDAuMDAzNTQsIDAuMDAzNTQiLCBcCi0gICAgICAgICAgIjAuMDAzNTMyLCAwLjAwMzUzMiwgMC4wMDM1MzUsIDAuMDAzNTM2LCAwLjAwMzUzNiwgMC4wMDM1MzcsIDAuMDAzNTM2IiwgXAotICAgICAgICAgICIwLjAwMzUyNywgMC4wMDM1MjcsIDAuMDAzNTMsIDAuMDAzNTMxLCAwLjAwMzUzMSwgMC4wMDM1MzEsIDAuMDAzNTMyIiwgXAotICAgICAgICAgICIwLjAwMzUyNSwgMC4wMDM1MjUsIDAuMDAzNTI4LCAwLjAwMzUyOSwgMC4wMDM1MjksIDAuMDAzNTMsIDAuMDAzNTI5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzMjc2LCAwLjAwMzI3NywgMC4wMDMyNzksIDAuMDAzMjgsIDAuMDAzMjgxLCAwLjAwMzI4MSwgMC4wMDMyODEiLCBcCi0gICAgICAgICAgIjAuMDAzMjcsIDAuMDAzMjcsIDAuMDAzMjczLCAwLjAwMzI3NCwgMC4wMDMyNzQsIDAuMDAzMjc1LCAwLjAwMzI3NSIsIFwKLSAgICAgICAgICAiMC4wMDMyNjQsIDAuMDAzMjY1LCAwLjAwMzI2NywgMC4wMDMyNjgsIDAuMDAzMjY5LCAwLjAwMzI2OSwgMC4wMDMyNjkiLCBcCi0gICAgICAgICAgIjAuMDAzMjYsIDAuMDAzMjYxLCAwLjAwMzI2NCwgMC4wMDMyNjUsIDAuMDAzMjY1LCAwLjAwMzI2NSwgMC4wMDMyNjUiLCBcCi0gICAgICAgICAgIjAuMDAzMjU4LCAwLjAwMzI1OSwgMC4wMDMyNjIsIDAuMDAzMjYzLCAwLjAwMzI2MywgMC4wMDMyNjQsIDAuMDAzMjY0IiwgXAotICAgICAgICAgICIwLjAwMzI1OCwgMC4wMDMyNTksIDAuMDAzMjYyLCAwLjAwMzI2MywgMC4wMDMyNjMsIDAuMDAzMjYzLCAwLjAwMzI2MyIsIFwKLSAgICAgICAgICAiMC4wMDMyNTksIDAuMDAzMjYsIDAuMDAzMjYzLCAwLjAwMzI2NCwgMC4wMDMyNjQsIDAuMDAzMjY0LCAwLjAwMzI2NCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDM4ODksIDAuMDAzODksIDAuMDAzODksIDAuMDAzODg5LCAwLjAwMzg4OCwgMC4wMDM4ODcsIDAuMDAzODg2IiwgXAotICAgICAgICAgICIwLjAwMzg4NCwgMC4wMDM4ODUsIDAuMDAzODg1LCAwLjAwMzg4NCwgMC4wMDM4ODMsIDAuMDAzODgyLCAwLjAwMzg4MSIsIFwKLSAgICAgICAgICAiMC4wMDM4OCwgMC4wMDM4ODEsIDAuMDAzODgxLCAwLjAwMzg4LCAwLjAwMzg3OSwgMC4wMDM4NzgsIDAuMDAzODc3IiwgXAotICAgICAgICAgICIwLjAwMzg3NiwgMC4wMDM4NzcsIDAuMDAzODc3LCAwLjAwMzg3NiwgMC4wMDM4NzUsIDAuMDAzODczLCAwLjAwMzg3MyIsIFwKLSAgICAgICAgICAiMC4wMDM4NzUsIDAuMDAzODc1LCAwLjAwMzg3NiwgMC4wMDM4NzUsIDAuMDAzODc0LCAwLjAwMzg3MiwgMC4wMDM4NzIiLCBcCi0gICAgICAgICAgIjAuMDAzODcyLCAwLjAwMzg3MiwgMC4wMDM4NzMsIDAuMDAzODcyLCAwLjAwMzg3MSwgMC4wMDM4NjksIDAuMDAzODY5IiwgXAotICAgICAgICAgICIwLjAwMzg3MSwgMC4wMDM4NzEsIDAuMDAzODcyLCAwLjAwMzg3LCAwLjAwMzg2OSwgMC4wMDM4NjksIDAuMDAzODY4Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3Bvd2VyKHNjYWxhcikgewotICAgICAgICB2YWx1ZXMoIjAiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzOTgyLCAwLjAwMzk4MywgMC4wMDM5ODUsIDAuMDAzOTg2LCAwLjAwMzk4NiwgMC4wMDM5ODYsIDAuMDAzOTg2IiwgXAotICAgICAgICAgICIwLjAwMzk3NiwgMC4wMDM5NzcsIDAuMDAzOTc5LCAwLjAwMzk4LCAwLjAwMzk4LCAwLjAwMzk4LCAwLjAwMzk4IiwgXAotICAgICAgICAgICIwLjAwMzk3MiwgMC4wMDM5NzMsIDAuMDAzOTc1LCAwLjAwMzk3NSwgMC4wMDM5NzYsIDAuMDAzOTc2LCAwLjAwMzk3NiIsIFwKLSAgICAgICAgICAiMC4wMDM5NjksIDAuMDAzOTcsIDAuMDAzOTcyLCAwLjAwMzk3MywgMC4wMDM5NzMsIDAuMDAzOTczLCAwLjAwMzk3MyIsIFwKLSAgICAgICAgICAiMC4wMDM5NjgsIDAuMDAzOTY4LCAwLjAwMzk3LCAwLjAwMzk3MSwgMC4wMDM5NzEsIDAuMDAzOTcxLCAwLjAwMzk3MSIsIFwKLSAgICAgICAgICAiMC4wMDM5NjUsIDAuMDAzOTY1LCAwLjAwMzk2NywgMC4wMDM5NjgsIDAuMDAzOTY5LCAwLjAwMzk2OSwgMC4wMDM5NjkiLCBcCi0gICAgICAgICAgIjAuMDAzOTYzLCAwLjAwMzk2MywgMC4wMDM5NjUsIDAuMDAzOTY2LCAwLjAwMzk2NiwgMC4wMDM5NjYsIDAuMDAzOTY2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyOTA1LCAwLjAwMjkwNiwgMC4wMDI5MDksIDAuMDAyOTEsIDAuMDAyOTEsIDAuMDAyOTEsIDAuMDAyOTEiLCBcCi0gICAgICAgICAgIjAuMDAyODk4LCAwLjAwMjg5OSwgMC4wMDI5MDIsIDAuMDAyOTAzLCAwLjAwMjkwMywgMC4wMDI5MDQsIDAuMDAyOTA0IiwgXAotICAgICAgICAgICIwLjAwMjg5MywgMC4wMDI4OTQsIDAuMDAyODk3LCAwLjAwMjg5OCwgMC4wMDI4OTgsIDAuMDAyODk5LCAwLjAwMjg5OSIsIFwKLSAgICAgICAgICAiMC4wMDI4OSwgMC4wMDI4OTEsIDAuMDAyODk0LCAwLjAwMjg5NSwgMC4wMDI4OTUsIDAuMDAyODk1LCAwLjAwMjg5NiIsIFwKLSAgICAgICAgICAiMC4wMDI4ODgsIDAuMDAyODg4LCAwLjAwMjg5MSwgMC4wMDI4OTIsIDAuMDAyODkzLCAwLjAwMjg5MywgMC4wMDI4OTMiLCBcCi0gICAgICAgICAgIjAuMDAyODg0LCAwLjAwMjg4NSwgMC4wMDI4ODgsIDAuMDAyODg5LCAwLjAwMjg5LCAwLjAwMjg5LCAwLjAwMjg4OSIsIFwKLSAgICAgICAgICAiMC4wMDI4ODIsIDAuMDAyODgzLCAwLjAwMjg4NiwgMC4wMDI4ODcsIDAuMDAyODg4LCAwLjAwMjg4OCwgMC4wMDI4ODgiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFFOKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMDczNDEzNjsKLSAgICBmdW5jdGlvbiA6ICJRQklOVCI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3NlbnNlIDogbm9uX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiByaXNpbmdfZWRnZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuNDI2ODA1LCAwLjQ1MjA2OCwgMC42NzkyMiwgMS4wNTgwNCwgMS40MzY2NywgMi4zMjAxOCwgMi44MjUyMSIsIFwKLSAgICAgICAgICAiMC40Mzg0NDYsIDAuNDYzNzA4LCAwLjY5MDg1MiwgMS4wNjk2OCwgMS40NDgzLCAyLjMzMTgzLCAyLjgzNjY2IiwgXAotICAgICAgICAgICIwLjQ1NDA1LCAwLjQ3OTI1OSwgMC43MDY0NjcsIDEuMDg1MTUsIDEuNDYzNzksIDIuMzQ3NTIsIDIuODUyMzciLCBcCi0gICAgICAgICAgIjAuNDY5NTI2LCAwLjQ5NDc2NSwgMC43MjE4ODcsIDEuMTAwNTcsIDEuNDc5MzMsIDIuMzYyOTgsIDIuODY3ODEiLCBcCi0gICAgICAgICAgIjAuNDg0NjcyLCAwLjUwOTkxNywgMC43MzcwOSwgMS4xMTU4NiwgMS40OTQ1OCwgMi4zNzgwNCwgMi44ODMwNiIsIFwKLSAgICAgICAgICAiMC41MDg5OSwgMC41MzQyNTMsIDAuNzYxNDQyLCAxLjE0MDIyLCAxLjUxODg1LCAyLjQwMjM2LCAyLjkwNzIyIiwgXAotICAgICAgICAgICIwLjUyOTYxNiwgMC41NTQ4NzcsIDAuNzgyMDU3LCAxLjE2MDg2LCAxLjUzOTQ3LCAyLjQyMzAxLCAyLjkyNzcxIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI2ODg3LCAwLjMxOTc5NSwgMC43ODA5NjQsIDEuNTQ4MDYsIDIuMzIyMzQsIDQuMTE3NzUsIDUuMTM3MTUiLCBcCi0gICAgICAgICAgIjAuMjY4ODUzLCAwLjMxOTY2OSwgMC43ODIxODMsIDEuNTQ3ODMsIDIuMzIyMjcsIDQuMTE3NzQsIDUuMTMzOTIiLCBcCi0gICAgICAgICAgIjAuMjY4MjI5LCAwLjMxOTk1NywgMC43ODEwMDEsIDEuNTUyMTQsIDIuMzIxNjUsIDQuMTE3NzMsIDUuMTM3NDMiLCBcCi0gICAgICAgICAgIjAuMjY5MzI4LCAwLjMxOTg3MSwgMC43ODEwMywgMS41NTIxNiwgMi4zMTY5NywgNC4xMTc1NywgNS4xMzc0NCIsIFwKLSAgICAgICAgICAiMC4yNjkyNzcsIDAuMzE5ODY4LCAwLjc4MTExNywgMS41NDgxMywgMi4zMjI1MiwgNC4xMTc3NiwgNS4xMzczMSIsIFwKLSAgICAgICAgICAiMC4yNjg4NjksIDAuMzE5Nzk2LCAwLjc4MjQ2NSwgMS41NDgwOSwgMi4zMjIzMSwgNC4xMTc3NSwgNS4xMzc0NyIsIFwKLSAgICAgICAgICAiMC4yNjg4NDksIDAuMzE5NzMyLCAwLjc4MjQwNCwgMS41NDgyOCwgMi4zMjIyNywgNC4xMTc3NCwgNS4xMzc2MiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC40MTc5NzUsIDAuNDQ3NjY3LCAwLjcxNDk2NCwgMS4xNjAzNywgMS42MDU5MSwgMi42NDUwNywgMy4yMzkyMyIsIFwKLSAgICAgICAgICAiMC40Mjk2NzEsIDAuNDU5MzY5LCAwLjcyNjY0OCwgMS4xNzIwNywgMS42MTc2LCAyLjY1NjczLCAzLjI1MTAyIiwgXAotICAgICAgICAgICIwLjQ0NDg2NiwgMC40NzQ1NTksIDAuNzQxODU4LCAxLjE4NzQzLCAxLjYzMjY5LCAyLjY3MjIyLCAzLjI2NjE4IiwgXAotICAgICAgICAgICIwLjQ2MDM0MSwgMC40OTAwNDEsIDAuNzU3MzI3LCAxLjIwMjg5LCAxLjY0ODMyLCAyLjY4NzY0LCAzLjI4MTcyIiwgXAotICAgICAgICAgICIwLjQ3NTQwNSwgMC41MDUxMDUsIDAuNzcyMzg1LCAxLjIxNzgsIDEuNjYzMzQsIDIuNzAyNDQsIDMuMjk2NzciLCBcCi0gICAgICAgICAgIjAuNDk5MzEyLCAwLjUyOTAwMywgMC43OTYyOTgsIDEuMjQxODgsIDEuNjg3MjgsIDIuNzI2NiwgMy4zMjAyNiIsIFwKLSAgICAgICAgICAiMC41MTk4MTksIDAuNTQ5NTEzLCAwLjgxNjc4NSwgMS4yNjIzOCwgMS43MDc2NywgMi43NDcxOCwgMy4zNDExNiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMDgwNCwgMC4zNjY3NDcsIDAuODk1MjcyLCAxLjc3NzYyLCAyLjY1OTIsIDQuNzE0OTEsIDUuODkwNDUiLCBcCi0gICAgICAgICAgIjAuMzA4MDQ2LCAwLjM2Njc0MiwgMC44OTU2MzYsIDEuNzc3NjIsIDIuNjU5MTgsIDQuNzE2MTcsIDUuODkwNTMiLCBcCi0gICAgICAgICAgIjAuMzA4MDM5LCAwLjM2Njc0OCwgMC44OTU2NzcsIDEuNzc2NDgsIDIuNjU4MzQsIDQuNzE2MzIsIDUuODkwNTEiLCBcCi0gICAgICAgICAgIjAuMzA4MDQxLCAwLjM2NjQ4OCwgMC44OTU2NTUsIDEuNzc2NDEsIDIuNjU5MTgsIDQuNzE2MzMsIDUuODg2MzUiLCBcCi0gICAgICAgICAgIjAuMzA4MDM2LCAwLjM2Njc0MSwgMC44OTU2MzgsIDEuNzc3MjYsIDIuNjU5MTYsIDQuNzE2MTQsIDUuODg4MDgiLCBcCi0gICAgICAgICAgIjAuMzA4MDQ0LCAwLjM2NjU0NCwgMC44OTU2NTIsIDEuNzc2NDgsIDIuNjU5MTcsIDQuNzE2MzMsIDUuODg5NzUiLCBcCi0gICAgICAgICAgIjAuMzA4MDM4LCAwLjM2Njc1LCAwLjg5NTE4NSwgMS43NzY0NSwgMi42NTkxMSwgNC43MTYzMiwgNS44OTA1MyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcHJlc2V0OwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC41MTMyOTcsIDAuNTM4NTI3LCAwLjc2NTc4NCwgMS4xNDQ0NywgMS41MjMxNCwgMi40MDY3OCwgMi45MTE2NSIsIFwKLSAgICAgICAgICAiMC41MjQ5NDIsIDAuNTUwMTg1LCAwLjc3NzM4NSwgMS4xNTYwNywgMS41MzQ3OSwgMi40MTgzNiwgMi45MjMwMiIsIFwKLSAgICAgICAgICAiMC41Mzk4ODQsIDAuNTY1MTEzLCAwLjc5MjI3NywgMS4xNzEwMiwgMS41NDk1NywgMi40MzMzNiwgMi45MzgyNSIsIFwKLSAgICAgICAgICAiMC41NTQwODEsIDAuNTc5MzI3LCAwLjgwNjUyNiwgMS4xODUyMSwgMS41NjM5MywgMi40NDc1LCAyLjk1MjE2IiwgXAotICAgICAgICAgICIwLjU2ODQ0NCwgMC41OTM2NzQsIDAuODIwODg5LCAxLjE5OTU3LCAxLjU3ODI4LCAyLjQ2MTg2LCAyLjk2NjUiLCBcCi0gICAgICAgICAgIjAuNTg5MzYxLCAwLjYxNDYwNSwgMC44NDE4MDYsIDEuMjIwNDksIDEuNTk5MiwgMi40ODI3OCwgMi45ODc0MiIsIFwKLSAgICAgICAgICAiMC42MDYyMjgsIDAuNjMxNDcsIDAuODU4NjcyLCAxLjIzNzM2LCAxLjYxNjA2LCAyLjQ5OTY1LCAzLjAwNDI4Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI2OTM2MywgMC4zMjA1NjksIDAuNzgyNjU0LCAxLjU1MjcyLCAyLjMyMjY3LCA0LjExNzczLCA1LjEzNzM3IiwgXAotICAgICAgICAgICIwLjI2OTM3OCwgMC4zMjA2NTMsIDAuNzgyNjE0LCAxLjU1MjY2LCAyLjMyMjkxLCA0LjExNzc0LCA1LjEzNzE0IiwgXAotICAgICAgICAgICIwLjI2OTM3OSwgMC4zMjA2MTQsIDAuNzgyNTQzLCAxLjU1MjM5LCAyLjMyMTk0LCA0LjExNzcxLCA1LjEzNzQxIiwgXAotICAgICAgICAgICIwLjI2OTM3NiwgMC4zMjA2NjUsIDAuNzgyNjE2LCAxLjU1MjY1LCAyLjMyMjksIDQuMTE3NjgsIDUuMTM2NzMiLCBcCi0gICAgICAgICAgIjAuMjY5Mzc3LCAwLjMyMDYxMiwgMC43ODI2MjIsIDEuNTUyNjQsIDIuMzIyODYsIDQuMTE3NjgsIDUuMTM3MjQiLCBcCi0gICAgICAgICAgIjAuMjY5Mzg5LCAwLjMyMDU4LCAwLjc4MjYwMiwgMS41NTI1OSwgMi4zMjI5LCA0LjExNzczLCA1LjEzNjk4IiwgXAotICAgICAgICAgICIwLjI2OTM4OSwgMC4zMTk4OSwgMC43ODI1OTUsIDEuNTUyNTgsIDIuMzIyODgsIDQuMTE3NzMsIDUuMTM3MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiU04iOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGNsZWFyOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC40ODk5ODgsIDAuNTE1MjQyLCAwLjc0MjQzNiwgMS4xMjExMiwgMS40OTk4MiwgMi4zODM0MSwgMi44ODgwNSIsIFwKLSAgICAgICAgICAiMC41MDE5NzgsIDAuNTI3MjIyLCAwLjc1NDQyMiwgMS4xMzMxMSwgMS41MTE4MiwgMi4zOTUzOSwgMi45MDAwNSIsIFwKLSAgICAgICAgICAiMC41MTY5ODIsIDAuNTQyMjI0LCAwLjc2OTQyOCwgMS4xNDgxMSwgMS41MjY4MiwgMi40MTA0LCAyLjkxNTA0IiwgXAotICAgICAgICAgICIwLjUzMTQxNywgMC41NTY2NTgsIDAuNzgzODYyLCAxLjE2MjU1LCAxLjU0MTI1LCAyLjQyNDg0LCAyLjkyOTQ3IiwgXAotICAgICAgICAgICIwLjU0NTM3OSwgMC41NzA2MTQsIDAuNzk3ODI0LCAxLjE3NjUxLCAxLjU1NTIxLCAyLjQzODgsIDIuOTQzNDEiLCBcCi0gICAgICAgICAgIjAuNTY3MzQ1LCAwLjU5MjYwNSwgMC44MTk3ODEsIDEuMTk4NDUsIDEuNTc3MTYsIDIuNDYwNjgsIDIuOTY1NzYiLCBcCi0gICAgICAgICAgIjAuNTg2NTcsIDAuNjExODEyLCAwLjgzOTAxNCwgMS4yMTc3MSwgMS41OTY0MiwgMi40Nzk5OSwgMi45ODUwNCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yNjkzODIsIDAuMzIwNzAxLCAwLjc4MjY0NiwgMS41NTI2OCwgMi4zMjI4OCwgNC4xMTc3NSwgNS4xMzM4MiIsIFwKLSAgICAgICAgICAiMC4yNjkzNzgsIDAuMzIwNjYsIDAuNzgyNjIsIDEuNTUyNjYsIDIuMzIyOSwgNC4xMTc2OSwgNS4xMzQ2MSIsIFwKLSAgICAgICAgICAiMC4yNjkzODksIDAuMzIwNDA2LCAwLjc4MjYxLCAxLjU1MjYxLCAyLjMyMjg5LCA0LjExNzc0LCA1LjEzNDA2IiwgXAotICAgICAgICAgICIwLjI2OTM5LCAwLjMyMDU1NSwgMC43ODI1OTQsIDEuNTUyNTgsIDIuMzIyODcsIDQuMTE3NzMsIDUuMTM3MDUiLCBcCi0gICAgICAgICAgIjAuMjY5MzksIDAuMzE5OTk3LCAwLjc4MjU5MiwgMS41NTI1OCwgMi4zMjI4MywgNC4xMTc3MywgNS4xMzc1OCIsIFwKLSAgICAgICAgICAiMC4yNjkzMjEsIDAuMzIwNjExLCAwLjc4MjQyNywgMS41NTIyMiwgMi4zMjIzNSwgNC4xMTc3NCwgNS4xMzc0MSIsIFwKLSAgICAgICAgICAiMC4yNjkzNzUsIDAuMzIwNjQxLCAwLjc4MjU5OSwgMS41NTI2NSwgMi4zMjI4NSwgNC4xMTc2NywgNS4xMzQwMyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zODQwMTYsIDAuNDEzNjk1LCAwLjY4MDk5OCwgMS4xMjYzNywgMS41NzE5NSwgMi42MTExOSwgMy4yMDQ5NSIsIFwKLSAgICAgICAgICAiMC4zOTU0NTgsIDAuNDI1MTQ4LCAwLjY5MjQ1NiwgMS4xMzc4OCwgMS41ODM0MSwgMi42MjI1NywgMy4yMTY0NyIsIFwKLSAgICAgICAgICAiMC40MDk4MywgMC40Mzk1MSwgMC43MDY4MSwgMS4xNTIxOSwgMS41OTc3NywgMi42MzcyMSwgMy4yMzA3NiIsIFwKLSAgICAgICAgICAiMC40MjQ2OTksIDAuNDU0Mzk0LCAwLjcyMTY3NiwgMS4xNjcwOCwgMS42MTI1NSwgMi42NTE3NiwgMy4yNDU2NSIsIFwKLSAgICAgICAgICAiMC40MzkyMiwgMC40Njg4OTIsIDAuNzM2MjIsIDEuMTgxNTcsIDEuNjI2OTYsIDIuNjY2MjgsIDMuMjYwMTciLCBcCi0gICAgICAgICAgIjAuNDYyNzgsIDAuNDkyNDYyLCAwLjc1OTc1OSwgMS4yMDUxNCwgMS42NTA3MiwgMi42ODk5OSwgMy4yODM3MSIsIFwKLSAgICAgICAgICAiMC40ODMwNywgMC41MTI3NjIsIDAuNzgwMDc0LCAxLjIyNTQ5LCAxLjY3MTAxLCAyLjcxMDE4LCAzLjMwNDAxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMwODAxMSwgMC4zNjY3MTYsIDAuODk1ODg5LCAxLjc3NzQ3LCAyLjY1OTIyLCA0LjcxNDkzLCA1Ljg5MDIxIiwgXAotICAgICAgICAgICIwLjMwNzk5MywgMC4zNjY4MSwgMC44OTU4ODQsIDEuNzc3NDUsIDIuNjU5MTcsIDQuNzE0MzQsIDUuODkwMTkiLCBcCi0gICAgICAgICAgIjAuMzA4MDA4LCAwLjM2NjcxMywgMC44OTU5MSwgMS43Nzc0NywgMi42NTkyMiwgNC43MTY0NSwgNS44OTAwMyIsIFwKLSAgICAgICAgICAiMC4zMDgwMDQsIDAuMzY2NzEyLCAwLjg5NTkxNiwgMS43Nzc0NCwgMi42NTkxMywgNC43MTQwOCwgNS44OTAxOCIsIFwKLSAgICAgICAgICAiMC4zMDgwMDksIDAuMzY2NzEyLCAwLjg5NTkxMiwgMS43Nzc0NywgMi42NTkwOCwgNC43MTYzNCwgNS44OTAyMiIsIFwKLSAgICAgICAgICAiMC4zMDgwMTEsIDAuMzY2NzkxLCAwLjg5NTkwOSwgMS43Nzc0NiwgMi42NTkyLCA0LjcxNjI5LCA1Ljg5MDIzIiwgXAotICAgICAgICAgICIwLjMwNzk4NiwgMC4zNjY3MTMsIDAuODk1ODI4LCAxLjc3NzQzLCAyLjY1OTIsIDQuNzE0NzIsIDUuODkwNDciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzMjc2LCAwLjAwMzI3NywgMC4wMDMyNzksIDAuMDAzMjgsIDAuMDAzMjgxLCAwLjAwMzI4MSwgMC4wMDMyODEiLCBcCi0gICAgICAgICAgIjAuMDAzMjcsIDAuMDAzMjcsIDAuMDAzMjczLCAwLjAwMzI3NCwgMC4wMDMyNzQsIDAuMDAzMjc1LCAwLjAwMzI3NSIsIFwKLSAgICAgICAgICAiMC4wMDMyNjQsIDAuMDAzMjY1LCAwLjAwMzI2NywgMC4wMDMyNjgsIDAuMDAzMjY5LCAwLjAwMzI2OSwgMC4wMDMyNjkiLCBcCi0gICAgICAgICAgIjAuMDAzMjYsIDAuMDAzMjYxLCAwLjAwMzI2NCwgMC4wMDMyNjUsIDAuMDAzMjY1LCAwLjAwMzI2NSwgMC4wMDMyNjUiLCBcCi0gICAgICAgICAgIjAuMDAzMjU4LCAwLjAwMzI1OSwgMC4wMDMyNjIsIDAuMDAzMjYzLCAwLjAwMzI2MywgMC4wMDMyNjQsIDAuMDAzMjY0IiwgXAotICAgICAgICAgICIwLjAwMzI1OCwgMC4wMDMyNTksIDAuMDAzMjYyLCAwLjAwMzI2MywgMC4wMDMyNjMsIDAuMDAzMjYzLCAwLjAwMzI2MyIsIFwKLSAgICAgICAgICAiMC4wMDMyNTksIDAuMDAzMjYsIDAuMDAzMjYzLCAwLjAwMzI2NCwgMC4wMDMyNjQsIDAuMDAzMjY0LCAwLjAwMzI2NCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzU1MywgMC4wMDM1NTQsIDAuMDAzNTU3LCAwLjAwMzU1NywgMC4wMDM1NTgsIDAuMDAzNTU4LCAwLjAwMzU1OCIsIFwKLSAgICAgICAgICAiMC4wMDM1NDcsIDAuMDAzNTQ3LCAwLjAwMzU1LCAwLjAwMzU1MSwgMC4wMDM1NTEsIDAuMDAzNTUxLCAwLjAwMzU1MSIsIFwKLSAgICAgICAgICAiMC4wMDM1NCwgMC4wMDM1NDEsIDAuMDAzNTQzLCAwLjAwMzU0NCwgMC4wMDM1NDUsIDAuMDAzNTQ1LCAwLjAwMzU0NSIsIFwKLSAgICAgICAgICAiMC4wMDM1MzYsIDAuMDAzNTM2LCAwLjAwMzUzOSwgMC4wMDM1NCwgMC4wMDM1NCwgMC4wMDM1NCwgMC4wMDM1NCIsIFwKLSAgICAgICAgICAiMC4wMDM1MzIsIDAuMDAzNTMyLCAwLjAwMzUzNSwgMC4wMDM1MzYsIDAuMDAzNTM2LCAwLjAwMzUzNywgMC4wMDM1MzYiLCBcCi0gICAgICAgICAgIjAuMDAzNTI3LCAwLjAwMzUyNywgMC4wMDM1MywgMC4wMDM1MzEsIDAuMDAzNTMxLCAwLjAwMzUzMSwgMC4wMDM1MzIiLCBcCi0gICAgICAgICAgIjAuMDAzNTI1LCAwLjAwMzUyNSwgMC4wMDM1MjgsIDAuMDAzNTI5LCAwLjAwMzUyOSwgMC4wMDM1MywgMC4wMDM1MjkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzODg5LCAwLjAwMzg5LCAwLjAwMzg5LCAwLjAwMzg4OSwgMC4wMDM4ODgsIDAuMDAzODg3LCAwLjAwMzg4NiIsIFwKLSAgICAgICAgICAiMC4wMDM4ODQsIDAuMDAzODg1LCAwLjAwMzg4NSwgMC4wMDM4ODQsIDAuMDAzODgzLCAwLjAwMzg4MiwgMC4wMDM4ODEiLCBcCi0gICAgICAgICAgIjAuMDAzODgsIDAuMDAzODgxLCAwLjAwMzg4MSwgMC4wMDM4OCwgMC4wMDM4NzksIDAuMDAzODc4LCAwLjAwMzg3NyIsIFwKLSAgICAgICAgICAiMC4wMDM4NzYsIDAuMDAzODc3LCAwLjAwMzg3NywgMC4wMDM4NzYsIDAuMDAzODc1LCAwLjAwMzg3MywgMC4wMDM4NzMiLCBcCi0gICAgICAgICAgIjAuMDAzODc1LCAwLjAwMzg3NSwgMC4wMDM4NzYsIDAuMDAzODc1LCAwLjAwMzg3NCwgMC4wMDM4NzIsIDAuMDAzODcyIiwgXAotICAgICAgICAgICIwLjAwMzg3MiwgMC4wMDM4NzIsIDAuMDAzODczLCAwLjAwMzg3MiwgMC4wMDM4NzEsIDAuMDAzODY5LCAwLjAwMzg2OSIsIFwKLSAgICAgICAgICAiMC4wMDM4NzEsIDAuMDAzODcxLCAwLjAwMzg3MiwgMC4wMDM4NywgMC4wMDM4NjksIDAuMDAzODY5LCAwLjAwMzg2OCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihzY2FsYXIpIHsKLSAgICAgICAgdmFsdWVzKCIwIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiU04iOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjkwNSwgMC4wMDI5MDYsIDAuMDAyOTA5LCAwLjAwMjkxLCAwLjAwMjkxLCAwLjAwMjkxLCAwLjAwMjkxIiwgXAotICAgICAgICAgICIwLjAwMjg5OCwgMC4wMDI4OTksIDAuMDAyOTAyLCAwLjAwMjkwMywgMC4wMDI5MDMsIDAuMDAyOTA0LCAwLjAwMjkwNCIsIFwKLSAgICAgICAgICAiMC4wMDI4OTMsIDAuMDAyODk0LCAwLjAwMjg5NywgMC4wMDI4OTgsIDAuMDAyODk4LCAwLjAwMjg5OSwgMC4wMDI4OTkiLCBcCi0gICAgICAgICAgIjAuMDAyODksIDAuMDAyODkxLCAwLjAwMjg5NCwgMC4wMDI4OTUsIDAuMDAyODk1LCAwLjAwMjg5NSwgMC4wMDI4OTYiLCBcCi0gICAgICAgICAgIjAuMDAyODg4LCAwLjAwMjg4OCwgMC4wMDI4OTEsIDAuMDAyODkyLCAwLjAwMjg5MywgMC4wMDI4OTMsIDAuMDAyODkzIiwgXAotICAgICAgICAgICIwLjAwMjg4NCwgMC4wMDI4ODUsIDAuMDAyODg4LCAwLjAwMjg4OSwgMC4wMDI4OSwgMC4wMDI4OSwgMC4wMDI4ODkiLCBcCi0gICAgICAgICAgIjAuMDAyODgyLCAwLjAwMjg4MywgMC4wMDI4ODYsIDAuMDAyODg3LCAwLjAwMjg4OCwgMC4wMDI4ODgsIDAuMDAyODg4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzOTgyLCAwLjAwMzk4MywgMC4wMDM5ODUsIDAuMDAzOTg2LCAwLjAwMzk4NiwgMC4wMDM5ODYsIDAuMDAzOTg2IiwgXAotICAgICAgICAgICIwLjAwMzk3NiwgMC4wMDM5NzcsIDAuMDAzOTc5LCAwLjAwMzk4LCAwLjAwMzk4LCAwLjAwMzk4LCAwLjAwMzk4IiwgXAotICAgICAgICAgICIwLjAwMzk3MiwgMC4wMDM5NzMsIDAuMDAzOTc1LCAwLjAwMzk3NSwgMC4wMDM5NzYsIDAuMDAzOTc2LCAwLjAwMzk3NiIsIFwKLSAgICAgICAgICAiMC4wMDM5NjksIDAuMDAzOTcsIDAuMDAzOTcyLCAwLjAwMzk3MywgMC4wMDM5NzMsIDAuMDAzOTczLCAwLjAwMzk3MyIsIFwKLSAgICAgICAgICAiMC4wMDM5NjgsIDAuMDAzOTY4LCAwLjAwMzk3LCAwLjAwMzk3MSwgMC4wMDM5NzEsIDAuMDAzOTcxLCAwLjAwMzk3MSIsIFwKLSAgICAgICAgICAiMC4wMDM5NjUsIDAuMDAzOTY1LCAwLjAwMzk2NywgMC4wMDM5NjgsIDAuMDAzOTY5LCAwLjAwMzk2OSwgMC4wMDM5NjkiLCBcCi0gICAgICAgICAgIjAuMDAzOTYzLCAwLjAwMzk2MywgMC4wMDM5NjUsIDAuMDAzOTY2LCAwLjAwMzk2NiwgMC4wMDM5NjYsIDAuMDAzOTY2Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihSTikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNTk0NzE7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNTk0NDU0OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDU5NDcxOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDQxMywgMC4wMDAzOTgsIDAuMDAwMzg4LCAwLjAwMDM4MiwgMC4wMDAzOCwgMC4wMDAzNzcsIDAuMDAwMzc3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxNzM1LCAwLjAwMTcyNSwgMC4wMDE3MTksIDAuMDAxNzE1LCAwLjAwMTcxMywgMC4wMDE3MTEsIDAuMDAxNzEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUk4iOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFEJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgZmFsbF9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuNTE0MTU5LCAwLjUyNTg0MiwgMC41NDA3ODIsIDAuNTU0OTc3LCAwLjU2OTMzOSwgMC41OTAzMSwgMC42MDcxNzMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiByZWNvdmVyeV9yaXNpbmc7Ci0gICAgICB3aGVuIDogIkQmU04iOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8xX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQocmVjb3ZlcnlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTMxMjUsIDAuMTIsIDAuMTAxMjUsIDAuMDg4NzUsIDAuMDcsIDAuMDQ3NSwgMC4wMjYyNSIsIFwKLSAgICAgICAgICAiMC4xNDI1LCAwLjEzMTI1LCAwLjExMjUsIDAuMSwgMC4wODEyNSwgMC4wNTg3NSwgMC4wMzc1IiwgXAotICAgICAgICAgICIwLjE2MTI1LCAwLjE0Mzc1LCAwLjEzMTI1LCAwLjExMjUsIDAuMSwgMC4wNzEyNSwgMC4wNSIsIFwKLSAgICAgICAgICAiMC4xNzM3NSwgMC4xNjI1LCAwLjE0Mzc1LCAwLjEzMTI1LCAwLjExMjUsIDAuMDksIDAuMDY4NzUiLCBcCi0gICAgICAgICAgIjAuMTkyNSwgMC4xNzUsIDAuMTYyNSwgMC4xNDM3NSwgMC4xMzEyNSwgMC4xMDI1LCAwLjA4MTI1IiwgXAotICAgICAgICAgICIwLjIxNSwgMC4xOTc1LCAwLjE4NSwgMC4xNjYyNSwgMC4xNTM3NSwgMC4xMjUsIDAuMTAzNzUiLCBcCi0gICAgICAgICAgIjAuMjMsIDAuMjE4NzUsIDAuMiwgMC4xODc1LCAwLjE2ODc1LCAwLjE0NjI1LCAwLjEyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJlY292ZXJ5X3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUQiOwotICAgICAgc2RmX2NvbmQgOiAiRCA9PSAxJ2IwIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChyZWNvdmVyeV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xOTM3NSwgMC4yMDUsIDAuMjE3NSwgMC4yMywgMC4yNDg3NSwgMC4yNjUsIDAuMjg2MjUiLCBcCi0gICAgICAgICAgIjAuMTgyNSwgMC4xOTM3NSwgMC4yMDYyNSwgMC4yMTg3NSwgMC4yMzEyNSwgMC4yNTM3NSwgMC4yNzUiLCBcCi0gICAgICAgICAgIjAuMTcsIDAuMTgxMjUsIDAuMTkzNzUsIDAuMjA2MjUsIDAuMjE4NzUsIDAuMjQxMjUsIDAuMjYyNSIsIFwKLSAgICAgICAgICAiMC4xNTc1LCAwLjE2ODc1LCAwLjE4MTI1LCAwLjE5Mzc1LCAwLjIxMjUsIDAuMjI4NzUsIDAuMjUiLCBcCi0gICAgICAgICAgIjAuMTQ1LCAwLjE1NjI1LCAwLjE3NSwgMC4xODc1LCAwLjIsIDAuMjIyNSwgMC4yMzc1IiwgXAotICAgICAgICAgICIwLjEyODc1LCAwLjE0NjI1LCAwLjE1ODc1LCAwLjE3MTI1LCAwLjE4Mzc1LCAwLjIwNjI1LCAwLjIyNzUiLCBcCi0gICAgICAgICAgIjAuMTIsIDAuMTMxMjUsIDAuMTUsIDAuMTYyNSwgMC4xNzUsIDAuMTk3NSwgMC4yMTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogcmVtb3ZhbF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIkQmU04iOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8xX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQocmVtb3ZhbF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDMxMjUsIC0wLjAyLCAtMC4wMDc1LCAwLjAxMTI1LCAwLjAyMzc1LCAwLjA0NjI1LCAwLjA2NzUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgMCwgMC4wMTI1LCAwLjAzNSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiLTAuMDYxMjUsIC0wLjA0Mzc1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIDAsIDAuMDIyNSwgMC4wMzc1IiwgXAotICAgICAgICAgICItMC4wNzM3NSwgLTAuMDYyNSwgLTAuMDUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgMC4wMDM3NSwgMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjA5MjUsIC0wLjA3NSwgLTAuMDYyNSwgLTAuMDUsIC0wLjAzMTI1LCAtMC4wMDg3NSwgMC4wMTI1IiwgXAotICAgICAgICAgICItMC4xMTUsIC0wLjEwMzc1LCAtMC4wODUsIC0wLjA3MjUsIC0wLjA1Mzc1LCAtMC4wMzEyNSwgLTAuMDE2MjUiLCBcCi0gICAgICAgICAgIi0wLjEzLCAtMC4xMTg3NSwgLTAuMTA2MjUsIC0wLjA4NzUsIC0wLjA3NSwgLTAuMDUyNSwgLTAuMDMxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFNOKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE2NTQ3OTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE2NTQ3OTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE2NTQyNDsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAzMzEsIDAuMDAwMzMsIDAuMDAwMzMsIDAuMDAwMzMsIDAuMDAwMzMsIDAuMDAwMzMsIDAuMDAwMzMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAzMzEsIDAuMDAwMzMyLCAwLjAwMDMzMSwgMC4wMDAzMzIsIDAuMDAwMzMyLCAwLjAwMDMzMiwgMC4wMDAzMzIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiU04iOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFEJiFSTiI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fUk5fRVFfMCA9PSAxJ2IxIjsKLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjM4NDAxNiwgMC4zOTU0NTgsIDAuNDA5ODMsIDAuNDI0Njk5LCAwLjQzOTIyLCAwLjQ2Mjc4LCAwLjQ4MzA2MyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJlY292ZXJ5X3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUQmUk4iOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1JOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQocmVjb3ZlcnlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU2MjUsIDAuMDQ1LCAwLjAyNjI1LCAwLjAwNzUsIC0wLjAwNSwgLTAuMDMzNzUsIC0wLjA1NSIsIFwKLSAgICAgICAgICAiMC4wNjc1LCAwLjA1NjI1LCAwLjAzNzUsIDAuMDE4NzUsIDAuMDA2MjUsIC0wLjAyMjUsIC0wLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjA4LCAwLjA2ODc1LCAwLjA1LCAwLjAzNzUsIDAuMDE4NzUsIC0wLjAwMzc1LCAtMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMDk4NzUsIDAuMDg3NSwgMC4wNjg3NSwgMC4wNSwgMC4wMzc1LCAwLjAwODc1LCAtMC4wMTI1IiwgXAotICAgICAgICAgICIwLjExMTI1LCAwLjEsIDAuMDgxMjUsIDAuMDYyNSwgMC4wNSwgMC4wMjEyNSwgMCIsIFwKLSAgICAgICAgICAiMC4xMzM3NSwgMC4xMjI1LCAwLjEwMzc1LCAwLjA4NSwgMC4wNzI1LCAwLjA0Mzc1LCAwLjAyMjUiLCBcCi0gICAgICAgICAgIjAuMTQ4NzUsIDAuMTM3NSwgMC4xMjUsIDAuMTA2MjUsIDAuMDkzNzUsIDAuMDY1LCAwLjA0Mzc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogcmVtb3ZhbF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEJlJOIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9STl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHJlbW92YWxfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDYyNSwgMC4wNzM3NSwgMC4wODYyNSwgMC4xMDUsIDAuMTE3NSwgMC4xNCwgMC4xNjEyNSIsIFwKLSAgICAgICAgICAiMC4wNTEyNSwgMC4wNjI1LCAwLjA3NSwgMC4wOTM3NSwgMC4xMDYyNSwgMC4xMjg3NSwgMC4xNSIsIFwKLSAgICAgICAgICAiMC4wMzI1LCAwLjA0Mzc1LCAwLjA2MjUsIDAuMDc1LCAwLjA5Mzc1LCAwLjExNjI1LCAwLjEzNzUiLCBcCi0gICAgICAgICAgIjAuMDIsIDAuMDMxMjUsIDAuMDUsIDAuMDYyNSwgMC4wODEyNSwgMC4xMDM3NSwgMC4xMjUiLCBcCi0gICAgICAgICAgIjAuMDA3NSwgMC4wMTg3NSwgMC4wMzEyNSwgMC4wNSwgMC4wNjI1LCAwLjA5MTI1LCAwLjExMjUiLCBcCi0gICAgICAgICAgIi0wLjAxNSwgLTAuMDAzNzUsIDAuMDA4NzUsIDAuMDI3NSwgMC4wNCwgMC4wNjg3NSwgMC4wOSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAyNSwgLTAuMDA2MjUsIDAuMDA2MjUsIDAuMDI1LCAwLjA0NzUsIDAuMDY4NzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBERkZUUlgyICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKERGRlRSWDIpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4zNTIyODQ7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgZmYgKE4zMCxRQklOVCkgewotICAgIG5leHRfc3RhdGUgOiAiKEQgUk4pIjsKLSAgICBjbG9ja2VkX29uIDogIkNLIjsKLSAgfQotICBwaW4oQ0spICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDU1MDQ1NTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA1NTAxNjU7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNTUwNDU1OwotICAgIGNsb2NrIDogdHJ1ZTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDI0MzUsIDAuMDAyNDIxLCAwLjAwMjQxMSwgMC4wMDI0MDUsIDAuMDAyMzk5LCAwLjAwMjM5MiwgMC4wMDIzOSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNDgxNywgMC4wMDQ4MDYsIDAuMDA0Nzk4LCAwLjAwNDc5MiwgMC4wMDQ3OSwgMC4wMDQ3OTMsIDAuMDA0NzkyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRCYhUk4iOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1JOX0VRXzAgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4zMjc1NzksIDAuMzM5MzY5LCAwLjM1NDY3MiwgMC4zNzAyMzMsIDAuMzg1Mzg2LCAwLjQwOTc2NSwgMC40MzA1NDYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjE3ODI2MSwgMC4xODk0MjUsIDAuMjA0NzU2LCAwLjIxOTYyNiwgMC4yMzQwOTksIDAuMjU2OTg0LCAwLjI3NTcyNiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjA0NjIzOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYwNDEyNjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2MDQ2MjM7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxOTUyLCAwLjAwMTk0MSwgMC4wMDE5MzMsIDAuMDAxOTI3LCAwLjAwMTkyNCwgMC4wMDE5MjEsIDAuMDAxOTIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDMwNzYsIDAuMDAzMDcyLCAwLjAwMzA2NiwgMC4wMDMwNiwgMC4wMDMwNTYsIDAuMDAzMDUsIDAuMDAzMDQ2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlJOIjsKLSAgICAgIHNkZl9jb25kIDogIlJOID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjEwNjI1LCAtMC4wOTUsIC0wLjA4MjUsIC0wLjA3LCAtMC4wNjM3NSwgLTAuMDQ3NSwgLTAuMDMyNSIsIFwKLSAgICAgICAgICAiLTAuMTE3NSwgLTAuMTA2MjUsIC0wLjA5Mzc1LCAtMC4wODEyNSwgLTAuMDc1LCAtMC4wNTg3NSwgLTAuMDQzNzUiLCBcCi0gICAgICAgICAgIi0wLjEzLCAtMC4xMTg3NSwgLTAuMTA2MjUsIC0wLjA5Mzc1LCAtMC4wODc1LCAtMC4wNzEyNSwgLTAuMDU2MjUiLCBcCi0gICAgICAgICAgIi0wLjE0MjUsIC0wLjEzMTI1LCAtMC4xMTg3NSwgLTAuMTA2MjUsIC0wLjEsIC0wLjA4Mzc1LCAtMC4wNzUiLCBcCi0gICAgICAgICAgIi0wLjE1NSwgLTAuMTQzNzUsIC0wLjEzNzUsIC0wLjEyNSwgLTAuMTEyNSwgLTAuMDk2MjUsIC0wLjA4NzUiLCBcCi0gICAgICAgICAgIi0wLjE3NzUsIC0wLjE2NjI1LCAtMC4xNTM3NSwgLTAuMTQ3NSwgLTAuMTM1LCAtMC4xMTg3NSwgLTAuMTEiLCBcCi0gICAgICAgICAgIi0wLjE5ODc1LCAtMC4xODc1LCAtMC4xNzUsIC0wLjE2MjUsIC0wLjE1NjI1LCAtMC4xNCwgLTAuMTMxMjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyNSwgMC4wMzYyNSwgMC4wNDg3NSwgMC4wNjc1LCAwLjA4LCAwLjEwMjUsIDAuMTIzNzUiLCBcCi0gICAgICAgICAgIjAuMDEzNzUsIDAuMDI1LCAwLjAzNzUsIDAuMDU2MjUsIDAuMDY4NzUsIDAuMDkxMjUsIDAuMTEyNSIsIFwKLSAgICAgICAgICAiMC4wMDEyNSwgMC4wMTI1LCAwLjAyNSwgMC4wNDM3NSwgMC4wNTYyNSwgMC4wNzg3NSwgMC4xIiwgXAotICAgICAgICAgICItMC4wMTEyNSwgMCwgMC4wMTI1LCAwLjAyNSwgMC4wNDM3NSwgMC4wNjYyNSwgMC4wODc1IiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDEyNSwgMCwgMC4wMTI1LCAwLjAyNSwgMC4wNTM3NSwgMC4wNjg3NSIsIFwKLSAgICAgICAgICAiLTAuMDQ2MjUsIC0wLjAzNSwgLTAuMDIyNSwgLTAuMDAzNzUsIDAuMDA4NzUsIDAuMDMxMjUsIDAuMDUyNSIsIFwKLSAgICAgICAgICAiLTAuMDYxMjUsIC0wLjA1LCAtMC4wMzc1LCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAuMDE2MjUsIDAuMDM3NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiUk4iOwotICAgICAgc2RmX2NvbmQgOiAiUk4gPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTgxMjUsIDAuMTcsIDAuMTUxMjUsIDAuMTM4NzUsIDAuMTI2MjUsIDAuMTEsIDAuMDk1IiwgXAotICAgICAgICAgICIwLjE5MjUsIDAuMTgxMjUsIDAuMTYyNSwgMC4xNSwgMC4xMzc1LCAwLjEyMTI1LCAwLjEwNjI1IiwgXAotICAgICAgICAgICIwLjIwNSwgMC4xOTM3NSwgMC4xNzUsIDAuMTYyNSwgMC4xNSwgMC4xMzM3NSwgMC4xMTg3NSIsIFwKLSAgICAgICAgICAiMC4yMTc1LCAwLjIwNjI1LCAwLjE4NzUsIDAuMTc1LCAwLjE2MjUsIDAuMTQ2MjUsIDAuMTMxMjUiLCBcCi0gICAgICAgICAgIjAuMjM2MjUsIDAuMjE4NzUsIDAuMjA2MjUsIDAuMTg3NSwgMC4xODEyNSwgMC4xNTg3NSwgMC4xNSIsIFwKLSAgICAgICAgICAiMC4yNTI1LCAwLjI0MTI1LCAwLjIyODc1LCAwLjIxLCAwLjE5NzUsIDAuMTgxMjUsIDAuMTcyNSIsIFwKLSAgICAgICAgICAiMC4yNzM3NSwgMC4yNjI1LCAwLjI0Mzc1LCAwLjIzMTI1LCAwLjIxODc1LCAwLjIwMjUsIDAuMTg3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1LCAwLjAzODc1LCAwLjAyLCAwLjAwNzUsIC0wLjAxMTI1LCAtMC4wMzM3NSwgLTAuMDU1IiwgXAotICAgICAgICAgICIwLjA2MTI1LCAwLjA1LCAwLjAzMTI1LCAwLjAxODc1LCAwLCAtMC4wMjI1LCAtMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4wNzM3NSwgMC4wNjI1LCAwLjA1LCAwLjAzMTI1LCAwLjAxODc1LCAtMC4wMSwgLTAuMDI1IiwgXAotICAgICAgICAgICIwLjA5MjUsIDAuMDc1LCAwLjA2MjUsIDAuMDQzNzUsIDAuMDMxMjUsIDAuMDA4NzUsIC0wLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMTA1LCAwLjA5Mzc1LCAwLjA3NSwgMC4wNjI1LCAwLjA0Mzc1LCAwLjAyMTI1LCAwIiwgXAotICAgICAgICAgICIwLjEyNzUsIDAuMTE2MjUsIDAuMDk3NSwgMC4wODUsIDAuMDY2MjUsIDAuMDQzNzUsIDAuMDIyNSIsIFwKLSAgICAgICAgICAiMC4xNDI1LCAwLjEzMTI1LCAwLjExODc1LCAwLjEsIDAuMDg3NSwgMC4wNTg3NSwgMC4wNDM3NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjI2MjAwNTsKLSAgICBmdW5jdGlvbiA6ICJOMzAiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5vbl91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcmlzaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI0ODc1LCAwLjQyOTEyMywgMC41NzI5MTMsIDAuNzUxNjY1LCAwLjkyOTkxNiwgMS4xMTAxLCAxLjI4NjM1IiwgXAotICAgICAgICAgICIwLjI2MDQxNiwgMC40NDA5MjgsIDAuNTgzODk0LCAwLjc2Mzc0MiwgMC45NDI1NjgsIDEuMTE5MzksIDEuMjk4NjEiLCBcCi0gICAgICAgICAgIjAuMjc1NjM1LCAwLjQ1NTUwMiwgMC41OTk4MDMsIDAuNzc4OTQzLCAwLjk1NzAyLCAxLjEzNTY1LCAxLjMxMzI3IiwgXAotICAgICAgICAgICIwLjI5MTEzMSwgMC40NzE2NDUsIDAuNjE0NjM4LCAwLjc5NDQ2OCwgMC45NzMyMjcsIDEuMTUwMDIsIDEuMzI5MjMiLCBcCi0gICAgICAgICAgIjAuMzA2Mjg4LCAwLjQ4NjM3NywgMC42MzA0MjIsIDAuODA5NjY1LCAwLjk4NzkxOCwgMS4xNjc0MSwgMS4zNDM4NCIsIFwKLSAgICAgICAgICAiMC4zMzA1MDIsIDAuNTExMDI0LCAwLjY1NDAzNSwgMC44MzM5MTIsIDEuMDExNzQsIDEuMTkwNjQsIDEuMzY4NTIiLCBcCi0gICAgICAgICAgIjAuMzUxMDU2LCAwLjUzMTU3NywgMC42NzQ2MTksIDAuODU0MzY5LCAxLjAzMzIyLCAxLjIxMDAzLCAxLjM4OTE5Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5Mzc3MiwgMC40NTQzNCwgMC43NDY4NTQsIDEuMTA1NDEsIDEuNDcyNiwgMS44NDY5NCwgMi4yMjI4MiIsIFwKLSAgICAgICAgICAiMC4wOTM4NDQsIDAuNDU1MzA5LCAwLjc1MDM2LCAxLjExNDgyLCAxLjQ3OTQ5LCAxLjg0MzI0LCAyLjE5Nzg3IiwgXAotICAgICAgICAgICIwLjA5Mzg1NCwgMC40NTM1NDMsIDAuNzQ3NjgxLCAxLjExNjE4LCAxLjQ2OTQxLCAxLjg1NDkxLCAyLjIyMjgxIiwgXAotICAgICAgICAgICIwLjA5MzgzOSwgMC40NTUzMTEsIDAuNzUwMzYsIDEuMTEzNzYsIDEuNDgyNDMsIDEuODQzOTUsIDIuMTk4OTQiLCBcCi0gICAgICAgICAgIjAuMDkzNzg2LCAwLjQ1MzA0OCwgMC43NDY0ODgsIDEuMTA1ODgsIDEuNDYzMDUsIDEuODQwNDcsIDIuMjA1MjkiLCBcCi0gICAgICAgICAgIjAuMDkzODQ0LCAwLjQ1NTMxNiwgMC43NTAyOTksIDEuMTEzODQsIDEuNDc4NywgMS44MjY4NCwgMi4yMjI3IiwgXAotICAgICAgICAgICIwLjA5Mzg3MSwgMC40NTUzMTEsIDAuNzUwMjY1LCAxLjExNTcyLCAxLjQ3ODYxLCAxLjg0MzMxLCAyLjE5ODU4Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI4MjE0NywgMC40OTAwNTYsIDAuNjU0ODA3LCAwLjg2MDk4OCwgMS4wNjc1MiwgMS4yNzQzMiwgMS40ODQ3IiwgXAotICAgICAgICAgICIwLjI5Mzg2NSwgMC41MDE4MDMsIDAuNjY2NTMxLCAwLjg3NDA4MiwgMS4wODIxLCAxLjI4NTY1LCAxLjQ5MjA5IiwgXAotICAgICAgICAgICIwLjMwOTIzMywgMC41MTcyMzksIDAuNjgxODg2LCAwLjg4ODg1MywgMS4wOTQ2MywgMS4zMDE2NCwgMS41MDc4NiIsIFwKLSAgICAgICAgICAiMC4zMjQ3NSwgMC41MzI2NjQsIDAuNjk3NTIxLCAwLjkwNDE4MiwgMS4xMTAxNSwgMS4zMTc3MiwgMS41MjM1MiIsIFwKLSAgICAgICAgICAiMC4zMzk5NDUsIDAuNTQ3ODU5LCAwLjcxMjYwNSwgMC45MTkzMzEsIDEuMTI1MjUsIDEuMzMxODksIDEuNTQyNjIiLCBcCi0gICAgICAgICAgIjAuMzY0MzEzLCAwLjU3MjIxOSwgMC43MzY5NjYsIDAuOTQzOTE1LCAxLjE0OTczLCAxLjM1Njg2LCAxLjU2MjY5IiwgXAotICAgICAgICAgICIwLjM4NTEwNywgMC41OTMwMjcsIDAuNzU3NzYyLCAwLjk2NDcyNywgMS4xNzA1MSwgMS4zNzc1LCAxLjU4MzMxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwMjI4NiwgMC41MDc0NTksIDAuODM0ODE2LCAxLjI0NTI0LCAxLjY1NTM5LCAyLjA2NjkxLCAyLjQ4MDc5IiwgXAotICAgICAgICAgICIwLjEwMjI5NSwgMC41MDc0NywgMC44MzQzMTIsIDEuMjQ1NzksIDEuNjU3NTMsIDIuMDY4ODYsIDIuNDc4NSIsIFwKLSAgICAgICAgICAiMC4xMDIyODUsIDAuNTA3NDgzLCAwLjgzNTYwMywgMS4yNDY2OSwgMS42NTczMywgMi4wNjk3MywgMi40ODE1IiwgXAotICAgICAgICAgICIwLjEwMjMwNiwgMC41MDc0NjMsIDAuODM1MjY5LCAxLjI0NzA2LCAxLjY1OTkxLCAyLjA3MTE0LCAyLjQ4MjY0IiwgXAotICAgICAgICAgICIwLjEwMjc4NywgMC41MDc0NTgsIDAuODM0ODE1LCAxLjI0NTk5LCAxLjY1Nzg0LCAyLjA3MDkyLCAyLjQ4MDEiLCBcCi0gICAgICAgICAgIjAuMTAyMzE4LCAwLjUwNzQ4NCwgMC44MzU2OTksIDEuMjQ2NjYsIDEuNjU3NjMsIDIuMDcwMjksIDIuNDgwNjIiLCBcCi0gICAgICAgICAgIjAuMTAyMjg1LCAwLjUwNzQ4MywgMC44MzU1OTMsIDEuMjQ2NjksIDEuNjU3MTksIDIuMDY5NDMsIDIuNDgyNzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0MTc2LCAwLjAwNDIwNSwgMC4wMDQyMDQsIDAuMDA0MjAzLCAwLjAwNDIwMiwgMC4wMDQyMDEsIDAuMDA0MjAxIiwgXAotICAgICAgICAgICIwLjAwNDE2OSwgMC4wMDQxOTgsIDAuMDA0MTk4LCAwLjAwNDE5NywgMC4wMDQxOTUsIDAuMDA0MTk1LCAwLjAwNDE5NCIsIFwKLSAgICAgICAgICAiMC4wMDQxNjMsIDAuMDA0MTkyLCAwLjAwNDE5MSwgMC4wMDQxOSwgMC4wMDQxODksIDAuMDA0MTg4LCAwLjAwNDE4OCIsIFwKLSAgICAgICAgICAiMC4wMDQxNTgsIDAuMDA0MTg4LCAwLjAwNDE4NywgMC4wMDQxODYsIDAuMDA0MTg0LCAwLjAwNDE4NCwgMC4wMDQxODQiLCBcCi0gICAgICAgICAgIjAuMDA0MTU0LCAwLjAwNDE4MywgMC4wMDQxODMsIDAuMDA0MTgxLCAwLjAwNDE4MSwgMC4wMDQxOCwgMC4wMDQxNzkiLCBcCi0gICAgICAgICAgIjAuMDA0MTQ5LCAwLjAwNDE3OSwgMC4wMDQxNzksIDAuMDA0MTc3LCAwLjAwNDE3NiwgMC4wMDQxNzUsIDAuMDA0MTc1IiwgXAotICAgICAgICAgICIwLjAwNDE0NywgMC4wMDQxNzcsIDAuMDA0MTc3LCAwLjAwNDE3NSwgMC4wMDQxNzQsIDAuMDA0MTc0LCAwLjAwNDE3MyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDQyOCwgMC4wMDQ0NjUsIDAuMDA0NDY5LCAwLjAwNDQ3MSwgMC4wMDQ0NzIsIDAuMDA0NDczLCAwLjAwNDQ3MyIsIFwKLSAgICAgICAgICAiMC4wMDQ0MjIsIDAuMDA0NDU5LCAwLjAwNDQ2MywgMC4wMDQ0NjUsIDAuMDA0NDY2LCAwLjAwNDQ2NiwgMC4wMDQ0NjciLCBcCi0gICAgICAgICAgIjAuMDA0NDE2LCAwLjAwNDQ1MywgMC4wMDQ0NTYsIDAuMDA0NDU5LCAwLjAwNDQ1OSwgMC4wMDQ0NiwgMC4wMDQ0NiIsIFwKLSAgICAgICAgICAiMC4wMDQ0MTIsIDAuMDA0NDQ5LCAwLjAwNDQ1MywgMC4wMDQ0NTUsIDAuMDA0NDU2LCAwLjAwNDQ1NiwgMC4wMDQ0NTciLCBcCi0gICAgICAgICAgIjAuMDA0NDExLCAwLjAwNDQ0OCwgMC4wMDQ0NTIsIDAuMDA0NDU0LCAwLjAwNDQ1NSwgMC4wMDQ0NTUsIDAuMDA0NDU2IiwgXAotICAgICAgICAgICIwLjAwNDQwOSwgMC4wMDQ0NDYsIDAuMDA0NDUsIDAuMDA0NDUyLCAwLjAwNDQ1MywgMC4wMDQ0NTQsIDAuMDA0NDU1IiwgXAotICAgICAgICAgICIwLjAwNDQxMiwgMC4wMDQ0NDksIDAuMDA0NDUzLCAwLjAwNDQ1NSwgMC4wMDQ0NTYsIDAuMDA0NDU3LCAwLjAwNDQ1NyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUU4pICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4yNjUxMjY7Ci0gICAgZnVuY3Rpb24gOiAiUUJJTlQiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5vbl91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcmlzaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMyNzU3OSwgMC41MDU2ODUsIDAuNjQ4NDU3LCAwLjgyNjY5NSwgMS4wMDU0MiwgMS4xODM4NSwgMS4zNjI0NiIsIFwKLSAgICAgICAgICAiMC4zMzkzNjksIDAuNTE3NDE0LCAwLjY2MDE3MiwgMC44Mzg2MTQsIDEuMDE3MTMsIDEuMTk1NjEsIDEuMzc0MSIsIFwKLSAgICAgICAgICAiMC4zNTQ2NzMsIDAuNTMyNzg4LCAwLjY3NTUzMiwgMC44NTM5NzIsIDEuMDMyNTksIDEuMjEwOTEsIDEuMzg5NDIiLCBcCi0gICAgICAgICAgIjAuMzcwMjMzLCAwLjU0ODI4MSwgMC42OTEwOTUsIDAuODY5NTE2LCAxLjA0ODExLCAxLjIyNjQ4LCAxLjQwNDkzIiwgXAotICAgICAgICAgICIwLjM4NTM4NiwgMC41NjM0NzksIDAuNzA2MjUsIDAuODg0NDk5LCAxLjA2MzIxLCAxLjI0MTY1LCAxLjQyMDA4IiwgXAotICAgICAgICAgICIwLjQwOTc3NywgMC41ODc4NDksIDAuNzMwNjE3LCAwLjkwOTA1NSwgMS4wODc2NywgMS4yNjU5OCwgMS40NDQ0OSIsIFwKLSAgICAgICAgICAiMC40MzA1NDYsIDAuNjA4NjU2LCAwLjc1MTQwNywgMC45Mjk4NDgsIDEuMTA4NDcsIDEuMjg2NzksIDEuNDY1MyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTA4MjgsIDAuNDUwMDQ5LCAwLjczODkwNCwgMS4xMDExNywgMS40NjU0NSwgMS44Mjk1MiwgMi4xOTczMSIsIFwKLSAgICAgICAgICAiMC4wOTA4OTMsIDAuNDUwMDYxLCAwLjczODk1NiwgMS4xMDQ3NSwgMS40NjkxNCwgMS44Mjg2NSwgMi4xOTM0MSIsIFwKLSAgICAgICAgICAiMC4wOTA4MjYsIDAuNDUwMDQ4LCAwLjczODkwNiwgMS4xMDI4NSwgMS40NjUwMSwgMS44Mjk2OSwgMi4xOTI4NSIsIFwKLSAgICAgICAgICAiMC4wOTA4NzUsIDAuNDUwMDU0LCAwLjczOTY1NSwgMS4xMDI5OCwgMS40NjU2MiwgMS44MzEyMiwgMi4xOTMzNCIsIFwKLSAgICAgICAgICAiMC4wOTA4NTQsIDAuNDUwMDUsIDAuNzM4OTE0LCAxLjEwMjc1LCAxLjQ2NTU0LCAxLjgyOTcxLCAyLjE5NjU0IiwgXAotICAgICAgICAgICIwLjA5MDg3NCwgMC40NTAwNDksIDAuNzM4OTEyLCAxLjEwMjkxLCAxLjQ2NTE0LCAxLjgyOTY5LCAyLjE5MjgxIiwgXAotICAgICAgICAgICIwLjA5MDgyNCwgMC40NTAwNDksIDAuNzM4OTA5LCAxLjEwMjg1LCAxLjQ2NTAxLCAxLjgyOTY3LCAyLjE5MzA5Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMwMTUwNCwgMC41MDc1MzUsIDAuNjcyNjEzLCAwLjg3ODkwNCwgMS4wODUyMywgMS4yOTE2NiwgMS40OTc4NiIsIFwKLSAgICAgICAgICAiMC4zMTMxMjYsIDAuNTE5MTE4LCAwLjY4NDIxMiwgMC44OTA2MDcsIDEuMDk2OTQsIDEuMzAzMjEsIDEuNTA5NTUiLCBcCi0gICAgICAgICAgIjAuMzI4MzM4LCAwLjUzNDQwMSwgMC42OTk0ODMsIDAuOTA1ODM5LCAxLjExMjEzLCAxLjMxODQ5LCAxLjUyNDc2IiwgXAotICAgICAgICAgICIwLjM0MzgzNywgMC41NDk4MjksIDAuNzE0OTI0LCAwLjkyMTMxOSwgMS4xMjc2NSwgMS4zMzM5MiwgMS41NDAyNiIsIFwKLSAgICAgICAgICAiMC4zNTkwMjMsIDAuNTY0OTg5LCAwLjczMDE1NCwgMC45MzY0ODMsIDEuMTQyNzcsIDEuMzQ5MTYsIDEuNTU1NDEiLCBcCi0gICAgICAgICAgIjAuMzgzMjA4LCAwLjU4OTIwMiwgMC43NTQyOTgsIDAuOTYwNjg0LCAxLjE2Njk4LCAxLjM3MzMsIDEuNTc5NjIiLCBcCi0gICAgICAgICAgIjAuNDAzNzgzLCAwLjYwOTc2LCAwLjc3NDg1OCwgMC45ODEyNDUsIDEuMTg3NTgsIDEuMzkzODYsIDEuNjAwMTkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk5NzY2LCAwLjUwNjg4OCwgMC44MzQ4ODcsIDEuMjQ1ODgsIDEuNjU2NjcsIDIuMDY1ODgsIDIuNDc4NSIsIFwKLSAgICAgICAgICAiMC4wOTk3OTEsIDAuNTA3MDE1LCAwLjgzNTU2MSwgMS4yNDU5NywgMS42NTY1NSwgMi4wNjc1MiwgMi40Nzc5NyIsIFwKLSAgICAgICAgICAiMC4wOTk3OTQsIDAuNTA2Nzc4LCAwLjgzNTQzMywgMS4yNDU5NSwgMS42NTY1OSwgMi4wNjc4NiwgMi40Nzg1MSIsIFwKLSAgICAgICAgICAiMC4wOTk3ODksIDAuNTA3MDA5LCAwLjgzNTU2NywgMS4yNDU5NCwgMS42NTY1NCwgMi4wNjc1MywgMi40Nzc5OCIsIFwKLSAgICAgICAgICAiMC4wOTk3OTMsIDAuNTA2OTE5LCAwLjgzNDg1NCwgMS4yNDU2NiwgMS42NTYzOSwgMi4wNjcsIDIuNDc3OTgiLCBcCi0gICAgICAgICAgIjAuMDk5Nzg5LCAwLjUwNzAwMywgMC44MzU1NjQsIDEuMjQ1OTQsIDEuNjU3NTMsIDIuMDY3MTIsIDIuNDc4NTciLCBcCi0gICAgICAgICAgIjAuMDk5Nzg0LCAwLjUwNzAyMywgMC44MzU1NjMsIDEuMjQ1OTYsIDEuNjU2NTMsIDIuMDY3NTEsIDIuNDc3OTciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0NDI4LCAwLjAwNDQ2NSwgMC4wMDQ0NjksIDAuMDA0NDcxLCAwLjAwNDQ3MiwgMC4wMDQ0NzMsIDAuMDA0NDczIiwgXAotICAgICAgICAgICIwLjAwNDQyMiwgMC4wMDQ0NTksIDAuMDA0NDYzLCAwLjAwNDQ2NSwgMC4wMDQ0NjYsIDAuMDA0NDY2LCAwLjAwNDQ2NyIsIFwKLSAgICAgICAgICAiMC4wMDQ0MTYsIDAuMDA0NDUzLCAwLjAwNDQ1NiwgMC4wMDQ0NTksIDAuMDA0NDU5LCAwLjAwNDQ2LCAwLjAwNDQ2IiwgXAotICAgICAgICAgICIwLjAwNDQxMiwgMC4wMDQ0NDksIDAuMDA0NDUzLCAwLjAwNDQ1NSwgMC4wMDQ0NTYsIDAuMDA0NDU2LCAwLjAwNDQ1NyIsIFwKLSAgICAgICAgICAiMC4wMDQ0MTEsIDAuMDA0NDQ4LCAwLjAwNDQ1MiwgMC4wMDQ0NTQsIDAuMDA0NDU1LCAwLjAwNDQ1NSwgMC4wMDQ0NTYiLCBcCi0gICAgICAgICAgIjAuMDA0NDA5LCAwLjAwNDQ0NiwgMC4wMDQ0NSwgMC4wMDQ0NTIsIDAuMDA0NDUzLCAwLjAwNDQ1NCwgMC4wMDQ0NTUiLCBcCi0gICAgICAgICAgIjAuMDA0NDEyLCAwLjAwNDQ0OSwgMC4wMDQ0NTMsIDAuMDA0NDU1LCAwLjAwNDQ1NiwgMC4wMDQ0NTcsIDAuMDA0NDU3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0MTc2LCAwLjAwNDIwNSwgMC4wMDQyMDQsIDAuMDA0MjAzLCAwLjAwNDIwMiwgMC4wMDQyMDEsIDAuMDA0MjAxIiwgXAotICAgICAgICAgICIwLjAwNDE2OSwgMC4wMDQxOTgsIDAuMDA0MTk4LCAwLjAwNDE5NywgMC4wMDQxOTUsIDAuMDA0MTk1LCAwLjAwNDE5NCIsIFwKLSAgICAgICAgICAiMC4wMDQxNjMsIDAuMDA0MTkyLCAwLjAwNDE5MSwgMC4wMDQxOSwgMC4wMDQxODksIDAuMDA0MTg4LCAwLjAwNDE4OCIsIFwKLSAgICAgICAgICAiMC4wMDQxNTgsIDAuMDA0MTg4LCAwLjAwNDE4NywgMC4wMDQxODYsIDAuMDA0MTg0LCAwLjAwNDE4NCwgMC4wMDQxODQiLCBcCi0gICAgICAgICAgIjAuMDA0MTU0LCAwLjAwNDE4MywgMC4wMDQxODMsIDAuMDA0MTgxLCAwLjAwNDE4MSwgMC4wMDQxOCwgMC4wMDQxNzkiLCBcCi0gICAgICAgICAgIjAuMDA0MTQ5LCAwLjAwNDE3OSwgMC4wMDQxNzksIDAuMDA0MTc3LCAwLjAwNDE3NiwgMC4wMDQxNzUsIDAuMDA0MTc1IiwgXAotICAgICAgICAgICIwLjAwNDE0NywgMC4wMDQxNzcsIDAuMDA0MTc3LCAwLjAwNDE3NSwgMC4wMDQxNzQsIDAuMDA0MTc0LCAwLjAwNDE3MyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUk4pICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYyNDE2MzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MjQxNjM7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjIyOTgxOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTk1MywgMC4wMDE5NDQsIDAuMDAxOTM3LCAwLjAwMTkzMiwgMC4wMDE5MjksIDAuMDAxOTI0LCAwLjAwMTkyMSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzI1MiwgMC4wMDMyNDYsIDAuMDAzMjQsIDAuMDAzMjM3LCAwLjAwMzIzNCwgMC4wMDMyMywgMC4wMDMyMjciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiRCI7Ci0gICAgICBzZGZfY29uZCA6ICJEID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjEwNjI1LCAtMC4xMDEyNSwgLTAuMDg4NzUsIC0wLjA3NjI1LCAtMC4wNywgLTAuMDUzNzUsIC0wLjAzODc1IiwgXAotICAgICAgICAgICItMC4xMjM3NSwgLTAuMTEyNSwgLTAuMSwgLTAuMDg3NSwgLTAuMDgxMjUsIC0wLjA2NSwgLTAuMDUiLCBcCi0gICAgICAgICAgIi0wLjEzNjI1LCAtMC4xMjUsIC0wLjExMjUsIC0wLjEsIC0wLjA5Mzc1LCAtMC4wNzc1LCAtMC4wNjI1IiwgXAotICAgICAgICAgICItMC4xNDg3NSwgLTAuMTM3NSwgLTAuMTI1LCAtMC4xMTg3NSwgLTAuMTA2MjUsIC0wLjA5LCAtMC4wODEyNSIsIFwKLSAgICAgICAgICAiLTAuMTYxMjUsIC0wLjE1LCAtMC4xNDM3NSwgLTAuMTMxMjUsIC0wLjExODc1LCAtMC4xMDI1LCAtMC4wOTM3NSIsIFwKLSAgICAgICAgICAiLTAuMTgzNzUsIC0wLjE3MjUsIC0wLjE2LCAtMC4xNTM3NSwgLTAuMTQxMjUsIC0wLjEyNSwgLTAuMTE2MjUiLCBcCi0gICAgICAgICAgIi0wLjIwNSwgLTAuMTkzNzUsIC0wLjE4MTI1LCAtMC4xNjg3NSwgLTAuMTYyNSwgLTAuMTQ2MjUsIC0wLjEzMTI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjUsIDAuMDM2MjUsIDAuMDQ4NzUsIDAuMDYxMjUsIDAuMDgsIDAuMTAyNSwgMC4xMjM3NSIsIFwKLSAgICAgICAgICAiMC4wMTM3NSwgMC4wMjUsIDAuMDM3NSwgMC4wNSwgMC4wNjg3NSwgMC4wOTEyNSwgMC4xMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDA1LCAwLjAwNjI1LCAwLjAyNSwgMC4wMzc1LCAwLjA1NjI1LCAwLjA3ODc1LCAwLjA5Mzc1IiwgXAotICAgICAgICAgICItMC4wMTc1LCAtMC4wMDYyNSwgMC4wMTI1LCAwLjAyNSwgMC4wMzc1LCAwLjA2LCAwLjA4MTI1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLjAxMjUsIDAuMDI1LCAwLjA0NzUsIDAuMDY4NzUiLCBcCi0gICAgICAgICAgIi0wLjA0NjI1LCAtMC4wMzUsIC0wLjAyMjUsIC0wLjAxLCAwLjAwODc1LCAwLjAyNSwgMC4wNDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDYxMjUsIC0wLjA1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAxMjUsIDAuMDEsIDAuMDMxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIkQiOwotICAgICAgc2RmX2NvbmQgOiAiRCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xODc1LCAwLjE3NjI1LCAwLjE1NzUsIDAuMTQ1LCAwLjEzMjUsIDAuMTE2MjUsIDAuMTAxMjUiLCBcCi0gICAgICAgICAgIjAuMTk4NzUsIDAuMTg3NSwgMC4xNjg3NSwgMC4xNTYyNSwgMC4xNDM3NSwgMC4xMjc1LCAwLjExMjUiLCBcCi0gICAgICAgICAgIjAuMjExMjUsIDAuMiwgMC4xODEyNSwgMC4xNjg3NSwgMC4xNTYyNSwgMC4xNCwgMC4xMjUiLCBcCi0gICAgICAgICAgIjAuMjIzNzUsIDAuMjEyNSwgMC4yLCAwLjE4MTI1LCAwLjE2ODc1LCAwLjE1MjUsIDAuMTM3NSIsIFwKLSAgICAgICAgICAiMC4yNDI1LCAwLjIyNSwgMC4yMTI1LCAwLjIsIDAuMTg3NSwgMC4xNjUsIDAuMTU2MjUiLCBcCi0gICAgICAgICAgIjAuMjU4NzUsIDAuMjQ3NSwgMC4yMzUsIDAuMjE2MjUsIDAuMjAzNzUsIDAuMTg3NSwgMC4xNzg3NSIsIFwKLSAgICAgICAgICAiMC4yOCwgMC4yNjg3NSwgMC4yNSwgMC4yMzc1LCAwLjIyNSwgMC4yMDg3NSwgMC4xOTM3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1LCAwLjAzODc1LCAwLjAyNjI1LCAwLjAwNzUsIC0wLjAwNSwgLTAuMDI3NSwgLTAuMDQ4NzUiLCBcCi0gICAgICAgICAgIjAuMDYxMjUsIDAuMDUsIDAuMDM3NSwgMC4wMTg3NSwgMC4wMDYyNSwgLTAuMDE2MjUsIC0wLjAzNzUiLCBcCi0gICAgICAgICAgIjAuMDgsIDAuMDY4NzUsIDAuMDUsIDAuMDM3NSwgMC4wMTg3NSwgLTAuMDAzNzUsIC0wLjAyNSIsIFwKLSAgICAgICAgICAiMC4wOTI1LCAwLjA4MTI1LCAwLjA2MjUsIDAuMDUsIDAuMDMxMjUsIDAuMDA4NzUsIC0wLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMTA1LCAwLjA5Mzc1LCAwLjA4MTI1LCAwLjA2MjUsIDAuMDUsIDAuMDI3NSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiMC4xMzM3NSwgMC4xMTYyNSwgMC4xMDM3NSwgMC4wODUsIDAuMDcyNSwgMC4wNSwgMC4wMjg3NSIsIFwKLSAgICAgICAgICAiMC4xNDg3NSwgMC4xMzc1LCAwLjExODc1LCAwLjEwNjI1LCAwLjA4NzUsIDAuMDY1LCAwLjA0Mzc1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IERGRlgxICoKLSAqIC0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChERkZYMSkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjI1NjE5MTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBmZiAoTjMwLFFCSU5UKSB7Ci0gICAgbmV4dF9zdGF0ZSA6ICJEIjsKLSAgICBjbG9ja2VkX29uIDogIkNLIjsKLSAgfQotICBwaW4oQ0spICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDU0NzUxNTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA1NDcyMTE7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNTQ3NTE1OwotICAgIGNsb2NrIDogdHJ1ZTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDIzMjcsIDAuMDAyMzE1LCAwLjAwMjMwNSwgMC4wMDIyOTksIDAuMDAyMjkzLCAwLjAwMjI4NiwgMC4wMDIyODMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDUxNiwgMC4wMDUxNSwgMC4wMDUxNDMsIDAuMDA1MTM4LCAwLjAwNTEzMiwgMC4wMDUxMjYsIDAuMDA1MTIzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRCI7Ci0gICAgICBzZGZfY29uZCA6ICJEID09IDEnYjAiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMzQ3MzU3LCAwLjM1OTE4NywgMC4zNzQ0NzQsIDAuMzg5OTIyLCAwLjQwNTM2MSwgMC40Mjk3NDIsIDAuNDUwNzMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjIxMjcwMywgMC4yMjM3NTYsIDAuMjM5MDE3LCAwLjI1Mzg4NywgMC4yNjg1MzcsIDAuMjkxNDMzLCAwLjMxMDc0OCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjA0MDg2OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYwMjA3ODsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2MDQwODY7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxODM2LCAwLjAwMTgyNCwgMC4wMDE4MTcsIDAuMDAxODEyLCAwLjAwMTgwOSwgMC4wMDE4MDQsIDAuMDAxNzk5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyMjEyLCAwLjAwMjIwNiwgMC4wMDIyMDIsIDAuMDAyMTk5LCAwLjAwMjE5NywgMC4wMDIxOTMsIDAuMDAyMTkxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDQzNzUsIC0wLjAzMjUsIC0wLjAyLCAtMC4wMDc1LCAtMC4wMDEyNSwgMC4wMTUsIDAuMDMiLCBcCi0gICAgICAgICAgIi0wLjA1NSwgLTAuMDQzNzUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgMC4wMDM3NSwgMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wNjc1LCAtMC4wNTYyNSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAyNSwgLTAuMDA4NzUsIDAiLCBcCi0gICAgICAgICAgIi0wLjA4LCAtMC4wNjg3NSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wMzc1LCAtMC4wMjEyNSwgLTAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDk4NzUsIC0wLjA4NzUsIC0wLjA3NSwgLTAuMDYyNSwgLTAuMDUsIC0wLjAzMzc1LCAtMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjExNSwgLTAuMTAzNzUsIC0wLjA5MTI1LCAtMC4wODUsIC0wLjA3MjUsIC0wLjA1NjI1LCAtMC4wNDc1IiwgXAotICAgICAgICAgICItMC4xMzYyNSwgLTAuMTI1LCAtMC4xMTI1LCAtMC4xLCAtMC4wODc1LCAtMC4wNzc1LCAtMC4wNjI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTYyNSwgMC4wNjc1LCAwLjA4LCAwLjA5MjUsIDAuMTExMjUsIDAuMTMzNzUsIDAuMTU1IiwgXAotICAgICAgICAgICIwLjA0NSwgMC4wNSwgMC4wNjg3NSwgMC4wODEyNSwgMC4wOTM3NSwgMC4xMjI1LCAwLjE0Mzc1IiwgXAotICAgICAgICAgICIwLjAyNjI1LCAwLjAzNzUsIDAuMDU2MjUsIDAuMDY4NzUsIDAuMDgxMjUsIDAuMTEsIDAuMTMxMjUiLCBcCi0gICAgICAgICAgIjAuMDEzNzUsIDAuMDI1LCAwLjA0Mzc1LCAwLjA1NjI1LCAwLjA3NSwgMC4wOTc1LCAwLjExODc1IiwgXAotICAgICAgICAgICIwLjAwNzUsIDAuMDE4NzUsIDAuMDMxMjUsIDAuMDUsIDAuMDYyNSwgMC4wODUsIDAuMTA2MjUiLCBcCi0gICAgICAgICAgIi0wLjAwODc1LCAwLjAwMjUsIDAuMDE1LCAwLjAzMzc1LCAwLjA0NjI1LCAwLjA2ODc1LCAwLjA5IiwgXAotICAgICAgICAgICItMC4wMTc1LCAtMC4wMDYyNSwgMC4wMDYyNSwgMC4wMTg3NSwgMC4wMzc1LCAwLjA2LCAwLjA4MTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5Mzc1LCAwLjA4MjUsIDAuMDcsIDAuMDU3NSwgMC4wNDUsIDAuMDI4NzUsIDAuMDEzNzUiLCBcCi0gICAgICAgICAgIjAuMTA1LCAwLjA5Mzc1LCAwLjA4MTI1LCAwLjA2ODc1LCAwLjA1NjI1LCAwLjA0LCAwLjAyNSIsIFwKLSAgICAgICAgICAiMC4xMTc1LCAwLjEwNjI1LCAwLjA5Mzc1LCAwLjA4MTI1LCAwLjA2ODc1LCAwLjA1MjUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMTM2MjUsIDAuMTE4NzUsIDAuMTA2MjUsIDAuMDkzNzUsIDAuMDgxMjUsIDAuMDY1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICIwLjE0ODc1LCAwLjEzNzUsIDAuMTE4NzUsIDAuMTA2MjUsIDAuMDkzNzUsIDAuMDc3NSwgMC4wNjg3NSIsIFwKLSAgICAgICAgICAiMC4xNzEyNSwgMC4xNTM3NSwgMC4xNDEyNSwgMC4xMjg3NSwgMC4xMTYyNSwgMC4xLCAwLjA5MTI1IiwgXAotICAgICAgICAgICIwLjE4NjI1LCAwLjE3NSwgMC4xNjI1LCAwLjE1LCAwLjEzNzUsIDAuMTIxMjUsIDAuMTA2MjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzEyNSwgMC4wMiwgMC4wMDEyNSwgLTAuMDExMjUsIC0wLjAzLCAtMC4wNTI1LCAtMC4wNzM3NSIsIFwKLSAgICAgICAgICAiMC4wNDI1LCAwLjAzMTI1LCAwLjAxMjUsIDAsIC0wLjAxODc1LCAtMC4wNDEyNSwgLTAuMDYyNSIsIFwKLSAgICAgICAgICAiMC4wNTUsIDAuMDQzNzUsIDAuMDI1LCAwLjAxMjUsIC0wLjAwNjI1LCAtMC4wMjg3NSwgLTAuMDUiLCBcCi0gICAgICAgICAgIjAuMDY3NSwgMC4wNTYyNSwgMC4wMzc1LCAwLjAyNSwgMC4wMDYyNSwgLTAuMDE2MjUsIC0wLjAzNzUiLCBcCi0gICAgICAgICAgIjAuMDgsIDAuMDY4NzUsIDAuMDUsIDAuMDM3NSwgMC4wMTg3NSwgLTAuMDAzNzUsIC0wLjAyNSIsIFwKLSAgICAgICAgICAiMC4xMDI1LCAwLjA4NSwgMC4wNzI1LCAwLjA1Mzc1LCAwLjA0MTI1LCAwLjAxMjUsIC0wLjAwODc1IiwgXAotICAgICAgICAgICIwLjExNzUsIDAuMTA2MjUsIDAuMDg3NSwgMC4wNzUsIDAuMDU2MjUsIDAuMDMzNzUsIDAuMDEyNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjEzNDU2OTsKLSAgICBmdW5jdGlvbiA6ICJOMzAiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5vbl91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcmlzaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI5MTMxNywgMC4zMzQ1MDcsIDAuNTc5ODUzLCAwLjc5NjIsIDEuMDgzMjksIDEuNjYwMzgsIDIuMDIxODUiLCBcCi0gICAgICAgICAgIjAuMzAzMjE1LCAwLjM0NjYwOSwgMC41OTE1MTksIDAuODA3OTUyLCAxLjA5NDU1LCAxLjY3MjU0LCAyLjAzMjA2IiwgXAotICAgICAgICAgICIwLjMxODM3MiwgMC4zNjE3NjEsIDAuNjA3NDEzLCAwLjgyMzI5NSwgMS4xMDk4MSwgMS42ODc3OSwgMi4wNDgxIiwgXAotICAgICAgICAgICIwLjMzMzkyLCAwLjM3NzE5MiwgMC42MjM3MjIsIDAuODM4OTg5LCAxLjEyNjAyLCAxLjcwMzUyLCAyLjA2NDI0IiwgXAotICAgICAgICAgICIwLjM0OTIzNywgMC4zOTI2MjgsIDAuNjM5MzE4LCAwLjg1NDE5OCwgMS4xNDA2OSwgMS43MTg2OCwgMi4wNzk1MSIsIFwKLSAgICAgICAgICAiMC4zNzM1MzcsIDAuNDE2OTI1LCAwLjY2Mjk1NCwgMC44Nzg0ODUsIDEuMTY1LCAxLjc0Mjk5LCAyLjEwMzc5IiwgXAotICAgICAgICAgICIwLjM5NDQ0OCwgMC40Mzc4NCwgMC42ODMxODMsIDAuODk5MzQ0LCAxLjE4NTg1LCAxLjc2MzksIDIuMTI0MDkiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTY3NjA4LCAwLjI1MzY3NCwgMC43NDk5MjIsIDEuMTg2MTgsIDEuNzY4MjEsIDIuOTY2MzcsIDMuNzA0IiwgXAotICAgICAgICAgICIwLjE2NTMwOCwgMC4yNTMyMzEsIDAuNzUyMDE1LCAxLjE4MjQ0LCAxLjc3NTU1LCAyLjk2NjE2LCAzLjcxMDEzIiwgXAotICAgICAgICAgICIwLjE2NTI5NiwgMC4yNTMyMzQsIDAuNzQ1MDE5LCAxLjE4NjEyLCAxLjc3NDQ2LCAyLjk2NjEyLCAzLjcwNDE3IiwgXAotICAgICAgICAgICIwLjE2NTI5NCwgMC4yNTM5OTYsIDAuNzUxNjY4LCAxLjE5NTY4LCAxLjc2NjgyLCAyLjk2NTk5LCAzLjcwNDE4IiwgXAotICAgICAgICAgICIwLjE2NTMxOCwgMC4yNTMyNDgsIDAuNzUzMjU4LCAxLjE4NzM5LCAxLjc3NDM0LCAyLjk2NjEsIDMuNjkxMjEiLCBcCi0gICAgICAgICAgIjAuMTY1MzE3LCAwLjI1MzI1OSwgMC43NTM1NTcsIDEuMTg2NywgMS43NzQzMiwgMi45NjYxLCAzLjY5MTg4IiwgXAotICAgICAgICAgICIwLjE2NTI5NSwgMC4yNTMyNDIsIDAuNzQ4NjI2LCAxLjE4NDc4LCAxLjc3NTAxLCAyLjk2NjEyLCAzLjcwNDIiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzI2NDcyLCAwLjM3NjI3MywgMC42NTY1MjMsIDAuOTAzNDY4LCAxLjIzMzA1LCAxLjg5NzA5LCAyLjMxMDE1IiwgXAotICAgICAgICAgICIwLjMzODMsIDAuMzg4MTA1LCAwLjY2ODM3LCAwLjkxNTYxNSwgMS4yNDQ4OSwgMS45MDg5MSwgMi4zMjE5NyIsIFwKLSAgICAgICAgICAiMC4zNTM2MjcsIDAuNDAzMzk4LCAwLjY4Mzc0MywgMC45MzAyMTQsIDEuMjU5OTUsIDEuOTI0MywgMi4zMzcyMyIsIFwKLSAgICAgICAgICAiMC4zNjkwMzksIDAuNDE4ODQsIDAuNjk5MTAxLCAwLjk0NTgzOSwgMS4yNzU2MiwgMS45Mzk2NiwgMi4zNTI3MiIsIFwKLSAgICAgICAgICAiMC4zODQ1LCAwLjQzMzk5LCAwLjcxNDQ1MywgMC45NjA4NzMsIDEuMjkwODUsIDEuOTU0MzEsIDIuMzY4MTUiLCBcCi0gICAgICAgICAgIjAuNDA4OTAxLCAwLjQ1ODY2OSwgMC43Mzg4NzMsIDAuOTg2NTExLCAxLjMxODEsIDEuOTc5NDUsIDIuMzkyNTMiLCBcCi0gICAgICAgICAgIjAuNDI5ODQ3LCAwLjQ3OTY0NywgMC43NTk5MDksIDEuMDA2NjQsIDEuMzM2NDEsIDIuMDAwNDYsIDIuNDEzNTMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTgyMzg1LCAwLjI3ODYzMiwgMC44MzI1ODYsIDEuMzIyOTIsIDEuOTc3MTksIDMuMjgzMTQsIDQuMDk5ODQiLCBcCi0gICAgICAgICAgIjAuMTgyNDAyLCAwLjI3ODY0NiwgMC44MzI0OTksIDEuMzIzMDEsIDEuOTc4MzcsIDMuMjg1OTQsIDQuMTAzNDQiLCBcCi0gICAgICAgICAgIjAuMTgyMzM4LCAwLjI3ODAzMiwgMC44MzIwNTUsIDEuMzIyNTMsIDEuOTc3OTEsIDMuMjg1NzgsIDQuMTA0MzYiLCBcCi0gICAgICAgICAgIjAuMTgyMzgyLCAwLjI3ODYzNCwgMC44MzI1MzksIDEuMzIyNjgsIDEuOTc4MzYsIDMuMjg1OTQsIDQuMTAzNDUiLCBcCi0gICAgICAgICAgIjAuMTgyNCwgMC4yNzgzNzEsIDAuODMyOTk0LCAxLjMyMjQ4LCAxLjk3Nzk3LCAzLjI4NzQ5LCA0LjEwMzY2IiwgXAotICAgICAgICAgICIwLjE4MjM1OSwgMC4yNzg2NTYsIDAuODMyNzc4LCAxLjMyMTMzLCAxLjk3OCwgMy4yODYsIDQuMTAzNTIiLCBcCi0gICAgICAgICAgIjAuMTgyMzg1LCAwLjI3ODYzMiwgMC44MzI1MjMsIDEuMzIyODIsIDEuOTc4MzcsIDMuMjg1ODksIDQuMTAzMzkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzMjU1LCAwLjAwMzI1NiwgMC4wMDMyNSwgMC4wMDMyNDcsIDAuMDAzMjQ1LCAwLjAwMzI0MywgMC4wMDMyNDEiLCBcCi0gICAgICAgICAgIjAuMDAzMjQ5LCAwLjAwMzI1MSwgMC4wMDMyNDUsIDAuMDAzMjQxLCAwLjAwMzIzOSwgMC4wMDMyMzcsIDAuMDAzMjM2IiwgXAotICAgICAgICAgICIwLjAwMzI0MywgMC4wMDMyNDUsIDAuMDAzMjM5LCAwLjAwMzIzNSwgMC4wMDMyMzMsIDAuMDAzMjMxLCAwLjAwMzIzIiwgXAotICAgICAgICAgICIwLjAwMzIzOSwgMC4wMDMyNCwgMC4wMDMyMzQsIDAuMDAzMjMxLCAwLjAwMzIyOSwgMC4wMDMyMjcsIDAuMDAzMjI2IiwgXAotICAgICAgICAgICIwLjAwMzIzNiwgMC4wMDMyMzcsIDAuMDAzMjMxLCAwLjAwMzIyOCwgMC4wMDMyMjYsIDAuMDAzMjIzLCAwLjAwMzIyMyIsIFwKLSAgICAgICAgICAiMC4wMDMyMywgMC4wMDMyMzIsIDAuMDAzMjI2LCAwLjAwMzIyMywgMC4wMDMyMiwgMC4wMDMyMTgsIDAuMDAzMjE3IiwgXAotICAgICAgICAgICIwLjAwMzIyOCwgMC4wMDMyMywgMC4wMDMyMjQsIDAuMDAzMjIxLCAwLjAwMzIxOCwgMC4wMDMyMTYsIDAuMDAzMjE1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzMzYyLCAwLjAwMzM2NywgMC4wMDMzNzMsIDAuMDAzMzc1LCAwLjAwMzM3NSwgMC4wMDMzNzYsIDAuMDAzMzc2IiwgXAotICAgICAgICAgICIwLjAwMzM1NSwgMC4wMDMzNiwgMC4wMDMzNjcsIDAuMDAzMzY4LCAwLjAwMzM2OSwgMC4wMDMzNjksIDAuMDAzMzciLCBcCi0gICAgICAgICAgIjAuMDAzMzUsIDAuMDAzMzU0LCAwLjAwMzM2MSwgMC4wMDMzNjIsIDAuMDAzMzYzLCAwLjAwMzM2NCwgMC4wMDMzNjQiLCBcCi0gICAgICAgICAgIjAuMDAzMzQ1LCAwLjAwMzM1LCAwLjAwMzM1NywgMC4wMDMzNTgsIDAuMDAzMzU5LCAwLjAwMzM2LCAwLjAwMzM1OSIsIFwKLSAgICAgICAgICAiMC4wMDMzNDQsIDAuMDAzMzQ5LCAwLjAwMzM1NSwgMC4wMDMzNTYsIDAuMDAzMzU3LCAwLjAwMzM1OCwgMC4wMDMzNTkiLCBcCi0gICAgICAgICAgIjAuMDAzMzQyLCAwLjAwMzM0NywgMC4wMDMzNTMsIDAuMDAzMzU1LCAwLjAwMzM1NSwgMC4wMDMzNTYsIDAuMDAzMzU2IiwgXAotICAgICAgICAgICIwLjAwMzM0NCwgMC4wMDMzNDksIDAuMDAzMzU2LCAwLjAwMzM1NywgMC4wMDMzNTgsIDAuMDAzMzU5LCAwLjAwMzM1OSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUU4pICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4xMzMzNDc7Ci0gICAgZnVuY3Rpb24gOiAiUUJJTlQiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5vbl91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcmlzaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjM0NzM1NywgMC4zOTA0NTUsIDAuNjM0OTA2LCAwLjg1MDY1OSwgMS4xMzgyOSwgMS43MTM1OCwgMi4wNzMyMiIsIFwKLSAgICAgICAgICAiMC4zNTkxODcsIDAuNDAyMjg1LCAwLjY0NjczOCwgMC44NjIzMTQsIDEuMTUwMTIsIDEuNzI1NDEsIDIuMDg1MDUiLCBcCi0gICAgICAgICAgIjAuMzc0NDc0LCAwLjQxNzU4LCAwLjY2MjAyNiwgMC44Nzc4MDUsIDEuMTY1NDIsIDEuNzQwNjgsIDIuMTAwMjciLCBcCi0gICAgICAgICAgIjAuMzg5OTIyLCAwLjQzMzAyMSwgMC42Nzc0NzIsIDAuODkzMjM4LCAxLjE4MDg2LCAxLjc1NjE0LCAyLjExNTc4IiwgXAotICAgICAgICAgICIwLjQwNTM2MSwgMC40NDg0NSwgMC42OTI5MjcsIDAuOTA4NzA3LCAxLjE5NjMyLCAxLjc3MTc4LCAyLjEzMTIiLCBcCi0gICAgICAgICAgIjAuNDI5NzQyLCAwLjQ3Mjg0NiwgMC43MTczMDMsIDAuOTMyODkxLCAxLjIyMDczLCAxLjc5NTk3LCAyLjE1NTYxIiwgXAotICAgICAgICAgICIwLjQ1MDczLCAwLjQ5MzgyOCwgMC43MzgyOCwgMC45NTQwNDYsIDEuMjQxNjcsIDEuODE2OTUsIDIuMTc2NTkiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTU5NjM5LCAwLjI0Njk3NCwgMC43NDQ1MTMsIDEuMTgxODksIDEuNzY2NTgsIDIuOTQxMTYsIDMuNjczNzkiLCBcCi0gICAgICAgICAgIjAuMTU5NjM5LCAwLjI0Njk3NiwgMC43NDQ1MTEsIDEuMTgzNDIsIDEuNzY2NTgsIDIuOTQxMTMsIDMuNjczNzYiLCBcCi0gICAgICAgICAgIjAuMTU5NTk5LCAwLjI0NjI0MiwgMC43NDQ0NzgsIDEuMTgxOTcsIDEuNzY2NzYsIDIuOTQxMDIsIDMuNjczMjYiLCBcCi0gICAgICAgICAgIjAuMTU5NjM4LCAwLjI0Njk3NCwgMC43NDQ1MDcsIDEuMTgxODQsIDEuNzY2NTgsIDIuOTQxMTIsIDMuNjczNzUiLCBcCi0gICAgICAgICAgIjAuMTU5NjE5LCAwLjI0NjgyOSwgMC43NDQ0NjQsIDEuMTgxMTEsIDEuNzY2NzYsIDIuOTQyNDEsIDMuNjczNTkiLCBcCi0gICAgICAgICAgIjAuMTU5NjAzLCAwLjI0Njk3NSwgMC43NDQ1MjcsIDEuMTgzNDUsIDEuNzY5OTgsIDIuOTQxMTQsIDMuNjczNzEiLCBcCi0gICAgICAgICAgIjAuMTU5NjM5LCAwLjI0Njk3MywgMC43NDQ1MSwgMS4xODE4MywgMS43NjY1OSwgMi45NDExNCwgMy42NzM3OCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMzAzMDIsIDAuMzc5NjUsIDAuNjU5NDI0LCAwLjkwNjI1LCAxLjIzNTMyLCAxLjg5MzUzLCAyLjMwNTAyIiwgXAotICAgICAgICAgICIwLjM0MjIzMSwgMC4zOTE1NzYsIDAuNjcxMzQzLCAwLjkxODE3LCAxLjI0NzI0LCAxLjkwNTQ3LCAyLjMxNjgiLCBcCi0gICAgICAgICAgIjAuMzU3MzkyLCAwLjQwNjczNiwgMC42ODY1MjMsIDAuOTMzMzM1LCAxLjI2MjQsIDEuOTIwNjQsIDIuMzMyMDQiLCBcCi0gICAgICAgICAgIjAuMzcyOTQxLCAwLjQyMjI4LCAwLjcwMjE1LCAwLjk0ODg4NSwgMS4yNzc5NSwgMS45MzYyLCAyLjM0NzYzIiwgXAotICAgICAgICAgICIwLjM4ODI0MywgMC40Mzc1ODcsIDAuNzE3NDg2LCAwLjk2NDE4OSwgMS4yOTMyNSwgMS45NTE0OSwgMi4zNjI5MiIsIFwKLSAgICAgICAgICAiMC40MTI1NCwgMC40NjE4ODYsIDAuNzQxNjk1LCAwLjk4ODQ4NiwgMS4zMTc1NSwgMS45NzU3OSwgMi4zODcyMiIsIFwKLSAgICAgICAgICAiMC40MzM0NjEsIDAuNDgyODA3LCAwLjc2MjU4MSwgMS4wMDk0LCAxLjMzODQ3LCAxLjk5NjcxLCAyLjQwODExIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE3NzE5MSwgMC4yNzQ3MzQsIDAuODI5Nzk5LCAxLjMxOTQ4LCAxLjk3MjkxLCAzLjI4MTA0LCA0LjA5ODM5IiwgXAotICAgICAgICAgICIwLjE3NzIzNSwgMC4yNzQ3MywgMC44Mjk4ODIsIDEuMzE5NTgsIDEuOTczMDYsIDMuMjgwOTcsIDQuMDk2OTUiLCBcCi0gICAgICAgICAgIjAuMTc3MjMzLCAwLjI3NDczLCAwLjgyOTY4MSwgMS4zMTk0NiwgMS45NzMwMywgMy4yODA5OSwgNC4wOTQ1MiIsIFwKLSAgICAgICAgICAiMC4xNzcyMjgsIDAuMjc0NzE4LCAwLjgyOTA0NSwgMS4zMTksIDEuOTcyODcsIDMuMjgxMjIsIDQuMDk4MDciLCBcCi0gICAgICAgICAgIjAuMTc3MjM1LCAwLjI3NDczLCAwLjgyOTQzOCwgMS4zMTkzOSwgMS45NzMwMiwgMy4yODEsIDQuMDk1MzYiLCBcCi0gICAgICAgICAgIjAuMTc3MjMxLCAwLjI3NDczMSwgMC44Mjk2OTgsIDEuMzE5NDMsIDEuOTczMDIsIDMuMjgxLCA0LjA5NTM1IiwgXAotICAgICAgICAgICIwLjE3NzIzMSwgMC4yNzQ3MywgMC44Mjk3NTgsIDEuMzE5NTIsIDEuOTczMDQsIDMuMjgwOTksIDQuMDk0MzEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzMzYyLCAwLjAwMzM2NywgMC4wMDMzNzMsIDAuMDAzMzc1LCAwLjAwMzM3NSwgMC4wMDMzNzYsIDAuMDAzMzc2IiwgXAotICAgICAgICAgICIwLjAwMzM1NSwgMC4wMDMzNiwgMC4wMDMzNjcsIDAuMDAzMzY4LCAwLjAwMzM2OSwgMC4wMDMzNjksIDAuMDAzMzciLCBcCi0gICAgICAgICAgIjAuMDAzMzUsIDAuMDAzMzU0LCAwLjAwMzM2MSwgMC4wMDMzNjIsIDAuMDAzMzYzLCAwLjAwMzM2NCwgMC4wMDMzNjQiLCBcCi0gICAgICAgICAgIjAuMDAzMzQ1LCAwLjAwMzM1LCAwLjAwMzM1NywgMC4wMDMzNTgsIDAuMDAzMzU5LCAwLjAwMzM2LCAwLjAwMzM1OSIsIFwKLSAgICAgICAgICAiMC4wMDMzNDQsIDAuMDAzMzQ5LCAwLjAwMzM1NSwgMC4wMDMzNTYsIDAuMDAzMzU3LCAwLjAwMzM1OCwgMC4wMDMzNTkiLCBcCi0gICAgICAgICAgIjAuMDAzMzQyLCAwLjAwMzM0NywgMC4wMDMzNTMsIDAuMDAzMzU1LCAwLjAwMzM1NSwgMC4wMDMzNTYsIDAuMDAzMzU2IiwgXAotICAgICAgICAgICIwLjAwMzM0NCwgMC4wMDMzNDksIDAuMDAzMzU2LCAwLjAwMzM1NywgMC4wMDMzNTgsIDAuMDAzMzU5LCAwLjAwMzM1OSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzI1NSwgMC4wMDMyNTYsIDAuMDAzMjUsIDAuMDAzMjQ3LCAwLjAwMzI0NSwgMC4wMDMyNDMsIDAuMDAzMjQxIiwgXAotICAgICAgICAgICIwLjAwMzI0OSwgMC4wMDMyNTEsIDAuMDAzMjQ1LCAwLjAwMzI0MSwgMC4wMDMyMzksIDAuMDAzMjM3LCAwLjAwMzIzNiIsIFwKLSAgICAgICAgICAiMC4wMDMyNDMsIDAuMDAzMjQ1LCAwLjAwMzIzOSwgMC4wMDMyMzUsIDAuMDAzMjMzLCAwLjAwMzIzMSwgMC4wMDMyMyIsIFwKLSAgICAgICAgICAiMC4wMDMyMzksIDAuMDAzMjQsIDAuMDAzMjM0LCAwLjAwMzIzMSwgMC4wMDMyMjksIDAuMDAzMjI3LCAwLjAwMzIyNiIsIFwKLSAgICAgICAgICAiMC4wMDMyMzYsIDAuMDAzMjM3LCAwLjAwMzIzMSwgMC4wMDMyMjgsIDAuMDAzMjI2LCAwLjAwMzIyMywgMC4wMDMyMjMiLCBcCi0gICAgICAgICAgIjAuMDAzMjMsIDAuMDAzMjMyLCAwLjAwMzIyNiwgMC4wMDMyMjMsIDAuMDAzMjIsIDAuMDAzMjE4LCAwLjAwMzIxNyIsIFwKLSAgICAgICAgICAiMC4wMDMyMjgsIDAuMDAzMjMsIDAuMDAzMjI0LCAwLjAwMzIyMSwgMC4wMDMyMTgsIDAuMDAzMjE2LCAwLjAwMzIxNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBERkZYMiAqCi0gKiAtLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoREZGWDIpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4zMzM5MDk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgZmYgKE4zMCxRQklOVCkgewotICAgIG5leHRfc3RhdGUgOiAiRCI7Ci0gICAgY2xvY2tlZF9vbiA6ICJDSyI7Ci0gIH0KLSAgcGluKENLKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA1NDM5ODg7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNTQzODsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA1NDM5ODg7Ci0gICAgY2xvY2sgOiB0cnVlOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjM1NSwgMC4wMDIzNDEsIDAuMDAyMzI4LCAwLjAwMjMyMywgMC4wMDIzMTYsIDAuMDAyMzEsIDAuMDAyMzA5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA0Njk0LCAwLjAwNDY4MywgMC4wMDQ2NzUsIDAuMDA0NjY4LCAwLjAwNDY2MywgMC4wMDQ2NTcsIDAuMDA0NjU1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRCI7Ci0gICAgICBzZGZfY29uZCA6ICJEID09IDEnYjAiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMzI0NDAyLCAwLjMzNjEwOSwgMC4zNTE1NzEsIDAuMzY2OTk0LCAwLjM4MjA2OCwgMC40MDYzNjUsIDAuNDI2OTY1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4xOTkwMjUsIDAuMjEwMjE0LCAwLjIyNTM4MSwgMC4yNDAyMTYsIDAuMjU0NjczLCAwLjI3NzE1NywgMC4yOTU2NjgiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEQpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDU4MDg3MTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA1Nzg5OTU7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNTgwODcxOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTY4NywgMC4wMDE2NzUsIDAuMDAxNjY4LCAwLjAwMTY2MywgMC4wMDE2NTksIDAuMDAxNjUzLCAwLjAwMTY1MSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjE1MywgMC4wMDIxNDcsIDAuMDAyMTQzLCAwLjAwMjE0LCAwLjAwMjEzNywgMC4wMDIxMzMsIDAuMDAyMTMxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDQzNzUsIC0wLjAzMjUsIC0wLjAyLCAtMC4wMDc1LCAtMC4wMDEyNSwgMC4wMTUsIDAuMDIzNzUiLCBcCi0gICAgICAgICAgIi0wLjA1NSwgLTAuMDQzNzUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgMC4wMDM3NSwgMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wNjc1LCAtMC4wNTYyNSwgLTAuMDQzNzUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAwODc1LCAwIiwgXAotICAgICAgICAgICItMC4wOCwgLTAuMDY4NzUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDM3NSwgLTAuMDI3NSwgLTAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDkyNSwgLTAuMDgxMjUsIC0wLjA2ODc1LCAtMC4wNjI1LCAtMC4wNSwgLTAuMDQsIC0wLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMTE1LCAtMC4xMDM3NSwgLTAuMDkxMjUsIC0wLjA4NSwgLTAuMDcyNSwgLTAuMDU2MjUsIC0wLjA0NzUiLCBcCi0gICAgICAgICAgIi0wLjEzLCAtMC4xMTg3NSwgLTAuMTEyNSwgLTAuMSwgLTAuMDg3NSwgLTAuMDc3NSwgLTAuMDYyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDUsIDAuMDYxMjUsIDAuMDczNzUsIDAuMDkyNSwgMC4xMDUsIDAuMTI3NSwgMC4xNDg3NSIsIFwKLSAgICAgICAgICAiMC4wMzg3NSwgMC4wNSwgMC4wNjI1LCAwLjA3NSwgMC4wOTM3NSwgMC4xMTYyNSwgMC4xMzc1IiwgXAotICAgICAgICAgICIwLjAyNjI1LCAwLjAzNzUsIDAuMDUsIDAuMDYyNSwgMC4wODEyNSwgMC4xMDM3NSwgMC4xMjUiLCBcCi0gICAgICAgICAgIjAuMDEzNzUsIDAuMDI1LCAwLjAzNzUsIDAuMDU2MjUsIDAuMDY4NzUsIDAuMDkxMjUsIDAuMTEyNSIsIFwKLSAgICAgICAgICAiMC4wMDEyNSwgMC4wMTI1LCAwLjAzMTI1LCAwLjA0Mzc1LCAwLjA1NjI1LCAwLjA4NSwgMC4xIiwgXAotICAgICAgICAgICItMC4wMDg3NSwgMC4wMDI1LCAwLjAxNSwgMC4wMzM3NSwgMC4wNDYyNSwgMC4wNjg3NSwgMC4wOSIsIFwKLSAgICAgICAgICAiLTAuMDE3NSwgLTAuMDA2MjUsIDAuMDA2MjUsIDAuMDE4NzUsIDAuMDM3NSwgMC4wNiwgMC4wNzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDkzNzUsIDAuMDgyNSwgMC4wNywgMC4wNTc1LCAwLjA0NSwgMC4wMjg3NSwgMC4wMiIsIFwKLSAgICAgICAgICAiMC4xMDUsIDAuMDkzNzUsIDAuMDgxMjUsIDAuMDY4NzUsIDAuMDU2MjUsIDAuMDQsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMTE3NSwgMC4xMDYyNSwgMC4wOTM3NSwgMC4wODEyNSwgMC4wNjg3NSwgMC4wNTI1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjEzNjI1LCAwLjExODc1LCAwLjEwNjI1LCAwLjA5Mzc1LCAwLjA4MTI1LCAwLjA3MTI1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICIwLjE0ODc1LCAwLjEzNzUsIDAuMTE4NzUsIDAuMTA2MjUsIDAuMDkzNzUsIDAuMDgzNzUsIDAuMDY4NzUiLCBcCi0gICAgICAgICAgIjAuMTcxMjUsIDAuMTUzNzUsIDAuMTQxMjUsIDAuMTI4NzUsIDAuMTE2MjUsIDAuMSwgMC4wOTEyNSIsIFwKLSAgICAgICAgICAiMC4xODYyNSwgMC4xNzUsIDAuMTYyNSwgMC4xNSwgMC4xMzc1LCAwLjEyMTI1LCAwLjEwNjI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM3NSwgMC4wMjYyNSwgMC4wMDc1LCAtMC4wMDUsIC0wLjAyMzc1LCAtMC4wNDYyNSwgLTAuMDY3NSIsIFwKLSAgICAgICAgICAiMC4wNDg3NSwgMC4wMzc1LCAwLjAxODc1LCAwLjAwNjI1LCAtMC4wMTI1LCAtMC4wMzUsIC0wLjA1NjI1IiwgXAotICAgICAgICAgICIwLjA2MTI1LCAwLjA1LCAwLjAzMTI1LCAwLjAxODc1LCAwLCAtMC4wMjI1LCAtMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4wNzM3NSwgMC4wNjI1LCAwLjA0Mzc1LCAwLjAzMTI1LCAwLjAxMjUsIC0wLjAxLCAtMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4wODYyNSwgMC4wNzUsIDAuMDU2MjUsIDAuMDQzNzUsIDAuMDI1LCAwLjAwMjUsIC0wLjAxODc1IiwgXAotICAgICAgICAgICIwLjEwMjUsIDAuMDkxMjUsIDAuMDc4NzUsIDAuMDYsIDAuMDQxMjUsIDAuMDE4NzUsIC0wLjAwMjUiLCBcCi0gICAgICAgICAgIjAuMTIzNzUsIDAuMTEyNSwgMC4wOTM3NSwgMC4wNzUsIDAuMDYyNSwgMC4wMzM3NSwgMC4wMTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihRKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMjY1ODA4OwotICAgIGZ1bmN0aW9uIDogIk4zMCI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3NlbnNlIDogbm9uX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiByaXNpbmdfZWRnZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjQ3NjA0LCAwLjQyNzcyOCwgMC41NzA1MjQsIDAuNzQ5NjE4LCAwLjkyOTM3NywgMS4xMDc3OSwgMS4yODgwNSIsIFwKLSAgICAgICAgICAiMC4yNTkxMTQsIDAuNDM5NjE2LCAwLjU4MjY2MywgMC43NjI0NjksIDAuOTQxMDk0LCAxLjExOTQyLCAxLjI5NzA1IiwgXAotICAgICAgICAgICIwLjI3NDU4NywgMC40NTQ3MTEsIDAuNTk3NzUxLCAwLjc3NzU5NiwgMC45NTY1NjgsIDEuMTM1MTMsIDEuMzEyMjEiLCBcCi0gICAgICAgICAgIjAuMjkwMDYzLCAwLjQ3MDIyOCwgMC42MTMxNzUsIDAuNzkzMTk5LCAwLjk3MTAzMywgMS4xNTAzNywgMS4zMjk0MiIsIFwKLSAgICAgICAgICAiMC4zMDUxMjMsIDAuNDg1LCAwLjYyOTksIDAuODA4NDY0LCAwLjk4NjU5MSwgMS4xNjQxNywgMS4zNDIzIiwgXAotICAgICAgICAgICIwLjMyOTM1NCwgMC41MDk0ODksIDAuNjUyMzk0LCAwLjgzMjg1MSwgMS4wMDk1NSwgMS4xODk1OSwgMS4zNjgyIiwgXAotICAgICAgICAgICIwLjM0OTYsIDAuNTI5NzM0LCAwLjY3MjczMSwgMC44NTI1MDYsIDEuMDMxOTMsIDEuMjA5OTksIDEuMzg5NTMiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk0NDkyLCAwLjQ1MzcxLCAwLjc0MjU1NSwgMS4xMTAyOCwgMS40NjM4LCAxLjgyNzQxLCAyLjIwNTQxIiwgXAotICAgICAgICAgICIwLjA5NDQyMSwgMC40NTU4MTcsIDAuNzUwNjQ0LCAxLjEwOTc3LCAxLjQ4Mzg4LCAxLjg1NTA4LCAyLjE5OTYzIiwgXAotICAgICAgICAgICIwLjA5NDQ3NCwgMC40NTM2NSwgMC43NDUzOTQsIDEuMTAwNTUsIDEuNDc2MjQsIDEuODUwMjcsIDIuMjIyODkiLCBcCi0gICAgICAgICAgIjAuMDk0NTIxLCAwLjQ1MzY5NCwgMC43NDI1MzksIDEuMTE2NDgsIDEuNDc0ODcsIDEuODMxMDgsIDIuMjE2MDUiLCBcCi0gICAgICAgICAgIjAuMDk0NDM3LCAwLjQ1NjQxNSwgMC43NDk3MjQsIDEuMTEyMywgMS40NjU5NCwgMS44NDE4MSwgMi4yMDgxIiwgXAotICAgICAgICAgICIwLjA5NDQ0NSwgMC40NTM2ODUsIDAuNzQyNTc4LCAxLjExNTUzLCAxLjQ4MTcsIDEuODI5ODUsIDIuMTkwNSIsIFwKLSAgICAgICAgICAiMC4wOTQ0NDgsIDAuNDUzNjY0LCAwLjc0NDM4MSwgMS4xMDM1OCwgMS40ODA5NiwgMS44NDgzMiwgMi4yMjE1Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI3OTI2MiwgMC40ODcxNzMsIDAuNjUxODkxLCAwLjg1ODc4NCwgMS4wNjQ1OCwgMS4yNzE1LCAxLjQ4MTg1IiwgXAotICAgICAgICAgICIwLjI5MDk1NSwgMC40OTg4NzQsIDAuNjYzNjEzLCAwLjg3MDA4OSwgMS4wNzY3MywgMS4yODQ2OCwgMS40ODk4MiIsIFwKLSAgICAgICAgICAiMC4zMDY0MzEsIDAuNTE0MzQzLCAwLjY3OTA4NiwgMC44ODU5NDksIDEuMDkxNzMsIDEuMjk4NjYsIDEuNTA2MzIiLCBcCi0gICAgICAgICAgIjAuMzIxODE4LCAwLjUyOTY5MiwgMC42OTQ0NTYsIDAuOTAwNzcsIDEuMTA3MDcsIDEuMzEzNDIsIDEuNTIxMzMiLCBcCi0gICAgICAgICAgIjAuMzM2OTM0LCAwLjU0NDg0OSwgMC43MDk1NjEsIDAuOTE2NDQ4LCAxLjEyMjIzLCAxLjMyOTE3LCAxLjUzNzYzIiwgXAotICAgICAgICAgICIwLjM2MTIzMiwgMC41NjkxNDYsIDAuNzMzODU3LCAwLjk0MDc0NCwgMS4xNDY1MiwgMS4zNTM0NiwgMS41NjE1IiwgXAotICAgICAgICAgICIwLjM4MTgzMSwgMC41ODk3NDUsIDAuNzU0NDU3LCAwLjk2MTM0MiwgMS4xNjcxMiwgMS4zNzQwNiwgMS41ODIxMiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDI5MTMsIDAuNTA3OTUyLCAwLjgzNTI1NCwgMS4yNDY3NiwgMS42NTc5MSwgMi4wNjk1LCAyLjQ4MDM3IiwgXAotICAgICAgICAgICIwLjEwMjkwOSwgMC41MDc5NDYsIDAuODM2MjcyLCAxLjI0NjA0LCAxLjY1NjE2LCAyLjA2OTA0LCAyLjQ4MjM0IiwgXAotICAgICAgICAgICIwLjEwMjkxMiwgMC41MDc5NTIsIDAuODM1Mzk5LCAxLjI0NjgyLCAxLjY1ODk0LCAyLjA2OTA0LCAyLjQ3NjU1IiwgXAotICAgICAgICAgICIwLjEwMzE5NSwgMC41MDc5MTEsIDAuODM2MzQyLCAxLjI0NTY0LCAxLjY1NzYzLCAyLjA2NDk3LCAyLjQ4MDI4IiwgXAotICAgICAgICAgICIwLjEwMjkxMSwgMC41MDc5NjQsIDAuODM1MjU1LCAxLjI0NjgxLCAxLjY1ODk5LCAyLjA2OTQ4LCAyLjQ4MjY5IiwgXAotICAgICAgICAgICIwLjEwMjkwOSwgMC41MDc5NjYsIDAuODM1MjU4LCAxLjI0NjgzLCAxLjY1ODk5LCAyLjA2OTM2LCAyLjQ3OTQ2IiwgXAotICAgICAgICAgICIwLjEwMjkxLCAwLjUwNzk2NiwgMC44MzUyNTcsIDEuMjQ2ODEsIDEuNjU5MDQsIDIuMDY5MzMsIDIuNDc5NjYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0MTY4LCAwLjAwNDE5OCwgMC4wMDQxOTgsIDAuMDA0MTk3LCAwLjAwNDE5NiwgMC4wMDQxOTYsIDAuMDA0MTk2IiwgXAotICAgICAgICAgICIwLjAwNDE2LCAwLjAwNDE5MSwgMC4wMDQxOSwgMC4wMDQxODksIDAuMDA0MTg5LCAwLjAwNDE4OCwgMC4wMDQxODgiLCBcCi0gICAgICAgICAgIjAuMDA0MTU0LCAwLjAwNDE4NSwgMC4wMDQxODUsIDAuMDA0MTg0LCAwLjAwNDE4MywgMC4wMDQxODIsIDAuMDA0MTgyIiwgXAotICAgICAgICAgICIwLjAwNDE0OSwgMC4wMDQxOCwgMC4wMDQxOCwgMC4wMDQxNzksIDAuMDA0MTc5LCAwLjAwNDE3OCwgMC4wMDQxNzciLCBcCi0gICAgICAgICAgIjAuMDA0MTQ1LCAwLjAwNDE3NSwgMC4wMDQxNzUsIDAuMDA0MTc0LCAwLjAwNDE3NCwgMC4wMDQxNzMsIDAuMDA0MTczIiwgXAotICAgICAgICAgICIwLjAwNDE0LCAwLjAwNDE3MiwgMC4wMDQxNzIsIDAuMDA0MTcsIDAuMDA0MTcsIDAuMDA0MTY5LCAwLjAwNDE2OSIsIFwKLSAgICAgICAgICAiMC4wMDQxMzgsIDAuMDA0MTY5LCAwLjAwNDE2OSwgMC4wMDQxNjksIDAuMDA0MTY3LCAwLjAwNDE2NywgMC4wMDQxNjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQ0NDYsIDAuMDA0NDg0LCAwLjAwNDQ4OCwgMC4wMDQ0OSwgMC4wMDQ0OTEsIDAuMDA0NDkyLCAwLjAwNDQ5MiIsIFwKLSAgICAgICAgICAiMC4wMDQ0NCwgMC4wMDQ0NzcsIDAuMDA0NDgxLCAwLjAwNDQ4NCwgMC4wMDQ0ODUsIDAuMDA0NDg1LCAwLjAwNDQ4NiIsIFwKLSAgICAgICAgICAiMC4wMDQ0MzQsIDAuMDA0NDcyLCAwLjAwNDQ3NiwgMC4wMDQ0NzgsIDAuMDA0NDc5LCAwLjAwNDQ4LCAwLjAwNDQ4IiwgXAotICAgICAgICAgICIwLjAwNDQzLCAwLjAwNDQ2OCwgMC4wMDQ0NzIsIDAuMDA0NDc0LCAwLjAwNDQ3NSwgMC4wMDQ0NzUsIDAuMDA0NDc2IiwgXAotICAgICAgICAgICIwLjAwNDQyOSwgMC4wMDQ0NjcsIDAuMDA0NDcxLCAwLjAwNDQ3MywgMC4wMDQ0NzQsIDAuMDA0NDc1LCAwLjAwNDQ3NSIsIFwKLSAgICAgICAgICAiMC4wMDQ0MjgsIDAuMDA0NDY2LCAwLjAwNDQ3LCAwLjAwNDQ3MiwgMC4wMDQ0NzMsIDAuMDA0NDc0LCAwLjAwNDQ3NCIsIFwKLSAgICAgICAgICAiMC4wMDQ0MzIsIDAuMDA0NDY5LCAwLjAwNDQ3MywgMC4wMDQ0NzUsIDAuMDA0NDc3LCAwLjAwNDQ3NywgMC4wMDQ0NzciKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFFOKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMjY4MDc1OwotICAgIGZ1bmN0aW9uIDogIlFCSU5UIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBub25fdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJpc2luZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMjQ0MDIsIDAuNTAyMTk1LCAwLjY0NDc1NywgMC44MjI5MzksIDEuMDAxMjksIDEuMTc5MzUsIDEuMzU3NjIiLCBcCi0gICAgICAgICAgIjAuMzM2MTA5LCAwLjUxMzg5OSwgMC42NTY0NzcsIDAuODM0Njc1LCAxLjAxMjg0LCAxLjE5MTAyLCAxLjM2OTI0IiwgXAotICAgICAgICAgICIwLjM1MTU3MSwgMC41MjkzNjIsIDAuNjcxOTUxLCAwLjg1MDEwOSwgMS4wMjg0NSwgMS4yMDY1MiwgMS4zODQ3MSIsIFwKLSAgICAgICAgICAiMC4zNjY5OTQsIDAuNTQ0NzQzLCAwLjY4NzMyMSwgMC44NjU1NDYsIDEuMDQzNzcsIDEuMjIyMDQsIDEuNDAwMDkiLCBcCi0gICAgICAgICAgIjAuMzgyMDY4LCAwLjU1OTg4NSwgMC43MDI0MjYsIDAuODgwNjA5LCAxLjA1ODk1LCAxLjIzNzAyLCAxLjQxNTIiLCBcCi0gICAgICAgICAgIjAuNDA2MzY1LCAwLjU4NDE4MiwgMC43MjY3MjMsIDAuOTA0OTA3LCAxLjA4MzI1LCAxLjI2MTMxLCAxLjQzOTUiLCBcCi0gICAgICAgICAgIjAuNDI2OTY1LCAwLjYwNDc4MiwgMC43NDczMjMsIDAuOTI1NTA3LCAxLjEwMzg1LCAxLjI4MTkxLCAxLjQ2MDEiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDkwODg2LCAwLjQ0OTU1LCAwLjczNzk3NCwgMS4xMDE0OSwgMS40NjMyOSwgMS44MjcyMiwgMi4xOTQxMyIsIFwKLSAgICAgICAgICAiMC4wOTA4ODgsIDAuNDQ5NTQ4LCAwLjczNzc5LCAxLjEwMTg0LCAxLjQ2NDMzLCAxLjgzMDAzLCAyLjE4OTk0IiwgXAotICAgICAgICAgICIwLjA5MDg4NCwgMC40NDk1NSwgMC43MzgzNTgsIDEuMTAxNDksIDEuNDYzNDEsIDEuODI3MiwgMi4xOTMzOSIsIFwKLSAgICAgICAgICAiMC4wOTA5MSwgMC40NDk1MjMsIDAuNzM3ODg4LCAxLjEwMDQ0LCAxLjQ2MzAxLCAxLjgyNTM3LCAyLjE5MjUxIiwgXAotICAgICAgICAgICIwLjA5MDg4MSwgMC40NDk1MzgsIDAuNzM3OTc1LCAxLjEwMTQ5LCAxLjQ2MzQzLCAxLjgyNzIxLCAyLjE5MzMiLCBcCi0gICAgICAgICAgIjAuMDkwODgyLCAwLjQ0OTU0MSwgMC43Mzc5NzgsIDEuMTAxNDksIDEuNDYzNDMsIDEuODI3MjEsIDIuMTkzMzciLCBcCi0gICAgICAgICAgIjAuMDkwODgyLCAwLjQ0OTU0MSwgMC43Mzc5NzgsIDEuMTAxNSwgMS40NjM0NSwgMS44MjcyMSwgMi4xOTMzNiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMDAwODIsIDAuNTA2MDcsIDAuNjcxMTM5LCAwLjg3NzQ1MywgMS4wODM4LCAxLjI5MDEsIDEuNDk2NTgiLCBcCi0gICAgICAgICAgIjAuMzExNjAzLCAwLjUxNzU3NiwgMC42ODI2NTksIDAuODg5MDM0LCAxLjA5NTMyLCAxLjMwMTY3LCAxLjUwNzg5IiwgXAotICAgICAgICAgICIwLjMyNzA1OCwgMC41MzMwMjQsIDAuNjk4MTA0LCAwLjkwNDQ0OSwgMS4xMTA4MiwgMS4zMTcwNywgMS41MjMzMyIsIFwKLSAgICAgICAgICAiMC4zNDI1NTIsIDAuNTQ4NTM2LCAwLjcxMzYxMiwgMC45MjAwMjMsIDEuMTI2MjQsIDEuMzMyNTcsIDEuNTM4OTEiLCBcCi0gICAgICAgICAgIjAuMzU3NjQzLCAwLjU2MzYxNSwgMC43Mjg3NDUsIDAuOTM1MDQyLCAxLjE0MTMsIDEuMzQ3NiwgMS41NTM5IiwgXAotICAgICAgICAgICIwLjM4MTgyOCwgMC41ODc3OTksIDAuNzUyODczLCAwLjk1OTMxNywgMS4xNjU1LCAxLjM3MTgzLCAxLjU3ODE1IiwgXAotICAgICAgICAgICIwLjQwMjA2NywgMC42MDgwMzgsIDAuNzczMTE2LCAwLjk3OTQ1NSwgMS4xODU4MywgMS4zOTIwNywgMS41OTg1MSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTk5MTQsIDAuNTA2OTkyLCAwLjgzNTc2MSwgMS4yNDY2OCwgMS42NTY0MywgMi4wNjcwNSwgMi40NzcyOSIsIFwKLSAgICAgICAgICAiMC4wOTk4NzMsIDAuNTA3MTE3LCAwLjgzNTYyNiwgMS4yNDU3OSwgMS42NTYzNSwgMi4wNjc4OCwgMi40Nzc5MiIsIFwKLSAgICAgICAgICAiMC4wOTk5MTgsIDAuNTA2OTk3LCAwLjgzNTA5OSwgMS4yNDU3NiwgMS42NTYyMSwgMi4wNjY1NywgMi40Nzg0MyIsIFwKLSAgICAgICAgICAiMC4wOTk5MTMsIDAuNTA2OTk5LCAwLjgzNTczNywgMS4yNDU4NSwgMS42NTY3LCAyLjA2NjksIDIuNDc2NjkiLCBcCi0gICAgICAgICAgIjAuMDk5OTAzLCAwLjUwNzA0NCwgMC44MzU0NzMsIDEuMjQ1ODcsIDEuNjU2NDcsIDIuMDY3MjksIDIuNDc4MTMiLCBcCi0gICAgICAgICAgIjAuMDk5OTA5LCAwLjUwNjk5NiwgMC44MzU3MjksIDEuMjQ1NTQsIDEuNjU2OTUsIDIuMDY2OTcsIDIuNDc3NjkiLCBcCi0gICAgICAgICAgIjAuMDk5OTEyLCAwLjUwNjk5NywgMC44MzUwNTcsIDEuMjQ1ODMsIDEuNjU1NjUsIDIuMDY2MTUsIDIuNDc4NjgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0NDQ2LCAwLjAwNDQ4NCwgMC4wMDQ0ODgsIDAuMDA0NDksIDAuMDA0NDkxLCAwLjAwNDQ5MiwgMC4wMDQ0OTIiLCBcCi0gICAgICAgICAgIjAuMDA0NDQsIDAuMDA0NDc3LCAwLjAwNDQ4MSwgMC4wMDQ0ODQsIDAuMDA0NDg1LCAwLjAwNDQ4NSwgMC4wMDQ0ODYiLCBcCi0gICAgICAgICAgIjAuMDA0NDM0LCAwLjAwNDQ3MiwgMC4wMDQ0NzYsIDAuMDA0NDc4LCAwLjAwNDQ3OSwgMC4wMDQ0OCwgMC4wMDQ0OCIsIFwKLSAgICAgICAgICAiMC4wMDQ0MywgMC4wMDQ0NjgsIDAuMDA0NDcyLCAwLjAwNDQ3NCwgMC4wMDQ0NzUsIDAuMDA0NDc1LCAwLjAwNDQ3NiIsIFwKLSAgICAgICAgICAiMC4wMDQ0MjksIDAuMDA0NDY3LCAwLjAwNDQ3MSwgMC4wMDQ0NzMsIDAuMDA0NDc0LCAwLjAwNDQ3NSwgMC4wMDQ0NzUiLCBcCi0gICAgICAgICAgIjAuMDA0NDI4LCAwLjAwNDQ2NiwgMC4wMDQ0NywgMC4wMDQ0NzIsIDAuMDA0NDczLCAwLjAwNDQ3NCwgMC4wMDQ0NzQiLCBcCi0gICAgICAgICAgIjAuMDA0NDMyLCAwLjAwNDQ2OSwgMC4wMDQ0NzMsIDAuMDA0NDc1LCAwLjAwNDQ3NywgMC4wMDQ0NzcsIDAuMDA0NDc3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0MTY4LCAwLjAwNDE5OCwgMC4wMDQxOTgsIDAuMDA0MTk3LCAwLjAwNDE5NiwgMC4wMDQxOTYsIDAuMDA0MTk2IiwgXAotICAgICAgICAgICIwLjAwNDE2LCAwLjAwNDE5MSwgMC4wMDQxOSwgMC4wMDQxODksIDAuMDA0MTg5LCAwLjAwNDE4OCwgMC4wMDQxODgiLCBcCi0gICAgICAgICAgIjAuMDA0MTU0LCAwLjAwNDE4NSwgMC4wMDQxODUsIDAuMDA0MTg0LCAwLjAwNDE4MywgMC4wMDQxODIsIDAuMDA0MTgyIiwgXAotICAgICAgICAgICIwLjAwNDE0OSwgMC4wMDQxOCwgMC4wMDQxOCwgMC4wMDQxNzksIDAuMDA0MTc5LCAwLjAwNDE3OCwgMC4wMDQxNzciLCBcCi0gICAgICAgICAgIjAuMDA0MTQ1LCAwLjAwNDE3NSwgMC4wMDQxNzUsIDAuMDA0MTc0LCAwLjAwNDE3NCwgMC4wMDQxNzMsIDAuMDA0MTczIiwgXAotICAgICAgICAgICIwLjAwNDE0LCAwLjAwNDE3MiwgMC4wMDQxNzIsIDAuMDA0MTcsIDAuMDA0MTcsIDAuMDA0MTY5LCAwLjAwNDE2OSIsIFwKLSAgICAgICAgICAiMC4wMDQxMzgsIDAuMDA0MTY5LCAwLjAwNDE2OSwgMC4wMDQxNjksIDAuMDA0MTY3LCAwLjAwNDE2NywgMC4wMDQxNjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IERMWTFYNCAqCi0gKiAtLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKERMWTFYNCkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjIxMjE5NDsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjM0MDAxOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYzMzQzOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDYzNDAwMTsKLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjUyMTc0NjsKLSAgICBmdW5jdGlvbiA6ICJBIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE5MDcyMSwgMC4zMTk1NDQsIDAuNDQ2MjY3LCAwLjUzNjY3MSwgMC42ODE1NTUsIDAuODA4MTk3LCAwLjk4OTExIiwgXAotICAgICAgICAgICIwLjIwMjUxNiwgMC4zMzExNjYsIDAuNDU3OTM0LCAwLjU0ODQ4NCwgMC42OTMyMDgsIDAuODE5ODQzLCAxLjAwMDc3IiwgXAotICAgICAgICAgICIwLjIxNzk5MSwgMC4zNDY1MDEsIDAuNDczMjA2LCAwLjU2MzcyOSwgMC43MDg0OSwgMC44MzUxMzcsIDEuMDE2MDgiLCBcCi0gICAgICAgICAgIjAuMjMyOTYxLCAwLjM2MTYwMiwgMC40ODgzNDgsIDAuNTc4ODQ1LCAwLjcyMzYzMSwgMC44NTAyNSwgMS4wMzEyIiwgXAotICAgICAgICAgICIwLjI0NzA5LCAwLjM3NTgwNSwgMC41MDI1NzMsIDAuNTkzMDY5LCAwLjczNzY5LCAwLjg2NDQ1OCwgMS4wNDU0IiwgXAotICAgICAgICAgICIwLjI2NzU0MywgMC4zOTYyNjQsIDAuNTIzMDMsIDAuNjEzMzgsIDAuNzU4Mjc5LCAwLjg4NDkyMiwgMS4wNjU4NSIsIFwKLSAgICAgICAgICAiMC4yODM4NjcsIDAuNDEyNTY1LCAwLjUzOTI5MSwgMC42Mjk3ODksIDAuNzc0NTY2LCAwLjkwMTI1MywgMS4wODIxNCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1NzcxMiwgMC4zMDg0OTgsIDAuNTYzODU0LCAwLjc0NzU5MSwgMS4wNDUzNywgMS4zMDMzNSwgMS42NzE4MiIsIFwKLSAgICAgICAgICAiMC4wNTc2MTMsIDAuMzA3ODI3LCAwLjU2NTk4LCAwLjc0ODI2OCwgMS4wNDUzMSwgMS4zMDEwNCwgMS42NzE3IiwgXAotICAgICAgICAgICIwLjA1NzgzNCwgMC4zMDg1OTUsIDAuNTY1OTMsIDAuNzQ5MDM0LCAxLjA0NTI3LCAxLjMwMzI1LCAxLjY2OTEyIiwgXAotICAgICAgICAgICIwLjA1NzgyMiwgMC4zMDgwMDIsIDAuNTY1OTgyLCAwLjc1MDMwNiwgMS4wNDUzMywgMS4zMDMxNywgMS42NzE5NSIsIFwKLSAgICAgICAgICAiMC4wNTc3NjUsIDAuMzA4MTIxLCAwLjU2NDQ3NiwgMC43NDc0NzgsIDEuMDQ0NjMsIDEuMzAzMjMsIDEuNjcxOTQiLCBcCi0gICAgICAgICAgIjAuMDU3NzE5LCAwLjMwODQ3MywgMC41NjQ0NzcsIDAuNzQ4ODQ0LCAxLjA0NTMsIDEuMzAzMjgsIDEuNjY5MyIsIFwKLSAgICAgICAgICAiMC4wNTc2NzMsIDAuMzA4MTI4LCAwLjU2NTk2OCwgMC43NDg5OTQsIDEuMDQzMzQsIDEuMzAwNDUsIDEuNjcxOSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE5Njk5MSwgMC4zNDQ0MDgsIDAuNDkwMDgsIDAuNTk0MTcsIDAuNzYwNTE4LCAwLjkwNjEzLCAxLjExNDEiLCBcCi0gICAgICAgICAgIjAuMjA4NjI1LCAwLjM1NiwgMC41MDE2ODIsIDAuNjA1Nzk5LCAwLjc3MjEzOCwgMC45MTc3MjMsIDEuMTI1NzEiLCBcCi0gICAgICAgICAgIjAuMjIzMTAyLCAwLjM3MDUyNSwgMC41MTYxODgsIDAuNjIwMzMsIDAuNzg2NjU5LCAwLjkzMjIyNiwgMS4xNDAyIiwgXAotICAgICAgICAgICIwLjIzNjkyNCwgMC4zODQzMzYsIDAuNTMwMDEyLCAwLjYzNDA5OCwgMC44MDA0NDIsIDAuOTQ2MDYzLCAxLjE1NDAzIiwgXAotICAgICAgICAgICIwLjI0OTMyNCwgMC4zOTY3MzMsIDAuNTQyNDEsIDAuNjQ2NDk1LCAwLjgxMjg1MiwgMC45NTg0NjEsIDEuMTY2NDIiLCBcCi0gICAgICAgICAgIjAuMjY3MDE5LCAwLjQxNDM5NiwgMC41NjAwNTYsIDAuNjY0MTg1LCAwLjgzMDUyOCwgMC45NzYxMDQsIDEuMTg0MSIsIFwKLSAgICAgICAgICAiMC4yODA3OTIsIDAuNDI4MjA4LCAwLjU3MzkzMywgMC42Nzc5MzMsIDAuODQ0MzMsIDAuOTg5OTIxLCAxLjE5NzkyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDYxNTEyLCAwLjM0NTcyNCwgMC42MzY2ODgsIDAuODQyNjA0LCAxLjE3Njg0LCAxLjQ2NzI5LCAxLjg4MjQ5IiwgXAotICAgICAgICAgICIwLjA2MTU0NSwgMC4zNDY0MjksIDAuNjM2MDA2LCAwLjg0MTA3MiwgMS4xNzY3OCwgMS40NjczNCwgMS44ODA0NiIsIFwKLSAgICAgICAgICAiMC4wNjE0ODIsIDAuMzQ1MywgMC42MzYxMTgsIDAuODQxNDA5LCAxLjE3NjQ1LCAxLjQ2NzI1LCAxLjg4MjQyIiwgXAotICAgICAgICAgICIwLjA2MTUwNiwgMC4zNDU1MzUsIDAuNjM2Njg4LCAwLjg0MTk4LCAxLjE3Njc1LCAxLjQ2NzIsIDEuODgyNTMiLCBcCi0gICAgICAgICAgIjAuMDYxNTA2LCAwLjM0NTUzNCwgMC42MzY2ODksIDAuODQxOTEyLCAxLjE3NTMyLCAxLjQ2NzE4LCAxLjg4MjUyIiwgXAotICAgICAgICAgICIwLjA2MTUzLCAwLjM0NjUsIDAuNjM2Njg4LCAwLjg0MTQ2LCAxLjE3NjYzLCAxLjQ2NzI4LCAxLjg4MjA4IiwgXAotICAgICAgICAgICIwLjA2MTUwNSwgMC4zNDU0NTMsIDAuNjM0NDI0LCAwLjg0Mjc1MywgMS4xNzY3MiwgMS40NjcxNywgMS44ODE3MyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1MTkyLCAwLjAwNTI4NywgMC4wMDUyOTcsIDAuMDA1MzAyLCAwLjAwNTMwOCwgMC4wMDUzMSwgMC4wMDUzMTEiLCBcCi0gICAgICAgICAgIjAuMDA1MTcyLCAwLjAwNTI2OSwgMC4wMDUyOCwgMC4wMDUyODMsIDAuMDA1Mjg2LCAwLjAwNTI4NywgMC4wMDUyODkiLCBcCi0gICAgICAgICAgIjAuMDA1MTYyLCAwLjAwNTI1OSwgMC4wMDUyNjksIDAuMDA1MjcyLCAwLjAwNTI3NSwgMC4wMDUyNzYsIDAuMDA1Mjc4IiwgXAotICAgICAgICAgICIwLjAwNTE1NywgMC4wMDUyNTMsIDAuMDA1MjY0LCAwLjAwNTI2NywgMC4wMDUyNywgMC4wMDUyNjgsIDAuMDA1MjcyIiwgXAotICAgICAgICAgICIwLjAwNTE1NSwgMC4wMDUyNTIsIDAuMDA1MjYzLCAwLjAwNTI2NywgMC4wMDUyNywgMC4wMDUyNzEsIDAuMDA1MjcxIiwgXAotICAgICAgICAgICIwLjAwNTE1MywgMC4wMDUyNSwgMC4wMDUyNjIsIDAuMDA1MjYsIDAuMDA1MjcxLCAwLjAwNTI3MiwgMC4wMDUyNjkiLCBcCi0gICAgICAgICAgIjAuMDA1MTU2LCAwLjAwNTI1MiwgMC4wMDUyNjIsIDAuMDA1MjY2LCAwLjAwNTI2OSwgMC4wMDUyNjksIDAuMDA1MjcxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDYwMjgsIDAuMDA2MTY0LCAwLjAwNjE4MSwgMC4wMDYxODYsIDAuMDA2MTksIDAuMDA2MTkyLCAwLjAwNjE5NCIsIFwKLSAgICAgICAgICAiMC4wMDYwMTUsIDAuMDA2MTUsIDAuMDA2MTY3LCAwLjAwNjE3MiwgMC4wMDYxNzYsIDAuMDA2MTc4LCAwLjAwNjE4IiwgXAotICAgICAgICAgICIwLjAwNjAwNCwgMC4wMDYxMzksIDAuMDA2MTU2LCAwLjAwNjE2MSwgMC4wMDYxNjYsIDAuMDA2MTY4LCAwLjAwNjE3IiwgXAotICAgICAgICAgICIwLjAwNTk5OSwgMC4wMDYxMzQsIDAuMDA2MTUxLCAwLjAwNjE1NywgMC4wMDYxNjEsIDAuMDA2MTYzLCAwLjAwNjE2NSIsIFwKLSAgICAgICAgICAiMC4wMDU5OTUsIDAuMDA2MTMxLCAwLjAwNjE0OCwgMC4wMDYxNTMsIDAuMDA2MTU3LCAwLjAwNjE2LCAwLjAwNjE2MiIsIFwKLSAgICAgICAgICAiMC4wMDU5OTMsIDAuMDA2MTI4LCAwLjAwNjE0NSwgMC4wMDYxNSwgMC4wMDYxNTQsIDAuMDA2MTU3LCAwLjAwNjE1OSIsIFwKLSAgICAgICAgICAiMC4wMDU5OSwgMC4wMDYxMjUsIDAuMDA2MTQyLCAwLjAwNjE0NywgMC4wMDYxNTIsIDAuMDA2MTU0LCAwLjAwNjE1NiIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogRExZMlg0ICoKLSAqIC0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoRExZMlg0KSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMjYzODc5OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA1NTA1MDI7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNTUwMzcyOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDU1MDUwMjsKLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjUyOTkyNDsKLSAgICBmdW5jdGlvbiA6ICJBIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjM2NDM5MSwgMC40OTIzODEsIDAuNjE3OTEzLCAwLjcwNzQ4NSwgMC44NTA4NzEsIDAuOTc2MjQyLCAxLjE1NTQiLCBcCi0gICAgICAgICAgIjAuMzc1OTUyLCAwLjUwNDA0NiwgMC42Mjk1NTEsIDAuNzE5MTMsIDAuODYyNTA0LCAwLjk4NzkxNiwgMS4xNjcwNCIsIFwKLSAgICAgICAgICAiMC4zOTEzNDIsIDAuNTE5NDM1LCAwLjY0NDkzNSwgMC43MzQ1MDQsIDAuODc3OSwgMS4wMDMzLCAxLjE4MjQzIiwgXAotICAgICAgICAgICIwLjQwNjQ3MSwgMC41MzQ1NjksIDAuNjYwMDc1LCAwLjc0OTY1MiwgMC44OTMwMjksIDEuMDE4NDQsIDEuMTk3NTYiLCBcCi0gICAgICAgICAgIjAuNDIxMTM4LCAwLjU0OTE2NywgMC42NzQ2NTcsIDAuNzY0Mjc2LCAwLjkwNzQ3OSwgMS4wMzMwNCwgMS4yMTIxOSIsIFwKLSAgICAgICAgICAiMC40NDI2NzcsIDAuNTcwNywgMC42OTYyMTYsIDAuNzg1Nzk0LCAwLjkyOTE5MiwgMS4wNTQ1NiwgMS4yMzM3MSIsIFwKLSAgICAgICAgICAiMC40NTk2NTUsIDAuNTg3NzgyLCAwLjcxMzI4OCwgMC44MDI4NTYsIDAuOTQ2MDc4LCAxLjA3MTY1LCAxLjI1MDc4Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU5MjY1LCAwLjMwNjI4MywgMC41NjIxOTYsIDAuNzQzNjI5LCAxLjAzNzg5LCAxLjI5Mzg1LCAxLjY1OTgiLCBcCi0gICAgICAgICAgIjAuMDU5MTg4LCAwLjMwNjM2MiwgMC41NjIxODQsIDAuNzQ0NzI0LCAxLjAzNTg5LCAxLjI5MzkxLCAxLjY1OTY2IiwgXAotICAgICAgICAgICIwLjA1OTE4MSwgMC4zMDYzNzgsIDAuNTYyMTY4LCAwLjc0NDg5MiwgMS4wMzc4MiwgMS4yOTE2MiwgMS42NTk2OCIsIFwKLSAgICAgICAgICAiMC4wNTkxOTEsIDAuMzA2MzY4LCAwLjU2MjE4OCwgMC43NDQ3MzYsIDEuMDM1ODgsIDEuMjkzOTEsIDEuNjU5NjYiLCBcCi0gICAgICAgICAgIjAuMDU5MjExLCAwLjMwNjM5MSwgMC41NjE5MDEsIDAuNzQyMzE1LCAxLjAzNTgsIDEuMjkzODEsIDEuNjU5NzIiLCBcCi0gICAgICAgICAgIjAuMDU5MjYsIDAuMzA2MTAzLCAwLjU2MDg4NCwgMC43NDI4MjYsIDEuMDM3ODgsIDEuMjkzOCwgMS42NTk3NCIsIFwKLSAgICAgICAgICAiMC4wNTkxOTIsIDAuMzA2OTUxLCAwLjU2MjIwNSwgMC43NDQ3MjUsIDEuMDM1MTcsIDEuMjkzOTQsIDEuNjU5NzMiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zNjg4OTEsIDAuNTE2NjE4LCAwLjY2MjI1NCwgMC43NjYyNCwgMC45MzI1NzEsIDEuMDc4MDksIDEuMjg2MDciLCBcCi0gICAgICAgICAgIjAuMzgwNDY0LCAwLjUyODE4OSwgMC42NzM4MjUsIDAuNzc3ODEzLCAwLjk0NDE0NCwgMS4wODk2NiwgMS4yOTc2NyIsIFwKLSAgICAgICAgICAiMC4zOTUxMSwgMC41NDI4MzQsIDAuNjg4NDcsIDAuNzkyNDU3LCAwLjk1ODc5LCAxLjEwNDMxLCAxLjMxMjMiLCBcCi0gICAgICAgICAgIjAuNDA5MzUzLCAwLjU1NzA3NywgMC43MDI3MTMsIDAuODA2NywgMC45NzMwMzQsIDEuMTE4NTUsIDEuMzI2NTMiLCBcCi0gICAgICAgICAgIjAuNDIyMzkxLCAwLjU3MDExNSwgMC43MTU3NDgsIDAuODE5NzM2LCAwLjk4NjA3MSwgMS4xMzE1OSwgMS4zMzk1NSIsIFwKLSAgICAgICAgICAiMC40NDA5MDEsIDAuNTg4NjQ3LCAwLjczNDI5NiwgMC44MzgzMDcsIDEuMDA0NiwgMS4xNTAxLCAxLjM1Nzk4IiwgXAotICAgICAgICAgICIwLjQ1NTU5MywgMC42MDMzMTcsIDAuNzQ4OTQ4LCAwLjg1MjkzNSwgMS4wMTkyNywgMS4xNjQ4LCAxLjM3MjczIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDYzMDk3LCAwLjM0NTkzMiwgMC42MzY3NTgsIDAuODQ0MjcyLCAxLjE3NjU3LCAxLjQ2NDY1LCAxLjg3NjcxIiwgXAotICAgICAgICAgICIwLjA2MzA5NiwgMC4zNDU5OTcsIDAuNjM2NzU2LCAwLjg0NDI3NCwgMS4xNzY1NSwgMS40NjQxLCAxLjg3NTg1IiwgXAotICAgICAgICAgICIwLjA2MzA5NSwgMC4zNDYwNTQsIDAuNjM2NzU1LCAwLjg0NDI3MiwgMS4xNzY1NCwgMS40NjQzMywgMS44NzYyNCIsIFwKLSAgICAgICAgICAiMC4wNjMwOTUsIDAuMzQ2MTA1LCAwLjYzNjc1NCwgMC44NDQyNzEsIDEuMTc2NTMsIDEuNDY0NDcsIDEuODc2NTgiLCBcCi0gICAgICAgICAgIjAuMDYzMDk1LCAwLjM0NjE0MywgMC42MzY3NTEsIDAuODQ0MjY3LCAxLjE3NjUxLCAxLjQ2NDYzLCAxLjg4MDYyIiwgXAotICAgICAgICAgICIwLjA2MzA2MSwgMC4zNDU4MzgsIDAuNjM1MDE0LCAwLjg0MTI4MSwgMS4xNzY0NywgMS40NjQyMSwgMS44Nzc0OSIsIFwKLSAgICAgICAgICAiMC4wNjMwOTIsIDAuMzQ2MjM5LCAwLjYzNjc0NywgMC44NDQyNjMsIDEuMTc2NSwgMS40NjQ1MywgMS44ODA3MSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA3MzY3LCAwLjAwNzQ3NywgMC4wMDc0OTEsIDAuMDA3NDk1LCAwLjAwNzQ5OSwgMC4wMDc1MDEsIDAuMDA3NTAyIiwgXAotICAgICAgICAgICIwLjAwNzM0OCwgMC4wMDc0NTksIDAuMDA3NDczLCAwLjAwNzQ3NywgMC4wMDc0OCwgMC4wMDc0ODMsIDAuMDA3NDg1IiwgXAotICAgICAgICAgICIwLjAwNzMzNywgMC4wMDc0NDgsIDAuMDA3NDYxLCAwLjAwNzQ2NiwgMC4wMDc0NzEsIDAuMDA3NDczLCAwLjAwNzQ3NCIsIFwKLSAgICAgICAgICAiMC4wMDczMzEsIDAuMDA3NDQyLCAwLjAwNzQ1NiwgMC4wMDc0NiwgMC4wMDc0NjMsIDAuMDA3NDY0LCAwLjAwNzQ2NyIsIFwKLSAgICAgICAgICAiMC4wMDczMjgsIDAuMDA3NDM4LCAwLjAwNzQ1NCwgMC4wMDc0NTgsIDAuMDA3NDYsIDAuMDA3NDYyLCAwLjAwNzQ2NSIsIFwKLSAgICAgICAgICAiMC4wMDczMjcsIDAuMDA3NDM3LCAwLjAwNzQ1MSwgMC4wMDc0NTYsIDAuMDA3NDU2LCAwLjAwNzQ1NywgMC4wMDc0NjUiLCBcCi0gICAgICAgICAgIjAuMDA3MzI4LCAwLjAwNzQzOCwgMC4wMDc0NTIsIDAuMDA3NDU1LCAwLjAwNzQ1OSwgMC4wMDc0NjIsIDAuMDA3NDY1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDg5NTIsIDAuMDA5MDk5LCAwLjAwOTExOSwgMC4wMDkxMjUsIDAuMDA5MTMsIDAuMDA5MTMzLCAwLjAwOTEzNSIsIFwKLSAgICAgICAgICAiMC4wMDg5MzksIDAuMDA5MDg2LCAwLjAwOTEwNSwgMC4wMDkxMTIsIDAuMDA5MTE3LCAwLjAwOTEyLCAwLjAwOTEyMiIsIFwKLSAgICAgICAgICAiMC4wMDg5MjksIDAuMDA5MDc1LCAwLjAwOTA5NSwgMC4wMDkxMDEsIDAuMDA5MTA3LCAwLjAwOTExLCAwLjAwOTExMiIsIFwKLSAgICAgICAgICAiMC4wMDg5MjMsIDAuMDA5MDcsIDAuMDA5MDg5LCAwLjAwOTA5NiwgMC4wMDkxMDEsIDAuMDA5MTA0LCAwLjAwOTEwNiIsIFwKLSAgICAgICAgICAiMC4wMDg5MTgsIDAuMDA5MDY1LCAwLjAwOTA4NSwgMC4wMDkwOTEsIDAuMDA5MDk3LCAwLjAwOTEsIDAuMDA5MTAxIiwgXAotICAgICAgICAgICIwLjAwODkxNCwgMC4wMDkwNjIsIDAuMDA5MDgyLCAwLjAwOTA4OCwgMC4wMDkwOTQsIDAuMDA5MDk3LCAwLjAwOTA5OSIsIFwKLSAgICAgICAgICAiMC4wMDg5MTQsIDAuMDA5MDYsIDAuMDA5MDgsIDAuMDA5MDg2LCAwLjAwOTA5MiwgMC4wMDkwOTUsIDAuMDA5MDk3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBETFkzWDQgKgotICogLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChETFkzWDQpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4zMTUyODI7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDU3NDM3NjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA1NzM5ODsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA1NzQzNzY7Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC41MDU5NjU7Ci0gICAgZnVuY3Rpb24gOiAiQSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC41MTcwODksIDAuNjQ1MTc5LCAwLjc3MDk3OCwgMC44NjA3OTMsIDEuMDA0NTMsIDEuMTMwMzUsIDEuMzA5ODgiLCBcCi0gICAgICAgICAgIjAuNTI4ODEsIDAuNjU2NzkzLCAwLjc4MjYwOCwgMC44NzI0MzIsIDEuMDE2MTcsIDEuMTQxOTYsIDEuMzIxNTEiLCBcCi0gICAgICAgICAgIjAuNTQ0MTI3LCAwLjY3MjE1LCAwLjc5Nzk1MSwgMC44ODc3NTYsIDEuMDMxNTEsIDEuMTU3MjIsIDEuMzM2ODYiLCBcCi0gICAgICAgICAgIjAuNTU5MzM2LCAwLjY4NzMxMywgMC44MTMxMywgMC45MDI5NiwgMS4wNDY3MSwgMS4xNzI0MSwgMS4zNTIwMyIsIFwKLSAgICAgICAgICAiMC41NzM4MDgsIDAuNzAxODQyLCAwLjgyNzY0NiwgMC45MTc0NTUsIDEuMDYxMjEsIDEuMTg2OCwgMS4zNjY1NSIsIFwKLSAgICAgICAgICAiMC41OTUxNjksIDAuNzIzMjA1LCAwLjg0OTAwMSwgMC45Mzg4MjgsIDEuMDgyNiwgMS4yMDgyOSwgMS4zODc4OSIsIFwKLSAgICAgICAgICAiMC42MTIwNjYsIDAuNzQwMTM0LCAwLjg2NTkyOSwgMC45NTU3NTksIDEuMDk5NDcsIDEuMjI1MjIsIDEuNDA0ODMiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTg3ODksIDAuMzA2Njc1LCAwLjU2Mjg1MSwgMC43NDU2NzQsIDEuMDM0NzIsIDEuMjkxNjksIDEuNjYxMTIiLCBcCi0gICAgICAgICAgIjAuMDU4NjEzLCAwLjMwNzI2OSwgMC41NjI4MTYsIDAuNzQ0NDQxLCAxLjAzNzA2LCAxLjI5NTM3LCAxLjY2MTA3IiwgXAotICAgICAgICAgICIwLjA1ODc2MywgMC4zMDY2NTcsIDAuNTYyODM0LCAwLjc0NTczNiwgMS4wMzg4MSwgMS4yOTQ5NCwgMS42NjExNSIsIFwKLSAgICAgICAgICAiMC4wNTg4NSwgMC4zMDY2NTgsIDAuNTYyODE4LCAwLjc0MzAwNSwgMS4wMzg4NiwgMS4yOTQ5NSwgMS42NjEwNCIsIFwKLSAgICAgICAgICAiMC4wNTg4MTYsIDAuMzA2NjQ3LCAwLjU2Mjg1MiwgMC43NDU2MDYsIDEuMDM4ODMsIDEuMjk0NDQsIDEuNjYxMDkiLCBcCi0gICAgICAgICAgIjAuMDU4Nzg4LCAwLjMwNjY4MywgMC41NjI4MDQsIDAuNzQ0NDIyLCAxLjAzNiwgMS4yOTQ5OSwgMS42NjA5NyIsIFwKLSAgICAgICAgICAiMC4wNTg3NzYsIDAuMzA2NjY5LCAwLjU2MjgxMSwgMC43NDQ0NzUsIDEuMDM2NzksIDEuMjk0OTksIDEuNjYxMDEiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC41MjM2OTksIDAuNjcxMjcxLCAwLjgxNzAzNywgMC45MjExNDMsIDEuMDg3NDksIDEuMjMzMTIsIDEuNDQxMTQiLCBcCi0gICAgICAgICAgIjAuNTM1MTU2LCAwLjY4Mjc1MywgMC44Mjg0NTgsIDAuOTMyNTA0LCAxLjA5ODk4LCAxLjI0NDYyLCAxLjQ1Mjc2IiwgXAotICAgICAgICAgICIwLjU0OTg0OCwgMC42OTc0MzMsIDAuODQzMjIyLCAwLjk0NzIxNiwgMS4xMTM2NSwgMS4yNTkyOCwgMS40NjcyOSIsIFwKLSAgICAgICAgICAiMC41NjQwMDMsIDAuNzExNTcyLCAwLjg1NzMyNywgMC45NjE0NDQsIDEuMTI3OCwgMS4yNzM0MiwgMS40ODE0NCIsIFwKLSAgICAgICAgICAiMC41NzY5NTYsIDAuNzI0NTE4LCAwLjg3MDI3MywgMC45NzQzOTYsIDEuMTQwNzUsIDEuMjg2MzcsIDEuNDk0NCIsIFwKLSAgICAgICAgICAiMC41OTUzMzMsIDAuNzQyOTE3LCAwLjg4ODY5MiwgMC45OTI3ODksIDEuMTU5MTQsIDEuMzA0NzYsIDEuNTEyNzYiLCBcCi0gICAgICAgICAgIjAuNjA5ODk0LCAwLjc1NzQ1MiwgMC45MDMyMDYsIDEuMDA3MzMsIDEuMTczNjksIDEuMzE5MzEsIDEuNTI3MzQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjI4ODEsIDAuMzQ2NjY2LCAwLjYzNTMyOSwgMC44NDI1ODUsIDEuMTc3OTQsIDEuNDY4NTIsIDEuODgxMjEiLCBcCi0gICAgICAgICAgIjAuMDYyODkxLCAwLjM0NjMxLCAwLjYzNzEwNiwgMC44NDUzNTcsIDEuMTc3OTIsIDEuNDY2MjUsIDEuODc4MjYiLCBcCi0gICAgICAgICAgIjAuMDYyODU1LCAwLjM0NjYyNiwgMC42MzYzMjYsIDAuODQzNDcxLCAxLjE3Nzk1LCAxLjQ2ODQ4LCAxLjg4MzkzIiwgXAotICAgICAgICAgICIwLjA2Mjg2MiwgMC4zNDY5NzgsIDAuNjM1NDYzLCAwLjg0MjYyNiwgMS4xNzc4OSwgMS40Njg0OCwgMS44Nzk5OSIsIFwKLSAgICAgICAgICAiMC4wNjI4NjMsIDAuMzQ3NDcyLCAwLjYzNTY1MiwgMC44NDI2NjksIDEuMTc3ODcsIDEuNDY4NDYsIDEuODc5NTciLCBcCi0gICAgICAgICAgIjAuMDYyODUzLCAwLjM0Njc1OSwgMC42MzUyNDEsIDAuODQyNTcsIDEuMTc3OSwgMS40Njg0NywgMS44ODQxIiwgXAotICAgICAgICAgICIwLjA2Mjg2LCAwLjM0NzM2MywgMC42MzU5OCwgMC44NDI3NjEsIDEuMTc3ODQsIDEuNDY4NDQsIDEuODc5OTUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwOTcxNywgMC4wMDk4MTMsIDAuMDA5ODE3LCAwLjAwOTgxNiwgMC4wMDk4MTQsIDAuMDA5ODE0LCAwLjAwOTgxMSIsIFwKLSAgICAgICAgICAiMC4wMDk3LCAwLjAwOTc5NSwgMC4wMDk3OTgsIDAuMDA5Nzk2LCAwLjAwOTc5NSwgMC4wMDk3OTMsIDAuMDA5NzkyIiwgXAotICAgICAgICAgICIwLjAwOTY4NiwgMC4wMDk3ODIsIDAuMDA5Nzg2LCAwLjAwOTc4NiwgMC4wMDk3ODYsIDAuMDA5NzgyLCAwLjAwOTc4IiwgXAotICAgICAgICAgICIwLjAwOTY4MSwgMC4wMDk3NzcsIDAuMDA5NzgxLCAwLjAwOTc4LCAwLjAwOTc3OCwgMC4wMDk3NzcsIDAuMDA5Nzc1IiwgXAotICAgICAgICAgICIwLjAwOTY3OCwgMC4wMDk3NzQsIDAuMDA5Nzc2LCAwLjAwOTc3NywgMC4wMDk3NzksIDAuMDA5NzcyLCAwLjAwOTc3MiIsIFwKLSAgICAgICAgICAiMC4wMDk2NzcsIDAuMDA5NzczLCAwLjAwOTc3NywgMC4wMDk3NzUsIDAuMDA5Nzc1LCAwLjAwOTc3MiwgMC4wMDk3NyIsIFwKLSAgICAgICAgICAiMC4wMDk2NzcsIDAuMDA5Nzc0LCAwLjAwOTc3NywgMC4wMDk3NzYsIDAuMDA5Nzc0LCAwLjAwOTc3MiwgMC4wMDk3NyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEwNjExLCAwLjAxMDc0NywgMC4wMTA3NTcsIDAuMDEwNzU5LCAwLjAxMDc2LCAwLjAxMDc2LCAwLjAxMDc2IiwgXAotICAgICAgICAgICIwLjAxMDU5NiwgMC4wMTA3MzMsIDAuMDEwNzQ0LCAwLjAxMDc0NiwgMC4wMTA3NDcsIDAuMDEwNzQ3LCAwLjAxMDc0NiIsIFwKLSAgICAgICAgICAiMC4wMTA1ODYsIDAuMDEwNzIzLCAwLjAxMDczNCwgMC4wMTA3MzUsIDAuMDEwNzM2LCAwLjAxMDczNiwgMC4wMTA3MzYiLCBcCi0gICAgICAgICAgIjAuMDEwNTgyLCAwLjAxMDcxNywgMC4wMTA3MjgsIDAuMDEwNzMsIDAuMDEwNzMxLCAwLjAxMDczMSwgMC4wMTA3MyIsIFwKLSAgICAgICAgICAiMC4wMTA1NzgsIDAuMDEwNzEzLCAwLjAxMDcyNCwgMC4wMTA3MjYsIDAuMDEwNzI3LCAwLjAxMDcyNywgMC4wMTA3MjciLCBcCi0gICAgICAgICAgIjAuMDEwNTc0LCAwLjAxMDcxLCAwLjAxMDcyLCAwLjAxMDcyMiwgMC4wMTA3MjMsIDAuMDEwNzIzLCAwLjAxMDcyMyIsIFwKLSAgICAgICAgICAiMC4wMTA1NzIsIDAuMDEwNzA4LCAwLjAxMDcxOSwgMC4wMTA3MjEsIDAuMDEwNzIyLCAwLjAxMDcyMiwgMC4wMTA3MjIiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogRURGRkhRWDIgKgotICogLS0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKEVERkZIUVgyKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMzkwNDEzOwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIGZmIChOMzAsUUJJTlQpIHsKLSAgICBuZXh0X3N0YXRlIDogIigoRSBEKSArICghRSAoISghTjMwKSkpKSI7Ci0gICAgY2xvY2tlZF9vbiA6ICJDSyI7Ci0gIH0KLSAgcGluKENLKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2MjI4MzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MjI1NDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2MjI4MzsKLSAgICBjbG9jayA6IHRydWU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzMDEsIDAuMDAyOTk3LCAwLjAwMjk4NiwgMC4wMDI5NzksIDAuMDAyOTczLCAwLjAwMjk2OCwgMC4wMDI5NjciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDU1MDQsIDAuMDA1NDk0LCAwLjAwNTQ4NSwgMC4wMDU0OCwgMC4wMDU0ODEsIDAuMDA1NDg4LCAwLjAwNTQ5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRCZFIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9FX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4yNjUxMjIsIDAuMjc2ODM0LCAwLjI5MjI5LCAwLjMwNzY3NCwgMC4zMjI3MTIsIDAuMzQ3MDMxLCAwLjM2NzU3NyIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMTg3NDc3LCAwLjE5ODk0NSwgMC4yMTM3MzIsIDAuMjI4Njc0LCAwLjI0MzE2MSwgMC4yNjU3NiwgMC4yODQxNTkiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEQpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDc5MzY1NzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA3ODk3MDI7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNzkzNjU3OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzA1NSwgMC4wMDMwMzYsIDAuMDAzMDI2LCAwLjAwMzAxOSwgMC4wMDMwMTQsIDAuMDAzMDA5LCAwLjAwMzAwNSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNTYwOSwgMC4wMDU2LCAwLjAwNTU5NSwgMC4wMDU1OSwgMC4wMDU1ODgsIDAuMDA1NTg0LCAwLjAwNTU4MyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJFIjsKLSAgICAgIHNkZl9jb25kIDogIkUgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMTE4NzUsIC0wLjEwNzUsIC0wLjEwMTI1LCAtMC4wODg3NSwgLTAuMDc2MjUsIC0wLjA2NjI1LCAtMC4wNTEyNSIsIFwKLSAgICAgICAgICAiLTAuMTMsIC0wLjExODc1LCAtMC4xMTI1LCAtMC4xLCAtMC4wOTM3NSwgLTAuMDc3NSwgLTAuMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMTQyNSwgLTAuMTM3NSwgLTAuMTI1LCAtMC4xMTI1LCAtMC4xMDYyNSwgLTAuMDksIC0wLjA4MTI1IiwgXAotICAgICAgICAgICItMC4xNTUsIC0wLjE1LCAtMC4xMzc1LCAtMC4xMjUsIC0wLjExODc1LCAtMC4xMDI1LCAtMC4wOTM3NSIsIFwKLSAgICAgICAgICAiLTAuMTczNzUsIC0wLjE2MjUsIC0wLjE1LCAtMC4xMzc1LCAtMC4xMzEyNSwgLTAuMTE1LCAtMC4xMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMTksIC0wLjE4NSwgLTAuMTcyNSwgLTAuMTYsIC0wLjE1Mzc1LCAtMC4xMzc1LCAtMC4xMjg3NSIsIFwKLSAgICAgICAgICAiLTAuMjExMjUsIC0wLjIsIC0wLjE4NzUsIC0wLjE4MTI1LCAtMC4xNjg3NSwgLTAuMTU4NzUsIC0wLjE0Mzc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDE4NzUsIC0wLjAwNzUsIDAuMDA1LCAwLjAyMzc1LCAwLjAzNjI1LCAwLjA1MjUsIDAuMDczNzUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAuMDEyNSwgMC4wMjUsIDAuMDQxMjUsIDAuMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDMxMjUsIC0wLjAxODc1LCAtMC4wMDYyNSwgMC4wMDYyNSwgMC4wMjg3NSwgMC4wNSIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNDM3NSwgLTAuMDMxMjUsIC0wLjAxODc1LCAtMC4wMDYyNSwgMC4wMTYyNSwgMC4wMzc1IiwgXAotICAgICAgICAgICItMC4wNjc1LCAtMC4wNTYyNSwgLTAuMDQzNzUsIC0wLjAyNSwgLTAuMDEyNSwgMC4wMDM3NSwgMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjA4Mzc1LCAtMC4wNzI1LCAtMC4wNiwgLTAuMDQ3NSwgLTAuMDM1LCAtMC4wMTI1LCAwLjAwMjUiLCBcCi0gICAgICAgICAgIi0wLjA5ODc1LCAtMC4wODc1LCAtMC4wNzUsIC0wLjA2MjUsIC0wLjA1LCAtMC4wMjc1LCAtMC4wMTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJFIjsKLSAgICAgIHNkZl9jb25kIDogIkUgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTkzNzUsIDAuMTgyNSwgMC4xNjM3NSwgMC4xNTEyNSwgMC4xMzg3NSwgMC4xMjI1LCAwLjExMzc1IiwgXAotICAgICAgICAgICIwLjIwNSwgMC4xOTM3NSwgMC4xNzUsIDAuMTYyNSwgMC4xNSwgMC4xMzM3NSwgMC4xMjUiLCBcCi0gICAgICAgICAgIjAuMjE3NSwgMC4yMDYyNSwgMC4xODc1LCAwLjE3NSwgMC4xNjI1LCAwLjE0NjI1LCAwLjEzNzUiLCBcCi0gICAgICAgICAgIjAuMjMsIDAuMjE4NzUsIDAuMiwgMC4xODc1LCAwLjE3NSwgMC4xNTg3NSwgMC4xNSIsIFwKLSAgICAgICAgICAiMC4yNDI1LCAwLjIzMTI1LCAwLjIxODc1LCAwLjIsIDAuMTg3NSwgMC4xNzc1LCAwLjE2MjUiLCBcCi0gICAgICAgICAgIjAuMjY1LCAwLjI1Mzc1LCAwLjIzNSwgMC4yMjI1LCAwLjIxLCAwLjE5Mzc1LCAwLjE4NSIsIFwKLSAgICAgICAgICAiMC4yODYyNSwgMC4yNjg3NSwgMC4yNTYyNSwgMC4yNDM3NSwgMC4yMzEyNSwgMC4yMTUsIDAuMiIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExODc1LCAwLjEwNzUsIDAuMDk1LCAwLjA3NjI1LCAwLjA1NzUsIDAuMDM1LCAwLjAxMzc1IiwgXAotICAgICAgICAgICIwLjEzLCAwLjExODc1LCAwLjEwNjI1LCAwLjA4NzUsIDAuMDY4NzUsIDAuMDQ2MjUsIDAuMDI1IiwgXAotICAgICAgICAgICIwLjE0MjUsIDAuMTMxMjUsIDAuMTE4NzUsIDAuMSwgMC4wODc1LCAwLjA1ODc1LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIjAuMTU1LCAwLjE0Mzc1LCAwLjEzMTI1LCAwLjExMjUsIDAuMSwgMC4wNzEyNSwgMC4wNSIsIFwKLSAgICAgICAgICAiMC4xNjc1LCAwLjE1NjI1LCAwLjE0Mzc1LCAwLjEyNSwgMC4xMTI1LCAwLjA4Mzc1LCAwLjA2MjUiLCBcCi0gICAgICAgICAgIjAuMTksIDAuMTc4NzUsIDAuMTYsIDAuMTQ3NSwgMC4xMjg3NSwgMC4xMDYyNSwgMC4wODUiLCBcCi0gICAgICAgICAgIjAuMjA1LCAwLjE5Mzc1LCAwLjE3NSwgMC4xNjI1LCAwLjE0Mzc1LCAwLjEyMTI1LCAwLjEiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEUpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTY3OTQ0OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTY3ODU2OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTY3OTQ0OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNTIzNiwgMC4wMDUyMzUsIDAuMDA1MjM0LCAwLjAwNTIzMiwgMC4wMDUyMywgMC4wMDUyMjgsIDAuMDA1MjI3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA1OTg3LCAwLjAwNTk2NSwgMC4wMDU5NDYsIDAuMDA1OTM0LCAwLjAwNTkyNSwgMC4wMDU5MTYsIDAuMDA1OTEyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEIjsKLSAgICAgIHNkZl9jb25kIDogIkQgPT0gMSdiMCI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMTEyNSwgLTAuMDk1LCAtMC4wODI1LCAtMC4wNjM3NSwgLTAuMDUxMjUsIC0wLjAyODc1LCAtMC4wMDc1IiwgXAotICAgICAgICAgICItMC4xMjM3NSwgLTAuMTEyNSwgLTAuMDkzNzUsIC0wLjA4MTI1LCAtMC4wNjI1LCAtMC4wNCwgLTAuMDI1IiwgXAotICAgICAgICAgICItMC4xMzYyNSwgLTAuMTI1LCAtMC4xMTI1LCAtMC4wOTM3NSwgLTAuMDgxMjUsIC0wLjA1ODc1LCAtMC4wMzc1IiwgXAotICAgICAgICAgICItMC4xNTUsIC0wLjEzNzUsIC0wLjEyNSwgLTAuMTA2MjUsIC0wLjA5Mzc1LCAtMC4wNzEyNSwgLTAuMDUiLCBcCi0gICAgICAgICAgIi0wLjE2NzUsIC0wLjE1NjI1LCAtMC4xMzc1LCAtMC4xMjUsIC0wLjEwNjI1LCAtMC4wODM3NSwgLTAuMDY4NzUiLCBcCi0gICAgICAgICAgIi0wLjE5LCAtMC4xNzg3NSwgLTAuMTYsIC0wLjE0NzUsIC0wLjEyODc1LCAtMC4xMDYyNSwgLTAuMDkxMjUiLCBcCi0gICAgICAgICAgIi0wLjIwNSwgLTAuMTkzNzUsIC0wLjE4MTI1LCAtMC4xNjI1LCAtMC4xNSwgLTAuMTI3NSwgLTAuMTA2MjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjI1LCAwLjAxNzUsIDAuMDMsIDAuMDQyNSwgMC4wNTUsIDAuMDc3NSwgMC4wOTI1IiwgXAotICAgICAgICAgICItMC4wMDUsIDAuMDA2MjUsIDAuMDE4NzUsIDAuMDMxMjUsIDAuMDQzNzUsIDAuMDY2MjUsIDAuMDgxMjUiLCBcCi0gICAgICAgICAgIi0wLjAxNzUsIC0wLjAxMjUsIDAuMDA2MjUsIDAuMDE4NzUsIDAuMDMxMjUsIDAuMDUzNzUsIDAuMDY4NzUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMjUsIC0wLjAxMjUsIDAuMDA2MjUsIDAuMDEyNSwgMC4wMzUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAxMjUsIDAsIDAuMDIyNSwgMC4wMzc1IiwgXAotICAgICAgICAgICItMC4wNzEyNSwgLTAuMDYsIC0wLjA0NzUsIC0wLjAzNSwgLTAuMDIyNSwgMCwgMC4wMTUiLCBcCi0gICAgICAgICAgIi0wLjA4NjI1LCAtMC4wNzUsIC0wLjA2MjUsIC0wLjA1LCAtMC4wMzc1LCAtMC4wMTUsIDAiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiRCI7Ci0gICAgICBzZGZfY29uZCA6ICJEID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjEzMTI1LCAtMC4xMiwgLTAuMTA3NSwgLTAuMTAxMjUsIC0wLjA4ODc1LCAtMC4wNzI1LCAtMC4wNjM3NSIsIFwKLSAgICAgICAgICAiLTAuMTQyNSwgLTAuMTMxMjUsIC0wLjExODc1LCAtMC4xMTI1LCAtMC4xLCAtMC4wODM3NSwgLTAuMDc1IiwgXAotICAgICAgICAgICItMC4xNTUsIC0wLjE0Mzc1LCAtMC4xMzEyNSwgLTAuMTI1LCAtMC4xMTI1LCAtMC4wOTYyNSwgLTAuMDg3NSIsIFwKLSAgICAgICAgICAiLTAuMTY3NSwgLTAuMTU2MjUsIC0wLjE0Mzc1LCAtMC4xMzc1LCAtMC4xMjUsIC0wLjExNSwgLTAuMSIsIFwKLSAgICAgICAgICAiLTAuMTgsIC0wLjE2ODc1LCAtMC4xNjI1LCAtMC4xNSwgLTAuMTM3NSwgLTAuMTI3NSwgLTAuMTEyNSIsIFwKLSAgICAgICAgICAiLTAuMjAyNSwgLTAuMTkxMjUsIC0wLjE3ODc1LCAtMC4xNzI1LCAtMC4xNiwgLTAuMTQzNzUsIC0wLjEzNSIsIFwKLSAgICAgICAgICAiLTAuMjIzNzUsIC0wLjIxMjUsIC0wLjIsIC0wLjE4NzUsIC0wLjE4MTI1LCAtMC4xNjUsIC0wLjE1NjI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzEyNSwgMC4wNDI1LCAwLjA1NSwgMC4wNjc1LCAwLjA4NjI1LCAwLjEwODc1LCAwLjEyMzc1IiwgXAotICAgICAgICAgICIwLjAyLCAwLjAzMTI1LCAwLjA0Mzc1LCAwLjA2MjUsIDAuMDc1LCAwLjA5MTI1LCAwLjExMjUiLCBcCi0gICAgICAgICAgIjAuMDA3NSwgMC4wMTg3NSwgMC4wMzEyNSwgMC4wNSwgMC4wNjI1LCAwLjA3ODc1LCAwLjEiLCBcCi0gICAgICAgICAgIi0wLjAwNSwgMC4wMDYyNSwgMC4wMTg3NSwgMC4wMzEyNSwgMC4wNSwgMC4wNjYyNSwgMC4wODc1IiwgXAotICAgICAgICAgICItMC4wMTc1LCAtMC4wMDYyNSwgMC4wMDYyNSwgMC4wMjUsIDAuMDM3NSwgMC4wNTM3NSwgMC4wNzUiLCBcCi0gICAgICAgICAgIi0wLjAzMzc1LCAtMC4wMjI1LCAtMC4wMSwgMC4wMDg3NSwgMC4wMjEyNSwgMC4wMzc1LCAwLjA1ODc1IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLjAwNjI1LCAwLjAyODc1LCAwLjA0Mzc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRCI7Ci0gICAgICBzZGZfY29uZCA6ICJEID09IDEnYjAiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE0Mzc1LCAwLjEzMjUsIDAuMTEzNzUsIDAuMTAxMjUsIDAuMDgyNSwgMC4wNiwgMC4wMzg3NSIsIFwKLSAgICAgICAgICAiMC4xNTUsIDAuMTQzNzUsIDAuMTMxMjUsIDAuMTEyNSwgMC4xLCAwLjA3MTI1LCAwLjA1IiwgXAotICAgICAgICAgICIwLjE3Mzc1LCAwLjE2MjUsIDAuMTQzNzUsIDAuMTMxMjUsIDAuMTEyNSwgMC4wOSwgMC4wNjg3NSIsIFwKLSAgICAgICAgICAiMC4xODYyNSwgMC4xNzUsIDAuMTYyNSwgMC4xNDM3NSwgMC4xMjUsIDAuMTAyNSwgMC4wODEyNSIsIFwKLSAgICAgICAgICAiMC4yMDUsIDAuMTg3NSwgMC4xNzUsIDAuMTU2MjUsIDAuMTQzNzUsIDAuMTIxMjUsIDAuMSIsIFwKLSAgICAgICAgICAiMC4yMjc1LCAwLjIxLCAwLjE5NzUsIDAuMTc4NzUsIDAuMTY2MjUsIDAuMTQzNzUsIDAuMTIyNSIsIFwKLSAgICAgICAgICAiMC4yNDI1LCAwLjIzMTI1LCAwLjIxMjUsIDAuMiwgMC4xODEyNSwgMC4xNTg3NSwgMC4xMzc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTE4NzUsIDAuMTA3NSwgMC4xMDEyNSwgMC4wODg3NSwgMC4wNzYyNSwgMC4wNjYyNSwgMC4wNTEyNSIsIFwKLSAgICAgICAgICAiMC4xMywgMC4xMTg3NSwgMC4xMTI1LCAwLjEsIDAuMDkzNzUsIDAuMDc3NSwgMC4wNjI1IiwgXAotICAgICAgICAgICIwLjE0ODc1LCAwLjEzNzUsIDAuMTI1LCAwLjExMjUsIDAuMTA2MjUsIDAuMDksIDAuMDgxMjUiLCBcCi0gICAgICAgICAgIjAuMTYxMjUsIDAuMTUsIDAuMTM3NSwgMC4xMzEyNSwgMC4xMTg3NSwgMC4xMDg3NSwgMC4wOTM3NSIsIFwKLSAgICAgICAgICAiMC4xNzM3NSwgMC4xNjg3NSwgMC4xNTYyNSwgMC4xNDM3NSwgMC4xMzc1LCAwLjEyMTI1LCAwLjExMjUiLCBcCi0gICAgICAgICAgIjAuMTk2MjUsIDAuMTg1LCAwLjE3ODc1LCAwLjE2NjI1LCAwLjE2LCAwLjE0Mzc1LCAwLjEzNSIsIFwKLSAgICAgICAgICAiMC4yMTc1LCAwLjIwNjI1LCAwLjE5Mzc1LCAwLjE4MTI1LCAwLjE3NSwgMC4xNTg3NSwgMC4xNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiRCI7Ci0gICAgICBzZGZfY29uZCA6ICJEID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE4MTI1LCAwLjE2Mzc1LCAwLjE1MTI1LCAwLjEzODc1LCAwLjEyNjI1LCAwLjExLCAwLjA5NSIsIFwKLSAgICAgICAgICAiMC4xODYyNSwgMC4xNzUsIDAuMTYyNSwgMC4xNSwgMC4xMzc1LCAwLjEyMTI1LCAwLjEwNjI1IiwgXAotICAgICAgICAgICIwLjIwNSwgMC4xODc1LCAwLjE3NSwgMC4xNjI1LCAwLjE1LCAwLjEzMzc1LCAwLjExODc1IiwgXAotICAgICAgICAgICIwLjIxNzUsIDAuMiwgMC4xODc1LCAwLjE3NSwgMC4xNjI1LCAwLjE0NjI1LCAwLjEzMTI1IiwgXAotICAgICAgICAgICIwLjIzLCAwLjIxODc1LCAwLjIsIDAuMTg3NSwgMC4xNzUsIDAuMTU4NzUsIDAuMTUiLCBcCi0gICAgICAgICAgIjAuMjUyNSwgMC4yMzUsIDAuMjIyNSwgMC4yMSwgMC4xOTc1LCAwLjE4MTI1LCAwLjE2NjI1IiwgXAotICAgICAgICAgICIwLjI2NzUsIDAuMjU2MjUsIDAuMjQzNzUsIDAuMjI1LCAwLjIxODc1LCAwLjIwMjUsIDAuMTg3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0Mzc1LCAwLjAzMjUsIDAuMDEzNzUsIDAuMDAxMjUsIC0wLjAxMTI1LCAtMC4wMzM3NSwgLTAuMDU1IiwgXAotICAgICAgICAgICIwLjA1NSwgMC4wNDM3NSwgMC4wMjUsIDAuMDEyNSwgMCwgLTAuMDIyNSwgLTAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMDY3NSwgMC4wNTYyNSwgMC4wMzc1LCAwLjAyNSwgMC4wMTI1LCAtMC4wMSwgLTAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMDgsIDAuMDY4NzUsIDAuMDU2MjUsIDAuMDM3NSwgMC4wMjUsIDAuMDAyNSwgLTAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMDkyNSwgMC4wODEyNSwgMC4wNjg3NSwgMC4wNSwgMC4wMzc1LCAwLjAxNSwgMCIsIFwKLSAgICAgICAgICAiMC4xMTUsIDAuMTAzNzUsIDAuMDkxMjUsIDAuMDcyNSwgMC4wNiwgMC4wMzc1LCAwLjAxNjI1IiwgXAotICAgICAgICAgICIwLjEzNjI1LCAwLjExODc1LCAwLjEwNjI1LCAwLjA5Mzc1LCAwLjA3NSwgMC4wNTI1LCAwLjAzNzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFEpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4yNjI3NjI7Ci0gICAgZnVuY3Rpb24gOiAiTjMwIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBub25fdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJpc2luZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMjU3NDYsIDAuNDA2NjQ4LCAwLjU1MDk0NywgMC43MzEzMzQsIDAuOTExNzAxLCAxLjA5MjA5LCAxLjI3MjQiLCBcCi0gICAgICAgICAgIjAuMjM3NDQzLCAwLjQxODM1MywgMC41NjI2NDksIDAuNzQzMTQ3LCAwLjkyMzUxOSwgMS4xMDM4LCAxLjI4NDEyIiwgXAotICAgICAgICAgICIwLjI1MjYzMywgMC40MzM1MzcsIDAuNTc3ODM1LCAwLjc1ODIyMSwgMC45Mzg1OSwgMS4xMTg5OCwgMS4yOTkzIiwgXAotICAgICAgICAgICIwLjI2ODE4NSwgMC40NDkwNTYsIDAuNTkzMzk4LCAwLjc3MzgxNCwgMC45NTQxNjEsIDEuMTM0NTQsIDEuMzE0OTUiLCBcCi0gICAgICAgICAgIjAuMjgzMjI3LCAwLjQ2NDEzLCAwLjYwODQxNywgMC43ODg4NjIsIDAuOTY5MjA3LCAxLjE0OTU4LCAxLjMzMDA3IiwgXAotICAgICAgICAgICIwLjMwNzQxOCwgMC40ODgzMjEsIDAuNjMyNjA3LCAwLjgxMzA1MywgMC45OTMzOTgsIDEuMTczNzcsIDEuMzU0MjUiLCBcCi0gICAgICAgICAgIjAuMzI3NjcsIDAuNTA4NTc5LCAwLjY1Mjg3NCwgMC44MzMzNjMsIDEuMDEzNzMsIDEuMTk0MDMsIDEuMzc0MzUiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDkwNjQ0LCAwLjQ1NDg3NiwgMC43NDg2ODgsIDEuMTE3MTEsIDEuNDg1NzksIDEuODU3MjIsIDIuMjI2IiwgXAotICAgICAgICAgICIwLjA5MDYxNSwgMC40NTQ4NzQsIDAuNzQ4NjY0LCAxLjExNjM5LCAxLjQ4NDYsIDEuODU3MiwgMi4yMjI4MiIsIFwKLSAgICAgICAgICAiMC4wOTA2NzEsIDAuNDU0ODc5LCAwLjc0ODY4LCAxLjExODQxLCAxLjQ4NTc3LCAxLjg1NzIsIDIuMjI1ODgiLCBcCi0gICAgICAgICAgIjAuMDkwNjYxLCAwLjQ1NDYwNywgMC43NDk5MSwgMS4xMTkxMSwgMS40ODgwNywgMS44NTcyMywgMi4yMjY2MiIsIFwKLSAgICAgICAgICAiMC4wOTA2MzksIDAuNDU0ODcyLCAwLjc0OTgxNCwgMS4xMTkxMywgMS40ODgxMSwgMS44NTcyLCAyLjIyNjc4IiwgXAotICAgICAgICAgICIwLjA5MDYzMywgMC40NTQ4NzIsIDAuNzQ5ODE1LCAxLjExOTEzLCAxLjQ4ODExLCAxLjg1NzIsIDIuMjI2NzIiLCBcCi0gICAgICAgICAgIjAuMDkwNjIyLCAwLjQ1NDg3NCwgMC43NDg2NDksIDEuMTE2MTUsIDEuNDg4NDksIDEuODU3MjEsIDIuMjIyODQiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjY1MTIyLCAwLjQ3MTg1OSwgMC42MzY5MzUsIDAuODQzMTM4LCAxLjA0OTIzLCAxLjI1NTQyLCAxLjQ2MTU1IiwgXAotICAgICAgICAgICIwLjI3NjgzNCwgMC40ODM1NzYsIDAuNjQ4NjU4LCAwLjg1NDc0MSwgMS4wNjA5OSwgMS4yNjcxNCwgMS40NzMyOSIsIFwKLSAgICAgICAgICAiMC4yOTIyOSwgMC40OTkwMiwgMC42NjQwNTgsIDAuODcwMjMyLCAxLjA3NjQxLCAxLjI4MjU4LCAxLjQ4ODgiLCBcCi0gICAgICAgICAgIjAuMzA3Njc0LCAwLjUxNDQxMywgMC42Nzk0OTIsIDAuODg1NjE1LCAxLjA5MTc5LCAxLjI5Nzk3LCAxLjUwNDExIiwgXAotICAgICAgICAgICIwLjMyMjcxMiwgMC41Mjk0NTIsIDAuNjk0NTMsIDAuOTAwNjQ2LCAxLjEwNjg1LCAxLjMxMzAxLCAxLjUxOTE1IiwgXAotICAgICAgICAgICIwLjM0NzAzMSwgMC41NTM3NzEsIDAuNzE4ODQzLCAwLjkyNDk3NSwgMS4xMzExNiwgMS4zMzczNCwgMS41NDM1MSIsIFwKLSAgICAgICAgICAiMC4zNjc1NzcsIDAuNTc0MzIyLCAwLjczOTM0LCAwLjk0NTUxNSwgMS4xNTE3LCAxLjM1Nzg0LCAxLjU2NDA3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5ODc5OSwgMC41MDY4NDUsIDAuODM0MzEzLCAxLjI0MzczLCAxLjY1OTcyLCAyLjA3MTM4LCAyLjQ4MzkyIiwgXAotICAgICAgICAgICIwLjA5ODcwOSwgMC41MDY4NDYsIDAuODMzNjY3LCAxLjI0ODYsIDEuNjU5MjEsIDIuMDcxMzQsIDIuNDc4NjYiLCBcCi0gICAgICAgICAgIjAuMDk4ODE0LCAwLjUwNTYyNywgMC44MzM1NzcsIDEuMjQ4MDIsIDEuNjU5NzMsIDIuMDcxNTYsIDIuNDgyNzgiLCBcCi0gICAgICAgICAgIjAuMDk4NzA5LCAwLjUwNjg0NiwgMC44MzQ3MjYsIDEuMjQ4MDEsIDEuNjU3MTEsIDIuMDcxNDEsIDIuNDc5NTkiLCBcCi0gICAgICAgICAgIjAuMDk4NzEsIDAuNTA2ODQ1LCAwLjgzNDg1OCwgMS4yNDgwMiwgMS42NTc3LCAyLjA3MTM5LCAyLjQ3ODE2IiwgXAotICAgICAgICAgICIwLjA5ODgwMSwgMC41MDY4NDcsIDAuODMyOTc2LCAxLjI0NzE5LCAxLjY1OTU4LCAyLjA3MTI3LCAyLjQ4MzA1IiwgXAotICAgICAgICAgICIwLjA5ODgxNiwgMC41MDU2NDQsIDAuODM2NDgzLCAxLjI0ODA3LCAxLjY1OTc1LCAyLjA2ODUxLCAyLjQ4Mjk0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNzEyNywgMC4wMDcxNTUsIDAuMDA3MTU4LCAwLjAwNzE1OSwgMC4wMDcxNiwgMC4wMDcxNjEsIDAuMDA3MTYiLCBcCi0gICAgICAgICAgIjAuMDA3MTEzLCAwLjAwNzE0MSwgMC4wMDcxNDUsIDAuMDA3MTQ1LCAwLjAwNzE0NiwgMC4wMDcxNDgsIDAuMDA3MTQ3IiwgXAotICAgICAgICAgICIwLjAwNzA5OSwgMC4wMDcxMjcsIDAuMDA3MTMsIDAuMDA3MTMyLCAwLjAwNzEzMywgMC4wMDcxMzQsIDAuMDA3MTM0IiwgXAotICAgICAgICAgICIwLjAwNzA5LCAwLjAwNzExOCwgMC4wMDcxMjEsIDAuMDA3MTIyLCAwLjAwNzEyMywgMC4wMDcxMjMsIDAuMDA3MTI0IiwgXAotICAgICAgICAgICIwLjAwNzA3OSwgMC4wMDcxMDcsIDAuMDA3MTEsIDAuMDA3MTExLCAwLjAwNzExMiwgMC4wMDcxMTMsIDAuMDA3MTEyIiwgXAotICAgICAgICAgICIwLjAwNzA2OSwgMC4wMDcwOTgsIDAuMDA3MTAxLCAwLjAwNzEwMiwgMC4wMDcxMDQsIDAuMDA3MTA1LCAwLjAwNzEwNCIsIFwKLSAgICAgICAgICAiMC4wMDcwNjQsIDAuMDA3MDkyLCAwLjAwNzA5NiwgMC4wMDcwOTcsIDAuMDA3MDk4LCAwLjAwNzA5OCwgMC4wMDcxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA3MjcyLCAwLjAwNzMxMSwgMC4wMDczMTUsIDAuMDA3MzE2LCAwLjAwNzMxNywgMC4wMDczMTgsIDAuMDA3MzE4IiwgXAotICAgICAgICAgICIwLjAwNzI1OSwgMC4wMDcyOTgsIDAuMDA3MzAxLCAwLjAwNzMwMywgMC4wMDczMDQsIDAuMDA3MzA0LCAwLjAwNzMwNCIsIFwKLSAgICAgICAgICAiMC4wMDcyNDksIDAuMDA3Mjg4LCAwLjAwNzI5MiwgMC4wMDcyOTMsIDAuMDA3Mjk0LCAwLjAwNzI5NCwgMC4wMDcyOTUiLCBcCi0gICAgICAgICAgIjAuMDA3MjQyLCAwLjAwNzI4MSwgMC4wMDcyODUsIDAuMDA3Mjg2LCAwLjAwNzI4NywgMC4wMDcyODcsIDAuMDA3Mjg4IiwgXAotICAgICAgICAgICIwLjAwNzI0MSwgMC4wMDcyOCwgMC4wMDcyODQsIDAuMDA3Mjg2LCAwLjAwNzI4NiwgMC4wMDcyODcsIDAuMDA3Mjg3IiwgXAotICAgICAgICAgICIwLjAwNzI0MiwgMC4wMDcyODIsIDAuMDA3Mjg1LCAwLjAwNzI4NywgMC4wMDcyODgsIDAuMDA3Mjg4LCAwLjAwNzI4OCIsIFwKLSAgICAgICAgICAiMC4wMDcyNTMsIDAuMDA3MjkyLCAwLjAwNzI5NSwgMC4wMDcyOTcsIDAuMDA3Mjk4LCAwLjAwNzI5OCwgMC4wMDcyOTgiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogRURGRlRSWDEgKgotICogLS0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKEVERkZUUlgxKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMzgxODgzOwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIGZmIChOMzAsUUJJTlQpIHsKLSAgICBuZXh0X3N0YXRlIDogIigoKCEoKCFEKSBFKSkgKCEoKCFFKSAoIU4zMCkpKSkgUk4pIjsKLSAgICBjbG9ja2VkX29uIDogIkNLIjsKLSAgfQotICBwaW4oQ0spICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDU4MjEzNzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA1ODIwMTQ7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNTgyMTM3OwotICAgIGNsb2NrIDogdHJ1ZTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDIwNjEsIDAuMDAyMDUsIDAuMDAyMDQxLCAwLjAwMjAzNCwgMC4wMDIwMjksIDAuMDAyMDIzLCAwLjAwMjAxOSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNTUwNiwgMC4wMDU0OTcsIDAuMDA1NDg3LCAwLjAwNTQ3OSwgMC4wMDU0NzMsIDAuMDA1NDY0LCAwLjAwNTQ2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRCYhRSYhUk4iOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX0VfRVFfMF9BTl9STl9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMzUzNzk3LCAwLjM2NTcwMywgMC4zODA4MTYsIDAuMzk2MjU3LCAwLjQxMTcyNywgMC40MzYwOTgsIDAuNDU3MzMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjIxNDM3MywgMC4yMjU3NywgMC4yNDA3MTEsIDAuMjU1NTYzLCAwLjI3MDM4LCAwLjI5MzU3NywgMC4zMTMzMjMiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEQpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDU0OTQ3ODsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA1NDkyMTU7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNTQ5NDc4OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNDQ3LCAwLjAwNDQ1MSwgMC4wMDQ0MzgsIDAuMDA0NDMsIDAuMDA0NDI2LCAwLjAwNDQyMiwgMC4wMDQ0MjEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDM4ODYsIDAuMDAzODczLCAwLjAwMzg2NCwgMC4wMDM4NTksIDAuMDAzODU0LCAwLjAwMzg1LCAwLjAwMzg0OCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJFJlJOIjsKLSAgICAgIHNkZl9jb25kIDogIkVfRVFfMV9BTl9STl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjE5Mzc1LCAtMC4xODI1LCAtMC4xNywgLTAuMTU3NSwgLTAuMTUxMjUsIC0wLjEzNSwgLTAuMTIiLCBcCi0gICAgICAgICAgIi0wLjIwNSwgLTAuMTkzNzUsIC0wLjE4MTI1LCAtMC4xNzUsIC0wLjE2MjUsIC0wLjE0NjI1LCAtMC4xMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMjIzNzUsIC0wLjIxMjUsIC0wLjIsIC0wLjE4NzUsIC0wLjE3NSwgLTAuMTU4NzUsIC0wLjE1IiwgXAotICAgICAgICAgICItMC4yMzYyNSwgLTAuMjI1LCAtMC4yMTI1LCAtMC4yLCAtMC4xOTM3NSwgLTAuMTc3NSwgLTAuMTYyNSIsIFwKLSAgICAgICAgICAiLTAuMjQ4NzUsIC0wLjI0Mzc1LCAtMC4yMjUsIC0wLjIxODc1LCAtMC4yMDYyNSwgLTAuMTksIC0wLjE3NSIsIFwKLSAgICAgICAgICAiLTAuMjcxMjUsIC0wLjI2LCAtMC4yNDc1LCAtMC4yMzUsIC0wLjIyODc1LCAtMC4yMTI1LCAtMC4xOTc1IiwgXAotICAgICAgICAgICItMC4yODYyNSwgLTAuMjc1LCAtMC4yNjg3NSwgLTAuMjU2MjUsIC0wLjI0Mzc1LCAtMC4yMjc1LCAtMC4yMTI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDgxMjUsIC0wLjA3LCAtMC4wNTc1LCAtMC4wNDUsIC0wLjAyNjI1LCAtMC4wMDM3NSwgMC4wMTc1IiwgXAotICAgICAgICAgICItMC4wOTI1LCAtMC4wODEyNSwgLTAuMDY4NzUsIC0wLjA1NjI1LCAtMC4wMzc1LCAtMC4wMTUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjExMTI1LCAtMC4xLCAtMC4wODEyNSwgLTAuMDY4NzUsIC0wLjA1NjI1LCAtMC4wMjc1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMTIzNzUsIC0wLjExMjUsIC0wLjEsIC0wLjA4MTI1LCAtMC4wNjg3NSwgLTAuMDQsIC0wLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMTM2MjUsIC0wLjEyNSwgLTAuMTEyNSwgLTAuMDkzNzUsIC0wLjA4MTI1LCAtMC4wNTg3NSwgLTAuMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMTUyNSwgLTAuMTQxMjUsIC0wLjEyODc1LCAtMC4xMSwgLTAuMDk3NSwgLTAuMDc1LCAtMC4wNTM3NSIsIFwKLSAgICAgICAgICAiLTAuMTY3NSwgLTAuMTU2MjUsIC0wLjE0Mzc1LCAtMC4xMjUsIC0wLjExMjUsIC0wLjA5LCAtMC4wNjg3NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiRSZSTiI7Ci0gICAgICBzZGZfY29uZCA6ICJFX0VRXzFfQU5fUk5fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yODEyNSwgMC4yNywgMC4yNTEyNSwgMC4yMzg3NSwgMC4yMjYyNSwgMC4yMSwgMC4yMDEyNSIsIFwKLSAgICAgICAgICAiMC4yOTI1LCAwLjI4MTI1LCAwLjI2ODc1LCAwLjI1LCAwLjI0Mzc1LCAwLjIyMTI1LCAwLjIxMjUiLCBcCi0gICAgICAgICAgIjAuMzA1LCAwLjI5Mzc1LCAwLjI4MTI1LCAwLjI2ODc1LCAwLjI1NjI1LCAwLjI0LCAwLjIyNSIsIFwKLSAgICAgICAgICAiMC4zMjM3NSwgMC4zMTI1LCAwLjI5Mzc1LCAwLjI4MTI1LCAwLjI2ODc1LCAwLjI1MjUsIDAuMjM3NSIsIFwKLSAgICAgICAgICAiMC4zMzYyNSwgMC4zMjUsIDAuMzEyNSwgMC4yOTM3NSwgMC4yODc1LCAwLjI2NSwgMC4yNTYyNSIsIFwKLSAgICAgICAgICAiMC4zNTg3NSwgMC4zNDc1LCAwLjMyODc1LCAwLjMxNjI1LCAwLjMwMzc1LCAwLjI4NzUsIDAuMjcyNSIsIFwKLSAgICAgICAgICAiMC4zNzM3NSwgMC4zNjI1LCAwLjM0Mzc1LCAwLjMzMTI1LCAwLjMyNSwgMC4zMDI1LCAwLjI5Mzc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTY4NzUsIDAuMTU3NSwgMC4xMzg3NSwgMC4xMiwgMC4xMDc1LCAwLjA3ODc1LCAwLjA1NzUiLCBcCi0gICAgICAgICAgIjAuMTgsIDAuMTY4NzUsIDAuMTUsIDAuMTMxMjUsIDAuMTE4NzUsIDAuMDksIDAuMDY4NzUiLCBcCi0gICAgICAgICAgIjAuMTkyNSwgMC4xODEyNSwgMC4xNjI1LCAwLjE1LCAwLjEzMTI1LCAwLjEwODc1LCAwLjA4NzUiLCBcCi0gICAgICAgICAgIjAuMjA1LCAwLjE5Mzc1LCAwLjE4MTI1LCAwLjE2MjUsIDAuMTQzNzUsIDAuMTIxMjUsIDAuMSIsIFwKLSAgICAgICAgICAiMC4yMTc1LCAwLjIwNjI1LCAwLjE5Mzc1LCAwLjE3NSwgMC4xNTYyNSwgMC4xMzM3NSwgMC4xMTI1IiwgXAotICAgICAgICAgICIwLjI0LCAwLjIyMjUsIDAuMjEsIDAuMTkxMjUsIDAuMTc4NzUsIDAuMTUsIDAuMTI4NzUiLCBcCi0gICAgICAgICAgIjAuMjU1LCAwLjIzNzUsIDAuMjI1LCAwLjIwNjI1LCAwLjE5Mzc1LCAwLjE2NSwgMC4xNDM3NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxMTQ3OTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDExNDc5OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTE0NzQ0OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNDg1NywgMC4wMDQ4NDUsIDAuMDA0ODM4LCAwLjAwNDgzMiwgMC4wMDQ4MzEsIDAuMDA0ODI3LCAwLjAwNDgyNyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNTUzMywgMC4wMDU1MTQsIDAuMDA1NTAyLCAwLjAwNTQ5NSwgMC4wMDU0OSwgMC4wMDU0ODUsIDAuMDA1NDgzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlJOIjsKLSAgICAgIHNkZl9jb25kIDogIlJOID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjEwNjI1LCAtMC4wOTUsIC0wLjA4MjUsIC0wLjA2Mzc1LCAtMC4wNTEyNSwgLTAuMDI4NzUsIC0wLjAwNzUiLCBcCi0gICAgICAgICAgIi0wLjExNzUsIC0wLjEwNjI1LCAtMC4wOTM3NSwgLTAuMDc1LCAtMC4wNjI1LCAtMC4wNCwgLTAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjEzNjI1LCAtMC4xMjUsIC0wLjEwNjI1LCAtMC4wOTM3NSwgLTAuMDc1LCAtMC4wNTI1LCAtMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMTQ4NzUsIC0wLjEzNzUsIC0wLjExODc1LCAtMC4xMDYyNSwgLTAuMDg3NSwgLTAuMDY1LCAtMC4wNDM3NSIsIFwKLSAgICAgICAgICAiLTAuMTYxMjUsIC0wLjE1LCAtMC4xMzEyNSwgLTAuMTE4NzUsIC0wLjEwNjI1LCAtMC4wNzc1LCAtMC4wNTYyNSIsIFwKLSAgICAgICAgICAiLTAuMTgzNzUsIC0wLjE3MjUsIC0wLjE1Mzc1LCAtMC4xNDEyNSwgLTAuMTIyNSwgLTAuMSwgLTAuMDc4NzUiLCBcCi0gICAgICAgICAgIi0wLjE5ODc1LCAtMC4xODc1LCAtMC4xNzUsIC0wLjE1NjI1LCAtMC4xNDM3NSwgLTAuMTIxMjUsIC0wLjEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4xMTI1LCAtMC4xMDEyNSwgLTAuMDg4NzUsIC0wLjA3LCAtMC4wNTc1LCAtMC4wMzUsIC0wLjAxMzc1IiwgXAotICAgICAgICAgICItMC4xMjM3NSwgLTAuMTEyNSwgLTAuMSwgLTAuMDgxMjUsIC0wLjA2ODc1LCAtMC4wNDYyNSwgLTAuMDI1IiwgXAotICAgICAgICAgICItMC4xNDI1LCAtMC4xMjUsIC0wLjExMjUsIC0wLjEsIC0wLjA4MTI1LCAtMC4wNTg3NSwgLTAuMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMTU1LCAtMC4xNDM3NSwgLTAuMTI1LCAtMC4xMTI1LCAtMC4xLCAtMC4wNzEyNSwgLTAuMDUiLCBcCi0gICAgICAgICAgIi0wLjE2NzUsIC0wLjE1NjI1LCAtMC4xNDM3NSwgLTAuMTI1LCAtMC4xMTI1LCAtMC4wODM3NSwgLTAuMDY4NzUiLCBcCi0gICAgICAgICAgIi0wLjE4Mzc1LCAtMC4xNzI1LCAtMC4xNiwgLTAuMTQxMjUsIC0wLjEyODc1LCAtMC4xMDYyNSwgLTAuMDg1IiwgXAotICAgICAgICAgICItMC4xOTg3NSwgLTAuMTg3NSwgLTAuMTc1LCAtMC4xNTYyNSwgLTAuMTQzNzUsIC0wLjEyMTI1LCAtMC4xIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJSTiI7Ci0gICAgICBzZGZfY29uZCA6ICJSTiA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMjUsIDAuMzEzNzUsIDAuMjk1LCAwLjI4MjUsIDAuMjcsIDAuMjUzNzUsIDAuMjM4NzUiLCBcCi0gICAgICAgICAgIjAuMzM2MjUsIDAuMzI1LCAwLjMwNjI1LCAwLjI5Mzc1LCAwLjI4MTI1LCAwLjI2NSwgMC4yNTYyNSIsIFwKLSAgICAgICAgICAiMC4zNDg3NSwgMC4zMzc1LCAwLjMyNSwgMC4zMTI1LCAwLjMsIDAuMjgzNzUsIDAuMjY4NzUiLCBcCi0gICAgICAgICAgIjAuMzY3NSwgMC4zNTYyNSwgMC4zMzc1LCAwLjMyNSwgMC4zMTI1LCAwLjI5NjI1LCAwLjI4MTI1IiwgXAotICAgICAgICAgICIwLjM4LCAwLjM2ODc1LCAwLjM1LCAwLjMzNzUsIDAuMzI1LCAwLjMwODc1LCAwLjMiLCBcCi0gICAgICAgICAgIjAuNDAyNSwgMC4zOTEyNSwgMC4zNzI1LCAwLjM2LCAwLjM0NzUsIDAuMzMxMjUsIDAuMzE2MjUiLCBcCi0gICAgICAgICAgIjAuNDE3NSwgMC40MDYyNSwgMC4zOTM3NSwgMC4zNzUsIDAuMzY4NzUsIDAuMzQ2MjUsIDAuMzM3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIwNjI1LCAwLjE5NSwgMC4xODI1LCAwLjE3LCAwLjE1NzUsIDAuMTQxMjUsIDAuMTI2MjUiLCBcCi0gICAgICAgICAgIjAuMjExMjUsIDAuMiwgMC4xODc1LCAwLjE3NSwgMC4xNjg3NSwgMC4xNTI1LCAwLjEzNzUiLCBcCi0gICAgICAgICAgIjAuMjIzNzUsIDAuMjEyNSwgMC4yLCAwLjE5Mzc1LCAwLjE4MTI1LCAwLjE2NSwgMC4xNSIsIFwKLSAgICAgICAgICAiMC4yMzYyNSwgMC4yMjUsIDAuMjEyNSwgMC4yMDYyNSwgMC4xOTM3NSwgMC4xNzc1LCAwLjE2MjUiLCBcCi0gICAgICAgICAgIjAuMjQ4NzUsIDAuMjM3NSwgMC4yMjUsIDAuMjE4NzUsIDAuMjA2MjUsIDAuMTksIDAuMTc1IiwgXAotICAgICAgICAgICIwLjI3MTI1LCAwLjI2LCAwLjI0NzUsIDAuMjM1LCAwLjIyMjUsIDAuMjA2MjUsIDAuMTk3NSIsIFwKLSAgICAgICAgICAiMC4yOTI1LCAwLjI4MTI1LCAwLjI2ODc1LCAwLjI1NjI1LCAwLjI0Mzc1LCAwLjIyNzUsIDAuMjEyNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjEzMzU1ODsKLSAgICBmdW5jdGlvbiA6ICJOMzAiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5vbl91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcmlzaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI5OTY3MiwgMC4zNDMxMDgsIDAuNTg4NjQ5LCAwLjgwNTIxNSwgMS4wOTIzMSwgMS42NzA2NCwgMi4wMzE5NSIsIFwKLSAgICAgICAgICAiMC4zMTE1MiwgMC4zNTQ5NzcsIDAuNjAwMDIzLCAwLjgxNjc2MiwgMS4xMDM2NiwgMS42ODIyOCwgMi4wMzk3IiwgXAotICAgICAgICAgICIwLjMyNjcwNSwgMC4zNzAwNjgsIDAuNjE1NDU4LCAwLjgzMjA0MiwgMS4xMTkzNSwgMS42OTczNSwgMi4wNTkzOSIsIFwKLSAgICAgICAgICAiMC4zNDIwNTksIDAuMzg1NDAxLCAwLjYzMjEyNiwgMC44NDc2NTYsIDEuMTM0OTcsIDEuNzEzMTIsIDIuMDc0MjciLCBcCi0gICAgICAgICAgIjAuMzU3NTU2LCAwLjQwMDg4NCwgMC42NDYyNzYsIDAuODYyOTkzLCAxLjE1MDMzLCAxLjcyNzUzLCAyLjA5MDA2IiwgXAotICAgICAgICAgICIwLjM4MTgwNywgMC40MjUyNzIsIDAuNjcwNDE4LCAwLjg4Njg4NywgMS4xNzM4NCwgMS43NTI1LCAyLjExMzg2IiwgXAotICAgICAgICAgICIwLjQwMjk0NywgMC40NDYzODksIDAuNjkxNDgsIDAuOTA4MDE5LCAxLjE5NDk4LCAxLjc3MzY3LCAyLjEzNDQ1Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE2NDU1NywgMC4yNTI2MjMsIDAuNzUxNjI4LCAxLjE5NzU3LCAxLjc3MzY2LCAyLjk3MzYyLCAzLjcxMzg4IiwgXAotICAgICAgICAgICIwLjE2NDU2OSwgMC4yNTI2MTksIDAuNzUzNTcsIDEuMTg0ODEsIDEuNzc5MTUsIDIuOTczODUsIDMuNjc5MDEiLCBcCi0gICAgICAgICAgIjAuMTY2MzUxLCAwLjI1MjQ2NiwgMC43NTE4MDMsIDEuMTg2MjUsIDEuNzczNzcsIDIuOTczNTUsIDMuNzEzNzgiLCBcCi0gICAgICAgICAgIjAuMTY0NTYyLCAwLjI1MjYyNywgMC43NTI5LCAxLjE5Nzg5LCAxLjc3MDMsIDIuOTczNjQsIDMuNzEzOTciLCBcCi0gICAgICAgICAgIjAuMTY0NTI2LCAwLjI1MTEwNiwgMC43NTE5NzYsIDEuMTg4MTUsIDEuNzcyMTcsIDIuOTc4NDEsIDMuNzEzODQiLCBcCi0gICAgICAgICAgIjAuMTY0NTQxLCAwLjI1MjU3OCwgMC43NTI3ODUsIDEuMTg0OTQsIDEuNzgwMzMsIDIuOTc4MiwgMy43MTc4MiIsIFwKLSAgICAgICAgICAiMC4xNjY5NjIsIDAuMjUyNjI1LCAwLjc1MzMzLCAxLjE4NDk1LCAxLjc4MDI0LCAyLjk3Mzg5LCAzLjcxODIiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzMzNDIzLCAwLjM4MzI0MywgMC42NjMwODUsIDAuOTA5ODY5LCAxLjIzOTkyLCAxLjkwNDE5LCAyLjMxNzMyIiwgXAotICAgICAgICAgICIwLjM0NTM4NiwgMC4zOTQ4OTIsIDAuNjc1MTEzLCAwLjkyMTg1NSwgMS4yNTE1MywgMS45MTU2NCwgMi4zMjkyNiIsIFwKLSAgICAgICAgICAiMC4zNjA1MTEsIDAuNDEwMDM2LCAwLjY5MDU1MywgMC45MzkyNzYsIDEuMjY4NzYsIDEuOTMxMTksIDIuMzQ0MzkiLCBcCi0gICAgICAgICAgIjAuMzc1OTU5LCAwLjQyNTc0NSwgMC43MDUyNzcsIDAuOTUzNjY3LCAxLjI4MjI4LCAxLjk0NjY0LCAyLjM1OTgyIiwgXAotICAgICAgICAgICIwLjM5MTQyNCwgMC40NDEyMDksIDAuNzIxNDMzLCAwLjk2NzgzOCwgMS4zMDA3LCAxLjk2MjE0LCAyLjM3NTI5IiwgXAotICAgICAgICAgICIwLjQxNTc4NywgMC40NjUzNjEsIDAuNzQ1MTIyLCAwLjk5MjI3OSwgMS4zMjUxNywgMS45ODY0NiwgMi4zOTk2NiIsIFwKLSAgICAgICAgICAiMC40MzcwMjgsIDAuNDg2ODEzLCAwLjc2NzExNSwgMS4wMTM2NCwgMS4zNDU4NywgMi4wMDc3NywgMi40MjAzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE4MTI2OCwgMC4yNzczNjksIDAuODMxMjkyLCAxLjMyNDA2LCAxLjk3NTk0LCAzLjI4MjcyLCA0LjEwMDExIiwgXAotICAgICAgICAgICIwLjE4MTM1OSwgMC4yNzczNTEsIDAuODMwOTQxLCAxLjMyMTE2LCAxLjk3NTg2LCAzLjI4NTc2LCA0LjEwNDMxIiwgXAotICAgICAgICAgICIwLjE4MTM1MiwgMC4yNzczNTcsIDAuODMxMTg2LCAxLjMyMzA2LCAxLjk3OTY4LCAzLjI4NDQxLCA0LjEwMzE0IiwgXAotICAgICAgICAgICIwLjE4MTM0NywgMC4yNzczODIsIDAuODMwOTE3LCAxLjMyMTg1LCAxLjk3NjgzLCAzLjI4NTgzLCA0LjEwNDg5IiwgXAotICAgICAgICAgICIwLjE4MTMxNywgMC4yNzczNzMsIDAuODMxMjU5LCAxLjMyMTY3LCAxLjk3NzQ1LCAzLjI4NDk2LCA0LjEwMjU0IiwgXAotICAgICAgICAgICIwLjE4MTM1NSwgMC4yNzczNTIsIDAuODMwOTYsIDEuMzIyMjEsIDEuOTc2ODMsIDMuMjg0NzQsIDQuMTAzODQiLCBcCi0gICAgICAgICAgIjAuMTgxMzE0LCAwLjI3NzM3NSwgMC44MzEyOTUsIDEuMzIxMzcsIDEuOTc2NjcsIDMuMjg2MDYsIDQuMTAxOTciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzMjE2LCAwLjAwMzIxOCwgMC4wMDMyMSwgMC4wMDMyMDcsIDAuMDAzMjA0LCAwLjAwMzIwMiwgMC4wMDMyMDEiLCBcCi0gICAgICAgICAgIjAuMDAzMjExLCAwLjAwMzIxMiwgMC4wMDMyMDUsIDAuMDAzMjAxLCAwLjAwMzE5OSwgMC4wMDMxOTcsIDAuMDAzMTk1IiwgXAotICAgICAgICAgICIwLjAwMzIwNiwgMC4wMDMyMDcsIDAuMDAzMiwgMC4wMDMxOTYsIDAuMDAzMTkzLCAwLjAwMzE5MSwgMC4wMDMxOSIsIFwKLSAgICAgICAgICAiMC4wMDMyMDEsIDAuMDAzMjAyLCAwLjAwMzE5NSwgMC4wMDMxOTIsIDAuMDAzMTg5LCAwLjAwMzE4NiwgMC4wMDMxODYiLCBcCi0gICAgICAgICAgIjAuMDAzMTk4LCAwLjAwMzIsIDAuMDAzMTkzLCAwLjAwMzE4OSwgMC4wMDMxODYsIDAuMDAzMTg0LCAwLjAwMzE4MyIsIFwKLSAgICAgICAgICAiMC4wMDMxOTMsIDAuMDAzMTk0LCAwLjAwMzE4NywgMC4wMDMxODQsIDAuMDAzMTgxLCAwLjAwMzE3OCwgMC4wMDMxNzciLCBcCi0gICAgICAgICAgIjAuMDAzMTksIDAuMDAzMTkyLCAwLjAwMzE4NSwgMC4wMDMxODIsIDAuMDAzMTc5LCAwLjAwMzE3NiwgMC4wMDMxNzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDM4MTcsIDAuMDAzODIyLCAwLjAwMzgyOCwgMC4wMDM4MjksIDAuMDAzODMsIDAuMDAzODMxLCAwLjAwMzgzMSIsIFwKLSAgICAgICAgICAiMC4wMDM4MTEsIDAuMDAzODE2LCAwLjAwMzgyMiwgMC4wMDM4MjQsIDAuMDAzODI0LCAwLjAwMzgyNSwgMC4wMDM4MjUiLCBcCi0gICAgICAgICAgIjAuMDAzODA1LCAwLjAwMzgxLCAwLjAwMzgxNywgMC4wMDM4MTgsIDAuMDAzODE5LCAwLjAwMzgyLCAwLjAwMzgyIiwgXAotICAgICAgICAgICIwLjAwMzgwMiwgMC4wMDM4MDYsIDAuMDAzODEzLCAwLjAwMzgxNSwgMC4wMDM4MTUsIDAuMDAzODE2LCAwLjAwMzgxNiIsIFwKLSAgICAgICAgICAiMC4wMDM3OTksIDAuMDAzODA0LCAwLjAwMzgxMSwgMC4wMDM4MTIsIDAuMDAzODEyLCAwLjAwMzgxMywgMC4wMDM4MTMiLCBcCi0gICAgICAgICAgIjAuMDAzNzk3LCAwLjAwMzgwMiwgMC4wMDM4MDksIDAuMDAzODExLCAwLjAwMzgxMSwgMC4wMDM4MTEsIDAuMDAzODEyIiwgXAotICAgICAgICAgICIwLjAwMzc5NywgMC4wMDM4MDIsIDAuMDAzODA5LCAwLjAwMzgxLCAwLjAwMzgxMSwgMC4wMDM4MTIsIDAuMDAzODEyIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihRTikgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjEzNTYzODsKLSAgICBmdW5jdGlvbiA6ICJRQklOVCI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3NlbnNlIDogbm9uX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiByaXNpbmdfZWRnZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzU0Nzc4LCAwLjM5NzkwOCwgMC42NDIzOTMsIDAuODU4MjA0LCAxLjE0NTgxLCAxLjcyMTA5LCAyLjA4MDcyIiwgXAotICAgICAgICAgICIwLjM2NjcxNCwgMC40MDk4MzUsIDAuNjU0MjI1LCAwLjg3MDE1OCwgMS4xNTc3OCwgMS43MzMxOSwgMi4wOTI2NCIsIFwKLSAgICAgICAgICAiMC4zODE4NDQsIDAuNDI0OTY1LCAwLjY2OTQ3LCAwLjg4NTIyNywgMS4xNzMwNCwgMS43NDgxOCwgMi4xMDc3NyIsIFwKLSAgICAgICAgICAiMC4zOTcyNjksIDAuNDQwNDA0LCAwLjY4NDc4MiwgMC45MDA2NTUsIDEuMTg4MzIsIDEuNzYzNiwgMi4xMjMyMSIsIFwKLSAgICAgICAgICAiMC40MTI3MzEsIDAuNDU1ODY3LCAwLjcwMDM1NiwgMC45MTYyMDEsIDEuMjAzODUsIDEuNzc5MDYsIDIuMTM4NjgiLCBcCi0gICAgICAgICAgIjAuNDM3MTA4LCAwLjQ4MDIzLCAwLjcyNDYxOSwgMC45NDA1NjIsIDEuMjI4MiwgMS44MDM0NCwgMi4xNjMwNCIsIFwKLSAgICAgICAgICAiMC40NTgzMzQsIDAuNTAxNDcxLCAwLjc0NTk1NywgMC45NjE3NjEsIDEuMjQ5MzgsIDEuODI0NjUsIDIuMTg0NTMiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTU5NjM2LCAwLjI0NzAxNiwgMC43NDQ2NTksIDEuMTgxOTEsIDEuNzY2NzgsIDIuOTQxMjQsIDMuNjc0MDkiLCBcCi0gICAgICAgICAgIjAuMTU5NjcxLCAwLjI0NzAxNywgMC43NDQ1MzQsIDEuMTgyMTUsIDEuNzY2ODIsIDIuOTQyMTQsIDMuNjc0MDgiLCBcCi0gICAgICAgICAgIjAuMTU5NjU2LCAwLjI0NzAxNSwgMC43NDQ1NDksIDEuMTg0MjMsIDEuNzcwMDcsIDIuOTQxMzMsIDMuNjczOCIsIFwKLSAgICAgICAgICAiMC4xNTk2NjYsIDAuMjQ3MDE4LCAwLjc0NDUzMiwgMS4xODQyMiwgMS43NjY4NCwgMi45NDIyLCAzLjY3MzY4IiwgXAotICAgICAgICAgICIwLjE1OTY0MSwgMC4yNDcwMTYsIDAuNzQ0NTUyLCAxLjE4MTQsIDEuNzcwMjQsIDIuOTQxMjMsIDMuNjczNzIiLCBcCi0gICAgICAgICAgIjAuMTU5NjY3LCAwLjI0NzAxNSwgMC43NDQ1MzksIDEuMTgyMjQsIDEuNzcwMTMsIDIuOTQxMjksIDMuNjc0MTkiLCBcCi0gICAgICAgICAgIjAuMTU5NjU5LCAwLjI0NzAxNCwgMC43NDQ1NTgsIDEuMTgyMDEsIDEuNzY5ODcsIDIuOTQyNTUsIDMuNjczNjYiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzM5MTQ3LCAwLjM4ODUxOSwgMC42NjgzMTYsIDAuOTE1MTczLCAxLjI0NDI0LCAxLjkwMjUsIDIuMzEzOTQiLCBcCi0gICAgICAgICAgIjAuMzUwOTk1LCAwLjQwMDM3MywgMC42ODAxNzIsIDAuOTI3MDE3LCAxLjI1NjA5LCAxLjkxNDM0LCAyLjMyNTciLCBcCi0gICAgICAgICAgIjAuMzY2MTk5LCAwLjQxNTU5MywgMC42OTUzOCwgMC45NDIyMTksIDEuMjcxMywgMS45Mjk1NiwgMi4zNDEwMyIsIFwKLSAgICAgICAgICAiMC4zODE1NCwgMC40MzA5MTMsIDAuNzEwODE2LCAwLjk1NzU2NiwgMS4yODY2MywgMS45NDQ5LCAyLjM1NjMzIiwgXAotICAgICAgICAgICIwLjM5NzA0MSwgMC40NDY0MDksIDAuNzI2MjE0LCAwLjk3MzA2LCAxLjMwMjEzLCAxLjk2MDMyLCAyLjM3MTg1IiwgXAotICAgICAgICAgICIwLjQyMTI3MSwgMC40NzA2NDMsIDAuNzUwNDQzLCAwLjk5NzI4MywgMS4zMjYzNiwgMS45ODQ2LCAyLjM5NjA2IiwgXAotICAgICAgICAgICIwLjQ0MjQwNCwgMC40OTE3OCwgMC43NzE1NzgsIDEuMDE4NDIsIDEuMzQ3NSwgMi4wMDU3NCwgMi40MTcxNCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNzcyNzMsIDAuMjc0Nzc3LCAwLjgzMDI5NywgMS4zMTg5NCwgMS45NzMwMywgMy4yODEyMiwgNC4wOTgzMyIsIFwKLSAgICAgICAgICAiMC4xNzcyNzIsIDAuMjc0NzQsIDAuODI5OTU2LCAxLjMxOTY1LCAxLjk3MzE0LCAzLjI4MDk1LCA0LjA5NjI0IiwgXAotICAgICAgICAgICIwLjE3NzQxNSwgMC4yNzQ2ODUsIDAuODI5ODc1LCAxLjMxOTYsIDEuOTczLCAzLjI3NzU4LCA0LjA5ODE4IiwgXAotICAgICAgICAgICIwLjE3NzI2NywgMC4yNzQ2OTQsIDAuODI5MTMsIDEuMzE5MDYsIDEuOTcyOTMsIDMuMjgxMDUsIDQuMDk4MjciLCBcCi0gICAgICAgICAgIjAuMTc3MjY5LCAwLjI3NDU5NiwgMC44Mjk4OCwgMS4zMTk1NywgMS45NzI5NywgMy4yODAyMywgNC4wOTgxMyIsIFwKLSAgICAgICAgICAiMC4xNzcyNzcsIDAuMjc0NzQ0LCAwLjgyOTg2MywgMS4zMTk2MiwgMS45NzMxNywgMy4yNzk5NiwgNC4wOTczMyIsIFwKLSAgICAgICAgICAiMC4xNzcyNzYsIDAuMjc0NzcxLCAwLjgyOTk0OCwgMS4zMTk2OCwgMS45NzMxNiwgMy4yODA5NCwgNC4wOTcyMSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDM4MTcsIDAuMDAzODIyLCAwLjAwMzgyOCwgMC4wMDM4MjksIDAuMDAzODMsIDAuMDAzODMxLCAwLjAwMzgzMSIsIFwKLSAgICAgICAgICAiMC4wMDM4MTEsIDAuMDAzODE2LCAwLjAwMzgyMiwgMC4wMDM4MjQsIDAuMDAzODI0LCAwLjAwMzgyNSwgMC4wMDM4MjUiLCBcCi0gICAgICAgICAgIjAuMDAzODA1LCAwLjAwMzgxLCAwLjAwMzgxNywgMC4wMDM4MTgsIDAuMDAzODE5LCAwLjAwMzgyLCAwLjAwMzgyIiwgXAotICAgICAgICAgICIwLjAwMzgwMiwgMC4wMDM4MDYsIDAuMDAzODEzLCAwLjAwMzgxNSwgMC4wMDM4MTUsIDAuMDAzODE2LCAwLjAwMzgxNiIsIFwKLSAgICAgICAgICAiMC4wMDM3OTksIDAuMDAzODA0LCAwLjAwMzgxMSwgMC4wMDM4MTIsIDAuMDAzODEyLCAwLjAwMzgxMywgMC4wMDM4MTMiLCBcCi0gICAgICAgICAgIjAuMDAzNzk3LCAwLjAwMzgwMiwgMC4wMDM4MDksIDAuMDAzODExLCAwLjAwMzgxMSwgMC4wMDM4MTEsIDAuMDAzODEyIiwgXAotICAgICAgICAgICIwLjAwMzc5NywgMC4wMDM4MDIsIDAuMDAzODA5LCAwLjAwMzgxLCAwLjAwMzgxMSwgMC4wMDM4MTIsIDAuMDAzODEyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzMjE2LCAwLjAwMzIxOCwgMC4wMDMyMSwgMC4wMDMyMDcsIDAuMDAzMjA0LCAwLjAwMzIwMiwgMC4wMDMyMDEiLCBcCi0gICAgICAgICAgIjAuMDAzMjExLCAwLjAwMzIxMiwgMC4wMDMyMDUsIDAuMDAzMjAxLCAwLjAwMzE5OSwgMC4wMDMxOTcsIDAuMDAzMTk1IiwgXAotICAgICAgICAgICIwLjAwMzIwNiwgMC4wMDMyMDcsIDAuMDAzMiwgMC4wMDMxOTYsIDAuMDAzMTkzLCAwLjAwMzE5MSwgMC4wMDMxOSIsIFwKLSAgICAgICAgICAiMC4wMDMyMDEsIDAuMDAzMjAyLCAwLjAwMzE5NSwgMC4wMDMxOTIsIDAuMDAzMTg5LCAwLjAwMzE4NiwgMC4wMDMxODYiLCBcCi0gICAgICAgICAgIjAuMDAzMTk4LCAwLjAwMzIsIDAuMDAzMTkzLCAwLjAwMzE4OSwgMC4wMDMxODYsIDAuMDAzMTg0LCAwLjAwMzE4MyIsIFwKLSAgICAgICAgICAiMC4wMDMxOTMsIDAuMDAzMTk0LCAwLjAwMzE4NywgMC4wMDMxODQsIDAuMDAzMTgxLCAwLjAwMzE3OCwgMC4wMDMxNzciLCBcCi0gICAgICAgICAgIjAuMDAzMTksIDAuMDAzMTkyLCAwLjAwMzE4NSwgMC4wMDMxODIsIDAuMDAzMTc5LCAwLjAwMzE3NiwgMC4wMDMxNzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFJOKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA1Njk3MjU7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNTY5NDUzOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDU2OTcyNTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDUzOTIsIDAuMDA1Mzc0LCAwLjAwNTM2MiwgMC4wMDUzNTUsIDAuMDA1MzUzLCAwLjAwNTM1MSwgMC4wMDUzNTEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDQ2NDgsIDAuMDA0NjM1LCAwLjAwNDYyNCwgMC4wMDQ2MTksIDAuMDA0NjE2LCAwLjAwNDYxMiwgMC4wMDQ2MTEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUQmIUUiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX0VfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4yODc1LCAtMC4yNzYyNSwgLTAuMjYzNzUsIC0wLjI1MTI1LCAtMC4yNDUsIC0wLjIyODc1LCAtMC4yMTM3NSIsIFwKLSAgICAgICAgICAiLTAuMjk4NzUsIC0wLjI4NzUsIC0wLjI3NSwgLTAuMjYyNSwgLTAuMjU2MjUsIC0wLjI0LCAtMC4yMjUiLCBcCi0gICAgICAgICAgIi0wLjMxNzUsIC0wLjMwNjI1LCAtMC4yOTM3NSwgLTAuMjgxMjUsIC0wLjI2ODc1LCAtMC4yNTI1LCAtMC4yMzc1IiwgXAotICAgICAgICAgICItMC4zMywgLTAuMzE4NzUsIC0wLjMwNjI1LCAtMC4yOTM3NSwgLTAuMjgxMjUsIC0wLjI2NSwgLTAuMjU2MjUiLCBcCi0gICAgICAgICAgIi0wLjM0MjUsIC0wLjMzMTI1LCAtMC4zMTg3NSwgLTAuMzA2MjUsIC0wLjMsIC0wLjI4Mzc1LCAtMC4yNjg3NSIsIFwKLSAgICAgICAgICAiLTAuMzY1LCAtMC4zNTM3NSwgLTAuMzQxMjUsIC0wLjMyODc1LCAtMC4zMTYyNSwgLTAuMzA2MjUsIC0wLjI5MTI1IiwgXAotICAgICAgICAgICItMC4zOCwgLTAuMzY4NzUsIC0wLjM1NjI1LCAtMC4zNSwgLTAuMzM3NSwgLTAuMzIxMjUsIC0wLjMwNjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIkQmRSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzFfQU5fRV9FUV8xID09IDEnYjEiOwotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjA1NjI1LCAtMC4wNDUsIC0wLjAyNjI1LCAtMC4wMTM3NSwgLTAuMDAxMjUsIDAuMDI3NSwgMC4wNDI1IiwgXAotICAgICAgICAgICItMC4wNjc1LCAtMC4wNTYyNSwgLTAuMDQzNzUsIC0wLjAyNSwgLTAuMDEyNSwgMC4wMTYyNSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDgsIC0wLjA2ODc1LCAtMC4wNTYyNSwgLTAuMDQzNzUsIC0wLjAyNSwgLTAuMDAyNSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDk4NzUsIC0wLjA4NzUsIC0wLjA2ODc1LCAtMC4wNTYyNSwgLTAuMDM3NSwgLTAuMDE1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICItMC4xMTEyNSwgLTAuMSwgLTAuMDgxMjUsIC0wLjA2ODc1LCAtMC4wNSwgLTAuMDI3NSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjEyNzUsIC0wLjExNjI1LCAtMC4xMDM3NSwgLTAuMDg1LCAtMC4wNzI1LCAtMC4wNSwgLTAuMDI4NzUiLCBcCi0gICAgICAgICAgIi0wLjE0MjUsIC0wLjEzMTI1LCAtMC4xMTg3NSwgLTAuMSwgLTAuMDg3NSwgLTAuMDU4NzUsIC0wLjA0Mzc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRCYhRSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fRV9FUV8wID09IDEnYjEiOwotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE0Mzc1LCAwLjEyNjI1LCAwLjExMzc1LCAwLjA5NSwgMC4wODI1LCAwLjA1Mzc1LCAwLjAzMjUiLCBcCi0gICAgICAgICAgIjAuMTU1LCAwLjE0Mzc1LCAwLjEyNSwgMC4xMDYyNSwgMC4wOTM3NSwgMC4wNjUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMTY3NSwgMC4xNTYyNSwgMC4xMzc1LCAwLjEyNSwgMC4xMDYyNSwgMC4wODM3NSwgMC4wNjI1IiwgXAotICAgICAgICAgICIwLjE4LCAwLjE2ODc1LCAwLjE1NjI1LCAwLjEzNzUsIDAuMTE4NzUsIDAuMDk2MjUsIDAuMDc1IiwgXAotICAgICAgICAgICIwLjE5MjUsIDAuMTgxMjUsIDAuMTY4NzUsIDAuMTUsIDAuMTM3NSwgMC4xMDg3NSwgMC4wODc1IiwgXAotICAgICAgICAgICIwLjIxNSwgMC4yMDM3NSwgMC4xODUsIDAuMTY2MjUsIDAuMTUzNzUsIDAuMTI1LCAwLjEwMzc1IiwgXAotICAgICAgICAgICIwLjIzLCAwLjIxMjUsIDAuMiwgMC4xODEyNSwgMC4xNjg3NSwgMC4xNCwgMC4xMTg3NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiRCZFIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMV9BTl9FX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzQzNzUsIDAuMzMyNSwgMC4zMTM3NSwgMC4zMDEyNSwgMC4yOTUsIDAuMjcyNSwgMC4yNjM3NSIsIFwKLSAgICAgICAgICAiMC4zNTUsIDAuMzQzNzUsIDAuMzMxMjUsIDAuMzEyNSwgMC4zMDYyNSwgMC4yOSwgMC4yNzUiLCBcCi0gICAgICAgICAgIjAuMzczNzUsIDAuMzU2MjUsIDAuMzQzNzUsIDAuMzMxMjUsIDAuMzE4NzUsIDAuMzAyNSwgMC4yODc1IiwgXAotICAgICAgICAgICIwLjM4NjI1LCAwLjM3NSwgMC4zNTYyNSwgMC4zNDM3NSwgMC4zMzEyNSwgMC4zMTUsIDAuMzA2MjUiLCBcCi0gICAgICAgICAgIjAuMzk4NzUsIDAuMzg3NSwgMC4zNzUsIDAuMzYyNSwgMC4zNSwgMC4zMzM3NSwgMC4zMTg3NSIsIFwKLSAgICAgICAgICAiMC40MjEyNSwgMC40MSwgMC4zOTEyNSwgMC4zNzg3NSwgMC4zNjYyNSwgMC4zNSwgMC4zNDEyNSIsIFwKLSAgICAgICAgICAiMC40MzYyNSwgMC40MjUsIDAuNDEyNSwgMC40LCAwLjM4NzUsIDAuMzcxMjUsIDAuMzU2MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogRURGRlRSWDQgKgotICogLS0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKEVERkZUUlg0KSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuNjMyMTc2OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIGZmIChOMzAsUUJJTlQpIHsKLSAgICBuZXh0X3N0YXRlIDogIigoKCEoKCFEKSBFKSkgKCEoKCFFKSAoIU4zMCkpKSkgUk4pIjsKLSAgICBjbG9ja2VkX29uIDogIkNLIjsKLSAgfQotICBwaW4oQ0spICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDU4NTYxMzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA1ODUzMjc7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNTg1NjEzOwotICAgIGNsb2NrIDogdHJ1ZTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDE5NjMsIDAuMDAxOTUxLCAwLjAwMTk0MiwgMC4wMDE5MzYsIDAuMDAxOTMxLCAwLjAwMTkyNCwgMC4wMDE5MjEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDU1NDUsIDAuMDA1NTM3LCAwLjAwNTUzLCAwLjAwNTUyNSwgMC4wMDU1MiwgMC4wMDU1MTQsIDAuMDA1NTEzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRCYhRSYhUk4iOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX0VfRVFfMF9BTl9STl9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMzQyMzU5LCAwLjM1NDMyNiwgMC4zNjk0MjUsIDAuMzg0OCwgMC40MDAzNDUsIDAuNDI0NzkyLCAwLjQ0NjAzOSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMjEzMDUsIDAuMjI0MzczLCAwLjIzOTMwMiwgMC4yNTQyMjQsIDAuMjY5MDE5LCAwLjI5MTg5NiwgMC4zMTE4NzMiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEQpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDU3MTg1NDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA1NzE1OTU7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNTcxODU0OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzk5NSwgMC4wMDM5NzcsIDAuMDAzOTYzLCAwLjAwMzk1NCwgMC4wMDM5NTEsIDAuMDAzOTQ2LCAwLjAwMzk0NSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNDA3NiwgMC4wMDQwNjMsIDAuMDA0MDUyLCAwLjAwNDA0NywgMC4wMDQwNDIsIDAuMDA0MDM4LCAwLjAwNDAzNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJFJlJOIjsKLSAgICAgIHNkZl9jb25kIDogIkVfRVFfMV9BTl9STl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjE3NSwgLTAuMTYzNzUsIC0wLjE1MTI1LCAtMC4xMzg3NSwgLTAuMTMyNSwgLTAuMTE2MjUsIC0wLjEwMTI1IiwgXAotICAgICAgICAgICItMC4xODYyNSwgLTAuMTc1LCAtMC4xNjI1LCAtMC4xNTYyNSwgLTAuMTQzNzUsIC0wLjEyNzUsIC0wLjExMjUiLCBcCi0gICAgICAgICAgIi0wLjIwNSwgLTAuMTkzNzUsIC0wLjE4MTI1LCAtMC4xNjg3NSwgLTAuMTU2MjUsIC0wLjE0LCAtMC4xMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMjE3NSwgLTAuMjA2MjUsIC0wLjE5Mzc1LCAtMC4xODEyNSwgLTAuMTc1LCAtMC4xNTg3NSwgLTAuMTQzNzUiLCBcCi0gICAgICAgICAgIi0wLjIzLCAtMC4yMTg3NSwgLTAuMjA2MjUsIC0wLjIsIC0wLjE4NzUsIC0wLjE3MTI1LCAtMC4xNTYyNSIsIFwKLSAgICAgICAgICAiLTAuMjUyNSwgLTAuMjQxMjUsIC0wLjIyODc1LCAtMC4yMTYyNSwgLTAuMjEsIC0wLjE5Mzc1LCAtMC4xNzg3NSIsIFwKLSAgICAgICAgICAiLTAuMjY3NSwgLTAuMjU2MjUsIC0wLjI0Mzc1LCAtMC4yMzc1LCAtMC4yMjUsIC0wLjIwODc1LCAtMC4yIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDc1LCAtMC4wNTc1LCAtMC4wNDUsIC0wLjAzMjUsIC0wLjAxMzc1LCAwLjAwODc1LCAwLjAzIiwgXAotICAgICAgICAgICItMC4wODYyNSwgLTAuMDc1LCAtMC4wNTYyNSwgLTAuMDQzNzUsIC0wLjAyNSwgLTAuMDAyNSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDk4NzUsIC0wLjA4NzUsIC0wLjA2ODc1LCAtMC4wNTYyNSwgLTAuMDQzNzUsIC0wLjAxNSwgMCIsIFwKLSAgICAgICAgICAiLTAuMTExMjUsIC0wLjEsIC0wLjA4NzUsIC0wLjA2ODc1LCAtMC4wNTYyNSwgLTAuMDMzNzUsIC0wLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjEyMzc1LCAtMC4xMTI1LCAtMC4xLCAtMC4wODEyNSwgLTAuMDY4NzUsIC0wLjA0NjI1LCAtMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjE0LCAtMC4xMjg3NSwgLTAuMTE2MjUsIC0wLjEwMzc1LCAtMC4wODUsIC0wLjA2MjUsIC0wLjA0MTI1IiwgXAotICAgICAgICAgICItMC4xNTUsIC0wLjE0Mzc1LCAtMC4xMzEyNSwgLTAuMTE4NzUsIC0wLjEsIC0wLjA3NzUsIC0wLjA1NjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJFJlJOIjsKLSAgICAgIHNkZl9jb25kIDogIkVfRVFfMV9BTl9STl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI2ODc1LCAwLjI1NzUsIDAuMjQ1LCAwLjIyNjI1LCAwLjIyLCAwLjIwMzc1LCAwLjE4ODc1IiwgXAotICAgICAgICAgICIwLjI4LCAwLjI2ODc1LCAwLjI1NjI1LCAwLjI0Mzc1LCAwLjIzMTI1LCAwLjIxNSwgMC4yIiwgXAotICAgICAgICAgICIwLjI5ODc1LCAwLjI4NzUsIDAuMjY4NzUsIDAuMjU2MjUsIDAuMjQzNzUsIDAuMjI3NSwgMC4yMTI1IiwgXAotICAgICAgICAgICIwLjMxMTI1LCAwLjMsIDAuMjgxMjUsIDAuMjY4NzUsIDAuMjU2MjUsIDAuMjQsIDAuMjMxMjUiLCBcCi0gICAgICAgICAgIjAuMzIzNzUsIDAuMzEyNSwgMC4zLCAwLjI4NzUsIDAuMjc1LCAwLjI1ODc1LCAwLjI0Mzc1IiwgXAotICAgICAgICAgICIwLjM0NjI1LCAwLjMzNSwgMC4zMTYyNSwgMC4zMDM3NSwgMC4yOTc1LCAwLjI3NSwgMC4yNjYyNSIsIFwKLSAgICAgICAgICAiMC4zNjEyNSwgMC4zNSwgMC4zMzc1LCAwLjMyNSwgMC4zMTI1LCAwLjI5NjI1LCAwLjI4MTI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTYyNSwgMC4xNTEyNSwgMC4xMzI1LCAwLjEyLCAwLjEwMTI1LCAwLjA3ODc1LCAwLjA1NzUiLCBcCi0gICAgICAgICAgIjAuMTczNzUsIDAuMTYyNSwgMC4xNDM3NSwgMC4xMzEyNSwgMC4xMTI1LCAwLjA5LCAwLjA2ODc1IiwgXAotICAgICAgICAgICIwLjE4NjI1LCAwLjE3NSwgMC4xNjI1LCAwLjE0Mzc1LCAwLjEzMTI1LCAwLjEwMjUsIDAuMDgxMjUiLCBcCi0gICAgICAgICAgIjAuMjA1LCAwLjE5Mzc1LCAwLjE3NSwgMC4xNTYyNSwgMC4xNDM3NSwgMC4xMTUsIDAuMDkzNzUiLCBcCi0gICAgICAgICAgIjAuMjE3NSwgMC4yMDYyNSwgMC4xODc1LCAwLjE2ODc1LCAwLjE1NjI1LCAwLjEyNzUsIDAuMTA2MjUiLCBcCi0gICAgICAgICAgIjAuMjMzNzUsIDAuMjIyNSwgMC4yMDM3NSwgMC4xOTEyNSwgMC4xNzI1LCAwLjE1LCAwLjEyODc1IiwgXAotICAgICAgICAgICIwLjI0ODc1LCAwLjIzNzUsIDAuMjE4NzUsIDAuMjA2MjUsIDAuMTg3NSwgMC4xNjUsIDAuMTM3NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxMjU4MzQ7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxMjU4MzQ7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxMjU3NDQ7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA0MzczLCAwLjAwNDM2MSwgMC4wMDQzNTMsIDAuMDA0MzQ3LCAwLjAwNDM0NSwgMC4wMDQzNDIsIDAuMDA0MzQxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA1MTA0LCAwLjAwNTA4NSwgMC4wMDUwNzIsIDAuMDA1MDY1LCAwLjAwNTA1OSwgMC4wMDUwNTQsIDAuMDA1MDUyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlJOIjsKLSAgICAgIHNkZl9jb25kIDogIlJOID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjEwNjI1LCAtMC4wODg3NSwgLTAuMDc2MjUsIC0wLjA2Mzc1LCAtMC4wNDUsIC0wLjAyMjUsIC0wLjAwMTI1IiwgXAotICAgICAgICAgICItMC4xMTc1LCAtMC4xLCAtMC4wODc1LCAtMC4wNzUsIC0wLjA1NjI1LCAtMC4wMzM3NSwgLTAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMTMsIC0wLjExODc1LCAtMC4xLCAtMC4wODc1LCAtMC4wNjg3NSwgLTAuMDQ2MjUsIC0wLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMTQyNSwgLTAuMTMxMjUsIC0wLjExMjUsIC0wLjEsIC0wLjA4NzUsIC0wLjA1ODc1LCAtMC4wMzc1IiwgXAotICAgICAgICAgICItMC4xNTUsIC0wLjE0Mzc1LCAtMC4xMzEyNSwgLTAuMTEyNSwgLTAuMSwgLTAuMDcxMjUsIC0wLjA1NjI1IiwgXAotICAgICAgICAgICItMC4xNzc1LCAtMC4xNjYyNSwgLTAuMTQ3NSwgLTAuMTM1LCAtMC4xMjI1LCAtMC4wOTM3NSwgLTAuMDcyNSIsIFwKLSAgICAgICAgICAiLTAuMTk4NzUsIC0wLjE4MTI1LCAtMC4xNjg3NSwgLTAuMTU2MjUsIC0wLjEzNzUsIC0wLjExNSwgLTAuMDkzNzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4xLCAtMC4wODg3NSwgLTAuMDc2MjUsIC0wLjA2Mzc1LCAtMC4wNDUsIC0wLjAyMjUsIC0wLjAwMTI1IiwgXAotICAgICAgICAgICItMC4xMTc1LCAtMC4xLCAtMC4wODc1LCAtMC4wNzUsIC0wLjA1NjI1LCAtMC4wMzM3NSwgLTAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMTMsIC0wLjExODc1LCAtMC4xMDYyNSwgLTAuMDg3NSwgLTAuMDc1LCAtMC4wNTI1LCAtMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMTQyNSwgLTAuMTMxMjUsIC0wLjExODc1LCAtMC4xLCAtMC4wODc1LCAtMC4wNjUsIC0wLjA0Mzc1IiwgXAotICAgICAgICAgICItMC4xNTUsIC0wLjE0Mzc1LCAtMC4xMzEyNSwgLTAuMTE4NzUsIC0wLjEsIC0wLjA3NzUsIC0wLjA1NjI1IiwgXAotICAgICAgICAgICItMC4xNzc1LCAtMC4xNjYyNSwgLTAuMTQ3NSwgLTAuMTM1LCAtMC4xMjI1LCAtMC4wOTM3NSwgLTAuMDc4NzUiLCBcCi0gICAgICAgICAgIi0wLjE5MjUsIC0wLjE4MTI1LCAtMC4xNjI1LCAtMC4xNSwgLTAuMTM3NSwgLTAuMTA4NzUsIC0wLjA4NzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlJOIjsKLSAgICAgIHNkZl9jb25kIDogIlJOID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMxMjUsIDAuMzAxMjUsIDAuMjg4NzUsIDAuMjc2MjUsIDAuMjYzNzUsIDAuMjQ3NSwgMC4yMzI1IiwgXAotICAgICAgICAgICIwLjMzLCAwLjMxMjUsIDAuMywgMC4yODc1LCAwLjI3NSwgMC4yNTg3NSwgMC4yNDM3NSIsIFwKLSAgICAgICAgICAiMC4zNDI1LCAwLjMzMTI1LCAwLjMxMjUsIDAuMywgMC4yODc1LCAwLjI3MTI1LCAwLjI2MjUiLCBcCi0gICAgICAgICAgIjAuMzU1LCAwLjM0Mzc1LCAwLjMzMTI1LCAwLjMxODc1LCAwLjMwNjI1LCAwLjI5LCAwLjI3NSIsIFwKLSAgICAgICAgICAiMC4zNzM3NSwgMC4zNjI1LCAwLjM0Mzc1LCAwLjMzMTI1LCAwLjMxODc1LCAwLjMwMjUsIDAuMjg3NSIsIFwKLSAgICAgICAgICAiMC4zOTYyNSwgMC4zNzg3NSwgMC4zNjYyNSwgMC4zNTM3NSwgMC4zNDEyNSwgMC4zMjUsIDAuMzEiLCBcCi0gICAgICAgICAgIjAuNDExMjUsIDAuNCwgMC4zODEyNSwgMC4zNjg3NSwgMC4zNTYyNSwgMC4zNCwgMC4zMzEyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE4NzUsIDAuMTc2MjUsIDAuMTYzNzUsIDAuMTUxMjUsIDAuMTM4NzUsIDAuMTIyNSwgMC4xMDc1IiwgXAotICAgICAgICAgICIwLjE5MjUsIDAuMTgxMjUsIDAuMTc1LCAwLjE2MjUsIDAuMTUsIDAuMTMzNzUsIDAuMTE4NzUiLCBcCi0gICAgICAgICAgIjAuMjA1LCAwLjIsIDAuMTg3NSwgMC4xNzUsIDAuMTYyNSwgMC4xNDYyNSwgMC4xMzEyNSIsIFwKLSAgICAgICAgICAiMC4yMTc1LCAwLjIxMjUsIDAuMiwgMC4xODc1LCAwLjE3NSwgMC4xNTg3NSwgMC4xNDM3NSIsIFwKLSAgICAgICAgICAiMC4yMzYyNSwgMC4yMjUsIDAuMjEyNSwgMC4yLCAwLjE4NzUsIDAuMTcxMjUsIDAuMTU2MjUiLCBcCi0gICAgICAgICAgIjAuMjUyNSwgMC4yNDEyNSwgMC4yMjg3NSwgMC4yMTYyNSwgMC4yMSwgMC4xOTM3NSwgMC4xNzg3NSIsIFwKLSAgICAgICAgICAiMC4yNzM3NSwgMC4yNjI1LCAwLjI1LCAwLjIzNzUsIDAuMjI1LCAwLjIwODc1LCAwLjE5Mzc1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihRKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuNTIzNzAyOwotICAgIGZ1bmN0aW9uIDogIk4zMCI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3NlbnNlIDogbm9uX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiByaXNpbmdfZWRnZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yNzc0MjMsIDAuNDA4OTksIDAuNTM3ODQxLCAwLjYyODQxMSwgMC43NzU0NjcsIDAuOTAzNiwgMS4wODQ3OSIsIFwKLSAgICAgICAgICAiMC4yODk0NzUsIDAuNDIxMTA0LCAwLjU0OTg4NiwgMC42NDA0NjQsIDAuNzg3NDE3LCAwLjkxNTYzNCwgMS4wOTkyMSIsIFwKLSAgICAgICAgICAiMC4zMDQ0NzUsIDAuNDM2MTE5LCAwLjU2MzgxOCwgMC42NTU0MjYsIDAuODAxODg0LCAwLjkyODQ3OSwgMS4xMTEwMiIsIFwKLSAgICAgICAgICAiMC4zMTk4MzIsIDAuNDUxNDY5LCAwLjU4MDEyNywgMC42NzA4NTEsIDAuODE2MTk5LCAwLjk0NTY2NiwgMS4xMjk4NCIsIFwKLSAgICAgICAgICAiMC4zMzUzMDUsIDAuNDY2OTIxLCAwLjU5NTcwNiwgMC42ODYyNzQsIDAuODMzMjI4LCAwLjk2MTQ1NCwgMS4xNDUyNSIsIFwKLSAgICAgICAgICAiMC4zNTk2NjcsIDAuNDkxMzEsIDAuNjIwMDcxLCAwLjcxMDkxNywgMC44NTYyNjQsIDAuOTg1ODcsIDEuMTY4NjEiLCBcCi0gICAgICAgICAgIjAuMzgwNjcxLCAwLjUxMjMxMiwgMC42NDEwNjYsIDAuNzMyNzQ4LCAwLjg3OTQwMiwgMS4wMDQ4OSwgMS4xODk3NCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2MTEzOSwgMC4zMTU5MTIsIDAuNTc2NTY2LCAwLjc2MTY0LCAxLjA1OTkyLCAxLjMxNjQ2LCAxLjcwMTM2IiwgXAotICAgICAgICAgICIwLjA2MTA4NSwgMC4zMTE2MzQsIDAuNTc3MjUxLCAwLjc2MTY5NiwgMS4wNjA4NSwgMS4zMTY0LCAxLjcwMzAzIiwgXAotICAgICAgICAgICIwLjA2MTA3NywgMC4zMTI2OCwgMC41NzgxNzYsIDAuNzYxNzUzLCAxLjA2NTc4LCAxLjMyODQsIDEuNzA0MjkiLCBcCi0gICAgICAgICAgIjAuMDYwOTQ5LCAwLjMxNjg0NSwgMC41NzY4MDcsIDAuNzYxNjk3LCAxLjA2NDQ1LCAxLjMyMDU5LCAxLjY5ODg1IiwgXAotICAgICAgICAgICIwLjA2MTA4NSwgMC4zMTI2NzcsIDAuNTc3NTM3LCAwLjc2MTc0NSwgMS4wNjEwNCwgMS4zMTYzNywgMS42ODQ2MSIsIFwKLSAgICAgICAgICAiMC4wNjExODMsIDAuMzEyNjgsIDAuNTc0ODUyLCAwLjc2MTUwMSwgMS4wNTk2MiwgMS4zMTQ4NywgMS42OTAzNSIsIFwKLSAgICAgICAgICAiMC4wNjExODgsIDAuMzEyNzEzLCAwLjU3MjE3MiwgMC43NjQ3NzgsIDEuMDY3MjgsIDEuMzE4NDMsIDEuNjkzMjEiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yOTU0OCwgMC40NDQ5NDcsIDAuNTkwOTU4LCAwLjY5NTU4OCwgMC44NjM2NjgsIDEuMDA4NTUsIDEuMjIwNTQiLCBcCi0gICAgICAgICAgIjAuMzA3NDQxLCAwLjQ1NjkyLCAwLjYwMjkzOSwgMC43MDcyNzUsIDAuODc1MjQ1LCAxLjAyMTE3LCAxLjIyOTgxIiwgXAotICAgICAgICAgICIwLjMyMjU1OCwgMC40NzE3MzIsIDAuNjE3OTQ2LCAwLjcyMjMzLCAwLjg5MDcwOCwgMS4wMzY1MiwgMS4yNDU0MiIsIFwKLSAgICAgICAgICAiMC4zMzc4NDcsIDAuNDg3Mjg4LCAwLjYzMzMyLCAwLjczNzY1NCwgMC45MDU0OCwgMS4wNTE0NiwgMS4yNjAyNSIsIFwKLSAgICAgICAgICAiMC4zNTMzOTEsIDAuNTAyODI4LCAwLjY0ODg0NywgMC43NTMxOCwgMC45MjE1NjYsIDEuMDY3LCAxLjI3NTk4IiwgXAotICAgICAgICAgICIwLjM3NzkyNywgMC41MjcxNzQsIDAuNjczNTUyLCAwLjc3NzY5OSwgMC45NDYwNzcsIDEuMDkxODEsIDEuMzAwMDIiLCBcCi0gICAgICAgICAgIjAuMzk5MTYzLCAwLjU0ODYxNCwgMC42OTQ3NDIsIDAuNzk4OTM4LCAwLjk2NzMyLCAxLjExMjksIDEuMzI0MjIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjM2OTIsIDAuMzQ1NjgsIDAuNjM1OTcsIDAuODQzNTI5LCAxLjE3NjYyLCAxLjQ2NDc1LCAxLjg4MzU1IiwgXAotICAgICAgICAgICIwLjA2MzgxNSwgMC4zNDU2MjksIDAuNjM1MzE2LCAwLjg0MjI1LCAxLjE3NTQ1LCAxLjQ2NDc5LCAxLjg4Mjc2IiwgXAotICAgICAgICAgICIwLjA2MzYzMSwgMC4zNDYyMjEsIDAuNjM1MDI3LCAwLjg0MjM3NywgMS4xNzY5MSwgMS40NjkwNSwgMS44ODIyNCIsIFwKLSAgICAgICAgICAiMC4wNjM4MTIsIDAuMzQ1NTI1LCAwLjYzNTM0NSwgMC44NDIyODYsIDEuMTc2MDQsIDEuNDY1NTgsIDEuODgxOTkiLCBcCi0gICAgICAgICAgIjAuMDYzODIsIDAuMzQ1NTU1LCAwLjYzNTM3NCwgMC44NDIxOCwgMS4xNzcwOCwgMS40NjUzMywgMS44Nzk5OSIsIFwKLSAgICAgICAgICAiMC4wNjM2MTksIDAuMzQ2MzIzLCAwLjYzNjA2LCAwLjg0MjMwMSwgMS4xNzY5MiwgMS40NjkxMiwgMS44ODA2NCIsIFwKLSAgICAgICAgICAiMC4wNjM2NzYsIDAuMzQ2MDI5LCAwLjYzNjExNiwgMC44NDI1NiwgMS4xNzY4NSwgMS40NjU1MywgMS44ODQ0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2MTA4LCAwLjAwNjIyLCAwLjAwNjIzMiwgMC4wMDYyMzYsIDAuMDA2MjQsIDAuMDA2MjQxLCAwLjAwNjI0IiwgXAotICAgICAgICAgICIwLjAwNjEwMywgMC4wMDYyMTUsIDAuMDA2MjI4LCAwLjAwNjIzMSwgMC4wMDYyMzQsIDAuMDA2MjM2LCAwLjAwNjIzNiIsIFwKLSAgICAgICAgICAiMC4wMDYwOTcsIDAuMDA2MjA5LCAwLjAwNjIyMSwgMC4wMDYyMjUsIDAuMDA2MjI4LCAwLjAwNjIyOSwgMC4wMDYyMyIsIFwKLSAgICAgICAgICAiMC4wMDYwOTMsIDAuMDA2MjA0LCAwLjAwNjIxNywgMC4wMDYyMiwgMC4wMDYyMjMsIDAuMDA2MjI0LCAwLjAwNjIyNiIsIFwKLSAgICAgICAgICAiMC4wMDYwOSwgMC4wMDYyMDEsIDAuMDA2MjE0LCAwLjAwNjIxNywgMC4wMDYyMiwgMC4wMDYyMjIsIDAuMDA2MjIzIiwgXAotICAgICAgICAgICIwLjAwNjA4NSwgMC4wMDYxOTYsIDAuMDA2MjA5LCAwLjAwNjIxMSwgMC4wMDYyMTUsIDAuMDA2MjE3LCAwLjAwNjIxNyIsIFwKLSAgICAgICAgICAiMC4wMDYwODIsIDAuMDA2MTkzLCAwLjAwNjIwNiwgMC4wMDYyMDksIDAuMDA2MjEzLCAwLjAwNjIxNCwgMC4wMDYyMTYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjU3NSwgMC4wMDY2ODksIDAuMDA2NzAyLCAwLjAwNjcwNywgMC4wMDY3MDksIDAuMDA2NzA5LCAwLjAwNjcxMSIsIFwKLSAgICAgICAgICAiMC4wMDY1NjksIDAuMDA2NjgzLCAwLjAwNjY5NiwgMC4wMDY3LCAwLjAwNjcwMywgMC4wMDY3MDUsIDAuMDA2NzA1IiwgXAotICAgICAgICAgICIwLjAwNjU2OSwgMC4wMDY2OCwgMC4wMDY2OTMsIDAuMDA2Njk3LCAwLjAwNjcsIDAuMDA2NzAyLCAwLjAwNjcwMiIsIFwKLSAgICAgICAgICAiMC4wMDY1NTksIDAuMDA2Njc0LCAwLjAwNjY4OCwgMC4wMDY2OTEsIDAuMDA2Njk0LCAwLjAwNjY5NSwgMC4wMDY2OTYiLCBcCi0gICAgICAgICAgIjAuMDA2NTU5LCAwLjAwNjY3MywgMC4wMDY2ODYsIDAuMDA2NjksIDAuMDA2NjkzLCAwLjAwNjY5NSwgMC4wMDY2OTQiLCBcCi0gICAgICAgICAgIjAuMDA2NTYxLCAwLjAwNjY3MiwgMC4wMDY2ODUsIDAuMDA2NjksIDAuMDA2NjkyLCAwLjAwNjY5MywgMC4wMDY2OTUiLCBcCi0gICAgICAgICAgIjAuMDA2NTY0LCAwLjAwNjY3NSwgMC4wMDY2OSwgMC4wMDY2OTIsIDAuMDA2Njk1LCAwLjAwNjY5NSwgMC4wMDY2OTgiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFFOKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuNTI5MDI3OwotICAgIGZ1bmN0aW9uIDogIlFCSU5UIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBub25fdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJpc2luZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjM0MjkxLCAwLjQ3MDgzLCAwLjU5ODUyMiwgMC42ODk3OTEsIDAuODM1NzksIDAuOTYzNzcxLCAxLjE0NjE4IiwgXAotICAgICAgICAgICIwLjM1NDk1NywgMC40ODI4MSwgMC42MTA1LCAwLjcwMTgyNSwgMC44NDc2NzksIDAuOTc1NjAxLCAxLjE1ODE1IiwgXAotICAgICAgICAgICIwLjM2OTk4MSwgMC40OTc5MDcsIDAuNjI1NjMxLCAwLjcxNjkxMiwgMC44NjI4NzYsIDAuOTkwNjg3LCAxLjE3MzI0IiwgXAotICAgICAgICAgICIwLjM4NTI2NCwgMC41MTMxNzcsIDAuNjQwODc0LCAwLjczMjE5NiwgMC44NzgwMzcsIDEuMDA1OTgsIDEuMTg4NTMiLCBcCi0gICAgICAgICAgIjAuNDAwODk2LCAwLjUyODcyMiwgMC42NTY0MjQsIDAuNzQ3NzM2LCAwLjg5MzcwOSwgMS4wMjE1MiwgMS4yMDQwNyIsIFwKLSAgICAgICAgICAiMC40MjUzNDksIDAuNTUzMjgsIDAuNjgxMDI0LCAwLjc3MjI4LCAwLjkxODI0NCwgMS4wNDYwNiwgMS4yMjg4IiwgXAotICAgICAgICAgICIwLjQ0NjU4NSwgMC41NzQ1MTMsIDAuNzAyMjIyLCAwLjc5MzQ5OSwgMC45Mzk0NjgsIDEuMDY3MywgMS4yNDk5Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU2OTk0LCAwLjMxMDk4NCwgMC41NzI0NDMsIDAuNzU5MTY3LCAxLjA1NzgyLCAxLjMxNjksIDEuNjkyNzUiLCBcCi0gICAgICAgICAgIjAuMDU3MDQ2LCAwLjMxMTAwOSwgMC41NzIzMjMsIDAuNzU3MDQxLCAxLjA1NzI5LCAxLjMxNjg4LCAxLjY4OTY2IiwgXAotICAgICAgICAgICIwLjA1NzAwNSwgMC4zMTE1NiwgMC41NzEwNjcsIDAuNzU3MTM5LCAxLjA1Nzc5LCAxLjMxOTAyLCAxLjY4OTY2IiwgXAotICAgICAgICAgICIwLjA1NzA1LCAwLjMxMDk4NywgMC41NzIzNSwgMC43NTcwNjgsIDEuMDU3MjMsIDEuMzE3MDMsIDEuNjg5NzUiLCBcCi0gICAgICAgICAgIjAuMDU3MDU2LCAwLjMxMTAxMywgMC41NzIzNjMsIDAuNzU3MTE2LCAxLjA1NzksIDEuMzE2OTcsIDEuNjg5NzQiLCBcCi0gICAgICAgICAgIjAuMDU3MDA1LCAwLjMxMTY5NSwgMC41NzI1MjQsIDAuNzU3MTM5LCAxLjA1NzgsIDEuMzE4NzYsIDEuNjg5NjYiLCBcCi0gICAgICAgICAgIjAuMDU3MDAyLCAwLjMxMTQ4MywgMC41NzI1NzEsIDAuNzU3MTQxLCAxLjA1Nzc1LCAxLjMxNjk0LCAxLjY5Mjg0Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzI5NDUyLCAwLjQ3NTM5MSwgMC42MjE1NjIsIDAuNzI1OTQ1LCAwLjg5MzAxNSwgMS4wMzkyMywgMS4yNDgwMiIsIFwKLSAgICAgICAgICAiMC4zNDE1MDIsIDAuNDg3NDcyLCAwLjYzMzYxMywgMC43Mzc5OTcsIDAuOTA1MDY0LCAxLjA1MTI4LCAxLjI2MDE1IiwgXAotICAgICAgICAgICIwLjM1NjUxLCAwLjUwMjQ3MywgMC42NDg1ODYsIDAuNzUzMDAxLCAwLjkyMDA1OSwgMS4wNjYsIDEuMjc0ODYiLCBcCi0gICAgICAgICAgIjAuMzcxODQ2LCAwLjUxNzgzNSwgMC42NjM5NDIsIDAuNzY4MzYxLCAwLjkzNTIwOCwgMS4wODE2MywgMS4yOTA1NyIsIFwKLSAgICAgICAgICAiMC4zODczMzMsIDAuNTMzMjc4LCAwLjY3OTQzNiwgMC43ODM4MiwgMC45NTA4OTIsIDEuMDk3MSwgMS4zMDYiLCBcCi0gICAgICAgICAgIjAuNDExNjc2LCAwLjU1NzY3LCAwLjcwMzc5OSwgMC44MDgyMTgsIDAuOTc1MDc5LCAxLjEyMTQ4LCAxLjMzMDMxIiwgXAotICAgICAgICAgICIwLjQzMjY4MywgMC41Nzg2NDMsIDAuNzI0NzcsIDAuODI5MTk2LCAwLjk5NjMzMSwgMS4xNDIxOSwgMS4zNTEyOCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2MDUyOSwgMC4zNDU4OTMsIDAuNjM2MTA4LCAwLjg0NDE2NSwgMS4xNzYwOSwgMS40NjY3OSwgMS44ODI1IiwgXAotICAgICAgICAgICIwLjA2MDUyNSwgMC4zNDU2OTgsIDAuNjM2MTQ2LCAwLjg0NDExNywgMS4xNzYxMSwgMS40NjY3NywgMS44ODIwMyIsIFwKLSAgICAgICAgICAiMC4wNjA1MTEsIDAuMzQ1ODY3LCAwLjYzNjIwNywgMC44NDQxMDcsIDEuMTc2MjgsIDEuNDY1NjgsIDEuODgyMzUiLCBcCi0gICAgICAgICAgIjAuMDYwNTI3LCAwLjM0NjE3MiwgMC42MzYxNzIsIDAuODQ0MTYzLCAxLjE3NTYxLCAxLjQ2Njg2LCAxLjg4MTgxIiwgXAotICAgICAgICAgICIwLjA2MDUyNCwgMC4zNDU4NTYsIDAuNjM2MTYxLCAwLjg0NDEwOSwgMS4xNzYxMSwgMS40NjY3NiwgMS44ODE2NiIsIFwKLSAgICAgICAgICAiMC4wNjA0MzYsIDAuMzQ1ODYzLCAwLjYzNTczMiwgMC44NDQxNjMsIDEuMTc1ODgsIDEuNDY2NzEsIDEuODgxOTEiLCBcCi0gICAgICAgICAgIjAuMDYwNDY4LCAwLjM0NTg3NSwgMC42MzU5ODEsIDAuODQzMzcxLCAxLjE3NTg1LCAxLjQ2NTg5LCAxLjg4MTg0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2NTc1LCAwLjAwNjY4OSwgMC4wMDY3MDIsIDAuMDA2NzA3LCAwLjAwNjcwOSwgMC4wMDY3MDksIDAuMDA2NzExIiwgXAotICAgICAgICAgICIwLjAwNjU2OSwgMC4wMDY2ODMsIDAuMDA2Njk2LCAwLjAwNjcsIDAuMDA2NzAzLCAwLjAwNjcwNSwgMC4wMDY3MDUiLCBcCi0gICAgICAgICAgIjAuMDA2NTY5LCAwLjAwNjY4LCAwLjAwNjY5MywgMC4wMDY2OTcsIDAuMDA2NywgMC4wMDY3MDIsIDAuMDA2NzAyIiwgXAotICAgICAgICAgICIwLjAwNjU1OSwgMC4wMDY2NzQsIDAuMDA2Njg4LCAwLjAwNjY5MSwgMC4wMDY2OTQsIDAuMDA2Njk1LCAwLjAwNjY5NiIsIFwKLSAgICAgICAgICAiMC4wMDY1NTksIDAuMDA2NjczLCAwLjAwNjY4NiwgMC4wMDY2OSwgMC4wMDY2OTMsIDAuMDA2Njk1LCAwLjAwNjY5NCIsIFwKLSAgICAgICAgICAiMC4wMDY1NjEsIDAuMDA2NjcyLCAwLjAwNjY4NSwgMC4wMDY2OSwgMC4wMDY2OTIsIDAuMDA2NjkzLCAwLjAwNjY5NSIsIFwKLSAgICAgICAgICAiMC4wMDY1NjQsIDAuMDA2Njc1LCAwLjAwNjY5LCAwLjAwNjY5MiwgMC4wMDY2OTUsIDAuMDA2Njk1LCAwLjAwNjY5OCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2MTA4LCAwLjAwNjIyLCAwLjAwNjIzMiwgMC4wMDYyMzYsIDAuMDA2MjQsIDAuMDA2MjQxLCAwLjAwNjI0IiwgXAotICAgICAgICAgICIwLjAwNjEwMywgMC4wMDYyMTUsIDAuMDA2MjI4LCAwLjAwNjIzMSwgMC4wMDYyMzQsIDAuMDA2MjM2LCAwLjAwNjIzNiIsIFwKLSAgICAgICAgICAiMC4wMDYwOTcsIDAuMDA2MjA5LCAwLjAwNjIyMSwgMC4wMDYyMjUsIDAuMDA2MjI4LCAwLjAwNjIyOSwgMC4wMDYyMyIsIFwKLSAgICAgICAgICAiMC4wMDYwOTMsIDAuMDA2MjA0LCAwLjAwNjIxNywgMC4wMDYyMiwgMC4wMDYyMjMsIDAuMDA2MjI0LCAwLjAwNjIyNiIsIFwKLSAgICAgICAgICAiMC4wMDYwOSwgMC4wMDYyMDEsIDAuMDA2MjE0LCAwLjAwNjIxNywgMC4wMDYyMiwgMC4wMDYyMjIsIDAuMDA2MjIzIiwgXAotICAgICAgICAgICIwLjAwNjA4NSwgMC4wMDYxOTYsIDAuMDA2MjA5LCAwLjAwNjIxMSwgMC4wMDYyMTUsIDAuMDA2MjE3LCAwLjAwNjIxNyIsIFwKLSAgICAgICAgICAiMC4wMDYwODIsIDAuMDA2MTkzLCAwLjAwNjIwNiwgMC4wMDYyMDksIDAuMDA2MjEzLCAwLjAwNjIxNCwgMC4wMDYyMTYiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFJOKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA1NzI4NTc7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNTcyNzE1OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDU3Mjg1NzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDQ4MjMsIDAuMDA0ODAzLCAwLjAwNDc5LCAwLjAwNDc4NCwgMC4wMDQ3ODMsIDAuMDA0Nzc5LCAwLjAwNDc3OSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNDc0MiwgMC4wMDQ3MjgsIDAuMDA0NzE3LCAwLjAwNDcxLCAwLjAwNDcwOCwgMC4wMDQ3MDQsIDAuMDA0NzAzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEJiFFIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9FX0VRXzAgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMjYyNSwgLTAuMjUxMjUsIC0wLjIzODc1LCAtMC4yMjYyNSwgLTAuMjIsIC0wLjIwMzc1LCAtMC4xODg3NSIsIFwKLSAgICAgICAgICAiLTAuMjczNzUsIC0wLjI2MjUsIC0wLjI1LCAtMC4yNDM3NSwgLTAuMjMxMjUsIC0wLjIxNSwgLTAuMiIsIFwKLSAgICAgICAgICAiLTAuMjkyNSwgLTAuMjgxMjUsIC0wLjI2ODc1LCAtMC4yNTYyNSwgLTAuMjQzNzUsIC0wLjIyNzUsIC0wLjIxODc1IiwgXAotICAgICAgICAgICItMC4zMDUsIC0wLjI5Mzc1LCAtMC4yODEyNSwgLTAuMjY4NzUsIC0wLjI2MjUsIC0wLjI0NjI1LCAtMC4yMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMzE3NSwgLTAuMzA2MjUsIC0wLjI5Mzc1LCAtMC4yODc1LCAtMC4yNzUsIC0wLjI1ODc1LCAtMC4yNDM3NSIsIFwKLSAgICAgICAgICAiLTAuMzQsIC0wLjMyODc1LCAtMC4zMTYyNSwgLTAuMzAzNzUsIC0wLjI5MTI1LCAtMC4yODEyNSwgLTAuMjY2MjUiLCBcCi0gICAgICAgICAgIi0wLjM1NSwgLTAuMzQzNzUsIC0wLjMzMTI1LCAtMC4zMTg3NSwgLTAuMzEyNSwgLTAuMjk2MjUsIC0wLjI4MTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIkQmRSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzFfQU5fRV9FUV8xID09IDEnYjEiOwotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjA0Mzc1LCAtMC4wMzI1LCAtMC4wMiwgLTAuMDA3NSwgMC4wMTEyNSwgMC4wMzM3NSwgMC4wNTUiLCBcCi0gICAgICAgICAgIi0wLjA1NSwgLTAuMDQzNzUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgMCwgMC4wMjI1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICItMC4wNzM3NSwgLTAuMDYyNSwgLTAuMDQzNzUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgMC4wMSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDg2MjUsIC0wLjA3NSwgLTAuMDYyNSwgLTAuMDQzNzUsIC0wLjAzMTI1LCAtMC4wMDI1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjA5ODc1LCAtMC4wODc1LCAtMC4wNzUsIC0wLjA1NjI1LCAtMC4wNDM3NSwgLTAuMDIxMjUsIDAiLCBcCi0gICAgICAgICAgIi0wLjExNSwgLTAuMTAzNzUsIC0wLjA5MTI1LCAtMC4wNzI1LCAtMC4wNiwgLTAuMDM3NSwgLTAuMDE2MjUiLCBcCi0gICAgICAgICAgIi0wLjEzLCAtMC4xMTg3NSwgLTAuMTA2MjUsIC0wLjA4NzUsIC0wLjA3NSwgLTAuMDUyNSwgLTAuMDMxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEJiFFIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9FX0VRXzAgPT0gMSdiMSI7Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTQzNzUsIDAuMTI2MjUsIDAuMTEzNzUsIDAuMDk1LCAwLjA4MjUsIDAuMDUzNzUsIDAuMDMyNSIsIFwKLSAgICAgICAgICAiMC4xNTUsIDAuMTM3NSwgMC4xMjUsIDAuMTA2MjUsIDAuMDkzNzUsIDAuMDY1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjE2NzUsIDAuMTU2MjUsIDAuMTM3NSwgMC4xMjUsIDAuMTA2MjUsIDAuMDc3NSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiMC4xOCwgMC4xNjg3NSwgMC4xNSwgMC4xMzc1LCAwLjExODc1LCAwLjA5NjI1LCAwLjA3NSIsIFwKLSAgICAgICAgICAiMC4xOTI1LCAwLjE4MTI1LCAwLjE2ODc1LCAwLjE1LCAwLjEzMTI1LCAwLjEwODc1LCAwLjA4NzUiLCBcCi0gICAgICAgICAgIjAuMjA4NzUsIDAuMTk3NSwgMC4xODUsIDAuMTY2MjUsIDAuMTQ3NSwgMC4xMjUsIDAuMTAzNzUiLCBcCi0gICAgICAgICAgIjAuMjIzNzUsIDAuMjEyNSwgMC4yLCAwLjE4MTI1LCAwLjE2MjUsIDAuMTQsIDAuMTE4NzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIkQmRSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzFfQU5fRV9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMzMTI1LCAwLjMyLCAwLjMwMTI1LCAwLjI4ODc1LCAwLjI3NjI1LCAwLjI2LCAwLjI1MTI1IiwgXAotICAgICAgICAgICIwLjM0MjUsIDAuMzMxMjUsIDAuMzEyNSwgMC4zLCAwLjI4NzUsIDAuMjcxMjUsIDAuMjYyNSIsIFwKLSAgICAgICAgICAiMC4zNTUsIDAuMzQzNzUsIDAuMzMxMjUsIDAuMzE4NzUsIDAuMzA2MjUsIDAuMjksIDAuMjc1IiwgXAotICAgICAgICAgICIwLjM3Mzc1LCAwLjM2MjUsIDAuMzQzNzUsIDAuMzMxMjUsIDAuMzE4NzUsIDAuMzAyNSwgMC4yODc1IiwgXAotICAgICAgICAgICIwLjM4NjI1LCAwLjM3NSwgMC4zNTYyNSwgMC4zNDM3NSwgMC4zMzEyNSwgMC4zMTUsIDAuMzA2MjUiLCBcCi0gICAgICAgICAgIjAuNDA4NzUsIDAuMzkxMjUsIDAuMzc4NzUsIDAuMzY2MjUsIDAuMzUzNzUsIDAuMzM3NSwgMC4zMjI1IiwgXAotICAgICAgICAgICIwLjQyMzc1LCAwLjQxMjUsIDAuMzkzNzUsIDAuMzgxMjUsIDAuMzY4NzUsIDAuMzUyNSwgMC4zMzc1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBFREZGWDEgKgotICogLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChFREZGWDEpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4zMTQzMjU7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgZmYgKE4zMCxRQklOVCkgewotICAgIG5leHRfc3RhdGUgOiAiKChFIEQpICsgKCFFICghKCFOMzApKSkpIjsKLSAgICBjbG9ja2VkX29uIDogIkNLIjsKLSAgfQotICBwaW4oQ0spICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYwMTMzMzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MDEwODI7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjAxMzMzOwotICAgIGNsb2NrIDogdHJ1ZTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDI0ODgsIDAuMDAyNDc0LCAwLjAwMjQ2MywgMC4wMDI0NTQsIDAuMDAyNDQ5LCAwLjAwMjQ0NSwgMC4wMDI0NDQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDQzNTUsIDAuMDA0MzQzLCAwLjAwNDMzNSwgMC4wMDQzMywgMC4wMDQzMjksIDAuMDA0MzMxLCAwLjAwNDMzMSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQmRSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fRV9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMzI5MzM3LCAwLjM0MTAxNiwgMC4zNTY0MjMsIDAuMzcxODQyLCAwLjM4NzAyNywgMC40MTEwOTUsIDAuNDMxMDI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4xODU3NzcsIDAuMTk3MTk5LCAwLjIxMjExOSwgMC4yMjY5ODksIDAuMjQxNDQyLCAwLjI2MzQ4NywgMC4yODE1ODEiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEQpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDU4NjEwOTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA1ODQzMDU7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNTg2MTA5OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjM1LCAwLjAwMjM0LCAwLjAwMjMzNiwgMC4wMDIzMzIsIDAuMDAyMzI5LCAwLjAwMjMyNywgMC4wMDIzMjQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDM4ODcsIDAuMDAzODgyLCAwLjAwMzg4LCAwLjAwMzg3OCwgMC4wMDM4NzcsIDAuMDAzODc0LCAwLjAwMzg3MyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJFIjsKLSAgICAgIHNkZl9jb25kIDogIkUgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMTUsIC0wLjEzODc1LCAtMC4xMzI1LCAtMC4xMiwgLTAuMTEzNzUsIC0wLjA5NzUsIC0wLjA4ODc1IiwgXAotICAgICAgICAgICItMC4xNjEyNSwgLTAuMTUsIC0wLjE0Mzc1LCAtMC4xMzEyNSwgLTAuMTI1LCAtMC4xMDg3NSwgLTAuMSIsIFwKLSAgICAgICAgICAiLTAuMTczNzUsIC0wLjE2MjUsIC0wLjE1NjI1LCAtMC4xNDM3NSwgLTAuMTM3NSwgLTAuMTIxMjUsIC0wLjExMjUiLCBcCi0gICAgICAgICAgIi0wLjE4NjI1LCAtMC4xODEyNSwgLTAuMTY4NzUsIC0wLjE1NjI1LCAtMC4xNSwgLTAuMTQsIC0wLjEyNSIsIFwKLSAgICAgICAgICAiLTAuMjA1LCAtMC4xOTM3NSwgLTAuMTgxMjUsIC0wLjE3NSwgLTAuMTYyNSwgLTAuMTUyNSwgLTAuMTQzNzUiLCBcCi0gICAgICAgICAgIi0wLjIyMTI1LCAtMC4yMTYyNSwgLTAuMjAzNzUsIC0wLjE5NzUsIC0wLjE4NSwgLTAuMTc1LCAtMC4xNjYyNSIsIFwKLSAgICAgICAgICAiLTAuMjQyNSwgLTAuMjMxMjUsIC0wLjIyNSwgLTAuMjEyNSwgLTAuMjA2MjUsIC0wLjE5LCAtMC4xODEyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAzNzUsIC0wLjAyNjI1LCAtMC4wMDc1LCAwLjAwNSwgMC4wMTEyNSwgMC4wMzM3NSwgMC4wNDg3NSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjAzNzUsIC0wLjAyNSwgLTAuMDA2MjUsIDAsIDAuMDIyNSwgMC4wMzc1IiwgXAotICAgICAgICAgICItMC4wNjEyNSwgLTAuMDUsIC0wLjAzNzUsIC0wLjAyNSwgLTAuMDEyNSwgMC4wMSwgMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjA3Mzc1LCAtMC4wNjI1LCAtMC4wNSwgLTAuMDM3NSwgLTAuMDI1LCAtMC4wMDI1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjA4NjI1LCAtMC4wNzUsIC0wLjA2MjUsIC0wLjA1LCAtMC4wMzc1LCAtMC4wMTUsIDAiLCBcCi0gICAgICAgICAgIi0wLjEwMjUsIC0wLjA5MTI1LCAtMC4wNzg3NSwgLTAuMDY2MjUsIC0wLjA1Mzc1LCAtMC4wMzc1LCAtMC4wMjI1IiwgXAotICAgICAgICAgICItMC4xMTc1LCAtMC4xMDYyNSwgLTAuMDkzNzUsIC0wLjA4MTI1LCAtMC4wNjg3NSwgLTAuMDUyNSwgLTAuMDM3NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiRSI7Ci0gICAgICBzZGZfY29uZCA6ICJFID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIzMTI1LCAwLjIyLCAwLjIwMTI1LCAwLjE4ODc1LCAwLjE3NjI1LCAwLjE2LCAwLjE1MTI1IiwgXAotICAgICAgICAgICIwLjI0MjUsIDAuMjMxMjUsIDAuMjE4NzUsIDAuMiwgMC4xODc1LCAwLjE3MTI1LCAwLjE2MjUiLCBcCi0gICAgICAgICAgIjAuMjU1LCAwLjI0Mzc1LCAwLjIzMTI1LCAwLjIxODc1LCAwLjIwNjI1LCAwLjE5LCAwLjE3NSIsIFwKLSAgICAgICAgICAiMC4yNzM3NSwgMC4yNTYyNSwgMC4yNDM3NSwgMC4yMzEyNSwgMC4yMTg3NSwgMC4yMDI1LCAwLjE4NzUiLCBcCi0gICAgICAgICAgIjAuMjg2MjUsIDAuMjY4NzUsIDAuMjU2MjUsIDAuMjQzNzUsIDAuMjMxMjUsIDAuMjE1LCAwLjIiLCBcCi0gICAgICAgICAgIjAuMzA4NzUsIDAuMjkxMjUsIDAuMjc4NzUsIDAuMjY2MjUsIDAuMjUzNzUsIDAuMjM3NSwgMC4yMjI1IiwgXAotICAgICAgICAgICIwLjMyMzc1LCAwLjMxMjUsIDAuMywgMC4yODEyNSwgMC4yNzUsIDAuMjU4NzUsIDAuMjQzNzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNjI1LCAwLjE1MTI1LCAwLjEzMjUsIDAuMTIsIDAuMTAxMjUsIDAuMDc4NzUsIDAuMDU3NSIsIFwKLSAgICAgICAgICAiMC4xNzM3NSwgMC4xNjI1LCAwLjE0Mzc1LCAwLjEzMTI1LCAwLjExMjUsIDAuMDksIDAuMDY4NzUiLCBcCi0gICAgICAgICAgIjAuMTg2MjUsIDAuMTc1LCAwLjE2MjUsIDAuMTQzNzUsIDAuMTI1LCAwLjEwMjUsIDAuMDgxMjUiLCBcCi0gICAgICAgICAgIjAuMTk4NzUsIDAuMTg3NSwgMC4xNzUsIDAuMTU2MjUsIDAuMTM3NSwgMC4xMTUsIDAuMDkzNzUiLCBcCi0gICAgICAgICAgIjAuMjExMjUsIDAuMiwgMC4xODEyNSwgMC4xNjg3NSwgMC4xNSwgMC4xMjc1LCAwLjEwNjI1IiwgXAotICAgICAgICAgICIwLjIzMzc1LCAwLjIyMjUsIDAuMjAzNzUsIDAuMTg1LCAwLjE3MjUsIDAuMTUsIDAuMTI4NzUiLCBcCi0gICAgICAgICAgIjAuMjQ4NzUsIDAuMjM3NSwgMC4yMTg3NSwgMC4yMDYyNSwgMC4xODc1LCAwLjE2NSwgMC4xNDM3NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxMzMzODU7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxMzMzMTY7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxMzMzODU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzNzQxLCAwLjAwMzczMiwgMC4wMDM3MjYsIDAuMDAzNzIzLCAwLjAwMzcyMiwgMC4wMDM3MjEsIDAuMDAzNzIxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA0NjY2LCAwLjAwNDY1LCAwLjAwNDYzNywgMC4wMDQ2MywgMC4wMDQ2MjUsIDAuMDA0NjE5LCAwLjAwNDYxNiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRCI7Ci0gICAgICBzZGZfY29uZCA6ICJEID09IDEnYjAiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjE0Mzc1LCAtMC4xMzI1LCAtMC4xMiwgLTAuMTAxMjUsIC0wLjA4ODc1LCAtMC4wNjYyNSwgLTAuMDQ1IiwgXAotICAgICAgICAgICItMC4xNTUsIC0wLjE0Mzc1LCAtMC4xMzEyNSwgLTAuMTEyNSwgLTAuMSwgLTAuMDc3NSwgLTAuMDU2MjUiLCBcCi0gICAgICAgICAgIi0wLjE3Mzc1LCAtMC4xNjI1LCAtMC4xNDM3NSwgLTAuMTMxMjUsIC0wLjExMjUsIC0wLjA5LCAtMC4wNzUiLCBcCi0gICAgICAgICAgIi0wLjE4NjI1LCAtMC4xNzUsIC0wLjE2MjUsIC0wLjE0Mzc1LCAtMC4xMzEyNSwgLTAuMTA4NzUsIC0wLjA4NzUiLCBcCi0gICAgICAgICAgIi0wLjIwNSwgLTAuMTg3NSwgLTAuMTc1LCAtMC4xNTYyNSwgLTAuMTQzNzUsIC0wLjEyMTI1LCAtMC4xIiwgXAotICAgICAgICAgICItMC4yMjEyNSwgLTAuMjEsIC0wLjE5NzUsIC0wLjE3ODc1LCAtMC4xNjYyNSwgLTAuMTQzNzUsIC0wLjEyMjUiLCBcCi0gICAgICAgICAgIi0wLjI0MjUsIC0wLjIzMTI1LCAtMC4yMTI1LCAtMC4yLCAtMC4xODEyNSwgLTAuMTU4NzUsIC0wLjE0Mzc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMCwgMC4wMTEyNSwgMC4wMjM3NSwgMC4wMzYyNSwgMC4wNDg3NSwgMC4wNjUsIDAuMDgiLCBcCi0gICAgICAgICAgIi0wLjAxMTI1LCAwLCAwLjAxMjUsIDAuMDI1LCAwLjAzNzUsIDAuMDYsIDAuMDc1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLjAxMjUsIDAuMDI1LCAwLjA0MTI1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLjAwNjI1LCAwLjAyODc1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA0Mzc1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLjAxLCAwLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDc3NSwgLTAuMDY2MjUsIC0wLjA1Mzc1LCAtMC4wNDEyNSwgLTAuMDI4NzUsIC0wLjAxMjUsIDAuMDA4NzUiLCBcCi0gICAgICAgICAgIi0wLjA5MjUsIC0wLjA4MTI1LCAtMC4wNjg3NSwgLTAuMDU2MjUsIC0wLjA0Mzc1LCAtMC4wMjc1LCAtMC4wMTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIkQiOwotICAgICAgc2RmX2NvbmQgOiAiRCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4xNjg3NSwgLTAuMTU3NSwgLTAuMTQ1LCAtMC4xMzI1LCAtMC4xMjYyNSwgLTAuMTEsIC0wLjEwMTI1IiwgXAotICAgICAgICAgICItMC4xOCwgLTAuMTY4NzUsIC0wLjE1NjI1LCAtMC4xNDM3NSwgLTAuMTM3NSwgLTAuMTIxMjUsIC0wLjExMjUiLCBcCi0gICAgICAgICAgIi0wLjE5MjUsIC0wLjE4MTI1LCAtMC4xNjg3NSwgLTAuMTU2MjUsIC0wLjE1LCAtMC4xMzM3NSwgLTAuMTI1IiwgXAotICAgICAgICAgICItMC4yMDUsIC0wLjE5Mzc1LCAtMC4xODEyNSwgLTAuMTc1LCAtMC4xNjI1LCAtMC4xNDYyNSwgLTAuMTM3NSIsIFwKLSAgICAgICAgICAiLTAuMjE3NSwgLTAuMjA2MjUsIC0wLjE5Mzc1LCAtMC4xODc1LCAtMC4xNzUsIC0wLjE2NSwgLTAuMTUiLCBcCi0gICAgICAgICAgIi0wLjI0LCAtMC4yMjg3NSwgLTAuMjE2MjUsIC0wLjIxLCAtMC4xOTc1LCAtMC4xODc1LCAtMC4xNzI1IiwgXAotICAgICAgICAgICItMC4yNjEyNSwgLTAuMjUsIC0wLjIzNzUsIC0wLjIyNSwgLTAuMjE4NzUsIC0wLjIwMjUsIC0wLjE5Mzc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjUsIDAuMDM2MjUsIDAuMDQ4NzUsIDAuMDYxMjUsIDAuMDczNzUsIDAuMDk2MjUsIDAuMTExMjUiLCBcCi0gICAgICAgICAgIjAuMDEzNzUsIDAuMDI1LCAwLjAzNzUsIDAuMDUsIDAuMDYyNSwgMC4wODUsIDAuMSIsIFwKLSAgICAgICAgICAiMC4wMDEyNSwgMC4wMDYyNSwgMC4wMjUsIDAuMDM3NSwgMC4wNSwgMC4wNzI1LCAwLjA4NzUiLCBcCi0gICAgICAgICAgIi0wLjAxMTI1LCAwLCAwLjAxMjUsIDAuMDI1LCAwLjAzNzUsIDAuMDYsIDAuMDc1IiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDEyNSwgMCwgMC4wMTI1LCAwLjAyNSwgMC4wNDc1LCAwLjA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA0LCAtMC4wMjg3NSwgLTAuMDE2MjUsIC0wLjAwMzc1LCAwLjAwODc1LCAwLjAyNSwgMC4wNDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNDM3NSwgLTAuMDMxMjUsIC0wLjAxODc1LCAtMC4wMDYyNSwgMC4wMTYyNSwgMC4wMzEyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUQiOwotICAgICAgc2RmX2NvbmQgOiAiRCA9PSAxJ2IwIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xODc1LCAwLjE3NjI1LCAwLjE1NzUsIDAuMTM4NzUsIDAuMTI2MjUsIDAuMTAzNzUsIDAuMDgyNSIsIFwKLSAgICAgICAgICAiMC4xOTg3NSwgMC4xODc1LCAwLjE2ODc1LCAwLjE1NjI1LCAwLjEzNzUsIDAuMTE1LCAwLjA5Mzc1IiwgXAotICAgICAgICAgICIwLjIxMTI1LCAwLjIsIDAuMTg3NSwgMC4xNjg3NSwgMC4xNTYyNSwgMC4xMjc1LCAwLjEwNjI1IiwgXAotICAgICAgICAgICIwLjIzLCAwLjIxODc1LCAwLjIsIDAuMTgxMjUsIDAuMTY4NzUsIDAuMTQ2MjUsIDAuMTI1IiwgXAotICAgICAgICAgICIwLjI0MjUsIDAuMjMxMjUsIDAuMjEyNSwgMC4yLCAwLjE4MTI1LCAwLjE1ODc1LCAwLjEzNzUiLCBcCi0gICAgICAgICAgIjAuMjY1LCAwLjI1Mzc1LCAwLjIzNSwgMC4yMjI1LCAwLjIwMzc1LCAwLjE4MTI1LCAwLjE2IiwgXAotICAgICAgICAgICIwLjI4LCAwLjI2ODc1LCAwLjI1NjI1LCAwLjIzNzUsIDAuMjI1LCAwLjE5NjI1LCAwLjE3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEyNSwgMC4xMiwgMC4xMDc1LCAwLjA5NSwgMC4wODg3NSwgMC4wNzI1LCAwLjA2Mzc1IiwgXAotICAgICAgICAgICIwLjE0MjUsIDAuMTMxMjUsIDAuMTE4NzUsIDAuMTA2MjUsIDAuMSwgMC4wODM3NSwgMC4wNzUiLCBcCi0gICAgICAgICAgIjAuMTU1LCAwLjE0Mzc1LCAwLjEzMTI1LCAwLjEyNSwgMC4xMTI1LCAwLjEwMjUsIDAuMDg3NSIsIFwKLSAgICAgICAgICAiMC4xNjc1LCAwLjE2MjUsIDAuMTUsIDAuMTM3NSwgMC4xMzEyNSwgMC4xMTUsIDAuMTA2MjUiLCBcCi0gICAgICAgICAgIjAuMTg2MjUsIDAuMTc1LCAwLjE2MjUsIDAuMTU2MjUsIDAuMTQzNzUsIDAuMTMzNzUsIDAuMTE4NzUiLCBcCi0gICAgICAgICAgIjAuMjA4NzUsIDAuMTk3NSwgMC4xODUsIDAuMTcyNSwgMC4xNjYyNSwgMC4xNSwgMC4xNDEyNSIsIFwKLSAgICAgICAgICAiMC4yMjM3NSwgMC4yMTI1LCAwLjIsIDAuMTkzNzUsIDAuMTgxMjUsIDAuMTcxMjUsIDAuMTU2MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIkQiOwotICAgICAgc2RmX2NvbmQgOiAiRCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMTg3NSwgMC4yMDEyNSwgMC4xODg3NSwgMC4xNzYyNSwgMC4xNjM3NSwgMC4xNDc1LCAwLjEzMjUiLCBcCi0gICAgICAgICAgIjAuMjMsIDAuMjEyNSwgMC4yLCAwLjE4NzUsIDAuMTc1LCAwLjE1ODc1LCAwLjE0Mzc1IiwgXAotICAgICAgICAgICIwLjI0MjUsIDAuMjI1LCAwLjIxMjUsIDAuMiwgMC4xODc1LCAwLjE3MTI1LCAwLjE1NjI1IiwgXAotICAgICAgICAgICIwLjI1NSwgMC4yNDM3NSwgMC4yMjUsIDAuMjEyNSwgMC4yLCAwLjE4Mzc1LCAwLjE3NSIsIFwKLSAgICAgICAgICAiMC4yNjc1LCAwLjI1NjI1LCAwLjIzNzUsIDAuMjI1LCAwLjIxMjUsIDAuMTk2MjUsIDAuMTg3NSIsIFwKLSAgICAgICAgICAiMC4yOSwgMC4yNzg3NSwgMC4yNiwgMC4yNDc1LCAwLjIzNSwgMC4yMTg3NSwgMC4yMSIsIFwKLSAgICAgICAgICAiMC4zMTEyNSwgMC4yOTM3NSwgMC4yODEyNSwgMC4yNjg3NSwgMC4yNTYyNSwgMC4yNCwgMC4yMjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTYyNSwgMC4wNDUsIDAuMDI2MjUsIDAuMDEzNzUsIDAuMDAxMjUsIC0wLjAyMTI1LCAtMC4wMzYyNSIsIFwKLSAgICAgICAgICAiMC4wNjc1LCAwLjA1NjI1LCAwLjAzNzUsIDAuMDI1LCAwLjAxMjUsIC0wLjAxLCAtMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMDgsIDAuMDY4NzUsIDAuMDU2MjUsIDAuMDM3NSwgMC4wMjUsIDAuMDAyNSwgLTAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4wOTg3NSwgMC4wODEyNSwgMC4wNjg3NSwgMC4wNTYyNSwgMC4wMzc1LCAwLjAxNSwgMCIsIFwKLSAgICAgICAgICAiMC4xMTEyNSwgMC4xLCAwLjA4MTI1LCAwLjA2ODc1LCAwLjA1LCAwLjAzMzc1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMTMzNzUsIDAuMTE2MjUsIDAuMTAzNzUsIDAuMDkxMjUsIDAuMDcyNSwgMC4wNSwgMC4wMzUiLCBcCi0gICAgICAgICAgIjAuMTQ4NzUsIDAuMTM3NSwgMC4xMjUsIDAuMTA2MjUsIDAuMDkzNzUsIDAuMDcxMjUsIDAuMDUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFEpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4xMzQ1MjY7Ci0gICAgZnVuY3Rpb24gOiAiTjMwIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBub25fdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJpc2luZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yNzEwMjgsIDAuMzEzOTg1LCAwLjU1NjkxNSwgMC43NzE1NTgsIDEuMDU1NTIsIDEuNjI3MjYsIDEuOTg1MzYiLCBcCi0gICAgICAgICAgIjAuMjgyNTYzLCAwLjMyNTYwOCwgMC41Njg5MTMsIDAuNzgzNDk1LCAxLjA2ODY3LCAxLjY0MDQ1LCAxLjk5NzIxIiwgXAotICAgICAgICAgICIwLjI5ODE1NCwgMC4zNDExNDUsIDAuNTg0NTY3LCAwLjc5ODM2OSwgMS4wODMwMSwgMS42NTQ2MiwgMi4wMTI5MiIsIFwKLSAgICAgICAgICAiMC4zMTM0OTIsIDAuMzU2NDg1LCAwLjU5OTgxNywgMC44MTQzMzUsIDEuMTAwMTYsIDEuNjY5ODgsIDIuMDI4NDkiLCBcCi0gICAgICAgICAgIjAuMzI4NDcxLCAwLjM3MTQ4MSwgMC42MTUzMjUsIDAuODI5MDI5LCAxLjExMzA5LCAxLjY4NDksIDIuMDQyNjEiLCBcCi0gICAgICAgICAgIjAuMzUyMzAyLCAwLjM5NTMxMywgMC42Mzg2ODksIDAuODUyODM5LCAxLjEzODU5LCAxLjcwODc0LCAyLjA2NzMzIiwgXAotICAgICAgICAgICIwLjM3MjAyNCwgMC40MTUwMzcsIDAuNjU4Mzg2LCAwLjg3MjUwNywgMS4xNTgyNSwgMS43Mjg0OSwgMi4wODcxNSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNjIxOCwgMC4yNDkwNDEsIDAuNzQyMzI4LCAxLjE3NDM2LCAxLjc2MDgsIDIuOTQ4MywgMy42NTY5NyIsIFwKLSAgICAgICAgICAiMC4xNjIxNTksIDAuMjQ4OTYxLCAwLjc0MDEwMSwgMS4xODMzOSwgMS43NzUwMywgMi45NDA2NCwgMy42ODAzNCIsIFwKLSAgICAgICAgICAiMC4xNjQyOSwgMC4yNDg5NTMsIDAuNzM3NDUzLCAxLjE3NDMsIDEuNzc1MDUsIDIuOTQ4MjMsIDMuNjc5ODUiLCBcCi0gICAgICAgICAgIjAuMTYyMDYsIDAuMjQ4OTYsIDAuNzM5NDUxLCAxLjE4MzksIDEuNzY5MTUsIDIuOTQ4MTEsIDMuNjc5NDEiLCBcCi0gICAgICAgICAgIjAuMTYyMTU0LCAwLjI1MDE3OCwgMC43NDU5MzIsIDEuMTgzNzIsIDEuNzU5MDUsIDIuOTQ4MTEsIDMuNjgwNzEiLCBcCi0gICAgICAgICAgIjAuMTYyMTE2LCAwLjI0ODk1NSwgMC43Mzg1NSwgMS4xNzUzMywgMS43Njk1NCwgMi45NDgxLCAzLjY3OTI5IiwgXAotICAgICAgICAgICIwLjE2MjEyLCAwLjI0ODk1NiwgMC43Mzg5MTgsIDEuMTcyODEsIDEuNzcxNDQsIDIuOTQ4MDksIDMuNjc4OTgiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzA5MjYzLCAwLjM1OTA2MywgMC42MzkzMjksIDAuODg1ODg2LCAxLjIxNTk1LCAxLjg3OTksIDIuMjkzNTYiLCBcCi0gICAgICAgICAgIjAuMzIwOTgzLCAwLjM3MDc3MywgMC42NTEwNTksIDAuODk3NjU0LCAxLjIyNzQxLCAxLjg5MjA5LCAyLjMwNTIxIiwgXAotICAgICAgICAgICIwLjMzNjM4NSwgMC4zODYxNjcsIDAuNjY2NDAzLCAwLjkxMzQ0MSwgMS4yNDM2LCAxLjkwNzQyLCAyLjMxMzczIiwgXAotICAgICAgICAgICIwLjM1MTc3MywgMC40MDE1NzMsIDAuNjgxNzk5LCAwLjkyODQ4MiwgMS4yNTg0MywgMS45MjI0MSwgMi4zMzYwNyIsIFwKLSAgICAgICAgICAiMC4zNjY5OTQsIDAuNDE2NzcyLCAwLjY5NzEwOSwgMC45NDM5MTgsIDEuMjc0MTMsIDEuOTM4MDUsIDIuMzUxMzgiLCBcCi0gICAgICAgICAgIjAuMzkxMDI0LCAwLjQ0MDgyMywgMC43MjEwNjUsIDAuOTY3Njc2LCAxLjI5NzY4LCAxLjk2MTg2LCAyLjM3NTMyIiwgXAotICAgICAgICAgICIwLjQxMDk4OCwgMC40NjA3NjksIDAuNzQwODc2LCAwLjk4NzY3MywgMS4zMTczNSwgMS45ODE5OSwgMi4zOTUyNSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xODE0NywgMC4yNzc5MDksIDAuODMyODgxLCAxLjMyMTkzLCAxLjk3NDc5LCAzLjI4ODM3LCA0LjEwNTciLCBcCi0gICAgICAgICAgIjAuMTgxNDI0LCAwLjI3NzI3OSwgMC44MzI2ODYsIDEuMzIxMDEsIDEuOTc4MzIsIDMuMjg4NDgsIDQuMTA3NjYiLCBcCi0gICAgICAgICAgIjAuMTgxNDM3LCAwLjI3NzkwOSwgMC44MzMwMSwgMS4zMjMxMSwgMS45NzgzOCwgMy4yODg4MSwgNC4xMDI2OSIsIFwKLSAgICAgICAgICAiMC4xODE0NjgsIDAuMjc3OTA4LCAwLjgzMzA2LCAxLjMyMzAxLCAxLjk3NjA5LCAzLjI4OTc2LCA0LjEwNzU4IiwgXAotICAgICAgICAgICIwLjE4MTQyOSwgMC4yNzc5MDMsIDAuODMyNjA0LCAxLjMyMzA2LCAxLjk3ODMzLCAzLjI4ODc2LCA0LjEwNzYzIiwgXAotICAgICAgICAgICIwLjE4MTQ3MywgMC4yNzc5MDksIDAuODMyOTksIDEuMzIyMDIsIDEuOTc2MDUsIDMuMjg5MzIsIDQuMTA3NTgiLCBcCi0gICAgICAgICAgIjAuMTgxNDM0LCAwLjI3NzkwOCwgMC44MzE1MTcsIDEuMzI0NjcsIDEuOTc4NjMsIDMuMjg4ODYsIDQuMTA3NDgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzNDUxLCAwLjAwMzQ1NiwgMC4wMDM0NjIsIDAuMDAzNDYzLCAwLjAwMzQ2NCwgMC4wMDM0NjQsIDAuMDAzNDY1IiwgXAotICAgICAgICAgICIwLjAwMzQ0MywgMC4wMDM0NDgsIDAuMDAzNDU1LCAwLjAwMzQ1NiwgMC4wMDM0NTYsIDAuMDAzNDU3LCAwLjAwMzQ1NyIsIFwKLSAgICAgICAgICAiMC4wMDM0MzcsIDAuMDAzNDQyLCAwLjAwMzQ0OCwgMC4wMDM0NDksIDAuMDAzNDUsIDAuMDAzNDUxLCAwLjAwMzQ1MSIsIFwKLSAgICAgICAgICAiMC4wMDM0MzMsIDAuMDAzNDM3LCAwLjAwMzQ0NCwgMC4wMDM0NDUsIDAuMDAzNDQ1LCAwLjAwMzQ0NiwgMC4wMDM0NDYiLCBcCi0gICAgICAgICAgIjAuMDAzNDI4LCAwLjAwMzQzMywgMC4wMDM0MzksIDAuMDAzNDQsIDAuMDAzNDQxLCAwLjAwMzQ0MSwgMC4wMDM0NDEiLCBcCi0gICAgICAgICAgIjAuMDAzNDI0LCAwLjAwMzQyOSwgMC4wMDM0MzUsIDAuMDAzNDM2LCAwLjAwMzQzNiwgMC4wMDM0MzcsIDAuMDAzNDM3IiwgXAotICAgICAgICAgICIwLjAwMzQyMiwgMC4wMDM0MjcsIDAuMDAzNDMzLCAwLjAwMzQzNCwgMC4wMDM0MzUsIDAuMDAzNDM1LCAwLjAwMzQzNSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzYwMSwgMC4wMDM2MDYsIDAuMDAzNjEyLCAwLjAwMzYxMywgMC4wMDM2MTQsIDAuMDAzNjE1LCAwLjAwMzYxNCIsIFwKLSAgICAgICAgICAiMC4wMDM1OTQsIDAuMDAzNTk4LCAwLjAwMzYwNSwgMC4wMDM2MDYsIDAuMDAzNjA3LCAwLjAwMzYwNywgMC4wMDM2MDciLCBcCi0gICAgICAgICAgIjAuMDAzNTg4LCAwLjAwMzU5MywgMC4wMDM1OTksIDAuMDAzNiwgMC4wMDM2MDEsIDAuMDAzNjAyLCAwLjAwMzYwMSIsIFwKLSAgICAgICAgICAiMC4wMDM1ODUsIDAuMDAzNTksIDAuMDAzNTk2LCAwLjAwMzU5NywgMC4wMDM1OTgsIDAuMDAzNTk4LCAwLjAwMzU5OCIsIFwKLSAgICAgICAgICAiMC4wMDM1ODMsIDAuMDAzNTg4LCAwLjAwMzU5NCwgMC4wMDM1OTUsIDAuMDAzNTk2LCAwLjAwMzU5NywgMC4wMDM1OTYiLCBcCi0gICAgICAgICAgIjAuMDAzNTg1LCAwLjAwMzU5LCAwLjAwMzU5NiwgMC4wMDM1OTcsIDAuMDAzNTk4LCAwLjAwMzU5OSwgMC4wMDM1OTkiLCBcCi0gICAgICAgICAgIjAuMDAzNTg3LCAwLjAwMzU5MiwgMC4wMDM1OTksIDAuMDAzNiwgMC4wMDM2MDEsIDAuMDAzNjAxLCAwLjAwMzYwMSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUU4pICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4xMzM5ODk7Ci0gICAgZnVuY3Rpb24gOiAiUUJJTlQiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5vbl91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcmlzaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMyOTMzNywgMC4zNzMwOTMsIDAuNjIxMDg0LCAwLjgzOTk3LCAxLjEzMTY4LCAxLjcxNTI3LCAyLjA3OTk0IiwgXAotICAgICAgICAgICIwLjM0MTAxNiwgMC4zODQ3NzcsIDAuNjMyNzYzLCAwLjg1MTcyOCwgMS4xNDMzNywgMS43MjY4OCwgMi4wOTE2MyIsIFwKLSAgICAgICAgICAiMC4zNTY0MjMsIDAuNDAwMTg3LCAwLjY0ODE4OCwgMC44NjcwNDEsIDEuMTU4NzcsIDEuNzQyMywgMi4xMDcwNCIsIFwKLSAgICAgICAgICAiMC4zNzE4NDIsIDAuNDE1NTk4LCAwLjY2MzU5MywgMC44ODI0OCwgMS4xNzQxOSwgMS43NTc3OCwgMi4xMjI0NSIsIFwKLSAgICAgICAgICAiMC4zODcwMjcsIDAuNDMwNzkyLCAwLjY3ODc4MiwgMC44OTc2NTEsIDEuMTg5MzcsIDEuNzcyOSwgMi4xMzc1OCIsIFwKLSAgICAgICAgICAiMC40MTEwOTUsIDAuNDU0ODUsIDAuNzAyODQ1LCAwLjkyMTczLCAxLjIxMzQ0LCAxLjc5Njk4LCAyLjE2MTciLCBcCi0gICAgICAgICAgIjAuNDMxMDI1LCAwLjQ3NDc4OSwgMC43MjI4MDQsIDAuOTQxNzQ3LCAxLjIzMzQxLCAxLjgxNjkxLCAyLjE4MTY3Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE2MDQ3NywgMC4yNDg4OTUsIDAuNzUyMTExLCAxLjE5MzYyLCAxLjc4NTU4LCAyLjk3MzgsIDMuNzEzOTMiLCBcCi0gICAgICAgICAgIjAuMTYwNDM5LCAwLjI0ODE4MSwgMC43NTIwODEsIDEuMTkzMjUsIDEuNzg1NTUsIDIuOTczMzQsIDMuNzEzOTMiLCBcCi0gICAgICAgICAgIjAuMTYwNDY0LCAwLjI0ODg5LCAwLjc1MTgzLCAxLjE5NDI1LCAxLjc4NTMzLCAyLjk3MzMyLCAzLjcwNzIyIiwgXAotICAgICAgICAgICIwLjE2MDQ3NSwgMC4yNDg4OTQsIDAuNzUxNjg2LCAxLjE5MzcyLCAxLjc4NTU2LCAyLjk3MzgxLCAzLjcxMzg5IiwgXAotICAgICAgICAgICIwLjE2MDQ2MSwgMC4yNDg4ODksIDAuNzUyMDcsIDEuMTk0MzMsIDEuNzg1NCwgMi45NzMyOCwgMy43MTM0OCIsIFwKLSAgICAgICAgICAiMC4xNjA0NzMsIDAuMjQ4ODk0LCAwLjc1MTg4OCwgMS4xOTM2OSwgMS43ODU1NiwgMi45NzM0NCwgMy43MTM4OSIsIFwKLSAgICAgICAgICAiMC4xNjA0NjQsIDAuMjQ4ODksIDAuNzUwODE2LCAxLjE5Mjg4LCAxLjc4NTU5LCAyLjk3MzM5LCAzLjcxNDExIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMwOTYzOSwgMC4zNTkyNzgsIDAuNjQwNDg5LCAwLjg4ODYxOCwgMS4yMTkzNiwgMS44ODA5NiwgMi4yOTQ1MSIsIFwKLSAgICAgICAgICAiMC4zMjExODUsIDAuMzcwODA4LCAwLjY1MjA1MiwgMC45MDAxOSwgMS4yMzA5OSwgMS44OTI2LCAyLjMwNjEyIiwgXAotICAgICAgICAgICIwLjMzNjcxNywgMC4zODYzNDYsIDAuNjY3NTk0LCAwLjkxNTY4NSwgMS4yNDY0MywgMS45MDgwNywgMi4zMjE2NiIsIFwKLSAgICAgICAgICAiMC4zNTIwNTksIDAuNDAxNjksIDAuNjgyOTM0LCAwLjkzMTA2NywgMS4yNjE4OSwgMS45MjM0MSwgMi4zMzcwMyIsIFwKLSAgICAgICAgICAiMC4zNjcwOTEsIDAuNDE2NzExLCAwLjY5ODAyMiwgMC45NDYwNjYsIDEuMjc2ODEsIDEuOTM4NDMsIDIuMzUxOTkiLCBcCi0gICAgICAgICAgIjAuMzkwODgzLCAwLjQ0MDUxMiwgMC43MjE3NTgsIDAuOTY5ODY4LCAxLjMwMDY3LCAxLjk2MjIzLCAyLjM3NTg1IiwgXAotICAgICAgICAgICIwLjQxMDYwNywgMC40NjAyMzUsIDAuNzQxNDc5LCAwLjk4OTU4NywgMS4zMjAzOSwgMS45ODE5NiwgMi4zOTU1OCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNzY5OTUsIDAuMjc0OTY2LCAwLjgzMjU4MywgMS4zMjM2MywgMS45Nzk3NSwgMy4yOTE5NywgNC4xMTAyNCIsIFwKLSAgICAgICAgICAiMC4xNzY5ODcsIDAuMjc0OTUzLCAwLjgzMjA2NiwgMS4zMjM4MiwgMS45ODAyNiwgMy4yODk3NCwgNC4xMTIwOSIsIFwKLSAgICAgICAgICAiMC4xNzcwMjIsIDAuMjc0OTUxLCAwLjgzMTk4MiwgMS4zMjM4NSwgMS45ODAwOCwgMy4yOTIwNCwgNC4xMTIwNyIsIFwKLSAgICAgICAgICAiMC4xNzY5NzgsIDAuMjc0OTQ5LCAwLjgzMjA0MiwgMS4zMjM4MiwgMS45Nzg1MSwgMy4yOTIwMSwgNC4xMTIwNyIsIFwKLSAgICAgICAgICAiMC4xNzY5OTQsIDAuMjc0OTM0LCAwLjgzMTgyOCwgMS4zMjMxNCwgMS45Nzk2NywgMy4yOTE5OCwgNC4xMTIwNyIsIFwKLSAgICAgICAgICAiMC4xNzY5OCwgMC4yNzQ5NSwgMC44MzIwMTQsIDEuMzIzNTksIDEuOTc5NDEsIDMuMjkyMDIsIDQuMTEyMDYiLCBcCi0gICAgICAgICAgIjAuMTc2OTgsIDAuMjc0OTUsIDAuODMyMDI0LCAxLjMyMzY4LCAxLjk3OTM4LCAzLjI5MjAzLCA0LjExMjA2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzYwMSwgMC4wMDM2MDYsIDAuMDAzNjEyLCAwLjAwMzYxMywgMC4wMDM2MTQsIDAuMDAzNjE1LCAwLjAwMzYxNCIsIFwKLSAgICAgICAgICAiMC4wMDM1OTQsIDAuMDAzNTk4LCAwLjAwMzYwNSwgMC4wMDM2MDYsIDAuMDAzNjA3LCAwLjAwMzYwNywgMC4wMDM2MDciLCBcCi0gICAgICAgICAgIjAuMDAzNTg4LCAwLjAwMzU5MywgMC4wMDM1OTksIDAuMDAzNiwgMC4wMDM2MDEsIDAuMDAzNjAyLCAwLjAwMzYwMSIsIFwKLSAgICAgICAgICAiMC4wMDM1ODUsIDAuMDAzNTksIDAuMDAzNTk2LCAwLjAwMzU5NywgMC4wMDM1OTgsIDAuMDAzNTk4LCAwLjAwMzU5OCIsIFwKLSAgICAgICAgICAiMC4wMDM1ODMsIDAuMDAzNTg4LCAwLjAwMzU5NCwgMC4wMDM1OTUsIDAuMDAzNTk2LCAwLjAwMzU5NywgMC4wMDM1OTYiLCBcCi0gICAgICAgICAgIjAuMDAzNTg1LCAwLjAwMzU5LCAwLjAwMzU5NiwgMC4wMDM1OTcsIDAuMDAzNTk4LCAwLjAwMzU5OSwgMC4wMDM1OTkiLCBcCi0gICAgICAgICAgIjAuMDAzNTg3LCAwLjAwMzU5MiwgMC4wMDM1OTksIDAuMDAzNiwgMC4wMDM2MDEsIDAuMDAzNjAxLCAwLjAwMzYwMSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzQ1MSwgMC4wMDM0NTYsIDAuMDAzNDYyLCAwLjAwMzQ2MywgMC4wMDM0NjQsIDAuMDAzNDY0LCAwLjAwMzQ2NSIsIFwKLSAgICAgICAgICAiMC4wMDM0NDMsIDAuMDAzNDQ4LCAwLjAwMzQ1NSwgMC4wMDM0NTYsIDAuMDAzNDU2LCAwLjAwMzQ1NywgMC4wMDM0NTciLCBcCi0gICAgICAgICAgIjAuMDAzNDM3LCAwLjAwMzQ0MiwgMC4wMDM0NDgsIDAuMDAzNDQ5LCAwLjAwMzQ1LCAwLjAwMzQ1MSwgMC4wMDM0NTEiLCBcCi0gICAgICAgICAgIjAuMDAzNDMzLCAwLjAwMzQzNywgMC4wMDM0NDQsIDAuMDAzNDQ1LCAwLjAwMzQ0NSwgMC4wMDM0NDYsIDAuMDAzNDQ2IiwgXAotICAgICAgICAgICIwLjAwMzQyOCwgMC4wMDM0MzMsIDAuMDAzNDM5LCAwLjAwMzQ0LCAwLjAwMzQ0MSwgMC4wMDM0NDEsIDAuMDAzNDQxIiwgXAotICAgICAgICAgICIwLjAwMzQyNCwgMC4wMDM0MjksIDAuMDAzNDM1LCAwLjAwMzQzNiwgMC4wMDM0MzYsIDAuMDAzNDM3LCAwLjAwMzQzNyIsIFwKLSAgICAgICAgICAiMC4wMDM0MjIsIDAuMDAzNDI3LCAwLjAwMzQzMywgMC4wMDM0MzQsIDAuMDAzNDM1LCAwLjAwMzQzNSwgMC4wMDM0MzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IEVERkZYNCAqCi0gKiAtLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKEVERkZYNCkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjU2NjYxMzsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBmZiAoTjMwLFFCSU5UKSB7Ci0gICAgbmV4dF9zdGF0ZSA6ICIoKEUgRCkgKyAoIUUgKCEoIU4zMCkpKSkiOwotICAgIGNsb2NrZWRfb24gOiAiQ0siOwotICB9Ci0gIHBpbihDSykgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjMxNzk0OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYzMTUwODsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2MzE3OTQ7Ci0gICAgY2xvY2sgOiB0cnVlOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjUyOCwgMC4wMDI1MTUsIDAuMDAyNTAzLCAwLjAwMjQ5NSwgMC4wMDI0OSwgMC4wMDI0ODQsIDAuMDAyNDg0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA0NSwgMC4wMDQ0OSwgMC4wMDQ0ODEsIDAuMDA0NDc2LCAwLjAwNDQ3NiwgMC4wMDQ0NzgsIDAuMDA0NDc4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRCZFIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9FX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4zMTcxMywgMC4zMjg3NTQsIDAuMzQ0MjI0LCAwLjM1OTc1NCwgMC4zNzQ2MjYsIDAuMzk4ODksIDAuNDE5MjE4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4xOTA3MTcsIDAuMjAyMjM1LCAwLjIxNzA2MywgMC4yMzE5NDMsIDAuMjQ2MzkzLCAwLjI2ODcsIDAuMjg2ODk3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihEKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA1ODM4NzY7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNTgyMjA4OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDU4Mzg3NjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDIyMDMsIDAuMDAyMTk0LCAwLjAwMjE4OSwgMC4wMDIxODYsIDAuMDAyMTgzLCAwLjAwMjE4LCAwLjAwMjE3OCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzk0OCwgMC4wMDM5NDQsIDAuMDAzOTQxLCAwLjAwMzk0LCAwLjAwMzkzOSwgMC4wMDM5MzcsIDAuMDAzOTM1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIkUiOwotICAgICAgc2RmX2NvbmQgOiAiRSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4xMzc1LCAtMC4xMzI1LCAtMC4xMiwgLTAuMTEzNzUsIC0wLjEwMTI1LCAtMC4wOTEyNSwgLTAuMDgyNSIsIFwKLSAgICAgICAgICAiLTAuMTQ4NzUsIC0wLjE0Mzc1LCAtMC4xMzEyNSwgLTAuMTI1LCAtMC4xMTI1LCAtMC4xMDI1LCAtMC4wOTM3NSIsIFwKLSAgICAgICAgICAiLTAuMTY3NSwgLTAuMTU2MjUsIC0wLjE0Mzc1LCAtMC4xMzc1LCAtMC4xMzEyNSwgLTAuMTE1LCAtMC4xMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMTgsIC0wLjE2ODc1LCAtMC4xNTYyNSwgLTAuMTUsIC0wLjE0Mzc1LCAtMC4xMjc1LCAtMC4xMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMTkyNSwgLTAuMTgxMjUsIC0wLjE3NSwgLTAuMTYyNSwgLTAuMTU2MjUsIC0wLjE0LCAtMC4xMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMjE1LCAtMC4yMDM3NSwgLTAuMTk3NSwgLTAuMTg1LCAtMC4xNzg3NSwgLTAuMTYyNSwgLTAuMTUzNzUiLCBcCi0gICAgICAgICAgIi0wLjIzNjI1LCAtMC4yMjUsIC0wLjIxMjUsIC0wLjIwNjI1LCAtMC4xOTM3NSwgLTAuMTgzNzUsIC0wLjE3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAzMTI1LCAtMC4wMiwgLTAuMDAxMjUsIDAuMDExMjUsIDAuMDE3NSwgMC4wNCwgMC4wNTUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzMTI1LCAtMC4wMTI1LCAwLCAwLjAwNjI1LCAwLjAyODc1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA0Mzc1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLjAxNjI1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wNjc1LCAtMC4wNTYyNSwgLTAuMDQzNzUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgMC4wMDM3NSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDgsIC0wLjA2ODc1LCAtMC4wNSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAwODc1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wOTYyNSwgLTAuMDg1LCAtMC4wNzI1LCAtMC4wNiwgLTAuMDQ3NSwgLTAuMDI1LCAtMC4wMSIsIFwKLSAgICAgICAgICAiLTAuMTA1LCAtMC4wOTM3NSwgLTAuMDgxMjUsIC0wLjA3NSwgLTAuMDYyNSwgLTAuMDQ2MjUsIC0wLjAzMTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJFIjsKLSAgICAgIHNkZl9jb25kIDogIkUgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjM3NSwgMC4yMjYyNSwgMC4yMDc1LCAwLjE5NSwgMC4xODI1LCAwLjE2NjI1LCAwLjE1MTI1IiwgXAotICAgICAgICAgICIwLjI0ODc1LCAwLjIzNzUsIDAuMjE4NzUsIDAuMjA2MjUsIDAuMTkzNzUsIDAuMTc3NSwgMC4xNjI1IiwgXAotICAgICAgICAgICIwLjI2MTI1LCAwLjI1LCAwLjIzMTI1LCAwLjIxODc1LCAwLjIwNjI1LCAwLjE5LCAwLjE3NSIsIFwKLSAgICAgICAgICAiMC4yNzM3NSwgMC4yNjI1LCAwLjI1LCAwLjIzMTI1LCAwLjIxODc1LCAwLjIwMjUsIDAuMTkzNzUiLCBcCi0gICAgICAgICAgIjAuMjkyNSwgMC4yNzUsIDAuMjYyNSwgMC4yNSwgMC4yMzEyNSwgMC4yMTUsIDAuMjA2MjUiLCBcCi0gICAgICAgICAgIjAuMzE1LCAwLjI5NzUsIDAuMjg1LCAwLjI3MjUsIDAuMjUzNzUsIDAuMjM3NSwgMC4yMjg3NSIsIFwKLSAgICAgICAgICAiMC4zMywgMC4zMTg3NSwgMC4zLCAwLjI4NzUsIDAuMjc1LCAwLjI1ODc1LCAwLjI0Mzc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTYyNSwgMC4xNTEyNSwgMC4xMzg3NSwgMC4xMiwgMC4xMDEyNSwgMC4wNzg3NSwgMC4wNTc1IiwgXAotICAgICAgICAgICIwLjE3Mzc1LCAwLjE2MjUsIDAuMTUsIDAuMTMxMjUsIDAuMTE4NzUsIDAuMDksIDAuMDY4NzUiLCBcCi0gICAgICAgICAgIjAuMTg2MjUsIDAuMTc1LCAwLjE2MjUsIDAuMTQzNzUsIDAuMTMxMjUsIDAuMTAyNSwgMC4wODEyNSIsIFwKLSAgICAgICAgICAiMC4xOTg3NSwgMC4xODc1LCAwLjE3NSwgMC4xNTYyNSwgMC4xNDM3NSwgMC4xMTUsIDAuMDkzNzUiLCBcCi0gICAgICAgICAgIjAuMjExMjUsIDAuMiwgMC4xODc1LCAwLjE2ODc1LCAwLjE1NjI1LCAwLjEyNzUsIDAuMTA2MjUiLCBcCi0gICAgICAgICAgIjAuMjMzNzUsIDAuMjIyNSwgMC4yMDM3NSwgMC4xOTEyNSwgMC4xNzI1LCAwLjE1LCAwLjEyODc1IiwgXAotICAgICAgICAgICIwLjI0ODc1LCAwLjIzNzUsIDAuMjI1LCAwLjIwNjI1LCAwLjE4NzUsIDAuMTY1LCAwLjE0Mzc1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihFKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDExMTI4ODsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDExMTIxNzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDExMTI4ODsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDM3ODEsIDAuMDAzNzcxLCAwLjAwMzc2NCwgMC4wMDM3NTksIDAuMDAzNzU3LCAwLjAwMzc1NSwgMC4wMDM3NTUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDQ4NjgsIDAuMDA0ODUyLCAwLjAwNDg0LCAwLjAwNDgzMiwgMC4wMDQ4MjcsIDAuMDA0ODIsIDAuMDA0ODE4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEIjsKLSAgICAgIHNkZl9jb25kIDogIkQgPT0gMSdiMCI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMTUsIC0wLjEzODc1LCAtMC4xMiwgLTAuMTA3NSwgLTAuMDg4NzUsIC0wLjA2NjI1LCAtMC4wNDUiLCBcCi0gICAgICAgICAgIi0wLjE2MTI1LCAtMC4xNSwgLTAuMTMxMjUsIC0wLjExODc1LCAtMC4xLCAtMC4wNzc1LCAtMC4wNjI1IiwgXAotICAgICAgICAgICItMC4xNzM3NSwgLTAuMTYyNSwgLTAuMTUsIC0wLjEzMTI1LCAtMC4xMTg3NSwgLTAuMDk2MjUsIC0wLjA3NSIsIFwKLSAgICAgICAgICAiLTAuMTkyNSwgLTAuMTgxMjUsIC0wLjE2MjUsIC0wLjE1LCAtMC4xMzEyNSwgLTAuMTA4NzUsIC0wLjA4NzUiLCBcCi0gICAgICAgICAgIi0wLjIwNSwgLTAuMTkzNzUsIC0wLjE4MTI1LCAtMC4xNjI1LCAtMC4xNSwgLTAuMTIxMjUsIC0wLjEwNjI1IiwgXAotICAgICAgICAgICItMC4yMjc1LCAtMC4yMTYyNSwgLTAuMTk3NSwgLTAuMTg1LCAtMC4xNzI1LCAtMC4xNDM3NSwgLTAuMTI4NzUiLCBcCi0gICAgICAgICAgIi0wLjI0MjUsIC0wLjIzMTI1LCAtMC4yMTg3NSwgLTAuMiwgLTAuMTg3NSwgLTAuMTY1LCAtMC4xNDM3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAzMTI1LCAtMC4wMzI1LCAtMC4wMiwgLTAuMDA3NSwgLTAuMDEzNzUsIC0wLjAwMzc1LCAtMC4wMDc1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDQzNzUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgLTAuMDI1LCAtMC4wMTUsIC0wLjAxODc1IiwgXAotICAgICAgICAgICItMC4wNjEyNSwgLTAuMDU2MjUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzc1LCAtMC4wMzM3NSwgLTAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjA4LCAtMC4wNjg3NSwgLTAuMDYyNSwgLTAuMDUsIC0wLjA1NjI1LCAtMC4wNDYyNSwgLTAuMDUiLCBcCi0gICAgICAgICAgIi0wLjA5MjUsIC0wLjA4NzUsIC0wLjA3NSwgLTAuMDY4NzUsIC0wLjA2ODc1LCAtMC4wNTg3NSwgLTAuMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMTA4NzUsIC0wLjExLCAtMC4wOTc1LCAtMC4wOTEyNSwgLTAuMDkxMjUsIC0wLjA4NzUsIC0wLjA4NSIsIFwKLSAgICAgICAgICAiLTAuMTMsIC0wLjEyNSwgLTAuMTE4NzUsIC0wLjEwNjI1LCAtMC4xMDYyNSwgLTAuMTAyNSwgLTAuMSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJEIjsKLSAgICAgIHNkZl9jb25kIDogIkQgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMTY4NzUsIC0wLjE1NzUsIC0wLjE0NSwgLTAuMTMyNSwgLTAuMTI2MjUsIC0wLjExLCAtMC4xMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMTgsIC0wLjE2ODc1LCAtMC4xNTYyNSwgLTAuMTQzNzUsIC0wLjEzNzUsIC0wLjEyMTI1LCAtMC4xMTI1IiwgXAotICAgICAgICAgICItMC4xOTI1LCAtMC4xODEyNSwgLTAuMTY4NzUsIC0wLjE2MjUsIC0wLjE1LCAtMC4xMzM3NSwgLTAuMTI1IiwgXAotICAgICAgICAgICItMC4yMDUsIC0wLjE5Mzc1LCAtMC4xODEyNSwgLTAuMTc1LCAtMC4xNjI1LCAtMC4xNTI1LCAtMC4xMzc1IiwgXAotICAgICAgICAgICItMC4yMTc1LCAtMC4yMDYyNSwgLTAuMiwgLTAuMTg3NSwgLTAuMTc1LCAtMC4xNjUsIC0wLjE1IiwgXAotICAgICAgICAgICItMC4yNCwgLTAuMjI4NzUsIC0wLjIyMjUsIC0wLjIxLCAtMC4xOTc1LCAtMC4xODc1LCAtMC4xNzI1IiwgXAotICAgICAgICAgICItMC4yNjEyNSwgLTAuMjUsIC0wLjIzNzUsIC0wLjIzMTI1LCAtMC4yMTg3NSwgLTAuMjAyNSwgLTAuMTkzNzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMjUsIDAuMDIzNzUsIDAuMDM2MjUsIDAuMDQ4NzUsIDAuMDYxMjUsIDAuMDgzNzUsIDAuMDk4NzUiLCBcCi0gICAgICAgICAgIjAuMDAxMjUsIDAuMDEyNSwgMC4wMjUsIDAuMDM3NSwgMC4wNSwgMC4wNzI1LCAwLjA4NzUiLCBcCi0gICAgICAgICAgIi0wLjAxMTI1LCAtMC4wMDYyNSwgMC4wMTI1LCAwLjAyNSwgMC4wMzc1LCAwLjA2LCAwLjA3NSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxODc1LCAwLCAwLjAxMjUsIDAuMDI1LCAwLjA0NzUsIDAuMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAyNSwgLTAuMDEyNSwgMCwgMC4wMTI1LCAwLjAzNSwgMC4wNSIsIFwKLSAgICAgICAgICAiLTAuMDUyNSwgLTAuMDQxMjUsIC0wLjAyODc1LCAtMC4wMTYyNSwgLTAuMDAzNzUsIDAuMDEyNSwgMC4wMjc1IiwgXAotICAgICAgICAgICItMC4wNjc1LCAtMC4wNTYyNSwgLTAuMDQzNzUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgLTAuMDAyNSwgMC4wMTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRCI7Ci0gICAgICBzZGZfY29uZCA6ICJEID09IDEnYjAiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE4NzUsIDAuMTc2MjUsIDAuMTYzNzUsIDAuMTQ1LCAwLjEyNjI1LCAwLjEwMzc1LCAwLjA4MjUiLCBcCi0gICAgICAgICAgIjAuMjA1LCAwLjE4NzUsIDAuMTc1LCAwLjE1NjI1LCAwLjE0Mzc1LCAwLjExNSwgMC4wOTM3NSIsIFwKLSAgICAgICAgICAiMC4yMTc1LCAwLjIwNjI1LCAwLjE4NzUsIDAuMTc1LCAwLjE1NjI1LCAwLjEzMzc1LCAwLjExMjUiLCBcCi0gICAgICAgICAgIjAuMjMsIDAuMjE4NzUsIDAuMjA2MjUsIDAuMTg3NSwgMC4xNjg3NSwgMC4xNDYyNSwgMC4xMjUiLCBcCi0gICAgICAgICAgIjAuMjQ4NzUsIDAuMjM3NSwgMC4yMTg3NSwgMC4yLCAwLjE4NzUsIDAuMTU4NzUsIDAuMTQzNzUiLCBcCi0gICAgICAgICAgIjAuMjcxMjUsIDAuMjUzNzUsIDAuMjQxMjUsIDAuMjIyNSwgMC4yMSwgMC4xODEyNSwgMC4xNjYyNSIsIFwKLSAgICAgICAgICAiMC4yODYyNSwgMC4yNzUsIDAuMjU2MjUsIDAuMjQzNzUsIDAuMjI1LCAwLjIwMjUsIDAuMTgxMjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTI1LCAwLjEwMTI1LCAwLjA4ODc1LCAwLjA3NjI1LCAwLjA3LCAwLjA1Mzc1LCAwLjA0NSIsIFwKLSAgICAgICAgICAiMC4xMjM3NSwgMC4xMTI1LCAwLjEsIDAuMDkzNzUsIDAuMDgxMjUsIDAuMDY1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICIwLjEzNjI1LCAwLjEyNSwgMC4xMTg3NSwgMC4xMDYyNSwgMC4xLCAwLjA4Mzc1LCAwLjA2ODc1IiwgXAotICAgICAgICAgICIwLjE1NSwgMC4xNDM3NSwgMC4xMzEyNSwgMC4xMTg3NSwgMC4xMTI1LCAwLjA5NjI1LCAwLjA4NzUiLCBcCi0gICAgICAgICAgIjAuMTY3NSwgMC4xNTYyNSwgMC4xNDM3NSwgMC4xMzc1LCAwLjEyNSwgMC4xMTUsIDAuMSIsIFwKLSAgICAgICAgICAiMC4xOSwgMC4xNzg3NSwgMC4xNjYyNSwgMC4xNiwgMC4xNDc1LCAwLjEzNzUsIDAuMTIyNSIsIFwKLSAgICAgICAgICAiMC4yMDUsIDAuMiwgMC4xODc1LCAwLjE3NSwgMC4xNjg3NSwgMC4xNTI1LCAwLjEzNzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIkQiOwotICAgICAgc2RmX2NvbmQgOiAiRCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMjUsIDAuMjA3NSwgMC4xOTUsIDAuMTgyNSwgMC4xNywgMC4xNTM3NSwgMC4xMzg3NSIsIFwKLSAgICAgICAgICAiMC4yMzYyNSwgMC4yMTg3NSwgMC4yMDYyNSwgMC4xOTM3NSwgMC4xODEyNSwgMC4xNTg3NSwgMC4xNSIsIFwKLSAgICAgICAgICAiMC4yNDg3NSwgMC4yMzEyNSwgMC4yMTg3NSwgMC4yMDYyNSwgMC4xOTM3NSwgMC4xNzc1LCAwLjE2MjUiLCBcCi0gICAgICAgICAgIjAuMjYxMjUsIDAuMjUsIDAuMjMxMjUsIDAuMjE4NzUsIDAuMjA2MjUsIDAuMTksIDAuMTc1IiwgXAotICAgICAgICAgICIwLjI3Mzc1LCAwLjI2MjUsIDAuMjQzNzUsIDAuMjMxMjUsIDAuMjE4NzUsIDAuMjAyNSwgMC4xODc1IiwgXAotICAgICAgICAgICIwLjI5NjI1LCAwLjI4NSwgMC4yNjYyNSwgMC4yNTM3NSwgMC4yNDEyNSwgMC4yMjUsIDAuMjEiLCBcCi0gICAgICAgICAgIjAuMzE3NSwgMC4zLCAwLjI4NzUsIDAuMjc1LCAwLjI2MjUsIDAuMjQ2MjUsIDAuMjMxMjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzc1LCAwLjAyNjI1LCAwLjAxMzc1LCAtMC4wMDUsIC0wLjAxNzUsIC0wLjA0LCAtMC4wNTUiLCBcCi0gICAgICAgICAgIjAuMDQ4NzUsIDAuMDM3NSwgMC4wMjUsIDAuMDA2MjUsIC0wLjAwNjI1LCAtMC4wMjg3NSwgLTAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMDYxMjUsIDAuMDUsIDAuMDM3NSwgMC4wMjUsIDAuMDA2MjUsIC0wLjAxNjI1LCAtMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4wOCwgMC4wNjg3NSwgMC4wNSwgMC4wMzc1LCAwLjAxODc1LCAwLjAwMjUsIC0wLjAxODc1IiwgXAotICAgICAgICAgICIwLjA5MjUsIDAuMDgxMjUsIDAuMDYyNSwgMC4wNSwgMC4wMzc1LCAwLjAxNSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMTE1LCAwLjEwMzc1LCAwLjA4NSwgMC4wNzI1LCAwLjA2LCAwLjAzNzUsIDAuMDE2MjUiLCBcCi0gICAgICAgICAgIjAuMTM2MjUsIDAuMTE4NzUsIDAuMTA2MjUsIDAuMDkzNzUsIDAuMDc1LCAwLjA1MjUsIDAuMDM3NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjUzMTMyODsKLSAgICBmdW5jdGlvbiA6ICJOMzAiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5vbl91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcmlzaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjQxMDEyLCAwLjM3MTQ5NCwgMC40OTk2NjksIDAuNTg5ODI3LCAwLjczNjU2OSwgMC44NjM1NzcsIDEuMDQ1MDYiLCBcCi0gICAgICAgICAgIjAuMjUyNzI0LCAwLjM4MzE5NywgMC41MTAyMTEsIDAuNjAyMTU0LCAwLjc0ODAzMywgMC44NzMwNjcsIDEuMDU2MTQiLCBcCi0gICAgICAgICAgIjAuMjY4MTE3LCAwLjM5ODU4OSwgMC41MjY3MTksIDAuNjE2MjM1LCAwLjc2MzIzNCwgMC44ODc5NTQsIDEuMDcyMzUiLCBcCi0gICAgICAgICAgIjAuMjgzMzg1LCAwLjQxMzg3NSwgMC41NDIwMjcsIDAuNjMyNTkxLCAwLjc3ODMzNCwgMC45MDYwOTIsIDEuMDg3NTQiLCBcCi0gICAgICAgICAgIjAuMjk4MjU1LCAwLjQyODc1LCAwLjU1Njg5NiwgMC42NDcxNzgsIDAuNzkzMjIzLCAwLjkxODE3OSwgMS4xMDI0MSIsIFwKLSAgICAgICAgICAiMC4zMjI0NDEsIDAuNDUyODgzLCAwLjU4MTA2NCwgMC42NzA5MDUsIDAuODE3Njk4LCAwLjk0NDU4OCwgMS4xMjUyOCIsIFwKLSAgICAgICAgICAiMC4zNDIzMjIsIDAuNDcyODAxLCAwLjYwMDk3MiwgMC42OTExNjEsIDAuODM4MDUxLCAwLjk2NDc3LCAxLjE0NjI5Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDYxMTk4LCAwLjMwOTMzNiwgMC41NzE2OCwgMC43NTg0NzMsIDEuMDU4MDQsIDEuMzE5MDYsIDEuNjkwOTQiLCBcCi0gICAgICAgICAgIjAuMDYxMDI2LCAwLjMwOTMxNiwgMC41NzMwNjUsIDAuNzU5MzI2LCAxLjA0MzU4LCAxLjMxNjczLCAxLjY4NzcyIiwgXAotICAgICAgICAgICIwLjA2MTAyMiwgMC4zMDkzMTEsIDAuNTc0MTA1LCAwLjc2MDEzNywgMS4wNDc4NCwgMS4zMDMxNSwgMS42ODc4MiIsIFwKLSAgICAgICAgICAiMC4wNjEwMzIsIDAuMzA5MzEzLCAwLjU2OTExMywgMC43NjAxNzQsIDEuMDUxNDYsIDEuMzE4NDQsIDEuNjkyMzQiLCBcCi0gICAgICAgICAgIjAuMDYxMDg1LCAwLjMwOTI5MywgMC41NzIzNTYsIDAuNzU5NDgsIDEuMDUxMjYsIDEuMzIyLCAxLjY5MjMyIiwgXAotICAgICAgICAgICIwLjA2MDczNCwgMC4zMDkyMzUsIDAuNTcxNzcyLCAwLjc1Mzk2OSwgMS4wNDM4OSwgMS4zMDI0OSwgMS42ODE0NyIsIFwKLSAgICAgICAgICAiMC4wNjEwNjIsIDAuMzA5Mjg2LCAwLjU3MDc2NCwgMC43NTg3NzQsIDEuMDU2NjQsIDEuMzE3ODMsIDEuNjkwNDgiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yNjgwMDIsIDAuNDE3MDE4LCAwLjU2Mjg3NiwgMC42NjY5OCwgMC44MzUxMjUsIDAuOTc5OTMzLCAxLjE4ODY2IiwgXAotICAgICAgICAgICIwLjI3OTcxNSwgMC40Mjg3MjQsIDAuNTc0NTg4LCAwLjY3ODY5MywgMC44NDY0MDQsIDAuOTkxNzMzLCAxLjIwMDYxIiwgXAotICAgICAgICAgICIwLjI5NTE5OCwgMC40NDQyMDUsIDAuNTkwMDYyLCAwLjY5NDE2NiwgMC44NjIzMTIsIDEuMDA3MDYsIDEuMjE1NjciLCBcCi0gICAgICAgICAgIjAuMzEwNjMsIDAuNDU5Mzk5LCAwLjYwNTU2NSwgMC43MDk1OTIsIDAuODc3NzAzLCAxLjAyMzEzLCAxLjIzMTY5IiwgXAotICAgICAgICAgICIwLjMyNTU2NywgMC40NzQ1OCwgMC42MjA0NCwgMC43MjQ2OTgsIDAuODkyMDY4LCAxLjAzODM0LCAxLjI0Nzc0IiwgXAotICAgICAgICAgICIwLjM0OTgzNywgMC40OTg2MjgsIDAuNjQ0NzY2LCAwLjc0ODgyMiwgMC45MTY0NjgsIDEuMDYxODEsIDEuMjcwNzYiLCBcCi0gICAgICAgICAgIjAuMzcwMTc5LCAwLjUxOTE4NiwgMC42NjUwNDQsIDAuNzY5MTQ4LCAwLjkzNzI5MywgMS4wODIwMywgMS4yOTA2NSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2NDQ4MiwgMC4zNDY0MDYsIDAuNjM2MjY2LCAwLjg0MzY1NiwgMS4xNzUzOSwgMS40NjU3NywgMS44Nzg4OSIsIFwKLSAgICAgICAgICAiMC4wNjQxMTMsIDAuMzQ2Mjk0LCAwLjYzNjI2NCwgMC44NDM2MjQsIDEuMTc0NzEsIDEuNDY3NzksIDEuODgyMSIsIFwKLSAgICAgICAgICAiMC4wNjQxODIsIDAuMzQ2NDEsIDAuNjM2MjY5LCAwLjg0MzY2NSwgMS4xNzUzOSwgMS40NjMzMiwgMS44ODIyNyIsIFwKLSAgICAgICAgICAiMC4wNjQ0NzUsIDAuMzQ2OTk1LCAwLjYzNjU1NSwgMC44NDM1ODYsIDEuMTc2NjIsIDEuNDY2NjMsIDEuODgyNDYiLCBcCi0gICAgICAgICAgIjAuMDY0MDksIDAuMzQ2MzMyLCAwLjYzNjI2NSwgMC44NDQxNjgsIDEuMTc1ODMsIDEuNDY1MjgsIDEuODgxNDEiLCBcCi0gICAgICAgICAgIjAuMDY0MzQ2LCAwLjM0Njk4OCwgMC42MzYzNDEsIDAuODQzNjIyLCAxLjE3NTExLCAxLjQ2Njg3LCAxLjg4MjE4IiwgXAotICAgICAgICAgICIwLjA2NDA3MiwgMC4zNDY0MDYsIDAuNjM2MjY4LCAwLjg0MzY2OCwgMS4xNzY2NSwgMS40NjQxOSwgMS44ODIyMyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjQ0OCwgMC4wMDY1NzIsIDAuMDA2NTg4LCAwLjAwNjU5MiwgMC4wMDY1OTYsIDAuMDA2NTk5LCAwLjAwNjYiLCBcCi0gICAgICAgICAgIjAuMDA2NDQyLCAwLjAwNjU2NSwgMC4wMDY1OCwgMC4wMDY1ODYsIDAuMDA2NTg5LCAwLjAwNjU5MSwgMC4wMDY1OTMiLCBcCi0gICAgICAgICAgIjAuMDA2NDM1LCAwLjAwNjU1OCwgMC4wMDY1NzQsIDAuMDA2NTc5LCAwLjAwNjU4MywgMC4wMDY1ODUsIDAuMDA2NTg3IiwgXAotICAgICAgICAgICIwLjAwNjQyOSwgMC4wMDY1NTMsIDAuMDA2NTY5LCAwLjAwNjU3NCwgMC4wMDY1NzgsIDAuMDA2NTgsIDAuMDA2NTgyIiwgXAotICAgICAgICAgICIwLjAwNjQyNSwgMC4wMDY1NDgsIDAuMDA2NTY0LCAwLjAwNjU2OCwgMC4wMDY1NzIsIDAuMDA2NTc1LCAwLjAwNjU3NyIsIFwKLSAgICAgICAgICAiMC4wMDY0MjEsIDAuMDA2NTQ1LCAwLjAwNjU2LCAwLjAwNjU2NiwgMC4wMDY1NjksIDAuMDA2NTcxLCAwLjAwNjU3MyIsIFwKLSAgICAgICAgICAiMC4wMDY0MTksIDAuMDA2NTQyLCAwLjAwNjU1OCwgMC4wMDY1NjMsIDAuMDA2NTY3LCAwLjAwNjU2OSwgMC4wMDY1NzEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjg3NywgMC4wMDY5OTQsIDAuMDA3MDA5LCAwLjAwNzAxNCwgMC4wMDcwMTksIDAuMDA3MDIsIDAuMDA3MDIxIiwgXAotICAgICAgICAgICIwLjAwNjg3LCAwLjAwNjk4NywgMC4wMDcwMDMsIDAuMDA3MDA3LCAwLjAwNzAxLCAwLjAwNzAxMiwgMC4wMDcwMTYiLCBcCi0gICAgICAgICAgIjAuMDA2ODY3LCAwLjAwNjk4MiwgMC4wMDY5OTcsIDAuMDA3MDAyLCAwLjAwNzAwNiwgMC4wMDcwMDgsIDAuMDA3MDA4IiwgXAotICAgICAgICAgICIwLjAwNjg2NSwgMC4wMDY5NzksIDAuMDA2OTk1LCAwLjAwNjk5OSwgMC4wMDcwMDMsIDAuMDA3MDA0LCAwLjAwNzAwOSIsIFwKLSAgICAgICAgICAiMC4wMDY4NiwgMC4wMDY5NzgsIDAuMDA2OTkzLCAwLjAwNjk5NywgMC4wMDcwMDEsIDAuMDA3MDAyLCAwLjAwNzAwNiIsIFwKLSAgICAgICAgICAiMC4wMDY4NiwgMC4wMDY5NzgsIDAuMDA2OTkzLCAwLjAwNjk5OCwgMC4wMDcwMDIsIDAuMDA3MDAyLCAwLjAwNzAwNSIsIFwKLSAgICAgICAgICAiMC4wMDY4NjUsIDAuMDA2OTgxLCAwLjAwNjk5NiwgMC4wMDcsIDAuMDA3MDA0LCAwLjAwNzAwNSwgMC4wMDcwMDYiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFFOKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuNTI0NjEzOwotICAgIGZ1bmN0aW9uIDogIlFCSU5UIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBub25fdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJpc2luZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMxNzEzLCAwLjQ0Mzk1NCwgMC41NzA1NDYsIDAuNjYxMDk1LCAwLjgwNTc5OSwgMC45MzI1NDMsIDEuMTEzNSIsIFwKLSAgICAgICAgICAiMC4zMjg3NTQsIDAuNDU1NjYxLCAwLjU4MjI1NywgMC42NzI4MDgsIDAuODE3NTE1LCAwLjk0NDI1NCwgMS4xMjUyIiwgXAotICAgICAgICAgICIwLjM0NDIyNCwgMC40NzExNDYsIDAuNTk3NzM2LCAwLjY4ODI4NywgMC44MzI5OTIsIDAuOTU5NzQxLCAxLjE0MDciLCBcCi0gICAgICAgICAgIjAuMzU5NzU0LCAwLjQ4NjU5MSwgMC42MTMyMTgsIDAuNzAzNzMxLCAwLjg0ODM5OCwgMC45NzQ5NjEsIDEuMTU2MTIiLCBcCi0gICAgICAgICAgIjAuMzc0NjI2LCAwLjUwMTUyLCAwLjYyODEzMSwgMC43MTg2MTUsIDAuODYzMzkyLCAwLjk4OTkxNCwgMS4xNzEwNCIsIFwKLSAgICAgICAgICAiMC4zOTg4OSwgMC41MjU4MDMsIDAuNjUyNDE1LCAwLjc0Mjk0MiwgMC44ODc2NTMsIDEuMDE0MzksIDEuMTk1MzMiLCBcCi0gICAgICAgICAgIjAuNDE5MjE4LCAwLjU0NjEyNywgMC42NzI3MTgsIDAuNzYzMjY4LCAwLjkwNzk3MSwgMS4wMzQ3MiwgMS4yMTU2OCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1ODAyNSwgMC4zMDg0OTYsIDAuNTY2NjcsIDAuNzQ4ODY0LCAxLjA0NjA4LCAxLjMwMDM3LCAxLjY3MDA2IiwgXAotICAgICAgICAgICIwLjA1Nzk3MiwgMC4zMDg0NjQsIDAuNTY2NjY0LCAwLjc0ODg3OCwgMS4wNDU4NCwgMS4zMDAyNiwgMS42NzAwNyIsIFwKLSAgICAgICAgICAiMC4wNTc5NSwgMC4zMDg1LCAwLjU2NjY3MiwgMC43NDg4NiwgMS4wNDYwOSwgMS4zMDA0NSwgMS42NzAwMSIsIFwKLSAgICAgICAgICAiMC4wNTgwMjMsIDAuMzA5MSwgMC41Njc0NTcsIDAuNzQ4ODkxLCAxLjA0NTkzLCAxLjMwMzYyLCAxLjY2OTkiLCBcCi0gICAgICAgICAgIjAuMDU3OTcyLCAwLjMwODQ5LCAwLjU2NjY1NiwgMC43NTA5MjIsIDEuMDQ1OSwgMS4zMDM1NywgMS42NzI2NyIsIFwKLSAgICAgICAgICAiMC4wNTc5MywgMC4zMDkwOTgsIDAuNTY2NzYsIDAuNzQ4ODc4LCAxLjA0NTg2LCAxLjMwMTg3LCAxLjY3MDA1IiwgXAotICAgICAgICAgICIwLjA1Nzk1NCwgMC4zMDg1MDEsIDAuNTY2NjcyLCAwLjc0ODg1OSwgMS4wNDYwNywgMS4zMDA0OCwgMS42NzAwMSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI5NDQxMywgMC40NDAyOTksIDAuNTg2MjkzLCAwLjY5MDU4NiwgMC44NTc1MDIsIDEuMDAzNSwgMS4yMTIwNyIsIFwKLSAgICAgICAgICAiMC4zMDYxMjksIDAuNDUyMDIxLCAwLjU5Nzk2NSwgMC43MDIzMzgsIDAuODY5MTk3LCAxLjAxNDkzLCAxLjIyMzc2IiwgXAotICAgICAgICAgICIwLjMyMTUzNSwgMC40NjczOTYsIDAuNjEzMzkzLCAwLjcxNzUyOSwgMC44ODQ1NjgsIDEuMDMwMywgMS4yMzkxNyIsIFwKLSAgICAgICAgICAiMC4zMzY3ODcsIDAuNDgyNjY5LCAwLjYyODY1MiwgMC43MzI5NzksIDAuODk5ODM0LCAxLjA0NTkzLCAxLjI1NDQ0IiwgXAotICAgICAgICAgICIwLjM1MTY5MSwgMC40OTc1NzQsIDAuNjQzNTYsIDAuNzQ3ODY1LCAwLjkxNDczNywgMS4wNjA1NCwgMS4yNjkzNCIsIFwKLSAgICAgICAgICAiMC4zNzU4MzcsIDAuNTIxNzE4LCAwLjY2NzczMSwgMC43NzE5ODQsIDAuOTM4OTAzLCAxLjA4NDksIDEuMjkzNDYiLCBcCi0gICAgICAgICAgIjAuMzk1NzQ5LCAwLjU0MTU5OSwgMC42ODc1ODksIDAuNzkxODg2LCAwLjk1ODg2OSwgMS4xMDQ3OCwgMS4zMTMzNiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2MTc4NiwgMC4zNDY3OTYsIDAuNjM2NTIsIDAuODQ0MDE0LCAxLjE3NTgxLCAxLjQ2NjEzLCAxLjg4MDYzIiwgXAotICAgICAgICAgICIwLjA2MTc5LCAwLjM0Njc5NCwgMC42MzY4MDYsIDAuODQzODg1LCAxLjE3NTg5LCAxLjQ2NTUsIDEuODgyNTUiLCBcCi0gICAgICAgICAgIjAuMDYxODUyLCAwLjM0Njc5NiwgMC42MzY4NTcsIDAuODQ0MDQxLCAxLjE3NjAxLCAxLjQ2NTk4LCAxLjg4MTMxIiwgXAotICAgICAgICAgICIwLjA2MTc4OCwgMC4zNDY3OTcsIDAuNjM2MzM5LCAwLjg0NDA0OSwgMS4xNzYxMiwgMS40NjYzMywgMS44ODExNSIsIFwKLSAgICAgICAgICAiMC4wNjE4MjEsIDAuMzQ2NzksIDAuNjM2NTc4LCAwLjg0NDA5NSwgMS4xNzYxMSwgMS40NjY3MSwgMS44ODExNCIsIFwKLSAgICAgICAgICAiMC4wNjE3OTMsIDAuMzQ2Nzc5LCAwLjYzNjY1OSwgMC44NDQ1MjMsIDEuMTc1OTEsIDEuNDY2MzcsIDEuODgxNTYiLCBcCi0gICAgICAgICAgIjAuMDYxODQsIDAuMzQ2Nzk5LCAwLjYzNjQzOCwgMC44NDQwMjcsIDEuMTc1NDUsIDEuNDY1ODUsIDEuODgwNTMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDY4NzcsIDAuMDA2OTk0LCAwLjAwNzAwOSwgMC4wMDcwMTQsIDAuMDA3MDE5LCAwLjAwNzAyLCAwLjAwNzAyMSIsIFwKLSAgICAgICAgICAiMC4wMDY4NywgMC4wMDY5ODcsIDAuMDA3MDAzLCAwLjAwNzAwNywgMC4wMDcwMSwgMC4wMDcwMTIsIDAuMDA3MDE2IiwgXAotICAgICAgICAgICIwLjAwNjg2NywgMC4wMDY5ODIsIDAuMDA2OTk3LCAwLjAwNzAwMiwgMC4wMDcwMDYsIDAuMDA3MDA4LCAwLjAwNzAwOCIsIFwKLSAgICAgICAgICAiMC4wMDY4NjUsIDAuMDA2OTc5LCAwLjAwNjk5NSwgMC4wMDY5OTksIDAuMDA3MDAzLCAwLjAwNzAwNCwgMC4wMDcwMDkiLCBcCi0gICAgICAgICAgIjAuMDA2ODYsIDAuMDA2OTc4LCAwLjAwNjk5MywgMC4wMDY5OTcsIDAuMDA3MDAxLCAwLjAwNzAwMiwgMC4wMDcwMDYiLCBcCi0gICAgICAgICAgIjAuMDA2ODYsIDAuMDA2OTc4LCAwLjAwNjk5MywgMC4wMDY5OTgsIDAuMDA3MDAyLCAwLjAwNzAwMiwgMC4wMDcwMDUiLCBcCi0gICAgICAgICAgIjAuMDA2ODY1LCAwLjAwNjk4MSwgMC4wMDY5OTYsIDAuMDA3LCAwLjAwNzAwNCwgMC4wMDcwMDUsIDAuMDA3MDA2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDY0NDgsIDAuMDA2NTcyLCAwLjAwNjU4OCwgMC4wMDY1OTIsIDAuMDA2NTk2LCAwLjAwNjU5OSwgMC4wMDY2IiwgXAotICAgICAgICAgICIwLjAwNjQ0MiwgMC4wMDY1NjUsIDAuMDA2NTgsIDAuMDA2NTg2LCAwLjAwNjU4OSwgMC4wMDY1OTEsIDAuMDA2NTkzIiwgXAotICAgICAgICAgICIwLjAwNjQzNSwgMC4wMDY1NTgsIDAuMDA2NTc0LCAwLjAwNjU3OSwgMC4wMDY1ODMsIDAuMDA2NTg1LCAwLjAwNjU4NyIsIFwKLSAgICAgICAgICAiMC4wMDY0MjksIDAuMDA2NTUzLCAwLjAwNjU2OSwgMC4wMDY1NzQsIDAuMDA2NTc4LCAwLjAwNjU4LCAwLjAwNjU4MiIsIFwKLSAgICAgICAgICAiMC4wMDY0MjUsIDAuMDA2NTQ4LCAwLjAwNjU2NCwgMC4wMDY1NjgsIDAuMDA2NTcyLCAwLjAwNjU3NSwgMC4wMDY1NzciLCBcCi0gICAgICAgICAgIjAuMDA2NDIxLCAwLjAwNjU0NSwgMC4wMDY1NiwgMC4wMDY1NjYsIDAuMDA2NTY5LCAwLjAwNjU3MSwgMC4wMDY1NzMiLCBcCi0gICAgICAgICAgIjAuMDA2NDE5LCAwLjAwNjU0MiwgMC4wMDY1NTgsIDAuMDA2NTYzLCAwLjAwNjU2NywgMC4wMDY1NjksIDAuMDA2NTcxIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBIT0xEWDEgKgotICogLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChIT0xEWDEpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4wNjAwODY4OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IGlub3V0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAyNDk0Njk7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAyNDQ2MzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDI0OTQ2OTsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDIwMywgMC4wMDAxMzUsIDAuMDAwMTA3LCAwLjAwMDExLCAwLjAwMDE0MiwgMC4wMDAyMzgsIDAuMDAwMzQ5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyMTYsIDAuMDAyNDM5LCAwLjAwMjc2OSwgMC4wMDMwNzcsIDAuMDAzMzcsIDAuMDAzODI5LCAwLjAwNDIyMSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBkb250X3VzZSA6IHRydWU7Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IElOVlgxICoKLSAqIC0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChJTlZYMSkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjAzMzIwOTk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDgyOTI2OTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA4Mjg4NzI7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwODI5MjY5OwotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMTMyMTU4OwotICAgIGZ1bmN0aW9uIDogIighQSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4MTUzMSwgMC4xMjQ2NDcsIDAuMzY5MzYxLCAwLjU4NTQxNSwgMC44NzI4ODQsIDEuNDQ4NzIsIDEuODA4MSIsIFwKLSAgICAgICAgICAiMC4wOTMwMzMsIDAuMTM2MjMzLCAwLjM4MDk4NSwgMC41OTY3NDEsIDAuODg0ODgsIDEuNDYwODMsIDEuODIwMDciLCBcCi0gICAgICAgICAgIjAuMTA3Njg4LCAwLjE1MDczOCwgMC4zOTQzMDEsIDAuNjEwMTIyLCAwLjg5Nzk0NywgMS40NzM1OSwgMS44MzMyOCIsIFwKLSAgICAgICAgICAiMC4xMjI2NTQsIDAuMTY1NTA0LCAwLjQwODAxOCwgMC42MjQxNjYsIDAuOTEyMDU4LCAxLjQ4Nzk0LCAxLjg0Njk4IiwgXAotICAgICAgICAgICIwLjEzNzM5MiwgMC4xODAyMjksIDAuNDI0MjYzLCAwLjYzNzY5NywgMC45MjU0NjMsIDEuNTAxMjgsIDEuODYxMDkiLCBcCi0gICAgICAgICAgIjAuMTYxMTIsIDAuMjA0MjEyLCAwLjQ0NzU5NSwgMC42NjAyMjQsIDAuOTQ3Nzk4LCAxLjUyMzI1LCAxLjg4MzQ1IiwgXAotICAgICAgICAgICIwLjE4MjI0NSwgMC4yMjQ5MzUsIDAuNDY4MzA5LCAwLjY4MzU4OSwgMC45Njc2NzIsIDEuNTQzNjMsIDEuOTAyODMiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTU2Mzg2LCAwLjI0NDQ3OCwgMC43NDA2OTgsIDEuMTc5NDYsIDEuNzYzNTMsIDIuOTMyMTQsIDMuNjYzMTYiLCBcCi0gICAgICAgICAgIjAuMTU2MzQzLCAwLjI0NDExLCAwLjc0MDYxMywgMS4xNzkwMSwgMS43NjQxNiwgMi45MzI4MiwgMy42NjI1OCIsIFwKLSAgICAgICAgICAiMC4xNTY5MTEsIDAuMjQzODQ5LCAwLjc0MDQ5NywgMS4xNzg5OCwgMS43NjUzLCAyLjkzNTE5LCAzLjY2MjU0IiwgXAotICAgICAgICAgICIwLjE2MDE1NywgMC4yNDQ2NDIsIDAuNzQyNDI3LCAxLjE3OTU0LCAxLjc2NDIsIDIuOTMzMzYsIDMuNjYyODIiLCBcCi0gICAgICAgICAgIjAuMTY0MTQzLCAwLjI0NzU1MSwgMC43NDA0NTgsIDEuMTgxNywgMS43NjQ0OCwgMi45MzIwMiwgMy42NjU2NiIsIFwKLSAgICAgICAgICAiMC4xNzM4ODgsIDAuMjUzODMxLCAwLjc0MDU0MywgMS4xNzg5NSwgMS43NjI3LCAyLjkzODk5LCAzLjY2MjU2IiwgXAotICAgICAgICAgICIwLjE4MzIzOCwgMC4yNjA4NDEsIDAuNzQyNTk5LCAxLjE3ODY3LCAxLjc2MzAyLCAyLjkzMjExLCAzLjY3MTE4Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5MzMyNywgMC4xNDI2OTMsIDAuNDIyNTkzLCAwLjY2OTY0MSwgMC45OTg4MzEsIDEuNjU3MTYsIDIuMDY5MjgiLCBcCi0gICAgICAgICAgIjAuMTA0OTgzLCAwLjE1NDQ0NiwgMC40MzQzODMsIDAuNjgxNDA1LCAxLjAxMDQyLCAxLjY2ODc2LCAyLjA4MTQyIiwgXAotICAgICAgICAgICIwLjExOTU4NSwgMC4xNjg5ODUsIDAuNDQ5MTcyLCAwLjY5NjI5MiwgMS4wMjUzMSwgMS42ODM0NSwgMi4wOTY0NiIsIFwKLSAgICAgICAgICAiMC4xMzQ4NjgsIDAuMTgzODk4LCAwLjQ2MTcxNiwgMC43MDkxNjEsIDEuMDM4MDUsIDEuNjk2NjcsIDIuMTA4NzkiLCBcCi0gICAgICAgICAgIjAuMTQ5NzgsIDAuMTk4NzkxLCAwLjQ3ODI0OSwgMC43MjMwOCwgMS4wNTI0NiwgMS43MTExOSwgMi4xMjE3IiwgXAotICAgICAgICAgICIwLjE3Mzc3MiwgMC4yMjMxMjYsIDAuNTAxODIsIDAuNzQ1Mzg2LCAxLjA3NDk1LCAxLjczMzI5LCAyLjE0NDciLCBcCi0gICAgICAgICAgIjAuMTk0OTUsIDAuMjQ0MTUsIDAuNTIyNzMzLCAwLjc2OTY3MywgMS4wOTQ2NywgMS43NTMxMywgMi4xNjUyNyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNzQ3MTIsIDAuMjcyNzQyLCAwLjgyOTE2MywgMS4zMTgzNSwgMS45NzY1OSwgMy4yODE4LCA0LjA5NTQ3IiwgXAotICAgICAgICAgICIwLjE3NDUxOSwgMC4yNzI2NDEsIDAuODI5Njg1LCAxLjMxODQxLCAxLjk3NjM0LCAzLjI4NzExLCA0LjA5NjQzIiwgXAotICAgICAgICAgICIwLjE3NDQ4NywgMC4yNzIzNTYsIDAuODI4NSwgMS4zMTk3NCwgMS45NzQyMiwgMy4yNzcxMywgNC4xMDIyNCIsIFwKLSAgICAgICAgICAiMC4xNzY4OTQsIDAuMjcyNTQzLCAwLjgzMDY3OCwgMS4zMjA4NiwgMS45NzM2NCwgMy4yODI3OSwgNC4wOTQxOCIsIFwKLSAgICAgICAgICAiMC4xODA1OTksIDAuMjc0MzIzLCAwLjgyNzcwMywgMS4zMTg3NiwgMS45NzIyNiwgMy4yNzkzMywgNC4xMDE0MyIsIFwKLSAgICAgICAgICAiMC4xODgzNzksIDAuMjc5ODY2LCAwLjgyNzc2NiwgMS4zMTk2NywgMS45NzE4NSwgMy4yODEzMiwgNC4xMDAyNSIsIFwKLSAgICAgICAgICAiMC4xOTc0NCwgMC4yODU2MDgsIDAuODI5MTQ0LCAxLjMxOTkyLCAxLjk3MTkzLCAzLjI4NzIyLCA0LjA5NTQ5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwOTQ0LCAwLjAwMDk0NSwgMC4wMDA5NDYsIDAuMDAwOTQ2LCAwLjAwMDk0NiwgMC4wMDA5NDYsIDAuMDAwOTQ2IiwgXAotICAgICAgICAgICIwLjAwMDkzNywgMC4wMDA5NCwgMC4wMDA5NDQsIDAuMDAwOTQ1LCAwLjAwMDk0NSwgMC4wMDA5NDYsIDAuMDAwOTQ2IiwgXAotICAgICAgICAgICIwLjAwMDkzMSwgMC4wMDA5MzUsIDAuMDAwOTQyLCAwLjAwMDk0NCwgMC4wMDA5NDMsIDAuMDAwOTQ1LCAwLjAwMDk0NSIsIFwKLSAgICAgICAgICAiMC4wMDA5MjQsIDAuMDAwOTMxLCAwLjAwMDk0MSwgMC4wMDA5NDMsIDAuMDAwOTQ0LCAwLjAwMDk0NSwgMC4wMDA5NDUiLCBcCi0gICAgICAgICAgIjAuMDAwOTE5LCAwLjAwMDkyNywgMC4wMDA5MzksIDAuMDAwOTQyLCAwLjAwMDk0MywgMC4wMDA5NDQsIDAuMDAwOTQ1IiwgXAotICAgICAgICAgICIwLjAwMDkxNCwgMC4wMDA5MjIsIDAuMDAwOTM1LCAwLjAwMDk0LCAwLjAwMDk0MiwgMC4wMDA5NDQsIDAuMDAwOTQ0IiwgXAotICAgICAgICAgICIwLjAwMDkxLCAwLjAwMDkxOSwgMC4wMDA5MzUsIDAuMDAwOTM4LCAwLjAwMDk0MSwgMC4wMDA5NDMsIDAuMDAwOTQ0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwMDUsIDAuMDAwMDUxLCAwLjAwMDA1MiwgMC4wMDAwNTMsIDAuMDAwMDUzLCAwLjAwMDA1MywgMC4wMDAwNTMiLCBcCi0gICAgICAgICAgIjAuMDAwMDQsIDAuMDAwMDQ0LCAwLjAwMDA1LCAwLjAwMDA1MSwgMC4wMDAwNTIsIDAuMDAwMDUyLCAwLjAwMDA1MiIsIFwKLSAgICAgICAgICAiMC4wMDAwMjksIDAuMDAwMDM3LCAwLjAwMDA0NywgMC4wMDAwNSwgMC4wMDAwNTEsIDAuMDAwMDUyLCAwLjAwMDA1MiIsIFwKLSAgICAgICAgICAiMC4wMDAwMjIsIDAuMDAwMDMxLCAwLjAwMDA0NSwgMC4wMDAwNDgsIDAuMDAwMDUsIDAuMDAwMDUxLCAwLjAwMDA1MiIsIFwKLSAgICAgICAgICAiMC4wMDAwMTUsIDAuMDAwMDI2LCAwLjAwMDA0MiwgMC4wMDAwNDYsIDAuMDAwMDQ4LCAwLjAwMDA1LCAwLjAwMDA1MSIsIFwKLSAgICAgICAgICAiMC4wMDAwMDcsIDAuMDAwMDE5LCAwLjAwMDAzOSwgMC4wMDAwNDQsIDAuMDAwMDQ3LCAwLjAwMDA0OSwgMC4wMDAwNSIsIFwKLSAgICAgICAgICAiMC4wMDAwMDIsIDAuMDAwMDE0LCAwLjAwMDAzNiwgMC4wMDAwNDIsIDAuMDAwMDQ1LCAwLjAwMDA0OCwgMC4wMDAwNDkiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IElOVlgxMiAqCi0gKiAtLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKElOVlgxMikgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjM5NDA4OTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDA4NTE1Njg7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDA4NTA5NTc7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDA4NTE1Njg7Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMS41Mzc2NjsKLSAgICBmdW5jdGlvbiA6ICIoIUEpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTUzMzIsIDAuMDE5MDI2LCAwLjAzOTg1NywgMC4wNTgxMjIsIDAuMDgyNTM1LCAwLjEzMTM3MSwgMC4xNjE3ODUiLCBcCi0gICAgICAgICAgIjAuMDI2OTQxLCAwLjAzMDYzMywgMC4wNTEzMywgMC4wNjk2ODYsIDAuMDk0MTA0LCAwLjE0Mjk0NywgMC4xNzM0MDciLCBcCi0gICAgICAgICAgIjAuMDQwMjE5LCAwLjA0NDk3NSwgMC4wNjYxNzMsIDAuMDg0NTA4LCAwLjEwODc2MiwgMC4xNTc0MjMsIDAuMTg3OTE3IiwgXAotICAgICAgICAgICIwLjA1MDk2NCwgMC4wNTcwNDUsIDAuMDgxMTg3LCAwLjA5OTQ3LCAwLjEyMzg3NywgMC4xNzI2NiwgMC4yMDMxNTQiLCBcCi0gICAgICAgICAgIjAuMDU5ODAzLCAwLjA2NzQ3OSwgMC4wOTU3MTMsIDAuMTE0MTMxLCAwLjEzNzkwNiwgMC4xODY5NjYsIDAuMjE3MzU0IiwgXAotICAgICAgICAgICIwLjA3MjkyNywgMC4wODIxMjQsIDAuMTE3MTQ3LCAwLjEzODEzNSwgMC4xNjIyMzksIDAuMjEwOTU2LCAwLjI0MTQwNSIsIFwKLSAgICAgICAgICAiMC4wODMxNTQsIDAuMDkzNTYzLCAwLjEzMzU4OCwgMC4xNTc2NjcsIDAuMTgzMzg4LCAwLjIzMTY4NiwgMC4yNjIxMiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjIwMzQsIDAuMDI5NDI5LCAwLjA3MTU5MiwgMC4xMDg4MTIsIDAuMTU4MzI2LCAwLjI1NzU5MywgMC4zMTkzNDQiLCBcCi0gICAgICAgICAgIjAuMDI0OTU4LCAwLjAzMTYsIDAuMDcxODA4LCAwLjEwOTAyMSwgMC4xNTg3MiwgMC4yNTc3MDMsIDAuMzE5MzkzIiwgXAotICAgICAgICAgICIwLjAzMzQzOCwgMC4wMzg4ODgsIDAuMDc1NjI1LCAwLjExMDczOCwgMC4xNTkxMzksIDAuMjU3OTkzLCAwLjMxOTQzMiIsIFwKLSAgICAgICAgICAiMC4wNDI4OTIsIDAuMDQ4MTU4LCAwLjA4MTc2NiwgMC4xMTQ5NDQsIDAuMTYxNjE2LCAwLjI1ODQ3NSwgMC4zMjAyMzUiLCBcCi0gICAgICAgICAgIjAuMDUxOTQ3LCAwLjA1ODE5NiwgMC4wODkzOTEsIDAuMTIxMjM5LCAwLjE2NjUyMiwgMC4yNjA2NzcsIDAuMzIxMDU5IiwgXAotICAgICAgICAgICIwLjA2NTU2OCwgMC4wNzI2OTEsIDAuMTAzMzAyLCAwLjEzMjcxLCAwLjE3NTU3NywgMC4yNjYzMjgsIDAuMzI1Mjk2IiwgXAotICAgICAgICAgICIwLjA3NTI3NiwgMC4wODQyMDcsIDAuMTE2NjgsIDAuMTQ0MDg0LCAwLjE4NDg1NCwgMC4yNzM0OTQsIDAuMzMwOTQ1Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxNzc4MywgMC4wMjIwOTksIDAuMDQ2MzM3LCAwLjA2NzU5OCwgMC4wOTU5OTMsIDAuMTUyNzQ4LCAwLjE4ODIyOSIsIFwKLSAgICAgICAgICAiMC4wMjkzMzEsIDAuMDMzNjY0LCAwLjA1ODA4NCwgMC4wNzk0NjYsIDAuMTA3ODQyLCAwLjE2NDYzNywgMC4yMDAwODEiLCBcCi0gICAgICAgICAgIjAuMDQzNjE3LCAwLjA0ODU5OSwgMC4wNzI4MDksIDAuMDk0MTk4LCAwLjEyMjA4NiwgMC4xNzkwODgsIDAuMjEzNjYiLCBcCi0gICAgICAgICAgIjAuMDU1Mzc1LCAwLjA2MTg1MiwgMC4wODc4NTUsIDAuMTA5MDQxLCAwLjEzNzUwMSwgMC4xOTM4NiwgMC4yMjkyNTgiLCBcCi0gICAgICAgICAgIjAuMDY1OTkyLCAwLjA3MzMxNSwgMC4xMDI5NTgsIDAuMTI0MjI0LCAwLjE1MjUzNCwgMC4yMDkyMiwgMC4yNDQ3MDgiLCBcCi0gICAgICAgICAgIjAuMDgwNzA3LCAwLjA5MDA1NCwgMC4xMjU5OTgsIDAuMTQ4Mzg4LCAwLjE3NjM3NCwgMC4yMzMxMTQsIDAuMjY4MDQ3IiwgXAotICAgICAgICAgICIwLjA5MjAzMSwgMC4xMDMzNTYsIDAuMTQ0MzMsIDAuMTY4OTA1LCAwLjE5NzcyNSwgMC4yNTQyMzgsIDAuMjg5NjMyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyNDYxNSwgMC4wMzMwNjcsIDAuMDgwOTk1LCAwLjEyMzA2NiwgMC4xNzkzNzMsIDAuMjkyNDMxLCAwLjM2MzA4NCIsIFwKLSAgICAgICAgICAiMC4wMjY3MDcsIDAuMDM0NDY5LCAwLjA4MDk4LCAwLjEyMzE1NCwgMC4xNzk1NTksIDAuMjkyMTUzLCAwLjM2MzU1MSIsIFwKLSAgICAgICAgICAiMC4wMzQwNTQsIDAuMDQwNzU1LCAwLjA4MzYzOCwgMC4xMjQzODIsIDAuMTgwMDQ0LCAwLjI5MjM2NSwgMC4zNjM1NjMiLCBcCi0gICAgICAgICAgIjAuMDQzNjUxLCAwLjA0OTM2MSwgMC4wODg4NiwgMC4xMjc1MjEsIDAuMTgxNzAzLCAwLjI5MjA1LCAwLjM2MzU1MiIsIFwKLSAgICAgICAgICAiMC4wNTI2NjcsIDAuMDU5MzE1LCAwLjA5NTQ5LCAwLjEzMjU0NywgMC4xODUxMzIsIDAuMjkyODYsIDAuMzYyNDI1IiwgXAotICAgICAgICAgICIwLjA2NjkyNCwgMC4wNzQwMjMsIDAuMTA4MjE0LCAwLjE0MzAzMywgMC4xOTMxOTYsIDAuMjk4NDMsIDAuMzY2NTAzIiwgXAotICAgICAgICAgICIwLjA3Nzc1MywgMC4wODU5NzksIDAuMTIwOTExLCAwLjE1NDAxOSwgMC4yMDE1NDUsIDAuMzAzOTUzLCAwLjM3MDY5NiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMDI3NCwgMC4wMTAzMSwgMC4wMTAzNzcsIDAuMDEwMzk2LCAwLjAxMDQwMywgMC4wMTA0MTEsIDAuMDEwNDEzIiwgXAotICAgICAgICAgICIwLjAwOTkzNCwgMC4wMTAwMTEsIDAuMDEwMjA4LCAwLjAxMDI3NSwgMC4wMTAzMTksIDAuMDEwMzU5LCAwLjAxMDM3MSIsIFwKLSAgICAgICAgICAiMC4wMDk3ODEsIDAuMDA5ODQ0LCAwLjAxMDA2NywgMC4wMTAxNjIsIDAuMDEwMjMxLCAwLjAxMDI5MSwgMC4wMTAzMjEiLCBcCi0gICAgICAgICAgIjAuMDA5NzMxLCAwLjAwOTc4MSwgMC4wMDk5NzgsIDAuMDEwMDgxLCAwLjAxMDE2MywgMC4wMTAyNSwgMC4wMTAyNTkiLCBcCi0gICAgICAgICAgIjAuMDA5NzE5LCAwLjAwOTc0OCwgMC4wMDk5MDIsIDAuMDEwMDExLCAwLjAxMDA5OCwgMC4wMTAyMDEsIDAuMDEwMjM4IiwgXAotICAgICAgICAgICIwLjAwOTc0LCAwLjAwOTc0MywgMC4wMDk4NTcsIDAuMDA5OTQ5LCAwLjAxMDAzNSwgMC4wMTAxNDcsIDAuMDEwMTg4IiwgXAotICAgICAgICAgICIwLjAwOTcwOCwgMC4wMDk3NTcsIDAuMDA5ODUyLCAwLjAwOTkwOSwgMC4wMDk5OTEsIDAuMDEwMTExLCAwLjAxMDE0NiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDU5OCwgMC4wMDA2NDgsIDAuMDAwNzQzLCAwLjAwMDc2NiwgMC4wMDA3ODEsIDAuMDAwNzk1LCAwLjAwMDc5OCIsIFwKLSAgICAgICAgICAiMC4wMDAxNCwgMC4wMDAyMzksIDAuMDAwNTE1LCAwLjAwMDYwMywgMC4wMDA2NjQsIDAuMDAwNzE5LCAwLjAwMDczNyIsIFwKLSAgICAgICAgICAiMC4wMDAwNjUsIDAuMDAwMDE3LCAwLjAwMDMwOSwgMC4wMDA0MzcsIDAuMDAwNTI4LCAwLjAwMDYyOSwgMC4wMDA2NTgiLCBcCi0gICAgICAgICAgIjAuMDAwMTI3LCAwLjAwMDA3LCAwLjAwMDE4NSwgMC4wMDAzMiwgMC4wMDA0MzUsIDAuMDAwNTU1LCAwLjAwMDU5OSIsIFwKLSAgICAgICAgICAiMC4wMDAxNjcsIDAuMDAwMTE5LCAwLjAwMDEwNSwgMC4wMDAyNDEsIDAuMDAwMzU4LCAwLjAwMDQ5NiwgMC4wMDA1NDciLCBcCi0gICAgICAgICAgIjAuMDAwMDk4LCAwLjAwMDEwMSwgMC4wMDAwMjQsIDAuMDAwMTQyLCAwLjAwMDI2MSwgMC4wMDA0MTEsIDAuMDAwNDcxIiwgXAotICAgICAgICAgICIwLjAwMDE0MSwgMC4wMDAxMjcsIDAuMDAwMDA4LCAwLjAwMDA4NywgMC4wMDAyMDQsIDAuMDAwMzUsIDAuMDAwNDE1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IElOVlgyICoKLSAqIC0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChJTlZYMikgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjA2NjQ0ODsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNTQ0MjY7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNTQzNDQ7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNTQ0MjY7Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4yNjY5Njg7Ci0gICAgZnVuY3Rpb24gOiAiKCFBKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQ0NjQsIDAuMjIyNzUzLCAwLjM2NTMzOCwgMC41NDMyMzEsIDAuNzIxNjI5LCAwLjg5OTQzNSwgMS4wNzc0MiIsIFwKLSAgICAgICAgICAiMC4wNTYxMjEsIDAuMjM0MzMyLCAwLjM3Njc0LCAwLjU1NDkzNSwgMC43MzMwMDMsIDAuOTExMzU0LCAxLjA4OTExIiwgXAotICAgICAgICAgICIwLjA3MDk5MywgMC4yNDg3ODUsIDAuMzg5MjU3LCAwLjU2NzMyNywgMC43NDUzMzUsIDAuOTIzOTE5LCAxLjEwMTczIiwgXAotICAgICAgICAgICIwLjA4NTc1OCwgMC4yNjM1NjksIDAuNDA1ODE4LCAwLjU4MzYwOSwgMC43NjE5MzksIDAuOTQwMTQzLCAxLjExNzkzIiwgXAotICAgICAgICAgICIwLjEwMDkzMiwgMC4yNzc5NTUsIDAuNDIwMjExLCAwLjU5NjA2NywgMC43NzQ0NzUsIDAuOTUxOTg4LCAxLjEzMDgyIiwgXAotICAgICAgICAgICIwLjEyMzEyLCAwLjMwMTcxOSwgMC40NDM2MDcsIDAuNjIxNDEzLCAwLjc5NjM2NSwgMC45NzQzNTIsIDEuMTUzMDgiLCBcCi0gICAgICAgICAgIjAuMTQwNzQ4LCAwLjMyMjQxNSwgMC40NjQzNDgsIDAuNjQxODQzLCAwLjgxNjM1MiwgMC45OTQzNTYsIDEuMTcyMzQiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDgxNTQxLCAwLjQ0MzY0MywgMC43MzM2NzMsIDEuMDk1NjYsIDEuNDU4MjcsIDEuODE5NzgsIDIuMTgyMjUiLCBcCi0gICAgICAgICAgIjAuMDgxNzczLCAwLjQ0Mzk2LCAwLjczMzIxOCwgMS4wOTU0OCwgMS40NTc1OSwgMS44MjA1LCAyLjE4MiIsIFwKLSAgICAgICAgICAiMC4wODQ5OTEsIDAuNDQzNjQ3LCAwLjczNDk3NCwgMS4wOTgwNiwgMS40NTczNiwgMS44MjAwNCwgMi4xODE4NiIsIFwKLSAgICAgICAgICAiMC4wOTA3MiwgMC40NDM1NiwgMC43MzMxNTMsIDEuMDk3OCwgMS40NTg4NywgMS44MTk3OCwgMi4xODY5OCIsIFwKLSAgICAgICAgICAiMC4wOTc2NTgsIDAuNDQzMzY1LCAwLjczMzA4MywgMS4wOTYzNywgMS40NTgxNSwgMS44MTkzOCwgMi4xODI0MSIsIFwKLSAgICAgICAgICAiMC4xMTA4OTIsIDAuNDQ1MDQsIDAuNzMzMjE3LCAxLjA5ODI3LCAxLjQ2MDgzLCAxLjgxOTAzLCAyLjE4Mjc2IiwgXAotICAgICAgICAgICIwLjEyNDAxOSwgMC40NDk3MDYsIDAuNzM1MDI1LCAxLjA5NTI4LCAxLjQ1NzYyLCAxLjgyNDE0LCAyLjE4MDk3Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1MTU5NSwgMC4yNTc4ODUsIDAuNDIyOTc4LCAwLjYyODkxNSwgMC44MzU1MDMsIDEuMDQxMzEsIDEuMjQ3NDEiLCBcCi0gICAgICAgICAgIjAuMDYzMjQyLCAwLjI2OTYwNywgMC40MzQ0OTcsIDAuNjQwNjYsIDAuODQ2NTUyLCAxLjA1Mjk3LCAxLjI1ODkzIiwgXAotICAgICAgICAgICIwLjA3ODIwMywgMC4yODI5OTYsIDAuNDQ3OTY2LCAwLjY1NDA1NCwgMC44NjAxOTMsIDEuMDY2MjMsIDEuMjcyNDUiLCBcCi0gICAgICAgICAgIjAuMDkzMDc3LCAwLjI5ODc5OSwgMC40NjM3NDEsIDAuNjcwMjgsIDAuODc1MTIzLCAxLjA3Nzc1LCAxLjI4Mzk3IiwgXAotICAgICAgICAgICIwLjEwODI4NCwgMC4zMTM2NzksIDAuNDc4NDYxLCAwLjY4NDYxLCAwLjg5MTMwNywgMS4wOTcxNywgMS4zMDM0MSIsIFwKLSAgICAgICAgICAiMC4xMzIwNDQsIDAuMzM3NTUyLCAwLjUwMjAyMywgMC43MDgyMDUsIDAuOTExMDc2LCAxLjExNjg5LCAxLjMyMzg4IiwgXAotICAgICAgICAgICIwLjE1MTUyNCwgMC4zNTg1MzMsIDAuNTIyOTU5LCAwLjcyODY4LCAwLjkzMTAwNiwgMS4xMzcyNiwgMS4zNDMxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5MjExNiwgMC41MDIyMDQsIDAuODMyMDI4LCAxLjI0Mjk1LCAxLjY1Mzg4LCAyLjA2MzQ1LCAyLjQ3NjAxIiwgXAotICAgICAgICAgICIwLjA5MTk4NSwgMC41MDI1ODMsIDAuODMwNzc2LCAxLjI0MjEsIDEuNjU2NzcsIDIuMDYzNywgMi40NzE5OSIsIFwKLSAgICAgICAgICAiMC4wOTQyMTUsIDAuNTAyODQxLCAwLjgzMTM5NywgMS4yNDE3MywgMS42NTQxNSwgMi4wNjEyMSwgMi40NzU2MyIsIFwKLSAgICAgICAgICAiMC4wOTkyMzMsIDAuNTAyMjE0LCAwLjgzMjg0NCwgMS4yNDI0MywgMS42NTY0MiwgMi4wNjI4MywgMi40ODAwNSIsIFwKLSAgICAgICAgICAiMC4xMDU1MTEsIDAuNTAyMjY0LCAwLjgzMjkwMSwgMS4yNDA2MiwgMS42NTMwOSwgMi4wNjQzMSwgMi40NzY3MyIsIFwKLSAgICAgICAgICAiMC4xMTcyMDIsIDAuNTA0NDA5LCAwLjgzMDQyMSwgMS4yNDI2NiwgMS42NTU2OSwgMi4wNjA3LCAyLjQ3NTY2IiwgXAotICAgICAgICAgICIwLjEyOTAyNCwgMC41MDUwNjcsIDAuODMwMzk1LCAxLjI0NDE0LCAxLjY1MzU1LCAyLjA2MzY4LCAyLjQ3OTk1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxNzAzLCAwLjAwMTcwOSwgMC4wMDE3MDksIDAuMDAxNzA5LCAwLjAwMTcxLCAwLjAwMTcxLCAwLjAwMTcxIiwgXAotICAgICAgICAgICIwLjAwMTY3OSwgMC4wMDE3MDQsIDAuMDAxNzA2LCAwLjAwMTcwOCwgMC4wMDE3MDgsIDAuMDAxNzA5LCAwLjAwMTcwOSIsIFwKLSAgICAgICAgICAiMC4wMDE2NTgsIDAuMDAxNjk4LCAwLjAwMTcwMiwgMC4wMDE3MDUsIDAuMDAxNzA2LCAwLjAwMTcwOCwgMC4wMDE3MDciLCBcCi0gICAgICAgICAgIjAuMDAxNjQyLCAwLjAwMTY5MywgMC4wMDE2OTksIDAuMDAxNzAyLCAwLjAwMTcwNSwgMC4wMDE3MDYsIDAuMDAxNzA3IiwgXAotICAgICAgICAgICIwLjAwMTYyOSwgMC4wMDE2ODQsIDAuMDAxNjk2LCAwLjAwMTcsIDAuMDAxNzAzLCAwLjAwMTcwNSwgMC4wMDE3MDUiLCBcCi0gICAgICAgICAgIjAuMDAxNjIyLCAwLjAwMTY4MSwgMC4wMDE2OTEsIDAuMDAxNjk3LCAwLjAwMTcsIDAuMDAxNzAyLCAwLjAwMTcwNCIsIFwKLSAgICAgICAgICAiMC4wMDE2MTgsIDAuMDAxNjc2LCAwLjAwMTY4OCwgMC4wMDE2OTUsIDAuMDAxNjk4LCAwLjAwMTcwMSwgMC4wMDE3MDIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDAxMDUsIDAuMDAwMTE0LCAwLjAwMDExNSwgMC4wMDAxMTUsIDAuMDAwMTE1LCAwLjAwMDExNSwgMC4wMDAxMTYiLCBcCi0gICAgICAgICAgIjAuMDAwMDcxLCAwLjAwMDEwNywgMC4wMDAxMSwgMC4wMDAxMTIsIDAuMDAwMTEzLCAwLjAwMDExNCwgMC4wMDAxMTQiLCBcCi0gICAgICAgICAgIjAuMDAwMDQxLCAwLjAwMDA5NywgMC4wMDAxMDUsIDAuMDAwMTA4LCAwLjAwMDExMSwgMC4wMDAxMTIsIDAuMDAwMTEzIiwgXAotICAgICAgICAgICIwLjAwMDAyMSwgMC4wMDAwOSwgMC4wMDAxLCAwLjAwMDEwNSwgMC4wMDAxMDgsIDAuMDAwMTA5LCAwLjAwMDExIiwgXAotICAgICAgICAgICIwLjAwMDAwNSwgMC4wMDAwODIsIDAuMDAwMDk0LCAwLjAwMDEwMSwgMC4wMDAxMDUsIDAuMDAwMTA3LCAwLjAwMDEwOSIsIFwKLSAgICAgICAgICAiMC4wMDAwMDcsIDAuMDAwMDczLCAwLjAwMDA4OCwgMC4wMDAwOTcsIDAuMDAwMTAxLCAwLjAwMDEwNCwgMC4wMDAxMDYiLCBcCi0gICAgICAgICAgIjAuMDAwMDEzLCAwLjAwMDA2NSwgMC4wMDAwODIsIDAuMDAwMDkyLCAwLjAwMDA5NywgMC4wMDAxMDEsIDAuMDAwMTAzIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IElOVlgzICoKLSAqIC0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChJTlZYMykgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjA5OTY1ODE7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMjE4MTQ0OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMjE3OTk0OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMjE4MTQ0OwotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMzkyODg7Ci0gICAgZnVuY3Rpb24gOiAiKCFBKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzM0MjksIDAuMjAyNzYzLCAwLjM3MTk0MiwgMC40OTMwNzQsIDAuNjg2MjIsIDAuODU2MDEsIDEuMDk3NDciLCBcCi0gICAgICAgICAgIjAuMDQ0ODY4LCAwLjIxNDI5OSwgMC4zODM1MjYsIDAuNTA0NjksIDAuNjk3ODYsIDAuODY3NjI4LCAxLjEwOTA1IiwgXAotICAgICAgICAgICIwLjA1OTc4MiwgMC4yMjg3NTcsIDAuMzk4MjMsIDAuNTE4ODc5LCAwLjcxMjQzMiwgMC44ODE2ODYsIDEuMTIzNzYiLCBcCi0gICAgICAgICAgIjAuMDc0Njc2LCAwLjI0MzMyNCwgMC40MTA2NjksIDAuNTMxNTg5LCAwLjcyNDkyMSwgMC44OTQxNzEsIDEuMTM2NCIsIFwKLSAgICAgICAgICAiMC4wODgzOSwgMC4yNTc5MzYsIDAuNDI2OTI1LCAwLjU0Nzc4MSwgMC43NDEyNTQsIDAuOTA2MDcyLCAxLjE0NzU5IiwgXAotICAgICAgICAgICIwLjEwNzYyNiwgMC4yODIwODQsIDAuNDUwODc1LCAwLjU3MTUyNywgMC43NjQ3MjIsIDAuOTMzNzY1LCAxLjE3NTUzIiwgXAotICAgICAgICAgICIwLjEyMjU1MiwgMC4zMDI4MDksIDAuNDcwOTkzLCAwLjU5MTQ0NSwgMC43ODQ3NTksIDAuOTUzOTYxLCAxLjE5MDg1Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU4NjA0LCAwLjQwMjQyMiwgMC43NDc5NzUsIDAuOTkxNzM5LCAxLjM4OCwgMS43Mjk1LCAyLjIyMDAzIiwgXAotICAgICAgICAgICIwLjA1OTE5LCAwLjQwMjMxMywgMC43NDc4MTEsIDAuOTkxNzAyLCAxLjM4Nzc4LCAxLjcyOTQ5LCAyLjIyMDExIiwgXAotICAgICAgICAgICIwLjA2Mzg1MSwgMC40MDI0NzUsIDAuNzQ2NjAyLCAwLjk5NDE3MSwgMS4zODQ5NCwgMS43Mjg3MiwgMi4yMTk4MiIsIFwKLSAgICAgICAgICAiMC4wNzA2OTUsIDAuNDAzMTIzLCAwLjc0NjA3MSwgMC45OTI3MzMsIDEuMzg0NjEsIDEuNzI4NDIsIDIuMjE5OTQiLCBcCi0gICAgICAgICAgIjAuMDc5MjIxLCAwLjQwMzUyNCwgMC43NDc5NSwgMC45OTE1OTgsIDEuMzg1OTksIDEuNzI4NzgsIDIuMjIxNDkiLCBcCi0gICAgICAgICAgIjAuMDk0NDc2LCAwLjQwNTY1OSwgMC43NDY3MjQsIDAuOTk0NDQxLCAxLjM4NDQsIDEuNzI4MDIsIDIuMjIwMzIiLCBcCi0gICAgICAgICAgIjAuMTA4NTIsIDAuNDA5ODcsIDAuNzQ4MjM0LCAwLjk5NDQwNCwgMS4zODU4NiwgMS43MzI3NywgMi4yMjA0Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM4NDc1LCAwLjIzMzEyMiwgMC40Mjc2OTUsIDAuNTY2NzAxLCAwLjc4OTA1NCwgMC45ODM3MTMsIDEuMjYyMDkiLCBcCi0gICAgICAgICAgIjAuMDQ5OTQzLCAwLjI0NDg2MSwgMC40MzkzMTIsIDAuNTc4MzExLCAwLjgwMDQ3MywgMC45OTUwNiwgMS4yNzMxNyIsIFwKLSAgICAgICAgICAiMC4wNjQ5NTEsIDAuMjU5MzkzLCAwLjQ1MzkzMywgMC41OTI3NzIsIDAuODE1MjE1LCAxLjAwOTk0LCAxLjI4NzMyIiwgXAotICAgICAgICAgICIwLjA4MDAyOCwgMC4yNzQwNTcsIDAuNDY3MjI2LCAwLjYwNjE5MSwgMC44MjgzOTYsIDEuMDIzMDUsIDEuMzAwODIiLCBcCi0gICAgICAgICAgIjAuMDk0NzE0LCAwLjI4ODkxNCwgMC40ODMxNywgMC42MjIzMzIsIDAuODQxMjYsIDEuMDM1NjEsIDEuMzEzNjIiLCBcCi0gICAgICAgICAgIjAuMTE2MzI3LCAwLjMxMjUxMSwgMC41MDY2MjcsIDAuNjQ1NjI2LCAwLjg2Nzk1LCAxLjA2MjQxLCAxLjM0MDMiLCBcCi0gICAgICAgICAgIjAuMTMzMTk1LCAwLjMzNDMyLCAwLjUyNzgwOCwgMC42NjQzODksIDAuODg2NjYxLCAxLjA4MTQxLCAxLjM1OTA3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY1NTUsIDAuNDUyOTM4LCAwLjg0MDIwMSwgMS4xMTUzNywgMS41NTg3NywgMS45NDM4MiwgMi40OTk2MiIsIFwKLSAgICAgICAgICAiMC4wNjU3NzMsIDAuNDUyMTMxLCAwLjgzOTE1NSwgMS4xMTUyNywgMS41NjI1LCAxLjk0MzkxLCAyLjQ5OTczIiwgXAotICAgICAgICAgICIwLjA2OTM2NywgMC40NTI1NDYsIDAuODM4ODczLCAxLjExNzc0LCAxLjU1NjQ3LCAxLjk0NDk3LCAyLjUwMTgzIiwgXAotICAgICAgICAgICIwLjA3NTQ0MywgMC40NTIzMzUsIDAuODQxMjc4LCAxLjExNzQ2LCAxLjU2MjQyLCAxLjk0MzYxLCAyLjQ5ODciLCBcCi0gICAgICAgICAgIjAuMDgzMTAxLCAwLjQ1Mzc0NywgMC44NDE4MDcsIDEuMTE1NjYsIDEuNTU4OSwgMS45NDM0NSwgMi40OTcwMyIsIFwKLSAgICAgICAgICAiMC4wOTY5MDIsIDAuNDUzNzIxLCAwLjgzODc1MywgMS4xMTQ4OCwgMS41NjEyMSwgMS45NDMyMiwgMi40OTg3MSIsIFwKLSAgICAgICAgICAiMC4xMTA1NjcsIDAuNDU3NDMxLCAwLjgzODk1MiwgMS4xMTY0NCwgMS41NTcwMiwgMS45NDYyNCwgMi40OTU0MiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyNTg2LCAwLjAwMjU5OCwgMC4wMDI1OTksIDAuMDAyNTk5LCAwLjAwMjYsIDAuMDAyNiwgMC4wMDI2IiwgXAotICAgICAgICAgICIwLjAwMjUzNywgMC4wMDI1OSwgMC4wMDI1OTMsIDAuMDAyNTk2LCAwLjAwMjU5NywgMC4wMDI1OTgsIDAuMDAyNTk5IiwgXAotICAgICAgICAgICIwLjAwMjQ5OSwgMC4wMDI1OCwgMC4wMDI1ODksIDAuMDAyNTkyLCAwLjAwMjU5NCwgMC4wMDI1OTYsIDAuMDAyNTk3IiwgXAotICAgICAgICAgICIwLjAwMjQ3NiwgMC4wMDI1NywgMC4wMDI1ODMsIDAuMDAyNTksIDAuMDAyNTkxLCAwLjAwMjU5NCwgMC4wMDI1OTUiLCBcCi0gICAgICAgICAgIjAuMDAyNDYzLCAwLjAwMjU2LCAwLjAwMjU4LCAwLjAwMjU4NCwgMC4wMDI1ODksIDAuMDAyNTksIDAuMDAyNTk2IiwgXAotICAgICAgICAgICIwLjAwMjQ0OSwgMC4wMDI1NTEsIDAuMDAyNTc0LCAwLjAwMjU3OCwgMC4wMDI1ODUsIDAuMDAyNTg4LCAwLjAwMjU5MSIsIFwKLSAgICAgICAgICAiMC4wMDI0NDgsIDAuMDAyNTQyLCAwLjAwMjU2NiwgMC4wMDI1NzMsIDAuMDAyNTgxLCAwLjAwMjU4MywgMC4wMDI1ODgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDE2MSwgMC4wMDAxOCwgMC4wMDAxODIsIDAuMDAwMTgyLCAwLjAwMDE4MiwgMC4wMDAxODMsIDAuMDAwMTgzIiwgXAotICAgICAgICAgICIwLjAwMDA5MywgMC4wMDAxNjcsIDAuMDAwMTc1LCAwLjAwMDE3NywgMC4wMDAxNzksIDAuMDAwMTgsIDAuMDAwMTgxIiwgXAotICAgICAgICAgICIwLjAwMDA0LCAwLjAwMDE1MiwgMC4wMDAxNjYsIDAuMDAwMTcxLCAwLjAwMDE3NCwgMC4wMDAxNzYsIDAuMDAwMTc4IiwgXAotICAgICAgICAgICIwLjAwMDAwOSwgMC4wMDAxMzksIDAuMDAwMTU4LCAwLjAwMDE2NCwgMC4wMDAxNywgMC4wMDAxNzIsIDAuMDAwMTc1IiwgXAotICAgICAgICAgICIwLjAwMDAwOSwgMC4wMDAxMjcsIDAuMDAwMTUxLCAwLjAwMDE1OSwgMC4wMDAxNjUsIDAuMDAwMTY5LCAwLjAwMDE3MiIsIFwKLSAgICAgICAgICAiMC4wMDAwMiwgMC4wMDAxMTIsIDAuMDAwMTQxLCAwLjAwMDE1MSwgMC4wMDAxNiwgMC4wMDAxNjQsIDAuMDAwMTY5IiwgXAotICAgICAgICAgICIwLjAwMDAzMSwgMC4wMDAwOTgsIDAuMDAwMTMxLCAwLjAwMDE0MiwgMC4wMDAxNTMsIDAuMDAwMTU5LCAwLjAwMDE2NCIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBNREZGSFFYOCAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoTURGRkhRWDgpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC42NTI3ODI7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgZmYgKE4zMCxRQklOVCkgewotICAgIG5leHRfc3RhdGUgOiAiKChTMCBEMSkgKyAoIVMwIEQwKSkiOwotICAgIGNsb2NrZWRfb24gOiAiQ0siOwotICB9Ci0gIHBpbihDSykgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNTUyNzU2OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDU1MjQ5MzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA1NTI3NTY7Ci0gICAgY2xvY2sgOiB0cnVlOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjc4MiwgMC4wMDI3NywgMC4wMDI3NTksIDAuMDAyNzUzLCAwLjAwMjc0OCwgMC4wMDI3NDEsIDAuMDAyNzM4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA2MDkzLCAwLjAwNjA4MiwgMC4wMDYwNzUsIDAuMDA2MDY4LCAwLjAwNjA2NywgMC4wMDYwNzMsIDAuMDA2MDc3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRDAmIUQxJiFTMCI7Ci0gICAgICBzZGZfY29uZCA6ICJEMF9FUV8wX0FOX0QxX0VRXzBfQU5fUzBfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjI3NTQwMSwgMC4yODcyOTksIDAuMzAyMzksIDAuMzE3Nzc0LCAwLjMzMzI2NSwgMC4zNTc3MDIsIDAuMzc4OTEyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4yMDA2NjcsIDAuMjExOTk0LCAwLjIyNzExNCwgMC4yNDIwMzIsIDAuMjU2Njk4LCAwLjI3OTgxNSwgMC4yOTk0NCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRDApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDg3NjgwMTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA4NzM0ODM7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwODc2ODAxOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzE2MywgMC4wMDMxNDQsIDAuMDAzMTM0LCAwLjAwMzEyNywgMC4wMDMxMjEsIDAuMDAzMTE1LCAwLjAwMzExMSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNDY1OCwgMC4wMDQ2NDgsIDAuMDA0NjQyLCAwLjAwNDYzOCwgMC4wMDQ2MzYsIDAuMDA0NjMyLCAwLjAwNDYzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFTMCI7Ci0gICAgICBzZGZfY29uZCA6ICJTMCA9PSAxJ2IwIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wOTM3NSwgLTAuMDg4NzUsIC0wLjA3NjI1LCAtMC4wNjM3NSwgLTAuMDUxMjUsIC0wLjAzNSwgLTAuMDIiLCBcCi0gICAgICAgICAgIi0wLjEwNSwgLTAuMSwgLTAuMDg3NSwgLTAuMDc1LCAtMC4wNjI1LCAtMC4wNDYyNSwgLTAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjExNzUsIC0wLjExMjUsIC0wLjEsIC0wLjA4NzUsIC0wLjA3NSwgLTAuMDU4NzUsIC0wLjA0Mzc1IiwgXAotICAgICAgICAgICItMC4xMzYyNSwgLTAuMTI1LCAtMC4xMTI1LCAtMC4xLCAtMC4wODc1LCAtMC4wNzEyNSwgLTAuMDU2MjUiLCBcCi0gICAgICAgICAgIi0wLjE0ODc1LCAtMC4xMzc1LCAtMC4xMjUsIC0wLjExMjUsIC0wLjEsIC0wLjA4Mzc1LCAtMC4wNjg3NSIsIFwKLSAgICAgICAgICAiLTAuMTY1LCAtMC4xNiwgLTAuMTQ3NSwgLTAuMTM1LCAtMC4xMjI1LCAtMC4xMDYyNSwgLTAuMDkxMjUiLCBcCi0gICAgICAgICAgIi0wLjE4NjI1LCAtMC4xNzUsIC0wLjE2MjUsIC0wLjE1LCAtMC4xNDM3NSwgLTAuMTIxMjUsIC0wLjExMjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjI1LCAwLjAxNzUsIDAuMDMsIDAuMDQ4NzUsIDAuMDYxMjUsIDAuMDgzNzUsIDAuMTA1IiwgXAotICAgICAgICAgICItMC4wMDUsIDAuMDA2MjUsIDAuMDE4NzUsIDAuMDM3NSwgMC4wNSwgMC4wNzI1LCAwLjA5Mzc1IiwgXAotICAgICAgICAgICItMC4wMTc1LCAtMC4wMDYyNSwgMC4wMDYyNSwgMC4wMjUsIDAuMDM3NSwgMC4wNiwgMC4wODEyNSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAxODc1LCAtMC4wMDYyNSwgMC4wMTI1LCAwLjAyNSwgMC4wNDc1LCAwLjA2ODc1IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzEyNSwgLTAuMDEyNSwgMCwgMC4wMTI1LCAwLjAzNSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiLTAuMDU4NzUsIC0wLjA0NzUsIC0wLjAzNSwgLTAuMDE2MjUsIC0wLjAwMzc1LCAwLjAxODc1LCAwLjA0IiwgXAotICAgICAgICAgICItMC4wNzM3NSwgLTAuMDYyNSwgLTAuMDQzNzUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgMC4wMDM3NSwgMC4wMTg3NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIVMwIjsKLSAgICAgIHNkZl9jb25kIDogIlMwID09IDEnYjAiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE2MjUsIDAuMTUxMjUsIDAuMTMyNSwgMC4xMiwgMC4xMDc1LCAwLjA5MTI1LCAwLjA3NjI1IiwgXAotICAgICAgICAgICIwLjE3Mzc1LCAwLjE2MjUsIDAuMTQzNzUsIDAuMTMxMjUsIDAuMTE4NzUsIDAuMTAyNSwgMC4wODc1IiwgXAotICAgICAgICAgICIwLjE4NjI1LCAwLjE3NSwgMC4xNjI1LCAwLjE0Mzc1LCAwLjEzMTI1LCAwLjExNSwgMC4xIiwgXAotICAgICAgICAgICIwLjE5ODc1LCAwLjE4NzUsIDAuMTc1LCAwLjE1NjI1LCAwLjE0Mzc1LCAwLjEyNzUsIDAuMTE4NzUiLCBcCi0gICAgICAgICAgIjAuMjE3NSwgMC4yLCAwLjE4NzUsIDAuMTc1LCAwLjE2MjUsIDAuMTQsIDAuMTMxMjUiLCBcCi0gICAgICAgICAgIjAuMjMzNzUsIDAuMjIyNSwgMC4yMSwgMC4xOTEyNSwgMC4xNzg3NSwgMC4xNjI1LCAwLjE0NzUiLCBcCi0gICAgICAgICAgIjAuMjU1LCAwLjI0Mzc1LCAwLjIyNSwgMC4yMTI1LCAwLjIsIDAuMTgzNzUsIDAuMTY4NzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODc1LCAwLjA3NjI1LCAwLjA1NzUsIDAuMDQ1LCAwLjAyNjI1LCAwLjAwMzc1LCAtMC4wMTc1IiwgXAotICAgICAgICAgICIwLjA5ODc1LCAwLjA4NzUsIDAuMDY4NzUsIDAuMDU2MjUsIDAuMDM3NSwgMC4wMTUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICIwLjExMTI1LCAwLjEsIDAuMDg3NSwgMC4wNjg3NSwgMC4wNSwgMC4wMjc1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICIwLjEyMzc1LCAwLjExMjUsIDAuMSwgMC4wODEyNSwgMC4wNjI1LCAwLjA0LCAwLjAxODc1IiwgXAotICAgICAgICAgICIwLjEzNjI1LCAwLjEyNSwgMC4xMDYyNSwgMC4wOTM3NSwgMC4wNzUsIDAuMDUyNSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4xNTg3NSwgMC4xNDc1LCAwLjEyODc1LCAwLjExLCAwLjA5NzUsIDAuMDc1LCAwLjA1Mzc1IiwgXAotICAgICAgICAgICIwLjE3Mzc1LCAwLjE2MjUsIDAuMTQzNzUsIDAuMTMxMjUsIDAuMTEyNSwgMC4wOSwgMC4wNjg3NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRDEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDg0NzU4MTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA4NDM2MjM7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwODQ3NTgxOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzAyMiwgMC4wMDMwMDIsIDAuMDAyOTkyLCAwLjAwMjk4NSwgMC4wMDI5OCwgMC4wMDI5NzQsIDAuMDAyOTciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDQ4NDksIDAuMDA0ODM5LCAwLjAwNDgzMywgMC4wMDQ4MjksIDAuMDA0ODI3LCAwLjAwNDgyNCwgMC4wMDQ4MjEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiUzAiOwotICAgICAgc2RmX2NvbmQgOiAiUzAgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDkzNzUsIC0wLjA4MjUsIC0wLjA3LCAtMC4wNTc1LCAtMC4wNTEyNSwgLTAuMDM1LCAtMC4wMiIsIFwKLSAgICAgICAgICAiLTAuMTA1LCAtMC4wOTM3NSwgLTAuMDgxMjUsIC0wLjA2ODc1LCAtMC4wNjI1LCAtMC4wNDYyNSwgLTAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjExNzUsIC0wLjEwNjI1LCAtMC4xLCAtMC4wODc1LCAtMC4wNzUsIC0wLjA1ODc1LCAtMC4wNDM3NSIsIFwKLSAgICAgICAgICAiLTAuMTMsIC0wLjEyNSwgLTAuMTEyNSwgLTAuMSwgLTAuMDg3NSwgLTAuMDcxMjUsIC0wLjA1NjI1IiwgXAotICAgICAgICAgICItMC4xNDg3NSwgLTAuMTM3NSwgLTAuMTI1LCAtMC4xMTI1LCAtMC4xLCAtMC4wODM3NSwgLTAuMDY4NzUiLCBcCi0gICAgICAgICAgIi0wLjE2NSwgLTAuMTYsIC0wLjE0MTI1LCAtMC4xMzUsIC0wLjEyMjUsIC0wLjEwNjI1LCAtMC4wOTEyNSIsIFwKLSAgICAgICAgICAiLTAuMTg2MjUsIC0wLjE3NSwgLTAuMTYyNSwgLTAuMTUsIC0wLjEzNzUsIC0wLjEyMTI1LCAtMC4xMTI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMCwgMC4wMTc1LCAwLjAzLCAwLjA0MjUsIDAuMDU1LCAwLjA3NzUsIDAuMDk4NzUiLCBcCi0gICAgICAgICAgIi0wLjAxMTI1LCAwLjAwNjI1LCAwLjAxODc1LCAwLjAzMTI1LCAwLjA0Mzc1LCAwLjA3MjUsIDAuMDg3NSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxMjUsIDAuMDA2MjUsIDAuMDE4NzUsIDAuMDMxMjUsIDAuMDUzNzUsIDAuMDc1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLjAwNjI1LCAwLjAxODc1LCAwLjA0NzUsIDAuMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDMxMjUsIC0wLjAxODc1LCAtMC4wMDYyNSwgMC4wMTI1LCAwLjAzNSwgMC4wNSIsIFwKLSAgICAgICAgICAiLTAuMDY1LCAtMC4wNDc1LCAtMC4wMzUsIC0wLjAyMjUsIC0wLjAxLCAwLjAxMjUsIDAuMDMzNzUiLCBcCi0gICAgICAgICAgIi0wLjA3Mzc1LCAtMC4wNjI1LCAtMC4wNSwgLTAuMDM3NSwgLTAuMDI1LCAtMC4wMDI1LCAwLjAxODc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJTMCI7Ci0gICAgICBzZGZfY29uZCA6ICJTMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNjI1LCAwLjE1MTI1LCAwLjEzMjUsIDAuMTIsIDAuMTA3NSwgMC4wOTEyNSwgMC4wNzYyNSIsIFwKLSAgICAgICAgICAiMC4xNzM3NSwgMC4xNjI1LCAwLjE0Mzc1LCAwLjEzMTI1LCAwLjExODc1LCAwLjEwMjUsIDAuMDg3NSIsIFwKLSAgICAgICAgICAiMC4xODYyNSwgMC4xNzUsIDAuMTU2MjUsIDAuMTQzNzUsIDAuMTMxMjUsIDAuMTE1LCAwLjEiLCBcCi0gICAgICAgICAgIjAuMTk4NzUsIDAuMTg3NSwgMC4xNzUsIDAuMTU2MjUsIDAuMTQzNzUsIDAuMTI3NSwgMC4xMTI1IiwgXAotICAgICAgICAgICIwLjIxMTI1LCAwLjIsIDAuMTg3NSwgMC4xNjg3NSwgMC4xNjI1LCAwLjE0LCAwLjEzMTI1IiwgXAotICAgICAgICAgICIwLjIzMzc1LCAwLjIyMjUsIDAuMjEsIDAuMTkxMjUsIDAuMTc4NzUsIDAuMTYyNSwgMC4xNDc1IiwgXAotICAgICAgICAgICIwLjI1NSwgMC4yNDM3NSwgMC4yMjUsIDAuMjEyNSwgMC4yLCAwLjE4Mzc1LCAwLjE2ODc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDkzNzUsIDAuMDc2MjUsIDAuMDYzNzUsIDAuMDQ1LCAwLjAzMjUsIDAuMDEsIC0wLjAxMTI1IiwgXAotICAgICAgICAgICIwLjEwNSwgMC4wODc1LCAwLjA3NSwgMC4wNTYyNSwgMC4wNDM3NSwgMC4wMjEyNSwgMCIsIFwKLSAgICAgICAgICAiMC4xMTc1LCAwLjEsIDAuMDg3NSwgMC4wNjg3NSwgMC4wNTYyNSwgMC4wMzM3NSwgMC4wMTI1IiwgXAotICAgICAgICAgICIwLjEzLCAwLjExMjUsIDAuMSwgMC4wODEyNSwgMC4wNjg3NSwgMC4wNDYyNSwgMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMTQyNSwgMC4xMjUsIDAuMTEyNSwgMC4wOTM3NSwgMC4wODEyNSwgMC4wNTI1LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIjAuMTU4NzUsIDAuMTQ3NSwgMC4xMjg3NSwgMC4xMTYyNSwgMC4wOTc1LCAwLjA3NSwgMC4wNTM3NSIsIFwKLSAgICAgICAgICAiMC4xNzM3NSwgMC4xNjI1LCAwLjE1LCAwLjEzMTI1LCAwLjExODc1LCAwLjA5LCAwLjA2ODc1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihRKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDEuMDUxMDc7Ci0gICAgZnVuY3Rpb24gOiAiTjMwIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBub25fdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJpc2luZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI0NzkwMSwgMC4zMTQyNjQsIDAuMzc3MzEzLCAwLjQyMjMwNiwgMC40OTQyNzIsIDAuNTU3MjQ2LCAwLjY0NzIyNiIsIFwKLSAgICAgICAgICAiMC4yNTk4OTQsIDAuMzI2MjQ2LCAwLjM4OTI5NCwgMC40MzQyODgsIDAuNTA2MjU0LCAwLjU2OTIyNywgMC42NTkyMDciLCBcCi0gICAgICAgICAgIjAuMjc0ODE5LCAwLjM0MTE3NCwgMC40MDQyMjEsIDAuNDQ5MjE5LCAwLjUyMTE4LCAwLjU4NDE1NywgMC42NzQxMjkiLCBcCi0gICAgICAgICAgIjAuMjkwMzM4LCAwLjM1NjY4NywgMC40MTk3MzUsIDAuNDY0NzI5LCAwLjUzNjY5MiwgMC41OTk2NjQsIDAuNjg5NjU0IiwgXAotICAgICAgICAgICIwLjMwNTc3MywgMC4zNzIxMywgMC40MzUxODksIDAuNDgwMTczLCAwLjU1MjEzOCwgMC42MTUxMTMsIDAuNzA1MDkiLCBcCi0gICAgICAgICAgIjAuMzMwMTc2LCAwLjM5NjU0MiwgMC40NTk1ODUsIDAuNTA0NTgyLCAwLjU3NjU0NCwgMC42Mzk1MjEsIDAuNzI5NDkyIiwgXAotICAgICAgICAgICIwLjM1MTIyMywgMC40MTc1NzcsIDAuNDgwNjMzLCAwLjUyNTYxNywgMC41OTc1ODQsIDAuNjYwNTU5LCAwLjc1MDUzMyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0MDA3MywgMC4xNjEwNCwgMC4yODc0NTcsIDAuMzc4Mzc1LCAwLjUyNDUwOCwgMC42NTEwODQsIDAuODM3MTUyIiwgXAotICAgICAgICAgICIwLjAzOTk3MywgMC4xNjEwNCwgMC4yODc0NTUsIDAuMzc3OTc5LCAwLjUyNDQ4OCwgMC42NTIyNDYsIDAuODM0MTI0IiwgXAotICAgICAgICAgICIwLjAzOTk3NywgMC4xNjEwMzIsIDAuMjg3MjcxLCAwLjM3ODU3NiwgMC41MjQ0NzQsIDAuNjUyMjU5LCAwLjgzNDMwOCIsIFwKLSAgICAgICAgICAiMC4wNCwgMC4xNjEwMjUsIDAuMjg3MjM4LCAwLjM3ODM1MSwgMC41MjQ1NDQsIDAuNjUyNzU3LCAwLjgzNzE4IiwgXAotICAgICAgICAgICIwLjAzOTk3MywgMC4xNjEwNDUsIDAuMjg3Mzk2LCAwLjM3ODM4MywgMC41MjQ0ODUsIDAuNjUyMzAyLCAwLjgzNzEyNiIsIFwKLSAgICAgICAgICAiMC4wMzk5ODMsIDAuMTYxMDAyLCAwLjI4NzIxNCwgMC4zNzg1NTksIDAuNTI0NDg1LCAwLjY1MjMxNSwgMC44MzcxMDQiLCBcCi0gICAgICAgICAgIjAuMDM5OTgyLCAwLjE2MTAzOSwgMC4yODcxNDYsIDAuMzc4MzUxLCAwLjUyNDQ4LCAwLjY1MjI4MywgMC44MzQzMDkiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yNzU0MDMsIDAuMzUyNDg5LCAwLjQyNjk0NSwgMC40ODAwNTMsIDAuNTY1MDEyLCAwLjYzOTM0OSwgMC43NDU1NzEiLCBcCi0gICAgICAgICAgIjAuMjg3MzAxLCAwLjM2NDM5OSwgMC40Mzg4NTgsIDAuNDkxOTY2LCAwLjU3NjkyLCAwLjY1MTI0NiwgMC43NTc0MjgiLCBcCi0gICAgICAgICAgIjAuMzAyMzk1LCAwLjM3OTQ4NiwgMC40NTM5NDQsIDAuNTA3MDU0LCAwLjU5MjAzMiwgMC42NjYzNjUsIDAuNzcyNTczIiwgXAotICAgICAgICAgICIwLjMxNzc3NiwgMC4zOTQ4NzcsIDAuNDY5MzQyLCAwLjUyMjQ1LCAwLjYwNzQwNiwgMC42ODE3NzcsIDAuNzg3OTU1IiwgXAotICAgICAgICAgICIwLjMzMzI2NywgMC40MTAzNTMsIDAuNDg0ODE3LCAwLjUzNzkzNywgMC42MjI4NzksIDAuNjk3MjU3LCAwLjgwMzQ4MyIsIFwKLSAgICAgICAgICAiMC4zNTc3MDYsIDAuNDM0Nzk3LCAwLjUwOTI1NiwgMC41NjIzNzcsIDAuNjQ3MzIzLCAwLjcyMTY3NCwgMC44Mjc4NzQiLCBcCi0gICAgICAgICAgIjAuMzc4OTE3LCAwLjQ1NjAwMiwgMC41MzA0NjEsIDAuNTgzNTcxLCAwLjY2ODUzLCAwLjc0Mjg5MywgMC44NDkwODgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDE1MTksIDAuMTgzODU0LCAwLjMzMDQ2OCwgMC40MzY2NjcsIDAuNjA1ODQsIDAuNzU0MTE3LCAwLjk2NzMzOSIsIFwKLSAgICAgICAgICAiMC4wNDE1MzYsIDAuMTgzNjQyLCAwLjMzMDQ5NSwgMC40MzY4NTcsIDAuNjA2NzI4LCAwLjc1MzczNCwgMC45NjczNTgiLCBcCi0gICAgICAgICAgIjAuMDQxNTI2LCAwLjE4Mzg0LCAwLjMzMDUxMywgMC40MzY4ODEsIDAuNjA3MDExLCAwLjc1NTE5NSwgMC45NjczNCIsIFwKLSAgICAgICAgICAiMC4wNDE1MTMsIDAuMTgzODQ3LCAwLjMzMDg4LCAwLjQzNjA1OSwgMC42MDU3NzYsIDAuNzUyNDM2LCAwLjk2NzMxMiIsIFwKLSAgICAgICAgICAiMC4wNDE1NDMsIDAuMTgzODQ5LCAwLjMzMTIwMywgMC40MzYzNjMsIDAuNjA2NTcsIDAuNzU1MjA5LCAwLjk2NzM3NyIsIFwKLSAgICAgICAgICAiMC4wNDE1MTMsIDAuMTgzODQ0LCAwLjMzMDkzMiwgMC40MzYzNzQsIDAuNjA2MTc0LCAwLjc1NDE5NSwgMC45NjczMTciLCBcCi0gICAgICAgICAgIjAuMDQxNTA3LCAwLjE4MzgzNywgMC4zMzA4MDcsIDAuNDM2NDYzLCAwLjYwNDgwOCwgMC43NTUyMTMsIDAuOTY3MzM0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEzMTUyLCAwLjAxMzM5MSwgMC4wMTM0MzksIDAuMDEzNDU1LCAwLjAxMzQ3NCwgMC4wMTM0NzksIDAuMDEzNDgxIiwgXAotICAgICAgICAgICIwLjAxMzE0MiwgMC4wMTMzODMsIDAuMDEzNDMsIDAuMDEzNDQ1LCAwLjAxMzQ2MiwgMC4wMTM0NjgsIDAuMDEzNDcxIiwgXAotICAgICAgICAgICIwLjAxMzEyOSwgMC4wMTMzNjksIDAuMDEzNDE4LCAwLjAxMzQzMiwgMC4wMTM0NDksIDAuMDEzNDU0LCAwLjAxMzQ1OCIsIFwKLSAgICAgICAgICAiMC4wMTMxMiwgMC4wMTMzNjEsIDAuMDEzNDA4LCAwLjAxMzQyNCwgMC4wMTM0MzYsIDAuMDEzNDQ2LCAwLjAxMzQ1MSIsIFwKLSAgICAgICAgICAiMC4wMTMxMDksIDAuMDEzMzUyLCAwLjAxMzQwMywgMC4wMTM0MTcsIDAuMDEzNDMxLCAwLjAxMzQzNywgMC4wMTM0NDMiLCBcCi0gICAgICAgICAgIjAuMDEzMDk4LCAwLjAxMzM0MSwgMC4wMTMzODksIDAuMDEzNDA0LCAwLjAxMzQxOCwgMC4wMTM0MjQsIDAuMDEzNDMiLCBcCi0gICAgICAgICAgIjAuMDEzMDk2LCAwLjAxMzMzNywgMC4wMTMzODcsIDAuMDEzNCwgMC4wMTM0MTUsIDAuMDEzNDIyLCAwLjAxMzQyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEzNDI0LCAwLjAxMzczOSwgMC4wMTM4MDcsIDAuMDEzODI5LCAwLjAxMzg0OSwgMC4wMTM4NiwgMC4wMTM4NjkiLCBcCi0gICAgICAgICAgIjAuMDEzNCwgMC4wMTM3MjIsIDAuMDEzNzkxLCAwLjAxMzgxNCwgMC4wMTM4MzUsIDAuMDEzODQ1LCAwLjAxMzg1NSIsIFwKLSAgICAgICAgICAiMC4wMTMzOTEsIDAuMDEzNzEzLCAwLjAxMzc4MiwgMC4wMTM4MDUsIDAuMDEzODI1LCAwLjAxMzgzNiwgMC4wMTM4NDYiLCBcCi0gICAgICAgICAgIjAuMDEzMzc0LCAwLjAxMzY5OSwgMC4wMTM3NywgMC4wMTM3OTMsIDAuMDEzODE1LCAwLjAxMzgyNSwgMC4wMTM4MzUiLCBcCi0gICAgICAgICAgIjAuMDEzMzc2LCAwLjAxMzcsIDAuMDEzNzY5LCAwLjAxMzc5MiwgMC4wMTM4MTMsIDAuMDEzODI0LCAwLjAxMzgzNCIsIFwKLSAgICAgICAgICAiMC4wMTMzNzQsIDAuMDEzNjk3LCAwLjAxMzc2NiwgMC4wMTM3ODksIDAuMDEzODEsIDAuMDEzODIxLCAwLjAxMzgzIiwgXAotICAgICAgICAgICIwLjAxMzM4NSwgMC4wMTM3MDQsIDAuMDEzNzcyLCAwLjAxMzc5NSwgMC4wMTM4MTUsIDAuMDEzODI2LCAwLjAxMzgzNiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUzApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTU4MjAyOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTU4MDg3OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTU4MjAyOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNDQzMywgMC4wMDQ0MzEsIDAuMDA0NDI1LCAwLjAwNDQxOSwgMC4wMDQ0MTQsIDAuMDA0NDA4LCAwLjAwNDQwNSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNTUzMywgMC4wMDU1MDgsIDAuMDA1NDg4LCAwLjAwNTQ3NiwgMC4wMDU0NjgsIDAuMDA1NDU4LCAwLjAwNTQ1NCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRDAmRDEiOwotICAgICAgc2RmX2NvbmQgOiAiRDBfRVFfMF9BTl9EMV9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjA4MTI1LCAtMC4wNywgLTAuMDU3NSwgLTAuMDQ1LCAtMC4wMzg3NSwgLTAuMDIyNSwgLTAuMDA3NSIsIFwKLSAgICAgICAgICAiLTAuMDkyNSwgLTAuMDgxMjUsIC0wLjA2ODc1LCAtMC4wNTYyNSwgLTAuMDQzNzUsIC0wLjAyNzUsIC0wLjAxODc1IiwgXAotICAgICAgICAgICItMC4xMDUsIC0wLjA5Mzc1LCAtMC4wODEyNSwgLTAuMDY4NzUsIC0wLjA2MjUsIC0wLjA0NjI1LCAtMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMTE3NSwgLTAuMTA2MjUsIC0wLjA5Mzc1LCAtMC4wODc1LCAtMC4wNzUsIC0wLjA1ODc1LCAtMC4wNDM3NSIsIFwKLSAgICAgICAgICAiLTAuMTMsIC0wLjEyNSwgLTAuMTA2MjUsIC0wLjEsIC0wLjA4NzUsIC0wLjA3MTI1LCAtMC4wNTYyNSIsIFwKLSAgICAgICAgICAiLTAuMTUyNSwgLTAuMTQxMjUsIC0wLjEyODc1LCAtMC4xMTYyNSwgLTAuMTEsIC0wLjA5Mzc1LCAtMC4wNzg3NSIsIFwKLSAgICAgICAgICAiLTAuMTczNzUsIC0wLjE2MjUsIC0wLjE1LCAtMC4xMzc1LCAtMC4xMjUsIC0wLjEwODc1LCAtMC4wOTM3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE4NzUsIDAuMDMsIDAuMDQyNSwgMC4wNTUsIDAuMDczNzUsIDAuMDk2MjUsIDAuMTExMjUiLCBcCi0gICAgICAgICAgIjAuMDA3NSwgMC4wMTg3NSwgMC4wMzEyNSwgMC4wNDM3NSwgMC4wNjI1LCAwLjA4NSwgMC4xMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDA1LCAwLjAwNjI1LCAwLjAxODc1LCAwLjAzNzUsIDAuMDUsIDAuMDcyNSwgMC4wOTM3NSIsIFwKLSAgICAgICAgICAiLTAuMDE3NSwgLTAuMDA2MjUsIDAuMDA2MjUsIDAuMDI1LCAwLjAzNzUsIDAuMDYsIDAuMDgxMjUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMTg3NSwgMCwgMC4wMTI1LCAwLjAyNSwgMC4wNDc1LCAwLjA2ODc1IiwgXAotICAgICAgICAgICItMC4wNDYyNSwgLTAuMDM1LCAtMC4wMjI1LCAtMC4wMSwgMC4wMDg3NSwgMC4wMzEyNSwgMC4wNDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDYxMjUsIC0wLjA1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLjAxNjI1LCAwLjAzMTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIkQwJiFEMSI7Ci0gICAgICBzZGZfY29uZCA6ICJEMF9FUV8xX0FOX0QxX0VRXzAgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDE4NzUsIC0wLjAwNzUsIDAuMDA1LCAwLjAxNzUsIDAuMDM2MjUsIDAuMDU4NzUsIDAuMDczNzUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAuMDA2MjUsIDAuMDE4NzUsIDAuMDQ3NSwgMC4wNjI1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDM3NSwgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLjAwNjI1LCAwLjAyODc1LCAwLjA1IiwgXAotICAgICAgICAgICItMC4wNjEyNSwgLTAuMDUsIC0wLjAzNzUsIC0wLjAyNSwgLTAuMDA2MjUsIDAuMDE2MjUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjA4LCAtMC4wNjg3NSwgLTAuMDUsIC0wLjAzNzUsIC0wLjAyNSwgLTAuMDAyNSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMTAyNSwgLTAuMDkxMjUsIC0wLjA3MjUsIC0wLjA2LCAtMC4wNDc1LCAtMC4wMjUsIC0wLjAwMzc1IiwgXAotICAgICAgICAgICItMC4xMTc1LCAtMC4xMDYyNSwgLTAuMDkzNzUsIC0wLjA3NSwgLTAuMDYyNSwgLTAuMDQsIC0wLjAxODc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMTE4NzUsIC0wLjEwNzUsIC0wLjA5NSwgLTAuMDgyNSwgLTAuMDcsIC0wLjA1Mzc1LCAtMC4wMzg3NSIsIFwKLSAgICAgICAgICAiLTAuMTMsIC0wLjExODc1LCAtMC4xMDYyNSwgLTAuMDkzNzUsIC0wLjA4MTI1LCAtMC4wNjUsIC0wLjA1IiwgXAotICAgICAgICAgICItMC4xNDI1LCAtMC4xMzEyNSwgLTAuMTE4NzUsIC0wLjEwNjI1LCAtMC4xLCAtMC4wODM3NSwgLTAuMDY4NzUiLCBcCi0gICAgICAgICAgIi0wLjE2MTI1LCAtMC4xNSwgLTAuMTM3NSwgLTAuMTI1LCAtMC4xMTI1LCAtMC4wOTYyNSwgLTAuMDgxMjUiLCBcCi0gICAgICAgICAgIi0wLjE3Mzc1LCAtMC4xNjI1LCAtMC4xNSwgLTAuMTM3NSwgLTAuMTI1LCAtMC4xMDg3NSwgLTAuMDkzNzUiLCBcCi0gICAgICAgICAgIi0wLjE5LCAtMC4xNzg3NSwgLTAuMTY2MjUsIC0wLjE1Mzc1LCAtMC4xNDc1LCAtMC4xMjUsIC0wLjExNjI1IiwgXAotICAgICAgICAgICItMC4yMDUsIC0wLjE5Mzc1LCAtMC4xODEyNSwgLTAuMTY4NzUsIC0wLjE2MjUsIC0wLjE0LCAtMC4xMzEyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUQwJkQxIjsKLSAgICAgIHNkZl9jb25kIDogIkQwX0VRXzBfQU5fRDFfRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNSwgMC4xMzg3NSwgMC4xMiwgMC4xMDc1LCAwLjA5NSwgMC4wNzg3NSwgMC4wNjM3NSIsIFwKLSAgICAgICAgICAiMC4xNjEyNSwgMC4xNSwgMC4xMzEyNSwgMC4xMTg3NSwgMC4xMDYyNSwgMC4wOSwgMC4wNzUiLCBcCi0gICAgICAgICAgIjAuMTczNzUsIDAuMTYyNSwgMC4xNDM3NSwgMC4xMzEyNSwgMC4xMTg3NSwgMC4xMDI1LCAwLjA4NzUiLCBcCi0gICAgICAgICAgIjAuMTg2MjUsIDAuMTc1LCAwLjE1NjI1LCAwLjE0Mzc1LCAwLjEzMTI1LCAwLjExNSwgMC4xIiwgXAotICAgICAgICAgICIwLjE5ODc1LCAwLjE4NzUsIDAuMTc1LCAwLjE1NjI1LCAwLjE0Mzc1LCAwLjEyNzUsIDAuMTEyNSIsIFwKLSAgICAgICAgICAiMC4yMjEyNSwgMC4yMSwgMC4xOTEyNSwgMC4xNzg3NSwgMC4xNjYyNSwgMC4xNSwgMC4xMzUiLCBcCi0gICAgICAgICAgIjAuMjQyNSwgMC4yMzEyNSwgMC4yMTI1LCAwLjIsIDAuMTg3NSwgMC4xNzEyNSwgMC4xNTYyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3NSwgMC4wNjM3NSwgMC4wNTEyNSwgMC4wMzI1LCAwLjAxMzc1LCAtMC4wMDg3NSwgLTAuMDMiLCBcCi0gICAgICAgICAgIjAuMDg2MjUsIDAuMDc1LCAwLjA1NjI1LCAwLjA0Mzc1LCAwLjAyNSwgMC4wMDI1LCAtMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4wOTg3NSwgMC4wODc1LCAwLjA3NSwgMC4wNTYyNSwgMC4wMzc1LCAwLjAxNSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMTExMjUsIDAuMSwgMC4wODc1LCAwLjA2ODc1LCAwLjA1NjI1LCAwLjAyNzUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMTIzNzUsIDAuMTEyNSwgMC4xLCAwLjA4MTI1LCAwLjA2ODc1LCAwLjA0LCAwLjAxODc1IiwgXAotICAgICAgICAgICIwLjE0NjI1LCAwLjEzNSwgMC4xMjI1LCAwLjEwMzc1LCAwLjA4NSwgMC4wNjI1LCAwLjA0MTI1IiwgXAotICAgICAgICAgICIwLjE2NzUsIDAuMTUsIDAuMTM3NSwgMC4xMTg3NSwgMC4xMDYyNSwgMC4wODM3NSwgMC4wNjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJEMCYhRDEiOwotICAgICAgc2RmX2NvbmQgOiAiRDBfRVFfMV9BTl9EMV9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExMjUsIDAuMTAxMjUsIDAuMDg4NzUsIDAuMDcsIDAuMDU3NSwgMC4wMjg3NSwgMC4wMDc1IiwgXAotICAgICAgICAgICIwLjEzLCAwLjExMjUsIDAuMSwgMC4wODEyNSwgMC4wNjg3NSwgMC4wNDYyNSwgMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMTQyNSwgMC4xMzEyNSwgMC4xMTI1LCAwLjEsIDAuMDgxMjUsIDAuMDU4NzUsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiMC4xNTUsIDAuMTQzNzUsIDAuMTMxMjUsIDAuMTEyNSwgMC4xLCAwLjA3MTI1LCAwLjA1IiwgXAotICAgICAgICAgICIwLjE3Mzc1LCAwLjE2MjUsIDAuMTQzNzUsIDAuMTMxMjUsIDAuMTEyNSwgMC4wOSwgMC4wNjg3NSIsIFwKLSAgICAgICAgICAiMC4xOTYyNSwgMC4xODUsIDAuMTY2MjUsIDAuMTQ3NSwgMC4xMzUsIDAuMTEyNSwgMC4wOTEyNSIsIFwKLSAgICAgICAgICAiMC4yMTEyNSwgMC4yLCAwLjE4MTI1LCAwLjE2ODc1LCAwLjE1LCAwLjEyNzUsIDAuMTA2MjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xODc1LCAwLjE3LCAwLjE1NzUsIDAuMTQ1LCAwLjEzMjUsIDAuMTEsIDAuMTAxMjUiLCBcCi0gICAgICAgICAgIjAuMTk4NzUsIDAuMTgxMjUsIDAuMTY4NzUsIDAuMTU2MjUsIDAuMTQzNzUsIDAuMTI3NSwgMC4xMTI1IiwgXAotICAgICAgICAgICIwLjIxMTI1LCAwLjIsIDAuMTgxMjUsIDAuMTY4NzUsIDAuMTU2MjUsIDAuMTQsIDAuMTI1IiwgXAotICAgICAgICAgICIwLjIyMzc1LCAwLjIxMjUsIDAuMiwgMC4xODEyNSwgMC4xNjg3NSwgMC4xNTI1LCAwLjEzNzUiLCBcCi0gICAgICAgICAgIjAuMjM2MjUsIDAuMjI1LCAwLjIxMjUsIDAuMTkzNzUsIDAuMTg3NSwgMC4xNjUsIDAuMTU2MjUiLCBcCi0gICAgICAgICAgIjAuMjU4NzUsIDAuMjQ3NSwgMC4yMjg3NSwgMC4yMTYyNSwgMC4yMDM3NSwgMC4xODc1LCAwLjE3MjUiLCBcCi0gICAgICAgICAgIjAuMjczNzUsIDAuMjYyNSwgMC4yNDM3NSwgMC4yMzEyNSwgMC4yMTg3NSwgMC4yMDI1LCAwLjE4NzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogTVgyWDEgKgotICogLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKE1YMlgxKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMDk1MDg0MTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjIzNDUyOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYyMTYzMzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2MjM0NTI7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMTU0LCAwLjAwMDE1NywgMC4wMDAxNTgsIDAuMDAwMTU5LCAwLjAwMDE1OSwgMC4wMDAxNTksIDAuMDAwMTYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxNjksIDAuMDAwMTY3LCAwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiwgMC4wMDAxNjYiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY1NzM5NjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2NTU3MTg7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjU3Mzk2OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDE1OSwgMC4wMDAxNjEsIDAuMDAwMTYyLCAwLjAwMDE2MiwgMC4wMDAxNjIsIDAuMDAwMTYyLCAwLjAwMDE2MiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDE2OCwgMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUzApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTI0NzE2OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTI0NjU7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxMjQ3MTY7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMTg0LCAwLjAwMDE2NywgMC4wMDAxNTYsIDAuMDAwMTUyLCAwLjAwMDE1MSwgMC4wMDAxNSwgMC4wMDAxNTIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDE2MjIsIDAuMDAxNjEsIDAuMDAxNjAzLCAwLjAwMTYsIDAuMDAxNTk4LCAwLjAwMTU5NiwgMC4wMDE1OTYiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4xMjkyOTU7Ci0gICAgZnVuY3Rpb24gOiAiKChTMCBCKSArICghUzAgQSkpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xOTc2OTUsIDAuMjQxNTEyLCAwLjQ4Njg3NSwgMC43MDI4NzEsIDAuOTkwNzU0LCAxLjU2NjMyLCAxLjkyNjAxIiwgXAotICAgICAgICAgICIwLjIwOTE1NSwgMC4yNTI5NjIsIDAuNDk4MzAxLCAwLjcxNDMzLCAxLjAwMjIsIDEuNTc3NzcsIDEuOTM3NDUiLCBcCi0gICAgICAgICAgIjAuMjIyODEsIDAuMjY2NzA5LCAwLjUxMjA5NCwgMC43MjgwMzUsIDEuMDE1OTEsIDEuNTkxNTMsIDEuOTUxMTkiLCBcCi0gICAgICAgICAgIjAuMjM2MzQ2LCAwLjI4MDI1NiwgMC41MjU2NTIsIDAuNzQxNjk5LCAxLjAyOTQ4LCAxLjYwNTA4LCAxLjk2NDc4IiwgXAotICAgICAgICAgICIwLjI1MDE2LCAwLjI5Mzk4NiwgMC41MzkzMTgsIDAuNzU1MzgsIDEuMDQzMjIsIDEuNjE4OCwgMS45Nzg1MSIsIFwKLSAgICAgICAgICAiMC4yNzE4MywgMC4zMTU3MjcsIDAuNTYxMTUsIDAuNzc3MDk4LCAxLjA2NDk4LCAxLjY0MDYsIDIuMDAwMjYiLCBcCi0gICAgICAgICAgIjAuMjkwNTU3LCAwLjMzNDQ3NiwgMC41Nzk4OTEsIDAuNzk1ODQxLCAxLjA4Mzc3LCAxLjY1OTMxLCAyLjAxOTAyIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE3MDA0NywgMC4yNTQ2OTIsIDAuNzQ4MjEsIDEuMTg2ODcsIDEuNzY5ODEsIDIuOTM5MTcsIDMuNjcwNDgiLCBcCi0gICAgICAgICAgIjAuMTcwMDQ2LCAwLjI1NDY2MSwgMC43NDc5OTUsIDEuMTg2ODIsIDEuNzY5NTMsIDIuOTM5NDEsIDMuNjcwMjUiLCBcCi0gICAgICAgICAgIjAuMTY5OTU0LCAwLjI1NDU1NCwgMC43NDYyMjMsIDEuMTg2NzMsIDEuNzcyMjEsIDIuOTM5OCwgMy42Njk5NCIsIFwKLSAgICAgICAgICAiMC4xNzAwMTYsIDAuMjU0NTQyLCAwLjc0ODM3MiwgMS4xODQxMSwgMS43Njk3MywgMi45Mzg5OSwgMy42NzU5MiIsIFwKLSAgICAgICAgICAiMC4xNzAwNCwgMC4yNTQ2NjIsIDAuNzQ3OTYxLCAxLjE4Njg5LCAxLjc2NzA3LCAyLjkzOTA2LCAzLjY2OTg1IiwgXAotICAgICAgICAgICIwLjE2OTc5NywgMC4yNTQ0OTgsIDAuNzQ2MjE1LCAxLjE4NjcyLCAxLjc2OTQxLCAyLjkzOTQ0LCAzLjY3MDI2IiwgXAotICAgICAgICAgICIwLjE2OTk3MywgMC4yNTQ0OTcsIDAuNzQ2Mzg3LCAxLjE4Njc1LCAxLjc3MjQ1LCAyLjkzOTM5LCAzLjY2OTkxIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE5NTU2NSwgMC4yNDU1MjcsIDAuNTI1OTQxLCAwLjc3Mjk3NywgMS4xMDIyLCAxLjc2MDYzLCAyLjE3MjE5IiwgXAotICAgICAgICAgICIwLjIwNzAwMSwgMC4yNTY5ODEsIDAuNTM3Mzg5LCAwLjc4NDM3NCwgMS4xMTM2NCwgMS43NzIxLCAyLjE4MzU0IiwgXAotICAgICAgICAgICIwLjIyMDE4MywgMC4yNzAxNDUsIDAuNTUwNTY5LCAwLjc5NzUzLCAxLjEyNjgxLCAxLjc4NTIzLCAyLjE5NjczIiwgXAotICAgICAgICAgICIwLjIzMjY0MSwgMC4yODI2MTQsIDAuNTYzMDQyLCAwLjgxMDEzNSwgMS4xMzkzMSwgMS43OTc3MywgMi4yMDkyIiwgXAotICAgICAgICAgICIwLjI0NTA5NCwgMC4yOTUwNDgsIDAuNTc1NDgzLCAwLjgyMjUyOSwgMS4xNTE3NywgMS44MTAxNywgMi4yMjE2NCIsIFwKLSAgICAgICAgICAiMC4yNjQ0OTgsIDAuMzE0NDgzLCAwLjU5NDkzMiwgMC44NDE5NzksIDEuMTcxMjEsIDEuODI5NjQsIDIuMjQxMTYiLCBcCi0gICAgICAgICAgIjAuMjgxMTg1LCAwLjMzMTE2MiwgMC42MTE2NDYsIDAuODU4NjIsIDEuMTg3OTMsIDEuODQ2MzQsIDIuMjU3ODMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTg2ODYxLCAwLjI4MjI1LCAwLjgzNTQzMywgMS4zMjU3NCwgMS45Nzk4MSwgMy4yOTAxOSwgNC4xMDQwNCIsIFwKLSAgICAgICAgICAiMC4xODY4NjYsIDAuMjgyMjMxLCAwLjgzNTQzNCwgMS4zMjQ1NCwgMS45NzgzNiwgMy4yODk3NSwgNC4xMDU3NCIsIFwKLSAgICAgICAgICAiMC4xODY4NTIsIDAuMjgyMjk2LCAwLjgzNTM1NSwgMS4zMjY1NywgMS45ODEzMSwgMy4yODg3NywgNC4xMDgwNiIsIFwKLSAgICAgICAgICAiMC4xODY4OTksIDAuMjgyMjQ0LCAwLjgzNTQ0OCwgMS4zMjM0MywgMS45ODA1MSwgMy4yODk1NCwgNC4xMDQ1NSIsIFwKLSAgICAgICAgICAiMC4xODY4MzUsIDAuMjgyMjI3LCAwLjgzNDkzNCwgMS4zMjU2MywgMS45ODA4NCwgMy4yODczMywgNC4xMDQzIiwgXAotICAgICAgICAgICIwLjE4Njg3MSwgMC4yODIyMzksIDAuODM1NDI0LCAxLjMyNTY3LCAxLjk3OTk0LCAzLjI4OTc1LCA0LjEwNzIzIiwgXAotICAgICAgICAgICIwLjE4NzA2MywgMC4yODI0LCAwLjgzNTMwMSwgMS4zMjY2NCwgMS45ODExMiwgMy4yODg0MSwgNC4xMDgxMSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xOTcwMzIsIDAuMjQwODkyLCAwLjQ4NjE4NCwgMC43MDIxMDcsIDAuOTkwMDcsIDEuNTY1NjIsIDEuOTI1MjYiLCBcCi0gICAgICAgICAgIjAuMjA4NjM5LCAwLjI1MjQ1OCwgMC40OTc4MjYsIDAuNzEzNzQ0LCAxLjAwMTcyLCAxLjU3NzIyLCAxLjkzNjkiLCBcCi0gICAgICAgICAgIjAuMjIyNjQ0LCAwLjI2NjQyMywgMC41MTE2NzksIDAuNzI3Njc5LCAxLjAxNTU1LCAxLjU5MTEzLCAxLjk1MDkyIiwgXAotICAgICAgICAgICIwLjIzNjI4MywgMC4yODAwOTMsIDAuNTI1NDY3LCAwLjc0MTM4MiwgMS4wMjkyNiwgMS42MDQ4OCwgMS45NjQ1MiIsIFwKLSAgICAgICAgICAiMC4yNTAwMzYsIDAuMjkzODE4LCAwLjUzOTEzOSwgMC43NTUxMDYsIDEuMDQyOTcsIDEuNjE4NjQsIDEuOTc4MjMiLCBcCi0gICAgICAgICAgIjAuMjcxOTAzLCAwLjMxNTY4NSwgMC41NjA5NjcsIDAuNzc2OTkzLCAxLjA2NDg2LCAxLjY0MDQxLCAyLjAwMDEiLCBcCi0gICAgICAgICAgIjAuMjkwODg0LCAwLjMzNDY1OSwgMC41ODAwMjIsIDAuNzk1OTg1LCAxLjA4MzgxLCAxLjY1OTQ0LCAyLjAxOTA4Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE3MDAxNiwgMC4yNTQ1NzgsIDAuNzQ2MTgzLCAxLjE4Njc1LCAxLjc3MjUyLCAyLjkzNzc3LCAzLjY3MDE0IiwgXAotICAgICAgICAgICIwLjE3MDAwMiwgMC4yNTQ1NTUsIDAuNzQ2MzIsIDEuMTg2NzIsIDEuNzcyMzIsIDIuOTM5NywgMy42NzAyIiwgXAotICAgICAgICAgICIwLjE3MDAxNCwgMC4yNTQ0NzcsIDAuNzQ3NTQ2LCAxLjE4NjU4LCAxLjc2OTQ3LCAyLjkzOTAzLCAzLjY3NjEyIiwgXAotICAgICAgICAgICIwLjE3MDAxLCAwLjI1NDU0MSwgMC43NDYxNzMsIDEuMTg2NzEsIDEuNzcyMzcsIDIuOTQzOTksIDMuNjY5OSIsIFwKLSAgICAgICAgICAiMC4xNzAwNDUsIDAuMjU0NDk0LCAwLjc0NjQyNSwgMS4xODY3MywgMS43Njk0NiwgMi45NDM4NSwgMy42Njk5MSIsIFwKLSAgICAgICAgICAiMC4xNjk5NTgsIDAuMjU0NjcsIDAuNzQ3ODQyLCAxLjE4Njc2LCAxLjc2OTQ2LCAyLjkzOTE3LCAzLjY3MDM5IiwgXAotICAgICAgICAgICIwLjE3MDAyNSwgMC4yNTQ0NjQsIDAuNzQ2MDcyLCAxLjE4Njg3LCAxLjc2OTUxLCAyLjkzNjk1LCAzLjY3MDEyIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE5NzE1NCwgMC4yNDcxMzcsIDAuNTI3NTcyLCAwLjc3NDU1MSwgMS4xMDM4MywgMS43NjIyOSwgMi4xNzM3NyIsIFwKLSAgICAgICAgICAiMC4yMDg1NzksIDAuMjU4NTUsIDAuNTM4OTkzLCAwLjc4NTk2NywgMS4xMTUzMSwgMS43NzM2OSwgMi4xODUxOSIsIFwKLSAgICAgICAgICAiMC4yMjE1MDcsIDAuMjcxNDc2LCAwLjU1MTkyNiwgMC43OTg5LCAxLjEyODIsIDEuNzg2NjYsIDIuMTk4MTIiLCBcCi0gICAgICAgICAgIjAuMjMzODc5LCAwLjI4Mzg2NywgMC41NjQyNjUsIDAuODExMjk4LCAxLjE0MDU4LCAxLjc5OTA3LCAyLjIxMDQ5IiwgXAotICAgICAgICAgICIwLjI0NjE5OCwgMC4yOTYxNjYsIDAuNTc2NjE5LCAwLjgyMzY3MywgMS4xNTI5MywgMS44MTEzNCwgMi4yMjI4MiIsIFwKLSAgICAgICAgICAiMC4yNjU1MDMsIDAuMzE1NDk3LCAwLjU5NTk3MiwgMC44NDI5NjEsIDEuMTcyMjUsIDEuODMwNzIsIDIuMjQyMTciLCBcCi0gICAgICAgICAgIjAuMjgyMDc0LCAwLjMzMjA5MSwgMC42MTI1NzUsIDAuODU5NTgzLCAxLjE4ODg3LCAxLjg0NzUsIDIuMjU4NzkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTg3MTM0LCAwLjI4MjU2MywgMC44MzU0MTcsIDEuMzI2NjcsIDEuOTgxMywgMy4yODk3LCA0LjEwNTg0IiwgXAotICAgICAgICAgICIwLjE4NzEzMiwgMC4yODI1NDEsIDAuODM1MzU4LCAxLjMyNjQ3LCAxLjk4MDUzLCAzLjI4NzM0LCA0LjEwNjU1IiwgXAotICAgICAgICAgICIwLjE4NzExNSwgMC4yODI1MywgMC44MzUzNDgsIDEuMzI2NDUsIDEuOTgxMSwgMy4yOTExMiwgNC4xMDU3IiwgXAotICAgICAgICAgICIwLjE4NzE0MywgMC4yODI1MDMsIDAuODM1NTk1LCAxLjMyNjMyLCAxLjk4MDgxLCAzLjI5MDg3LCA0LjEwNDI4IiwgXAotICAgICAgICAgICIwLjE4NzA4NCwgMC4yODI0MzYsIDAuODM1MjE0LCAxLjMyNTcxLCAxLjk4MTAxLCAzLjI4NywgNC4xMDM0MyIsIFwKLSAgICAgICAgICAiMC4xODcxMDYsIDAuMjgyNDg2LCAwLjgzNTQwOSwgMS4zMjY2NywgMS45NzgxOSwgMy4yOTEyNiwgNC4xMDQ4MiIsIFwKLSAgICAgICAgICAiMC4xODczNDIsIDAuMjgyNDM3LCAwLjgzNTA0NCwgMS4zMjY0MSwgMS45Nzk4NCwgMy4yODIwNywgNC4xMDQ1MiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTgyODksIDAuMjI2NzU5LCAwLjQ3MjA5LCAwLjY4ODAyMiwgMC45NzU5MzUsIDEuNTUxNSwgMS45MTExNyIsIFwKLSAgICAgICAgICAiMC4xOTMyNDcsIDAuMjM3MTI0LCAwLjQ4MjQ2NCwgMC42OTgzOTYsIDAuOTg2MjYzLCAxLjU2MTg3LCAxLjkyMTUzIiwgXAotICAgICAgICAgICIwLjIwNjgxLCAwLjI1MDY5MSwgMC40OTYwMzYsIDAuNzExOTY1LCAwLjk5OTg0LCAxLjU3NTQyLCAxLjkzNTEiLCBcCi0gICAgICAgICAgIjAuMjIwMjczLCAwLjI2NDE2NywgMC41MDk1MzEsIDAuNzI1NDYzLCAxLjAxMzMzLCAxLjU4ODkxLCAxLjk0ODYiLCBcCi0gICAgICAgICAgIjAuMjMzOTUzLCAwLjI3Nzc3LCAwLjUyMzE1MywgMC43MzkxNjQsIDEuMDI2OTYsIDEuNjAyNTUsIDEuOTYyMjIiLCBcCi0gICAgICAgICAgIjAuMjU2MTM3LCAwLjI5OTk0MiwgMC41NDUzNzIsIDAuNzYxMzc2LCAxLjA0OTE3LCAxLjYyNDc3LCAxLjk4NDQ0IiwgXAotICAgICAgICAgICIwLjI3NTM2NiwgMC4zMTkyMSwgMC41NjQ2MTgsIDAuNzgwNjEyLCAxLjA2ODQ2LCAxLjY0NDE0LCAyLjAwMzczIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE2OTkzOCwgMC4yNTQzODgsIDAuNzQ4Mzk1LCAxLjE4Njc5LCAxLjc3MjU4LCAyLjkzNjQyLCAzLjY3MDA4IiwgXAotICAgICAgICAgICIwLjE2OTkzNiwgMC4yNTQ1MywgMC43NDgzNjksIDEuMTg2NzMsIDEuNzcyMywgMi45MzYxNywgMy42NzAxMSIsIFwKLSAgICAgICAgICAiMC4xNjk5NjcsIDAuMjU0NTE3LCAwLjc0NjIwOSwgMS4xODY3MiwgMS43NjkzOCwgMi45Mzg5NywgMy42Njk3MyIsIFwKLSAgICAgICAgICAiMC4xNzAwMTIsIDAuMjU0NTQ1LCAwLjc0NjEzOCwgMS4xODY3MiwgMS43NjkzNSwgMi45Mzg3NSwgMy42NzAwNiIsIFwKLSAgICAgICAgICAiMC4xNzAxMDgsIDAuMjU0NjEzLCAwLjc0NjIzNywgMS4xODY2NSwgMS43NjkzOCwgMi45Mzg5OSwgMy42NzU1NyIsIFwKLSAgICAgICAgICAiMC4xNzAxOTQsIDAuMjU0ODczLCAwLjc0NjA0MSwgMS4xODY3LCAxLjc3MTM4LCAyLjkzODk0LCAzLjY2OTk1IiwgXAotICAgICAgICAgICIwLjE3MDMzOSwgMC4yNTQ5NjMsIDAuNzQ2NDc0LCAxLjE4Njc4LCAxLjc2OTQ0LCAyLjk0MzksIDMuNjY5ODYiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTgzMTk1LCAwLjIzMzE2MywgMC41MTM1NjcsIDAuNzYwNTMzLCAxLjA4OTg0LCAxLjc0ODIzLCAyLjE1OTcxIiwgXAotICAgICAgICAgICIwLjE5MzQzMSwgMC4yNDM0MDIsIDAuNTIzODA4LCAwLjc3MDc3NCwgMS4xMDAwNCwgMS43NTg0NywgMi4xNjk5NSIsIFwKLSAgICAgICAgICAiMC4yMDY0NDIsIDAuMjU2NDExLCAwLjUzNjgzNCwgMC43ODM4MzUsIDEuMTEzMSwgMS43NzE1LCAyLjE4MzE3IiwgXAotICAgICAgICAgICIwLjIxOTUwMSwgMC4yNjk0ODcsIDAuNTQ5OTM3LCAwLjc5NjkxMiwgMS4xMjYxOCwgMS43ODQ2MSwgMi4xOTYwOSIsIFwKLSAgICAgICAgICAiMC4yMzI2NTQsIDAuMjgyNjY5LCAwLjU2MzExOSwgMC44MTAxMjQsIDEuMTM5MzksIDEuNzk4MDIsIDIuMjA5MjgiLCBcCi0gICAgICAgICAgIjAuMjUzNjM0LCAwLjMwMzYzNSwgMC41ODQxNCwgMC44MzExMywgMS4xNjA0MSwgMS44MTg4NSwgMi4yMzAzMiIsIFwKLSAgICAgICAgICAiMC4yNzE0MjcsIDAuMzIxNDI4LCAwLjYwMTk0OSwgMC44NDg5NCwgMS4xNzgyMiwgMS44MzY2NywgMi4yNDgxNCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xODY4NjksIDAuMjgyMzcyLCAwLjgzNTE4NiwgMS4zMjY0NiwgMS45ODA2OSwgMy4yODg2NCwgNC4xMDUyMiIsIFwKLSAgICAgICAgICAiMC4xODY4NzksIDAuMjgyMzcxLCAwLjgzNTE2NiwgMS4zMjY0LCAxLjk4MTI3LCAzLjI4NzQxLCA0LjEwNTQ0IiwgXAotICAgICAgICAgICIwLjE4NjkxNSwgMC4yODIzMTgsIDAuODM1MTk5LCAxLjMyNDI5LCAxLjk3OTUzLCAzLjI4Njg2LCA0LjEwNzYxIiwgXAotICAgICAgICAgICIwLjE4Njk0MywgMC4yODI0MDksIDAuODM1MTAxLCAxLjMyNjMzLCAxLjk3ODM4LCAzLjI4NzEzLCA0LjEwNTIyIiwgXAotICAgICAgICAgICIwLjE4NzAwOCwgMC4yODIzODYsIDAuODM0Nzk5LCAxLjMyNjA3LCAxLjk3ODU0LCAzLjI4MzYzLCA0LjEwMzgzIiwgXAotICAgICAgICAgICIwLjE4NzEwNywgMC4yODI0NDMsIDAuODM1MDk2LCAxLjMyNjQyLCAxLjk3ODQ5LCAzLjI4ODAyLCA0LjEwNDQ3IiwgXAotICAgICAgICAgICIwLjE4NzUxOSwgMC4yODI1MjYsIDAuODM1MTI0LCAxLjMyNjQyLCAxLjk3Nzc1LCAzLjI4ODM3LCA0LjEwNzcyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlMwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMTg2NzQsIDAuMjYyNTY5LCAwLjUwNzk3OCwgMC43MjM5MiwgMS4wMTE4NSwgMS41ODc0LCAxLjk0NzA5IiwgXAotICAgICAgICAgICIwLjIzMDgwNSwgMC4yNzQ2MzYsIDAuNTIwMDM3LCAwLjczNjAxOSwgMS4wMjM4OSwgMS41OTk0NiwgMS45NTkxOCIsIFwKLSAgICAgICAgICAiMC4yNDU2NzUsIDAuMjg5NTAyLCAwLjUzNDg5NCwgMC43NTA4OCwgMS4wMzg3NSwgMS42MTQzNCwgMS45NzQwMyIsIFwKLSAgICAgICAgICAiMC4yNjAwMTgsIDAuMzAzODI5LCAwLjU0OTE3OSwgMC43NjUyMTQsIDEuMDUzMDksIDEuNjI4NjUsIDEuOTg4MzUiLCBcCi0gICAgICAgICAgIjAuMjczMSwgMC4zMTY5NjcsIDAuNTYyMzY0LCAwLjc3ODMwOSwgMS4wNjYxOSwgMS42NDE4MSwgMi4wMDE0NyIsIFwKLSAgICAgICAgICAiMC4yOTE5MDQsIDAuMzM1NzEzLCAwLjU4MTA2OSwgMC43OTcwOSwgMS4wODQ5NiwgMS42NjA2LCAyLjAyMDIzIiwgXAotICAgICAgICAgICIwLjMwNjU5NSwgMC4zNTA0MDIsIDAuNTk1ODEsIDAuODExNzg2LCAxLjA5OTY2LCAxLjY3NTIyLCAyLjAzNDkxIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE3MDAwMSwgMC4yNTQ1NDUsIDAuNzQ2NDI5LCAxLjE4NjczLCAxLjc2ODc1LCAyLjkzOTAyLCAzLjY2OTkyIiwgXAotICAgICAgICAgICIwLjE3MDAxMywgMC4yNTQ1NzEsIDAuNzQ2NTIxLCAxLjE4Njc2LCAxLjc2OTUxLCAyLjk0MzMsIDMuNjciLCBcCi0gICAgICAgICAgIjAuMTY5OTk3LCAwLjI1NDU2MywgMC43NDY0NzksIDEuMTg2NzYsIDEuNzY5NTQsIDIuOTM5MzQsIDMuNjcwMSIsIFwKLSAgICAgICAgICAiMC4xNzAwNjgsIDAuMjU0Nzg0LCAwLjc0Nzk1NCwgMS4xODY4LCAxLjc2OTQ2LCAyLjkzOTI3LCAzLjY3MDE4IiwgXAotICAgICAgICAgICIwLjE2OTk2OSwgMC4yNTQ1MjgsIDAuNzQ2MjIxLCAxLjE4NjcxLCAxLjc2OTM2LCAyLjkzOTUxLCAzLjY3MDI1IiwgXAotICAgICAgICAgICIwLjE3MDAzOSwgMC4yNTQ3NDYsIDAuNzQ2NzE0LCAxLjE4Njc3LCAxLjc2OTM0LCAyLjk0MzkxLCAzLjY3MDAxIiwgXAotICAgICAgICAgICIwLjE2OTk2MiwgMC4yNTQ2MSwgMC43NDgzLCAxLjE4NjgzLCAxLjc2OTQ3LCAyLjkzOTMzLCAzLjY2OTkzIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIyMjE2MSwgMC4yNzIxNiwgMC41NTI2MzUsIDAuNzk5NjI4LCAxLjEyODkxLCAxLjc4NzQsIDIuMTk4ODkiLCBcCi0gICAgICAgICAgIjAuMjM0MjU0LCAwLjI4NDIzOCwgMC41NjQ3MjEsIDAuODExNzA5LCAxLjE0MTA4LCAxLjc5OTQ3LCAyLjIxMDk2IiwgXAotICAgICAgICAgICIwLjI0OTg4LCAwLjI5OTg2MiwgMC41ODAyOTMsIDAuODI3MzQyLCAxLjE1NjY0LCAxLjgxNTEyLCAyLjIyNjU1IiwgXAotICAgICAgICAgICIwLjI2NDQ0NiwgMC4zMTQ0MjQsIDAuNTk0ODk1LCAwLjg0MTk4NywgMS4xNzEyMywgMS44Mjk2NSwgMi4yNDExMyIsIFwKLSAgICAgICAgICAiMC4yNzkzOTYsIDAuMzI5NDAxLCAwLjYwOTg3NSwgMC44NTY4NjYsIDEuMTg2MTYsIDEuODQ0NjIsIDIuMjU2MTEiLCBcCi0gICAgICAgICAgIjAuMzAxMDA4LCAwLjM1MDk4NiwgMC42MzE0NTYsIDAuODc4NTYyLCAxLjIwNzc5LCAxLjg2NjIxLCAyLjI3NzY5IiwgXAotICAgICAgICAgICIwLjMxODQyNywgMC4zNjg0MTYsIDAuNjQ4ODk4LCAwLjg5NTkxNiwgMS4yMjUyMSwgMS44ODM2MywgMi4yOTUzMSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xODcxMDUsIDAuMjgyNTg1LCAwLjgzNTU5MywgMS4zMjY5NiwgMS45ODE4OCwgMy4yODY3LCA0LjEwNzg5IiwgXAotICAgICAgICAgICIwLjE4NzA5LCAwLjI4MjU1NCwgMC44MzU1MTEsIDEuMzI2ODksIDEuOTgwNjUsIDMuMjg5MywgNC4xMDgxNSIsIFwKLSAgICAgICAgICAiMC4xODcxNDQsIDAuMjgyMzU1LCAwLjgzNTc0NiwgMS4zMjYzNywgMS45ODExOCwgMy4yOTEwMywgNC4xMDQ3IiwgXAotICAgICAgICAgICIwLjE4NzEyOCwgMC4yODI0MjYsIDAuODM1MDY1LCAxLjMyNTQxLCAxLjk4MTE5LCAzLjI4NzA1LCA0LjEwNCIsIFwKLSAgICAgICAgICAiMC4xODcwOTcsIDAuMjgyNTM5LCAwLjgzNTQyLCAxLjMyNjY4LCAxLjk3ODYsIDMuMjkwMDYsIDQuMTA2NTgiLCBcCi0gICAgICAgICAgIjAuMTg3MTEyLCAwLjI4MjQ0LCAwLjgzNTEyNCwgMS4zMjUzLCAxLjk4MTEyLCAzLjI4Njk1LCA0LjEwMzkzIiwgXAotICAgICAgICAgICIwLjE4NzA2OCwgMC4yODI0MTgsIDAuODMzNzcyLCAxLjMyNDEyLCAxLjk4MDQ3LCAzLjI4NzI0LCA0LjEwNzA1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxNTM3LCAwLjAwMTU0MywgMC4wMDE1NTEsIDAuMDAxNTUzLCAwLjAwMTU1NCwgMC4wMDE1NTUsIDAuMDAxNTU1IiwgXAotICAgICAgICAgICIwLjAwMTUyNiwgMC4wMDE1MzIsIDAuMDAxNTQsIDAuMDAxNTQyLCAwLjAwMTU0MywgMC4wMDE1NDQsIDAuMDAxNTQ0IiwgXAotICAgICAgICAgICIwLjAwMTUyLCAwLjAwMTUyNiwgMC4wMDE1MzQsIDAuMDAxNTM2LCAwLjAwMTUzNywgMC4wMDE1MzgsIDAuMDAxNTM4IiwgXAotICAgICAgICAgICIwLjAwMTUxNSwgMC4wMDE1MjEsIDAuMDAxNTMsIDAuMDAxNTMxLCAwLjAwMTUzMiwgMC4wMDE1MzMsIDAuMDAxNTMzIiwgXAotICAgICAgICAgICIwLjAwMTUxMSwgMC4wMDE1MTcsIDAuMDAxNTI2LCAwLjAwMTUyOSwgMC4wMDE1MjksIDAuMDAxNTMsIDAuMDAxNTMxIiwgXAotICAgICAgICAgICIwLjAwMTUwNSwgMC4wMDE1MTIsIDAuMDAxNTIyLCAwLjAwMTUyNCwgMC4wMDE1MjYsIDAuMDAxNTI3LCAwLjAwMTUyNyIsIFwKLSAgICAgICAgICAiMC4wMDE1MDEsIDAuMDAxNTA4LCAwLjAwMTUxOSwgMC4wMDE1MjIsIDAuMDAxNTIzLCAwLjAwMTUyNSwgMC4wMDE1MjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDIyMTcsIDAuMDAyMjI0LCAwLjAwMjIzNCwgMC4wMDIyMzYsIDAuMDAyMjM4LCAwLjAwMjIzOSwgMC4wMDIyMzkiLCBcCi0gICAgICAgICAgIjAuMDAyMjEyLCAwLjAwMjIxOSwgMC4wMDIyMjksIDAuMDAyMjMxLCAwLjAwMjIzMiwgMC4wMDIyMzMsIDAuMDAyMjMzIiwgXAotICAgICAgICAgICIwLjAwMjIwOCwgMC4wMDIyMTYsIDAuMDAyMjI2LCAwLjAwMjIyOCwgMC4wMDIyMjksIDAuMDAyMjMsIDAuMDAyMjMiLCBcCi0gICAgICAgICAgIjAuMDAyMjA1LCAwLjAwMjIxMiwgMC4wMDIyMjMsIDAuMDAyMjI2LCAwLjAwMjIyNywgMC4wMDIyMjgsIDAuMDAyMjI4IiwgXAotICAgICAgICAgICIwLjAwMjIwMiwgMC4wMDIyMSwgMC4wMDIyMjEsIDAuMDAyMjI0LCAwLjAwMjIyNSwgMC4wMDIyMjYsIDAuMDAyMjI2IiwgXAotICAgICAgICAgICIwLjAwMjE5NywgMC4wMDIyMDYsIDAuMDAyMjE5LCAwLjAwMjIyMSwgMC4wMDIyMjMsIDAuMDAyMjI0LCAwLjAwMjIyNSIsIFwKLSAgICAgICAgICAiMC4wMDIxOTQsIDAuMDAyMjAzLCAwLjAwMjIxNywgMC4wMDIyMiwgMC4wMDIyMjIsIDAuMDAyMjI0LCAwLjAwMjIyNCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTQwMSwgMC4wMDE0MDQsIDAuMDAxNDA5LCAwLjAwMTQwOSwgMC4wMDE0MSwgMC4wMDE0MSwgMC4wMDE0MSIsIFwKLSAgICAgICAgICAiMC4wMDEzOSwgMC4wMDEzOTQsIDAuMDAxMzk4LCAwLjAwMTM5OSwgMC4wMDEzOTksIDAuMDAxNCwgMC4wMDEzOTkiLCBcCi0gICAgICAgICAgIjAuMDAxMzg0LCAwLjAwMTM4OCwgMC4wMDEzOTIsIDAuMDAxMzkzLCAwLjAwMTM5MywgMC4wMDEzOTMsIDAuMDAxMzk0IiwgXAotICAgICAgICAgICIwLjAwMTM3OSwgMC4wMDEzODMsIDAuMDAxMzg4LCAwLjAwMTM4OSwgMC4wMDEzOSwgMC4wMDEzOSwgMC4wMDEzOSIsIFwKLSAgICAgICAgICAiMC4wMDEzNzYsIDAuMDAxMzgsIDAuMDAxMzg1LCAwLjAwMTM4NywgMC4wMDEzODcsIDAuMDAxMzg3LCAwLjAwMTM4NyIsIFwKLSAgICAgICAgICAiMC4wMDEzNzEsIDAuMDAxMzc2LCAwLjAwMTM4MiwgMC4wMDEzODMsIDAuMDAxMzg0LCAwLjAwMTM4NSwgMC4wMDEzODUiLCBcCi0gICAgICAgICAgIjAuMDAxMzY4LCAwLjAwMTM3MywgMC4wMDEzOCwgMC4wMDEzODEsIDAuMDAxMzgyLCAwLjAwMTM4MiwgMC4wMDEzODMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDIzNDUsIDAuMDAyMzUxLCAwLjAwMjM1NywgMC4wMDIzNTksIDAuMDAyMzYsIDAuMDAyMzYsIDAuMDAyMzYiLCBcCi0gICAgICAgICAgIjAuMDAyMzQsIDAuMDAyMzQ2LCAwLjAwMjM1MiwgMC4wMDIzNTQsIDAuMDAyMzU0LCAwLjAwMjM1NSwgMC4wMDIzNTUiLCBcCi0gICAgICAgICAgIjAuMDAyMzM3LCAwLjAwMjM0MywgMC4wMDIzNSwgMC4wMDIzNTEsIDAuMDAyMzUyLCAwLjAwMjM1MiwgMC4wMDIzNTIiLCBcCi0gICAgICAgICAgIjAuMDAyMzM0LCAwLjAwMjM0LCAwLjAwMjM0NywgMC4wMDIzNDksIDAuMDAyMzUsIDAuMDAyMzUsIDAuMDAyMzUiLCBcCi0gICAgICAgICAgIjAuMDAyMzMxLCAwLjAwMjMzOCwgMC4wMDIzNDYsIDAuMDAyMzQ3LCAwLjAwMjM0OCwgMC4wMDIzNDksIDAuMDAyMzQ5IiwgXAotICAgICAgICAgICIwLjAwMjMyOCwgMC4wMDIzMzQsIDAuMDAyMzQ0LCAwLjAwMjM0NiwgMC4wMDIzNDcsIDAuMDAyMzQ3LCAwLjAwMjM0OCIsIFwKLSAgICAgICAgICAiMC4wMDIzMjYsIDAuMDAyMzMzLCAwLjAwMjM0MywgMC4wMDIzNDUsIDAuMDAyMzQ2LCAwLjAwMjM0NywgMC4wMDIzNDgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTMCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzMTExLCAwLjAwMzExNywgMC4wMDMxMjYsIDAuMDAzMTI4LCAwLjAwMzEyOSwgMC4wMDMxMywgMC4wMDMxMzEiLCBcCi0gICAgICAgICAgIjAuMDAzMTA5LCAwLjAwMzExNSwgMC4wMDMxMjUsIDAuMDAzMTI3LCAwLjAwMzEyNywgMC4wMDMxMjksIDAuMDAzMTMiLCBcCi0gICAgICAgICAgIjAuMDAzMTA1LCAwLjAwMzExMiwgMC4wMDMxMjEsIDAuMDAzMTIzLCAwLjAwMzEyNSwgMC4wMDMxMjUsIDAuMDAzMTI1IiwgXAotICAgICAgICAgICIwLjAwMzEwMiwgMC4wMDMxMDgsIDAuMDAzMTE3LCAwLjAwMzExOSwgMC4wMDMxMjEsIDAuMDAzMTIxLCAwLjAwMzEyMiIsIFwKLSAgICAgICAgICAiMC4wMDMwOTksIDAuMDAzMTA1LCAwLjAwMzExNCwgMC4wMDMxMTYsIDAuMDAzMTE3LCAwLjAwMzExOCwgMC4wMDMxMTgiLCBcCi0gICAgICAgICAgIjAuMDAzMDk2LCAwLjAwMzEwMiwgMC4wMDMxMTEsIDAuMDAzMTEzLCAwLjAwMzExNCwgMC4wMDMxMTUsIDAuMDAzMTE1IiwgXAotICAgICAgICAgICIwLjAwMzA5MywgMC4wMDMwOTksIDAuMDAzMTA4LCAwLjAwMzExLCAwLjAwMzExMiwgMC4wMDMxMTIsIDAuMDAzMTEyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyMTIsIDAuMDAyMTI3LCAwLjAwMjEzNywgMC4wMDIxMzksIDAuMDAyMTQxLCAwLjAwMjE0MiwgMC4wMDIxNDIiLCBcCi0gICAgICAgICAgIjAuMDAyMTEyLCAwLjAwMjExOCwgMC4wMDIxMjksIDAuMDAyMTMxLCAwLjAwMjEzMiwgMC4wMDIxMzMsIDAuMDAyMTM0IiwgXAotICAgICAgICAgICIwLjAwMjEwNiwgMC4wMDIxMTIsIDAuMDAyMTIyLCAwLjAwMjEyNCwgMC4wMDIxMjYsIDAuMDAyMTI3LCAwLjAwMjEyNyIsIFwKLSAgICAgICAgICAiMC4wMDIxLCAwLjAwMjEwNywgMC4wMDIxMTcsIDAuMDAyMTE5LCAwLjAwMjEyLCAwLjAwMjEyMSwgMC4wMDIxMjIiLCBcCi0gICAgICAgICAgIjAuMDAyMDk3LCAwLjAwMjEwNCwgMC4wMDIxMTMsIDAuMDAyMTE2LCAwLjAwMjExNywgMC4wMDIxMTgsIDAuMDAyMTE4IiwgXAotICAgICAgICAgICIwLjAwMjA5NCwgMC4wMDIxMDEsIDAuMDAyMTExLCAwLjAwMjExMywgMC4wMDIxMTUsIDAuMDAyMTE2LCAwLjAwMjExNiIsIFwKLSAgICAgICAgICAiMC4wMDIwOTQsIDAuMDAyMTAxLCAwLjAwMjExMSwgMC4wMDIxMTMsIDAuMDAyMTE0LCAwLjAwMjExNSwgMC4wMDIxMTUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogTVgyWDIgKgotICogLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKE1YMlgyKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMTI4MzQzOwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2NDQyNjg7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjQyMzA0OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDY0NDI2ODsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxNTQsIDAuMDAwMTU3LCAwLjAwMDE1OCwgMC4wMDAxNTksIDAuMDAwMTU5LCAwLjAwMDE1OSwgMC4wMDAxNiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDE3LCAwLjAwMDE2NywgMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY2Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2NDcwMzI7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjQ1Mzk5OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDY0NzAzMjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxNTksIDAuMDAwMTYxLCAwLjAwMDE2MSwgMC4wMDAxNjIsIDAuMDAwMTYyLCAwLjAwMDE2MiwgMC4wMDAxNjIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxNjcsIDAuMDAwMTY2LCAwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiwgMC4wMDAxNjYiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFMwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDEyMzA4NjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDEyMzAyODsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDEyMzA4NjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyMDEsIDAuMDAwMTgzLCAwLjAwMDE3MiwgMC4wMDAxNjgsIDAuMDAwMTY3LCAwLjAwMDE2NywgMC4wMDAxNjYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDE1OTUsIDAuMDAxNTgzLCAwLjAwMTU3NSwgMC4wMDE1NzIsIDAuMDAxNTcxLCAwLjAwMTU2OSwgMC4wMDE1NjkiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4yNjE1Nzc7Ci0gICAgZnVuY3Rpb24gOiAiKChTMCBCKSArICghUzAgQSkpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xODcwMzQsIDAuMzcyNjU3LCAwLjUxNjIxNSwgMC42OTU1NjQsIDAuODc0NjgsIDEuMDUzNzQsIDEuMjMyNzQiLCBcCi0gICAgICAgICAgIjAuMTk4NTI4LCAwLjM4NDEyNiwgMC41Mjc2NzYsIDAuNzA3MDEsIDAuODg2MTAzLCAxLjA2NTEzLCAxLjI0NDIxIiwgXAotICAgICAgICAgICIwLjIxMjE0MiwgMC4zOTc3ODUsIDAuNTQxMzM1LCAwLjcyMDU2OCwgMC44OTk3NTQsIDEuMDc4ODIsIDEuMjU3ODYiLCBcCi0gICAgICAgICAgIjAuMjI1ODA0LCAwLjQxMTM4LCAwLjU1NDkzNSwgMC43MzQxNjEsIDAuOTEzMzE4LCAxLjA5MjQzLCAxLjI3MTY0IiwgXAotICAgICAgICAgICIwLjIzOTU2NCwgMC40MjUxNjUsIDAuNTY4NzA1LCAwLjc0ODAzNiwgMC45MjcxMTksIDEuMTA2MTcsIDEuMjg1MjYiLCBcCi0gICAgICAgICAgIjAuMjYxMjc2LCAwLjQ0Njg3LCAwLjU5MDQxNywgMC43Njk3MzYsIDAuOTQ4ODIyLCAxLjEyNzg5LCAxLjMwNzA5IiwgXAotICAgICAgICAgICIwLjI4MDQxOSwgMC40NjU4ODcsIDAuNjA5NDQ4LCAwLjc4ODY5MywgMC45Njc4ODUsIDEuMTQ2OTcsIDEuMzI1OTgiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTA5NTYyLCAwLjQ1OTE3LCAwLjc0NzAxMywgMS4xMDkzNSwgMS40NzY1NCwgMS44MzcxOCwgMi4yMDI1MiIsIFwKLSAgICAgICAgICAiMC4xMDk1MjIsIDAuNDU5MjE0LCAwLjc0NzAwNCwgMS4xMDkxNiwgMS40NzMxOCwgMS44NDA4OSwgMi4yMDI0MiIsIFwKLSAgICAgICAgICAiMC4xMDk0NzksIDAuNDU5MTMyLCAwLjc0NzAyMiwgMS4xMTE2NiwgMS40NzMzMywgMS44MzgwMywgMi4yMDI0MiIsIFwKLSAgICAgICAgICAiMC4xMDkzODIsIDAuNDU5MTI0LCAwLjc0NzAxOCwgMS4xMTE3NiwgMS40NzYzMiwgMS44NDExMiwgMi4yMDA3MyIsIFwKLSAgICAgICAgICAiMC4xMDk0NDEsIDAuNDU5MTgsIDAuNzQ3MDA0LCAxLjExMjI4LCAxLjQ3NjQyLCAxLjg0MDc4LCAyLjIwMjIzIiwgXAotICAgICAgICAgICIwLjEwOTMxOSwgMC40NTkwMjIsIDAuNzQ3ODkzLCAxLjExMjIxLCAxLjQ3NjM0LCAxLjgzNzg4LCAyLjIwNTkyIiwgXAotICAgICAgICAgICIwLjEwOTQxLCAwLjQ1OTA4LCAwLjc0NzAyMiwgMS4xMTE3OSwgMS40NzY1MSwgMS44NDExNiwgMi4yMDIxNCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNzg2OCwgMC4zOTAxMTYsIDAuNTU1Mjg0LCAwLjc2MTU0NiwgMC45Njc3ODMsIDEuMTczOTksIDEuMzgwMDkiLCBcCi0gICAgICAgICAgIjAuMTkwMDMyLCAwLjQwMTU4MiwgMC41NjY3ODMsIDAuNzczMDQsIDAuOTc5MjA4LCAxLjE4NTM5LCAxLjM5MTU2IiwgXAotICAgICAgICAgICIwLjIwMzE5NiwgMC40MTQ3NjEsIDAuNTc5OTQ3LCAwLjc4NjIxOSwgMC45OTI0NTYsIDEuMTk4NjksIDEuNDA0NzYiLCBcCi0gICAgICAgICAgIjAuMjE1NzUyLCAwLjQyNzMwOCwgMC41OTI0OTUsIDAuNzk4Nzc4LCAxLjAwNTAxLCAxLjIxMTIxLCAxLjQxNzMxIiwgXAotICAgICAgICAgICIwLjIyODE2OSwgMC40Mzk3MzYsIDAuNjA0OTAzLCAwLjgxMTIwNCwgMS4wMTczOCwgMS4yMjM1NSwgMS40Mjk3MyIsIFwKLSAgICAgICAgICAiMC4yNDc5MTUsIDAuNDU5NDE0LCAwLjYyNDYxOCwgMC44MzA4OTYsIDEuMDM3MTUsIDEuMjQzMjgsIDEuNDQ5NDQiLCBcCi0gICAgICAgICAgIjAuMjY0Nzc0LCAwLjQ3NjMzNiwgMC42NDE1MjgsIDAuODQ3ODcxLCAxLjA1NDExLCAxLjI2MDE5LCAxLjQ2NjM1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExNjU1NCwgMC41MTMxMTIsIDAuODM5Nzg4LCAxLjI1MDI2LCAxLjY2MjksIDIuMDcyODQsIDIuNDgyMyIsIFwKLSAgICAgICAgICAiMC4xMTY0OSwgMC41MTQ2NTksIDAuODM5OTg1LCAxLjI1MTgyLCAxLjY2MzQ0LCAyLjA3MDk1LCAyLjQ4NTExIiwgXAotICAgICAgICAgICIwLjExNjU0OCwgMC41MTMzNjIsIDAuODQwNzc4LCAxLjI1MDA1LCAxLjY1OTI4LCAyLjA3MzA5LCAyLjQ4NDk4IiwgXAotICAgICAgICAgICIwLjExNjQ2LCAwLjUxMzkwNSwgMC44NDA4NjcsIDEuMjUxNDgsIDEuNjU5NDQsIDIuMDczNjQsIDIuNDg0OTkiLCBcCi0gICAgICAgICAgIjAuMTE2NDI1LCAwLjUxNDYzMSwgMC44NDAxNDYsIDEuMjUxNzQsIDEuNjYwNTEsIDIuMDcwNzQsIDIuNDg1MTUiLCBcCi0gICAgICAgICAgIjAuMTE2MzU2LCAwLjUxNDU3NywgMC44NDA2NTMsIDEuMjUyMDUsIDEuNjYyNDIsIDIuMDcxMjIsIDIuNDgzMSIsIFwKLSAgICAgICAgICAiMC4xMTY1NzUsIDAuNTE0NjQyLCAwLjg0MDY4NCwgMS4yNTE2NCwgMS42NjIyMywgMi4wNzQ0NywgMi40ODQwNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xODcxMjMsIDAuMzcyNjc5LCAwLjUxNjIyNCwgMC42OTU1LCAwLjg3NDU3NiwgMS4wNTM2NSwgMS4yMzI3NiIsIFwKLSAgICAgICAgICAiMC4xOTg4NDUsIDAuMzg0NDExLCAwLjUyNzk1MywgMC43MDcyMjYsIDAuODg2MzAxLCAxLjA2NTM2LCAxLjI0NDQ2IiwgXAotICAgICAgICAgICIwLjIxMjg0NCwgMC4zOTg0MywgMC41NDE5NTMsIDAuNzIxMjA2LCAwLjkwMDQyMiwgMS4wNzk0MywgMS4yNTg0NCIsIFwKLSAgICAgICAgICAiMC4yMjY1OSwgMC40MTIxNjcsIDAuNTU1Njk3LCAwLjczNDkwOSwgMC45MTQwNTEsIDEuMDkzMTYsIDEuMjcyMiIsIFwKLSAgICAgICAgICAiMC4yNDAzNzQsIDAuNDI1ODk1LCAwLjU2OTQyMywgMC43NDg2NDcsIDAuOTI3Nzc5LCAxLjEwNjg2LCAxLjI4NTk3IiwgXAotICAgICAgICAgICIwLjI2MjUyNCwgMC40NDgwNDUsIDAuNTkxNTc0LCAwLjc3MDgyMywgMC45NDk5MzMsIDEuMTI5LCAxLjMwODA2IiwgXAotICAgICAgICAgICIwLjI4MTQ3NCwgMC40NjcwMDIsIDAuNjEwNTI2LCAwLjc4OTg2LCAwLjk2ODg4MywgMS4xNDc5OCwgMS4zMjcwMyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDk1MjUsIDAuNDU5MDE3LCAwLjc0NzAzNSwgMS4xMTIyLCAxLjQ3NjM0LCAxLjgzODAxLCAyLjIwNjEiLCBcCi0gICAgICAgICAgIjAuMTA5NTE0LCAwLjQ1OTA2OCwgMC43NDY1NjEsIDEuMTEyMTksIDEuNDc2MywgMS44Mzc4NSwgMi4yMDU4NyIsIFwKLSAgICAgICAgICAiMC4xMDk0NjMsIDAuNDU5MDk1LCAwLjc0Njk3NSwgMS4xMTAxNCwgMS40NzMwNSwgMS44MzcxNSwgMi4yMDI0MSIsIFwKLSAgICAgICAgICAiMC4xMDk0MDcsIDAuNDU5MDg1LCAwLjc0Njk3MSwgMS4xMTE3MywgMS40NzYyNiwgMS44NDEwNCwgMi4yMDIyMSIsIFwKLSAgICAgICAgICAiMC4xMDkzNzIsIDAuNDU5MDE5LCAwLjc0Njk2MywgMS4xMDk4NiwgMS40NzYyNiwgMS44NDA4OCwgMi4yMDYwNiIsIFwKLSAgICAgICAgICAiMC4xMDkyNjMsIDAuNDU4OTk2LCAwLjc0Njk3MiwgMS4xMDk5NiwgMS40NzYyNiwgMS44Mzk5OCwgMi4yMDU2MiIsIFwKLSAgICAgICAgICAiMC4xMDkyMzIsIDAuNDU5MDQ4LCAwLjc0NjkzNywgMS4xMDkwOCwgMS40NzM3MywgMS44NDA4OSwgMi4yMDI0NyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xODA4NTgsIDAuMzkyNTkxLCAwLjU1Nzc5NiwgMC43NjQxMzcsIDAuOTcwMzMzLCAxLjE3NjUyLCAxLjM4MjcxIiwgXAotICAgICAgICAgICIwLjE5MjIxMywgMC40MDM5NTEsIDAuNTY5MTc1LCAwLjc3NTQ5NiwgMC45ODE2ODgsIDEuMTg3ODksIDEuMzk0MDciLCBcCi0gICAgICAgICAgIjAuMjA1MzM3LCAwLjQxNjk1MSwgMC41ODIxNzMsIDAuNzg4NTE4LCAwLjk5NDgzMiwgMS4yMDA5MiwgMS40MDcwNyIsIFwKLSAgICAgICAgICAiMC4yMTc2MiwgMC40MjkzNDIsIDAuNTk0NTY4LCAwLjgwMDg5LCAxLjAwNzA4LCAxLjIxMzI5LCAxLjQxOTU4IiwgXAotICAgICAgICAgICIwLjIyOTk0NywgMC40NDE2OSwgMC42MDY4OTksIDAuODEzMjQzLCAxLjAxOTQ0LCAxLjIyNTYyLCAxLjQzMTgyIiwgXAotICAgICAgICAgICIwLjI0OTQ5NSwgMC40NjEyMzEsIDAuNjI2NDE5LCAwLjgzMjc5NiwgMS4wMzksIDEuMjQ1MTksIDEuNDUxMzciLCBcCi0gICAgICAgICAgIjAuMjY2NTU3LCAwLjQ3ODIwOCwgMC42NDM0NDgsIDAuODQ5NjY2LCAxLjA1NTkzLCAxLjI2MjE3LCAxLjQ2ODI3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExNjg5MiwgMC41MTQ5NDIsIDAuODQwNjE4LCAxLjI1MTgxLCAxLjY2MzM2LCAyLjA3MTU4LCAyLjQ4NDk3IiwgXAotICAgICAgICAgICIwLjExNjkxLCAwLjUxNDk1NiwgMC44NDIyNDUsIDEuMjUxOTUsIDEuNjYzNDUsIDIuMDcxMzgsIDIuNDg2MDIiLCBcCi0gICAgICAgICAgIjAuMTE2OTY3LCAwLjUxNDkyNSwgMC44NDA1NDIsIDEuMjUxMTEsIDEuNjYxNSwgMi4wNzQyNSwgMi40ODI2OCIsIFwKLSAgICAgICAgICAiMC4xMTY4NCwgMC41MTQ5NjYsIDAuODQyMjQzLCAxLjI1MTk5LCAxLjY2MzU0LCAyLjA3MTY0LCAyLjQ4NDY2IiwgXAotICAgICAgICAgICIwLjExNjgyNywgMC41MTQ5MiwgMC44NDEwNzUsIDEuMjUxNzgsIDEuNjYzMjMsIDIuMDcyLCAyLjQ4NTIzIiwgXAotICAgICAgICAgICIwLjExNjY2MiwgMC41MTQ5MzYsIDAuODQyMDU0LCAxLjI1MTg1LCAxLjY2MzQxLCAyLjA3MTE0LCAyLjQ4Mzg4IiwgXAotICAgICAgICAgICIwLjExNjg0NCwgMC41MTQ5NTYsIDAuODM5NzU5LCAxLjI1MDIsIDEuNjYzMDMsIDIuMDczMzMsIDIuNDgyMTUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUzAiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE3MjY4NiwgMC4zNTgyMTcsIDAuNTAxNzM0LCAwLjY4MTAxOCwgMC44NjAwOTYsIDEuMDM5MTYsIDEuMjE4MyIsIFwKLSAgICAgICAgICAiMC4xODMyMTksIDAuMzY4NzUsIDAuNTEyMjc2LCAwLjY5MTU1MiwgMC44NzA2MjcsIDEuMDQ5NjksIDEuMjI4NzYiLCBcCi0gICAgICAgICAgIjAuMTk2ODY5LCAwLjM4MjM4NCwgMC41MjU4OTYsIDAuNzA1MiwgMC44ODQyNzMsIDEuMDYzMzIsIDEuMjQyNCIsIFwKLSAgICAgICAgICAiMC4yMTAzNjgsIDAuMzk1ODY0LCAwLjUzOTM5OCwgMC43MTg3MDQsIDAuODk3Nzc4LCAxLjA3NjgzLCAxLjI1NTkxIiwgXAotICAgICAgICAgICIwLjIyMzk1NCwgMC40MDk0OTUsIDAuNTUzMDE4LCAwLjczMjMxNSwgMC45MTEzODksIDEuMDkwNDQsIDEuMjY5NTIiLCBcCi0gICAgICAgICAgIjAuMjQ1OTE5LCAwLjQzMTQ4LCAwLjU3NTAxOSwgMC43NTQzMywgMC45MzM0MDYsIDEuMTEyNDcsIDEuMjkxNTciLCBcCi0gICAgICAgICAgIjAuMjY1MzUxLCAwLjQ1MDkyNSwgMC41OTQ0NzcsIDAuNzczODA0LCAwLjk1Mjg4MSwgMS4xMzE5MywgMS4zMTEwMSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDkwNTYsIDAuNDU5MDYyLCAwLjc0NjkzOCwgMS4xMTIyLCAxLjQ3NjQsIDEuODM3OTgsIDIuMjA2MjYiLCBcCi0gICAgICAgICAgIjAuMTA5MDUxLCAwLjQ1OTAyLCAwLjc0ODIwOCwgMS4xMTIxNywgMS40NzYzNCwgMS44Mzk4OCwgMi4yMDIyMSIsIFwKLSAgICAgICAgICAiMC4xMDkxNywgMC40NTkwMTEsIDAuNzQ2OTAzLCAxLjExMjE5LCAxLjQ3NjM0LCAxLjg0MDczLCAyLjIwMjE3IiwgXAotICAgICAgICAgICIwLjEwOTA0NSwgMC40NTg0NzQsIDAuNzQ2OTAxLCAxLjExMjE5LCAxLjQ3NjMzLCAxLjg0MDUsIDIuMjAyMDEiLCBcCi0gICAgICAgICAgIjAuMTA5MTgxLCAwLjQ1OTAyNCwgMC43NDgwOTIsIDEuMTEyMTgsIDEuNDc2MzEsIDEuODQwNywgMi4yMDIyMiIsIFwKLSAgICAgICAgICAiMC4xMDkyMzksIDAuNDU5MTUsIDAuNzQ3OTk4LCAxLjExMjE3LCAxLjQ3NjI5LCAxLjg0MDMsIDIuMjA1ODQiLCBcCi0gICAgICAgICAgIjAuMTA5MzE1LCAwLjQ1ODkyMywgMC43NDY5NDUsIDEuMTEyMjIsIDEuNDc2MzYsIDEuODQwNjUsIDIuMjAyMTkiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTY2MTgsIDAuMzc3Njg2LCAwLjU0Mjg4NSwgMC43NDkxNDEsIDAuOTU1MzEsIDEuMTYxNDksIDEuMzY3NjYiLCBcCi0gICAgICAgICAgIjAuMTc2NDg1LCAwLjM4Nzk5NSwgMC41NTMxOSwgMC43NTk0ODgsIDAuOTY1Njk1LCAxLjE3MTgyLCAxLjM3OCIsIFwKLSAgICAgICAgICAiMC4xODk1MzEsIDAuNDAxMTA4LCAwLjU2NjI2NCwgMC43NzI1NjUsIDAuOTc4NzMsIDEuMTg0OTMsIDEuMzkxMTUiLCBcCi0gICAgICAgICAgIjAuMjAyNjc0LCAwLjQxNDE3MiwgMC41NzkzNjIsIDAuNzg1NjI3LCAwLjk5MTg1NywgMS4xOTgwNywgMS40MDQxNiIsIFwKLSAgICAgICAgICAiMC4yMTU5MDgsIDAuNDI3MzU5LCAwLjU5MjU0NSwgMC43OTg4MzgsIDEuMDA1MDEsIDEuMjExMjEsIDEuNDE3MzUiLCBcCi0gICAgICAgICAgIjAuMjM3MDIzLCAwLjQ0ODU2NywgMC42MTM3NzUsIDAuODIwMDUxLCAxLjAyNjI5LCAxLjIzMjUyLCAxLjQzODYiLCBcCi0gICAgICAgICAgIjAuMjU1NDMsIDAuNDY3MDM4LCAwLjYzMjI0MywgMC44Mzg1NTMsIDEuMDQ0NzMsIDEuMjUwOTMsIDEuNDU3MSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTYyNjgsIDAuNTE0NjM1LCAwLjgzOTg2MiwgMS4yNTE3OCwgMS42NjMyNywgMi4wNzA5NCwgMi40ODUwOSIsIFwKLSAgICAgICAgICAiMC4xMTYyNjIsIDAuNTEzNzE5LCAwLjgzOTUwNiwgMS4yNTE2OCwgMS42NjI2MywgMi4wNzE3MywgMi40ODUxMSIsIFwKLSAgICAgICAgICAiMC4xMTYyNTUsIDAuNTE0NjQ5LCAwLjg0MDMyNywgMS4yNTE4OCwgMS42NjM1NCwgMi4wNzE1MywgMi40ODQxOSIsIFwKLSAgICAgICAgICAiMC4xMTYzMzEsIDAuNTE0Njc0LCAwLjg0MDY0NiwgMS4yNDk2MiwgMS42NjMwMSwgMi4wNzI2OCwgMi40ODIxNiIsIFwKLSAgICAgICAgICAiMC4xMTY0NCwgMC41MTQ2NTUsIDAuODM5MjM0LCAxLjI1MTgzLCAxLjY2MzYxLCAyLjA3MTM1LCAyLjQ4NjM5IiwgXAotICAgICAgICAgICIwLjExNjM4OCwgMC41MTQ2NzksIDAuODQwMTc5LCAxLjI1MDI1LCAxLjY2MjkyLCAyLjA3MzA5LCAyLjQ4MjA4IiwgXAotICAgICAgICAgICIwLjExNjYwMiwgMC41MTQ2NzgsIDAuODM5NTA2LCAxLjI1MTkyLCAxLjY2MzY5LCAyLjA3MTM4LCAyLjQ4MTg3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlMwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMDgwODYsIDAuMzkzNjQsIDAuNTM3MTk4LCAwLjcxNjQ2LCAwLjg5NTU4NSwgMS4wNzQ2NiwgMS4yNTM3MiIsIFwKLSAgICAgICAgICAiMC4yMjAzNDQsIDAuNDA1NzQyLCAwLjU0OTI5MiwgMC43Mjg1NzIsIDAuOTA3Njg5LCAxLjA4Njc2LCAxLjI2NTg3IiwgXAotICAgICAgICAgICIwLjIzNTA4MywgMC40MjA2ODIsIDAuNTY0Mjc0LCAwLjc0MzU0NywgMC45MjI2MywgMS4xMDE3LCAxLjI4MDg1IiwgXAotICAgICAgICAgICIwLjI0OTQ1NywgMC40MzUwNzksIDAuNTc4NjUzLCAwLjc1NzkzOCwgMC45MzcwMjUsIDEuMTE2MDksIDEuMjk1MTYiLCBcCi0gICAgICAgICAgIjAuMjYyNzM1LCAwLjQ0ODIwMywgMC41OTE3NDcsIDAuNzcxMDk1LCAwLjk1MDEyOCwgMS4xMjkyMywgMS4zMDgyOCIsIFwKLSAgICAgICAgICAiMC4yODEzOCwgMC40NjY5NzMsIDAuNjEwNTQ5LCAwLjc4OTg0OSwgMC45Njg5MzIsIDEuMTQ3OTksIDEuMzI3MDciLCBcCi0gICAgICAgICAgIjAuMjk2MDM3LCAwLjQ4MTU5OSwgMC42MjUxNTMsIDAuODA0NDE5LCAwLjk4MzU0LCAxLjE2MjYxLCAxLjM0MTY4Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwOTQ3OCwgMC40NTkxMTEsIDAuNzQ3MDI1LCAxLjExMDAzLCAxLjQ3NjMzLCAxLjg0MDQxLCAyLjIwNTYxIiwgXAotICAgICAgICAgICIwLjEwOTYwOSwgMC40NTkxMTIsIDAuNzQ2OTg4LCAxLjExMDMzLCAxLjQ3NjM0LCAxLjg0MDEsIDIuMjAyOTEiLCBcCi0gICAgICAgICAgIjAuMTA5NTAyLCAwLjQ1OTEwNCwgMC43NDgzMzksIDEuMTEyMjMsIDEuNDc2MzYsIDEuODQwMSwgMi4yMDYiLCBcCi0gICAgICAgICAgIjAuMTA5NTE0LCAwLjQ1OTA5MiwgMC43NDgzMjksIDEuMTEyMjUsIDEuNDc2MzcsIDEuODQwNjcsIDIuMjAyNDMiLCBcCi0gICAgICAgICAgIjAuMTA5NTExLCAwLjQ1OTE2NywgMC43NDcwMSwgMS4xMDkxMiwgMS40NzU0OCwgMS44NDEsIDIuMjAyNDgiLCBcCi0gICAgICAgICAgIjAuMTA5NDg0LCAwLjQ1ODk5NSwgMC43NDgyNTYsIDEuMTEyMjUsIDEuNDc2MzYsIDEuODQwNzUsIDIuMjAyMzciLCBcCi0gICAgICAgICAgIjAuMTA5NDA3LCAwLjQ1OTAzNCwgMC43NDcwMjMsIDEuMTEwMDgsIDEuNDc2MzEsIDEuODQwMywgMi4yMDU1MSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMDU2MDEsIDAuNDE3MTgxLCAwLjU4MjQxOCwgMC43ODg3NCwgMC45OTQ5NTMsIDEuMjAxMTcsIDEuNDA3MzkiLCBcCi0gICAgICAgICAgIjAuMjE3NDQ1LCAwLjQyOTIxMiwgMC41OTQ0MTEsIDAuODAwNzc1LCAxLjAwNjk3LCAxLjIxMzE5LCAxLjQxOTM2IiwgXAotICAgICAgICAgICIwLjIzMzE4NSwgMC40NDQ4OTQsIDAuNjEwMDg3LCAwLjgxNjQ1NCwgMS4wMjI2NSwgMS4yMjg5LCAxLjQzNTEiLCBcCi0gICAgICAgICAgIjAuMjQ3OTc1LCAwLjQ1OTUyLCAwLjYyNDY5NywgMC44MzEwODEsIDEuMDM3MjgsIDEuMjQzNDgsIDEuNDQ5NjYiLCBcCi0gICAgICAgICAgIjAuMjYyNzk5LCAwLjQ3NDUzNSwgMC42Mzk3NDEsIDAuODQ2MDk3LCAxLjA1MjI5LCAxLjI1ODUxLCAxLjQ2NDc5IiwgXAotICAgICAgICAgICIwLjI4NDQxOSwgMC40OTYwOTQsIDAuNjYxMzQ2LCAwLjg2NzY5OCwgMS4wNzM5LCAxLjI4MDEyLCAxLjQ4NjI3IiwgXAotICAgICAgICAgICIwLjMwMTc5MiwgMC41MTM1MzMsIDAuNjc4NzQ4LCAwLjg4NTA5NSwgMS4wOTEzLCAxLjI5NzQ4LCAxLjUwMzY4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExNjkzNCwgMC41MTUwNjEsIDAuODQxMDA4LCAxLjI1MjM3LCAxLjY2MTUxLCAyLjA3MTk3LCAyLjQ4NTU3IiwgXAotICAgICAgICAgICIwLjExNjc5LCAwLjUxNTAxMywgMC44NDIxNzcsIDEuMjUyMjMsIDEuNjYzNjYsIDIuMDcxNjYsIDIuNDgxOTMiLCBcCi0gICAgICAgICAgIjAuMTE2OTM0LCAwLjUxNDk3OSwgMC44NDIxNTQsIDEuMjUyMDUsIDEuNjYzNzQsIDIuMDcxOTMsIDIuNDg1MjUiLCBcCi0gICAgICAgICAgIjAuMTE2ODgzLCAwLjUxNDgzOCwgMC44NDE5ODcsIDEuMjUxODcsIDEuNjYzNDUsIDIuMDcwOTksIDIuNDg1MDciLCBcCi0gICAgICAgICAgIjAuMTE2ODQ1LCAwLjUxNDk2OSwgMC44NDIyNTQsIDEuMjUxOTksIDEuNjYzNjMsIDIuMDcxNzEsIDIuNDg0MzMiLCBcCi0gICAgICAgICAgIjAuMTE2ODc0LCAwLjUxNDE0NSwgMC44NDA5MSwgMS4yNTE4MSwgMS42NjA2MywgMi4wNzM4OSwgMi40ODM4NCIsIFwKLSAgICAgICAgICAiMC4xMTY4MDksIDAuNTE0ODIsIDAuODQxMjE0LCAxLjI1MTkxLCAxLjY2MzQsIDIuMDcxNDcsIDIuNDg1MjQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDIyNDQsIDAuMDAyMjk0LCAwLjAwMjMwMSwgMC4wMDIzMDUsIDAuMDAyMzA3LCAwLjAwMjMwOCwgMC4wMDIzMDgiLCBcCi0gICAgICAgICAgIjAuMDAyMjM0LCAwLjAwMjI4NSwgMC4wMDIyOTIsIDAuMDAyMjk1LCAwLjAwMjI5NywgMC4wMDIyOTgsIDAuMDAyMjk5IiwgXAotICAgICAgICAgICIwLjAwMjIyNywgMC4wMDIyNzksIDAuMDAyMjg2LCAwLjAwMjI5LCAwLjAwMjI5MSwgMC4wMDIyOTIsIDAuMDAyMjkzIiwgXAotICAgICAgICAgICIwLjAwMjIyMiwgMC4wMDIyNzQsIDAuMDAyMjgxLCAwLjAwMjI4NSwgMC4wMDIyODcsIDAuMDAyMjg4LCAwLjAwMjI4OSIsIFwKLSAgICAgICAgICAiMC4wMDIyMTgsIDAuMDAyMjcsIDAuMDAyMjc4LCAwLjAwMjI4MiwgMC4wMDIyODQsIDAuMDAyMjg1LCAwLjAwMjI4NiIsIFwKLSAgICAgICAgICAiMC4wMDIyMTEsIDAuMDAyMjY1LCAwLjAwMjI3MywgMC4wMDIyNzcsIDAuMDAyMjgsIDAuMDAyMjgxLCAwLjAwMjI4MiIsIFwKLSAgICAgICAgICAiMC4wMDIyMDYsIDAuMDAyMjYxLCAwLjAwMjI3LCAwLjAwMjI3NCwgMC4wMDIyNzcsIDAuMDAyMjc4LCAwLjAwMjI3OSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjk5MSwgMC4wMDMwNTYsIDAuMDAzMDY1LCAwLjAwMzA3LCAwLjAwMzA3MiwgMC4wMDMwNzMsIDAuMDAzMDc0IiwgXAotICAgICAgICAgICIwLjAwMjk4NiwgMC4wMDMwNTIsIDAuMDAzMDYsIDAuMDAzMDY1LCAwLjAwMzA2NywgMC4wMDMwNjksIDAuMDAzMDY5IiwgXAotICAgICAgICAgICIwLjAwMjk4MiwgMC4wMDMwNDksIDAuMDAzMDU4LCAwLjAwMzA2MiwgMC4wMDMwNjQsIDAuMDAzMDY2LCAwLjAwMzA2NyIsIFwKLSAgICAgICAgICAiMC4wMDI5NzgsIDAuMDAzMDQ2LCAwLjAwMzA1NSwgMC4wMDMwNiwgMC4wMDMwNjIsIDAuMDAzMDYzLCAwLjAwMzA2NCIsIFwKLSAgICAgICAgICAiMC4wMDI5NzQsIDAuMDAzMDQzLCAwLjAwMzA1MiwgMC4wMDMwNTgsIDAuMDAzMDYsIDAuMDAzMDYyLCAwLjAwMzA2MyIsIFwKLSAgICAgICAgICAiMC4wMDI5NjksIDAuMDAzMDM5LCAwLjAwMzA0OSwgMC4wMDMwNTUsIDAuMDAzMDU3LCAwLjAwMzA1OSwgMC4wMDMwNiIsIFwKLSAgICAgICAgICAiMC4wMDI5NjMsIDAuMDAzMDM1LCAwLjAwMzA0NiwgMC4wMDMwNTIsIDAuMDAzMDU2LCAwLjAwMzA1OCwgMC4wMDMwNTkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDIxMDQsIDAuMDAyMTQzLCAwLjAwMjE0OSwgMC4wMDIxNSwgMC4wMDIxNTMsIDAuMDAyMTUzLCAwLjAwMjE1NCIsIFwKLSAgICAgICAgICAiMC4wMDIwOTQsIDAuMDAyMTM1LCAwLjAwMjEzOSwgMC4wMDIxNDEsIDAuMDAyMTQzLCAwLjAwMjE0NCwgMC4wMDIxNDUiLCBcCi0gICAgICAgICAgIjAuMDAyMDg4LCAwLjAwMjEyOSwgMC4wMDIxMzMsIDAuMDAyMTM2LCAwLjAwMjEzNywgMC4wMDIxMzgsIDAuMDAyMTM5IiwgXAotICAgICAgICAgICIwLjAwMjA4MywgMC4wMDIxMjQsIDAuMDAyMTI5LCAwLjAwMjEzMiwgMC4wMDIxMzMsIDAuMDAyMTM0LCAwLjAwMjEzNSIsIFwKLSAgICAgICAgICAiMC4wMDIwNzgsIDAuMDAyMTIyLCAwLjAwMjEyNiwgMC4wMDIxMywgMC4wMDIxMzEsIDAuMDAyMTMxLCAwLjAwMjEzMiIsIFwKLSAgICAgICAgICAiMC4wMDIwNzQsIDAuMDAyMTE3LCAwLjAwMjEyMywgMC4wMDIxMjYsIDAuMDAyMTI4LCAwLjAwMjEyOCwgMC4wMDIxMjkiLCBcCi0gICAgICAgICAgIjAuMDAyMDY4LCAwLjAwMjExMywgMC4wMDIxMiwgMC4wMDIxMjMsIDAuMDAyMTI1LCAwLjAwMjEyNiwgMC4wMDIxMjciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDMxNTEsIDAuMDAzMjA4LCAwLjAwMzIxNiwgMC4wMDMyMTksIDAuMDAzMjIxLCAwLjAwMzIyMywgMC4wMDMyMjMiLCBcCi0gICAgICAgICAgIjAuMDAzMTQ3LCAwLjAwMzIwNCwgMC4wMDMyMTEsIDAuMDAzMjE1LCAwLjAwMzIxNywgMC4wMDMyMTgsIDAuMDAzMjE5IiwgXAotICAgICAgICAgICIwLjAwMzE0MywgMC4wMDMyMDEsIDAuMDAzMjA5LCAwLjAwMzIxMiwgMC4wMDMyMTQsIDAuMDAzMjE1LCAwLjAwMzIxNiIsIFwKLSAgICAgICAgICAiMC4wMDMxMzksIDAuMDAzMTk5LCAwLjAwMzIwNiwgMC4wMDMyMSwgMC4wMDMyMTIsIDAuMDAzMjE0LCAwLjAwMzIxNCIsIFwKLSAgICAgICAgICAiMC4wMDMxMzYsIDAuMDAzMTk2LCAwLjAwMzIwNCwgMC4wMDMyMDksIDAuMDAzMjExLCAwLjAwMzIxMiwgMC4wMDMyMTMiLCBcCi0gICAgICAgICAgIjAuMDAzMTMsIDAuMDAzMTkyLCAwLjAwMzIwMSwgMC4wMDMyMDYsIDAuMDAzMjA4LCAwLjAwMzIxLCAwLjAwMzIxMSIsIFwKLSAgICAgICAgICAiMC4wMDMxMjYsIDAuMDAzMTksIDAuMDAzMiwgMC4wMDMyMDQsIDAuMDAzMjA3LCAwLjAwMzIwOSwgMC4wMDMyMSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlMwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDM3OTcsIDAuMDAzODQ3LCAwLjAwMzg1NSwgMC4wMDM4NTksIDAuMDAzODYxLCAwLjAwMzg2MywgMC4wMDM4NjQiLCBcCi0gICAgICAgICAgIjAuMDAzNzk1LCAwLjAwMzg0NiwgMC4wMDM4NTQsIDAuMDAzODU4LCAwLjAwMzg2LCAwLjAwMzg2MSwgMC4wMDM4NjIiLCBcCi0gICAgICAgICAgIjAuMDAzNzkzLCAwLjAwMzg0NCwgMC4wMDM4NTEsIDAuMDAzODU2LCAwLjAwMzg1NywgMC4wMDM4NTksIDAuMDAzODYiLCBcCi0gICAgICAgICAgIjAuMDAzNzkxLCAwLjAwMzg0MiwgMC4wMDM4NDksIDAuMDAzODU0LCAwLjAwMzg1NSwgMC4wMDM4NTcsIDAuMDAzODU3IiwgXAotICAgICAgICAgICIwLjAwMzc4OSwgMC4wMDM4NCwgMC4wMDM4NDcsIDAuMDAzODUxLCAwLjAwMzg1MywgMC4wMDM4NTUsIDAuMDAzODU2IiwgXAotICAgICAgICAgICIwLjAwMzc4NywgMC4wMDM4MzgsIDAuMDAzODQ1LCAwLjAwMzg0OSwgMC4wMDM4NTEsIDAuMDAzODUzLCAwLjAwMzg1NCIsIFwKLSAgICAgICAgICAiMC4wMDM3ODUsIDAuMDAzODM2LCAwLjAwMzg0MywgMC4wMDM4NDgsIDAuMDAzODUsIDAuMDAzODUxLCAwLjAwMzg1MiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjkxNywgMC4wMDI5NzksIDAuMDAyOTg4LCAwLjAwMjk5MywgMC4wMDI5OTYsIDAuMDAyOTk3LCAwLjAwMjk5OCIsIFwKLSAgICAgICAgICAiMC4wMDI5MDksIDAuMDAyOTcsIDAuMDAyOTc5LCAwLjAwMjk4NCwgMC4wMDI5ODcsIDAuMDAyOTg4LCAwLjAwMjk4OSIsIFwKLSAgICAgICAgICAiMC4wMDI5MDQsIDAuMDAyOTY2LCAwLjAwMjk3NCwgMC4wMDI5NzksIDAuMDAyOTgyLCAwLjAwMjk4MywgMC4wMDI5ODUiLCBcCi0gICAgICAgICAgIjAuMDAyOSwgMC4wMDI5NjEsIDAuMDAyOTcsIDAuMDAyOTc1LCAwLjAwMjk3OCwgMC4wMDI5OCwgMC4wMDI5ODEiLCBcCi0gICAgICAgICAgIjAuMDAyODk4LCAwLjAwMjk2LCAwLjAwMjk2OCwgMC4wMDI5NzMsIDAuMDAyOTc2LCAwLjAwMjk3NywgMC4wMDI5NzgiLCBcCi0gICAgICAgICAgIjAuMDAyODk2LCAwLjAwMjk1OCwgMC4wMDI5NjcsIDAuMDAyOTcyLCAwLjAwMjk3NSwgMC4wMDI5NzYsIDAuMDAyOTc3IiwgXAotICAgICAgICAgICIwLjAwMjg5NiwgMC4wMDI5NTgsIDAuMDAyOTY3LCAwLjAwMjk3MiwgMC4wMDI5NzQsIDAuMDAyOTc2LCAwLjAwMjk3NyIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBNWDJYNCAqCi0gKiAtLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoTVgyWDQpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4yMTYxODk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDc1NDU1NjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA3NTEzNjc7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNzU0NTU2OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDIyNSwgMC4wMDAyMjksIDAuMDAwMjMxLCAwLjAwMDIzMiwgMC4wMDAyMzMsIDAuMDAwMjMzLCAwLjAwMDIzMyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDI0OCwgMC4wMDAyNDQsIDAuMDAwMjQ0LCAwLjAwMDI0NCwgMC4wMDAyNDQsIDAuMDAwMjQ0LCAwLjAwMDI0MyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNzU5Mzc1OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDc1NjE3NTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA3NTkzNzU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjMzLCAwLjAwMDIzNSwgMC4wMDAyMzYsIDAuMDAwMjM3LCAwLjAwMDIzNywgMC4wMDAyMzcsIDAuMDAwMjM3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjQ5LCAwLjAwMDI0NSwgMC4wMDAyNDQsIDAuMDAwMjQ0LCAwLjAwMDI0NCwgMC4wMDAyNDQsIDAuMDAwMjQzIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNDM4NjQ7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNDM3NDg7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNDM4NjQ7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjE3LCAwLjAwMDE5OCwgMC4wMDAxODksIDAuMDAwMTg1LCAwLjAwMDE4MywgMC4wMDAxODQsIDAuMDAwMTg2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxNzIsIDAuMDAxNzA5LCAwLjAwMTcwMSwgMC4wMDE2OTgsIDAuMDAxNjk0LCAwLjAwMTY5NCwgMC4wMDE2OTQiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC41MjU4NjE7Ci0gICAgZnVuY3Rpb24gOiAiKChTMCBCKSArICghUzAgQSkpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNzY4LCAwLjI4MDU1MiwgMC4zNTMyNDksIDAuNDQzMjc4LCAwLjUzMzEsIDAuNjIyODI3LCAwLjcxMjUwOSIsIFwKLSAgICAgICAgICAiMC4xODgxOTcsIDAuMjkxNzM2LCAwLjM2NDU2NCwgMC40NTQ2MDQsIDAuNTQ0MzgzLCAwLjYzNDE0MSwgMC43MjM4NzciLCBcCi0gICAgICAgICAgIjAuMjAxNjUsIDAuMzA1MjE4LCAwLjM3Nzk5NywgMC40NjgwNzEsIDAuNTU3ODQ0LCAwLjY0NzY1NSwgMC43MzczMzMiLCBcCi0gICAgICAgICAgIjAuMjE1MTUyLCAwLjMxODYzMywgMC4zOTEzNiwgMC40ODEzOTQsIDAuNTcxMTk1LCAwLjY2MDkyNywgMC43NTA2NzUiLCBcCi0gICAgICAgICAgIjAuMjI4NjA4LCAwLjMzMjA3NiwgMC40MDQ3OTMsIDAuNDk0ODI4LCAwLjU4NDYzNiwgMC42NzQzNjgsIDAuNzY0MDkiLCBcCi0gICAgICAgICAgIjAuMjUwMTg4LCAwLjM1MzYsIDAuNDI2MzYxLCAwLjUxNjQxOCwgMC42MDYxOTcsIDAuNjk1OTMxLCAwLjc4NTY4NiIsIFwKLSAgICAgICAgICAiMC4yNjg2MTMsIDAuMzcyMjE0LCAwLjQ0NDk3MSwgMC41MzUwMDQsIDAuNjI0ODIsIDAuNzE0NTU2LCAwLjgwNDMxMSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODIwMDMsIDAuMjUxNDM0LCAwLjM5MTY1OSwgMC41NzE1ODIsIDAuNzUxNzIxLCAwLjkzMjI2MiwgMS4xMTU2MSIsIFwKLSAgICAgICAgICAiMC4wODE5MzQsIDAuMjUxMzYxLCAwLjM5MjE0NywgMC41NzE0MjIsIDAuNzUxMDY1LCAwLjkzMzc2OSwgMS4xMTM0MSIsIFwKLSAgICAgICAgICAiMC4wODE5MjYsIDAuMjUxNDIzLCAwLjM5MjEzMiwgMC41NzE0MDYsIDAuNzUwOTk4LCAwLjkzMzk1MSwgMS4xMTMzNyIsIFwKLSAgICAgICAgICAiMC4wODE5NTYsIDAuMjUxNDI0LCAwLjM5MjE1NCwgMC41NzEzMTgsIDAuNzUwOTkxLCAwLjkzMjE3MiwgMS4xMTMxNCIsIFwKLSAgICAgICAgICAiMC4wODE4ODUsIDAuMjUxNDA1LCAwLjM5MjE3MywgMC41NzAxODcsIDAuNzUwOTgzLCAwLjkzMjE2OSwgMS4xMTM5NCIsIFwKLSAgICAgICAgICAiMC4wODE4ODgsIDAuMjUxMjI2LCAwLjM5MjExLCAwLjU3MTM4MywgMC43NTA5MiwgMC45MzM1MjYsIDEuMTEzMzMiLCBcCi0gICAgICAgICAgIjAuMDgxNDU1LCAwLjI1MTI5LCAwLjM5MTk5NSwgMC41NzEyNjMsIDAuNzUwOTQsIDAuOTMyMTYsIDEuMTEzMjYiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTY5MjM3LCAwLjI4NTUyNiwgMC4zNjk2OTQsIDAuNDc0MDU3LCAwLjU3ODIzNCwgMC42ODIzOTUsIDAuNzg2NTA2IiwgXAotICAgICAgICAgICIwLjE4MDYzNSwgMC4yOTY5MDgsIDAuMzgxMDc2LCAwLjQ4NTQ0MywgMC41ODk2MzIsIDAuNjkzNzg2LCAwLjc5Nzg5NSIsIFwKLSAgICAgICAgICAiMC4xOTM2ODgsIDAuMzA5ODk5LCAwLjM5NDAxNiwgMC40OTg0MTcsIDAuNjAyNTkyLCAwLjcwNjc5MSwgMC44MTA4MjgiLCBcCi0gICAgICAgICAgIjAuMjA2MTY4LCAwLjMyMjMzNiwgMC40MDY0OTQsIDAuNTEwODYsIDAuNjE1MDUxLCAwLjcxOTI3MiwgMC44MjMzMTMiLCBcCi0gICAgICAgICAgIjAuMjE4NDcxLCAwLjMzNDU5NCwgMC40MTg3NSwgMC41MjMxMDcsIDAuNjI3MzA4LCAwLjczMTUxMSwgMC44MzU0OTQiLCBcCi0gICAgICAgICAgIjAuMjM4MTAzLCAwLjM1NDI4OCwgMC40Mzg0NTMsIDAuNTQyODU4LCAwLjY0NzAzLCAwLjc1MTE2NCwgMC44NTUzMDIiLCBcCi0gICAgICAgICAgIjAuMjU1MjQ0LCAwLjM3MTQ5NiwgMC40NTU2NjEsIDAuNTYwMDUsIDAuNjY0MjQzLCAwLjc2ODM1MSwgMC44NzI1MjciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg0NTM5LCAwLjI3OTg4NSwgMC40NDExMDUsIDAuNjQ1MjA5LCAwLjg1MjczOSwgMS4wNTcyNywgMS4yNjYxNiIsIFwKLSAgICAgICAgICAiMC4wODQ1NjIsIDAuMjc5ODY5LCAwLjQ0MTA0MywgMC42NDUyNTcsIDAuODUyODI1LCAxLjA1NzY5LCAxLjI2NjIxIiwgXAotICAgICAgICAgICIwLjA4NDQwMywgMC4yNzk5MTIsIDAuNDQxMTIzLCAwLjY0NjUsIDAuODUxOCwgMS4wNTY3NSwgMS4yNjU0MiIsIFwKLSAgICAgICAgICAiMC4wODQ1NDYsIDAuMjc5ODM2LCAwLjQ0MTExLCAwLjY0NjIzOCwgMC44NTI2NjIsIDEuMDU2MjcsIDEuMjY2MjMiLCBcCi0gICAgICAgICAgIjAuMDg0NTEzLCAwLjI4MDA5NCwgMC40NDEwNTUsIDAuNjQ2MjI4LCAwLjg1MTc4OSwgMS4wNTY1MSwgMS4yNjY3MSIsIFwKLSAgICAgICAgICAiMC4wODQyNDMsIDAuMjc5NzkzLCAwLjQ0MTI3MSwgMC42NDQyNywgMC44NTAzMzIsIDEuMDU4MDQsIDEuMjY2MTMiLCBcCi0gICAgICAgICAgIjAuMDg0MjY1LCAwLjI3OTc4MiwgMC40NDEyNjMsIDAuNjQ0ODA5LCAwLjg1MDA2OCwgMS4wNTk1NiwgMS4yNjYxMiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNzU2MTIsIDAuMjc5MDcxLCAwLjM1MTg1NCwgMC40NDE5MTgsIDAuNTMxNzAxLCAwLjYyMTQzMiwgMC43MTEyNjEiLCBcCi0gICAgICAgICAgIjAuMTg2OTM1LCAwLjI5MDQxNSwgMC4zNjMyNTIsIDAuNDUzMjkxLCAwLjU0MzA1NywgMC42MzI4MTIsIDAuNzIyNjE4IiwgXAotICAgICAgICAgICIwLjIwMDYyNSwgMC4zMDQxMzgsIDAuMzc2ODM0LCAwLjQ2NjgzLCAwLjU1NjY2OCwgMC42NDY0MDIsIDAuNzM2MTQ4IiwgXAotICAgICAgICAgICIwLjIxNDIyMywgMC4zMTc2MzUsIDAuMzkwMzk4LCAwLjQ4MDQxNSwgMC41NzAyMjQsIDAuNjU5OTYsIDAuNzQ5NzEzIiwgXAotICAgICAgICAgICIwLjIyNzYyOCwgMC4zMzExMDYsIDAuNDAzOTY2LCAwLjQ5Mzk2OSwgMC41ODM3NDksIDAuNjczNTQ2LCAwLjc2MzMxNyIsIFwKLSAgICAgICAgICAiMC4yNDkxMDMsIDAuMzUyNDg0LCAwLjQyNTI1NCwgMC41MTUzMzYsIDAuNjA1MTE1LCAwLjY5NDkwNSwgMC43ODQ2MjEiLCBcCi0gICAgICAgICAgIjAuMjY3ODYzLCAwLjM3MTM2MywgMC40NDQxMDcsIDAuNTM0MTQsIDAuNjIzOTU4LCAwLjcxMzY5OCwgMC44MDM0NTciKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDgxNzg4LCAwLjI1MTMxNCwgMC4zOTIxMTMsIDAuNTcxNDUsIDAuNzUxMTk4LCAwLjkzMzU5NCwgMS4xMTMwMyIsIFwKLSAgICAgICAgICAiMC4wODE4NDgsIDAuMjUxMjkzLCAwLjM5MTkxMSwgMC41NzE0ODksIDAuNzUxMDAyLCAwLjkzMjIxNywgMS4xMTI5OSIsIFwKLSAgICAgICAgICAiMC4wODE3NzUsIDAuMjUxMzYsIDAuMzkxODg4LCAwLjU3MDQwMSwgMC43NTA5OTUsIDAuOTMyMTU0LCAxLjExMzQiLCBcCi0gICAgICAgICAgIjAuMDgxNjQzLCAwLjI1MTMxLCAwLjM5MTc2NCwgMC41NzA1NjgsIDAuNzUwOTgzLCAwLjkzMjE4NywgMS4xMTMyNSIsIFwKLSAgICAgICAgICAiMC4wODE2ODksIDAuMjUxMjI4LCAwLjM5MTkwMiwgMC41NzEzMTksIDAuNzUxMDM0LCAwLjkzMzkxMywgMS4xMTMwNiIsIFwKLSAgICAgICAgICAiMC4wODE1MjIsIDAuMjUxMjkxLCAwLjM5MjA1MSwgMC41NzEzOTMsIDAuNzUwOTcxLCAwLjkzMzg4OSwgMS4xMTMzOCIsIFwKLSAgICAgICAgICAiMC4wODEzMjgsIDAuMjUxMjE0LCAwLjM5MTk2NiwgMC41NzEyNTMsIDAuNzUwOTQ0LCAwLjkzMjE4MywgMS4xMTMzNSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNzA1MjksIDAuMjg2ODczLCAwLjM3MTAwNiwgMC40NzUzNywgMC41Nzk1MzEsIDAuNjgzNzU1LCAwLjc4Nzc5MyIsIFwKLSAgICAgICAgICAiMC4xODE5OTgsIDAuMjk4MTkzLCAwLjM4MjMzNCwgMC40ODY2OTEsIDAuNTkwODUxLCAwLjY5NTA4MywgMC43OTkxMiIsIFwKLSAgICAgICAgICAiMC4xOTQ3NTcsIDAuMzEwOTgzLCAwLjM5NTEsIDAuNDk5NDYzLCAwLjYwMzY1NSwgMC43MDc4NTQsIDAuODExODk2IiwgXAotICAgICAgICAgICIwLjIwNzE2NywgMC4zMjMzNTEsIDAuNDA3NDk0LCAwLjUxMTg3LCAwLjYxNjA2LCAwLjcyMDI0OCwgMC44MjQyODQiLCBcCi0gICAgICAgICAgIjAuMjE5MzI2LCAwLjMzNTQ0NSwgMC40MTk2NCwgMC41MjQwMjUsIDAuNjI4MTY2LCAwLjczMjM0NywgMC44MzY0NDMiLCBcCi0gICAgICAgICAgIjAuMjM4OTE1LCAwLjM1NTExNiwgMC40MzkyNzEsIDAuNTQzNjYsIDAuNjQ3ODIsIDAuNzUxOTE1LCAwLjg1NjA4NCIsIFwKLSAgICAgICAgICAiMC4yNTU5NDYsIDAuMzcyMjMyLCAwLjQ1NjM4MSwgMC41NjA3NTYsIDAuNjY0OTM5LCAwLjc2OTAzNywgMC44NzMyMTkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg0NTQ3LCAwLjI3OTg2NSwgMC40NDEwOCwgMC42NDYzOCwgMC44NTI0NjUsIDEuMDU3NTEsIDEuMjY2MDYiLCBcCi0gICAgICAgICAgIjAuMDg0NzU0LCAwLjI3OTg4NywgMC40NDExMDcsIDAuNjQ1NjY1LCAwLjg1MjMzOCwgMS4wNTc2MywgMS4yNjYwMiIsIFwKLSAgICAgICAgICAiMC4wODQ0NTgsIDAuMjc5OTExLCAwLjQ0MTA4NCwgMC42NDYxNDIsIDAuODUxNzkyLCAxLjA1NTc3LCAxLjI2MjkxIiwgXAotICAgICAgICAgICIwLjA4NDY0NSwgMC4yNzk4NTgsIDAuNDQxMDU2LCAwLjY0NDI3OCwgMC44NTI5NzUsIDEuMDU3NTMsIDEuMjY2MDMiLCBcCi0gICAgICAgICAgIjAuMDg0NjEsIDAuMjc5OTUzLCAwLjQ0MTIzOCwgMC42NDQyMDksIDAuODUyNDI1LCAxLjA1NzkxLCAxLjI2NTk4IiwgXAotICAgICAgICAgICIwLjA4NDMwNiwgMC4yNzk4MTEsIDAuNDQxMjQ3LCAwLjY0NDE0NiwgMC44NTAyMDksIDEuMDU5MjksIDEuMjY1OTciLCBcCi0gICAgICAgICAgIjAuMDg0MzE0LCAwLjI3OTc5MiwgMC40NDEyMDQsIDAuNjQ1MjU4LCAwLjg0OTg4NSwgMS4wNTkzOSwgMS4yNjU5NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTYyNzksIDAuMjY2MjA2LCAwLjMzODkxLCAwLjQyODk0MSwgMC41MTg3MzIsIDAuNjA4NDkyLCAwLjY5ODE3NiIsIFwKLSAgICAgICAgICAiMC4xNzMwNTYsIDAuMjc2NTQ3LCAwLjM0OTM1OSwgMC40MzkzNjYsIDAuNTI5MTUxLCAwLjYxODkwMywgMC43MDg3MDQiLCBcCi0gICAgICAgICAgIjAuMTg2NjY5LCAwLjI4OTk0NywgMC4zNjI3OTcsIDAuNDUyODQzLCAwLjU0MjYzNiwgMC42MzIzNjcsIDAuNzIyMTY3IiwgXAotICAgICAgICAgICIwLjE5OTg2OSwgMC4zMDMyNzIsIDAuMzc2MDM4LCAwLjQ2NjEyNywgMC41NTU5MDYsIDAuNjQ1NzA0LCAwLjczNTQ3NSIsIFwKLSAgICAgICAgICAiMC4yMTMyNDUsIDAuMzE2NjM5LCAwLjM4OTQ3NSwgMC40Nzk1MTgsIDAuNTY5MzAyLCAwLjY1OTA0MywgMC43NDg4NjkiLCBcCi0gICAgICAgICAgIjAuMjM0OTEyLCAwLjMzODMxNywgMC40MTEwOTQsIDAuNTAxMTkxLCAwLjU5MDk3NiwgMC42ODA3NDcsIDAuNzcwNTUyIiwgXAotICAgICAgICAgICIwLjI1NDExOSwgMC4zNTc0MjUsIDAuNDMwMjkyLCAwLjUyMDMzNiwgMC42MTAxODQsIDAuNjk5ODk1LCAwLjc4OTcwNiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODEzOTMsIDAuMjUxMjAzLCAwLjM5MTU2NCwgMC41NzE1MzMsIDAuNzUwOTYzLCAwLjkzMTk1OCwgMS4xMTU2MyIsIFwKLSAgICAgICAgICAiMC4wODEyMjQsIDAuMjUxMDk1LCAwLjM5MTQ3MywgMC41NzEzNzksIDAuNzUwMjU5LCAwLjkzMzczOCwgMS4xMTI5NSIsIFwKLSAgICAgICAgICAiMC4wODEzNjIsIDAuMjUxMTMzLCAwLjM5MTg1MywgMC41NzAxMTksIDAuNzUyMjE3LCAwLjkzMjE2OSwgMS4xMTMiLCBcCi0gICAgICAgICAgIjAuMDgxMzA0LCAwLjI1MTE3OCwgMC4zOTIwMDUsIDAuNTcxMjY3LCAwLjc1MTAzOSwgMC45MzM5MTUsIDEuMTEzMTUiLCBcCi0gICAgICAgICAgIjAuMDgxMjExLCAwLjI1MTEzMSwgMC4zOTE3MDQsIDAuNTcxMjc5LCAwLjc1MTAzOSwgMC45MzIxODMsIDEuMTEzMSIsIFwKLSAgICAgICAgICAiMC4wODEzOCwgMC4yNTEyMTEsIDAuMzkyMDMxLCAwLjU3MTM1OSwgMC43NTA5NjIsIDAuOTMzODEzLCAxLjExMjk5IiwgXAotICAgICAgICAgICIwLjA4MTQ2NywgMC4yNTExNTEsIDAuMzkxODEyLCAwLjU3MDM3OCwgMC43NTIyOTIsIDAuOTMyMTk1LCAxLjExMjk5Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE1NzY0NiwgMC4yNzM4LCAwLjM1Nzk3MywgMC40NjIzMzksIDAuNTY2NTIxLCAwLjY3MDcwMywgMC43NzQ3MjQiLCBcCi0gICAgICAgICAgIjAuMTY3OTc5LCAwLjI4NDE1NiwgMC4zNjgzMTgsIDAuNDcyNjgsIDAuNTc2ODYxLCAwLjY4MTA0OCwgMC43ODUxMDYiLCBcCi0gICAgICAgICAgIjAuMTgxMDA5LCAwLjI5NzI3NywgMC4zODE0MjMsIDAuNDg1Nzk4LCAwLjU4OTk4MSwgMC42OTQwODIsIDAuNzk4MjU3IiwgXAotICAgICAgICAgICIwLjE5NDEyNSwgMC4zMTAzMzYsIDAuMzk0NDg5LCAwLjQ5ODg2NywgMC42MDMwNTMsIDAuNzA3MTY2LCAwLjgxMTMzNyIsIFwKLSAgICAgICAgICAiMC4yMDcyNTcsIDAuMzIzNCwgMC40MDc1NzQsIDAuNTExOTU1LCAwLjYxNjE0MywgMC43MjAzMywgMC44MjQ0MzUiLCBcCi0gICAgICAgICAgIjAuMjI4NDI4LCAwLjM0NDU3NiwgMC40Mjg3MzUsIDAuNTMzMTMyLCAwLjYzNzMzNSwgMC43NDE1NDIsIDAuODQ1NTYiLCBcCi0gICAgICAgICAgIjAuMjQ3MDM4LCAwLjM2MzE4OSwgMC40NDczNDQsIDAuNTUxNzYsIDAuNjU1OTU5LCAwLjc2MDE2OSwgMC44NjQyMTIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg0MzAyLCAwLjI3OTY3NiwgMC40NDEyNDEsIDAuNjQ1Njg5LCAwLjg1MDA4MiwgMS4wNTk0NCwgMS4yNjM4MSIsIFwKLSAgICAgICAgICAiMC4wODQyODUsIDAuMjc5ODE3LCAwLjQ0MTIzMywgMC42NDU3MjUsIDAuODQ5OTcxLCAxLjA1OTQ0LCAxLjI2NjIxIiwgXAotICAgICAgICAgICIwLjA4NDIwNiwgMC4yNzk3NDksIDAuNDQxMjQ1LCAwLjY0NDk0NiwgMC44NTAyMSwgMS4wNTc4MiwgMS4yNjYwNSIsIFwKLSAgICAgICAgICAiMC4wODQyNzUsIDAuMjc5NzM5LCAwLjQ0MTIzOCwgMC42NDU0ODQsIDAuODUwMTgyLCAxLjA1NzE5LCAxLjI2NjAyIiwgXAotICAgICAgICAgICIwLjA4NDMyNiwgMC4yNzk1OSwgMC40NDEyMzMsIDAuNjQ1NzQ4LCAwLjg1MDExMywgMS4wNTk0MywgMS4yNjYiLCBcCi0gICAgICAgICAgIjAuMDg0MzQ1LCAwLjI3OTcyOSwgMC40NDEwMjYsIDAuNjQ2MzMzLCAwLjg1MTU3MywgMS4wNTY1NCwgMS4yNjM4IiwgXAotICAgICAgICAgICIwLjA4NDQ2MywgMC4yNzk4NDksIDAuNDQxMDQsIDAuNjQ0OTIyLCAwLjg1MTcyOSwgMS4wNTY1MywgMS4yNjU0MSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTk4NTM0LCAwLjMwMjE0NSwgMC4zNzQ4ODYsIDAuNDY0OTA5LCAwLjU1NDcxNSwgMC42NDQ0NDksIDAuNzM0MTk4IiwgXAotICAgICAgICAgICIwLjIxMDcwNiwgMC4zMTQyNTEsIDAuMzg2OTc1LCAwLjQ3NzAwMSwgMC41NjY4MTIsIDAuNjU2NTQzLCAwLjc0NjI1MSIsIFwKLSAgICAgICAgICAiMC4yMjU2NTUsIDAuMzI5MTY1LCAwLjQwMTk5MiwgMC40OTIwNzksIDAuNTgxODU5LCAwLjY3MTU5MywgMC43NjEzNTkiLCBcCi0gICAgICAgICAgIjAuMjM5OTk5LCAwLjM0MzU2OSwgMC40MTY0MDMsIDAuNTA2NDQsIDAuNTk2MjE5LCAwLjY4NTk1OSwgMC43NzU3ODciLCBcCi0gICAgICAgICAgIjAuMjUzNjAxLCAwLjM1NzE4LCAwLjQyOTg5NCwgMC41MTk5NDMsIDAuNjA5NzMxLCAwLjY5OTQ2MiwgMC43ODkxNTMiLCBcCi0gICAgICAgICAgIjAuMjcyNjQ3LCAwLjM3NjIzNywgMC40NDkwMTEsIDAuNTM5MDksIDAuNjI4ODYxLCAwLjcxODYxOCwgMC44MDgzNTkiLCBcCi0gICAgICAgICAgIjAuMjg3NjEsIDAuMzkxMTAyLCAwLjQ2MzkzNCwgMC41NTM5NjcsIDAuNjQzNzMzLCAwLjczMzQ4NCwgMC44MjMyOTciKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDgxNzMyLCAwLjI1MTM5MywgMC4zOTIwODQsIDAuNTcxMzAzLCAwLjc1MDk1NywgMC45MzIxNywgMS4xMTMxIiwgXAotICAgICAgICAgICIwLjA4MTg5LCAwLjI1MTQyOSwgMC4zOTIxMDYsIDAuNTcwNTk1LCAwLjc1MDk1OSwgMC45MzIxNjIsIDEuMTE1NjEiLCBcCi0gICAgICAgICAgIjAuMDgxODI4LCAwLjI1MTMwMywgMC4zOTIxNDUsIDAuNTcxMzk5LCAwLjc1MTA0MiwgMC45MzIxOTcsIDEuMTEzNDIiLCBcCi0gICAgICAgICAgIjAuMDgxNzY5LCAwLjI1MTMyNCwgMC4zOTE2NjEsIDAuNTcxNDE1LCAwLjc1MTAxNCwgMC45MzIxNjYsIDEuMTEyOTciLCBcCi0gICAgICAgICAgIjAuMDgxNTQ5LCAwLjI1MTQ0LCAwLjM5MTkwNywgMC41NzE0MzIsIDAuNzUwOTQxLCAwLjkzMjE1OSwgMS4xMTU0MyIsIFwKLSAgICAgICAgICAiMC4wODE3MTYsIDAuMjUxMTgsIDAuMzkyMTEzLCAwLjU3MTM3OSwgMC43NTA5NzQsIDAuOTMzNzM3LCAxLjExMzMzIiwgXAotICAgICAgICAgICIwLjA4MTU5OCwgMC4yNTEyMTUsIDAuMzkxOTI1LCAwLjU3MTQ2NSwgMC43NTA5ODgsIDAuOTMyMjU1LCAxLjExMzA2Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE5NjQ5OSwgMC4zMTI3MDgsIDAuMzk2ODYyLCAwLjUwMTI0NywgMC42MDU0MTUsIDAuNzA5NTMyLCAwLjgxMzY2IiwgXAotICAgICAgICAgICIwLjIwODgzMywgMC4zMjQ5ODcsIDAuNDA5MTQsIDAuNTEzNDk5LCAwLjYxNzY3NSwgMC43MjE4NTQsIDAuODI1OTU0IiwgXAotICAgICAgICAgICIwLjIyNDE2MSwgMC4zNDA0OTEsIDAuNDI0NjIzLCAwLjUyODk4NywgMC42MzMxNjMsIDAuNzM3MjY2LCAwLjg0MTQzOSIsIFwKLSAgICAgICAgICAiMC4yMzkwODgsIDAuMzU1MjU5LCAwLjQzOTQwNCwgMC41NDM3ODgsIDAuNjQ3OTYzLCAwLjc1MjExNSwgMC44NTYyMDciLCBcCi0gICAgICAgICAgIjAuMjU0MjQsIDAuMzcwNDAxLCAwLjQ1NDU2NiwgMC41NTg5MjEsIDAuNjYzMDk4LCAwLjc2NzI3OSwgMC44NzEyOTYiLCBcCi0gICAgICAgICAgIjAuMjc2MjQ1LCAwLjM5MjQxMywgMC40NzY1NjIsIDAuNTgwOTQ0LCAwLjY4NTA5NywgMC43ODkzMjcsIDAuODkzMzYzIiwgXAotICAgICAgICAgICIwLjI5Mzg2OCwgMC40MTAwMDEsIDAuNDk0MTIzLCAwLjU5ODQ5MiwgMC43MDI2ODYsIDAuODA2ODg3LCAwLjkxMDkzMSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODQ1OTEsIDAuMjc5ODY2LCAwLjQ0MTM2NiwgMC42NDY2MzYsIDAuODQ5ODU5LCAxLjA1NTY5LCAxLjI2NjIzIiwgXAotICAgICAgICAgICIwLjA4NDYwOCwgMC4yNzk5ODMsIDAuNDQxMjg0LCAwLjY0NDIyNywgMC44NTAwNiwgMS4wNTk1NSwgMS4yNjYxMyIsIFwKLSAgICAgICAgICAiMC4wODQ1MDgsIDAuMjc5ODU3LCAwLjQ0MTI2OSwgMC42NDUyNDUsIDAuODUwMDk0LCAxLjA1NjkxLCAxLjI2NjA0IiwgXAotICAgICAgICAgICIwLjA4NDYzMywgMC4yNzk4NiwgMC40NDEwODksIDAuNjQ0MjM4LCAwLjg1Mjg4NSwgMS4wNTgxLCAxLjI2NjA2IiwgXAotICAgICAgICAgICIwLjA4NDYwNywgMC4yNzk4MjcsIDAuNDQxMjIyLCAwLjY0NTcxNiwgMC44NTAyMTgsIDEuMDU5NDMsIDEuMjY2NDkiLCBcCi0gICAgICAgICAgIjAuMDg0NjIyLCAwLjI3OTg1MywgMC40NDExNDYsIDAuNjQ0MzU4LCAwLjg1MjU3NSwgMS4wNTY0MiwgMS4yNjYwNSIsIFwKLSAgICAgICAgICAiMC4wODQ2MDEsIDAuMjc5OTI2LCAwLjQ0MTA3LCAwLjY0NjE3OSwgMC44NTE3ODksIDEuMDU1NzksIDEuMjYyNTciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDM5MTIsIDAuMDA0MDM0LCAwLjAwNDA1OCwgMC4wMDQwNywgMC4wMDQwNzksIDAuMDA0MDg1LCAwLjAwNDA4OCIsIFwKLSAgICAgICAgICAiMC4wMDM4OTcsIDAuMDA0MDIsIDAuMDA0MDQ0LCAwLjAwNDA1NywgMC4wMDQwNjUsIDAuMDA0MDcsIDAuMDA0MDczIiwgXAotICAgICAgICAgICIwLjAwMzg4OSwgMC4wMDQwMTEsIDAuMDA0MDM2LCAwLjAwNDA1LCAwLjAwNDA1NywgMC4wMDQwNjMsIDAuMDA0MDY1IiwgXAotICAgICAgICAgICIwLjAwMzg4MiwgMC4wMDQwMDUsIDAuMDA0MDI4LCAwLjAwNDA0MywgMC4wMDQwNTEsIDAuMDA0MDU2LCAwLjAwNDA1OSIsIFwKLSAgICAgICAgICAiMC4wMDM4NzUsIDAuMDAzOTk2LCAwLjAwNDAyMiwgMC4wMDQwMzcsIDAuMDA0MDQ2LCAwLjAwNDA1MSwgMC4wMDQwNTQiLCBcCi0gICAgICAgICAgIjAuMDAzODY5LCAwLjAwMzk4NywgMC4wMDQwMTQsIDAuMDA0MDMsIDAuMDA0MDM5LCAwLjAwNDA0NCwgMC4wMDQwNDkiLCBcCi0gICAgICAgICAgIjAuMDAzODYsIDAuMDAzOTc4LCAwLjAwNDAwNSwgMC4wMDQwMjIsIDAuMDA0MDMyLCAwLjAwNDAzOCwgMC4wMDQwNDIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQ5ODcsIDAuMDA1MTQ5LCAwLjAwNTE4MSwgMC4wMDUxOTksIDAuMDA1MjA5LCAwLjAwNTIxNSwgMC4wMDUyMTkiLCBcCi0gICAgICAgICAgIjAuMDA0OTgsIDAuMDA1MTQyLCAwLjAwNTE3NCwgMC4wMDUxOTMsIDAuMDA1MjAyLCAwLjAwNTIwOCwgMC4wMDUyMTMiLCBcCi0gICAgICAgICAgIjAuMDA0OTc1LCAwLjAwNTEzNiwgMC4wMDUxNjksIDAuMDA1MTg4LCAwLjAwNTE5OCwgMC4wMDUyMDQsIDAuMDA1MjA4IiwgXAotICAgICAgICAgICIwLjAwNDk2OSwgMC4wMDUxMzEsIDAuMDA1MTY0LCAwLjAwNTE4NCwgMC4wMDUxOTQsIDAuMDA1MiwgMC4wMDUyMDUiLCBcCi0gICAgICAgICAgIjAuMDA0OTYzLCAwLjAwNTEyNCwgMC4wMDUxNTksIDAuMDA1MTc5LCAwLjAwNTE5LCAwLjAwNTE5NywgMC4wMDUyMDEiLCBcCi0gICAgICAgICAgIjAuMDA0OTU3LCAwLjAwNTExNSwgMC4wMDUxNTEsIDAuMDA1MTczLCAwLjAwNTE4NCwgMC4wMDUxOTIsIDAuMDA1MTk3IiwgXAotICAgICAgICAgICIwLjAwNDk1NCwgMC4wMDUxMDgsIDAuMDA1MTQ1LCAwLjAwNTE2NywgMC4wMDUxOCwgMC4wMDUxODgsIDAuMDA1MTkzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzNzUsIDAuMDAzODU2LCAwLjAwMzg3NywgMC4wMDM4ODksIDAuMDAzODkzLCAwLjAwMzg5OCwgMC4wMDM5IiwgXAotICAgICAgICAgICIwLjAwMzczNSwgMC4wMDM4NDMsIDAuMDAzODY1LCAwLjAwMzg3MywgMC4wMDM4NzksIDAuMDAzODg0LCAwLjAwMzg4NyIsIFwKLSAgICAgICAgICAiMC4wMDM3MjgsIDAuMDAzODM1LCAwLjAwMzg1NSwgMC4wMDM4NjksIDAuMDAzODczLCAwLjAwMzg3NiwgMC4wMDM4NzkiLCBcCi0gICAgICAgICAgIjAuMDAzNzIsIDAuMDAzODI3LCAwLjAwMzg0OSwgMC4wMDM4NjEsIDAuMDAzODY3LCAwLjAwMzg3MSwgMC4wMDM4NzQiLCBcCi0gICAgICAgICAgIjAuMDAzNzE0LCAwLjAwMzgyMiwgMC4wMDM4NDQsIDAuMDAzODU2LCAwLjAwMzg2NCwgMC4wMDM4NjcsIDAuMDAzODciLCBcCi0gICAgICAgICAgIjAuMDAzNzA1LCAwLjAwMzgxMSwgMC4wMDM4MzQsIDAuMDAzODQ5LCAwLjAwMzg1NSwgMC4wMDM4NiwgMC4wMDM4NjQiLCBcCi0gICAgICAgICAgIjAuMDAzNjk5LCAwLjAwMzgwNSwgMC4wMDM4MjgsIDAuMDAzODQzLCAwLjAwMzg1LCAwLjAwMzg1NSwgMC4wMDM4NTkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDUxNCwgMC4wMDUyOTUsIDAuMDA1MzI1LCAwLjAwNTM0MiwgMC4wMDUzNTIsIDAuMDA1MzU3LCAwLjAwNTM2MSIsIFwKLSAgICAgICAgICAiMC4wMDUxMzMsIDAuMDA1Mjg4LCAwLjAwNTMxOSwgMC4wMDUzMzYsIDAuMDA1MzQ1LCAwLjAwNTM1MSwgMC4wMDUzNTUiLCBcCi0gICAgICAgICAgIjAuMDA1MTMsIDAuMDA1Mjg0LCAwLjAwNTMxNSwgMC4wMDUzMzIsIDAuMDA1MzQxLCAwLjAwNTM0NywgMC4wMDUzNTEiLCBcCi0gICAgICAgICAgIjAuMDA1MTI0LCAwLjAwNTI3OSwgMC4wMDUzMSwgMC4wMDUzMjgsIDAuMDA1MzM4LCAwLjAwNTM0NCwgMC4wMDUzNDgiLCBcCi0gICAgICAgICAgIjAuMDA1MTE4LCAwLjAwNTI3MiwgMC4wMDUzMDUsIDAuMDA1MzI0LCAwLjAwNTMzNCwgMC4wMDUzNDEsIDAuMDA1MzQ1IiwgXAotICAgICAgICAgICIwLjAwNTExMiwgMC4wMDUyNjUsIDAuMDA1Mjk5LCAwLjAwNTMxOSwgMC4wMDUzMjksIDAuMDA1MzM2LCAwLjAwNTM0MSIsIFwKLSAgICAgICAgICAiMC4wMDUxMDksIDAuMDA1MjU4LCAwLjAwNTI5MywgMC4wMDUzMTQsIDAuMDA1MzI2LCAwLjAwNTMzMywgMC4wMDUzMzgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTMCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1NTUxLCAwLjAwNTY2OCwgMC4wMDU2OTQsIDAuMDA1NzA5LCAwLjAwNTcxNywgMC4wMDU3MjIsIDAuMDA1NzI2IiwgXAotICAgICAgICAgICIwLjAwNTU1NCwgMC4wMDU2NzIsIDAuMDA1Njk3LCAwLjAwNTcxMywgMC4wMDU3MiwgMC4wMDU3MjYsIDAuMDA1NzI5IiwgXAotICAgICAgICAgICIwLjAwNTU1NSwgMC4wMDU2NzMsIDAuMDA1Njk4LCAwLjAwNTcxMywgMC4wMDU3MjEsIDAuMDA1NzI3LCAwLjAwNTczIiwgXAotICAgICAgICAgICIwLjAwNTU1NCwgMC4wMDU2NzMsIDAuMDA1Njk3LCAwLjAwNTcxMiwgMC4wMDU3MjEsIDAuMDA1NzI2LCAwLjAwNTcyOSIsIFwKLSAgICAgICAgICAiMC4wMDU1NTMsIDAuMDA1NjcyLCAwLjAwNTY5NiwgMC4wMDU3MTEsIDAuMDA1NzE4LCAwLjAwNTcyNCwgMC4wMDU3MjgiLCBcCi0gICAgICAgICAgIjAuMDA1NTUsIDAuMDA1NjcsIDAuMDA1Njk0LCAwLjAwNTcwOSwgMC4wMDU3MTcsIDAuMDA1NzIyLCAwLjAwNTcyNiIsIFwKLSAgICAgICAgICAiMC4wMDU1NDgsIDAuMDA1NjY4LCAwLjAwNTY5MiwgMC4wMDU3MDcsIDAuMDA1NzE1LCAwLjAwNTcyLCAwLjAwNTcyMyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDc5MSwgMC4wMDQ5NDQsIDAuMDA0OTc3LCAwLjAwNDk5NiwgMC4wMDUwMDcsIDAuMDA1MDE0LCAwLjAwNTAxOCIsIFwKLSAgICAgICAgICAiMC4wMDQ3ODksIDAuMDA0OTQyLCAwLjAwNDk3NCwgMC4wMDQ5OTMsIDAuMDA1MDA0LCAwLjAwNTAxMSwgMC4wMDUwMTUiLCBcCi0gICAgICAgICAgIjAuMDA0Nzg2LCAwLjAwNDkzOSwgMC4wMDQ5NzEsIDAuMDA0OTkxLCAwLjAwNTAwMSwgMC4wMDUwMDgsIDAuMDA1MDEyIiwgXAotICAgICAgICAgICIwLjAwNDc4NCwgMC4wMDQ5MzcsIDAuMDA0OTY5LCAwLjAwNDk4OCwgMC4wMDQ5OTksIDAuMDA1MDA1LCAwLjAwNTAxIiwgXAotICAgICAgICAgICIwLjAwNDc4MSwgMC4wMDQ5MzUsIDAuMDA0OTY3LCAwLjAwNDk4NiwgMC4wMDQ5OTYsIDAuMDA1MDAzLCAwLjAwNTAwNyIsIFwKLSAgICAgICAgICAiMC4wMDQ3NzksIDAuMDA0OTMzLCAwLjAwNDk2NSwgMC4wMDQ5ODUsIDAuMDA0OTk1LCAwLjAwNTAwMiwgMC4wMDUwMDYiLCBcCi0gICAgICAgICAgIjAuMDA0Nzc4LCAwLjAwNDkzMiwgMC4wMDQ5NjUsIDAuMDA0OTg0LCAwLjAwNDk5NCwgMC4wMDUwMDEsIDAuMDA1MDA2Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IE1YMlg2ICoKLSAqIC0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChNWDJYNikgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjI4MDI2NTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNzUyNDE7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNzQ5MTY0OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDc1MjQxOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDIyNSwgMC4wMDAyMywgMC4wMDAyMzIsIDAuMDAwMjMyLCAwLjAwMDIzMywgMC4wMDAyMzMsIDAuMDAwMjM0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjUsIDAuMDAwMjQ1LCAwLjAwMDI0NCwgMC4wMDAyNDQsIDAuMDAwMjQ0LCAwLjAwMDI0NCwgMC4wMDAyNDQiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDcwNTc7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNzAyOTM2OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDcwNTc7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjMzLCAwLjAwMDIzNiwgMC4wMDAyMzcsIDAuMDAwMjM3LCAwLjAwMDIzNywgMC4wMDAyMzcsIDAuMDAwMjM4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjQ3LCAwLjAwMDI0NCwgMC4wMDAyNDQsIDAuMDAwMjQ0LCAwLjAwMDI0NCwgMC4wMDAyNDQsIDAuMDAwMjQzIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxMzI5ODQ7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxMzI5MTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDEzMjk4NDsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyOTEsIDAuMDAwMjczLCAwLjAwMDI2NCwgMC4wMDAyNTksIDAuMDAwMjU3LCAwLjAwMDI1NiwgMC4wMDAyNTUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDE2NjMsIDAuMDAxNjUxLCAwLjAwMTY0MywgMC4wMDE2NDEsIDAuMDAxNjM3LCAwLjAwMTYzNiwgMC4wMDE2MzYiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC44MjI5NjsKLSAgICBmdW5jdGlvbiA6ICIoKFMwIEIpICsgKCFTMCBBKSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIwMTI1MywgMC4yODM3ODgsIDAuMzM1MzgzLCAwLjM5Njk2MiwgMC40NTc0LCAwLjUxNzYyMywgMC41Nzc3MDIiLCBcCi0gICAgICAgICAgIjAuMjEyNTI0LCAwLjI5NTA3MywgMC4zNDY2ODYsIDAuNDA4MTEsIDAuNDY4Njc1LCAwLjUyODg5OSwgMC41ODg5NDQiLCBcCi0gICAgICAgICAgIjAuMjI2MDAxLCAwLjMwODI1NywgMC4zNjAxODEsIDAuNDIxNjA3LCAwLjQ4MjEzNCwgMC41NDIzMDMsIDAuNjAyNDUzIiwgXAotICAgICAgICAgICIwLjIzOTQ3MiwgMC4zMjE5MTYsIDAuMzczNTA1LCAwLjQzNTA4OSwgMC40OTU1MSwgMC41NTU3NDMsIDAuNjE1Nzg3IiwgXAotICAgICAgICAgICIwLjI1Mjg4NCwgMC4zMzUwNzksIDAuMzg2OTY5LCAwLjQ0ODU2MywgMC41MDkwMTksIDAuNTY5MjY1LCAwLjYyOTM5OCIsIFwKLSAgICAgICAgICAiMC4yNzQ0MiwgMC4zNTY0NDQsIDAuNDA4Mjg5LCAwLjQ2OTg4NywgMC41MzAzNDYsIDAuNTkwNTkxLCAwLjY1MDcyNiIsIFwKLSAgICAgICAgICAiMC4yOTMzODEsIDAuMzc1NTQ5LCAwLjQyNzQzNywgMC40ODg4NjIsIDAuNTQ5Mzk4LCAwLjYwOTYzOCwgMC42Njk2OTkiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDgzMzc3LCAwLjE5Njg0NywgMC4yODc0NzQsIDAuNDAzNTY0LCAwLjUyMjA3OSwgMC42NDE2NDMsIDAuNzYwOTQ3IiwgXAotICAgICAgICAgICIwLjA4MzQ5OCwgMC4xOTY4MDUsIDAuMjg3NDE4LCAwLjQwMzYyMiwgMC41MjE2NzYsIDAuNjQxNTY0LCAwLjc2MDQ0IiwgXAotICAgICAgICAgICIwLjA4MzE5OSwgMC4xOTY2MDcsIDAuMjg3NDcsIDAuNDAzNTMzLCAwLjUyMTU4MSwgMC42NDE2MDIsIDAuNzYxNzc5IiwgXAotICAgICAgICAgICIwLjA4MzEzNywgMC4xOTY4MTYsIDAuMjg3MzU0LCAwLjQwMzUyNSwgMC41MjIwNTYsIDAuNjQxNTY0LCAwLjc2MDM5OSIsIFwKLSAgICAgICAgICAiMC4wODMzMjksIDAuMTk2NTE3LCAwLjI4NzMzLCAwLjQwMzUxMywgMC41MjE5NjMsIDAuNjQxNTY3LCAwLjc2MTg2NSIsIFwKLSAgICAgICAgICAiMC4wODI5NjEsIDAuMTk2NTI1LCAwLjI4NzMxNywgMC40MDM1MDUsIDAuNTIxOTE0LCAwLjY0MTQ4NCwgMC43NjE3MTgiLCBcCi0gICAgICAgICAgIjAuMDgyOTIyLCAwLjE5NjMyMiwgMC4yODczOCwgMC40MDM0ODIsIDAuNTIxNjIxLCAwLjY0MTQ2MywgMC43NjAzNjEiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTkyNDgyLCAwLjI4MjM1LCAwLjM0MTM4NywgMC40MTI2MzEsIDAuNDgzMTE2LCAwLjU1MzM0NiwgMC42MjM0NTkiLCBcCi0gICAgICAgICAgIjAuMjA0MDEsIDAuMjkzNjksIDAuMzUyODI0LCAwLjQyNDE0MywgMC40OTQ1NDksIDAuNTY0ODA3LCAwLjYzNDg5NiIsIFwKLSAgICAgICAgICAiMC4yMTcxMjYsIDAuMzA2OTE3LCAwLjM2NTk1NCwgMC40MzcxOTMsIDAuNTA3NjgxLCAwLjU3NzkwNywgMC42NDgwMjMiLCBcCi0gICAgICAgICAgIjAuMjI5NTg0LCAwLjMxOTIyOSwgMC4zNzg0MTEsIDAuNDQ5NzIzLCAwLjUyMDEzNSwgMC41OTAzODksIDAuNjYwNDg3IiwgXAotICAgICAgICAgICIwLjI0MTg3MiwgMC4zMzE3MTUsIDAuMzkwNzQ1LCAwLjQ2MTk4NCwgMC41MzI0ODYsIDAuNjAyNzIsIDAuNjcyODQxIiwgXAotICAgICAgICAgICIwLjI2MTY0NiwgMC4zNTEzNjQsIDAuNDEwNDA5LCAwLjQ4MTY1OSwgMC41NTIxNTYsIDAuNjIyMzg2LCAwLjY5MjUwOCIsIFwKLSAgICAgICAgICAiMC4yNzg4OTUsIDAuMzY4NTk3LCAwLjQyNzc3LCAwLjQ5OTAyNSwgMC41Njk1MjIsIDAuNjM5NzUyLCAwLjcwOTg3NyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODMxNDMsIDAuMjE0MjI2LCAwLjMxOTQxNCwgMC40NTMxMDQsIDAuNTg5NDg3LCAwLjcyNzIxMywgMC44NjI5NzYiLCBcCi0gICAgICAgICAgIjAuMDgzMDU4LCAwLjIxMzk2NywgMC4zMTkxMiwgMC40NTI4NiwgMC41ODkzNzIsIDAuNzI3MTYsIDAuODY1MDQiLCBcCi0gICAgICAgICAgIjAuMDgzMTYzLCAwLjIxNDI1OCwgMC4zMTk0MiwgMC40NTMwOTQsIDAuNTg5NDg0LCAwLjcyNzE4OSwgMC44NjI5MDIiLCBcCi0gICAgICAgICAgIjAuMDgyOTg4LCAwLjIxMzkyOSwgMC4zMTkwNjcsIDAuNDUzMTI3LCAwLjU4OTMzNywgMC43MjcxNDIsIDAuODY1MDQiLCBcCi0gICAgICAgICAgIjAuMDgzMDA0LCAwLjIxNDEyOSwgMC4zMTkzNjksIDAuNDUzMDgyLCAwLjU4OTU0OSwgMC43MjcxNzQsIDAuODYyNzkiLCBcCi0gICAgICAgICAgIjAuMDgyOTUzLCAwLjIxNDE5MSwgMC4zMTkzODIsIDAuNDUzMDg2LCAwLjU4OTUyNSwgMC43MjcxODksIDAuODYyNzEyIiwgXAotICAgICAgICAgICIwLjA4MjYwNSwgMC4yMTM3MzcsIDAuMzE5MjU0LCAwLjQ1MzAyLCAwLjU4OTQ4OSwgMC43MjcxNTYsIDAuODYyNjQ3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIwMTQzLCAwLjI4MzY4OCwgMC4zMzU2MDgsIDAuMzk3MDM2LCAwLjQ1NzU3MiwgMC41MTc3NDEsIDAuNTc3ODg3IiwgXAotICAgICAgICAgICIwLjIxMjg1OCwgMC4yOTUwNzksIDAuMzQ2OTQ1LCAwLjQwODU1MywgMC40NjkwMTMsIDAuNTI5MjI5LCAwLjU4OTMwNiIsIFwKLSAgICAgICAgICAiMC4yMjY2MzUsIDAuMzA5MTQ2LCAwLjM2MDc1NiwgMC40MjIzNSwgMC40ODI3NzYsIDAuNTQzMDA2LCAwLjYwMzA1NCIsIFwKLSAgICAgICAgICAiMC4yNDAyOTMsIDAuMzIyMzUyLCAwLjM3NDIyNSwgMC40MzU4MDQsIDAuNDk2MjcyLCAwLjU1NjQ5MSwgMC42MTY1NzMiLCBcCi0gICAgICAgICAgIjAuMjUzNzYyLCAwLjMzNTk0OCwgMC4zODc4MjIsIDAuNDQ5NDA1LCAwLjUwOTg2OSwgMC41NzAwODksIDAuNjMwMTk5IiwgXAotICAgICAgICAgICIwLjI3NTU0MSwgMC4zNTc2NjEsIDAuNDA5NTgyLCAwLjQ3MTA1MywgMC41MzE1NDIsIDAuNTkxNzY4LCAwLjY1MTg1OCIsIFwKLSAgICAgICAgICAiMC4yOTQyNjgsIDAuMzc2MzI4LCAwLjQyODIyMSwgMC40ODk2NywgMC41NTAyMDEsIDAuNjEwMzgzLCAwLjY3MDUyMyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODMyMDgsIDAuMTk2NjU1LCAwLjI4NzUyOCwgMC40MDM2LCAwLjUyMTcwNiwgMC42NDE3NzksIDAuNzYxOTg3IiwgXAotICAgICAgICAgICIwLjA4MzM5LCAwLjE5NjY3NiwgMC4yODc0MzMsIDAuNDAzNjA1LCAwLjUyMjAwMywgMC42NDE2NTIsIDAuNzYwNzg4IiwgXAotICAgICAgICAgICIwLjA4MzMyLCAwLjE5NjgyNSwgMC4yODczODEsIDAuNDAzNTc1LCAwLjUyMTc1NiwgMC42NDE2MjUsIDAuNzYwNTY5IiwgXAotICAgICAgICAgICIwLjA4MzExNiwgMC4xOTY2MjIsIDAuMjg3NDcxLCAwLjQwMzU3NSwgMC41MjE5NzIsIDAuNjQxNjI5LCAwLjc2MDkwNCIsIFwKLSAgICAgICAgICAiMC4wODMxNDcsIDAuMTk2NTgsIDAuMjg3NDE3LCAwLjQwMzU1OCwgMC41MjE5OSwgMC42NDE2MTksIDAuNzYyMDMzIiwgXAotICAgICAgICAgICIwLjA4MzEwOCwgMC4xOTY1NjIsIDAuMjg3NDcxLCAwLjQwMzUzNCwgMC41MjE2NTgsIDAuNjQxNDQ1LCAwLjc2MDU5MyIsIFwKLSAgICAgICAgICAiMC4wODI2ODEsIDAuMTk2NTI5LCAwLjI4NzQsIDAuNDAzNDk0LCAwLjUyMTY1LCAwLjY0MTcyMiwgMC43NjE5NiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xOTU2NywgMC4yODU3MjMsIDAuMzQ0NzgyLCAwLjQxNjEzNSwgMC40ODY1NiwgMC41NTY4MjgsIDAuNjI2OTU5IiwgXAotICAgICAgICAgICIwLjIwNzA0NSwgMC4yOTcwNzUsIDAuMzU2MTc1LCAwLjQyNzQyMywgMC40OTc5NTcsIDAuNTY4MTg2LCAwLjYzODMzMiIsIFwKLSAgICAgICAgICAiMC4yMjAxMTksIDAuMzA5OTQ4LCAwLjM2OTE0NywgMC40NDA0NDYsIDAuNTEwODczLCAwLjU4MTEyOSwgMC42NTEyNCIsIFwKLSAgICAgICAgICAiMC4yMzI0OTgsIDAuMzIyMjQ4LCAwLjM4MTQ4NSwgMC40NTI4MzgsIDAuNTIzMjYxLCAwLjU5MzUzNywgMC42NjM2NDQiLCBcCi0gICAgICAgICAgIjAuMjQ0NjQxLCAwLjMzNDUzOSwgMC4zOTM3NjksIDAuNDY1MDQxLCAwLjUzNTU1NywgMC42MDU4MDMsIDAuNjc1OTMxIiwgXAotICAgICAgICAgICIwLjI2NDI4OCwgMC4zNTM5ODEsIDAuNDEzMTU4LCAwLjQ4NDUxMSwgMC41NTQ5MywgMC42MjUyMDUsIDAuNjk1MzIiLCBcCi0gICAgICAgICAgIjAuMjgxMzY3LCAwLjM3MTE5MiwgMC40MzA0MTMsIDAuNTAxNzAxLCAwLjU3MjIxNCwgMC42NDI0NTgsIDAuNzEyNTkzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4MzQ1LCAwLjIxNDYyMSwgMC4zMTk0NzQsIDAuNDUzNDg2LCAwLjU4OTU3NSwgMC43Mjc0MDksIDAuODY0NTA4IiwgXAotICAgICAgICAgICIwLjA4MzU0MywgMC4yMTQ1NDksIDAuMzE5NzU4LCAwLjQ1MzQwNSwgMC41ODk4MjgsIDAuNzI3MzczLCAwLjg2MzI4NSIsIFwKLSAgICAgICAgICAiMC4wODM2MTcsIDAuMjE0NDcyLCAwLjMxOTY5NCwgMC40NTMyNiwgMC41ODk3NjIsIDAuNzI3NDEyLCAwLjg2NTIwNSIsIFwKLSAgICAgICAgICAiMC4wODM0NjQsIDAuMjE0MzgzLCAwLjMxOTMxMiwgMC40NTM0NjMsIDAuNTg5NTkzLCAwLjcyNzM4MSwgMC44NjUzMzIiLCBcCi0gICAgICAgICAgIjAuMDgzNDE4LCAwLjIxNDI3LCAwLjMxOTcyNywgMC40NTM0MDgsIDAuNTg5ODA3LCAwLjcyNzQyMSwgMC44NjI5OTQiLCBcCi0gICAgICAgICAgIjAuMDgzMjc0LCAwLjIxNDQyNCwgMC4zMTk1NjMsIDAuNDUzNTUsIDAuNTg5NTg4LCAwLjcyNzM5LCAwLjg2NDc2OCIsIFwKLSAgICAgICAgICAiMC4wODMwNDYsIDAuMjE0MjA1LCAwLjMxOTU3NywgMC40NTMzMzMsIDAuNTg5NzczLCAwLjcyNzM5NiwgMC44NjI5MjQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUzAiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE4NzY4MiwgMC4yNjk3NzUsIDAuMzIxNjU1LCAwLjM4MzA4MywgMC40NDM2MTksIDAuNTAzODM2LCAwLjU2MzkxOSIsIFwKLSAgICAgICAgICAiMC4xOTgxMDMsIDAuMjgwMjk3LCAwLjMzMjA3NiwgMC4zOTM2NywgMC40NTQxNjMsIDAuNTE0Mzk5LCAwLjU3NDUxOCIsIFwKLSAgICAgICAgICAiMC4yMTE2ODYsIDAuMjk0MDU2LCAwLjM0NTY3NSwgMC40MDcyNTIsIDAuNDY3NzEsIDAuNTI3OTgxLCAwLjU4ODEwMyIsIFwKLSAgICAgICAgICAiMC4yMjUwNTIsIDAuMzA3MTgxLCAwLjM1OTEyNSwgMC40MjA1ODgsIDAuNDgxMTAzLCAwLjU0MTMyOSwgMC42MDE0MTkiLCBcCi0gICAgICAgICAgIjAuMjM4Mzk4LCAwLjMyMDUwOCwgMC4zNzI0NDcsIDAuNDMzOTEyLCAwLjQ5NDQyNywgMC41NTQ2NTksIDAuNjE0NzQ3IiwgXAotICAgICAgICAgICIwLjI2MDA4LCAwLjM0MjEyNiwgMC4zOTQwNzYsIDAuNDU1NTM1LCAwLjUxNjA1MiwgMC41NzYzMDIsIDAuNjM2Mzc1IiwgXAotICAgICAgICAgICIwLjI3OTE0MSwgMC4zNjEyNjUsIDAuNDEzMDA0LCAwLjQ3NDU4MSwgMC41MzUxNjYsIDAuNTk1MzQxLCAwLjY1NTQ1MyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODI2NjUsIDAuMTk2Mzk3LCAwLjI4NzQyNSwgMC40MDM1NTYsIDAuNTIxNjgyLCAwLjY0MDg1NywgMC43NjAxMzgiLCBcCi0gICAgICAgICAgIjAuMDgyNjUxLCAwLjE5NjQxMSwgMC4yODcyMzIsIDAuNDAzNTAxLCAwLjUyMTg5NSwgMC42NDE2OTQsIDAuNzYxOTYiLCBcCi0gICAgICAgICAgIjAuMDgyNzc3LCAwLjE5NjM3OSwgMC4yODcyMjksIDAuNDAzNDc2LCAwLjUyMTkxNCwgMC42NDE1OTIsIDAuNzYxOTEzIiwgXAotICAgICAgICAgICIwLjA4MjYzOSwgMC4xOTYzMzcsIDAuMjg3MzY5LCAwLjQwMzM2MiwgMC41MjE2MjksIDAuNjQxNDQ4LCAwLjc2MDQ5OCIsIFwKLSAgICAgICAgICAiMC4wODI2NzQsIDAuMTk2MzM1LCAwLjI4NzMzNSwgMC40MDMzMjYsIDAuNTIxNjIzLCAwLjY0MTQ0NywgMC43NjA0NzMiLCBcCi0gICAgICAgICAgIjAuMDgyNTc2LCAwLjE5NjMyMywgMC4yODczMzcsIDAuNDAzMzUxLCAwLjUyMTYyMiwgMC42NDE1ODcsIDAuNzYwNDE4IiwgXAotICAgICAgICAgICIwLjA4MjQ3NiwgMC4xOTY0MzUsIDAuMjg3MjE3LCAwLjQwMzQzNiwgMC41MjE1MzQsIDAuNjQxNjI3LCAwLjc2MTkxMiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xODA1MiwgMC4yNzAxMDgsIDAuMzI5MjQyLCAwLjQwMDU2MiwgMC40NzA5NjksIDAuNTQxMjIyLCAwLjYxMTMzIiwgXAotICAgICAgICAgICIwLjE5MDkyMSwgMC4yODA0ODUsIDAuMzM5NjcyLCAwLjQxMDkyNCwgMC40ODE0MDQsIDAuNTUxNjMzLCAwLjYyMTc0OSIsIFwKLSAgICAgICAgICAiMC4yMDQwNTYsIDAuMjkzNjMxLCAwLjM1Mjc3OSwgMC40MjQwOTIsIDAuNDk0NTAzLCAwLjU2NDc1NSwgMC42MzQ4NTMiLCBcCi0gICAgICAgICAgIjAuMjE3MTM0LCAwLjMwNjY5MSwgMC4zNjU4NDYsIDAuNDM3MDk0LCAwLjUwNzU4OSwgMC41Nzc4MiwgMC42NDc5NDEiLCBcCi0gICAgICAgICAgIjAuMjMwMjMyLCAwLjMxOTg5NiwgMC4zNzg5NzEsIDAuNDUwMiwgMC41MjA3MSwgMC41OTA5MzYsIDAuNjYxMDczIiwgXAotICAgICAgICAgICIwLjI1MTM4NiwgMC4zNDEwNDMsIDAuNDAwMTIyLCAwLjQ3MTM1MSwgMC41NDE4NjcsIDAuNjEyMTA3LCAwLjY4MjIzOCIsIFwKLSAgICAgICAgICAiMC4yNzAwNzEsIDAuMzU5NjEsIDAuNDE4NzgyLCAwLjQ5MDAyOCwgMC41NjA1MzYsIDAuNjMwNzc5LCAwLjcwMDkxMSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODI4NDksIDAuMjEzODA1LCAwLjMxOTAyLCAwLjQ1MzEwNCwgMC41ODkyOTIsIDAuNzI3MTMyLCAwLjg2NTI2NiIsIFwKLSAgICAgICAgICAiMC4wODI4MzQsIDAuMjEzNzI4LCAwLjMxOTIzNSwgMC40NTMzMzEsIDAuNTg5NDkyLCAwLjcyNzE1MSwgMC44NjI3NzkiLCBcCi0gICAgICAgICAgIjAuMDgyODg0LCAwLjIxMzgwNiwgMC4zMTkwMDksIDAuNDUzMDkyLCAwLjU4OTMyNiwgMC43MjcxMywgMC44NjUwOTMiLCBcCi0gICAgICAgICAgIjAuMDgyNzgxLCAwLjIxMzcwNiwgMC4zMTkyNDgsIDAuNDUzMDEzLCAwLjU4OTUwNiwgMC43MjcxNTcsIDAuODYyODc2IiwgXAotICAgICAgICAgICIwLjA4Mjc2MSwgMC4yMTM5NjUsIDAuMzE5MjMyLCAwLjQ1MzA1NCwgMC41ODk1MzUsIDAuNzI3MDksIDAuODYzNTEzIiwgXAotICAgICAgICAgICIwLjA4MjgzMiwgMC4yMTM5OTYsIDAuMzE5Mjk3LCAwLjQ1MzA2NywgMC41ODk1MzQsIDAuNzI1Mjg0LCAwLjg2MzE4MSIsIFwKLSAgICAgICAgICAiMC4wODI3MTYsIDAuMjEzNzczLCAwLjMxOTI2OCwgMC40NTMwNSwgMC41ODk1MTMsIDAuNzI3MTUsIDAuODYyOTUxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlMwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMjMyOTMsIDAuMzA1NTEsIDAuMzU3MzYzLCAwLjQxODk0NCwgMC40Nzk0MDUsIDAuNTM5NjIyLCAwLjU5OTcwMyIsIFwKLSAgICAgICAgICAiMC4yMzUzNDgsIDAuMzE3NiwgMC4zNjk1MjksIDAuNDMwOTcsIDAuNDkxNDg3LCAwLjU1MTY2MiwgMC42MTE4MTciLCBcCi0gICAgICAgICAgIjAuMjUwNDI3LCAwLjMzMjYxMiwgMC4zODQ1MTQsIDAuNDQ2MDgzLCAwLjUwNjUzNCwgMC41NjY3OTQsIDAuNjI2OTE3IiwgXAotICAgICAgICAgICIwLjI2NDkxNSwgMC4zNDcxODcsIDAuMzk4ODkyLCAwLjQ2MDQ2NywgMC41MjA5NjQsIDAuNTgxMTkzLCAwLjY0MTMwNCIsIFwKLSAgICAgICAgICAiMC4yNzg0MzcsIDAuMzYwOTY4LCAwLjQxMjUzMiwgMC40NzM5NjMsIDAuNTM0NTE4LCAwLjU5NDc1LCAwLjY1NDc5MyIsIFwKLSAgICAgICAgICAiMC4yOTc2MDMsIDAuMzc5ODMsIDAuNDMxNjg2LCAwLjQ5MzI2MSwgMC41NTM3MjIsIDAuNjEzOTUyLCAwLjY3NDAyMSIsIFwKLSAgICAgICAgICAiMC4zMTI1ODIsIDAuMzk0NzQsIDAuNDQ2NzAxLCAwLjUwODEzOCwgMC41Njg2NDcsIDAuNjI4ODY0LCAwLjY4ODk1MSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODMxOTIsIDAuMTk2NTExLCAwLjI4NzM0NCwgMC40MDM0OTksIDAuNTIxOTM2LCAwLjY0MTU2MywgMC43NjAzMTIiLCBcCi0gICAgICAgICAgIjAuMDgzMzA5LCAwLjE5NjU4NSwgMC4yODc0NTUsIDAuNDAzNTIyLCAwLjUyMTYyNywgMC42NDE2OTUsIDAuNzYxOTYxIiwgXAotICAgICAgICAgICIwLjA4MzI5LCAwLjE5NjUwMiwgMC4yODczMjUsIDAuNDAzNTE3LCAwLjUyMTk0NiwgMC42NDE1NjcsIDAuNzYxODgyIiwgXAotICAgICAgICAgICIwLjA4MzAzMSwgMC4xOTY2MjgsIDAuMjg3MTUzLCAwLjQwMzUyOCwgMC41MjE4MzUsIDAuNjQxNjQ1LCAwLjc2MTkwOSIsIFwKLSAgICAgICAgICAiMC4wODMxOSwgMC4xOTY3NywgMC4yODc0NDIsIDAuNDAzNTI3LCAwLjUyMTYwOCwgMC42NDE1MjksIDAuNzYwNDQ1IiwgXAotICAgICAgICAgICIwLjA4MzI0OCwgMC4xOTY1MDIsIDAuMjg3MzY2LCAwLjQwMzQ1LCAwLjUyMTkxOCwgMC42NDE1NTIsIDAuNzYxNjg0IiwgXAotICAgICAgICAgICIwLjA4MzE3OCwgMC4xOTY1MDEsIDAuMjg3NDIzLCAwLjQwMzQwOCwgMC41MjE2NCwgMC42NDEzNDQsIDAuNzYwNDQ1Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIyMDg4NiwgMC4zMTA4MzIsIDAuMzY5OTI3LCAwLjQ0MTE3NSwgMC41MTE3MTgsIDAuNTgxOTY5LCAwLjY1MjExIiwgXAotICAgICAgICAgICIwLjIzMjg4NCwgMC4zMjI5MTQsIDAuMzgyMDA0LCAwLjQ1MzI3MywgMC41MjM3OTQsIDAuNTk0MDQzLCAwLjY2NDE4MSIsIFwKLSAgICAgICAgICAiMC4yNDg2NTksIDAuMzM4NjAxLCAwLjM5NzY5NCwgMC40Njg5NTUsIDAuNTM5NDg4LCAwLjYwOTc0MiwgMC42Nzk4NzciLCBcCi0gICAgICAgICAgIjAuMjYzNDg4LCAwLjM1MzMxNCwgMC40MTI1MDksIDAuNDgzODc4LCAwLjU1NDMxOSwgMC42MjQ1OTcsIDAuNjk0NzA1IiwgXAotICAgICAgICAgICIwLjI3ODY0NywgMC4zNjg1MTksIDAuNDI3NzM0LCAwLjQ5OTA0OSwgMC41Njk1MDcsIDAuNjM5Nzc4LCAwLjcwOTg4NCIsIFwKLSAgICAgICAgICAiMC4zMDA3NjYsIDAuMzkwNjQsIDAuNDQ5NzEyLCAwLjUyMTA4OSwgMC41OTE1MzYsIDAuNjYxODE2LCAwLjczMTkxNSIsIFwKLSAgICAgICAgICAiMC4zMTg1MDUsIDAuNDA4NDE2LCAwLjQ2NzQ5NywgMC41Mzg4MywgMC42MDkzMDQsIDAuNjc5NTM4LCAwLjc0OTY5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4MzY4NSwgMC4yMTQ1NjMsIDAuMzE5NzQxLCAwLjQ1MzQxOSwgMC41ODk5NjUsIDAuNzI3NDgxLCAwLjg2MjY5IiwgXAotICAgICAgICAgICIwLjA4MzQ5MiwgMC4yMTQ1NTksIDAuMzE5NzQsIDAuNDUzNDY4LCAwLjU4OTg5OCwgMC43Mjc0ODgsIDAuODYzOTA5IiwgXAotICAgICAgICAgICIwLjA4MzY0MiwgMC4yMTQ1NDcsIDAuMzE5NzM4LCAwLjQ1MzQ4NCwgMC41ODk4NzQsIDAuNzI1MzAyLCAwLjg2NDA0OSIsIFwKLSAgICAgICAgICAiMC4wODMzMjYsIDAuMjE0NTM1LCAwLjMxOTQxMywgMC40NTM5MSwgMC41ODk4NjIsIDAuNzI3Mzc3LCAwLjg2NDUxNyIsIFwKLSAgICAgICAgICAiMC4wODM1NjUsIDAuMjE0NDYzLCAwLjMxOTUxMiwgMC40NTM2NzMsIDAuNTg5NjQ0LCAwLjcyNzM4NywgMC44NjQzNzUiLCBcCi0gICAgICAgICAgIjAuMDgzNTcxLCAwLjIxNDU4NCwgMC4zMTk0NjQsIDAuNDUzNzkyLCAwLjU4OTcyOSwgMC43MjczNSwgMC44NjM5MjciLCBcCi0gICAgICAgICAgIjAuMDgzMjA1LCAwLjIxNDUwNywgMC4zMTk2NzUsIDAuNDUzMzMxLCAwLjU4OTc3NSwgMC43MjczNDEsIDAuODYzODU5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1Njc3LCAwLjAwNTg0NSwgMC4wMDU4OTYsIDAuMDA1OTI4LCAwLjAwNTk0NiwgMC4wMDU5NTgsIDAuMDA1OTY3IiwgXAotICAgICAgICAgICIwLjAwNTY2NSwgMC4wMDU4MzMsIDAuMDA1ODgzLCAwLjAwNTkxNiwgMC4wMDU5MzQsIDAuMDA1OTQ2LCAwLjAwNTk1MyIsIFwKLSAgICAgICAgICAiMC4wMDU2NTksIDAuMDA1ODI2LCAwLjAwNTg3OCwgMC4wMDU5MSwgMC4wMDU5MjksIDAuMDA1OTM5LCAwLjAwNTk0NyIsIFwKLSAgICAgICAgICAiMC4wMDU2NSwgMC4wMDU4MTgsIDAuMDA1ODY4LCAwLjAwNTkwMiwgMC4wMDU5MiwgMC4wMDU5MzMsIDAuMDA1OTQiLCBcCi0gICAgICAgICAgIjAuMDA1NjQ0LCAwLjAwNTgxLCAwLjAwNTg2MSwgMC4wMDU4OTUsIDAuMDA1OTE2LCAwLjAwNTkyOCwgMC4wMDU5MzYiLCBcCi0gICAgICAgICAgIjAuMDA1NjM1LCAwLjAwNTc5NiwgMC4wMDU4NDgsIDAuMDA1ODg0LCAwLjAwNTkwMywgMC4wMDU5MTQsIDAuMDA1OTI2IiwgXAotICAgICAgICAgICIwLjAwNTYzMywgMC4wMDU3ODksIDAuMDA1ODQxLCAwLjAwNTg3NywgMC4wMDU4OTgsIDAuMDA1OTA4LCAwLjAwNTkyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2MzUxLCAwLjAwNjU3NywgMC4wMDY2NDQsIDAuMDA2Njg3LCAwLjAwNjcxMiwgMC4wMDY3MjcsIDAuMDA2NzM4IiwgXAotICAgICAgICAgICIwLjAwNjM0OCwgMC4wMDY1NzIsIDAuMDA2NjM5LCAwLjAwNjY4MiwgMC4wMDY3MDcsIDAuMDA2NzIyLCAwLjAwNjczMyIsIFwKLSAgICAgICAgICAiMC4wMDYzMzksIDAuMDA2NTY1LCAwLjAwNjYzMywgMC4wMDY2NzYsIDAuMDA2NzAyLCAwLjAwNjcxNywgMC4wMDY3MjkiLCBcCi0gICAgICAgICAgIjAuMDA2MzMzLCAwLjAwNjU1OCwgMC4wMDY2MjcsIDAuMDA2NjcxLCAwLjAwNjY5NywgMC4wMDY3MTMsIDAuMDA2NzI0IiwgXAotICAgICAgICAgICIwLjAwNjMyOCwgMC4wMDY1NTEsIDAuMDA2NjIsIDAuMDA2NjY1LCAwLjAwNjY5MSwgMC4wMDY3MDgsIDAuMDA2NzIiLCBcCi0gICAgICAgICAgIjAuMDA2MzIxLCAwLjAwNjUzOSwgMC4wMDY2MDksIDAuMDA2NjU2LCAwLjAwNjY4MywgMC4wMDY3MDEsIDAuMDA2NzEzIiwgXAotICAgICAgICAgICIwLjAwNjMyMSwgMC4wMDY1MzIsIDAuMDA2NjAyLCAwLjAwNjY0OSwgMC4wMDY2NzcsIDAuMDA2Njk1LCAwLjAwNjcwOCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNTUxNywgMC4wMDU2NjksIDAuMDA1NzE0LCAwLjAwNTc0LCAwLjAwNTc1MywgMC4wMDU3NjQsIDAuMDA1NzciLCBcCi0gICAgICAgICAgIjAuMDA1NTA1LCAwLjAwNTY1NSwgMC4wMDU3LCAwLjAwNTcyNiwgMC4wMDU3NDEsIDAuMDA1NzUxLCAwLjAwNTc1OCIsIFwKLSAgICAgICAgICAiMC4wMDU0OTgsIDAuMDA1NjQ4LCAwLjAwNTY5MiwgMC4wMDU3MTksIDAuMDA1NzM1LCAwLjAwNTc0NSwgMC4wMDU3NTEiLCBcCi0gICAgICAgICAgIjAuMDA1NDg5LCAwLjAwNTY0MSwgMC4wMDU2ODYsIDAuMDA1NzE0LCAwLjAwNTcyOSwgMC4wMDU3MzksIDAuMDA1NzQ2IiwgXAotICAgICAgICAgICIwLjAwNTQ4MywgMC4wMDU2MzQsIDAuMDA1Njc5LCAwLjAwNTcwOCwgMC4wMDU3MjUsIDAuMDA1NzM1LCAwLjAwNTc0MSIsIFwKLSAgICAgICAgICAiMC4wMDU0NzUsIDAuMDA1NjIzLCAwLjAwNTY2OSwgMC4wMDU2OTksIDAuMDA1NzE2LCAwLjAwNTcyNywgMC4wMDU3MzQiLCBcCi0gICAgICAgICAgIjAuMDA1NDcsIDAuMDA1NjEzLCAwLjAwNTY1OSwgMC4wMDU2OTIsIDAuMDA1NzA4LCAwLjAwNTcyLCAwLjAwNTcyOCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjU2NywgMC4wMDY3NzcsIDAuMDA2ODM4LCAwLjAwNjg3NywgMC4wMDY5LCAwLjAwNjkxNCwgMC4wMDY5MjQiLCBcCi0gICAgICAgICAgIjAuMDA2NTU5LCAwLjAwNjc3MSwgMC4wMDY4MzIsIDAuMDA2ODcxLCAwLjAwNjg5NCwgMC4wMDY5MDgsIDAuMDA2OTE4IiwgXAotICAgICAgICAgICIwLjAwNjU1OSwgMC4wMDY3NjgsIDAuMDA2ODI5LCAwLjAwNjg2OSwgMC4wMDY4OTEsIDAuMDA2OTA1LCAwLjAwNjkxNSIsIFwKLSAgICAgICAgICAiMC4wMDY1NTMsIDAuMDA2NzYyLCAwLjAwNjgyNCwgMC4wMDY4NjQsIDAuMDA2ODg3LCAwLjAwNjkwMSwgMC4wMDY5MTIiLCBcCi0gICAgICAgICAgIjAuMDA2NTQ5LCAwLjAwNjc1NiwgMC4wMDY4MTksIDAuMDA2ODU5LCAwLjAwNjg4MywgMC4wMDY4OTgsIDAuMDA2OTA4IiwgXAotICAgICAgICAgICIwLjAwNjU0MiwgMC4wMDY3NDMsIDAuMDA2ODA3LCAwLjAwNjg1LCAwLjAwNjg3NCwgMC4wMDY4OSwgMC4wMDY5MDEiLCBcCi0gICAgICAgICAgIjAuMDA2NTQxLCAwLjAwNjczOCwgMC4wMDY4MDIsIDAuMDA2ODQ1LCAwLjAwNjg3LCAwLjAwNjg4NywgMC4wMDY4OTgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTMCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA3MjcyLCAwLjAwNzQzNywgMC4wMDc0ODgsIDAuMDA3NTIxLCAwLjAwNzU0MSwgMC4wMDc1NTMsIDAuMDA3NTYyIiwgXAotICAgICAgICAgICIwLjAwNzI3NSwgMC4wMDc0NCwgMC4wMDc0OTIsIDAuMDA3NTIzLCAwLjAwNzU0MywgMC4wMDc1NTgsIDAuMDA3NTY3IiwgXAotICAgICAgICAgICIwLjAwNzI3NiwgMC4wMDc0NDIsIDAuMDA3NDkyLCAwLjAwNzUyNiwgMC4wMDc1NDYsIDAuMDA3NTU2LCAwLjAwNzU2NyIsIFwKLSAgICAgICAgICAiMC4wMDcyNzcsIDAuMDA3NDQzLCAwLjAwNzQ5NCwgMC4wMDc1MjYsIDAuMDA3NTQ0LCAwLjAwNzU1NywgMC4wMDc1NjYiLCBcCi0gICAgICAgICAgIjAuMDA3Mjc3LCAwLjAwNzQ0MywgMC4wMDc0OTMsIDAuMDA3NTI2LCAwLjAwNzU0NywgMC4wMDc1NTcsIDAuMDA3NTY2IiwgXAotICAgICAgICAgICIwLjAwNzI3NSwgMC4wMDc0NDMsIDAuMDA3NDkzLCAwLjAwNzUyOCwgMC4wMDc1NDYsIDAuMDA3NTU3LCAwLjAwNzU2NiIsIFwKLSAgICAgICAgICAiMC4wMDcyNzQsIDAuMDA3NDQyLCAwLjAwNzQ5MSwgMC4wMDc1MjUsIDAuMDA3NTQ1LCAwLjAwNzU1NiwgMC4wMDc1NjYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDYyNDMsIDAuMDA2NDUyLCAwLjAwNjUxNiwgMC4wMDY1NTgsIDAuMDA2NTgyLCAwLjAwNjU5OCwgMC4wMDY2MDkiLCBcCi0gICAgICAgICAgIjAuMDA2MjM5LCAwLjAwNjQ0OCwgMC4wMDY1MTEsIDAuMDA2NTUzLCAwLjAwNjU3NywgMC4wMDY1OTMsIDAuMDA2NjA1IiwgXAotICAgICAgICAgICIwLjAwNjIzOCwgMC4wMDY0NDcsIDAuMDA2NTExLCAwLjAwNjU1MiwgMC4wMDY1NzYsIDAuMDA2NTkyLCAwLjAwNjYwMyIsIFwKLSAgICAgICAgICAiMC4wMDYyMzgsIDAuMDA2NDQ2LCAwLjAwNjUxLCAwLjAwNjU1MiwgMC4wMDY1NzYsIDAuMDA2NTkxLCAwLjAwNjYwMiIsIFwKLSAgICAgICAgICAiMC4wMDYyMzcsIDAuMDA2NDQ3LCAwLjAwNjUxLCAwLjAwNjU1MiwgMC4wMDY1NzYsIDAuMDA2NTkxLCAwLjAwNjYwMyIsIFwKLSAgICAgICAgICAiMC4wMDYyMzYsIDAuMDA2NDQ1LCAwLjAwNjUwOSwgMC4wMDY1NTEsIDAuMDA2NTc1LCAwLjAwNjU5MSwgMC4wMDY2MDIiLCBcCi0gICAgICAgICAgIjAuMDA2MjM4LCAwLjAwNjQ0NiwgMC4wMDY1MSwgMC4wMDY1NTIsIDAuMDA2NTc2LCAwLjAwNjU5MSwgMC4wMDY2MDIiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogTVgyWEwgKgotICogLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKE1YMlhMKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMDgwOTc1MzsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjUyNTY1OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDY1MTAwMTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2NTI1NjU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMTU0LCAwLjAwMDE1NywgMC4wMDAxNTgsIDAuMDAwMTU5LCAwLjAwMDE1OSwgMC4wMDAxNTksIDAuMDAwMTYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxNywgMC4wMDAxNjcsIDAuMDAwMTY2LCAwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjUzNTc7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjUxOTA4OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDY1MzU3OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDE1OSwgMC4wMDAxNjEsIDAuMDAwMTYxLCAwLjAwMDE2MiwgMC4wMDAxNjIsIDAuMDAwMTYyLCAwLjAwMDE2MiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDE2OCwgMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUzApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTI1MDM2OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTI0OTc5OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTI1MDM2OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDE4OCwgMC4wMDAxNywgMC4wMDAxNiwgMC4wMDAxNTYsIDAuMDAwMTU0LCAwLjAwMDE1NCwgMC4wMDAxNTUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDE2NTQsIDAuMDAxNjQyLCAwLjAwMTYzNSwgMC4wMDE2MzIsIDAuMDAxNjMsIDAuMDAxNjI4LCAwLjAwMTYyOCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjA2OTAwODsKLSAgICBmdW5jdGlvbiA6ICIoKFMwIEIpICsgKCFTMCBBKSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI0Mjc1MSwgMC44NzQ4MywgMS4zNzk5LCAyLjAxMTE4LCAyLjY0MjM0LCAzLjI3MzUxLCAzLjkwNDY1IiwgXAotICAgICAgICAgICIwLjI1NDExNCwgMC44ODYyMywgMS4zOTEzLCAyLjAyMjQ4LCAyLjY1MzY4LCAzLjI4NDg0LCAzLjkxNjAzIiwgXAotICAgICAgICAgICIwLjI2Nzc0LCAwLjg5OTg1MSwgMS40MDQ5MiwgMi4wMzYxMSwgMi42NjczLCAzLjI5ODQ3LCAzLjkyOTY5IiwgXAotICAgICAgICAgICIwLjI4MTMyMiwgMC45MTM0MTcsIDEuNDE4NTEsIDIuMDQ5NzEsIDIuNjgwODksIDMuMzEyMDYsIDMuOTQzMjciLCBcCi0gICAgICAgICAgIjAuMjk1MTE2LCAwLjkyNzIzNSwgMS40MzI0NCwgMi4wNjM3NSwgMi42OTQ4MSwgMy4zMjU4NSwgMy45NTciLCBcCi0gICAgICAgICAgIjAuMzE2NjY1LCAwLjk0ODc2MSwgMS40NTM4NSwgMi4wODUwOSwgMi43MTYyNywgMy4zNDc1NCwgMy45Nzg1NSIsIFwKLSAgICAgICAgICAiMC4zMzUyNjIsIDAuOTY3MzcyLCAxLjQ3MjU5LCAyLjEwMzcsIDIuNzM1MDIsIDMuMzY1OTksIDMuOTk3MiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yNzY0OTMsIDEuNTUzMjYsIDIuNTc3NjgsIDMuODU4MjIsIDUuMTM4OTYsIDYuNDE1NTgsIDcuNjkwNDkiLCBcCi0gICAgICAgICAgIjAuMjc2NTAyLCAxLjU1MjU2LCAyLjU3NTUsIDMuODYxOTEsIDUuMTM3NzcsIDYuNDE0MzUsIDcuNjkwNjIiLCBcCi0gICAgICAgICAgIjAuMjc2NTAzLCAxLjU1MjQxLCAyLjU3ODE2LCAzLjg2MTY0LCA1LjEzNzY4LCA2LjQxNDIsIDcuNjkwNDIiLCBcCi0gICAgICAgICAgIjAuMjc2NDgzLCAxLjU1MzA2LCAyLjU3ODAzLCAzLjg2MTY0LCA1LjEzNzIsIDYuNDE0MiwgNy42OTA0NSIsIFwKLSAgICAgICAgICAiMC4yNzY0NCwgMS41NTU2NiwgMi41ODE0MywgMy44NjQxNCwgNS4xNDAyMSwgNi40MTQ0MywgNy42OTAyOSIsIFwKLSAgICAgICAgICAiMC4yNzY0MjUsIDEuNTUzMTgsIDIuNTc3NTgsIDMuODU4MzMsIDUuMTM4MzEsIDYuNDE1NDQsIDcuNjkwNjkiLCBcCi0gICAgICAgICAgIjAuMjc2NDg1LCAxLjU1MzE2LCAyLjU4MTQ4LCAzLjg1ODM0LCA1LjE0MDM0LCA2LjQxNTI3LCA3LjY5MDM0Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI1NDQ4NSwgMC45OTc0ODksIDEuNTkxNSwgMi4zMzM5NCwgMy4wNzYzNywgMy44MTg5LCA0LjU2MTA0IiwgXAotICAgICAgICAgICIwLjI2NTk0LCAxLjAwODk0LCAxLjYwMjk1LCAyLjM0NTQsIDMuMDg3ODEsIDMuODMwMzksIDQuNTcyNDkiLCBcCi0gICAgICAgICAgIjAuMjc5MTEsIDEuMDIyMDksIDEuNjE2MTQsIDIuMzU4NTQsIDMuMTAwOTUsIDMuODQzMzgsIDQuNTg1NzMiLCBcCi0gICAgICAgICAgIjAuMjkxNjA3LCAxLjAzNDY0LCAxLjYyODYzLCAyLjM3MTA5LCAzLjExMzUsIDMuODU1ODgsIDQuNTk4MTciLCBcCi0gICAgICAgICAgIjAuMzA0MDAxLCAxLjA0Njk2LCAxLjY0MDk3LCAyLjM4MzQzLCAzLjEyNTg0LCAzLjg2ODU0LCA0LjYxMDUyIiwgXAotICAgICAgICAgICIwLjMyMzMzNCwgMS4wNjYzNywgMS42NjA0LCAyLjQwMjgzLCAzLjE0NTI0LCAzLjg4NzY1LCA0LjYyOTg4IiwgXAotICAgICAgICAgICIwLjMzOTg0MiwgMS4wODI4OSwgMS42NzY5MiwgMi40MTkzNiwgMy4xNjE3NywgMy45MDQxNywgNC42NDY0MSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMTU0NDEsIDEuNzg1NTMsIDIuOTYzMTYsIDQuNDMyMTMsIDUuODkyOTEsIDcuMzU1ODksIDguODE5MDIiLCBcCi0gICAgICAgICAgIjAuMzE1NDI5LCAxLjc4NTUyLCAyLjk2MzA3LCA0LjQzMjA3LCA1Ljg5MjY1LCA3LjM1NTc0LCA4LjgxODk0IiwgXAotICAgICAgICAgICIwLjMxNTM5MywgMS43ODU4OSwgMi45NjM5NSwgNC40MzAxOSwgNS44OTMxMSwgNy4zNTYzLCA4LjgxOTkxIiwgXAotICAgICAgICAgICIwLjMxNTQ0LCAxLjc4NDM4LCAyLjk2MTE2LCA0LjQzMTY4LCA1Ljg5MjY2LCA3LjM1NTczLCA4LjgxODk0IiwgXAotICAgICAgICAgICIwLjMxNTM2OSwgMS43ODUzLCAyLjk2MjAxLCA0LjQzMjAzLCA1Ljg5MjgxLCA3LjM1NTg4LCA4LjgxODk0IiwgXAotICAgICAgICAgICIwLjMxNTQyLCAxLjc4MzI3LCAyLjk2NDEyLCA0LjQzMTExLCA1Ljg5MjkzLCA3LjM1NjExLCA4LjgxODg4IiwgXAotICAgICAgICAgICIwLjMxNTU1MSwgMS43ODMxNiwgMi45NjM1MywgNC40MzAyNSwgNS44OTI3NiwgNy4zNTYwMywgOC44MTg4NyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yNDIyNzYsIDAuODc0MjA3LCAxLjM3OTI4LCAyLjAxMDUxLCAyLjY0MTY3LCAzLjI3Mjg1LCAzLjkwMzk0IiwgXAotICAgICAgICAgICIwLjI1MzkwNiwgMC44ODU4MzUsIDEuMzkwOSwgMi4wMjIxMywgMi42NTMyOSwgMy4yODQ1MywgMy45MTU1NSIsIFwKLSAgICAgICAgICAiMC4yNjc3NzQsIDAuODk5NzI0LCAxLjQwNDk1LCAyLjAzNTk3LCAyLjY2NzQyLCAzLjI5ODMsIDMuOTI5NDYiLCBcCi0gICAgICAgICAgIjAuMjgxNTEyLCAwLjkxMzUxNiwgMS40MTg1NiwgMi4wNDk3MiwgMi42ODA5LCAzLjMxMjA2LCAzLjk0MzIxIiwgXAotICAgICAgICAgICIwLjI5NTE4OCwgMC45MjcxMjcsIDEuNDMyMjMsIDIuMDYzNCwgMi42OTQ1OCwgMy4zMjU3NCwgMy45NTcwMiIsIFwKLSAgICAgICAgICAiMC4zMTY5MTgsIDAuOTQ4ODg3LCAxLjQ1Mzk0LCAyLjA4NTE4LCAyLjcxNjM0LCAzLjM0NzgxLCAzLjk3ODYiLCBcCi0gICAgICAgICAgIjAuMzM1ODU4LCAwLjk2NzgyMywgMS40NzI4OCwgMi4xMDQxNSwgMi43MzUzNCwgMy4zNjY0LCAzLjk5NzU3Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI3NjM0MSwgMS41NTMwMywgMi41Nzc4OSwgMy44NTgxNywgNS4xMzg2NSwgNi40MTU1MiwgNy42OTAzMiIsIFwKLSAgICAgICAgICAiMC4yNzYzOSwgMS41NTI5OSwgMi41Nzc1MywgMy44NTgwNSwgNS4xMzg3NywgNi40MTU1NiwgNy42OTA1MyIsIFwKLSAgICAgICAgICAiMC4yNzY0MDksIDEuNTUyOTYsIDIuNTc0NTcsIDMuODYzNywgNS4xMzk4LCA2LjQxNDMzLCA3LjY5MDMzIiwgXAotICAgICAgICAgICIwLjI3NjM5MywgMS41NTI2OSwgMi41NzU2OSwgMy44NTc0NSwgNS4xMzc0NiwgNi40MTIyMywgNy42OTAyNyIsIFwKLSAgICAgICAgICAiMC4yNzU5OTgsIDEuNTUzMDQsIDIuNTc3NjQsIDMuODU4MDgsIDUuMTM4MjMsIDYuNDEyMzMsIDcuNjg5IiwgXAotICAgICAgICAgICIwLjI3NjM2MywgMS41NTI5NiwgMi41NzczOSwgMy44NTc5OSwgNS4xMzg3MywgNi40MTU1MSwgNy42OTAyIiwgXAotICAgICAgICAgICIwLjI3NjQwMiwgMS41NTUzMSwgMi41NzcyNCwgMy44NjQwMywgNS4xMzczMywgNi40MTQzNywgNy42OTAyNyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yNTYzNTUsIDAuOTk5NDk2LCAxLjU5MzUyLCAyLjMzNjIsIDMuMDc4NDEsIDMuODIwODIsIDQuNTYzMTUiLCBcCi0gICAgICAgICAgIjAuMjY3NjYzLCAxLjAxMDgyLCAxLjYwNDgyLCAyLjM0NzQzLCAzLjA4OTgxLCAzLjgzMjEzLCA0LjU3NDQ2IiwgXAotICAgICAgICAgICIwLjI4MDQ1NywgMS4wMjM2LCAxLjYxNzYzLCAyLjM2MDEsIDMuMTAyNSwgMy44NDQ5MywgNC41ODc0NCIsIFwKLSAgICAgICAgICAiMC4yOTI4NjQsIDEuMDM2LCAxLjYzMDAzLCAyLjM3MjUxLCAzLjExNDk1LCAzLjg1NzQxLCA0LjU5OTY3IiwgXAotICAgICAgICAgICIwLjMwNTA2MywgMS4wNDgyMiwgMS42NDIyNSwgMi4zODQ4NywgMy4xMjcxNCwgMy44Njk1NSwgNC42MTE4OCIsIFwKLSAgICAgICAgICAiMC4zMjQzNTQsIDEuMDY3NSwgMS42NjE1NiwgMi40MDQwMiwgMy4xNDY0NSwgMy44ODg5MSwgNC42MzExMyIsIFwKLSAgICAgICAgICAiMC4zNDA4OTksIDEuMDg0MDcsIDEuNjc4MTYsIDIuNDIwNTcsIDMuMTYzMTcsIDMuOTA1NDEsIDQuNjQ3NzYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzE1NzIxLCAxLjc4NTIxLCAyLjk2MDQ3LCA0LjQzMDg3LCA1Ljg5Mzg4LCA3LjM1NjA0LCA4LjgxOTIxIiwgXAotICAgICAgICAgICIwLjMxNTcxOCwgMS43ODQ5LCAyLjk2MDUyLCA0LjQzMDA5LCA1Ljg5MzYsIDcuMzU1ODksIDguODE5MTQiLCBcCi0gICAgICAgICAgIjAuMzE1NzExLCAxLjc4NTQzLCAyLjk2MTM4LCA0LjQzMTE4LCA1Ljg5MzI4LCA3LjM1NiwgOC44MTkzMiIsIFwKLSAgICAgICAgICAiMC4zMTU3MTEsIDEuNzg1NzYsIDIuOTYwMTksIDQuNDMxNzIsIDUuODkyOTIsIDcuMzU2NjIsIDguODE5MTQiLCBcCi0gICAgICAgICAgIjAuMzE1NjgyLCAxLjc4NTM2LCAyLjk2MDM4LCA0LjQzMDg5LCA1Ljg5MzMsIDcuMzU1ODUsIDguODE5MTMiLCBcCi0gICAgICAgICAgIjAuMzE1NjkxLCAxLjc4Mzg3LCAyLjk2MDk2LCA0LjQzMDM4LCA1Ljg5Mjk5LCA3LjM1NTc3LCA4LjgxOTA3IiwgXAotICAgICAgICAgICIwLjMxNTgwNSwgMS43ODQzMiwgMi45NjIxMSwgNC40MzEwOCwgNS44OTM2NiwgNy4zNTU3MiwgOC44MTkxMyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjI3ODQ2LCAwLjg1OTg4MSwgMS4zNjQ5LCAxLjk5NjM1LCAyLjYyNzM5LCAzLjI1ODQxLCAzLjg4OTU3IiwgXAotICAgICAgICAgICIwLjIzODE0OCwgMC44NzAxMDcsIDEuMzc1MTksIDIuMDA2MzksIDIuNjM3NTUsIDMuMjY4NzEsIDMuODk5OTQiLCBcCi0gICAgICAgICAgIjAuMjUxNjgsIDAuODgzNjk3LCAxLjM4ODg4LCAyLjAyMDA3LCAyLjY1MTEsIDMuMjgyMjQsIDMuOTEzMzkiLCBcCi0gICAgICAgICAgIjAuMjY1MTY0LCAwLjg5NzE3NSwgMS40MDIyLCAyLjAzMzUsIDIuNjY0NzgsIDMuMjk1NzUsIDMuOTI2ODkiLCBcCi0gICAgICAgICAgIjAuMjc4Nzg2LCAwLjkxMDc5MSwgMS40MTU4NiwgMi4wNDcwNywgMi42NzgyNSwgMy4zMDk0LCAzLjk0MDg1IiwgXAotICAgICAgICAgICIwLjMwMDgwNSwgMC45MzI4MzcsIDEuNDM3OTIsIDIuMDY5MSwgMi43MDAyNywgMy4zMzE0NywgMy45NjMwNiIsIFwKLSAgICAgICAgICAiMC4zMjAwNSwgMC45NTIxMzUsIDEuNDU3MTgsIDIuMDg4NDYsIDIuNzE5OSwgMy4zNTA2NywgMy45ODE4NCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yNzY1MTUsIDEuNTU1NTEsIDIuNTc3NTYsIDMuODY0NDIsIDUuMTQwNTgsIDYuNDE0NDcsIDcuNjkwMzgiLCBcCi0gICAgICAgICAgIjAuMjc2NTEyLCAxLjU1NDk4LCAyLjU3NzQ2LCAzLjg2MzkzLCA1LjEzNzAyLCA2LjQxNDQzLCA3LjY5MDgyIiwgXAotICAgICAgICAgICIwLjI3NjUxLCAxLjU1NTU1LCAyLjU4MTMyLCAzLjg2NDYxLCA1LjEzNzExLCA2LjQxNDQzLCA3LjY5MDIiLCBcCi0gICAgICAgICAgIjAuMjc2NTQxLCAxLjU1NTQ5LCAyLjU4MTIyLCAzLjg2NDIyLCA1LjEzNjUyLCA2LjQxNDY1LCA3LjY5MDIxIiwgXAotICAgICAgICAgICIwLjI3NjU2NSwgMS41NTQ5NSwgMi41Nzc1NCwgMy44NjI5OSwgNS4xMzc0MiwgNi40MTQxOCwgNy42OTA5MiIsIFwKLSAgICAgICAgICAiMC4yNzY2NTIsIDEuNTU1MDcsIDIuNTc3NDUsIDMuODYyNzgsIDUuMTQwNCwgNi40MTQxNywgNy42ODkwNyIsIFwKLSAgICAgICAgICAiMC4yNzY3NzksIDEuNTU1NDcsIDIuNTgxMzUsIDMuODY0MTcsIDUuMTM0MjksIDYuNDE1MTIsIDcuNjkwMTgiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjQyMTg2LCAwLjk4NTE2MywgMS41NzkyNSwgMi4zMjE2NiwgMy4wNjQzNiwgMy44MDY0LCA0LjU0ODczIiwgXAotICAgICAgICAgICIwLjI1MjM4MiwgMC45OTUzNTUsIDEuNTg5MzYsIDIuMzMxOCwgMy4wNzQyMSwgMy44MTY2MSwgNC41NTg4NyIsIFwKLSAgICAgICAgICAiMC4yNjU0NDYsIDEuMDA4NDMsIDEuNjAyNDUsIDIuMzQ0ODcsIDMuMDg3MjgsIDMuODI5NzEsIDQuNTcyIiwgXAotICAgICAgICAgICIwLjI3ODQ2NCwgMS4wMjE1NywgMS42MTU1LCAyLjM1ODI0LCAzLjEwMDM0LCAzLjg0Mjc1LCA0LjU4NTA3IiwgXAotICAgICAgICAgICIwLjI5MTYzLCAxLjAzNDY4LCAxLjYyODY5LCAyLjM3MTEzLCAzLjExMzU0LCAzLjg1NTk1LCA0LjU5ODIyIiwgXAotICAgICAgICAgICIwLjMxMjM4LCAxLjA1NTQ4LCAxLjY0OTQ5LCAyLjM5MTk0LCAzLjEzNDU0LCAzLjg3Njc0LCA0LjYxOTA3IiwgXAotICAgICAgICAgICIwLjMyOTU5LCAxLjA3MjcsIDEuNjY2NzIsIDIuNDA5MTYsIDMuMTUxNjksIDMuODkzOTcsIDQuNjM2MyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMTU0OTksIDEuNzgzMDQsIDIuOTYyNjEsIDQuNDMxMDIsIDUuODk0MDUsIDcuMzU1NzQsIDguODE5MDIiLCBcCi0gICAgICAgICAgIjAuMzE1NDk4LCAxLjc4Mjk5LCAyLjk2MDE2LCA0LjQzMDQ4LCA1Ljg5MzA1LCA3LjM1NTg0LCA4LjgxODkzIiwgXAotICAgICAgICAgICIwLjMxNTQ5NCwgMS43ODI1MSwgMi45NjA4NiwgNC40Mjk0NywgNS44OTMyNCwgNy4zNTYxNiwgOC44MTkwMSIsIFwKLSAgICAgICAgICAiMC4zMTU1MzcsIDEuNzg0MzYsIDIuOTU5NDMsIDQuNDI0MzEsIDUuODkzMjgsIDcuMzU1NjIsIDguODE4OTQiLCBcCi0gICAgICAgICAgIjAuMzE1NTU4LCAxLjc4MjU3LCAyLjk1OTI0LCA0LjQyOTMsIDUuODkyOSwgNy4zNTU4MSwgOC44MTg4OSIsIFwKLSAgICAgICAgICAiMC4zMTU3MTksIDEuNzgzMTYsIDIuOTU5MDMsIDQuNDI4ODYsIDUuODkxNjksIDcuMzU1NjcsIDguODE4OTQiLCBcCi0gICAgICAgICAgIjAuMzE1NzYyLCAxLjc4MjYsIDIuOTU5MDksIDQuNDI4NTEsIDUuODkxNTEsIDcuMzU1NjksIDguODE4OTQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUzAiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI2NTQzLCAwLjg5NzUwNywgMS40MDI2LCAyLjAzMzgzLCAyLjY2NTAyLCAzLjI5NjI1LCAzLjkyNzI5IiwgXAotICAgICAgICAgICIwLjI3NzU0MSwgMC45MDk2MywgMS40MTQ3NywgMi4wNDU5NCwgMi42NzcxNCwgMy4zMDgzLCAzLjkzOTU1IiwgXAotICAgICAgICAgICIwLjI5MjQwMSwgMC45MjQ0NywgMS40Mjk2LCAyLjA2MTA4LCAyLjY5MTk4LCAzLjMyMzE0LCAzLjk1NDYxIiwgXAotICAgICAgICAgICIwLjMwNjczOSwgMC45Mzg4MTMsIDEuNDQzOSwgMi4wNzUxNCwgMi43MDYzMiwgMy4zMzc2MSwgMy45Njg2IiwgXAotICAgICAgICAgICIwLjMxOTk1OCwgMC45NTIwMiwgMS40NTcxMiwgMi4wODgzNCwgMi43MTk1MywgMy4zNTA2OCwgMy45ODE3NyIsIFwKLSAgICAgICAgICAiMC4zMzg5MDIsIDAuOTcxMDg1LCAxLjQ3NjA5LCAyLjEwNzMyLCAyLjczODQ4LCAzLjM2OTYzLCA0LjAwMDg5IiwgXAotICAgICAgICAgICIwLjM1MzcxNCwgMC45ODU4OTYsIDEuNDkwOSwgMi4xMjIxNywgMi43NTM0MiwgMy4zODQ0NSwgNC4wMTU2NyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yNzY0NjIsIDEuNTUzMjIsIDIuNTc3NTMsIDMuODU4MywgNS4xMzgyOSwgNi40MTU2MiwgNy42OTA3NSIsIFwKLSAgICAgICAgICAiMC4yNzY1MTIsIDEuNTUyOTksIDIuNTc1NDcsIDMuODYxNzcsIDUuMTM3ODEsIDYuNDE0NDEsIDcuNjkwOTIiLCBcCi0gICAgICAgICAgIjAuMjc2NDkxLCAxLjU1NTMzLCAyLjU3Nzc3LCAzLjg1NDkxLCA1LjEzNzM2LCA2LjQxNDQ0LCA3LjY5MTE0IiwgXAotICAgICAgICAgICIwLjI3NjQ1OCwgMS41NTMxNiwgMi41Nzc1OSwgMy44NTgzOSwgNS4xMzgzMSwgNi40MTU0NywgNy42OTA2MyIsIFwKLSAgICAgICAgICAiMC4yNzY0NDksIDEuNTUzMTcsIDIuNTc3NSwgMy44NTgwNywgNS4xMzgxMSwgNi40MTQyMywgNy42OTA2NCIsIFwKLSAgICAgICAgICAiMC4yNzY0NzIsIDEuNTU1NTYsIDIuNTc3NSwgMy44NTc4OCwgNS4xMzY2NCwgNi40MTQ0LCA3LjY5MDgiLCBcCi0gICAgICAgICAgIjAuMjc2NDUzLCAxLjU1NTQ2LCAyLjU3NzQ1LCAzLjg1ODM2LCA1LjEzNDg3LCA2LjQxNDU4LCA3LjY5MDc5Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI4MzEyLCAxLjAyNjMxLCAxLjYyMDQyLCAyLjM2Mjc4LCAzLjEwNTQ1LCAzLjg0NzY2LCA0LjU4OTk5IiwgXAotICAgICAgICAgICIwLjI5NTE1MSwgMS4wMzgzNiwgMS42MzI0LCAyLjM3NSwgMy4xMTcyOCwgMy44NTk3LCA0LjYwMjI1IiwgXAotICAgICAgICAgICIwLjMxMDc3OCwgMS4wNTM5NiwgMS42NDgsIDIuMzkwNjUsIDMuMTMyODgsIDMuODc1MzIsIDQuNjE3NjUiLCBcCi0gICAgICAgICAgIjAuMzI1Mzc2LCAxLjA2ODU1LCAxLjY2Mjc4LCAyLjQwNTA0LCAzLjE0NzYxLCAzLjg4OTksIDQuNjMyMjQiLCBcCi0gICAgICAgICAgIjAuMzQwNDA3LCAxLjA4MzU5LCAxLjY3NzYyLCAyLjQyMDExLCAzLjE2MjU0LCAzLjkwNTA0LCA0LjY0NzI3IiwgXAotICAgICAgICAgICIwLjM2MjE3NCwgMS4xMDUzNSwgMS42OTk0NywgMi40NDE4NCwgMy4xODQ0MywgMy45MjY2OSwgNC42NjkwNCIsIFwKLSAgICAgICAgICAiMC4zNzk4NDIsIDEuMTIzMDEsIDEuNzE3MDksIDIuNDU5NTIsIDMuMjAyMTIsIDMuOTQ0MzUsIDQuNjg2NyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMTU3ODIsIDEuNzgzMjcsIDIuOTU4NzMsIDQuNDMxNywgNS44OTQxMSwgNy4zNTYwNCwgOC44MTkyMiIsIFwKLSAgICAgICAgICAiMC4zMTU3MzMsIDEuNzgwOTUsIDIuOTYzNzcsIDQuNDMwNzcsIDUuODkzNTIsIDcuMzU2MjYsIDguODE5NDUiLCBcCi0gICAgICAgICAgIjAuMzE1NzE3LCAxLjc4NTQ5LCAyLjk2MDU5LCA0LjQzMDgzLCA1Ljg5MzQ5LCA3LjM1NTk0LCA4LjgxOTE0IiwgXAotICAgICAgICAgICIwLjMxNTcyOCwgMS43ODU3MiwgMi45NTYxOSwgNC40MzE1MiwgNS44OTM2MywgNy4zNTU3NCwgOC44MTkxNCIsIFwKLSAgICAgICAgICAiMC4zMTU3MSwgMS43ODU3NCwgMi45NjAzNCwgNC40MzE4NiwgNS44OTI5LCA3LjM1NjMzLCA4LjgxOTE0IiwgXAotICAgICAgICAgICIwLjMxNTY3MSwgMS43ODUxOSwgMi45NjMxMSwgNC40MzExNCwgNS44OTM2NCwgNy4zNTU3MywgOC44MTkxNCIsIFwKLSAgICAgICAgICAiMC4zMTU2NTksIDEuNzg0MzcsIDIuOTY0MjgsIDQuNDMxMzEsIDUuODk0MDUsIDcuMzU1ODgsIDguODE5MTkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDEyMDgsIDAuMDAxMjEzLCAwLjAwMTIxMywgMC4wMDEyMTQsIDAuMDAxMjE0LCAwLjAwMTIxNCwgMC4wMDEyMTQiLCBcCi0gICAgICAgICAgIjAuMDAxMTk3LCAwLjAwMTIwMiwgMC4wMDEyMDIsIDAuMDAxMjAzLCAwLjAwMTIwMywgMC4wMDEyMDIsIDAuMDAxMjAyIiwgXAotICAgICAgICAgICIwLjAwMTE5MSwgMC4wMDExOTUsIDAuMDAxMTk2LCAwLjAwMTE5NiwgMC4wMDExOTYsIDAuMDAxMTk3LCAwLjAwMTE5NiIsIFwKLSAgICAgICAgICAiMC4wMDExODYsIDAuMDAxMTkxLCAwLjAwMTE5MiwgMC4wMDExOTIsIDAuMDAxMTkyLCAwLjAwMTE5MiwgMC4wMDExOTIiLCBcCi0gICAgICAgICAgIjAuMDAxMTgzLCAwLjAwMTE4OCwgMC4wMDExODgsIDAuMDAxMTg5LCAwLjAwMTE4OSwgMC4wMDExODksIDAuMDAxMTg5IiwgXAotICAgICAgICAgICIwLjAwMTE3OCwgMC4wMDExODQsIDAuMDAxMTg1LCAwLjAwMTE4NSwgMC4wMDExODYsIDAuMDAxMTg1LCAwLjAwMTE4NiIsIFwKLSAgICAgICAgICAiMC4wMDExNzUsIDAuMDAxMTgyLCAwLjAwMTE4MywgMC4wMDExODMsIDAuMDAxMTg0LCAwLjAwMTE4MywgMC4wMDExODQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDE5MzksIDAuMDAxOTQ0LCAwLjAwMTk0NSwgMC4wMDE5NDUsIDAuMDAxOTQ1LCAwLjAwMTk0NSwgMC4wMDE5NDUiLCBcCi0gICAgICAgICAgIjAuMDAxOTMzLCAwLjAwMTkzOSwgMC4wMDE5MzksIDAuMDAxOTM5LCAwLjAwMTkzOSwgMC4wMDE5NCwgMC4wMDE5NCIsIFwKLSAgICAgICAgICAiMC4wMDE5MywgMC4wMDE5MzYsIDAuMDAxOTM2LCAwLjAwMTkzNiwgMC4wMDE5MzYsIDAuMDAxOTM2LCAwLjAwMTkzNyIsIFwKLSAgICAgICAgICAiMC4wMDE5MjcsIDAuMDAxOTMzLCAwLjAwMTkzNCwgMC4wMDE5MzQsIDAuMDAxOTM0LCAwLjAwMTkzNCwgMC4wMDE5MzQiLCBcCi0gICAgICAgICAgIjAuMDAxOTI1LCAwLjAwMTkzMiwgMC4wMDE5MzIsIDAuMDAxOTMyLCAwLjAwMTkzMywgMC4wMDE5MzMsIDAuMDAxOTMzIiwgXAotICAgICAgICAgICIwLjAwMTkyMSwgMC4wMDE5MjksIDAuMDAxOTI5LCAwLjAwMTkzLCAwLjAwMTkzLCAwLjAwMTkzLCAwLjAwMTkzIiwgXAotICAgICAgICAgICIwLjAwMTkyLCAwLjAwMTkyOSwgMC4wMDE5MywgMC4wMDE5MywgMC4wMDE5MywgMC4wMDE5MywgMC4wMDE5MzEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDEwNTksIDAuMDAxMDYxLCAwLjAwMTA2MSwgMC4wMDEwNjIsIDAuMDAxMDYxLCAwLjAwMTA2MiwgMC4wMDEwNjIiLCBcCi0gICAgICAgICAgIjAuMDAxMDQ4LCAwLjAwMTA1LCAwLjAwMTA1LCAwLjAwMTA1MSwgMC4wMDEwNSwgMC4wMDEwNSwgMC4wMDEwNSIsIFwKLSAgICAgICAgICAiMC4wMDEwNDIsIDAuMDAxMDQ0LCAwLjAwMTA0NCwgMC4wMDEwNDQsIDAuMDAxMDQ0LCAwLjAwMTA0NCwgMC4wMDEwNDQiLCBcCi0gICAgICAgICAgIjAuMDAxMDM3LCAwLjAwMTA0LCAwLjAwMTA0LCAwLjAwMTA0LCAwLjAwMTA0LCAwLjAwMTA0LCAwLjAwMTA0IiwgXAotICAgICAgICAgICIwLjAwMTAzNCwgMC4wMDEwMzcsIDAuMDAxMDM3LCAwLjAwMTAzNywgMC4wMDEwMzcsIDAuMDAxMDM3LCAwLjAwMTAzNyIsIFwKLSAgICAgICAgICAiMC4wMDEwMywgMC4wMDEwMzQsIDAuMDAxMDM0LCAwLjAwMTAzNCwgMC4wMDEwMzQsIDAuMDAxMDM0LCAwLjAwMTAzNCIsIFwKLSAgICAgICAgICAiMC4wMDEwMjgsIDAuMDAxMDMyLCAwLjAwMTAzMiwgMC4wMDEwMzIsIDAuMDAxMDMyLCAwLjAwMTAzMiwgMC4wMDEwMzIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDIwOTIsIDAuMDAyMDk2LCAwLjAwMjA5NiwgMC4wMDIwOTcsIDAuMDAyMDk3LCAwLjAwMjA5NywgMC4wMDIwOTciLCBcCi0gICAgICAgICAgIjAuMDAyMDg3LCAwLjAwMjA5LCAwLjAwMjA5MSwgMC4wMDIwOTEsIDAuMDAyMDkxLCAwLjAwMjA5MSwgMC4wMDIwOTEiLCBcCi0gICAgICAgICAgIjAuMDAyMDgzLCAwLjAwMjA4NywgMC4wMDIwODcsIDAuMDAyMDg4LCAwLjAwMjA4OCwgMC4wMDIwODgsIDAuMDAyMDg4IiwgXAotICAgICAgICAgICIwLjAwMjA4MSwgMC4wMDIwODUsIDAuMDAyMDg1LCAwLjAwMjA4NiwgMC4wMDIwODYsIDAuMDAyMDg2LCAwLjAwMjA4NiIsIFwKLSAgICAgICAgICAiMC4wMDIwNzksIDAuMDAyMDg0LCAwLjAwMjA4NCwgMC4wMDIwODQsIDAuMDAyMDg0LCAwLjAwMjA4NCwgMC4wMDIwODQiLCBcCi0gICAgICAgICAgIjAuMDAyMDc3LCAwLjAwMjA4MiwgMC4wMDIwODMsIDAuMDAyMDgzLCAwLjAwMjA4MywgMC4wMDIwODMsIDAuMDAyMDgzIiwgXAotICAgICAgICAgICIwLjAwMjA3NiwgMC4wMDIwODIsIDAuMDAyMDgyLCAwLjAwMjA4MywgMC4wMDIwODMsIDAuMDAyMDgzLCAwLjAwMjA4MyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlMwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI4MzQsIDAuMDAyODM5LCAwLjAwMjg0MSwgMC4wMDI4NDEsIDAuMDAyODQsIDAuMDAyODQsIDAuMDAyODQxIiwgXAotICAgICAgICAgICIwLjAwMjgzMiwgMC4wMDI4MzgsIDAuMDAyODM4LCAwLjAwMjgzOSwgMC4wMDI4NCwgMC4wMDI4MzksIDAuMDAyODM5IiwgXAotICAgICAgICAgICIwLjAwMjgyOCwgMC4wMDI4MzMsIDAuMDAyODM0LCAwLjAwMjgzNCwgMC4wMDI4MzQsIDAuMDAyODM1LCAwLjAwMjgzNCIsIFwKLSAgICAgICAgICAiMC4wMDI4MjQsIDAuMDAyODI5LCAwLjAwMjgyOSwgMC4wMDI4MywgMC4wMDI4MywgMC4wMDI4MywgMC4wMDI4MyIsIFwKLSAgICAgICAgICAiMC4wMDI4MiwgMC4wMDI4MjUsIDAuMDAyODI2LCAwLjAwMjgyNiwgMC4wMDI4MjYsIDAuMDAyODI2LCAwLjAwMjgyNiIsIFwKLSAgICAgICAgICAiMC4wMDI4MTYsIDAuMDAyODIxLCAwLjAwMjgyMSwgMC4wMDI4MjIsIDAuMDAyODIyLCAwLjAwMjgyMiwgMC4wMDI4MjIiLCBcCi0gICAgICAgICAgIjAuMDAyODEzLCAwLjAwMjgxOCwgMC4wMDI4MTksIDAuMDAyODE5LCAwLjAwMjgxOSwgMC4wMDI4MTksIDAuMDAyODE5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxODcsIDAuMDAxODc2LCAwLjAwMTg3NywgMC4wMDE4NzcsIDAuMDAxODc4LCAwLjAwMTg3OCwgMC4wMDE4NzgiLCBcCi0gICAgICAgICAgIjAuMDAxODYyLCAwLjAwMTg2OCwgMC4wMDE4NjgsIDAuMDAxODY5LCAwLjAwMTg2OSwgMC4wMDE4NjksIDAuMDAxODY5IiwgXAotICAgICAgICAgICIwLjAwMTg1NCwgMC4wMDE4NiwgMC4wMDE4NjEsIDAuMDAxODYxLCAwLjAwMTg2MSwgMC4wMDE4NjIsIDAuMDAxODYyIiwgXAotICAgICAgICAgICIwLjAwMTg0OCwgMC4wMDE4NTQsIDAuMDAxODU0LCAwLjAwMTg1NSwgMC4wMDE4NTUsIDAuMDAxODU1LCAwLjAwMTg1NSIsIFwKLSAgICAgICAgICAiMC4wMDE4NDQsIDAuMDAxODUsIDAuMDAxODUsIDAuMDAxODUxLCAwLjAwMTg1MSwgMC4wMDE4NTEsIDAuMDAxODUxIiwgXAotICAgICAgICAgICIwLjAwMTg0MSwgMC4wMDE4NDcsIDAuMDAxODQ4LCAwLjAwMTg0OCwgMC4wMDE4NDgsIDAuMDAxODQ4LCAwLjAwMTg0OCIsIFwKLSAgICAgICAgICAiMC4wMDE4NCwgMC4wMDE4NDYsIDAuMDAxODQ3LCAwLjAwMTg0NywgMC4wMDE4NDcsIDAuMDAxODQ3LCAwLjAwMTg0NyIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBNWDNYMSAqCi0gKiAtLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoTVgzWDEpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4xNzI3MDQ7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY1NjY1MTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2NTQ4Njc7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjU2NjUxOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDY2OSwgMC4wMDA2NTgsIDAuMDAwNjUxLCAwLjAwMDY0NywgMC4wMDA2NDQsIDAuMDAwNjQxLCAwLjAwMDYzOSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTc3NCwgMC4wMDE3NjgsIDAuMDAxNzY1LCAwLjAwMTc2MywgMC4wMDE3NjIsIDAuMDAxNzYsIDAuMDAxNzYiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYwMDQ2NDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA1OTg3NjE7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjAwNDY0OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDE1OSwgMC4wMDAxNiwgMC4wMDAxNjEsIDAuMDAwMTYxLCAwLjAwMDE2MiwgMC4wMDAxNjIsIDAuMDAwMTYyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMTY4LCAwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY2Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihDKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA1OTg3OTI7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNTk3MDM4OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDU5ODc5MjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxNiwgMC4wMDAxNjEsIDAuMDAwMTYyLCAwLjAwMDE2MiwgMC4wMDAxNjIsIDAuMDAwMTYyLCAwLjAwMDE2MiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDE2OCwgMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUzApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTE1MjA5OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTE1MTU1OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTE1MjA5OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDE5MywgMC4wMDAxNzQsIDAuMDAwMTY0LCAwLjAwMDE2LCAwLjAwMDE1OSwgMC4wMDAxNTcsIDAuMDAwMTU3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxNTY0LCAwLjAwMTU1MiwgMC4wMDE1NDUsIDAuMDAxNTQyLCAwLjAwMTU0LCAwLjAwMTUzOCwgMC4wMDE1MzgiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFMxKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDExODk2MjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDExODg0MTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDExODk2MjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxOTUsIDAuMDAwMTc3LCAwLjAwMDE2NywgMC4wMDAxNjIsIDAuMDAwMTYsIDAuMDAwMTU4LCAwLjAwMDE1OSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTU5OCwgMC4wMDE1ODYsIDAuMDAxNTc5LCAwLjAwMTU3NiwgMC4wMDE1NzQsIDAuMDAxNTcyLCAwLjAwMTU3MiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjEyNjA2NzsKLSAgICBmdW5jdGlvbiA6ICIoKFMxIEMpICsgKCFTMSAoKFMwIEIpICsgKCFTMCBBKSkpKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzEwNDQ5LCAwLjM1NzAyMSwgMC42MDQxNTYsIDAuODIwMTE0LCAxLjEwODA3LCAxLjY4MzYsIDIuMDQzNDMiLCBcCi0gICAgICAgICAgIjAuMzIxODU4LCAwLjM2ODUwMiwgMC42MTU1OTgsIDAuODMxNjA0LCAxLjExOTU1LCAxLjY5NSwgMi4wNTQ3NiIsIFwKLSAgICAgICAgICAiMC4zMzU2NDUsIDAuMzgyMTcxLCAwLjYyOTQxOSwgMC44NDU0MTgsIDEuMTMzMjYsIDEuNzA4OTIsIDIuMDY4NDciLCBcCi0gICAgICAgICAgIjAuMzQ5MjI1LCAwLjM5NTcyNiwgMC42NDI5NDMsIDAuODU4OTQ1LCAxLjE0NjgsIDEuNzIyNDcsIDIuMDgyMDQiLCBcCi0gICAgICAgICAgIjAuMzYzMTIyLCAwLjQwOTY4NCwgMC42NTY4MzEsIDAuODcyODIsIDEuMTYwNzUsIDEuNzM2MjUsIDIuMDk2MTMiLCBcCi0gICAgICAgICAgIjAuMzg0NTcsIDAuNDMxMjIzLCAwLjY3ODMwOCwgMC44OTQzMzgsIDEuMTgyMjMsIDEuNzU3ODEsIDIuMTE3NSIsIFwKLSAgICAgICAgICAiMC40MDQxNjUsIDAuNDUwNzI3LCAwLjY5Nzg4NCwgMC45MTM4NDYsIDEuMjAxODEsIDEuNzc3MzIsIDIuMTM3MTkiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTg2OTQ3LCAwLjI2OTI4NiwgMC43NTQyMTcsIDEuMTg5NzcsIDEuNzc0NSwgMi45NDAxMSwgMy42Nzg0OSIsIFwKLSAgICAgICAgICAiMC4xODY5MDYsIDAuMjY5Mzk1LCAwLjc1MjM0NiwgMS4xODczNywgMS43NzAzOCwgMi45NDQ0NSwgMy42NjkzNSIsIFwKLSAgICAgICAgICAiMC4xODY4NjYsIDAuMjY5MzM5LCAwLjc1MjI5MiwgMS4xODczMSwgMS43NzM5NCwgMi45NDUzLCAzLjY3NjY4IiwgXAotICAgICAgICAgICIwLjE4Njk1OCwgMC4yNjk0MTMsIDAuNzUyMzIsIDEuMTg3MjUsIDEuNzc0MDgsIDIuOTQ1NDUsIDMuNjc2OTciLCBcCi0gICAgICAgICAgIjAuMTg2ODczLCAwLjI2OTMxNCwgMC43NTQwMzgsIDEuMTg3NDgsIDEuNzc0NCwgMi45Mzk3LCAzLjY3NzkiLCBcCi0gICAgICAgICAgIjAuMTg2ODg0LCAwLjI2OTM1NiwgMC43NTI4MzQsIDEuMTg3MjIsIDEuNzc0MiwgMi45NDUwMywgMy42NjkyNCIsIFwKLSAgICAgICAgICAiMC4xODY5LCAwLjI2OTMwMywgMC43NTQwMzksIDEuMTg5NDgsIDEuNzc0NCwgMi45Mzk2NCwgMy42Nzc5MyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yOTc4OCwgMC4zNTA0NjgsIDAuNjMyNjE0LCAwLjg3OTY3MywgMS4yMDkwNiwgMS44NjcyNywgMi4yNzg4NiIsIFwKLSAgICAgICAgICAiMC4zMDkzNTQsIDAuMzYxOTIxLCAwLjY0NDA0MiwgMC44OTExMDgsIDEuMjIwNDEsIDEuODc4ODIsIDIuMjkwMjQiLCBcCi0gICAgICAgICAgIjAuMzIyMzQ2LCAwLjM3NDk2MSwgMC42NTcwNjUsIDAuOTA0MDgzLCAxLjIzMzM5LCAxLjg5MTgzLCAyLjMwMzEzIiwgXAotICAgICAgICAgICIwLjMzNDgwMiwgMC4zODczNzYsIDAuNjY5NTI5LCAwLjkxNjU5NSwgMS4yNDU5OSwgMS45MDQyLCAyLjMxNTc0IiwgXAotICAgICAgICAgICIwLjM0NzExNiwgMC4zOTk3MTYsIDAuNjgxODQzLCAwLjkyODkxNCwgMS4yNTgzMiwgMS45MTY1MywgMi4zMjgwNSIsIFwKLSAgICAgICAgICAiMC4zNjY4MiwgMC40MTkzOTksIDAuNzAxNTYxLCAwLjk0ODYzMywgMS4yNzgwNSwgMS45MzYyNiwgMi4zNDc3OCIsIFwKLSAgICAgICAgICAiMC4zODM4MTcsIDAuNDM2NDI3LCAwLjcxODU3OCwgMC45NjU2ODcsIDEuMjk0OTQsIDEuOTUzMjksIDIuMzY0ODMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjA0NzI4LCAwLjI5NzM2OSwgMC44NDE2MzMsIDEuMzI3OTIsIDEuOTc4NDMsIDMuMjk1MzcsIDQuMTA1MTUiLCBcCi0gICAgICAgICAgIjAuMjA0NjYyLCAwLjI5NzUzOCwgMC44NDE2NDYsIDEuMzI3NjgsIDEuOTgyNDYsIDMuMjkyODgsIDQuMTA4OTQiLCBcCi0gICAgICAgICAgIjAuMjA0NzE0LCAwLjI5NzM3OSwgMC44NDE2MiwgMS4zMjkwNiwgMS45ODQ4NCwgMy4yODQ2MiwgNC4xMDk0NyIsIFwKLSAgICAgICAgICAiMC4yMDQ2NTksIDAuMjk3MzM2LCAwLjg0MTYzOCwgMS4zMjg3MywgMS45Nzc4NywgMy4yOTUxNiwgNC4xMDc0OSIsIFwKLSAgICAgICAgICAiMC4yMDQ2NTgsIDAuMjk3NTEzLCAwLjg0MTYzNywgMS4zMjg3NSwgMS45Nzc3MSwgMy4yOTUwMywgNC4xMDgwNCIsIFwKLSAgICAgICAgICAiMC4yMDQ2NywgMC4yOTczNTQsIDAuODQxNjM2LCAxLjMyODY2LCAxLjk3NzYsIDMuMjk1LCA0LjEwNzgzIiwgXAotICAgICAgICAgICIwLjIwNDcxOCwgMC4yOTc1NTcsIDAuODQxNjE3LCAxLjMyNTcxLCAxLjk4NDU1LCAzLjI4Nzg2LCA0LjEwNjg0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMxMTc0NSwgMC4zNTgzMSwgMC42MDU1NDgsIDAuODIxNTc5LCAxLjEwOTU5LCAxLjY4NTA5LCAyLjA0NDcxIiwgXAotICAgICAgICAgICIwLjMyMzQyOSwgMC4zNjk5OTQsIDAuNjE3MjQzLCAwLjgzMzI2NSwgMS4xMjEyOSwgMS42OTY3NywgMi4wNTYzOCIsIFwKLSAgICAgICAgICAiMC4zMzczNjMsIDAuMzgzOTEzLCAwLjYzMTE4MiwgMC44NDcyMywgMS4xMzUxOSwgMS43MTA3MSwgMi4wNzA0MSIsIFwKLSAgICAgICAgICAiMC4zNTExNjUsIDAuMzk3NzM1LCAwLjY0NDk1MiwgMC44NjA5NzUsIDEuMTQ4OSwgMS43MjQ0NiwgMi4wODQzMSIsIFwKLSAgICAgICAgICAiMC4zNjQ4MzksIDAuNDExMzk0LCAwLjY1ODYzOSwgMC44NzQ2ODUsIDEuMTYyNTksIDEuNzM4MTcsIDIuMDk4MDIiLCBcCi0gICAgICAgICAgIjAuMzg2NjI5LCAwLjQzMzMwNywgMC42ODA0NDgsIDAuODk2NDk4LCAxLjE4NDQ4LCAxLjc2MDAzLCAyLjExOTcxIiwgXAotICAgICAgICAgICIwLjQwNjEzMSwgMC40NTI3MTYsIDAuNjk5OTI3LCAwLjkxNTkzNiwgMS4yMDM4OSwgMS43Nzk0MiwgMi4xMzkyOSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xODY5OTEsIDAuMjY5NTQ1LCAwLjc1NDI3NCwgMS4xODczNCwgMS43Njk4MSwgMi45NDA4OCwgMy42NzcyNiIsIFwKLSAgICAgICAgICAiMC4xODY5NzQsIDAuMjY5NTIsIDAuNzU0MjQ1LCAxLjE4ODQxLCAxLjc2OTc4LCAyLjk0MDY0LCAzLjY3NjkyIiwgXAotICAgICAgICAgICIwLjE4NzAyNiwgMC4yNjk1LCAwLjc1MzAzNSwgMS4xODc2MiwgMS43NzQ2MywgMi45Mzk5OSwgMy42Njg5MiIsIFwKLSAgICAgICAgICAiMC4xODY5NzcsIDAuMjY5NDU5LCAwLjc1NDI2MiwgMS4xOTAxNywgMS43NzQ1LCAyLjk0MDIyLCAzLjY3NzgxIiwgXAotICAgICAgICAgICIwLjE4Njk4NSwgMC4yNjk1MjgsIDAuNzU0MTI5LCAxLjE5MDI0LCAxLjc3NDQ2LCAyLjk0MDc2LCAzLjY2Nzg0IiwgXAotICAgICAgICAgICIwLjE4Njk3NSwgMC4yNjk0NiwgMC43NTI5NjEsIDEuMTg3MzUsIDEuNzc0NjIsIDIuOTQ1MjMsIDMuNjY5MzQiLCBcCi0gICAgICAgICAgIjAuMTg2OTg4LCAwLjI2OTQxLCAwLjc1NDE0NywgMS4xODc1MiwgMS43NzQ1MSwgMi45Mzk3NiwgMy42NzgwMyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMDEyNjgsIDAuMzUzODk5LCAwLjYzNjEyOCwgMC44ODMyMjgsIDEuMjEyNDgsIDEuODcwOTUsIDIuMjgyNDIiLCBcCi0gICAgICAgICAgIjAuMzEyNjcsIDAuMzY1MzI2LCAwLjY0NzUxMiwgMC44OTQ2MzcsIDEuMjIzOTMsIDEuODgyNCwgMi4yOTM3OSIsIFwKLSAgICAgICAgICAiMC4zMjU2ODcsIDAuMzc4MzE3LCAwLjY2MDUzNiwgMC45MDc2OTQsIDEuMjM2OTMsIDEuODk1NTQsIDIuMzA2ODYiLCBcCi0gICAgICAgICAgIjAuMzM4MDU1LCAwLjM5MDcwNiwgMC42NzI5MzYsIDAuOTIwMDM4LCAxLjI0OTQ3LCAxLjkwNzcyLCAyLjMxOTI1IiwgXAotICAgICAgICAgICIwLjM1MDM2MywgMC40MDI5OTUsIDAuNjg1MjY1LCAwLjkzMjM2MSwgMS4yNjE2NiwgMS45MjAxMywgMi4zMzE0NiIsIFwKLSAgICAgICAgICAiMC4zNjk4OSwgMC40MjI1MjIsIDAuNzA0NzgzLCAwLjk1MTg5LCAxLjI4MTE5LCAxLjkzOTY1LCAyLjM1MTE4IiwgXAotICAgICAgICAgICIwLjM4Njg3NywgMC40Mzk1MDcsIDAuNzIxNzYsIDAuOTY4ODcsIDEuMjk4MiwgMS45NTY2OSwgMi4zNjgxNCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMDQ4OTgsIDAuMjk3ODA2LCAwLjg0MTg0OSwgMS4zMjU2NSwgMS45ODQ4NCwgMy4yODg3OCwgNC4xMDQ2NSIsIFwKLSAgICAgICAgICAiMC4yMDQ5NzcsIDAuMjk3NjA3LCAwLjgzOTg0OSwgMS4zMjcxMSwgMS45ODQ5NywgMy4yODc2NiwgNC4xMDkzNiIsIFwKLSAgICAgICAgICAiMC4yMDQ4OTUsIDAuMjk3ODAzLCAwLjg0MTg1MiwgMS4zMjgyNywgMS45ODAwMywgMy4yOTIxOCwgNC4xMDc2MiIsIFwKLSAgICAgICAgICAiMC4yMDQ5MDgsIDAuMjk3NzYyLCAwLjg0MTgzOCwgMS4zMjg4NiwgMS45Nzc5LCAzLjI5NDkzLCA0LjEwODM0IiwgXAotICAgICAgICAgICIwLjIwNDk1NywgMC4yOTc1MzksIDAuODQxODE4LCAxLjMyNjg4LCAxLjk4NDk1LCAzLjI4NjQ5LCA0LjEwOTU5IiwgXAotICAgICAgICAgICIwLjIwNDkzMywgMC4yOTc1OTEsIDAuODQxODI1LCAxLjMyNzgyLCAxLjk4NDkzLCAzLjI4OTg4LCA0LjEwODIyIiwgXAotICAgICAgICAgICIwLjIwNDkyOSwgMC4yOTc4MTMsIDAuODQxODUsIDEuMzI3NzgsIDEuOTgyODMsIDMuMjkyNzUsIDQuMTA4OTEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTkzMTYxLCAwLjIzNjk3OSwgMC40ODIyNzksIDAuNjk4MjI5LCAwLjk4NjA1NCwgMS41NjE2MSwgMS45MjEyIiwgXAotICAgICAgICAgICIwLjIwNDgwNiwgMC4yNDg2MDYsIDAuNDkzOTA4LCAwLjcwOTgxNSwgMC45OTc2NzEsIDEuNTczMjIsIDEuOTMyODUiLCBcCi0gICAgICAgICAgIjAuMjE4NTk3LCAwLjI2MjQxNCwgMC41MDc3MjQsIDAuNzIzNjY1LCAxLjAxMTQ4LCAxLjU4NzA0LCAxLjk0NjY1IiwgXAotICAgICAgICAgICIwLjIzMjI3NSwgMC4yNzYwMjUsIDAuNTIxMjk3LCAwLjczNzI3NSwgMS4wMjUxMywgMS42MDA2OCwgMS45NjAyOCIsIFwKLSAgICAgICAgICAiMC4yNDYwOTMsIDAuMjg5OTIyLCAwLjUzNTIyNCwgMC43NTExMjgsIDEuMDM4OTgsIDEuNjE0NTgsIDEuOTc0MTUiLCBcCi0gICAgICAgICAgIjAuMjY3ODgxLCAwLjMxMTY5NCwgMC41NTcwMTksIDAuNzcyOTI4LCAxLjA2MDc4LCAxLjYzNjM2LCAxLjk5NTk2IiwgXAotICAgICAgICAgICIwLjI4NjczNSwgMC4zMzA1NjQsIDAuNTc1OTA4LCAwLjc5MTgyMSwgMS4wNzk2OSwgMS42NTUyMiwgMi4wMTQ4NSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNjkwODksIDAuMjUzNzI3LCAwLjc0NzkzMiwgMS4xODY1NCwgMS43NjkxNCwgMi45Mzg0MiwgMy42NzUyNCIsIFwKLSAgICAgICAgICAiMC4xNjkxMjQsIDAuMjUzNzQxLCAwLjc0NTc5LCAxLjE4NjMxLCAxLjc2OTE3LCAyLjkzOTI0LCAzLjY2OTM1IiwgXAotICAgICAgICAgICIwLjE2OTEyMiwgMC4yNTM4ODcsIDAuNzQ3OTE5LCAxLjE4NjQ1LCAxLjc2OTE0LCAyLjkzOTE0LCAzLjY2OTciLCBcCi0gICAgICAgICAgIjAuMTY5MTE5LCAwLjI1NDAwNywgMC43NDc2MDUsIDEuMTg2MzQsIDEuNzY3MTMsIDIuOTQzNDIsIDMuNjY5NjQiLCBcCi0gICAgICAgICAgIjAuMTY5MDY5LCAwLjI1MzY4MSwgMC43NDU3NzQsIDEuMTg2MywgMS43NzE4NywgMi45NDMzNiwgMy42NjkwMiIsIFwKLSAgICAgICAgICAiMC4xNjkwMTUsIDAuMjUzODQ4LCAwLjc0NTc3NywgMS4xODYzLCAxLjc3MTg4LCAyLjk0MzQ0LCAzLjY2OTMxIiwgXAotICAgICAgICAgICIwLjE2OTExMiwgMC4yNTM4OCwgMC43NDU3ODgsIDEuMTg2MjcsIDEuNzY5MTMsIDIuOTM4NzYsIDMuNjY5MzUiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTkzNTY2LCAwLjI0MzQ3NywgMC41MjM4MTcsIDAuNzcwNzc3LCAxLjEwMDAzLCAxLjc1ODM1LCAyLjE2OTc4IiwgXAotICAgICAgICAgICIwLjIwNDk3NCwgMC4yNTQ4ODEsIDAuNTM1MjM5LCAwLjc4MjIzLCAxLjExMTQ1LCAxLjc2OTc4LCAyLjE4MTM0IiwgXAotICAgICAgICAgICIwLjIxODAwNSwgMC4yNjc5MTksIDAuNTQ4MjMxLCAwLjc5NTIyNywgMS4xMjQ0NiwgMS43ODI4LCAyLjE5NDI0IiwgXAotICAgICAgICAgICIwLjIzMDQwNywgMC4yODAzMjMsIDAuNTYwNjg5LCAwLjgwNzc0OCwgMS4xMzY5LCAxLjc5NTIzLCAyLjIwNjciLCBcCi0gICAgICAgICAgIjAuMjQyNzMzLCAwLjI5MjY3MiwgMC41NzMwNjEsIDAuODIsIDEuMTQ5MjQsIDEuODA3NjUsIDIuMjE5MDIiLCBcCi0gICAgICAgICAgIjAuMjYyMDI1LCAwLjMxMTk2OCwgMC41OTIzMzYsIDAuODM5Mzk3LCAxLjE2ODU2LCAxLjgyNjk0LCAyLjIzODMzIiwgXAotICAgICAgICAgICIwLjI3ODU1OCwgMC4zMjg1MDksIDAuNjA4ODYzLCAwLjg1NTg3OCwgMS4xODUxMSwgMS44NDM1LCAyLjI1NDg4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE4NjMwOSwgMC4yODE5NDQsIDAuODMyODMzLCAxLjMyNiwgMS45ODAzOCwgMy4yODYyOCwgNC4xMDMxNCIsIFwKLSAgICAgICAgICAiMC4xODYyODksIDAuMjgxNzU3LCAwLjgzNDg2NiwgMS4zMjU0NiwgMS45ODAzNSwgMy4yODY0OSwgNC4xMDY2OSIsIFwKLSAgICAgICAgICAiMC4xODYyMjgsIDAuMjgxNzk3LCAwLjgzNTI1OCwgMS4zMjU4NiwgMS45Nzg3NiwgMy4yODYzOSwgNC4xMDQwMiIsIFwKLSAgICAgICAgICAiMC4xODYyNDcsIDAuMjgxNzMxLCAwLjgzNDg3MywgMS4zMjMxOSwgMS45ODAxNiwgMy4yODY2MSwgNC4xMDcyNCIsIFwKLSAgICAgICAgICAiMC4xODYyODEsIDAuMjgxNzYyLCAwLjgzNDc1NSwgMS4zMjU5MiwgMS45NzgzMywgMy4yODk3NCwgNC4xMDQyNSIsIFwKLSAgICAgICAgICAiMC4xODYyNiwgMC4yODE4MDIsIDAuODM0ODUzLCAxLjMyNTM0LCAxLjk4MDUzLCAzLjI5MDI3LCA0LjEwMzM5IiwgXAotICAgICAgICAgICIwLjE4NjUyOCwgMC4yODE4NzEsIDAuODM1Mjc5LCAxLjMyNTgsIDEuOTc5NzksIDMuMjkwNiwgNC4xMDMwOCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjk3NTk3LCAwLjM0NDE5NCwgMC41OTEzNzQsIDAuODA3Mzk2LCAxLjA5NTMyLCAxLjY3MDg4LCAyLjAzMDcxIiwgXAotICAgICAgICAgICIwLjMwODM5MSwgMC4zNTUwNjcsIDAuNjAyMjEsIDAuODE4MjM4LCAxLjEwNjIsIDEuNjgxNzEsIDIuMDQxNDYiLCBcCi0gICAgICAgICAgIjAuMzIxODk2LCAwLjM2ODU3NSwgMC42MTU2OTQsIDAuODMxNzUyLCAxLjExOTcyLCAxLjY5NTIxLCAyLjA1NDk3IiwgXAotICAgICAgICAgICIwLjMzNTU2NywgMC4zODIxMzUsIDAuNjI5MzU1LCAwLjg0NTM4OCwgMS4xMzMzLCAxLjcwODg2LCAyLjA2ODcyIiwgXAotICAgICAgICAgICIwLjM0ODk3NywgMC4zOTU2NTMsIDAuNjQyNzg5LCAwLjg1ODgzNywgMS4xNDY4MSwgMS43MjIzOCwgMi4wODIwNSIsIFwKLSAgICAgICAgICAiMC4zNzA5MzcsIDAuNDE3NDk0LCAwLjY2NDc0NCwgMC44ODA3OTIsIDEuMTY4NzUsIDEuNzQ0MjcsIDIuMTA0MTMiLCBcCi0gICAgICAgICAgIjAuMzkwMDA5LCAwLjQzNjcsIDAuNjgzODcyLCAwLjg5OTg5OSwgMS4xODc4MywgMS43NjM2MSwgMi4xMjMzMiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xODY5OTgsIDAuMjY5NDA0LCAwLjc1NDMzMSwgMS4xODY3MiwgMS43NzQ2MSwgMi45NDAwOCwgMy42Nzg1IiwgXAotICAgICAgICAgICIwLjE4NjkzOCwgMC4yNjkzOTIsIDAuNzUyNDM5LCAxLjE4NzQ3LCAxLjc3NDY0LCAyLjk0MDA0LCAzLjY2OTYzIiwgXAotICAgICAgICAgICIwLjE4NjkzNiwgMC4yNjk0NjIsIDAuNzU0MDc5LCAxLjE4NzU1LCAxLjc3NDYyLCAyLjk0MDMsIDMuNjY5MzMiLCBcCi0gICAgICAgICAgIjAuMTg2OTc1LCAwLjI2OTQ0OSwgMC43NTQxNDEsIDEuMTkwMjIsIDEuNzc0NDksIDIuOTQwMDQsIDMuNjc4MDMiLCBcCi0gICAgICAgICAgIjAuMTg2OTUxLCAwLjI2OTQ2OSwgMC43NTI5NTMsIDEuMTg3MjksIDEuNzc0NjEsIDIuOTQ1MzUsIDMuNjY5MSIsIFwKLSAgICAgICAgICAiMC4xODcwMTEsIDAuMjY5NTMsIDAuNzU0MTM4LCAxLjE4ODMyLCAxLjc3NDQ2LCAyLjk0NDcsIDMuNjc3NTgiLCBcCi0gICAgICAgICAgIjAuMTg3MDQyLCAwLjI2OTUzMiwgMC43NTI0NzEsIDEuMTg4MzUsIDEuNzc0MzksIDIuOTM4NDEsIDMuNjY4OTMiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjg2NDQzLCAwLjMzOTA2NCwgMC42MjExOCwgMC44NjgyNDEsIDEuMTk3NSwgMS44NTU5NCwgMi4yNjcyNSIsIFwKLSAgICAgICAgICAiMC4yOTY3NjIsIDAuMzQ5MzM5LCAwLjYzMTQ5NCwgMC44Nzg0ODcsIDEuMjA3ODIsIDEuODY2MjIsIDIuMjc3ODgiLCBcCi0gICAgICAgICAgIjAuMzA5ODksIDAuMzYyNDY2LCAwLjY0NDYwNiwgMC44OTE2NjcsIDEuMjIwOTMsIDEuODc5MzYsIDIuMjkwNzMiLCBcCi0gICAgICAgICAgIjAuMzIyOTUsIDAuMzc1NTQ4LCAwLjY1NzYzOCwgMC45MDQ3OTEsIDEuMjM0MSwgMS44OTIzOSwgMi4zMDM4OSIsIFwKLSAgICAgICAgICAiMC4zMzYwNTEsIDAuMzg4NjQxLCAwLjY3MDc4NCwgMC45MTc5MDcsIDEuMjQ3MDcsIDEuOTA1NjEsIDIuMzE2OTkiLCBcCi0gICAgICAgICAgIjAuMzU3MDU2LCAwLjQwOTYyMywgMC42OTE3NzQsIDAuOTM4ODUyLCAxLjI2ODE3LCAxLjkyNjU2LCAyLjMzNzk1IiwgXAotICAgICAgICAgICIwLjM3NTUsIDAuNDI4MDgxLCAwLjcxMDI0MywgMC45NTczODMsIDEuMjg2NjIsIDEuOTQ1MTYsIDIuMzU2NTYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjA0NzAyLCAwLjI5NzM2NCwgMC44NDE2MiwgMS4zMjcwMywgMS45ODQ4NSwgMy4yODQzNSwgNC4xMDk0NyIsIFwKLSAgICAgICAgICAiMC4yMDQ2OTYsIDAuMjk3MzcsIDAuODQxNjE2LCAxLjMyNzEsIDEuOTg0NzksIDMuMjkyMSwgNC4wOTg5MyIsIFwKLSAgICAgICAgICAiMC4yMDQ2NjUsIDAuMjk3MzIzLCAwLjg0MTYyNSwgMS4zMjcyLCAxLjk4NDg2LCAzLjI4NTc2LCA0LjEwOTI0IiwgXAotICAgICAgICAgICIwLjIwNDY3NywgMC4yOTc1NzYsIDAuODQxMzQ1LCAxLjMyNTk1LCAxLjk4NDM3LCAzLjI5NDMyLCA0LjEwMDk0IiwgXAotICAgICAgICAgICIwLjIwNDY4LCAwLjI5NzU3NiwgMC44NDE2NTUsIDEuMzI3NjksIDEuOTg0NjgsIDMuMjkwNTIsIDQuMTA1MTYiLCBcCi0gICAgICAgICAgIjAuMjA0NzE5LCAwLjI5NzU2NiwgMC44NDE2NDYsIDEuMzI4MjMsIDEuOTc5MjMsIDMuMjkzNTEsIDQuMTA4MzQiLCBcCi0gICAgICAgICAgIjAuMjA0NywgMC4yOTc1ODUsIDAuODQxNjUxLCAxLjMyNzc5LCAxLjk4MTIzLCAzLjI5MjMyLCA0LjEwODIyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlMwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMzA4MDIsIDAuMzc3MzQzLCAwLjYyNDUzMiwgMC44NDA1MzMsIDEuMTI4NDUsIDEuNzA0LCAyLjA2Mzg1IiwgXAotICAgICAgICAgICIwLjM0MjczNCwgMC4zODkyNzQsIDAuNjM2NDQ3LCAwLjg1MjQ5OSwgMS4xNDAzNiwgMS43MTU5LCAyLjA3NTc1IiwgXAotICAgICAgICAgICIwLjM1NzY0OSwgMC40MDQyMTIsIDAuNjUxMzYsIDAuODY3MzIxLCAxLjE1NTI4LCAxLjczMDgsIDIuMDkwNjYiLCBcCi0gICAgICAgICAgIjAuMzcyMDQ3LCAwLjQxODU2NiwgMC42NjU3OCwgMC44ODE4MTEsIDEuMTY5NzUsIDEuNzQ1MjcsIDIuMTA0ODgiLCBcCi0gICAgICAgICAgIjAuMzg1MTQ3LCAwLjQzMTcwNywgMC42Nzg4NTEsIDAuODk0ODQyLCAxLjE4Mjc3LCAxLjc1ODI4LCAyLjExODE1IiwgXAotICAgICAgICAgICIwLjQwMzg4LCAwLjQ1MDQzMSwgMC42OTc1ODUsIDAuOTEzNTU1LCAxLjIwMTUsIDEuNzc3MDIsIDIuMTM2ODkiLCBcCi0gICAgICAgICAgIjAuNDE4MzE3LCAwLjQ2NDk2NywgMC43MTIwNDQsIDAuOTI4MDczLCAxLjIxNTk3LCAxLjc5MTU1LCAyLjE1MTIzIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE4Njk0NSwgMC4yNjk0NjcsIDAuNzU0MTU5LCAxLjE4ODEsIDEuNzc0MzgsIDIuOTQwNDgsIDMuNjY3MzgiLCBcCi0gICAgICAgICAgIjAuMTg2OTQ1LCAwLjI2OTQ2NSwgMC43NTQxODQsIDEuMTkwMjcsIDEuNzc0MzgsIDIuOTQwMjMsIDMuNjc4MTUiLCBcCi0gICAgICAgICAgIjAuMTg2OTI2LCAwLjI2OTI4MiwgMC43NTQxNzMsIDEuMTg5NywgMS43NzQ0MSwgMi45Mzk4NywgMy42NzgwNSIsIFwKLSAgICAgICAgICAiMC4xODY4NzksIDAuMjY5MzU1LCAwLjc1MjgzOCwgMS4xODc0NSwgMS43NzQ0OCwgMi45NDAxOSwgMy42NzExNiIsIFwKLSAgICAgICAgICAiMC4xODY4NzcsIDAuMjY5MzEsIDAuNzU0MTYxLCAxLjE4NzUxLCAxLjc3NDQxLCAyLjkzOTksIDMuNjc3OTUiLCBcCi0gICAgICAgICAgIjAuMTg2ODg0LCAwLjI2OTIzNSwgMC43NTQxNTYsIDEuMTg5NzYsIDEuNzc0NCwgMi45Mzk4NSwgMy42Nzc5OSIsIFwKLSAgICAgICAgICAiMC4xODY4NjYsIDAuMjY5MzI4LCAwLjc1Mjc4MSwgMS4xODcxOCwgMS43NzQyMywgMi45NDUwMywgMy42NjkxOCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMjQ4NjYsIDAuMzc3NDksIDAuNjU5NzI5LCAwLjkwNjkwMSwgMS4yMzYxMywgMS44OTQ0OSwgMi4zMDYzMyIsIFwKLSAgICAgICAgICAiMC4zMzcwMjEsIDAuMzg5NjczLCAwLjY3MTkzMSwgMC45MTkwNDEsIDEuMjQ4MzIsIDEuOTA2ODEsIDIuMzE4MjgiLCBcCi0gICAgICAgICAgIjAuMzUyNTMsIDAuNDA1MTU0LCAwLjY4NzM5MiwgMC45MzQ0OTksIDEuMjYzNzksIDEuOTIyMjcsIDIuMzMzNjQiLCBcCi0gICAgICAgICAgIjAuMzY3MTM1LCAwLjQxOTc4OSwgMC43MDE5ODksIDAuOTQ5MTYsIDEuMjc4NDQsIDEuOTM2ODIsIDIuMzQ4MzYiLCBcCi0gICAgICAgICAgIjAuMzgyMjMsIDAuNDM0OTEyLCAwLjcxNzA5OSwgMC45NjQxOTcsIDEuMjkzNDksIDEuOTUxOTYsIDIuMzYzMzQiLCBcCi0gICAgICAgICAgIjAuNDAzNjA1LCAwLjQ1NjI0MSwgMC43Mzg0NTksIDAuOTg1NjM2LCAxLjMxNDkxLCAxLjk3MzMxLCAyLjM4NDg3IiwgXAotICAgICAgICAgICIwLjQyMDkyNywgMC40NzM1OCwgMC43NTU4MTUsIDEuMDAyOTYsIDEuMzMyMjMsIDEuOTkwNjEsIDIuNDAyMTciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjA0ODc2LCAwLjI5NzgxNiwgMC44NDE5ODQsIDEuMzI4NDQsIDEuOTg0OTUsIDMuMjk2MTYsIDQuMTA0OTMiLCBcCi0gICAgICAgICAgIjAuMjA0OTU5LCAwLjI5NzUzOCwgMC44NDE5MDMsIDEuMzI2NjEsIDEuOTg1MSwgMy4yODQzOSwgNC4xMDkxNyIsIFwKLSAgICAgICAgICAiMC4yMDQ5ODQsIDAuMjk3Nzc3LCAwLjg0MTg2OSwgMS4zMjgzLCAxLjk4NTAyLCAzLjI4NTg0LCA0LjEwOTQiLCBcCi0gICAgICAgICAgIjAuMjA0OTExLCAwLjI5NzgyMywgMC44NDE3ODYsIDEuMzI1OTksIDEuOTg0NjMsIDMuMjg3NjQsIDQuMTAyODMiLCBcCi0gICAgICAgICAgIjAuMjA0OTcsIDAuMjk3NjI5LCAwLjg0MTgzOSwgMS4zMjczNiwgMS45ODUwMSwgMy4yODY4NSwgNC4xMDk0MSIsIFwKLSAgICAgICAgICAiMC4yMDQ5MjQsIDAuMjk3NTk1LCAwLjg0MTY5NiwgMS4zMjY1NiwgMS45ODQ2OCwgMy4yODg0NCwgNC4xMDgzNCIsIFwKLSAgICAgICAgICAiMC4yMDQ5MTgsIDAuMjk3ODA0LCAwLjgzOTU0MywgMS4zMjU3NSwgMS45ODQ2MiwgMy4yODc5MiwgNC4xMDQ1NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTMSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTc5MjUxLCAwLjIyMzAyLCAwLjQ2ODQwMSwgMC42ODQzMTYsIDAuOTcyMTYzLCAxLjU0NzY3LCAxLjkwNzM0IiwgXAotICAgICAgICAgICIwLjE4OTkxOCwgMC4yMzM2ODgsIDAuNDc4OTkxLCAwLjY5NDk4MSwgMC45ODI4MTksIDEuNTU4NSwgMS45MTc5OCIsIFwKLSAgICAgICAgICAiMC4yMDMzNjYsIDAuMjQ3MjExLCAwLjQ5MjU2LCAwLjcwODQ3OSwgMC45OTYzNzIsIDEuNTcxODUsIDEuOTMxNDkiLCBcCi0gICAgICAgICAgIjAuMjE3MTExLCAwLjI2MDg5MiwgMC41MDYyMTEsIDAuNzIyMjEzLCAxLjAxMDA1LCAxLjU4NTU5LCAxLjk0NTIiLCBcCi0gICAgICAgICAgIjAuMjMwNzIyLCAwLjI3NDUxNSwgMC41MTk4NDQsIDAuNzM1OTE5LCAxLjAyMzY4LCAxLjU5OTE5LCAxLjk1OTAxIiwgXAotICAgICAgICAgICIwLjI1MjczOSwgMC4yOTY2MTcsIDAuNTQyMDAxLCAwLjc1NzkzMiwgMS4wNDU4MywgMS42MjEyOSwgMS45ODA5NCIsIFwKLSAgICAgICAgICAiMC4yNzE5NTQsIDAuMzE1Nzc5LCAwLjU2MTE0OSwgMC43NzcxNTcsIDEuMDY0OTgsIDEuNjQwNTgsIDIuMDAwMTUiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTY5MjM2LCAwLjI1NDE4NCwgMC43NDU4NDIsIDEuMTg2NDEsIDEuNzY5MTMsIDIuOTQyODMsIDMuNjY5NzkiLCBcCi0gICAgICAgICAgIjAuMTY5MTYzLCAwLjI1NDE2NiwgMC43NDY0OTQsIDEuMTg2NDEsIDEuNzY5MTUsIDIuOTQzMjMsIDMuNjY5NDYiLCBcCi0gICAgICAgICAgIjAuMTY5MjQ4LCAwLjI1Mzg3MiwgMC43NDc4ODksIDEuMTg2MzMsIDEuNzcxOTMsIDIuOTM4NTUsIDMuNjY5NzYiLCBcCi0gICAgICAgICAgIjAuMTY5MjcsIDAuMjU0MjMxLCAwLjc0NjMzNSwgMS4xODY0MywgMS43NjkyMSwgMi45NDMyNywgMy42NzMwOCIsIFwKLSAgICAgICAgICAiMC4xNjkzMywgMC4yNTQyNSwgMC43NDc2NCwgMS4xODU5OCwgMS43NjkzLCAyLjkzODQ1LCAzLjY3NTE2IiwgXAotICAgICAgICAgICIwLjE2OTQ0MiwgMC4yNTQxOTIsIDAuNzQ2MTI2LCAxLjE4NjM5LCAxLjc3MTk0LCAyLjk0Mjk3LCAzLjY2OTAxIiwgXAotICAgICAgICAgICIwLjE2OTY0MiwgMC4yNTQ0LCAwLjc0NzY4NiwgMS4xODY0NCwgMS43Njg5OCwgMi45NDM0NiwgMy42NzQ1NSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMDk3NiwgMC4yNjIxNDUsIDAuNTQzOTE3LCAwLjc5MDc2NywgMS4xMTk5OSwgMS43Nzg0NywgMi4xOTEwNiIsIFwKLSAgICAgICAgICAiMC4yMTk4OTUsIDAuMjcyMjcxLCAwLjU1NDA0LCAwLjgwMDg5NSwgMS4xMzAxMiwgMS43ODg1OSwgMi4yMDExOCIsIFwKLSAgICAgICAgICAiMC4yMzI0MTIsIDAuMjg0ODI0LCAwLjU2NjYxMSwgMC44MTM1NTgsIDEuMTQyNjksIDEuODAxMiwgMi4yMTM1OCIsIFwKLSAgICAgICAgICAiMC4yNDUwNjgsIDAuMjk3NDUzLCAwLjU3OTI1NywgMC44MjYxMjMsIDEuMTU1MzUsIDEuODEzODMsIDIuMjI2NDIiLCBcCi0gICAgICAgICAgIjAuMjU3NDA0LCAwLjMwOTgzNSwgMC41OTE2MTQsIDAuODM4NjAyLCAxLjE2NzczLCAxLjgyNjQxLCAyLjIzODE4IiwgXAotICAgICAgICAgICIwLjI3NzQ3NSwgMC4zMjk4NTIsIDAuNjExNjUzLCAwLjg1ODY3MiwgMS4xODc4MywgMS44NDYzOCwgMi4yNTg4OCIsIFwKLSAgICAgICAgICAiMC4yOTQ2MTQsIDAuMzQ3MDI2LCAwLjYyODg2NCwgMC44NzU4NjMsIDEuMjA1MDEsIDEuODYzODIsIDIuMjc1NTYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjAzNzkxLCAwLjI5NjY0OSwgMC44NDEwNzUsIDEuMzI5NjQsIDEuOTgzOTksIDMuMjg2MjksIDQuMDk5ODMiLCBcCi0gICAgICAgICAgIjAuMjAzNzY1LCAwLjI5NjYzMSwgMC44NDEwNzYsIDEuMzI5NjYsIDEuOTgzOTgsIDMuMjg2MTUsIDQuMDk5OTYiLCBcCi0gICAgICAgICAgIjAuMjAzNzM1LCAwLjI5NjYwNiwgMC44NDEwNjEsIDEuMzI5OTgsIDEuOTgzOTksIDMuMjg0NDcsIDQuMTA3NjEiLCBcCi0gICAgICAgICAgIjAuMjAzNjkxLCAwLjI5NjU2OSwgMC44NDEwNTQsIDEuMzI2NTYsIDEuOTgzOTgsIDMuMjg1OTcsIDQuMDk5OTMiLCBcCi0gICAgICAgICAgIjAuMjAzNTcyLCAwLjI5NjcxLCAwLjg0MTA4LCAxLjMyNDkyLCAxLjk4NDAzLCAzLjI4OTU0LCA0LjEwOTAxIiwgXAotICAgICAgICAgICIwLjIwMzMxNSwgMC4yOTYzMDgsIDAuODQwOTM1LCAxLjMyOTk1LCAxLjk4Mzk4LCAzLjI4MzQ1LCA0LjEwODY5IiwgXAotICAgICAgICAgICIwLjIwMzA0OSwgMC4yOTYxMzksIDAuODQxMDA1LCAxLjMyOTkzLCAxLjk4Mzk3LCAzLjI4NzIxLCA0LjEwODYxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlMxIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMTc5OTMsIDAuMjY0MjM4LCAwLjUxMDk4MiwgMC43MjY3OTMsIDEuMDE0NTksIDEuNTkwMDcsIDEuOTUwMjEiLCBcCi0gICAgICAgICAgIjAuMjMwMTk4LCAwLjI3NjUyMywgMC41MjMyMzEsIDAuNzM5MDE0LCAxLjAyNjgsIDEuNjAyMzQsIDEuOTYzMDIiLCBcCi0gICAgICAgICAgIjAuMjQ1MDQ2LCAwLjI5MTQ5NSwgMC41MzgxOTksIDAuNzUzOTk5LCAxLjA0MTc3LCAxLjYxNzM1LCAxLjk3NzM0IiwgXAotICAgICAgICAgICIwLjI1OTY0OSwgMC4zMDYwMTIsIDAuNTUyNzQ3LCAwLjc2ODU2MiwgMS4wNTY0OSwgMS42MzIzMywgMS45OTE2NyIsIFwKLSAgICAgICAgICAiMC4yNzM3ODYsIDAuMzIwMTkxLCAwLjU2Njg0MywgMC43ODI2NjIsIDEuMDcwMzgsIDEuNjQ1OSwgMi4wMDU4MyIsIFwKLSAgICAgICAgICAiMC4yOTQ3NjYsIDAuMzQxMDI5LCAwLjU4Nzc3NSwgMC44MDM1OTYsIDEuMDkxMzUsIDEuNjY2ODksIDIuMDI3MDUiLCBcCi0gICAgICAgICAgIjAuMzExMDE2LCAwLjM1NzM2OCwgMC42MDQwOTksIDAuODE5OTE5LCAxLjEwNzgyLCAxLjY4MzQ4LCAyLjA0MzgyIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE4NTc1NCwgMC4yNjgzNSwgMC43NTMyNjUsIDEuMTg3NDUsIDEuNzczNDcsIDIuOTQ1MDIsIDMuNjY4MzgiLCBcCi0gICAgICAgICAgIjAuMTg1NzQsIDAuMjY4MjMxLCAwLjc1MzI4MSwgMS4xODg5NSwgMS43NzM1NCwgMi45NDUwOCwgMy42Njg5OSIsIFwKLSAgICAgICAgICAiMC4xODU2NzksIDAuMjY4MjM3LCAwLjc1MzI5MywgMS4xODY1MywgMS43NzM1OCwgMi45MzY3MiwgMy42NzExOSIsIFwKLSAgICAgICAgICAiMC4xODU3MTcsIDAuMjY4MzI4LCAwLjc1MzMyMSwgMS4xODc0NywgMS43NzAzMywgMi45MzczMiwgMy42NzYwMiIsIFwKLSAgICAgICAgICAiMC4xODU2NTcsIDAuMjY4MjE0LCAwLjc1MTUyNywgMS4xODYzMiwgMS43NzMyOSwgMi45NDM4OCwgMy42NzUzNCIsIFwKLSAgICAgICAgICAiMC4xODU3MjksIDAuMjY4MjMzLCAwLjc1MzIzOCwgMS4xODcyMSwgMS43NzM1LCAyLjk0NTAxLCAzLjY3MTI5IiwgXAotICAgICAgICAgICIwLjE4NTU0NywgMC4yNjgxOTIsIDAuNzUzMjcxLCAxLjE4NzI5LCAxLjc2ODc3LCAyLjkzNzc2LCAzLjY2OTExIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIyMDMwNCwgMC4yNzAyMzksIDAuNTUwNjM3LCAwLjc5NzY0NywgMS4xMjY5MSwgMS43ODUyMywgMi4xOTY2OCIsIFwKLSAgICAgICAgICAiMC4yMzIyOTMsIDAuMjgyMjIyLCAwLjU2MjYzLCAwLjgwOTU4NCwgMS4xMzg4NSwgMS43OTcxOSwgMi4yMDg2NiIsIFwKLSAgICAgICAgICAiMC4yNDc4NzQsIDAuMjk3ODA3LCAwLjU3ODIwOCwgMC44MjUyNCwgMS4xNTQ0NCwgMS44MTI4LCAyLjIyNDIyIiwgXAotICAgICAgICAgICIwLjI2MjgyMSwgMC4zMTI3NTYsIDAuNTkzMTU1LCAwLjg0MDE2NiwgMS4xNjkzOCwgMS44Mjc3NCwgMi4yMzkyMiIsIFwKLSAgICAgICAgICAiMC4yNzgwMDEsIDAuMzI3OTQ0LCAwLjYwODM0NSwgMC44NTUyOTcsIDEuMTg0NTksIDEuODQyOTEsIDIuMjU0MzYiLCBcCi0gICAgICAgICAgIjAuMzAwMTg1LCAwLjM1MDEyMSwgMC42MzA1MjUsIDAuODc3NDc3LCAxLjIwNjg1LCAxLjg2NTA5LCAyLjI3NjUzIiwgXAotICAgICAgICAgICIwLjMxODE0NCwgMC4zNjgwNzUsIDAuNjQ4NDgzLCAwLjg5NTQzMiwgMS4yMjQ3MSwgMS44ODMwNCwgMi4yOTQ0OCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xODYyNDksIDAuMjgxNzgsIDAuODM1MDU5LCAxLjMyNTg0LCAxLjk3OTg0LCAzLjI5MDY1LCA0LjEwNzIiLCBcCi0gICAgICAgICAgIjAuMTg2MjE3LCAwLjI4MTgzNiwgMC44MzQ4NTMsIDEuMzI2MTEsIDEuOTgwNzksIDMuMjg2NywgNC4xMDczMyIsIFwKLSAgICAgICAgICAiMC4xODYyNDQsIDAuMjgxNzMsIDAuODM0OTY1LCAxLjMyNTIsIDEuOTgwMjcsIDMuMjg3OTYsIDQuMTAzODUiLCBcCi0gICAgICAgICAgIjAuMTg2MjQxLCAwLjI4MTczOSwgMC44MzQ4OTUsIDEuMzI1NTQsIDEuOTc5NjIsIDMuMjg4MTYsIDQuMTA2ODQiLCBcCi0gICAgICAgICAgIjAuMTg2MjE5LCAwLjI4MTc4OCwgMC44MzQ4MTEsIDEuMzI2MTcsIDEuOTc1OTksIDMuMjg3MzIsIDQuMTA2NDMiLCBcCi0gICAgICAgICAgIjAuMTg2MjE2LCAwLjI4MTc4NCwgMC44MzQ4MjUsIDEuMzI2MjMsIDEuOTc5MjUsIDMuMjg3MTMsIDQuMTA2MjkiLCBcCi0gICAgICAgICAgIjAuMTg2MTgsIDAuMjgxNzM3LCAwLjgzNDc4NSwgMS4zMjYxMiwgMS45ODA1NCwgMy4yODY1LCA0LjEwNTIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDIwNTUsIDAuMDAyMDY1LCAwLjAwMjA4MSwgMC4wMDIwODQsIDAuMDAyMDg2LCAwLjAwMjA4OCwgMC4wMDIwODgiLCBcCi0gICAgICAgICAgIjAuMDAyMDQ2LCAwLjAwMjA1NSwgMC4wMDIwNzEsIDAuMDAyMDc0LCAwLjAwMjA3NiwgMC4wMDIwNzksIDAuMDAyMDc5IiwgXAotICAgICAgICAgICIwLjAwMjA0MSwgMC4wMDIwNSwgMC4wMDIwNjYsIDAuMDAyMDcsIDAuMDAyMDcyLCAwLjAwMjA3NCwgMC4wMDIwNzQiLCBcCi0gICAgICAgICAgIjAuMDAyMDM4LCAwLjAwMjA0NywgMC4wMDIwNjMsIDAuMDAyMDY2LCAwLjAwMjA2OSwgMC4wMDIwNywgMC4wMDIwNzEiLCBcCi0gICAgICAgICAgIjAuMDAyMDM1LCAwLjAwMjA0NCwgMC4wMDIwNiwgMC4wMDIwNjQsIDAuMDAyMDY2LCAwLjAwMjA2OCwgMC4wMDIwNjkiLCBcCi0gICAgICAgICAgIjAuMDAyMDMxLCAwLjAwMjA0LCAwLjAwMjA1NiwgMC4wMDIwNjEsIDAuMDAyMDYzLCAwLjAwMjA2NSwgMC4wMDIwNjYiLCBcCi0gICAgICAgICAgIjAuMDAyMDI4LCAwLjAwMjAzNywgMC4wMDIwNTQsIDAuMDAyMDU4LCAwLjAwMjA2MSwgMC4wMDIwNjMsIDAuMDAyMDYzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzNDI2LCAwLjAwMzQzNywgMC4wMDM0NTgsIDAuMDAzNDYyLCAwLjAwMzQ2NSwgMC4wMDM0NjgsIDAuMDAzNDY4IiwgXAotICAgICAgICAgICIwLjAwMzQyMSwgMC4wMDM0MzMsIDAuMDAzNDUzLCAwLjAwMzQ1OCwgMC4wMDM0NjEsIDAuMDAzNDYzLCAwLjAwMzQ2MyIsIFwKLSAgICAgICAgICAiMC4wMDM0MTgsIDAuMDAzNDMsIDAuMDAzNDUsIDAuMDAzNDU1LCAwLjAwMzQ1OCwgMC4wMDM0NiwgMC4wMDM0NjEiLCBcCi0gICAgICAgICAgIjAuMDAzNDE2LCAwLjAwMzQyOCwgMC4wMDM0NDksIDAuMDAzNDU0LCAwLjAwMzQ1NiwgMC4wMDM0NTksIDAuMDAzNDYiLCBcCi0gICAgICAgICAgIjAuMDAzNDE1LCAwLjAwMzQyNiwgMC4wMDM0NDcsIDAuMDAzNDUyLCAwLjAwMzQ1NSwgMC4wMDM0NTgsIDAuMDAzNDU4IiwgXAotICAgICAgICAgICIwLjAwMzQxMiwgMC4wMDM0MjMsIDAuMDAzNDQ1LCAwLjAwMzQ1LCAwLjAwMzQ1MywgMC4wMDM0NTYsIDAuMDAzNDU2IiwgXAotICAgICAgICAgICIwLjAwMzQwOSwgMC4wMDM0MjEsIDAuMDAzNDQzLCAwLjAwMzQ0OCwgMC4wMDM0NTIsIDAuMDAzNDU1LCAwLjAwMzQ1NSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTk1NiwgMC4wMDE5NjUsIDAuMDAxOTgxLCAwLjAwMTk4NSwgMC4wMDE5ODcsIDAuMDAxOTg5LCAwLjAwMTk4OSIsIFwKLSAgICAgICAgICAiMC4wMDE5NDYsIDAuMDAxOTU1LCAwLjAwMTk3MiwgMC4wMDE5NzUsIDAuMDAxOTc3LCAwLjAwMTk3OSwgMC4wMDE5NzkiLCBcCi0gICAgICAgICAgIjAuMDAxOTQxLCAwLjAwMTk1MSwgMC4wMDE5NjYsIDAuMDAxOTcsIDAuMDAxOTcyLCAwLjAwMTk3NCwgMC4wMDE5NzUiLCBcCi0gICAgICAgICAgIjAuMDAxOTM4LCAwLjAwMTk0NywgMC4wMDE5NjMsIDAuMDAxOTY3LCAwLjAwMTk2OSwgMC4wMDE5NzEsIDAuMDAxOTcxIiwgXAotICAgICAgICAgICIwLjAwMTkzNSwgMC4wMDE5NDQsIDAuMDAxOTYsIDAuMDAxOTY0LCAwLjAwMTk2NywgMC4wMDE5NjksIDAuMDAxOTY5IiwgXAotICAgICAgICAgICIwLjAwMTkzMSwgMC4wMDE5NCwgMC4wMDE5NTcsIDAuMDAxOTYxLCAwLjAwMTk2MywgMC4wMDE5NjUsIDAuMDAxOTY2IiwgXAotICAgICAgICAgICIwLjAwMTkyOSwgMC4wMDE5MzgsIDAuMDAxOTU0LCAwLjAwMTk1OSwgMC4wMDE5NjEsIDAuMDAxOTYzLCAwLjAwMTk2NCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzU5NCwgMC4wMDM2MDUsIDAuMDAzNjI2LCAwLjAwMzYzLCAwLjAwMzYzMywgMC4wMDM2MzYsIDAuMDAzNjM2IiwgXAotICAgICAgICAgICIwLjAwMzU4OSwgMC4wMDM2LCAwLjAwMzYyMSwgMC4wMDM2MjYsIDAuMDAzNjI5LCAwLjAwMzYzMSwgMC4wMDM2MzIiLCBcCi0gICAgICAgICAgIjAuMDAzNTg3LCAwLjAwMzU5OCwgMC4wMDM2MTksIDAuMDAzNjIzLCAwLjAwMzYyNiwgMC4wMDM2MjksIDAuMDAzNjMiLCBcCi0gICAgICAgICAgIjAuMDAzNTg0LCAwLjAwMzU5NiwgMC4wMDM2MTcsIDAuMDAzNjIyLCAwLjAwMzYyNSwgMC4wMDM2MjcsIDAuMDAzNjI4IiwgXAotICAgICAgICAgICIwLjAwMzU4MywgMC4wMDM1OTQsIDAuMDAzNjE1LCAwLjAwMzYyLCAwLjAwMzYyMywgMC4wMDM2MjYsIDAuMDAzNjI2IiwgXAotICAgICAgICAgICIwLjAwMzU4LCAwLjAwMzU5MSwgMC4wMDM2MTMsIDAuMDAzNjE4LCAwLjAwMzYyMSwgMC4wMDM2MjQsIDAuMDAzNjI1IiwgXAotICAgICAgICAgICIwLjAwMzU3OCwgMC4wMDM1ODksIDAuMDAzNjExLCAwLjAwMzYxNywgMC4wMDM2MiwgMC4wMDM2MjMsIDAuMDAzNjI0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxNDA0LCAwLjAwMTQwNywgMC4wMDE0MTIsIDAuMDAxNDEzLCAwLjAwMTQxMywgMC4wMDE0MTMsIDAuMDAxNDE0IiwgXAotICAgICAgICAgICIwLjAwMTM5MywgMC4wMDEzOTcsIDAuMDAxNDAyLCAwLjAwMTQwMiwgMC4wMDE0MDMsIDAuMDAxNDAzLCAwLjAwMTQwMyIsIFwKLSAgICAgICAgICAiMC4wMDEzODcsIDAuMDAxMzkxLCAwLjAwMTM5NSwgMC4wMDEzOTYsIDAuMDAxMzk2LCAwLjAwMTM5NywgMC4wMDEzOTciLCBcCi0gICAgICAgICAgIjAuMDAxMzgyLCAwLjAwMTM4NiwgMC4wMDEzOTEsIDAuMDAxMzkyLCAwLjAwMTM5MywgMC4wMDEzOTMsIDAuMDAxMzkzIiwgXAotICAgICAgICAgICIwLjAwMTM3OSwgMC4wMDEzODMsIDAuMDAxMzg5LCAwLjAwMTM5LCAwLjAwMTM5LCAwLjAwMTM5LCAwLjAwMTM5IiwgXAotICAgICAgICAgICIwLjAwMTM3NCwgMC4wMDEzNzksIDAuMDAxMzg1LCAwLjAwMTM4NiwgMC4wMDEzODcsIDAuMDAxMzg3LCAwLjAwMTM4NyIsIFwKLSAgICAgICAgICAiMC4wMDEzNzEsIDAuMDAxMzc2LCAwLjAwMTM4MywgMC4wMDEzODUsIDAuMDAxMzg1LCAwLjAwMTM4NSwgMC4wMDEzODYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDIyNDIsIDAuMDAyMjQ3LCAwLjAwMjI1MywgMC4wMDIyNTUsIDAuMDAyMjU1LCAwLjAwMjI1NiwgMC4wMDIyNTYiLCBcCi0gICAgICAgICAgIjAuMDAyMjM3LCAwLjAwMjI0MiwgMC4wMDIyNDgsIDAuMDAyMjUsIDAuMDAyMjUsIDAuMDAyMjUxLCAwLjAwMjI1MSIsIFwKLSAgICAgICAgICAiMC4wMDIyMzMsIDAuMDAyMjM5LCAwLjAwMjI0NiwgMC4wMDIyNDcsIDAuMDAyMjQ3LCAwLjAwMjI0OCwgMC4wMDIyNDgiLCBcCi0gICAgICAgICAgIjAuMDAyMjMsIDAuMDAyMjM2LCAwLjAwMjI0MywgMC4wMDIyNDQsIDAuMDAyMjQ1LCAwLjAwMjI0NiwgMC4wMDIyNDYiLCBcCi0gICAgICAgICAgIjAuMDAyMjI4LCAwLjAwMjIzNCwgMC4wMDIyNDIsIDAuMDAyMjQzLCAwLjAwMjI0NCwgMC4wMDIyNDUsIDAuMDAyMjQ1IiwgXAotICAgICAgICAgICIwLjAwMjIyMywgMC4wMDIyMjksIDAuMDAyMjM5LCAwLjAwMjI0MSwgMC4wMDIyNDEsIDAuMDAyMjQyLCAwLjAwMjI0MiIsIFwKLSAgICAgICAgICAiMC4wMDIyMjIsIDAuMDAyMjI5LCAwLjAwMjIzOSwgMC4wMDIyNDEsIDAuMDAyMjQyLCAwLjAwMjI0MywgMC4wMDIyNDMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTMCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzNTc3LCAwLjAwMzU4NiwgMC4wMDM2MDIsIDAuMDAzNjA2LCAwLjAwMzYwOCwgMC4wMDM2MSwgMC4wMDM2MTEiLCBcCi0gICAgICAgICAgIjAuMDAzNTczLCAwLjAwMzU4MiwgMC4wMDM1OTgsIDAuMDAzNjAxLCAwLjAwMzYwMywgMC4wMDM2MDYsIDAuMDAzNjA2IiwgXAotICAgICAgICAgICIwLjAwMzU3LCAwLjAwMzU3OSwgMC4wMDM1OTUsIDAuMDAzNTk5LCAwLjAwMzYwMSwgMC4wMDM2MDMsIDAuMDAzNjAzIiwgXAotICAgICAgICAgICIwLjAwMzU2NywgMC4wMDM1NzYsIDAuMDAzNTkyLCAwLjAwMzU5NSwgMC4wMDM1OTgsIDAuMDAzNiwgMC4wMDM2IiwgXAotICAgICAgICAgICIwLjAwMzU2NywgMC4wMDM1NzYsIDAuMDAzNTkyLCAwLjAwMzU5NiwgMC4wMDM1OTgsIDAuMDAzNiwgMC4wMDM2MDEiLCBcCi0gICAgICAgICAgIjAuMDAzNTY2LCAwLjAwMzU3NSwgMC4wMDM1OTEsIDAuMDAzNTk1LCAwLjAwMzU5NywgMC4wMDM1OTksIDAuMDAzNTk5IiwgXAotICAgICAgICAgICIwLjAwMzU2NiwgMC4wMDM1NzUsIDAuMDAzNTkxLCAwLjAwMzU5NCwgMC4wMDM1OTcsIDAuMDAzNTk5LCAwLjAwMzU5OSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzM1OSwgMC4wMDMzNywgMC4wMDMzOTEsIDAuMDAzMzk2LCAwLjAwMzM5OSwgMC4wMDM0MDIsIDAuMDAzNDAyIiwgXAotICAgICAgICAgICIwLjAwMzM0OSwgMC4wMDMzNiwgMC4wMDMzODEsIDAuMDAzMzg2LCAwLjAwMzM4OSwgMC4wMDMzOTIsIDAuMDAzMzkzIiwgXAotICAgICAgICAgICIwLjAwMzM0MywgMC4wMDMzNTQsIDAuMDAzMzc1LCAwLjAwMzM4LCAwLjAwMzM4MywgMC4wMDMzODUsIDAuMDAzMzg2IiwgXAotICAgICAgICAgICIwLjAwMzMzOSwgMC4wMDMzNTEsIDAuMDAzMzcxLCAwLjAwMzM3NiwgMC4wMDMzNzksIDAuMDAzMzgyLCAwLjAwMzM4MyIsIFwKLSAgICAgICAgICAiMC4wMDMzMzgsIDAuMDAzMzQ5LCAwLjAwMzM3LCAwLjAwMzM3NSwgMC4wMDMzNzgsIDAuMDAzMzgxLCAwLjAwMzM4MSIsIFwKLSAgICAgICAgICAiMC4wMDMzMzgsIDAuMDAzMzQ5LCAwLjAwMzM3LCAwLjAwMzM3NSwgMC4wMDMzNzgsIDAuMDAzMzgxLCAwLjAwMzM4MSIsIFwKLSAgICAgICAgICAiMC4wMDMzMzgsIDAuMDAzMzUsIDAuMDAzMzcxLCAwLjAwMzM3NiwgMC4wMDMzNzksIDAuMDAzMzgxLCAwLjAwMzM4MiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlMxIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDMwNTQsIDAuMDAzMDYsIDAuMDAzMDcsIDAuMDAzMDcyLCAwLjAwMzA3NCwgMC4wMDMwNzUsIDAuMDAzMDc1IiwgXAotICAgICAgICAgICIwLjAwMzA2NiwgMC4wMDMwNzMsIDAuMDAzMDgzLCAwLjAwMzA4NiwgMC4wMDMwODYsIDAuMDAzMDg3LCAwLjAwMzA4OCIsIFwKLSAgICAgICAgICAiMC4wMDMwODgsIDAuMDAzMDk1LCAwLjAwMzEwNSwgMC4wMDMxMDcsIDAuMDAzMTA5LCAwLjAwMzExLCAwLjAwMzExMSIsIFwKLSAgICAgICAgICAiMC4wMDMxMDUsIDAuMDAzMTEyLCAwLjAwMzEyMywgMC4wMDMxMjUsIDAuMDAzMTI3LCAwLjAwMzEyOCwgMC4wMDMxMjgiLCBcCi0gICAgICAgICAgIjAuMDAzMTI0LCAwLjAwMzEzMSwgMC4wMDMxNDIsIDAuMDAzMTQ2LCAwLjAwMzE0NiwgMC4wMDMxNDgsIDAuMDAzMTQ5IiwgXAotICAgICAgICAgICIwLjAwMzE0OSwgMC4wMDMxNTYsIDAuMDAzMTY3LCAwLjAwMzE3LCAwLjAwMzE3MiwgMC4wMDMxNzMsIDAuMDAzMTc0IiwgXAotICAgICAgICAgICIwLjAwMzE2NywgMC4wMDMxNzQsIDAuMDAzMTg2LCAwLjAwMzE4OSwgMC4wMDMxOTEsIDAuMDAzMTkzLCAwLjAwMzE5MyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjAzNywgMC4wMDIwNDQsIDAuMDAyMDU0LCAwLjAwMjA1NiwgMC4wMDIwNTgsIDAuMDAyMDU5LCAwLjAwMjA1OSIsIFwKLSAgICAgICAgICAiMC4wMDIwMjcsIDAuMDAyMDMzLCAwLjAwMjA0NCwgMC4wMDIwNDYsIDAuMDAyMDQ3LCAwLjAwMjA0OCwgMC4wMDIwNDkiLCBcCi0gICAgICAgICAgIjAuMDAyMDIyLCAwLjAwMjAyOSwgMC4wMDIwMzksIDAuMDAyMDQxLCAwLjAwMjA0MiwgMC4wMDIwNDMsIDAuMDAyMDQ0IiwgXAotICAgICAgICAgICIwLjAwMjAxOSwgMC4wMDIwMjUsIDAuMDAyMDM1LCAwLjAwMjAzOCwgMC4wMDIwMzksIDAuMDAyMDQsIDAuMDAyMDQiLCBcCi0gICAgICAgICAgIjAuMDAyMDE3LCAwLjAwMjAyNCwgMC4wMDIwMzQsIDAuMDAyMDM2LCAwLjAwMjAzNywgMC4wMDIwMzgsIDAuMDAyMDM5IiwgXAotICAgICAgICAgICIwLjAwMjAxNywgMC4wMDIwMjQsIDAuMDAyMDM0LCAwLjAwMjAzNiwgMC4wMDIwMzcsIDAuMDAyMDM4LCAwLjAwMjAzOSIsIFwKLSAgICAgICAgICAiMC4wMDIwMTgsIDAuMDAyMDI1LCAwLjAwMjAzNCwgMC4wMDIwMzcsIDAuMDAyMDM4LCAwLjAwMjAzOSwgMC4wMDIwMzkiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogTVgzWDIgKgotICogLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKE1YM1gyKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMjA1OTY4OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2MzYzNzc7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjM0NTQyOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDYzNjM3NzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA2ODgsIDAuMDAwNjc4LCAwLjAwMDY3MSwgMC4wMDA2NjcsIDAuMDAwNjY0LCAwLjAwMDY2LCAwLjAwMDY1OCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTc3LCAwLjAwMTc2NSwgMC4wMDE3NjIsIDAuMDAxNzU5LCAwLjAwMTc1OCwgMC4wMDE3NTYsIDAuMDAxNzU2Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2MDM0Mzk7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjAxNzc7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjAzNDM5OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDE1OSwgMC4wMDAxNiwgMC4wMDAxNjEsIDAuMDAwMTYxLCAwLjAwMDE2MiwgMC4wMDAxNjIsIDAuMDAwMTYyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMTY3LCAwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY2Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihDKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA1NjA1NzY7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNTU4ODY1OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDU2MDU3NjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxNTksIDAuMDAwMTYxLCAwLjAwMDE2MSwgMC4wMDAxNjIsIDAuMDAwMTYyLCAwLjAwMDE2MiwgMC4wMDAxNjIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxNjgsIDAuMDAwMTY2LCAwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiwgMC4wMDAxNjYiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFMwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDExNTM2NjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDExNTMyODsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDExNTM2NjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyMDIsIDAuMDAwMTgzLCAwLjAwMDE3MywgMC4wMDAxNjksIDAuMDAwMTY4LCAwLjAwMDE2NiwgMC4wMDAxNjYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDE1NDEsIDAuMDAxNTI5LCAwLjAwMTUyMiwgMC4wMDE1MTksIDAuMDAxNTE3LCAwLjAwMTUxNSwgMC4wMDE1MTUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFMxKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDExMzc1NDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDExMzY4NDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDExMzc1NDsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyMDksIDAuMDAwMTksIDAuMDAwMTgsIDAuMDAwMTc2LCAwLjAwMDE3NSwgMC4wMDAxNzMsIDAuMDAwMTczIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxNDAzLCAwLjAwMTM5LCAwLjAwMTM4NCwgMC4wMDEzODEsIDAuMDAxMzc5LCAwLjAwMTM3NywgMC4wMDEzNzciKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4yNTAzNzM7Ci0gICAgZnVuY3Rpb24gOiAiKChTMSBDKSArICghUzEgKChTMCBCKSArICghUzAgQSkpKSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMwMzc5NCwgMC41MDIzMjUsIDAuNjQ2NTQxLCAwLjgyNTgzMiwgMS4wMDQ5NywgMS4xODQwMiwgMS4zNjMxOSIsIFwKLSAgICAgICAgICAiMC4zMTUyMjgsIDAuNTEzNzY3LCAwLjY1Nzk0NywgMC44MzcyMzksIDEuMDE2MzUsIDEuMTk1NDQsIDEuMzc0NTgiLCBcCi0gICAgICAgICAgIjAuMzI4ODYsIDAuNTI3NDMyLCAwLjY3MTY0MywgMC44NTA5MzQsIDEuMDMwMDcsIDEuMjA5MTIsIDEuMzg4MyIsIFwKLSAgICAgICAgICAiMC4zNDI1NjgsIDAuNTQxMTI1LCAwLjY4NTI5NiwgMC44NjQ1OTEsIDEuMDQzNzMsIDEuMjIyOCwgMS40MDE5MyIsIFwKLSAgICAgICAgICAiMC4zNTYyNDUsIDAuNTU0ODEzLCAwLjY5OTAxMiwgMC44NzgzMDEsIDEuMDU3NDMsIDEuMjM2NDgsIDEuNDE1NjciLCBcCi0gICAgICAgICAgIjAuMzc4MTMyLCAwLjU3NjUzMSwgMC43MjA3NzYsIDAuOTAwMDYsIDEuMDc5MiwgMS4yNTgzOSwgMS40MzczNiIsIFwKLSAgICAgICAgICAiMC4zOTcwNjksIDAuNTk1NTU0LCAwLjczOTgxOSwgMC45MTkxMzIsIDEuMDk4MjIsIDEuMjc3NDUsIDEuNDU2NTUiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTMxMDI0LCAwLjQ3NDczMywgMC43NTkyMTMsIDEuMTE3MjIsIDEuNDc4NDQsIDEuODQyMDksIDIuMjEwMDciLCBcCi0gICAgICAgICAgIjAuMTMwOTA5LCAwLjQ3NDc1NCwgMC43NTkyMjEsIDEuMTE3MTUsIDEuNDgxNTQsIDEuODQyMzksIDIuMjA5ODgiLCBcCi0gICAgICAgICAgIjAuMTMxMDQ4LCAwLjQ3NDcwOCwgMC43NTkxNzYsIDEuMTE3MiwgMS40Nzk3MywgMS44NDIxLCAyLjIwOTk0IiwgXAotICAgICAgICAgICIwLjEzMTA1OCwgMC40NzQ3NTEsIDAuNzU5MjAzLCAxLjExNzIyLCAxLjQ3OTgxLCAxLjg0MjIxLCAyLjIwOTg3IiwgXAotICAgICAgICAgICIwLjEzMTEwNiwgMC40NzQ3MTEsIDAuNzU5MTgyLCAxLjExNzEzLCAxLjQ3OTcsIDEuODQ0OTQsIDIuMjA5OTMiLCBcCi0gICAgICAgICAgIjAuMTMxMjM1LCAwLjQ3NDY5NSwgMC43NTkwNzEsIDEuMTE2ODYsIDEuNDc5NzMsIDEuODQ1OTIsIDIuMjA5NjQiLCBcCi0gICAgICAgICAgIjAuMTMxMTQ5LCAwLjQ3NDU3NywgMC43NTkwNjQsIDEuMTE3NDIsIDEuNDc5MzIsIDEuODQwNzksIDIuMjAzOTYiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjg1MjQxLCAwLjUwOTEwMSwgMC42NzQ4MjIsIDAuODgxMTczLCAxLjA4NzUsIDEuMjkzNTUsIDEuNDk5NzYiLCBcCi0gICAgICAgICAgIjAuMjk2NjA2LCAwLjUyMDY3MiwgMC42ODYzNDgsIDAuODkyNjUxLCAxLjA5ODk1LCAxLjMwNTE3LCAxLjUxMTI0IiwgXAotICAgICAgICAgICIwLjMwOTg1NywgMC41MzM3MTksIDAuNjk5NDM4LCAwLjkwNTc5MSwgMS4xMTIxMSwgMS4zMTgyNCwgMS41MjQzOCIsIFwKLSAgICAgICAgICAiMC4zMjIyMDQsIDAuNTQ2Mjc5LCAwLjcxMTk2MSwgMC45MTgyNzksIDEuMTI0NTYsIDEuMzMwNzgsIDEuNTM2ODUiLCBcCi0gICAgICAgICAgIjAuMzM0NTY5LCAwLjU1ODU3MywgMC43MjQyNSwgMC45MzA1OTYsIDEuMTM2ODYsIDEuMzQzMDcsIDEuNTQ5MTUiLCBcCi0gICAgICAgICAgIjAuMzU0Mjg5LCAwLjU3ODI4OSwgMC43NDM5NDgsIDAuOTUwMzAxLCAxLjE1NjQ4LCAxLjM2MjgsIDEuNTY4ODYiLCBcCi0gICAgICAgICAgIjAuMzcxMzU0LCAwLjU5NTM5NiwgMC43NjEwNzUsIDAuOTY3Mzg1LCAxLjE3MzY5LCAxLjM3OTkxLCAxLjU4NTk5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEzOTU0MSwgMC41Mjk5MjIsIDAuODUxNzM0LCAxLjI1Nzc4LCAxLjY2MzYxLCAyLjA3NDg1LCAyLjQ5MTc1IiwgXAotICAgICAgICAgICIwLjEzOTM2MiwgMC41Mjk0NDQsIDAuODUxNjkyLCAxLjI1OTU0LCAxLjY2NTk3LCAyLjA4MDUxLCAyLjQ5MTU3IiwgXAotICAgICAgICAgICIwLjEzOTU1MSwgMC41Mjk4NjksIDAuODUxNzQxLCAxLjI1NzM4LCAxLjY2NDUsIDIuMDc2MDgsIDIuNDkxNTQiLCBcCi0gICAgICAgICAgIjAuMTM5MzcyLCAwLjUyOTQzNSwgMC44NTE2ODUsIDEuMjU5NzMsIDEuNjY1NzcsIDIuMDgwNTYsIDIuNDkxNTIiLCBcCi0gICAgICAgICAgIjAuMTM5NDM5LCAwLjUyOTQ1OCwgMC44NTE3MDcsIDEuMjU2MjYsIDEuNjY2OCwgMi4wODA0OSwgMi40OTE1MyIsIFwKLSAgICAgICAgICAiMC4xMzk0ODMsIDAuNTI5MDMsIDAuODUxNjU0LCAxLjI2MDA0LCAxLjY2OTAzLCAyLjA4MDY1LCAyLjQ5MTU1IiwgXAotICAgICAgICAgICIwLjEzOTQ2MiwgMC41Mjk0MzMsIDAuODUxNjc2LCAxLjI1OTQ5LCAxLjY2NTU2LCAyLjA4MDU4LCAyLjQ5MTU2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMwNTE3NSwgMC41MDM4MTksIDAuNjQ4MTE5LCAwLjgyNzQxMywgMS4wMDY1NiwgMS4xODU3NCwgMS4zNjQ4OCIsIFwKLSAgICAgICAgICAiMC4zMTY5MjQsIDAuNTE1NTM0LCAwLjY1OTc2NCwgMC44MzkwNjIsIDEuMDE4MjEsIDEuMTk3MjcsIDEuMzc2NDUiLCBcCi0gICAgICAgICAgIjAuMzMwOTk5LCAwLjUyOTYzMSwgMC42NzM4MzgsIDAuODUzMTM3LCAxLjAzMjI5LCAxLjIxMTU1LCAxLjM5MDUiLCBcCi0gICAgICAgICAgIjAuMzQ0Njc3LCAwLjU0MzM0NywgMC42ODc1NTQsIDAuODY2ODU3LCAxLjA0NiwgMS4yMjUwNiwgMS40MDQyMyIsIFwKLSAgICAgICAgICAiMC4zNTg0MzYsIDAuNTU3MDksIDAuNzAxMjc4LCAwLjg4MDU4MiwgMS4wNTk3NCwgMS4yMzg5MSwgMS40MTc5NiIsIFwKLSAgICAgICAgICAiMC4zODA1MTYsIDAuNTc4OTU2LCAwLjcyMzIyMywgMC45MDI1MTgsIDEuMDgxNjYsIDEuMjYwODYsIDEuNDM5ODkiLCBcCi0gICAgICAgICAgIjAuMzk5NzIzLCAwLjU5ODM2NCwgMC43NDI1NzksIDAuOTIxODc5LCAxLjEwMTAyLCAxLjI4MDMsIDEuNDU5MjUiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTMxMDU5LCAwLjQ3NDgzMSwgMC43NTkyNzgsIDEuMTE3MTksIDEuNDc4NywgMS44NDYwOCwgMi4yMDQwMyIsIFwKLSAgICAgICAgICAiMC4xMzEyMTMsIDAuNDc0ODU5LCAwLjc1OTI4MSwgMS4xMTcyMywgMS40Nzg0MSwgMS44NDI0NiwgMi4yMTAwNSIsIFwKLSAgICAgICAgICAiMC4xMzExMywgMC40NzQ4NjQsIDAuNzU5MzE3LCAxLjExNzE0LCAxLjQ4MTkxLCAxLjg0MTQ3LCAyLjIwOTkzIiwgXAotICAgICAgICAgICIwLjEzMTE4OCwgMC40NzQ4MzEsIDAuNzU5MjkyLCAxLjExNzMyLCAxLjQ3OTgxLCAxLjg0NTI0LCAyLjIwOTk5IiwgXAotICAgICAgICAgICIwLjEzMTE5NywgMC40NzQ4MzEsIDAuNzU5MzAzLCAxLjExNzMxLCAxLjQ3OTg2LCAxLjg0NTgzLCAyLjIwOTk1IiwgXAotICAgICAgICAgICIwLjEzMTMwNCwgMC40NzQ3OTQsIDAuNzU5MjM3LCAxLjExNjk3LCAxLjQ3OTg0LCAxLjg0NTk5LCAyLjIwOTkiLCBcCi0gICAgICAgICAgIjAuMTMxMTczLCAwLjQ3NDgzNiwgMC43NTkyNDIsIDEuMTE3MDMsIDEuNDgxNzUsIDEuODQxMDgsIDIuMjA5ODkiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjg4NTY0LCAwLjUxMzAyOCwgMC42Nzg3NTgsIDAuODg1MTM1LCAxLjA5MTQzLCAxLjI5NzY4LCAxLjUwMzc3IiwgXAotICAgICAgICAgICIwLjMwMDIyMSwgMC41MjQ0MTUsIDAuNjkwMTUxLCAwLjg5NjUzOSwgMS4xMDI4MywgMS4zMDkwNywgMS41MTUxNiIsIFwKLSAgICAgICAgICAiMC4zMTMzNjYsIDAuNTM3NDIzLCAwLjcwMzE5MSwgMC45MDk1ODcsIDEuMTE1OTUsIDEuMzIyMSwgMS41MjgzNCIsIFwKLSAgICAgICAgICAiMC4zMjU4MDksIDAuNTQ5ODYzLCAwLjcxNTYzOCwgMC45MjIwMzUsIDEuMTI4MzksIDEuMzM0NTgsIDEuNTQwNyIsIFwKLSAgICAgICAgICAiMC4zMzc5NDcsIDAuNTYyMTU0LCAwLjcyNzkxOCwgMC45MzQzMTMsIDEuMTQwNjgsIDEuMzQ2ODMsIDEuNTUyOSIsIFwKLSAgICAgICAgICAiMC4zNTc2NDMsIDAuNTgxNzg4LCAwLjc0NzUyLCAwLjk1MzkwMywgMS4xNjAyOCwgMS4zNjY0OSwgMS41NzI1NyIsIFwKLSAgICAgICAgICAiMC4zNzQ2NDUsIDAuNTk4NzMxLCAwLjc2NDUxNywgMC45NzA5MTksIDEuMTc3MTUsIDEuMzgzNTIsIDEuNTg5NTgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTM5NTczLCAwLjUyOTc0MSwgMC44NTE5NzYsIDEuMjU2NzQsIDEuNjY1MzcsIDIuMDgwOTgsIDIuNDkxODciLCBcCi0gICAgICAgICAgIjAuMTM5Njc5LCAwLjUyOTcyOSwgMC44NTE5NjQsIDEuMjU2NSwgMS42NjY4NiwgMi4wODA4OSwgMi40OTE4OCIsIFwKLSAgICAgICAgICAiMC4xMzk3NzQsIDAuNTMwMDYyLCAwLjg1MjAyNSwgMS4yNTY4NiwgMS42NjMzNSwgMi4wODA3MSwgMi40ODU0NiIsIFwKLSAgICAgICAgICAiMC4xMzk3NTUsIDAuNTMwMTA2LCAwLjg1MTk5OSwgMS4yNTc1NiwgMS42NjM4OSwgMi4wNzYwMSwgMi40OTE1IiwgXAotICAgICAgICAgICIwLjEzOTY2MiwgMC41Mjk3NDMsIDAuODUxOTQ1LCAxLjI1NjU2LCAxLjY2NTQ5LCAyLjA4MDc2LCAyLjQ5MTc3IiwgXAotICAgICAgICAgICIwLjEzOTYyNywgMC41Mjk0NzYsIDAuODUwMjk4LCAxLjI1OTgyLCAxLjY2NDkzLCAyLjA4MTA3LCAyLjQ5MTc1IiwgXAotICAgICAgICAgICIwLjEzOTc2OSwgMC41Mjk5MzcsIDAuODUxOTc4LCAxLjI1ODE1LCAxLjY2NTU3LCAyLjA3NDIxLCAyLjQ5MTU4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE4NDYxOSwgMC4zNjk4NDEsIDAuNTEzMzQzLCAwLjY5MjU4NywgMC44NzE2MjEsIDEuMDUwNjMsIDEuMjI5NjgiLCBcCi0gICAgICAgICAgIjAuMTk2MzQ5LCAwLjM4MTUzNCwgMC41MjUwNDMsIDAuNzA0MzAzLCAwLjg4MzMzMSwgMS4wNjIzMywgMS4yNDEzNyIsIFwKLSAgICAgICAgICAiMC4yMTAyMjQsIDAuMzk1NDg1LCAwLjUzODk4LCAwLjcxODE4OCwgMC44OTcyNCwgMS4wNzYyNywgMS4yNTUyNyIsIFwKLSAgICAgICAgICAiMC4yMjM5NzMsIDAuNDA5MjI1LCAwLjU1MjcxOCwgMC43MzE5MSwgMC45MTA5ODEsIDEuMDkwMDEsIDEuMjY5MDkiLCBcCi0gICAgICAgICAgIjAuMjM3OTI0LCAwLjQyMjk0NywgMC41NjY0MzIsIDAuNzQ1Njc4LCAwLjkyNDcwNywgMS4xMDM3MywgMS4yODI3NyIsIFwKLSAgICAgICAgICAiMC4yNTk2ODQsIDAuNDQ0ODg5LCAwLjU4ODQxOCwgMC43Njc2MjIsIDAuOTQ2NjUyLCAxLjEyNTY3LCAxLjMwNDciLCBcCi0gICAgICAgICAgIjAuMjc4ODMxLCAwLjQ2NDA1NywgMC42MDc1NjksIDAuNzg2ODQ0LCAwLjk2NTg3OSwgMS4xNDQ4NiwgMS4zMjM5Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwOTA5OSwgMC40NTg0ODgsIDAuNzQ3MDA1LCAxLjExMjIsIDEuNDc2MjgsIDEuODQwMjgsIDIuMjAxNzkiLCBcCi0gICAgICAgICAgIjAuMTA5MDk4LCAwLjQ1OTA4NiwgMC43NDY5NSwgMS4xMTIxOSwgMS40NzYyNywgMS44NDA1NCwgMi4yMDIwNiIsIFwKLSAgICAgICAgICAiMC4xMDkwOTgsIDAuNDU5MDQ3LCAwLjc0Njk3OSwgMS4xMTAxMiwgMS40NzYxNiwgMS44Mzc3MywgMi4yMDUyIiwgXAotICAgICAgICAgICIwLjEwOTAyNiwgMC40NTkwMzQsIDAuNzQ2OTgsIDEuMTEwMDksIDEuNDc2MTQsIDEuODM3NywgMi4yMDU2OCIsIFwKLSAgICAgICAgICAiMC4xMDkxODEsIDAuNDU4OTYzLCAwLjc0Nzg2MSwgMS4xMTIxLCAxLjQ3NjE3LCAxLjgzNzU1LCAyLjIwNTUzIiwgXAotICAgICAgICAgICIwLjEwODk2OCwgMC40NTg5OTksIDAuNzQ4MzA1LCAxLjExMjEsIDEuNDc2MTYsIDEuODM3NTIsIDIuMjAxODciLCBcCi0gICAgICAgICAgIjAuMTA4ODI0LCAwLjQ1OTEsIDAuNzQ2OTE3LCAxLjExMjE5LCAxLjQ3NjMzLCAxLjg0MDU3LCAyLjIwMTk1Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE3ODc1NiwgMC4zOTAwMjIsIDAuNTU1MTc5LCAwLjc2MTQ1NCwgMC45Njc1OTcsIDEuMTczNzIsIDEuMzc5ODciLCBcCi0gICAgICAgICAgIjAuMTkwMTUsIDAuNDAxMzk1LCAwLjU2NjU5LCAwLjc3MjgyMywgMC45Nzg5NjEsIDEuMTg1MSwgMS4zOTEyMyIsIFwKLSAgICAgICAgICAiMC4yMDI5OSwgMC40MTQ0MDcsIDAuNTc5NiwgMC43ODU4NDgsIDAuOTkyMDUzLCAxLjE5ODI1LCAxLjQwNDI4IiwgXAotICAgICAgICAgICIwLjIxNTQyNSwgMC40MjY3ODksIDAuNTkxOTc0LCAwLjc5ODI3MSwgMS4wMDQ0OCwgMS4yMTA1MSwgMS40MTY2NSIsIFwKLSAgICAgICAgICAiMC4yMjc3OSwgMC40MzkxNzYsIDAuNjA0MzczLCAwLjgxMDYxNCwgMS4wMTY4MiwgMS4yMjMwNSwgMS40MjkwNiIsIFwKLSAgICAgICAgICAiMC4yNDc0NzQsIDAuNDU4NzUxLCAwLjYyMzkyNiwgMC44MzAxOTYsIDEuMDM2MzQsIDEuMjQyNSwgMS40NDg2MiIsIFwKLSAgICAgICAgICAiMC4yNjQyNjUsIDAuNDc1NjY3LCAwLjY0MDg0NCwgMC44NDcxMTksIDEuMDUzMzQsIDEuMjU5MzksIDEuNDY1NTQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTE2NjE4LCAwLjUxMzk3MSwgMC44NDA4OTcsIDEuMjUxODEsIDEuNjYzMDIsIDIuMDcxNzcsIDIuNDg0OTMiLCBcCi0gICAgICAgICAgIjAuMTE2NjExLCAwLjUxNDkzNSwgMC44NDAzNTcsIDEuMjUxODQsIDEuNjYzMjQsIDIuMDcwNzQsIDIuNDg0ODIiLCBcCi0gICAgICAgICAgIjAuMTE2NTQzLCAwLjUxNDc1MiwgMC44NDExMjcsIDEuMjUwNTUsIDEuNjU4NzQsIDIuMDcyOTMsIDIuNDg0MDUiLCBcCi0gICAgICAgICAgIjAuMTE2NzA1LCAwLjUxNDYxOSwgMC44NDA4NDYsIDEuMjUxNjksIDEuNjYyMjYsIDIuMDc0ODMsIDIuNDgyNTciLCBcCi0gICAgICAgICAgIjAuMTE2NTA3LCAwLjUxNDc5NiwgMC44NDEwNjEsIDEuMjQ5OSwgMS42NjIyLCAyLjA3MzA4LCAyLjQ4NDAyIiwgXAotICAgICAgICAgICIwLjExNjQ1MiwgMC41MTQ5MTYsIDAuODM5NTE1LCAxLjI1MTkzLCAxLjY2MzU1LCAyLjA3MTMzLCAyLjQ4MTkyIiwgXAotICAgICAgICAgICIwLjExNjUzOSwgMC41MTMzNzYsIDAuODQxMDQ3LCAxLjI1MTg4LCAxLjY2MjExLCAyLjA3NTAzLCAyLjQ4Mjg1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlMwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yOTA3MDIsIDAuNDg5MTI3LCAwLjYzMzQxNiwgMC44MTI3MTgsIDAuOTkxODcyLCAxLjE3MDk0LCAxLjM1MDA4IiwgXAotICAgICAgICAgICIwLjMwMTA5MiwgMC40OTk3MTIsIDAuNjQzOTIxLCAwLjgyMzIyMiwgMS4wMDIzNywgMS4xODE2MiwgMS4zNjA1NyIsIFwKLSAgICAgICAgICAiMC4zMTUxNTQsIDAuNTEzNTcyLCAwLjY1Nzg2MSwgMC44MzcxNTUsIDEuMDE2MywgMS4xOTUzNywgMS4zNzQ1NCIsIFwKLSAgICAgICAgICAiMC4zMjg1MDQsIDAuNTI3MTIxLCAwLjY3MTM1LCAwLjg1MDYzOSwgMS4wMjk3OSwgMS4yMDkwNSwgMS4zODgiLCBcCi0gICAgICAgICAgIjAuMzQyMjY2LCAwLjU0MDY5LCAwLjY4NDk3MSwgMC44NjQyNjUsIDEuMDQzNDEsIDEuMjIyNjEsIDEuNDAxNjYiLCBcCi0gICAgICAgICAgIjAuMzY0MDk4LCAwLjU2MjUxMSwgMC43MDY4MDQsIDAuODg2MDk4LCAxLjA2NTI1LCAxLjI0NDQ1LCAxLjQyMzQiLCBcCi0gICAgICAgICAgIjAuMzgzMDQ4LCAwLjU4MTY1OSwgMC43MjU5MDcsIDAuOTA1MjA3LCAxLjA4NDM1LCAxLjI2MzU2LCAxLjQ0MjQ4Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEzMTM4NiwgMC40NzQ4MzksIDAuNzU5MzA5LCAxLjExNzI5LCAxLjQ3ODgxLCAxLjg0MjQyLCAyLjIxMDEzIiwgXAotICAgICAgICAgICIwLjEzMDk1MywgMC40NzQ4NzksIDAuNzU5MzQ1LCAxLjExNzExLCAxLjQ4MTkzLCAxLjg0MDg0LCAyLjIwOTk1IiwgXAotICAgICAgICAgICIwLjEzMTI1OCwgMC40NzQ4MjEsIDAuNzU5MjMxLCAxLjExNzE3LCAxLjQ3ODYzLCAxLjg0MjQ1LCAyLjIxMDAzIiwgXAotICAgICAgICAgICIwLjEzMTExNiwgMC40NzQ4MjIsIDAuNzU5MzI2LCAxLjExOTI4LCAxLjQ3OTU0LCAxLjg0MDg1LCAyLjIwOTg4IiwgXAotICAgICAgICAgICIwLjEzMTI3MSwgMC40NzQ3ODYsIDAuNzU5MTU2LCAxLjExNjk3LCAxLjQ3OTcyLCAxLjg0NTk5LCAyLjIxIiwgXAotICAgICAgICAgICIwLjEzMTM1OCwgMC40NzQ3OTgsIDAuNzU5MTU2LCAxLjExOTA3LCAxLjQ3OTc1LCAxLjg0NiwgMi4yMDk4MSIsIFwKLSAgICAgICAgICAiMC4xMzEyMTYsIDAuNDc0ODM1LCAwLjc1OTE5NywgMS4xMTY5NiwgMS40Nzk3MSwgMS44NDYwMiwgMi4yMDU0NCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yNzMyMjcsIDAuNDk3MTg5LCAwLjY2MjgzNywgMC44NjkyMDgsIDEuMDc1MzgsIDEuMjgxNTcsIDEuNDg3NzgiLCBcCi0gICAgICAgICAgIjAuMjgzNDcyLCAwLjUwNzU0LCAwLjY3MzIxNSwgMC44Nzk1NjEsIDEuMDg1ODIsIDEuMjkyMDMsIDEuNDk4MTEiLCBcCi0gICAgICAgICAgIjAuMjk2Njg4LCAwLjUyMDcxNywgMC42ODYzODQsIDAuODkyNjg2LCAxLjA5ODk4LCAxLjMwNTIsIDEuNTExMjciLCBcCi0gICAgICAgICAgIjAuMzA5ODA3LCAwLjUzMzY2OCwgMC42OTkzOSwgMC45MDU3NDIsIDEuMTEyMDcsIDEuMzE4MTIsIDEuNTI0MzMiLCBcCi0gICAgICAgICAgIjAuMzIyODE1LCAwLjU0NjgxLCAwLjcxMjQ5MywgMC45MTg4NCwgMS4xMjUxLCAxLjMzMTMyLCAxLjUzNzM5IiwgXAotICAgICAgICAgICIwLjM0Mzg3MSwgMC41Njc3MzUsIDAuNzMzNDU5LCAwLjkzOTgyNSwgMS4xNDYxNSwgMS4zNTIzMiwgMS41NTg0MyIsIFwKLSAgICAgICAgICAiMC4zNjIxNDQsIDAuNTg2MTkyLCAwLjc1MTg4OCwgMC45NTgyODEsIDEuMTY0NTEsIDEuMzcwNzMsIDEuNTc2ODEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTM5NTM2LCAwLjUyOTgyNywgMC44NTA5NDgsIDEuMjU4MjEsIDEuNjY5MiwgMi4wODAxOCwgMi40OTE2NCIsIFwKLSAgICAgICAgICAiMC4xMzkzNTgsIDAuNTI5NDQyLCAwLjg1MTY5NCwgMS4yNjAxNSwgMS42NjYxMSwgMi4wODA1NSwgMi40OTE1MiIsIFwKLSAgICAgICAgICAiMC4xMzk0ODIsIDAuNTI5NDE5LCAwLjg1MTY3MywgMS4yNTcxMSwgMS42NjU0MywgMi4wODA1OCwgMi40OTE1NiIsIFwKLSAgICAgICAgICAiMC4xMzk1MDcsIDAuNTI5ODA2LCAwLjg1MTczOSwgMS4yNTc3LCAxLjY2OTc2LCAyLjA3NjMsIDIuNDkxNiIsIFwKLSAgICAgICAgICAiMC4xMzk0MDYsIDAuNTI5NDU1LCAwLjg1MTcwMywgMS4yNTYzNywgMS42NjY2LCAyLjA4MDUxLCAyLjQ5MTU3IiwgXAotICAgICAgICAgICIwLjEzOTU0NCwgMC41Mjk3NTIsIDAuODUxNzMxLCAxLjI1NzExLCAxLjY2Mzc4LCAyLjA3NTU3LCAyLjQ5MTM1IiwgXAotICAgICAgICAgICIwLjEzOTQwMywgMC41Mjk0NTUsIDAuODUxNjk4LCAxLjI1NTY0LCAxLjY2NTg1LCAyLjA4MDU3LCAyLjQ5MTU3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlMwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMjM2NDksIDAuNTIxOTg2LCAwLjY2NjI0NiwgMC44NDU1MjksIDEuMDI0NjcsIDEuMjAzODcsIDEuMzgyOTEiLCBcCi0gICAgICAgICAgIjAuMzM1NDA4LCAwLjUzMzgyOSwgMC42NzgwNTIsIDAuODU3MzM5LCAxLjAzNjQ4LCAxLjIxNTY3LCAxLjM5NDcxIiwgXAotICAgICAgICAgICIwLjM1MDM3OCwgMC41NDg3MTEsIDAuNjkyOTcyLCAwLjg3MjI1NSwgMS4wNTE0LCAxLjIzMDU5LCAxLjQwOTYzIiwgXAotICAgICAgICAgICIwLjM2NDczNCwgMC41NjMwNzMsIDAuNzA3MzU2LCAwLjg4NjYzNywgMS4wNjU3OCwgMS4yNDQ4NCwgMS40MjQwMSIsIFwKLSAgICAgICAgICAiMC4zNzc2MzQsIDAuNTc2MDAyLCAwLjcyMDIyNywgMC44OTk1MTIsIDEuMDc4NjUsIDEuMjU3ODUsIDEuNDM2ODIiLCBcCi0gICAgICAgICAgIjAuMzk2MTYsIDAuNTk0NDgxLCAwLjczODc1NCwgMC45MTgwMzMsIDEuMDk3MTcsIDEuMjc2MzcsIDEuNDU1NDEiLCBcCi0gICAgICAgICAgIjAuNDEwNjI1LCAwLjYwOTEyMiwgMC43NTMzNjUsIDAuOTMyNjE0LCAxLjExMTc3LCAxLjI5MDk5LCAxLjQ3MDExIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEzMTIzNSwgMC40NzQ3MjYsIDAuNzU5MTY2LCAxLjExNjkxLCAxLjQ3OTgzLCAxLjg0NTk1LCAyLjIxIiwgXAotICAgICAgICAgICIwLjEzMDk1MSwgMC40NzQ3MzksIDAuNzU5MTg5LCAxLjExNzA0LCAxLjQ3OTcxLCAxLjg0NTk1LCAyLjIwOTk2IiwgXAotICAgICAgICAgICIwLjEzMTIyNCwgMC40NzQ3MjYsIDAuNzU5MTM4LCAxLjExNjk0LCAxLjQ3OTY3LCAxLjg0NTk0LCAyLjIwOTk2IiwgXAotICAgICAgICAgICIwLjEzMTE4NywgMC40NzQ2NzMsIDAuNzU5MTE4LCAxLjExNjg1LCAxLjQ3ODI5LCAxLjg0MjMsIDIuMjA5OTIiLCBcCi0gICAgICAgICAgIjAuMTMwODQyLCAwLjQ3NDY4NywgMC43NTkxNTIsIDEuMTE2ODksIDEuNDc5NjksIDEuODQ1OTQsIDIuMjA5NjgiLCBcCi0gICAgICAgICAgIjAuMTMxMjU0LCAwLjQ3NDY4NSwgMC43NTkxMjIsIDEuMTE3ODUsIDEuNDc5NzEsIDEuODQ1OTQsIDIuMjA5OTUiLCBcCi0gICAgICAgICAgIjAuMTMxMDcyLCAwLjQ3NDYyNCwgMC43NTkwNjEsIDEuMTE4OTcsIDEuNDc5MjMsIDEuODQwNzksIDIuMjAzOTciKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzExMjgsIDAuNTM1NTA5LCAwLjcwMTI0MywgMC45MDc2NSwgMS4xMTQsIDEuMzIwMTUsIDEuNTI2MzgiLCBcCi0gICAgICAgICAgIjAuMzIzMjIyLCAwLjU0NzQzMSwgMC43MTMxNjQsIDAuOTE5NTYxLCAxLjEyNTg2LCAxLjMzMjA4LCAxLjUzODE4IiwgXAotICAgICAgICAgICIwLjMzODg2MiwgMC41NjMxMzUsIDAuNzI4ODcsIDAuOTM1MjUxLCAxLjE0MTU2LCAxLjM0Nzc5LCAxLjU1Mzg4IiwgXAotICAgICAgICAgICIwLjM1MzkzOSwgMC41NzgxNzIsIDAuNzQzOSwgMC45NTAyNjksIDEuMTU2NTksIDEuMzYyODIsIDEuNTY4OTIiLCBcCi0gICAgICAgICAgIjAuMzY4NTg4LCAwLjU5MjgxNiwgMC43NTg1NDQsIDAuOTY0OTEyLCAxLjE3MTIzLCAxLjM3NzQ3LCAxLjU4MzU2IiwgXAotICAgICAgICAgICIwLjM5MDE0OSwgMC42MTQzNzcsIDAuNzgwMTA0LCAwLjk4NjQ3LCAxLjE5Mjc4LCAxLjM5OTAzLCAxLjYwNTEyIiwgXAotICAgICAgICAgICIwLjQwNzEyOCwgMC42MzExOTcsIDAuNzk2OTI5LCAxLjAwMzMyLCAxLjIwOTcsIDEuNDE1ODUsIDEuNjIyMTciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTM5NjkzLCAwLjUyOTcyNywgMC44NTIxOCwgMS4yNTY0MSwgMS42NjU4NCwgMi4wODA1NiwgMi40ODUxMSIsIFwKLSAgICAgICAgICAiMC4xMzk3MDUsIDAuNTI5NzI4LCAwLjg1MjA0MywgMS4yNTcyMywgMS42NjM3MywgMi4wODA4NSwgMi40OTE2MyIsIFwKLSAgICAgICAgICAiMC4xMzk2MDQsIDAuNTI5NzIyLCAwLjg1MTk5MSwgMS4yNjAzNCwgMS42NjczMywgMi4wODA3NSwgMi40OTE5IiwgXAotICAgICAgICAgICIwLjEzOTcyLCAwLjUyOTcwNSwgMC44NTE5NiwgMS4yNjAwOSwgMS42NjY4MywgMi4wODA4NSwgMi40OTE4NSIsIFwKLSAgICAgICAgICAiMC4xMzk2NTgsIDAuNTI5NzA0LCAwLjg1MTk1MSwgMS4yNjAwNywgMS42NjY1MSwgMi4wODA4NSwgMi40OTE4OSIsIFwKLSAgICAgICAgICAiMC4xMzk1OTEsIDAuNTI5NzAxLCAwLjg1MTk0NCwgMS4yNjAwNywgMS42NjYxNiwgMi4wODA4NiwgMi40OTE4OSIsIFwKLSAgICAgICAgICAiMC4xMzk3OTEsIDAuNTI5NzQ5LCAwLjg1MTk5LCAxLjI1NjM3LCAxLjY2NjAxLCAyLjA4MDgsIDIuNDgyMTUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUzEiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE3MDU3OSwgMC4zNTU2MTMsIDAuNDk5MTE1LCAwLjY3ODMzMywgMC44NTczNjcsIDEuMDM2NDEsIDEuMjE1NDUiLCBcCi0gICAgICAgICAgIjAuMTgxMjkzLCAwLjM2NjQ1LCAwLjUwOTk0NCwgMC42ODkxOTMsIDAuODY4Mjk5LCAxLjA0NzI2LCAxLjIyNjI1IiwgXAotICAgICAgICAgICIwLjE5NDg3OCwgMC4zODAwNjgsIDAuNTIzNTYyLCAwLjcwMjc5MiwgMC44ODE4MjMsIDEuMDYwODQsIDEuMjM5ODciLCBcCi0gICAgICAgICAgIjAuMjA4NTY2LCAwLjM5Mzc0MiwgMC41MzcyMzQsIDAuNzE2NTE2LCAwLjg5NTU4OCwgMS4wNzQ1OCwgMS4yNTM1NCIsIFwKLSAgICAgICAgICAiMC4yMjIyMTcsIDAuNDA3MzkzLCAwLjU1MDg5OCwgMC43MzAxMTMsIDAuOTA5MTY3LCAxLjA4ODE5LCAxLjI2NzIyIiwgXAotICAgICAgICAgICIwLjI0NDIyMywgMC40Mjk0MzgsIDAuNTcyOTQ0LCAwLjc1MjIwOSwgMC45MzEyNDIsIDEuMTEwMjUsIDEuMjg5MjkiLCBcCi0gICAgICAgICAgIjAuMjYzNjEsIDAuNDQ4ODM5LCAwLjU5MjM2OSwgMC43NzE2NDMsIDAuOTUwNjgsIDEuMTI5NjcsIDEuMzA4NzIiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTA4OTAzLCAwLjQ1OTAyNCwgMC43NDY5NTcsIDEuMTA5NDIsIDEuNDc2MjEsIDEuODM3OTUsIDIuMjA1NzciLCBcCi0gICAgICAgICAgIjAuMTA4Nzg2LCAwLjQ1ODk2NSwgMC43NDY5MzksIDEuMTEyMTcsIDEuNDc2MzQsIDEuODM3ODQsIDIuMjAyMjIiLCBcCi0gICAgICAgICAgIjAuMTA4NzY1LCAwLjQ1ODk4MiwgMC43NDgyMDMsIDEuMTEyMTIsIDEuNDc2MiwgMS44Mzc2OCwgMi4yMDE5IiwgXAotICAgICAgICAgICIwLjEwODc5OSwgMC40NTg5OTIsIDAuNzQ2ODc1LCAxLjEwODg1LCAxLjQ3NjMxLCAxLjgzNjczLCAyLjIwMTkyIiwgXAotICAgICAgICAgICIwLjEwODg2MywgMC40NTg5NDIsIDAuNzQ2OTQ0LCAxLjExMDE4LCAxLjQ3NjE0LCAxLjgzNzUyLCAyLjIwNTM5IiwgXAotICAgICAgICAgICIwLjEwODg1OCwgMC40NTkwMDQsIDAuNzQ2OTE0LCAxLjExMjE1LCAxLjQ3NjIyLCAxLjg0MDUxLCAyLjIwMTg4IiwgXAotICAgICAgICAgICIwLjEwODkzMywgMC40NTkwNTUsIDAuNzQ2ODkzLCAxLjExMjE3LCAxLjQ3NjI1LCAxLjg0MDU0LCAyLjIwMTg4Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIwMDMwNCwgMC40MjM4NjksIDAuNTg5Mzk4LCAwLjc5NTYwMiwgMS4wMDE4MSwgMS4yMDc5NywgMS40MTQiLCBcCi0gICAgICAgICAgIjAuMjEwNjM0LCAwLjQzNDE5OCwgMC41OTk3NjQsIDAuODA2LCAxLjAxMjI1LCAxLjIxODM2LCAxLjQyNDQxIiwgXAotICAgICAgICAgICIwLjIyMzMzMiwgMC40NDY5MjksIDAuNjEyNDg3LCAwLjgxODcyMywgMS4wMjQ5OCwgMS4yMzEwNSwgMS40MzcxIiwgXAotICAgICAgICAgICIwLjIzNTk1OCwgMC40NTk2MTEsIDAuNjI1MTQzLCAwLjgzMTM4MSwgMS4wMzc1NywgMS4yNDM3MiwgMS40NDk4NiIsIFwKLSAgICAgICAgICAiMC4yNDgxNDUsIDAuNDcxODI0LCAwLjYzNzQwNiwgMC44NDM2NTMsIDEuMDQ5NzcsIDEuMjU2MDMsIDEuNDYyMDYiLCBcCi0gICAgICAgICAgIjAuMjY4MTAyLCAwLjQ5MTU4MiwgMC42NTcxNzksIDAuODYzNDM0LCAxLjA2OTU2LCAxLjI3NTY4LCAxLjQ4MTg1IiwgXAotICAgICAgICAgICIwLjI4NTQ1MiwgMC41MDg5NjQsIDAuNjc0NTUsIDAuODgwODIzLCAxLjA4NzA4LCAxLjI5MzE3LCAxLjQ5OTI2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEzODY2OSwgMC41Mjg5MTcsIDAuODUxMTkyLCAxLjI1OTI1LCAxLjY2NTY3LCAyLjA3OTcyLCAyLjQ5MDY5IiwgXAotICAgICAgICAgICIwLjEzODU4NSwgMC41MjkzMjksIDAuODUxMjI5LCAxLjI1NjQ5LCAxLjY2MzEyLCAyLjA3NjQxLCAyLjQ5MDcxIiwgXAotICAgICAgICAgICIwLjEzODYyOCwgMC41MjkxOSwgMC44NTEyNDQsIDEuMjU1OSwgMS42NjMyMSwgMi4wNzk2OSwgMi40OTA3IiwgXAotICAgICAgICAgICIwLjEzODU2NiwgMC41MjkyNDcsIDAuODUxMjIzLCAxLjI1ODg4LCAxLjY2OTA4LCAyLjA3OTczLCAyLjQ5MDg1IiwgXAotICAgICAgICAgICIwLjEzODQ2MSwgMC41Mjk0MDcsIDAuODUxMTc0LCAxLjI1NzYsIDEuNjY0ODcsIDIuMDc5NzUsIDIuNDkwNyIsIFwKLSAgICAgICAgICAiMC4xMzg0NiwgMC41MjkyODcsIDAuODUxMjIxLCAxLjI1NzU1LCAxLjY2OTIxLCAyLjA3OTY2LCAyLjQ5MDciLCBcCi0gICAgICAgICAgIjAuMTM4MDk4LCAwLjUyODkyMywgMC44NTExNzgsIDEuMjU3MDMsIDEuNjY0MDYsIDIuMDc5NjcsIDIuNDkwNzEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUzEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIwNzI1LCAwLjQwNTEwNSwgMC41NDkxNTksIDAuNzI4MjY5LCAwLjkwNzI4NywgMS4wODYyNSwgMS4yNjUzNSIsIFwKLSAgICAgICAgICAiMC4yMTk0MSwgMC40MTc0NDIsIDAuNTYxNDUyLCAwLjc0MDU2MywgMC45MTk1NzMsIDEuMDk4NywgMS4yNzc1MSIsIFwKLSAgICAgICAgICAiMC4yMzQ0MDQsIDAuNDMyNDgzLCAwLjU3NjQ4NCwgMC43NTU1OTMsIDAuOTM0NTk5LCAxLjExMzczLCAxLjI5Mjg0IiwgXAotICAgICAgICAgICIwLjI0ODQzNywgMC40NDY1MTIsIDAuNTkwNTE1LCAwLjc2OTYyNiwgMC45NDg2MzIsIDEuMTI3NzYsIDEuMzA2ODgiLCBcCi0gICAgICAgICAgIjAuMjYyMjgxLCAwLjQ2MDE2NiwgMC42MDQyMDUsIDAuNzgzMjkxLCAwLjk2MjMwOSwgMS4xNDE0MiwgMS4zMjA0OSIsIFwKLSAgICAgICAgICAiMC4yODIzNjksIDAuNDgwNDQyLCAwLjYyNDQzOSwgMC44MDM1NzIsIDAuOTgyNjU4LCAxLjE2MTc2LCAxLjM0MDY0IiwgXAotICAgICAgICAgICIwLjI5ODM4NywgMC40OTYzMjUsIDAuNjQwNDIsIDAuODE5NTM2LCAwLjk5ODU0OSwgMS4xNzc2OCwgMS4zNTY1NCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMzAxMTcsIDAuNDczOTIxLCAwLjc1ODI5MywgMS4xMTYwOCwgMS40Nzg3LCAxLjg0NDU3LCAyLjIwOTA1IiwgXAotICAgICAgICAgICIwLjEyOTg2NSwgMC40NzM5MSwgMC43NTgzNDQsIDEuMTE1ODgsIDEuNDc4NTIsIDEuODQ3NzEsIDIuMjA4MzgiLCBcCi0gICAgICAgICAgIjAuMTI5OTkzLCAwLjQ3MzkxMSwgMC43NTgzNDQsIDEuMTE2OTksIDEuNDc4NDQsIDEuODM5OSwgMi4yMDMxNSIsIFwKLSAgICAgICAgICAiMC4xMjk5NTYsIDAuNDczOTA2LCAwLjc1ODMxNCwgMS4xMTY5NywgMS40Nzg0NCwgMS44Mzk4OSwgMi4yMDMzOCIsIFwKLSAgICAgICAgICAiMC4xMzAwODksIDAuNDczODgyLCAwLjc1ODMxOSwgMS4xMTYwNCwgMS40Nzg3MywgMS44NDc4NSwgMi4yMDI5OCIsIFwKLSAgICAgICAgICAiMC4xMjk5NjIsIDAuNDczODg1LCAwLjc1ODM1OCwgMS4xMTY5MiwgMS40ODExOCwgMS44Mzk4NiwgMi4yMDg5MiIsIFwKLSAgICAgICAgICAiMC4xMjk3MzgsIDAuNDczODc0LCAwLjc1ODI2OCwgMS4xMTY5MywgMS40Nzg1MywgMS44NDgxLCAyLjIwNDk4Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIwMDQ5NiwgMC40MTE3ODksIDAuNTc3MDEyLCAwLjc4MzIxOSwgMC45ODk0MywgMS4xOTU1OCwgMS40MDE2OCIsIFwKLSAgICAgICAgICAiMC4yMTI3MjEsIDAuNDI0MDExLCAwLjU4OTE5NiwgMC43OTU0NTYsIDEuMDAxNjEsIDEuMjA3NzcsIDEuNDEzODkiLCBcCi0gICAgICAgICAgIjAuMjI4MDksIDAuNDM5NDY1LCAwLjYwNDYwOSwgMC44MTA5MTEsIDEuMDE3MDUsIDEuMjIzMjEsIDEuNDI5MzQiLCBcCi0gICAgICAgICAgIjAuMjQzMzcyLCAwLjQ1NDY1NywgMC42MTk4MDgsIDAuODI2MTAzLCAxLjAzMjI0LCAxLjIzODQxLCAxLjQ0NDYzIiwgXAotICAgICAgICAgICIwLjI1Nzg3NywgMC40NjkyNTksIDAuNjM0NDUxLCAwLjg0MDczNiwgMS4wNDY4OCwgMS4yNTMwNiwgMS40NTkxNSIsIFwKLSAgICAgICAgICAiMC4yNzkzODQsIDAuNDkwNzgsIDAuNjU1OTg0LCAwLjg2MjIyNywgMS4wNjg0NCwgMS4yNzQ2OSwgMS40ODA2OCIsIFwKLSAgICAgICAgICAiMC4yOTYyNDEsIDAuNTA3NjU2LCAwLjY3Mjg0OCwgMC44NzkxMDMsIDEuMDg1MjQsIDEuMjkxNCwgMS40OTc1NCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTY2NjUsIDAuNTE1MDgxLCAwLjgzOTIyLCAxLjI1Mjc5LCAxLjY2MzI5LCAyLjA3MzYsIDIuNDg0NTQiLCBcCi0gICAgICAgICAgIjAuMTE2NTg0LCAwLjUxNTAxNywgMC44NDA1MDQsIDEuMjUyMTIsIDEuNjYxNSwgMi4wNzE2NywgMi40ODE5IiwgXAotICAgICAgICAgICIwLjExNjYxNiwgMC41MTQ5NjUsIDAuODQyMjUzLCAxLjI1MTk0LCAxLjY2MzU4LCAyLjA3MTMxLCAyLjQ4NDgzIiwgXAotICAgICAgICAgICIwLjExNjQ3MSwgMC41MTQ5NzIsIDAuODQyMjI3LCAxLjI1MTk5LCAxLjY2MzUxLCAyLjA3MTUzLCAyLjQ4NDA1IiwgXAotICAgICAgICAgICIwLjExNjY4NywgMC41MTQ4OTksIDAuODQwOTc3LCAxLjI1MTcsIDEuNjYwNzEsIDIuMDczNjksIDIuNDg0NzQiLCBcCi0gICAgICAgICAgIjAuMTE2NTMyLCAwLjUxNDgwNCwgMC44NDA1MjQsIDEuMjUwNDUsIDEuNjYyNTQsIDIuMDcwNTEsIDIuNDg0NTciLCBcCi0gICAgICAgICAgIjAuMTE2NDcxLCAwLjUxNDk1LCAwLjg0MjE0OSwgMS4yNTE5NiwgMS42NjM1NywgMi4wNzEyOCwgMi40ODU4NCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjc4NSwgMC4wMDI4NDgsIDAuMDAyODYxLCAwLjAwMjg2OCwgMC4wMDI4NzIsIDAuMDAyODc0LCAwLjAwMjg3NiIsIFwKLSAgICAgICAgICAiMC4wMDI3NzUsIDAuMDAyODM5LCAwLjAwMjg1MSwgMC4wMDI4NTgsIDAuMDAyODYyLCAwLjAwMjg2NSwgMC4wMDI4NjYiLCBcCi0gICAgICAgICAgIjAuMDAyNzcsIDAuMDAyODM1LCAwLjAwMjg0NywgMC4wMDI4NTQsIDAuMDAyODU3LCAwLjAwMjg2LCAwLjAwMjg2MSIsIFwKLSAgICAgICAgICAiMC4wMDI3NjcsIDAuMDAyODMxLCAwLjAwMjg0MywgMC4wMDI4NTEsIDAuMDAyODU1LCAwLjAwMjg1NywgMC4wMDI4NTkiLCBcCi0gICAgICAgICAgIjAuMDAyNzY1LCAwLjAwMjgyOSwgMC4wMDI4NDEsIDAuMDAyODQ5LCAwLjAwMjg1MiwgMC4wMDI4NTQsIDAuMDAyODU2IiwgXAotICAgICAgICAgICIwLjAwMjc2MSwgMC4wMDI4MjQsIDAuMDAyODM3LCAwLjAwMjg0NSwgMC4wMDI4NDksIDAuMDAyODUxLCAwLjAwMjg1MyIsIFwKLSAgICAgICAgICAiMC4wMDI3NTgsIDAuMDAyODIxLCAwLjAwMjgzNCwgMC4wMDI4NDIsIDAuMDAyODQ2LCAwLjAwMjg0OSwgMC4wMDI4NTEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQyNTcsIDAuMDA0MzQsIDAuMDA0MzU3LCAwLjAwNDM2NiwgMC4wMDQzNzEsIDAuMDA0Mzc0LCAwLjAwNDM3NyIsIFwKLSAgICAgICAgICAiMC4wMDQyNTMsIDAuMDA0MzM2LCAwLjAwNDM1MiwgMC4wMDQzNjIsIDAuMDA0MzY3LCAwLjAwNDM3LCAwLjAwNDM3MiIsIFwKLSAgICAgICAgICAiMC4wMDQyNTEsIDAuMDA0MzM0LCAwLjAwNDM1LCAwLjAwNDM2LCAwLjAwNDM2NSwgMC4wMDQzNjgsIDAuMDA0MzciLCBcCi0gICAgICAgICAgIjAuMDA0MjQ5LCAwLjAwNDMzMiwgMC4wMDQzNDksIDAuMDA0MzU4LCAwLjAwNDM2MywgMC4wMDQzNjYsIDAuMDA0MzY4IiwgXAotICAgICAgICAgICIwLjAwNDI0NywgMC4wMDQzMywgMC4wMDQzNDcsIDAuMDA0MzU2LCAwLjAwNDM2MiwgMC4wMDQzNjUsIDAuMDA0MzY3IiwgXAotICAgICAgICAgICIwLjAwNDI0NSwgMC4wMDQzMjcsIDAuMDA0MzQ0LCAwLjAwNDM1NCwgMC4wMDQzNTksIDAuMDA0MzYzLCAwLjAwNDM2NSIsIFwKLSAgICAgICAgICAiMC4wMDQyNDMsIDAuMDA0MzI0LCAwLjAwNDM0MSwgMC4wMDQzNTIsIDAuMDA0MzU3LCAwLjAwNDM2MSwgMC4wMDQzNjMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI2NzksIDAuMDAyNzQzLCAwLjAwMjc1NSwgMC4wMDI3NjIsIDAuMDAyNzY2LCAwLjAwMjc2OCwgMC4wMDI3NyIsIFwKLSAgICAgICAgICAiMC4wMDI2NjksIDAuMDAyNzMzLCAwLjAwMjc0NSwgMC4wMDI3NTIsIDAuMDAyNzU3LCAwLjAwMjc1OSwgMC4wMDI3NiIsIFwKLSAgICAgICAgICAiMC4wMDI2NjQsIDAuMDAyNzI5LCAwLjAwMjc0MSwgMC4wMDI3NDgsIDAuMDAyNzUyLCAwLjAwMjc1NCwgMC4wMDI3NTYiLCBcCi0gICAgICAgICAgIjAuMDAyNjYxLCAwLjAwMjcyNiwgMC4wMDI3MzgsIDAuMDAyNzQ1LCAwLjAwMjc0OSwgMC4wMDI3NTEsIDAuMDAyNzUzIiwgXAotICAgICAgICAgICIwLjAwMjY1OSwgMC4wMDI3MjIsIDAuMDAyNzM1LCAwLjAwMjc0MiwgMC4wMDI3NDYsIDAuMDAyNzQ5LCAwLjAwMjc1IiwgXAotICAgICAgICAgICIwLjAwMjY1NSwgMC4wMDI3MTgsIDAuMDAyNzMxLCAwLjAwMjczOSwgMC4wMDI3NDMsIDAuMDAyNzQ1LCAwLjAwMjc0NyIsIFwKLSAgICAgICAgICAiMC4wMDI2NTMsIDAuMDAyNzE1LCAwLjAwMjcyOSwgMC4wMDI3MzYsIDAuMDAyNzQsIDAuMDAyNzQzLCAwLjAwMjc0NSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDQ0LCAwLjAwNDUyMywgMC4wMDQ1MzksIDAuMDA0NTQ5LCAwLjAwNDU1NCwgMC4wMDQ1NTcsIDAuMDA0NTU5IiwgXAotICAgICAgICAgICIwLjAwNDQzNCwgMC4wMDQ1MTgsIDAuMDA0NTM0LCAwLjAwNDU0MywgMC4wMDQ1NDksIDAuMDA0NTUyLCAwLjAwNDU1NCIsIFwKLSAgICAgICAgICAiMC4wMDQ0MzIsIDAuMDA0NTE2LCAwLjAwNDUzMiwgMC4wMDQ1NDIsIDAuMDA0NTQ3LCAwLjAwNDU1LCAwLjAwNDU1MiIsIFwKLSAgICAgICAgICAiMC4wMDQ0MzEsIDAuMDA0NTE0LCAwLjAwNDUzLCAwLjAwNDU0LCAwLjAwNDU0NSwgMC4wMDQ1NDgsIDAuMDA0NTUiLCBcCi0gICAgICAgICAgIjAuMDA0NDI5LCAwLjAwNDUxMiwgMC4wMDQ1MjksIDAuMDA0NTM4LCAwLjAwNDU0MywgMC4wMDQ1NDcsIDAuMDA0NTQ5IiwgXAotICAgICAgICAgICIwLjAwNDQyNywgMC4wMDQ1MDksIDAuMDA0NTI2LCAwLjAwNDUzNiwgMC4wMDQ1NDEsIDAuMDA0NTQ1LCAwLjAwNDU0NyIsIFwKLSAgICAgICAgICAiMC4wMDQ0MjQsIDAuMDA0NTA2LCAwLjAwNDUyMywgMC4wMDQ1MzQsIDAuMDA0NTM5LCAwLjAwNDU0MywgMC4wMDQ1NDUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDIxMjUsIDAuMDAyMTY0LCAwLjAwMjE2OSwgMC4wMDIxNzIsIDAuMDAyMTczLCAwLjAwMjE3NCwgMC4wMDIxNzQiLCBcCi0gICAgICAgICAgIjAuMDAyMTE1LCAwLjAwMjE1NSwgMC4wMDIxNiwgMC4wMDIxNjIsIDAuMDAyMTY0LCAwLjAwMjE2NCwgMC4wMDIxNjUiLCBcCi0gICAgICAgICAgIjAuMDAyMTA4LCAwLjAwMjE0OSwgMC4wMDIxNTQsIDAuMDAyMTU3LCAwLjAwMjE1OCwgMC4wMDIxNTksIDAuMDAyMTYiLCBcCi0gICAgICAgICAgIjAuMDAyMTAzLCAwLjAwMjE0NSwgMC4wMDIxNSwgMC4wMDIxNTMsIDAuMDAyMTU0LCAwLjAwMjE1NSwgMC4wMDIxNTYiLCBcCi0gICAgICAgICAgIjAuMDAyMDk5LCAwLjAwMjE0MiwgMC4wMDIxNDcsIDAuMDAyMTUsIDAuMDAyMTUxLCAwLjAwMjE1MywgMC4wMDIxNTMiLCBcCi0gICAgICAgICAgIjAuMDAyMDk0LCAwLjAwMjEzNywgMC4wMDIxNDMsIDAuMDAyMTQ3LCAwLjAwMjE0OCwgMC4wMDIxNSwgMC4wMDIxNSIsIFwKLSAgICAgICAgICAiMC4wMDIwODksIDAuMDAyMTM0LCAwLjAwMjE0MSwgMC4wMDIxNDQsIDAuMDAyMTQ2LCAwLjAwMjE0NywgMC4wMDIxNDciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDMxMiwgMC4wMDMxNzYsIDAuMDAzMTgzLCAwLjAwMzE4NywgMC4wMDMxODgsIDAuMDAzMTksIDAuMDAzMTkiLCBcCi0gICAgICAgICAgIjAuMDAzMTE1LCAwLjAwMzE3MSwgMC4wMDMxNzgsIDAuMDAzMTgyLCAwLjAwMzE4NCwgMC4wMDMxODUsIDAuMDAzMTg2IiwgXAotICAgICAgICAgICIwLjAwMzExMSwgMC4wMDMxNjksIDAuMDAzMTc2LCAwLjAwMzE3OSwgMC4wMDMxODEsIDAuMDAzMTgyLCAwLjAwMzE4MyIsIFwKLSAgICAgICAgICAiMC4wMDMxMDcsIDAuMDAzMTY2LCAwLjAwMzE3MywgMC4wMDMxNzcsIDAuMDAzMTc5LCAwLjAwMzE4LCAwLjAwMzE4MSIsIFwKLSAgICAgICAgICAiMC4wMDMxMDQsIDAuMDAzMTYzLCAwLjAwMzE3MSwgMC4wMDMxNzYsIDAuMDAzMTc4LCAwLjAwMzE3OSwgMC4wMDMxOCIsIFwKLSAgICAgICAgICAiMC4wMDMwOTgsIDAuMDAzMTYsIDAuMDAzMTY4LCAwLjAwMzE3MywgMC4wMDMxNzUsIDAuMDAzMTc3LCAwLjAwMzE3OCIsIFwKLSAgICAgICAgICAiMC4wMDMwOTQsIDAuMDAzMTU3LCAwLjAwMzE2NywgMC4wMDMxNzIsIDAuMDAzMTc0LCAwLjAwMzE3NiwgMC4wMDMxNzciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTMCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0MjgxLCAwLjAwNDM0NCwgMC4wMDQzNTcsIDAuMDA0MzY0LCAwLjAwNDM2OCwgMC4wMDQzNzEsIDAuMDA0MzcyIiwgXAotICAgICAgICAgICIwLjAwNDI3NiwgMC4wMDQzMzksIDAuMDA0MzUxLCAwLjAwNDM1OSwgMC4wMDQzNjMsIDAuMDA0MzY1LCAwLjAwNDM2NiIsIFwKLSAgICAgICAgICAiMC4wMDQyNzIsIDAuMDA0MzM2LCAwLjAwNDM0OCwgMC4wMDQzNTYsIDAuMDA0MzYsIDAuMDA0MzYxLCAwLjAwNDM2MyIsIFwKLSAgICAgICAgICAiMC4wMDQyNzEsIDAuMDA0MzM0LCAwLjAwNDM0NiwgMC4wMDQzNTQsIDAuMDA0MzU3LCAwLjAwNDM2LCAwLjAwNDM2MiIsIFwKLSAgICAgICAgICAiMC4wMDQyNywgMC4wMDQzMzQsIDAuMDA0MzQ2LCAwLjAwNDM1MywgMC4wMDQzNTcsIDAuMDA0MzU5LCAwLjAwNDM2MSIsIFwKLSAgICAgICAgICAiMC4wMDQyNywgMC4wMDQzMzIsIDAuMDA0MzQ1LCAwLjAwNDM1MiwgMC4wMDQzNTcsIDAuMDA0MzU5LCAwLjAwNDM2IiwgXAotICAgICAgICAgICIwLjAwNDI2OSwgMC4wMDQzMzIsIDAuMDA0MzQ1LCAwLjAwNDM1MiwgMC4wMDQzNTcsIDAuMDA0MzU5LCAwLjAwNDM2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0MTk0LCAwLjAwNDI3NiwgMC4wMDQyOTMsIDAuMDA0MzAyLCAwLjAwNDMwNywgMC4wMDQzMTEsIDAuMDA0MzEzIiwgXAotICAgICAgICAgICIwLjAwNDE4MSwgMC4wMDQyNjMsIDAuMDA0MjgsIDAuMDA0MjksIDAuMDA0Mjk1LCAwLjAwNDI5OCwgMC4wMDQzMDEiLCBcCi0gICAgICAgICAgIjAuMDA0MTc2LCAwLjAwNDI1OCwgMC4wMDQyNzUsIDAuMDA0Mjg0LCAwLjAwNDI5LCAwLjAwNDI5MywgMC4wMDQyOTUiLCBcCi0gICAgICAgICAgIjAuMDA0MTcyLCAwLjAwNDI1NCwgMC4wMDQyNzEsIDAuMDA0MjgxLCAwLjAwNDI4NiwgMC4wMDQyODksIDAuMDA0MjkyIiwgXAotICAgICAgICAgICIwLjAwNDE3MSwgMC4wMDQyNTMsIDAuMDA0MjcsIDAuMDA0MjgsIDAuMDA0Mjg1LCAwLjAwNDI4OCwgMC4wMDQyOTEiLCBcCi0gICAgICAgICAgIjAuMDA0MTcyLCAwLjAwNDI1NCwgMC4wMDQyNzEsIDAuMDA0MjgxLCAwLjAwNDI4NiwgMC4wMDQyODksIDAuMDA0MjkxIiwgXAotICAgICAgICAgICIwLjAwNDE3MywgMC4wMDQyNTUsIDAuMDA0MjcyLCAwLjAwNDI4MiwgMC4wMDQyODcsIDAuMDA0MjksIDAuMDA0MjkzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUzEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzU1MiwgMC4wMDM2MDcsIDAuMDAzNjE0LCAwLjAwMzYxOSwgMC4wMDM2MjEsIDAuMDAzNjIyLCAwLjAwMzYyMyIsIFwKLSAgICAgICAgICAiMC4wMDM1NjEsIDAuMDAzNjE1LCAwLjAwMzYyMywgMC4wMDM2MjgsIDAuMDAzNjMyLCAwLjAwMzYzMywgMC4wMDM2MzQiLCBcCi0gICAgICAgICAgIjAuMDAzNTg0LCAwLjAwMzYzOCwgMC4wMDM2NDYsIDAuMDAzNjUsIDAuMDAzNjUzLCAwLjAwMzY1NSwgMC4wMDM2NTUiLCBcCi0gICAgICAgICAgIjAuMDAzNTk3LCAwLjAwMzY1MSwgMC4wMDM2NTksIDAuMDAzNjYzLCAwLjAwMzY2NiwgMC4wMDM2NjgsIDAuMDAzNjY4IiwgXAotICAgICAgICAgICIwLjAwMzYxNCwgMC4wMDM2NjcsIDAuMDAzNjc1LCAwLjAwMzY4LCAwLjAwMzY4MywgMC4wMDM2ODQsIDAuMDAzNjg2IiwgXAotICAgICAgICAgICIwLjAwMzYzNywgMC4wMDM2ODksIDAuMDAzNjk4LCAwLjAwMzcwMywgMC4wMDM3MDYsIDAuMDAzNzA4LCAwLjAwMzcwOSIsIFwKLSAgICAgICAgICAiMC4wMDM2NTMsIDAuMDAzNzA1LCAwLjAwMzcxNCwgMC4wMDM3MiwgMC4wMDM3MjMsIDAuMDAzNzI1LCAwLjAwMzcyNiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjg5NSwgMC4wMDI5NTcsIDAuMDAyOTY1LCAwLjAwMjk3MSwgMC4wMDI5NzMsIDAuMDAyOTc1LCAwLjAwMjk3NiIsIFwKLSAgICAgICAgICAiMC4wMDI4ODUsIDAuMDAyOTQ2LCAwLjAwMjk1NSwgMC4wMDI5NiwgMC4wMDI5NjMsIDAuMDAyOTY0LCAwLjAwMjk2NSIsIFwKLSAgICAgICAgICAiMC4wMDI4ODIsIDAuMDAyOTQzLCAwLjAwMjk1MiwgMC4wMDI5NTcsIDAuMDAyOTU5LCAwLjAwMjk2MSwgMC4wMDI5NjIiLCBcCi0gICAgICAgICAgIjAuMDAyODgxLCAwLjAwMjk0MSwgMC4wMDI5NSwgMC4wMDI5NTUsIDAuMDAyOTU3LCAwLjAwMjk1OSwgMC4wMDI5NiIsIFwKLSAgICAgICAgICAiMC4wMDI4ODEsIDAuMDAyOTQyLCAwLjAwMjk1LCAwLjAwMjk1NSwgMC4wMDI5NTgsIDAuMDAyOTU5LCAwLjAwMjk2MSIsIFwKLSAgICAgICAgICAiMC4wMDI4ODMsIDAuMDAyOTQ0LCAwLjAwMjk1MiwgMC4wMDI5NTcsIDAuMDAyOTYsIDAuMDAyOTYxLCAwLjAwMjk2MiIsIFwKLSAgICAgICAgICAiMC4wMDI4ODQsIDAuMDAyOTQ1LCAwLjAwMjk1NCwgMC4wMDI5NTksIDAuMDAyOTYxLCAwLjAwMjk2MywgMC4wMDI5NjQiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogTVgzWDQgKgotICogLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKE1YM1g0KSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMzE3ODMyOwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2MjAyMzI7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjE4NTYyOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDYyMDIzMjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA4MjMsIDAuMDAwODEzLCAwLjAwMDgwNiwgMC4wMDA4MDIsIDAuMDAwNzk5LCAwLjAwMDc5NiwgMC4wMDA3OTQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDE5MTMsIDAuMDAxOTA4LCAwLjAwMTkwNSwgMC4wMDE5MDIsIDAuMDAxOTAxLCAwLjAwMTksIDAuMDAxODk5Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2MTI0NzQ7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjEwODU0OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDYxMjQ3NDsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxNTksIDAuMDAwMTYsIDAuMDAwMTYxLCAwLjAwMDE2MSwgMC4wMDAxNjIsIDAuMDAwMTYyLCAwLjAwMDE2MiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDE2NywgMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQykgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwODA4MjkyOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDgwNDg0ODsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA4MDgyOTI7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjk1LCAwLjAwMDI5OCwgMC4wMDAyOTksIDAuMDAwMjk5LCAwLjAwMDMsIDAuMDAwMywgMC4wMDAzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzEzLCAwLjAwMDMwOCwgMC4wMDAzMDgsIDAuMDAwMzA4LCAwLjAwMDMwOCwgMC4wMDAzMDgsIDAuMDAwMzA4Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxMTEzODE7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxMTEzOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTExMzgxOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDIyOCwgMC4wMDAyMSwgMC4wMDAyLCAwLjAwMDE5NiwgMC4wMDAxOTUsIDAuMDAwMTkzLCAwLjAwMDE5MyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTUzMSwgMC4wMDE1MTksIDAuMDAxNTExLCAwLjAwMTUwOCwgMC4wMDE1MDYsIDAuMDAxNTA1LCAwLjAwMTUwNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUzEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTQwNTQyOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTQwNDc2OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTQwNTQyOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDMyLCAwLjAwMDMwMSwgMC4wMDAyOSwgMC4wMDAyODcsIDAuMDAwMjg1LCAwLjAwMDI4NSwgMC4wMDAyODMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDE2NjQsIDAuMDAxNjUzLCAwLjAwMTY0NSwgMC4wMDE2NDIsIDAuMDAxNjQsIDAuMDAxNjM4LCAwLjAwMTYzOCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjQ2MDA4NzsKLSAgICBmdW5jdGlvbiA6ICIoKFMxIEMpICsgKCFTMSAoKFMwIEIpICsgKCFTMCBBKSkpKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zNTQ3NjQsIDAuNTI4MjkyLCAwLjY2MTc5MSwgMC43NTM3NjMsIDAuODk5MTczLCAxLjAyNjEsIDEuMjA3MTgiLCBcCi0gICAgICAgICAgIjAuMzY2NDM1LCAwLjUzOTgwNCwgMC42NzMzMTcsIDAuNzY1MjYsIDAuOTEwNjc3LCAxLjAzNzU2LCAxLjIxODY5IiwgXAotICAgICAgICAgICIwLjM4MDE2MywgMC41NTM2MTYsIDAuNjg3MTUxLCAwLjc3ODk2NiwgMC45MjQ0NDksIDEuMDUxNCwgMS4yMzI0NyIsIFwKLSAgICAgICAgICAiMC4zOTQxMzksIDAuNTY3MjAzLCAwLjcwMDc0OSwgMC43OTI2NzIsIDAuOTM4MTM4LCAxLjA2NTA5LCAxLjI0NjE1IiwgXAotICAgICAgICAgICIwLjQwNzU2OCwgMC41ODA5NjUsIDAuNzE0NDk5LCAwLjgwNjMxNywgMC45NTE4MDMsIDEuMDc4NzUsIDEuMjU5ODIiLCBcCi0gICAgICAgICAgIjAuNDI5MzgyLCAwLjYwMjc2MywgMC43MzYzMzIsIDAuODI4MTE0LCAwLjk3MzY2NiwgMS4xMDA1OSwgMS4yODE3MyIsIFwKLSAgICAgICAgICAiMC40NDg2NTMsIDAuNjIyMDE3LCAwLjc1NTUzNCwgMC44NDc0NzcsIDAuOTkyODg5LCAxLjExOTc2LCAxLjMwMDkiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTk4NDIsIDAuMzY1MDE2LCAwLjYwNzgxNiwgMC43ODQ3ODcsIDEuMDcyOTIsIDEuMzI3MTIsIDEuNjg5MzciLCBcCi0gICAgICAgICAgIjAuMTE5NzEsIDAuMzY0OTMyLCAwLjYwNzc0LCAwLjc4NDY5NiwgMS4wNzI4MSwgMS4zMjY2MywgMS42ODkwMyIsIFwKLSAgICAgICAgICAiMC4xMTk2MzYsIDAuMzY0ODg5LCAwLjYwNzcyNSwgMC43ODQ4MjMsIDEuMDcyNjIsIDEuMzI2NywgMS42OTA4NCIsIFwKLSAgICAgICAgICAiMC4xMTkyNTIsIDAuMzY0OTE3LCAwLjYwNzYwMiwgMC43ODQ1NDQsIDEuMDcyNzUsIDEuMzI2ODksIDEuNjg5MjEiLCBcCi0gICAgICAgICAgIjAuMTE5NjczLCAwLjM2NDg4OSwgMC42MDc3MjMsIDAuNzg0ODYyLCAxLjA3MjczLCAxLjMyNjksIDEuNjkxMTMiLCBcCi0gICAgICAgICAgIjAuMTE5ODEyLCAwLjM2NDkzNiwgMC42MDc3MzcsIDAuNzg0OTU3LCAxLjA3Mjc3LCAxLjMyMzg4LCAxLjY5MTYzIiwgXAotICAgICAgICAgICIwLjExOTUyNSwgMC4zNjQ5MTUsIDAuNjA3NzMyLCAwLjc4NDcwNCwgMS4wNzI2OSwgMS4zMjYzOCwgMS42ODg3NyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMyODQ1NSwgMC41MTc4OTYsIDAuNjY5NTM2LCAwLjc3NDYyOSwgMC45NDE1NzksIDEuMDg3MzksIDEuMjk1NDYiLCBcCi0gICAgICAgICAgIjAuMzQwMjkxLCAwLjUyOTU1LCAwLjY4MTA0MiwgMC43ODYxMDQsIDAuOTUzMDYzLCAxLjA5ODkzLCAxLjMwNjk3IiwgXAotICAgICAgICAgICIwLjM1MzU4LCAwLjU0Mjg3MSwgMC42OTQzNjMsIDAuNzk5NDg1LCAwLjk2NjQ0OCwgMS4xMTIyNSwgMS4zMjAzMyIsIFwKLSAgICAgICAgICAiMC4zNjYxODgsIDAuNTU1NDUyLCAwLjcwNjkyNiwgMC44MTE5NTksIDAuOTc4OTgxLCAxLjEyNDgxLCAxLjMzMjg2IiwgXAotICAgICAgICAgICIwLjM3ODYwNCwgMC41Njc4OTYsIDAuNzE5MzQ5LCAwLjgyNDM2MiwgMC45OTE0MjUsIDEuMTM3MjEsIDEuMzQ1MjMiLCBcCi0gICAgICAgICAgIjAuMzk4MjI1LCAwLjU4NzYwNSwgMC43MzkxNzMsIDAuODQ0Mjg2LCAxLjAxMTI1LCAxLjE1NzAyLCAxLjM2NTEyIiwgXAotICAgICAgICAgICIwLjQxNTU3OSwgMC42MDQ4OTYsIDAuNzU2MzM5LCAwLjg2MTM3MywgMS4wMjgzNywgMS4xNzQyMywgMS4zODIyNSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEyMjA3LCAwLjM5OTA5MSwgMC42NzQ3NDIsIDAuODc2MjA3LCAxLjIwMTEzLCAxLjQ4MzcxLCAxLjg5OTAxIiwgXAotICAgICAgICAgICIwLjEyMjQ3NiwgMC4zOTkxOTgsIDAuNjc0Njc2LCAwLjg3NjE5MSwgMS4yMDEwNSwgMS40ODQzMywgMS44OTUzNSIsIFwKLSAgICAgICAgICAiMC4xMjIzODUsIDAuMzk5MDc1LCAwLjY3NDc0NSwgMC44NzYxNDUsIDEuMjAxMDksIDEuNDg2MDksIDEuODk2MzgiLCBcCi0gICAgICAgICAgIjAuMTIyNDkzLCAwLjM5OTIsIDAuNjc0Njg1LCAwLjg3NTIzMywgMS4yMDEwMiwgMS40ODQwOSwgMS44OTQ4OCIsIFwKLSAgICAgICAgICAiMC4xMjI0NTgsIDAuMzk5MTg4LCAwLjY3NDY4OCwgMC44NzUxMTQsIDEuMjAwOTUsIDEuNDg1NTgsIDEuOTAwNDUiLCBcCi0gICAgICAgICAgIjAuMTIyMTY0LCAwLjM5OTM1OCwgMC42NzQ5OTIsIDAuODc2MDgsIDEuMjAxMTQsIDEuNDg0NjcsIDEuODk4NiIsIFwKLSAgICAgICAgICAiMC4xMjI1MDcsIDAuMzk5MTk3LCAwLjY3NDY4MywgMC44NzUxMywgMS4yMDA5NCwgMS40ODg5LCAxLjkwMDI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzU0Mzk2LCAwLjUyNzc0MywgMC42NjEzMjcsIDAuNzUzMDkzLCAwLjg5ODU1NywgMS4wMjU1MSwgMS4yMDY1NyIsIFwKLSAgICAgICAgICAiMC4zNjYxNDYsIDAuNTM5NDg4LCAwLjY3MzA1NywgMC43NjQ4NDcsIDAuOTEwMzU1LCAxLjAzNzI3LCAxLjIxODMxIiwgXAotICAgICAgICAgICIwLjM4MDQ4NywgMC41NTM1MjMsIDAuNjg3MDMyLCAwLjc3ODk2NiwgMC45MjQ0MjIsIDEuMDUxMzcsIDEuMjMyNDIiLCBcCi0gICAgICAgICAgIjAuMzk0MDg4LCAwLjU2NzM5NSwgMC43MDA5MTMsIDAuNzkyNzMxLCAwLjkzODE5NiwgMS4wNjUxNCwgMS4yNDYxOSIsIFwKLSAgICAgICAgICAiMC40MDc4OTksIDAuNTgxMTY4LCAwLjcxNDY5NiwgMC44MDY1MDYsIDAuOTUxOTgsIDEuMDc4OTIsIDEuMjU5OTgiLCBcCi0gICAgICAgICAgIjAuNDI5ODYsIDAuNjAzMjUyLCAwLjczNjc2NSwgMC44Mjg3NDIsIDAuOTc0MTg0LCAxLjEwMTEzLCAxLjI4MjE4IiwgXAotICAgICAgICAgICIwLjQ0OTQxLCAwLjYyMjUwNywgMC43NTYwNjUsIDAuODQ3OTM2LCAwLjk5MzM2OCwgMS4xMjAyMywgMS4zMDEzNiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExOTQ0NCwgMC4zNjQ5MDEsIDAuNjA3ODk2LCAwLjc4NDg2MiwgMS4wNzI3NiwgMS4zMjY4NSwgMS42ODg3NCIsIFwKLSAgICAgICAgICAiMC4xMTk2MDksIDAuMzY0ODk4LCAwLjYwNzY2MSwgMC43ODQ1MzMsIDEuMDcyNzIsIDEuMzIzODEsIDEuNjkwNzEiLCBcCi0gICAgICAgICAgIjAuMTE5MTkxLCAwLjM2NDg2NywgMC42MDc1NDUsIDAuNzg0NTM4LCAxLjA3MjY4LCAxLjMyNjgyLCAxLjY4OTE0IiwgXAotICAgICAgICAgICIwLjExOTQwNCwgMC4zNjQ4MzUsIDAuNjA3NjY0LCAwLjc4NDgwOSwgMS4wNzI3MSwgMS4zMjY4MiwgMS42ODkxNiIsIFwKLSAgICAgICAgICAiMC4xMTk1NDEsIDAuMzY0ODgzLCAwLjYwNzY2OSwgMC43ODQ4MDIsIDEuMDcyNjgsIDEuMzI2ODIsIDEuNjkxMDIiLCBcCi0gICAgICAgICAgIjAuMTE5NTk4LCAwLjM2NDYwMywgMC42MDc2OTMsIDAuNzg0MDYyLCAxLjA3MjcxLCAxLjMyNjc5LCAxLjY4OTE0IiwgXAotICAgICAgICAgICIwLjExOTE4NywgMC4zNjQ4OTksIDAuNjA3NjcsIDAuNzg0MTU2LCAxLjA3MjYxLCAxLjMyNDM1LCAxLjY4ODc1Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzMwODg0LCAwLjUyMDI3NCwgMC42NzE3OTYsIDAuNzc2OTQzLCAwLjk0MzkzNywgMS4wODk3NiwgMS4yOTc4NSIsIFwKLSAgICAgICAgICAiMC4zNDIxMjIsIDAuNTMxNjkyLCAwLjY4MzEyNSwgMC43ODgzMjUsIDAuOTU1MzA2LCAxLjEwMTE0LCAxLjMwOTI0IiwgXAotICAgICAgICAgICIwLjM1NTMwMSwgMC41NDQ3MTQsIDAuNjk2MTczLCAwLjgwMTMyNywgMC45NjgzMTQsIDEuMTE0MTQsIDEuMzIyMjQiLCBcCi0gICAgICAgICAgIjAuMzY3NjIsIDAuNTU3MDA0LCAwLjcwODY2MywgMC44MTM3ODcsIDAuOTgwNzU5LCAxLjEyNjU4LCAxLjMzNDY0IiwgXAotICAgICAgICAgICIwLjM3OTk5MywgMC41Njk0NTYsIDAuNzIxMDA3LCAwLjgyNjA2NiwgMC45OTMxMTIsIDEuMTM4OTMsIDEuMzQ2OTkiLCBcCi0gICAgICAgICAgIjAuMzk5ODMxLCAwLjU4OTE5MiwgMC43NDA3MjcsIDAuODQ1ODcsIDEuMDEyODYsIDEuMTU4NjksIDEuMzY2NzkiLCBcCi0gICAgICAgICAgIjAuNDE2OTMsIDAuNjA2MzY4LCAwLjc1Nzg2LCAwLjg2MjkxNiwgMS4wMjk5OCwgMS4xNzU4MiwgMS4zODM4OSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEyMjUxLCAwLjM5OTIzOSwgMC42NzQ3MzcsIDAuODc2MzY4LCAxLjIwMTA3LCAxLjQ4NzUsIDEuODk4MzMiLCBcCi0gICAgICAgICAgIjAuMTIyMjU3LCAwLjM5OTMyMSwgMC42NzQ3NDksIDAuODc2MDEyLCAxLjIwMTE2LCAxLjQ4NjI2LCAxLjg5NjI2IiwgXAotICAgICAgICAgICIwLjEyMjU0MSwgMC4zOTkzMzIsIDAuNjc0Nzc0LCAwLjg3NjE5NCwgMS4yMDEyNiwgMS40ODcyLCAxLjg5NTk4IiwgXAotICAgICAgICAgICIwLjEyMjU1LCAwLjM5OTI0MSwgMC42NzQ5MDYsIDAuODc2MzU4LCAxLjIwMTI2LCAxLjQ4NDE5LCAxLjkwMDI5IiwgXAotICAgICAgICAgICIwLjEyMjM5NCwgMC4zOTk0NDEsIDAuNjc0ODg2LCAwLjg3NTg5NiwgMS4yMDEyNCwgMS40ODkxMSwgMS44OTY3NiIsIFwKLSAgICAgICAgICAiMC4xMjI0ODYsIDAuMzk5MjE2LCAwLjY3NDkyNywgMC44NzYyMTMsIDEuMjAxMjcsIDEuNDg2NDIsIDEuODk2NjgiLCBcCi0gICAgICAgICAgIjAuMTIyNjkyLCAwLjM5OTM1MywgMC42NzQ4NTYsIDAuODc1MzA5LCAxLjIwMTIxLCAxLjQ4OTA3LCAxLjg5NTE5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTU1NjE4LCAwLjI5MzA3NiwgMC40MjAxOTYsIDAuNTEwODA2LCAwLjY1NTY3MiwgMC43ODI0MjksIDAuOTYzMzQ5IiwgXAotICAgICAgICAgICIwLjE2NzA3OSwgMC4zMDQzODEsIDAuNDMxNTUzLCAwLjUyMjE1MiwgMC42NjcwOTYsIDAuNzkzNzU5LCAwLjk3NDcwNyIsIFwKLSAgICAgICAgICAiMC4xODA1NjYsIDAuMzE3OTYzLCAwLjQ0NTEzNCwgMC41MzU3MzIsIDAuNjgwNjg0LCAwLjgwNzM0NSwgMC45ODgyODQiLCBcCi0gICAgICAgICAgIjAuMTk0MTI3LCAwLjMzMTM3LCAwLjQ1ODUwNCwgMC41NDkxMDYsIDAuNjk0MDUsIDAuODIwNzc4LCAxLjAwMTY3IiwgXAotICAgICAgICAgICIwLjIwNzU3OSwgMC4zNDQ5MiwgMC40NzIwOTMsIDAuNTYyNjkzLCAwLjcwNzY0MiwgMC44MzQzMDMsIDEuMDE1MjUiLCBcCi0gICAgICAgICAgIjAuMjI4OTExLCAwLjM2NjE5OCwgMC40OTMzODMsIDAuNTgzOTg0LCAwLjcyODkzOCwgMC44NTU2NDEsIDEuMDM2NTUiLCBcCi0gICAgICAgICAgIjAuMjQ3MzY5LCAwLjM4NDc5LCAwLjUxMTk3MiwgMC42MDI1NzksIDAuNzQ3NTQyLCAwLjg3NDIwNSwgMS4wNTUxNCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3NTE2LCAwLjMxODM2MiwgMC41NzI3NDEsIDAuNzU0NTUyLCAxLjA0OTY2LCAxLjMwNzYsIDEuNjc1NjQiLCBcCi0gICAgICAgICAgIjAuMDc1MzAxLCAwLjMxODcwMywgMC41NzE2MTYsIDAuNzU0NTYyLCAxLjA1MDA0LCAxLjMwNzQ0LCAxLjY3Mjg1IiwgXAotICAgICAgICAgICIwLjA3NTA0LCAwLjMxODczLCAwLjU3MTYzOSwgMC43NTQ1MTQsIDEuMDUwMDYsIDEuMzA3NDUsIDEuNjc1NDciLCBcCi0gICAgICAgICAgIjAuMDc1MTM3LCAwLjMxODgyMSwgMC41NzE2NDQsIDAuNzU1NjU2LCAxLjA1MDAxLCAxLjMwNzc3LCAxLjY3NTYyIiwgXAotICAgICAgICAgICIwLjA3NDg1LCAwLjMxODYxMiwgMC41NzE2MzksIDAuNzU0NTQsIDEuMDUwMDMsIDEuMzA3NDEsIDEuNjcyNjciLCBcCi0gICAgICAgICAgIjAuMDc0NzkxLCAwLjMxODc3LCAwLjU3MTY0MiwgMC43NTU2MTIsIDEuMDUwMDEsIDEuMzA3NTksIDEuNjc0ODciLCBcCi0gICAgICAgICAgIjAuMDc0ODY3LCAwLjMxODM4MywgMC41NzE2MzcsIDAuNzU0NTE1LCAxLjA1MDA2LCAxLjMwNzQ0LCAxLjY3NTQ1Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTUzNTM5LCAwLjMwODk3LCAwLjQ1NDk5NSwgMC41NTkxMzEsIDAuNzI1NTk2LCAwLjg3MTI4MiwgMS4wNzkyNyIsIFwKLSAgICAgICAgICAiMC4xNjQ4NjMsIDAuMzIwMjU0LCAwLjQ2NjMxLCAwLjU3MDQ0OCwgMC43MzY5MzgsIDAuODgyNTIzLCAxLjA5MDUiLCBcCi0gICAgICAgICAgIjAuMTc3NjYzLCAwLjMzMzAzNSwgMC40NzkwOTcsIDAuNTgzMjc0LCAwLjc0OTczLCAwLjg5NTMxLCAxLjEwMzI4IiwgXAotICAgICAgICAgICIwLjE4OTgxMywgMC4zNDUzMzgsIDAuNDkxMzg2LCAwLjU5NTUxNywgMC43NjIwNzMsIDAuOTA3NjE1LCAxLjExNTU2IiwgXAotICAgICAgICAgICIwLjIwMjExOSwgMC4zNTc1MDgsIDAuNTAzNTcyLCAwLjYwNzcxLCAwLjc3NDIxOSwgMC45MTk3OTgsIDEuMTI3NzYiLCBcCi0gICAgICAgICAgIjAuMjIxNjk3LCAwLjM3NzA4MiwgMC41MjMxNSwgMC42MjcyODksIDAuNzkzOCwgMC45MzkzODMsIDEuMTQ3MzMiLCBcCi0gICAgICAgICAgIjAuMjM4NjY2LCAwLjM5NDExNSwgMC41NDAxODEsIDAuNjQ0MjksIDAuODEwODM2LCAwLjk1NjQyNywgMS4xNjQ0MyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3ODc4MywgMC4zNTU3NTgsIDAuNjQyOTczLCAwLjg0NzMsIDEuMTc4NjcsIDEuNDY5OCwgMS44ODQzNyIsIFwKLSAgICAgICAgICAiMC4wNzg3OSwgMC4zNTU2NDYsIDAuNjQxMjc3LCAwLjg0ODU2NywgMS4xODAxOCwgMS40NzA0NywgMS44ODE5NiIsIFwKLSAgICAgICAgICAiMC4wNzg3NTcsIDAuMzU1NjU3LCAwLjY0MTA4OCwgMC44NDc5ODksIDEuMTgwMTIsIDEuNDcwNTQsIDEuODgyNjYiLCBcCi0gICAgICAgICAgIjAuMDc4ODIxLCAwLjM1NTY3MywgMC42NDI0NSwgMC44NDcyMTEsIDEuMTc3MTYsIDEuNDcwMzMsIDEuODg1NjgiLCBcCi0gICAgICAgICAgIjAuMDc4NzQ1LCAwLjM1NTY2NSwgMC42NDE4OSwgMC44NDgyNTgsIDEuMTgwMTEsIDEuNDcwMzgsIDEuODgyNzgiLCBcCi0gICAgICAgICAgIjAuMDc4NjA1LCAwLjM1NTY0OCwgMC42NDE0MjEsIDAuODQ4Mzk5LCAxLjE4MDA4LCAxLjQ3MDMyLCAxLjg4NTkiLCBcCi0gICAgICAgICAgIjAuMDc4Njc0LCAwLjM1NTcyOSwgMC42NDMxOTQsIDAuODQ3Nzk5LCAxLjE3OTIyLCAxLjQ2OTgxLCAxLjg4NDM4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlMwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMzOTc1NCwgMC41MTMsIDAuNjQ2NTIyLCAwLjczODQxNywgMC44ODM4MTgsIDEuMDEwNzMsIDEuMTkxODIiLCBcCi0gICAgICAgICAgIjAuMzUwNjcsIDAuNTIzNzEyLCAwLjY1NzI1NSwgMC43NDkxODQsIDAuODk0NjM0LCAxLjAyMTU4LCAxLjIwMjYzIiwgXAotICAgICAgICAgICIwLjM2NDYwOSwgMC41Mzc3MjcsIDAuNjcxMjc0LCAwLjc2MzE4NCwgMC45MDg1NzgsIDEuMDM1NDQsIDEuMjE2NTciLCBcCi0gICAgICAgICAgIjAuMzc3OTU5LCAwLjU1MTM0MSwgMC42ODQ3NywgMC43NzY2NzIsIDAuOTIyMTIzLCAxLjA0OTA3LCAxLjIzMDEyIiwgXAotICAgICAgICAgICIwLjM5MTQ5OCwgMC41NjQ4NywgMC42OTg0NTQsIDAuNzkwMzE4LCAwLjkzNTc0MiwgMS4wNjI2MiwgMS4yNDM3NCIsIFwKLSAgICAgICAgICAiMC40MTM2NDQsIDAuNTg2NjcxLCAwLjcyMDE5MiwgMC44MTIxMTcsIDAuOTU3NTcxLCAxLjA4NDUyLCAxLjI2NTU3IiwgXAotICAgICAgICAgICIwLjQzMjcyNCwgMC42MDU5NzksIDAuNzM5NTMzLCAwLjgzMTMxMiwgMC45NzY4NTUsIDEuMTAzNzcsIDEuMjg0ODgiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTkxMzEsIDAuMzY0OTA1LCAwLjYwNzc1OCwgMC43ODQ3MjYsIDEuMDcyODYsIDEuMzIzODQsIDEuNjg3NTYiLCBcCi0gICAgICAgICAgIjAuMTE5MTcxLCAwLjM2NDksIDAuNjA3NTkzLCAwLjc4NDUwOSwgMS4wNzI3OCwgMS4zMjY4MywgMS42ODc2NSIsIFwKLSAgICAgICAgICAiMC4xMTkyNTIsIDAuMzY0ODg4LCAwLjYwNzY2MiwgMC43ODQ2MzUsIDEuMDcyNzQsIDEuMzI0NDIsIDEuNjg4OSIsIFwKLSAgICAgICAgICAiMC4xMTk0NjcsIDAuMzY0ODg5LCAwLjYwNzc0OCwgMC43ODQ1NzQsIDEuMDcyNjksIDEuMzI2ODEsIDEuNjg5MDYiLCBcCi0gICAgICAgICAgIjAuMTE5NTU2LCAwLjM2NDgzNywgMC42MDc2NTksIDAuNzg0NTUyLCAxLjA3MjYxLCAxLjMyMzY0LCAxLjY4ODYiLCBcCi0gICAgICAgICAgIjAuMTE5MjYzLCAwLjM2NDg2MywgMC42MDc1NDIsIDAuNzg0NDg5LCAxLjA3MjYyLCAxLjMyNjU5LCAxLjY4OTE0IiwgXAotICAgICAgICAgICIwLjExOTUzNiwgMC4zNjQ4NjMsIDAuNjA3NjcyLCAwLjc4NDgzLCAxLjA3MjU5LCAxLjMyMzgyLCAxLjY5MTQzIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzE1NzUyLCAwLjUwNDk1NCwgMC42NTY1MjMsIDAuNzYxNjI0LCAwLjkyODY0MSwgMS4wNzQ0NCwgMS4yODI0OCIsIFwKLSAgICAgICAgICAiMC4zMjYxMzEsIDAuNTE1NTA5LCAwLjY2Njk0NiwgMC43NzIwOCwgMC45MzkwMzUsIDEuMDg0ODUsIDEuMjkyOTMiLCBcCi0gICAgICAgICAgIjAuMzM5MjU1LCAwLjUyODU4LCAwLjY4MDE4MSwgMC43ODUyNTEsIDAuOTUyMjQxLCAxLjA5ODA0LCAxLjMwNjEiLCBcCi0gICAgICAgICAgIjAuMzUyNDczLCAwLjU0MTg1OCwgMC42OTMzNjgsIDAuNzk4NDIzLCAwLjk2NTQyOCwgMS4xMTEyMiwgMS4zMTkzIiwgXAotICAgICAgICAgICIwLjM2NTY0NSwgMC41NTQ5OCwgMC43MDY0NzYsIDAuODExNTU1LCAwLjk3ODUwMywgMS4xMjQzMiwgMS4zMzI0MSIsIFwKLSAgICAgICAgICAiMC4zODY4NTQsIDAuNTc2MTgyLCAwLjcyNzU2NSwgMC44MzI2LCAwLjk5OTY2LCAxLjE0NTQ1LCAxLjM1MzUiLCBcCi0gICAgICAgICAgIjAuNDA1MzYzLCAwLjU5NDQ4NiwgMC43NDYxMTYsIDAuODUxMjM2LCAxLjAxODIxLCAxLjE2Mzk5LCAxLjM3MjA5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTIyNDc3LCAwLjM5OTA1NCwgMC42NzUwODMsIDAuODc1NjU2LCAxLjIwMTA3LCAxLjQ4ODkzLCAxLjg5NjkzIiwgXAotICAgICAgICAgICIwLjEyMjM0MSwgMC4zOTkxNzIsIDAuNjc0MjA0LCAwLjg3NTkxLCAxLjIwMTA3LCAxLjQ4NTMzLCAxLjg5NTY0IiwgXAotICAgICAgICAgICIwLjEyMjQ5MywgMC4zOTkwODcsIDAuNjc0NzI4LCAwLjg3NTAzMiwgMS4yMDEwOCwgMS40ODg5NCwgMS45MDA3IiwgXAotICAgICAgICAgICIwLjEyMjIxOCwgMC4zOTkzMzIsIDAuNjc0NzE2LCAwLjg3NDk4NSwgMS4yMDEwNiwgMS40ODg5MSwgMS45MDEiLCBcCi0gICAgICAgICAgIjAuMTIyMTQ2LCAwLjM5OTE3NiwgMC42NzQ2NDUsIDAuODc1Nzk5LCAxLjIwMTAzLCAxLjQ4NDk1LCAxLjg5NTY0IiwgXAotICAgICAgICAgICIwLjEyMjIwNSwgMC4zOTkyMjMsIDAuNjc0NjksIDAuODc1MTA0LCAxLjIwMDk1LCAxLjQ4NTU2LCAxLjkwMDc1IiwgXAotICAgICAgICAgICIwLjEyMjQxOCwgMC4zOTkwMzMsIDAuNjc1MTQsIDAuODc2MDQ4LCAxLjIwMTA4LCAxLjQ4Njk1LCAxLjg5NzI3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlMwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjM3MzkxMywgMC41NDczNjEsIDAuNjgwODk0LCAwLjc3MjcxMywgMC45MTgxOTYsIDEuMDQ1MTUsIDEuMjI2MjEiLCBcCi0gICAgICAgICAgIjAuMzg1ODM5LCAwLjU1OTIxNCwgMC42OTI3NTMsIDAuNzg0NTY2LCAwLjkzMDA1NCwgMS4wNTcsIDEuMjM4MDgiLCBcCi0gICAgICAgICAgIjAuNDAwNjI1LCAwLjU3NDA3NiwgMC43MDc2MTMsIDAuNzk5NDMsIDAuOTQ0OTEzLCAxLjA3MTg3LCAxLjI1MjkzIiwgXAotICAgICAgICAgICIwLjQxNTEyNSwgMC41ODg0NzgsIDAuNzIxOTkxLCAwLjgxMzgxOSwgMC45NTkyOTEsIDEuMDg2MjUsIDEuMjY3MzEiLCBcCi0gICAgICAgICAgIjAuNDI4MzU3LCAwLjYwMTM0LCAwLjczNDk3MSwgMC44MjY5MDIsIDAuOTcyMzcsIDEuMDk5MzMsIDEuMjgwMzgiLCBcCi0gICAgICAgICAgIjAuNDQ2OTM1LCAwLjYyMDI1NSwgMC43NTM3OTgsIDAuODQ1NjA3LCAwLjk5MTA5OCwgMS4xMTgwNSwgMS4yOTkyIiwgXAotICAgICAgICAgICIwLjQ2MTM4NSwgMC42MzQ3MzIsIDAuNzY4MjQ2LCAwLjg2MDA3MiwgMS4wMDU1NSwgMS4xMzI1MSwgMS4zMTM1NiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExOTUxNiwgMC4zNjQ5NjYsIDAuNjA3NzkzLCAwLjc4NDg2NywgMS4wNzI3NiwgMS4zMjY5MiwgMS42ODkyNSIsIFwKLSAgICAgICAgICAiMC4xMTk2OTMsIDAuMzY0OTYxLCAwLjYwNzc5OCwgMC43ODQ4ODksIDEuMDcyODIsIDEuMzI2OTMsIDEuNjkxMTgiLCBcCi0gICAgICAgICAgIjAuMTE5NzMxLCAwLjM2NDk3OCwgMC42MDc4MDMsIDAuNzg0ODkzLCAxLjA3MjgyLCAxLjMyNjksIDEuNjkxMTUiLCBcCi0gICAgICAgICAgIjAuMTE5NDY4LCAwLjM2NDg4NiwgMC42MDc3MDEsIDAuNzg0OTY0LCAxLjA3MjY5LCAxLjMyNjY4LCAxLjY4OTI4IiwgXAotICAgICAgICAgICIwLjExOTI2NSwgMC4zNjQ4MjEsIDAuNjA3NTg3LCAwLjc4NDUzMiwgMS4wNzI3NSwgMS4zMjY4OSwgMS42ODkyMyIsIFwKLSAgICAgICAgICAiMC4xMTk3MjEsIDAuMzY0OTAxLCAwLjYwNzc4OCwgMC43ODQ4NDcsIDEuMDcxMjMsIDEuMzI2ODgsIDEuNjkxNiIsIFwKLSAgICAgICAgICAiMC4xMTk0NzksIDAuMzY0ODg2LCAwLjYwNzcwNCwgMC43ODQ5MzksIDEuMDcyNzksIDEuMzI2NjgsIDEuNjg5MjIiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zNTM0NDQsIDAuNTQyOTYxLCAwLjY5NDYwNiwgMC43OTk3MDMsIDAuOTY2Njc5LCAxLjExMjUsIDEuMzIwNjEiLCBcCi0gICAgICAgICAgIjAuMzY1ODA1LCAwLjU1NTIwNCwgMC43MDY2MTUsIDAuODExODIzLCAwLjk3ODgwMiwgMS4xMjQ2OCwgMS4zMzI3NSIsIFwKLSAgICAgICAgICAiMC4zODEyMTcsIDAuNTcwNjA4LCAwLjcyMjAzNiwgMC44MjcyMjksIDAuOTk0MjEyLCAxLjE0MDA5LCAxLjM0ODE2IiwgXAotICAgICAgICAgICIwLjM5NjI2NywgMC41ODU2NiwgMC43MzcxMTgsIDAuODQyMjcsIDEuMDA5MjUsIDEuMTU1MDksIDEuMzYzMTkiLCBcCi0gICAgICAgICAgIjAuNDEwOTM2LCAwLjYwMDI2NSwgMC43NTE4NDYsIDAuODU2OTgzLCAxLjAyMzk3LCAxLjE2OTczLCAxLjM3Nzg5IiwgXAotICAgICAgICAgICIwLjQzMjQwNCwgMC42MjE4MDgsIDAuNzczNDk3LCAwLjg3ODU5OSwgMS4wNDU1OCwgMS4xOTEzMywgMS4zOTk0OSIsIFwKLSAgICAgICAgICAiMC40NDk1MTUsIDAuNjM4ODQ1LCAwLjc5MDM3MiwgMC44OTU0NDgsIDEuMDYyNDUsIDEuMjA4MzMsIDEuNDE2NCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEyMjM2NywgMC4zOTk1NDksIDAuNjc0OTMzLCAwLjg3NDc0MSwgMS4yMDE1NiwgMS40ODkyNCwgMS44OTQ4MSIsIFwKLSAgICAgICAgICAiMC4xMjI1NTksIDAuMzk5MzI0LCAwLjY3NDczOSwgMC44NzQ4NjUsIDEuMjAxMzYsIDEuNDg0MDcsIDEuODk1NDIiLCBcCi0gICAgICAgICAgIjAuMTIyNTMyLCAwLjM5OTMzNSwgMC42NzQ3NSwgMC44NzU2MTksIDEuMjAxMzIsIDEuNDg0NCwgMS44OTUwNSIsIFwKLSAgICAgICAgICAiMC4xMjI1MjUsIDAuMzk5MzIxLCAwLjY3NDU5OSwgMC44NzYyMDUsIDEuMjAxMywgMS40ODU3NywgMS44OTU2NiIsIFwKLSAgICAgICAgICAiMC4xMjI1MzYsIDAuMzk5MTU5LCAwLjY3NTMxMSwgMC44NzYyLCAxLjIwMTI4LCAxLjQ4ODUsIDEuODk3ODMiLCBcCi0gICAgICAgICAgIjAuMTIyMzYxLCAwLjM5OTI0NiwgMC42NzQ5MjIsIDAuODc2MTc2LCAxLjIwMTExLCAxLjQ4ODA1LCAxLjg5OTMyIiwgXAotICAgICAgICAgICIwLjEyMjY3LCAwLjM5OTM2MSwgMC42NzQ4NTgsIDAuODc1OTY5LCAxLjIwMTMzLCAxLjQ4MzkxLCAxLjg5NDk3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlMxIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE0MTk3NCwgMC4yNzkzMzksIDAuNDA2NTAzLCAwLjQ5NzEwNiwgMC42NDIwNDMsIDAuNzY4NzEsIDAuOTQ5NjU5IiwgXAotICAgICAgICAgICIwLjE1Mjg1NywgMC4yOTAxMzgsIDAuNDE3MzA0LCAwLjUwNzkwNSwgMC42NTI4NTgsIDAuNzc5NTE4LCAwLjk2MDQ1MiIsIFwKLSAgICAgICAgICAiMC4xNjYyMDEsIDAuMzAzNTU4LCAwLjQzMDcyNywgMC41MjEzMywgMC42NjYyNzYsIDAuNzkyOTQsIDAuOTczODgxIiwgXAotICAgICAgICAgICIwLjE3OTU3MSwgMC4zMTY5ODIsIDAuNDQ0MTA4LCAwLjUzNDc1NywgMC42Nzk2MDksIDAuODA2MzI1LCAwLjk4NzMyMSIsIFwKLSAgICAgICAgICAiMC4xOTMwODUsIDAuMzMwNDk4LCAwLjQ1NzYzMSwgMC41NDgyNTYsIDAuNjkzMTk0LCAwLjgxOTg4MSwgMS4wMDA4MiIsIFwKLSAgICAgICAgICAiMC4yMTQ1NzEsIDAuMzUxOTczLCAwLjQ3OTE3MSwgMC41Njk3ODUsIDAuNzE0NzQ4LCAwLjg0MTQxNCwgMS4wMjIzNiIsIFwKLSAgICAgICAgICAiMC4yMzM3NTgsIDAuMzcxMTY3LCAwLjQ5ODM2MywgMC41ODg5NzEsIDAuNzMzOTQ3LCAwLjg2MDYwOCwgMS4wNDE1NCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3NDc0MywgMC4zMTg2NDMsIDAuNTcxMzE0LCAwLjc1Mzk2NywgMS4wNTAwOCwgMS4zMDc1MywgMS42NzI4NSIsIFwKLSAgICAgICAgICAiMC4wNzQ2NTcsIDAuMzE4NDg2LCAwLjU3MTYsIDAuNzU0NTY0LCAxLjA1MDExLCAxLjMwNzUsIDEuNjc1NSIsIFwKLSAgICAgICAgICAiMC4wNzQ2NjQsIDAuMzE4NjYxLCAwLjU3MTYxOSwgMC43NTQ2NjEsIDEuMDUwMDgsIDEuMzA3NDYsIDEuNjc1MjgiLCBcCi0gICAgICAgICAgIjAuMDc0ODQ1LCAwLjMxODQ1NiwgMC41NzIwMzcsIDAuNzU1OTA4LCAxLjA0OTcsIDEuMzA1MDEsIDEuNjc1ODIiLCBcCi0gICAgICAgICAgIjAuMDc0OTIsIDAuMzE4NjgyLCAwLjU3MTY2LCAwLjc1NTgzMywgMS4wNTAwOSwgMS4zMDc1MywgMS42NzU0OSIsIFwKLSAgICAgICAgICAiMC4wNzUwMjMsIDAuMzE4ODQ2LCAwLjU3MTY2OCwgMC43NTQ2MzEsIDEuMDUwMDgsIDEuMzA3NDQsIDEuNjc1NTMiLCBcCi0gICAgICAgICAgIjAuMDc1MTU4LCAwLjMxODU4NSwgMC41NzE2NTEsIDAuNzU0NTA2LCAxLjA1MDE1LCAxLjMwNzUsIDEuNjc1NTEiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMzM1MjMsIDAuNDIyNTA5LCAwLjU3Mzk1LCAwLjY3ODkxMywgMC44NDU3NjgsIDAuOTkxNTcxLCAxLjE5OTU0IiwgXAotICAgICAgICAgICIwLjI0MzE5NSwgMC40MzIyNiwgMC41ODM1NDYsIDAuNjg4NDg4LCAwLjg1NTQwNCwgMS4wMDExNywgMS4yMDkxNSIsIFwKLSAgICAgICAgICAiMC4yNTQ5MjMsIDAuNDQzODUsIDAuNTk1MjgyLCAwLjcwMDI0NiwgMC44NjcxMzksIDEuMDEyODcsIDEuMjIwOTUiLCBcCi0gICAgICAgICAgIjAuMjY2NDI1LCAwLjQ1NTM2NywgMC42MDY3MjYsIDAuNzExNzUzLCAwLjg3ODYxMywgMS4wMjQzMiwgMS4yMzIzNSIsIFwKLSAgICAgICAgICAiMC4yNzgwODMsIDAuNDY3MDU1LCAwLjYxODM2NywgMC43MjMzMywgMC44OTAxOTcsIDEuMDM2LCAxLjI0Mzk4IiwgXAotICAgICAgICAgICIwLjI5NTkwNywgMC40ODQ5MDksIDAuNjM2MjE1LCAwLjc0MTE2NSwgMC45MDgwODMsIDEuMDUzODYsIDEuMjYxODQiLCBcCi0gICAgICAgICAgIjAuMzEyMjI1LCAwLjUwMTE1OSwgMC42NTI1MjcsIDAuNzU3NTE0LCAwLjkyNDM2OSwgMS4wNzAxMSwgMS4yNzgxMyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEyMTkwOSwgMC4zOTg1NywgMC42NzQxMDcsIDAuODc1NTc3LCAxLjIwMDUsIDEuNDgzMjcsIDEuODk1MDkiLCBcCi0gICAgICAgICAgIjAuMTIxODMsIDAuMzk4Njc2LCAwLjY3NDE3LCAwLjg3NDY2MywgMS4yMDA0OSwgMS40ODQ4OCwgMS44OTQyMiIsIFwKLSAgICAgICAgICAiMC4xMjE3NjMsIDAuMzk4NTY1LCAwLjY3NDIxOCwgMC44NzU2NTYsIDEuMjAwNTMsIDEuNDgzNTIsIDEuOTAwNzUiLCBcCi0gICAgICAgICAgIjAuMTIxNzY4LCAwLjM5ODgyLCAwLjY3MzczNywgMC44NzU2NywgMS4yMDA1OSwgMS40ODgyNCwgMS44OTgyMyIsIFwKLSAgICAgICAgICAiMC4xMjE3LCAwLjM5ODYwNCwgMC42NzQxMDEsIDAuODc1NDcsIDEuMjAwNiwgMS40ODMxNSwgMS44OTUwNCIsIFwKLSAgICAgICAgICAiMC4xMjE1OCwgMC4zOTg2MTgsIDAuNjc0MTIyLCAwLjg3NDU1MywgMS4yMDA3MiwgMS40ODM2NCwgMS44OTQ2NiIsIFwKLSAgICAgICAgICAiMC4xMjEzODIsIDAuMzk4NDgzLCAwLjY3NDUyMSwgMC44NzU1NywgMS4yMDA1MywgMS40ODgwOSwgMS44OTg1MiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTMSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yNDQ3MjYsIDAuNDE3MzA3LCAwLjU1MDU0MywgMC42NDIzNTYsIDAuNzg3NjY5LCAwLjkxNDUzLCAxLjA5NTQ3IiwgXAotICAgICAgICAgICIwLjI1NzQ0MSwgMC40MzAxMjEsIDAuNTYzMjc1LCAwLjY1NTA4NywgMC44MDA0MDQsIDAuOTI3MjY0LCAxLjEwODIiLCBcCi0gICAgICAgICAgIjAuMjcxNzcxLCAwLjQ0NDEzMywgMC41Nzc2MzQsIDAuNjY5NDI3LCAwLjgxNDc0NSwgMC45NDE2MDIsIDEuMTIyNTQiLCBcCi0gICAgICAgICAgIjAuMjg1MTY0LCAwLjQ1Nzk3MSwgMC41OTEyOCwgMC42ODMwMjcsIDAuODI4MzIsIDAuOTU1MDk2LCAxLjEzNjEyIiwgXAotICAgICAgICAgICIwLjI5NzM5NCwgMC40NzAxMzcsIDAuNjAzNDIsIDAuNjk1MjMsIDAuODQwNTczLCAwLjk2NzQyNCwgMS4xNDgzNyIsIFwKLSAgICAgICAgICAiMC4zMTc0NjksIDAuNDkwMDI4LCAwLjYyMzMyOCwgMC43MTUwNzgsIDAuODYwMzY4LCAwLjk4NzE0NywgMS4xNjgxNyIsIFwKLSAgICAgICAgICAiMC4zMzM3NDIsIDAuNTA2NDA0LCAwLjYzOTc2NywgMC43MzE0OTQsIDAuODc2ODEzLCAxLjAwMzY3LCAxLjE4NDYiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTg2MDYsIDAuMzY0MDg1LCAwLjYwNjg2OSwgMC43ODM4MzUsIDEuMDcxODQsIDEuMzI1OTcsIDEuNjg4MTMiLCBcCi0gICAgICAgICAgIjAuMTE4NjA5LCAwLjM2NDA5NSwgMC42MDY4NzYsIDAuNzgzNjU1LCAxLjA3MTgxLCAxLjMyNTk2LCAxLjY4ODIyIiwgXAotICAgICAgICAgICIwLjExODYxOCwgMC4zNjM5NjcsIDAuNjA2NzQxLCAwLjc4MzU5OSwgMS4wNzE4MywgMS4zMjU5OSwgMS42ODY0MyIsIFwKLSAgICAgICAgICAiMC4xMTg4MzcsIDAuMzY0MTQ2LCAwLjYwNjkxOSwgMC43ODM4MzEsIDEuMDcxODcsIDEuMzIzNTksIDEuNjg3ODIiLCBcCi0gICAgICAgICAgIjAuMTE4OTExLCAwLjM2NDE0MywgMC42MDY3NTgsIDAuNzgzOTksIDEuMDcxNzQsIDEuMzI1OTcsIDEuNjg4MjIiLCBcCi0gICAgICAgICAgIjAuMTE4NDUyLCAwLjM2NDE4NCwgMC42MDY5NTEsIDAuNzgzNjc5LCAxLjA3MTg3LCAxLjMyMzcxLCAxLjY4NzgzIiwgXAotICAgICAgICAgICIwLjExODI5MSwgMC4zNjQxOTksIDAuNjA2ODQsIDAuNzgzNzQsIDEuMDcxNzMsIDEuMzI1OTcsIDEuNjg4MDQiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xODE1MTEsIDAuMzM2OTY2LCAwLjQ4MzAzNCwgMC41ODcxNjksIDAuNzUzNzQ1LCAwLjg5OTI3MiwgMS4xMDcyMiIsIFwKLSAgICAgICAgICAiMC4xOTM2MiwgMC4zNDkwMjgsIDAuNDk1MDczLCAwLjU5OTE4MywgMC43NjU3MDcsIDAuOTExMzYyLCAxLjExOTMzIiwgXAotICAgICAgICAgICIwLjIwOTI5NiwgMC4zNjQ3MTYsIDAuNTEwNzcxLCAwLjYxNDg2NiwgMC43ODE0ODcsIDAuOTI2OTkzLCAxLjEzNDk3IiwgXAotICAgICAgICAgICIwLjIyNDMwNywgMC4zNzk4MiwgMC41MjU4NzgsIDAuNjMwMDE0LCAwLjc5NjQ3NCwgMC45NDIxMjMsIDEuMTUwMDciLCBcCi0gICAgICAgICAgIjAuMjM5NTg2LCAwLjM5NTEwMywgMC41NDExNTQsIDAuNjQ1MzA0LCAwLjgxMTc5LCAwLjk1NzQwNywgMS4xNjUzNSIsIFwKLSAgICAgICAgICAiMC4yNjIzODQsIDAuNDE3OTI3LCAwLjU2Mzk2NywgMC42NjgxMjcsIDAuODM0NjcsIDAuOTgwMjU1LCAxLjE4ODMyIiwgXAotICAgICAgICAgICIwLjI4MDgxOCwgMC40MzYyMywgMC41ODIyNjQsIDAuNjg2NDM3LCAwLjg1Mjg5OSwgMC45OTg0ODMsIDEuMjA2NDciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzg3OSwgMC4zNTU3NDIsIDAuNjQzNDYyLCAwLjg0ODUzNSwgMS4xODAzLCAxLjQ3MDYzLCAxLjg4NjMiLCBcCi0gICAgICAgICAgIjAuMDc4NzY3LCAwLjM1NTc1NywgMC42NDIzNjYsIDAuODQ5NzE1LCAxLjE4MDM2LCAxLjQ3MDE1LCAxLjg4NDg2IiwgXAotICAgICAgICAgICIwLjA3ODc4NywgMC4zNTU3NjMsIDAuNjQzMjgzLCAwLjg0OTU0OCwgMS4xNzc2LCAxLjQ3MTI0LCAxLjg4NTQ1IiwgXAotICAgICAgICAgICIwLjA3ODgyMywgMC4zNTU2MTcsIDAuNjQyMzI1LCAwLjg0NzIxNSwgMS4xODA4MSwgMS40NzA0NCwgMS44ODU2OCIsIFwKLSAgICAgICAgICAiMC4wNzg3NjEsIDAuMzU1NzIyLCAwLjY0MjUxOCwgMC44NDc1MDQsIDEuMTgwNDEsIDEuNDcwMzgsIDEuODg2MDIiLCBcCi0gICAgICAgICAgIjAuMDc4NjU4LCAwLjM1NTczOCwgMC42NDMsIDAuODQ5NzE1LCAxLjE3NzUyLCAxLjQ2OTQ2LCAxLjg4Mjk0IiwgXAotICAgICAgICAgICIwLjA3ODczMiwgMC4zNTU3MTIsIDAuNjQxNzcyLCAwLjg0Njg0NiwgMS4xODAzMiwgMS40NzA3NSwgMS44ODE4MiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0NzM4LCAwLjAwNDg1MywgMC4wMDQ4OTYsIDAuMDA0OTEyLCAwLjAwNDkyNiwgMC4wMDQ5MzMsIDAuMDA0OTQxIiwgXAotICAgICAgICAgICIwLjAwNDcyOSwgMC4wMDQ4NDQsIDAuMDA0ODg2LCAwLjAwNDkwMiwgMC4wMDQ5MTYsIDAuMDA0OTI1LCAwLjAwNDkzMyIsIFwKLSAgICAgICAgICAiMC4wMDQ3MjQsIDAuMDA0ODQsIDAuMDA0ODgyLCAwLjAwNDg5OSwgMC4wMDQ5MTMsIDAuMDA0OTIzLCAwLjAwNDkyOCIsIFwKLSAgICAgICAgICAiMC4wMDQ3MjMsIDAuMDA0ODM5LCAwLjAwNDg4LCAwLjAwNDg5NSwgMC4wMDQ5MTEsIDAuMDA0OTE4LCAwLjAwNDkyNSIsIFwKLSAgICAgICAgICAiMC4wMDQ3MiwgMC4wMDQ4MzUsIDAuMDA0ODc3LCAwLjAwNDg5MywgMC4wMDQ5MDksIDAuMDA0OTE2LCAwLjAwNDkyNCIsIFwKLSAgICAgICAgICAiMC4wMDQ3MTgsIDAuMDA0ODMsIDAuMDA0ODczLCAwLjAwNDg4OSwgMC4wMDQ5MDQsIDAuMDA0OTEzLCAwLjAwNDkyIiwgXAotICAgICAgICAgICIwLjAwNDcxNSwgMC4wMDQ4MjYsIDAuMDA0ODY5LCAwLjAwNDg4NywgMC4wMDQ5MDEsIDAuMDA0OTExLCAwLjAwNDkxNyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2MjIxLCAwLjAwNjM4MSwgMC4wMDY0MzgsIDAuMDA2NDU5LCAwLjAwNjQ3OCwgMC4wMDY0ODksIDAuMDA2NDk5IiwgXAotICAgICAgICAgICIwLjAwNjIxOCwgMC4wMDYzNzcsIDAuMDA2NDM0LCAwLjAwNjQ1NSwgMC4wMDY0NzQsIDAuMDA2NDg1LCAwLjAwNjQ5NSIsIFwKLSAgICAgICAgICAiMC4wMDYyMTYsIDAuMDA2Mzc2LCAwLjAwNjQzMiwgMC4wMDY0NTMsIDAuMDA2NDczLCAwLjAwNjQ4NCwgMC4wMDY0OTMiLCBcCi0gICAgICAgICAgIjAuMDA2MjE0LCAwLjAwNjM3MywgMC4wMDY0MywgMC4wMDY0NTEsIDAuMDA2NDcxLCAwLjAwNjQ4MSwgMC4wMDY0OTEiLCBcCi0gICAgICAgICAgIjAuMDA2MjEzLCAwLjAwNjM3MiwgMC4wMDY0MjksIDAuMDA2NDQ5LCAwLjAwNjQ2OSwgMC4wMDY0OCwgMC4wMDY0OSIsIFwKLSAgICAgICAgICAiMC4wMDYyMTIsIDAuMDA2MzY4LCAwLjAwNjQyNSwgMC4wMDY0NDYsIDAuMDA2NDY2LCAwLjAwNjQ3NywgMC4wMDY0ODgiLCBcCi0gICAgICAgICAgIjAuMDA2MjExLCAwLjAwNjM2NCwgMC4wMDY0MjIsIDAuMDA2NDQzLCAwLjAwNjQ2NCwgMC4wMDY0NzUsIDAuMDA2NDg2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQ1OTIsIDAuMDA0NzA5LCAwLjAwNDc1LCAwLjAwNDc2NiwgMC4wMDQ3ODEsIDAuMDA0Nzg4LCAwLjAwNDc5NiIsIFwKLSAgICAgICAgICAiMC4wMDQ1ODMsIDAuMDA0Njk5LCAwLjAwNDc0MSwgMC4wMDQ3NTgsIDAuMDA0NzcyLCAwLjAwNDc4LCAwLjAwNDc4NiIsIFwKLSAgICAgICAgICAiMC4wMDQ1OCwgMC4wMDQ2OTcsIDAuMDA0NzM4LCAwLjAwNDc1MywgMC4wMDQ3NjksIDAuMDA0Nzc2LCAwLjAwNDc4NCIsIFwKLSAgICAgICAgICAiMC4wMDQ1NzcsIDAuMDA0NjkzLCAwLjAwNDczNSwgMC4wMDQ3NTEsIDAuMDA0NzY3LCAwLjAwNDc3MywgMC4wMDQ3ODEiLCBcCi0gICAgICAgICAgIjAuMDA0NTc2LCAwLjAwNDY5LCAwLjAwNDczMywgMC4wMDQ3NDgsIDAuMDA0NzY0LCAwLjAwNDc3MSwgMC4wMDQ3NzkiLCBcCi0gICAgICAgICAgIjAuMDA0NTcyLCAwLjAwNDY4NiwgMC4wMDQ3MjksIDAuMDA0NzQ0LCAwLjAwNDc2MSwgMC4wMDQ3NjgsIDAuMDA0Nzc2IiwgXAotICAgICAgICAgICIwLjAwNDU3LCAwLjAwNDY4MywgMC4wMDQ3MjUsIDAuMDA0NzQyLCAwLjAwNDc1NSwgMC4wMDQ3NjUsIDAuMDA0NzczIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDYzODYsIDAuMDA2NTQ1LCAwLjAwNjYwMiwgMC4wMDY2MjMsIDAuMDA2NjQzLCAwLjAwNjY1MywgMC4wMDY2NjMiLCBcCi0gICAgICAgICAgIjAuMDA2MzgxLCAwLjAwNjU0LCAwLjAwNjU5NywgMC4wMDY2MTgsIDAuMDA2NjM4LCAwLjAwNjY0OSwgMC4wMDY2NTkiLCBcCi0gICAgICAgICAgIjAuMDA2MzgsIDAuMDA2NTM5LCAwLjAwNjU5NiwgMC4wMDY2MTcsIDAuMDA2NjM3LCAwLjAwNjY0NywgMC4wMDY2NTciLCBcCi0gICAgICAgICAgIjAuMDA2Mzc5LCAwLjAwNjUzNywgMC4wMDY1OTQsIDAuMDA2NjE1LCAwLjAwNjYzNSwgMC4wMDY2NDYsIDAuMDA2NjU2IiwgXAotICAgICAgICAgICIwLjAwNjM3OCwgMC4wMDY1MzUsIDAuMDA2NTkyLCAwLjAwNjYxMywgMC4wMDY2MzMsIDAuMDA2NjQ0LCAwLjAwNjY1NCIsIFwKLSAgICAgICAgICAiMC4wMDYzNzYsIDAuMDA2NTMxLCAwLjAwNjU4OSwgMC4wMDY2MSwgMC4wMDY2MzEsIDAuMDA2NjQxLCAwLjAwNjY1MiIsIFwKLSAgICAgICAgICAiMC4wMDYzNzUsIDAuMDA2NTI4LCAwLjAwNjU4NSwgMC4wMDY2MDcsIDAuMDA2NjI4LCAwLjAwNjYzOSwgMC4wMDY2NSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzODk2LCAwLjAwNDAxLCAwLjAwNDAyNSwgMC4wMDQwMywgMC4wMDQwMzQsIDAuMDA0MDM2LCAwLjAwNDAzOSIsIFwKLSAgICAgICAgICAiMC4wMDM4NzgsIDAuMDAzOTkxLCAwLjAwNDAwOSwgMC4wMDQwMTIsIDAuMDA0MDE2LCAwLjAwNDAxOSwgMC4wMDQwMjEiLCBcCi0gICAgICAgICAgIjAuMDAzODY3LCAwLjAwMzk4MSwgMC4wMDM5OTgsIDAuMDA0MDAyLCAwLjAwNDAwNywgMC4wMDQwMDksIDAuMDA0MDEyIiwgXAotICAgICAgICAgICIwLjAwMzg1NywgMC4wMDM5NzMsIDAuMDAzOTksIDAuMDAzOTk1LCAwLjAwNCwgMC4wMDQwMDIsIDAuMDA0MDA0IiwgXAotICAgICAgICAgICIwLjAwMzg0OSwgMC4wMDM5NjgsIDAuMDAzOTg0LCAwLjAwMzk5LCAwLjAwMzk5NSwgMC4wMDM5OTgsIDAuMDA0IiwgXAotICAgICAgICAgICIwLjAwMzgzOCwgMC4wMDM5NTUsIDAuMDAzOTc1LCAwLjAwMzk4MSwgMC4wMDM5ODcsIDAuMDAzOTksIDAuMDAzOTkyIiwgXAotICAgICAgICAgICIwLjAwMzgzLCAwLjAwMzk0NiwgMC4wMDM5NjksIDAuMDAzOTc2LCAwLjAwMzk4MywgMC4wMDM5ODYsIDAuMDAzOTg4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDU0MjUsIDAuMDA1NTg0LCAwLjAwNTYwOCwgMC4wMDU2MTUsIDAuMDA1NjIyLCAwLjAwNTYyNSwgMC4wMDU2MjkiLCBcCi0gICAgICAgICAgIjAuMDA1NDE1LCAwLjAwNTU3NiwgMC4wMDU1OTksIDAuMDA1NjA3LCAwLjAwNTYxMywgMC4wMDU2MTcsIDAuMDA1NjIiLCBcCi0gICAgICAgICAgIjAuMDA1NDA5LCAwLjAwNTU3LCAwLjAwNTU5NCwgMC4wMDU2MDEsIDAuMDA1NjA4LCAwLjAwNTYxMSwgMC4wMDU2MTQiLCBcCi0gICAgICAgICAgIjAuMDA1NDAxLCAwLjAwNTU2NCwgMC4wMDU1ODksIDAuMDA1NTk3LCAwLjAwNTYwNCwgMC4wMDU2MDcsIDAuMDA1NjExIiwgXAotICAgICAgICAgICIwLjAwNTM5NSwgMC4wMDU1NTgsIDAuMDA1NTg1LCAwLjAwNTU5MywgMC4wMDU2LCAwLjAwNTYwNCwgMC4wMDU2MDgiLCBcCi0gICAgICAgICAgIjAuMDA1Mzg2LCAwLjAwNTU0OSwgMC4wMDU1NzgsIDAuMDA1NTg3LCAwLjAwNTU5NiwgMC4wMDU2LCAwLjAwNTYwNCIsIFwKLSAgICAgICAgICAiMC4wMDUzNzcsIDAuMDA1NTQzLCAwLjAwNTU3NCwgMC4wMDU1ODQsIDAuMDA1NTkyLCAwLjAwNTU5NywgMC4wMDU2MDEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTMCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDYyMDcsIDAuMDA2MzIyLCAwLjAwNjM2NCwgMC4wMDYzNzksIDAuMDA2Mzk1LCAwLjAwNjQwMiwgMC4wMDY0MSIsIFwKLSAgICAgICAgICAiMC4wMDYyLCAwLjAwNjMxNSwgMC4wMDYzNTgsIDAuMDA2MzczLCAwLjAwNjM4OSwgMC4wMDYzOTYsIDAuMDA2NDA0IiwgXAotICAgICAgICAgICIwLjAwNjE5NywgMC4wMDYzMTIsIDAuMDA2MzU0LCAwLjAwNjM3LCAwLjAwNjM4NSwgMC4wMDYzOTMsIDAuMDA2NDAxIiwgXAotICAgICAgICAgICIwLjAwNjE5NywgMC4wMDYzMTEsIDAuMDA2MzUyLCAwLjAwNjM2OCwgMC4wMDYzODMsIDAuMDA2Mzk0LCAwLjAwNjM5OSIsIFwKLSAgICAgICAgICAiMC4wMDYxOTcsIDAuMDA2MzExLCAwLjAwNjM1MiwgMC4wMDYzNjksIDAuMDA2Mzg1LCAwLjAwNjM5MSwgMC4wMDYzOTkiLCBcCi0gICAgICAgICAgIjAuMDA2MTk3LCAwLjAwNjMxMSwgMC4wMDYzNTMsIDAuMDA2MzY5LCAwLjAwNjM4MywgMC4wMDYzOTIsIDAuMDA2Mzk5IiwgXAotICAgICAgICAgICIwLjAwNjE5OCwgMC4wMDYzMTIsIDAuMDA2MzUzLCAwLjAwNjM3LCAwLjAwNjM4NSwgMC4wMDYzOTUsIDAuMDA2NCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2MTYyLCAwLjAwNjMxOSwgMC4wMDYzNzYsIDAuMDA2Mzk3LCAwLjAwNjQxNywgMC4wMDY0MjgsIDAuMDA2NDM4IiwgXAotICAgICAgICAgICIwLjAwNjE1LCAwLjAwNjMwNywgMC4wMDYzNjQsIDAuMDA2Mzg1LCAwLjAwNjQwNSwgMC4wMDY0MTUsIDAuMDA2NDI2IiwgXAotICAgICAgICAgICIwLjAwNjE0MywgMC4wMDYzLCAwLjAwNjM1NiwgMC4wMDYzNzcsIDAuMDA2Mzk4LCAwLjAwNjQwOSwgMC4wMDY0MTkiLCBcCi0gICAgICAgICAgIjAuMDA2MTQsIDAuMDA2Mjk3LCAwLjAwNjM1NCwgMC4wMDYzNzUsIDAuMDA2Mzk1LCAwLjAwNjQwNiwgMC4wMDY0MTYiLCBcCi0gICAgICAgICAgIjAuMDA2MTQxLCAwLjAwNjI5NywgMC4wMDYzNTQsIDAuMDA2Mzc1LCAwLjAwNjM5NSwgMC4wMDY0MDYsIDAuMDA2NDE2IiwgXAotICAgICAgICAgICIwLjAwNjE0MiwgMC4wMDYyOTksIDAuMDA2MzU1LCAwLjAwNjM3NiwgMC4wMDYzOTYsIDAuMDA2NDA3LCAwLjAwNjQxOCIsIFwKLSAgICAgICAgICAiMC4wMDYxNDQsIDAuMDA2MzAxLCAwLjAwNjM1NywgMC4wMDYzNzgsIDAuMDA2Mzk4LCAwLjAwNjQwOSwgMC4wMDY0MiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlMxIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNTY3MSwgMC4wMDU4MTQsIDAuMDA1ODQ1LCAwLjAwNTg1NiwgMC4wMDU4NjYsIDAuMDA1ODcxLCAwLjAwNTg3NiIsIFwKLSAgICAgICAgICAiMC4wMDU2OTksIDAuMDA1ODM5LCAwLjAwNTg3MiwgMC4wMDU4ODMsIDAuMDA1ODk0LCAwLjAwNTg5OCwgMC4wMDU5MDMiLCBcCi0gICAgICAgICAgIjAuMDA1NzQyLCAwLjAwNTg4LCAwLjAwNTkxMywgMC4wMDU5MjUsIDAuMDA1OTM0LCAwLjAwNTk0LCAwLjAwNTk0NCIsIFwKLSAgICAgICAgICAiMC4wMDU3ODUsIDAuMDA1OTIsIDAuMDA1OTUzLCAwLjAwNTk2NSwgMC4wMDU5NzUsIDAuMDA1OTgxLCAwLjAwNTk4NiIsIFwKLSAgICAgICAgICAiMC4wMDU4MTMsIDAuMDA1OTQ2LCAwLjAwNTk3OSwgMC4wMDU5OSwgMC4wMDYwMDEsIDAuMDA2MDA2LCAwLjAwNjAxMiIsIFwKLSAgICAgICAgICAiMC4wMDU4NjUsIDAuMDA1OTkyLCAwLjAwNjAyNiwgMC4wMDYwMzcsIDAuMDA2MDQ5LCAwLjAwNjA1NSwgMC4wMDYwNiIsIFwKLSAgICAgICAgICAiMC4wMDU4OTgsIDAuMDA2MDIyLCAwLjAwNjA1NSwgMC4wMDYwNjgsIDAuMDA2MDc5LCAwLjAwNjA4NSwgMC4wMDYwOTIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNTk2NywgMC4wMDYxNTksIDAuMDA2MjAxLCAwLjAwNjIxNCwgMC4wMDYyMjYsIDAuMDA2MjMzLCAwLjAwNjIzOSIsIFwKLSAgICAgICAgICAiMC4wMDU5NDYsIDAuMDA2MTQsIDAuMDA2MTgxLCAwLjAwNjE5NCwgMC4wMDYyMDYsIDAuMDA2MjEyLCAwLjAwNjIxOCIsIFwKLSAgICAgICAgICAiMC4wMDU5MjYsIDAuMDA2MTE5LCAwLjAwNjE2LCAwLjAwNjE3MywgMC4wMDYxODUsIDAuMDA2MTkxLCAwLjAwNjE5NyIsIFwKLSAgICAgICAgICAiMC4wMDU5MTUsIDAuMDA2MTA0LCAwLjAwNjE0NSwgMC4wMDYxNTksIDAuMDA2MTcxLCAwLjAwNjE3OCwgMC4wMDYxODQiLCBcCi0gICAgICAgICAgIjAuMDA1OTA3LCAwLjAwNjA5MSwgMC4wMDYxMzQsIDAuMDA2MTQ4LCAwLjAwNjE2MSwgMC4wMDYxNjgsIDAuMDA2MTc0IiwgXAotICAgICAgICAgICIwLjAwNTg5NywgMC4wMDYwNzMsIDAuMDA2MTE5LCAwLjAwNjEzNCwgMC4wMDYxNDksIDAuMDA2MTU2LCAwLjAwNjE2MyIsIFwKLSAgICAgICAgICAiMC4wMDU4ODYsIDAuMDA2MDYsIDAuMDA2MTA3LCAwLjAwNjEyMywgMC4wMDYxMzksIDAuMDA2MTQ3LCAwLjAwNjE1NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBNWDRYNCAqCi0gKiAtLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoTVg0WDQpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4zMjY0Mjk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDU1MjY3ODsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA1NTEwMTg7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNTUyNjc4OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDgyOCwgMC4wMDA4MTcsIDAuMDAwODExLCAwLjAwMDgwNywgMC4wMDA4MDQsIDAuMDAwODAxLCAwLjAwMDc5OSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjM2NywgMC4wMDIzNjIsIDAuMDAyMzU5LCAwLjAwMjM1NywgMC4wMDIzNTUsIDAuMDAyMzUzLCAwLjAwMjM1MyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNTk4Njc4OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDU5Njc4MTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA1OTg2Nzg7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMTU5LCAwLjAwMDE2MSwgMC4wMDAxNjEsIDAuMDAwMTYxLCAwLjAwMDE2MiwgMC4wMDAxNjIsIDAuMDAwMTYyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMTY5LCAwLjAwMDE2NywgMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY2Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihDKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA1NzEzMTU7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNTY5NDE1OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDU3MTMxNTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA5ODksIDAuMDAwOTc5LCAwLjAwMDk3MywgMC4wMDA5NjksIDAuMDAwOTY3LCAwLjAwMDk2MywgMC4wMDA5NjEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDI0MzgsIDAuMDAyNDMzLCAwLjAwMjQzLCAwLjAwMjQyOCwgMC4wMDI0MjYsIDAuMDAyNDI1LCAwLjAwMjQyMyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNTgwMTIzOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDU3ODM3MjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA1ODAxMjM7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMTYsIDAuMDAwMTYxLCAwLjAwMDE2MiwgMC4wMDAxNjIsIDAuMDAwMTYyLCAwLjAwMDE2MiwgMC4wMDAxNjIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxNjcsIDAuMDAwMTY2LCAwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiwgMC4wMDAxNjYiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFMwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDIwNjQ2NzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDIwNjQwNTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDIwNjQ2NzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAzODIsIDAuMDAwMzY4LCAwLjAwMDM1OCwgMC4wMDAzNTIsIDAuMDAwMzQ5LCAwLjAwMDM0OCwgMC4wMDAzNDkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDI2OSwgMC4wMDI2OCwgMC4wMDI2NzQsIDAuMDAyNjcsIDAuMDAyNjY5LCAwLjAwMjY2NywgMC4wMDI2NjIiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFMxKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDEzMzg5ODsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDEzMzg0OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTMzODk4OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDEyOCwgMC4wMDAxMSwgMC4wMDAxLCAwLjAwMDA5NSwgMC4wMDAwOTMsIDAuMDAwMDkzLCAwLjAwMDA5NCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTg3NiwgMC4wMDE4NjUsIDAuMDAxODU4LCAwLjAwMTg1NCwgMC4wMDE4NTIsIDAuMDAxODUsIDAuMDAxODQ5Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuNTMxMzg0OwotICAgIGZ1bmN0aW9uIDogIigoUzEgKChTMCBEKSArICghUzAgQykpKSArICghUzEgKChTMCBCKSArICghUzAgQSkpKSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzcwMDA1LCAwLjU0NTM5MiwgMC42ODAwMzMsIDAuNzcyNDg0LCAwLjkxODc2MywgMS4wNDY0MSwgMS4yMjg0NSIsIFwKLSAgICAgICAgICAiMC4zODE4NTQsIDAuNTU3MjU1LCAwLjY5MTg4MywgMC43ODQzNzEsIDAuOTMwNjIyLCAxLjA1ODI3LCAxLjI0MDMiLCBcCi0gICAgICAgICAgIjAuMzk2MTE4LCAwLjU3MTU2MywgMC43MDYyMDMsIDAuNzk4NzM5LCAwLjk0NDk4NiwgMS4wNzI1NSwgMS4yNTQ2NiIsIFwKLSAgICAgICAgICAiMC40MTAyNDMsIDAuNTg1MzU0LCAwLjcyMDE1LCAwLjgxMjYwNywgMC45NTg4NTYsIDEuMDg2NTEsIDEuMjY4NTMiLCBcCi0gICAgICAgICAgIjAuNDIzNjg4LCAwLjU5OTExMiwgMC43MzM3NjksIDAuODI2MzA0LCAwLjk3MjU0NywgMS4xMDAxMSwgMS4yODIyMiIsIFwKLSAgICAgICAgICAiMC40NDU2ODQsIDAuNjIxMDA3LCAwLjc1NTcxMiwgMC44NDgwODIsIDAuOTk0NDc5LCAxLjEyMjA5LCAxLjMwNDExIiwgXAotICAgICAgICAgICIwLjQ2NDgwOCwgMC42NDAxNzYsIDAuNzc0ODEzLCAwLjg2NzMxNywgMS4wMTM1NSwgMS4xNDEyLCAxLjMyMzIzIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTIwODgzLCAwLjM2OTM0OSwgMC42MTQzOTIsIDAuNzkyNTYsIDEuMDgzMzYsIDEuMzM5NTQsIDEuNzAzOTMiLCBcCi0gICAgICAgICAgIjAuMTIwODk0LCAwLjM2OTMzMywgMC42MTQyOTUsIDAuNzkyOTQ1LCAxLjA4MzIxLCAxLjMzOTQ3LCAxLjcwMzczIiwgXAotICAgICAgICAgICIwLjEyMDY5LCAwLjM2OTI3NSwgMC42MTQzODMsIDAuNzkyODk4LCAxLjA4MzI1LCAxLjMzNzE1LCAxLjcwNDk4IiwgXAotICAgICAgICAgICIwLjEyMDY1LCAwLjM2OTA2MSwgMC42MTQyMjIsIDAuNzkyODA0LCAxLjA4MzI0LCAxLjMzOTI0LCAxLjcwMzY3IiwgXAotICAgICAgICAgICIwLjEyMDczOCwgMC4zNjkyNzMsIDAuNjE0MzI1LCAwLjc5MjgyNywgMS4wODMxNiwgMS4zMzcxLCAxLjcwNDg1IiwgXAotICAgICAgICAgICIwLjEyMDc3OCwgMC4zNjkzMSwgMC42MTQzNDksIDAuNzkyNzA4LCAxLjA4MzI0LCAxLjMzOTY0LCAxLjcwNjg2IiwgXAotICAgICAgICAgICIwLjEyMDg0NCwgMC4zNjkzMTEsIDAuNjE0MzM3LCAwLjc5MjgzNywgMS4wODMxNiwgMS4zMzkyOCwgMS43MDQ3NyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjM0MTcyNywgMC41MzI3NzcsIDAuNjg0NzUzLCAwLjc5MDAxMiwgMC45NTcxMjYsIDEuMTAzMDgsIDEuMzExMjYiLCBcCi0gICAgICAgICAgIjAuMzUzNjIsIDAuNTQ0MjI0LCAwLjY5NjM0NCwgMC44MDE2MzIsIDAuOTY4NzU2LCAxLjExNDY1LCAxLjMyMjg4IiwgXAotICAgICAgICAgICIwLjM2NjkwOCwgMC41NTc3MzgsIDAuNzA5NjQ3LCAwLjgxNDk2MywgMC45ODIwOCwgMS4xMjgwNCwgMS4zMzYyMiIsIFwKLSAgICAgICAgICAiMC4zNzk1NDIsIDAuNTcwMzk5LCAwLjcyMjMyOCwgMC44Mjc1NTEsIDAuOTk0NzYzLCAxLjE0MDY2LCAxLjM0ODgyIiwgXAotICAgICAgICAgICIwLjM5MjAwNiwgMC41ODI3NiwgMC43MzQ4MzYsIDAuODQwMDgxLCAxLjAwNzIsIDEuMTUzMTcsIDEuMzYxMzQiLCBcCi0gICAgICAgICAgIjAuNDExOTM2LCAwLjYwMjU5MiwgMC43NTQ1ODQsIDAuODU5ODM3LCAxLjAyNjk1LCAxLjE3MjkxLCAxLjM4MTA5IiwgXAotICAgICAgICAgICIwLjQyOTE3NiwgMC42MTk5NzgsIDAuNzcxODY1LCAwLjg3NzA3NiwgMS4wNDQyOCwgMS4xOTAxOCwgMS4zOTg0MyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEyMjk5LCAwLjQwMTA2MSwgMC42NzY0NTEsIDAuODc2NjgsIDEuMjAyMzIsIDEuNDg1NzUsIDEuODk2MjQiLCBcCi0gICAgICAgICAgIjAuMTIzMzUxLCAwLjQwMDg3MywgMC42NzY4MDEsIDAuODc2OTgyLCAxLjIwMjQ5LCAxLjQ4NTY1LCAxLjg5ODIxIiwgXAotICAgICAgICAgICIwLjEyMzIyMSwgMC40MDEwMjUsIDAuNjc2OTI0LCAwLjg3NjYwNCwgMS4yMDI0MiwgMS40ODU0OCwgMS44OTYyOSIsIFwKLSAgICAgICAgICAiMC4xMjMyNTQsIDAuNDAxMDc3LCAwLjY3NjQ5MiwgMC44NzcyNjksIDEuMjAyNDksIDEuNDkwMjksIDEuOTAyMTQiLCBcCi0gICAgICAgICAgIjAuMTIzMjMyLCAwLjQwMTAzMSwgMC42NzY1NjksIDAuODc2NDg4LCAxLjIwMjQ0LCAxLjQ4NTQ4LCAxLjg5Njk4IiwgXAotICAgICAgICAgICIwLjEyMzM4MiwgMC40MDEwNjMsIDAuNjc2NDQ3LCAwLjg3NzUwMSwgMS4yMDIzOCwgMS40ODYyOSwgMS44OTYxNyIsIFwKLSAgICAgICAgICAiMC4xMjMyNjgsIDAuNDAxMTI2LCAwLjY3NjQ5OSwgMC44NzY4MzUsIDEuMjAyNDgsIDEuNDkwMywgMS45MDI2OSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjM2NTI0LCAwLjU0MDM1OSwgMC42NzQ4MjQsIDAuNzY3Mzg3LCAwLjkxMzYxNSwgMS4wNDEyNSwgMS4yMjMyOSIsIFwKLSAgICAgICAgICAiMC4zNzY4ODUsIDAuNTUyMDI4LCAwLjY4NjYyMywgMC43NzkxMjUsIDAuOTI1MzUzLCAxLjA1MjkxLCAxLjIzNTAxIiwgXAotICAgICAgICAgICIwLjM5MTAxLCAwLjU2NTkzMiwgMC43MDA1MzcsIDAuNzkzMDQyLCAwLjkzOTIwMiwgMS4wNjY4MSwgMS4yNDg4NiIsIFwKLSAgICAgICAgICAiMC40MDQ1MjUsIDAuNTc5NzQ5LCAwLjcxNDI4MSwgMC44MDY4MTksIDAuOTUzMDU1LCAxLjA4MDY2LCAxLjI2MjcxIiwgXAotICAgICAgICAgICIwLjQxODQzNSwgMC41OTM0MjcsIDAuNzI4MDAyLCAwLjgyMDQwNywgMC45NjY2OTcsIDEuMDk0MzQsIDEuMjc2MzkiLCBcCi0gICAgICAgICAgIjAuNDQwNDkzLCAwLjYxNTU4MSwgMC43NTAxMjEsIDAuODQyNTYzLCAwLjk4ODg0NSwgMS4xMTY0OSwgMS4yOTg1MSIsIFwKLSAgICAgICAgICAiMC40NTk0MzMsIDAuNjM0NjY2LCAwLjc2OTE1MywgMC44NjE2NTEsIDEuMDA3OTMsIDEuMTM1NTcsIDEuMzE3NiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEyMDYxNywgMC4zNjg5MzQsIDAuNjEzODUxLCAwLjc5MjIxNiwgMS4wODMxLCAxLjMzOTI4LCAxLjcwMzc2IiwgXAotICAgICAgICAgICIwLjEyMDMzMSwgMC4zNjg4NjcsIDAuNjEzOTU3LCAwLjc5MjU1NCwgMS4wODI5NywgMS4zMzcwNywgMS43MDQ3NyIsIFwKLSAgICAgICAgICAiMC4xMjA0MDMsIDAuMzY4ODU2LCAwLjYxMzk3OCwgMC43OTI0OTUsIDEuMDgyOTksIDEuMzM3MTksIDEuNzA0NjIiLCBcCi0gICAgICAgICAgIjAuMTIwMzgyLCAwLjM2ODkzMiwgMC42MTM5NjIsIDAuNzkyNDcyLCAxLjA4Mjg5LCAxLjMzOTAxLCAxLjcwNDc1IiwgXAotICAgICAgICAgICIwLjExOTk4MiwgMC4zNjg4NTMsIDAuNjEzOTU2LCAwLjc5MjY2NywgMS4wODI5MywgMS4zMzkyMiwgMS43MDY3OSIsIFwKLSAgICAgICAgICAiMC4xMjAzODIsIDAuMzY4ODQ1LCAwLjYxMzcyMiwgMC43OTIzODgsIDEuMDgyOTcsIDEuMzM5MjEsIDEuNzAzNDkiLCBcCi0gICAgICAgICAgIjAuMTIwNDY2LCAwLjM2ODg3NywgMC42MTM5NzcsIDAuNzkyMzMyLCAxLjA4Mjg3LCAxLjMzOTAxLCAxLjcwMzM0Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzM5NDcsIDAuNTI5ODU3LCAwLjY4MjAzOCwgMC43ODczMDIsIDAuOTU0MzczLCAxLjEwMDMsIDEuMzA4NDQiLCBcCi0gICAgICAgICAgIjAuMzUwOTE0LCAwLjU0MTYwOCwgMC42OTM2MTMsIDAuNzk4ODMsIDAuOTY1ODk1LCAxLjExMTc0LCAxLjMxOTk1IiwgXAotICAgICAgICAgICIwLjM2NDE1NSwgMC41NTQ3NzEsIDAuNzA2NjU5LCAwLjgxMTg3NSwgMC45Nzg5ODksIDEuMTI0ODYsIDEuMzMzMDIiLCBcCi0gICAgICAgICAgIjAuMzc2NTUxLCAwLjU2NzE2NiwgMC43MTkxNywgMC44MjQzNzgsIDAuOTkxNDUyLCAxLjEzNzM4LCAxLjM0NTUyIiwgXAotICAgICAgICAgICIwLjM4OTAxNCwgMC41Nzk1NDYsIDAuNzMxNTQ0LCAwLjgzNjc0OCwgMS4wMDM4MiwgMS4xNDk3NSwgMS4zNTc4OSIsIFwKLSAgICAgICAgICAiMC40MDg3MjIsIDAuNTk5MjMxLCAwLjc1MTI0MiwgMC44NTY0NTksIDEuMDIzNTMsIDEuMTY5MzcsIDEuMzc3NTkiLCBcCi0gICAgICAgICAgIjAuNDI1ODEyLCAwLjYxNjUzOCwgMC43NjgzNjYsIDAuODczNTM4LCAxLjA0MDcyLCAxLjE4NjU3LCAxLjM5NDcyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTIzMDE1LCAwLjQwMDQzMywgMC42NzYxMDIsIDAuODc2MTMsIDEuMjAyMDgsIDEuNDg1MDMsIDEuODk1ODEiLCBcCi0gICAgICAgICAgIjAuMTIyODk3LCAwLjQwMDg1MiwgMC42NzYxMzcsIDAuODc3MjgxLCAxLjIwMjIyLCAxLjQ4OTI0LCAxLjkwMDE0IiwgXAotICAgICAgICAgICIwLjEyMjg5OSwgMC40MDA4MDMsIDAuNjc2MDkzLCAwLjg3Njg5NywgMS4yMDIxNiwgMS40ODk5MiwgMS45MDExNiIsIFwKLSAgICAgICAgICAiMC4xMjMwMDQsIDAuNDAwNTk4LCAwLjY3NjE3MSwgMC44NzYwOTgsIDEuMjAyMDcsIDEuNDg1MDIsIDEuODk2NTQiLCBcCi0gICAgICAgICAgIjAuMTIzMDMxLCAwLjQwMDYxOCwgMC42NzYwNzQsIDAuODc2MzU4LCAxLjIwMjAzLCAxLjQ4NDk3LCAxLjg5NjkzIiwgXAotICAgICAgICAgICIwLjEyMzA3NywgMC40MDA4NDgsIDAuNjc2MTUxLCAwLjg3Njk4MywgMS4yMDIyMiwgMS40ODk2MiwgMS45MDAyMiIsIFwKLSAgICAgICAgICAiMC4xMjMwNTQsIDAuNDAwNzMxLCAwLjY3NjEwMiwgMC44NzY0MzQsIDEuMjAyMDUsIDEuNDg5OTEsIDEuOTAyMDQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zNzg3MTksIDAuNTU1MjU2LCAwLjY5MDE4NCwgMC43ODI4OTEsIDAuOTI5MjI1LCAxLjA1NjksIDEuMjM5IiwgXAotICAgICAgICAgICIwLjM5MDY4NCwgMC41NjY5NjEsIDAuNzAyMDI0LCAwLjc5NDY3NCwgMC45NDEwMTUsIDEuMDY4NywgMS4yNTA3NyIsIFwKLSAgICAgICAgICAiMC40MDQ3ODYsIDAuNTgxMDY1LCAwLjcxNjEyNiwgMC44MDg2NTMsIDAuOTU1MDMyLCAxLjA4MjcxLCAxLjI2NDc5IiwgXAotICAgICAgICAgICIwLjQxODI5NiwgMC41OTQ3ODEsIDAuNzI5ODYzLCAwLjgyMjM4MiwgMC45Njg3OCwgMS4wOTY0NSwgMS4yNzg1NiIsIFwKLSAgICAgICAgICAiMC40MzIwMTIsIDAuNjA4NDMsIDAuNzQzNDQ1LCAwLjgzNjAwNywgMC45ODIzODUsIDEuMTEwMDcsIDEuMjkyMTQiLCBcCi0gICAgICAgICAgIjAuNDU0MjAyLCAwLjYzMDU5NiwgMC43NjU2NTQsIDAuODU4MzMzLCAxLjAwNDY3LCAxLjEzMjM1LCAxLjMxNDQyIiwgXAotICAgICAgICAgICIwLjQ3MzM2MSwgMC42NDk2NDQsIDAuNzg0NzI5LCAwLjg3NzIzOCwgMS4wMjM2OSwgMS4xNTEzMSwgMS4zMzM0OCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEyMTUzMSwgMC4zNzA2MDUsIDAuNjE1NDM5LCAwLjc5Mzk3NCwgMS4wODQxOCwgMS4zNDAxNywgMS43MDQ2NyIsIFwKLSAgICAgICAgICAiMC4xMjE4NDQsIDAuMzcwNjA2LCAwLjYxNTczOSwgMC43OTM4OTgsIDEuMDg0MTIsIDEuMzQwMTQsIDEuNzA3NjQiLCBcCi0gICAgICAgICAgIjAuMTIxMTQyLCAwLjM3MDU1OSwgMC42MTU2MzUsIDAuNzkzODEzLCAxLjA4NDA4LCAxLjM0MDEzLCAxLjcwNDY4IiwgXAotICAgICAgICAgICIwLjEyMTU2NiwgMC4zNzA1NzgsIDAuNjE1NjgyLCAwLjc5Mzc4OCwgMS4wODQwMiwgMS4zNDAxMiwgMS43MDc3NCIsIFwKLSAgICAgICAgICAiMC4xMjE2NDEsIDAuMzcwNjM5LCAwLjYxNTU0OCwgMC43OTM4MzUsIDEuMDg0MDQsIDEuMzQwMTQsIDEuNzA0NDciLCBcCi0gICAgICAgICAgIjAuMTIxNDcsIDAuMzcwNTU0LCAwLjYxNTQ2MywgMC43OTM4OTMsIDEuMDg0MDIsIDEuMzQwMTIsIDEuNzA0NTciLCBcCi0gICAgICAgICAgIjAuMTIxNjA5LCAwLjM3MDU1OSwgMC42MTU2NzEsIDAuNzkzNjQ3LCAxLjA4NDA0LCAxLjM0MDE1LCAxLjcwNzk5Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzUwODA4LCAwLjU0MjU1MiwgMC42OTUxMTUsIDAuODAwNDY1LCAwLjk2NzYyLCAxLjExMzUsIDEuMzIxNzQiLCBcCi0gICAgICAgICAgIjAuMzYyMzA0LCAwLjU1NDM4MiwgMC43MDY2NzMsIDAuODExOTk5LCAwLjk3OTI0NywgMS4xMjUxNSwgMS4zMzMzMiIsIFwKLSAgICAgICAgICAiMC4zNzU5NTksIDAuNTY3ODU5LCAwLjcyMDI0NywgMC44MjU1ODksIDAuOTkyNzYyLCAxLjEzODcxLCAxLjM0Njg4IiwgXAotICAgICAgICAgICIwLjM4ODY0MywgMC41ODA4MjQsIDAuNzMzMDkyLCAwLjgzODQxNiwgMS4wMDU2NiwgMS4xNTE1NiwgMS4zNTk3OCIsIFwKLSAgICAgICAgICAiMC40MDEzMTksIDAuNTkzMjU0LCAwLjc0NTU5OSwgMC44NTA5MzIsIDEuMDE4MSwgMS4xNjQwNywgMS4zNzIyNiIsIFwKLSAgICAgICAgICAiMC40MjExNjUsIDAuNjEzMDg3LCAwLjc2NTQ2OSwgMC44NzA4NzEsIDEuMDM4MDIsIDEuMTgzOTksIDEuMzkyMTciLCBcCi0gICAgICAgICAgIjAuNDM4NTcyLCAwLjYzMDQwNywgMC43ODI4NjksIDAuODg4MjIyLCAxLjA1NTM4LCAxLjIwMTI4LCAxLjQwOTUxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTI0MTMyLCAwLjQwMjQxNiwgMC42Nzc3ODksIDAuODc3NiwgMS4yMDMyNSwgMS40OTA2MiwgMS44OTgyMSIsIFwKLSAgICAgICAgICAiMC4xMjQyMTksIDAuNDAyNTg2LCAwLjY3Nzc1OSwgMC44Nzg1MTcsIDEuMjAzMTIsIDEuNDkwNzgsIDEuOTAyNDgiLCBcCi0gICAgICAgICAgIjAuMTI0MTkyLCAwLjQwMjU0NCwgMC42Nzc4MTksIDAuODc4NTU5LCAxLjIwMzA1LCAxLjQ5MDc3LCAxLjg5NzU0IiwgXAotICAgICAgICAgICIwLjEyNDAyLCAwLjQwMjYxOSwgMC42Nzc3NTIsIDAuODc4NDUsIDEuMjAzMTQsIDEuNDkwNzgsIDEuOTAzMTMiLCBcCi0gICAgICAgICAgIjAuMTI0Mjk3LCAwLjQwMjU0OSwgMC42Nzc3MTYsIDAuODc4OTQ5LCAxLjIwMzMxLCAxLjQ5MDc2LCAxLjg5NzMyIiwgXAotICAgICAgICAgICIwLjEyMzg5MywgMC40MDI0NTksIDAuNjc3NjYxLCAwLjg3ODE4NCwgMS4yMDMwNCwgMS40OTA3MiwgMS44OTY3MiIsIFwKLSAgICAgICAgICAiMC4xMjQxNCwgMC40MDI2NzQsIDAuNjc3Nzk2LCAwLjg3NzY5MSwgMS4yMDMzNSwgMS40ODc1MSwgMS44OTkzMiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJEIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjM3Mzg1NSwgMC41NTAyNjcsIDAuNjg1MTc1LCAwLjc3Nzc1NywgMC45MjQwNTEsIDEuMDUxNjYsIDEuMjMzNzQiLCBcCi0gICAgICAgICAgIjAuMzg2MDksIDAuNTYyMDc1LCAwLjY5NzA3MiwgMC43ODk2NTIsIDAuOTM1OTQ1LCAxLjA2MzYxLCAxLjI0NTY0IiwgXAotICAgICAgICAgICIwLjQwMDA5MiwgMC41NzYxNTgsIDAuNzExMDgxLCAwLjgwMzYxLCAwLjk0OTkzMywgMS4wNzc1OSwgMS4yNTk2MyIsIFwKLSAgICAgICAgICAiMC40MTM3MzksIDAuNTg5OTAzLCAwLjcyNDg5NSwgMC44MTczNjMsIDAuOTYzNywgMS4wOTEzNSwgMS4yNzM0NyIsIFwKLSAgICAgICAgICAiMC40Mjc0ODMsIDAuNjAzNjgyLCAwLjczODYxMSwgMC44MzExMzIsIDAuOTc3NDYxLCAxLjEwNTExLCAxLjI4NzE1IiwgXAotICAgICAgICAgICIwLjQ0OTU5NCwgMC42MjU4MDksIDAuNzYwNjk3LCAwLjg1MzM4NiwgMC45OTk2NzIsIDEuMTI3MzIsIDEuMzA5MzYiLCBcCi0gICAgICAgICAgIjAuNDY5MTQsIDAuNjQ1MDk3LCAwLjc4MDEzLCAwLjg3MjY3NSwgMS4wMTg5NywgMS4xNDY2NCwgMS4zMjg2NSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEyMTU4NSwgMC4zNzAyMjgsIDAuNjE1MjA3LCAwLjc5MzU3NSwgMS4wODM4LCAxLjM0MDExLCAxLjcwNDIyIiwgXAotICAgICAgICAgICIwLjEyMTE1OCwgMC4zNzAwNTgsIDAuNjE1MTExLCAwLjc5MzU0NywgMS4wODM3NiwgMS4zMzk3NSwgMS43MDQzMiIsIFwKLSAgICAgICAgICAiMC4xMjA3NjgsIDAuMzcwMTgzLCAwLjYxNTExOSwgMC43OTMzMzIsIDEuMDgzNzIsIDEuMzM5NzcsIDEuNzA0MzEiLCBcCi0gICAgICAgICAgIjAuMTIxMzkzLCAwLjM3MDIyMywgMC42MTUzMDcsIDAuNzkzMzA4LCAxLjA4Mjc4LCAxLjMzOTc2LCAxLjcwNzU4IiwgXAotICAgICAgICAgICIwLjEyMTMyNCwgMC4zNzAyNTUsIDAuNjE1MTQxLCAwLjc5MzQyMywgMS4wODM2LCAxLjMzOTU5LCAxLjcwNDA4IiwgXAotICAgICAgICAgICIwLjEyMTE1NSwgMC4zNzAxNDQsIDAuNjE0OTkxLCAwLjc5MzEsIDEuMDgzNjcsIDEuMzM5NzYsIDEuNzA0MiIsIFwKLSAgICAgICAgICAiMC4xMjA5MTQsIDAuMzY5OTY4LCAwLjYxNDkxOSwgMC43OTM0ODgsIDEuMDgzNjQsIDEuMzM5NTUsIDEuNzAzODUiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zNDkxNiwgMC41NDExMDIsIDAuNjkzMzcsIDAuNzk4Njc2LCAwLjk2NTg1OCwgMS4xMTE4MSwgMS4zMTk5OCIsIFwKLSAgICAgICAgICAiMC4zNjA4MTIsIDAuNTUyNTksIDAuNzA0ODc0LCAwLjgxMDE3OSwgMC45NzczNywgMS4xMjMzLCAxLjMzMTQ4IiwgXAotICAgICAgICAgICIwLjM3Mzk0NCwgMC41NjU3MzUsIDAuNzE4MDIzLCAwLjgyMzM2LCAwLjk5MDUwMSwgMS4xMzY0NSwgMS4zNDQ2MiIsIFwKLSAgICAgICAgICAiMC4zODY0OTcsIDAuNTc4MTg0LCAwLjczMDQ4NywgMC44MzU4MTMsIDEuMDAyOTcsIDEuMTQ4OTEsIDEuMzU3MDkiLCBcCi0gICAgICAgICAgIjAuMzk4NTc5LCAwLjU5MDUwOSwgMC43NDI3OTYsIDAuODQ4MTA1LCAxLjAxNTMyLCAxLjE2MTIzLCAxLjM2OTQiLCBcCi0gICAgICAgICAgIjAuNDE4NDEsIDAuNjEwMjA1LCAwLjc2MjYwMywgMC44Njc5MjksIDEuMDM1MDYsIDEuMTgxMDMsIDEuMzg5MTkiLCBcCi0gICAgICAgICAgIjAuNDM1NjUyLCAwLjYyNzQ0MywgMC43Nzk3NDMsIDAuODg1MDU2LCAxLjA1MjIyLCAxLjE5ODE4LCAxLjQwNjM2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTI0MDM4LCAwLjQwMjQwOCwgMC42Nzc1ODksIDAuODc4MzM4LCAxLjIwMzE5LCAxLjQ5MDY3LCAxLjkwMjEiLCBcCi0gICAgICAgICAgIjAuMTIzNzc3LCAwLjQwMjM1MywgMC42Nzc1NTUsIDAuODc4MzQ4LCAxLjIwMTg0LCAxLjQ5MDY0LCAxLjg5NzIyIiwgXAotICAgICAgICAgICIwLjEyNDA0MSwgMC40MDIzODIsIDAuNjc3NTI4LCAwLjg3NzU5NiwgMS4yMDI4LCAxLjQ5MDYyLCAxLjg5Njg3IiwgXAotICAgICAgICAgICIwLjEyNDA5NiwgMC40MDIzNTUsIDAuNjc3NTM1LCAwLjg3ODgwNywgMS4yMDI3NSwgMS40OTA2MiwgMS44OTY4OCIsIFwKLSAgICAgICAgICAiMC4xMjM5NTksIDAuNDAyMzgzLCAwLjY3NzU2MiwgMC44NzgzODEsIDEuMjAyNTIsIDEuNDkwNjQsIDEuODk2ODkiLCBcCi0gICAgICAgICAgIjAuMTIzODYxLCAwLjQwMjE1LCAwLjY3NzY1MywgMC44Nzc4MDcsIDEuMjAyOTIsIDEuNDg3MTgsIDEuODk2NDMiLCBcCi0gICAgICAgICAgIjAuMTI0MTczLCAwLjQwMjM2NiwgMC42Nzc1NSwgMC44Nzg4MjYsIDEuMjAzMjEsIDEuNDkwNjMsIDEuODk3MDQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUzAiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzYwMzQzLCAwLjUzNjMsIDAuNjcxMzEzLCAwLjc2Mzc2NywgMC45MTAxNjMsIDEuMDM3NzcsIDEuMjE5OCIsIFwKLSAgICAgICAgICAiMC4zNzA5NCwgMC41NDcwMzYsIDAuNjgyMDI4LCAwLjc3NDUxMiwgMC45MjA5MDcsIDEuMDQ4NTIsIDEuMjMwNiIsIFwKLSAgICAgICAgICAiMC4zODQ2OTcsIDAuNTYwODMxLCAwLjY5NTgwMSwgMC43ODgyODksIDAuOTM0NjI2LCAxLjA2MjI3LCAxLjI0NDMxIiwgXAotICAgICAgICAgICIwLjM5ODQ0OSwgMC41NzQ1MjcsIDAuNzA5NTAyLCAwLjgwMjA5MywgMC45NDgzNzQsIDEuMDc1OTksIDEuMjU4MDYiLCBcCi0gICAgICAgICAgIjAuNDExOTc2LCAwLjU4ODEyOSwgMC43MjMxMDYsIDAuODE1NjgyLCAwLjk2MTk2NywgMS4wODk2MSwgMS4yNzE2NiIsIFwKLSAgICAgICAgICAiMC40MzQxODUsIDAuNjEwMTI4LCAwLjc0NTEzMiwgMC44Mzc1ODEsIDAuOTgzOTk0LCAxLjExMTYsIDEuMjkzNjUiLCBcCi0gICAgICAgICAgIjAuNDUzMzg1LCAwLjYyOTMyNywgMC43NjQzMTEsIDAuODU2ODQyLCAxLjAwMzE4LCAxLjEzMDc3LCAxLjMxMjgyIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTIxMjY2LCAwLjM3MDMwNywgMC42MTUzNzksIDAuNzkzNzIxLCAxLjA4MzgyLCAxLjM0MDA0LCAxLjcwNzY1IiwgXAotICAgICAgICAgICIwLjEyMTA3OSwgMC4zNzAzMjksIDAuNjE1MzY0LCAwLjc5MzU3OSwgMS4wODM4MiwgMS4zMzk5OCwgMS43MDcwOSIsIFwKLSAgICAgICAgICAiMC4xMjEyMzcsIDAuMzcwMjczLCAwLjYxNTMyOCwgMC43OTM1ODgsIDEuMDgzNzcsIDEuMzM5OCwgMS43MDcxOCIsIFwKLSAgICAgICAgICAiMC4xMjEyMTcsIDAuMzcwMjU0LCAwLjYxNTE4MiwgMC43OTM2MDQsIDEuMDgzNzgsIDEuMzQwMDIsIDEuNzA1MDgiLCBcCi0gICAgICAgICAgIjAuMTIxMTg1LCAwLjM3MDIyNCwgMC42MTUyOTIsIDAuNzkzNTc5LCAxLjA4MzcsIDEuMzM5NzksIDEuNzA3MjMiLCBcCi0gICAgICAgICAgIjAuMTIxMjYxLCAwLjM3MDI0OSwgMC42MTUyOTksIDAuNzkzNjc3LCAxLjA4MzcyLCAxLjMzOTkzLCAxLjcwNjk0IiwgXAotICAgICAgICAgICIwLjEyMDk5MiwgMC4zNzAyMSwgMC42MTUyOTcsIDAuNzkzNTIxLCAxLjA4MzY2LCAxLjMzOTgxLCAxLjcwNTA5Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzM1MzkzLCAwLjUyNzI2MSwgMC42Nzk2OTgsIDAuNzg1MDc4LCAwLjk1MjIzMSwgMS4wOTgxOSwgMS4zMDYzNiIsIFwKLSAgICAgICAgICAiMC4zNDU3ODYsIDAuNTM3Njg2LCAwLjY5MDA4MywgMC43OTU0MzcsIDAuOTYyNTg4LCAxLjEwODQ3LCAxLjMxNjcyIiwgXAotICAgICAgICAgICIwLjM1OTE5NywgMC41NTExMzQsIDAuNzAzNTA2LCAwLjgwODg1OSwgMC45NzYwMDksIDEuMTIxOTMsIDEuMzMwMTQiLCBcCi0gICAgICAgICAgIjAuMzcyMzU2LCAwLjU2NDM4LCAwLjcxNjcxNiwgMC44MjIwNzIsIDAuOTg5MjI0LCAxLjEzNTE5LCAxLjM0MzM2IiwgXAotICAgICAgICAgICIwLjM4NTYwNiwgMC41Nzc1MDYsIDAuNzI5ODkxLCAwLjgzNTI0NCwgMS4wMDI0LCAxLjE0ODI3LCAxLjM1NjUzIiwgXAotICAgICAgICAgICIwLjQwNjg3MywgMC41OTg2OTksIDAuNzUxMTQ0LCAwLjg1NjQ5OSwgMS4wMjM2NSwgMS4xNjk1MywgMS4zNzc3OSIsIFwKLSAgICAgICAgICAiMC40MjU1MDIsIDAuNjE3NDA0LCAwLjc2OTc3NSwgMC44NzUxMjQsIDEuMDQyMjgsIDEuMTg4MiwgMS4zOTY0MiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEyNDEzNCwgMC40MDI3MTksIDAuNjc4MTA1LCAwLjg3ODcyNCwgMS4yMDMzNSwgMS40OTA3NywgMS45MDAzNyIsIFwKLSAgICAgICAgICAiMC4xMjQzMjEsIDAuNDAyNjgxLCAwLjY3Nzc5MSwgMC44Nzg2MjEsIDEuMjAzMzUsIDEuNDkwODMsIDEuOTAyNDQiLCBcCi0gICAgICAgICAgIjAuMTI0MTU2LCAwLjQwMjY4NywgMC42Nzc4NDUsIDAuODc4NTQ1LCAxLjIwMzM2LCAxLjQ5MDgsIDEuOTAzMDUiLCBcCi0gICAgICAgICAgIjAuMTI0MTQyLCAwLjQwMjU5NywgMC42NzgyMDQsIDAuODc4ODIzLCAxLjIwMzE5LCAxLjQ5MDgsIDEuOTAzNDEiLCBcCi0gICAgICAgICAgIjAuMTI0MzU3LCAwLjQwMjY3OCwgMC42Nzc3OTMsIDAuODc4OTc2LCAxLjIwMzI5LCAxLjQ5MDc5LCAxLjkwMjU1IiwgXAotICAgICAgICAgICIwLjEyNDE1MSwgMC40MDI3MTcsIDAuNjc3ODExLCAwLjg3ODc2NCwgMS4yMDMzNSwgMS40OTA3NiwgMS45MDIzMSIsIFwKLSAgICAgICAgICAiMC4xMjQyNjUsIDAuNDAyNjk4LCAwLjY3NzgwNywgMC44Nzg1NjcsIDEuMjAzMzUsIDEuNDkwNzgsIDEuOTAyNTUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUzAiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuNDE1OTgyLCAwLjU5MjE1NCwgMC43MjcxNDMsIDAuODE5Njg4LCAwLjk2NjA5NCwgMS4wOTM3MywgMS4yNzU4NCIsIFwKLSAgICAgICAgICAiMC40Mjc0NzQsIDAuNjAzODc2LCAwLjczODkwOSwgMC44MzE1NjQsIDAuOTc3ODk2LCAxLjEwNTU4LCAxLjI4NzY1IiwgXAotICAgICAgICAgICIwLjQ0Mjg4MiwgMC42MTkwNjYsIDAuNzU0MDQxLCAwLjg0NjUzNywgMC45OTMwMDEsIDEuMTIwNjQsIDEuMzAyNzQiLCBcCi0gICAgICAgICAgIjAuNDU3NTcsIDAuNjMzOTk1LCAwLjc2OTAyMSwgMC44NjE2ODIsIDEuMDA4MDIsIDEuMTM1NjksIDEuMzE3NzciLCBcCi0gICAgICAgICAgIjAuNDcyMDE2LCAwLjY0ODIxOCwgMC43ODMyLCAwLjg3NTkwMiwgMS4wMjIyMywgMS4xNDk4MywgMS4zMzE5OCIsIFwKLSAgICAgICAgICAiMC40OTQ3MzEsIDAuNjcwOTI2LCAwLjgwNjAwNywgMC44OTg1MDgsIDEuMDQ0ODcsIDEuMTcyNTcsIDEuMzU0NjgiLCBcCi0gICAgICAgICAgIjAuNTEyNDEsIDAuNjg4NTcsIDAuODIzNTYxLCAwLjkxNjE4NiwgMS4wNjI1MSwgMS4xOTAxNSwgMS4zNzIyNSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEyMTM5MiwgMC4zNzA2NjksIDAuNjE1NzM2LCAwLjc5Mzk3LCAxLjA4NDE4LCAxLjM0MDM4LCAxLjcwNzM4IiwgXAotICAgICAgICAgICIwLjEyMTU0OCwgMC4zNzA2NjMsIDAuNjE1NTYsIDAuNzk0MDA4LCAxLjA4NDE1LCAxLjM0MDE3LCAxLjcwNjkzIiwgXAotICAgICAgICAgICIwLjEyMTUzMSwgMC4zNzA2ODUsIDAuNjE1NzMxLCAwLjc5NDA0MSwgMS4wODQxNCwgMS4zNDAzOCwgMS43MDc1MSIsIFwKLSAgICAgICAgICAiMC4xMjE1OTYsIDAuMzcwNTksIDAuNjE1NzE1LCAwLjc5NDAwNiwgMS4wODQxMiwgMS4zNDAzNywgMS43MDY5MyIsIFwKLSAgICAgICAgICAiMC4xMjE0NzgsIDAuMzcwNzQ5LCAwLjYxNTY0MiwgMC43OTM5OTUsIDEuMDg0MTQsIDEuMzQwMTQsIDEuNzA3NCIsIFwKLSAgICAgICAgICAiMC4xMjE4NTMsIDAuMzcwNjUxLCAwLjYxNTczMSwgMC43OTM4OTQsIDEuMDg0MSwgMS4zNDAzOCwgMS43MDU1IiwgXAotICAgICAgICAgICIwLjEyMTUwNSwgMC4zNzA1NzUsIDAuNjE1NjY0LCAwLjc5MzkzOSwgMS4wODQxNSwgMS4zNDAzNiwgMS43MDU1MSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjM5NDE3OCwgMC41ODU4NTgsIDAuNzM4MzExLCAwLjg0MzY4MywgMS4wMTA4MSwgMS4xNTY3NywgMS4zNjQ5NSIsIFwKLSAgICAgICAgICAiMC40MDYwNywgMC41OTc4NjMsIDAuNzUwMTYsIDAuODU1NTA2LCAxLjAyMjY0LCAxLjE2ODU5LCAxLjM3Njc3IiwgXAotICAgICAgICAgICIwLjQyMTYzNCwgMC42MTMzNjEsIDAuNzY1NzU5LCAwLjg3MTA5NywgMS4wMzgyNCwgMS4xODQxNiwgMS4zOTIzNSIsIFwKLSAgICAgICAgICAiMC40MzcwNzQsIDAuNjI4ODkxLCAwLjc4MTE4OCwgMC44ODY1MTEsIDEuMDUzNjcsIDEuMTk5NjIsIDEuNDA3OCIsIFwKLSAgICAgICAgICAiMC40NTIzMDIsIDAuNjQ0MDY2LCAwLjc5NjQ0MSwgMC45MDE3NjMsIDEuMDY4OTEsIDEuMjE0NzcsIDEuNDIzMDIiLCBcCi0gICAgICAgICAgIjAuNDc2MDkzLCAwLjY2ODAwNCwgMC44MjAzOTcsIDAuOTI1NzMsIDEuMDkyODcsIDEuMjM4NzIsIDEuNDQ2OTgiLCBcCi0gICAgICAgICAgIjAuNDk2NTQ4LCAwLjY4ODMwMiwgMC44NDA2MDYsIDAuOTQ1OTUyLCAxLjExMzA4LCAxLjI1OTA0LCAxLjQ2NzIxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTI0MTU3LCAwLjQwMjM5NiwgMC42Nzc1NjMsIDAuODc4NzAxLCAxLjIwMzI0LCAxLjQ5MDksIDEuOTAyNjgiLCBcCi0gICAgICAgICAgIjAuMTI0MTMsIDAuNDAyNDA1LCAwLjY3Nzk0MSwgMC44Nzg3NDIsIDEuMjAzMDksIDEuNDkwNzksIDEuODk4OTMiLCBcCi0gICAgICAgICAgIjAuMTI0MjI1LCAwLjQwMjUyMiwgMC42NzgwNjMsIDAuODc4NjgzLCAxLjIwMzI2LCAxLjQ5MDc1LCAxLjkwMjM0IiwgXAotICAgICAgICAgICIwLjEyNDI2MywgMC40MDI0MDcsIDAuNjc3NTU1LCAwLjg3ODg0NiwgMS4yMDI5OSwgMS40OTA3NCwgMS44OTkxMiIsIFwKLSAgICAgICAgICAiMC4xMjQxMTYsIDAuNDAyMzc5LCAwLjY3Nzk1NywgMC44Nzg1ODUsIDEuMjAzMjEsIDEuNDkwNzMsIDEuOTAxNTEiLCBcCi0gICAgICAgICAgIjAuMTI0MTk1LCAwLjQwMjQ2MywgMC42Nzc2MjksIDAuODc4NjIzLCAxLjIwMzIsIDEuNDkwNjcsIDEuOTAwMjYiLCBcCi0gICAgICAgICAgIjAuMTI0MTQ0LCAwLjQwMjM3MSwgMC42Nzc1NDgsIDAuODc4MzcxLCAxLjIwMzEyLCAxLjQ5MDY4LCAxLjkwMDI5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlMxIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIyOTU1NCwgMC40MDUxNDksIDAuNTM5NjM3LCAwLjYzMTk4NSwgMC43NzgyNzIsIDAuOTA1NzU2LCAxLjA4NzciLCBcCi0gICAgICAgICAgIjAuMjM5OTA0LCAwLjQxNTM0NSwgMC41NTAwMTUsIDAuNjQyNDczLCAwLjc4ODU5NiwgMC45MTYxNSwgMS4wOTgwOCIsIFwKLSAgICAgICAgICAiMC4yNTIwODEsIDAuNDI3NTU2LCAwLjU2MjM3MiwgMC42NTQ4MywgMC44MDA5NjQsIDAuOTI4NTA1LCAxLjExMDQzIiwgXAotICAgICAgICAgICIwLjI2MzkyMywgMC40Mzk1NSwgMC41NzQxNzMsIDAuNjY2NjgxLCAwLjgxMjgxNSwgMC45NDAzNzIsIDEuMTIyMjgiLCBcCi0gICAgICAgICAgIjAuMjc1NTc3LCAwLjQ1MTA5NSwgMC41ODU3NTgsIDAuNjc4MjIsIDAuODI0MzQsIDAuOTUxODUzLCAxLjEzMzgiLCBcCi0gICAgICAgICAgIjAuMjk0MjY2LCAwLjQ2OTY1NCwgMC42MDQ0MTcsIDAuNjk2ODY4LCAwLjg0MzA3NSwgMC45NzA2MDgsIDEuMTUyNTMiLCBcCi0gICAgICAgICAgIjAuMzEwMzM0LCAwLjQ4NTgwMSwgMC42MjA0NDksIDAuNzEyODU1LCAwLjg1OTAzLCAwLjk4NjU3NSwgMS4xNjg1Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTE5MDU1LCAwLjM2OTQ3NywgMC42MTQ0MzUsIDAuNzkyNDgyLCAxLjA4Mjg4LCAxLjMzODk5LCAxLjcwNjM1IiwgXAotICAgICAgICAgICIwLjExOTM1MSwgMC4zNjkxODEsIDAuNjE0MjE1LCAwLjc5MjY5OCwgMS4wODI5LCAxLjMzODg3LCAxLjcwMzQ0IiwgXAotICAgICAgICAgICIwLjExOTE4MiwgMC4zNjkwODMsIDAuNjE0MDUyLCAwLjc5MjU1OSwgMS4wODI3NCwgMS4zMzg4NywgMS43MDMxMiIsIFwKLSAgICAgICAgICAiMC4xMTkwNDIsIDAuMzY4ODkzLCAwLjYxNDEyNSwgMC43OTI1NTcsIDEuMDgyNzYsIDEuMzM4NjMsIDEuNzAzMDMiLCBcCi0gICAgICAgICAgIjAuMTE4OTk3LCAwLjM2OTE1OCwgMC42MTQxNywgMC43OTI1MzksIDEuMDgyODIsIDEuMzM5MDksIDEuNzA0MTYiLCBcCi0gICAgICAgICAgIjAuMTE4ODAzLCAwLjM2OTAxMiwgMC42MTM4MiwgMC43OTIzNzcsIDEuMDgyNTYsIDEuMzM4NjUsIDEuNzAzMjciLCBcCi0gICAgICAgICAgIjAuMTE4NTIxLCAwLjM2ODk5OCwgMC42MTQwNzUsIDAuNzkyMzA4LCAxLjA4MjYxLCAxLjMzODYzLCAxLjcwMzMiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMjg1MTYsIDAuNDE4NzIxLCAwLjU3MDUyNywgMC42NzU2NDUsIDAuODQyNjExLCAwLjk4ODQzLCAxLjE5NjUyIiwgXAotICAgICAgICAgICIwLjIzODU3OCwgMC40Mjg4ODYsIDAuNTgwNTU1LCAwLjY4NTYyNiwgMC44NTI2OTYsIDAuOTk4NDkyLCAxLjIwNjUzIiwgXAotICAgICAgICAgICIwLjI1MDY2NiwgMC40NDEwMDIsIDAuNTkyNjA3LCAwLjY5NzY3OSwgMC44NjQ3MzgsIDEuMDEwNTQsIDEuMjE4NjQiLCBcCi0gICAgICAgICAgIjAuMjYyNDksIDAuNDUyNjY5LCAwLjYwNDQ4MSwgMC43MDk1OTIsIDAuODc2NTU2LCAxLjAyMjMyLCAxLjIzMDQ2IiwgXAotICAgICAgICAgICIwLjI3NDAzNywgMC40NjQ0NzMsIDAuNjE2MTY5LCAwLjcyMTI1NSwgMC44ODgyNTEsIDEuMDM0MTEsIDEuMjQyMTgiLCBcCi0gICAgICAgICAgIjAuMjkyMzk0LCAwLjQ4MjYxMSwgMC42MzQ1MzcsIDAuNzM5NjUzLCAwLjkwNjYyNywgMS4wNTIzNywgMS4yNjA1NCIsIFwKLSAgICAgICAgICAiMC4zMDg2NTgsIDAuNDk4OTM2LCAwLjY1MDU4NiwgMC43NTU2ODgsIDAuOTIyNzE1LCAxLjA2ODU2LCAxLjI3NjYzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTIyMjE1LCAwLjQwMDI1MiwgMC42NzU1ODgsIDAuODc2NTMxLCAxLjIwMTY3LCAxLjQ4OTMsIDEuODk5MzgiLCBcCi0gICAgICAgICAgIjAuMTIyMTUyLCAwLjQwMDA5MywgMC42NzU1MiwgMC44NzU5MDUsIDEuMjAxNDMsIDEuNDg5MzQsIDEuOTAwODkiLCBcCi0gICAgICAgICAgIjAuMTIyMTI4LCAwLjQwMDA3OSwgMC42NzU1MDcsIDAuODc1NzE5LCAxLjIwMTQ3LCAxLjQ4OTM0LCAxLjkwMTYzIiwgXAotICAgICAgICAgICIwLjEyMTkzLCAwLjQwMDIyMSwgMC42NzU1NjIsIDAuODc2MzAyLCAxLjIwMTY1LCAxLjQ4OTE3LCAxLjg5ODY5IiwgXAotICAgICAgICAgICIwLjEyMTc1NywgMC40MDAwMzYsIDAuNjc1NDg3LCAwLjg3NjI1OCwgMS4yMDE2MywgMS40ODkzMywgMS44OTU2NSIsIFwKLSAgICAgICAgICAiMC4xMjE2OTcsIDAuMzk5OTQ2LCAwLjY3NTUzMywgMC44NzYxNTQsIDEuMjAxNjIsIDEuNDg4NjcsIDEuODk4MDMiLCBcCi0gICAgICAgICAgIjAuMTIxNzcyLCAwLjM5OTk2NSwgMC42NzU0MzMsIDAuODc2MjU1LCAxLjIwMTMzLCAxLjQ4OTI5LCAxLjg5NTMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUzEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjQxMzQ1LCAwLjQxNTg3MywgMC41NTAxODYsIDAuNjQyNDM4LCAwLjc4ODYzMSwgMC45MTYxMzIsIDEuMDk4MDYiLCBcCi0gICAgICAgICAgIjAuMjUzNDI0LCAwLjQyODA3NCwgMC41NjIzNjksIDAuNjU0NzU0LCAwLjgwMDgzNiwgMC45MjgyOSwgMS4xMTAyNyIsIFwKLSAgICAgICAgICAiMC4yNjc2ODMsIDAuNDQyMTkzLCAwLjU3NjUwOSwgMC42Njg3NjcsIDAuODE0OTg2LCAwLjk0MjQ2NiwgMS4xMjQzNyIsIFwKLSAgICAgICAgICAiMC4yODE0NzYsIDAuNDU1ODY5LCAwLjU5MDMwOSwgMC42ODI2NDgsIDAuODI4NzIsIDAuOTU2MjkxLCAxLjEzODE4IiwgXAotICAgICAgICAgICIwLjI5NDc0MywgMC40NjkzMTIsIDAuNjAzNjY2LCAwLjY5NjAyNSwgMC44NDIxMTIsIDAuOTY5NjYzLCAxLjE1MTU2IiwgXAotICAgICAgICAgICIwLjMxNTAxLCAwLjQ4OTUxOCwgMC42MjM4MDcsIDAuNzE2MDg1LCAwLjg2MjM0MywgMC45ODk4MjgsIDEuMTcxNzQiLCBcCi0gICAgICAgICAgIjAuMzMyMzUyLCAwLjUwNjgxMiwgMC42NDExMzMsIDAuNzMzMzkzLCAwLjg3OTYxNiwgMS4wMDcwOCwgMS4xODkwNyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExOTQ0NiwgMC4zNjgyNzUsIDAuNjEzMzIyLCAwLjc5MTgyNSwgMS4wODIxOSwgMS4zMzU2MSwgMS43MDM2IiwgXAotICAgICAgICAgICIwLjExOTMyNywgMC4zNjc5ODEsIDAuNjEzMzYsIDAuNzkxODQ3LCAxLjA4MjI2LCAxLjMzODAzLCAxLjcwMzc4IiwgXAotICAgICAgICAgICIwLjExOTM4NCwgMC4zNjgyOSwgMC42MTMzMzksIDAuNzkxODgzLCAxLjA4MjIxLCAxLjMzODUzLCAxLjcwNjE2IiwgXAotICAgICAgICAgICIwLjExOTM3OCwgMC4zNjgyMTMsIDAuNjEzMjUyLCAwLjc5MTQ4LCAxLjA4MjI0LCAxLjMzODM2LCAxLjcwMzk5IiwgXAotICAgICAgICAgICIwLjExOTI3NywgMC4zNjgxNzksIDAuNjEzMTE4LCAwLjc5MTgzMywgMS4wODIyLCAxLjMzODM0LCAxLjcwNCIsIFwKLSAgICAgICAgICAiMC4xMTg5NDgsIDAuMzY4Mjg4LCAwLjYxMzI4NCwgMC43OTE4OTgsIDEuMDgyMTMsIDEuMzM4MzksIDEuNzA1NjkiLCBcCi0gICAgICAgICAgIjAuMTE5MDQ2LCAwLjM2ODIxMywgMC42MTMyNywgMC43OTE4ODYsIDEuMDgyMTcsIDEuMzM2MTksIDEuNzA1MjgiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yNDAyNTksIDAuNDMxOTg2LCAwLjU4Mzk4OSwgMC42ODkxODksIDAuODU2MjgzLCAxLjAwMjA5LCAxLjIxMDE2IiwgXAotICAgICAgICAgICIwLjI1Mjk5NiwgMC40NDQzNzgsIDAuNTk2NTYzLCAwLjcwMTgwNiwgMC44Njg4MDksIDEuMDE0NTcsIDEuMjIyNzUiLCBcCi0gICAgICAgICAgIjAuMjY4MjE1LCAwLjQ1OTgyMSwgMC42MTE4NjEsIDAuNzE3MDg1LCAwLjg4NDE1NCwgMS4wMjk5NywgMS4yMzgwNCIsIFwKLSAgICAgICAgICAiMC4yODM0OTIsIDAuNDc1MDAyLCAwLjYyNzI5NSwgMC43MzI1MTYsIDAuODk5NTU0LCAxLjA0NTQzLCAxLjI1MzUxIiwgXAotICAgICAgICAgICIwLjI5ODQ2MywgMC40OTAwMzksIDAuNjQyMTc1LCAwLjc0NzM3NSwgMC45MTQ0NTcsIDEuMDYwMjgsIDEuMjY4NCIsIFwKLSAgICAgICAgICAiMC4zMjE1MjIsIDAuNTEzMDUsIDAuNjY1MTc2LCAwLjc3MDM5NiwgMC45Mzc0MjYsIDEuMDgzMzIsIDEuMjkxNCIsIFwKLSAgICAgICAgICAiMC4zNDEwMDQsIDAuNTMyNDU1LCAwLjY4NDU1OCwgMC43ODk3NjUsIDAuOTU2ODMxLCAxLjEwMjcsIDEuMzEwNzgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMjMwMSwgMC40MDE3NTksIDAuNjc2OTIyLCAwLjg3NzU5NiwgMS4yMDI1NSwgMS40OTAyMiwgMS45MDE1NCIsIFwKLSAgICAgICAgICAiMC4xMjMyMDQsIDAuNDAxOTE4LCAwLjY3Njk3NSwgMC44NzgwOTYsIDEuMjAyNTMsIDEuNDkwMDMsIDEuODk3MjgiLCBcCi0gICAgICAgICAgIjAuMTIzMDYsIDAuNDAxNzc0LCAwLjY3Njk0MywgMC44Nzc4MDksIDEuMjAyMzksIDEuNDkwMDcsIDEuOTAxNTEiLCBcCi0gICAgICAgICAgIjAuMTIyOTcxLCAwLjQwMTYzMSwgMC42NzY4NTYsIDAuODc4MDgsIDEuMjAyNTYsIDEuNDkwMDEsIDEuODk2NTkiLCBcCi0gICAgICAgICAgIjAuMTIyOTAxLCAwLjQwMTg3OCwgMC42NzY5NTIsIDAuODc2OTc3LCAxLjIwMjM4LCAxLjQ5MDAzLCAxLjkwMjc0IiwgXAotICAgICAgICAgICIwLjEyMjk3MiwgMC40MDE3NTMsIDAuNjc2ODY5LCAwLjg3ODE0NiwgMS4yMDI0NywgMS40ODk5NiwgMS44OTYiLCBcCi0gICAgICAgICAgIjAuMTIyOTQ3LCAwLjQwMTcwNywgMC42NzY4OTUsIDAuODc3NjA5LCAxLjIwMjM2LCAxLjQ4OTk1LCAxLjg5NjEyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQ1NjUsIDAuMDA0NjU1LCAwLjAwNDY4OCwgMC4wMDQ3MDEsIDAuMDA0NzExLCAwLjAwNDcxOCwgMC4wMDQ3MjMiLCBcCi0gICAgICAgICAgIjAuMDA0NTU2LCAwLjAwNDY0NiwgMC4wMDQ2NzksIDAuMDA0NjkxLCAwLjAwNDcwNCwgMC4wMDQ3MDgsIDAuMDA0NzE0IiwgXAotICAgICAgICAgICIwLjAwNDU1MiwgMC4wMDQ2NDMsIDAuMDA0Njc2LCAwLjAwNDY4OCwgMC4wMDQ3LCAwLjAwNDcwNSwgMC4wMDQ3MTIiLCBcCi0gICAgICAgICAgIjAuMDA0NTQ5LCAwLjAwNDY0LCAwLjAwNDY3MywgMC4wMDQ2ODcsIDAuMDA0Njk4LCAwLjAwNDcwNiwgMC4wMDQ3MDkiLCBcCi0gICAgICAgICAgIjAuMDA0NTQ3LCAwLjAwNDYzNywgMC4wMDQ2NzEsIDAuMDA0Njg1LCAwLjAwNDY5NCwgMC4wMDQ3MDIsIDAuMDA0NzA3IiwgXAotICAgICAgICAgICIwLjAwNDU0NSwgMC4wMDQ2MzQsIDAuMDA0NjY4LCAwLjAwNDY4MiwgMC4wMDQ2OTIsIDAuMDA0Njk4LCAwLjAwNDcwNCIsIFwKLSAgICAgICAgICAiMC4wMDQ1NDIsIDAuMDA0NjMsIDAuMDA0NjY1LCAwLjAwNDY3OSwgMC4wMDQ2OSwgMC4wMDQ2OTcsIDAuMDA0NzAyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDY3NDUsIDAuMDA2ODgxLCAwLjAwNjkyOSwgMC4wMDY5NDcsIDAuMDA2OTY0LCAwLjAwNjk3MywgMC4wMDY5ODEiLCBcCi0gICAgICAgICAgIjAuMDA2NzQxLCAwLjAwNjg3NiwgMC4wMDY5MjUsIDAuMDA2OTQzLCAwLjAwNjk2LCAwLjAwNjk2OSwgMC4wMDY5NzciLCBcCi0gICAgICAgICAgIjAuMDA2NzM5LCAwLjAwNjg3NSwgMC4wMDY5MjMsIDAuMDA2OTQxLCAwLjAwNjk1OCwgMC4wMDY5NjcsIDAuMDA2OTc1IiwgXAotICAgICAgICAgICIwLjAwNjczOCwgMC4wMDY4NzMsIDAuMDA2OTIyLCAwLjAwNjk0LCAwLjAwNjk1NywgMC4wMDY5NjYsIDAuMDA2OTc0IiwgXAotICAgICAgICAgICIwLjAwNjczNywgMC4wMDY4NzIsIDAuMDA2OTIxLCAwLjAwNjkzOCwgMC4wMDY5NTUsIDAuMDA2OTY0LCAwLjAwNjk3MyIsIFwKLSAgICAgICAgICAiMC4wMDY3MzYsIDAuMDA2ODY4LCAwLjAwNjkxNywgMC4wMDY5MzUsIDAuMDA2OTUzLCAwLjAwNjk2MiwgMC4wMDY5NzEiLCBcCi0gICAgICAgICAgIjAuMDA2NzM0LCAwLjAwNjg2NiwgMC4wMDY5MTUsIDAuMDA2OTMzLCAwLjAwNjk1MSwgMC4wMDY5NiwgMC4wMDY5NjkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDQyMywgMC4wMDQ1MzQsIDAuMDA0NTc2LCAwLjAwNDU5MiwgMC4wMDQ2MDcsIDAuMDA0NjE1LCAwLjAwNDYyMyIsIFwKLSAgICAgICAgICAiMC4wMDQ0MTQsIDAuMDA0NTI1LCAwLjAwNDU2OCwgMC4wMDQ1ODMsIDAuMDA0NTk4LCAwLjAwNDYwNywgMC4wMDQ2MTYiLCBcCi0gICAgICAgICAgIjAuMDA0NDA5LCAwLjAwNDUyNCwgMC4wMDQ1NjQsIDAuMDA0NTgxLCAwLjAwNDU5NSwgMC4wMDQ2MDMsIDAuMDA0NjExIiwgXAotICAgICAgICAgICIwLjAwNDQwNywgMC4wMDQ1MTksIDAuMDA0NTYxLCAwLjAwNDU3OSwgMC4wMDQ1OTIsIDAuMDA0NjA0LCAwLjAwNDYwOSIsIFwKLSAgICAgICAgICAiMC4wMDQ0MDUsIDAuMDA0NTE2LCAwLjAwNDU1OCwgMC4wMDQ1NzQsIDAuMDA0NTkxLCAwLjAwNDU5OCwgMC4wMDQ2MDYiLCBcCi0gICAgICAgICAgIjAuMDA0NDAyLCAwLjAwNDUxMiwgMC4wMDQ1NTUsIDAuMDA0NTcxLCAwLjAwNDU4OCwgMC4wMDQ1OTQsIDAuMDA0NjAzIiwgXAotICAgICAgICAgICIwLjAwNDQsIDAuMDA0NTA4LCAwLjAwNDU1MywgMC4wMDQ1NjgsIDAuMDA0NTg0LCAwLjAwNDU5NiwgMC4wMDQ2MDEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjc2NSwgMC4wMDY5MiwgMC4wMDY5NzcsIDAuMDA2OTk4LCAwLjAwNzAxOCwgMC4wMDcwMjksIDAuMDA3MDM5IiwgXAotICAgICAgICAgICIwLjAwNjc2MSwgMC4wMDY5MTYsIDAuMDA2OTczLCAwLjAwNjk5NCwgMC4wMDcwMTQsIDAuMDA3MDI1LCAwLjAwNzAzNSIsIFwKLSAgICAgICAgICAiMC4wMDY3NTksIDAuMDA2OTE0LCAwLjAwNjk3MSwgMC4wMDY5OTIsIDAuMDA3MDEyLCAwLjAwNzAyMywgMC4wMDcwMzMiLCBcCi0gICAgICAgICAgIjAuMDA2NzU4LCAwLjAwNjkxMiwgMC4wMDY5NywgMC4wMDY5OTEsIDAuMDA3MDExLCAwLjAwNzAyMSwgMC4wMDcwMzIiLCBcCi0gICAgICAgICAgIjAuMDA2NzU3LCAwLjAwNjkxMSwgMC4wMDY5NjgsIDAuMDA2OTg5LCAwLjAwNzAwOSwgMC4wMDcwMiwgMC4wMDcwMzEiLCBcCi0gICAgICAgICAgIjAuMDA2NzU2LCAwLjAwNjkwNywgMC4wMDY5NjUsIDAuMDA2OTg2LCAwLjAwNzAwNywgMC4wMDcwMTgsIDAuMDA3MDI4IiwgXAotICAgICAgICAgICIwLjAwNjc1NSwgMC4wMDY5MDQsIDAuMDA2OTYyLCAwLjAwNjk4MywgMC4wMDcwMDQsIDAuMDA3MDE1LCAwLjAwNzAyNiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0NDIzLCAwLjAwNDUzMywgMC4wMDQ1NzYsIDAuMDA0NTkyLCAwLjAwNDYwOCwgMC4wMDQ2MTYsIDAuMDA0NjI0IiwgXAotICAgICAgICAgICIwLjAwNDQxNiwgMC4wMDQ1MjQsIDAuMDA0NTY3LCAwLjAwNDU4NSwgMC4wMDQ2MDEsIDAuMDA0NjA3LCAwLjAwNDYxNSIsIFwKLSAgICAgICAgICAiMC4wMDQ0MTEsIDAuMDA0NTIsIDAuMDA0NTY1LCAwLjAwNDU4LCAwLjAwNDU5NiwgMC4wMDQ2MDMsIDAuMDA0NjEyIiwgXAotICAgICAgICAgICIwLjAwNDQwOCwgMC4wMDQ1MTcsIDAuMDA0NTYyLCAwLjAwNDU3NywgMC4wMDQ1OTQsIDAuMDA0NjAxLCAwLjAwNDYwOSIsIFwKLSAgICAgICAgICAiMC4wMDQ0MDcsIDAuMDA0NTE0LCAwLjAwNDU1OCwgMC4wMDQ1NzUsIDAuMDA0NTksIDAuMDA0NTk5LCAwLjAwNDYwOCIsIFwKLSAgICAgICAgICAiMC4wMDQ0MDMsIDAuMDA0NTEsIDAuMDA0NTU0LCAwLjAwNDU3MywgMC4wMDQ1ODYsIDAuMDA0NTk1LCAwLjAwNDYwNSIsIFwKLSAgICAgICAgICAiMC4wMDQ0MDIsIDAuMDA0NTA3LCAwLjAwNDU1MiwgMC4wMDQ1NzEsIDAuMDA0NTg2LCAwLjAwNDU5NSwgMC4wMDQ2MDIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNzEyNywgMC4wMDcyNzgsIDAuMDA3MzM2LCAwLjAwNzM1NywgMC4wMDczNzcsIDAuMDA3Mzg5LCAwLjAwNzM5OSIsIFwKLSAgICAgICAgICAiMC4wMDcxMjQsIDAuMDA3Mjc0LCAwLjAwNzMzMSwgMC4wMDczNTMsIDAuMDA3MzczLCAwLjAwNzM4NCwgMC4wMDczOTUiLCBcCi0gICAgICAgICAgIjAuMDA3MTIxLCAwLjAwNzI3MiwgMC4wMDczMjksIDAuMDA3MzUxLCAwLjAwNzM3MSwgMC4wMDczODIsIDAuMDA3MzkzIiwgXAotICAgICAgICAgICIwLjAwNzEyLCAwLjAwNzI3LCAwLjAwNzMyOCwgMC4wMDczNDksIDAuMDA3MzcsIDAuMDA3MzgxLCAwLjAwNzM5MSIsIFwKLSAgICAgICAgICAiMC4wMDcxMTksIDAuMDA3MjY4LCAwLjAwNzMyNiwgMC4wMDczNDgsIDAuMDA3MzY4LCAwLjAwNzM4LCAwLjAwNzM5IiwgXAotICAgICAgICAgICIwLjAwNzExOCwgMC4wMDcyNjUsIDAuMDA3MzIzLCAwLjAwNzM0NSwgMC4wMDczNjYsIDAuMDA3Mzc3LCAwLjAwNzM4OCIsIFwKLSAgICAgICAgICAiMC4wMDcxMTYsIDAuMDA3MjYyLCAwLjAwNzMyLCAwLjAwNzM0MiwgMC4wMDczNjMsIDAuMDA3Mzc1LCAwLjAwNzM4NiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkQiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0MjMyLCAwLjAwNDM0MiwgMC4wMDQzODYsIDAuMDA0NDAxLCAwLjAwNDQxNiwgMC4wMDQ0MjUsIDAuMDA0NDM0IiwgXAotICAgICAgICAgICIwLjAwNDIyNCwgMC4wMDQzMzMsIDAuMDA0Mzc4LCAwLjAwNDM5MiwgMC4wMDQ0MDgsIDAuMDA0NDE2LCAwLjAwNDQyNCIsIFwKLSAgICAgICAgICAiMC4wMDQyMTksIDAuMDA0MzI5LCAwLjAwNDM3MiwgMC4wMDQzODksIDAuMDA0NDA1LCAwLjAwNDQxMiwgMC4wMDQ0MiIsIFwKLSAgICAgICAgICAiMC4wMDQyMTYsIDAuMDA0MzI2LCAwLjAwNDM3MiwgMC4wMDQzODYsIDAuMDA0NDAyLCAwLjAwNDQxLCAwLjAwNDQxOCIsIFwKLSAgICAgICAgICAiMC4wMDQyMTUsIDAuMDA0MzI0LCAwLjAwNDM2OCwgMC4wMDQzODQsIDAuMDA0Mzk5LCAwLjAwNDQxMiwgMC4wMDQ0MTgiLCBcCi0gICAgICAgICAgIjAuMDA0MjExLCAwLjAwNDMyLCAwLjAwNDM2MywgMC4wMDQzOCwgMC4wMDQzOTUsIDAuMDA0NDA0LCAwLjAwNDQxMyIsIFwKLSAgICAgICAgICAiMC4wMDQyMDksIDAuMDA0MzE4LCAwLjAwNDM2MSwgMC4wMDQzNzgsIDAuMDA0Mzk0LCAwLjAwNDQwNiwgMC4wMDQ0MTIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNzIwOSwgMC4wMDczNTksIDAuMDA3NDE2LCAwLjAwNzQzOCwgMC4wMDc0NTgsIDAuMDA3NDcsIDAuMDA3NDgiLCBcCi0gICAgICAgICAgIjAuMDA3MjAzLCAwLjAwNzM1NCwgMC4wMDc0MTIsIDAuMDA3NDMzLCAwLjAwNzQ1NCwgMC4wMDc0NjUsIDAuMDA3NDc1IiwgXAotICAgICAgICAgICIwLjAwNzIwMiwgMC4wMDczNTMsIDAuMDA3NDEsIDAuMDA3NDMyLCAwLjAwNzQ1MiwgMC4wMDc0NjQsIDAuMDA3NDc0IiwgXAotICAgICAgICAgICIwLjAwNzIwMSwgMC4wMDczNTEsIDAuMDA3NDA4LCAwLjAwNzQzLCAwLjAwNzQ1LCAwLjAwNzQ2MiwgMC4wMDc0NzIiLCBcCi0gICAgICAgICAgIjAuMDA3MiwgMC4wMDczNDksIDAuMDA3NDA3LCAwLjAwNzQyOCwgMC4wMDc0NDksIDAuMDA3NDYsIDAuMDA3NDcxIiwgXAotICAgICAgICAgICIwLjAwNzE5OSwgMC4wMDczNDYsIDAuMDA3NDAzLCAwLjAwNzQyNSwgMC4wMDc0NDYsIDAuMDA3NDU4LCAwLjAwNzQ2OSIsIFwKLSAgICAgICAgICAiMC4wMDcxOTcsIDAuMDA3MzQyLCAwLjAwNzQsIDAuMDA3NDIzLCAwLjAwNzQ0NCwgMC4wMDc0NTYsIDAuMDA3NDY3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUzAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA5MDE1LCAwLjAwOTEwNiwgMC4wMDkxNDMsIDAuMDA5MTU1LCAwLjAwOTE2NywgMC4wMDkxNzQsIDAuMDA5MTgxIiwgXAotICAgICAgICAgICIwLjAwOTAwNiwgMC4wMDkwOTgsIDAuMDA5MTMzLCAwLjAwOTE0NSwgMC4wMDkxNTgsIDAuMDA5MTY1LCAwLjAwOTE3MiIsIFwKLSAgICAgICAgICAiMC4wMDg5OTYsIDAuMDA5MDg5LCAwLjAwOTEyMywgMC4wMDkxMzUsIDAuMDA5MTQ4LCAwLjAwOTE1NSwgMC4wMDkxNjUiLCBcCi0gICAgICAgICAgIjAuMDA4OTksIDAuMDA5MDgyLCAwLjAwOTExNywgMC4wMDkxMywgMC4wMDkxNDIsIDAuMDA5MTUxLCAwLjAwOTE1NCIsIFwKLSAgICAgICAgICAiMC4wMDg5ODYsIDAuMDA5MDc3LCAwLjAwOTExMiwgMC4wMDkxMjYsIDAuMDA5MTM5LCAwLjAwOTE0NSwgMC4wMDkxNTMiLCBcCi0gICAgICAgICAgIjAuMDA4OTgyLCAwLjAwOTA3MywgMC4wMDkxMDYsIDAuMDA5MTIyLCAwLjAwOTEzMywgMC4wMDkxNCwgMC4wMDkxNDkiLCBcCi0gICAgICAgICAgIjAuMDA4OTgxLCAwLjAwOTA3MiwgMC4wMDkxMDcsIDAuMDA5MTIsIDAuMDA5MTMyLCAwLjAwOTE0LCAwLjAwOTE0NyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA5MTQ5LCAwLjAwOTI5NSwgMC4wMDkzNTMsIDAuMDA5Mzc1LCAwLjAwOTM5NiwgMC4wMDk0MDcsIDAuMDA5NDE4IiwgXAotICAgICAgICAgICIwLjAwOTE0OSwgMC4wMDkyOTUsIDAuMDA5MzUzLCAwLjAwOTM3NSwgMC4wMDkzOTYsIDAuMDA5NDA3LCAwLjAwOTQxOCIsIFwKLSAgICAgICAgICAiMC4wMDkxNDYsIDAuMDA5MjkyLCAwLjAwOTM1LCAwLjAwOTM3MSwgMC4wMDkzOTIsIDAuMDA5NDA0LCAwLjAwOTQxNSIsIFwKLSAgICAgICAgICAiMC4wMDkxNDIsIDAuMDA5Mjg5LCAwLjAwOTM0NiwgMC4wMDkzNjgsIDAuMDA5Mzg5LCAwLjAwOTQsIDAuMDA5NDExIiwgXAotICAgICAgICAgICIwLjAwOTEzOSwgMC4wMDkyODUsIDAuMDA5MzQzLCAwLjAwOTM2NCwgMC4wMDkzODUsIDAuMDA5Mzk3LCAwLjAwOTQwOCIsIFwKLSAgICAgICAgICAiMC4wMDkxMzQsIDAuMDA5MjgxLCAwLjAwOTMzOCwgMC4wMDkzNiwgMC4wMDkzODEsIDAuMDA5MzkyLCAwLjAwOTQwMyIsIFwKLSAgICAgICAgICAiMC4wMDkxMzMsIDAuMDA5Mjc4LCAwLjAwOTMzNiwgMC4wMDkzNTcsIDAuMDA5Mzc4LCAwLjAwOTM5LCAwLjAwOTQwMSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlMxIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNTcwOSwgMC4wMDU4NTMsIDAuMDA1ODg1LCAwLjAwNTg5NiwgMC4wMDU5MDYsIDAuMDA1OTExLCAwLjAwNTkxNCIsIFwKLSAgICAgICAgICAiMC4wMDU3MiwgMC4wMDU4NjIsIDAuMDA1ODk0LCAwLjAwNTkwNiwgMC4wMDU5MTUsIDAuMDA1OTIsIDAuMDA1OTI0IiwgXAotICAgICAgICAgICIwLjAwNTc0NSwgMC4wMDU4ODQsIDAuMDA1OTE3LCAwLjAwNTkyOCwgMC4wMDU5MzksIDAuMDA1OTQ0LCAwLjAwNTk0OCIsIFwKLSAgICAgICAgICAiMC4wMDU3ODEsIDAuMDA1OTE1LCAwLjAwNTk0OCwgMC4wMDU5NiwgMC4wMDU5NywgMC4wMDU5NzYsIDAuMDA1OTgzIiwgXAotICAgICAgICAgICIwLjAwNTgwNSwgMC4wMDU5MzYsIDAuMDA1OTcsIDAuMDA1OTgsIDAuMDA1OTkxLCAwLjAwNTk5NywgMC4wMDYwMDUiLCBcCi0gICAgICAgICAgIjAuMDA1ODM4LCAwLjAwNTk2MywgMC4wMDU5OTcsIDAuMDA2MDA5LCAwLjAwNjAyMSwgMC4wMDYwMjYsIDAuMDA2MDMzIiwgXAotICAgICAgICAgICIwLjAwNTg2NiwgMC4wMDU5ODcsIDAuMDA2MDIxLCAwLjAwNjAzNSwgMC4wMDYwNDYsIDAuMDA2MDUyLCAwLjAwNjA2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQ5MzMsIDAuMDA1MTE5LCAwLjAwNTE2NCwgMC4wMDUxNzksIDAuMDA1MTkzLCAwLjAwNTIwMSwgMC4wMDUyMDciLCBcCi0gICAgICAgICAgIjAuMDA0OTM5LCAwLjAwNTEyMywgMC4wMDUxNjksIDAuMDA1MTg0LCAwLjAwNTE5OCwgMC4wMDUyMDYsIDAuMDA1MjEzIiwgXAotICAgICAgICAgICIwLjAwNDk2NCwgMC4wMDUxNDQsIDAuMDA1MTksIDAuMDA1MjA2LCAwLjAwNTIyMSwgMC4wMDUyMjgsIDAuMDA1MjM2IiwgXAotICAgICAgICAgICIwLjAwNDk5OSwgMC4wMDUxNzYsIDAuMDA1MjIyLCAwLjAwNTIzOCwgMC4wMDUyNTMsIDAuMDA1MjYxLCAwLjAwNTI2OSIsIFwKLSAgICAgICAgICAiMC4wMDUwMjksIDAuMDA1MjAxLCAwLjAwNTI0NywgMC4wMDUyNjQsIDAuMDA1Mjc5LCAwLjAwNTI4OCwgMC4wMDUyOTUiLCBcCi0gICAgICAgICAgIjAuMDA1MDcxLCAwLjAwNTIzOCwgMC4wMDUyODQsIDAuMDA1MzAxLCAwLjAwNTMxNywgMC4wMDUzMjYsIDAuMDA1MzM0IiwgXAotICAgICAgICAgICIwLjAwNTEwMywgMC4wMDUyNjUsIDAuMDA1MzExLCAwLjAwNTMyOCwgMC4wMDUzNDUsIDAuMDA1MzU0LCAwLjAwNTM2MiIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogTVhJMlgxICoKLSAqIC0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoTVhJMlgxKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMTAwMjA2OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA3ODU1MDI7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNzgxNTc7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNzg1NTAyOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDI4NCwgMC4wMDAyOSwgMC4wMDAyOTIsIDAuMDAwMjkzLCAwLjAwMDI5NCwgMC4wMDAyOTQsIDAuMDAwMjk1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzEzLCAwLjAwMDMwOCwgMC4wMDAzMDgsIDAuMDAwMzA4LCAwLjAwMDMwOCwgMC4wMDAzMDgsIDAuMDAwMzA4Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA4NzE3NTQ7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwODY4Mjk4OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDg3MTc1NDsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyOTQsIDAuMDAwMjk3LCAwLjAwMDI5OCwgMC4wMDAyOTksIDAuMDAwMjk5LCAwLjAwMDI5OSwgMC4wMDAzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzE4LCAwLjAwMDMxLCAwLjAwMDMwOSwgMC4wMDAzMDgsIDAuMDAwMzA4LCAwLjAwMDMwOCwgMC4wMDAzMDgiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFMwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE2NzQyNDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE2NzM2MzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE2NzQyNDsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyNDIsIDAuMDAwMjIyLCAwLjAwMDIxMiwgMC4wMDAyMDgsIDAuMDAwMjA3LCAwLjAwMDIwNiwgMC4wMDAyMDciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDE3MSwgMC4wMDE2OTcsIDAuMDAxNjksIDAuMDAxNjg1LCAwLjAwMTY4NiwgMC4wMDE2ODMsIDAuMDAxNjg0Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMDYxNTgzNzsKLSAgICBmdW5jdGlvbiA6ICIoISgoUzAgQikgKyAoIVMwIEEpKSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE4NTE0LCAwLjI3NDA3MiwgMC43Nzc1NTIsIDEuMjIxOTgsIDEuODE0MTUsIDIuOTk4MywgMy43Mzc2MyIsIFwKLSAgICAgICAgICAiMC4xOTY2NiwgMC4yODU2MTYsIDAuNzg5NDA4LCAxLjIzMzUyLCAxLjgyNjMsIDMuMDEwMSwgMy43NDkyNyIsIFwKLSAgICAgICAgICAiMC4yMDk4MzEsIDAuMjk4ODUyLCAwLjgwMjU4NCwgMS4yNDY3MiwgMS44MzkzLCAzLjAyMjczLCAzLjc2MjM4IiwgXAotICAgICAgICAgICIwLjIyMjQwOSwgMC4zMTE0NTgsIDAuODE1MTIzLCAxLjI1OTU4LCAxLjg1MiwgMy4wMzUyNiwgMy43NzUwMyIsIFwKLSAgICAgICAgICAiMC4yMzQ4NjgsIDAuMzIzOTE3LCAwLjgyNzczNSwgMS4yNzE5OCwgMS44NjQzOCwgMy4wNDc4MiwgMy43ODc1OSIsIFwKLSAgICAgICAgICAiMC4yNTQ3NTMsIDAuMzQzNzI4LCAwLjg0NzQ3OSwgMS4yOTE5OSwgMS44ODQxLCAzLjA2ODQ4LCAzLjgwNzQ0IiwgXAotICAgICAgICAgICIwLjI3MTkzMiwgMC4zNjEwOCwgMC44NjQ3ODQsIDEuMzA5NjcsIDEuOTAyMjQsIDMuMDg1MzEsIDMuODI0OTgiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzM1OTUyLCAwLjUwODk5OCwgMS40OTE2OCwgMi4zNTksIDMuNTE0NjksIDUuODI5OTQsIDcuMjczODkiLCBcCi0gICAgICAgICAgIjAuMzM1NjkyLCAwLjUwOTI2NCwgMS40OTE4NSwgMi4zNTkwOSwgMy41MTU0NCwgNS44MjgwMSwgNy4yNzU4MiIsIFwKLSAgICAgICAgICAiMC4zMzU5MjcsIDAuNTA5NjMsIDEuNDkxODEsIDIuMzU5MTEsIDMuNTE1MTYsIDUuODI5NzUsIDcuMjc0OTIiLCBcCi0gICAgICAgICAgIjAuMzM1NzE3LCAwLjUwOTA5NiwgMS40OTI5MSwgMi4zNTkwMywgMy41MTYzNCwgNS44MzA1NywgNy4yNzU5MSIsIFwKLSAgICAgICAgICAiMC4zMzYxNTcsIDAuNTA5NTM2LCAxLjQ5MjI3LCAyLjM1OTYxLCAzLjUxNTA2LCA1LjgzMTI3LCA3LjI3NTk3IiwgXAotICAgICAgICAgICIwLjMzODAzMiwgMC41MDk1OTQsIDEuNDkxOTcsIDIuMzU5NjEsIDMuNTE1MjQsIDUuODI4LCA3LjI3NTY2IiwgXAotICAgICAgICAgICIwLjM0MTM0NywgMC41MTA3OTQsIDEuNDkyNzcsIDIuMzU5MTksIDMuNTE2MjEsIDUuODI5ODMsIDcuMjczODciKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjA4OTA1LCAwLjMwNjksIDAuODYxMTg3LCAxLjM1MDQsIDIuMDAwODcsIDMuMzAzNzUsIDQuMTE4NjkiLCBcCi0gICAgICAgICAgIjAuMjIwMjQ1LCAwLjMxODI4NywgMC44NzI2ODYsIDEuMzYxNjIsIDIuMDEzNTcsIDMuMzE2NjMsIDQuMTMwMDEiLCBcCi0gICAgICAgICAgIjAuMjMzNzQxLCAwLjMzMTgwNiwgMC44ODYzODYsIDEuMzc1MzgsIDIuMDI3OTgsIDMuMzI5NjcsIDQuMTQzNyIsIFwKLSAgICAgICAgICAiMC4yNDcxMTUsIDAuMzQ1MjIxLCAwLjg5OTYwNywgMS4zODkwNiwgMi4wNDA1NywgMy4zNDM1NiwgNC4xNTcwMSIsIFwKLSAgICAgICAgICAiMC4yNjA2NTMsIDAuMzU4NTk0LCAwLjkxMzQwMSwgMS40MDI1MiwgMi4wNTQzLCAzLjM1Njk1LCA0LjE3MTA0IiwgXAotICAgICAgICAgICIwLjI4MTkwOSwgMC4zODAyNzQsIDAuOTM0ODA4LCAxLjQyNDE4LCAyLjA3NjU0LCAzLjM3ODQ0LCA0LjE5MjQxIiwgXAotICAgICAgICAgICIwLjMwMDgzNiwgMC4zOTg4ODQsIDAuOTUzNjU5LCAxLjQ0MjczLCAyLjA5NDUsIDMuMzk3MjQsIDQuMjExNTYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzY0MTc1LCAwLjU1MDk3NywgMS42MDg4MiwgMi41NDE2OCwgMy43ODQwNSwgNi4yNzIyMywgNy44Mjc2NiIsIFwKLSAgICAgICAgICAiMC4zNjQxMTQsIDAuNTUwOTY1LCAxLjYwODg5LCAyLjU0MTk5LCAzLjc4NTY0LCA2LjI3NDIxLCA3LjgyNzQxIiwgXAotICAgICAgICAgICIwLjM2NDIwOCwgMC41NTA5NjYsIDEuNjA4NTEsIDIuNTQxNTgsIDMuNzg2MjEsIDYuMjc3MTEsIDcuODI3NiIsIFwKLSAgICAgICAgICAiMC4zNjQ1MDIsIDAuNTUwOTU3LCAxLjYwODI3LCAyLjU0MTgzLCAzLjc4NTU5LCA2LjI3NjcxLCA3LjgyNzIzIiwgXAotICAgICAgICAgICIwLjM2NDEzNiwgMC41NTA5MSwgMS42MDg4OSwgMi41NDIyMiwgMy43ODU2NSwgNi4yNzY5MywgNy44Mjc3NSIsIFwKLSAgICAgICAgICAiMC4zNjU0NTksIDAuNTUwODQsIDEuNjA4NzYsIDIuNTQxNywgMy43ODYxOSwgNi4yNzcwOCwgNy44Mjc1OCIsIFwKLSAgICAgICAgICAiMC4zNjgxNzgsIDAuNTUxNjY0LCAxLjYwODM3LCAyLjU0MDc3LCAzLjc4NTg5LCA2LjI3NjksIDcuODI3NjYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTg2MTEyLCAwLjI3NDk5MSwgMC43Nzg1NjYsIDEuMjIyNiwgMS44MTUxNiwgMi45OTkxMywgMy43Mzg2OCIsIFwKLSAgICAgICAgICAiMC4xOTc0NTYsIDAuMjg2NDQyLCAwLjc5MDI1NSwgMS4yMzQ2LCAxLjgyNjc4LCAzLjAxMDMyLCAzLjc1MDAyIiwgXAotICAgICAgICAgICIwLjIxMDMxOSwgMC4yOTkzMzcsIDAuODAzMTMsIDEuMjQ3MzMsIDEuODQwMTIsIDMuMDIzMTksIDMuNzYyOTEiLCBcCi0gICAgICAgICAgIjAuMjIyNjk2LCAwLjMxMTY3LCAwLjgxNTI5NSwgMS4yNTk3OSwgMS44NTE4NiwgMy4wMzYzNCwgMy43NzU2MiIsIFwKLSAgICAgICAgICAiMC4yMzQ5NjIsIDAuMzI0MDEyLCAwLjgyNzU1NCwgMS4yNzIxMiwgMS44NjQ4MSwgMy4wNDgsIDMuNzg3NzIiLCBcCi0gICAgICAgICAgIjAuMjU0Njc4LCAwLjM0Mzc2LCAwLjg0NzU5NCwgMS4yOTI0MiwgMS44ODQ0NiwgMy4wNjc5NywgMy44MDc3MSIsIFwKLSAgICAgICAgICAiMC4yNzE5NTgsIDAuMzYxMTYzLCAwLjg2NTAxMywgMS4zMDk3LCAxLjkwMTMsIDMuMDg1ODUsIDMuODI1MjYiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzM2MDI2LCAwLjUwOTkzNywgMS40OTIzMiwgMi4zNTk1NiwgMy41MTU3NywgNS44MzA5NSwgNy4yNzQ5MyIsIFwKLSAgICAgICAgICAiMC4zMzYyMTcsIDAuNTA5NDQ1LCAxLjQ5MjI4LCAyLjM1OTU0LCAzLjUxNzE3LCA1LjgyODQ2LCA3LjI3NTM1IiwgXAotICAgICAgICAgICIwLjMzNjIwNiwgMC41MDk0NTYsIDEuNDkyMjYsIDIuMzU5MzksIDMuNTE2OTcsIDUuODMwODQsIDcuMjc1NyIsIFwKLSAgICAgICAgICAiMC4zMzU4MzksIDAuNTA5Mjc2LCAxLjQ5MjMzLCAyLjM1OTM0LCAzLjUxNTg2LCA1LjgyODk0LCA3LjI3NTc2IiwgXAotICAgICAgICAgICIwLjMzNjIxNywgMC41MDk2MTMsIDEuNDkzMDMsIDIuMzU5NCwgMy41MTU5NiwgNS44MzAzMywgNy4yNzUzNyIsIFwKLSAgICAgICAgICAiMC4zMzg2MzgsIDAuNTA5OTU4LCAxLjQ5MzA5LCAyLjM1OTcsIDMuNTE3MTIsIDUuODMwOTUsIDcuMjc1NDIiLCBcCi0gICAgICAgICAgIjAuMzQxNzk2LCAwLjUxMTE2OCwgMS40OTIzOCwgMi4zNTk1NSwgMy41MTYyNywgNS44Mjk3MiwgNy4yNzY0Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIwNjQ4MywgMC4zMDQ1MzMsIDAuODU4OTksIDEuMzQ4MjIsIDIuMDAwNTksIDMuMzAyNzQsIDQuMTE2NjQiLCBcCi0gICAgICAgICAgIjAuMjE3ODI1LCAwLjMxNTg4LCAwLjg3MDM2NCwgMS4zNTkxMywgMi4wMTA4NywgMy4zMTQwNywgNC4xMjgxIiwgXAotICAgICAgICAgICIwLjIzMTM4NywgMC4zMjk0NTEsIDAuODgzODYxLCAxLjM3MywgMi4wMjU1OCwgMy4zMjc4NiwgNC4xNDE2NyIsIFwKLSAgICAgICAgICAiMC4yNDQ4NjUsIDAuMzQyOTUxLCAwLjg5NzYzOSwgMS4zODY4OCwgMi4wMzg0NCwgMy4zNDEzLCA0LjE1NTE4IiwgXAotICAgICAgICAgICIwLjI1NzQyNSwgMC4zNTY1NjUsIDAuOTExMTU0LCAxLjQwMDMsIDIuMDUyNDEsIDMuMzU0NjIsIDQuMTY5MDEiLCBcCi0gICAgICAgICAgIjAuMjc5ODA0LCAwLjM3Njc0LCAwLjkzMjY5NCwgMS40MjIxMywgMi4wNzQ1MiwgMy4zNzY0NywgNC4xOTA1NiIsIFwKLSAgICAgICAgICAiMC4yOTg4NDEsIDAuMzk2ODMzLCAwLjk1MTg2MSwgMS40NDA4MywgMi4wOTIxNSwgMy4zOTUzMywgNC4yMDk2NyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zNjI3MjgsIDAuNTQ5MzYsIDEuNjA3MDcsIDIuNTQwNTUsIDMuNzg1MjYsIDYuMjc2ODcsIDcuODI2NjciLCBcCi0gICAgICAgICAgIjAuMzYyODYsIDAuNTQ5NjYxLCAxLjYwNzQxLCAyLjU0MDQ3LCAzLjc4NTc0LCA2LjI3MzUxLCA3LjgyNDExIiwgXAotICAgICAgICAgICIwLjM2MjU2MSwgMC41NDk2MjYsIDEuNjA3MzEsIDIuNTQwMDMsIDMuNzg0ODYsIDYuMjczNTEsIDcuODI2NDgiLCBcCi0gICAgICAgICAgIjAuMzYyNzkyLCAwLjU0OTQ1LCAxLjYwNzUzLCAyLjU0MDM1LCAzLjc4NDIsIDYuMjcyODgsIDcuODI2NTMiLCBcCi0gICAgICAgICAgIjAuMzYyODk4LCAwLjU0OTMxOCwgMS42MDc0LCAyLjU0MDcsIDMuNzg0NzMsIDYuMjc1NjgsIDcuODI1MDciLCBcCi0gICAgICAgICAgIjAuMzY0MTA2LCAwLjU0OTU3OCwgMS42MDY3NSwgMi41NDAyNywgMy43ODQ4NSwgNi4yNzU4MSwgNy44MjM3NiIsIFwKLSAgICAgICAgICAiMC4zNjY5NTEsIDAuNTUwMDQyLCAxLjYwNjYxLCAyLjUzOTkzLCAzLjc4MzkxLCA2LjI3MTY0LCA3LjgyNjUxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlMwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMDk5NzYsIDAuMjk4NjcyLCAwLjgwMTc5NiwgMS4yNDU4NCwgMS44Mzc4NCwgMy4wMjA4MiwgMy43NjE2MiIsIFwKLSAgICAgICAgICAiMC4yMjE5MTUsIDAuMzEwNTA1LCAwLjgxMzYyOSwgMS4yNTgxMiwgMS44NDk5MywgMy4wMzM0OSwgMy43NzMyNiIsIFwKLSAgICAgICAgICAiMC4yMzc2NDMsIDAuMzI2MjM0LCAwLjgyOTIsIDEuMjczMjEsIDEuODY1NzcsIDMuMDQ5ODEsIDMuNzg4OTciLCBcCi0gICAgICAgICAgIjAuMjUyNDQsIDAuMzQxMDMzLCAwLjg0NDE2OCwgMS4yODg2MiwgMS44ODEyNCwgMy4wNjQyLCAzLjgwMzkiLCBcCi0gICAgICAgICAgIjAuMjY3NzAyLCAwLjM1NjMyOSwgMC44NTg4NzcsIDEuMzAyOCwgMS44OTQ3OSwgMy4wNzk1MSwgMy44MTgyOSIsIFwKLSAgICAgICAgICAiMC4yODk1MzcsIDAuMzc4MTY5LCAwLjg4MDkwMywgMS4zMjQ3NCwgMS45MTcxNiwgMy4xMDExNCwgMy44NDAyNiIsIFwKLSAgICAgICAgICAiMC4zMDY5NDUsIDAuMzk1NTg1LCAwLjg5ODMyOSwgMS4zNDI1NSwgMS45MzQzNywgMy4xMTgwNSwgMy44NTc3MiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMzU5NTYsIDAuNTA5NDQ3LCAxLjQ5MjMzLCAyLjM2MDcsIDMuNTE3NzEsIDUuODI4OTIsIDcuMjc2MjQiLCBcCi0gICAgICAgICAgIjAuMzM2MDY3LCAwLjUwOTkyNSwgMS40OTI5OCwgMi4zNTk4MiwgMy41MTYzNiwgNS44MzA3NSwgNy4yNzY4NiIsIFwKLSAgICAgICAgICAiMC4zMzYwMDEsIDAuNTA5NDg1LCAxLjQ5MzIzLCAyLjM2MDgzLCAzLjUxNjA5LCA1LjgzNTEsIDcuMjc2NzIiLCBcCi0gICAgICAgICAgIjAuMzM1OTYsIDAuNTA5MzQ3LCAxLjQ5MjM0LCAyLjM1OTUxLCAzLjUxNjE5LCA1LjgzMDgyLCA3LjI3NTUiLCBcCi0gICAgICAgICAgIjAuMzM2MTc5LCAwLjUwOTQ3MywgMS40OTIzOCwgMi4zNjA3NiwgMy41MTYwNCwgNS44MjkzMiwgNy4yNzU2NSIsIFwKLSAgICAgICAgICAiMC4zMzYzMTEsIDAuNTA5NDczLCAxLjQ5MjMyLCAyLjM1OTU2LCAzLjUxNTc4LCA1LjgzMzMzLCA3LjI3NDE2IiwgXAotICAgICAgICAgICIwLjMzNTkwNiwgMC41MDk0ODUsIDEuNDkyMzgsIDIuMzYwMDksIDMuNTE3MzMsIDUuODMxMywgNy4yNzYwNCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMjgwNDUsIDAuMzI1Nzc5LCAwLjg3OTY5MywgMS4zNjg1MiwgMi4wMjA0MywgMy4zMjM1MSwgNC4xMzcxMiIsIFwKLSAgICAgICAgICAiMC4yMzk3NzMsIDAuMzM3NDI1LCAwLjg5MTE5NiwgMS4zNzk5NywgMi4wMzEzOCwgMy4zMzQ5MiwgNC4xNDgyNCIsIFwKLSAgICAgICAgICAiMC4yNTUwMTQsIDAuMzUyNTkxLCAwLjkwNjMwMywgMS4zOTU0MSwgMi4wNDY4OSwgMy4zNDkxNCwgNC4xNjM0OSIsIFwKLSAgICAgICAgICAiMC4yNjk0MzksIDAuMzY3MDQxLCAwLjkyMDY0NiwgMS40MDk2MywgMi4wNjIwMywgMy4zNjM4OCwgNC4xNzc1NyIsIFwKLSAgICAgICAgICAiMC4yODI5NTUsIDAuMzgwNTY4LCAwLjkzMzk3MywgMS40MjMwNCwgMi4wNzQ5NSwgMy4zNzcyNCwgNC4xOTEwOSIsIFwKLSAgICAgICAgICAiMC4zMDE5ODEsIDAuMzk5NTkxLCAwLjk1MzI2OSwgMS40NDIyNCwgMi4wOTQwOSwgMy4zOTU4MywgNC4yMTAwMiIsIFwKLSAgICAgICAgICAiMC4zMTY4ODMsIDAuNDE0NDczLCAwLjk2NzkxMywgMS40NTY1MiwgMi4xMDg1OCwgMy40MTExNywgNC4yMjQ3NyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zNjQyNjUsIDAuNTUwODI4LCAxLjYwODE0LCAyLjU0MTkxLCAzLjc4NTYzLCA2LjI3NDQsIDcuODI1MzUiLCBcCi0gICAgICAgICAgIjAuMzY0MTg4LCAwLjU1MDgwOSwgMS42MDgxNCwgMi41NDMyNCwgMy43ODkxNywgNi4yNzQ5MywgNy44Mjc1NyIsIFwKLSAgICAgICAgICAiMC4zNjQxOTUsIDAuNTUwOTY0LCAxLjYwODkyLCAyLjU0MTc4LCAzLjc4NjMsIDYuMjc3MTgsIDcuODI3NzEiLCBcCi0gICAgICAgICAgIjAuMzY0MzEyLCAwLjU1MDg5MSwgMS42MDg5MiwgMi41NDI0NCwgMy43ODYzNSwgNi4yNzQ3NiwgNy44Mjc1NyIsIFwKLSAgICAgICAgICAiMC4zNjQyNzQsIDAuNTUxMDYzLCAxLjYwODgsIDIuNTQxNzUsIDMuNzg2MTEsIDYuMjc0NTQsIDcuODI3NjciLCBcCi0gICAgICAgICAgIjAuMzY0NTAzLCAwLjU1MTI1OCwgMS42MDkwOCwgMi41NDE5LCAzLjc4NjEyLCA2LjI3NzI0LCA3LjgyNzciLCBcCi0gICAgICAgICAgIjAuMzYzODg2LCAwLjU1MTE5OCwgMS42MDg3NSwgMi41NDA3OSwgMy43ODYwMSwgNi4yNzU2NywgNy44MjcyMiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTcyOTAyLCAwLjI2MTg5NywgMC43NjU2MjUsIDEuMjA5NzQsIDEuODAxNzMsIDIuOTg1ODEsIDMuNzI1NDkiLCBcCi0gICAgICAgICAgIjAuMTgzMzg2LCAwLjI3MjQ0NywgMC43NzYwMTYsIDEuMjIwNzYsIDEuODEzMTcsIDIuOTk2OTIsIDMuNzM1OTciLCBcCi0gICAgICAgICAgIjAuMTk2NjYzLCAwLjI4NTc0NywgMC43ODk3MzgsIDEuMjMzODgsIDEuODI1ODUsIDMuMDA5ODcsIDMuNzQ5NzYiLCBcCi0gICAgICAgICAgIjAuMjA5OTg2LCAwLjI5OTA5NSwgMC44MDMwOSwgMS4yNDcwNywgMS44NDAxOSwgMy4wMjM2NiwgMy43NjI4MiIsIFwKLSAgICAgICAgICAiMC4yMjMxMDIsIDAuMzEyMjY1LCAwLjgxNjMwMiwgMS4yNjA0MywgMS44NTMzOCwgMy4wMzY1OSwgMy43NzYzNiIsIFwKLSAgICAgICAgICAiMC4yNDQzNjUsIDAuMzMzNTI0LCAwLjgzNzY0MiwgMS4yODE3OSwgMS44NzM4MSwgMy4wNTc4MywgMy43OTc3MiIsIFwKLSAgICAgICAgICAiMC4yNjMwNjgsIDAuMzUyMTkyLCAwLjg1NjExLCAxLjMwMDMzLCAxLjg5MjMxLCAzLjA3NjY1LCAzLjgxNjA2Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMzNDY1OCwgMC41MDg3MzYsIDEuNDkxOTUsIDIuMzU5MiwgMy41MTUzMSwgNS44MzI1MywgNy4yNzU1MyIsIFwKLSAgICAgICAgICAiMC4zMzQ0MTUsIDAuNTA4ODY5LCAxLjQ5MTU0LCAyLjM1OTc1LCAzLjUxNTI5LCA1LjgyODkxLCA3LjI3NTU0IiwgXAotICAgICAgICAgICIwLjMzNDM5OCwgMC41MDg3NTIsIDEuNDkyMDUsIDIuMzYwNDgsIDMuNTE1NDIsIDUuODMwMTYsIDcuMjc1OTkiLCBcCi0gICAgICAgICAgIjAuMzM0MjgyLCAwLjUwOTIxNCwgMS40OTE4MiwgMi4zNTkxMiwgMy41MTU1NywgNS44MzIwMSwgNy4yNzUzNSIsIFwKLSAgICAgICAgICAiMC4zMzU0NTEsIDAuNTA4NTA3LCAxLjQ5MTgxLCAyLjM2MDQ5LCAzLjUxNjAyLCA1LjgyODg5LCA3LjI3NjAxIiwgXAotICAgICAgICAgICIwLjM0MDEyNCwgMC41MDk5NjQsIDEuNDkxODMsIDIuMzU5MDUsIDMuNTE3MTcsIDUuODMwNDksIDcuMjc1OTgiLCBcCi0gICAgICAgICAgIjAuMzQ2MzQ1LCAwLjUxMzc2NiwgMS40OTE5NywgMi4zNTkxMiwgMy41MTU2MiwgNS44Mjg4NSwgNy4yNzUyNCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xOTQzNzIsIDAuMjkyNDI1LCAwLjg0NjYzMiwgMS4zMzU3OCwgMS45ODcxOSwgMy4yOTA0MywgNC4xMDQ3NSIsIFwKLSAgICAgICAgICAiMC4yMDUwMDEsIDAuMzAzMTQ0LCAwLjg1ODAzMSwgMS4zNDY0OCwgMS45OTkzMiwgMy4zMDEzMSwgNC4xMTU3MiIsIFwKLSAgICAgICAgICAiMC4yMTg2MTcsIDAuMzE2ODEzLCAwLjg3MTU3MywgMS4zNjAzMiwgMi4wMTIwNiwgMy4zMTUyNywgNC4xMjkzOCIsIFwKLSAgICAgICAgICAiMC4yMzE5MTksIDAuMzMwMTczLCAwLjg4NTI2MSwgMS4zNzQ4MywgMi4wMjY3NSwgMy4zMjg4NywgNC4xNDI4MyIsIFwKLSAgICAgICAgICAiMC4yNDUxOTQsIDAuMzQzNjI0LCAwLjg5ODQ5OCwgMS4zODc0NSwgMi4wMzk5NSwgMy4zNDIwOSwgNC4xNTY0OCIsIFwKLSAgICAgICAgICAiMC4yNjY2NTcsIDAuMzY1MTIsIDAuOTIwMDg4LCAxLjQwOTAzLCAyLjA2MDY1LCAzLjM2Mzg4LCA0LjE3Nzk5IiwgXAotICAgICAgICAgICIwLjI4NTUxOCwgMC4zODM4MjEsIDAuOTM5MDQ4LCAxLjQyNzcyLCAyLjA3OTYyLCAzLjM4MjYsIDQuMTk3MDIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzYwNDUsIDAuNTQ5NDI1LCAxLjYwNzE0LCAyLjUzOTMzLCAzLjc4NDA4LCA2LjI3NjM5LCA3LjgyNDUiLCBcCi0gICAgICAgICAgIjAuMzYwMjk1LCAwLjU0ODcwOSwgMS42MDcxOSwgMi41Mzk3MSwgMy43ODQ5NSwgNi4yNzYxMiwgNy44MjM5MiIsIFwKLSAgICAgICAgICAiMC4zNjAwNzMsIDAuNTQ4ODM0LCAxLjYwNjYsIDIuNTM5NDQsIDMuNzgzMjksIDYuMjc2MjgsIDcuODI2NjYiLCBcCi0gICAgICAgICAgIjAuMzU5Nzc3LCAwLjU0ODk2MiwgMS42MDcwNiwgMi41NDA2OSwgMy43ODQ4NywgNi4yNzM4NCwgNy44MjY0IiwgXAotICAgICAgICAgICIwLjM2MDA3OCwgMC41NDgyOCwgMS42MDY2LCAyLjUzOTM1LCAzLjc4NCwgNi4yNzU3MywgNy44MjY1OCIsIFwKLSAgICAgICAgICAiMC4zNjMzNiwgMC41NDg3MiwgMS42MDY5OCwgMi41MzkzNCwgMy43ODMyNywgNi4yNzYzMiwgNy44MjY1OCIsIFwKLSAgICAgICAgICAiMC4zNjgyMTMsIDAuNTUxMTE1LCAxLjYwNjksIDIuNTM5NTYsIDMuNzg3NjYsIDYuMjc2MDIsIDcuODI1NzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDE3NzQsIDAuMDAxNzc0LCAwLjAwMTc3MywgMC4wMDE3NzUsIDAuMDAxNzcsIDAuMDAxNzcxLCAwLjAwMTc3IiwgXAotICAgICAgICAgICIwLjAwMTc2NywgMC4wMDE3NjcsIDAuMDAxNzY4LCAwLjAwMTc2OCwgMC4wMDE3NjcsIDAuMDAxNzY2LCAwLjAwMTc2NSIsIFwKLSAgICAgICAgICAiMC4wMDE3NjQsIDAuMDAxNzY1LCAwLjAwMTc2NywgMC4wMDE3NjcsIDAuMDAxNzY2LCAwLjAwMTc2NSwgMC4wMDE3NjQiLCBcCi0gICAgICAgICAgIjAuMDAxNzYyLCAwLjAwMTc2NCwgMC4wMDE3NjYsIDAuMDAxNzY1LCAwLjAwMTc2NiwgMC4wMDE3NjQsIDAuMDAxNzYzIiwgXAotICAgICAgICAgICIwLjAwMTc2LCAwLjAwMTc2MiwgMC4wMDE3NjUsIDAuMDAxNzY2LCAwLjAwMTc2NCwgMC4wMDE3NjUsIDAuMDAxNzY0IiwgXAotICAgICAgICAgICIwLjAwMTc1NywgMC4wMDE3NjEsIDAuMDAxNzY0LCAwLjAwMTc2NSwgMC4wMDE3NjUsIDAuMDAxNzY0LCAwLjAwMTc2MyIsIFwKLSAgICAgICAgICAiMC4wMDE3NTYsIDAuMDAxNzU5LCAwLjAwMTc2NCwgMC4wMDE3NjUsIDAuMDAxNzY1LCAwLjAwMTc2NCwgMC4wMDE3NjMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDA4ODIsIDAuMDAwODgyLCAwLjAwMDg4MiwgMC4wMDA4OCwgMC4wMDA4ODEsIDAuMDAwODgsIDAuMDAwODc5IiwgXAotICAgICAgICAgICIwLjAwMDg2NywgMC4wMDA4NjgsIDAuMDAwODY5LCAwLjAwMDg2OSwgMC4wMDA4NywgMC4wMDA4NjgsIDAuMDAwODY3IiwgXAotICAgICAgICAgICIwLjAwMDg2MiwgMC4wMDA4NjQsIDAuMDAwODY2LCAwLjAwMDg2NywgMC4wMDA4NjYsIDAuMDAwODY1LCAwLjAwMDg2NCIsIFwKLSAgICAgICAgICAiMC4wMDA4NTcsIDAuMDAwODYsIDAuMDAwODY0LCAwLjAwMDg2NSwgMC4wMDA4NjUsIDAuMDAwODY0LCAwLjAwMDg2MyIsIFwKLSAgICAgICAgICAiMC4wMDA4NTQsIDAuMDAwODU3LCAwLjAwMDg2MywgMC4wMDA4NjQsIDAuMDAwODY0LCAwLjAwMDg2NCwgMC4wMDA4NjMiLCBcCi0gICAgICAgICAgIjAuMDAwODQ5LCAwLjAwMDg1NCwgMC4wMDA4NjIsIDAuMDAwODYzLCAwLjAwMDg2MywgMC4wMDA4NjMsIDAuMDAwODYzIiwgXAotICAgICAgICAgICIwLjAwMDg0NSwgMC4wMDA4NTEsIDAuMDAwODYsIDAuMDAwODYyLCAwLjAwMDg2MiwgMC4wMDA4NjIsIDAuMDAwODYyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxOTMyLCAwLjAwMTkzMiwgMC4wMDE5MzEsIDAuMDAxOTMsIDAuMDAxOTI5LCAwLjAwMTkzLCAwLjAwMTkyOSIsIFwKLSAgICAgICAgICAiMC4wMDE5MjUsIDAuMDAxOTI1LCAwLjAwMTkyNiwgMC4wMDE5MjYsIDAuMDAxOTI2LCAwLjAwMTkyNCwgMC4wMDE5MjMiLCBcCi0gICAgICAgICAgIjAuMDAxOTIyLCAwLjAwMTkyMywgMC4wMDE5MjUsIDAuMDAxOTI1LCAwLjAwMTkyNCwgMC4wMDE5MjMsIDAuMDAxOTIyIiwgXAotICAgICAgICAgICIwLjAwMTkyLCAwLjAwMTkyMiwgMC4wMDE5MjQsIDAuMDAxOTI1LCAwLjAwMTkyMywgMC4wMDE5MjUsIDAuMDAxOTIyIiwgXAotICAgICAgICAgICIwLjAwMTkxOCwgMC4wMDE5MiwgMC4wMDE5MjMsIDAuMDAxOTI0LCAwLjAwMTkyMywgMC4wMDE5MjMsIDAuMDAxOTIyIiwgXAotICAgICAgICAgICIwLjAwMTkxNiwgMC4wMDE5MTgsIDAuMDAxOTIzLCAwLjAwMTkyNCwgMC4wMDE5MjMsIDAuMDAxOTIzLCAwLjAwMTkyMiIsIFwKLSAgICAgICAgICAiMC4wMDE5MTQsIDAuMDAxOTE3LCAwLjAwMTkyMiwgMC4wMDE5MjMsIDAuMDAxOTIzLCAwLjAwMTkyMiwgMC4wMDE5MjIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDA2NTgsIDAuMDAwNjU4LCAwLjAwMDY1NywgMC4wMDA2NTgsIDAuMDAwNjU3LCAwLjAwMDY1NiwgMC4wMDA2NTUiLCBcCi0gICAgICAgICAgIjAuMDAwNjQ0LCAwLjAwMDY0NSwgMC4wMDA2NDUsIDAuMDAwNjQ1LCAwLjAwMDY0NSwgMC4wMDA2NDQsIDAuMDAwNjM5IiwgXAotICAgICAgICAgICIwLjAwMDYzOCwgMC4wMDA2NCwgMC4wMDA2NDIsIDAuMDAwNjQyLCAwLjAwMDY0MiwgMC4wMDA2NDIsIDAuMDAwNjQxIiwgXAotICAgICAgICAgICIwLjAwMDYzNCwgMC4wMDA2MzcsIDAuMDAwNjQsIDAuMDAwNjQxLCAwLjAwMDY0MSwgMC4wMDA2NCwgMC4wMDA2NCIsIFwKLSAgICAgICAgICAiMC4wMDA2MjgsIDAuMDAwNjM0LCAwLjAwMDYzOSwgMC4wMDA2NCwgMC4wMDA2NCwgMC4wMDA2NCwgMC4wMDA2MzkiLCBcCi0gICAgICAgICAgIjAuMDAwNjI2LCAwLjAwMDYyOSwgMC4wMDA2MzcsIDAuMDAwNjM5LCAwLjAwMDYzOSwgMC4wMDA2MzksIDAuMDAwNjM4IiwgXAotICAgICAgICAgICIwLjAwMDYyMiwgMC4wMDA2MjcsIDAuMDAwNjM2LCAwLjAwMDYzOCwgMC4wMDA2MzksIDAuMDAwNjM4LCAwLjAwMDYzOCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlMwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDE0NjQsIDAuMDAxNDU0LCAwLjAwMTQzNywgMC4wMDE0MzUsIDAuMDAxNDM0LCAwLjAwMTQzLCAwLjAwMTQyOCIsIFwKLSAgICAgICAgICAiMC4wMDE0NTgsIDAuMDAxNDQ1LCAwLjAwMTQyNSwgMC4wMDE0MiwgMC4wMDE0MTgsIDAuMDAxNDE0LCAwLjAwMTQxMyIsIFwKLSAgICAgICAgICAiMC4wMDE0NiwgMC4wMDE0NDUsIDAuMDAxNDE5LCAwLjAwMTQxNCwgMC4wMDE0MTIsIDAuMDAxNDA2LCAwLjAwMTQwNCIsIFwKLSAgICAgICAgICAiMC4wMDE0NjMsIDAuMDAxNDQ3LCAwLjAwMTQxOSwgMC4wMDE0MTMsIDAuMDAxNDA2LCAwLjAwMTQwMiwgMC4wMDE0IiwgXAotICAgICAgICAgICIwLjAwMTQ2NCwgMC4wMDE0NSwgMC4wMDE0MiwgMC4wMDE0MTIsIDAuMDAxNDA2LCAwLjAwMTQwMSwgMC4wMDEzOTkiLCBcCi0gICAgICAgICAgIjAuMDAxNDY4LCAwLjAwMTQ1NSwgMC4wMDE0MjMsIDAuMDAxNDE0LCAwLjAwMTQwOCwgMC4wMDE0MDIsIDAuMDAxMzk5IiwgXAotICAgICAgICAgICIwLjAwMTQ3MSwgMC4wMDE0NTksIDAuMDAxNDI3LCAwLjAwMTQxOCwgMC4wMDE0MSwgMC4wMDE0MDMsIDAuMDAxNDAyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyNDM5LCAwLjAwMjQyOCwgMC4wMDI0MTEsIDAuMDAyNDA4LCAwLjAwMjQwNywgMC4wMDI0MDMsIDAuMDAyNDAzIiwgXAotICAgICAgICAgICIwLjAwMjQ0LCAwLjAwMjQyNiwgMC4wMDI0MDQsIDAuMDAyNCwgMC4wMDIzOTYsIDAuMDAyMzkzLCAwLjAwMjM5MiIsIFwKLSAgICAgICAgICAiMC4wMDI0NDYsIDAuMDAyNDMsIDAuMDAyNDA0LCAwLjAwMjM5NywgMC4wMDIzOTMsIDAuMDAyMzg5LCAwLjAwMjM4NyIsIFwKLSAgICAgICAgICAiMC4wMDI0NSwgMC4wMDI0MzQsIDAuMDAyNDA0LCAwLjAwMjM5NywgMC4wMDIzOTIsIDAuMDAyMzg3LCAwLjAwMjM4NiIsIFwKLSAgICAgICAgICAiMC4wMDI0NTMsIDAuMDAyNDM3LCAwLjAwMjQwNiwgMC4wMDIzOTgsIDAuMDAyMzkyLCAwLjAwMjM4NywgMC4wMDIzODUiLCBcCi0gICAgICAgICAgIjAuMDAyNDU3LCAwLjAwMjQ0MiwgMC4wMDI0MDksIDAuMDAyNCwgMC4wMDIzOTQsIDAuMDAyMzg4LCAwLjAwMjM4NSIsIFwKLSAgICAgICAgICAiMC4wMDI0NTksIDAuMDAyNDQ1LCAwLjAwMjQxMywgMC4wMDI0MDMsIDAuMDAyMzk2LCAwLjAwMjM4OSwgMC4wMDIzODciKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IE1YSTJYNiAqCi0gKiAtLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKE1YSTJYNikgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjM0NjgyMzsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjIxODk4OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYyMDE5ODsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2MjE4OTg7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMTUzLCAwLjAwMDE1NywgMC4wMDAxNTgsIDAuMDAwMTU4LCAwLjAwMDE1OSwgMC4wMDAxNTksIDAuMDAwMTYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxNjksIDAuMDAwMTY3LCAwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiwgMC4wMDAxNjYiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYxMzMzMzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MTE2Njk7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjEzMzMzOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDE1OSwgMC4wMDAxNjEsIDAuMDAwMTYxLCAwLjAwMDE2MiwgMC4wMDAxNjIsIDAuMDAwMTYyLCAwLjAwMDE2MiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDE2NywgMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUzApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTIyNjY1OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTIyNTY0OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTIyNjY1OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDIyNCwgMC4wMDAyMDYsIDAuMDAwMTk2LCAwLjAwMDE5MiwgMC4wMDAxOSwgMC4wMDAxODksIDAuMDAwMTg5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxNTU4LCAwLjAwMTU0NiwgMC4wMDE1MzgsIDAuMDAxNTM1LCAwLjAwMTUzMywgMC4wMDE1MzEsIDAuMDAxNTMxIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuNzc5MDc1OwotICAgIGZ1bmN0aW9uIDogIighKChTMCBCKSArICghUzAgQSkpKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xODk3NywgMC4yNzU5MDQsIDAuMzU5NjA1LCAwLjQxOTM1OSwgMC41MTQ5NjQsIDAuNTk4NjI2LCAwLjcxODE1NyIsIFwKLSAgICAgICAgICAiMC4yMDEzNDQsIDAuMjg3NDQsIDAuMzcxMTU2LCAwLjQzMDkxMSwgMC41MjY1MjcsIDAuNjEwMTk3LCAwLjcyOTczNyIsIFwKLSAgICAgICAgICAiMC4yMTQ1NTEsIDAuMzAwNjUxLCAwLjM4NDM2OCwgMC40NDQwOTIsIDAuNTM5Njk1LCAwLjYyMzQxMywgMC43NDMwMTEiLCBcCi0gICAgICAgICAgIjAuMjI3MTE3LCAwLjMxMzIyMiwgMC4zOTY5MjEsIDAuNDU2Njc3LCAwLjU1MjI4MiwgMC42MzU5NDQsIDAuNzU1NTA5IiwgXAotICAgICAgICAgICIwLjIzOTU4NiwgMC4zMjU3MDYsIDAuNDA5NDA3LCAwLjQ2OTE4NCwgMC41NjQ4MjIsIDAuNjQ4NDY3LCAwLjc2Nzk3IiwgXAotICAgICAgICAgICIwLjI1OTM0MywgMC4zNDU0MzcsIDAuNDI5MTYxLCAwLjQ4ODkyMSwgMC41ODQ1MjYsIDAuNjY4MjE0LCAwLjc4NzcwOSIsIFwKLSAgICAgICAgICAiMC4yNzYyNDEsIDAuMzYyNDAxLCAwLjQ0NjA4NCwgMC41MDU4NDEsIDAuNjAxNDY0LCAwLjY4NTEzNywgMC44MDQ2MzEiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDU4MTMsIDAuMjA4OTcxLCAwLjM3NzY5OSwgMC40OTkxMTYsIDAuNjkzNTcxLCAwLjg2Mzg3NSwgMS4xMDcxMyIsIFwKLSAgICAgICAgICAiMC4wNDU5NTgsIDAuMjA4NzQ5LCAwLjM3Njk5NCwgMC40OTkxMzEsIDAuNjk0Njc5LCAwLjg2NTMwNywgMS4xMDkxIiwgXAotICAgICAgICAgICIwLjA0NTg3MSwgMC4yMDg3NTUsIDAuMzc3NzMxLCAwLjQ5ODEzNiwgMC42OTI3MTksIDAuODYyNTI3LCAxLjEwNjE3IiwgXAotICAgICAgICAgICIwLjA0NTg0OSwgMC4yMDg5NywgMC4zNzgxMTMsIDAuNDk5MTA2LCAwLjY5NDI1NSwgMC44NjM4NjEsIDEuMTA5MSIsIFwKLSAgICAgICAgICAiMC4wNDU5NDIsIDAuMjA4NDkxLCAwLjM3Njg5OCwgMC40OTkxMzQsIDAuNjk0ODUxLCAwLjg2MzI1LCAxLjEwNjk2IiwgXAotICAgICAgICAgICIwLjA0NTkxOSwgMC4yMDgzNjIsIDAuMzc3NzE3LCAwLjQ5OTEzNSwgMC42OTM1MzYsIDAuODY1MzIyLCAxLjEwODkzIiwgXAotICAgICAgICAgICIwLjA0NTk5NCwgMC4yMDg1MzYsIDAuMzc3NzI4LCAwLjQ5OTE0NSwgMC42OTMxNTEsIDAuODY1MzQyLCAxLjEwODk0Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjA1MjYxLCAwLjMwNTM0NCwgMC40MDMzMzUsIDAuNDczMjksIDAuNTg1MjM0LCAwLjY4MzEyOCwgMC44MjI5OTEiLCBcCi0gICAgICAgICAgIjAuMjE2ODY1LCAwLjMxNjc1NCwgMC40MTQ3MzksIDAuNDg0Njg2LCAwLjU5NjYyNCwgMC42OTQ1MTIsIDAuODM0NTEyIiwgXAotICAgICAgICAgICIwLjIzMDUzLCAwLjMzMDMyOSwgMC40MjgzMjUsIDAuNDk4MjcsIDAuNjEwMjA5LCAwLjcwODEzOCwgMC44NDc5OCIsIFwKLSAgICAgICAgICAiMC4yNDQwMzYsIDAuMzQ0MTA4LCAwLjQ0MjEwMiwgMC41MTIwNTUsIDAuNjIzOTY1LCAwLjcyMTkwOSwgMC44NjE3NjgiLCBcCi0gICAgICAgICAgIjAuMjU3NzAzLCAwLjM1NzY1OCwgMC40NTU2NTgsIDAuNTI1NjA2LCAwLjYzNzU1MywgMC43MzU0NTcsIDAuODc1MzExIiwgXAotICAgICAgICAgICIwLjI3OTU1NSwgMC4zNzk1NSwgMC40Nzc1NjcsIDAuNTQ3NDk1LCAwLjY1OTQ0OCwgMC43NTczNTcsIDAuODk3MjA2IiwgXAotICAgICAgICAgICIwLjI5ODYyOCwgMC4zOTg2NzksIDAuNDk2NjY4LCAwLjU2NjYxOSwgMC42Nzg1MzgsIDAuNzc2NDc5LCAwLjkxNjMzNiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0ODMxOSwgMC4yMzY1MzQsIDAuNDMwOTE1LCAwLjU2ODcxMywgMC43OTMwNDUsIDAuOTg3ODQ3LCAxLjI2NjI1IiwgXAotICAgICAgICAgICIwLjA0ODQ3NywgMC4yMzY4OTcsIDAuNDMwODM3LCAwLjU2OTU3NywgMC43OTAzMzksIDAuOTg1Mzg4LCAxLjI2MTcxIiwgXAotICAgICAgICAgICIwLjA0ODM2NSwgMC4yMzY5ODksIDAuNDMwOTA1LCAwLjU3MDE2MSwgMC43OTAyMDgsIDAuOTg3ODk2LCAxLjI2NjMiLCBcCi0gICAgICAgICAgIjAuMDQ4MzMxLCAwLjIzNzA3NywgMC40MzA3MjksIDAuNTY5NjQxLCAwLjc5MzA3LCAwLjk4Nzg2OSwgMS4yNjYzNCIsIFwKLSAgICAgICAgICAiMC4wNDgzOTIsIDAuMjM3MDM3LCAwLjQzMTA5OSwgMC41NjkwNjQsIDAuNzkzMDQ1LCAwLjk4Nzg2NiwgMS4yNjYyOCIsIFwKLSAgICAgICAgICAiMC4wNDgzMywgMC4yMzcwMSwgMC40MzA1NTcsIDAuNTcwMTM3LCAwLjc5MzA0NiwgMC45ODc4NzcsIDEuMjY2MzEiLCBcCi0gICAgICAgICAgIjAuMDQ4MzI1LCAwLjIzNzA1MSwgMC40MzA1OTcsIDAuNTY5ODIzLCAwLjc5MTMxOCwgMC45ODc4NzgsIDEuMjY2MzgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xOTI0MTEsIDAuMjc4NTQzLCAwLjM2MjI1NiwgMC40MjIwMTEsIDAuNTE3NTc2LCAwLjYwMTIyMSwgMC43MjA4MzUiLCBcCi0gICAgICAgICAgIjAuMjAzODM5LCAwLjI4OTk0NCwgMC4zNzM2NiwgMC40MzMzODQsIDAuNTI5MDMzLCAwLjYxMjcwNywgMC43MzIyNTQiLCBcCi0gICAgICAgICAgIjAuMjE2ODYsIDAuMzAyOTg2LCAwLjM4NjY5NCwgMC40NDY0NiwgMC41NDIxMDgsIDAuNjI1NzQ0LCAwLjc0NTI0MyIsIFwKLSAgICAgICAgICAiMC4yMjkyOTgsIDAuMzE1NDM4LCAwLjM5OTE0OCwgMC40NTg5MDQsIDAuNTU0NDczLCAwLjYzODExMywgMC43NTc2OTMiLCBcCi0gICAgICAgICAgIjAuMjQxNzE0LCAwLjMyNzgsIDAuNDExNTAyLCAwLjQ3MTI1OCwgMC41NjY4NjEsIDAuNjUwNTIxLCAwLjc3MDA1IiwgXAotICAgICAgICAgICIwLjI2MTE0OSwgMC4zNDcyOTQsIDAuNDMxMDEzLCAwLjQ5MDczNywgMC41ODYzMjQsIDAuNjcwMDI1LCAwLjc4OTU1MiIsIFwKLSAgICAgICAgICAiMC4yNzgyNTUsIDAuMzY0MzYsIDAuNDQ4MDg1LCAwLjUwNzg0NSwgMC42MDM0NjksIDAuNjg3MTM5LCAwLjgwNjYzNCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0NTk5MywgMC4yMDg3NjYsIDAuMzc3NTEsIDAuNDk4MjU4LCAwLjY5MjI4LCAwLjg2MjYwNSwgMS4xMDkwOCIsIFwKLSAgICAgICAgICAiMC4wNDYwMjYsIDAuMjA4NzY5LCAwLjM3NzczMSwgMC40OTgwOTYsIDAuNjk0NzAyLCAwLjg2NTM0MiwgMS4xMDkxNCIsIFwKLSAgICAgICAgICAiMC4wNDU5MjMsIDAuMjA4OTA3LCAwLjM3Nzc1MywgMC40OTgxNjEsIDAuNjk0ODgsIDAuODY1MzE0LCAxLjEwODg3IiwgXAotICAgICAgICAgICIwLjA0NTk5NiwgMC4yMDg4MDUsIDAuMzc3NzIzLCAwLjQ5ODE3MSwgMC42OTE5OTIsIDAuODYyNzM1LCAxLjEwODkxIiwgXAotICAgICAgICAgICIwLjA0NjA3NCwgMC4yMDg5NjEsIDAuMzc3NzIzLCAwLjQ5OTEzOCwgMC42OTM1NzYsIDAuODYzODIyLCAxLjEwNzE3IiwgXAotICAgICAgICAgICIwLjA0NTk2NiwgMC4yMDg3NzIsIDAuMzc3NTEyLCAwLjQ5ODE0MSwgMC42OTIyNywgMC44NjI4MjYsIDEuMTA4NDgiLCBcCi0gICAgICAgICAgIjAuMDQ2MDA2LCAwLjIwODM1MiwgMC4zNzc3MjYsIDAuNDk5MTM5LCAwLjY5MzE1LCAwLjg2NTMzNCwgMS4xMDg5MyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIwNTc4MiwgMC4zMDU3OTYsIDAuNDAzNzY4LCAwLjQ3MzcxOCwgMC41ODU2MTUsIDAuNjgzNTg3LCAwLjgyMzQzOSIsIFwKLSAgICAgICAgICAiMC4yMTc1MjcsIDAuMzE3NDkzLCAwLjQxNTQ3OSwgMC40ODU0MjksIDAuNTk3MzM3LCAwLjY5NTI5MiwgMC44MzUxNDYiLCBcCi0gICAgICAgICAgIjAuMjMxNTEzLCAwLjMzMTU3NiwgMC40Mjk1NzYsIDAuNDk5NTI4LCAwLjYxMTQyLCAwLjcwOTM4MywgMC44NDkyNDIiLCBcCi0gICAgICAgICAgIjAuMjQ1MjcyLCAwLjM0NTM0MiwgMC40NDMzMzcsIDAuNTEzMjg5LCAwLjYyNTIxOSwgMC43MjMxNDIsIDAuODYzMDAyIiwgXAotICAgICAgICAgICIwLjI1ODk2MiwgMC4zNTg5NjMsIDAuNDU2OTYxLCAwLjUyNjkwNywgMC42Mzg4NTQsIDAuNzM2NzY3LCAwLjg3NjY2IiwgXAotICAgICAgICAgICIwLjI4MDk5NCwgMC4zODA5NzMsIDAuNDc4OTU2LCAwLjU0ODkwNCwgMC42NjA4NTcsIDAuNzU4NzY2LCAwLjg5ODYyMSIsIFwKLSAgICAgICAgICAiMC4zMDAyNzEsIDAuNDAwMTY1LCAwLjQ5ODE0MiwgMC41NjgxMTIsIDAuNjgwMDIsIDAuNzc3OTI0LCAwLjkxNzg1OSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0ODQwNCwgMC4yMzY1OTEsIDAuNDMwNzA2LCAwLjU2OTYxLCAwLjc5Mjg1NCwgMC45ODc4OTMsIDEuMjY2MjUiLCBcCi0gICAgICAgICAgIjAuMDQ4Mzk3LCAwLjIzNzA3NSwgMC40MzA3OTksIDAuNTY5NzM3LCAwLjc5MTg1MSwgMC45ODc4ODQsIDEuMjY2MjIiLCBcCi0gICAgICAgICAgIjAuMDQ4MzIxLCAwLjIzNjY3NCwgMC40MzA4NCwgMC41NjkzNzUsIDAuNzkyNzcyLCAwLjk4Nzg3MywgMS4yNjYyOCIsIFwKLSAgICAgICAgICAiMC4wNDgzMzIsIDAuMjM3MDgzLCAwLjQzMDc3NywgMC41Njk0NTMsIDAuNzkzMDEyLCAwLjk4Nzg2OSwgMS4yNjYyNyIsIFwKLSAgICAgICAgICAiMC4wNDgzMzQsIDAuMjM2NjY0LCAwLjQzMDMzLCAwLjU3MDI1OCwgMC43OTMwNDYsIDAuOTg3ODg0LCAxLjI2NjUxIiwgXAotICAgICAgICAgICIwLjA0ODQwNSwgMC4yMzY5MDYsIDAuNDMwODcxLCAwLjU2OTc4OCwgMC43OTMwNTEsIDAuOTg3ODg1LCAxLjI2NjI5IiwgXAotICAgICAgICAgICIwLjA0ODQ2NSwgMC4yMzY3ODgsIDAuNDMwODEsIDAuNTcwNDE3LCAwLjc4OTcxLCAwLjk4NTMzMywgMS4yNjY0OCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMTU4MzgsIDAuMzAxOTg3LCAwLjM4NTcxMSwgMC40NDU0MzUsIDAuNTQxMDE3LCAwLjYyNDc0NSwgMC43NDQyNTciLCBcCi0gICAgICAgICAgIjAuMjI4MDA5LCAwLjMxNDA4OSwgMC4zOTc3OSwgMC40NTc1NDYsIDAuNTUzMTUxLCAwLjYzNjg4NSwgMC43NTYzMzUiLCBcCi0gICAgICAgICAgIjAuMjQzNzAyLCAwLjMyOTgzLCAwLjQxMzU1NCwgMC40NzMzMTQsIDAuNTY4OTQ0LCAwLjY1MjYwOCwgMC43NzIxMDMiLCBcCi0gICAgICAgICAgIjAuMjU4Mjk0LCAwLjM0NDQwNCwgMC40MjgxMTQsIDAuNDg3ODcsIDAuNTgzNDQyLCAwLjY2NzEzNywgMC43ODY2NjMiLCBcCi0gICAgICAgICAgIjAuMjczMzMxLCAwLjM1OTQ1OSwgMC40NDMxNzMsIDAuNTAyOTI5LCAwLjU5ODQ5NCwgMC42ODIxNjksIDAuODAxNzYiLCBcCi0gICAgICAgICAgIjAuMjk0ODI2LCAwLjM4MDk0NywgMC40NjQ2NTMsIDAuNTI0NDE2LCAwLjYyMDA0MiwgMC43MDM3MDcsIDAuODIzMjAzIiwgXAotICAgICAgICAgICIwLjMxMjAwNSwgMC4zOTgxMzcsIDAuNDgxODM0LCAwLjU0MTU4OSwgMC42MzcyMjcsIDAuNzIwODY0LCAwLjg0MDM3Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQ1OTY2LCAwLjIwODc3NSwgMC4zNzc3ODYsIDAuNDk4MTM5LCAwLjY5MjI1NSwgMC44NjM4NjgsIDEuMTA4OTkiLCBcCi0gICAgICAgICAgIjAuMDQ2MDc0LCAwLjIwODk0MywgMC4zNzc3NDEsIDAuNDk5MTU2LCAwLjY5NDYwMiwgMC44NjMyNzcsIDEuMTA4OTQiLCBcCi0gICAgICAgICAgIjAuMDQ2MDAyLCAwLjIwODM0OCwgMC4zNzc3MzMsIDAuNDk5MTQ3LCAwLjY5NDc5NiwgMC44NjUzNDMsIDEuMTA4OTQiLCBcCi0gICAgICAgICAgIjAuMDQ2MDA5LCAwLjIwODc2MiwgMC4zNzc3MjUsIDAuNDk4MTcxLCAwLjY5MjU5NSwgMC44NjUxMzEsIDEuMTA4OTQiLCBcCi0gICAgICAgICAgIjAuMDQ1OTgxLCAwLjIwODc3LCAwLjM3NzcyOCwgMC40OTgxNzIsIDAuNjkyNDMzLCAwLjg2MzI4MSwgMS4xMDkxMSIsIFwKLSAgICAgICAgICAiMC4wNDU5NTYsIDAuMjA4OTMxLCAwLjM3NzcyNSwgMC40OTkxNDgsIDAuNjkyODExLCAwLjg2NTMxNSwgMS4xMDg5MiIsIFwKLSAgICAgICAgICAiMC4wNDU5MiwgMC4yMDg5OSwgMC4zNzc3MDgsIDAuNDk5MDk3LCAwLjY5NDg3OSwgMC44NjUzMDQsIDEuMTA4OTMiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMjU1NzIsIDAuMzI1NjI4LCAwLjQyMzYyLCAwLjQ5MzU3MiwgMC42MDU0NzIsIDAuNzAzNDI2LCAwLjg0MzI4NiIsIFwKLSAgICAgICAgICAiMC4yMzc2NjQsIDAuMzM3Njc0LCAwLjQzNTY1NSwgMC41MDU2MTYsIDAuNjE3NTUxLCAwLjcxNTQ2OCwgMC44NTUzODUiLCBcCi0gICAgICAgICAgIjAuMjUyNTY4LCAwLjM1MjYzMSwgMC40NTA2MTYsIDAuNTIwNTY1LCAwLjYzMjQ5NiwgMC43MzAzOTgsIDAuODcwMjg4IiwgXAotICAgICAgICAgICIwLjI2NzA0OCwgMC4zNjY5MjksIDAuNDY0OTE2LCAwLjUzNDg3LCAwLjY0Njc5OCwgMC43NDQ3MzYsIDAuODg0NjI5IiwgXAotICAgICAgICAgICIwLjI3OTk4MSwgMC4zNzk4NDIsIDAuNDc3ODM5LCAwLjU0Nzc4MiwgMC42NTk3MTYsIDAuNzU3NjQ4LCAwLjg5NzQ5MSIsIFwKLSAgICAgICAgICAiMC4yOTg3MDcsIDAuMzk4NTM0LCAwLjQ5NjUzMiwgMC41NjY0NzUsIDAuNjc4NDA5LCAwLjc3NjM0MSwgMC45MTYxODQiLCBcCi0gICAgICAgICAgIjAuMzEzMjA1LCAwLjQxMzE5NCwgMC41MTEyMDcsIDAuNTgxMTM4LCAwLjY5MzA5NCwgMC43OTEwMDEsIDAuOTMwODUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDgzNjksIDAuMjM3MDQ4LCAwLjQzMDY4NywgMC41Njk3OTMsIDAuNzkwOTU2LCAwLjk4Nzg3LCAxLjI2NjM1IiwgXAotICAgICAgICAgICIwLjA0ODMzNiwgMC4yMzY2ODcsIDAuNDMxMTEzLCAwLjU3MDQxOSwgMC43OTMwNDYsIDAuOTg3ODksIDEuMjY2MjgiLCBcCi0gICAgICAgICAgIjAuMDQ4NTU3LCAwLjIzNjg3NiwgMC40MzA4MjYsIDAuNTY4OTY4LCAwLjc5MzAwNywgMC45ODc4MjcsIDEuMjY2MzciLCBcCi0gICAgICAgICAgIjAuMDQ4NDY2LCAwLjIzNjY5MywgMC40MzA4MzgsIDAuNTcwMjkxLCAwLjc4OTkyMywgMC45ODc5MDksIDEuMjY2MzIiLCBcCi0gICAgICAgICAgIjAuMDQ4MzMyLCAwLjIzNjk1NiwgMC40Mjk5OTMsIDAuNTY5MzE0LCAwLjc4OTc4NCwgMC45ODc4OTYsIDEuMjY2MjEiLCBcCi0gICAgICAgICAgIjAuMDQ4MzUsIDAuMjM2OTc3LCAwLjQzMDIwNCwgMC41Njk0MDYsIDAuNzg5ODMsIDAuOTg3ODk2LCAxLjI2NjIzIiwgXAotICAgICAgICAgICIwLjA0ODMzNywgMC4yMzcwMDgsIDAuNDMwNjQ2LCAwLjU3MDA4NiwgMC43OTMwNDgsIDAuOTg3ODc2LCAxLjI2NjMxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlMwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE3NzAyNiwgMC4yNjMxNTYsIDAuMzQ2OTIxLCAwLjQwNjY3OCwgMC41MDIyODUsIDAuNTg1OTczLCAwLjcwNTQ2NyIsIFwKLSAgICAgICAgICAiMC4xODc0NCwgMC4yNzM2MDgsIDAuMzU3MjY5LCAwLjQxNzA0NSwgMC41MTI2OSwgMC41OTYzMjcsIDAuNzE1ODI4IiwgXAotICAgICAgICAgICIwLjIwMDQ3MywgMC4yODY2MjUsIDAuMzcwMzI0LCAwLjQzMDA4MywgMC41MjU3MjIsIDAuNjA5MzU4LCAwLjcyODg2IiwgXAotICAgICAgICAgICIwLjIxMzYzNSwgMC4yOTk3MzIsIDAuMzgzNDMsIDAuNDQzMTg1LCAwLjUzODc4OSwgMC42MjI0NDcsIDAuNzQxOTc5IiwgXAotICAgICAgICAgICIwLjIyNjgwNywgMC4zMTI5MjEsIDAuMzk2NjQ0LCAwLjQ1NjQwMiwgMC41NTIwMTEsIDAuNjM1Njk3LCAwLjc1NTE5MSIsIFwKLSAgICAgICAgICAiMC4yNDc5MjEsIDAuMzM0MTA5LCAwLjQxNzgwNSwgMC40Nzc1NiwgMC41NzMxOTksIDAuNjU2ODM2LCAwLjc3NjM0MiIsIFwKLSAgICAgICAgICAiMC4yNjY0OTEsIDAuMzUyNTg5LCAwLjQzNjMsIDAuNDk2MDI1LCAwLjU5MTY2NSwgMC42NzUzMjIsIDAuNzk0ODQ1Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQ1OTQ4LCAwLjIwODY0MywgMC4zNzc3MjksIDAuNDk5MTQ5LCAwLjY5MzYzNSwgMC44NjUzNCwgMS4xMDg5NCIsIFwKLSAgICAgICAgICAiMC4wNDU5NywgMC4yMDg1NTMsIDAuMzc3MTgzLCAwLjQ5OTg0OSwgMC42OTQ4OTIsIDAuODY1MjcyLCAxLjEwODkxIiwgXAotICAgICAgICAgICIwLjA0NjAyNSwgMC4yMDg5NTMsIDAuMzc4MjA3LCAwLjQ5OTA4NCwgMC42OTQ4OTMsIDAuODY1MzA3LCAxLjEwODkyIiwgXAotICAgICAgICAgICIwLjA0NjAxOSwgMC4yMDg5NDQsIDAuMzc3NzIzLCAwLjQ5OTE0OCwgMC42OTM2MTcsIDAuODYzNzgsIDEuMTA3MTEiLCBcCi0gICAgICAgICAgIjAuMDQ1OTQ1LCAwLjIwODMyOSwgMC4zNzc3MjEsIDAuNDk5MTMzLCAwLjY5NDU1OSwgMC44NjUzMzYsIDEuMTA4OTQiLCBcCi0gICAgICAgICAgIjAuMDQ2MDQ0LCAwLjIwODk4MywgMC4zNzcwNzksIDAuNDk5MDg3LCAwLjY5NDg4NiwgMC44NjUyOTUsIDEuMTA4OTMiLCBcCi0gICAgICAgICAgIjAuMDQ1OTQsIDAuMjA4NzQyLCAwLjM3NzcxMywgMC40OTgxMzYsIDAuNjk0NjA1LCAwLjg2NTEsIDEuMTA4OTIiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xOTA5NDQsIDAuMjkwOTU4LCAwLjM4ODkzMywgMC40NTg4NzksIDAuNTcwNzg5LCAwLjY2ODcsIDAuODA4NTk1IiwgXAotICAgICAgICAgICIwLjIwMTM5MiwgMC4zMDE0MDIsIDAuMzk5Mzk5LCAwLjQ2OTM0NSwgMC41ODEyODgsIDAuNjc5MjAyLCAwLjgxOTEiLCBcCi0gICAgICAgICAgIjAuMjE1MDQ5LCAwLjMxNTEyOCwgMC40MTMxMjQsIDAuNDgzMDc3LCAwLjU5NTAyNiwgMC42OTI5MTYsIDAuODMyNzgiLCBcCi0gICAgICAgICAgIjAuMjI4NTUzLCAwLjMyODYzMywgMC40MjY2MTMsIDAuNDk2NTYyLCAwLjYwODQ2MSwgMC43MDY0MywgMC44NDYyODQiLCBcCi0gICAgICAgICAgIjAuMjQyMjI4LCAwLjM0MTk1NywgMC40Mzk5MzIsIDAuNTA5ODc0LCAwLjYyMTgwOSwgMC43MTk2OTcsIDAuODU5NTc1IiwgXAotICAgICAgICAgICIwLjI2NDIzOCwgMC4zNjQyMzcsIDAuNDYyMjE4LCAwLjUzMjE2NSwgMC42NDQwNjcsIDAuNzQyMDAxLCAwLjg4MTc1NCIsIFwKLSAgICAgICAgICAiMC4yODM2MDcsIDAuMzgzNjg4LCAwLjQ4MTY2OSwgMC41NTE2MTcsIDAuNjYzNTE2LCAwLjc2MTQ3NywgMC45MDEzNDEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDg0MjksIDAuMjM2NjQ5LCAwLjQzMDU4NiwgMC41Njk0MTQsIDAuNzkzMTQxLCAwLjk4ODAzNCwgMS4yNjYyMiIsIFwKLSAgICAgICAgICAiMC4wNDgzMTYsIDAuMjM2NjU0LCAwLjQzMDQ5LCAwLjU3MDI4MywgMC43OTMwMzksIDAuOTg3ODc5LCAxLjI2NjU5IiwgXAotICAgICAgICAgICIwLjA0ODMwOCwgMC4yMzcxMDksIDAuNDMwODc1LCAwLjU2ODQ4MSwgMC43OTMwNTIsIDAuOTg3ODUsIDEuMjY2MjUiLCBcCi0gICAgICAgICAgIjAuMDQ4Mjk5LCAwLjIzNzA4MiwgMC40MzA1MDcsIDAuNTY5MzA1LCAwLjc5Mjc2NiwgMC45ODc4OTMsIDEuMjY2MzUiLCBcCi0gICAgICAgICAgIjAuMDQ4MzUyLCAwLjIzNjc4MiwgMC40MzAyODcsIDAuNTY4OTYxLCAwLjc5MDA2MSwgMC45ODU3MTQsIDEuMjY2MTkiLCBcCi0gICAgICAgICAgIjAuMDQ4NDI3LCAwLjIzNzA3NSwgMC40MzA1MTcsIDAuNTY5MTQ4LCAwLjc5MTUyNCwgMC45ODc4MzMsIDEuMjYyNTIiLCBcCi0gICAgICAgICAgIjAuMDQ4MzI0LCAwLjIzNzA2NCwgMC40MzA0NTksIDAuNTY5MjI0LCAwLjc5Mjc0NSwgMC45ODc4NzgsIDEuMjY2MzgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwODExNiwgMC4wMDgyODgsIDAuMDA4MzE4LCAwLjAwODMyNiwgMC4wMDgzMzEsIDAuMDA4MzM3LCAwLjAwODM0IiwgXAotICAgICAgICAgICIwLjAwODExMiwgMC4wMDgyODMsIDAuMDA4MzEyLCAwLjAwODMyLCAwLjAwODMzMywgMC4wMDgzMzIsIDAuMDA4MzMiLCBcCi0gICAgICAgICAgIjAuMDA4MTA1LCAwLjAwODI3OSwgMC4wMDgzMDgsIDAuMDA4MzE3LCAwLjAwODMyNSwgMC4wMDgzMjksIDAuMDA4MzMzIiwgXAotICAgICAgICAgICIwLjAwODEwNCwgMC4wMDgyNzQsIDAuMDA4MzA0LCAwLjAwODMxMSwgMC4wMDgzMjMsIDAuMDA4MzI0LCAwLjAwODMyOCIsIFwKLSAgICAgICAgICAiMC4wMDgxMDUsIDAuMDA4Mjc0LCAwLjAwODMwMiwgMC4wMDgzMTEsIDAuMDA4MzEsIDAuMDA4MzIyLCAwLjAwODMyNiIsIFwKLSAgICAgICAgICAiMC4wMDgxMDYsIDAuMDA4MjcyLCAwLjAwODMsIDAuMDA4MzA5LCAwLjAwODMyNCwgMC4wMDgzMiwgMC4wMDgzMjMiLCBcCi0gICAgICAgICAgIjAuMDA4MDk2LCAwLjAwODI2NSwgMC4wMDgyODcsIDAuMDA4MzAyLCAwLjAwODMxLCAwLjAwODMwMSwgMC4wMDgzMDYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNzI4OCwgMC4wMDc1MjQsIDAuMDA3NTY4LCAwLjAwNzU4MywgMC4wMDc1OTUsIDAuMDA3NjAyLCAwLjAwNzYwNyIsIFwKLSAgICAgICAgICAiMC4wMDcyOTEsIDAuMDA3NTE1LCAwLjAwNzU1OSwgMC4wMDc1NzMsIDAuMDA3NTg2LCAwLjAwNzU5MiwgMC4wMDc1OTgiLCBcCi0gICAgICAgICAgIjAuMDA3Mjc5LCAwLjAwNzUwNywgMC4wMDc1NTIsIDAuMDA3NTY2LCAwLjAwNzU3OSwgMC4wMDc1ODYsIDAuMDA3NTkyIiwgXAotICAgICAgICAgICIwLjAwNzI2NywgMC4wMDc1MDMsIDAuMDA3NTQ4LCAwLjAwNzU2MiwgMC4wMDc1NzQsIDAuMDA3NTgxLCAwLjAwNzU4NyIsIFwKLSAgICAgICAgICAiMC4wMDcyNjcsIDAuMDA3NSwgMC4wMDc1NDQsIDAuMDA3NTU4LCAwLjAwNzU3MSwgMC4wMDc1NzcsIDAuMDA3NTgzIiwgXAotICAgICAgICAgICIwLjAwNzI2LCAwLjAwNzQ5NiwgMC4wMDc1NCwgMC4wMDc1NTQsIDAuMDA3NTY2LCAwLjAwNzU3MywgMC4wMDc1NzkiLCBcCi0gICAgICAgICAgIjAuMDA3MjU2LCAwLjAwNzQ5MywgMC4wMDc1MzYsIDAuMDA3NTUxLCAwLjAwNzU2MywgMC4wMDc1NjksIDAuMDA3NTc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDgyODQsIDAuMDA4NDU4LCAwLjAwODQ4NywgMC4wMDg0OTYsIDAuMDA4NTA2LCAwLjAwODUxMSwgMC4wMDg1MDgiLCBcCi0gICAgICAgICAgIjAuMDA4MjgyLCAwLjAwODQ1MywgMC4wMDg0ODUsIDAuMDA4NDk3LCAwLjAwODQ5OSwgMC4wMDg1MDMsIDAuMDA4NTA3IiwgXAotICAgICAgICAgICIwLjAwODI3NywgMC4wMDg0NSwgMC4wMDg0ODEsIDAuMDA4NDg4LCAwLjAwODQ5OSwgMC4wMDg1LCAwLjAwODUwNCIsIFwKLSAgICAgICAgICAiMC4wMDgyNzMsIDAuMDA4NDQ4LCAwLjAwODQ3NCwgMC4wMDg0ODMsIDAuMDA4NDk0LCAwLjAwODQ5OSwgMC4wMDg1MDEiLCBcCi0gICAgICAgICAgIjAuMDA4MjY5LCAwLjAwODQ0NCwgMC4wMDg0NzMsIDAuMDA4NDgzLCAwLjAwODQ5LCAwLjAwODQ5NiwgMC4wMDg0OTkiLCBcCi0gICAgICAgICAgIjAuMDA4MjY3LCAwLjAwODQ0MSwgMC4wMDg0NywgMC4wMDg0NzksIDAuMDA4NDg4LCAwLjAwODQ5MywgMC4wMDg0OTQiLCBcCi0gICAgICAgICAgIjAuMDA4MjcxLCAwLjAwODQzOCwgMC4wMDg0NjcsIDAuMDA4NDc2LCAwLjAwODQ4MywgMC4wMDg0NzUsIDAuMDA4NDkxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDcxNTYsIDAuMDA3MzkxLCAwLjAwNzQzNSwgMC4wMDc0NDksIDAuMDA3NDYyLCAwLjAwNzQ2OCwgMC4wMDc0NzUiLCBcCi0gICAgICAgICAgIjAuMDA3MTQ3LCAwLjAwNzM4MSwgMC4wMDc0MjUsIDAuMDA3NDM5LCAwLjAwNzQ1MiwgMC4wMDc0NTksIDAuMDA3NDY0IiwgXAotICAgICAgICAgICIwLjAwNzEzOSwgMC4wMDczNzUsIDAuMDA3NDE5LCAwLjAwNzQzMywgMC4wMDc0NDYsIDAuMDA3NDUzLCAwLjAwNzQ1OCIsIFwKLSAgICAgICAgICAiMC4wMDcxMzQsIDAuMDA3MzcsIDAuMDA3NDE1LCAwLjAwNzQyOSwgMC4wMDc0NDIsIDAuMDA3NDQ4LCAwLjAwNzQ1NCIsIFwKLSAgICAgICAgICAiMC4wMDcxMzIsIDAuMDA3MzY3LCAwLjAwNzQxMSwgMC4wMDc0MjUsIDAuMDA3NDM4LCAwLjAwNzQ0NCwgMC4wMDc0NSIsIFwKLSAgICAgICAgICAiMC4wMDcxMjgsIDAuMDA3MzYzLCAwLjAwNzQwNywgMC4wMDc0MjEsIDAuMDA3NDMzLCAwLjAwNzQ0LCAwLjAwNzQ0NSIsIFwKLSAgICAgICAgICAiMC4wMDcxMzksIDAuMDA3MzYyLCAwLjAwNzQwNSwgMC4wMDc0MTgsIDAuMDA3NDMsIDAuMDA3NDM3LCAwLjAwNzQ0MiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlMwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwODA2MSwgMC4wMDgyMzUsIDAuMDA4MjY0LCAwLjAwODI3MywgMC4wMDgyODEsIDAuMDA4Mjg4LCAwLjAwODI4OCIsIFwKLSAgICAgICAgICAiMC4wMDgwNTEsIDAuMDA4MjI2LCAwLjAwODI1NSwgMC4wMDgyNjMsIDAuMDA4MjczLCAwLjAwODI3NiwgMC4wMDgyOCIsIFwKLSAgICAgICAgICAiMC4wMDgwNTUsIDAuMDA4MjE4LCAwLjAwODI0NSwgMC4wMDgyNiwgMC4wMDgyNzgsIDAuMDA4MjYyLCAwLjAwODI3NiIsIFwKLSAgICAgICAgICAiMC4wMDgwNDYsIDAuMDA4MjE4LCAwLjAwODI0NywgMC4wMDgyNTYsIDAuMDA4MjY3LCAwLjAwODI3MiwgMC4wMDgyNzIiLCBcCi0gICAgICAgICAgIjAuMDA4MDQxLCAwLjAwODIxNiwgMC4wMDgyNDUsIDAuMDA4MjU0LCAwLjAwODI2MiwgMC4wMDgyNjksIDAuMDA4MjY1IiwgXAotICAgICAgICAgICIwLjAwODA0OCwgMC4wMDgyMTYsIDAuMDA4MjQ1LCAwLjAwODI1MywgMC4wMDgyNjEsIDAuMDA4MjUyLCAwLjAwODI1OCIsIFwKLSAgICAgICAgICAiMC4wMDgwNDIsIDAuMDA4MjE0LCAwLjAwODI0MywgMC4wMDgyNTIsIDAuMDA4MjYsIDAuMDA4MjY0LCAwLjAwODI2OCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA4OCwgMC4wMDkwMzcsIDAuMDA5MDgxLCAwLjAwOTA5NSwgMC4wMDkxMDgsIDAuMDA5MTE0LCAwLjAwOTEyIiwgXAotICAgICAgICAgICIwLjAwODgwMSwgMC4wMDkwMzUsIDAuMDA5MDc5LCAwLjAwOTA5MywgMC4wMDkxMDYsIDAuMDA5MTEyLCAwLjAwOTExOCIsIFwKLSAgICAgICAgICAiMC4wMDg4MDQsIDAuMDA5MDMyLCAwLjAwOTA3NywgMC4wMDkwOTEsIDAuMDA5MTAzLCAwLjAwOTExLCAwLjAwOTExNiIsIFwKLSAgICAgICAgICAiMC4wMDg4MDQsIDAuMDA5MDMxLCAwLjAwOTA3NSwgMC4wMDkwODksIDAuMDA5MTAxLCAwLjAwOTEwOCwgMC4wMDkxMTQiLCBcCi0gICAgICAgICAgIjAuMDA4OCwgMC4wMDkwMjgsIDAuMDA5MDcyLCAwLjAwOTA4NiwgMC4wMDkwOTksIDAuMDA5MTA2LCAwLjAwOTExMSIsIFwKLSAgICAgICAgICAiMC4wMDg3OTYsIDAuMDA5MDI0LCAwLjAwOTA2OSwgMC4wMDkwODQsIDAuMDA5MDk2LCAwLjAwOTEwMywgMC4wMDkxMDkiLCBcCi0gICAgICAgICAgIjAuMDA4Nzg5LCAwLjAwOTAyNiwgMC4wMDkwNywgMC4wMDkwODQsIDAuMDA5MDk2LCAwLjAwOTEwMywgMC4wMDkxMDgiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IE1YSTJYTCAqCi0gKiAtLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKE1YSTJYTCkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjA2NTg1ODE7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDU3NjQzNjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA1NzQ0NzI7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNTc2NDM2OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDE1MywgMC4wMDAxNTcsIDAuMDAwMTU4LCAwLjAwMDE1OCwgMC4wMDAxNTksIDAuMDAwMTU5LCAwLjAwMDE1OSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDE2OCwgMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjAxNjM2OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYwMDEyNDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2MDE2MzY7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMTU5LCAwLjAwMDE2LCAwLjAwMDE2MSwgMC4wMDAxNjEsIDAuMDAwMTYyLCAwLjAwMDE2MiwgMC4wMDAxNjIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxNjksIDAuMDAwMTY3LCAwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiwgMC4wMDAxNjYiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFMwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDExOTM4OTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDExOTM3NzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDExOTM4OTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxOCwgMC4wMDAxNjIsIDAuMDAwMTUyLCAwLjAwMDE0OCwgMC4wMDAxNDYsIDAuMDAwMTQ1LCAwLjAwMDE0NiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTY2MiwgMC4wMDE2NSwgMC4wMDE2NDIsIDAuMDAxNjQsIDAuMDAxNjM4LCAwLjAwMTYzNSwgMC4wMDE2MzYiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4wMzY1ODczOwotICAgIGZ1bmN0aW9uIDogIighKChTMCBCKSArICghUzAgQSkpKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjk5NDM1LCAwLjM1MTA4MiwgMC44MTU5MjEsIDEuNTkwNTEsIDIuMzY0NDIsIDQuMTcwNTQsIDUuMjAyMTQiLCBcCi0gICAgICAgICAgIjAuMzEwOTk5LCAwLjM2MjY1NSwgMC44MjczODMsIDEuNjAyMTMsIDIuMzc2NjMsIDQuMTgyMjQsIDUuMjEzOTMiLCBcCi0gICAgICAgICAgIjAuMzI0MTg3LCAwLjM3NTgxNSwgMC44NDA2MDMsIDEuNjE1NjgsIDIuMzg5NzgsIDQuMTk1NDksIDUuMjI3MDgiLCBcCi0gICAgICAgICAgIjAuMzM2NzcyLCAwLjM4ODQ2NCwgMC44NTM1OCwgMS42Mjc5NywgMi40MDMxMywgNC4yMDgxOCwgNS4yMzk2IiwgXAotICAgICAgICAgICIwLjM0OTE5LCAwLjQwMDg2NSwgMC44NjU2MjUsIDEuNjQwMjMsIDIuNDE1MjEsIDQuMjIwNTgsIDUuMjUyMTMiLCBcCi0gICAgICAgICAgIjAuMzY4NDM1LCAwLjQyMDcwNywgMC44ODU3NjYsIDEuNjYwODMsIDIuNDM1MzIsIDQuMjQwNjQsIDUuMjcyIiwgXAotICAgICAgICAgICIwLjM4NjIyMywgMC40Mzc5NzIsIDAuOTAyNzc4LCAxLjY3ODAyLCAyLjQ1Mjc0LCA0LjI1Nzg2LCA1LjI4OTMzIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjU1ODM4NSwgMC42NTkwMTMsIDEuNTY3NTIsIDMuMDc5NTcsIDQuNTkzMDMsIDguMTIxMTIsIDEwLjEzNDYiLCBcCi0gICAgICAgICAgIjAuNTU4Mzg0LCAwLjY1OTg3MiwgMS41Njc0NywgMy4wNzg4LCA0LjU5MTE0LCA4LjEyMTgxLCAxMC4xMzM3IiwgXAotICAgICAgICAgICIwLjU1ODM3OSwgMC42NTkwMTQsIDEuNTY2MzEsIDMuMDc4NzksIDQuNTkxMDUsIDguMTIyMDEsIDEwLjEzMzgiLCBcCi0gICAgICAgICAgIjAuNTU4NDkzLCAwLjY1OTc0NiwgMS41NjY1OCwgMy4wNzg4NSwgNC41OTEyOSwgOC4xMjIwMywgMTAuMTMzNCIsIFwKLSAgICAgICAgICAiMC41NTgzNjcsIDAuNjU5MjI1LCAxLjU2NjIxLCAzLjA3OTYyLCA0LjU5MTA3LCA4LjEyMTkyLCAxMC4xMzM1IiwgXAotICAgICAgICAgICIwLjU1ODgxNCwgMC42NTk3MjcsIDEuNTY2NjQsIDMuMDc4ODgsIDQuNTkyNjcsIDguMTIwNDcsIDEwLjEzMzkiLCBcCi0gICAgICAgICAgIjAuNTU5NjIxLCAwLjY1OTU3NywgMS41Njc0LCAzLjA3ODg0LCA0LjU5MTUyLCA4LjEyMTk5LCAxMC4xMzM0Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjM0NjY4LCAwLjQwNTc1LCAwLjkzNjk1OSwgMS44MjI2NywgMi43MDcwMSwgNC43NjkxNSwgNS45NDgwMyIsIFwKLSAgICAgICAgICAiMC4zNTg0MjIsIDAuNDE3NSwgMC45NDg4OSwgMS44MzM5NSwgMi43MTg5MiwgNC43ODExNywgNS45NTk3NyIsIFwKLSAgICAgICAgICAiMC4zNzIzOTEsIDAuNDMxMzgxLCAwLjk2MzAzMiwgMS44NDc4NywgMi43MzI2MSwgNC43OTUxMywgNS45NzM4OCIsIFwKLSAgICAgICAgICAiMC4zODYxOTQsIDAuNDQ1MjEsIDAuOTc2OTU0LCAxLjg2MTY5LCAyLjc0NjQ4LCA0LjgwODk5LCA1Ljk4NzczIiwgXAotICAgICAgICAgICIwLjM5OTk0NCwgMC40NTkxMiwgMC45OTA1MTgsIDEuODc1OTksIDIuNzYwMTgsIDQuODIyNzYsIDYuMDAxNTYiLCBcCi0gICAgICAgICAgIjAuNDIyMDg5LCAwLjQ4MTIwNywgMS4wMTI4MiwgMS44OTc2NiwgMi43ODIxNywgNC44NDQ5NywgNi4wMjM4IiwgXAotICAgICAgICAgICIwLjQ0MDI2NiwgMC41MDA0NTQsIDEuMDMxOCwgMS45MTc1NSwgMi44MDIsIDQuODY0NTIsIDYuMDQyOTkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuNjI1MDQxLCAwLjczNzQ4OCwgMS43NDg1NSwgMy40MzM2OSwgNS4xMTk4NCwgOS4wNDE1LCAxMS4yODA1IiwgXAotICAgICAgICAgICIwLjYyNTE2OCwgMC43Mzc0OTIsIDEuNzQ4MzMsIDMuNDMzMTUsIDUuMTE3OTIsIDkuMDQyMjYsIDExLjI4MTMiLCBcCi0gICAgICAgICAgIjAuNjI1MTEzLCAwLjczNzI0NSwgMS43NDgxNywgMy40MzMxNCwgNS4xMTcxOSwgOS4wNDI0NywgMTEuMjgxMiIsIFwKLSAgICAgICAgICAiMC42MjQ4NzgsIDAuNzM3MjksIDEuNzQ4NTEsIDMuNDMzMTIsIDUuMTE3MjUsIDkuMDQyNDksIDExLjI4MTIiLCBcCi0gICAgICAgICAgIjAuNjI0OTUyLCAwLjczNzE0LCAxLjc0ODU4LCAzLjQzMzQ1LCA1LjExNzg5LCA5LjA0MjMsIDExLjI4MDYiLCBcCi0gICAgICAgICAgIjAuNjI1MTE2LCAwLjczNzI3MywgMS43NDg4MSwgMy40MzY0NiwgNS4xMTcwNCwgOS4wNDEzMywgMTEuMjgxMiIsIFwKLSAgICAgICAgICAiMC42MjUwNzMsIDAuNzM3MjA1LCAxLjc0Nzg4LCAzLjQzMzUsIDUuMTE3NTEsIDkuMDQyNjUsIDExLjI4MTIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjk5NDk5LCAwLjM1MTI4MiwgMC44MTYxMzgsIDEuNTkwOTEsIDIuMzY1NTMsIDQuMTcxMDMsIDUuMjAyNDMiLCBcCi0gICAgICAgICAgIjAuMzExMDksIDAuMzYyNzgsIDAuODI3NDUsIDEuNjAyMjYsIDIuMzc3MzYsIDQuMTgyNTIsIDUuMjEzOTEiLCBcCi0gICAgICAgICAgIjAuMzI0MDQ5LCAwLjM3NTc3LCAwLjg0MDU5NiwgMS42MTUzOCwgMi4zODk2NSwgNC4xOTUyNiwgNS4yMjY4OCIsIFwKLSAgICAgICAgICAiMC4zMzY1MjYsIDAuMzg4MjA5LCAwLjg1MjkyOCwgMS42Mjc3MywgMi40MDI5MiwgNC4yMDc5OCwgNS4yMzk0NCIsIFwKLSAgICAgICAgICAiMC4zNDg4NSwgMC40MDA1MTEsIDAuODY1MjQsIDEuNjQwMTgsIDIuNDE1MDYsIDQuMjIwMzMsIDUuMjUxODQiLCBcCi0gICAgICAgICAgIjAuMzY4MDgyLCAwLjQyMDM1MSwgMC44ODUzOTQsIDEuNjYwNDMsIDIuNDM0OTksIDQuMjQwMzQsIDUuMjcxNzQiLCBcCi0gICAgICAgICAgIjAuMzg1OTQzLCAwLjQzNzcsIDAuOTAyODAyLCAxLjY3NzE4LCAyLjQ1MTQxLCA0LjI1NzUyLCA1LjI4OTE3Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjU1ODc4MiwgMC42NTkyMTgsIDEuNTY3NTcsIDMuMDc5MzMsIDQuNTkzNTQsIDguMTIwNDYsIDEwLjEzMzciLCBcCi0gICAgICAgICAgIjAuNTU4Mzc1LCAwLjY1OTc0NSwgMS41NjYzNSwgMy4wNzg4NSwgNC41OTE5OCwgOC4xMjIyMSwgMTAuMTMzNSIsIFwKLSAgICAgICAgICAiMC41NTgzNzksIDAuNjU5MTM2LCAxLjU2NjY1LCAzLjA3OTUyLCA0LjU5MTQ3LCA4LjEyMTgxLCAxMC4xMzM1IiwgXAotICAgICAgICAgICIwLjU1ODM0MiwgMC42NTk4NjgsIDEuNTY2MzQsIDMuMDc4ODUsIDQuNTkxNzQsIDguMTIyMTQsIDEwLjEzMzYiLCBcCi0gICAgICAgICAgIjAuNTU4Mzc2LCAwLjY1OTIyMSwgMS41Njc0LCAzLjA3OTY3LCA0LjU5MTU2LCA4LjEyMjExLCAxMC4xMzM3IiwgXAotICAgICAgICAgICIwLjU1ODk1LCAwLjY1OTI5LCAxLjU2NjY3LCAzLjA3ODk5LCA0LjU5MzAyLCA4LjExOTUsIDEwLjEzMzkiLCBcCi0gICAgICAgICAgIjAuNTU5NjcyLCAwLjY2MDEwNSwgMS41NjY2OSwgMy4wNzkxMiwgNC41OTUsIDguMTIxNzUsIDEwLjEzNDciKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzQ0OTQyLCAwLjQwNDA5LCAwLjkzNTI5OCwgMS44MTk3MiwgMi43MDU1NCwgNC43Njc4LCA1Ljk0NjUxIiwgXAotICAgICAgICAgICIwLjM1NjU5NywgMC40MTU3ODcsIDAuOTQ3MDU3LCAxLjgzMjA1LCAyLjcxNzAxLCA0Ljc3OTUzLCA1Ljk1ODI4IiwgXAotICAgICAgICAgICIwLjM3MDU1OSwgMC40Mjk3MTcsIDAuOTYxMzk2LCAxLjg0NjQzLCAyLjczMTA4LCA0Ljc5MzYsIDUuOTcyMzEiLCBcCi0gICAgICAgICAgIjAuMzg0NDc5LCAwLjQ0MzU3OSwgMC45NzUwMTQsIDEuODYwNzgsIDIuNzQ0NTksIDQuODA3NjQsIDUuOTg2MDQiLCBcCi0gICAgICAgICAgIjAuMzk4MjQ5LCAwLjQ1NzMzMiwgMC45ODkzMjQsIDEuODczOTcsIDIuNzU5MSwgNC44MjE0NywgNi4wMDAyMSIsIFwKLSAgICAgICAgICAiMC40MjA0NzcsIDAuNDc5NTYxLCAxLjAxMTA4LCAxLjg5NjAxLCAyLjc4MDkyLCA0Ljg0MzU5LCA2LjAyMjM1IiwgXAotICAgICAgICAgICIwLjQzOTQ2NCwgMC40OTg2NzksIDEuMDMwMDMsIDEuOTE1MDgsIDIuODAwNDEsIDQuODYyOTIsIDYuMDQxMzYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuNjIzNzg3LCAwLjczNjE0OSwgMS43NDcwNywgMy40MzE1OSwgNS4xMTY5NiwgOS4wNDE4OSwgMTEuMjgwNSIsIFwKLSAgICAgICAgICAiMC42MjM3NzgsIDAuNzM2MzI3LCAxLjc0NzA0LCAzLjQzMTg5LCA1LjExOTA3LCA5LjA0MTg0LCAxMS4yODA1IiwgXAotICAgICAgICAgICIwLjYyMzkxNSwgMC43MzU5NzUsIDEuNzQ3MzYsIDMuNDMyNTgsIDUuMTE2NzQsIDkuMDM5NjgsIDExLjI3OTYiLCBcCi0gICAgICAgICAgIjAuNjIzNjUsIDAuNzM2MzIsIDEuNzQ3NTYsIDMuNDMyMzUsIDUuMTE2NzcsIDkuMDQxNDUsIDExLjI4MDIiLCBcCi0gICAgICAgICAgIjAuNjIzODk4LCAwLjczNjIzNSwgMS43NDc0MywgMy40MzE5NiwgNS4xMTc2NSwgOS4wNDE4MiwgMTEuMjgwNCIsIFwKLSAgICAgICAgICAiMC42MjM4NjYsIDAuNzM2MDYzLCAxLjc0NzQ2LCAzLjQzNTM4LCA1LjExNjE3LCA5LjAzOTg3LCAxMS4yNzk0IiwgXAotICAgICAgICAgICIwLjYyMzkwNiwgMC43MzYxNiwgMS43NDgzMywgMy40MzUzMSwgNS4xMjA1LCA5LjAzOTg5LCAxMS4yODAyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlMwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMjQ1NzUsIDAuMzc2MTUsIDAuODQwNzc2LCAxLjYxNTc3LCAyLjM4OTcyLCA0LjE5NTQ1LCA1LjIyNjgiLCBcCi0gICAgICAgICAgIjAuMzM2NjM0LCAwLjM4ODIyMywgMC44NTI2ODYsIDEuNjI3NDcsIDIuNDAxMzIsIDQuMjA3MzMsIDUuMjM4NzkiLCBcCi0gICAgICAgICAgIjAuMzUyMDgxLCAwLjQwMzU5MywgMC44NjgwNDgsIDEuNjQyOTgsIDIuNDE3MTUsIDQuMjIyNjgsIDUuMjU0MDQiLCBcCi0gICAgICAgICAgIjAuMzY2OTI0LCAwLjQxODQ4NCwgMC44ODI3OTgsIDEuNjU3NDMsIDIuNDMyMiwgNC4yMzc0MSwgNS4yNjg3OCIsIFwKLSAgICAgICAgICAiMC4zODIxNCwgMC40MzM2ODgsIDAuODk4MDAxLCAxLjY3MjUsIDIuNDQ3NTYsIDQuMjUyNTMsIDUuMjgzOTQiLCBcCi0gICAgICAgICAgIjAuNDA0MTMsIDAuNDU1NjYzLCAwLjkxOTk1OCwgMS42OTQzNSwgMi40NjkxNCwgNC4yNzQzMiwgNS4zMDU4OCIsIFwKLSAgICAgICAgICAiMC40MjE3NjUsIDAuNDczMzcsIDAuOTM3ODgsIDEuNzExODUsIDIuNDg2MDgsIDQuMjkxNjEsIDUuMzIzMzIiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuNTU4MjYzLCAwLjY1OTc5NCwgMS41NjY2NCwgMy4wNzkxLCA0LjU5Mjk2LCA4LjEyMjI0LCAxMC4xMzM0IiwgXAotICAgICAgICAgICIwLjU1ODM5MywgMC42NTk4ODIsIDEuNTY2NjksIDMuMDc4NjQsIDQuNTkyMDgsIDguMTE4NjMsIDEwLjEzMzciLCBcCi0gICAgICAgICAgIjAuNTU4Mzc4LCAwLjY1OTE5NCwgMS41NjY3LCAzLjA3OTIyLCA0LjU5MjY0LCA4LjEyMDM1LCAxMC4xMzQzIiwgXAotICAgICAgICAgICIwLjU1ODM2NywgMC42NTk4MjYsIDEuNTY2NzEsIDMuMDc4ODksIDQuNTkyOTQsIDguMTIyMjcsIDEwLjEzMzQiLCBcCi0gICAgICAgICAgIjAuNTU4Mzg2LCAwLjY1OTcxNCwgMS41Njc1NCwgMy4wNzg4MSwgNC41OTI5NywgOC4xMjIyNiwgMTAuMTMzNyIsIFwKLSAgICAgICAgICAiMC41NTgzMzEsIDAuNjU5MjI0LCAxLjU2NzU0LCAzLjA3ODg2LCA0LjU5MTUyLCA4LjEyMjA2LCAxMC4xMzM3IiwgXAotICAgICAgICAgICIwLjU1ODM2NCwgMC42NTkxODcsIDEuNTY3MDgsIDMuMDgwNiwgNC41OTI5OCwgOC4xMTk2MiwgMTAuMTM0NyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zNjU5MDksIDAuNDI0OTEsIDAuOTU2MTg5LCAxLjg0MDQ2LCAyLjcyNTgyLCA0Ljc4ODE5LCA1Ljk2NjU2IiwgXAotICAgICAgICAgICIwLjM3Nzc0OSwgMC40MzY3NDIsIDAuOTY3NDMzLCAxLjg1MjI0LCAyLjczNzM3LCA0Ljc5OTc5LCA1Ljk3ODMzIiwgXAotICAgICAgICAgICIwLjM5MjgxMywgMC40NTE3OTQsIDAuOTgyOTk3LCAxLjg2NzEzLCAyLjc1MjM1LCA0LjgxNDY0LCA1Ljk5MzA0IiwgXAotICAgICAgICAgICIwLjQwNzE5OCwgMC40NjYxMjUsIDAuOTk3MjM1LCAxLjg4MTI1LCAyLjc2NjYyLCA0LjgyODkyLCA2LjAwNzMiLCBcCi0gICAgICAgICAgIjAuNDIwNzg0LCAwLjQ3OTYzNywgMS4wMTAyOSwgMS44OTUyOSwgMi43Nzk3MywgNC44NDIzMiwgNi4wMjA5MyIsIFwKLSAgICAgICAgICAiMC40Mzk5OTYsIDAuNDk4OTY5LCAxLjAyOTM0LCAxLjkxNDY5LCAyLjc5ODkxLCA0Ljg2MTM3LCA2LjAzOTk2IiwgXAotICAgICAgICAgICIwLjQ1NDg5NSwgMC41MTM4NTksIDEuMDQ0MjUsIDEuOTI5ODIsIDIuODEzNjcsIDQuODc2MTcsIDYuMDU0NzkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuNjI0OTM5LCAwLjczNzQ4MywgMS43NDgzMywgMy40MzI5NywgNS4xMTY5OSwgOS4wNDE2MywgMTEuMjgxMSIsIFwKLSAgICAgICAgICAiMC42MjQ5NTMsIDAuNzM3NTI5LCAxLjc0NzY3LCAzLjQzMTg4LCA1LjExOTY3LCA5LjA0MDkxLCAxMS4yODA3IiwgXAotICAgICAgICAgICIwLjYyNDg2MiwgMC43Mzc0MzQsIDEuNzQ4NjcsIDMuNDM1NzYsIDUuMTIyNCwgOS4wNDI1NCwgMTEuMjgxNCIsIFwKLSAgICAgICAgICAiMC42MjQ5MjUsIDAuNzM3Mjk5LCAxLjc0ODUzLCAzLjQzMjMxLCA1LjExNzg5LCA5LjA0MTI4LCAxMS4yODEiLCBcCi0gICAgICAgICAgIjAuNjI0OTU5LCAwLjczNjk3MiwgMS43NDc3NCwgMy40MzMyNSwgNS4xMTc2MywgOS4wNDE5LCAxMS4yODA5IiwgXAotICAgICAgICAgICIwLjYyNDgzLCAwLjczNzM5LCAxLjc0NzgsIDMuNDMzMzksIDUuMTE3ODEsIDkuMDQwNjgsIDExLjI4MDUiLCBcCi0gICAgICAgICAgIjAuNjI0OTc3LCAwLjczNzM0NywgMS43NDc4MiwgMy40MzMzOCwgNS4xMTc0MiwgOS4wNDIxOSwgMTEuMjgwOSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjg3MjQzLCAwLjMzODk2MSwgMC44MDM4ODksIDEuNTc4OTgsIDIuMzUzMTIsIDQuMTU4NDgsIDUuMTkwMDgiLCBcCi0gICAgICAgICAgIjAuMjk3ODA1LCAwLjM0OTUyNywgMC44MTQyOTUsIDEuNTg5MzksIDIuMzYzOTYsIDQuMTY5MTYsIDUuMjAwNzYiLCBcCi0gICAgICAgICAgIjAuMzExMDgyLCAwLjM2Mjc4OCwgMC44Mjc5MDYsIDEuNjAyMiwgMi4zNzY0LCA0LjE4MjU3LCA1LjIxNDAzIiwgXAotICAgICAgICAgICIwLjMyNDMwNCwgMC4zNzYwMTMsIDAuODQxMTg2LCAxLjYxNjIyLCAyLjM5MTAzLCA0LjE5NTkyLCA1LjIyNzQiLCBcCi0gICAgICAgICAgIjAuMzM3NTE2LCAwLjM4OTI2NiwgMC44NTQxMjUsIDEuNjI4NjUsIDIuNDAzNTYsIDQuMjA5MTksIDUuMjQwNzMiLCBcCi0gICAgICAgICAgIjAuMzU4NzA5LCAwLjQxMDQzNiwgMC44NzU0NjQsIDEuNjQ5OTMsIDIuNDI1MTIsIDQuMjMwMzQsIDUuMjYxOTIiLCBcCi0gICAgICAgICAgIjAuMzc3MzE3LCAwLjQyOTA0NywgMC44OTQwMDEsIDEuNjY4OCwgMi40NDM1OSwgNC4yNDg5NCwgNS4yODA1NCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC41NTgzMjEsIDAuNjU5MTA1LCAxLjU2NjM1LCAzLjA3ODg5LCA0LjU5MTEsIDguMTIxNjIsIDEwLjEzNDYiLCBcCi0gICAgICAgICAgIjAuNTU4Njg3LCAwLjY1OTA3NywgMS41NjYxNywgMy4wNzg2LCA0LjU5MTI3LCA4LjEyMTgsIDEwLjEzMzYiLCBcCi0gICAgICAgICAgIjAuNTU4MDg3LCAwLjY1OTA5NywgMS41NjY0MSwgMy4wNzg2NSwgNC41OTE1OCwgOC4xMjA1MiwgMTAuMTM0NiIsIFwKLSAgICAgICAgICAiMC41NTgxMDMsIDAuNjU5MjczLCAxLjU2NjU1LCAzLjA3ODg4LCA0LjU5MTM3LCA4LjEyMTg1LCAxMC4xMzQ2IiwgXAotICAgICAgICAgICIwLjU1Nzk4MiwgMC42NTkwODYsIDEuNTY3NCwgMy4wNzg4OSwgNC41OTExMywgOC4xMjE5MywgMTAuMTMzNyIsIFwKLSAgICAgICAgICAiMC41NTg4MTEsIDAuNjU5NjkyLCAxLjU2NjYxLCAzLjA3ODg3LCA0LjU5MTA1LCA4LjEyMTgyLCAxMC4xMzM1IiwgXAotICAgICAgICAgICIwLjU2MTgyNywgMC42NjAxNTIsIDEuNTY2MjEsIDMuMDc4ODIsIDQuNTkxMDQsIDguMTIxNzUsIDEwLjEzNDYiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzMyMjU3LCAwLjM5MTMyNSwgMC45MjI4ODYsIDEuODA3NDQsIDIuNjkyMSwgNC43NTUyNywgNS45MzQwNCIsIFwKLSAgICAgICAgICAiMC4zNDMxOTUsIDAuNDAyMzIxLCAwLjkzMzcxOCwgMS44MTk0MSwgMi43MDM4MSwgNC43NjY0NywgNS45NDUwNSIsIFwKLSAgICAgICAgICAiMC4zNTcxNDgsIDAuNDE2MjI1LCAwLjk0NzY0LCAxLjgzMjA1LCAyLjcxNzkxLCA0Ljc4MDQ5LCA1Ljk1ODk2IiwgXAotICAgICAgICAgICIwLjM3MDg0NSwgMC40Mjk5NjEsIDAuOTYxNjYsIDEuODQ2MzgsIDIuNzMxMDYsIDQuNzk0MTIsIDUuOTcyOTkiLCBcCi0gICAgICAgICAgIjAuMzg0NDEyLCAwLjQ0MzU2NywgMC45NzU1MDcsIDEuODYsIDIuNzQ1NDcsIDQuODA4MDksIDUuOTg2NjQiLCBcCi0gICAgICAgICAgIjAuNDA2Mjg4LCAwLjQ2NTQ5NiwgMC45OTczNjIsIDEuODgyMDksIDIuNzY2OTUsIDQuODI5NzUsIDYuMDA4NzIiLCBcCi0gICAgICAgICAgIjAuNDI1NTIyLCAwLjQ4NDY1OSwgMS4wMTYzLCAxLjkwMTM3LCAyLjc4NjQsIDQuODQ5MjQsIDYuMDI4MDciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuNjIzNzk3LCAwLjczNTk3OSwgMS43NDY3LCAzLjQzMTg5LCA1LjExNjQyLCA5LjA0MTQ0LCAxMS4yNzk5IiwgXAotICAgICAgICAgICIwLjYyMzYyOCwgMC43MzYwNDYsIDEuNzQ2NTMsIDMuNDMyNjIsIDUuMTE2NTgsIDkuMDQwMzgsIDExLjI4MDQiLCBcCi0gICAgICAgICAgIjAuNjIzNTksIDAuNzM1OTE5LCAxLjc0NjYzLCAzLjQzMDg5LCA1LjExOTA4LCA5LjAzOTk5LCAxMS4yODAzIiwgXAotICAgICAgICAgICIwLjYyMzM0OCwgMC43MzU5MzEsIDEuNzQ2OTksIDMuNDMxNzgsIDUuMTE3MTUsIDkuMDQxMzQsIDExLjI4MDQiLCBcCi0gICAgICAgICAgIjAuNjIzMzQ0LCAwLjczNTk2NCwgMS43NDY5OCwgMy40MzE2MSwgNS4xMTY4NywgOS4wNDA2NywgMTEuMjgiLCBcCi0gICAgICAgICAgIjAuNjIzNDE4LCAwLjczNjEwNCwgMS43NDcxMiwgMy40MzE4LCA1LjExNjAzLCA5LjA0MDMzLCAxMS4yODA1IiwgXAotICAgICAgICAgICIwLjYyNDI0NywgMC43MzU5MTUsIDEuNzQ2NjIsIDMuNDMxNzksIDUuMTE2MjcsIDkuMDQwNzUsIDExLjI3OTgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDExOTMsIDAuMDAxMTkzLCAwLjAwMTE5MywgMC4wMDExOTMsIDAuMDAxMTkyLCAwLjAwMTE5MSwgMC4wMDExOSIsIFwKLSAgICAgICAgICAiMC4wMDExOSwgMC4wMDExOSwgMC4wMDExOSwgMC4wMDExOSwgMC4wMDExOSwgMC4wMDExODgsIDAuMDAxMTg3IiwgXAotICAgICAgICAgICIwLjAwMTE4OSwgMC4wMDExODksIDAuMDAxMTksIDAuMDAxMTksIDAuMDAxMTg5LCAwLjAwMTE4OCwgMC4wMDExODciLCBcCi0gICAgICAgICAgIjAuMDAxMTg4LCAwLjAwMTE4OSwgMC4wMDExODksIDAuMDAxMTksIDAuMDAxMTg4LCAwLjAwMTE4OCwgMC4wMDExODYiLCBcCi0gICAgICAgICAgIjAuMDAxMTg4LCAwLjAwMTE4OCwgMC4wMDExODksIDAuMDAxMTg5LCAwLjAwMTE4OSwgMC4wMDExODcsIDAuMDAxMTg2IiwgXAotICAgICAgICAgICIwLjAwMTE4NywgMC4wMDExODcsIDAuMDAxMTg5LCAwLjAwMTE4OSwgMC4wMDExODgsIDAuMDAxMTg3LCAwLjAwMTE4NiIsIFwKLSAgICAgICAgICAiMC4wMDExODYsIDAuMDAxMTg2LCAwLjAwMTE4OCwgMC4wMDExODgsIDAuMDAxMTg4LCAwLjAwMTE4NywgMC4wMDExODYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDA1MTIsIDAuMDAwNTEyLCAwLjAwMDUxMiwgMC4wMDA1MTEsIDAuMDAwNTExLCAwLjAwMDUxLCAwLjAwMDUwOSIsIFwKLSAgICAgICAgICAiMC4wMDA1MDUsIDAuMDAwNTA1LCAwLjAwMDUwNSwgMC4wMDA1MDYsIDAuMDAwNTA2LCAwLjAwMDUwMywgMC4wMDA1MDIiLCBcCi0gICAgICAgICAgIjAuMDAwNTAyLCAwLjAwMDUwMiwgMC4wMDA1MDMsIDAuMDAwNTAzLCAwLjAwMDUwMywgMC4wMDA1MDIsIDAuMDAwNTAxIiwgXAotICAgICAgICAgICIwLjAwMDUsIDAuMDAwNTAxLCAwLjAwMDUwMiwgMC4wMDA1MDIsIDAuMDAwNTAyLCAwLjAwMDUwMSwgMC4wMDA1MDEiLCBcCi0gICAgICAgICAgIjAuMDAwNDk5LCAwLjAwMDUsIDAuMDAwNTAyLCAwLjAwMDUwMiwgMC4wMDA1MDIsIDAuMDAwNTAxLCAwLjAwMDUiLCBcCi0gICAgICAgICAgIjAuMDAwNDk3LCAwLjAwMDQ5OCwgMC4wMDA1MDEsIDAuMDAwNTAyLCAwLjAwMDUwMiwgMC4wMDA1MDEsIDAuMDAwNSIsIFwKLSAgICAgICAgICAiMC4wMDA0OTUsIDAuMDAwNDk3LCAwLjAwMDUsIDAuMDAwNTAxLCAwLjAwMDUwMSwgMC4wMDA1LCAwLjAwMDUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDEyODgsIDAuMDAxMjg4LCAwLjAwMTI4NywgMC4wMDEyODcsIDAuMDAxMjg2LCAwLjAwMTI4NSwgMC4wMDEyODQiLCBcCi0gICAgICAgICAgIjAuMDAxMjg1LCAwLjAwMTI4NSwgMC4wMDEyODUsIDAuMDAxMjg0LCAwLjAwMTI4NCwgMC4wMDEyODMsIDAuMDAxMjgxIiwgXAotICAgICAgICAgICIwLjAwMTI4MywgMC4wMDEyODMsIDAuMDAxMjg0LCAwLjAwMTI4NCwgMC4wMDEyODMsIDAuMDAxMjgyLCAwLjAwMTI4MSIsIFwKLSAgICAgICAgICAiMC4wMDEyODMsIDAuMDAxMjgzLCAwLjAwMTI4MywgMC4wMDEyODMsIDAuMDAxMjg0LCAwLjAwMTI4MiwgMC4wMDEyODEiLCBcCi0gICAgICAgICAgIjAuMDAxMjgyLCAwLjAwMTI4MiwgMC4wMDEyODMsIDAuMDAxMjgzLCAwLjAwMTI4MywgMC4wMDEyODIsIDAuMDAxMjgxIiwgXAotICAgICAgICAgICIwLjAwMTI4LCAwLjAwMTI4MSwgMC4wMDEyODMsIDAuMDAxMjgzLCAwLjAwMTI4MywgMC4wMDEyODIsIDAuMDAxMjgxIiwgXAotICAgICAgICAgICIwLjAwMTI4LCAwLjAwMTI4MSwgMC4wMDEyODMsIDAuMDAxMjgzLCAwLjAwMTI4MiwgMC4wMDEyODIsIDAuMDAxMjgxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwMzgzLCAwLjAwMDM4MywgMC4wMDAzODEsIDAuMDAwMzgyLCAwLjAwMDM3NywgMC4wMDAzODEsIDAuMDAwMzgiLCBcCi0gICAgICAgICAgIjAuMDAwMzc2LCAwLjAwMDM3NiwgMC4wMDAzNzYsIDAuMDAwMzc2LCAwLjAwMDM3NSwgMC4wMDAzNzQsIDAuMDAwMzc0IiwgXAotICAgICAgICAgICIwLjAwMDM3MywgMC4wMDAzNzMsIDAuMDAwMzc0LCAwLjAwMDM3NCwgMC4wMDAzNzQsIDAuMDAwMzczLCAwLjAwMDM3MiIsIFwKLSAgICAgICAgICAiMC4wMDAzNzEsIDAuMDAwMzcyLCAwLjAwMDM3MywgMC4wMDAzNzMsIDAuMDAwMzczLCAwLjAwMDM3MiwgMC4wMDAzNzIiLCBcCi0gICAgICAgICAgIjAuMDAwMzcsIDAuMDAwMzcsIDAuMDAwMzczLCAwLjAwMDM3MywgMC4wMDAzNzMsIDAuMDAwMzcyLCAwLjAwMDM3MSIsIFwKLSAgICAgICAgICAiMC4wMDAzNjgsIDAuMDAwMzY5LCAwLjAwMDM3MiwgMC4wMDAzNzMsIDAuMDAwMzcyLCAwLjAwMDM3MiwgMC4wMDAzNzEiLCBcCi0gICAgICAgICAgIjAuMDAwMzY3LCAwLjAwMDM2OCwgMC4wMDAzNzEsIDAuMDAwMzcyLCAwLjAwMDM3MiwgMC4wMDAzNzEsIDAuMDAwMzcxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUzAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTA0OSwgMC4wMDEwNDcsIDAuMDAxMDQyLCAwLjAwMTA0LCAwLjAwMTAzOSwgMC4wMDEwMzYsIDAuMDAxMDM1IiwgXAotICAgICAgICAgICIwLjAwMTAzNiwgMC4wMDEwMzQsIDAuMDAxMDI2LCAwLjAwMTAyMSwgMC4wMDEwMjIsIDAuMDAxMDE5LCAwLjAwMTAxOCIsIFwKLSAgICAgICAgICAiMC4wMDEwMywgMC4wMDEwMjgsIDAuMDAxMDE5LCAwLjAwMTAxNCwgMC4wMDEwMTIsIDAuMDAxMDA3LCAwLjAwMTAwOCIsIFwKLSAgICAgICAgICAiMC4wMDEwMywgMC4wMDEwMjcsIDAuMDAxMDE2LCAwLjAwMTAxMSwgMC4wMDEwMDksIDAuMDAxMDA2LCAwLjAwMTAwNCIsIFwKLSAgICAgICAgICAiMC4wMDEwMywgMC4wMDEwMjcsIDAuMDAxMDE1LCAwLjAwMTAxLCAwLjAwMTAwNywgMC4wMDEwMDQsIDAuMDAxMDAzIiwgXAotICAgICAgICAgICIwLjAwMTAzMywgMC4wMDEwMywgMC4wMDEwMTcsIDAuMDAxMDExLCAwLjAwMTAwOCwgMC4wMDEwMDQsIDAuMDAxMDAzIiwgXAotICAgICAgICAgICIwLjAwMTAzNSwgMC4wMDEwMzMsIDAuMDAxMDE5LCAwLjAwMTAxMiwgMC4wMDEwMDksIDAuMDAxMDA1LCAwLjAwMTAwNCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjA2OSwgMC4wMDIwNjgsIDAuMDAyMDYxLCAwLjAwMjA1OSwgMC4wMDIwNTYsIDAuMDAyMDU2LCAwLjAwMjA1NSIsIFwKLSAgICAgICAgICAiMC4wMDIwNjMsIDAuMDAyMDYxLCAwLjAwMjA1MywgMC4wMDIwNDksIDAuMDAyMDQ3LCAwLjAwMjA0NSwgMC4wMDIwNDQiLCBcCi0gICAgICAgICAgIjAuMDAyMDYxLCAwLjAwMjA1OSwgMC4wMDIwNDgsIDAuMDAyMDQ0LCAwLjAwMjA0MiwgMC4wMDIwMzksIDAuMDAyMDM4IiwgXAotICAgICAgICAgICIwLjAwMjA2MiwgMC4wMDIwNTksIDAuMDAyMDQ3LCAwLjAwMjA0MywgMC4wMDIwNDIsIDAuMDAyMDM3LCAwLjAwMjAzNiIsIFwKLSAgICAgICAgICAiMC4wMDIwNjMsIDAuMDAyMDU5LCAwLjAwMjA0NiwgMC4wMDIwNDIsIDAuMDAyMDM4LCAwLjAwMjAzNSwgMC4wMDIwMzQiLCBcCi0gICAgICAgICAgIjAuMDAyMDY1LCAwLjAwMjA2MiwgMC4wMDIwNDgsIDAuMDAyMDQyLCAwLjAwMjAzOSwgMC4wMDIwMzUsIDAuMDAyMDM0IiwgXAotICAgICAgICAgICIwLjAwMjA2NywgMC4wMDIwNjQsIDAuMDAyMDUsIDAuMDAyMDQzLCAwLjAwMjAzOSwgMC4wMDIwMzUsIDAuMDAyMDM0Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBNWEkzWDEgKgotICogLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChNWEkzWDEpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4xODc5MDg7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDU4MTg2ODsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA1Nzk4ODM7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNTgxODY4OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDgzMiwgMC4wMDA4MjEsIDAuMDAwODE0LCAwLjAwMDgxLCAwLjAwMDgwNywgMC4wMDA4MDMsIDAuMDAwODAxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxNjcsIDAuMDAxNjY1LCAwLjAwMTY2MSwgMC4wMDE2NTksIDAuMDAxNjU3LCAwLjAwMTY1NiwgMC4wMDE2NTUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDU4MDE3MjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA1Nzg2MDY7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNTgwMTcyOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDE1OCwgMC4wMDAxNiwgMC4wMDAxNjEsIDAuMDAwMTYxLCAwLjAwMDE2MSwgMC4wMDAxNjIsIDAuMDAwMTYyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMTY3LCAwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY1LCAwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY2Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihDKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA1NjQwNjE7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNTYzNzU3OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDU2NDA2MTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyNzIsIDAuMDAwMjU1LCAwLjAwMDI0NSwgMC4wMDAyNCwgMC4wMDAyMzgsIDAuMDAwMjM3LCAwLjAwMDIzNyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTIyMiwgMC4wMDEyMDksIDAuMDAxMjAyLCAwLjAwMTE5OSwgMC4wMDExOTcsIDAuMDAxMTk1LCAwLjAwMTE5NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUzApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTE1NDM7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxMTUzNTI7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxMTU0MzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyMTIsIDAuMDAwMTk0LCAwLjAwMDE4NCwgMC4wMDAxOCwgMC4wMDAxNzgsIDAuMDAwMTc4LCAwLjAwMDE3OSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTU2MywgMC4wMDE1NSwgMC4wMDE1NDMsIDAuMDAxNTQsIDAuMDAxNTM4LCAwLjAwMTUzNywgMC4wMDE1MzciKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFMxKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDExNzE0NzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDExNzA5ODsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDExNzE0NzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAzMjYsIDAuMDAwMzA5LCAwLjAwMDI5OCwgMC4wMDAyOTQsIDAuMDAwMjkxLCAwLjAwMDI4OSwgMC4wMDAyOSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTc3NiwgMC4wMDE3NjQsIDAuMDAxNzU3LCAwLjAwMTc1MywgMC4wMDE3NTIsIDAuMDAxNzUsIDAuMDAxNzQ5Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMTIzNTg7Ci0gICAgZnVuY3Rpb24gOiAiKCEoKFMxIEMpICsgKCFTMSAoKFMwIEIpICsgKCFTMCBBKSkpKSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI5NjY4NywgMC4zNDA4MTEsIDAuNTg2MjU2LCAwLjgwMjM2MiwgMS4wOTAyOCwgMS42NjYwMSwgMi4wMjYwMiIsIFwKLSAgICAgICAgICAiMC4zMDgzMTQsIDAuMzUyMzkzLCAwLjU5NzgzMywgMC44MTM5NDMsIDEuMTAxODYsIDEuNjc3NTksIDIuMDM3NDkiLCBcCi0gICAgICAgICAgIjAuMzIxNjkyLCAwLjM2NTgxOSwgMC42MTEyOTgsIDAuODI3MzY5LCAxLjExNTI5LCAxLjY5MTAxLCAyLjA1MDc5IiwgXAotICAgICAgICAgICIwLjMzNDU1LCAwLjM3ODYyMiwgMC42MjQwNTQsIDAuODQwMTM0LCAxLjEyODA5LCAxLjcwMzgyLCAyLjA2MzY3IiwgXAotICAgICAgICAgICIwLjM0NjkzNCwgMC4zOTEwNzYsIDAuNjM2NTMzLCAwLjg1MjYyNSwgMS4xNDA1NSwgMS43MTYyNywgMi4wNzYwMiIsIFwKLSAgICAgICAgICAiMC4zNjY1MTEsIDAuNDEwNjA1LCAwLjY1NjAzMSwgMC44NzIxNCwgMS4xNjAwNywgMS43MzU4LCAyLjA5NTYyIiwgXAotICAgICAgICAgICIwLjM4MzAzOSwgMC40MjcxNywgMC42NzI2MTYsIDAuODg4NzE5LCAxLjE3NjY1LCAxLjc1MjM2LCAyLjExMjE0Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE3MTM3OSwgMC4yNTU1NzEsIDAuNzQ4MDI5LCAxLjE4NjgyLCAxLjc2OTUzLCAyLjkzOTIsIDMuNjY3MzIiLCBcCi0gICAgICAgICAgIjAuMTcxMzc3LCAwLjI1NTU3LCAwLjc0Nzk3OCwgMS4xODY4MywgMS43Njk1NCwgMi45MzkxOSwgMy42NzY1NCIsIFwKLSAgICAgICAgICAiMC4xNzEzODMsIDAuMjU1NTcsIDAuNzQ4MTY5LCAxLjE4NjgxLCAxLjc2OTQ4LCAyLjkzOTI2LCAzLjY3MDY2IiwgXAotICAgICAgICAgICIwLjE3MTM5MSwgMC4yNTU1NjcsIDAuNzQ3OTEzLCAxLjE4NjUsIDEuNzY5NTgsIDIuOTM5MjIsIDMuNjc2NyIsIFwKLSAgICAgICAgICAiMC4xNzEzNzgsIDAuMjU1NTQxLCAwLjc0NjkxNSwgMS4xODY4LCAxLjc2OTQ3LCAyLjkzOTI4LCAzLjY3NTg3IiwgXAotICAgICAgICAgICIwLjE3MTQwNCwgMC4yNTU1NjksIDAuNzQ3ODkzLCAxLjE4NDkxLCAxLjc2OTY0LCAyLjkzOTIxLCAzLjY3NjUiLCBcCi0gICAgICAgICAgIjAuMTcxNDIxLCAwLjI1NTU0MSwgMC43NDY3MDUsIDEuMTg2NzksIDEuNzY5NDcsIDIuOTM5MywgMy42NzYwMSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMDY0MzUsIDAuMzU2NjExLCAwLjYzNzIwNywgMC44ODQyNjcsIDEuMjEzNzIsIDEuODcyMzMsIDIuMjgzOSIsIFwKLSAgICAgICAgICAiMC4zMTgwNTMsIDAuMzY4MTk2LCAwLjY0ODgwNCwgMC44OTU4OTgsIDEuMjI1MjcsIDEuODgzODksIDIuMjk1NzQiLCBcCi0gICAgICAgICAgIjAuMzMxODMsIDAuMzgxOTY5LCAwLjY2MjU0MywgMC45MDk2OCwgMS4yMzkwNiwgMS44OTc4NywgMi4zMDkyOCIsIFwKLSAgICAgICAgICAiMC4zNDUzOTgsIDAuMzk1NTQxLCAwLjY3NjE1MywgMC45MjMyMzQsIDEuMjUyNjIsIDEuOTExMjMsIDIuMzIyOSIsIFwKLSAgICAgICAgICAiMC4zNTkwNjIsIDAuNDA5MjA0LCAwLjY4OTc4NiwgMC45MzY5MSwgMS4yNjYyOSwgMS45MjUwMSwgMi4zMzY1IiwgXAotICAgICAgICAgICIwLjM4MDczOCwgMC40MzA5MzEsIDAuNzExNDU3LCAwLjk1ODU5OSwgMS4yODc5OCwgMS45NDY3MywgMi4zNTgxOSIsIFwKLSAgICAgICAgICAiMC4zOTk2NTQsIDAuNDQ5ODIzLCAwLjczMDQ1NywgMC45Nzc1MDcsIDEuMzA2ODksIDEuOTY1NTcsIDIuMzc3MTEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTg4MDk5LCAwLjI4MzAwMywgMC44MzU3NSwgMS4zMjY4MSwgMS45ODA3NywgMy4yODM4LCA0LjEwODI4IiwgXAotICAgICAgICAgICIwLjE4ODE5NiwgMC4yODI5ODIsIDAuODM1NzAzLCAxLjMyNDY2LCAxLjk3OTg5LCAzLjI5MTYxLCA0LjEwMDkiLCBcCi0gICAgICAgICAgIjAuMTg4MTU1LCAwLjI4MjgyNywgMC44MzU5NDYsIDEuMzI2NDIsIDEuOTgwMTQsIDMuMjkwMjcsIDQuMTA3ODkiLCBcCi0gICAgICAgICAgIjAuMTg4MTY0LCAwLjI4Mjk0NCwgMC44MzU2NTksIDEuMzI0NDUsIDEuOTc5NjcsIDMuMjkwNjcsIDQuMTAxMzciLCBcCi0gICAgICAgICAgIjAuMTg4MTY1LCAwLjI4MzIzLCAwLjgzNDQ5NiwgMS4zMjYzNSwgMS45ODA3OCwgMy4yOTA3MiwgNC4xMDY3NiIsIFwKLSAgICAgICAgICAiMC4xODgwNTEsIDAuMjgyOTQ1LCAwLjgzNTgzOCwgMS4zMjYzMywgMS45Nzk5NSwgMy4yOTA0OSwgNC4xMDcyMSIsIFwKLSAgICAgICAgICAiMC4xODgwNTQsIDAuMjgyODY3LCAwLjgzMzM4NCwgMS4zMjYzNiwgMS45Nzk3MywgMy4yODYxNSwgNC4xMDgxNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yOTU4NiwgMC4zMzk5NzUsIDAuNTg1NDQ0LCAwLjgwMTUyNiwgMS4wODk0NSwgMS42NjUxNywgMi4wMjQ5NiIsIFwKLSAgICAgICAgICAiMC4zMDcyNDQsIDAuMzUxMzcxLCAwLjU5NjgyNiwgMC44MTI5MjEsIDEuMTAwODUsIDEuNjc2NTcsIDIuMDM2MzMiLCBcCi0gICAgICAgICAgIjAuMzIwMTkzLCAwLjM2NDI3NiwgMC42MDk3MDgsIDAuODI1NzkxLCAxLjExMzc0LCAxLjY4OTQ4LCAyLjA0OTMxIiwgXAotICAgICAgICAgICIwLjMzMjU5LCAwLjM3NjYxNywgMC42MjIwODksIDAuODM4MTc0LCAxLjEyNjEsIDEuNzAxOTgsIDIuMDYxNjIiLCBcCi0gICAgICAgICAgIjAuMzQ0ODQ1LCAwLjM4ODkzNiwgMC42MzQzNzMsIDAuODUwNDg2LCAxLjEzODQsIDEuNzE0MTMsIDIuMDc0IiwgXAotICAgICAgICAgICIwLjM2NDAyOSwgMC40MDgxMSwgMC42NTM1MzQsIDAuODY5NzA4LCAxLjE1NzU3LCAxLjczMzMxLCAyLjA5MzExIiwgXAotICAgICAgICAgICIwLjM4MDQyOCwgMC40MjQ1MzMsIDAuNjY5OTUsIDAuODg2MDY1LCAxLjE3Mzk5LCAxLjc0OTczLCAyLjEwOTQ5Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE3MTQwNywgMC4yNTU1NzUsIDAuNzQ4MTI3LCAxLjE4NjgzLCAxLjc2OTUyLCAyLjkzOTI1LCAzLjY3MDQ3IiwgXAotICAgICAgICAgICIwLjE3MTQyMSwgMC4yNTU1NDQsIDAuNzQ2OTIsIDEuMTg2OCwgMS43Njk0NiwgMi45MzkyOSwgMy42NzU5NyIsIFwKLSAgICAgICAgICAiMC4xNzEzODksIDAuMjU1NTcyLCAwLjc0NzkxMiwgMS4xODU5MywgMS43Njk1OSwgMi45MzkxOCwgMy42NzY1OSIsIFwKLSAgICAgICAgICAiMC4xNzE0NjUsIDAuMjU1NDM5LCAwLjc0NjgwMSwgMS4xODY3NiwgMS43Njk2NiwgMi45NDM5OSwgMy42NzAzNiIsIFwKLSAgICAgICAgICAiMC4xNzEzNzQsIDAuMjU1NTQxLCAwLjc0Nzk1MywgMS4xODY4MiwgMS43Njk1NiwgMi45MzkxOCwgMy42NzY2NyIsIFwKLSAgICAgICAgICAiMC4xNzE0MzUsIDAuMjU1NTczLCAwLjc0Nzg4MiwgMS4xODY2OSwgMS43Njk2NywgMi45MzkyMSwgMy42NzY0IiwgXAotICAgICAgICAgICIwLjE3MTQzOSwgMC4yNTU1NzQsIDAuNzQ3ODU4LCAxLjE4Njc3LCAxLjc2OTY0LCAyLjkzOTIzLCAzLjY3NjEyIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMwMzE1NiwgMC4zNTMyOTEsIDAuNjMzODc3LCAwLjg4MTEwMywgMS4yMTAzOSwgMS44Njg5OSwgMi4yODA2NyIsIFwKLSAgICAgICAgICAiMC4zMTQ4NywgMC4zNjUwMDIsIDAuNjQ1NTY4LCAwLjg5MjcxMiwgMS4yMjIxLCAxLjg4MDcsIDIuMjkyMyIsIFwKLSAgICAgICAgICAiMC4zMjg4NTYsIDAuMzc5MDM3LCAwLjY1OTU3NywgMC45MDY3MTIsIDEuMjM2MDksIDEuODk0ODgsIDIuMzA2MzIiLCBcCi0gICAgICAgICAgIjAuMzQyNTg3LCAwLjM5MjczNSwgMC42NzMzMzksIDAuOTIwNTA3LCAxLjI0OTc5LCAxLjkwODQzLCAyLjMyMDA3IiwgXAotICAgICAgICAgICIwLjM1NjI3OSwgMC40MDY0MjUsIDAuNjg3MDI4LCAwLjkzNDE2MSwgMS4yNjM0OCwgMS45MjIxMiwgMi4zMzM3IiwgXAotICAgICAgICAgICIwLjM3ODE2MywgMC40MjgzMDMsIDAuNzA4OTE4LCAwLjk1NTk5LCAxLjI4NTM4LCAxLjk0Mzk5LCAyLjM1NTYxIiwgXAotICAgICAgICAgICIwLjM5NzAyNiwgMC40NDcxNzEsIDAuNzI3NzgxLCAwLjk3NDg5MSwgMS4zMDQyNCwgMS45NjI4NiwgMi4zNzQ1NSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xODgxODgsIDAuMjgyOTk4LCAwLjgzNTI2NSwgMS4zMjQ1NiwgMS45ODEzNiwgMy4yOTEzMywgNC4xMDEzNiIsIFwKLSAgICAgICAgICAiMC4xODgxODgsIDAuMjgyOTc3LCAwLjgzNTk0NCwgMS4zMjYzNSwgMS45ODExOCwgMy4yODg3NCwgNC4xMDU4MyIsIFwKLSAgICAgICAgICAiMC4xODgwMzIsIDAuMjgzMjI1LCAwLjgzNTk1MSwgMS4zMjY0MiwgMS45ODA2MywgMy4yOTAzMSwgNC4xMDg3MiIsIFwKLSAgICAgICAgICAiMC4xODgxNzcsIDAuMjgzMDg2LCAwLjgzNTY0NSwgMS4zMjU1MSwgMS45Nzg3NCwgMy4yOTE1NSwgNC4xMDg2OCIsIFwKLSAgICAgICAgICAiMC4xODgxNzUsIDAuMjgzMjUzLCAwLjgzNTYzLCAxLjMyNTcsIDEuOTc4NTYsIDMuMjkxMDQsIDQuMTA4ODUiLCBcCi0gICAgICAgICAgIjAuMTg4MTgxLCAwLjI4Mjk0MSwgMC44MzU2MzgsIDEuMzI2NTksIDEuOTc5OSwgMy4yOTAwNCwgNC4xMDg4MiIsIFwKLSAgICAgICAgICAiMC4xODgxNzgsIDAuMjgyOTQ4LCAwLjgzNTYyNCwgMS4zMjM0OCwgMS45Nzg4MiwgMy4yOTEwOCwgNC4xMDg1MyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMzgzMzQsIDAuMjgyMzgzLCAwLjUyNzkxNCwgMC43NDQwMjIsIDEuMDMxOTgsIDEuNjA3NzcsIDEuOTY3NTQiLCBcCi0gICAgICAgICAgIjAuMjQ5ODE3LCAwLjI5Mzk1NCwgMC41Mzk0NDcsIDAuNzU1NTY1LCAxLjA0MzUxLCAxLjYxOTMxLCAxLjk3OTA2IiwgXAotICAgICAgICAgICIwLjI2NDQ2NiwgMC4zMDg1MTQsIDAuNTU0MDk3LCAwLjc3MDI2NCwgMS4wNTgxNiwgMS42MzM5NywgMS45OTM3MSIsIFwKLSAgICAgICAgICAiMC4yNzg2MzMsIDAuMzIyNzkzLCAwLjU2ODMxNSwgMC43ODQ0MzQsIDEuMDcyMzksIDEuNjQ4MTQsIDIuMDA3OTgiLCBcCi0gICAgICAgICAgIjAuMjkxNTg5LCAwLjMzNTc0NiwgMC41ODEyNTIsIDAuNzk3Mzg3LCAxLjA4NTM0LCAxLjY2MTA5LCAyLjAyMTA0IiwgXAotICAgICAgICAgICIwLjMxMDEwOSwgMC4zNTQxNTksIDAuNTk5Njk1LCAwLjgxNTgwNSwgMS4xMDM3NywgMS42Nzk1NCwgMi4wMzkzNSIsIFwKLSAgICAgICAgICAiMC4zMjQ1OTQsIDAuMzY4NjQxLCAwLjYxNDE4MSwgMC44MzAyNzEsIDEuMTE4MjMsIDEuNjkzOTgsIDIuMDUzNzUiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTcxNDU5LCAwLjI1NTU3OCwgMC43NDY5NzYsIDEuMTg2OTEsIDEuNzY5NjMsIDIuOTQ0MzYsIDMuNjcwNTciLCBcCi0gICAgICAgICAgIjAuMTcxNDg2LCAwLjI1NTYxNSwgMC43NDY0NDUsIDEuMTg0MDUsIDEuNzY5NzQsIDIuOTM3MzQsIDMuNjcwNTgiLCBcCi0gICAgICAgICAgIjAuMTcxNDU3LCAwLjI1NTU5NywgMC43NDY0NDMsIDEuMTg2OTUsIDEuNzY5NjcsIDIuOTM4MTUsIDMuNjcwNSIsIFwKLSAgICAgICAgICAiMC4xNzE0MTMsIDAuMjU1NTkxLCAwLjc0ODIxOCwgMS4xODY5NSwgMS43Njk2LCAyLjkzOTM3LCAzLjY3MTM0IiwgXAotICAgICAgICAgICIwLjE3MTQxMywgMC4yNTU2MTgsIDAuNzQ4MTIyLCAxLjE4Njk1LCAxLjc2OTYsIDIuOTM5MzcsIDMuNjc2NjUiLCBcCi0gICAgICAgICAgIjAuMTcxNDY5LCAwLjI1NTYzMiwgMC43NDY5NjgsIDEuMTg2ODgsIDEuNzcyNDksIDIuOTM5MzQsIDMuNjcwODciLCBcCi0gICAgICAgICAgIjAuMTcxNDY3LCAwLjI1NTYyLCAwLjc0ODMzMywgMS4xODY5NCwgMS43Njk1NywgMi45MzkzMywgMy42NzQ0OSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yNDE1NTgsIDAuMjkxNjg3LCAwLjU3MjMzNiwgMC44MTk0MTYsIDEuMTQ4OCwgMS44MDc1MywgMi4yMTkwMiIsIFwKLSAgICAgICAgICAiMC4yNTMzMTksIDAuMzAzNDY4LCAwLjU4NDA2LCAwLjgzMTIsIDEuMTYwNTgsIDEuODE5MTcsIDIuMjMwNzkiLCBcCi0gICAgICAgICAgIjAuMjY4NiwgMC4zMTg3NTUsIDAuNTk5MzQ0LCAwLjg0NjQ4OCwgMS4xNzU4NiwgMS44MzQ0NywgMi4yNDYxNyIsIFwKLSAgICAgICAgICAiMC4yODM2OTQsIDAuMzMzODY5LCAwLjYxNDQ4OCwgMC44NjE2MjUsIDEuMTkwOTQsIDEuODQ5NTgsIDIuMjYxMTUiLCBcCi0gICAgICAgICAgIjAuMjk4MjI3LCAwLjM0ODM5MSwgMC42MjkwMTksIDAuODc2MTA3LCAxLjIwNTQ4LCAxLjg2NDEsIDIuMjc1ODkiLCBcCi0gICAgICAgICAgIjAuMzE5Njc5LCAwLjM2OTgyOSwgMC42NTA0NTEsIDAuODk3NTE0LCAxLjIyNjk2LCAxLjg4NTU1LCAyLjI5NzEyIiwgXAotICAgICAgICAgICIwLjMzNjYwNiwgMC4zODY3NiwgMC42NjczODYsIDAuOTE0NDUsIDEuMjQzODMsIDEuOTAyNDcsIDIuMzE0MDciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTg4Mjc4LCAwLjI4MzI3NywgMC44MzU3MTksIDEuMzI2NTMsIDEuOTgwMjMsIDMuMjkxMDgsIDQuMTA4MyIsIFwKLSAgICAgICAgICAiMC4xODgzMzIsIDAuMjgzMTAxLCAwLjgzNjAzMSwgMS4zMjYzMSwgMS45ODA2NCwgMy4yOTI3OSwgNC4xMDU2MiIsIFwKLSAgICAgICAgICAiMC4xODgzMzYsIDAuMjgzMDg5LCAwLjgzNDAxMywgMS4zMjYxNywgMS45ODAyLCAzLjI4Nzc3LCA0LjEwMjMzIiwgXAotICAgICAgICAgICIwLjE4ODMxNiwgMC4yODM0MzQsIDAuODM1NTg4LCAxLjMyNTYzLCAxLjk3ODI3LCAzLjI5MTI0LCA0LjEwODkxIiwgXAotICAgICAgICAgICIwLjE4ODMyNywgMC4yODMwODIsIDAuODM1NTkzLCAxLjMyNDE4LCAxLjk3ODY1LCAzLjI4OTIzLCA0LjEwODI1IiwgXAotICAgICAgICAgICIwLjE4ODI4NiwgMC4yODMxMDksIDAuODM1NTIzLCAxLjMyNjQ2LCAxLjk3NzU3LCAzLjI5MTU3LCA0LjEwNzI2IiwgXAotICAgICAgICAgICIwLjE4ODI3LCAwLjI4MzA4NywgMC44MzU1MDgsIDEuMzI2NDEsIDEuOTgxNDksIDMuMjkxNjEsIDQuMTA4ODQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUzAiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMxODk2MiwgMC4zNjMwODUsIDAuNjA4NTM4LCAwLjgyNDYzMSwgMS4xMTI1NywgMS42ODgyOSwgMi4wNDgyOSIsIFwKLSAgICAgICAgICAiMC4zMzExNTksIDAuMzc1MywgMC42MjA3NDYsIDAuODM2ODQ4LCAxLjEyNDc4LCAxLjcwMDUsIDIuMDYwMzEiLCBcCi0gICAgICAgICAgIjAuMzQ2NTg5LCAwLjM5MDYxNywgMC42MzYwOSwgMC44NTIxNzUsIDEuMTQwMTEsIDEuNzE1ODgsIDIuMDc1NjMiLCBcCi0gICAgICAgICAgIjAuMzYxNDg3LCAwLjQwNTU2NCwgMC42NTA5OTgsIDAuODY3MTE0LCAxLjE1NTAzLCAxLjczMDc2LCAyLjA5MDYxIiwgXAotICAgICAgICAgICIwLjM3NTk3NiwgMC40MjAwNzYsIDAuNjY1NTA3LCAwLjg4MTU5NiwgMS4xNjk1NCwgMS43NDUyNywgMi4xMDUxMSIsIFwKLSAgICAgICAgICAiMC4zOTcyNjgsIDAuNDQxMzM3LCAwLjY4Njc3LCAwLjkwMjg1LCAxLjE5MDgsIDEuNzY2NTQsIDIuMTI2MzgiLCBcCi0gICAgICAgICAgIjAuNDE0MDksIDAuNDU4MTczLCAwLjcwMzYxNCwgMC45MTk3MjQsIDEuMjA3NjQsIDEuNzgzMzcsIDIuMTQzMjciKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTcxNDExLCAwLjI1NTU3NSwgMC43NDY5MDIsIDEuMTg2ODYsIDEuNzY5NTMsIDIuOTM5MzIsIDMuNjc2NTIiLCBcCi0gICAgICAgICAgIjAuMTcxNDA0LCAwLjI1NTU3NCwgMC43NDY3NzQsIDEuMTg2ODIsIDEuNzY5NDgsIDIuOTM5MywgMy42NzY0IiwgXAotICAgICAgICAgICIwLjE3MTQ4NSwgMC4yNTU1OTMsIDAuNzQ2ODMsIDEuMTg2NzYsIDEuNzcyMzEsIDIuOTM3MTUsIDMuNjcwMzIiLCBcCi0gICAgICAgICAgIjAuMTcxMzM5LCAwLjI1NTU0MSwgMC43NDc5MjIsIDEuMTg2ODIsIDEuNzY5NDEsIDIuOTM5MjEsIDMuNjc2NzIiLCBcCi0gICAgICAgICAgIjAuMTcxMzgyLCAwLjI1NTU3LCAwLjc0NzkwMiwgMS4xODQ3LCAxLjc2OTUsIDIuOTM5MjIsIDMuNjc2NiIsIFwKLSAgICAgICAgICAiMC4xNzEzMzIsIDAuMjU1NTcsIDAuNzQ3OTE2LCAxLjE4NjUsIDEuNzY5NDgsIDIuOTM5MjEsIDMuNjc2NjciLCBcCi0gICAgICAgICAgIjAuMTcxMzgsIDAuMjU1NTQxLCAwLjc0Nzk4LCAxLjE4NjgyLCAxLjc2OTU0LCAyLjkzOTIxLCAzLjY3NjUzIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMyNDYzMywgMC4zNzQ3ODMsIDAuNjU1MzksIDAuOTAyNTY3LCAxLjIzMTg0LCAxLjg5MDQ3LCAyLjMwMjEyIiwgXAotICAgICAgICAgICIwLjMzNjgwOCwgMC4zODY5NCwgMC42Njc1MjYsIDAuOTE0NjU0LCAxLjI0NDAzLCAxLjkwMjYzLCAyLjMxNDIzIiwgXAotICAgICAgICAgICIwLjM1MTQ3OSwgMC40MDE2MTUsIDAuNjgyMTg4LCAwLjkyOTMyOSwgMS4yNTg3LCAxLjkxNzMxLCAyLjMyOTAyIiwgXAotICAgICAgICAgICIwLjM2NTczNCwgMC40MTU4ODIsIDAuNjk2NDksIDAuOTQzNjMyLCAxLjI3Mjk0LCAxLjkzMTU3LCAyLjM0MzE4IiwgXAotICAgICAgICAgICIwLjM3ODQ0NywgMC40Mjg1OTMsIDAuNzA5MjA1LCAwLjk1NjI5NiwgMS4yODU2NiwgMS45NDQyOCwgMi4zNTYwMiIsIFwKLSAgICAgICAgICAiMC4zOTY3MjksIDAuNDQ2ODc2LCAwLjcyNzQ4MiwgMC45NzQ2MDYsIDEuMzAzOTMsIDEuOTYyNTcsIDIuMzc0MTQiLCBcCi0gICAgICAgICAgIjAuNDExMjY4LCAwLjQ2MTQxNiwgMC43NDIwMjIsIDAuOTg5MTM4LCAxLjMxODQ3LCAxLjk3NzExLCAyLjM4ODY2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE4ODE5MiwgMC4yODMwNzIsIDAuODM1NjIyLCAxLjMyMzk5LCAxLjk3ODcsIDMuMjkxNDcsIDQuMTA4NzEiLCBcCi0gICAgICAgICAgIjAuMTg4MjAyLCAwLjI4Mjk4MSwgMC44MzU4ODQsIDEuMzI2MjcsIDEuOTgwNzksIDMuMjkyNTQsIDQuMTA1NjkiLCBcCi0gICAgICAgICAgIjAuMTg4MTk5LCAwLjI4Mjk2NywgMC44MzQwMjEsIDEuMzI0MzIsIDEuOTgxMDQsIDMuMjg4NDksIDQuMTA3NzciLCBcCi0gICAgICAgICAgIjAuMTg4MTg5LCAwLjI4MzEyNSwgMC44MzU2MTUsIDEuMzI1NTksIDEuOTc4NTgsIDMuMjkxNDUsIDQuMTA4NzYiLCBcCi0gICAgICAgICAgIjAuMTg4MTkyLCAwLjI4MjkzOCwgMC44MzU1NzMsIDEuMzI1MjMsIDEuOTc4NzksIDMuMjkwNDMsIDQuMTA3NzIiLCBcCi0gICAgICAgICAgIjAuMTg4MTg3LCAwLjI4MzI3NywgMC44MzU2MDgsIDEuMzI1NzIsIDEuOTc4NDcsIDMuMjkwOTcsIDQuMTA4NzgiLCBcCi0gICAgICAgICAgIjAuMTg4MTg2LCAwLjI4MzI4MywgMC44MzU2MDgsIDEuMzI1NzYsIDEuOTc4NDIsIDMuMjkwOTYsIDQuMTA4OTIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUzAiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI4MTY1MSwgMC4zMjU3OTgsIDAuNTcxMjUyLCAwLjc4NzM0OSwgMS4wNzUyNywgMS42NTA5OSwgMi4wMTA4NiIsIFwKLSAgICAgICAgICAiMC4yOTIwNDUsIDAuMzM2MTcxLCAwLjU4MTY1MSwgMC43OTc3MjIsIDEuMDg1NjQsIDEuNjYxMzcsIDIuMDIxMTUiLCBcCi0gICAgICAgICAgIjAuMzA1MDU1LCAwLjM0OTA5MiwgMC41OTQ1NDcsIDAuODEwNjQsIDEuMDk4NTcsIDEuNjc0MjgsIDIuMDM0MDciLCBcCi0gICAgICAgICAgIjAuMzE4MDA2LCAwLjM2MjEyMywgMC42MDc1NjcsIDAuODIzNjc0LCAxLjExMTYsIDEuNjg3MzIsIDIuMDQ3MjgiLCBcCi0gICAgICAgICAgIjAuMzMxMTgzLCAwLjM3NTIyMiwgMC42MjA2NzksIDAuODM2NzY4LCAxLjEyNDY5LCAxLjcwMDQzLCAyLjA2MDIiLCBcCi0gICAgICAgICAgIjAuMzUxODM2LCAwLjM5NTg1NSwgMC42NDEzNywgMC44NTc0NDQsIDEuMTQ1MzgsIDEuNzIxMTUsIDIuMDgwOSIsIFwKLSAgICAgICAgICAiMC4zNjg4MjgsIDAuNDEyOTI3LCAwLjY1ODM0OCwgMC44NzQ0NzMsIDEuMTYyMzksIDEuNzM4MTIsIDIuMDk3OSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNzE0MjgsIDAuMjU1NTczLCAwLjc0ODA2MywgMS4xODY4MiwgMS43Njk1MSwgMi45MzkyMSwgMy42Njg4MiIsIFwKLSAgICAgICAgICAiMC4xNzE0MDMsIDAuMjU1NTczLCAwLjc0ODE4LCAxLjE4NjgyLCAxLjc2OTQ5LCAyLjkzOTI0LCAzLjY3MDU2IiwgXAotICAgICAgICAgICIwLjE3MTQ3MywgMC4yNTU1NzIsIDAuNzQ2OTY2LCAxLjE4Njc5LCAxLjc2OTUzLCAyLjkzOTQ3LCAzLjY3MDQ5IiwgXAotICAgICAgICAgICIwLjE3MTM2NSwgMC4yNTU1NDEsIDAuNzQ4MDEzLCAxLjE4NjgxLCAxLjc2OTUzLCAyLjkzOTIyLCAzLjY3NjM2IiwgXAotICAgICAgICAgICIwLjE3MTQ1OSwgMC4yNTU1NzMsIDAuNzQ4MDUsIDEuMTg2NzcsIDEuNzY5NTYsIDIuOTQzOTMsIDMuNjcwNDgiLCBcCi0gICAgICAgICAgIjAuMTcxMzkyLCAwLjI1NTUzMywgMC43NDY5OTEsIDEuMTg2NzIsIDEuNzY5MjgsIDIuOTM5OSwgMy42NzAzMSIsIFwKLSAgICAgICAgICAiMC4xNzE0MzksIDAuMjU1NTczLCAwLjc0Nzg2MywgMS4xODY4LCAxLjc2OTY1LCAyLjkzOTIyLCAzLjY3NjE5Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI4Nzc2NSwgMC4zMzc5MjUsIDAuNjE4NTE5LCAwLjg2NTU3OCwgMS4xOTQ5OCwgMS44NTM2NCwgMi4yNjUyMiIsIFwKLSAgICAgICAgICAiMC4yOTgzMDUsIDAuMzQ4NDU0LCAwLjYyOTA0NywgMC44NzYxNDQsIDEuMjA1NSwgMS44NjQxNSwgMi4yNzU3MiIsIFwKLSAgICAgICAgICAiMC4zMTE2MzQsIDAuMzYxNzY1LCAwLjY0MjM2MSwgMC44ODk0NzcsIDEuMjE4ODYsIDEuODc3NDgsIDIuMjg5MDciLCBcCi0gICAgICAgICAgIjAuMzI1MTI1LCAwLjM3NTI3MSwgMC42NTU4NywgMC45MDI5MywgMS4yMzIzMSwgMS44OTA5OCwgMi4zMDI1NCIsIFwKLSAgICAgICAgICAiMC4zMzg3MTcsIDAuMzg4ODY1LCAwLjY2OTQ3LCAwLjkxNjU5NiwgMS4yNDU5MywgMS45MDQ1NSwgMi4zMTYyMiIsIFwKLSAgICAgICAgICAiMC4zNjA4NzYsIDAuNDExMDI4LCAwLjY5MTYyOSwgMC45Mzg2NzYsIDEuMjY4MDcsIDEuOTI2NzMsIDIuMzM4NDUiLCBcCi0gICAgICAgICAgIjAuMzc5ODk1LCAwLjQzMDA0NywgMC43MTA2NSwgMC45NTc3NDYsIDEuMjg3MDksIDEuOTQ1NzQsIDIuMzU3MzEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTg4MDc2LCAwLjI4MzI5LCAwLjgzNTc2NywgMS4zMjY4NywgMS45ODE2MSwgMy4yODM2LCA0LjEwNTA3IiwgXAotICAgICAgICAgICIwLjE4ODE3OSwgMC4yODI5NDcsIDAuODM1NzE5LCAxLjMyNjI0LCAxLjk3ODUyLCAzLjI4NTY1LCA0LjEwNzc4IiwgXAotICAgICAgICAgICIwLjE4ODE5NSwgMC4yODI5ODYsIDAuODM1ODQsIDEuMzI2NCwgMS45ODEyLCAzLjI5MjMyLCA0LjEwNjc5IiwgXAotICAgICAgICAgICIwLjE4ODE3OCwgMC4yODI4NSwgMC44MzU2NDIsIDEuMzI2NjMsIDEuOTc4MiwgMy4yODMyNCwgNC4xMDc3MyIsIFwKLSAgICAgICAgICAiMC4xODgxODIsIDAuMjgzMDUxLCAwLjgzNTYzNiwgMS4zMjU1LCAxLjk3ODc3LCAzLjI5MTQ2LCA0LjEwODYxIiwgXAotICAgICAgICAgICIwLjE4ODE3MywgMC4yODI5NDgsIDAuODM1NjI4LCAxLjMyNTQsIDEuOTc5MTUsIDMuMjkwOTIsIDQuMTA4MDkiLCBcCi0gICAgICAgICAgIjAuMTg4MTY4LCAwLjI4MzE4NCwgMC44MzU2MDEsIDEuMzI2MDIsIDEuOTc4MjcsIDMuMjkwNzIsIDQuMTA1OTciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUzEiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE5NDEzMSwgMC4yMzgxNjYsIDAuNDgzNzAyLCAwLjY5OTgwNCwgMC45ODc3NTUsIDEuNTYzNTcsIDEuOTIzMzIiLCBcCi0gICAgICAgICAgIjAuMjA0NTUyLCAwLjI0ODU5NSwgMC40OTQxMTksIDAuNzEwMjMsIDAuOTk4MTc4LCAxLjU3Mzk3LCAxLjkzMzczIiwgXAotICAgICAgICAgICIwLjIxODA5MiwgMC4yNjIxNDMsIDAuNTA3NjkxLCAwLjcyMzc5MywgMS4wMTE3MywgMS41ODc0NywgMS45NDcyNyIsIFwKLSAgICAgICAgICAiMC4yMzE1MzYsIDAuMjc1NTksIDAuNTIxMTExLCAwLjczNzI1OSwgMS4wMjUyLCAxLjYwMDk0LCAxLjk2MDk0IiwgXAotICAgICAgICAgICIwLjI0NTA4NCwgMC4yODkxNTEsIDAuNTM0NzE2LCAwLjc1MDgzOSwgMS4wMzg3OCwgMS42MTQ1OSwgMS45NzQzMiIsIFwKLSAgICAgICAgICAiMC4yNjcwNjksIDAuMzExMTM5LCAwLjU1Njc0MiwgMC43NzI4NjksIDEuMDYwODYsIDEuNjM2NTcsIDEuOTk2MzciLCBcCi0gICAgICAgICAgIjAuMjg2NDU4LCAwLjMzMDYyMiwgMC41NzYxODgsIDAuNzkyMzU2LCAxLjA4MDI2LCAxLjY1NjA1LCAyLjAxNTgyIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE3MTQ0MSwgMC4yNTU1NjMsIDAuNzQ2MzQsIDEuMTg2OTgsIDEuNzY5ODYsIDIuOTM3NTIsIDMuNjcwNjMiLCBcCi0gICAgICAgICAgIjAuMTcxNDUsIDAuMjU1NjIxLCAwLjc0ODIxNiwgMS4xODY5NiwgMS43Njk4NSwgMi45NDQzNSwgMy42NzA3NSIsIFwKLSAgICAgICAgICAiMC4xNzE1MDMsIDAuMjU1Njc5LCAwLjc0ODI5NywgMS4xODY5NywgMS43Njk4MSwgMi45Mzk2MSwgMy42NzA4MiIsIFwKLSAgICAgICAgICAiMC4xNzE1MzQsIDAuMjU1Njg0LCAwLjc0ODAyNiwgMS4xODY5MywgMS43Njk3OCwgMi45Mzk1OCwgMy42NzYzNyIsIFwKLSAgICAgICAgICAiMC4xNzE1OTEsIDAuMjU1Njg1LCAwLjc0ODIxMywgMS4xODY5NCwgMS43Njk0NywgMi45NDQyOSwgMy42NzA2OCIsIFwKLSAgICAgICAgICAiMC4xNzE2ODUsIDAuMjU1ODQyLCAwLjc0NzA2OSwgMS4xODY5MSwgMS43NzI0OSwgMi45Mzk0MSwgMy42NzA4NiIsIFwKLSAgICAgICAgICAiMC4xNzE3NTksIDAuMjU1ODExLCAwLjc0NzE3MywgMS4xODY4LCAxLjc3MjIxLCAyLjkzOTMzLCAzLjY3MDUyIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE5MTk1NywgMC4yNDIwOTQsIDAuNTIyNjgxLCAwLjc2OTc4OCwgMS4wOTkxMSwgMS43NTc3NCwgMi4xNjkzIiwgXAotICAgICAgICAgICIwLjIwMjI0NywgMC4yNTIzOCwgMC41MzI5NzIsIDAuNzgwMTE1LCAxLjEwOTQsIDEuNzY4MDIsIDIuMTc5NjUiLCBcCi0gICAgICAgICAgIjAuMjE1MzE4LCAwLjI2NTQ1OSwgMC41NDYwNjMsIDAuNzkzMTE5LCAxLjEyMjUyLCAxLjc4MTEyLCAyLjE5MjcxIiwgXAotICAgICAgICAgICIwLjIyODQxMSwgMC4yNzg1NTYsIDAuNTU5MTg1LCAwLjgwNjI2MywgMS4xMzU2MywgMS43OTQyNSwgMi4yMDU5NyIsIFwKLSAgICAgICAgICAiMC4yNDE1NiwgMC4yOTE3NjYsIDAuNTcyNDE5LCAwLjgxOTQ3NywgMS4xNDg4NywgMS44MDc0MywgMi4yMTkwNiIsIFwKLSAgICAgICAgICAiMC4yNjI3MTgsIDAuMzEyODg0LCAwLjU5MzU2NCwgMC44NDA2MzksIDEuMTcwMDIsIDEuODI4NjQsIDIuMjQwMjQiLCBcCi0gICAgICAgICAgIjAuMjgwODI1LCAwLjMzMTAwOCwgMC42MTE3MTMsIDAuODU4ODIsIDEuMTg4MTgsIDEuODQ2ODEsIDIuMjU4NTEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTg4MDg0LCAwLjI4MzI2NCwgMC44MzUzNTEsIDEuMzI1NTcsIDEuOTc3OTEsIDMuMjg5MjksIDQuMTA4ODkiLCBcCi0gICAgICAgICAgIjAuMTg4MDkzLCAwLjI4MzI5MiwgMC44MzUzNDIsIDEuMzI1MzQsIDEuOTc4MDYsIDMuMjg4MzIsIDQuMTA4NjkiLCBcCi0gICAgICAgICAgIjAuMTg4MTE1LCAwLjI4MjgzNSwgMC44MzUyODQsIDEuMzI2MjIsIDEuOTgxMDcsIDMuMjkwNDcsIDQuMTA1NjMiLCBcCi0gICAgICAgICAgIjAuMTg4MTQ2LCAwLjI4MzA4OCwgMC44MzUyOTIsIDEuMzI0MTksIDEuOTc4MjcsIDMuMjg3NCwgNC4xMDU2IiwgXAotICAgICAgICAgICIwLjE4ODA4NiwgMC4yODI5NiwgMC44MzM0NTQsIDEuMzI2MDEsIDEuOTgxMDQsIDMuMjkyODMsIDQuMTA1MTciLCBcCi0gICAgICAgICAgIjAuMTg4MjU5LCAwLjI4MzE0MiwgMC44MzM4NiwgMS4zMjYwOSwgMS45Nzc5OCwgMy4yODc1OSwgNC4xMDU4MyIsIFwKLSAgICAgICAgICAiMC4xODg0OTksIDAuMjgzMzU5LCAwLjgzNTI0NiwgMS4zMjU5NCwgMS45Nzc5NywgMy4yODc0MSwgNC4xMDc4OSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTMSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjMwODU5LCAwLjI3NDk4MSwgMC41MjA0MTYsIDAuNzM2NTExLCAxLjAyNDQzLCAxLjYwMDIsIDEuOTU5OTQiLCBcCi0gICAgICAgICAgIjAuMjQzMDMzLCAwLjI4NzA2LCAwLjUzMjUwNywgMC43NDg2MjMsIDEuMDM2NTUsIDEuNjEyMywgMS45NzIwNiIsIFwKLSAgICAgICAgICAiMC4yNTgwMTQsIDAuMzAyMTEsIDAuNTQ3NTUyLCAwLjc2MzYxNSwgMS4wNTE1NywgMS42MjczMSwgMS45ODcwNyIsIFwKLSAgICAgICAgICAiMC4yNzIzOTgsIDAuMzE2NTAxLCAwLjU2MTk1MiwgMC43NzgwNTgsIDEuMDY1OTgsIDEuNjQxNywgMi4wMDE2NiIsIFwKLSAgICAgICAgICAiMC4yODYwMjgsIDAuMzMwMTQ4LCAwLjU3NTY1MywgMC43OTE3MDEsIDEuMDc5NjMsIDEuNjU1MzUsIDIuMDE1MTEiLCBcCi0gICAgICAgICAgIjAuMzA1MzgyLCAwLjM0OTM5NSwgMC41OTQ5MDgsIDAuODExMDE5LCAxLjA5ODkyLCAxLjY3NDcsIDIuMDM0NDQiLCBcCi0gICAgICAgICAgIjAuMzIwNjUxLCAwLjM2NDcyNSwgMC42MTAxNjEsIDAuODI2MjI4LCAxLjExNDE3LCAxLjY4OTkzLCAyLjA0OTY3Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE3MTM2LCAwLjI1NTUxMiwgMC43NDcwMywgMS4xODQwMiwgMS43Njk0LCAyLjkzOTk1LCAzLjY3MDYzIiwgXAotICAgICAgICAgICIwLjE3MTQwNywgMC4yNTU0NDgsIDAuNzQ3NzExLCAxLjE4Njc2LCAxLjc2OTYyLCAyLjk0Mzk3LCAzLjY3MDQyIiwgXAotICAgICAgICAgICIwLjE3MTM0OSwgMC4yNTU1MTMsIDAuNzQ2MjU4LCAxLjE4NjU3LCAxLjc2OTU3LCAyLjkzOTE4LCAzLjY3MDc1IiwgXAotICAgICAgICAgICIwLjE3MTMyOCwgMC4yNTU1MjEsIDAuNzQ4MDE4LCAxLjE4Njc5LCAxLjc2OTU0LCAyLjkzOTE5LCAzLjY3NjM1IiwgXAotICAgICAgICAgICIwLjE3MTM0NywgMC4yNTU1MTksIDAuNzQ2MzQxLCAxLjE4Njc3LCAxLjc2OTQ3LCAyLjkzOTMxLCAzLjY3MDA5IiwgXAotICAgICAgICAgICIwLjE3MTMzNSwgMC4yNTU0NTksIDAuNzQ2OTMzLCAxLjE4NjcyLCAxLjc3MTI5LCAyLjkzNzE3LCAzLjY3MDM3IiwgXAotICAgICAgICAgICIwLjE3MTI4MywgMC4yNTU0NTIsIDAuNzQ2OTQ2LCAxLjE4NDYzLCAxLjc2OTI3LCAyLjkzOTM0LCAzLjY3MDc2Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIzNDE2OSwgMC4yODQzMywgMC41NjQ5NDgsIDAuODEyMDE3LCAxLjE0MTQxLCAxLjgwMDA5LCAyLjIxMTY0IiwgXAotICAgICAgICAgICIwLjI0NjIwNiwgMC4yOTY0MDEsIDAuNTc3MDI2LCAwLjgyNDA5MSwgMS4xNTM1NCwgMS44MTIxNCwgMi4yMjM3MSIsIFwKLSAgICAgICAgICAiMC4yNjE4NjgsIDAuMzEyMDIxLCAwLjU5MjY2MiwgMC44Mzk3NjMsIDEuMTY5MTQsIDEuODI3NzgsIDIuMjM5MzUiLCBcCi0gICAgICAgICAgIjAuMjc2NjU2LCAwLjMyNjgyNiwgMC42MDc0NDcsIDAuODU0NTE2LCAxLjE4MzksIDEuODQyNTYsIDIuMjU0MTIiLCBcCi0gICAgICAgICAgIjAuMjkxNzYsIDAuMzQxOTU0LCAwLjYyMjU4LCAwLjg2OTY0NSwgMS4xOTkwMiwgMS44NTc2NywgMi4yNjkyNiIsIFwKLSAgICAgICAgICAiMC4zMTQxMDIsIDAuMzY0MjcsIDAuNjQ0OTAyLCAwLjg5MjAxMywgMS4yMjEzNiwgMS44Nzk5OSwgMi4yOTE2NyIsIFwKLSAgICAgICAgICAiMC4zMzIwNDUsIDAuMzgyMjIsIDAuNjYyODc5LCAwLjkwOTkzNSwgMS4yMzkzMSwgMS44OTc5OSwgMi4zMDk1MyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xODgzMDMsIDAuMjgzMjk4LCAwLjgzNTc1OSwgMS4zMjY4NCwgMS45NzgyNSwgMy4yODM0LCA0LjEwODI0IiwgXAotICAgICAgICAgICIwLjE4ODIxNiwgMC4yODI5OTQsIDAuODM1NjQzLCAxLjMyNjU5LCAxLjk4MDQ3LCAzLjI4NjI3LCA0LjEwODY2IiwgXAotICAgICAgICAgICIwLjE4ODMyMiwgMC4yODMwOTYsIDAuODM1Njk4LCAxLjMyNjI3LCAxLjk3OTcsIDMuMjkxODQsIDQuMTA1NjIiLCBcCi0gICAgICAgICAgIjAuMTg4MzAxLCAwLjI4Mjk1MiwgMC44MzU1ODMsIDEuMzI2NDUsIDEuOTc4MDQsIDMuMjkwNjIsIDQuMTA1ODYiLCBcCi0gICAgICAgICAgIjAuMTg4MjA1LCAwLjI4MzA1MSwgMC44MzU1MTUsIDEuMzI2NDgsIDEuOTgxNzgsIDMuMjkxNTgsIDQuMTA4NjUiLCBcCi0gICAgICAgICAgIjAuMTg4MzA1LCAwLjI4MzA0NCwgMC44MzU1NiwgMS4zMjM1NCwgMS45Nzg0OCwgMy4yODkzOSwgNC4xMDc5OCIsIFwKLSAgICAgICAgICAiMC4xODgxNDYsIDAuMjgzMzA3LCAwLjgzMzQyLCAxLjMyNjI5LCAxLjk3ODc2LCAzLjI4Mzg1LCA0LjEwNTk0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzMzMxLCAwLjAwMzMzNywgMC4wMDMzNDcsIDAuMDAzMzQ5LCAwLjAwMzM1LCAwLjAwMzM1MSwgMC4wMDMzNTEiLCBcCi0gICAgICAgICAgIjAuMDAzMzI1LCAwLjAwMzMzMiwgMC4wMDMzNDEsIDAuMDAzMzQzLCAwLjAwMzM0NCwgMC4wMDMzNDUsIDAuMDAzMzQ1IiwgXAotICAgICAgICAgICIwLjAwMzMyMSwgMC4wMDMzMjgsIDAuMDAzMzM3LCAwLjAwMzMzOSwgMC4wMDMzNCwgMC4wMDMzNDEsIDAuMDAzMzQyIiwgXAotICAgICAgICAgICIwLjAwMzMxOCwgMC4wMDMzMjUsIDAuMDAzMzM1LCAwLjAwMzMzNywgMC4wMDMzMzgsIDAuMDAzMzM5LCAwLjAwMzMzOSIsIFwKLSAgICAgICAgICAiMC4wMDMzMTYsIDAuMDAzMzIzLCAwLjAwMzMzMywgMC4wMDMzMzQsIDAuMDAzMzM2LCAwLjAwMzMzNywgMC4wMDMzMzciLCBcCi0gICAgICAgICAgIjAuMDAzMzEzLCAwLjAwMzMyLCAwLjAwMzMzLCAwLjAwMzMzMiwgMC4wMDMzMzMsIDAuMDAzMzMzLCAwLjAwMzMzNCIsIFwKLSAgICAgICAgICAiMC4wMDMzMTEsIDAuMDAzMzE3LCAwLjAwMzMyNywgMC4wMDMzMjksIDAuMDAzMzMsIDAuMDAzMzMxLCAwLjAwMzMzMiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzEyOSwgMC4wMDMxMzcsIDAuMDAzMTQ5LCAwLjAwMzE1MiwgMC4wMDMxNTMsIDAuMDAzMTU0LCAwLjAwMzE1NSIsIFwKLSAgICAgICAgICAiMC4wMDMxMTgsIDAuMDAzMTI2LCAwLjAwMzEzOCwgMC4wMDMxNCwgMC4wMDMxNDIsIDAuMDAzMTQzLCAwLjAwMzE0MyIsIFwKLSAgICAgICAgICAiMC4wMDMxMTEsIDAuMDAzMTE5LCAwLjAwMzEzMSwgMC4wMDMxMzQsIDAuMDAzMTM1LCAwLjAwMzEzNiwgMC4wMDMxMzciLCBcCi0gICAgICAgICAgIjAuMDAzMTA2LCAwLjAwMzExNSwgMC4wMDMxMjYsIDAuMDAzMTI5LCAwLjAwMzEzLCAwLjAwMzEzMSwgMC4wMDMxMzIiLCBcCi0gICAgICAgICAgIjAuMDAzMTAzLCAwLjAwMzExMiwgMC4wMDMxMjMsIDAuMDAzMTI2LCAwLjAwMzEyNywgMC4wMDMxMjgsIDAuMDAzMTI5IiwgXAotICAgICAgICAgICIwLjAwMzA5OSwgMC4wMDMxMDcsIDAuMDAzMTE5LCAwLjAwMzEyMiwgMC4wMDMxMjMsIDAuMDAzMTI0LCAwLjAwMzEyNSIsIFwKLSAgICAgICAgICAiMC4wMDMwOTYsIDAuMDAzMTA1LCAwLjAwMzExNywgMC4wMDMxMTksIDAuMDAzMTIsIDAuMDAzMTIxLCAwLjAwMzEyMiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzQ1MiwgMC4wMDM0NTksIDAuMDAzNDY5LCAwLjAwMzQ3MSwgMC4wMDM0NzIsIDAuMDAzNDcyLCAwLjAwMzQ3MyIsIFwKLSAgICAgICAgICAiMC4wMDM0NDcsIDAuMDAzNDUzLCAwLjAwMzQ2MywgMC4wMDM0NjUsIDAuMDAzNDY2LCAwLjAwMzQ2NywgMC4wMDM0NjciLCBcCi0gICAgICAgICAgIjAuMDAzNDQzLCAwLjAwMzQ1LCAwLjAwMzQ1OSwgMC4wMDM0NjEsIDAuMDAzNDYyLCAwLjAwMzQ2MywgMC4wMDM0NjQiLCBcCi0gICAgICAgICAgIjAuMDAzNDQxLCAwLjAwMzQ0NywgMC4wMDM0NTcsIDAuMDAzNDU5LCAwLjAwMzQ2LCAwLjAwMzQ2MSwgMC4wMDM0NjEiLCBcCi0gICAgICAgICAgIjAuMDAzNDM5LCAwLjAwMzQ0NSwgMC4wMDM0NTUsIDAuMDAzNDU3LCAwLjAwMzQ1OCwgMC4wMDM0NTksIDAuMDAzNDU5IiwgXAotICAgICAgICAgICIwLjAwMzQzNiwgMC4wMDM0NDMsIDAuMDAzNDUyLCAwLjAwMzQ1NCwgMC4wMDM0NTUsIDAuMDAzNDU2LCAwLjAwMzQ1NiIsIFwKLSAgICAgICAgICAiMC4wMDM0MzMsIDAuMDAzNDQsIDAuMDAzNDQ5LCAwLjAwMzQ1MSwgMC4wMDM0NTMsIDAuMDAzNDU0LCAwLjAwMzQ1NCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjkyMywgMC4wMDI5MzEsIDAuMDAyOTQzLCAwLjAwMjk0NSwgMC4wMDI5NDcsIDAuMDAyOTQ4LCAwLjAwMjk0OCIsIFwKLSAgICAgICAgICAiMC4wMDI5MTIsIDAuMDAyOTIsIDAuMDAyOTMyLCAwLjAwMjkzNCwgMC4wMDI5MzUsIDAuMDAyOTM3LCAwLjAwMjkzNyIsIFwKLSAgICAgICAgICAiMC4wMDI5MDUsIDAuMDAyOTEzLCAwLjAwMjkyNSwgMC4wMDI5MjgsIDAuMDAyOTI5LCAwLjAwMjkzLCAwLjAwMjkzMSIsIFwKLSAgICAgICAgICAiMC4wMDI5MDEsIDAuMDAyOTA5LCAwLjAwMjkyMSwgMC4wMDI5MjMsIDAuMDAyOTI1LCAwLjAwMjkyNiwgMC4wMDI5MjYiLCBcCi0gICAgICAgICAgIjAuMDAyODk3LCAwLjAwMjkwNiwgMC4wMDI5MTgsIDAuMDAyOTIsIDAuMDAyOTIyLCAwLjAwMjkyMywgMC4wMDI5MjMiLCBcCi0gICAgICAgICAgIjAuMDAyODk0LCAwLjAwMjkwMiwgMC4wMDI5MTQsIDAuMDAyOTE2LCAwLjAwMjkxOCwgMC4wMDI5MTksIDAuMDAyOTE5IiwgXAotICAgICAgICAgICIwLjAwMjg5MSwgMC4wMDI5LCAwLjAwMjkxMiwgMC4wMDI5MTQsIDAuMDAyOTE2LCAwLjAwMjkxNywgMC4wMDI5MTciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI4MDYsIDAuMDAyODEyLCAwLjAwMjgyMSwgMC4wMDI4MjMsIDAuMDAyODI0LCAwLjAwMjgyNiwgMC4wMDI4MjYiLCBcCi0gICAgICAgICAgIjAuMDAyNzkyLCAwLjAwMjc5OSwgMC4wMDI4MDgsIDAuMDAyODExLCAwLjAwMjgxMiwgMC4wMDI4MTIsIDAuMDAyODEzIiwgXAotICAgICAgICAgICIwLjAwMjc4MywgMC4wMDI3ODksIDAuMDAyNzk4LCAwLjAwMjgwMSwgMC4wMDI4MDIsIDAuMDAyODAyLCAwLjAwMjgwMyIsIFwKLSAgICAgICAgICAiMC4wMDI3NzcsIDAuMDAyNzg0LCAwLjAwMjc5MywgMC4wMDI3OTUsIDAuMDAyNzk2LCAwLjAwMjc5NywgMC4wMDI3OTgiLCBcCi0gICAgICAgICAgIjAuMDAyNzc0LCAwLjAwMjc4LCAwLjAwMjc4OSwgMC4wMDI3OTEsIDAuMDAyNzkzLCAwLjAwMjc5NCwgMC4wMDI3OTQiLCBcCi0gICAgICAgICAgIjAuMDAyNzcsIDAuMDAyNzc2LCAwLjAwMjc4NiwgMC4wMDI3ODgsIDAuMDAyNzg5LCAwLjAwMjc5MSwgMC4wMDI3OTEiLCBcCi0gICAgICAgICAgIjAuMDAyNzY5LCAwLjAwMjc3NiwgMC4wMDI3ODUsIDAuMDAyNzg4LCAwLjAwMjc4OSwgMC4wMDI3OSwgMC4wMDI3OSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjY5NiwgMC4wMDI3MDQsIDAuMDAyNzE2LCAwLjAwMjcxOCwgMC4wMDI3MiwgMC4wMDI3MjEsIDAuMDAyNzIxIiwgXAotICAgICAgICAgICIwLjAwMjY3OCwgMC4wMDI2ODYsIDAuMDAyNjk3LCAwLjAwMjcsIDAuMDAyNzAxLCAwLjAwMjcwMywgMC4wMDI3MDMiLCBcCi0gICAgICAgICAgIjAuMDAyNjY2LCAwLjAwMjY3NSwgMC4wMDI2ODYsIDAuMDAyNjg5LCAwLjAwMjY5LCAwLjAwMjY5MiwgMC4wMDI2OTIiLCBcCi0gICAgICAgICAgIjAuMDAyNjYxLCAwLjAwMjY2OSwgMC4wMDI2ODEsIDAuMDAyNjgzLCAwLjAwMjY4NSwgMC4wMDI2ODYsIDAuMDAyNjg2IiwgXAotICAgICAgICAgICIwLjAwMjY1NywgMC4wMDI2NjUsIDAuMDAyNjc3LCAwLjAwMjY3OSwgMC4wMDI2ODEsIDAuMDAyNjgyLCAwLjAwMjY4MyIsIFwKLSAgICAgICAgICAiMC4wMDI2NTcsIDAuMDAyNjY1LCAwLjAwMjY3NywgMC4wMDI2OCwgMC4wMDI2ODEsIDAuMDAyNjgyLCAwLjAwMjY4MyIsIFwKLSAgICAgICAgICAiMC4wMDI2NTcsIDAuMDAyNjY1LCAwLjAwMjY3NywgMC4wMDI2OCwgMC4wMDI2ODEsIDAuMDAyNjgyLCAwLjAwMjY4MyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlMwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDMyMiwgMC4wMDMyMjcsIDAuMDAzMjM3LCAwLjAwMzIzOCwgMC4wMDMyMzksIDAuMDAzMjQxLCAwLjAwMzI0MSIsIFwKLSAgICAgICAgICAiMC4wMDMyMTIsIDAuMDAzMjE4LCAwLjAwMzIyOCwgMC4wMDMyMywgMC4wMDMyMzEsIDAuMDAzMjMyLCAwLjAwMzIzMiIsIFwKLSAgICAgICAgICAiMC4wMDMyMDMsIDAuMDAzMjEsIDAuMDAzMjIsIDAuMDAzMjIxLCAwLjAwMzIyMywgMC4wMDMyMjMsIDAuMDAzMjI0IiwgXAotICAgICAgICAgICIwLjAwMzE5NywgMC4wMDMyMDQsIDAuMDAzMjEzLCAwLjAwMzIxNSwgMC4wMDMyMTcsIDAuMDAzMjE3LCAwLjAwMzIxOCIsIFwKLSAgICAgICAgICAiMC4wMDMxOTQsIDAuMDAzMjAxLCAwLjAwMzIxLCAwLjAwMzIxMiwgMC4wMDMyMTQsIDAuMDAzMjE0LCAwLjAwMzIxNCIsIFwKLSAgICAgICAgICAiMC4wMDMxOTIsIDAuMDAzMTk4LCAwLjAwMzIwOCwgMC4wMDMyMSwgMC4wMDMyMTEsIDAuMDAzMjEyLCAwLjAwMzIxMSIsIFwKLSAgICAgICAgICAiMC4wMDMxOTEsIDAuMDAzMTk4LCAwLjAwMzIwNywgMC4wMDMyMDksIDAuMDAzMjExLCAwLjAwMzIxMSwgMC4wMDMyMTEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQ2MTUsIDAuMDA0NjIzLCAwLjAwNDYzNSwgMC4wMDQ2MzgsIDAuMDA0NjM5LCAwLjAwNDY0LCAwLjAwNDY0MSIsIFwKLSAgICAgICAgICAiMC4wMDQ2MTMsIDAuMDA0NjIxLCAwLjAwNDYzMywgMC4wMDQ2MzYsIDAuMDA0NjM3LCAwLjAwNDYzOCwgMC4wMDQ2MzkiLCBcCi0gICAgICAgICAgIjAuMDA0NjA4LCAwLjAwNDYxNiwgMC4wMDQ2MjgsIDAuMDA0NjMxLCAwLjAwNDYzMiwgMC4wMDQ2MzMsIDAuMDA0NjMzIiwgXAotICAgICAgICAgICIwLjAwNDYwNCwgMC4wMDQ2MTIsIDAuMDA0NjI0LCAwLjAwNDYyNiwgMC4wMDQ2MjgsIDAuMDA0NjI5LCAwLjAwNDYyOSIsIFwKLSAgICAgICAgICAiMC4wMDQ2LCAwLjAwNDYwOSwgMC4wMDQ2MiwgMC4wMDQ2MjMsIDAuMDA0NjI0LCAwLjAwNDYyNiwgMC4wMDQ2MjYiLCBcCi0gICAgICAgICAgIjAuMDA0NTk3LCAwLjAwNDYwNSwgMC4wMDQ2MTcsIDAuMDA0NjIsIDAuMDA0NjIxLCAwLjAwNDYyMiwgMC4wMDQ2MjIiLCBcCi0gICAgICAgICAgIjAuMDA0NTk1LCAwLjAwNDYwMywgMC4wMDQ2MTUsIDAuMDA0NjE4LCAwLjAwNDYxOSwgMC4wMDQ2MiwgMC4wMDQ2MiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlMxIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDMxNjEsIDAuMDAzMTY3LCAwLjAwMzE3OCwgMC4wMDMxOCwgMC4wMDMxODEsIDAuMDAzMTgyLCAwLjAwMzE4MiIsIFwKLSAgICAgICAgICAiMC4wMDMxNiwgMC4wMDMxNjcsIDAuMDAzMTc2LCAwLjAwMzE3OSwgMC4wMDMxOCwgMC4wMDMxODIsIDAuMDAzMTgyIiwgXAotICAgICAgICAgICIwLjAwMzE1NywgMC4wMDMxNjMsIDAuMDAzMTczLCAwLjAwMzE3NSwgMC4wMDMxNzYsIDAuMDAzMTc4LCAwLjAwMzE3NyIsIFwKLSAgICAgICAgICAiMC4wMDMxNTQsIDAuMDAzMTYsIDAuMDAzMTcsIDAuMDAzMTcyLCAwLjAwMzE3MywgMC4wMDMxNzQsIDAuMDAzMTc1IiwgXAotICAgICAgICAgICIwLjAwMzE1MSwgMC4wMDMxNTgsIDAuMDAzMTY3LCAwLjAwMzE2OSwgMC4wMDMxNzEsIDAuMDAzMTcyLCAwLjAwMzE3MyIsIFwKLSAgICAgICAgICAiMC4wMDMxNDcsIDAuMDAzMTU0LCAwLjAwMzE2NCwgMC4wMDMxNjYsIDAuMDAzMTY3LCAwLjAwMzE2OCwgMC4wMDMxNjgiLCBcCi0gICAgICAgICAgIjAuMDAzMTQ2LCAwLjAwMzE1MiwgMC4wMDMxNjIsIDAuMDAzMTY0LCAwLjAwMzE2NSwgMC4wMDMxNjYsIDAuMDAzMTY3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyNDE4LCAwLjAwMjQyNiwgMC4wMDI0MzksIDAuMDAyNDQxLCAwLjAwMjQ0MywgMC4wMDI0NDQsIDAuMDAyNDQ1IiwgXAotICAgICAgICAgICIwLjAwMjQxLCAwLjAwMjQxOCwgMC4wMDI0MzEsIDAuMDAyNDM0LCAwLjAwMjQzNSwgMC4wMDI0MzYsIDAuMDAyNDM3IiwgXAotICAgICAgICAgICIwLjAwMjQwNCwgMC4wMDI0MTIsIDAuMDAyNDI0LCAwLjAwMjQyNywgMC4wMDI0MjksIDAuMDAyNDMsIDAuMDAyNDMiLCBcCi0gICAgICAgICAgIjAuMDAyMzk5LCAwLjAwMjQwNywgMC4wMDI0MTksIDAuMDAyNDIyLCAwLjAwMjQyMywgMC4wMDI0MjQsIDAuMDAyNDI1IiwgXAotICAgICAgICAgICIwLjAwMjM5NSwgMC4wMDI0MDMsIDAuMDAyNDE1LCAwLjAwMjQxOCwgMC4wMDI0MTksIDAuMDAyNDIsIDAuMDAyNDIxIiwgXAotICAgICAgICAgICIwLjAwMjM5MiwgMC4wMDI0LCAwLjAwMjQxMiwgMC4wMDI0MTUsIDAuMDAyNDE3LCAwLjAwMjQxOCwgMC4wMDI0MTgiLCBcCi0gICAgICAgICAgIjAuMDAyMzkxLCAwLjAwMjM5OSwgMC4wMDI0MTEsIDAuMDAyNDE0LCAwLjAwMjQxNSwgMC4wMDI0MTcsIDAuMDAyNDE3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBNWEkzWDQgKgotICogLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChNWEkzWDQpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4zMTc1NDU7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYwNDIxNzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MDI1NzI7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjA0MjE3OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDc3NiwgMC4wMDA3NjUsIDAuMDAwNzU5LCAwLjAwMDc1NSwgMC4wMDA3NTIsIDAuMDAwNzQ4LCAwLjAwMDc0NiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTkyLCAwLjAwMTkxNSwgMC4wMDE5MTEsIDAuMDAxOTA5LCAwLjAwMTkwOCwgMC4wMDE5MDYsIDAuMDAxOTA1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2Mjg0OTc7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjI2Nzc5OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDYyODQ5NzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxNTgsIDAuMDAwMTYsIDAuMDAwMTYxLCAwLjAwMDE2MSwgMC4wMDAxNjEsIDAuMDAwMTYyLCAwLjAwMDE2MiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDE3LCAwLjAwMDE2NywgMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY2Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihDKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA1MzIyMDY7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNTMxOTk1OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDUzMjIwNjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyNzksIDAuMDAwMjYyLCAwLjAwMDI1MiwgMC4wMDAyNDcsIDAuMDAwMjQ1LCAwLjAwMDI0MywgMC4wMDAyNDMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDEzNjUsIDAuMDAxMzUzLCAwLjAwMTM0NSwgMC4wMDEzNDIsIDAuMDAxMzM5LCAwLjAwMTMzNywgMC4wMDEzMzciKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFMwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDEyNjM0NDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDEyNjI3OTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDEyNjM0NDsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxNDMsIDAuMDAwMTIzLCAwLjAwMDExMywgMC4wMDAxMDksIDAuMDAwMTA5LCAwLjAwMDEwOSwgMC4wMDAxMTEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDEzODQsIDAuMDAxMzcxLCAwLjAwMTM2NCwgMC4wMDEzNjEsIDAuMDAxMzU5LCAwLjAwMTM1OCwgMC4wMDEzNTkiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFMxKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE0MTA4MzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE0MTAyNjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE0MTA4MzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAzMTQsIDAuMDAwMjk2LCAwLjAwMDI4NiwgMC4wMDAyODEsIDAuMDAwMjc5LCAwLjAwMDI3NywgMC4wMDAyNzgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDE2MzgsIDAuMDAxNjI1LCAwLjAwMTYxOCwgMC4wMDE2MTUsIDAuMDAxNjEzLCAwLjAwMTYxMiwgMC4wMDE2MTIiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC41MTEwNjM7Ci0gICAgZnVuY3Rpb24gOiAiKCEoKFMxIEMpICsgKCFTMSAoKFMwIEIpICsgKCFTMCBBKSkpKSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjczMzA5LCAwLjQxMzQyOCwgMC41Mzk5MjUsIDAuNjI5OTI5LCAwLjc3MzgxMSwgMC44OTk3NjYsIDEuMDc5NDIiLCBcCi0gICAgICAgICAgIjAuMjg0Nzc3LCAwLjQyNDkxMywgMC41NTEzOTYsIDAuNjQxMzk3LCAwLjc4NTM0OCwgMC45MTEyMzcsIDEuMDkwODkiLCBcCi0gICAgICAgICAgIjAuMjk4MDM2LCAwLjQzNzkzNSwgMC41NjQ0ODgsIDAuNjU0NDk4LCAwLjc5ODQwOSwgMC45MjQzMDEsIDEuMTAzOTYiLCBcCi0gICAgICAgICAgIjAuMzEwNDE0LCAwLjQ1MDQ3NCwgMC41NzY5NzMsIDAuNjY3MDEyLCAwLjgxMDg5NSwgMC45MzY4MTQsIDEuMTE2NDciLCBcCi0gICAgICAgICAgIjAuMzIyOTUsIDAuNDYyODQsIDAuNTg5MzUyLCAwLjY3OTM5OSwgMC44MjMzMDUsIDAuOTQ5MjAzLCAxLjEyODg2IiwgXAotICAgICAgICAgICIwLjM0MjM2MywgMC40ODIyNzEsIDAuNjA4NzcyLCAwLjY5ODgxMywgMC44NDI3MjQsIDAuOTY4NjIsIDEuMTQ4MjgiLCBcCi0gICAgICAgICAgIjAuMzU5MDM1LCAwLjQ5OTAzNCwgMC42MjU0NzMsIDAuNzE1NDc5LCAwLjg1OTM5NSwgMC45ODUyODMsIDEuMTY0OTQiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODIwOSwgMC4zMjE5NDYsIDAuNTcxNjQ3LCAwLjc1Mzg4MSwgMS4wNDUzMSwgMS4zMDE2NiwgMS42NjY5NSIsIFwKLSAgICAgICAgICAiMC4wODIwNzQsIDAuMzIyMDk5LCAwLjU3MjA5NiwgMC43NTQwMDcsIDEuMDQ1NzUsIDEuMzAxNjgsIDEuNjY2OTQiLCBcCi0gICAgICAgICAgIjAuMDgyMjE0LCAwLjMyMjE0NywgMC41NzE3NiwgMC43NTMwMDEsIDEuMDQ0MDEsIDEuMzAxNTcsIDEuNjY2ODgiLCBcCi0gICAgICAgICAgIjAuMDgyMTA5LCAwLjMyMjE0NiwgMC41NzIwMjMsIDAuNzUyOTU4LCAxLjA0NTU1LCAxLjMwMTYzLCAxLjY2NjkiLCBcCi0gICAgICAgICAgIjAuMDgyMjIyLCAwLjMyMjA0MiwgMC41NzE5NjIsIDAuNzUyOTc0LCAxLjA0MzkyLCAxLjMwMTU4LCAxLjY2Njg5IiwgXAotICAgICAgICAgICIwLjA4MjIyMywgMC4zMjIxNCwgMC41NzE5ODcsIDAuNzUyOTU3LCAxLjA0NTY1LCAxLjMwMTYsIDEuNjY2OTIiLCBcCi0gICAgICAgICAgIjAuMDgxOTYxLCAwLjMyMjA3NywgMC41NzI5MDEsIDAuNzUyOTg3LCAxLjA0NDE0LCAxLjMwMTU1LCAxLjY2Njg2Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjc5MDIyLCAwLjQzNzEwMywgMC41ODM0LCAwLjY4NzYyNCwgMC44NTQzMDIsIDEsIDEuMjA4MDkiLCBcCi0gICAgICAgICAgIjAuMjkwNTY0LCAwLjQ0ODc3LCAwLjU5NTA4MywgMC42OTkyOTgsIDAuODY1OTg5LCAxLjAxMTY3LCAxLjIxOTc1IiwgXAotICAgICAgICAgICIwLjMwNDM3MywgMC40NjI2NDIsIDAuNjA5MDE2LCAwLjcxMzIxNSwgMC44Nzk4ODEsIDEuMDI1NTcsIDEuMjMzNjkiLCBcCi0gICAgICAgICAgIjAuMzE4MjIxLCAwLjQ3NjMwOSwgMC42MjI2MTMsIDAuNzI2ODYsIDAuODkzNDY2LCAxLjAzOTE2LCAxLjI0NzMiLCBcCi0gICAgICAgICAgIjAuMzMxODQyLCAwLjQ4OTg5OCwgMC42MzYyMywgMC43NDA0MTIsIDAuOTA3MDk0LCAxLjA1MjgyLCAxLjI2MSIsIFwKLSAgICAgICAgICAiMC4zNTM2NTksIDAuNTExNzE0LCAwLjY1ODAxLCAwLjc2MjIzNCwgMC45Mjg5LCAxLjA3NDYyLCAxLjI4MjcxIiwgXAotICAgICAgICAgICIwLjM3MjYwNywgMC41MzA2NTcsIDAuNjc2OTk0LCAwLjc4MTE4LCAwLjk0Nzg2MSwgMS4wOTM1OCwgMS4zMDE3OCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4NDQ4OSwgMC4zNjAzMDUsIDAuNjQ3MTM4LCAwLjg1MDYwNCwgMS4xODQ0NSwgMS40NzQzOSwgMS44OSIsIFwKLSAgICAgICAgICAiMC4wODQ1MiwgMC4zNjAyOTksIDAuNjQ2Mjc0LCAwLjg1MDY5OCwgMS4xODQyOSwgMS40NzQzNCwgMS44OTAwMSIsIFwKLSAgICAgICAgICAiMC4wODQyMDMsIDAuMzYwMzcyLCAwLjY0NDg5NCwgMC44NTIxNTYsIDEuMTg0MzIsIDEuNDc0NDUsIDEuODg2ODIiLCBcCi0gICAgICAgICAgIjAuMDg0NzMzLCAwLjM2MDM1LCAwLjY0NDkzNiwgMC44NTEwMzYsIDEuMTgzMzUsIDEuNDc0NjUsIDEuODg2NjIiLCBcCi0gICAgICAgICAgIjAuMDg0Njg3LCAwLjM2MDM0MywgMC42NDQ4NTUsIDAuODUzMjY2LCAxLjE4NDI5LCAxLjQ3MDcyLCAxLjg4ODM2IiwgXAotICAgICAgICAgICIwLjA4NDcwNCwgMC4zNjA2ODcsIDAuNjQ2NTc2LCAwLjg1MjQ2OSwgMS4xODE0MywgMS40NzQwNCwgMS44ODk1OCIsIFwKLSAgICAgICAgICAiMC4wODQ2ODgsIDAuMzYwNzEyLCAwLjY0NDc2MiwgMC44NTMyOCwgMS4xODQyNywgMS40NzE4NCwgMS44ODgyOSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI3MjkyMiwgMC40MTMsIDAuNTM5NDc5LCAwLjYyOTQ3MywgMC43NzM0MDcsIDAuODk5MzEyLCAxLjA3ODk2IiwgXAotICAgICAgICAgICIwLjI4NDM4NywgMC40MjQ0MzksIDAuNTUwODg2LCAwLjY0MDg3NywgMC43ODQ3OTQsIDAuOTEwNjc1LCAxLjA5MDMzIiwgXAotICAgICAgICAgICIwLjI5NzUsIDAuNDM3MzIxLCAwLjU2Mzg3LCAwLjY1Mzg3MywgMC43OTc3ODEsIDAuOTIzNjcyLCAxLjEwMzMzIiwgXAotICAgICAgICAgICIwLjMwOTc2OCwgMC40NDk3NzMsIDAuNTc2MjU1LCAwLjY2NjI5MSwgMC44MTAxODksIDAuOTM2MDk1LCAxLjExNTc1IiwgXAotICAgICAgICAgICIwLjMyMjIxNiwgMC40NjIxNiwgMC41ODg1ODYsIDAuNjc4NTkyLCAwLjgyMjUwNywgMC45NDgzOTIsIDEuMTI4MDUiLCBcCi0gICAgICAgICAgIjAuMzQxNTE4LCAwLjQ4MTQ2LCAwLjYwNzkwMSwgMC42OTc4OTMsIDAuODQxODA4LCAwLjk2NzY5MSwgMS4xNDczNSIsIFwKLSAgICAgICAgICAiMC4zNTgwMzMsIDAuNDk4MDQ2LCAwLjYyNDUzNywgMC43MTQ1MSwgMC44NTg0MywgMC45ODQzMDYsIDEuMTYzOTYiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODIwMjksIDAuMzIyMDE4LCAwLjU3MjAzMywgMC43NTM5NjYsIDEuMDQ1NjQsIDEuMzAxNjQsIDEuNjY2OTQiLCBcCi0gICAgICAgICAgIjAuMDgxOTc1LCAwLjMyMTk5NCwgMC41NzI5MjUsIDAuNzUyOTI3LCAxLjA0MzA4LCAxLjMwMTUsIDEuNjY2ODEiLCBcCi0gICAgICAgICAgIjAuMDgyMTY4LCAwLjMyMTk2MywgMC41NzE5OSwgMC43NTI5MTUsIDEuMDQzOTIsIDEuMzAxNTIsIDEuNjY2ODMiLCBcCi0gICAgICAgICAgIjAuMDgyMDUyLCAwLjMyMjA3MSwgMC41NzE5MjksIDAuNzUyOTA1LCAxLjA0NTU2LCAxLjMwMTU5LCAxLjY2Njg2IiwgXAotICAgICAgICAgICIwLjA4MTg5NSwgMC4zMjE5OTQsIDAuNTcyODIyLCAwLjc1MjkyLCAxLjA0NDAyLCAxLjMwMTUxLCAxLjY2NjgyIiwgXAotICAgICAgICAgICIwLjA4MTkyOCwgMC4zMjE5OTQsIDAuNTcyOTU2LCAwLjc1MjkyNCwgMS4wNDM5NiwgMS4zMDE1LCAxLjY2NjgyIiwgXAotICAgICAgICAgICIwLjA4MjA1LCAwLjMyMTk5NSwgMC41NzI4MTIsIDAuNzUyOTMzLCAxLjA0MzIxLCAxLjMwMTQ2LCAxLjY2Njc4Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjc2MjUyLCAwLjQzNDQzMiwgMC41ODA3MzYsIDAuNjg0OTQyLCAwLjg1MTU1NCwgMC45OTczMTEsIDEuMjA1NCIsIFwKLSAgICAgICAgICAiMC4yODc4MTcsIDAuNDQ1OTcyLCAwLjU5MjI4MSwgMC42OTY0OTMsIDAuODYzMTgxLCAxLjAwODg2LCAxLjIxNjk0IiwgXAotICAgICAgICAgICIwLjMwMTU2OCwgMC40NTk3MjMsIDAuNjA2MDI4LCAwLjcxMDIzOSwgMC44NzY5MzMsIDEuMDIyNjEsIDEuMjMwNjkiLCBcCi0gICAgICAgICAgIjAuMzE1MzU3LCAwLjQ3MzM2LCAwLjYxOTY5MSwgMC43MjM4NzcsIDAuODkwNTUzLCAxLjAzNjI2LCAxLjI0NDQ4IiwgXAotICAgICAgICAgICIwLjMyOTEzNywgMC40ODcyMDUsIDAuNjMzNDgyLCAwLjczNzY4MiwgMC45MDQzMTMsIDEuMDUwMTEsIDEuMjU4MjMiLCBcCi0gICAgICAgICAgIjAuMzUwOCwgMC41MDg4LCAwLjY1NTEzNSwgMC43NTkzMTcsIDAuOTI1OTk2LCAxLjA3MTcxLCAxLjI3OTkyIiwgXAotICAgICAgICAgICIwLjM2OTU2LCAwLjUyNzY1NSwgMC42NzQwMzMsIDAuNzc4MjI5LCAwLjk0NDg5NCwgMS4wOTA2NCwgMS4yOTg3MSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4NDU1NiwgMC4zNjAwMywgMC42NDcxMDQsIDAuODUwNjAyLCAxLjE4NDcxLCAxLjQ3NDM2LCAxLjg5MDAxIiwgXAotICAgICAgICAgICIwLjA4NDQ3MSwgMC4zNjA2NjUsIDAuNjQ2MjU3LCAwLjg1MDY3LCAxLjE4NDIsIDEuNDc0MjUsIDEuODg5OTIiLCBcCi0gICAgICAgICAgIjAuMDg0NDc5LCAwLjM2MDQxMywgMC42NDU4NzgsIDAuODUwODM4LCAxLjE4MTY2LCAxLjQ3NDE4LCAxLjg4OTgyIiwgXAotICAgICAgICAgICIwLjA4NDY1NywgMC4zNjA0NTMsIDAuNjQ0Nzk2LCAwLjg1MzI3LCAxLjE4NDIzLCAxLjQ3MzU1LCAxLjg4ODE3IiwgXAotICAgICAgICAgICIwLjA4NDQyNiwgMC4zNjAyOTYsIDAuNjQ1Mjg5LCAwLjg1MzEwMiwgMS4xODIwNSwgMS40NzM4MiwgMS44ODg2OSIsIFwKLSAgICAgICAgICAiMC4wODQ2NjcsIDAuMzYwNDA5LCAwLjY0NDY4MSwgMC44NTMyNTMsIDEuMTg0MiwgMS40NzMwNiwgMS44ODgxNyIsIFwKLSAgICAgICAgICAiMC4wODQ0ODQsIDAuMzYwMjY5LCAwLjY0NTAwOCwgMC44NTE2NTksIDEuMTg0MTYsIDEuNDczODMsIDEuODg5MiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIwNjY3OSwgMC4zNDYyNDEsIDAuNDcyNzc2LCAwLjU2Mjc3LCAwLjcwNjY4NiwgMC44MzI1NjQsIDEuMDEyMjIiLCBcCi0gICAgICAgICAgIjAuMjE4MDc0LCAwLjM1Nzg2NiwgMC40ODQzNjIsIDAuNTc0MzQ0LCAwLjcxODMzNiwgMC44NDQwNzQsIDEuMDIzODUiLCBcCi0gICAgICAgICAgIjAuMjMyNzMzLCAwLjM3MjU2OSwgMC40OTkwNjYsIDAuNTg5MDQ1LCAwLjczMjk3MywgMC44NTg4MzEsIDEuMDM4NTMiLCBcCi0gICAgICAgICAgIjAuMjQ3MTc5LCAwLjM4Njk4NiwgMC41MTM0NjcsIDAuNjAzNDM3LCAwLjc0NzM2NSwgMC44NzMyMjksIDEuMDUyODkiLCBcCi0gICAgICAgICAgIjAuMjYwNjE1LCAwLjQwMDM1OSwgMC41MjY3NzMsIDAuNjE2Nzc5LCAwLjc2MDY5OCwgMC44ODY1NzYsIDEuMDY2MjMiLCBcCi0gICAgICAgICAgIjAuMjc5NzAxLCAwLjQxOTQwMiwgMC41NDU4OSwgMC42MzU5MjksIDAuNzc5ODM4LCAwLjkwNTcyNCwgMS4wODUzOCIsIFwKLSAgICAgICAgICAiMC4yOTQ3NTMsIDAuNDM0NTMsIDAuNTYxMDI2LCAwLjY1MTAwNSwgMC43OTQ5NDIsIDAuOTIwNzUyLCAxLjEwMDU3Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDgxNjI3LCAwLjMyMTgxNSwgMC41NzI3ODksIDAuNzUyODEsIDEuMDQyOTYsIDEuMzAxNDYsIDEuNjY2ODIiLCBcCi0gICAgICAgICAgIjAuMDgxNTQ0LCAwLjMyMTcxOSwgMC41NzI3ODIsIDAuNzUyODg3LCAxLjA0MjkxLCAxLjMwMDg4LCAxLjY2MzMiLCBcCi0gICAgICAgICAgIjAuMDgxNDM0LCAwLjMyMTcwNiwgMC41NzI3NzQsIDAuNzUyODYyLCAxLjA0MzI0LCAxLjMwMTM2LCAxLjY2Njk0IiwgXAotICAgICAgICAgICIwLjA4MTUyNywgMC4zMjE3LCAwLjU3Mjc1NSwgMC43NTI4MDgsIDEuMDQzMTcsIDEuMzAxMzksIDEuNjY2NzYiLCBcCi0gICAgICAgICAgIjAuMDgxNjEzLCAwLjMyMTY4OSwgMC41NzE2NjgsIDAuNzUyNzgzLCAxLjA0MywgMS4zMDE0MywgMS42NjY3OSIsIFwKLSAgICAgICAgICAiMC4wODEzODQsIDAuMzIxNjU5LCAwLjU3MTc1MiwgMC43NTI3NjQsIDEuMDQzODksIDEuMzAxNDUsIDEuNjY2ODIiLCBcCi0gICAgICAgICAgIjAuMDgxNDQxLCAwLjMyMTY3NSwgMC41NzI2NzgsIDAuNzUyODQ5LCAxLjA0MzMsIDEuMjk4ODUsIDEuNjY3MDUiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMDY5MDUsIDAuMzY0OTE1LCAwLjUxMTIyNywgMC42MTU0MSwgMC43ODIwNTEsIDAuOTI3NzI3LCAxLjEzNTgyIiwgXAotICAgICAgICAgICIwLjIxODczLCAwLjM3Njc3NywgMC41MjMwMjYsIDAuNjI3MjI0LCAwLjc5MzgyNCwgMC45Mzk1NzEsIDEuMTQ3NjQiLCBcCi0gICAgICAgICAgIjAuMjMzODM5LCAwLjM5MjAwMiwgMC41MzgyODEsIDAuNjQyNDc0LCAwLjgwOTE0LCAwLjk1NDgwOSwgMS4xNjI4OCIsIFwKLSAgICAgICAgICAiMC4yNDkwMTEsIDAuNDA3MTY0LCAwLjU1MzQ1NCwgMC42NTc2NDcsIDAuODI0MzE1LCAwLjk2OTk4MywgMS4xNzgwNSIsIFwKLSAgICAgICAgICAiMC4yNjM5NzMsIDAuNDIyMDExLCAwLjU2ODI5MiwgMC42NzI0NTUsIDAuODM5MTE2LCAwLjk4NDgwNywgMS4xOTMiLCBcCi0gICAgICAgICAgIjAuMjg1OTU2LCAwLjQ0NDAwNCwgMC41OTAyNTYsIDAuNjk0NDMzLCAwLjg2MTA4MiwgMS4wMDY3NiwgMS4yMTQ5MyIsIFwKLSAgICAgICAgICAiMC4zMDMzMjgsIDAuNDYxNDgsIDAuNjA3NzYyLCAwLjcxMTk1NCwgMC44Nzg2MjQsIDEuMDI0MjksIDEuMjMyMzYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODQ2MywgMC4zNjAyNzQsIDAuNjQ0OTE2LCAwLjg1MDU1LCAxLjE4NDE2LCAxLjQ3NDM2LCAxLjg4NjY4IiwgXAotICAgICAgICAgICIwLjA4NDYzNCwgMC4zNjAxODUsIDAuNjQ2OTQ1LCAwLjg1MTkyNCwgMS4xODQzMiwgMS40NzM5MiwgMS44ODk0MyIsIFwKLSAgICAgICAgICAiMC4wODQ0NzcsIDAuMzYwNTEsIDAuNjQ2MTEzLCAwLjg1MDUzNywgMS4xODM5NywgMS40NzQwNCwgMS44ODk2NyIsIFwKLSAgICAgICAgICAiMC4wODQ0NywgMC4zNjAxOTIsIDAuNjQ2MDQ2LCAwLjg1MDQ4NywgMS4xODM5NSwgMS40NzQsIDEuODg5NjEiLCBcCi0gICAgICAgICAgIjAuMDg0NjQ4LCAwLjM2MDE1MSwgMC42NDQ2NjksIDAuODUzMTM3LCAxLjE4NDAxLCAxLjQ3MzM0LCAxLjg4ODA4IiwgXAotICAgICAgICAgICIwLjA4NDU5MiwgMC4zNjAxNjYsIDAuNjQ0NjMsIDAuODUzMjQyLCAxLjE4Mzk4LCAxLjQ3MTgyLCAxLjg4NjY5IiwgXAotICAgICAgICAgICIwLjA4NDQ4LCAwLjM2MDUwNywgMC42NDU5MzcsIDAuODUwMzU5LCAxLjE4Mzg2LCAxLjQ3Mzk5LCAxLjg4OTY2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlMwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI5MTA5NCwgMC40MzA5NjMsIDAuNTU3NTAzLCAwLjY0NzUyNSwgMC43OTE0NDQsIDAuOTE3MzA2LCAxLjA5Njk3IiwgXAotICAgICAgICAgICIwLjMwMzM3OCwgMC40NDMyMjcsIDAuNTY5NzIyLCAwLjY1OTc2NSwgMC44MDM2NywgMC45Mjk1NTgsIDEuMTA5MjIiLCBcCi0gICAgICAgICAgIjAuMzE4NDE1LCAwLjQ1ODQ5NiwgMC41ODQ5NzgsIDAuNjc0OTk3LCAwLjgxODg3OSwgMC45NDQ4MDYsIDEuMTI0NDYiLCBcCi0gICAgICAgICAgIjAuMzMzMzk4LCAwLjQ3MzM5MywgMC41OTk4ODIsIDAuNjg5OTE4LCAwLjgzMzgwNSwgMC45NTk3MTUsIDEuMTM5MzciLCBcCi0gICAgICAgICAgIjAuMzQ3MzksIDAuNDg3NDQxLCAwLjYxMzg5LCAwLjcwMzg3OCwgMC44NDc3OTUsIDAuOTczNjc2LCAxLjE1MzMzIiwgXAotICAgICAgICAgICIwLjM2NzYzNiwgMC41MDc2NjIsIDAuNjM0MTQ2LCAwLjcyNDExNCwgMC44NjgwMzIsIDAuOTkzOTEsIDEuMTczNTYiLCBcCi0gICAgICAgICAgIjAuMzgzNjQzLCAwLjUyMzQ3OSwgMC42NDk5NzMsIDAuNzQwMDE0LCAwLjg4MzkxNiwgMS4wMDk4MSwgMS4xODk0NyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4MjIxNCwgMC4zMjE5ODMsIDAuNTcyMDk1LCAwLjc1MjM1NSwgMS4wNDMyMSwgMS4zMDE1NiwgMS42NjY5NSIsIFwKLSAgICAgICAgICAiMC4wODIxOTksIDAuMzIxOTU1LCAwLjU3MjAwNCwgMC43NTI5OTcsIDEuMDQ0MDIsIDEuMzAxNTUsIDEuNjY2ODkiLCBcCi0gICAgICAgICAgIjAuMDgyMDMxLCAwLjMyMjAxNSwgMC41NzE2LCAwLjc1MjYxOCwgMS4wNDU1MiwgMS4zMDE2MiwgMS42NjY5MiIsIFwKLSAgICAgICAgICAiMC4wODIwNTgsIDAuMzIyMDg1LCAwLjU3MTkxNywgMC43NTI5MTEsIDEuMDQ1NTMsIDEuMzAxNTgsIDEuNjY2ODUiLCBcCi0gICAgICAgICAgIjAuMDgxOTcyLCAwLjMyMTk5NCwgMC41NzI5NCwgMC43NTI5MjQsIDEuMDQzMDcsIDEuMzAxNSwgMS42NjY4MSIsIFwKLSAgICAgICAgICAiMC4wODIwNzQsIDAuMzIxOTkxLCAwLjU3MjkxLCAwLjc1MjkyOSwgMS4wNDMxNSwgMS4zMDE0OCwgMS42NjY4IiwgXAotICAgICAgICAgICIwLjA4MjE3MywgMC4zMjE5NTEsIDAuNTcxOTEsIDAuNzUyODk4LCAxLjA0Mzg1LCAxLjMwMTU1LCAxLjY2Njg2Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjkyNTQ1LCAwLjQ1MDYzMSwgMC41OTY5MzMsIDAuNzAxMTM4LCAwLjg2NzgwMSwgMS4wMTM0OCwgMS4yMjE2NSIsIFwKLSAgICAgICAgICAiMC4zMDQ2OTYsIDAuNDYyODI0LCAwLjYwOTEyOCwgMC43MTMzMywgMC44Nzk5NjcsIDEuMDI1NjgsIDEuMjMzNzkiLCBcCi0gICAgICAgICAgIjAuMzE5MjM5LCAwLjQ3NzM1MiwgMC42MjM2MzYsIDAuNzI3ODM4LCAwLjg5NDQ2OCwgMS4wNDAyNywgMS4yNDgzOCIsIFwKLSAgICAgICAgICAiMC4zMzMyMTksIDAuNDkxMjU4LCAwLjYzNzYwNywgMC43NDE3OTUsIDAuOTA4NDY5LCAxLjA1NDE4LCAxLjI2MjQyIiwgXAotICAgICAgICAgICIwLjM0NTM1NCwgMC41MDM0MDMsIDAuNjQ5NzQxLCAwLjc1MzkyOSwgMC45MjA2MDUsIDEuMDY2MzEsIDEuMjc0NTUiLCBcCi0gICAgICAgICAgIjAuMzYyMzksIDAuNTIwNTg5LCAwLjY2NjkwMSwgMC43NzExMTIsIDAuOTM3ODEzLCAxLjA4MzQ5LCAxLjI5MTU3IiwgXAotICAgICAgICAgICIwLjM3NTc1LCAwLjUzMzgwOSwgMC42ODAxMDEsIDAuNzg0MzI3LCAwLjk1MTAxLCAxLjA5NjcyLCAxLjMwNDgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODQ3MzgsIDAuMzYwMjY4LCAwLjY0NDgyNCwgMC44NTM1MTIsIDEuMTgxMjgsIDEuNDcxMzgsIDEuODg4MzEiLCBcCi0gICAgICAgICAgIjAuMDg0NDYyLCAwLjM2MDMyNCwgMC42NDQ4MDMsIDAuODUwNzQ0LCAxLjE4MzM1LCAxLjQ3NDUyLCAxLjg4OTg4IiwgXAotICAgICAgICAgICIwLjA4NDQ3OSwgMC4zNjAzMjUsIDAuNjQ1NjQ4LCAwLjg1MzE2OSwgMS4xODIzOCwgMS40NzM4NywgMS44ODg3NyIsIFwKLSAgICAgICAgICAiMC4wODQ3MTUsIDAuMzYwMjc3LCAwLjY0NDc3LCAwLjg1MzM1MiwgMS4xODQyOCwgMS40NzM1MSwgMS44ODM2OCIsIFwKLSAgICAgICAgICAiMC4wODQ3MDcsIDAuMzYwNTQzLCAwLjY0NDc1OCwgMC44NTMzMzMsIDEuMTg0MjgsIDEuNDczNTMsIDEuODg4MTUiLCBcCi0gICAgICAgICAgIjAuMDg0NTEzLCAwLjM2MDMyNywgMC42NDU2MDYsIDAuODUxMTc5LCAxLjE4MTU0LCAxLjQ3NDE4LCAxLjg4OTY5IiwgXAotICAgICAgICAgICIwLjA4NDcxOSwgMC4zNjA2OTEsIDAuNjQ1OTgzLCAwLjg1MjQ4MiwgMS4xODQyNSwgMS40NzQwMywgMS44ODk1MSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yNjA4OTMsIDAuNDAxMDM0LCAwLjUyNzUyMywgMC42MTc1MzgsIDAuNzYxNDQ4LCAwLjg4NzM2MSwgMS4wNjcwMSIsIFwKLSAgICAgICAgICAiMC4yNzEyNTMsIDAuNDExMzY1LCAwLjUzNzgyMiwgMC42Mjc4MTcsIDAuNzcxNzM2LCAwLjg5NzYyLCAxLjA3NzI4IiwgXAotICAgICAgICAgICIwLjI4NDI4NCwgMC40MjQzNjcsIDAuNTUwODU5LCAwLjY0MDgyNiwgMC43ODQ3NDUsIDAuOTEwNjI4LCAxLjA5MDI4IiwgXAotICAgICAgICAgICIwLjI5NzQ4OCwgMC40MzczODgsIDAuNTYzODk3LCAwLjY1MzkzOSwgMC43OTc4NDMsIDAuOTIzNzQzLCAxLjEwMzQiLCBcCi0gICAgICAgICAgIjAuMzEwMzg1LCAwLjQ1MDQ1NSwgMC41NzY5NjMsIDAuNjY2OTcxLCAwLjgxMDg3NiwgMC45MzY3OTQsIDEuMTE2NDQiLCBcCi0gICAgICAgICAgIjAuMzMxNDYzLCAwLjQ3MTU0OCwgMC41OTgwNCwgMC42ODgwMDgsIDAuODMxOTI3LCAwLjk1NzgxMSwgMS4xMzc0NyIsIFwKLSAgICAgICAgICAiMC4zNDk2NjksIDAuNDg5NzcyLCAwLjYxNjI5NSwgMC43MDYyNjgsIDAuODUwMTY4LCAwLjk3NjAxNywgMS4xNTU4MyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4MjA4NSwgMC4zMjIxMDEsIDAuNTcxNjY0LCAwLjc1MzE2NSwgMS4wNDU2NCwgMS4zMDE2NywgMS42NjY5NiIsIFwKLSAgICAgICAgICAiMC4wODIwMzcsIDAuMzIyMDc4LCAwLjU3Mjk3OCwgMC43NTI5OTEsIDEuMDQzMTEsIDEuMzAxNTUsIDEuNjY2ODYiLCBcCi0gICAgICAgICAgIjAuMDgyMDcxLCAwLjMyMjA3NywgMC41NzI5NzksIDAuNzUyOTc2LCAxLjA0MzE2LCAxLjMwMTUzLCAxLjY2Njg2IiwgXAotICAgICAgICAgICIwLjA4MjIyOSwgMC4zMjIwMzYsIDAuNTcxOTksIDAuNzUyOTUsIDEuMDQzOTEsIDEuMzAxNTksIDEuNjY2OTIiLCBcCi0gICAgICAgICAgIjAuMDgyMDIyLCAwLjMyMjA1OSwgMC41NzE3LCAwLjc1NDIxMiwgMS4wNDU2NCwgMS4zMDE3MSwgMS42NjY5NSIsIFwKLSAgICAgICAgICAiMC4wODIwNzUsIDAuMzIyMDc3LCAwLjU3Mjk4LCAwLjc1Mjk5MiwgMS4wNDMxNSwgMS4zMDE1NCwgMS42NjY4NSIsIFwKLSAgICAgICAgICAiMC4wODIxNzgsIDAuMzIyMDU4LCAwLjU3MzA1NiwgMC43NTI5OTEsIDEuMDQ1NDcsIDEuMjk5MDMsIDEuNjY3MDgiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yNjM5ODUsIDAuNDIyMTAxLCAwLjU2ODM2MSwgMC42NzI2MDQsIDAuODM5MjI1LCAwLjk4NDk3MiwgMS4xOTMwNiIsIFwKLSAgICAgICAgICAiMC4yNzQ1NzIsIDAuNDMyNTk5LCAwLjU3ODkwOSwgMC42ODMxMDcsIDAuODQ5Nzg2LCAwLjk5NTQ2MiwgMS4yMDM2MyIsIFwKLSAgICAgICAgICAiMC4yODc5NzEsIDAuNDQ2MDAxLCAwLjU5MjMwNCwgMC42OTY1MDYsIDAuODYzMTcyLCAxLjAwODg5LCAxLjIxNjk3IiwgXAotICAgICAgICAgICIwLjMwMTQxMSwgMC40NTk0NzQsIDAuNjA1NzQ3LCAwLjcwOTk2NywgMC44NzY1NjcsIDEuMDIyNDUsIDEuMjMwNTYiLCBcCi0gICAgICAgICAgIjAuMzE0ODgyLCAwLjQ3MzA0LCAwLjYxOTMzOSwgMC43MjM1NDcsIDAuODkwMjUxLCAxLjAzNTkyLCAxLjI0NDAxIiwgXAotICAgICAgICAgICIwLjMzNzExNCwgMC40OTUxNjgsIDAuNjQxNTQ1LCAwLjc0NTc0MSwgMC45MTI0MDYsIDEuMDU4MSwgMS4yNjYyMSIsIFwKLSAgICAgICAgICAiMC4zNTY1MTYsIDAuNTE0NTQ4LCAwLjY2MDg0NCwgMC43NjUwNTMsIDAuOTMxNjg5LCAxLjA3NzQ0LCAxLjI4NTUzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg0NDE3LCAwLjM2MDMxMiwgMC42NDY3NzUsIDAuODUxMDA5LCAxLjE4NDYyLCAxLjQ3NDQ1LCAxLjg5MDEyIiwgXAotICAgICAgICAgICIwLjA4NDY3OCwgMC4zNjAxODgsIDAuNjQ3MTYsIDAuODUzNDE0LCAxLjE4MzAzLCAxLjQ3MTUyLCAxLjg4ODI5IiwgXAotICAgICAgICAgICIwLjA4NDQ2LCAwLjM2MDY1OSwgMC42NDcwNzYsIDAuODUyMTg2LCAxLjE4NDMxLCAxLjQ3NDEsIDEuODg5NjMiLCBcCi0gICAgICAgICAgIjAuMDg0NDQ1LCAwLjM2MDQ0MSwgMC42NDY3OTEsIDAuODUyNDQ4LCAxLjE4NDUsIDEuNDcyNDMsIDEuODg4MTciLCBcCi0gICAgICAgICAgIjAuMDg0NDkyLCAwLjM2MDY0MSwgMC42NDU0NDYsIDAuODUxNDk4LCAxLjE4MTE1LCAxLjQ3NDEsIDEuODg5NjciLCBcCi0gICAgICAgICAgIjAuMDg0NTI3LCAwLjM2MDI2OCwgMC42NDQ5OTMsIDAuODUxNTgzLCAxLjE4NDE3LCAxLjQ3NDMsIDEuODg2NjciLCBcCi0gICAgICAgICAgIjAuMDg0NDQxLCAwLjM2MDYzMywgMC42NDcwMTQsIDAuODUyNDQxLCAxLjE4NDM1LCAxLjQ3Mzk3LCAxLjg4OTQ0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlMxIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE2MTE2MSwgMC4zMDA4NzUsIDAuNDI3MzYzLCAwLjUxNzM3LCAwLjY2MTI1OCwgMC43ODcxNTksIDAuOTY2ODE5IiwgXAotICAgICAgICAgICIwLjE3MTc0NSwgMC4zMTE1MTksIDAuNDM4MDEsIDAuNTI3OTksIDAuNjcxODcsIDAuNzk3Nzg3LCAwLjk3NzQ0MyIsIFwKLSAgICAgICAgICAiMC4xODUwMzksIDAuMzI0NzQyLCAwLjQ1MTIzNiwgMC41NDEyMTYsIDAuNjg1MTQ3LCAwLjgxMDk4MSwgMC45OTA3MzUiLCBcCi0gICAgICAgICAgIjAuMTk4MzY5LCAwLjMzODA1LCAwLjQ2NDUwNywgMC41NTQ1MzUsIDAuNjk4NDU2LCAwLjgyNDMzNCwgMS4wMDM5OSIsIFwKLSAgICAgICAgICAiMC4yMTE3NjcsIDAuMzUxNDMzLCAwLjQ3Nzk0MSwgMC41Njc5NzEsIDAuNzExODg2LCAwLjgzNzc3NSwgMS4wMTc0MyIsIFwKLSAgICAgICAgICAiMC4yMzMyOTMsIDAuMzcyOTc3LCAwLjQ5OTQ4OSwgMC41ODk0NzQsIDAuNzMzNDE4LCAwLjg1OTI3MiwgMS4wMzkwNiIsIFwKLSAgICAgICAgICAiMC4yNTIzNDcsIDAuMzkyMTI3LCAwLjUxODY0LCAwLjYwODYyMywgMC43NTI1NTcsIDAuODc4NDMyLCAxLjA1ODA5Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDgxMDQ0LCAwLjMyMTQwNSwgMC41NzE0MDIsIDAuNzUxNzg1LCAxLjA0MjYzLCAxLjMwMTUzLCAxLjY2Njk1IiwgXAotICAgICAgICAgICIwLjA4MTA1MiwgMC4zMjE1OTEsIDAuNTcyNzYzLCAwLjc1MjkxMiwgMS4wNDUyNCwgMS4zMDE0NCwgMS42NjY3NiIsIFwKLSAgICAgICAgICAiMC4wODExMzksIDAuMzIxNjI4LCAwLjU3Mjc1MywgMC43NTI4NjIsIDEuMDQzMjgsIDEuMjk5MDYsIDEuNjY3MTMiLCBcCi0gICAgICAgICAgIjAuMDgwOTk2LCAwLjMyMTQ5MywgMC41NzE2MzYsIDAuNzUyNzY1LCAxLjA0Mjk2LCAxLjMwMTQzLCAxLjY2Njc5IiwgXAotICAgICAgICAgICIwLjA4MTE3MSwgMC4zMjE2NDgsIDAuNTcxNjk1LCAwLjc1MjY5MiwgMS4wNDM5NCwgMS4zMDE0NSwgMS42NjY3OSIsIFwKLSAgICAgICAgICAiMC4wODExMjYsIDAuMzIxNjEsIDAuNTcyNjUxLCAwLjc1Mjc3MywgMS4wNDMyNywgMS4zMDEzNSwgMS42NjcxIiwgXAotICAgICAgICAgICIwLjA4MTE3NSwgMC4zMjE1OTUsIDAuNTcyNjE5LCAwLjc1Mjc4LCAxLjA0MzIsIDEuMzAxMzcsIDEuNjY2NzEiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNTU0NTksIDAuMzEzNTQsIDAuNDU5ODY1LCAwLjU2NDA3OCwgMC43MzA3NTMsIDAuODc2NDQsIDEuMDg0NTQiLCBcCi0gICAgICAgICAgIjAuMTY1OTQ4LCAwLjMyMzg5OCwgMC40NzAyNTgsIDAuNTc0NDUzLCAwLjc0MTExOCwgMC44ODY4MDcsIDEuMDk0OTIiLCBcCi0gICAgICAgICAgIjAuMTc4ODk0LCAwLjMzNjk5MSwgMC40ODMzMTQsIDAuNTg3NTI5LCAwLjc1NDIwNywgMC44OTk4OTMsIDEuMTA3OTgiLCBcCi0gICAgICAgICAgIjAuMTkyMjIyLCAwLjM1MDIyOCwgMC40OTY1NDMsIDAuNjAwNzU0LCAwLjc2NzM4MywgMC45MTMxMzUsIDEuMTIxMjIiLCBcCi0gICAgICAgICAgIjAuMjA1Mjc5LCAwLjM2MzI5NywgMC41MDk1ODcsIDAuNjEzODA5LCAwLjc4MDQyLCAwLjkyNjI4MiwgMS4xMzQ0MyIsIFwKLSAgICAgICAgICAiMC4yMjY1MDQsIDAuMzg0NDk0LCAwLjUzMDg0OSwgMC42MzUwNzksIDAuODAxNzY5LCAwLjk0NzQ2NCwgMS4xNTU1NSIsIFwKLSAgICAgICAgICAiMC4yNDUxNCwgMC40MDMxNTUsIDAuNTQ5NDgyLCAwLjY1MzcwNSwgMC44MjAzOSwgMC45NjYwODUsIDEuMTc0MjYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODQxNTEsIDAuMzYwMjQ0LCAwLjY0NjI4NiwgMC44NTA5NzEsIDEuMTg0MTYsIDEuNDc0MjIsIDEuODg2OTMiLCBcCi0gICAgICAgICAgIjAuMDg0MjM2LCAwLjM2MDI4MiwgMC42NDQ3NTcsIDAuODUxNTgyLCAxLjE4NDE5LCAxLjQ3NDI5LCAxLjg4NjgxIiwgXAotICAgICAgICAgICIwLjA4NDE0NiwgMC4zNjA0MDYsIDAuNjQ2MzMyLCAwLjg1MDkxOCwgMS4xODQxNCwgMS40NzQxOSwgMS44ODk4OCIsIFwKLSAgICAgICAgICAiMC4wODQyMjgsIDAuMzYwNTUzLCAwLjY0NzAwNSwgMC44NTEyNSwgMS4xODQyOSwgMS40NzQwMiwgMS44ODk2NCIsIFwKLSAgICAgICAgICAiMC4wODQyNjQsIDAuMzYwNTg2LCAwLjY0Njc1NSwgMC44NTMyMzQsIDEuMTg0NDYsIDEuNDcxMzcsIDEuODg3OTEiLCBcCi0gICAgICAgICAgIjAuMDg0MzEsIDAuMzYwMjE1LCAwLjY0NjI1OSwgMC44NTA3MzIsIDEuMTg0MiwgMS40NzQyNiwgMS44ODk4NyIsIFwKLSAgICAgICAgICAiMC4wODQzNywgMC4zNjA1MjIsIDAuNjQ0NzcxLCAwLjg1MzQzLCAxLjE4MTMxLCAxLjQ3MTc2LCAxLjg4NTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlMxIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE5NDI5NCwgMC4zMzQzMzksIDAuNDYwODU5LCAwLjU1MDg0NCwgMC42OTQ3NzMsIDAuODIwNjA1LCAxLjAwMDQiLCBcCi0gICAgICAgICAgIjAuMjA2NDI5LCAwLjM0NjM5OSwgMC40NzI4OTYsIDAuNTYyOTE4LCAwLjcwNjg4OSwgMC44MzI3NTIsIDEuMDEyNDEiLCBcCi0gICAgICAgICAgIjAuMjIxMzIsIDAuMzYxMzUzLCAwLjQ4Nzg3LCAwLjU3Nzg1NSwgMC43MjE3NDUsIDAuODQ3NiwgMS4wMjczMiIsIFwKLSAgICAgICAgICAiMC4yMzU2OTUsIDAuMzc1NzIyLCAwLjUwMjIzOSwgMC41OTIyMjEsIDAuNzM2MTExLCAwLjg2MTk3OCwgMS4wNDE2OCIsIFwKLSAgICAgICAgICAiMC4yNDg2MTgsIDAuMzg4Njc0LCAwLjUxNTE5LCAwLjYwNTE3MywgMC43NDkwOTksIDAuODc0OTQ2LCAxLjA1NDcxIiwgXAotICAgICAgICAgICIwLjI2NzIwMiwgMC40MDcxNTUsIDAuNTMzNTkxLCAwLjYyMzYwMiwgMC43Njc1MTcsIDAuODkzNDEzLCAxLjA3MzA3IiwgXAotICAgICAgICAgICIwLjI4MTczNSwgMC40MjE2NTMsIDAuNTQ4MTU1LCAwLjYzODE5NSwgMC43ODIxMDIsIDAuOTA4MDA4LCAxLjA4NzY3Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDgxOTEzLCAwLjMyMjA0NywgMC41NzI5NzksIDAuNzUzMDEyLCAxLjA0MzQsIDEuMjk5MTMsIDEuNjY3MSIsIFwKLSAgICAgICAgICAiMC4wODE5MzUsIDAuMzIxODk3LCAwLjU3MTk5NiwgMC43NTI5NDcsIDEuMDQ1ODUsIDEuMzAxNjMsIDEuNjY2OTMiLCBcCi0gICAgICAgICAgIjAuMDgxOTUzLCAwLjMyMjA1NCwgMC41NzI5ODEsIDAuNzUzMDA5LCAxLjA0NTM5LCAxLjMwMTEzLCAxLjY2NDI3IiwgXAotICAgICAgICAgICIwLjA4MTkzNiwgMC4zMjIwNTMsIDAuNTcyOTg2LCAwLjc1Mjk3NywgMS4wNDUzMiwgMS4zMDExOCwgMS42NjM5NiIsIFwKLSAgICAgICAgICAiMC4wODE4ODMsIDAuMzIyMDM5LCAwLjU3Mjk3NCwgMC43NTI5NzcsIDEuMDQzMzYsIDEuMjk5MDUsIDEuNjY3MTUiLCBcCi0gICAgICAgICAgIjAuMDgxOTQxLCAwLjMyMTk1OSwgMC41NzE3MTgsIDAuNzUyOTMyLCAxLjA0NDAyLCAxLjMwMTU0LCAxLjY2Njg1IiwgXAotICAgICAgICAgICIwLjA4MTU5MywgMC4zMjIwNSwgMC41NzE4ODYsIDAuNzUyOTE3LCAxLjA0MzgzLCAxLjMwMTU3LCAxLjY2Njg4Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTkxODkxLCAwLjM0OTg5MywgMC40OTYxOTgsIDAuNjAwMzgyLCAwLjc2NzAyNSwgMC45MTI3MDQsIDEuMTIwOCIsIFwKLSAgICAgICAgICAiMC4yMDQwNjcsIDAuMzYyMTYxLCAwLjUwODQ4NywgMC42MTI2NzEsIDAuNzc5MzE3LCAwLjkyNDk5MywgMS4xMzMwOSIsIFwKLSAgICAgICAgICAiMC4yMTk0NDYsIDAuMzc3NTk2LCAwLjUyMzg3NywgMC42MjgwNzEsIDAuNzk0NzQ0LCAwLjk0MDQxMiwgMS4xNDg0OCIsIFwKLSAgICAgICAgICAiMC4yMzQ1LCAwLjM5MjYxNCwgMC41Mzg5NTYsIDAuNjQzMTM0LCAwLjgwOTc4NSwgMC45NTU1MjksIDEuMTYzNTkiLCBcCi0gICAgICAgICAgIjAuMjQ5Mjc4LCAwLjQwNzI4MywgMC41NTM1NywgMC42NTc3MzksIDAuODI0NDAxLCAwLjk3MDEwMSwgMS4xNzgyOCIsIFwKLSAgICAgICAgICAiMC4yNzA1NDEsIDAuNDI4NTI4LCAwLjU3NDc3NCwgMC42NzkwMDMsIDAuODQ1NTU5LCAwLjk5MTMyNCwgMS4xOTk1NiIsIFwKLSAgICAgICAgICAiMC4yODc2MTUsIDAuNDQ1NjUyLCAwLjU5MTkzOSwgMC42OTYxMzQsIDAuODYyODA2LCAxLjAwODQ3LCAxLjIxNjU0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg0NjI3LCAwLjM2MDM5MywgMC42NDUwMzEsIDAuODUyMjc5LCAxLjE4NDIxLCAxLjQ3NDM1LCAxLjg4Njg2IiwgXAotICAgICAgICAgICIwLjA4NDU1OCwgMC4zNjAyNTYsIDAuNjQ0ODA3LCAwLjg1MjA1MSwgMS4xODQxMiwgMS40NzQxOCwgMS44ODY4IiwgXAotICAgICAgICAgICIwLjA4NDQ2MiwgMC4zNjA2NjcsIDAuNjQ2MjExLCAwLjg1MDQ3NSwgMS4xODM5NiwgMS40NzQwMiwgMS44ODk1OSIsIFwKLSAgICAgICAgICAiMC4wODQ1NjksIDAuMzYwMjQxLCAwLjY0NDk0NSwgMC44NTEzNjYsIDEuMTg0LCAxLjQ3MzYzLCAxLjg4ODk5IiwgXAotICAgICAgICAgICIwLjA4NDU5OCwgMC4zNjA1MDQsIDAuNjQ0Njg4LCAwLjg1MzEwNCwgMS4xODM5OCwgMS40NzEzNSwgMS44ODgxNyIsIFwKLSAgICAgICAgICAiMC4wODQ2NDMsIDAuMzYwMjQyLCAwLjY0Njc2MiwgMC44NTM1MjgsIDEuMTg0NDUsIDEuNDczMTgsIDEuODgyODMiLCBcCi0gICAgICAgICAgIjAuMDg0Njc1LCAwLjM2MDQ0NiwgMC42NDU5MjksIDAuODUwMzgzLCAxLjE4Mzg2LCAxLjQ3Mzk3LCAxLjg4OTYzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDYyNiwgMC4wMDYzOCwgMC4wMDY0MDEsIDAuMDA2NDA4LCAwLjAwNjQxNCwgMC4wMDY0MTcsIDAuMDA2NDIiLCBcCi0gICAgICAgICAgIjAuMDA2MjU1LCAwLjAwNjM3NSwgMC4wMDYzOTYsIDAuMDA2NDAzLCAwLjAwNjQwOSwgMC4wMDY0MTIsIDAuMDA2NDE1IiwgXAotICAgICAgICAgICIwLjAwNjI1MiwgMC4wMDYzNzEsIDAuMDA2MzkzLCAwLjAwNjM5OSwgMC4wMDY0MDUsIDAuMDA2NDA4LCAwLjAwNjQxMSIsIFwKLSAgICAgICAgICAiMC4wMDYyNDgsIDAuMDA2MzY5LCAwLjAwNjM5LCAwLjAwNjM5NywgMC4wMDY0MDIsIDAuMDA2NDA2LCAwLjAwNjQwNyIsIFwKLSAgICAgICAgICAiMC4wMDYyNDcsIDAuMDA2MzY2LCAwLjAwNjM4OCwgMC4wMDYzOTQsIDAuMDA2NCwgMC4wMDY0MDMsIDAuMDA2NDA1IiwgXAotICAgICAgICAgICIwLjAwNjI0MywgMC4wMDYzNjMsIDAuMDA2MzgzLCAwLjAwNjM5MSwgMC4wMDYzOTYsIDAuMDA2NCwgMC4wMDY0MDEiLCBcCi0gICAgICAgICAgIjAuMDA2MjQsIDAuMDA2MzU5LCAwLjAwNjM4LCAwLjAwNjM4NywgMC4wMDYzOTMsIDAuMDA2Mzk2LCAwLjAwNjM5OCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1NDQ4LCAwLjAwNTYyMywgMC4wMDU2NTUsIDAuMDA1NjY1LCAwLjAwNTY3NSwgMC4wMDU2NzksIDAuMDA1Njg0IiwgXAotICAgICAgICAgICIwLjAwNTQzNiwgMC4wMDU2MTMsIDAuMDA1NjQ0LCAwLjAwNTY1NSwgMC4wMDU2NjQsIDAuMDA1NjY5LCAwLjAwNTY3MyIsIFwKLSAgICAgICAgICAiMC4wMDU0MywgMC4wMDU2MDYsIDAuMDA1NjM4LCAwLjAwNTY0OCwgMC4wMDU2NTcsIDAuMDA1NjYyLCAwLjAwNTY2NyIsIFwKLSAgICAgICAgICAiMC4wMDU0MjUsIDAuMDA1NjAyLCAwLjAwNTYzMywgMC4wMDU2NDQsIDAuMDA1NjUzLCAwLjAwNTY1OCwgMC4wMDU2NjIiLCBcCi0gICAgICAgICAgIjAuMDA1NDIyLCAwLjAwNTU5OCwgMC4wMDU2MywgMC4wMDU2NCwgMC4wMDU2NDksIDAuMDA1NjU0LCAwLjAwNTY1OSIsIFwKLSAgICAgICAgICAiMC4wMDU0MTgsIDAuMDA1NTk0LCAwLjAwNTYyNiwgMC4wMDU2MzYsIDAuMDA1NjQ1LCAwLjAwNTY1LCAwLjAwNTY1NCIsIFwKLSAgICAgICAgICAiMC4wMDU0MTUsIDAuMDA1NTkxLCAwLjAwNTYyMiwgMC4wMDU2MzMsIDAuMDA1NjQyLCAwLjAwNTY0NywgMC4wMDU2NTEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjMyLCAwLjAwNjQ0LCAwLjAwNjQ2LCAwLjAwNjQ2NiwgMC4wMDY0NzIsIDAuMDA2NDc1LCAwLjAwNjQ3OCIsIFwKLSAgICAgICAgICAiMC4wMDYzMTQsIDAuMDA2NDM0LCAwLjAwNjQ1NSwgMC4wMDY0NjEsIDAuMDA2NDY3LCAwLjAwNjQ3LCAwLjAwNjQ3MiIsIFwKLSAgICAgICAgICAiMC4wMDYzMTEsIDAuMDA2NDMxLCAwLjAwNjQ1MiwgMC4wMDY0NTgsIDAuMDA2NDYzLCAwLjAwNjQ2NywgMC4wMDY0NjkiLCBcCi0gICAgICAgICAgIjAuMDA2MzA4LCAwLjAwNjQyOCwgMC4wMDY0NDgsIDAuMDA2NDU3LCAwLjAwNjQ2LCAwLjAwNjQ2NSwgMC4wMDY0NjYiLCBcCi0gICAgICAgICAgIjAuMDA2MzA2LCAwLjAwNjQyNiwgMC4wMDY0NDcsIDAuMDA2NDUzLCAwLjAwNjQ1OSwgMC4wMDY0NjEsIDAuMDA2NDY0IiwgXAotICAgICAgICAgICIwLjAwNjMwMiwgMC4wMDY0MjIsIDAuMDA2NDQzLCAwLjAwNjQ1LCAwLjAwNjQ1NSwgMC4wMDY0NTgsIDAuMDA2NDYiLCBcCi0gICAgICAgICAgIjAuMDA2Mjk5LCAwLjAwNjQxOSwgMC4wMDY0NCwgMC4wMDY0NDYsIDAuMDA2NDUyLCAwLjAwNjQ1NSwgMC4wMDY0NTgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNTMzNCwgMC4wMDU1MDksIDAuMDA1NTQxLCAwLjAwNTU1MSwgMC4wMDU1NiwgMC4wMDU1NjUsIDAuMDA1NTY5IiwgXAotICAgICAgICAgICIwLjAwNTMyMywgMC4wMDU0OTksIDAuMDA1NTMxLCAwLjAwNTU0MSwgMC4wMDU1NSwgMC4wMDU1NTQsIDAuMDA1NTU5IiwgXAotICAgICAgICAgICIwLjAwNTMxNywgMC4wMDU0OTIsIDAuMDA1NTI0LCAwLjAwNTUzNCwgMC4wMDU1NDMsIDAuMDA1NTQ4LCAwLjAwNTU1MiIsIFwKLSAgICAgICAgICAiMC4wMDUzMTIsIDAuMDA1NDg4LCAwLjAwNTUyLCAwLjAwNTUzLCAwLjAwNTUzOSwgMC4wMDU1NDMsIDAuMDA1NTQ3IiwgXAotICAgICAgICAgICIwLjAwNTMxLCAwLjAwNTQ4NSwgMC4wMDU1MTYsIDAuMDA1NTI2LCAwLjAwNTUzNSwgMC4wMDU1NCwgMC4wMDU1NDQiLCBcCi0gICAgICAgICAgIjAuMDA1MzA1LCAwLjAwNTQ4LCAwLjAwNTUxMiwgMC4wMDU1MjIsIDAuMDA1NTMxLCAwLjAwNTUzNiwgMC4wMDU1NCIsIFwKLSAgICAgICAgICAiMC4wMDUzMDIsIDAuMDA1NDc3LCAwLjAwNTUwOSwgMC4wMDU1MTksIDAuMDA1NTI4LCAwLjAwNTUzMywgMC4wMDU1MzciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNTU0OCwgMC4wMDU2ODUsIDAuMDA1NzA4LCAwLjAwNTcxNiwgMC4wMDU3MjIsIDAuMDA1NzI1LCAwLjAwNTcyOSIsIFwKLSAgICAgICAgICAiMC4wMDU1MzUsIDAuMDA1NjcyLCAwLjAwNTY5NiwgMC4wMDU3MDMsIDAuMDA1NzEsIDAuMDA1NzEzLCAwLjAwNTcxNiIsIFwKLSAgICAgICAgICAiMC4wMDU1MjUsIDAuMDA1NjYyLCAwLjAwNTY4NiwgMC4wMDU2OTMsIDAuMDA1NywgMC4wMDU3MDIsIDAuMDA1NzA2IiwgXAotICAgICAgICAgICIwLjAwNTUxOSwgMC4wMDU2NTYsIDAuMDA1NjgsIDAuMDA1Njg3LCAwLjAwNTY5NCwgMC4wMDU2OTcsIDAuMDA1NyIsIFwKLSAgICAgICAgICAiMC4wMDU1MTUsIDAuMDA1NjUyLCAwLjAwNTY3NSwgMC4wMDU2ODMsIDAuMDA1Njg5LCAwLjAwNTY5MiwgMC4wMDU2OTYiLCBcCi0gICAgICAgICAgIjAuMDA1NTExLCAwLjAwNTY0NywgMC4wMDU2NzEsIDAuMDA1Njc4LCAwLjAwNTY4NSwgMC4wMDU2ODgsIDAuMDA1NjkyIiwgXAotICAgICAgICAgICIwLjAwNTUwNywgMC4wMDU2NDQsIDAuMDA1NjY4LCAwLjAwNTY3NSwgMC4wMDU2ODIsIDAuMDA1Njg1LCAwLjAwNTY4OSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1MDg2LCAwLjAwNTI2NywgMC4wMDUyOTgsIDAuMDA1MzA5LCAwLjAwNTMxNywgMC4wMDUzMjIsIDAuMDA1MzI2IiwgXAotICAgICAgICAgICIwLjAwNTA2OSwgMC4wMDUyNSwgMC4wMDUyODEsIDAuMDA1MjkxLCAwLjAwNTMsIDAuMDA1MzA0LCAwLjAwNTMwOCIsIFwKLSAgICAgICAgICAiMC4wMDUwNTcsIDAuMDA1MjM4LCAwLjAwNTI3LCAwLjAwNTI4LCAwLjAwNTI4OSwgMC4wMDUyOTMsIDAuMDA1Mjk3IiwgXAotICAgICAgICAgICIwLjAwNTA1MSwgMC4wMDUyMzIsIDAuMDA1MjY0LCAwLjAwNTI3NCwgMC4wMDUyODMsIDAuMDA1Mjg3LCAwLjAwNTI5MSIsIFwKLSAgICAgICAgICAiMC4wMDUwNDcsIDAuMDA1MjI4LCAwLjAwNTI1OSwgMC4wMDUyNjksIDAuMDA1Mjc4LCAwLjAwNTI4MywgMC4wMDUyODciLCBcCi0gICAgICAgICAgIjAuMDA1MDQ2LCAwLjAwNTIyNywgMC4wMDUyNTksIDAuMDA1MjY5LCAwLjAwNTI3OCwgMC4wMDUyODIsIDAuMDA1Mjg2IiwgXAotICAgICAgICAgICIwLjAwNTA0NSwgMC4wMDUyMjYsIDAuMDA1MjU4LCAwLjAwNTI2OCwgMC4wMDUyNzcsIDAuMDA1MjgxLCAwLjAwNTI4NiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlMwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjA4LCAwLjAwNjE5OSwgMC4wMDYyMiwgMC4wMDYyMjYsIDAuMDA2MjMxLCAwLjAwNjIzNSwgMC4wMDYyMzgiLCBcCi0gICAgICAgICAgIjAuMDA2MDcsIDAuMDA2MTksIDAuMDA2MjEsIDAuMDA2MjE3LCAwLjAwNjIyMiwgMC4wMDYyMjQsIDAuMDA2MjI3IiwgXAotICAgICAgICAgICIwLjAwNjA2NCwgMC4wMDYxODQsIDAuMDA2MjAzLCAwLjAwNjIxLCAwLjAwNjIxNiwgMC4wMDYyMTksIDAuMDA2MjIiLCBcCi0gICAgICAgICAgIjAuMDA2MDU5LCAwLjAwNjE3OCwgMC4wMDYxOTgsIDAuMDA2MjA1LCAwLjAwNjIxLCAwLjAwNjIxNSwgMC4wMDYyMTUiLCBcCi0gICAgICAgICAgIjAuMDA2MDU3LCAwLjAwNjE3NywgMC4wMDYxOTcsIDAuMDA2MjAzLCAwLjAwNjIwOSwgMC4wMDYyMTEsIDAuMDA2MjE0IiwgXAotICAgICAgICAgICIwLjAwNjA1NSwgMC4wMDYxNzUsIDAuMDA2MTk1LCAwLjAwNjIwMSwgMC4wMDYyMDcsIDAuMDA2MjA5LCAwLjAwNjIxMiIsIFwKLSAgICAgICAgICAiMC4wMDYwNTUsIDAuMDA2MTc1LCAwLjAwNjE5NSwgMC4wMDYyMDEsIDAuMDA2MjA3LCAwLjAwNjIwOSwgMC4wMDYyMTIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjczMywgMC4wMDY5MDgsIDAuMDA2OTM5LCAwLjAwNjk0OSwgMC4wMDY5NTgsIDAuMDA2OTYzLCAwLjAwNjk2NyIsIFwKLSAgICAgICAgICAiMC4wMDY3MzEsIDAuMDA2OTA2LCAwLjAwNjkzNywgMC4wMDY5NDcsIDAuMDA2OTU2LCAwLjAwNjk2MSwgMC4wMDY5NjUiLCBcCi0gICAgICAgICAgIjAuMDA2NzI4LCAwLjAwNjkwMywgMC4wMDY5MzQsIDAuMDA2OTQ0LCAwLjAwNjk1MiwgMC4wMDY5NTcsIDAuMDA2OTYxIiwgXAotICAgICAgICAgICIwLjAwNjcyNCwgMC4wMDY4OTksIDAuMDA2OTMsIDAuMDA2OTQxLCAwLjAwNjk0OSwgMC4wMDY5NTQsIDAuMDA2OTU4IiwgXAotICAgICAgICAgICIwLjAwNjcyMSwgMC4wMDY4OTcsIDAuMDA2OTI4LCAwLjAwNjkzOCwgMC4wMDY5NDcsIDAuMDA2OTUxLCAwLjAwNjk1NiIsIFwKLSAgICAgICAgICAiMC4wMDY3MTksIDAuMDA2ODk0LCAwLjAwNjkyNiwgMC4wMDY5MzYsIDAuMDA2OTQ0LCAwLjAwNjk0OSwgMC4wMDY5NTMiLCBcCi0gICAgICAgICAgIjAuMDA2NzE3LCAwLjAwNjg5MywgMC4wMDY5MjQsIDAuMDA2OTM0LCAwLjAwNjk0MywgMC4wMDY5NDcsIDAuMDA2OTUyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUzEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1NTk1LCAwLjAwNTcxNSwgMC4wMDU3MzgsIDAuMDA1NzQ2LCAwLjAwNTc1MywgMC4wMDU3NTYsIDAuMDA1NzYiLCBcCi0gICAgICAgICAgIjAuMDA1NTk4LCAwLjAwNTcxOSwgMC4wMDU3NDEsIDAuMDA1NzQ5LCAwLjAwNTc1NiwgMC4wMDU3NTksIDAuMDA1NzYyIiwgXAotICAgICAgICAgICIwLjAwNTU5OSwgMC4wMDU3MiwgMC4wMDU3NDMsIDAuMDA1NzUsIDAuMDA1NzU2LCAwLjAwNTc2LCAwLjAwNTc2MyIsIFwKLSAgICAgICAgICAiMC4wMDU1OTgsIDAuMDA1NzE5LCAwLjAwNTc0MSwgMC4wMDU3NDksIDAuMDA1NzU2LCAwLjAwNTc1OCwgMC4wMDU3NjIiLCBcCi0gICAgICAgICAgIjAuMDA1NTk3LCAwLjAwNTcxOSwgMC4wMDU3NDEsIDAuMDA1NzQ4LCAwLjAwNTc1NCwgMC4wMDU3NTgsIDAuMDA1NzYxIiwgXAotICAgICAgICAgICIwLjAwNTU5NSwgMC4wMDU3MTcsIDAuMDA1NzM5LCAwLjAwNTc0NiwgMC4wMDU3NTMsIDAuMDA1NzU2LCAwLjAwNTc2IiwgXAotICAgICAgICAgICIwLjAwNTU5NCwgMC4wMDU3MTYsIDAuMDA1NzM5LCAwLjAwNTc0NSwgMC4wMDU3NTIsIDAuMDA1NzU1LCAwLjAwNTc1OCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0NzA5LCAwLjAwNDg4NiwgMC4wMDQ5MTksIDAuMDA0OTMsIDAuMDA0OTM5LCAwLjAwNDk0NSwgMC4wMDQ5NDkiLCBcCi0gICAgICAgICAgIjAuMDA0NzA1LCAwLjAwNDg4MywgMC4wMDQ5MTUsIDAuMDA0OTI2LCAwLjAwNDkzNiwgMC4wMDQ5NDEsIDAuMDA0OTQ2IiwgXAotICAgICAgICAgICIwLjAwNDcwMiwgMC4wMDQ4NzksIDAuMDA0OTEyLCAwLjAwNDkyMiwgMC4wMDQ5MzIsIDAuMDA0OTM3LCAwLjAwNDk0MiIsIFwKLSAgICAgICAgICAiMC4wMDQ2OTgsIDAuMDA0ODc2LCAwLjAwNDkwOSwgMC4wMDQ5MTksIDAuMDA0OTI5LCAwLjAwNDkzNCwgMC4wMDQ5MzkiLCBcCi0gICAgICAgICAgIjAuMDA0Njk3LCAwLjAwNDg3NSwgMC4wMDQ5MDcsIDAuMDA0OTE4LCAwLjAwNDkyNywgMC4wMDQ5MzIsIDAuMDA0OTM3IiwgXAotICAgICAgICAgICIwLjAwNDY5NSwgMC4wMDQ4NzMsIDAuMDA0OTA2LCAwLjAwNDkxNywgMC4wMDQ5MjYsIDAuMDA0OTMyLCAwLjAwNDkzNiIsIFwKLSAgICAgICAgICAiMC4wMDQ2OTQsIDAuMDA0ODczLCAwLjAwNDkwNiwgMC4wMDQ5MTYsIDAuMDA0OTI2LCAwLjAwNDkzMSwgMC4wMDQ5MzYiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IE1YSTRYMiAqCi0gKiAtLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKE1YSTRYMikgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjI0NjIzNTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjMzMDU1OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYzMTM5OTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2MzMwNTU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNzMyLCAwLjAwMDcyMiwgMC4wMDA3MTYsIDAuMDAwNzEyLCAwLjAwMDcwOSwgMC4wMDA3MDUsIDAuMDAwNzAzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyMDMxLCAwLjAwMjAyNSwgMC4wMDIwMjIsIDAuMDAyMDIsIDAuMDAyMDE5LCAwLjAwMjAxNywgMC4wMDIwMTYiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDU4MDAwODsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA1Nzc5OTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA1ODAwMDg7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMTYsIDAuMDAwMTYxLCAwLjAwMDE2MiwgMC4wMDAxNjIsIDAuMDAwMTYyLCAwLjAwMDE2MiwgMC4wMDAxNjIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxNjcsIDAuMDAwMTY2LCAwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiwgMC4wMDAxNjYiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEMpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDU1NzA1ODsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA1NTQ5MzM7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNTU3MDU4OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDk5MiwgMC4wMDA5ODIsIDAuMDAwOTc2LCAwLjAwMDk3MSwgMC4wMDA5NjgsIDAuMDAwOTY1LCAwLjAwMDk2MiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjA3NiwgMC4wMDIwNzEsIDAuMDAyMDY4LCAwLjAwMjA2NiwgMC4wMDIwNjQsIDAuMDAyMDYyLCAwLjAwMjA2MSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNTU4MjI7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNTU2MzM7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNTU4MjI7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMTU5LCAwLjAwMDE2MSwgMC4wMDAxNjEsIDAuMDAwMTYyLCAwLjAwMDE2MiwgMC4wMDAxNjIsIDAuMDAwMTYyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMTY2LCAwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY2Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAyMDQxNjE7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAyMDQxMDg7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAyMDQxNjE7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNDU2LCAwLjAwMDQ0MiwgMC4wMDA0MzMsIDAuMDAwNDI3LCAwLjAwMDQyMywgMC4wMDA0MjIsIDAuMDAwNDIyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyOTQzLCAwLjAwMjkzNCwgMC4wMDI5MjcsIDAuMDAyOTI0LCAwLjAwMjkyMiwgMC4wMDI5MjEsIDAuMDAyOTE2Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTMSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxMzkyNzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDEzOTIwNjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDEzOTI3OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDQ0OSwgMC4wMDA0MzQsIDAuMDAwNDIzLCAwLjAwMDQxOCwgMC4wMDA0MTYsIDAuMDAwNDEzLCAwLjAwMDQxMyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjA0OSwgMC4wMDIwMzksIDAuMDAyMDMxLCAwLjAwMjAyNywgMC4wMDIwMjYsIDAuMDAyMDI0LCAwLjAwMjAyMyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjI2MzM3MTsKLSAgICBmdW5jdGlvbiA6ICIoISgoUzEgKChTMCBEKSArICghUzAgQykpKSArICghUzEgKChTMCBCKSArICghUzAgQSkpKSkpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMDQ4LCAwLjQ5MzQ5NywgMC42MzgzMDQsIDAuODE5MTgxLCAwLjk5OTczOCwgMS4xODAyNSwgMS4zNjA4IiwgXAotICAgICAgICAgICIwLjMxNjI1OSwgMC41MDQ5MjQsIDAuNjQ5NzMxLCAwLjgzMDYwNSwgMS4wMTExNiwgMS4xOTE2NywgMS4zNzIyMiIsIFwKLSAgICAgICAgICAiMC4zMjk0ODUsIDAuNTE3OTU2LCAwLjY2Mjc3NSwgMC44NDM1MjcsIDEuMDI0MTYsIDEuMjA0NzIsIDEuMzg1MjQiLCBcCi0gICAgICAgICAgIjAuMzQxNzk1LCAwLjUzMDQzNCwgMC42NzUyNiwgMC44NTU5OTksIDEuMDM2NjMsIDEuMjE3MiwgMS4zOTc3MyIsIFwKLSAgICAgICAgICAiMC4zNTQxMzcsIDAuNTQyODI5LCAwLjY4NzYzNywgMC44Njg1MTIsIDEuMDQ5MDcsIDEuMjI5NTgsIDEuNDEwMTMiLCBcCi0gICAgICAgICAgIjAuMzczNTMxLCAwLjU2MjI0MywgMC43MDcwNjUsIDAuODg3ODY0LCAxLjA2ODUsIDEuMjQ5MDIsIDEuNDI5NTQiLCBcCi0gICAgICAgICAgIjAuMzkwMTk2LCAwLjU3ODkxOCwgMC43MjM3NCwgMC45MDQ0NzQsIDEuMDg1MTMsIDEuMjY1NzksIDEuNDQ2MjEiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTE0NjksIDAuNDY2OTExLCAwLjc1NzY4NSwgMS4xMjM4NywgMS40OTUyNSwgMS44NjM4NywgMi4yMzAxMSIsIFwKLSAgICAgICAgICAiMC4xMTQ2OTUsIDAuNDY2ODk0LCAwLjc1NzY0OSwgMS4xMjM5LCAxLjQ5NTIzLCAxLjg2Mzg5LCAyLjIyOTk4IiwgXAotICAgICAgICAgICIwLjExNDkyMiwgMC40NjY4OCwgMC43NTc2MSwgMS4xMjQ2MiwgMS40OTI3LCAxLjg2MTI3LCAyLjIzMjc1IiwgXAotICAgICAgICAgICIwLjExNDg4LCAwLjQ2Njg4MywgMC43NTc2MjUsIDEuMTI2MzcsIDEuNDkyNjksIDEuODYzODgsIDIuMjMyNzMiLCBcCi0gICAgICAgICAgIjAuMTE0NjgzLCAwLjQ2NjkwNSwgMC43NTc2NDksIDEuMTIzODgsIDEuNDk1MjMsIDEuODYzOSwgMi4yMzAwMyIsIFwKLSAgICAgICAgICAiMC4xMTQ3MzgsIDAuNDY2ODk2LCAwLjc1NzYzMiwgMS4xMjQyNiwgMS40OTUyNSwgMS44NjM5NSwgMi4yMjk4MiIsIFwKLSAgICAgICAgICAiMC4xMTQ3NDQsIDAuNDY2ODkyLCAwLjc1NzYyNCwgMS4xMjYzMSwgMS40OTUwMywgMS44NjQzNiwgMi4yMzI0NSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMDc5MzMsIDAuNTE5Nzc3LCAwLjY4NDE0LCAwLjg4OTQxNSwgMS4wOTQ1MywgMS4yOTk2NSwgMS41MDQ4NyIsIFwKLSAgICAgICAgICAiMC4zMTk2ODQsIDAuNTMxNDU1LCAwLjY5NTgwOCwgMC45MDExLCAxLjEwNjIxLCAxLjMxMTMsIDEuNTE2NDIiLCBcCi0gICAgICAgICAgIjAuMzMzNDk4LCAwLjU0NTI0OSwgMC43MDk2MTYsIDAuOTE0OTIzLCAxLjEyMDAzLCAxLjMyNTA5LCAxLjUzMDIzIiwgXAotICAgICAgICAgICIwLjM0NzE2NCwgMC41NTg5MDgsIDAuNzIzMjc5LCAwLjkyODU5LCAxLjEzMzcsIDEuMzM4NzYsIDEuNTQzODkiLCBcCi0gICAgICAgICAgIjAuMzYwNzQxLCAwLjU3MjYwNCwgMC43MzY5OTgsIDAuOTQyMjUxLCAxLjE0NzM2LCAxLjM1MjQ3LCAxLjU1NzYxIiwgXAotICAgICAgICAgICIwLjM4MjY5OCwgMC41OTQ0NDQsIDAuNzU4ODE5LCAwLjk2NDEyMiwgMS4xNjkyMywgMS4zNzQyOSwgMS41Nzk0MyIsIFwKLSAgICAgICAgICAiMC40MDE1NDMsIDAuNjEzMjgsIDAuNzc3NjQ3LCAwLjk4Mjk3MSwgMS4xODgwNiwgMS4zOTMxNCwgMS41OTgyNSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMjAyNzIsIDAuNTE0MzcxLCAwLjgzNjkyNSwgMS4yNDczNSwgMS42NTY0OCwgMi4wNjE2OCwgMi40NzM0NCIsIFwKLSAgICAgICAgICAiMC4xMjAzMjEsIDAuNTE0Mjk1LCAwLjgzNzc3MSwgMS4yNDcxNCwgMS42NTYwNSwgMi4wNjI0OCwgMi40NzI4NSIsIFwKLSAgICAgICAgICAiMC4xMjAzMjEsIDAuNTE0MzA5LCAwLjgzNzA2OCwgMS4yNDcwOCwgMS42NTU5MSwgMi4wNjU4NiwgMi40NzMyMiIsIFwKLSAgICAgICAgICAiMC4xMjAzMiwgMC41MTQzMjUsIDAuODM2OTgzLCAxLjI0NzA1LCAxLjY1NTg2LCAyLjA2NTc4LCAyLjQ3MjY1IiwgXAotICAgICAgICAgICIwLjEyMDMxNiwgMC41MTQyOTcsIDAuODM5ODUsIDEuMjQ3MTIsIDEuNjU2MSwgMi4wNjE3MywgMi40NzM3NyIsIFwKLSAgICAgICAgICAiMC4xMjAzMTUsIDAuNTEzODg0LCAwLjgzNzA4MiwgMS4yNDcwMywgMS42NTU4NywgMi4wNjU4NywgMi40NzI1OSIsIFwKLSAgICAgICAgICAiMC4xMjAzMDgsIDAuNTE0MzEzLCAwLjgzNzExMywgMS4yNDQ3NiwgMS42NTU5MSwgMi4wNjU0NiwgMi40NzA5MiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMDkyMTgsIDAuNDk3NjkzLCAwLjY0MjUxMywgMC44MjMyNDIsIDEuMDAzOSwgMS4xODQ0NSwgMS4zNjQ5OCIsIFwKLSAgICAgICAgICAiMC4zMjA1MTQsIDAuNTA5MjE3LCAwLjY1NDAyNSwgMC44MzQ5MDIsIDEuMDE1NDYsIDEuMTk1OTcsIDEuMzc2NTIiLCBcCi0gICAgICAgICAgIjAuMzMzNzcxLCAwLjUyMjQ3MywgMC42NjcyODIsIDAuODQ4MDkyLCAxLjAyODcyLCAxLjIwOTIzLCAxLjM4OTc3IiwgXAotICAgICAgICAgICIwLjM0NjQxLCAwLjUzNTEzMiwgMC42Nzk5NTYsIDAuODYwNzU1LCAxLjA0MTQ0LCAxLjIyMTkxLCAxLjQwMjQzIiwgXAotICAgICAgICAgICIwLjM1ODg1LCAwLjU0NzUyNiwgMC42OTIzMywgMC44NzMxNTYsIDEuMDUzNzIsIDEuMjM0MjMsIDEuNDE0OTYiLCBcCi0gICAgICAgICAgIjAuMzc4MzAzLCAwLjU2NzAxNSwgMC43MTE4MzgsIDAuODkyNjM4LCAxLjA3MzIxLCAxLjI1Mzc5LCAxLjQzNDMyIiwgXAotICAgICAgICAgICIwLjM5NTAxLCAwLjU4MzcxNiwgMC43Mjg1MywgMC45MDkzMzYsIDEuMDg5OTYsIDEuMjcwNDgsIDEuNDUxMDEiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTE0OTUyLCAwLjQ2NjkwMSwgMC43NTc2NTEsIDEuMTI2MjYsIDEuNDkyOTUsIDEuODYzNzgsIDIuMjMyODciLCBcCi0gICAgICAgICAgIjAuMTE0NzEyLCAwLjQ2NjkwMSwgMC43NTc2ODgsIDEuMTIzODcsIDEuNDk1MjUsIDEuODYzODgsIDIuMjMwMDgiLCBcCi0gICAgICAgICAgIjAuMTE0NzExLCAwLjQ2NjkxMSwgMC43NTc2NDgsIDEuMTI0MjMsIDEuNDk1MjQsIDEuODYzOTIsIDIuMjMwMDQiLCBcCi0gICAgICAgICAgIjAuMTE0NzQ3LCAwLjQ2NjksIDAuNzU3NjM4LCAxLjEyNDI1LCAxLjQ5NTQyLCAxLjg2Mzk2LCAyLjIyOTc3IiwgXAotICAgICAgICAgICIwLjExNDczMywgMC40NjY4NCwgMC43NTg5NjQsIDEuMTIzODYsIDEuNDk1MTcsIDEuODYzODYsIDIuMjI4MjkiLCBcCi0gICAgICAgICAgIjAuMTE0NzM0LCAwLjQ2NjkwMiwgMC43NTc2MzcsIDEuMTI0MjUsIDEuNDk0ODEsIDEuODYzOTUsIDIuMjI5ODQiLCBcCi0gICAgICAgICAgIjAuMTE0NzE3LCAwLjQ2NjkwNiwgMC43NTc2NDIsIDEuMTI0MTgsIDEuNDk1MjQsIDEuODYzOTMsIDIuMjI5OTciKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzEwOTk2LCAwLjUyMjczNywgMC42ODcxMjcsIDAuODkyNDE3LCAxLjA5NzUzLCAxLjMwMjYyLCAxLjUwNzc0IiwgXAotICAgICAgICAgICIwLjMyMjc3MSwgMC41MzQ1MTgsIDAuNjk4ODg4LCAwLjkwNDIwMSwgMS4xMDk0MSwgMS4zMTQzNywgMS41MTk1IiwgXAotICAgICAgICAgICIwLjMzNjgyMSwgMC41NDg1NjcsIDAuNzEyOTQzLCAwLjkxODI1MywgMS4xMjMzNiwgMS4zMjg0MiwgMS41MzM1NSIsIFwKLSAgICAgICAgICAiMC4zNTA2MzcsIDAuNTYyNDEsIDAuNzI2NzUsIDAuOTMyMDY3LCAxLjEzNzE3LCAxLjM0MjI3LCAxLjU0NzM3IiwgXAotICAgICAgICAgICIwLjM2NDM2MiwgMC41NzYwOTcsIDAuNzQwNDYzLCAwLjk0NTY4NywgMS4xNTA4NywgMS4zNTYxMSwgMS41NjEwNiIsIFwKLSAgICAgICAgICAiMC4zODY0NTgsIDAuNTk4MjA3LCAwLjc2MjU4NCwgMC45Njc4OSwgMS4xNzMsIDEuMzc4MDYsIDEuNTgzMTkiLCBcCi0gICAgICAgICAgIjAuNDA0ODk3LCAwLjYxNjg1NSwgMC43ODEyMDcsIDAuOTg2NTA1LCAxLjE5MTYyLCAxLjM5NjcxLCAxLjYwMTgxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEyMDM0MywgMC41MTQzNTUsIDAuODM4NDg5LCAxLjI0NzI2LCAxLjY1NjIxLCAyLjA2MjcsIDIuNDc0MTMiLCBcCi0gICAgICAgICAgIjAuMTIwMzM2LCAwLjUxNDM1NCwgMC44MzY5OTUsIDEuMjQ3MDcsIDEuNjUwOCwgMi4wNjU4MSwgMi40NzIyMiIsIFwKLSAgICAgICAgICAiMC4xMjAzNDIsIDAuNTE0MzU1LCAwLjgzNzAyMSwgMS4yNDcwNiwgMS42NTU4NiwgMi4wNjU4MiwgMi40NzI2OCIsIFwKLSAgICAgICAgICAiMC4xMjAzMzUsIDAuNTE0MzMxLCAwLjgzOTM2NywgMS4yNDcxMSwgMS42NTYwNiwgMi4wNjU2NCwgMi40NzE2NSIsIFwKLSAgICAgICAgICAiMC4xMjA0MDcsIDAuNTE0MzQsIDAuODM3MjgsIDEuMjQ3NzcsIDEuNjUzNDUsIDIuMDYzOTMsIDIuNDcwNzIiLCBcCi0gICAgICAgICAgIjAuMTIwMzI2LCAwLjUxNDI1MSwgMC44MzcwNTQsIDEuMjQ3MDMsIDEuNjU1ODYsIDIuMDY1ODUsIDIuNDcyNjYiLCBcCi0gICAgICAgICAgIjAuMTIwMjM4LCAwLjUxNDI4MywgMC44MzcxNjQsIDEuMjQ3MDYsIDEuNjU1OTQsIDIuMDYyNTksIDIuNDcyMDkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzE4MjEzLCAwLjUwNjg4MSwgMC42NTE3MTQsIDAuODMyNjI0LCAxLjAxMzIxLCAxLjE5Mzc0LCAxLjM3NDMxIiwgXAotICAgICAgICAgICIwLjMyOTc1NywgMC41MTg1NCwgMC42NjMzOTUsIDAuODQ0MzA0LCAxLjAyNDg5LCAxLjIwNTQyLCAxLjM4NTk5IiwgXAotICAgICAgICAgICIwLjM0MzQyMywgMC41MzIyMjksIDAuNjc3MDQyLCAwLjg1Nzk1MSwgMS4wMzg1NCwgMS4yMTkwNywgMS4zOTk3NSIsIFwKLSAgICAgICAgICAiMC4zNTYyMSwgMC41NDUwMzQsIDAuNjg5ODcxLCAwLjg3MDc4LCAxLjA1MTM3LCAxLjIzMTksIDEuNDEyNTMiLCBcCi0gICAgICAgICAgIjAuMzY5MDUsIDAuNTU3NzIsIDAuNzAyNTU1LCAwLjg4MzQ2NSwgMS4wNjQwNSwgMS4yNDQ1OCwgMS40MjUxNSIsIFwKLSAgICAgICAgICAiMC4zODg3MDcsIDAuNTc3NDksIDAuNzIyMzQxLCAwLjkwMzI1MSwgMS4wODM4MywgMS4yNjQzNywgMS40NDQ5MyIsIFwKLSAgICAgICAgICAiMC40MDU2MTgsIDAuNTk0NDY1LCAwLjczOTMxLCAwLjkyMDIyMiwgMS4xMDA4MSwgMS4yODEzNCwgMS40NjE5Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExNTIxLCAwLjQ2NzI2MywgMC43NTc5NzQsIDEuMTI0MTIsIDEuNDk1NDksIDEuODY0MTEsIDIuMjMwMzIiLCBcCi0gICAgICAgICAgIjAuMTE1MDg3LCAwLjQ2NzI3MywgMC43NTc5NjksIDEuMTI0MjMsIDEuNDk1NDYsIDEuODY0MDgsIDIuMjMwMiIsIFwKLSAgICAgICAgICAiMC4xMTUwOTUsIDAuNDY3MTI5LCAwLjc1OTE3MywgMS4xMjQzNCwgMS40OTU0NSwgMS44NjQwNywgMi4yMzM3NSIsIFwKLSAgICAgICAgICAiMC4xMTUwNjIsIDAuNDY3MTE1LCAwLjc1Nzk1NywgMS4xMjQ0LCAxLjQ5NTQ1LCAxLjg2NDA3LCAyLjIzMzU2IiwgXAotICAgICAgICAgICIwLjExNTI4MywgMC40NjcyMzgsIDAuNzU3OTY2LCAxLjEyNDEzLCAxLjQ5NTQ0LCAxLjg2NDExLCAyLjIzMDE4IiwgXAotICAgICAgICAgICIwLjExNTA4MiwgMC40NjcyMDEsIDAuNzU3OTU4LCAxLjEyNDE3LCAxLjQ5NTQ2LCAxLjg2NDA4LCAyLjIzIiwgXAotICAgICAgICAgICIwLjExNTA2LCAwLjQ2NzIwOSwgMC43NTc5MzIsIDEuMTI0NSwgMS40OTU0NiwgMS44NjQxMywgMi4yMzAyIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMyMzUzNywgMC41MzU2MzUsIDAuNzAwMDQ1LCAwLjkwNTM3MiwgMS4xMTA1MSwgMS4zMTU2NCwgMS41MjA4MiIsIFwKLSAgICAgICAgICAiMC4zMzUyMDQsIDAuNTQ3NDE0LCAwLjcxMTgxLCAwLjkxNzE1MiwgMS4xMjIzLCAxLjMyNzQyLCAxLjUzMjUzIiwgXAotICAgICAgICAgICIwLjM0OTE0NCwgMC41NjEzNDYsIDAuNzI1NzYyLCAwLjkzMTAyOSwgMS4xMzYyOSwgMS4zNDE0MiwgMS41NDY0NSIsIFwKLSAgICAgICAgICAiMC4zNjI4ODcsIDAuNTc1MDU4LCAwLjczOTQ3MSwgMC45NDQ3OTgsIDEuMTQ5OTQsIDEuMzU1MDcsIDEuNTYwMzQiLCBcCi0gICAgICAgICAgIjAuMzc2Njc5LCAwLjU4ODc4NiwgMC43NTMxNzQsIDAuOTU4NTI5LCAxLjE2MzY3LCAxLjM2ODc4LCAxLjU3Mzg5IiwgXAotICAgICAgICAgICIwLjM5ODY1NSwgMC42MTA4NDcsIDAuNzc1MjYsIDAuOTgwNTg4LCAxLjE4NTczLCAxLjM5MDg1LCAxLjU5NTk3IiwgXAotICAgICAgICAgICIwLjQxNzQyNCwgMC42Mjk2NDMsIDAuNzk0MDQ5LCAwLjk5OTM4NSwgMS4yMDQ1MywgMS40MDk2NCwgMS42MTQ3NyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMjEwMDUsIDAuNTE0ODM1LCAwLjg0MDAwNCwgMS4yNDc0NywgMS42NTY1MywgMi4wNjU1MSwgMi40NzU1MSIsIFwKLSAgICAgICAgICAiMC4xMjA5MywgMC41MTQ3NzEsIDAuODM3OTg3LCAxLjI0NzM1LCAxLjY1NjIsIDIuMDYyNDYsIDIuNDcwNzUiLCBcCi0gICAgICAgICAgIjAuMTIwOTgxLCAwLjUxNDc4MywgMC44Mzg2NDYsIDEuMjQ3OTMsIDEuNjU1NTcsIDIuMDYyNzEsIDIuNDcwNTUiLCBcCi0gICAgICAgICAgIjAuMTIwOTc2LCAwLjUxNDc3NCwgMC44MzkwOTIsIDEuMjQ3MzEsIDEuNjU2MjEsIDIuMDY1MzMsIDIuNDczMTkiLCBcCi0gICAgICAgICAgIjAuMTIwOTQxLCAwLjUxNDcyOSwgMC44Mzk3MTMsIDEuMjQ3MjMsIDEuNjU2MDQsIDIuMDYyNzIsIDIuNDcwOTEiLCBcCi0gICAgICAgICAgIjAuMTIwOTU0LCAwLjUxNDc2NSwgMC44MzkwNzYsIDEuMjQ3MjgsIDEuNjU2MTYsIDIuMDYyNjQsIDIuNDc0NjYiLCBcCi0gICAgICAgICAgIjAuMTIwOTQzLCAwLjUxNDc1MSwgMC44MzkwMzUsIDEuMjQ3MjgsIDEuNjU2MTMsIDIuMDYyNTksIDIuNDcxMTciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzE5NDU2LCAwLjUwODI0OCwgMC42NTMxLCAwLjgzNDAwOSwgMS4wMTQ1OSwgMS4xOTUxMywgMS4zNzU2OSIsIFwKLSAgICAgICAgICAiMC4zMzEwMjQsIDAuNTE5ODg3LCAwLjY2NDcxMSwgMC44NDU0OTQsIDEuMDI2MiwgMS4yMDY3MywgMS4zODcyOSIsIFwKLSAgICAgICAgICAiMC4zNDQ0ODIsIDAuNTMzMjI1LCAwLjY3ODA4NiwgMC44NTg5OTMsIDEuMDM5NTgsIDEuMjIwMTEsIDEuNDAwNzEiLCBcCi0gICAgICAgICAgIjAuMzU3MjIxLCAwLjU0NTg3NiwgMC42OTA3MTUsIDAuODcxNjI1LCAxLjA1MjIxLCAxLjIzMjc0LCAxLjQxMzMxIiwgXAotICAgICAgICAgICIwLjM2OTU4MiwgMC41NTgzNzMsIDAuNzAzMjI4LCAwLjg4NDEzNiwgMS4wNjQ3MiwgMS4yNDUyNSwgMS40MjU4MiIsIFwKLSAgICAgICAgICAiMC4zODkzNTksIDAuNTc4MDI2LCAwLjcyMjg3MiwgMC45MDM3ODIsIDEuMDg0MzcsIDEuMjY0OSwgMS40NDU0NyIsIFwKLSAgICAgICAgICAiMC40MDU5OTQsIDAuNTk0NzU3LCAwLjczOTYxNiwgMC45MjA1MjMsIDEuMTAxMTEsIDEuMjgxNjQsIDEuNDYyMjEiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTE1MTAxLCAwLjQ2NzI3NywgMC43NTc5NzUsIDEuMTI0MjYsIDEuNDk1NDgsIDEuODY0MSwgMi4yMzAyNSIsIFwKLSAgICAgICAgICAiMC4xMTUxMDUsIDAuNDY3MTgzLCAwLjc1ODkxLCAxLjEyNDg4LCAxLjQ5NTQ0LCAxLjg2NDA3LCAyLjIzMzEyIiwgXAotICAgICAgICAgICIwLjExNTEwMywgMC40NjcyNjksIDAuNzU3OTY3LCAxLjEyNDQ3LCAxLjQ5NTQ2LCAxLjg2NDA3LCAyLjIzMzM3IiwgXAotICAgICAgICAgICIwLjExNTIxNiwgMC40NjcyNTUsIDAuNzU3OTcsIDEuMTI0MjMsIDEuNDk1NDYsIDEuODY0MTIsIDIuMjMwMzMiLCBcCi0gICAgICAgICAgIjAuMTE1MDg5LCAwLjQ2NzI1NSwgMC43NTc5NjksIDEuMTI0MzMsIDEuNDk1NDYsIDEuODY0MDcsIDIuMjMwMjYiLCBcCi0gICAgICAgICAgIjAuMTE1MTEyLCAwLjQ2NzI1MSwgMC43NTc5NjksIDEuMTI0MTksIDEuNDk1NDcsIDEuODY0MDcsIDIuMjMwMzEiLCBcCi0gICAgICAgICAgIjAuMTE1MTg4LCAwLjQ2NzIxNiwgMC43NTc5MTUsIDEuMTIzNzksIDEuNDk1NDUsIDEuODYzNzUsIDIuMjMzMjUiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzIyMjk5LCAwLjUzNDQ3NiwgMC42OTg4OTcsIDAuOTA0MTc1LCAxLjEwOTQsIDEuMzE0NjQsIDEuNTE5NTkiLCBcCi0gICAgICAgICAgIjAuMzM0MzA5LCAwLjU0NjMzNSwgMC43MTA3NTEsIDAuOTE2MDYzLCAxLjEyMTMyLCAxLjMyNjM1LCAxLjUzMTQ1IiwgXAotICAgICAgICAgICIwLjM0ODMxOCwgMC41NjA1MjYsIDAuNzI0OTIsIDAuOTMwMjY2LCAxLjEzNTQxLCAxLjM0MDUzLCAxLjU0NTY0IiwgXAotICAgICAgICAgICIwLjM2MjQ1LCAwLjU3NDUzNCwgMC43Mzg5MzUsIDAuOTQ0Mjc2LCAxLjE0OTQyLCAxLjM1NDUsIDEuNTU5NjQiLCBcCi0gICAgICAgICAgIjAuMzc2MTA0LCAwLjU4ODI2NiwgMC43NTI3MTgsIDAuOTU4MDA2LCAxLjE2MzE1LCAxLjM2ODI2LCAxLjU3MzQ2IiwgXAotICAgICAgICAgICIwLjM5ODAwNSwgMC42MTAyMTcsIDAuNzc0NjE5LCAwLjk3OTk2MiwgMS4xODUxLCAxLjM5MDIyLCAxLjU5NTM5IiwgXAotICAgICAgICAgICIwLjQxNzMwMSwgMC42Mjk0MTksIDAuNzkzODEsIDAuOTk5MTY1LCAxLjIwNDMsIDEuNDA5NDEsIDEuNjE0NTIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTIwOTc3LCAwLjUxNDgzNiwgMC44MzcxNTksIDEuMjQ4MSwgMS42NTU5MiwgMi4wNjA0NywgMi40NzA0MSIsIFwKLSAgICAgICAgICAiMC4xMjExMDgsIDAuNTE0NzcxLCAwLjgzOTg4NiwgMS4yNDc0OCwgMS42NTYxNiwgMi4wNjI3NSwgMi40NzQ2NyIsIFwKLSAgICAgICAgICAiMC4xMjA5MzEsIDAuNTE0NzcyLCAwLjgzOTcxNywgMS4yNDczMiwgMS42NTYyMiwgMi4wNjI2LCAyLjQ3MTU2IiwgXAotICAgICAgICAgICIwLjEyMDk3MiwgMC41MTQ3NDcsIDAuODQwMDIxLCAxLjI0NzMsIDEuNjU2MTgsIDIuMDY2LCAyLjQ3NTMiLCBcCi0gICAgICAgICAgIjAuMTIwOTc5LCAwLjUxNDczMywgMC44Mzc1NjQsIDEuMjQ3MjYsIDEuNjU2MSwgMi4wNjI2NiwgMi40NzM1MSIsIFwKLSAgICAgICAgICAiMC4xMjA5MTcsIDAuNTE0NzMyLCAwLjgzOTc4OCwgMS4yNDcyNiwgMS42NTYxMSwgMi4wNjI0NiwgMi40Njg2IiwgXAotICAgICAgICAgICIwLjEyMDY4NCwgMC41MTQ3MzUsIDAuODM5NzU0LCAxLjI0NzI0LCAxLjY1NjAzLCAyLjA2Mjg1LCAyLjQ3MDg3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlMwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zNjc1NDcsIDAuNTU2Mzg5LCAwLjcwMTIzOSwgMC44ODIxMTIsIDEuMDYyNzEsIDEuMjQzMjYsIDEuNDIzODUiLCBcCi0gICAgICAgICAgIjAuMzgwMDY1LCAwLjU2ODc0NCwgMC43MTM1OTEsIDAuODk0NDc4LCAxLjA3NTA3LCAxLjI1NTYyLCAxLjQzNjE5IiwgXAotICAgICAgICAgICIwLjM5NTE5OCwgMC41ODM4NzQsIDAuNzI4NzIyLCAwLjkwOTYxLCAxLjA5MDIsIDEuMjcwNzUsIDEuNDUxMzIiLCBcCi0gICAgICAgICAgIjAuNDEwNjQ2LCAwLjU5OTMyNCwgMC43NDQxNzEsIDAuOTI1MDYsIDEuMTA1NjUsIDEuMjg2MiwgMS40NjY3NyIsIFwKLSAgICAgICAgICAiMC40MjU2NTUsIDAuNjE0NDg0LCAwLjc1OTMwNSwgMC45NDAwOTMsIDEuMTIwNzgsIDEuMzAxMzgsIDEuNDgxOTYiLCBcCi0gICAgICAgICAgIjAuNDQ5NjQ0LCAwLjYzODQ4NiwgMC43ODMzNTQsIDAuOTY0MTI4LCAxLjE0NDgsIDEuMzI1MzcsIDEuNTA1OTIiLCBcCi0gICAgICAgICAgIjAuNDcwMTksIDAuNjU4OTU5LCAwLjgwMzgsIDAuOTg0Njg1LCAxLjE2NTI4LCAxLjM0NTgzLCAxLjUyNjU1Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExNTMyMiwgMC40NjczMDUsIDAuNzU5MDUzLCAxLjEyNzIxLCAxLjQ5NTU2LCAxLjg2NDM5LCAyLjIzMzYzIiwgXAotICAgICAgICAgICIwLjExNTM0MywgMC40NjcyODksIDAuNzU4MDY0LCAxLjEyNDIzLCAxLjQ5NTU2LCAxLjg2NDIsIDIuMjMwMzgiLCBcCi0gICAgICAgICAgIjAuMTE1MzM5LCAwLjQ2NzI4OSwgMC43NTg4ODQsIDEuMTI2NSwgMS40OTU1NiwgMS44NjQyMSwgMi4yMzM1NSIsIFwKLSAgICAgICAgICAiMC4xMTUzNDIsIDAuNDY3Mjg5LCAwLjc1Nzk5NiwgMS4xMjY3OCwgMS40OTU2MSwgMS44NjQ1NSwgMi4yMzMwNiIsIFwKLSAgICAgICAgICAiMC4xMTUyMTgsIDAuNDY3MjU0LCAwLjc1Nzk4NiwgMS4xMjY3NSwgMS40OTU1MiwgMS44NjQ1NSwgMi4yMzM4NyIsIFwKLSAgICAgICAgICAiMC4xMTUyMTYsIDAuNDY3MjQ5LCAwLjc1OTE0NSwgMS4xMjYzOCwgMS40OTU0NCwgMS44NjQxMSwgMi4yMzM3MyIsIFwKLSAgICAgICAgICAiMC4xMTUxMDcsIDAuNDY3MTI3LCAwLjc1OTA2NSwgMS4xMjY1LCAxLjQ5NTYxLCAxLjg2NDUsIDIuMjMzOTMiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzY2MDExLCAwLjU3ODEzLCAwLjc0MjUxNywgMC45NDc4NzUsIDEuMTUzMDEsIDEuMzU4MTIsIDEuNTYzMjMiLCBcCi0gICAgICAgICAgIjAuMzc4MjI1LCAwLjU5MDMyOCwgMC43NTQ3MTIsIDAuOTYwMDc1LCAxLjE2NTIxLCAxLjM3MDMsIDEuNTc1NDMiLCBcCi0gICAgICAgICAgIjAuMzkzMDc1LCAwLjYwNTE4OSwgMC43Njk1NzUsIDAuOTc0OTM1LCAxLjE4MDA3LCAxLjM4NTE4LCAxLjU5MDI5IiwgXAotICAgICAgICAgICIwLjQwNzcyMSwgMC42MTk4MjUsIDAuNzg0MjA5LCAwLjk4OTU3MSwgMS4xOTQ3MSwgMS4zOTk3OSwgMS42MDQ5MyIsIFwKLSAgICAgICAgICAiMC40MjIxNTEsIDAuNjM0MjUsIDAuNzk4NjMyLCAxLjAwNCwgMS4yMDkxNCwgMS40MTQyMiwgMS42MTkzNSIsIFwKLSAgICAgICAgICAiMC40NDQ3MzUsIDAuNjU2OTUsIDAuODIxMzY1LCAxLjAyNjcsIDEuMjMxODQsIDEuNDM2OTUsIDEuNjQyMTEiLCBcCi0gICAgICAgICAgIjAuNDYzMjI5LCAwLjY3NTMyNSwgMC44Mzk3MDYsIDEuMDQ1MDcsIDEuMjUwMjEsIDEuNDU1MjksIDEuNjYwNDMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTIxMTYzLCAwLjUxNDg2OCwgMC44Mzk3NjUsIDEuMjQ3OTIsIDEuNjU2OTksIDIuMDY2MTYsIDIuNDc0ODgiLCBcCi0gICAgICAgICAgIjAuMTIxMDAzLCAwLjUxNDg4NCwgMC44NDAwMzIsIDEuMjQ3MzUsIDEuNjU2NzgsIDIuMDY1OTEsIDIuNDc0MjUiLCBcCi0gICAgICAgICAgIjAuMTIwOTQsIDAuNTE0ODcyLCAwLjgzOTcyOSwgMS4yNDc0OCwgMS42NTY0NCwgMi4wNjYyLCAyLjQ3MzQ2IiwgXAotICAgICAgICAgICIwLjEyMDk5OCwgMC41MTQ4OTQsIDAuODM5NjM5LCAxLjI0NzM3LCAxLjY1Njc3LCAyLjA2NTg5LCAyLjQ3NDI2IiwgXAotICAgICAgICAgICIwLjEyMDk1NSwgMC41MTQ4OTEsIDAuODM5NjU3LCAxLjI0NzM0LCAxLjY1Njc2LCAyLjA2NTksIDIuNDc0MzMiLCBcCi0gICAgICAgICAgIjAuMTIwOTk0LCAwLjUxNDg3NSwgMC44NDAwMDQsIDEuMjQ3MzYsIDEuNjU2NzIsIDIuMDY1NzksIDIuNDczODgiLCBcCi0gICAgICAgICAgIjAuMTIxMDA1LCAwLjUxNDg2MSwgMC44Mzk3NzksIDEuMjQ3NjIsIDEuNjU2NjksIDIuMDY1ODUsIDIuNDczNDQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUzAiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMwMTE2MywgMC40ODk5NTMsIDAuNjM0Nzk2LCAwLjgxNTYxOCwgMC45OTYyNTYsIDEuMTc2ODcsIDEuMzU3NTciLCBcCi0gICAgICAgICAgIjAuMzExMzM3LCAwLjUwMDA4MiwgMC42NDQ5NDIsIDAuODI1NzUsIDEuMDA2MzksIDEuMTg3LCAxLjM2NzU0IiwgXAotICAgICAgICAgICIwLjMyNDU1OSwgMC41MTMzMDIsIDAuNjU4MTQzLCAwLjgzOTAzLCAxLjAxOTYzLCAxLjIwMDE4LCAxLjM4MDg4IiwgXAotICAgICAgICAgICIwLjMzNzY5MiwgMC41MjY0MjksIDAuNjcxMjk5LCAwLjg1MjE4MywgMS4wMzI3OCwgMS4yMTMzMywgMS4zOTQwMSIsIFwKLSAgICAgICAgICAiMC4zNTA2NTksIDAuNTM5NTE3LCAwLjY4NDMzOCwgMC44NjUxNzIsIDEuMDQ1ODIsIDEuMjI2NDEsIDEuNDA3MDEiLCBcCi0gICAgICAgICAgIjAuMzcyMDM2LCAwLjU2MDgwNiwgMC43MDU2NCwgMC44ODY0NTksIDEuMDY3MSwgMS4yNDc2OCwgMS40MjgyNCIsIFwKLSAgICAgICAgICAiMC4zODk4MzksIDAuNTc4NzA3LCAwLjcyMzU2NiwgMC45MDQ0NTcsIDEuMDg1MDYsIDEuMjY1NTgsIDEuNDQ2MjMiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTE1MTE0LCAwLjQ2NzI3NSwgMC43NTkxMjcsIDEuMTI2MjYsIDEuNDk1NTUsIDEuODY0NiwgMi4yMzMwNyIsIFwKLSAgICAgICAgICAiMC4xMTUxMTMsIDAuNDY3MjU1LCAwLjc1OTI1LCAxLjEyNjU5LCAxLjQ5NTU0LCAxLjg2NDYyLCAyLjIzMjk1IiwgXAotICAgICAgICAgICIwLjExNTE1NSwgMC40NjcyNTMsIDAuNzU4OTgyLCAxLjEyNjE5LCAxLjQ5NTU0LCAxLjg2NDM1LCAyLjIzMzk0IiwgXAotICAgICAgICAgICIwLjExNTE0NSwgMC40NjczMDIsIDAuNzU4MDIyLCAxLjEyNjQxLCAxLjQ5NTU0LCAxLjg2NDMzLCAyLjIzMzg5IiwgXAotICAgICAgICAgICIwLjExNTE3NCwgMC40NjcyNTksIDAuNzU5MjI0LCAxLjEyNDk3LCAxLjQ5NTU1LCAxLjg2NDUyLCAyLjIzMzg5IiwgXAotICAgICAgICAgICIwLjExNTI5NywgMC40NjcxODQsIDAuNzU5MjIyLCAxLjEyNSwgMS40OTU1LCAxLjg2NDQ5LCAyLjIzMzY1IiwgXAotICAgICAgICAgICIwLjExNTEwNiwgMC40NjcyNTIsIDAuNzU4ODUzLCAxLjEyNjE5LCAxLjQ5NTUyLCAxLjg2NDQ4LCAyLjIzMzc3Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMwNDE0MiwgMC41MTYzMjgsIDAuNjgwNzQ4LCAwLjg4NjA2NCwgMS4wOTEyMSwgMS4yOTYzNCwgMS41MDE1NCIsIFwKLSAgICAgICAgICAiMC4zMTQ1NTYsIDAuNTI2NzA1LCAwLjY5MTEyNiwgMC44OTY0MjksIDEuMTAxNjEsIDEuMzA2NzksIDEuNTExODMiLCBcCi0gICAgICAgICAgIjAuMzI3OTQyLCAwLjU0MDEyOSwgMC43MDQ1NDYsIDAuOTA5ODIsIDEuMTE1MDYsIDEuMzIwMjYsIDEuNTI1MjQiLCBcCi0gICAgICAgICAgIjAuMzQxNDE2LCAwLjU1MzY0LCAwLjcxODAyNiwgMC45MjMzNzksIDEuMTI4NTIsIDEuMzMzNjQsIDEuNTM4ODMiLCBcCi0gICAgICAgICAgIjAuMzU1MDA3LCAwLjU2NzIyOSwgMC43MzE2MTQsIDAuOTM2OTcyLCAxLjE0MjExLCAxLjM0NzIzLCAxLjU1MjUyIiwgXAotICAgICAgICAgICIwLjM3NjkwMiwgMC41ODkwNDgsIDAuNzUzNDY1LCAwLjk1ODc1NiwgMS4xNjM5NSwgMS4zNjkxMywgMS41NzQxNyIsIFwKLSAgICAgICAgICAiMC4zOTU5OTEsIDAuNjA4MTc2LCAwLjc3MjU5LCAwLjk3Nzg4OCwgMS4xODMwNiwgMS4zODgyNSwgMS41OTMyOCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMjExMTgsIDAuNTE0ODQ4LCAwLjgzOTc3NCwgMS4yNDc3OCwgMS42NTY1NCwgMi4wNjYxLCAyLjQ3NTE5IiwgXAotICAgICAgICAgICIwLjEyMTE0OCwgMC41MTQ4NzUsIDAuODQwMDQ1LCAxLjI0NzU5LCAxLjY1NjYyLCAyLjA2NTY5LCAyLjQ3NDUxIiwgXAotICAgICAgICAgICIwLjEyMTAxOSwgMC41MTQ4NDQsIDAuODM4NTc0LCAxLjI0NzU1LCAxLjY1NjQ2LCAyLjA2NjIzLCAyLjQ3MzcxIiwgXAotICAgICAgICAgICIwLjEyMTEzMSwgMC41MTQ4ODIsIDAuODM5NzQxLCAxLjI0NzgyLCAxLjY1NjI3LCAyLjA2NjE1LCAyLjQ3NDI3IiwgXAotICAgICAgICAgICIwLjEyMTAyLCAwLjUxNDg3MSwgMC44Mzk2MjEsIDEuMjQ3NTcsIDEuNjU2MTUsIDIuMDY1OTMsIDIuNDczMzUiLCBcCi0gICAgICAgICAgIjAuMTIwOTgxLCAwLjUxNDkwMywgMC44MzkyMzksIDEuMjQ4MDIsIDEuNjU2ODQsIDIuMDY1NjgsIDIuNDczNzkiLCBcCi0gICAgICAgICAgIjAuMTIxMDAzLCAwLjUxNDg5NCwgMC44MzkwNDcsIDEuMjQ3NjQsIDEuNjU2NywgMi4wNjU4OSwgMi40NzI1NiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTMSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTkwNjI0LCAwLjM3OTM1LCAwLjUyNDIxMSwgMC43MDUxMDUsIDAuODg1Njk5LCAxLjA2NjIzLCAxLjI0NjgiLCBcCi0gICAgICAgICAgIjAuMjAxNTYyLCAwLjM5MDI2OSwgMC41MzUxMjQsIDAuNzE2MDIzLCAwLjg5NjYxNCwgMS4wNzcxNSwgMS4yNTc3MSIsIFwKLSAgICAgICAgICAiMC4yMTQ5NzgsIDAuNDAzNjg4LCAwLjU0ODUzNywgMC43Mjk0NDksIDAuOTEwMDM4LCAxLjA5MDU3LCAxLjI3MTEzIiwgXAotICAgICAgICAgICIwLjIyODQ5OCwgMC40MTcyNzgsIDAuNTYyMTI3LCAwLjc0MzA0LCAwLjkyMzYzMSwgMS4xMDQxNiwgMS4yODQ3MiIsIFwKLSAgICAgICAgICAiMC4yNDIwOSwgMC40MzA4NDUsIDAuNTc1NzAyLCAwLjc1NjQ3NCwgMC45MzcxNzYsIDEuMTE3ODksIDEuMjk4MjgiLCBcCi0gICAgICAgICAgIjAuMjY0MDQ3LCAwLjQ1Mjg1MiwgMC41OTc2OSwgMC43Nzg2MDUsIDAuOTU5MTk5LCAxLjEzOTczLCAxLjMyMDMxIiwgXAotICAgICAgICAgICIwLjI4MzM4LCAwLjQ3MjE5NCwgMC42MTcwNTksIDAuNzk3OTg2LCAwLjk3ODU4MSwgMS4xNTkxMiwgMS4zMzk2NyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTQ2ODksIDAuNDY3MjMyLCAwLjc1NzM0OCwgMS4xMjQxMiwgMS40OTU1NCwgMS44NjQxOSwgMi4yMzAzMiIsIFwKLSAgICAgICAgICAiMC4xMTQ2OTYsIDAuNDY3MjAxLCAwLjc1ODAwNCwgMS4xMjM5MSwgMS40OTU0OSwgMS44NjQxNCwgMi4yMzAzMyIsIFwKLSAgICAgICAgICAiMC4xMTQ3MzgsIDAuNDY3MTczLCAwLjc1Nzk1OSwgMS4xMjQxNSwgMS40OTU1MSwgMS44NjQxNywgMi4yMzAyNCIsIFwKLSAgICAgICAgICAiMC4xMTQ3MjYsIDAuNDY3MTg0LCAwLjc1Nzk3LCAxLjEyNDIsIDEuNDk1NSwgMS44NjQxNCwgMi4yMzAzMSIsIFwKLSAgICAgICAgICAiMC4xMTQ4MSwgMC40NjcxNDEsIDAuNzU3ODk0LCAxLjEyNjI5LCAxLjQ5NTM2LCAxLjg1OTU0LCAyLjIzMjc3IiwgXAotICAgICAgICAgICIwLjExNDkwOSwgMC40NjcxNDUsIDAuNzU3OTM5LCAxLjEyMzg3LCAxLjQ5NTQ2LCAxLjg2Mzc1LCAyLjIzMzIzIiwgXAotICAgICAgICAgICIwLjExNDk1OSwgMC40NjcxODYsIDAuNzU3OTM1LCAxLjEyNDE1LCAxLjQ5NTUsIDEuODY0MTQsIDIuMjMwMTQiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTc4ODMxLCAwLjM5MDU2NSwgMC41NTQ5MDQsIDAuNzYwMTksIDAuOTY1MzAyLCAxLjE3MDQsIDEuMzc1NTYiLCBcCi0gICAgICAgICAgIjAuMTg5MDcsIDAuNDAwNzU1LCAwLjU2NTExNiwgMC43NzA0MTEsIDAuOTc1NTE3LCAxLjE4MDU4LCAxLjM4NTciLCBcCi0gICAgICAgICAgIjAuMjAyMzksIDAuNDE0MDY3LCAwLjU3ODQyMywgMC43ODM3MjYsIDAuOTg4ODMsIDEuMTkzODksIDEuMzk5MDEiLCBcCi0gICAgICAgICAgIjAuMjE1NTk0LCAwLjQyNzI1NywgMC41OTE2MTYsIDAuNzk2ODMsIDEuMDAyMDUsIDEuMjA3MTgsIDEuNDEyMTkiLCBcCi0gICAgICAgICAgIjAuMjI4NjQyLCAwLjQ0MDQ2NiwgMC42MDQ4MzYsIDAuODEwMTE1LCAxLjAxNTIzLCAxLjIyMDMzLCAxLjQyNTQyIiwgXAotICAgICAgICAgICIwLjI0OTgzNywgMC40NjE2OTksIDAuNjI2MTAxLCAwLjgzMTM2NSwgMS4wMzY0OSwgMS4yNDE2MiwgMS40NDY3MSIsIFwKLSAgICAgICAgICAiMC4yNjg0NTEsIDAuNDgwMzIxLCAwLjY0NDY3MywgMC44NSwgMS4wNTUxMiwgMS4yNjAyMSwgMS40NjUzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExOTk4OSwgMC41MTQyNjksIDAuODM5Mzc2LCAxLjI0NjkxLCAxLjY1NTg5LCAyLjA2MiwgMi40NzA5OCIsIFwKLSAgICAgICAgICAiMC4xMjAwMzksIDAuNTE0MjExLCAwLjgzNzA0LCAxLjI0NjgzLCAxLjY1NTYzLCAyLjA2NTYxLCAyLjQ3MTE1IiwgXAotICAgICAgICAgICIwLjEyMDEsIDAuNTE0MjU4LCAwLjgzNjk1NiwgMS4yNDY3OCwgMS42NTU1NSwgMi4wNjU0NSwgMi40NzA5MSIsIFwKLSAgICAgICAgICAiMC4xMjAxMjIsIDAuNTE0MjkyLCAwLjgzNzc0MSwgMS4yNDc1OCwgMS42NTUyOSwgMi4wNjI4NywgMi40NzA0NSIsIFwKLSAgICAgICAgICAiMC4xMjAwMzgsIDAuNTE0MjkyLCAwLjgzODY1NCwgMS4yNDY4NSwgMS42NTU3OSwgMi4wNjIxNiwgMi40NzEwMyIsIFwKLSAgICAgICAgICAiMC4xMjAxMDQsIDAuNTE0MjE5LCAwLjgzOTYxMiwgMS4yNDY4NCwgMS42NTU5NywgMi4wNjQ4NiwgMi40NzM1OCIsIFwKLSAgICAgICAgICAiMC4xMjAyMTcsIDAuNTE0MTk2LCAwLjgzOTI1OCwgMS4yNDY3OCwgMS42NTU3MywgMi4wNjI3NSwgMi40NzA1NCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTMSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjMxODM2LCAwLjQyMDM3MiwgMC41NjUxODEsIDAuNzQ1OTk1LCAwLjkyNjYyLCAxLjEwNzEzLCAxLjI4NzY3IiwgXAotICAgICAgICAgICIwLjI0Mzg1NiwgMC40MzI0MTQsIDAuNTc3MjMxLCAwLjc1ODAzOCwgMC45Mzg2NzEsIDEuMTE5MTksIDEuMjk5NzIiLCBcCi0gICAgICAgICAgIjAuMjU4ODY4LCAwLjQ0NzUsIDAuNTkyMjkzLCAwLjc3MzE2NCwgMC45NTM3MjksIDEuMTM0MjQsIDEuMzE0ODYiLCBcCi0gICAgICAgICAgIjAuMjczMjczLCAwLjQ2MTk2MSwgMC42MDY3NTgsIDAuNzg3NjAxLCAwLjk2ODE2MSwgMS4xNDg2OCwgMS4zMjkzNCIsIFwKLSAgICAgICAgICAiMC4yODc2NDUsIDAuNDc2MjgsIDAuNjIxMTMzLCAwLjgwMTk0NCwgMC45ODI1MDksIDEuMTYzMDMsIDEuMzQzNjQiLCBcCi0gICAgICAgICAgIjAuMzA4MTM5LCAwLjQ5NjY5NCwgMC42NDE1MDYsIDAuODIyMzE0LCAxLjAwMjk1LCAxLjE4MzQ2LCAxLjM2Mzk5IiwgXAotICAgICAgICAgICIwLjMyNDQ1NywgMC41MTMxMSwgMC42NTc5MTYsIDAuODM4Nzk3LCAxLjAxOTM2LCAxLjE5OTg3LCAxLjM4MDQxIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExNDYxMywgMC40NjY4NTcsIDAuNzU3NjE5LCAxLjEyNDIyLCAxLjQ5NTI0LCAxLjg2Mzg4LCAyLjIzIiwgXAotICAgICAgICAgICIwLjExNDYxOSwgMC40NjY4ODEsIDAuNzU3NjEzLCAxLjEyNDIsIDEuNDk1MjQsIDEuODYzOSwgMi4yMjk4OSIsIFwKLSAgICAgICAgICAiMC4xMTQ2MjEsIDAuNDY2NDEzLCAwLjc1NzY1NywgMS4xMjM4NiwgMS40OTUxNiwgMS44NjM4MiwgMi4yMzMyOSIsIFwKLSAgICAgICAgICAiMC4xMTQ2MDYsIDAuNDY2ODA2LCAwLjc1ODg5MiwgMS4xMjM0OSwgMS40OTUxOCwgMS44NjM4MSwgMi4yMzM1MyIsIFwKLSAgICAgICAgICAiMC4xMTQ2NDgsIDAuNDY2MTM3LCAwLjc1Njg5OCwgMS4xMjM4NSwgMS40OTUxMywgMS44NjM3MiwgMi4yMjg4OCIsIFwKLSAgICAgICAgICAiMC4xMTQ1NzksIDAuNDY2ODU4LCAwLjc1NzYwMSwgMS4xMjQxOSwgMS40OTUyMiwgMS44NjM5LCAyLjIyOTg2IiwgXAotICAgICAgICAgICIwLjExNDUxMSwgMC40NjY4MDQsIDAuNzU3NjAxLCAxLjEyMzg1LCAxLjQ5NTIsIDEuODYzODcsIDIuMjI5ODUiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjI3ODY3LCAwLjQzOTg5NSwgMC42MDQzMzQsIDAuODA5Njg5LCAxLjAxNDgxLCAxLjIxOTkyLCAxLjQyNTA2IiwgXAotICAgICAgICAgICIwLjI0MDEzLCAwLjQ1MjEyOCwgMC42MTY1NiwgMC44MjE4NzksIDEuMDI3MDIsIDEuMjMyMTUsIDEuNDM3MjgiLCBcCi0gICAgICAgICAgIjAuMjU1NTc1LCAwLjQ2NzYxNCwgMC42MzIwNDUsIDAuODM3NDEyLCAxLjA0MjU1LCAxLjI0NzY0LCAxLjQ1Mjc3IiwgXAotICAgICAgICAgICIwLjI3MDc4LCAwLjQ4Mjc5MywgMC42NDcyMjEsIDAuODUyNTI3LCAxLjA1NzY5LCAxLjI2Mjg1LCAxLjQ2Nzk0IiwgXAotICAgICAgICAgICIwLjI4NTcxNSwgMC40OTc4NzMsIDAuNjYyMzAxLCAwLjg2NzYyNCwgMS4wNzI4MSwgMS4yNzc5NiwgMS40ODMwMiIsIFwKLSAgICAgICAgICAiMC4zMDg4MzMsIDAuNTIxMDAyLCAwLjY4NTQyOSwgMC44OTA3MzUsIDEuMDk1OTEsIDEuMzAxMSwgMS41MDYxNCIsIFwKLSAgICAgICAgICAiMC4zMjc1MDIsIDAuNTM5Njg0LCAwLjcwNDExMywgMC45MDkzODksIDEuMTE0NjUsIDEuMzE5NzcsIDEuNTI0ODMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTIwODAxLCAwLjUxNDc5OCwgMC44Mzc5MjgsIDEuMjQ3MjksIDEuNjU2MjcsIDIuMDY1ODQsIDIuNDcxMjciLCBcCi0gICAgICAgICAgIjAuMTIwODQ4LCAwLjUxNDc1MywgMC44MzcxNTUsIDEuMjQ3NDIsIDEuNjU2NzEsIDIuMDY1OTEsIDIuNDcwNjYiLCBcCi0gICAgICAgICAgIjAuMTIwODMxLCAwLjUxNDYzNSwgMC44MzcxOTIsIDEuMjQ3MTIsIDEuNjU1ODcsIDIuMDY1NjgsIDIuNDcxMDEiLCBcCi0gICAgICAgICAgIjAuMTIwNzk3LCAwLjUxNDczNSwgMC44Mzc1NDIsIDEuMjQ3NDIsIDEuNjU0MDUsIDIuMDYyODcsIDIuNDcwNjUiLCBcCi0gICAgICAgICAgIjAuMTIwNzM5LCAwLjUxNDYzOSwgMC44Mzc4MzgsIDEuMjQ1NiwgMS42NTM2MiwgMi4wNjQ2OSwgMi40NzA0NiIsIFwKLSAgICAgICAgICAiMC4xMjA4MTksIDAuNTE0NjI2LCAwLjgzODk4OSwgMS4yNDU1OCwgMS42NTYyNSwgMi4wNjQyMiwgMi40NzE0MyIsIFwKLSAgICAgICAgICAiMC4xMjA3NDUsIDAuNTE0NjI0LCAwLjgzODQ2NywgMS4yNDc4NSwgMS42NTUxOCwgMi4wNTk4NywgMi40NzA1NyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDUwOCwgMC4wMDQ1NjMsIDAuMDA0NTcsIDAuMDA0NTc2LCAwLjAwNDU3NywgMC4wMDQ1NzgsIDAuMDA0NTc5IiwgXAotICAgICAgICAgICIwLjAwNDUwMywgMC4wMDQ1NTcsIDAuMDA0NTY1LCAwLjAwNDU2OSwgMC4wMDQ1NzIsIDAuMDA0NTc0LCAwLjAwNDU3MyIsIFwKLSAgICAgICAgICAiMC4wMDQ1LCAwLjAwNDU1NCwgMC4wMDQ1NjIsIDAuMDA0NTY2LCAwLjAwNDU2OCwgMC4wMDQ1NywgMC4wMDQ1NzEiLCBcCi0gICAgICAgICAgIjAuMDA0NDk3LCAwLjAwNDU1MSwgMC4wMDQ1NTksIDAuMDA0NTYzLCAwLjAwNDU2NiwgMC4wMDQ1NjcsIDAuMDA0NTY4IiwgXAotICAgICAgICAgICIwLjAwNDQ5NSwgMC4wMDQ1NDksIDAuMDA0NTU3LCAwLjAwNDU2MSwgMC4wMDQ1NjQsIDAuMDA0NTY2LCAwLjAwNDU2NiIsIFwKLSAgICAgICAgICAiMC4wMDQ0OTIsIDAuMDA0NTQ2LCAwLjAwNDU1NCwgMC4wMDQ1NTksIDAuMDA0NTYxLCAwLjAwNDU2MywgMC4wMDQ1NjMiLCBcCi0gICAgICAgICAgIjAuMDA0NDksIDAuMDA0NTQ0LCAwLjAwNDU1MiwgMC4wMDQ1NTcsIDAuMDA0NTU5LCAwLjAwNDU1OSwgMC4wMDQ1NjEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQwMzgsIDAuMDA0MTA4LCAwLjAwNDExOCwgMC4wMDQxMjMsIDAuMDA0MTI2LCAwLjAwNDEyNywgMC4wMDQxMjkiLCBcCi0gICAgICAgICAgIjAuMDA0MDI4LCAwLjAwNDA5NywgMC4wMDQxMDcsIDAuMDA0MTEyLCAwLjAwNDExNSwgMC4wMDQxMTYsIDAuMDA0MTE4IiwgXAotICAgICAgICAgICIwLjAwNDAyMSwgMC4wMDQwOTEsIDAuMDA0MTAxLCAwLjAwNDEwNiwgMC4wMDQxMDksIDAuMDA0MTEsIDAuMDA0MTExIiwgXAotICAgICAgICAgICIwLjAwNDAxNywgMC4wMDQwODYsIDAuMDA0MDk2LCAwLjAwNDEwMiwgMC4wMDQxMDQsIDAuMDA0MTA2LCAwLjAwNDEwNyIsIFwKLSAgICAgICAgICAiMC4wMDQwMTQsIDAuMDA0MDgzLCAwLjAwNDA5MywgMC4wMDQwOTksIDAuMDA0MTAxLCAwLjAwNDEwMywgMC4wMDQxMDQiLCBcCi0gICAgICAgICAgIjAuMDA0MDEsIDAuMDA0MDgsIDAuMDA0MDksIDAuMDA0MDk1LCAwLjAwNDA5NywgMC4wMDQwOTksIDAuMDA0MSIsIFwKLSAgICAgICAgICAiMC4wMDQwMDcsIDAuMDA0MDc3LCAwLjAwNDA4NiwgMC4wMDQwOTIsIDAuMDA0MDk0LCAwLjAwNDA5NiwgMC4wMDQwOTciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQ2NTQsIDAuMDA0NzA4LCAwLjAwNDcxNywgMC4wMDQ3MjIsIDAuMDA0NzIzLCAwLjAwNDcyNSwgMC4wMDQ3MjYiLCBcCi0gICAgICAgICAgIjAuMDA0NjQ5LCAwLjAwNDcwMiwgMC4wMDQ3MSwgMC4wMDQ3MTYsIDAuMDA0NzE3LCAwLjAwNDcxOCwgMC4wMDQ3MiIsIFwKLSAgICAgICAgICAiMC4wMDQ2NDUsIDAuMDA0Njk5LCAwLjAwNDcwNywgMC4wMDQ3MTIsIDAuMDA0NzE0LCAwLjAwNDcxNiwgMC4wMDQ3MTYiLCBcCi0gICAgICAgICAgIjAuMDA0NjQzLCAwLjAwNDY5NywgMC4wMDQ3MDUsIDAuMDA0NzEsIDAuMDA0NzEyLCAwLjAwNDcxMywgMC4wMDQ3MTQiLCBcCi0gICAgICAgICAgIjAuMDA0NjQxLCAwLjAwNDY5NSwgMC4wMDQ3MDMsIDAuMDA0NzA4LCAwLjAwNDcxLCAwLjAwNDcxMiwgMC4wMDQ3MTIiLCBcCi0gICAgICAgICAgIjAuMDA0NjM4LCAwLjAwNDY5MiwgMC4wMDQ3LCAwLjAwNDcwNSwgMC4wMDQ3MDcsIDAuMDA0NzA5LCAwLjAwNDcwOSIsIFwKLSAgICAgICAgICAiMC4wMDQ2MzYsIDAuMDA0NjksIDAuMDA0Njk4LCAwLjAwNDcwMiwgMC4wMDQ3MDUsIDAuMDA0NzA3LCAwLjAwNDcwNyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDAwNSwgMC4wMDQwNzUsIDAuMDA0MDg1LCAwLjAwNDA5LCAwLjAwNDA5MywgMC4wMDQwOTUsIDAuMDA0MDk2IiwgXAotICAgICAgICAgICIwLjAwMzk5NSwgMC4wMDQwNjQsIDAuMDA0MDc0LCAwLjAwNDA3OSwgMC4wMDQwODIsIDAuMDA0MDg0LCAwLjAwNDA4NSIsIFwKLSAgICAgICAgICAiMC4wMDM5ODgsIDAuMDA0MDU4LCAwLjAwNDA2OCwgMC4wMDQwNzQsIDAuMDA0MDc2LCAwLjAwNDA3OCwgMC4wMDQwNzkiLCBcCi0gICAgICAgICAgIjAuMDAzOTg0LCAwLjAwNDA1NCwgMC4wMDQwNjQsIDAuMDA0MDY5LCAwLjAwNDA3MiwgMC4wMDQwNzQsIDAuMDA0MDc1IiwgXAotICAgICAgICAgICIwLjAwMzk4MSwgMC4wMDQwNSwgMC4wMDQwNjEsIDAuMDA0MDY2LCAwLjAwNDA2OSwgMC4wMDQwNywgMC4wMDQwNzEiLCBcCi0gICAgICAgICAgIjAuMDAzOTc3LCAwLjAwNDA0NywgMC4wMDQwNTcsIDAuMDA0MDYyLCAwLjAwNDA2NSwgMC4wMDQwNjcsIDAuMDA0MDY4IiwgXAotICAgICAgICAgICIwLjAwMzk3NCwgMC4wMDQwNDQsIDAuMDA0MDU0LCAwLjAwNDA1OSwgMC4wMDQwNjIsIDAuMDA0MDY0LCAwLjAwNDA2NCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDQ4OCwgMC4wMDQ1MzEsIDAuMDA0NTM2LCAwLjAwNDU0LCAwLjAwNDU0MSwgMC4wMDQ1NDEsIDAuMDA0NTQyIiwgXAotICAgICAgICAgICIwLjAwNDQ4MiwgMC4wMDQ1MjUsIDAuMDA0NTMxLCAwLjAwNDUzNCwgMC4wMDQ1MzUsIDAuMDA0NTM2LCAwLjAwNDUzNyIsIFwKLSAgICAgICAgICAiMC4wMDQ0NzgsIDAuMDA0NTIxLCAwLjAwNDUyNywgMC4wMDQ1MzEsIDAuMDA0NTMyLCAwLjAwNDUzMywgMC4wMDQ1MzMiLCBcCi0gICAgICAgICAgIjAuMDA0NDc3LCAwLjAwNDUxOSwgMC4wMDQ1MjUsIDAuMDA0NTI4LCAwLjAwNDUzLCAwLjAwNDUzMSwgMC4wMDQ1MzEiLCBcCi0gICAgICAgICAgIjAuMDA0NDc0LCAwLjAwNDUxNywgMC4wMDQ1MjMsIDAuMDA0NTI3LCAwLjAwNDUyOCwgMC4wMDQ1MjksIDAuMDA0NTMiLCBcCi0gICAgICAgICAgIjAuMDA0NDcyLCAwLjAwNDUxNSwgMC4wMDQ1MjEsIDAuMDA0NTIzLCAwLjAwNDUyNSwgMC4wMDQ1MjcsIDAuMDA0NTI3IiwgXAotICAgICAgICAgICIwLjAwNDQ3LCAwLjAwNDUxMywgMC4wMDQ1MTksIDAuMDA0NTIyLCAwLjAwNDUyNCwgMC4wMDQ1MjUsIDAuMDA0NTI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0NDY3LCAwLjAwNDUyNiwgMC4wMDQ1MzUsIDAuMDA0NTM5LCAwLjAwNDU0MSwgMC4wMDQ1NDIsIDAuMDA0NTQzIiwgXAotICAgICAgICAgICIwLjAwNDQ1NiwgMC4wMDQ1MTYsIDAuMDA0NTI0LCAwLjAwNDUyOCwgMC4wMDQ1MywgMC4wMDQ1MzEsIDAuMDA0NTMyIiwgXAotICAgICAgICAgICIwLjAwNDQ1LCAwLjAwNDUwOSwgMC4wMDQ1MTcsIDAuMDA0NTIyLCAwLjAwNDUyNCwgMC4wMDQ1MjUsIDAuMDA0NTI2IiwgXAotICAgICAgICAgICIwLjAwNDQ0NiwgMC4wMDQ1MDUsIDAuMDA0NTEzLCAwLjAwNDUxOCwgMC4wMDQ1MTksIDAuMDA0NTIxLCAwLjAwNDUyMiIsIFwKLSAgICAgICAgICAiMC4wMDQ0NDIsIDAuMDA0NTAyLCAwLjAwNDUxLCAwLjAwNDUxNCwgMC4wMDQ1MTYsIDAuMDA0NTE4LCAwLjAwNDUxOCIsIFwKLSAgICAgICAgICAiMC4wMDQ0MzksIDAuMDA0NDk4LCAwLjAwNDUwNiwgMC4wMDQ1MSwgMC4wMDQ1MTIsIDAuMDA0NTE0LCAwLjAwNDUxNSIsIFwKLSAgICAgICAgICAiMC4wMDQ0MzYsIDAuMDA0NDk1LCAwLjAwNDUwMywgMC4wMDQ1MDcsIDAuMDA0NTA5LCAwLjAwNDUxMSwgMC4wMDQ1MTIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJEIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQ2NDUsIDAuMDA0Njg4LCAwLjAwNDY5MywgMC4wMDQ2OTYsIDAuMDA0Njk4LCAwLjAwNDY5OSwgMC4wMDQ3IiwgXAotICAgICAgICAgICIwLjAwNDYzOSwgMC4wMDQ2ODIsIDAuMDA0Njg4LCAwLjAwNDY5MSwgMC4wMDQ2OTMsIDAuMDA0Njk1LCAwLjAwNDY5NSIsIFwKLSAgICAgICAgICAiMC4wMDQ2MzYsIDAuMDA0Njc5LCAwLjAwNDY4NCwgMC4wMDQ2ODgsIDAuMDA0Njg5LCAwLjAwNDY5MSwgMC4wMDQ2OTEiLCBcCi0gICAgICAgICAgIjAuMDA0NjM0LCAwLjAwNDY3NiwgMC4wMDQ2ODIsIDAuMDA0Njg1LCAwLjAwNDY4NywgMC4wMDQ2ODgsIDAuMDA0Njg5IiwgXAotICAgICAgICAgICIwLjAwNDYzMiwgMC4wMDQ2NzUsIDAuMDA0NjgsIDAuMDA0NjgzLCAwLjAwNDY4NSwgMC4wMDQ2ODYsIDAuMDA0Njg2IiwgXAotICAgICAgICAgICIwLjAwNDYyOSwgMC4wMDQ2NzIsIDAuMDA0Njc4LCAwLjAwNDY4MSwgMC4wMDQ2ODIsIDAuMDA0Njg0LCAwLjAwNDY4NCIsIFwKLSAgICAgICAgICAiMC4wMDQ2MjcsIDAuMDA0NjcsIDAuMDA0Njc2LCAwLjAwNDY3OSwgMC4wMDQ2OCwgMC4wMDQ2ODEsIDAuMDA0NjgyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0MzEsIDAuMDA0MzY5LCAwLjAwNDM3NywgMC4wMDQzODEsIDAuMDA0MzgzLCAwLjAwNDM4NSwgMC4wMDQzODUiLCBcCi0gICAgICAgICAgIjAuMDA0Mjk5LCAwLjAwNDM1OSwgMC4wMDQzNjcsIDAuMDA0MzcxLCAwLjAwNDM3MywgMC4wMDQzNzQsIDAuMDA0Mzc1IiwgXAotICAgICAgICAgICIwLjAwNDI5MywgMC4wMDQzNTIsIDAuMDA0MzYsIDAuMDA0MzY1LCAwLjAwNDM2NiwgMC4wMDQzNjgsIDAuMDA0MzY5IiwgXAotICAgICAgICAgICIwLjAwNDI4OSwgMC4wMDQzNDgsIDAuMDA0MzU2LCAwLjAwNDM2MSwgMC4wMDQzNjIsIDAuMDA0MzY0LCAwLjAwNDM2NSIsIFwKLSAgICAgICAgICAiMC4wMDQyODYsIDAuMDA0MzQ1LCAwLjAwNDM1MywgMC4wMDQzNTcsIDAuMDA0MzU5LCAwLjAwNDM2MSwgMC4wMDQzNjEiLCBcCi0gICAgICAgICAgIjAuMDA0MjgyLCAwLjAwNDM0MSwgMC4wMDQzNDksIDAuMDA0MzUzLCAwLjAwNDM1NSwgMC4wMDQzNTcsIDAuMDA0MzU3IiwgXAotICAgICAgICAgICIwLjAwNDI3OSwgMC4wMDQzMzgsIDAuMDA0MzQ2LCAwLjAwNDM1LCAwLjAwNDM1MiwgMC4wMDQzNTQsIDAuMDA0MzU1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUzAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjQwMywgMC4wMDY0NTYsIDAuMDA2NDYzLCAwLjAwNjQ2NywgMC4wMDY0NywgMC4wMDY0NzEsIDAuMDA2NDcxIiwgXAotICAgICAgICAgICIwLjAwNjQwOCwgMC4wMDY0NiwgMC4wMDY0NjgsIDAuMDA2NDcyLCAwLjAwNjQ3NCwgMC4wMDY0NzUsIDAuMDA2NDc3IiwgXAotICAgICAgICAgICIwLjAwNjQwMSwgMC4wMDY0NTQsIDAuMDA2NDYxLCAwLjAwNjQ2NywgMC4wMDY0NjgsIDAuMDA2NDcsIDAuMDA2NDY5IiwgXAotICAgICAgICAgICIwLjAwNjM5NCwgMC4wMDY0NDcsIDAuMDA2NDU0LCAwLjAwNjQ1OCwgMC4wMDY0NjIsIDAuMDA2NDYzLCAwLjAwNjQ2NCIsIFwKLSAgICAgICAgICAiMC4wMDYzODcsIDAuMDA2NDQsIDAuMDA2NDQ3LCAwLjAwNjQ1MiwgMC4wMDY0NTQsIDAuMDA2NDU1LCAwLjAwNjQ1NSIsIFwKLSAgICAgICAgICAiMC4wMDYzNzcsIDAuMDA2NDI5LCAwLjAwNjQzNywgMC4wMDY0NDIsIDAuMDA2NDQzLCAwLjAwNjQ0NSwgMC4wMDY0NDUiLCBcCi0gICAgICAgICAgIjAuMDA2MzczLCAwLjAwNjQyNSwgMC4wMDY0MzMsIDAuMDA2NDM3LCAwLjAwNjQ0MSwgMC4wMDY0MzksIDAuMDA2NDQxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA4ODQ1LCAwLjAwODkwNSwgMC4wMDg5MTIsIDAuMDA4OTE3LCAwLjAwODkxOCwgMC4wMDg5MiwgMC4wMDg5MiIsIFwKLSAgICAgICAgICAiMC4wMDg4MzksIDAuMDA4ODk4LCAwLjAwODkwNiwgMC4wMDg5MSwgMC4wMDg5MTIsIDAuMDA4OTE0LCAwLjAwODkxNCIsIFwKLSAgICAgICAgICAiMC4wMDg4MjgsIDAuMDA4ODg3LCAwLjAwODg5NSwgMC4wMDg4OTksIDAuMDA4OSwgMC4wMDg5MDIsIDAuMDA4OTAzIiwgXAotICAgICAgICAgICIwLjAwODgxOCwgMC4wMDg4NzcsIDAuMDA4ODg2LCAwLjAwODg4OSwgMC4wMDg4OTEsIDAuMDA4ODkzLCAwLjAwODg5NCIsIFwKLSAgICAgICAgICAiMC4wMDg4MTIsIDAuMDA4ODcxLCAwLjAwODg3OSwgMC4wMDg4ODIsIDAuMDA4ODg0LCAwLjAwODg4NiwgMC4wMDg4ODciLCBcCi0gICAgICAgICAgIjAuMDA4ODA0LCAwLjAwODg2MywgMC4wMDg4NzEsIDAuMDA4ODc2LCAwLjAwODg3NywgMC4wMDg4NzksIDAuMDA4ODgiLCBcCi0gICAgICAgICAgIjAuMDA4ODAxLCAwLjAwODg2LCAwLjAwODg2OCwgMC4wMDg4NzIsIDAuMDA4ODc0LCAwLjAwODg3NSwgMC4wMDg4NzYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTMSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0MTksIDAuMDA0MjQzLCAwLjAwNDI1MSwgMC4wMDQyNTYsIDAuMDA0MjU4LCAwLjAwNDI2LCAwLjAwNDI2MSIsIFwKLSAgICAgICAgICAiMC4wMDQxOSwgMC4wMDQyNDIsIDAuMDA0MjUxLCAwLjAwNDI1NiwgMC4wMDQyNTgsIDAuMDA0MjYsIDAuMDA0MjYxIiwgXAotICAgICAgICAgICIwLjAwNDE4NywgMC4wMDQyNCwgMC4wMDQyNDgsIDAuMDA0MjUzLCAwLjAwNDI1NiwgMC4wMDQyNTgsIDAuMDA0MjU4IiwgXAotICAgICAgICAgICIwLjAwNDE4NiwgMC4wMDQyMzgsIDAuMDA0MjQ2LCAwLjAwNDI1MSwgMC4wMDQyNTMsIDAuMDA0MjU1LCAwLjAwNDI1NiIsIFwKLSAgICAgICAgICAiMC4wMDQxODQsIDAuMDA0MjM2LCAwLjAwNDI0NCwgMC4wMDQyNDksIDAuMDA0MjUyLCAwLjAwNDI1MywgMC4wMDQyNTQiLCBcCi0gICAgICAgICAgIjAuMDA0MTgxLCAwLjAwNDIzMywgMC4wMDQyNDEsIDAuMDA0MjQ3LCAwLjAwNDI0OSwgMC4wMDQyNTEsIDAuMDA0MjUxIiwgXAotICAgICAgICAgICIwLjAwNDE3OSwgMC4wMDQyMzMsIDAuMDA0MjQsIDAuMDA0MjQ1LCAwLjAwNDI0NywgMC4wMDQyNDksIDAuMDA0MjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDM1MDUsIDAuMDAzNTY4LCAwLjAwMzU3OCwgMC4wMDM1ODMsIDAuMDAzNTg2LCAwLjAwMzU4OCwgMC4wMDM1ODkiLCBcCi0gICAgICAgICAgIjAuMDAzNDk5LCAwLjAwMzU2MiwgMC4wMDM1NzIsIDAuMDAzNTc3LCAwLjAwMzU4LCAwLjAwMzU4MSwgMC4wMDM1ODMiLCBcCi0gICAgICAgICAgIjAuMDAzNDkzLCAwLjAwMzU1NiwgMC4wMDM1NjYsIDAuMDAzNTcxLCAwLjAwMzU3NCwgMC4wMDM1NzYsIDAuMDAzNTc3IiwgXAotICAgICAgICAgICIwLjAwMzQ4OSwgMC4wMDM1NTIsIDAuMDAzNTYyLCAwLjAwMzU2NywgMC4wMDM1NywgMC4wMDM1NzIsIDAuMDAzNTczIiwgXAotICAgICAgICAgICIwLjAwMzQ4NSwgMC4wMDM1NDgsIDAuMDAzNTU4LCAwLjAwMzU2MywgMC4wMDM1NjYsIDAuMDAzNTY4LCAwLjAwMzU2OSIsIFwKLSAgICAgICAgICAiMC4wMDM0ODMsIDAuMDAzNTQ2LCAwLjAwMzU1NSwgMC4wMDM1NjEsIDAuMDAzNTY0LCAwLjAwMzU2NSwgMC4wMDM1NjciLCBcCi0gICAgICAgICAgIjAuMDAzNDgxLCAwLjAwMzU0NSwgMC4wMDM1NTQsIDAuMDAzNTYsIDAuMDAzNTYzLCAwLjAwMzU2NSwgMC4wMDM1NjYiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IE1YSTRYTCAqCi0gKiAtLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKE1YSTRYTCkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjE5MTQ0MjsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjI3ODIxOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYyNjEyNTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2Mjc4MjE7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNzM1LCAwLjAwMDcyNCwgMC4wMDA3MTgsIDAuMDAwNzE0LCAwLjAwMDcxMSwgMC4wMDA3MDcsIDAuMDAwNzA1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxODc2LCAwLjAwMTg3MSwgMC4wMDE4NjcsIDAuMDAxODY1LCAwLjAwMTg2NCwgMC4wMDE4NjIsIDAuMDAxODYxIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA1NzEzNTM7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNTY5NTE7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNTcxMzUzOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDE1OSwgMC4wMDAxNiwgMC4wMDAxNjEsIDAuMDAwMTYxLCAwLjAwMDE2MiwgMC4wMDAxNjIsIDAuMDAwMTYyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMTY3LCAwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY2Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihDKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2MDAyNTQ7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNTk4NDU0OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDYwMDI1NDsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA3NjcsIDAuMDAwNzU2LCAwLjAwMDc1LCAwLjAwMDc0NSwgMC4wMDA3NDIsIDAuMDAwNzM5LCAwLjAwMDczNyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTc1NiwgMC4wMDE3NTEsIDAuMDAxNzQ3LCAwLjAwMTc0NSwgMC4wMDE3NDQsIDAuMDAxNzQyLCAwLjAwMTc0MSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNTQ4NjQxOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDU0NzE1MzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA1NDg2NDE7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMTYsIDAuMDAwMTYxLCAwLjAwMDE2MiwgMC4wMDAxNjIsIDAuMDAwMTYyLCAwLjAwMDE2MiwgMC4wMDAxNjIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxNjcsIDAuMDAwMTY2LCAwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiwgMC4wMDAxNjYiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFMwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE3ODMxNTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE3ODE4NTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE3ODMxNTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA0MjYsIDAuMDAwNDExLCAwLjAwMDQwMSwgMC4wMDAzOTUsIDAuMDAwMzkyLCAwLjAwMDM5MSwgMC4wMDAzOTEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDI2ODcsIDAuMDAyNjc4LCAwLjAwMjY3MSwgMC4wMDI2NjcsIDAuMDAyNjY2LCAwLjAwMjY2NCwgMC4wMDI2NjMiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFMxKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDEzMTU4OTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDEzMTQ2NTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDEzMTU4OTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyNzUsIDAuMDAwMjU2LCAwLjAwMDI0NiwgMC4wMDAyNDIsIDAuMDAwMjQxLCAwLjAwMDI0LCAwLjAwMDI0MSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTM4NCwgMC4wMDEzNywgMC4wMDEzNjMsIDAuMDAxMzYsIDAuMDAxMzU3LCAwLjAwMTM1OCwgMC4wMDEzNTkiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4wNjUwNDI2OwotICAgIGZ1bmN0aW9uIDogIighKChTMSAoKFMwIEQpICsgKCFTMCBDKSkpICsgKCFTMSAoKFMwIEIpICsgKCFTMCBBKSkpKSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMzMzk1OCwgMC4zNTkzNDIsIDAuNTg3MTMzLCAwLjk2NjE4OCwgMS4zNDQ5NSwgMi4yMjg2NywgMi43MzM1NSIsIFwKLSAgICAgICAgICAiMC4zNDU0MSwgMC4zNzA3OTcsIDAuNTk4NTg3LCAwLjk3NzYwMiwgMS4zNTY0LCAyLjI0MDE3LCAyLjc0NSIsIFwKLSAgICAgICAgICAiMC4zNTg0NTYsIDAuMzgzODQxLCAwLjYxMTYzMywgMC45OTA2NzgsIDEuMzY5NDUsIDIuMjUzMTcsIDIuNzU4MTQiLCBcCi0gICAgICAgICAgIjAuMzcwOTA4LCAwLjM5NjI5OSwgMC42MjQwOSwgMS4wMDMwOCwgMS4zODE5MiwgMi4yNjU2MiwgMi43NzA1NSIsIFwKLSAgICAgICAgICAiMC4zODMyOTksIDAuNDA4NjgzLCAwLjYzNjQ3MywgMS4wMTU1NywgMS4zOTQyOSwgMi4yNzgwNCwgMi43ODI5MiIsIFwKLSAgICAgICAgICAiMC40MDI2NDIsIDAuNDI4MDMsIDAuNjU1ODE5LCAxLjAzNDgzLCAxLjQxMzYzLCAyLjI5NzQxLCAyLjgwMjI3IiwgXAotICAgICAgICAgICIwLjQxOTI3MiwgMC40NDQ2NTcsIDAuNjcyNDE3LCAxLjA1MTQyLCAxLjQzMDI1LCAyLjMxNDAyLCAyLjgxODkiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjc2MSwgMC4zMjY2NjMsIDAuNzg2MzMyLCAxLjU1NTM1LCAyLjMyMTI1LCA0LjEyMDI0LCA1LjE0MDQ2IiwgXAotICAgICAgICAgICIwLjI3NjExMiwgMC4zMjY2NTcsIDAuNzg2MzE4LCAxLjU1MjA0LCAyLjMyMTI1LCA0LjEyMDQ5LCA1LjE0MDM4IiwgXAotICAgICAgICAgICIwLjI3NjA4NywgMC4zMjY2NTQsIDAuNzg2MzI3LCAxLjU1NTM1LCAyLjMyMTIzLCA0LjEyMDE1LCA1LjEzNzY5IiwgXAotICAgICAgICAgICIwLjI3NjA4MywgMC4zMjY2NDksIDAuNzg2MzMzLCAxLjU1NTQxLCAyLjMyMTY2LCA0LjExNDI4LCA1LjE0MDM0IiwgXAotICAgICAgICAgICIwLjI3NjA3LCAwLjMyNjYwOSwgMC43ODYzMDUsIDEuNTUyMjEsIDIuMzIxMjcsIDQuMTIwMzUsIDUuMTM2MjciLCBcCi0gICAgICAgICAgIjAuMjc2MDY5LCAwLjMyNjYwOSwgMC43ODYzMDEsIDEuNTUzNDcsIDIuMzIxMSwgNC4xMjA1MSwgNS4xMzYzMSIsIFwKLSAgICAgICAgICAiMC4yNzYwNDcsIDAuMzI1OTY0LCAwLjc4NjAwMSwgMS41NTI5NiwgMi4zMjE0NSwgNC4xMjA0NiwgNS4xMzczNSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zNTksIDAuMzg4ODA4LCAwLjY1NjQ3NiwgMS4xMDIxMywgMS41NDc2NSwgMi41ODczMSwgMy4xODA5MSIsIFwKLSAgICAgICAgICAiMC4zNzA3NTksIDAuNDAwNTY5LCAwLjY2ODIzOSwgMS4xMTM4OCwgMS41NTk0MiwgMi41OTg3OSwgMy4xOTI3MSIsIFwKLSAgICAgICAgICAiMC4zODQ2MTcsIDAuNDE0NDMyLCAwLjY4MjEsIDEuMTI3NzYsIDEuNTczMjYsIDIuNjEyNzcsIDMuMjA2NTIiLCBcCi0gICAgICAgICAgIjAuMzk4MzM4LCAwLjQyODE0NywgMC42OTU4MTksIDEuMTQxNDYsIDEuNTg3LCAyLjYyNjM3LCAzLjIyMDMyIiwgXAotICAgICAgICAgICIwLjQxMTkzOSwgMC40NDE3NDQsIDAuNzA5NDEzLCAxLjE1NTA0LCAxLjYwMDU3LCAyLjY0MDA4LCAzLjIzMzgzIiwgXAotICAgICAgICAgICIwLjQzMzc5OSwgMC40NjM2MDgsIDAuNzMxMjc5LCAxLjE3NjkyLCAxLjYyMjQ1LCAyLjY2MTgyLCAzLjI1NTc1IiwgXAotICAgICAgICAgICIwLjQ1MjY0NCwgMC40ODI0NTMsIDAuNzUwMTI0LCAxLjE5NTc2LCAxLjY0MTMsIDIuNjgwNjcsIDMuMjc0NTUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzE1MjEsIDAuMzczNjg5LCAwLjkwMjA2LCAxLjc4NDEzLCAyLjY2OTQ5LCA0LjcyMjQ3LCA1Ljg5MjYxIiwgXAotICAgICAgICAgICIwLjMxNTE4NiwgMC4zNzM2NDgsIDAuOTAxODQ3LCAxLjc4NTQ4LCAyLjY2NTUxLCA0LjcyMzQzLCA1Ljg5MjM4IiwgXAotICAgICAgICAgICIwLjMxNTEzNiwgMC4zNzM2NDUsIDAuOTAxODgyLCAxLjc4NTQyLCAyLjY2NzkyLCA0LjcyMjYzLCA1Ljg5Mjc5IiwgXAotICAgICAgICAgICIwLjMxNTE2OCwgMC4zNzM2MjksIDAuOTAxNzkzLCAxLjc4NTQ0LCAyLjY2ODczLCA0LjcyMzYxLCA1Ljg5MjIxIiwgXAotICAgICAgICAgICIwLjMxNTEzOSwgMC4zNzM2MzQsIDAuOTAxODY4LCAxLjc4NTc3LCAyLjY2Njg5LCA0LjcyMTk5LCA1Ljg5Mjc0IiwgXAotICAgICAgICAgICIwLjMxNTE2MiwgMC4zNzM2MjIsIDAuOTAxNzgxLCAxLjc4NTI3LCAyLjY2OTIsIDQuNzIzNzQsIDUuODkyODUiLCBcCi0gICAgICAgICAgIjAuMzE1MTYxLCAwLjM3MzYyLCAwLjkwMTc2NywgMS43ODQ4MSwgMi42Njg5MSwgNC43MjM3OSwgNS44OTI3OCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMzY5MDYsIDAuMzYyMjg5LCAwLjU5MDA3OSwgMC45NjkxNzUsIDEuMzQ3OSwgMi4yMzE2MywgMi43MzY1IiwgXAotICAgICAgICAgICIwLjM0ODQ0NSwgMC4zNzM4MzksIDAuNjAxNjMsIDAuOTgwNjYxLCAxLjM1OTQ0LCAyLjI0MzQyLCAyLjc0ODA4IiwgXAotICAgICAgICAgICIwLjM2MTYyMSwgMC4zODcwMDYsIDAuNjE0Nzk4LCAwLjk5Mzg1NywgMS4zNzI2MiwgMi4yNTYzNCwgMi43NjEyMiIsIFwKLSAgICAgICAgICAiMC4zNzQyODQsIDAuMzk5Njc2LCAwLjYyNzQ2NiwgMS4wMDY0NSwgMS4zODUzLCAyLjI2OSwgMi43NzM5MiIsIFwKLSAgICAgICAgICAiMC4zODY2MjcsIDAuNDEyMDE1LCAwLjYzOTgwNCwgMS4wMTg4MSwgMS4zOTc2MiwgMi4yODE0MSwgMi43ODYyNiIsIFwKLSAgICAgICAgICAiMC40MDYwNiwgMC40MzE0NTYsIDAuNjU5MjQ2LCAxLjAzODIzLCAxLjQxNzA5LCAyLjMwMDc4LCAyLjgwNTc3IiwgXAotICAgICAgICAgICIwLjQyMjcwMywgMC40NDgwOTQsIDAuNjc1OTMyLCAxLjA1NDg2LCAxLjQzMzcxLCAyLjMxNzU0LCAyLjgyMjQ2Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI3NjA5OSwgMC4zMjY2NTcsIDAuNzg2MzIzLCAxLjU1NTMsIDIuMzIxMjMsIDQuMTIwMjUsIDUuMTQwNDYiLCBcCi0gICAgICAgICAgIjAuMjc2MTEzLCAwLjMyNjY2MiwgMC43ODQ1NjcsIDEuNTU1NDEsIDIuMzIxNCwgNC4xMjA0MSwgNS4xMzY5OSIsIFwKLSAgICAgICAgICAiMC4yNzYwOTMsIDAuMzI2NjEsIDAuNzg2MzE5LCAxLjU1NTI4LCAyLjMyMTI1LCA0LjEyMDE4LCA1LjE0MDAyIiwgXAotICAgICAgICAgICIwLjI3NjA4NSwgMC4zMjY2NTEsIDAuNzg2MzI3LCAxLjU1NTM3LCAyLjMyMTY2LCA0LjExNDI4LCA1LjEzNzAxIiwgXAotICAgICAgICAgICIwLjI3NjEwMiwgMC4zMjY2NjEsIDAuNzg2MzAyLCAxLjU1MzIxLCAyLjMyMTMsIDQuMTIwNTUsIDUuMTM2OCIsIFwKLSAgICAgICAgICAiMC4yNzYwODQsIDAuMzI2NjUsIDAuNzg2MzM1LCAxLjU1Mjk3LCAyLjMyMTc5LCA0LjExNDI2LCA1LjEzNzA0IiwgXAotICAgICAgICAgICIwLjI3NjEwNiwgMC4zMjY2NTgsIDAuNzg2MzMzLCAxLjU1NTA1LCAyLjMyMTk4LCA0LjEyMDYsIDUuMTM2OSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zNjAzNjYsIDAuMzkwMTU4LCAwLjY1NzgyNywgMS4xMDM1MywgMS41NDksIDIuNTg4NDEsIDMuMTgyMjciLCBcCi0gICAgICAgICAgIjAuMzcxOTgsIDAuNDAxNzkzLCAwLjY2OTQ2NCwgMS4xMTUxMSwgMS41NjA2MywgMi42LCAzLjE5Mzk0IiwgXAotICAgICAgICAgICIwLjM4NTk4MSwgMC40MTU3ODMsIDAuNjgzNDY3LCAxLjEyOTExLCAxLjU3NDYyLCAyLjYxNCwgMy4yMDc4OSIsIFwKLSAgICAgICAgICAiMC4zOTk3MDEsIDAuNDI5NTEsIDAuNjk3MTc5LCAxLjE0Mjg2LCAxLjU4ODM0LCAyLjYyNzgsIDMuMjIxNTkiLCBcCi0gICAgICAgICAgIjAuNDEzNDE5LCAwLjQ0MzIzLCAwLjcxMDkwMywgMS4xNTY1NCwgMS42MDIwOCwgMi42NDE0NSwgMy4yMzU1MiIsIFwKLSAgICAgICAgICAiMC40MzUzNDksIDAuNDY1MTM1LCAwLjczMjgyMiwgMS4xNzg1NSwgMS42MjM5NywgMi42NjMzNiwgMy4yNTcyNCIsIFwKLSAgICAgICAgICAiMC40NTQyNTQsIDAuNDg0MDcyLCAwLjc1MTc0MywgMS4xOTczOCwgMS42NDI5LCAyLjY4MjI3LCAzLjI3NjE1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMxNTIxNywgMC4zNzM2OSwgMC45MDIwNjQsIDEuNzg1NDksIDIuNjY5NTgsIDQuNzIzNTYsIDUuODkyNyIsIFwKLSAgICAgICAgICAiMC4zMTUyMDYsIDAuMzczNjM4LCAwLjkwMTc2NywgMS43ODUzLCAyLjY2OTQ1LCA0LjcyMzc5LCA1Ljg5MzIzIiwgXAotICAgICAgICAgICIwLjMxNTE5MSwgMC4zNzM1NzUsIDAuOTAxNzE0LCAxLjc4NTE2LCAyLjY2OTQ0LCA0LjcyMzY5LCA1Ljg5MjQ4IiwgXAotICAgICAgICAgICIwLjMxNTE3NSwgMC4zNzM2MzYsIDAuOTAxODQ3LCAxLjc4MzM1LCAyLjY2ODA4LCA0LjcyMjUxLCA1Ljg5MjgxIiwgXAotICAgICAgICAgICIwLjMxNTE2OSwgMC4zNzM2MjcsIDAuOTAxNzI3LCAxLjc4NTQxLCAyLjY2ODg2LCA0LjcyMzY3LCA1Ljg5MSIsIFwKLSAgICAgICAgICAiMC4zMTQ4ODQsIDAuMzczNTI1LCAwLjkwMTgyMywgMS43ODQxMywgMi42NjYwMiwgNC43MjM0NiwgNS44OTI2OSIsIFwKLSAgICAgICAgICAiMC4zMTUxNzYsIDAuMzczNjE0LCAwLjkwMTY3MywgMS43ODUyMywgMi42NjkzNSwgNC43MjM2OCwgNS44OTI4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMyNzYxNiwgMC4zNTI5ODgsIDAuNTgwNzEsIDAuOTU5NjUsIDEuMzM4NDUsIDIuMjIyMTIsIDIuNzI3MDQiLCBcCi0gICAgICAgICAgIjAuMzM5MTQ4LCAwLjM2NDUyLCAwLjU5MjI0MiwgMC45NzExODIsIDEuMzQ5OTgsIDIuMjMzNjUsIDIuNzM4NTgiLCBcCi0gICAgICAgICAgIjAuMzUyNDA2LCAwLjM3Nzc3MSwgMC42MDU1LCAwLjk4NDQ0MiwgMS4zNjMyNSwgMi4yNDY5MiwgMi43NTE4MiIsIFwKLSAgICAgICAgICAiMC4zNjQ5OTksIDAuMzkwMzcxLCAwLjYxODA4MywgMC45OTcwMjMsIDEuMzc1ODYsIDIuMjU5NTEsIDIuNzY0NDUiLCBcCi0gICAgICAgICAgIjAuMzc3MzkxLCAwLjQwMjc2MiwgMC42MzA0NzMsIDEuMDA5NDEsIDEuMzg4MjQsIDIuMjcxOSwgMi43NzY4OSIsIFwKLSAgICAgICAgICAiMC4zOTY3NTcsIDAuNDIyMTQxLCAwLjY0OTg0OSwgMS4wMjg3OSwgMS40MDc2MiwgMi4yOTEyOCwgMi43OTYzNSIsIFwKLSAgICAgICAgICAiMC40MTMzNzksIDAuNDM4NzYxLCAwLjY2NjQ4LCAxLjA0NTQ2LCAxLjQyNDIxLCAyLjMwNzk2LCAyLjgxMjgiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjc1NzU3LCAwLjMyNjM2OSwgMC43ODYxNDgsIDEuNTUzMDcsIDIuMzI0NzEsIDQuMTEzOTQsIDUuMTM4MjkiLCBcCi0gICAgICAgICAgIjAuMjc1NzU5LCAwLjMyNjM2OCwgMC43ODYxNDcsIDEuNTUzMDUsIDIuMzI0NywgNC4xMTQwOCwgNS4xMzgyOCIsIFwKLSAgICAgICAgICAiMC4yNzU3NiwgMC4zMjYyOTYsIDAuNzg2MTI1LCAxLjU1MzAzLCAyLjMyMTM4LCA0LjExNDEyLCA1LjE0MDMyIiwgXAotICAgICAgICAgICIwLjI3NTc3MiwgMC4zMjYzNiwgMC43ODYxMTYsIDEuNTUzMDEsIDIuMzIxNTUsIDQuMTE0MTgsIDUuMTQwMTkiLCBcCi0gICAgICAgICAgIjAuMjc1NzczLCAwLjMyNjM2MywgMC43ODYwOTIsIDEuNTU1MTcsIDIuMzIxNTQsIDQuMTE0MTUsIDUuMTQwMjIiLCBcCi0gICAgICAgICAgIjAuMjc1NzY0LCAwLjMyNjM0NywgMC43ODYxMDgsIDEuNTUyOTcsIDIuMzE5NDgsIDQuMTE0MjIsIDUuMTM5OTciLCBcCi0gICAgICAgICAgIjAuMjc1ODAzLCAwLjMyNjM4NSwgMC43ODQzOTYsIDEuNTU1MTQsIDIuMzIxMDksIDQuMTE0NDEsIDUuMTM2OTIiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzU0MjY1LCAwLjM4NDA2NSwgMC42NTE2OTcsIDEuMDk3MzEsIDEuNTQyODQsIDIuNTgyMTksIDMuMTc2NDUiLCBcCi0gICAgICAgICAgIjAuMzY1ODE5LCAwLjM5NTYyMiwgMC42NjMyNTQsIDEuMTA4ODYsIDEuNTU0MzcsIDIuNTkzNzMsIDMuMTg3NyIsIFwKLSAgICAgICAgICAiMC4zNzk0ODUsIDAuNDA5Mjg3LCAwLjY3NjkxOSwgMS4xMjI1MiwgMS41NjgwNSwgMi42MDc0LCAzLjIwMTQxIiwgXAotICAgICAgICAgICIwLjM5MzExMSwgMC40MjI5MTQsIDAuNjkwNTQ2LCAxLjEzNjE1LCAxLjU4MTY3LCAyLjYyMTAyLCAzLjIxNTAzIiwgXAotICAgICAgICAgICIwLjQwNjg1MiwgMC40MzY2NTYsIDAuNzA0Mjg4LCAxLjE0OTksIDEuNTk1NDIsIDIuNjM0NzcsIDMuMjI4NyIsIFwKLSAgICAgICAgICAiMC40Mjg1MDYsIDAuNDU4MzEsIDAuNzI1OTQyLCAxLjE3MTU1LCAxLjYxNzA1LCAyLjY1NjQxLCAzLjI1MDQxIiwgXAotICAgICAgICAgICIwLjQ0NzI3OSwgMC40NzcwNjQsIDAuNzQ0NzQxLCAxLjE5MDMyLCAxLjYzNTg0LCAyLjY3NTE3LCAzLjI2OTA3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMxNTEzLCAwLjM3MzU5NiwgMC45MDE4MDEsIDEuNzg1NTUsIDIuNjY3NjgsIDQuNzIzMjYsIDUuODkyNTYiLCBcCi0gICAgICAgICAgIjAuMzE1MDk2LCAwLjM3MzU1NSwgMC45MDE2MSwgMS43ODUzOCwgMi42Njk0MywgNC43MjM2OCwgNS44OTI4NSIsIFwKLSAgICAgICAgICAiMC4zMTUwOTMsIDAuMzczNTU1LCAwLjkwMTYzNywgMS43ODQxMywgMi42NjkwNywgNC43MjM1OCwgNS44OTI0NCIsIFwKLSAgICAgICAgICAiMC4zMTUwODMsIDAuMzczNTQ4LCAwLjkwMTYyMSwgMS43ODM5NCwgMi42NjkyNSwgNC43MjM3NCwgNS44OTIzMiIsIFwKLSAgICAgICAgICAiMC4zMTUwNzYsIDAuMzczNTM5LCAwLjkwMTU4MiwgMS43ODUzNSwgMi42Njg5NSwgNC43MjM3MSwgNS44OTIxMSIsIFwKLSAgICAgICAgICAiMC4zMTUwODIsIDAuMzczNTM0LCAwLjkwMTU0MywgMS43ODQ2MywgMi42NjkxNywgNC43MjM2MSwgNS44OTMyMiIsIFwKLSAgICAgICAgICAiMC4zMTUwNjQsIDAuMzczMzczLCAwLjkwMTI0NywgMS43ODUzNSwgMi42NjgzNSwgNC43MjMzNSwgNS44OTIyOSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJEIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMzA0MDMsIDAuMzU1NzczLCAwLjU4MzQ4NCwgMC45NjI0MjUsIDEuMzQxMjYsIDIuMjI0OTIsIDIuNzI5OTciLCBcCi0gICAgICAgICAgIjAuMzQxODc0LCAwLjM2NzI0MywgMC41OTQ5NTYsIDAuOTczOSwgMS4zNTI3MiwgMi4yMzYzNywgMi43NDE2MSIsIFwKLSAgICAgICAgICAiMC4zNTUwMywgMC4zODAzOTcsIDAuNjA4MTA5LCAwLjk4NzA2NywgMS4zNjU4NywgMi4yNDk1MiwgMi43NTQ1NCIsIFwKLSAgICAgICAgICAiMC4zNjc0NTMsIDAuMzkyODEzLCAwLjYyMDU0NywgMC45OTk0ODksIDEuMzc4MywgMi4yNjE5NiwgMi43NjY4NyIsIFwKLSAgICAgICAgICAiMC4zNzk3NjUsIDAuNDA1MTMzLCAwLjYzMjg0NSwgMS4wMTE4MSwgMS4zOTA2MSwgMi4yNzQyNiwgMi43NzkzNSIsIFwKLSAgICAgICAgICAiMC4zOTkwODQsIDAuNDI0NDU1LCAwLjY1MjE2NywgMS4wMzExMSwgMS40MDk5MywgMi4yOTM1NywgMi43OTg4NyIsIFwKLSAgICAgICAgICAiMC40MTU2OTcsIDAuNDQxMDY4LCAwLjY2ODc4MiwgMS4wNDc3MywgMS40MjY1NCwgMi4zMTAxOCwgMi44MTU0MSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yNzU3ODgsIDAuMzI2Mzc3LCAwLjc4NjEwNywgMS41NTUyMSwgMi4zMjE2OCwgNC4xMTQyLCA1LjE0MDQ0IiwgXAotICAgICAgICAgICIwLjI3NTc4MywgMC4zMjYzNywgMC43ODYxMTksIDEuNTU1MjMsIDIuMzIxNjcsIDQuMTE5ODcsIDUuMTQwMTQiLCBcCi0gICAgICAgICAgIjAuMjc1Nzk1LCAwLjMyNjM3MywgMC43ODYwOTMsIDEuNTU1MzQsIDIuMzIxNDcsIDQuMTE5ODgsIDUuMTM2OTkiLCBcCi0gICAgICAgICAgIjAuMjc1NzY2LCAwLjMyNjI4NiwgMC43ODYxMzEsIDEuNTUzMDUsIDIuMzIxMzMsIDQuMTE0MSwgNS4xMzgwMSIsIFwKLSAgICAgICAgICAiMC4yNzU3ODgsIDAuMzI2MzczLCAwLjc4NjA5MSwgMS41NTU0MSwgMi4zMjE1MSwgNC4xMTk5NSwgNS4xMzY3NSIsIFwKLSAgICAgICAgICAiMC4yNzU3OCwgMC4zMjYzNzEsIDAuNzg2MDg5LCAxLjU1NTI2LCAyLjMyMTU2LCA0LjExOTg0LCA1LjEzOTM0IiwgXAotICAgICAgICAgICIwLjI3NTc4MSwgMC4zMjYzMjEsIDAuNzg2MDk0LCAxLjU1NTI0LCAyLjMyMTU4LCA0LjExOTgzLCA1LjEzOTQyIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjM1NTIxNiwgMC4zODUwMTgsIDAuNjUyNjUyLCAxLjA5ODI3LCAxLjU0Mzc4LCAyLjU4MzEzLCAzLjE3NzE5IiwgXAotICAgICAgICAgICIwLjM2NzAxNCwgMC4zOTY4MTcsIDAuNjY0NDQ4LCAxLjExMDA2LCAxLjU1NTU2LCAyLjU5NDkyLCAzLjE4ODg4IiwgXAotICAgICAgICAgICIwLjM4MTEwNSwgMC40MTA5MDksIDAuNjc4NTQsIDEuMTI0MTUsIDEuNTY5NjYsIDIuNjA5MDEsIDMuMjAzMDYiLCBcCi0gICAgICAgICAgIjAuMzk0ODEzLCAwLjQyNDYxNSwgMC42OTIyNTYsIDEuMTM3ODYsIDEuNTgzMzUsIDIuNjIyNzEsIDMuMjE2NjEiLCBcCi0gICAgICAgICAgIjAuNDA4NTUyLCAwLjQzODM1NSwgMC43MDU5ODgsIDEuMTUxNTksIDEuNTk3MSwgMi42MzY0NiwgMy4yMzA0NSIsIFwKLSAgICAgICAgICAiMC40MzA0NDgsIDAuNDYwMjUzLCAwLjcyNzg4NSwgMS4xNzM0OSwgMS42MTksIDIuNjU4MzUsIDMuMjUyMzEiLCBcCi0gICAgICAgICAgIjAuNDQ5MjU0LCAwLjQ3OTA1MiwgMC43NDY2OTYsIDEuMTkyMywgMS42Mzc3OSwgMi42NzcxNSwgMy4yNzEwNCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMTUxMzYsIDAuMzczNjA1LCAwLjkwMTgzMywgMS43ODUyOCwgMi42Njk2NywgNC43MjM3NCwgNS44OTMwNyIsIFwKLSAgICAgICAgICAiMC4zMTUxMDYsIDAuMzczNTYyLCAwLjkwMTYyMSwgMS43ODUzOSwgMi42Njk0NCwgNC43MjM2OCwgNS44OTMyIiwgXAotICAgICAgICAgICIwLjMxNTA4NywgMC4zNzM1NDgsIDAuOTAxNTk5LCAxLjc4NDc3LCAyLjY2OTM3LCA0LjcyMzY4LCA1Ljg5MzI4IiwgXAotICAgICAgICAgICIwLjMxNTA3OSwgMC4zNzM1MjYsIDAuOTAxNDQ3LCAxLjc4NTM4LCAyLjY2NjY2LCA0LjcyMjg3LCA1Ljg5MjEyIiwgXAotICAgICAgICAgICIwLjMxNTA4MywgMC4zNzM1NDEsIDAuOTAxNTY2LCAxLjc4NDc3LCAyLjY2OTMxLCA0LjcyMzY0LCA1Ljg5MzIzIiwgXAotICAgICAgICAgICIwLjMxNTA3NiwgMC4zNzM1MzMsIDAuOTAxNTM1LCAxLjc4NDkyLCAyLjY2ODksIDQuNzIzNTksIDUuODkyODEiLCBcCi0gICAgICAgICAgIjAuMzE1MDc1LCAwLjM3MzUxNCwgMC45MDE0NTUsIDEuNzg1MzYsIDIuNjY2MjQsIDQuNzIzNDQsIDUuODkyMzIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUzAiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjM4MTc1NSwgMC40MDcxNSwgMC42MzQ5MzEsIDEuMDEzOTMsIDEuMzkyNzcsIDIuMjc2NjksIDIuNzgxNDMiLCBcCi0gICAgICAgICAgIjAuMzkzNzY4LCAwLjQxOTE1NywgMC42NDcwMDEsIDEuMDI2MDEsIDEuNDA0NzgsIDIuMjg4NTQsIDIuNzkzNDMiLCBcCi0gICAgICAgICAgIjAuNDA5Mjk0LCAwLjQzNDY4NSwgMC42NjI0ODksIDEuMDQxNTEsIDEuNDIwMywgMi4zMDQwMywgMi44MDg5NyIsIFwKLSAgICAgICAgICAiMC40MjQ2NzcsIDAuNDUwMDY1LCAwLjY3NzkwNywgMS4wNTY5LCAxLjQzNTY5LCAyLjMxOTQ3LCAyLjgyNDM0IiwgXAotICAgICAgICAgICIwLjQzOTQ4NywgMC40NjQ4ODEsIDAuNjkyNjY3LCAxLjA3MTY2LCAxLjQ1MDUsIDIuMzM0MjUsIDIuODM5MTYiLCBcCi0gICAgICAgICAgIjAuNDYzNjIyLCAwLjQ4OTAwOCwgMC43MTY3NywgMS4wOTU3OSwgMS40NzQ2MiwgMi4zNTgzMywgMi44NjMyOCIsIFwKLSAgICAgICAgICAiMC40ODM3OTgsIDAuNTA5MTg3LCAwLjczNjk5MywgMS4xMTYwMywgMS40OTQ4MSwgMi4zNzg1NCwgMi44ODM0NyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yNzYxNCwgMC4zMjY2OSwgMC43ODYzNDksIDEuNTU1NTQsIDIuMzI0NzIsIDQuMTIwODIsIDUuMTQwMzYiLCBcCi0gICAgICAgICAgIjAuMjc2MTQ0LCAwLjMyNjY4NiwgMC43ODYzNjEsIDEuNTU1NTMsIDIuMzI1MTgsIDQuMTIwNjEsIDUuMTQwMjYiLCBcCi0gICAgICAgICAgIjAuMjc2MTEyLCAwLjMyNjY2NCwgMC43ODYzNSwgMS41NTUyNiwgMi4zMjE1NiwgNC4xMjA4LCA1LjE0MDMzIiwgXAotICAgICAgICAgICIwLjI3NjEzNiwgMC4zMjY2ODIsIDAuNzg2MzM4LCAxLjU1NTU2LCAyLjMyNDg2LCA0LjEyMDQyLCA1LjE0MDM3IiwgXAotICAgICAgICAgICIwLjI3NjEzOCwgMC4zMjY2ODUsIDAuNzg2MzMsIDEuNTU1NDksIDIuMzIxODEsIDQuMTIwODUsIDUuMTQwNDkiLCBcCi0gICAgICAgICAgIjAuMjc2MDg2LCAwLjMyNjcyNiwgMC43ODYzMjgsIDEuNTU1NSwgMi4zMjE3MywgNC4xMjA3MSwgNS4xNDAyNCIsIFwKLSAgICAgICAgICAiMC4yNzYxMDIsIDAuMzI2NjU1LCAwLjc4NjMzNiwgMS41NTU0NSwgMi4zMjE0OSwgNC4xMjA3OCwgNS4xNDAzMiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zOTg1OSwgMC40MjgzOTgsIDAuNjk2MDcsIDEuMTQxNzEsIDEuNTg3MjUsIDIuNjI2NjIsIDMuMjIwNiIsIFwKLSAgICAgICAgICAiMC40MTA1NTUsIDAuNDQwMzU1LCAwLjcwODA0MSwgMS4xNTM2NywgMS41OTkyNSwgMi42Mzg1NSwgMy4yMzI0NyIsIFwKLSAgICAgICAgICAiMC40MjU1MjQsIDAuNDU1MzM1LCAwLjcyMzAwNCwgMS4xNjg2OCwgMS42MTQxNywgMi42NTM1NCwgMy4yNDc0MiIsIFwKLSAgICAgICAgICAiMC40NDAxMiwgMC40Njk5MywgMC43Mzc2MDEsIDEuMTgzMjQsIDEuNjI4NzcsIDIuNjY4MTQsIDMuMjYyMzEiLCBcCi0gICAgICAgICAgIjAuNDU0NjIzLCAwLjQ4NDQzNSwgMC43NTIxMDUsIDEuMTk3NzQsIDEuNjQzMjgsIDIuNjgyNjUsIDMuMjc2ODQiLCBcCi0gICAgICAgICAgIjAuNDc2NzY4LCAwLjUwNjU2NSwgMC43NzQyMzMsIDEuMjE5ODcsIDEuNjY1MzgsIDIuNzA0OTIsIDMuMjk4NjciLCBcCi0gICAgICAgICAgIjAuNDk0MjIxLCAwLjUyNDAzMSwgMC43OTE3MDIsIDEuMjM3MzQsIDEuNjgyODcsIDIuNzIyMjUsIDMuMzE2NDgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzE1MjM2LCAwLjM3Mzc0NywgMC45MDIyOTcsIDEuNzg1OTEsIDIuNjcwMzgsIDQuNzIzOCwgNS44OTMzMyIsIFwKLSAgICAgICAgICAiMC4zMTUyNTksIDAuMzczNzE1LCAwLjkwMjAxMiwgMS43ODUzNywgMi42Njk3OCwgNC43MjM1MSwgNS44OTMxIiwgXAotICAgICAgICAgICIwLjMxNTIyOCwgMC4zNzM3NDUsIDAuOTAyMjgyLCAxLjc4NTM4LCAyLjY2OTcsIDQuNzIzODEsIDUuODkzMTUiLCBcCi0gICAgICAgICAgIjAuMzE1MjcxLCAwLjM3MzY0MywgMC45MDIwNjEsIDEuNzg1NjcsIDIuNjY5MjgsIDQuNzIzODEsIDUuODkzNDkiLCBcCi0gICAgICAgICAgIjAuMzE1MjUzLCAwLjM3MzcsIDAuOTAyMDI4LCAxLjc4NTQxLCAyLjY2OTE3LCA0LjcyMzgxLCA1Ljg5MzE5IiwgXAotICAgICAgICAgICIwLjMxNTI2MiwgMC4zNzM2MzcsIDAuOTAyMDMyLCAxLjc4NTMzLCAyLjY2OTcyLCA0LjcyMzczLCA1Ljg5MzMiLCBcCi0gICAgICAgICAgIjAuMzE1MjIyLCAwLjM3MzczMiwgMC45MDE4NTcsIDEuNzg1OCwgMi42Njk5LCA0LjcyMzgxLCA1Ljg5MzU1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlMwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMjE3ODEsIDAuMzQ3MTcxLCAwLjU3NDk3MiwgMC45NTM5NjksIDEuMzMyNzksIDIuMjE2NTEsIDIuNzIxNDUiLCBcCi0gICAgICAgICAgIjAuMzMxNzcxLCAwLjM1NzE2MSwgMC41ODQ5NjYsIDAuOTYzOTY0LCAxLjM0Mjc4LCAyLjIyNjUsIDIuNzMxNDUiLCBcCi0gICAgICAgICAgIjAuMzQ0OTA2LCAwLjM3MDMwNCwgMC41OTgwNzUsIDAuOTc3MDg2LCAxLjM1NTkyLCAyLjIzOTcyLCAyLjc0NDU5IiwgXAotICAgICAgICAgICIwLjM1ODAyNywgMC4zODM0MTQsIDAuNjExMjYzLCAwLjk5MDI4NSwgMS4zNjkwNCwgMi4yNTI3OSwgMi43NTc2OSIsIFwKLSAgICAgICAgICAiMC4zNzEwNDMsIDAuMzk2NDI4LCAwLjYyNDI2NCwgMS4wMDMyMiwgMS4zODIwNiwgMi4yNjYwNiwgMi43NzA3IiwgXAotICAgICAgICAgICIwLjM5MTk1OSwgMC40MTczNTIsIDAuNjQ1MTQ0LCAxLjAyNDEzLCAxLjQwMjk3LCAyLjI4Njg0LCAyLjc5MTciLCBcCi0gICAgICAgICAgIjAuNDA5NSwgMC40MzQ5MDEsIDAuNjYyNjksIDEuMDQxNjksIDEuNDIwNTYsIDIuMzA0MjYsIDIuODA5MTgiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjc2MTQ5LCAwLjMyNjY4MSwgMC43ODYzMjYsIDEuNTU1MzgsIDIuMzIxNjgsIDQuMTIwNTIsIDUuMTQwNCIsIFwKLSAgICAgICAgICAiMC4yNzYxNCwgMC4zMjY2ODIsIDAuNzg2MzQsIDEuNTU1NDgsIDIuMzIxNywgNC4xMjA0MywgNS4xNDAyOSIsIFwKLSAgICAgICAgICAiMC4yNzYxNDYsIDAuMzI2NzExLCAwLjc4NjMyNCwgMS41NTU0NCwgMi4zMjE2NiwgNC4xMjA3MiwgNS4xNDAyNyIsIFwKLSAgICAgICAgICAiMC4yNzYxNDIsIDAuMzI2Njg1LCAwLjc4NjMzMSwgMS41NTUzOCwgMi4zMjQ5MywgNC4xMjAxMSwgNS4xNDAzNiIsIFwKLSAgICAgICAgICAiMC4yNzYxMzgsIDAuMzI2NjkzLCAwLjc4NjUwNSwgMS41NTU2MiwgMi4zMjQ3NiwgNC4xMjA2LCA1LjE0MDI0IiwgXAotICAgICAgICAgICIwLjI3NjEyLCAwLjMyNjY2OCwgMC43ODYzNDIsIDEuNTU1NCwgMi4zMjQ5OSwgNC4xMjA0MywgNS4xNDA0IiwgXAotICAgICAgICAgICIwLjI3NjExOCwgMC4zMjY2NzMsIDAuNzg2MzkxLCAxLjU1NTMyLCAyLjMyMTU5LCA0LjEyMDEyLCA1LjE0MDU4Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjM0NDU0MSwgMC4zNzQzNTIsIDAuNjQyMDIyLCAxLjA4NzcsIDEuNTMzMjEsIDIuNTcyNiwgMy4xNjY1IiwgXAotICAgICAgICAgICIwLjM1NDc3NiwgMC4zODQ1ODMsIDAuNjUyMjU0LCAxLjA5NzkxLCAxLjU0MzQ0LCAyLjU4MjkyLCAzLjE3NjcyIiwgXAotICAgICAgICAgICIwLjM2ODExMiwgMC4zOTc5MDUsIDAuNjY1NjA0LCAxLjExMTI0LCAxLjU1Njc0LCAyLjU5NjEzLCAzLjE5MDA3IiwgXAotICAgICAgICAgICIwLjM4MTU0OCwgMC40MTEzNDgsIDAuNjc5MDU4LCAxLjEyNDcxLCAxLjU3MDI0LCAyLjYwOTYxLCAzLjIwMzUxIiwgXAotICAgICAgICAgICIwLjM5NTA3NiwgMC40MjQ4NjYsIDAuNjkyNTQ2LCAxLjEzODIzLCAxLjU4MzcxLCAyLjYyMzEzLCAzLjIxNzA1IiwgXAotICAgICAgICAgICIwLjQxNjk0OSwgMC40NDY3MzksIDAuNzE0NDEzLCAxLjE2MDA3LCAxLjYwNTU5LCAyLjY0NDk2LCAzLjIzOTAxIiwgXAotICAgICAgICAgICIwLjQzNjA1MywgMC40NjU4NTksIDAuNzMzNTMzLCAxLjE3OTI0LCAxLjYyNDY4LCAyLjY2NDA4LCAzLjI1Nzk2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMxNTI4NywgMC4zNzM3MzMsIDAuOTAyMDY1LCAxLjc4NTI2LCAyLjY2OTYzLCA0LjcyMzc1LCA1Ljg5MzUxIiwgXAotICAgICAgICAgICIwLjMxNTIyNiwgMC4zNzM3NiwgMC45MDIyMzEsIDEuNzg1NDMsIDIuNjcwMDEsIDQuNzIzNzQsIDUuODkzMzgiLCBcCi0gICAgICAgICAgIjAuMzE1MjU4LCAwLjM3Mzc2NSwgMC45MDIwMzcsIDEuNzg1ODMsIDIuNjcwMTEsIDQuNzIzNywgNS44OTM0MyIsIFwKLSAgICAgICAgICAiMC4zMTUyMTEsIDAuMzczNzIzLCAwLjkwMTg5NSwgMS43ODU3MSwgMi42Njk0LCA0LjcyMzcsIDUuODkzNDQiLCBcCi0gICAgICAgICAgIjAuMzE1Mjg1LCAwLjM3MzY2NCwgMC45MDIyNzksIDEuNzg1MTQsIDIuNjY5OTksIDQuNzIzNjUsIDUuODkzMiIsIFwKLSAgICAgICAgICAiMC4zMTUyNCwgMC4zNzM3NjYsIDAuOTAyMjcyLCAxLjc4NTQzLCAyLjY2OTg0LCA0LjcyMzQ4LCA1Ljg5MzM3IiwgXAotICAgICAgICAgICIwLjMxNTIyNSwgMC4zNzM3NywgMC45MDIyNCwgMS43ODUzOCwgMi42Njk4NiwgNC43MjM4MSwgNS44OTMyNiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTMSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjIyNzc2LCAwLjI0ODEzNiwgMC40NzU4MjUsIDAuODU0NzYyLCAxLjIzMzU4LCAyLjExNzI0LCAyLjYyMjE5IiwgXAotICAgICAgICAgICIwLjIzMzIzOCwgMC4yNTg1OTQsIDAuNDg2Mjk0LCAwLjg2NTIxNiwgMS4yNDQwMiwgMi4xMjc2OSwgMi42MzI1OSIsIFwKLSAgICAgICAgICAiMC4yNDY2NDQsIDAuMjcyMDA5LCAwLjQ5OTcsIDAuODc4NjI5LCAxLjI1NzQ0LCAyLjE0MTExLCAyLjY0NjAxIiwgXAotICAgICAgICAgICIwLjI2MDIwMywgMC4yODU1NjksIDAuNTEzMjcxLCAwLjg5MjI0NiwgMS4yNzA5OCwgMi4xNTQ2OCwgMi42NTk1OCIsIFwKLSAgICAgICAgICAiMC4yNzM4OTgsIDAuMjk5MjQ0LCAwLjUyNjk5OSwgMC45MDU5MTIsIDEuMjg0NywgMi4xNjgzOCwgMi42NzMzIiwgXAotICAgICAgICAgICIwLjI5NTk1NCwgMC4zMjEzMDQsIDAuNTQ5MDY0LCAwLjkyNzk4NCwgMS4zMDY4LCAyLjE5MDQ3LCAyLjY5NTM4IiwgXAotICAgICAgICAgICIwLjMxNTAyMywgMC4zNDAzOTksIDAuNTY4MTM4LCAwLjk0NzA0NSwgMS4zMjU4NCwgMi4yMDk3MywgMi43MTQ0NCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yNzU3OTEsIDAuMzI2NDMsIDAuNzg2MTg3LCAxLjU1MTM4LCAyLjMxOTE0LCA0LjExNDMsIDUuMTQwNDUiLCBcCi0gICAgICAgICAgIjAuMjc1Nzc2LCAwLjMyNjM3OSwgMC43ODYxMTUsIDEuNTUyODcsIDIuMzIxMTgsIDQuMTEzNTksIDUuMTQwMTQiLCBcCi0gICAgICAgICAgIjAuMjc1ODA1LCAwLjMyNjM5NSwgMC43ODYxMjUsIDEuNTU1MjMsIDIuMzIxMzMsIDQuMTE0MDgsIDUuMTM2OCIsIFwKLSAgICAgICAgICAiMC4yNzU4MDUsIDAuMzI2MzYzLCAwLjc4NjExMiwgMS41NTUyMSwgMi4zMjEwMSwgNC4xMTk5LCA1LjEzNzA5IiwgXAotICAgICAgICAgICIwLjI3NTgwMSwgMC4zMjU4NTQsIDAuNzg2MDQ0LCAxLjU1MjgzLCAyLjMyNDA2LCA0LjExODYyLCA1LjEzNzE2IiwgXAotICAgICAgICAgICIwLjI3NTg0LCAwLjMyNjMzNSwgMC43ODYwNTIsIDEuNTUyNjksIDIuMzIxMDgsIDQuMTEzNDYsIDUuMTM3MDgiLCBcCi0gICAgICAgICAgIjAuMjc1OTksIDAuMzI2NTIyLCAwLjc4NjA5NSwgMS41NTI1MSwgMi4zMjA3NywgNC4xMjAzNywgNS4xMzY1NiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMzc4MTMsIDAuMjY3NTk2LCAwLjUzNTI1NSwgMC45ODA4NjgsIDEuNDI2MzcsIDIuNDY1NzQsIDMuMDU5NjUiLCBcCi0gICAgICAgICAgIjAuMjQ4MDY0LCAwLjI3Nzg1NCwgMC41NDU1MDYsIDAuOTkxMTE3LCAxLjQzNjYxLCAyLjQ3NTk5LCAzLjA2OTkiLCBcCi0gICAgICAgICAgIjAuMjYxMTY3LCAwLjI5MDk3MSwgMC41NTg2MzEsIDEuMDA0MjQsIDEuNDQ5NzUsIDIuNDg5MTEsIDMuMDgzMDIiLCBcCi0gICAgICAgICAgIjAuMjc0MzE2LCAwLjMwNDEwNywgMC41NzE3OTIsIDEuMDE3NDEsIDEuNDYzMDMsIDIuNTAyMjksIDMuMDk2MiIsIFwKLSAgICAgICAgICAiMC4yODc0OTgsIDAuMzE3MzE2LCAwLjU4NTAwMiwgMS4wMzA2MywgMS40NzYxNSwgMi41MTU1MywgMy4xMDk1NSIsIFwKLSAgICAgICAgICAiMC4zMDgwMTMsIDAuMzM3ODM4LCAwLjYwNTU0MywgMS4wNTExNywgMS40OTY2OSwgMi41MzYwNywgMy4xMjk5NyIsIFwKLSAgICAgICAgICAiMC4zMjU0MzQsIDAuMzU1MjU0LCAwLjYyMjk3MSwgMS4wNjg2LCAxLjUxNDEzLCAyLjU1MzUxLCAzLjE0NzQ3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMxNTE2NiwgMC4zNzM1NjgsIDAuOTAxNDQ2LCAxLjc4NTAzLCAyLjY2NTYsIDQuNzIzMzcsIDUuODkyNDQiLCBcCi0gICAgICAgICAgIjAuMzE1MTc2LCAwLjM3MzU5NSwgMC45MDE0MywgMS43ODQ1MywgMi42NjU1MSwgNC43MjMzNSwgNS44OTI1MiIsIFwKLSAgICAgICAgICAiMC4zMTUxODEsIDAuMzczNjI4LCAwLjkwMTM1NywgMS43ODM4NSwgMi42Njg4OCwgNC43MjMxOSwgNS44OTI0OSIsIFwKLSAgICAgICAgICAiMC4zMTUxODUsIDAuMzczMDAxLCAwLjkwMTY1NSwgMS43ODI5OSwgMi42Njc0OCwgNC43MjI1NCwgNS44OTIzOCIsIFwKLSAgICAgICAgICAiMC4zMTUyMDUsIDAuMzczNjUsIDAuOTAxNDMxLCAxLjc4MjkzLCAyLjY2NTk4LCA0LjcyMzQ5LCA1Ljg5MjkzIiwgXAotICAgICAgICAgICIwLjMxNTI0MiwgMC4zNzM2OTQsIDAuOTAxMjQxLCAxLjc4MzQ0LCAyLjY2NDk4LCA0LjcyMjYyLCA1Ljg5MjI5IiwgXAotICAgICAgICAgICIwLjMxNTA4MiwgMC4zNzM4MywgMC45MDEyOTMsIDEuNzgzMTQsIDIuNjY2MjcsIDQuNzIyODEsIDUuODkyODYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUzEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI1Mzg4MywgMC4yNzkyNzksIDAuNTA3MDc0LCAwLjg4NjA1OCwgMS4yNjQ5MiwgMi4xNDg2MiwgMi42NTM2MiIsIFwKLSAgICAgICAgICAiMC4yNjU5OTYsIDAuMjkxMzU4LCAwLjUxOTE0MiwgMC44OTgxNjEsIDEuMjc3MDYsIDIuMTYwNywgMi42NjU2NCIsIFwKLSAgICAgICAgICAiMC4yODA1OSwgMC4zMDU5ODUsIDAuNTMzNzgzLCAwLjkxMjc2NCwgMS4yOTE2MywgMi4xNzUzMiwgMi42ODAzOSIsIFwKLSAgICAgICAgICAiMC4yOTQ0MjcsIDAuMzE5ODE0LCAwLjU0NzYxLCAwLjkyNjYwNywgMS4zMDU0NSwgMi4xODkxNSwgMi42OTQwOCIsIFwKLSAgICAgICAgICAiMC4zMDY1NjcsIDAuMzMxOTU0LCAwLjU1OTc0OSwgMC45Mzg3NTEsIDEuMzE3NTksIDIuMjAxMjksIDIuNzA2MjUiLCBcCi0gICAgICAgICAgIjAuMzIzNzE4LCAwLjM0OTExMywgMC41NzY5NTMsIDAuOTU1ODk2LCAxLjMzNDcyLCAyLjIxODYxLCAyLjcyMzM2IiwgXAotICAgICAgICAgICIwLjMzNjc0OSwgMC4zNjIxMTgsIDAuNTg5OTQ5LCAwLjk2ODkyNSwgMS4zNDc3NywgMi4yMzE0OCwgMi43MzY0NiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yNzYwMTYsIDAuMzI2NjAzLCAwLjc4NjMxMiwgMS41NTI5OCwgMi4zMjE5NiwgNC4xMTQyMSwgNS4xMzcxMyIsIFwKLSAgICAgICAgICAiMC4yNzYwMTEsIDAuMzI2MTYsIDAuNzg2MTM4LCAxLjU1MzA2LCAyLjMyNDg5LCA0LjExOTc3LCA1LjEzNzciLCBcCi0gICAgICAgICAgIjAuMjc2MDEzLCAwLjMyNjU5OSwgMC43ODYzMiwgMS41NTMwNCwgMi4zMjE2NCwgNC4xMTQwOCwgNS4xMzYxIiwgXAotICAgICAgICAgICIwLjI3NjAxLCAwLjMyNjYsIDAuNzg2Mjk4LCAxLjU1NTM4LCAyLjMyMTQyLCA0LjExNDEyLCA1LjE0MDMyIiwgXAotICAgICAgICAgICIwLjI3NjAxMSwgMC4zMjY2MDEsIDAuNzg2Mjk2LCAxLjU1NTQxLCAyLjMyMTMyLCA0LjExNDEsIDUuMTM5OTkiLCBcCi0gICAgICAgICAgIjAuMjc1OTk0LCAwLjMyNjU0NywgMC43ODQzNzgsIDEuNTU1MzEsIDIuMzIxNCwgNC4xMjAzLCA1LjEzNjMzIiwgXAotICAgICAgICAgICIwLjI3NjA1NSwgMC4zMjY1NjQsIDAuNzg2MjY3LCAxLjU1MzExLCAyLjMyMTI3LCA0LjExMzUsIDUuMTM5OTYiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjY5NTUsIDAuMjk5MzUyLCAwLjU2NzA1MiwgMS4wMTI2MywgMS40NTgxMiwgMi40OTc0NywgMy4wOTE0MSIsIFwKLSAgICAgICAgICAiMC4yODE3NzQsIDAuMzExNTYyLCAwLjU3OTE5OCwgMS4wMjQ4NCwgMS40NzAzMiwgMi41MDk3MSwgMy4xMDM1OCIsIFwKLSAgICAgICAgICAiMC4yOTY5NDEsIDAuMzI2NzMsIDAuNTk0MzkzLCAxLjAzOTk4LCAxLjQ4NTQ4LCAyLjUyNDg0LCAzLjExODc0IiwgXAotICAgICAgICAgICIwLjMxMTg0OCwgMC4zNDE2MzMsIDAuNjA5MjcsIDEuMDU0ODksIDEuNTAwMzgsIDIuNTM5NzksIDMuMTMzNjQiLCBcCi0gICAgICAgICAgIjAuMzI1ODA5LCAwLjM1NTYxNiwgMC42MjMyNTUsIDEuMDY4ODcsIDEuNTE0MzcsIDIuNTUzNzMsIDMuMTQ3NjEiLCBcCi0gICAgICAgICAgIjAuMzQ1OTA0LCAwLjM3NTcwNiwgMC42NDMzNDMsIDEuMDg4OTksIDEuNTM0NDYsIDIuNTczODEsIDMuMTY3ODciLCBcCi0gICAgICAgICAgIjAuMzYxODc3LCAwLjM5MTY4NCwgMC42NTkzMjYsIDEuMTA0OTMsIDEuNTUwNDUsIDIuNTg5OCwgMy4xODM4MSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMTUwNjUsIDAuMzczNTM0LCAwLjg5OTg5MSwgMS43ODAzOCwgMi42NjU4MSwgNC43MjM1NiwgNS44OTE5OCIsIFwKLSAgICAgICAgICAiMC4zMTUwMDcsIDAuMzczNTI5LCAwLjkwMTc5OCwgMS43ODUyMywgMi42NjU4OSwgNC43MjI1MSwgNS44OTI0MyIsIFwKLSAgICAgICAgICAiMC4zMTQ5ODYsIDAuMzczNTE1LCAwLjkwMTQxLCAxLjc4MzA1LCAyLjY2NTUyLCA0LjcyMjg2LCA1Ljg5MjQyIiwgXAotICAgICAgICAgICIwLjMxNDkzMSwgMC4zNzM0OTksIDAuOTAxNzIyLCAxLjc4MTk5LCAyLjY2NTU2LCA0LjcyMjI2LCA1Ljg5MjMiLCBcCi0gICAgICAgICAgIjAuMzE0OTU4LCAwLjM3MzQ2OCwgMC45MDEzNDYsIDEuNzg1MjgsIDIuNjY3NTQsIDQuNzIzNTEsIDUuODkyMTkiLCBcCi0gICAgICAgICAgIjAuMzE0OTg4LCAwLjM3MzQ2OCwgMC45MDE2MiwgMS43ODQ3LCAyLjY2NzE3LCA0LjcyMjcyLCA1Ljg5MjE4IiwgXAotICAgICAgICAgICIwLjMxNTAyOSwgMC4zNzM0OTMsIDAuOTAxMzQ5LCAxLjc4MjkyLCAyLjY2ODgsIDQuNzIyOTUsIDUuODkxNzciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDMyNDQsIDAuMDAzMjQ1LCAwLjAwMzI0OCwgMC4wMDMyNDksIDAuMDAzMjUsIDAuMDAzMjUxLCAwLjAwMzI1IiwgXAotICAgICAgICAgICIwLjAwMzIzOSwgMC4wMDMyNCwgMC4wMDMyNDMsIDAuMDAzMjQzLCAwLjAwMzI0NCwgMC4wMDMyNDUsIDAuMDAzMjQ0IiwgXAotICAgICAgICAgICIwLjAwMzIzNiwgMC4wMDMyMzYsIDAuMDAzMjM5LCAwLjAwMzI0LCAwLjAwMzI0MSwgMC4wMDMyNDIsIDAuMDAzMjQyIiwgXAotICAgICAgICAgICIwLjAwMzIzMiwgMC4wMDMyMzMsIDAuMDAzMjM2LCAwLjAwMzIzOCwgMC4wMDMyMzgsIDAuMDAzMjM4LCAwLjAwMzIzOCIsIFwKLSAgICAgICAgICAiMC4wMDMyMywgMC4wMDMyMzEsIDAuMDAzMjM0LCAwLjAwMzIzNSwgMC4wMDMyMzYsIDAuMDAzMjM2LCAwLjAwMzIzNiIsIFwKLSAgICAgICAgICAiMC4wMDMyMjcsIDAuMDAzMjI4LCAwLjAwMzIzMSwgMC4wMDMyMzIsIDAuMDAzMjMzLCAwLjAwMzIzMywgMC4wMDMyMzMiLCBcCi0gICAgICAgICAgIjAuMDAzMjI1LCAwLjAwMzIyNiwgMC4wMDMyMjgsIDAuMDAzMjMsIDAuMDAzMjMsIDAuMDAzMjMxLCAwLjAwMzIzMSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjQ3OSwgMC4wMDI0OCwgMC4wMDI0ODQsIDAuMDAyNDg1LCAwLjAwMjQ4NiwgMC4wMDI0ODYsIDAuMDAyNDg2IiwgXAotICAgICAgICAgICIwLjAwMjQ2OCwgMC4wMDI0NjksIDAuMDAyNDczLCAwLjAwMjQ3NCwgMC4wMDI0NzUsIDAuMDAyNDc1LCAwLjAwMjQ3NSIsIFwKLSAgICAgICAgICAiMC4wMDI0NjIsIDAuMDAyNDYzLCAwLjAwMjQ2NiwgMC4wMDI0NjgsIDAuMDAyNDY4LCAwLjAwMjQ2OSwgMC4wMDI0NjkiLCBcCi0gICAgICAgICAgIjAuMDAyNDU4LCAwLjAwMjQ1OSwgMC4wMDI0NjMsIDAuMDAyNDY0LCAwLjAwMjQ2NSwgMC4wMDI0NjUsIDAuMDAyNDY1IiwgXAotICAgICAgICAgICIwLjAwMjQ1NCwgMC4wMDI0NTUsIDAuMDAyNDU5LCAwLjAwMjQ2LCAwLjAwMjQ2MSwgMC4wMDI0NjEsIDAuMDAyNDYxIiwgXAotICAgICAgICAgICIwLjAwMjQ1LCAwLjAwMjQ1MSwgMC4wMDI0NTUsIDAuMDAyNDU2LCAwLjAwMjQ1NywgMC4wMDI0NTcsIDAuMDAyNDU3IiwgXAotICAgICAgICAgICIwLjAwMjQ0NywgMC4wMDI0NDgsIDAuMDAyNDUyLCAwLjAwMjQ1MywgMC4wMDI0NTQsIDAuMDAyNDU0LCAwLjAwMjQ1NCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzM2MSwgMC4wMDMzNjEsIDAuMDAzMzY0LCAwLjAwMzM2NSwgMC4wMDMzNjYsIDAuMDAzMzY3LCAwLjAwMzM2NiIsIFwKLSAgICAgICAgICAiMC4wMDMzNTUsIDAuMDAzMzU1LCAwLjAwMzM1OSwgMC4wMDMzNiwgMC4wMDMzNiwgMC4wMDMzNjEsIDAuMDAzMzYiLCBcCi0gICAgICAgICAgIjAuMDAzMzUxLCAwLjAwMzM1MiwgMC4wMDMzNTUsIDAuMDAzMzU2LCAwLjAwMzM1NiwgMC4wMDMzNTcsIDAuMDAzMzU3IiwgXAotICAgICAgICAgICIwLjAwMzM0OSwgMC4wMDMzNDksIDAuMDAzMzUzLCAwLjAwMzM1NCwgMC4wMDMzNTQsIDAuMDAzMzU1LCAwLjAwMzM1NCIsIFwKLSAgICAgICAgICAiMC4wMDMzNDcsIDAuMDAzMzQ4LCAwLjAwMzM1LCAwLjAwMzM1MSwgMC4wMDMzNTIsIDAuMDAzMzUyLCAwLjAwMzM1MyIsIFwKLSAgICAgICAgICAiMC4wMDMzNDQsIDAuMDAzMzQ1LCAwLjAwMzM0NywgMC4wMDMzNDksIDAuMDAzMzQ5LCAwLjAwMzM0OSwgMC4wMDMzNSIsIFwKLSAgICAgICAgICAiMC4wMDMzNDEsIDAuMDAzMzQyLCAwLjAwMzM0NSwgMC4wMDMzNDYsIDAuMDAzMzQ2LCAwLjAwMzM0NywgMC4wMDMzNDciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI0MzMsIDAuMDAyNDM0LCAwLjAwMjQzOCwgMC4wMDI0MzksIDAuMDAyNDQsIDAuMDAyNDQsIDAuMDAyNDQiLCBcCi0gICAgICAgICAgIjAuMDAyNDIyLCAwLjAwMjQyMywgMC4wMDI0MjcsIDAuMDAyNDI4LCAwLjAwMjQyOSwgMC4wMDI0MjksIDAuMDAyNDI5IiwgXAotICAgICAgICAgICIwLjAwMjQxNSwgMC4wMDI0MTYsIDAuMDAyNDIsIDAuMDAyNDIxLCAwLjAwMjQyMiwgMC4wMDI0MjIsIDAuMDAyNDIyIiwgXAotICAgICAgICAgICIwLjAwMjQxMSwgMC4wMDI0MTIsIDAuMDAyNDE2LCAwLjAwMjQxNywgMC4wMDI0MTgsIDAuMDAyNDE4LCAwLjAwMjQxOCIsIFwKLSAgICAgICAgICAiMC4wMDI0MDcsIDAuMDAyNDA5LCAwLjAwMjQxMiwgMC4wMDI0MTQsIDAuMDAyNDE0LCAwLjAwMjQxNSwgMC4wMDI0MTUiLCBcCi0gICAgICAgICAgIjAuMDAyNDA0LCAwLjAwMjQwNSwgMC4wMDI0MDksIDAuMDAyNDEsIDAuMDAyNDExLCAwLjAwMjQxMSwgMC4wMDI0MTEiLCBcCi0gICAgICAgICAgIjAuMDAyNDAxLCAwLjAwMjQwMiwgMC4wMDI0MDYsIDAuMDAyNDA3LCAwLjAwMjQwNywgMC4wMDI0MDgsIDAuMDAyNDA4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyOTY2LCAwLjAwMjk2NywgMC4wMDI5NywgMC4wMDI5NzEsIDAuMDAyOTcxLCAwLjAwMjk3MiwgMC4wMDI5NzIiLCBcCi0gICAgICAgICAgIjAuMDAyOTYxLCAwLjAwMjk2MSwgMC4wMDI5NjQsIDAuMDAyOTY2LCAwLjAwMjk2NiwgMC4wMDI5NjYsIDAuMDAyOTY2IiwgXAotICAgICAgICAgICIwLjAwMjk1NywgMC4wMDI5NTgsIDAuMDAyOTYxLCAwLjAwMjk2MiwgMC4wMDI5NjMsIDAuMDAyOTYzLCAwLjAwMjk2MyIsIFwKLSAgICAgICAgICAiMC4wMDI5NTQsIDAuMDAyOTU1LCAwLjAwMjk1OCwgMC4wMDI5NTksIDAuMDAyOTYsIDAuMDAyOTYsIDAuMDAyOTYiLCBcCi0gICAgICAgICAgIjAuMDAyOTUyLCAwLjAwMjk1MywgMC4wMDI5NTUsIDAuMDAyOTU3LCAwLjAwMjk1NywgMC4wMDI5NTcsIDAuMDAyOTU3IiwgXAotICAgICAgICAgICIwLjAwMjk0OSwgMC4wMDI5NSwgMC4wMDI5NTMsIDAuMDAyOTU0LCAwLjAwMjk1NCwgMC4wMDI5NTQsIDAuMDAyOTU0IiwgXAotICAgICAgICAgICIwLjAwMjk0NywgMC4wMDI5NDcsIDAuMDAyOTUsIDAuMDAyOTUyLCAwLjAwMjk1MiwgMC4wMDI5NTIsIDAuMDAyOTUyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyNjEsIDAuMDAyNjExLCAwLjAwMjYxNSwgMC4wMDI2MTYsIDAuMDAyNjE3LCAwLjAwMjYxNywgMC4wMDI2MTciLCBcCi0gICAgICAgICAgIjAuMDAyNTk5LCAwLjAwMjYsIDAuMDAyNjA0LCAwLjAwMjYwNSwgMC4wMDI2MDUsIDAuMDAyNjA2LCAwLjAwMjYwNiIsIFwKLSAgICAgICAgICAiMC4wMDI1OTIsIDAuMDAyNTkzLCAwLjAwMjU5NywgMC4wMDI1OTgsIDAuMDAyNTk4LCAwLjAwMjU5OSwgMC4wMDI1OTkiLCBcCi0gICAgICAgICAgIjAuMDAyNTg4LCAwLjAwMjU4OSwgMC4wMDI1OTIsIDAuMDAyNTk0LCAwLjAwMjU5NCwgMC4wMDI1OTQsIDAuMDAyNTk0IiwgXAotICAgICAgICAgICIwLjAwMjU4NCwgMC4wMDI1ODUsIDAuMDAyNTg5LCAwLjAwMjU5LCAwLjAwMjU5MSwgMC4wMDI1OTEsIDAuMDAyNTkxIiwgXAotICAgICAgICAgICIwLjAwMjU4LCAwLjAwMjU4MSwgMC4wMDI1ODUsIDAuMDAyNTg2LCAwLjAwMjU4NywgMC4wMDI1ODcsIDAuMDAyNTg3IiwgXAotICAgICAgICAgICIwLjAwMjU3NywgMC4wMDI1NzgsIDAuMDAyNTgyLCAwLjAwMjU4MywgMC4wMDI1ODQsIDAuMDAyNTg0LCAwLjAwMjU4NCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkQiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzE0LCAwLjAwMzE0MSwgMC4wMDMxNDQsIDAuMDAzMTQ1LCAwLjAwMzE0NSwgMC4wMDMxNDYsIDAuMDAzMTQ2IiwgXAotICAgICAgICAgICIwLjAwMzEzNCwgMC4wMDMxMzUsIDAuMDAzMTM4LCAwLjAwMzEzOSwgMC4wMDMxMzksIDAuMDAzMTQsIDAuMDAzMTQiLCBcCi0gICAgICAgICAgIjAuMDAzMTMxLCAwLjAwMzEzMSwgMC4wMDMxMzQsIDAuMDAzMTM2LCAwLjAwMzEzNiwgMC4wMDMxMzYsIDAuMDAzMTM2IiwgXAotICAgICAgICAgICIwLjAwMzEyOCwgMC4wMDMxMjksIDAuMDAzMTMyLCAwLjAwMzEzMywgMC4wMDMxMzQsIDAuMDAzMTM0LCAwLjAwMzEzNCIsIFwKLSAgICAgICAgICAiMC4wMDMxMjYsIDAuMDAzMTI3LCAwLjAwMzEyOSwgMC4wMDMxMzEsIDAuMDAzMTMxLCAwLjAwMzEzMSwgMC4wMDMxMzEiLCBcCi0gICAgICAgICAgIjAuMDAzMTIyLCAwLjAwMzEyMywgMC4wMDMxMjYsIDAuMDAzMTI4LCAwLjAwMzEyOCwgMC4wMDMxMjgsIDAuMDAzMTI4IiwgXAotICAgICAgICAgICIwLjAwMzEyLCAwLjAwMzEyMSwgMC4wMDMxMjQsIDAuMDAzMTI1LCAwLjAwMzEyNiwgMC4wMDMxMjYsIDAuMDAzMTI2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyNDk0LCAwLjAwMjQ5NSwgMC4wMDI0OTgsIDAuMDAyNSwgMC4wMDI1MDEsIDAuMDAyNTAxLCAwLjAwMjUwMSIsIFwKLSAgICAgICAgICAiMC4wMDI0ODMsIDAuMDAyNDg0LCAwLjAwMjQ4OCwgMC4wMDI0ODksIDAuMDAyNDg5LCAwLjAwMjQ5LCAwLjAwMjQ5IiwgXAotICAgICAgICAgICIwLjAwMjQ3NiwgMC4wMDI0NzcsIDAuMDAyNDgxLCAwLjAwMjQ4MiwgMC4wMDI0ODMsIDAuMDAyNDgzLCAwLjAwMjQ4MyIsIFwKLSAgICAgICAgICAiMC4wMDI0NzEsIDAuMDAyNDczLCAwLjAwMjQ3NiwgMC4wMDI0NzgsIDAuMDAyNDc4LCAwLjAwMjQ3OCwgMC4wMDI0NzgiLCBcCi0gICAgICAgICAgIjAuMDAyNDY4LCAwLjAwMjQ3LCAwLjAwMjQ3MywgMC4wMDI0NzUsIDAuMDAyNDc1LCAwLjAwMjQ3NSwgMC4wMDI0NzYiLCBcCi0gICAgICAgICAgIjAuMDAyNDY0LCAwLjAwMjQ2NSwgMC4wMDI0NjksIDAuMDAyNDcsIDAuMDAyNDcxLCAwLjAwMjQ3MSwgMC4wMDI0NzEiLCBcCi0gICAgICAgICAgIjAuMDAyNDYxLCAwLjAwMjQ2MywgMC4wMDI0NjYsIDAuMDAyNDY3LCAwLjAwMjQ2OCwgMC4wMDI0NjgsIDAuMDAyNDY4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUzAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDg0NiwgMC4wMDQ4NDYsIDAuMDA0ODQ5LCAwLjAwNDg1LCAwLjAwNDg1MSwgMC4wMDQ4NSwgMC4wMDQ4NTEiLCBcCi0gICAgICAgICAgIjAuMDA0ODQ4LCAwLjAwNDg0OSwgMC4wMDQ4NTEsIDAuMDA0ODUzLCAwLjAwNDg1MywgMC4wMDQ4NTMsIDAuMDA0ODU0IiwgXAotICAgICAgICAgICIwLjAwNDg0MSwgMC4wMDQ4NDIsIDAuMDA0ODQ1LCAwLjAwNDg0NiwgMC4wMDQ4NDYsIDAuMDA0ODQ3LCAwLjAwNDg0NyIsIFwKLSAgICAgICAgICAiMC4wMDQ4MzMsIDAuMDA0ODM0LCAwLjAwNDgzNiwgMC4wMDQ4MzgsIDAuMDA0ODM4LCAwLjAwNDgzOCwgMC4wMDQ4MzgiLCBcCi0gICAgICAgICAgIjAuMDA0ODI1LCAwLjAwNDgyNiwgMC4wMDQ4MjksIDAuMDA0ODI5LCAwLjAwNDgzLCAwLjAwNDgzLCAwLjAwNDgzMSIsIFwKLSAgICAgICAgICAiMC4wMDQ4MTMsIDAuMDA0ODE0LCAwLjAwNDgxNywgMC4wMDQ4MTgsIDAuMDA0ODE4LCAwLjAwNDgxOSwgMC4wMDQ4MTgiLCBcCi0gICAgICAgICAgIjAuMDA0ODA5LCAwLjAwNDgxLCAwLjAwNDgxMywgMC4wMDQ4MTQsIDAuMDA0ODE0LCAwLjAwNDgxNSwgMC4wMDQ4MTQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDY2MjQsIDAuMDA2NjI1LCAwLjAwNjYyOCwgMC4wMDY2MywgMC4wMDY2MzEsIDAuMDA2NjMxLCAwLjAwNjYzMSIsIFwKLSAgICAgICAgICAiMC4wMDY2MTYsIDAuMDA2NjE3LCAwLjAwNjYyMSwgMC4wMDY2MjIsIDAuMDA2NjIzLCAwLjAwNjYyMywgMC4wMDY2MjMiLCBcCi0gICAgICAgICAgIjAuMDA2NjAzLCAwLjAwNjYwNSwgMC4wMDY2MDgsIDAuMDA2NjEsIDAuMDA2NjEsIDAuMDA2NjExLCAwLjAwNjYxMSIsIFwKLSAgICAgICAgICAiMC4wMDY1OTMsIDAuMDA2NTk1LCAwLjAwNjU5OCwgMC4wMDY2LCAwLjAwNjYsIDAuMDA2NiwgMC4wMDY2MDEiLCBcCi0gICAgICAgICAgIjAuMDA2NTg1LCAwLjAwNjU4NywgMC4wMDY1OTEsIDAuMDA2NTkyLCAwLjAwNjU5MiwgMC4wMDY1OTMsIDAuMDA2NTkyIiwgXAotICAgICAgICAgICIwLjAwNjU3OSwgMC4wMDY1OCwgMC4wMDY1ODMsIDAuMDA2NTg1LCAwLjAwNjU4NSwgMC4wMDY1ODYsIDAuMDA2NTg2IiwgXAotICAgICAgICAgICIwLjAwNjU3MiwgMC4wMDY1NzQsIDAuMDA2NTc3LCAwLjAwNjU3OSwgMC4wMDY1NzksIDAuMDA2NTc5LCAwLjAwNjU3OSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlMxIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI0NDcsIDAuMDAyNDQ4LCAwLjAwMjQ1MiwgMC4wMDI0NTMsIDAuMDAyNDUzLCAwLjAwMjQ1NCwgMC4wMDI0NTQiLCBcCi0gICAgICAgICAgIjAuMDAyNDQ0LCAwLjAwMjQ0NSwgMC4wMDI0NDgsIDAuMDAyNDUsIDAuMDAyNDUyLCAwLjAwMjQ1MiwgMC4wMDI0NTIiLCBcCi0gICAgICAgICAgIjAuMDAyNDQsIDAuMDAyNDQxLCAwLjAwMjQ0NCwgMC4wMDI0NDUsIDAuMDAyNDQ2LCAwLjAwMjQ0NiwgMC4wMDI0NDYiLCBcCi0gICAgICAgICAgIjAuMDAyNDM1LCAwLjAwMjQzNiwgMC4wMDI0MzksIDAuMDAyNDQxLCAwLjAwMjQ0MiwgMC4wMDI0NDIsIDAuMDAyNDQyIiwgXAotICAgICAgICAgICIwLjAwMjQzMiwgMC4wMDI0MzMsIDAuMDAyNDM2LCAwLjAwMjQzOCwgMC4wMDI0MzgsIDAuMDAyNDM4LCAwLjAwMjQzOSIsIFwKLSAgICAgICAgICAiMC4wMDI0MjksIDAuMDAyNDMsIDAuMDAyNDMzLCAwLjAwMjQzNCwgMC4wMDI0MzUsIDAuMDAyNDM1LCAwLjAwMjQzNSIsIFwKLSAgICAgICAgICAiMC4wMDI0MjcsIDAuMDAyNDI4LCAwLjAwMjQzMSwgMC4wMDI0MzMsIDAuMDAyNDMzLCAwLjAwMjQzNCwgMC4wMDI0MzQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDE4MzIsIDAuMDAxODMzLCAwLjAwMTgzNywgMC4wMDE4MzksIDAuMDAxODM5LCAwLjAwMTg0LCAwLjAwMTg0IiwgXAotICAgICAgICAgICIwLjAwMTgyMiwgMC4wMDE4MjMsIDAuMDAxODI4LCAwLjAwMTgyOSwgMC4wMDE4MywgMC4wMDE4MywgMC4wMDE4MyIsIFwKLSAgICAgICAgICAiMC4wMDE4MTQsIDAuMDAxODE1LCAwLjAwMTgxOSwgMC4wMDE4MjEsIDAuMDAxODIxLCAwLjAwMTgyMiwgMC4wMDE4MjIiLCBcCi0gICAgICAgICAgIjAuMDAxODA4LCAwLjAwMTgwOSwgMC4wMDE4MTMsIDAuMDAxODE1LCAwLjAwMTgxNSwgMC4wMDE4MTYsIDAuMDAxODE2IiwgXAotICAgICAgICAgICIwLjAwMTgwNiwgMC4wMDE4MDcsIDAuMDAxODExLCAwLjAwMTgxMywgMC4wMDE4MTMsIDAuMDAxODE0LCAwLjAwMTgxNCIsIFwKLSAgICAgICAgICAiMC4wMDE4MDMsIDAuMDAxODA0LCAwLjAwMTgwOCwgMC4wMDE4MSwgMC4wMDE4MSwgMC4wMDE4MTEsIDAuMDAxODExIiwgXAotICAgICAgICAgICIwLjAwMTgwMywgMC4wMDE4MDQsIDAuMDAxODA4LCAwLjAwMTgxLCAwLjAwMTgxLCAwLjAwMTgxMSwgMC4wMDE4MTEiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogTkFORDJCWDEgKgotICogLS0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKE5BTkQyQlgxKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMDg0ODEyOTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQU4pICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYyOTczOTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2Mjk0MTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2Mjk3Mzk7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzY5LCAwLjAwMDM1MywgMC4wMDAzNDMsIDAuMDAwMzM4LCAwLjAwMDMzNSwgMC4wMDAzMzMsIDAuMDAwMzMyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxMjQ1LCAwLjAwMTIzMywgMC4wMDEyMjYsIDAuMDAxMjIzLCAwLjAwMTIyMSwgMC4wMDEyMTksIDAuMDAxMjE5Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA4NzE2MTU7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwODcwOTU7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwODcxNjE1OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDM0NywgMC4wMDAzNDgsIDAuMDAwMzQ4LCAwLjAwMDM0OCwgMC4wMDAzNDgsIDAuMDAwMzQ4LCAwLjAwMDM0OCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjA1OTgxOTE7Ci0gICAgZnVuY3Rpb24gOiAiKCEoKCFBTikgQikpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTI1Mzc2LCAwLjE2ODYzOSwgMC40MTM0MzMsIDAuNjI5NDEyLCAwLjkxNzE1OCwgMS40OTMyMiwgMS44NTI4OSIsIFwKLSAgICAgICAgICAiMC4xMzcxMTEsIDAuMTgwMzc4LCAwLjQyNTI2LCAwLjY0MTE3MiwgMC45Mjg5MjgsIDEuNTA0NTksIDEuODY0ODUiLCBcCi0gICAgICAgICAgIjAuMTUyNjcyLCAwLjE5NTk1NSwgMC40NDA3MzksIDAuNjU2NzMyLCAwLjk0NDUxOSwgMS41MjAzNiwgMS44ODAyOCIsIFwKLSAgICAgICAgICAiMC4xNjc2ODUsIDAuMjEwOTY5LCAwLjQ1NTc0NSwgMC42NzE3MzMsIDAuOTU5NzcsIDEuNTM1NDIsIDEuODk1MjQiLCBcCi0gICAgICAgICAgIjAuMTgyNjQ1LCAwLjIyNTkyNywgMC40NzA3MiwgMC42ODY3MDgsIDAuOTc0ODQ2LCAxLjU1MDE1LCAxLjkxMDI1IiwgXAotICAgICAgICAgICIwLjIwNDUsIDAuMjQ3NzcxLCAwLjQ5MjYzOSwgMC43MDg1NzEsIDAuOTk2MzI4LCAxLjU3MjI0LCAxLjkzMjAxIiwgXAotICAgICAgICAgICIwLjIyMjc5MiwgMC4yNjYwNzQsIDAuNTEwODc3LCAwLjcyNjg1LCAxLjAxNDYzLCAxLjU5MDM4LCAxLjk1MDM0Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE2NjYzMSwgMC4yNTM1NCwgMC43NTAwMzIsIDEuMTg4NTUsIDEuNzcyNTMsIDIuOTQyNjQsIDMuNjcyNiIsIFwKLSAgICAgICAgICAiMC4xNjY2MzIsIDAuMjUzNjksIDAuNzUwNTI1LCAxLjE4ODU2LCAxLjc3MjYzLCAyLjk0Mjc5LCAzLjY3Mjk2IiwgXAotICAgICAgICAgICIwLjE2NjYwMywgMC4yNTM2NzYsIDAuNzUwMTY3LCAxLjE4ODU2LCAxLjc3MjY0LCAyLjk0MjkxLCAzLjY3Mjk3IiwgXAotICAgICAgICAgICIwLjE2NjU2OCwgMC4yNTM2OTIsIDAuNzUwMTYyLCAxLjE4OTA2LCAxLjc3MzE4LCAyLjk0MjIsIDMuNjczMTIiLCBcCi0gICAgICAgICAgIjAuMTY2NjY5LCAwLjI1Mzc4MywgMC43NTAxNjMsIDEuMTg5MDUsIDEuNzczMTgsIDIuOTQxODQsIDMuNjczMTMiLCBcCi0gICAgICAgICAgIjAuMTY3MTkxLCAwLjI1Mzk4NCwgMC43NTA3MjEsIDEuMTg4NTksIDEuNzcyNjIsIDIuOTQyMzEsIDMuNjczMDUiLCBcCi0gICAgICAgICAgIjAuMTY3Njk5LCAwLjI1NDIwNCwgMC43NTA2NTIsIDEuMTg4NTgsIDEuNzcyOTMsIDIuOTQyODgsIDMuNjcyOTgiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjI0NzEyLCAwLjMyMjQ1NywgMC44NzY0NDEsIDEuMzY1NzEsIDIuMDE3MTgsIDMuMzIwMTQsIDQuMTMzNjUiLCBcCi0gICAgICAgICAgIjAuMjM2MzQ5LCAwLjMzNDEzOSwgMC44ODgwNzIsIDEuMzc2OTYsIDIuMDI4NDMsIDMuMzMxODYsIDQuMTQ1NDUiLCBcCi0gICAgICAgICAgIjAuMjUxMDE5LCAwLjM0ODkxNSwgMC45MDI4MiwgMS4zOTE2MSwgMi4wNDM1NywgMy4zNDY1NiwgNC4xNjAwMyIsIFwKLSAgICAgICAgICAiMC4yNjUzNzMsIDAuMzYzMTc4LCAwLjkxNzI1NiwgMS40MDY3MywgMi4wNTgwNSwgMy4zNjA5NCwgNC4xNzQ0OSIsIFwKLSAgICAgICAgICAiMC4yNzg2MzEsIDAuMzc2NjUxLCAwLjkzMDU4MywgMS40MTk0OSwgMi4wNzA5NSwgMy4zNzQ0MiwgNC4xODgwMSIsIFwKLSAgICAgICAgICAiMC4yOTc2MTMsIDAuMzk1NTY0LCAwLjk0OTY4MywgMS40Mzg1NywgMi4wODk5NCwgMy4zOTM1MiwgNC4yMDcxMSIsIFwKLSAgICAgICAgICAiMC4zMTI1OTQsIDAuNDEwNTI2LCAwLjk2NDg4MSwgMS40NTQwNSwgMi4xMDYyMSwgMy40MDgsIDQuMjIxODkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzQ2ODc5LCAwLjUzNDM2OCwgMS41OTgzLCAyLjUyNDM3LCAzLjc4NjE5LCA2LjI1OTA1LCA3LjgwNjIyIiwgXAotICAgICAgICAgICIwLjM0Njg4NywgMC41MzQyNDYsIDEuNTk3NjQsIDIuNTM1MTMsIDMuNzg1NjksIDYuMjU2MiwgNy44MDU5MiIsIFwKLSAgICAgICAgICAiMC4zNDU3NzIsIDAuNTMyMzM2LCAxLjU5ODExLCAyLjUzNTUzLCAzLjc4NjE2LCA2LjI1OTAyLCA3LjgwNzEiLCBcCi0gICAgICAgICAgIjAuMzQ2ODc5LCAwLjUzNDM3LCAxLjU5ODQxLCAyLjUyNzc2LCAzLjc4NjIzLCA2LjI1ODc3LCA3LjgwNDU4IiwgXAotICAgICAgICAgICIwLjM0NjMyMiwgMC41MzIyODEsIDEuNTk3NzUsIDIuNTM1MTYsIDMuNzg1NjUsIDYuMjU2MjEsIDcuODA1ODkiLCBcCi0gICAgICAgICAgIjAuMzQ2Nzk5LCAwLjUzNDY4OCwgMS41OTgzMSwgMi41MzUyMiwgMy43ODU3MiwgNi4yNTcyNCwgNy44MDQyNyIsIFwKLSAgICAgICAgICAiMC4zNDY4NywgMC41MzQ0MDYsIDEuNTkyNjEsIDIuNTI0NDEsIDMuNzczNjksIDYuMjU5NTMsIDcuODA2NTkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg0MDc0LCAwLjEyNzI1LCAwLjM3MTk3NSwgMC41ODc3MzIsIDAuODc1ODE3LCAxLjQ1MiwgMS44MTEyIiwgXAotICAgICAgICAgICIwLjA5NTY4OSwgMC4xMzg4NzcsIDAuMzgzNTcsIDAuNTk5MzU2LCAwLjg4NzM3NCwgMS40NjM2MiwgMS44MjI4MiIsIFwKLSAgICAgICAgICAiMC4xMTA0NzksIDAuMTUzMjk5LCAwLjM5NzI3MiwgMC42MTEzODksIDAuODk5NTYsIDEuNDc1NjMsIDEuODM0NzMiLCBcCi0gICAgICAgICAgIjAuMTI1MjQ2LCAwLjE2ODM5NiwgMC40MTI0MTIsIDAuNjI3Njc5LCAwLjkxMjcyNSwgMS40ODg3NCwgMS44NDc4MSIsIFwKLSAgICAgICAgICAiMC4xMzk5ODYsIDAuMTgzMTMsIDAuNDI2OTU4LCAwLjY0Mjc5LCAwLjkyNTU4OCwgMS41MDEyMywgMS44NjE4NSIsIFwKLSAgICAgICAgICAiMC4xNjQwMzgsIDAuMjA2ODU0LCAwLjQ1MDI3OSwgMC42NjYyMjQsIDAuOTQ5MzY1LCAxLjUyNDczLCAxLjg4NDExIiwgXAotICAgICAgICAgICIwLjE4NDgxNSwgMC4yMjc1NTUsIDAuNDcwOTc4LCAwLjY4NjM0NiwgMC45Njg5OCwgMS41NDUwNiwgMS45MDQyOSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNjE3MTgsIDAuMjQ5NDMsIDAuNzQ3MjAzLCAxLjE4NTk1LCAxLjc3MDA0LCAyLjk0MDk4LCAzLjY3MDg1IiwgXAotICAgICAgICAgICIwLjE2MTg4MywgMC4yNTAwNzQsIDAuNzQ4Mzg2LCAxLjE4Nzg4LCAxLjc3MDA3LCAyLjk1ODEzLCAzLjY3MSIsIFwKLSAgICAgICAgICAiMC4xNjI0ODMsIDAuMjQ5NDQ3LCAwLjc0NTk4NywgMS4xODUyMiwgMS43NzA3NiwgMi45NDAzLCAzLjY3MDcyIiwgXAotICAgICAgICAgICIwLjE2NTA3NSwgMC4yNDk5ODksIDAuNzQ4MzEzLCAxLjE4NTA5LCAxLjc3MDc5LCAyLjk0MDg1LCAzLjY3MDkxIiwgXAotICAgICAgICAgICIwLjE2OTM2LCAwLjI1MjgyLCAwLjc0NjM3OCwgMS4xODQ3LCAxLjc3NDEzLCAyLjk0NjY4LCAzLjY2OTgzIiwgXAotICAgICAgICAgICIwLjE3ODE0OCwgMC4yNTg0MTgsIDAuNzQ2NDQ4LCAxLjE4NTE0LCAxLjc3MDY4LCAyLjkzOTY2LCAzLjY3OTM2IiwgXAotICAgICAgICAgICIwLjE4Nzc3NCwgMC4yNjU2NCwgMC43NDg1NDMsIDEuMTg0OTcsIDEuNzc0MTksIDIuOTM5NzIsIDMuNjc5MjMiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTg3ODM0LCAwLjI4NTY0NywgMC44Mzk0MjgsIDEuMzI4NzEsIDEuOTgwODEsIDMuMjgyNjcsIDQuMDk2NjMiLCBcCi0gICAgICAgICAgIjAuMTk4MTY1LCAwLjI5NjA0NywgMC44NDk5NjQsIDEuMzM5NSwgMS45OTA1NSwgMy4yOTMxNSwgNC4xMDcyOSIsIFwKLSAgICAgICAgICAiMC4yMTE3NTcsIDAuMzA5NjYxLCAwLjg2NDIzLCAxLjM1MzQzLCAyLjAwNDM2LCAzLjMwNjk1LCA0LjEyMTIxIiwgXAotICAgICAgICAgICIwLjIyNDI4MiwgMC4zMjIyOTEsIDAuODc2ODY4LCAxLjM2NTE1LCAyLjAxNzQzLCAzLjMyLCA0LjEzMzgzIiwgXAotICAgICAgICAgICIwLjIzNzQwNiwgMC4zMzU1MjMsIDAuODkwMzg4LCAxLjM3OTU1LCAyLjAzMDc3LCAzLjMzMzMsIDQuMTQ3MjciLCBcCi0gICAgICAgICAgIjAuMjU4NTE5LCAwLjM1NjU5MSwgMC45MTE1OTQsIDEuNDAwMjEsIDIuMDUyNDgsIDMuMzU0MzQsIDQuMTY4MjciLCBcCi0gICAgICAgICAgIjAuMjc3MTI3LCAwLjM3NTAyNywgMC45Mjk4MDQsIDEuNDE4MjgsIDIuMDcwMTQsIDMuMzcyODQsIDQuMTg3MSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zNDY5MzMsIDAuNTM0MzEsIDEuNTk3MzcsIDIuNTI1MDMsIDMuNzY4OTYsIDYuMjU5NDgsIDcuODA3MDMiLCBcCi0gICAgICAgICAgIjAuMzQ2ODI5LCAwLjUzNDI2OCwgMS41OTI3LCAyLjUyNjUyLCAzLjc3NDMyLCA2LjI1OTMyLCA3LjgwNzEiLCBcCi0gICAgICAgICAgIjAuMzQ2OTU4LCAwLjUzNDg4NiwgMS41OTIwMSwgMi41MjgzNSwgMy43ODU5MiwgNi4yNTgzNywgNy44MDcyNiIsIFwKLSAgICAgICAgICAiMC4zNDY3OTYsIDAuNTM0MjI5LCAxLjU5MDU1LCAyLjUzNDk3LCAzLjc4NjE5LCA2LjI1ODYzLCA3LjgwNjY5IiwgXAotICAgICAgICAgICIwLjM0NzI3MiwgMC41MzIzMzYsIDEuNTkyNjUsIDIuNTI3NzgsIDMuNzc2MDYsIDYuMjU5NDgsIDcuODA2ODUiLCBcCi0gICAgICAgICAgIjAuMzUwODkzLCAwLjUzNDkxNSwgMS41OTI1NCwgMi41MjUxNSwgMy43NzI5NSwgNi4yNTkzMywgNy44MDY2IiwgXAotICAgICAgICAgICIwLjM1NjI2MywgMC41MzY1OTIsIDEuNTkwNzcsIDIuNTM1MjMsIDMuNzg2MDUsIDYuMjU5MjIsIDcuODA2ODMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxNTAxLCAwLjAwMTUwMSwgMC4wMDE1MDIsIDAuMDAxNTAyLCAwLjAwMTUsIDAuMDAxNTAxLCAwLjAwMTUwMSIsIFwKLSAgICAgICAgICAiMC4wMDE0ODQsIDAuMDAxNDg0LCAwLjAwMTQ4NSwgMC4wMDE0ODYsIDAuMDAxNDg1LCAwLjAwMTQ4MywgMC4wMDE0ODQiLCBcCi0gICAgICAgICAgIjAuMDAxNDczLCAwLjAwMTQ3NCwgMC4wMDE0NzYsIDAuMDAxNDc2LCAwLjAwMTQ3NSwgMC4wMDE0NzUsIDAuMDAxNDc1IiwgXAotICAgICAgICAgICIwLjAwMTQ2NywgMC4wMDE0NjksIDAuMDAxNDcxLCAwLjAwMTQ3MSwgMC4wMDE0NzEsIDAuMDAxNDcsIDAuMDAxNDciLCBcCi0gICAgICAgICAgIjAuMDAxNDYzLCAwLjAwMTQ2NiwgMC4wMDE0NjgsIDAuMDAxNDY5LCAwLjAwMTQ2OSwgMC4wMDE0NjksIDAuMDAxNDY5IiwgXAotICAgICAgICAgICIwLjAwMTQ2LCAwLjAwMTQ2MywgMC4wMDE0NjcsIDAuMDAxNDY3LCAwLjAwMTQ2OCwgMC4wMDE0NjgsIDAuMDAxNDY3IiwgXAotICAgICAgICAgICIwLjAwMTQ2LCAwLjAwMTQ2MywgMC4wMDE0NjcsIDAuMDAxNDY4LCAwLjAwMTQ2OSwgMC4wMDE0NjgsIDAuMDAxNDY4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxOTI2LCAwLjAwMTkyNywgMC4wMDE5MjksIDAuMDAxOTMsIDAuMDAxOTMsIDAuMDAxOTMsIDAuMDAxOTMiLCBcCi0gICAgICAgICAgIjAuMDAxOTE0LCAwLjAwMTkxNiwgMC4wMDE5MTksIDAuMDAxOTE5LCAwLjAwMTkxOSwgMC4wMDE5MTksIDAuMDAxOTE5IiwgXAotICAgICAgICAgICIwLjAwMTkwNCwgMC4wMDE5MDcsIDAuMDAxOTExLCAwLjAwMTkxMiwgMC4wMDE5MTIsIDAuMDAxOTEzLCAwLjAwMTkxMyIsIFwKLSAgICAgICAgICAiMC4wMDE4OTgsIDAuMDAxOTAyLCAwLjAwMTkwOCwgMC4wMDE5MDksIDAuMDAxOTA5LCAwLjAwMTkxLCAwLjAwMTkxIiwgXAotICAgICAgICAgICIwLjAwMTg5MiwgMC4wMDE4OTYsIDAuMDAxOTA0LCAwLjAwMTkwNSwgMC4wMDE5MDYsIDAuMDAxOTA2LCAwLjAwMTkwNyIsIFwKLSAgICAgICAgICAiMC4wMDE4ODgsIDAuMDAxODk0LCAwLjAwMTkwMiwgMC4wMDE5MDQsIDAuMDAxOTA1LCAwLjAwMTkwNiwgMC4wMDE5MDYiLCBcCi0gICAgICAgICAgIjAuMDAxODg1LCAwLjAwMTg5MiwgMC4wMDE5MDIsIDAuMDAxOTA0LCAwLjAwMTkwNSwgMC4wMDE5MDYsIDAuMDAxOTA2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxMDczLCAwLjAwMTA3NCwgMC4wMDEwNzUsIDAuMDAxMDc1LCAwLjAwMTA3NSwgMC4wMDEwNzUsIDAuMDAxMDc1IiwgXAotICAgICAgICAgICIwLjAwMTA3MywgMC4wMDEwNzUsIDAuMDAxMDc5LCAwLjAwMTA3OSwgMC4wMDEwOCwgMC4wMDEwOCwgMC4wMDEwOCIsIFwKLSAgICAgICAgICAiMC4wMDEwNjcsIDAuMDAxMDcyLCAwLjAwMTA3OCwgMC4wMDEwNzksIDAuMDAxMDgsIDAuMDAxMDgxLCAwLjAwMTA4MSIsIFwKLSAgICAgICAgICAiMC4wMDEwNjEsIDAuMDAxMDY4LCAwLjAwMTA3NywgMC4wMDEwNzksIDAuMDAxMDgsIDAuMDAxMDgxLCAwLjAwMTA4MSIsIFwKLSAgICAgICAgICAiMC4wMDEwNTYsIDAuMDAxMDY0LCAwLjAwMTA3NSwgMC4wMDEwNzgsIDAuMDAxMDgsIDAuMDAxMDgxLCAwLjAwMTA4MSIsIFwKLSAgICAgICAgICAiMC4wMDEwNSwgMC4wMDEwNTgsIDAuMDAxMDczLCAwLjAwMTA3NiwgMC4wMDEwNzgsIDAuMDAxMDgsIDAuMDAxMDgiLCBcCi0gICAgICAgICAgIjAuMDAxMDQ2LCAwLjAwMTA1NSwgMC4wMDEwNzEsIDAuMDAxMDc1LCAwLjAwMTA3NywgMC4wMDEwNzksIDAuMDAxMDgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDAzNTUsIDAuMDAwMzU2LCAwLjAwMDM1NywgMC4wMDAzNTcsIDAuMDAwMzU3LCAwLjAwMDM1NywgMC4wMDAzNTciLCBcCi0gICAgICAgICAgIjAuMDAwMzQ1LCAwLjAwMDM0OSwgMC4wMDAzNTUsIDAuMDAwMzU2LCAwLjAwMDM1NiwgMC4wMDAzNTcsIDAuMDAwMzU3IiwgXAotICAgICAgICAgICIwLjAwMDMzNSwgMC4wMDAzNDIsIDAuMDAwMzUyLCAwLjAwMDM1NCwgMC4wMDAzNTUsIDAuMDAwMzU2LCAwLjAwMDM1NiIsIFwKLSAgICAgICAgICAiMC4wMDAzMjYsIDAuMDAwMzM2LCAwLjAwMDM0OSwgMC4wMDAzNTIsIDAuMDAwMzU0LCAwLjAwMDM1NSwgMC4wMDAzNTYiLCBcCi0gICAgICAgICAgIjAuMDAwMzIsIDAuMDAwMzMsIDAuMDAwMzQ3LCAwLjAwMDM1MSwgMC4wMDAzNTMsIDAuMDAwMzU1LCAwLjAwMDM1NSIsIFwKLSAgICAgICAgICAiMC4wMDAzMTEsIDAuMDAwMzIzLCAwLjAwMDM0MywgMC4wMDAzNDgsIDAuMDAwMzUxLCAwLjAwMDM1NCwgMC4wMDAzNTQiLCBcCi0gICAgICAgICAgIjAuMDAwMzA2LCAwLjAwMDMxOCwgMC4wMDAzNCwgMC4wMDAzNDYsIDAuMDAwMzUsIDAuMDAwMzUzLCAwLjAwMDM1NCIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBOQU5EMkJYMiAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoTkFORDJCWDIpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4xNTA4NjM7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEFOKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA1NTM2NTc7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNTUzMzU1OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDU1MzY1NzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA3MDIsIDAuMDAwNjg4LCAwLjAwMDY3OCwgMC4wMDA2NzMsIDAuMDAwNjY5LCAwLjAwMDY2NiwgMC4wMDA2NjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDE2NzUsIDAuMDAxNjY2LCAwLjAwMTY2LCAwLjAwMTY1NywgMC4wMDE2NTQsIDAuMDAxNjUzLCAwLjAwMTY1MSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNTgwNzk7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNTc5NDY7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNTgwNzk7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzMxLCAwLjAwMDMzLCAwLjAwMDMzLCAwLjAwMDMzLCAwLjAwMDMzLCAwLjAwMDMzLCAwLjAwMDMzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNjk1LCAwLjAwMDY5NiwgMC4wMDA2OTUsIDAuMDAwNjk3LCAwLjAwMDY5NiwgMC4wMDA2OTYsIDAuMDAwNjk2Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMTIxODA1OwotICAgIGZ1bmN0aW9uIDogIighKCghQU4pIEIpKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQU4iOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwNzE4OSwgMC4yODc4MTQsIDAuNDMxODcsIDAuNjExNjk0LCAwLjc5MTc5MywgMC45NzE3MzIsIDEuMTUxMzUiLCBcCi0gICAgICAgICAgIjAuMTE4ODY5LCAwLjI5OTU4OCwgMC40NDM2MDcsIDAuNjIzNDI4LCAwLjgwMzQzMSwgMC45ODMzNTUsIDEuMTYzMjQiLCBcCi0gICAgICAgICAgIjAuMTM0NDEyLCAwLjMxNTA5OCwgMC40NTkxMDEsIDAuNjM4OTcyLCAwLjgxODk3NSwgMC45OTg5MDIsIDEuMTc5MjkiLCBcCi0gICAgICAgICAgIjAuMTQ5ODA5LCAwLjMzMDU4OCwgMC40NzQ2NDYsIDAuNjU0NDY5LCAwLjgzNDUzMiwgMS4wMTQ0NiwgMS4xOTQyOCIsIFwKLSAgICAgICAgICAiMC4xNjQ2NzUsIDAuMzQ1Mzc3LCAwLjQ4OTQzMSwgMC42Njk0MTMsIDAuODQ4OTc3LCAxLjAyOTI0LCAxLjIwOTA3IiwgXAotICAgICAgICAgICIwLjE4OTAxMiwgMC4zNjk2MzIsIDAuNTEzNjcxLCAwLjY5MzUzNiwgMC44NzM1NTEsIDEuMDUzNTEsIDEuMjMzNjEiLCBcCi0gICAgICAgICAgIjAuMjA4ODUyLCAwLjM4OTc0OCwgMC41MzM3NzMsIDAuNzEzNjIyLCAwLjg5MzYzNSwgMS4wNzM1OSwgMS4yNTM4OCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTg0NzgsIDAuNDU5MDUsIDAuNzUxMTQsIDEuMTE2MjIsIDEuNDgxNjgsIDEuODQ2OTUsIDIuMjEyMDQiLCBcCi0gICAgICAgICAgIjAuMDk4NDAzLCAwLjQ1ODk5NCwgMC43NTExOSwgMS4xMTYyNiwgMS40ODEzOCwgMS44NDY5NSwgMi4yMTI0OSIsIFwKLSAgICAgICAgICAiMC4wOTgzNzMsIDAuNDU5MDM4LCAwLjc1MTI4MiwgMS4xMTYzLCAxLjQ4MTM4LCAxLjg0NjkzLCAyLjIxMjI5IiwgXAotICAgICAgICAgICIwLjA5ODQwNywgMC40NTkwMzUsIDAuNzUxMDIsIDEuMTE2ODQsIDEuNDgxNywgMS44NDY5OSwgMi4yMTMwNiIsIFwKLSAgICAgICAgICAiMC4wOTg2OTUsIDAuNDU5MDI2LCAwLjc1MTEyMSwgMS4xMTY0NCwgMS40ODIxNywgMS44NDc2OCwgMi4yMTIyNCIsIFwKLSAgICAgICAgICAiMC4wOTg5MTcsIDAuNDU5MTg0LCAwLjc1MTYxOSwgMS4xMTY3OSwgMS40ODE2NCwgMS44NDY5OCwgMi4yMTI0IiwgXAotICAgICAgICAgICIwLjA5OTkyNSwgMC40NTkxNDYsIDAuNzUxMTEzLCAxLjExNjMsIDEuNDgxMzgsIDEuODQ2OTcsIDIuMjEyNjgiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTU4MDU5LCAwLjU2NTkxNiwgMC44OTIwMTMsIDEuMzAwNTcsIDEuNzA3MDQsIDIuMTE1MzcsIDIuNTIxNzQiLCBcCi0gICAgICAgICAgIjAuMTY5NDc4LCAwLjU3NzY1MiwgMC45MDM1NDcsIDEuMzEwOTYsIDEuNzE5LCAyLjEyNjI4LCAyLjUzNDU1IiwgXAotICAgICAgICAgICIwLjE4NDIxLCAwLjU5MjUxMywgMC45MTgzMjIsIDEuMzI1NzYsIDEuNzMzMzgsIDIuMTQxMzgsIDIuNTQ5MDEiLCBcCi0gICAgICAgICAgIjAuMTk4OTcxLCAwLjYwNzI4OSwgMC45MzMyMiwgMS4zNDA2NSwgMS43NDg3LCAyLjE1NTk0LCAyLjU2NDI0IiwgXAotICAgICAgICAgICIwLjIxMzUwOCwgMC42MjE2NDcsIDAuOTQ3OTk1LCAxLjM1NTMyLCAxLjc2MjUyLCAyLjE3MDA4LCAyLjU3ODE0IiwgXAotICAgICAgICAgICIwLjIzNTM1OCwgMC42NDM4MDYsIDAuOTY5OTE0LCAxLjM3NzE0LCAxLjc4NTgsIDIuMTkyMjEsIDIuNjAwNCIsIFwKLSAgICAgICAgICAiMC4yNTI5MjUsIDAuNjYxNDcyLCAwLjk4NzQ2OCwgMS4zOTQ4NSwgMS44MDMyNCwgMi4yMTA2NywgMi42MTgxMSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xOTA1ODMsIDAuOTczNTIyLCAxLjU5OTk0LCAyLjM3NjA5LCAzLjE2NjM4LCAzLjkzMzQ1LCA0LjcyMzE4IiwgXAotICAgICAgICAgICIwLjE5MDU4OCwgMC45Njk1NDIsIDEuNjAyNTUsIDIuMzg0NzEsIDMuMTU0MzEsIDMuOTQ4MTUsIDQuNzEzMzEiLCBcCi0gICAgICAgICAgIjAuMTkwNTk2LCAwLjk3MDg1NCwgMS42MDIxOCwgMi4zODM4OCwgMy4xNzAxMSwgMy45Mzk3NSwgNC43MTQ2NyIsIFwKLSAgICAgICAgICAiMC4xOTExMDcsIDAuOTY5NTI1LCAxLjYwMjUyLCAyLjM4NDksIDMuMTU0MjksIDMuOTQ4MDYsIDQuNzE5NzEiLCBcCi0gICAgICAgICAgIjAuMTkxMDI1LCAwLjk3MDc2MSwgMS41OTM4OCwgMi4zODUxLCAzLjE2NjUxLCAzLjk0OTUxLCA0LjcyMTA4IiwgXAotICAgICAgICAgICIwLjE5MTEzLCAwLjk2OTU0LCAxLjU5Mzg4LCAyLjM4MzU0LCAzLjE1ODI3LCAzLjk0ODM0LCA0LjcyMTI1IiwgXAotICAgICAgICAgICIwLjE5MDkwMiwgMC45Njk4ODEsIDEuNTkzOTIsIDIuMzgzMDUsIDMuMTU2NTEsIDMuOTMzNDgsIDQuNzIwODMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQ4NTU3LCAwLjIzMTM5OSwgMC4zNzc1ODUsIDAuNTYwMjQyLCAwLjc0MzU2NywgMC45MjYwNzQsIDEuMTA4NzEiLCBcCi0gICAgICAgICAgIjAuMDYwMDAzLCAwLjI0MjQ5NywgMC4zODg3NTEsIDAuNTcxNjQ0LCAwLjc1NDcyNSwgMC45MzcxNTMsIDEuMTE5OSIsIFwKLSAgICAgICAgICAiMC4wNzQ5NjYsIDAuMjU3ODEsIDAuNDA0MTM1LCAwLjU4NjcxNSwgMC43Njk3NDYsIDAuOTUyNDYxLCAxLjEzNTI5IiwgXAotICAgICAgICAgICIwLjA4OTYyLCAwLjI3MTg2NSwgMC40MTgwMjUsIDAuNjAwMjcsIDAuNzc5NjQzLCAwLjk2Mjc0MywgMS4xNDUwOSIsIFwKLSAgICAgICAgICAiMC4xMDQ1NDgsIDAuMjg2NDI4LCAwLjQzMjU2LCAwLjYxNTIyOCwgMC43OTg0NCwgMC45NzU2NDgsIDEuMTU4NTMiLCBcCi0gICAgICAgICAgIjAuMTI3Mzg4LCAwLjMxMDA4NSwgMC40NTU4NDEsIDAuNjM4NDkzLCAwLjgyMTI3MSwgMC45OTkxNTIsIDEuMTgxMjkiLCBcCi0gICAgICAgICAgIjAuMTQ1NjQzLCAwLjMzMDcyMywgMC40NzYyMjksIDAuNjU4ODY0LCAwLjg0MTg2MiwgMS4wMjQ1MywgMS4yMDE0MyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODk1MTUsIDAuNDYwNjQzLCAwLjc1ODI4NywgMS4xMzEzNSwgMS41MDAyOSwgMS44NzEwNCwgMi4yNDI1IiwgXAotICAgICAgICAgICIwLjA4OTU1MiwgMC40NjA1OCwgMC43NTkzMTQsIDEuMTI4NzMsIDEuNTAwNTEsIDEuODcxMTUsIDIuMjQyNTIiLCBcCi0gICAgICAgICAgIjAuMDkyMTc5LCAwLjQ2MDQ4MSwgMC43NTc1ODIsIDEuMTMxMjIsIDEuNTAxMzQsIDEuODcxMTIsIDIuMjQyMTQiLCBcCi0gICAgICAgICAgIjAuMDk3ODQzLCAwLjQ2MDc1OCwgMC43NTkyNDYsIDEuMTI4NjEsIDEuNTAzMzcsIDEuODcxMDgsIDIuMjQ3MzEiLCBcCi0gICAgICAgICAgIjAuMTA0MzY1LCAwLjQ2MTgzOCwgMC43NTgyMDgsIDEuMTI4NTEsIDEuNTAwNTksIDEuODcyNDUsIDIuMjQ0MDMiLCBcCi0gICAgICAgICAgIjAuMTE3MDE3LCAwLjQ2MjAyNiwgMC43NTc3MzMsIDEuMTI4ODQsIDEuNDk5OTQsIDEuODcxODYsIDIuMjQxNjciLCBcCi0gICAgICAgICAgIjAuMTI5NzA1LCAwLjQ2NjIwMiwgMC43NTkxNDksIDEuMTI4OTQsIDEuNTAwNTMsIDEuODcxMDYsIDIuMjQxNDUiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTA2MDAxLCAwLjUxMzc5NywgMC44NDAyLCAxLjI0NzA5LCAxLjY1NTQzLCAyLjA2MjYzLCAyLjQ3MDU0IiwgXAotICAgICAgICAgICIwLjExNjE4NywgMC41MjQxODcsIDAuODUwMTk0LCAxLjI1NzcxLCAxLjY2NTM4LCAyLjA3MjYyLCAyLjQ4MDA5IiwgXAotICAgICAgICAgICIwLjEyOTAzLCAwLjUzNzM0NywgMC44NjMzNzQsIDEuMjcxNTUsIDEuNjc5MTYsIDIuMDg1ODQsIDIuNDk0MjEiLCBcCi0gICAgICAgICAgIjAuMTQyMTU0LCAwLjU1MDYxOCwgMC44Nzc0NjIsIDEuMjg0ODcsIDEuNjkyMzUsIDIuMTAwODksIDIuNTA3NDIiLCBcCi0gICAgICAgICAgIjAuMTU1MjUxLCAwLjU2MzgxMiwgMC44OTA1NjIsIDEuMjk4NTcsIDEuNzA1NTcsIDIuMTEzODIsIDIuNTIwNTgiLCBcCi0gICAgICAgICAgIjAuMTc3Mzg2LCAwLjU4NDg5NCwgMC45MTEzMTksIDEuMzE5NDIsIDEuNzI2NDksIDIuMTM0NDIsIDIuNTQyMTQiLCBcCi0gICAgICAgICAgIjAuMTk2NTQzLCAwLjYwMzY0MywgMC45Mjk5OTMsIDEuMzM3MywgMS43NDU0NywgMi4xNTI2OCwgMi41NjEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTkwMTY2LCAwLjk3NDUzNSwgMS41OTQ2MSwgMi4zODMyNiwgMy4xNTkyNCwgMy45NTAxMSwgNC43MTUyNSIsIFwKLSAgICAgICAgICAiMC4xOTAyNTMsIDAuOTc0MDg3LCAxLjYsIDIuMzg0MzYsIDMuMTU3NTcsIDMuOTQ5NTQsIDQuNzIxNDEiLCBcCi0gICAgICAgICAgIjAuMTg5ODIzLCAwLjk3MzEzNiwgMS41OTk5NiwgMi4zNzMxLCAzLjE1MzYxLCAzLjk0ODg0LCA0LjcyMDc5IiwgXAotICAgICAgICAgICIwLjE5MTI3LCAwLjk3MzYyLCAxLjU5NDgzLCAyLjM4MDUsIDMuMTU0OTQsIDMuOTM4MjksIDQuNzIzOTIiLCBcCi0gICAgICAgICAgIjAuMTk0ODY1LCAwLjk3NDc3NSwgMS41OTU0OSwgMi4zNzU4NCwgMy4xNTQwNSwgMy45Mzk0NiwgNC43MjM4OCIsIFwKLSAgICAgICAgICAiMC4yMDMxMTcsIDAuOTczNDk3LCAxLjU5NTgzLCAyLjM3NjIsIDMuMTY2NDUsIDMuOTM0NTUsIDQuNzIwMjUiLCBcCi0gICAgICAgICAgIjAuMjExMzM3LCAwLjk2OTc0NywgMS41OTM2NiwgMi4zODUwNCwgMy4xNTM5OSwgMy45NDc5OSwgNC43MTMxNyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkFOIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI4NTEsIDAuMDAyODYxLCAwLjAwMjg2MiwgMC4wMDI4NjIsIDAuMDAyODYyLCAwLjAwMjg2NiwgMC4wMDI4NjIiLCBcCi0gICAgICAgICAgIjAuMDAyODM3LCAwLjAwMjg0OCwgMC4wMDI4NDgsIDAuMDAyODQ5LCAwLjAwMjg0OSwgMC4wMDI4NDksIDAuMDAyODQ4IiwgXAotICAgICAgICAgICIwLjAwMjgyNSwgMC4wMDI4MzksIDAuMDAyODQsIDAuMDAyODQxLCAwLjAwMjg0MSwgMC4wMDI4NDEsIDAuMDAyODQxIiwgXAotICAgICAgICAgICIwLjAwMjgxNiwgMC4wMDI4MzEsIDAuMDAyODMzLCAwLjAwMjgzNCwgMC4wMDI4MzQsIDAuMDAyODM0LCAwLjAwMjgzMyIsIFwKLSAgICAgICAgICAiMC4wMDI4MDQsIDAuMDAyODI1LCAwLjAwMjgyOCwgMC4wMDI4MjgsIDAuMDAyODI5LCAwLjAwMjgyOSwgMC4wMDI4MyIsIFwKLSAgICAgICAgICAiMC4wMDI4MDEsIDAuMDAyODI0LCAwLjAwMjgyNywgMC4wMDI4MjgsIDAuMDAyODI5LCAwLjAwMjgyOSwgMC4wMDI4MjkiLCBcCi0gICAgICAgICAgIjAuMDAyNzk1LCAwLjAwMjgyMSwgMC4wMDI4MjUsIDAuMDAyODI2LCAwLjAwMjgyNywgMC4wMDI4MjcsIDAuMDAyODI3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzMDUsIDAuMDAzMDczLCAwLjAwMzA3NiwgMC4wMDMwNzcsIDAuMDAzMDc3LCAwLjAwMzA3OCwgMC4wMDMwNzgiLCBcCi0gICAgICAgICAgIjAuMDAzMDM4LCAwLjAwMzA2NCwgMC4wMDMwNjcsIDAuMDAzMDY4LCAwLjAwMzA2OSwgMC4wMDMwNjksIDAuMDAzMDY5IiwgXAotICAgICAgICAgICIwLjAwMzAyNCwgMC4wMDMwNTYsIDAuMDAzMDU5LCAwLjAwMzA2MSwgMC4wMDMwNjIsIDAuMDAzMDYzLCAwLjAwMzA2MyIsIFwKLSAgICAgICAgICAiMC4wMDMwMTEsIDAuMDAzMDQ5LCAwLjAwMzA1NCwgMC4wMDMwNTYsIDAuMDAzMDU3LCAwLjAwMzA1OCwgMC4wMDMwNTkiLCBcCi0gICAgICAgICAgIjAuMDAzMDAzLCAwLjAwMzA0NSwgMC4wMDMwNTEsIDAuMDAzMDU0LCAwLjAwMzA1NSwgMC4wMDMwNTYsIDAuMDAzMDU3IiwgXAotICAgICAgICAgICIwLjAwMjk5LCAwLjAwMzAzOCwgMC4wMDMwNDUsIDAuMDAzMDQ5LCAwLjAwMzA1MSwgMC4wMDMwNTIsIDAuMDAzMDUzIiwgXAotICAgICAgICAgICIwLjAwMjk4NCwgMC4wMDMwMzUsIDAuMDAzMDQzLCAwLjAwMzA0OCwgMC4wMDMwNSwgMC4wMDMwNTEsIDAuMDAzMDUyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyMDMzLCAwLjAwMjAzOCwgMC4wMDIwMzgsIDAuMDAyMDM4LCAwLjAwMjAzOSwgMC4wMDIwMzksIDAuMDAyMDM5IiwgXAotICAgICAgICAgICIwLjAwMjAxOSwgMC4wMDIwNDQsIDAuMDAyMDQ3LCAwLjAwMjA0OCwgMC4wMDIwNDgsIDAuMDAyMDQ5LCAwLjAwMjA0OSIsIFwKLSAgICAgICAgICAiMC4wMDIwMDMsIDAuMDAyMDQxLCAwLjAwMjA0NSwgMC4wMDIwNDcsIDAuMDAyMDQ4LCAwLjAwMjA0OSwgMC4wMDIwNSIsIFwKLSAgICAgICAgICAiMC4wMDE5ODgsIDAuMDAyMDM3LCAwLjAwMjA0NCwgMC4wMDIwNDYsIDAuMDAyMDQ3LCAwLjAwMjA0OSwgMC4wMDIwNTEiLCBcCi0gICAgICAgICAgIjAuMDAxOTc0LCAwLjAwMjAzLCAwLjAwMjAzOSwgMC4wMDIwNDQsIDAuMDAyMDQ3LCAwLjAwMjA0NywgMC4wMDIwNDgiLCBcCi0gICAgICAgICAgIjAuMDAxOTYsIDAuMDAyMDI2LCAwLjAwMjAzNSwgMC4wMDIwNCwgMC4wMDIwNDQsIDAuMDAyMDQ1LCAwLjAwMjA0NiIsIFwKLSAgICAgICAgICAiMC4wMDE5NTIsIDAuMDAyMDIsIDAuMDAyMDI5LCAwLjAwMjAzOCwgMC4wMDIwNDIsIDAuMDAyMDQ1LCAwLjAwMjA0NiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDczMywgMC4wMDA3NDEsIDAuMDAwNzQxLCAwLjAwMDc0MiwgMC4wMDA3NDIsIDAuMDAwNzQyLCAwLjAwMDc0MiIsIFwKLSAgICAgICAgICAiMC4wMDA3LCAwLjAwMDczNCwgMC4wMDA3MzcsIDAuMDAwNzM5LCAwLjAwMDc0LCAwLjAwMDc0LCAwLjAwMDc0MSIsIFwKLSAgICAgICAgICAiMC4wMDA2NywgMC4wMDA3MjUsIDAuMDAwNzMyLCAwLjAwMDczNSwgMC4wMDA3MzcsIDAuMDAwNzM4LCAwLjAwMDczOSIsIFwKLSAgICAgICAgICAiMC4wMDA2NDcsIDAuMDAwNzE2LCAwLjAwMDcyNiwgMC4wMDA3MzIsIDAuMDAwNzM0LCAwLjAwMDczNiwgMC4wMDA3MzciLCBcCi0gICAgICAgICAgIjAuMDAwNjMzLCAwLjAwMDcwOSwgMC4wMDA3MjEsIDAuMDAwNzI4LCAwLjAwMDczMiwgMC4wMDA3MzQsIDAuMDAwNzM1IiwgXAotICAgICAgICAgICIwLjAwMDYyLCAwLjAwMDY5OSwgMC4wMDA3MTQsIDAuMDAwNzIzLCAwLjAwMDcyOCwgMC4wMDA3MzEsIDAuMDAwNzMzIiwgXAotICAgICAgICAgICIwLjAwMDYxMywgMC4wMDA2OTEsIDAuMDAwNzA4LCAwLjAwMDcxOSwgMC4wMDA3MjQsIDAuMDAwNzI4LCAwLjAwMDczIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IE5BTkQyQlhMICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChOQU5EMkJYTCkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjA1NjkxOTE7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEFOKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA1NzU1Mzg7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNTc1Mjk5OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDU3NTUzODsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyNTYsIDAuMDAwMjM3LCAwLjAwMDIyNywgMC4wMDAyMjMsIDAuMDAwMjIyLCAwLjAwMDIyLCAwLjAwMDIyMSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDk4MiwgMC4wMDA5NjksIDAuMDAwOTYyLCAwLjAwMDk1OSwgMC4wMDA5NTcsIDAuMDAwOTU3LCAwLjAwMDk1NyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNTc1NzI1OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDU3NTQxNjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA1NzU3MjU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMDYzLCAwLjAwMDA2MywgMC4wMDAwNjMsIDAuMDAwMDYzLCAwLjAwMDA2MywgMC4wMDAwNjMsIDAuMDAwMDYzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMTg4LCAwLjAwMDE4OCwgMC4wMDAxODgsIDAuMDAwMTg4LCAwLjAwMDE4OCwgMC4wMDAxODgsIDAuMDAwMTg4Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMDM3NzgxOwotICAgIGZ1bmN0aW9uIDogIighKCghQU4pIEIpKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQU4iOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE3MjQyNywgMC4xOTc3MTUsIDAuNDI1MDY4LCAwLjgwMzg1OCwgMS4xODI1NywgMi4wNjY2OCwgMi41NzE0IiwgXAotICAgICAgICAgICIwLjE4NDM4OSwgMC4yMDk2NzYsIDAuNDM3MDYxLCAwLjgxNjI0OSwgMS4xOTUyMSwgMi4wNzkzNywgMi41ODM3MiIsIFwKLSAgICAgICAgICAiMC4xOTk0NjEsIDAuMjI0NzUsIDAuNDUyMjA0LCAwLjgzMDk4MywgMS4yMDk5NCwgMi4wOTM3NiwgMi41OTg5NCIsIFwKLSAgICAgICAgICAiMC4yMTQ0MjgsIDAuMjM5NzE0LCAwLjQ2NzE0MiwgMC44NDU5MTcsIDEuMjI0OTUsIDIuMTA4NzMsIDIuNjE0MTgiLCBcCi0gICAgICAgICAgIjAuMjI4NDI3LCAwLjI1MzcxNywgMC40ODExMzcsIDAuODYwMDAzLCAxLjIzODgxLCAyLjEyMywgMi42MjgxNSIsIFwKLSAgICAgICAgICAiMC4yNDg3OTMsIDAuMjc0MDY2LCAwLjUwMTQyMiwgMC44ODA1MDgsIDEuMjU5NDgsIDIuMTQzNiwgMi42NDc2NSIsIFwKLSAgICAgICAgICAiMC4yNjQ3MzMsIDAuMjkwMDI2LCAwLjUxNzQxMSwgMC44OTYyMiwgMS4yNzUxNCwgMi4xNTk1MywgMi42NjQzMSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yNzgzOTksIDAuMzI5NiwgMC43OTAwMzUsIDEuNTU3MDIsIDIuMzI0MjQsIDQuMTE1MjUsIDUuMTM4MjkiLCBcCi0gICAgICAgICAgIjAuMjc4NDAzLCAwLjMyOTU4OSwgMC43ODk2NzcsIDEuNTU3MzYsIDIuMzI0OTQsIDQuMTE1NTUsIDUuMTM4OTYiLCBcCi0gICAgICAgICAgIjAuMjc4NDcxLCAwLjMyOTQ4NSwgMC43ODk5MTUsIDEuNTU3NzIsIDIuMzI0NTgsIDQuMTE1NDksIDUuMTM4OTEiLCBcCi0gICAgICAgICAgIjAuMjc4MjY4LCAwLjMyOTU5NSwgMC43ODk4NywgMS41NTY4MSwgMi4zMjQ2NiwgNC4xMTUzMiwgNS4xMzkxNSIsIFwKLSAgICAgICAgICAiMC4yNzgzNzQsIDAuMzI5NDIzLCAwLjc4OTg1OSwgMS41NTc3OCwgMi4zMjUzMSwgNC4xMTU2NCwgNS4xMzg4NSIsIFwKLSAgICAgICAgICAiMC4yNzg0MzYsIDAuMzI5NzE0LCAwLjc4OTk4LCAxLjU1NzMsIDIuMzI0OTIsIDQuMTE1NDMsIDUuMTM5MjMiLCBcCi0gICAgICAgICAgIjAuMjc4ODIyLCAwLjMyOTg4OSwgMC43ODk2OCwgMS41NTY4MiwgMi4zMjUzNCwgNC4xMTU0MywgNS4xMzg4NCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zNTQ1MDUsIDAuNDEzNTE4LCAwLjk0NDI1NSwgMS44Mjk2NywgMi43MTQxNSwgNC43NzY3NywgNS45NTUxMiIsIFwKLSAgICAgICAgICAiMC4zNjYxNDIsIDAuNDI1MTM2LCAwLjk1NjExMiwgMS44NDE0NSwgMi43MjU2NSwgNC43ODgyOSwgNS45NjY5MyIsIFwKLSAgICAgICAgICAiMC4zODA3NDgsIDAuNDM5Nzk2LCAwLjk3MTEzNSwgMS44NTYyMSwgMi43NDA0NywgNC44MDMwOCwgNS45ODE0NSIsIFwKLSAgICAgICAgICAiMC4zOTQzNjMsIDAuNDUzMzQ5LCAwLjk4NDMzNywgMS44NzAyMywgMi43NTQzMiwgNC44MTYzNCwgNS45OTUyNyIsIFwKLSAgICAgICAgICAiMC40MDY1MTMsIDAuNDY1NDgzLCAwLjk5NjMyLCAxLjg4MTgsIDIuNzY1NTEsIDQuODI4OTEsIDYuMDA3MTkiLCBcCi0gICAgICAgICAgIjAuNDIzNTk0LCAwLjQ4Mjc0NiwgMS4wMTM1NSwgMS44OTk1OCwgMi43ODMyMywgNC44NDU5MywgNi4wMjQ1OCIsIFwKLSAgICAgICAgICAiMC40MzY4MDMsIDAuNDk1OTY2LCAxLjAyNjc4LCAxLjkxMjc4LCAyLjc5NjYxLCA0Ljg1OTIzLCA2LjAzOCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC42MDcxMTIsIDAuNzE5OTUzLCAxLjczNTEyLCAzLjQyMjAzLCA1LjEwNzM1LCA5LjAxOTI4LCAxMS4yNTgiLCBcCi0gICAgICAgICAgIjAuNjA3MTE2LCAwLjcyMDI0NywgMS43MzUyNCwgMy40MTQzOSwgNS4xMDU2NiwgOS4wMTc5NywgMTEuMjU3OSIsIFwKLSAgICAgICAgICAiMC42MDcwMzcsIDAuNzE5OTIsIDEuNzI5OTUsIDMuNDE2NzYsIDUuMTAzOTEsIDkuMDE5MTMsIDExLjI1NzkiLCBcCi0gICAgICAgICAgIjAuNjA3MTk2LCAwLjcxOTU4OSwgMS43MzU4MywgMy40MjAyNywgNS4xMDM4NywgOS4wMTgyMSwgMTEuMjU3NSIsIFwKLSAgICAgICAgICAiMC42MDcxNiwgMC43MjAxMTIsIDEuNzM1NiwgMy40MjI4NSwgNS4xMDY1NCwgOS4wMTc3NSwgMTEuMjU3OCIsIFwKLSAgICAgICAgICAiMC42MDcwNTMsIDAuNzE2NTUxLCAxLjczNjU4LCAzLjQxOTg5LCA1LjEwNDczLCA5LjAxODg0LCAxMS4yNTc2IiwgXAotICAgICAgICAgICIwLjYwNjY2OSwgMC43MTk5MDIsIDEuNzM1NTUsIDMuNDE5OTgsIDUuMTA0OTIsIDkuMDE5MTUsIDExLjI1ODEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTM5ODA0LCAwLjE2NTA5OCwgMC4zOTI1OTIsIDAuNzcxNTIzLCAxLjE0OTg2LCAyLjAzMzgxLCAyLjUzODk4IiwgXAotICAgICAgICAgICIwLjE1MTM5NiwgMC4xNzY2OSwgMC40MDQxMzEsIDAuNzgyODQyLCAxLjE2MjIsIDIuMDQ2NjUsIDIuNTUwOTIiLCBcCi0gICAgICAgICAgIjAuMTY1NzkxLCAwLjE5MTA3NCwgMC40MTc5NDksIDAuNzk0NTI4LCAxLjE3MzQ3LCAyLjA1NzQ2LCAyLjU2MTkxIiwgXAotICAgICAgICAgICIwLjE4MDQyOCwgMC4yMDUzNiwgMC40MzI4NjgsIDAuODA3NzE5LCAxLjE4NjM3LCAyLjA3MTcsIDIuNTc1NTUiLCBcCi0gICAgICAgICAgIjAuMTk1NTI2LCAwLjIyMDM0NiwgMC40NDcxNzUsIDAuODIyMDEyLCAxLjIwMDY2LCAyLjA4NDIzLCAyLjU4OTIiLCBcCi0gICAgICAgICAgIjAuMjE5MTQyLCAwLjI0NDQzNCwgMC40NzA0NywgMC44NDQ2NjgsIDEuMjIzNzgsIDIuMTA2ODYsIDIuNjEyMzUiLCBcCi0gICAgICAgICAgIjAuMjM5ODIyLCAwLjI2NTAzOSwgMC40OTAzNTUsIDAuODY5NjY2LCAxLjI0MzU0LCAyLjEyODY5LCAyLjYzMTk5Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI3NTMzMywgMC4zMjU4OTksIDAuNzg2ODc5LCAxLjU1NTM1LCAyLjMyMzk1LCA0LjExNTExLCA1LjE0MDc3IiwgXAotICAgICAgICAgICIwLjI3NDY1LCAwLjMyNTkwMiwgMC43ODY0NzgsIDEuNTU0NjUsIDIuMzIzNTYsIDQuMTE1OTgsIDUuMTM4MDQiLCBcCi0gICAgICAgICAgIjAuMjc1MywgMC4zMjY0ODksIDAuNzg2NDg1LCAxLjU1NTcsIDIuMzIyNTgsIDQuMTE0MywgNS4xMzY2OSIsIFwKLSAgICAgICAgICAiMC4yNzU2MDcsIDAuMzI2MDk3LCAwLjc4NjYyOCwgMS41NTgwNSwgMi4zMjc1NCwgNC4xMTU3NSwgNS4xNDExOSIsIFwKLSAgICAgICAgICAiMC4yNzczMzEsIDAuMzI2NjU3LCAwLjc4NjQ3NCwgMS41NTUyOSwgMi4zMjUxLCA0LjExNDYxLCA1LjE0MTkiLCBcCi0gICAgICAgICAgIjAuMjgyMTE4LCAwLjMzMDk5OSwgMC43ODY0NzQsIDEuNTU0NzIsIDIuMzIyMzMsIDQuMTEzMzUsIDUuMTQxMzEiLCBcCi0gICAgICAgICAgIjAuMjg4ODMyLCAwLjMzNzAwMSwgMC43ODgzMjEsIDEuNTU0NTEsIDIuMzIxNzEsIDQuMTE1OTksIDUuMTM3MDEiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzIzODczLCAwLjM4Mjg3NCwgMC45MTM2NDcsIDEuNzk4MDIsIDIuNjgzLCA0Ljc0NTcsIDUuOTI0NjIiLCBcCi0gICAgICAgICAgIjAuMzM0ODg5LCAwLjM5Mzc5NiwgMC45MjQ4NTEsIDEuODA5NjcsIDIuNjk0NjMsIDQuNzU2OTYsIDUuOTM1NjYiLCBcCi0gICAgICAgICAgIjAuMzQ3OTIsIDAuNDA2OTE5LCAwLjkzNzkxNCwgMS44MjM0OCwgMi43MDc5NSwgNC43NzAzNywgNS45NDg5OSIsIFwKLSAgICAgICAgICAiMC4zNjEyOTQsIDAuNDIwNDEsIDAuOTUxNjAxLCAxLjgzNzIzLCAyLjcyMTQzLCA0Ljc4MzU0LCA1Ljk2MjUyIiwgXAotICAgICAgICAgICIwLjM3NDY5OCwgMC40MzM4MjIsIDAuOTY1MjU2LCAxLjg0OTYzLCAyLjczNTA0LCA0Ljc5NzQzLCA1Ljk3NTk2IiwgXAotICAgICAgICAgICIwLjM5NTc3NywgMC40NTUyODYsIDAuOTg2NDEzLCAxLjg3MjA4LCAyLjc1NjYxLCA0LjgxODk1LCA1Ljk5NzY4IiwgXAotICAgICAgICAgICIwLjQxNTA0MiwgMC40NzQxNTEsIDEuMDA1MzksIDEuODkwMDQsIDIuNzc1NjMsIDQuODM4MDUsIDYuMDE2NTUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuNjA2NjgxLCAwLjcxOTQxNywgMS43MzU0NCwgMy40Mjc0NSwgNS4xMDM0OSwgOS4wMTg0MywgMTEuMjU3OCIsIFwKLSAgICAgICAgICAiMC42MDQxMjcsIDAuNzE5MzQxLCAxLjczODU2LCAzLjQyODAxLCA1LjEwMzE0LCA5LjAxOTc5LCAxMS4yNTgxIiwgXAotICAgICAgICAgICIwLjYwNTA0MiwgMC43MTk1NiwgMS43MzYxOSwgMy40MTQxLCA1LjEwNzQzLCA5LjAxODI2LCAxMS4yNTgiLCBcCi0gICAgICAgICAgIjAuNjA2NzAxLCAwLjcyMDE5NywgMS43MzE5MiwgMy40MTg0OCwgNS4xMDc0LCA5LjAxODE2LCAxMS4yNTc2IiwgXAotICAgICAgICAgICIwLjYwNjYxOCwgMC43MTc2MzQsIDEuNzI4NTEsIDMuNDI5MjksIDUuMTA3NDksIDkuMDE4MzEsIDExLjI1OCIsIFwKLSAgICAgICAgICAiMC42MDUxOTUsIDAuNzE5NTc0LCAxLjczNTQsIDMuNDI0NTcsIDUuMTA3NDUsIDkuMDE3ODUsIDExLjI1NzYiLCBcCi0gICAgICAgICAgIjAuNjA3NTk0LCAwLjcxOTYzOSwgMS43MzY2MywgMy40Mjg5LCA1LjEwNzUyLCA5LjAxNzYxLCAxMS4yNTc5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQU4iOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTAwNiwgMC4wMDEwMDYsIDAuMDAxMDA2LCAwLjAwMTAwNiwgMC4wMDEwMDUsIDAuMDAxMDA1LCAwLjAwMTAwNSIsIFwKLSAgICAgICAgICAiMC4wMDA5ODcsIDAuMDAwOTg3LCAwLjAwMDk4NywgMC4wMDA5ODcsIDAuMDAwOTg3LCAwLjAwMDk4NiwgMC4wMDA5ODYiLCBcCi0gICAgICAgICAgIjAuMDAwOTc2LCAwLjAwMDk3NiwgMC4wMDA5NzcsIDAuMDAwOTc3LCAwLjAwMDk3NiwgMC4wMDA5NzYsIDAuMDAwOTc1IiwgXAotICAgICAgICAgICIwLjAwMDk3MywgMC4wMDA5NzMsIDAuMDAwOTc0LCAwLjAwMDk3NCwgMC4wMDA5NzQsIDAuMDAwOTczLCAwLjAwMDk3MyIsIFwKLSAgICAgICAgICAiMC4wMDA5NzEsIDAuMDAwOTcxLCAwLjAwMDk3MiwgMC4wMDA5NzIsIDAuMDAwOTcyLCAwLjAwMDk3MiwgMC4wMDA5NzEiLCBcCi0gICAgICAgICAgIjAuMDAwOTcxLCAwLjAwMDk3MSwgMC4wMDA5NzIsIDAuMDAwOTcyLCAwLjAwMDk3MiwgMC4wMDA5NzIsIDAuMDAwOTcyIiwgXAotICAgICAgICAgICIwLjAwMDk3MiwgMC4wMDA5NzIsIDAuMDAwOTc0LCAwLjAwMDk3NCwgMC4wMDA5NzQsIDAuMDAwOTczLCAwLjAwMDk3MyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTQzMSwgMC4wMDE0MzEsIDAuMDAxNDMyLCAwLjAwMTQzMiwgMC4wMDE0MzIsIDAuMDAxNDMxLCAwLjAwMTQzMiIsIFwKLSAgICAgICAgICAiMC4wMDE0MTgsIDAuMDAxNDE4LCAwLjAwMTQxOSwgMC4wMDE0MTksIDAuMDAxNDE5LCAwLjAwMTQxOCwgMC4wMDE0MTkiLCBcCi0gICAgICAgICAgIjAuMDAxNDEsIDAuMDAxNDExLCAwLjAwMTQxMiwgMC4wMDE0MTMsIDAuMDAxNDEzLCAwLjAwMTQxNCwgMC4wMDE0MTMiLCBcCi0gICAgICAgICAgIjAuMDAxNDA2LCAwLjAwMTQwNywgMC4wMDE0MDksIDAuMDAxNDEsIDAuMDAxNDA4LCAwLjAwMTQxLCAwLjAwMTQxIiwgXAotICAgICAgICAgICIwLjAwMTQwNCwgMC4wMDE0MDQsIDAuMDAxNDA3LCAwLjAwMTQwOCwgMC4wMDE0MDgsIDAuMDAxNDA5LCAwLjAwMTQwOSIsIFwKLSAgICAgICAgICAiMC4wMDE0MDIsIDAuMDAxNDAyLCAwLjAwMTQwNiwgMC4wMDE0MDcsIDAuMDAxNDA3LCAwLjAwMTQwOCwgMC4wMDE0MDgiLCBcCi0gICAgICAgICAgIjAuMDAxNDAyLCAwLjAwMTQwMywgMC4wMDE0MDcsIDAuMDAxNDA4LCAwLjAwMTQwOSwgMC4wMDE0MDksIDAuMDAxNDA5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwNjg2LCAwLjAwMDY4NiwgMC4wMDA2ODYsIDAuMDAwNjg2LCAwLjAwMDY4NiwgMC4wMDA2ODYsIDAuMDAwNjg2IiwgXAotICAgICAgICAgICIwLjAwMDY4NywgMC4wMDA2ODgsIDAuMDAwNjg5LCAwLjAwMDY4OSwgMC4wMDA2OSwgMC4wMDA2ODksIDAuMDAwNjg5IiwgXAotICAgICAgICAgICIwLjAwMDY4NSwgMC4wMDA2ODYsIDAuMDAwNjg4LCAwLjAwMDY4OSwgMC4wMDA2OSwgMC4wMDA2OSwgMC4wMDA2OSIsIFwKLSAgICAgICAgICAiMC4wMDA2ODQsIDAuMDAwNjgzLCAwLjAwMDY4OCwgMC4wMDA2ODksIDAuMDAwNjg5LCAwLjAwMDY4OSwgMC4wMDA2OSIsIFwKLSAgICAgICAgICAiMC4wMDA2ODIsIDAuMDAwNjgzLCAwLjAwMDY4NywgMC4wMDA2ODksIDAuMDAwNjg5LCAwLjAwMDY5LCAwLjAwMDY5IiwgXAotICAgICAgICAgICIwLjAwMDY3OSwgMC4wMDA2ODEsIDAuMDAwNjg2LCAwLjAwMDY4OCwgMC4wMDA2ODksIDAuMDAwNjksIDAuMDAwNjkiLCBcCi0gICAgICAgICAgIjAuMDAwNjc4LCAwLjAwMDY3OSwgMC4wMDA2ODQsIDAuMDAwNjg3LCAwLjAwMDY4OSwgMC4wMDA2ODksIDAuMDAwNjkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDAyNzEsIDAuMDAwMjcxLCAwLjAwMDI3MiwgMC4wMDAyNzIsIDAuMDAwMjcyLCAwLjAwMDI3MiwgMC4wMDAyNzIiLCBcCi0gICAgICAgICAgIjAuMDAwMjY4LCAwLjAwMDI2OCwgMC4wMDAyNywgMC4wMDAyNzEsIDAuMDAwMjcxLCAwLjAwMDI3MiwgMC4wMDAyNzIiLCBcCi0gICAgICAgICAgIjAuMDAwMjY0LCAwLjAwMDI2NSwgMC4wMDAyNjksIDAuMDAwMjcsIDAuMDAwMjcxLCAwLjAwMDI3MSwgMC4wMDAyNzEiLCBcCi0gICAgICAgICAgIjAuMDAwMjYxLCAwLjAwMDI2MiwgMC4wMDAyNjgsIDAuMDAwMjcsIDAuMDAwMjcsIDAuMDAwMjcxLCAwLjAwMDI3MSIsIFwKLSAgICAgICAgICAiMC4wMDAyNTgsIDAuMDAwMjYsIDAuMDAwMjY2LCAwLjAwMDI2OSwgMC4wMDAyNywgMC4wMDAyNzEsIDAuMDAwMjcxIiwgXAotICAgICAgICAgICIwLjAwMDI1NCwgMC4wMDAyNTYsIDAuMDAwMjY0LCAwLjAwMDI2OCwgMC4wMDAyNjksIDAuMDAwMjcsIDAuMDAwMjcxIiwgXAotICAgICAgICAgICIwLjAwMDI1MSwgMC4wMDAyNTQsIDAuMDAwMjYzLCAwLjAwMDI2NywgMC4wMDAyNjgsIDAuMDAwMjcsIDAuMDAwMjciKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBOQU5EMlg2ICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKE5BTkQyWDYpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4zOTU5NTU7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwNDc0MzI1OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwNDc0MzI1OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwNDcyOTgzOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTgzNywgMC4wMDE4MzUsIDAuMDAxODM0LCAwLjAwMTgzNCwgMC4wMDE4MzQsIDAuMDAxODMzLCAwLjAwMTgzMyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTksIDAuMDAxODU1LCAwLjAwMTg0OSwgMC4wMDE4NDgsIDAuMDAxODQ3LCAwLjAwMTg0NiwgMC4wMDE4NDUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwNDUzMDI4OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwNDUyNjU0OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwNDUzMDI4OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDkzLCAwLjAwMDkyOCwgMC4wMDA5MjcsIDAuMDAwOTI3LCAwLjAwMDkyNywgMC4wMDA5MjgsIDAuMDAwOTI4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyMDg1LCAwLjAwMjA4NiwgMC4wMDIwODYsIDAuMDAyMDg2LCAwLjAwMjA4OSwgMC4wMDIwODksIDAuMDAyMDg5Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMzg4Mzk0OwotICAgIGZ1bmN0aW9uIDogIighKEEgQikpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyNjAyMSwgMC4xMTExOTMsIDAuMTk2MDQsIDAuMjU2NjQzLCAwLjM1MzQ0MiwgMC40MzgzMiwgMC41NTkyMjUiLCBcCi0gICAgICAgICAgIjAuMDM3NTc5LCAwLjEyMjgzLCAwLjIwNzY2MiwgMC4yNjgyMjMsIDAuMzY1MTYyLCAwLjQ0OTgzNywgMC41NzEwNTIiLCBcCi0gICAgICAgICAgIjAuMDUyNTQ2LCAwLjEzNzI4OSwgMC4yMjIwMzUsIDAuMjgyNjM2LCAwLjM3OTQ2MiwgMC40NjE4NjUsIDAuNTgyOTAyIiwgXAotICAgICAgICAgICIwLjA2NjY4NywgMC4xNTIxNzUsIDAuMjM2Njk2LCAwLjI5NTk4MSwgMC4zOTI4NzgsIDAuNDc3NjAxLCAwLjU5ODYyNiIsIFwKLSAgICAgICAgICAiMC4wNzkwNzIsIDAuMTY3MTMsIDAuMjUxMjcyLCAwLjMxMTY1MiwgMC40MDg1NDIsIDAuNDkzMjYsIDAuNjE0MTY3IiwgXAotICAgICAgICAgICIwLjA5NjU4NCwgMC4xOTA3NTYsIDAuMjc0OTI2LCAwLjMzNTI3MSwgMC40MzE4MTUsIDAuNTE2NDc5LCAwLjYzNzUzOSIsIFwKLSAgICAgICAgICAiMC4xMTAyMDksIDAuMjExNDE2LCAwLjI5NTY5MiwgMC4zNTU5NzcsIDAuNDUyNTMyLCAwLjUzNjk4NSwgMC42NTc5NzEiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDIzNDgsIDAuMjE0NjI3LCAwLjM4Njg1MiwgMC41MDk1NDIsIDAuNzA1OTMzLCAwLjg3ODI2LCAxLjEyNDM5IiwgXAotICAgICAgICAgICIwLjA0MzQ2NSwgMC4yMTQ1MTksIDAuMzg2NTk3LCAwLjUwOTM1MywgMC43MDY1NTQsIDAuODc4MDg3LCAxLjEyMzk4IiwgXAotICAgICAgICAgICIwLjA0OTAyMywgMC4yMTQ1NDEsIDAuMzg2ODQ0LCAwLjUwOTkxNSwgMC43MDU5MzcsIDAuODc4NTcsIDEuMTI0NDMiLCBcCi0gICAgICAgICAgIjAuMDU2NzEzLCAwLjIxNTYxMiwgMC4zODY1OTksIDAuNTA5NTg2LCAwLjcwNjUzOCwgMC44Nzc5NSwgMS4xMjM3MyIsIFwKLSAgICAgICAgICAiMC4wNjU5MiwgMC4yMTg1NjcsIDAuMzg2NzgsIDAuNTA5NjEsIDAuNzA2MTcsIDAuODc4MjQ3LCAxLjEyMzgzIiwgXAotICAgICAgICAgICIwLjA4MDg5MSwgMC4yMjU3NjEsIDAuMzg5NDE4LCAwLjUxMDE5LCAwLjcwNTk0NSwgMC44Nzg1NDMsIDEuMTIzOTYiLCBcCi0gICAgICAgICAgIjAuMDkzMjk0LCAwLjIzMzkzMSwgMC4zOTM4MzEsIDAuNTEyNDg4LCAwLjcwNjM1MSwgMC44NzgxNDIsIDEuMTIzOTYiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTY4OSwgMC4yNTE3MjksIDAuNDQ2NDQzLCAwLjU4NTgyNSwgMC44MDc5MTUsIDEuMDAzMjksIDEuMjgwODkiLCBcCi0gICAgICAgICAgIjAuMDY3OTkxLCAwLjI2MzMyNCwgMC40NTgxMzksIDAuNTk3MjY5LCAwLjgxOTgxMywgMS4wMTQ1OCwgMS4yOTIzMSIsIFwKLSAgICAgICAgICAiMC4wODEyNzQsIDAuMjc2OTQsIDAuNDcxNzY1LCAwLjYxMDkxNiwgMC44MzM5NTMsIDEuMDI4MTcsIDEuMzA2MjYiLCBcCi0gICAgICAgICAgIjAuMDk0NTM5LCAwLjI5MDI5NSwgMC40ODUxNDYsIDAuNjI0NjMsIDAuODQ2OTIzLCAxLjA0MTg0LCAxLjMyMDA2IiwgXAotICAgICAgICAgICIwLjEwNzc5NSwgMC4zMDM3MjcsIDAuNDk4NjcxLCAwLjYzNzgyMywgMC44NjAzMDgsIDEuMDU1NDQsIDEuMzMzMyIsIFwKLSAgICAgICAgICAiMC4xMjgzMjksIDAuMzI1MDk4LCAwLjUyMDAyNiwgMC42NTkyOTgsIDAuODgxOTI2LCAxLjA3NjUxLCAxLjM1NTE4IiwgXAotICAgICAgICAgICIwLjE0NDk0NSwgMC4zNDM3MSwgMC41Mzg5MzYsIDAuNjc4MTc3LCAwLjkwMTEyNiwgMS4wOTU4MywgMS4zNzM2MyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4NjU2NywgMC40NjA4NTgsIDAuODM1NjY1LCAxLjA5OTM2LCAxLjUyNTU2LCAxLjg5ODQsIDIuNDQzMjkiLCBcCi0gICAgICAgICAgIjAuMDg2NTUyLCAwLjQ2MDc0NSwgMC44MzI2OTcsIDEuMTA0MTgsIDEuNTI2MzEsIDEuODk2NjQsIDIuNDQxNDMiLCBcCi0gICAgICAgICAgIjAuMDg3MjM5LCAwLjQ2MTExMywgMC44MzQ4NTcsIDEuMTA0MjIsIDEuNTI0MjEsIDEuOTA3NzksIDIuNDQyMDkiLCBcCi0gICAgICAgICAgIjAuMDg5Njg3LCAwLjQ2MDY3MSwgMC44MzQ4NTksIDEuMDk4OTksIDEuNTI5NjYsIDEuODk2NTksIDIuNDI4NjMiLCBcCi0gICAgICAgICAgIjAuMDkzNjE3LCAwLjQ2MDM1NSwgMC44MzU1NzYsIDEuMTAyMjQsIDEuNTMwMTgsIDEuODk2MjgsIDIuNDM4NDEiLCBcCi0gICAgICAgICAgIjAuMTAxNzA3LCAwLjQ2MTMzNywgMC44MzQ5NTksIDEuMTAzNTgsIDEuNTI5NzEsIDEuOTA1NjUsIDIuNDI4NDIiLCBcCi0gICAgICAgICAgIjAuMTEwMzE4LCAwLjQ2Mjk5OCwgMC44MzQ5MzUsIDEuMTAyMjEsIDEuNTIzNjksIDEuODk2NTksIDIuNDM5NTkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjQwOTEsIDAuMTA5NDcxLCAwLjE5NDgyNSwgMC4yNTU4NTgsIDAuMzUzNDIxLCAwLjQzODgzMywgMC41NjA3MDEiLCBcCi0gICAgICAgICAgIjAuMDM1NzIsIDAuMTIxMTY2LCAwLjIwNjU2MSwgMC4yNjc2NDQsIDAuMzY1MDE2LCAwLjQ1MDUxOCwgMC41NzI1MzciLCBcCi0gICAgICAgICAgIjAuMDUwNDcxLCAwLjEzNTY0NSwgMC4yMjA5MzIsIDAuMjgxODcsIDAuMzc3NTk2LCAwLjQ2MzAzNSwgMC41ODQ4OTkiLCBcCi0gICAgICAgICAgIjAuMDY0MDIyLCAwLjE1MDY3NiwgMC4yMzU3ODksIDAuMjk2NzEyLCAwLjM5NDA0OSwgMC40NzkyMTQsIDAuNjAxNDM3IiwgXAotICAgICAgICAgICIwLjA3NTY5NiwgMC4xNjUzMjEsIDAuMjUwMDQxLCAwLjMxMDg0MiwgMC40MDg0MTEsIDAuNDkzNjkzLCAwLjYxNTc3NCIsIFwKLSAgICAgICAgICAiMC4wOTIyMTYsIDAuMTg4OTMzLCAwLjI3MzY1NCwgMC4zMzQ0MiwgMC40MzE2NjYsIDAuNTE2ODk2LCAwLjYzODgwMSIsIFwKLSAgICAgICAgICAiMC4xMDQ3MDgsIDAuMjA5NjUxLCAwLjI5NDk1NCwgMC4zNTUxNDQsIDAuNDUyNDIsIDAuNTM3NDAzLCAwLjY1OTE3NiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzOTg4LCAwLjIxMzE5OSwgMC4zODc0NiwgMC41MTA0LCAwLjcwOTAzMiwgMC44ODIwMSwgMS4xMjk1NSIsIFwKLSAgICAgICAgICAiMC4wNDEyNzIsIDAuMjEzMjE3LCAwLjM4NjU5MSwgMC41MTA1NDQsIDAuNzEwMTQ3LCAwLjg4MTg4NCwgMS4xMjkzOSIsIFwKLSAgICAgICAgICAiMC4wNDczMTYsIDAuMjEzMzc3LCAwLjM4NjU4NSwgMC41MTE1NjcsIDAuNzA4Mzg0LCAwLjg4MjU3NCwgMS4xMjg5OCIsIFwKLSAgICAgICAgICAiMC4wNTU2MDQsIDAuMjE0MzYzLCAwLjM4NzU2NywgMC41MTAzOTcsIDAuNzA4MTk1LCAwLjg4MzY2OSwgMS4xMjk5NyIsIFwKLSAgICAgICAgICAiMC4wNjUzNzcsIDAuMjE3NTgyLCAwLjM4NzYxNCwgMC41MTA3MSwgMC43MDg1MjYsIDAuODgxOTA3LCAxLjEyOTQ5IiwgXAotICAgICAgICAgICIwLjA4MDkyLCAwLjIyNDg2MSwgMC4zOTA0OCwgMC41MTIwMjgsIDAuNzEwMzM5LCAwLjg4MzgxLCAxLjEyOTYyIiwgXAotICAgICAgICAgICIwLjA5Mzg5NiwgMC4yMzM2MTksIDAuMzkzNjcxLCAwLjUxMzIzMSwgMC43MDg2ODgsIDAuODgzMzU1LCAxLjEyOTY5Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDUyMTE0LCAwLjI0NzA1NywgMC40NDE3NjQsIDAuNTgwNzM4LCAwLjgwMzM0MywgMC45OTc3OTIsIDEuMjc2NjgiLCBcCi0gICAgICAgICAgIjAuMDYxODk0LCAwLjI1NzMwNCwgMC40NTIxMTIsIDAuNTkxMjEzLCAwLjgxMzYsIDEuMDA4MzIsIDEuMjg2MzEiLCBcCi0gICAgICAgICAgIjAuMDc1MDA5LCAwLjI3MDM3NSwgMC40NjUyMDMsIDAuNjA0MzQ1LCAwLjgyNzI4NSwgMS4wMjE0MywgMS4zMDAwNSIsIFwKLSAgICAgICAgICAiMC4wODg2LCAwLjI4MzM0MywgMC40Nzg0NDUsIDAuNjE3NDYzLCAwLjgzOTkyMSwgMS4wMzUxNiwgMS4zMTI1NSIsIFwKLSAgICAgICAgICAiMC4xMDIwMjgsIDAuMjk2NzIsIDAuNDkxOCwgMC42MzA4MTEsIDAuODUzMTc1LCAxLjA0ODExLCAxLjMyNjQiLCBcCi0gICAgICAgICAgIjAuMTIyNDQ0LCAwLjMxNzYwNywgMC41MTI2OTEsIDAuNjUxNzE2LCAwLjg3NDYzMSwgMS4wNjkwMiwgMS4zNDc4NiIsIFwKLSAgICAgICAgICAiMC4xMzg0NzcsIDAuMzM2MTM2LCAwLjUzMTIxNSwgMC42NzA0NTMsIDAuODkzMjM0LCAxLjA4NzUsIDEuMzY1OTciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODY1NjgsIDAuNDYxNDMzLCAwLjgzNTk5MSwgMS4xMDMyNiwgMS41MzMsIDEuOTA1MzksIDIuNDMyMDYiLCBcCi0gICAgICAgICAgIjAuMDg2NTQ5LCAwLjQ2MDYzOSwgMC44MzUzOTksIDEuMTAyNTcsIDEuNTI5NTYsIDEuOTA1MjUsIDIuNDM4NjciLCBcCi0gICAgICAgICAgIjAuMDg4ODQyLCAwLjQ2MTA2NiwgMC44MzUwNzgsIDEuMDk5NDcsIDEuNTI1MjIsIDEuOTA0MDUsIDIuNDI5NTgiLCBcCi0gICAgICAgICAgIjAuMDkzNzM0LCAwLjQ2MDg0MywgMC44MzM0ODYsIDEuMTAyMDQsIDEuNTI5OTUsIDEuODk4MjYsIDIuNDM4NTMiLCBcCi0gICAgICAgICAgIjAuMTAwNjAyLCAwLjQ1OTAxLCAwLjgzMTUzOCwgMS4xMDM4MywgMS41Mjk3OCwgMS45MDQwOSwgMi40NDM4NyIsIFwKLSAgICAgICAgICAiMC4xMTMyMjgsIDAuNDYxOTA5LCAwLjgzNTg2MiwgMS4xMDIxOSwgMS41MjM3NSwgMS45MDQ0NSwgMi40MjgyNCIsIFwKLSAgICAgICAgICAiMC4xMjYxNDMsIDAuNDY0MTA1LCAwLjgzNTU5MywgMS4wOTc5MSwgMS41MjM0NiwgMS45MDQsIDIuNDM1ODYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwODM5NCwgMC4wMDg0MDMsIDAuMDA4NDA0LCAwLjAwODQwNCwgMC4wMDg0MDUsIDAuMDA4NDA1LCAwLjAwODQwNCIsIFwKLSAgICAgICAgICAiMC4wMDgyOTYsIDAuMDA4MzU3LCAwLjAwODM2NiwgMC4wMDgzNjgsIDAuMDA4MzY5LCAwLjAwODM3MSwgMC4wMDgzNyIsIFwKLSAgICAgICAgICAiMC4wMDgyMzYsIDAuMDA4MzI0LCAwLjAwODM0OSwgMC4wMDgzNTIsIDAuMDA4MzU3LCAwLjAwODM1OCwgMC4wMDgzNTciLCBcCi0gICAgICAgICAgIjAuMDA4MTk3LCAwLjAwODMxNiwgMC4wMDgzMzYsIDAuMDA4MzQzLCAwLjAwODM0OCwgMC4wMDgzNTEsIDAuMDA4MzU1IiwgXAotICAgICAgICAgICIwLjAwODE3OCwgMC4wMDgzMDIsIDAuMDA4MzI3LCAwLjAwODMzNiwgMC4wMDgzNDMsIDAuMDA4MzQ2LCAwLjAwODM1MSIsIFwKLSAgICAgICAgICAiMC4wMDgxNTcsIDAuMDA4MjgyLCAwLjAwODMxNCwgMC4wMDgzMjYsIDAuMDA4MzM1LCAwLjAwODM0MSwgMC4wMDgzNDQiLCBcCi0gICAgICAgICAgIjAuMDA4MTUyLCAwLjAwODI2OSwgMC4wMDgzMDUsIDAuMDA4MzE2LCAwLjAwODMzMSwgMC4wMDgzMzQsIDAuMDA4MzQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTcwMSwgMC4wMDE3NDEsIDAuMDAxNzQ2LCAwLjAwMTc0NywgMC4wMDE3NDgsIDAuMDAxNzQ5LCAwLjAwMTc0OSIsIFwKLSAgICAgICAgICAiMC4wMDE1NTYsIDAuMDAxNzAyLCAwLjAwMTcyNCwgMC4wMDE3MywgMC4wMDE3MzYsIDAuMDAxNzM5LCAwLjAwMTc0MiIsIFwKLSAgICAgICAgICAiMC4wMDE0NTMsIDAuMDAxNjU5LCAwLjAwMTY5NywgMC4wMDE3MSwgMC4wMDE3MjEsIDAuMDAxNzI3LCAwLjAwMTczMiIsIFwKLSAgICAgICAgICAiMC4wMDEzOTQsIDAuMDAxNjIxLCAwLjAwMTY3MywgMC4wMDE2OSwgMC4wMDE3MDcsIDAuMDAxNzE1LCAwLjAwMTcyMyIsIFwKLSAgICAgICAgICAiMC4wMDEzNTYsIDAuMDAxNTksIDAuMDAxNjUyLCAwLjAwMTY3NCwgMC4wMDE2OTQsIDAuMDAxNzA0LCAwLjAwMTcxNCIsIFwKLSAgICAgICAgICAiMC4wMDEzMTksIDAuMDAxNTQ3LCAwLjAwMTYyLCAwLjAwMTY0NywgMC4wMDE2NzMsIDAuMDAxNjg4LCAwLjAwMTcwMSIsIFwKLSAgICAgICAgICAiMC4wMDEzLCAwLjAwMTUxNSwgMC4wMDE1OTUsIDAuMDAxNjI2LCAwLjAwMTY1NiwgMC4wMDE2NzMsIDAuMDAxNjg5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDY0NzMsIDAuMDA2NTA1LCAwLjAwNjUwOCwgMC4wMDY1MDksIDAuMDA2NTEsIDAuMDA2NTEsIDAuMDA2NTExIiwgXAotICAgICAgICAgICIwLjAwNjM4MiwgMC4wMDY1MSwgMC4wMDY1MjYsIDAuMDA2NTMxLCAwLjAwNjUzNiwgMC4wMDY1MzksIDAuMDA2NTQiLCBcCi0gICAgICAgICAgIjAuMDA2Mjg3LCAwLjAwNjQ3NSwgMC4wMDY1MTQsIDAuMDA2NTI0LCAwLjAwNjUzMSwgMC4wMDY1MzYsIDAuMDA2NTM5IiwgXAotICAgICAgICAgICIwLjAwNjIzNCwgMC4wMDY0NTgsIDAuMDA2NDk4LCAwLjAwNjUxMSwgMC4wMDY1MjIsIDAuMDA2NTMzLCAwLjAwNjUzNCIsIFwKLSAgICAgICAgICAiMC4wMDYyMDMsIDAuMDA2NDM2LCAwLjAwNjQ3NSwgMC4wMDY0OTUsIDAuMDA2NTE2LCAwLjAwNjUyNCwgMC4wMDY1MzEiLCBcCi0gICAgICAgICAgIjAuMDA2MTc2LCAwLjAwNjQwMiwgMC4wMDY0NTgsIDAuMDA2NDgzLCAwLjAwNjQ5OCwgMC4wMDY1MTIsIDAuMDA2NTIiLCBcCi0gICAgICAgICAgIjAuMDA2MTcyLCAwLjAwNjM3NiwgMC4wMDY0NDIsIDAuMDA2NDY4LCAwLjAwNjQ4OSwgMC4wMDY1MDIsIDAuMDA2NTEyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDE2OTIsIDAuMDAxNzQxLCAwLjAwMTc0NywgMC4wMDE3NDgsIDAuMDAxNzUsIDAuMDAxNzUsIDAuMDAxNzUyIiwgXAotICAgICAgICAgICIwLjAwMTUxNiwgMC4wMDE2OTQsIDAuMDAxNzIsIDAuMDAxNzI4LCAwLjAwMTczNiwgMC4wMDE3MzksIDAuMDAxNzQyIiwgXAotICAgICAgICAgICIwLjAwMTQwNCwgMC4wMDE2NDMsIDAuMDAxNjg5LCAwLjAwMTcwNCwgMC4wMDE3MTgsIDAuMDAxNzI1LCAwLjAwMTczMSIsIFwKLSAgICAgICAgICAiMC4wMDEzNTIsIDAuMDAxNjAxLCAwLjAwMTY2MiwgMC4wMDE2ODMsIDAuMDAxNzAyLCAwLjAwMTcxMSwgMC4wMDE3MjEiLCBcCi0gICAgICAgICAgIjAuMDAxMzEzLCAwLjAwMTU2MiwgMC4wMDE2MzQsIDAuMDAxNjYsIDAuMDAxNjg0LCAwLjAwMTY5NywgMC4wMDE3MDkiLCBcCi0gICAgICAgICAgIjAuMDAxMzAzLCAwLjAwMTUxNywgMC4wMDE2MDEsIDAuMDAxNjMyLCAwLjAwMTY2MiwgMC4wMDE2NzksIDAuMDAxNjk0IiwgXAotICAgICAgICAgICIwLjAwMTMwMywgMC4wMDE0ODUsIDAuMDAxNTc1LCAwLjAwMTYwOSwgMC4wMDE2NDQsIDAuMDAxNjYzLCAwLjAwMTY4MSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBOQU5EM0JYNCAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoTkFORDNCWDQpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC40Mjg2MDc7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEFOKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA4Nzc5OTc7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwODc3NTYzOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDg3Nzk5NzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDEyNzUsIDAuMDAxMjUyLCAwLjAwMTIzNiwgMC4wMDEyMjUsIDAuMDAxMjIsIDAuMDAxMjE2LCAwLjAwMTIxMyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzM2MSwgMC4wMDMzNDYsIDAuMDAzMzMyLCAwLjAwMzMyNiwgMC4wMDMzMjIsIDAuMDAzMzIsIDAuMDAzMzE3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDMzNTg1MTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDMzNTg1MTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDMzNTA3NjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDEyMjUsIDAuMDAxMjI0LCAwLjAwMTIyMywgMC4wMDEyMjMsIDAuMDAxMjIyLCAwLjAwMTIyMiwgMC4wMDEyMjIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDEyODEsIDAuMDAxMjQsIDAuMDAxMjM0LCAwLjAwMTIzMiwgMC4wMDEyMzEsIDAuMDAxMjMxLCAwLjAwMTIzIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihDKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDMwNzY5MTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDMwNzQyNDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDMwNzY5MTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA1NzUsIDAuMDAwNTc0LCAwLjAwMDU3MywgMC4wMDA1NzMsIDAuMDAwNTc0LCAwLjAwMDU3MywgMC4wMDA1NzMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDEzOSwgMC4wMDEzOTEsIDAuMDAxMzkxLCAwLjAwMTM5MSwgMC4wMDEzOTIsIDAuMDAxMzkzLCAwLjAwMTM5MyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjE1NjMwNTsKLSAgICBmdW5jdGlvbiA6ICIoISgoKCFBTikgQikgQykpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTgwOSwgMC4yMjcwODgsIDAuMzU0MDIxLCAwLjQ0NDU4MywgMC41ODk0MywgMC43MTYwODUsIDAuODk3MTA0IiwgXAotICAgICAgICAgICIwLjEwOTcxOCwgMC4yMzg3NzMsIDAuMzY1NjI0LCAwLjQ1NjI0MSwgMC42MDExLCAwLjcyNzgyLCAwLjkwODc4IiwgXAotICAgICAgICAgICIwLjEyNDcyMiwgMC4yNTM4MDYsIDAuMzgwNzQ4LCAwLjQ3MTMsIDAuNjE2MDYsIDAuNzQyNjEzLCAwLjkyMzg2MyIsIFwKLSAgICAgICAgICAiMC4xMzk5MDcsIDAuMjY5MDEsIDAuMzk1OTcyLCAwLjQ4NjUyNSwgMC42MzEzOTUsIDAuNzU4MDgzLCAwLjkzOTA3MSIsIFwKLSAgICAgICAgICAiMC4xNTQ2ODYsIDAuMjgzNzM2LCAwLjQxMDY3NywgMC41MDEyMzgsIDAuNjQ2MDk5LCAwLjc3Mjc4OCwgMC45NTM0MSIsIFwKLSAgICAgICAgICAiMC4xNzg2MTcsIDAuMzA3NTY0LCAwLjQzNDUwOSwgMC41MjUwNTYsIDAuNjY5OTMyLCAwLjc5NjYzOCwgMC45Nzc1OCIsIFwKLSAgICAgICAgICAiMC4xOTgzNjksIDAuMzI3NTY5LCAwLjQ1NDQ5MywgMC41NDUwNTgsIDAuNjg5OTA1LCAwLjgxNjY0MSwgMC45OTc2NzUiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzMyNzgsIDAuMzI0NTYsIDAuNTgwNzgxLCAwLjc2NDI4LCAxLjA1ODU1LCAxLjMxNjIzLCAxLjY4MjYxIiwgXAotICAgICAgICAgICIwLjA3MzM3MywgMC4zMjQ2MTUsIDAuNTgwNDM1LCAwLjc2NDI5NiwgMS4wNTg1MiwgMS4zMTUyNiwgMS42ODIyMyIsIFwKLSAgICAgICAgICAiMC4wNzMyNjksIDAuMzI0NTc2LCAwLjU4MDc4MiwgMC43NjQyNzYsIDEuMDU4MTgsIDEuMzE1NzQsIDEuNjgyNjEiLCBcCi0gICAgICAgICAgIjAuMDczMjQ5LCAwLjMyNDU5NiwgMC41ODA5MDIsIDAuNzY0ODUyLCAxLjA1ODUyLCAxLjMxNTM1LCAxLjY4MzUiLCBcCi0gICAgICAgICAgIjAuMDczNjEyLCAwLjMyNDU4MiwgMC41ODA5NTgsIDAuNzY0NDc5LCAxLjA1ODUyLCAxLjMxNDMxLCAxLjY4Mjg3IiwgXAotICAgICAgICAgICIwLjA3MzkwOSwgMC4zMjQ2NzQsIDAuNTgwOTcxLCAwLjc2NDgwNSwgMS4wNTg1LCAxLjMxNTIsIDEuNjgyMjIiLCBcCi0gICAgICAgICAgIjAuMDc1MDQyLCAwLjMyNDg2MywgMC41ODEwNywgMC43NjQ4NjMsIDEuMDU3OTgsIDEuMzE1MTksIDEuNjgyNjciKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNzA4OTksIDAuNjAxNTU2LCAxLjAzMTIxLCAxLjMzODc2LCAxLjgzMDU2LCAyLjI1ODY0LCAyLjg3MjY4IiwgXAotICAgICAgICAgICIwLjE4MjI1NSwgMC42MTMwNzcsIDEuMDQyODYsIDEuMzQ5NTEsIDEuODQwNDcsIDIuMjcxMTMsIDIuODg0NTIiLCBcCi0gICAgICAgICAgIjAuMTk3MTY3LCAwLjYyODA5LCAxLjA1Nzg1LCAxLjM2NDU2LCAxLjg1NTU2LCAyLjI4NTk5LCAyLjg5OTY1IiwgXAotICAgICAgICAgICIwLjIxMTc4MSwgMC42NDI3MDcsIDEuMDcyMzksIDEuMzgwMDIsIDEuODcxODMsIDIuMjk5ODksIDIuOTEzOTUiLCBcCi0gICAgICAgICAgIjAuMjI2NDE1LCAwLjY1NzQwMywgMS4wODcwOCwgMS4zOTQ4LCAxLjg4NTc1LCAyLjMxNTI4LCAyLjkyODcxIiwgXAotICAgICAgICAgICIwLjI0ODgyMiwgMC42Nzk3OTYsIDEuMTA5OTcsIDEuNDE2NzYsIDEuOTA4NywgMi4zMzg4OCwgMi45NTExNCIsIFwKLSAgICAgICAgICAiMC4yNjY4NzksIDAuNjk3ODM1LCAxLjEyODEsIDEuNDM0ODIsIDEuOTI1ODIsIDIuMzU2OCwgMi45NjkxNSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE4NTQ5OCwgMS4wMDAxMywgMS44MDI0LCAyLjM5OTE2LCAzLjMwMjcxLCA0LjEyODQ1LCA1LjI2OTUzIiwgXAotICAgICAgICAgICIwLjE4NjAwNCwgMC45OTk3OTcsIDEuODAzNjIsIDIuMzkyNSwgMy4zMjAzNiwgNC4xMjA0NywgNS4yNzQ2OSIsIFwKLSAgICAgICAgICAiMC4xODU4NjQsIDAuOTk5ODU3LCAxLjgwMzMxLCAyLjM5MjQ5LCAzLjMyMTI3LCA0LjExNTM5LCA1LjI3NDc5IiwgXAotICAgICAgICAgICIwLjE4NTg4NiwgMS4wMDA1MiwgMS44MDIyLCAyLjM5Nzg4LCAzLjMwMjM5LCA0LjEyODQzLCA1LjI2OTQ4IiwgXAotICAgICAgICAgICIwLjE4NTg4NiwgMS4wMDAyMSwgMS44MDk3NCwgMi4zOTkwOCwgMy4zMDYzOCwgNC4xMjkwNCwgNS4yNjkyNyIsIFwKLSAgICAgICAgICAiMC4xODU5MjIsIDAuOTk5MDU4LCAxLjgwMzYyLCAyLjM4MDEsIDMuMzAxOTIsIDQuMTA4OTksIDUuMjc0MTYiLCBcCi0gICAgICAgICAgIjAuMTg1NzE4LCAwLjk5NzU3OCwgMS44MDM2NywgMi4zOTAzOCwgMy4zMjE0MywgNC4xMjk2OSwgNS4yNzM5NiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzNDc1NiwgMC4xNjExNTcsIDAuMjg3MjUxLCAwLjM3NzE3NywgMC41MjEyODQsIDAuNjQ3MTMsIDAuODI3MzU4IiwgXAotICAgICAgICAgICIwLjA0NjM5NiwgMC4xNzI4NiwgMC4yOTg5LCAwLjM4OTAwNiwgMC41MzI5MTgsIDAuNjU5MTQ2LCAwLjgzOTE4NyIsIFwKLSAgICAgICAgICAiMC4wNjE0LCAwLjE4NzY5OCwgMC4zMTM4MDgsIDAuNDAzNjMxLCAwLjU0Nzc0OCwgMC42NzM2OCwgMC44NTQwODQiLCBcCi0gICAgICAgICAgIjAuMDc2MTU3LCAwLjIwMTYxMywgMC4zMjc3NiwgMC40MTc4MjIsIDAuNTYxODM1LCAwLjY4Mzk3OSwgMC44NjQwMTEiLCBcCi0gICAgICAgICAgIjAuMDkwMjkyLCAwLjIxNzA2NCwgMC4zNDIzNiwgMC40MzIzMzYsIDAuNTc2MjIxLCAwLjcwMjI1OCwgMC44NzczNDkiLCBcCi0gICAgICAgICAgIjAuMTEwNDA2LCAwLjI0MDc3OCwgMC4zNjU3OTgsIDAuNDU1NjIsIDAuNTk5NTcsIDAuNzI1NDQ5LCAwLjkwNTQzNiIsIFwKLSAgICAgICAgICAiMC4xMjU5ODgsIDAuMjYxNDUzLCAwLjM4NjQxNywgMC40NzU2NywgMC42MTk5NDIsIDAuNzQ1ODg0LCAwLjkyNTcwMSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2MDE4MywgMC4zMTYzMjgsIDAuNTcyMDY3LCAwLjc1NDU0MiwgMS4wNDcxNiwgMS4zMDI3LCAxLjY2ODU1IiwgXAotICAgICAgICAgICIwLjA2MDU5OSwgMC4zMTYxOSwgMC41NzIxMjYsIDAuNzU1MzIyLCAxLjA0Njg1LCAxLjMwMzE0LCAxLjY2ODU3IiwgXAotICAgICAgICAgICIwLjA2NDcwMywgMC4zMTYzMzgsIDAuNTcyMDY0LCAwLjc1NDY1LCAxLjA0NzY3LCAxLjMwMjc2LCAxLjY2ODU4IiwgXAotICAgICAgICAgICIwLjA3MTQ1OCwgMC4zMTYzMjksIDAuNTcxODY4LCAwLjc1NTIxMywgMS4wNDc1OCwgMS4zMDMwNywgMS42Njg1OCIsIFwKLSAgICAgICAgICAiMC4wNzkzOTQsIDAuMzE3MTY3LCAwLjU3MjE3NSwgMC43NTUwOTcsIDEuMDQ2OTQsIDEuMzAyNjMsIDEuNjY4NTYiLCBcCi0gICAgICAgICAgIjAuMDk0MDU1LCAwLjMyMTUwOSwgMC41NzIwNTIsIDAuNzU0NzczLCAxLjA0NzEzLCAxLjMwMjYzLCAxLjY2ODA1IiwgXAotICAgICAgICAgICIwLjEwNzcxMSwgMC4zMjcxNTEsIDAuNTczNTcsIDAuNzU0NTc4LCAxLjA0NzExLCAxLjMwMjk3LCAxLjY2OCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExNDg3MSwgMC41NDUyMzMsIDAuOTc1MjEzLCAxLjI4MTYyLCAxLjc3MTksIDIuMjAyNTUsIDIuODE1NDciLCBcCi0gICAgICAgICAgIjAuMTI1MDM5LCAwLjU1NTQ4MywgMC45ODUyNDMsIDEuMjkyOTIsIDEuNzgzMDUsIDIuMjEzMzQsIDIuODI3MyIsIFwKLSAgICAgICAgICAiMC4xMzc1MDcsIDAuNTY4NTY4LCAwLjk5ODk4OSwgMS4zMDU0NCwgMS43OTc0NSwgMi4yMjYzMiwgMi44Mzk4MSIsIFwKLSAgICAgICAgICAiMC4xNTAwMTEsIDAuNTgxMzIsIDEuMDExNDEsIDEuMzE4MjYsIDEuODA5NTEsIDIuMjM5MywgMi44NTI4NCIsIFwKLSAgICAgICAgICAiMC4xNjI0ODksIDAuNTkzOTU0LCAxLjAyNDM3LCAxLjMzMTE5LCAxLjgyMjQxLCAyLjI1MjA3LCAyLjg2NTczIiwgXAotICAgICAgICAgICIwLjE4Mjg3NSwgMC42MTQzMTksIDEuMDQ0NzIsIDEuMzUxNDgsIDEuODQzMjQsIDIuMjczNTYsIDIuODg2IiwgXAotICAgICAgICAgICIwLjIwMDc3MywgMC42MzIwMzksIDEuMDYyOTMsIDEuMzY5MzksIDEuODYwOTMsIDIuMjkxMjksIDIuOTAzODYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xODU0MjYsIDAuOTkzMjcxLCAxLjgwMDY0LCAyLjM5MDI1LCAzLjMxNjM4LCA0LjEyOTEzLCA1LjI3MzkxIiwgXAotICAgICAgICAgICIwLjE4NTQyNywgMC45OTc2MDYsIDEuODExNjksIDIuMzc3NTQsIDMuMzE4NjksIDQuMTE1NDIsIDUuMjY2NDIiLCBcCi0gICAgICAgICAgIjAuMTg1NDE1LCAwLjk5NDQyOCwgMS44MDA5OCwgMi4zOTAyMywgMy4zMDI5NSwgNC4xMjksIDUuMjY5OCIsIFwKLSAgICAgICAgICAiMC4xODU4NTQsIDAuOTk0NDQ2LCAxLjgxNjU2LCAyLjM5ODA3LCAzLjMyMjMyLCA0LjExNzEyLCA1LjI3MTMiLCBcCi0gICAgICAgICAgIjAuMTg3NDY3LCAwLjk5OTk2MiwgMS44MTYzMiwgMi4zOTgwNiwgMy4zMjIzNCwgNC4xMTUyMiwgNS4yNzExNyIsIFwKLSAgICAgICAgICAiMC4xOTI1NzEsIDAuOTk3NjAzLCAxLjgwNDIyLCAyLjM3OTg5LCAzLjMyMjU4LCA0LjEyOTczLCA1LjI3NDA3IiwgXAotICAgICAgICAgICIwLjE5ODE1LCAwLjk5ODYzNSwgMS44MDA2MSwgMi4zODAyOSwgMy4zMjI0NSwgNC4xMjk2MiwgNS4yNzQwNyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzMjU0LCAwLjE1ODY5MSwgMC4yODQ3NzIsIDAuMzc0ODUsIDAuNTE5MTAxLCAwLjY0NTE3MywgMC44MjU0MDkiLCBcCi0gICAgICAgICAgIjAuMDQ0MTUsIDAuMTcwNDEsIDAuMjk2NTAzLCAwLjM4NjY0MywgMC41MzA2NTYsIDAuNjU2OTg1LCAwLjgzNzA3OCIsIFwKLSAgICAgICAgICAiMC4wNTkwMDMsIDAuMTg0ODg4LCAwLjMxMDkyMywgMC4zOTk1MDcsIDAuNTQzMjkzLCAwLjY2OTc0NiwgMC44NDk2NDUiLCBcCi0gICAgICAgICAgIjAuMDczOTI4LCAwLjE5OTg3MiwgMC4zMjU4NjMsIDAuNDE1OTA4LCAwLjU2MDI1LCAwLjY4NjMzMiwgMC44NjYzNzYiLCBcCi0gICAgICAgICAgIjAuMDg3NTQsIDAuMjE0MTcxLCAwLjMzOTkzNiwgMC40MzAxNjgsIDAuNTc0MDMzLCAwLjcwMDEsIDAuODc5MTY5IiwgXAotICAgICAgICAgICIwLjEwNjc3NywgMC4yMzgzMDYsIDAuMzYzNjE0LCAwLjQ1MzI5OSwgMC41OTczMzQsIDAuNzIzMzI3LCAwLjkwMzU0NCIsIFwKLSAgICAgICAgICAiMC4xMjE1OTcsIDAuMjU5MDI2LCAwLjM4NDIyNywgMC40NzM3NjYsIDAuNjE3ODA3LCAwLjc0MzcyMSwgMC45MjM3MTkiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTc1ODMsIDAuMzE0MTIyLCAwLjU3MDcyLCAwLjc1NDc4LCAxLjA0NzU4LCAxLjMwNDIsIDEuNjcyNjUiLCBcCi0gICAgICAgICAgIjAuMDU4MjkxLCAwLjMxNDEwMywgMC41NzA2OTQsIDAuNzU0ODYyLCAxLjA0OTksIDEuMzA0MiwgMS42NzA4NSIsIFwKLSAgICAgICAgICAiMC4wNjI3OSwgMC4zMTQyMjgsIDAuNTcwNzMsIDAuNzU0NzY0LCAxLjA0ODE4LCAxLjMwNTQ0LCAxLjY3MDU3IiwgXAotICAgICAgICAgICIwLjA2OTc0MSwgMC4zMTQyODQsIDAuNTcxMzM2LCAwLjc1NTk1NCwgMS4wNDcyNywgMS4zMDM5OCwgMS42NzUwMyIsIFwKLSAgICAgICAgICAiMC4wNzgxNDgsIDAuMzE1NTMxLCAwLjU3MDc1NywgMC43NTQzMDQsIDEuMDQ3MjIsIDEuMzA3MTEsIDEuNjc0NTIiLCBcCi0gICAgICAgICAgIjAuMDkzMTQ4LCAwLjMxOTgwOSwgMC41NzEwMTEsIDAuNzU1NTE3LCAxLjA0NzA5LCAxLjMwMzgxLCAxLjY3MDkiLCBcCi0gICAgICAgICAgIjAuMTA2OTUsIDAuMzI2MDczLCAwLjU3MjczMiwgMC43NTQxMTEsIDEuMDQ3NTMsIDEuMzAzNzIsIDEuNjcwNTQiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDQ5NTMsIDAuNTM1MDMyLCAwLjk2NTIwNSwgMS4yNzE5MywgMS43NjI5NSwgMi4xOTE0NCwgMi44MDYxOSIsIFwKLSAgICAgICAgICAiMC4xMTM5MiwgMC41NDQ3MzQsIDAuOTc0MzA1LCAxLjI4MTM2LCAxLjc3MjEsIDIuMjAxNzgsIDIuODE2MTMiLCBcCi0gICAgICAgICAgIjAuMTI1NTk4LCAwLjU1NjczNCwgMC45ODY3ODEsIDEuMjkzNTcsIDEuNzg0NTMsIDIuMjE0NjIsIDIuODI3OTEiLCBcCi0gICAgICAgICAgIjAuMTM3NDI4LCAwLjU2ODkwMiwgMC45OTkwOTEsIDEuMzA1NjQsIDEuNzk3NDYsIDIuMjI2NTMsIDIuODQwODIiLCBcCi0gICAgICAgICAgIjAuMTUwNTYyLCAwLjU4MjA0OSwgMS4wMTIyNiwgMS4zMTg5OSwgMS44MDk3MywgMi4yNDEwOCwgMi44NTM4NSIsIFwKLSAgICAgICAgICAiMC4xNzAyNjcsIDAuNjAwNTA3LCAxLjAzMDY3LCAxLjMzNzc3LCAxLjgyODgxLCAyLjI1OTMzLCAyLjg3MjM3IiwgXAotICAgICAgICAgICIwLjE4ODA2OCwgMC42MTgyNTEsIDEuMDQ4MzUsIDEuMzU1ODEsIDEuODQ3NzYsIDIuMjc3NTgsIDIuODkwNDEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xODU3MTEsIDAuOTk0MjYxLCAxLjgxNjI3LCAyLjM5NzgxLCAzLjMyMjM3LCA0LjEyNDEyLCA1LjI3MTYyIiwgXAotICAgICAgICAgICIwLjE4NTM1NCwgMC45OTIzODUsIDEuODA5NzQsIDIuMzkzNDgsIDMuMzE3OTIsIDQuMTI4NCwgNS4yNjIzNCIsIFwKLSAgICAgICAgICAiMC4xODQ2NiwgMC45OTc2MzksIDEuODE0NjgsIDIuMzgwMjYsIDMuMzE4MDMsIDQuMTE1NTQsIDUuMjc0MDEiLCBcCi0gICAgICAgICAgIjAuMTg2MzA2LCAxLjAwMDI5LCAxLjgwMjIxLCAyLjM4OTg0LCAzLjMyMjU0LCA0LjEyNzUsIDUuMjY0MTUiLCBcCi0gICAgICAgICAgIjAuMTg5NDU3LCAxLjAwMDI1LCAxLjgxNjQ2LCAyLjM4ODc5LCAzLjMxNzgyLCA0LjExMDY1LCA1LjI3NDYyIiwgXAotICAgICAgICAgICIwLjE5NzczNiwgMC45OTg3NjIsIDEuODAyMzcsIDIuMzgwMywgMy4zMTg4MSwgNC4xMjkzLCA1LjI2ODE2IiwgXAotICAgICAgICAgICIwLjIwNjI5LCAxLjAwMDA4LCAxLjgxNDczLCAyLjM4MjA3LCAzLjMwMjk0LCA0LjExMTAyLCA1LjI3MTk4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQU4iOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA3OTMxLCAwLjAwNzk0NiwgMC4wMDc5NDksIDAuMDA3OTQ4LCAwLjAwNzk0NywgMC4wMDc5NDYsIDAuMDA3OTQ0IiwgXAotICAgICAgICAgICIwLjAwNzkwNSwgMC4wMDc5MjMsIDAuMDA3OTI0LCAwLjAwNzkyNSwgMC4wMDc5MjMsIDAuMDA3OTIzLCAwLjAwNzkyMiIsIFwKLSAgICAgICAgICAiMC4wMDc4ODMsIDAuMDA3OTA2LCAwLjAwNzkwOCwgMC4wMDc5MSwgMC4wMDc5MDcsIDAuMDA3OTA4LCAwLjAwNzkwOCIsIFwKLSAgICAgICAgICAiMC4wMDc4NjYsIDAuMDA3ODkzLCAwLjAwNzg5NiwgMC4wMDc4OTUsIDAuMDA3ODk1LCAwLjAwNzg5NSwgMC4wMDc4OTQiLCBcCi0gICAgICAgICAgIjAuMDA3ODQyLCAwLjAwNzg3OCwgMC4wMDc4ODIsIDAuMDA3ODgzLCAwLjAwNzg4MywgMC4wMDc4ODQsIDAuMDA3ODgzIiwgXAotICAgICAgICAgICIwLjAwNzgyOCwgMC4wMDc4NzMsIDAuMDA3ODc4LCAwLjAwNzg4MSwgMC4wMDc4ODEsIDAuMDA3ODgyLCAwLjAwNzg4MSIsIFwKLSAgICAgICAgICAiMC4wMDc4MjEsIDAuMDA3ODY3LCAwLjAwNzg3MywgMC4wMDc4NzUsIDAuMDA3ODc3LCAwLjAwNzg3NywgMC4wMDc4NzgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjk4OCwgMC4wMDcwNjUsIDAuMDA3MDc1LCAwLjAwNzA3OCwgMC4wMDcwOCwgMC4wMDcwODIsIDAuMDA3MDgzIiwgXAotICAgICAgICAgICIwLjAwNjk2NCwgMC4wMDcwNDcsIDAuMDA3MDU4LCAwLjAwNzA2MSwgMC4wMDcwNjQsIDAuMDA3MDY1LCAwLjAwNzA2NyIsIFwKLSAgICAgICAgICAiMC4wMDY5MzgsIDAuMDA3MDMsIDAuMDA3MDQzLCAwLjAwNzA0NywgMC4wMDcwNTEsIDAuMDA3MDUyLCAwLjAwNzA1NCIsIFwKLSAgICAgICAgICAiMC4wMDY5MSwgMC4wMDcwMTMsIDAuMDA3MDMsIDAuMDA3MDM2LCAwLjAwNzA0LCAwLjAwNzA0MywgMC4wMDcwNDUiLCBcCi0gICAgICAgICAgIjAuMDA2ODkyLCAwLjAwNzAwMiwgMC4wMDcwMjIsIDAuMDA3MDI4LCAwLjAwNzAzNCwgMC4wMDcwMzYsIDAuMDA3MDM5IiwgXAotICAgICAgICAgICIwLjAwNjg2OCwgMC4wMDY5ODUsIDAuMDA3MDA4LCAwLjAwNzAxNiwgMC4wMDcwMjMsIDAuMDA3MDI3LCAwLjAwNzAzIiwgXAotICAgICAgICAgICIwLjAwNjg1NSwgMC4wMDY5NzgsIDAuMDA3MDA0LCAwLjAwNzAxMywgMC4wMDcwMjEsIDAuMDA3MDI2LCAwLjAwNzAzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDYzNTQsIDAuMDA2MzU4LCAwLjAwNjM1OSwgMC4wMDYzNTcsIDAuMDA2MzU4LCAwLjAwNjM1NywgMC4wMDYzNTciLCBcCi0gICAgICAgICAgIjAuMDA2MzE5LCAwLjAwNjM1MSwgMC4wMDYzNTQsIDAuMDA2MzU1LCAwLjAwNjM1NiwgMC4wMDYzNTYsIDAuMDA2MzU2IiwgXAotICAgICAgICAgICIwLjAwNjI4NiwgMC4wMDYzNDMsIDAuMDA2MzUsIDAuMDA2MzUyLCAwLjAwNjM1NCwgMC4wMDYzNTUsIDAuMDA2MzU0IiwgXAotICAgICAgICAgICIwLjAwNjI1NywgMC4wMDYzMjcsIDAuMDA2MzQ1LCAwLjAwNjM0OCwgMC4wMDYzNTEsIDAuMDA2MzUzLCAwLjAwNjM1NCIsIFwKLSAgICAgICAgICAiMC4wMDYyMzcsIDAuMDA2MzI3LCAwLjAwNjM0LCAwLjAwNjM0NCwgMC4wMDYzNDgsIDAuMDA2MzQ5LCAwLjAwNjM0OSIsIFwKLSAgICAgICAgICAiMC4wMDYyMTUsIDAuMDA2MzE1LCAwLjAwNjMzNSwgMC4wMDYzMzksIDAuMDA2MzQ0LCAwLjAwNjM0NiwgMC4wMDYzNDkiLCBcCi0gICAgICAgICAgIjAuMDA2MjAxLCAwLjAwNjMwOSwgMC4wMDYzMjgsIDAuMDA2MzMsIDAuMDA2MzQsIDAuMDA2MzQ1LCAwLjAwNjM0NCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyMzU4LCAwLjAwMjM3NywgMC4wMDIzNzksIDAuMDAyMzc5LCAwLjAwMjM4LCAwLjAwMjM4LCAwLjAwMjM4IiwgXAotICAgICAgICAgICIwLjAwMjI4NCwgMC4wMDIzNiwgMC4wMDIzNjksIDAuMDAyMzcyLCAwLjAwMjM3NSwgMC4wMDIzNzYsIDAuMDAyMzgzIiwgXAotICAgICAgICAgICIwLjAwMjIyMiwgMC4wMDIzMzksIDAuMDAyMzU3LCAwLjAwMjM2MywgMC4wMDIzNjgsIDAuMDAyMzcxLCAwLjAwMjM3MyIsIFwKLSAgICAgICAgICAiMC4wMDIxODMsIDAuMDAyMzIxLCAwLjAwMjM0NiwgMC4wMDIzNTQsIDAuMDAyMzYyLCAwLjAwMjM2NSwgMC4wMDIzNjkiLCBcCi0gICAgICAgICAgIjAuMDAyMTU0LCAwLjAwMjMwNCwgMC4wMDIzMzUsIDAuMDAyMzQ2LCAwLjAwMjM1NSwgMC4wMDIzNiwgMC4wMDIzNjUiLCBcCi0gICAgICAgICAgIjAuMDAyMTI0LCAwLjAwMjI4LCAwLjAwMjMxOSwgMC4wMDIzMzMsIDAuMDAyMzQ1LCAwLjAwMjM1MiwgMC4wMDIzNTgiLCBcCi0gICAgICAgICAgIjAuMDAyMTA3LCAwLjAwMjI2MiwgMC4wMDIzMDYsIDAuMDAyMzIyLCAwLjAwMjMzNywgMC4wMDIzNDUsIDAuMDAyMzUzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQ5OTQsIDAuMDA1MDA5LCAwLjAwNTAxMSwgMC4wMDUwMSwgMC4wMDUwMSwgMC4wMDUwMTIsIDAuMDA1MDExIiwgXAotICAgICAgICAgICIwLjAwNDk3NiwgMC4wMDUwMzYsIDAuMDA1MDQzLCAwLjAwNTA0NywgMC4wMDUwNDcsIDAuMDA1MDQ4LCAwLjAwNTA0OSIsIFwKLSAgICAgICAgICAiMC4wMDQ5MzMsIDAuMDA1MDMzLCAwLjAwNTA0NCwgMC4wMDUwNDksIDAuMDA1MDUsIDAuMDA1MDU1LCAwLjAwNTA1NiIsIFwKLSAgICAgICAgICAiMC4wMDQ4OTgsIDAuMDA1MDEzLCAwLjAwNTAzOCwgMC4wMDUwNDQsIDAuMDA1MDQ5LCAwLjAwNTA1NCwgMC4wMDUwNTQiLCBcCi0gICAgICAgICAgIjAuMDA0ODczLCAwLjAwNTAxNCwgMC4wMDUwMzYsIDAuMDA1MDQzLCAwLjAwNTA0OSwgMC4wMDUwNTIsIDAuMDA1MDU2IiwgXAotICAgICAgICAgICIwLjAwNDgzNywgMC4wMDQ5OTcsIDAuMDA1MDI2LCAwLjAwNTAzNSwgMC4wMDUwNDQsIDAuMDA1MDQ4LCAwLjAwNTA1MiIsIFwKLSAgICAgICAgICAiMC4wMDQ4MjQsIDAuMDA0OTg3LCAwLjAwNTAxOSwgMC4wMDUwMjgsIDAuMDA1MDQxLCAwLjAwNTA0NSwgMC4wMDUwNDkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjM1MSwgMC4wMDIzNzQsIDAuMDAyMzc2LCAwLjAwMjM3NywgMC4wMDIzNzgsIDAuMDAyMzc4LCAwLjAwMjM3OCIsIFwKLSAgICAgICAgICAiMC4wMDIyNjEsIDAuMDAyMzUzLCAwLjAwMjM2NSwgMC4wMDIzNjgsIDAuMDAyMzcxLCAwLjAwMjM3MywgMC4wMDIzNzkiLCBcCi0gICAgICAgICAgIjAuMDAyMTksIDAuMDAyMzI4LCAwLjAwMjM1LCAwLjAwMjM1NywgMC4wMDIzNjMsIDAuMDAyMzY2LCAwLjAwMjM2OSIsIFwKLSAgICAgICAgICAiMC4wMDIxNDcsIDAuMDAyMzA3LCAwLjAwMjMzNywgMC4wMDIzNDcsIDAuMDAyMzU1LCAwLjAwMjM2LCAwLjAwMjM2NCIsIFwKLSAgICAgICAgICAiMC4wMDIxMjgsIDAuMDAyMjkxLCAwLjAwMjMyNiwgMC4wMDIzMzgsIDAuMDAyMzQ5LCAwLjAwMjM1NSwgMC4wMDIzNiIsIFwKLSAgICAgICAgICAiMC4wMDIxMDIsIDAuMDAyMjYzLCAwLjAwMjMwOCwgMC4wMDIzMjMsIDAuMDAyMzM4LCAwLjAwMjM0NSwgMC4wMDIzNTMiLCBcCi0gICAgICAgICAgIjAuMDAyMDkxLCAwLjAwMjI0MSwgMC4wMDIyOTIsIDAuMDAyMzEsIDAuMDAyMzI4LCAwLjAwMjMzNywgMC4wMDIzNDYiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogTkFORDNCWEwgKgotICogLS0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKE5BTkQzQlhMKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMDc1NjgyOTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQU4pICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY0MzY1MjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2NDM0MjI7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjQzNjUyOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDIwNCwgMC4wMDAxODYsIDAuMDAwMTc2LCAwLjAwMDE3MywgMC4wMDAxNzEsIDAuMDAwMTY5LCAwLjAwMDE3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxMDk3LCAwLjAwMTA4NCwgMC4wMDEwNzcsIDAuMDAxMDc0LCAwLjAwMTA3MiwgMC4wMDEwNzEsIDAuMDAxMDcyIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA1OTQ2MDE7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNTk0NjAxOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDU5MzMxNjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxNjUsIDAuMDAwMTY1LCAwLjAwMDE2NSwgMC4wMDAxNjUsIDAuMDAwMTY1LCAwLjAwMDE2NSwgMC4wMDAxNjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxNzEsIDAuMDAwMTY3LCAwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiwgMC4wMDAxNjYiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEMpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYxNjEyODsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MTU3ODQ7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjE2MTI4OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDA2MywgMC4wMDAwNjMsIDAuMDAwMDYzLCAwLjAwMDA2MywgMC4wMDAwNjMsIDAuMDAwMDYzLCAwLjAwMDA2MyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDE4OCwgMC4wMDAxODgsIDAuMDAwMTg4LCAwLjAwMDE4OCwgMC4wMDAxODgsIDAuMDAwMTg4LCAwLjAwMDE4OCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjAyNTQ3NDY7Ci0gICAgZnVuY3Rpb24gOiAiKCEoKCghQU4pIEIpIEMpKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQU4iOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE3OTQ4OSwgMC4yMDQ4MTUsIDAuNDMyNDQzLCAwLjgxMTU3OCwgMS4xOTA1LCAyLjA3Mzk1LCAyLjU3OTIiLCBcCi0gICAgICAgICAgIjAuMTkxMzkyLCAwLjIxNjcxNCwgMC40NDQzNjIsIDAuODIzNSwgMS4yMDIwNywgMi4wODY1MiwgMi41OTA5NyIsIFwKLSAgICAgICAgICAiMC4yMDY2MjQsIDAuMjMxOTY1LCAwLjQ1OTYwOCwgMC44Mzg2NCwgMS4yMTc1MSwgMi4xMDE1OCwgMi42MDY4MiIsIFwKLSAgICAgICAgICAiMC4yMjE2NzIsIDAuMjQ2OTk0LCAwLjQ3NDY2NSwgMC44NTM3NiwgMS4yMzI2NiwgMi4xMTYwOSwgMi42MjE4NyIsIFwKLSAgICAgICAgICAiMC4yMzU4NzIsIDAuMjYxMjMzLCAwLjQ4ODg3MSwgMC44Njc4NjEsIDEuMjQ2OTksIDIuMTMwODksIDIuNjM1NzUiLCBcCi0gICAgICAgICAgIjAuMjU2NzQsIDAuMjgyMDc1LCAwLjUwOTczMywgMC44ODg3NywgMS4yNjc2NiwgMi4xNTIxNiwgMi42NTY4OSIsIFwKLSAgICAgICAgICAiMC4yNzI4NywgMC4yOTgyMDUsIDAuNTI1ODQ5LCAwLjkwNDgxLCAxLjI4MzksIDIuMTY4MywgMi42NzI5MyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yODc3OTQsIDAuMzM4OTMsIDAuNzk5MzUsIDEuNTY3NTMsIDIuMzM0NTIsIDQuMTI1NTcsIDUuMTQ2MzkiLCBcCi0gICAgICAgICAgIjAuMjg3OCwgMC4zMzg5MTIsIDAuNzk5NDEyLCAxLjU2Njk4LCAyLjMzNTE4LCA0LjEyNDkxLCA1LjE0OTAxIiwgXAotICAgICAgICAgICIwLjI4Nzc3NywgMC4zMzg4MTQsIDAuNzk5MjcyLCAxLjU2Nzg0LCAyLjMzNDA5LCA0LjEyNDU1LCA1LjE0NzU0IiwgXAotICAgICAgICAgICIwLjI4NzgwNSwgMC4zMzg5MTcsIDAuNzk5MTgyLCAxLjU2NzgsIDIuMzM1MTgsIDQuMTIzNzMsIDUuMTQ3NzQiLCBcCi0gICAgICAgICAgIjAuMjg3Njk5LCAwLjMzODk5MiwgMC43OTkzOTQsIDEuNTY2OCwgMi4zMzQyNywgNC4xMjQ1OCwgNS4xNDY1OSIsIFwKLSAgICAgICAgICAiMC4yODc3OTIsIDAuMzM4OTMzLCAwLjc5OTMwNSwgMS41Njc2MiwgMi4zMzUwNSwgNC4xMjUzLCA1LjE0NzY2IiwgXAotICAgICAgICAgICIwLjI4Nzk2OCwgMC4zMzkwNzEsIDAuNzk5ODM5LCAxLjU2NjM3LCAyLjMzNTA1LCA0LjEyNDk5LCA1LjE0NzUyIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjUzNzQ3NSwgMC42MjYxNjYsIDEuNDI0MDIsIDIuNzUzMzUsIDQuMDgxNDQsIDcuMTgwODYsIDguOTUyMDMiLCBcCi0gICAgICAgICAgIjAuNTQ5MjM5LCAwLjYzNzU5OSwgMS40MzU1LCAyLjc2NDksIDQuMDkzMDQsIDcuMTkyNTIsIDguOTYzNyIsIFwKLSAgICAgICAgICAiMC41NjM4MzUsIDAuNjUyMjA3LCAxLjQ1MDE2LCAyLjc3OTU4LCA0LjEwNzczLCA3LjIwNzIsIDguOTc4MzgiLCBcCi0gICAgICAgICAgIjAuNTc3NDEyLCAwLjY2NTk1NywgMS40NjQ3MiwgMi43OTM0LCA0LjEyMTYxLCA3LjIyMTAxLCA4Ljk5MjIiLCBcCi0gICAgICAgICAgIjAuNTg5NTg4LCAwLjY3ODE4NCwgMS40NzY1MiwgMi44MDU4NCwgNC4xMzM5MiwgNy4yMzMyMywgOS4wMDQ1IiwgXAotICAgICAgICAgICIwLjYwNjg0NSwgMC42OTU1MjksIDEuNDkzNDcsIDIuODIyODgsIDQuMTUxMTksIDcuMjUwNjksIDkuMDIxOTEiLCBcCi0gICAgICAgICAgIjAuNjIwMzI0LCAwLjcwOTA0LCAxLjUwNjcyLCAyLjgzNjM3LCA0LjE2NDcxLCA3LjI2NDIxLCA5LjAzNTM4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjkxNzE4OCwgMS4wODkzOSwgMi41OTAzMiwgNS4wNzk5NCwgNy41NTU5NywgMTMuMzQ4OSwgMTYuNjYwOSIsIFwKLSAgICAgICAgICAiMC45MjI3NDIsIDEuMDg4MzIsIDIuNTkwMDEsIDUuMDc5NzksIDcuNTU1NjIsIDEzLjM0ODgsIDE2LjY2MDkiLCBcCi0gICAgICAgICAgIjAuOTIyNzIsIDEuMDg4MzcsIDIuNTkwMDIsIDUuMDc5OCwgNy41NTU2NCwgMTMuMzQ4OCwgMTYuNjYwOSIsIFwKLSAgICAgICAgICAiMC45MTcwMDYsIDEuMDg4NiwgMi41NzY1MywgNS4wNzY4NCwgNy41NTU3LCAxMy4zNDg3LCAxNi42NjA5IiwgXAotICAgICAgICAgICIwLjkxNjY2OSwgMS4wODI4NiwgMi41OTk1NSwgNS4wNzk5NiwgNy41NTU3MywgMTMuMzQ4NSwgMTYuNjYwOSIsIFwKLSAgICAgICAgICAiMC45MTYzNTUsIDEuMDg5NDIsIDIuNTgwNzMsIDUuMDc0NjEsIDcuNTU1NjIsIDEzLjM0ODcsIDE2LjY2MDQiLCBcCi0gICAgICAgICAgIjAuOTIyNzE0LCAxLjA4OTc5LCAyLjU5MTU3LCA1LjA3Mzc5LCA3LjU1NTYyLCAxMy4zNDg3LCAxNi42NjA0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE0NTU4OCwgMC4xNzA4NiwgMC4zOTgxOTMsIDAuNzc3MzAzLCAxLjE1NTk4LCAyLjAzOTc0LCAyLjU0NTE1IiwgXAotICAgICAgICAgICIwLjE1NzI2MSwgMC4xODI1NDgsIDAuNDEwMDE5LCAwLjc4ODcyMywgMS4xNjc2OSwgMi4wNTE2OCwgMi41NTY4IiwgXAotICAgICAgICAgICIwLjE3MjEwMywgMC4xOTczNjMsIDAuNDI0NjM4LCAwLjgwMzY1NywgMS4xODIxOSwgMi4wNjYyMywgMi41NzEwMyIsIFwKLSAgICAgICAgICAiMC4xODYyMDUsIDAuMjExNDA3LCAwLjQzODY4MywgMC44MTM2NzgsIDEuMTkyNDYsIDIuMDc1OTQsIDIuNTgxNjYiLCBcCi0gICAgICAgICAgIjAuMjAxMzUxLCAwLjIyNjA5NiwgMC40NTMxNjMsIDAuODMxMDk2LCAxLjIwNjE4LCAyLjA5MDA0LCAyLjU5NDU2IiwgXAotICAgICAgICAgICIwLjIyNTA0OCwgMC4yNTAxOTQsIDAuNDc2MzY2LCAwLjg1NTE1MiwgMS4yMzE5OSwgMi4xMTA5MSwgMi42MTU3NSIsIFwKLSAgICAgICAgICAiMC4yNDU1NzgsIDAuMjcwOTYzLCAwLjQ5NjcwNiwgMC44NzUzMSwgMS4yNTM5NywgMi4xMjk4MSwgMi42MzQzIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI4NDE4MSwgMC4zMzUyNTgsIDAuNzk1NTA2LCAxLjU2MzE0LCAyLjMzMDMxLCA0LjEyMDkxLCA1LjE0NTY2IiwgXAotICAgICAgICAgICIwLjI4NDA4OSwgMC4zMzUzLCAwLjc5NTczNywgMS41NjM0NywgMi4zMzAzNCwgNC4xMjExOSwgNS4xNDM5NSIsIFwKLSAgICAgICAgICAiMC4yODQwNjksIDAuMzM1Mzc3LCAwLjc5NTY0NSwgMS41NjMxNCwgMi4zMzA5NCwgNC4xMjEyNCwgNS4xNDUwNiIsIFwKLSAgICAgICAgICAiMC4yODQyMzEsIDAuMzM1MjQ2LCAwLjc5NTY1OCwgMS41NjM1NywgMi4zMzA4NSwgNC4xMTk5LCA1LjE0NTI3IiwgXAotICAgICAgICAgICIwLjI4NTc5NywgMC4zMzYwNzUsIDAuNzk2MTk0LCAxLjU2MzE0LCAyLjMzMDYzLCA0LjEyMTI3LCA1LjE0NDk0IiwgXAotICAgICAgICAgICIwLjI5MDcyNiwgMC4zMzk3OTksIDAuNzk1NjQyLCAxLjU2MywgMi4zMzAxMywgNC4xMjEyNCwgNS4xNDQ2NyIsIFwKLSAgICAgICAgICAiMC4yOTczMDksIDAuMzQ1MDIzLCAwLjc5NTc1NSwgMS41NjM1OCwgMi4zMjk3OCwgNC4xMjEzNSwgNS4xNDQ2NCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC41MDYxNjYsIDAuNTk0Njk1LCAxLjM5MjY1LCAyLjcyMTc1LCA0LjA0OTk1LCA3LjE0OTQyLCA4LjkyMDU5IiwgXAotICAgICAgICAgICIwLjUxNzA2OSwgMC42MDU3ODIsIDEuNDAzNTEsIDIuNzMyNDMsIDQuMDYxMDIsIDcuMTYwNTYsIDguOTMxNzciLCBcCi0gICAgICAgICAgIjAuNTMwMjE1LCAwLjYxOTIxOCwgMS40MTY4LCAyLjc0NjI5LCA0LjA3NDQ5LCA3LjE3Mzk5LCA4Ljk0NTE4IiwgXAotICAgICAgICAgICIwLjU0MzAyOSwgMC42MzE5OTEsIDEuNDMwMzksIDIuNzU5MjQsIDQuMDg3NTUsIDcuMTg3MDYsIDguOTU4MjUiLCBcCi0gICAgICAgICAgIjAuNTU2MTU0LCAwLjY0NDkyMiwgMS40NDMxOCwgMi43NzI1NSwgNC4xMDA4NiwgNy4yMDAzOCwgOC45NzE2MSIsIFwKLSAgICAgICAgICAiMC41NzY5NTksIDAuNjY1NzM2LCAxLjQ2NDIyLCAyLjc5NCwgNC4xMjIwMSwgNy4yMjEzLCA4Ljk5MjYiLCBcCi0gICAgICAgICAgIjAuNTk1MjE2LCAwLjY4Mzk3MiwgMS40ODIxNCwgMi44MTE4OSwgNC4xNDAyMywgNy4yMzk4NSwgOS4wMTEwOCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC45MjI4MzksIDEuMDg3MjksIDIuNTgzOTgsIDUuMDc2MzYsIDcuNTU1ODgsIDEzLjM0ODgsIDE2LjY2MDQiLCBcCi0gICAgICAgICAgIjAuOTE4MjM4LCAxLjA5MDU1LCAyLjU3ODcsIDUuMDc5MzIsIDcuNTU1NjUsIDEzLjM0ODgsIDE2LjY2MDkiLCBcCi0gICAgICAgICAgIjAuOTIyNTM4LCAxLjA5MDEsIDIuNTg5OTQsIDUuMDc5NzUsIDcuNTU1NjMsIDEzLjM0ODgsIDE2LjY2MDkiLCBcCi0gICAgICAgICAgIjAuOTIxNTExLCAxLjA4NDI5LCAyLjU3NjA3LCA1LjA3OTYzLCA3LjU1NTYxLCAxMy4zNDg3LCAxNi42NjA0IiwgXAotICAgICAgICAgICIwLjkyMDk5NiwgMS4wODI1NiwgMi41OTgzNCwgNS4wNzUyMywgNy41NTU2MiwgMTMuMzQ4NywgMTYuNjYwNCIsIFwKLSAgICAgICAgICAiMC45MTcwNTcsIDEuMDg3MiwgMi41ODExOCwgNS4wNjk1NSwgNy41NTU3OCwgMTMuMzQ4NiwgMTYuNjYwOSIsIFwKLSAgICAgICAgICAiMC45MjEyOTksIDEuMDgyNTMsIDIuNTkzMjMsIDUuMDczOTYsIDcuNTU1NTQsIDEzLjM0ODIsIDE2LjY2MDkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTQyODM1LCAwLjE2ODA2NCwgMC4zOTUzMjYsIDAuNzc0MzQyLCAxLjE1Mjk1LCAyLjAzNzM2LCAyLjU0MiIsIFwKLSAgICAgICAgICAiMC4xNTQ0OTksIDAuMTc5NzU1LCAwLjQwNzAxNSwgMC43ODYyNzMsIDEuMTY0ODksIDIuMDQ5MDYsIDIuNTUzODciLCBcCi0gICAgICAgICAgIjAuMTY4OTA5LCAwLjE5NDE1NiwgMC40MjA3ODQsIDAuNzk3NzEyLCAxLjE3NjQsIDIuMDYwNjYsIDIuNTY1NjEiLCBcCi0gICAgICAgICAgIjAuMTgzNTU0LCAwLjIwODY4NSwgMC40MzU5NDUsIDAuODEwODMyLCAxLjE4OTYzLCAyLjA3MzY4LCAyLjU3ODg4IiwgXAotICAgICAgICAgICIwLjE5ODI1LCAwLjIyMzQ1MywgMC40NTA0MjIsIDAuODI0Nzc2LCAxLjIwMzc2LCAyLjA4NzY3LCAyLjU5MjIyIiwgXAotICAgICAgICAgICIwLjIyMjI1MiwgMC4yNDc0NTksIDAuNDczNTc1LCAwLjg1MjMyNiwgMS4yMjU4OCwgMi4xMDk2NiwgMi42MTQ4MiIsIFwKLSAgICAgICAgICAiMC4yNDI5MDksIDAuMjY4MTEzLCAwLjQ5MjcwNCwgMC44NzI0MTYsIDEuMjQ1NjIsIDIuMTI4MzYsIDIuNjMzODMiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjgxMDgxLCAwLjMzMjM1MywgMC43OTI5NSwgMS41NjI1NywgMi4zMzA4MiwgNC4xMjA1OCwgNS4xNDc1IiwgXAotICAgICAgICAgICIwLjI4MTgwNiwgMC4zMzIzMTMsIDAuNzkyOTU3LCAxLjU2MTgyLCAyLjMyODkxLCA0LjEyMDY1LCA1LjE0NjI0IiwgXAotICAgICAgICAgICIwLjI4MTEwMywgMC4zMzMxNCwgMC43OTI5ODcsIDEuNTYyMzIsIDIuMzM0MzIsIDQuMTIwNiwgNS4xNDUxNyIsIFwKLSAgICAgICAgICAiMC4yODEzNDEsIDAuMzMzMDU3LCAwLjc5MzEzNSwgMS41NjA3MiwgMi4zMjkzNCwgNC4xMjEwOCwgNS4xNDY0NiIsIFwKLSAgICAgICAgICAiMC4yODM4MTIsIDAuMzMzMjgxLCAwLjc5MzEzNywgMS41NjA2NCwgMi4zMzAxMywgNC4xMjA0NCwgNS4xNDUwNiIsIFwKLSAgICAgICAgICAiMC4yODg5OTEsIDAuMzM3MzIsIDAuNzkyODc3LCAxLjU2MTA1LCAyLjMyODgxLCA0LjEyMDY3LCA1LjE0MzYyIiwgXAotICAgICAgICAgICIwLjI5NTAwNSwgMC4zNDMxMSwgMC43OTM4MDcsIDEuNTY0NjksIDIuMzMwMDksIDQuMTI5NjEsIDUuMTQ3MjQiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuNDk1NTM5LCAwLjU4Mzk4MywgMS4zODE3NiwgMi43MTEwMywgNC4wMzkyLCA3LjEzODY5LCA4LjkwOTg5IiwgXAotICAgICAgICAgICIwLjUwNTI5NSwgMC41OTM2MzEsIDEuMzkxOSwgMi43MjE0NywgNC4wNDkyOCwgNy4xNDg3NSwgOC45MTk5NSIsIFwKLSAgICAgICAgICAiMC41MTc0NDUsIDAuNjA2NTc1LCAxLjQwNDQ2LCAyLjczMzYxLCA0LjA2MTg5LCA3LjE2MTM5LCA4LjkzMjU1IiwgXAotICAgICAgICAgICIwLjUyOTc1NiwgMC42MTg1MjEsIDEuNDE3MDEsIDIuNzQ2MTEsIDQuMDc0NDIsIDcuMTczOTMsIDguOTQ1MTUiLCBcCi0gICAgICAgICAgIjAuNTQyMjg5LCAwLjYzMTAwOSwgMS40Mjk3NiwgMi43NTg4OCwgNC4wODcwMSwgNy4xODY1MiwgOC45NTc3MiIsIFwKLSAgICAgICAgICAiMC41NjIwMTUsIDAuNjUwNzc1LCAxLjQ0OTY4LCAyLjc3ODYsIDQuMTA2OTMsIDcuMjA2NTgsIDguOTc3NzQiLCBcCi0gICAgICAgICAgIjAuNTc5NDk2LCAwLjY2ODUwNCwgMS40NjY2NSwgMi43OTYzNiwgNC4xMjQ3OSwgNy4yMjQxMiwgOC45OTU0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjkxNTYwNywgMS4wOTA0MywgMi41ODA1MSwgNS4wNzY2NywgNy41NTU4NSwgMTMuMzQ4OCwgMTYuNjYwOSIsIFwKLSAgICAgICAgICAiMC45MjI2MTIsIDEuMDg3MDksIDIuNTk5NDYsIDUuMDgwMTgsIDcuNTU1OSwgMTMuMzQ4OCwgMTYuNjYwOSIsIFwKLSAgICAgICAgICAiMC45MjEzMjcsIDEuMDgyMTYsIDIuNTk3NTcsIDUuMDc1MjcsIDcuNTU1NjksIDEzLjM0ODcsIDE2LjY2MDQiLCBcCi0gICAgICAgICAgIjAuOTIwNzE4LCAxLjA4OTAzLCAyLjU5NzYzLCA1LjA3NTIsIDcuNTU1NjIsIDEzLjM0ODcsIDE2LjY2MDQiLCBcCi0gICAgICAgICAgIjAuOTIyMzQ2LCAxLjA5MDIyLCAyLjU5ODczLCA1LjA3OTg5LCA3LjU1NTY1LCAxMy4zNDg4LCAxNi42NjA5IiwgXAotICAgICAgICAgICIwLjkyMDEzNiwgMS4wODc2MywgMi41OTkxOCwgNS4wNzI3LCA3LjU1NTUsIDEzLjM0ODcsIDE2LjY2MDQiLCBcCi0gICAgICAgICAgIjAuOTE4MDE0LCAxLjA4OTY3LCAyLjU4MDk5LCA1LjA3Njg5LCA3LjU1NTY1LCAxMy4zNDg1LCAxNi42NjA5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQU4iOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTM1NCwgMC4wMDEzNTQsIDAuMDAxMzU0LCAwLjAwMTM1MywgMC4wMDEzNTMsIDAuMDAxMzUyLCAwLjAwMTM1MSIsIFwKLSAgICAgICAgICAiMC4wMDEzMzUsIDAuMDAxMzM1LCAwLjAwMTMzNSwgMC4wMDEzMzQsIDAuMDAxMzM0LCAwLjAwMTMzNCwgMC4wMDEzMzIiLCBcCi0gICAgICAgICAgIjAuMDAxMzI0LCAwLjAwMTMyNCwgMC4wMDEzMjQsIDAuMDAxMzI0LCAwLjAwMTMyNCwgMC4wMDEzMjIsIDAuMDAxMzIyIiwgXAotICAgICAgICAgICIwLjAwMTMyLCAwLjAwMTMyMSwgMC4wMDEzMjEsIDAuMDAxMzIsIDAuMDAxMzIsIDAuMDAxMzE5LCAwLjAwMTMxOCIsIFwKLSAgICAgICAgICAiMC4wMDEzMTgsIDAuMDAxMzE4LCAwLjAwMTMxOSwgMC4wMDEzMTksIDAuMDAxMzE4LCAwLjAwMTMxNywgMC4wMDEzMTciLCBcCi0gICAgICAgICAgIjAuMDAxMzE4LCAwLjAwMTMxOCwgMC4wMDEzMTksIDAuMDAxMzE5LCAwLjAwMTMxOSwgMC4wMDEzMTgsIDAuMDAxMzE3IiwgXAotICAgICAgICAgICIwLjAwMTMxOSwgMC4wMDEzMiwgMC4wMDEzMjEsIDAuMDAxMzIsIDAuMDAxMzIsIDAuMDAxMzE5LCAwLjAwMTMxOSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTYzMSwgMC4wMDE2MzIsIDAuMDAxNjMyLCAwLjAwMTYzMiwgMC4wMDE2MzIsIDAuMDAxNjMyLCAwLjAwMTYzMiIsIFwKLSAgICAgICAgICAiMC4wMDE2MTksIDAuMDAxNjE5LCAwLjAwMTYyLCAwLjAwMTYyLCAwLjAwMTYyLCAwLjAwMTYyLCAwLjAwMTYyIiwgXAotICAgICAgICAgICIwLjAwMTYxMSwgMC4wMDE2MTEsIDAuMDAxNjEzLCAwLjAwMTYxMywgMC4wMDE2MTMsIDAuMDAxNjEzLCAwLjAwMTYxMyIsIFwKLSAgICAgICAgICAiMC4wMDE2MDYsIDAuMDAxNjA2LCAwLjAwMTYwOCwgMC4wMDE2MDksIDAuMDAxNjA5LCAwLjAwMTYwOSwgMC4wMDE2MDkiLCBcCi0gICAgICAgICAgIjAuMDAxNjA0LCAwLjAwMTYwNSwgMC4wMDE2MDcsIDAuMDAxNjA4LCAwLjAwMTYwOSwgMC4wMDE2MDksIDAuMDAxNjA5IiwgXAotICAgICAgICAgICIwLjAwMTYwMiwgMC4wMDE2MDMsIDAuMDAxNjA2LCAwLjAwMTYwOCwgMC4wMDE2MDgsIDAuMDAxNjA4LCAwLjAwMTYwOCIsIFwKLSAgICAgICAgICAiMC4wMDE2MDIsIDAuMDAxNjAzLCAwLjAwMTYwNywgMC4wMDE2MDgsIDAuMDAxNjA5LCAwLjAwMTYwOSwgMC4wMDE2MDkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDEwOTQsIDAuMDAxMDk0LCAwLjAwMTA5NCwgMC4wMDEwOTQsIDAuMDAxMDk0LCAwLjAwMTA5MywgMC4wMDEwOTMiLCBcCi0gICAgICAgICAgIjAuMDAxMDkzLCAwLjAwMTA5MywgMC4wMDEwOTQsIDAuMDAxMDk1LCAwLjAwMTA5NCwgMC4wMDEwOTQsIDAuMDAxMDkzIiwgXAotICAgICAgICAgICIwLjAwMTA5MiwgMC4wMDEwOTIsIDAuMDAxMDk0LCAwLjAwMTA5NCwgMC4wMDEwOTMsIDAuMDAxMDkzLCAwLjAwMTA5MyIsIFwKLSAgICAgICAgICAiMC4wMDEwOTEsIDAuMDAxMDkxLCAwLjAwMTA5MywgMC4wMDEwOTQsIDAuMDAxMDkzLCAwLjAwMTA5MywgMC4wMDEwOTMiLCBcCi0gICAgICAgICAgIjAuMDAxMDksIDAuMDAxMDksIDAuMDAxMDkzLCAwLjAwMTA5MywgMC4wMDEwOTMsIDAuMDAxMDkzLCAwLjAwMTA5MyIsIFwKLSAgICAgICAgICAiMC4wMDEwODgsIDAuMDAxMDg5LCAwLjAwMTA5MiwgMC4wMDEwOTMsIDAuMDAxMDkzLCAwLjAwMTA5MywgMC4wMDEwOTIiLCBcCi0gICAgICAgICAgIjAuMDAxMDg3LCAwLjAwMTA4OCwgMC4wMDEwOSwgMC4wMDEwOTIsIDAuMDAxMDkzLCAwLjAwMTA5MywgMC4wMDEwOTIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDAzNTYsIDAuMDAwMzU3LCAwLjAwMDM1NywgMC4wMDAzNTcsIDAuMDAwMzU3LCAwLjAwMDM1NywgMC4wMDAzNTciLCBcCi0gICAgICAgICAgIjAuMDAwMzU0LCAwLjAwMDM1NCwgMC4wMDAzNTYsIDAuMDAwMzU3LCAwLjAwMDM1NywgMC4wMDAzNTcsIDAuMDAwMzU3IiwgXAotICAgICAgICAgICIwLjAwMDM1MSwgMC4wMDAzNTIsIDAuMDAwMzU1LCAwLjAwMDM1NiwgMC4wMDAzNTYsIDAuMDAwMzU3LCAwLjAwMDM1NiIsIFwKLSAgICAgICAgICAiMC4wMDAzNDgsIDAuMDAwMzQ5LCAwLjAwMDM1NCwgMC4wMDAzNTUsIDAuMDAwMzU2LCAwLjAwMDM1NiwgMC4wMDAzNTYiLCBcCi0gICAgICAgICAgIjAuMDAwMzQ2LCAwLjAwMDM0NywgMC4wMDAzNTMsIDAuMDAwMzU1LCAwLjAwMDM1NSwgMC4wMDAzNTYsIDAuMDAwMzU2IiwgXAotICAgICAgICAgICIwLjAwMDM0MiwgMC4wMDAzNDQsIDAuMDAwMzUxLCAwLjAwMDM1NCwgMC4wMDAzNTUsIDAuMDAwMzU2LCAwLjAwMDM1NiIsIFwKLSAgICAgICAgICAiMC4wMDAzMzksIDAuMDAwMzQxLCAwLjAwMDM0OSwgMC4wMDAzNTMsIDAuMDAwMzU0LCAwLjAwMDM1NSwgMC4wMDAzNTYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDA4OTUsIDAuMDAwODk1LCAwLjAwMDg5NSwgMC4wMDA4OTUsIDAuMDAwODk1LCAwLjAwMDg5NSwgMC4wMDA4OTUiLCBcCi0gICAgICAgICAgIjAuMDAwODk4LCAwLjAwMDg5OSwgMC4wMDA5LCAwLjAwMDksIDAuMDAwOSwgMC4wMDA5LCAwLjAwMDkiLCBcCi0gICAgICAgICAgIjAuMDAwODk4LCAwLjAwMDg5OCwgMC4wMDA5LCAwLjAwMDkwMSwgMC4wMDA5MDEsIDAuMDAwOTAxLCAwLjAwMDkwMSIsIFwKLSAgICAgICAgICAiMC4wMDA4OTYsIDAuMDAwODk2LCAwLjAwMDksIDAuMDAwOTAxLCAwLjAwMDkwMSwgMC4wMDA5MDIsIDAuMDAwOTAyIiwgXAotICAgICAgICAgICIwLjAwMDg5NSwgMC4wMDA4OTYsIDAuMDAwOSwgMC4wMDA5MDEsIDAuMDAwOTAxLCAwLjAwMDkwMiwgMC4wMDA5MDIiLCBcCi0gICAgICAgICAgIjAuMDAwODkzLCAwLjAwMDg5NCwgMC4wMDA4OTksIDAuMDAwOSwgMC4wMDA5MDEsIDAuMDAwOTAyLCAwLjAwMDkwMiIsIFwKLSAgICAgICAgICAiMC4wMDA4OTEsIDAuMDAwODkyLCAwLjAwMDg5NSwgMC4wMDA5LCAwLjAwMDkwMSwgMC4wMDA5MDEsIDAuMDAwOTAyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwMzU2LCAwLjAwMDM1NiwgMC4wMDAzNTcsIDAuMDAwMzU3LCAwLjAwMDM1NywgMC4wMDAzNTcsIDAuMDAwMzU3IiwgXAotICAgICAgICAgICIwLjAwMDM1MywgMC4wMDAzNTQsIDAuMDAwMzU2LCAwLjAwMDM1NiwgMC4wMDAzNTcsIDAuMDAwMzU3LCAwLjAwMDM1NyIsIFwKLSAgICAgICAgICAiMC4wMDAzNDksIDAuMDAwMzUsIDAuMDAwMzU0LCAwLjAwMDM1NiwgMC4wMDAzNTYsIDAuMDAwMzU2LCAwLjAwMDM1NiIsIFwKLSAgICAgICAgICAiMC4wMDAzNDYsIDAuMDAwMzQ4LCAwLjAwMDM1MywgMC4wMDAzNTUsIDAuMDAwMzU2LCAwLjAwMDM1NiwgMC4wMDAzNTYiLCBcCi0gICAgICAgICAgIjAuMDAwMzQzLCAwLjAwMDM0NSwgMC4wMDAzNTIsIDAuMDAwMzU0LCAwLjAwMDM1NSwgMC4wMDAzNTYsIDAuMDAwMzU2IiwgXAotICAgICAgICAgICIwLjAwMDM0LCAwLjAwMDM0MiwgMC4wMDAzNSwgMC4wMDAzNTMsIDAuMDAwMzU0LCAwLjAwMDM1NSwgMC4wMDAzNTYiLCBcCi0gICAgICAgICAgIjAuMDAwMzM3LCAwLjAwMDMzOSwgMC4wMDAzNDgsIDAuMDAwMzUyLCAwLjAwMDM1NCwgMC4wMDAzNTUsIDAuMDAwMzU1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogTkFORDNYMSAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChOQU5EM1gxKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMDk4MzA0NzsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwODIxNTM5OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDgyMTUzOTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA4MTg3NjU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzA2LCAwLjAwMDMwNiwgMC4wMDAzMDYsIDAuMDAwMzA2LCAwLjAwMDMwNiwgMC4wMDAzMDYsIDAuMDAwMzA2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzA2LCAwLjAwMDMwNywgMC4wMDAzMDcsIDAuMDAwMzA3LCAwLjAwMDMwNywgMC4wMDAzMDcsIDAuMDAwMzA3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA4NTQ0NjY7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwODU0NDY2OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDg1MjUzOTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAzMDYsIDAuMDAwMzA2LCAwLjAwMDMwNiwgMC4wMDAzMDUsIDAuMDAwMzA2LCAwLjAwMDMwNiwgMC4wMDAzMDYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAzMDgsIDAuMDAwMzA4LCAwLjAwMDMwOCwgMC4wMDAzMDgsIDAuMDAwMzA4LCAwLjAwMDMwOCwgMC4wMDAzMDgiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEMpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDg3NzcxNjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA4NzY5MDE7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwODc3NzE2OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDE3NCwgMC4wMDAxNzMsIDAuMDAwMTczLCAwLjAwMDE3MywgMC4wMDAxNzMsIDAuMDAwMTczLCAwLjAwMDE3MyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDM0NywgMC4wMDAzNDgsIDAuMDAwMzQ4LCAwLjAwMDM0OCwgMC4wMDAzNDgsIDAuMDAwMzQ4LCAwLjAwMDM0OCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjA0Mzk4MjsKLSAgICBmdW5jdGlvbiA6ICIoISgoQSBCKSBDKSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5MDU5MiwgMC4xMzM2NDcsIDAuMzc2NzYzLCAwLjU5MTExNCwgMC44NzY1MzYsIDEuNDQ3NTcsIDEuODA0OTkiLCBcCi0gICAgICAgICAgIjAuMTAyMDg3LCAwLjE0NTEzNywgMC4zODgyMjcsIDAuNjAyNTEsIDAuODg4Mjc0LCAxLjQ1OTMyLCAxLjgxNTk2IiwgXAotICAgICAgICAgICIwLjExNjYyMywgMC4xNTk1NTcsIDAuNDAyMDg1LCAwLjYxNDM2LCAwLjg5OTc5MiwgMS40NzE0MiwgMS44Mjc2MSIsIFwKLSAgICAgICAgICAiMC4xMzE2OTEsIDAuMTc0Mjc3LCAwLjQxNzE1MSwgMC42MzA2NDQsIDAuOTEyOTc1LCAxLjQ4NDQ5LCAxLjg0MDg0IiwgXAotICAgICAgICAgICIwLjE0NjUwNCwgMC4xODk0NCwgMC40MzE2NjEsIDAuNjQ1OTI3LCAwLjkyNjI4LCAxLjQ5NzUzLCAxLjg1NDA5IiwgXAotICAgICAgICAgICIwLjE3MDIsIDAuMjEzMTYxLCAwLjQ1NDk4MSwgMC42NjkxMzgsIDAuOTU0NzMxLCAxLjUxOTc0LCAxLjg3NjkxIiwgXAotICAgICAgICAgICIwLjE5MDk1NiwgMC4yMzM5MywgMC40NzUzMjYsIDAuNjg5NTU3LCAwLjk3NTEzOSwgMS41Mzk1NywgMS44OTYxNCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNzE0NTYsIDAuMjU4MzksIDAuNzUxOTE5LCAxLjE4NjcsIDEuNzY2MTgsIDIuOTI1OTYsIDMuNjUxNTgiLCBcCi0gICAgICAgICAgIjAuMTcxNDE1LCAwLjI1ODQ3LCAwLjc1MTUyNiwgMS4xODY2NiwgMS43Njc1OCwgMi45MjczMywgMy42NTEwNiIsIFwKLSAgICAgICAgICAiMC4xNzE1NywgMC4yNTg1MzksIDAuNzUxOTE5LCAxLjE4NjUsIDEuNzY2MiwgMi45MjY4LCAzLjY1MTU3IiwgXAotICAgICAgICAgICIwLjE3Mzc3MywgMC4yNTg4NDUsIDAuNzUyMDU1LCAxLjE4NjcsIDEuNzY2MzcsIDIuOTI2NzksIDMuNjUxNjEiLCBcCi0gICAgICAgICAgIjAuMTc3NzA3LCAwLjI2MDczMiwgMC43NTIwMzEsIDEuMTg2NjEsIDEuNzY2MTMsIDIuOTI2NDMsIDMuNjUxMDgiLCBcCi0gICAgICAgICAgIjAuMTg2MjE2LCAwLjI2NjQ2NywgMC43NTE0ODMsIDEuMTg2NDQsIDEuNzY2NSwgMi45MjczOSwgMy42NTE4NCIsIFwKLSAgICAgICAgICAiMC4xOTU2MDUsIDAuMjczMjQsIDAuNzUxOTYyLCAxLjE4NjU1LCAxLjc2NzQxLCAyLjkyNjgsIDMuNjUyNDYiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzAyMzU3LCAwLjQ0ODk3NywgMS4yODAwNiwgMi4wMTMyNywgMi45OTEyMSwgNC45NDY4OCwgNi4xNjkwMSIsIFwKLSAgICAgICAgICAiMC4zMTM4NjYsIDAuNDYwNjUyLCAxLjI5MjgsIDIuMDI3MzgsIDMuMDA0NjQsIDQuOTU5MjMsIDYuMTgxMjQiLCBcCi0gICAgICAgICAgIjAuMzI2NTA1LCAwLjQ3MzYsIDEuMzA1NTMsIDIuMDQwMTMsIDMuMDE3MTIsIDQuOTcyNSwgNi4xOTQyNiIsIFwKLSAgICAgICAgICAiMC4zMzg2NDUsIDAuNDg1ODMyLCAxLjMxODA4LCAyLjA1Mjc1LCAzLjAyOTMxLCA0Ljk4NDgsIDYuMjA2NTkiLCBcCi0gICAgICAgICAgIjAuMzUwNTM5LCAwLjQ5NzQ0LCAxLjMzMDQ0LCAyLjA2NDExLCAzLjA0MjAyLCA0Ljk5Njc1LCA2LjIxODUyIiwgXAotICAgICAgICAgICIwLjM2ODkzNywgMC41MTYwOCwgMS4zNDgzNiwgMi4wODIxNywgMy4wNjEwOCwgNS4wMTU1OCwgNi4yMzc2MyIsIFwKLSAgICAgICAgICAiMC4zODUyNDQsIDAuNTMyNDg0LCAxLjM2NDc1LCAyLjA5ODksIDMuMDc2ODIsIDUuMDMyMjMsIDYuMjU0MDQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuNTMyNTMyLCAwLjgwODA4NiwgMi4zNzgyMywgMy43NDg2MiwgNS41ODU5NCwgOS4yNDc0MiwgMTEuNTM3NCIsIFwKLSAgICAgICAgICAiMC41Mjg3OSwgMC44MTA3NDgsIDIuMzg3MTEsIDMuNzQ0MDgsIDUuNTg3NzMsIDkuMjQ5MTksIDExLjUzNjYiLCBcCi0gICAgICAgICAgIjAuNTMxNzUsIDAuODEwMDAzLCAyLjM3ODU0LCAzLjc2NTAzLCA1LjU4NjY3LCA5LjI0NywgMTEuNTM3NiIsIFwKLSAgICAgICAgICAiMC41MzIzNjksIDAuODA2NzQ0LCAyLjM4NzcsIDMuNzQ2NTcsIDUuNTg2NzgsIDkuMjQ3MjksIDExLjUzNjkiLCBcCi0gICAgICAgICAgIjAuNTI4NzU1LCAwLjgwOTI0OSwgMi4zNjc2LCAzLjc1ODM3LCA1LjU4NzY0LCA5LjI0Njk2LCAxMS41Mzc3IiwgXAotICAgICAgICAgICIwLjUzMTE1NSwgMC44MDgxOTcsIDIuMzY4MjUsIDMuNzQ4MiwgNS41ODc4OCwgOS4yNDg3NCwgMTEuNTM2NiIsIFwKLSAgICAgICAgICAiMC41MzE4MjQsIDAuODA5NzA4LCAyLjM4MDgzLCAzLjc0ODQ1LCA1LjU4ODM4LCA5LjI0NzQzLCAxMS41Mzc2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4OTAzOCwgMC4xMzIyODYsIDAuMzc3MDI1LCAwLjU5Mjk0OSwgMC44ODA5NjEsIDEuNDU3MDQsIDEuODE2NDMiLCBcCi0gICAgICAgICAgIjAuMTAwNzI3LCAwLjE0Mzk4MSwgMC4zODg4NDUsIDAuNjA0NTk3LCAwLjg5MjY0NCwgMS40Njg1NiwgMS44MjgxIiwgXAotICAgICAgICAgICIwLjExNTU4NCwgMC4xNTg4MiwgMC40MDM0NywgMC42MTk2MywgMC45MDc1OTIsIDEuNDgzNTksIDEuODQyOTkiLCBcCi0gICAgICAgICAgIjAuMTMwMjYzLCAwLjE3MzQ3NywgMC40MTc2NjUsIDAuNjMyNzUyLCAwLjkxNzg1MywgMS40OTM1NiwgMS44NTI2NyIsIFwKLSAgICAgICAgICAiMC4xNDUwNTIsIDAuMTg4MjIxLCAwLjQzMjE2MywgMC42NDgwMzEsIDAuOTMwNzI4LCAxLjUwNjY1LCAxLjg2NjU1IiwgXAotICAgICAgICAgICIwLjE2ODcwMiwgMC4yMTIwNDYsIDAuNDU1NDY5LCAwLjY3MTM1OCwgMC45NTkwMTIsIDEuNTI3NDQsIDEuODg3NTQiLCBcCi0gICAgICAgICAgIjAuMTg5NDg3LCAwLjIzMjYxOCwgMC40NzU0OCwgMC42OTE1ODksIDAuOTc5NDg2LCAxLjU0NjksIDEuOTA2ODYiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTcwMDIyLCAwLjI1Nzc0LCAwLjc1NDM0LCAxLjE5MjYsIDEuNzc3NDcsIDIuOTQ2NTgsIDMuNjc3MzMiLCBcCi0gICAgICAgICAgIjAuMTcwMDQzLCAwLjI1NzcyOSwgMC43NTUwMzQsIDEuMTkzMjksIDEuNzc3MzcsIDIuOTQ2NTcsIDMuNjc3NDciLCBcCi0gICAgICAgICAgIjAuMTcwMjA5LCAwLjI1NzgyNywgMC43NTQ3MDksIDEuMTkyOTgsIDEuNzc3NTEsIDIuOTQ2NiwgMy42NzczMyIsIFwKLSAgICAgICAgICAiMC4xNzI1MDIsIDAuMjU4MTc3LCAwLjc1NDk5NywgMS4xOTI5OSwgMS43Nzc1NCwgMi45NDY1NiwgMy42NzYwNCIsIFwKLSAgICAgICAgICAiMC4xNzY1NTIsIDAuMjYwMDU0LCAwLjc1NDk3OSwgMS4xOTMzMiwgMS43NzcyOSwgMi45NDY1NiwgMy42Nzc3NiIsIFwKLSAgICAgICAgICAiMC4xODUzODYsIDAuMjY1OTAzLCAwLjc1NDYwNiwgMS4xOTI5OSwgMS43NzY5NSwgMi45NDcxOCwgMy42NzcyNSIsIFwKLSAgICAgICAgICAiMC4xOTUwNzMsIDAuMjczMDEsIDAuNzU0Mzc1LCAxLjE5MjU5LCAxLjc3NzU0LCAyLjk0NjM1LCAzLjY3NzM0Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI5Nzk0MiwgMC40NDQ5MTUsIDEuMjc1NywgMi4wMTAxOSwgMi45ODc2NiwgNC45NDMwNywgNi4xNjQ5MyIsIFwKLSAgICAgICAgICAiMC4zMDgzNjQsIDAuNDU1MjM4LCAxLjI4Njg0LCAyLjAyMTIsIDIuOTk4ODUsIDQuOTUzODMsIDYuMTc1ODkiLCBcCi0gICAgICAgICAgIjAuMzIxMDY4LCAwLjQ2ODA4MiwgMS4yOTk5NywgMi4wMzM5NCwgMy4wMTE4NSwgNC45NjY5NiwgNi4xODg4NCIsIFwKLSAgICAgICAgICAiMC4zMzM3MjIsIDAuNDgwNzIyLCAxLjMxMzE3LCAyLjA0NjI5LCAzLjAyNTMsIDQuOTc5NzcsIDYuMjAxODMiLCBcCi0gICAgICAgICAgIjAuMzQ2Mzk2LCAwLjQ5MzU1OSwgMS4zMjYzNCwgMi4wNjA4OCwgMy4wMzc4OCwgNC45OTI4OCwgNi4yMTQ2IiwgXAotICAgICAgICAgICIwLjM2NTk3OSwgMC41MTM3NzYsIDEuMzQ2ODIsIDIuMDgwNzcsIDMuMDU3OTksIDUuMDEzMjksIDYuMjM1MTciLCBcCi0gICAgICAgICAgIjAuMzg0MzY2LCAwLjUzMTYxMywgMS4zNjQ1NywgMi4wOTgyMiwgMy4wNzY1NiwgNS4wMzE0NiwgNi4yNTM1MiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC41MzIzNDksIDAuODA0MzI0LCAyLjM3NDI1LCAzLjc2NDI0LCA1LjU4Njg0LCA5LjI0ODAxLCAxMS41MzcyIiwgXAotICAgICAgICAgICIwLjUyOTAyNywgMC44MDU0LCAyLjM4MDk2LCAzLjc2NDQzLCA1LjU5MDMyLCA5LjI0ODI3LCAxMS41MzcxIiwgXAotICAgICAgICAgICIwLjUzMTczNiwgMC44MDQ5ODksIDIuMzY5NjksIDMuNzY0MTEsIDUuNTg5OTQsIDkuMjQ3LCAxMS41MzcyIiwgXAotICAgICAgICAgICIwLjUzMjI0NiwgMC44MDg4NjEsIDIuMzcxMzEsIDMuNzYzNDIsIDUuNTgwNDcsIDkuMjQ4MywgMTEuNTM2NiIsIFwKLSAgICAgICAgICAiMC41MzExNDQsIDAuODEwMjA2LCAyLjM4Njk5LCAzLjc0NDQzLCA1LjU4NzQ5LCA5LjI0ODQsIDExLjUzNzUiLCBcCi0gICAgICAgICAgIjAuNTI5OTQ4LCAwLjgxMDExNiwgMi4zNjY1LCAzLjc2NDc5LCA1LjU4Njk5LCA5LjI0Nzg5LCAxMS41Mzc3IiwgXAotICAgICAgICAgICIwLjUzMjE1MywgMC44MTAxNzcsIDIuMzcyOSwgMy43NjM5MSwgNS41ODMyMiwgOS4yNDgzMSwgMTEuNTM2NiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODY2MTQsIDAuMTI5ODIzLCAwLjM3NDQ0OCwgMC41OTA0MjQsIDAuODc4NDk0LCAxLjQ1NDY5LCAxLjgxMzg0IiwgXAotICAgICAgICAgICIwLjA5ODI3OSwgMC4xNDE1MzEsIDAuMzg2NDI0LCAwLjYwMjM1NywgMC44ODk5MTcsIDEuNDY2MTMsIDEuODI2MzIiLCBcCi0gICAgICAgICAgIjAuMTEzMTA2LCAwLjE1NTkwMywgMC4zOTk4NjcsIDAuNjE0MDcyLCAwLjkwMjA3NCwgMS40Nzc2OCwgMS44MzY4NyIsIFwKLSAgICAgICAgICAiMC4xMjc4NzUsIDAuMTcwNjE3LCAwLjQxNTA2MiwgMC42MzAxNjIsIDAuOTE1MjQ5LCAxLjQ5MTAzLCAxLjg1MDI3IiwgXAotICAgICAgICAgICIwLjE0MjYzOCwgMC4xODU3NTEsIDAuNDI5NTU4LCAwLjY0NTM4MSwgMC45MjgxOTEsIDEuNTA0MjMsIDEuODYzODQiLCBcCi0gICAgICAgICAgIjAuMTY2MzA2LCAwLjIwOTQ0NCwgMC40NTMwMDksIDAuNjY4ODQ1LCAwLjk1NjQzMSwgMS41MjU4OCwgMS44ODU5NyIsIFwKLSAgICAgICAgICAiMC4xODcwOTMsIDAuMjMwMTc1LCAwLjQ3MzMxMSwgMC42ODkwMiwgMC45NzY3NzYsIDEuNTQ1OTQsIDEuOTA1MTMiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTY3NzA5LCAwLjI1NTEzOCwgMC43NTIwMzQsIDEuMTkwOTMsIDEuNzc1NTksIDIuOTQ2NjUsIDMuNjc2NjUiLCBcCi0gICAgICAgICAgIjAuMTY3ODA5LCAwLjI1NTEzMSwgMC43NTI0MjYsIDEuMTkxNDUsIDEuNzgwMDIsIDIuOTQ1MDIsIDMuNjc4MTIiLCBcCi0gICAgICAgICAgIjAuMTY4MDY0LCAwLjI1NTc1NCwgMC43NTM2ODksIDEuMTkwNzgsIDEuNzc1MzcsIDIuOTQ1NDEsIDMuNjc1NzkiLCBcCi0gICAgICAgICAgIjAuMTcwNDYxLCAwLjI1NjEyMiwgMC43NTM4NjcsIDEuMTkwODcsIDEuNzc1NDYsIDIuOTQ1MjIsIDMuNjc0NjMiLCBcCi0gICAgICAgICAgIjAuMTc0MzQzLCAwLjI1ODI0MywgMC43NTQxNzksIDEuMTkzNTksIDEuNzc1NzIsIDIuOTQ1MjEsIDMuNjc5NSIsIFwKLSAgICAgICAgICAiMC4xODM0MjksIDAuMjY0MTIxLCAwLjc1MjI0MSwgMS4xOTA4NSwgMS43NzUyMSwgMi45NTIyMSwgMy42Nzk2OCIsIFwKLSAgICAgICAgICAiMC4xOTMxNDUsIDAuMjcxMjgzLCAwLjc1NDIyMiwgMS4xOTA2NywgMS43Nzk5NSwgMi45NDUzNSwgMy42ODQ5OSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yODg3NDQsIDAuNDM1NDc4LCAxLjI2NzE3LCAyLjAwMTM1LCAyLjk3ODksIDQuOTMzOTMsIDYuMTU1OTciLCBcCi0gICAgICAgICAgIjAuMjk4MjEsIDAuNDQ1MDg0LCAxLjI3NywgMi4wMTA1LCAyLjk4ODY2LCA0Ljk0MzU2LCA2LjE2NTcyIiwgXAotICAgICAgICAgICIwLjMxMDY3OCwgMC40NTc4OTgsIDEuMjg5NzgsIDIuMDIzODcsIDMuMDAxNDksIDQuOTU2NTksIDYuMTc4NTMiLCBcCi0gICAgICAgICAgIjAuMzIyMjE2LCAwLjQ2OTMzNSwgMS4zMDE1NiwgMi4wMzU2MSwgMy4wMTMzMiwgNC45Njg0OCwgNi4xOTAzOSIsIFwKLSAgICAgICAgICAiMC4zMzQ0MTQsIDAuNDgxNDI5LCAxLjMxMzYyLCAyLjA0NzY2LCAzLjAyNjIsIDQuOTgwODUsIDYuMjAyNjQiLCBcCi0gICAgICAgICAgIjAuMzUzNzQyLCAwLjUwMTAzNywgMS4zMzMxNCwgMi4wNjc1NCwgMy4wNDUyNiwgNS4wMDAyOCwgNi4yMjI0MiIsIFwKLSAgICAgICAgICAiMC4zNzA4NDgsIDAuNTE3MDcyLCAxLjM1MTI0LCAyLjA4NDg1LCAzLjA2MjcsIDUuMDE3NzEsIDYuMjM5NzkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuNTMxNTc1LCAwLjgwODIwMiwgMi4zODUwNiwgMy43NjQ1MywgNS41ODg4LCA5LjI0OCwgMTEuNTM2OSIsIFwKLSAgICAgICAgICAiMC41MzE1NDYsIDAuODA4MjE5LCAyLjM2OTk3LCAzLjc0ODE1LCA1LjU5MDgsIDkuMjQ3NzQsIDExLjUzNyIsIFwKLSAgICAgICAgICAiMC41MzE2NDgsIDAuODEwNDAyLCAyLjM3ODYsIDMuNzY0NCwgNS41ODgyMSwgOS4yNDc5MywgMTEuNTM3MSIsIFwKLSAgICAgICAgICAiMC41MzExMTQsIDAuODEwNTIzLCAyLjM3ODU1LCAzLjc2NDIxLCA1LjU4ODQ1LCA5LjI0NzMzLCAxMS41MzcxIiwgXAotICAgICAgICAgICIwLjUzMjAyNSwgMC44MDg4NjksIDIuMzY4MjgsIDMuNzQ4NjgsIDUuNTg3NzksIDkuMjQ4MDksIDExLjUzNzciLCBcCi0gICAgICAgICAgIjAuNTI5MzU3LCAwLjgwNjcxOCwgMi4zODAzNSwgMy43NTEwNiwgNS41ODY2OSwgOS4yNDc0MywgMTEuNTM2OSIsIFwKLSAgICAgICAgICAiMC41MzQ0MjEsIDAuODA0OTAxLCAyLjM2NzM5LCAzLjc2NDMxLCA1LjU4OTg4LCA5LjI0ODE0LCAxMS41MzY2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxOTgsIDAuMDAxOTgsIDAuMDAxOTgsIDAuMDAxOTgsIDAuMDAxOTc5LCAwLjAwMTk3OCwgMC4wMDE5NzgiLCBcCi0gICAgICAgICAgIjAuMDAxOTY5LCAwLjAwMTk2OSwgMC4wMDE5NywgMC4wMDE5NywgMC4wMDE5NjksIDAuMDAxOTY5LCAwLjAwMTk2OCIsIFwKLSAgICAgICAgICAiMC4wMDE5NjUsIDAuMDAxOTY2LCAwLjAwMTk2NywgMC4wMDE5NjYsIDAuMDAxOTY2LCAwLjAwMTk2NSwgMC4wMDE5NjUiLCBcCi0gICAgICAgICAgIjAuMDAxOTYyLCAwLjAwMTk2NCwgMC4wMDE5NjYsIDAuMDAxOTY2LCAwLjAwMTk2NiwgMC4wMDE5NjQsIDAuMDAxOTY0IiwgXAotICAgICAgICAgICIwLjAwMTk2LCAwLjAwMTk2MiwgMC4wMDE5NjUsIDAuMDAxOTY2LCAwLjAwMTk2NSwgMC4wMDE5NjQsIDAuMDAxOTYzIiwgXAotICAgICAgICAgICIwLjAwMTk1NiwgMC4wMDE5NiwgMC4wMDE5NjQsIDAuMDAxOTY1LCAwLjAwMTk2NSwgMC4wMDE5NjQsIDAuMDAxOTYzIiwgXAotICAgICAgICAgICIwLjAwMTk1NSwgMC4wMDE5NTgsIDAuMDAxOTYxLCAwLjAwMTk2NCwgMC4wMDE5NjQsIDAuMDAxOTYzLCAwLjAwMTk2MyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDUxMywgMC4wMDA1MTQsIDAuMDAwNTE1LCAwLjAwMDUxNSwgMC4wMDA1MTUsIDAuMDAwNTE1LCAwLjAwMDUxNSIsIFwKLSAgICAgICAgICAiMC4wMDA1MDUsIDAuMDAwNTA5LCAwLjAwMDUxMywgMC4wMDA1MTQsIDAuMDAwNTE0LCAwLjAwMDUxNSwgMC4wMDA1MTUiLCBcCi0gICAgICAgICAgIjAuMDAwNDk3LCAwLjAwMDUwMiwgMC4wMDA1MTEsIDAuMDAwNTEyLCAwLjAwMDUxMywgMC4wMDA1MTQsIDAuMDAwNTE0IiwgXAotICAgICAgICAgICIwLjAwMDQ5LCAwLjAwMDQ5NywgMC4wMDA1MDksIDAuMDAwNTExLCAwLjAwMDUxMiwgMC4wMDA1MTQsIDAuMDAwNTE0IiwgXAotICAgICAgICAgICIwLjAwMDQ4NCwgMC4wMDA0OTIsIDAuMDAwNTA2LCAwLjAwMDUxLCAwLjAwMDUxMSwgMC4wMDA1MTMsIDAuMDAwNTEzIiwgXAotICAgICAgICAgICIwLjAwMDQ3NywgMC4wMDA0ODYsIDAuMDAwNTAzLCAwLjAwMDUwNywgMC4wMDA1MSwgMC4wMDA1MTIsIDAuMDAwNTEzIiwgXAotICAgICAgICAgICIwLjAwMDQ3MSwgMC4wMDA0ODEsIDAuMDAwNTAxLCAwLjAwMDUwNiwgMC4wMDA1MDksIDAuMDAwNTExLCAwLjAwMDUxMiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTY3MywgMC4wMDE2NzQsIDAuMDAxNjc0LCAwLjAwMTY3NCwgMC4wMDE2NzMsIDAuMDAxNjczLCAwLjAwMTY3MyIsIFwKLSAgICAgICAgICAiMC4wMDE2NywgMC4wMDE2NzIsIDAuMDAxNjczLCAwLjAwMTY3MywgMC4wMDE2NzQsIDAuMDAxNjczLCAwLjAwMTY3MyIsIFwKLSAgICAgICAgICAiMC4wMDE2NjcsIDAuMDAxNjY5LCAwLjAwMTY3MiwgMC4wMDE2NzMsIDAuMDAxNjczLCAwLjAwMTY3MywgMC4wMDE2NzMiLCBcCi0gICAgICAgICAgIjAuMDAxNjYzLCAwLjAwMTY2NywgMC4wMDE2NzEsIDAuMDAxNjcyLCAwLjAwMTY3MywgMC4wMDE2NzMsIDAuMDAxNjczIiwgXAotICAgICAgICAgICIwLjAwMTY2LCAwLjAwMTY2NCwgMC4wMDE2NzEsIDAuMDAxNjcyLCAwLjAwMTY3MSwgMC4wMDE2NzIsIDAuMDAxNjcyIiwgXAotICAgICAgICAgICIwLjAwMTY1NiwgMC4wMDE2NjEsIDAuMDAxNjY5LCAwLjAwMTY3MSwgMC4wMDE2NzIsIDAuMDAxNjcyLCAwLjAwMTY3MiIsIFwKLSAgICAgICAgICAiMC4wMDE2NTMsIDAuMDAxNjU5LCAwLjAwMTY2NywgMC4wMDE2NywgMC4wMDE2NzEsIDAuMDAxNjcxLCAwLjAwMTY3MiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDUxNCwgMC4wMDA1MTQsIDAuMDAwNTE1LCAwLjAwMDUxNSwgMC4wMDA1MTUsIDAuMDAwNTE1LCAwLjAwMDUxNSIsIFwKLSAgICAgICAgICAiMC4wMDA1MDYsIDAuMDAwNTA5LCAwLjAwMDUxNCwgMC4wMDA1MTQsIDAuMDAwNTE1LCAwLjAwMDUxNSwgMC4wMDA1MTQiLCBcCi0gICAgICAgICAgIjAuMDAwNDk3LCAwLjAwMDUwMywgMC4wMDA1MTEsIDAuMDAwNTEzLCAwLjAwMDUxNCwgMC4wMDA1MTUsIDAuMDAwNTE1IiwgXAotICAgICAgICAgICIwLjAwMDQ5LCAwLjAwMDQ5OCwgMC4wMDA1MDksIDAuMDAwNTExLCAwLjAwMDUxMywgMC4wMDA1MTQsIDAuMDAwNTE0IiwgXAotICAgICAgICAgICIwLjAwMDQ4NCwgMC4wMDA0OTMsIDAuMDAwNTA3LCAwLjAwMDUxLCAwLjAwMDUxMiwgMC4wMDA1MTQsIDAuMDAwNTE0IiwgXAotICAgICAgICAgICIwLjAwMDQ3NiwgMC4wMDA0ODYsIDAuMDAwNTA0LCAwLjAwMDUwOCwgMC4wMDA1MSwgMC4wMDA1MTIsIDAuMDAwNTEzIiwgXAotICAgICAgICAgICIwLjAwMDQ3MSwgMC4wMDA0ODEsIDAuMDAwNTAxLCAwLjAwMDUwNiwgMC4wMDA1MDksIDAuMDAwNTEyLCAwLjAwMDUxMiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTM2LCAwLjAwMTM2LCAwLjAwMTM2MSwgMC4wMDEzNjEsIDAuMDAxMzYxLCAwLjAwMTM2MSwgMC4wMDEzNjEiLCBcCi0gICAgICAgICAgIjAuMDAxMzY0LCAwLjAwMTM2NywgMC4wMDEzNywgMC4wMDEzNywgMC4wMDEzNzEsIDAuMDAxMzcxLCAwLjAwMTM3MSIsIFwKLSAgICAgICAgICAiMC4wMDEzNjEsIDAuMDAxMzY1LCAwLjAwMTM3MSwgMC4wMDEzNzIsIDAuMDAxMzcyLCAwLjAwMTM3MywgMC4wMDEzNzMiLCBcCi0gICAgICAgICAgIjAuMDAxMzU2LCAwLjAwMTM2MiwgMC4wMDEzNjksIDAuMDAxMzcxLCAwLjAwMTM3MiwgMC4wMDEzNzMsIDAuMDAxMzczIiwgXAotICAgICAgICAgICIwLjAwMTM1MiwgMC4wMDEzNTksIDAuMDAxMzY5LCAwLjAwMTM3MSwgMC4wMDEzNzIsIDAuMDAxMzczLCAwLjAwMTM3MyIsIFwKLSAgICAgICAgICAiMC4wMDEzNDYsIDAuMDAxMzU0LCAwLjAwMTM2NywgMC4wMDEzNywgMC4wMDEzNzEsIDAuMDAxMzczLCAwLjAwMTM3MyIsIFwKLSAgICAgICAgICAiMC4wMDEzNDIsIDAuMDAxMzUxLCAwLjAwMTM2NSwgMC4wMDEzNjksIDAuMDAxMzcxLCAwLjAwMTM3MiwgMC4wMDEzNzMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDA1MTMsIDAuMDAwNTE0LCAwLjAwMDUxNSwgMC4wMDA1MTUsIDAuMDAwNTE1LCAwLjAwMDUxNSwgMC4wMDA1MTUiLCBcCi0gICAgICAgICAgIjAuMDAwNTA0LCAwLjAwMDUwOCwgMC4wMDA1MTMsIDAuMDAwNTE0LCAwLjAwMDUxNSwgMC4wMDA1MTUsIDAuMDAwNTE1IiwgXAotICAgICAgICAgICIwLjAwMDQ5NCwgMC4wMDA1MDEsIDAuMDAwNTEsIDAuMDAwNTEyLCAwLjAwMDUxMywgMC4wMDA1MTQsIDAuMDAwNTE1IiwgXAotICAgICAgICAgICIwLjAwMDQ4NiwgMC4wMDA0OTQsIDAuMDAwNTA4LCAwLjAwMDUxMSwgMC4wMDA1MTIsIDAuMDAwNTE0LCAwLjAwMDUxNCIsIFwKLSAgICAgICAgICAiMC4wMDA0NzksIDAuMDAwNDg5LCAwLjAwMDUwNSwgMC4wMDA1MDksIDAuMDAwNTExLCAwLjAwMDUxMywgMC4wMDA1MTMiLCBcCi0gICAgICAgICAgIjAuMDAwNDcxLCAwLjAwMDQ4MiwgMC4wMDA1MDIsIDAuMDAwNTA2LCAwLjAwMDUwOSwgMC4wMDA1MTIsIDAuMDAwNTEzIiwgXAotICAgICAgICAgICIwLjAwMDQ2NSwgMC4wMDA0NzYsIDAuMDAwNDk5LCAwLjAwMDUwNCwgMC4wMDA1MDgsIDAuMDAwNTExLCAwLjAwMDUxMiIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IE5BTkQzWDQgKgotICogLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoTkFORDNYNCkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjM5MTg2OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDM0NzEzOTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDM0NzEzOTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDM0NjA0ODsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDEyMjQsIDAuMDAxMjIzLCAwLjAwMTIyMywgMC4wMDEyMjIsIDAuMDAxMjIyLCAwLjAwMTIyMiwgMC4wMDEyMTkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDEyMjYsIDAuMDAxMjI3LCAwLjAwMTIyOCwgMC4wMDEyMjgsIDAuMDAxMjI4LCAwLjAwMTIyOCwgMC4wMDEyMjgiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMzQxNTI2OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMzQxNTI2OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMzQwNzA4OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTIyNSwgMC4wMDEyMjQsIDAuMDAxMjIzLCAwLjAwMTIyMywgMC4wMDEyMjMsIDAuMDAxMjIyLCAwLjAwMTIyMiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTIzLCAwLjAwMTIzMSwgMC4wMDEyMywgMC4wMDEyMzEsIDAuMDAxMjMxLCAwLjAwMTIzMSwgMC4wMDEyMzEiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEMpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMzA3ODQ1OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMzA3NjU0OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMzA3ODQ1OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDYwOSwgMC4wMDA2MDgsIDAuMDAwNjA3LCAwLjAwMDYwNywgMC4wMDA2MDcsIDAuMDAwNjA2LCAwLjAwMDYwNiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTM5LCAwLjAwMTM5MSwgMC4wMDEzOTEsIDAuMDAxMzkzLCAwLjAwMTM5MiwgMC4wMDEzOTMsIDAuMDAxMzkyIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMTU3NzY0OwotICAgIGZ1bmN0aW9uIDogIighKChBIEIpIEMpKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzY4NjYsIDAuMTY0NTk0LCAwLjI5MTQ0NiwgMC4zODE5NTcsIDAuNTI2ODIsIDAuNjUzNDUsIDAuODM0MjkyIiwgXAotICAgICAgICAgICIwLjA0ODM1LCAwLjE3NjEwOCwgMC4zMDI5NjQsIDAuMzkzNTI3LCAwLjUzODM0LCAwLjY2NTAzOSwgMC44NDU5MjciLCBcCi0gICAgICAgICAgIjAuMDYyOTMyLCAwLjE5MDQ3NiwgMC4zMTU2NTMsIDAuNDA2MTQ2LCAwLjU1MDkzMiwgMC42Nzc1ODEsIDAuODU4NDYiLCBcCi0gICAgICAgICAgIjAuMDc4MTg1LCAwLjIwNDg5NywgMC4zMzE4NTUsIDAuNDIyMzkxLCAwLjU2NzI0OSwgMC42OTM4ODIsIDAuODc0NzA4IiwgXAotICAgICAgICAgICIwLjA5MjgwMywgMC4yMTk3OTksIDAuMzQ2MzcyLCAwLjQzNjgxNCwgMC41ODE1NjMsIDAuNzA4Mjc2LCAwLjg4ODE0NyIsIFwKLSAgICAgICAgICAiMC4xMTM1MzQsIDAuMjQzOTk2LCAwLjM2OTg1NiwgMC40NjAxMTgsIDAuNjA0ODMsIDAuNzMxNDczLCAwLjkxMjQyMSIsIFwKLSAgICAgICAgICAiMC4xMjk3MzYsIDAuMjY0Njc3LCAwLjM5MDUxOCwgMC40ODAzMzEsIDAuNjI1MjU3LCAwLjc1MTgxOCwgMC45MzI2NjkiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjM1NTYsIDAuMzIwODE4LCAwLjU3Nzc4MiwgMC43NjEzMzUsIDEuMDU1MDcsIDEuMzEyODksIDEuNjc5MTIiLCBcCi0gICAgICAgICAgIjAuMDYzNjYxLCAwLjMyMDY1MiwgMC41Nzc5ODEsIDAuNzYxODc0LCAxLjA1NTgxLCAxLjMxMzEzLCAxLjY3OTQ3IiwgXAotICAgICAgICAgICIwLjA2Nzc1NCwgMC4zMjA3NDEsIDAuNTc3ODAyLCAwLjc2MTkxNCwgMS4wNTU5MSwgMS4zMTI5NSwgMS42ODAwOSIsIFwKLSAgICAgICAgICAiMC4wNzM2ODgsIDAuMzIwNjc1LCAwLjU3Nzg4MSwgMC43NjE1MjYsIDEuMDU1NDEsIDEuMzEyMDUsIDEuNjc5MTIiLCBcCi0gICAgICAgICAgIjAuMDgxMjYsIDAuMzIxNTc1LCAwLjU3ODExLCAwLjc2MTI2MywgMS4wNTUzLCAxLjMxMjExLCAxLjY3OTEzIiwgXAotICAgICAgICAgICIwLjA5NTI1NSwgMC4zMjU1MTYsIDAuNTc4MTA2LCAwLjc2MTI3MSwgMS4wNTQ4NiwgMS4zMTIxMiwgMS42NzkyOCIsIFwKLSAgICAgICAgICAiMC4xMDg1ODYsIDAuMzMxMDgzLCAwLjU3OTE3NCwgMC43NjE3MDQsIDEuMDU0OTQsIDEuMzExOSwgMS42Nzg4OSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExOTgwNCwgMC41NDk1MTksIDAuOTc5MjcsIDEuMjg1NzgsIDEuNzc2NzQsIDIuMjA1OTQsIDIuODE5MjkiLCBcCi0gICAgICAgICAgIjAuMTMwODAyLCAwLjU2MTMzMSwgMC45OTE2OCwgMS4yOTgxNywgMS43ODkwNiwgMi4yMTk1NiwgMi44MzI4IiwgXAotICAgICAgICAgICIwLjE0MzM4OSwgMC41NzQ0NzcsIDEuMDA0MzgsIDEuMzExMjksIDEuODAyNTQsIDIuMjMxNjgsIDIuODQ1ODYiLCBcCi0gICAgICAgICAgIjAuMTU1NDAyLCAwLjU4NjcxOCwgMS4wMTY3MSwgMS4zMjQyNSwgMS44MTQ0NCwgMi4yNDU2NiwgMi44NTg1MSIsIFwKLSAgICAgICAgICAiMC4xNjcxMzksIDAuNTk4Mzg1LCAxLjAyODc3LCAxLjMzNTgzLCAxLjgyNjk3LCAyLjI1NjI0LCAyLjg3MDE2IiwgXAotICAgICAgICAgICIwLjE4NTczMSwgMC42MTcyNjEsIDEuMDQ3MjUsIDEuMzU0NzgsIDEuODQ1NzQsIDIuMjc1NTcsIDIuODg4OTYiLCBcCi0gICAgICAgICAgIjAuMjAyMDk0LCAwLjYzMzQyOCwgMS4wNjM4MywgMS4zNzA1OSwgMS44NjE3OSwgMi4yOTIyOSwgMi45MDU5MyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE4NTQ1MiwgMC45OTc0MDMsIDEuODEzODEsIDIuMzg5MzgsIDMuMzE3MTYsIDQuMTI2NjQsIDUuMjY5MTkiLCBcCi0gICAgICAgICAgIjAuMTg1NDE3LCAwLjk5NzgwNSwgMS44MDE3NywgMi4zOTAzNCwgMy4zMjIyLCA0LjEyOTcyLCA1LjI3NDg4IiwgXAotICAgICAgICAgICIwLjE4NTQ1NCwgMS4wMDA3MSwgMS44MTAyNiwgMi4zOTc1NywgMy4zMjI1MiwgNC4xMjcyNywgNS4yNzExMyIsIFwKLSAgICAgICAgICAiMC4xODU0NjgsIDEuMDAwNzYsIDEuODE0OTUsIDIuMzc4NDYsIDMuMzIyMDYsIDQuMTEwOTksIDUuMjc0OTciLCBcCi0gICAgICAgICAgIjAuMTg2NDA5LCAwLjk5Nzg1MSwgMS44MTY1MSwgMi4zOTc4LCAzLjMyMjYsIDQuMTI4NzgsIDUuMjcxODIiLCBcCi0gICAgICAgICAgIjAuMTg5MjM4LCAxLjAwMDI3LCAxLjgwMzM5LCAyLjM5OTI3LCAzLjMwNjYxLCA0LjEyOTIsIDUuMjY4NyIsIFwKLSAgICAgICAgICAiMC4xOTI0MzMsIDAuOTk3NjIyLCAxLjgwMzcxLCAyLjM5MjUxLCAzLjMyMjA4LCA0LjExNTI2LCA1LjI3NDk4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM0ODczLCAwLjE2MTI1OCwgMC4yODcyNzgsIDAuMzc3MjYsIDAuNTIxMzMsIDAuNjQ3NDk5LCAwLjgyNzM0MiIsIFwKLSAgICAgICAgICAiMC4wNDY1MDUsIDAuMTcyOTU1LCAwLjI5ODk4OSwgMC4zODkwOTIsIDAuNTMyOTc3LCAwLjY1OTExMiwgMC44MzkxMTIiLCBcCi0gICAgICAgICAgIjAuMDYxNDgyLCAwLjE4NzgwOSwgMC4zMTM4OTEsIDAuNDAzNzQ2LCAwLjU0Nzg0NiwgMC42NzQwNDIsIDAuODU0MTg5IiwgXAotICAgICAgICAgICIwLjA3NjI2NCwgMC4yMDE5MTUsIDAuMzI3ODQ1LCAwLjQxNzkwNiwgMC41NjE5MTQsIDAuNjg0MDU3LCAwLjg2NDA3OCIsIFwKLSAgICAgICAgICAiMC4wOTA0MiwgMC4yMTcxNTYsIDAuMzQyNDQ4LCAwLjQzMjQxOSwgMC41NzYyOTgsIDAuNzAyMzI5LCAwLjg3NzQxMiIsIFwKLSAgICAgICAgICAiMC4xMTA1NTQsIDAuMjQwODcsIDAuMzY1ODc5LCAwLjQ1NTcwMywgMC41OTk2NDMsIDAuNzI1NTIxLCAwLjkwNTUiLCBcCi0gICAgICAgICAgIjAuMTI2MTU5LCAwLjI2MTU0OCwgMC4zODY0OTksIDAuNDc1NzExLCAwLjYyMDAxOCwgMC43NDU5NTgsIDAuOTI1NzY1Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDYwMzk0LCAwLjMxNjQzNSwgMC41NzE5MTUsIDAuNzU0Njg4LCAxLjA0NzAzLCAxLjMwMjkzLCAxLjY2ODEzIiwgXAotICAgICAgICAgICIwLjA2MDc4LCAwLjMxNjMwMywgMC41NzIxNzIsIDAuNzU1Mjk0LCAxLjA0Njc2LCAxLjMwMjg0LCAxLjY2ODIiLCBcCi0gICAgICAgICAgIjAuMDY0ODYsIDAuMzE2NDU1LCAwLjU3MjQ1MywgMC43NTQ5ODUsIDEuMDQ3NSwgMS4zMDMwMywgMS42NjgzNSIsIFwKLSAgICAgICAgICAiMC4wNzE2MTQsIDAuMzE2MjcsIDAuNTcxOTE1LCAwLjc1NTE5NiwgMS4wNDc0OSwgMS4zMDI5NiwgMS42NjgzMyIsIFwKLSAgICAgICAgICAiMC4wNzk1MzYsIDAuMzE3Mjc4LCAwLjU3MjIyMiwgMC43NTUwMzQsIDEuMDQ2ODgsIDEuMzAyNDksIDEuNjY4MzMiLCBcCi0gICAgICAgICAgIjAuMDk0MTUyLCAwLjMyMTYxOSwgMC41NzIxMDQsIDAuNzU0Njk5LCAxLjA0NzA1LCAxLjMwMjQ5LCAxLjY2NzgxIiwgXAotICAgICAgICAgICIwLjEwNzg0MSwgMC4zMjczMTQsIDAuNTczNjIzLCAwLjc1NDU3OSwgMS4wNDcwMywgMS4zMDI4MiwgMS42Njc3NiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExNTA1OCwgMC41NDUxMDcsIDAuOTc0OTcxLCAxLjI4MTUzLCAxLjc3MzQ1LCAyLjIwMjUzLCAyLjgxNjM4IiwgXAotICAgICAgICAgICIwLjEyNTE3LCAwLjU1NTc2NiwgMC45ODU2ODMsIDEuMjkyNTMsIDEuNzgzOTgsIDIuMjEzNTEsIDIuODI2NTkiLCBcCi0gICAgICAgICAgIjAuMTM3NjI5LCAwLjU2ODY0NywgMC45OTkwNjMsIDEuMzA1NTMsIDEuNzk3NiwgMi4yMjY2MSwgMi44NDAyNiIsIFwKLSAgICAgICAgICAiMC4xNTAxMjQsIDAuNTgxNDY1LCAxLjAxMTE2LCAxLjMxODg0LCAxLjgwOTIzLCAyLjI0MDI5LCAyLjg1MzE3IiwgXAotICAgICAgICAgICIwLjE2MjY0NSwgMC41OTM5NDksIDEuMDI0MjUsIDEuMzMxMTksIDEuODIyMDMsIDIuMjUzMTcsIDIuODY2MDgiLCBcCi0gICAgICAgICAgIjAuMTgyNzk2LCAwLjYxNDM5LCAxLjA0NDgzLCAxLjM1MTU3LCAxLjg0MzMxLCAyLjI3MzY2LCAyLjg4NjE0IiwgXAotICAgICAgICAgICIwLjIwMDgyNywgMC42MzIzMzEsIDEuMDYyNjksIDEuMzcwMDgsIDEuODYxODYsIDIuMjkxNTcsIDIuOTA0NjEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xODUzODIsIDEuMDAwODYsIDEuODE2MzksIDIuMzgxMzMsIDMuMzIzMDEsIDQuMTI5MTcsIDUuMjc0OTMiLCBcCi0gICAgICAgICAgIjAuMTg1MzU4LCAwLjk5NDI3NCwgMS44MDUxOSwgMi4zOTAzMSwgMy4zMDQzMiwgNC4xMjkzMSwgNS4yNjgxNiIsIFwKLSAgICAgICAgICAiMC4xODUzNiwgMC45OTQ0OSwgMS44MDE0LCAyLjM5MDMyLCAzLjMwMzM0LCA0LjEyOTM3LCA1LjI2MzA3IiwgXAotICAgICAgICAgICIwLjE4NTgyMywgMS4wMDA3NiwgMS44MDk4OSwgMi4zOTg4NiwgMy4zMDQ3MiwgNC4xMTEyMSwgNS4yNzQ5MiIsIFwKLSAgICAgICAgICAiMC4xODc0MzksIDAuOTk5NjM2LCAxLjgxMDI0LCAyLjM4MTY2LCAzLjMyMjEsIDQuMTA5NDYsIDUuMjc0OTgiLCBcCi0gICAgICAgICAgIjAuMTkxODQsIDAuOTk3NTk3LCAxLjgwNDg4LCAyLjM3OTk2LCAzLjMyMjcxLCA0LjEyOTkxLCA1LjI3NDM1IiwgXAotICAgICAgICAgICIwLjE5NzkwMSwgMC45OTg5NzMsIDEuODE1NzksIDIuMzc3NiwgMy4zMDEwOSwgNC4xMTEzNiwgNS4yNzE4MSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzMjY1OSwgMC4xNTg4MDIsIDAuMjg0OTI4LCAwLjM3NDkzNiwgMC41MTkzNjksIDAuNjQ1MzUyLCAwLjgyNTg0NSIsIFwKLSAgICAgICAgICAiMC4wNDQyNjgsIDAuMTcwNTIsIDAuMjk2NTk3LCAwLjM4Njc2OSwgMC41MzA3NzYsIDAuNjU3MDk2LCAwLjgzNzE2NiIsIFwKLSAgICAgICAgICAiMC4wNTkxNTEsIDAuMTg1LCAwLjMwOTg0OSwgMC4zOTk5MTQsIDAuNTQzOTU2LCAwLjY3MDM3MSwgMC44NTAxMzciLCBcCi0gICAgICAgICAgIjAuMDc0MDczLCAwLjE5OTQ0OSwgMC4zMjU1MTUsIDAuNDE1NTMzLCAwLjU1OTU5NywgMC42ODQ4NjUsIDAuODYyMDciLCBcCi0gICAgICAgICAgIjAuMDg3NzMxLCAwLjIxNDQ4NywgMC4zNDAxNzEsIDAuNDMwMjE5LCAwLjU3MjM1LCAwLjY5ODM5NCwgMC44Nzg1NTIiLCBcCi0gICAgICAgICAgIjAuMTA2OTM3LCAwLjIzODQwOSwgMC4zNjM3MjUsIDAuNDUzNDg0LCAwLjU5NzQ1OSwgMC43MjM0MzQsIDAuOTAzNTg5IiwgXAotICAgICAgICAgICIwLjEyMjE4MiwgMC4yNTkxNTQsIDAuMzg0MzQ0LCAwLjQ3Mzg3NiwgMC42MTc5MTksIDAuNzQzODQsIDAuOTIzODQzIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU3ODEsIDAuMzE0Mjg3LCAwLjU3MTQ4NSwgMC43NTQyNDIsIDEuMDQ4MSwgMS4zMDQzNCwgMS42NzEzNCIsIFwKLSAgICAgICAgICAiMC4wNTg0NjksIDAuMzE0Mjc0LCAwLjU3MDk0NywgMC43NTQ5MjUsIDEuMDUwMDIsIDEuMzA0MzUsIDEuNjcwOTMiLCBcCi0gICAgICAgICAgIjAuMDYzMDc3LCAwLjMxNDM5OSwgMC41NzEwNjIsIDAuNzU0OTA5LCAxLjA0OTk3LCAxLjMwNDkxLCAxLjY3MjIiLCBcCi0gICAgICAgICAgIjAuMDY5NzE2LCAwLjMxNDU5MywgMC41NzIxMzYsIDAuNzU0MjQxLCAxLjA0NzQ3LCAxLjMwNDA5LCAxLjY3MDk3IiwgXAotICAgICAgICAgICIwLjA3ODEyNCwgMC4zMTYwODgsIDAuNTcwOTM3LCAwLjc1NDM1MiwgMS4wNDcyOSwgMS4zMDcyMywgMS42NzA0OCIsIFwKLSAgICAgICAgICAiMC4wOTMzNzgsIDAuMzE5OTgyLCAwLjU3MTAyMiwgMC43NTQzNjQsIDEuMDQ3ODEsIDEuMzAzOTcsIDEuNjcwMjMiLCBcCi0gICAgICAgICAgIjAuMTA2OTc0LCAwLjMyNjE2MywgMC41NzI4NDgsIDAuNzU0MjU0LCAxLjA0NzY2LCAxLjMwMzgzLCAxLjY3MDY0Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTA1MDY2LCAwLjUzNTE0OCwgMC45NjUzMTcsIDEuMjcxNzcsIDEuNzYzNzcsIDIuMTkxNDUsIDIuODA1MjEiLCBcCi0gICAgICAgICAgIjAuMTE0Mjk2LCAwLjU0NDU2OCwgMC45NzQyMzMsIDEuMjgxMTksIDEuNzcyMDcsIDIuMjAxNzIsIDIuODE1NTEiLCBcCi0gICAgICAgICAgIjAuMTI1NzM1LCAwLjU1NjgsIDAuOTg2NTQ2LCAxLjI5MzYsIDEuNzg0NiwgMi4yMTM5MiwgMi44Mjc5OCIsIFwKLSAgICAgICAgICAiMC4xMzc1ODEsIDAuNTY4OTczLCAwLjk5OTEwOCwgMS4zMDU3MSwgMS43OTY3LCAyLjIyNjYyLCAyLjg0MDkiLCBcCi0gICAgICAgICAgIjAuMTQ5NTg5LCAwLjU4MTAwNywgMS4wMTE0MSwgMS4zMTc5NiwgMS44MDkxLCAyLjIzOTQsIDIuODUzMTEiLCBcCi0gICAgICAgICAgIjAuMTcwNDcsIDAuNjAwOTIzLCAxLjAzMTEzLCAxLjMzODI0LCAxLjgyOTI5LCAyLjI1OTgyLCAyLjg3MzMxIiwgXAotICAgICAgICAgICIwLjE4ODM5LCAwLjYxOTA1OCwgMS4wNDkzNSwgMS4zNTY5NywgMS44NDg3NywgMi4yNzg1MSwgMi44OTE0OSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE4NTM5OSwgMC45OTQzNjIsIDEuODAxMjMsIDIuMzkwMzQsIDMuMzAzMDYsIDQuMTI3MiwgNS4yNzM3IiwgXAotICAgICAgICAgICIwLjE4NTQyOSwgMC45OTk3MTcsIDEuODA5NzUsIDIuMzg5OTYsIDMuMzE4MDMsIDQuMTI4NTQsIDUuMjc0MjEiLCBcCi0gICAgICAgICAgIjAuMTg0NjA3LCAwLjk5ODQxOCwgMS44MDk3MiwgMi4zNzk5NCwgMy4zMTgxNiwgNC4xMjgwNywgNS4yNzQyNCIsIFwKLSAgICAgICAgICAiMC4xODY3MTcsIDEuMDAwMiwgMS44MDE4MSwgMi4zODk5MiwgMy4zMTgwNSwgNC4xMjczNCwgNS4yNjMwMyIsIFwKLSAgICAgICAgICAiMC4xOTA0NDgsIDAuOTk1NjE3LCAxLjgxNjExLCAyLjM4MDExLCAzLjMyMjE3LCA0LjExNTgzLCA1LjI3NDk5IiwgXAotICAgICAgICAgICIwLjE5NzU1MywgMC45OTg1NywgMS44MDI1MSwgMi4zODA1MSwgMy4zMTkxNCwgNC4xMjk1MSwgNS4yNjMxMiIsIFwKLSAgICAgICAgICAiMC4yMDYxMzQsIDAuOTk3NzM3LCAxLjgxMjMyLCAyLjM3ODIzLCAzLjMwMjk2LCA0LjEyOTg0LCA1LjI3MTk4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDc5ODgsIDAuMDA3OTg5LCAwLjAwNzk4OSwgMC4wMDc5ODksIDAuMDA3OTg4LCAwLjAwNzk4NiwgMC4wMDc5ODciLCBcCi0gICAgICAgICAgIjAuMDA3OTMyLCAwLjAwNzk0NywgMC4wMDc5NDksIDAuMDA3OTQ5LCAwLjAwNzk0OSwgMC4wMDc5NDgsIDAuMDA3OTQ4IiwgXAotICAgICAgICAgICIwLjAwNzkwMSwgMC4wMDc5MzMsIDAuMDA3OTM1LCAwLjAwNzkzNCwgMC4wMDc5MzUsIDAuMDA3OTM0LCAwLjAwNzkzNCIsIFwKLSAgICAgICAgICAiMC4wMDc4OCwgMC4wMDc5MTUsIDAuMDA3OTMsIDAuMDA3OTMyLCAwLjAwNzkzNCwgMC4wMDc5MzQsIDAuMDA3OTM2IiwgXAotICAgICAgICAgICIwLjAwNzg2OSwgMC4wMDc5MTksIDAuMDA3OTI3LCAwLjAwNzkyOSwgMC4wMDc5MywgMC4wMDc5MywgMC4wMDc5MyIsIFwKLSAgICAgICAgICAiMC4wMDc4NTYsIDAuMDA3OTEyLCAwLjAwNzkyMiwgMC4wMDc5MjUsIDAuMDA3OTI3LCAwLjAwNzkyNywgMC4wMDc5MjciLCBcCi0gICAgICAgICAgIjAuMDA3ODQsIDAuMDA3OTA1LCAwLjAwNzkxNywgMC4wMDc5MTQsIDAuMDA3OTIyLCAwLjAwNzkyNSwgMC4wMDc5MjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjA0NywgMC4wMDIwNjYsIDAuMDAyMDY4LCAwLjAwMjA2OCwgMC4wMDIwNjksIDAuMDAyMDY5LCAwLjAwMjA2OSIsIFwKLSAgICAgICAgICAiMC4wMDE5NzMsIDAuMDAyMDQ4LCAwLjAwMjA1OCwgMC4wMDIwNjEsIDAuMDAyMDY0LCAwLjAwMjA2NSwgMC4wMDIwNjYiLCBcCi0gICAgICAgICAgIjAuMDAxOTExLCAwLjAwMjAyNywgMC4wMDIwNDYsIDAuMDAyMDUyLCAwLjAwMjA1NywgMC4wMDIwNiwgMC4wMDIwNjIiLCBcCi0gICAgICAgICAgIjAuMDAxODcxLCAwLjAwMjAwOSwgMC4wMDIwMzQsIDAuMDAyMDQzLCAwLjAwMjA1LCAwLjAwMjA1NCwgMC4wMDIwNTgiLCBcCi0gICAgICAgICAgIjAuMDAxODQyLCAwLjAwMTk5NCwgMC4wMDIwMjUsIDAuMDAyMDM1LCAwLjAwMjA0NSwgMC4wMDIwNSwgMC4wMDIwNTQiLCBcCi0gICAgICAgICAgIjAuMDAxODExLCAwLjAwMTk2OCwgMC4wMDIwMDgsIDAuMDAyMDIxLCAwLjAwMjAzNCwgMC4wMDIwNDEsIDAuMDAyMDQ3IiwgXAotICAgICAgICAgICIwLjAwMTc5NCwgMC4wMDE5NSwgMC4wMDE5OTUsIDAuMDAyMDExLCAwLjAwMjAyNiwgMC4wMDIwMzQsIDAuMDAyMDQyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDY3MywgMC4wMDY3MzUsIDAuMDA2NzM1LCAwLjAwNjczNSwgMC4wMDY3MzUsIDAuMDA2NzM0LCAwLjAwNjczNCIsIFwKLSAgICAgICAgICAiMC4wMDY2OTYsIDAuMDA2NzI3LCAwLjAwNjczMSwgMC4wMDY3MzEsIDAuMDA2NzMyLCAwLjAwNjczMywgMC4wMDY3MzMiLCBcCi0gICAgICAgICAgIjAuMDA2NjYyLCAwLjAwNjcyLCAwLjAwNjcyNywgMC4wMDY3MjksIDAuMDA2NzMsIDAuMDA2NzMxLCAwLjAwNjczMSIsIFwKLSAgICAgICAgICAiMC4wMDY2MzQsIDAuMDA2NzA2LCAwLjAwNjcyMiwgMC4wMDY3MjQsIDAuMDA2NzI4LCAwLjAwNjczLCAwLjAwNjcyOCIsIFwKLSAgICAgICAgICAiMC4wMDY2MTQsIDAuMDA2NzA0LCAwLjAwNjcxNywgMC4wMDY3MjEsIDAuMDA2NzI2LCAwLjAwNjcyNiwgMC4wMDY3MjYiLCBcCi0gICAgICAgICAgIjAuMDA2NTk0LCAwLjAwNjY5MiwgMC4wMDY3MSwgMC4wMDY3MTYsIDAuMDA2NzIxLCAwLjAwNjcyMywgMC4wMDY3MjYiLCBcCi0gICAgICAgICAgIjAuMDA2NTc2LCAwLjAwNjY4NCwgMC4wMDY3MDUsIDAuMDA2NzA2LCAwLjAwNjcxNywgMC4wMDY3MiwgMC4wMDY3MjIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjA0NiwgMC4wMDIwNjUsIDAuMDAyMDY3LCAwLjAwMjA2NywgMC4wMDIwNjgsIDAuMDAyMDY4LCAwLjAwMjA2OCIsIFwKLSAgICAgICAgICAiMC4wMDE5NzEsIDAuMDAyMDQ3LCAwLjAwMjA1NywgMC4wMDIwNiwgMC4wMDIwNjIsIDAuMDAyMDY0LCAwLjAwMjA2NSIsIFwKLSAgICAgICAgICAiMC4wMDE5MSwgMC4wMDIwMjYsIDAuMDAyMDQ1LCAwLjAwMjA1MSwgMC4wMDIwNTYsIDAuMDAyMDU4LCAwLjAwMjA2NCIsIFwKLSAgICAgICAgICAiMC4wMDE4NywgMC4wMDIwMDksIDAuMDAyMDM0LCAwLjAwMjA0MiwgMC4wMDIwNSwgMC4wMDIwNTMsIDAuMDAyMDU3IiwgXAotICAgICAgICAgICIwLjAwMTg0MiwgMC4wMDE5OTIsIDAuMDAyMDIzLCAwLjAwMjAzNCwgMC4wMDIwNDMsIDAuMDAyMDQ3LCAwLjAwMjA1MyIsIFwKLSAgICAgICAgICAiMC4wMDE4MTIsIDAuMDAxOTY3LCAwLjAwMjAwNywgMC4wMDIwMiwgMC4wMDIwMzMsIDAuMDAyMDQsIDAuMDAyMDQ2IiwgXAotICAgICAgICAgICIwLjAwMTc5NCwgMC4wMDE5NDksIDAuMDAxOTk0LCAwLjAwMjAxLCAwLjAwMjAyNSwgMC4wMDIwMzMsIDAuMDAyMDQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNTM2NiwgMC4wMDUzODEsIDAuMDA1MzgyLCAwLjAwNTM4MywgMC4wMDUzODMsIDAuMDA1Mzg0LCAwLjAwNTM4MiIsIFwKLSAgICAgICAgICAiMC4wMDUzNDcsIDAuMDA1NDA4LCAwLjAwNTQxNCwgMC4wMDU0MTYsIDAuMDA1NDE4LCAwLjAwNTQyMSwgMC4wMDU0MjEiLCBcCi0gICAgICAgICAgIjAuMDA1Mjk5LCAwLjAwNTQwNSwgMC4wMDU0MTcsIDAuMDA1NDIxLCAwLjAwNTQyNCwgMC4wMDU0MjcsIDAuMDA1NDI4IiwgXAotICAgICAgICAgICIwLjAwNTI2NywgMC4wMDUzOTcsIDAuMDA1NDE2LCAwLjAwNTQxOSwgMC4wMDU0MjQsIDAuMDA1NDI3LCAwLjAwNTQzIiwgXAotICAgICAgICAgICIwLjAwNTI0MiwgMC4wMDUzODQsIDAuMDA1NDA1LCAwLjAwNTQxMywgMC4wMDU0MiwgMC4wMDU0MjQsIDAuMDA1NDI3IiwgXAotICAgICAgICAgICIwLjAwNTIxOCwgMC4wMDUzNywgMC4wMDUzOTksIDAuMDA1NDA3LCAwLjAwNTQxNywgMC4wMDU0MjEsIDAuMDA1NDI1IiwgXAotICAgICAgICAgICIwLjAwNTE5MiwgMC4wMDUzNTcsIDAuMDA1MzkxLCAwLjAwNTQsIDAuMDA1NDEyLCAwLjAwNTQxNywgMC4wMDU0MjEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjAzOSwgMC4wMDIwNjEsIDAuMDAyMDY0LCAwLjAwMjA2NSwgMC4wMDIwNjUsIDAuMDAyMDY1LCAwLjAwMjA2NiIsIFwKLSAgICAgICAgICAiMC4wMDE5NTMsIDAuMDAyMDQxLCAwLjAwMjA1MiwgMC4wMDIwNTYsIDAuMDAyMDU5LCAwLjAwMjA2MSwgMC4wMDIwNjIiLCBcCi0gICAgICAgICAgIjAuMDAxODc4LCAwLjAwMjAxNiwgMC4wMDIwMzgsIDAuMDAyMDQ0LCAwLjAwMjA1MSwgMC4wMDIwNTQsIDAuMDAyMDU3IiwgXAotICAgICAgICAgICIwLjAwMTgzNCwgMC4wMDE5OTQsIDAuMDAyMDI0LCAwLjAwMjAzNCwgMC4wMDIwNDMsIDAuMDAyMDQ3LCAwLjAwMjA1MiIsIFwKLSAgICAgICAgICAiMC4wMDE4MTEsIDAuMDAxOTc1LCAwLjAwMjAxMiwgMC4wMDIwMjQsIDAuMDAyMDM2LCAwLjAwMjA0MiwgMC4wMDIwNDciLCBcCi0gICAgICAgICAgIjAuMDAxNzg3LCAwLjAwMTk0OCwgMC4wMDE5OTQsIDAuMDAyMDEsIDAuMDAyMDI1LCAwLjAwMjAzMiwgMC4wMDIwNCIsIFwKLSAgICAgICAgICAiMC4wMDE3ODUsIDAuMDAxOTM1LCAwLjAwMTk4MywgMC4wMDIwMDEsIDAuMDAyMDE4LCAwLjAwMjAyNywgMC4wMDIwMzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBOQU5EM1g2ICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKE5BTkQzWDYpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC41ODY0MTI7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwNTE0Mzk3OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwNTE0Mzk3OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwNTEyNzExOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTgzNywgMC4wMDE4MzUsIDAuMDAxODM0LCAwLjAwMTgzMywgMC4wMDE4MzMsIDAuMDAxODM0LCAwLjAwMTgzNCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTgzOSwgMC4wMDE4NDEsIDAuMDAxODQxLCAwLjAwMTg0MiwgMC4wMDE4NDEsIDAuMDAxODQyLCAwLjAwMTg0MiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDA1MDM3NzI7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDA1MDM3NzI7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDA1MDI1NDg7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxODM3LCAwLjAwMTgzNiwgMC4wMDE4MzQsIDAuMDAxODM1LCAwLjAwMTgzNCwgMC4wMDE4MzQsIDAuMDAxODMzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxODQ0LCAwLjAwMTg0NiwgMC4wMDE4NDUsIDAuMDAxODQ2LCAwLjAwMTg0NiwgMC4wMDE4NDcsIDAuMDAxODQ3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihDKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDQ3Mjg4OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwNDcyNDc3OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwNDcyODg7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwODk3LCAwLjAwMDg5NSwgMC4wMDA4OTQsIDAuMDAwODkzLCAwLjAwMDg5MywgMC4wMDA4OTMsIDAuMDAwODk0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyMDg0LCAwLjAwMjA4NiwgMC4wMDIwODcsIDAuMDAyMDg5LCAwLjAwMjA4OSwgMC4wMDIwODksIDAuMDAyMDg4Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMjcwMTUxOwotICAgIGZ1bmN0aW9uIDogIighKChBIEIpIEMpKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzA0MjQsIDAuMTE2NDA1LCAwLjIwMTQ5LCAwLjI2MjE3MSwgMC4zNTkxOTQsIDAuNDQ0MTIxLCAwLjU2NTMxOCIsIFwKLSAgICAgICAgICAiMC4wNDIwMDEsIDAuMTI3OTkxLCAwLjIxMzEwMSwgMC4yNzM3OTYsIDAuMzcwODQyLCAwLjQ1NTc1LCAwLjU3Njk4OCIsIFwKLSAgICAgICAgICAiMC4wNTY5MzYsIDAuMTQyNTIsIDAuMjI3NDc2LCAwLjI4ODE3NSwgMC4zODM3NjcsIDAuNDY4NTAxLCAwLjU4OTc4NiIsIFwKLSAgICAgICAgICAiMC4wNzE5MTQsIDAuMTU3NTQ5LCAwLjI0MjYwMywgMC4zMDMzMDYsIDAuNDAwMzY2LCAwLjQ4NTIzMiwgMC42MDY0NzYiLCBcCi0gICAgICAgICAgIjAuMDg1MzA4LCAwLjE3MjIzNywgMC4yNTY2NzcsIDAuMzE3MTk4LCAwLjQxNDE4OCwgMC40OTg5OTksIDAuNjIwMTgyIiwgXAotICAgICAgICAgICIwLjEwNDI0NiwgMC4xOTU5MjEsIDAuMjgwMzAzLCAwLjM0MDc4MSwgMC40Mzc1NDQsIDAuNTIyMjk5LCAwLjY0MzQzIiwgXAotICAgICAgICAgICIwLjExOTMwMiwgMC4yMTY1MTksIDAuMzAxMDAyLCAwLjM2MTQ0NiwgMC40NTgxMzcsIDAuNTQyNzU5LCAwLjY2MzgwNCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1MDk5OCwgMC4yMjM1NTgsIDAuMzk1OTgsIDAuNTE5MTMyLCAwLjcxNjU0MiwgMC44ODg3NTEsIDEuMTM0NTEiLCBcCi0gICAgICAgICAgIjAuMDUxNTI4LCAwLjIyMzQ1OCwgMC4zOTU4NzMsIDAuNTE5MTExLCAwLjcxNjE2MSwgMC44ODg4MTUsIDEuMTM1NTkiLCBcCi0gICAgICAgICAgIjAuMDU2MTcsIDAuMjIzNDgxLCAwLjM5NTk3NCwgMC41MTkzMjYsIDAuNzE2NTk0LCAwLjg4ODYzNSwgMS4xMzU1OSIsIFwKLSAgICAgICAgICAiMC4wNjI4MzUsIDAuMjI0MzAyLCAwLjM5NjA4NSwgMC41MTkwNzgsIDAuNzE2NTk5LCAwLjg4ODU0NCwgMS4xMzUwNiIsIFwKLSAgICAgICAgICAiMC4wNzEzNjQsIDAuMjI3MDA1LCAwLjM5NjA3NCwgMC41MTkxMSwgMC43MTYwODQsIDAuODg4NTY3LCAxLjEzNTI4IiwgXAotICAgICAgICAgICIwLjA4NjA1NiwgMC4yMzM3NDQsIDAuMzk4NDg2LCAwLjUxOTQsIDAuNzE2NTc4LCAwLjg4ODMwNiwgMS4xMzQ1NiIsIFwKLSAgICAgICAgICAiMC4wOTg4MzYsIDAuMjQxNjQ2LCAwLjQwMjcyNywgMC41MjIwNDksIDAuNzE2NTYsIDAuODg4Mjc1LCAxLjEzNDQ4Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTAwMTU2LCAwLjM5MTc3NCwgMC42ODI4MjgsIDAuODkxMjQ1LCAxLjIyMzYzLCAxLjUxNDkxLCAxLjkzMDczIiwgXAotICAgICAgICAgICIwLjExMTA0MSwgMC40MDM0MjQsIDAuNjk0OTAzLCAwLjkwMjcxMywgMS4yMzYxNywgMS41MjcxNiwgMS45NDQ0IiwgXAotICAgICAgICAgICIwLjEyMzYwMSwgMC40MTYzMDksIDAuNzA3ODQxLCAwLjkxNjUyLCAxLjI0OTAxLCAxLjU0MDI5LCAxLjk1Njk3IiwgXAotICAgICAgICAgICIwLjEzNTYyMywgMC40Mjg2MTIsIDAuNzE5OTg3LCAwLjkyODYzMywgMS4yNjE3NCwgMS41NTM0MywgMS45Njg5NSIsIFwKLSAgICAgICAgICAiMC4xNDczNzQsIDAuNDQwMjg4LCAwLjczMTgzOSwgMC45NDA0NzksIDEuMjczNDYsIDEuNTY1NDYsIDEuOTgwOTQiLCBcCi0gICAgICAgICAgIjAuMTY2MDcyLCAwLjQ1ODk2NCwgMC43NTA4MTksIDAuOTU4ODE3LCAxLjI5MjY4LCAxLjU4MzYsIDIuMDAwNjIiLCBcCi0gICAgICAgICAgIjAuMTgyMzM3LCAwLjQ3NTA0NiwgMC43NjcwMzcsIDAuOTc1NDUyLCAxLjMwODMyLCAxLjYwMDIsIDIuMDE1NzciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNDczMzIsIDAuNjk2NDg5LCAxLjI0MjUsIDEuNjQwNTYsIDIuMjY3OTIsIDIuODE4NjQsIDMuNjAzNTkiLCBcCi0gICAgICAgICAgIjAuMTQ3MzY5LCAwLjY5OTE5OCwgMS4yNTE2NSwgMS42NDI2NSwgMi4yNzc2OSwgMi44MTkyMywgMy41ODgzMyIsIFwKLSAgICAgICAgICAiMC4xNDczMTUsIDAuNjk5MzYzLCAxLjI0NzU4LCAxLjYzMTkzLCAyLjI2OTExLCAyLjgxOTIsIDMuNjA1NTkiLCBcCi0gICAgICAgICAgIjAuMTQ3MjUsIDAuNjk5MTQ0LCAxLjI0MjI3LCAxLjY0NTk2LCAyLjI3NTgzLCAyLjgyOTU1LCAzLjYwNTA4IiwgXAotICAgICAgICAgICIwLjE0ODU2NywgMC42OTkwNTgsIDEuMjQ3NjMsIDEuNjMzNCwgMi4yNTkzNSwgMi44MDU4NywgMy42MDQ5OCIsIFwKLSAgICAgICAgICAiMC4xNTE5NTIsIDAuNjk4OTg5LCAxLjI1MTIyLCAxLjY0MDE4LCAyLjI3NzIzLCAyLjgwOTE1LCAzLjYwNTkyIiwgXAotICAgICAgICAgICIwLjE1NTkxNiwgMC42OTU1MDgsIDEuMjQ2OCwgMS42NDU2MiwgMi4yNzE5MywgMi44MDk0NywgMy42MDQ0MiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyODYzMiwgMC4xMTMxNDQsIDAuMTk3MzQ5LCAwLjI1NzQxOSwgMC4zNTM0NjEsIDAuNDM3NjgsIDAuNTU3Njk2IiwgXAotICAgICAgICAgICIwLjA0MDM1OSwgMC4xMjQ3NzMsIDAuMjA4OTU2LCAwLjI2OTA0NCwgMC4zNjUyNCwgMC40NDkyNTUsIDAuNTY5NDE1IiwgXAotICAgICAgICAgICIwLjA1NTEwNiwgMC4xMzkzNzMsIDAuMjIyNTAyLCAwLjI4MjY0MywgMC4zNzg4MDQsIDAuNDYyOTA2LCAwLjU4MzEyNyIsIFwKLSAgICAgICAgICAiMC4wNjk2ODUsIDAuMTU0MjUyLCAwLjIzNzgzOCwgMC4yOTc5NTksIDAuMzk0MDIxLCAwLjQ3ODA5NSwgMC41OTgyMDYiLCBcCi0gICAgICAgICAgIjAuMDgyNjMyLCAwLjE2OTA0NSwgMC4yNTI1NTksIDAuMzEyNTAxLCAwLjQwODY0MSwgMC40OTI2OTksIDAuNjEyNzYyIiwgXAotICAgICAgICAgICIwLjEwMDkwMiwgMC4xOTI2OTMsIDAuMjc2NzI3LCAwLjMzNjAzOSwgMC40MzE4ODUsIDAuNTE1OTEsIDAuNjM1OTkxIiwgXAotICAgICAgICAgICIwLjExNTEyNSwgMC4yMTM0NTMsIDAuMjk3NTUzLCAwLjM1NjY2OCwgMC40NTI0OTgsIDAuNTM2Mzc0LCAwLjY1NjI3NiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0NzcxOSwgMC4yMTg4MTksIDAuMzg5ODgzLCAwLjUxMTkzLCAwLjcwNzEwMywgMC44NzgzMzYsIDEuMTIyMzEiLCBcCi0gICAgICAgICAgIjAuMDQ4NDYsIDAuMjE4ODE3LCAwLjM4OTgwOSwgMC41MTE3OTMsIDAuNzA3Mzg2LCAwLjg3ODExNywgMS4xMjI4NCIsIFwKLSAgICAgICAgICAiMC4wNTM1OTksIDAuMjE4ODI4LCAwLjM5MDA1MSwgMC41MTIwNzUsIDAuNzA3ODE5LCAwLjg3ODEwMywgMS4xMjI1NyIsIFwKLSAgICAgICAgICAiMC4wNjA5ODcsIDAuMjE5NzU3LCAwLjM4OTgwOCwgMC41MTE4NiwgMC43MDcxMjgsIDAuODc4MDA2LCAxLjEyMjI5IiwgXAotICAgICAgICAgICIwLjA2OTc1MywgMC4yMjI2NSwgMC4zODk4OTQsIDAuNTEyMDA0LCAwLjcwNzI5MywgMC44NzgzMjIsIDEuMTIyMzkiLCBcCi0gICAgICAgICAgIjAuMDg1MDg0LCAwLjIyOTY2MSwgMC4zOTI0NTYsIDAuNTEyNTkyLCAwLjcwNzExMiwgMC44Nzg2NDMsIDEuMTIyOSIsIFwKLSAgICAgICAgICAiMC4wOTgwMjEsIDAuMjM3Nzc4LCAwLjM5Njc4NiwgMC41MTUwODYsIDAuNzA3NTAyLCAwLjg3ODIzNCwgMS4xMjI5MyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5NTE4NSwgMC4zODY3OCwgMC42NzgyNDQsIDAuODg2MzMzLCAxLjIxOTI3LCAxLjUxMTAzLCAxLjkyNjY0IiwgXAotICAgICAgICAgICIwLjEwNTE1OSwgMC4zOTc0NDksIDAuNjg4OTMzLCAwLjg5NzE0MywgMS4yMzAwMywgMS41MjE3OSwgMS45Mzc1MyIsIFwKLSAgICAgICAgICAiMC4xMTc1ODcsIDAuNDEwMzkxLCAwLjcwMTkyMiwgMC45MDk4OTEsIDEuMjQzMTUsIDEuNTM0MjgsIDEuOTUxNDciLCBcCi0gICAgICAgICAgIjAuMTMwMDM1LCAwLjQyMjgwMywgMC43MTQzNTIsIDAuOTIyOTU0LCAxLjI1NTQ4LCAxLjU0Nzk3LCAxLjk2MzM4IiwgXAotICAgICAgICAgICIwLjE0MjUyNSwgMC40MzU0OSwgMC43MjcxMzMsIDAuOTM1NjUyLCAxLjI2ODY5LCAxLjU2LCAxLjk3NjQiLCBcCi0gICAgICAgICAgIjAuMTYyNzgxLCAwLjQ1NTksIDAuNzQ3NjIxLCAwLjk1NTkzNCwgMS4yODg4NywgMS41ODA4OCwgMS45OTY3IiwgXAotICAgICAgICAgICIwLjE4MDc0MiwgMC40NzIwMTMsIDAuNzY1NDI1LCAwLjk3Mzc0LCAxLjMwNzI1LCAxLjU5ODIxLCAyLjAxNTIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNDczMywgMC42OTQ4MTMsIDEuMjQzMTYsIDEuNjQwNjMsIDIuMjc1NzksIDIuODI5MTEsIDMuNjA1MTEiLCBcCi0gICAgICAgICAgIjAuMTQ3MzI2LCAwLjY5ODg4NiwgMS4yNTA5MywgMS42NDY0MiwgMi4yNzYwMSwgMi44MzAwNywgMy42MDUxMiIsIFwKLSAgICAgICAgICAiMC4xNDY4NTMsIDAuNjk5MTM0LCAxLjI1MTUzLCAxLjYzNDYzLCAyLjI2OTM2LCAyLjgxOTIzLCAzLjU4Nzk2IiwgXAotICAgICAgICAgICIwLjE0ODI1LCAwLjY5NjcxMSwgMS4yNDczNywgMS42MzMyOCwgMi4yNzA0MiwgMi44MDYyOSwgMy42MDUwMSIsIFwKLSAgICAgICAgICAiMC4xNTAyMjYsIDAuNjk5MTA5LCAxLjI0OTgzLCAxLjY0NjM1LCAyLjI2MTEyLCAyLjgxOTI2LCAzLjU5MTc5IiwgXAotICAgICAgICAgICIwLjE1NjEwMiwgMC42OTg5NTEsIDEuMjQ4OTQsIDEuNjMzNSwgMi4yNzA2OSwgMi44MzA0NywgMy41OTAwNCIsIFwKLSAgICAgICAgICAiMC4xNjI4NTUsIDAuNjk1MDkyLCAxLjI0NzM0LCAxLjYzMzcsIDIuMjYyMDksIDIuODIyMTcsIDMuNjA1NTIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjY0MDcsIDAuMTEwNjkzLCAwLjE5NDk0MywgMC4yNTUwOTYsIDAuMzUxMzQ5LCAwLjQzNTYxMiwgMC41NTYyMTkiLCBcCi0gICAgICAgICAgIjAuMDM4MTIyLCAwLjEyMjM4OSwgMC4yMDY3MjQsIDAuMjY2ODQ0LCAwLjM2MzEzMywgMC40NDczNDMsIDAuNTY4MTE3IiwgXAotICAgICAgICAgICIwLjA1MjkzMywgMC4xMzcwMDYsIDAuMjIxMTEyLCAwLjI4MTI2NSwgMC4zNzYyOTksIDAuNDYwNTY5LCAwLjU4MDk0MSIsIFwKLSAgICAgICAgICAiMC4wNjY5NTYsIDAuMTUxNjEzLCAwLjIzNTYzOSwgMC4yOTU4MDMsIDAuMzkyMDA1LCAwLjQ3NjMxNiwgMC41OTYyOTUiLCBcCi0gICAgICAgICAgIjAuMDc5NDUzLCAwLjE2Njc3MiwgMC4yNDk5NzUsIDAuMzEwNTY5LCAwLjQwNjY3MSwgMC40ODkyNzEsIDAuNjA5NTEyIiwgXAotICAgICAgICAgICIwLjA5Njc5MSwgMC4xOTAzMTksIDAuMjczOTcsIDAuMzMzOTQ3LCAwLjQyOTk5NiwgMC41MTM5ODUsIDAuNjM0NDU3IiwgXAotICAgICAgICAgICIwLjEwOTk2MSwgMC4yMTA5NjMsIDAuMjk1MjQsIDAuMzU0Njc2LCAwLjQ1MDcxNCwgMC41MzQ2OTQsIDAuNjU0OTAzIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQ1MjgyLCAwLjIxNzcwOCwgMC4zODkzMTUsIDAuNTEyMDQ4LCAwLjcxMDA5LCAwLjg4MjQ5NSwgMS4xMjYzOCIsIFwKLSAgICAgICAgICAiMC4wNDYyMjgsIDAuMjE3MzU2LCAwLjM4OTI1OCwgMC41MTMxMjQsIDAuNzEwMjY4LCAwLjg4MDYxLCAxLjEyNjczIiwgXAotICAgICAgICAgICIwLjA1MTc3NCwgMC4yMTczMjQsIDAuMzg5NTI4LCAwLjUxMTk2NiwgMC43MTAyODIsIDAuODgxMzMzLCAxLjEyNjUyIiwgXAotICAgICAgICAgICIwLjA1OTc5LCAwLjIxODQzOSwgMC4zOTAxNjIsIDAuNTEyMTkzLCAwLjcwODgzNSwgMC44ODA3NjQsIDEuMTI2MjMiLCBcCi0gICAgICAgICAgIjAuMDY5MDMxLCAwLjIyMTMyNSwgMC4zODk0NDEsIDAuNTEyNDYsIDAuNzA4NzQ3LCAwLjg4MDgzMywgMS4xMjg4MSIsIFwKLSAgICAgICAgICAiMC4wODQ1MDEsIDAuMjI4NjI0LCAwLjM5MzA3MSwgMC41MTM2NzcsIDAuNzA4NjI2LCAwLjg4MjkwNSwgMS4xMjY1MyIsIFwKLSAgICAgICAgICAiMC4wOTc0NTcsIDAuMjM2ODI1LCAwLjM5NjQwNiwgMC41MTUyNiwgMC43MDg5MTksIDAuODgwODkxLCAxLjEyNjU3Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg0ODg1LCAwLjM3NjU0NiwgMC42Njc3NTUsIDAuODc2NDQ5LCAxLjIwODkyLCAxLjQ5OTYsIDEuOTE2NjUiLCBcCi0gICAgICAgICAgIjAuMDkzOTQzLCAwLjM4NjI1MywgMC42Nzc3NTIsIDAuODg1ODk1LCAxLjIxODk3LCAxLjUxLCAxLjkyNTk1IiwgXAotICAgICAgICAgICIwLjEwNTI3NiwgMC4zOTgxMjcsIDAuNjg5NzA0LCAwLjg5NzY3MiwgMS4yMzA3MiwgMS41MjIwOSwgMS45MzgyNCIsIFwKLSAgICAgICAgICAiMC4xMTc2NDYsIDAuNDEwMDAzLCAwLjcwMTkwNywgMC45MDk4ODYsIDEuMjQyODEsIDEuNTM1LCAxLjk1MDY3IiwgXAotICAgICAgICAgICIwLjEzMDM4OSwgMC40MjMwNjIsIDAuNzE1MTA5LCAwLjkyMzYzNiwgMS4yNTYwOCwgMS41NDc4MiwgMS45NjM3OSIsIFwKLSAgICAgICAgICAiMC4xNTAwNjYsIDAuNDQxNjE5LCAwLjczMzU3NSwgMC45NDE2MjksIDEuMjc0NjYsIDEuNTY2NDYsIDEuOTgzMDIiLCBcCi0gICAgICAgICAgIjAuMTY4MDMzLCAwLjQ1OTk3MiwgMC43NTE4OTgsIDAuOTYwMzEyLCAxLjI5MzUyLCAxLjU4NDY5LCAyLjAwMDg5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTQ3MDEsIDAuNjk5NTkxLCAxLjI0ODk2LCAxLjYzMjc4LCAyLjI2OTE3LCAyLjgxNzMzLCAzLjYwNTQzIiwgXAotICAgICAgICAgICIwLjE0Njk1LCAwLjY5ODI2NywgMS4yNDYwMywgMS42NDQ2MiwgMi4yNjkyMywgMi44MjQ5NSwgMy42MDQ0OCIsIFwKLSAgICAgICAgICAiMC4xNDcyMDIsIDAuNjk4OTU0LCAxLjI1MDgyLCAxLjYzMzc3LCAyLjI1OTMzLCAyLjgyNTg2LCAzLjU5MDUxIiwgXAotICAgICAgICAgICIwLjE0OTc1MSwgMC42OTczNzUsIDEuMjQwODMsIDEuNjMzNTIsIDIuMjY4ODUsIDIuODI4MzIsIDMuNTg4IiwgXAotICAgICAgICAgICIwLjE1Mzk5MywgMC42OTczOTcsIDEuMjQxNjUsIDEuNjMyOTMsIDIuMjU5NDQsIDIuODE5NDMsIDMuNTkwNzciLCBcCi0gICAgICAgICAgIjAuMTYzNTc2LCAwLjY5NDg4OSwgMS4yNTA5NywgMS42NDI1OCwgMi4yNzA4NSwgMi44Mjc2OSwgMy41OTgxNyIsIFwKLSAgICAgICAgICAiMC4xNzMyMzYsIDAuNjk0ODEzLCAxLjI0NjY3LCAxLjY0MDM3LCAyLjI2MDIxLCAyLjgyMjY5LCAzLjU5MDEyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTE2NTUsIDAuMDExNjU2LCAwLjAxMTY1NiwgMC4wMTE2NTQsIDAuMDExNjU1LCAwLjAxMTY1NiwgMC4wMTE2NTIiLCBcCi0gICAgICAgICAgIjAuMDExNTY2LCAwLjAxMTU5NCwgMC4wMTE1OTcsIDAuMDExNTk2LCAwLjAxMTU5NywgMC4wMTE1OTUsIDAuMDExNTk4IiwgXAotICAgICAgICAgICIwLjAxMTUxNSwgMC4wMTE1NjksIDAuMDExNTc1LCAwLjAxMTU3NywgMC4wMTE1NzcsIDAuMDExNTgsIDAuMDExNTc5IiwgXAotICAgICAgICAgICIwLjAxMTQ4NSwgMC4wMTE1NTYsIDAuMDExNTY4LCAwLjAxMTU3MiwgMC4wMTE1NzQsIDAuMDExNTc2LCAwLjAxMTU3NCIsIFwKLSAgICAgICAgICAiMC4wMTE0NjQsIDAuMDExNTQzLCAwLjAxMTU1OCwgMC4wMTE1NjEsIDAuMDExNTY3LCAwLjAxMTU2NywgMC4wMTE1NjkiLCBcCi0gICAgICAgICAgIjAuMDExNDI4LCAwLjAxMTUyNiwgMC4wMTE1NDQsIDAuMDExNTUyLCAwLjAxMTU1NywgMC4wMTE1NjEsIDAuMDExNTY0IiwgXAotICAgICAgICAgICIwLjAxMTQzMywgMC4wMTE1MTYsIDAuMDExNTQxLCAwLjAxMTU0OCwgMC4wMTE1NTIsIDAuMDExNTU1LCAwLjAxMTU1OCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzMTY0LCAwLjAwMzE5NywgMC4wMDMyMDEsIDAuMDAzMjAyLCAwLjAwMzIwMywgMC4wMDMyMDQsIDAuMDAzMjA0IiwgXAotICAgICAgICAgICIwLjAwMzAzMiwgMC4wMDMxNTksIDAuMDAzMTc5LCAwLjAwMzE4NiwgMC4wMDMxOTEsIDAuMDAzMTk0LCAwLjAwMzE5NyIsIFwKLSAgICAgICAgICAiMC4wMDI5MzMsIDAuMDAzMTE3LCAwLjAwMzE1NCwgMC4wMDMxNjUsIDAuMDAzMTc3LCAwLjAwMzE4MiwgMC4wMDMxODciLCBcCi0gICAgICAgICAgIjAuMDAyODcyLCAwLjAwMzA4LCAwLjAwMzEyOSwgMC4wMDMxNDYsIDAuMDAzMTYyLCAwLjAwMzE3LCAwLjAwMzE3OCIsIFwKLSAgICAgICAgICAiMC4wMDI4MzIsIDAuMDAzMDQ4LCAwLjAwMzEwNywgMC4wMDMxMjgsIDAuMDAzMTQ4LCAwLjAwMzE1OSwgMC4wMDMxNjkiLCBcCi0gICAgICAgICAgIjAuMDAyNzkxLCAwLjAwMzAwNywgMC4wMDMwNzgsIDAuMDAzMTA0LCAwLjAwMzEyOSwgMC4wMDMxNDMsIDAuMDAzMTU2IiwgXAotICAgICAgICAgICIwLjAwMjc2NiwgMC4wMDI5NzcsIDAuMDAzMDUyLCAwLjAwMzA4MiwgMC4wMDMxMTIsIDAuMDAzMTI5LCAwLjAwMzE0NCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA5NzQsIDAuMDA5NzQ3LCAwLjAwOTc0NywgMC4wMDk3NDcsIDAuMDA5NzQ3LCAwLjAwOTc0NywgMC4wMDk3NDYiLCBcCi0gICAgICAgICAgIjAuMDA5Njc3LCAwLjAwOTczMywgMC4wMDk3NDEsIDAuMDA5NzQzLCAwLjAwOTc0NCwgMC4wMDk3NDYsIDAuMDA5NzQ1IiwgXAotICAgICAgICAgICIwLjAwOTYxMSwgMC4wMDk3MTIsIDAuMDA5NzI4LCAwLjAwOTczNCwgMC4wMDk3MzgsIDAuMDA5NzM5LCAwLjAwOTc0MiIsIFwKLSAgICAgICAgICAiMC4wMDk1NzQsIDAuMDA5NywgMC4wMDk3MjEsIDAuMDA5NzI4LCAwLjAwOTczNCwgMC4wMDk3MzYsIDAuMDA5NzM5IiwgXAotICAgICAgICAgICIwLjAwOTU0MywgMC4wMDk2ODQsIDAuMDA5NzEsIDAuMDA5NzE5LCAwLjAwOTcyOCwgMC4wMDk3MzEsIDAuMDA5NzM0IiwgXAotICAgICAgICAgICIwLjAwOTUxLCAwLjAwOTY2MiwgMC4wMDk2OTUsIDAuMDA5NzA5LCAwLjAwOTcxOSwgMC4wMDk3MjQsIDAuMDA5NzI5IiwgXAotICAgICAgICAgICIwLjAwOTQ5NywgMC4wMDk2NDcsIDAuMDA5Njg2LCAwLjAwOTY5OSwgMC4wMDk3MTEsIDAuMDA5NzE5LCAwLjAwOTcyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzMTYxLCAwLjAwMzE5NCwgMC4wMDMxOTgsIDAuMDAzMTk5LCAwLjAwMzIsIDAuMDAzMjAxLCAwLjAwMzIwMSIsIFwKLSAgICAgICAgICAiMC4wMDMwMywgMC4wMDMxNTYsIDAuMDAzMTc2LCAwLjAwMzE4MywgMC4wMDMxODgsIDAuMDAzMTkyLCAwLjAwMzE5NCIsIFwKLSAgICAgICAgICAiMC4wMDI5MzEsIDAuMDAzMTE0LCAwLjAwMzE1MSwgMC4wMDMxNjMsIDAuMDAzMTc0LCAwLjAwMzE3OSwgMC4wMDMxODQiLCBcCi0gICAgICAgICAgIjAuMDAyODcyLCAwLjAwMzA4LCAwLjAwMzEyOCwgMC4wMDMxNDUsIDAuMDAzMTYsIDAuMDAzMTY4LCAwLjAwMzE3NiIsIFwKLSAgICAgICAgICAiMC4wMDI4MzIsIDAuMDAzMDQ4LCAwLjAwMzEwNywgMC4wMDMxMjcsIDAuMDAzMTQ3LCAwLjAwMzE1NywgMC4wMDMxNjciLCBcCi0gICAgICAgICAgIjAuMDAyNzkxLCAwLjAwMzAwNCwgMC4wMDMwNzQsIDAuMDAzMTAxLCAwLjAwMzEyNiwgMC4wMDMxNCwgMC4wMDMxNTMiLCBcCi0gICAgICAgICAgIjAuMDAyNzY4LCAwLjAwMjk2MywgMC4wMDMwNSwgMC4wMDMwOCwgMC4wMDMxMSwgMC4wMDMxMjYsIDAuMDAzMTQyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDc2NzQsIDAuMDA3NzAyLCAwLjAwNzcwNiwgMC4wMDc3MDgsIDAuMDA3NzAxLCAwLjAwNzcxMywgMC4wMDc3MDciLCBcCi0gICAgICAgICAgIjAuMDA3NjI4LCAwLjAwNzczNiwgMC4wMDc3NSwgMC4wMDc3NiwgMC4wMDc3NTksIDAuMDA3NzYxLCAwLjAwNzc2MiIsIFwKLSAgICAgICAgICAiMC4wMDc1NTIsIDAuMDA3NzIyLCAwLjAwNzc0MywgMC4wMDc3NTUsIDAuMDA3NzYzLCAwLjAwNzc2OCwgMC4wMDc3NzEiLCBcCi0gICAgICAgICAgIjAuMDA3NTA0LCAwLjAwNzcwNCwgMC4wMDc3MzYsIDAuMDA3NzQ3LCAwLjAwNzc1OCwgMC4wMDc3NjYsIDAuMDA3NzY4IiwgXAotICAgICAgICAgICIwLjAwNzQ1NCwgMC4wMDc2ODMsIDAuMDA3NzEzLCAwLjAwNzczOCwgMC4wMDc3NTMsIDAuMDA3NzU5LCAwLjAwNzc2NiIsIFwKLSAgICAgICAgICAiMC4wMDc0MTgsIDAuMDA3NjU0LCAwLjAwNzcwNCwgMC4wMDc3MzEsIDAuMDA3NzQ1LCAwLjAwNzc1MiwgMC4wMDc3NjEiLCBcCi0gICAgICAgICAgIjAuMDA3Mzg4LCAwLjAwNzYzMSwgMC4wMDc2OTMsIDAuMDA3NzEyLCAwLjAwNzczMywgMC4wMDc3NDYsIDAuMDA3NzUzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDMxNDYsIDAuMDAzMTg2LCAwLjAwMzE5MSwgMC4wMDMxOTIsIDAuMDAzMTkzLCAwLjAwMzE5NCwgMC4wMDMxOTQiLCBcCi0gICAgICAgICAgIjAuMDAyOTk2LCAwLjAwMzE0MywgMC4wMDMxNjYsIDAuMDAzMTczLCAwLjAwMzE4LCAwLjAwMzE4MywgMC4wMDMxODYiLCBcCi0gICAgICAgICAgIjAuMDAyODc2LCAwLjAwMzA5MiwgMC4wMDMxMzQsIDAuMDAzMTQ5LCAwLjAwMzE2MiwgMC4wMDMxNjksIDAuMDAzMTc0IiwgXAotICAgICAgICAgICIwLjAwMjgyMSwgMC4wMDMwNSwgMC4wMDMxMDcsIDAuMDAzMTI3LCAwLjAwMzE0NSwgMC4wMDMxNTQsIDAuMDAzMTYzIiwgXAotICAgICAgICAgICIwLjAwMjc5MywgMC4wMDMwMjEsIDAuMDAzMDg3LCAwLjAwMzExLCAwLjAwMzEzMiwgMC4wMDMxNDQsIDAuMDAzMTU1IiwgXAotICAgICAgICAgICIwLjAwMjc2NCwgMC4wMDI5NzEsIDAuMDAzMDUsIDAuMDAzMDgsIDAuMDAzMTA5LCAwLjAwMzEyNCwgMC4wMDMxMzkiLCBcCi0gICAgICAgICAgIjAuMDAyNzcxLCAwLjAwMjk0OSwgMC4wMDMwMjksIDAuMDAzMDYxLCAwLjAwMzA5MywgMC4wMDMxMTEsIDAuMDAzMTI4Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogTkFORDNYTCAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChOQU5EM1hMKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMDU2ODg4OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA1NDMxMjg7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNTQzMTI4OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDU0MTU3NTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxNjUsIDAuMDAwMTY1LCAwLjAwMDE2NSwgMC4wMDAxNjUsIDAuMDAwMTY1LCAwLjAwMDE2NSwgMC4wMDAxNjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiwgMC4wMDAxNjYiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDU3NDI5MjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA1NzQyOTI7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNTczMzc4OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDE2NSwgMC4wMDAxNjUsIDAuMDAwMTY1LCAwLjAwMDE2NSwgMC4wMDAxNjUsIDAuMDAwMTY1LCAwLjAwMDE2NSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQykgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNTczMzUxOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDU3Mjk1NTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA1NzMzNTE7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMDc1LCAwLjAwMDA3NSwgMC4wMDAwNzUsIDAuMDAwMDc1LCAwLjAwMDA3NSwgMC4wMDAwNzUsIDAuMDAwMDc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMTg4LCAwLjAwMDE4OCwgMC4wMDAxODgsIDAuMDAwMTg4LCAwLjAwMDE4OCwgMC4wMDAxODgsIDAuMDAwMTg4Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMDI0OTY0NzsKLSAgICBmdW5jdGlvbiA6ICIoISgoQSBCKSBDKSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE0NzQ3MiwgMC4xNzI4MDcsIDAuNDAwNDMzLCAwLjc3OTQ4OCwgMS4xNTgwNywgMi4wNDIyOSwgMi41NDc1OCIsIFwKLSAgICAgICAgICAiMC4xNTkxNzgsIDAuMTg0NTA3LCAwLjQxMjA5NiwgMC43OTExODksIDEuMTY5NzgsIDIuMDUzNDgsIDIuNTU5MzciLCBcCi0gICAgICAgICAgIjAuMTczMzIzLCAwLjE5ODYzNiwgMC40MjU2NDEsIDAuODAyNjY5LCAxLjE4MTM1LCAyLjA2NTIsIDIuNTcwODUiLCBcCi0gICAgICAgICAgIjAuMTg3OTU0LCAwLjIxMzIxNiwgMC40NDA2NTMsIDAuODE1ODgyLCAxLjE5NDc2LCAyLjA3ODk1LCAyLjU4NDA4IiwgXAotICAgICAgICAgICIwLjIwMjY2LCAwLjIyNzg5NywgMC40NTUxMDgsIDAuODMzMSwgMS4yMDc5MywgMi4wOTI0MiwgMi41OTc1IiwgXAotICAgICAgICAgICIwLjIyNjgwNSwgMC4yNTE1MTMsIDAuNDc4MzczLCAwLjg1NzE5OSwgMS4yMzAyOCwgMi4xMTQwNCwgMi42MTk2OSIsIFwKLSAgICAgICAgICAiMC4yNDczNzQsIDAuMjcyNjM5LCAwLjQ5ODg5LCAwLjg3NzQ5NCwgMS4yNDk3OSwgMi4xMzM3NywgMi42MzkxNiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yODU5NTMsIDAuMzM3MTQ1LCAwLjc5Nzg1LCAxLjU2NjAzLCAyLjMzMTczLCA0LjEyMjY3LCA1LjE0NTk1IiwgXAotICAgICAgICAgICIwLjI4NTg2MywgMC4zMzcxMzQsIDAuNzk4MTE2LCAxLjU2NTMsIDIuMzMxNjksIDQuMTIyMDgsIDUuMTQ2MjYiLCBcCi0gICAgICAgICAgIjAuMjg1OTQ0LCAwLjMzNzEwMywgMC43OTgxMiwgMS41NjU5MSwgMi4zMzE3OCwgNC4xMjE3NCwgNS4xNDY0MyIsIFwKLSAgICAgICAgICAiMC4yODYwMzIsIDAuMzM3MjI0LCAwLjc5NzYxMywgMS41NjU5NCwgMi4zMzMzMSwgNC4xMjMwNiwgNS4xNDYzIiwgXAotICAgICAgICAgICIwLjI4NzU2MiwgMC4zMzc3NzEsIDAuNzk4MTA1LCAxLjU2NTE2LCAyLjMzMjAzLCA0LjEyMzA5LCA1LjE0NjIzIiwgXAotICAgICAgICAgICIwLjI5MjM3OSwgMC4zNDE0ODksIDAuNzk3NjM1LCAxLjU2NTYyLCAyLjMzMzM5LCA0LjEyMTY4LCA1LjE0NTg2IiwgXAotICAgICAgICAgICIwLjI5ODcyNSwgMC4zNDY2MDMsIDAuNzk3NDE0LCAxLjU2NTEzLCAyLjMzMTg4LCA0LjEyMTgxLCA1LjE0NjI1Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjUwOTI3MiwgMC41OTc5MjMsIDEuMzk1MzksIDIuNzI0OTgsIDQuMDUzMDcsIDcuMTUyNTEsIDguOTIzNzEiLCBcCi0gICAgICAgICAgIjAuNTIxMzMyLCAwLjYwOTc4MywgMS40MDcyNywgMi43MzY0MiwgNC4wNjUwNSwgNy4xNjQ1NywgOC45MzU3NSIsIFwKLSAgICAgICAgICAiMC41MzQ2MDIsIDAuNjIzMTY4LCAxLjQyMTc4LCAyLjc1MDU1LCA0LjA3ODczLCA3LjE3ODE2LCA4Ljk0OTMyIiwgXAotICAgICAgICAgICIwLjU0NzQzNywgMC42MzYyMjMsIDEuNDM0NiwgMi43NjM0NiwgNC4wOTE2LCA3LjE5MTA0LCA4Ljk2MjIzIiwgXAotICAgICAgICAgICIwLjU1OTMzLCAwLjY0ODM1MSwgMS40NDY5NCwgMi43NzYxNiwgNC4xMDM5LCA3LjIwMzQxLCA4Ljk3NDY1IiwgXAotICAgICAgICAgICIwLjU3ODYxOCwgMC42Njc0NzksIDEuNDY1OTIsIDIuNzk1NjIsIDQuMTIzNiwgNy4yMjMwMiwgOC45OTQxOCIsIFwKLSAgICAgICAgICAiMC41OTUzNywgMC42ODQyNTksIDEuNDgyMzIsIDIuODEyNTIsIDQuMTQwNTMsIDcuMjM5OTQsIDkuMDExMSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC45MTUxMTgsIDEuMDg3MjIsIDIuNTc3MjEsIDUuMDc2NywgNy41NTI2OSwgMTMuMzQ1NiwgMTYuNjU3MiIsIFwKLSAgICAgICAgICAiMC45MTk0NjQsIDEuMDg0MTgsIDIuNTg5MjQsIDUuMDc2MTMsIDcuNTUyNDYsIDEzLjM0NTYsIDE2LjY1NzYiLCBcCi0gICAgICAgICAgIjAuOTE5NTk1LCAxLjA4NDEyLCAyLjU3NDUsIDUuMDcyNzEsIDcuNTUyNTcsIDEzLjM0NTUsIDE2LjY1NzEiLCBcCi0gICAgICAgICAgIjAuOTEyODgzLCAxLjA3ODU1LCAyLjU3NDU1LCA1LjA3Mzc4LCA3LjU1MjQ2LCAxMy4zNDU1LCAxNi42NTc2IiwgXAotICAgICAgICAgICIwLjkxODQ4NywgMS4wODcxOSwgMi41NzQ0OCwgNS4wNjY2MiwgNy41NTMxNCwgMTMuMzQ1NCwgMTYuNjU3NiIsIFwKLSAgICAgICAgICAiMC45MTg3ODMsIDEuMDg2OTUsIDIuNTc5MDYsIDUuMDc2OTksIDcuNTUyNTYsIDEzLjM0NTUsIDE2LjY1NzYiLCBcCi0gICAgICAgICAgIjAuOTE5Mzc0LCAxLjA4NjQ1LCAyLjU3NTU3LCA1LjA2NjIyLCA3LjU1MjU5LCAxMy4zNDU1LCAxNi42NTc2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE0NTE1LCAwLjE3MDQxOCwgMC4zOTc4OTYsIDAuNzc2NzIzLCAxLjE1NTU0LCAyLjAzOTY3LCAyLjU0NDM1IiwgXAotICAgICAgICAgICIwLjE1NjczNiwgMC4xODIwMjYsIDAuNDA5MzIxLCAwLjc4ODU5MiwgMS4xNjcxOCwgMi4wNTEwNiwgMi41NTYzOCIsIFwKLSAgICAgICAgICAiMC4xNzE1NSwgMC4xOTY4MDgsIDAuNDI0MjEsIDAuODAzMTI3LCAxLjE4MTg2LCAyLjA2NTc2LCAyLjU3MDIzIiwgXAotICAgICAgICAgICIwLjE4NTY1LCAwLjIxMDgyNCwgMC40MzgwOTEsIDAuODEzMTA1LCAxLjE5MTg3LCAyLjA3NTM2LCAyLjU4MTA4IiwgXAotICAgICAgICAgICIwLjIwMDc4NiwgMC4yMjU1MzUsIDAuNDUyNTc3LCAwLjgzMDUxOSwgMS4yMDU0NywgMi4wODk0NiwgMi41OTM5NyIsIFwKLSAgICAgICAgICAiMC4yMjQ0OSwgMC4yNDk2MzMsIDAuNDc1NzI4LCAwLjg1NDU4OSwgMS4yMzE3MiwgMi4xMDk2OCwgMi42MTUxNyIsIFwKLSAgICAgICAgICAiMC4yNDUwMTQsIDAuMjcwMzk5LCAwLjQ5NjE1OSwgMC44NzQ5MDMsIDEuMjUzNCwgMi4xMjkxMywgMi42MzMxOSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yODMyNjksIDAuMzM0Mjk5LCAwLjc5NDc0NiwgMS41NjIwNywgMi4zMjk0LCA0LjEyMDI1LCA1LjE0NDA5IiwgXAotICAgICAgICAgICIwLjI4MzEyMSwgMC4zMzQ0ODcsIDAuNzk0NjAxLCAxLjU2MjM5LCAyLjMyOTM0LCA0LjEyMDMxLCA1LjE0Mzk0IiwgXAotICAgICAgICAgICIwLjI4MzI3MSwgMC4zMzQ0NjUsIDAuNzk0NzUsIDEuNTYyMTcsIDIuMzI5MzgsIDQuMTIwMzUsIDUuMTQyMDgiLCBcCi0gICAgICAgICAgIjAuMjgzMjA4LCAwLjMzNDQ1MiwgMC43OTQ1MDgsIDEuNTYyNiwgMi4zMjk5NSwgNC4xMTg5NSwgNS4xNDQ0NiIsIFwKLSAgICAgICAgICAiMC4yODQ4NiwgMC4zMzUxMzMsIDAuNzk1MjkyLCAxLjU2MjE4LCAyLjMyOTc1LCA0LjEyMDI4LCA1LjE0NDEyIiwgXAotICAgICAgICAgICIwLjI4OTkwNiwgMC4zMzg4OTQsIDAuNzk0NjE4LCAxLjU2MjA1LCAyLjMyOTU0LCA0LjEyMDAyLCA1LjE0MzY4IiwgXAotICAgICAgICAgICIwLjI5NjQ0NCwgMC4zNDQxNDEsIDAuNzk0NjE2LCAxLjU2MjE2LCAyLjMyODgyLCA0LjEyMDY3LCA1LjE0NDA5Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjUwNDM1OSwgMC41OTI5NjYsIDEuMzkxMTEsIDIuNzIwMzMsIDQuMDQ4MjUsIDcuMTQ3NiwgOC45MTg3NCIsIFwKLSAgICAgICAgICAiMC41MTUyMzIsIDAuNjAzOTUzLCAxLjQwMjI0LCAyLjczMTIxLCA0LjA1OTIyLCA3LjE1ODcyLCA4LjkyOTgzIiwgXAotICAgICAgICAgICIwLjUyODQwMywgMC42MTczODgsIDEuNDE0OTQsIDIuNzQ0NDIsIDQuMDcyNjEsIDcuMTcyMDYsIDguOTQzMjMiLCBcCi0gICAgICAgICAgIjAuNTQxMjA1LCAwLjYzMDI2MywgMS40MjgyOSwgMi43NTc0OCwgNC4wODU3MiwgNy4xODUxOCwgOC45NTYzMiIsIFwKLSAgICAgICAgICAiMC41NTQzNDcsIDAuNjQzMTE0LCAxLjQ0MTMyLCAyLjc3MDcyLCA0LjA5OTAxLCA3LjE5ODUsIDguOTY5NjkiLCBcCi0gICAgICAgICAgIjAuNTc1NDMyLCAwLjY2NDIyNiwgMS40NjMwMiwgMi43OTIwMSwgNC4xMjAwOCwgNy4yMTk1OCwgOC45OTA3NSIsIFwKLSAgICAgICAgICAiMC41OTM0MDQsIDAuNjgyMzYxLCAxLjQ4MDMzLCAyLjgxMDA2LCA0LjEzODM1LCA3LjIzNzk4LCA5LjAwOTE3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjkxOTUzMywgMS4wNzg3MywgMi41NzMyNCwgNS4wNjQxNCwgNy41NTI4NCwgMTMuMzQ1NiwgMTYuNjU3NiIsIFwKLSAgICAgICAgICAiMC45MTk4NzMsIDEuMDgxNDQsIDIuNTk1MywgNS4wNzM4NywgNy41NTM5NSwgMTMuMzQ1NiwgMTYuNjU3MSIsIFwKLSAgICAgICAgICAiMC45MTkyNzQsIDEuMDc5MDEsIDIuNTg2OCwgNS4wNzY2MywgNy41NTI0NSwgMTMuMzQ1NSwgMTYuNjU3NiIsIFwKLSAgICAgICAgICAiMC45MTgxNDgsIDEuMDg3MDgsIDIuNTc4NTksIDUuMDczNDksIDcuNTUyNTIsIDEzLjM0NTUsIDE2LjY1NzEiLCBcCi0gICAgICAgICAgIjAuOTE3ODU4LCAxLjA4NDQ1LCAyLjU5NTMxLCA1LjA3MjE3LCA3LjU1MjQ0LCAxMy4zNDU1LCAxNi42NTcxIiwgXAotICAgICAgICAgICIwLjkxOTA5MywgMS4wODY2MiwgMi41NzM0NSwgNS4wNzY3NywgNy41NTI0MywgMTMuMzQ1NSwgMTYuNjU3NiIsIFwKLSAgICAgICAgICAiMC45MTgyNzksIDEuMDg2NTIsIDIuNTkwOTMsIDUuMDcwODEsIDcuNTUyMzMsIDEzLjM0NTUsIDE2LjY1NzYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTQyMzU0LCAwLjE2NzU4NSwgMC4zOTQ4MjMsIDAuNzczODc2LCAxLjE1MjU4LCAyLjAzNjYzLCAyLjU0MTUzIiwgXAotICAgICAgICAgICIwLjE1NDAwMiwgMC4xNzkyNjMsIDAuNDA2NDgyLCAwLjc4NTM2LCAxLjE2NTA3LCAyLjA0OTQxLCAyLjU1MzUxIiwgXAotICAgICAgICAgICIwLjE2ODQwNywgMC4xOTM2NjksIDAuNDIwMjkyLCAwLjc5NzE4MSwgMS4xNzYwNSwgMi4wNjAzOSwgMi41NjUwNyIsIFwKLSAgICAgICAgICAiMC4xODMwNjYsIDAuMjA4MjI0LCAwLjQzNTMyNCwgMC44MTAyODUsIDEuMTg5ODksIDIuMDcyOTQsIDIuNTc4NCIsIFwKLSAgICAgICAgICAiMC4xOTc3NjIsIDAuMjIyOTY0LCAwLjQ0OTc2NywgMC44Mjc3OTgsIDEuMjAzMTIsIDIuMDg2ODQsIDIuNTkxMjIiLCBcCi0gICAgICAgICAgIjAuMjIxNzcyLCAwLjI0Njk3MiwgMC40NzMxMDUsIDAuODUxOTExLCAxLjIyNTMzLCAyLjEwODMyLCAyLjYxMzg2IiwgXAotICAgICAgICAgICIwLjI0MjQyNCwgMC4yNjc2MywgMC40OTIxODQsIDAuODcyMjM2LCAxLjI0NTIsIDIuMTI4NDcsIDIuNjMzMjciKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjgwMjE0LCAwLjMzMjI1NywgMC43OTQwMTEsIDEuNTYxODIsIDIuMzMwMzEsIDQuMTE5NzEsIDUuMTQ2NTUiLCBcCi0gICAgICAgICAgIjAuMjgwOTY0LCAwLjMzMTQ1NCwgMC43OTQyOTgsIDEuNTYzNzcsIDIuMzI5MDYsIDQuMTIxNzMsIDUuMTQzOTgiLCBcCi0gICAgICAgICAgIjAuMjgwOTU2LCAwLjMzMjI2MSwgMC43OTIxMTYsIDEuNTYzMzQsIDIuMzI4MDgsIDQuMTE5NTcsIDUuMTQ2NTciLCBcCi0gICAgICAgICAgIjAuMjgwNDg3LCAwLjMzMjM1OSwgMC43OTM5ODIsIDEuNTYzNzIsIDIuMzI5MDMsIDQuMTIwNTMsIDUuMTQ1NTgiLCBcCi0gICAgICAgICAgIjAuMjgyOTU0LCAwLjMzMjQzOSwgMC43OTQyNzEsIDEuNTU5OTksIDIuMzI3NTUsIDQuMTE5NzcsIDUuMTQ1NzciLCBcCi0gICAgICAgICAgIjAuMjg4NTc3LCAwLjMzNjQzLCAwLjc5MjgwMywgMS41NjAxNCwgMi4zMjc5MywgNC4xMjg3LCA1LjE0NjkxIiwgXAotICAgICAgICAgICIwLjI5NDIxMSwgMC4zNDIzMDEsIDAuNzkyMTE1LCAxLjU2MDE3LCAyLjMyODgyLCA0LjExOTk1LCA1LjE0NTk4Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjQ5Mzc3OCwgMC41ODI0MjUsIDEuMzc5OTYsIDIuNzA5NSwgNC4wMzc5MiwgNy4xMzcxLCA4LjkwODM5IiwgXAotICAgICAgICAgICIwLjUwNDEyLCAwLjU5MjU2MSwgMS4zOTExNywgMi43MTk5MywgNC4wNDc4NCwgNy4xNDc1LCA4LjkxODYyIiwgXAotICAgICAgICAgICIwLjUxNjA3MSwgMC42MDQ4MzMsIDEuNDAyNDcsIDIuNzMyMjMsIDQuMDYwMzQsIDcuMTU5ODgsIDguOTMxMSIsIFwKLSAgICAgICAgICAiMC41Mjg0MzEsIDAuNjE3MTI2LCAxLjQxNTYyLCAyLjc0NDY4LCA0LjA3Mjk4LCA3LjE3MjQ1LCA4Ljk0MzYyIiwgXAotICAgICAgICAgICIwLjU0MDg4LCAwLjYyOTYxNywgMS40MjgzOSwgMi43NTc0NywgNC4wODU1OCwgNy4xODUwNSwgOC45NTYyMiIsIFwKLSAgICAgICAgICAiMC41NjA2NDYsIDAuNjQ5MzgxLCAxLjQ0ODI5LCAyLjc3NzU4LCA0LjEwNTQ5LCA3LjIwNTEsIDguOTc2MjYiLCBcCi0gICAgICAgICAgIjAuNTc4MDg4LCAwLjY2NzA5NiwgMS40NjUxMiwgMi43OTQ5NCwgNC4xMjMzNSwgNy4yMjI3MiwgOC45OTM5MSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC45MTcwMjgsIDEuMDc5NSwgMi41NzU3NCwgNS4wNzY1MywgNy41NTI4MiwgMTMuMzQ1NCwgMTYuNjU3NCIsIFwKLSAgICAgICAgICAiMC45MTk1NzMsIDEuMDg2OCwgMi41NzQ0NywgNS4wNzM3NiwgNy41NTI0OSwgMTMuMzQ1NiwgMTYuNjU3MSIsIFwKLSAgICAgICAgICAiMC45MTM4MzcsIDEuMDgyMzQsIDIuNTg4MTUsIDUuMDczOTEsIDcuNTUyMzQsIDEzLjM0NTUsIDE2LjY1NzYiLCBcCi0gICAgICAgICAgIjAuOTEzMzQxLCAxLjA4NjI5LCAyLjU5NDI3LCA1LjA3MTkyLCA3LjU1MjQ0LCAxMy4zNDU1LCAxNi42NTcxIiwgXAotICAgICAgICAgICIwLjkxOTIxNiwgMS4wODcwMiwgMi41OTU0NywgNS4wNzY3NywgNy41NTI0OSwgMTMuMzQ1NSwgMTYuNjU3NiIsIFwKLSAgICAgICAgICAiMC45MTg3OCwgMS4wODQ3NSwgMi41OTU5NSwgNS4wNzY4NCwgNy41NTIzMiwgMTMuMzQ1NSwgMTYuNjU3MSIsIFwKLSAgICAgICAgICAiMC45MTU2MzQsIDEuMDg2NTIsIDIuNTgzNiwgNS4wNzM5MSwgNy41NTIyNSwgMTMuMzQ1LCAxNi42NTc2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxMTY5LCAwLjAwMTE2OSwgMC4wMDExNjksIDAuMDAxMTY4LCAwLjAwMTE2OCwgMC4wMDExNjcsIDAuMDAxMTY3IiwgXAotICAgICAgICAgICIwLjAwMTE2NCwgMC4wMDExNjQsIDAuMDAxMTY0LCAwLjAwMTE2MywgMC4wMDExNjMsIDAuMDAxMTYyLCAwLjAwMTE2MSIsIFwKLSAgICAgICAgICAiMC4wMDExNjEsIDAuMDAxMTYyLCAwLjAwMTE2MiwgMC4wMDExNjIsIDAuMDAxMTYxLCAwLjAwMTE2LCAwLjAwMTE2IiwgXAotICAgICAgICAgICIwLjAwMTE2LCAwLjAwMTE2MSwgMC4wMDExNjEsIDAuMDAxMTYxLCAwLjAwMTE2MSwgMC4wMDExNiwgMC4wMDExNTkiLCBcCi0gICAgICAgICAgIjAuMDAxMTYsIDAuMDAxMTYsIDAuMDAxMTYxLCAwLjAwMTE2MSwgMC4wMDExNjEsIDAuMDAxMTYsIDAuMDAxMTU5IiwgXAotICAgICAgICAgICIwLjAwMTE1OCwgMC4wMDExNTksIDAuMDAxMTYsIDAuMDAxMTYxLCAwLjAwMTE2LCAwLjAwMTE1OSwgMC4wMDExNTkiLCBcCi0gICAgICAgICAgIjAuMDAxMTU4LCAwLjAwMTE1OCwgMC4wMDExNTgsIDAuMDAxMTYsIDAuMDAxMTYsIDAuMDAxMTU5LCAwLjAwMTE1OSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDQxOCwgMC4wMDA0MTgsIDAuMDAwNDE4LCAwLjAwMDQxOCwgMC4wMDA0MTgsIDAuMDAwNDE4LCAwLjAwMDQxOCIsIFwKLSAgICAgICAgICAiMC4wMDA0MTUsIDAuMDAwNDE1LCAwLjAwMDQxNywgMC4wMDA0MTgsIDAuMDAwNDE4LCAwLjAwMDQxOCwgMC4wMDA0MTgiLCBcCi0gICAgICAgICAgIjAuMDAwNDEyLCAwLjAwMDQxMywgMC4wMDA0MTYsIDAuMDAwNDE3LCAwLjAwMDQxNywgMC4wMDA0MTgsIDAuMDAwNDE4IiwgXAotICAgICAgICAgICIwLjAwMDQwOSwgMC4wMDA0MTEsIDAuMDAwNDE1LCAwLjAwMDQxNiwgMC4wMDA0MTcsIDAuMDAwNDE3LCAwLjAwMDQxNyIsIFwKLSAgICAgICAgICAiMC4wMDA0MDcsIDAuMDAwNDA4LCAwLjAwMDQxNCwgMC4wMDA0MTYsIDAuMDAwNDE3LCAwLjAwMDQxNywgMC4wMDA0MTciLCBcCi0gICAgICAgICAgIjAuMDAwNDAzLCAwLjAwMDQwNSwgMC4wMDA0MTIsIDAuMDAwNDE1LCAwLjAwMDQxNiwgMC4wMDA0MTcsIDAuMDAwNDE3IiwgXAotICAgICAgICAgICIwLjAwMDQsIDAuMDAwNDAyLCAwLjAwMDQxLCAwLjAwMDQxNCwgMC4wMDA0MTUsIDAuMDAwNDE2LCAwLjAwMDQxNyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDk4OCwgMC4wMDA5ODgsIDAuMDAwOTg4LCAwLjAwMDk4OCwgMC4wMDA5ODgsIDAuMDAwOTg3LCAwLjAwMDk4NyIsIFwKLSAgICAgICAgICAiMC4wMDA5ODcsIDAuMDAwOTg3LCAwLjAwMDk4OCwgMC4wMDA5ODgsIDAuMDAwOTg4LCAwLjAwMDk4OCwgMC4wMDA5ODciLCBcCi0gICAgICAgICAgIjAuMDAwOTg2LCAwLjAwMDk4NiwgMC4wMDA5ODgsIDAuMDAwOTg4LCAwLjAwMDk4OCwgMC4wMDA5ODcsIDAuMDAwOTg3IiwgXAotICAgICAgICAgICIwLjAwMDk4NSwgMC4wMDA5ODQsIDAuMDAwOTg3LCAwLjAwMDk4NywgMC4wMDA5ODcsIDAuMDAwOTg3LCAwLjAwMDk4NyIsIFwKLSAgICAgICAgICAiMC4wMDA5ODMsIDAuMDAwOTg0LCAwLjAwMDk4NiwgMC4wMDA5ODcsIDAuMDAwOTg3LCAwLjAwMDk4NywgMC4wMDA5ODYiLCBcCi0gICAgICAgICAgIjAuMDAwOTgyLCAwLjAwMDk4MywgMC4wMDA5ODYsIDAuMDAwOTg3LCAwLjAwMDk4NywgMC4wMDA5ODcsIDAuMDAwOTg2IiwgXAotICAgICAgICAgICIwLjAwMDk4MSwgMC4wMDA5ODIsIDAuMDAwOTg1LCAwLjAwMDk4NiwgMC4wMDA5ODcsIDAuMDAwOTg3LCAwLjAwMDk4NiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDQxOCwgMC4wMDA0MTgsIDAuMDAwNDE4LCAwLjAwMDQyMiwgMC4wMDA0MTgsIDAuMDAwNDE4LCAwLjAwMDQxOCIsIFwKLSAgICAgICAgICAiMC4wMDA0MTUsIDAuMDAwNDE1LCAwLjAwMDQxNywgMC4wMDA0MTgsIDAuMDAwNDE4LCAwLjAwMDQxOCwgMC4wMDA0MTgiLCBcCi0gICAgICAgICAgIjAuMDAwNDEyLCAwLjAwMDQxMywgMC4wMDA0MTYsIDAuMDAwNDE3LCAwLjAwMDQxNywgMC4wMDA0MTgsIDAuMDAwNDE4IiwgXAotICAgICAgICAgICIwLjAwMDQwOSwgMC4wMDA0MSwgMC4wMDA0MTUsIDAuMDAwNDE2LCAwLjAwMDQxNywgMC4wMDA0MTcsIDAuMDAwNDE3IiwgXAotICAgICAgICAgICIwLjAwMDQwNywgMC4wMDA0MDgsIDAuMDAwNDE0LCAwLjAwMDQxNiwgMC4wMDA0MTcsIDAuMDAwNDE3LCAwLjAwMDQxNyIsIFwKLSAgICAgICAgICAiMC4wMDA0MDMsIDAuMDAwNDA1LCAwLjAwMDQxMiwgMC4wMDA0MTUsIDAuMDAwNDE2LCAwLjAwMDQxNywgMC4wMDA0MTciLCBcCi0gICAgICAgICAgIjAuMDAwNCwgMC4wMDA0MDIsIDAuMDAwNDEsIDAuMDAwNDE0LCAwLjAwMDQxNSwgMC4wMDA0MTYsIDAuMDAwNDE3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwNzk1LCAwLjAwMDc5NSwgMC4wMDA3OTUsIDAuMDAwNzk1LCAwLjAwMDc5NSwgMC4wMDA3OTUsIDAuMDAwNzk1IiwgXAotICAgICAgICAgICIwLjAwMDc5OCwgMC4wMDA3OTgsIDAuMDAwOCwgMC4wMDA4LCAwLjAwMDgsIDAuMDAwOCwgMC4wMDA4IiwgXAotICAgICAgICAgICIwLjAwMDc5NywgMC4wMDA3OTgsIDAuMDAwOCwgMC4wMDA4MDEsIDAuMDAwODAxLCAwLjAwMDgwMSwgMC4wMDA4MDEiLCBcCi0gICAgICAgICAgIjAuMDAwNzk2LCAwLjAwMDc5NiwgMC4wMDA4LCAwLjAwMDgwMSwgMC4wMDA4MDEsIDAuMDAwODAxLCAwLjAwMDgwMSIsIFwKLSAgICAgICAgICAiMC4wMDA3OTUsIDAuMDAwNzk2LCAwLjAwMDc5OSwgMC4wMDA4MDEsIDAuMDAwODAxLCAwLjAwMDgwMiwgMC4wMDA4MDIiLCBcCi0gICAgICAgICAgIjAuMDAwNzkzLCAwLjAwMDc5NCwgMC4wMDA3OTgsIDAuMDAwOCwgMC4wMDA4MDEsIDAuMDAwODAxLCAwLjAwMDgwMSIsIFwKLSAgICAgICAgICAiMC4wMDA3OTEsIDAuMDAwNzkyLCAwLjAwMDc5NSwgMC4wMDA4LCAwLjAwMDgwMSwgMC4wMDA4MDEsIDAuMDAwODAxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwNDE3LCAwLjAwMDQxNywgMC4wMDA0MTgsIDAuMDAwNDE4LCAwLjAwMDQxOCwgMC4wMDA0MTgsIDAuMDAwNDE4IiwgXAotICAgICAgICAgICIwLjAwMDQxNCwgMC4wMDA0MTUsIDAuMDAwNDE3LCAwLjAwMDQxNywgMC4wMDA0MTgsIDAuMDAwNDE4LCAwLjAwMDQxOCIsIFwKLSAgICAgICAgICAiMC4wMDA0MTEsIDAuMDAwNDEyLCAwLjAwMDQxNSwgMC4wMDA0MTcsIDAuMDAwNDE3LCAwLjAwMDQxOCwgMC4wMDA0MTciLCBcCi0gICAgICAgICAgIjAuMDAwNDA3LCAwLjAwMDQwOSwgMC4wMDA0MTQsIDAuMDAwNDE2LCAwLjAwMDQxNywgMC4wMDA0MTcsIDAuMDAwNDE3IiwgXAotICAgICAgICAgICIwLjAwMDQwNCwgMC4wMDA0MDYsIDAuMDAwNDEzLCAwLjAwMDQxNSwgMC4wMDA0MTYsIDAuMDAwNDE3LCAwLjAwMDQxNyIsIFwKLSAgICAgICAgICAiMC4wMDA0MDEsIDAuMDAwNDAzLCAwLjAwMDQxMSwgMC4wMDA0MTQsIDAuMDAwNDE1LCAwLjAwMDQxNiwgMC4wMDA0MTciLCBcCi0gICAgICAgICAgIjAuMDAwMzk4LCAwLjAwMDQsIDAuMDAwNDA5LCAwLjAwMDQxMywgMC4wMDA0MTUsIDAuMDAwNDE2LCAwLjAwMDQxNiIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogTkFORDRCQlgyICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoTkFORDRCQlgyKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMjk3MzA0OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBTikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjA1OTA3OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYwNTY2NTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2MDU5MDc7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNjcsIDAuMDAwNjU2LCAwLjAwMDY0NiwgMC4wMDA2MzksIDAuMDAwNjM2LCAwLjAwMDYzMywgMC4wMDA2MzEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDE3MTksIDAuMDAxNzEsIDAuMDAxNzA0LCAwLjAwMTcsIDAuMDAxNjk4LCAwLjAwMTY5NywgMC4wMDE2OTYiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEJOKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2MDg3MTI7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjA4NjA0OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDYwODcxMjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA2NTgsIDAuMDAwNjQ1LCAwLjAwMDYzNSwgMC4wMDA2MywgMC4wMDA2MjYsIDAuMDAwNjI0LCAwLjAwMDYyNCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTkyMiwgMC4wMDE5MTQsIDAuMDAxOTA4LCAwLjAwMTkwMywgMC4wMDE5MDEsIDAuMDAxOTAxLCAwLjAwMTg5OSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQykgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNTA4Njg7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNTA4Njg7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNTA0MTM7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNjEyLCAwLjAwMDYxMiwgMC4wMDA2MTEsIDAuMDAwNjExLCAwLjAwMDYxMSwgMC4wMDA2MTEsIDAuMDAwNjExIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNjI1LCAwLjAwMDYxNywgMC4wMDA2MTUsIDAuMDAwNjE1LCAwLjAwMDYxNSwgMC4wMDA2MTUsIDAuMDAwNjE1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihEKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE1NTY1NDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE1NTUxMjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE1NTY1NDsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAwMzQsIDAuMDAwMDM0LCAwLjAwMDAzMywgMC4wMDAwMzMsIDAuMDAwMDM0LCAwLjAwMDAzNCwgMC4wMDAwMzQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA2OTUsIDAuMDAwNjk2LCAwLjAwMDY5NSwgMC4wMDA2OTUsIDAuMDAwNjk2LCAwLjAwMDY5NiwgMC4wMDA2OTYiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4wNjE4OTY0OwotICAgIGZ1bmN0aW9uIDogIighKCgoKCFCTikgKCFBTikpIEMpIEQpKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQU4iOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExNjAzNCwgMC4yOTc4ODcsIDAuNDQxNjk1LCAwLjYyMTExMiwgMC44MDAzNzQsIDAuOTc5NjEsIDEuMTU4NzQiLCBcCi0gICAgICAgICAgIjAuMTI3NzYxLCAwLjMwOTU0MywgMC40NTMzNCwgMC42MzI3NzksIDAuODEyMDYzLCAwLjk5MTM2NiwgMS4xNzA1MSIsIFwKLSAgICAgICAgICAiMC4xNDMxOCwgMC4zMjUxMywgMC40Njg5MzgsIDAuNjQ4MzY3LCAwLjgyNzY0NSwgMS4wMDY5MSwgMS4xODYwOCIsIFwKLSAgICAgICAgICAiMC4xNTg2NDMsIDAuMzQwNjA5LCAwLjQ4NDQxLCAwLjY2Mzg4NCwgMC44NDMxNiwgMS4wMjIzOCwgMS4yMDE1OCIsIFwKLSAgICAgICAgICAiMC4xNzM0NTMsIDAuMzU1MzIxLCAwLjQ5OTE2NywgMC42Nzg1NjMsIDAuODU3Njc1LCAxLjAzNzA2LCAxLjIxNjMzIiwgXAotICAgICAgICAgICIwLjE5NzY5LCAwLjM3OTUwOCwgMC41MjMzNTUsIDAuNzAyNzU4LCAwLjg4MjA5NywgMS4wNjEyOSwgMS4yNDA1MSIsIFwKLSAgICAgICAgICAiMC4yMTc2MjQsIDAuMzk5NTQsIDAuNTQzNDA1LCAwLjcyMjc5MiwgMC45MDIxMzIsIDEuMDgxMzEsIDEuMjYwNTUiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTE1NTA0LCAwLjQ3NjYsIDAuNzY3NjUxLCAxLjEzMTI2LCAxLjQ5NSwgMS44NTk1NCwgMi4yMjI4OCIsIFwKLSAgICAgICAgICAiMC4xMTU0NjYsIDAuNDc2NDY5LCAwLjc2NzY0OSwgMS4xMzE3NSwgMS40OTU3OCwgMS44NTk3LCAyLjIyMjU2IiwgXAotICAgICAgICAgICIwLjExNTQ4MiwgMC40NzY0OTEsIDAuNzY3NjIyLCAxLjEzMTgsIDEuNDk2MDcsIDEuODU5MjEsIDIuMjIzNTciLCBcCi0gICAgICAgICAgIjAuMTE1NDc4LCAwLjQ3NjUwNiwgMC43Njc2NDMsIDEuMTMxNTksIDEuNDk0OTgsIDEuODU4NzUsIDIuMjIyNTQiLCBcCi0gICAgICAgICAgIjAuMTE1NzA3LCAwLjQ3NjYxMSwgMC43Njc2ODUsIDEuMTMxNzUsIDEuNDk1NzEsIDEuODU4NzIsIDIuMjIzNjEiLCBcCi0gICAgICAgICAgIjAuMTE1ODg2LCAwLjQ3NjU3MSwgMC43Njc2NzYsIDEuMTMxNzMsIDEuNDk1NDQsIDEuODU5MDIsIDIuMjIzNTYiLCBcCi0gICAgICAgICAgIjAuMTE2NjAxLCAwLjQ3NjYwMywgMC43Njc3MDQsIDEuMTMxNzQsIDEuNDk1MzcsIDEuODU5MDksIDIuMjIzNTciKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzI1MDE1LCAxLjE2NTE3LCAxLjgzNjM5LCAyLjY3NDU4LCAzLjUxMjgyLCA0LjM1MDc5LCA1LjE4ODg1IiwgXAotICAgICAgICAgICIwLjMzNjU2NywgMS4xNzYxOCwgMS44NDc1NSwgMi42ODU3NCwgMy41MjQyMSwgNC4zNjI0MSwgNS4yMDA1NiIsIFwKLSAgICAgICAgICAiMC4zNTA5NTEsIDEuMTkxMDgsIDEuODYyNCwgMi43MDA5MSwgMy41Mzg3MywgNC4zNzcxMSwgNS4yMTUzMSIsIFwKLSAgICAgICAgICAiMC4zNjU1OTMsIDEuMjA1NDYsIDEuODc2NzIsIDIuNzE1NzIsIDMuNTUzNTYsIDQuMzkxOTQsIDUuMjMwMDEiLCBcCi0gICAgICAgICAgIjAuMzc5OTQ3LCAxLjIxOTg2LCAxLjg5MTE2LCAyLjczMDIyLCAzLjU2ODA4LCA0LjQwNjQ2LCA1LjI0NDUyIiwgXAotICAgICAgICAgICIwLjQwMTMyNSwgMS4yNDE0OSwgMS45MTI4NSwgMi43NTEyOSwgMy41ODk2NiwgNC40MjgwNSwgNS4yNjYwNSIsIFwKLSAgICAgICAgICAiMC40MTg0MDYsIDEuMjU5MTIsIDEuOTMwMDcsIDIuNzY5MDksIDMuNjA2OTUsIDQuNDQ1MzYsIDUuMjgzNTIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuNDM1NDI5LCAyLjAwNzk1LCAzLjI3MzIxLCA0LjgxODU3LCA2LjM3NzE4LCA3LjkzNzYyLCA5LjQ5NTg4IiwgXAotICAgICAgICAgICIwLjQzNTQzNSwgMS45OTg0NywgMy4yNTI5NCwgNC44Mjc1NiwgNi4zODE1NSwgNy45MzgxNiwgOS40OTUzOSIsIFwKLSAgICAgICAgICAiMC40MzQ0NjksIDIuMDA3NTUsIDMuMjcyOTksIDQuODI4LCA2LjM4MTQyLCA3LjkzNzk0LCA5LjQ5NTkyIiwgXAotICAgICAgICAgICIwLjQzNDQ3NiwgMi4wMDYwOCwgMy4yNTA2MSwgNC44MjgwNywgNi4zODEzNiwgNy45Mzc5MiwgOS40OTUwNSIsIFwKLSAgICAgICAgICAiMC40MzQ1MDEsIDIuMDEwMTEsIDMuMjUwODYsIDQuODI4MDksIDYuMzgxMzgsIDcuOTM4MjMsIDkuNDk0OTQiLCBcCi0gICAgICAgICAgIjAuNDM0NDk3LCAxLjk5ODM5LCAzLjI1MDE2LCA0LjgyNzU1LCA2LjM4MTMzLCA3LjkzODIsIDkuNDk1NzgiLCBcCi0gICAgICAgICAgIjAuNDM1NDQ4LCAyLjAwNzc1LCAzLjI0OTU0LCA0LjgyODE1LCA2LjM4MTQzLCA3LjkzODI5LCA5LjQ5NTQyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkJOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMjA2NjgsIDAuMzAyNDUxLCAwLjQ0Njg2OSwgMC42MjcxOTEsIDAuODA3NDIyLCAwLjk4NzYyNCwgMS4xNjc3OSIsIFwKLSAgICAgICAgICAiMC4xMzI1MDQsIDAuMzE0MjM2LCAwLjQ1ODY1NywgMC42Mzg5OTEsIDAuODE5Mjg3LCAwLjk5OTQ4NiwgMS4xNzk3NSIsIFwKLSAgICAgICAgICAiMC4xNDgwMjksIDAuMzI5ODY1LCAwLjQ3NDI1LCAwLjY1NDYxOSwgMC44MzQ4NTUsIDEuMDE1MDUsIDEuMTk1MjciLCBcCi0gICAgICAgICAgIjAuMTYzMzc1LCAwLjM0NTMsIDAuNDg5NzIzLCAwLjY3MDAzOCwgMC44NTAzMzUsIDEuMDMwNDgsIDEuMjEwNzciLCBcCi0gICAgICAgICAgIjAuMTc4NTMxLCAwLjM2MDMyMSwgMC41MDQ3MzEsIDAuNjg1MDY1LCAwLjg2NTEyMywgMS4wNDU1OCwgMS4yMjU3IiwgXAotICAgICAgICAgICIwLjIwMjc1MywgMC4zODQ1NDksIDAuNTI4OTQ1LCAwLjcwOTI5MiwgMC44ODk1NTgsIDEuMDY5NzYsIDEuMjQ5OTMiLCBcCi0gICAgICAgICAgIjAuMjIzMzk0LCAwLjQwNTE5LCAwLjU0OTU4OSwgMC43Mjk5MzgsIDAuOTEwMTkzLCAxLjA5MDM5LCAxLjI3MDU4Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExMzk3LCAwLjQ3NTkwMSwgMC43Njg3MDIsIDEuMTM1OTUsIDEuNTAxMzcsIDEuODY3NzcsIDIuMjMzNjkiLCBcCi0gICAgICAgICAgIjAuMTEzODgxLCAwLjQ3NTU4MywgMC43NjkwNDksIDEuMTM1OTUsIDEuNTAxMjYsIDEuODY3OTcsIDIuMjM1NjgiLCBcCi0gICAgICAgICAgIjAuMTEzODExLCAwLjQ3NjAxMSwgMC43NjkwODgsIDEuMTM1MDEsIDEuNTAxNTgsIDEuODY3NDUsIDIuMjM0MjIiLCBcCi0gICAgICAgICAgIjAuMTEzNzExLCAwLjQ3NjAyNiwgMC43Njg5NDMsIDEuMTM1OTIsIDEuNTAxMjYsIDEuODY3NDQsIDIuMjM1NSIsIFwKLSAgICAgICAgICAiMC4xMTM5NDcsIDAuNDc2MDQ2LCAwLjc2OTMwOSwgMS4xMzU5NSwgMS41MDIzOSwgMS44Njc5NiwgMi4yMzQyNyIsIFwKLSAgICAgICAgICAiMC4xMTQwNzIsIDAuNDc2MDU5LCAwLjc2OTA5MiwgMS4xMzU5NSwgMS41MDE1NywgMS44NjgzMiwgMi4yMzQxNCIsIFwKLSAgICAgICAgICAiMC4xMTQ2OTgsIDAuNDc2MTExLCAwLjc2OTEyNCwgMS4xMzU5NSwgMS41MDEzNiwgMS44NjkyMSwgMi4yMzQxNSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMTkxMjQsIDEuMTU5MTQsIDEuODMwMDksIDIuNjY4OTUsIDMuNTA2NiwgNC4zNDUxNSwgNS4xODMwOCIsIFwKLSAgICAgICAgICAiMC4zMzA1MjIsIDEuMTcwMjUsIDEuODQxNDcsIDIuNjgwNjgsIDMuNTE4MTYsIDQuMzU2NjYsIDUuMTk0NjEiLCBcCi0gICAgICAgICAgIjAuMzQ1MTEzLCAxLjE4NTA2LCAxLjg1NTgzLCAyLjY5NTUxLCAzLjUzMjgsIDQuMzcxNDUsIDUuMjA5NDIiLCBcCi0gICAgICAgICAgIjAuMzU5Nzg5LCAxLjIwMDE0LCAxLjg3MTE5LCAyLjcxMDA0LCAzLjU0Nzc2LCA0LjM4NjMxLCA1LjIyNDI0IiwgXAotICAgICAgICAgICIwLjM3NDIwNSwgMS4yMTQ4MiwgMS44ODU4NCwgMi43MjQ1LCAzLjU2MjgsIDQuNDAwODYsIDUuMjM4NzkiLCBcCi0gICAgICAgICAgIjAuMzk2MDcsIDEuMjM2NTUsIDEuOTA4MjgsIDIuNzQ2NTUsIDMuNTg0ODUsIDQuNDIyNzcsIDUuMjYwOTEiLCBcCi0gICAgICAgICAgIjAuNDEzNzAzLCAxLjI1Mzk3LCAxLjkyNTU0LCAyLjc2NDM5LCAzLjYwMjQ0LCA0LjQ0MDU4LCA1LjI3ODY1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjQzMjkzNSwgMi4wMDc3MywgMy4yNzI3NCwgNC44MTQxLCA2LjM4MDg2LCA3LjkzNDY2LCA5LjQ5NjUxIiwgXAotICAgICAgICAgICIwLjQzMjgzMSwgMi4wMDcxMiwgMy4yNzI2NCwgNC44MTA5MywgNi4zODE0NSwgNy45Mzg0LCA5LjQ5NjgxIiwgXAotICAgICAgICAgICIwLjQzNDQ2NSwgMS45OTc4NywgMy4yNzAyLCA0LjgxNDM1LCA2LjM4MTI0LCA3LjkzODA4LCA5LjQ5NjcyIiwgXAotICAgICAgICAgICIwLjQzMzY2NCwgMi4wMDc2LCAzLjI3Mjc1LCA0LjgxMzQ0LCA2LjM4MTM5LCA3LjkzNjk2LCA5LjQ5NjIiLCBcCi0gICAgICAgICAgIjAuNDM1MzgzLCAyLjAwNzgsIDMuMjcyODcsIDQuODE4NDYsIDYuMzc3MzcsIDcuOTM3MzUsIDkuNDk2MDQiLCBcCi0gICAgICAgICAgIjAuNDMzMjM0LCAxLjk5NzUyLCAzLjI3MzIxLCA0LjgxODQ3LCA2LjM3NzQxLCA3LjkzNzg1LCA5LjQ5NTY1IiwgXAotICAgICAgICAgICIwLjQzMzAyNywgMS45OTg0OSwgMy4yNTI4LCA0LjgxMzY1LCA2LjM4MDkzLCA3LjkzNzg0LCA5LjQ5NTU2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1NjAxNiwgMC4yMzY2MywgMC4zODA4NTQsIDAuNTYwOTQyLCAwLjc0MTQwOCwgMC45MjEzMjUsIDEuMTAxOCIsIFwKLSAgICAgICAgICAiMC4wNjc2ODYsIDAuMjQ3ODgzLCAwLjM5MjA2NiwgMC41NzIyMjcsIDAuNzUyNDM2LCAwLjkzMjU2LCAxLjExMjc4IiwgXAotICAgICAgICAgICIwLjA4MjY0MiwgMC4yNjMxNzUsIDAuNDA3MjcxLCAwLjU4NzQyLCAwLjc2NzUxNCwgMC45NDc2ODQsIDEuMTI4MTIiLCBcCi0gICAgICAgICAgIjAuMDk3MjQ5LCAwLjI3NzIzOSwgMC40MjIyODIsIDAuNjAyMjMxLCAwLjc4MjUyNywgMC45NjI2NjcsIDEuMTQyNzUiLCBcCi0gICAgICAgICAgIjAuMTEyMDQ2LCAwLjI5MTgwMiwgMC40MzU5MSwgMC42MTYwMjEsIDAuNzk2MTEzLCAwLjk3MTAxLCAxLjE1MTYyIiwgXAotICAgICAgICAgICIwLjEzNTkzLCAwLjMxNTM5OCwgMC40NTkyMDYsIDAuNjM5MzE3LCAwLjgxOTUyMSwgMC45OTk1MDcsIDEuMTgwMDciLCBcCi0gICAgICAgICAgIjAuMTU1MjA1LCAwLjMzNjcyOSwgMC40Nzk0NDIsIDAuNjU5Njg2LCAwLjgzOTU3OCwgMS4wMTk4NCwgMS4xOTk5NSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDI4MzcsIDAuNDY5Njc2LCAwLjc2MjU4NiwgMS4xMjg4NSwgMS40OTU0MSwgMS44NjExOCwgMi4yMjgxNyIsIFwKLSAgICAgICAgICAiMC4xMDI5MDMsIDAuNDY5NDcsIDAuNzYyNDA0LCAxLjEyODgzLCAxLjQ5NDg3LCAxLjg2MjMyLCAyLjIyNzQxIiwgXAotICAgICAgICAgICIwLjEwNDU2MywgMC40Njk0NTIsIDAuNzYyNDcsIDEuMTI4NjQsIDEuNDk1MTIsIDEuODYxMTQsIDIuMjI4MTUiLCBcCi0gICAgICAgICAgIjAuMTA5MTI5LCAwLjQ2OTQ2OCwgMC43NjI1ODUsIDEuMTI4NjksIDEuNDk2MDMsIDEuODYxNjcsIDIuMjI4OCIsIFwKLSAgICAgICAgICAiMC4xMTUzNzYsIDAuNDY5NDQ1LCAwLjc2MjQzMSwgMS4xMjg2NSwgMS40OTUwOSwgMS44NjE0MywgMi4yMjgyMSIsIFwKLSAgICAgICAgICAiMC4xMjY3MTcsIDAuNDcwNjI1LCAwLjc2MjUzLCAxLjEyODk1LCAxLjQ5NTM2LCAxLjg2MTE1LCAyLjIyODIiLCBcCi0gICAgICAgICAgIjAuMTM4NDMyLCAwLjQ3MzIxNiwgMC43NjI1NjIsIDEuMTI4OTEsIDEuNDk1MTEsIDEuODYyMTgsIDIuMjI3NDUiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjU1Nzg0LCAxLjA5NDQ0LCAxLjc2NTc2LCAyLjYwMzYxLCAzLjQ0MTY2LCA0LjI4MDA4LCA1LjExOTAzIiwgXAotICAgICAgICAgICIwLjI2NTUwNCwgMS4xMDUyMiwgMS43NzY4MywgMi42MTUyMiwgMy40NTMxNiwgNC4yOTEyNCwgNS4xMjk0NCIsIFwKLSAgICAgICAgICAiMC4yNzc2MzgsIDEuMTE3ODcsIDEuNzg5MDcsIDIuNjI3ODIsIDMuNDY1NjcsIDQuMzA0MDQsIDUuMTQyMDUiLCBcCi0gICAgICAgICAgIjAuMjg5NDQ2LCAxLjEzMDA1LCAxLjgwMTM4LCAyLjY0MDA3LCAzLjQ3ODM1LCA0LjMxNjE0LCA1LjE1NDM3IiwgXAotICAgICAgICAgICIwLjMwMTI0NywgMS4xNDIyOCwgMS44MTM3NywgMi42NTIyNiwgMy40OTAxNCwgNC4zMjg1NCwgNS4xNjY3NSIsIFwKLSAgICAgICAgICAiMC4zMjA1NzIsIDEuMTYxNCwgMS44MzMwMiwgMi42NzE2NywgMy41MTAwMiwgNC4zNDgyMywgNS4xODY1MyIsIFwKLSAgICAgICAgICAiMC4zMzczOTcsIDEuMTc5MTEsIDEuODUwMzMsIDIuNjg5LCAzLjUyNzM1LCA0LjM2NTIzLCA1LjIwMzQ1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjQzMzA0OCwgMS45OTc3NSwgMy4yNzI0NSwgNC44MjY5MywgNi4zODAxNCwgNy45Mzc0LCA5LjQ5Njc3IiwgXAotICAgICAgICAgICIwLjQzMzIwOSwgMi4wMDc1NSwgMy4yNzMxNiwgNC44MTI5NSwgNi4zODA4OCwgNy45MzgxNywgOS40OTUzNiIsIFwKLSAgICAgICAgICAiMC40MzI5NywgMS45OTc3MSwgMy4yNzI3MywgNC44MTg4NiwgNi4zODEzNiwgNy45Mzc4OSwgOS40OTU1NyIsIFwKLSAgICAgICAgICAiMC40MzU1MjksIDIuMDA3NSwgMy4yNzI4NSwgNC44MTg5MSwgNi4zNzg2OCwgNy45Mzc3NSwgOS40OTU2NSIsIFwKLSAgICAgICAgICAiMC40MzQyOTQsIDEuOTk3ODQsIDMuMjczMTEsIDQuODI4MDEsIDYuMzgxNDMsIDcuOTM3OTUsIDkuNDk1NzIiLCBcCi0gICAgICAgICAgIjAuNDMzMTIsIDEuOTk4MzksIDMuMjUyNTYsIDQuODE3NDIsIDYuMzgxMTMsIDcuOTM3ODQsIDkuNDk1NjciLCBcCi0gICAgICAgICAgIjAuNDM0NTQ2LCAxLjk5ODE1LCAzLjI3MjkzLCA0LjgxODIyLCA2LjM3NzUzLCA3LjkzNzcyLCA5LjQ5NTU2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkQiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1MjM2OSwgMC4yMzE1NiwgMC4zNzQ5NzEsIDAuNTU0MTc1LCAwLjczMzMwMywgMC45MTI0NDgsIDEuMDkxNjciLCBcCi0gICAgICAgICAgIjAuMDY0MDU5LCAwLjI0MzM2OCwgMC4zODY2OTQsIDAuNTY1ODg0LCAwLjc0NTAxNywgMC45MjQ0NjUsIDEuMTAzNDEiLCBcCi0gICAgICAgICAgIjAuMDc4OTUsIDAuMjU3ODM0LCAwLjQwMTEzNSwgMC41NzgyMjcsIDAuNzU3MjcyLCAwLjkzNjQ3OCwgMS4xMTU1MiIsIFwKLSAgICAgICAgICAiMC4wOTM3NywgMC4yNzIzOSwgMC40MTU3MiwgMC41OTQ2NzYsIDAuNzc0MzMyLCAwLjk1MzMxMSwgMS4xMzI2IiwgXAotICAgICAgICAgICIwLjEwODUxOSwgMC4yODcwMzksIDAuNDMwMjU5LCAwLjYwOTMzNSwgMC43ODQzMzEsIDAuOTYzNTAzLCAxLjE0MjY3IiwgXAotICAgICAgICAgICIwLjEzMjA2MywgMC4zMTA3MjMsIDAuNDUzNjk4LCAwLjYzMjc0MiwgMC44MTE3MywgMC45ODU3OTIsIDEuMTY0ODIiLCBcCi0gICAgICAgICAgIjAuMTUxMDY5LCAwLjMzMTM0NiwgMC40NzQwNTIsIDAuNjUzMTAzLCAwLjgzMjM4MywgMS4wMTEyOCwgMS4xOTA0NCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTg0NDYsIDAuNDY0MjA0LCAwLjc1NTIzOSwgMS4xMjI0OSwgMS40ODQzOCwgMS44NDkxMSwgMi4yMTkyNSIsIFwKLSAgICAgICAgICAiMC4wOTg0MzEsIDAuNDYzMjkyLCAwLjc1NDk1MiwgMS4xMjI0LCAxLjQ4Nzk0LCAxLjg1MDk2LCAyLjIxMzg1IiwgXAotICAgICAgICAgICIwLjEwMDg1NSwgMC40NjMyNDEsIDAuNzU0OTQ2LCAxLjEyLCAxLjQ4NTc1LCAxLjg0OTE4LCAyLjIxOTUyIiwgXAotICAgICAgICAgICIwLjEwNTU2NSwgMC40NjMyNjIsIDAuNzU0ODYxLCAxLjEyMTg0LCAxLjQ4NjA3LCAxLjg1MDczLCAyLjIxNTc5IiwgXAotICAgICAgICAgICIwLjExMjE1OCwgMC40NjMxNjMsIDAuNzU1MDY5LCAxLjEyMjA1LCAxLjQ4ODAxLCAxLjg0ODkzLCAyLjIxOTE2IiwgXAotICAgICAgICAgICIwLjEyMzk2NywgMC40NjQzODgsIDAuNzU1MDg0LCAxLjExOTg3LCAxLjQ4ODE2LCAxLjg0ODYyLCAyLjIxMzgzIiwgXAotICAgICAgICAgICIwLjEzNTg1MywgMC40Njg2ODQsIDAuNzU1NjAzLCAxLjEyMDg5LCAxLjQ4NDUsIDEuODUzNjcsIDIuMjEzNTkiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjMyNjc2LCAxLjA3MTcsIDEuNzQyNjQsIDIuNTgxOTcsIDMuNDE5NjcsIDQuMjU4MDMsIDUuMDk2MTEiLCBcCi0gICAgICAgICAgIjAuMjQxNTczLCAxLjA4MTEyLCAxLjc1MjA5LCAyLjU5MDczLCAzLjQyOTM3LCA0LjI2NzYxLCA1LjEwNTU1IiwgXAotICAgICAgICAgICIwLjI1MjY3LCAxLjA5MzAzLCAxLjc2Mzc5LCAyLjYwMzM2LCAzLjQ0MTExLCA0LjI3OTQ5LCA1LjExNzU2IiwgXAotICAgICAgICAgICIwLjI2NDUzNCwgMS4xMDUyMSwgMS43NzcwNywgMi42MTU0NiwgMy40NTM3NywgNC4yOTE4OSwgNS4xMjk4NCIsIFwKLSAgICAgICAgICAiMC4yNzU0NzYsIDEuMTE2MzIsIDEuNzg4NTcsIDIuNjI2NzgsIDMuNDY1MTcsIDQuMzAzMjgsIDUuMTQxMjQiLCBcCi0gICAgICAgICAgIjAuMjkzNjE4LCAxLjEzNDU0LCAxLjgwNzA5LCAyLjY0NTA1LCAzLjQ4MzQ4LCA0LjMyMTU5LCA1LjE1OTYiLCBcCi0gICAgICAgICAgIjAuMzA5Nzg2LCAxLjE1MDcsIDEuODIyMjIsIDIuNjYxNjcsIDMuNDk5NDcsIDQuMzM3ODIsIDUuMTc1OTciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuNDM0MjgyLCAyLjAwNjQ0LCAzLjI3MjIyLCA0LjgyODI3LCA2LjM4MTU0LCA3LjkzODM0LCA5LjQ5NTE3IiwgXAotICAgICAgICAgICIwLjQzNDQ0OSwgMi4wMDU4NSwgMy4yNjI3OSwgNC44Mjc0NSwgNi4zNzM2LCA3LjkzNDk1LCA5LjQ5NTc3IiwgXAotICAgICAgICAgICIwLjQzNDIsIDIuMDA3MSwgMy4yNjI0OCwgNC44MTI0NiwgNi4zODE0OSwgNy45MzgzLCA5LjQ5NTc2IiwgXAotICAgICAgICAgICIwLjQzMzc2MSwgMS45OTgxMSwgMy4yNzMxMSwgNC44MTg3MSwgNi4zNzc2LCA3LjkzNzE0LCA5LjQ5NjA4IiwgXAotICAgICAgICAgICIwLjQzMTgwNywgMS45OTg0LCAzLjI3MzMxLCA0LjgxODIzLCA2LjM3ODc3LCA3LjkzNzQ0LCA5LjQ5NjAxIiwgXAotICAgICAgICAgICIwLjQzNDU2LCAyLjAwNywgMy4yNDk4MiwgNC44MTc2MSwgNi4zNzgxNywgNy45MzY3NiwgOS40OTU5NSIsIFwKLSAgICAgICAgICAiMC40MzgxMTgsIDIuMDA2NCwgMy4yNzI0OSwgNC44MjgyLCA2LjM4MTQ5LCA3LjkzNzksIDkuNDk0OTgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1MjE5LCAwLjAwNTIxNywgMC4wMDUyMTcsIDAuMDA1MjE3LCAwLjAwNTIxNiwgMC4wMDUyMTMsIDAuMDA1MjExIiwgXAotICAgICAgICAgICIwLjAwNTIwMywgMC4wMDUyMDMsIDAuMDA1MjA0LCAwLjAwNTIwMSwgMC4wMDUyMDIsIDAuMDA1MTk4LCAwLjAwNTE5OSIsIFwKLSAgICAgICAgICAiMC4wMDUxOTEsIDAuMDA1MTkzLCAwLjAwNTE5MiwgMC4wMDUxOTIsIDAuMDA1MTkxLCAwLjAwNTE5LCAwLjAwNTE4OSIsIFwKLSAgICAgICAgICAiMC4wMDUxODMsIDAuMDA1MTg3LCAwLjAwNTE4NSwgMC4wMDUxODUsIDAuMDA1MTgzLCAwLjAwNTE4MywgMC4wMDUxOCIsIFwKLSAgICAgICAgICAiMC4wMDUxNzEsIDAuMDA1MTc5LCAwLjAwNTE3OCwgMC4wMDUxNzcsIDAuMDA1MTc3LCAwLjAwNTE3NiwgMC4wMDUxNzMiLCBcCi0gICAgICAgICAgIjAuMDA1MTY2LCAwLjAwNTE3NywgMC4wMDUxNzYsIDAuMDA1MTc2LCAwLjAwNTE3NCwgMC4wMDUxNzQsIDAuMDA1MTc1IiwgXAotICAgICAgICAgICIwLjAwNTE2MywgMC4wMDUxNzMsIDAuMDA1MTc0LCAwLjAwNTE3MywgMC4wMDUxNzMsIDAuMDA1MTcyLCAwLjAwNTE2OSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDQwNiwgMC4wMDQ0MjgsIDAuMDA0NDMxLCAwLjAwNDQzMiwgMC4wMDQ0MzMsIDAuMDA0NDMzLCAwLjAwNDQzMyIsIFwKLSAgICAgICAgICAiMC4wMDQzOTQsIDAuMDA0NDE4LCAwLjAwNDQyMSwgMC4wMDQ0MjMsIDAuMDA0NDIzLCAwLjAwNDQyNCwgMC4wMDQ0MjQiLCBcCi0gICAgICAgICAgIjAuMDA0Mzc4LCAwLjAwNDQwOSwgMC4wMDQ0MTMsIDAuMDA0NDE1LCAwLjAwNDQxNiwgMC4wMDQ0MTYsIDAuMDA0NDE3IiwgXAotICAgICAgICAgICIwLjAwNDM2NSwgMC4wMDQ0MDIsIDAuMDA0NDA3LCAwLjAwNDQxLCAwLjAwNDQxMSwgMC4wMDQ0MTIsIDAuMDA0NDEyIiwgXAotICAgICAgICAgICIwLjAwNDM1NywgMC4wMDQzOTcsIDAuMDA0NDAzLCAwLjAwNDQwNiwgMC4wMDQ0MDgsIDAuMDA0NDA5LCAwLjAwNDQwOSIsIFwKLSAgICAgICAgICAiMC4wMDQzNDUsIDAuMDA0MzksIDAuMDA0Mzk4LCAwLjAwNDQwMiwgMC4wMDQ0MDQsIDAuMDA0NDA1LCAwLjAwNDQwNiIsIFwKLSAgICAgICAgICAiMC4wMDQzMzcsIDAuMDA0Mzg2LCAwLjAwNDM5NCwgMC4wMDQzOTksIDAuMDA0NDAyLCAwLjAwNDQwMywgMC4wMDQ0MDQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0NjEsIDAuMDA0NjE0LCAwLjAwNDYxNSwgMC4wMDQ2MTUsIDAuMDA0NjE0LCAwLjAwNDYxMywgMC4wMDQ2MTIiLCBcCi0gICAgICAgICAgIjAuMDA0NTk3LCAwLjAwNDYwMiwgMC4wMDQ2MDEsIDAuMDA0NjAxLCAwLjAwNDYsIDAuMDA0NiwgMC4wMDQ1OTgiLCBcCi0gICAgICAgICAgIjAuMDA0NTg1LCAwLjAwNDU5MiwgMC4wMDQ1OTEsIDAuMDA0NTkxLCAwLjAwNDU5MiwgMC4wMDQ1ODksIDAuMDA0NTkiLCBcCi0gICAgICAgICAgIjAuMDA0NTc2LCAwLjAwNDU4NSwgMC4wMDQ1ODYsIDAuMDA0NTg1LCAwLjAwNDU4MywgMC4wMDQ1ODMsIDAuMDA0NTgzIiwgXAotICAgICAgICAgICIwLjAwNDU2NywgMC4wMDQ1NzgsIDAuMDA0NTc4LCAwLjAwNDU3OSwgMC4wMDQ1NzgsIDAuMDA0NTc4LCAwLjAwNDU3NyIsIFwKLSAgICAgICAgICAiMC4wMDQ1NTksIDAuMDA0NTc0LCAwLjAwNDU3NiwgMC4wMDQ1NzYsIDAuMDA0NTc1LCAwLjAwNDU3NSwgMC4wMDQ1NzQiLCBcCi0gICAgICAgICAgIjAuMDA0NTUzLCAwLjAwNDU3MywgMC4wMDQ1NzQsIDAuMDA0NTc1LCAwLjAwNDU3NCwgMC4wMDQ1NzQsIDAuMDA0NTc0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0MzgsIDAuMDA0NDA0LCAwLjAwNDQwNywgMC4wMDQ0MDgsIDAuMDA0NDA5LCAwLjAwNDQxLCAwLjAwNDQxIiwgXAotICAgICAgICAgICIwLjAwNDM2OCwgMC4wMDQzOTUsIDAuMDA0Mzk4LCAwLjAwNDQwMSwgMC4wMDQ0MDEsIDAuMDA0NDAxLCAwLjAwNDQwMSIsIFwKLSAgICAgICAgICAiMC4wMDQzNTQsIDAuMDA0Mzg2LCAwLjAwNDM5LCAwLjAwNDM5MiwgMC4wMDQzOTMsIDAuMDA0Mzk0LCAwLjAwNDM5NCIsIFwKLSAgICAgICAgICAiMC4wMDQzNDIsIDAuMDA0Mzc5LCAwLjAwNDM4NCwgMC4wMDQzODcsIDAuMDA0Mzg4LCAwLjAwNDM4OSwgMC4wMDQzOSIsIFwKLSAgICAgICAgICAiMC4wMDQzMzMsIDAuMDA0Mzc0LCAwLjAwNDM4MSwgMC4wMDQzODQsIDAuMDA0Mzg1LCAwLjAwNDM4NywgMC4wMDQzODciLCBcCi0gICAgICAgICAgIjAuMDA0MzIxLCAwLjAwNDM2NywgMC4wMDQzNzUsIDAuMDA0Mzc5LCAwLjAwNDM4MSwgMC4wMDQzODMsIDAuMDA0MzgzIiwgXAotICAgICAgICAgICIwLjAwNDMxMywgMC4wMDQzNjIsIDAuMDA0MzcxLCAwLjAwNDM3NiwgMC4wMDQzNzksIDAuMDA0MzgsIDAuMDA0MzgxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzNTc4LCAwLjAwMzU3OCwgMC4wMDM1NzgsIDAuMDAzNTc3LCAwLjAwMzU3NywgMC4wMDM1NzYsIDAuMDAzNTc3IiwgXAotICAgICAgICAgICIwLjAwMzU3OCwgMC4wMDM1ODcsIDAuMDAzNTg4LCAwLjAwMzU4OCwgMC4wMDM1ODgsIDAuMDAzNTkxLCAwLjAwMzU4MiIsIFwKLSAgICAgICAgICAiMC4wMDM1NzEsIDAuMDAzNTg4LCAwLjAwMzU4OSwgMC4wMDM1OSwgMC4wMDM1ODgsIDAuMDAzNTksIDAuMDAzNTg5IiwgXAotICAgICAgICAgICIwLjAwMzU2MywgMC4wMDM1ODYsIDAuMDAzNTg5LCAwLjAwMzU5LCAwLjAwMzU5MiwgMC4wMDM1OSwgMC4wMDM1OSIsIFwKLSAgICAgICAgICAiMC4wMDM1NTQsIDAuMDAzNTg0LCAwLjAwMzU4OCwgMC4wMDM1OSwgMC4wMDM1OSwgMC4wMDM1ODksIDAuMDAzNTkyIiwgXAotICAgICAgICAgICIwLjAwMzU0MywgMC4wMDM1ODEsIDAuMDAzNTg2LCAwLjAwMzU4OSwgMC4wMDM1OTEsIDAuMDAzNTg5LCAwLjAwMzU5IiwgXAotICAgICAgICAgICIwLjAwMzUzOCwgMC4wMDM1NzgsIDAuMDAzNTc5LCAwLjAwMzU4NywgMC4wMDM1ODgsIDAuMDAzNTksIDAuMDAzNTg5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxODA3LCAwLjAwMTgxMiwgMC4wMDE4MTIsIDAuMDAxODEyLCAwLjAwMTgxMiwgMC4wMDE4MTIsIDAuMDAxODEyIiwgXAotICAgICAgICAgICIwLjAwMTc4MiwgMC4wMDE4MDYsIDAuMDAxODA5LCAwLjAwMTgxLCAwLjAwMTgxMSwgMC4wMDE4MTEsIDAuMDAxODExIiwgXAotICAgICAgICAgICIwLjAwMTc1OSwgMC4wMDE3OTksIDAuMDAxODA0LCAwLjAwMTgwOCwgMC4wMDE4MDksIDAuMDAxODEsIDAuMDAxODEiLCBcCi0gICAgICAgICAgIjAuMDAxNzQsIDAuMDAxNzkyLCAwLjAwMTgsIDAuMDAxODA0LCAwLjAwMTgwNiwgMC4wMDE4MDcsIDAuMDAxODA4IiwgXAotICAgICAgICAgICIwLjAwMTcyNywgMC4wMDE3ODYsIDAuMDAxNzk2LCAwLjAwMTgwMSwgMC4wMDE4MDQsIDAuMDAxODA1LCAwLjAwMTgwNyIsIFwKLSAgICAgICAgICAiMC4wMDE3MSwgMC4wMDE3NzYsIDAuMDAxNzg5LCAwLjAwMTc5NiwgMC4wMDE4LCAwLjAwMTgwMiwgMC4wMDE4MDUiLCBcCi0gICAgICAgICAgIjAuMDAxNjk5LCAwLjAwMTc3LCAwLjAwMTc4NSwgMC4wMDE3OTMsIDAuMDAxNzk4LCAwLjAwMTgwMSwgMC4wMDE4MDIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJEIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI2MTksIDAuMDAyNjIzLCAwLjAwMjYyMywgMC4wMDI2MjMsIDAuMDAyNjIzLCAwLjAwMjYyMywgMC4wMDI2MjMiLCBcCi0gICAgICAgICAgIjAuMDAyNjI2LCAwLjAwMjY0NCwgMC4wMDI2NDYsIDAuMDAyNjQ3LCAwLjAwMjY0OCwgMC4wMDI2NDksIDAuMDAyNjQ4IiwgXAotICAgICAgICAgICIwLjAwMjYxOSwgMC4wMDI2NDgsIDAuMDAyNjUyLCAwLjAwMjY1NCwgMC4wMDI2NTUsIDAuMDAyNjU1LCAwLjAwMjY2MSIsIFwKLSAgICAgICAgICAiMC4wMDI2MDgsIDAuMDAyNjQ3LCAwLjAwMjY1MiwgMC4wMDI2NTYsIDAuMDAyNjU2LCAwLjAwMjY1NSwgMC4wMDI2NTUiLCBcCi0gICAgICAgICAgIjAuMDAyNTk5LCAwLjAwMjY0NCwgMC4wMDI2NTIsIDAuMDAyNjU1LCAwLjAwMjY1NywgMC4wMDI2NTgsIDAuMDAyNjU2IiwgXAotICAgICAgICAgICIwLjAwMjU4NiwgMC4wMDI2NDIsIDAuMDAyNjQ5LCAwLjAwMjY1NCwgMC4wMDI2NTcsIDAuMDAyNjU4LCAwLjAwMjY1OCIsIFwKLSAgICAgICAgICAiMC4wMDI1NzgsIDAuMDAyNjM4LCAwLjAwMjY0NSwgMC4wMDI2NTQsIDAuMDAyNjU1LCAwLjAwMjY1NywgMC4wMDI2NTgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDE4MDQsIDAuMDAxODExLCAwLjAwMTgxMSwgMC4wMDE4MTIsIDAuMDAxODEyLCAwLjAwMTgxMiwgMC4wMDE4MTIiLCBcCi0gICAgICAgICAgIjAuMDAxNzc1LCAwLjAwMTgwNCwgMC4wMDE4MDcsIDAuMDAxODA5LCAwLjAwMTgwOSwgMC4wMDE4MSwgMC4wMDE4MSIsIFwKLSAgICAgICAgICAiMC4wMDE3NDcsIDAuMDAxNzk1LCAwLjAwMTgwMSwgMC4wMDE4MDUsIDAuMDAxODA3LCAwLjAwMTgwOCwgMC4wMDE4MDgiLCBcCi0gICAgICAgICAgIjAuMDAxNzI5LCAwLjAwMTc4OCwgMC4wMDE3OTcsIDAuMDAxODAyLCAwLjAwMTgwNCwgMC4wMDE4MDYsIDAuMDAxODA3IiwgXAotICAgICAgICAgICIwLjAwMTcxMSwgMC4wMDE3OCwgMC4wMDE3OTEsIDAuMDAxNzk4LCAwLjAwMTgwMSwgMC4wMDE4MDMsIDAuMDAxODA1IiwgXAotICAgICAgICAgICIwLjAwMTY5NiwgMC4wMDE3NywgMC4wMDE3ODUsIDAuMDAxNzkzLCAwLjAwMTc5NywgMC4wMDE4LCAwLjAwMTgwMiIsIFwKLSAgICAgICAgICAiMC4wMDE2ODcsIDAuMDAxNzYyLCAwLjAwMTc3OSwgMC4wMDE3ODksIDAuMDAxNzk0LCAwLjAwMTc5NywgMC4wMDE4Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBOQU5ENEJCWEwgKgotICogLS0tLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChOQU5ENEJCWEwpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4xMTI5NzY7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEFOKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2MTkyNjg7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjE5MDExOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDYxOTI2ODsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyMjQsIDAuMDAwMjA1LCAwLjAwMDE5NSwgMC4wMDAxOTIsIDAuMDAwMTksIDAuMDAwMTg3LCAwLjAwMDE4OSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTA3LCAwLjAwMTA1NywgMC4wMDEwNSwgMC4wMDEwNDcsIDAuMDAxMDQ1LCAwLjAwMTA0NCwgMC4wMDEwNDQiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEJOKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA1ODIwNDc7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNTgxODAyOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDU4MjA0NzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxOTcsIDAuMDAwMTc5LCAwLjAwMDE2OSwgMC4wMDAxNjUsIDAuMDAwMTY0LCAwLjAwMDE2MiwgMC4wMDAxNjMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDExOSwgMC4wMDExNzcsIDAuMDAxMTcsIDAuMDAxMTY3LCAwLjAwMTE2NSwgMC4wMDExNjQsIDAuMDAxMTY0Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihDKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2Njc3Mjc7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjY3NzI3OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDY2NjUxODsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxNjUsIDAuMDAwMTY1LCAwLjAwMDE2NSwgMC4wMDAxNjUsIDAuMDAwMTY1LCAwLjAwMDE2NSwgMC4wMDAxNjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxNzMsIDAuMDAwMTY4LCAwLjAwMDE2NywgMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiwgMC4wMDAxNjYiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEQpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY3MjI4MTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2NzI7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjcyMjgxOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDA4MSwgMC4wMDAwODEsIDAuMDAwMDgxLCAwLjAwMDA4MSwgMC4wMDAwODEsIDAuMDAwMDgxLCAwLjAwMDA4MSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDE4OCwgMC4wMDAxODgsIDAuMDAwMTg4LCAwLjAwMDE4OCwgMC4wMDAxODgsIDAuMDAwMTg4LCAwLjAwMDE4OCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjAxNzg4NzQ7Ci0gICAgZnVuY3Rpb24gOiAiKCEoKCgoIUFOKSAoIUJOKSkgQykgRCkpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTg0Mzc2LCAwLjIwOTc3NiwgMC40Mzc3NTEsIDAuODE2OTc0LCAxLjE5NjAzLCAyLjA3OTcxLCAyLjU4NTA1IiwgXAotICAgICAgICAgICIwLjE5NjI2NywgMC4yMjE2NzIsIDAuNDQ5NjM2LCAwLjgyODg2NywgMS4yMDc5MSwgMi4wOTE1NywgMi41OTcxNCIsIFwKLSAgICAgICAgICAiMC4yMTE0NzEsIDAuMjM2ODY2LCAwLjQ2NDg2NywgMC44NDQwNjIsIDEuMjIyOTYsIDIuMTA3MTgsIDIuNjEyNjUiLCBcCi0gICAgICAgICAgIjAuMjI2NTM3LCAwLjI1MTkzMiwgMC40Nzk5MzQsIDAuODU5MTM4LCAxLjIzODE4LCAyLjEyMTg4LCAyLjYyNzc3IiwgXAotICAgICAgICAgICIwLjI0MDYwNCwgMC4yNjYwMzksIDAuNDkzOTc1LCAwLjg3MzIyLCAxLjI1MjI2LCAyLjEzNTk3LCAyLjY0MTYyIiwgXAotICAgICAgICAgICIwLjI2MTM2NCwgMC4yODY3NTYsIDAuNTE0NzM0LCAwLjg5Mzk3OSwgMS4yNzMwMSwgMi4xNTY3LCAyLjY2MjUiLCBcCi0gICAgICAgICAgIjAuMjc3MzI0LCAwLjMwMjczMSwgMC41MzA2OTgsIDAuOTA5OTQsIDEuMjg4OTUsIDIuMTczNCwgMi42Nzc4NiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yOTc3NTYsIDAuMzQ4ODk4LCAwLjgwOTMyOCwgMS41NzczMywgMi4zNDU1MywgNC4xMzYyNiwgNS4xNTkzNyIsIFwKLSAgICAgICAgICAiMC4yOTc3MjgsIDAuMzQ4OTA0LCAwLjgwOTQ4MywgMS41NzcyNywgMi4zNDU4OCwgNC4xMzQzNywgNS4xNTc2NSIsIFwKLSAgICAgICAgICAiMC4yOTc3NTEsIDAuMzQ4ODg2LCAwLjgwOTMzNSwgMS41NzY2NCwgMi4zNDU5NCwgNC4xMzUwOSwgNS4xNTgwNSIsIFwKLSAgICAgICAgICAiMC4yOTc3NjEsIDAuMzQ4ODg3LCAwLjgwOTUyOCwgMS41NzcyNywgMi4zNDU2MiwgNC4xMzM3MywgNS4xNTg0OCIsIFwKLSAgICAgICAgICAiMC4yOTc4MjcsIDAuMzQ4OTQ2LCAwLjgwOTYxMiwgMS41Nzc4MiwgMi4zNDU0NywgNC4xMzYwOSwgNS4xNTgzNCIsIFwKLSAgICAgICAgICAiMC4yOTc4MzUsIDAuMzQ4OTc0LCAwLjgwOTU1NSwgMS41Nzc5LCAyLjM0NTU4LCA0LjEzMzcyLCA1LjE1ODIyIiwgXAotICAgICAgICAgICIwLjI5ODAzNCwgMC4zNDkwMDQsIDAuODA5NDk0LCAxLjU3Nzg5LCAyLjM0NTY4LCA0LjEzNDUzLCA1LjE1Njc5Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjczMzU3OCwgMC44NTE3ODcsIDEuOTE4MDQsIDMuNjkzOTgsIDUuNDY5MzEsIDkuNjEyMzUsIDExLjk3OTgiLCBcCi0gICAgICAgICAgIjAuNzQ1MjU3LCAwLjg2MzQzNywgMS45Mjk0MSwgMy43MDU0NiwgNS40ODEwNSwgOS42MjQsIDExLjk5MTUiLCBcCi0gICAgICAgICAgIjAuNzU5Nzk5LCAwLjg3ODAwNCwgMS45NDQ1NCwgMy43MjAyLCA1LjQ5NTY5LCA5LjYzODY3LCAxMi4wMDYyIiwgXAotICAgICAgICAgICIwLjc3MzM3MSwgMC44OTE2NjYsIDEuOTU3OTEsIDMuNzM0MTIsIDUuNTA5NDYsIDkuNjUyNDMsIDEyLjAxOTkiLCBcCi0gICAgICAgICAgIjAuNzg1NTA3LCAwLjkwMzc0NSwgMS45NzAwNSwgMy43NDYyNCwgNS41MjE2MSwgOS42NjQ2LCAxMi4wMzIxIiwgXAotICAgICAgICAgICIwLjgwMjE0LCAwLjkyMDgxMSwgMS45ODcyNywgMy43NjM0NiwgNS41Mzg3MywgOS42ODE4MSwgMTIuMDQ5MyIsIFwKLSAgICAgICAgICAiMC44MTU1NjksIDAuOTM0MTY0LCAyLjAwMDk1LCAzLjc3NjY5LCA1LjU1MjEsIDkuNjk1MTgsIDEyLjA2MjciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjEuMjU3NTgsIDEuNDczODgsIDMuNDY0MTgsIDYuNzQ0ODEsIDEwLjAzMzEsIDE3LjcwNzMsIDIyLjA5NDkiLCBcCi0gICAgICAgICAgIjEuMjU3NTEsIDEuNDczOCwgMy40NjM4NywgNi43NDg1NCwgMTAuMDMzMSwgMTcuNzA3MiwgMjIuMDk0IiwgXAotICAgICAgICAgICIxLjI1NzU1LCAxLjQ3Mzg0LCAzLjQ2NDMyLCA2Ljc0NDY5LCAxMC4wMzMsIDE3LjcwNzEsIDIyLjA5NDgiLCBcCi0gICAgICAgICAgIjEuMjU3NjksIDEuNDczODQsIDMuNDYzOTEsIDYuNzQzNDIsIDEwLjAzMjksIDE3LjcwNzEsIDIyLjA5NCIsIFwKLSAgICAgICAgICAiMS4yNTc1NSwgMS40NzM4OSwgMy40NjQwNiwgNi43NDM2NywgMTAuMDMzMiwgMTcuNzA3MiwgMjIuMDk1IiwgXAotICAgICAgICAgICIxLjI1MzgyLCAxLjQ2Njk1LCAzLjQ2Mzk1LCA2Ljc0NTEsIDEwLjAzMjksIDE3LjcwNzEsIDIyLjA5NDgiLCBcCi0gICAgICAgICAgIjEuMjQ3NzMsIDEuNDczNzMsIDMuNDY0NDEsIDYuNzQ0MjgsIDEwLjAzMjksIDE3LjcwNjYsIDIyLjA5NDgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQk4iOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE4NDk0MywgMC4yMTAyNTUsIDAuNDM3ODYsIDAuODE2ODg5LCAxLjE5NTY5LCAyLjA3OTM4LCAyLjU4NDg5IiwgXAotICAgICAgICAgICIwLjE5NjgxNCwgMC4yMjIxNDQsIDAuNDQ5NzgzLCAwLjgyODg4MywgMS4yMDc3NywgMi4wOTExNywgMi41OTY4NSIsIFwKLSAgICAgICAgICAiMC4yMTIwNTUsIDAuMjM3MzY4LCAwLjQ2NTAxNSwgMC44NDQwNywgMS4yMjI5NCwgMi4xMDczNSwgMi42MTIyMyIsIFwKLSAgICAgICAgICAiMC4yMjcwMjUsIDAuMjUyMzY5LCAwLjQ3OTk4NCwgMC44NTkxMDcsIDEuMjM3NjYsIDIuMTIyMzMsIDIuNjI3MTkiLCBcCi0gICAgICAgICAgIjAuMjQxNjU1LCAwLjI2Njk5NCwgMC40OTQ2MjYsIDAuODczNzI1LCAxLjI1MjY2LCAyLjEzNjA0LCAyLjY0MTY5IiwgXAotICAgICAgICAgICIwLjI2MjkzLCAwLjI4ODI2MywgMC41MTU4ODMsIDAuODk0ODgxLCAxLjI3MzQ5LCAyLjE1Nzc3LCAyLjY2MzM1IiwgXAotICAgICAgICAgICIwLjI3OTc3MiwgMC4zMDUwOTgsIDAuNTMyNzAzLCAwLjkxMTY2MiwgMS4yOTAzOSwgMi4xNzQzMSwgMi42Nzk4NiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yOTQ4MjUsIDAuMzQ1OSwgMC44MDY3MzMsIDEuNTczNzUsIDIuMzQwNDIsIDQuMTMxLCA1LjE1NDMzIiwgXAotICAgICAgICAgICIwLjI5NDc0MywgMC4zNDU5MzIsIDAuODA2Mzk1LCAxLjU3NDU1LCAyLjM0MjE0LCA0LjEzMDgzLCA1LjE1NDU4IiwgXAotICAgICAgICAgICIwLjI5NDgyMSwgMC4zNDU5MjcsIDAuODA2MTYsIDEuNTc0NjcsIDIuMzQyMDIsIDQuMTMyMTYsIDUuMTU0NyIsIFwKLSAgICAgICAgICAiMC4yOTQ3MjMsIDAuMzQ1OTQ3LCAwLjgwNjgxNSwgMS41NzM5NSwgMi4zNDA3MywgNC4xMzE5LCA1LjE1NDkxIiwgXAotICAgICAgICAgICIwLjI5NDY2NSwgMC4zNDYsIDAuODA2MzQ5LCAxLjU3NDUyLCAyLjM0MTkzLCA0LjEzMDksIDUuMTU0NTEiLCBcCi0gICAgICAgICAgIjAuMjk0ODYsIDAuMzQ1OTIxLCAwLjgwNjY4NiwgMS41NzM2OSwgMi4zNDA3LCA0LjEzMTMyLCA1LjE1NDAyIiwgXAotICAgICAgICAgICIwLjI5NDk4OCwgMC4zNDYxMiwgMC44MDY4MTcsIDEuNTczNjQsIDIuMzQxOTksIDQuMTMyMywgNS4xNTQ2MSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC43MjkyMTUsIDAuODQ3NDU4LCAxLjkxNDQyLCAzLjY4OTY4LCA1LjQ2NTA2LCA5LjYwODEyLCAxMS45NzU2IiwgXAotICAgICAgICAgICIwLjc0MDQ5NiwgMC44NTk0MjcsIDEuOTI1MjIsIDMuNzAxMzIsIDUuNDc2NywgOS42MTk3MSwgMTEuOTg3MiIsIFwKLSAgICAgICAgICAiMC43NTUyNzgsIDAuODczNzI5LCAxLjk0MDk0LCAzLjcxNTgyLCA1LjQ5MTMsIDkuNjM0NDIsIDEyLjAwMiIsIFwKLSAgICAgICAgICAiMC43NjkyNzEsIDAuODg3NDg4LCAxLjk1NDc3LCAzLjcyOTY5LCA1LjUwNTE5LCA5LjY0ODMxLCAxMi4wMTU5IiwgXAotICAgICAgICAgICIwLjc4MTQwOSwgMC44OTk4ODksIDEuOTY2NDksIDMuNzQyMzMsIDUuNTE3NzMsIDkuNjYwNzgsIDEyLjAyODMiLCBcCi0gICAgICAgICAgIjAuNzk4NzMyLCAwLjkxNzY0MywgMS45ODQzNSwgMy43NTk4MiwgNS41MzU0MywgOS42Nzg0OCwgMTIuMDQ2IiwgXAotICAgICAgICAgICIwLjgxMjQ4NCwgMC45MzEwMjcsIDEuOTk3NzIsIDMuNzczODEsIDUuNTQ5MTMsIDkuNjkyMjMsIDEyLjA1OTgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjEuMjU3NjMsIDEuNDczNjIsIDMuNDY0OSwgNi43NDgwOCwgMTAuMDMzLCAxNy43MDcsIDIyLjA5NDkiLCBcCi0gICAgICAgICAgIjEuMjQ2ODYsIDEuNDgwMDUsIDMuNDY0MDIsIDYuNzQ4NjksIDEwLjAzMzEsIDE3LjcwNzIsIDIyLjA5NCIsIFwKLSAgICAgICAgICAiMS4yNDYyNSwgMS40NzM2OCwgMy40NjUyMywgNi43NDg1LCAxMC4wMzMsIDE3LjcwNzIsIDIyLjA5NDkiLCBcCi0gICAgICAgICAgIjEuMjU3NTIsIDEuNDczNzcsIDMuNDY1MiwgNi43NDg1LCAxMC4wMzI4LCAxNy43MDcxLCAyMi4wOTQ5IiwgXAotICAgICAgICAgICIxLjI1MjYyLCAxLjQ2OTQxLCAzLjQ2NDI1LCA2Ljc0NDMxLCAxMC4wMzI5LCAxNy43MDY5LCAyMi4wOTQ4IiwgXAotICAgICAgICAgICIxLjI1MjEyLCAxLjQ3MzksIDMuNDQ3ODYsIDYuNzQ4NSwgMTAuMDMyOSwgMTcuNzA3MSwgMjIuMDk0OSIsIFwKLSAgICAgICAgICAiMS4yNDY4NiwgMS40NzM2LCAzLjQ2NDA5LCA2Ljc0NTIxLCAxMC4wMzI5LCAxNy43MDcxLCAyMi4wOTQ4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE0ODc2LCAwLjE3NDA0NywgMC40MDE0MzgsIDAuNzgwMzY0LCAxLjE1OTYxLCAyLjA0MzgsIDIuNTQ4MTQiLCBcCi0gICAgICAgICAgIjAuMTYwNDEsIDAuMTg1NjcxLCAwLjQxMjk4NCwgMC43OTIwOTgsIDEuMTcxMTYsIDIuMDU0NDYsIDIuNTYwMzQiLCBcCi0gICAgICAgICAgIjAuMTc1MDY3LCAwLjIwMDI5OSwgMC40Mjc1ODIsIDAuODA2MjYsIDEuMTg1NDUsIDIuMDY4NjksIDIuNTc0NCIsIFwKLSAgICAgICAgICAiMC4xODk2MTEsIDAuMjE1MzksIDAuNDQyNjAyLCAwLjgyMTQ3LCAxLjIwMDE3LCAyLjA4Mzg3LCAyLjU4OTU2IiwgXAotICAgICAgICAgICIwLjIwNDQ5NCwgMC4yMjkyMiwgMC40NTYxOTQsIDAuODM0MTA2LCAxLjIwOTMxLCAyLjA5MzE5LCAyLjU5NzczIiwgXAotICAgICAgICAgICIwLjIyODE5NiwgMC4yNTMzMSwgMC40Nzk1OSwgMC44NTgyNTUsIDEuMjMwMTEsIDIuMTE0MDIsIDIuNjE4OTMiLCBcCi0gICAgICAgICAgIjAuMjQ4NzU4LCAwLjI3NDA4MywgMC40OTk4MDUsIDAuODc4NTkyLCAxLjI1NzEsIDIuMTMyOTUsIDIuNjM3NSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yOTA5ODIsIDAuMzQyMjE4LCAwLjgwMzA3NywgMS41NzAwOSwgMi4zMzc2MiwgNC4xMjg0OCwgNS4xNTI0OCIsIFwKLSAgICAgICAgICAiMC4yOTA5NzMsIDAuMzQyMzk2LCAwLjgwMjQ5MywgMS41NzAyMSwgMi4zMzc0MSwgNC4xMjg1NiwgNS4xNTEiLCBcCi0gICAgICAgICAgIjAuMjkxMTIxLCAwLjM0MjQxMiwgMC44MDMwOCwgMS41NzA0MywgMi4zMzc1NCwgNC4xMjY5MywgNS4xNTI3NCIsIFwKLSAgICAgICAgICAiMC4yOTEyMiwgMC4zNDIyMzIsIDAuODAyNjksIDEuNTcwMTUsIDIuMzM4MTQsIDQuMTI4NTIsIDUuMTUxMjYiLCBcCi0gICAgICAgICAgIjAuMjkyNDQxLCAwLjM0Mjk5OCwgMC44MDI1NSwgMS41NzAxMSwgMi4zMzc2MywgNC4xMjgzOCwgNS4xNTI4MyIsIFwKLSAgICAgICAgICAiMC4yOTc0NzIsIDAuMzQ2MzY2LCAwLjgwMjUwOSwgMS41Njk5MiwgMi4zMzc1MywgNC4xMjgzNiwgNS4xNTE3MSIsIFwKLSAgICAgICAgICAiMC4zMDM2OTMsIDAuMzUxNjIyLCAwLjgwMzAzMSwgMS41NzAxMSwgMi4zMzY5MywgNC4xMjg0OCwgNS4xNTE5OCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC42OTA5OTIsIDAuODA5NTEsIDEuODc2MzEsIDMuNjUxMzksIDUuNDI3MDMsIDkuNTcsIDExLjkzNzUiLCBcCi0gICAgICAgICAgIjAuNzAxNDk5LCAwLjgxOTc2NiwgMS44ODU5NiwgMy42NjIwMywgNS40Mzc0MywgOS41ODA0NSwgMTEuOTQ4IiwgXAotICAgICAgICAgICIwLjcxMzk0NSwgMC44MzIyMjEsIDEuODk4ODQsIDMuNjc0NTksIDUuNDUwMTYsIDkuNTkzMTcsIDExLjk2MDciLCBcCi0gICAgICAgICAgIjAuNzI2MTMsIDAuODQ0ODUzLCAxLjkxMTYyLCAzLjY4NzMzLCA1LjQ2Mjc4LCA5LjYwNTg0LCAxMS45NzM0IiwgXAotICAgICAgICAgICIwLjczODc2MiwgMC44NTY4NzYsIDEuOTI0NTgsIDMuNjk5ODIsIDUuNDc1MzIsIDkuNjE4NDcsIDExLjk4NiIsIFwKLSAgICAgICAgICAiMC43NTg2NjksIDAuODc2ODIyLCAxLjk0Mzc2LCAzLjcxOTc3LCA1LjQ5NTQyLCA5LjYzODU5LCAxMi4wMDYxIiwgXAotICAgICAgICAgICIwLjc3NTQ2LCAwLjg5NDEwNywgMS45NjA2OSwgMy43Mzc0OCwgNS41MTMsIDkuNjU2MSwgMTIuMDIzNiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMS4yNTI1MywgMS40NjYzMSwgMy40NjQ4OSwgNi43NDg0NywgMTAuMDMyOCwgMTcuNzA3MiwgMjIuMDk0OSIsIFwKLSAgICAgICAgICAiMS4yNDY0NiwgMS40NzM3NSwgMy40NjQwOCwgNi43NDg2OCwgMTAuMDMzMSwgMTcuNzA3MiwgMjIuMDk1IiwgXAotICAgICAgICAgICIxLjI1NzQyLCAxLjQ3Mzc4LCAzLjQ2NDIzLCA2Ljc0NDI5LCAxMC4wMzMsIDE3LjcwNzEsIDIyLjA5NDgiLCBcCi0gICAgICAgICAgIjEuMjUyNDksIDEuNDc5MzYsIDMuNDY0NDMsIDYuNzQ3NjQsIDEwLjAzMTUsIDE3LjcwNzEsIDIyLjA5NDgiLCBcCi0gICAgICAgICAgIjEuMjU3NTIsIDEuNDcyOTMsIDMuNDY0OTMsIDYuNzQ4NDcsIDEwLjAzMjksIDE3LjcwNzEsIDIyLjA5NDgiLCBcCi0gICAgICAgICAgIjEuMjQ1ODgsIDEuNDc3MzQsIDMuNDYzOTgsIDYuNzQzNzYsIDEwLjAzMjksIDE3LjcwNzEsIDIyLjA5NDgiLCBcCi0gICAgICAgICAgIjEuMjQ2OTQsIDEuNDc2OTksIDMuNDYxOTUsIDYuNzQ4NjksIDEwLjAzMywgMTcuNzA3MSwgMjIuMDk0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkQiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE0NjE3MSwgMC4xNzEzOTIsIDAuMzk4NjczLCAwLjc3NzY4NiwgMS4xNTY1NiwgMi4wNDAzNiwgMi41NDU1NSIsIFwKLSAgICAgICAgICAiMC4xNTc4NDYsIDAuMTgzMTI4LCAwLjQxMDQ5NywgMC43ODkzOTYsIDEuMTY3OTYsIDIuMDUyMTQsIDIuNTU3MyIsIFwKLSAgICAgICAgICAiMC4xNzIyOSwgMC4xOTc0OTIsIDAuNDI0MzMsIDAuODAxMDQ4LCAxLjE3OTc2LCAyLjA2NDE1LCAyLjU2ODk4IiwgXAotICAgICAgICAgICIwLjE4NjkyMywgMC4yMTIwNzUsIDAuNDM5MTg3LCAwLjgxNDIyNiwgMS4xOTI4OSwgMi4wNzcyOSwgMi41ODIxMiIsIFwKLSAgICAgICAgICAiMC4yMDE2MDksIDAuMjI2Nzg0LCAwLjQ1MzY5OSwgMC44Mjc4MzcsIDEuMjA2OTgsIDIuMDkwNTMsIDIuNTk1MzgiLCBcCi0gICAgICAgICAgIjAuMjI1NjgyLCAwLjI1MDgwNSwgMC40NzY4OTksIDAuODU1Njg2LCAxLjIyODYzLCAyLjExMjYyLCAyLjYxNzgiLCBcCi0gICAgICAgICAgIjAuMjQ2Mjg3LCAwLjI3MTQ4NSwgMC40OTc0MDIsIDAuODc2MDc2LCAxLjI0ODIsIDIuMTMyMzcsIDIuNjM3NDUiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjg4NTA0LCAwLjM0MDI5OCwgMC44MDIxODksIDEuNTY4MjcsIDIuMzM2MTcsIDQuMTI4MjIsIDUuMTUyNTEiLCBcCi0gICAgICAgICAgIjAuMjg4NzIzLCAwLjMzOTY1NywgMC44MDAzNjgsIDEuNTY5OCwgMi4zNDE2OSwgNC4xMzE0NSwgNS4xNTE4NSIsIFwKLSAgICAgICAgICAiMC4yODg0NTksIDAuMzQwMzM5LCAwLjgwMDQ3MiwgMS41NjkzOSwgMi4zNDE1NywgNC4xMzI1LCA1LjE1MjEyIiwgXAotICAgICAgICAgICIwLjI4ODYzOCwgMC4zNDA0ODgsIDAuODAwMjEzLCAxLjU3MTAyLCAyLjM0MTQ1LCA0LjEzMjA1LCA1LjE1MjE3IiwgXAotICAgICAgICAgICIwLjI5MDMzMywgMC4zNDAzODksIDAuODAwOTc4LCAxLjU2OTU4LCAyLjMzNTczLCA0LjEyODIxLCA1LjE1NDg4IiwgXAotICAgICAgICAgICIwLjI5NTA0OCwgMC4zNDQxODcsIDAuODAyNDA4LCAxLjU2ODMxLCAyLjM0MTMyLCA0LjEzMTIzLCA1LjE1NDc0IiwgXAotICAgICAgICAgICIwLjMwMTYzNCwgMC4zNDk0ODQsIDAuNzk5OTk0LCAxLjU2ODI3LCAyLjM0MTA1LCA0LjEyNzkzLCA1LjE1MTQyIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjY3NjQxNSwgMC43OTQ2NTQsIDEuODYxNSwgMy42MzcwNSwgNS40MTIzMSwgOS41NTUzOCwgMTEuOTIyOSIsIFwKLSAgICAgICAgICAiMC42ODU2MjksIDAuODAzOTg5LCAxLjg3MDU0LCAzLjY0NjUyLCA1LjQyMTk2LCA5LjU2NDk5LCAxMS45MzI1IiwgXAotICAgICAgICAgICIwLjY5NzMxNywgMC44MTYxMzMsIDEuODgzNDcsIDMuNjU4MzgsIDUuNDMzOTgsIDkuNTc3MDUsIDExLjk0NDYiLCBcCi0gICAgICAgICAgIjAuNzA5MDk2LCAwLjgyNzQ5OCwgMS44OTQwMSwgMy42NzA0NCwgNS40NDU5MiwgOS41ODg5NSwgMTEuOTU2NSIsIFwKLSAgICAgICAgICAiMC43MjEyNDYsIDAuODM5ODksIDEuOTA2OCwgMy42ODI3NCwgNS40NTgzOCwgOS42MDE0OCwgMTEuOTY5IiwgXAotICAgICAgICAgICIwLjc0MDQ4NywgMC44NTkxNTgsIDEuOTI2NzcsIDMuNzAyMTQsIDUuNDc3NTksIDkuNjIwNzIsIDExLjk4ODMiLCBcCi0gICAgICAgICAgIjAuNzU2Nzk5LCAwLjg3NTM4NSwgMS45NDIyLCAzLjcxODksIDUuNDk0MzQsIDkuNjM3NTYsIDEyLjAwNTEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjEuMjQ2MjksIDEuNDY2ODUsIDMuNDY0NjcsIDYuNzQzMDcsIDEwLjAzMzEsIDE3LjcwNzIsIDIyLjA5NDkiLCBcCi0gICAgICAgICAgIjEuMjUyNDEsIDEuNDczMDIsIDMuNDY0MTcsIDYuNzQ4NjUsIDEwLjAzMzEsIDE3LjcwNzIsIDIyLjA5NDkiLCBcCi0gICAgICAgICAgIjEuMjQ2ODQsIDEuNDczODEsIDMuNDQ1NjYsIDYuNzQ4NDksIDEwLjAzMjksIDE3LjcwNzEsIDIyLjA5NDgiLCBcCi0gICAgICAgICAgIjEuMjUyNTQsIDEuNDc1OTksIDMuNDQ3ODYsIDYuNzQ1MjgsIDEwLjAzMywgMTcuNzA3MSwgMjIuMDkzOSIsIFwKLSAgICAgICAgICAiMS4yNTQ4NiwgMS40Nzc2LCAzLjQ0OTg4LCA2Ljc0ODQ2LCAxMC4wMzI1LCAxNy43MDcxLCAyMi4wOTQ4IiwgXAotICAgICAgICAgICIxLjI1NjgxLCAxLjQ3OTQ0LCAzLjQ2NTA0LCA2Ljc0NDMyLCAxMC4wMzI5LCAxNy43MDcxLCAyMi4wOTQ4IiwgXAotICAgICAgICAgICIxLjI1NDk0LCAxLjQ3Mjg1LCAzLjQ0Nzg3LCA2Ljc0ODY4LCAxMC4wMzI4LCAxNy43MDcxLCAyMi4wOTQ4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQU4iOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTYwNywgMC4wMDE2MDgsIDAuMDAxNjA3LCAwLjAwMTYwNywgMC4wMDE2MDYsIDAuMDAxNjA1LCAwLjAwMTYwNCIsIFwKLSAgICAgICAgICAiMC4wMDE1ODksIDAuMDAxNTg4LCAwLjAwMTU4OCwgMC4wMDE1ODgsIDAuMDAxNTg3LCAwLjAwMTU4NywgMC4wMDE1ODUiLCBcCi0gICAgICAgICAgIjAuMDAxNTc4LCAwLjAwMTU3OCwgMC4wMDE1NzcsIDAuMDAxNTc3LCAwLjAwMTU3NiwgMC4wMDE1NzUsIDAuMDAxNTc0IiwgXAotICAgICAgICAgICIwLjAwMTU3NCwgMC4wMDE1NzQsIDAuMDAxNTc0LCAwLjAwMTU3NCwgMC4wMDE1NzMsIDAuMDAxNTcyLCAwLjAwMTU3MSIsIFwKLSAgICAgICAgICAiMC4wMDE1NzIsIDAuMDAxNTcyLCAwLjAwMTU3MiwgMC4wMDE1NzIsIDAuMDAxNTcxLCAwLjAwMTU3LCAwLjAwMTU2OSIsIFwKLSAgICAgICAgICAiMC4wMDE1NzIsIDAuMDAxNTcyLCAwLjAwMTU3MiwgMC4wMDE1NzIsIDAuMDAxNTcxLCAwLjAwMTU3LCAwLjAwMTU2OSIsIFwKLSAgICAgICAgICAiMC4wMDE1NzMsIDAuMDAxNTczLCAwLjAwMTU3MywgMC4wMDE1NzMsIDAuMDAxNTczLCAwLjAwMTU3MSwgMC4wMDE1NyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTg2OCwgMC4wMDE4NjgsIDAuMDAxODY4LCAwLjAwMTg2OCwgMC4wMDE4NjgsIDAuMDAxODY3LCAwLjAwMTg2MyIsIFwKLSAgICAgICAgICAiMC4wMDE4NTUsIDAuMDAxODU1LCAwLjAwMTg1NiwgMC4wMDE4NTYsIDAuMDAxODU2LCAwLjAwMTg1NSwgMC4wMDE4NTEiLCBcCi0gICAgICAgICAgIjAuMDAxODQ3LCAwLjAwMTg0NywgMC4wMDE4NDksIDAuMDAxODQ5LCAwLjAwMTg0OSwgMC4wMDE4NDgsIDAuMDAxODQ0IiwgXAotICAgICAgICAgICIwLjAwMTg0MiwgMC4wMDE4NDMsIDAuMDAxODQ1LCAwLjAwMTg0NSwgMC4wMDE4NDUsIDAuMDAxODQ1LCAwLjAwMTg0IiwgXAotICAgICAgICAgICIwLjAwMTg0MSwgMC4wMDE4NDEsIDAuMDAxODQ0LCAwLjAwMTg0NSwgMC4wMDE4NDUsIDAuMDAxODQ0LCAwLjAwMTg0IiwgXAotICAgICAgICAgICIwLjAwMTgzOCwgMC4wMDE4MzksIDAuMDAxODQyLCAwLjAwMTg0MywgMC4wMDE4NDQsIDAuMDAxODQzLCAwLjAwMTgzOSIsIFwKLSAgICAgICAgICAiMC4wMDE4MzksIDAuMDAxODQsIDAuMDAxODQzLCAwLjAwMTg0NSwgMC4wMDE4NDUsIDAuMDAxODQ1LCAwLjAwMTg0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQk4iOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTQ2MywgMC4wMDE0NjMsIDAuMDAxNDYzLCAwLjAwMTQ2MywgMC4wMDE0NjIsIDAuMDAxNDYsIDAuMDAxNDYxIiwgXAotICAgICAgICAgICIwLjAwMTQ0NSwgMC4wMDE0NDUsIDAuMDAxNDQ1LCAwLjAwMTQ0NCwgMC4wMDE0NDQsIDAuMDAxNDQzLCAwLjAwMTQ0MiIsIFwKLSAgICAgICAgICAiMC4wMDE0MzQsIDAuMDAxNDM0LCAwLjAwMTQzNCwgMC4wMDE0MzQsIDAuMDAxNDMzLCAwLjAwMTQzMiwgMC4wMDE0MzIiLCBcCi0gICAgICAgICAgIjAuMDAxNDI5LCAwLjAwMTQyOSwgMC4wMDE0MywgMC4wMDE0MywgMC4wMDE0MywgMC4wMDE0MjgsIDAuMDAxNDI4IiwgXAotICAgICAgICAgICIwLjAwMTQyNywgMC4wMDE0MjcsIDAuMDAxNDI4LCAwLjAwMTQyOCwgMC4wMDE0MjcsIDAuMDAxNDI3LCAwLjAwMTQyNiIsIFwKLSAgICAgICAgICAiMC4wMDE0MjcsIDAuMDAxNDI3LCAwLjAwMTQyOCwgMC4wMDE0MjgsIDAuMDAxNDI3LCAwLjAwMTQyNywgMC4wMDE0MjYiLCBcCi0gICAgICAgICAgIjAuMDAxNDI4LCAwLjAwMTQyOCwgMC4wMDE0MjksIDAuMDAxNDI5LCAwLjAwMTQyOSwgMC4wMDE0MjgsIDAuMDAxNDI4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxOTMxLCAwLjAwMTkzMSwgMC4wMDE5MzIsIDAuMDAxOTMyLCAwLjAwMTkzMiwgMC4wMDE5MzIsIDAuMDAxOTI3IiwgXAotICAgICAgICAgICIwLjAwMTkxOCwgMC4wMDE5MTgsIDAuMDAxOTE5LCAwLjAwMTkyLCAwLjAwMTkyLCAwLjAwMTkxOSwgMC4wMDE5MTQiLCBcCi0gICAgICAgICAgIjAuMDAxOTEsIDAuMDAxOTEsIDAuMDAxOTEyLCAwLjAwMTkxMiwgMC4wMDE5MTMsIDAuMDAxOTEyLCAwLjAwMTkwNyIsIFwKLSAgICAgICAgICAiMC4wMDE5MDYsIDAuMDAxOTA2LCAwLjAwMTkwOCwgMC4wMDE5MDksIDAuMDAxOTA5LCAwLjAwMTkwOSwgMC4wMDE5MDQiLCBcCi0gICAgICAgICAgIjAuMDAxOTAyLCAwLjAwMTkwMywgMC4wMDE5MDYsIDAuMDAxOTA3LCAwLjAwMTkwNywgMC4wMDE5MDYsIDAuMDAxOTAyIiwgXAotICAgICAgICAgICIwLjAwMTksIDAuMDAxOTAxLCAwLjAwMTkwNSwgMC4wMDE5MDYsIDAuMDAxOTA3LCAwLjAwMTkwNiwgMC4wMDE5MDIiLCBcCi0gICAgICAgICAgIjAuMDAxOSwgMC4wMDE5MDEsIDAuMDAxOTA1LCAwLjAwMTkwNiwgMC4wMDE5MDcsIDAuMDAxOTA3LCAwLjAwMTkwMiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTIsIDAuMDAxMiwgMC4wMDEyLCAwLjAwMTIsIDAuMDAxMTk5LCAwLjAwMTE5OSwgMC4wMDExOTkiLCBcCi0gICAgICAgICAgIjAuMDAxMjAyLCAwLjAwMTIwMiwgMC4wMDEyMDIsIDAuMDAxMjAzLCAwLjAwMTIwMywgMC4wMDEyMDEsIDAuMDAxMjAzIiwgXAotICAgICAgICAgICIwLjAwMTIwMiwgMC4wMDEyMDIsIDAuMDAxMjAzLCAwLjAwMTIwMywgMC4wMDEyMDQsIDAuMDAxMjAxLCAwLjAwMTIwMyIsIFwKLSAgICAgICAgICAiMC4wMDExOTksIDAuMDAxMjAxLCAwLjAwMTIwMywgMC4wMDEyMDMsIDAuMDAxMjAzLCAwLjAwMTIwMywgMC4wMDEyMDMiLCBcCi0gICAgICAgICAgIjAuMDAxMiwgMC4wMDEyMDEsIDAuMDAxMjAzLCAwLjAwMTIwMywgMC4wMDEyMDMsIDAuMDAxMjAzLCAwLjAwMTIwMyIsIFwKLSAgICAgICAgICAiMC4wMDExOTksIDAuMDAxMTk5LCAwLjAwMTIwMiwgMC4wMDEyMDMsIDAuMDAxMjAzLCAwLjAwMTIwMywgMC4wMDEyMDMiLCBcCi0gICAgICAgICAgIjAuMDAxMTk4LCAwLjAwMTE5OSwgMC4wMDEyMDEsIDAuMDAxMjAzLCAwLjAwMTIwMywgMC4wMDEyMDMsIDAuMDAxMjAzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwNTU5LCAwLjAwMDU1OSwgMC4wMDA1NiwgMC4wMDA1NiwgMC4wMDA1NiwgMC4wMDA1NTksIDAuMDAwNTU0IiwgXAotICAgICAgICAgICIwLjAwMDU1NywgMC4wMDA1NTcsIDAuMDAwNTU5LCAwLjAwMDU1OSwgMC4wMDA1NTksIDAuMDAwNTU5LCAwLjAwMDU1NCIsIFwKLSAgICAgICAgICAiMC4wMDA1NTQsIDAuMDAwNTU1LCAwLjAwMDU1OCwgMC4wMDA1NTksIDAuMDAwNTU5LCAwLjAwMDU1OSwgMC4wMDA1NTQiLCBcCi0gICAgICAgICAgIjAuMDAwNTUxLCAwLjAwMDU1MiwgMC4wMDA1NTYsIDAuMDAwNTU4LCAwLjAwMDU1OSwgMC4wMDA1NTgsIDAuMDAwNTU0IiwgXAotICAgICAgICAgICIwLjAwMDU0OSwgMC4wMDA1NSwgMC4wMDA1NTUsIDAuMDAwNTU3LCAwLjAwMDU1OCwgMC4wMDA1NTgsIDAuMDAwNTU0IiwgXAotICAgICAgICAgICIwLjAwMDU0NSwgMC4wMDA1NDcsIDAuMDAwNTU0LCAwLjAwMDU1NywgMC4wMDA1NTgsIDAuMDAwNTU4LCAwLjAwMDU1MyIsIFwKLSAgICAgICAgICAiMC4wMDA1NDMsIDAuMDAwNTQ0LCAwLjAwMDU1MiwgMC4wMDA1NTYsIDAuMDAwNTU3LCAwLjAwMDU1NywgMC4wMDA1NTMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJEIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDEwMiwgMC4wMDEwMiwgMC4wMDEwMiwgMC4wMDEwMiwgMC4wMDEwMiwgMC4wMDEwMjEsIDAuMDAxMDIiLCBcCi0gICAgICAgICAgIjAuMDAxMDI1LCAwLjAwMTAyNSwgMC4wMDEwMjYsIDAuMDAxMDI2LCAwLjAwMTAyNywgMC4wMDEwMjcsIDAuMDAxMDI3IiwgXAotICAgICAgICAgICIwLjAwMTAyNSwgMC4wMDEwMjYsIDAuMDAxMDI3LCAwLjAwMTAyOCwgMC4wMDEwMjgsIDAuMDAxMDI4LCAwLjAwMTAyOSIsIFwKLSAgICAgICAgICAiMC4wMDEwMjQsIDAuMDAxMDI1LCAwLjAwMTAyNywgMC4wMDEwMjgsIDAuMDAxMDI5LCAwLjAwMTAyOSwgMC4wMDEwMjkiLCBcCi0gICAgICAgICAgIjAuMDAxMDIzLCAwLjAwMTAyNCwgMC4wMDEwMjcsIDAuMDAxMDI4LCAwLjAwMTAyOSwgMC4wMDEwMjksIDAuMDAxMDI5IiwgXAotICAgICAgICAgICIwLjAwMTAyMSwgMC4wMDEwMjIsIDAuMDAxMDI2LCAwLjAwMTAyOCwgMC4wMDEwMjksIDAuMDAxMDI5LCAwLjAwMTAyOSIsIFwKLSAgICAgICAgICAiMC4wMDEwMiwgMC4wMDEwMjEsIDAuMDAxMDI1LCAwLjAwMTAyOCwgMC4wMDEwMjgsIDAuMDAxMDI5LCAwLjAwMTAyOSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDU1OSwgMC4wMDA1NTksIDAuMDAwNTYsIDAuMDAwNTU1LCAwLjAwMDU2LCAwLjAwMDU1OSwgMC4wMDA1NTUiLCBcCi0gICAgICAgICAgIjAuMDAwNTU2LCAwLjAwMDU1NywgMC4wMDA1NTksIDAuMDAwNTU5LCAwLjAwMDU1OSwgMC4wMDA1NTksIDAuMDAwNTU0IiwgXAotICAgICAgICAgICIwLjAwMDU1MywgMC4wMDA1NTQsIDAuMDAwNTU3LCAwLjAwMDU1OCwgMC4wMDA1NTksIDAuMDAwNTU5LCAwLjAwMDU1NCIsIFwKLSAgICAgICAgICAiMC4wMDA1NDksIDAuMDAwNTUxLCAwLjAwMDU1NiwgMC4wMDA1NTgsIDAuMDAwNTU4LCAwLjAwMDU1OCwgMC4wMDA1NTQiLCBcCi0gICAgICAgICAgIjAuMDAwNTQ3LCAwLjAwMDU0OCwgMC4wMDA1NTUsIDAuMDAwNTU3LCAwLjAwMDU1OCwgMC4wMDA1NTgsIDAuMDAwNTU0IiwgXAotICAgICAgICAgICIwLjAwMDU0MywgMC4wMDA1NDUsIDAuMDAwNTUzLCAwLjAwMDU1NiwgMC4wMDA1NTcsIDAuMDAwNTU4LCAwLjAwMDU1MyIsIFwKLSAgICAgICAgICAiMC4wMDA1NCwgMC4wMDA1NDIsIDAuMDAwNTUxLCAwLjAwMDU1NSwgMC4wMDA1NTcsIDAuMDAwNTU3LCAwLjAwMDU1MyIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IE5BTkQ0WDIgKgotICogLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoTkFORDRYMikgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjI1OTM4ODsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxOTMxMTg7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxOTMxMTg7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxOTI2NDg7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNjEyLCAwLjAwMDYxMSwgMC4wMDA2MTEsIDAuMDAwNjExLCAwLjAwMDYxMSwgMC4wMDA2MTEsIDAuMDAwNjExIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNjEzLCAwLjAwMDYxNCwgMC4wMDA2MTQsIDAuMDAwNjE0LCAwLjAwMDYxNCwgMC4wMDA2MTQsIDAuMDAwNjE0Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE3MzA3OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTczMDc7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNzI1Mzc7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNjEyLCAwLjAwMDYxMiwgMC4wMDA2MTEsIDAuMDAwNjEyLCAwLjAwMDYxMSwgMC4wMDA2MTEsIDAuMDAwNjExIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNjEzLCAwLjAwMDYxNCwgMC4wMDA2MTQsIDAuMDAwNjE0LCAwLjAwMDYxNCwgMC4wMDA2MTQsIDAuMDAwNjE0Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihDKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE2MDUxMjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE2MDUxMjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE2MDA5NjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA2MTIsIDAuMDAwNjEyLCAwLjAwMDYxMSwgMC4wMDA2MTIsIDAuMDAwNjExLCAwLjAwMDYxMSwgMC4wMDA2MTEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA2MTMsIDAuMDAwNjE0LCAwLjAwMDYxNCwgMC4wMDA2MTQsIDAuMDAwNjE0LCAwLjAwMDYxNCwgMC4wMDA2MTQiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEQpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTQ4MTY1OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTQ4MDI2OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTQ4MTY1OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDI3MiwgMC4wMDAyNzIsIDAuMDAwMjcxLCAwLjAwMDI3MSwgMC4wMDAyNzEsIDAuMDAwMjcxLCAwLjAwMDI3MSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDY5NSwgMC4wMDA2OTYsIDAuMDAwNjk1LCAwLjAwMDY5NiwgMC4wMDA2OTYsIDAuMDAwNjk2LCAwLjAwMDY5NiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjA2ODQ5MDU7Ci0gICAgZnVuY3Rpb24gOiAiKCEoKChBIEIpIEMpIEQpKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU5NDY3LCAwLjI0MDI1OSwgMC4zODM4ODgsIDAuNTYzMjEsIDAuNzQyNDg4LCAwLjkyMTU1NiwgMS4xMDA4OSIsIFwKLSAgICAgICAgICAiMC4wNzA5NjIsIDAuMjUxNzQ3LCAwLjM5NTM4LCAwLjU3NDcsIDAuNzUzOTU4LCAwLjkzMzE3NCwgMS4xMTI0MSIsIFwKLSAgICAgICAgICAiMC4wODU1MjEsIDAuMjY2MTQ0LCAwLjQwOTc4NywgMC41ODkxMzIsIDAuNzY4Mzg4LCAwLjk0NzYxMSwgMS4xMjY2OCIsIFwKLSAgICAgICAgICAiMC4xMDA2MDksIDAuMjgwNjMyLCAwLjQyNDIyMiwgMC42MDM1MzksIDAuNzc4ODY5LCAwLjk1ODA5OCwgMS4xMzcyMyIsIFwKLSAgICAgICAgICAiMC4xMTU0NTUsIDAuMjk1MjgxLCAwLjQzODc2MSwgMC42MTgwMjMsIDAuNzk3Mjc3LCAwLjk3MTUxNCwgMS4xNTA3MSIsIFwKLSAgICAgICAgICAiMC4xMzk2MzYsIDAuMzE4OTA5LCAwLjQ2MjEwNiwgMC42NDEyMTQsIDAuODIwNDE1LCAwLjk5OTY3NiwgMS4xNzMiLCBcCi0gICAgICAgICAgIjAuMTU5NjI4LCAwLjMzOTYyOCwgMC40ODI1MTIsIDAuNjYxNzA4LCAwLjg0MDc2OSwgMS4wMTk5NCwgMS4xOTkxNyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDg5MDIsIDAuNDczNDM3LCAwLjc2NDk3OCwgMS4xMjk1MywgMS40OTQ2NCwgMS44NTg2OCwgMi4yMjM2MiIsIFwKLSAgICAgICAgICAiMC4xMDg3MTksIDAuNDczMzAyLCAwLjc2NTA2MywgMS4xMjk4MSwgMS40OTM5OCwgMS44NTkxNSwgMi4yMjIzOSIsIFwKLSAgICAgICAgICAiMC4xMTAxODQsIDAuNDczMzMxLCAwLjc2NTE1NCwgMS4xMjk2OSwgMS40OTQsIDEuODU4ODgsIDIuMjIyMjMiLCBcCi0gICAgICAgICAgIjAuMTE0MTc2LCAwLjQ3MzM4MSwgMC43NjQ5NzUsIDEuMTI5OTEsIDEuNDkzNjQsIDEuODU3OSwgMi4yMjM2IiwgXAotICAgICAgICAgICIwLjExOTk3OCwgMC40NzMzODMsIDAuNzY0OTYxLCAxLjEyODk5LCAxLjQ5Mzk2LCAxLjg1NzksIDIuMjIzNjIiLCBcCi0gICAgICAgICAgIjAuMTMwNjU0LCAwLjQ3NDI3NCwgMC43NjQ5NTcsIDEuMTI5NzYsIDEuNDk0MDIsIDEuODU3NTIsIDIuMjIzNTkiLCBcCi0gICAgICAgICAgIjAuMTQxNzMyLCAwLjQ3NzAyMSwgMC43NjQ3MTYsIDEuMTI5MjYsIDEuNDkzOTIsIDEuODU5MTksIDIuMjIyMjQiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjY0MzU1LCAxLjA4MjEzLCAxLjczNjM1LCAyLjU1MjYxLCAzLjM2OSwgNC4xODU2MywgNS4wMDIzNiIsIFwKLSAgICAgICAgICAiMC4yNzUzOTYsIDEuMDkzNTEsIDEuNzQ2OTQsIDIuNTY0NTYsIDMuMzgwNzgsIDQuMTk3NDUsIDUuMDEzOSIsIFwKLSAgICAgICAgICAiMC4yODgxMzEsIDEuMTA2NjYsIDEuNzYwMTcsIDIuNTc3OTgsIDMuMzkzNjQsIDQuMjEwNjQsIDUuMDI3MDUiLCBcCi0gICAgICAgICAgIjAuMjk5ODcyLCAxLjExODY4LCAxLjc3MjQ1LCAyLjU4OTY4LCAzLjQwNjExLCA0LjIyMjc0LCA1LjAzOTE4IiwgXAotICAgICAgICAgICIwLjMxMTA5MywgMS4xMzAzMywgMS43ODQ4MywgMi42MDExOSwgMy40MTc3MSwgNC4yMzQzMiwgNS4wNTA5NCIsIFwKLSAgICAgICAgICAiMC4zMjg2MDYsIDEuMTQ3NzIsIDEuODAxNzksIDIuNjE5NjEsIDMuNDM1NTYsIDQuMjUyNDMsIDUuMDY4ODUiLCBcCi0gICAgICAgICAgIjAuMzQzNjc4LCAxLjE2MzM5LCAxLjgxNzI5LCAyLjYzNDg3LCAzLjQ1MTMsIDQuMjY3NjUsIDUuMDg0MjciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuNDI1MzMzLCAxLjk2NTU0LCAzLjE5MDg4LCA0LjcwMzI0LCA2LjIxMjk1LCA3LjcyODIxLCA5LjI0NDQzIiwgXAotICAgICAgICAgICIwLjQyNzY1OCwgMS45NDc3NSwgMy4xODAzLCA0LjcwMzM3LCA2LjIxMzQ0LCA3LjcyODAxLCA5LjI0NDg2IiwgXAotICAgICAgICAgICIwLjQyNDkzOSwgMS45NTc1OCwgMy4xODk5OSwgNC43MDM2NCwgNi4yMTMwNCwgNy43MjgwMiwgOS4yNDQ4MyIsIFwKLSAgICAgICAgICAiMC40MjUzNjQsIDEuOTQ3NywgMy4xOTAwNywgNC43MDMxMiwgNi4yMTMsIDcuNzI3ODUsIDkuMjQzOSIsIFwKLSAgICAgICAgICAiMC40MjUyOTUsIDEuOTU3NjIsIDMuMTkwODksIDQuNjg3NjEsIDYuMjEzMjgsIDcuNzI3ODMsIDkuMjQzNzEiLCBcCi0gICAgICAgICAgIjAuNDI1NTUxLCAxLjk0ODM0LCAzLjE5MDA2LCA0LjY4OTQ1LCA2LjIwOTY1LCA3LjcyODA1LCA5LjI0NDc5IiwgXAotICAgICAgICAgICIwLjQyNjc0OSwgMS45NTc3OSwgMy4xOTAzLCA0LjcwMzU5LCA2LjIxMjIzLCA3LjcyNzk0LCA5LjI0Mzc5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1ODMzMywgMC4yMzkyOTQsIDAuMzgzNTM5LCAwLjU2MzY4NCwgMC43NDM5NDIsIDAuOTIzOTczLCAxLjEwMzkxIiwgXAotICAgICAgICAgICIwLjA2OTg2OSwgMC4yNTA4NTcsIDAuMzk1MTEyLCAwLjU3NTI2MywgMC43NTU1NTQsIDAuOTM1NjU3LCAxLjExNTQ1IiwgXAotICAgICAgICAgICIwLjA4NDc3NywgMC4yNjU0MTksIDAuNDA5NDYzLCAwLjU4OTY2LCAwLjc2OTc4NywgMC45NTAwMTQsIDEuMTI5ODQiLCBcCi0gICAgICAgICAgIjAuMDk5Njg4LCAwLjI4MDQyNiwgMC40MjQ1NDQsIDAuNjA0NzkyLCAwLjc4NDk0NCwgMC45NjUyMTUsIDEuMTQ1MDUiLCBcCi0gICAgICAgICAgIjAuMTE0MjIyLCAwLjI5NDI4MywgMC40MzgzOTUsIDAuNjE4NTQzLCAwLjc5ODc3MiwgMC45NzM1NTIsIDEuMTUzNzgiLCBcCi0gICAgICAgICAgIjAuMTM4MjMxLCAwLjMxNzg2MywgMC40NjE2NzEsIDAuNjQxNzY1LCAwLjgyMTg1MywgMS4wMDE5NSwgMS4xODE4OSIsIFwKLSAgICAgICAgICAiMC4xNTc5NjMsIDAuMzM5MjE2LCAwLjQ4MTgyMiwgMC42NjIxNTksIDAuODQyMTY2LCAxLjAyMjE0LCAxLjIwMjMxIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwNjYzMywgMC40NzMwNjcsIDAuNzY1OTMsIDEuMTMyMDIsIDEuNDk4OTEsIDEuODY0NDIsIDIuMjMwMzQiLCBcCi0gICAgICAgICAgIjAuMTA2NjUyLCAwLjQ3Mjk1NiwgMC43NjY1NzIsIDEuMTMyNTgsIDEuNDk4NjcsIDEuODY1NzQsIDIuMjMwNyIsIFwKLSAgICAgICAgICAiMC4xMDgxODEsIDAuNDcyOTg3LCAwLjc2NjQ3NiwgMS4xMzI1NiwgMS40OTk0OSwgMS44NjQ1MywgMi4yMzA0IiwgXAotICAgICAgICAgICIwLjExMjIzMSwgMC40NzI5NzksIDAuNzY2NDk4LCAxLjEzMjU3LCAxLjQ5OTQzLCAxLjg2NDU2LCAyLjIzMTc3IiwgXAotICAgICAgICAgICIwLjExODQ3NSwgMC40NzI5NDksIDAuNzY1ODg4LCAxLjEzMjMxLCAxLjQ5OTQ4LCAxLjg2NDI4LCAyLjIzMTk0IiwgXAotICAgICAgICAgICIwLjEyOTU0LCAwLjQ3NDExOSwgMC43NjU5NzgsIDEuMTMyNTcsIDEuNDk4NTksIDEuODY0MjksIDIuMjMwNjkiLCBcCi0gICAgICAgICAgIjAuMTQwOTIsIDAuNDc2OTYxLCAwLjc2NjU5LCAxLjEzMjMxLCAxLjQ5ODU1LCAxLjg2NDI0LCAyLjIzMDQ1Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI1OTgwNSwgMS4wNzcwMSwgMS43MzA5LCAyLjU0ODY5LCAzLjM2NTA2LCA0LjE4MTI5LCA0Ljk5NzYyIiwgXAotICAgICAgICAgICIwLjI3MDE5MywgMS4wODgxMywgMS43NDI1MSwgMi41NTgzLCAzLjM3NTM2LCA0LjE5MTk0LCA1LjAwODQ0IiwgXAotICAgICAgICAgICIwLjI4MjM1LCAxLjEwMTIsIDEuNzU1MDksIDIuNTcxODgsIDMuMzg4MTgsIDQuMjA0OTUsIDUuMDIxNDciLCBcCi0gICAgICAgICAgIjAuMjk0MTQ5LCAxLjExMjc5LCAxLjc2NjkyLCAyLjU4NDIsIDMuNDAwODEsIDQuMjE2OTMsIDUuMDMzNTkiLCBcCi0gICAgICAgICAgIjAuMzA1NTksIDEuMTI0NjgsIDEuNzc5MjIsIDIuNTk1ODYsIDMuNDEyMjUsIDQuMjI4NzQsIDUuMDQ1NDEiLCBcCi0gICAgICAgICAgIjAuMzIzMTQ4LCAxLjE0MjY4LCAxLjc5NzcsIDIuNjE0MTcsIDMuNDMwODIsIDQuMjQ3MDgsIDUuMDYzNzciLCBcCi0gICAgICAgICAgIjAuMzM5Mjg0LCAxLjE1OSwgMS44MTI3NSwgMi42MzAyMiwgMy40NDYzOCwgNC4yNjM0NCwgNS4wNzk5MyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC40MjY3NjUsIDEuOTU5ODcsIDMuMTY1NjcsIDQuNjg2NywgNi4yMDc5LCA3LjcyODM3LCA5LjI0NDI4IiwgXAotICAgICAgICAgICIwLjQyNzc5OCwgMS45NTc0LCAzLjE5MDc1LCA0LjcwMjYsIDYuMjEzMjYsIDcuNzI3OTcsIDkuMjQ0MjciLCBcCi0gICAgICAgICAgIjAuNDI1MzExLCAxLjk1Nzc5LCAzLjE5MDU0LCA0LjcwMzM1LCA2LjIxMzIxLCA3LjcyNzk4LCA5LjI0MzQxIiwgXAotICAgICAgICAgICIwLjQyNzc3NiwgMS45NTczNiwgMy4xOTAyMiwgNC42ODc4NywgNi4yMTEwOCwgNy43Mjc3NSwgOS4yNDQwMyIsIFwKLSAgICAgICAgICAiMC40MjUwMzYsIDEuOTU3NTEsIDMuMTkwODIsIDQuNjg3NTYsIDYuMjEzNDQsIDcuNzI3OCwgOS4yNDQ0MyIsIFwKLSAgICAgICAgICAiMC40MjY4MTMsIDEuOTQ4NDEsIDMuMTY0NTgsIDQuNzAzMiwgNi4yMTM3NSwgNy43Mjc3MSwgOS4yNDM2NiIsIFwKLSAgICAgICAgICAiMC40MjgxNzksIDEuOTU3NzUsIDMuMTkwMTIsIDQuNjg4MTIsIDYuMjEzMTMsIDcuNzI4MDgsIDkuMjQzMyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTYxNSwgMC4yMzY1MzQsIDAuMzgwNjM4LCAwLjU2MDY5MiwgMC43NDA3MjgsIDAuOTIwNzcyLCAxLjEwMTIyIiwgXAotICAgICAgICAgICIwLjA2NzgwOCwgMC4yNDgyNDcsIDAuMzkyNDE1LCAwLjU3MjU0OSwgMC43NTI2NjYsIDAuOTMyNzcxLCAxLjExMjg2IiwgXAotICAgICAgICAgICIwLjA4MjcyNCwgMC4yNjI4MTYsIDAuNDA2NzYxLCAwLjU4Njc1NywgMC43NjY3MzksIDAuOTQ2ODMsIDEuMTI3MTUiLCBcCi0gICAgICAgICAgIjAuMDk3NDAxLCAwLjI3Nzg3NCwgMC40MjE4OTEsIDAuNjAxODYyLCAwLjc4MjA2MiwgMC45NjIyMzcsIDEuMTQyMjkiLCBcCi0gICAgICAgICAgIjAuMTEyMTk5LCAwLjI5MTcwOCwgMC40MzU3MzgsIDAuNjE1NzEsIDAuNzk1NzMxLCAwLjk3MDYyNCwgMS4xNTA5OSIsIFwKLSAgICAgICAgICAiMC4xMzYwNTEsIDAuMzE1MzAxLCAwLjQ1OTAyLCAwLjYzODkwMiwgMC44MTkwNTksIDAuOTk5MDQyLCAxLjE3OTUzIiwgXAotICAgICAgICAgICIwLjE1NTQyNCwgMC4zMzY2MjEsIDAuNDc5MTEsIDAuNjU5MzkzLCAwLjgzOTE4MywgMS4wMTkzMywgMS4xOTkzOCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDM3MDIsIDAuNDcwMDA4LCAwLjc2Mjg1MiwgMS4xMjg5NCwgMS40OTU5MSwgMS44NjExNywgMi4yMjgxIiwgXAotICAgICAgICAgICIwLjEwMzY5OCwgMC40NzAxNzQsIDAuNzYzNTU1LCAxLjEyOTQ1LCAxLjQ5NTU5LCAxLjg2MTc1LCAyLjIyODA2IiwgXAotICAgICAgICAgICIwLjEwNTQ0OCwgMC40NzAwNjQsIDAuNzYzMDEyLCAxLjEyOTczLCAxLjQ5NTIyLCAxLjg2MTE3LCAyLjIyODA2IiwgXAotICAgICAgICAgICIwLjExMDAzMiwgMC40NzAwMzQsIDAuNzYyODQ1LCAxLjEyOTExLCAxLjQ5NTk5LCAxLjg2MTc1LCAyLjIyNzkiLCBcCi0gICAgICAgICAgIjAuMTE2MywgMC40NzAwNCwgMC43NjMwNTEsIDEuMTI4OTQsIDEuNDk1MiwgMS44NjExOCwgMi4yMjc5NyIsIFwKLSAgICAgICAgICAiMC4xMjc3NDksIDAuNDcxMTE2LCAwLjc2MzA1MiwgMS4xMjkxMiwgMS40OTUzNywgMS44NjExOSwgMi4yMjgxMSIsIFwKLSAgICAgICAgICAiMC4xMzk1ODYsIDAuNDc0Mjc3LCAwLjc2MjgzMSwgMS4xMjkxOSwgMS40OTUyOSwgMS44NjIxMSwgMi4yMjczNyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yNDk0OTQsIDEuMDY3NCwgMS43MjAyNiwgMi41Mzc5NSwgMy4zNTQxMywgNC4xNzA4NiwgNC45ODczIiwgXAotICAgICAgICAgICIwLjI1OTA3OCwgMS4wNzY3MSwgMS43MzA5NSwgMi41NDc4LCAzLjM2NDM1LCA0LjE4MTA5LCA0Ljk5NzQ5IiwgXAotICAgICAgICAgICIwLjI3MTA1NywgMS4wODk3NSwgMS43NDM3NSwgMi41NjA1LCAzLjM3NjczLCA0LjE5MzU3LCA1LjAxMDA3IiwgXAotICAgICAgICAgICIwLjI4MjkyNywgMS4xMDIwOCwgMS43NTQ5NywgMi41NzMyNCwgMy4zODk2OCwgNC4yMDU5NCwgNS4wMjIzMSIsIFwKLSAgICAgICAgICAiMC4yOTQ3NzQsIDEuMTEzNjEsIDEuNzY3NjYsIDIuNTg1MjEsIDMuNDAxODcsIDQuMjE4MjQsIDUuMDM0NTciLCBcCi0gICAgICAgICAgIjAuMzEzOTg1LCAxLjEzMzA5LCAxLjc4NzQ4LCAyLjYwNDMyLCAzLjQyMTA5LCA0LjIzNzYyLCA1LjA1NDM1IiwgXAotICAgICAgICAgICIwLjMzMDg2LCAxLjE1MDIzLCAxLjgwNDI5LCAyLjYyMTcyLCAzLjQzODY2LCA0LjI1NTI0LCA1LjA3MTY0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjQyNTQ4NCwgMS45NDcwOSwgMy4xODY1LCA0LjcwMzQ2LCA2LjIxMzM3LCA3LjcyODMyLCA5LjI0NDY5IiwgXAotICAgICAgICAgICIwLjQyNzYzNSwgMS45NDkxLCAzLjE5MDIyLCA0LjY5MzExLCA2LjIwNjQ0LCA3LjcyNzQ2LCA5LjI0NDc4IiwgXAotICAgICAgICAgICIwLjQyNzgxNiwgMS45NTc3MSwgMy4xOTA1OCwgNC43MDMzNSwgNi4yMTM1OSwgNy43MjgxMiwgOS4yNDMyNCIsIFwKLSAgICAgICAgICAiMC40Mjc3MDYsIDEuOTQ4MDgsIDMuMTc4NjUsIDQuNjg4NDQsIDYuMjA3NjQsIDcuNzI4MDQsIDkuMjQ0MzYiLCBcCi0gICAgICAgICAgIjAuNDI3NzY5LCAxLjk0NzQyLCAzLjE5MDA2LCA0LjY4ODksIDYuMjEwODMsIDcuNzI4MDgsIDkuMjQ0MTciLCBcCi0gICAgICAgICAgIjAuNDI4MTE5LCAxLjk0ODI2LCAzLjE2NTU2LCA0LjY5MTcyLCA2LjIxMzU1LCA3LjcyNzgsIDkuMjQyNzgiLCBcCi0gICAgICAgICAgIjAuNDI5MTg0LCAxLjk1NjQxLCAzLjE2NzAxLCA0LjcwMDkzLCA2LjIwOTI4LCA3LjcyNzM2LCA5LjI0NDE0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkQiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1NDMwNiwgMC4yMzcyNiwgMC4zODM1OTIsIDAuNTY2NDgxLCAwLjc0OTUwMiwgMC45MzIzMTMsIDEuMTE1NTYiLCBcCi0gICAgICAgICAgIjAuMDY1OTgyLCAwLjI0ODk5MywgMC4zOTUzMTgsIDAuNTc4MzA2LCAwLjc2MTEwOSwgMC45NDQ0OTQsIDEuMTI2OTgiLCBcCi0gICAgICAgICAgIjAuMDgwODEzLCAwLjI2MzQzMywgMC40MDc4MDIsIDAuNTkwNzQ0LCAwLjc3MzUzOSwgMC45NTYzMzQsIDEuMTM5MTQiLCBcCi0gICAgICAgICAgIjAuMDk1NjE0LCAwLjI3NzkyMSwgMC40MjQyNTksIDAuNjA2OTY3LCAwLjc5MDUzMiwgMC45NzI5NDIsIDEuMTU2NiIsIFwKLSAgICAgICAgICAiMC4xMTAzNjQsIDAuMjkyNTA0LCAwLjQzODY2NSwgMC42MjE2NDMsIDAuODA0MzMzLCAwLjk4MjM3OSwgMS4xNjU0NiIsIFwKLSAgICAgICAgICAiMC4xMzM4OTQsIDAuMzE2MDkxLCAwLjQ2MjEyNywgMC42NDQ4NzMsIDAuODI3NjQ3LCAxLjAxMDY3LCAxLjE4NzU3IiwgXAotICAgICAgICAgICIwLjE1MzA1MSwgMC4zMzY3ODEsIDAuNDgyMzY4LCAwLjY2NTA5MSwgMC44NDgxNjIsIDEuMDMwODQsIDEuMjEzOTQiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTAyMjUyLCAwLjQ3NDU0NiwgMC43NzE1NzMsIDEuMTQzNjEsIDEuNTE2MDUsIDEuODkyMywgMi4yNjAxIiwgXAotICAgICAgICAgICIwLjEwMjQxNCwgMC40NzQwNjcsIDAuNzczNjE3LCAxLjE0NDc3LCAxLjUxNTczLCAxLjg4NzczLCAyLjI1OSIsIFwKLSAgICAgICAgICAiMC4xMDQyNDQsIDAuNDc0MjUyLCAwLjc3MTYwMywgMS4xNDQ5MiwgMS41MTUzNCwgMS44OTIwOCwgMi4yNjU2NCIsIFwKLSAgICAgICAgICAiMC4xMDkxODYsIDAuNDc0MTc1LCAwLjc3MTc0NSwgMS4xNDYyNywgMS41MTY2MiwgMS44ODc2OSwgMi4yNjA5OSIsIFwKLSAgICAgICAgICAiMC4xMTU1NjQsIDAuNDc1NDI5LCAwLjc3Mzg0NywgMS4xNDUwNSwgMS41MTk2OCwgMS44ODc2MiwgMi4yNjE4NyIsIFwKLSAgICAgICAgICAiMC4xMjcyNzIsIDAuNDc1NjExLCAwLjc3MTkwNiwgMS4xNDQxNiwgMS41MTU1MiwgMS44ODgwMiwgMi4yNjQ2MyIsIFwKLSAgICAgICAgICAiMC4xMzkxNTQsIDAuNDc4MTcsIDAuNzczNzY4LCAxLjE0Njc5LCAxLjUxNiwgMS44ODcxLCAyLjI2MDAyIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIzMjk5LCAxLjA1MDU4LCAxLjcwNDU3LCAyLjUyMTQyLCAzLjMzOCwgNC4xNTQ0MSwgNC45NzA5NiIsIFwKLSAgICAgICAgICAiMC4yNDE2ODUsIDEuMDU5NDksIDEuNzEzMiwgMi41MzAyMywgMy4zNDcwNiwgNC4xNjM4NywgNC45ODAzMyIsIFwKLSAgICAgICAgICAiMC4yNTI4MjksIDEuMDcxMzQsIDEuNzI1OTQsIDIuNTQyMTgsIDMuMzU4OTMsIDQuMTc1ODEsIDQuOTkyMTkiLCBcCi0gICAgICAgICAgIjAuMjYzODM3LCAxLjA4MjUzLCAxLjczNzExLCAyLjU1NDE0LCAzLjM3MDM1LCA0LjE4NzEyLCA1LjAwMzczIiwgXAotICAgICAgICAgICIwLjI3NTg5NSwgMS4wOTQ5LCAxLjc0OTQ0LCAyLjU2NjUzLCAzLjM4MjgxLCA0LjE5OTYxLCA1LjAxNjMzIiwgXAotICAgICAgICAgICIwLjI5MzY0NCwgMS4xMTI4LCAxLjc2Njc2LCAyLjU4NDE2LCAzLjQwMTA5LCA0LjIxNzYsIDUuMDM0MDUiLCBcCi0gICAgICAgICAgIjAuMzEwMTQ5LCAxLjEyOTU1LCAxLjc4NDM5LCAyLjYwMTY2LCAzLjQxNzcyLCA0LjIzNDQ0LCA1LjA1MDgxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjQyNzg1MywgMS45NDc2LCAzLjE5MDQxLCA0LjcwMzM0LCA2LjIwOTA5LCA3LjcyODMsIDkuMjQ0MTQiLCBcCi0gICAgICAgICAgIjAuNDI2NjU5LCAxLjk1NTcyLCAzLjE2NjgyLCA0LjcwMjc0LCA2LjIwOTU2LCA3LjcyNzI5LCA5LjI0NDUiLCBcCi0gICAgICAgICAgIjAuNDI1MDU1LCAxLjk0OTU1LCAzLjE2NDIsIDQuNzAwNywgNi4yMDkyMiwgNy43MjczLCA5LjI0NDkzIiwgXAotICAgICAgICAgICIwLjQyNzQ1NSwgMS45NjAwOSwgMy4xOTA0MSwgNC43MDMzOCwgNi4yMTMxNywgNy43MjgwMSwgOS4yNDMwNyIsIFwKLSAgICAgICAgICAiMC40MjQ1OTQsIDEuOTYxMzcsIDMuMTkwMzMsIDQuNzAzMiwgNi4yMTMxNywgNy43Mjc4OSwgOS4yNDM2IiwgXAotICAgICAgICAgICIwLjQyNzc4MSwgMS45NTcxOSwgMy4xNjcwMywgNC43MDA5NiwgNi4yMDk0MywgNy43Mjc1MSwgOS4yNDM2NyIsIFwKLSAgICAgICAgICAiMC40Mjk4ODYsIDEuOTU3MDgsIDMuMTkwNjcsIDQuNjg2MTUsIDYuMjEzMzYsIDcuNzI3OTMsIDkuMjQzNTUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQ4NzksIDAuMDA0ODc4LCAwLjAwNDg3OCwgMC4wMDQ4NzcsIDAuMDA0ODc2LCAwLjAwNDg3NiwgMC4wMDQ4NzUiLCBcCi0gICAgICAgICAgIjAuMDA0ODUzLCAwLjAwNDg1NCwgMC4wMDQ4NTMsIDAuMDA0ODU0LCAwLjAwNDg1MiwgMC4wMDQ4NTIsIDAuMDA0ODUiLCBcCi0gICAgICAgICAgIjAuMDA0ODQxLCAwLjAwNDg0OCwgMC4wMDQ4NDcsIDAuMDA0ODQ2LCAwLjAwNDg0NiwgMC4wMDQ4NDYsIDAuMDA0ODQ0IiwgXAotICAgICAgICAgICIwLjAwNDgzNCwgMC4wMDQ4NDMsIDAuMDA0ODQ1LCAwLjAwNDg0MywgMC4wMDQ4NCwgMC4wMDQ4MzksIDAuMDA0ODQiLCBcCi0gICAgICAgICAgIjAuMDA0ODMsIDAuMDA0ODQxLCAwLjAwNDg0MiwgMC4wMDQ4NDEsIDAuMDA0ODQxLCAwLjAwNDgzOSwgMC4wMDQ4NCIsIFwKLSAgICAgICAgICAiMC4wMDQ4MjMsIDAuMDA0ODM4LCAwLjAwNDg0LCAwLjAwNDg0LCAwLjAwNDgzOSwgMC4wMDQ4MzgsIDAuMDA0ODM2IiwgXAotICAgICAgICAgICIwLjAwNDgyLCAwLjAwNDgzNSwgMC4wMDQ4MzMsIDAuMDA0ODM4LCAwLjAwNDgzOSwgMC4wMDQ4MzgsIDAuMDA0ODM3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxODUyLCAwLjAwMTg1NywgMC4wMDE4NTcsIDAuMDAxODU3LCAwLjAwMTg1NywgMC4wMDE4NTcsIDAuMDAxODYzIiwgXAotICAgICAgICAgICIwLjAwMTgyOCwgMC4wMDE4NTEsIDAuMDAxODU0LCAwLjAwMTg1NSwgMC4wMDE4NTYsIDAuMDAxODU2LCAwLjAwMTg1NiIsIFwKLSAgICAgICAgICAiMC4wMDE4MDUsIDAuMDAxODQ0LCAwLjAwMTg1LCAwLjAwMTg1MiwgMC4wMDE4NTQsIDAuMDAxODU1LCAwLjAwMTg1NSIsIFwKLSAgICAgICAgICAiMC4wMDE3ODcsIDAuMDAxODM3LCAwLjAwMTg0NSwgMC4wMDE4NDksIDAuMDAxODUxLCAwLjAwMTg1MywgMC4wMDE4NTMiLCBcCi0gICAgICAgICAgIjAuMDAxNzczLCAwLjAwMTgzMSwgMC4wMDE4NCwgMC4wMDE4NDYsIDAuMDAxODQ5LCAwLjAwMTg1LCAwLjAwMTg1MSIsIFwKLSAgICAgICAgICAiMC4wMDE3NTYsIDAuMDAxODIxLCAwLjAwMTgzNCwgMC4wMDE4NDEsIDAuMDAxODQ1LCAwLjAwMTg0NywgMC4wMDE4NDkiLCBcCi0gICAgICAgICAgIjAuMDAxNzQ1LCAwLjAwMTgxNCwgMC4wMDE4MywgMC4wMDE4MzgsIDAuMDAxODQzLCAwLjAwMTg0NiwgMC4wMDE4NDgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQyODEsIDAuMDA0MjgxLCAwLjAwNDI4MSwgMC4wMDQyODEsIDAuMDA0Mjc5LCAwLjAwNDI3OCwgMC4wMDQyNzgiLCBcCi0gICAgICAgICAgIjAuMDA0MjY0LCAwLjAwNDI2OSwgMC4wMDQyNjksIDAuMDA0MjY5LCAwLjAwNDI2OSwgMC4wMDQyNjksIDAuMDA0MjY2IiwgXAotICAgICAgICAgICIwLjAwNDI1NCwgMC4wMDQyNjMsIDAuMDA0MjY1LCAwLjAwNDI2NiwgMC4wMDQyNjQsIDAuMDA0MjY0LCAwLjAwNDI2MyIsIFwKLSAgICAgICAgICAiMC4wMDQyNDYsIDAuMDA0MjYxLCAwLjAwNDI2MywgMC4wMDQyNjIsIDAuMDA0MjYzLCAwLjAwNDI2MywgMC4wMDQyNjIiLCBcCi0gICAgICAgICAgIjAuMDA0MjM5LCAwLjAwNDI1OCwgMC4wMDQyNiwgMC4wMDQyNjEsIDAuMDA0MjYxLCAwLjAwNDI1OSwgMC4wMDQyNiIsIFwKLSAgICAgICAgICAiMC4wMDQyMjgsIDAuMDA0MjU1LCAwLjAwNDI1OCwgMC4wMDQyNTksIDAuMDA0MjU5LCAwLjAwNDI1OSwgMC4wMDQyNTgiLCBcCi0gICAgICAgICAgIjAuMDA0MjI1LCAwLjAwNDI1MiwgMC4wMDQyNTEsIDAuMDA0MjU4LCAwLjAwNDI1OCwgMC4wMDQyNTgsIDAuMDA0MjU5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxODUyLCAwLjAwMTg1NywgMC4wMDE4NTgsIDAuMDAxODU4LCAwLjAwMTg2NCwgMC4wMDE4NTgsIDAuMDAxODU4IiwgXAotICAgICAgICAgICIwLjAwMTgyOCwgMC4wMDE4NTEsIDAuMDAxODU0LCAwLjAwMTg1NSwgMC4wMDE4NTYsIDAuMDAxODU2LCAwLjAwMTg1NyIsIFwKLSAgICAgICAgICAiMC4wMDE4MDQsIDAuMDAxODQ0LCAwLjAwMTg0OSwgMC4wMDE4NTIsIDAuMDAxODU0LCAwLjAwMTg1NSwgMC4wMDE4NTUiLCBcCi0gICAgICAgICAgIjAuMDAxNzg3LCAwLjAwMTgzOCwgMC4wMDE4NDUsIDAuMDAxODQ5LCAwLjAwMTg1MiwgMC4wMDE4NTMsIDAuMDAxODU0IiwgXAotICAgICAgICAgICIwLjAwMTc3MywgMC4wMDE4MzEsIDAuMDAxODQxLCAwLjAwMTg0NiwgMC4wMDE4NDksIDAuMDAxODUxLCAwLjAwMTg1MiIsIFwKLSAgICAgICAgICAiMC4wMDE3NTUsIDAuMDAxODIyLCAwLjAwMTgzNCwgMC4wMDE4NDIsIDAuMDAxODQ2LCAwLjAwMTg0OCwgMC4wMDE4NSIsIFwKLSAgICAgICAgICAiMC4wMDE3NDUsIDAuMDAxODE0LCAwLjAwMTgyOSwgMC4wMDE4MzgsIDAuMDAxODQyLCAwLjAwMTg0NSwgMC4wMDE4NDciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDM1OTUsIDAuMDAzNTk1LCAwLjAwMzU5NSwgMC4wMDM1OTUsIDAuMDAzNTk1LCAwLjAwMzU5NCwgMC4wMDM1OTQiLCBcCi0gICAgICAgICAgIjAuMDAzNTk1LCAwLjAwMzYwNCwgMC4wMDM2MDUsIDAuMDAzNjA1LCAwLjAwMzYwNCwgMC4wMDM2MDUsIDAuMDAzNjA0IiwgXAotICAgICAgICAgICIwLjAwMzU4NiwgMC4wMDM2MDQsIDAuMDAzNjA2LCAwLjAwMzYwNywgMC4wMDM2MDgsIDAuMDAzNjA4LCAwLjAwMzYwNiIsIFwKLSAgICAgICAgICAiMC4wMDM1NzksIDAuMDAzNjAxLCAwLjAwMzYwNSwgMC4wMDM2MDcsIDAuMDAzNjA3LCAwLjAwMzYwNywgMC4wMDM2MDciLCBcCi0gICAgICAgICAgIjAuMDAzNTcsIDAuMDAzNiwgMC4wMDM2MDQsIDAuMDAzNjA2LCAwLjAwMzYwOCwgMC4wMDM2MDcsIDAuMDAzNjA4IiwgXAotICAgICAgICAgICIwLjAwMzU1OSwgMC4wMDM1OTcsIDAuMDAzNjAyLCAwLjAwMzYwNSwgMC4wMDM2MDYsIDAuMDAzNjA2LCAwLjAwMzYwNiIsIFwKLSAgICAgICAgICAiMC4wMDM1NTMsIDAuMDAzNTk0LCAwLjAwMzU5NSwgMC4wMDM2MDMsIDAuMDAzNjA1LCAwLjAwMzYwNiwgMC4wMDM2MDYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDE4NTIsIDAuMDAxODU3LCAwLjAwMTg1OCwgMC4wMDE4NTgsIDAuMDAxODU4LCAwLjAwMTg1OCwgMC4wMDE4NTgiLCBcCi0gICAgICAgICAgIjAuMDAxODI4LCAwLjAwMTg1MSwgMC4wMDE4NTQsIDAuMDAxODU1LCAwLjAwMTg1NiwgMC4wMDE4NTcsIDAuMDAxODU3IiwgXAotICAgICAgICAgICIwLjAwMTgwNCwgMC4wMDE4NDQsIDAuMDAxODQ5LCAwLjAwMTg1MiwgMC4wMDE4NTQsIDAuMDAxODU1LCAwLjAwMTg1NSIsIFwKLSAgICAgICAgICAiMC4wMDE3ODcsIDAuMDAxODM4LCAwLjAwMTg0NiwgMC4wMDE4NSwgMC4wMDE4NTEsIDAuMDAxODUzLCAwLjAwMTg1NCIsIFwKLSAgICAgICAgICAiMC4wMDE3NzMsIDAuMDAxODMxLCAwLjAwMTg0MSwgMC4wMDE4NDYsIDAuMDAxODQ5LCAwLjAwMTg1MSwgMC4wMDE4NTIiLCBcCi0gICAgICAgICAgIjAuMDAxNzU2LCAwLjAwMTgyMiwgMC4wMDE4MzQsIDAuMDAxODQyLCAwLjAwMTg0NiwgMC4wMDE4NDgsIDAuMDAxODUiLCBcCi0gICAgICAgICAgIjAuMDAxNzQ1LCAwLjAwMTgxNCwgMC4wMDE4MjksIDAuMDAxODM4LCAwLjAwMTg0MiwgMC4wMDE4NDUsIDAuMDAxODQ3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyODYyLCAwLjAwMjg2NiwgMC4wMDI4NjYsIDAuMDAyODY3LCAwLjAwMjg2OCwgMC4wMDI4NjcsIDAuMDAyODY2IiwgXAotICAgICAgICAgICIwLjAwMjg3LCAwLjAwMjg4NywgMC4wMDI4ODksIDAuMDAyODksIDAuMDAyODksIDAuMDAyODksIDAuMDAyODkiLCBcCi0gICAgICAgICAgIjAuMDAyODYxLCAwLjAwMjg4OSwgMC4wMDI4OTQsIDAuMDAyODk2LCAwLjAwMjg5NywgMC4wMDI4OTcsIDAuMDAyODk4IiwgXAotICAgICAgICAgICIwLjAwMjg0OSwgMC4wMDI4ODcsIDAuMDAyODkzLCAwLjAwMjg5NCwgMC4wMDI4OTYsIDAuMDAyODk4LCAwLjAwMjg5OCIsIFwKLSAgICAgICAgICAiMC4wMDI4NDIsIDAuMDAyODg2LCAwLjAwMjg5MywgMC4wMDI4OTYsIDAuMDAyODk4LCAwLjAwMjg5OSwgMC4wMDI5IiwgXAotICAgICAgICAgICIwLjAwMjgyNywgMC4wMDI4ODQsIDAuMDAyODksIDAuMDAyODk0LCAwLjAwMjg5NywgMC4wMDI4OTgsIDAuMDAyODk4IiwgXAotICAgICAgICAgICIwLjAwMjgxOCwgMC4wMDI4NzksIDAuMDAyODg0LCAwLjAwMjg5MywgMC4wMDI4OTYsIDAuMDAyODk3LCAwLjAwMjg5OCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTg1MiwgMC4wMDE4NTgsIDAuMDAxODU5LCAwLjAwMTg1OSwgMC4wMDE4NTksIDAuMDAxODU5LCAwLjAwMTg1OSIsIFwKLSAgICAgICAgICAiMC4wMDE4MjMsIDAuMDAxODUxLCAwLjAwMTg1NSwgMC4wMDE4NTYsIDAuMDAxODU3LCAwLjAwMTg1OCwgMC4wMDE4NTgiLCBcCi0gICAgICAgICAgIjAuMDAxNzk1LCAwLjAwMTg0MiwgMC4wMDE4NDksIDAuMDAxODUzLCAwLjAwMTg1NCwgMC4wMDE4NTcsIDAuMDAxODU2IiwgXAotICAgICAgICAgICIwLjAwMTc3NSwgMC4wMDE4MzUsIDAuMDAxODQ0LCAwLjAwMTg0OSwgMC4wMDE4NTIsIDAuMDAxODUzLCAwLjAwMTg1MyIsIFwKLSAgICAgICAgICAiMC4wMDE3NjEsIDAuMDAxODI4LCAwLjAwMTg0LCAwLjAwMTg0NiwgMC4wMDE4NDksIDAuMDAxODUxLCAwLjAwMTg1MyIsIFwKLSAgICAgICAgICAiMC4wMDE3NDQsIDAuMDAxODE4LCAwLjAwMTgzMiwgMC4wMDE4NDEsIDAuMDAxODQ1LCAwLjAwMTg0OCwgMC4wMDE4NSIsIFwKLSAgICAgICAgICAiMC4wMDE3MzMsIDAuMDAxODA5LCAwLjAwMTgyNiwgMC4wMDE4MzYsIDAuMDAxODQxLCAwLjAwMTg0NSwgMC4wMDE4NDciKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBOQU5ENFg2ICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKE5BTkQ0WDYpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC43NTg1NTI7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwNDE2MTAzOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwNDE2MTAzOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwNDEzODk0OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTg1LCAwLjAwMTg0NywgMC4wMDE4NDcsIDAuMDAxODQ3LCAwLjAwMTg0NiwgMC4wMDE4NDYsIDAuMDAxODQ2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxODUxLCAwLjAwMTg1MywgMC4wMDE4NTMsIDAuMDAxODU0LCAwLjAwMTg1NCwgMC4wMDE4NTQsIDAuMDAxODU0Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDM5Nzc2OTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDM5Nzc2OTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDM5NTg3MzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDE4NSwgMC4wMDE4NDgsIDAuMDAxODQ3LCAwLjAwMTg0NywgMC4wMDE4NDYsIDAuMDAxODQ2LCAwLjAwMTg0NiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTg1MSwgMC4wMDE4NTMsIDAuMDAxODUzLCAwLjAwMTg1NCwgMC4wMDE4NTMsIDAuMDAxODUzLCAwLjAwMTg1NCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQykgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDA0MDY0Mzg7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDA0MDY0Mzg7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDA0MDQ5NDU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxODUsIDAuMDAxODQ4LCAwLjAwMTg0OCwgMC4wMDE4NDcsIDAuMDAxODQ2LCAwLjAwMTg0NiwgMC4wMDE4NDYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDE4NTEsIDAuMDAxODUzLCAwLjAwMTg1MywgMC4wMDE4NTQsIDAuMDAxODUzLCAwLjAwMTg1MywgMC4wMDE4NTYiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEQpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwNDEwMzI4OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwNDA5OTgyOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwNDEwMzI4OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDQ3OSwgMC4wMDA0NzYsIDAuMDAwNDc1LCAwLjAwMDQ3NCwgMC4wMDA0NzQsIDAuMDAwNDc0LCAwLjAwMDQ3NCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjA5NywgMC4wMDIwOTgsIDAuMDAyMDk5LCAwLjAwMjA5OSwgMC4wMDIwOTksIDAuMDAyMTAxLCAwLjAwMjEwMSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjE3MzA3MTsKLSAgICBmdW5jdGlvbiA6ICIoISgoKEEgQikgQykgRCkpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzNDYwNiwgMC4xMjI4LCAwLjIwODg4LCAwLjI3MDEzNSwgMC4zNjc5NTMsIDAuNDUzNDU2LCAwLjU3NTUxOCIsIFwKLSAgICAgICAgICAiMC4wNDYzOTIsIDAuMTM0NTM1LCAwLjIyMDU3MywgMC4yODE4MTMsIDAuMzc5NjcyLCAwLjQ2NTE1NSwgMC41ODcyMDQiLCBcCi0gICAgICAgICAgIjAuMDYxMjksIDAuMTQ4NzUxLCAwLjIzNDc3NCwgMC4yOTYwMzMsIDAuMzkzODUxLCAwLjQ3OTMyMywgMC42MDE0MjEiLCBcCi0gICAgICAgICAgIjAuMDc2NDU3LCAwLjE2MzYyNywgMC4yNDk0MjMsIDAuMzEwNDk5LCAwLjQwNjY0NiwgMC40OTIxNjgsIDAuNjE0MjQyIiwgXAotICAgICAgICAgICIwLjA5MTA4MiwgMC4xNzgzMjUsIDAuMjY0MTAzLCAwLjMyNTE3NywgMC40MjI4ODYsIDAuNTA4Mjg2LCAwLjYzMDM2NiIsIFwKLSAgICAgICAgICAiMC4xMTE4MTMsIDAuMjAyNTMsIDAuMjg4Mzk1LCAwLjM0ODcwNywgMC40NDY5NTMsIDAuNTMyMzA2LCAwLjY1NDA5MiIsIFwKLSAgICAgICAgICAiMC4xMjgyNTIsIDAuMjIzMTk2LCAwLjMwOTE0NSwgMC4zNjk2NywgMC40NjcxMTgsIDAuNTUyMzI2LCAwLjY3NDA1NCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2MDU0MywgMC4yMzQ0NTEsIDAuNDA3OTYzLCAwLjUzMTk1NywgMC43MzAxMTMsIDAuOTAzNTY2LCAxLjE1MDg5IiwgXAotICAgICAgICAgICIwLjA2MDQ3NywgMC4yMzQ1MzgsIDAuNDA3OTEyLCAwLjUzMTg1NywgMC43MzAxNTQsIDAuOTAzNjExLCAxLjE1MDk2IiwgXAotICAgICAgICAgICIwLjA2NDI0OSwgMC4yMzQyNTksIDAuNDA3OTM1LCAwLjUzMTc3MiwgMC43MzAwMDQsIDAuOTAzMjQ4LCAxLjE1MTUzIiwgXAotICAgICAgICAgICIwLjA3MDQxMywgMC4yMzQ5NjgsIDAuNDA3OTM3LCAwLjUzMTgzMiwgMC43MzAwNzMsIDAuOTAzNTQ3LCAxLjE1MTU5IiwgXAotICAgICAgICAgICIwLjA3NzcwMSwgMC4yMzcxNTcsIDAuNDA3ODc1LCAwLjUzMTkyMiwgMC43MzAxNDEsIDAuOTAzMjExLCAxLjE1MTIiLCBcCi0gICAgICAgICAgIjAuMDkxODg2LCAwLjI0MzI0OCwgMC40MDk3MzIsIDAuNTMyMDU5LCAwLjcyOTg0MiwgMC45MDM1NDYsIDEuMTUxNDYiLCBcCi0gICAgICAgICAgIjAuMTA0MTAyLCAwLjI1MDU5MywgMC40MTM0NiwgMC41MzM5MjEsIDAuNzMwMDcxLCAwLjkwMzI4MiwgMS4xNTA5MyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE2NDQwNiwgMC41NjY5MTcsIDAuOTY5MjI0LCAxLjI1NjkzLCAxLjcxNTksIDIuMTE5MzUsIDIuNjkzMTEiLCBcCi0gICAgICAgICAgIjAuMTc1MjQ2LCAwLjU3ODY5MSwgMC45ODE1NjUsIDEuMjY4NDMsIDEuNzI4OTMsIDIuMTMwNDcsIDIuNzA0NDUiLCBcCi0gICAgICAgICAgIjAuMTg3OTUsIDAuNTkxODk4LCAwLjk5NDk5MywgMS4yODE5LCAxLjc0MjUsIDIuMTQ0MTIsIDIuNzE4NyIsIFwKLSAgICAgICAgICAiMC4xOTk5OTcsIDAuNjA0MjQxLCAxLjAwNjY3LCAxLjI5NDk0LCAxLjc1NDE4LCAyLjE1NzUyLCAyLjczMTI5IiwgXAotICAgICAgICAgICIwLjIxMTc1MywgMC42MTU5MzgsIDEuMDE4OTcsIDEuMzA2NTYsIDEuNzY2NDIsIDIuMTY5MjUsIDIuNzQzMTQiLCBcCi0gICAgICAgICAgIjAuMjI5Njg2LCAwLjYzMzk1MSwgMS4wMzcyNywgMS4zMjQzOSwgMS43ODQ0NSwgMi4xODcxMSwgMi43NjE0NiIsIFwKLSAgICAgICAgICAiMC4yNDQ5MTIsIDAuNjQ5MjczLCAxLjA1MTkzLCAxLjM0MDE4LCAxLjc5OTY3LCAyLjIwMjM3LCAyLjc3NjciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMjY4NzMsIDAuOTc3OTg1LCAxLjczMDUzLCAyLjI3NzA2LCAzLjEzNzIsIDMuODk1NywgNC45NjE3NyIsIFwKLSAgICAgICAgICAiMC4yMjYyODQsIDAuOTc4NTU3LCAxLjcyOTQ1LCAyLjI3NjY0LCAzLjE1MDc2LCAzLjg5NDE5LCA0Ljk2MDU2IiwgXAotICAgICAgICAgICIwLjIyNjg3OCwgMC45Nzc5MDUsIDEuNzI4ODksIDIuMjc2NjIsIDMuMTUwODQsIDMuODk0NDUsIDQuOTQ2NiIsIFwKLSAgICAgICAgICAiMC4yMjY4ODIsIDAuOTgyMjEyLCAxLjczNTk1LCAyLjI2NDk3LCAzLjEzODkyLCAzLjg3NjU5LCA0Ljk2MTgzIiwgXAotICAgICAgICAgICIwLjIyNjg5NywgMC45ODM1ODgsIDEuNzM3NDIsIDIuMjc2ODcsIDMuMTUwMjQsIDMuODk1NDMsIDQuOTYxNjIiLCBcCi0gICAgICAgICAgIjAuMjI3MzU1LCAwLjk3ODAwMiwgMS43Mzc2NSwgMi4yNjY0MywgMy4xMzkwMywgMy44NzY0MiwgNC45NjE2OSIsIFwKLSAgICAgICAgICAiMC4yMjg3ODksIDAuOTg1NDk4LCAxLjczNTg5LCAyLjI3NzA5LCAzLjEyNDk2LCAzLjg5NDkzLCA0Ljk0ODM3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDMzNzQ2LCAwLjEyMDg3NywgMC4yMDY4NzcsIDAuMjY4MTU2LCAwLjM2NjE5OSwgMC40NTE5MjIsIDAuNTc0MzcxIiwgXAotICAgICAgICAgICIwLjA0NTUyOCwgMC4xMzI2NDMsIDAuMjE4NjYyLCAwLjI3OTk3NywgMC4zNzc5NzYsIDAuNDYzNzM0LCAwLjU4NjIwMyIsIFwKLSAgICAgICAgICAiMC4wNjAyNjksIDAuMTQ3MDA0LCAwLjIzMjMwNiwgMC4yOTM2MSwgMC4zOTE2NDgsIDAuNDc3MzQ5LCAwLjU5OTc5OSIsIFwKLSAgICAgICAgICAiMC4wNzUxOTMsIDAuMTYxNzM4LCAwLjI0NzUwOCwgMC4zMDg3MDIsIDAuNDA2NjY0LCAwLjQ5MDE5MSwgMC42MTI2MjgiLCBcCi0gICAgICAgICAgIjAuMDg5MzksIDAuMTc2NDAyLCAwLjI2MjExNCwgMC4zMjMyODQsIDAuNDIxMjAyLCAwLjUwNjg4NiwgMC42MjkyNjciLCBcCi0gICAgICAgICAgIjAuMTA5NjY3LCAwLjIwMDUxLCAwLjI4NjA3NSwgMC4zNDcxMTgsIDAuNDQ0NzI5LCAwLjUyODgxNCwgMC42NTEyIiwgXAotICAgICAgICAgICIwLjEyNTMwMiwgMC4yMjExMTgsIDAuMzA2NDk0LCAwLjM2NzUzOSwgMC40NjUyNjMsIDAuNTUwNzA4LCAwLjY3MjkxMiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1NzU4NywgMC4yMzE3NzMsIDAuNDA1ODgsIDAuNTMwMjMyLCAwLjcyOTE0OCwgMC45MDM1NTIsIDEuMTUyMDYiLCBcCi0gICAgICAgICAgIjAuMDU3Njc4LCAwLjIzMTc3NCwgMC40MDU5NSwgMC41MzAyNTMsIDAuNzI4OTU2LCAwLjkwMzcxMSwgMS4xNTE4NSIsIFwKLSAgICAgICAgICAiMC4wNjE2ODQsIDAuMjMxNzU1LCAwLjQwNTg1NSwgMC41MzAzNTYsIDAuNzI5NTAxLCAwLjkwMzY4MiwgMS4xNTIwNyIsIFwKLSAgICAgICAgICAiMC4wNjc4NTIsIDAuMjMyMzE1LCAwLjQwNTgyLCAwLjUzMDE4NSwgMC43MjkyMjIsIDAuOTAzMDM4LCAxLjE1MTQ4IiwgXAotICAgICAgICAgICIwLjA3NTgyNCwgMC4yMzQ4NDQsIDAuNDA1ODcsIDAuNTMwMjEzLCAwLjcyOTEzNSwgMC45MDMzMTcsIDEuMTUxNzgiLCBcCi0gICAgICAgICAgIjAuMDg5Njk3LCAwLjI0MTE4LCAwLjQwNzk0NiwgMC41MzA0OTgsIDAuNzI4ODk5LCAwLjkwMzE2MywgMS4xNTIwMiIsIFwKLSAgICAgICAgICAiMC4xMDMwOTQsIDAuMjQ4NjU5LCAwLjQxMTk5NywgMC41MzI1NjQsIDAuNzI5MTYxLCAwLjkwMzY3LCAxLjE1MTc1Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTU3NzgsIDAuNTYwNDQ1LCAwLjk2MjI0NywgMS4yNDk5MiwgMS43MDg3LCAyLjExMDgzLCAyLjY4NDc4IiwgXAotICAgICAgICAgICIwLjE2NzU3OCwgMC41NzA5NCwgMC45NzM0NDQsIDEuMjYwNzksIDEuNzIwNzcsIDIuMTIyODcsIDIuNjk2ODQiLCBcCi0gICAgICAgICAgIjAuMTc5NjkxLCAwLjU4MzY3NywgMC45ODY2NzUsIDEuMjczNjEsIDEuNzM0MDcsIDIuMTM1NjcsIDIuNzEwMjEiLCBcCi0gICAgICAgICAgIjAuMTkxNTA4LCAwLjU5NTU3MSwgMC45OTgyNTMsIDEuMjg2MDMsIDEuNzQ1NiwgMi4xNDgxOCwgMi43MjIyNyIsIFwKLSAgICAgICAgICAiMC4yMDMwOTYsIDAuNjA3MzM4LCAxLjAxMDM4LCAxLjI5NzgyLCAxLjc1ODA2LCAyLjE1OTg3LCAyLjczNDQ4IiwgXAotICAgICAgICAgICIwLjIyMTMwNywgMC42MjU3MywgMS4wMjg1NSwgMS4zMTU3NywgMS43NzYzLCAyLjE3Nzg3LCAyLjc1MzAzIiwgXAotICAgICAgICAgICIwLjIzNjk1OSwgMC42NDE0MDcsIDEuMDQ0NDYsIDEuMzMxNjMsIDEuNzkxNzcsIDIuMTk0NDcsIDIuNzY4OTMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMjYzLCAwLjk3NzYwMywgMS43Mjc0NCwgMi4yNzY1OCwgMy4xMjQ5MywgMy44ODkzMiwgNC45NDE0NCIsIFwKLSAgICAgICAgICAiMC4yMjY4NSwgMC45NzgwNTksIDEuNzMwNzIsIDIuMjc2NywgMy4xMjQ4NSwgMy44OTQ1LCA0Ljk2MTI0IiwgXAotICAgICAgICAgICIwLjIyNjg1NywgMC45Nzg1MzQsIDEuNzQ0OTEsIDIuMjc2MzgsIDMuMTUwNjUsIDMuODkzODksIDQuOTYxNjUiLCBcCi0gICAgICAgICAgIjAuMjI2OTQ5LCAwLjk4MTQ5OCwgMS43MjkzNywgMi4yNzY5LCAzLjEyNzU5LCAzLjg5NDg1LCA0Ljk1MTg5IiwgXAotICAgICAgICAgICIwLjIyNjg5NCwgMC45ODQzMSwgMS43Mjg5OCwgMi4yNzY1NywgMy4xNTA0OSwgMy44OTM2LCA0Ljk1NDEiLCBcCi0gICAgICAgICAgIjAuMjI3ODA4LCAwLjk4NTMwNywgMS43MzA1OCwgMi4yNzQ1NSwgMy4xNTAzLCAzLjg5MTQ4LCA0Ljk0OTMyIiwgXAotICAgICAgICAgICIwLjIzMDE5LCAwLjk4NTM4MiwgMS43Mjk0NSwgMi4yNzQ1NCwgMy4xMzg3NywgMy44NzU1NSwgNC45NjE3MiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzMTgxLCAwLjExNzk4OSwgMC4yMDM3OSwgMC4yNjUwMiwgMC4zNjI5NTYsIDAuNDQ4NjYxLCAwLjU3MTA2NiIsIFwKLSAgICAgICAgICAiMC4wNDM2MzYsIDAuMTI5ODQ4LCAwLjIxNTY1NSwgMC4yNzY5MDIsIDAuMzc0ODcsIDAuNDYwNDksIDAuNTgyODI1IiwgXAotICAgICAgICAgICIwLjA1ODM3NCwgMC4xNDQxNzYsIDAuMjI5OTM3LCAwLjI5MTE3LCAwLjM4OTA5NCwgMC40NzQ3OTYsIDAuNTk3MTA5IiwgXAotICAgICAgICAgICIwLjA3MzI3NCwgMC4xNTkwNTksIDAuMjQ0NTczLCAwLjMwNTY4MywgMC40MDE3MzIsIDAuNDg3NDQ5LCAwLjYwOTcxMiIsIFwKLSAgICAgICAgICAiMC4wODY4NjcsIDAuMTczNzI5LCAwLjI1OTIyOSwgMC4zMjAzLCAwLjQxODE1NywgMC41MDM3NTcsIDAuNjI2MTQ0IiwgXAotICAgICAgICAgICIwLjEwNjIzLCAwLjE5Nzg1MSwgMC4yODI1NTcsIDAuMzQzNywgMC40NDE0OTUsIDAuNTI3MTIsIDAuNjQ5NDA5IiwgXAotICAgICAgICAgICIwLjEyMTMsIDAuMjE4NTA3LCAwLjMwMzY5OSwgMC4zNjQ2NzcsIDAuNDYyMzAzLCAwLjU0NzcwOCwgMC42Njk4MjciKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTM5NTYsIDAuMjI4MDk4LCAwLjQwMjA4NywgMC41MjYzNDQsIDAuNzI1MTE1LCAwLjg5OTEwNSwgMS4xNDgxNCIsIFwKLSAgICAgICAgICAiMC4wNTQ0NjYsIDAuMjI4MDgsIDAuNDAyMDc0LCAwLjUyNjY0NywgMC43MjUzMDYsIDAuODk4ODAxLCAxLjE0NzIyIiwgXAotICAgICAgICAgICIwLjA1ODkyNCwgMC4yMjgwNjcsIDAuNDAyMTczLCAwLjUyNjM2NiwgMC43MjQ5MDUsIDAuODk5MDA3LCAxLjE0NzQxIiwgXAotICAgICAgICAgICIwLjA2NTY0OCwgMC4yMjg4NjIsIDAuNDAyMjc0LCAwLjUyNjMxNiwgMC43MjUxMjIsIDAuODk5MDk2LCAxLjE0NzI4IiwgXAotICAgICAgICAgICIwLjA3Mzk0NywgMC4yMzE0NTQsIDAuNDAyMTE1LCAwLjUyNjQsIDAuNzI1MjY2LCAwLjg5OTAwMywgMS4xNDc0NSIsIFwKLSAgICAgICAgICAiMC4wODg0ODIsIDAuMjM4MDA4LCAwLjQwNDY1MywgMC41MjY2NDYsIDAuNzI1MDcxLCAwLjg5ODc5OCwgMS4xNDczNiIsIFwKLSAgICAgICAgICAiMC4xMDE5MzIsIDAuMjQ1Nzc2LCAwLjQwODY4MSwgMC41Mjg3MDksIDAuNzI1MzE2LCAwLjg5ODgwOCwgMS4xNDcxOCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE0NDQxMiwgMC41NDcyNjcsIDAuOTQ5NjEyLCAxLjIzNjMzLCAxLjY5NTgsIDIuMDk4NSwgMi42NzE3OSIsIFwKLSAgICAgICAgICAiMC4xNTM2MDEsIDAuNTU2OTksIDAuOTU5NjUzLCAxLjI0NjkzLCAxLjcwNzMzLCAyLjEwODgyLCAyLjY4MzY4IiwgXAotICAgICAgICAgICIwLjE2NTI2OCwgMC41NjkxMzQsIDAuOTcxNTUyLCAxLjI1OTAzLCAxLjcxODM5LCAyLjEyMDgxLCAyLjY5NTM5IiwgXAotICAgICAgICAgICIwLjE3Njg1OCwgMC41ODA5MzcsIDAuOTgzNjc1LCAxLjI3MTMxLCAxLjczMTE1LCAyLjEzMzQxLCAyLjcwNzkzIiwgXAotICAgICAgICAgICIwLjE4ODgxMiwgMC41OTMwODIsIDAuOTk1OTQxLCAxLjI4MzQzLCAxLjc0MjkzLCAyLjE0NjM2LCAyLjcxOTYyIiwgXAotICAgICAgICAgICIwLjIwNzk1NCwgMC42MTI2MSwgMS4wMTU2MSwgMS4zMDI4LCAxLjc2MzE0LCAyLjE2NDc3LCAyLjczOTkiLCBcCi0gICAgICAgICAgIjAuMjI0OTksIDAuNjI5MjI1LCAxLjAzMjQ4LCAxLjMyMDQ5LCAxLjc3OTczLCAyLjE4MjYzLCAyLjc1NjcyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjI2ODM0LCAwLjk4NTQ5MywgMS43Mzc2OSwgMi4yNzk1NSwgMy4xMzY2NywgMy44OTM4OCwgNC45NjA0NCIsIFwKLSAgICAgICAgICAiMC4yMjY4NCwgMC45NzgwNTgsIDEuNzM3NDksIDIuMjc2ODEsIDMuMTUwNzksIDMuODkzOSwgNC45NDY3OSIsIFwKLSAgICAgICAgICAiMC4yMjY3OSwgMC45ODM1OTIsIDEuNzM1ODMsIDIuMjc1NjIsIDMuMTM1NzEsIDMuODkxOTcsIDQuOTUwOTQiLCBcCi0gICAgICAgICAgIjAuMjI2OTE3LCAwLjk4MTUxMywgMS43MjkzMywgMi4yNzY3NSwgMy4xMjM5MiwgMy44OTQyNCwgNC45NjE3IiwgXAotICAgICAgICAgICIwLjIyNjc4NCwgMC45NzgwMSwgMS43MzY4NywgMi4yNjgwMywgMy4xMzY5MiwgMy44NzU1MSwgNC45NjEwNiIsIFwKLSAgICAgICAgICAiMC4yMjk2MzksIDAuOTg1NDYsIDEuNzI5MjksIDIuMjY2MDMsIDMuMTUwMjcsIDMuODkxNjEsIDQuOTQ5MzIiLCBcCi0gICAgICAgICAgIjAuMjM0ODIzLCAwLjk3NzgyOSwgMS43Mzc0OCwgMi4yNzcyNywgMy4xMjU0MiwgMy44OTUwNiwgNC45NTI5NiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJEIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyODgxNywgMC4xMTQzMzIsIDAuMTk5ODA4LCAwLjI2MDg5LCAwLjM1ODYxMSwgMC40NDQwMjMsIDAuNTY2MTkyIiwgXAotICAgICAgICAgICIwLjA0MDY4MSwgMC4xMjYzNDIsIDAuMjExODEzLCAwLjI3MjkxMSwgMC4zNzA2OSwgMC40NTYwODEsIDAuNTc4MTY0IiwgXAotICAgICAgICAgICIwLjA1NTQxOSwgMC4xNDA2MTMsIDAuMjI2MTQ2LCAwLjI4NzE3MSwgMC4zODQ4NDYsIDAuNDcwMzE5LCAwLjU5MjQ5OCIsIFwKLSAgICAgICAgICAiMC4wNzAwNjYsIDAuMTU1NTI5LCAwLjI0MDcyMiwgMC4zMDE2NjcsIDAuMzk3OTUzLCAwLjQ4MzQ1NiwgMC42MDU0ODgiLCBcCi0gICAgICAgICAgIjAuMDgyOTg4LCAwLjE3MDIyOSwgMC4yNTU0NTYsIDAuMzE2MzQyLCAwLjQxNDA0LCAwLjQ5OTM0OSwgMC42MjE1MiIsIFwKLSAgICAgICAgICAiMC4xMDEwNTUsIDAuMTk0NDUyLCAwLjI3OTU5NiwgMC4zNDA3MDIsIDAuNDM4NDE5LCAwLjUyMzcxMywgMC42NDYwNDUiLCBcCi0gICAgICAgICAgIjAuMTE1NTA3LCAwLjIxNTA4NywgMC4zMDA0NTksIDAuMzYwODkxLCAwLjQ1ODE1NSwgMC41NDMyNzUsIDAuNjYyOTU2Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDUwMjksIDAuMjI0NDQyLCAwLjM5ODU5NSwgMC41MjIxMzMsIDAuNzE5ODg2LCAwLjg5NTg1NywgMS4xNDI4OCIsIFwKLSAgICAgICAgICAiMC4wNTExNTUsIDAuMjIzOTUyLCAwLjM5ODY0NSwgMC41MjIwMzksIDAuNzIwMTk0LCAwLjg5NTc4OSwgMS4xNDE4IiwgXAotICAgICAgICAgICIwLjA1NjIyNCwgMC4yMjQzMjEsIDAuMzk3NjQxLCAwLjUyMTQ1NiwgMC43MjAwNzksIDAuODk1OSwgMS4xNDQ3NSIsIFwKLSAgICAgICAgICAiMC4wNjM0OTMsIDAuMjI1NDU4LCAwLjM5NzgzMywgMC41MjE2MTQsIDAuNzIwMjI2LCAwLjg5Mzg5NSwgMS4xNDQ2MSIsIFwKLSAgICAgICAgICAiMC4wNzI1MjQsIDAuMjI3OTEsIDAuMzk3Njc0LCAwLjUyMTYxMiwgMC43MjAyMTcsIDAuODkzNjAyLCAxLjE0MjA1IiwgXAotICAgICAgICAgICIwLjA4ODAzOCwgMC4yMzQ1NTQsIDAuNDAwOTgxLCAwLjUyMjIwNiwgMC43MjAzMjIsIDAuODkzNzE5LCAxLjE0MjAyIiwgXAotICAgICAgICAgICIwLjEwMTEyMywgMC4yNDI1NSwgMC40MDUwOTQsIDAuNTI1NjM4LCAwLjcyMTg0MiwgMC44OTYxNjksIDEuMTQxNjIiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMjMzNzksIDAuNTI2MTMyLCAwLjkyODQxOSwgMS4yMTU3MiwgMS42NzUzNSwgMi4wNzc4NCwgMi42NTEyOCIsIFwKLSAgICAgICAgICAiMC4xMzE1MDUsIDAuNTM1MTI4LCAwLjkzNzQ1OCwgMS4yMjQ3MSwgMS42ODQzMywgMi4wODY1LCAyLjY2MDg5IiwgXAotICAgICAgICAgICIwLjE0MjE5NCwgMC41NDY1OTUsIDAuOTQ5MDcxLCAxLjIzNjYsIDEuNjk2NSwgMi4wOTg2NywgMi42NzMxMyIsIFwKLSAgICAgICAgICAiMC4xNTM2MzYsIDAuNTU4MDgyLCAwLjk2MTAyMSwgMS4yNDgxOCwgMS43MDc4OCwgMi4xMTAzLCAyLjY4NDc3IiwgXAotICAgICAgICAgICIwLjE2NTAxNywgMC41Njk0MjksIDAuOTcyNDYzLCAxLjI1OTkyLCAxLjcxOTYxLCAyLjEyMTYxLCAyLjY5Njc4IiwgXAotICAgICAgICAgICIwLjE4Mzk2MiwgMC41ODc0MDMsIDAuOTkwMjQyLCAxLjI3Nzk5LCAxLjczNzcyLCAyLjEzOTgsIDIuNzE0ODQiLCBcCi0gICAgICAgICAgIjAuMjAxMDgyLCAwLjYwNDI3OCwgMS4wMDcxOCwgMS4yOTUxMSwgMS43NTU0NSwgMi4xNTcwMywgMi43MzI0MyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIyNjgxNywgMC45Nzc2MDksIDEuNzM3MzksIDIuMjY4MDcsIDMuMTM5MTMsIDMuODk1LCA0Ljk2MDkyIiwgXAotICAgICAgICAgICIwLjIyNjQ4OCwgMC45ODQ2OTQsIDEuNzI5NjIsIDIuMjc0OTEsIDMuMTQzNTIsIDMuODc3MDUsIDQuOTUyNjIiLCBcCi0gICAgICAgICAgIjAuMjI1MTE0LCAwLjk4MTMxMywgMS43MzU0MywgMi4yNzUzMiwgMy4xMzg1NiwgMy44NzQyNCwgNC45NjEzNSIsIFwKLSAgICAgICAgICAiMC4yMjU0NDUsIDAuOTc3NzU5LCAxLjczNzE3LCAyLjI2NTI2LCAzLjEzNjgzLCAzLjg5MjU2LCA0Ljk1OTczIiwgXAotICAgICAgICAgICIwLjIyODAxNSwgMC45ODE2NiwgMS43MzcyNywgMi4yNzYzMywgMy4xMjQ3NywgMy44NzY5NCwgNC45NTIzMiIsIFwKLSAgICAgICAgICAiMC4yMzQwOTksIDAuOTgxNTI1LCAxLjczNTg3LCAyLjI2NjA0LCAzLjEyNTQ5LCAzLjg5MTI2LCA0Ljk1MTg3IiwgXAotICAgICAgICAgICIwLjI0MTc2NiwgMC45ODQ5MjMsIDEuNzI5NjYsIDIuMjc2NjEsIDMuMTUwNTIsIDMuODkxNzIsIDQuOTYyMDIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxNTc5MywgMC4wMTU3ODksIDAuMDE1NzkxLCAwLjAxNTc5LCAwLjAxNTc4NywgMC4wMTU3ODIsIDAuMDE1Nzg0IiwgXAotICAgICAgICAgICIwLjAxNTcwNSwgMC4wMTU3MTgsIDAuMDE1NzE0LCAwLjAxNTcxOCwgMC4wMTU3MTYsIDAuMDE1NzEsIDAuMDE1NzA3IiwgXAotICAgICAgICAgICIwLjAxNTY1OCwgMC4wMTU2ODMsIDAuMDE1Njg4LCAwLjAxNTY5LCAwLjAxNTY4NywgMC4wMTU2ODQsIDAuMDE1Njg2IiwgXAotICAgICAgICAgICIwLjAxNTYzMiwgMC4wMTU2NjksIDAuMDE1Njc1LCAwLjAxNTY3MSwgMC4wMTU2NzIsIDAuMDE1NjcsIDAuMDE1NjY4IiwgXAotICAgICAgICAgICIwLjAxNTYwNywgMC4wMTU2NTQsIDAuMDE1NjYyLCAwLjAxNTY2NCwgMC4wMTU2NjksIDAuMDE1NjY1LCAwLjAxNTY2NyIsIFwKLSAgICAgICAgICAiMC4wMTU1OTEsIDAuMDE1NjQzLCAwLjAxNTY1OSwgMC4wMTU2MjcsIDAuMDE1NjYxLCAwLjAxNTY2MSwgMC4wMTU2NjEiLCBcCi0gICAgICAgICAgIjAuMDE1NTYyLCAwLjAxNTYzNCwgMC4wMTU2NDksIDAuMDE1NjUzLCAwLjAxNTY1NCwgMC4wMTU2NTMsIDAuMDE1NjUzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQ1OTYsIDAuMDA0NjI1LCAwLjAwNDYyOSwgMC4wMDQ2MywgMC4wMDQ2MzEsIDAuMDA0NjMyLCAwLjAwNDYzMiIsIFwKLSAgICAgICAgICAiMC4wMDQ0NzYsIDAuMDA0NTg5LCAwLjAwNDYwOCwgMC4wMDQ2MTQsIDAuMDA0NjIsIDAuMDA0NjIyLCAwLjAwNDYyNSIsIFwKLSAgICAgICAgICAiMC4wMDQzNzgsIDAuMDA0NTQ4LCAwLjAwNDU4MywgMC4wMDQ1OTQsIDAuMDA0NjA1LCAwLjAwNDYxMSwgMC4wMDQ2MTkiLCBcCi0gICAgICAgICAgIjAuMDA0MzE1LCAwLjAwNDUxMSwgMC4wMDQ1NTksIDAuMDA0NTc1LCAwLjAwNDU5MSwgMC4wMDQ1OTgsIDAuMDA0NjA2IiwgXAotICAgICAgICAgICIwLjAwNDI3NCwgMC4wMDQ0NzksIDAuMDA0NTM3LCAwLjAwNDU1OCwgMC4wMDQ1NzcsIDAuMDA0NTg4LCAwLjAwNDU5NyIsIFwKLSAgICAgICAgICAiMC4wMDQyMjksIDAuMDA0NDM1LCAwLjAwNDUwNCwgMC4wMDQ1MzEsIDAuMDA0NTU2LCAwLjAwNDU3LCAwLjAwNDU4MyIsIFwKLSAgICAgICAgICAiMC4wMDQyMDQsIDAuMDA0NDA0LCAwLjAwNDQ4LCAwLjAwNDUxLCAwLjAwNDUzOSwgMC4wMDQ1NTYsIDAuMDA0NTcxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTM0MjgsIDAuMDEzNDI0LCAwLjAxMzQyNywgMC4wMTM0MjYsIDAuMDEzNDIzLCAwLjAxMzQyMSwgMC4wMTM0MiIsIFwKLSAgICAgICAgICAiMC4wMTMzNjksIDAuMDEzMzkyLCAwLjAxMzM5MSwgMC4wMTMzOTEsIDAuMDEzMzkyLCAwLjAxMzM4OSwgMC4wMTMzOTEiLCBcCi0gICAgICAgICAgIjAuMDEzMzE3LCAwLjAxMzM2OCwgMC4wMTMzNzMsIDAuMDEzMzc1LCAwLjAxMzM3NiwgMC4wMTMzNzQsIDAuMDEzMzc0IiwgXAotICAgICAgICAgICIwLjAxMzI2OSwgMC4wMTMzNSwgMC4wMTMzNTksIDAuMDEzMzY1LCAwLjAxMzM2OCwgMC4wMTMzNjcsIDAuMDEzMzY3IiwgXAotICAgICAgICAgICIwLjAxMzI1NiwgMC4wMTMzMzcsIDAuMDEzMzUyLCAwLjAxMzM1NywgMC4wMTMzNjMsIDAuMDEzMzY1LCAwLjAxMzM2NSIsIFwKLSAgICAgICAgICAiMC4wMTMyMTcsIDAuMDEzMzE5LCAwLjAxMzM0MSwgMC4wMTMzNDksIDAuMDEzMzUyLCAwLjAxMzM1MywgMC4wMTMzNTkiLCBcCi0gICAgICAgICAgIjAuMDEzMjA5LCAwLjAxMzMwNywgMC4wMTMzMzUsIDAuMDEzMzMzLCAwLjAxMzM0NywgMC4wMTMzNSwgMC4wMTMzNTMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDU5NiwgMC4wMDQ2MjYsIDAuMDA0NjMsIDAuMDA0NjMxLCAwLjAwNDYzMiwgMC4wMDQ2MzIsIDAuMDA0NjMzIiwgXAotICAgICAgICAgICIwLjAwNDQ3NywgMC4wMDQ1OSwgMC4wMDQ2MDksIDAuMDA0NjE1LCAwLjAwNDYyMSwgMC4wMDQ2MjMsIDAuMDA0NjI2IiwgXAotICAgICAgICAgICIwLjAwNDM3NywgMC4wMDQ1NDgsIDAuMDA0NTgzLCAwLjAwNDU5NSwgMC4wMDQ2MDYsIDAuMDA0NjExLCAwLjAwNDYxNiIsIFwKLSAgICAgICAgICAiMC4wMDQzMTYsIDAuMDA0NTEyLCAwLjAwNDU1OSwgMC4wMDQ1NzYsIDAuMDA0NTkxLCAwLjAwNDYsIDAuMDA0NjA3IiwgXAotICAgICAgICAgICIwLjAwNDI3NCwgMC4wMDQ0NzksIDAuMDA0NTM3LCAwLjAwNDU1OCwgMC4wMDQ1NzgsIDAuMDA0NTg4LCAwLjAwNDU5OCIsIFwKLSAgICAgICAgICAiMC4wMDQyMzMsIDAuMDA0NDM1LCAwLjAwNDUwNSwgMC4wMDQ1MzEsIDAuMDA0NTU3LCAwLjAwNDU3MSwgMC4wMDQ1ODQiLCBcCi0gICAgICAgICAgIjAuMDA0MjA2LCAwLjAwNDQwNSwgMC4wMDQ0ODEsIDAuMDA0NTExLCAwLjAwNDU0LCAwLjAwNDU1NywgMC4wMDQ1NzIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMDk5MiwgMC4wMTA5OTYsIDAuMDEwOTk3LCAwLjAxMDk5NiwgMC4wMTA5OTYsIDAuMDEwOTk2LCAwLjAxMDk5NiIsIFwKLSAgICAgICAgICAiMC4wMTA5NzEsIDAuMDExMDE1LCAwLjAxMTAyMSwgMC4wMTEwMjMsIDAuMDExMDI1LCAwLjAxMTAyNCwgMC4wMTEwMjMiLCBcCi0gICAgICAgICAgIjAuMDEwOTIsIDAuMDExMDA4LCAwLjAxMTAyMywgMC4wMTEwMjYsIDAuMDExMDMsIDAuMDExMDMxLCAwLjAxMTAzMyIsIFwKLSAgICAgICAgICAiMC4wMTA4OCwgMC4wMTA5OTcsIDAuMDExMDE3LCAwLjAxMTAyMiwgMC4wMTEwMjksIDAuMDExMDMyLCAwLjAxMTAzNSIsIFwKLSAgICAgICAgICAiMC4wMTA4NTMsIDAuMDEwOTg2LCAwLjAxMTAxLCAwLjAxMTAxOSwgMC4wMTEwMjUsIDAuMDExMDMsIDAuMDExMDMyIiwgXAotICAgICAgICAgICIwLjAxMDgsIDAuMDEwOTYxLCAwLjAxMDk5NSwgMC4wMTEwMDYsIDAuMDExMDE3LCAwLjAxMTAyMSwgMC4wMTEwMjciLCBcCi0gICAgICAgICAgIjAuMDEwNzksIDAuMDEwOTUsIDAuMDEwOTg4LCAwLjAxMTAwMSwgMC4wMTEwMTYsIDAuMDExMDIsIDAuMDExMDI0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQ1OTcsIDAuMDA0NjI3LCAwLjAwNDYzMSwgMC4wMDQ2MzIsIDAuMDA0NjMzLCAwLjAwNDYzNCwgMC4wMDQ2MzQiLCBcCi0gICAgICAgICAgIjAuMDA0NDc3LCAwLjAwNDU5MSwgMC4wMDQ2MSwgMC4wMDQ2MTcsIDAuMDA0NjIyLCAwLjAwNDYyNSwgMC4wMDQ2MyIsIFwKLSAgICAgICAgICAiMC4wMDQzNzgsIDAuMDA0NTQ5LCAwLjAwNDU4NCwgMC4wMDQ1OTYsIDAuMDA0NjA3LCAwLjAwNDYxMywgMC4wMDQ2MTciLCBcCi0gICAgICAgICAgIjAuMDA0MzE1LCAwLjAwNDUxMiwgMC4wMDQ1NiwgMC4wMDQ1NzcsIDAuMDA0NTkyLCAwLjAwNDYwMSwgMC4wMDQ2MDgiLCBcCi0gICAgICAgICAgIjAuMDA0Mjc0LCAwLjAwNDQ4LCAwLjAwNDUzOCwgMC4wMDQ1NTksIDAuMDA0NTc5LCAwLjAwNDU4OSwgMC4wMDQ1OTkiLCBcCi0gICAgICAgICAgIjAuMDA0MjMsIDAuMDA0NDM2LCAwLjAwNDUwNiwgMC4wMDQ1MzIsIDAuMDA0NTU4LCAwLjAwNDU3MiwgMC4wMDQ1ODUiLCBcCi0gICAgICAgICAgIjAuMDA0MjA1LCAwLjAwNDQwNSwgMC4wMDQ0ODIsIDAuMDA0NTEyLCAwLjAwNDU0MSwgMC4wMDQ1NTgsIDAuMDA0NTczIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDgzODcsIDAuMDA4NDEyLCAwLjAwODQxNSwgMC4wMDg0MTUsIDAuMDA4NDE3LCAwLjAwODQxNywgMC4wMDg0MTciLCBcCi0gICAgICAgICAgIjAuMDA4MzY5LCAwLjAwODQ2LCAwLjAwODQ3NSwgMC4wMDg0NzcsIDAuMDA4NDg0LCAwLjAwODQ4OSwgMC4wMDg0ODYiLCBcCi0gICAgICAgICAgIjAuMDA4MzEyLCAwLjAwODQ2LCAwLjAwODQ4NiwgMC4wMDg0OTEsIDAuMDA4NDk5LCAwLjAwODUwMSwgMC4wMDg1MDQiLCBcCi0gICAgICAgICAgIjAuMDA4MjY1LCAwLjAwODQ0OSwgMC4wMDg0OCwgMC4wMDg0ODksIDAuMDA4NTAxLCAwLjAwODUwNiwgMC4wMDg1MTEiLCBcCi0gICAgICAgICAgIjAuMDA4MjM0LCAwLjAwODQzMSwgMC4wMDg0NzMsIDAuMDA4NDg1LCAwLjAwODQ5OCwgMC4wMDg1MDQsIDAuMDA4NTA5IiwgXAotICAgICAgICAgICIwLjAwODE3OSwgMC4wMDg0MDgsIDAuMDA4NDYzLCAwLjAwODQ3NywgMC4wMDg0OSwgMC4wMDg0OTgsIDAuMDA4NTA2IiwgXAotICAgICAgICAgICIwLjAwODE2LCAwLjAwODM5MSwgMC4wMDg0NDIsIDAuMDA4NDY1LCAwLjAwODQ4MywgMC4wMDg0ODgsIDAuMDA4NTAyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQ1ODksIDAuMDA0NjI1LCAwLjAwNDYyOSwgMC4wMDQ2MzEsIDAuMDA0NjMyLCAwLjAwNDYzMywgMC4wMDQ2MzMiLCBcCi0gICAgICAgICAgIjAuMDA0NDQzLCAwLjAwNDU4MSwgMC4wMDQ2MDQsIDAuMDA0NjEyLCAwLjAwNDYxOSwgMC4wMDQ2MjIsIDAuMDA0NjI1IiwgXAotICAgICAgICAgICIwLjAwNDMyNCwgMC4wMDQ1MzEsIDAuMDA0NTczLCAwLjAwNDU4OCwgMC4wMDQ2MDEsIDAuMDA0NjA3LCAwLjAwNDYxMyIsIFwKLSAgICAgICAgICAiMC4wMDQyNjIsIDAuMDA0NDg5LCAwLjAwNDU0NiwgMC4wMDQ1NjUsIDAuMDA0NTg0LCAwLjAwNDU5MywgMC4wMDQ2MDIiLCBcCi0gICAgICAgICAgIjAuMDA0MjIzLCAwLjAwNDQ1MywgMC4wMDQ1MiwgMC4wMDQ1NDUsIDAuMDA0NTY4LCAwLjAwNDU4LCAwLjAwNDU5MiIsIFwKLSAgICAgICAgICAiMC4wMDQyMDIsIDAuMDA0NDA3LCAwLjAwNDQ4NiwgMC4wMDQ1MTYsIDAuMDA0NTQ1LCAwLjAwNDU2MSwgMC4wMDQ1NzYiLCBcCi0gICAgICAgICAgIjAuMDA0MTgsIDAuMDA0MzczLCAwLjAwNDQ1OCwgMC4wMDQ0OTIsIDAuMDA0NTI2LCAwLjAwNDU0NSwgMC4wMDQ1NjMiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBOT1IyQlgxICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKE5PUjJCWDEpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4wNjc4NDQyOwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBTikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNTU4MzMyOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDU1ODA2OTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA1NTgzMzI7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzk2LCAwLjAwMDM3OSwgMC4wMDAzNjksIDAuMDAwMzY0LCAwLjAwMDM2MiwgMC4wMDAzNiwgMC4wMDAzNiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTE1NiwgMC4wMDExNDQsIDAuMDAxMTM2LCAwLjAwMTEzMSwgMC4wMDExMjgsIDAuMDAxMTI2LCAwLjAwMTEyNiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwODg2ODExOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDg4Njc1NzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA4ODY4MTE7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMTAyLCAwLjAwMDEwMiwgMC4wMDAxMDIsIDAuMDAwMTAyLCAwLjAwMDEwMiwgMC4wMDAxMDIsIDAuMDAwMTAyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzc3LCAwLjAwMDM3NywgMC4wMDAzNzcsIDAuMDAwMzc3LCAwLjAwMDM3NywgMC4wMDAzNzcsIDAuMDAwMzc3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMDY0MzU3NzsKLSAgICBmdW5jdGlvbiA6ICIoISgoIUFOKStCKSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkFOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMDg4NDgsIDAuMjk3NjQ4LCAwLjgwMTI0NywgMS4yNDUyNiwgMS44MzgzOSwgMy4wMjIyOSwgMy43NjIwOSIsIFwKLSAgICAgICAgICAiMC4yMjA2OTYsIDAuMzA5NTcyLCAwLjgxMzI4NSwgMS4yNTgsIDEuODUwMDQsIDMuMDM0MSwgMy43NzM3NyIsIFwKLSAgICAgICAgICAiMC4yMzU5NzIsIDAuMzI0ODQ1LCAwLjgyODM4LCAxLjI3MjQsIDEuODY1NDIsIDMuMDQ5NTksIDMuNzg4ODEiLCBcCi0gICAgICAgICAgIjAuMjUxMTA5LCAwLjM0MDAxNiwgMC44NDM0OTksIDEuMjg3ODQsIDEuODgwMDgsIDMuMDY0OTQsIDMuODA0MzEiLCBcCi0gICAgICAgICAgIjAuMjY1Nzk0LCAwLjM1NDcyNywgMC44NTgyMTQsIDEuMzAyNTgsIDEuODk1NDMsIDMuMDc4OTYsIDMuODE5MDEiLCBcCi0gICAgICAgICAgIjAuMjg3NDM3LCAwLjM3NjM2NywgMC44Nzk4NjEsIDEuMzI0MjEsIDEuOTE2OTUsIDMuMTAwODUsIDMuODQwNjUiLCBcCi0gICAgICAgICAgIjAuMzA0NTkzLCAwLjM5MzQ4OCwgMC44OTcxMTYsIDEuMzQxMjYsIDEuOTMzNjEsIDMuMTE3NzUsIDMuODU3ODkiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzE5NzAzLCAwLjQ5MjgyNCwgMS40ODIxOSwgMi4zNTM4NCwgMy41MDU0NCwgNS44MjM5NywgNy4yNzAxNCIsIFwKLSAgICAgICAgICAiMC4zMTkxMTksIDAuNDk0MDg4LCAxLjQ3NzYzLCAyLjM0NjQ3LCAzLjUyNjQzLCA1LjgyMjQ1LCA3LjI2OTYiLCBcCi0gICAgICAgICAgIjAuMzE5MDA3LCAwLjQ5NDA0NCwgMS40ODIwOSwgMi4zNTIwNSwgMy41MjY0OCwgNS44MjAzOSwgNy4yNjk3MSIsIFwKLSAgICAgICAgICAiMC4zMTkwMTEsIDAuNDk0MDcxLCAxLjQ4NjY4LCAyLjM1MjA2LCAzLjUwODg4LCA1LjgyNzI2LCA3LjI2OTk1IiwgXAotICAgICAgICAgICIwLjMxOTA0MiwgMC40OTU1OTIsIDEuNDgxMzYsIDIuMzQ4NjIsIDMuNTA1MzQsIDUuODI3MjIsIDcuMjY5NzEiLCBcCi0gICAgICAgICAgIjAuMzE5NzU5LCAwLjQ5NDA1MSwgMS40ODY3MSwgMi4zNTIwMywgMy41MjY0NSwgNS44MjMzNSwgNy4yNjk2MyIsIFwKLSAgICAgICAgICAiMC4zMTk3ODEsIDAuNDkyODY4LCAxLjQ4MjA0LCAyLjM1MjI4LCAzLjUwODAzLCA1LjgyNjE5LCA3LjI2OTY2Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEzMjY0NSwgMC4xODIyMDksIDAuNDYyNDcsIDAuNzA5MzYxLCAxLjAzODYxLCAxLjY5NzA1LCAyLjEwOTYyIiwgXAotICAgICAgICAgICIwLjE0NDIwOCwgMC4xOTM3NzgsIDAuNDc0MDc0LCAwLjcyMTA1MywgMS4wNTA1MSwgMS43MDkxNSwgMi4xMjEyMyIsIFwKLSAgICAgICAgICAiMC4xNTg5NTEsIDAuMjA4NTIzLCAwLjQ4ODc2NSwgMC43MzU3NzQsIDEuMDY1MDEsIDEuNzIzNzYsIDIuMTM1ODEiLCBcCi0gICAgICAgICAgIjAuMTczMzMxLCAwLjIyMjkyMSwgMC41MDMxOTIsIDAuNzUwMjMzLCAxLjA3OTM2LCAxLjczODIyLCAyLjE1MDA2IiwgXAotICAgICAgICAgICIwLjE4NjQ1OSwgMC4yMzYwNTYsIDAuNTE2MzMxLCAwLjc2MzM2NCwgMS4wOTI5MiwgMS43NTE0LCAyLjE2MzA1IiwgXAotICAgICAgICAgICIwLjIwNTQ1NCwgMC4yNTUwMzEsIDAuNTM1MzA1LCAwLjc4MjMyMywgMS4xMTIwNywgMS43NzA0OSwgMi4xODE5OSIsIFwKLSAgICAgICAgICAiMC4yMjA0OTksIDAuMjY5OTU5LCAwLjU1MDEzNiwgMC43OTcyODksIDEuMTI2NDYsIDEuNzg1ODUsIDIuMTk2NDQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTg0NjAzLCAwLjI4MjIyMywgMC44MzcxNDksIDEuMzI2NTcsIDEuOTc5MjUsIDMuMjg0ODcsIDQuMTAxOTgiLCBcCi0gICAgICAgICAgIjAuMTg0NTUzLCAwLjI4MjE3NCwgMC44MzcxMjEsIDEuMzI2NzIsIDEuOTc5NDcsIDMuMjg0ODEsIDQuMTAxNzUiLCBcCi0gICAgICAgICAgIjAuMTg0NjMyLCAwLjI4MjI1NCwgMC44MzcyOTEsIDEuMzI2NjksIDEuOTc5NDIsIDMuMjg1NDksIDQuMTAwODgiLCBcCi0gICAgICAgICAgIjAuMTg0NjU3LCAwLjI4MjI0LCAwLjgzNzEyMiwgMS4zMjY3OSwgMS45NzkzOCwgMy4yODQ4NiwgNC4xMDE4NCIsIFwKLSAgICAgICAgICAiMC4xODQ4MzQsIDAuMjgyMzMsIDAuODM3MTMxLCAxLjMyNjcsIDEuOTc5MzYsIDMuMjg0ODMsIDQuMTAxNjciLCBcCi0gICAgICAgICAgIjAuMTg1MTg2LCAwLjI4MjQ1MiwgMC44MzcxMjEsIDEuMzI2OTIsIDEuOTc5NDcsIDMuMjg0NzgsIDQuMTAwNzUiLCBcCi0gICAgICAgICAgIjAuMTg1NjcsIDAuMjgyNzE1LCAwLjgzNzAwMiwgMS4zMjY2OCwgMS45Nzk0LCAzLjI4NDk5LCA0LjEwMDI5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE2NzA4LCAwLjI1NTkxOSwgMC43NTk5MzcsIDEuMjAzODEsIDEuNzk1NjQsIDIuOTgwODcsIDMuNzIwMSIsIFwKLSAgICAgICAgICAiMC4xNzcyNzQsIDAuMjY2MTUyLCAwLjc2OTY1MywgMS4yMTQ0NSwgMS44MDY0OCwgMi45OTA5LCAzLjczMDUxIiwgXAotICAgICAgICAgICIwLjE5MDIxMSwgMC4yNzkxMTksIDAuNzgyOTQ1LCAxLjIyNzM5LCAxLjgyMDI3LCAzLjAwMzU0LCAzLjc0MzQ1IiwgXAotICAgICAgICAgICIwLjIwMzE4NywgMC4yOTIyNTIsIDAuNzk1ODY0LCAxLjI0MDkyLCAxLjgzMjYsIDMuMDE2NTgsIDMuNzU2NTkiLCBcCi0gICAgICAgICAgIjAuMjE2MTc1LCAwLjMwNTIwOSwgMC44MDk0MDcsIDEuMjUzNTgsIDEuODQ2NDcsIDMuMDI5NzYsIDMuNzY5NjgiLCBcCi0gICAgICAgICAgIjAuMjM3MTI3LCAwLjMyNjEwNiwgMC44Mjk4MzMsIDEuMjc0MjgsIDEuODY2OTYsIDMuMDUxMjIsIDMuNzkwOSIsIFwKLSAgICAgICAgICAiMC4yNTU1NywgMC4zNDQ0MjYsIDAuODQ4MzE0LCAxLjI5MjY0LCAxLjg4NDcxLCAzLjA2OTYsIDMuODA4OTYiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzE5NzQ4LCAwLjQ5NDA1LCAxLjQ3NzQxLCAyLjM0ODkyLCAzLjUxMjY5LCA1LjgyNzA5LCA3LjI2OTk4IiwgXAotICAgICAgICAgICIwLjMxODY5MiwgMC40OTQwNTUsIDEuNDgxMSwgMi4zNDY5LCAzLjUyNjE5LCA1LjgyNDY1LCA3LjI2OTgzIiwgXAotICAgICAgICAgICIwLjMxODY2OCwgMC40OTQwNjksIDEuNDc3NTQsIDIuMzQ3MzEsIDMuNTA1MjMsIDUuODI1ODEsIDcuMjY5MzUiLCBcCi0gICAgICAgICAgIjAuMzE4NzQ1LCAwLjQ5MjU5MiwgMS40ODA5NywgMi4zNDY5MSwgMy41MDg5LCA1LjgyNjM3LCA3LjI2OTg3IiwgXAotICAgICAgICAgICIwLjMyMDk1MSwgMC40OTI1MjgsIDEuNDc3NCwgMi4zNTQ2MywgMy41MDUyMiwgNS44MjYzMywgNy4yNjkyNCIsIFwKLSAgICAgICAgICAiMC4zMjU3ODYsIDAuNDk1MDk0LCAxLjQ4NjgyLCAyLjM0NjUzLCAzLjUyNjQsIDUuODIzNjMsIDcuMjcwMDYiLCBcCi0gICAgICAgICAgIjAuMzMxODU2LCAwLjQ5Nzk2MSwgMS40ODIxOSwgMi4zNDg3OSwgMy41MTM2MSwgNS44MjA3MiwgNy4yNjk3OSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTUxMiwgMC4xNDQ0NywgMC40MjQ1OTcsIDAuNjcxMzM1LCAxLjAwMDg4LCAxLjY1ODc3LCAyLjA3MDg2IiwgXAotICAgICAgICAgICIwLjEwNjk0LCAwLjE1NjQsIDAuNDM2MjY2LCAwLjY4MzA5OCwgMS4wMTIyLCAxLjY3MDYxLCAyLjA4MjA3IiwgXAotICAgICAgICAgICIwLjEyMTY0NywgMC4xNzExODYsIDAuNDUwODgyLCAwLjY5Nzk3OSwgMS4wMjcyMSwgMS42ODUzLCAyLjA5ODQ0IiwgXAotICAgICAgICAgICIwLjEzNjgwOCwgMC4xODU3MTksIDAuNDY1NTEsIDAuNzExMzQxLCAxLjAzNzc5LCAxLjY5NjQyLCAyLjEwNzE1IiwgXAotICAgICAgICAgICIwLjE1MTgzNSwgMC4yMDExNCwgMC40ODAxODEsIDAuNzI3MTM5LCAxLjA1MDYxLCAxLjcwOTE2LCAyLjEyMTQiLCBcCi0gICAgICAgICAgIjAuMTc1NjQ5LCAwLjIyNTE4MywgMC41MDM3MTgsIDAuNzUwODQ0LCAxLjA3OTg0LCAxLjczMDQ1LCAyLjE0MjU1IiwgXAotICAgICAgICAgICIwLjE5NzA3NCwgMC4yNDYwMywgMC41MjQ0NTQsIDAuNzcxNjE5LCAxLjEwMDQ4LCAxLjc0OTcsIDIuMTYwNDkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTc3ODExLCAwLjI3NjczOSwgMC44MzIxODQsIDEuMzIzMDEsIDEuOTc0NDIsIDMuMjg0OTksIDQuMTA2MjEiLCBcCi0gICAgICAgICAgIjAuMTc4MDY3LCAwLjI3NjE5MiwgMC44MzA4MiwgMS4zMjQwNywgMS45ODE2MiwgMy4yODE0MSwgNC4xMDExMSIsIFwKLSAgICAgICAgICAiMC4xNzc3NzEsIDAuMjc1NzQ1LCAwLjgzMzk3LCAxLjMyMzMxLCAxLjk3NjU2LCAzLjI4MTM5LCA0LjEwNjA1IiwgXAotICAgICAgICAgICIwLjE4MDAzNywgMC4yNzYwOTIsIDAuODMyMDUxLCAxLjMyMjIyLCAxLjk3NDg3LCAzLjI4MTk1LCA0LjA5ODQ1IiwgXAotICAgICAgICAgICIwLjE4MzQzNiwgMC4yNzczNDQsIDAuODMwOTYxLCAxLjMyMTMyLCAxLjk3NTA3LCAzLjI4MzM1LCA0LjEwNjQzIiwgXAotICAgICAgICAgICIwLjE5MTQ0MywgMC4yODI3OTEsIDAuODMxMjMzLCAxLjMyMTM3LCAxLjk3Mzk0LCAzLjI5MDQsIDQuMDk4OTciLCBcCi0gICAgICAgICAgIjAuMTk5NDE3LCAwLjI4ODU4NiwgMC44MzIzNzcsIDEuMzIxODQsIDEuOTc5NjMsIDMuMjgxMSwgNC4xMDU4OSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkFOIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDE1MywgMC4wMDE1MywgMC4wMDE1MzEsIDAuMDAxNTMxLCAwLjAwMTUzMSwgMC4wMDE1MzEsIDAuMDAxNTMxIiwgXAotICAgICAgICAgICIwLjAwMTUxMiwgMC4wMDE1MTIsIDAuMDAxNTE0LCAwLjAwMTUxNCwgMC4wMDE1MTUsIDAuMDAxNTE0LCAwLjAwMTUxNCIsIFwKLSAgICAgICAgICAiMC4wMDE1MDEsIDAuMDAxNTAzLCAwLjAwMTUwNSwgMC4wMDE1MDUsIDAuMDAxNTA1LCAwLjAwMTUwNSwgMC4wMDE1MDUiLCBcCi0gICAgICAgICAgIjAuMDAxNDk1LCAwLjAwMTQ5NywgMC4wMDE1LCAwLjAwMTUsIDAuMDAxNSwgMC4wMDE1LCAwLjAwMTUiLCBcCi0gICAgICAgICAgIjAuMDAxNDkzLCAwLjAwMTQ5NiwgMC4wMDE1LCAwLjAwMTUsIDAuMDAxNSwgMC4wMDE1LCAwLjAwMTUwMSIsIFwKLSAgICAgICAgICAiMC4wMDE0OTEsIDAuMDAxNDk0LCAwLjAwMTQ5OCwgMC4wMDE0OTksIDAuMDAxNDk5LCAwLjAwMTQ5OSwgMC4wMDE1IiwgXAotICAgICAgICAgICIwLjAwMTQ5LCAwLjAwMTQ5MywgMC4wMDE0OTksIDAuMDAxNSwgMC4wMDE1LCAwLjAwMTUsIDAuMDAxNTAxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxODY3LCAwLjAwMTg2NywgMC4wMDE4NjgsIDAuMDAxODY4LCAwLjAwMTg2OCwgMC4wMDE4NjcsIDAuMDAxODY3IiwgXAotICAgICAgICAgICIwLjAwMTg1NCwgMC4wMDE4NTUsIDAuMDAxODU2LCAwLjAwMTg1NiwgMC4wMDE4NTYsIDAuMDAxODU1LCAwLjAwMTg1NSIsIFwKLSAgICAgICAgICAiMC4wMDE4NDQsIDAuMDAxODQ1LCAwLjAwMTg0NywgMC4wMDE4NDcsIDAuMDAxODQ3LCAwLjAwMTg0NywgMC4wMDE4NDYiLCBcCi0gICAgICAgICAgIjAuMDAxODQsIDAuMDAxODQxLCAwLjAwMTg0NCwgMC4wMDE4NDQsIDAuMDAxODQ0LCAwLjAwMTg0NCwgMC4wMDE4NDMiLCBcCi0gICAgICAgICAgIjAuMDAxODM0LCAwLjAwMTgzNywgMC4wMDE4NCwgMC4wMDE4NDEsIDAuMDAxODQxLCAwLjAwMTg0LCAwLjAwMTg0IiwgXAotICAgICAgICAgICIwLjAwMTgzMSwgMC4wMDE4MzQsIDAuMDAxODM4LCAwLjAwMTgzOSwgMC4wMDE4MzksIDAuMDAxODM5LCAwLjAwMTgzOSIsIFwKLSAgICAgICAgICAiMC4wMDE4MjksIDAuMDAxODMyLCAwLjAwMTgzNywgMC4wMDE4MzgsIDAuMDAxODM4LCAwLjAwMTgzOCwgMC4wMDE4MzgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDEyMDcsIDAuMDAxMjA4LCAwLjAwMTIwOSwgMC4wMDEyMDgsIDAuMDAxMjA5LCAwLjAwMTIwOSwgMC4wMDEyMDkiLCBcCi0gICAgICAgICAgIjAuMDAxMiwgMC4wMDEyMDMsIDAuMDAxMjA3LCAwLjAwMTIwNywgMC4wMDEyMDgsIDAuMDAxMjA4LCAwLjAwMTIwOCIsIFwKLSAgICAgICAgICAiMC4wMDExOTMsIDAuMDAxMTk4LCAwLjAwMTIwNSwgMC4wMDEyMDYsIDAuMDAxMjA3LCAwLjAwMTIwOCwgMC4wMDEyMDgiLCBcCi0gICAgICAgICAgIjAuMDAxMTg3LCAwLjAwMTE5MywgMC4wMDEyMDMsIDAuMDAxMjA1LCAwLjAwMTIwNiwgMC4wMDEyMDcsIDAuMDAxMjA3IiwgXAotICAgICAgICAgICIwLjAwMTE4MiwgMC4wMDExODksIDAuMDAxMjAxLCAwLjAwMTIwNCwgMC4wMDEyMDUsIDAuMDAxMjA2LCAwLjAwMTIwNyIsIFwKLSAgICAgICAgICAiMC4wMDExNzYsIDAuMDAxMTg0LCAwLjAwMTE5OSwgMC4wMDEyMDIsIDAuMDAxMjA0LCAwLjAwMTIwNiwgMC4wMDEyMDYiLCBcCi0gICAgICAgICAgIjAuMDAxMTcyLCAwLjAwMTE4MSwgMC4wMDExOTcsIDAuMDAxMjAxLCAwLjAwMTIwMywgMC4wMDEyMDUsIDAuMDAxMjA2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwMDQyLCAwLjAwMDA0MywgMC4wMDAwNDUsIDAuMDAwMDQ1LCAwLjAwMDA0NSwgMC4wMDAwNDUsIDAuMDAwMDQ1IiwgXAotICAgICAgICAgICIwLjAwMDA0NSwgMC4wMDAwNDksIDAuMDAwMDU0LCAwLjAwMDA1NSwgMC4wMDAwNTYsIDAuMDAwMDU2LCAwLjAwMDA1NiIsIFwKLSAgICAgICAgICAiMC4wMDAwMzYsIDAuMDAwMDQ0LCAwLjAwMDA1NCwgMC4wMDAwNTYsIDAuMDAwMDU3LCAwLjAwMDA1OCwgMC4wMDAwNTgiLCBcCi0gICAgICAgICAgIjAuMDAwMDMsIDAuMDAwMDM5LCAwLjAwMDA1MywgMC4wMDAwNTYsIDAuMDAwMDU4LCAwLjAwMDA1OSwgMC4wMDAwNTkiLCBcCi0gICAgICAgICAgIjAuMDAwMDIzLCAwLjAwMDAzNCwgMC4wMDAwNTEsIDAuMDAwMDU0LCAwLjAwMDA1NywgMC4wMDAwNTksIDAuMDAwMDU5IiwgXAotICAgICAgICAgICIwLjAwMDAxMywgMC4wMDAwMjcsIDAuMDAwMDQ4LCAwLjAwMDA1MiwgMC4wMDAwNTUsIDAuMDAwMDU4LCAwLjAwMDA1OSIsIFwKLSAgICAgICAgICAiMC4wMDAwMDcsIDAuMDAwMDIxLCAwLjAwMDA0NSwgMC4wMDAwNTEsIDAuMDAwMDU0LCAwLjAwMDA1NywgMC4wMDAwNTgiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBOT1IyQlgyICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKE5PUjJCWDIpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4xMTY0NDU7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEFOKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA1NjgxMjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA1Njc4MDg7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNTY4MTI7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNzA5LCAwLjAwMDY5NSwgMC4wMDA2ODUsIDAuMDAwNjgsIDAuMDAwNjc3LCAwLjAwMDY3NCwgMC4wMDA2NzQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDE3MTgsIDAuMDAxNzA5LCAwLjAwMTcwMiwgMC4wMDE2OTgsIDAuMDAxNjk1LCAwLjAwMTY5MiwgMC4wMDE2OSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNTcwNjc7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNTcwNjc7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNTcwNjE7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjA0LCAwLjAwMDIwNCwgMC4wMDAyMDQsIDAuMDAwMjA0LCAwLjAwMDIwNCwgMC4wMDAyMDQsIDAuMDAwMjA0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNzg5LCAwLjAwMDc5LCAwLjAwMDc4OSwgMC4wMDA3ODksIDAuMDAwNzg5LCAwLjAwMDc4OSwgMC4wMDA3ODkiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4xNDMxMzsKLSAgICBmdW5jdGlvbiA6ICIoISgoIUFOKStCKSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkFOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNTQ3MDQsIDAuNTI0MjA3LCAwLjgxOTg0NywgMS4xODkyMSwgMS41NTgyLCAxLjkyNzYyLCAyLjI5ODM3IiwgXAotICAgICAgICAgICIwLjE2NjQxOCwgMC41MzU4NjQsIDAuODMxNTUsIDEuMjAwODEsIDEuNTcxMDUsIDEuOTM5ODIsIDIuMzA5NCIsIFwKLSAgICAgICAgICAiMC4xODE3NjcsIDAuNTUxMzYxLCAwLjg0NjczNywgMS4yMTYxNCwgMS41ODYzNSwgMS45NTU3OCwgMi4zMjUiLCBcCi0gICAgICAgICAgIjAuMTk3MDg4LCAwLjU2NjY5LCAwLjg2MjE0MiwgMS4yMzE3MiwgMS42MDEyNSwgMS45NzA1NCwgMi4zMzk3OCIsIFwKLSAgICAgICAgICAiMC4yMTIyOTMsIDAuNTgxOTIxLCAwLjg3NzQ3OSwgMS4yNDcyMiwgMS42MTYxMSwgMS45ODYxMSwgMi4zNTU5NyIsIFwKLSAgICAgICAgICAiMC4yMzYzNTcsIDAuNjA2MDMzLCAwLjkwMTcxMiwgMS4yNzE3LCAxLjY0MDg3LCAyLjAwOTYsIDIuMzgwMTIiLCBcCi0gICAgICAgICAgIjAuMjU2Mzc2LCAwLjYyNjA0MywgMC45MjE2MjcsIDEuMjkwOTcsIDEuNjYxMjcsIDIuMDI5NDksIDIuMzk5MzciKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTc1NzA2LCAwLjg5ODQ5MSwgMS40NzkwNSwgMi4yMDM0OSwgMi45Mjc2NSwgMy42NTI0OCwgNC4zNjMwMSIsIFwKLSAgICAgICAgICAiMC4xNzU1NjEsIDAuODk3MDMyLCAxLjQ3ODg4LCAyLjIwMzQzLCAyLjkzMDAzLCAzLjY0MSwgNC4zNjYwMiIsIFwKLSAgICAgICAgICAiMC4xNzU1NzIsIDAuOTAyMDgyLCAxLjQ3NzI5LCAyLjIwOTUyLCAyLjkxODgxLCAzLjY0MTM5LCA0LjM2NDUzIiwgXAotICAgICAgICAgICIwLjE3NTY5NCwgMC44OTkyMywgMS40Nzc1OCwgMi4xOTY4OSwgMi45MjExNywgMy42NDE3OCwgNC4zNzM1IiwgXAotICAgICAgICAgICIwLjE3NTcwNCwgMC44OTkyMjgsIDEuNDc4OTEsIDIuMTk3MDYsIDIuOTI2MzYsIDMuNjU0MjEsIDQuMzYzNTUiLCBcCi0gICAgICAgICAgIjAuMTc1NzQ5LCAwLjg5OTI3NywgMS40NzkxNywgMi4xOTYyOSwgMi45MTg3OCwgMy42NDkzNCwgNC4zNjMzNiIsIFwKLSAgICAgICAgICAiMC4xNzU5MDksIDAuODk4NTA1LCAxLjQ3NTU4LCAyLjIwMzIyLCAyLjkxODU4LCAzLjY0OTM5LCA0LjM2NzY4Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwOTk2OCwgMC4zMTY4MjgsIDAuNDgxNzM0LCAwLjY4NzYxLCAwLjg5MzQzOCwgMS4wOTkxOCwgMS4zMDQ5NyIsIFwKLSAgICAgICAgICAiMC4xMjEzMzMsIDAuMzI4MTc1LCAwLjQ5Mjk4NywgMC42OTkwMzcsIDAuOTA0Nzg1LCAxLjExMDU4LCAxLjMxNjI2IiwgXAotICAgICAgICAgICIwLjEzNjI3MiwgMC4zNDMxNTYsIDAuNTA3OTU0LCAwLjcxMzkxOSwgMC45MTk3NDEsIDEuMTI1NjksIDEuMzMxMjgiLCBcCi0gICAgICAgICAgIjAuMTUxMTUyLCAwLjM1ODAzNSwgMC41MjI5NjIsIDAuNzI4ODI5LCAwLjkzNDYyOCwgMS4xNDAzNSwgMS4zNDYzNyIsIFwKLSAgICAgICAgICAiMC4xNjU2NzksIDAuMzcyMzA4LCAwLjUzNzExNiwgMC43NDMwMDIsIDAuOTQ4ODQ1LCAxLjE1NSwgMS4zNjA1MSIsIFwKLSAgICAgICAgICAiMC4xODc4NSwgMC4zOTQ4MTcsIDAuNTU5NzMsIDAuNzY1NjMxLCAwLjk3MTQyNywgMS4xNzczOSwgMS4zODI5NSIsIFwKLSAgICAgICAgICAiMC4yMDU2MzcsIDAuNDEyNDIsIDAuNTc3MjY3LCAwLjc4MzI3NCwgMC45ODkwNywgMS4xOTQ2NywgMS40MDA1NiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDc1MzcsIDAuNTEyNjI3LCAwLjgzODYzNSwgMS4yNDY4OSwgMS42NTQ4NywgMi4wNjI3OSwgMi40NzA4MiIsIFwKLSAgICAgICAgICAiMC4xMDc1NDksIDAuNTEyNDUyLCAwLjgzODc2MywgMS4yNDY5MywgMS42NTQ4NiwgMi4wNjI4MywgMi40NzA1NyIsIFwKLSAgICAgICAgICAiMC4xMDc1MDUsIDAuNTEyNDk1LCAwLjgzODc2MywgMS4yNDY4OCwgMS42NTQ4NiwgMi4wNjI4MiwgMi40NzA4MyIsIFwKLSAgICAgICAgICAiMC4xMDc1NDUsIDAuNTEyNTg4LCAwLjgzODc0NiwgMS4yNDY4OCwgMS42NTQ4NCwgMi4wNjI3OSwgMi40NzEzNCIsIFwKLSAgICAgICAgICAiMC4xMDc2NzMsIDAuNTEyNDAzLCAwLjgzODc2MywgMS4yNDY3NiwgMS42NTQ4MSwgMi4wNjMyNiwgMi40NzA4NiIsIFwKLSAgICAgICAgICAiMC4xMDgyNDMsIDAuNTEyMzc4LCAwLjgzODY4OSwgMS4yNDY4OCwgMS42NTQ4NiwgMi4wNjI4MywgMi40NzA4NCIsIFwKLSAgICAgICAgICAiMC4xMDkyOSwgMC41MTI1MDMsIDAuODM4ODM0LCAxLjI0NjgzLCAxLjY1NDg4LCAyLjA2MjY0LCAyLjQ3MDg4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5MjkyNiwgMC40NjIzNTksIDAuNzU3OTcyLCAxLjEyNzQ5LCAxLjQ5NjM4LCAxLjg2NjUzLCAyLjIzNTY0IiwgXAotICAgICAgICAgICIwLjEwMzAxOSwgMC40NzI3MDEsIDAuNzY4MjI1LCAxLjEzNzc1LCAxLjUwNzUzLCAxLjg3NjQ1LCAyLjI0NjM4IiwgXAotICAgICAgICAgICIwLjExNTg1MSwgMC40ODU3MywgMC43ODEzNCwgMS4xNTA1NCwgMS41MjAwMywgMS44ODk2MiwgMi4yNTkxOCIsIFwKLSAgICAgICAgICAiMC4xMjg5NiwgMC40OTg5NzcsIDAuNzk0NDc0LCAxLjE2NDQ0LCAxLjUzMzQ0LCAxLjkwMjg4LCAyLjI3MjA3IiwgXAotICAgICAgICAgICIwLjE0MjUzMywgMC41MTIxMTIsIDAuODA3Mzk3LCAxLjE3NzExLCAxLjU0NzE1LCAxLjkxNTU3LCAyLjI4NTMyIiwgXAotICAgICAgICAgICIwLjE2Mzk2MywgMC41MzI4NTgsIDAuODI4NDc0LCAxLjE5Nzk1LCAxLjU2ODI2LCAxLjkzNjQ5LCAyLjMwNyIsIFwKLSAgICAgICAgICAiMC4xODI2ODksIDAuNTUxMTk5LCAwLjg0Njg1MiwgMS4yMTYxMSwgMS41ODU0LCAxLjk1NTU3LCAyLjMyMzk4Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE3NDY5MSwgMC45MDIwNjYsIDEuNDc1OSwgMi4xOTY0NCwgMi45Mjc3NSwgMy42NDI0MSwgNC4zNzc5NCIsIFwKLSAgICAgICAgICAiMC4xNzQyNjMsIDAuOTAyMTk3LCAxLjQ3NzYyLCAyLjE5NjU1LCAyLjkxODkzLCAzLjY0MzM0LCA0LjM2NDgxIiwgXAotICAgICAgICAgICIwLjE3NDc2MSwgMC44OTcyMTgsIDEuNDc4ODYsIDIuMjAxMjQsIDIuOTI3NywgMy42NDQ4NiwgNC4zNzgwMSIsIFwKLSAgICAgICAgICAiMC4xNzc0MjcsIDAuODk5MzQsIDEuNDc3NTgsIDIuMTk2NTksIDIuOTIxOTcsIDMuNjUzNjMsIDQuMzczNzIiLCBcCi0gICAgICAgICAgIjAuMTgxNTIzLCAwLjg5NjU5NCwgMS40Nzg5MSwgMi4yMDM5MiwgMi45MTg1NSwgMy42NDM4MywgNC4zNjc4IiwgXAotICAgICAgICAgICIwLjE5MDcyOSwgMC44OTkxMjIsIDEuNDc4NzksIDIuMTk2NDksIDIuOTMwMDksIDMuNjUyMzIsIDQuMzYzMjUiLCBcCi0gICAgICAgICAgIjAuMjAwMzIzLCAwLjg5OTA5MywgMS40Nzg4NSwgMi4yMDk5OSwgMi45Mjc1OSwgMy42NDIyNiwgNC4zNzI0MSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTUwNDMsIDAuMjY0NTg1LCAwLjQzMjIxLCAwLjY0MTU2MSwgMC44NTExNjIsIDEuMDYwMzgsIDEuMjcwMjYiLCBcCi0gICAgICAgICAgIjAuMDY2NzY2LCAwLjI3NjQwNCwgMC40NDM5OCwgMC42NTMyMDUsIDAuODYyNjc1LCAxLjA3MjAyLCAxLjI4MTQ2IiwgXAotICAgICAgICAgICIwLjA4MTY5NSwgMC4yOTA5MjUsIDAuNDU2NTgzLCAwLjY2NjAzNCwgMC44NzU5ODYsIDEuMDg1MSwgMS4yOTQ0IiwgXAotICAgICAgICAgICIwLjA5NjU5MiwgMC4zMDU5NzQsIDAuNDczMjQsIDAuNjgyMzgzLCAwLjg5MTk3LCAxLjEwMTQ3LCAxLjMxMDY5IiwgXAotICAgICAgICAgICIwLjExMTczMSwgMC4zMjAyMTgsIDAuNDg3ODI5LCAwLjY5NzI0NywgMC45MDU5MjYsIDEuMTEwNDQsIDEuMzIwNzIiLCBcCi0gICAgICAgICAgIjAuMTM1NTU3LCAwLjM0Mzk4MiwgMC41MTEyOTQsIDAuNzIwOTQyLCAwLjkyOTk5OSwgMS4xMzk1MywgMS4zNDc2NSIsIFwKLSAgICAgICAgICAiMC4xNTUyMDMsIDAuMzY1ODA0LCAwLjUzMTk0NCwgMC43NDEzNDUsIDAuOTUwODIsIDEuMTYwNzIsIDEuMzY5NDEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk4MTksIDAuNTE0NzI3LCAwLjg0NjI2NCwgMS4yNjMwNSwgMS42NzY3MSwgMi4wOTQ4NCwgMi41MDgxMSIsIFwKLSAgICAgICAgICAiMC4wOTgyMjksIDAuNTEzNTE2LCAwLjg0NzE1NiwgMS4yNjU2NCwgMS42Nzc1MiwgMi4wOTM2NCwgMi41MDc3NyIsIFwKLSAgICAgICAgICAiMC4wOTk3OTksIDAuNTE1MjU5LCAwLjg0NTgyMywgMS4yNjI2NCwgMS42NzkxOSwgMi4wOTM2NSwgMi41MTA0NyIsIFwKLSAgICAgICAgICAiMC4xMDQzNzMsIDAuNTEzNSwgMC44NDY4OTYsIDEuMjYxMTEsIDEuNjc4NTcsIDIuMDkyOTgsIDIuNTEzNzIiLCBcCi0gICAgICAgICAgIjAuMTEwMDUyLCAwLjUxMzM5OSwgMC44NDY4NzMsIDEuMjYxNDYsIDEuNjc3MjUsIDIuMDk5NjcsIDIuNTExMjkiLCBcCi0gICAgICAgICAgIjAuMTIxNzc2LCAwLjUxMzY0MiwgMC44NDg2MjEsIDEuMjYxMTYsIDEuNjgyMywgMi4wOTg5NCwgMi41MDczNiIsIFwKLSAgICAgICAgICAiMC4xMzMzMzUsIDAuNTE1NDAxLCAwLjg0NzEzOSwgMS4yNjI0NCwgMS42Nzc3NywgMi4wOTQ3NiwgMi41MDY4MyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkFOIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI5NjUsIDAuMDAyOTc3LCAwLjAwMjk3OSwgMC4wMDI5OCwgMC4wMDI5OCwgMC4wMDI5OCwgMC4wMDI5OCIsIFwKLSAgICAgICAgICAiMC4wMDI5NTEsIDAuMDAyOTY1LCAwLjAwMjk2NywgMC4wMDI5NjgsIDAuMDAyOTY4LCAwLjAwMjk2NywgMC4wMDI5NjciLCBcCi0gICAgICAgICAgIjAuMDAyOTM4LCAwLjAwMjk1NSwgMC4wMDI5NTYsIDAuMDAyOTU4LCAwLjAwMjk1OCwgMC4wMDI5NTgsIDAuMDAyOTU3IiwgXAotICAgICAgICAgICIwLjAwMjkyOCwgMC4wMDI5NDcsIDAuMDAyOTUsIDAuMDAyOTUxLCAwLjAwMjk1MSwgMC4wMDI5NTEsIDAuMDAyOTUyIiwgXAotICAgICAgICAgICIwLjAwMjkyMSwgMC4wMDI5NDIsIDAuMDAyOTQ2LCAwLjAwMjk0NiwgMC4wMDI5NDgsIDAuMDAyOTQ4LCAwLjAwMjk0OCIsIFwKLSAgICAgICAgICAiMC4wMDI5MTYsIDAuMDAyOTQsIDAuMDAyOTQ0LCAwLjAwMjk0NiwgMC4wMDI5NDcsIDAuMDAyOTQ3LCAwLjAwMjk0OCIsIFwKLSAgICAgICAgICAiMC4wMDI5MTIsIDAuMDAyOTM4LCAwLjAwMjk0MiwgMC4wMDI5NDYsIDAuMDAyOTQ1LCAwLjAwMjk0NiwgMC4wMDI5NDYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDMyMjEsIDAuMDAzMjMxLCAwLjAwMzIzMSwgMC4wMDMyMzIsIDAuMDAzMjMxLCAwLjAwMzIzMSwgMC4wMDMyMzEiLCBcCi0gICAgICAgICAgIjAuMDAzMjA5LCAwLjAwMzIyLCAwLjAwMzIyMSwgMC4wMDMyMjIsIDAuMDAzMjIyLCAwLjAwMzIyMiwgMC4wMDMyMjEiLCBcCi0gICAgICAgICAgIjAuMDAzMiwgMC4wMDMyMTQsIDAuMDAzMjE2LCAwLjAwMzIxNywgMC4wMDMyMTYsIDAuMDAzMjE3LCAwLjAwMzIxNiIsIFwKLSAgICAgICAgICAiMC4wMDMxOSwgMC4wMDMyMDgsIDAuMDAzMjEsIDAuMDAzMjExLCAwLjAwMzIxMSwgMC4wMDMyMTEsIDAuMDAzMjExIiwgXAotICAgICAgICAgICIwLjAwMzE4MywgMC4wMDMyMDMsIDAuMDAzMjA1LCAwLjAwMzIwNywgMC4wMDMyMDcsIDAuMDAzMjA3LCAwLjAwMzIwNyIsIFwKLSAgICAgICAgICAiMC4wMDMxNzUsIDAuMDAzMiwgMC4wMDMyMDMsIDAuMDAzMjA0LCAwLjAwMzIwNSwgMC4wMDMyMDUsIDAuMDAzMjA1IiwgXAotICAgICAgICAgICIwLjAwMzE2NywgMC4wMDMxOTYsIDAuMDAzMTk5LCAwLjAwMzIwMSwgMC4wMDMyMDIsIDAuMDAzMjAyLCAwLjAwMzIwMyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjQwMiwgMC4wMDI0MDcsIDAuMDAyNDA3LCAwLjAwMjQwNywgMC4wMDI0MDgsIDAuMDAyNDA4LCAwLjAwMjQwOCIsIFwKLSAgICAgICAgICAiMC4wMDIzNzcsIDAuMDAyNDAxLCAwLjAwMjQwNCwgMC4wMDI0MDUsIDAuMDAyNDA2LCAwLjAwMjQwNiwgMC4wMDI0MDYiLCBcCi0gICAgICAgICAgIjAuMDAyMzU1LCAwLjAwMjM5NiwgMC4wMDI0MDEsIDAuMDAyNDAyLCAwLjAwMjQwMywgMC4wMDI0MDQsIDAuMDAyNDA1IiwgXAotICAgICAgICAgICIwLjAwMjMzOSwgMC4wMDIzODgsIDAuMDAyMzk0LCAwLjAwMjM5OCwgMC4wMDI0LCAwLjAwMjQwMiwgMC4wMDI0MDIiLCBcCi0gICAgICAgICAgIjAuMDAyMzI5LCAwLjAwMjM4NCwgMC4wMDIzOTMsIDAuMDAyMzk4LCAwLjAwMjQsIDAuMDAyNDAxLCAwLjAwMjQwMSIsIFwKLSAgICAgICAgICAiMC4wMDIzMTgsIDAuMDAyMzc3LCAwLjAwMjM4NywgMC4wMDIzOTMsIDAuMDAyMzk4LCAwLjAwMjQsIDAuMDAyNCIsIFwKLSAgICAgICAgICAiMC4wMDIzMTMsIDAuMDAyMzcyLCAwLjAwMjM4MywgMC4wMDIzOTEsIDAuMDAyMzk2LCAwLjAwMjM5NiwgMC4wMDIzOTgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDAxMjksIDAuMDAwMTM3LCAwLjAwMDEzOCwgMC4wMDAxMzgsIDAuMDAwMTM4LCAwLjAwMDEzOCwgMC4wMDAxMzkiLCBcCi0gICAgICAgICAgIjAuMDAwMTIsIDAuMDAwMTU0LCAwLjAwMDE1OCwgMC4wMDAxNiwgMC4wMDAxNjEsIDAuMDAwMTYxLCAwLjAwMDE2MSIsIFwKLSAgICAgICAgICAiMC4wMDAwOTQsIDAuMDAwMTUxLCAwLjAwMDE1OCwgMC4wMDAxNjIsIDAuMDAwMTY0LCAwLjAwMDE2NSwgMC4wMDAxNjYiLCBcCi0gICAgICAgICAgIjAuMDAwMDY5LCAwLjAwMDE0NCwgMC4wMDAxNTQsIDAuMDAwMTU5LCAwLjAwMDE2MSwgMC4wMDAxNjMsIDAuMDAwMTY0IiwgXAotICAgICAgICAgICIwLjAwMDA1NCwgMC4wMDAxMzksIDAuMDAwMTUxLCAwLjAwMDE1NywgMC4wMDAxNjEsIDAuMDAwMTY0LCAwLjAwMDE2NSIsIFwKLSAgICAgICAgICAiMC4wMDAwMzQsIDAuMDAwMTI5LCAwLjAwMDE0NSwgMC4wMDAxNTMsIDAuMDAwMTU4LCAwLjAwMDE2LCAwLjAwMDE2MyIsIFwKLSAgICAgICAgICAiMC4wMDAwMjEsIDAuMDAwMTIyLCAwLjAwMDE0LCAwLjAwMDE1LCAwLjAwMDE1NSwgMC4wMDAxNTgsIDAuMDAwMTYiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBOT1IyQlg0ICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKE5PUjJCWDQpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4yMTM2NDE7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEFOKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA1NzczNzg7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNTc3MDg1OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDU3NzM3ODsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDEzMywgMC4wMDEzMjEsIDAuMDAxMzEzLCAwLjAwMTMwOCwgMC4wMDEzMDQsIDAuMDAxMywgMC4wMDEzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyNzAzLCAwLjAwMjY5NywgMC4wMDI2OTMsIDAuMDAyNjg5LCAwLjAwMjY4NiwgMC4wMDI2ODMsIDAuMDAyNjgxIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDMwNzc2NDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDMwNzY5NzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDMwNzc2NDsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA0MDgsIDAuMDAwNDA4LCAwLjAwMDQwOCwgMC4wMDA0MDgsIDAuMDAwNDA4LCAwLjAwMDQwOCwgMC4wMDA0MDgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDE1NzUsIDAuMDAxNTc2LCAwLjAwMTU3NSwgMC4wMDE1NzUsIDAuMDAxNTc1LCAwLjAwMTU3NCwgMC4wMDE1NzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4yOTM4MDQ7Ci0gICAgZnVuY3Rpb24gOiAiKCEoKCFBTikrQikpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNTIzNzksIDAuNDEzODE2LCAwLjY3NDEzNywgMC44NjAwMjcsIDEuMTU3ODMsIDEuNDE4MDksIDEuNzkiLCBcCi0gICAgICAgICAgIjAuMTY0MTc1LCAwLjQyNTY3MSwgMC42ODU5NzUsIDAuODcxODY0LCAxLjE2OTM4LCAxLjQyOTUyLCAxLjgwMTI0IiwgXAotICAgICAgICAgICIwLjE3OTM3LCAwLjQ0MDg4NSwgMC43MDExNzEsIDAuODg2ODAyLCAxLjE4NDgyLCAxLjQ0NDk2LCAxLjgxNzAzIiwgXAotICAgICAgICAgICIwLjE5NDQ5MSwgMC40NTYwMTUsIDAuNzE2MzI1LCAwLjkwMjIzMiwgMS4xOTkzOCwgMS40NTk3MywgMS44MzE2MiIsIFwKLSAgICAgICAgICAiMC4yMTAwMDUsIDAuNDcxNTQzLCAwLjczMTg2MiwgMC45MTc3NjUsIDEuMjE1NiwgMS40NzQ4MiwgMS44NDcxMiIsIFwKLSAgICAgICAgICAiMC4yMzQ0OTksIDAuNDk2MDU1LCAwLjc1NjM4OSwgMC45NDIyOTEsIDEuMjM5MjksIDEuNDk5OTcsIDEuODcxNyIsIFwKLSAgICAgICAgICAiMC4yNTU5NzMsIDAuNTE3NTQyLCAwLjc3Nzk5OCwgMC45NjQwMzYsIDEuMjYwOTgsIDEuNTIxODEsIDEuODkzMjkiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDgxOTYsIDAuNjExMDYzLCAxLjEyMjc4LCAxLjQ4NzM0LCAyLjA3MTMxLCAyLjU4MTgxLCAzLjMyMzQ2IiwgXAotICAgICAgICAgICIwLjEwODI1MywgMC42MTI1MDgsIDEuMTIwNTYsIDEuNDg3NCwgMi4wNjU3MywgMi41ODk5OCwgMy4zMjEyMyIsIFwKLSAgICAgICAgICAiMC4xMDgyNTksIDAuNjExNDgyLCAxLjEyMDI4LCAxLjQ4MzQ2LCAyLjA3MTEzLCAyLjU4MTA4LCAzLjMwMDAzIiwgXAotICAgICAgICAgICIwLjEwODI2OSwgMC42MTE0MDIsIDEuMTIwNDksIDEuNDg3NDYsIDIuMDY1NTcsIDIuNTgwNjcsIDMuMzA3MzIiLCBcCi0gICAgICAgICAgIjAuMTA4MjcyLCAwLjYxMTQzMywgMS4xMjA1LCAxLjQ4NzQsIDIuMDcxNDgsIDIuNTc0MzIsIDMuMzIwMTIiLCBcCi0gICAgICAgICAgIjAuMTA4MzA4LCAwLjYxMjU1MiwgMS4xMjA1NCwgMS40ODczNiwgMi4wNjQ0LCAyLjU4OTc5LCAzLjMwOTk3IiwgXAotICAgICAgICAgICIwLjEwODM3NSwgMC42MTE0ODIsIDEuMTIyODUsIDEuNDg3NjQsIDIuMDY5OTEsIDIuNTgxNTcsIDMuMzEwMTgiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMjA1OTksIDAuMjY5ODM5LCAwLjQxNTQ5NSwgMC41MTkzODUsIDAuNjg1NjI0LCAwLjgzMDk3OCwgMS4wMzkwNSIsIFwKLSAgICAgICAgICAiMC4xMzIzMjksIDAuMjgxNTUsIDAuNDI3MjAxLCAwLjUzMTExNiwgMC42OTczMjksIDAuODQyNzEzLCAxLjA1MDcxIiwgXAotICAgICAgICAgICIwLjE0Njc2LCAwLjI5NjQ3NiwgMC40NDIxMywgMC41NDYwMTQsIDAuNzEyMzcxLCAwLjg1NzU5NiwgMS4wNjU1OCIsIFwKLSAgICAgICAgICAiMC4xNjE1NTcsIDAuMzExMjUyLCAwLjQ1Njg5NywgMC41NjA4NSwgMC43MjcxMDksIDAuODcyNjYyLCAxLjA4MDIxIiwgXAotICAgICAgICAgICIwLjE3NjY2MywgMC4zMjYzNTksIDAuNDcyMDI4LCAwLjU3NTkyMywgMC43NDIyMDgsIDAuODg3NDgyLCAxLjA5NTI3IiwgXAotICAgICAgICAgICIwLjE5OTg2MSwgMC4zNDk2NzcsIDAuNDk1MzI3LCAwLjU5OTIzOCwgMC43NjU1NTgsIDAuOTEwODc5LCAxLjExODc3IiwgXAotICAgICAgICAgICIwLjIyMDQyOSwgMC4zNzAxMjQsIDAuNTE1ODY3LCAwLjYxOTc2MywgMC43ODU5ODcsIDAuOTMxMzYsIDEuMTM5NDQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzY2NjEsIDAuMzU2MTk1LCAwLjY0MjQyLCAwLjg0Nzc4MywgMS4xNzY5MiwgMS40NjQ5MSwgMS44NzY2NiIsIFwKLSAgICAgICAgICAiMC4wNzY2MzIsIDAuMzU2MSwgMC42NDI0NzIsIDAuODQ3NjI4LCAxLjE3NjkyLCAxLjQ2NTI2LCAxLjg3NjgzIiwgXAotICAgICAgICAgICIwLjA3Njg0NywgMC4zNTYxODEsIDAuNjQyNTA2LCAwLjg0Nzc5NiwgMS4xNzcwNywgMS40NjQ1OCwgMS44NzY1OSIsIFwKLSAgICAgICAgICAiMC4wNzY2MTgsIDAuMzU2MTg5LCAwLjY0MjYyMiwgMC44NDc4NzUsIDEuMTc2OTksIDEuNDY1MDgsIDEuODc2OTQiLCBcCi0gICAgICAgICAgIjAuMDc2NjAzLCAwLjM1NjE0NywgMC42NDI1MDgsIDAuODQ4MTM2LCAxLjE3Njk5LCAxLjQ2NDYxLCAxLjg3NjU2IiwgXAotICAgICAgICAgICIwLjA3NzUwOSwgMC4zNTYyMTcsIDAuNjQyNDg4LCAwLjg0NzgzNywgMS4xNzY5OSwgMS40NjUyNSwgMS44NzY2MSIsIFwKLSAgICAgICAgICAiMC4wNzcyNjcsIDAuMzU2MjUsIDAuNjQyMzUyLCAwLjg0Nzc3OCwgMS4xNzY4NiwgMS40NjQ4NywgMS44NzY2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU1MzgxLCAwLjMxNTc5NSwgMC41NzYyNCwgMC43NjE5NTUsIDEuMDU5MzMsIDEuMzE5NTYsIDEuNjkyNTMiLCBcCi0gICAgICAgICAgIjAuMDY1MzYsIDAuMzI2MTE1LCAwLjU4NjYwNSwgMC43NzIzNDQsIDEuMDY5NzMsIDEuMzMwMTgsIDEuNzAyMjkiLCBcCi0gICAgICAgICAgIjAuMDc4MTg5LCAwLjMzOTEyNywgMC41OTk1MiwgMC43ODU0OTcsIDEuMDgyOCwgMS4zNDMwMiwgMS43MTU5OSIsIFwKLSAgICAgICAgICAiMC4wOTE4ODUsIDAuMzUyNCwgMC42MTI5NTEsIDAuNzk4ODEzLCAxLjA5NjA1LCAxLjM1NjI5LCAxLjcyODA3IiwgXAotICAgICAgICAgICIwLjEwNTEwNCwgMC4zNjUyNjIsIDAuNjI1NjYxLCAwLjgxMTk0MSwgMS4xMDkwNywgMS4zNjkyNSwgMS43NDExNiIsIFwKLSAgICAgICAgICAiMC4xMjU3ODYsIDAuMzg2MjM0LCAwLjY0NjY0MywgMC44MzI2MDUsIDEuMTMwNTEsIDEuMzkwMjQsIDEuNzYyMDciLCBcCi0gICAgICAgICAgIjAuMTQxOTU1LCAwLjQwNDUzLCAwLjY2NTA2NiwgMC44NTA4MzIsIDEuMTQ4NDgsIDEuNDA4NjIsIDEuNzgwMzQiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDEzNDksIDAuNjExMDQsIDEuMTIzMTEsIDEuNDkyMjYsIDIuMDc3MDEsIDIuNTgwODIsIDMuMzAwMjkiLCBcCi0gICAgICAgICAgIjAuMTAxNCwgMC42MTE3NzcsIDEuMTIzMDUsIDEuNDg3MjcsIDIuMDc3NDIsIDIuNTgwOTUsIDMuMzAwMzQiLCBcCi0gICAgICAgICAgIjAuMTAzODA1LCAwLjYxMjMzMSwgMS4xMjI4NSwgMS40ODI2OCwgMi4wNzcxMSwgMi41ODk2OSwgMy4yOTkwNyIsIFwKLSAgICAgICAgICAiMC4xMDg1MzIsIDAuNjEyMzI0LCAxLjEyMzIzLCAxLjQ4NzY1LCAyLjA3NzA2LCAyLjU4OTc5LCAzLjMwOTkzIiwgXAotICAgICAgICAgICIwLjExNTQxOSwgMC42MTIyNTEsIDEuMTIyODUsIDEuNDgyNTMsIDIuMDcwNjEsIDIuNTg5MDgsIDMuMzAzNDEiLCBcCi0gICAgICAgICAgIjAuMTI4Mjc0LCAwLjYxMDY1NiwgMS4xMjY0NSwgMS40ODQyNCwgMi4wNjQ0NywgMi41ODg5NCwgMy4zMDk3OCIsIFwKLSAgICAgICAgICAiMC4xNDA4NDQsIDAuNjEzODQ0LCAxLjEyMjgxLCAxLjQ4NTk0LCAyLjA3MDQ0LCAyLjU4MDcsIDMuMzA3MzkiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzM2ODIsIDAuMTgwNDE3LCAwLjMyNjk3OCwgMC40MzE5MDUsIDAuNTk5MzY1LCAwLjc0NjIxMywgMC45NTUyMjYiLCBcCi0gICAgICAgICAgIjAuMDQ1NDYyLCAwLjE5MTkwMSwgMC4zMzg1NjEsIDAuNDQzMzUxLCAwLjYxMDc1MywgMC43NTc0MjYsIDAuOTY2NzMxIiwgXAotICAgICAgICAgICIwLjA2MDM1MywgMC4yMDY4MTUsIDAuMzUzNDU5LCAwLjQ1NzY5OSwgMC42MjMxNDEsIDAuNzY5ODcyLCAwLjk3OTE0MiIsIFwKLSAgICAgICAgICAiMC4wNzUxOTMsIDAuMjIxNjk4LCAwLjM2NzQwOSwgMC40NzIxNjksIDAuNjQwMTE4LCAwLjc4NjI1MiwgMC45OTYxNjQiLCBcCi0gICAgICAgICAgIjAuMDg5Mzk3LCAwLjIzNjI2NywgMC4zODI4NDUsIDAuNDg3NTAyLCAwLjY1NTE2MywgMC44MDE3NzksIDEuMDA1NTEiLCBcCi0gICAgICAgICAgIjAuMTA5Nzc1LCAwLjI2MDc4OSwgMC40MDYzMTQsIDAuNTEwOTg1LCAwLjY3ODQ0OSwgMC44MjUxNDcsIDEuMDM0NTgiLCBcCi0gICAgICAgICAgIjAuMTI1NDA4LCAwLjI4MTg1NiwgMC40MjcxODMsIDAuNTMxNTcyLCAwLjY5OTA5NywgMC44NDU2OTMsIDEuMDU1MTQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTU4NDUsIDAuMzQ3MDMsIDAuNjM3Mzc1LCAwLjg0NTEzMywgMS4xNzkwNSwgMS40NjgzLCAxLjg5MDQ5IiwgXAotICAgICAgICAgICIwLjA1NjIzMSwgMC4zNDc4MDMsIDAuNjM3NDgzLCAwLjg0NjU1NywgMS4xODE3OSwgMS40Njg1MiwgMS44OTA2NSIsIFwKLSAgICAgICAgICAiMC4wNjAxODMsIDAuMzQ3NDQ1LCAwLjYzNzM2OCwgMC44NDYwOTUsIDEuMTc3NDIsIDEuNDcwNjUsIDEuODg0MTUiLCBcCi0gICAgICAgICAgIjAuMDY2NjIsIDAuMzQ2NjU4LCAwLjYzOTAxMiwgMC44NDY3MjMsIDEuMTc5MDEsIDEuNDY4NSwgMS44ODM4NyIsIFwKLSAgICAgICAgICAiMC4wNzQ4MjMsIDAuMzQ4MTQ0LCAwLjYzODU3OSwgMC44NDU1NzksIDEuMTc5MTUsIDEuNDcxNDgsIDEuODgzMzYiLCBcCi0gICAgICAgICAgIjAuMDg5ODg0LCAwLjM1MDY1LCAwLjYzODk4MywgMC44NDgwNjUsIDEuMTgxNTcsIDEuNDczMjgsIDEuODgzMjUiLCBcCi0gICAgICAgICAgIjAuMTAzOTE0LCAwLjM1NTU3NSwgMC42Mzg5NzcsIDAuODQ1MTMsIDEuMTc3NywgMS40NzA2NiwgMS44ODk5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQU4iOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1NjExLCAwLjAwNTY3MiwgMC4wMDU2OCwgMC4wMDU2ODMsIDAuMDA1Njg1LCAwLjAwNTY4NSwgMC4wMDU2ODYiLCBcCi0gICAgICAgICAgIjAuMDA1NjAxLCAwLjAwNTY2MiwgMC4wMDU2NzEsIDAuMDA1Njc1LCAwLjAwNTY3NSwgMC4wMDU2NzYsIDAuMDA1Njc3IiwgXAotICAgICAgICAgICIwLjAwNTU4OSwgMC4wMDU2NTMsIDAuMDA1NjYxLCAwLjAwNTY2NSwgMC4wMDU2NjgsIDAuMDA1NjcsIDAuMDA1NjY5IiwgXAotICAgICAgICAgICIwLjAwNTU3OSwgMC4wMDU2NDQsIDAuMDA1NjU0LCAwLjAwNTY1OCwgMC4wMDU2NiwgMC4wMDU2NjMsIDAuMDA1NjYyIiwgXAotICAgICAgICAgICIwLjAwNTU2OSwgMC4wMDU2MzcsIDAuMDA1NjQ5LCAwLjAwNTY1MSwgMC4wMDU2NTcsIDAuMDA1NjU3LCAwLjAwNTY1OCIsIFwKLSAgICAgICAgICAiMC4wMDU1NTYsIDAuMDA1NjI3LCAwLjAwNTY0LCAwLjAwNTY0NiwgMC4wMDU2NDksIDAuMDA1NjUsIDAuMDA1NjUyIiwgXAotICAgICAgICAgICIwLjAwNTU0OCwgMC4wMDU2MiwgMC4wMDU2MzQsIDAuMDA1NjQsIDAuMDA1NjQ1LCAwLjAwNTY0NywgMC4wMDU2NDYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNTY0OSwgMC4wMDU2OTgsIDAuMDA1NzA1LCAwLjAwNTcwNSwgMC4wMDU3MDgsIDAuMDA1NzA5LCAwLjAwNTcwOSIsIFwKLSAgICAgICAgICAiMC4wMDU2NDIsIDAuMDA1NjkzLCAwLjAwNTcsIDAuMDA1NzA0LCAwLjAwNTcwNCwgMC4wMDU3MDQsIDAuMDA1NzA0IiwgXAotICAgICAgICAgICIwLjAwNTYyNiwgMC4wMDU2OSwgMC4wMDU2OTgsIDAuMDA1Njk5LCAwLjAwNTcwMiwgMC4wMDU3MDIsIDAuMDA1NzAyIiwgXAotICAgICAgICAgICIwLjAwNTYxNiwgMC4wMDU2ODQsIDAuMDA1Njk1LCAwLjAwNTY5NywgMC4wMDU2OTksIDAuMDA1Njk5LCAwLjAwNTciLCBcCi0gICAgICAgICAgIjAuMDA1NjEsIDAuMDA1NjgyLCAwLjAwNTY5MiwgMC4wMDU2OTQsIDAuMDA1Njk3LCAwLjAwNTY5OSwgMC4wMDU2OTgiLCBcCi0gICAgICAgICAgIjAuMDA1NTgsIDAuMDA1NjY0LCAwLjAwNTY3OCwgMC4wMDU2ODIsIDAuMDA1Njg1LCAwLjAwNTY4NywgMC4wMDU2ODgiLCBcCi0gICAgICAgICAgIjAuMDA1NTc5LCAwLjAwNTY2MywgMC4wMDU2NzksIDAuMDA1NjgzLCAwLjAwNTY4NywgMC4wMDU2ODksIDAuMDA1NjkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDU5OSwgMC4wMDQ2MTcsIDAuMDA0NjE5LCAwLjAwNDYxOSwgMC4wMDQ2MiwgMC4wMDQ2MiwgMC4wMDQ2MiIsIFwKLSAgICAgICAgICAiMC4wMDQ1MiwgMC4wMDQ2MDIsIDAuMDA0NjEsIDAuMDA0NjEzLCAwLjAwNDYxNSwgMC4wMDQ2MTYsIDAuMDA0NjE1IiwgXAotICAgICAgICAgICIwLjAwNDQ2OSwgMC4wMDQ1ODQsIDAuMDA0NiwgMC4wMDQ2MDUsIDAuMDA0NjA5LCAwLjAwNDYxMSwgMC4wMDQ2MTMiLCBcCi0gICAgICAgICAgIjAuMDA0NDM4LCAwLjAwNDU2OCwgMC4wMDQ1OSwgMC4wMDQ1OTcsIDAuMDA0NjA0LCAwLjAwNDYwNywgMC4wMDQ2MTEiLCBcCi0gICAgICAgICAgIjAuMDA0NDIxLCAwLjAwNDU1NSwgMC4wMDQ1ODIsIDAuMDA0NTkxLCAwLjAwNDU5OSwgMC4wMDQ2MDMsIDAuMDA0NjA3IiwgXAotICAgICAgICAgICIwLjAwNDQwNywgMC4wMDQ1MzcsIDAuMDA0NTY5LCAwLjAwNDU4LCAwLjAwNDU5LCAwLjAwNDU5NiwgMC4wMDQ2MDEiLCBcCi0gICAgICAgICAgIjAuMDA0NDA2LCAwLjAwNDUyMywgMC4wMDQ1NTksIDAuMDA0NTcxLCAwLjAwNDU4NywgMC4wMDQ1OTEsIDAuMDA0NTk3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDAyMjksIDAuMDAwMjU3LCAwLjAwMDI1OSwgMC4wMDAyNiwgMC4wMDAyNjEsIDAuMDAwMjYsIDAuMDAwMjYxIiwgXAotICAgICAgICAgICIwLjAwMDE3NSwgMC4wMDAyODYsIDAuMDAwMjk4LCAwLjAwMDMwMiwgMC4wMDAzMDUsIDAuMDAwMzA3LCAwLjAwMDMwOCIsIFwKLSAgICAgICAgICAiMC4wMDAxMDEsIDAuMDAwMjcyLCAwLjAwMDI5NCwgMC4wMDAzMDIsIDAuMDAwMzA5LCAwLjAwMDMxMywgMC4wMDAzMTYiLCBcCi0gICAgICAgICAgIjAuMDAwMDQxLCAwLjAwMDI1MSwgMC4wMDAyODMsIDAuMDAwMjkzLCAwLjAwMDMwMiwgMC4wMDAzMDcsIDAuMDAwMzExIiwgXAotICAgICAgICAgICIwLjAwMDAxMiwgMC4wMDAyMzUsIDAuMDAwMjc1LCAwLjAwMDI4NywgMC4wMDAyOTgsIDAuMDAwMzA0LCAwLjAwMDMxIiwgXAotICAgICAgICAgICIwLjAwMDAyMiwgMC4wMDAyMTEsIDAuMDAwMjU5LCAwLjAwMDI3NSwgMC4wMDAyODksIDAuMDAwMjk3LCAwLjAwMDMwMyIsIFwKLSAgICAgICAgICAiMC4wMDAwMzQsIDAuMDAwMTkyLCAwLjAwMDI0NCwgMC4wMDAyNjQsIDAuMDAwMjgxLCAwLjAwMDI5LCAwLjAwMDI5OSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IE5PUjJCWEwgKgotICogLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoTk9SMkJYTCkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjA0NjIwODE7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEFOKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2NDAzMDY7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjQwMDc5OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDY0MDMwNjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyMDUsIDAuMDAwMTg2LCAwLjAwMDE3NiwgMC4wMDAxNzMsIDAuMDAwMTcyLCAwLjAwMDE2OSwgMC4wMDAxNyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTEyOSwgMC4wMDExMTYsIDAuMDAxMTA4LCAwLjAwMTEwNCwgMC4wMDExMDIsIDAuMDAxMSwgMC4wMDExIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2NTYxOTc7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjU2MTQ1OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDY1NjE5NzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAwNTUsIDAuMDAwMDU1LCAwLjAwMDA1NSwgMC4wMDAwNTUsIDAuMDAwMDU1LCAwLjAwMDA1NSwgMC4wMDAwNTUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyMTMsIDAuMDAwMjEzLCAwLjAwMDIxMywgMC4wMDAyMTMsIDAuMDAwMjEzLCAwLjAwMDIxMywgMC4wMDAyMTMiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4wNDI2Mzc0OwotICAgIGZ1bmN0aW9uIDogIighKCghQU4pK0IpKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQU4iOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMxNzg3NywgMC4zNjk2MDQsIDAuODM0NTI3LCAxLjYwOTcyLCAyLjM4MjkyLCA0LjE4ODYsIDUuMjIwMTMiLCBcCi0gICAgICAgICAgIjAuMzI5NjM4LCAwLjM4MTM5MSwgMC44NDU4OTQsIDEuNjIwNTIsIDIuMzk1LCA0LjIwMDM5LCA1LjIzMTk0IiwgXAotICAgICAgICAgICIwLjM0NDkwNCwgMC4zOTY2MjIsIDAuODYxMjE1LCAxLjYzNjA4LCAyLjQwOTk2LCA0LjIxNTU3LCA1LjI0NzE5IiwgXAotICAgICAgICAgICIwLjM2MDE3NSwgMC40MTE3MjUsIDAuODc2Mzg0LCAxLjY1MTExLCAyLjQyNTksIDQuMjMxMDMsIDUuMjYyMzkiLCBcCi0gICAgICAgICAgIjAuMzc0MzM1LCAwLjQyNTkyMywgMC44OTA1MTEsIDEuNjY1MjYsIDIuNDM5NzcsIDQuMjQ0OSwgNS4yNzY1MyIsIFwKLSAgICAgICAgICAiMC4zOTQ2OSwgMC40NDY0MDgsIDAuOTExMDY2LCAxLjY4NTY1LCAyLjQ2MDgyLCA0LjI2NTY2LCA1LjI5NzEiLCBcCi0gICAgICAgICAgIjAuNDEwODkzLCAwLjQ2MjUxNCwgMC45MjczMTQsIDEuNzAxNjMsIDIuNDc2MzQsIDQuMjgxNjksIDUuMzEzMjEiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuNTQyOTE4LCAwLjY0NDQwNywgMS41NTA0NiwgMy4wNjMwNCwgNC41ODE1OCwgOC4xMDQ0NywgMTAuMTE2MiIsIFwKLSAgICAgICAgICAiMC41NDI0MSwgMC42NDQzNCwgMS41NTUwNiwgMy4wNjY1OCwgNC41OTA5NywgOC4xMDQ0NSwgMTAuMTE1IiwgXAotICAgICAgICAgICIwLjU0MjksIDAuNjQ0MzM1LCAxLjU1NDEyLCAzLjA2MzkxLCA0LjU5MDgyLCA4LjEwNDM4LCAxMC4xMTYyIiwgXAotICAgICAgICAgICIwLjU0MzI3OSwgMC42NDYxMDQsIDEuNTUzOTUsIDMuMDc0NjIsIDQuNTc5MDMsIDguMTAwOTMsIDEwLjExNTEiLCBcCi0gICAgICAgICAgIjAuNTQzMjc2LCAwLjY0NDMxNywgMS41NjAxOCwgMy4wNjU3MiwgNC41OTA5MSwgOC4xMDQxMSwgMTAuMTE2MiIsIFwKLSAgICAgICAgICAiMC41NDMwMjcsIDAuNjQyMjg4LCAxLjU1NDEzLCAzLjA3NDAxLCA0LjU3Njk2LCA4LjEwNDM4LCAxMC4xMTUxIiwgXAotICAgICAgICAgICIwLjU0MzAzOCwgMC42NDQxNzYsIDEuNTU0MTMsIDMuMDY2MTksIDQuNTkwODIsIDguMTA0MTksIDEwLjExNTMiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTk3MzQzLCAwLjIyNzExNCwgMC40OTQ2NzcsIDAuOTQwNzU2LCAxLjM4NjMxLCAyLjQyNjQxLCAzLjAyMDEyIiwgXAotICAgICAgICAgICIwLjIwOTAxNywgMC4yMzg3ODUsIDAuNTA2NDQxLCAwLjk1MjQwNiwgMS4zOTc5OCwgMi40MzgwNSwgMy4wMzEzNCIsIFwKLSAgICAgICAgICAiMC4yMjM1MjQsIDAuMjUzMjkxLCAwLjUyMDg0OSwgMC45NjY1NTcsIDEuNDEyNDQsIDIuNDUyMjUsIDMuMDQ1ODIiLCBcCi0gICAgICAgICAgIjAuMjM3NjQyLCAwLjI2NzQxMiwgMC41MzQ5ODMsIDAuOTgwOTA5LCAxLjQyNjQ1LCAyLjQ2NjY3LCAzLjA2MDI0IiwgXAotICAgICAgICAgICIwLjI1MDExOCwgMC4yNzk4OTQsIDAuNTQ3NDg1LCAwLjk5MzA5LCAxLjQzOTI0LCAyLjQ3OTIxLCAzLjA3MjQiLCBcCi0gICAgICAgICAgIjAuMjY4MDczLCAwLjI5NzgyOSwgMC41NjUzNjYsIDEuMDEwOTksIDEuNDU3MDcsIDIuNDk2NjYsIDMuMDkwMyIsIFwKLSAgICAgICAgICAiMC4yODE5MjcsIDAuMzExNjY5LCAwLjU3OTI1LCAxLjAyNTE2LCAxLjQ3MTA5LCAyLjUxMDUzLCAzLjEwNDE1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMxOTU0NSwgMC4zNzgxNDgsIDAuOTA2ODE3LCAxLjc4NzM4LCAyLjY2ODc5LCA0LjcyMzA5LCA1Ljg5Nzg3IiwgXAotICAgICAgICAgICIwLjMxOTQzOSwgMC4zNzgxMzUsIDAuOTA2NzQ1LCAxLjc4NzY3LCAyLjY2ODQsIDQuNzIzNDEsIDUuODk3MzgiLCBcCi0gICAgICAgICAgIjAuMzE5NDYxLCAwLjM3ODA4NCwgMC45MDY2ODUsIDEuNzg3NjQsIDIuNjY3OTcsIDQuNzIzMjIsIDUuODk3NjgiLCBcCi0gICAgICAgICAgIjAuMzE5NDUyLCAwLjM3ODE5MSwgMC45MDY2NjgsIDEuNzg3ODMsIDIuNjY4NDksIDQuNzIyNTYsIDUuODk5NzciLCBcCi0gICAgICAgICAgIjAuMzE5NDIxLCAwLjM3ODI1NSwgMC45MDY2NzEsIDEuNzg3NDIsIDIuNjY4NSwgNC43MjQzMSwgNS45MDE2MiIsIFwKLSAgICAgICAgICAiMC4zMTk1MDcsIDAuMzc4MzIxLCAwLjkwNjc0NywgMS43ODcxNywgMi42Njc5NCwgNC43MjMzNywgNS45MDIwNiIsIFwKLSAgICAgICAgICAiMC4zMTk4MzMsIDAuMzc4NDMsIDAuOTA2NTc4LCAxLjc4Nzc4LCAyLjY2ODAxLCA0LjcyMzM1LCA1LjkwMjA4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI4MTA4LCAwLjMzMjgxOCwgMC43OTcyMTgsIDEuNTcyMzQsIDIuMzQ2MzEsIDQuMTUxNzIsIDUuMTgzNDIiLCBcCi0gICAgICAgICAgIjAuMjkxMzQ4LCAwLjM0MjkyMywgMC44MDc1NzgsIDEuNTgyNDIsIDIuMzU2NTQsIDQuMTYxOTYsIDUuMTkzNTIiLCBcCi0gICAgICAgICAgIjAuMzA0MjMyLCAwLjM1NTg4NywgMC44MjA3NCwgMS41OTU1MywgMi4zNzAwNiwgNC4xNzUsIDUuMjA2NjEiLCBcCi0gICAgICAgICAgIjAuMzE3MTkxLCAwLjM2ODg4NSwgMC44MzM5MDQsIDEuNjA4MjgsIDIuMzgzMjYsIDQuMTg4MzQsIDUuMjE5NyIsIFwKLSAgICAgICAgICAiMC4zMzAyNDgsIDAuMzgxODg5LCAwLjg0NzAxNiwgMS42MjExNCwgMi4zOTU3NiwgNC4yMDExNSwgNS4yMzI3NiIsIFwKLSAgICAgICAgICAiMC4zNTExMDEsIDAuNDAyODMyLCAwLjg2NzYwMSwgMS42NDIxLCAyLjQxNzM0LCA0LjIyMjE5LCA1LjI1MzY0IiwgXAotICAgICAgICAgICIwLjM2OTI4NCwgMC40MjA5NjQsIDAuODg2MjM0LCAxLjY2MDA2LCAyLjQzNTMyLCA0LjI0MDQxLCA1LjI3MTg4Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjU0MTkxMiwgMC42NDIzNTQsIDEuNTUzOTksIDMuMDYzODgsIDQuNTkxMDEsIDguMTA0NTEsIDEwLjExNTQiLCBcCi0gICAgICAgICAgIjAuNTQzMzIsIDAuNjQ0MzI3LCAxLjU1MTY1LCAzLjA2NCwgNC41OTA5MywgOC4xMDQxNiwgMTAuMTE0OSIsIFwKLSAgICAgICAgICAiMC41NDE4NDgsIDAuNjQ0MjcxLCAxLjU1MjA3LCAzLjA2MzU2LCA0LjU3ODE0LCA4LjEwNDMyLCAxMC4xMTYyIiwgXAotICAgICAgICAgICIwLjU0MzAxMiwgMC42NDI3ODUsIDEuNTUwNjksIDMuMDc0MTUsIDQuNTc4MzksIDguMTA0NDIsIDEwLjExNSIsIFwKLSAgICAgICAgICAiMC41NDMwMzUsIDAuNjQ0MjM2LCAxLjU1MDQ3LCAzLjA3MTA4LCA0LjU5MDk3LCA4LjEwNDE2LCAxMC4xMTUxIiwgXAotICAgICAgICAgICIwLjU0MzU3MywgMC42NDQzNiwgMS41NTExLCAzLjA3MTQ0LCA0LjU3NzQyLCA4LjEwMDY4LCAxMC4xMTYxIiwgXAotICAgICAgICAgICIwLjU0NTYwNCwgMC42NDUzMDQsIDEuNTUwMzYsIDMuMDcwNTQsIDQuNTkxMDgsIDguMTA0MjIsIDEwLjExNjEiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTYzOTg4LCAwLjE5MzY3MiwgMC40NjEwMTcsIDAuOTA2NDU2LCAxLjM1MjExLCAyLjM5MjQyLCAyLjk4NTUxIiwgXAotICAgICAgICAgICIwLjE3NjAzMywgMC4yMDU3MzIsIDAuNDczMDkyLCAwLjkxODYyNCwgMS4zNjQwNSwgMi40MDM1NiwgMi45OTc3NiIsIFwKLSAgICAgICAgICAiMC4xOTA4MjgsIDAuMjIwNTg2LCAwLjQ4NTAyMSwgMC45MzA4MDEsIDEuMzc2NjMsIDIuNDE1NDYsIDMuMDA5NTQiLCBcCi0gICAgICAgICAgIjAuMjA2Mzk2LCAwLjIzNTQ2MywgMC41MDI4MjYsIDAuOTQ0MzQsIDEuMzg5NywgMi40Mjk3NSwgMy4wMjMxNiIsIFwKLSAgICAgICAgICAiMC4yMjE1ODUsIDAuMjUwNTg2LCAwLjUxNzkzOSwgMC45NTc3OTgsIDEuNDAzNjksIDIuNDQzNTIsIDMuMDM2MjIiLCBcCi0gICAgICAgICAgIjAuMjQ1OTY0LCAwLjI3NTYwOSwgMC41NDE4MzUsIDAuOTg3NDE4LCAxLjQyNDUsIDIuNDY0NDIsIDMuMDU3ODYiLCBcCi0gICAgICAgICAgIjAuMjY3NDE3LCAwLjI5NzAyNiwgMC41NjI1NzIsIDEuMDA4MjMsIDEuNDUxNjUsIDIuNDg0MSwgMy4wNzcwNiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMTM4MjEsIDAuMzcyODU1LCAwLjkwMjI0LCAxLjc4ODc2LCAyLjY2NTc2LCA0LjcyMjYsIDUuODk1NzUiLCBcCi0gICAgICAgICAgIjAuMzEzNDU5LCAwLjM3MjU1NCwgMC45MDIxNTIsIDEuNzg3NzksIDIuNjY2NTIsIDQuNzI1NTMsIDUuODk1NjkiLCBcCi0gICAgICAgICAgIjAuMzEzNjY5LCAwLjM3Mjc2NCwgMC45MDI5NDYsIDEuNzg3ODQsIDIuNjY0MywgNC43MjEyNywgNS44OTU3OSIsIFwKLSAgICAgICAgICAiMC4zMTQ2MDEsIDAuMzcyNDMsIDAuOTAxMTczLCAxLjc4Mzc5LCAyLjY2NzU3LCA0LjcyNjE4LCA1Ljg5MzE0IiwgXAotICAgICAgICAgICIwLjMxNDcyNiwgMC4zNzM2NDgsIDAuOTAxMzE2LCAxLjc4MjY5LCAyLjY2NjQ4LCA0LjcyMTM4LCA1Ljg5NTc5IiwgXAotICAgICAgICAgICIwLjMxODUyNSwgMC4zNzQzODYsIDAuOTAxNjE5LCAxLjc4NDEsIDIuNjczMTIsIDQuNzIyOTYsIDUuODk1OSIsIFwKLSAgICAgICAgICAiMC4zMjM0MzEsIDAuMzc5MDQ1LCAwLjkwMjg2OCwgMS43ODY2OCwgMi42NjM5NywgNC43MjE4LCA1Ljg5NTkyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQU4iOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTAzNiwgMC4wMDEwMzUsIDAuMDAxMDM1LCAwLjAwMTAzNSwgMC4wMDEwMzUsIDAuMDAxMDM2LCAwLjAwMTAzNSIsIFwKLSAgICAgICAgICAiMC4wMDEwMTcsIDAuMDAxMDE3LCAwLjAwMTAxNywgMC4wMDEwMTcsIDAuMDAxMDE3LCAwLjAwMTAxNywgMC4wMDEwMTciLCBcCi0gICAgICAgICAgIjAuMDAxMDA3LCAwLjAwMTAwNywgMC4wMDEwMDcsIDAuMDAxMDA3LCAwLjAwMTAwNywgMC4wMDEwMDgsIDAuMDAxMDA4IiwgXAotICAgICAgICAgICIwLjAwMTAwMywgMC4wMDEwMDMsIDAuMDAxMDA0LCAwLjAwMTAwNCwgMC4wMDEwMDQsIDAuMDAxMDA0LCAwLjAwMTAwNCIsIFwKLSAgICAgICAgICAiMC4wMDEwMDIsIDAuMDAxMDAyLCAwLjAwMTAwMywgMC4wMDEwMDMsIDAuMDAxMDAzLCAwLjAwMTAwNCwgMC4wMDEwMDMiLCBcCi0gICAgICAgICAgIjAuMDAxMDAxLCAwLjAwMTAwMiwgMC4wMDEwMDMsIDAuMDAxMDA0LCAwLjAwMTAwNCwgMC4wMDEwMDQsIDAuMDAxMDA0IiwgXAotICAgICAgICAgICIwLjAwMTAwMiwgMC4wMDEwMDMsIDAuMDAxMDA1LCAwLjAwMTAwNSwgMC4wMDEwMDUsIDAuMDAxMDA1LCAwLjAwMTAwNSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTUzMiwgMC4wMDE1MzIsIDAuMDAxNTMyLCAwLjAwMTUzMiwgMC4wMDE1MzIsIDAuMDAxNTMyLCAwLjAwMTUzMSIsIFwKLSAgICAgICAgICAiMC4wMDE1MTksIDAuMDAxNTE5LCAwLjAwMTUyLCAwLjAwMTUxOSwgMC4wMDE1MTksIDAuMDAxNTE5LCAwLjAwMTUxOCIsIFwKLSAgICAgICAgICAiMC4wMDE1MSwgMC4wMDE1MTEsIDAuMDAxNTExLCAwLjAwMTUxMSwgMC4wMDE1MTEsIDAuMDAxNTExLCAwLjAwMTUxIiwgXAotICAgICAgICAgICIwLjAwMTUwNywgMC4wMDE1MDcsIDAuMDAxNTA4LCAwLjAwMTUwOCwgMC4wMDE1MDgsIDAuMDAxNTA4LCAwLjAwMTUwNyIsIFwKLSAgICAgICAgICAiMC4wMDE1MDQsIDAuMDAxNTA0LCAwLjAwMTUwNSwgMC4wMDE1MDUsIDAuMDAxNTA1LCAwLjAwMTUwNSwgMC4wMDE1MDUiLCBcCi0gICAgICAgICAgIjAuMDAxNTAzLCAwLjAwMTUwMywgMC4wMDE1MDUsIDAuMDAxNTA1LCAwLjAwMTUwNSwgMC4wMDE1MDUsIDAuMDAxNTA0IiwgXAotICAgICAgICAgICIwLjAwMTUwMiwgMC4wMDE1MDMsIDAuMDAxNTA1LCAwLjAwMTUwNSwgMC4wMDE1MDUsIDAuMDAxNTA1LCAwLjAwMTUwNSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDg2OCwgMC4wMDA4NjgsIDAuMDAwODY4LCAwLjAwMDg2OCwgMC4wMDA4NjgsIDAuMDAwODY4LCAwLjAwMDg2OCIsIFwKLSAgICAgICAgICAiMC4wMDA4NjUsIDAuMDAwODY2LCAwLjAwMDg2NywgMC4wMDA4NjgsIDAuMDAwODY4LCAwLjAwMDg2OCwgMC4wMDA4NjciLCBcCi0gICAgICAgICAgIjAuMDAwODYzLCAwLjAwMDg2NCwgMC4wMDA4NjYsIDAuMDAwODY3LCAwLjAwMDg2NywgMC4wMDA4NjgsIDAuMDAwODY4IiwgXAotICAgICAgICAgICIwLjAwMDg2MSwgMC4wMDA4NjIsIDAuMDAwODY1LCAwLjAwMDg2NywgMC4wMDA4NjcsIDAuMDAwODY4LCAwLjAwMDg2NyIsIFwKLSAgICAgICAgICAiMC4wMDA4NTksIDAuMDAwODYsIDAuMDAwODY0LCAwLjAwMDg2NiwgMC4wMDA4NjcsIDAuMDAwODY4LCAwLjAwMDg2NyIsIFwKLSAgICAgICAgICAiMC4wMDA4NTYsIDAuMDAwODU4LCAwLjAwMDg2MywgMC4wMDA4NjYsIDAuMDAwODY2LCAwLjAwMDg2NywgMC4wMDA4NjciLCBcCi0gICAgICAgICAgIjAuMDAwODU1LCAwLjAwMDg1NiwgMC4wMDA4NjIsIDAuMDAwODY1LCAwLjAwMDg2NiwgMC4wMDA4NjcsIDAuMDAwODY3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwMDMyLCAwLjAwMDAzMiwgMC4wMDAwMzMsIDAuMDAwMDMzLCAwLjAwMDAzMywgMC4wMDAwMzMsIDAuMDAwMDMzIiwgXAotICAgICAgICAgICIwLjAwMDAzNSwgMC4wMDAwMzYsIDAuMDAwMDM4LCAwLjAwMDAzOSwgMC4wMDAwMzksIDAuMDAwMDM5LCAwLjAwMDAzOSIsIFwKLSAgICAgICAgICAiMC4wMDAwMzMsIDAuMDAwMDM0LCAwLjAwMDAzOCwgMC4wMDAwNCwgMC4wMDAwNCwgMC4wMDAwNDEsIDAuMDAwMDQxIiwgXAotICAgICAgICAgICIwLjAwMDAzLCAwLjAwMDAzMiwgMC4wMDAwMzcsIDAuMDAwMDM5LCAwLjAwMDA0LCAwLjAwMDA0MSwgMC4wMDAwNDEiLCBcCi0gICAgICAgICAgIjAuMDAwMDI4LCAwLjAwMDAyOSwgMC4wMDAwMzYsIDAuMDAwMDM5LCAwLjAwMDA0LCAwLjAwMDA0MSwgMC4wMDAwNDEiLCBcCi0gICAgICAgICAgIjAuMDAwMDI0LCAwLjAwMDAyNiwgMC4wMDAwMzQsIDAuMDAwMDM4LCAwLjAwMDAzOSwgMC4wMDAwNCwgMC4wMDAwNDEiLCBcCi0gICAgICAgICAgIjAuMDAwMDIxLCAwLjAwMDAyMywgMC4wMDAwMzMsIDAuMDAwMDM3LCAwLjAwMDAzOSwgMC4wMDAwNCwgMC4wMDAwNDEiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IE5PUjJYMSAqCi0gKiAtLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKE5PUjJYMSkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjA0ODU5Mzc7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDgxOTU4NjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA4MTMzODk7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwODE5NTg2OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDI3MiwgMC4wMDAyODcsIDAuMDAwMjkxLCAwLjAwMDI5MywgMC4wMDAyOTQsIDAuMDAwMjk0LCAwLjAwMDI5NSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDMxMywgMC4wMDAzMTQsIDAuMDAwMzE0LCAwLjAwMDMxNCwgMC4wMDAzMTQsIDAuMDAwMzE0LCAwLjAwMDMxNCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwODYyMDI2OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDg2MTg2NDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA4NjIwMjY7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMDkxLCAwLjAwMDA5MSwgMC4wMDAwOTEsIDAuMDAwMDkxLCAwLjAwMDA5MSwgMC4wMDAwOTEsIDAuMDAwMDkxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzMyLCAwLjAwMDMzMiwgMC4wMDAzMzIsIDAuMDAwMzMyLCAwLjAwMDMzMiwgMC4wMDAzMzIsIDAuMDAwMzMyIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMDY0MjQ3NzsKLSAgICBmdW5jdGlvbiA6ICIoIShBK0IpKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTczMTU5LCAwLjI2MjAxLCAwLjc2NTcyNywgMS4yMTAwOCwgMS44MDE1NiwgMi45ODU0OSwgMy43MjQ5MSIsIFwKLSAgICAgICAgICAiMC4xODQ3MjksIDAuMjczNTI0LCAwLjc3NzM2NSwgMS4yMjA3OCwgMS44MTM0NCwgMi45OTY4OSwgMy43MzY1IiwgXAotICAgICAgICAgICIwLjE5NzY1OCwgMC4yODY1MTcsIDAuNzg5OTg4LCAxLjIzMzg3LCAxLjgyNjQxLCAzLjAwOTk5LCAzLjc0OTYxIiwgXAotICAgICAgICAgICIwLjIxMDE2MiwgMC4yOTkxMjUsIDAuODAyNTY5LCAxLjI0Njc1LCAxLjgzODk3LCAzLjAyMzI5LCAzLjc2MjE3IiwgXAotICAgICAgICAgICIwLjIyMjU5LCAwLjMxMTUzMywgMC44MTQ5NzMsIDEuMjU5MjIsIDEuODUxNTEsIDMuMDM1NDksIDMuNzc0OTkiLCBcCi0gICAgICAgICAgIjAuMjQyMjk4LCAwLjMzMTMwMywgMC44MzQ4ODYsIDEuMjc5MzcsIDEuODcxOTEsIDMuMDU0OTgsIDMuNzk0NjUiLCBcCi0gICAgICAgICAgIjAuMjU5NDIzLCAwLjM0ODQ5NywgMC44NTI2MiwgMS4yOTY2MSwgMS44ODg2OCwgMy4wNzI0MiwgMy44MTIxMiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMTc5MDcsIDAuNDkzMjAzLCAxLjQ3NTI3LCAyLjM0MjU4LCAzLjUyMDQyLCA1LjgxNzYzLCA3LjI1ODQyIiwgXAotICAgICAgICAgICIwLjMxNzg3NSwgMC40OTE5MjEsIDEuNDgwNzgsIDIuMzQ3NywgMy41MjA2NywgNS44MTc2LCA3LjI1Nzg0IiwgXAotICAgICAgICAgICIwLjMxODk4NCwgMC40OTE2OTQsIDEuNDc2NDMsIDIuMzU2ODIsIDMuNTIwNTYsIDUuODE4MTMsIDcuMjU3NzciLCBcCi0gICAgICAgICAgIjAuMzE4Nzk5LCAwLjQ5MTA2MiwgMS40NzgyOSwgMi4zNDQ4MSwgMy41MjA0NSwgNS44MTA5NCwgNy4yNTc5NyIsIFwKLSAgICAgICAgICAiMC4zMTkzNjgsIDAuNDkxODY3LCAxLjQ4NDMyLCAyLjM0NDIzLCAzLjUyMDUsIDUuODE1NjcsIDcuMjU4NTUiLCBcCi0gICAgICAgICAgIjAuMzIxNzM4LCAwLjQ5MzUxNCwgMS40Nzk0MiwgMi4zNDI1MywgMy40OTk5MSwgNS44MTcyOCwgNy4yNTc3NiIsIFwKLSAgICAgICAgICAiMC4zMjQ2NzEsIDAuNDk1MTA4LCAxLjQ3NTA3LCAyLjM0NTExLCAzLjUwODAzLCA1LjgxNjI2LCA3LjI1NzY5Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5OTkyOSwgMC4xNDk0NTUsIDAuNDI5NjkxLCAwLjY3NjY1NywgMS4wMDU4MiwgMS42NjQ1OCwgMi4wNzY2NSIsIFwKLSAgICAgICAgICAiMC4xMTE1MTgsIDAuMTYxMDc0LCAwLjQ0MTE3NCwgMC42ODg0NzgsIDEuMDE3OCwgMS42NzY0MywgMi4wODc3MyIsIFwKLSAgICAgICAgICAiMC4xMjY0MTUsIDAuMTc1NjM0LCAwLjQ1NDI0MiwgMC43MDMxNzMsIDEuMDMwODYsIDEuNjg5ODUsIDIuMTAwNzkiLCBcCi0gICAgICAgICAgIjAuMTQxNDI4LCAwLjE5MDU2NSwgMC40NzA1NDQsIDAuNzE2NjMsIDEuMDQyNzgsIDEuNzAxNDQsIDIuMTEyOTUiLCBcCi0gICAgICAgICAgIjAuMTU2NDcxLCAwLjIwNTg4LCAwLjQ4NTExMiwgMC43MzIyMTQsIDEuMDU1NzUsIDEuNzE0NjcsIDIuMTI2NDQiLCBcCi0gICAgICAgICAgIjAuMTgwMzgsIDAuMjI5OTQzLCAwLjUxMDAwMSwgMC43NTU3OCwgMS4wODQ4NSwgMS43MzU1LCAyLjE0NzU4IiwgXAotICAgICAgICAgICIwLjIwMTg4NCwgMC4yNTA4NjUsIDAuNTI5MzAxLCAwLjc3NjUxMSwgMS4xMDU1LCAxLjc2MjEyLCAyLjE2NTU5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE4MjksIDAuMjgwODk2LCAwLjgzNTgyOCwgMS4zMjU3NywgMS45Nzg0MiwgMy4yODM2NSwgNC4wOTk2MiIsIFwKLSAgICAgICAgICAiMC4xODI4NzgsIDAuMjgwOTExLCAwLjgzNTYxLCAxLjMyNTU3LCAxLjk3ODQ0LCAzLjI4NDE0LCA0LjA5OTU4IiwgXAotICAgICAgICAgICIwLjE4Mjk3MiwgMC4yODA5MDUsIDAuODM1ODY2LCAxLjMyNTQ4LCAxLjk3ODExLCAzLjI4MzY0LCA0LjA5OTcyIiwgXAotICAgICAgICAgICIwLjE4NDM1MywgMC4yODA5NDMsIDAuODM2MDc5LCAxLjMyNTM5LCAxLjk3ODA3LCAzLjI4MzQyLCA0LjEwMDA5IiwgXAotICAgICAgICAgICIwLjE4NzU0NywgMC4yODIwMjQsIDAuODM1ODY1LCAxLjMyNTI3LCAxLjk3ODEsIDMuMjgzNDIsIDQuMTAwMjIiLCBcCi0gICAgICAgICAgIjAuMTk1MjM0LCAwLjI4NjU1MywgMC44MzYwMjEsIDEuMzI1MzksIDEuOTc4MTMsIDMuMjg2MTgsIDQuMDk5NDMiLCBcCi0gICAgICAgICAgIjAuMjAzMywgMC4yOTI0NDQsIDAuODM1Nzg1LCAxLjMyNTQzLCAxLjk3ODQ2LCAzLjI4MzQ5LCA0LjA5OTg0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE2NjgsIDAuMjU1NzM5LCAwLjc1ODg1MiwgMS4yMDMyMywgMS43OTYyMiwgMi45NzkzMSwgMy43MTg2MyIsIFwKLSAgICAgICAgICAiMC4xNzY5OTQsIDAuMjY2MDQ4LCAwLjc2OTM1MiwgMS4yMTM2OSwgMS44MDY2NywgMi45ODkzNSwgMy43Mjg5NyIsIFwKLSAgICAgICAgICAiMC4xODk5NDYsIDAuMjc4OTc0LCAwLjc4MjYwNywgMS4yMjcwOSwgMS44MTg3MiwgMy4wMDI5NiwgMy43NDIxIiwgXAotICAgICAgICAgICIwLjIwMjkzNywgMC4yOTE5MTUsIDAuNzk1MDg1LCAxLjIzOTcxLCAxLjgzMTQ4LCAzLjAxNjEsIDMuNzU1MTMiLCBcCi0gICAgICAgICAgIjAuMjE1OTE2LCAwLjMwNDk5NiwgMC44MDg5MDUsIDEuMjUzMDYsIDEuODQ1MjcsIDMuMDI4NTQsIDMuNzY4MjEiLCBcCi0gICAgICAgICAgIjAuMjM2ODcyLCAwLjMyNTgxNCwgMC44Mjk1NTUsIDEuMjczNTIsIDEuODY2MjQsIDMuMDQ5NzcsIDMuNzg5NDYiLCBcCi0gICAgICAgICAgIjAuMjU1MzIzLCAwLjM0NDEzNywgMC44NDc3NTksIDEuMjkxODEsIDEuODg0MzYsIDMuMDY3ODYsIDMuODA3NTMiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzE4NjA2LCAwLjQ5MzE1NSwgMS40NzgyMiwgMi4zNTAyNywgMy40OTkzNSwgNS44MTc3MiwgNy4yNTgzOSIsIFwKLSAgICAgICAgICAiMC4zMTg4NDMsIDAuNDkxMzc2LCAxLjQ3OTY2LCAyLjM1MDcxLCAzLjUwMDUxLCA1LjgxNjExLCA3LjI1ODA3IiwgXAotICAgICAgICAgICIwLjMxODg2NiwgMC40OTE0MTksIDEuNDc1LCAyLjM0MjQ2LCAzLjUyMDQ0LCA1LjgxNzg5LCA3LjI1ODM4IiwgXAotICAgICAgICAgICIwLjMxODg5LCAwLjQ5MzAzOSwgMS40NzU1NiwgMi4zNDQ0OCwgMy41MDczMiwgNS44MTgsIDcuMjU3NzYiLCBcCi0gICAgICAgICAgIjAuMzIwMTA5LCAwLjQ5MzEyLCAxLjQ3NDc1LCAyLjM0MjgsIDMuNTAwNjksIDUuODE2ODIsIDcuMjU4MTUiLCBcCi0gICAgICAgICAgIjAuMzI0OTk0LCAwLjQ5Mzk5MiwgMS40NzYwMiwgMi4zNDk2NywgMy41MjA4LCA1LjgxNjA2LCA3LjI1NTgyIiwgXAotICAgICAgICAgICIwLjMzMTM0MywgMC40OTY4NiwgMS40NzkzNCwgMi4zNTc5MiwgMy41MDIwMywgNS44MTcxMSwgNy4yNTgyOSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTUwNjgsIDAuMTQ0NDgzLCAwLjQyNDUxNywgMC42NzE2NzMsIDEuMDAwNTcsIDEuNjU4NzYsIDIuMDcxMjIiLCBcCi0gICAgICAgICAgIjAuMTA2ODk2LCAwLjE1NjM2NSwgMC40MzYyMjMsIDAuNjgzMTIsIDEuMDEzLCAxLjY3MTc3LCAyLjA4MjI4IiwgXAotICAgICAgICAgICIwLjEyMTU0LCAwLjE3MDkwOCwgMC40NDkwNTUsIDAuNjk2MjExLCAxLjAyNTkyLCAxLjY4NTAyLCAyLjA5NTkxIiwgXAotICAgICAgICAgICIwLjEzNjgyLCAwLjE4NTgxOCwgMC40NjU2NDgsIDAuNzExNDM0LCAxLjAzNzg5LCAxLjY5NjYyLCAyLjEwNzc2IiwgXAotICAgICAgICAgICIwLjE1MTgxLCAwLjIwMTE2MiwgMC40ODAzMDEsIDAuNzI3MTY0LCAxLjA1MDc3LCAxLjcwOTUzLCAyLjEyMTQzIiwgXAotICAgICAgICAgICIwLjE3NTYyMiwgMC4yMjUxNjMsIDAuNTA1MDE5LCAwLjc1MDg4MSwgMS4wNzk4OSwgMS43MzA1MSwgMi4xNDI3OCIsIFwKLSAgICAgICAgICAiMC4xOTcwNTEsIDAuMjQ2MDA4LCAwLjUyNDQ2MSwgMC43NzE2MzgsIDEuMTAwNSwgMS43NDkwMiwgMi4xNjA2MSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNzgyMTksIDAuMjc1NzUsIDAuODMxMDY3LCAxLjMyMjY2LCAxLjk3ODc1LCAzLjI4MjU5LCA0LjEwMDciLCBcCi0gICAgICAgICAgIjAuMTc4MDI3LCAwLjI3NjE0NSwgMC44MzEwNDMsIDEuMzIyOCwgMS45NzY0MywgMy4yODMzNCwgNC4xMDI2IiwgXAotICAgICAgICAgICIwLjE3NzcyNCwgMC4yNzU1NzcsIDAuODMxMjg2LCAxLjMyMTM5LCAxLjk3NDY5LCAzLjI4NTQ1LCA0LjEwNjMiLCBcCi0gICAgICAgICAgIjAuMTc5OTIxLCAwLjI3NjM5NywgMC44MzMyNjIsIDEuMzIwODksIDEuOTc0NTksIDMuMjgxNDgsIDQuMTA0OTEiLCBcCi0gICAgICAgICAgIjAuMTgzMzI4LCAwLjI3Nzk4NiwgMC44MzE0NzcsIDEuMzIxMzgsIDEuOTc1MTQsIDMuMjgyNjcsIDQuMTA3NjIiLCBcCi0gICAgICAgICAgIjAuMTkxMzM4LCAwLjI4MjY4OCwgMC44MzM3OTYsIDEuMzIxMjcsIDEuOTczOTEsIDMuMjkxNzgsIDQuMDk4NTciLCBcCi0gICAgICAgICAgIjAuMTk5Mjk2LCAwLjI4ODQ4MiwgMC44MzIzODcsIDEuMzIxOCwgMS45ODAxMywgMy4yODExNywgNC4xMDY3NiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTQyMiwgMC4wMDE0MjIsIDAuMDAxNDIzLCAwLjAwMTQyMiwgMC4wMDE0MjIsIDAuMDAxNDIzLCAwLjAwMTQyMyIsIFwKLSAgICAgICAgICAiMC4wMDE0MTcsIDAuMDAxNDE5LCAwLjAwMTQyMiwgMC4wMDE0MjIsIDAuMDAxNDIzLCAwLjAwMTQyMywgMC4wMDE0MjMiLCBcCi0gICAgICAgICAgIjAuMDAxNDEzLCAwLjAwMTQxNiwgMC4wMDE0MiwgMC4wMDE0MjEsIDAuMDAxNDIyLCAwLjAwMTQyMiwgMC4wMDE0MjIiLCBcCi0gICAgICAgICAgIjAuMDAxNDA5LCAwLjAwMTQxMywgMC4wMDE0MTksIDAuMDAxNDIsIDAuMDAxNDIyLCAwLjAwMTQyMywgMC4wMDE0MjIiLCBcCi0gICAgICAgICAgIjAuMDAxNDA2LCAwLjAwMTQwOSwgMC4wMDE0MTgsIDAuMDAxNDIsIDAuMDAxNDIxLCAwLjAwMTQyMiwgMC4wMDE0MjIiLCBcCi0gICAgICAgICAgIjAuMDAxNDAyLCAwLjAwMTQwOCwgMC4wMDE0MTcsIDAuMDAxNDE5LCAwLjAwMTQyLCAwLjAwMTQyMSwgMC4wMDE0MjEiLCBcCi0gICAgICAgICAgIjAuMDAxMzk5LCAwLjAwMTQwNSwgMC4wMDE0MTUsIDAuMDAxNDE4LCAwLjAwMTQyLCAwLjAwMTQyMSwgMC4wMDE0MjEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDAzNzQsIDAuMDAwMzc0LCAwLjAwMDM3NSwgMC4wMDAzNzQsIDAuMDAwMzc0LCAwLjAwMDM3NCwgMC4wMDAzNzMiLCBcCi0gICAgICAgICAgIjAuMDAwMzU4LCAwLjAwMDM2LCAwLjAwMDM2MSwgMC4wMDAzNjIsIDAuMDAwMzYyLCAwLjAwMDM2MSwgMC4wMDAzNjEiLCBcCi0gICAgICAgICAgIjAuMDAwMzUyLCAwLjAwMDM1NSwgMC4wMDAzNTgsIDAuMDAwMzU5LCAwLjAwMDM1OSwgMC4wMDAzNTgsIDAuMDAwMzU4IiwgXAotICAgICAgICAgICIwLjAwMDM0NywgMC4wMDAzNTEsIDAuMDAwMzU2LCAwLjAwMDM1NywgMC4wMDAzNTcsIDAuMDAwMzU3LCAwLjAwMDM1NiIsIFwKLSAgICAgICAgICAiMC4wMDAzNDQsIDAuMDAwMzQ4LCAwLjAwMDM1NSwgMC4wMDAzNTYsIDAuMDAwMzU2LCAwLjAwMDM1NiwgMC4wMDAzNTYiLCBcCi0gICAgICAgICAgIjAuMDAwMzM5LCAwLjAwMDM0NCwgMC4wMDAzNTQsIDAuMDAwMzU1LCAwLjAwMDM1NiwgMC4wMDAzNTUsIDAuMDAwMzU1IiwgXAotICAgICAgICAgICIwLjAwMDMzNywgMC4wMDAzNDIsIDAuMDAwMzUyLCAwLjAwMDM1NCwgMC4wMDAzNTUsIDAuMDAwMzU1LCAwLjAwMDM1NSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTE3MSwgMC4wMDExNzIsIDAuMDAxMTczLCAwLjAwMTE3MywgMC4wMDExNzMsIDAuMDAxMTczLCAwLjAwMTE3MyIsIFwKLSAgICAgICAgICAiMC4wMDExNjQsIDAuMDAxMTY3LCAwLjAwMTE3MSwgMC4wMDExNzMsIDAuMDAxMTcyLCAwLjAwMTE3MywgMC4wMDExNzMiLCBcCi0gICAgICAgICAgIjAuMDAxMTU3LCAwLjAwMTE2MiwgMC4wMDExNjksIDAuMDAxMTcxLCAwLjAwMTE3MSwgMC4wMDExNzIsIDAuMDAxMTcyIiwgXAotICAgICAgICAgICIwLjAwMTE1MSwgMC4wMDExNTgsIDAuMDAxMTY3LCAwLjAwMTE2OSwgMC4wMDExNzEsIDAuMDAxMTcyLCAwLjAwMTE3MSIsIFwKLSAgICAgICAgICAiMC4wMDExNDYsIDAuMDAxMTUzLCAwLjAwMTE2NiwgMC4wMDExNjgsIDAuMDAxMTcsIDAuMDAxMTcxLCAwLjAwMTE3MSIsIFwKLSAgICAgICAgICAiMC4wMDExNCwgMC4wMDExNDksIDAuMDAxMTYzLCAwLjAwMTE2NiwgMC4wMDExNjgsIDAuMDAxMTcsIDAuMDAxMTcxIiwgXAotICAgICAgICAgICIwLjAwMTEzNywgMC4wMDExNDUsIDAuMDAxMTYxLCAwLjAwMTE2NSwgMC4wMDExNjgsIDAuMDAxMTY5LCAwLjAwMTE3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwMDcsIDAuMDAwMDcxLCAwLjAwMDA3MiwgMC4wMDAwNzIsIDAuMDAwMDcyLCAwLjAwMDA3MiwgMC4wMDAwNzIiLCBcCi0gICAgICAgICAgIjAuMDAwMDczLCAwLjAwMDA3NywgMC4wMDAwODIsIDAuMDAwMDgzLCAwLjAwMDA4NCwgMC4wMDAwODQsIDAuMDAwMDg1IiwgXAotICAgICAgICAgICIwLjAwMDA2NSwgMC4wMDAwNzMsIDAuMDAwMDgzLCAwLjAwMDA4NCwgMC4wMDAwODYsIDAuMDAwMDg3LCAwLjAwMDA4NyIsIFwKLSAgICAgICAgICAiMC4wMDAwNTcsIDAuMDAwMDY2LCAwLjAwMDA4MSwgMC4wMDAwODQsIDAuMDAwMDg2LCAwLjAwMDA4NywgMC4wMDAwODciLCBcCi0gICAgICAgICAgIjAuMDAwMDUsIDAuMDAwMDYxLCAwLjAwMDA3OSwgMC4wMDAwODIsIDAuMDAwMDg1LCAwLjAwMDA4NywgMC4wMDAwODciLCBcCi0gICAgICAgICAgIjAuMDAwMDQxLCAwLjAwMDA1NCwgMC4wMDAwNzUsIDAuMDAwMDgsIDAuMDAwMDgzLCAwLjAwMDA4NiwgMC4wMDAwODciLCBcCi0gICAgICAgICAgIjAuMDAwMDM1LCAwLjAwMDA0OSwgMC4wMDAwNzMsIDAuMDAwMDc5LCAwLjAwMDA4MiwgMC4wMDAwODUsIDAuMDAwMDg2Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBOT1IyWDIgKgotICogLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChOT1IyWDIpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4wOTcxODY1OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE3MDUwMzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE2OTI2NzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE3MDUwMzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA1NDUsIDAuMDAwNTc1LCAwLjAwMDU4MywgMC4wMDA1ODYsIDAuMDAwNTg3LCAwLjAwMDU4OSwgMC4wMDA1OSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDYyNywgMC4wMDA2MjcsIDAuMDAwNjI4LCAwLjAwMDYyNSwgMC4wMDA2MjgsIDAuMDAwNjI4LCAwLjAwMDYyOCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNTgwNzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE1ODA1OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTU4MDc7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMTgyLCAwLjAwMDE4MiwgMC4wMDAxODIsIDAuMDAwMTgyLCAwLjAwMDE4MiwgMC4wMDAxODIsIDAuMDAwMTgyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNjg0LCAwLjAwMDY4NCwgMC4wMDA2ODQsIDAuMDAwNjg0LCAwLjAwMDY4MywgMC4wMDA2ODMsIDAuMDAwNjgzIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMTM1MjI2OwotICAgIGZ1bmN0aW9uIDogIighKEErQikpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTg4OTksIDAuNDY3MDgyLCAwLjc2MTQ4NywgMS4xMzAwMiwgMS40OTc2LCAxLjg2NjY1LCAyLjIzNDI3IiwgXAotICAgICAgICAgICIwLjExMDM3MywgMC40Nzg2MjQsIDAuNzczMjA3LCAxLjE0MTgyLCAxLjUwOTMzLCAxLjg3Nzg0LCAyLjI0NjI5IiwgXAotICAgICAgICAgICIwLjEyMzM1NSwgMC40OTE4MiwgMC43ODYyODYsIDEuMTU0ODgsIDEuNTIyMzgsIDEuODkwNjIsIDIuMjU4ODEiLCBcCi0gICAgICAgICAgIjAuMTM1ODg3LCAwLjUwNDMyNCwgMC43OTg3NTksIDEuMTY2ODUsIDEuNTM1ODMsIDEuOTAzMTQsIDIuMjcxMzEiLCBcCi0gICAgICAgICAgIjAuMTQ4MjEsIDAuNTE2ODU0LCAwLjgxMTI0NiwgMS4xNzkzMSwgMS41NDc2NywgMS45MTYzNCwgMi4yODQ1NyIsIFwKLSAgICAgICAgICAiMC4xNjc5NDYsIDAuNTM2NjI1LCAwLjgzMTI2NiwgMS4xOTkwOCwgMS41Njc5NiwgMS45MzUwOSwgMi4zMDM5MiIsIFwKLSAgICAgICAgICAiMC4xODUwNzksIDAuNTUzOTU1LCAwLjg0ODg4OCwgMS4yMTY1OCwgMS41ODQ1LCAxLjk1MjMzLCAyLjMyMDY1Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE3MzMwNCwgMC44OTU2MTYsIDEuNDczMSwgMi4xODc5MSwgMi45MTcxOSwgMy42MjY0NiwgNC4zNDczMiIsIFwKLSAgICAgICAgICAiMC4xNzMyOTMsIDAuODk1MzE1LCAxLjQ3MzMsIDIuMTg4NjEsIDIuOTE3NCwgMy42Mjc3LCA0LjM0NzQ4IiwgXAotICAgICAgICAgICIwLjE3MzM5NCwgMC44OTI1MzgsIDEuNDczMzUsIDIuMTg3NjcsIDIuOTE3MTMsIDMuNjI3NzMsIDQuMzYyMTYiLCBcCi0gICAgICAgICAgIjAuMTc0NywgMC44OTUzMjQsIDEuNDcxNzMsIDIuMTg5OCwgMi45MDc1MiwgMy42NDAwNSwgNC4zNDgzMyIsIFwKLSAgICAgICAgICAiMC4xNzYwNzksIDAuODk1NDg5LCAxLjQ3MTcsIDIuMTkzMDIsIDIuOTE3NjMsIDMuNjI3NzUsIDQuMzQ3NzciLCBcCi0gICAgICAgICAgIjAuMTgxMTA1LCAwLjg5ODE4NSwgMS40NzMsIDIuMTkzMzgsIDIuOTA4LCAzLjYzODc3LCA0LjM0NzQ3IiwgXAotICAgICAgICAgICIwLjE4NjczOSwgMC44OTU1MjUsIDEuNDY4NTEsIDIuMjAyMzgsIDIuOTE2NzUsIDMuNjM1MiwgNC4zNTcwNSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTg2OTQsIDAuMjY1MDk0LCAwLjQyOTkzNiwgMC42MzU3MjcsIDAuODQxNjMyLCAxLjA0NzQ2LCAxLjI1MzU1IiwgXAotICAgICAgICAgICIwLjA3MDM0LCAwLjI3NjI1OCwgMC40NDA5NTYsIDAuNjQ2Nzg3LCAwLjg1MjY3OCwgMS4wNTgzNCwgMS4yNjQzOCIsIFwKLSAgICAgICAgICAiMC4wODUzOTgsIDAuMjkxMzI5LCAwLjQ1NDQ5LCAwLjY2MDQ1MywgMC44NjYyNjgsIDEuMDcyMTIsIDEuMjc5MzciLCBcCi0gICAgICAgICAgIjAuMTAwMTk1LCAwLjMwNTk2OSwgMC40NzA2MzUsIDAuNjc1ODk0LCAwLjg3ODEzNiwgMS4wODQwNywgMS4yODk5IiwgXAotICAgICAgICAgICIwLjExNTM5OCwgMC4zMjA2NDIsIDAuNDg1Mzc3LCAwLjY5MTE3OSwgMC44OTYzODQsIDEuMDk3NSwgMS4zMDM0MyIsIFwKLSAgICAgICAgICAiMC4xMzk1NzgsIDAuMzQ0NTI2LCAwLjUwODg3NywgMC43MTQ4NjksIDAuOTIwNDQ0LCAxLjEyNjI0LCAxLjMzMDk3IiwgXAotICAgICAgICAgICIwLjE1OTc2NiwgMC4zNjYzMDUsIDAuNTI5NTY0LCAwLjczNTQ3NywgMC45NDEyOTQsIDEuMTQ3MjgsIDEuMzUyNjEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTAxNTcyLCAwLjUwOTk0NSwgMC44MzY0MDEsIDEuMjQ0NTQsIDEuNjUyMzIsIDIuMDYwMjEsIDIuNDY4NjQiLCBcCi0gICAgICAgICAgIjAuMTAxNTEyLCAwLjUwOTc2OCwgMC44MzYxMjMsIDEuMjQ0MDEsIDEuNjUyMTIsIDIuMDU5NzksIDIuNDY4NjYiLCBcCi0gICAgICAgICAgIjAuMTAyODc0LCAwLjUwOTk1NywgMC44MzYzMzUsIDEuMjQ0MjQsIDEuNjUyNjQsIDIuMDYwMTQsIDIuNDY3MzIiLCBcCi0gICAgICAgICAgIjAuMTA2OTgyLCAwLjUwOTk0LCAwLjgzNjM4OCwgMS4yNDQyNiwgMS42NTI1NCwgMi4wNjAxMSwgMi40NjgwMyIsIFwKLSAgICAgICAgICAiMC4xMTIzNzQsIDAuNTA5NzkxLCAwLjgzNjMzMiwgMS4yNDQyMSwgMS42NTIzMSwgMi4wNjAyLCAyLjQ2ODQzIiwgXAotICAgICAgICAgICIwLjEyMzQ4OSwgMC41MTAwMzIsIDAuODM2MTU4LCAxLjI0NDIzLCAxLjY1MjQyLCAyLjA2MDE2LCAyLjQ2ODIxIiwgXAotICAgICAgICAgICIwLjEzNDYxOSwgMC41MTE2NjksIDAuODM2Mzg3LCAxLjI0NDI1LCAxLjY1MjE4LCAyLjA2MDQsIDIuNDY4MTciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDkyNDk3LCAwLjQ2MDgwMiwgMC43NTU0OTUsIDEuMTIzMTMsIDEuNDkxODcsIDEuODU5MzMsIDIuMjI3MTIiLCBcCi0gICAgICAgICAgIjAuMTAyNjE0LCAwLjQ3MTE1MiwgMC43NjU2NDgsIDEuMTMzNzcsIDEuNTAxNjcsIDEuODY5MzQsIDIuMjM4NjYiLCBcCi0gICAgICAgICAgIjAuMTE1NDQsIDAuNDg0MDIxLCAwLjc3ODQ1MSwgMS4xNDY0OCwgMS41MTQ3OCwgMS44ODI2NywgMi4yNTEyNiIsIFwKLSAgICAgICAgICAiMC4xMjkxMDgsIDAuNDk3NTI2LCAwLjc5MjQzNCwgMS4xNjA1OCwgMS41MjgwMiwgMS44OTY4OCwgMi4yNjQ1NCIsIFwKLSAgICAgICAgICAiMC4xNDIwODUsIDAuNTEwMTg4LCAwLjgwNDkwOCwgMS4xNzMwOSwgMS41NDA3LCAxLjkwOTM4LCAyLjI3Njk4IiwgXAotICAgICAgICAgICIwLjE2MzUzNywgMC41MzA5NjcsIDAuODI1NDUxLCAxLjE5NDEsIDEuNTYxNjgsIDEuOTMwMDgsIDIuMjk4NzQiLCBcCi0gICAgICAgICAgIjAuMTgyMjc2LCAwLjU0OTMzMSwgMC44NDM5MzgsIDEuMjExODcsIDEuNTgwMTMsIDEuOTQ4MDQsIDIuMzE2OCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNzMyOSwgMC44OTI2NDQsIDEuNDY4MTgsIDIuMTk0OSwgMi45MDc2MywgMy42NDAxLCA0LjM1MDM2IiwgXAotICAgICAgICAgICIwLjE3MzMwOCwgMC44OTIxNTksIDEuNDY4NCwgMi4xODg5NywgMi45MTczNSwgMy42MzkxMiwgNC4zNDg0OCIsIFwKLSAgICAgICAgICAiMC4xNzM0NzksIDAuODk1NTIxLCAxLjQ3MTc5LCAyLjE5NDY2LCAyLjkxNzQzLCAzLjYzMTU4LCA0LjM2MjI3IiwgXAotICAgICAgICAgICIwLjE3NTg4MiwgMC44OTQ4NTEsIDEuNDY4MzcsIDIuMTg4MzMsIDIuOTE0MjMsIDMuNjI3NjksIDQuMzYxOSIsIFwKLSAgICAgICAgICAiMC4xODAyOTIsIDAuODk1NjYsIDEuNDY4NDUsIDIuMTg4MzEsIDIuOTE0MzksIDMuNjI3NjIsIDQuMzYxODciLCBcCi0gICAgICAgICAgIjAuMTg5NTY2LCAwLjg5NDU5NCwgMS40NzI4LCAyLjE4ODMyLCAyLjkxNDU0LCAzLjY0MDE2LCA0LjM0NzY0IiwgXAotICAgICAgICAgICIwLjE5OTI0MywgMC44OTc5MTgsIDEuNDcyODYsIDIuMjAxNDEsIDIuOTE2OTIsIDMuNjM1ODYsIDQuMzQ2OTkiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU0OTM2LCAwLjI2NDQxMywgMC40MzIyLCAwLjY0MTMzLCAwLjg1MDk1NiwgMS4wNjA0NiwgMS4yNjk4MSIsIFwKLSAgICAgICAgICAiMC4wNjY2ODksIDAuMjc2MzMxLCAwLjQ0MzkxMywgMC42NTMzMjgsIDAuODYyNjQyLCAxLjA3MjAyLCAxLjI4MTMiLCBcCi0gICAgICAgICAgIjAuMDgxNjI3LCAwLjI5MDg5NCwgMC40NTgzNzIsIDAuNjY3NzQ3LCAwLjg3NzEyMSwgMS4wODY0NSwgMS4yOTYwNyIsIFwKLSAgICAgICAgICAiMC4wOTY0NjYsIDAuMzA1NTA3LCAwLjQ3MzAyOCwgMC42ODE2MTgsIDAuODg3OTg0LCAxLjA5NzEzLCAxLjMwNzIzIiwgXAotICAgICAgICAgICIwLjExMTcxOCwgMC4zMjAzNjksIDAuNDg2NzcsIDAuNjk2MDk1LCAwLjkwNTg5NSwgMS4xMTQ4NywgMS4zMjUwNyIsIFwKLSAgICAgICAgICAiMC4xMzU0NzgsIDAuMzQzODk2LCAwLjUxMTIwMiwgMC43MjA4MTksIDAuOTI5OTQzLCAxLjEzOTQzLCAxLjM0NzUyIiwgXAotICAgICAgICAgICIwLjE1NTExMiwgMC4zNjU3MjMsIDAuNTMxNzg4LCAwLjc0MTI0NSwgMC45NTA2ODYsIDEuMTYwMDksIDEuMzY5MjgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk4MTYsIDAuNTE0NTQ3LCAwLjg0NjE2OCwgMS4yNjQ1NiwgMS42NzcyOCwgMi4wOTIwMiwgMi41MTM2OSIsIFwKLSAgICAgICAgICAiMC4wOTgxNTgsIDAuNTEzOTYxLCAwLjg0Njk5NSwgMS4yNjMzOSwgMS42NzY5NywgMi4wOTEsIDIuNTA5MTMiLCBcCi0gICAgICAgICAgIjAuMDk5Nzc4LCAwLjUxMzExOSwgMC44NDU2MjgsIDEuMjYwOCwgMS42NzYwMSwgMi4wOTkzMSwgMi41MTEzNiIsIFwKLSAgICAgICAgICAiMC4xMDQyMTIsIDAuNTE0OTAxLCAwLjg0NTQ0NSwgMS4yNjA4NywgMS42NzY1OCwgMi4wOTc3NSwgMi41MDkzOSIsIFwKLSAgICAgICAgICAiMC4xMTAwNTUsIDAuNTEzOTU2LCAwLjg0NTY5NSwgMS4yNjE0MiwgMS42NzYwNywgMi4wOTkwMiwgMi41MDk4MyIsIFwKLSAgICAgICAgICAiMC4xMjE2MzEsIDAuNTEzNDU4LCAwLjg0ODM5NywgMS4yNjEwMiwgMS42ODA1NCwgMi4wOTgzMywgMi41MDcxMyIsIFwKLSAgICAgICAgICAiMC4xMzMxODUsIDAuNTE1MTYyLCAwLjg0NTQ5NiwgMS4yNjIyLCAxLjY3ODA0LCAyLjA5MjY2LCAyLjUwNjYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI4NjgsIDAuMDAyODcsIDAuMDAyODcsIDAuMDAyODcxLCAwLjAwMjg3MiwgMC4wMDI4NzMsIDAuMDAyODcyIiwgXAotICAgICAgICAgICIwLjAwMjg1MywgMC4wMDI4NjgsIDAuMDAyODcsIDAuMDAyODcxLCAwLjAwMjg3MSwgMC4wMDI4NzIsIDAuMDAyODciLCBcCi0gICAgICAgICAgIjAuMDAyODQsIDAuMDAyODY0LCAwLjAwMjg2OCwgMC4wMDI4NjksIDAuMDAyODcsIDAuMDAyODcsIDAuMDAyODcxIiwgXAotICAgICAgICAgICIwLjAwMjgyOSwgMC4wMDI4NiwgMC4wMDI4NjUsIDAuMDAyODcsIDAuMDAyODY5LCAwLjAwMjg3MSwgMC4wMDI4NyIsIFwKLSAgICAgICAgICAiMC4wMDI4MjIsIDAuMDAyODU5LCAwLjAwMjg2NCwgMC4wMDI4NjYsIDAuMDAyODY4LCAwLjAwMjg2OSwgMC4wMDI4NjgiLCBcCi0gICAgICAgICAgIjAuMDAyODEzLCAwLjAwMjg1MywgMC4wMDI4NjEsIDAuMDAyODY0LCAwLjAwMjg2NiwgMC4wMDI4NjcsIDAuMDAyODY4IiwgXAotICAgICAgICAgICIwLjAwMjgwNywgMC4wMDI4NDksIDAuMDAyODU3LCAwLjAwMjg2MiwgMC4wMDI4NjQsIDAuMDAyODY2LCAwLjAwMjg2NyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDc3NSwgMC4wMDA3NzYsIDAuMDAwNzc2LCAwLjAwMDc3NiwgMC4wMDA3NzYsIDAuMDAwNzc1LCAwLjAwMDc3NSIsIFwKLSAgICAgICAgICAiMC4wMDA3MzgsIDAuMDAwNzQ4LCAwLjAwMDc0OSwgMC4wMDA3NSwgMC4wMDA3NSwgMC4wMDA3NSwgMC4wMDA3NSIsIFwKLSAgICAgICAgICAiMC4wMDA3MiwgMC4wMDA3NDEsIDAuMDAwNzQyLCAwLjAwMDc0MywgMC4wMDA3NDQsIDAuMDAwNzQ0LCAwLjAwMDc0NiIsIFwKLSAgICAgICAgICAiMC4wMDA3MDcsIDAuMDAwNzM2LCAwLjAwMDczOSwgMC4wMDA3NCwgMC4wMDA3MzksIDAuMDAwNzQsIDAuMDAwNzQiLCBcCi0gICAgICAgICAgIjAuMDAwNjk4LCAwLjAwMDczMiwgMC4wMDA3MzYsIDAuMDAwNzM5LCAwLjAwMDczOSwgMC4wMDA3MzgsIDAuMDAwNzM4IiwgXAotICAgICAgICAgICIwLjAwMDY4OCwgMC4wMDA3MjUsIDAuMDAwNzMzLCAwLjAwMDczNiwgMC4wMDA3MzcsIDAuMDAwNzM4LCAwLjAwMDczOCIsIFwKLSAgICAgICAgICAiMC4wMDA2ODMsIDAuMDAwNzI0LCAwLjAwMDczLCAwLjAwMDczNCwgMC4wMDA3MzYsIDAuMDAwNzM3LCAwLjAwMDczOCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjM2MiwgMC4wMDIzNjcsIDAuMDAyMzY4LCAwLjAwMjM2OCwgMC4wMDIzNjgsIDAuMDAyMzY4LCAwLjAwMjM2OCIsIFwKLSAgICAgICAgICAiMC4wMDIzMzcsIDAuMDAyMzYyLCAwLjAwMjM2NCwgMC4wMDIzNjYsIDAuMDAyMzY2LCAwLjAwMjM2NywgMC4wMDIzNjYiLCBcCi0gICAgICAgICAgIjAuMDAyMzE1LCAwLjAwMjM1NSwgMC4wMDIzNiwgMC4wMDIzNjMsIDAuMDAyMzY0LCAwLjAwMjM2NSwgMC4wMDIzNjUiLCBcCi0gICAgICAgICAgIjAuMDAyMzAxLCAwLjAwMjM1LCAwLjAwMjM1NywgMC4wMDIzNiwgMC4wMDIzNjEsIDAuMDAyMzYzLCAwLjAwMjM2NCIsIFwKLSAgICAgICAgICAiMC4wMDIyOSwgMC4wMDIzNDUsIDAuMDAyMzUzLCAwLjAwMjM1OCwgMC4wMDIzNiwgMC4wMDIzNjIsIDAuMDAyMzYzIiwgXAotICAgICAgICAgICIwLjAwMjI3OCwgMC4wMDIzMzYsIDAuMDAyMzQ4LCAwLjAwMjM1NCwgMC4wMDIzNTcsIDAuMDAyMzU5LCAwLjAwMjM2IiwgXAotICAgICAgICAgICIwLjAwMjI3MywgMC4wMDIzMzIsIDAuMDAyMzQ0LCAwLjAwMjM1MSwgMC4wMDIzNTUsIDAuMDAyMzU3LCAwLjAwMjM1OSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDE0MiwgMC4wMDAxNSwgMC4wMDAxNTEsIDAuMDAwMTUxLCAwLjAwMDE1MSwgMC4wMDAxNTEsIDAuMDAwMTUyIiwgXAotICAgICAgICAgICIwLjAwMDEzMywgMC4wMDAxNjcsIDAuMDAwMTcsIDAuMDAwMTcyLCAwLjAwMDE3MywgMC4wMDAxNzQsIDAuMDAwMTc0IiwgXAotICAgICAgICAgICIwLjAwMDEwNiwgMC4wMDAxNjMsIDAuMDAwMTcsIDAuMDAwMTczLCAwLjAwMDE3NSwgMC4wMDAxNzYsIDAuMDAwMTc3IiwgXAotICAgICAgICAgICIwLjAwMDA4NSwgMC4wMDAxNTgsIDAuMDAwMTY4LCAwLjAwMDE3MywgMC4wMDAxNzYsIDAuMDAwMTc4LCAwLjAwMDE3OSIsIFwKLSAgICAgICAgICAiMC4wMDAwNjMsIDAuMDAwMTUsIDAuMDAwMTYyLCAwLjAwMDE2OSwgMC4wMDAxNzMsIDAuMDAwMTc1LCAwLjAwMDE3NiIsIFwKLSAgICAgICAgICAiMC4wMDAwNDYsIDAuMDAwMTQxLCAwLjAwMDE1NywgMC4wMDAxNjYsIDAuMDAwMTcsIDAuMDAwMTczLCAwLjAwMDE3NSIsIFwKLSAgICAgICAgICAiMC4wMDAwMzQsIDAuMDAwMTM1LCAwLjAwMDE1MiwgMC4wMDAxNjIsIDAuMDAwMTY4LCAwLjAwMDE3MSwgMC4wMDAxNzMiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IE5PUjJYNCAqCi0gKiAtLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKE5PUjJYNCkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjE5NDMzNzsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAzMTYyNjM7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAzMTM3ODc7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAzMTYyNjM7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxMDg3LCAwLjAwMTE0OCwgMC4wMDExNjQsIDAuMDAxMTcxLCAwLjAwMTE3NCwgMC4wMDExNzcsIDAuMDAxMTgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDEyNTQsIDAuMDAxMjU1LCAwLjAwMTI1NiwgMC4wMDEyNTYsIDAuMDAxMjU2LCAwLjAwMTI1NiwgMC4wMDEyNTciKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMzAyNjE7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAzMDI1NTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDMwMjYxOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDM2MiwgMC4wMDAzNjMsIDAuMDAwMzYzLCAwLjAwMDM2MywgMC4wMDAzNjMsIDAuMDAwMzYzLCAwLjAwMDM2MyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTM1NSwgMC4wMDEzNTYsIDAuMDAxMzU1LCAwLjAwMTM1NSwgMC4wMDEzNTUsIDAuMDAxMzU0LCAwLjAwMTM1NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjI5OTY3ODsKLSAgICBmdW5jdGlvbiA6ICIoIShBK0IpKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjIwMjcsIDAuMzIyMDk2LCAwLjU4MjA5MSwgMC43NjgyNTksIDEuMDY1NjEsIDEuMzI1MTQsIDEuNjk2MjIiLCBcCi0gICAgICAgICAgIjAuMDczMzc1LCAwLjMzMzY5NSwgMC41OTM5MTksIDAuNzc5Mzc4LCAxLjA3Njk2LCAxLjMzNjcsIDEuNzA4MTQiLCBcCi0gICAgICAgICAgIjAuMDg2MjkxLCAwLjM0NjkyMSwgMC42MDY3NTgsIDAuNzkyODM5LCAxLjA4OTY0LCAxLjM1MDEsIDEuNzIyMjQiLCBcCi0gICAgICAgICAgIjAuMDk4NzcxLCAwLjM1OTQ1OCwgMC42MTk2OTMsIDAuODA1MTc2LCAxLjEwMjQ3LCAxLjM2MjY3LCAxLjczNDA3IiwgXAotICAgICAgICAgICIwLjExMTE0OCwgMC4zNzE3NjQsIDAuNjMyMDc4LCAwLjgxODExNywgMS4xMTQ3NSwgMS4zNzU0MiwgMS43NDYzMyIsIFwKLSAgICAgICAgICAiMC4xMzAyMDcsIDAuMzkxNTU5LCAwLjY1MjAzMiwgMC44Mzc1OTcsIDEuMTM1MTIsIDEuMzk0NzQsIDEuNzY2NDEiLCBcCi0gICAgICAgICAgIjAuMTQ1Njk2LCAwLjQwODgyMiwgMC42NjkyMjIsIDAuODU1MjA1LCAxLjE1MjEsIDEuNDEyNjksIDEuNzg0MDUiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDExOTcsIDAuNjEwNTM2LCAxLjEyMTEyLCAxLjQ4MTAxLCAyLjA2MjA1LCAyLjU3OTE5LCAzLjMwMDAxIiwgXAotICAgICAgICAgICIwLjEwMDgyMywgMC42MTA1MjgsIDEuMTE3NzksIDEuNDkwMzksIDIuMDYyMzYsIDIuNTc4OTYsIDMuMzA4NDIiLCBcCi0gICAgICAgICAgIjAuMTAxMDk1LCAwLjYwOTIwOCwgMS4xMjExOSwgMS40ODExOSwgMi4wNjY5MSwgMi41Nzk3NCwgMy4yOTcyNSIsIFwKLSAgICAgICAgICAiMC4xMDMxOTEsIDAuNjExMjg0LCAxLjExNzkzLCAxLjQ4NDMyLCAyLjA2ODg1LCAyLjU3MSwgMy4zMjExMyIsIFwKLSAgICAgICAgICAiMC4xMDY1NDIsIDAuNjEwNTA4LCAxLjExNzc1LCAxLjQ4MDk0LCAyLjA2Njk5LCAyLjU3MTE2LCAzLjMwODI3IiwgXAotICAgICAgICAgICIwLjExMzQ3NywgMC42MTA0NTksIDEuMTE3OSwgMS40ODU2MywgMi4wNjI0OCwgMi41NzY2NywgMy4zMjEwNyIsIFwKLSAgICAgICAgICAiMC4xMjExODYsIDAuNjExODUzLCAxLjEyMTM5LCAxLjQ4MTIsIDIuMDY4NjEsIDIuNTcxMywgMy4yOTc2NiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzNzc1OCwgMC4xODM5NTgsIDAuMzI5NDM0LCAwLjQzMzQ2MiwgMC41OTk1MiwgMC43NDUwMTksIDAuOTUyNzUiLCBcCi0gICAgICAgICAgIjAuMDQ5MjcsIDAuMTk1NTUsIDAuMzQxMDc2LCAwLjQ0NDkwNCwgMC42MTEwNDksIDAuNzU2NTM5LCAwLjk2NDAyMSIsIFwKLSAgICAgICAgICAiMC4wNjQyOTEsIDAuMjEwMTE5LCAwLjM1MzgxNiwgMC40NTc2MjgsIDAuNjI1OTU1LCAwLjc3MTIxLCAwLjk3OTMzOCIsIFwKLSAgICAgICAgICAiMC4wNzk0MzYsIDAuMjI0OTA4LCAwLjM3MDQ5MywgMC40NzQyNTUsIDAuNjQwNjE0LCAwLjc4NTgwNiwgMC45OTM2ODkiLCBcCi0gICAgICAgICAgIjAuMDk0MzA5LCAwLjIzOTgxNywgMC4zODQ5ODcsIDAuNDg4ODE5LCAwLjY1NDk0MywgMC44MDAzNywgMS4wMDIzNiIsIFwKLSAgICAgICAgICAiMC4xMTU3ODIsIDAuMjY0MTg1LCAwLjQwOTc0MywgMC41MTIyODksIDAuNjc4NTA2LCAwLjgyMzc1MSwgMS4wMzE0MyIsIFwKLSAgICAgICAgICAiMC4xMzI2MTksIDAuMjg1MjUzLCAwLjQyOTM2NiwgMC41MzMwMiwgMC42OTkxNDUsIDAuODQ0MzE1LCAxLjA1MTkyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDYwNTcyLCAwLjM0ODk5LCAwLjYzNzI3MywgMC44NDI5MDksIDEuMTcyNDIsIDEuNDYwMzEsIDEuODcxODUiLCBcCi0gICAgICAgICAgIjAuMDYwNjM5LCAwLjM0ODc3NiwgMC42MzcwMDgsIDAuODQyNjc0LCAxLjE3MjAzLCAxLjQ2MDEzLCAxLjg3MTU4IiwgXAotICAgICAgICAgICIwLjA2NDA4MiwgMC4zNDg4NTUsIDAuNjM3MDc4LCAwLjg0MjYxLCAxLjE3MjE0LCAxLjQ1OTg4LCAxLjg3MTkiLCBcCi0gICAgICAgICAgIjAuMDY5OTUzLCAwLjM0ODgyMywgMC42MzcwNTYsIDAuODQyODg5LCAxLjE3MjE0LCAxLjQ2MDUxLCAxLjg3MTc0IiwgXAotICAgICAgICAgICIwLjA3NzMwOCwgMC4zNDkwMTQsIDAuNjM2OTgxLCAwLjg0Mjk4NywgMS4xNzIzNCwgMS40NjA1MywgMS44NzE3NCIsIFwKLSAgICAgICAgICAiMC4wOTEwNTQsIDAuMzUxODU3LCAwLjYzNzAwNSwgMC44NDI3NzEsIDEuMTcyMDUsIDEuNDYwMTksIDEuODcxNzgiLCBcCi0gICAgICAgICAgIjAuMTA0MjU5LCAwLjM1NjMyMiwgMC42Mzc0OCwgMC44NDI3NTIsIDEuMTcyMTcsIDEuNDYwMTksIDEuODcxNzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTU0OTIsIDAuMzE1NjY3LCAwLjU3NjAyNiwgMC43NjE0NTEsIDEuMDU5MTgsIDEuMzE4ODMsIDEuNjg5OTkiLCBcCi0gICAgICAgICAgIjAuMDY1Mzc5LCAwLjMyNTg1MywgMC41ODYzMTMsIDAuNzcxNTYsIDEuMDY5MzEsIDEuMzI4OTQsIDEuNzAxMzciLCBcCi0gICAgICAgICAgIjAuMDc4MTQ5LCAwLjMzODc4NSwgMC41OTg4NTMsIDAuNzg0NzU2LCAxLjA4MjQzLCAxLjM0MjM3LCAxLjcxNCIsIFwKLSAgICAgICAgICAiMC4wOTE4MDQsIDAuMzUyMDc5LCAwLjYxMjE1MiwgMC43OTc1ODUsIDEuMDk1MDIsIDEuMzU1NDYsIDEuNzI2MjYiLCBcCi0gICAgICAgICAgIjAuMTA0OTkzLCAwLjM2NDk0MSwgMC42MjUxNDcsIDAuODExMTM2LCAxLjEwODY5LCAxLjM2ODE0LCAxLjczOTkxIiwgXAotICAgICAgICAgICIwLjEyNTU0NCwgMC4zODU3OTIsIDAuNjQ1ODkzLCAwLjgzMTg4MywgMS4xMjk1MywgMS4zODg4NSwgMS43NjEwMiIsIFwKLSAgICAgICAgICAiMC4xNDE3NDksIDAuNDA0MDYxLCAwLjY2NDMwMywgMC44NTAxNDgsIDEuMTQ3MjMsIDEuNDA3MzMsIDEuNzc4NTYiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDA1OTcsIDAuNjA5ODU4LCAxLjExODA3LCAxLjQ4NTc3LCAyLjA2MjE2LCAyLjU3OTY1LCAzLjMwNzkxIiwgXAotICAgICAgICAgICIwLjEwMDY1NywgMC42MTMwMTgsIDEuMTE4LCAxLjQ4NDE0LCAyLjA2MjQyLCAyLjU3ODksIDMuMjk3OTgiLCBcCi0gICAgICAgICAgIjAuMTAzMDc5LCAwLjYxMDg4OCwgMS4xMjQ1NCwgMS40ODU3MiwgMi4wNjIyNCwgMi41NzEzLCAzLjI5Nzg3IiwgXAotICAgICAgICAgICIwLjEwNzgxNiwgMC42MDkxNzMsIDEuMTE4ODcsIDEuNDgxOTEsIDIuMDY2ODgsIDIuNTcwODcsIDMuMzA0NDYiLCBcCi0gICAgICAgICAgIjAuMTE0NzM5LCAwLjYxMTEwMiwgMS4xMjE0LCAxLjQ4MTIxLCAyLjA2MjY2LCAyLjU3MTY2LCAzLjI5ODA5IiwgXAotICAgICAgICAgICIwLjEyNzY4LCAwLjYxMTAzMiwgMS4xMjExLCAxLjQ4NTg0LCAyLjA2MjIxLCAyLjU4Njg5LCAzLjI5NzY2IiwgXAotICAgICAgICAgICIwLjE0MDI0NSwgMC42MTI1MTgsIDEuMTE3NjgsIDEuNDgxMDQsIDIuMDY4NTMsIDIuNTc4NTYsIDMuMzA2MjciKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzM1OTksIDAuMTgwMzQ1LCAwLjMyNjk2NSwgMC40MzE3NzQsIDAuNTk5NTA3LCAwLjc0NjAwOSwgMC45NTU2MDciLCBcCi0gICAgICAgICAgIjAuMDQ1Mzg0LCAwLjE5MTgxNiwgMC4zMzg0ODMsIDAuNDQzMjgxLCAwLjYxMDc2NywgMC43NTczNzcsIDAuOTY2ODY0IiwgXAotICAgICAgICAgICIwLjA2MDI3NCwgMC4yMDY3NDYsIDAuMzUzNjYzLCAwLjQ1ODQzNywgMC42MjU5MjgsIDAuNzcyNTY3LCAwLjk4MTk1OSIsIFwKLSAgICAgICAgICAiMC4wNzUwNDgsIDAuMjIxNTc5LCAwLjM2Njg4NCwgMC40NzE3MzksIDAuNjM5NjQ3LCAwLjc4NTgwMiwgMC45OTU3MTgiLCBcCi0gICAgICAgICAgIjAuMDg5MzExLCAwLjIzNjE5NywgMC4zODI3OTQsIDAuNDg3NDY5LCAwLjY1NTE0NSwgMC44MDE3NCwgMS4wMDU1MSIsIFwKLSAgICAgICAgICAiMC4xMDkzNTYsIDAuMjYwODEzLCAwLjQwNjI2MSwgMC41MTA5MzEsIDAuNjc4Mzk4LCAwLjgyNTEwOSwgMS4wMzQ1NiIsIFwKLSAgICAgICAgICAiMC4xMjUyODUsIDAuMjgxNzg2LCAwLjQyNzEyNCwgMC41MzE1MjIsIDAuNjk5MDU5LCAwLjg0NTU4LCAxLjA1NTExIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU1NjY3LCAwLjM0NzMwOCwgMC42MzkzMjIsIDAuODQ2NTI3LCAxLjE3ODMsIDEuNDcxMiwgMS44ODkyNiIsIFwKLSAgICAgICAgICAiMC4wNTU5OTUsIDAuMzQ3Njc2LCAwLjYzNzMzMywgMC44NDY1MzQsIDEuMTc3MiwgMS40Njg0MiwgMS44ODQ0OCIsIFwKLSAgICAgICAgICAiMC4wNjAwNzcsIDAuMzQ3MjU5LCAwLjYzNzI3MiwgMC44NDU1MDcsIDEuMTc4LCAxLjQ3MzA5LCAxLjg4NDc3IiwgXAotICAgICAgICAgICIwLjA2NjM4MiwgMC4zNDYzMTIsIDAuNjM4MjU2LCAwLjg0NTM5MywgMS4xNzk5LCAxLjQ2ODQsIDEuODgzODgiLCBcCi0gICAgICAgICAgIjAuMDc0NywgMC4zNDgwMDksIDAuNjM4Mzk4LCAwLjg0NjIxNiwgMS4xNzg0LCAxLjQ3MTk0LCAxLjg4MzEyIiwgXAotICAgICAgICAgICIwLjA4OTkxLCAwLjM1MDg1LCAwLjYzODgxNSwgMC44NDc5NjgsIDEuMTc4MjIsIDEuNDczMzYsIDEuODgzMjEiLCBcCi0gICAgICAgICAgIjAuMTAzODAxLCAwLjM1NTQ0NSwgMC42Mzg4NjcsIDAuODQ1MDI2LCAxLjE3NzU0LCAxLjQ3MTg0LCAxLjg5MDAyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDU1NzgsIDAuMDA1NTksIDAuMDA1NTkxLCAwLjAwNTU5MSwgMC4wMDU1OTEsIDAuMDA1NTkxLCAwLjAwNTU5IiwgXAotICAgICAgICAgICIwLjAwNTUzMywgMC4wMDU1ODEsIDAuMDA1NTg2LCAwLjAwNTU4OCwgMC4wMDU1ODksIDAuMDA1NTksIDAuMDA1NTkxIiwgXAotICAgICAgICAgICIwLjAwNTQ5NywgMC4wMDU1NjksIDAuMDA1NTgsIDAuMDA1NTgzLCAwLjAwNTU4NSwgMC4wMDU1NzYsIDAuMDA1NTg4IiwgXAotICAgICAgICAgICIwLjAwNTQ3NiwgMC4wMDU1NiwgMC4wMDU1NzQsIDAuMDA1NTc4LCAwLjAwNTU4MywgMC4wMDU1ODIsIDAuMDA1NTg2IiwgXAotICAgICAgICAgICIwLjAwNTQ2LCAwLjAwNTU1MiwgMC4wMDU1NjksIDAuMDA1NTc1LCAwLjAwNTU3NywgMC4wMDU1ODIsIDAuMDA1NTg2IiwgXAotICAgICAgICAgICIwLjAwNTQ0MywgMC4wMDU1MzYsIDAuMDA1NTYsIDAuMDA1NTY3LCAwLjAwNTU3NCwgMC4wMDU1NzksIDAuMDA1NTgxIiwgXAotICAgICAgICAgICIwLjAwNTQzNSwgMC4wMDU1MjksIDAuMDA1NTUzLCAwLjAwNTU2MSwgMC4wMDU1NywgMC4wMDU1NzUsIDAuMDA1NTc4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDE0OTQsIDAuMDAxNDk5LCAwLjAwMTQ5OCwgMC4wMDE0OTgsIDAuMDAxNDk4LCAwLjAwMTQ5OCwgMC4wMDE0OTciLCBcCi0gICAgICAgICAgIjAuMDAxNDA1LCAwLjAwMTQ0MiwgMC4wMDE0NDYsIDAuMDAxNDQ3LCAwLjAwMTQ0OCwgMC4wMDE0NDgsIDAuMDAxNDQ3IiwgXAotICAgICAgICAgICIwLjAwMTM1NiwgMC4wMDE0MjIsIDAuMDAxNDI3LCAwLjAwMTQzLCAwLjAwMTQzNywgMC4wMDE0MzgsIDAuMDAxNDM5IiwgXAotICAgICAgICAgICIwLjAwMTMyNSwgMC4wMDE0MDgsIDAuMDAxNDI0LCAwLjAwMTQyNywgMC4wMDE0MywgMC4wMDE0MzIsIDAuMDAxNDMyIiwgXAotICAgICAgICAgICIwLjAwMTMwOCwgMC4wMDEzOTksIDAuMDAxNDE1LCAwLjAwMTQxOSwgMC4wMDE0MjMsIDAuMDAxNDI1LCAwLjAwMTQyMyIsIFwKLSAgICAgICAgICAiMC4wMDEyOTIsIDAuMDAxMzg3LCAwLjAwMTQwOSwgMC4wMDE0MTIsIDAuMDAxNDE3LCAwLjAwMTQxOSwgMC4wMDE0MjIiLCBcCi0gICAgICAgICAgIjAuMDAxMjg5LCAwLjAwMTM4LCAwLjAwMTM5NSwgMC4wMDE0MDcsIDAuMDAxNDE0LCAwLjAwMTQxNiwgMC4wMDE0MTkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDU1NiwgMC4wMDQ1NzUsIDAuMDA0NTc2LCAwLjAwNDU3NywgMC4wMDQ1NzcsIDAuMDA0NTc1LCAwLjAwNDU3NiIsIFwKLSAgICAgICAgICAiMC4wMDQ0NzcsIDAuMDA0NTU5LCAwLjAwNDU2NywgMC4wMDQ1NywgMC4wMDQ1NzMsIDAuMDA0NTcsIDAuMDA0NTc0IiwgXAotICAgICAgICAgICIwLjAwNDQyNiwgMC4wMDQ1NDIsIDAuMDA0NTU3LCAwLjAwNDU2NCwgMC4wMDQ1NjYsIDAuMDA0NTY5LCAwLjAwNDU3IiwgXAotICAgICAgICAgICIwLjAwNDM5NSwgMC4wMDQ1MjUsIDAuMDA0NTQ4LCAwLjAwNDU1NCwgMC4wMDQ1NiwgMC4wMDQ1NjQsIDAuMDA0NTY3IiwgXAotICAgICAgICAgICIwLjAwNDM3OCwgMC4wMDQ1MTIsIDAuMDA0NTM5LCAwLjAwNDU0OCwgMC4wMDQ1NTYsIDAuMDA0NTYsIDAuMDA0NTY0IiwgXAotICAgICAgICAgICIwLjAwNDM2NCwgMC4wMDQ0OTMsIDAuMDA0NTI1LCAwLjAwNDUzNywgMC4wMDQ1NDgsIDAuMDA0NTUzLCAwLjAwNDU1OCIsIFwKLSAgICAgICAgICAiMC4wMDQzNjMsIDAuMDA0NDgsIDAuMDA0NTE2LCAwLjAwNDUyOSwgMC4wMDQ1NDEsIDAuMDA0NTQ0LCAwLjAwNDU1MiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwMjI2LCAwLjAwMDI1MywgMC4wMDAyNTUsIDAuMDAwMjU2LCAwLjAwMDI1NiwgMC4wMDAyNTcsIDAuMDAwMjU3IiwgXAotICAgICAgICAgICIwLjAwMDE3MiwgMC4wMDAyODMsIDAuMDAwMjk1LCAwLjAwMDI5OSwgMC4wMDAzMDIsIDAuMDAwMzA0LCAwLjAwMDMwNSIsIFwKLSAgICAgICAgICAiMC4wMDAwOTksIDAuMDAwMjY5LCAwLjAwMDI5LCAwLjAwMDI5NywgMC4wMDAzMDIsIDAuMDAwMzA1LCAwLjAwMDMwOCIsIFwKLSAgICAgICAgICAiMC4wMDAwNCwgMC4wMDAyNDksIDAuMDAwMjgsIDAuMDAwMjkxLCAwLjAwMDMsIDAuMDAwMzA0LCAwLjAwMDMwOCIsIFwKLSAgICAgICAgICAiMC4wMDAwMSwgMC4wMDAyMzMsIDAuMDAwMjcyLCAwLjAwMDI4NSwgMC4wMDAyOTYsIDAuMDAwMzAxLCAwLjAwMDMwOCIsIFwKLSAgICAgICAgICAiMC4wMDAwMjQsIDAuMDAwMjA4LCAwLjAwMDI1NiwgMC4wMDAyNzIsIDAuMDAwMjg2LCAwLjAwMDI5NCwgMC4wMDAzMDEiLCBcCi0gICAgICAgICAgIjAuMDAwMDM2LCAwLjAwMDE4OSwgMC4wMDAyNDIsIDAuMDAwMjYyLCAwLjAwMDI3OSwgMC4wMDAyODgsIDAuMDAwMjk2Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBOT1IyWDYgKgotICogLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChOT1IyWDYpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4yOTE5NDQ7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwNDY0MjQ3OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwNDYwNTM2OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwNDY0MjQ3OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTYyOCwgMC4wMDE3MjIsIDAuMDAxNzQ2LCAwLjAwMTc1NSwgMC4wMDE3NjEsIDAuMDAxNzY2LCAwLjAwMTc3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxODgsIDAuMDAxODgyLCAwLjAwMTg4MywgMC4wMDE4ODMsIDAuMDAxODgzLCAwLjAwMTg4NCwgMC4wMDE4ODQiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwNDU1MDI1OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwNDU0OTAyOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwNDU1MDI1OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDU0MiwgMC4wMDA1NDMsIDAuMDAwNTQyLCAwLjAwMDU0MiwgMC4wMDA1NDMsIDAuMDAwNTQzLCAwLjAwMDU0MyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTk5NiwgMC4wMDE5OTYsIDAuMDAxOTk2LCAwLjAwMTk5NiwgMC4wMDE5OTUsIDAuMDAxOTk0LCAwLjAwMTk5NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjQ0NjE1OwotICAgIGZ1bmN0aW9uIDogIighKEErQikpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0OTA1MSwgMC4yMjI5ODQsIDAuMzk2NjQ3LCAwLjUyMDUxNCwgMC43MTkyMzYsIDAuODkyNzYzLCAxLjE0MTQ2IiwgXAotICAgICAgICAgICIwLjA2MDM3OSwgMC4yMzQ0NDEsIDAuNDA4MDc1LCAwLjUzMjUwOCwgMC43MzA2NjQsIDAuOTA0ODg5LCAxLjE1MzE5IiwgXAotICAgICAgICAgICIwLjA3MzI1MiwgMC4yNDc0MzksIDAuNDIxMTYxLCAwLjU0NTQ4NiwgMC43NDM4MTMsIDAuOTE3NzE1LCAxLjE2NTQzIiwgXAotICAgICAgICAgICIwLjA4NTY0MywgMC4yNTk5MDMsIDAuNDMzNzA4LCAwLjU1ODE0LCAwLjc1NjI3NywgMC45MzAxOTUsIDEuMTc4MTMiLCBcCi0gICAgICAgICAgIjAuMDk3ODk4LCAwLjI3MjM1NywgMC40NDYyMTEsIDAuNTcwMzM5LCAwLjc2ODkxOSwgMC45NDI0NTIsIDEuMTkxMzgiLCBcCi0gICAgICAgICAgIjAuMTE1NTY4LCAwLjI5MjAzOSwgMC40NjU5OTgsIDAuNTkwMDg5LCAwLjc4ODY2MywgMC45NjIzNzEsIDEuMjEwNDciLCBcCi0gICAgICAgICAgIjAuMTI5Njg3LCAwLjMwOTI1NiwgMC40ODI2MjIsIDAuNjA3NzU0LCAwLjgwNjAzOSwgMC45Nzk4NjMsIDEuMjI3NzYiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzU2NTcsIDAuNDE1MjM2LCAwLjc1NDg4LCAwLjk5OTYyMiwgMS4zOTA1LCAxLjczMDgxLCAyLjIxMDYxIiwgXAotICAgICAgICAgICIwLjA3NTY2MywgMC40MTU1OTUsIDAuNzU2NDI1LCAwLjk5NzQyNiwgMS4zODY3LCAxLjcyNTI5LCAyLjIxMTAxIiwgXAotICAgICAgICAgICIwLjA3NjQzOSwgMC40MTYzOTQsIDAuNzU2NDU3LCAwLjk5NzY0NCwgMS4zODY5NiwgMS43MzE0NiwgMi4yMjQ3MiIsIFwKLSAgICAgICAgICAiMC4wNzkxNTgsIDAuNDE2NDA0LCAwLjc1NTU3OSwgMC45OTc2MzYsIDEuMzg4NzgsIDEuNzMxMjUsIDIuMjEyNjEiLCBcCi0gICAgICAgICAgIjAuMDgyOTM5LCAwLjQxNjM3LCAwLjc1NzA2LCAwLjk5ODI4NCwgMS4zODcyNSwgMS43MzA2LCAyLjIxMTAyIiwgXAotICAgICAgICAgICIwLjA5MTAwMSwgMC40MTc2MjIsIDAuNzU2NTc3LCAwLjk5OTYxNSwgMS4zODY4MSwgMS43MjkyNiwgMi4yMTU1OSIsIFwKLSAgICAgICAgICAiMC4wOTkyOTcsIDAuNDIwMDYxLCAwLjc1NzMyLCAwLjk5NzUxLCAxLjM4NjY2LCAxLjcyNzE0LCAyLjIxNzQ5Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDMxMDQ1LCAwLjEzMTE3MSwgMC4yMzA2MzMsIDAuMzAxNTU2LCAwLjQxNTA0MiwgMC41MTQzNjUsIDAuNjU2MzcxIiwgXAotICAgICAgICAgICIwLjA0MjUwNywgMC4xNDI3NDgsIDAuMjQyMjEyLCAwLjMxMzE2NywgMC40MjY2MjIsIDAuNTI1OTI2LCAwLjY2NzY3OSIsIFwKLSAgICAgICAgICAiMC4wNTc2NDQsIDAuMTU3Mzk1LCAwLjI1Njg4NSwgMC4zMjc3MzEsIDAuNDQxMTA2LCAwLjU0MDMyOCwgMC42ODIxNTEiLCBcCi0gICAgICAgICAgIjAuMDcyNjQxLCAwLjE3MjI2OCwgMC4yNzE0NTQsIDAuMzQyNzk2LCAwLjQ1NjUwMSwgMC41NTU3ODgsIDAuNjk3NjMyIiwgXAotICAgICAgICAgICIwLjA4NjQyOCwgMC4xODc1NzcsIDAuMjg2MzQ0LCAwLjM1NzAyNywgMC40NzA1OTksIDAuNTY5NzcxLCAwLjcxMTYxIiwgXAotICAgICAgICAgICIwLjEwNjE0MiwgMC4yMTE0NjUsIDAuMzEwOTQzLCAwLjM4MTc4LCAwLjQ5NTMzOSwgMC41OTQ1NTcsIDAuNzM2NTgzIiwgXAotICAgICAgICAgICIwLjEyMTc0NSwgMC4yMzI0NTgsIDAuMzMxNzE1LCAwLjQwMjY3MiwgMC41MTQ3NzIsIDAuNjEzODg2LCAwLjc1NTg5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQ3MjY5LCAwLjI0NDExNSwgMC40NDA5NDUsIDAuNTgxMTI4LCAwLjgwNjAxMywgMS4wMDI5MiwgMS4yODM3MSIsIFwKLSAgICAgICAgICAiMC4wNDc2MTMsIDAuMjQ0MDU0LCAwLjQ0MDcxMywgMC41ODE0OCwgMC44MDYyMiwgMS4wMDI1OCwgMS4yODM0OCIsIFwKLSAgICAgICAgICAiMC4wNTE3OTMsIDAuMjQ0MDgyLCAwLjQ0MDc0OCwgMC41ODExMTEsIDAuODA1OTg1LCAxLjAwMjgzLCAxLjI4MzMzIiwgXAotICAgICAgICAgICIwLjA1ODQ1MywgMC4yNDQzMjQsIDAuNDQwNjQsIDAuNTgxMjI1LCAwLjgwNTk4OSwgMS4wMDI2LCAxLjI4MzUzIiwgXAotICAgICAgICAgICIwLjA2NjY0MiwgMC4yNDYxMDgsIDAuNDQwNzU2LCAwLjU4MTI1OCwgMC44MDYwNzIsIDEuMDAyNjUsIDEuMjgzNiIsIFwKLSAgICAgICAgICAiMC4wODEyNzcsIDAuMjUxNzYyLCAwLjQ0MTc0MSwgMC41ODE0MDksIDAuODA1OTg3LCAxLjAwMjQ5LCAxLjI4MzYzIiwgXAotICAgICAgICAgICIwLjA5Mzk5NywgMC4yNTg1MTMsIDAuNDQ0Njk4LCAwLjU4MjIxMSwgMC44MDYwNTcsIDEuMDAyODgsIDEuMjgzNTciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDI2MjQsIDAuMjE2NTgzLCAwLjM5MDI0MiwgMC41MTQzMSwgMC43MTI4MDQsIDAuODg2MzYyLCAxLjEzNTA1IiwgXAotICAgICAgICAgICIwLjA1MjQ0MywgMC4yMjY2ODEsIDAuNDAwNTI4LCAwLjUyNDUzMSwgMC43MjMwNTUsIDAuODk2OTA5LCAxLjE0NDk0IiwgXAotICAgICAgICAgICIwLjA2NTU1NywgMC4yMzk2NzgsIDAuNDEzMjM0LCAwLjUzNzc2NywgMC43MzU5MTIsIDAuOTA5ODAxLCAxLjE1NzYyIiwgXAotICAgICAgICAgICIwLjA3ODk4NywgMC4yNTMyMjQsIDAuNDI3MDg1LCAwLjU1MTEyNSwgMC43NDk0NjEsIDAuOTIzNzA1LCAxLjE3MTc1IiwgXAotICAgICAgICAgICIwLjA5MTc3MiwgMC4yNjU1NzMsIDAuNDM5NDQ5LCAwLjU2MzUzOSwgMC43NjI1OTEsIDAuOTM1NzMxLCAxLjE4NDMzIiwgXAotICAgICAgICAgICIwLjEwOTg0NywgMC4yODY0ODIsIDAuNDYwNDc1LCAwLjU4NDUwNywgMC43ODMzNDgsIDAuOTU2NzI4LCAxLjIwNTIzIiwgXAotICAgICAgICAgICIwLjEyMzQxNSwgMC4zMDQ4MDEsIDAuNDc4NjM0LCAwLjYwMjg1MywgMC44MDE0MDksIDAuOTc0OTcxLCAxLjIyMzE1Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc1NTY5LCAwLjQxNTIsIDAuNzU3MzQxLCAxLjAwMDgxLCAxLjM5MDI3LCAxLjczMDYsIDIuMjEwNjYiLCBcCi0gICAgICAgICAgIjAuMDc1NjQyLCAwLjQxNjM4OCwgMC43NTc0MTMsIDAuOTk4Mzc2LCAxLjM5MDA0LCAxLjcyNTc4LCAyLjIxNzc3IiwgXAotICAgICAgICAgICIwLjA3OTI1NCwgMC40MTY1NywgMC43NTYwNTIsIDAuOTk3NDgyLCAxLjM5Mzg4LCAxLjcyNzEsIDIuMjE1NTMiLCBcCi0gICAgICAgICAgIjAuMDg1NDQyLCAwLjQxNjAzNCwgMC43NTcxNCwgMS4wMDM2NSwgMS4zODk1OSwgMS43MjU1NywgMi4yMTA3OCIsIFwKLSAgICAgICAgICAiMC4wOTM2LCAwLjQxNjQzMywgMC43NTU1NDQsIDAuOTk5Nzk2LCAxLjM4NTY5LCAxLjczMDc0LCAyLjIxMDkiLCBcCi0gICAgICAgICAgIjAuMTA4MTM2LCAwLjQxODIwMiwgMC43NTcyNzIsIDAuOTk4MzgzLCAxLjM4NTc3LCAxLjczMDYxLCAyLjIxODQ1IiwgXAotICAgICAgICAgICIwLjEyMTk0LCAwLjQyMzUxNSwgMC43NTcxODksIDAuOTk3NjQ0LCAxLjM4OTk3LCAxLjcyOTg1LCAyLjIxNTU2Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDI2NjgsIDAuMTI2Mjg1LCAwLjIyNTczOSwgMC4yOTY4NDUsIDAuNDEwNjYzLCAwLjUwOTg3MywgMC42NTIxOSIsIFwKLSAgICAgICAgICAiMC4wMzgyNSwgMC4xMzgxMTksIDAuMjM3Njg0LCAwLjMwODcwNiwgMC40MjIzNTksIDAuNTIxNzk1LCAwLjY2NDAwNyIsIFwKLSAgICAgICAgICAiMC4wNTMzMjksIDAuMTUyOTU0LCAwLjI1MjMsIDAuMzIzMjU1LCAwLjQzNjk1NSwgMC41MzYyOTcsIDAuNjc4Mzk0IiwgXAotICAgICAgICAgICIwLjA2NzcxNSwgMC4xNjc2MDEsIDAuMjY2ODQyLCAwLjMzNzkwNiwgMC40NTE1NCwgMC41NTEwMiwgMC42OTMwNTQiLCBcCi0gICAgICAgICAgIjAuMDgwNTc3LCAwLjE4MjkwOSwgMC4yODE4NDYsIDAuMzUxMzM5LCAwLjQ2NTAwNywgMC41NjQ1MzEsIDAuNzA2NjYzIiwgXAotICAgICAgICAgICIwLjA5ODUzMSwgMC4yMDY4NTEsIDAuMzA2MzgsIDAuMzc3Mjg2LCAwLjQ5MTA0NywgMC41ODkzMDIsIDAuNzMxNDc1IiwgXAotICAgICAgICAgICIwLjExMjQ3NSwgMC4yMjc2NjcsIDAuMzI3MDkxLCAwLjM5ODE0MSwgMC41MTA0MzYsIDAuNjA5NzIsIDAuNzUyMDI2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQxOTg2LCAwLjIzOTAyMiwgMC40MzYzMjIsIDAuNTc3OTU4LCAwLjgwMjk0NCwgMC45OTk4MjUsIDEuMjgzOTciLCBcCi0gICAgICAgICAgIjAuMDQyNzIxLCAwLjIzOTk0MywgMC40MzcwOTIsIDAuNTc3NDgsIDAuODAyNzgzLCAxLjAwMDA1LCAxLjI4NDA0IiwgXAotICAgICAgICAgICIwLjA0Nzc4NCwgMC4yMzkxMzUsIDAuNDM2MzQ1LCAwLjU3NzE0MywgMC44MDQwMjksIDEuMDAwNTgsIDEuMjgxNjYiLCBcCi0gICAgICAgICAgIjAuMDU1MzksIDAuMjQwMzM4LCAwLjQzNjM0NCwgMC41NzkwMDMsIDAuODAzMzM1LCAxLjAwMDEsIDEuMjg2MzYiLCBcCi0gICAgICAgICAgIjAuMDY0NjA4LCAwLjI0MjI3MywgMC40MzYzMDYsIDAuNTc3MDIyLCAwLjgwMzEzNywgMC45OTk3MTYsIDEuMjgxODgiLCBcCi0gICAgICAgICAgIjAuMDgwMzUzLCAwLjI0Nzc5MiwgMC40Mzc1NzIsIDAuNTc3ODYyLCAwLjgwMjY1OSwgMS4wMDEwNywgMS4yODIwMyIsIFwKLSAgICAgICAgICAiMC4wOTMwOTksIDAuMjU1MDY5LCAwLjQ0MTkyOCwgMC41NzkyMSwgMC44MDQ0MzQsIDEuMDAzMywgMS4yODUxNCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA4MTM5LCAwLjAwODE2MSwgMC4wMDgxNjQsIDAuMDA4MTY0LCAwLjAwODE2NSwgMC4wMDgxNjUsIDAuMDA4MTY1IiwgXAotICAgICAgICAgICIwLjAwODA1NywgMC4wMDgxNDIsIDAuMDA4MTUzLCAwLjAwODE1NiwgMC4wMDgxNTksIDAuMDA4MTYxLCAwLjAwODE2MyIsIFwKLSAgICAgICAgICAiMC4wMDc5OTksIDAuMDA4MTE4LCAwLjAwODEzOSwgMC4wMDgxNDUsIDAuMDA4MTUxLCAwLjAwODE1NCwgMC4wMDgxNTgiLCBcCi0gICAgICAgICAgIjAuMDA3OTY2LCAwLjAwODA5OSwgMC4wMDgxMywgMC4wMDgxMzYsIDAuMDA4MTQxLCAwLjAwODE1LCAwLjAwODE1MyIsIFwKLSAgICAgICAgICAiMC4wMDc5NDcsIDAuMDA4MDgzLCAwLjAwODExOCwgMC4wMDgxMjksIDAuMDA4MTM4LCAwLjAwODE0NCwgMC4wMDgxNDgiLCBcCi0gICAgICAgICAgIjAuMDA3OTI2LCAwLjAwODA2LCAwLjAwODA5OSwgMC4wMDgxMTMsIDAuMDA4MTI3LCAwLjAwODEzNCwgMC4wMDgxNDEiLCBcCi0gICAgICAgICAgIjAuMDA3OTE2LCAwLjAwODA0MywgMC4wMDgwODksIDAuMDA4MDkzLCAwLjAwODExNSwgMC4wMDgxMjcsIDAuMDA4MTM1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDIxNzEsIDAuMDAyMTgxLCAwLjAwMjE4MSwgMC4wMDIxODEsIDAuMDAyMTgxLCAwLjAwMjE4MSwgMC4wMDIxOCIsIFwKLSAgICAgICAgICAiMC4wMDIwMiwgMC4wMDIwODgsIDAuMDAyMDk3LCAwLjAwMjA5OSwgMC4wMDIxMDEsIDAuMDAyMTAyLCAwLjAwMjEwMyIsIFwKLSAgICAgICAgICAiMC4wMDE5NCwgMC4wMDIwNTEsIDAuMDAyMDczLCAwLjAwMjA3OCwgMC4wMDIwODIsIDAuMDAyMDg1LCAwLjAwMjA4NyIsIFwKLSAgICAgICAgICAiMC4wMDE4OTIsIDAuMDAyMDI2LCAwLjAwMjA1MiwgMC4wMDIwNjQsIDAuMDAyMDcxLCAwLjAwMjA3NCwgMC4wMDIwNzciLCBcCi0gICAgICAgICAgIjAuMDAxODY3LCAwLjAwMjAwNywgMC4wMDIwMzgsIDAuMDAyMDQ4LCAwLjAwMjA1OCwgMC4wMDIwNjMsIDAuMDAyMDY3IiwgXAotICAgICAgICAgICIwLjAwMTg0OCwgMC4wMDE5ODUsIDAuMDAyMDI2LCAwLjAwMjA0MywgMC4wMDIwNTEsIDAuMDAyMDU3LCAwLjAwMjA2MyIsIFwKLSAgICAgICAgICAiMC4wMDE4NDYsIDAuMDAxOTcsIDAuMDAyMDExLCAwLjAwMjAyNSwgMC4wMDIwMzksIDAuMDAyMDQ2LCAwLjAwMjA1MSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2NjA4LCAwLjAwNjY0NCwgMC4wMDY2NDgsIDAuMDA2NjQ5LCAwLjAwNjY1LCAwLjAwNjY0OSwgMC4wMDY2NTIiLCBcCi0gICAgICAgICAgIjAuMDA2NDczLCAwLjAwNjYxMSwgMC4wMDY2MjYsIDAuMDA2NjM0LCAwLjAwNjY0LCAwLjAwNjYzOSwgMC4wMDY2NDgiLCBcCi0gICAgICAgICAgIjAuMDA2Mzg5LCAwLjAwNjU3MywgMC4wMDY2MDUsIDAuMDA2NjE2LCAwLjAwNjYyNSwgMC4wMDY2MjksIDAuMDA2NjM0IiwgXAotICAgICAgICAgICIwLjAwNjM0OCwgMC4wMDY1NDYsIDAuMDA2NTg4LCAwLjAwNjYwNCwgMC4wMDY2MTYsIDAuMDA2NjIyLCAwLjAwNjYyOCIsIFwKLSAgICAgICAgICAiMC4wMDYzMjQsIDAuMDA2NTE5LCAwLjAwNjU3LCAwLjAwNjU4OCwgMC4wMDY2MDQsIDAuMDA2NjEzLCAwLjAwNjYyIiwgXAotICAgICAgICAgICIwLjAwNjMxNiwgMC4wMDY0ODUsIDAuMDA2NTQ1LCAwLjAwNjU2NiwgMC4wMDY1ODcsIDAuMDA2NTk1LCAwLjAwNjYxMSIsIFwKLSAgICAgICAgICAiMC4wMDYzMTksIDAuMDA2NDYzLCAwLjAwNjUyNywgMC4wMDY1NTEsIDAuMDA2NTc1LCAwLjAwNjU4OCwgMC4wMDY2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDAyOTMsIDAuMDAwMzQ2LCAwLjAwMDM1MiwgMC4wMDAzNTMsIDAuMDAwMzU1LCAwLjAwMDM1NSwgMC4wMDAzNTYiLCBcCi0gICAgICAgICAgIjAuMDAwMTcxLCAwLjAwMDM3NSwgMC4wMDA0MDEsIDAuMDAwNDA5LCAwLjAwMDQxNSwgMC4wMDA0MTksIDAuMDAwNDIyIiwgXAotICAgICAgICAgICIwLjAwMDA0NSwgMC4wMDAzNCwgMC4wMDAzODUsIDAuMDAwNCwgMC4wMDA0MTIsIDAuMDAwNDE5LCAwLjAwMDQyNSIsIFwKLSAgICAgICAgICAiMC4wMDAwMzEsIDAuMDAwMzAxLCAwLjAwMDM2NywgMC4wMDAzODcsIDAuMDAwNDA1LCAwLjAwMDQxNSwgMC4wMDA0MjMiLCBcCi0gICAgICAgICAgIjAuMDAwMDg1LCAwLjAwMDI2NSwgMC4wMDAzMzksIDAuMDAwMzY0LCAwLjAwMDM4OSwgMC4wMDA0MDIsIDAuMDAwNDEzIiwgXAotICAgICAgICAgICIwLjAwMDExNywgMC4wMDAyMiwgMC4wMDAzMTEsIDAuMDAwMzQ0LCAwLjAwMDM3MSwgMC4wMDAzODksIDAuMDAwNDAzIiwgXAotICAgICAgICAgICIwLjAwMDEyOCwgMC4wMDAxODUsIDAuMDAwMjg2LCAwLjAwMDMyMiwgMC4wMDAzNTYsIDAuMDAwMzc1LCAwLjAwMDM5MiIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogTk9SMlhMICoKLSAqIC0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoTk9SMlhMKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMDI2OTk3OTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNTgzNjc7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNTgwNDk3OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDU4MzY3OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDE0NywgMC4wMDAxNTUsIDAuMDAwMTU3LCAwLjAwMDE1OCwgMC4wMDAxNTksIDAuMDAwMTU5LCAwLjAwMDE1OSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDE3LCAwLjAwMDE3LCAwLjAwMDE3LCAwLjAwMDE3LCAwLjAwMDE3LCAwLjAwMDE3LCAwLjAwMDE3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2MTY0NTk7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjE2MzcxOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDYxNjQ1OTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAwNDksIDAuMDAwMDQ5LCAwLjAwMDA0OSwgMC4wMDAwNDksIDAuMDAwMDQ5LCAwLjAwMDA0OSwgMC4wMDAwNDkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxODIsIDAuMDAwMTgyLCAwLjAwMDE4MiwgMC4wMDAxODIsIDAuMDAwMTgyLCAwLjAwMDE4MiwgMC4wMDAxODIiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4wNDI3MjA2OwotICAgIGZ1bmN0aW9uIDogIighKEErQikpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yODY3MTMsIDAuMzM4MjM0LCAwLjgwMzMxMSwgMS41Nzc4NiwgMi4zNTI1NiwgNC4xNTcxNiwgNS4xODg3NSIsIFwKLSAgICAgICAgICAiMC4yOTgxNjgsIDAuMzUwMDI1LCAwLjgxNDUyLCAxLjU4OTQ5LCAyLjM2Mzc2LCA0LjE2ODk4LCA1LjIwMDQ1IiwgXAotICAgICAgICAgICIwLjMxMTI1NiwgMC4zNjI3MDksIDAuODI3NDk1LCAxLjYwMTc5LCAyLjM3NjYxLCA0LjE4MTkzLCA1LjIxMzQ2IiwgXAotICAgICAgICAgICIwLjMyMzc2OCwgMC4zNzUzNjYsIDAuODM5OTA4LCAxLjYxNDgxLCAyLjM4ODk2LCA0LjE5NDM3LCA1LjIyNTk2IiwgXAotICAgICAgICAgICIwLjMzNjA4LCAwLjM4NzYxMSwgMC44NTI5NjIsIDEuNjI3LCAyLjQwMjA2LCA0LjIwNzAxLCA1LjIzODQ5IiwgXAotICAgICAgICAgICIwLjM1NTY2MiwgMC40MDc1MTcsIDAuODcyNDExLCAxLjY0NzUxLCAyLjQyMTc4LCA0LjIyNzA0LCA1LjI1ODQiLCBcCi0gICAgICAgICAgIjAuMzcyOTQxLCAwLjQyNDc1NCwgMC44ODk4MTIsIDEuNjY0MDMsIDIuNDM4MjcsIDQuMjQ0MTYsIDUuMjc1NzgiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuNTQyMTkzLCAwLjY0NDgxOCwgMS41NDkxMSwgMy4wNjI3OCwgNC41NzYyMywgOC4xMDMyLCAxMC4xMTUiLCBcCi0gICAgICAgICAgIjAuNTQxNTgyLCAwLjY0MTEzMywgMS41NTQxNiwgMy4wNjIzNiwgNC41ODk5LCA4LjEwMzE3LCAxMC4xMTQiLCBcCi0gICAgICAgICAgIjAuNTQwMjczLCAwLjY0MzE2NCwgMS41NTQzMiwgMy4wNzIyLCA0LjU5MDAyLCA4LjEwMzQyLCAxMC4xMTQyIiwgXAotICAgICAgICAgICIwLjU0MDM4NCwgMC42NDM0MSwgMS41NTI3NywgMy4wNjI2NCwgNC41ODk3OSwgOC4xMDMxNSwgMTAuMTEzOSIsIFwKLSAgICAgICAgICAiMC41NDIxOTIsIDAuNjQzMDk3LCAxLjU0ODYzLCAzLjA3MjcsIDQuNTc2MTMsIDguMTAzMTgsIDEwLjExNCIsIFwKLSAgICAgICAgICAiMC41NDE3MjYsIDAuNjQwODc1LCAxLjU1NDA5LCAzLjA2MjYyLCA0LjU3NTkyLCA4LjA5OTk5LCAxMC4xMTQxIiwgXAotICAgICAgICAgICIwLjU0MzQxMiwgMC42NDM4MDEsIDEuNTU0MjUsIDMuMDgxNjcsIDQuNTg5MTYsIDguMTAyOTQsIDEwLjExNDkiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTY4NjU4LCAwLjE5ODM3NiwgMC40NjU4NTYsIDAuOTExNjk3LCAxLjM1NzI4LCAyLjM5NzIxLCAyLjk5MDY1IiwgXAotICAgICAgICAgICIwLjE4MDQ1MiwgMC4yMTAxOTUsIDAuNDc3Njc4LCAwLjkyMzM1MywgMS4zNjg3NywgMi40MDgzNywgMy4wMDI1NyIsIFwKLSAgICAgICAgICAiMC4xOTUyNSwgMC4yMjQ5OTIsIDAuNDkwODg5LCAwLjkzNjg3MiwgMS4zODIxNiwgMi40MjI0LCAzLjAxNTciLCBcCi0gICAgICAgICAgIjAuMjEwMzAyLCAwLjIzOTk3MiwgMC41MDc0NDgsIDAuOTQ4OTEsIDEuMzk0MzcsIDIuNDM0NDQsIDMuMDI3ODYiLCBcCi0gICAgICAgICAgIjAuMjI2MDA3LCAwLjI1NTA3OSwgMC41MjI0NzIsIDAuOTYyMzQsIDEuNDA4MTYsIDIuNDQ3ODksIDMuMDQwODYiLCBcCi0gICAgICAgICAgIjAuMjUwNDU0LCAwLjI4MDA5OSwgMC41NDYyNDYsIDAuOTkyMDYyLCAxLjQyOTQzLCAyLjQ2ODQ1LCAzLjA2MjU1IiwgXAotICAgICAgICAgICIwLjI3MTksIDAuMzAxNTQ2LCAwLjU2NzE0MSwgMS4wMTI4MywgMS40NTYzMiwgMi40ODgxOCwgMy4wODE3NSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMTgxODYsIDAuMzc2ODUyLCAwLjkwNTI2OSwgMS43ODYwNiwgMi42NjY5MSwgNC43MjE4NywgNS44OTY5MyIsIFwKLSAgICAgICAgICAiMC4zMTgxMDcsIDAuMzc2NzI4LCAwLjkwNTIwNCwgMS43ODYyMywgMi42NjU5OSwgNC43MjE3MywgNS44OTY0MyIsIFwKLSAgICAgICAgICAiMC4zMTgxODcsIDAuMzc2OTA0LCAwLjkwNTI4MSwgMS43ODYwOCwgMi42NjY5MSwgNC43MjI2NSwgNS45MDAwOSIsIFwKLSAgICAgICAgICAiMC4zMTgxNDgsIDAuMzc2ODIsIDAuOTA1Mzg0LCAxLjc4NjE1LCAyLjY2NzE0LCA0LjcyMDk1LCA1Ljg5Njc3IiwgXAotICAgICAgICAgICIwLjMxODU1NiwgMC4zNzY5MzYsIDAuOTA1MzYsIDEuNzg1OTcsIDIuNjY2NjYsIDQuNzIyNjcsIDUuODk0OTkiLCBcCi0gICAgICAgICAgIjAuMzIxODkxLCAwLjM3ODc0MiwgMC45MDU0NjEsIDEuNzg2MTUsIDIuNjY2NTQsIDQuNzIxMjYsIDUuOTAwNDgiLCBcCi0gICAgICAgICAgIjAuMzI2NTYxLCAwLjM4MjQ3NywgMC45MDUzNzgsIDEuNzg2MDIsIDIuNjY2NzQsIDQuNzIxODMsIDUuOTAwNTMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjgwNjQ0LCAwLjMzMjI5NSwgMC43OTcxNywgMS41NzE2NywgMi4zNDU4NywgNC4xNTEwNCwgNS4xODI3MSIsIFwKLSAgICAgICAgICAiMC4yOTEwMzcsIDAuMzQyNjcsIDAuODA3NDU4LCAxLjU4MTg1LCAyLjM1NjgxLCA0LjE2MTkxLCA1LjE5MzM3IiwgXAotICAgICAgICAgICIwLjMwMzgxNywgMC4zNTU0MjMsIDAuODIwMjg1LCAxLjU5NTE3LCAyLjM2ODk0LCA0LjE3NDYsIDUuMjA2MDciLCBcCi0gICAgICAgICAgIjAuMzE2NzI2LCAwLjM2ODQyLCAwLjgzMzQzNCwgMS42MDc4LCAyLjM4Mjc3LCA0LjE4NzgzLCA1LjIxOTE5IiwgXAotICAgICAgICAgICIwLjMyOTc4MywgMC4zODE0MjEsIDAuODQ2NTI4LCAxLjYyMDY3LCAyLjM5NTI2LCA0LjIwMDY0LCA1LjIzMjI2IiwgXAotICAgICAgICAgICIwLjM1MDYzNSwgMC40MDIzNiwgMC44Njc0MDQsIDEuNjQxNjIsIDIuNDE2NzMsIDQuMjIxNzEsIDUuMjUzMTEiLCBcCi0gICAgICAgICAgIjAuMzY4ODI0LCAwLjQyMDQ5NiwgMC44ODU3NTMsIDEuNjU5NywgMi40MzQ4MSwgNC4yMzk4OSwgNS4yNzEzNyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC41NDIxMjgsIDAuNjQxNDk0LCAxLjU0OTM4LCAzLjA3MzgsIDQuNTg5ODYsIDguMTAzMTEsIDEwLjExNSIsIFwKLSAgICAgICAgICAiMC41NDM2NTgsIDAuNjQyODQ3LCAxLjU1NDMxLCAzLjA3MjM2LCA0LjU5MDIxLCA4LjEwMzE3LCAxMC4xMTQiLCBcCi0gICAgICAgICAgIjAuNTQwMzU3LCAwLjY0MzE1NywgMS41NTA3NSwgMy4wNjI4NCwgNC41ODk2MywgOC4xMDAyNywgMTAuMTE1IiwgXAotICAgICAgICAgICIwLjU0MTkwNCwgMC42NDE2ODksIDEuNTQ5NjEsIDMuMDczMDEsIDQuNTc3MjQsIDguMTAzMjQsIDEwLjExMzgiLCBcCi0gICAgICAgICAgIjAuNTQxOTM2LCAwLjY0NDgyOCwgMS41NDkzMSwgMy4wNzAwMiwgNC41ODk4MiwgOC4xMDI5NywgMTAuMTEzOSIsIFwKLSAgICAgICAgICAiMC41NDI0ODcsIDAuNjQzMjU0LCAxLjU0OTI0LCAzLjA3MDExLCA0LjU3NTg5LCA4LjEwMDQ3LCAxMC4xMTQ5IiwgXAotICAgICAgICAgICIwLjU0NDk1MywgMC42NDQyMiwgMS41NDkyNSwgMy4wNjQ4LCA0LjU4OTkyLCA4LjEwMzAzLCAxMC4xMTQ4Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE2MzY0MSwgMC4xOTMzNzUsIDAuNDYwNjI4LCAwLjkwNjE0OCwgMS4zNTE2MiwgMi4zOTEwNCwgMi45ODUzIiwgXAotICAgICAgICAgICIwLjE3NTczMiwgMC4yMDU0NjEsIDAuNDcyNzQ3LCAwLjkxODM3NSwgMS4zNjM3MSwgMi40MDMyNywgMi45OTc0IiwgXAotICAgICAgICAgICIwLjE5MDYxLCAwLjIyMDI5MywgMC40ODYwMzksIDAuOTMxODg0LCAxLjM3NzA4LCAyLjQxNjYyLCAzLjAxMDY2IiwgXAotICAgICAgICAgICIwLjIwNjEwMSwgMC4yMzUxNjIsIDAuNTAyNTU2LCAwLjk0Mzk3LCAxLjM4OTM4LCAyLjQyOTQsIDMuMDIyODMiLCBcCi0gICAgICAgICAgIjAuMjIxMjg5LCAwLjI1MDI4OCwgMC41MTc2NjEsIDAuOTU3NTI5LCAxLjQwMzQ0LCAyLjQ0MzI2LCAzLjAzNTk5IiwgXAotICAgICAgICAgICIwLjI0NTY2OCwgMC4yNzUyOTIsIDAuNTQxNTQyLCAwLjk4NzMyNywgMS40MjQxNywgMi40NjQ2LCAzLjA1NzU4IiwgXAotICAgICAgICAgICIwLjI2NzEyMywgMC4yOTY3MzEsIDAuNTYyMjc3LCAxLjAwNzk2LCAxLjQ1MTM2LCAyLjQ4MzIxLCAzLjA3NjgzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMxMzA3MywgMC4zNzIxOTcsIDAuOTAzMTY4LCAxLjc4ODE0LCAyLjY2NTM3LCA0LjcyMzU1LCA1Ljg5NTEiLCBcCi0gICAgICAgICAgIjAuMzEyOTI0LCAwLjM3MTk2MSwgMC45MDM5MDMsIDEuNzg2NjYsIDIuNjY2MiwgNC43MjExNCwgNS44OTU0OSIsIFwKLSAgICAgICAgICAiMC4zMTI5NywgMC4zNzIxNjQsIDAuOTAzNzg3LCAxLjc4NTk1LCAyLjY3MjU1LCA0LjcyMzU2LCA1Ljg5NTIiLCBcCi0gICAgICAgICAgIjAuMzE0MDYsIDAuMzcxOTUzLCAwLjkwMDM3OCwgMS43ODcxNCwgMi42NjgxNSwgNC43MjYwNiwgNS44OTQ4NSIsIFwKLSAgICAgICAgICAiMC4zMTQwOTgsIDAuMzczMTA1LCAwLjkwMDcwNSwgMS43ODI2NywgMi42NjY2NCwgNC43MjQ4NSwgNS44OTM5MyIsIFwKLSAgICAgICAgICAiMC4zMTgwNDUsIDAuMzc1MTY5LCAwLjkwMTEzMywgMS43ODIxOCwgMi42NzM4MSwgNC43MjE0LCA1Ljg5NTM2IiwgXAotICAgICAgICAgICIwLjMyMjkyMywgMC4zNzg1MTEsIDAuOTAyMjgzLCAxLjc4NTgsIDIuNjYzMzQsIDQuNzIzOTksIDUuODk1MTUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDA5ODQsIDAuMDAwOTg0LCAwLjAwMDk4NCwgMC4wMDA5ODQsIDAuMDAwOTg0LCAwLjAwMDk4NCwgMC4wMDA5ODQiLCBcCi0gICAgICAgICAgIjAuMDAwOTgzLCAwLjAwMDk4MywgMC4wMDA5ODQsIDAuMDAwOTg0LCAwLjAwMDk4NCwgMC4wMDA5ODQsIDAuMDAwOTg0IiwgXAotICAgICAgICAgICIwLjAwMDk4MSwgMC4wMDA5ODIsIDAuMDAwOTgzLCAwLjAwMDk4NCwgMC4wMDA5ODQsIDAuMDAwOTg0LCAwLjAwMDk4NCIsIFwKLSAgICAgICAgICAiMC4wMDA5OCwgMC4wMDA5OCwgMC4wMDA5ODMsIDAuMDAwOTgzLCAwLjAwMDk4NCwgMC4wMDA5ODQsIDAuMDAwOTg0IiwgXAotICAgICAgICAgICIwLjAwMDk3OCwgMC4wMDA5OCwgMC4wMDA5ODIsIDAuMDAwOTgzLCAwLjAwMDk4NCwgMC4wMDA5ODQsIDAuMDAwOTg0IiwgXAotICAgICAgICAgICIwLjAwMDk3NywgMC4wMDA5NzgsIDAuMDAwOTgyLCAwLjAwMDk4MywgMC4wMDA5ODMsIDAuMDAwOTg0LCAwLjAwMDk4MyIsIFwKLSAgICAgICAgICAiMC4wMDA5NzUsIDAuMDAwOTc2LCAwLjAwMDk4MSwgMC4wMDA5ODMsIDAuMDAwOTgzLCAwLjAwMDk4NCwgMC4wMDA5ODQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDAxOTgsIDAuMDAwMTk4LCAwLjAwMDE5OCwgMC4wMDAxOTgsIDAuMDAwMTk4LCAwLjAwMDE5OCwgMC4wMDAxOTciLCBcCi0gICAgICAgICAgIjAuMDAwMTksIDAuMDAwMTksIDAuMDAwMTkxLCAwLjAwMDE5MSwgMC4wMDAxOTEsIDAuMDAwMTkxLCAwLjAwMDE5MSIsIFwKLSAgICAgICAgICAiMC4wMDAxODgsIDAuMDAwMTg4LCAwLjAwMDE4OSwgMC4wMDAxOSwgMC4wMDAxOSwgMC4wMDAxODksIDAuMDAwMTg5IiwgXAotICAgICAgICAgICIwLjAwMDE4NiwgMC4wMDAxODYsIDAuMDAwMTg5LCAwLjAwMDE4OSwgMC4wMDAxODksIDAuMDAwMTg5LCAwLjAwMDE4OCIsIFwKLSAgICAgICAgICAiMC4wMDAxODUsIDAuMDAwMTg0LCAwLjAwMDE4OCwgMC4wMDAxODgsIDAuMDAwMTg4LCAwLjAwMDE4OCwgMC4wMDAxODgiLCBcCi0gICAgICAgICAgIjAuMDAwMTgzLCAwLjAwMDE4NCwgMC4wMDAxODcsIDAuMDAwMTg4LCAwLjAwMDE4OCwgMC4wMDAxODgsIDAuMDAwMTg4IiwgXAotICAgICAgICAgICIwLjAwMDE4MSwgMC4wMDAxODIsIDAuMDAwMTg2LCAwLjAwMDE4OCwgMC4wMDAxODgsIDAuMDAwMTg4LCAwLjAwMDE4OCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDg0NiwgMC4wMDA4NDYsIDAuMDAwODQ3LCAwLjAwMDg0NywgMC4wMDA4NDcsIDAuMDAwODQ3LCAwLjAwMDg0NiIsIFwKLSAgICAgICAgICAiMC4wMDA4NDQsIDAuMDAwODQ1LCAwLjAwMDg0NiwgMC4wMDA4NDYsIDAuMDAwODQ3LCAwLjAwMDg0NywgMC4wMDA4NDYiLCBcCi0gICAgICAgICAgIjAuMDAwODQyLCAwLjAwMDg0MiwgMC4wMDA4NDUsIDAuMDAwODQ2LCAwLjAwMDg0NiwgMC4wMDA4NDYsIDAuMDAwODQ2IiwgXAotICAgICAgICAgICIwLjAwMDgzOSwgMC4wMDA4NCwgMC4wMDA4NDQsIDAuMDAwODQ1LCAwLjAwMDg0NiwgMC4wMDA4NDYsIDAuMDAwODQ2IiwgXAotICAgICAgICAgICIwLjAwMDgzOCwgMC4wMDA4MzksIDAuMDAwODQzLCAwLjAwMDg0NSwgMC4wMDA4NDUsIDAuMDAwODQ2LCAwLjAwMDg0NiIsIFwKLSAgICAgICAgICAiMC4wMDA4MzUsIDAuMDAwODM2LCAwLjAwMDg0MiwgMC4wMDA4NDQsIDAuMDAwODQ1LCAwLjAwMDg0NSwgMC4wMDA4NDUiLCBcCi0gICAgICAgICAgIjAuMDAwODMzLCAwLjAwMDgzNSwgMC4wMDA4NDEsIDAuMDAwODQ0LCAwLjAwMDg0NSwgMC4wMDA4NDYsIDAuMDAwODQ2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwMDMyLCAwLjAwMDAzMiwgMC4wMDAwMzMsIDAuMDAwMDMzLCAwLjAwMDAzMywgMC4wMDAwMzMsIDAuMDAwMDMzIiwgXAotICAgICAgICAgICIwLjAwMDAzNSwgMC4wMDAwMzYsIDAuMDAwMDM4LCAwLjAwMDAzOSwgMC4wMDAwMzksIDAuMDAwMDM5LCAwLjAwMDAzOSIsIFwKLSAgICAgICAgICAiMC4wMDAwMzMsIDAuMDAwMDM0LCAwLjAwMDAzOCwgMC4wMDAwMzksIDAuMDAwMDQsIDAuMDAwMDQsIDAuMDAwMDQxIiwgXAotICAgICAgICAgICIwLjAwMDAzLCAwLjAwMDAzMiwgMC4wMDAwMzcsIDAuMDAwMDM5LCAwLjAwMDA0LCAwLjAwMDA0MSwgMC4wMDAwNDEiLCBcCi0gICAgICAgICAgIjAuMDAwMDI4LCAwLjAwMDAyOSwgMC4wMDAwMzYsIDAuMDAwMDM5LCAwLjAwMDA0LCAwLjAwMDA0MSwgMC4wMDAwNDEiLCBcCi0gICAgICAgICAgIjAuMDAwMDI0LCAwLjAwMDAyNiwgMC4wMDAwMzQsIDAuMDAwMDM4LCAwLjAwMDAzOSwgMC4wMDAwNCwgMC4wMDAwNDEiLCBcCi0gICAgICAgICAgIjAuMDAwMDIxLCAwLjAwMDAyMywgMC4wMDAwMzMsIDAuMDAwMDM3LCAwLjAwMDAzOSwgMC4wMDAwNCwgMC4wMDAwNDEiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBOT1IzQlgxICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKE5PUjNCWDEpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4wODMwNzEzOwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBTikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNTkzNzI1OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDU5MzQzNzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA1OTM3MjU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNDc1LCAwLjAwMDQ1OCwgMC4wMDA0NDgsIDAuMDAwNDQ0LCAwLjAwMDQ0MSwgMC4wMDA0NCwgMC4wMDA0NCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTE4MSwgMC4wMDExNjksIDAuMDAxMTYsIDAuMDAxMTU1LCAwLjAwMTE1MiwgMC4wMDExNDksIDAuMDAxMTQ5Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA4Njk1ODU7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwODYzNzczOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDg2OTU4NTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxMzcsIDAuMDAwMTM3LCAwLjAwMDEzNywgMC4wMDAxMzcsIDAuMDAwMTM3LCAwLjAwMDEzNywgMC4wMDAxMzciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAzMDksIDAuMDAwMzA5LCAwLjAwMDMwOSwgMC4wMDAzMDksIDAuMDAwMzA5LCAwLjAwMDMwOSwgMC4wMDAzMDkiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEMpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDg5MTA0OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDg5MDg4MjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA4OTEwNDsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAwOTEsIDAuMDAwMDkyLCAwLjAwMDA5MSwgMC4wMDAwOTEsIDAuMDAwMDkxLCAwLjAwMDA5MSwgMC4wMDAwOTEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA1MzEsIDAuMDAwNTMxLCAwLjAwMDUzMSwgMC4wMDA1MzEsIDAuMDAwNTMsIDAuMDAwNTMxLCAwLjAwMDUzIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMDQ2MTc4OTsKLSAgICBmdW5jdGlvbiA6ICIoISgoKCFBTikrQikrQykpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzExMDE4LCAwLjQ0Njc1NiwgMS4yMTU3LCAxLjg5MzE5LCAyLjc5ODEsIDQuNjA0NzQsIDUuNzMzOTkiLCBcCi0gICAgICAgICAgIjAuMzIzMDgyLCAwLjQ1ODY3MSwgMS4yMjc3NiwgMS45MDU5NiwgMi44MDkzNCwgNC42MTY2NiwgNS43NDU4MSIsIFwKLSAgICAgICAgICAiMC4zMzgyODksIDAuNDc0MDQyLCAxLjI0MjY3LCAxLjkyMDg3LCAyLjgyNTAyLCA0LjYzMjAxLCA1Ljc2MTA4IiwgXAotICAgICAgICAgICIwLjM1MzQwNCwgMC40ODkwNTYsIDEuMjU3NiwgMS45MzYwOSwgMi44NDA0NCwgNC42NDcxLCA1Ljc3NjM1IiwgXAotICAgICAgICAgICIwLjM2ODAyOCwgMC41MDM2OSwgMS4yNzI1LCAxLjk1MDczLCAyLjg1NDg3LCA0LjY2MTg3LCA1Ljc5MDk1IiwgXAotICAgICAgICAgICIwLjM4OTU4OSwgMC41MjUyOTQsIDEuMjk0MTIsIDEuOTcyMzIsIDIuODc2MjIsIDQuNjgzMzYsIDUuODEyNzQiLCBcCi0gICAgICAgICAgIjAuNDA2NTc0LCAwLjU0MjMzMywgMS4zMTEzMSwgMS45OTAyMiwgMi44OTM2MSwgNC43MDA1OSwgNS44Mjk3NyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC40OTE3NDgsIDAuNzUzMzgxLCAyLjIzNTkzLCAzLjUzNjU2LCA1LjI3MjEyLCA4Ljc0MjYsIDEwLjkxMTEiLCBcCi0gICAgICAgICAgIjAuNDkzMDQyLCAwLjc1NDA1MiwgMi4yMzY0MiwgMy41NDU1NSwgNS4yNzY2OSwgOC43NDQ5NywgMTAuOTEwOCIsIFwKLSAgICAgICAgICAiMC40OTI5MzgsIDAuNzU0NDYsIDIuMjMxMjgsIDMuNTM1NTcsIDUuMjg0MjcsIDguNzQxOCwgMTAuOTExIiwgXAotICAgICAgICAgICIwLjQ5MjkxNywgMC43NTQwMzMsIDIuMjM0MzEsIDMuNTQ0NzksIDUuMjg0NTEsIDguNzQyNTcsIDEwLjkxMTEiLCBcCi0gICAgICAgICAgIjAuNDkyOTI0LCAwLjc1Mzk5OCwgMi4yMzEyNSwgMy41MzUyMiwgNS4yODQyNiwgOC43NDI2MSwgMTAuOTEwOCIsIFwKLSAgICAgICAgICAiMC40OTI4NTksIDAuNzU0MDM3LCAyLjIzNDkxLCAzLjU0NDY0LCA1LjI3Njk4LCA4Ljc0MjQsIDEwLjkxMSIsIFwKLSAgICAgICAgICAiMC40OTIxNTUsIDAuNzUzOTcyLCAyLjIzNTM2LCAzLjU0NjE3LCA1LjI4NDI4LCA4Ljc0MjUyLCAxMC45MTEiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTM4Nzk0LCAwLjE4ODYzOCwgMC40Njk0MTMsIDAuNzE2NTkzLCAxLjA0NTkxLCAxLjcwNDkyLCAyLjExNjgiLCBcCi0gICAgICAgICAgIjAuMTUwMzcxLCAwLjIwMDIzMSwgMC40ODA5NzUsIDAuNzI4MjI4LCAxLjA1Nzc1LCAxLjcxNTk3LCAyLjEyODgiLCBcCi0gICAgICAgICAgIjAuMTY1MDc5LCAwLjIxNDkyOSwgMC40OTU2NzksIDAuNzQyOTEzLCAxLjA3MjI4LCAxLjczMTEzLCAyLjE0MzM3IiwgXAotICAgICAgICAgICIwLjE3OTQ3NiwgMC4yMjkzNDIsIDAuNTEwMTEsIDAuNzU3MzAzLCAxLjA4NjcyLCAxLjc0NTE4LCAyLjE1NzU2IiwgXAotICAgICAgICAgICIwLjE5MjYzLCAwLjI0MjUwNywgMC41MjMyNzgsIDAuNzcwNDc1LCAxLjEwMDAyLCAxLjc1ODI5LCAyLjE3MDc2IiwgXAotICAgICAgICAgICIwLjIxMTY3NiwgMC4yNjE1MzYsIDAuNTQyMjg4LCAwLjc4OTU2NiwgMS4xMTg3OSwgMS43Nzc4OCwgMi4xODk1IiwgXAotICAgICAgICAgICIwLjIyNjc2OSwgMC4yNzY2MzUsIDAuNTU3MzQ5LCAwLjgwNDU4MywgMS4xMzM5MiwgMS43OTI1MywgMi4yMDUxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE5MzE5OCwgMC4yOTEwMDEsIDAuODQ1NzM5LCAxLjMzNTQzLCAxLjk4ODI2LCAzLjI5NDA1LCA0LjEwOTYzIiwgXAotICAgICAgICAgICIwLjE5MzE2OCwgMC4yOTA5MTMsIDAuODQ1OTYzLCAxLjMzNTcsIDEuOTg4MjQsIDMuMjk0MTUsIDQuMTA5OTgiLCBcCi0gICAgICAgICAgIjAuMTkzMTkxLCAwLjI5MTAwMiwgMC44NDYxNDIsIDEuMzM1NjgsIDEuOTg4MzksIDMuMjk0NjIsIDQuMTA5OTUiLCBcCi0gICAgICAgICAgIjAuMTkzMjU1LCAwLjI5MDkzOSwgMC44NDU5NTYsIDEuMzM1NzgsIDEuOTg4NzIsIDMuMjkzNTYsIDQuMTA5NjYiLCBcCi0gICAgICAgICAgIjAuMTkzMzI3LCAwLjI5MDkzLCAwLjg0NTk1NSwgMS4zMzU1OCwgMS45ODgxOCwgMy4yOTI3OSwgNC4xMDk2OSIsIFwKLSAgICAgICAgICAiMC4xOTM3NTUsIDAuMjkxMTE0LCAwLjg0NjE4NywgMS4zMzU5LCAxLjk4ODY0LCAzLjI5Mzk0LCA0LjExMDc2IiwgXAotICAgICAgICAgICIwLjE5NDE5MywgMC4yOTEzODEsIDAuODQ1ODM4LCAxLjMzNTksIDEuOTg4MjQsIDMuMjkzNTUsIDQuMTA5OTEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjY5NTQ2LCAwLjQwNTI3OSwgMS4xNzQzMywgMS44NTI3OCwgMi43NTYxLCA0LjU2MzAxLCA1LjY5MjU2IiwgXAotICAgICAgICAgICIwLjI4MDE5LCAwLjQxNjA0LCAxLjE4NDkyLCAxLjg2MjczLCAyLjc2Njc4LCA0LjU3Mzk1LCA1LjcwMzA3IiwgXAotICAgICAgICAgICIwLjI5MjYzMiwgMC40MjgzODIsIDEuMTk3NTEsIDEuODc2MjgsIDIuNzc5NTUsIDQuNTg2NjMsIDUuNzE1NyIsIFwKLSAgICAgICAgICAiMC4zMDQ2MDMsIDAuNDQwMzQsIDEuMjA5MzUsIDEuODg3NDIsIDIuNzkxNjIsIDQuNTk4NTksIDUuNzI3NzYiLCBcCi0gICAgICAgICAgIjAuMzE2MzY3LCAwLjQ1MjA3LCAxLjIyMTMsIDEuODk5OTcsIDIuODAzNTYsIDQuNjEwMiwgNS43Mzk4NiIsIFwKLSAgICAgICAgICAiMC4zMzUxNTQsIDAuNDcxMjE2LCAxLjI0MDM4LCAxLjkxODk0LCAyLjgyMjIzLCA0LjYyOTYyLCA1Ljc1ODk4IiwgXAotICAgICAgICAgICIwLjM1MTQ4NSwgMC40ODcxMjgsIDEuMjU2MywgMS45MzQ0MywgMi44MzkxOSwgNC42NDYxMiwgNS43NzUyOCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC40OTE3NzksIDAuNzUzMTY5LCAyLjIzMDA1LCAzLjU0NTg0LCA1LjI3MjMyLCA4Ljc0NDc0LCAxMC45MTEyIiwgXAotICAgICAgICAgICIwLjQ5MTg5OCwgMC43NTI2MDksIDIuMjM2MDIsIDMuNTM0MzgsIDUuMjcyNDgsIDguNzQ1MDEsIDEwLjkxMDciLCBcCi0gICAgICAgICAgIjAuNDkyNzU5LCAwLjc1MzExLCAyLjIzNjAyLCAzLjU0NjIzLCA1LjI4NDIxLCA4Ljc0NDczLCAxMC45MTA2IiwgXAotICAgICAgICAgICIwLjQ5MzE2LCAwLjc1Mjc4OSwgMi4yMzA3MywgMy41NDQ2LCA1LjI4NDI5LCA4Ljc0MjY2LCAxMC45MTEiLCBcCi0gICAgICAgICAgIjAuNDkzMDI4LCAwLjc1MzA2NywgMi4yMzU4MiwgMy41NDU4OSwgNS4yODQzMiwgOC43NDM3LCAxMC45MTExIiwgXAotICAgICAgICAgICIwLjQ5MjQwNiwgMC43NTQzNDgsIDIuMjM2MDUsIDMuNTQ1NjYsIDUuMjc2NDQsIDguNzQ0NjYsIDEwLjkxMTEiLCBcCi0gICAgICAgICAgIjAuNDk0NDIyLCAwLjc1NDY1NSwgMi4yMzYyMywgMy41MzY0MiwgNS4yODQzNiwgOC43NDIwNSwgMTAuOTEwOSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDE3NDksIDAuMTUxMjg1LCAwLjQzMTUyMiwgMC42Nzg2MzMsIDEuMDA3NjksIDEuNjY2MTgsIDIuMDc4NDMiLCBcCi0gICAgICAgICAgIjAuMTEzNTEsIDAuMTYzMDYxLCAwLjQ0MzE2MSwgMC42OTAxMDUsIDEuMDE5MjksIDEuNjc3NjksIDIuMDg5MjUiLCBcCi0gICAgICAgICAgIjAuMTI3NjI1LCAwLjE3NzY2OSwgMC40NTc4MDcsIDAuNzA0OTIzLCAxLjAzNDMxLCAxLjY5MzIxLCAyLjEwNDMiLCBcCi0gICAgICAgICAgIjAuMTQzNDMzLCAwLjE5MjgyNywgMC40NzMxMjQsIDAuNzIwMTc4LCAxLjA0NjcsIDEuNzA1NDEsIDIuMTE2MjUiLCBcCi0gICAgICAgICAgIjAuMTU4NjQ0LCAwLjIwODE5LCAwLjQ4NzE0NiwgMC43MzEwNzEsIDEuMDY0MTcsIDEuNzIyNjQsIDIuMTM1MDciLCBcCi0gICAgICAgICAgIjAuMTgyMzE3LCAwLjIzMTg2OCwgMC41MTA2NDcsIDAuNzU3Njk5LCAxLjA4Njc4LCAxLjczNzUzLCAyLjE0OTM1IiwgXAotICAgICAgICAgICIwLjIwMzM5OSwgMC4yNTI5MzIsIDAuNTMxMTUyLCAwLjc3ODM5MywgMS4xMDc0OSwgMS43NTY0NSwgMi4xNjc1NyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xODY0NTksIDAuMjg0NTE3LCAwLjgzOTUwMiwgMS4zMjkzMSwgMS45ODIxLCAzLjI4NzY0LCA0LjEwNDEyIiwgXAotICAgICAgICAgICIwLjE4NjU4LCAwLjI4NDUwNiwgMC44MzkyMDgsIDEuMzI5MiwgMS45ODEyNywgMy4yODYyMywgNC4xMDI4MSIsIFwKLSAgICAgICAgICAiMC4xODY1MTQsIDAuMjg0NDc5LCAwLjgzOTYwOSwgMS4zMjg5OCwgMS45ODE2NiwgMy4yODcxMywgNC4xMDM2NSIsIFwKLSAgICAgICAgICAiMC4xODc3NjIsIDAuMjg0NTI5LCAwLjgzOTU5MywgMS4zMjkwMiwgMS45ODE2NSwgMy4yODcwNSwgNC4xMDMxMiIsIFwKLSAgICAgICAgICAiMC4xOTA3MjIsIDAuMjg1NDkyLCAwLjgzOTU5NiwgMS4zMjksIDEuOTgyMDQsIDMuMjg3MDUsIDQuMTAzODMiLCBcCi0gICAgICAgICAgIjAuMTk4MzA3LCAwLjI4OTgwNywgMC44Mzk1OTgsIDEuMzI4OTgsIDEuOTgxNzUsIDMuMjg5NiwgNC4xMDMyIiwgXAotICAgICAgICAgICIwLjIwNjY5NywgMC4yOTU1MDksIDAuODM5NDYyLCAxLjMyOTAxLCAxLjk4MjEyLCAzLjI4NzAzLCA0LjEwMzUyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI1NjM2MiwgMC4zOTIxMzYsIDEuMTYwNzEsIDEuODM4NDEsIDIuNzQzMiwgNC41NTAwNiwgNS42NzkyNiIsIFwKLSAgICAgICAgICAiMC4yNjU3MTYsIDAuNDAxNDQ1LCAxLjE3MDI0LCAxLjg0ODQxLCAyLjc1MjMyLCA0LjU1OTU2LCA1LjY4ODk4IiwgXAotICAgICAgICAgICIwLjI3NzgzOCwgMC40MTM1MjEsIDEuMTgyNTEsIDEuODYwNjksIDIuNzY0NTksIDQuNTcxODQsIDUuNzAxIiwgXAotICAgICAgICAgICIwLjI4OTczOCwgMC40MjU1ODEsIDEuMTk0NCwgMS44NzI5LCAyLjc3NzE0LCA0LjU4NDA5LCA1LjcxMzI2IiwgXAotICAgICAgICAgICIwLjMwMTE4NSwgMC40Mzc2NSwgMS4yMDY1MSwgMS44ODQ4MywgMi43ODg3LCA0LjU5NjI1LCA1LjcyNTQiLCBcCi0gICAgICAgICAgIjAuMzIwOTk4LCAwLjQ1NzEzMSwgMS4yMjYwMSwgMS45MDQxLCAyLjgwODczLCA0LjYxNTc1LCA1Ljc0NDg5IiwgXAotICAgICAgICAgICIwLjMzODE0NywgMC40NzM5OTMsIDEuMjQzMDYsIDEuOTIxNjQsIDIuODI1NDYsIDQuNjMyOTMsIDUuNzYyMyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC40OTI3NDQsIDAuNzU0NDEsIDIuMjMwMzYsIDMuNTQzMzgsIDUuMjg0NCwgOC43NDIzLCAxMC45MTAxIiwgXAotICAgICAgICAgICIwLjQ5MjgyNywgMC43NTQwMjMsIDIuMjMyNjQsIDMuNTM0MTYsIDUuMjc3NjcsIDguNzQ0NzIsIDEwLjkxMTIiLCBcCi0gICAgICAgICAgIjAuNDkxODE0LCAwLjc1Mzk3MiwgMi4yMzUxNCwgMy41NDQ2MiwgNS4yNzczNSwgOC43NDQ3NCwgMTAuOTEwNyIsIFwKLSAgICAgICAgICAiMC40OTI3MjYsIDAuNzUzMTg2LCAyLjIzMTksIDMuNTM0MzYsIDUuMjg0MzQsIDguNzQyMjcsIDEwLjkxMTEiLCBcCi0gICAgICAgICAgIjAuNDkxODkxLCAwLjc1NDAxNCwgMi4yMzIzMywgMy41MzY5NywgNS4yODI2NSwgOC43NDQ4OSwgMTAuOTExIiwgXAotICAgICAgICAgICIwLjQ5NDEyMiwgMC43NTIxNTQsIDIuMjM0NCwgMy41MzcwOCwgNS4yODQzLCA4Ljc0NDgxLCAxMC45MTEiLCBcCi0gICAgICAgICAgIjAuNDk3NTkyLCAwLjc1MzExOSwgMi4yMzIwNywgMy41Mzc4NiwgNS4yNzU5NywgOC43NDQ4NywgMTAuOTExMiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTY4NzksIDAuMTQ2MjY3LCAwLjQyNjI3OSwgMC42NzMwNjcsIDEuMDAyMjEsIDEuNjYxMTksIDIuMDcyMjYiLCBcCi0gICAgICAgICAgIjAuMTA4ODM1LCAwLjE1ODI2MiwgMC40MzgxNzIsIDAuNjg1MDIyLCAxLjAxNDIyLCAxLjY3MjU1LCAyLjA4NDU3IiwgXAotICAgICAgICAgICIwLjEyMzQyNSwgMC4xNzMxMjQsIDAuNDUyNjkxLCAwLjY5OTY0LCAxLjAyOTM2LCAxLjY4NzIsIDIuMTAwNDgiLCBcCi0gICAgICAgICAgIjAuMTM4NzU1LCAwLjE4NzY3OCwgMC40Njc0NzcsIDAuNzEwMjczLCAxLjA0MTM4LCAxLjY5OTY4LCAyLjExMTg1IiwgXAotICAgICAgICAgICIwLjE1MzgwNiwgMC4yMDMxMjEsIDAuNDgyMzI1LCAwLjcyNjE1OSwgMS4wNTUyOSwgMS43MTQyNSwgMi4xMjY0OCIsIFwKLSAgICAgICAgICAiMC4xNzc2NTEsIDAuMjI3MTU3LCAwLjUwNzAwOSwgMC43NTI4MSwgMS4wODE4MSwgMS43MzI0NSwgMi4xNDQ1MSIsIFwKLSAgICAgICAgICAiMC4xOTkwODcsIDAuMjQ4MDI3LCAwLjUyNjUsIDAuNzczNTY5LCAxLjEwMjQ4LCAxLjc1MTcxLCAyLjE2MjQ4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE4MjEzOCwgMC4yODA0OTgsIDAuODM1MDEzLCAxLjMyNjcsIDEuOTc3NzYsIDMuMjg2MTUsIDQuMTA4MyIsIFwKLSAgICAgICAgICAiMC4xODIxNDEsIDAuMjc5ODQsIDAuODM0OTY2LCAxLjMyNTUyLCAxLjk3ODY3LCAzLjI4Njc4LCA0LjEwOTM5IiwgXAotICAgICAgICAgICIwLjE4MjE2NiwgMC4yNzk1OSwgMC44MzUzMzcsIDEuMzI0NywgMS45Nzg5OCwgMy4yOTYzNSwgNC4xMDYxOSIsIFwKLSAgICAgICAgICAiMC4xODM2NDksIDAuMjc5NTA1LCAwLjgzNDk5OCwgMS4zMjczLCAxLjk4MDcxLCAzLjI4NDgyLCA0LjEwODY0IiwgXAotICAgICAgICAgICIwLjE4Njg5NSwgMC4yODE3NDcsIDAuODM1NDQ5LCAxLjMyNzUyLCAxLjk3NzY2LCAzLjI4NTY0LCA0LjEwNjM2IiwgXAotICAgICAgICAgICIwLjE5NDU4OSwgMC4yODYyODgsIDAuODM3MzA5LCAxLjMyNTE4LCAxLjk3NzczLCAzLjI5NDgxLCA0LjEwMzEyIiwgXAotICAgICAgICAgICIwLjIwMjY4OSwgMC4yOTIxOCwgMC44MzQ5NDQsIDEuMzI1NDYsIDEuOTgzMjksIDMuMjg0NzksIDQuMTA5ODQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyMDQ0LCAwLjAwMjA0NSwgMC4wMDIwNDYsIDAuMDAyMDQ2LCAwLjAwMjA0NywgMC4wMDIwNDYsIDAuMDAyMDQ0IiwgXAotICAgICAgICAgICIwLjAwMjAyOCwgMC4wMDIwMjksIDAuMDAyMDMsIDAuMDAyMDMsIDAuMDAyMDMsIDAuMDAyMDMsIDAuMDAyMDI5IiwgXAotICAgICAgICAgICIwLjAwMjAxNiwgMC4wMDIwMTgsIDAuMDAyMDIsIDAuMDAyMDIsIDAuMDAyMDIsIDAuMDAyMDE5LCAwLjAwMjAxOSIsIFwKLSAgICAgICAgICAiMC4wMDIwMSwgMC4wMDIwMTIsIDAuMDAyMDE1LCAwLjAwMjAxNSwgMC4wMDIwMTUsIDAuMDAyMDE1LCAwLjAwMjAxNCIsIFwKLSAgICAgICAgICAiMC4wMDIwMDgsIDAuMDAyMDEsIDAuMDAyMDEzLCAwLjAwMjAxNCwgMC4wMDIwMTUsIDAuMDAyMDE0LCAwLjAwMjAxNCIsIFwKLSAgICAgICAgICAiMC4wMDIwMDcsIDAuMDAyMDEsIDAuMDAyMDE0LCAwLjAwMjAxNSwgMC4wMDIwMTUsIDAuMDAyMDE2LCAwLjAwMjAxNSIsIFwKLSAgICAgICAgICAiMC4wMDIwMDYsIDAuMDAyMDA5LCAwLjAwMjAxNCwgMC4wMDIwMTQsIDAuMDAyMDE1LCAwLjAwMjAxNSwgMC4wMDIwMTUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDIxNTQsIDAuMDAyMTU0LCAwLjAwMjE1NCwgMC4wMDIxNTQsIDAuMDAyMTUzLCAwLjAwMjE1MiwgMC4wMDIxNTIiLCBcCi0gICAgICAgICAgIjAuMDAyMTQxLCAwLjAwMjE0MSwgMC4wMDIxNDEsIDAuMDAyMTQsIDAuMDAyMTQxLCAwLjAwMjE0LCAwLjAwMjEzOSIsIFwKLSAgICAgICAgICAiMC4wMDIxMywgMC4wMDIxMzEsIDAuMDAyMTMxLCAwLjAwMjEzMSwgMC4wMDIxMywgMC4wMDIxMywgMC4wMDIxMjkiLCBcCi0gICAgICAgICAgIjAuMDAyMTI2LCAwLjAwMjEyNiwgMC4wMDIxMjgsIDAuMDAyMTI3LCAwLjAwMjEyNywgMC4wMDIxMjYsIDAuMDAyMTI1IiwgXAotICAgICAgICAgICIwLjAwMjEyLCAwLjAwMjEyMiwgMC4wMDIxMjMsIDAuMDAyMTIzLCAwLjAwMjEyMywgMC4wMDIxMjIsIDAuMDAyMTIxIiwgXAotICAgICAgICAgICIwLjAwMjExOCwgMC4wMDIxMTksIDAuMDAyMTIxLCAwLjAwMjEyMSwgMC4wMDIxMiwgMC4wMDIxMTksIDAuMDAyMTE5IiwgXAotICAgICAgICAgICIwLjAwMjExNSwgMC4wMDIxMTcsIDAuMDAyMTIsIDAuMDAyMTIsIDAuMDAyMTE5LCAwLjAwMjExOSwgMC4wMDIxMTgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDE3MjMsIDAuMDAxNzIzLCAwLjAwMTcyMywgMC4wMDE3MjQsIDAuMDAxNzI0LCAwLjAwMTcyMywgMC4wMDE3MjMiLCBcCi0gICAgICAgICAgIjAuMDAxNzE4LCAwLjAwMTcyLCAwLjAwMTcyMSwgMC4wMDE3MjQsIDAuMDAxNzIzLCAwLjAwMTcyMywgMC4wMDE3MjEiLCBcCi0gICAgICAgICAgIjAuMDAxNzE0LCAwLjAwMTcxNywgMC4wMDE3MjEsIDAuMDAxNzIyLCAwLjAwMTcyMywgMC4wMDE3MjIsIDAuMDAxNzIyIiwgXAotICAgICAgICAgICIwLjAwMTcxLCAwLjAwMTcxNCwgMC4wMDE3MiwgMC4wMDE3MjEsIDAuMDAxNzIyLCAwLjAwMTcyMywgMC4wMDE3MjIiLCBcCi0gICAgICAgICAgIjAuMDAxNzA3LCAwLjAwMTcxMSwgMC4wMDE3MTksIDAuMDAxNzIxLCAwLjAwMTcyMiwgMC4wMDE3MjQsIDAuMDAxNzIxIiwgXAotICAgICAgICAgICIwLjAwMTcwMywgMC4wMDE3MDgsIDAuMDAxNzE2LCAwLjAwMTcxOSwgMC4wMDE3MjEsIDAuMDAxNzIsIDAuMDAxNzIyIiwgXAotICAgICAgICAgICIwLjAwMTY5OSwgMC4wMDE3MDQsIDAuMDAxNzE2LCAwLjAwMTcxOSwgMC4wMDE3MjEsIDAuMDAxNzIyLCAwLjAwMTcyMSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDMzNywgMC4wMDAzMzcsIDAuMDAwMzM3LCAwLjAwMDMzNywgMC4wMDAzMzcsIDAuMDAwMzM2LCAwLjAwMDMzNiIsIFwKLSAgICAgICAgICAiMC4wMDAzMzMsIDAuMDAwMzM0LCAwLjAwMDMzNiwgMC4wMDAzMzYsIDAuMDAwMzM2LCAwLjAwMDMzNiwgMC4wMDAzMzYiLCBcCi0gICAgICAgICAgIjAuMDAwMzI0LCAwLjAwMDMzLCAwLjAwMDMzNSwgMC4wMDAzMzUsIDAuMDAwMzM2LCAwLjAwMDMzNiwgMC4wMDAzMzYiLCBcCi0gICAgICAgICAgIjAuMDAwMzIyLCAwLjAwMDMyNywgMC4wMDAzMzMsIDAuMDAwMzM1LCAwLjAwMDMzNSwgMC4wMDAzMzUsIDAuMDAwMzM1IiwgXAotICAgICAgICAgICIwLjAwMDMxOCwgMC4wMDAzMjQsIDAuMDAwMzMyLCAwLjAwMDMzMywgMC4wMDAzMzUsIDAuMDAwMzM1LCAwLjAwMDMzNSIsIFwKLSAgICAgICAgICAiMC4wMDAzMTIsIDAuMDAwMzIsIDAuMDAwMzMsIDAuMDAwMzMzLCAwLjAwMDMzNCwgMC4wMDAzMzQsIDAuMDAwMzM0IiwgXAotICAgICAgICAgICIwLjAwMDMwOSwgMC4wMDAzMTcsIDAuMDAwMzI5LCAwLjAwMDMzMiwgMC4wMDAzMzMsIDAuMDAwMzM0LCAwLjAwMDMzNCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTQ3MiwgMC4wMDE0NzMsIDAuMDAxNDczLCAwLjAwMTQ3MywgMC4wMDE0NzQsIDAuMDAxNDY4LCAwLjAwMTQ3MyIsIFwKLSAgICAgICAgICAiMC4wMDE0NjUsIDAuMDAxNDY4LCAwLjAwMTQ3MiwgMC4wMDE0NzIsIDAuMDAxNDczLCAwLjAwMTQ3MywgMC4wMDE0NzIiLCBcCi0gICAgICAgICAgIjAuMDAxNDU4LCAwLjAwMTQ2MywgMC4wMDE0NywgMC4wMDE0NzEsIDAuMDAxNDcyLCAwLjAwMTQ3MSwgMC4wMDE0NzEiLCBcCi0gICAgICAgICAgIjAuMDAxNDUyLCAwLjAwMTQ1OCwgMC4wMDE0NjgsIDAuMDAxNDcsIDAuMDAxNDcxLCAwLjAwMTQ3MywgMC4wMDE0NzEiLCBcCi0gICAgICAgICAgIjAuMDAxNDQ2LCAwLjAwMTQ1NCwgMC4wMDE0NjcsIDAuMDAxNDY5LCAwLjAwMTQ3MSwgMC4wMDE0NzEsIDAuMDAxNDcxIiwgXAotICAgICAgICAgICIwLjAwMTQ0MSwgMC4wMDE0NDksIDAuMDAxNDY0LCAwLjAwMTQ2NywgMC4wMDE0NjksIDAuMDAxNDcxLCAwLjAwMTQ3IiwgXAotICAgICAgICAgICIwLjAwMTQzNywgMC4wMDE0NDUsIDAuMDAxNDYxLCAwLjAwMTQ2NSwgMC4wMDE0NjgsIDAuMDAxNDcsIDAuMDAxNDY5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwMDQ1LCAwLjAwMDA0NiwgMC4wMDAwNDcsIDAuMDAwMDQ3LCAwLjAwMDA0NywgMC4wMDAwNDcsIDAuMDAwMDQ3IiwgXAotICAgICAgICAgICIwLjAwMDA1NSwgMC4wMDAwNTksIDAuMDAwMDY0LCAwLjAwMDA2NSwgMC4wMDAwNjUsIDAuMDAwMDY2LCAwLjAwMDA2NiIsIFwKLSAgICAgICAgICAiMC4wMDAwNSwgMC4wMDAwNTcsIDAuMDAwMDY2LCAwLjAwMDA2OCwgMC4wMDAwNjksIDAuMDAwMDY5LCAwLjAwMDA3IiwgXAotICAgICAgICAgICIwLjAwMDA0NiwgMC4wMDAwNTQsIDAuMDAwMDY2LCAwLjAwMDA3LCAwLjAwMDA3MSwgMC4wMDAwNzIsIDAuMDAwMDczIiwgXAotICAgICAgICAgICIwLjAwMDAzOSwgMC4wMDAwNSwgMC4wMDAwNjUsIDAuMDAwMDY5LCAwLjAwMDA3MSwgMC4wMDAwNzMsIDAuMDAwMDczIiwgXAotICAgICAgICAgICIwLjAwMDAzMSwgMC4wMDAwNDQsIDAuMDAwMDYyLCAwLjAwMDA2NywgMC4wMDAwNywgMC4wMDAwNzMsIDAuMDAwMDc0IiwgXAotICAgICAgICAgICIwLjAwMDAyNSwgMC4wMDAwMzksIDAuMDAwMDYxLCAwLjAwMDA2NiwgMC4wMDAwNjksIDAuMDAwMDczLCAwLjAwMDA3MyIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IE5PUjNCWDIgKgotICogLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoTk9SM0JYMikgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjE0Njk3OTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQU4pICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDU5MjYyODsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA1OTIyODM7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNTkyNjI4OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDg1NywgMC4wMDA4NDQsIDAuMDAwODM0LCAwLjAwMDgyOSwgMC4wMDA4MjUsIDAuMDAwODI0LCAwLjAwMDgyMyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjAzNywgMC4wMDIwMjgsIDAuMDAyMDIyLCAwLjAwMjAxNiwgMC4wMDIwMTMsIDAuMDAyMDA4LCAwLjAwMjAwNiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNjg0ODM7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNjcyNTM7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNjg0ODM7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjg5LCAwLjAwMDI4OSwgMC4wMDAyODksIDAuMDAwMjg5LCAwLjAwMDI5LCAwLjAwMDI4OSwgMC4wMDAyOSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDU5MywgMC4wMDA1OTQsIDAuMDAwNTkzLCAwLjAwMDU5NCwgMC4wMDA1OTQsIDAuMDAwNTkzLCAwLjAwMDU5MyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQykgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNDkwNzE7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNDkwNjE7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNDkwNzE7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMTg0LCAwLjAwMDE4NCwgMC4wMDAxODQsIDAuMDAwMTg0LCAwLjAwMDE4NCwgMC4wMDAxODQsIDAuMDAwMTg0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxMTU2LCAwLjAwMTE1NiwgMC4wMDExNTYsIDAuMDAxMTU2LCAwLjAwMTE1NSwgMC4wMDExNTYsIDAuMDAxMTU1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMDk5NzAzOTsKLSAgICBmdW5jdGlvbiA6ICIoISgoKCFBTikrQikrQykpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjI2Njk2LCAwLjc5MTIzNCwgMS4yNDI2NCwgMS44MDcyNSwgMi4zNzA4MiwgMi45MzUyMiwgMy40OTkwOCIsIFwKLSAgICAgICAgICAiMC4yMzg2MDcsIDAuODAzMTQ0LCAxLjI1NDU3LCAxLjgxODczLCAyLjM4MzY0LCAyLjk0NzI5LCAzLjUxMTAzIiwgXAotICAgICAgICAgICIwLjI1MzU4NCwgMC44MTgyMjQsIDEuMjY5MTgsIDEuODM0NTgsIDIuMzk4MTUsIDIuOTYyNDQsIDMuNTI2MzciLCBcCi0gICAgICAgICAgIjAuMjY5MDY1LCAwLjgzMzc4NywgMS4yODUxLCAxLjg0OTM0LCAyLjQxMzcyLCAyLjk3ODA2LCAzLjU0MTgxIiwgXAotICAgICAgICAgICIwLjI4NDI5NCwgMC44NDkwMjMsIDEuMzAwOTksIDEuODY1MzksIDIuNDI4OTEsIDIuOTkzMywgMy41NTcxNCIsIFwKLSAgICAgICAgICAiMC4zMDg0ODIsIDAuODczMjQyLCAxLjMyNDcsIDEuODg4ODUsIDIuNDU0MjIsIDMuMDE3MjYsIDMuNTgxMjUiLCBcCi0gICAgICAgICAgIjAuMzI4OTAxLCAwLjg5MzczNSwgMS4zNDU3NiwgMS45MTAxNiwgMi40NzM1NSwgMy4wMzgwMSwgMy42MDE4NiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yODAwNDksIDEuMzY2OSwgMi4yMzYxOSwgMy4zMjQ2MywgNC40MTI1MSwgNS40ODk3NSwgNi41NzI4OSIsIFwKLSAgICAgICAgICAiMC4yODAwNDIsIDEuMzY2ODEsIDIuMjM2MTEsIDMuMzIsIDQuNDE0NzEsIDUuNDg1MjYsIDYuNTc0MDgiLCBcCi0gICAgICAgICAgIjAuMjgwMDQzLCAxLjM2Njk3LCAyLjIzMzAzLCAzLjMyNTc5LCA0LjQwNDIsIDUuNDg1NCwgNi41Njk1MyIsIFwKLSAgICAgICAgICAiMC4yODA3NDcsIDEuMzY3MTIsIDIuMjM1OTksIDMuMzE5LCA0LjQwNDQ1LCA1LjQ4NjA3LCA2LjU3NDI0IiwgXAotICAgICAgICAgICIwLjI4MDEwMywgMS4zNjY5NCwgMi4yMzc5LCAzLjMyNTY2LCA0LjQwNDA3LCA1LjQ4NTMzLCA2LjU2OTQzIiwgXAotICAgICAgICAgICIwLjI4MDQyNywgMS4zNjY5LCAyLjIzNjE4LCAzLjMyMjM2LCA0LjQxNTUxLCA1LjQ5MDQyLCA2LjU3NDE1IiwgXAotICAgICAgICAgICIwLjI4MDY2OSwgMS4zNjcsIDIuMjM4MSwgMy4zMjU3NCwgNC40MDQyNiwgNS40ODU0MywgNi41Njk0OCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMjI0NDQsIDAuMzMwNDI5LCAwLjQ5NTQ3LCAwLjcwMTQ4OCwgMC45MDc1MjYsIDEuMTEzMzYsIDEuMzE5MTgiLCBcCi0gICAgICAgICAgIjAuMTMzODYxLCAwLjM0MTg3OSwgMC41MDY5MjIsIDAuNzEzMDMyLCAwLjkxODk5NiwgMS4xMjUsIDEuMzMwODQiLCBcCi0gICAgICAgICAgIjAuMTQ4ODcsIDAuMzU2ODQ4LCAwLjUyMTg5MSwgMC43MjgsIDAuOTMzOTE4LCAxLjEzOTg3LCAxLjM0NTUyIiwgXAotICAgICAgICAgICIwLjE2MzYxNiwgMC4zNzE2MzUsIDAuNTM2Njc3LCAwLjc0Mjc2NCwgMC45NDg3NjgsIDEuMTU0NzUsIDEuMzYwNTMiLCBcCi0gICAgICAgICAgIjAuMTc4MDI3LCAwLjM4NjA4MSwgMC41NTExMSwgMC43NTcxODcsIDAuOTYzMTE5LCAxLjE2OTIzLCAxLjM3NDk0IiwgXAotICAgICAgICAgICIwLjIwMTA2NCwgMC40MDkwODgsIDAuNTc0MTQ2LCAwLjc4MDI0OCwgMC45ODYyNTUsIDEuMTkyMTksIDEuMzk3ODgiLCBcCi0gICAgICAgICAgIjAuMjE5Mzg5LCAwLjQyNzQ2MSwgMC41OTI0OTEsIDAuNzk4NTY4LCAxLjAwNDQ3LCAxLjIxMDUyLCAxLjQxNjI5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExODQ2MywgMC41MjMxNzksIDAuODQ5NTY5LCAxLjI1NzMsIDEuNjY1ODQsIDIuMDczNzMsIDIuNDgxNjciLCBcCi0gICAgICAgICAgIjAuMTE4NTMyLCAwLjUyMzI1NCwgMC44NDk4NjUsIDEuMjU3ODYsIDEuNjY1ODcsIDIuMDc0LCAyLjQ4MjQiLCBcCi0gICAgICAgICAgIjAuMTE4NDQzLCAwLjUyMzI4MywgMC44NDk1NjMsIDEuMjU3OTUsIDEuNjY1NzcsIDIuMDczOTMsIDIuNDgxMjEiLCBcCi0gICAgICAgICAgIjAuMTE4MzQ5LCAwLjUyMzE3MiwgMC44NDk1ODksIDEuMjU3OTYsIDEuNjY1OTQsIDIuMDc0MywgMi40ODE5MiIsIFwKLSAgICAgICAgICAiMC4xMTg3MjUsIDAuNTIzMDgyLCAwLjg0OTU2NSwgMS4yNTc2OCwgMS42NjU3MywgMi4wNzQzNiwgMi40ODE4OCIsIFwKLSAgICAgICAgICAiMC4xMTg4NjcsIDAuNTIzMTkyLCAwLjg0OTU3NSwgMS4yNTc5MywgMS42NjU4OCwgMi4wNzM5OCwgMi40ODE2NyIsIFwKLSAgICAgICAgICAiMC4xMTk1MjgsIDAuNTIzMzA0LCAwLjg0OTY0NywgMS4yNTc2MywgMS42NjU2OCwgMi4wNzQyNSwgMi40ODIyMiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNjA0ODUsIDAuNzI0OTE3LCAxLjE3NjExLCAxLjc0MDczLCAyLjMwNTQ2LCAyLjg2ODg4LCAzLjQzMjg5IiwgXAotICAgICAgICAgICIwLjE3MDkzNiwgMC43MzU2MDIsIDEuMTg3MTEsIDEuNzUyMTQsIDIuMzE1NjgsIDIuODc5NzcsIDMuNDQzMyIsIFwKLSAgICAgICAgICAiMC4xODM1OCwgMC43NDgyMDIsIDEuMTk5ODcsIDEuNzY0ODYsIDIuMzI4NDQsIDIuODkyMjgsIDMuNDU2MTgiLCBcCi0gICAgICAgICAgIjAuMTk1NDMzLCAwLjc2MDI5OCwgMS4yMTE5MiwgMS43NzY3LCAyLjM0MDYsIDIuOTA0MzksIDMuNDY4NDIiLCBcCi0gICAgICAgICAgIjAuMjA3MjA5LCAwLjc3MjE4NCwgMS4yMjM5OCwgMS43ODg5NiwgMi4zNTE5NywgMi45MTYzMSwgMy40ODAzMiIsIFwKLSAgICAgICAgICAiMC4yMjYwMTUsIDAuNzkxMTI3LCAxLjI0MzE2LCAxLjgwNzk5LCAyLjM3MTI1LCAyLjkzNTMsIDMuNDk5NCIsIFwKLSAgICAgICAgICAiMC4yNDIzOCwgMC44MDc3NTEsIDEuMjU5MiwgMS44MjQyNSwgMi4zODc4MywgMi45NTE3OCwgMy41MTU4NSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yODAzMDQsIDEuMzYzMzQsIDIuMjMzNTUsIDMuMzI0MDMsIDQuNDE0ODgsIDUuNDg3MDcsIDYuNTY5MzciLCBcCi0gICAgICAgICAgIjAuMjc5OTIxLCAxLjM2NzI0LCAyLjIzNjg1LCAzLjMyNjQyLCA0LjQxMzk0LCA1LjQ4MzAyLCA2LjU3NCIsIFwKLSAgICAgICAgICAiMC4yODA0MDYsIDEuMzY3OTMsIDIuMjM2NjksIDMuMzI2MjUsIDQuNDEzODEsIDUuNDg5NTgsIDYuNTcyNjUiLCBcCi0gICAgICAgICAgIjAuMjgwMjc4LCAxLjM2NDgxLCAyLjIzNjY4LCAzLjMyNTUzLCA0LjQxMzk0LCA1LjQ5MDAyLCA2LjU3MDI2IiwgXAotICAgICAgICAgICIwLjI4MTA2OSwgMS4zNjY3OSwgMi4yMzcxMywgMy4zMjY0NSwgNC40MTI1OSwgNS40ODk1MywgNi41Njk5NCIsIFwKLSAgICAgICAgICAiMC4yODM4NjEsIDEuMzY2ODksIDIuMjM3OCwgMy4zMjY2MSwgNC40MTM0LCA1LjQ4OTQ2LCA2LjU2OTkxIiwgXAotICAgICAgICAgICIwLjI4NzE5NSwgMS4zNjY5OSwgMi4yMzU5OSwgMy4zMjU2OCwgNC40MDQxNiwgNS40OTA1MiwgNi41NzQwMiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjE4MTgsIDAuMjY4MjMxLCAwLjQzMzAyMywgMC42MzkwOTksIDAuODQ0OTI1LCAxLjA1MDk3LCAxLjI1NjIzIiwgXAotICAgICAgICAgICIwLjA3MzUyNCwgMC4yODAwNDIsIDAuNDQ0Nzg1LCAwLjY1MDYxNywgMC44NTY1NTMsIDEuMDYyMTgsIDEuMjY3OTkiLCBcCi0gICAgICAgICAgIjAuMDg4NTAzLCAwLjI5NDY2OSwgMC40NTk1MTUsIDAuNjY1NDMzLCAwLjg3MTQzOSwgMS4wNzcxNCwgMS4yODMyNiIsIFwKLSAgICAgICAgICAiMC4xMDM1NzIsIDAuMzEwMDE3LCAwLjQ3NDg2MiwgMC42ODA4NCwgMC44ODU4NjQsIDEuMDg5NTIsIDEuMjk1NTciLCBcCi0gICAgICAgICAgIjAuMTE4Mzc3LCAwLjMyNDEyLCAwLjQ4ODgyNiwgMC42OTE2NDMsIDAuODk3MzMzLCAxLjEwMzM0LCAxLjMwOTM1IiwgXAotICAgICAgICAgICIwLjE0MjgxNywgMC4zNDc5MDQsIDAuNTEzNjY1LCAwLjcxODA4OCwgMC45MjM4MjMsIDEuMTI5NjUsIDEuMzM0MTIiLCBcCi0gICAgICAgICAgIjAuMTYzNDA1LCAwLjM2OTU3NiwgMC41MzI4MDYsIDAuNzM4Nzg3LCAwLjk0NDY2OCwgMS4xNTA3MSwgMS4zNTYwNCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDczNTUsIDAuNTE1NDcxLCAwLjg0MjE3MSwgMS4yNTAyNiwgMS42NTgzMywgMi4wNjYzLCAyLjQ3MzkzIiwgXAotICAgICAgICAgICIwLjEwNzMwOSwgMC41MTU2ODIsIDAuODQxOTAzLCAxLjI0OTg3LCAxLjY1ODU0LCAyLjA2NTg4LCAyLjQ3Mzg1IiwgXAotICAgICAgICAgICIwLjEwODM3MywgMC41MTU2MywgMC44NDIyMjcsIDEuMjUwMjMsIDEuNjU4MjQsIDIuMDY2MjgsIDIuNDc0MyIsIFwKLSAgICAgICAgICAiMC4xMTE5NjQsIDAuNTE1NjcsIDAuODQyMDk0LCAxLjI1MDE3LCAxLjY1ODQ1LCAyLjA2NjE3LCAyLjQ3NDI0IiwgXAotICAgICAgICAgICIwLjExNzQ0OSwgMC41MTU2NjUsIDAuODQyMjUxLCAxLjI1MDIxLCAxLjY1ODQxLCAyLjA2NjUxLCAyLjQ3NDc3IiwgXAotICAgICAgICAgICIwLjEyNzc1LCAwLjUxNTgzMiwgMC44NDIyNDUsIDEuMjUwMTksIDEuNjU4NDIsIDIuMDY2MTcsIDIuNDc0MjkiLCBcCi0gICAgICAgICAgIjAuMTM4ODQ2LCAwLjUxNzQ3OCwgMC44NDIyMDksIDEuMjUwMjEsIDEuNjU4MTksIDIuMDY2NTgsIDIuNDc0MjEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTQ1MDk4LCAwLjcwOTQ1OSwgMS4xNjA5NCwgMS43MjUxNSwgMi4yODk3MiwgMi44NTM3OCwgMy40MTcyNiIsIFwKLSAgICAgICAgICAiMC4xNTQzOTUsIDAuNzE5MDMxLCAxLjE3MDYxLCAxLjczNDgzLCAyLjI5OTM2LCAyLjg2MzQ5LCAzLjQyNjkzIiwgXAotICAgICAgICAgICIwLjE2NjE2LCAwLjczMTE1MSwgMS4xODI1LCAxLjc0NzA3LCAyLjMxMTM5LCAyLjg3NTU5LCAzLjQzOTQ2IiwgXAotICAgICAgICAgICIwLjE3ODQ0MiwgMC43NDM1OTYsIDEuMTk1MjIsIDEuNzU5NDcsIDIuMzI0LCAyLjg4NzcxLCAzLjQ1MTYyIiwgXAotICAgICAgICAgICIwLjE5MDIxLCAwLjc1NTU5OCwgMS4yMDcyLCAxLjc3MTQxLCAyLjMzNTksIDIuODk5NjQsIDMuNDYzNjIiLCBcCi0gICAgICAgICAgIjAuMjA5Njc1LCAwLjc3NDgzLCAxLjIyNjQ0LCAxLjc5MDY5LCAyLjM1NTQ4LCAyLjkxOTExLCAzLjQ4MzAzIiwgXAotICAgICAgICAgICIwLjIyNzc1OSwgMC43OTIwMTUsIDEuMjQzNTksIDEuODA4MzIsIDIuMzczMDUsIDIuOTM2NSwgMy41MDA1NyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yODAzOTMsIDEuMzY1MjksIDIuMjMzNzcsIDMuMzE4OSwgNC40MTQyMSwgNS40ODQzNSwgNi41NzM2OSIsIFwKLSAgICAgICAgICAiMC4yODA0MjEsIDEuMzY1MjEsIDIuMjMzOSwgMy4zMTg5NiwgNC40MTQxNCwgNS40OTEyOSwgNi41NzM5NyIsIFwKLSAgICAgICAgICAiMC4yNzk4OCwgMS4zNjY4NSwgMi4yMzc3NywgMy4zMTk0MywgNC40MDUyOCwgNS40ODU5NiwgNi41Njk2NCIsIFwKLSAgICAgICAgICAiMC4yODAxLCAxLjM2Njg1LCAyLjIzNDAzLCAzLjMxOSwgNC40MTQwOSwgNS40ODkyMSwgNi41NzMzNyIsIFwKLSAgICAgICAgICAiMC4yODIxNjMsIDEuMzY3MjcsIDIuMjMyNzEsIDMuMzE5MTQsIDQuNDE0MDEsIDUuNDg5MTUsIDYuNTcxOTQiLCBcCi0gICAgICAgICAgIjAuMjg3ODEsIDEuMzY1MjQsIDIuMjM1OTgsIDMuMzE5MzksIDQuNDE0MjgsIDUuNDg5MjMsIDYuNTczMyIsIFwKLSAgICAgICAgICAiMC4yOTQ4NjksIDEuMzY3OTEsIDIuMjM2NDQsIDMuMzE2ODUsIDQuNDE0ODMsIDUuNDkwODYsIDYuNTY5MjUiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU2ODE4LCAwLjI2MzA5MSwgMC40Mjc5NTksIDAuNjM0NDk2LCAwLjg0MDM2LCAxLjA0NjY3LCAxLjI1MjY2IiwgXAotICAgICAgICAgICIwLjA2ODY4MSwgMC4yNzUwNzQsIDAuNDM5OTk0LCAwLjY0NjE3MiwgMC44NTIyMDQsIDEuMDU4NTYsIDEuMjY0NDQiLCBcCi0gICAgICAgICAgIjAuMDgzNjkzLCAwLjI4OTY5NSwgMC40NTI1NDQsIDAuNjU4NjA3LCAwLjg2NDg1NCwgMS4wNzExMiwgMS4yNzcxIiwgXAotICAgICAgICAgICIwLjA5ODU1NywgMC4zMDQ2MjIsIDAuNDY5Mzk2LCAwLjY3MzMzOSwgMC44Nzk5MzcsIDEuMDg1NDQsIDEuMjkyNTIiLCBcCi0gICAgICAgICAgIjAuMTEzODA5LCAwLjMxOTIwNywgMC40ODQwMTUsIDAuNjg3MDU3LCAwLjg5MzU0OCwgMS4wOTk0LCAxLjMwNjE0IiwgXAotICAgICAgICAgICIwLjEzNzk2LCAwLjM0MjkxNywgMC41MDg3NzYsIDAuNzEzOTM0LCAwLjkxOTgyNywgMS4xMjU5OCwgMS4zMzIwOCIsIFwKLSAgICAgICAgICAiMC4xNTc2OCwgMC4zNjQ2NTIsIDAuNTMwMDQ3LCAwLjczNDI4NywgMC45NDA1NjEsIDEuMTQ2NDQsIDEuMzUyNjEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTAyMzQ2LCAwLjUxMjg2MSwgMC44NDM4MzQsIDEuMjUyNjcsIDEuNjY1NiwgMi4wNzM2MywgMi40ODk2NCIsIFwKLSAgICAgICAgICAiMC4xMDIzODUsIDAuNTEzMjkzLCAwLjg0MTk0MSwgMS4yNTMxNCwgMS42NjE3NywgMi4wNzUyMSwgMi40ODMyMiIsIFwKLSAgICAgICAgICAiMC4xMDM2MTIsIDAuNTEzMzQ2LCAwLjg0MDUxMywgMS4yNTUxOSwgMS42NjYwMSwgMi4wNzU0OCwgMi40OTA3NCIsIFwKLSAgICAgICAgICAiMC4xMDgxMzgsIDAuNTE0MzE1LCAwLjg0MDYxLCAxLjI1MTQ5LCAxLjY2MjY1LCAyLjA3MTQzLCAyLjQ4NzE2IiwgXAotICAgICAgICAgICIwLjExMzU4NywgMC41MTM3NCwgMC44NDE5NTgsIDEuMjU1MSwgMS42NjU2LCAyLjA3OTE0LCAyLjQ4Mjk0IiwgXAotICAgICAgICAgICIwLjEyNDg0NywgMC41MTMzODksIDAuODQzNDkyLCAxLjI1MDk2LCAxLjY2Mzk5LCAyLjA3ODA2LCAyLjQ4MzQiLCBcCi0gICAgICAgICAgIjAuMTM2MDM5LCAwLjUxNDUwNCwgMC44NDA4MTQsIDEuMjU0MDgsIDEuNjYxODksIDIuMDc0NTksIDIuNDgxMzkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0MTQ3LCAwLjAwNDE2LCAwLjAwNDE2MSwgMC4wMDQxNjEsIDAuMDA0MTYyLCAwLjAwNDE1OSwgMC4wMDQxNjYiLCBcCi0gICAgICAgICAgIjAuMDA0MTM1LCAwLjAwNDE0OCwgMC4wMDQxNDksIDAuMDA0MTUsIDAuMDA0MTUsIDAuMDA0MTUsIDAuMDA0MTUiLCBcCi0gICAgICAgICAgIjAuMDA0MTIyLCAwLjAwNDEzOCwgMC4wMDQxMzksIDAuMDA0MTQsIDAuMDA0MTQxLCAwLjAwNDE0MSwgMC4wMDQxNDEiLCBcCi0gICAgICAgICAgIjAuMDA0MTEzLCAwLjAwNDEzMSwgMC4wMDQxMzMsIDAuMDA0MTM0LCAwLjAwNDEzNSwgMC4wMDQxMzUsIDAuMDA0MTM1IiwgXAotICAgICAgICAgICIwLjAwNDEwNSwgMC4wMDQxMjQsIDAuMDA0MTI2LCAwLjAwNDEzLCAwLjAwNDEzMSwgMC4wMDQxMzEsIDAuMDA0MTMxIiwgXAotICAgICAgICAgICIwLjAwNDA5NiwgMC4wMDQxMTksIDAuMDA0MTIxLCAwLjAwNDEyNSwgMC4wMDQxMjUsIDAuMDA0MTIyLCAwLjAwNDEyOSIsIFwKLSAgICAgICAgICAiMC4wMDQwOTQsIDAuMDA0MTIsIDAuMDA0MTI0LCAwLjAwNDEyNiwgMC4wMDQxMjcsIDAuMDA0MTI4LCAwLjAwNDEyOCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDIxNiwgMC4wMDQyMiwgMC4wMDQyMTksIDAuMDA0MjE5LCAwLjAwNDIxOSwgMC4wMDQyMTgsIDAuMDA0MjE3IiwgXAotICAgICAgICAgICIwLjAwNDIwNSwgMC4wMDQyMSwgMC4wMDQyMSwgMC4wMDQyMDksIDAuMDA0MjA5LCAwLjAwNDIwOCwgMC4wMDQyMDgiLCBcCi0gICAgICAgICAgIjAuMDA0MTk5LCAwLjAwNDIwNCwgMC4wMDQyMDUsIDAuMDA0MjA0LCAwLjAwNDIwNCwgMC4wMDQyMDMsIDAuMDA0MjAyIiwgXAotICAgICAgICAgICIwLjAwNDE5LCAwLjAwNDE5NywgMC4wMDQxOTgsIDAuMDA0MTk3LCAwLjAwNDE5NywgMC4wMDQxOTcsIDAuMDA0MTk2IiwgXAotICAgICAgICAgICIwLjAwNDE3OSwgMC4wMDQxOSwgMC4wMDQxOSwgMC4wMDQxOSwgMC4wMDQxOSwgMC4wMDQxOSwgMC4wMDQxODkiLCBcCi0gICAgICAgICAgIjAuMDA0MTc2LCAwLjAwNDE4OSwgMC4wMDQxOSwgMC4wMDQxOSwgMC4wMDQxOSwgMC4wMDQxOSwgMC4wMDQxOSIsIFwKLSAgICAgICAgICAiMC4wMDQxNjgsIDAuMDA0MTgzLCAwLjAwNDE4NSwgMC4wMDQxODUsIDAuMDA0MTg1LCAwLjAwNDE4NSwgMC4wMDQxODQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDM2MTEsIDAuMDAzNjE0LCAwLjAwMzYxNSwgMC4wMDM2MTUsIDAuMDAzNjE2LCAwLjAwMzYxNSwgMC4wMDM2MTUiLCBcCi0gICAgICAgICAgIjAuMDAzNTk3LCAwLjAwMzYwOSwgMC4wMDM2MTQsIDAuMDAzNjEzLCAwLjAwMzYxNCwgMC4wMDM2MTIsIDAuMDAzNjE0IiwgXAotICAgICAgICAgICIwLjAwMzU4NCwgMC4wMDM2MDcsIDAuMDAzNjA4LCAwLjAwMzYxMiwgMC4wMDM2MTIsIDAuMDAzNjEzLCAwLjAwMzYxMyIsIFwKLSAgICAgICAgICAiMC4wMDM1NzQsIDAuMDAzNjA0LCAwLjAwMzYwOCwgMC4wMDM2MSwgMC4wMDM2MTEsIDAuMDAzNjEzLCAwLjAwMzYxMSIsIFwKLSAgICAgICAgICAiMC4wMDM1NjYsIDAuMDAzNTk5LCAwLjAwMzYwNiwgMC4wMDM2MSwgMC4wMDM2MTEsIDAuMDAzNjExLCAwLjAwMzYxMiIsIFwKLSAgICAgICAgICAiMC4wMDM1NTcsIDAuMDAzNTk1LCAwLjAwMzYwMiwgMC4wMDM2MDcsIDAuMDAzNjA4LCAwLjAwMzYxLCAwLjAwMzYxIiwgXAotICAgICAgICAgICIwLjAwMzU1LCAwLjAwMzU5LCAwLjAwMzYsIDAuMDAzNjA1LCAwLjAwMzYwOCwgMC4wMDM2MDgsIDAuMDAzNjA5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwOTEyLCAwLjAwMDkxMiwgMC4wMDA5MTMsIDAuMDAwOTEzLCAwLjAwMDkxMywgMC4wMDA5MTIsIDAuMDAwOTEyIiwgXAotICAgICAgICAgICIwLjAwMDg5OCwgMC4wMDA5MDksIDAuMDAwOTExLCAwLjAwMDkxMSwgMC4wMDA5MTEsIDAuMDAwOTExLCAwLjAwMDkxMSIsIFwKLSAgICAgICAgICAiMC4wMDA4NzksIDAuMDAwOTA1LCAwLjAwMDkwOCwgMC4wMDA5MDksIDAuMDAwOTA5LCAwLjAwMDkwOSwgMC4wMDA5MSIsIFwKLSAgICAgICAgICAiMC4wMDA4NjUsIDAuMDAwOTAxLCAwLjAwMDkwNSwgMC4wMDA5MDcsIDAuMDAwOTA5LCAwLjAwMDkwOCwgMC4wMDA5MDgiLCBcCi0gICAgICAgICAgIjAuMDAwODU2LCAwLjAwMDg5NywgMC4wMDA5MDIsIDAuMDAwOTA1LCAwLjAwMDkwNiwgMC4wMDA5MDYsIDAuMDAwOTA3IiwgXAotICAgICAgICAgICIwLjAwMDg0MSwgMC4wMDA4ODgsIDAuMDAwODk4LCAwLjAwMDkwMywgMC4wMDA5MDUsIDAuMDAwOTA1LCAwLjAwMDkwNiIsIFwKLSAgICAgICAgICAiMC4wMDA4MzIsIDAuMDAwODg3LCAwLjAwMDg5NiwgMC4wMDA5LCAwLjAwMDkwMywgMC4wMDA5MDQsIDAuMDAwOTA1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzMDg3LCAwLjAwMzA5MiwgMC4wMDMwOTIsIDAuMDAzMDkzLCAwLjAwMzA5NCwgMC4wMDMwOTMsIDAuMDAzMDkyIiwgXAotICAgICAgICAgICIwLjAwMzA2NSwgMC4wMDMwODYsIDAuMDAzMDg5LCAwLjAwMzA5LCAwLjAwMzA5MSwgMC4wMDMwOTEsIDAuMDAzMDkzIiwgXAotICAgICAgICAgICIwLjAwMzA0MywgMC4wMDMwOCwgMC4wMDMwODUsIDAuMDAzMDg4LCAwLjAwMzA4OSwgMC4wMDMwODksIDAuMDAzMDkiLCBcCi0gICAgICAgICAgIjAuMDAzMDI3LCAwLjAwMzA3NSwgMC4wMDMwODEsIDAuMDAzMDg1LCAwLjAwMzA4NiwgMC4wMDMwODcsIDAuMDAzMDg4IiwgXAotICAgICAgICAgICIwLjAwMzAxOCwgMC4wMDMwNywgMC4wMDMwNzgsIDAuMDAzMDgyLCAwLjAwMzA4NSwgMC4wMDMwODYsIDAuMDAzMDg3IiwgXAotICAgICAgICAgICIwLjAwMzAwNiwgMC4wMDMwNjIsIDAuMDAzMDczLCAwLjAwMzA3OCwgMC4wMDMwODIsIDAuMDAzMDg0LCAwLjAwMzA4NSIsIFwKLSAgICAgICAgICAiMC4wMDMsIDAuMDAzMDU2LCAwLjAwMzA2OSwgMC4wMDMwNzcsIDAuMDAzMDgsIDAuMDAzMDgxLCAwLjAwMzA4MyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDIwMiwgMC4wMDAyMDksIDAuMDAwMjEsIDAuMDAwMjEsIDAuMDAwMjEsIDAuMDAwMjExLCAwLjAwMDIxMSIsIFwKLSAgICAgICAgICAiMC4wMDAyMTEsIDAuMDAwMjQyLCAwLjAwMDI0NSwgMC4wMDAyNDcsIDAuMDAwMjQ4LCAwLjAwMDI0OCwgMC4wMDAyNDkiLCBcCi0gICAgICAgICAgIjAuMDAwMTk0LCAwLjAwMDI0NiwgMC4wMDAyNTMsIDAuMDAwMjU3LCAwLjAwMDI1OCwgMC4wMDAyNTksIDAuMDAwMjYiLCBcCi0gICAgICAgICAgIjAuMDAwMTczLCAwLjAwMDI0MSwgMC4wMDAyNSwgMC4wMDAyNTcsIDAuMDAwMjU5LCAwLjAwMDI2MSwgMC4wMDAyNjIiLCBcCi0gICAgICAgICAgIjAuMDAwMTYsIDAuMDAwMjM4LCAwLjAwMDI0OSwgMC4wMDAyNTYsIDAuMDAwMjU5LCAwLjAwMDI2MSwgMC4wMDAyNjIiLCBcCi0gICAgICAgICAgIjAuMDAwMTM5LCAwLjAwMDIyOSwgMC4wMDAyNDQsIDAuMDAwMjUyLCAwLjAwMDI1NiwgMC4wMDAyNTksIDAuMDAwMjYiLCBcCi0gICAgICAgICAgIjAuMDAwMTI2LCAwLjAwMDIyNSwgMC4wMDAyNCwgMC4wMDAyNSwgMC4wMDAyNTUsIDAuMDAwMjU4LCAwLjAwMDI2Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogTk9SM0JYTCAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChOT1IzQlhMKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMDUzOTkxNTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQU4pICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYwNjc0OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYwNjQ3OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDYwNjc0OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDI0MiwgMC4wMDAyMjMsIDAuMDAwMjEzLCAwLjAwMDIxLCAwLjAwMDIwOSwgMC4wMDAyMDYsIDAuMDAwMjA3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxMDk0LCAwLjAwMTA4MSwgMC4wMDEwNzMsIDAuMDAxMDY3LCAwLjAwMTA2NiwgMC4wMDEwNjQsIDAuMDAxMDY1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2MzA3MzY7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjI3NTY3OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDYzMDczNjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAwNzYsIDAuMDAwMDc2LCAwLjAwMDA3NiwgMC4wMDAwNzYsIDAuMDAwMDc2LCAwLjAwMDA3NiwgMC4wMDAwNzYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxODUsIDAuMDAwMTg1LCAwLjAwMDE4NSwgMC4wMDAxODUsIDAuMDAwMTg1LCAwLjAwMDE4NSwgMC4wMDAxODUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEMpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY1NTgyMTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2NTU3MzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2NTU4MjE7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMDUsIDAuMDAwMDUsIDAuMDAwMDUsIDAuMDAwMDUsIDAuMDAwMDUsIDAuMDAwMDUsIDAuMDAwMDUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAzMzUsIDAuMDAwMzM1LCAwLjAwMDMzNSwgMC4wMDAzMzUsIDAuMDAwMzM1LCAwLjAwMDMzNSwgMC4wMDAzMzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4wMjcwMzI3OwotICAgIGZ1bmN0aW9uIDogIighKCgoIUFOKStCKStDKSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkFOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC40ODE2OTgsIDAuNTYwMzA3LCAxLjI2ODEyLCAyLjQ0NzIsIDMuNjI1MzMsIDYuMzc0NzksIDcuOTQ1OTgiLCBcCi0gICAgICAgICAgIjAuNDkzNjk4LCAwLjU3MjAyNywgMS4yNzk2OSwgMi40NTg2NCwgMy42MzcyLCA2LjM4NjYzLCA3Ljk1NzgiLCBcCi0gICAgICAgICAgIjAuNTA4OTQ4LCAwLjU4NzI4NCwgMS4yOTQ5NywgMi40NzM5OCwgMy42NTI0OCwgNi40MDE5MSwgNy45NzMwOSIsIFwKLSAgICAgICAgICAiMC41MjM3NzcsIDAuNjAyMzA3LCAxLjMxMDMzLCAyLjQ4OTM4LCAzLjY2NzUsIDYuNDE3MDIsIDcuOTg4MTUiLCBcCi0gICAgICAgICAgIjAuNTM3NzA2LCAwLjYxNjYyOSwgMS4zMjQsIDIuNTA0LCAzLjY4MTYzLCA2LjQzMTEyLCA4LjAwMjE3IiwgXAotICAgICAgICAgICIwLjU1Nzc5MywgMC42MzY0NDIsIDEuMzQ0MjIsIDIuNTIzNCwgMy43MDE2MiwgNi40NTExMywgOC4wMjIzMSIsIFwKLSAgICAgICAgICAiMC41NzM2NTEsIDAuNjUyMjc2LCAxLjM2MDEsIDIuNTM4OTMsIDMuNzE3NTksIDYuNDY3MDQsIDguMDM4MiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC44MzA2MDksIDAuOTgxMjY0LCAyLjM0NzU0LCA0LjYyMjQ0LCA2Ljg3ODEyLCAxMi4xNDk5LCAxNS4xNjU4IiwgXAotICAgICAgICAgICIwLjgzMjQzMSwgMC45ODMwMTEsIDIuMzQ2NTYsIDQuNjIxMzUsIDYuODc0NjMsIDEyLjE1MDEsIDE1LjE2NTgiLCBcCi0gICAgICAgICAgIjAuODMyMzk4LCAwLjk4MzAyOSwgMi4zNDY0OCwgNC42MjE0MSwgNi44NzQ2MiwgMTIuMTUwMSwgMTUuMTY1OCIsIFwKLSAgICAgICAgICAiMC44MzA3MDQsIDAuOTgzNjUsIDIuMzQ3MzksIDQuNjIyMjMsIDYuODc4MTMsIDEyLjE1MDEsIDE1LjE2NTgiLCBcCi0gICAgICAgICAgIjAuODMxNTE1LCAwLjk4Mzg2OSwgMi4zNDM3NCwgNC42MDU4NSwgNi44NzgyMywgMTIuMTQ5LCAxNS4xNjU4IiwgXAotICAgICAgICAgICIwLjgzMDQ4LCAwLjk4Mjk0NywgMi4zNDY1MSwgNC42MjE4OCwgNi44NzcwNywgMTIuMTQ5OSwgMTUuMTY1OCIsIFwKLSAgICAgICAgICAiMC44MzE1MTUsIDAuOTgxNzQsIDIuMzQ2NTYsIDQuNjIxMDEsIDYuODc0NDYsIDEyLjE0OTgsIDE1LjE2NTgiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjA0MTc2LCAwLjIzNDA0NiwgMC41MDIxMDIsIDAuOTQ3OTg3LCAxLjM5MzU0LCAyLjQzMzgyLCAzLjAyNzU4IiwgXAotICAgICAgICAgICIwLjIxNTgyLCAwLjI0NTY5LCAwLjUxMzc0OCwgMC45NTk2MjksIDEuNDA1MTgsIDIuNDQ0ODgsIDMuMDM5MjMiLCBcCi0gICAgICAgICAgIjAuMjMwMzA5LCAwLjI2MDE4LCAwLjUyODIyOSwgMC45NzQxMjEsIDEuNDE5OTIsIDIuNDYwMjMsIDMuMDUzNzMiLCBcCi0gICAgICAgICAgIjAuMjQ0MjcyLCAwLjI3NDE0LCAwLjU0MjIzMywgMC45ODgxNzMsIDEuNDM0MTIsIDIuNDczODQsIDMuMDY3NzIiLCBcCi0gICAgICAgICAgIjAuMjU2NzgyLCAwLjI4NjY2NCwgMC41NTQ3MDgsIDEuMDAwNzMsIDEuNDQ2NywgMi40ODY1NiwgMy4wODAxMyIsIFwKLSAgICAgICAgICAiMC4yNzQzMTQsIDAuMzA0MTk1LCAwLjU3MjIxNywgMS4wMTgxMiwgMS40NjQyOCwgMi41MDQwMywgMy4wOTc3MiIsIFwKLSAgICAgICAgICAiMC4yODc5NzUsIDAuMzE3ODI1LCAwLjU4NTg0OSwgMS4wMzIwNSwgMS40NzgxLCAyLjUxNzcsIDMuMTExMzciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzMwODI2LCAwLjM4OTUyLCAwLjkxODMwNywgMS43OTkwOCwgMi42Nzk0NiwgNC43MzQ3MSwgNS45MDk2IiwgXAotICAgICAgICAgICIwLjMzMDg5OSwgMC4zODk1MzgsIDAuOTE4MzExLCAxLjc5OTA5LCAyLjY3ODk1LCA0LjczMzk5LCA1LjkwOTU1IiwgXAotICAgICAgICAgICIwLjMzMDgyNiwgMC4zODk1NjUsIDAuOTE4MjksIDEuNzk5MSwgMi42Nzk4MywgNC43MzQ0NywgNS45MDk1OCIsIFwKLSAgICAgICAgICAiMC4zMzA4NDMsIDAuMzg5NjIxLCAwLjkxODQyNSwgMS43OTk0LCAyLjY3OTYzLCA0LjczNTQzLCA1LjkwOTU3IiwgXAotICAgICAgICAgICIwLjMzMDgyLCAwLjM4OTQzNiwgMC45MTgxODcsIDEuNzk4OTUsIDIuNjc5NzcsIDQuNzM0NTgsIDUuOTA5NTIiLCBcCi0gICAgICAgICAgIjAuMzMwOTk5LCAwLjM4OTYyMiwgMC45MTg0NTUsIDEuNzk5MjksIDIuNjc5NzYsIDQuNzM0NjEsIDUuOTA5NTYiLCBcCi0gICAgICAgICAgIjAuMzMxMjA3LCAwLjM4OTcwMywgMC45MTgxNTYsIDEuNzk5NTEsIDIuNjc5ODUsIDQuNzM0NjEsIDUuOTA5NTYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuNDQ1NjA5LCAwLjUyNDQxMiwgMS4yMzE2NSwgMi40MTE2NCwgMy41ODkzOCwgNi4zMzg4MSwgNy45MDk5NCIsIFwKLSAgICAgICAgICAiMC40NTYzLCAwLjUzNDczLCAxLjI0MjczLCAyLjQyMjA0LCAzLjYwMDAzLCA2LjM0OTM5LCA3LjkyMDU4IiwgXAotICAgICAgICAgICIwLjQ2ODY2LCAwLjU0NzMxLCAxLjI1NDk3LCAyLjQzNDIsIDMuNjEyMzYsIDYuMzYxODQsIDcuOTMzMDUiLCBcCi0gICAgICAgICAgIjAuNDgwNjEyLCAwLjU1OTMzMiwgMS4yNjcwOSwgMi40NDY3MSwgMy42MjQ4NywgNi4zNzQxNCwgNy45NDUxOCIsIFwKLSAgICAgICAgICAiMC40OTI0NjcsIDAuNTcxMDY1LCAxLjI3ODg4LCAyLjQ1ODY1LCAzLjYzNjQ3LCA2LjM4NjAxLCA3Ljk1NzA3IiwgXAotICAgICAgICAgICIwLjUxMTMwMiwgMC41OTAwODcsIDEuMjk3OTYsIDIuNDc3NjEsIDMuNjU1MzYsIDYuNDA0OTEsIDcuOTc2MTQiLCBcCi0gICAgICAgICAgIjAuNTI3NjE3LCAwLjYwNjQ2LCAxLjMxMzk3LCAyLjQ5MzYsIDMuNjcxNzcsIDYuNDIxNTMsIDcuOTkyNTciKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuODI5MjE4LCAwLjk4MzY4NCwgMi4zNDU3NCwgNC42MDc3OCwgNi44NzUwNSwgMTIuMTQ5OSwgMTUuMTY1OCIsIFwKLSAgICAgICAgICAiMC44MzIwMjIsIDAuOTgzNjM0LCAyLjM0NzI0LCA0LjYyMjYxLCA2Ljg3ODIzLCAxMi4xNDk5LCAxNS4xNjU4IiwgXAotICAgICAgICAgICIwLjgzMTk0OCwgMC45ODM0MzMsIDIuMzQ2NTIsIDQuNjIyMDIsIDYuODc4MSwgMTIuMTUsIDE1LjE2NTgiLCBcCi0gICAgICAgICAgIjAuODMxNjQ0LCAwLjk4MTE4NywgMi4zNDE1MSwgNC42MDc0NCwgNi44NzExNiwgMTIuMTQ5NCwgMTUuMTY1NSIsIFwKLSAgICAgICAgICAiMC44MzE3MzQsIDAuOTgzMDQ0LCAyLjM0MzcxLCA0LjYyMjk2LCA2Ljg3Nzg5LCAxMi4xNDkzLCAxNS4xNjU4IiwgXAotICAgICAgICAgICIwLjgzMjEyMSwgMC45ODMxNjcsIDIuMzQxNzQsIDQuNjA5ODUsIDYuODc0MzEsIDEyLjE0OTgsIDE1LjE2NTciLCBcCi0gICAgICAgICAgIjAuODMwMzk3LCAwLjk4MzIzMSwgMi4zNDc0NCwgNC42MTI1NywgNi44Nzc3LCAxMi4xNDk0LCAxNS4xNjU2Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE3MjExMiwgMC4yMDE4OSwgMC40Njk0MTcsIDAuOTE0OTQsIDEuMzYwNDcsIDIuNDAwMDcsIDIuOTk0MjEiLCBcCi0gICAgICAgICAgIjAuMTgzNTI4LCAwLjIxMzMxNiwgMC40ODA4NDksIDAuOTI2NTA4LCAxLjM3MjM0LCAyLjQxMjMxLCAzLjAwNTYiLCBcCi0gICAgICAgICAgIjAuMTk5MDUxLCAwLjIyODc1NSwgMC40OTYyNzIsIDAuOTQyMTQ2LCAxLjM4NzkxLCAyLjQyNzk1LCAzLjAyMTY0IiwgXAotICAgICAgICAgICIwLjIxNDU4NCwgMC4yNDQzMzEsIDAuNTExODAxLCAwLjk1NzkwMSwgMS40MDMzNiwgMi40NDI3MywgMy4wMzY3NyIsIFwKLSAgICAgICAgICAiMC4yMjg5NjksIDAuMjU5MjI0LCAwLjUyNjEwMiwgMC45Njg4MjUsIDEuNDE0NzQsIDIuNDU4NTgsIDMuMDUyMzUiLCBcCi0gICAgICAgICAgIjAuMjU0MDcyLCAwLjI4MzcyMiwgMC41NDk5NTQsIDAuOTk1NTU5LCAxLjQzMzExLCAyLjQ3MjY0LCAzLjA2NjMyIiwgXAotICAgICAgICAgICIwLjI3NTQ3NiwgMC4zMDUxMTMsIDAuNTcwODA2LCAxLjAxNjQ3LCAxLjQ1OTc5LCAyLjQ5MiwgMy4wODUyNyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMjQ2MDMsIDAuMzgzMzc1LCAwLjkxMTgyNSwgMS43OTIyNSwgMi42NzMzMSwgNC43Mjc1MiwgNS45MDY3NCIsIFwKLSAgICAgICAgICAiMC4zMjQ2OTYsIDAuMzgzMzM1LCAwLjkxMTcwOSwgMS43OTIyOSwgMi42NzM4NCwgNC43Mjk5NCwgNS45MDE4OCIsIFwKLSAgICAgICAgICAiMC4zMjQ2NCwgMC4zODM0MzIsIDAuOTExOTAyLCAxLjc5MjQyLCAyLjY3MzEzLCA0LjcyOTM5LCA1LjkwMyIsIFwKLSAgICAgICAgICAiMC4zMjQ2MDIsIDAuMzgzMzMyLCAwLjkxMTkwNiwgMS43OTI1OCwgMi42NzM3OSwgNC43Mjg1LCA1LjkwMzA2IiwgXAotICAgICAgICAgICIwLjMyNTA3OSwgMC4zODMzMjQsIDAuOTExODcyLCAxLjc5MjQ5LCAyLjY3MzIzLCA0LjcyOTMxLCA1LjkwMiIsIFwKLSAgICAgICAgICAiMC4zMjc5OTQsIDAuMzg0OTczLCAwLjkxMTk5MSwgMS43OTI1OSwgMi42NzMxMSwgNC43MjcxMywgNS45MDcwNiIsIFwKLSAgICAgICAgICAiMC4zMzI1MDUsIDAuMzg4NjkzLCAwLjkxMTg3OCwgMS43OTI2MSwgMi42NzMzLCA0LjczMDI0LCA1LjkwMjQ4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjQzMTgyMSwgMC41MTAyNTgsIDEuMjE3OTcsIDIuMzk3MTgsIDMuNTc1MzQsIDYuMzI0ODQsIDcuODk2MDMiLCBcCi0gICAgICAgICAgIjAuNDQxNjc1LCAwLjUyMDA2NywgMS4yMjc4MiwgMi40MDcwNywgMy41ODUyNSwgNi4zMzQ3NiwgNy45MDU5NCIsIFwKLSAgICAgICAgICAiMC40NTMzNjEsIDAuNTMyMDM2LCAxLjI0MDIxLCAyLjQxOTIyLCAzLjU5NzI2LCA2LjM0Njc5LCA3LjkxNzg5IiwgXAotICAgICAgICAgICIwLjQ2NTM3OSwgMC41NDQxNTEsIDEuMjUxNzQsIDIuNDMxNjQsIDMuNjA5NDYsIDYuMzU5MDIsIDcuOTMwMDYiLCBcCi0gICAgICAgICAgIjAuNDc3NDk1LCAwLjU1NjEwNSwgMS4yNjQsIDIuNDQzMzcsIDMuNjIxNTIsIDYuMzcxLCA3Ljk0MjIiLCBcCi0gICAgICAgICAgIjAuNDk2NzY2LCAwLjU3NTU4NSwgMS4yODMxMiwgMi40NjMwMiwgMy42NDA5NywgNi4zOTA0MiwgNy45NjE2MiIsIFwKLSAgICAgICAgICAiMC41MTI3NzYsIDAuNTkyNDA5LCAxLjMwMDM2LCAyLjQ3OTQ2LCAzLjY1ODE2LCA2LjQwNzc0LCA3Ljk3ODc4Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjgzMjA1NywgMC45ODMwNTUsIDIuMzQ2NTIsIDQuNjIxOTIsIDYuODc4MDgsIDEyLjE1LCAxNS4xNjU4IiwgXAotICAgICAgICAgICIwLjgzMjMwNSwgMC45ODI5NTcsIDIuMzQ2NTIsIDQuNjIxOTMsIDYuODc2OTcsIDEyLjE1LCAxNS4xNjU4IiwgXAotICAgICAgICAgICIwLjgzMTc4NywgMC45ODExMDEsIDIuMzQ3OTYsIDQuNjIyNDMsIDYuODc4MTUsIDEyLjE1MDEsIDE1LjE2NTgiLCBcCi0gICAgICAgICAgIjAuODMxNjgzLCAwLjk4MzQzNiwgMi4zNDMxNywgNC42MjI5OCwgNi44Nzc4OSwgMTIuMTUwMSwgMTUuMTY1OCIsIFwKLSAgICAgICAgICAiMC44MzE5MTEsIDAuOTgzMTI4LCAyLjM0MTU5LCA0LjYyMjE4LCA2Ljg3NzgzLCAxMi4xNDk5LCAxNS4xNjU4IiwgXAotICAgICAgICAgICIwLjgyOTczNiwgMC45ODEwMTIsIDIuMzQ1NjksIDQuNjIyNzMsIDYuODc3ODcsIDEyLjE0OTksIDE1LjE2NTgiLCBcCi0gICAgICAgICAgIjAuODMxODM1LCAwLjk4Mjg3NCwgMi4zNDMwNiwgNC42MTE1NSwgNi44NzQ2MywgMTIuMTQ5NSwgMTUuMTY1NSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNjY3NiwgMC4xOTY0NjksIDAuNDYzODE0LCAwLjkwOTMyLCAxLjM1NTYyLCAyLjM5NTUyLCAyLjk4ODE2IiwgXAotICAgICAgICAgICIwLjE3OTAyMSwgMC4yMDg2NzEsIDAuNDc2MDI2LCAwLjkyMjE3OSwgMS4zNjc5LCAyLjQwNzc2LCAzLjAwMDQ5IiwgXAotICAgICAgICAgICIwLjE5MzgxLCAwLjIyMzUxNiwgMC40ODc5NjgsIDAuOTMzODc0LCAxLjM3OTg5LCAyLjQxOTU2LCAzLjAxMzA5IiwgXAotICAgICAgICAgICIwLjIwOTM2OCwgMC4yMzgzOTUsIDAuNTA1OTA1LCAwLjk0NzYyOSwgMS4zOTI5LCAyLjQzMjkxLCAzLjAyNjU1IiwgXAotICAgICAgICAgICIwLjIyNDU2NiwgMC4yNTQxMDUsIDAuNTIwNzY4LCAwLjk2MDcyMSwgMS40MDkzNCwgMi40NDg5MywgMy4wNDIxNSIsIFwKLSAgICAgICAgICAiMC4yNDg5NjQsIDAuMjc4NTk2LCAwLjU0NDc5MywgMC45OTAyMTQsIDEuNDI3OTMsIDIuNDY3ODksIDMuMDYwODYiLCBcCi0gICAgICAgICAgIjAuMjcwNDE1LCAwLjMwMDAyMywgMC41NjU1NDMsIDEuMDExMjIsIDEuNDU0NjgsIDIuNDg2NTIsIDMuMDgwMjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzIwMjQzLCAwLjM3ODY3OCwgMC45MDY4OCwgMS43ODgwMiwgMi42NzE0OCwgNC43MzAwNiwgNS44OTkzIiwgXAotICAgICAgICAgICIwLjMxOTM4OCwgMC4zNzgxNDUsIDAuOTA2OTk4LCAxLjc5MTMxLCAyLjY3NjYyLCA0LjcyODI3LCA1LjkwMTY1IiwgXAotICAgICAgICAgICIwLjMxOTM1NywgMC4zNzg1MTYsIDAuOTA3OTMxLCAxLjc4ODYyLCAyLjY3MzYzLCA0LjcyODM1LCA1Ljg5OTk2IiwgXAotICAgICAgICAgICIwLjMyMDM5MiwgMC4zNzg3NTUsIDAuOTA4Mzc4LCAxLjc5MzA4LCAyLjY3Nzk0LCA0LjczMTMxLCA1LjkwMTE0IiwgXAotICAgICAgICAgICIwLjMyMDgxNywgMC4zNzg4OTksIDAuOTA2NzgsIDEuNzg4NzgsIDIuNjcwMDMsIDQuNzMwNjQsIDUuOTAxMTQiLCBcCi0gICAgICAgICAgIjAuMzI0MTAyLCAwLjM4MTMzMiwgMC45MDk1MDQsIDEuNzg3OTgsIDIuNjcwNTYsIDQuNzMwODgsIDUuOTAxNjUiLCBcCi0gICAgICAgICAgIjAuMzI4ODE5LCAwLjM4NDU0NCwgMC45MDg0ODYsIDEuNzkxOTQsIDIuNjY5ODEsIDQuNzMxNiwgNS45MDAwMyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkFOIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDE0LCAwLjAwMTQsIDAuMDAxNCwgMC4wMDE0LCAwLjAwMTQsIDAuMDAxMzk3LCAwLjAwMTMzIiwgXAotICAgICAgICAgICIwLjAwMTM4MSwgMC4wMDEzODEsIDAuMDAxMzgxLCAwLjAwMTM4MSwgMC4wMDEzODEsIDAuMDAxMzc4LCAwLjAwMTMxMSIsIFwKLSAgICAgICAgICAiMC4wMDEzNzEsIDAuMDAxMzcxLCAwLjAwMTM3MSwgMC4wMDEzNzIsIDAuMDAxMzcyLCAwLjAwMTM2OCwgMC4wMDEzMDgiLCBcCi0gICAgICAgICAgIjAuMDAxMzY3LCAwLjAwMTM2NywgMC4wMDEzNjgsIDAuMDAxMzY4LCAwLjAwMTM2OCwgMC4wMDEzNjQsIDAuMDAxMjk3IiwgXAotICAgICAgICAgICIwLjAwMTM2NiwgMC4wMDEzNjYsIDAuMDAxMzY3LCAwLjAwMTM2OCwgMC4wMDEzNjcsIDAuMDAxMzYxLCAwLjAwMTI5NiIsIFwKLSAgICAgICAgICAiMC4wMDEzNjUsIDAuMDAxMzY2LCAwLjAwMTM2NywgMC4wMDEzNjgsIDAuMDAxMzY4LCAwLjAwMTM2NSwgMC4wMDEzMDIiLCBcCi0gICAgICAgICAgIjAuMDAxMzY3LCAwLjAwMTM2NywgMC4wMDEzNjksIDAuMDAxMzcsIDAuMDAxMzcsIDAuMDAxMzY3LCAwLjAwMTI5OCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTY4MiwgMC4wMDE2ODIsIDAuMDAxNjgyLCAwLjAwMTY4MiwgMC4wMDE2ODEsIDAuMDAxNjgsIDAuMDAxNjgiLCBcCi0gICAgICAgICAgIjAuMDAxNjY4LCAwLjAwMTY2OCwgMC4wMDE2NjgsIDAuMDAxNjY4LCAwLjAwMTY2OCwgMC4wMDE2NjcsIDAuMDAxNjY2IiwgXAotICAgICAgICAgICIwLjAwMTY1OSwgMC4wMDE2NTksIDAuMDAxNjU5LCAwLjAwMTY1OSwgMC4wMDE2NTksIDAuMDAxNjU4LCAwLjAwMTY1NyIsIFwKLSAgICAgICAgICAiMC4wMDE2NTUsIDAuMDAxNjU1LCAwLjAwMTY1NSwgMC4wMDE2NTUsIDAuMDAxNjU1LCAwLjAwMTY1NCwgMC4wMDE2NTMiLCBcCi0gICAgICAgICAgIjAuMDAxNjUzLCAwLjAwMTY1MiwgMC4wMDE2NTMsIDAuMDAxNjUzLCAwLjAwMTY1MiwgMC4wMDE2NTEsIDAuMDAxNjUxIiwgXAotICAgICAgICAgICIwLjAwMTY1MSwgMC4wMDE2NTEsIDAuMDAxNjUyLCAwLjAwMTY1MiwgMC4wMDE2NTEsIDAuMDAxNjUsIDAuMDAxNjUiLCBcCi0gICAgICAgICAgIjAuMDAxNjUxLCAwLjAwMTY1MSwgMC4wMDE2NTIsIDAuMDAxNjUyLCAwLjAwMTY1MSwgMC4wMDE2NSwgMC4wMDE2NSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTIzMSwgMC4wMDEyMzEsIDAuMDAxMjMxLCAwLjAwMTIzMiwgMC4wMDEyMzEsIDAuMDAxMjI4LCAwLjAwMTE2MSIsIFwKLSAgICAgICAgICAiMC4wMDEyMywgMC4wMDEyMjksIDAuMDAxMjI5LCAwLjAwMTIzLCAwLjAwMTIzMSwgMC4wMDEyMjgsIDAuMDAxMTYxIiwgXAotICAgICAgICAgICIwLjAwMTIyOCwgMC4wMDEyMjgsIDAuMDAxMjMsIDAuMDAxMjMsIDAuMDAxMjMsIDAuMDAxMjI4LCAwLjAwMTE2IiwgXAotICAgICAgICAgICIwLjAwMTIyNiwgMC4wMDEyMjcsIDAuMDAxMjI5LCAwLjAwMTIzLCAwLjAwMTIzLCAwLjAwMTIyOCwgMC4wMDExNjIiLCBcCi0gICAgICAgICAgIjAuMDAxMjI1LCAwLjAwMTIyNiwgMC4wMDEyMjksIDAuMDAxMjMsIDAuMDAxMjMsIDAuMDAxMjI3LCAwLjAwMTE1OSIsIFwKLSAgICAgICAgICAiMC4wMDEyMjMsIDAuMDAxMjI0LCAwLjAwMTIyOCwgMC4wMDEyMjksIDAuMDAxMjMsIDAuMDAxMjI3LCAwLjAwMTE1NyIsIFwKLSAgICAgICAgICAiMC4wMDEyMjIsIDAuMDAxMjIzLCAwLjAwMTIyNywgMC4wMDEyMjksIDAuMDAxMjI5LCAwLjAwMTIyNywgMC4wMDExNiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDIxOSwgMC4wMDAyMiwgMC4wMDAyMiwgMC4wMDAyMTksIDAuMDAwMjE5LCAwLjAwMDIxOSwgMC4wMDAyMTkiLCBcCi0gICAgICAgICAgIjAuMDAwMjE4LCAwLjAwMDIxOCwgMC4wMDAyMTksIDAuMDAwMjE5LCAwLjAwMDIxOSwgMC4wMDAyMTksIDAuMDAwMjE4IiwgXAotICAgICAgICAgICIwLjAwMDIxNiwgMC4wMDAyMTcsIDAuMDAwMjE4LCAwLjAwMDIxOSwgMC4wMDAyMTksIDAuMDAwMjE5LCAwLjAwMDIxOSIsIFwKLSAgICAgICAgICAiMC4wMDAyMTUsIDAuMDAwMjE1LCAwLjAwMDIxOCwgMC4wMDAyMTgsIDAuMDAwMjE5LCAwLjAwMDIxOCwgMC4wMDAyMTgiLCBcCi0gICAgICAgICAgIjAuMDAwMjEyLCAwLjAwMDIxNCwgMC4wMDAyMTcsIDAuMDAwMjE4LCAwLjAwMDIxOCwgMC4wMDAyMTgsIDAuMDAwMjE4IiwgXAotICAgICAgICAgICIwLjAwMDIxMSwgMC4wMDAyMTIsIDAuMDAwMjE2LCAwLjAwMDIxOCwgMC4wMDAyMTgsIDAuMDAwMjE4LCAwLjAwMDIxOCIsIFwKLSAgICAgICAgICAiMC4wMDAyMDksIDAuMDAwMjEsIDAuMDAwMjE1LCAwLjAwMDIxNywgMC4wMDAyMTgsIDAuMDAwMjE4LCAwLjAwMDIxOCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTA5MiwgMC4wMDEwOTEsIDAuMDAxMDkyLCAwLjAwMTA5MiwgMC4wMDEwOTIsIDAuMDAxMDg4LCAwLjAwMTAyMiIsIFwKLSAgICAgICAgICAiMC4wMDEwODksIDAuMDAxMDksIDAuMDAxMDkxLCAwLjAwMTA5MSwgMC4wMDEwOTEsIDAuMDAxMDg4LCAwLjAwMTAyOSIsIFwKLSAgICAgICAgICAiMC4wMDEwODcsIDAuMDAxMDg3LCAwLjAwMTA5LCAwLjAwMTA5MSwgMC4wMDEwOTEsIDAuMDAxMDg5LCAwLjAwMTAyMSIsIFwKLSAgICAgICAgICAiMC4wMDEwODUsIDAuMDAxMDg2LCAwLjAwMTA4OSwgMC4wMDEwOSwgMC4wMDEwOSwgMC4wMDEwODgsIDAuMDAxMDIxIiwgXAotICAgICAgICAgICIwLjAwMTA4MywgMC4wMDEwODMsIDAuMDAxMDg4LCAwLjAwMTA5LCAwLjAwMTA5LCAwLjAwMTA4OCwgMC4wMDEwMiIsIFwKLSAgICAgICAgICAiMC4wMDEwOCwgMC4wMDEwODEsIDAuMDAxMDg3LCAwLjAwMTA4OSwgMC4wMDEwOSwgMC4wMDEwODgsIDAuMDAxMDE5IiwgXAotICAgICAgICAgICIwLjAwMTA3OCwgMC4wMDEwOCwgMC4wMDEwODYsIDAuMDAxMDg4LCAwLjAwMTA5LCAwLjAwMTA4OCwgMC4wMDEwMjEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDAwMzgsIDAuMDAwMDM4LCAwLjAwMDAzOSwgMC4wMDAwMzksIDAuMDAwMDM5LCAwLjAwMDAzOSwgMC4wMDAwMzkiLCBcCi0gICAgICAgICAgIjAuMDAwMDQ2LCAwLjAwMDA0NiwgMC4wMDAwNDgsIDAuMDAwMDQ5LCAwLjAwMDA0OSwgMC4wMDAwNDksIDAuMDAwMDQ5IiwgXAotICAgICAgICAgICIwLjAwMDA0NSwgMC4wMDAwNDYsIDAuMDAwMDUsIDAuMDAwMDUxLCAwLjAwMDA1MiwgMC4wMDAwNTIsIDAuMDAwMDUzIiwgXAotICAgICAgICAgICIwLjAwMDA0MywgMC4wMDAwNDUsIDAuMDAwMDQ5LCAwLjAwMDA1MiwgMC4wMDAwNTIsIDAuMDAwMDUzLCAwLjAwMDA1MyIsIFwKLSAgICAgICAgICAiMC4wMDAwNDEsIDAuMDAwMDQzLCAwLjAwMDA0OSwgMC4wMDAwNTIsIDAuMDAwMDUyLCAwLjAwMDA1MywgMC4wMDAwNTMiLCBcCi0gICAgICAgICAgIjAuMDAwMDM4LCAwLjAwMDA0LCAwLjAwMDA0OCwgMC4wMDAwNTEsIDAuMDAwMDUyLCAwLjAwMDA1MywgMC4wMDAwNTQiLCBcCi0gICAgICAgICAgIjAuMDAwMDM1LCAwLjAwMDAzOCwgMC4wMDAwNDcsIDAuMDAwMDUsIDAuMDAwMDUyLCAwLjAwMDA1MywgMC4wMDAwNTQiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IE5PUjNYMSAqCi0gKiAtLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKE5PUjNYMSkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjA2Mzg0NTg7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDgwNDE1NzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA3OTcwNDY7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwODA0MTU3OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDI2NSwgMC4wMDAyNzUsIDAuMDAwMjgsIDAuMDAwMjgzLCAwLjAwMDI4NCwgMC4wMDAyODYsIDAuMDAwMjg3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzg5LCAwLjAwMDM4OSwgMC4wMDAzODksIDAuMDAwMzksIDAuMDAwMzksIDAuMDAwMzksIDAuMDAwMzkiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDgzNjE2NTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA4MzAxMzc7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwODM2MTY1OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDI2NSwgMC4wMDAyODMsIDAuMDAwMjg5LCAwLjAwMDI5MiwgMC4wMDAyOTMsIDAuMDAwMjk0LCAwLjAwMDI5NSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDMxMywgMC4wMDAzMTQsIDAuMDAwMzEzLCAwLjAwMDMxNCwgMC4wMDAzMTQsIDAuMDAwMzE0LCAwLjAwMDMxNCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQykgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwODQwNDIxOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDg0MDQyMTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA4NDA0MTE7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMDkxLCAwLjAwMDA5MSwgMC4wMDAwOTEsIDAuMDAwMDkxLCAwLjAwMDA5MSwgMC4wMDAwOTEsIDAuMDAwMDkxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzQ3LCAwLjAwMDM0NywgMC4wMDAzNDcsIDAuMDAwMzQ3LCAwLjAwMDM0NywgMC4wMDAzNDYsIDAuMDAwMzQ2Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMDQ2MjI0OwotICAgIGZ1bmN0aW9uIDogIighKChBK0IpK0MpKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjc3NTQ4LCAwLjQxMzIzMSwgMS4xODIxOSwgMS44NTk1NywgMi43NjMzMywgNC41NzAzOSwgNS42OTkzOCIsIFwKLSAgICAgICAgICAiMC4yODkxMzgsIDAuNDI0ODcsIDEuMTkzNzIsIDEuODcxMjUsIDIuNzc1MzgsIDQuNTgyMDcsIDUuNzExMDYiLCBcCi0gICAgICAgICAgIjAuMzAxNjkzLCAwLjQzNzUxNCwgMS4yMDYwNiwgMS44ODQ1MSwgMi43ODgxMiwgNC41OTQ4LCA1LjcyNDA2IiwgXAotICAgICAgICAgICIwLjMxMzQ4OSwgMC40NDkyMDQsIDEuMjE4NDQsIDEuODk3MDEsIDIuODAwMSwgNC42MDY4MywgNS43MzU5NCIsIFwKLSAgICAgICAgICAiMC4zMjQ2MTgsIDAuNDYwNDk4LCAxLjIyOTI4LCAxLjkwNzY1LCAyLjgxMTA3LCA0LjYxODA0LCA1Ljc0NzI2IiwgXAotICAgICAgICAgICIwLjM0MTg1OCwgMC40Nzc2NjksIDEuMjQ2NTEsIDEuOTI0OCwgMi44Mjg1MywgNC42MzUzOSwgNS43NjQ1NiIsIFwKLSAgICAgICAgICAiMC4zNTY2NTYsIDAuNDkyNjM3LCAxLjI2MTE4LCAxLjkzOTY3LCAyLjg0MzczLCA0LjY1MDM1LCA1Ljc3OTQ3Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjQ5MzkzNywgMC43NTQwNTYsIDIuMjM2NTUsIDMuNTM2NDUsIDUuMjgwMTcsIDguNzM2MiwgMTAuOTAyMyIsIFwKLSAgICAgICAgICAiMC40OTM1MjgsIDAuNzU2MTksIDIuMjM2NDEsIDMuNTQzMDEsIDUuMjgxMiwgOC43MzU2OCwgMTAuOTAyMiIsIFwKLSAgICAgICAgICAiMC40OTM5OTYsIDAuNzU1OTI4LCAyLjIzNDg1LCAzLjU0Mzk5LCA1LjI4MTExLCA4LjczODA1LCAxMC45MDI0IiwgXAotICAgICAgICAgICIwLjQ5NDUzNiwgMC43NTU0MTMsIDIuMjM2NDcsIDMuNTMyNjMsIDUuMjgxMTcsIDguNzM0ODksIDEwLjkwMDkiLCBcCi0gICAgICAgICAgIjAuNDkzNzcyLCAwLjc1NTY1NywgMi4yMzUwMywgMy41NDM5LCA1LjI3Mzk2LCA4LjczODA3LCAxMC45MDI0IiwgXAotICAgICAgICAgICIwLjQ5MzYzNCwgMC43NTUzODUsIDIuMjM0NTUsIDMuNTQzNDQsIDUuMjcwNTEsIDguNzM1ODYsIDEwLjkwMjMiLCBcCi0gICAgICAgICAgIjAuNDk2MDE3LCAwLjc1MzkyOCwgMi4yMzE2OSwgMy41NDMzNCwgNS4yNjc4NSwgOC43MzYyLCAxMC45MDIyIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwNjU4OSwgMC4xNTY0MDksIDAuNDM3MDMsIDAuNjg0MjA3LCAxLjAxMzUxLCAxLjY3MjEsIDIuMDgzOTEiLCBcCi0gICAgICAgICAgIjAuMTE4MDg3LCAwLjE2NzkyOCwgMC40NDg1OTIsIDAuNjk1ODA2LCAxLjAyNTE4LCAxLjY4Mzg5LCAyLjA5NTQ2IiwgXAotICAgICAgICAgICIwLjEzMzAxNSwgMC4xODI0NjUsIDAuNDYzMzA2LCAwLjcwNzQ1MiwgMS4wMzcxMSwgMS42OTU3NSwgMi4xMDc3MyIsIFwKLSAgICAgICAgICAiMC4xNDc5MzEsIDAuMTk3MjYzLCAwLjQ3Nzg2OCwgMC43MjQwNTIsIDEuMDUwMDEsIDEuNzA5MDQsIDIuMTIwNzQiLCBcCi0gICAgICAgICAgIjAuMTYyOTg2LCAwLjIxMjMwNSwgMC40OTI1NDYsIDAuNzM2NjMyLCAxLjA2NjExLCAxLjcyNDQ3LCAyLjEzNzEiLCBcCi0gICAgICAgICAgIjAuMTg3MTU1LCAwLjIzNjcyMywgMC41MTYwOTMsIDAuNzYzMTM2LCAxLjA5MjU2LCAxLjc0MzMzLCAyLjE1NTQ0IiwgXAotICAgICAgICAgICIwLjIwODQ0NywgMC4yNTc2ODMsIDAuNTM2NjMsIDAuNzgzODQsIDEuMTEzMTcsIDEuNzYxNjYsIDIuMTczNDYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTkyOTEsIDAuMjkwODA4LCAwLjg0NTYyNiwgMS4zMzUyLCAxLjk4ODA3LCAzLjI5NDIyLCA0LjExMDQ0IiwgXAotICAgICAgICAgICIwLjE5MjcyOCwgMC4yOTA3MDksIDAuODQ2MTExLCAxLjMzNTQ3LCAxLjk4ODY5LCAzLjI5Mzc1LCA0LjExMDM4IiwgXAotICAgICAgICAgICIwLjE5Mjc2LCAwLjI5MDcyNiwgMC44NDYxNzUsIDEuMzM1ODMsIDEuOTg4NDQsIDMuMjkzOTQsIDQuMTA5NjciLCBcCi0gICAgICAgICAgIjAuMTkzNjczLCAwLjI5MDcwNywgMC44NDYyMDcsIDEuMzM1OTUsIDEuOTg4NjQsIDMuMjkzOSwgNC4xMTAzMiIsIFwKLSAgICAgICAgICAiMC4xOTY0MjQsIDAuMjkxNTgzLCAwLjg0NTg3NCwgMS4zMzU5MiwgMS45ODg0OSwgMy4yOTM0MywgNC4xMTAzNCIsIFwKLSAgICAgICAgICAiMC4yMDMyNDMsIDAuMjk1NjY0LCAwLjg0NjEzNSwgMS4zMzU0OSwgMS45ODgzNiwgMy4yOTQ0NCwgNC4xMDk2NiIsIFwKLSAgICAgICAgICAiMC4yMTA4MjcsIDAuMzAxMjI0LCAwLjg0NTgwNywgMS4zMzU4MSwgMS45ODg3MywgMy4yOTQxNiwgNC4xMTA0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI3MTQ4OSwgMC40MDY5NywgMS4xNzU4MiwgMS44NTM3MywgMi43NTc0NSwgNC41NjQxNCwgNS42OTM1NSIsIFwKLSAgICAgICAgICAiMC4yODIwMywgMC40MTc3NDMsIDEuMTg2NzksIDEuODY0MjUsIDIuNzY4NSwgNC41NzUxNSwgNS43MDQxNCIsIFwKLSAgICAgICAgICAiMC4yOTQzOTgsIDAuNDMwMDc3LCAxLjE5ODksIDEuODc2OTIsIDIuNzgwNjcsIDQuNTg3NiwgNS43MTY3OCIsIFwKLSAgICAgICAgICAiMC4zMDY1NTgsIDAuNDQyMjkyLCAxLjIxMDk2LCAxLjg4OTA3LCAyLjc5MywgNC41OTk3NCwgNS43Mjg5MSIsIFwKLSAgICAgICAgICAiMC4zMTgzMjIsIDAuNDU0MDUyLCAxLjIyMzEyLCAxLjkwMTY2LCAyLjgwNTA5LCA0LjYxMTUzLCA1Ljc0MDk4IiwgXAotICAgICAgICAgICIwLjMzNzEzMiwgMC40NzMwODgsIDEuMjQyMTgsIDEuOTE5NzUsIDIuODIzNjksIDQuNjMwNjUsIDUuNzU5OTMiLCBcCi0gICAgICAgICAgIjAuMzUzNTA3LCAwLjQ4ODMzMiwgMS4yNTg0NywgMS45MzYzMywgMi44NDAyMiwgNC42NDc1OCwgNS43NzY1OCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC40OTQ0NDEsIDAuNzU0NzI2LCAyLjIzNTQ0LCAzLjU0MzMsIDUuMjc0NjgsIDguNzM3MjMsIDEwLjkwMjUiLCBcCi0gICAgICAgICAgIjAuNDkzODMsIDAuNzU0MjQzLCAyLjIzMDEyLCAzLjUzNjMzLCA1LjI4MTI1LCA4LjczODQ5LCAxMC45MDIzIiwgXAotICAgICAgICAgICIwLjQ5NDQyMywgMC43NTU5NTgsIDIuMjM1MTMsIDMuNTQzMjgsIDUuMjc0NDIsIDguNzM4NDIsIDEwLjkwMjUiLCBcCi0gICAgICAgICAgIjAuNDk0NzE3LCAwLjc1NDI5OSwgMi4yMzAyNCwgMy41NDMxNSwgNS4yNjk0NSwgOC43MzYxMywgMTAuOTAyMyIsIFwKLSAgICAgICAgICAiMC40OTQ0NCwgMC43NTU5NTgsIDIuMjM1NjgsIDMuNTQ0NSwgNS4yODExOCwgOC43MzY3NSwgMTAuOTAyNCIsIFwKLSAgICAgICAgICAiMC40OTUxNDUsIDAuNzU1NTI5LCAyLjIzNTkxLCAzLjUzNTI2LCA1LjI3MzUyLCA4LjczOCwgMTAuOTAyMyIsIFwKLSAgICAgICAgICAiMC40OTY4NDUsIDAuNzU0MTU0LCAyLjIzMTgzLCAzLjUzNTc5LCA1LjI3MzExLCA4LjczNTgzLCAxMC45MDExIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwMjQ4OSwgMC4xNTIwMzEsIDAuNDMyMjEyLCAwLjY3OTM3OCwgMS4wMDg2OSwgMS42NjcxOSwgMi4wNzg5OSIsIFwKLSAgICAgICAgICAiMC4xMTQzODEsIDAuMTYzOTM2LCAwLjQ0NDExNywgMC42OTEwNDYsIDEuMDIwNzksIDEuNjc5MzUsIDIuMDkwMjQiLCBcCi0gICAgICAgICAgIjAuMTI5Mjc1LCAwLjE3ODYxMiwgMC40NTg0NzYsIDAuNzA1NjEsIDEuMDM0OTgsIDEuNjk0MDEsIDIuMTA1MDMiLCBcCi0gICAgICAgICAgIjAuMTQ0MjA3LCAwLjE5MzU0OCwgMC40NzM5MTIsIDAuNzIwOTY5LCAxLjA1MDQ2LCAxLjcwOTI0LCAyLjEyMDEzIiwgXAotICAgICAgICAgICIwLjE1OTExMywgMC4yMDgyMDQsIDAuNDg3OTIzLCAwLjczMTg5MiwgMS4wNjEzOSwgMS43MTk5LCAyLjEzMTg5IiwgXAotICAgICAgICAgICIwLjE4MzAyNiwgMC4yMzI1ODcsIDAuNTEyODE3LCAwLjc1ODUzMiwgMS4wODc2MywgMS43MzgzNywgMi4xNTAzNiIsIFwKLSAgICAgICAgICAiMC4yMDQxMDgsIDAuMjUzNjU2LCAwLjUzMzg3NiwgMC43NzkyMDksIDEuMTA4MjgsIDEuNzU3NDQsIDIuMTY4NDUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTg3NjA1LCAwLjI4NTU5OSwgMC44NDA3MDIsIDEuMzMwMzEsIDEuOTgyOTIsIDMuMjg5MTcsIDQuMTA0NjIiLCBcCi0gICAgICAgICAgIjAuMTg3NjE0LCAwLjI4NTU5NSwgMC44NDA2ODEsIDEuMzI5OCwgMS45ODMwNywgMy4yODg1MiwgNC4xMDM3NyIsIFwKLSAgICAgICAgICAiMC4xODc1NzMsIDAuMjg1NDg3LCAwLjg0MDYyNSwgMS4zMzAyMiwgMS45ODI5MiwgMy4yODg1MSwgNC4xMDQ1OCIsIFwKLSAgICAgICAgICAiMC4xODg3NTksIDAuMjg1NTQxLCAwLjg0MDY2LCAxLjMzMDA0LCAxLjk4MjkxLCAzLjI4ODM2LCA0LjEwNDY0IiwgXAotICAgICAgICAgICIwLjE5MTgyNSwgMC4yODY2ODcsIDAuODQwNTg0LCAxLjMzMDQ2LCAxLjk4MjksIDMuMjg4NDEsIDQuMTA1NzciLCBcCi0gICAgICAgICAgIjAuMTk5MjI2LCAwLjI5MDg4MywgMC44NDA4MTksIDEuMzMwMiwgMS45ODI5NywgMy4yODg5NSwgNC4xMDQzMyIsIFwKLSAgICAgICAgICAiMC4yMDc1NDgsIDAuMjk2NDkxLCAwLjg0MDc5MSwgMS4zMzAyMywgMS45ODMzNCwgMy4yODg0MiwgNC4xMDQ4OSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yNTY3OCwgMC4zOTI0MjIsIDEuMTYwODYsIDEuODM5OCwgMi43NDMwOCwgNC41NDk3NCwgNS42Nzg3NSIsIFwKLSAgICAgICAgICAiMC4yNjYxNiwgMC40MDE4NjQsIDEuMTcxMTMsIDEuODQ4ODIsIDIuNzUyNjcsIDQuNTU5MzcsIDUuNjg4MzYiLCBcCi0gICAgICAgICAgIjAuMjc4MjI1LCAwLjQxNDAxNywgMS4xODI1MSwgMS44NjA4NiwgMi43NjUwMiwgNC41NzE1NiwgNS43MDA4MSIsIFwKLSAgICAgICAgICAiMC4yOTAyMjMsIDAuNDI2MDUxLCAxLjE5NDc4LCAxLjg3Mjk0LCAyLjc3NzE1LCA0LjU4Mzg3LCA1LjcxMjgzIiwgXAotICAgICAgICAgICIwLjMwMTc3MiwgMC40MzgxNTQsIDEuMjA2OTEsIDEuODg1MTksIDIuNzg4NzksIDQuNTk1OTksIDUuNzI1MjMiLCBcCi0gICAgICAgICAgIjAuMzIxNDk5LCAwLjQ1NzQzNiwgMS4yMjYzNCwgMS45MDQzOCwgMi44MDg4NiwgNC42MTU1LCA1Ljc0NDQ4IiwgXAotICAgICAgICAgICIwLjMzODg3OSwgMC40NzQ1NDIsIDEuMjQzNzIsIDEuOTIyOCwgMi44MjU1OSwgNC42MzI1NiwgNS43NjE4OCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC40OTQ3NzIsIDAuNzU1NDI4LCAyLjIzMjE2LCAzLjU0NDcxLCA1LjI4MTE5LCA4LjczODQ0LCAxMC45MDIzIiwgXAotICAgICAgICAgICIwLjQ5NDQ2NiwgMC43NTU0NCwgMi4yMzY3NSwgMy41MzMwMywgNS4yODExOSwgOC43MzUyMSwgMTAuOTAyMyIsIFwKLSAgICAgICAgICAiMC40OTM0ODQsIDAuNzU1NDg3LCAyLjIzMTcyLCAzLjU0MzIsIDUuMjY5MTMsIDguNzM4MTYsIDEwLjkwMjQiLCBcCi0gICAgICAgICAgIjAuNDk0MzQ1LCAwLjc1NDUxMywgMi4yMzE3NywgMy41MzU3OCwgNS4yODEyLCA4LjczNDk4LCAxMC45MDIyIiwgXAotICAgICAgICAgICIwLjQ5NDIwMywgMC43NTU0NjUsIDIuMjMxNzcsIDMuNTM2NDUsIDUuMjc5OTUsIDguNzM4MywgMTAuOTAyNSIsIFwKLSAgICAgICAgICAiMC40OTU2MywgMC43NTQzNzYsIDIuMjM0MzIsIDMuNTM1MTcsIDUuMjY4ODIsIDguNzM4MjMsIDEwLjkwMTkiLCBcCi0gICAgICAgICAgIjAuNDk4MzUxLCAwLjc1NDQ0LCAyLjIzNDg1LCAzLjUzMjM1LCA1LjI3Mjg0LCA4LjczNjgzLCAxMC45MDIzIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5NzI1LCAwLjE0NjY0MiwgMC40MjY0NywgMC42NzM0MjcsIDEuMDAyNTgsIDEuNjYxMjcsIDIuMDcyOTciLCBcCi0gICAgICAgICAgIjAuMTA5MTg1LCAwLjE1ODYwOSwgMC40Mzg1NjQsIDAuNjg1NDM3LCAxLjAxNDY0LCAxLjY3Mjk4LCAyLjA4NDg3IiwgXAotICAgICAgICAgICIwLjEyNDExOSwgMC4xNzMyNTYsIDAuNDUyNzYsIDAuNjk3MzYyLCAxLjAyNjU0LCAxLjY4NDksIDIuMDk3MjIiLCBcCi0gICAgICAgICAgIjAuMTM5MTE5LCAwLjE4ODA1LCAwLjQ2Nzg2NCwgMC43MTM5MDEsIDEuMDQwMTUsIDEuNjk4NjQsIDIuMTEwMjIiLCBcCi0gICAgICAgICAgIjAuMTU0MTc1LCAwLjIwMzQ4OSwgMC40ODI2NTUsIDAuNzI2Mzk4LCAxLjA1NTgzLCAxLjcxNDk0LCAyLjEyNzA4IiwgXAotICAgICAgICAgICIwLjE3ODAyMiwgMC4yMjc1MzIsIDAuNTA3Mzg4LCAwLjc1NDU0NSwgMS4wODIyNSwgMS43MzI4NiwgMi4xNDUwOSIsIFwKLSAgICAgICAgICAiMC4xOTkzOTUsIDAuMjQ4Mzk4LCAwLjUyNjgyNCwgMC43NzM5NzgsIDEuMTAyODUsIDEuNzUyMzIsIDIuMTYyOTIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTgyODE1LCAwLjI4MTE4NCwgMC44MzYzMjgsIDEuMzI1NSwgMS45ODU1NywgMy4yOTE2MywgNC4xMDg2MSIsIFwKLSAgICAgICAgICAiMC4xODI1MjQsIDAuMjgwNTU2LCAwLjgzNjQwNCwgMS4zMjU2MiwgMS45ODE4MywgMy4yOTQzOSwgNC4xMDgyIiwgXAotICAgICAgICAgICIwLjE4MjYzMiwgMC4yODAzMTYsIDAuODM1Nzg0LCAxLjMyNzU1LCAxLjk3OTQ1LCAzLjI5NDM5LCA0LjExMjEyIiwgXAotICAgICAgICAgICIwLjE4NDI5NywgMC4yODAyMDMsIDAuODM1NzA1LCAxLjMyNzAyLCAxLjk3OTM4LCAzLjI5MTM5LCA0LjEwODE4IiwgXAotICAgICAgICAgICIwLjE4NzUxNiwgMC4yODI0MDQsIDAuODM2MTQ4LCAxLjMyNjA5LCAxLjk4MjI0LCAzLjI4NTYsIDQuMTA4OTMiLCBcCi0gICAgICAgICAgIjAuMTk1MTkyLCAwLjI4NjkyNywgMC44MzgwOTgsIDEuMzI2MDIsIDEuOTc4NDIsIDMuMjk2NywgNC4xMDM0MiIsIFwKLSAgICAgICAgICAiMC4yMDMwMywgMC4yOTI2MDMsIDAuODM2NDM2LCAxLjMyNjE4LCAxLjk4NDcxLCAzLjI4ODIxLCA0LjExMTY0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxOTgsIDAuMDAxOTgsIDAuMDAxOTgsIDAuMDAxOTgxLCAwLjAwMTk4MSwgMC4wMDE5OCwgMC4wMDE5NzkiLCBcCi0gICAgICAgICAgIjAuMDAxOTc1LCAwLjAwMTk3NywgMC4wMDE5OCwgMC4wMDE5OCwgMC4wMDE5OCwgMC4wMDE5NzksIDAuMDAxOTc5IiwgXAotICAgICAgICAgICIwLjAwMTk3MSwgMC4wMDE5NzQsIDAuMDAxOTc5LCAwLjAwMTk4LCAwLjAwMTk4LCAwLjAwMTk4MSwgMC4wMDE5NzkiLCBcCi0gICAgICAgICAgIjAuMDAxOTY3LCAwLjAwMTk3MSwgMC4wMDE5NzcsIDAuMDAxOTc5LCAwLjAwMTk3OSwgMC4wMDE5OCwgMC4wMDE5NzkiLCBcCi0gICAgICAgICAgIjAuMDAxOTY0LCAwLjAwMTk2OSwgMC4wMDE5NzcsIDAuMDAxOTc4LCAwLjAwMTk3OSwgMC4wMDE5NzgsIDAuMDAxOTgiLCBcCi0gICAgICAgICAgIjAuMDAxOTYsIDAuMDAxOTY1LCAwLjAwMTk3NSwgMC4wMDE5NzcsIDAuMDAxOTc4LCAwLjAwMTk3OSwgMC4wMDE5NzkiLCBcCi0gICAgICAgICAgIjAuMDAxOTU3LCAwLjAwMTk2MiwgMC4wMDE5NzMsIDAuMDAxOTc2LCAwLjAwMTk3OCwgMC4wMDE5NzksIDAuMDAxOTc5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwNzA4LCAwLjAwMDcwOCwgMC4wMDA3MDYsIDAuMDAwNzA3LCAwLjAwMDcwNSwgMC4wMDA3MDUsIDAuMDAwNzA1IiwgXAotICAgICAgICAgICIwLjAwMDY4NywgMC4wMDA2ODgsIDAuMDAwNjg4LCAwLjAwMDY4NywgMC4wMDA2ODcsIDAuMDAwNjg2LCAwLjAwMDY4NiIsIFwKLSAgICAgICAgICAiMC4wMDA2ODEsIDAuMDAwNjgxLCAwLjAwMDY4MywgMC4wMDA2ODEsIDAuMDAwNjgsIDAuMDAwNjgsIDAuMDAwNjc5IiwgXAotICAgICAgICAgICIwLjAwMDY3NiwgMC4wMDA2NzYsIDAuMDAwNjgsIDAuMDAwNjc5LCAwLjAwMDY3OCwgMC4wMDA2NzcsIDAuMDAwNjc3IiwgXAotICAgICAgICAgICIwLjAwMDY3MywgMC4wMDA2NzUsIDAuMDAwNjc4LCAwLjAwMDY3OCwgMC4wMDA2NzgsIDAuMDAwNjc3LCAwLjAwMDY3NyIsIFwKLSAgICAgICAgICAiMC4wMDA2NywgMC4wMDA2NzIsIDAuMDAwNjc2LCAwLjAwMDY3NywgMC4wMDA2NzcsIDAuMDAwNjc1LCAwLjAwMDY3NSIsIFwKLSAgICAgICAgICAiMC4wMDA2NjgsIDAuMDAwNjcxLCAwLjAwMDY3NiwgMC4wMDA2NzYsIDAuMDAwNjc2LCAwLjAwMDY3NCwgMC4wMDA2NzQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDE3MzMsIDAuMDAxNzMzLCAwLjAwMTczNCwgMC4wMDE3MzQsIDAuMDAxNzM0LCAwLjAwMTczNCwgMC4wMDE3MzMiLCBcCi0gICAgICAgICAgIjAuMDAxNzI5LCAwLjAwMTczMiwgMC4wMDE3MzMsIDAuMDAxNzMzLCAwLjAwMTczMywgMC4wMDE3MzQsIDAuMDAxNzMzIiwgXAotICAgICAgICAgICIwLjAwMTcyNCwgMC4wMDE3MjcsIDAuMDAxNzMsIDAuMDAxNzMyLCAwLjAwMTczMywgMC4wMDE3MzMsIDAuMDAxNzMyIiwgXAotICAgICAgICAgICIwLjAwMTcyLCAwLjAwMTcyNCwgMC4wMDE3MywgMC4wMDE3MzIsIDAuMDAxNzMyLCAwLjAwMTczMywgMC4wMDE3MzIiLCBcCi0gICAgICAgICAgIjAuMDAxNzE3LCAwLjAwMTcyMiwgMC4wMDE3MjksIDAuMDAxNzMxLCAwLjAwMTczMiwgMC4wMDE3MzEsIDAuMDAxNzMyIiwgXAotICAgICAgICAgICIwLjAwMTcxMywgMC4wMDE3MTgsIDAuMDAxNzI4LCAwLjAwMTczLCAwLjAwMTczMSwgMC4wMDE3MzIsIDAuMDAxNzMyIiwgXAotICAgICAgICAgICIwLjAwMTcxLCAwLjAwMTcxMywgMC4wMDE3MjYsIDAuMDAxNzMsIDAuMDAxNzMxLCAwLjAwMTczMiwgMC4wMDE3MzEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDA0MiwgMC4wMDA0MiwgMC4wMDA0MiwgMC4wMDA0MiwgMC4wMDA0MiwgMC4wMDA0MTksIDAuMDAwNDE5IiwgXAotICAgICAgICAgICIwLjAwMDQxNiwgMC4wMDA0MTgsIDAuMDAwNDE5LCAwLjAwMDQyLCAwLjAwMDQyLCAwLjAwMDQxOSwgMC4wMDA0MTkiLCBcCi0gICAgICAgICAgIjAuMDAwNDExLCAwLjAwMDQxMywgMC4wMDA0MTgsIDAuMDAwNDE5LCAwLjAwMDQxOSwgMC4wMDA0MTksIDAuMDAwNDE4IiwgXAotICAgICAgICAgICIwLjAwMDQwNSwgMC4wMDA0MSwgMC4wMDA0MTcsIDAuMDAwNDE4LCAwLjAwMDQxOCwgMC4wMDA0MTksIDAuMDAwNDE4IiwgXAotICAgICAgICAgICIwLjAwMDQsIDAuMDAwNDA3LCAwLjAwMDQxNSwgMC4wMDA0MTYsIDAuMDAwNDE4LCAwLjAwMDQxOCwgMC4wMDA0MTgiLCBcCi0gICAgICAgICAgIjAuMDAwMzk2LCAwLjAwMDQwMywgMC4wMDA0MTQsIDAuMDAwNDE2LCAwLjAwMDQxNywgMC4wMDA0MTcsIDAuMDAwNDE3IiwgXAotICAgICAgICAgICIwLjAwMDM5MiwgMC4wMDA0LCAwLjAwMDQxMiwgMC4wMDA0MTUsIDAuMDAwNDE2LCAwLjAwMDQxNywgMC4wMDA0MTciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDE0NzksIDAuMDAxNDc5LCAwLjAwMTQ4MSwgMC4wMDE0OCwgMC4wMDE0OCwgMC4wMDE0OCwgMC4wMDE0NzkiLCBcCi0gICAgICAgICAgIjAuMDAxNDcxLCAwLjAwMTQ3NCwgMC4wMDE0NzgsIDAuMDAxNDc5LCAwLjAwMTQ3OSwgMC4wMDE0NzcsIDAuMDAxNDc5IiwgXAotICAgICAgICAgICIwLjAwMTQ2NCwgMC4wMDE0NjksIDAuMDAxNDc2LCAwLjAwMTQ3NywgMC4wMDE0NzksIDAuMDAxNDc4LCAwLjAwMTQ3OCIsIFwKLSAgICAgICAgICAiMC4wMDE0NTgsIDAuMDAxNDY1LCAwLjAwMTQ3NCwgMC4wMDE0NzYsIDAuMDAxNDc3LCAwLjAwMTQ3OCwgMC4wMDE0NzgiLCBcCi0gICAgICAgICAgIjAuMDAxNDUzLCAwLjAwMTQ2MSwgMC4wMDE0NzIsIDAuMDAxNDc1LCAwLjAwMTQ3NiwgMC4wMDE0NzcsIDAuMDAxNDc3IiwgXAotICAgICAgICAgICIwLjAwMTQ0NywgMC4wMDE0NTUsIDAuMDAxNDcsIDAuMDAxNDczLCAwLjAwMTQ3NSwgMC4wMDE0NzcsIDAuMDAxNDc2IiwgXAotICAgICAgICAgICIwLjAwMTQ0MywgMC4wMDE0NTIsIDAuMDAxNDY4LCAwLjAwMTQ3MiwgMC4wMDE0NzUsIDAuMDAxNDc1LCAwLjAwMTQ3NiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDA4NiwgMC4wMDAwODcsIDAuMDAwMDg4LCAwLjAwMDA4OCwgMC4wMDAwODksIDAuMDAwMDg5LCAwLjAwMDA4OSIsIFwKLSAgICAgICAgICAiMC4wMDAwOTcsIDAuMDAwMTAxLCAwLjAwMDEwNiwgMC4wMDAxMDcsIDAuMDAwMTA3LCAwLjAwMDEwOCwgMC4wMDAxMDgiLCBcCi0gICAgICAgICAgIjAuMDAwMDkzLCAwLjAwMDEsIDAuMDAwMTA5LCAwLjAwMDExMiwgMC4wMDAxMTMsIDAuMDAwMTE0LCAwLjAwMDExNCIsIFwKLSAgICAgICAgICAiMC4wMDAwODgsIDAuMDAwMDk2LCAwLjAwMDEwOSwgMC4wMDAxMTIsIDAuMDAwMTE0LCAwLjAwMDExNSwgMC4wMDAxMTUiLCBcCi0gICAgICAgICAgIjAuMDAwMDgyLCAwLjAwMDA5MiwgMC4wMDAxMDgsIDAuMDAwMTExLCAwLjAwMDExMywgMC4wMDAxMTUsIDAuMDAwMTE1IiwgXAotICAgICAgICAgICIwLjAwMDA3MywgMC4wMDAwODYsIDAuMDAwMTA1LCAwLjAwMDEwOSwgMC4wMDAxMTIsIDAuMDAwMTE1LCAwLjAwMDExNiIsIFwKLSAgICAgICAgICAiMC4wMDAwNjcsIDAuMDAwMDgxLCAwLjAwMDEwMywgMC4wMDAxMDgsIDAuMDAwMTExLCAwLjAwMDExNSwgMC4wMDAxMTYiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogTk9SNEJCWDIgKgotICogLS0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKE5PUjRCQlgyKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMTk2Mzk2OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBTikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNTYyNjgzOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDU2MjI5MTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA1NjI2ODM7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNzE0LCAwLjAwMDcsIDAuMDAwNjg5LCAwLjAwMDY4NSwgMC4wMDA2ODEsIDAuMDAwNjgsIDAuMDAwNjc5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxNTk3LCAwLjAwMTU4NywgMC4wMDE1OCwgMC4wMDE1NzUsIDAuMDAxNTcxLCAwLjAwMTU2NywgMC4wMDE1NjQiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEJOKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA1ODY3MDI7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNTg2NDg7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNTg2NzAyOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDUyNywgMC4wMDA1MTMsIDAuMDAwNTAzLCAwLjAwMDQ5OCwgMC4wMDA0OTQsIDAuMDAwNDkxLCAwLjAwMDQ5MSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTk0NywgMC4wMDE5MzcsIDAuMDAxOTMxLCAwLjAwMTkyNywgMC4wMDE5MjUsIDAuMDAxOTI0LCAwLjAwMTkyMyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQykgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNTA1MTc7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNDkxNjI7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNTA1MTc7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjQyLCAwLjAwMDI0MiwgMC4wMDAyNDIsIDAuMDAwMjQyLCAwLjAwMDI0MiwgMC4wMDAyNDIsIDAuMDAwMjQyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNjA3LCAwLjAwMDYwNywgMC4wMDA2MDYsIDAuMDAwNjA3LCAwLjAwMDYwNiwgMC4wMDA2MDYsIDAuMDAwNjA2Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihEKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE1NDIxNDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE1NDIwMzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE1NDIxNDsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxNDYsIDAuMDAwMTQ2LCAwLjAwMDE0NiwgMC4wMDAxNDYsIDAuMDAwMTQ2LCAwLjAwMDE0NiwgMC4wMDAxNDYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA5MTMsIDAuMDAwOTEzLCAwLjAwMDkxMiwgMC4wMDA5MTIsIDAuMDAwOTEzLCAwLjAwMDkxMiwgMC4wMDA5MTIiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4wNjQ4Mzg3OwotICAgIGZ1bmN0aW9uIDogIighKCgoKCFCTikrKCFBTikpK0MpK0QpKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQU4iOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMwNzYyMSwgMS4wODYzMiwgMS43MDkwMSwgMi40ODcxNiwgMy4yNjU0OCwgNC4wNDMyMywgNC44MjEyMiIsIFwKLSAgICAgICAgICAiMC4zMTkyNzQsIDEuMDk4MTUsIDEuNzIxNTcsIDIuNDk5NDgsIDMuMjc3NjcsIDQuMDU1MDQsIDQuODMyOTUiLCBcCi0gICAgICAgICAgIjAuMzM0NTg0LCAxLjExMzY4LCAxLjczNjE2LCAyLjUxNDk2LCAzLjI5MjQ5LCA0LjA3MDUxLCA0Ljg0ODYxIiwgXAotICAgICAgICAgICIwLjM0OTc4NywgMS4xMjg4OCwgMS43NTIyMSwgMi41MzAyNiwgMy4zMDg0MiwgNC4wODU2OCwgNC44NjM3IiwgXAotICAgICAgICAgICIwLjM2NDkxOSwgMS4xNDQwMiwgMS43NjY2MywgMi41NDU0MiwgMy4zMjMwMywgNC4xMDEwMywgNC44NzkxNCIsIFwKLSAgICAgICAgICAiMC4zODg1MjksIDEuMTY4MTMsIDEuNzkwNzEsIDIuNTY5NjIsIDMuMzQ2NzEsIDQuMTI0OSwgNC45MDI4NyIsIFwKLSAgICAgICAgICAiMC40MDc5ODUsIDEuMTg2ODgsIDEuODEwNDQsIDIuNTg4ODYsIDMuMzY2NTQsIDQuMTQ0MzYsIDQuOTIyNDMiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzkzNTU1LCAxLjg4MTk1LCAzLjA2NzgsIDQuNTU0OCwgNi4wMzExNSwgNy41MTkwMiwgOC45OTAyNCIsIFwKLSAgICAgICAgICAiMC4zOTM1OTEsIDEuODc5NDksIDMuMDY5NDYsIDQuNTUxMjcsIDYuMDMyNDksIDcuNTE5MSwgOC45OTg1MyIsIFwKLSAgICAgICAgICAiMC4zOTM1NjksIDEuODc5OTIsIDMuMDY4MjYsIDQuNTYzNjcsIDYuMDQwMTksIDcuNTE5MTMsIDguOTk5MDMiLCBcCi0gICAgICAgICAgIjAuMzkzNTgsIDEuODc4ODQsIDMuMDY5MzEsIDQuNTUwOTMsIDYuMDMyNSwgNy41MTg5NSwgOC45OTg0NiIsIFwKLSAgICAgICAgICAiMC4zOTM3OTEsIDEuODc5NzEsIDMuMDY4MDYsIDQuNTYzNDYsIDYuMDQwMTgsIDcuNTE5MSwgOC45OTkwMSIsIFwKLSAgICAgICAgICAiMC4zOTM2ODUsIDEuODgwMzEsIDMuMDY4NjksIDQuNTY0NCwgNi4wNDAxNCwgNy41MTkyNSwgOC45OTcwNSIsIFwKLSAgICAgICAgICAiMC4zOTM3NTYsIDEuODgwMTksIDMuMDY4OTUsIDQuNTYzODUsIDYuMDMxOTIsIDcuNTE5MTcsIDguOTk2ODEiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTE3OTQzLCAwLjMyOTYwOSwgMC40OTU2ODYsIDAuNzAyNjQ0LCAwLjkwOTI4MSwgMS4xMTU4NSwgMS4zMjIzNCIsIFwKLSAgICAgICAgICAiMC4xMjk2MTQsIDAuMzQxMTI5LCAwLjUwNzIyMywgMC43MTQxMDEsIDAuOTIwNzgsIDEuMTI3MjUsIDEuMzMzNjYiLCBcCi0gICAgICAgICAgIjAuMTQ0MzAzLCAwLjM1NTk4NSwgMC41MjIwNjMsIDAuNzI5MDIzLCAwLjkzNTczMiwgMS4xNDIyMywgMS4zNDg3IiwgXAotICAgICAgICAgICIwLjE1OTAyOSwgMC4zNzA3MDgsIDAuNTM2Nzg2LCAwLjc0MzY4MywgMC45NTA0NTcsIDEuMTU2OTUsIDEuMzYzNDQiLCBcCi0gICAgICAgICAgIjAuMTczNDc5LCAwLjM4NTIyMSwgMC41NTEzMTIsIDAuNzU4MzMzLCAwLjk2NDk5NSwgMS4xNzE0NCwgMS4zNzc4OCIsIFwKLSAgICAgICAgICAiMC4xOTUyNjgsIDAuNDA2OTQ4LCAwLjU3MzAyNiwgMC43Nzk5MDcsIDAuOTg2NjA2LCAxLjE5MzEyLCAxLjM5OTU0IiwgXAotICAgICAgICAgICIwLjIxMjY4NSwgMC40MjQzLCAwLjU5MDM1MywgMC43OTcyOTEsIDEuMDAzODgsIDEuMjEwNDcsIDEuNDE2ODUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTI2Nzc0LCAwLjUzNTk5NywgMC44NjM5NTcsIDEuMjc0MTQsIDEuNjg0NDYsIDIuMDk0NjcsIDIuNTA1NTIiLCBcCi0gICAgICAgICAgIjAuMTI2NzE4LCAwLjUzNjAwNiwgMC44NjQxNTcsIDEuMjc0NjQsIDEuNjg0NTgsIDIuMDk0MTYsIDIuNTA0MzEiLCBcCi0gICAgICAgICAgIjAuMTI2NzQ1LCAwLjUzNTk5MywgMC44NjM5NiwgMS4yNzQxNCwgMS42ODUwNywgMi4wOTQ3OCwgMi41MDU1MSIsIFwKLSAgICAgICAgICAiMC4xMjY3ODEsIDAuNTM1OTkzLCAwLjg2Mzk1OSwgMS4yNzQ2OCwgMS42ODUwNiwgMi4wOTQ3NSwgMi41MDU1NSIsIFwKLSAgICAgICAgICAiMC4xMjY4NTMsIDAuNTM1OTgsIDAuODYzODk4LCAxLjI3NDM5LCAxLjY4NDExLCAyLjA5NTEzLCAyLjUwNDU3IiwgXAotICAgICAgICAgICIwLjEyNzE0MiwgMC41MzU5OTIsIDAuODYzODkyLCAxLjI3NDU4LCAxLjY4NDQxLCAyLjA5NDUxLCAyLjUwNTI5IiwgXAotICAgICAgICAgICIwLjEyNzgyLCAwLjUzNjA5MiwgMC44NjQxNzgsIDEuMjczOTIsIDEuNjg0OTEsIDIuMDk0NTMsIDIuNTA1MzQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQk4iOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI5ODg5NSwgMS4wNzc2NiwgMS43MDAzOSwgMi40Nzk2NSwgMy4yNTY3OSwgNC4wMzQ3NCwgNC44MTI3NSIsIFwKLSAgICAgICAgICAiMC4zMTA0NDEsIDEuMDg5NDEsIDEuNzEyNzEsIDIuNDkwNzgsIDMuMjY4OTIsIDQuMDQ2MjIsIDQuODI0MjEiLCBcCi0gICAgICAgICAgIjAuMzI1ODc1LCAxLjEwNTM1LCAxLjcyNzk4LCAyLjUwNjM4LCAzLjI4NDQ2LCA0LjA2MjAxLCA0LjgzOTc4IiwgXAotICAgICAgICAgICIwLjM0MTEwOCwgMS4xMjA1OCwgMS43NDMyLCAyLjUyMjAzLCAzLjI5OTU4LCA0LjA3NzMyLCA0Ljg1NTIiLCBcCi0gICAgICAgICAgIjAuMzU2MjQ0LCAxLjEzNTg0LCAxLjc1ODExLCAyLjUzNzEsIDMuMzE0NDMsIDQuMDkyNDksIDQuODcwNTEiLCBcCi0gICAgICAgICAgIjAuMzgwMDgsIDEuMTU5MzIsIDEuNzgyNzEsIDIuNTYwNzksIDMuMzM4OTYsIDQuMTE2MjQsIDQuODk0MjYiLCBcCi0gICAgICAgICAgIjAuMzk5OTk5LCAxLjE3OTM5LCAxLjgwMTg5LCAyLjU4MDc0LCAzLjM1ODM0LCA0LjEzNjM2LCA0LjkxNDQ4Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjM5Mzc5MSwgMS44ODAxNywgMy4wNjgyNSwgNC41NjQ1NywgNi4wNDAyNiwgNy41MTkxNCwgOC45OTg5NSIsIFwKLSAgICAgICAgICAiMC4zOTM3ODUsIDEuODc4ODMsIDMuMDY5MzQsIDQuNTUwODcsIDYuMDMyNjUsIDcuNTE4NDIsIDguOTk4MTIiLCBcCi0gICAgICAgICAgIjAuMzkzNzYxLCAxLjg4MDQsIDMuMDY4OTcsIDQuNTUwMjcsIDYuMDMyMzgsIDcuNTE5MywgOC45OTc2OCIsIFwKLSAgICAgICAgICAiMC4zOTM3NzIsIDEuODgwMzEsIDMuMDY4OCwgNC41NDkxMSwgNi4wNDA2LCA3LjUxOTI3LCA4Ljk5Njc1IiwgXAotICAgICAgICAgICIwLjM5Mzc4NiwgMS44ODAzNSwgMy4wNjgzMSwgNC41NjQxMSwgNi4wMzU3MywgNy41MTkxLCA4Ljk5Njg3IiwgXAotICAgICAgICAgICIwLjM5Mzc3NSwgMS44Nzg4NCwgMy4wNjkzMSwgNC41NTA5MywgNi4wMzI1MSwgNy41MTg0NiwgOC45OTgxNCIsIFwKLSAgICAgICAgICAiMC4zOTM5MTQsIDEuODc5ODksIDMuMDcxODksIDQuNTYzNTEsIDYuMDQwMTgsIDcuNTE5MTEsIDguOTk5MDEiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTIxMzExLCAwLjMzMDM4OCwgMC40OTU4OTksIDAuNzAyNTIsIDAuOTA5MDAzLCAxLjExNTM4LCAxLjMyMTkxIiwgXAotICAgICAgICAgICIwLjEzMjkxMywgMC4zNDIwNTQsIDAuNTA3NjA3LCAwLjcxNDE1NSwgMC45MjA2NDMsIDEuMTI3MDEsIDEuMzMzMzQiLCBcCi0gICAgICAgICAgIjAuMTQ3NTU4LCAwLjM1NjY5MSwgMC41MjIyNDQsIDAuNzI4ODM5LCAwLjkzNTIxNywgMS4xNDE4MSwgMS4zNDc5OCIsIFwKLSAgICAgICAgICAiMC4xNjI0ODMsIDAuMzcxNjQ5LCAwLjUzNzIwNywgMC43NDM3NDksIDAuOTUwMjIxLCAxLjE1NjU4LCAxLjM2MzAyIiwgXAotICAgICAgICAgICIwLjE3Njc2MywgMC4zODU5NTMsIDAuNTUxNTA3LCAwLjc1ODEsIDAuOTY0NTU0LCAxLjE3MTE3LCAxLjM3NzI2IiwgXAotICAgICAgICAgICIwLjE5OTU0LCAwLjQwODY2NiwgMC41NzQyMjUsIDAuNzgwODY4LCAwLjk4NzM3MSwgMS4xOTM3MywgMS4zOTk5NSIsIFwKLSAgICAgICAgICAiMC4yMTc0NTYsIDAuNDI2NjE0LCAwLjU5MjE0NCwgMC43OTg3NjcsIDEuMDA1MTgsIDEuMjExODMsIDEuNDE3OTIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTIxMzQsIDAuNTI5MDM1LCAwLjg1NzI3NywgMS4yNjc2NSwgMS42Nzc1MiwgMi4wODgwMiwgMi40OTgzNCIsIFwKLSAgICAgICAgICAiMC4xMjEzMywgMC41MjkwMjMsIDAuODU3MDY3LCAxLjI2NzM5LCAxLjY3NzQsIDIuMDg3NDksIDIuNDk3MSIsIFwKLSAgICAgICAgICAiMC4xMjEyNzIsIDAuNTI4NzcxLCAwLjg1Njk4LCAxLjI2NzY5LCAxLjY3NzMyLCAyLjA4ODE1LCAyLjQ5NzYyIiwgXAotICAgICAgICAgICIwLjEyMTI5MSwgMC41MjkwMTYsIDAuODU3MDE4LCAxLjI2NzE2LCAxLjY3Nzg0LCAyLjA4NzQ1LCAyLjQ5NzMzIiwgXAotICAgICAgICAgICIwLjEyMTUyNSwgMC41MjkwMzgsIDAuODU3MTUzLCAxLjI2NzI3LCAxLjY3NzQ4LCAyLjA4ODE3LCAyLjQ5NzY3IiwgXAotICAgICAgICAgICIwLjEyMTY0MSwgMC41MjkwMTIsIDAuODU3MjYyLCAxLjI2NzExLCAxLjY3NzUyLCAyLjA4ODAyLCAyLjQ5NzQ4IiwgXAotICAgICAgICAgICIwLjEyMjQ5NiwgMC41Mjg4MzMsIDAuODU2ODY2LCAxLjI2NzI1LCAxLjY3NzMyLCAyLjA4ODA3LCAyLjQ5NzYxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIyNDc5LCAxLjAwMzQxLCAxLjYyNjM2LCAyLjQwNDA5LCAzLjE4MjE3LCAzLjk2MDA5LCA0LjczNzk0IiwgXAotICAgICAgICAgICIwLjIzNDU5NSwgMS4wMTMzMSwgMS42MzU5MywgMi40MTQ5MiwgMy4xOTIzMiwgMy45NzAyMiwgNC43NDgxMiIsIFwKLSAgICAgICAgICAiMC4yNDY2ODcsIDEuMDI1NjYsIDEuNjQ4NjYsIDIuNDI3NDksIDMuMjA1NDIsIDMuOTgyOTMsIDQuNzYwNjgiLCBcCi0gICAgICAgICAgIjAuMjU4NTMsIDEuMDM4MTMsIDEuNjYwNTEsIDIuNDM5MTksIDMuMjE2ODEsIDMuOTk0ODQsIDQuNzcyOTUiLCBcCi0gICAgICAgICAgIjAuMjY5ODA0LCAxLjA0OTY4LCAxLjY3MjUzLCAyLjQ1MDcsIDMuMjI4ODUsIDQuMDA2MTMsIDQuNzg0MTYiLCBcCi0gICAgICAgICAgIjAuMjg4MDc3LCAxLjA2NzU3LCAxLjY5MTI1LCAyLjQ2OTE0LCAzLjI0NzQ0LCA0LjAyNTEsIDQuODAyNzgiLCBcCi0gICAgICAgICAgIjAuMzAzODcyLCAxLjA4MzUxLCAxLjcwNjg3LCAyLjQ4NTY3LCAzLjI2Mjg0LCA0LjA0MDg5LCA0LjgxODk0Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjM5MzkyNiwgMS44Nzg4NiwgMy4wNjU4LCA0LjU1OTQ2LCA2LjAzODkyLCA3LjUxODkyLCA4Ljk5ODU3IiwgXAotICAgICAgICAgICIwLjM5MzkxNSwgMS44ODE5NCwgMy4wNzE5OSwgNC41NjM2MywgNi4wMzkxMywgNy41MTkwMSwgOC45OTg0NCIsIFwKLSAgICAgICAgICAiMC4zOTM4NzcsIDEuODc5MzgsIDMuMDY4NTcsIDQuNTQ5MzgsIDYuMDQwODQsIDcuNTE5MTksIDguOTk3NTgiLCBcCi0gICAgICAgICAgIjAuMzkzODM2LCAxLjg4MDIyLCAzLjA2NjU5LCA0LjU2MzQxLCA2LjAzOTkzLCA3LjUxOTExLCA4Ljk5ODkzIiwgXAotICAgICAgICAgICIwLjM5Mzg1LCAxLjg3NzY3LCAzLjA2OTIxLCA0LjU1MDYsIDYuMDMyNDksIDcuNTE4OTksIDguOTk4MTMiLCBcCi0gICAgICAgICAgIjAuMzk0MTI4LCAxLjg3OTM4LCAzLjA2OTQ4LCA0LjU1MjE1LCA2LjAzMjY0LCA3LjUxOTI2LCA4Ljk5NzYiLCBcCi0gICAgICAgICAgIjAuMzk2NjU1LCAxLjg3OTYsIDMuMDY5MDQsIDQuNTY0NDksIDYuMDM1NjUsIDcuNTE5MTgsIDguOTk2OTUiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDYzMTE5LCAwLjI3MDI3OCwgMC40MzU0MzcsIDAuNjQxODk4LCAwLjg0NzkzNywgMS4wNTQ0NCwgMS4yNjA4NyIsIFwKLSAgICAgICAgICAiMC4wNzQ5NDEsIDAuMjgyMDk5LCAwLjQ0NzI2OCwgMC42NTM1NzcsIDAuODU5ODU5LCAxLjA2NjI1LCAxLjI3MjMiLCBcCi0gICAgICAgICAgIjAuMDg5ODE1LCAwLjI5Njc2MywgMC40NjAwMTcsIDAuNjY2NDgxLCAwLjg3MjY5NSwgMS4wNzkwNCwgMS4yODU3MSIsIFwKLSAgICAgICAgICAiMC4xMDQ5NjcsIDAuMzExNzg0LCAwLjQ3NjczNCwgMC42ODI5MzksIDAuODg5MTQyLCAxLjA5NTQyLCAxLjMwMjM0IiwgXAotICAgICAgICAgICIwLjExOTg1OCwgMC4zMjcwNywgMC40OTIxNzQsIDAuNjk4NTU4LCAwLjkwNDcyNywgMS4xMTExOSwgMS4zMTc3MiIsIFwKLSAgICAgICAgICAiMC4xNDM4OTYsIDAuMzQ5OTExLCAwLjUxNDgyNSwgMC43MjEwOCwgMC45MjczMDYsIDEuMTMzNjgsIDEuMzQxNjUiLCBcCi0gICAgICAgICAgIjAuMTY1MDUsIDAuMzcxNzU1LCAwLjUzNTQ1MywgMC43NDE4NDIsIDAuOTQ4MDc0LCAxLjE1NDEsIDEuMzYwMzgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTA5NjUyLCAwLjUyMDEyMSwgMC44NDgyOSwgMS4yNTgzOCwgMS42Njc5NCwgMi4wNzg3NSwgMi40ODg5NSIsIFwKLSAgICAgICAgICAiMC4xMDk1OCwgMC41MTk5NDcsIDAuODQ4MTYyLCAxLjI1ODE5LCAxLjY2ODI3LCAyLjA3ODIzLCAyLjQ4ODIiLCBcCi0gICAgICAgICAgIjAuMTEwNTA0LCAwLjUyMDA5OCwgMC44NDgyNDIsIDEuMjU4MjUsIDEuNjY4MDgsIDIuMDc3OTMsIDIuNDg4NDciLCBcCi0gICAgICAgICAgIjAuMTEzOTQxLCAwLjUyMDEwMywgMC44NDgxNzksIDEuMjU4MywgMS42Njg2NCwgMi4wNzgyMywgMi40ODg2MSIsIFwKLSAgICAgICAgICAiMC4xMTkwNzksIDAuNTIwMTk2LCAwLjg0ODE4OSwgMS4yNTgzMiwgMS42NjgxOSwgMi4wNzg4NywgMi40ODg0MyIsIFwKLSAgICAgICAgICAiMC4xMjk4MzMsIDAuNTIwMjU0LCAwLjg0ODQwMSwgMS4yNTgyNSwgMS42NjgyLCAyLjA3ODgzLCAyLjQ4ODQ0IiwgXAotICAgICAgICAgICIwLjEzOTkwNCwgMC41MjE3OCwgMC44NDgxNTYsIDEuMjU4NjEsIDEuNjY4NCwgMi4wNzg3MSwgMi40ODgzMyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJEIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xOTEyOSwgMC45Njk4NDEsIDEuNTkzMTQsIDIuMzcxNzIsIDMuMTQ4OTcsIDMuOTI2NzMsIDQuNzA0NjUiLCBcCi0gICAgICAgICAgIjAuMjAwMjIxLCAwLjk3OTM0OCwgMS42MDIwMiwgMi4zODExLCAzLjE1ODUxLCAzLjkzNjIzLCA0LjcxNDIiLCBcCi0gICAgICAgICAgIjAuMjExNDcxLCAwLjk5MDk1MSwgMS42MTQ1NSwgMi4zOTIyNSwgMy4xNjk5OCwgMy45NDgyNiwgNC43MjYwNyIsIFwKLSAgICAgICAgICAiMC4yMjMxODcsIDEuMDAyODgsIDEuNjI1NjIsIDIuNDA0NDksIDMuMTgyMDksIDMuOTYwMDYsIDQuNzM4MTkiLCBcCi0gICAgICAgICAgIjAuMjM0NDc5LCAxLjAxNDI1LCAxLjYzNzA2LCAyLjQxNTUxLCAzLjE5NDE0LCAzLjk3MTg0LCA0Ljc0OTY1IiwgXAotICAgICAgICAgICIwLjI1Mjg1OCwgMS4wMzMxOCwgMS42NTYxNiwgMi40MzQ4NCwgMy4yMTIyNCwgMy45OTAxNiwgNC43Njc5NSIsIFwKLSAgICAgICAgICAiMC4yNjkwMSwgMS4wNDg5MSwgMS42NzE4OSwgMi40NTAzOSwgMy4yMjg0MywgNC4wMDY0NCwgNC43ODQzNSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zOTM3MSwgMS44Nzk2NywgMy4wNjkxOSwgNC41NjQzLCA2LjAzNTU1LCA3LjUxODc0LCA4Ljk5ODgzIiwgXAotICAgICAgICAgICIwLjM5MjQyMywgMS44Nzk3MywgMy4wNjgyOCwgNC41NjQwNywgNi4wMzUwMSwgNy41MTkwMywgOC45OTg2IiwgXAotICAgICAgICAgICIwLjM5MTQzNSwgMS44Nzk3MiwgMy4wNjUwOSwgNC41NTE4OSwgNi4wMzU2NiwgNy41MTkyNCwgOC45OTcyMiIsIFwKLSAgICAgICAgICAiMC4zOTA2LCAxLjg3OTY2LCAzLjA3MjAxLCA0LjU2MzUsIDYuMDQwMTcsIDcuNTE4OTYsIDguOTk3MDQiLCBcCi0gICAgICAgICAgIjAuMzkwOTIsIDEuODc5NjgsIDMuMDY4NTYsIDQuNTUzOTEsIDYuMDMyNDYsIDcuNTE5MzksIDguOTk4OSIsIFwKLSAgICAgICAgICAiMC4zOTM4OTcsIDEuODgwMjQsIDMuMDY4OTQsIDQuNTY0MTcsIDYuMDQwMjcsIDcuNTE4OTgsIDguOTk4MTciLCBcCi0gICAgICAgICAgIjAuMzk4ODI2LCAxLjg3OTQ3LCAzLjA2ODI3LCA0LjU2MjU5LCA2LjAzODMyLCA3LjUxNzYxLCA4Ljk5ODYyIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1Njc3NSwgMC4yNjI5OTEsIDAuNDI3OTQ2LCAwLjYzNDMxOCwgMC44NDA0ODksIDEuMDQ2NjcsIDEuMjUyNzciLCBcCi0gICAgICAgICAgIjAuMDY4Njk0LCAwLjI3NTA3NywgMC40NDAwNzcsIDAuNjQ2MjQsIDAuODUyMzk4LCAxLjA1ODg2LCAxLjI2NDg3IiwgXAotICAgICAgICAgICIwLjA4Mzc2NCwgMC4yODk3ODYsIDAuNDUzNDg3LCAwLjY1OTU0OSwgMC44NjU2ODksIDEuMDcyMDMsIDEuMjc4MDciLCBcCi0gICAgICAgICAgIjAuMDk4Njg1LCAwLjMwNDQ3MywgMC40Njk1OTYsIDAuNjc1NzM1LCAwLjg4MDk2MSwgMS4wODM4OCwgMS4yOTAyMiIsIFwKLSAgICAgICAgICAiMC4xMTM3OTksIDAuMzE5NDAzLCAwLjQ4MzA1NSwgMC42ODkzNDcsIDAuODk1NTU3LCAxLjEwMTc3LCAxLjMwODUiLCBcCi0gICAgICAgICAgIjAuMTM4MDg5LCAwLjM0MzE1NiwgMC41MDc3NTUsIDAuNzEzOTc2LCAwLjkyMDE3NCwgMS4xMjYzNiwgMS4zMzI4NCIsIFwKLSAgICAgICAgICAiMC4xNTc5MTcsIDAuMzY0ODY2LCAwLjUyODYxLCAwLjczNDU5NiwgMC45NDA5NjgsIDEuMTQ2OTEsIDEuMzUzMiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDIzOTEsIDAuNTE0NjUsIDAuODQ0MiwgMS4yNTQ0LCAxLjY2MjQ0LCAyLjA3MjExLCAyLjQ5MjIiLCBcCi0gICAgICAgICAgIjAuMTAyNzUsIDAuNTEyODY1LCAwLjg0MjA5MiwgMS4yNTYxNiwgMS42NjI4NSwgMi4wNzU5NiwgMi40ODI4MiIsIFwKLSAgICAgICAgICAiMC4xMDQxNDMsIDAuNTEyNzY4LCAwLjg0MjIwMywgMS4yNTU2MSwgMS42NjgwMywgMi4wNzI1LCAyLjQ4OTA2IiwgXAotICAgICAgICAgICIwLjEwODA2MSwgMC41MTQ2ODUsIDAuODQxNDIyLCAxLjI1MjUzLCAxLjY2OCwgMi4wNzgsIDIuNDg5NTUiLCBcCi0gICAgICAgICAgIjAuMTEzNzcyLCAwLjUxNDY4MywgMC44NDE4NzcsIDEuMjUxMjksIDEuNjYxODMsIDIuMDcyMzIsIDIuNDkwMTYiLCBcCi0gICAgICAgICAgIjAuMTI0ODExLCAwLjUxMjk4LCAwLjg0MTIxOSwgMS4yNTIzNiwgMS42NjE2NSwgMi4wNzIyOSwgMi40ODY2NCIsIFwKLSAgICAgICAgICAiMC4xMzU4NTEsIDAuNTE2Njk1LCAwLjg0MjUwMywgMS4yNTQ4OCwgMS42NjI3MywgMi4wNzI0MSwgMi40ODMzNyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkFOIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDU5MjUsIDAuMDA1OTM4LCAwLjAwNTk0LCAwLjAwNTk0MSwgMC4wMDU5NDEsIDAuMDA1OTQxLCAwLjAwNTk0MSIsIFwKLSAgICAgICAgICAiMC4wMDU5MSwgMC4wMDU5MjUsIDAuMDA1OTI3LCAwLjAwNTkyNSwgMC4wMDU5MjQsIDAuMDA1OTI3LCAwLjAwNTkyNyIsIFwKLSAgICAgICAgICAiMC4wMDU4OTYsIDAuMDA1OTE0LCAwLjAwNTkxNiwgMC4wMDU5MTcsIDAuMDA1OTE3LCAwLjAwNTkxOCwgMC4wMDU5MTciLCBcCi0gICAgICAgICAgIjAuMDA1ODg0LCAwLjAwNTkwNiwgMC4wMDU5MDksIDAuMDA1OTEsIDAuMDA1OTEyLCAwLjAwNTkxLCAwLjAwNTkxMSIsIFwKLSAgICAgICAgICAiMC4wMDU4NzYsIDAuMDA1OSwgMC4wMDU5MDMsIDAuMDA1OTA0LCAwLjAwNTkwNCwgMC4wMDU5MDUsIDAuMDA1OTA1IiwgXAotICAgICAgICAgICIwLjAwNTg3MSwgMC4wMDU4OTcsIDAuMDA1OTAxLCAwLjAwNTkwMywgMC4wMDU5MDQsIDAuMDA1OTA1LCAwLjAwNTkwMyIsIFwKLSAgICAgICAgICAiMC4wMDU4NjcsIDAuMDA1ODk0LCAwLjAwNTksIDAuMDA1OTAyLCAwLjAwNTkwNSwgMC4wMDU5MDQsIDAuMDA1OTA0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0Mzc0LCAwLjAwNDM3NiwgMC4wMDQzNzQsIDAuMDA0MzcyLCAwLjAwNDM3MywgMC4wMDQzNzMsIDAuMDA0MzcyIiwgXAotICAgICAgICAgICIwLjAwNDM2MywgMC4wMDQzNjMsIDAuMDA0MzY0LCAwLjAwNDM2MiwgMC4wMDQzNjEsIDAuMDA0MzYsIDAuMDA0MzU5IiwgXAotICAgICAgICAgICIwLjAwNDM1MywgMC4wMDQzNTQsIDAuMDA0MzU0LCAwLjAwNDM1NCwgMC4wMDQzNTMsIDAuMDA0MzUyLCAwLjAwNDM1MSIsIFwKLSAgICAgICAgICAiMC4wMDQzNDEsIDAuMDA0MzQ0LCAwLjAwNDM0MywgMC4wMDQzNDEsIDAuMDA0MzQxLCAwLjAwNDM0LCAwLjAwNDMzOSIsIFwKLSAgICAgICAgICAiMC4wMDQzMzUsIDAuMDA0MzQsIDAuMDA0MzQsIDAuMDA0MzM5LCAwLjAwNDMzOSwgMC4wMDQzMzgsIDAuMDA0MzM3IiwgXAotICAgICAgICAgICIwLjAwNDMyNiwgMC4wMDQzMzEsIDAuMDA0MzMxLCAwLjAwNDMzMSwgMC4wMDQzMywgMC4wMDQzMjksIDAuMDA0MzI4IiwgXAotICAgICAgICAgICIwLjAwNDMyMSwgMC4wMDQzMjgsIDAuMDA0MzI5LCAwLjAwNDMyOSwgMC4wMDQzMjgsIDAuMDA0MzI3LCAwLjAwNDMyNyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkJOIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQ5NzUsIDAuMDA0OTkxLCAwLjAwNDk5MiwgMC4wMDQ5OTMsIDAuMDA0OTkzLCAwLjAwNDk5MywgMC4wMDQ5OTMiLCBcCi0gICAgICAgICAgIjAuMDA0OTYsIDAuMDA0OTc3LCAwLjAwNDk3NywgMC4wMDQ5NzksIDAuMDA0OTgzLCAwLjAwNDk4LCAwLjAwNDk4IiwgXAotICAgICAgICAgICIwLjAwNDk0NywgMC4wMDQ5NjUsIDAuMDA0OTY4LCAwLjAwNDk2OSwgMC4wMDQ5NjksIDAuMDA0OTcsIDAuMDA0OTcxIiwgXAotICAgICAgICAgICIwLjAwNDkzNywgMC4wMDQ5NTgsIDAuMDA0OTYxLCAwLjAwNDk2NCwgMC4wMDQ5NjMsIDAuMDA0OTY0LCAwLjAwNDk2NCIsIFwKLSAgICAgICAgICAiMC4wMDQ5MjksIDAuMDA0OTUzLCAwLjAwNDk1NywgMC4wMDQ5NTgsIDAuMDA0OTU4LCAwLjAwNDk2MSwgMC4wMDQ5NTciLCBcCi0gICAgICAgICAgIjAuMDA0OTIxLCAwLjAwNDk0OCwgMC4wMDQ5NTIsIDAuMDA0OTUyLCAwLjAwNDk1MywgMC4wMDQ5NTYsIDAuMDA0OTU2IiwgXAotICAgICAgICAgICIwLjAwNDkxNywgMC4wMDQ5NDYsIDAuMDA0OTUsIDAuMDA0OTUzLCAwLjAwNDk1NSwgMC4wMDQ5NTUsIDAuMDA0OTU1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0MDg2LCAwLjAwNDA5LCAwLjAwNDA4OSwgMC4wMDQwODgsIDAuMDA0MDg5LCAwLjAwNDA4NywgMC4wMDQwODciLCBcCi0gICAgICAgICAgIjAuMDA0MDc2LCAwLjAwNDA4LCAwLjAwNDA4LCAwLjAwNDA3OSwgMC4wMDQwNzgsIDAuMDA0MDc3LCAwLjAwNDA3NyIsIFwKLSAgICAgICAgICAiMC4wMDQwNjYsIDAuMDA0MDcxLCAwLjAwNDA3MSwgMC4wMDQwNywgMC4wMDQwNywgMC4wMDQwNjksIDAuMDA0MDciLCBcCi0gICAgICAgICAgIjAuMDA0MDU2LCAwLjAwNDA2NSwgMC4wMDQwNjUsIDAuMDA0MDY0LCAwLjAwNDA2NSwgMC4wMDQwNjQsIDAuMDA0MDY0IiwgXAotICAgICAgICAgICIwLjAwNDA0NiwgMC4wMDQwNTgsIDAuMDA0MDU5LCAwLjAwNDA2LCAwLjAwNDA1OSwgMC4wMDQwNTksIDAuMDA0MDU4IiwgXAotICAgICAgICAgICIwLjAwNDA0LCAwLjAwNDA1NSwgMC4wMDQwNTcsIDAuMDA0MDU3LCAwLjAwNDA1NywgMC4wMDQwNTYsIDAuMDA0MDU2IiwgXAotICAgICAgICAgICIwLjAwNDAzMiwgMC4wMDQwNDksIDAuMDA0MDUxLCAwLjAwNDA1MiwgMC4wMDQwNTIsIDAuMDA0MDUyLCAwLjAwNDA1MiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDEyMywgMC4wMDQxMjYsIDAuMDA0MTI2LCAwLjAwNDEyNiwgMC4wMDQxMjYsIDAuMDA0MTI2LCAwLjAwNDEyOCIsIFwKLSAgICAgICAgICAiMC4wMDQxMDksIDAuMDA0MTIzLCAwLjAwNDEyNCwgMC4wMDQxMjUsIDAuMDA0MTI1LCAwLjAwNDEyMywgMC4wMDQxMjIiLCBcCi0gICAgICAgICAgIjAuMDA0MDk2LCAwLjAwNDExOSwgMC4wMDQxMjIsIDAuMDA0MTIzLCAwLjAwNDEyNSwgMC4wMDQxMjcsIDAuMDA0MTIzIiwgXAotICAgICAgICAgICIwLjAwNDA4NiwgMC4wMDQxMTUsIDAuMDA0MTE5LCAwLjAwNDEyMSwgMC4wMDQxMjIsIDAuMDA0MTIzLCAwLjAwNDEyMyIsIFwKLSAgICAgICAgICAiMC4wMDQwNzgsIDAuMDA0MTEyLCAwLjAwNDExOSwgMC4wMDQxMiwgMC4wMDQxMTksIDAuMDA0MTIyLCAwLjAwNDEyMiIsIFwKLSAgICAgICAgICAiMC4wMDQwNjksIDAuMDA0MTA4LCAwLjAwNDExNSwgMC4wMDQxMTgsIDAuMDA0MTE5LCAwLjAwNDEyNiwgMC4wMDQxMiIsIFwKLSAgICAgICAgICAiMC4wMDQwNjMsIDAuMDA0MTA0LCAwLjAwNDExMiwgMC4wMDQxMTYsIDAuMDA0MTE4LCAwLjAwNDEyLCAwLjAwNDEyMSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDgzNiwgMC4wMDA4MzYsIDAuMDAwODM2LCAwLjAwMDgzNiwgMC4wMDA4MzMsIDAuMDAwODM1LCAwLjAwMDgzNSIsIFwKLSAgICAgICAgICAiMC4wMDA4MzgsIDAuMDAwODQ4LCAwLjAwMDg1LCAwLjAwMDg1LCAwLjAwMDg1LCAwLjAwMDg1LCAwLjAwMDg1IiwgXAotICAgICAgICAgICIwLjAwMDgyOSwgMC4wMDA4NTMsIDAuMDAwODU2LCAwLjAwMDg1NywgMC4wMDA4NTgsIDAuMDAwODU4LCAwLjAwMDg1OCIsIFwKLSAgICAgICAgICAiMC4wMDA4MTYsIDAuMDAwODUxLCAwLjAwMDg1NSwgMC4wMDA4NTcsIDAuMDAwODU4LCAwLjAwMDg1OCwgMC4wMDA4NTkiLCBcCi0gICAgICAgICAgIjAuMDAwODA5LCAwLjAwMDg1LCAwLjAwMDg1NCwgMC4wMDA4NTcsIDAuMDAwODU4LCAwLjAwMDg1OSwgMC4wMDA4NTkiLCBcCi0gICAgICAgICAgIjAuMDAwNzk0LCAwLjAwMDg0NiwgMC4wMDA4NTMsIDAuMDAwODU3LCAwLjAwMDg1OCwgMC4wMDA4NiwgMC4wMDA4NiIsIFwKLSAgICAgICAgICAiMC4wMDA3ODQsIDAuMDAwODQyLCAwLjAwMDg1MSwgMC4wMDA4NTUsIDAuMDAwODU3LCAwLjAwMDg1OSwgMC4wMDA4NTkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJEIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDMxNjgsIDAuMDAzMTczLCAwLjAwMzE3MywgMC4wMDMxNzQsIDAuMDAzMTczLCAwLjAwMzE3MywgMC4wMDMxNzMiLCBcCi0gICAgICAgICAgIjAuMDAzMTQ2LCAwLjAwMzE2OCwgMC4wMDMxNywgMC4wMDMxNzEsIDAuMDAzMTcxLCAwLjAwMzE3MiwgMC4wMDMxNzciLCBcCi0gICAgICAgICAgIjAuMDAzMTI0LCAwLjAwMzE2MSwgMC4wMDMxNjYsIDAuMDAzMTY4LCAwLjAwMzE3LCAwLjAwMzE3MywgMC4wMDMxNyIsIFwKLSAgICAgICAgICAiMC4wMDMxMDksIDAuMDAzMTU1LCAwLjAwMzE2MiwgMC4wMDMxNjYsIDAuMDAzMTY3LCAwLjAwMzE2OSwgMC4wMDMxNjciLCBcCi0gICAgICAgICAgIjAuMDAzMDk4LCAwLjAwMzE1LCAwLjAwMzE1OCwgMC4wMDMxNjQsIDAuMDAzMTY1LCAwLjAwMzE2NywgMC4wMDMxNjQiLCBcCi0gICAgICAgICAgIjAuMDAzMDg2LCAwLjAwMzE0MywgMC4wMDMxNTMsIDAuMDAzMTU5LCAwLjAwMzE2MiwgMC4wMDMxNjgsIDAuMDAzMTYzIiwgXAotICAgICAgICAgICIwLjAwMzA4LCAwLjAwMzEzNywgMC4wMDMxNDksIDAuMDAzMTU2LCAwLjAwMzE1OSwgMC4wMDMxNjEsIDAuMDAzMTY4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwMTQyLCAwLjAwMDE0OSwgMC4wMDAxNSwgMC4wMDAxNSwgMC4wMDAxNTEsIDAuMDAwMTUxLCAwLjAwMDE1MSIsIFwKLSAgICAgICAgICAiMC4wMDAxNTcsIDAuMDAwMTg3LCAwLjAwMDE5LCAwLjAwMDE5MiwgMC4wMDAxOTMsIDAuMDAwMTkzLCAwLjAwMDE5MyIsIFwKLSAgICAgICAgICAiMC4wMDAxNDgsIDAuMDAwMTk3LCAwLjAwMDIwNSwgMC4wMDAyMDgsIDAuMDAwMjEsIDAuMDAwMjExLCAwLjAwMDIxMSIsIFwKLSAgICAgICAgICAiMC4wMDAxMzcsIDAuMDAwMTk5LCAwLjAwMDIwNywgMC4wMDAyMTEsIDAuMDAwMjE0LCAwLjAwMDIxOCwgMC4wMDAyMTkiLCBcCi0gICAgICAgICAgIjAuMDAwMTIsIDAuMDAwMTk2LCAwLjAwMDIwNywgMC4wMDAyMTMsIDAuMDAwMjE2LCAwLjAwMDIxNywgMC4wMDAyMTkiLCBcCi0gICAgICAgICAgIjAuMDAwMTA1LCAwLjAwMDE5MywgMC4wMDAyMDUsIDAuMDAwMjEyLCAwLjAwMDIxNiwgMC4wMDAyMTgsIDAuMDAwMjE5IiwgXAotICAgICAgICAgICIwLjAwMDA5MiwgMC4wMDAxODgsIDAuMDAwMjAzLCAwLjAwMDIxMSwgMC4wMDAyMTUsIDAuMDAwMjE4LCAwLjAwMDIyIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IE5PUjRCQlg0ICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChOT1I0QkJYNCkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjM4MjQxMzsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQU4pICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDg1NDg5NDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA4NTQ0MzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA4NTQ4OTQ7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxMzMzLCAwLjAwMTMwNywgMC4wMDEyOTEsIDAuMDAxMjgsIDAuMDAxMjc2LCAwLjAwMTI3MSwgMC4wMDEyNjkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDI4MTIsIDAuMDAyNzk1LCAwLjAwMjc3OSwgMC4wMDI3NzEsIDAuMDAyNzYzLCAwLjAwMjc1NCwgMC4wMDI3NTEiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEJOKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA4Nzc1MzI7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwODc3MTM2OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDg3NzUzMjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA5NzIsIDAuMDAwOTUsIDAuMDAwOTMxLCAwLjAwMDkyLCAwLjAwMDkxNCwgMC4wMDA5MTEsIDAuMDAwOTA3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzMTcxLCAwLjAwMzE1MSwgMC4wMDMxMzcsIDAuMDAzMTMxLCAwLjAwMzEyOCwgMC4wMDMxMjUsIDAuMDAzMTI0Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihDKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDI4MjE1MzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDI3OTQ0NTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDI4MjE1MzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA1MDEsIDAuMDAwNTAxLCAwLjAwMDUwMSwgMC4wMDA1LCAwLjAwMDUwMSwgMC4wMDA1MDEsIDAuMDAwNTAxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxMjI0LCAwLjAwMTIyNiwgMC4wMDEyMjYsIDAuMDAxMjI1LCAwLjAwMTIyMywgMC4wMDEyMjIsIDAuMDAxMjIzIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihEKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDI5NjQxMTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDI5NjMxNjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDI5NjQxMTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyOTgsIDAuMDAwMjk5LCAwLjAwMDI5OCwgMC4wMDAyOTgsIDAuMDAwMjk4LCAwLjAwMDI5OCwgMC4wMDAyOTgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDE4NCwgMC4wMDE4NDEsIDAuMDAxODQsIDAuMDAxODQxLCAwLjAwMTg0LCAwLjAwMTgzOCwgMC4wMDE4NCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjEzMjQ0NjsKLSAgICBmdW5jdGlvbiA6ICIoISgoKCghQk4pKyghQU4pKStDKStEKSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkFOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIyOTA5MSwgMC43Nzc0NDEsIDEuMzI0NzQsIDEuNzE2MDEsIDIuMzQyNDcsIDIuODg5MzksIDMuNjcwOTUiLCBcCi0gICAgICAgICAgIjAuMjQwNDQ4LCAwLjc4ODgzMiwgMS4zMzY2OCwgMS43MjgzMSwgMi4zNTM3OSwgMi45MDA3NiwgMy42ODI0OSIsIFwKLSAgICAgICAgICAiMC4yNTU0NTUsIDAuODAzOTY1LCAxLjM1MTYzLCAxLjc0MzEzLCAyLjM2ODYsIDIuOTE2MjgsIDMuNjk3NyIsIFwKLSAgICAgICAgICAiMC4yNzA0MSwgMC44MTg5NjYsIDEuMzY2NjUsIDEuNzU3NTksIDIuMzg0MDcsIDIuOTMwODMsIDMuNzEyNjEiLCBcCi0gICAgICAgICAgIjAuMjg1MjQ2LCAwLjgzMzg1OCwgMS4zODE0OSwgMS43NzMxNiwgMi4zOTg1NywgMi45NDYyMiwgMy43Mjc3NSIsIFwKLSAgICAgICAgICAiMC4zMDgxMzUsIDAuODU2NzQ2LCAxLjQwNDQ2LCAxLjc5NTQ5LCAyLjQyMjI5LCAyLjk2ODc5LCAzLjc1MDYxIiwgXAotICAgICAgICAgICIwLjMyNzA0OCwgMC44NzU3NSwgMS40MjMzOSwgMS44MTQ1LCAyLjQ0MTMzLCAyLjk4ODE3LCAzLjc2OTU4Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjQ2NTI3LCAxLjI5MjA5LCAyLjM0MDM4LCAzLjA4NDU3LCA0LjI4OTI4LCA1LjMyODA4LCA2LjgxNzgyIiwgXAotICAgICAgICAgICIwLjI0NjUzNCwgMS4yOTE5MSwgMi4zMzgwNiwgMy4wODU4LCA0LjI4ODksIDUuMzIxMjgsIDYuODEyNTQiLCBcCi0gICAgICAgICAgIjAuMjQ2NTEyLCAxLjI5MTQxLCAyLjMzNTgsIDMuMDg1MzgsIDQuMjc3NywgNS4zMTg0MiwgNi44MTgwMSIsIFwKLSAgICAgICAgICAiMC4yNDY1MjksIDEuMjkyMDEsIDIuMzM3MjcsIDMuMDg4MzIsIDQuMjg5MDYsIDUuMzI3ODUsIDYuODE3ODEiLCBcCi0gICAgICAgICAgIjAuMjQ2NDQ3LCAxLjI5MTM5LCAyLjMzNjM4LCAzLjA4NTQxLCA0LjI3NzY0LCA1LjMxOTI1LCA2LjgxODA0IiwgXAotICAgICAgICAgICIwLjI0NjU4NywgMS4yOTM0NCwgMi4zMzc2NiwgMy4wODQxNiwgNC4yODk1NiwgNS4zMjc4OSwgNi44MTc4NSIsIFwKLSAgICAgICAgICAiMC4yNDY1NywgMS4yOTIwMywgMi4zMzc4LCAzLjA4NDQ5LCA0LjI4OTY5LCA1LjMyODMxLCA2LjgxNzg1Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk2OTMyLCAwLjI0OTE2NiwgMC4zOTYzMTksIDAuNTAwOTg4LCAwLjY2ODA0LCAwLjgxNDA4OSwgMS4wMjI0OCIsIFwKLSAgICAgICAgICAiMC4xMDgzNTUsIDAuMjYwNTc4LCAwLjQwNzcwMiwgMC41MTIzODYsIDAuNjc5Mzk3LCAwLjgyNTM5NiwgMS4wMzM3OCIsIFwKLSAgICAgICAgICAiMC4xMjMzODYsIDAuMjc1NjM4LCAwLjQyMjc4NywgMC41Mjc0NDUsIDAuNjk0NTIxLCAwLjg0MDU0MSwgMS4wNDg5IiwgXAotICAgICAgICAgICIwLjEzODEzLCAwLjI5MDMzMywgMC40Mzc0ODksIDAuNTQyMTY3LCAwLjcwOTIwMywgMC44NTUyOSwgMS4wNjM3MyIsIFwKLSAgICAgICAgICAiMC4xNTI2ODIsIDAuMzA0OTcsIDAuNDUyMTEzLCAwLjU1Njc3LCAwLjcyMzg1LCAwLjg2OTg2NiwgMS4wNzgzOCIsIFwKLSAgICAgICAgICAiMC4xNzQ2NzMsIDAuMzI2ODQ2LCAwLjQ3NDAyOCwgMC41Nzg2OTQsIDAuNzQ1NzE1LCAwLjg5MTgxMywgMS4xMDAyNiIsIFwKLSAgICAgICAgICAiMC4xOTI0NTcsIDAuMzQ0MzYsIDAuNDkxNTM2LCAwLjU5NjE2MywgMC43NjMyNDksIDAuOTA5Mjk3LCAxLjExNzc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg2NzUzLCAwLjM3NTE4OSwgMC42NjQ4MzIsIDAuODcxNTI4LCAxLjIwMzA4LCAxLjQ5MjU1LCAxLjkwNjQ2IiwgXAotICAgICAgICAgICIwLjA4Njc3NywgMC4zNzUzMjgsIDAuNjY0Nzk4LCAwLjg3MTc0NywgMS4yMDMxMiwgMS40OTI5OSwgMS45MDY5NyIsIFwKLSAgICAgICAgICAiMC4wODY3MzEsIDAuMzc1MjY2LCAwLjY2NDg4LCAwLjg3MTU1OCwgMS4yMDI5NSwgMS40OTIzLCAxLjkwNzAzIiwgXAotICAgICAgICAgICIwLjA4Njc0NiwgMC4zNzUxMTMsIDAuNjY0ODA3LCAwLjg3MTUwMiwgMS4yMDMxNSwgMS40OTIyNSwgMS45MDU5IiwgXAotICAgICAgICAgICIwLjA4Njg3NiwgMC4zNzUzMjUsIDAuNjY0ODUyLCAwLjg3MTUzNiwgMS4yMDI5LCAxLjQ5MjU5LCAxLjkwNyIsIFwKLSAgICAgICAgICAiMC4wODczMzgsIDAuMzc1Mjg1LCAwLjY2NDgyOSwgMC44NzE3MTIsIDEuMjAzMTMsIDEuNDkyNjYsIDEuOTA2MzgiLCBcCi0gICAgICAgICAgIjAuMDg4MjI1LCAwLjM3NTQ0OSwgMC42NjQ4NDgsIDAuODcxNjUzLCAxLjIwMjg5LCAxLjQ5MjUsIDEuOTA2MDgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQk4iOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjE2NjksIDAuNzY1MTcsIDEuMzEyNTgsIDEuNzAzNTksIDIuMzMwMDQsIDIuODc2NzksIDMuNjU4NTciLCBcCi0gICAgICAgICAgIjAuMjI4MDY1LCAwLjc3NjU4NiwgMS4zMjQwNSwgMS43MTUwNiwgMi4zNDE1MiwgMi44ODg0MSwgMy42NzAwMiIsIFwKLSAgICAgICAgICAiMC4yNDMwNTQsIDAuNzkxNDg3LCAxLjMzOTM2LCAxLjczMDQ1LCAyLjM1NjQ1LCAyLjkwMzM1LCAzLjY4NTA0IiwgXAotICAgICAgICAgICIwLjI1ODAzLCAwLjgwNjYzNCwgMS4zNTQzLCAxLjc0NTE3LCAyLjM3MTY0LCAyLjkxODM0LCAzLjcwMDIyIiwgXAotICAgICAgICAgICIwLjI3Mjg1OCwgMC44MjE1MDIsIDEuMzY5MDIsIDEuNzYwODcsIDIuMzg2MTMsIDIuOTMzNzIsIDMuNzE1MTUiLCBcCi0gICAgICAgICAgIjAuMjk1OTM5LCAwLjg0NDU4MywgMS4zOTIyMSwgMS43ODM3MSwgMi40MDk5OSwgMi45NTcwNSwgMy43Mzg0NiIsIFwKLSAgICAgICAgICAiMC4zMTQ4NzcsIDAuODYzMzE5LCAxLjQxMTg1LCAxLjgwMjM3LCAyLjQyODQ4LCAyLjk3NTU3LCAzLjc1NzM5Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjQ2NTM4LCAxLjI5MjI0LCAyLjMzNzUzLCAzLjA4ODMzLCA0LjI4OTE4LCA1LjMyNzgyLCA2LjgxNzgxIiwgXAotICAgICAgICAgICIwLjI0NjUzOSwgMS4yOTIyMSwgMi4zMzc1NywgMy4wODQ1MiwgNC4yODkyLCA1LjMyODAxLCA2LjgxNzgyIiwgXAotICAgICAgICAgICIwLjI0NjUzNiwgMS4yOTE5OSwgMi4zMzU5MywgMy4wODE5NCwgNC4yODg4MywgNS4zMjIxNywgNi44MTc3MyIsIFwKLSAgICAgICAgICAiMC4yNDY1MzEsIDEuMjkyMDksIDIuMzM2NTksIDMuMDg0OCwgNC4yODg5OSwgNS4zMjc3MiwgNi44MTc4IiwgXAotICAgICAgICAgICIwLjI0NjUyNSwgMS4yOTE0MSwgMi4zNDA0OCwgMy4wODU1MywgNC4yNzc1OCwgNS4zMTg3MiwgNi44MTE5OSIsIFwKLSAgICAgICAgICAiMC4yNDY1OTIsIDEuMjkxOTUsIDIuMzM4OTEsIDMuMDg1LCA0LjI3NTQzLCA1LjMyODM4LCA2LjgxNzkxIiwgXAotICAgICAgICAgICIwLjI0NjU1NiwgMS4yOTA1OCwgMi4zMzg0NCwgMy4wODQ2NCwgNC4yODgzNywgNS4zMjQ4NCwgNi44MTM2MSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5NzY4OCwgMC4yNDcxNzYsIDAuMzkzNjM1LCAwLjQ5ODAxNCwgMC42NjQ4MjgsIDAuODEwNzMxLCAxLjAxOTA2IiwgXAotICAgICAgICAgICIwLjEwOTEyNCwgMC4yNTg2MzEsIDAuNDA1MTIxLCAwLjUwOTQ2OCwgMC42NzYzMDksIDAuODIyMTU3LCAxLjAzMDQ4IiwgXAotICAgICAgICAgICIwLjEyNDA0NiwgMC4yNzM1NjUsIDAuNDIwMDIzLCAwLjUyNDQxNCwgMC42OTEyNDUsIDAuODM3MTMxLCAxLjA0NTU4IiwgXAotICAgICAgICAgICIwLjEzODk0MywgMC4yODg1MywgMC40MzQ5ODUsIDAuNTM5Mzg1LCAwLjcwNjIyMSwgMC44NTIwNjQsIDEuMDYwNDIiLCBcCi0gICAgICAgICAgIjAuMTUzNTI4LCAwLjMwMjgzOCwgMC40NDkzMDcsIDAuNTUzNjg5LCAwLjcyMDU1NywgMC44NjYzNDcsIDEuMDc0ODEiLCBcCi0gICAgICAgICAgIjAuMTc1ODUyLCAwLjMyNTQ0OCwgMC40NzE5MTYsIDAuNTc2MzA4LCAwLjc0MzE0NCwgMC44ODkwNTIsIDEuMDk3MjIiLCBcCi0gICAgICAgICAgIjAuMTkzNzUsIDAuMzQzMTEsIDAuNDg5NTk0LCAwLjU5Mzk2OSwgMC43NjA4NCwgMC45MDY2NzcsIDEuMTE1MTQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODE4MjUsIDAuMzY4MzA4LCAwLjY1ODA0NSwgMC44NjQ4NDUsIDEuMTk2MTIsIDEuNDg2MDQsIDEuODk5NzYiLCBcCi0gICAgICAgICAgIjAuMDgxNzU0LCAwLjM2ODU0NiwgMC42NTc3MzQsIDAuODY1MTEzLCAxLjE5NjQ5LCAxLjQ4NTg5LCAxLjg5OTE4IiwgXAotICAgICAgICAgICIwLjA4MTc0OSwgMC4zNjgzODUsIDAuNjU4MDQxLCAwLjg2NDYyNiwgMS4xOTYwOSwgMS40ODU4MiwgMS45MDAyMyIsIFwKLSAgICAgICAgICAiMC4wODE3ODgsIDAuMzY4NTQ2LCAwLjY1ODA0MSwgMC44NjQ4OTksIDEuMTk2NDQsIDEuNDg1NzcsIDEuOTAwMTEiLCBcCi0gICAgICAgICAgIjAuMDgxODcyLCAwLjM2ODM0NiwgMC42NTgwNDksIDAuODY1MTYzLCAxLjE5NjAxLCAxLjQ4NTcxLCAxLjkwMDE1IiwgXAotICAgICAgICAgICIwLjA4MjI3OCwgMC4zNjg2MjEsIDAuNjU3OTcxLCAwLjg2NDg0NSwgMS4xOTY0NSwgMS40ODU2OSwgMS44OTk1IiwgXAotICAgICAgICAgICIwLjA4MzMzOSwgMC4zNjg3NDgsIDAuNjU3OTgxLCAwLjg2NDY5MywgMS4xOTYwOSwgMS40ODU4NCwgMS45MDAxNyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE0Njk3MywgMC42OTQ3OTYsIDEuMjQyNTYsIDEuNjMzNzQsIDIuMjU5NDUsIDIuODA3MTMsIDMuNTg4NTYiLCBcCi0gICAgICAgICAgIjAuMTU2NjE2LCAwLjcwNDg0LCAxLjI1MjU0LCAxLjY0Mzg4LCAyLjI2OTQ4LCAyLjgxNjkzLCAzLjU5ODU3IiwgXAotICAgICAgICAgICIwLjE2ODc3NywgMC43MTczNjgsIDEuMjY1NTcsIDEuNjU2NDEsIDIuMjgyNjYsIDIuODI5NjQsIDMuNjExMDUiLCBcCi0gICAgICAgICAgIjAuMTgwMzYzLCAwLjcyOTA2MSwgMS4yNzY4NiwgMS42Njc3NSwgMi4yOTM0OSwgMi44NDA4MSwgMy42MjMwNCIsIFwKLSAgICAgICAgICAiMC4xOTE4NywgMC43NDA3MDksIDEuMjg4NTQsIDEuNjgwMTUsIDIuMzA2MDIsIDIuODUyOTcsIDMuNjM0NTMiLCBcCi0gICAgICAgICAgIjAuMjA5NzcxLCAwLjc1ODc5OSwgMS4zMDY2MywgMS42OTgwNywgMi4zMjQzOCwgMi44NzEwNCwgMy42NTI4MyIsIFwKLSAgICAgICAgICAiMC4yMjU1OTMsIDAuNzc0Nzc2LCAxLjMyMjU5LCAxLjcxNDQsIDIuMzM5NTYsIDIuODg3NDIsIDMuNjY4ODkiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yNDYwOTgsIDEuMjkyNzIsIDIuMzM2MTQsIDMuMDgyMzEsIDQuMjg4MzUsIDUuMzI4NSwgNi44MTgwNSIsIFwKLSAgICAgICAgICAiMC4yNDYwMjksIDEuMjkxNzgsIDIuMzM2NTUsIDMuMDg1MDYsIDQuMjg4MTEsIDUuMzIwMjgsIDYuODExODUiLCBcCi0gICAgICAgICAgIjAuMjQ2MjE5LCAxLjI5MTksIDIuMzM4NDQsIDMuMDg0OTcsIDQuMjg5MzUsIDUuMzI4MjgsIDYuODE3ODQiLCBcCi0gICAgICAgICAgIjAuMjQ2NDksIDEuMjkxOTQsIDIuMzM3NzQsIDMuMDg1MjcsIDQuMjg0NzksIDUuMzIxNjMsIDYuODE3OTciLCBcCi0gICAgICAgICAgIjAuMjQ2NjYyLCAxLjI5MzUzLCAyLjMzNzcsIDMuMDg1MzEsIDQuMjg4OTgsIDUuMzIwMjIsIDYuODE2NTMiLCBcCi0gICAgICAgICAgIjAuMjQ4NzQxLCAxLjI5MjA0LCAyLjMzNzc0LCAzLjA4MjExLCA0LjI4OTMyLCA1LjMyMjI1LCA2LjgxNDE5IiwgXAotICAgICAgICAgICIwLjI1MTk1NywgMS4yOTA4NSwgMi4zMzc2OSwgMy4wODU1NCwgNC4yNzczNywgNS4zMTkwNywgNi44MTc5Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQyMzY2LCAwLjE4OTIxOCwgMC4zMzUyNDEsIDAuNDM5NDA3LCAwLjYwNjAzNywgMC43NTIwMTUsIDAuOTYwMTUyIiwgXAotICAgICAgICAgICIwLjA1NDQxNywgMC4yMDExNzksIDAuMzQ3MTg5LCAwLjQ1MTM5OCwgMC42MTgwMDIsIDAuNzYzNzQ3LCAwLjk3MjEwNSIsIFwKLSAgICAgICAgICAiMC4wNjkyODgsIDAuMjE1ODM4LCAwLjM2MTgyNiwgMC40NjYwNjQsIDAuNjMyNzY2LCAwLjc3ODM5MSwgMC45ODY2NTEiLCBcCi0gICAgICAgICAgIjAuMDg0Mjk4LCAwLjIzMDcwOSwgMC4zNzU3NDEsIDAuNDc5OTE5LCAwLjY0NjY3NiwgMC43OTIzODIsIDEuMDAwNDIiLCBcCi0gICAgICAgICAgIjAuMDk5NDk3LCAwLjI0NDk5LCAwLjM5MTI0MSwgMC40OTMzMDksIDAuNjU5OTg2LCAwLjgwNTcxNywgMS4wMTM5NSIsIFwKLSAgICAgICAgICAiMC4xMjE5NTQsIDAuMjY5NDMsIDAuNDE1MDM4LCAwLjUxOSwgMC42ODYwMzksIDAuODMxNjQsIDEuMDM5NDciLCBcCi0gICAgICAgICAgIjAuMTM5OTU5LCAwLjI4OTg0NSwgMC40MzU2MjUsIDAuNTM5NjUzLCAwLjcwNjE4OSwgMC44NTIwNjcsIDEuMDYwMjQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjkwNDYsIDAuMzU4OTYyLCAwLjY0ODkzMywgMC44NTU5NjcsIDEuMTg3MDgsIDEuNDc3MTgsIDEuODkxMDgiLCBcCi0gICAgICAgICAgIjAuMDY4OTg0LCAwLjM1OTA2OSwgMC42NDg5NjksIDAuODU2MTE3LCAxLjE4Njk4LCAxLjQ3NzAxLCAxLjg5MTAyIiwgXAotICAgICAgICAgICIwLjA3MTUzMywgMC4zNTkxMDEsIDAuNjQ4OTcsIDAuODU1NzgyLCAxLjE4Njk3LCAxLjQ3Njg0LCAxLjg5MDIiLCBcCi0gICAgICAgICAgIjAuMDc2NzM4LCAwLjM1OTA3MSwgMC42NDg4MjMsIDAuODU2MTUxLCAxLjE4NjkyLCAxLjQ3NjQ5LCAxLjg5MDE1IiwgXAotICAgICAgICAgICIwLjA4MzE5NSwgMC4zNTkxNDgsIDAuNjQ4OTYyLCAwLjg1NTczLCAxLjE4NzI1LCAxLjQ3Njk5LCAxLjg5MDEzIiwgXAotICAgICAgICAgICIwLjA5NTk2NywgMC4zNjE3OTIsIDAuNjQ4OTkxLCAwLjg1NTk0MiwgMS4xODcxLCAxLjQ3NjgxLCAxLjg5IiwgXAotICAgICAgICAgICIwLjEwODQyNSwgMC4zNjYzNzUsIDAuNjQ5MjE5LCAwLjg1NTg0MSwgMS4xODY5NywgMS40NzY4LCAxLjg5MDk5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkQiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTE0Mjk1LCAwLjY2MjM4NywgMS4yMDk4MiwgMS42MDA4OCwgMi4yMjcsIDIuNzczOTcsIDMuNTU1NzgiLCBcCi0gICAgICAgICAgIjAuMTIzMDM4LCAwLjY3MTQ3OSwgMS4yMTkzNCwgMS42MTExNywgMi4yMzYxNSwgMi43ODQyNCwgMy41NjUzNiIsIFwKLSAgICAgICAgICAiMC4xMzQ3MzYsIDAuNjg0MDIsIDEuMjMxNTcsIDEuNjIyNjYsIDIuMjQ5MTYsIDIuNzk2MDcsIDMuNTc3NTkiLCBcCi0gICAgICAgICAgIjAuMTQ1ODExLCAwLjY5NTQ2OSwgMS4yNDMxMywgMS42MzQwNCwgMi4yNjA3NCwgMi44MDc0NywgMy41ODkxMiIsIFwKLSAgICAgICAgICAiMC4xNTcyODksIDAuNzA2NjYxLCAxLjI1NDksIDEuNjQ1NzksIDIuMjcxNDksIDIuODE5NjYsIDMuNjAwOTgiLCBcCi0gICAgICAgICAgIjAuMTc1NzYxLCAwLjcyNTEwNiwgMS4yNzMyMiwgMS42NjQ2OCwgMi4yOTA3OSwgMi44MzczNSwgMy42MTkxNCIsIFwKLSAgICAgICAgICAiMC4xOTMyMDIsIDAuNzQxNzk4LCAxLjI5MDA4LCAxLjY4MDc2LCAyLjMwNjYxLCAyLjg1NDEzLCAzLjYzNjA0Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjQzNjI4LCAxLjI5MjExLCAyLjMzNzQ1LCAzLjA4NDUxLCA0LjI4ODUsIDUuMzI1MDQsIDYuODEzNTEiLCBcCi0gICAgICAgICAgIjAuMjQyNTY3LCAxLjI5MTI3LCAyLjMzNzY1LCAzLjA4NTYzLCA0LjI3OTMzLCA1LjMyODU3LCA2LjgxMzEiLCBcCi0gICAgICAgICAgIjAuMjQxMDMzLCAxLjI5MjIyLCAyLjMzNzY2LCAzLjA4NDUyLCA0LjI4OTEzLCA1LjMyMDI1LCA2LjgxNzE2IiwgXAotICAgICAgICAgICIwLjI0MTk2NiwgMS4yOTA1NSwgMi4zMzY1OCwgMy4wODU0OCwgNC4yODkyMSwgNS4zMjIxNCwgNi44MTI1OCIsIFwKLSAgICAgICAgICAiMC4yNDUwMjUsIDEuMjkxOTUsIDIuMzM4MDksIDMuMDg0NTgsIDQuMjc5NjYsIDUuMzE4NzIsIDYuODE3OTciLCBcCi0gICAgICAgICAgIjAuMjUyNzc0LCAxLjI5MjE4LCAyLjMzODExLCAzLjA4MTA0LCA0LjI4OTQ0LCA1LjMyNzg0LCA2LjgxNTY5IiwgXAotICAgICAgICAgICIwLjI2MDI0MSwgMS4yOTIwOCwgMi4zMzgyNywgMy4wODgyLCA0LjI4NDcxLCA1LjMyNTc3LCA2LjgxMzg0Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM2NTU3LCAwLjE4MjM2NSwgMC4zMjgxMjIsIDAuNDMyMjMxLCAwLjU5OTAyNCwgMC43NDQ3MTMsIDAuOTUyNzgzIiwgXAotICAgICAgICAgICIwLjA0ODYwMiwgMC4xOTQ2NDUsIDAuMzQwNDUsIDAuNDQ0NjgsIDAuNjExMTQ0LCAwLjc1Njk1NCwgMC45NjUxOTQiLCBcCi0gICAgICAgICAgIjAuMDYzNTE0LCAwLjIwOTE3NywgMC4zNTQ5NzUsIDAuNDU5MTY0LCAwLjYyNTgyNSwgMC43NzE0NzUsIDAuOTc5NzMxIiwgXAotICAgICAgICAgICIwLjA3ODY0NywgMC4yMjM5MjEsIDAuMzY5NzM1LCAwLjQ3MzkwMywgMC42NDAzMzcsIDAuNzg2NDE2LCAwLjk5NDM3OSIsIFwKLSAgICAgICAgICAiMC4wOTMyOTIsIDAuMjM5MDQxLCAwLjM4NDQxNiwgMC40ODY3MzMsIDAuNjUzMzA5LCAwLjc5OTAyLCAxLjAwNzI1IiwgXAotICAgICAgICAgICIwLjExNDI0MiwgMC4yNjI4MzYsIDAuNDA4MjMzLCAwLjUxMjE1NSwgMC42Nzg1NjEsIDAuODI0NzQzLCAxLjAzMjYxIiwgXAotICAgICAgICAgICIwLjEzMDc2NywgMC4yODMyMDIsIDAuNDI4ODE4LCAwLjUzMjkwOCwgMC42OTkzNTMsIDAuODQ1MjY5LCAxLjA1MzMzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDYyMDUzLCAwLjM1MzI5MywgMC42NDQ0MDcsIDAuODUxODUzLCAxLjE4MTcyLCAxLjQ3MjE1LCAxLjg5MjAyIiwgXAotICAgICAgICAgICIwLjA2MjM5NCwgMC4zNTI1MzYsIDAuNjQzNjczLCAwLjg1MDQ4MSwgMS4xODExNywgMS40NzA2MywgMS44ODQ4OSIsIFwKLSAgICAgICAgICAiMC4wNjU4MzMsIDAuMzUzMzAzLCAwLjY0MzgzMywgMC44NDk0MjEsIDEuMTgzMDIsIDEuNDcyODgsIDEuODg1MTYiLCBcCi0gICAgICAgICAgIjAuMDcxNzMsIDAuMzUzMzE4LCAwLjY0MTg5OCwgMC44NTAzNTYsIDEuMTg0OTYsIDEuNDcxMjUsIDEuODg3MiIsIFwKLSAgICAgICAgICAiMC4wNzkwODQsIDAuMzUzNTQzLCAwLjY0NDQwNCwgMC44NDkxMDksIDEuMTgyMjksIDEuNDc0ODIsIDEuODg4MDkiLCBcCi0gICAgICAgICAgIjAuMDkzMjc5LCAwLjM1NjQzMiwgMC42NDQ0MjIsIDAuODUxMjg1LCAxLjE4NTA0LCAxLjQ3MTM3LCAxLjg4NTE0IiwgXAotICAgICAgICAgICIwLjEwNjg0MiwgMC4zNjA0MzYsIDAuNjQyNzc3LCAwLjg1MDcxMSwgMS4xODE2OCwgMS40NzE3MiwgMS44ODQ3MSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkFOIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMTM5OCwgMC4wMTE0MzksIDAuMDExNDQ4LCAwLjAxMTQ0NywgMC4wMTE0NDQsIDAuMDExNDQ2LCAwLjAxMTQ0NiIsIFwKLSAgICAgICAgICAiMC4wMTEzNjYsIDAuMDExNDExLCAwLjAxMTQxOCwgMC4wMTE0MTgsIDAuMDExNDE5LCAwLjAxMTQyMywgMC4wMTE0MiIsIFwKLSAgICAgICAgICAiMC4wMTEzMzksIDAuMDExMzksIDAuMDExMzk3LCAwLjAxMTM5OSwgMC4wMTE0LCAwLjAxMTQwNSwgMC4wMTE0MDIiLCBcCi0gICAgICAgICAgIjAuMDExMzE1LCAwLjAxMTM3NSwgMC4wMTEzODMsIDAuMDExMzg2LCAwLjAxMTM4OCwgMC4wMTEzODksIDAuMDExMzkiLCBcCi0gICAgICAgICAgIjAuMDExMjk5LCAwLjAxMTM2MiwgMC4wMTEzNzMsIDAuMDExMzc1LCAwLjAxMTM3OCwgMC4wMTEzNzksIDAuMDExMzgiLCBcCi0gICAgICAgICAgIjAuMDExMjg2LCAwLjAxMTM1NSwgMC4wMTEzNjgsIDAuMDExMzcyLCAwLjAxMTM3NiwgMC4wMTEzNzUsIDAuMDExMzc5IiwgXAotICAgICAgICAgICIwLjAxMTI4MSwgMC4wMTEzNTEsIDAuMDExMzY2LCAwLjAxMTM3LCAwLjAxMTM3NiwgMC4wMTEzNzUsIDAuMDExMzgxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDg0MjIsIDAuMDA4NDIyLCAwLjAwODQyMSwgMC4wMDg0MjEsIDAuMDA4NDIsIDAuMDA4NDE5LCAwLjAwODQxNyIsIFwKLSAgICAgICAgICAiMC4wMDgzOTgsIDAuMDA4Mzk5LCAwLjAwODQsIDAuMDA4Mzk5LCAwLjAwODM5NiwgMC4wMDgzOTUsIDAuMDA4MzkzIiwgXAotICAgICAgICAgICIwLjAwODM3OSwgMC4wMDgzODIsIDAuMDA4MzgzLCAwLjAwODM4MywgMC4wMDgzNzksIDAuMDA4Mzc5LCAwLjAwODM3OCIsIFwKLSAgICAgICAgICAiMC4wMDgzNTMsIDAuMDA4MzYsIDAuMDA4MzYxLCAwLjAwODM2LCAwLjAwODM1OSwgMC4wMDgzNTgsIDAuMDA4MzU3IiwgXAotICAgICAgICAgICIwLjAwODM0MiwgMC4wMDgzNTMsIDAuMDA4MzU2LCAwLjAwODM1NCwgMC4wMDgzNTQsIDAuMDA4MzUzLCAwLjAwODM1MSIsIFwKLSAgICAgICAgICAiMC4wMDgzMTgsIDAuMDA4MzM0LCAwLjAwODMzNywgMC4wMDgzMzYsIDAuMDA4MzM1LCAwLjAwODMzNSwgMC4wMDgzMzYiLCBcCi0gICAgICAgICAgIjAuMDA4MzE2LCAwLjAwODMzLCAwLjAwODMzMSwgMC4wMDgzMzIsIDAuMDA4MzMyLCAwLjAwODMzMiwgMC4wMDgzMyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkJOIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwOTYwNywgMC4wMDk2NSwgMC4wMDk2NTQsIDAuMDA5NjU2LCAwLjAwOTY1NywgMC4wMDk2NTcsIDAuMDA5NjU3IiwgXAotICAgICAgICAgICIwLjAwOTU3NiwgMC4wMDk2MjQsIDAuMDA5NjI5LCAwLjAwOTYzLCAwLjAwOTYzMywgMC4wMDk2MzMsIDAuMDA5NjM1IiwgXAotICAgICAgICAgICIwLjAwOTU1LCAwLjAwOTYwMywgMC4wMDk2MTEsIDAuMDA5NjEsIDAuMDA5NjE1LCAwLjAwOTYxNCwgMC4wMDk2MTQiLCBcCi0gICAgICAgICAgIjAuMDA5NTI4LCAwLjAwOTU4NywgMC4wMDk1OTYsIDAuMDA5NTk5LCAwLjAwOTYwMSwgMC4wMDk2MDEsIDAuMDA5NjAzIiwgXAotICAgICAgICAgICIwLjAwOTUxMywgMC4wMDk1NzYsIDAuMDA5NTg3LCAwLjAwOTU5LCAwLjAwOTU5MywgMC4wMDk1OTQsIDAuMDA5NTk1IiwgXAotICAgICAgICAgICIwLjAwOTQ5NywgMC4wMDk1NjQsIDAuMDA5NTc3LCAwLjAwOTU4MSwgMC4wMDk1ODYsIDAuMDA5NTg3LCAwLjAwOTU5MSIsIFwKLSAgICAgICAgICAiMC4wMDk0OTEsIDAuMDA5NTYzLCAwLjAwOTU3NywgMC4wMDk1ODIsIDAuMDA5NTg3LCAwLjAwOTU4OCwgMC4wMDk1OSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA3NDksIDAuMDA3NTAxLCAwLjAwNzUwMSwgMC4wMDc1MDEsIDAuMDA3NDk5LCAwLjAwNzQ5OCwgMC4wMDc0OTkiLCBcCi0gICAgICAgICAgIjAuMDA3NDcsIDAuMDA3NDgyLCAwLjAwNzQ4MiwgMC4wMDc0ODIsIDAuMDA3NDgsIDAuMDA3NDgsIDAuMDA3NDc4IiwgXAotICAgICAgICAgICIwLjAwNzQ0NiwgMC4wMDc0NjMsIDAuMDA3NDY1LCAwLjAwNzQ2NCwgMC4wMDc0NjUsIDAuMDA3NDYzLCAwLjAwNzQ2MyIsIFwKLSAgICAgICAgICAiMC4wMDc0MjYsIDAuMDA3NDUxLCAwLjAwNzQ1MywgMC4wMDc0NTMsIDAuMDA3NDUzLCAwLjAwNzQ1MiwgMC4wMDc0NTIiLCBcCi0gICAgICAgICAgIjAuMDA3NDA5LCAwLjAwNzQzNywgMC4wMDc0NDIsIDAuMDA3NDQzLCAwLjAwNzQ0MiwgMC4wMDc0NDIsIDAuMDA3NDQzIiwgXAotICAgICAgICAgICIwLjAwNzM4OCwgMC4wMDc0MjgsIDAuMDA3NDM0LCAwLjAwNzQzNywgMC4wMDc0MzYsIDAuMDA3NDM2LCAwLjAwNzQzNyIsIFwKLSAgICAgICAgICAiMC4wMDczNzQsIDAuMDA3NDIsIDAuMDA3NDI3LCAwLjAwNzQyOSwgMC4wMDc0MzEsIDAuMDA3NDMxLCAwLjAwNzQzMSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA4MTI1LCAwLjAwODEzNSwgMC4wMDgxMzYsIDAuMDA4MTM3LCAwLjAwODEzNywgMC4wMDgxMzgsIDAuMDA4MTM1IiwgXAotICAgICAgICAgICIwLjAwODA4NCwgMC4wMDgxMjYsIDAuMDA4MTMxLCAwLjAwODEzMiwgMC4wMDgxMzQsIDAuMDA4MTM0LCAwLjAwODEzNSIsIFwKLSAgICAgICAgICAiMC4wMDgwNSwgMC4wMDgxMTQsIDAuMDA4MTI1LCAwLjAwODEyOCwgMC4wMDgxMywgMC4wMDgxMzMsIDAuMDA4MTM0IiwgXAotICAgICAgICAgICIwLjAwODAyNywgMC4wMDgxMDUsIDAuMDA4MTE4LCAwLjAwODExNywgMC4wMDgxMzQsIDAuMDA4MTM1LCAwLjAwODEzIiwgXAotICAgICAgICAgICIwLjAwODAxMiwgMC4wMDgwOTcsIDAuMDA4MTE0LCAwLjAwODExOCwgMC4wMDgxMjcsIDAuMDA4MTI5LCAwLjAwODEzMyIsIFwKLSAgICAgICAgICAiMC4wMDc5OTQsIDAuMDA4MDg0LCAwLjAwODEwNCwgMC4wMDgxMTIsIDAuMDA4MTE4LCAwLjAwODEyMywgMC4wMDgxMjQiLCBcCi0gICAgICAgICAgIjAuMDA3OTg1LCAwLjAwODA3NCwgMC4wMDgwOTgsIDAuMDA4MTA2LCAwLjAwODExNCwgMC4wMDgxMTgsIDAuMDA4MTIyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDE2ODYsIDAuMDAxNjg5LCAwLjAwMTY4OCwgMC4wMDE2ODksIDAuMDAxNjg4LCAwLjAwMTY4OCwgMC4wMDE2ODgiLCBcCi0gICAgICAgICAgIjAuMDAxNjc5LCAwLjAwMTcxLCAwLjAwMTcxNCwgMC4wMDE3MTUsIDAuMDAxNzE1LCAwLjAwMTcxNSwgMC4wMDE3MTUiLCBcCi0gICAgICAgICAgIjAuMDAxNjQzLCAwLjAwMTcxNCwgMC4wMDE3MjMsIDAuMDAxNzI2LCAwLjAwMTcyOCwgMC4wMDE3MjksIDAuMDAxNzI5IiwgXAotICAgICAgICAgICIwLjAwMTYwOCwgMC4wMDE3MDgsIDAuMDAxNzIzLCAwLjAwMTcyNywgMC4wMDE3MzEsIDAuMDAxNzMzLCAwLjAwMTczNCIsIFwKLSAgICAgICAgICAiMC4wMDE1OCwgMC4wMDE2OTQsIDAuMDAxNzE5LCAwLjAwMTcyNSwgMC4wMDE3MzEsIDAuMDAxNzMzLCAwLjAwMTczNSIsIFwKLSAgICAgICAgICAiMC4wMDE1NDgsIDAuMDAxNjg4LCAwLjAwMTcxMywgMC4wMDE3MjEsIDAuMDAxNzI2LCAwLjAwMTczLCAwLjAwMTczNCIsIFwKLSAgICAgICAgICAiMC4wMDE1MTYsIDAuMDAxNjcyLCAwLjAwMTcwMiwgMC4wMDE3MTQsIDAuMDAxNzIzLCAwLjAwMTcyOCwgMC4wMDE3MzEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJEIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjMyNiwgMC4wMDYzNDMsIDAuMDA2MzQ0LCAwLjAwNjM0NSwgMC4wMDYzNDUsIDAuMDA2MzQ1LCAwLjAwNjM0NCIsIFwKLSAgICAgICAgICAiMC4wMDYyNiwgMC4wMDYzMjgsIDAuMDA2MzM3LCAwLjAwNjMzOSwgMC4wMDYzNCwgMC4wMDYzNDQsIDAuMDA2MzQiLCBcCi0gICAgICAgICAgIjAuMDA2MjA5LCAwLjAwNjMxLCAwLjAwNjMyNiwgMC4wMDYzMywgMC4wMDYzMzQsIDAuMDA2MzM3LCAwLjAwNjMzNyIsIFwKLSAgICAgICAgICAiMC4wMDYxNzQsIDAuMDA2Mjk0LCAwLjAwNjMxNSwgMC4wMDYzMjEsIDAuMDA2MzI4LCAwLjAwNjMzMSwgMC4wMDYzMzMiLCBcCi0gICAgICAgICAgIjAuMDA2MTUzLCAwLjAwNjI4LCAwLjAwNjMwNywgMC4wMDYzMTQsIDAuMDA2MzIxLCAwLjAwNjMyNiwgMC4wMDYzMyIsIFwKLSAgICAgICAgICAiMC4wMDYxMzUsIDAuMDA2MjYxLCAwLjAwNjI5MywgMC4wMDYzMDQsIDAuMDA2MzE0LCAwLjAwNjMxOSwgMC4wMDYzMjQiLCBcCi0gICAgICAgICAgIjAuMDA2MTI5LCAwLjAwNjI0OCwgMC4wMDYyODMsIDAuMDA2Mjk1LCAwLjAwNjMwOCwgMC4wMDYzMTQsIDAuMDA2MzIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDI4MiwgMC4wMDAzMDgsIDAuMDAwMzEsIDAuMDAwMzExLCAwLjAwMDMxMiwgMC4wMDAzMTIsIDAuMDAwMzEyIiwgXAotICAgICAgICAgICIwLjAwMDI4MSwgMC4wMDAzNzIsIDAuMDAwMzgyLCAwLjAwMDM4NSwgMC4wMDAzODgsIDAuMDAwMzksIDAuMDAwMzkxIiwgXAotICAgICAgICAgICIwLjAwMDI0LCAwLjAwMDM4OSwgMC4wMDA0MDgsIDAuMDAwNDEzLCAwLjAwMDQxOCwgMC4wMDA0MjEsIDAuMDAwNDIzIiwgXAotICAgICAgICAgICIwLjAwMDIwMSwgMC4wMDAzODUsIDAuMDAwNDEyLCAwLjAwMDQyLCAwLjAwMDQyNywgMC4wMDA0MzEsIDAuMDAwNDM0IiwgXAotICAgICAgICAgICIwLjAwMDE3LCAwLjAwMDM3OCwgMC4wMDA0MTEsIDAuMDAwNDIzLCAwLjAwMDQzMywgMC4wMDA0MzgsIDAuMDAwNDQyIiwgXAotICAgICAgICAgICIwLjAwMDEzNywgMC4wMDAzNjUsIDAuMDAwNDA0LCAwLjAwMDQxNywgMC4wMDA0MywgMC4wMDA0MzMsIDAuMDAwNDM4IiwgXAotICAgICAgICAgICIwLjAwMDEwNCwgMC4wMDAzNDYsIDAuMDAwMzk1LCAwLjAwMDQxMSwgMC4wMDA0MjUsIDAuMDAwNDMzLCAwLjAwMDQzOSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBOT1I0QkJYTCAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoTk9SNEJCWEwpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4wODA5MDg7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEFOKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2MjkzODsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2Mjg5MTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2MjkzODsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyMDMsIDAuMDAwMTg1LCAwLjAwMDE3NSwgMC4wMDAxNzEsIDAuMDAwMTcsIDAuMDAwMTY3LCAwLjAwMDE2OSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTExOSwgMC4wMDExMDcsIDAuMDAxMSwgMC4wMDEwOTYsIDAuMDAxMDk0LCAwLjAwMTA5MywgMC4wMDEwOTMiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEJOKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA1NDQxNzM7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNTQzOTA0OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDU0NDE3MzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxOTQsIDAuMDAwMTc2LCAwLjAwMDE2NiwgMC4wMDAxNjIsIDAuMDAwMTYsIDAuMDAwMTU4LCAwLjAwMDE1OSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTIxOCwgMC4wMDEyMDQsIDAuMDAxMTk3LCAwLjAwMTE5NSwgMC4wMDExOTMsIDAuMDAxMTkyLCAwLjAwMTE5MiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQykgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjU2OTI7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjUzODk3OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDY1NjkyOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDA3NywgMC4wMDAwNzcsIDAuMDAwMDc3LCAwLjAwMDA3NywgMC4wMDAwNzcsIDAuMDAwMDc3LCAwLjAwMDA3NyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDE3NiwgMC4wMDAxNzYsIDAuMDAwMTc2LCAwLjAwMDE3NiwgMC4wMDAxNzYsIDAuMDAwMTc2LCAwLjAwMDE3NiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjY1NzExOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDY2NTY3OTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2NjU3MTE7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMDQ5LCAwLjAwMDA0OSwgMC4wMDAwNDksIDAuMDAwMDQ5LCAwLjAwMDA0OSwgMC4wMDAwNDksIDAuMDAwMDQ5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjYyLCAwLjAwMDI2MiwgMC4wMDAyNjIsIDAuMDAwMjYyLCAwLjAwMDI2MiwgMC4wMDAyNjIsIDAuMDAwMjYyIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMDIxNTcxMTsKLSAgICBmdW5jdGlvbiA6ICIoISgoKCghQU4pKyghQk4pKStDKStEKSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkFOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC42NjAyNzEsIDAuNzY2Mzk1LCAxLjcxODQ5LCAzLjMwNTE0LCA0Ljg5MTQ5LCA4LjU5MjgzLCAxMC43MDc4IiwgXAotICAgICAgICAgICIwLjY3MjQyNywgMC43NzgwNSwgMS43MzA4OCwgMy4zMTcyNSwgNC45MDMyNywgOC42MDQ1OCwgMTAuNzE5NyIsIFwKLSAgICAgICAgICAiMC42ODc1NDUsIDAuNzkzMTgzLCAxLjc0NTkyLCAzLjMzMjcsIDQuOTE4NTQsIDguNjE5ODMsIDEwLjczNDkiLCBcCi0gICAgICAgICAgIjAuNzAyNjE1LCAwLjgwODIzMywgMS43NjA4MSwgMy4zNDc5NSwgNC45MzM3MSwgOC42MzUwMywgMTAuNzUwMSIsIFwKLSAgICAgICAgICAiMC43MTY3NiwgMC44MjIzMDEsIDEuNzc1MjMsIDMuMzYxOTUsIDQuOTQ3ODEsIDguNjQ5MDksIDEwLjc2NDIiLCBcCi0gICAgICAgICAgIjAuNzM2NzkxLCAwLjg0Mjg5OSwgMS43OTYwOSwgMy4zODE4MiwgNC45NjgwNSwgOC42Njk1MywgMTAuNzg0NiIsIFwKLSAgICAgICAgICAiMC43NTI3NzcsIDAuODU4ODM0LCAxLjgxMTg4LCAzLjM5ODAzLCA0Ljk4NDI4LCA4LjY4NTUyLCAxMC44MDA2Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIxLjEzNTg2LCAxLjMzNzMsIDMuMTUxMTQsIDYuMTc3MTEsIDkuMTkwMTYsIDE2LjIyODUsIDIwLjI1MTciLCBcCi0gICAgICAgICAgIjEuMTM1NDMsIDEuMzM1NzQsIDMuMTUyMzMsIDYuMTcxNzUsIDkuMTkwMDMsIDE2LjIyODQsIDIwLjI1MTciLCBcCi0gICAgICAgICAgIjEuMTM0MTYsIDEuMzM1MDIsIDMuMTUyLCA2LjE3MDM4LCA5LjE5MDEsIDE2LjIyNzcsIDIwLjI1MTciLCBcCi0gICAgICAgICAgIjEuMTM0MTMsIDEuMzM1NTgsIDMuMTUxNTksIDYuMTY5NjUsIDkuMTg5NzYsIDE2LjIyODUsIDIwLjI1MTciLCBcCi0gICAgICAgICAgIjEuMTM0MTgsIDEuMzM1NzYsIDMuMTUyMDcsIDYuMTcwMTgsIDkuMTkwMDgsIDE2LjIyNzcsIDIwLjI1MTciLCBcCi0gICAgICAgICAgIjEuMTMzODUsIDEuMzM1OTMsIDMuMTQ4NDQsIDYuMTc2ODIsIDkuMTg5ODUsIDE2LjIyODUsIDIwLjI1MTgiLCBcCi0gICAgICAgICAgIjEuMTMzNzIsIDEuMzM1ODUsIDMuMTU1NTUsIDYuMTczMDEsIDkuMTg5OTgsIDE2LjIyODUsIDIwLjI1MTciKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjEyMjE2LCAwLjI0MjIyNiwgMC41MTA5OTEsIDAuOTU3MzExLCAxLjQwMzE0LCAyLjQ0MzI0LCAzLjAzNzQ1IiwgXAotICAgICAgICAgICIwLjIyMzc4OCwgMC4yNTM4MTMsIDAuNTIyNTU3LCAwLjk2ODg3NCwgMS40MTQ3OCwgMi40NTQ2OSwgMy4wNDkwNyIsIFwKLSAgICAgICAgICAiMC4yMzgzOTYsIDAuMjY4MzkzLCAwLjUzNzE0MiwgMC45ODM1NDEsIDEuNDI5NDcsIDIuNDcwMDMsIDMuMDYzOTIiLCBcCi0gICAgICAgICAgIjAuMjUyNDU0LCAwLjI4MjQ2NiwgMC41NTEyMjgsIDAuOTk3NjMyLCAxLjQ0MzY5LCAyLjQ4NDMxLCAzLjA3ODI0IiwgXAotICAgICAgICAgICIwLjI2NDkwNiwgMC4yOTQ5NDEsIDAuNTYzNjkyLCAxLjAxMDEsIDEuNDU2MTEsIDIuNDk2NjYsIDMuMDkwNTEiLCBcCi0gICAgICAgICAgIjAuMjgyODE3LCAwLjMxMjg1MiwgMC41ODE1NywgMS4wMjc4NywgMS40NzQxNiwgMi41MTQyNywgMy4xMDgwNiIsIFwKLSAgICAgICAgICAiMC4yOTY2NzcsIDAuMzI2Njc5LCAwLjU5NTM3NiwgMS4wNDE4NSwgMS40ODc5NCwgMi41MjgxMSwgMy4xMjE4OSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zNDI1ODUsIDAuNDAxMzM1LCAwLjkyOTk4MSwgMS44MTEyNywgMi42OTE2MiwgNC43NDY2OSwgNS45MjE4NyIsIFwKLSAgICAgICAgICAiMC4zNDI0NzUsIDAuNDAxMjk4LCAwLjkyOTk0MywgMS44MTAzNSwgMi42OTIwMSwgNC43NDczNiwgNS45MjE4NSIsIFwKLSAgICAgICAgICAiMC4zNDI1ODYsIDAuNDAxMjM2LCAwLjkyOTk3MiwgMS44MTEzNCwgMi42OTE1NywgNC43NDc0NSwgNS45MjA3IiwgXAotICAgICAgICAgICIwLjM0MjU2NSwgMC40MDEzMjQsIDAuOTI5OTgxLCAxLjgxMTMzLCAyLjY5MjM3LCA0Ljc0Njc5LCA1LjkyMTAzIiwgXAotICAgICAgICAgICIwLjM0MjU3MiwgMC40MDEyMjIsIDAuOTI5OTYzLCAxLjgxMTMyLCAyLjY5MjMzLCA0Ljc0NjUxLCA1LjkyMDk0IiwgXAotICAgICAgICAgICIwLjM0MjYxNCwgMC40MDExNDMsIDAuOTI5ODU1LCAxLjgxMTMyLCAyLjY5MTksIDQuNzQ2ODgsIDUuOTIxODYiLCBcCi0gICAgICAgICAgIjAuMzQyODYsIDAuNDAxNTMyLCAwLjkyOTY3NSwgMS44MTEzNCwgMi42OTE3NywgNC43NDY4NywgNS45MjE4NyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuNjUzODg4LCAwLjc1OTU5MSwgMS43MTI2NiwgMy4yOTg3MSwgNC44ODUxMiwgOC41ODY0MSwgMTAuNzAxNCIsIFwKLSAgICAgICAgICAiMC42NjU3MDksIDAuNzcxMzY2LCAxLjcyNDAzLCAzLjMxMDg4LCA0Ljg5NjcsIDguNTk3OTksIDEwLjcxMzEiLCBcCi0gICAgICAgICAgIjAuNjgxMDA2LCAwLjc4NjY0MSwgMS43MzkyNywgMy4zMjYzNywgNC45MTIxMSwgOC42MTM0NiwgMTAuNzI4NSIsIFwKLSAgICAgICAgICAiMC42OTYwNDEsIDAuODAxNzgsIDEuNzU0NDMsIDMuMzQxMzIsIDQuOTI3MTQsIDguNjI4NDQsIDEwLjc0MzUiLCBcCi0gICAgICAgICAgIjAuNzA5Nzg0LCAwLjgxNTg1MywgMS43Njg0MiwgMy4zNTUyNiwgNC45NDE0NSwgOC42NDI3MywgMTAuNzU3OCIsIFwKLSAgICAgICAgICAiMC43MzA0NSwgMC44MzYzNzgsIDEuNzg5MDIsIDMuMzc1NzcsIDQuOTYyMDYsIDguNjYzMzIsIDEwLjc3ODMiLCBcCi0gICAgICAgICAgIjAuNzQ2NzM5LCAwLjg1MjUwNCwgMS44MDU2NSwgMy4zOTIzMSwgNC45NzgxOSwgOC42Nzk1LCAxMC43OTQ2Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIxLjEzMzIzLCAxLjMzNTQzLCAzLjE1NTQyLCA2LjE3NzQ3LCA5LjE3OTQsIDE2LjIyODUsIDIwLjI1MTciLCBcCi0gICAgICAgICAgIjEuMTM0MTcsIDEuMzM0NjgsIDMuMTUxOTQsIDYuMTcwNTMsIDkuMTkwMTMsIDE2LjIyNzYsIDIwLjI1MTciLCBcCi0gICAgICAgICAgIjEuMTM0MSwgMS4zMzU4MiwgMy4xNTE2OSwgNi4xNjk5MSwgOS4xOTAyMywgMTYuMjI4NSwgMjAuMjUxNyIsIFwKLSAgICAgICAgICAiMS4xMzQxNCwgMS4zMzQ1MywgMy4xNTE4NywgNi4xNzA0NywgOS4xODk5OCwgMTYuMjI3NiwgMjAuMjUxNyIsIFwKLSAgICAgICAgICAiMS4xMzM1NiwgMS4zMzU1MiwgMy4xNTE1MiwgNi4xNjk4LCA5LjE4ODcxLCAxNi4yMjg1LCAyMC4yNTE3IiwgXAotICAgICAgICAgICIxLjEzMzc2LCAxLjMzNTUzLCAzLjE0ODYxLCA2LjE3NzU5LCA5LjE4OTI2LCAxNi4yMjg1LCAyMC4yNTE3IiwgXAotICAgICAgICAgICIxLjEzMzgyLCAxLjMzNTU1LCAzLjE1MjE5LCA2LjE3MDA5LCA5LjE4OTkxLCAxNi4yMjc2LCAyMC4yNTE3Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIwOTk0OCwgMC4yMzk3OCwgMC41MDc3ODksIDAuOTUzNzU5LCAxLjM5OTUzLCAyLjQzOTQsIDMuMDMzMzEiLCBcCi0gICAgICAgICAgIjAuMjIxNTMyLCAwLjI1MTM4OCwgMC41MTk0MjMsIDAuOTY1MjE3LCAxLjQxMTQ1LCAyLjQ1MTMzLCAzLjA0NDgxIiwgXAotICAgICAgICAgICIwLjIzNjIwMSwgMC4yNjYwNDYsIDAuNTM0MDU5LCAwLjk4MDAzOCwgMS40MjU4MSwgMi40NjU2OCwgMy4wNTk2OCIsIFwKLSAgICAgICAgICAiMC4yNTA0MzQsIDAuMjgwMjg2LCAwLjU0ODMsIDAuOTk0MjcyLCAxLjQzOTczLCAyLjQ4MDYsIDMuMDczODQiLCBcCi0gICAgICAgICAgIjAuMjYzMjA0LCAwLjI5MzA0NywgMC41NjEwODUsIDEuMDA3MjQsIDEuNDUyOTEsIDIuNDkzMjksIDMuMDg2OTEiLCBcCi0gICAgICAgICAgIjAuMjgxNjI0LCAwLjMxMTQ3OSwgMC41Nzk1MTMsIDEuMDI1NDIsIDEuNDcwOTIsIDIuNTExMiwgMy4xMDUxMSIsIFwKLSAgICAgICAgICAiMC4yOTU5MTEsIDAuMzI1NzQ4LCAwLjU5MzgwMywgMS4wMzk4NiwgMS40ODUyNCwgMi41MjU4NiwgMy4xMTkxOSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMzY2NDgsIDAuMzk1NDQ0LCAwLjkyNDA4NSwgMS44MDUyMywgMi42ODYxMiwgNC43NDA0LCA1LjkxNDcyIiwgXAotICAgICAgICAgICIwLjMzNjczLCAwLjM5NTQ2NCwgMC45MjQxMjMsIDEuODA0NzMsIDIuNjg1NjMsIDQuNzQwMywgNS45MTUyOSIsIFwKLSAgICAgICAgICAiMC4zMzY2MywgMC4zOTU0NDUsIDAuOTI0MDgxLCAxLjgwNTIzLCAyLjY4NjEzLCA0Ljc0MDM4LCA1LjkxNTQ4IiwgXAotICAgICAgICAgICIwLjMzNjUxNCwgMC4zOTU0MTgsIDAuOTI0MDIyLCAxLjgwNTE5LCAyLjY4NTc0LCA0Ljc0MDQzLCA1LjkxNTM5IiwgXAotICAgICAgICAgICIwLjMzNjcyLCAwLjM5NTM5OSwgMC45MjQwOTQsIDEuODA1MjMsIDIuNjg2MTksIDQuNzQwNTcsIDUuOTE0NTciLCBcCi0gICAgICAgICAgIjAuMzM2NjU2LCAwLjM5NTQxMiwgMC45MjM4NzksIDEuODA0ODgsIDIuNjg1NzMsIDQuNzQwMjcsIDUuOTE1MzUiLCBcCi0gICAgICAgICAgIjAuMzM2OTc0LCAwLjM5NTYwMywgMC45MjQyODUsIDEuODA1MjYsIDIuNjg0ODksIDQuNzQwMjUsIDUuOTE1MjgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuNjA4NDY3LCAwLjcxNDU1NCwgMS42NjYyNCwgMy4yNTMzMywgNC44Mzk1NCwgOC41NDA4LCAxMC42NTU4IiwgXAotICAgICAgICAgICIwLjYxODIxOSwgMC43MjQwMzcsIDEuNjc2NTksIDMuMjYzNTQsIDQuODQ5NDgsIDguNTUwODIsIDEwLjY2NTgiLCBcCi0gICAgICAgICAgIjAuNjMwMjU1LCAwLjczNjMyNSwgMS42ODg1NCwgMy4yNzU3MSwgNC44NjE0NiwgOC41NjI4MiwgMTAuNjc3OCIsIFwKLSAgICAgICAgICAiMC42NDE1NTgsIDAuNzQ3NzEzLCAxLjcwMDUxLCAzLjI4NzA2LCA0Ljg3MzI5LCA4LjU3NDQzLCAxMC42ODk1IiwgXAotICAgICAgICAgICIwLjY1Mjk4MSwgMC43NTg3MDEsIDEuNzExNjQsIDMuMjk4MDIsIDQuODg0NTgsIDguNTg1ODIsIDEwLjcwMDkiLCBcCi0gICAgICAgICAgIjAuNjcwODQ1LCAwLjc3NjY1MSwgMS43Mjk0LCAzLjMxNjY0LCA0LjkwMjU3LCA4LjYwMzkzLCAxMC43MTkiLCBcCi0gICAgICAgICAgIjAuNjg2ODA0LCAwLjc5MjkwNSwgMS43NDYxOSwgMy4zMzI4LCA0LjkxODQzLCA4LjYxOTgyLCAxMC43MzQ5Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIxLjEzNDA3LCAxLjMzNzU4LCAzLjE1NDgxLCA2LjE2OTIzLCA5LjE4ODc3LCAxNi4yMjg1LCAyMC4yNTE3IiwgXAotICAgICAgICAgICIxLjEzMzg3LCAxLjMzNTUzLCAzLjE1MTU3LCA2LjE3MDA4LCA5LjE5MDM1LCAxNi4yMjg1LCAyMC4yNTE3IiwgXAotICAgICAgICAgICIxLjEzNDA4LCAxLjMzNzQ4LCAzLjE1MTU1LCA2LjE3MDE5LCA5LjE5MDE2LCAxNi4yMjg1LCAyMC4yNTE3IiwgXAotICAgICAgICAgICIxLjEzMzc1LCAxLjMzNTk1LCAzLjE1MjE1LCA2LjE3MDMsIDkuMTg4MzEsIDE2LjIyODUsIDIwLjI1MTciLCBcCi0gICAgICAgICAgIjEuMTMzOTksIDEuMzM2MjIsIDMuMTUxOCwgNi4xNzcwNywgOS4xODg5NCwgMTYuMjI4NSwgMjAuMjUwOSIsIFwKLSAgICAgICAgICAiMS4xMzQzNCwgMS4zMzcwMywgMy4xNTExNSwgNi4xNjk1NiwgOS4xODk5LCAxNi4yMjc3LCAyMC4yNTE3IiwgXAotICAgICAgICAgICIxLjEzMzgyLCAxLjMzNTc5LCAzLjE1MjQ5LCA2LjE3MDQ2LCA5LjE5MDE4LCAxNi4yMjg1LCAyMC4yNTE3Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE3NDkxNywgMC4yMDQ2OCwgMC40NzIxNzcsIDAuOTE3ODA4LCAxLjM2MzI4LCAyLjQwMjk4LCAyLjk5NzE0IiwgXAotICAgICAgICAgICIwLjE4NjU0NiwgMC4yMTYzMzEsIDAuNDgzODU1LCAwLjkyOTUwNiwgMS4zNzUxNCwgMi40MTQ2NiwgMy4wMDg4OCIsIFwKLSAgICAgICAgICAiMC4yMDE5ODcsIDAuMjMxNzAxLCAwLjQ5OTEzNywgMC45NDQ1OTYsIDEuMzkwNTksIDIuNDMwNDMsIDMuMDI0MDkiLCBcCi0gICAgICAgICAgIjAuMjE3MjM5LCAwLjI0NjkxOCwgMC41MTQwMDcsIDAuOTU5ODE5LCAxLjQwNTY5LCAyLjQ0NTUzLCAzLjAzODUiLCBcCi0gICAgICAgICAgIjAuMjMyODI3LCAwLjI2MjQ5NSwgMC41MzAwMjEsIDAuOTc1NTc4LCAxLjQyMTUyLCAyLjQ2MTUsIDMuMDU0OTMiLCBcCi0gICAgICAgICAgIjAuMjU2OTc3LCAwLjI4NjY5NywgMC41NTI5NzEsIDAuOTk4NTMzLCAxLjQzNTY5LCAyLjQ4NTY4LCAzLjA3OTUzIiwgXAotICAgICAgICAgICIwLjI3ODQ2LCAwLjMwODA4MiwgMC41NzM4MjYsIDEuMDE5NDYsIDEuNDYyNzMsIDIuNDk1MTIsIDMuMDg4MTEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzMwNDU1LCAwLjM4OTIxLCAwLjkxNzY3NSwgMS43OTgwMSwgMi42NzkxOCwgNC43MzM5NywgNS45MDg5MiIsIFwKLSAgICAgICAgICAiMC4zMzA0NzgsIDAuMzg5MzE0LCAwLjkxNzY4NywgMS43OTgxOCwgMi42Nzg5OCwgNC43MzM3OSwgNS45MDg4MiIsIFwKLSAgICAgICAgICAiMC4zMzA0NTksIDAuMzg5Mjc5LCAwLjkxNzk2NiwgMS43OTg2NywgMi42NzkxNSwgNC43MzQ0LCA1LjkwODg3IiwgXAotICAgICAgICAgICIwLjMzMDQzMSwgMC4zODkyNjYsIDAuOTE3OTkxLCAxLjc5ODQ1LCAyLjY3OTIyLCA0LjczNTQsIDUuOTEzMjUiLCBcCi0gICAgICAgICAgIjAuMzMwNzU2LCAwLjM4OTE1NywgMC45MTc4MjUsIDEuNzk4NSwgMi42NzkyMiwgNC43MzQ1MywgNS45MTMyNCIsIFwKLSAgICAgICAgICAiMC4zMzM2OTUsIDAuMzkwODExLCAwLjkxNzgwNywgMS43OTg2OSwgMi42NzkzNSwgNC43MzQ0NiwgNS45MTMwNCIsIFwKLSAgICAgICAgICAiMC4zMzgwMzgsIDAuMzk0MjI0LCAwLjkxNzgwNywgMS43OTg2MSwgMi42NzkyOCwgNC43MzY2MSwgNS45MDgyMyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJEIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC41ODczLCAwLjY5MzUzOSwgMS42NDU4NSwgMy4yMzIxNiwgNC44MTg1OSwgOC41MTk3MSwgMTAuNjM0OCIsIFwKLSAgICAgICAgICAiMC41OTY0NjksIDAuNzAyNDQzLCAxLjY1NDU2LCAzLjI0MTUyLCA0LjgyNzg2LCA4LjUyOTA0LCAxMC42NDQyIiwgXAotICAgICAgICAgICIwLjYwNzk5NiwgMC43MTM5MzcsIDEuNjY2NjUsIDMuMjUzNywgNC44Mzk0OSwgOC41NDA4MiwgMTAuNjU1OSIsIFwKLSAgICAgICAgICAiMC42MTkzNzksIDAuNzI1NDA1LCAxLjY3ODksIDMuMjY1MTEsIDQuODUxMDksIDguNTUyNSwgMTAuNjY3NSIsIFwKLSAgICAgICAgICAiMC42MzExMTUsIDAuNzM3MDk2LCAxLjY5MDIyLCAzLjI3NjkxLCA0Ljg2MjcxLCA4LjU2NDA4LCAxMC42NzkxIiwgXAotICAgICAgICAgICIwLjY0OTE3LCAwLjc1NTA5NywgMS43MDgxMiwgMy4yOTUyNywgNC44ODExNywgOC41ODI1NiwgMTAuNjk3NiIsIFwKLSAgICAgICAgICAiMC42NjUxMjEsIDAuNzcxMjU5LCAxLjcyNDc0LCAzLjMxMTA3LCA0Ljg5NzE5LCA4LjU5ODc1LCAxMC43MTM4Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIxLjEzMzg2LCAxLjMzNDM4LCAzLjE0ODg0LCA2LjE3NjMxLCA5LjE4ODQ5LCAxNi4yMjg0LCAyMC4yNTE3IiwgXAotICAgICAgICAgICIxLjEzMzkxLCAxLjMzNDU4LCAzLjE1NjkxLCA2LjE3NzU0LCA5LjE4NzM5LCAxNi4yMjc3LCAyMC4yNTE3IiwgXAotICAgICAgICAgICIxLjEzMzkzLCAxLjMzNTc2LCAzLjE1MTgsIDYuMTcwMzIsIDkuMTg5MzksIDE2LjIyODUsIDIwLjI1MTciLCBcCi0gICAgICAgICAgIjEuMTM1MDUsIDEuMzM1NjgsIDMuMTQ4MTUsIDYuMTcxMTMsIDkuMTg5OTYsIDE2LjIyODUsIDIwLjI1MTciLCBcCi0gICAgICAgICAgIjEuMTM0MTEsIDEuMzM1OTcsIDMuMTUyNDUsIDYuMTY5MzQsIDkuMTkwMiwgMTYuMjI4NSwgMjAuMjUxNyIsIFwKLSAgICAgICAgICAiMS4xMzU4MiwgMS4zMzU1NiwgMy4xNDk1MiwgNi4xNzA0NiwgOS4xOTAxNiwgMTYuMjI4NSwgMjAuMjUxNyIsIFwKLSAgICAgICAgICAiMS4xMzM1NiwgMS4zMzU2NSwgMy4xNTI0NCwgNi4xNzc1NiwgOS4xODk1MSwgMTYuMjI4NSwgMjAuMjUxNyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNjk3NjQsIDAuMTk5NDY1LCAwLjQ2NjY2NCwgMC45MTIwNzUsIDEuMzU3OCwgMi4zOTY5OCwgMi45OTEyNiIsIFwKLSAgICAgICAgICAiMC4xODE5ODksIDAuMjExNjk4LCAwLjQ3OTEyNCwgMC45MjQ3MjgsIDEuMzcwMjQsIDIuNDA5NTQsIDMuMDAzNjUiLCBcCi0gICAgICAgICAgIjAuMTk2ODg4LCAwLjIyNjU4OCwgMC40OTEwOTQsIDAuOTM3MzM0LCAxLjM4MjQ5LCAyLjQyMjAzLCAzLjAxNjIyIiwgXAotICAgICAgICAgICIwLjIxMjQ4OCwgMC4yNDE0OTUsIDAuNTA4OTI0LCAwLjk1MDM1LCAxLjM5NjY4LCAyLjQzNTkxLCAzLjAyOTA5IiwgXAotICAgICAgICAgICIwLjIyNjk5OSwgMC4yNTcyMjksIDAuNTI0MDEsIDAuOTYzNTM2LCAxLjQwOTcyLCAyLjQ0OTI1LCAzLjA0MjQ5IiwgXAotICAgICAgICAgICIwLjI1MjEwMSwgMC4yODE3MjQsIDAuNTQ3ODIxLCAwLjk5MzQ0MywgMS40MzEsIDIuNDcwOTcsIDMuMDY0NzEiLCBcCi0gICAgICAgICAgIjAuMjczNTQzLCAwLjMwMzE0OCwgMC41Njg3MjcsIDEuMDE0MywgMS40NTc3OSwgMi40ODkyLCAzLjA4MjY1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMyNjUyOCwgMC4zODU1MTQsIDAuOTE0ODUsIDEuODAxMSwgMi42Nzc1NSwgNC43MzgzOSwgNS45MDc5NSIsIFwKLSAgICAgICAgICAiMC4zMjY1MzgsIDAuMzg0NTY0LCAwLjkxNDAyOSwgMS43OTc4MiwgMi42Nzg0NywgNC43MzUyNywgNS45MDc4OCIsIFwKLSAgICAgICAgICAiMC4zMjY1NDYsIDAuMzg1NTM4LCAwLjkxMzE0NywgMS43OTQ4MSwgMi42ODQ5LCA0LjczNTcsIDUuOTA3NjEiLCBcCi0gICAgICAgICAgIjAuMzI1ODQ0LCAwLjM4NDY1NiwgMC45MTI5NTksIDEuODAwMDcsIDIuNjg0OCwgNC43MzUwOSwgNS45MDUxNCIsIFwKLSAgICAgICAgICAiMC4zMjYwODQsIDAuMzg1NTI5LCAwLjkxMzUzMywgMS44MDA0MiwgMi42NzcyOCwgNC43MzUwNCwgNS45MDc4MyIsIFwKLSAgICAgICAgICAiMC4zMjk5ODIsIDAuMzg3MzAxLCAwLjkxNTE2MiwgMS43OTg1NiwgMi42Nzk1MiwgNC43MzgsIDUuOTA2NzgiLCBcCi0gICAgICAgICAgIjAuMzM0NTU3LCAwLjM5MDM3NCwgMC45MTQ0MjYsIDEuNzk1ODIsIDIuNjc2MDcsIDQuNzM2MywgNS45MDU4MiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkFOIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDE3ODQsIDAuMDAxNzg0LCAwLjAwMTc4NCwgMC4wMDE3ODQsIDAuMDAxNzg0LCAwLjAwMTY1MywgMC4wMDA0NDMiLCBcCi0gICAgICAgICAgIjAuMDAxNzY1LCAwLjAwMTc2NSwgMC4wMDE3NjUsIDAuMDAxNzY2LCAwLjAwMTc2NSwgMC4wMDE2MzUsIDAuMDAwNDIxIiwgXAotICAgICAgICAgICIwLjAwMTc1NSwgMC4wMDE3NTUsIDAuMDAxNzU2LCAwLjAwMTc1NiwgMC4wMDE3NTYsIDAuMDAxNjMzLCAwLjAwMDQwNyIsIFwKLSAgICAgICAgICAiMC4wMDE3NTEsIDAuMDAxNzUxLCAwLjAwMTc1MiwgMC4wMDE3NTEsIDAuMDAxNzUyLCAwLjAwMTYyLCAwLjAwMDM5OCIsIFwKLSAgICAgICAgICAiMC4wMDE3NSwgMC4wMDE3NSwgMC4wMDE3NTEsIDAuMDAxNzUxLCAwLjAwMTc1MSwgMC4wMDE2MjIsIDAuMDAwMzkyIiwgXAotICAgICAgICAgICIwLjAwMTc1LCAwLjAwMTc1LCAwLjAwMTc1MiwgMC4wMDE3NTIsIDAuMDAxNzUyLCAwLjAwMTYxOCwgMC4wMDAzODUiLCBcCi0gICAgICAgICAgIjAuMDAxNzUxLCAwLjAwMTc1MSwgMC4wMDE3NTMsIDAuMDAxNzUzLCAwLjAwMTc1MywgMC4wMDE2MTksIDAuMDAwMzgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDE4OTcsIDAuMDAxODk3LCAwLjAwMTg5NiwgMC4wMDE4OTYsIDAuMDAxODk1LCAwLjAwMTg5NCwgMC4wMDE4OTMiLCBcCi0gICAgICAgICAgIjAuMDAxODgzLCAwLjAwMTg4MywgMC4wMDE4ODIsIDAuMDAxODgyLCAwLjAwMTg4MSwgMC4wMDE4OCwgMC4wMDE4NzkiLCBcCi0gICAgICAgICAgIjAuMDAxODczLCAwLjAwMTg3MywgMC4wMDE4NzIsIDAuMDAxODcyLCAwLjAwMTg3MiwgMC4wMDE4NywgMC4wMDE4NjkiLCBcCi0gICAgICAgICAgIjAuMDAxODY5LCAwLjAwMTg2OSwgMC4wMDE4NjksIDAuMDAxODY5LCAwLjAwMTg2OCwgMC4wMDE4NjYsIDAuMDAxODY2IiwgXAotICAgICAgICAgICIwLjAwMTg2NSwgMC4wMDE4NjUsIDAuMDAxODY1LCAwLjAwMTg2NCwgMC4wMDE4NjQsIDAuMDAxODYzLCAwLjAwMTg2MiIsIFwKLSAgICAgICAgICAiMC4wMDE4NjQsIDAuMDAxODY0LCAwLjAwMTg2NCwgMC4wMDE4NjQsIDAuMDAxODYzLCAwLjAwMTg2MiwgMC4wMDE4NjEiLCBcCi0gICAgICAgICAgIjAuMDAxODY0LCAwLjAwMTg2NCwgMC4wMDE4NjQsIDAuMDAxODY0LCAwLjAwMTg2MywgMC4wMDE4NjEsIDAuMDAxODYxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQk4iOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTY0NCwgMC4wMDE2NDUsIDAuMDAxNjQ1LCAwLjAwMTY0NSwgMC4wMDE2NDUsIDAuMDAxNTE1LCAwLjAwMDMwNSIsIFwKLSAgICAgICAgICAiMC4wMDE2MjYsIDAuMDAxNjI2LCAwLjAwMTYyNiwgMC4wMDE2MjYsIDAuMDAxNjI2LCAwLjAwMTUwOSwgMC4wMDAyODMiLCBcCi0gICAgICAgICAgIjAuMDAxNjE2LCAwLjAwMTYxNiwgMC4wMDE2MTYsIDAuMDAxNjIsIDAuMDAxNjE3LCAwLjAwMTQ4NiwgMC4wMDAyNjgiLCBcCi0gICAgICAgICAgIjAuMDAxNjExLCAwLjAwMTYxMSwgMC4wMDE2MTIsIDAuMDAxNjEzLCAwLjAwMTYxMywgMC4wMDE0OTUsIDAuMDAwMjU5IiwgXAotICAgICAgICAgICIwLjAwMTYwOSwgMC4wMDE2MDksIDAuMDAxNjExLCAwLjAwMTYxMSwgMC4wMDE2MTEsIDAuMDAxNDc5LCAwLjAwMDI1MyIsIFwKLSAgICAgICAgICAiMC4wMDE2MDgsIDAuMDAxNjA5LCAwLjAwMTYxMSwgMC4wMDE2MTIsIDAuMDAxNjEyLCAwLjAwMTQ3OCwgMC4wMDAyNDYiLCBcCi0gICAgICAgICAgIjAuMDAxNjA5LCAwLjAwMTYwOSwgMC4wMDE2MTIsIDAuMDAxNjEyLCAwLjAwMTYxNCwgMC4wMDE0ODcsIDAuMDAwMjQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDE4MDQsIDAuMDAxODA1LCAwLjAwMTgwNCwgMC4wMDE4MDQsIDAuMDAxODA0LCAwLjAwMTgwMywgMC4wMDE4MDIiLCBcCi0gICAgICAgICAgIjAuMDAxNzkxLCAwLjAwMTc5MSwgMC4wMDE3OTEsIDAuMDAxNzkxLCAwLjAwMTc5LCAwLjAwMTc5LCAwLjAwMTc4OSIsIFwKLSAgICAgICAgICAiMC4wMDE3ODIsIDAuMDAxNzgzLCAwLjAwMTc4MywgMC4wMDE3ODIsIDAuMDAxNzgyLCAwLjAwMTc4MSwgMC4wMDE3ODEiLCBcCi0gICAgICAgICAgIjAuMDAxNzc4LCAwLjAwMTc3OCwgMC4wMDE3NzgsIDAuMDAxNzc4LCAwLjAwMTc3NywgMC4wMDE3NzcsIDAuMDAxNzc2IiwgXAotICAgICAgICAgICIwLjAwMTc3NSwgMC4wMDE3NzUsIDAuMDAxNzc1LCAwLjAwMTc3NSwgMC4wMDE3NzUsIDAuMDAxNzc0LCAwLjAwMTc3NCIsIFwKLSAgICAgICAgICAiMC4wMDE3NzMsIDAuMDAxNzc0LCAwLjAwMTc3NSwgMC4wMDE3NzUsIDAuMDAxNzc1LCAwLjAwMTc3NCwgMC4wMDE3NzQiLCBcCi0gICAgICAgICAgIjAuMDAxNzczLCAwLjAwMTc3NCwgMC4wMDE3NzUsIDAuMDAxNzc1LCAwLjAwMTc3NSwgMC4wMDE3NzQsIDAuMDAxNzc0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxNDc2LCAwLjAwMTQ3NiwgMC4wMDE0NzYsIDAuMDAxNDc2LCAwLjAwMTQ3NiwgMC4wMDEzNjMsIDAuMDAwMTQyIiwgXAotICAgICAgICAgICIwLjAwMTQ3NCwgMC4wMDE0NzUsIDAuMDAxNDc1LCAwLjAwMTQ3NSwgMC4wMDE0NzYsIDAuMDAxMzQ2LCAwLjAwMDEzOCIsIFwKLSAgICAgICAgICAiMC4wMDE0NzMsIDAuMDAxNDczLCAwLjAwMTQ3NSwgMC4wMDE0NzQsIDAuMDAxNDc1LCAwLjAwMTM0NSwgMC4wMDAxMzMiLCBcCi0gICAgICAgICAgIjAuMDAxNDcyLCAwLjAwMTQ3MiwgMC4wMDE0NzQsIDAuMDAxNDc1LCAwLjAwMTQ3NSwgMC4wMDEzNDQsIDAuMDAwMTI5IiwgXAotICAgICAgICAgICIwLjAwMTQ3LCAwLjAwMTQ3MSwgMC4wMDE0NzQsIDAuMDAxNDc1LCAwLjAwMTQ3NSwgMC4wMDEzNDQsIDAuMDAwMDYzIiwgXAotICAgICAgICAgICIwLjAwMTQ2OSwgMC4wMDE0NywgMC4wMDE0NzMsIDAuMDAxNDc1LCAwLjAwMTQ3NSwgMC4wMDEzNTIsIDAuMDAwMTE3IiwgXAotICAgICAgICAgICIwLjAwMTQ2NywgMC4wMDE0NjgsIDAuMDAxNDcyLCAwLjAwMTQ3NCwgMC4wMDE0NzUsIDAuMDAxMzQxLCAwLjAwMDExIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwMjA1LCAwLjAwMDIwNSwgMC4wMDAyMDUsIDAuMDAwMjA0LCAwLjAwMDIwNCwgMC4wMDAyMDQsIDAuMDAwMjA0IiwgXAotICAgICAgICAgICIwLjAwMDIwOCwgMC4wMDAyMDgsIDAuMDAwMjA5LCAwLjAwMDIwOSwgMC4wMDAyMDksIDAuMDAwMjA5LCAwLjAwMDIwOCIsIFwKLSAgICAgICAgICAiMC4wMDAyMDgsIDAuMDAwMjA4LCAwLjAwMDIxLCAwLjAwMDIxMSwgMC4wMDAyMTEsIDAuMDAwMjEsIDAuMDAwMjEiLCBcCi0gICAgICAgICAgIjAuMDAwMjA3LCAwLjAwMDIwOCwgMC4wMDAyMSwgMC4wMDAyMTEsIDAuMDAwMjExLCAwLjAwMDIxMSwgMC4wMDAyMTEiLCBcCi0gICAgICAgICAgIjAuMDAwMjA2LCAwLjAwMDIwNywgMC4wMDAyMSwgMC4wMDAyMTEsIDAuMDAwMjExLCAwLjAwMDIxMSwgMC4wMDAyMTEiLCBcCi0gICAgICAgICAgIjAuMDAwMjA0LCAwLjAwMDIwNSwgMC4wMDAyMDksIDAuMDAwMjExLCAwLjAwMDIxMSwgMC4wMDAyMTEsIDAuMDAwMjExIiwgXAotICAgICAgICAgICIwLjAwMDIwMywgMC4wMDAyMDQsIDAuMDAwMjA5LCAwLjAwMDIxMSwgMC4wMDAyMTEsIDAuMDAwMjEyLCAwLjAwMDIxMSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkQiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTMzOCwgMC4wMDEzMzgsIDAuMDAxMzM5LCAwLjAwMTMzOSwgMC4wMDEzMzksIDAuMDAxMjI2LCAwLjAwMDAwNyIsIFwKLSAgICAgICAgICAiMC4wMDEzMzYsIDAuMDAxMzM3LCAwLjAwMTMzOCwgMC4wMDEzMzgsIDAuMDAxMzM4LCAwLjAwMTIwOSwgMC4wMDAwMDMiLCBcCi0gICAgICAgICAgIjAuMDAxMzM0LCAwLjAwMTMzNSwgMC4wMDEzMzcsIDAuMDAxMzM4LCAwLjAwMTMzOCwgMC4wMDEyMDgsIDAuMDAwMDAxIiwgXAotICAgICAgICAgICIwLjAwMTMzMiwgMC4wMDEzMzMsIDAuMDAxMzM2LCAwLjAwMTMzNywgMC4wMDEzMzgsIDAuMDAxMjA3LCAwLjAwMDAwNiIsIFwKLSAgICAgICAgICAiMC4wMDEzMywgMC4wMDEzMzEsIDAuMDAxMzM1LCAwLjAwMTMzNywgMC4wMDEzMzcsIDAuMDAxMjA2LCAwLjAwMDAxMSIsIFwKLSAgICAgICAgICAiMC4wMDEzMjcsIDAuMDAxMzI5LCAwLjAwMTMzNCwgMC4wMDEzMzYsIDAuMDAxMzM4LCAwLjAwMTIwNSwgMC4wMDAwMTgiLCBcCi0gICAgICAgICAgIjAuMDAxMzI1LCAwLjAwMTMyNywgMC4wMDEzMzMsIDAuMDAxMzM2LCAwLjAwMTMzNiwgMC4wMDEyMDQsIDAuMDAwMDI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwMDM0LCAwLjAwMDAzNCwgMC4wMDAwMzUsIDAuMDAwMDM1LCAwLjAwMDAzNSwgMC4wMDAwMzUsIDAuMDAwMDM1IiwgXAotICAgICAgICAgICIwLjAwMDA0MywgMC4wMDAwNDMsIDAuMDAwMDQ1LCAwLjAwMDA0NiwgMC4wMDAwNDYsIDAuMDAwMDQ2LCAwLjAwMDA0NiIsIFwKLSAgICAgICAgICAiMC4wMDAwNDQsIDAuMDAwMDQ1LCAwLjAwMDA0OSwgMC4wMDAwNSwgMC4wMDAwNSwgMC4wMDAwNSwgMC4wMDAwNTEiLCBcCi0gICAgICAgICAgIjAuMDAwMDQzLCAwLjAwMDA0NCwgMC4wMDAwNDgsIDAuMDAwMDUxLCAwLjAwMDA1MSwgMC4wMDAwNTIsIDAuMDAwMDUyIiwgXAotICAgICAgICAgICIwLjAwMDA0MSwgMC4wMDAwNDMsIDAuMDAwMDQ4LCAwLjAwMDA1MSwgMC4wMDAwNTIsIDAuMDAwMDUzLCAwLjAwMDA1MyIsIFwKLSAgICAgICAgICAiMC4wMDAwMzksIDAuMDAwMDQxLCAwLjAwMDA0NywgMC4wMDAwNSwgMC4wMDAwNTIsIDAuMDAwMDUzLCAwLjAwMDA1MyIsIFwKLSAgICAgICAgICAiMC4wMDAwMzcsIDAuMDAwMDM5LCAwLjAwMDA0NywgMC4wMDAwNSwgMC4wMDAwNTEsIDAuMDAwMDUzLCAwLjAwMDA1MyIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogTk9SNFgyICoKLSAqIC0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoTk9SNFgyKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMTU4MTY5OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE4NjE1NzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE4NDU1MzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE4NjE1NzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA1MjMsIDAuMDAwNTQsIDAuMDAwNTUsIDAuMDAwNTU2LCAwLjAwMDU2LCAwLjAwMDU2NCwgMC4wMDA1NjciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDExMTksIDAuMDAxMTIsIDAuMDAxMTIsIDAuMDAxMTIsIDAuMDAxMTIsIDAuMDAxMTIsIDAuMDAxMTIxIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE3OTUwMTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE3ODEyMjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE3OTUwMTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA1MjEsIDAuMDAwNTM2LCAwLjAwMDU1LCAwLjAwMDU1OCwgMC4wMDA1NjMsIDAuMDAwNTY5LCAwLjAwMDU3MiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDc4LCAwLjAwMDc4LCAwLjAwMDc4MSwgMC4wMDA3OCwgMC4wMDA3ODEsIDAuMDAwNzgxLCAwLjAwMDc4MSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQykgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNjgwNDU7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNjY4MTk7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNjgwNDU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNTMyLCAwLjAwMDU2MSwgMC4wMDA1NzUsIDAuMDAwNTgxLCAwLjAwMDU4NCwgMC4wMDA1ODcsIDAuMDAwNTg5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNjI3LCAwLjAwMDYyOCwgMC4wMDA2MjgsIDAuMDAwNjI4LCAwLjAwMDYyOCwgMC4wMDA2MjgsIDAuMDAwNjI4Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihEKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE1MjEwNTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE1MjEwNTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE1MjA5NDsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxODMsIDAuMDAwMTgzLCAwLjAwMDE4MywgMC4wMDAxODMsIDAuMDAwMTgzLCAwLjAwMDE4MywgMC4wMDAxODMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA3MzIsIDAuMDAwNzMyLCAwLjAwMDczMiwgMC4wMDA3MzIsIDAuMDAwNzMyLCAwLjAwMDczMiwgMC4wMDA3MzIiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4wNzI3NTsKLSAgICBmdW5jdGlvbiA6ICIoISgoKEErQikrQykrRCkpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMzg2MDUsIDEuMDAwNjksIDEuNjEwMzQsIDIuMzcyNCwgMy4xMzM4OSwgMy44OTQ5MywgNC42NTYyIiwgXAotICAgICAgICAgICIwLjI0OTgxMywgMS4wMTIxOSwgMS42MjE4NywgMi4zODM1NSwgMy4xNDQ4LCAzLjkwNjI1LCA0LjY2Nzg1IiwgXAotICAgICAgICAgICIwLjI2MjI4NiwgMS4wMjUyOSwgMS42MzUxNiwgMi4zOTU4MiwgMy4xNTc2LCAzLjkxOTA0LCA0LjY4MDQ0IiwgXAotICAgICAgICAgICIwLjI3Mzg4MywgMS4wMzY4LCAxLjY0Njc2LCAyLjQwODYsIDMuMTY5NiwgMy45MzA4NiwgNC42OTIzMyIsIFwKLSAgICAgICAgICAiMC4yODQ3NTMsIDEuMDQ3NjcsIDEuNjU4MDMsIDIuNDE4ODMsIDMuMTgwNTMsIDMuOTQxOTYsIDQuNzAzNjIiLCBcCi0gICAgICAgICAgIjAuMzAxMjksIDEuMDY0NTUsIDEuNjc0MiwgMi40MzYyOSwgMy4xOTc4OCwgMy45NTg3LCA0LjcyMDI0IiwgXAotICAgICAgICAgICIwLjMxNTIwMiwgMS4wNzgzMiwgMS42ODgxNiwgMi40NTA2LCAzLjIxMTIxLCAzLjk3MjkyLCA0LjczNDQ2Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjM4NzIyNSwgMS44NDA2NywgMy4wMDM1MywgNC40NTEzMSwgNS45MDIyNiwgNy4zNTIxOCwgOC44MDI4IiwgXAotICAgICAgICAgICIwLjM4NzIwMSwgMS44MzkxOSwgMy4wMDA1NywgNC40NjUxMiwgNS45MDg2NSwgNy4zNTYyNSwgOC44MDQ3MiIsIFwKLSAgICAgICAgICAiMC4zODcyMjUsIDEuODM4MzUsIDIuOTk5NywgNC40NTcxMSwgNS45MDgxLCA3LjM1NTg4LCA4LjgwNDUzIiwgXAotICAgICAgICAgICIwLjM4NzIyOCwgMS44NDA4NywgMy4wMDQwNCwgNC40NjYwNiwgNS45MDQxOCwgNy4zNTU3OSwgOC44MDQ2MSIsIFwKLSAgICAgICAgICAiMC4zODcwOTMsIDEuODM5MTksIDMuMDAwMTIsIDQuNDYxNDEsIDUuOTA1NDQsIDcuMzU1NjEsIDguODA0NTciLCBcCi0gICAgICAgICAgIjAuMzg3MzYzLCAxLjg0MDk1LCAzLjAwMzU2LCA0LjQ1MTA4LCA1LjkxMDY1LCA3LjM1NjA5LCA4LjgwMjE4IiwgXAotICAgICAgICAgICIwLjM4ODY1MywgMS44MzkyLCAzLjAwMzQ5LCA0LjQ2NjQ0LCA1LjkwODg0LCA3LjM1NjQyLCA4LjgwMjAzIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2OTA2OCwgMC4yNzgzNjMsIDAuNDQzNjg2LCAwLjY0OTg4NCwgMC44NTU5NDQsIDEuMDYxODIsIDEuMjY4MDMiLCBcCi0gICAgICAgICAgIjAuMDgwNTU2LCAwLjI4OTgsIDAuNDU1MTY2LCAwLjY2MTM4MSwgMC44NjczMjgsIDEuMDczMzcsIDEuMjc5MzEiLCBcCi0gICAgICAgICAgIjAuMDk1MjI5LCAwLjMwNDM0MywgMC40Njk2NSwgMC42NzU5NzksIDAuODgyMDgzLCAxLjA4Nzk0LCAxLjI5Mzk3IiwgXAotICAgICAgICAgICIwLjExMDU2OSwgMC4zMTg5NzgsIDAuNDg0Mjc5LCAwLjY4OTYzMSwgMC44OTIyOTMsIDEuMDk4MzgsIDEuMzA0MjUiLCBcCi0gICAgICAgICAgIjAuMTI1NTc0LCAwLjMzMzY0MSwgMC40OTg5MTksIDAuNzA1MTQ3LCAwLjkxMDIyLCAxLjExMTY3LCAxLjMxNzY1IiwgXAotICAgICAgICAgICIwLjE0OTc4NiwgMC4zNTc1NjMsIDAuNTIzNzg2LCAwLjczMDAwOCwgMC45MzYxOSwgMS4xNDIwOSwgMS4zNDgyIiwgXAotICAgICAgICAgICIwLjE3MTQwNSwgMC4zNzk4NDQsIDAuNTQ0ODI5LCAwLjc1MDgzNywgMC45NTY4NjUsIDEuMTYyNjgsIDEuMzY4NDEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTIwMDY2LCAwLjUyODMxNCwgMC44NTQ3ODksIDEuMjYyODEsIDEuNjcwOTEsIDIuMDc4NDksIDIuNDg3NzciLCBcCi0gICAgICAgICAgIjAuMTE5NTQ1LCAwLjUyODI1MiwgMC44NTQ1NDIsIDEuMjYyNzIsIDEuNjcwNTYsIDIuMDc4OTQsIDIuNDg2NzIiLCBcCi0gICAgICAgICAgIjAuMTE5OTc2LCAwLjUyODE3LCAwLjg1NDg1NSwgMS4yNjMyNCwgMS42NzE0MiwgMi4wNzg1MSwgMi40ODc2MiIsIFwKLSAgICAgICAgICAiMC4xMjI5MDksIDAuNTI4MTgzLCAwLjg1NDY1OCwgMS4yNjMzLCAxLjY3MDkyLCAyLjA3OTYyLCAyLjQ4NzUxIiwgXAotICAgICAgICAgICIwLjEyNzUxMSwgMC41MjgxMzMsIDAuODU0NTE1LCAxLjI2MzE5LCAxLjY3MTM5LCAyLjA3OTU4LCAyLjQ4NzY2IiwgXAotICAgICAgICAgICIwLjEzNzE2MSwgMC41MjgxNywgMC44NTQ1NTUsIDEuMjYzMTMsIDEuNjcxNDUsIDIuMDc4ODgsIDIuNDg3NjYiLCBcCi0gICAgICAgICAgIjAuMTQ2NjQ2LCAwLjUyOTM3MiwgMC44NTQ2MDIsIDEuMjYzMTksIDEuNjcxNDIsIDIuMDc5NTUsIDIuNDg3NyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMzI4NDgsIDAuOTk0ODU1LCAxLjYwNDQsIDIuMzY2ODYsIDMuMTI4MTEsIDMuODg5MTMsIDQuNjUwNSIsIFwKLSAgICAgICAgICAiMC4yNDMxMjksIDEuMDA1NzMsIDEuNjE1NjUsIDIuMzc2MzgsIDMuMTM4MTksIDMuODk5NTcsIDQuNjYxMTciLCBcCi0gICAgICAgICAgIjAuMjU1MzEyLCAxLjAxNzksIDEuNjI3NDgsIDIuMzkwMTEsIDMuMTUxMjMsIDMuOTEyMjcsIDQuNjczNzEiLCBcCi0gICAgICAgICAgIjAuMjY2OTE0LCAxLjAyOTc3LCAxLjYzOTY1LCAyLjQwMTE0LCAzLjE2Mjc2LCAzLjkyNDE1LCA0LjY4NTM2IiwgXAotICAgICAgICAgICIwLjI3Nzg4MSwgMS4wNDExLCAxLjY1MTAyLCAyLjQxMjY3LCAzLjE3Mzg0LCAzLjkzNTA5LCA0LjY5NjU2IiwgXAotICAgICAgICAgICIwLjI5NDkxNywgMS4wNTc4OCwgMS42NjczNywgMi40Mjk3MiwgMy4xOTA4MiwgMy45NTIzNiwgNC43MTM5OCIsIFwKLSAgICAgICAgICAiMC4zMDk0MjksIDEuMDcyNDUsIDEuNjgxOTMsIDIuNDQ0MSwgMy4yMDU1LCAzLjk2Njk4LCA0LjcyODY0Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjM4NzI0OSwgMS44Mzg3OSwgMy4wMDMyMywgNC40NTExNiwgNS45MTA2MywgNy4zNTY1NiwgOC44MDIyNiIsIFwKLSAgICAgICAgICAiMC4zODcyMzUsIDEuODQwOTksIDMuMDA0MTgsIDQuNDU2NzEsIDUuOTA1NTQsIDcuMzU1NzIsIDguODAxNDYiLCBcCi0gICAgICAgICAgIjAuMzg3MTkxLCAxLjg0MDU4LCAzLjAwMzIxLCA0LjQ2NjYsIDUuOTEwNTYsIDcuMzU2NTUsIDguODAyNTMiLCBcCi0gICAgICAgICAgIjAuMzg3MjY3LCAxLjg0MDgyLCAzLjAwMzg2LCA0LjQ2NTE1LCA1LjkwMTc1LCA3LjM1Mjk0LCA4LjgwMjg4IiwgXAotICAgICAgICAgICIwLjM4NzIxMiwgMS44NDEwNiwgMy4wMDQxNCwgNC40NjU4LCA1LjkwMzg3LCA3LjM1NTcsIDguODAyOTQiLCBcCi0gICAgICAgICAgIjAuMzg3NzE4LCAxLjg0MDU1LCAzLjAwMjk2LCA0LjQ2NTU4LCA1LjkwOTcxLCA3LjM1NjMyLCA4LjgwNDU3IiwgXAotICAgICAgICAgICIwLjM4OTY2NSwgMS44NDA1MiwgMy4wMDQ3MSwgNC40NjQ4OSwgNS45MDgxOSwgNy4zNTU2NiwgOC44MDIxNCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjY2MzIsIDAuMjc0MTksIDAuNDM5MTgzLCAwLjY0NTIzNiwgMC44NTExMjUsIDEuMDU3MzQsIDEuMjYyOTkiLCBcCi0gICAgICAgICAgIjAuMDc4MjkzLCAwLjI4NTQ0OSwgMC40NTA0MDQsIDAuNjU2NDAzLCAwLjg2MjM4NCwgMS4wNjgzMiwgMS4yNzM5MyIsIFwKLSAgICAgICAgICAiMC4wOTMzMDMsIDAuMzAwNDgsIDAuNDY1NDY0LCAwLjY3MTQ1NiwgMC44Nzc0MzMsIDEuMDgzNDMsIDEuMjg5NTIiLCBcCi0gICAgICAgICAgIjAuMTA4MjY3LCAwLjMxNTM2NywgMC40ODAyMDEsIDAuNjg2MDQ4LCAwLjg5MjE4NSwgMS4wOTc5NCwgMS4zMDM1OSIsIFwKLSAgICAgICAgICAiMC4xMjMzOTIsIDAuMzMwMjkxLCAwLjQ5NDk4MSwgMC43MDEwMzMsIDAuOTA3MTE0LCAxLjExMjg3LCAxLjMxODQ3IiwgXAotICAgICAgICAgICIwLjE0NzYzLCAwLjM1Mzc1MywgMC41MTg0NDYsIDAuNzI0MzE5LCAwLjkyNjEsIDEuMTMxNzksIDEuMzM3NDgiLCBcCi0gICAgICAgICAgIjAuMTY4NzU1LCAwLjM3NTMyOSwgMC41NDA2MjEsIDAuNzQ2NDgyLCAwLjk1MjMxMSwgMS4xNTc3NSwgMS4zNjM3MiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTQ4MDIsIDAuNTIzMDAxLCAwLjg0OTM5MSwgMS4yNTgwMiwgMS42NjUzOSwgMi4wNzQwMywgMi40ODIwOCIsIFwKLSAgICAgICAgICAiMC4xMTQ2MzEsIDAuNTIzMDIyLCAwLjg0OTMyMiwgMS4yNTc2OCwgMS42NjU0LCAyLjA3NDMsIDIuNDgxNjYiLCBcCi0gICAgICAgICAgIjAuMTE1MjQsIDAuNTIyOTk0LCAwLjg0OTYxOSwgMS4yNTc2NywgMS42NjU4NSwgMi4wNzQzNSwgMi40ODE5OCIsIFwKLSAgICAgICAgICAiMC4xMTg0MTMsIDAuNTIzMTI2LCAwLjg0OTk1MSwgMS4yNTgwMywgMS42NjYwNywgMi4wNzQzLCAyLjQ4MjI0IiwgXAotICAgICAgICAgICIwLjEyMzEwNCwgMC41MjMxMTgsIDAuODQ5NTIzLCAxLjI1ODA0LCAxLjY2NTgyLCAyLjA3NDI4LCAyLjQ4MTYzIiwgXAotICAgICAgICAgICIwLjEzMjkyNiwgMC41MjMxNzUsIDAuODQ5ODkxLCAxLjI1NzY1LCAxLjY2NjIzLCAyLjA3Mzc4LCAyLjQ4MTYxIiwgXAotICAgICAgICAgICIwLjE0MzAwNCwgMC41MjQ2NTcsIDAuODQ5ODM4LCAxLjI1Nzc3LCAxLjY2NTc4LCAyLjA3MzQ2LCAyLjQ4MTc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIxODc1MSwgMC45ODA2MTcsIDEuNTkwMzIsIDIuMzUyNzMsIDMuMTEzMzcsIDMuODc1MDMsIDQuNjM2NTQiLCBcCi0gICAgICAgICAgIjAuMjI4NDA0LCAwLjk5MTExMSwgMS42MDA5OCwgMi4zNjI2NywgMy4xMjM0MywgMy44ODQ4NiwgNC42NDYxNyIsIFwKLSAgICAgICAgICAiMC4yNDAyNCwgMS4wMDI4MSwgMS42MTI0NCwgMi4zNzQ4OSwgMy4xMzYyNCwgMy44OTY5NiwgNC42NTg1NiIsIFwKLSAgICAgICAgICAiMC4yNTE4NjksIDEuMDE0NzIsIDEuNjI0NzYsIDIuMzg1ODQsIDMuMTQ3NDYsIDMuOTA4ODMsIDQuNjcwNDciLCBcCi0gICAgICAgICAgIjAuMjYzMDQzLCAxLjAyNjA1LCAxLjYzNTI5LCAyLjM5NzY0LCAzLjE1ODkxLCAzLjkyMDMzLCA0LjY4MTkzIiwgXAotICAgICAgICAgICIwLjI4MTAyNCwgMS4wNDM5NCwgMS42NTM1MywgMi40MTYzNSwgMy4xNzcwNCwgMy45Mzg2MiwgNC43MDAxMyIsIFwKLSAgICAgICAgICAiMC4yOTY3NDYsIDEuMDU5NzcsIDEuNjcwMTcsIDIuNDMxNzgsIDMuMTkzNTksIDMuOTU0NTMsIDQuNzE2MTciKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzg3MTg2LCAxLjg0MDI1LCAzLjAwMzE4LCA0LjQ2NjI2LCA1LjkwODM5LCA3LjM1NjQxLCA4LjgwMjEiLCBcCi0gICAgICAgICAgIjAuMzg3MTg4LCAxLjg0MTA5LCAzLjAwMDA4LCA0LjQ2NjA0LCA1LjkwNzgsIDcuMzU1NjgsIDguODAzMDYiLCBcCi0gICAgICAgICAgIjAuMzg3MTc2LCAxLjg0MDU2LCAzLjAwMzI3LCA0LjQ1MTkxLCA1LjkxMDY0LCA3LjM1NjIyLCA4LjgwMjI1IiwgXAotICAgICAgICAgICIwLjM4NzI1NiwgMS44NDA4MiwgMy4wMDQwNywgNC40NTM3LCA1LjkwNTYsIDcuMzU1NzIsIDguODA0NjciLCBcCi0gICAgICAgICAgIjAuMzg3MjMzLCAxLjg0MDc2LCAzLjAwMjkxLCA0LjQ2NTUsIDUuOTAzOTMsIDcuMzU2MzUsIDguODA0NjciLCBcCi0gICAgICAgICAgIjAuMzg4MDg0LCAxLjg0MDQyLCAzLjAwMjk2LCA0LjQ1MTM4LCA1LjkwNDQ0LCA3LjM1NjQ0LCA4LjgwMjI0IiwgXAotICAgICAgICAgICIwLjM5MTIzNCwgMS44NDA0LCAzLjAwMzk5LCA0LjQ1MzA3LCA1LjkwMjE5LCA3LjM1NjI4LCA4LjgwNDU0Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2Mjc2MSwgMC4yNjkxOTgsIDAuNDMzOTg3LCAwLjY0MDAyNiwgMC44NDU2MjYsIDEuMDUxODcsIDEuMjU3NDEiLCBcCi0gICAgICAgICAgIjAuMDc0NjU2LCAwLjI4MDU1MywgMC40NDUzMywgMC42NTExODQsIDAuODU2OTgxLCAxLjA2Mjc2LCAxLjI2ODg1IiwgXAotICAgICAgICAgICIwLjA4OTY5MSwgMC4yOTU4MTMsIDAuNDYwNTQsIDAuNjY2MzE0LCAwLjg3MjI2NCwgMS4wNzg0MywgMS4yODQwOSIsIFwKLSAgICAgICAgICAiMC4xMDQ2NiwgMC4zMTA3MDcsIDAuNDc1MjE0LCAwLjY4MTAxMSwgMC44ODcyMjQsIDEuMDkzMDMsIDEuMjk4OTQiLCBcCi0gICAgICAgICAgIjAuMTE5ODY4LCAwLjMyNTY0OSwgMC40OTAwNDgsIDAuNjk1ODcyLCAwLjkwMjA4OCwgMS4xMDc0NiwgMS4zMTM0OCIsIFwKLSAgICAgICAgICAiMC4xNDM1NDQsIDAuMzQ5MzIyLCAwLjUxNDc1NiwgMC43MjA1MTEsIDAuOTI2MzQ2LCAxLjEzMjMyLCAxLjMzODQ1IiwgXAotICAgICAgICAgICIwLjE2NDY0MiwgMC4zNzA2OTksIDAuNTM2MDcyLCAwLjc0MTczNiwgMC45NDc0ODIsIDEuMTUzMTIsIDEuMzU4NjciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTA5MzczLCAwLjUxNzcwNCwgMC44NDQzNzksIDEuMjUyMiwgMS42NjAzNCwgMi4wNjgzMywgMi40NzY0MiIsIFwKLSAgICAgICAgICAiMC4xMDkzNjIsIDAuNTE3NTMsIDAuODQ0MTA5LCAxLjI1MTg4LCAxLjY2MDU0LCAyLjA2NzkzLCAyLjQ3Njg5IiwgXAotICAgICAgICAgICIwLjExMDI2NCwgMC41MTc1NTMsIDAuODQ0MTksIDEuMjUxOTUsIDEuNjYwNTgsIDIuMDY4MzEsIDIuNDc2MjUiLCBcCi0gICAgICAgICAgIjAuMTEzNzUsIDAuNTE3ODEzLCAwLjg0NDE3MiwgMS4yNTIzNCwgMS42NjA2MywgMi4wNjgzNSwgMi40NzY1NiIsIFwKLSAgICAgICAgICAiMC4xMTg3MjcsIDAuNTE3ODAzLCAwLjg0NDEyMiwgMS4yNTIyMiwgMS42NjAzNSwgMi4wNjgyOCwgMi40NzY4OCIsIFwKLSAgICAgICAgICAiMC4xMjk5MywgMC41MTc3MDEsIDAuODQ0MzYzLCAxLjI1MjM4LCAxLjY2MDEzLCAyLjA2ODY4LCAyLjQ3NjI5IiwgXAotICAgICAgICAgICIwLjE0MDEyMywgMC41MTk0MzUsIDAuODQ0MzE4LCAxLjI1MjE4LCAxLjY2MDI4LCAyLjA2ODMyLCAyLjQ3NjI0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkQiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE5NDI4LCAwLjk1NjI4NywgMS41NjYwNCwgMi4zMjc0OCwgMy4wODkwNywgMy44NTA0OSwgNC42MTIxMyIsIFwKLSAgICAgICAgICAiMC4yMDMxMjUsIDAuOTY1OTI2LCAxLjU3NTQ5LCAyLjMzNzUzLCAzLjA5OTA5LCAzLjg1OTg2LCA0LjYyMTM5IiwgXAotICAgICAgICAgICIwLjIxNDIyNSwgMC45NzcwMjEsIDEuNTg2NSwgMi4zNDg4NywgMy4xMSwgMy44NzE0OCwgNC42MzI4MSIsIFwKLSAgICAgICAgICAiMC4yMjU4NjUsIDAuOTg5MTQsIDEuNTk4NDcsIDIuMzYxMDMsIDMuMTIyMjEsIDMuODgzNjgsIDQuNjQ0NzkiLCBcCi0gICAgICAgICAgIjAuMjM3MDI2LCAxLjAwMDE2LCAxLjYxMDYzLCAyLjM3MjMsIDMuMTMzNTgsIDMuODk0ODgsIDQuNjU2NDgiLCBcCi0gICAgICAgICAgIjAuMjU1MzU1LCAxLjAxOTEzLCAxLjYyODcsIDIuMzkwNTgsIDMuMTUxOTIsIDMuOTEzNjgsIDQuNjc1MTMiLCBcCi0gICAgICAgICAgIjAuMjcxNjYzLCAxLjAzNDg1LCAxLjY0NTQyLCAyLjQwNzQsIDMuMTY4MjYsIDMuOTI5NywgNC42OTEwNiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zODc0ODMsIDEuODQwMjIsIDMuMDAwODcsIDQuNDY0MzcsIDUuOTA3NDMsIDcuMzU1NTEsIDguODA0NTYiLCBcCi0gICAgICAgICAgIjAuMzg2OTcyLCAxLjg0MDkxLCAzLjAwMzU4LCA0LjQ1MSwgNS45MTA2NSwgNy4zNTU5MywgOC44MDIyNyIsIFwKLSAgICAgICAgICAiMC4zODY4NjcsIDEuODQyNjIsIDMuMDA2NDUsIDQuNDY1NDYsIDUuOTA5NjEsIDcuMzU2MzYsIDguODAzMjEiLCBcCi0gICAgICAgICAgIjAuMzg1MjUzLCAxLjg0MDY3LCAzLjAwMjcyLCA0LjQ1MjU0LCA1LjkxMDIsIDcuMzU2NiwgOC44MDMyMyIsIFwKLSAgICAgICAgICAiMC4zODU5NjMsIDEuODQwMDEsIDMuMDAzOTYsIDQuNDUyOTcsIDUuOTEwMTUsIDcuMzU1NzIsIDguODA0NTgiLCBcCi0gICAgICAgICAgIjAuMzg5MTExLCAxLjg0MDkzLCAzLjAwMDkxLCA0LjQ1NDIsIDUuOTA1MjksIDcuMzU2NTEsIDguODAyMTEiLCBcCi0gICAgICAgICAgIjAuMzk0MTk1LCAxLjg0MDI3LCAzLjAwNDA4LCA0LjQ2NjI5LCA1LjkxMDA1LCA3LjM1NjM5LCA4LjgwNDM0Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1ODU1MywgMC4yNjc5ODIsIDAuNDM1NjExLCAwLjY0NDk4OCwgMC44NTQ0MDIsIDEuMDYzNzEsIDEuMjczMTciLCBcCi0gICAgICAgICAgIjAuMDcwNDYxLCAwLjI4MDA2NiwgMC40NDc2MDYsIDAuNjU3MDMyLCAwLjg2NjI0NSwgMS4wNzU4NiwgMS4yODQ5OCIsIFwKLSAgICAgICAgICAiMC4wODU1MDUsIDAuMjkzNDg2LCAwLjQ2MTE1MywgMC42NzA1MTgsIDAuODc5ODQzLCAxLjA4OTI2LCAxLjI5ODYxIiwgXAotICAgICAgICAgICIwLjEwMDQwMSwgMC4zMDkzODQsIDAuNDc2OTE2LCAwLjY4NTU3NiwgMC44OTE2MTQsIDEuMTAxMDQsIDEuMzEwNzkiLCBcCi0gICAgICAgICAgIjAuMTE1NDk4LCAwLjMyNDEwOSwgMC40OTE3NjYsIDAuNzAxMjUxLCAwLjkxMDc0LCAxLjEyMDAzLCAxLjMyOTUzIiwgXAotICAgICAgICAgICIwLjEzOTc5MywgMC4zNDc4MjQsIDAuNTE2Mzc3LCAwLjcyNjA3NSwgMC45MzUyMjIsIDEuMTQ0NzQsIDEuMzU0MjIiLCBcCi0gICAgICAgICAgIjAuMTU5Njg2LCAwLjM2OTY1NywgMC41MzczOTMsIDAuNzQ1MjM0LCAwLjk1NTg5NCwgMS4xNjM5MiwgMS4zNzMzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwNTQ0MSwgMC41MjI3OCwgMC44NTM3MTEsIDEuMjY4MjUsIDEuNjgzNiwgMi4xMDYzNiwgMi41MTQ4NiIsIFwKLSAgICAgICAgICAiMC4xMDU4MjEsIDAuNTIwNzExLCAwLjg1MzI5NiwgMS4yNjg0NiwgMS42OTAxLCAyLjA5OTA2LCAyLjUyMzk5IiwgXAotICAgICAgICAgICIwLjEwNjg3NywgMC41MjIyMzcsIDAuODU0Nzc2LCAxLjI2ODI0LCAxLjY4NTk3LCAyLjEwMDYsIDIuNTE5ODkiLCBcCi0gICAgICAgICAgIjAuMTExMDc4LCAwLjUyMjc2NSwgMC44NTU3OTEsIDEuMjY4NTMsIDEuNjg5OCwgMi4wOTkwNywgMi41MjA5MSIsIFwKLSAgICAgICAgICAiMC4xMTY0NzUsIDAuNTIyNzM3LCAwLjg1NDM0OCwgMS4yNzA4MSwgMS42ODQ5NSwgMi4xMDY4NywgMi41MTkiLCBcCi0gICAgICAgICAgIjAuMTI3NDAyLCAwLjUyMTUyNSwgMC44NTYzMzIsIDEuMjY5MDIsIDEuNjg0NDUsIDIuMTA3MDcsIDIuNTE4OSIsIFwKLSAgICAgICAgICAiMC4xMzgzNjMsIDAuNTIyNzMxLCAwLjg1NjMyMSwgMS4yNzA1NSwgMS42ODM2OSwgMi4xMDY4OCwgMi41MTQ0NSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDkwMSwgMC4wMDQ5MDQsIDAuMDA0OTA0LCAwLjAwNDkwNCwgMC4wMDQ5MDMsIDAuMDA0OTA0LCAwLjAwNDkwNCIsIFwKLSAgICAgICAgICAiMC4wMDQ4ODgsIDAuMDA0OTAxLCAwLjAwNDkwMywgMC4wMDQ5MDMsIDAuMDA0OTAzLCAwLjAwNDkwNCwgMC4wMDQ5MDQiLCBcCi0gICAgICAgICAgIjAuMDA0ODc1LCAwLjAwNDg5OCwgMC4wMDQ5MDEsIDAuMDA0OTAzLCAwLjAwNDkwMywgMC4wMDQ5MDMsIDAuMDA0OTAzIiwgXAotICAgICAgICAgICIwLjAwNDg2NSwgMC4wMDQ4OTUsIDAuMDA0OSwgMC4wMDQ4OTksIDAuMDA0OTAzLCAwLjAwNDkwMSwgMC4wMDQ5MDMiLCBcCi0gICAgICAgICAgIjAuMDA0ODU3LCAwLjAwNDg5MSwgMC4wMDQ4OTcsIDAuMDA0ODk5LCAwLjAwNDkwMiwgMC4wMDQ5MDEsIDAuMDA0OTAyIiwgXAotICAgICAgICAgICIwLjAwNDg0OCwgMC4wMDQ4ODYsIDAuMDA0ODkzLCAwLjAwNDg5NywgMC4wMDQ4OTksIDAuMDA0OSwgMC4wMDQ4OTkiLCBcCi0gICAgICAgICAgIjAuMDA0ODQsIDAuMDA0ODgxLCAwLjAwNDg5LCAwLjAwNDg5NSwgMC4wMDQ4OTcsIDAuMDA0OSwgMC4wMDQ4OTgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDIwNTQsIDAuMDAyMDUyLCAwLjAwMjA1MywgMC4wMDIwNTEsIDAuMDAyMDUsIDAuMDAyMDQ5LCAwLjAwMjA0OSIsIFwKLSAgICAgICAgICAiMC4wMDIwMDgsIDAuMDAyMDA5LCAwLjAwMjAwOCwgMC4wMDIwMDgsIDAuMDAyMDA5LCAwLjAwMjAwNiwgMC4wMDIwMDYiLCBcCi0gICAgICAgICAgIjAuMDAxOTksIDAuMDAxOTkzLCAwLjAwMTk5MywgMC4wMDE5OTMsIDAuMDAxOTkzLCAwLjAwMTk5LCAwLjAwMTk5MSIsIFwKLSAgICAgICAgICAiMC4wMDE5OCwgMC4wMDE5ODYsIDAuMDAxOTg3LCAwLjAwMTk4NCwgMC4wMDE5ODEsIDAuMDAxOTgsIDAuMDAxOTgiLCBcCi0gICAgICAgICAgIjAuMDAxOTczLCAwLjAwMTk4MiwgMC4wMDE5ODIsIDAuMDAxOTgxLCAwLjAwMTk4MSwgMC4wMDE5NzcsIDAuMDAxOTc2IiwgXAotICAgICAgICAgICIwLjAwMTk2NiwgMC4wMDE5NzIsIDAuMDAxOTgsIDAuMDAxOTgxLCAwLjAwMTk4LCAwLjAwMTk4LCAwLjAwMTk3OSIsIFwKLSAgICAgICAgICAiMC4wMDE5NjIsIDAuMDAxOTc3LCAwLjAwMTk3OCwgMC4wMDE5OCwgMC4wMDE5NzksIDAuMDAxOTc4LCAwLjAwMTk3NyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDQyMywgMC4wMDQ0MjYsIDAuMDA0NDI2LCAwLjAwNDQzMiwgMC4wMDQ0MjYsIDAuMDA0NDI3LCAwLjAwNDQyNiIsIFwKLSAgICAgICAgICAiMC4wMDQ0MSwgMC4wMDQ0MjMsIDAuMDA0NDI0LCAwLjAwNDQyNSwgMC4wMDQ0MjQsIDAuMDA0NDI0LCAwLjAwNDQyOCIsIFwKLSAgICAgICAgICAiMC4wMDQzOTcsIDAuMDA0NDIsIDAuMDA0NDIzLCAwLjAwNDQyNCwgMC4wMDQ0MjQsIDAuMDA0NDI2LCAwLjAwNDQyNiIsIFwKLSAgICAgICAgICAiMC4wMDQzODYsIDAuMDA0NDE2LCAwLjAwNDQyLCAwLjAwNDQyMiwgMC4wMDQ0MjMsIDAuMDA0NDI2LCAwLjAwNDQyNCIsIFwKLSAgICAgICAgICAiMC4wMDQzNzgsIDAuMDA0NDEyLCAwLjAwNDQxOCwgMC4wMDQ0MjEsIDAuMDA0NDIxLCAwLjAwNDQyMywgMC4wMDQ0MjMiLCBcCi0gICAgICAgICAgIjAuMDA0MzY5LCAwLjAwNDQwNywgMC4wMDQ0MTMsIDAuMDA0NDE3LCAwLjAwNDQxOCwgMC4wMDQ0MjEsIDAuMDA0NDIzIiwgXAotICAgICAgICAgICIwLjAwNDM2MywgMC4wMDQ0MDEsIDAuMDA0NDA5LCAwLjAwNDQxNCwgMC4wMDQ0MTYsIDAuMDA0NDE4LCAwLjAwNDQyMSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTUwNiwgMC4wMDE1MDYsIDAuMDAxNTA1LCAwLjAwMTUwNCwgMC4wMDE1MDQsIDAuMDAxNTAzLCAwLjAwMTUwMiIsIFwKLSAgICAgICAgICAiMC4wMDE0ODMsIDAuMDAxNDg1LCAwLjAwMTQ4NywgMC4wMDE0ODUsIDAuMDAxNDg1LCAwLjAwMTQ4NCwgMC4wMDE0ODMiLCBcCi0gICAgICAgICAgIjAuMDAxNDY2LCAwLjAwMTQ3NywgMC4wMDE0NzYsIDAuMDAxNDc3LCAwLjAwMTQ3NywgMC4wMDE0NzYsIDAuMDAxNDc2IiwgXAotICAgICAgICAgICIwLjAwMTQ1MiwgMC4wMDE0NzEsIDAuMDAxNDcyLCAwLjAwMTQ3MywgMC4wMDE0NzMsIDAuMDAxNDczLCAwLjAwMTQ3MyIsIFwKLSAgICAgICAgICAiMC4wMDE0NDMsIDAuMDAxNDY3LCAwLjAwMTQ2OSwgMC4wMDE0NzEsIDAuMDAxNDcxLCAwLjAwMTQ3MSwgMC4wMDE0NzEiLCBcCi0gICAgICAgICAgIjAuMDAxNDI5LCAwLjAwMTQ2MSwgMC4wMDE0NjUsIDAuMDAxNDY3LCAwLjAwMTQ2NywgMC4wMDE0NjcsIDAuMDAxNDY3IiwgXAotICAgICAgICAgICIwLjAwMTQyNSwgMC4wMDE0NiwgMC4wMDE0NjQsIDAuMDAxNDY2LCAwLjAwMTQ2OCwgMC4wMDE0NjcsIDAuMDAxNDY3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzOTI2LCAwLjAwMzkyOCwgMC4wMDM5MjksIDAuMDAzOTI5LCAwLjAwMzkyOSwgMC4wMDM5MjQsIDAuMDAzOTI3IiwgXAotICAgICAgICAgICIwLjAwMzkxMiwgMC4wMDM5MjUsIDAuMDAzOTI3LCAwLjAwMzkyOCwgMC4wMDM5MjcsIDAuMDAzOTI4LCAwLjAwMzkyOCIsIFwKLSAgICAgICAgICAiMC4wMDM4OTksIDAuMDAzOTIyLCAwLjAwMzkyNSwgMC4wMDM5MjMsIDAuMDAzOTI3LCAwLjAwMzkyNiwgMC4wMDM5MjciLCBcCi0gICAgICAgICAgIjAuMDAzODg5LCAwLjAwMzkxOCwgMC4wMDM5MjMsIDAuMDAzOTIyLCAwLjAwMzkyNSwgMC4wMDM5MjYsIDAuMDAzOTI2IiwgXAotICAgICAgICAgICIwLjAwMzg4MSwgMC4wMDM5MTUsIDAuMDAzOTIsIDAuMDAzOTIzLCAwLjAwMzkyNCwgMC4wMDM5MiwgMC4wMDM5MjUiLCBcCi0gICAgICAgICAgIjAuMDAzODcxLCAwLjAwMzkxLCAwLjAwMzkxNywgMC4wMDM5MiwgMC4wMDM5MjIsIDAuMDAzOTE4LCAwLjAwMzkyMyIsIFwKLSAgICAgICAgICAiMC4wMDM4NjYsIDAuMDAzOTA1LCAwLjAwMzkxMywgMC4wMDM5MTgsIDAuMDAzOTE5LCAwLjAwMzkyNCwgMC4wMDM5MjQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDA4ODQsIDAuMDAwODg0LCAwLjAwMDg4NCwgMC4wMDA4ODQsIDAuMDAwODg0LCAwLjAwMDg4MywgMC4wMDA4ODMiLCBcCi0gICAgICAgICAgIjAuMDAwODg3LCAwLjAwMDg5OSwgMC4wMDA5LCAwLjAwMDksIDAuMDAwOSwgMC4wMDA5LCAwLjAwMDkiLCBcCi0gICAgICAgICAgIjAuMDAwODc3LCAwLjAwMDkwMSwgMC4wMDA5MDMsIDAuMDAwOTA0LCAwLjAwMDkwNSwgMC4wMDA5MDUsIDAuMDAwOTA1IiwgXAotICAgICAgICAgICIwLjAwMDg2NCwgMC4wMDA5LCAwLjAwMDkwNSwgMC4wMDA5MDUsIDAuMDAwOTA2LCAwLjAwMDkwNywgMC4wMDA5MDciLCBcCi0gICAgICAgICAgIjAuMDAwODU0LCAwLjAwMDg5NywgMC4wMDA5MDIsIDAuMDAwOTA1LCAwLjAwMDkwNiwgMC4wMDA5MDcsIDAuMDAwOTA3IiwgXAotICAgICAgICAgICIwLjAwMDg0MiwgMC4wMDA4OSwgMC4wMDA5LCAwLjAwMDkwNCwgMC4wMDA5MDUsIDAuMDAwOTA2LCAwLjAwMDkwNyIsIFwKLSAgICAgICAgICAiMC4wMDA4MzEsIDAuMDAwODksIDAuMDAwODk4LCAwLjAwMDkwMiwgMC4wMDA5MDUsIDAuMDAwOTA2LCAwLjAwMDkwNyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkQiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzQwOSwgMC4wMDM0MTMsIDAuMDAzNDE1LCAwLjAwMzQxNCwgMC4wMDM0MTMsIDAuMDAzNDExLCAwLjAwMzQxMyIsIFwKLSAgICAgICAgICAiMC4wMDMzODYsIDAuMDAzNDA4LCAwLjAwMzQxMSwgMC4wMDM0MTIsIDAuMDAzNDEyLCAwLjAwMzQxMiwgMC4wMDM0MTIiLCBcCi0gICAgICAgICAgIjAuMDAzMzY1LCAwLjAwMzQwMiwgMC4wMDM0MDYsIDAuMDAzNDA5LCAwLjAwMzQxLCAwLjAwMzQxLCAwLjAwMzQxMSIsIFwKLSAgICAgICAgICAiMC4wMDMzNDksIDAuMDAzMzk2LCAwLjAwMzQwMiwgMC4wMDM0MDYsIDAuMDAzNDA3LCAwLjAwMzQwOSwgMC4wMDM0MDYiLCBcCi0gICAgICAgICAgIjAuMDAzMzM5LCAwLjAwMzM5MSwgMC4wMDMzOTksIDAuMDAzNDAyLCAwLjAwMzQwNiwgMC4wMDM0MDcsIDAuMDAzNDA4IiwgXAotICAgICAgICAgICIwLjAwMzMyNiwgMC4wMDMzODMsIDAuMDAzMzk0LCAwLjAwMzQsIDAuMDAzNDAzLCAwLjAwMzM5OSwgMC4wMDM0MDciLCBcCi0gICAgICAgICAgIjAuMDAzMzE5LCAwLjAwMzM3OCwgMC4wMDMzOSwgMC4wMDMzOTcsIDAuMDAzNCwgMC4wMDM0MDMsIDAuMDAzNDA0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwMTY1LCAwLjAwMDE3MiwgMC4wMDAxNzMsIDAuMDAwMTczLCAwLjAwMDE3MywgMC4wMDAxNzQsIDAuMDAwMTc0IiwgXAotICAgICAgICAgICIwLjAwMDE4MSwgMC4wMDAyMSwgMC4wMDAyMTMsIDAuMDAwMjE1LCAwLjAwMDIxNiwgMC4wMDAyMTYsIDAuMDAwMjE2IiwgXAotICAgICAgICAgICIwLjAwMDE3LCAwLjAwMDIyMSwgMC4wMDAyMjYsIDAuMDAwMjI5LCAwLjAwMDIzMSwgMC4wMDAyMzIsIDAuMDAwMjMzIiwgXAotICAgICAgICAgICIwLjAwMDE1OCwgMC4wMDAyMTksIDAuMDAwMjI3LCAwLjAwMDIzMiwgMC4wMDAyMzcsIDAuMDAwMjM4LCAwLjAwMDIzOSIsIFwKLSAgICAgICAgICAiMC4wMDAxNDEsIDAuMDAwMjE2LCAwLjAwMDIyNiwgMC4wMDAyMzEsIDAuMDAwMjM0LCAwLjAwMDIzNiwgMC4wMDAyMzciLCBcCi0gICAgICAgICAgIjAuMDAwMTI1LCAwLjAwMDIxMiwgMC4wMDAyMjMsIDAuMDAwMjI5LCAwLjAwMDIzMywgMC4wMDAyMzUsIDAuMDAwMjM2IiwgXAotICAgICAgICAgICIwLjAwMDExMywgMC4wMDAyMDgsIDAuMDAwMjIxLCAwLjAwMDIzLCAwLjAwMDIzMiwgMC4wMDAyMzcsIDAuMDAwMjM4Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBOT1I0WDYgKgotICogLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChOT1I0WDYpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC40NzY4ODE7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwNDA4NzQyOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwNDAzNDk1OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwNDA4NzQyOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTUxOCwgMC4wMDE1NzksIDAuMDAxNjE2LCAwLjAwMTYzNiwgMC4wMDE2NTQsIDAuMDAxNjY3LCAwLjAwMTY3OCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNDEyOCwgMC4wMDQxMywgMC4wMDQxMzEsIDAuMDA0MTMxLCAwLjAwNDEzMSwgMC4wMDQxMzEsIDAuMDA0MTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDQwMTMwNDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDM5NjU4ODsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDQwMTMwNDsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDE1MDcsIDAuMDAxNTUzLCAwLjAwMTYwMywgMC4wMDE2MzMsIDAuMDAxNjU0LCAwLjAwMTY3NywgMC4wMDE2OSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjYxMywgMC4wMDI2MTMsIDAuMDAyNjE1LCAwLjAwMjYxNCwgMC4wMDI2MTUsIDAuMDAyNjE1LCAwLjAwMjYxNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQykgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDA0MTAzMzU7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDA0MDY0NTU7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDA0MTAzMzU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxNTUsIDAuMDAxNjI5LCAwLjAwMTY3NSwgMC4wMDE3LCAwLjAwMTcxNiwgMC4wMDE3MywgMC4wMDE3MzgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDE5MjgsIDAuMDAxOTI5LCAwLjAwMTkyOSwgMC4wMDE5MjksIDAuMDAxOTMsIDAuMDAxOTMsIDAuMDAxOTMiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEQpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwNDA5MTQ2OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwNDA5MDU3OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwNDA5MTQ2OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDQ4MywgMC4wMDA0ODMsIDAuMDAwNDgzLCAwLjAwMDQ4MywgMC4wMDA0ODMsIDAuMDAwNDgzLCAwLjAwMDQ4MyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjE4OSwgMC4wMDIxODksIDAuMDAyMTg5LCAwLjAwMjE4OCwgMC4wMDIxODcsIDAuMDAyMTg3LCAwLjAwMjE4OCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjIxMTQzOTsKLSAgICBmdW5jdGlvbiA6ICIoISgoKEErQikrQykrRCkpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE0OTY1NSwgMC41MTc0MjYsIDAuODg1MTA4LCAxLjE0NzI1LCAxLjU2NzAyLCAxLjkzNTUxLCAyLjQ1OTY3IiwgXAotICAgICAgICAgICIwLjE2MDgxMiwgMC41MjkwMjYsIDAuODk2Nzk4LCAxLjE1OTA4LCAxLjU3OTEzLCAxLjk0NjY0LCAyLjQ3MjAxIiwgXAotICAgICAgICAgICIwLjE3MzY2OSwgMC41NDIzMDcsIDAuOTA5NzY0LCAxLjE3MjQyLCAxLjU5MzA0LCAxLjk1OTg3LCAyLjQ4NDg5IiwgXAotICAgICAgICAgICIwLjE4NTc1OSwgMC41NTQzNTEsIDAuOTIyMzE3LCAxLjE4NDU0LCAxLjYwNDcsIDEuOTcyMjYsIDIuNDk3NTYiLCBcCi0gICAgICAgICAgIjAuMTk3MTA2LCAwLjU2NjA0MywgMC45MzM0NTcsIDEuMTk2NSwgMS42MTY0NSwgMS45ODQyNywgMi41MDg2MiIsIFwKLSAgICAgICAgICAiMC4yMTQ1NDUsIDAuNTgzMjc2LCAwLjk1MTM0NCwgMS4yMTM1OCwgMS42MzQsIDIuMDAxNTUsIDIuNTI2MyIsIFwKLSAgICAgICAgICAiMC4yMjkxMTUsIDAuNTk3ODc5LCAwLjk2NTUzNCwgMS4yMjg2MiwgMS42NDgzNCwgMi4wMTU5MywgMi41NDA5NCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIwMDYxNSwgMC45MDA3MzUsIDEuNjAwMDEsIDIuMTAyMiwgMi45MDI3LCAzLjYxMjI1LCA0LjYxMzY1IiwgXAotICAgICAgICAgICIwLjIwMDczNywgMC45MDEyMjMsIDEuNjAyMTMsIDIuMTAxOTUsIDIuOTAzMDgsIDMuNjEwOTEsIDQuNTk4NDUiLCBcCi0gICAgICAgICAgIjAuMjAwNzExLCAwLjkwMTQxMSwgMS42MDE3MiwgMi4xMDIzOSwgMi44OTk5OCwgMy42MTA4MywgNC42MDEwMSIsIFwKLSAgICAgICAgICAiMC4yMDExMTIsIDAuOTAxMjIsIDEuNjAyMjEsIDIuMTAyMDcsIDIuOTAzMDksIDMuNjEwOTYsIDQuNjE0NjEiLCBcCi0gICAgICAgICAgIjAuMjAxMDkxLCAwLjkwMjQ2NiwgMS42MDE3NiwgMi4xMDI4MywgMi45MDM0LCAzLjYxMTk1LCA0LjYxMzU2IiwgXAotICAgICAgICAgICIwLjIwMTYyNSwgMC45MDEyNDgsIDEuNjAyMjQsIDIuMTAyMSwgMi45MDMzNSwgMy42MDA0NywgNC42MTM3NiIsIFwKLSAgICAgICAgICAiMC4yMDI2ODMsIDAuOTAxMzU1LCAxLjYwMzYzLCAyLjEwMjgxLCAyLjkwMTYxLCAzLjYxMDksIDQuNjAxNjMiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDEyNCwgMC4xNDYzNjEsIDAuMjQ3MTM5LCAwLjMxODY1OCwgMC40MzI2NDcsIDAuNTMyMjc3LCAwLjY3NDM5NiIsIFwKLSAgICAgICAgICAiMC4wNTMwOTQsIDAuMTU3OTg2LCAwLjI1ODc0MywgMC4zMzAyNCwgMC40NDQyOCwgMC41NDM4MTksIDAuNjg1OTk2IiwgXAotICAgICAgICAgICIwLjA2ODEyNiwgMC4xNzIzNjgsIDAuMjczMDk0LCAwLjM0NDU4LCAwLjQ1ODU5NiwgMC41NTgyMDQsIDAuNzAwMzI3IiwgXAotICAgICAgICAgICIwLjA4MzQ4MywgMC4xODY4MDgsIDAuMjg3NzcsIDAuMzU5MTk2LCAwLjQ3MTUyOSwgMC41NzExMjgsIDAuNzEzMjk5IiwgXAotICAgICAgICAgICIwLjA5OTE4NywgMC4yMDIxMzYsIDAuMzAyNTg4LCAwLjM3Mzg5NSwgMC40ODc4NzYsIDAuNTg3NDQ3LCAwLjcyOTY1OCIsIFwKLSAgICAgICAgICAiMC4xMjI3MDksIDAuMjI2NTY3LCAwLjMyNzE5MywgMC4zOTg2MywgMC41MTI2NTgsIDAuNjEyMjQxLCAwLjc1NDQ1MiIsIFwKLSAgICAgICAgICAiMC4xNDEzNjEsIDAuMjQ3NjQ1LCAwLjM0NzYsIDAuNDE4NzgzLCAwLjUzMjM0NSwgMC42MzE2NDQsIDAuNzcxMTk2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY5MTQ1LCAwLjI2NzUyNiwgMC40NjQxNzUsIDAuNjA0Nzg3LCAwLjgyOTU4LCAxLjAyNjM0LCAxLjMwNzIiLCBcCi0gICAgICAgICAgIjAuMDY4NDI0LCAwLjI2NzI5MSwgMC40NjQwNjIsIDAuNjA0NjUxLCAwLjgyOTE2OCwgMS4wMjYxMSwgMS4zMDY3MSIsIFwKLSAgICAgICAgICAiMC4wNzA4MDIsIDAuMjY3MTEsIDAuNDY0MTIyLCAwLjYwNDYwNSwgMC44MjkzMTEsIDEuMDI2MTcsIDEuMzA3NCIsIFwKLSAgICAgICAgICAiMC4wNzU2MTcsIDAuMjY2OTYyLCAwLjQ2Mzk2NCwgMC42MDQ1OCwgMC44MjkzMDMsIDEuMDI2MDksIDEuMzA3MTYiLCBcCi0gICAgICAgICAgIjAuMDgxNjI0LCAwLjI2ODEwNywgMC40NjM4ODUsIDAuNjA0NTQ4LCAwLjgyOTI1LCAxLjAyNjI0LCAxLjMwNzI0IiwgXAotICAgICAgICAgICIwLjA5MzM0MiwgMC4yNzIzMTIsIDAuNDY0MTk5LCAwLjYwNDQzNCwgMC44Mjk0MTcsIDEuMDI2MjQsIDEuMzA3MTciLCBcCi0gICAgICAgICAgIjAuMTA1MTg1LCAwLjI3NzkyLCAwLjQ2NjUyNSwgMC42MDQ4ODgsIDAuODI5MzU5LCAxLjAyNjA3LCAxLjMwNzM3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTQxMjk2LCAwLjUwOTEzNCwgMC44NzYxOTYsIDEuMTM4NywgMS41NTg3NiwgMS45MjcyNSwgMi40NTE0IiwgXAotICAgICAgICAgICIwLjE1MTQ0MiwgMC41MTk2MzIsIDAuODg3MTQ5LCAxLjE0OTgzLCAxLjU3MDQzLCAxLjkzNzI3LCAyLjQ2MjQxIiwgXAotICAgICAgICAgICIwLjE2Mzg0OSwgMC41MzIzNCwgMC45MDAxODUsIDEuMTYyNTEsIDEuNTgyNTgsIDEuOTUwMiwgMi40NzUxOSIsIFwKLSAgICAgICAgICAiMC4xNzU3NjEsIDAuNTQ0Mzc5LCAwLjkxMjMyMywgMS4xNzQ1OCwgMS41OTQ3MywgMS45NjI5NSwgMi40ODcxNCIsIFwKLSAgICAgICAgICAiMC4xODcwMDIsIDAuNTU1NzMzLCAwLjkyMzQ4MiwgMS4xODU4MywgMS42MDYzMiwgMS45NzMxNywgMi40OTkwMSIsIFwKLSAgICAgICAgICAiMC4yMDQ3MjUsIDAuNTczMDczLCAwLjk0MDc5NywgMS4yMDM0MSwgMS42MjM4OSwgMS45OTA3MywgMi41MTYzOSIsIFwKLSAgICAgICAgICAiMC4yMTk2MzEsIDAuNTg4MjU5LCAwLjk1NjAyMywgMS4yMTkzMSwgMS42Mzg2OSwgMi4wMDY2LCAyLjUzMTI5Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjAwNjU4LCAwLjkwMDczLCAxLjYwMDE1LCAyLjEwMzM2LCAyLjkwNjM4LCAzLjYxMjI5LCA0LjYxMzY4IiwgXAotICAgICAgICAgICIwLjIwMDcxOSwgMC45MDEwNTUsIDEuNjAxODcsIDIuMTAyNDUsIDIuODk5NTEsIDMuNjEwOTcsIDQuNjE0MTgiLCBcCi0gICAgICAgICAgIjAuMjAwNzI3LCAwLjkwMTU1MywgMS42MDIxLCAyLjEwMTI5LCAyLjkwMzA2LCAzLjYwMDU1LCA0LjYxNDEzIiwgXAotICAgICAgICAgICIwLjIwMTA1NSwgMC45MDEyMjEsIDEuNjAyMTcsIDIuMTAyMDksIDIuOTAzMDgsIDMuNjEyMjUsIDQuNjEzNjYiLCBcCi0gICAgICAgICAgIjAuMjAwOTU2LCAwLjkwMTI2OCwgMS42MDA4MSwgMi4xMDQ3LCAyLjkwMzM2LCAzLjYwMzg5LCA0LjU5OTY3IiwgXAotICAgICAgICAgICIwLjIwMjQ3OSwgMC45MDEyNTYsIDEuNjAxNzksIDIuMTAyMjIsIDIuOTAzNTMsIDMuNjAzMTcsIDQuNTk5NTgiLCBcCi0gICAgICAgICAgIjAuMjA0NDkzLCAwLjkwMTM3MywgMS42MDE4MiwgMi4wOTk5MiwgMi45MDI4LCAzLjYxMTE5LCA0LjYwMjIiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzk5MjQsIDAuMTQyNTI2LCAwLjI0Mjc5MywgMC4zMTQxNjMsIDAuNDI4MTUsIDAuNTI3OTAzLCAwLjY3MDI0MyIsIFwKLSAgICAgICAgICAiMC4wNTE4MTIsIDAuMTU0MzQ0LCAwLjI1NDYwMSwgMC4zMjU5OTcsIDAuNDQwMDIxLCAwLjUzOTYyOCwgMC42ODIwMDEiLCBcCi0gICAgICAgICAgIjAuMDY2NjU3LCAwLjE2ODcxLCAwLjI2ODk3NiwgMC4zNDAzMjksIDAuNDU0MzQ0LCAwLjU1NDA2MSwgMC42OTY0IiwgXAotICAgICAgICAgICIwLjA4MTc1MiwgMC4xODMxNDgsIDAuMjgzNjYzLCAwLjM1NTAwOCwgMC40NjcxMjUsIDAuNTY2NzczLCAwLjcwOTE3NyIsIFwKLSAgICAgICAgICAiMC4wOTcwOSwgMC4xOTg0NTYsIDAuMjk4NDE0LCAwLjM2OTY2MywgMC40ODM2ODEsIDAuNTgzMzgsIDAuNzI1Njk3IiwgXAotICAgICAgICAgICIwLjExOTUxNCwgMC4yMjI5NDksIDAuMzIzMTgsIDAuMzk0MDkxLCAwLjUwNzg3NCwgMC42MDczNjcsIDAuNzQ5NjA4IiwgXAotICAgICAgICAgICIwLjEzNzA4NCwgMC4yNDM5MDIsIDAuMzQzMzQ0LCAwLjQxNDUsIDAuNTI4MTksIDAuNjI3NTc1LCAwLjc2OTgyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDYzOTI5LCAwLjI2MTI5MSwgMC40NTg1NDIsIDAuNTk5NDgyLCAwLjgyNDk2MywgMS4wMjIyOSwgMS4zMDM5OCIsIFwKLSAgICAgICAgICAiMC4wNjM0MzksIDAuMjYxMjc1LCAwLjQ1ODUyNywgMC41OTkzNSwgMC44MjQ3MjUsIDEuMDIxNzQsIDEuMzAzNTYiLCBcCi0gICAgICAgICAgIjAuMDY1OTMzLCAwLjI2MTE3OSwgMC40NTgzMjEsIDAuNTk5NDMzLCAwLjgyNDU1OSwgMS4wMjE4NywgMS4zMDMyNyIsIFwKLSAgICAgICAgICAiMC4wNzExMDIsIDAuMjYxMTc2LCAwLjQ1ODQ5MSwgMC41OTkxNTcsIDAuODI0OTMyLCAxLjAyMTc4LCAxLjMwMzY1IiwgXAotICAgICAgICAgICIwLjA3NzQwOCwgMC4yNjI0NjMsIDAuNDU4NDM2LCAwLjU5OTQzOCwgMC44MjQ4MzMsIDEuMDIxODksIDEuMzAzMTkiLCBcCi0gICAgICAgICAgIjAuMDkwMDE3LCAwLjI2NzAxMSwgMC40NTg5ODQsIDAuNTk5MTcxLCAwLjgyNDcwNSwgMS4wMjIwOCwgMS4zMDQxIiwgXAotICAgICAgICAgICIwLjEwMjM5MiwgMC4yNzI5MywgMC40NjE1MTQsIDAuNTk5ODE4LCAwLjgyNDgwOCwgMS4wMjE5MSwgMS4zMDM1MSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEyMjgwNywgMC40OTA1OTEsIDAuODU4MDQ1LCAxLjEyMDQsIDEuNTQxMDEsIDEuOTA3OTUsIDIuNDMzMDMiLCBcCi0gICAgICAgICAgIjAuMTMyMjU5LCAwLjUwMDQ5NiwgMC44NjgwMiwgMS4xMzA0MSwgMS41NTEwNSwgMS45MTgsIDIuNDQzMDkiLCBcCi0gICAgICAgICAgIjAuMTQ0MjA1LCAwLjUxMjkyOSwgMC44ODAzNTIsIDEuMTQyOTIsIDEuNTYzNTMsIDEuOTMwNCwgMi40NTU0NSIsIFwKLSAgICAgICAgICAiMC4xNTU3ODcsIDAuNTI0Mzg3LCAwLjg5MjU1MiwgMS4xNTQ3MSwgMS41NzUyOSwgMS45NDIyMiwgMi40NjczNSIsIFwKLSAgICAgICAgICAiMC4xNjcwMjEsIDAuNTM1NzEsIDAuOTAzNDcsIDEuMTY2MTMsIDEuNTg2NzgsIDEuOTUzNjYsIDIuNDc4NSIsIFwKLSAgICAgICAgICAiMC4xODUzMTEsIDAuNTU0MTc5LCAwLjkyMjI0NCwgMS4xODQzNywgMS42MDQ5OSwgMS45NzIyOSwgMi40OTcxMyIsIFwKLSAgICAgICAgICAiMC4yMDExNSwgMC41Njk5NDYsIDAuOTM3ODk2LCAxLjIwMDczLCAxLjYyMTE1LCAxLjk4ODIxLCAyLjUxMzE5Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjAwOTkzLCAwLjkwMDU0MywgMS42MDExMywgMi4xMDIxNywgMi45MDM3OSwgMy42MTA3NywgNC42MDA0IiwgXAotICAgICAgICAgICIwLjIwMDk4MywgMC45MDA2ODUsIDEuNjAxNjIsIDIuMTAyMTYsIDIuOTAzNzgsIDMuNjEwNzgsIDQuNjAwMzkiLCBcCi0gICAgICAgICAgIjAuMjAwOTUxLCAwLjkwMjQyNywgMS42MDExMiwgMi4xMDIzOCwgMi45MDM5NywgMy42MTA4NSwgNC42MTM5IiwgXAotICAgICAgICAgICIwLjIwMDkwNCwgMC45MDE1MTYsIDEuNTk5OTUsIDIuMTAyMzQsIDIuOTAzODYsIDMuNjEwODIsIDQuNjEzOTkiLCBcCi0gICAgICAgICAgIjAuMjAxNiwgMC45MDI3NzIsIDEuNjAxNzMsIDIuMTAyMzcsIDIuOTAzOTcsIDMuNjEwODUsIDQuNjEzMzgiLCBcCi0gICAgICAgICAgIjAuMjA0NDE0LCAwLjkwMTM2NiwgMS42MDIzNSwgMi4xMDIyOCwgMi44OTkzOSwgMy42MDA1NywgNC42MTM3OCIsIFwKLSAgICAgICAgICAiMC4yMDg1MDIsIDAuOTAxMjM5LCAxLjYwMTk4LCAyLjEwMjczLCAyLjkwMzkyLCAzLjYxMSwgNC42MDA1NiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzNjQ2NCwgMC4xMzcwODIsIDAuMjM2OTA5LCAwLjMwODEyOCwgMC40MjIwNDMsIDAuNTIxNTk5LCAwLjY2Mzg5OCIsIFwKLSAgICAgICAgICAiMC4wNDgyMTEsIDAuMTQ4OTY4LCAwLjI0ODc4MiwgMC4zMjAwMzksIDAuNDMzOTMyLCAwLjUzMzQ3NSwgMC42NzU3NjMiLCBcCi0gICAgICAgICAgIjAuMDYzMjY0LCAwLjE2MzY2MiwgMC4yNjI0ODYsIDAuMzMzNzI0LCAwLjQ0NzYyMiwgMC41NDcyNjcsIDAuNjg5NDM4IiwgXAotICAgICAgICAgICIwLjA3ODMzNSwgMC4xNzg0OTIsIDAuMjc4MTMyLCAwLjM0OTM0NCwgMC40NjMyNTIsIDAuNTYyODAyLCAwLjcwMTU5OCIsIFwKLSAgICAgICAgICAiMC4wOTMxOTYsIDAuMTkzOTE5LCAwLjI5Mzc1LCAwLjM2NDQ1NiwgMC40Nzg0MDIsIDAuNTc3OTg5LCAwLjcyMDI2MyIsIFwKLSAgICAgICAgICAiMC4xMTQyNzksIDAuMjE3Nzc4LCAwLjMxNzQxNywgMC4zODc1MywgMC41MDI2NzcsIDAuNjAyNDIxLCAwLjc0NDY3OSIsIFwKLSAgICAgICAgICAiMC4xMzA5NzUsIDAuMjM4Nzg2LCAwLjMzODU0NCwgMC40MDkzMDgsIDAuNTIzMDIsIDAuNjIyNCwgMC43NjU2MzEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTczMjQsIDAuMjU0NTk0LCAwLjQ1MTk4MiwgMC41OTMwNTMsIDAuODE4MTQ1LCAxLjAxNTQzLCAxLjI5NzE2IiwgXAotICAgICAgICAgICIwLjA1NzI4OCwgMC4yNTQ2NjgsIDAuNDUxNzk5LCAwLjU5Mjg1MywgMC44MTgxODIsIDEuMDE1MjMsIDEuMjk2ODkiLCBcCi0gICAgICAgICAgIjAuMDYwNDc0LCAwLjI1NDYzOCwgMC40NTE5OTQsIDAuNTkyODkyLCAwLjgxODIwNSwgMS4wMTUzNywgMS4yOTY5NSIsIFwKLSAgICAgICAgICAiMC4wNjYxNzksIDAuMjU0ODEsIDAuNDUxOTg2LCAwLjU5MzA0LCAwLjgxODEyNSwgMS4wMTUxMiwgMS4yOTY5NyIsIFwKLSAgICAgICAgICAiMC4wNzMyNzksIDAuMjU2MTk5LCAwLjQ1MTk1MywgMC41OTI2MzksIDAuODE4Mjc3LCAxLjAxNTQsIDEuMjk3MDMiLCBcCi0gICAgICAgICAgIjAuMDg3MDU4LCAwLjI2MTE1MiwgMC40NTI2NzksIDAuNTkyODQ1LCAwLjgxODE4MywgMS4wMTU0OCwgMS4yOTcxNiIsIFwKLSAgICAgICAgICAiMC4xMDAwNTYsIDAuMjY3NDQ5LCAwLjQ1NTA0NSwgMC41OTM0NCwgMC44MTgxOTgsIDEuMDE1MzYsIDEuMjk3MTYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTE5MDIsIDAuNDU5ODU2LCAwLjgyNzE4NSwgMS4wODk2MiwgMS41MDk2OSwgMS44NzczNiwgMi40MDIyNSIsIFwKLSAgICAgICAgICAiMC4xMDA2OTQsIDAuNDY5NDMxLCAwLjgzNjc5NywgMS4wOTkyOCwgMS41MTkyMywgMS44ODY2NCwgMi40MTE0NSIsIFwKLSAgICAgICAgICAiMC4xMTE2NDgsIDAuNDgwNzE5LCAwLjg0ODQ1MywgMS4xMTA5LCAxLjUzMTM3LCAxLjg5ODg2LCAyLjQyMzY2IiwgXAotICAgICAgICAgICIwLjEyMzA3MiwgMC40OTIyNDMsIDAuODYwMTY5LCAxLjEyMjY0LCAxLjU0MzEsIDEuOTEwMDIsIDIuNDM1NDgiLCBcCi0gICAgICAgICAgIjAuMTM0NTEzLCAwLjUwMzU1NCwgMC44NzEyNTYsIDEuMTMzNjYsIDEuNTU0MDQsIDEuOTIyMTgsIDIuNDQ2OTMiLCBcCi0gICAgICAgICAgIjAuMTU0MzQsIDAuNTIzMDEsIDAuODkxMzEsIDEuMTUzNjMsIDEuNTc0MTEsIDEuOTQxMjEsIDIuNDY2OTciLCBcCi0gICAgICAgICAgIjAuMTcxNjY4LCAwLjUzODQ1MSwgMC45MDYzOTgsIDEuMTY5MTUsIDEuNTg5MzMsIDEuOTU2NjQsIDIuNDgyMzEiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xOTc5NjIsIDAuOTAxMzIyLCAxLjYwMTY3LCAyLjEwNDYzLCAyLjkwMTYzLCAzLjYxMTEyLCA0LjYxMzg1IiwgXAotICAgICAgICAgICIwLjE5NjU3MywgMC45MDE0MTEsIDEuNjAxNjYsIDIuMTA0NzMsIDIuOTAyNzUsIDMuNjAyNjksIDQuNjA5ODUiLCBcCi0gICAgICAgICAgIjAuMTk1MjgzLCAwLjkwMTIyLCAxLjYwMTg0LCAyLjEwMjE1LCAyLjkwMzQ1LCAzLjYxMTM5LCA0LjYxMzg1IiwgXAotICAgICAgICAgICIwLjE5NzUwMSwgMC45MDEyMTIsIDEuNjAxOTcsIDIuMTAyMjQsIDIuOTAzNDgsIDMuNjAzMTUsIDQuNjE0MTYiLCBcCi0gICAgICAgICAgIjAuMjAxNzk1LCAwLjkwMjE0MywgMS42MDMzMywgMi4xMDExOCwgMi45MDI4LCAzLjYxMTY1LCA0LjYxNDA3IiwgXAotICAgICAgICAgICIwLjIxMDE3MSwgMC45MDE4NDksIDEuNjAyMTMsIDIuMTAyMTYsIDIuOTAwNTEsIDMuNjEwMTcsIDQuNjE0NzIiLCBcCi0gICAgICAgICAgIjAuMjE5ODc3LCAwLjg5OTg0NywgMS42MDM2MiwgMi4xMDIyNywgMi45MDAxOSwgMy42MTAwNiwgNC42MTQyOCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzMDgyOCwgMC4xMzAzMTEsIDAuMjI5NywgMC4zMDA2ODcsIDAuNDE0MjU5LCAwLjUxMzc5NCwgMC42NTU5MDYiLCBcCi0gICAgICAgICAgIjAuMDQyODE3LCAwLjE0MjQ1MSwgMC4yNDE5MDMsIDAuMzEyODg2LCAwLjQyNjYzOSwgMC41MjU4OTEsIDAuNjY4MDA4IiwgXAotICAgICAgICAgICIwLjA1NzY2NiwgMC4xNTcwMjEsIDAuMjU2NDU5LCAwLjMyNzQ4NiwgMC40NDExNzcsIDAuNTQwNiwgMC42ODI1NDIiLCBcCi0gICAgICAgICAgIjAuMDcyNjk2LCAwLjE3MjAzNSwgMC4yNzExOTIsIDAuMzQxMDMyLCAwLjQ1NDU4NSwgMC41NTQwOTksIDAuNjk2MDg4IiwgXAotICAgICAgICAgICIwLjA4NjM1NiwgMC4xODY5MTYsIDAuMjg2MTAzLCAwLjM1NywgMC40NzA1MjEsIDAuNTcwMDYzLCAwLjcwODkzIiwgXAotICAgICAgICAgICIwLjEwNTg3MiwgMC4yMTExNDUsIDAuMzA5NzQ3LCAwLjM3OTY2MiwgMC40OTQwNDcsIDAuNTkzMzg5LCAwLjczNTkxMiIsIFwKLSAgICAgICAgICAiMC4xMjEwNjEsIDAuMjMyMjUsIDAuMzMwMzYxLCAwLjQwMTI2MywgMC41MTQ2NjMsIDAuNjE0MTUyLCAwLjc1NjQwOSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1MDUyOSwgMC4yNDc3MjMsIDAuNDQ2MDAzLCAwLjU4NzI1LCAwLjgxMzI0NSwgMS4wMDg3NSwgMS4yODk3NyIsIFwKLSAgICAgICAgICAiMC4wNTA5MTYsIDAuMjQ4Mjc4LCAwLjQ0NTEyNCwgMC41ODU5NTQsIDAuODExMDUzLCAxLjAwODcsIDEuMjkwNDciLCBcCi0gICAgICAgICAgIjAuMDU1MjA0LCAwLjI0NzgwNCwgMC40NDYwMjgsIDAuNTg1MTcyLCAwLjgxMDI1OSwgMS4wMDkyNiwgMS4yOTAxNiIsIFwKLSAgICAgICAgICAiMC4wNjE4MjMsIDAuMjQ4NTEsIDAuNDQ1MTA3LCAwLjU4NDkzMiwgMC44MTMyNzYsIDEuMDA4NTQsIDEuMjg5MDQiLCBcCi0gICAgICAgICAgIjAuMDY5OTEzLCAwLjI0OTUyNCwgMC40NDQzODcsIDAuNTg1MzgxLCAwLjgxMTAyNywgMS4wMDc5NiwgMS4yOTEyIiwgXAotICAgICAgICAgICIwLjA4NTczNCwgMC4yNTUxMDIsIDAuNDQ2MjksIDAuNTg1NDc2LCAwLjgxMTg1OSwgMS4wMDk3OSwgMS4yODk3IiwgXAotICAgICAgICAgICIwLjA5ODgxOSwgMC4yNjE0MDcsIDAuNDQ5MDIxLCAwLjU4ODIxMSwgMC44MTMyNTQsIDEuMDA5MDgsIDEuMjg4NzQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxNjc2MywgMC4wMTY3OCwgMC4wMTY3ODEsIDAuMDE2NzgsIDAuMDE2NzgyLCAwLjAxNjc4MiwgMC4wMTY3ODEiLCBcCi0gICAgICAgICAgIjAuMDE2NjksIDAuMDE2NzYyLCAwLjAxNjc3MywgMC4wMTY3NzYsIDAuMDE2NzgzLCAwLjAxNjc4LCAwLjAxNjc3OCIsIFwKLSAgICAgICAgICAiMC4wMTY2MzUsIDAuMDE2NzM5LCAwLjAxNjc1OSwgMC4wMTY3NjUsIDAuMDE2NzcsIDAuMDE2NzczLCAwLjAxNjc3MSIsIFwKLSAgICAgICAgICAiMC4wMTY2MDIsIDAuMDE2NzIxLCAwLjAxNjc0NywgMC4wMTY3NTIsIDAuMDE2NzY0LCAwLjAxNjc2OSwgMC4wMTY3NyIsIFwKLSAgICAgICAgICAiMC4wMTY1OCwgMC4wMTY3MDYsIDAuMDE2NzM4LCAwLjAxNjc1NCwgMC4wMTY3NTksIDAuMDE2NzY0LCAwLjAxNjc2NSIsIFwKLSAgICAgICAgICAiMC4wMTY1NTYsIDAuMDE2NjgsIDAuMDE2NzIsIDAuMDE2NzMyLCAwLjAxNjc0NiwgMC4wMTY3NTQsIDAuMDE2NzYxIiwgXAotICAgICAgICAgICIwLjAxNjU0MSwgMC4wMTY2NjIsIDAuMDE2NzA1LCAwLjAxNjcyMSwgMC4wMTY3MzksIDAuMDE2NzQ1LCAwLjAxNjc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDY0NjcsIDAuMDA2NDY4LCAwLjAwNjQ2NiwgMC4wMDY0NjYsIDAuMDA2NDYzLCAwLjAwNjQ2MSwgMC4wMDY0NjEiLCBcCi0gICAgICAgICAgIjAuMDA2MzM0LCAwLjAwNjMzOCwgMC4wMDYzNDIsIDAuMDA2MzM5LCAwLjAwNjMzOCwgMC4wMDYzNCwgMC4wMDYzMzgiLCBcCi0gICAgICAgICAgIjAuMDA2MjY3LCAwLjAwNjI4NCwgMC4wMDYyODMsIDAuMDA2Mjg1LCAwLjAwNjI4MSwgMC4wMDYyODMsIDAuMDA2MjgzIiwgXAotICAgICAgICAgICIwLjAwNjIyNSwgMC4wMDYyMzQsIDAuMDA2MjU5LCAwLjAwNjI2LCAwLjAwNjI1MiwgMC4wMDYyNTQsIDAuMDA2MjUyIiwgXAotICAgICAgICAgICIwLjAwNjIwMiwgMC4wMDYyMzgsIDAuMDA2MjQzLCAwLjAwNjI0NSwgMC4wMDYyNDMsIDAuMDA2MjQyLCAwLjAwNjI0NyIsIFwKLSAgICAgICAgICAiMC4wMDYxNzIsIDAuMDA2MjI0LCAwLjAwNjIzMiwgMC4wMDYyMzQsIDAuMDA2MjM5LCAwLjAwNjIzNiwgMC4wMDYyNCIsIFwKLSAgICAgICAgICAiMC4wMDYxNTQsIDAuMDA2MjAyLCAwLjAwNjIxNywgMC4wMDYyMiwgMC4wMDYyMjQsIDAuMDA2MjIyLCAwLjAwNjIxOSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE0NDg4LCAwLjAxNDUwNiwgMC4wMTQ1MDksIDAuMDE0NTEsIDAuMDE0NTEsIDAuMDE0NTEsIDAuMDE0NTEiLCBcCi0gICAgICAgICAgIjAuMDE0NDE3LCAwLjAxNDQ4NywgMC4wMTQ0OTgsIDAuMDE0NTAxLCAwLjAxNDUxLCAwLjAxNDUwNiwgMC4wMTQ1MDgiLCBcCi0gICAgICAgICAgIjAuMDE0MzYxLCAwLjAxNDQ2NywgMC4wMTQ0ODMsIDAuMDE0NDk1LCAwLjAxNDQ5OCwgMC4wMTQ0OTksIDAuMDE0NTAyIiwgXAotICAgICAgICAgICIwLjAxNDMyOCwgMC4wMTQ0NDgsIDAuMDE0NDcxLCAwLjAxNDQ4NCwgMC4wMTQ0OTIsIDAuMDE0NDk1LCAwLjAxNDQ5OCIsIFwKLSAgICAgICAgICAiMC4wMTQzMDMsIDAuMDE0NDI5LCAwLjAxNDQ2MSwgMC4wMTQ0NzIsIDAuMDE0NDc4LCAwLjAxNDQ4MywgMC4wMTQ0OTgiLCBcCi0gICAgICAgICAgIjAuMDE0MjgxLCAwLjAxNDQwNCwgMC4wMTQ0NDMsIDAuMDE0NDU2LCAwLjAxNDQ2OSwgMC4wMTQ0NzgsIDAuMDE0NDg1IiwgXAotICAgICAgICAgICIwLjAxNDI2NiwgMC4wMTQzODcsIDAuMDE0NDI3LCAwLjAxNDQ0NiwgMC4wMTQ0NjMsIDAuMDE0NDcxLCAwLjAxNDQ4NiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0NjUyLCAwLjAwNDY1MiwgMC4wMDQ2NTIsIDAuMDA0NjUsIDAuMDA0NjQ4LCAwLjAwNDY0OCwgMC4wMDQ2NDUiLCBcCi0gICAgICAgICAgIjAuMDA0NTgyLCAwLjAwNDYwMSwgMC4wMDQ2MDMsIDAuMDA0NjAzLCAwLjAwNDYsIDAuMDA0NjA0LCAwLjAwNDYwMSIsIFwKLSAgICAgICAgICAiMC4wMDQ1MSwgMC4wMDQ1NiwgMC4wMDQ1NjgsIDAuMDA0NTcsIDAuMDA0NTY4LCAwLjAwNDU3MiwgMC4wMDQ1NzEiLCBcCi0gICAgICAgICAgIjAuMDA0NDU4LCAwLjAwNDUyLCAwLjAwNDU0NCwgMC4wMDQ1NTEsIDAuMDA0NTUsIDAuMDA0NTUyLCAwLjAwNDU1NCIsIFwKLSAgICAgICAgICAiMC4wMDQ0MjIsIDAuMDA0NTE1LCAwLjAwNDUzNCwgMC4wMDQ1NCwgMC4wMDQ1NDQsIDAuMDA0NTQ3LCAwLjAwNDU0OSIsIFwKLSAgICAgICAgICAiMC4wMDQzNzYsIDAuMDA0NDg5LCAwLjAwNDUxNywgMC4wMDQ1MjMsIDAuMDA0NTMyLCAwLjAwNDUzNCwgMC4wMDQ1MzkiLCBcCi0gICAgICAgICAgIjAuMDA0MzU4LCAwLjAwNDQ2OSwgMC4wMDQ1LCAwLjAwNDUxMiwgMC4wMDQ1MiwgMC4wMDQ1MjUsIDAuMDA0NTI5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTIzMDgsIDAuMDEyMzI2LCAwLjAxMjMzLCAwLjAxMjMyOSwgMC4wMTIzMjksIDAuMDEyMzI5LCAwLjAxMjMzIiwgXAotICAgICAgICAgICIwLjAxMjIzNCwgMC4wMTIyOTksIDAuMDEyMzEzLCAwLjAxMjMxNSwgMC4wMTIzMjQsIDAuMDEyMzE4LCAwLjAxMjMyNCIsIFwKLSAgICAgICAgICAiMC4wMTIxNzQsIDAuMDEyMjc4LCAwLjAxMjI5OCwgMC4wMTIzMDQsIDAuMDEyMzA4LCAwLjAxMjMxMywgMC4wMTIzMTciLCBcCi0gICAgICAgICAgIjAuMDEyMTM4LCAwLjAxMjI2MiwgMC4wMTIyODksIDAuMDEyMjk4LCAwLjAxMjMwNiwgMC4wMTIzMSwgMC4wMTIzMTQiLCBcCi0gICAgICAgICAgIjAuMDEyMTIxLCAwLjAxMjI0NiwgMC4wMTIyNzgsIDAuMDEyMjg5LCAwLjAxMjI5OSwgMC4wMTIzMDUsIDAuMDEyMzA5IiwgXAotICAgICAgICAgICIwLjAxMjA5OCwgMC4wMTIyMjMsIDAuMDEyMjY0LCAwLjAxMjI3NywgMC4wMTIyODksIDAuMDEyMjk3LCAwLjAxMjMwMyIsIFwKLSAgICAgICAgICAiMC4wMTIwODMsIDAuMDEyMjA3LCAwLjAxMjI0OSwgMC4wMTIyNjYsIDAuMDEyMjgxLCAwLjAxMjI5MSwgMC4wMTIyOTciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjYzMywgMC4wMDI2MzcsIDAuMDAyNjM4LCAwLjAwMjYzOCwgMC4wMDI2MzgsIDAuMDAyNjM3LCAwLjAwMjYzNiIsIFwKLSAgICAgICAgICAiMC4wMDI2MTMsIDAuMDAyNjcsIDAuMDAyNjc3LCAwLjAwMjY4LCAwLjAwMjY4MiwgMC4wMDI2ODMsIDAuMDAyNjgzIiwgXAotICAgICAgICAgICIwLjAwMjU1NCwgMC4wMDI2NjksIDAuMDAyNjksIDAuMDAyNjk2LCAwLjAwMjcwMSwgMC4wMDI3MDQsIDAuMDAyNzA2IiwgXAotICAgICAgICAgICIwLjAwMjUwMiwgMC4wMDI2NTYsIDAuMDAyNjg1LCAwLjAwMjY5NCwgMC4wMDI3MDIsIDAuMDAyNzA2LCAwLjAwMjcxMSIsIFwKLSAgICAgICAgICAiMC4wMDI0NTEsIDAuMDAyNjM5LCAwLjAwMjY3NSwgMC4wMDI2ODYsIDAuMDAyNjk3LCAwLjAwMjcwMywgMC4wMDI3MDgiLCBcCi0gICAgICAgICAgIjAuMDAyNDExLCAwLjAwMjYyLCAwLjAwMjY2NCwgMC4wMDI2OCwgMC4wMDI2OSwgMC4wMDI2OTgsIDAuMDAyNzA0IiwgXAotICAgICAgICAgICIwLjAwMjM1MywgMC4wMDI1ODUsIDAuMDAyNjQyLCAwLjAwMjY2MiwgMC4wMDI2OCwgMC4wMDI2ODksIDAuMDAyNzAxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDk5NzEsIDAuMDEwMDAxLCAwLjAxMDAwNSwgMC4wMTAwMDQsIDAuMDEwMDA2LCAwLjAxMDAwNywgMC4wMTAwMDciLCBcCi0gICAgICAgICAgIjAuMDA5ODU3LCAwLjAwOTk3LCAwLjAwOTk4NiwgMC4wMDk5OTMsIDAuMDA5OTk2LCAwLjAwOTk5OCwgMC4wMTAwMDEiLCBcCi0gICAgICAgICAgIjAuMDA5NzY4LCAwLjAwOTkzMywgMC4wMDk5NjMsIDAuMDA5OTczLCAwLjAwOTk4MiwgMC4wMDk5ODksIDAuMDA5OTkyIiwgXAotICAgICAgICAgICIwLjAwOTcxOSwgMC4wMDk5MDEsIDAuMDA5OTQzLCAwLjAwOTk1NiwgMC4wMDk5NjksIDAuMDA5OTc2LCAwLjAwOTk4MiIsIFwKLSAgICAgICAgICAiMC4wMDk2OTEsIDAuMDA5ODcyLCAwLjAwOTkyNSwgMC4wMDk5NDIsIDAuMDA5OTU4LCAwLjAwOTk2NiwgMC4wMDk5NzQiLCBcCi0gICAgICAgICAgIjAuMDA5Njc1LCAwLjAwOTg0NCwgMC4wMDk5MDEsIDAuMDA5OTIzLCAwLjAwOTk0MywgMC4wMDk5NTQsIDAuMDA5OTY0IiwgXAotICAgICAgICAgICIwLjAwOTY2NCwgMC4wMDk4MTcsIDAuMDA5ODc5LCAwLjAwOTkwNSwgMC4wMDk5MjgsIDAuMDA5OTQxLCAwLjAwOTk1NCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwNDYzLCAwLjAwMDUwOCwgMC4wMDA1MTMsIDAuMDAwNTE1LCAwLjAwMDUxNiwgMC4wMDA1MTcsIDAuMDAwNTE4IiwgXAotICAgICAgICAgICIwLjAwMDQzNiwgMC4wMDA1OTUsIDAuMDAwNjE3LCAwLjAwMDYyNCwgMC4wMDA2MjksIDAuMDAwNjMzLCAwLjAwMDYzNSIsIFwKLSAgICAgICAgICAiMC4wMDAzNiwgMC4wMDA2MDcsIDAuMDAwNjQ2LCAwLjAwMDY1OCwgMC4wMDA2NjksIDAuMDAwNjc1LCAwLjAwMDY4IiwgXAotICAgICAgICAgICIwLjAwMDI5NywgMC4wMDA1OTMsIDAuMDAwNjQ2LCAwLjAwMDY2NiwgMC4wMDA2ODIsIDAuMDAwNjkxLCAwLjAwMDY5OCIsIFwKLSAgICAgICAgICAiMC4wMDAyNTEsIDAuMDAwNTc0LCAwLjAwMDYzOCwgMC4wMDA2NiwgMC4wMDA2NzksIDAuMDAwNjg5LCAwLjAwMDcwNSIsIFwKLSAgICAgICAgICAiMC4wMDAyMTUsIDAuMDAwNTQ3LCAwLjAwMDYyNCwgMC4wMDA2NDcsIDAuMDAwNjc0LCAwLjAwMDY4NywgMC4wMDA2OTMiLCBcCi0gICAgICAgICAgIjAuMDAwMTU0LCAwLjAwMDUxLCAwLjAwMDYsIDAuMDAwNjMyLCAwLjAwMDY2MSwgMC4wMDA2NzcsIDAuMDAwNjkyIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBPQTIxWDEgKgotICogLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChPQTIxWDEpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4wNzA1NDg4OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNTQ1NjY2OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDU0NDIyNjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA1NDU2NjY7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMTY1LCAwLjAwMDE2NSwgMC4wMDAxNjUsIDAuMDAwMTY1LCAwLjAwMDE2NSwgMC4wMDAxNjUsIDAuMDAwMTY1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMTY2LCAwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY2Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihBMSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNTY3Mzc1OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDU2NzM3NTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA1NjU1MjQ7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMTY1LCAwLjAwMDE2NSwgMC4wMDAxNjUsIDAuMDAwMTY1LCAwLjAwMDE2NSwgMC4wMDAxNjUsIDAuMDAwMTY1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMTY2LCAwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY2Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjIxMDUyOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYyMDc1ODsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2MjEwNTI7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjM4LCAwLjAwMDIzOCwgMC4wMDAyMzksIDAuMDAwMjM4LCAwLjAwMDIzOCwgMC4wMDAyMzgsIDAuMDAwMjM4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMTg4LCAwLjAwMDE4OCwgMC4wMDAxODgsIDAuMDAwMTg4LCAwLjAwMDE4OCwgMC4wMDAxODgsIDAuMDAwMTg4Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMTI4ODcyOwotICAgIGZ1bmN0aW9uIDogIigoQTArQTEpIEIwKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTAiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE5NTEwNiwgMC4yMzg0NzIsIDAuNDgxMjI4LCAwLjY5NDg4MSwgMC45Nzk3MDksIDEuNTQ5MzEsIDEuOTA1MDgiLCBcCi0gICAgICAgICAgIjAuMjA2OTQ0LCAwLjI1MDIzLCAwLjQ5MzAwMSwgMC43MDY2NiwgMC45OTE0ODgsIDEuNTYxLCAxLjkxNjgzIiwgXAotICAgICAgICAgICIwLjIyMTc1NSwgMC4yNjUxMDksIDAuNTA3ODcyLCAwLjcyMTUyNCwgMS4wMDYzNSwgMS41NzU4NCwgMS45MzE2OSIsIFwKLSAgICAgICAgICAiMC4yMzYwMjMsIDAuMjc5MzQsIDAuNTIyMTUxLCAwLjczNTgwMywgMS4wMjA2MywgMS41OTAxMSwgMS45NDU5NSIsIFwKLSAgICAgICAgICAiMC4yNDk5NTQsIDAuMjkzMzA1LCAwLjUzNjA4LCAwLjc0OTczNSwgMS4wMzQ1NiwgMS42MDQxLCAxLjk1OTkiLCBcCi0gICAgICAgICAgIjAuMjcyMDc2LCAwLjMxNTM1NywgMC41NTgxNTgsIDAuNzcxODU1LCAxLjA1NjY1LCAxLjYyNjE0LCAxLjk4MjAxIiwgXAotICAgICAgICAgICIwLjI5MTI2NCwgMC4zMzQ2MywgMC41Nzc0MDYsIDAuNzkxMTA0LCAxLjA3NTkzLCAxLjY0NTQ4LCAyLjAwMTI2Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE2NzQzMSwgMC4yNTE1NTEsIDAuNzQwNzk5LCAxLjE3NDg1LCAxLjc1NDU1LCAyLjkxNDA5LCAzLjYzMjg1IiwgXAotICAgICAgICAgICIwLjE2NzM3OSwgMC4yNTE1MzksIDAuNzQwNzg1LCAxLjE3NDc1LCAxLjc1MTczLCAyLjkwOTc1LCAzLjYzMzEyIiwgXAotICAgICAgICAgICIwLjE2NzQwNiwgMC4yNTE0OTMsIDAuNzQwNzM3LCAxLjE3NDc4LCAxLjc1MTU0LCAyLjkxMzksIDMuNjMyNzYiLCBcCi0gICAgICAgICAgIjAuMTY3NDgzLCAwLjI1MTY2NSwgMC43Mzg4MjYsIDEuMTc0ODIsIDEuNzUxNjMsIDIuOTEzOTMsIDMuNjMyNDIiLCBcCi0gICAgICAgICAgIjAuMTY3MzQyLCAwLjI1MTQ5NSwgMC43Mzg2ODksIDEuMTc0NzcsIDEuNzUxNTUsIDIuOTEzOTMsIDMuNjMyODciLCBcCi0gICAgICAgICAgIjAuMTY3Mzc1LCAwLjI1MTQ5NSwgMC43NDA3NTksIDEuMTc0OTEsIDEuNzUxNzIsIDIuOTA5MTksIDMuNjM4NCIsIFwKLSAgICAgICAgICAiMC4xNjczNzIsIDAuMjUxMzcsIDAuNzQwNjQxLCAxLjE3NDgsIDEuNzUxNjIsIDIuOTEzOTQsIDMuNjMyOCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xOTQxODEsIDAuMjQ0MzY5LCAwLjUyNTUyMSwgMC43NzI3ODIsIDEuMTAyMzMsIDEuNzYwOTQsIDIuMTcyNTIiLCBcCi0gICAgICAgICAgIjAuMjA1NTk4LCAwLjI1NTc4LCAwLjUzNjkzOSwgMC43ODQxOTcsIDEuMTEzNjgsIDEuNzcyMzcsIDIuMTgzOTMiLCBcCi0gICAgICAgICAgIjAuMjE4NjE4LCAwLjI2ODgyOSwgMC41NDk5NjYsIDAuNzk3Mjg1LCAxLjEyNjc0LCAxLjc4NTQ3LCAyLjE5Njk0IiwgXAotICAgICAgICAgICIwLjIzMTE0NCwgMC4yODEzMzQsIDAuNTYyNDkyLCAwLjgwOTc3NSwgMS4xMzkyNiwgMS43OTc5MywgMi4yMDk2NyIsIFwKLSAgICAgICAgICAiMC4yNDM2NDIsIDAuMjkzODI2LCAwLjU3NDk5MiwgMC44MjIyNzgsIDEuMTUxNzcsIDEuODEwNDQsIDIuMjIyMTUiLCBcCi0gICAgICAgICAgIjAuMjYzMDYzLCAwLjMxMzI2LCAwLjU5NDQ1MiwgMC44NDE3MjEsIDEuMTcxMjksIDEuODI5ODksIDIuMjQxNDciLCBcCi0gICAgICAgICAgIjAuMjc5NzM0LCAwLjMyOTkyNSwgMC42MTEwOTIsIDAuODU4NDAxLCAxLjE4Nzg5LCAxLjg0NjU4LCAyLjI1ODE0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE4NzIwNSwgMC4yODMyMjYsIDAuODM2MzgxLCAxLjMyNzQ2LCAxLjk3OTY4LCAzLjI4NzksIDQuMTA1MTciLCBcCi0gICAgICAgICAgIjAuMTg3MjI4LCAwLjI4MzIxLCAwLjgzNjMxOCwgMS4zMjczOSwgMS45Nzk1NCwgMy4yODgzMSwgNC4xMDU2IiwgXAotICAgICAgICAgICIwLjE4NzM2MiwgMC4yODMyLCAwLjgzNTU1NCwgMS4zMjY3OSwgMS45ODAwNiwgMy4yOTA4NiwgNC4xMDk0NCIsIFwKLSAgICAgICAgICAiMC4xODcyMTksIDAuMjgzMTk2LCAwLjgzNjMwNCwgMS4zMjU4OSwgMS45Nzk1NSwgMy4yODc2OCwgNC4xMDg3MiIsIFwKLSAgICAgICAgICAiMC4xODcxODQsIDAuMjgzMTY5LCAwLjgzNjQ1MSwgMS4zMjU5MiwgMS45Nzk3MywgMy4yODc2NSwgNC4xMDQzOSIsIFwKLSAgICAgICAgICAiMC4xODcxNjIsIDAuMjgzMTgyLCAwLjgzNjM3MSwgMS4zMjc1NSwgMS45ODEyNSwgMy4yODc3OCwgNC4xMDQ2NCIsIFwKLSAgICAgICAgICAiMC4xODczNiwgMC4yODMyNjgsIDAuODM2NzA4LCAxLjMyNzE2LCAxLjk3OTg2LCAzLjI4ODEyLCA0LjEwNTkyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkExIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xODEwODQsIDAuMjI0MTgxLCAwLjQ2NjM2NiwgMC42ODAwNDIsIDAuOTY0NjI2LCAxLjUzNDEzLCAxLjg5MDM5IiwgXAotICAgICAgICAgICIwLjE5MzEwNiwgMC4yMzYyMjQsIDAuNDc4NDEyLCAwLjY5MjA5MSwgMC45NzY4NDQsIDEuNTQ2MTksIDEuOTAxODgiLCBcCi0gICAgICAgICAgIjAuMjA3OCwgMC4yNTA4ODMsIDAuNDkzMDcxLCAwLjcwNjc1NywgMC45OTE0MjMsIDEuNTYwODksIDEuOTE2NzQiLCBcCi0gICAgICAgICAgIjAuMjIyMDM1LCAwLjI2NTExMywgMC41MDcyNzEsIDAuNzIxMDUxLCAxLjAwNjAxLCAxLjU3NTIsIDEuOTMxMTkiLCBcCi0gICAgICAgICAgIjAuMjM1OTIyLCAwLjI3OTA1MSwgMC41MjEyNjEsIDAuNzM0Nzc3LCAxLjAxOTc5LCAxLjU4OTA5LCAxLjk0NTI2IiwgXAotICAgICAgICAgICIwLjI1NzkwNCwgMC4zMDEsIDAuNTQzMjI0LCAwLjc1NjkxMywgMS4wNDE3NiwgMS42MTEwMiwgMS45NjY4OCIsIFwKLSAgICAgICAgICAiMC4yNzY3NzksIDAuMzE5ODU0LCAwLjU2MjA3MywgMC43NzU3NTIsIDEuMDYwNDksIDEuNjI5ODEsIDEuOTg1OCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNjU5NjksIDAuMjUwMTk0LCAwLjc0MDM1NCwgMS4xNzExOCwgMS43NDkxMywgMi45MDU1MSwgMy42Mjk2IiwgXAotICAgICAgICAgICIwLjE2NjAyNywgMC4yNTAxODUsIDAuNzM5NTM5LCAxLjE3MTE2LCAxLjc1MDkzLCAyLjkwNTQ4LCAzLjYzODIiLCBcCi0gICAgICAgICAgIjAuMTY1OTM2LCAwLjI1MDE3OCwgMC43NDA1LCAxLjE3MTExLCAxLjc1MSwgMi45MTM3MywgMy42MjgzNyIsIFwKLSAgICAgICAgICAiMC4xNjU5NDcsIDAuMjUwMjQ2LCAwLjczOTIxNiwgMS4xNzEwNSwgMS43NDkzOCwgMi45MDY5NywgMy42MzU3OSIsIFwKLSAgICAgICAgICAiMC4xNjU5NDMsIDAuMjUwMTEyLCAwLjczOTQ3NCwgMS4xNzM2OCwgMS43NTAxMywgMi45MDUyMywgMy42Mjk1NSIsIFwKLSAgICAgICAgICAiMC4xNjU4ODksIDAuMjUwMDcyLCAwLjc0MDM5OCwgMS4xNzExMSwgMS43NDk0NSwgMi45MTM0MywgMy42Mjg1NyIsIFwKLSAgICAgICAgICAiMC4xNjYxMTIsIDAuMjUwMTY1LCAwLjc0MDQxNCwgMS4xNzExNSwgMS43NDk2NiwgMi45MTMzNywgMy42MjgxIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE4NjcxOCwgMC4yMzY5MDEsIDAuNTE4MDUyLCAwLjc2NTMxMywgMS4wOTQ4MSwgMS43NTM0OSwgMi4xNjUxMyIsIFwKLSAgICAgICAgICAiMC4xOTY5MjcsIDAuMjQ3MTEyLCAwLjUyODI3NCwgMC43NzU1MzEsIDEuMTA1MDIsIDEuNzYzNjYsIDIuMTc1MjYiLCBcCi0gICAgICAgICAgIjAuMjA5NTA0LCAwLjI1OTY4NywgMC41NDA4NTgsIDAuNzg4MTMyLCAxLjExNzYyLCAxLjc3NjI5LCAyLjE4Nzg2IiwgXAotICAgICAgICAgICIwLjIyMjk5NCwgMC4yNzMxOTIsIDAuNTU0MzY4LCAwLjgwMTY1NCwgMS4xMzExNCwgMS43ODk4MiwgMi4yMDE0NCIsIFwKLSAgICAgICAgICAiMC4yMzYzMzYsIDAuMjg2NTQyLCAwLjU2NzczNiwgMC44MTUwMDcsIDEuMTQ0NTUsIDEuODAzMTgsIDIuMjE0NzYiLCBcCi0gICAgICAgICAgIjAuMjU3MzcsIDAuMzA3NTYyLCAwLjU4ODc1LCAwLjgzNjExMSwgMS4xNjU1NiwgMS44MjQzMiwgMi4yMzU3NyIsIFwKLSAgICAgICAgICAiMC4yNzU1ODYsIDAuMzI1Nzc4LCAwLjYwNzAwMywgMC44NTQyOCwgMS4xODM4MSwgMS44NDI0NiwgMi4yNTQwNSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xODcyMjcsIDAuMjgzMTYyLCAwLjgzNjQ0NCwgMS4zMjc1OSwgMS45Nzk0NywgMy4yODc5LCA0LjEwOTEyIiwgXAotICAgICAgICAgICIwLjE4NzI0NSwgMC4yODMyMjcsIDAuODM2MzY1LCAxLjMyNzM3LCAxLjk3OTUsIDMuMjkyNTIsIDQuMTA1NjciLCBcCi0gICAgICAgICAgIjAuMTg3MjcsIDAuMjgzMjE1LCAwLjgzNjQyNywgMS4zMjczLCAxLjk3OTcxLCAzLjI4ODA1LCA0LjEwNTg3IiwgXAotICAgICAgICAgICIwLjE4NzIyMiwgMC4yODMxODksIDAuODM2NDIsIDEuMzI1NzksIDEuOTc5MzgsIDMuMjg3ODksIDQuMTA5MTkiLCBcCi0gICAgICAgICAgIjAuMTg3MTk3LCAwLjI4MzE3MSwgMC44MzYyOCwgMS4zMjc1OCwgMS45Nzg0NCwgMy4yODc2MywgNC4xMDQ1NCIsIFwKLSAgICAgICAgICAiMC4xODczMDksIDAuMjgzMjA1LCAwLjgzNjY2MywgMS4zMjY3NSwgMS45ODAxMiwgMy4yOTA0MywgNC4xMDg4IiwgXAotICAgICAgICAgICIwLjE4NzQwMSwgMC4yODMyODIsIDAuODM2MzA3LCAxLjMyNzM1LCAxLjk4MTYzLCAzLjI4NzkxLCA0LjEwNDU1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNzk1ODMsIDAuMjIyOTQyLCAwLjQ2NTcxNSwgMC42NzkzNzMsIDAuOTY0MjcyLCAxLjUzMzcxLCAxLjg4OTU2IiwgXAotICAgICAgICAgICIwLjE4OTgyNywgMC4yMzMxOTEsIDAuNDc1OTY3LCAwLjY4OTYxOSwgMC45NzQ0NTIsIDEuNTQzOTUsIDEuODk5NzkiLCBcCi0gICAgICAgICAgIjAuMjAzNDY3LCAwLjI0Njc3NCwgMC40ODk1MjMsIDAuNzAzMjM3LCAwLjk4ODA1OSwgMS41NTc1MSwgMS45MTMzOCIsIFwKLSAgICAgICAgICAiMC4yMTcwMTcsIDAuMjYwMzgyLCAwLjUwMzE2NCwgMC43MTY4MTksIDEuMDAxNjQsIDEuNTcxMTMsIDEuOTI2OTgiLCBcCi0gICAgICAgICAgIjAuMjMwNzQyLCAwLjI3NDEwOSwgMC41MTY4MzYsIDAuNzMwNTc1LCAxLjAxNTQsIDEuNTg0OTMsIDEuOTQwNzMiLCBcCi0gICAgICAgICAgIjAuMjUzMDU3LCAwLjI5NjQxOSwgMC41MzkyNDEsIDAuNzUyOTA2LCAxLjAzNzc1LCAxLjYwNzM5LCAxLjk2MzA5IiwgXAotICAgICAgICAgICIwLjI3MjMwNCwgMC4zMTU2MywgMC41NTg0NDgsIDAuNzcyMjAyLCAxLjA1Njk2LCAxLjYyNjQ0LCAxLjk4MjQyIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE2NzQ0NywgMC4yNTE1NDIsIDAuNzQwNzk2LCAxLjE3NDc3LCAxLjc1NDQ2LCAyLjkwOTU1LCAzLjYzODc3IiwgXAotICAgICAgICAgICIwLjE2NzM3LCAwLjI1MTU0OSwgMC43NDA3NzEsIDEuMTc0NzMsIDEuNzU0NDUsIDIuOTEyNTgsIDMuNjM4OTkiLCBcCi0gICAgICAgICAgIjAuMTY3MzY2LCAwLjI1MTY2NCwgMC43NDA1MjksIDEuMTc0ODEsIDEuNzUxNDgsIDIuOTEyNTcsIDMuNjM3NDciLCBcCi0gICAgICAgICAgIjAuMTY3Mzg3LCAwLjI1MTQ3OSwgMC43Mzg2ODEsIDEuMTc0NzcsIDEuNzUxNTEsIDIuOTA5MjksIDMuNjM4MjciLCBcCi0gICAgICAgICAgIjAuMTY3MzU4LCAwLjI1MTQxOCwgMC43NDA0MDksIDEuMTc0NzksIDEuNzUxNjcsIDIuOTE0MTUsIDMuNjM4MDYiLCBcCi0gICAgICAgICAgIjAuMTY3MzcyLCAwLjI1MTQ5OCwgMC43MzkyNDYsIDEuMTc0NzQsIDEuNzU0NDYsIDIuOTEzNjYsIDMuNjMzMDIiLCBcCi0gICAgICAgICAgIjAuMTY3NTY4LCAwLjI1MTc0NywgMC43NDA3NTIsIDEuMTc0NzksIDEuNzUxNiwgMi45MDkyNywgMy42Mzg2NCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMzk4MzUsIDAuMTg5MjY0LCAwLjQ2OTE5OSwgMC43MTY0MjksIDEuMDQ1MzUsIDEuNzAzODUsIDIuMTE2NzUiLCBcCi0gICAgICAgICAgIjAuMTUxMzM2LCAwLjIwMDc4NSwgMC40ODA3MzEsIDAuNzI3OTQ2LCAxLjA1Njg0LCAxLjcxNTU5LCAyLjEyNzA2IiwgXAotICAgICAgICAgICIwLjE2NjI4NiwgMC4yMTU3MzksIDAuNDk1NzA5LCAwLjc0MjkzMiwgMS4wNzE4NywgMS43MzAzNiwgMi4xNDMyNCIsIFwKLSAgICAgICAgICAiMC4xODA4OTMsIDAuMjMwMzY1LCAwLjUxMDM0OSwgMC43NTc1NzUsIDEuMDg2NTEsIDEuNzQ1MjMsIDIuMTU4MDkiLCBcCi0gICAgICAgICAgIjAuMTk0ODk0LCAwLjI0NDM5LCAwLjUyNDM4NywgMC43NzE2MTUsIDEuMTAwNjEsIDEuNzU5MDgsIDIuMTcxMDMiLCBcCi0gICAgICAgICAgIjAuMjE1OTIsIDAuMjY1NDA0LCAwLjU0NTM4NCwgMC43OTI0OSwgMS4xMjE4NSwgMS43ODAzOCwgMi4xOTE5NSIsIFwKLSAgICAgICAgICAiMC4yMzI4MTEsIDAuMjgyMjg0LCAwLjU2MjI1MSwgMC44MDk2NDcsIDEuMTM4NTEsIDEuNzk3MDYsIDIuMjEwMTYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTgwMjM0LCAwLjI3NzMxNiwgMC44MzI1ODgsIDEuMzIxMTEsIDEuOTc0OCwgMy4yOTA0LCA0LjEwMzgzIiwgXAotICAgICAgICAgICIwLjE4MDUxMiwgMC4yNzczOTcsIDAuODMxNjkyLCAxLjMyMjg1LCAxLjk3NDM5LCAzLjI5MDEsIDQuMTAzNjkiLCBcCi0gICAgICAgICAgIjAuMTgwMjQ3LCAwLjI3NzI3NiwgMC44MzI2MjIsIDEuMzIwNzIsIDEuOTc5ODUsIDMuMjg0ODIsIDQuMTAzMzgiLCBcCi0gICAgICAgICAgIjAuMTgwMjkxLCAwLjI3NzQwOCwgMC44MzI2MDcsIDEuMzI0OTcsIDEuOTczNjcsIDMuMjg4MjksIDQuMTA2MjgiLCBcCi0gICAgICAgICAgIjAuMTgwNDAzLCAwLjI3NzQ3LCAwLjgzMzM3MSwgMS4zMjA1MywgMS45ODA2NiwgMy4yOTEyLCA0LjEwMzA0IiwgXAotICAgICAgICAgICIwLjE4MDg1OCwgMC4yNzcyNzIsIDAuODMyMjcxLCAxLjMyMzkxLCAxLjk3ODM0LCAzLjI4NTI3LCA0LjEwNDAzIiwgXAotICAgICAgICAgICIwLjE4MTc4OSwgMC4yNzc2ODEsIDAuODMyOTAyLCAxLjMyMjMsIDEuOTc2NjEsIDMuMjg3MzUsIDQuMTA1MzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxNDgzLCAwLjAwMTQ4OSwgMC4wMDE0OTYsIDAuMDAxNDk4LCAwLjAwMTQ5OCwgMC4wMDE0OTksIDAuMDAxNDk5IiwgXAotICAgICAgICAgICIwLjAwMTQ3MiwgMC4wMDE0NzgsIDAuMDAxNDg1LCAwLjAwMTQ4NiwgMC4wMDE0ODcsIDAuMDAxNDg3LCAwLjAwMTQ4OCIsIFwKLSAgICAgICAgICAiMC4wMDE0NjYsIDAuMDAxNDcxLCAwLjAwMTQ3OSwgMC4wMDE0ODEsIDAuMDAxNDgyLCAwLjAwMTQ4MiwgMC4wMDE0ODEiLCBcCi0gICAgICAgICAgIjAuMDAxNDYxLCAwLjAwMTQ2NywgMC4wMDE0NzQsIDAuMDAxNDc2LCAwLjAwMTQ3NiwgMC4wMDE0NzcsIDAuMDAxNDc3IiwgXAotICAgICAgICAgICIwLjAwMTQ1NywgMC4wMDE0NjMsIDAuMDAxNDcxLCAwLjAwMTQ3MywgMC4wMDE0NzQsIDAuMDAxNDc0LCAwLjAwMTQ3NCIsIFwKLSAgICAgICAgICAiMC4wMDE0NTEsIDAuMDAxNDU4LCAwLjAwMTQ2NywgMC4wMDE0NjksIDAuMDAxNDcsIDAuMDAxNDcsIDAuMDAxNDcxIiwgXAotICAgICAgICAgICIwLjAwMTQ0OCwgMC4wMDE0NTQsIDAuMDAxNDY0LCAwLjAwMTQ2NiwgMC4wMDE0NjcsIDAuMDAxNDY4LCAwLjAwMTQ2OSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjM0NSwgMC4wMDIzNTIsIDAuMDAyMzYzLCAwLjAwMjM2NSwgMC4wMDIzNjYsIDAuMDAyMzY3LCAwLjAwMjM2NyIsIFwKLSAgICAgICAgICAiMC4wMDIzMzksIDAuMDAyMzQ2LCAwLjAwMjM1NywgMC4wMDIzNTksIDAuMDAyMzYsIDAuMDAyMzYxLCAwLjAwMjM2MSIsIFwKLSAgICAgICAgICAiMC4wMDIzMzUsIDAuMDAyMzQzLCAwLjAwMjM1MywgMC4wMDIzNTUsIDAuMDAyMzU2LCAwLjAwMjM1NywgMC4wMDIzNTciLCBcCi0gICAgICAgICAgIjAuMDAyMzMyLCAwLjAwMjM0LCAwLjAwMjM1MSwgMC4wMDIzNTMsIDAuMDAyMzU0LCAwLjAwMjM1NSwgMC4wMDIzNTUiLCBcCi0gICAgICAgICAgIjAuMDAyMzI5LCAwLjAwMjMzNywgMC4wMDIzNDksIDAuMDAyMzUxLCAwLjAwMjM1MiwgMC4wMDIzNTMsIDAuMDAyMzU0IiwgXAotICAgICAgICAgICIwLjAwMjMyNCwgMC4wMDIzMzMsIDAuMDAyMzQ2LCAwLjAwMjM0OCwgMC4wMDIzNSwgMC4wMDIzNTEsIDAuMDAyMzUyIiwgXAotICAgICAgICAgICIwLjAwMjMyMSwgMC4wMDIzMywgMC4wMDIzNDQsIDAuMDAyMzQ3LCAwLjAwMjM0OSwgMC4wMDIzNSwgMC4wMDIzNTEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxMjcsIDAuMDAxMjc0LCAwLjAwMTI4LCAwLjAwMTI4MSwgMC4wMDEyODIsIDAuMDAxMjgyLCAwLjAwMTI4MiIsIFwKLSAgICAgICAgICAiMC4wMDEyNjMsIDAuMDAxMjY3LCAwLjAwMTI3MywgMC4wMDEyNzMsIDAuMDAxMjc0LCAwLjAwMTI3NCwgMC4wMDEyNzQiLCBcCi0gICAgICAgICAgIjAuMDAxMjUxLCAwLjAwMTI1NiwgMC4wMDEyNjIsIDAuMDAxMjYzLCAwLjAwMTI2MywgMC4wMDEyNjQsIDAuMDAxMjYzIiwgXAotICAgICAgICAgICIwLjAwMTI0MywgMC4wMDEyNDgsIDAuMDAxMjU0LCAwLjAwMTI1NSwgMC4wMDEyNTYsIDAuMDAxMjU2LCAwLjAwMTI1NiIsIFwKLSAgICAgICAgICAiMC4wMDEyMzYsIDAuMDAxMjQyLCAwLjAwMTI0OCwgMC4wMDEyNSwgMC4wMDEyNSwgMC4wMDEyNSwgMC4wMDEyNTEiLCBcCi0gICAgICAgICAgIjAuMDAxMjI4LCAwLjAwMTIzNCwgMC4wMDEyNDIsIDAuMDAxMjQzLCAwLjAwMTI0NCwgMC4wMDEyNDQsIDAuMDAxMjQ1IiwgXAotICAgICAgICAgICIwLjAwMTIyMiwgMC4wMDEyMjksIDAuMDAxMjM4LCAwLjAwMTI0LCAwLjAwMTI0MSwgMC4wMDEyNDEsIDAuMDAxMjQxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyMjAyLCAwLjAwMjIwOSwgMC4wMDIyMTksIDAuMDAyMjIyLCAwLjAwMjIyMywgMC4wMDIyMjQsIDAuMDAyMjI0IiwgXAotICAgICAgICAgICIwLjAwMjE5NCwgMC4wMDIyMDEsIDAuMDAyMjExLCAwLjAwMjIxNCwgMC4wMDIyMTUsIDAuMDAyMjE2LCAwLjAwMjIxNiIsIFwKLSAgICAgICAgICAiMC4wMDIxODUsIDAuMDAyMTkzLCAwLjAwMjIwNSwgMC4wMDIyMDcsIDAuMDAyMjA4LCAwLjAwMjIwOSwgMC4wMDIyMSIsIFwKLSAgICAgICAgICAiMC4wMDIxNzksIDAuMDAyMTg3LCAwLjAwMjIsIDAuMDAyMjAzLCAwLjAwMjIwNCwgMC4wMDIyMDUsIDAuMDAyMjA2IiwgXAotICAgICAgICAgICIwLjAwMjE3NSwgMC4wMDIxODMsIDAuMDAyMTk2LCAwLjAwMjE5OSwgMC4wMDIyMDEsIDAuMDAyMjAzLCAwLjAwMjIwMyIsIFwKLSAgICAgICAgICAiMC4wMDIxNjcsIDAuMDAyMTc3LCAwLjAwMjE5MiwgMC4wMDIxOTYsIDAuMDAyMTk4LCAwLjAwMjIsIDAuMDAyMjAxIiwgXAotICAgICAgICAgICIwLjAwMjE2NSwgMC4wMDIxNzQsIDAuMDAyMTkxLCAwLjAwMjE5NSwgMC4wMDIxOTcsIDAuMDAyMTk5LCAwLjAwMjIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxNDg3LCAwLjAwMTQ5MiwgMC4wMDE1LCAwLjAwMTUwMSwgMC4wMDE1MDIsIDAuMDAxNTAzLCAwLjAwMTUwMyIsIFwKLSAgICAgICAgICAiMC4wMDE0NzMsIDAuMDAxNDc5LCAwLjAwMTQ4NiwgMC4wMDE0ODYsIDAuMDAxNDg4LCAwLjAwMTQ4OCwgMC4wMDE0OSIsIFwKLSAgICAgICAgICAiMC4wMDE0NjMsIDAuMDAxNDY5LCAwLjAwMTQ3NywgMC4wMDE0NzgsIDAuMDAxNDc5LCAwLjAwMTQ4LCAwLjAwMTQ4MSIsIFwKLSAgICAgICAgICAiMC4wMDE0NTYsIDAuMDAxNDYyLCAwLjAwMTQ3MSwgMC4wMDE0NzMsIDAuMDAxNDc0LCAwLjAwMTQ3NSwgMC4wMDE0NzQiLCBcCi0gICAgICAgICAgIjAuMDAxNDUsIDAuMDAxNDU3LCAwLjAwMTQ2NywgMC4wMDE0NjksIDAuMDAxNDcsIDAuMDAxNDcxLCAwLjAwMTQ3MSIsIFwKLSAgICAgICAgICAiMC4wMDE0NDUsIDAuMDAxNDUyLCAwLjAwMTQ2MywgMC4wMDE0NjYsIDAuMDAxNDY3LCAwLjAwMTQ2OCwgMC4wMDE0NjgiLCBcCi0gICAgICAgICAgIjAuMDAxNDQyLCAwLjAwMTQ0OSwgMC4wMDE0NjEsIDAuMDAxNDY0LCAwLjAwMTQ2NiwgMC4wMDE0NjcsIDAuMDAxNDY4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxODQsIDAuMDAxODQzLCAwLjAwMTg0NiwgMC4wMDE4NDcsIDAuMDAxODQ3LCAwLjAwMTg0OCwgMC4wMDE4NDgiLCBcCi0gICAgICAgICAgIjAuMDAxODMyLCAwLjAwMTgzNSwgMC4wMDE4NCwgMC4wMDE4NDEsIDAuMDAxODQxLCAwLjAwMTg0MSwgMC4wMDE4NDEiLCBcCi0gICAgICAgICAgIjAuMDAxODIxLCAwLjAwMTgyNiwgMC4wMDE4MzIsIDAuMDAxODMzLCAwLjAwMTgzNCwgMC4wMDE4MzQsIDAuMDAxODM0IiwgXAotICAgICAgICAgICIwLjAwMTgxMywgMC4wMDE4MTksIDAuMDAxODI3LCAwLjAwMTgyOCwgMC4wMDE4MjksIDAuMDAxODMsIDAuMDAxODMiLCBcCi0gICAgICAgICAgIjAuMDAxODA1LCAwLjAwMTgxMiwgMC4wMDE4MjIsIDAuMDAxODI0LCAwLjAwMTgyNSwgMC4wMDE4MjYsIDAuMDAxODI2IiwgXAotICAgICAgICAgICIwLjAwMTc5NywgMC4wMDE4MDYsIDAuMDAxODE4LCAwLjAwMTgyMSwgMC4wMDE4MjIsIDAuMDAxODIzLCAwLjAwMTgyNCIsIFwKLSAgICAgICAgICAiMC4wMDE3OTMsIDAuMDAxODAyLCAwLjAwMTgxNiwgMC4wMDE4MTgsIDAuMDAxODIsIDAuMDAxODIyLCAwLjAwMTgyMiIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogT0EyMlgxICoKLSAqIC0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoT0EyMlgxKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMDgyNTQ5NjsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQTApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDU2NTcyMzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA1NjQ0NjQ7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNTY1NzIzOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDE2NSwgMC4wMDAxNjUsIDAuMDAwMTY1LCAwLjAwMDE2NSwgMC4wMDAxNjUsIDAuMDAwMTY1LCAwLjAwMDE2NSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQTEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDU5ODAwOTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA1OTgwMDk7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNTk2MzY4OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDE2NSwgMC4wMDAxNjUsIDAuMDAwMTY1LCAwLjAwMDE2NSwgMC4wMDAxNjUsIDAuMDAwMTY1LCAwLjAwMDE2NSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQjApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDU2MDE1NDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA1NTYzODI7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNTYwMTU0OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDM5LCAwLjAwMDM5LCAwLjAwMDM5LCAwLjAwMDM5LCAwLjAwMDM5LCAwLjAwMDM5LCAwLjAwMDM5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMTg4LCAwLjAwMDE4OCwgMC4wMDAxODgsIDAuMDAwMTg4LCAwLjAwMDE4OCwgMC4wMDAxODgsIDAuMDAwMTg4Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCMSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjI0MzQzOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYyNDE1OTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2MjQzNDM7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzksIDAuMDAwMzksIDAuMDAwMzksIDAuMDAwMzksIDAuMDAwMzksIDAuMDAwMzksIDAuMDAwMzkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxODgsIDAuMDAwMTg4LCAwLjAwMDE4OCwgMC4wMDAxODgsIDAuMDAwMTg4LCAwLjAwMDE4OCwgMC4wMDAxODgiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4xMjc0MTM7Ci0gICAgZnVuY3Rpb24gOiAiKChBMCtBMSkgKEIwK0IxKSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMjMyNjQsIDAuMjY3NDM3LCAwLjUxMzQ3MiwgMC43Mjk3MzgsIDEuMDE3ODIsIDEuNTkzNjQsIDEuOTUzNDYiLCBcCi0gICAgICAgICAgIjAuMjM1MDQ4LCAwLjI3OTMyOSwgMC41MjUzMTYsIDAuNzQxNTY4LCAxLjAyOTY4LCAxLjYwNTUyLCAxLjk2NTMiLCBcCi0gICAgICAgICAgIjAuMjUwMjY1LCAwLjI5NDU1MSwgMC41NDA2LCAwLjc1Njg4MSwgMS4wNDQ4OSwgMS42MjA3NiwgMS45ODA1MyIsIFwKLSAgICAgICAgICAiMC4yNjUwMTYsIDAuMzA5MjYyLCAwLjU1NTI2NiwgMC43NzE1MTcsIDEuMDU5NTksIDEuNjM1NDgsIDEuOTk1MjQiLCBcCi0gICAgICAgICAgIjAuMjc5Mjc3LCAwLjMyMzU3LCAwLjU2OTU1OSwgMC43ODU4MTMsIDEuMDczODcsIDEuNjQ5NzYsIDIuMDA5NTQiLCBcCi0gICAgICAgICAgIjAuMzAxNjc3LCAwLjM0NTk2MSwgMC41OTE5NjIsIDAuODA4MjE2LCAxLjA5NjMsIDEuNjcyMTYsIDIuMDMxOTQiLCBcCi0gICAgICAgICAgIjAuMzIxMDczLCAwLjM2NTM0LCAwLjYxMTM1NywgMC44Mjc2MSwgMS4xMTU2OCwgMS42OTE1NSwgMi4wNTEzNSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNzE3NTksIDAuMjU2MTkyLCAwLjc0NzgxNywgMS4xODgwOSwgMS43NzEzMiwgMi45NDAzNSwgMy42NzEyNCIsIFwKLSAgICAgICAgICAiMC4xNzE3MTEsIDAuMjU2Mjc2LCAwLjc0ODI5NSwgMS4xODc5OSwgMS43NzM2NCwgMi45NDAzNywgMy42NzEwMiIsIFwKLSAgICAgICAgICAiMC4xNzE2NjMsIDAuMjU2MjkxLCAwLjc0NzYyOSwgMS4xODgwMSwgMS43NzIyMiwgMi45NDI5NSwgMy42NzE1IiwgXAotICAgICAgICAgICIwLjE3MTY0MywgMC4yNTYyODIsIDAuNzQ3ODM1LCAxLjE4Nzk2LCAxLjc3MjQ0LCAyLjk0MzY4LCAzLjY3MTExIiwgXAotICAgICAgICAgICIwLjE3MTcwNSwgMC4yNTYyNjcsIDAuNzQ3Nzk5LCAxLjE4Nzk3LCAxLjc3MzI3LCAyLjk0Mjc5LCAzLjY3MDk4IiwgXAotICAgICAgICAgICIwLjE3MTY0NSwgMC4yNTYyMiwgMC43NDc3NjIsIDEuMTg3OTYsIDEuNzcwNjIsIDIuOTQwMDgsIDMuNjc0ODciLCBcCi0gICAgICAgICAgIjAuMTcxNjMxLCAwLjI1NjIzNSwgMC43NDc4NDIsIDEuMTg3OTYsIDEuNzczMTgsIDIuOTQzMjYsIDMuNjcwOTYiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjIyMTgsIDAuMjczMjcsIDAuNTU1MDczLCAwLjgwMjYyOSwgMS4xMzIzLCAxLjc5MTE2LCAyLjIwMjg0IiwgXAotICAgICAgICAgICIwLjIzMzcsIDAuMjg0NzY4LCAwLjU2NjU3MiwgMC44MTQxMjEsIDEuMTQzNzksIDEuODAyNjYsIDIuMjE0MzQiLCBcCi0gICAgICAgICAgIjAuMjQ2NjU1LCAwLjI5Nzc0NCwgMC41Nzk1MzksIDAuODI3MTY5LCAxLjE1Njc0LCAxLjgxNTYyLCAyLjIyNzMyIiwgXAotICAgICAgICAgICIwLjI1OTIzOCwgMC4zMTAzMywgMC41OTIxMzEsIDAuODM5NzYzLCAxLjE2OTM0LCAxLjgyODIyLCAyLjIzOTkiLCBcCi0gICAgICAgICAgIjAuMjcxNTg4LCAwLjMyMjY4LCAwLjYwNDQ5OSwgMC44NTIwNiwgMS4xODE3MywgMS44NDA1OSwgMi4yNTIyNyIsIFwKLSAgICAgICAgICAiMC4yOTEwOTksIDAuMzQyMTc4LCAwLjYyNDAxOSwgMC44NzE1ODgsIDEuMjAxMjMsIDEuODYwMTIsIDIuMjcxNzgiLCBcCi0gICAgICAgICAgIjAuMzA3OTkzLCAwLjM1OTA5MSwgMC42NDA5MzMsIDAuODg4NTcxLCAxLjIxODEzLCAxLjg3NzAzLCAyLjI4ODgyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE5NjEzMiwgMC4yODk2NTMsIDAuODM3NDg1LCAxLjMyODQ4LCAxLjk4MjQ2LCAzLjI4ODUzLCA0LjExMDAzIiwgXAotICAgICAgICAgICIwLjE5NjIxNCwgMC4yODk2NDQsIDAuODM3ODksIDEuMzI3OTQsIDEuOTgyNTUsIDMuMjkyMTIsIDQuMTA5MjYiLCBcCi0gICAgICAgICAgIjAuMTk2MjE1LCAwLjI4OTY2MSwgMC44MzkwNzUsIDEuMzI4NDksIDEuOTgzMDQsIDMuMjg5NTIsIDQuMTA5ODUiLCBcCi0gICAgICAgICAgIjAuMTk2MjE1LCAwLjI4OTY2MiwgMC44MzkwNDUsIDEuMzI4MTEsIDEuOTgyOTgsIDMuMjkyMjYsIDQuMTA2MjIiLCBcCi0gICAgICAgICAgIjAuMTk2MTk2LCAwLjI4OTYzMSwgMC44Mzc2MzYsIDEuMzI4NTYsIDEuOTgzMDYsIDMuMjkxMTMsIDQuMTA2NjQiLCBcCi0gICAgICAgICAgIjAuMTk2MjI1LCAwLjI4OTYyNiwgMC44MzkyNzUsIDEuMzI4MTksIDEuOTgyNTMsIDMuMjg5MiwgNC4xMDk5NyIsIFwKLSAgICAgICAgICAiMC4xOTYyNiwgMC4yODk2NTcsIDAuODM5Mjk1LCAxLjMyNzk3LCAxLjk4Mjc2LCAzLjI5MTE5LCA0LjEwOTUzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkExIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMTA0MTEsIDAuMjU0NDY0LCAwLjQ5OTk5NSwgMC43MTYwMDcsIDEuMDAzOTEsIDEuNTc5NTYsIDEuOTM5MjYiLCBcCi0gICAgICAgICAgIjAuMjIyNTQ5LCAwLjI2NjU4NiwgMC41MTIxMTUsIDAuNzI4MTYzLCAxLjAxNjAyLCAxLjU5MTY5LCAxLjk1MTM3IiwgXAotICAgICAgICAgICIwLjIzNzYzMiwgMC4yODE1NzYsIDAuNTI3MDczLCAwLjc0MzE1LCAxLjAzMTA1LCAxLjYwNjc0LCAxLjk2NjM5IiwgXAotICAgICAgICAgICIwLjI1MjIzNSwgMC4yOTYxOTQsIDAuNTQxNjYyLCAwLjc1Nzc3LCAxLjA0NTY0LCAxLjYyMTI3LCAxLjk4MTAyIiwgXAotICAgICAgICAgICIwLjI2NjQwMywgMC4zMTAzNiwgMC41NTU4NDUsIDAuNzcxOTM4LCAxLjA1OTgzLCAxLjYzNTQ1LCAxLjk5NTE3IiwgXAotICAgICAgICAgICIwLjI4ODcwNCwgMC4zMzI2NTMsIDAuNTc4MjAyLCAwLjc5NDI0OCwgMS4wODIxNSwgMS42NTc4MywgMi4wMTc0OSIsIFwKLSAgICAgICAgICAiMC4zMDc5MzYsIDAuMzUxOTYsIDAuNTk3NTE4LCAwLjgxMzUyMywgMS4xMDE1MSwgMS42NzcwOSwgMi4wMzY3OCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNzA1NDQsIDAuMjU0OTYsIDAuNzQ4NTk1LCAxLjE4NTA4LCAxLjc3MTgyLCAyLjkzNTU3LCAzLjY3NjA1IiwgXAotICAgICAgICAgICIwLjE3MDUxNiwgMC4yNTQ5MjIsIDAuNzQ4NTg2LCAxLjE4NywgMS43Njk1LCAyLjkzOTUzLCAzLjY3MDU1IiwgXAotICAgICAgICAgICIwLjE3MDU3MiwgMC4yNTUxODgsIDAuNzQ4MjI2LCAxLjE4Njk3LCAxLjc3MTM5LCAyLjk0NDE0LCAzLjY3NTc3IiwgXAotICAgICAgICAgICIwLjE3MDU1LCAwLjI1NTA0LCAwLjc0ODEyNiwgMS4xODUxMSwgMS43NzEzLCAyLjk0MzI0LCAzLjY3MDU2IiwgXAotICAgICAgICAgICIwLjE3MDU1NywgMC4yNTUwNTcsIDAuNzQ4MjI3LCAxLjE4NywgMS43NzExOSwgMi45NDMxOCwgMy42NzAyNyIsIFwKLSAgICAgICAgICAiMC4xNzA1MjksIDAuMjU1MDQ5LCAwLjc0NjY5OSwgMS4xODY5MywgMS43NzA0OCwgMi45NDM4OCwgMy42NzAzOCIsIFwKLSAgICAgICAgICAiMC4xNzAzNzYsIDAuMjU1MDEsIDAuNzQ4MjMsIDEuMTg2OSwgMS43NzIzOCwgMi45MzkxOSwgMy42NzAyNyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMTUxNDYsIDAuMjY2MjQyLCAwLjU0ODA0NSwgMC43OTU2LCAxLjEyNTI3LCAxLjc4NDEzLCAyLjE5NTgxIiwgXAotICAgICAgICAgICIwLjIyNTQwOCwgMC4yNzY0NzQsIDAuNTU4Mjc4LCAwLjgwNTg5MiwgMS4xMzU0OSwgMS43OTQzOCwgMi4yMDYwMyIsIFwKLSAgICAgICAgICAiMC4yMzgwMTYsIDAuMjg5MTAxLCAwLjU3MDkyNCwgMC44MTg1NDMsIDEuMTQ4MjMsIDEuODA3MTcsIDIuMjE4NjkiLCBcCi0gICAgICAgICAgIjAuMjUxMzk3LCAwLjMwMjQ5MSwgMC41ODQzMDcsIDAuODMxOTM5LCAxLjE2MTUyLCAxLjgyMDQxLCAyLjIzMjE1IiwgXAotICAgICAgICAgICIwLjI2NDYzNSwgMC4zMTU3MzUsIDAuNTk3NTc0LCAwLjg0NTE0MywgMS4xNzQ4MSwgMS44MzM2OCwgMi4yNDUzNyIsIFwKLSAgICAgICAgICAiMC4yODU5NjUsIDAuMzM3MDU1LCAwLjYxODkxLCAwLjg2NjQ2NywgMS4xOTYxNSwgMS44NTUwMywgMi4yNjY3MSIsIFwKLSAgICAgICAgICAiMC4zMDQ0OTksIDAuMzU1NTkzLCAwLjYzNzQzNCwgMC44ODUwODIsIDEuMjE0NjYsIDEuODczNTYsIDIuMjg1MjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTk2MTk4LCAwLjI4OTY1LCAwLjgzNzY1MSwgMS4zMjgyOCwgMS45ODI1MSwgMy4yOTMxNSwgNC4xMDY0NCIsIFwKLSAgICAgICAgICAiMC4xOTYyNTYsIDAuMjg5NjU2LCAwLjgzNzU1NSwgMS4zMjc5NiwgMS45ODI3NCwgMy4yODkyMSwgNC4xMTAwNSIsIFwKLSAgICAgICAgICAiMC4xOTYyMTIsIDAuMjg5NjQsIDAuODM3NzYyLCAxLjMyODAzLCAxLjk4MTgxLCAzLjI5MDgxLCA0LjEwOTQ5IiwgXAotICAgICAgICAgICIwLjE5NjIzMiwgMC4yODk2NjksIDAuODM5MDgsIDEuMzI4NDEsIDEuOTgzMDIsIDMuMjg4NzksIDQuMTEwMDMiLCBcCi0gICAgICAgICAgIjAuMTk2MjEyLCAwLjI4OTYzNiwgMC44Mzc0ODUsIDEuMzI4NjEsIDEuOTgyMjQsIDMuMjkxNywgNC4xMTAxMiIsIFwKLSAgICAgICAgICAiMC4xOTYxNzksIDAuMjg5NjM1LCAwLjgzNzQ4MiwgMS4zMjgxLCAxLjk4Mjk5LCAzLjI4ODUxLCA0LjEwNjI4IiwgXAotICAgICAgICAgICIwLjE5NjI1LCAwLjI4OTY0MiwgMC44MzkwMzcsIDEuMzI4MDMsIDEuOTgzMjMsIDMuMjkzMzUsIDQuMTA2NzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjAiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIwMTIxNCwgMC4yNDU0OTcsIDAuNDkxNTM2LCAwLjcwNzc3OCwgMC45OTU4MjgsIDEuNTcxNzQsIDEuOTMxNDciLCBcCi0gICAgICAgICAgIjAuMjExNjUxLCAwLjI1NTg0MywgMC41MDE5MDEsIDAuNzE4MTYxLCAxLjAwNjI3LCAxLjU4MjA1LCAxLjk0MTg5IiwgXAotICAgICAgICAgICIwLjIyNTEwOCwgMC4yNjkzNzEsIDAuNTE1NDI2LCAwLjczMTY3NywgMS4wMTk3MSwgMS41OTU2LCAxLjk1NTM2IiwgXAotICAgICAgICAgICIwLjIzODkxOCwgMC4yODMxMDgsIDAuNTI5MTgxLCAwLjc0NTQ0MiwgMS4wMzM1OCwgMS42MDk0MywgMS45NjkxOCIsIFwKLSAgICAgICAgICAiMC4yNTI2NiwgMC4yOTY4MywgMC41NDI4NzcsIDAuNzU5MTY2LCAxLjA0NzI0LCAxLjYyMzEsIDEuOTgyODgiLCBcCi0gICAgICAgICAgIjAuMjc0Njk2LCAwLjMxODk1LCAwLjU2NDk4NSwgMC43ODEyNDgsIDEuMDY5MzksIDEuNjQ1MiwgMi4wMDQ5OSIsIFwKLSAgICAgICAgICAiMC4yOTQyOTgsIDAuMzM4NTA0LCAwLjU4NDYxMSwgMC44MDA4OSwgMS4wODg5OCwgMS42NjQ4MiwgMi4wMjQ2MyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNzE3MDEsIDAuMjU2MzAyLCAwLjc0ODU5NywgMS4xODgyLCAxLjc3MDY0LCAyLjkzOTE3LCAzLjY3NjU3IiwgXAotICAgICAgICAgICIwLjE3MTYzNSwgMC4yNTYyNSwgMC43NDc3NDIsIDEuMTg4LCAxLjc3MzY1LCAyLjk0NDUsIDMuNjczNDQiLCBcCi0gICAgICAgICAgIjAuMTcxNjcyLCAwLjI1NjI4MiwgMC43NDc1NzksIDEuMTg4MDcsIDEuNzcwNSwgMi45NDA4LCAzLjY3MTM4IiwgXAotICAgICAgICAgICIwLjE3MTY2MiwgMC4yNTYyMTIsIDAuNzQ3NzU2LCAxLjE4Nzk3LCAxLjc3MzYxLCAyLjk0NDg0LCAzLjY3NDc3IiwgXAotICAgICAgICAgICIwLjE3MTcxNywgMC4yNTYyODcsIDAuNzQ5MzQ4LCAxLjE4OCwgMS43NzI0NCwgMi45NDQ3MywgMy42NzE0NCIsIFwKLSAgICAgICAgICAiMC4xNzE2MTIsIDAuMjU2MjExLCAwLjc0NzgxLCAxLjE4Nzk1LCAxLjc3MzUsIDIuOTQwMjEsIDMuNjcxMDkiLCBcCi0gICAgICAgICAgIjAuMTcxNTYyLCAwLjI1NjE4NSwgMC43NDgyMTYsIDEuMTg3OTgsIDEuNzczNCwgMi45NDI0MiwgMy42NzU0OCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xOTk5NjIsIDAuMjUwMjMyLCAwLjUzMDMyNSwgMC43NzcyNTUsIDEuMTA2NTUsIDEuNzY1MzMsIDIuMTc2NzIiLCBcCi0gICAgICAgICAgIjAuMjExNjM5LCAwLjI2MTkxNiwgMC41NDIwMTcsIDAuNzg4OTU5LCAxLjExODU2LCAxLjc3NywgMi4xODgzNyIsIFwKLSAgICAgICAgICAiMC4yMjQ4MjMsIDAuMjc1MTA4LCAwLjU1NTIwMiwgMC44MDIxMzUsIDEuMTMxNTEsIDEuNzg5OTksIDIuMjAxNjciLCBcCi0gICAgICAgICAgIjAuMjM3Mzg0LCAwLjI4NzY3MywgMC41Njc3NzMsIDAuODE0NzA3LCAxLjE0Mzk2LCAxLjgwMjQ5LCAyLjIxNDE2IiwgXAotICAgICAgICAgICIwLjI0OTg1OSwgMC4zMDAxNTMsIDAuNTgwMjYxLCAwLjgyNzE5MywgMS4xNTcwNiwgMS44MTUzMSwgMi4yMjY2MiIsIFwKLSAgICAgICAgICAiMC4yNjkxNzksIDAuMzE5NDgyLCAwLjU5OTY3MywgMC44NDY1NzIsIDEuMTc1ODksIDEuODM0NjgsIDIuMjQ1ODIiLCBcCi0gICAgICAgICAgIjAuMjg1ODM4LCAwLjMzNjEzMiwgMC42MTYyODYsIDAuODYzMjI5LCAxLjE5Mjc0LCAxLjg1MTAxLCAyLjI2MjYyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE5MTQ2MywgMC4yODUxNTEsIDAuODM0ODk0LCAxLjMyNjYsIDEuOTc5NTQsIDMuMjg3MDQsIDQuMTA0MDUiLCBcCi0gICAgICAgICAgIjAuMTkxMzczLCAwLjI4NTE1NSwgMC44MzUwNDQsIDEuMzI2NjIsIDEuOTc3NTUsIDMuMjkwOTYsIDQuMTA4MzgiLCBcCi0gICAgICAgICAgIjAuMTkxMzk3LCAwLjI4NTE4NSwgMC44MzQ5NTUsIDEuMzI2NiwgMS45Nzc0NCwgMy4yODg2NiwgNC4xMDY1NCIsIFwKLSAgICAgICAgICAiMC4xOTEzODgsIDAuMjg1MTY3LCAwLjgzNDExMiwgMS4zMjY2LCAxLjk4MjE5LCAzLjI4MjM0LCA0LjEwODI3IiwgXAotICAgICAgICAgICIwLjE5MTM5LCAwLjI4NTExLCAwLjgzNDkyNSwgMS4zMjY2LCAxLjk3ODUsIDMuMjg4MzQsIDQuMDk5MjUiLCBcCi0gICAgICAgICAgIjAuMTkxNDQ5LCAwLjI4NTE0MSwgMC44MzU5MzMsIDEuMzI2NjEsIDEuOTc1NDksIDMuMjkwNjMsIDQuMDk5MiIsIFwKLSAgICAgICAgICAiMC4xOTE2NzYsIDAuMjg1MjQxLCAwLjgzNDk1NiwgMS4zMjY2LCAxLjk3ODUzLCAzLjI5MDE2LCA0LjA5ODg0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIxIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xODYxNywgMC4yMzAxNTcsIDAuNDc1NTQ3LCAwLjY5MTUzNiwgMC45NzkzNTcsIDEuNTU0OTgsIDEuOTE0NjMiLCBcCi0gICAgICAgICAgIjAuMTk2OTA2LCAwLjI0MDg4NCwgMC40ODYyNzEsIDAuNzAyMjE2LCAwLjk5MDA3MiwgMS41NjU3LCAxLjkyNTM1IiwgXAotICAgICAgICAgICIwLjIxMDMzNSwgMC4yNTQzNDcsIDAuNDk5NzEyLCAwLjcxNTY1MywgMS4wMDM2NCwgMS41NzkxMSwgMS45Mzg3OSIsIFwKLSAgICAgICAgICAiMC4yMjM5NzIsIDAuMjY3OTM3LCAwLjUxMzMzOSwgMC43MjkyODYsIDEuMDE3MTksIDEuNTkyNzYsIDEuOTUyNDEiLCBcCi0gICAgICAgICAgIjAuMjM3ODkxLCAwLjI4MTg5OCwgMC41MjcyNTMsIDAuNzQzMjQ0LCAxLjAzMTE0LCAxLjYwNjcsIDEuOTY2MzgiLCBcCi0gICAgICAgICAgIjAuMjU5OTE0LCAwLjMwMzkwMiwgMC41NDkzNDYsIDAuNzY1MzMzLCAxLjA1MzE2LCAxLjYyODc5LCAxLjk4ODQ0IiwgXAotICAgICAgICAgICIwLjI3OTAwOSwgMC4zMjI5NDUsIDAuNTY4MzE5LCAwLjc4NDQ0OSwgMS4wNzIyMywgMS42NDc4MSwgMi4wMDc3NSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNzAxOTMsIDAuMjU0NjY3LCAwLjc0ODMxLCAxLjE4Njc2LCAxLjc3MTI2LCAyLjkzODQ1LCAzLjY3NjYzIiwgXAotICAgICAgICAgICIwLjE3MDE4NiwgMC4yNTQ4MDgsIDAuNzQ2MDMyLCAxLjE4NjYzLCAxLjc3MTUzLCAyLjk0MjMzLCAzLjY2OTkzIiwgXAotICAgICAgICAgICIwLjE3MDIwMSwgMC4yNTQ3NiwgMC43NDYxNjQsIDEuMTg2NjMsIDEuNzY4MTcsIDIuOTQyMTIsIDMuNjc1NDEiLCBcCi0gICAgICAgICAgIjAuMTcwMTM1LCAwLjI1NDczMSwgMC43NDYxMDIsIDEuMTg2NiwgMS43Njk3NywgMi45NDM4NywgMy42NzUzMSIsIFwKLSAgICAgICAgICAiMC4xNzAxNSwgMC4yNTQ3MTcsIDAuNzQ2NDAxLCAxLjE4NjYyLCAxLjc3MjMyLCAyLjk0MzUsIDMuNjc1NzYiLCBcCi0gICAgICAgICAgIjAuMTcwMTMsIDAuMjU0NjgxLCAwLjc0NjEzLCAxLjE4Njc0LCAxLjc3MTI1LCAyLjkzOTM2LCAzLjY3MDE3IiwgXAotICAgICAgICAgICIwLjE3MDM1OSwgMC4yNTQ4ODYsIDAuNzQ3NjY1LCAxLjE4NDEyLCAxLjc2OTQ2LCAyLjkzODkyLCAzLjY3NDMyIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE5MTA5NCwgMC4yNDEzNzEsIDAuNTIxNTAzLCAwLjc2ODQyMSwgMS4wOTc3OCwgMS43NTY0OSwgMi4xNjgyNCIsIFwKLSAgICAgICAgICAiMC4yMDE0NjksIDAuMjUxNzY5LCAwLjUzMTg4NywgMC43Nzg4MzQsIDEuMTA4MTUsIDEuNzY2NjcsIDIuMTc4MiIsIFwKLSAgICAgICAgICAiMC4yMTQzOTUsIDAuMjY0NzAyLCAwLjU0NDgzNSwgMC43OTE3ODEsIDEuMTIxMzQsIDEuNzc5NzgsIDIuMTkxMjMiLCBcCi0gICAgICAgICAgIjAuMjI3NTgsIDAuMjc3ODgyLCAwLjU1ODAzOSwgMC44MDQ5ODYsIDEuMTM0MzcsIDEuNzkyODIsIDIuMjA0NTQiLCBcCi0gICAgICAgICAgIjAuMjQwNzgsIDAuMjkxMDk1LCAwLjU3MTI4NiwgMC44MTgyNDIsIDEuMTQ3NTcsIDEuODA2MywgMi4yMTgwNyIsIFwKLSAgICAgICAgICAiMC4yNjE4MiwgMC4zMTIxNTQsIDAuNTkyMzQzLCAwLjgzOTMwOSwgMS4xNjg2NCwgMS44MjcxLCAyLjIzODY5IiwgXAotICAgICAgICAgICIwLjI3OTU1NiwgMC4zMjk4OTMsIDAuNjEwMTA5LCAwLjg1NzA4LCAxLjE4NjYzLCAxLjg0NTcsIDIuMjU2NTkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTkxMzI1LCAwLjI4NTEzMywgMC44MzU4NDYsIDEuMzI2MzksIDEuOTc5NjUsIDMuMjg1OTQsIDQuMTA0OTIiLCBcCi0gICAgICAgICAgIjAuMTkxMzU4LCAwLjI4NTE1NSwgMC44MzQ5MjQsIDEuMzI2NjEsIDEuOTc1NjMsIDMuMjgyNSwgNC4xMDM3OSIsIFwKLSAgICAgICAgICAiMC4xOTEzNTcsIDAuMjg1MTUsIDAuODM0OTMsIDEuMzI2NjEsIDEuOTgwMywgMy4yODU1NywgNC4xMDg2OCIsIFwKLSAgICAgICAgICAiMC4xOTEzNzgsIDAuMjg1MDkyLCAwLjgzNDkzMiwgMS4zMjY2LCAxLjk4MDU0LCAzLjI5MTc0LCA0LjEwNjUiLCBcCi0gICAgICAgICAgIjAuMTkxNDc3LCAwLjI4NTE5NSwgMC44MzU4NjcsIDEuMzI2NjIsIDEuOTc1MjIsIDMuMjg4MzIsIDQuMTA3NDYiLCBcCi0gICAgICAgICAgIjAuMTkxNTM3LCAwLjI4NTIwMSwgMC44MzQ5NDQsIDEuMzI2NiwgMS45NzU3MywgMy4yODMxMiwgNC4xMDUyOSIsIFwKLSAgICAgICAgICAiMC4xOTE4NjIsIDAuMjg1MzU1LCAwLjgzMzgwNywgMS4zMjY2MSwgMS45NzYxMSwgMy4yODczOCwgNC4xMDc5NCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDE2NDIsIDAuMDAxNjQ5LCAwLjAwMTY1OCwgMC4wMDE2NiwgMC4wMDE2NjEsIDAuMDAxNjYyLCAwLjAwMTY2MyIsIFwKLSAgICAgICAgICAiMC4wMDE2MzIsIDAuMDAxNjM5LCAwLjAwMTY0OCwgMC4wMDE2NTEsIDAuMDAxNjUxLCAwLjAwMTY1MSwgMC4wMDE2NTIiLCBcCi0gICAgICAgICAgIjAuMDAxNjI3LCAwLjAwMTYzMywgMC4wMDE2NDMsIDAuMDAxNjQ1LCAwLjAwMTY0NiwgMC4wMDE2NDcsIDAuMDAxNjQ3IiwgXAotICAgICAgICAgICIwLjAwMTYyMywgMC4wMDE2MjksIDAuMDAxNjM5LCAwLjAwMTY0MSwgMC4wMDE2NDIsIDAuMDAxNjQzLCAwLjAwMTY0MyIsIFwKLSAgICAgICAgICAiMC4wMDE2MTksIDAuMDAxNjI2LCAwLjAwMTYzNiwgMC4wMDE2MzgsIDAuMDAxNjM5LCAwLjAwMTY0LCAwLjAwMTY0IiwgXAotICAgICAgICAgICIwLjAwMTYxNSwgMC4wMDE2MjIsIDAuMDAxNjMyLCAwLjAwMTYzNCwgMC4wMDE2MzUsIDAuMDAxNjM2LCAwLjAwMTYzNiIsIFwKLSAgICAgICAgICAiMC4wMDE2MTEsIDAuMDAxNjE5LCAwLjAwMTYyOSwgMC4wMDE2MzIsIDAuMDAxNjMzLCAwLjAwMTYzNCwgMC4wMDE2MzQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI4ODksIDAuMDAyODk3LCAwLjAwMjkwOSwgMC4wMDI5MTEsIDAuMDAyOTEyLCAwLjAwMjkxMywgMC4wMDI5MTQiLCBcCi0gICAgICAgICAgIjAuMDAyODg0LCAwLjAwMjg5MiwgMC4wMDI5MDMsIDAuMDAyOTA2LCAwLjAwMjkwNywgMC4wMDI5MDgsIDAuMDAyOTA4IiwgXAotICAgICAgICAgICIwLjAwMjg4LCAwLjAwMjg4OCwgMC4wMDI4OTksIDAuMDAyOTAyLCAwLjAwMjkwMywgMC4wMDI5MDQsIDAuMDAyOTA0IiwgXAotICAgICAgICAgICIwLjAwMjg3NiwgMC4wMDI4ODUsIDAuMDAyODk3LCAwLjAwMjksIDAuMDAyOTAxLCAwLjAwMjkwMiwgMC4wMDI5MDIiLCBcCi0gICAgICAgICAgIjAuMDAyODczLCAwLjAwMjg4MiwgMC4wMDI4OTUsIDAuMDAyODk4LCAwLjAwMjg5OSwgMC4wMDI5LCAwLjAwMjkiLCBcCi0gICAgICAgICAgIjAuMDAyODY5LCAwLjAwMjg3OCwgMC4wMDI4OTIsIDAuMDAyODk1LCAwLjAwMjg5NywgMC4wMDI4OTgsIDAuMDAyODk4IiwgXAotICAgICAgICAgICIwLjAwMjg2NiwgMC4wMDI4NzUsIDAuMDAyODksIDAuMDAyODk0LCAwLjAwMjg5NiwgMC4wMDI4OTcsIDAuMDAyODk4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTQ0NCwgMC4wMDE0NSwgMC4wMDE0NTgsIDAuMDAxNDU5LCAwLjAwMTQ2MSwgMC4wMDE0NiwgMC4wMDE0NjEiLCBcCi0gICAgICAgICAgIjAuMDAxNDQsIDAuMDAxNDQ1LCAwLjAwMTQ1MywgMC4wMDE0NTUsIDAuMDAxNDU1LCAwLjAwMTQ1NiwgMC4wMDE0NTYiLCBcCi0gICAgICAgICAgIjAuMDAxNDMxLCAwLjAwMTQzNywgMC4wMDE0NDUsIDAuMDAxNDQ2LCAwLjAwMTQ0NywgMC4wMDE0NDcsIDAuMDAxNDQ4IiwgXAotICAgICAgICAgICIwLjAwMTQyMywgMC4wMDE0MjksIDAuMDAxNDM4LCAwLjAwMTQzOSwgMC4wMDE0NCwgMC4wMDE0NCwgMC4wMDE0NDEiLCBcCi0gICAgICAgICAgIjAuMDAxNDE3LCAwLjAwMTQyMywgMC4wMDE0MzIsIDAuMDAxNDM0LCAwLjAwMTQzNCwgMC4wMDE0MzUsIDAuMDAxNDM1IiwgXAotICAgICAgICAgICIwLjAwMTQwOSwgMC4wMDE0MTYsIDAuMDAxNDI1LCAwLjAwMTQyNywgMC4wMDE0MjgsIDAuMDAxNDI4LCAwLjAwMTQyOSIsIFwKLSAgICAgICAgICAiMC4wMDE0MDQsIDAuMDAxNDExLCAwLjAwMTQyMSwgMC4wMDE0MjMsIDAuMDAxNDI0LCAwLjAwMTQyNSwgMC4wMDE0MjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI3NDUsIDAuMDAyNzUzLCAwLjAwMjc2NSwgMC4wMDI3NjcsIDAuMDAyNzY4LCAwLjAwMjc2OSwgMC4wMDI3NyIsIFwKLSAgICAgICAgICAiMC4wMDI3MzgsIDAuMDAyNzQ2LCAwLjAwMjc1OCwgMC4wMDI3NTksIDAuMDAyNzYxLCAwLjAwMjc2MiwgMC4wMDI3NjMiLCBcCi0gICAgICAgICAgIjAuMDAyNzMsIDAuMDAyNzM4LCAwLjAwMjc1MSwgMC4wMDI3NTMsIDAuMDAyNzU1LCAwLjAwMjc1NiwgMC4wMDI3NTYiLCBcCi0gICAgICAgICAgIjAuMDAyNzI0LCAwLjAwMjczMywgMC4wMDI3NDYsIDAuMDAyNzQ5LCAwLjAwMjc1MSwgMC4wMDI3NTIsIDAuMDAyNzUzIiwgXAotICAgICAgICAgICIwLjAwMjcxOSwgMC4wMDI3MjgsIDAuMDAyNzQzLCAwLjAwMjc0NiwgMC4wMDI3NDgsIDAuMDAyNzQ5LCAwLjAwMjc0OSIsIFwKLSAgICAgICAgICAiMC4wMDI3MTMsIDAuMDAyNzIyLCAwLjAwMjczOSwgMC4wMDI3NDIsIDAuMDAyNzQ1LCAwLjAwMjc0NiwgMC4wMDI3NDciLCBcCi0gICAgICAgICAgIjAuMDAyNzEsIDAuMDAyNzE5LCAwLjAwMjczNywgMC4wMDI3NDEsIDAuMDAyNzQzLCAwLjAwMjc0NSwgMC4wMDI3NDYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxNjQzLCAwLjAwMTY0OSwgMC4wMDE2NTksIDAuMDAxNjYxLCAwLjAwMTY2MywgMC4wMDE2NjIsIDAuMDAxNjYzIiwgXAotICAgICAgICAgICIwLjAwMTYzMSwgMC4wMDE2MzcsIDAuMDAxNjQ3LCAwLjAwMTY0OSwgMC4wMDE2NSwgMC4wMDE2NTIsIDAuMDAxNjUxIiwgXAotICAgICAgICAgICIwLjAwMTYyNCwgMC4wMDE2MzEsIDAuMDAxNjQsIDAuMDAxNjQyLCAwLjAwMTY0NCwgMC4wMDE2NDQsIDAuMDAxNjQ1IiwgXAotICAgICAgICAgICIwLjAwMTYxOCwgMC4wMDE2MjUsIDAuMDAxNjM2LCAwLjAwMTYzOCwgMC4wMDE2MzksIDAuMDAxNjQsIDAuMDAxNjQxIiwgXAotICAgICAgICAgICIwLjAwMTYxNCwgMC4wMDE2MjEsIDAuMDAxNjMyLCAwLjAwMTYzNCwgMC4wMDE2MzYsIDAuMDAxNjM2LCAwLjAwMTYzNyIsIFwKLSAgICAgICAgICAiMC4wMDE2MDksIDAuMDAxNjE2LCAwLjAwMTYyOCwgMC4wMDE2MzEsIDAuMDAxNjMyLCAwLjAwMTYzNCwgMC4wMDE2MzQiLCBcCi0gICAgICAgICAgIjAuMDAxNjA1LCAwLjAwMTYxMywgMC4wMDE2MjYsIDAuMDAxNjI5LCAwLjAwMTYzMSwgMC4wMDE2MzMsIDAuMDAxNjMzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyMTgzLCAwLjAwMjE4NywgMC4wMDIxOTMsIDAuMDAyMTk0LCAwLjAwMjE5NCwgMC4wMDIxOTUsIDAuMDAyMTk1IiwgXAotICAgICAgICAgICIwLjAwMjE4MSwgMC4wMDIxODUsIDAuMDAyMTksIDAuMDAyMTkxLCAwLjAwMjE5MSwgMC4wMDIxOTIsIDAuMDAyMTkyIiwgXAotICAgICAgICAgICIwLjAwMjE3NSwgMC4wMDIxOCwgMC4wMDIxODYsIDAuMDAyMTg3LCAwLjAwMjE4NywgMC4wMDIxODcsIDAuMDAyMTg4IiwgXAotICAgICAgICAgICIwLjAwMjE3MSwgMC4wMDIxNzYsIDAuMDAyMTgyLCAwLjAwMjE4MywgMC4wMDIxODQsIDAuMDAyMTg0LCAwLjAwMjE4NCIsIFwKLSAgICAgICAgICAiMC4wMDIxNjcsIDAuMDAyMTczLCAwLjAwMjE4LCAwLjAwMjE4MSwgMC4wMDIxODEsIDAuMDAyMTgyLCAwLjAwMjE4MiIsIFwKLSAgICAgICAgICAiMC4wMDIxNjIsIDAuMDAyMTY4LCAwLjAwMjE3NywgMC4wMDIxNzgsIDAuMDAyMTc5LCAwLjAwMjE3OSwgMC4wMDIxOCIsIFwKLSAgICAgICAgICAiMC4wMDIxNTgsIDAuMDAyMTY1LCAwLjAwMjE3NCwgMC4wMDIxNzUsIDAuMDAyMTc2LCAwLjAwMjE3NywgMC4wMDIxNzciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxMzgzLCAwLjAwMTM4OSwgMC4wMDEzOTcsIDAuMDAxMzk3LCAwLjAwMTQsIDAuMDAxNCwgMC4wMDE0IiwgXAotICAgICAgICAgICIwLjAwMTM3OCwgMC4wMDEzODMsIDAuMDAxMzkxLCAwLjAwMTM5MywgMC4wMDEzOTQsIDAuMDAxMzk0LCAwLjAwMTM5NCIsIFwKLSAgICAgICAgICAiMC4wMDEzNjcsIDAuMDAxMzczLCAwLjAwMTM4MiwgMC4wMDEzODMsIDAuMDAxMzg0LCAwLjAwMTM4NSwgMC4wMDEzODUiLCBcCi0gICAgICAgICAgIjAuMDAxMzU5LCAwLjAwMTM2NSwgMC4wMDEzNzQsIDAuMDAxMzc2LCAwLjAwMTM3NiwgMC4wMDEzNzgsIDAuMDAxMzc4IiwgXAotICAgICAgICAgICIwLjAwMTM1MiwgMC4wMDEzNTgsIDAuMDAxMzY4LCAwLjAwMTM3LCAwLjAwMTM3MSwgMC4wMDEzNzIsIDAuMDAxMzcyIiwgXAotICAgICAgICAgICIwLjAwMTM0MywgMC4wMDEzNSwgMC4wMDEzNjIsIDAuMDAxMzY0LCAwLjAwMTM2NiwgMC4wMDEzNjcsIDAuMDAxMzY3IiwgXAotICAgICAgICAgICIwLjAwMTMzOCwgMC4wMDEzNDYsIDAuMDAxMzU4LCAwLjAwMTM2MSwgMC4wMDEzNjMsIDAuMDAxMzY0LCAwLjAwMTM2NSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjAzNSwgMC4wMDIwNCwgMC4wMDIwNDgsIDAuMDAyMDQ5LCAwLjAwMjA1LCAwLjAwMjA1MSwgMC4wMDIwNTEiLCBcCi0gICAgICAgICAgIjAuMDAyMDI5LCAwLjAwMjAzNSwgMC4wMDIwNDIsIDAuMDAyMDQzLCAwLjAwMjA0NCwgMC4wMDIwNDUsIDAuMDAyMDQ1IiwgXAotICAgICAgICAgICIwLjAwMjAyLCAwLjAwMjAyNiwgMC4wMDIwMzUsIDAuMDAyMDM2LCAwLjAwMjAzNywgMC4wMDIwMzgsIDAuMDAyMDM4IiwgXAotICAgICAgICAgICIwLjAwMjAxMiwgMC4wMDIwMTksIDAuMDAyMDI5LCAwLjAwMjAzMSwgMC4wMDIwMzIsIDAuMDAyMDMzLCAwLjAwMjAzMyIsIFwKLSAgICAgICAgICAiMC4wMDIwMDYsIDAuMDAyMDE0LCAwLjAwMjAyNSwgMC4wMDIwMjcsIDAuMDAyMDI4LCAwLjAwMjAzLCAwLjAwMjAzIiwgXAotICAgICAgICAgICIwLjAwMiwgMC4wMDIwMDgsIDAuMDAyMDIxLCAwLjAwMjAyNCwgMC4wMDIwMjYsIDAuMDAyMDI3LCAwLjAwMjAyNyIsIFwKLSAgICAgICAgICAiMC4wMDE5OTQsIDAuMDAyMDAzLCAwLjAwMjAxOCwgMC4wMDIwMjEsIDAuMDAyMDIzLCAwLjAwMjAyNSwgMC4wMDIwMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IE9BMjJYMiAqCi0gKiAtLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKE9BMjJYMikgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjExNTgyOTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQTApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDU5MDMyODsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA1ODkwNjQ7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNTkwMzI4OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDE2NSwgMC4wMDAxNjUsIDAuMDAwMTY1LCAwLjAwMDE2NSwgMC4wMDAxNjUsIDAuMDAwMTY1LCAwLjAwMDE2NSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQTEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY0MDQ4OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDY0MDQ4OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDYzODY3MTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxNjUsIDAuMDAwMTY1LCAwLjAwMDE2NSwgMC4wMDAxNjUsIDAuMDAwMTY1LCAwLjAwMDE2NSwgMC4wMDAxNjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiwgMC4wMDAxNjYiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA1OTMxNjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA1ODk0NzI7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNTkzMTY7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNDA0LCAwLjAwMDQwNSwgMC4wMDA0MDUsIDAuMDAwNDA1LCAwLjAwMDQwNCwgMC4wMDA0MDUsIDAuMDAwNDA0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMTg4LCAwLjAwMDE4OCwgMC4wMDAxODgsIDAuMDAwMTg4LCAwLjAwMDE4OCwgMC4wMDAxODgsIDAuMDAwMTg4Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCMSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjM1MTExOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYzNTExMTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2MzUwNzU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNDA1LCAwLjAwMDQwNSwgMC4wMDA0MDUsIDAuMDAwNDA1LCAwLjAwMDQwNCwgMC4wMDA0MDQsIDAuMDAwNDA0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMTg4LCAwLjAwMDE4OCwgMC4wMDAxODgsIDAuMDAwMTg4LCAwLjAwMDE4OCwgMC4wMDAxODgsIDAuMDAwMTg4Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMjU4MDE2OwotICAgIGZ1bmN0aW9uIDogIigoQTArQTEpIChCMCtCMSkpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjE0OTU5LCAwLjQwMjE3LCAwLjU0NTk5MywgMC43MjU1MDgsIDAuOTA0NzM0LCAxLjA4MzksIDEuMjYzMDUiLCBcCi0gICAgICAgICAgIjAuMjI2ODc4LCAwLjQxNDAzNSwgMC41NTc4NywgMC43Mzc0MTUsIDAuOTE2NjMsIDEuMDk1NzcsIDEuMjc0OTMiLCBcCi0gICAgICAgICAgIjAuMjQyMDY2LCAwLjQyOTI4NCwgMC41NzMxMTYsIDAuNzUyNjMxLCAwLjkzMTg1LCAxLjExMTAxLCAxLjI5MDE5IiwgXAotICAgICAgICAgICIwLjI1NjgzNywgMC40NDQwMjMsIDAuNTg3ODQ3LCAwLjc2NzQwMiwgMC45NDY2MTMsIDEuMTI1NzYsIDEuMzA0OSIsIFwKLSAgICAgICAgICAiMC4yNzExNTMsIDAuNDU4MzczLCAwLjYwMjIxMSwgMC43ODE2NDQsIDAuOTYwOTQ1LCAxLjE0MDEyLCAxLjMxOTI1IiwgXAotICAgICAgICAgICIwLjI5MzY5MiwgMC40ODA4NTIsIDAuNjI0Njg0LCAwLjgwNDI0MywgMC45ODM0NDQsIDEuMTYyNiwgMS4zNDE3NCIsIFwKLSAgICAgICAgICAiMC4zMTMwNjIsIDAuNTAwMjMyLCAwLjY0NDA4MiwgMC44MjM1MjMsIDEuMDAyODIsIDEuMTgyLCAxLjM2MTE2Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExMTc1NSwgMC40NjEwNTgsIDAuNzQ5NzQ2LCAxLjExMzY3LCAxLjQ3Nzc1LCAxLjg0MjA2LCAyLjIwMzMiLCBcCi0gICAgICAgICAgIjAuMTExNjA5LCAwLjQ2MTEwMSwgMC43NDg3NTUsIDEuMTEyMzgsIDEuNDc3NzYsIDEuODQyMDUsIDIuMjAzNDkiLCBcCi0gICAgICAgICAgIjAuMTExNjQyLCAwLjQ2MDk4LCAwLjc0OTgzOSwgMS4xMTM2NywgMS40Nzc2NywgMS44NDE5LCAyLjIwNzAyIiwgXAotICAgICAgICAgICIwLjExMTYxOCwgMC40NjEwODQsIDAuNzQ4NzAyLCAxLjExMjM4LCAxLjQ3Nzc1LCAxLjg0MjA1LCAyLjIwMzkxIiwgXAotICAgICAgICAgICIwLjExMTU2OCwgMC40NjEwNTIsIDAuNzQ4NjI2LCAxLjExMjM2LCAxLjQ3NjM5LCAxLjg0MTkzLCAyLjIwMzE5IiwgXAotICAgICAgICAgICIwLjExMTU0OCwgMC40NjA5ODQsIDAuNzQ4NiwgMS4xMTAxOCwgMS40Nzc3LCAxLjg0MjA2LCAyLjIwNTkyIiwgXAotICAgICAgICAgICIwLjExMTQ5NCwgMC40NjEwMDcsIDAuNzQ4NTQyLCAxLjExMTQ0LCAxLjQ3NzYyLCAxLjg0MjEsIDIuMjA2OTUiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjA0ODUzLCAwLjQyMTUwNSwgMC41ODcyNjYsIDAuNzk0MDY5LCAxLjAwMDYyLCAxLjIwNjk4LCAxLjQxMzM1IiwgXAotICAgICAgICAgICIwLjIxNjMxMSwgMC40MzI5MjQsIDAuNTk4NjkyLCAwLjgwNTQ4NywgMS4wMTIwMywgMS4yMTgzOSwgMS40MjQ3NyIsIFwKLSAgICAgICAgICAiMC4yMjkzMTQsIDAuNDQ1OTcyLCAwLjYxMTc0MiwgMC44MTg1MzcsIDEuMDI1MDksIDEuMjMxNDQsIDEuNDM3NzkiLCBcCi0gICAgICAgICAgIjAuMjQxODksIDAuNDU4NTM5LCAwLjYyNDMwNywgMC44MzExMTEsIDEuMDM3NjIsIDEuMjQ0MDQsIDEuNDUwMzYiLCBcCi0gICAgICAgICAgIjAuMjU0MjY4LCAwLjQ3MDkyNiwgMC42MzY2OTcsIDAuODQzNTIsIDEuMDUwMDEsIDEuMjU2NDMsIDEuNDYyNzUiLCBcCi0gICAgICAgICAgIjAuMjczODMyLCAwLjQ5MDUyMywgMC42NTYyNzgsIDAuODYzMDI2LCAxLjA2OTYzLCAxLjI3NTk5LCAxLjQ4MjM0IiwgXAotICAgICAgICAgICIwLjI5MDkzLCAwLjUwNzYzMiwgMC42NzM0MDYsIDAuODgwMTgxLCAxLjA4Njc4LCAxLjI5MzEzLCAxLjQ5OTQyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEyODc1MywgMC41MjA1MTUsIDAuODQ1NzgxLCAxLjI1NDA3LCAxLjY2NTMxLCAyLjA3NjI5LCAyLjQ4NzEiLCBcCi0gICAgICAgICAgIjAuMTI4ODc2LCAwLjUyMDM2MywgMC44NDQ1MywgMS4yNTQwOSwgMS42NjU0OCwgMi4wNzY0LCAyLjQ4NzUxIiwgXAotICAgICAgICAgICIwLjEyODc1MywgMC41MjA0NDYsIDAuODQ0NTAxLCAxLjI1NDE0LCAxLjY2NTQ4LCAyLjA3NjUsIDIuNDg0ODciLCBcCi0gICAgICAgICAgIjAuMTI4NzU2LCAwLjUxOTc0NCwgMC44NDQ0NjMsIDEuMjU1MzMsIDEuNjY1NzYsIDIuMDc2NTQsIDIuNDg3MjIiLCBcCi0gICAgICAgICAgIjAuMTI4NzQ0LCAwLjUyMDA1NSwgMC44NDQ1MzMsIDEuMjU1MjYsIDEuNjY1NTksIDIuMDc2NTgsIDIuNDg3ODciLCBcCi0gICAgICAgICAgIjAuMTI4Nzg2LCAwLjUxOTc1LCAwLjg0NDQxMywgMS4yNTQxNSwgMS42NjU0NiwgMi4wNzYwOCwgMi40ODcyNSIsIFwKLSAgICAgICAgICAiMC4xMjg4MzgsIDAuNTE5NTY4LCAwLjg0MzkyLCAxLjI1NDY5LCAxLjY2NTgyLCAyLjA3Njg1LCAyLjQ4ODE1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkExIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMDI1MSwgMC4zODg5NDUsIDAuNTMyNTcsIDAuNzExOTEsIDAuODkxMDksIDEuMDcwMDksIDEuMjQ5MTUiLCBcCi0gICAgICAgICAgIjAuMjE0Nzg3LCAwLjQwMTIxOCwgMC41NDQ4MjUsIDAuNzI0MTcxLCAwLjkwMzI3NCwgMS4wODIzMywgMS4yNjE0MyIsIFwKLSAgICAgICAgICAiMC4yMjk4NTksIDAuNDE2MjUyLCAwLjU1OTg3MywgMC43MzkxNDcsIDAuOTE4MzYzLCAxLjA5NzUxLCAxLjI3NjQ1IiwgXAotICAgICAgICAgICIwLjI0NDQ5NCwgMC40MzA4NjQsIDAuNTc0NDg4LCAwLjc1Mzg0OSwgMC45MzI5NSwgMS4xMTIsIDEuMjkxMDkiLCBcCi0gICAgICAgICAgIjAuMjU4NzY0LCAwLjQ0NTE0OCwgMC41ODg3NjMsIDAuNzY4MDM4LCAwLjk0NzI1OCwgMS4xMjY0LCAxLjMwNTM0IiwgXAotICAgICAgICAgICIwLjI4MTI0OCwgMC40Njc0NTgsIDAuNjExMDgxLCAwLjc5MDM0NiwgMC45Njk1MTYsIDEuMTQ4NjIsIDEuMzI3NzkiLCBcCi0gICAgICAgICAgIjAuMzAwNDE0LCAwLjQ4Njc1NCwgMC42MzAzNzcsIDAuODA5NzQ4LCAwLjk4ODg0OSwgMS4xNjc5LCAxLjM0Njk4Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExMDQ1OSwgMC40NTk5ODEsIDAuNzQ3NTk0LCAxLjExMjY2LCAxLjQ3NjgsIDEuODM5MDksIDIuMjA1NDgiLCBcCi0gICAgICAgICAgIjAuMTEwNDU3LCAwLjQ1OTgyNiwgMC43NDg2ODMsIDEuMTEyNjUsIDEuNDc2NjksIDEuODQwOTcsIDIuMjA1OTQiLCBcCi0gICAgICAgICAgIjAuMTEwMzM1LCAwLjQ1OTk1LCAwLjc0NzU0NywgMS4xMTIyNCwgMS40NzY3NSwgMS44NDEyNiwgMi4yMDU0MyIsIFwKLSAgICAgICAgICAiMC4xMTAzNDUsIDAuNDYwMDA2LCAwLjc0NzYzNCwgMS4xMTI2NywgMS40NzY3MSwgMS44NDEwMSwgMi4yMDIyOCIsIFwKLSAgICAgICAgICAiMC4xMTAzMjksIDAuNDU5ODg4LCAwLjc0NzUzOCwgMS4xMTIyMiwgMS40NzY2OSwgMS44NDEyMywgMi4yMDUzOSIsIFwKLSAgICAgICAgICAiMC4xMTA0ODcsIDAuNDU5ODY1LCAwLjc0NzQ2NCwgMS4xMTA1NSwgMS40NzY2LCAxLjg0MTIsIDIuMjA1OTciLCBcCi0gICAgICAgICAgIjAuMTEwMzQzLCAwLjQ1OTk4OCwgMC43NDc1OTQsIDEuMTA5NTEsIDEuNDc2NzEsIDEuODQxMDIsIDIuMjA1MzUiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTk3OTM2LCAwLjQxNDU4OCwgMC41ODAzNDksIDAuNzg3MTUyLCAwLjk5MzcwMywgMS4yMDAwNiwgMS40MDY0NiIsIFwKLSAgICAgICAgICAiMC4yMDc5MzUsIDAuNDI0NjEsIDAuNTkwMzgsIDAuNzk3MTI3LCAxLjAwMzY3LCAxLjIxMDA4LCAxLjQxNjQyIiwgXAotICAgICAgICAgICIwLjIyMDg1MiwgMC40Mzc0OTQsIDAuNjAzMjczLCAwLjgxMDEwOCwgMS4wMTY1OCwgMS4yMjI5OCwgMS40MjkzMiIsIFwKLSAgICAgICAgICAiMC4yMzM4MTYsIDAuNDUwNDY2LCAwLjYxNjI0MiwgMC44MjMwMDMsIDEuMDI5NTksIDEuMjM2MDgsIDEuNDQyMzEiLCBcCi0gICAgICAgICAgIjAuMjQ3NDE0LCAwLjQ2NDA4LCAwLjYyOTg0OCwgMC44MzY2NzYsIDEuMDQzMTUsIDEuMjQ5NywgMS40NTU5IiwgXAotICAgICAgICAgICIwLjI2ODc3OSwgMC40ODU0NTYsIDAuNjUxMjE3LCAwLjg1ODAyMSwgMS4wNjQ1OSwgMS4yNzA5NSwgMS40NzczNiIsIFwKLSAgICAgICAgICAiMC4yODc0MDEsIDAuNTA0MDc1LCAwLjY2OTgzNSwgMC44NzY2NCwgMS4wODMyNCwgMS4yODk1OSwgMS40OTU4OSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMjg3NTYsIDAuNTIwNTA0LCAwLjg0NTgyNSwgMS4yNTQxLCAxLjY2NTQxLCAyLjA3NjMyLCAyLjQ4NjMzIiwgXAotICAgICAgICAgICIwLjEyODc5NiwgMC41MjAwMDYsIDAuODQ0NTE0LCAxLjI1NDE5LCAxLjY2NTY0LCAyLjA3NjU4LCAyLjQ4NzY4IiwgXAotICAgICAgICAgICIwLjEyODc2NCwgMC41MjAyMTMsIDAuODQ0NDg4LCAxLjI1NTIzLCAxLjY2NTIzLCAyLjA3NzE2LCAyLjQ4NzUiLCBcCi0gICAgICAgICAgIjAuMTI4NzgsIDAuNTE5NzkzLCAwLjg0NDQ0OSwgMS4yNTU1NCwgMS42NjU2NCwgMi4wNzUzMywgMi40ODczNSIsIFwKLSAgICAgICAgICAiMC4xMjg3ODEsIDAuNTE5OTMsIDAuODQ0NTksIDEuMjU1MjMsIDEuNjY1NjksIDIuMDc1NjMsIDIuNDg3OSIsIFwKLSAgICAgICAgICAiMC4xMjg4NjYsIDAuNTE5NTgxLCAwLjg0NjA2NiwgMS4yNTQwNSwgMS42NjQ5NiwgMi4wNzYyMywgMi40ODY2IiwgXAotICAgICAgICAgICIwLjEyODg1LCAwLjUxOTg1NiwgMC44NDQ1OTEsIDEuMjU0MDgsIDEuNjY0OCwgMi4wNzU4OSwgMi40ODg0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xOTIzNDYsIDAuMzc5NTMsIDAuNTIzMzczLCAwLjcwMjkwOSwgMC44ODIxMywgMS4wNjEyNywgMS4yNDA0NCIsIFwKLSAgICAgICAgICAiMC4yMDMyMzUsIDAuMzkwMjc2LCAwLjUzNDExNiwgMC43MTM1NTUsIDAuODkyODMxLCAxLjA3MjA1LCAxLjI1MTE2IiwgXAotICAgICAgICAgICIwLjIxNjI3MSwgMC40MDM0NzMsIDAuNTQ3MzA5LCAwLjcyNjg1NywgMC45MDYwNzMsIDEuMDg1MjIsIDEuMjY0MzciLCBcCi0gICAgICAgICAgIjAuMjI5OTEsIDAuNDE3MTM3LCAwLjU2MDk4LCAwLjc0MDQ0MSwgMC45MTk3OTgsIDEuMDk5MDQsIDEuMjc4MDIiLCBcCi0gICAgICAgICAgIjAuMjQ0MDAzLCAwLjQzMTAwMywgMC41NzQ4NDcsIDAuNzU0MzkzLCAwLjkzMzYwOCwgMS4xMTI3OCwgMS4yOTE5IiwgXAotICAgICAgICAgICIwLjI2NTg4LCAwLjQ1MzA0MiwgMC41OTY4OTgsIDAuNzc2MzQyLCAwLjk1NTYzOSwgMS4xMzQ4MiwgMS4zMTQiLCBcCi0gICAgICAgICAgIjAuMjg1MzgsIDAuNDcyMzg4LCAwLjYxNjIzNiwgMC43OTU3MTIsIDAuOTc0OTkyLCAxLjE1NDE3LCAxLjMzMzMiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTExNjI4LCAwLjQ2MTEzOSwgMC43NDgwMjQsIDEuMTEzNzYsIDEuNDc3ODIsIDEuODQyMTQsIDIuMjA0NzEiLCBcCi0gICAgICAgICAgIjAuMTExNzc1LCAwLjQ2MTA2LCAwLjc0ODY0OCwgMS4xMTMyMSwgMS40NzY2OCwgMS44NDIyOCwgMi4yMDMzOCIsIFwKLSAgICAgICAgICAiMC4xMTE1NDcsIDAuNDYxMDI5LCAwLjc0ODcxOCwgMS4xMTIxOCwgMS40Nzc3MywgMS44NDIwMywgMi4yMDU1NSIsIFwKLSAgICAgICAgICAiMC4xMTE0ODIsIDAuNDYwOTgyLCAwLjc0ODYyMiwgMS4xMTMyOSwgMS40Nzc3NCwgMS44NDEzOCwgMi4yMDY1NiIsIFwKLSAgICAgICAgICAiMC4xMTE2MzMsIDAuNDYwOTcyLCAwLjc0ODU2OSwgMS4xMTA1NSwgMS40NzQ1MSwgMS44NDEwNSwgMi4yMDU1MiIsIFwKLSAgICAgICAgICAiMC4xMTEzODcsIDAuNDYwOTk1LCAwLjc0ODU0LCAxLjExMjY0LCAxLjQ3NzYxLCAxLjg0MjExLCAyLjIwNzAxIiwgXAotICAgICAgICAgICIwLjExMTQ2OCwgMC40NjEwMDIsIDAuNzQ4NjE0LCAxLjExMTU1LCAxLjQ3NjYyLCAxLjg0MTE5LCAyLjIwNjAzIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE4MzI4NiwgMC4zOTY4NDgsIDAuNTYxODc5LCAwLjc2ODEzNCwgMC45NzQzNzksIDEuMTgwNSwgMS4zODY3NiIsIFwKLSAgICAgICAgICAiMC4xOTQ5NTcsIDAuNDA4NTQ1LCAwLjU3MzU0NSwgMC43Nzk4NzYsIDAuOTg1OTQyLCAxLjE5MjM3LCAxLjM5ODM2IiwgXAotICAgICAgICAgICIwLjIwODI2MywgMC40MjE4NjksIDAuNTg2OTA0LCAwLjc5MzEyNywgMC45OTkzODEsIDEuMjA1NSwgMS40MTE3OSIsIFwKLSAgICAgICAgICAiMC4yMjA4MDcsIDAuNDM0MzkxLCAwLjU5OTQyMywgMC44MDU1OTksIDEuMDExNzksIDEuMjE3OTksIDEuNDI0MjMiLCBcCi0gICAgICAgICAgIjAuMjMzMzA3LCAwLjQ0NjkyNiwgMC42MTE5NDQsIDAuODE4MTM3LCAxLjAyNDM4LCAxLjIzMDY0LCAxLjQzNjgiLCBcCi0gICAgICAgICAgIjAuMjUyOCwgMC40NjY0NTMsIDAuNjMxNDc0LCAwLjgzNzY2MiwgMS4wNDM5NCwgMS4yNTA0OSwgMS40NTYzNCIsIFwKLSAgICAgICAgICAiMC4yNjk3MjgsIDAuNDgzNDM1LCAwLjY0ODQ2MSwgMC44NTQ3OTEsIDEuMDYwODYsIDEuMjY3NSwgMS40NzMyNyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMjMzOTEsIDAuNTE2MjExLCAwLjg0MTIyMSwgMS4yNTI4MSwgMS42NjAwMiwgMi4wNzU2MywgMi40ODI4NiIsIFwKLSAgICAgICAgICAiMC4xMjM0NTUsIDAuNTE1MzYxLCAwLjg0MDg0NSwgMS4yNTIxNCwgMS42NjM5MywgMi4wNzA2MSwgMi40ODA1MSIsIFwKLSAgICAgICAgICAiMC4xMjMzNjEsIDAuNTE2MzE3LCAwLjg0MTEzOSwgMS4yNTI3NiwgMS42NTkxNSwgMi4wNzU2LCAyLjQ4NDA1IiwgXAotICAgICAgICAgICIwLjEyMzM0OSwgMC41MTU2MTMsIDAuODQwNjI5LCAxLjI1MjU5LCAxLjY2MzkxLCAyLjA3MzYzLCAyLjQ4NjgxIiwgXAotICAgICAgICAgICIwLjEyMzM3NiwgMC41MTU4OTQsIDAuODQxMjgxLCAxLjI1MjcsIDEuNjYyMSwgMi4wNzU1MSwgMi40NzkwMyIsIFwKLSAgICAgICAgICAiMC4xMjM1MSwgMC41MTU4ODYsIDAuODQwNzYzLCAxLjI1Mjc2LCAxLjY2MDczLCAyLjA3MTgsIDIuNDgxNzUiLCBcCi0gICAgICAgICAgIjAuMTIzNTc4LCAwLjUxNTI5MSwgMC44NDI1MzcsIDEuMjUwNzksIDEuNjYzOTMsIDIuMDY5NTIsIDIuNDgyNTMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjEiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE3NzY2NCwgMC4zNjM4NzcsIDAuNTA3NDI3LCAwLjY4NjcyNSwgMC44NjU3OTYsIDEuMDQ0ODQsIDEuMjIzOSIsIFwKLSAgICAgICAgICAiMC4xODg1OTksIDAuMzc0NzYzLCAwLjUxODMwMiwgMC42OTc2MjksIDAuODc2NjYyLCAxLjA1NTczLCAxLjIzNDc3IiwgXAotICAgICAgICAgICIwLjIwMTk2NCwgMC4zODgxMzksIDAuNTMxNjg5LCAwLjcxMDg5NSwgMC44OTAwNDMsIDEuMDY5MTUsIDEuMjQ4MTQiLCBcCi0gICAgICAgICAgIjAuMjE1NzkyLCAwLjQwMTc4OCwgMC41NDUzNDgsIDAuNzI0NTg0LCAwLjkwMzcwNCwgMS4wODI3NSwgMS4yNjE3OSIsIFwKLSAgICAgICAgICAiMC4yMjkzNTQsIDAuNDE1NDEsIDAuNTU4OTU3LCAwLjczODI4MSwgMC45MTczNDEsIDEuMDk2MzksIDEuMjc1NDIiLCBcCi0gICAgICAgICAgIjAuMjUxNjA2LCAwLjQzNzc2NCwgMC41ODEzMzYsIDAuNzYwNjY1LCAwLjkzOTczNSwgMS4xMTg3NiwgMS4yOTc4MyIsIFwKLSAgICAgICAgICAiMC4yNzA3OTYsIDAuNDU2OTg1LCAwLjYwMDUzNywgMC43Nzk4OCwgMC45NTg5MjEsIDEuMTM3OTksIDEuMzE3MDIiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTEwMTgyLCAwLjQ1OTU2NiwgMC43NDY2MTMsIDEuMTEyMzcsIDEuNDc2NDQsIDEuODQwODIsIDIuMjAyMjIiLCBcCi0gICAgICAgICAgIjAuMTEwMTYyLCAwLjQ1OTY2NSwgMC43NDcyODQsIDEuMTEyOTUsIDEuNDc2MzEsIDEuODM4MTMsIDIuMjA1NDIiLCBcCi0gICAgICAgICAgIjAuMTEwMDY4LCAwLjQ1OTU5NSwgMC43NDcyNDMsIDEuMTExODMsIDEuNDc2MzMsIDEuODQxMDksIDIuMjA1NDgiLCBcCi0gICAgICAgICAgIjAuMTEwMjM5LCAwLjQ1OTU3NiwgMC43NDcxNywgMS4xMSwgMS40NzYzMywgMS44NDA2MywgMi4yMDU0IiwgXAotICAgICAgICAgICIwLjExMDA4NiwgMC40NTk1NzYsIDAuNzQ3MjQ5LCAxLjEwOTIxLCAxLjQ3NTEyLCAxLjgzNzk0LCAyLjIwMiIsIFwKLSAgICAgICAgICAiMC4xMDk5ODIsIDAuNDU5NjcxLCAwLjc0NzI0OSwgMS4xMTA1NywgMS40NzY0NCwgMS44NDA3NCwgMi4yMDU0MyIsIFwKLSAgICAgICAgICAiMC4xMDk5NDUsIDAuNDU5NjQsIDAuNzQ3MjUzLCAxLjEwOTYsIDEuNDc2MzIsIDEuODM4MTUsIDIuMjA1MzQiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTc0NTE0LCAwLjM4ODEwOCwgMC41NTMxMzcsIDAuNzU5MzUsIDAuOTY1NzE2LCAxLjE3MTkxLCAxLjM3ODAxIiwgXAotICAgICAgICAgICIwLjE4NTAwMSwgMC4zOTg2MjEsIDAuNTYzNjQxLCAwLjc2OTk4MywgMC45NzYwNSwgMS4xODI0NywgMS4zODg0NyIsIFwKLSAgICAgICAgICAiMC4xOTc2MDEsIDAuNDExMjU3LCAwLjU3NjMwMSwgMC43ODI2NDEsIDAuOTg4NzA3LCAxLjE5NTE0LCAxLjQwMTEzIiwgXAotICAgICAgICAgICIwLjIxMDk4NSwgMC40MjQ2NTcsIDAuNTg5Njg5LCAwLjc5NjAzOCwgMS4wMDIxLCAxLjIwODUzLCAxLjQxNDUyIiwgXAotICAgICAgICAgICIwLjIyNDI3OCwgMC40Mzc5MDYsIDAuNjAyOTYyLCAwLjgwOTE1OSwgMS4wMTUzNSwgMS4yMjE1NiwgMS40Mjc4MyIsIFwKLSAgICAgICAgICAiMC4yNDU0MzQsIDAuNDU5MTU2LCAwLjYyNDIxNywgMC44MzA0MzgsIDEuMDM2NjksIDEuMjQyOCwgMS40NDkxNiIsIFwKLSAgICAgICAgICAiMC4yNjQwMzIsIDAuNDc3NzIxLCAwLjY0Mjc4NiwgMC44NDkwMDEsIDEuMDU1MTksIDEuMjYxNzksIDEuNDY3NzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTIzMzU2LCAwLjUxNTk5LCAwLjg0MTI5OCwgMS4yNTIxNSwgMS42NTk0MywgMi4wNzAyNywgMi40ODA1MiIsIFwKLSAgICAgICAgICAiMC4xMjM0MjMsIDAuNTE1NTU4LCAwLjg0MDc5OSwgMS4yNTIxMywgMS42NjM5NCwgMi4wNjk1NywgMi40ODQ4IiwgXAotICAgICAgICAgICIwLjEyMzQ1NywgMC41MTY0NTIsIDAuODQwODY1LCAxLjI1MjE0LCAxLjY2MzkzLCAyLjA3MDM5LCAyLjQ4NDU1IiwgXAotICAgICAgICAgICIwLjEyMzQwNCwgMC41MTUzMjEsIDAuODQxMjc4LCAxLjI1MjEzLCAxLjY2MzkzLCAyLjA3NTUzLCAyLjQ3OTQ5IiwgXAotICAgICAgICAgICIwLjEyMzM4MSwgMC41MTYzMjIsIDAuODQwNzIyLCAxLjI1MjIyLCAxLjY2MzkxLCAyLjA3NTU2LCAyLjQ4MTI5IiwgXAotICAgICAgICAgICIwLjEyMzc4NSwgMC41MTU2ODEsIDAuODQxMTgyLCAxLjI1MjcxLCAxLjY2MDQzLCAyLjA3NTUyLCAyLjQ4MyIsIFwKLSAgICAgICAgICAiMC4xMjM3ODgsIDAuNTE1NzQ2LCAwLjg0MDU4MiwgMS4yNTIxNiwgMS42NjM5MiwgMi4wNzA4OSwgMi40ODI4NiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDIzMjksIDAuMDAyMzgzLCAwLjAwMjM5LCAwLjAwMjM5NSwgMC4wMDIzOTcsIDAuMDAyMzk4LCAwLjAwMjM5OSIsIFwKLSAgICAgICAgICAiMC4wMDIzMTksIDAuMDAyMzczLCAwLjAwMjM4MSwgMC4wMDIzODUsIDAuMDAyMzg3LCAwLjAwMjM4OCwgMC4wMDIzOSIsIFwKLSAgICAgICAgICAiMC4wMDIzMTUsIDAuMDAyMzY5LCAwLjAwMjM3NywgMC4wMDIzOCwgMC4wMDIzODIsIDAuMDAyMzgzLCAwLjAwMjM4NCIsIFwKLSAgICAgICAgICAiMC4wMDIzMTEsIDAuMDAyMzY1LCAwLjAwMjM3MywgMC4wMDIzNzYsIDAuMDAyMzc5LCAwLjAwMjM4LCAwLjAwMjM4MSIsIFwKLSAgICAgICAgICAiMC4wMDIzMDcsIDAuMDAyMzYyLCAwLjAwMjM3LCAwLjAwMjM3NCwgMC4wMDIzNzYsIDAuMDAyMzc3LCAwLjAwMjM3OCIsIFwKLSAgICAgICAgICAiMC4wMDIzMDIsIDAuMDAyMzU4LCAwLjAwMjM2NiwgMC4wMDIzNywgMC4wMDIzNzIsIDAuMDAyMzczLCAwLjAwMjM3NSIsIFwKLSAgICAgICAgICAiMC4wMDIyOTgsIDAuMDAyMzU0LCAwLjAwMjM2MywgMC4wMDIzNjcsIDAuMDAyMzcsIDAuMDAyMzcxLCAwLjAwMjM3MiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzc1NCwgMC4wMDM4MjMsIDAuMDAzODMzLCAwLjAwMzgzOCwgMC4wMDM4NDEsIDAuMDAzODQyLCAwLjAwMzg0MyIsIFwKLSAgICAgICAgICAiMC4wMDM3NDgsIDAuMDAzODE4LCAwLjAwMzgyOCwgMC4wMDM4MzMsIDAuMDAzODM2LCAwLjAwMzgzOCwgMC4wMDM4MzkiLCBcCi0gICAgICAgICAgIjAuMDAzNzQ1LCAwLjAwMzgxNSwgMC4wMDM4MjUsIDAuMDAzODMsIDAuMDAzODMzLCAwLjAwMzgzNSwgMC4wMDM4MzUiLCBcCi0gICAgICAgICAgIjAuMDAzNzQyLCAwLjAwMzgxMiwgMC4wMDM4MjIsIDAuMDAzODI3LCAwLjAwMzgzLCAwLjAwMzgzMiwgMC4wMDM4MzMiLCBcCi0gICAgICAgICAgIjAuMDAzNzM4LCAwLjAwMzgwOSwgMC4wMDM4MiwgMC4wMDM4MjUsIDAuMDAzODI4LCAwLjAwMzgzLCAwLjAwMzgzMSIsIFwKLSAgICAgICAgICAiMC4wMDM3MzEsIDAuMDAzODA0LCAwLjAwMzgxNiwgMC4wMDM4MjIsIDAuMDAzODI1LCAwLjAwMzgyNywgMC4wMDM4MjgiLCBcCi0gICAgICAgICAgIjAuMDAzNzI4LCAwLjAwMzgwMSwgMC4wMDM4MTQsIDAuMDAzODIsIDAuMDAzODI0LCAwLjAwMzgyNiwgMC4wMDM4MjciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyMTM3LCAwLjAwMjE4OSwgMC4wMDIxOTYsIDAuMDAyMTk5LCAwLjAwMjIsIDAuMDAyMjAyLCAwLjAwMjIwMyIsIFwKLSAgICAgICAgICAiMC4wMDIxMzUsIDAuMDAyMTg3LCAwLjAwMjE5MywgMC4wMDIxOTcsIDAuMDAyMTk5LCAwLjAwMjE5OSwgMC4wMDIyIiwgXAotICAgICAgICAgICIwLjAwMjEyNywgMC4wMDIxOCwgMC4wMDIxODYsIDAuMDAyMTg5LCAwLjAwMjE5MSwgMC4wMDIxOTIsIDAuMDAyMTkzIiwgXAotICAgICAgICAgICIwLjAwMjEyMSwgMC4wMDIxNzMsIDAuMDAyMTc5LCAwLjAwMjE4MywgMC4wMDIxODUsIDAuMDAyMTg2LCAwLjAwMjE4NyIsIFwKLSAgICAgICAgICAiMC4wMDIxMTQsIDAuMDAyMTY3LCAwLjAwMjE3NCwgMC4wMDIxNzgsIDAuMDAyMTc5LCAwLjAwMjE4LCAwLjAwMjE4MSIsIFwKLSAgICAgICAgICAiMC4wMDIxMDYsIDAuMDAyMTU5LCAwLjAwMjE2NywgMC4wMDIxNywgMC4wMDIxNzIsIDAuMDAyMTczLCAwLjAwMjE3NCIsIFwKLSAgICAgICAgICAiMC4wMDIwOTksIDAuMDAyMTU0LCAwLjAwMjE2MiwgMC4wMDIxNjYsIDAuMDAyMTY4LCAwLjAwMjE2OSwgMC4wMDIxNyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzYxMSwgMC4wMDM2OCwgMC4wMDM2OSwgMC4wMDM2OTUsIDAuMDAzNjk3LCAwLjAwMzY5OSwgMC4wMDM3MDEiLCBcCi0gICAgICAgICAgIjAuMDAzNjAzLCAwLjAwMzY3MywgMC4wMDM2ODMsIDAuMDAzNjg4LCAwLjAwMzY5MSwgMC4wMDM2OTIsIDAuMDAzNjkzIiwgXAotICAgICAgICAgICIwLjAwMzU5NywgMC4wMDM2NjcsIDAuMDAzNjc3LCAwLjAwMzY4MiwgMC4wMDM2ODUsIDAuMDAzNjg3LCAwLjAwMzY4OSIsIFwKLSAgICAgICAgICAiMC4wMDM1OSwgMC4wMDM2NjEsIDAuMDAzNjcyLCAwLjAwMzY3OCwgMC4wMDM2ODEsIDAuMDAzNjgzLCAwLjAwMzY4NCIsIFwKLSAgICAgICAgICAiMC4wMDM1ODUsIDAuMDAzNjU2LCAwLjAwMzY2OCwgMC4wMDM2NzQsIDAuMDAzNjc4LCAwLjAwMzY4LCAwLjAwMzY4MSIsIFwKLSAgICAgICAgICAiMC4wMDM1NzksIDAuMDAzNjQ5LCAwLjAwMzY2MiwgMC4wMDM2NjksIDAuMDAzNjczLCAwLjAwMzY3NiwgMC4wMDM2NzgiLCBcCi0gICAgICAgICAgIjAuMDAzNTcsIDAuMDAzNjQ0LCAwLjAwMzY1OCwgMC4wMDM2NjYsIDAuMDAzNjcsIDAuMDAzNjczLCAwLjAwMzY3NSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDIzMjksIDAuMDAyMzgzLCAwLjAwMjM5MSwgMC4wMDIzOTUsIDAuMDAyMzk3LCAwLjAwMjM5OCwgMC4wMDIzOTkiLCBcCi0gICAgICAgICAgIjAuMDAyMzE5LCAwLjAwMjM3MywgMC4wMDIzOCwgMC4wMDIzODQsIDAuMDAyMzg3LCAwLjAwMjM4NywgMC4wMDIzODgiLCBcCi0gICAgICAgICAgIjAuMDAyMzEyLCAwLjAwMjM2NywgMC4wMDIzNzQsIDAuMDAyMzc4LCAwLjAwMjM4LCAwLjAwMjM4MSwgMC4wMDIzODIiLCBcCi0gICAgICAgICAgIjAuMDAyMzA3LCAwLjAwMjM2MSwgMC4wMDIzNjksIDAuMDAyMzc0LCAwLjAwMjM3NSwgMC4wMDIzNzcsIDAuMDAyMzc5IiwgXAotICAgICAgICAgICIwLjAwMjMwMiwgMC4wMDIzNTYsIDAuMDAyMzY1LCAwLjAwMjM3LCAwLjAwMjM3MiwgMC4wMDIzNzMsIDAuMDAyMzc0IiwgXAotICAgICAgICAgICIwLjAwMjI5NiwgMC4wMDIzNSwgMC4wMDIzNTksIDAuMDAyMzY2LCAwLjAwMjM2OCwgMC4wMDIzNywgMC4wMDIzNzEiLCBcCi0gICAgICAgICAgIjAuMDAyMjkzLCAwLjAwMjM0NywgMC4wMDIzNTcsIDAuMDAyMzYyLCAwLjAwMjM2NiwgMC4wMDIzNjgsIDAuMDAyMzY5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzMDQyLCAwLjAwMzA5NCwgMC4wMDMxLCAwLjAwMzEwMywgMC4wMDMxMDUsIDAuMDAzMTA2LCAwLjAwMzEwNyIsIFwKLSAgICAgICAgICAiMC4wMDMwNCwgMC4wMDMwOTMsIDAuMDAzMDk5LCAwLjAwMzEwMiwgMC4wMDMxMDQsIDAuMDAzMTA1LCAwLjAwMzEwNSIsIFwKLSAgICAgICAgICAiMC4wMDMwMzYsIDAuMDAzMDksIDAuMDAzMDk2LCAwLjAwMzA5OSwgMC4wMDMxMDEsIDAuMDAzMTAyLCAwLjAwMzEwMiIsIFwKLSAgICAgICAgICAiMC4wMDMwMywgMC4wMDMwODYsIDAuMDAzMDkyLCAwLjAwMzA5NiwgMC4wMDMwOTcsIDAuMDAzMDk4LCAwLjAwMzA5OSIsIFwKLSAgICAgICAgICAiMC4wMDMwMjUsIDAuMDAzMDgyLCAwLjAwMzA4OSwgMC4wMDMwOTMsIDAuMDAzMDk1LCAwLjAwMzA5NiwgMC4wMDMwOTYiLCBcCi0gICAgICAgICAgIjAuMDAzMDE2LCAwLjAwMzA3NywgMC4wMDMwODUsIDAuMDAzMDg5LCAwLjAwMzA5MSwgMC4wMDMwOTIsIDAuMDAzMDkzIiwgXAotICAgICAgICAgICIwLjAwMzAxLCAwLjAwMzA3NCwgMC4wMDMwODIsIDAuMDAzMDg3LCAwLjAwMzA4OSwgMC4wMDMwOSwgMC4wMDMwOTEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyMDc2LCAwLjAwMjEyNiwgMC4wMDIxMzMsIDAuMDAyMTM2LCAwLjAwMjEzOSwgMC4wMDIxMzksIDAuMDAyMTQiLCBcCi0gICAgICAgICAgIjAuMDAyMDcyLCAwLjAwMjEyMywgMC4wMDIxMywgMC4wMDIxMzMsIDAuMDAyMTM0LCAwLjAwMjEzNiwgMC4wMDIxMzYiLCBcCi0gICAgICAgICAgIjAuMDAyMDYzLCAwLjAwMjExNCwgMC4wMDIxMjEsIDAuMDAyMTI0LCAwLjAwMjEyNiwgMC4wMDIxMjcsIDAuMDAyMTI4IiwgXAotICAgICAgICAgICIwLjAwMjA1NCwgMC4wMDIxMDcsIDAuMDAyMTEzLCAwLjAwMjExNywgMC4wMDIxMTksIDAuMDAyMTIsIDAuMDAyMTIxIiwgXAotICAgICAgICAgICIwLjAwMjA0NywgMC4wMDIxLCAwLjAwMjEwNywgMC4wMDIxMTIsIDAuMDAyMTEzLCAwLjAwMjExNSwgMC4wMDIxMTUiLCBcCi0gICAgICAgICAgIjAuMDAyMDM5LCAwLjAwMjA5MSwgMC4wMDIxLCAwLjAwMjEwNCwgMC4wMDIxMDcsIDAuMDAyMTA4LCAwLjAwMjExIiwgXAotICAgICAgICAgICIwLjAwMjAzLCAwLjAwMjA4NCwgMC4wMDIwOTQsIDAuMDAyMSwgMC4wMDIxMDIsIDAuMDAyMTA1LCAwLjAwMjEwNSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjg5NCwgMC4wMDI5NSwgMC4wMDI5NTcsIDAuMDAyOTYxLCAwLjAwMjk2MywgMC4wMDI5NjQsIDAuMDAyOTY1IiwgXAotICAgICAgICAgICIwLjAwMjg5LCAwLjAwMjk0NywgMC4wMDI5NTQsIDAuMDAyOTU4LCAwLjAwMjk2LCAwLjAwMjk2MSwgMC4wMDI5NjEiLCBcCi0gICAgICAgICAgIjAuMDAyODc5LCAwLjAwMjkzOSwgMC4wMDI5NDcsIDAuMDAyOTUxLCAwLjAwMjk1MywgMC4wMDI5NTQsIDAuMDAyOTU1IiwgXAotICAgICAgICAgICIwLjAwMjg3MSwgMC4wMDI5MzMsIDAuMDAyOTQxLCAwLjAwMjk0NiwgMC4wMDI5NDgsIDAuMDAyOTQ5LCAwLjAwMjk1IiwgXAotICAgICAgICAgICIwLjAwMjg2NCwgMC4wMDI5MjcsIDAuMDAyOTM2LCAwLjAwMjk0MSwgMC4wMDI5NDQsIDAuMDAyOTQ1LCAwLjAwMjk0NiIsIFwKLSAgICAgICAgICAiMC4wMDI4NTMsIDAuMDAyOTE5LCAwLjAwMjkyOSwgMC4wMDI5MzYsIDAuMDAyOTM5LCAwLjAwMjk0MSwgMC4wMDI5NDIiLCBcCi0gICAgICAgICAgIjAuMDAyODQ3LCAwLjAwMjkxNCwgMC4wMDI5MjYsIDAuMDAyOTMzLCAwLjAwMjkzNywgMC4wMDI5MzksIDAuMDAyOTQiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogT0FJMjExWDIgKgotICogLS0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKE9BSTIxMVgyKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMjI2OTQzOwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNjQ1MzQ7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNjM5NjY7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNjQ1MzQ7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNjEyLCAwLjAwMDYxMiwgMC4wMDA2MTEsIDAuMDAwNjExLCAwLjAwMDYxMSwgMC4wMDA2MTEsIDAuMDAwNjExIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNjEzLCAwLjAwMDYxNCwgMC4wMDA2MTQsIDAuMDAwNjE0LCAwLjAwMDYxNCwgMC4wMDA2MTUsIDAuMDAwNjE0Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihBMSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNTUxMDg7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNTUxMDg7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNTQ1MTE7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNjEyLCAwLjAwMDYxMiwgMC4wMDA2MTIsIDAuMDAwNjEyLCAwLjAwMDYxMiwgMC4wMDA2MTIsIDAuMDAwNjExIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNjEzLCAwLjAwMDYxMywgMC4wMDA2MTMsIDAuMDAwNjEzLCAwLjAwMDYxMywgMC4wMDA2MTMsIDAuMDAwNjE0Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNTQ0NjI7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNTQ0NjI7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNTM5MTU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNjEyLCAwLjAwMDYxMiwgMC4wMDA2MTEsIDAuMDAwNjExLCAwLjAwMDYxMSwgMC4wMDA2MTEsIDAuMDAwNjExIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNjE0LCAwLjAwMDYxNCwgMC4wMDA2MTQsIDAuMDAwNjE0LCAwLjAwMDYxMywgMC4wMDA2MTUsIDAuMDAwNjE1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihDMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNTIzMDE7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNTIyMDY7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNTIzMDE7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMDQsIDAuMDAwMDQsIDAuMDAwMDM5LCAwLjAwMDAzOSwgMC4wMDAwMzksIDAuMDAwMDM5LCAwLjAwMDAzOSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDY5NSwgMC4wMDA2OTUsIDAuMDAwNjk2LCAwLjAwMDY5NSwgMC4wMDA2OTYsIDAuMDAwNjk2LCAwLjAwMDY5NiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjA4Njk2MjY7Ci0gICAgZnVuY3Rpb24gOiAiKCEoKChBMCtBMSkgQjApIEMwKSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMjE3NDUsIDAuNDk0MDA2LCAwLjc5MDIxMiwgMS4xNjAyOCwgMS41Mjk1NiwgMS44OTk2NCwgMi4yNjg5MiIsIFwKLSAgICAgICAgICAiMC4xMzMxMzgsIDAuNTA1NDM4LCAwLjgwMTU2MSwgMS4xNzE2OSwgMS41NDA5NiwgMS45MTExMywgMi4yODA1IiwgXAotICAgICAgICAgICIwLjE0NjIsIDAuNTE4NTIzLCAwLjgxNDgxOCwgMS4xODQ2NCwgMS41NTQxMSwgMS45MjM1MywgMi4yOTM2OSIsIFwKLSAgICAgICAgICAiMC4xNTg3NCwgMC41MzExNTEsIDAuODI3MzE3LCAxLjE5NzA5LCAxLjU2NjYzLCAxLjkzNjQyLCAyLjMwNTY2IiwgXAotICAgICAgICAgICIwLjE3MTE1MywgMC41NDM2MjQsIDAuODM5Nzk3LCAxLjIwOTU2LCAxLjU3OTIxLCAxLjk0ODcsIDIuMzE4MTIiLCBcCi0gICAgICAgICAgIjAuMTkwOTU1LCAwLjU2MzQ1OSwgMC44NTk2NjYsIDEuMjI5NTYsIDEuNTk5MDIsIDEuOTY4NDQsIDIuMzM4MTIiLCBcCi0gICAgICAgICAgIjAuMjA4MjYsIDAuNTgwOTQzLCAwLjg3NzMxNCwgMS4yNDcyOSwgMS42MTY2NywgMS45ODYyNCwgMi4zNTY0MSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMDczMTIsIDAuOTMxMTM3LCAxLjUxMDQ0LCAyLjIzMTI1LCAyLjk1MzA0LCAzLjY3NTg3LCA0LjQwMSIsIFwKLSAgICAgICAgICAiMC4yMDc0MDMsIDAuOTMxNTQyLCAxLjUxMDM4LCAyLjIzMTI1LCAyLjk1MzA1LCAzLjY3NTg1LCA0LjM5ODQ1IiwgXAotICAgICAgICAgICIwLjIwNzM0MywgMC45MzA4MTIsIDEuNTA4NzksIDIuMjMyOTgsIDIuOTUzNjksIDMuNjc1MTgsIDQuMzk4MjIiLCBcCi0gICAgICAgICAgIjAuMjA3NjE1LCAwLjkzMDczNywgMS41MTA0NywgMi4yMzE0NSwgMi45NTY4NCwgMy42NzYxNiwgNC4zOTc1IiwgXAotICAgICAgICAgICIwLjIwODk5NSwgMC45MzA4OTgsIDEuNTA5NTUsIDIuMjMxNDEsIDIuOTUzOCwgMy42NzUyOSwgNC40MDA5OCIsIFwKLSAgICAgICAgICAiMC4yMTI5NTEsIDAuOTMxNTMsIDEuNTA4ODYsIDIuMjMxNTEsIDIuOTUzMDIsIDMuNjc4MjcsIDQuMzk4MyIsIFwKLSAgICAgICAgICAiMC4yMTczMjYsIDAuOTMxMTcyLCAxLjUwOTUzLCAyLjIzMzI1LCAyLjk1MywgMy42NzUyNCwgNC4zOTgwNyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMDkyMjEsIDAuODM0NjA0LCAxLjMzMzA2LCAxLjk1NjgxLCAyLjU4MDQ2LCAzLjIwNDM0LCAzLjgyNzYzIiwgXAotICAgICAgICAgICIwLjIyMDc0LCAwLjg0NTc5NiwgMS4zNDU2OSwgMS45Njk1MSwgMi41OTM4MSwgMy4yMTcyNSwgMy44NDA1MiIsIFwKLSAgICAgICAgICAiMC4yMzQ2NiwgMC44NjAzNjEsIDEuMzYwMTgsIDEuOTgzNzYsIDIuNjA4MDUsIDMuMjMxNjQsIDMuODU0NTgiLCBcCi0gICAgICAgICAgIjAuMjQ3NzQ1LCAwLjg3MzMxLCAxLjM3Mjc4LCAxLjk5NzUyLCAyLjYyMDk4LCAzLjI0NDMxLCAzLjg2Nzc4IiwgXAotICAgICAgICAgICIwLjI2MDI0NiwgMC44ODYwNTgsIDEuMzg1NywgMi4wMDk1NiwgMi42MzM4OSwgMy4yNTc1NywgMy44ODA2NSIsIFwKLSAgICAgICAgICAiMC4yNzk1NzUsIDAuOTA1NDA2LCAxLjQwNTI5LCAyLjAyOTIyLCAyLjY1MzU1LCAzLjI3NjQ5LCAzLjkwMDE2IiwgXAotICAgICAgICAgICIwLjI5NjEyOCwgMC45MjE5NzEsIDEuNDIyMTcsIDIuMDQ1OTEsIDIuNjY5OTcsIDMuMjkzNDEsIDMuOTE2NzkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzI0MDE0LCAxLjQ5ODY0LCAyLjQzODEyLCAzLjYxMTg3LCA0Ljc4NTY0LCA1Ljk2NTEzLCA3LjEzMzg4IiwgXAotICAgICAgICAgICIwLjMyNDA4MSwgMS41MDA0MywgMi40Mzg0MSwgMy42MTI3MiwgNC43ODk4NSwgNS45NjU2NiwgNy4xMzUyNyIsIFwKLSAgICAgICAgICAiMC4zMjQxMTgsIDEuNDk4NjQsIDIuNDM4MTMsIDMuNjEyMTQsIDQuNzg3OTIsIDUuOTYxMzksIDcuMTM2NTUiLCBcCi0gICAgICAgICAgIjAuMzI0MTMyLCAxLjQ5OTIyLCAyLjQzODI3LCAzLjYxMzA5LCA0Ljc5MjEzLCA1Ljk2NTM3LCA3LjEzNDQ2IiwgXAotICAgICAgICAgICIwLjMyNDA2NiwgMS40OTkzLCAyLjQzODY3LCAzLjYxMjg4LCA0Ljc4OTg2LCA1Ljk2MzA3LCA3LjEzNjM2IiwgXAotICAgICAgICAgICIwLjMyNDI5MiwgMS40OTg3NywgMi40MzgzOSwgMy42MTIxMSwgNC43ODgwOCwgNS45NjE2NywgNy4xMzQ2OSIsIFwKLSAgICAgICAgICAiMC4zMjU3MiwgMS40OTg3NiwgMi40MzgyNCwgMy42MTMzOCwgNC43ODc2LCA1Ljk2NTY3LCA3LjEzNDU5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkExIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTU0MzEsIDAuNDg3NjczLCAwLjc4MzkxOCwgMS4xNTM4MSwgMS41MjM0NCwgMS44OTI2NywgMi4yNjI4MyIsIFwKLSAgICAgICAgICAiMC4xMjU0MzIsIDAuNDk3NzcxLCAwLjc5Mzg2NiwgMS4xNjM5OCwgMS41MzMyNywgMS45MDMzNiwgMi4yNzI0NCIsIFwKLSAgICAgICAgICAiMC4xMzgyNTYsIDAuNTEwNjgxLCAwLjgwNjg1MiwgMS4xNzY3MiwgMS41NDYxNiwgMS45MTU2LCAyLjI4NTE0IiwgXAotICAgICAgICAgICIwLjE1MTMyOSwgMC41MjM3NjYsIDAuODE5OTQ1LCAxLjE4OTg3LCAxLjU1OTc1LCAxLjkyODY4LCAyLjI5ODI3IiwgXAotICAgICAgICAgICIwLjE2NDQ1OCwgMC41MzY4NywgMC44MzMwNSwgMS4yMDMwMSwgMS41NzI3MiwgMS45NDE4NiwgMi4zMTIwMyIsIFwKLSAgICAgICAgICAiMC4xODYzNDUsIDAuNTU3ODE4LCAwLjg1NDAwNSwgMS4yMjQsIDEuNTkzNDYsIDEuOTYzNTYsIDIuMzMyMzUiLCBcCi0gICAgICAgICAgIjAuMjA1MDAzLCAwLjU3NjEyNCwgMC44NzIzMDcsIDEuMjQyMzEsIDEuNjExODcsIDEuOTgxNjYsIDIuMzUwNjYiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjA3NDM5LCAwLjkzMTU0MSwgMS41MDg5NCwgMi4yMzE3OSwgMi45NTQyNywgMy42NzUxNCwgNC4zOTgyMyIsIFwKLSAgICAgICAgICAiMC4yMDczODcsIDAuOTMwODY2LCAxLjUwOTQ0LCAyLjIzMTI1LCAyLjk1MzA1LCAzLjY3NTc4LCA0LjM5ODQzIiwgXAotICAgICAgICAgICIwLjIwNzE5OSwgMC45MzA4NDYsIDEuNTEwNDcsIDIuMjMzMjgsIDIuOTU2ODcsIDMuNjc1MDcsIDQuNDAwOTIiLCBcCi0gICAgICAgICAgIjAuMjA4MzksIDAuOTMwODQ4LCAxLjUxMDQ3LCAyLjIzMzM3LCAyLjk1MzU4LCAzLjY3ODY2LCA0LjM5NzQ1IiwgXAotICAgICAgICAgICIwLjIxMTQwNSwgMC45MzA4NDUsIDEuNTA4OSwgMi4yMzIwMSwgMi45NTYwNywgMy42NzUxOCwgNC4zOTgyMyIsIFwKLSAgICAgICAgICAiMC4yMTg0ODIsIDAuOTMxMDE3LCAxLjUwODkyLCAyLjIzMTgzLCAyLjk1MzgxLCAzLjY3NTksIDQuMzk3NDQiLCBcCi0gICAgICAgICAgIjAuMjI2NDE3LCAwLjkzMTE3NywgMS41MTAzOCwgMi4yMzMyNSwgMi45NTM4NCwgMy42Nzg1NiwgNC40MDA5MyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xOTQ4NzQsIDAuODIzMzQ1LCAxLjMyNjUyLCAxLjk1Mzk5LCAyLjU4MjUsIDMuMjEwMzIsIDMuODM3NTgiLCBcCi0gICAgICAgICAgIjAuMjA2OTk3LCAwLjgzNTU3NywgMS4zMzg0MiwgMS45Njc0NCwgMi41OTQ4OCwgMy4yMjIzNCwgMy44NTAwMiIsIFwKLSAgICAgICAgICAiMC4yMjA4NTQsIDAuODUwMTg3LCAxLjM1MzE5LCAxLjk4MTEzLCAyLjYwOTY2LCAzLjIzNzI0LCAzLjg2NDI2IiwgXAotICAgICAgICAgICIwLjIzMzYzOSwgMC44NjM0MDYsIDEuMzY2NTcsIDEuOTk0MjYsIDIuNjIyNjQsIDMuMjUwMjgsIDMuODc3ODIiLCBcCi0gICAgICAgICAgIjAuMjQ1OTQ3LCAwLjg3NTc5OSwgMS4zNzg3NiwgMi4wMDY4NiwgMi42MzUzMSwgMy4yNjMyMywgMy44OTA1NSIsIFwKLSAgICAgICAgICAiMC4yNjUwNCwgMC44OTUwNTgsIDEuMzk4MzIsIDIuMDI2NDIsIDIuNjU1MDYsIDMuMjgyMzEsIDMuOTEwMDEiLCBcCi0gICAgICAgICAgIjAuMjgxMzkzLCAwLjkxMTU2LCAxLjQxNDM2LCAyLjA0Mjg1LCAyLjY3MTU2LCAzLjI5OTUsIDMuOTI2NjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzEwNTE0LCAxLjQ5NTIsIDIuNDM4MjksIDMuNjM3OTMsIDQuODEzMDUsIDUuOTg2ODgsIDcuMTY0NzYiLCBcCi0gICAgICAgICAgIjAuMzEwNDAzLCAxLjQ5ODY3LCAyLjQ0OTU5LCAzLjYzODgzLCA0LjgxNTk0LCA1Ljk4ODYxLCA3LjE2MzQ2IiwgXAotICAgICAgICAgICIwLjMwOTI5NCwgMS40OTE4OSwgMi40NTg2OSwgMy42MjgwNCwgNC44MDA0OSwgNS45ODI5NCwgNy4xNjMzNyIsIFwKLSAgICAgICAgICAiMC4zMTA5NzEsIDEuNDk1NTUsIDIuNDM4MjQsIDMuNjM3OTEsIDQuODA4MTEsIDUuOTg0MTgsIDcuMTY0MTIiLCBcCi0gICAgICAgICAgIjAuMzA5NDQ1LCAxLjQ5MzY1LCAyLjQ0MDczLCAzLjYzNzg4LCA0LjgwOTQzLCA1Ljk4NjM4LCA3LjE2MjUyIiwgXAotICAgICAgICAgICIwLjMxMDg4MSwgMS40OTI2MSwgMi40NDM1MiwgMy42Mzc5OCwgNC44MTYzMywgNS45ODgxMiwgNy4xNjM1OSIsIFwKLSAgICAgICAgICAiMC4zMTIzMjgsIDEuNTAxMDYsIDIuNDUxOTYsIDMuNjM3NzMsIDQuODExMDcsIDUuOTgyOTEsIDcuMTY0NDIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjAiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1NDExOSwgMC4yMzQ4MDksIDAuMzc4OTgyLCAwLjU1OTA4LCAwLjczOTMyNywgMC45MTkyNDksIDEuMDk5NSIsIFwKLSAgICAgICAgICAiMC4wNjU3MzgsIDAuMjQ2MDM3LCAwLjM5MDI2LCAwLjU3MDQ1NCwgMC43NTA0NzQsIDAuOTMwODM4LCAxLjExMDY0IiwgXAotICAgICAgICAgICIwLjA4MDUyNywgMC4yNjEzOTEsIDAuNDA1MDYxLCAwLjU4MjU4MywgMC43NjI2MjIsIDAuOTQyNzU3LCAxLjEyMjgxIiwgXAotICAgICAgICAgICIwLjA5NTI2NCwgMC4yNzUzNCwgMC40MTk1NTMsIDAuNTk5NTUsIDAuNzc2MDQ0LCAwLjk1NTkwOSwgMS4xMzYwMyIsIFwKLSAgICAgICAgICAiMC4xMTAwMjYsIDAuMjg5OTM0LCAwLjQzNDA0OSwgMC42MTQwNjMsIDAuNzk0MTA0LCAwLjk2OTA4MywgMS4xNDkxIiwgXAotICAgICAgICAgICIwLjEzMzkzNCwgMC4zMTM1MzQsIDAuNDU3MzU0LCAwLjYzNzMzMywgMC44MTczMzksIDAuOTk3NTM5LCAxLjE3NzciLCBcCi0gICAgICAgICAgIjAuMTUyOTE5LCAwLjMzNDgyOCwgMC40Nzc2MTgsIDAuNjU3NzI5LCAwLjgzNzY1MiwgMS4wMTc2OSwgMS4xOTc4NCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDg2MzEsIDAuNDczOTc2LCAwLjc2NjY0MSwgMS4xMzI0NiwgMS40OTg0NywgMS44NjQyOCwgMi4yMzAzMiIsIFwKLSAgICAgICAgICAiMC4xMDg1OTksIDAuNDczOTIzLCAwLjc2NjczMywgMS4xMzI1NywgMS40OTg0LCAxLjg2NDg5LCAyLjIzMDMxIiwgXAotICAgICAgICAgICIwLjExMDU4OCwgMC40NzQwMzUsIDAuNzY2NjM4LCAxLjEzMjUyLCAxLjQ5ODY3LCAxLjg2NDM4LCAyLjIzMDQ5IiwgXAotICAgICAgICAgICIwLjExNTMyMywgMC40NzM5OTQsIDAuNzY2NzQxLCAxLjEzMjQyLCAxLjQ5ODg2LCAxLjg2NDI3LCAyLjIzMDQiLCBcCi0gICAgICAgICAgIjAuMTIxNzAzLCAwLjQ3Mzk1LCAwLjc2NjY5NSwgMS4xMzI0OSwgMS40OTg2NiwgMS44NjQzNywgMi4yMzA2MSIsIFwKLSAgICAgICAgICAiMC4xMzMzNDMsIDAuNDc1MTQxLCAwLjc2Njc0MSwgMS4xMzI2NiwgMS40OTg2MSwgMS44NjQ0LCAyLjIzMDMyIiwgXAotICAgICAgICAgICIwLjE0NTExOSwgMC40NzgwNTQsIDAuNzY2NjM0LCAxLjEzMjM5LCAxLjQ5ODY2LCAxLjg2NDI4LCAyLjIzMDMzIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE5OTkwOSwgMC44MjUxODQsIDEuMzI1LCAxLjk0ODE5LCAyLjU3MzA5LCAzLjE5OTAyLCAzLjgyNjcxIiwgXAotICAgICAgICAgICIwLjIxMDQxMSwgMC44MzYwOCwgMS4zMzU3MSwgMS45NjAyMSwgMi41ODMwNSwgMy4yMDk5OSwgMy44Mzc3NyIsIFwKLSAgICAgICAgICAiMC4yMjMzNCwgMC44NDkwNTQsIDEuMzQ4NzgsIDEuOTcyOTIsIDIuNTk3MjYsIDMuMjIzMiwgMy44NTExMSIsIFwKLSAgICAgICAgICAiMC4yMzU4NzYsIDAuODYxODY1LCAxLjM2MTYzLCAxLjk4NjYyLCAyLjYwOTg1LCAzLjIzNjEyLCAzLjg2MzkyIiwgXAotICAgICAgICAgICIwLjI0ODMzMywgMC44NzQ0OTIsIDEuMzc0ODEsIDEuOTk4NDQsIDIuNjIyODgsIDMuMjQ5NTEsIDMuODc2NzMiLCBcCi0gICAgICAgICAgIjAuMjY4NjY5LCAwLjg5NTE3NCwgMS4zOTUwNCwgMi4wMTg3NiwgMi42NDM3LCAzLjI3MDI4LCAzLjg5NzI4IiwgXAotICAgICAgICAgICIwLjI4NjQ3MywgMC45MTMzMDYsIDEuNDEzMDUsIDIuMDM3NjMsIDIuNjYxNjYsIDMuMjg3NiwgMy45MTU0MiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMjM5MjYsIDEuNTAzODMsIDIuNDM4NTQsIDMuNjM4NjgsIDQuODE1OTcsIDUuOTg4NjIsIDcuMTYzNzciLCBcCi0gICAgICAgICAgIjAuMzIzODU1LCAxLjQ5ODc1LCAyLjQ1ODk5LCAzLjYzODgyLCA0LjgxMzc1LCA1Ljk4OTAzLCA3LjE2Mzg0IiwgXAotICAgICAgICAgICIwLjMyMzkyOCwgMS40OTg5NiwgMi40NTkyNSwgMy42Mzc2NSwgNC44MTYxNiwgNS45ODgxNCwgNy4xNjM1NSIsIFwKLSAgICAgICAgICAiMC4zMjQwOTIsIDEuNDk4OTMsIDIuNDQ5NjgsIDMuNjIxMTQsIDQuODE2LCA1Ljk5MDM5LCA3LjE2MzUxIiwgXAotICAgICAgICAgICIwLjMyMzg1LCAxLjQ5OTA2LCAyLjQzODA2LCAzLjYzODMzLCA0LjgxNjQzLCA1Ljk4NTIxLCA3LjE2MzYiLCBcCi0gICAgICAgICAgIjAuMzI1MTk2LCAxLjUwMTUsIDIuNDM5NzcsIDMuNjM3NDcsIDQuODA0MjgsIDUuOTgzNDQsIDcuMTYzMzYiLCBcCi0gICAgICAgICAgIjAuMzI3ODksIDEuNDk5MjIsIDIuNDQ5OTIsIDMuNjM4NzgsIDQuODA5MDgsIDUuOTg4NzYsIDcuMTYzNTIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQzAiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1MDUzNiwgMC4yMjk3ODUsIDAuMzczMDU2LCAwLjU1MjQ3MSwgMC43MzEzNDYsIDAuOTEwOTMxLCAxLjA5MDA5IiwgXAotICAgICAgICAgICIwLjA2MjEyOSwgMC4yNDE1NDgsIDAuMzg0OTU3LCAwLjU2NDE4OSwgMC43NDMwODQsIDAuOTIyMjA4LCAxLjEwMTc2IiwgXAotICAgICAgICAgICIwLjA3NzEwMiwgMC4yNTYwMzQsIDAuMzk4MTk0LCAwLjU3NzE5NiwgMC43NTY1OTksIDAuOTM1NzMsIDEuMTE0OSIsIFwKLSAgICAgICAgICAiMC4wOTE3ODcsIDAuMjcwNTM0LCAwLjQxMzgyMywgMC41OTI5MDcsIDAuNzY4MzY4LCAwLjk0NzMyMiwgMS4xMjY1IiwgXAotICAgICAgICAgICIwLjEwNjcxOCwgMC4yODUyODQsIDAuNDI3Mjk3LCAwLjYwNjQxMywgMC43ODU0ODMsIDAuOTY0OTkzLCAxLjE0NDAxIiwgXAotICAgICAgICAgICIwLjEzMDA2MSwgMC4zMDg4MzcsIDAuNDUxNjY3LCAwLjYzMDY2LCAwLjgwOTgyNywgMC45ODg2MzksIDEuMTYyOSIsIFwKLSAgICAgICAgICAiMC4xNDg2NjUsIDAuMzI5NTE5LCAwLjQ3MjI1MywgMC42NTExMDksIDAuODMwMiwgMS4wMDkyNCwgMS4xODI1NyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDQxMSwgMC40Njc0MzgsIDAuNzU4NDczLCAxLjEyMjYsIDEuNDg2NDgsIDEuODUwNTQsIDIuMjE0NzUiLCBcCi0gICAgICAgICAgIjAuMTA0MTA0LCAwLjQ2NzQ0NywgMC43NTg1ODksIDEuMTIyNTcsIDEuNDg2MzgsIDEuODUwNSwgMi4yMTQ3OSIsIFwKLSAgICAgICAgICAiMC4xMDY1MDUsIDAuNDY3NDgyLCAwLjc1ODYwNCwgMS4xMjI0NCwgMS40ODY2OCwgMS44NTA2OSwgMi4yMTQ3OSIsIFwKLSAgICAgICAgICAiMC4xMTE3NTYsIDAuNDY3NDMzLCAwLjc1ODUxMiwgMS4xMjI0NCwgMS40ODY2NCwgMS44NTA2NiwgMi4yMTQ2MyIsIFwKLSAgICAgICAgICAiMC4xMTgxOTcsIDAuNDY3Mzc1LCAwLjc1ODUyNSwgMS4xMjI0OCwgMS40ODY2NCwgMS44NTA5NCwgMi4yMTQ3MiIsIFwKLSAgICAgICAgICAiMC4xMzA1MzEsIDAuNDY4NzEzLCAwLjc1ODU5MiwgMS4xMjI2MiwgMS40ODY1NiwgMS44NTA1NSwgMi4yMTQ4NSIsIFwKLSAgICAgICAgICAiMC4xNDI2NywgMC40NzE5NCwgMC43NTg1NTcsIDEuMTIyNTQsIDEuNDg2NzQsIDEuODUwNTEsIDIuMjE0NzgiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTg0NTQ3LCAwLjgwOTg4NiwgMS4zMDk1LCAxLjkzMzU2LCAyLjU1NzQ3LCAzLjE4MzM2LCAzLjgxMTI5IiwgXAotICAgICAgICAgICIwLjE5Mzg4NywgMC44MTk1MTEsIDEuMzE4NjcsIDEuOTQzMDksIDIuNTY2NzIsIDMuMTkzNDIsIDMuODIxMDgiLCBcCi0gICAgICAgICAgIjAuMjA1ODkzLCAwLjgzMTk0MiwgMS4zMzEzOSwgMS45NTUxLCAyLjU3OTIyLCAzLjIwNjAzLCAzLjgzMzg5IiwgXAotICAgICAgICAgICIwLjIxNjM0OCwgMC44NDM5NTMsIDEuMzQzNzUsIDEuOTY3NiwgMi41OTI1NSwgMy4yMTgwMywgMy44NDU4NCIsIFwKLSAgICAgICAgICAiMC4yMjk3NDQsIDAuODU2MTQ2LCAxLjM1NjM1LCAxLjk4MDEzLCAyLjYwNDI2LCAzLjIzMDMxLCAzLjg1ODAzIiwgXAotICAgICAgICAgICIwLjI0OTk1NCwgMC44NzY0MjQsIDEuMzc2NjYsIDIuMDAxMDUsIDIuNjI0MTYsIDMuMjUwNjMsIDMuODc4NDYiLCBcCi0gICAgICAgICAgIjAuMjY2NDA3LCAwLjg5MzA5MywgMS4zOTI0LCAyLjAxNjYsIDIuNjQxNDIsIDMuMjY3NDcsIDMuODk1MTkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzI0MTY0LCAxLjQ5OTA3LCAyLjQ1NzI0LCAzLjYyNDM0LCA0LjgxNjE1LCA1Ljk4ODY1LCA3LjE2Mzg0IiwgXAotICAgICAgICAgICIwLjMyNDA3NSwgMS40OTg3OCwgMi40NDkxNywgMy42MjQxOSwgNC44MTU0NCwgNS45ODg4MywgNy4xNjM2IiwgXAotICAgICAgICAgICIwLjMyNDA1NSwgMS40OTgyNiwgMi40NDkxMiwgMy42MzQ4OSwgNC44MTM5NSwgNS45ODAwNiwgNy4xNjQ2MyIsIFwKLSAgICAgICAgICAiMC4zMjMyMzIsIDEuNDk4NzQsIDIuNDQwODEsIDMuNjIyMjUsIDQuODA3ODIsIDUuOTg4NjQsIDcuMTYzNjEiLCBcCi0gICAgICAgICAgIjAuMzIzNTY3LCAxLjUwMDE0LCAyLjQzODA5LCAzLjYzMjkzLCA0LjgxNjE4LCA1Ljk4ODMyLCA3LjE2MzQ2IiwgXAotICAgICAgICAgICIwLjMyNzIwNiwgMS41MDMzLCAyLjQzODM0LCAzLjYyMjM2LCA0LjgxNTYsIDUuOTg4MjMsIDcuMTYzNTciLCBcCi0gICAgICAgICAgIjAuMzMyNzQzLCAxLjQ5ODk5LCAyLjQ0OTQyLCAzLjYzNzU4LCA0LjgxMzIxLCA1Ljk4OSwgNy4xNjM2OCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDUzNTMsIDAuMDA1MzUxLCAwLjAwNTM1LCAwLjAwNTM0NywgMC4wMDUzNDUsIDAuMDA1MzQ0LCAwLjAwNTM0MSIsIFwKLSAgICAgICAgICAiMC4wMDUzMzIsIDAuMDA1MzI5LCAwLjAwNTMyNywgMC4wMDUzMjUsIDAuMDA1MzIzLCAwLjAwNTMyMiwgMC4wMDUzMjEiLCBcCi0gICAgICAgICAgIjAuMDA1MzIyLCAwLjAwNTMyMywgMC4wMDUzMjMsIDAuMDA1MzIsIDAuMDA1MzE3LCAwLjAwNTMxOCwgMC4wMDUzMTEiLCBcCi0gICAgICAgICAgIjAuMDA1MzE0LCAwLjAwNTMyLCAwLjAwNTMyLCAwLjAwNTMxNywgMC4wMDUzMTYsIDAuMDA1MzEzLCAwLjAwNTMxMSIsIFwKLSAgICAgICAgICAiMC4wMDUzMTMsIDAuMDA1MzE4LCAwLjAwNTMxOSwgMC4wMDUzMTgsIDAuMDA1MzEyLCAwLjAwNTMxLCAwLjAwNTMxIiwgXAotICAgICAgICAgICIwLjAwNTMwNywgMC4wMDUzMTUsIDAuMDA1MzE2LCAwLjAwNTMxNCwgMC4wMDUzMTEsIDAuMDA1MzA4LCAwLjAwNTMwNyIsIFwKLSAgICAgICAgICAiMC4wMDUzMDQsIDAuMDA1MzE1LCAwLjAwNTMxNiwgMC4wMDUzMTIsIDAuMDA1MzEsIDAuMDA1MzA5LCAwLjAwNTMwNyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTcwMywgMC4wMDE3MDEsIDAuMDAxNzAzLCAwLjAwMTcwMiwgMC4wMDE3LCAwLjAwMTY5OSwgMC4wMDE2OTgiLCBcCi0gICAgICAgICAgIjAuMDAxNjcyLCAwLjAwMTY3OCwgMC4wMDE2NzgsIDAuMDAxNjc1LCAwLjAwMTY3NywgMC4wMDE2NzYsIDAuMDAxNjc1IiwgXAotICAgICAgICAgICIwLjAwMTY1NiwgMC4wMDE2NywgMC4wMDE2NzIsIDAuMDAxNjcxLCAwLjAwMTY3MywgMC4wMDE2NzEsIDAuMDAxNjciLCBcCi0gICAgICAgICAgIjAuMDAxNjQ0LCAwLjAwMTY2NiwgMC4wMDE2NjksIDAuMDAxNjY4LCAwLjAwMTY2OSwgMC4wMDE2NjgsIDAuMDAxNjY4IiwgXAotICAgICAgICAgICIwLjAwMTYzNSwgMC4wMDE2NjIsIDAuMDAxNjY2LCAwLjAwMTY2NiwgMC4wMDE2NjcsIDAuMDAxNjY3LCAwLjAwMTY2NSIsIFwKLSAgICAgICAgICAiMC4wMDE2MjQsIDAuMDAxNjU3LCAwLjAwMTY2MiwgMC4wMDE2NjQsIDAuMDAxNjY0LCAwLjAwMTY2NCwgMC4wMDE2NjQiLCBcCi0gICAgICAgICAgIjAuMDAxNjE2LCAwLjAwMTY1MywgMC4wMDE2NiwgMC4wMDE2NjMsIDAuMDAxNjY0LCAwLjAwMTY2NCwgMC4wMDE2NjMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0ODU1LCAwLjAwNDg1MiwgMC4wMDQ4NSwgMC4wMDQ4NDksIDAuMDA0ODQ3LCAwLjAwNDg0NSwgMC4wMDQ4NCIsIFwKLSAgICAgICAgICAiMC4wMDQ4MjgsIDAuMDA0ODI5LCAwLjAwNDgyNywgMC4wMDQ4MjUsIDAuMDA0ODIyLCAwLjAwNDgyMiwgMC4wMDQ4MTgiLCBcCi0gICAgICAgICAgIjAuMDA0ODExLCAwLjAwNDgyLCAwLjAwNDgyLCAwLjAwNDgxOCwgMC4wMDQ4MTUsIDAuMDA0ODE3LCAwLjAwNDgxMiIsIFwKLSAgICAgICAgICAiMC4wMDQ4MDUsIDAuMDA0ODE2LCAwLjAwNDgxNSwgMC4wMDQ4MTQsIDAuMDA0ODEzLCAwLjAwNDgxLCAwLjAwNDgwOSIsIFwKLSAgICAgICAgICAiMC4wMDQ3OTcsIDAuMDA0ODEyLCAwLjAwNDgxMywgMC4wMDQ4MTMsIDAuMDA0ODEsIDAuMDA0ODA3LCAwLjAwNDgwOCIsIFwKLSAgICAgICAgICAiMC4wMDQ3OTEsIDAuMDA0ODA5LCAwLjAwNDgxLCAwLjAwNDgxLCAwLjAwNDgwOCwgMC4wMDQ4MDcsIDAuMDA0ODA1IiwgXAotICAgICAgICAgICIwLjAwNDc4NSwgMC4wMDQ4MDcsIDAuMDA0ODA4LCAwLjAwNDgwOSwgMC4wMDQ4MDcsIDAuMDA0ODA2LCAwLjAwNDgwMyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTA2OCwgMC4wMDEwNzMsIDAuMDAxMDc0LCAwLjAwMTA3NCwgMC4wMDEwNzQsIDAuMDAxMDc0LCAwLjAwMTA3NCIsIFwKLSAgICAgICAgICAiMC4wMDEwNjYsIDAuMDAxMDkyLCAwLjAwMTA5NSwgMC4wMDEwOTYsIDAuMDAxMDk3LCAwLjAwMTA5NywgMC4wMDEwOTciLCBcCi0gICAgICAgICAgIjAuMDAxMDQ0LCAwLjAwMTA4OSwgMC4wMDEwOTYsIDAuMDAxMDk4LCAwLjAwMTA5OSwgMC4wMDExLCAwLjAwMTEwMSIsIFwKLSAgICAgICAgICAiMC4wMDEwMjIsIDAuMDAxMDgzLCAwLjAwMTA5MiwgMC4wMDEwOTYsIDAuMDAxMDk4LCAwLjAwMTEsIDAuMDAxMTAxIiwgXAotICAgICAgICAgICIwLjAwMTAwNCwgMC4wMDEwNzcsIDAuMDAxMDg4LCAwLjAwMTA5NCwgMC4wMDEwOTcsIDAuMDAxMDk4LCAwLjAwMTEiLCBcCi0gICAgICAgICAgIjAuMDAwOTgxLCAwLjAwMTA2OCwgMC4wMDEwODIsIDAuMDAxMDksIDAuMDAxMDk0LCAwLjAwMTA5NiwgMC4wMDEwOTgiLCBcCi0gICAgICAgICAgIjAuMDAwOTY1LCAwLjAwMTA2LCAwLjAwMTA3NiwgMC4wMDEwODYsIDAuMDAxMDkxLCAwLjAwMTA5NCwgMC4wMDEwOTYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0MTMyLCAwLjAwNDEzNCwgMC4wMDQxMzMsIDAuMDA0MTMzLCAwLjAwNDEzMiwgMC4wMDQxMzIsIDAuMDA0MTMxIiwgXAotICAgICAgICAgICIwLjAwNDEyNCwgMC4wMDQxMzIsIDAuMDA0MTMzLCAwLjAwNDEzMywgMC4wMDQxMzUsIDAuMDA0MTMsIDAuMDA0MTM0IiwgXAotICAgICAgICAgICIwLjAwNDExMywgMC4wMDQxMywgMC4wMDQxMzIsIDAuMDA0MTMyLCAwLjAwNDEzMywgMC4wMDQxMzMsIDAuMDA0MTMyIiwgXAotICAgICAgICAgICIwLjAwNDEwMywgMC4wMDQxMjgsIDAuMDA0MTMxLCAwLjAwNDEzMiwgMC4wMDQxMzIsIDAuMDA0MTMyLCAwLjAwNDEzMSIsIFwKLSAgICAgICAgICAiMC4wMDQwOTMsIDAuMDA0MTI1LCAwLjAwNDEyOSwgMC4wMDQxMywgMC4wMDQxMzEsIDAuMDA0MTMxLCAwLjAwNDEzMSIsIFwKLSAgICAgICAgICAiMC4wMDQwODEsIDAuMDA0MTIxLCAwLjAwNDEyNSwgMC4wMDQxMjksIDAuMDA0MTMsIDAuMDA0MTMsIDAuMDA0MTMiLCBcCi0gICAgICAgICAgIjAuMDA0MDc1LCAwLjAwNDExOCwgMC4wMDQxMjMsIDAuMDA0MTI3LCAwLjAwNDEyOCwgMC4wMDQxMywgMC4wMDQxMjkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDE3MjksIDAuMDAxNzM0LCAwLjAwMTczLCAwLjAwMTczMiwgMC4wMDE3MzEsIDAuMDAxNzM2LCAwLjAwMTcyOSIsIFwKLSAgICAgICAgICAiMC4wMDE3MDYsIDAuMDAxNzI4LCAwLjAwMTczMSwgMC4wMDE3MjcsIDAuMDAxNzMsIDAuMDAxNzI5LCAwLjAwMTcyOCIsIFwKLSAgICAgICAgICAiMC4wMDE2ODMsIDAuMDAxNzIxLCAwLjAwMTcyNSwgMC4wMDE3MjgsIDAuMDAxNzI4LCAwLjAwMTcyOCwgMC4wMDE3MjciLCBcCi0gICAgICAgICAgIjAuMDAxNjY1LCAwLjAwMTcxMywgMC4wMDE3MiwgMC4wMDE3MjQsIDAuMDAxNzI1LCAwLjAwMTcyNSwgMC4wMDE3MjUiLCBcCi0gICAgICAgICAgIjAuMDAxNjUyLCAwLjAwMTcwNywgMC4wMDE3MTYsIDAuMDAxNzIxLCAwLjAwMTcyMiwgMC4wMDE3MjMsIDAuMDAxNzI0IiwgXAotICAgICAgICAgICIwLjAwMTYzNSwgMC4wMDE2OTgsIDAuMDAxNzEsIDAuMDAxNzE2LCAwLjAwMTcxOSwgMC4wMDE3MiwgMC4wMDE3MiIsIFwKLSAgICAgICAgICAiMC4wMDE2MjQsIDAuMDAxNjkxLCAwLjAwMTcwNCwgMC4wMDE3MTIsIDAuMDAxNzE2LCAwLjAwMTcxOCwgMC4wMDE3MTgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDMCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzMTY2LCAwLjAwMzE3MSwgMC4wMDMxNzEsIDAuMDAzMTcyLCAwLjAwMzE3MiwgMC4wMDMxNzIsIDAuMDAzMTcyIiwgXAotICAgICAgICAgICIwLjAwMzE2NSwgMC4wMDMxODgsIDAuMDAzMTksIDAuMDAzMTkxLCAwLjAwMzE5MSwgMC4wMDMxOTEsIDAuMDAzMTkyIiwgXAotICAgICAgICAgICIwLjAwMzE1NiwgMC4wMDMxODgsIDAuMDAzMTkzLCAwLjAwMzE5NSwgMC4wMDMxOTYsIDAuMDAzMTk3LCAwLjAwMzE5NyIsIFwKLSAgICAgICAgICAiMC4wMDMxNDQsIDAuMDAzMTg3LCAwLjAwMzE5MiwgMC4wMDMxOTUsIDAuMDAzMTk3LCAwLjAwMzE5OSwgMC4wMDMxOTgiLCBcCi0gICAgICAgICAgIjAuMDAzMTMxLCAwLjAwMzE4MiwgMC4wMDMxOSwgMC4wMDMxOTQsIDAuMDAzMTk1LCAwLjAwMzE5OCwgMC4wMDMxOTciLCBcCi0gICAgICAgICAgIjAuMDAzMTE4LCAwLjAwMzE3OCwgMC4wMDMxODcsIDAuMDAzMTkyLCAwLjAwMzE5NSwgMC4wMDMxOTcsIDAuMDAzMTk3IiwgXAotICAgICAgICAgICIwLjAwMzEwOCwgMC4wMDMxNzQsIDAuMDAzMTgzLCAwLjAwMzE5LCAwLjAwMzE5NCwgMC4wMDMxOTYsIDAuMDAzMTk3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxNzI2LCAwLjAwMTczMiwgMC4wMDE3MzIsIDAuMDAxNzMxLCAwLjAwMTczMSwgMC4wMDE3MywgMC4wMDE3MjkiLCBcCi0gICAgICAgICAgIjAuMDAxNjk4LCAwLjAwMTcyNSwgMC4wMDE3MjgsIDAuMDAxNzI4LCAwLjAwMTcyOSwgMC4wMDE3MjgsIDAuMDAxNzI3IiwgXAotICAgICAgICAgICIwLjAwMTY3MiwgMC4wMDE3MTYsIDAuMDAxNzIzLCAwLjAwMTcyNSwgMC4wMDE3MjYsIDAuMDAxNzI2LCAwLjAwMTcyNyIsIFwKLSAgICAgICAgICAiMC4wMDE2NDMsIDAuMDAxNzA4LCAwLjAwMTcxNywgMC4wMDE3MjEsIDAuMDAxNzI0LCAwLjAwMTcyMywgMC4wMDE3MjMiLCBcCi0gICAgICAgICAgIjAuMDAxNjM5LCAwLjAwMTcwMSwgMC4wMDE3MTMsIDAuMDAxNzE4LCAwLjAwMTcxOSwgMC4wMDE3MjEsIDAuMDAxNzIyIiwgXAotICAgICAgICAgICIwLjAwMTYyLCAwLjAwMTY5MSwgMC4wMDE3MDQsIDAuMDAxNzEyLCAwLjAwMTcxNSwgMC4wMDE3MTgsIDAuMDAxNzE4IiwgXAotICAgICAgICAgICIwLjAwMTYxNCwgMC4wMDE2ODMsIDAuMDAxNjk5LCAwLjAwMTcwOCwgMC4wMDE3MTMsIDAuMDAxNzE1LCAwLjAwMTcxNiIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBPQUkyMTFYNCAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoT0FJMjExWDQpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC40NTI1NjE7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDMxMTI1NzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDMxMDE0MzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDMxMTI1NzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDEyMjQsIDAuMDAxMjIzLCAwLjAwMTIyMywgMC4wMDEyMjIsIDAuMDAxMjIzLCAwLjAwMTIyMiwgMC4wMDEyMjIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDEyMjYsIDAuMDAxMjI3LCAwLjAwMTIyOCwgMC4wMDEyMjcsIDAuMDAxMjI3LCAwLjAwMTIyOCwgMC4wMDEyMjgiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEExKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDMwMDE1NTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDMwMDE1NTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDI5ODg1NDsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDEyMjUsIDAuMDAxMjI0LCAwLjAwMTIyNCwgMC4wMDEyMjMsIDAuMDAxMjIzLCAwLjAwMTIyMywgMC4wMDEyMjMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDEyMjYsIDAuMDAxMjI3LCAwLjAwMTIyNywgMC4wMDEyMjcsIDAuMDAxMjI3LCAwLjAwMTIyNywgMC4wMDEyMjciKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDI4NTkyNTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDI4NTkyNTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDI4NDg1NTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDEyMjUsIDAuMDAxMjI0LCAwLjAwMTIyMywgMC4wMDEyMjMsIDAuMDAxMjIzLCAwLjAwMTIyMywgMC4wMDEyMjIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDEyMjgsIDAuMDAxMjI4LCAwLjAwMTIyOCwgMC4wMDEyMjgsIDAuMDAxMjMsIDAuMDAxMjMsIDAuMDAxMjI5Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihDMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAyODc0MDI7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAyODcwOTc7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAyODc0MDI7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMTUxLCAwLjAwMDE0OSwgMC4wMDAxNDksIDAuMDAwMTQ4LCAwLjAwMDE0OSwgMC4wMDAxNSwgMC4wMDAxNDkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDEzOSwgMC4wMDEzOTEsIDAuMDAxMzkxLCAwLjAwMTM5MywgMC4wMDEzOTIsIDAuMDAxMzkyLCAwLjAwMTM5MiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjE3ODIzOTsKLSAgICBmdW5jdGlvbiA6ICIoISgoKEEwK0ExKSBCMCkgQzApKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTAiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDgzNTI4LCAwLjM0Njg4NywgMC42MDc3MjcsIDAuNzkzNzI2LCAxLjA5MTQ2LCAxLjM1MTM0LCAxLjcyMzQ0IiwgXAotICAgICAgICAgICIwLjA5NDg5OSwgMC4zNTgzMDQsIDAuNjE5MjI5LCAwLjgwNTIwOSwgMS4xMDI4OCwgMS4zNjI5NiwgMS43MzQyOCIsIFwKLSAgICAgICAgICAiMC4xMDc4OTgsIDAuMzcxNDI3LCAwLjYzMjI0NywgMC44MTgyMywgMS4xMTU4OSwgMS4zNzU5MiwgMS43NDczOSIsIFwKLSAgICAgICAgICAiMC4xMjA0ODEsIDAuMzg0MDQsIDAuNjQ0Nzk3LCAwLjgzMDk0LCAxLjEyODQxLCAxLjM4ODQ3LCAxLjc2MDUzIiwgXAotICAgICAgICAgICIwLjEzMjkzLCAwLjM5NjUyMSwgMC42NTczMzcsIDAuODQzNDMyLCAxLjE0MSwgMS40MDE0MiwgMS43NzI2IiwgXAotICAgICAgICAgICIwLjE1MjYyLCAwLjQxNjMxMiwgMC42NzcyNTUsIDAuODYzMzQ1LCAxLjE2MDc2LCAxLjQyMDg5LCAxLjc5MjM1IiwgXAotICAgICAgICAgICIwLjE2OTc3MiwgMC40MzM2OTMsIDAuNjk0Njg4LCAwLjg4MDgzNCwgMS4xNzgyNiwgMS40Mzg0NSwgMS44MDk5NCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEzNDE5OSwgMC42NDM5MDgsIDEuMTUzMzEsIDEuNTE1MzEsIDIuMDk2ODcsIDIuNjA0ODEsIDMuMzMwNjMiLCBcCi0gICAgICAgICAgIjAuMTM0MDQyLCAwLjY0Mzk4NiwgMS4xNTI0MiwgMS41MTY5OCwgMi4wOTYzMywgMi42MDQ1NCwgMy4zMzM2NyIsIFwKLSAgICAgICAgICAiMC4xMzQxOTMsIDAuNjQzNjM3LCAxLjE1MjYyLCAxLjUxNTQ1LCAyLjA5NzIyLCAyLjYwNjEzLCAzLjMzMDE4IiwgXAotICAgICAgICAgICIwLjEzNTEwOSwgMC42NDM2NTcsIDEuMTUzLCAxLjUxNzAyLCAyLjA5NjU5LCAyLjYwNDE5LCAzLjMzMDc5IiwgXAotICAgICAgICAgICIwLjEzNzQ5MiwgMC42NDM1OTksIDEuMTUyNTgsIDEuNTE1ODYsIDIuMDk4MzgsIDIuNjA0NjgsIDMuMzMwOTQiLCBcCi0gICAgICAgICAgIjAuMTQyNzIsIDAuNjQzNDM3LCAxLjE1MjMxLCAxLjUxNTM0LCAyLjA5NjU3LCAyLjYwNDc4LCAzLjMzMDEzIiwgXAotICAgICAgICAgICIwLjE0ODQyMywgMC42NDQzNjMsIDEuMTUzMjgsIDEuNTE1NTUsIDIuMDk2NTYsIDIuNjA0OSwgMy4zMzAxOSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE0NjI2MSwgMC41ODgzMywgMS4wMjg4MiwgMS4zNDMzMywgMS44NDY1NCwgMi4yODcwNSwgMi45MTYzMSIsIFwKLSAgICAgICAgICAiMC4xNTc2NzUsIDAuNjAwMDM1LCAxLjA0MDkyLCAxLjM1NjIxLCAxLjg1OTM0LCAyLjMwMDUyLCAyLjkyOTE2IiwgXAotICAgICAgICAgICIwLjE3MTQyOCwgMC42MTM4NjYsIDEuMDU0NjcsIDEuMzY5NzcsIDEuODczMzQsIDIuMzE0ODEsIDIuOTQzNDkiLCBcCi0gICAgICAgICAgIjAuMTg0NDM4LCAwLjYyNzA2NiwgMS4wNjgxNSwgMS4zODI3MSwgMS44ODY1OCwgMi4zMjY5NSwgMi45NTY2NSIsIFwKLSAgICAgICAgICAiMC4xOTY4MzEsIDAuNjM5NTcyLCAxLjA4MDksIDEuMzk1NzgsIDEuODk5NDEsIDIuMzM5MzcsIDIuOTY5MTkiLCBcCi0gICAgICAgICAgIjAuMjE2MDU3LCAwLjY1ODkxOCwgMS4wOTk5OCwgMS40MTU1NCwgMS45MTg5MiwgMi4zNjAwOSwgMi45ODg3NyIsIFwKLSAgICAgICAgICAiMC4yMzI0ODcsIDAuNjc1NTUyLCAxLjExNzAyLCAxLjQzMTQxLCAxLjkzNTI2LCAyLjM3NjIsIDMuMDA1NDUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMDY4MjcsIDEuMDM3NCwgMS44Njc1MywgMi40NjIyLCAzLjQwNzc4LCA0LjIzNzI0LCA1LjQyMjg3IiwgXAotICAgICAgICAgICIwLjIwNjgyNiwgMS4wMzc1NSwgMS44Njc0MSwgMi40NTk5NiwgMy40MDgyNywgNC4yMzg3LCA1LjQyNTkyIiwgXAotICAgICAgICAgICIwLjIwNjgzNSwgMS4wMzcyNCwgMS44Njc2NSwgMi40NjAwMiwgMy40MDgzMywgNC4yMzkzNiwgNS40MjUxNiIsIFwKLSAgICAgICAgICAiMC4yMDY4MTgsIDEuMDM3NDYsIDEuODY3NDIsIDIuNDYwNCwgMy40MDgzLCA0LjIzODY1LCA1LjQyNTU3IiwgXAotICAgICAgICAgICIwLjIwNjkwMSwgMS4wMzc3NSwgMS44Njc0NiwgMi40NTk2NiwgMy40MDc4NSwgNC4yMzg2NCwgNS40MjgxOSIsIFwKLSAgICAgICAgICAiMC4yMDgwMjcsIDEuMDM3MDksIDEuODY3NDEsIDIuNDU5ODIsIDMuNDA3ODIsIDQuMjM4OCwgNS40Mjk1MiIsIFwKLSAgICAgICAgICAiMC4yMTAxMzMsIDEuMDM3NDUsIDEuODY3NzYsIDIuNDYxOTgsIDMuNDA4MjIsIDQuMjQwMDQsIDUuNDI0MjQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc2Nzk5LCAwLjM0MDIwNiwgMC42MDEwNDcsIDAuNzg3MDExLCAxLjA4NDY0LCAxLjM0NDcyLCAxLjcxNjE4IiwgXAotICAgICAgICAgICIwLjA4Njc4NywgMC4zNTAyNDgsIDAuNjExMDc2LCAwLjc5NzEwOCwgMS4wOTQ3OCwgMS4zNTQ4OCwgMS43MjYyIiwgXAotICAgICAgICAgICIwLjA5OTY1OCwgMC4zNjMxNzIsIDAuNjI0MDM2LCAwLjgxMDA2LCAxLjEwNzY2LCAxLjM2Nzk5LCAxLjczOTIiLCBcCi0gICAgICAgICAgIjAuMTEzMjI3LCAwLjM3NjM1MSwgMC42MzcxMjYsIDAuODIzMjkxLCAxLjEyMDg1LCAxLjM4MDc5LCAxLjc1MjQ3IiwgXAotICAgICAgICAgICIwLjEyNjM3MSwgMC4zODkyOTIsIDAuNjUwMTQ1LCAwLjgzNjEzNiwgMS4xMzM4LCAxLjM5Mzk0LCAxLjc2NTMiLCBcCi0gICAgICAgICAgIjAuMTQ3OTQ5LCAwLjQxMDI3MiwgMC42NzEwODQsIDAuODU3MTY4LCAxLjE1NDc2LCAxLjQxNDg2LCAxLjc4NjI2IiwgXAotICAgICAgICAgICIwLjE2Njc3NiwgMC40Mjg1NTQsIDAuNjg5NDQ1LCAwLjg3NTQ1NiwgMS4xNzMwMywgMS40MzMxOCwgMS44MDQ4NiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEzNDMxOCwgMC42NDM0NDEsIDEuMTUyMSwgMS41MTUzNSwgMi4wOTc3MiwgMi42MDU1MiwgMy4zMzAyIiwgXAotICAgICAgICAgICIwLjEzNDE4LCAwLjY0MzQzOCwgMS4xNTMzMSwgMS41MTY5NCwgMi4wOTY3NywgMi42MDY4OCwgMy4zMzAxMSIsIFwKLSAgICAgICAgICAiMC4xMzQ0OTQsIDAuNjQzNDQ4LCAxLjE1MjM1LCAxLjUxNjkzLCAyLjA5Nzg5LCAyLjYwNDY1LCAzLjMzMDIyIiwgXAotICAgICAgICAgICIwLjEzNzIyMSwgMC42NDM5NzIsIDEuMTUyMjcsIDEuNTE3MDMsIDIuMDk4MjksIDIuNjA3MTEsIDMuMzMxIiwgXAotICAgICAgICAgICIwLjE0MjE0LCAwLjY0MzQ2OCwgMS4xNTIxNCwgMS41MTYsIDIuMDk3NzgsIDIuNjA2ODYsIDMuMzMwMiIsIFwKLSAgICAgICAgICAiMC4xNTIwODMsIDAuNjQzNTc4LCAxLjE1MzI4LCAxLjUxNTM1LCAyLjA5Nzk4LCAyLjYwNDkzLCAzLjMzMzIxIiwgXAotICAgICAgICAgICIwLjE2MjI2MywgMC42NDQyMjksIDEuMTUyMzIsIDEuNTE2OTMsIDIuMDk2NjYsIDIuNjA2NTMsIDMuMzMzMTYiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMzA5MDEsIDAuNTczMjQ4LCAxLjAxNTMsIDEuMzMxNzksIDEuODM2MjcsIDIuMjc3MjIsIDIuOTA5NDkiLCBcCi0gICAgICAgICAgIjAuMTQyNzQ2LCAwLjU4NTcxNSwgMS4wMjc4NywgMS4zNDM5NiwgMS44NDg5MSwgMi4yOTA0MSwgMi45MjIwOCIsIFwKLSAgICAgICAgICAiMC4xNTYyNDYsIDAuNTk5Nzg1LCAxLjA0MjAyLCAxLjM1ODQ1LCAxLjg2MzA1LCAyLjMwNTk5LCAyLjkzNjc3IiwgXAotICAgICAgICAgICIwLjE2OTAyNiwgMC42MTI3MjMsIDEuMDU1MjQsIDEuMzcxNjYsIDEuODc2MzcsIDIuMzE5MzcsIDIuOTUiLCBcCi0gICAgICAgICAgIjAuMTgxMTg0LCAwLjYyNTY2LCAxLjA2NzgyLCAxLjM4Mzc5LCAxLjg4ODk0LCAyLjMzMTM4LCAyLjk2MjI5IiwgXAotICAgICAgICAgICIwLjIwMDIwOCwgMC42NDQ1NDgsIDEuMDg3MzQsIDEuNDAzNywgMS45MDksIDIuMzUxNCwgMi45ODE5NyIsIFwKLSAgICAgICAgICAiMC4yMTY1MjksIDAuNjYxMDUxLCAxLjEwMzcxLCAxLjQxOTI1LCAxLjkyNDk1LCAyLjM2NzIsIDIuOTk4NzIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xOTEwMjMsIDEuMDI4MTcsIDEuODY1MSwgMi40NTE5NSwgMy40MjE5NywgNC4yNDk3OCwgNS40MzE2MSIsIFwKLSAgICAgICAgICAiMC4xOTEwODgsIDEuMDI4MTMsIDEuODY1MDYsIDIuNDUyMjcsIDMuNDIyLCA0LjI1MTU3LCA1LjQzMjQ4IiwgXAotICAgICAgICAgICIwLjE5MTA1OCwgMS4wMzA5MywgMS44NjUwNiwgMi40NTEzNSwgMy40MjE5NCwgNC4yMzYwMiwgNS40MjM0NSIsIFwKLSAgICAgICAgICAiMC4xOTExOSwgMS4wMjc5NCwgMS44NzA1OCwgMi40NTExOSwgMy40MTE5NywgNC4yMzQ2MiwgNS40MjkxMyIsIFwKLSAgICAgICAgICAiMC4xOTExMTQsIDEuMDIyOTUsIDEuODY1MTUsIDIuNDUzODUsIDMuNDIxOTksIDQuMjUzNDgsIDUuNDMwOTQiLCBcCi0gICAgICAgICAgIjAuMTkyODk3LCAxLjAzMDcsIDEuODcwMjIsIDIuNDUxNzksIDMuNDAyMSwgNC4yMzQ4NiwgNS40MjkwMyIsIFwKLSAgICAgICAgICAiMC4xOTU0MTcsIDEuMDMwOTIsIDEuODU4MywgMi40NjUyOCwgMy40MjIwMiwgNC4yNDEwMSwgNS40MjY1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzNTgyMiwgMC4xNjM2NDQsIDAuMjkwOTkxLCAwLjM4MTgzNSwgMC41MjcxNTMsIDAuNjU0NDM1LCAwLjgzNTk3NSIsIFwKLSAgICAgICAgICAiMC4wNDc1MjQsIDAuMTc0OTA0LCAwLjMwMjI0NCwgMC4zOTMxNDcsIDAuNTM4NDEyLCAwLjY2NTU4NywgMC44NDc0NiIsIFwKLSAgICAgICAgICAiMC4wNjIyLCAwLjE4OTY0NSwgMC4zMTY5NjUsIDAuNDA3NzcyLCAwLjU1MDY0NiwgMC42Nzc5MjksIDAuODU5MzgiLCBcCi0gICAgICAgICAgIjAuMDc3MDg3LCAwLjIwMzk1OCwgMC4zMzE0NSwgMC40MjIzODMsIDAuNTY3NjA5LCAwLjY5MzgwOSwgMC44NzI0NDkiLCBcCi0gICAgICAgICAgIjAuMDkxNDU3LCAwLjIxODkxNCwgMC4zNDU5NywgMC40MzY3MzIsIDAuNTgyMDk5LCAwLjcwOTI1NSwgMC44ODk3MzIiLCBcCi0gICAgICAgICAgIjAuMTExODA2LCAwLjI0MzA0MywgMC4zNjk0ODIsIDAuNDYwMTU1LCAwLjYwNTMxNywgMC43MzI0NDgsIDAuOTE0MTQxIiwgXAotICAgICAgICAgICIwLjEyNzYzLCAwLjI2Mzc0LCAwLjM5MDA3MywgMC40ODA0NDIsIDAuNjI1Njg4LCAwLjc1Mjc3MiwgMC45MzQzNzUiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzI2ODIsIDAuMzMwMDc4LCAwLjU4ODE1NSwgMC43NzI1ODEsIDEuMDY3NjYsIDEuMzI1ODIsIDEuNjk0NzgiLCBcCi0gICAgICAgICAgIjAuMDcyOTUsIDAuMzMwMDYzLCAwLjU4ODI2MiwgMC43NzI1MjcsIDEuMDY3NjYsIDEuMzI1ODcsIDEuNjk0OTYiLCBcCi0gICAgICAgICAgIjAuMDc3MDE4LCAwLjMzMDA2NywgMC41ODgyMDMsIDAuNzcyNDk3LCAxLjA2NzU5LCAxLjMyNjAzLCAxLjY5NDgyIiwgXAotICAgICAgICAgICIwLjA4MzQ5OCwgMC4zMzAwNDcsIDAuNTg4MjE3LCAwLjc3MjY0NCwgMS4wNjc2NiwgMS4zMjU5OSwgMS42OTQ3IiwgXAotICAgICAgICAgICIwLjA5MTI3NCwgMC4zMzEwMDYsIDAuNTg4MjA1LCAwLjc3MjUyOCwgMS4wNjc1NCwgMS4zMjU3NiwgMS42OTQ3MSIsIFwKLSAgICAgICAgICAiMC4xMDUzNDEsIDAuMzM1MDQsIDAuNTg4MzI3LCAwLjc3MjY1MiwgMS4wNjc3NCwgMS4zMjU4MSwgMS42OTQ4NiIsIFwKLSAgICAgICAgICAiMC4xMTg3NzksIDAuMzQwNjI1LCAwLjU4OTc1LCAwLjc3MjY2MSwgMS4wNjc3NCwgMS4zMjU5MSwgMS42OTQ4NCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEzNzAzMiwgMC41NzkzMzYsIDEuMDIwMjEsIDEuMzM0OTQsIDEuODM4NjYsIDIuMjc5NTgsIDIuOTA4MzIiLCBcCi0gICAgICAgICAgIjAuMTQ3MzYsIDAuNTkwMDA1LCAxLjAzMTM1LCAxLjM0NTcsIDEuODQ5OTQsIDIuMjkwMjEsIDIuOTE5MjYiLCBcCi0gICAgICAgICAgIjAuMTYwMTE0LCAwLjYwMzE1NywgMS4wNDQxMywgMS4zNTk1MiwgMS44NjI5MSwgMi4zMDQwOCwgMi45MzMwNyIsIFwKLSAgICAgICAgICAiMC4xNzI1MzEsIDAuNjE2MDM0LCAxLjA1NzA5LCAxLjM3MjMxLCAxLjg3NTY0LCAyLjMxNjQ0LCAyLjk0NTQ1IiwgXAotICAgICAgICAgICIwLjE4NTExNiwgMC42Mjg0NjIsIDEuMDY5ODIsIDEuMzg0OTEsIDEuODg4OTEsIDIuMzI5NDUsIDIuOTU4MzciLCBcCi0gICAgICAgICAgIjAuMjA1MTc3LCAwLjY0ODc3MiwgMS4wODk5NiwgMS40MDUyNCwgMS45MDk0NywgMi4zNDk1MiwgMi45Nzg1NiIsIFwKLSAgICAgICAgICAiMC4yMjMwNzcsIDAuNjY2NzEsIDEuMTA3OTQsIDEuNDIzMzMsIDEuOTI3MDMsIDIuMzY3NTgsIDIuOTk2NTUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMDY4MjIsIDEuMDM3NTQsIDEuODY3MzksIDIuNDcwNjksIDMuNDIyMDMsIDQuMjUyOTQsIDUuNDMyMDYiLCBcCi0gICAgICAgICAgIjAuMjA2ODIzLCAxLjAzNzc0LCAxLjg3MTc5LCAyLjQ3MDMsIDMuNDIyMzksIDQuMjUzMDEsIDUuNDMwNDciLCBcCi0gICAgICAgICAgIjAuMjA2NjE3LCAxLjAzNzA3LCAxLjg2NzY5LCAyLjQ3MjA4LCAzLjQwODczLCA0LjIzOTI5LCA1LjQyNDcyIiwgXAotICAgICAgICAgICIwLjIwNjY1OCwgMS4wMzc1NiwgMS44NjczOCwgMi40NjAzMywgMy40MjIwMSwgNC4yNTEzMiwgNS40MzIzMiIsIFwKLSAgICAgICAgICAiMC4yMDc0NzYsIDEuMDM3NjcsIDEuODY3ODUsIDIuNDcxODIsIDMuNDIyNTksIDQuMjM3NjYsIDUuNDI5MDMiLCBcCi0gICAgICAgICAgIjAuMjEwNTkyLCAxLjAzNzA5LCAxLjg2Nzg5LCAyLjQ2MzE2LCAzLjQwOTIzLCA0LjI1Mjk5LCA1LjQyNzY1IiwgXAotICAgICAgICAgICIwLjIxNTIyOCwgMS4wMzc3OSwgMS44Njc0NiwgMi40NzIyOCwgMy40MDk3OCwgNC4yNTI5OSwgNS40Mjg0MyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzI2MzUsIDAuMTU5NjIyLCAwLjI4NjUxOCwgMC4zNzcxNTYsIDAuNTIyMTc2LCAwLjY0ODkwNywgMC44MzAyNTEiLCBcCi0gICAgICAgICAgIjAuMDQ0Mzk1LCAwLjE3MDk3OCwgMC4yOTc4MDYsIDAuMzg4NTMsIDAuNTMzNDkyLCAwLjY2MDQ3OSwgMC44NDE1MDIiLCBcCi0gICAgICAgICAgIjAuMDU5MTUyLCAwLjE4NTcyLCAwLjMxMjYyNCwgMC40MDMzMywgMC41NDU2ODYsIDAuNjcyNTE2LCAwLjg1NDAzMSIsIFwKLSAgICAgICAgICAiMC4wNzQwMjksIDAuMjAwMzI5LCAwLjMyNzA4LCAwLjQxNzc3OCwgMC41NjI2OCwgMC42ODYwMjYsIDAuODY3MTg2IiwgXAotICAgICAgICAgICIwLjA4NzY5OSwgMC4yMTUxNjQsIDAuMzQxNjk2LCAwLjQzMjIyOSwgMC41NzcyOTksIDAuNzA0MDE5LCAwLjg4MDk1OCIsIFwKLSAgICAgICAgICAiMC4xMDY5ODQsIDAuMjM5MjM0LCAwLjM2NTMzNSwgMC40NTU1NTIsIDAuNjAwMzkyLCAwLjcyNzIxNywgMC45MDg0NjkiLCBcCi0gICAgICAgICAgIjAuMTIyMTkxLCAwLjI1OTkyOSwgMC4zODU5NTIsIDAuNDc2MDk5LCAwLjYyMDgwMSwgMC43NDc1NzIsIDAuOTI4NzM0Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY4NjM3LCAwLjMyNTM2LCAwLjU4MjgyNSwgMC43NjY2OTMsIDEuMDYxMTMsIDEuMzE4ODUsIDEuNjg3MyIsIFwKLSAgICAgICAgICAiMC4wNjkxNiwgMC4zMjUzNCwgMC41ODI4MTUsIDAuNzY2NzIyLCAxLjA2MTI4LCAxLjMxODk5LCAxLjY4NzMyIiwgXAotICAgICAgICAgICIwLjA3Mzc1OCwgMC4zMjUzMTQsIDAuNTgyODA5LCAwLjc2NjgxNCwgMS4wNjEyNiwgMS4zMTg4MywgMS42ODcyNCIsIFwKLSAgICAgICAgICAiMC4wODA3OTYsIDAuMzI1MzUxLCAwLjU4MjcwOCwgMC43NjY3MTUsIDEuMDYxMTcsIDEuMzE4ODEsIDEuNjg2OTQiLCBcCi0gICAgICAgICAgIjAuMDg5MDEzLCAwLjMyNjQxNSwgMC41ODI4NjYsIDAuNzY2NzY3LCAxLjA2MTM3LCAxLjMxODc0LCAxLjY4Njg5IiwgXAotICAgICAgICAgICIwLjEwMzc0MSwgMC4zMzA2MjYsIDAuNTgzMDEsIDAuNzY2NzM3LCAxLjA2MTE5LCAxLjMxODc1LCAxLjY4NyIsIFwKLSAgICAgICAgICAiMC4xMTc4MjgsIDAuMzM2MzU5LCAwLjU4NDQ5MiwgMC43NjY4MzYsIDEuMDYxMTYsIDEuMzE4NzgsIDEuNjg2OTciKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMjIzMzksIDAuNTY0Njg5LCAxLjAwNTU3LCAxLjMyMDk5LCAxLjgyMzkzLCAyLjI2MzYsIDIuODk0MDkiLCBcCi0gICAgICAgICAgIjAuMTMxNDkxLCAwLjU3NDMwMiwgMS4wMTUxNiwgMS4zMzAxMywgMS44MzM0NiwgMi4yNzQ0OCwgMi45MDMzNCIsIFwKLSAgICAgICAgICAiMC4xNDMyMjMsIDAuNTg2NDQsIDEuMDI3NDEsIDEuMzQyOTcsIDEuODQ2ODQsIDIuMjg3MTMsIDIuOTE1ODciLCBcCi0gICAgICAgICAgIjAuMTU1NDI1LCAwLjU5OTIxLCAxLjA0MDU5LCAxLjM1NTUzLCAxLjg1OTA1LCAyLjMwMDM3LCAyLjkyOTM2IiwgXAotICAgICAgICAgICIwLjE2NzMwMiwgMC42MTEwMDEsIDEuMDUxODgsIDEuMzY2ODQsIDEuODcxMTQsIDIuMzEyMzEsIDIuOTQxMDEiLCBcCi0gICAgICAgICAgIjAuMTg3ODczLCAwLjYzMDM0OCwgMS4wNzE3NCwgMS4zODczMiwgMS44OTA0NCwgMi4zMzEyNywgMi45NjAyIiwgXAotICAgICAgICAgICIwLjIwNTUzMiwgMC42NDc0MTgsIDEuMDg5MDcsIDEuNDAzNjEsIDEuOTA4MDMsIDIuMzQ4MiwgMi45NzgwNSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIwNjgzLCAxLjAzNzU0LCAxLjg2NzQxLCAyLjQ1OTg3LCAzLjQyMTkzLCA0LjI1MTI4LCA1LjQyNTc0IiwgXAotICAgICAgICAgICIwLjIwNjc3MiwgMS4wMzcxNSwgMS44Njg1NSwgMi40NjA1NiwgMy40MTg4NywgNC4yNDExMywgNS40Mjg1MiIsIFwKLSAgICAgICAgICAiMC4yMDYzNiwgMS4wMzcxMiwgMS44NjcwNCwgMi40NzIyMSwgMy40MTcyMiwgNC4yNTM1OCwgNS40MjkwMyIsIFwKLSAgICAgICAgICAiMC4yMDY0ODEsIDEuMDM3MDksIDEuODY3MjIsIDIuNDYxLCAzLjQyMTk3LCA0LjI0NDM5LCA1LjQyNTI3IiwgXAotICAgICAgICAgICIwLjIwOTE5NSwgMS4wMzc1MywgMS44Njc1OSwgMi40NjAzOSwgMy40MjI0OSwgNC4yMzg3OCwgNS40Mjk1NCIsIFwKLSAgICAgICAgICAiMC4yMTU0OTYsIDEuMDM3MTIsIDEuODY3MjksIDIuNDU5ODUsIDMuNDA4OTgsIDQuMjUzMDEsIDUuNDI4MzMiLCBcCi0gICAgICAgICAgIjAuMjIzMDk3LCAxLjAzNzY2LCAxLjg3MDc5LCAyLjQ2MjYzLCAzLjQyMjQzLCA0LjI1MTc1LCA1LjQyNTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEwNDgzLCAwLjAxMDQ4LCAwLjAxMDQ3NywgMC4wMTA0NzMsIDAuMDEwNDczLCAwLjAxMDQ2NSwgMC4wMTA0NzIiLCBcCi0gICAgICAgICAgIjAuMDEwNDM2LCAwLjAxMDQzNiwgMC4wMTA0MzUsIDAuMDEwNDMsIDAuMDEwNDI3LCAwLjAxMDQyNiwgMC4wMTA0MjEiLCBcCi0gICAgICAgICAgIjAuMDEwNDA4LCAwLjAxMDQyMywgMC4wMTA0MjEsIDAuMDEwNDIsIDAuMDEwNDE3LCAwLjAxMDQxNCwgMC4wMTA0MDkiLCBcCi0gICAgICAgICAgIjAuMDEwNDAyLCAwLjAxMDQxMywgMC4wMTA0MTcsIDAuMDEwNDE0LCAwLjAxMDQxMSwgMC4wMTA0MDksIDAuMDEwNDAxIiwgXAotICAgICAgICAgICIwLjAxMDM5MSwgMC4wMTA0MTEsIDAuMDEwNDEzLCAwLjAxMDQwOSwgMC4wMTA0MDksIDAuMDEwNDA4LCAwLjAxMDQwMiIsIFwKLSAgICAgICAgICAiMC4wMTAzODEsIDAuMDEwNDA0LCAwLjAxMDQwNCwgMC4wMTA0MDUsIDAuMDEwNDA0LCAwLjAxMDQwMSwgMC4wMTAzOTciLCBcCi0gICAgICAgICAgIjAuMDEwMzc1LCAwLjAxMDQwMiwgMC4wMTA0MDQsIDAuMDEwNDA0LCAwLjAxMDQsIDAuMDEwNCwgMC4wMTAzOTYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzQxOCwgMC4wMDM0MTgsIDAuMDAzNDE4LCAwLjAwMzQxNywgMC4wMDM0MTUsIDAuMDAzNDE1LCAwLjAwMzQxMyIsIFwKLSAgICAgICAgICAiMC4wMDMzNDYsIDAuMDAzMzY2LCAwLjAwMzM3LCAwLjAwMzM2OCwgMC4wMDMzNjQsIDAuMDAzMzYxLCAwLjAwMzM2NSIsIFwKLSAgICAgICAgICAiMC4wMDMzMDUsIDAuMDAzMzQ5LCAwLjAwMzM1NSwgMC4wMDMzNTcsIDAuMDAzMzU0LCAwLjAwMzM1NSwgMC4wMDMzNTQiLCBcCi0gICAgICAgICAgIjAuMDAzMjgsIDAuMDAzMzM4LCAwLjAwMzM0NywgMC4wMDMzNDksIDAuMDAzMzQ5LCAwLjAwMzM0OSwgMC4wMDMzNDkiLCBcCi0gICAgICAgICAgIjAuMDAzMjU3LCAwLjAwMzMyOCwgMC4wMDMzNCwgMC4wMDMzNDMsIDAuMDAzMzQ2LCAwLjAwMzM0NSwgMC4wMDMzNDUiLCBcCi0gICAgICAgICAgIjAuMDAzMjMsIDAuMDAzMzE1LCAwLjAwMzMzMSwgMC4wMDMzMzYsIDAuMDAzMzQsIDAuMDAzMzQsIDAuMDAzMzQiLCBcCi0gICAgICAgICAgIjAuMDAzMjEzLCAwLjAwMzMwNSwgMC4wMDMzMjMsIDAuMDAzMzI5LCAwLjAwMzMzNCwgMC4wMDMzMzcsIDAuMDAzMzM4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA5NDU5LCAwLjAwOTQ1NywgMC4wMDk0NTQsIDAuMDA5NDUyLCAwLjAwOTQ0OSwgMC4wMDk0NDYsIDAuMDA5NDQ1IiwgXAotICAgICAgICAgICIwLjAwOTQwMSwgMC4wMDk0MDksIDAuMDA5NDA4LCAwLjAwOTQwNCwgMC4wMDk0MDQsIDAuMDA5Mzk3LCAwLjAwOTM5NSIsIFwKLSAgICAgICAgICAiMC4wMDkzNjYsIDAuMDA5MzksIDAuMDA5MzkxLCAwLjAwOTM4OCwgMC4wMDkzODgsIDAuMDA5Mzg2LCAwLjAwOTM4IiwgXAotICAgICAgICAgICIwLjAwOTM0NCwgMC4wMDkzNzksIDAuMDA5MzgxLCAwLjAwOTM3OSwgMC4wMDkzOCwgMC4wMDkzNzYsIDAuMDA5MzciLCBcCi0gICAgICAgICAgIjAuMDA5MzI4LCAwLjAwOTM3MywgMC4wMDkzNzcsIDAuMDA5Mzc3LCAwLjAwOTM3NSwgMC4wMDkzNzMsIDAuMDA5MzciLCBcCi0gICAgICAgICAgIjAuMDA5MzEyLCAwLjAwOTM2MywgMC4wMDkzNzIsIDAuMDA5MzcyLCAwLjAwOTM3MiwgMC4wMDkzNzEsIDAuMDA5MzY5IiwgXAotICAgICAgICAgICIwLjAwOTMwMiwgMC4wMDkzNTYsIDAuMDA5MzY4LCAwLjAwOTM2NywgMC4wMDkzNjksIDAuMDA5MzY3LCAwLjAwOTM2MyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyMDk3LCAwLjAwMjExNiwgMC4wMDIxMTgsIDAuMDAyMTE4LCAwLjAwMjExOSwgMC4wMDIxMTksIDAuMDAyMTE5IiwgXAotICAgICAgICAgICIwLjAwMjA2OSwgMC4wMDIxNDgsIDAuMDAyMTU3LCAwLjAwMjE2LCAwLjAwMjE2MywgMC4wMDIxNjQsIDAuMDAyMTY1IiwgXAotICAgICAgICAgICIwLjAwMjAwOSwgMC4wMDIxMzgsIDAuMDAyMTU2LCAwLjAwMjE2MSwgMC4wMDIxNjYsIDAuMDAyMTY5LCAwLjAwMjE3MyIsIFwKLSAgICAgICAgICAiMC4wMDE5NTIsIDAuMDAyMTIxLCAwLjAwMjE0NywgMC4wMDIxNTUsIDAuMDAyMTYzLCAwLjAwMjE2NywgMC4wMDIxNyIsIFwKLSAgICAgICAgICAiMC4wMDE5MTQsIDAuMDAyMTAzLCAwLjAwMjEzNywgMC4wMDIxNDgsIDAuMDAyMTU3LCAwLjAwMjE2MiwgMC4wMDIxNjciLCBcCi0gICAgICAgICAgIjAuMDAxODY1LCAwLjAwMjA3NywgMC4wMDIxMjEsIDAuMDAyMTM1LCAwLjAwMjE0OSwgMC4wMDIxNTYsIDAuMDAyMTYyIiwgXAotICAgICAgICAgICIwLjAwMTgzNSwgMC4wMDIwNTYsIDAuMDAyMTA3LCAwLjAwMjEyNSwgMC4wMDIxNDEsIDAuMDAyMTQ5LCAwLjAwMjE1NyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwODA4OSwgMC4wMDgwOTMsIDAuMDA4MDkzLCAwLjAwODA5MywgMC4wMDgwOTEsIDAuMDA4MDkxLCAwLjAwODA5MSIsIFwKLSAgICAgICAgICAiMC4wMDgwNjIsIDAuMDA4MDg5LCAwLjAwODA5MywgMC4wMDgwOTMsIDAuMDA4MDkzLCAwLjAwODA5LCAwLjAwODA5OCIsIFwKLSAgICAgICAgICAiMC4wMDgwMjgsIDAuMDA4MDgyLCAwLjAwODA4OCwgMC4wMDgwOTEsIDAuMDA4MDkxLCAwLjAwODA5MSwgMC4wMDgwOTIiLCBcCi0gICAgICAgICAgIjAuMDA4LCAwLjAwODA2MSwgMC4wMDgwODUsIDAuMDA4MDg4LCAwLjAwODA5MSwgMC4wMDgwOTEsIDAuMDA4MDkiLCBcCi0gICAgICAgICAgIjAuMDA3OTgsIDAuMDA4MDY4LCAwLjAwODA4MSwgMC4wMDgwODQsIDAuMDA4MDg4LCAwLjAwODA4OCwgMC4wMDgwODkiLCBcCi0gICAgICAgICAgIjAuMDA3OTU2LCAwLjAwODA1NywgMC4wMDgwNzMsIDAuMDA4MDc5LCAwLjAwODA4NCwgMC4wMDgwODUsIDAuMDA4MDg3IiwgXAotICAgICAgICAgICIwLjAwNzk0MywgMC4wMDgwNDcsIDAuMDA4MDY4LCAwLjAwODA2OCwgMC4wMDgwOCwgMC4wMDgwODMsIDAuMDA4MDg0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDM0NjIsIDAuMDAzNDc0LCAwLjAwMzQ4MiwgMC4wMDM0ODQsIDAuMDAzNDY2LCAwLjAwMzQ4OSwgMC4wMDM0NzMiLCBcCi0gICAgICAgICAgIjAuMDAzMzk3LCAwLjAwMzQ2LCAwLjAwMzQ3LCAwLjAwMzQ2OCwgMC4wMDM0NjgsIDAuMDAzNDY3LCAwLjAwMzQ3IiwgXAotICAgICAgICAgICIwLjAwMzM0MSwgMC4wMDM0NCwgMC4wMDM0NTcsIDAuMDAzNDYzLCAwLjAwMzQ2NCwgMC4wMDM0NjUsIDAuMDAzNDYiLCBcCi0gICAgICAgICAgIjAuMDAzMzAyLCAwLjAwMzQyMiwgMC4wMDM0NDQsIDAuMDAzNDUyLCAwLjAwMzQ1OSwgMC4wMDM0NTksIDAuMDAzNDYxIiwgXAotICAgICAgICAgICIwLjAwMzI3NCwgMC4wMDM0MDcsIDAuMDAzNDM2LCAwLjAwMzQ0NSwgMC4wMDM0NTEsIDAuMDAzNDU0LCAwLjAwMzQ1OCIsIFwKLSAgICAgICAgICAiMC4wMDMyNDEsIDAuMDAzMzgyLCAwLjAwMzQxOSwgMC4wMDM0MzEsIDAuMDAzNDQxLCAwLjAwMzQ0NywgMC4wMDM0NSIsIFwKLSAgICAgICAgICAiMC4wMDMyMjIsIDAuMDAzMzY0LCAwLjAwMzQwNiwgMC4wMDM0MiwgMC4wMDM0MzQsIDAuMDAzNDQsIDAuMDAzNDQ1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQzAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2MjMzLCAwLjAwNjI0OCwgMC4wMDYyNSwgMC4wMDYyNSwgMC4wMDYyNSwgMC4wMDYyNTEsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMDA2MjE4LCAwLjAwNjI3OSwgMC4wMDYyODcsIDAuMDA2Mjg4LCAwLjAwNjI5LCAwLjAwNjI5MSwgMC4wMDYyOTEiLCBcCi0gICAgICAgICAgIjAuMDA2MTgxLCAwLjAwNjI3OCwgMC4wMDYyOSwgMC4wMDYyOTMsIDAuMDA2Mjk3LCAwLjAwNjI5OSwgMC4wMDYzMDIiLCBcCi0gICAgICAgICAgIjAuMDA2MTQ1LCAwLjAwNjI2MiwgMC4wMDYyODcsIDAuMDA2MjkyLCAwLjAwNjI5NywgMC4wMDYzMDIsIDAuMDA2MzA0IiwgXAotICAgICAgICAgICIwLjAwNjExOSwgMC4wMDYyNTksIDAuMDA2MjgyLCAwLjAwNjI4OCwgMC4wMDYyOTYsIDAuMDA2Mjk4LCAwLjAwNjMwMSIsIFwKLSAgICAgICAgICAiMC4wMDYwODcsIDAuMDA2MjQ2LCAwLjAwNjI3MywgMC4wMDYyODEsIDAuMDA2MjkxLCAwLjAwNjI5NSwgMC4wMDYyOTkiLCBcCi0gICAgICAgICAgIjAuMDA2MDc3LCAwLjAwNjIzMiwgMC4wMDYyNjcsIDAuMDA2MjczLCAwLjAwNjI4NywgMC4wMDYyOTIsIDAuMDA2Mjk2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDM0NTYsIDAuMDAzNDc3LCAwLjAwMzQ3MiwgMC4wMDM0ODUsIDAuMDAzNDgzLCAwLjAwMzQ3NCwgMC4wMDM0NzIiLCBcCi0gICAgICAgICAgIjAuMDAzMzc4LCAwLjAwMzQ1NSwgMC4wMDM0NjQsIDAuMDAzNDY4LCAwLjAwMzQ2NiwgMC4wMDM0NywgMC4wMDM0NjkiLCBcCi0gICAgICAgICAgIjAuMDAzMzE1LCAwLjAwMzQzMywgMC4wMDM0NTMsIDAuMDAzNDU4LCAwLjAwMzQ2MywgMC4wMDM0NTksIDAuMDAzNDYzIiwgXAotICAgICAgICAgICIwLjAwMzI2OSwgMC4wMDM0MTEsIDAuMDAzNDM5LCAwLjAwMzQ0NywgMC4wMDM0NTMsIDAuMDAzNDU3LCAwLjAwMzQ2MSIsIFwKLSAgICAgICAgICAiMC4wMDMyNDMsIDAuMDAzMzkyLCAwLjAwMzQyNiwgMC4wMDM0MzcsIDAuMDAzNDQ3LCAwLjAwMzQ0OSwgMC4wMDM0NTMiLCBcCi0gICAgICAgICAgIjAuMDAzMjIsIDAuMDAzMzY3LCAwLjAwMzQwOCwgMC4wMDM0MjIsIDAuMDAzNDM1LCAwLjAwMzQ0MiwgMC4wMDM0NDYiLCBcCi0gICAgICAgICAgIjAuMDAzMjA5LCAwLjAwMzM0NywgMC4wMDMzOTQsIDAuMDAzNDExLCAwLjAwMzQyNiwgMC4wMDM0MzQsIDAuMDAzNDQxIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogT0FJMjFYNCAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChPQUkyMVg0KSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMzI0ODE5OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAzMTczMzU7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAzMTU4OTU7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAzMTczMzU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxMjI1LCAwLjAwMTIyMywgMC4wMDEyMjMsIDAuMDAxMjIzLCAwLjAwMTIyMiwgMC4wMDEyMjIsIDAuMDAxMjIyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxMjMsIDAuMDAxMjI4LCAwLjAwMTIyOCwgMC4wMDEyMjgsIDAuMDAxMjI4LCAwLjAwMTIyOCwgMC4wMDEyMjgiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEExKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDMwMzcwODsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDMwMzcwODsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDMwMjU5MzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDEyMjQsIDAuMDAxMjI0LCAwLjAwMTIyNCwgMC4wMDEyMjQsIDAuMDAxMjI0LCAwLjAwMTIyMywgMC4wMDEyMjMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDEyMywgMC4wMDEyMjgsIDAuMDAxMjI4LCAwLjAwMTIyNywgMC4wMDEyMjcsIDAuMDAxMjI3LCAwLjAwMTIyNyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQjApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMjg3NDA3OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMjg3MTgxOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMjg3NDA3OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDYzOCwgMC4wMDA2MzcsIDAuMDAwNjM5LCAwLjAwMDYzOSwgMC4wMDA2MzksIDAuMDAwNjM3LCAwLjAwMDYzOCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTM5LCAwLjAwMTM5MSwgMC4wMDEzOTEsIDAuMDAxMzkxLCAwLjAwMTM5MSwgMC4wMDEzOTMsIDAuMDAxMzkzIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMjY5MjQ7Ci0gICAgZnVuY3Rpb24gOiAiKCEoKEEwK0ExKSBCMCkpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzI2MDMsIDAuMzM0MTY1LCAwLjU5NDQ4NCwgMC43ODAxNDYsIDEuMDc3NTcsIDEuMzM3MiwgMS43MDkiLCBcCi0gICAgICAgICAgIjAuMDg0MDA0LCAwLjM0NTY4MiwgMC42MDYwNiwgMC43OTE2NTksIDEuMDg5MDgsIDEuMzQ4ODQsIDEuNzIwMDEiLCBcCi0gICAgICAgICAgIjAuMDk3MDA2LCAwLjM1ODc3MywgMC42MTkwNzIsIDAuODA0NjkxLCAxLjEwMTg1LCAxLjM2MTkyLCAxLjczMzEiLCBcCi0gICAgICAgICAgIjAuMTA5NTE0LCAwLjM3MTM2MSwgMC42MzE1OTcsIDAuODE3NTg3LCAxLjExNDQyLCAxLjM3NDQ2LCAxLjc0NjI1IiwgXAotICAgICAgICAgICIwLjEyMTkwMywgMC4zODM4MTYsIDAuNjQ0MTE0LCAwLjgyOTkzOSwgMS4xMjcyNiwgMS4zODczNiwgMS43NTg3OSIsIFwKLSAgICAgICAgICAiMC4xNDE0ODcsIDAuNDAzNjUzLCAwLjY2MzkzNSwgMC44NDk5MzUsIDEuMTQ3MDEsIDEuNDA3MTEsIDEuNzc4NjkiLCBcCi0gICAgICAgICAgIjAuMTU3OTkyLCAwLjQyMTAxNCwgMC42ODEzODMsIDAuODY3MjUxLCAxLjE2NDM0LCAxLjQyNDQzLCAxLjc5NjMzIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTE1MDg5LCAwLjYyNDU0NiwgMS4xMzI0OSwgMS40OTU5NCwgMi4wNzU3MywgMi41ODU2NiwgMy4zMDk1MSIsIFwKLSAgICAgICAgICAiMC4xMTUwMTQsIDAuNjI0MjQyLCAxLjEzMjIzLCAxLjQ5NTMzLCAyLjA3NTg1LCAyLjU4NTY0LCAzLjMxMTY5IiwgXAotICAgICAgICAgICIwLjExNTE0OSwgMC42MjQwOTIsIDEuMTMzNDcsIDEuNDk0ODksIDIuMDc1NDcsIDIuNTg1NTYsIDMuMzA5MyIsIFwKLSAgICAgICAgICAiMC4xMTY3OTEsIDAuNjIzOTM5LCAxLjEzMzU1LCAxLjQ5NjUyLCAyLjA3NzYxLCAyLjU4MzU5LCAzLjMwOTgzIiwgXAotICAgICAgICAgICIwLjExOTQ2NCwgMC42MjQyMTUsIDEuMTMyMzksIDEuNDk1MzYsIDIuMDc1ODMsIDIuNTg0NjksIDMuMzA5NjQiLCBcCi0gICAgICAgICAgIjAuMTI1NTM2LCAwLjYyNDUzNSwgMS4xMzIsIDEuNDk1MTcsIDIuMDc2MTIsIDIuNTg1NzUsIDMuMzA5NjYiLCBcCi0gICAgICAgICAgIjAuMTMyMDQ4LCAwLjYyNDYxMywgMS4xMzIzNiwgMS40OTUzNywgMi4wNzYsIDIuNTg0MTcsIDMuMzA5NzMiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODQ4NjEsIDAuMzc2MDYyLCAwLjY2NjIxMSwgMC44NzMwNTUsIDEuMjA0ODEsIDEuNDk0MjcsIDEuOTA3NzkiLCBcCi0gICAgICAgICAgIjAuMDk2NTI3LCAwLjM4NzgyMiwgMC42Nzc4ODcsIDAuODg1NTA5LCAxLjIxNjQ0LCAxLjUwNzAzLCAxLjkyMDMyIiwgXAotICAgICAgICAgICIwLjExMDU1MSwgMC40MDIxMDMsIDAuNjkyMTEzLCAwLjg5OTUwMiwgMS4yMzE0MywgMS41MjA5MiwgMS45MzUxIiwgXAotICAgICAgICAgICIwLjEyNDExNSwgMC40MTU2OTksIDAuNzA2MTEsIDAuOTEzMjQxLCAxLjI0NDY2LCAxLjUzNDYzLCAxLjk0OTIxIiwgXAotICAgICAgICAgICIwLjEzNzU0NSwgMC40MjkyNjMsIDAuNzE5NDgyLCAwLjkyNzAxNywgMS4yNTgyOSwgMS41NDg0MywgMS45NjE4OSIsIFwKLSAgICAgICAgICAiMC4xNTg5MjEsIDAuNDUwNzI5LCAwLjc0MTA4LCAwLjk0ODEyMiwgMS4yNzk5NSwgMS41Njk4NSwgMS45ODQzNSIsIFwKLSAgICAgICAgICAiMC4xNzc1MzgsIDAuNDY5NTI0LCAwLjc1OTc4LCAwLjk2Njk1MiwgMS4yOTgzNCwgMS41ODg0NSwgMi4wMDI5MiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEyMzE3LCAwLjY3ODc2NywgMS4yMzQwOCwgMS42MzE5MywgMi4yNjQ5MywgMi44MiwgMy42MTE3NCIsIFwKLSAgICAgICAgICAiMC4xMjMyNDUsIDAuNjc5MTI4LCAxLjIzNCwgMS42MzA3NiwgMi4yNjUyOSwgMi44MjAxOCwgMy42MTI5MyIsIFwKLSAgICAgICAgICAiMC4xMjMyNDUsIDAuNjc5MTIzLCAxLjIzNDAyLCAxLjYzMDE5LCAyLjI2NTM2LCAyLjgxOTk1LCAzLjYxMjk0IiwgXAotICAgICAgICAgICIwLjEyMzc5NywgMC42Nzg4OTUsIDEuMjM0MTgsIDEuNjMxMDgsIDIuMjY0OTYsIDIuODE5OTUsIDMuNjEzNTYiLCBcCi0gICAgICAgICAgIjAuMTI1NzYsIDAuNjc4ODM3LCAxLjIzNDM3LCAxLjYzMDc2LCAyLjI2NTU1LCAyLjgyMDIzLCAzLjYxMjMxIiwgXAotICAgICAgICAgICIwLjEzMDU4OCwgMC42Nzg3NzcsIDEuMjMzNzUsIDEuNjMwODEsIDIuMjY1NzUsIDIuODIwMDgsIDMuNjE0NzEiLCBcCi0gICAgICAgICAgIjAuMTM2NDYxLCAwLjY3ODkyNSwgMS4yMzQzMywgMS42MzAyNywgMi4yNjQ0LCAyLjgyMDQxLCAzLjYxMzIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY2MDQ5LCAwLjMyNzY1MSwgMC41ODc4NDMsIDAuNzczNjY5LCAxLjA3MDcxLCAxLjMzMTAyLCAxLjcwMTk2IiwgXAotICAgICAgICAgICIwLjA3NjAzMywgMC4zMzc3OTcsIDAuNTk3OTg4LCAwLjc4MzgwMSwgMS4wODA4OSwgMS4zNDExNiwgMS43MTIxMSIsIFwKLSAgICAgICAgICAiMC4wODg4NjMsIDAuMzUwNzQzLCAwLjYxMTA3NCwgMC43OTY4NzcsIDEuMDkzODUsIDEuMzU0MjQsIDEuNzI1OTEiLCBcCi0gICAgICAgICAgIjAuMTAyNDg2LCAwLjM2MzkxMSwgMC42MjQxODksIDAuODA5OTMxLCAxLjEwNzM5LCAxLjM2NzUzLCAxLjczODIyIiwgXAotICAgICAgICAgICIwLjExNTY0NywgMC4zNzY4NTEsIDAuNjM3MjM5LCAwLjgyMjgyNiwgMS4xMjAwMSwgMS4zODAyMSwgMS43NTEyNyIsIFwKLSAgICAgICAgICAiMC4xMzcyMDIsIDAuMzk3NzgzLCAwLjY1ODA4OCwgMC44NDM4MjQsIDEuMTQxLCAxLjQwMDg4LCAxLjc3MjI3IiwgXAotICAgICAgICAgICIwLjE1NDc0MiwgMC40MTYxMjksIDAuNjc2NDg0LCAwLjg2MjE1MywgMS4xNTk0OCwgMS40MTkzMSwgMS43OTA3OSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExNTAxOCwgMC42MjQyNDksIDEuMTMyLCAxLjQ5NjQ2LCAyLjA3NTUsIDIuNTg0MDEsIDMuMzA5MjgiLCBcCi0gICAgICAgICAgIjAuMTE1MDQzLCAwLjYyNDIzMiwgMS4xMzIwMywgMS40OTUzNiwgMi4wNzc2MSwgMi41ODQwMiwgMy4zMDkyOSIsIFwKLSAgICAgICAgICAiMC4xMTYxMTcsIDAuNjIzOTYxLCAxLjEzMjE2LCAxLjQ5NjI1LCAyLjA3NTUxLCAyLjU4MzgyLCAzLjMwOTc3IiwgXAotICAgICAgICAgICIwLjEyMDA2OSwgMC42MjQyMTMsIDEuMTMyMzcsIDEuNDk0OSwgMi4wNzcyOCwgMi41ODM5MywgMy4zMDkwMyIsIFwKLSAgICAgICAgICAiMC4xMjU4MDEsIDAuNjIzODg5LCAxLjEzMjQ3LCAxLjQ5NjcyLCAyLjA3NTU3LCAyLjU4NDA2LCAzLjMwOTI3IiwgXAotICAgICAgICAgICIwLjEzNjkzMywgMC42MjQzNjQsIDEuMTMyMzUsIDEuNDk1ODUsIDIuMDc1NTYsIDIuNTg1NjksIDMuMzExNjIiLCBcCi0gICAgICAgICAgIjAuMTQ4NDQ4LCAwLjYyNTI0LCAxLjEzMzAxLCAxLjQ5NDkzLCAyLjA3NjEsIDIuNTg0MSwgMy4zMTE5NCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3NTUwNCwgMC4zNjc1MTUsIDAuNjU5NzIsIDAuODY3NzM5LCAxLjIwMTAxLCAxLjQ5MzM3LCAxLjkwOTciLCBcCi0gICAgICAgICAgIjAuMDg3NDIyLCAwLjM3OTc2NCwgMC42NzE0OTcsIDAuODgwNDA5LCAxLjIxMzM3LCAxLjUwNTg0LCAxLjkyMTc0IiwgXAotICAgICAgICAgICIwLjEwMTIxNSwgMC4zOTM5NywgMC42ODU5NTgsIDAuODk0MjA2LCAxLjIyODIxLCAxLjUxOTM3LCAxLjkzNzM1IiwgXAotICAgICAgICAgICIwLjExNDYwOCwgMC40MDc2ODksIDAuNjk5ODM5LCAwLjkwNzk5OCwgMS4yNDIwMSwgMS41MzMyMSwgMS45NTE0NyIsIFwKLSAgICAgICAgICAiMC4xMjc4MjMsIDAuNDIxMTE5LCAwLjcxMzA0NCwgMC45MjE5MjgsIDEuMjU1MjYsIDEuNTQ3MjQsIDEuOTYzNzEiLCBcCi0gICAgICAgICAgIjAuMTQ5MDgzLCAwLjQ0MjQxNSwgMC43MzQ1ODUsIDAuOTQzNjEsIDEuMjc2ODUsIDEuNTY4NCwgMS45ODU3MSIsIFwKLSAgICAgICAgICAiMC4xNjcwOCwgMC40NjA5NjEsIDAuNzUzMjY4LCAwLjk2MTY5OCwgMS4yOTUyLCAxLjU4NzY0LCAyLjAwNDA2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTEzNTgsIDAuNjczNjUxLCAxLjIzMzE3LCAxLjY0MTYxLCAyLjI4NDA1LCAyLjgyOTgxLCAzLjY0NTEzIiwgXAotICAgICAgICAgICIwLjExMzY0MSwgMC42NzMzNzUsIDEuMjM3MDgsIDEuNjMzMDMsIDIuMjgwMDgsIDIuODMyMTYsIDMuNjQ0NzEiLCBcCi0gICAgICAgICAgIjAuMTEzNTU1LCAwLjY3NTM1MSwgMS4yMzM5MiwgMS42MzgsIDIuMjcwNzgsIDIuODM4NzMsIDMuNjMwODUiLCBcCi0gICAgICAgICAgIjAuMTE0MzUyLCAwLjY3NjExMSwgMS4yMzUxMywgMS42NDA0MywgMi4yNzA1NCwgMi44MzczMiwgMy42MzI5MSIsIFwKLSAgICAgICAgICAiMC4xMTY3NDcsIDAuNjc2MTE2LCAxLjIzNjk1LCAxLjYzMjk1LCAyLjI3NDMzLCAyLjgzMDg1LCAzLjYzNDY5IiwgXAotICAgICAgICAgICIwLjEyMjEyNCwgMC42NzYwNTQsIDEuMjM4NTQsIDEuNjMzNTksIDIuMjc0NjMsIDIuODQ1NTMsIDMuNjM2MzgiLCBcCi0gICAgICAgICAgIjAuMTI4MjgsIDAuNjc0Mjg0LCAxLjIzODg4LCAxLjYzODc4LCAyLjI4MTE5LCAyLjgzMDMxLCAzLjY0NDY2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyOTgxNywgMC4xNTY3NDgsIDAuMjgzNTc3LCAwLjM3NDE0NSwgMC41MTkwNDYsIDAuNjQ1NzU1LCAwLjgyNzAxMyIsIFwKLSAgICAgICAgICAiMC4wNDE1MTgsIDAuMTY4MDg5LCAwLjI5NDg2NSwgMC4zODU1MjgsIDAuNTMwMzM5LCAwLjY1NzEyMSwgMC44Mzg0NjYiLCBcCi0gICAgICAgICAgIjAuMDU2MjkxLCAwLjE4Mjc5NywgMC4zMDk2NSwgMC40MDAyMiwgMC41NDI2MjcsIDAuNjY5MzM2LCAwLjg1MDM4NCIsIFwKLSAgICAgICAgICAiMC4wNzA4OCwgMC4xOTc1ODcsIDAuMzIyOTczLCAwLjQxMzU1NywgMC41NTgzOTEsIDAuNjg1MTc4LCAwLjg2NjUyIiwgXAotICAgICAgICAgICIwLjA4NDA3LCAwLjIxMjI1NywgMC4zMzg3MjYsIDAuNDI5MjM5LCAwLjU3NDIwMSwgMC42OTc4NiwgMC44NzkxMjMiLCBcCi0gICAgICAgICAgIjAuMTAyNTc4LCAwLjIzNjMxNiwgMC4zNjIyNjYsIDAuNDUyNTMsIDAuNTk3MjU0LCAwLjcyNDA1MywgMC45MDE1OTgiLCBcCi0gICAgICAgICAgIjAuMTE2OTc4LCAwLjI1Njk3NiwgMC4zODMwMTcsIDAuNDczMTA1LCAwLjYxNzY5NSwgMC43NDQzOTIsIDAuOTI1NDgyIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDYyMzAzLCAwLjMxODgzNywgMC41NzYxNzIsIDAuNzYwMDI3LCAxLjA1NDM0LCAxLjMxMTcyLCAxLjY4MDA2IiwgXAotICAgICAgICAgICIwLjA2MzA0MywgMC4zMTg4MTMsIDAuNTc2MDg3LCAwLjc1OTk2NiwgMS4wNTQzNiwgMS4zMTE3MSwgMS42Nzk3OSIsIFwKLSAgICAgICAgICAiMC4wNjgxNjYsIDAuMzE4ODI0LCAwLjU3NjE2NCwgMC43NjAwMywgMS4wNTQyMywgMS4zMTE3MywgMS42Nzk1NCIsIFwKLSAgICAgICAgICAiMC4wNzU1OTMsIDAuMzE4ODQyLCAwLjU3NjExNSwgMC43NjAwMzksIDEuMDU0MTMsIDEuMzExNzQsIDEuNjc5NjUiLCBcCi0gICAgICAgICAgIjAuMDg0MTgyLCAwLjMyMDAwNywgMC41NzYxNjMsIDAuNzYwMDI3LCAxLjA1NDEyLCAxLjMxMTcxLCAxLjY4MDI4IiwgXAotICAgICAgICAgICIwLjA5OTQ2NiwgMC4zMjQzNjgsIDAuNTc2MjA4LCAwLjc1OTk0NCwgMS4wNTQxNCwgMS4zMTE3NSwgMS42Nzk4IiwgXAotICAgICAgICAgICIwLjExMzY2NiwgMC4zMzAyNTcsIDAuNTc3OTc0LCAwLjc2MDAxNiwgMS4wNTQzNiwgMS4zMTE3NywgMS42Nzk2OCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3NDg0LCAwLjM2NjE2LCAwLjY1NjMwMywgMC44NjM2MTUsIDEuMTk1MDQsIDEuNDg1NCwgMS44OTkwOCIsIFwKLSAgICAgICAgICAiMC4wODQ5MDIsIDAuMzc2NjIzLCAwLjY2Njc2OSwgMC44NzM5MjksIDEuMjA1MSwgMS40OTUxMywgMS45MDk2IiwgXAotICAgICAgICAgICIwLjA5Nzc0MywgMC4zODk3MTgsIDAuNjc5OTg5LCAwLjg4NzE2MSwgMS4yMTkxMiwgMS41MDg1LCAxLjkyMzE0IiwgXAotICAgICAgICAgICIwLjExMTM0OCwgMC40MDM1NTgsIDAuNjkzNzE3LCAwLjkwMTA4MSwgMS4yMzI3LCAxLjUyMjc0LCAxLjkzNzExIiwgXAotICAgICAgICAgICIwLjEyNDg1NiwgMC40MTYxLCAwLjcwNjU2LCAwLjkxMzY1NywgMS4yNDQ5OSwgMS41MzU0NywgMS45NDk2MyIsIFwKLSAgICAgICAgICAiMC4xNDY1NiwgMC40MzcyMjksIDAuNzI3NzI0LCAwLjkzNDkxLCAxLjI2NjQyLCAxLjU1NzI2LCAxLjk3MDQxIiwgXAotICAgICAgICAgICIwLjE2NTU2NywgMC40NTU3NDMsIDAuNzQ2MDgyLCAwLjk1MzQxNCwgMS4yODUyNiwgMS41NzUwOSwgMS45OTAxMyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEyMzQ4NCwgMC42NzkxNzcsIDEuMjMzNzYsIDEuNjMxNzMsIDIuMjczMjYsIDIuODM0NDQsIDMuNjQ1MiIsIFwKLSAgICAgICAgICAiMC4xMjM0MjgsIDAuNjc4Nzg4LCAxLjIzNzA3LCAxLjYzOTQ1LCAyLjI3MzQ0LCAyLjg0MjEzLCAzLjYzODk4IiwgXAotICAgICAgICAgICIwLjEyMzQ3OCwgMC42Nzg4NSwgMS4yMzY5NCwgMS42MzgyOCwgMi4yNzQ0MSwgMi44NDEyOCwgMy42MzU4MyIsIFwKLSAgICAgICAgICAiMC4xMjY0MDcsIDAuNjc4OTQ0LCAxLjIzMzk4LCAxLjYzODQsIDIuMjg1MTUsIDIuODM3NjQsIDMuNjMwMDciLCBcCi0gICAgICAgICAgIjAuMTMxMjE5LCAwLjY3ODg5MywgMS4yMzcxLCAxLjYzOTQxLCAyLjI4MDM4LCAyLjgzNDQ2LCAzLjY0NTI2IiwgXAotICAgICAgICAgICIwLjE0MTA4OSwgMC42Nzg4ODIsIDEuMjMzNzcsIDEuNjQxMDEsIDIuMjc3NjYsIDIuODMyOSwgMy42NDQ2IiwgXAotICAgICAgICAgICIwLjE1MTQwMSwgMC42Nzg5NzMsIDEuMjM0ODYsIDEuNjM4OTgsIDIuMjc0MywgMi44MzU4OCwgMy42MzQ5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA3ODUzLCAwLjAwNzg1MywgMC4wMDc4NTEsIDAuMDA3ODUsIDAuMDA3ODUzLCAwLjAwNzg0NCwgMC4wMDc4MzMiLCBcCi0gICAgICAgICAgIjAuMDA3ODEyLCAwLjAwNzgyNCwgMC4wMDc4MjMsIDAuMDA3ODIxLCAwLjAwNzgxOCwgMC4wMDc4MTcsIDAuMDA3ODE0IiwgXAotICAgICAgICAgICIwLjAwNzc4OSwgMC4wMDc4MTMsIDAuMDA3ODE1LCAwLjAwNzgxNCwgMC4wMDc4MTIsIDAuMDA3ODExLCAwLjAwNzgxIiwgXAotICAgICAgICAgICIwLjAwNzc3MywgMC4wMDc4MDcsIDAuMDA3ODEsIDAuMDA3ODEsIDAuMDA3ODEsIDAuMDA3ODA4LCAwLjAwNzgwMyIsIFwKLSAgICAgICAgICAiMC4wMDc3NjEsIDAuMDA3ODAzLCAwLjAwNzgwNiwgMC4wMDc4MDksIDAuMDA3ODA1LCAwLjAwNzgwNiwgMC4wMDc4MDYiLCBcCi0gICAgICAgICAgIjAuMDA3NzQzLCAwLjAwNzc5NSwgMC4wMDc4MDIsIDAuMDA3ODAyLCAwLjAwNzgwNCwgMC4wMDc4MDQsIDAuMDA3ODAyIiwgXAotICAgICAgICAgICIwLjAwNzczNywgMC4wMDc3OSwgMC4wMDc4LCAwLjAwNzgwMiwgMC4wMDc4MDEsIDAuMDA3ODAyLCAwLjAwNzc5OSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyNDMsIDAuMDAyNDM0LCAwLjAwMjQzMiwgMC4wMDI0MzIsIDAuMDAyNDM0LCAwLjAwMjQzLCAwLjAwMjQyOSIsIFwKLSAgICAgICAgICAiMC4wMDIzNTYsIDAuMDAyMzgxLCAwLjAwMjM4NCwgMC4wMDIzODMsIDAuMDAyMzgzLCAwLjAwMjM4MywgMC4wMDIzODEiLCBcCi0gICAgICAgICAgIjAuMDAyMzE0LCAwLjAwMjM2NSwgMC4wMDIzNzEsIDAuMDAyMzcxLCAwLjAwMjM3MywgMC4wMDIzNzQsIDAuMDAyMzc1IiwgXAotICAgICAgICAgICIwLjAwMjI4NiwgMC4wMDIzNTEsIDAuMDAyMzYsIDAuMDAyMzYzLCAwLjAwMjM2MywgMC4wMDIzNjQsIDAuMDAyMzY1IiwgXAotICAgICAgICAgICIwLjAwMjI2MywgMC4wMDIzNDIsIDAuMDAyMzU1LCAwLjAwMjM1OCwgMC4wMDIzNjEsIDAuMDAyMzYxLCAwLjAwMjM2MiIsIFwKLSAgICAgICAgICAiMC4wMDIyMzksIDAuMDAyMzI4LCAwLjAwMjM0NiwgMC4wMDIzNSwgMC4wMDIzNTQsIDAuMDAyMzU2LCAwLjAwMjM1OCIsIFwKLSAgICAgICAgICAiMC4wMDIyMjEsIDAuMDAyMzE5LCAwLjAwMjMzOCwgMC4wMDIzNDUsIDAuMDAyMzUxLCAwLjAwMjM1MywgMC4wMDIzNTUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDY4MzMsIDAuMDA2ODM0LCAwLjAwNjgzMiwgMC4wMDY4MywgMC4wMDY4MzIsIDAuMDA2ODI3LCAwLjAwNjgyMiIsIFwKLSAgICAgICAgICAiMC4wMDY3NzIsIDAuMDA2Nzk5LCAwLjAwNjgsIDAuMDA2Nzk5LCAwLjAwNjc5NywgMC4wMDY3OTcsIDAuMDA2Nzk0IiwgXAotICAgICAgICAgICIwLjAwNjczMiwgMC4wMDY3ODIsIDAuMDA2Nzg4LCAwLjAwNjc4OCwgMC4wMDY3ODYsIDAuMDA2Nzg4LCAwLjAwNjc4MyIsIFwKLSAgICAgICAgICAiMC4wMDY3MDYsIDAuMDA2NzcsIDAuMDA2NzgxLCAwLjAwNjc4MiwgMC4wMDY3ODMsIDAuMDA2NzgzLCAwLjAwNjc4MiIsIFwKLSAgICAgICAgICAiMC4wMDY2OSwgMC4wMDY3NjQsIDAuMDA2Nzc1LCAwLjAwNjc3OSwgMC4wMDY3NzgsIDAuMDA2NzgyLCAwLjAwNjc3NiIsIFwKLSAgICAgICAgICAiMC4wMDY2NzIsIDAuMDA2NzUyLCAwLjAwNjc2OSwgMC4wMDY3NzIsIDAuMDA2NzczLCAwLjAwNjc3NSwgMC4wMDY3NzUiLCBcCi0gICAgICAgICAgIjAuMDA2NjY1LCAwLjAwNjc0NSwgMC4wMDY3NjMsIDAuMDA2NzY2LCAwLjAwNjc3MiwgMC4wMDY3NzIsIDAuMDA2NzcyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDExNDksIDAuMDAxMTcsIDAuMDAxMTcyLCAwLjAwMTE3MywgMC4wMDExNzMsIDAuMDAxMTc0LCAwLjAwMTE3NCIsIFwKLSAgICAgICAgICAiMC4wMDExMTIsIDAuMDAxMjAyLCAwLjAwMTIxMiwgMC4wMDEyMTUsIDAuMDAxMjE3LCAwLjAwMTIxOSwgMC4wMDEyMiIsIFwKLSAgICAgICAgICAiMC4wMDEwNDUsIDAuMDAxMTkxLCAwLjAwMTIxLCAwLjAwMTIxNSwgMC4wMDEyMjEsIDAuMDAxMjIzLCAwLjAwMTIyNSIsIFwKLSAgICAgICAgICAiMC4wMDA5ODgsIDAuMDAxMTczLCAwLjAwMTIwMSwgMC4wMDEyMDksIDAuMDAxMjE3LCAwLjAwMTIyMSwgMC4wMDEyMjQiLCBcCi0gICAgICAgICAgIjAuMDAwOTQ3LCAwLjAwMTE1NiwgMC4wMDExOSwgMC4wMDEyMDIsIDAuMDAxMjExLCAwLjAwMTIxNywgMC4wMDEyMjEiLCBcCi0gICAgICAgICAgIjAuMDAwOTAyLCAwLjAwMTEzLCAwLjAwMTE3NSwgMC4wMDExODksIDAuMDAxMjAzLCAwLjAwMTIxLCAwLjAwMTIxNiIsIFwKLSAgICAgICAgICAiMC4wMDA4NzUsIDAuMDAxMTEsIDAuMDAxMTYxLCAwLjAwMTE3OCwgMC4wMDExOTUsIDAuMDAxMjAzLCAwLjAwMTIxMSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNTI1MSwgMC4wMDUyNjksIDAuMDA1MjcsIDAuMDA1MjcsIDAuMDA1MjcxLCAwLjAwNTI3MSwgMC4wMDUyNzEiLCBcCi0gICAgICAgICAgIjAuMDA1MjEyLCAwLjAwNTI4NCwgMC4wMDUyOTMsIDAuMDA1MjksIDAuMDA1MzAxLCAwLjAwNTI5NSwgMC4wMDUyOTgiLCBcCi0gICAgICAgICAgIjAuMDA1MTYyLCAwLjAwNTI3NSwgMC4wMDUyOSwgMC4wMDUyOTQsIDAuMDA1Mjk1LCAwLjAwNTI5OSwgMC4wMDUzMDMiLCBcCi0gICAgICAgICAgIjAuMDA1MTIyLCAwLjAwNTI2MiwgMC4wMDUyODIsIDAuMDA1Mjg5LCAwLjAwNTI5NCwgMC4wMDUyOTcsIDAuMDA1Mjk5IiwgXAotICAgICAgICAgICIwLjAwNTA5OCwgMC4wMDUyNTIsIDAuMDA1Mjc3LCAwLjAwNTI4NCwgMC4wMDUyOTEsIDAuMDA1Mjk0LCAwLjAwNTI5OCIsIFwKLSAgICAgICAgICAiMC4wMDUwNzYsIDAuMDA1MjM1LCAwLjAwNTI2NSwgMC4wMDUyNzUsIDAuMDA1Mjg2LCAwLjAwNTI5LCAwLjAwNTI5NSIsIFwKLSAgICAgICAgICAiMC4wMDUwNTgsIDAuMDA1MjIyLCAwLjAwNTI1OCwgMC4wMDUyNjgsIDAuMDA1MjgsIDAuMDA1Mjg1LCAwLjAwNTI5MSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyNDY3LCAwLjAwMjQ5LCAwLjAwMjQ4NywgMC4wMDI0OTEsIDAuMDAyNDkxLCAwLjAwMjQ5LCAwLjAwMjQ3NiIsIFwKLSAgICAgICAgICAiMC4wMDIzODIsIDAuMDAyNDY4LCAwLjAwMjQ4LCAwLjAwMjQ4LCAwLjAwMjQ4NSwgMC4wMDI0ODksIDAuMDAyNDg2IiwgXAotICAgICAgICAgICIwLjAwMjMxNiwgMC4wMDI0NDUsIDAuMDAyNDY2LCAwLjAwMjQ3MiwgMC4wMDI0NzcsIDAuMDAyNDgsIDAuMDAyNDgxIiwgXAotICAgICAgICAgICIwLjAwMjI3NSwgMC4wMDI0MjUsIDAuMDAyNDUzLCAwLjAwMjQ2MiwgMC4wMDI0NzEsIDAuMDAyNDczLCAwLjAwMjQ3NCIsIFwKLSAgICAgICAgICAiMC4wMDIyNTEsIDAuMDAyNDA1LCAwLjAwMjQ0MSwgMC4wMDI0NTEsIDAuMDAyNDYyLCAwLjAwMjQ2NywgMC4wMDI0NyIsIFwKLSAgICAgICAgICAiMC4wMDIyMjcsIDAuMDAyMzgsIDAuMDAyNDIzLCAwLjAwMjQzOCwgMC4wMDI0NTEsIDAuMDAyNDU4LCAwLjAwMjQ2MyIsIFwKLSAgICAgICAgICAiMC4wMDIyMTgsIDAuMDAyMzYsIDAuMDAyNDA5LCAwLjAwMjQyNiwgMC4wMDI0NDEsIDAuMDAyNDUsIDAuMDAyNDU3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogT0FJMjFYTCAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChPQUkyMVhMKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMDQ1OTIyMjsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQTApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDU2MzcxOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDU2MjE2NzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA1NjM3MTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxNjUsIDAuMDAwMTY1LCAwLjAwMDE2NSwgMC4wMDAxNjUsIDAuMDAwMTY1LCAwLjAwMDE2NSwgMC4wMDAxNjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiwgMC4wMDAxNjYiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEExKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA1OTQ3NDQ7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNTk0NzQ0OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDU5MjkwNzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxNjUsIDAuMDAwMTY1LCAwLjAwMDE2NSwgMC4wMDAxNjUsIDAuMDAwMTY1LCAwLjAwMDE2NSwgMC4wMDAxNjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiwgMC4wMDAxNjYiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2NDA3MTM7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjQwNTk5OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDY0MDcxMzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyMDUsIDAuMDAwMjA1LCAwLjAwMDIwNSwgMC4wMDAyMDUsIDAuMDAwMjA1LCAwLjAwMDIwNSwgMC4wMDAyMDUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxODgsIDAuMDAwMTg4LCAwLjAwMDE4OCwgMC4wMDAxODgsIDAuMDAwMTg4LCAwLjAwMDE4OCwgMC4wMDAxODgiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4wMzgwMTc7Ci0gICAgZnVuY3Rpb24gOiAiKCEoKEEwK0ExKSBCMCkpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzAzMTA3LCAwLjM1NDkzMiwgMC44MjAyODgsIDEuNTk0OSwgMi4zNzAxNywgNC4xNzU3LCA1LjIwNzQ3IiwgXAotICAgICAgICAgICIwLjMxNDY4MiwgMC4zNjY1MjksIDAuODMxNzksIDEuNjA2NDEsIDIuMzgxNDQsIDQuMTg3MjYsIDUuMjE4OTciLCBcCi0gICAgICAgICAgIjAuMzI3OTM1LCAwLjM3OTcyNCwgMC44NDUwNDIsIDEuNjE5NjUsIDIuMzk0NjYsIDQuMjAwNDUsIDUuMjMyMTIiLCBcCi0gICAgICAgICAgIjAuMzQwNDg5LCAwLjM5MjM0MSwgMC44NTc5MDcsIDEuNjMyMzYsIDIuNDA3NDcsIDQuMjEzMjMsIDUuMjQ0OTIiLCBcCi0gICAgICAgICAgIjAuMzUzMDA4LCAwLjQwNDgxMiwgMC44NzAxMzgsIDEuNjQ0OTEsIDIuNDIsIDQuMjI1NzMsIDUuMjU3NDUiLCBcCi0gICAgICAgICAgIjAuMzcyNzQ0LCAwLjQyNDUzNiwgMC44OTAwNzksIDEuNjY0NTksIDIuNDM4ODMsIDQuMjQ1MzksIDUuMjc3MDgiLCBcCi0gICAgICAgICAgIjAuMzkwMDEsIDAuNDQxODU1LCAwLjkwNzU0LCAxLjY4MjI2LCAyLjQ1NjY5LCA0LjI2MjksIDUuMjk0NTgiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuNTYwMzg4LCAwLjY2MTcyNywgMS41NjkyMSwgMy4wODA5MiwgNC41OTM4NiwgOC4xMjU1NCwgMTAuMTM3MyIsIFwKLSAgICAgICAgICAiMC41NjA3MjksIDAuNjYxMzE3LCAxLjU2OTIzLCAzLjA4MDkyLCA0LjU5MzgyLCA4LjEyNTU4LCAxMC4xMzY3IiwgXAotICAgICAgICAgICIwLjU2MDIyNSwgMC42NjE4NzgsIDEuNTY5MjMsIDMuMDgwOTEsIDQuNTk0MiwgOC4xMjUzLCAxMC4xMzgyIiwgXAotICAgICAgICAgICIwLjU2MDYwOCwgMC42NjEyMjUsIDEuNTY5MDMsIDMuMDgxNiwgNC41OTM0MSwgOC4xMjU2OCwgMTAuMTM3MyIsIFwKLSAgICAgICAgICAiMC41NjAzNjIsIDAuNjYxNDMxLCAxLjU3MDc3LCAzLjA4MTYzLCA0LjU5MzM4LCA4LjEyNTcyLCAxMC4xMzczIiwgXAotICAgICAgICAgICIwLjU2MDQyMiwgMC42NjE2MTMsIDEuNTcwNjksIDMuMDgwOTEsIDQuNTkyNTksIDguMTI1NTEsIDEwLjEzODIiLCBcCi0gICAgICAgICAgIjAuNTYxMzA3LCAwLjY2MjA3MywgMS41NjkwNywgMy4wODE2NSwgNC41OTM4MywgOC4xMjU0NywgMTAuMTM4MiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zNTI1NDQsIDAuNDEyMTI2LCAwLjk0NzE3OCwgMS44Mzg0NCwgMi43Mjk2NywgNC44MDY4MSwgNS45OTM5MyIsIFwKLSAgICAgICAgICAiMC4zNjQ2NDksIDAuNDI0MjYsIDAuOTU5MzA0LCAxLjg1MDk3LCAyLjc0MTg2LCA0LjgxOTA3LCA2LjAwNTk4IiwgXAotICAgICAgICAgICIwLjM3OTUxNSwgMC40MzkwNDIsIDAuOTc0NjY2LCAxLjg2NjI5LCAyLjc1NjgsIDQuODMzOTgsIDYuMDIxMDUiLCBcCi0gICAgICAgICAgIjAuMzkzODA2LCAwLjQ1MzMwNSwgMC45ODgyOTQsIDEuODc5OTIsIDIuNzcxMjEsIDQuODQ4MzMsIDYuMDM1MjYiLCBcCi0gICAgICAgICAgIjAuNDA3ODg0LCAwLjQ2NzM5OSwgMS4wMDI3NywgMS44OTM5MywgMi43ODUxNSwgNC44NjIyOSwgNi4wNDk0MyIsIFwKLSAgICAgICAgICAiMC40MzAwOTEsIDAuNDg5NTY2LCAxLjAyNDgsIDEuOTE2NzQsIDIuODA2NzcsIDQuODg0NzEsIDYuMDcxNzYiLCBcCi0gICAgICAgICAgIjAuNDQ5MzgsIDAuNTA4OTYyLCAxLjA0NDE2LCAxLjkzNTQ3LCAyLjgyNzI1LCA0LjkwNDExLCA2LjA5MTAxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjYyNDE0OCwgMC43Mzc2OCwgMS43NTYxNiwgMy40NTQwNywgNS4xNTM5NiwgOS4xMDcsIDExLjM2MjgiLCBcCi0gICAgICAgICAgIjAuNjI0MzQ3LCAwLjczNzUwNywgMS43NTYxMiwgMy40NTQsIDUuMTUyNywgOS4xMDU0MywgMTEuMzYzIiwgXAotICAgICAgICAgICIwLjYyNDMyNywgMC43MzczODgsIDEuNzU2MDcsIDMuNDU0MzgsIDUuMTUyNTMsIDkuMTA1MTgsIDExLjM2MjkiLCBcCi0gICAgICAgICAgIjAuNjI0MzA3LCAwLjczNzU1NiwgMS43NTU4MiwgMy40NTQxLCA1LjE1Mjc3LCA5LjEwNTYzLCAxMS4zNjI3IiwgXAotICAgICAgICAgICIwLjYyNDIyMiwgMC43Mzc1NzksIDEuNzU2MywgMy40NTQwMiwgNS4xNTQyMSwgOS4xMDY5MSwgMTEuMzYyOSIsIFwKLSAgICAgICAgICAiMC42MjQxNzYsIDAuNzM3MjcyLCAxLjc1NjM3LCAzLjQ1NTI0LCA1LjE1MTA1LCA5LjEwNTA0LCAxMS4zNjI3IiwgXAotICAgICAgICAgICIwLjYyNDE1OSwgMC43Mzc1NzMsIDEuNzU3MzIsIDMuNDUzNTcsIDUuMTUyMSwgOS4xMDY0NiwgMTEuMzYyMSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjk1NzIxLCAwLjM0NzY0NSwgMC44MTMwMDgsIDEuNTg3NDcsIDIuMzYyNjUsIDQuMTY4NDUsIDUuMjAwMiIsIFwKLSAgICAgICAgICAiMC4zMDYyMjUsIDAuMzU4MDE1LCAwLjgyMzUxOSwgMS41OTg1MiwgMi4zNzIzNCwgNC4xNzg4NiwgNS4yMTAzOCIsIFwKLSAgICAgICAgICAiMC4zMTg5MTgsIDAuMzcwNzcxLCAwLjgzNjAyMywgMS42MTA1OSwgMi4zODYwNSwgNC4xOTE3MiwgNS4yMjMyMSIsIFwKLSAgICAgICAgICAiMC4zMzE5NDUsIDAuMzgzNzU4LCAwLjg0OTEwOCwgMS42MjM5LCAyLjM5OTE2LCA0LjIwNDUxLCA1LjIzNjIyIiwgXAotICAgICAgICAgICIwLjM0NTAxMSwgMC4zOTY4MzEsIDAuODYyMjY3LCAxLjYzNjg4LCAyLjQxMTQsIDQuMjE3NiwgNS4yNDkyOSIsIFwKLSAgICAgICAgICAiMC4zNjU4NzEsIDAuNDE3NzEsIDAuODgzMjA5LCAxLjY1Nzc1LCAyLjQzMywgNC4yMzg3NywgNS4yNzAyMyIsIFwKLSAgICAgICAgICAiMC4zODQxNjgsIDAuNDM1OTUyLCAwLjkwMTMyMiwgMS42NzYxOSwgMi40NTEyNiwgNC4yNTY4OCwgNS4yODg1MyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC41NjAzMDUsIDAuNjYxNDU4LCAxLjU2OTIyLCAzLjA4MzczLCA0LjU5MzY1LCA4LjEyNTc5LCAxMC4xMzc0IiwgXAotICAgICAgICAgICIwLjU2MDIzLCAwLjY2MTc4NCwgMS41NjksIDMuMDgxMzgsIDQuNTkyOTIsIDguMTI1NzgsIDEwLjEzODIiLCBcCi0gICAgICAgICAgIjAuNTYwNTcxLCAwLjY2MTQ1MiwgMS41NzA3NSwgMy4wODM2NCwgNC41OTM0LCA4LjEyNTc1LCAxMC4xMzcxIiwgXAotICAgICAgICAgICIwLjU2MDcwMywgMC42NjE3NjIsIDEuNTcwNzcsIDMuMDgzNTEsIDQuNTkzNTIsIDguMTIzNiwgMTAuMTM4MiIsIFwKLSAgICAgICAgICAiMC41NjAzNjEsIDAuNjYxMzQsIDEuNTY5MTcsIDMuMDgxNTcsIDQuNTkzODIsIDguMTI0LCAxMC4xMzgyIiwgXAotICAgICAgICAgICIwLjU2MDkwMiwgMC42NjE3MzUsIDEuNTY5MDcsIDMuMDgwOTIsIDQuNTk0NDgsIDguMTIxNzgsIDEwLjEzODIiLCBcCi0gICAgICAgICAgIjAuNTYzMDA4LCAwLjY2MjIxMywgMS41NzA3NSwgMy4wODE3NCwgNC41OTMzNywgOC4xMjU1OCwgMTAuMTM3MSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMzgyNTcsIDAuMzk3NTEsIDAuOTI4MDY2LCAxLjgxMzgsIDIuNjk3MzksIDQuNzYwMjcsIDUuOTM5MDEiLCBcCi0gICAgICAgICAgIjAuMzUwODg5LCAwLjQxMDE5OSwgMC45NDExMywgMS44MjUzLCAyLjcxMDgyLCA0Ljc3MzA0LCA1Ljk1MTY5IiwgXAotICAgICAgICAgICIwLjM2NTkzNCwgMC40MjUxMzIsIDAuOTU2NjA0LCAxLjg0MjAyLCAyLjcyNTcxLCA0Ljc4ODMyLCA1Ljk2NjYzIiwgXAotICAgICAgICAgICIwLjM4MDE3MiwgMC40Mzk0NDIsIDAuOTcwMTc1LCAxLjg1NTQ2LCAyLjc0MDIsIDQuODAyNjMsIDUuOTgxMTQiLCBcCi0gICAgICAgICAgIjAuMzk0MjU4LCAwLjQ1MzE3OCwgMC45ODQ3MywgMS44Njk0MSwgMi43NTQyMiwgNC44MTY2NSwgNS45OTUzNSIsIFwKLSAgICAgICAgICAiMC40MTYzNzksIDAuNDc1NDgzLCAxLjAwNjUxLCAxLjg5MjEsIDIuNzc2NjMsIDQuODM5MjYsIDYuMDE3NzUiLCBcCi0gICAgICAgICAgIjAuNDM1NzMyLCAwLjQ5NDY2MywgMS4wMjU5NiwgMS45MTA2MSwgMi43OTY0MSwgNC44NTg1NSwgNi4wMzcxOSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC42MDk4MjYsIDAuNzIwMDIyLCAxLjczOTEzLCAzLjQyMjA3LCA1LjEwNjM0LCA5LjAyMjQzLCAxMS4yNjEyIiwgXAotICAgICAgICAgICIwLjYwOTg1OCwgMC43MjAwMTEsIDEuNzMxNTIsIDMuNDMyMDksIDUuMTEwNjQsIDkuMDIyNDQsIDExLjI2MTEiLCBcCi0gICAgICAgICAgIjAuNjA5ODMsIDAuNzE5NjQ4LCAxLjczMzg2LCAzLjQyMjM3LCA1LjExMDMzLCA5LjAyMTgsIDExLjI2MDgiLCBcCi0gICAgICAgICAgIjAuNjEwMjMsIDAuNzIwNTI3LCAxLjczODc5LCAzLjQxODYzLCA1LjExMDQ5LCA5LjAyMTk4LCAxMS4yNjA4IiwgXAotICAgICAgICAgICIwLjYwNzQ5MiwgMC43MjI3MjcsIDEuNzMxMTEsIDMuNDMxMTYsIDUuMTA3NzYsIDkuMDIyNTIsIDExLjI2MTEiLCBcCi0gICAgICAgICAgIjAuNjA5ODQ1LCAwLjcyMzE3MywgMS43Mzg2OCwgMy40MjYxLCA1LjEwNjk4LCA5LjAyMjAyLCAxMS4yNjEyIiwgXAotICAgICAgICAgICIwLjYwNzg2NCwgMC43MjI2NzIsIDEuNzM4NzYsIDMuNDMxOTUsIDUuMTA2OTYsIDkuMDIwODYsIDExLjI2MTEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjAiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE0MDQwMywgMC4xNjU2NjQsIDAuMzkzMTAxLCAwLjc3MTkxNSwgMS4xNTA1NywgMi4wMzQ5MywgMi41Mzk1MiIsIFwKLSAgICAgICAgICAiMC4xNTIwMzMsIDAuMTc3MzcyLCAwLjQwNDY4MiwgMC43ODMzOTMsIDEuMTYyMzIsIDIuMDQ2NiwgMi41NTEwOCIsIFwKLSAgICAgICAgICAiMC4xNjY0NjcsIDAuMTkxNzg3LCAwLjQxNzI1NSwgMC43OTYwNjIsIDEuMTc0OTUsIDIuMDU4ODksIDIuNTY0MTIiLCBcCi0gICAgICAgICAgIjAuMTgxMTcxLCAwLjIwNjAwNiwgMC40MzE1OTcsIDAuODEwNSwgMS4xODkxLCAyLjA3MjczLCAyLjU3ODIyIiwgXAotICAgICAgICAgICIwLjE5NTg5OCwgMC4yMjExMjUsIDAuNDQ3OTc3LCAwLjgyNDU2OSwgMS4yMDM2NCwgMi4wODc2MywgMi41OTIwNyIsIFwKLSAgICAgICAgICAiMC4yMTk4NDgsIDAuMjQ1MDksIDAuNDcxMzE4LCAwLjg0NjY3LCAxLjIyNTU2LCAyLjEwOTI5LCAyLjYxNDI0IiwgXAotICAgICAgICAgICIwLjI0MDQ2NywgMC4yNjU3MDMsIDAuNDkxNDAyLCAwLjg2NjYxOCwgMS4yNDQ5MiwgMi4xMjk5NywgMi42MzQyNyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yODU4MTUsIDAuMzM2ODI5LCAwLjc5NjQ5NCwgMS41NjI5NSwgMi4zMjk3MSwgNC4xMjM0NSwgNS4xNDMwMiIsIFwKLSAgICAgICAgICAiMC4yODU4MzEsIDAuMzM2ODgyLCAwLjc5NjQ4MSwgMS41NjMxNiwgMi4zMjk2NiwgNC4xMjA1LCA1LjE0Mjk3IiwgXAotICAgICAgICAgICIwLjI4NTgwNywgMC4zMzY4NzcsIDAuNzk2NDQ1LCAxLjU2MjkxLCAyLjMyOTc3LCA0LjEyMDU0LCA1LjE0MjEiLCBcCi0gICAgICAgICAgIjAuMjg2MDE0LCAwLjMzNjg2NCwgMC43OTY3MDUsIDEuNTYzMTgsIDIuMzMwMjQsIDQuMTI1NTksIDUuMTQzODYiLCBcCi0gICAgICAgICAgIjAuMjg3ODI1LCAwLjMzNzczMSwgMC43OTY0MzEsIDEuNTYzMjMsIDIuMzI5NzcsIDQuMTIwNDMsIDUuMTQzNzkiLCBcCi0gICAgICAgICAgIjAuMjkzMTM1LCAwLjM0MTcsIDAuNzk2NTE4LCAxLjU2MjkzLCAyLjMzMDI4LCA0LjEyMDE3LCA1LjE0MjU4IiwgXAotICAgICAgICAgICIwLjI5OTgzLCAwLjM0NzI1NCwgMC43OTYzODIsIDEuNTYyODUsIDIuMzI5NjEsIDQuMTE5NjMsIDUuMTQxOTQiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzM4NTY2LCAwLjM5NzkzNywgMC45MzMyNzcsIDEuODI0ODYsIDIuNzE1NDYsIDQuNzkyNzgsIDUuOTc5ODciLCBcCi0gICAgICAgICAgIjAuMzQ5MjA1LCAwLjQwODgzNiwgMC45NDM4NTQsIDEuODM1NzUsIDIuNzI2MjcsIDQuODAzNjMsIDUuOTkwOCIsIFwKLSAgICAgICAgICAiMC4zNjI3MSwgMC40MjIyMTIsIDAuOTU3NTk5LCAxLjg0OTY3LCAyLjczOTg3LCA0LjgxNzQ4LCA2LjAwNDM0IiwgXAotICAgICAgICAgICIwLjM3NjQ2NCwgMC40MzU4ODEsIDAuOTcxMzU2LCAxLjg2MzAyLCAyLjc1Mzc5LCA0LjgzMTIsIDYuMDE4MjMiLCBcCi0gICAgICAgICAgIjAuMzg5NTM0LCAwLjQ0OSwgMC45ODQyNzUsIDEuODc2MTgsIDIuNzY2OTksIDQuODQ0MzEsIDYuMDMxNDYiLCBcCi0gICAgICAgICAgIjAuNDEwOTU2LCAwLjQ3MDU4MSwgMS4wMDU5LCAxLjg5NzYsIDIuNzg4OSwgNC44NjYsIDYuMDUzMTIiLCBcCi0gICAgICAgICAgIjAuNDI5OTAzLCAwLjQ4OTQ1NSwgMS4wMjQ3NywgMS45MTY2NywgMi44MDc0OSwgNC44ODUsIDYuMDcyMDUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuNjI0NDE2LCAwLjczNzc5MywgMS43NTYxOSwgMy40NTQ1MiwgNS4xNTE1NiwgOS4xMDYwNywgMTEuMzYyMSIsIFwKLSAgICAgICAgICAiMC42MjQxNzcsIDAuNzM3NTQ2LCAxLjc1NjQsIDMuNDU0NDcsIDUuMTUxNTIsIDkuMTA2NjEsIDExLjM2MTkiLCBcCi0gICAgICAgICAgIjAuNjI0MjE4LCAwLjczNzM2OSwgMS43NTY2NywgMy40NTQzNywgNS4xNTA4LCA5LjEwNjYzLCAxMS4zNjMiLCBcCi0gICAgICAgICAgIjAuNjI0MjIzLCAwLjczNzUxNiwgMS43NTY1MywgMy40NTQzNCwgNS4xNTA4OSwgOS4xMDU5NywgMTEuMzYyNiIsIFwKLSAgICAgICAgICAiMC42MjQwNzMsIDAuNzM3NTA2LCAxLjc1NTc5LCAzLjQ1NDM2LCA1LjE1MDksIDkuMTA2NjMsIDExLjM2MjIiLCBcCi0gICAgICAgICAgIjAuNjIzOTc1LCAwLjczNzM4NSwgMS43NTU3MywgMy40NTQsIDUuMTU1MTMsIDkuMTA3MDIsIDExLjM2MjkiLCBcCi0gICAgICAgICAgIjAuNjI0MzcyLCAwLjczNzIyNywgMS43NTYyOCwgMy40NTQ2OSwgNS4xNTEzNSwgOS4xMDU5NSwgMTEuMzYyNyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDEzOTgsIDAuMDAxMzk4LCAwLjAwMTM5NywgMC4wMDEzOTcsIDAuMDAxMzk1LCAwLjAwMTM5MSwgMC4wMDEzODgiLCBcCi0gICAgICAgICAgIjAuMDAxMzkzLCAwLjAwMTM5NCwgMC4wMDEzOTMsIDAuMDAxMzkyLCAwLjAwMTM5MiwgMC4wMDEzODcsIDAuMDAxMzg1IiwgXAotICAgICAgICAgICIwLjAwMTM5MiwgMC4wMDEzOTIsIDAuMDAxMzkyLCAwLjAwMTM5MSwgMC4wMDEzOSwgMC4wMDEzODcsIDAuMDAxMzg0IiwgXAotICAgICAgICAgICIwLjAwMTM5MiwgMC4wMDEzOTIsIDAuMDAxMzkyLCAwLjAwMTM5MSwgMC4wMDEzOSwgMC4wMDEzODUsIDAuMDAxMzgzIiwgXAotICAgICAgICAgICIwLjAwMTM5MSwgMC4wMDEzOTEsIDAuMDAxMzkxLCAwLjAwMTM5LCAwLjAwMTM4OSwgMC4wMDEzODYsIDAuMDAxMzgzIiwgXAotICAgICAgICAgICIwLjAwMTM5LCAwLjAwMTM5LCAwLjAwMTM5MSwgMC4wMDEzOSwgMC4wMDEzODksIDAuMDAxMzg1LCAwLjAwMTM4MyIsIFwKLSAgICAgICAgICAiMC4wMDEzODksIDAuMDAxMzg5LCAwLjAwMTM5LCAwLjAwMTM5LCAwLjAwMTM4OSwgMC4wMDEzODUsIDAuMDAxMzgzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwNDM1LCAwLjAwMDQzNiwgMC4wMDA0MzYsIDAuMDAwNDMzLCAwLjAwMDQzNCwgMC4wMDA0MzMsIDAuMDAwNDMyIiwgXAotICAgICAgICAgICIwLjAwMDQyOCwgMC4wMDA0MjgsIDAuMDAwNDI5LCAwLjAwMDQyOCwgMC4wMDA0MjgsIDAuMDAwNDI3LCAwLjAwMDQyNiIsIFwKLSAgICAgICAgICAiMC4wMDA0MjYsIDAuMDAwNDI2LCAwLjAwMDQyNywgMC4wMDA0MjcsIDAuMDAwNDI2LCAwLjAwMDQyNSwgMC4wMDA0MjQiLCBcCi0gICAgICAgICAgIjAuMDAwNDI0LCAwLjAwMDQyNCwgMC4wMDA0MjYsIDAuMDAwNDI2LCAwLjAwMDQyNiwgMC4wMDA0MjQsIDAuMDAwNDI0IiwgXAotICAgICAgICAgICIwLjAwMDQyMiwgMC4wMDA0MjMsIDAuMDAwNDI1LCAwLjAwMDQyNSwgMC4wMDA0MjUsIDAuMDAwNDI0LCAwLjAwMDQyMyIsIFwKLSAgICAgICAgICAiMC4wMDA0MjEsIDAuMDAwNDIxLCAwLjAwMDQyNCwgMC4wMDA0MjUsIDAuMDAwNDI1LCAwLjAwMDQyNCwgMC4wMDA0MjMiLCBcCi0gICAgICAgICAgIjAuMDAwNDE5LCAwLjAwMDQyLCAwLjAwMDQyNCwgMC4wMDA0MjUsIDAuMDAwNDI1LCAwLjAwMDQyNCwgMC4wMDA0MjMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxMjU1LCAwLjAwMTI1NCwgMC4wMDEyNTQsIDAuMDAxMjUyLCAwLjAwMTI1MywgMC4wMDEyNDgsIDAuMDAxMjQ2IiwgXAotICAgICAgICAgICIwLjAwMTI1LCAwLjAwMTI1LCAwLjAwMTI1LCAwLjAwMTI0OCwgMC4wMDEyNDgsIDAuMDAxMjQ0LCAwLjAwMTI0MSIsIFwKLSAgICAgICAgICAiMC4wMDEyNDgsIDAuMDAxMjQ4LCAwLjAwMTI0OCwgMC4wMDEyNDgsIDAuMDAxMjQ2LCAwLjAwMTI0MiwgMC4wMDEyNCIsIFwKLSAgICAgICAgICAiMC4wMDEyNDYsIDAuMDAxMjQ3LCAwLjAwMTI0NywgMC4wMDEyNDcsIDAuMDAxMjQ1LCAwLjAwMTI0MiwgMC4wMDEyMzkiLCBcCi0gICAgICAgICAgIjAuMDAxMjQ1LCAwLjAwMTI0NSwgMC4wMDEyNDcsIDAuMDAxMjQ2LCAwLjAwMTI0NSwgMC4wMDEyNDIsIDAuMDAxMjQiLCBcCi0gICAgICAgICAgIjAuMDAxMjQzLCAwLjAwMTI0NCwgMC4wMDEyNDYsIDAuMDAxMjQ2LCAwLjAwMTI0NSwgMC4wMDEyNDIsIDAuMDAxMjM5IiwgXAotICAgICAgICAgICIwLjAwMTI0MiwgMC4wMDEyNDMsIDAuMDAxMjQ1LCAwLjAwMTI0NiwgMC4wMDEyNDUsIDAuMDAxMjQxLCAwLjAwMTIzOSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDIyNCwgMC4wMDAyMjQsIDAuMDAwMjI1LCAwLjAwMDIyNSwgMC4wMDAyMjUsIDAuMDAwMjI1LCAwLjAwMDIyNSIsIFwKLSAgICAgICAgICAiMC4wMDAyMjgsIDAuMDAwMjI5LCAwLjAwMDIzLCAwLjAwMDIzMSwgMC4wMDAyMzEsIDAuMDAwMjMxLCAwLjAwMDIzMSIsIFwKLSAgICAgICAgICAiMC4wMDAyMjYsIDAuMDAwMjI3LCAwLjAwMDIzMSwgMC4wMDAyMzIsIDAuMDAwMjMyLCAwLjAwMDIzMiwgMC4wMDAyMzIiLCBcCi0gICAgICAgICAgIjAuMDAwMjI0LCAwLjAwMDIyNSwgMC4wMDAyMywgMC4wMDAyMzIsIDAuMDAwMjMyLCAwLjAwMDIzMywgMC4wMDAyMzMiLCBcCi0gICAgICAgICAgIjAuMDAwMjIxLCAwLjAwMDIyMywgMC4wMDAyMjksIDAuMDAwMjMxLCAwLjAwMDIzMiwgMC4wMDAyMzMsIDAuMDAwMjMzIiwgXAotICAgICAgICAgICIwLjAwMDIxNywgMC4wMDAyMTksIDAuMDAwMjI3LCAwLjAwMDIzLCAwLjAwMDIzMSwgMC4wMDAyMzIsIDAuMDAwMjMyIiwgXAotICAgICAgICAgICIwLjAwMDIxNCwgMC4wMDAyMTYsIDAuMDAwMjI2LCAwLjAwMDIyOSwgMC4wMDAyMzEsIDAuMDAwMjMyLCAwLjAwMDIzMiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDA5MjEsIDAuMDAwOTIxLCAwLjAwMDkyMSwgMC4wMDA5MjEsIDAuMDAwOTIxLCAwLjAwMDkyMSwgMC4wMDA5MjEiLCBcCi0gICAgICAgICAgIjAuMDAwOTIzLCAwLjAwMDkyMywgMC4wMDA5MjQsIDAuMDAwOTI1LCAwLjAwMDkyNSwgMC4wMDA5MjUsIDAuMDAwOTI1IiwgXAotICAgICAgICAgICIwLjAwMDkyMiwgMC4wMDA5MjIsIDAuMDAwOTI0LCAwLjAwMDkyNSwgMC4wMDA5MjUsIDAuMDAwOTI2LCAwLjAwMDkyNiIsIFwKLSAgICAgICAgICAiMC4wMDA5MiwgMC4wMDA5MTksIDAuMDAwOTI0LCAwLjAwMDkyNSwgMC4wMDA5MjYsIDAuMDAwOTI2LCAwLjAwMDkyNiIsIFwKLSAgICAgICAgICAiMC4wMDA5MTgsIDAuMDAwOTE5LCAwLjAwMDkyMywgMC4wMDA5MjUsIDAuMDAwOTI2LCAwLjAwMDkyNiwgMC4wMDA5MjYiLCBcCi0gICAgICAgICAgIjAuMDAwOTE1LCAwLjAwMDkxNywgMC4wMDA5MjIsIDAuMDAwOTI0LCAwLjAwMDkyNSwgMC4wMDA5MjYsIDAuMDAwOTI2IiwgXAotICAgICAgICAgICIwLjAwMDkxNCwgMC4wMDA5MTYsIDAuMDAwOTIxLCAwLjAwMDkyNCwgMC4wMDA5MjUsIDAuMDAwOTI2LCAwLjAwMDkyNiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDQ0MywgMC4wMDA0NDMsIDAuMDAwNDQzLCAwLjAwMDQ0MywgMC4wMDA0NDMsIDAuMDAwNDQxLCAwLjAwMDQ0IiwgXAotICAgICAgICAgICIwLjAwMDQ0LCAwLjAwMDQ0LCAwLjAwMDQ0MiwgMC4wMDA0NDIsIDAuMDAwNDQyLCAwLjAwMDQ0MSwgMC4wMDA0MzkiLCBcCi0gICAgICAgICAgIjAuMDAwNDM2LCAwLjAwMDQzNywgMC4wMDA0NDEsIDAuMDAwNDQyLCAwLjAwMDQ0MiwgMC4wMDA0NDEsIDAuMDAwNDQiLCBcCi0gICAgICAgICAgIjAuMDAwNDMzLCAwLjAwMDQzNSwgMC4wMDA0MzksIDAuMDAwNDQxLCAwLjAwMDQ0MSwgMC4wMDA0NDEsIDAuMDAwNDQiLCBcCi0gICAgICAgICAgIjAuMDAwNDMsIDAuMDAwNDMyLCAwLjAwMDQzOCwgMC4wMDA0NCwgMC4wMDA0NDEsIDAuMDAwNDQsIDAuMDAwNDQiLCBcCi0gICAgICAgICAgIjAuMDAwNDI3LCAwLjAwMDQyOSwgMC4wMDA0MzYsIDAuMDAwNDM5LCAwLjAwMDQ0LCAwLjAwMDQ0LCAwLjAwMDQzOSIsIFwKLSAgICAgICAgICAiMC4wMDA0MjQsIDAuMDAwNDI2LCAwLjAwMDQzNSwgMC4wMDA0MzgsIDAuMDAwNDM5LCAwLjAwMDQzOSwgMC4wMDA0MzkiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogT0FJMjIxWEwgKgotICogLS0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKE9BSTIyMVhMKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMDcyMzczNDsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQTApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDU1ODg3NTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA1NTc5OTY7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNTU4ODc1OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDE2NSwgMC4wMDAxNjUsIDAuMDAwMTY1LCAwLjAwMDE2NSwgMC4wMDAxNjUsIDAuMDAwMTY1LCAwLjAwMDE2NSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQTEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDU1NjU5ODsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA1NTY1OTg7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNTU0MjE1OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDE2NSwgMC4wMDAxNjUsIDAuMDAwMTY1LCAwLjAwMDE2NSwgMC4wMDAxNjUsIDAuMDAwMTY1LCAwLjAwMDE2NSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQjApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYwNTA0NzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MDMyMjQ7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjA1MDQ3OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDE2NSwgMC4wMDAxNjUsIDAuMDAwMTY1LCAwLjAwMDE2NSwgMC4wMDAxNjUsIDAuMDAwMTY1LCAwLjAwMDE2NSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQjEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDU4MzU0ODsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA1ODM1NDg7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNTgxNjY0OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDE2NSwgMC4wMDAxNjUsIDAuMDAwMTY1LCAwLjAwMDE2NSwgMC4wMDAxNjUsIDAuMDAwMTY1LCAwLjAwMDE2NSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQzApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY1NjE1NDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2NTU5MDg7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjU2MTU0OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDIzMywgMC4wMDAyMzMsIDAuMDAwMjMzLCAwLjAwMDIzMywgMC4wMDAyMzMsIDAuMDAwMjMyLCAwLjAwMDIzMyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDE4OCwgMC4wMDAxODgsIDAuMDAwMTg4LCAwLjAwMDE4OCwgMC4wMDAxODgsIDAuMDAwMTg4LCAwLjAwMDE4OCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjAyNTMzNDM7Ci0gICAgZnVuY3Rpb24gOiAiKCEoKChBMCtBMSkgKEIwK0IxKSkgQzApKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTAiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMzMDM0NywgMC4zODI2MDEsIDAuODQ5OTM1LCAxLjYyNTgsIDIuNDAxNDIsIDQuMjA5NTEsIDUuMjQyNDIiLCBcCi0gICAgICAgICAgIjAuMzQxOTE5LCAwLjM5NDE1MiwgMC44NjEzODgsIDEuNjM3NTksIDIuNDEyNjksIDQuMjIxMTQsIDUuMjU0IiwgXAotICAgICAgICAgICIwLjM1NTA1NiwgMC40MDczNDEsIDAuODc0NTcxLCAxLjY1MDUxLCAyLjQyNjE5LCA0LjIzNDMyLCA1LjI2NzI3IiwgXAotICAgICAgICAgICIwLjM2NzY0OSwgMC40MTk5MTksIDAuODg3MTk0LCAxLjY2MzI5LCAyLjQzODQ2LCA0LjI0Njk5LCA1LjI4MDAyIiwgXAotICAgICAgICAgICIwLjM4MDE2MiwgMC40MzIzODQsIDAuODk5NzcyLCAxLjY3NTg1LCAyLjQ1MDkyLCA0LjI1OTQ5LCA1LjI5MjQ2IiwgXAotICAgICAgICAgICIwLjM5OTk2NiwgMC40NTIyMzksIDAuOTE5NTIzLCAxLjY5NTczLCAyLjQ3MTIxLCA0LjI3OTM0LCA1LjMxMjE1IiwgXAotICAgICAgICAgICIwLjQxNzMwNiwgMC40Njg4NjIsIDAuOTM3MTUyLCAxLjcxMzI1LCAyLjQ4ODM1LCA0LjI5Njg4LCA1LjMyOTg2Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjYxOTg5NSwgMC43MjA4NTMsIDEuNjI4NTMsIDMuMTQxNjYsIDQuNjUzMjcsIDguMTgxMzgsIDEwLjE5NyIsIFwKLSAgICAgICAgICAiMC42MTk5MSwgMC43MjA4NzksIDEuNjI4OTEsIDMuMTQwOTcsIDQuNjU0MSwgOC4xODA3OSwgMTAuMTk3NCIsIFwKLSAgICAgICAgICAiMC42MTk5MTMsIDAuNzIwODczLCAxLjYyODM3LCAzLjE0MTQ3LCA0LjY1NDExLCA4LjE4MTYsIDEwLjE5NzYiLCBcCi0gICAgICAgICAgIjAuNjE5OTIzLCAwLjcyMDc4NiwgMS42Mjg1OSwgMy4xNDA5NiwgNC42NTMwMywgOC4xODE0NSwgMTAuMTk3MyIsIFwKLSAgICAgICAgICAiMC42MTk4MSwgMC43MjA3MzgsIDEuNjI4NTQsIDMuMTQxNjcsIDQuNjU0MTQsIDguMTgxNTMsIDEwLjE5NzQiLCBcCi0gICAgICAgICAgIjAuNjE5ODcyLCAwLjcyMDc5MSwgMS42MjgzNCwgMy4xNDE3NCwgNC42NTM5MywgOC4xODA3MSwgMTAuMTk3MyIsIFwKLSAgICAgICAgICAiMC42MjAzNCwgMC43MjA3ODIsIDEuNjI4MywgMy4xNDE2OSwgNC42NTI4OCwgOC4xODEyOSwgMTAuMTk2Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjU5MTUzMSwgMC42ODEwMDYsIDEuNDg1MjcsIDIuODIzMzYsIDQuMTU5NzksIDcuMjgyNDgsIDkuMDcxMzgiLCBcCi0gICAgICAgICAgIjAuNjAzMzY2LCAwLjY5Mjc2LCAxLjQ5NjY1LCAyLjgzNDk1LCA0LjE3MTU0LCA3LjI5NDM4LCA5LjA4MzE5IiwgXAotICAgICAgICAgICIwLjYxODU0NywgMC43MDgwNTMsIDEuNTEyMDcsIDIuODUwNDUsIDQuMTg2NzgsIDcuMzA5NzEsIDkuMDk4NSIsIFwKLSAgICAgICAgICAiMC42MzMxOTUsIDAuNzIyNjAyLCAxLjUyNjY0LCAyLjg2NDgzLCA0LjIwMTI4LCA3LjMyNDM1LCA5LjExMzE4IiwgXAotICAgICAgICAgICIwLjY0NzE4NCwgMC43MzY2MiwgMS41NDA2NiwgMi44NzksIDQuMjE1NTUsIDcuMzM4NDMsIDkuMTI3MjQiLCBcCi0gICAgICAgICAgIjAuNjY4ODMxLCAwLjc1ODI4NiwgMS41NjI4NCwgMi45MDA2MiwgNC4yMzcwOSwgNy4zNjAxLCA5LjE0OSIsIFwKLSAgICAgICAgICAiMC42ODcxMTYsIDAuNzc2NzE2LCAxLjU4MTA2LCAyLjkxOTExLCA0LjI1NTY5LCA3LjM3ODQyLCA5LjE2NzMyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjk4MzExNiwgMS4xNDk1NiwgMi42NTQ3NiwgNS4xNjM1NSwgNy42NzgxOSwgMTMuNTM0MSwgMTYuODgxOCIsIFwKLSAgICAgICAgICAiMC45ODI0MzYsIDEuMTQ5NDksIDIuNjU1MjMsIDUuMTY1NCwgNy42Nzc2NywgMTMuNTMzNywgMTYuODgxOCIsIFwKLSAgICAgICAgICAiMC45ODI0NDgsIDEuMTQ5ODUsIDIuNjU0ODUsIDUuMTY0OTQsIDcuNjc3ODgsIDEzLjUzNDMsIDE2Ljg4MTgiLCBcCi0gICAgICAgICAgIjAuOTgyMTY2LCAxLjE0OTMyLCAyLjY1NTc0LCA1LjE2NTI3LCA3LjY3Nzc1LCAxMy41MzQyLCAxNi44ODE4IiwgXAotICAgICAgICAgICIwLjk4MTk1LCAxLjE0OTUsIDIuNjU1MTUsIDUuMTY5MTYsIDcuNjc3OTksIDEzLjUzMzYsIDE2Ljg4MTgiLCBcCi0gICAgICAgICAgIjAuOTgyMTgxLCAxLjE0OTg0LCAyLjY1NTcyLCA1LjE2NTksIDcuNjc3NzUsIDEzLjUzNDEsIDE2Ljg4MTgiLCBcCi0gICAgICAgICAgIjAuOTgxOTc1LCAxLjE0OTk3LCAyLjY1NTM2LCA1LjE2MzkyLCA3LjY3Nzc3LCAxMy41MzQxLCAxNi44ODE4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkExIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMjI0NjUsIDAuMzc0NTkyLCAwLjg0MTkxOCwgMS42MTc4NywgMi4zOTM1MiwgNC4yMDE2OCwgNS4yMzQ0OCIsIFwKLSAgICAgICAgICAiMC4zMzI2NTgsIDAuMzg0ODMxLCAwLjg1MjExMSwgMS42Mjg0NCwgMi40MDMyOSwgNC4yMTE4MywgNS4yNDQ2MiIsIFwKLSAgICAgICAgICAiMC4zNDU1LCAwLjM5NzcxNiwgMC44NjUwNDMsIDEuNjQxMTQsIDIuNDE1OTUsIDQuMjI0NzksIDUuMjU3NjgiLCBcCi0gICAgICAgICAgIjAuMzU4NTcyLCAwLjQxMDcsIDAuODc4MDc0LCAxLjY1NDIsIDIuNDI4OTcsIDQuMjM3NzMsIDUuMjcwNzUiLCBcCi0gICAgICAgICAgIjAuMzcxNTE1LCAwLjQyMzgwNSwgMC44OTExMjQsIDEuNjY3MiwgMi40NDI0NCwgNC4yNTA4NSwgNS4yODM3NiIsIFwKLSAgICAgICAgICAiMC4zOTI0MTEsIDAuNDQ0Njg5LCAwLjkxMTk3OCwgMS42ODgxMiwgMi40NjI5NSwgNC4yNzE3NCwgNS4zMDQ1NiIsIFwKLSAgICAgICAgICAiMC40MTA3MjYsIDAuNDYyOTUzLCAwLjkzMDI4MywgMS43MDYyNiwgMi40ODE5MywgNC4yOTAwMywgNS4zMjI5MSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC42MTk5MzcsIDAuNzIwODI5LCAxLjYyODM3LCAzLjE0MTY5LCA0LjY1NDA0LCA4LjE4MDczLCAxMC4xOTc0IiwgXAotICAgICAgICAgICIwLjYyMDAwOSwgMC43MjA4NjUsIDEuNjI4NTgsIDMuMTQwODYsIDQuNjUzMTIsIDguMTgyMDQsIDEwLjE5NjkiLCBcCi0gICAgICAgICAgIjAuNjE5OTE1LCAwLjcyMDgzOCwgMS42MjgzMSwgMy4xNDE2NSwgNC42NTM5MywgOC4xODE0OSwgMTAuMTk3MyIsIFwKLSAgICAgICAgICAiMC42MTk5MjUsIDAuNzIwNzI0LCAxLjYyODU4LCAzLjE0MTA4LCA0LjY1Mzg5LCA4LjE4MTQ2LCAxMC4xOTc0IiwgXAotICAgICAgICAgICIwLjYxOTg3OSwgMC43MjA3MjIsIDEuNjI4MzUsIDMuMTQxNjUsIDQuNjU0MSwgOC4xODIyMywgMTAuMTk3IiwgXAotICAgICAgICAgICIwLjYxOTczOCwgMC43MjA2NzQsIDEuNjI4NDksIDMuMTQxODYsIDQuNjU0MTgsIDguMTgwOTUsIDEwLjE5NyIsIFwKLSAgICAgICAgICAiMC42MjEsIDAuNzIwODMxLCAxLjYyODg2LCAzLjE0MTU0LCA0LjY1Mzk4LCA4LjE4MDY0LCAxMC4xOTY4Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjU3MjI4MywgMC42NjE1MDUsIDEuNDY1MjUsIDIuODAyMzgsIDQuMTM5MzEsIDcuMjYyMSwgOS4wNTA4NiIsIFwKLSAgICAgICAgICAiMC41ODQ4MDEsIDAuNjc0MTEyLCAxLjQ3Nzc1LCAyLjgxNTg0LCA0LjE1MjI1LCA3LjI3NDk0LCA5LjA2Mzc0IiwgXAotICAgICAgICAgICIwLjYwMDA4NCwgMC42ODk2MDYsIDEuNDkzLCAyLjgzMDkzLCA0LjE2NzU3LCA3LjI5MDQ0LCA5LjA3OTI0IiwgXAotICAgICAgICAgICIwLjYxNDczNywgMC43MDQzNzQsIDEuNTA3NTIsIDIuODQ1OSwgNC4xODIyMywgNy4zMDUxNywgOS4wOTM5OSIsIFwKLSAgICAgICAgICAiMC42Mjg2MDUsIDAuNzE4MDUyLCAxLjUyMTg1LCAyLjg1OTkxLCA0LjE5NjUxLCA3LjMxOTI3LCA5LjEwODA4IiwgXAotICAgICAgICAgICIwLjY1MDE4NiwgMC43Mzk1NTksIDEuNTQzOTQsIDIuODgxNjMsIDQuMjE4MDcsIDcuMzQwOTYsIDkuMTI5ODYiLCBcCi0gICAgICAgICAgIjAuNjY4MjY4LCAwLjc1Nzg2MiwgMS41NjIxMywgMi45MDAxNCwgNC4yMzY2NiwgNy4zNTkyNywgOS4xNDgxOCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC45NjE3NSwgMS4xMjg1NSwgMi42MzI2OCwgNS4xNDUxOCwgNy42NTU0OSwgMTMuNTEwNiwgMTYuODU3OSIsIFwKLSAgICAgICAgICAiMC45NjIxNDksIDEuMTI5NTIsIDIuNjQ1NzYsIDUuMTQyLCA3LjY1NTI3LCAxMy41MTAxLCAxNi44NTgiLCBcCi0gICAgICAgICAgIjAuOTYxMjIsIDEuMTI4OTUsIDIuNjM2MzMsIDUuMTQ3ODUsIDcuNjU1MTQsIDEzLjUxMDYsIDE2Ljg1OCIsIFwKLSAgICAgICAgICAiMC45NjExNDEsIDEuMTI4NTgsIDIuNjM1OTQsIDUuMTQyNCwgNy42NTUxMywgMTMuNTEwNiwgMTYuODU4IiwgXAotICAgICAgICAgICIwLjk2MTc3OSwgMS4xMjgyNCwgMi42MzY1MiwgNS4xNTIzOCwgNy42NTUzMywgMTMuNTEwMywgMTYuODU4IiwgXAotICAgICAgICAgICIwLjk2MTE0LCAxLjEyOTU0LCAyLjYzMzY3LCA1LjE0OTQzLCA3LjY1NTEzLCAxMy41MTA1LCAxNi44NTgiLCBcCi0gICAgICAgICAgIjAuOTYxMjQ4LCAxLjEyODkzLCAyLjYzMzQxLCA1LjE0NDA3LCA3LjY1NDg0LCAxMy41MTA1LCAxNi44NTgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjAiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMxNTA1NywgMC4zNjY5NzcsIDAuODMyNjU1LCAxLjYwNzkxLCAyLjM4MjksIDQuMTkwOTIsIDUuMjIzNTUiLCBcCi0gICAgICAgICAgIjAuMzI2NzY5LCAwLjM3ODY5MywgMC44NDQ0MDYsIDEuNjE5ODcsIDIuMzk0NzIsIDQuMjAyNjcsIDUuMjM1MTkiLCBcCi0gICAgICAgICAgIjAuMzQwMTcxLCAwLjM5MjA2OSwgMC44NTc3ODIsIDEuNjMzMDYsIDIuNDA4MDYsIDQuMjE1OCwgNS4yNDg3NiIsIFwKLSAgICAgICAgICAiMC4zNTI5MDEsIDAuNDA0ODY2LCAwLjg3MDYxNCwgMS42NDU4NiwgMi40MjA4NCwgNC4yMjg3NSwgNS4yNjE1OCIsIFwKLSAgICAgICAgICAiMC4zNjU0NTksIDAuNDE3MjkyLCAwLjg4MzA5MywgMS42NTgyNCwgMi40MzM1NywgNC4yNDE0MSwgNS4yNzM4NSIsIFwKLSAgICAgICAgICAiMC4zODUzNDUsIDAuNDM3MjcxLCAwLjkwMzAzLCAxLjY3ODIzLCAyLjQ1MzQsIDQuMjYxMDUsIDUuMjkzOTkiLCBcCi0gICAgICAgICAgIjAuNDAyNTU0LCAwLjQ1NDYxOCwgMC45MjA1MzMsIDEuNjk1ODMsIDIuNDcwOCwgNC4yNzg4MSwgNS4zMTE1MiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC42MDEyMzksIDAuNzAyMTEyLCAxLjYwOTIsIDMuMTIwNzYsIDQuNjMyOTMsIDguMTU5OSwgMTAuMTc0OCIsIFwKLSAgICAgICAgICAiMC42MDEzMjcsIDAuNzAyMTUxLCAxLjYwODg3LCAzLjEyMDc5LCA0LjYzMzQzLCA4LjE1OTE4LCAxMC4xNzU4IiwgXAotICAgICAgICAgICIwLjYwMTM0NiwgMC43MDIxMDIsIDEuNjA5MiwgMy4xMjE0NiwgNC42MzE5OCwgOC4xNTkxNCwgMTAuMTc1OCIsIFwKLSAgICAgICAgICAiMC42MDEyNjYsIDAuNzAyMDY0LCAxLjYwOTEyLCAzLjEyMTI5LCA0LjYzMjY5LCA4LjE1OTE4LCAxMC4xNzU5IiwgXAotICAgICAgICAgICIwLjYwMTIzMywgMC43MDIwNjksIDEuNjA4NzksIDMuMTIxMzIsIDQuNjMzMjYsIDguMTU5NjgsIDEwLjE3NTciLCBcCi0gICAgICAgICAgIjAuNjAxMjYyLCAwLjcwMjAyNSwgMS42MDkwNiwgMy4xMjEyOSwgNC42MzM0LCA4LjE2MDAyLCAxMC4xNzU4IiwgXAotICAgICAgICAgICIwLjYwMjA5MSwgMC43MDIxOTgsIDEuNjA5MTUsIDMuMTIxNDksIDQuNjMzMzMsIDguMTYwODMsIDEwLjE3NTUiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuNTcyNDA3LCAwLjY2MTk5LCAxLjQ2NTc0LCAyLjgwMzg2LCA0LjE0MDYsIDcuMjU5MjgsIDkuMDQxNDUiLCBcCi0gICAgICAgICAgIjAuNTgzMTczLCAwLjY3MjY0OSwgMS40NzY5NCwgMi44MTQ3NywgNC4xNTEzOSwgNy4yNzAxNCwgOS4wNTIzIiwgXAotICAgICAgICAgICIwLjU5NzI1NywgMC42ODY2NTksIDEuNDkwOTIsIDIuODI4NTEsIDQuMTY1MDQsIDcuMjg0MDMsIDkuMDY2MTQiLCBcCi0gICAgICAgICAgIjAuNjEwNjIyLCAwLjcwMDE1NSwgMS41MDQ1NiwgMi44NDI0OCwgNC4xNzg3NSwgNy4yOTc2NiwgOS4wNzk4OSIsIFwKLSAgICAgICAgICAiMC42MjQwODEsIDAuNzEzNjU1LCAxLjUxNzUsIDIuODU1ODIsIDQuMTkyNDIsIDcuMzExMTksIDkuMDkzMzYiLCBcCi0gICAgICAgICAgIjAuNjQ1MDk5LCAwLjczNDQ4NSwgMS41Mzg4OSwgMi44NzY4LCA0LjIxMzM3LCA3LjMzMjIyLCA5LjExNDQ3IiwgXAotICAgICAgICAgICIwLjY2MzgsIDAuNzUzMjg2LCAxLjU1NzI1LCAyLjg5NTQzLCA0LjIzMjI1LCA3LjM1MTA3LCA5LjEzMzIzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjk4MjI2NiwgMS4xNTAwOCwgMi42NTYyMywgNS4xNjU2NiwgNy42NjgzMywgMTMuNDk5MywgMTYuODMzIiwgXAotICAgICAgICAgICIwLjk4MzA2OCwgMS4xNDk1MSwgMi42NTQ3NCwgNS4xNjY0MSwgNy42NjczNywgMTMuNDk5NywgMTYuODMzIiwgXAotICAgICAgICAgICIwLjk4MjQyMiwgMS4xNDk0NywgMi42NTU1NCwgNS4xNjI2MiwgNy42NjkyNiwgMTMuNSwgMTYuODMyOSIsIFwKLSAgICAgICAgICAiMC45ODMwODQsIDEuMTQ5NywgMi42NTQ3NywgNS4xNjQxNiwgNy42Njg1MSwgMTMuNDk5NiwgMTYuODMzIiwgXAotICAgICAgICAgICIwLjk4MjAxOCwgMS4xNDk5MiwgMi42NTUyMywgNS4xNjkwNCwgNy42Njg4LCAxMy40OTkzLCAxNi44MzMiLCBcCi0gICAgICAgICAgIjAuOTgyMDI1LCAxLjE0OTMyLCAyLjY1NTA3LCA1LjE2Mjc4LCA3LjY2ODY0LCAxMy40OTk5LCAxNi44MzMiLCBcCi0gICAgICAgICAgIjAuOTgyMzg0LCAxLjE0OTYsIDIuNjU2OTksIDUuMTYyNDUsIDcuNjY4ODgsIDEzLjUsIDE2LjgzMyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzA2NDM3LCAwLjM1ODM5NSwgMC44MjQwNTMsIDEuNTk5MywgMi4zNzQyOCwgNC4xODE5NywgNS4yMTUiLCBcCi0gICAgICAgICAgIjAuMzE3MTI4LCAwLjM2ODk2NCwgMC44MzQ2ODIsIDEuNjEwMDQsIDIuMzg0OTgsIDQuMTkyOTMsIDUuMjI1NDUiLCBcCi0gICAgICAgICAgIjAuMzI5ODI2LCAwLjM4MTgzLCAwLjg0NzQyMiwgMS42MjI3NywgMi4zOTc3NywgNC4yMDU4LCA1LjIzODQ4IiwgXAotICAgICAgICAgICIwLjM0MjgzNywgMC4zOTQ3MzEsIDAuODYwNTA4LCAxLjYzNTgsIDIuNDEwODYsIDQuMjE4NzIsIDUuMjUxNTEiLCBcCi0gICAgICAgICAgIjAuMzU1ODM4LCAwLjQwNzgzNCwgMC44NzM5NSwgMS42NDg3MywgMi40MjM4MywgNC4yMzE4NywgNS4yNjQ1IiwgXAotICAgICAgICAgICIwLjM3NjgxLCAwLjQyODcyMSwgMC44OTQ0MTMsIDEuNjY5NzUsIDIuNDQ0ODEsIDQuMjUyNzUsIDUuMjg1MzUiLCBcCi0gICAgICAgICAgIjAuMzk1MDI5LCAwLjQ0NjkxNiwgMC45MTI3MzMsIDEuNjg4MDksIDIuNDYzMjMsIDQuMjcxMDgsIDUuMzAzNjkiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuNjAxMzI0LCAwLjcwMTk2NywgMS42MDg4NiwgMy4xMjA1OCwgNC42MzMwNiwgOC4xNTkxNSwgMTAuMTc0OCIsIFwKLSAgICAgICAgICAiMC42MDEyMTEsIDAuNzAyMTA2LCAxLjYwODk1LCAzLjEyMTU2LCA0LjYzMjg3LCA4LjE2MDM0LCAxMC4xNzYiLCBcCi0gICAgICAgICAgIjAuNjAxMjM2LCAwLjcwMjA5OSwgMS42MDg3OSwgMy4xMjA3NCwgNC42MzMzNCwgOC4xNjA2MSwgMTAuMTc1NyIsIFwKLSAgICAgICAgICAiMC42MDEzMjMsIDAuNzAyMDI2LCAxLjYwODg3LCAzLjEyMTMxLCA0LjYzMzAyLCA4LjE1OTkzLCAxMC4xNzYiLCBcCi0gICAgICAgICAgIjAuNjAxMjM2LCAwLjcwMjEzMywgMS42MDkxNiwgMy4xMjA1NSwgNC42MzI5MSwgOC4xNTkzMiwgMTAuMTc1OSIsIFwKLSAgICAgICAgICAiMC42MDEzMjMsIDAuNzAyMDE2LCAxLjYwODk0LCAzLjEyMTMxLCA0LjYzMzAyLCA4LjE1OTYyLCAxMC4xNzUyIiwgXAotICAgICAgICAgICIwLjYwMzA3MSwgMC43MDI0ODcsIDEuNjA4OCwgMy4xMjAzNywgNC42MzI5MiwgOC4xNTk4NywgMTAuMTc2MSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC41NTM4NDQsIDAuNjQzNjM2LCAxLjQ0OTUyLCAyLjc5MjY3LCA0LjEzNDMyLCA3LjI2NDU4LCA5LjA1MzM4IiwgXAotICAgICAgICAgICIwLjU2NTM5NCwgMC42NTUyMzIsIDEuNDYxODIsIDIuODA0MjgsIDQuMTQ1OTcsIDcuMjc2MTcsIDkuMDY1MTMiLCBcCi0gICAgICAgICAgIjAuNTc5NTQ3LCAwLjY2OTM0OCwgMS40NzYwNiwgMi44MTg1LCA0LjE2MDE1LCA3LjI5MDUzLCA5LjA3OTMxIiwgXAotICAgICAgICAgICIwLjU5Mjk3NiwgMC42ODI2NTEsIDEuNDg5OCwgMi44MzI1NiwgNC4xNzM3MiwgNy4zMDQyNCwgOS4wOTMxIiwgXAotICAgICAgICAgICIwLjYwNjQxOSwgMC42OTYxNTcsIDEuNTAyNzIsIDIuODQ1ODYsIDQuMTg3MzgsIDcuMzE3NzYsIDkuMTA2NTgiLCBcCi0gICAgICAgICAgIjAuNjI3MjE3LCAwLjcxNzE5LCAxLjUyNDAzLCAyLjg2NjgsIDQuMjA4MzIsIDcuMzM4NzksIDkuMTI3NjgiLCBcCi0gICAgICAgICAgIjAuNjQ1Nzg5LCAwLjczNTUyNSwgMS41NDIyNiwgMi44ODUzNiwgNC4yMjcwNywgNy4zNTc1NywgOS4xNDYzOCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC45NjQwODgsIDEuMTMyNSwgMi42NDYxMywgNS4xNjQxNCwgNy42Nzc3NiwgMTMuNTMzOSwgMTYuODgxOCIsIFwKLSAgICAgICAgICAiMC45NjUxMDUsIDEuMTMyMjcsIDIuNjQzNzIsIDUuMTYxMjcsIDcuNjc4MDEsIDEzLjUzNDIsIDE2Ljg4MTgiLCBcCi0gICAgICAgICAgIjAuOTY0NjMxLCAxLjEzMjM2LCAyLjY0MzY4LCA1LjE2MDk5LCA3LjY3NjIyLCAxMy41MzQyLCAxNi44ODE3IiwgXAotICAgICAgICAgICIwLjk2NDMxOSwgMS4xMzI0NywgMi42NDM1MiwgNS4xNjI1MiwgNy42Nzc5NCwgMTMuNTMzNiwgMTYuODgxOCIsIFwKLSAgICAgICAgICAiMC45NjQzOTQsIDEuMTMyNTgsIDIuNjQzMjIsIDUuMTY3NDksIDcuNjc3OTQsIDEzLjUzMzQsIDE2Ljg4MTgiLCBcCi0gICAgICAgICAgIjAuOTY0Mjg3LCAxLjEzMjI1LCAyLjY0MzM3LCA1LjE2MTM5LCA3LjY3NzgxLCAxMy41MzQyLCAxNi44ODE4IiwgXAotICAgICAgICAgICIwLjk2NDMzOCwgMS4xMzIxOSwgMi42NDUzNywgNS4xNjA5NiwgNy42Nzg2NSwgMTMuNTM0MiwgMTYuODgxOCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTQ0OTQsIDAuMTcwMjI0LCAwLjM5NzgzOCwgMC43NzY2ODEsIDEuMTU1NTgsIDIuMDM5OTgsIDIuNTQ1MDEiLCBcCi0gICAgICAgICAgIjAuMTU2Njc5LCAwLjE4MTkwNSwgMC40MDk0OSwgMC43ODgzMDQsIDEuMTY3MywgMi4wNTE3NiwgMi41NTcwNiIsIFwKLSAgICAgICAgICAiMC4xNzEwNjYsIDAuMTk2MzgyLCAwLjQyMjMwMSwgMC44MDE0MzYsIDEuMTgwMDUsIDIuMDY0MiwgMi41Njk0MiIsIFwKLSAgICAgICAgICAiMC4xODU4MTgsIDAuMjExMDAxLCAwLjQzNjQyLCAwLjgxNTY0OCwgMS4xOTQyOSwgMi4wNzgyNCwgMi41ODM3OCIsIFwKLSAgICAgICAgICAiMC4yMDA1ODQsIDAuMjI1ODA2LCAwLjQ1MjcyNywgMC44Mjk0NjMsIDEuMjA4MzYsIDIuMDkyNzQsIDIuNTk3OTciLCBcCi0gICAgICAgICAgIjAuMjI0NTA0LCAwLjI0OTM1NSwgMC40NzYxNTMsIDAuODUyMDIzLCAxLjIzMDYsIDIuMTE0ODMsIDIuNjIwMDMiLCBcCi0gICAgICAgICAgIjAuMjQ1MTE0LCAwLjI3MDM0MiwgMC40OTY2NjQsIDAuODcxMjMyLCAxLjI1MDIxLCAyLjEzNDUzLCAyLjYzOTY0Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMwODA1OSwgMC4zNTkwMjEsIDAuODE4MzE3LCAxLjU4NDY0LCAyLjM1MTE4LCA0LjE0MjM0LCA1LjE2MzA2IiwgXAotICAgICAgICAgICIwLjMwODA2NywgMC4zNTkwMzEsIDAuODE4MzUsIDEuNTg0NTYsIDIuMzUxMjUsIDQuMTQxNjMsIDUuMTYzNSIsIFwKLSAgICAgICAgICAiMC4zMDgwNSwgMC4zNTkwNDIsIDAuODE4Mzg5LCAxLjU4NDc2LCAyLjM1MTQxLCA0LjE0MjE0LCA1LjE2Mjk2IiwgXAotICAgICAgICAgICIwLjMwODIwNSwgMC4zNTkwMDQsIDAuODE4NDYyLCAxLjU4NTExLCAyLjM1MTY2LCA0LjE0MTQsIDUuMTY0OTEiLCBcCi0gICAgICAgICAgIjAuMzA5ODE5LCAwLjM1OTc1OCwgMC44MTgyNSwgMS41ODQ2MywgMi4zNTExNywgNC4xNDI0MywgNS4xNjQxNCIsIFwKLSAgICAgICAgICAiMC4zMTQ4NTUsIDAuMzYzNjc2LCAwLjgxODMwNywgMS41ODUwOCwgMi4zNTEyLCA0LjE0MTQxLCA1LjE2MzEiLCBcCi0gICAgICAgICAgIjAuMzIxMjg2LCAwLjM2ODg0MywgMC44MTgzNzcsIDEuNTg0NTgsIDIuMzUxODcsIDQuMTQyMzcsIDUuMTYzMzMiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuNTQxMTM4LCAwLjYzMDUsIDEuNDM0NzIsIDIuNzcyNTEsIDQuMTA5MjQsIDcuMjMyMjIsIDkuMDIwOTgiLCBcCi0gICAgICAgICAgIjAuNTUxNDMxLCAwLjY0MDc2NiwgMS40NDUxNywgMi43ODMyOCwgNC4xMTk3MiwgNy4yNDI1MywgOS4wMzE0OCIsIFwKLSAgICAgICAgICAiMC41NjQxMzYsIDAuNjUzNjMzLCAxLjQ1ODA0LCAyLjc5NjA3LCA0LjEzMjcyLCA3LjI1NTYyLCA5LjA0NDQ0IiwgXAotICAgICAgICAgICIwLjU3NjU1NSwgMC42NjYxMzUsIDEuNDcwNDEsIDIuODA4MzcsIDQuMTQ1MTksIDcuMjY4MzEsIDkuMDU3MDkiLCBcCi0gICAgICAgICAgIjAuNTg5MiwgMC42Nzg2MjgsIDEuNDgyNiwgMi44MjExMywgNC4xNTc3MywgNy4yODA5MiwgOS4wNjk3OSIsIFwKLSAgICAgICAgICAiMC42MDkxNzcsIDAuNjk4NjcxLCAxLjUwMjc3LCAyLjg0MTM1LCA0LjE3ODI0LCA3LjMwMTA3LCA5LjA4OTk5IiwgXAotICAgICAgICAgICIwLjYyNjY2LCAwLjcxNjE0MSwgMS41MjAzOSwgMi44NTg3OCwgNC4xOTU2MywgNy4zMTg4MywgOS4xMDc2NSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC45ODIyNDksIDEuMTQ5ODMsIDIuNjU0NzYsIDUuMTY0NDcsIDcuNjc3OTQsIDEzLjUzNDMsIDE2Ljg4MTkiLCBcCi0gICAgICAgICAgIjAuOTgxOTYxLCAxLjE0OTgxLCAyLjY1NDc0LCA1LjE2NjkxLCA3LjY3Nzg1LCAxMy41MzQyLCAxNi44ODE4IiwgXAotICAgICAgICAgICIwLjk4MjA3OSwgMS4xNDk3LCAyLjY1NDc0LCA1LjE2NiwgNy42NzgwMSwgMTMuNTMzNiwgMTYuODgxOCIsIFwKLSAgICAgICAgICAiMC45ODMwNjksIDEuMTQ5NTQsIDIuNjU0OTYsIDUuMTY2NiwgNy42Nzc2OSwgMTMuNTM0MiwgMTYuODgxNyIsIFwKLSAgICAgICAgICAiMC45ODI0NTQsIDEuMTQ5NDgsIDIuNjU0NzMsIDUuMTYyNDIsIDcuNjc3NywgMTMuNTMzOCwgMTYuODgxOCIsIFwKLSAgICAgICAgICAiMC45ODIyMywgMS4xNDk3MiwgMi42NTUxNCwgNS4xNjI3NCwgNy42NzYwOSwgMTMuNTM0MiwgMTYuODgxOCIsIFwKLSAgICAgICAgICAiMC45ODIwMjUsIDEuMTQ5NDUsIDIuNjU3OTIsIDUuMTY2OTcsIDcuNjc3NzgsIDEzLjUzNDIsIDE2Ljg4MTciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyMzU3LCAwLjAwMjM1NywgMC4wMDIzNTUsIDAuMDAyMzUyLCAwLjAwMjM0OSwgMC4wMDIzNDIsIDAuMDAyMzM2IiwgXAotICAgICAgICAgICIwLjAwMjM1MiwgMC4wMDIzNTIsIDAuMDAyMzUxLCAwLjAwMjM0NywgMC4wMDIzNDQsIDAuMDAyMzM2LCAwLjAwMjMzMSIsIFwKLSAgICAgICAgICAiMC4wMDIzNSwgMC4wMDIzNSwgMC4wMDIzNDgsIDAuMDAyMzQ1LCAwLjAwMjM0MiwgMC4wMDIzMzQsIDAuMDAyMzI4IiwgXAotICAgICAgICAgICIwLjAwMjM0OSwgMC4wMDIzNDksIDAuMDAyMzQ3LCAwLjAwMjM0NSwgMC4wMDIzNDEsIDAuMDAyMzMyLCAwLjAwMjMyOCIsIFwKLSAgICAgICAgICAiMC4wMDIzNDgsIDAuMDAyMzQ4LCAwLjAwMjM0NywgMC4wMDIzNDQsIDAuMDAyMzQsIDAuMDAyMzMyLCAwLjAwMjMyNyIsIFwKLSAgICAgICAgICAiMC4wMDIzNDcsIDAuMDAyMzQ3LCAwLjAwMjM0NiwgMC4wMDIzNDMsIDAuMDAyMzQsIDAuMDAyMzMxLCAwLjAwMjMyNyIsIFwKLSAgICAgICAgICAiMC4wMDIzNDYsIDAuMDAyMzQ0LCAwLjAwMjM0NSwgMC4wMDIzNDIsIDAuMDAyMzQsIDAuMDAyMzMsIDAuMDAyMzI2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwOTYzLCAwLjAwMDk2MywgMC4wMDA5NjIsIDAuMDAwOTYxLCAwLjAwMDk1OCwgMC4wMDA5NTQsIDAuMDAwOTUiLCBcCi0gICAgICAgICAgIjAuMDAwOTU2LCAwLjAwMDk1NiwgMC4wMDA5NTUsIDAuMDAwOTUyLCAwLjAwMDk1MSwgMC4wMDA5NDcsIDAuMDAwOTQyIiwgXAotICAgICAgICAgICIwLjAwMDk1MywgMC4wMDA5NTMsIDAuMDAwOTUzLCAwLjAwMDk1MiwgMC4wMDA5NSwgMC4wMDA5NDUsIDAuMDAwOTQyIiwgXAotICAgICAgICAgICIwLjAwMDk1MSwgMC4wMDA5NTIsIDAuMDAwOTUyLCAwLjAwMDk1MSwgMC4wMDA5NSwgMC4wMDA5NDUsIDAuMDAwOTQxIiwgXAotICAgICAgICAgICIwLjAwMDk1LCAwLjAwMDk1LCAwLjAwMDk1MSwgMC4wMDA5NTEsIDAuMDAwOTQ5LCAwLjAwMDk0NCwgMC4wMDA5NDEiLCBcCi0gICAgICAgICAgIjAuMDAwOTQ4LCAwLjAwMDk0OSwgMC4wMDA5NTEsIDAuMDAwOTUsIDAuMDAwOTQ5LCAwLjAwMDk0NCwgMC4wMDA5NCIsIFwKLSAgICAgICAgICAiMC4wMDA5NDcsIDAuMDAwOTQ3LCAwLjAwMDk1LCAwLjAwMDk0OSwgMC4wMDA5NDgsIDAuMDAwOTQzLCAwLjAwMDk0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjIxNywgMC4wMDIyMTgsIDAuMDAyMjE2LCAwLjAwMjIxMywgMC4wMDIyMDksIDAuMDAyMjAxLCAwLjAwMjE5NiIsIFwKLSAgICAgICAgICAiMC4wMDIyMTIsIDAuMDAyMjEyLCAwLjAwMjIxLCAwLjAwMjIwNywgMC4wMDIyMDQsIDAuMDAyMTk2LCAwLjAwMjE4OSIsIFwKLSAgICAgICAgICAiMC4wMDIyMDksIDAuMDAyMjA5LCAwLjAwMjIwOCwgMC4wMDIyMDUsIDAuMDAyMjAyLCAwLjAwMjE5NSwgMC4wMDIxODgiLCBcCi0gICAgICAgICAgIjAuMDAyMjA4LCAwLjAwMjIwNywgMC4wMDIyMDcsIDAuMDAyMjA0LCAwLjAwMjIwMSwgMC4wMDIxOTIsIDAuMDAyMTg2IiwgXAotICAgICAgICAgICIwLjAwMjIwNiwgMC4wMDIyMDYsIDAuMDAyMjA1LCAwLjAwMjIwMywgMC4wMDIyLCAwLjAwMjE5MiwgMC4wMDIxODYiLCBcCi0gICAgICAgICAgIjAuMDAyMjA0LCAwLjAwMjIwNSwgMC4wMDIyMDUsIDAuMDAyMjAyLCAwLjAwMjE5OSwgMC4wMDIxOTEsIDAuMDAyMTg1IiwgXAotICAgICAgICAgICIwLjAwMjIwNCwgMC4wMDIyMDQsIDAuMDAyMjA0LCAwLjAwMjIwMiwgMC4wMDIxOTgsIDAuMDAyMTksIDAuMDAyMTg1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwNzI5LCAwLjAwMDcyOSwgMC4wMDA3MjYsIDAuMDAwNzMxLCAwLjAwMDcyNywgMC4wMDA3MjQsIDAuMDAwNzIyIiwgXAotICAgICAgICAgICIwLjAwMDczMywgMC4wMDA3MzQsIDAuMDAwNzM1LCAwLjAwMDczMywgMC4wMDA3MzMsIDAuMDAwNzMyLCAwLjAwMDcyOSIsIFwKLSAgICAgICAgICAiMC4wMDA3MzIsIDAuMDAwNzMzLCAwLjAwMDczNSwgMC4wMDA3MzUsIDAuMDAwNzM0LCAwLjAwMDczMiwgMC4wMDA3MyIsIFwKLSAgICAgICAgICAiMC4wMDA3MjksIDAuMDAwNzMsIDAuMDAwNzM0LCAwLjAwMDczNSwgMC4wMDA3MzQsIDAuMDAwNzMyLCAwLjAwMDczIiwgXAotICAgICAgICAgICIwLjAwMDcyNywgMC4wMDA3MjgsIDAuMDAwNzMzLCAwLjAwMDczNCwgMC4wMDA3MzQsIDAuMDAwNzMyLCAwLjAwMDczIiwgXAotICAgICAgICAgICIwLjAwMDcyMywgMC4wMDA3MjUsIDAuMDAwNzMyLCAwLjAwMDczNCwgMC4wMDA3MzQsIDAuMDAwNzMyLCAwLjAwMDczIiwgXAotICAgICAgICAgICIwLjAwMDcyLCAwLjAwMDcyMiwgMC4wMDA3MywgMC4wMDA3MzMsIDAuMDAwNzMzLCAwLjAwMDczMiwgMC4wMDA3MyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDE3NzcsIDAuMDAxNzc3LCAwLjAwMTc3NywgMC4wMDE3NzYsIDAuMDAxNzczLCAwLjAwMTc2OSwgMC4wMDE3NjciLCBcCi0gICAgICAgICAgIjAuMDAxNzc3LCAwLjAwMTc3NywgMC4wMDE3NzYsIDAuMDAxNzc1LCAwLjAwMTc3NCwgMC4wMDE3NywgMC4wMDE3NjciLCBcCi0gICAgICAgICAgIjAuMDAxNzc2LCAwLjAwMTc3NywgMC4wMDE3NzYsIDAuMDAxNzc1LCAwLjAwMTc3NCwgMC4wMDE3NjksIDAuMDAxNzY3IiwgXAotICAgICAgICAgICIwLjAwMTc3NiwgMC4wMDE3NzYsIDAuMDAxNzc2LCAwLjAwMTc3NSwgMC4wMDE3NzQsIDAuMDAxNzY5LCAwLjAwMTc2NyIsIFwKLSAgICAgICAgICAiMC4wMDE3NzUsIDAuMDAxNzc1LCAwLjAwMTc3NiwgMC4wMDE3NzUsIDAuMDAxNzc0LCAwLjAwMTc3LCAwLjAwMTc2NiIsIFwKLSAgICAgICAgICAiMC4wMDE3NzMsIDAuMDAxNzc0LCAwLjAwMTc3NSwgMC4wMDE3NzQsIDAuMDAxNzczLCAwLjAwMTc3LCAwLjAwMTc2NyIsIFwKLSAgICAgICAgICAiMC4wMDE3NzMsIDAuMDAxNzczLCAwLjAwMTc3NSwgMC4wMDE3NzQsIDAuMDAxNzczLCAwLjAwMTc3LCAwLjAwMTc2NyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDk2MywgMC4wMDA5NjMsIDAuMDAwOTYyLCAwLjAwMDk2MSwgMC4wMDA5NTgsIDAuMDAwOTU1LCAwLjAwMDk1IiwgXAotICAgICAgICAgICIwLjAwMDk1NiwgMC4wMDA5NTYsIDAuMDAwOTU2LCAwLjAwMDk1NCwgMC4wMDA5NTIsIDAuMDAwOTQ4LCAwLjAwMDk0MyIsIFwKLSAgICAgICAgICAiMC4wMDA5NTMsIDAuMDAwOTUzLCAwLjAwMDk1MywgMC4wMDA5NTIsIDAuMDAwOTUsIDAuMDAwOTQ1LCAwLjAwMDk0MiIsIFwKLSAgICAgICAgICAiMC4wMDA5NTEsIDAuMDAwOTUyLCAwLjAwMDk1MiwgMC4wMDA5NTEsIDAuMDAwOTQ5LCAwLjAwMDk0NCwgMC4wMDA5NDEiLCBcCi0gICAgICAgICAgIjAuMDAwOTUsIDAuMDAwOTUsIDAuMDAwOTUyLCAwLjAwMDk1MSwgMC4wMDA5NDksIDAuMDAwOTQ0LCAwLjAwMDk0MSIsIFwKLSAgICAgICAgICAiMC4wMDA5NDgsIDAuMDAwOTQ5LCAwLjAwMDk1MSwgMC4wMDA5NSwgMC4wMDA5NDgsIDAuMDAwOTQ0LCAwLjAwMDk0IiwgXAotICAgICAgICAgICIwLjAwMDk0NywgMC4wMDA5NDgsIDAuMDAwOTUsIDAuMDAwOTUsIDAuMDAwOTQ4LCAwLjAwMDk0NCwgMC4wMDA5NCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIxIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDE2MzQsIDAuMDAxNjM0LCAwLjAwMTYzMywgMC4wMDE2MzIsIDAuMDAxNjMsIDAuMDAxNjI2LCAwLjAwMTYyMyIsIFwKLSAgICAgICAgICAiMC4wMDE2MzMsIDAuMDAxNjMzLCAwLjAwMTYzMywgMC4wMDE2MzEsIDAuMDAxNjMsIDAuMDAxNjI2LCAwLjAwMTYyNCIsIFwKLSAgICAgICAgICAiMC4wMDE2MzIsIDAuMDAxNjMyLCAwLjAwMTYzMiwgMC4wMDE2MzEsIDAuMDAxNjMsIDAuMDAxNjI2LCAwLjAwMTYyNCIsIFwKLSAgICAgICAgICAiMC4wMDE2MzEsIDAuMDAxNjMxLCAwLjAwMTYzMiwgMC4wMDE2MzEsIDAuMDAxNjMsIDAuMDAxNjI2LCAwLjAwMTYyMyIsIFwKLSAgICAgICAgICAiMC4wMDE2MywgMC4wMDE2MywgMC4wMDE2MzIsIDAuMDAxNjMxLCAwLjAwMTYzLCAwLjAwMTYyNiwgMC4wMDE2MjMiLCBcCi0gICAgICAgICAgIjAuMDAxNjI4LCAwLjAwMTYyOSwgMC4wMDE2MzEsIDAuMDAxNjMsIDAuMDAxNjI5LCAwLjAwMTYyNiwgMC4wMDE2MjMiLCBcCi0gICAgICAgICAgIjAuMDAxNjI3LCAwLjAwMTYyOCwgMC4wMDE2MywgMC4wMDE2MywgMC4wMDE2MjksIDAuMDAxNjI2LCAwLjAwMTYyMyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDcwOCwgMC4wMDA3MDgsIDAuMDAwNzA4LCAwLjAwMDcwNywgMC4wMDA3MDIsIDAuMDAwNzEsIDAuMDAwNzAyIiwgXAotICAgICAgICAgICIwLjAwMDcxMiwgMC4wMDA3MTMsIDAuMDAwNzE0LCAwLjAwMDcxMywgMC4wMDA3MTMsIDAuMDAwNzEsIDAuMDAwNzA4IiwgXAotICAgICAgICAgICIwLjAwMDcxMSwgMC4wMDA3MTIsIDAuMDAwNzE0LCAwLjAwMDcxNCwgMC4wMDA3MTQsIDAuMDAwNzEyLCAwLjAwMDcxIiwgXAotICAgICAgICAgICIwLjAwMDcwOCwgMC4wMDA3MSwgMC4wMDA3MTMsIDAuMDAwNzE0LCAwLjAwMDcxNCwgMC4wMDA3MTIsIDAuMDAwNzEiLCBcCi0gICAgICAgICAgIjAuMDAwNzA2LCAwLjAwMDcwNywgMC4wMDA3MTIsIDAuMDAwNzE0LCAwLjAwMDcxNCwgMC4wMDA3MTIsIDAuMDAwNzEiLCBcCi0gICAgICAgICAgIjAuMDAwNzAyLCAwLjAwMDcwNCwgMC4wMDA3MTEsIDAuMDAwNzEzLCAwLjAwMDcxMywgMC4wMDA3MTIsIDAuMDAwNzEiLCBcCi0gICAgICAgICAgIjAuMDAwNjk5LCAwLjAwMDcwMiwgMC4wMDA3MDksIDAuMDAwNzEyLCAwLjAwMDcxMywgMC4wMDA3MTEsIDAuMDAwNzEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDMCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxMjUyLCAwLjAwMTI1MywgMC4wMDEyNTMsIDAuMDAxMjUzLCAwLjAwMTI1MywgMC4wMDEyNTMsIDAuMDAxMjUzIiwgXAotICAgICAgICAgICIwLjAwMTI1NiwgMC4wMDEyNTcsIDAuMDAxMjU4LCAwLjAwMTI1OCwgMC4wMDEyNTgsIDAuMDAxMjU4LCAwLjAwMTI1OCIsIFwKLSAgICAgICAgICAiMC4wMDEyNTYsIDAuMDAxMjU3LCAwLjAwMTI1OCwgMC4wMDEyNiwgMC4wMDEyNjEsIDAuMDAxMjYsIDAuMDAxMjYxIiwgXAotICAgICAgICAgICIwLjAwMTI1NSwgMC4wMDEyNTYsIDAuMDAxMjU5LCAwLjAwMTI2LCAwLjAwMTI2MSwgMC4wMDEyNjEsIDAuMDAxMjYxIiwgXAotICAgICAgICAgICIwLjAwMTI1NCwgMC4wMDEyNTUsIDAuMDAxMjU5LCAwLjAwMTI2LCAwLjAwMTI2MSwgMC4wMDEyNjEsIDAuMDAxMjYxIiwgXAotICAgICAgICAgICIwLjAwMTI1MywgMC4wMDEyNTQsIDAuMDAxMjU4LCAwLjAwMTI2LCAwLjAwMTI2MSwgMC4wMDEyNjEsIDAuMDAxMjYyIiwgXAotICAgICAgICAgICIwLjAwMTI1MSwgMC4wMDEyNTIsIDAuMDAxMjU5LCAwLjAwMTI2LCAwLjAwMTI2MSwgMC4wMDEyNjEsIDAuMDAxMjYyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwOTcsIDAuMDAwOTcsIDAuMDAwOTcsIDAuMDAwOTY5LCAwLjAwMDk2NiwgMC4wMDA5NjEsIDAuMDAwOTU4IiwgXAotICAgICAgICAgICIwLjAwMDk2NywgMC4wMDA5NjcsIDAuMDAwOTY5LCAwLjAwMDk2NywgMC4wMDA5NjYsIDAuMDAwOTYxLCAwLjAwMDk1NyIsIFwKLSAgICAgICAgICAiMC4wMDA5NjQsIDAuMDAwOTY1LCAwLjAwMDk2NywgMC4wMDA5NjcsIDAuMDAwOTY1LCAwLjAwMDk2MSwgMC4wMDA5NTciLCBcCi0gICAgICAgICAgIjAuMDAwOTYxLCAwLjAwMDk2MiwgMC4wMDA5NjYsIDAuMDAwOTY2LCAwLjAwMDk2NSwgMC4wMDA5NiwgMC4wMDA5NTciLCBcCi0gICAgICAgICAgIjAuMDAwOTU4LCAwLjAwMDk2LCAwLjAwMDk2NSwgMC4wMDA5NjUsIDAuMDAwOTY1LCAwLjAwMDk2LCAwLjAwMDk1NyIsIFwKLSAgICAgICAgICAiMC4wMDA5NTUsIDAuMDAwOTU2LCAwLjAwMDk2MywgMC4wMDA5NjQsIDAuMDAwOTY0LCAwLjAwMDk2LCAwLjAwMDk1NiIsIFwKLSAgICAgICAgICAiMC4wMDA5NTIsIDAuMDAwOTU0LCAwLjAwMDk2MSwgMC4wMDA5NjMsIDAuMDAwOTYzLCAwLjAwMDk1OSwgMC4wMDA5NTYiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogT0FJMjIyWDIgKgotICogLS0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKE9BSTIyMlgyKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMjg3OTk2OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNTU5NjE7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNTUzOTk7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNTU5NjE7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNjEyLCAwLjAwMDYxMiwgMC4wMDA2MTEsIDAuMDAwNjExLCAwLjAwMDYxMSwgMC4wMDA2MTEsIDAuMDAwNjExIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNjEzLCAwLjAwMDYxNCwgMC4wMDA2MTQsIDAuMDAwNjE0LCAwLjAwMDYxNCwgMC4wMDA2MTUsIDAuMDAwNjE1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihBMSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNDgwNTI7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNDgwNTI7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNDczMTQ7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNjEyLCAwLjAwMDYxMiwgMC4wMDA2MTIsIDAuMDAwNjEyLCAwLjAwMDYxMiwgMC4wMDA2MTIsIDAuMDAwNjEyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNjEzLCAwLjAwMDYxMywgMC4wMDA2MTMsIDAuMDAwNjEzLCAwLjAwMDYxMywgMC4wMDA2MTQsIDAuMDAwNjE0Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNTk1OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTU4NzU5OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTU5NTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA2MTIsIDAuMDAwNjEyLCAwLjAwMDYxMiwgMC4wMDA2MTEsIDAuMDAwNjExLCAwLjAwMDYxMSwgMC4wMDA2MTEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA2MTMsIDAuMDAwNjE0LCAwLjAwMDYxNCwgMC4wMDA2MTQsIDAuMDAwNjE0LCAwLjAwMDYxNCwgMC4wMDA2MTQiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIxKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE0ODg1NzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE0ODg1NzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE0ODI2NTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA2MTMsIDAuMDAwNjEyLCAwLjAwMDYxMiwgMC4wMDA2MTIsIDAuMDAwNjEyLCAwLjAwMDYxMiwgMC4wMDA2MTIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA2MTMsIDAuMDAwNjEzLCAwLjAwMDYxMywgMC4wMDA2MTMsIDAuMDAwNjE0LCAwLjAwMDYxNCwgMC4wMDA2MTQiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEMwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE3MzA2MjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE3MTg7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNzMwNjI7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNTg3LCAwLjAwMDU4NywgMC4wMDA1ODYsIDAuMDAwNTg4LCAwLjAwMDU4NywgMC4wMDA1ODcsIDAuMDAwNTg3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNjk1LCAwLjAwMDY5NiwgMC4wMDA2OTYsIDAuMDAwNjk2LCAwLjAwMDY5NiwgMC4wMDA2OTYsIDAuMDAwNjk2Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihDMSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNTY1MDQ7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNTY0ODU7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNTY1MDQ7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNTg3LCAwLjAwMDU4NywgMC4wMDA1ODgsIDAuMDAwNTg3LCAwLjAwMDU4NywgMC4wMDA1ODYsIDAuMDAwNTg3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNjk1LCAwLjAwMDY5NSwgMC4wMDA2OTUsIDAuMDAwNjk1LCAwLjAwMDY5NiwgMC4wMDA2OTYsIDAuMDAwNjk2Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMDg5OTIzMzsKLSAgICBmdW5jdGlvbiA6ICIoISgoKEMwK0MxKSAoQTArQTEpKSAoQjArQjEpKSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMzc1NDMsIDAuNTExODA3LCAwLjgwOTI2MiwgMS4xNzk5NSwgMS41NTEwNywgMS45MjE3OCwgMi4yOTE2OCIsIFwKLSAgICAgICAgICAiMC4xNDkwNTIsIDAuNTIzNDEsIDAuODIwNjk1LCAxLjE5MTgxLCAxLjU2MjE5LCAxLjkzMzM5LCAyLjMwMzg0IiwgXAotICAgICAgICAgICIwLjE2MjE3MywgMC41MzY1NjMsIDAuODMzODUxLCAxLjIwNDc1LCAxLjU3NTM1LCAxLjk0NjUxLCAyLjMxNjI3IiwgXAotICAgICAgICAgICIwLjE3NDgyNiwgMC41NDkzMDgsIDAuODQ2NiwgMS4yMTc0NiwgMS41ODg2MSwgMS45NTg2NCwgMi4zMjkxOSIsIFwKLSAgICAgICAgICAiMC4xODczMTUsIDAuNTYxODQ1LCAwLjg1OTA5OCwgMS4yMzAwNCwgMS42MDA2OCwgMS45NzE4MSwgMi4zNDIyNyIsIFwKLSAgICAgICAgICAiMC4yMDY5NjcsIDAuNTgxNjUzLCAwLjg3OTAxMywgMS4yNDk5NiwgMS42MjA1LCAxLjk5MTQzLCAyLjM2MTY5IiwgXAotICAgICAgICAgICIwLjIyNDE2NywgMC41OTg5MywgMC44OTYyNzUsIDEuMjY3MzIsIDEuNjM3OTEsIDIuMDA4MzQsIDIuMzc5NjciKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjYyMTQ1LCAwLjk4NjY2NCwgMS41NjY4NSwgMi4yOTI3NSwgMy4wMTcyNiwgMy43NDMzNCwgNC40Njg5MSIsIFwKLSAgICAgICAgICAiMC4yNjIxMiwgMC45ODY3MTIsIDEuNTY2OTIsIDIuMjkyNzgsIDMuMDE4MTcsIDMuNzQzNywgNC40Njg2NSIsIFwKLSAgICAgICAgICAiMC4yNjIwNDYsIDAuOTg2Njg0LCAxLjU2Njg5LCAyLjI5Mjc3LCAzLjAxODE5LCAzLjc0MzYyLCA0LjQ2OTExIiwgXAotICAgICAgICAgICIwLjI2MjA2NSwgMC45ODY2OSwgMS41NjcsIDIuMjkyMTksIDMuMDE4NDQsIDMuNzQzMzMsIDQuNDY4ODIiLCBcCi0gICAgICAgICAgIjAuMjYzMDE1LCAwLjk4NjY5MiwgMS41NjcwMywgMi4yOTIxMiwgMy4wMTgyOCwgMy43NDM2NCwgNC40NjgyNiIsIFwKLSAgICAgICAgICAiMC4yNjYyNTUsIDAuOTg2NjcyLCAxLjU2NjkzLCAyLjI5MjI3LCAzLjAxNzI1LCAzLjc0MzA2LCA0LjQ2NzciLCBcCi0gICAgICAgICAgIjAuMjcwNDY1LCAwLjk4NjY3OCwgMS41NjcwNSwgMi4yOTIxMywgMy4wMTgyNSwgMy43NDM3OCwgNC40Njg4NCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yNjE0MjQsIDAuODg1NDgsIDEuMzgyNTQsIDIuMDAzNDcsIDIuNjI0MDQsIDMuMjQ3NzYsIDMuODcxOTciLCBcCi0gICAgICAgICAgIjAuMjcyODU3LCAwLjg5NzE4NCwgMS4zOTQ0NCwgMi4wMTQ5NywgMi42MzU4OSwgMy4yNTk0NywgMy44ODM3IiwgXAotICAgICAgICAgICIwLjI4NzMwMSwgMC45MTE1ODksIDEuNDA4NDQsIDIuMDMwMzIsIDIuNjUwMTIsIDMuMjczOTksIDMuODk4MTgiLCBcCi0gICAgICAgICAgIjAuMzAwODc4LCAwLjkyNTI2NSwgMS40MjIzMiwgMi4wNDM2NywgMi42NjM5NiwgMy4yODc3NywgMy45MTIwMyIsIFwKLSAgICAgICAgICAiMC4zMTM5MzQsIDAuOTM4NDc1LCAxLjQzNTc2LCAyLjA1NzE0LCAyLjY3NzI4LCAzLjMwMTI5LCAzLjkyNTI2IiwgXAotICAgICAgICAgICIwLjMzNDIwOCwgMC45NTg0OTEsIDEuNDU2MDIsIDIuMDc2OCwgMi42OTc3MSwgMy4zMjE5MywgMy45NDU0OSIsIFwKLSAgICAgICAgICAiMC4zNTEzODgsIDAuOTc2MTMyLCAxLjQ3MzY4LCAyLjA5NDM5LCAyLjcxNDg4LCAzLjMzODU0LCAzLjk2Mjg4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjM3MDM4MywgMS41Mzk4LCAyLjQ3NTYzLCAzLjY1MzU4LCA0LjgyNzU5LCA2LjAwOTA4LCA3LjE4Mzc5IiwgXAotICAgICAgICAgICIwLjM3MDY1NywgMS41NDAwNSwgMi40NzU0NCwgMy42NTE0NiwgNC44Mjg5NSwgNi4wMDkyMSwgNy4xODM5NSIsIFwKLSAgICAgICAgICAiMC4zNzA2MjcsIDEuNTQwNTUsIDIuNDc1NzksIDMuNjUxMjEsIDQuODI3NzcsIDYuMDA3NDQsIDcuMTgzNiIsIFwKLSAgICAgICAgICAiMC4zNzA2NzIsIDEuNTM5NzcsIDIuNDc1MjgsIDMuNjUwOTksIDQuODI4NDUsIDYuMDA4OTUsIDcuMTgzNTgiLCBcCi0gICAgICAgICAgIjAuMzcwNjgzLCAxLjUzOTg2LCAyLjQ3NTUsIDMuNjUyMjQsIDQuODI3NDgsIDYuMDA1NDksIDcuMTgzNjkiLCBcCi0gICAgICAgICAgIjAuMzcwMjc1LCAxLjUzOTgzLCAyLjQ3NjI4LCAzLjY1MTY2LCA0LjgyOTUxLCA2LjAwNzA3LCA3LjE4Mzk4IiwgXAotICAgICAgICAgICIwLjM3MDMyMiwgMS41NDA1OCwgMi40NzU1LCAzLjY1Mjc3LCA0LjgyNzc3LCA2LjAwOTAyLCA3LjE4MzY5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkExIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMzA0MTEsIDAuNTA0NzI5LCAwLjgwMjAwNSwgMS4xNzMwOSwgMS41NDQwNywgMS45MTQzOCwgMi4yODQ1OSIsIFwKLSAgICAgICAgICAiMC4xNDA0ODcsIDAuNTE0OTA4LCAwLjgxMjI4NiwgMS4xODI5NywgMS41NTQwOSwgMS45MjQyNywgMi4yOTQ2OSIsIFwKLSAgICAgICAgICAiMC4xNTMzNjcsIDAuNTI3ODE3LCAwLjgyNTEwNSwgMS4xOTYxMiwgMS41NjcwNCwgMS45MzcyMiwgMi4zMDc3MSIsIFwKLSAgICAgICAgICAiMC4xNjY0MjQsIDAuNTQwODk4LCAwLjgzODI2OCwgMS4yMDkwNSwgMS41ODAwNCwgMS45NTAzNSwgMi4zMjE2OSIsIFwKLSAgICAgICAgICAiMC4xNzk0NTMsIDAuNTUzOTcyLCAwLjg1MTI5MywgMS4yMjIyNSwgMS41OTI4OSwgMS45NjQwMSwgMi4zMzM4IiwgXAotICAgICAgICAgICIwLjIwMDUyNiwgMC41NzUwMDEsIDAuODcyMjQxLCAxLjI0MzMyLCAxLjYxMzg0LCAxLjk4NDM0LCAyLjM1NTc1IiwgXAotICAgICAgICAgICIwLjIxOTk1OSwgMC41OTMzMTIsIDAuODkwNTgsIDEuMjYxNjIsIDEuNjMyMzEsIDIuMDAyODIsIDIuMzc0MDUiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjYyMjI3LCAwLjk4NzAwMywgMS41NjY3MiwgMi4yOTIxMiwgMy4wMTgzLCAzLjc0Mjk3LCA0LjQ2ODk5IiwgXAotICAgICAgICAgICIwLjI2MjEzOCwgMC45ODY2OSwgMS41NjY4NywgMi4yOTIzOSwgMy4wMTczOSwgMy43NDM0MywgNC40NjkxNyIsIFwKLSAgICAgICAgICAiMC4yNjE4NzgsIDAuOTg2NjkyLCAxLjU2Njk5LCAyLjI5MjYzLCAzLjAxODI4LCAzLjc0MzY2LCA0LjQ2OTI2IiwgXAotICAgICAgICAgICIwLjI2MjMzOSwgMC45ODY2MTksIDEuNTY3MDQsIDIuMjkyMjMsIDMuMDE3MjksIDMuNzQzNjgsIDQuNDY5MDYiLCBcCi0gICAgICAgICAgIjAuMjY0ODE2LCAwLjk4NjY5OSwgMS41NjcwMywgMi4yOTI3MSwgMy4wMTgzLCAzLjc0MzY2LCA0LjQ2ODgxIiwgXAotICAgICAgICAgICIwLjI3MTAyNywgMC45ODY2MzksIDEuNTY3MDIsIDIuMjkyNTYsIDMuMDE4MjQsIDMuNzQzMDgsIDQuNDY4NDEiLCBcCi0gICAgICAgICAgIjAuMjc4NTA3LCAwLjk4Njc5OSwgMS41NjY4MywgMi4yOTIwNiwgMy4wMTc4MywgMy43NDI3NiwgNC40NjkxNCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yNDYwMzcsIDAuODczMzY3LCAxLjM3MzMyLCAxLjk5ODM1LCAyLjYyMzMyLCAzLjI1MTE1LCAzLjg3OTM3IiwgXAotICAgICAgICAgICIwLjI1ODI0LCAwLjg4NTUxNywgMS4zODYsIDIuMDExNDIsIDIuNjM1ODQsIDMuMjYzNTYsIDMuODkyMDEiLCBcCi0gICAgICAgICAgIjAuMjcyNTU0LCAwLjkwMDUxMSwgMS40MDA2NSwgMi4wMjYzOCwgMi42NTA0NiwgMy4yNzgyNCwgMy45MDY2MiIsIFwKLSAgICAgICAgICAiMC4yODU5NjcsIDAuOTE0MTEzLCAxLjQxNDcyLCAyLjAzOTM2LCAyLjY2NDYzLCAzLjI5MjY2LCAzLjkyMDU3IiwgXAotICAgICAgICAgICIwLjI5ODg5MSwgMC45MjcyNTQsIDEuNDI3NzcsIDIuMDUzNTcsIDIuNjc3NjQsIDMuMzA1MTMsIDMuOTMzNzgiLCBcCi0gICAgICAgICAgIjAuMzE4OTExLCAwLjk0NzQ0NiwgMS40NDc5NiwgMi4wNzM2NywgMi42OTc4NSwgMy4zMjU2NiwgMy45NTQxNiIsIFwKLSAgICAgICAgICAiMC4zMzU5MTEsIDAuOTY0Njk5LCAxLjQ2NTcsIDIuMDkwNTUsIDIuNzE1MywgMy4zNDI4MSwgMy45NzE0MiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zNTUwNTIsIDEuNTMwODMsIDIuNDgzMSwgMy42NjgzOCwgNC44NDUwOCwgNi4wMzAxLCA3LjIxMTQ2IiwgXAotICAgICAgICAgICIwLjM1NTExNCwgMS41MzEwMSwgMi40NzQxMiwgMy42Njg3NywgNC44Mzk0MSwgNi4wMzA0MiwgNy4yMTA3NiIsIFwKLSAgICAgICAgICAiMC4zNTUwOSwgMS41MzExNiwgMi40NzQxNCwgMy42NjkxMSwgNC44NTE1LCA2LjAzMDE4LCA3LjIxMDY1IiwgXAotICAgICAgICAgICIwLjM1NTA2OSwgMS41MzA4OCwgMi40ODMxMywgMy42NjgxNCwgNC44NTE5MSwgNi4wMjczMSwgNy4yMTA3OCIsIFwKLSAgICAgICAgICAiMC4zNTUwOTQsIDEuNTMwODQsIDIuNDc0NDIsIDMuNjU1NjEsIDQuODUxNjYsIDYuMDMwMjMsIDcuMjEwNzMiLCBcCi0gICAgICAgICAgIjAuMzU0ODE1LCAxLjUzMTA2LCAyLjQ3NDE4LCAzLjY2ODkxLCA0Ljg1MTEzLCA2LjAzMDQ3LCA3LjIxMDc2IiwgXAotICAgICAgICAgICIwLjM1NTI0NiwgMS41MzEyOCwgMi40NzIxMiwgMy42NTYyMSwgNC44NTE3NiwgNi4wMjk4NiwgNy4yMTA3NiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTI2MDU3LCAwLjQ5ODM4MywgMC43OTUwMjcsIDEuMTY1ODIsIDEuNTM2MzYsIDEuOTA3MDIsIDIuMjc3NzMiLCBcCi0gICAgICAgICAgIjAuMTM3ODA5LCAwLjUxMDEyNiwgMC44MDY4ODMsIDEuMTc3NjYsIDEuNTQ4MjEsIDEuOTE4OTUsIDIuMjg5MjMiLCBcCi0gICAgICAgICAgIjAuMTUxMDUxLCAwLjUyMzYxNywgMC44MjAzMjksIDEuMTkwODksIDEuNTYxNTIsIDEuOTMyMjMsIDIuMzAyODgiLCBcCi0gICAgICAgICAgIjAuMTYzNTc5LCAwLjUzNjA1OSwgMC44MzMxNTUsIDEuMjAzNTgsIDEuNTc0MTUsIDEuOTQ0OTQsIDIuMzE1NjQiLCBcCi0gICAgICAgICAgIjAuMTc2MDA5LCAwLjU0ODgzLCAwLjg0NTQwOCwgMS4yMTYxMywgMS41ODY3OCwgMS45NTc0OCwgMi4zMjgxNSIsIFwKLSAgICAgICAgICAiMC4xOTU4NDUsIDAuNTY4NTg4LCAwLjg2NTMzLCAxLjIzNjIxLCAxLjYwNjc0LCAxLjk3NzIyLCAyLjM0Nzk4IiwgXAotICAgICAgICAgICIwLjIxMzAzNSwgMC41ODYwNCwgMC44ODMwMDksIDEuMjUzODMsIDEuNjI0MjIsIDEuOTk1MDIsIDIuMzY1NzUiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjQ4MjgsIDAuOTcyNjY2LCAxLjU1MjQ0LCAyLjI3NzQ2LCAzLjAwMzMyLCAzLjcyNzkzLCA0LjQ1Mzc4IiwgXAotICAgICAgICAgICIwLjI0ODI5LCAwLjk3Mjc3MywgMS41NTI0MiwgMi4yNzc1OSwgMy4wMDMyNiwgMy43Mjg2MiwgNC40NTM0MSIsIFwKLSAgICAgICAgICAiMC4yNDgyNzgsIDAuOTcyNjY1LCAxLjU1MjM2LCAyLjI3NzMyLCAzLjAwMzQ2LCAzLjcyNzg4LCA0LjQ1MjUiLCBcCi0gICAgICAgICAgIjAuMjQ4NDU0LCAwLjk3MjYyNSwgMS41NTIzMiwgMi4yNzc3MSwgMy4wMDIyOSwgMy43Mjc3MywgNC40NTM4OSIsIFwKLSAgICAgICAgICAiMC4yNDk2ODIsIDAuOTcyNDgzLCAxLjU1MjYsIDIuMjc3ODQsIDMuMDAzMzEsIDMuNzI4MjcsIDQuNDUzNDEiLCBcCi0gICAgICAgICAgIjAuMjUzNDYzLCAwLjk3MjYyMiwgMS41NTI0NSwgMi4yNzc4NiwgMy4wMDI2MywgMy43MjgyOSwgNC40NTM0NiIsIFwKLSAgICAgICAgICAiMC4yNTgwMjcsIDAuOTcyNTMxLCAxLjU1MjQxLCAyLjI3Nzg3LCAzLjAwMjI2LCAzLjcyODI2LCA0LjQ1MzQ5Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI0ODQwOCwgMC44NzIzNjMsIDEuMzY5MjksIDEuOTkwMDksIDIuNjExMDUsIDMuMjM2OTYsIDMuODY0OCIsIFwKLSAgICAgICAgICAiMC4yNTg3MjYsIDAuODgyOTI1LCAxLjM4MDA1LCAyLjAwMTA3LCAyLjYyMTUyLCAzLjI0NzEsIDMuODc1NjgiLCBcCi0gICAgICAgICAgIjAuMjcyMzI2LCAwLjg5NjUsIDEuMzkzODIsIDIuMDE0MjgsIDIuNjM1MzksIDMuMjYwODEsIDMuODg5IiwgXAotICAgICAgICAgICIwLjI4NTI5MiwgMC45MDk4OTIsIDEuNDA3MDUsIDIuMDI3NjMsIDIuNjQ4NDgsIDMuMjczNzksIDMuOTAyMjQiLCBcCi0gICAgICAgICAgIjAuMjk4MjEsIDAuOTIyMzE0LCAxLjQyMDMsIDIuMDQwNTUsIDIuNjYyMDEsIDMuMjg3MDMsIDMuOTE1NSIsIFwKLSAgICAgICAgICAiMC4zMTg5MDksIDAuOTQzMjExLCAxLjQ0MDk3LCAyLjA2MjAyLCAyLjY4MjMxLCAzLjMwNzUxLCAzLjkzNjA4IiwgXAotICAgICAgICAgICIwLjMzNjc3MywgMC45NjEzNTEsIDEuNDU4MzEsIDIuMDc5NTgsIDIuNzAwNDMsIDMuMzI2MTMsIDMuOTUzNzMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzcwNjUyLCAxLjU0MDQzLCAyLjQ3NjEzLCAzLjY1NDU3LCA0LjgzNzIzLCA2LjAyNjQyLCA3LjIwNDk4IiwgXAotICAgICAgICAgICIwLjM3MDY1NCwgMS41Mzk3OSwgMi40NzYwMiwgMy42NTUyLCA0LjgzNjYzLCA2LjAyMTMsIDcuMjA0ODQiLCBcCi0gICAgICAgICAgIjAuMzcwNjM1LCAxLjUzOTg1LCAyLjQ3NTQxLCAzLjY1NDYyLCA0LjgzODQ5LCA2LjAyNjkzLCA3LjIwMzYyIiwgXAotICAgICAgICAgICIwLjM3MDY2MiwgMS41NDAyLCAyLjQ3NjA3LCAzLjY1NDQzLCA0LjgzOTEzLCA2LjAyNTgzLCA3LjIwMzYxIiwgXAotICAgICAgICAgICIwLjM3MDMwOSwgMS41NDAyMywgMi40NzU3NiwgMy42NTQ1NSwgNC44NDI3NSwgNi4wMjU5MiwgNy4yMDM2MSIsIFwKLSAgICAgICAgICAiMC4zNzA2ODgsIDEuNTQxODQsIDIuNDc1NDEsIDMuNjU2ODQsIDQuODM4NTUsIDYuMDI1ODEsIDcuMjAzNjkiLCBcCi0gICAgICAgICAgIjAuMzcxMjQ1LCAxLjUzOTk4LCAyLjQ3NTM4LCAzLjY1NjI3LCA0Ljg0MDEzLCA2LjAyNDQ2LCA3LjIwMzM1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIxIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTg0NjEsIDAuNDkwNjI1LCAwLjc4NzU1LCAxLjE1ODA5LCAxLjUyODk1LCAxLjg5OTQzLCAyLjI3MDA0IiwgXAotICAgICAgICAgICIwLjEyODY4OCwgMC41MDEwMjksIDAuNzk3OTcxLCAxLjE2ODUyLCAxLjUzOTM4LCAxLjkwOTg3LCAyLjI4MDU3IiwgXAotICAgICAgICAgICIwLjE0MTYyNSwgMC41MTQyMTMsIDAuODEwODMsIDEuMTgxNTQsIDEuNTUyNDIsIDEuOTIyOSwgMi4yOTM1MSIsIFwKLSAgICAgICAgICAiMC4xNTQ2NDUsIDAuNTI3Mjk5LCAwLjgyMzk2NywgMS4xOTQ2NiwgMS41NjU1NSwgMS45MzU4NiwgMi4zMDY2MiIsIFwKLSAgICAgICAgICAiMC4xNjc2ODMsIDAuNTQwMTk3LCAwLjgzNzA5LCAxLjIwNzc2LCAxLjU3ODM1LCAxLjk0OTEyLCAyLjMxOTY1IiwgXAotICAgICAgICAgICIwLjE4OTUwNCwgMC41NjE0MTcsIDAuODU4MDA3LCAxLjIyODcsIDEuNTk5MzYsIDEuOTcwMjEsIDIuMzQwNTUiLCBcCi0gICAgICAgICAgIjAuMjA4MTc1LCAwLjU3OTQ3MSwgMC44NzYzMzcsIDEuMjQ3MTMsIDEuNjE3NjEsIDEuOTg4MjYsIDIuMzU5MDYiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjQ4MjY0LCAwLjk3MjYyNywgMS41NTI3OSwgMi4yNzc5MiwgMy4wMDI2NiwgMy43MjgyNywgNC40NTM3NyIsIFwKLSAgICAgICAgICAiMC4yNDgyODcsIDAuOTcyNjE2LCAxLjU1Mjc5LCAyLjI3NzkyLCAzLjAwMjY2LCAzLjcyODI3LCA0LjQ1Mzg4IiwgXAotICAgICAgICAgICIwLjI0ODE4NSwgMC45NzI3NTYsIDEuNTUyNDQsIDIuMjc3MzIsIDMuMDAzNDYsIDMuNzI4MjYsIDQuNDUzNjUiLCBcCi0gICAgICAgICAgIjAuMjQ5MjY4LCAwLjk3MjY3MywgMS41NTI2NiwgMi4yNzc5OSwgMy4wMDM0NSwgMy43MjgyNiwgNC40NTM2NyIsIFwKLSAgICAgICAgICAiMC4yNTIzNTUsIDAuOTcyNTQ2LCAxLjU1MjQ4LCAyLjI3NzQzLCAzLjAwMzMsIDMuNzI3OTIsIDQuNDUzNTkiLCBcCi0gICAgICAgICAgIjAuMjU5NDY5LCAwLjk3MjUxMywgMS41NTIzOCwgMi4yNzc4OSwgMy4wMDI0OSwgMy43MjgzMywgNC40NTM2OSIsIFwKLSAgICAgICAgICAiMC4yNjc2NzgsIDAuOTcyNjAyLCAxLjU1MjU3LCAyLjI3NzkyLCAzLjAwMzI1LCAzLjcyNzgsIDQuNDUzNzMiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjMxOTY4LCAwLjg1OTA0NiwgMS4zNTkzMiwgMS45ODQ5MiwgMi42MDg5MywgMy4yMzQ0NywgMy44NjI5OSIsIFwKLSAgICAgICAgICAiMC4yNDMxMDYsIDAuODcwNjc0LCAxLjM3MTA0LCAxLjk5NTI5LCAyLjYxOTUyLCAzLjI0NTkzLCAzLjg3NDQiLCBcCi0gICAgICAgICAgIjAuMjU2NDYzLCAwLjg4NDI4MiwgMS4zODQ1MiwgMi4wMTAyMywgMi42MzQxOCwgMy4yNTk5LCAzLjg4ODM1IiwgXAotICAgICAgICAgICIwLjI2OTQ2OSwgMC44OTcyMzYsIDEuMzk4MTUsIDIuMDIyNzMsIDIuNjQ3NzMsIDMuMjczMjksIDMuOTAxNzIiLCBcCi0gICAgICAgICAgIjAuMjgyMTI3LCAwLjkxMDIzMSwgMS40MTA2LCAyLjAzNjQ4LCAyLjY2MDY3LCAzLjI4NjM2LCAzLjkxNDgiLCBcCi0gICAgICAgICAgIjAuMzAyNDIyLCAwLjkzMDY2OCwgMS40MzE2NywgMi4wNTY4OCwgMi42ODEyNywgMy4zMDY4MSwgMy45MzUzOCIsIFwKLSAgICAgICAgICAiMC4zMjAwODEsIDAuOTQ4NjE3LCAxLjQ0ODkyLCAyLjA3NDI5LCAyLjY5OTI2LCAzLjMyNTM4LCAzLjk1MzM2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjM1NDYxNCwgMS41MzE4OSwgMi40NzQ0NCwgMy42NTI4NSwgNC44NTE3MywgNi4wMzAyNiwgNy4yMTEwMSIsIFwKLSAgICAgICAgICAiMC4zNTQ2MTgsIDEuNTMxNjIsIDIuNDcyMjYsIDMuNjU1MTgsIDQuODM2MDYsIDYuMDMwMjIsIDcuMjEwODgiLCBcCi0gICAgICAgICAgIjAuMzU0NjIsIDEuNTMxNzYsIDIuNDcyMzUsIDMuNjY4NjEsIDQuODUxMzcsIDYuMDMwNDQsIDcuMjEwODkiLCBcCi0gICAgICAgICAgIjAuMzU0NjI1LCAxLjUzMzQzLCAyLjQ4MTg4LCAzLjY2ODUxLCA0Ljg0OTc1LCA2LjAzMDg0LCA3LjIxMDc0IiwgXAotICAgICAgICAgICIwLjM1NDM1NCwgMS41MzMzNywgMi40ODE0NSwgMy42Njg0NCwgNC44NDQ2MSwgNi4wMzA2NSwgNy4yMTA3NSIsIFwKLSAgICAgICAgICAiMC4zNTQzNDUsIDEuNTMzMzIsIDIuNDgzMTIsIDMuNjU1MywgNC44NTE2NywgNi4wMzEwNywgNy4yMTA3NCIsIFwKLSAgICAgICAgICAiMC4zNTU3ODEsIDEuNTMyMDQsIDIuNDgyOTYsIDMuNjY4NzEsIDQuODQ4ODksIDYuMDI1MDQsIDcuMjEwODQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQzAiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwOTcyMywgMC40ODA5ODMsIDAuNzc3NDgsIDEuMTQ4MjMsIDEuNTE5MzQsIDEuODg5ODIsIDIuMjYwODgiLCBcCi0gICAgICAgICAgIjAuMTIxNDQ0LCAwLjQ5MjY1OSwgMC43ODk4MTQsIDEuMTYwMDIsIDEuNTMxMzgsIDEuOTAxOTMsIDIuMjcyNjUiLCBcCi0gICAgICAgICAgIjAuMTM0NDc2LCAwLjUwNTk3OSwgMC44MDI0MjEsIDEuMTczMjIsIDEuNTQ0MDksIDEuOTE1MDQsIDIuMjg1ODEiLCBcCi0gICAgICAgICAgIjAuMTQ2OTQ2LCAwLjUxODcwNCwgMC44MTUxMDcsIDEuMTg1ODUsIDEuNTU2NzksIDEuOTI3NzUsIDIuMjk4NiIsIFwKLSAgICAgICAgICAiMC4xNTkyMTIsIDAuNTMwODIyLCAwLjgyNzY2MywgMS4xOTgzOSwgMS41NjkzLCAxLjk0MDAzLCAyLjMxMTA5IiwgXAotICAgICAgICAgICIwLjE3ODc4MiwgMC41NTA4NCwgMC44NDc1NDgsIDEuMjE4NTUsIDEuNTg5MDMsIDEuOTYwMDUsIDIuMzMwODIiLCBcCi0gICAgICAgICAgIjAuMTk2LCAwLjU2ODAyNSwgMC44NjQ5NSwgMS4yMzY2NiwgMS42MDY1OSwgMS45Nzc2OSwgMi4zNDg2MyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMzcyNTMsIDAuOTYwNDg1LCAxLjUzOTc3LCAyLjI2NDMxLCAyLjk5MDAxLCAzLjcxNDI0LCA0LjQ0MDUxIiwgXAotICAgICAgICAgICIwLjIzNzI3NSwgMC45NjAyODgsIDEuNTQwMjQsIDIuMjY0NDIsIDIuOTg5OCwgMy43MTU0LCA0LjQ0MDQ3IiwgXAotICAgICAgICAgICIwLjIzNzMwNCwgMC45NjAyMDUsIDEuNTM5NzYsIDIuMjY0NDIsIDIuOTg5OSwgMy43MTQ4MywgNC40NDA1OCIsIFwKLSAgICAgICAgICAiMC4yMzc4NywgMC45NjAzOTcsIDEuNTQwMDksIDIuMjY0NDksIDIuOTg5NjEsIDMuNzE0ODUsIDQuNDM5MjEiLCBcCi0gICAgICAgICAgIjAuMjM5NjQxLCAwLjk2MDMyMiwgMS41Mzk5NCwgMi4yNjQzNiwgMi45ODk1OSwgMy43MTQ0NCwgNC40NDA3NyIsIFwKLSAgICAgICAgICAiMC4yNDQzMTIsIDAuOTYwMzg1LCAxLjU0MDA1LCAyLjI2NDQxLCAyLjk4OTc5LCAzLjcxNTQ1LCA0LjQzOTczIiwgXAotICAgICAgICAgICIwLjI0OTg0NSwgMC45NjAzMTYsIDEuNTM5NzMsIDIuMjY0OTMsIDIuOTg5OTEsIDMuNzE0NzIsIDQuNDM5NjciKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjIwNTI1LCAwLjg0NDQ2MSwgMS4zNDE1OCwgMS45NjIzOCwgMi41ODMyMSwgMy4yMDU3NCwgMy44MzMzNiIsIFwKLSAgICAgICAgICAiMC4yMjk4MjEsIDAuODUzOTU1LCAxLjM1MTEsIDEuOTcyMzYsIDIuNTkyMSwgMy4yMTQ4OCwgMy44NDMzNyIsIFwKLSAgICAgICAgICAiMC4yNDI3MTQsIDAuODY2NjQzLCAxLjM2NDE4LCAxLjk4NDgxLCAyLjYwNTU2LCAzLjIyNzYzLCAzLjg1NTgiLCBcCi0gICAgICAgICAgIjAuMjU0MzE2LCAwLjg3ODU3NiwgMS4zNzU4OCwgMS45OTY4LCAyLjYxNzUxLCAzLjIzOTkzLCAzLjg2ODA2IiwgXAotICAgICAgICAgICIwLjI2NjU2NiwgMC44OTA5NjEsIDEuMzg4MjMsIDIuMDA5MDMsIDIuNjMwMDcsIDMuMjUxOCwgMy44ODA0IiwgXAotICAgICAgICAgICIwLjI4NjI0OCwgMC45MTIyMDQsIDEuNDA5MjQsIDIuMDI5MzcsIDIuNjQ5NTMsIDMuMjcxODgsIDMuODk5OTciLCBcCi0gICAgICAgICAgIjAuMzAzMzk1LCAwLjkyNzY0NiwgMS40MjQ5NywgMi4wNDU2OCwgMi42NjcyNSwgMy4yODg3NywgMy45MTc0MiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zNzAzOTQsIDEuNTQwNDksIDIuNDc0NjcsIDMuNjUyMSwgNC44MzU0NCwgNi4wMjA2NCwgNy4yMDAwNiIsIFwKLSAgICAgICAgICAiMC4zNzA2OTcsIDEuNTQwNDEsIDIuNDczOTcsIDMuNjUyNDUsIDQuODM1MjUsIDYuMDIyNzQsIDcuMjAwNTgiLCBcCi0gICAgICAgICAgIjAuMzcwNTc3LCAxLjU0MDYsIDIuNDc0NTEsIDMuNjUxNjYsIDQuODM4MzQsIDYuMDIzNjIsIDcuMjAwMzkiLCBcCi0gICAgICAgICAgIjAuMzcwMjY5LCAxLjU0MTQxLCAyLjQ3NDcyLCAzLjY1MjE1LCA0LjgzNDkzLCA2LjAyMzAxLCA3LjIwMDQ3IiwgXAotICAgICAgICAgICIwLjM2OTQ1MywgMS41NDAwNCwgMi40NzQ1MSwgMy42NTUxOSwgNC44MzY3NiwgNi4wMjIzMywgNy4yMDAzOCIsIFwKLSAgICAgICAgICAiMC4zNzA4NTYsIDEuNTQwMTUsIDIuNDc0MjMsIDMuNjUyNDEsIDQuODM5ODEsIDYuMDE5OTIsIDcuMjAwMjEiLCBcCi0gICAgICAgICAgIjAuMzczOCwgMS41NDE3OSwgMi40NzM4OSwgMy42NTI1OSwgNC44MzgwOSwgNi4wMjIyMSwgNy4yMDA0NiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDMSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTAzNjk4LCAwLjQ3NDk3NiwgMC43NzE0NDEsIDEuMTQyMjEsIDEuNTEzMDUsIDEuODg0MDEsIDIuMjU0OTQiLCBcCi0gICAgICAgICAgIjAuMTE0MDYzLCAwLjQ4NTQ4NCwgMC43ODI0NzMsIDEuMTUyODYsIDEuNTIzNzEsIDEuODk0NjYsIDIuMjY1MjUiLCBcCi0gICAgICAgICAgIjAuMTI2OTU0LCAwLjQ5ODU5LCAwLjc5NTExLCAxLjE2NTksIDEuNTM2NzUsIDEuOTA3NzIsIDIuMjc4NjYiLCBcCi0gICAgICAgICAgIjAuMTQwMTE1LCAwLjUxMTU5OSwgMC44MDg4MDIsIDEuMTc5MTEsIDEuNTUwMDYsIDEuOTIwNzMsIDIuMjkxODgiLCBcCi0gICAgICAgICAgIjAuMTUzMDI0LCAwLjUyNDYxNSwgMC44MjEzODUsIDEuMTkyMTYsIDEuNTYzMDEsIDEuOTMzOTgsIDIuMzA0OTIiLCBcCi0gICAgICAgICAgIjAuMTc0ODkyLCAwLjU0NTg4MywgMC44NDIyNzEsIDEuMjEzMTQsIDEuNTgzOTQsIDEuOTU1LCAyLjMyNTgiLCBcCi0gICAgICAgICAgIjAuMTkzNTU0LCAwLjU2MzkzNCwgMC44NjA2NzksIDEuMjMyMzIsIDEuNjAyNDUsIDEuOTczMTMsIDIuMzQ0MjEiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjM3MjY3LCAwLjk2MDU1NywgMS41Mzk3NiwgMi4yNjQ0OSwgMi45ODk1NSwgMy43MTQzMiwgNC40Mzk3OSIsIFwKLSAgICAgICAgICAiMC4yMzcyNTYsIDAuOTYwMzkzLCAxLjUzOTkzLCAyLjI2NDQzLCAyLjk4OTI2LCAzLjcxNDQxLCA0LjQzOTIxIiwgXAotICAgICAgICAgICIwLjIzNzI1NSwgMC45NjA0MiwgMS41Mzk3NSwgMi4yNjQ1LCAyLjk4OTI1LCAzLjcxNDE4LCA0LjQzOTc4IiwgXAotICAgICAgICAgICIwLjIzOTE4NCwgMC45NjAzMiwgMS41Mzk5NiwgMi4yNjQ0OSwgMi45ODk2MiwgMy43MTQ4NywgNC40MzkyMSIsIFwKLSAgICAgICAgICAiMC4yNDMxMjQsIDAuOTYwMzEsIDEuNTM5NzYsIDIuMjY0MzIsIDIuOTg5MjUsIDMuNzE0MTcsIDQuNDM5NzgiLCBcCi0gICAgICAgICAgIjAuMjUxMzA5LCAwLjk2MDM4NywgMS41Mzk5OCwgMi4yNjUsIDIuOTg5ODIsIDMuNzE1NDYsIDQuNDQwNjUiLCBcCi0gICAgICAgICAgIjAuMjYwNDM1LCAwLjk2MDQ0OCwgMS41Mzk3NCwgMi4yNjQ5MiwgMi45ODk3OCwgMy43MTUyOCwgNC40NDA3NyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMDY4MDUsIDAuODM0MTgxLCAxLjMzNDUzLCAxLjk1OTMzLCAyLjU4NDMxLCAzLjIxMDE1LCAzLjgzODE3IiwgXAotICAgICAgICAgICIwLjIxNzAxLCAwLjg0NDYxOCwgMS4zNDQ3NCwgMS45Njk2MywgMi41OTQ4MSwgMy4yMjAxNywgMy44NDg4NiIsIFwKLSAgICAgICAgICAiMC4yMjkxMywgMC44NTc1ODUsIDEuMzU3OTEsIDEuOTgyOTYsIDIuNjA3NiwgMy4yMzI4MywgMy44NjE0MSIsIFwKLSAgICAgICAgICAiMC4yNDEyODQsIDAuODY5NDU2LCAxLjM3MDI2LCAxLjk5NDk2LCAyLjYxOTg2LCAzLjI0NTY5LCAzLjg3MzQ2IiwgXAotICAgICAgICAgICIwLjI1MzM4LCAwLjg4MTcxMSwgMS4zODIzNSwgMi4wMDcyOCwgMi42MzIzNywgMy4yNTc1LCAzLjg4NjExIiwgXAotICAgICAgICAgICIwLjI3MjY5NSwgMC45MDI4MjgsIDEuNDAxNjYsIDIuMDI3NDMsIDIuNjUyMjUsIDMuMjc3NzMsIDMuOTA1OSIsIFwKLSAgICAgICAgICAiMC4yODk3NDgsIDAuOTE4Mjc2LCAxLjQxODk2LCAyLjA0NDY4LCAyLjY2OTYyLCAzLjI5NDQ0LCAzLjkyMzEyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjM1NzA4OCwgMS41MzUyMywgMi40NzY1LCAzLjY2ODM2LCA0Ljg0NDY1LCA2LjAyODQsIDcuMjExMjgiLCBcCi0gICAgICAgICAgIjAuMzU2ODY2LCAxLjUzNDI4LCAyLjQ3NjExLCAzLjY1NTQxLCA0Ljg0NTA5LCA2LjAzMDg4LCA3LjIxMDgxIiwgXAotICAgICAgICAgICIwLjM1Njg1MSwgMS41MzQ1MSwgMi40NzYwMiwgMy42Njc3LCA0Ljg1MTcsIDYuMDMwMDgsIDcuMjEwNzMiLCBcCi0gICAgICAgICAgIjAuMzU2Mzk0LCAxLjUzNTE1LCAyLjQ3NTQzLCAzLjY2ODI2LCA0Ljg0NTI3LCA2LjAyOTQ3LCA3LjIxMDU0IiwgXAotICAgICAgICAgICIwLjM1NTY2MiwgMS41MzQyOSwgMi40NzYzOSwgMy42NTU1NywgNC44NTE4MiwgNi4wMzA1OSwgNy4yMTA3NiIsIFwKLSAgICAgICAgICAiMC4zNTc4NSwgMS41MzQzMSwgMi40NzU0NCwgMy42Njg2MywgNC44NDM0NiwgNi4wMjcwNywgNy4yMTAxNyIsIFwKLSAgICAgICAgICAiMC4zNjE4NTcsIDEuNTM2MjIsIDIuNDc1OTIsIDMuNjU2MjcsIDQuODQwMjQsIDYuMDMwMjEsIDcuMjEwODMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA3ODgsIDAuMDA3ODc3LCAwLjAwNzg3NiwgMC4wMDc4NzIsIDAuMDA3ODY4LCAwLjAwNzg2MywgMC4wMDc4NjEiLCBcCi0gICAgICAgICAgIjAuMDA3ODU5LCAwLjAwNzg1NywgMC4wMDc4NTUsIDAuMDA3ODUxLCAwLjAwNzg0NywgMC4wMDc4NDIsIDAuMDA3ODM4IiwgXAotICAgICAgICAgICIwLjAwNzg1LCAwLjAwNzg0OSwgMC4wMDc4NDgsIDAuMDA3ODQ0LCAwLjAwNzgzOCwgMC4wMDc4MzUsIDAuMDA3ODMxIiwgXAotICAgICAgICAgICIwLjAwNzg0NSwgMC4wMDc4NDUsIDAuMDA3ODQzLCAwLjAwNzgzOCwgMC4wMDc4MzUsIDAuMDA3ODMyLCAwLjAwNzgyNyIsIFwKLSAgICAgICAgICAiMC4wMDc4MzksIDAuMDA3ODQ0LCAwLjAwNzg0MSwgMC4wMDc4MzgsIDAuMDA3ODM2LCAwLjAwNzgzMiwgMC4wMDc4MjciLCBcCi0gICAgICAgICAgIjAuMDA3ODM1LCAwLjAwNzg0MSwgMC4wMDc4MzksIDAuMDA3ODM3LCAwLjAwNzgzMSwgMC4wMDc4MjgsIDAuMDA3ODI0IiwgXAotICAgICAgICAgICIwLjAwNzgzMSwgMC4wMDc4MzgsIDAuMDA3ODM2LCAwLjAwNzgzNCwgMC4wMDc4MzMsIDAuMDA3ODI4LCAwLjAwNzgyMiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzIwMywgMC4wMDMyMDEsIDAuMDAzMjAyLCAwLjAwMzE5NywgMC4wMDMxODgsIDAuMDAzMTksIDAuMDAzMTg3IiwgXAotICAgICAgICAgICIwLjAwMzE3MiwgMC4wMDMxNzYsIDAuMDAzMTc1LCAwLjAwMzE2OSwgMC4wMDMxNjcsIDAuMDAzMTYzLCAwLjAwMzE2MSIsIFwKLSAgICAgICAgICAiMC4wMDMxNTgsIDAuMDAzMTY4LCAwLjAwMzE2NywgMC4wMDMxNjQsIDAuMDAzMTYxLCAwLjAwMzE1NywgMC4wMDMxNTUiLCBcCi0gICAgICAgICAgIjAuMDAzMTQ5LCAwLjAwMzE2MywgMC4wMDMxNjQsIDAuMDAzMTYyLCAwLjAwMzE1OSwgMC4wMDMxNTUsIDAuMDAzMTUzIiwgXAotICAgICAgICAgICIwLjAwMzE0LCAwLjAwMzE1OSwgMC4wMDMxNjEsIDAuMDAzMTYsIDAuMDAzMTU3LCAwLjAwMzE1NCwgMC4wMDMxNTEiLCBcCi0gICAgICAgICAgIjAuMDAzMTI5LCAwLjAwMzE1NSwgMC4wMDMxNTcsIDAuMDAzMTU3LCAwLjAwMzE1NSwgMC4wMDMxNTIsIDAuMDAzMTQ5IiwgXAotICAgICAgICAgICIwLjAwMzEyNCwgMC4wMDMxNSwgMC4wMDMxNTUsIDAuMDAzMTU1LCAwLjAwMzE1MywgMC4wMDMxNSwgMC4wMDMxNDgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA3MzcsIDAuMDA3MzY4LCAwLjAwNzM2NCwgMC4wMDczNiwgMC4wMDczNTgsIDAuMDA3MzUyLCAwLjAwNzM0OSIsIFwKLSAgICAgICAgICAiMC4wMDczNDcsIDAuMDA3MzQ2LCAwLjAwNzM0MiwgMC4wMDczMzgsIDAuMDA3MzM0LCAwLjAwNzMzMywgMC4wMDczMjYiLCBcCi0gICAgICAgICAgIjAuMDA3MzMzLCAwLjAwNzMzNSwgMC4wMDczMzMsIDAuMDA3MzMsIDAuMDA3MzI2LCAwLjAwNzMyMywgMC4wMDczMTciLCBcCi0gICAgICAgICAgIjAuMDA3MzIyLCAwLjAwNzMzMiwgMC4wMDczMywgMC4wMDczMjcsIDAuMDA3MzIyLCAwLjAwNzMxOSwgMC4wMDczMTUiLCBcCi0gICAgICAgICAgIjAuMDA3MzE0LCAwLjAwNzMyNywgMC4wMDczMjYsIDAuMDA3MzI0LCAwLjAwNzMyLCAwLjAwNzMxNywgMC4wMDczMTMiLCBcCi0gICAgICAgICAgIjAuMDA3MzA5LCAwLjAwNzMyMywgMC4wMDczMjIsIDAuMDA3MzIxLCAwLjAwNzMxOCwgMC4wMDczMTQsIDAuMDA3MzExIiwgXAotICAgICAgICAgICIwLjAwNzMwMywgMC4wMDczMTgsIDAuMDA3MzIsIDAuMDA3MzE4LCAwLjAwNzMxNSwgMC4wMDczMTQsIDAuMDA3MzA5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyNDc3LCAwLjAwMjQ4LCAwLjAwMjQ3OSwgMC4wMDI0NzgsIDAuMDAyNDc1LCAwLjAwMjQ3MywgMC4wMDI0NzEiLCBcCi0gICAgICAgICAgIjAuMDAyNDgsIDAuMDAyNDk4LCAwLjAwMjUwMSwgMC4wMDI0OTgsIDAuMDAyNDk3LCAwLjAwMjQ5NSwgMC4wMDI0OTQiLCBcCi0gICAgICAgICAgIjAuMDAyNDY1LCAwLjAwMjQ5NywgMC4wMDI1MDEsIDAuMDAyNTAxLCAwLjAwMjUsIDAuMDAyNDk4LCAwLjAwMjQ5NyIsIFwKLSAgICAgICAgICAiMC4wMDI0NDYsIDAuMDAyNDkyLCAwLjAwMjQ5OCwgMC4wMDI0OTksIDAuMDAyNSwgMC4wMDI0OTksIDAuMDAyNDk3IiwgXAotICAgICAgICAgICIwLjAwMjQzMSwgMC4wMDI0ODYsIDAuMDAyNDk0LCAwLjAwMjQ5NywgMC4wMDI0OTgsIDAuMDAyNDk3LCAwLjAwMjQ5NiIsIFwKLSAgICAgICAgICAiMC4wMDI0MDksIDAuMDAyNDc3LCAwLjAwMjQ4OCwgMC4wMDI0OTQsIDAuMDAyNDk1LCAwLjAwMjQ5NSwgMC4wMDI0OTQiLCBcCi0gICAgICAgICAgIjAuMDAyMzk1LCAwLjAwMjQ3LCAwLjAwMjQ4MywgMC4wMDI0OSwgMC4wMDI0OTIsIDAuMDAyNDkzLCAwLjAwMjQ5MiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDYzODksIDAuMDA2Mzg3LCAwLjAwNjM4NSwgMC4wMDYzODMsIDAuMDA2MzgxLCAwLjAwNjM3OCwgMC4wMDYzNzciLCBcCi0gICAgICAgICAgIjAuMDA2Mzg1LCAwLjAwNjM4NywgMC4wMDYzODUsIDAuMDA2Mzg0LCAwLjAwNjM4MSwgMC4wMDYzNzksIDAuMDA2Mzc3IiwgXAotICAgICAgICAgICIwLjAwNjM3NywgMC4wMDYzODMsIDAuMDA2MzgyLCAwLjAwNjM4LCAwLjAwNjM3OSwgMC4wMDYzNzcsIDAuMDA2MzczIiwgXAotICAgICAgICAgICIwLjAwNjM2OSwgMC4wMDYzODIsIDAuMDA2MzgzLCAwLjAwNjM4LCAwLjAwNjM3OSwgMC4wMDYzNzgsIDAuMDA2Mzc2IiwgXAotICAgICAgICAgICIwLjAwNjM2MywgMC4wMDYzOCwgMC4wMDYzODEsIDAuMDA2MzgsIDAuMDA2Mzc4LCAwLjAwNjM3NywgMC4wMDYzNzYiLCBcCi0gICAgICAgICAgIjAuMDA2MzUzLCAwLjAwNjM3NiwgMC4wMDYzNzgsIDAuMDA2Mzc4LCAwLjAwNjM3NywgMC4wMDYzNzQsIDAuMDA2MzczIiwgXAotICAgICAgICAgICIwLjAwNjM0NiwgMC4wMDYzNzQsIDAuMDA2Mzc4LCAwLjAwNjM3OCwgMC4wMDYzNzcsIDAuMDA2Mzc2LCAwLjAwNjM3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzIwNiwgMC4wMDMyMDMsIDAuMDAzMiwgMC4wMDMxOTcsIDAuMDAzMTk0LCAwLjAwMzE5LCAwLjAwMzE4OCIsIFwKLSAgICAgICAgICAiMC4wMDMxNzMsIDAuMDAzMTc1LCAwLjAwMzE3NiwgMC4wMDMxNzEsIDAuMDAzMTY1LCAwLjAwMzE2NSwgMC4wMDMxNjIiLCBcCi0gICAgICAgICAgIjAuMDAzMTU5LCAwLjAwMzE2NywgMC4wMDMxNjgsIDAuMDAzMTY2LCAwLjAwMzE2LCAwLjAwMzE1NywgMC4wMDMxNTciLCBcCi0gICAgICAgICAgIjAuMDAzMTUsIDAuMDAzMTYyLCAwLjAwMzE2MywgMC4wMDMxNjEsIDAuMDAzMTU4LCAwLjAwMzE1NSwgMC4wMDMxNTMiLCBcCi0gICAgICAgICAgIjAuMDAzMTQxLCAwLjAwMzE2LCAwLjAwMzE2LCAwLjAwMzE2LCAwLjAwMzE1NywgMC4wMDMxNTUsIDAuMDAzMTUyIiwgXAotICAgICAgICAgICIwLjAwMzEzLCAwLjAwMzE1NCwgMC4wMDMxNTgsIDAuMDAzMTU2LCAwLjAwMzE1NSwgMC4wMDMxNTMsIDAuMDAzMTQ5IiwgXAotICAgICAgICAgICIwLjAwMzEyMiwgMC4wMDMxNSwgMC4wMDMxNTQsIDAuMDAzMTU1LCAwLjAwMzE1MywgMC4wMDMxNTEsIDAuMDAzMTQ4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNTg2NSwgMC4wMDU4NjUsIDAuMDA1ODYzLCAwLjAwNTg2MSwgMC4wMDU4NTgsIDAuMDA1ODU2LCAwLjAwNTg1NSIsIFwKLSAgICAgICAgICAiMC4wMDU4NTcsIDAuMDA1ODYzLCAwLjAwNTg2MiwgMC4wMDU4NiwgMC4wMDU4NTgsIDAuMDA1ODU3LCAwLjAwNTg1NCIsIFwKLSAgICAgICAgICAiMC4wMDU4NDMsIDAuMDA1ODU4LCAwLjAwNTg2LCAwLjAwNTg1OCwgMC4wMDU4NTcsIDAuMDA1ODU2LCAwLjAwNTg1MyIsIFwKLSAgICAgICAgICAiMC4wMDU4MzQsIDAuMDA1ODU3LCAwLjAwNTg1NywgMC4wMDU4NTgsIDAuMDA1ODU2LCAwLjAwNTg1NCwgMC4wMDU4NTIiLCBcCi0gICAgICAgICAgIjAuMDA1ODI1LCAwLjAwNTg1NCwgMC4wMDU4NTUsIDAuMDA1ODU1LCAwLjAwNTg1NSwgMC4wMDU4NTIsIDAuMDA1ODUxIiwgXAotICAgICAgICAgICIwLjAwNTgxNCwgMC4wMDU4NDgsIDAuMDA1ODUzLCAwLjAwNTg1MywgMC4wMDU4NTMsIDAuMDA1ODUxLCAwLjAwNTg1IiwgXAotICAgICAgICAgICIwLjAwNTgwNywgMC4wMDU4NDYsIDAuMDA1ODUsIDAuMDA1ODUxLCAwLjAwNTg1MiwgMC4wMDU4NTEsIDAuMDA1ODQ4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyNDMxLCAwLjAwMjQzNCwgMC4wMDI0MzMsIDAuMDAyNDMxLCAwLjAwMjQzLCAwLjAwMjQyOCwgMC4wMDI0MjYiLCBcCi0gICAgICAgICAgIjAuMDAyNDM1LCAwLjAwMjQ1NCwgMC4wMDI0NTYsIDAuMDAyNDU0LCAwLjAwMjQ1MiwgMC4wMDI0NTEsIDAuMDAyNDQ5IiwgXAotICAgICAgICAgICIwLjAwMjQxOCwgMC4wMDI0NTIsIDAuMDAyNDU2LCAwLjAwMjQ1NywgMC4wMDI0NTYsIDAuMDAyNDU0LCAwLjAwMjQ1MyIsIFwKLSAgICAgICAgICAiMC4wMDI0MDIsIDAuMDAyNDQ3LCAwLjAwMjQ1MiwgMC4wMDI0NTQsIDAuMDAyNDU0LCAwLjAwMjQ1MywgMC4wMDI0NTMiLCBcCi0gICAgICAgICAgIjAuMDAyMzg2LCAwLjAwMjQ0MiwgMC4wMDI0NDksIDAuMDAyNDUyLCAwLjAwMjQ1MywgMC4wMDI0NTIsIDAuMDAyNDUyIiwgXAotICAgICAgICAgICIwLjAwMjM2NSwgMC4wMDI0MzIsIDAuMDAyNDQzLCAwLjAwMjQ0OCwgMC4wMDI0NSwgMC4wMDI0NTEsIDAuMDAyNDQ5IiwgXAotICAgICAgICAgICIwLjAwMjM0OCwgMC4wMDI0MjQsIDAuMDAyNDM4LCAwLjAwMjQ0NCwgMC4wMDI0NDcsIDAuMDAyNDQ4LCAwLjAwMjQ0OCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQ2ODUsIDAuMDA0Njg4LCAwLjAwNDY4OCwgMC4wMDQ2ODgsIDAuMDA0Njg4LCAwLjAwNDY4OCwgMC4wMDQ2ODgiLCBcCi0gICAgICAgICAgIjAuMDA0Njk0LCAwLjAwNDcwNiwgMC4wMDQ3MDgsIDAuMDA0NzA5LCAwLjAwNDcwOSwgMC4wMDQ3MDksIDAuMDA0NzEiLCBcCi0gICAgICAgICAgIjAuMDA0Njg3LCAwLjAwNDcxLCAwLjAwNDcxMywgMC4wMDQ3MTUsIDAuMDA0NzE2LCAwLjAwNDcxNSwgMC4wMDQ3MTYiLCBcCi0gICAgICAgICAgIjAuMDA0Njc5LCAwLjAwNDcxLCAwLjAwNDcxNCwgMC4wMDQ3MTYsIDAuMDA0NzE3LCAwLjAwNDcxOCwgMC4wMDQ3MTciLCBcCi0gICAgICAgICAgIjAuMDA0NjcsIDAuMDA0NzA4LCAwLjAwNDcxMywgMC4wMDQ3MTYsIDAuMDA0NzE3LCAwLjAwNDcxOSwgMC4wMDQ3MTkiLCBcCi0gICAgICAgICAgIjAuMDA0NjU5LCAwLjAwNDcwNSwgMC4wMDQ3MTEsIDAuMDA0NzE1LCAwLjAwNDcxNSwgMC4wMDQ3MTgsIDAuMDA0NzE4IiwgXAotICAgICAgICAgICIwLjAwNDY0OSwgMC4wMDQ3MDEsIDAuMDA0NzEsIDAuMDA0NzE0LCAwLjAwNDcxNiwgMC4wMDQ3MTgsIDAuMDA0NzE5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzMjAyLCAwLjAwMzIwMSwgMC4wMDMxOTgsIDAuMDAzMTkyLCAwLjAwMzE5MSwgMC4wMDMxODgsIDAuMDAzMTg0IiwgXAotICAgICAgICAgICIwLjAwMzE2OCwgMC4wMDMxNzMsIDAuMDAzMTczLCAwLjAwMzE3LCAwLjAwMzE2NiwgMC4wMDMxNjMsIDAuMDAzMTYxIiwgXAotICAgICAgICAgICIwLjAwMzE1MywgMC4wMDMxNjUsIDAuMDAzMTY2LCAwLjAwMzE2NSwgMC4wMDMxNiwgMC4wMDMxNTYsIDAuMDAzMTUzIiwgXAotICAgICAgICAgICIwLjAwMzE0MSwgMC4wMDMxNiwgMC4wMDMxNjEsIDAuMDAzMTU5LCAwLjAwMzE1NiwgMC4wMDMxNTQsIDAuMDAzMTUyIiwgXAotICAgICAgICAgICIwLjAwMzEzMywgMC4wMDMxNTUsIDAuMDAzMTU3LCAwLjAwMzE1NywgMC4wMDMxNTQsIDAuMDAzMTUyLCAwLjAwMzE0OSIsIFwKLSAgICAgICAgICAiMC4wMDMxMjIsIDAuMDAzMTUyLCAwLjAwMzE1NSwgMC4wMDMxNTYsIDAuMDAzMTU0LCAwLjAwMzE1MiwgMC4wMDMxNDciLCBcCi0gICAgICAgICAgIjAuMDAzMTE1LCAwLjAwMzE0NiwgMC4wMDMxNTEsIDAuMDAzMTUyLCAwLjAwMzE1MSwgMC4wMDMxNDksIDAuMDAzMTQ2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQzEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDE4NSwgMC4wMDQxOSwgMC4wMDQxOSwgMC4wMDQxOSwgMC4wMDQxOSwgMC4wMDQxOSwgMC4wMDQxOSIsIFwKLSAgICAgICAgICAiMC4wMDQxODcsIDAuMDA0MjA3LCAwLjAwNDIwOCwgMC4wMDQyMSwgMC4wMDQyMSwgMC4wMDQyMSwgMC4wMDQyMSIsIFwKLSAgICAgICAgICAiMC4wMDQxNzcsIDAuMDA0MjA5LCAwLjAwNDIxMywgMC4wMDQyMTUsIDAuMDA0MjE2LCAwLjAwNDIxNywgMC4wMDQyMTciLCBcCi0gICAgICAgICAgIjAuMDA0MTY0LCAwLjAwNDIwNiwgMC4wMDQyMTEsIDAuMDA0MjE2LCAwLjAwNDIxNiwgMC4wMDQyMTYsIDAuMDA0MjE3IiwgXAotICAgICAgICAgICIwLjAwNDE1NCwgMC4wMDQyMDUsIDAuMDA0MjEyLCAwLjAwNDIxNiwgMC4wMDQyMTcsIDAuMDA0MjE4LCAwLjAwNDIxOSIsIFwKLSAgICAgICAgICAiMC4wMDQxNCwgMC4wMDQxOTksIDAuMDA0MjA5LCAwLjAwNDIxNCwgMC4wMDQyMTYsIDAuMDA0MjE4LCAwLjAwNDIxOSIsIFwKLSAgICAgICAgICAiMC4wMDQxMzEsIDAuMDA0MTk2LCAwLjAwNDIwNiwgMC4wMDQyMTIsIDAuMDA0MjE1LCAwLjAwNDIxNywgMC4wMDQyMTgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI2MTcsIDAuMDAyNjIsIDAuMDAyNjE5LCAwLjAwMjYxNSwgMC4wMDI2MTUsIDAuMDAyNjEzLCAwLjAwMjYxIiwgXAotICAgICAgICAgICIwLjAwMjYxOCwgMC4wMDI2MzksIDAuMDAyNjM5LCAwLjAwMjY0MSwgMC4wMDI2MzgsIDAuMDAyNjM2LCAwLjAwMjYzNCIsIFwKLSAgICAgICAgICAiMC4wMDI1OTksIDAuMDAyNjM1LCAwLjAwMjYzOSwgMC4wMDI2NDEsIDAuMDAyNjM5LCAwLjAwMjYzOCwgMC4wMDI2MzYiLCBcCi0gICAgICAgICAgIjAuMDAyNTc5LCAwLjAwMjYzMSwgMC4wMDI2MzgsIDAuMDAyNjM5LCAwLjAwMjYzOSwgMC4wMDI2MzgsIDAuMDAyNjM3IiwgXAotICAgICAgICAgICIwLjAwMjU2MywgMC4wMDI2MjUsIDAuMDAyNjMzLCAwLjAwMjYzNiwgMC4wMDI2MzcsIDAuMDAyNjM3LCAwLjAwMjYzNiIsIFwKLSAgICAgICAgICAiMC4wMDI1NDUsIDAuMDAyNjE2LCAwLjAwMjYyOCwgMC4wMDI2MzQsIDAuMDAyNjM2LCAwLjAwMjYzNSwgMC4wMDI2MzQiLCBcCi0gICAgICAgICAgIjAuMDAyNTMsIDAuMDAyNjA4LCAwLjAwMjYyMiwgMC4wMDI2MjksIDAuMDAyNjMyLCAwLjAwMjYzMiwgMC4wMDI2MzIiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogT0FJMjIyWDQgKgotICogLS0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKE9BSTIyMlg0KSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuNTc0NzA4OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAzMTQ4NjY7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAzMTM4ODM7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAzMTQ4NjY7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxMjI1LCAwLjAwMTIyMywgMC4wMDEyMjMsIDAuMDAxMjIzLCAwLjAwMTIyMywgMC4wMDEyMjIsIDAuMDAxMjIyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxMjI2LCAwLjAwMTIyOCwgMC4wMDEyMjgsIDAuMDAxMjI3LCAwLjAwMTIyNywgMC4wMDEyMjksIDAuMDAxMjI5Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihBMSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAzMDQ0NjM7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAzMDQ0NjM7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAzMDMwMjI7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxMjI1LCAwLjAwMTIyNCwgMC4wMDEyMjQsIDAuMDAxMjI0LCAwLjAwMTIyNCwgMC4wMDEyMjMsIDAuMDAxMjIzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxMjI2LCAwLjAwMTIyNywgMC4wMDEyMjcsIDAuMDAxMjI3LCAwLjAwMTIyNiwgMC4wMDEyMjgsIDAuMDAxMjI4Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAzMDc2MzE7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAzMDYyMTE7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAzMDc2MzE7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxMjI1LCAwLjAwMTIyMiwgMC4wMDEyMjMsIDAuMDAxMjIzLCAwLjAwMTIyMywgMC4wMDEyMjMsIDAuMDAxMjIyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxMjI2LCAwLjAwMTIyOCwgMC4wMDEyMjcsIDAuMDAxMjI3LCAwLjAwMTIyOSwgMC4wMDEyMjksIDAuMDAxMjI5Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCMSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAyOTE2NDQ7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAyOTE2NDQ7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAyOTA0NTQ7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxMjI1LCAwLjAwMTIyNSwgMC4wMDEyMjQsIDAuMDAxMjI0LCAwLjAwMTIyMywgMC4wMDEyMjMsIDAuMDAxMjIzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxMjI2LCAwLjAwMTIyNywgMC4wMDEyMjYsIDAuMDAxMjI2LCAwLjAwMTIyOSwgMC4wMDEyMjgsIDAuMDAxMjI4Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihDMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAzMTg5NDc7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAzMTY0Mzg7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAzMTg5NDc7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxMDM4LCAwLjAwMTA0LCAwLjAwMTA0MSwgMC4wMDEwNDEsIDAuMDAxMDM4LCAwLjAwMTAzOSwgMC4wMDEwMzkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDEzOSwgMC4wMDEzOTEsIDAuMDAxMzkxLCAwLjAwMTM5NSwgMC4wMDEzOTMsIDAuMDAxMzkzLCAwLjAwMTM5MyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQzEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMzA1ODI7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAzMDU3MjU7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAzMDU4MjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDEwMzYsIDAuMDAxMDM4LCAwLjAwMTAzOSwgMC4wMDEwMzksIDAuMDAxMDM4LCAwLjAwMTAzNywgMC4wMDEwMzgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDEzODksIDAuMDAxMzksIDAuMDAxMzksIDAuMDAxMzksIDAuMDAxMzkyLCAwLjAwMTM5MSwgMC4wMDEzOTIiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4xNzg0MDk7Ci0gICAgZnVuY3Rpb24gOiAiKCEoKChDMCtDMSkgKEEwK0ExKSkgKEIwK0IxKSkpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTY3MTksIDAuMzYxNzQ3LCAwLjYyMzM5OSwgMC44MTAwNjUsIDEuMTA3OSwgMS4zNjg1NCwgMS43NDEyNyIsIFwKLSAgICAgICAgICAiMC4xMDgxODMsIDAuMzczMjUsIDAuNjM0OTU3LCAwLjgyMTMzNSwgMS4xMTkzOCwgMS4zODAwMSwgMS43NTI3NSIsIFwKLSAgICAgICAgICAiMC4xMjEyMDgsIDAuMzg2MjU4LCAwLjY0Nzg5OCwgMC44MzQ0ODMsIDEuMTMyNzQsIDEuMzkzMTQsIDEuNzY2MDQiLCBcCi0gICAgICAgICAgIjAuMTMzNjA0LCAwLjM5ODgzNSwgMC42NjA0NzUsIDAuODQ3MDM1LCAxLjE0NTMsIDEuNDA1NywgMS43Nzg1NiIsIFwKLSAgICAgICAgICAiMC4xNDYwMjMsIDAuNDExMzIyLCAwLjY3MzAxMiwgMC44NTk1MjMsIDEuMTU3OTIsIDEuNDE4NTMsIDEuNzkwNDQiLCBcCi0gICAgICAgICAgIjAuMTY1NzE0LCAwLjQzMTE0OSwgMC42OTI5MjYsIDAuODc5NDYsIDEuMTc3MzksIDEuNDM4MTIsIDEuODEwNjkiLCBcCi0gICAgICAgICAgIjAuMTgzMDYxLCAwLjQ0ODUyLCAwLjcxMDI5MywgMC44OTY3NzQsIDEuMTk0OTYsIDEuNDU1ODcsIDEuODI3NjQiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xODYyODcsIDAuNjk0OTk1LCAxLjIwNDk0LCAxLjU2OTI4LCAyLjE1MjQ3LCAyLjY2MTgzLCAzLjM5MTA1IiwgXAotICAgICAgICAgICIwLjE4NjIyMiwgMC42OTQ5ODksIDEuMjA1MjEsIDEuNTY5MjEsIDIuMTUxOTYsIDIuNjYyNjcsIDMuMzkwOTQiLCBcCi0gICAgICAgICAgIjAuMTg2MDc5LCAwLjY5NDk5NiwgMS4yMDUwNSwgMS41Njk2LCAyLjE1MjM4LCAyLjY2MTgyLCAzLjM5MDkxIiwgXAotICAgICAgICAgICIwLjE4Njg2NiwgMC42OTUwODUsIDEuMjA0OTYsIDEuNTY5MjMsIDIuMTUyNCwgMi42NjE4MywgMy4zOTA5NCIsIFwKLSAgICAgICAgICAiMC4xODg4MTEsIDAuNjk1MDA4LCAxLjIwNDc4LCAxLjU2OTM5LCAyLjE1MjUsIDIuNjYyMzksIDMuMzkwNiIsIFwKLSAgICAgICAgICAiMC4xOTM2NTMsIDAuNjk0ODU0LCAxLjIwNTE4LCAxLjU2OTQ4LCAyLjE1Mjc4LCAyLjY2MTgyLCAzLjM5MDQ0IiwgXAotICAgICAgICAgICIwLjE5OTA5MiwgMC42OTUyMzksIDEuMjA0NzIsIDEuNTY5MzEsIDIuMTUyMzgsIDIuNjYyMywgMy4zOTA0OSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE5MzU3NiwgMC42MzU5ODgsIDEuMDc1MDMsIDEuMzg3NTcsIDEuODg4MzUsIDIuMzI2NDQsIDIuOTUyMjgiLCBcCi0gICAgICAgICAgIjAuMjA1MTIxLCAwLjY0NzYzMywgMS4wODY2NywgMS40MDAyOSwgMS45MDEwMSwgMi4zMzg3NCwgMi45NjQ5OCIsIFwKLSAgICAgICAgICAiMC4yMTkzNDYsIDAuNjYxODg4LCAxLjEwMDkxLCAxLjQxNTAzLCAxLjkxNTQxLCAyLjM1NDYxLCAyLjk3OTUyIiwgXAotICAgICAgICAgICIwLjIzMzEzLCAwLjY3NTc1NywgMS4xMTQ4LCAxLjQyODM1LCAxLjkyOTI0LCAyLjM2NzY2LCAyLjk5MzY5IiwgXAotICAgICAgICAgICIwLjI0NjE4OSwgMC42ODg2NDcsIDEuMTI3ODksIDEuNDQxOTUsIDEuOTQyMzQsIDIuMzgxNTYsIDMuMDA2ODMiLCBcCi0gICAgICAgICAgIjAuMjY2MTI1LCAwLjcwODg3NywgMS4xNDgyMywgMS40NjE3NywgMS45NjMwOCwgMi40MDEzNiwgMy4wMjY4MyIsIFwKLSAgICAgICAgICAiMC4yODMzNjcsIDAuNzI2MTIzLCAxLjE2NTYxLCAxLjQ3OTE3LCAxLjk4MDAyLCAyLjQxODYyLCAzLjA0MzY4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjQ3OTQsIDEuMDc1NzgsIDEuOTAxMTcsIDIuNDkwMDgsIDMuNDMyMDUsIDQuMjU2NSwgNS40NDA1MSIsIFwKLSAgICAgICAgICAiMC4yNDc5MzksIDEuMDc1ODEsIDEuOTAwOSwgMi40OTAyLCAzLjQzMjg0LCA0LjI2MTE5LCA1LjQzNjcyIiwgXAotICAgICAgICAgICIwLjI0Nzk1MywgMS4wNzY3MSwgMS45MDExOCwgMi40OTAxMSwgMy40MzMwMSwgNC4yNTg0NywgNS40NDE1MyIsIFwKLSAgICAgICAgICAiMC4yNDgwMjMsIDEuMDc1OTcsIDEuOTAwOCwgMi40OTAyNywgMy40MzM2MSwgNC4yNTkyOCwgNS40NDE0OSIsIFwKLSAgICAgICAgICAiMC4yNDc3MjUsIDEuMDc2NDEsIDEuOTAwMzQsIDIuNDkwMTIsIDMuNDMzODksIDQuMjU3NjMsIDUuNDM4NjIiLCBcCi0gICAgICAgICAgIjAuMjQ4MDAyLCAxLjA3NTI0LCAxLjkwMTM1LCAyLjQ5MDI5LCAzLjQzNDE4LCA0LjI1NjcyLCA1LjQ0MTI3IiwgXAotICAgICAgICAgICIwLjI0ODc2NywgMS4wNzU2MiwgMS45MDEwNiwgMi40OTAxMywgMy40MzMyNywgNC4yNTY3MiwgNS40NDI0MiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTA0MjUsIDAuMzU1Mzk1LCAwLjYxNjkxNSwgMC44MDMyNywgMS4xMDE4NiwgMS4zNjIyNSwgMS43MzUwNCIsIFwKLSAgICAgICAgICAiMC4xMDA0MzksIDAuMzY1NTI2LCAwLjYyNzIwOCwgMC44MTM2OTUsIDEuMTExNjcsIDEuMzcyNzMsIDEuNzQ0NjQiLCBcCi0gICAgICAgICAgIjAuMTEzMjU0LCAwLjM3ODMxMiwgMC42NDAwOTksIDAuODI2NjYyLCAxLjEyNDc2LCAxLjM4NTI4LCAxLjc1NzcxIiwgXAotICAgICAgICAgICIwLjEyNjMwMSwgMC4zOTE0ODEsIDAuNjUzMjU2LCAwLjgzOTgwMiwgMS4xMzc3OCwgMS4zOTg5LCAxLjc3MDU3IiwgXAotICAgICAgICAgICIwLjEzOTM5MiwgMC40MDQ2NDIsIDAuNjY2MzQ1LCAwLjg1Mjc2MywgMS4xNTA4LCAxLjQxMTU5LCAxLjc4Mzc5IiwgXAotICAgICAgICAgICIwLjE2MTMzNCwgMC40MjU1MywgMC42ODcyNjYsIDAuODczODAxLCAxLjE3MTc5LCAxLjQzMjczLCAxLjgwNDc2IiwgXAotICAgICAgICAgICIwLjE4MDE5NSwgMC40NDM4NCwgMC43MDU2MTQsIDAuODkyMDkxLCAxLjE5MDMxLCAxLjQ1MDc4LCAxLjgyMzQiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xODY0NDIsIDAuNjk0OTUzLCAxLjIwNTE0LCAxLjU2OTAzLCAyLjE1MTg4LCAyLjY2MjY5LCAzLjM5MDYzIiwgXAotICAgICAgICAgICIwLjE4NjIwOSwgMC42OTQ5OTUsIDEuMjA0OTksIDEuNTY5MTgsIDIuMTUyNDIsIDIuNjYyNzgsIDMuMzkxNjQiLCBcCi0gICAgICAgICAgIjAuMTg1OTk1LCAwLjY5NDg3MywgMS4yMDUxNiwgMS41NjkzNCwgMi4xNTIxOCwgMi42NjI2NywgMy4zOTE1NiIsIFwKLSAgICAgICAgICAiMC4xODg0MTYsIDAuNjk1MDA2LCAxLjIwNDkxLCAxLjU2OTM1LCAyLjE1Mjg0LCAyLjY2MjA3LCAzLjM5MDcxIiwgXAotICAgICAgICAgICIwLjE5MjM5NSwgMC42OTQ5NTMsIDEuMjA1LCAxLjU2OTEyLCAyLjE1MjI2LCAyLjY2MjY4LCAzLjM5MDU3IiwgXAotICAgICAgICAgICIwLjIwMTMzLCAwLjY5NDg4LCAxLjIwNTE0LCAxLjU2OTE2LCAyLjE1MjQ4LCAyLjY2MTg2LCAzLjM5MTU1IiwgXAotICAgICAgICAgICIwLjIxMDczNywgMC42OTU0NCwgMS4yMDUxNSwgMS41NjkyLCAyLjE1MjAxLCAyLjY2MjY0LCAzLjM5MTU2Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTc4OTA5LCAwLjYyMTY2MiwgMS4wNjE4OCwgMS4zNzY0MSwgMS44Nzg3NywgMi4zMTc5NywgMi45NDYyNyIsIFwKLSAgICAgICAgICAiMC4xOTA5NzksIDAuNjM0MTcxLCAxLjA3NDQ4LCAxLjM4OTA0LCAxLjg5MTQxLCAyLjMzMDY1LCAyLjk1ODkyIiwgXAotICAgICAgICAgICIwLjIwNTE2MiwgMC42NDg1MTEsIDEuMDg4ODUsIDEuNDAzOTcsIDEuOTA1OTYsIDIuMzQ2NjIsIDIuOTc0MDkiLCBcCi0gICAgICAgICAgIjAuMjE4NTMzLCAwLjY2MjI3NSwgMS4xMDI5MiwgMS40MTcyMywgMS45MTk4NiwgMi4zNjAyOCwgMi45ODc3NCIsIFwKLSAgICAgICAgICAiMC4yMzEzNzEsIDAuNjc1MzcyLCAxLjExNTcxLCAxLjQzMDc5LCAxLjkzMzEsIDIuMzczNjMsIDMuMDAwOTUiLCBcCi0gICAgICAgICAgIjAuMjUxMjQ2LCAwLjY5NTMyMSwgMS4xMzYxNywgMS40NTA2OSwgMS45NTM1MiwgMi4zOTM1LCAzLjAyMDQiLCBcCi0gICAgICAgICAgIjAuMjY4MTU5LCAwLjcxMjM4NSwgMS4xNTMxOSwgMS40Njc5OCwgMS45NzA1MSwgMi40MTA2MiwgMy4wMzc4NyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIzMjUwNiwgMS4wNjE0MywgMS44ODkzOSwgMi40ODAyMSwgMy40MjgyOCwgNC4yNTgxNiwgNS40MzY4MiIsIFwKLSAgICAgICAgICAiMC4yMzI1MTMsIDEuMDYxNDIsIDEuODg5MywgMi40ODAwNywgMy40MjgzLCA0LjI1ODE4LCA1LjQzNjUyIiwgXAotICAgICAgICAgICIwLjIzMjUwMSwgMS4wNjE0NSwgMS44ODkzOSwgMi40Nzk4NCwgMy40MjgxNiwgNC4yNTM2OSwgNS40MzcwNSIsIFwKLSAgICAgICAgICAiMC4yMzI0OTcsIDEuMDYxOSwgMS44ODk2NywgMi40Nzk5MiwgMy40Mjg1LCA0LjI1OTY0LCA1LjQ0MjEiLCBcCi0gICAgICAgICAgIjAuMjMyNSwgMS4wNjE1NywgMS44ODg4NiwgMi40Nzk4LCAzLjQyNDc5LCA0LjI1MzI4LCA1LjQzNzExIiwgXAotICAgICAgICAgICIwLjIzMjY0NiwgMS4wNjE2NCwgMS44ODkxOSwgMi40Nzk4LCAzLjQyODE1LCA0LjI1OTE2LCA1LjQ0MTA1IiwgXAotICAgICAgICAgICIwLjIzMzY0MiwgMS4wNjE1NywgMS44ODk2MywgMi40Nzk3MiwgMy40MjYwMiwgNC4yNTkwOSwgNS40NDEzOCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODYzMTMsIDAuMzQ4ODQzLCAwLjYwOTg1MywgMC43OTYxMTcsIDEuMDk0MjMsIDEuMzU0OTYsIDEuNzI3MjIiLCBcCi0gICAgICAgICAgIjAuMDk3OTU0LCAwLjM2MDgxNCwgMC42MjE3MDcsIDAuODA3ODYxLCAxLjEwNjAxLCAxLjM2NjU2LCAxLjczOTAxIiwgXAotICAgICAgICAgICIwLjExMTAzNywgMC4zNzM5MDksIDAuNjM0OTQsIDAuODIxMDg1LCAxLjExOTI0LCAxLjM3OTg0LCAxLjc1MjMiLCBcCi0gICAgICAgICAgIjAuMTIzNSwgMC4zODY1MjksIDAuNjQ3Njk3LCAwLjgzMzczOCwgMS4xMzE3NywgMS4zOTI1LCAxLjc2NDk3IiwgXAotICAgICAgICAgICIwLjEzNTg4LCAwLjM5ODgzOCwgMC42NTk5NTgsIDAuODQ2MjgyLCAxLjE0NDIzLCAxLjQwNDksIDEuNzc3MjIiLCBcCi0gICAgICAgICAgIjAuMTU1NDc4LCAwLjQxODc1NiwgMC42Nzk3OTEsIDAuODY2MzMxLCAxLjE2NDY3LCAxLjQyNDgzLCAxLjc5NzQxIiwgXAotICAgICAgICAgICIwLjE3MjU4OSwgMC40MzYxMDcsIDAuNjk3MjkzLCAwLjg4MzUzNCwgMS4xODE4LCAxLjQ0MjI4LCAxLjgxNDYyIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTcxODQzLCAwLjY4MDY4OCwgMS4xOTAyNywgMS41NTQ1MywgMi4xMzc1NywgMi42NDc4LCAzLjM3NjI3IiwgXAotICAgICAgICAgICIwLjE3MTg0NSwgMC42ODA4MzcsIDEuMTkwNDMsIDEuNTU0ODMsIDIuMTM3MjksIDIuNjQ3MzksIDMuMzc2NDEiLCBcCi0gICAgICAgICAgIjAuMTcxODc3LCAwLjY4MDYzMywgMS4xOTA0MywgMS41NTQ3NywgMi4xMzcyOSwgMi42NDc4LCAzLjM3NTg4IiwgXAotICAgICAgICAgICIwLjE3Mjk3NSwgMC42ODA3MTcsIDEuMTkwMzgsIDEuNTU0NTUsIDIuMTM3MTYsIDIuNjQ3NjgsIDMuMzc1NTYiLCBcCi0gICAgICAgICAgIjAuMTc1MjczLCAwLjY4MDYyMSwgMS4xOTA2NSwgMS41NTQ1MSwgMi4xMzc0NCwgMi42NDc4MiwgMy4zNzU1MiIsIFwKLSAgICAgICAgICAiMC4xODA2NzQsIDAuNjgwNzA5LCAxLjE5MDU5LCAxLjU1NDksIDIuMTM3NDgsIDIuNjQ3NjQsIDMuMzc2MjkiLCBcCi0gICAgICAgICAgIjAuMTg2NjE2LCAwLjY4MTAxOCwgMS4xOTAzNSwgMS41NTQ1MiwgMi4xMzc3OSwgMi42NDc2MywgMy4zNzUzNSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE4MDcyOSwgMC42MjMwNjUsIDEuMDYyMDgsIDEuMzc1MjEsIDEuODc2NDMsIDIuMzE0MjIsIDIuOTQwMzYiLCBcCi0gICAgICAgICAgIjAuMTkwODcsIDAuNjMzMzYsIDEuMDcyMzcsIDEuMzg2MDcsIDEuODg2NDEsIDIuMzI1NzEsIDIuOTUwMzkiLCBcCi0gICAgICAgICAgIjAuMjA0Mzg4LCAwLjY0Njg0NCwgMS4wODYwNSwgMS4zOTk0OCwgMS45MDAwNywgMi4zMzkyOCwgMi45NjQ5NiIsIFwKLSAgICAgICAgICAiMC4yMTc1OTcsIDAuNjYwMTk3LCAxLjA5OTY3LCAxLjQxMjcxLCAxLjkxNDUzLCAyLjM1MjI4LCAyLjk3Nzc0IiwgXAotICAgICAgICAgICIwLjIzMDQzMSwgMC42NzMwNzMsIDEuMTEyNTcsIDEuNDI1NjUsIDEuOTI3NjIsIDIuMzY1MDcsIDIuOTkwNjQiLCBcCi0gICAgICAgICAgIjAuMjUwODk2LCAwLjY5MzU5MSwgMS4xMzI4MiwgMS40NDYzNCwgMS45NDc4NCwgMi4zODU3LCAzLjAxMTY1IiwgXAotICAgICAgICAgICIwLjI2ODY3NCwgMC43MTE0ODIsIDEuMTUwNjEsIDEuNDY0MjgsIDEuOTY1OTQsIDIuNDAzNTksIDMuMDI5MTkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yNDc5MjEsIDEuMDc1ODMsIDEuOTAwOTYsIDIuNDkwMzgsIDMuNDMyNzUsIDQuMjYxNiwgNS40MzY5OSIsIFwKLSAgICAgICAgICAiMC4yNDc5NjEsIDEuMDc1NTIsIDEuOTAxMjMsIDIuNDkwNDUsIDMuNDMyNzcsIDQuMjU3OSwgNS40MzcwNyIsIFwKLSAgICAgICAgICAiMC4yNDc5MTgsIDEuMDc1NTMsIDEuOTAxMzksIDIuNDkwMzIsIDMuNDM1NzUsIDQuMjU4LCA1LjQzODI0IiwgXAotICAgICAgICAgICIwLjI0NzkxLCAxLjA3NjAxLCAxLjkwMTExLCAyLjQ5MDUxLCAzLjQzMjgsIDQuMjU2ODIsIDUuNDM5MDIiLCBcCi0gICAgICAgICAgIjAuMjQ4MDE2LCAxLjA3NTY5LCAxLjkwMDkyLCAyLjQ5MDQ2LCAzLjQzMjQsIDQuMjU3NjEsIDUuNDQxMzEiLCBcCi0gICAgICAgICAgIjAuMjQ4NDQ2LCAxLjA3NTc0LCAxLjkwMjMsIDIuNDkwMzgsIDMuNDMyOTEsIDQuMjU3NDYsIDUuNDM4MjciLCBcCi0gICAgICAgICAgIjAuMjUwNjIzLCAxLjA3NTY1LCAxLjkwMDUxLCAyLjQ5MDMyLCAzLjQzMzI2LCA0LjI1Nzc4LCA1LjQ0MTU5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIxIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3OTIzNSwgMC4zNDE4ODQsIDAuNjAyODI0LCAwLjc4OTMwMywgMS4wODcwOSwgMS4zNDc5NywgMS43MjAxNSIsIFwKLSAgICAgICAgICAiMC4wODk0NSwgMC4zNTIyMTksIDAuNjEzMzQ4LCAwLjc5OTcyOCwgMS4wOTc1MSwgMS4zNTg0LCAxLjczMDQ4IiwgXAotICAgICAgICAgICIwLjEwMjMsIDAuMzY1MzcxLCAwLjYyNjUyNiwgMC44MTI1NDEsIDEuMTEwNTUsIDEuMzcxMTksIDEuNzQzNzQiLCBcCi0gICAgICAgICAgIjAuMTE1ODMzLCAwLjM3ODM5MiwgMC42Mzk0NzgsIDAuODI1NjkyLCAxLjEyMzc2LCAxLjM4NDY0LCAxLjc1NjkiLCBcCi0gICAgICAgICAgIjAuMTI4OTc5LCAwLjM5MTQxMywgMC42NTI2NzMsIDAuODM4Nzg5LCAxLjEzNjY4LCAxLjM5NzMxLCAxLjc2OTgzIiwgXAotICAgICAgICAgICIwLjE1MDI5OSwgMC40MTIzMjEsIDAuNjczMzEyLCAwLjg1OTU5NSwgMS4xNTc2NywgMS40MTkxMywgMS43OTA4MyIsIFwKLSAgICAgICAgICAiMC4xNjkwMjEsIDAuNDMwNTU4LCAwLjY5MTcyNiwgMC44Nzc5NDYsIDEuMTc2LCAxLjQzNjkxLCAxLjgwOTAyIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTcxODc2LCAwLjY4MDczMywgMS4xOTA0NSwgMS41NTQ5MywgMi4xMzcyOCwgMi42NDgwNSwgMy4zNzYzMiIsIFwKLSAgICAgICAgICAiMC4xNzE4MzksIDAuNjgwNjQ3LCAxLjE5MDU4LCAxLjU1NDg5LCAyLjEzNzE4LCAyLjY0NzkzLCAzLjM3NjIiLCBcCi0gICAgICAgICAgIjAuMTcyMjc5LCAwLjY4MDc5LCAxLjE5MDU2LCAxLjU1NDUyLCAyLjEzNzU2LCAyLjY0NzA4LCAzLjM3NTUxIiwgXAotICAgICAgICAgICIwLjE3NTI3MiwgMC42ODA3MSwgMS4xOTA0MSwgMS41NTQ5MiwgMi4xMzcxNiwgMi42NDgwNiwgMy4zNzY0MiIsIFwKLSAgICAgICAgICAiMC4xODAyMzgsIDAuNjgwNzcyLCAxLjE5MDY5LCAxLjU1NDU1LCAyLjEzNzUyLCAyLjY0NzgxLCAzLjM3NjMzIiwgXAotICAgICAgICAgICIwLjE5MDQwMSwgMC42ODA1ODksIDEuMTkwNDMsIDEuNTU0NjksIDIuMTM3MjIsIDIuNjQ3MzgsIDMuMzc2NCIsIFwKLSAgICAgICAgICAiMC4yMDA5NzcsIDAuNjgxNTA4LCAxLjE5MDMzLCAxLjU1NDgzLCAyLjEzNzgzLCAyLjY0NzY3LCAzLjM3NjM4Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTY0NzA0LCAwLjYwNzA4NCwgMS4wNDc0MiwgMS4zNjE4NiwgMS44NjQ0OCwgMi4zMDQ3OCwgMi45MzIxMiIsIFwKLSAgICAgICAgICAiMC4xNzU2ODQsIDAuNjE4NTMxLCAxLjA1ODY3LCAxLjM3MzUyLCAxLjg3NTMyLCAyLjMxNjA0LCAyLjk0MzI0IiwgXAotICAgICAgICAgICIwLjE4ODkwNywgMC42MzIxNTIsIDEuMDcyNSwgMS4zODcyNiwgMS44ODk3MywgMi4zMjk5NywgMi45NTc1OCIsIFwKLSAgICAgICAgICAiMC4yMDE4OCwgMC42NDU0NjcsIDEuMDg2MDcsIDEuNDAwMjIsIDEuOTAzMzgsIDIuMzQyODEsIDIuOTcwMiIsIFwKLSAgICAgICAgICAiMC4yMTQ1NjIsIDAuNjU4MTg0LCAxLjA5OTAzLCAxLjQxMzExLCAxLjkxNjY2LCAyLjM1NTU5LCAyLjk4MzI5IiwgXAotICAgICAgICAgICIwLjIzNDU4OCwgMC42Nzg1MzksIDEuMTE5MTcsIDEuNDMzODIsIDEuOTM2NywgMi4zNzY0MiwgMy4wMDM3IiwgXAotICAgICAgICAgICIwLjI1MjE0MiwgMC42OTYzMzEsIDEuMTM2OSwgMS40NTE2NCwgMS45NTQ1NiwgMi4zOTQwMywgMy4wMjE3MSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIzMTQ3OCwgMS4wNjExOSwgMS44ODkxNCwgMi40ODA3NiwgMy40Mjg1NCwgNC4yNTk3OCwgNS40NDAxNiIsIFwKLSAgICAgICAgICAiMC4yMzE0NjUsIDEuMDYxMTcsIDEuODg4MzMsIDIuNDc5OTMsIDMuNDI5NTQsIDQuMjU5MjUsIDUuNDM5MzkiLCBcCi0gICAgICAgICAgIjAuMjMxNDkzLCAxLjA2MDc1LCAxLjg4OTI0LCAyLjQ3OTkyLCAzLjQyNjY3LCA0LjI1NDg1LCA1LjQzNzg5IiwgXAotICAgICAgICAgICIwLjIzMTI4NiwgMS4wNjEyNSwgMS44ODkwNywgMi40ODAzNSwgMy40MjY2NywgNC4yNTg5MSwgNS40NDA4NSIsIFwKLSAgICAgICAgICAiMC4yMzE0OTUsIDEuMDYwOTMsIDEuODg4OTYsIDIuNDgwMzcsIDMuNDI2NTcsIDQuMjU4NjEsIDUuNDM1MzYiLCBcCi0gICAgICAgICAgIjAuMjMyNjA5LCAxLjA2MTIyLCAxLjg5MDI4LCAyLjQ3OTk4LCAzLjQyODEsIDQuMjU4OTIsIDUuNDQwNzciLCBcCi0gICAgICAgICAgIjAuMjM1MTA5LCAxLjA2MDk5LCAxLjg4ODczLCAyLjQ3OTk4LCAzLjQyODE5LCA0LjI1ODg2LCA1LjQzOTk0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3MTc2MywgMC4zMzMwMSwgMC41OTM2NzgsIDAuNzc5OTk5LCAxLjA3ODE5LCAxLjMzOTEsIDEuNzExNzUiLCBcCi0gICAgICAgICAgIjAuMDgzNDE5LCAwLjM0NDc3NywgMC42MDU1NzgsIDAuNzkyMDYzLCAxLjA5MDEyLCAxLjM1MTAxLCAxLjcyMzc2IiwgXAotICAgICAgICAgICIwLjA5NjMxMiwgMC4zNTgwMSwgMC42MTg3NjEsIDAuODA1NTM3LCAxLjEwMzI3LCAxLjM2NDE4LCAxLjczNjkzIiwgXAotICAgICAgICAgICIwLjEwODc2MiwgMC4zNzA0MTYsIDAuNjMxNDQyLCAwLjgxNzY4NiwgMS4xMTU4NiwgMS4zNzY4MiwgMS43NDk2MSIsIFwKLSAgICAgICAgICAiMC4xMjEwMzcsIDAuMzgzMDQ4LCAwLjY0Mzk0NywgMC44MzAyMjMsIDEuMTI4MzksIDEuMzg5MzUsIDEuNzYxOSIsIFwKLSAgICAgICAgICAiMC4xNDA0NTEsIDAuNDAyNzgzLCAwLjY2MzkwNSwgMC44NTAzMjMsIDEuMTQ4NTQsIDEuNDA5MjgsIDEuNzgxOTIiLCBcCi0gICAgICAgICAgIjAuMTU2Njg0LCAwLjQxOTk3LCAwLjY4MTQxMSwgMC44Njc1OSwgMS4xNjU2NiwgMS40MjY1NSwgMS43OTkzIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTU5NzE1LCAwLjY2Nzc4OSwgMS4xNzcxMywgMS41NDA5NSwgMi4xMjM4MSwgMi42MzQwMywgMy4zNjE1OCIsIFwKLSAgICAgICAgICAiMC4xNTk3MjQsIDAuNjY3NzA2LCAxLjE3Njg3LCAxLjU0MTIxLCAyLjEyNDAyLCAyLjYzMzIzLCAzLjM2MjkxIiwgXAotICAgICAgICAgICIwLjE1OTk0OCwgMC42Njc3MzMsIDEuMTc3MTQsIDEuNTQxMDksIDIuMTIzODMsIDIuNjMzMjUsIDMuMzYxOTgiLCBcCi0gICAgICAgICAgIjAuMTYxNjcsIDAuNjY3NjI0LCAxLjE3NzE1LCAxLjU0MDk1LCAyLjEyMzc4LCAyLjYzMzE0LCAzLjM2MjAxIiwgXAotICAgICAgICAgICIwLjE2NDU3OCwgMC42Njc4LCAxLjE3NzE4LCAxLjU0MTA3LCAyLjEyMzgsIDIuNjMzMzcsIDMuMzYxNiIsIFwKLSAgICAgICAgICAiMC4xNzA4MjMsIDAuNjY3NjUzLCAxLjE3Njk2LCAxLjU0MDk5LCAyLjEyMzg2LCAyLjYzMzgxLCAzLjM2MTcxIiwgXAotICAgICAgICAgICIwLjE3Nzk4LCAwLjY2ODMwMywgMS4xNzY5OCwgMS41NDEyMSwgMi4xMjM3NCwgMi42MzMyOCwgMy4zNjI3OCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE1NDI2MywgMC41OTYxOTQsIDEuMDM1NSwgMS4zNDg3NSwgMS44NDk3NCwgMi4yODgxMSwgMi45MTQwMyIsIFwKLSAgICAgICAgICAiMC4xNjM1NTQsIDAuNjA1OTMyLCAxLjA0NDg2LCAxLjM1ODA5LCAxLjg1OTM5LCAyLjI5NzE3LCAyLjkyMzMzIiwgXAotICAgICAgICAgICIwLjE3NTY5MiwgMC42MTg0NzcsIDEuMDU3MiwgMS4zNzEyLCAxLjg3MjE0LCAyLjMxMDU4LCAyLjkzNjgyIiwgXAotICAgICAgICAgICIwLjE4Nzg0MywgMC42MzA0NzYsIDEuMDY5ODcsIDEuMzgyODYsIDEuODg0MzIsIDIuMzIxOCwgMi45NDc5OSIsIFwKLSAgICAgICAgICAiMC4yMDAwNTQsIDAuNjQyOTIxLCAxLjA4MTczLCAxLjM5NTU3LCAxLjg5NjgzLCAyLjMzNTYyLCAyLjk2MDgiLCBcCi0gICAgICAgICAgIjAuMjE5NjkzLCAwLjY2MjQ0NywgMS4xMDMxNywgMS40MTY0NCwgMS45MTgzNiwgMi4zNTM5OCwgMi45ODAwNSIsIFwKLSAgICAgICAgICAiMC4yMzcxMjYsIDAuNjc5NTMxLCAxLjExODg0LCAxLjQzMjA3LCAxLjkzMzAzLCAyLjM3MTg0LCAyLjk5Nzg0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjQ3OTI3LCAxLjA3NjY3LCAxLjkwMTE0LCAyLjQ5MDc5LCAzLjQzMjksIDQuMjU3NDEsIDUuNDM3MjMiLCBcCi0gICAgICAgICAgIjAuMjQ3Nzc1LCAxLjA3NTYzLCAxLjkwMTI1LCAyLjQ4OTc3LCAzLjQzMzgsIDQuMjU3MzQsIDUuNDM1NTMiLCBcCi0gICAgICAgICAgIjAuMjQ3NDM5LCAxLjA3NTY2LCAxLjkwMDY3LCAyLjQ5MDExLCAzLjQzMzgsIDQuMjU3NjEsIDUuNDM2OTEiLCBcCi0gICAgICAgICAgIjAuMjQ2NDQ1LCAxLjA3NjQyLCAxLjkwMTA1LCAyLjQ5MDUxLCAzLjQzMjI1LCA0LjI2MTE4LCA1LjQ0MTM5IiwgXAotICAgICAgICAgICIwLjI0NzE0OSwgMS4wNzU2MSwgMS45MDA3MiwgMi40OTEwMiwgMy40MzIxNywgNC4yNTc3OSwgNS40MzY3NCIsIFwKLSAgICAgICAgICAiMC4yNTEzNTgsIDEuMDc1OTgsIDEuOTAwMzYsIDIuNDkwNDYsIDMuNDMyMjcsIDQuMjYxMywgNS40NDAyNiIsIFwKLSAgICAgICAgICAiMC4yNTcyNzgsIDEuMDc1MjMsIDEuOTAwODQsIDIuNDkwMTEsIDMuNDMyODksIDQuMjU3NjgsIDUuNDM4ODIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQzEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY1MzgxLCAwLjMyNjgxOCwgMC41ODc0OTIsIDAuNzc0MzYyLCAxLjA3MTkyLCAxLjMzMjgzLCAxLjcwNTU1IiwgXAotICAgICAgICAgICIwLjA3NTY2NywgMC4zMzcxODMsIDAuNTk3OTkyLCAwLjc4NDkxOCwgMS4wODI0MiwgMS4zNDMyOCwgMS43MTYxOCIsIFwKLSAgICAgICAgICAiMC4wODg0NDEsIDAuMzQ5ODk2LCAwLjYxMTI4MywgMC43OTc0OCwgMS4wOTU2LCAxLjM1NjY3LCAxLjcyOTA0IiwgXAotICAgICAgICAgICIwLjEwMTkyMiwgMC4zNjM0MDgsIDAuNjI0MTc5LCAwLjgxMDY2MSwgMS4xMDg3LCAxLjM2OTYzLCAxLjc0MjIiLCBcCi0gICAgICAgICAgIjAuMTE1MjE1LCAwLjM3NjQ4OSwgMC42Mzc0MDUsIDAuODIzNjQxLCAxLjEyMTgsIDEuMzgyNzYsIDEuNzU1NDkiLCBcCi0gICAgICAgICAgIjAuMTM2NzY3LCAwLjM5NzE5OCwgMC42NTgyMjEsIDAuODQ0NjU5LCAxLjE0Mjc3LCAxLjQwNDY2LCAxLjc3NjQ2IiwgXAotICAgICAgICAgICIwLjE1Mzg5MywgMC40MTU2MTQsIDAuNjc2NjUxLCAwLjg2Mjg1OCwgMS4xNjExNiwgMS40MjIsIDEuNzk0NjUiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNTk3MDYsIDAuNjY3ODIsIDEuMTc2OTksIDEuNTQxMjIsIDIuMTIzODYsIDIuNjMzMjUsIDMuMzYyNjEiLCBcCi0gICAgICAgICAgIjAuMTU5NjcxLCAwLjY2NzY3NywgMS4xNzY5MiwgMS41NDEyMSwgMi4xMjMzNiwgMi42MzMyMSwgMy4zNjIwNCIsIFwKLSAgICAgICAgICAiMC4xNjEwNjMsIDAuNjY3Njk3LCAxLjE3NzA2LCAxLjU0MDgzLCAyLjEyMzM0LCAyLjYzMzQyLCAzLjM2MTg0IiwgXAotICAgICAgICAgICIwLjE2NTIyMiwgMC42Njc3NzQsIDEuMTc3MSwgMS41NDA5NCwgMi4xMjM5MSwgMi42MzQwNCwgMy4zNjE3OSIsIFwKLSAgICAgICAgICAiMC4xNzExNzMsIDAuNjY3NzI3LCAxLjE3NjksIDEuNTQxMDksIDIuMTIzODEsIDIuNjMzMTgsIDMuMzYxNjUiLCBcCi0gICAgICAgICAgIjAuMTgyOTQxLCAwLjY2NzczOSwgMS4xNzY4MywgMS41NDEwOSwgMi4xMjM4NSwgMi42MzM1MywgMy4zNjI2MSIsIFwKLSAgICAgICAgICAiMC4xOTQ2ODcsIDAuNjY4OTc2LCAxLjE3Njk4LCAxLjU0MDgyLCAyLjEyMzcxLCAyLjYzMzEyLCAzLjM2Mjc1Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTM5Mjg2LCAwLjU4MTg2MSwgMS4wMjI1NCwgMS4zMzY0NywgMS44Mzk5LCAyLjI3ODgxLCAyLjkwNjcyIiwgXAotICAgICAgICAgICIwLjE0OTMyOSwgMC41OTI0NTQsIDEuMDMyNzIsIDEuMzQ2ODMsIDEuODQ5MTUsIDIuMjg4OTgsIDIuOTE3MjYiLCBcCi0gICAgICAgICAgIjAuMTYxMjg0LCAwLjYwNDk5LCAxLjA0NTY0LCAxLjM1OTk4LCAxLjg2MjgyLCAyLjMwMjQ3LCAyLjkzMDc0IiwgXAotICAgICAgICAgICIwLjE3MzQxNiwgMC42MTcyMDUsIDEuMDU4MDUsIDEuMzcyNTEsIDEuODc1MzYsIDIuMzE0OTMsIDIuOTQzMTIiLCBcCi0gICAgICAgICAgIjAuMTg1MzAzLCAwLjYyOTM3MiwgMS4wNjk3LCAxLjM4NDQyLCAxLjg4NzI1LCAyLjMyNzY1LCAyLjk1NDk4IiwgXAotICAgICAgICAgICIwLjIwNDc3LCAwLjY1MDIzOSwgMS4wODk1LCAxLjQwMzc0LCAxLjkwNzMzLCAyLjM0NTk0LCAyLjk3NDI1IiwgXAotICAgICAgICAgICIwLjIyMzAzOCwgMC42NjU4NzIsIDEuMTA2NzIsIDEuNDIwOTYsIDEuOTIzNzYsIDIuMzYzODEsIDIuOTkxODgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMzI1NTgsIDEuMDYyMjgsIDEuODkwNjgsIDIuNDgxODEsIDMuNDI3MzEsIDQuMjU4NjcsIDUuNDQzNCIsIFwKLSAgICAgICAgICAiMC4yMzI0NzEsIDEuMDYyMjUsIDEuODkwNjgsIDIuNDgxMywgMy40MzA4MywgNC4yNTkyLCA1LjQzNjk4IiwgXAotICAgICAgICAgICIwLjIzMTk2NiwgMS4wNjI2NSwgMS44OTA2LCAyLjQ4MTk3LCAzLjQyNzIxLCA0LjI1Njg5LCA1LjQzOTM1IiwgXAotICAgICAgICAgICIwLjIzMTA3MSwgMS4wNjI0OSwgMS44OTA2LCAyLjQ4MzI4LCAzLjQyODMyLCA0LjI1ODU3LCA1LjQ0MTY1IiwgXAotICAgICAgICAgICIwLjIzMjI5OCwgMS4wNjI1MywgMS44ODk2NiwgMi40ODI0NywgMy40Mjg0MywgNC4yNTYxNywgNS40NDMzOCIsIFwKLSAgICAgICAgICAiMC4yMzcxOTQsIDEuMDYyNDcsIDEuODkwNDMsIDIuNDgxOTQsIDMuNDI3MTYsIDQuMjU5MjYsIDUuNDQyOTEiLCBcCi0gICAgICAgICAgIjAuMjQzNDg4LCAxLjA2MjExLCAxLjg5MDQzLCAyLjQ4MTg4LCAzLjQyNzM2LCA0LjI1NzI1LCA1LjQzOTEzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE1MjMyLCAwLjAxNTIyOCwgMC4wMTUyMjEsIDAuMDE1MjIxLCAwLjAxNTIxLCAwLjAxNTIxLCAwLjAxNTIwMyIsIFwKLSAgICAgICAgICAiMC4wMTUxODgsIDAuMDE1MTg3LCAwLjAxNTE3OCwgMC4wMTUxNzksIDAuMDE1MTcsIDAuMDE1MTY0LCAwLjAxNTE1OSIsIFwKLSAgICAgICAgICAiMC4wMTUxNjUsIDAuMDE1MTY5LCAwLjAxNTE2OCwgMC4wMTUxNjMsIDAuMDE1MTU3LCAwLjAxNTE1NCwgMC4wMTUxNDQiLCBcCi0gICAgICAgICAgIjAuMDE1MTQ5LCAwLjAxNTE2NCwgMC4wMTUxNjEsIDAuMDE1MTU2LCAwLjAxNTE1LCAwLjAxNTE0NywgMC4wMTUxMzgiLCBcCi0gICAgICAgICAgIjAuMDE1MTQ0LCAwLjAxNTE1NCwgMC4wMTUxNTMsIDAuMDE1MTUsIDAuMDE1MTQ0LCAwLjAxNTE0MiwgMC4wMTUxMzMiLCBcCi0gICAgICAgICAgIjAuMDE1MTI5LCAwLjAxNTE0OSwgMC4wMTUxNDksIDAuMDE1MTQ4LCAwLjAxNTE0MywgMC4wMTUxMzYsIDAuMDE1MTMyIiwgXAotICAgICAgICAgICIwLjAxNTEyNCwgMC4wMTUxNDcsIDAuMDE1MTQzLCAwLjAxNTE0MSwgMC4wMTUxMzcsIDAuMDE1MTM3LCAwLjAxNTEyOCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1OTcxLCAwLjAwNTk3LCAwLjAwNTk2MywgMC4wMDU5NjUsIDAuMDA1OTYsIDAuMDA1OTU1LCAwLjAwNTk0NyIsIFwKLSAgICAgICAgICAiMC4wMDU5MDQsIDAuMDA1OTE3LCAwLjAwNTkxOCwgMC4wMDU5MTUsIDAuMDA1OTA4LCAwLjAwNTkwOCwgMC4wMDU5MDIiLCBcCi0gICAgICAgICAgIjAuMDA1ODc0LCAwLjAwNTg5OCwgMC4wMDU5MDEsIDAuMDA1OTAzLCAwLjAwNTkwMSwgMC4wMDU4OTYsIDAuMDA1ODg5IiwgXAotICAgICAgICAgICIwLjAwNTg0NiwgMC4wMDU4ODksIDAuMDA1ODk1LCAwLjAwNTg5NiwgMC4wMDU4OTUsIDAuMDA1ODkyLCAwLjAwNTg4NyIsIFwKLSAgICAgICAgICAiMC4wMDU4MjgsIDAuMDA1ODc5LCAwLjAwNTg4OCwgMC4wMDU4OSwgMC4wMDU4ODgsIDAuMDA1ODg0LCAwLjAwNTg3OSIsIFwKLSAgICAgICAgICAiMC4wMDU4MDYsIDAuMDA1ODcsIDAuMDA1ODc5LCAwLjAwNTg4MiwgMC4wMDU4ODMsIDAuMDA1ODgsIDAuMDA1ODc4IiwgXAotICAgICAgICAgICIwLjAwNTc4OCwgMC4wMDU4NTgsIDAuMDA1ODcyLCAwLjAwNTg3NywgMC4wMDU4NzYsIDAuMDA1ODc2LCAwLjAwNTg3MyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkExIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxNDIzLCAwLjAxNDIyOSwgMC4wMTQyMjEsIDAuMDE0MjE4LCAwLjAxNDIxMSwgMC4wMTQyMDUsIDAuMDE0MTk5IiwgXAotICAgICAgICAgICIwLjAxNDE3NiwgMC4wMTQxOCwgMC4wMTQxNzUsIDAuMDE0MTczLCAwLjAxNDE2NiwgMC4wMTQxNjEsIDAuMDE0MTUzIiwgXAotICAgICAgICAgICIwLjAxNDE0MiwgMC4wMTQxNTgsIDAuMDE0MTU4LCAwLjAxNDE1MywgMC4wMTQxNTEsIDAuMDE0MTQzLCAwLjAxNDEzNyIsIFwKLSAgICAgICAgICAiMC4wMTQxMiwgMC4wMTQxNDYsIDAuMDE0MTQ4LCAwLjAxNDE0OSwgMC4wMTQxNDIsIDAuMDE0MTQxLCAwLjAxNDEzIiwgXAotICAgICAgICAgICIwLjAxNDEwNCwgMC4wMTQxNDEsIDAuMDE0MTQsIDAuMDE0MTQyLCAwLjAxNDEzNywgMC4wMTQxMzEsIDAuMDE0MTI3IiwgXAotICAgICAgICAgICIwLjAxNDA4NSwgMC4wMTQxMzIsIDAuMDE0MTMyLCAwLjAxNDEzMiwgMC4wMTQxMzQsIDAuMDE0MTMsIDAuMDE0MTIxIiwgXAotICAgICAgICAgICIwLjAxNDA3MSwgMC4wMTQxMjYsIDAuMDE0MTI3LCAwLjAxNDEyOCwgMC4wMTQxMjYsIDAuMDE0MTIyLCAwLjAxNDExNiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0NzI5LCAwLjAwNDc0LCAwLjAwNDczOCwgMC4wMDQ3MzgsIDAuMDA0NzM5LCAwLjAwNDczMywgMC4wMDQ3MjgiLCBcCi0gICAgICAgICAgIjAuMDA0NzIsIDAuMDA0NzcyLCAwLjAwNDc4LCAwLjAwNDc4MSwgMC4wMDQ3NzgsIDAuMDA0Nzc5LCAwLjAwNDc3NSIsIFwKLSAgICAgICAgICAiMC4wMDQ2NzQsIDAuMDA0NzY0LCAwLjAwNDc3NywgMC4wMDQ3ODIsIDAuMDA0Nzg0LCAwLjAwNDc4MiwgMC4wMDQ3NzciLCBcCi0gICAgICAgICAgIjAuMDA0NjM0LCAwLjAwNDc0OCwgMC4wMDQ3NjgsIDAuMDA0Nzc2LCAwLjAwNDc4LCAwLjAwNDc3OCwgMC4wMDQ3NzciLCBcCi0gICAgICAgICAgIjAuMDA0NTkzLCAwLjAwNDczNCwgMC4wMDQ3NTksIDAuMDA0NzY4LCAwLjAwNDc3MywgMC4wMDQ3NzUsIDAuMDA0Nzc1IiwgXAotICAgICAgICAgICIwLjAwNDU0NiwgMC4wMDQ3MTEsIDAuMDA0NzQ1LCAwLjAwNDc1NiwgMC4wMDQ3NjUsIDAuMDA0NzY4LCAwLjAwNDc3IiwgXAotICAgICAgICAgICIwLjAwNDUxNSwgMC4wMDQ2ODksIDAuMDA0NzMxLCAwLjAwNDc0NSwgMC4wMDQ3NTYsIDAuMDA0NzYyLCAwLjAwNDc2NCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMjI2MywgMC4wMTIyNjMsIDAuMDEyMjYsIDAuMDEyMjU4LCAwLjAxMjI1NSwgMC4wMTIyNTEsIDAuMDEyMjQ4IiwgXAotICAgICAgICAgICIwLjAxMjI1MiwgMC4wMTIyNiwgMC4wMTIyNTksIDAuMDEyMjU4LCAwLjAxMjI1NCwgMC4wMTIyNTMsIDAuMDEyMjUyIiwgXAotICAgICAgICAgICIwLjAxMjIyNywgMC4wMTIyNTYsIDAuMDEyMjU1LCAwLjAxMjI1NCwgMC4wMTIyNTIsIDAuMDEyMjUsIDAuMDEyMjQ5IiwgXAotICAgICAgICAgICIwLjAxMjIxLCAwLjAxMjI1LCAwLjAxMjI1MSwgMC4wMTIyNTIsIDAuMDEyMjUsIDAuMDEyMjUsIDAuMDEyMjQ1IiwgXAotICAgICAgICAgICIwLjAxMjE5MiwgMC4wMTIyNDUsIDAuMDEyMjUsIDAuMDEyMjQ5LCAwLjAxMjI0NywgMC4wMTIyNDYsIDAuMDEyMjQ2IiwgXAotICAgICAgICAgICIwLjAxMjE3MSwgMC4wMTIyMzYsIDAuMDEyMjM3LCAwLjAxMjI0NCwgMC4wMTIyNDUsIDAuMDEyMjQ4LCAwLjAxMjI0MiIsIFwKLSAgICAgICAgICAiMC4wMTIxNTgsIDAuMDEyMjI2LCAwLjAxMjIzOSwgMC4wMTIyNDIsIDAuMDEyMjQ1LCAwLjAxMjI0MywgMC4wMTIyNDIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNTk3NywgMC4wMDU5NzQsIDAuMDA1OTY4LCAwLjAwNTk2MywgMC4wMDU5NzEsIDAuMDA1OTU4LCAwLjAwNTk1MSIsIFwKLSAgICAgICAgICAiMC4wMDU5MDcsIDAuMDA1OTE5LCAwLjAwNTkxOCwgMC4wMDU5MTYsIDAuMDA1OTEyLCAwLjAwNTkwNywgMC4wMDU5MDIiLCBcCi0gICAgICAgICAgIjAuMDA1ODcxLCAwLjAwNTksIDAuMDA1OTAzLCAwLjAwNTkwMiwgMC4wMDU5LCAwLjAwNTg5NCwgMC4wMDU4ODkiLCBcCi0gICAgICAgICAgIjAuMDA1ODQ5LCAwLjAwNTg4NywgMC4wMDU4OTQsIDAuMDA1ODk0LCAwLjAwNTg5MSwgMC4wMDU4OTEsIDAuMDA1ODg1IiwgXAotICAgICAgICAgICIwLjAwNTgzLCAwLjAwNTg4LCAwLjAwNTg4OSwgMC4wMDU4OSwgMC4wMDU4ODcsIDAuMDA1ODg1LCAwLjAwNTg4IiwgXAotICAgICAgICAgICIwLjAwNTgwNSwgMC4wMDU4NywgMC4wMDU4OCwgMC4wMDU4ODIsIDAuMDA1ODg0LCAwLjAwNTg4MiwgMC4wMDU4NzkiLCBcCi0gICAgICAgICAgIjAuMDA1Nzg5LCAwLjAwNTg1OSwgMC4wMDU4NzIsIDAuMDA1ODc2LCAwLjAwNTg3OCwgMC4wMDU4NzgsIDAuMDA1ODczIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDExMjM3LCAwLjAxMTIzNywgMC4wMTEyMzQsIDAuMDExMjMzLCAwLjAxMTIzLCAwLjAxMTIyOCwgMC4wMTEyMjEiLCBcCi0gICAgICAgICAgIjAuMDExMjEsIDAuMDExMjMzLCAwLjAxMTIzMSwgMC4wMTEyMywgMC4wMTEyMjcsIDAuMDExMjI0LCAwLjAxMTIyMiIsIFwKLSAgICAgICAgICAiMC4wMTExNzcsIDAuMDExMjIzLCAwLjAxMTIyNSwgMC4wMTEyMjcsIDAuMDExMjIzLCAwLjAxMTIyNCwgMC4wMTEyMTkiLCBcCi0gICAgICAgICAgIjAuMDExMTQ5LCAwLjAxMTIxLCAwLjAxMTIxOCwgMC4wMTEyMTgsIDAuMDExMjE5LCAwLjAxMTIxOSwgMC4wMTEyMTMiLCBcCi0gICAgICAgICAgIjAuMDExMTI4LCAwLjAxMTIwNCwgMC4wMTEyMTYsIDAuMDExMjE3LCAwLjAxMTIxNywgMC4wMTEyMTcsIDAuMDExMjE1IiwgXAotICAgICAgICAgICIwLjAxMTEwMiwgMC4wMTExODksIDAuMDExMjA4LCAwLjAxMTIxMSwgMC4wMTEyMTMsIDAuMDExMjE2LCAwLjAxMTIxIiwgXAotICAgICAgICAgICIwLjAxMTA4OCwgMC4wMTExODMsIDAuMDExMjAxLCAwLjAxMTIwNiwgMC4wMTEyMTEsIDAuMDExMjEyLCAwLjAxMTIwOSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0NTc5LCAwLjAwNDU5MSwgMC4wMDQ1OTIsIDAuMDA0NTg4LCAwLjAwNDU4NSwgMC4wMDQ1ODksIDAuMDA0NTgiLCBcCi0gICAgICAgICAgIjAuMDA0NTcxLCAwLjAwNDYyNSwgMC4wMDQ2MjksIDAuMDA0NjM1LCAwLjAwNDYzMiwgMC4wMDQ2MjMsIDAuMDA0NjI3IiwgXAotICAgICAgICAgICIwLjAwNDUyMywgMC4wMDQ2MTUsIDAuMDA0NjI5LCAwLjAwNDYzMywgMC4wMDQ2MzUsIDAuMDA0NjMzLCAwLjAwNDYyOSIsIFwKLSAgICAgICAgICAiMC4wMDQ0ODMsIDAuMDA0NiwgMC4wMDQ2MjIsIDAuMDA0NjI3LCAwLjAwNDYzMiwgMC4wMDQ2MzMsIDAuMDA0NjMxIiwgXAotICAgICAgICAgICIwLjAwNDQ0NSwgMC4wMDQ1ODQsIDAuMDA0NjEyLCAwLjAwNDYyLCAwLjAwNDYyNiwgMC4wMDQ2MjcsIDAuMDA0NjI4IiwgXAotICAgICAgICAgICIwLjAwNDM5OCwgMC4wMDQ1NjIsIDAuMDA0NTk2LCAwLjAwNDYwOCwgMC4wMDQ2MTYsIDAuMDA0NjIxLCAwLjAwNDYyMyIsIFwKLSAgICAgICAgICAiMC4wMDQzNjUsIDAuMDA0NTM5LCAwLjAwNDU4MywgMC4wMDQ1OTgsIDAuMDA0NjA4LCAwLjAwNDYxNCwgMC4wMDQ2MTciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDMCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDkwMSwgMC4wMDkwMiwgMC4wMDkwMTgsIDAuMDA5MDIxLCAwLjAwOTAyMSwgMC4wMDkwMjEsIDAuMDA5MDIxIiwgXAotICAgICAgICAgICIwLjAwOTAxMywgMC4wMDkwNTQsIDAuMDA5MDU5LCAwLjAwOTA2MSwgMC4wMDkwNjIsIDAuMDA5MDYyLCAwLjAwOTA2MyIsIFwKLSAgICAgICAgICAiMC4wMDg5OSwgMC4wMDkwNTksIDAuMDA5MDY4LCAwLjAwOTA3LCAwLjAwOTA3MiwgMC4wMDkwNzQsIDAuMDA5MDc1IiwgXAotICAgICAgICAgICIwLjAwODk2NSwgMC4wMDkwNTQsIDAuMDA5MDY3LCAwLjAwOTA3NCwgMC4wMDkwNzQsIDAuMDA5MDc2LCAwLjAwOTA4IiwgXAotICAgICAgICAgICIwLjAwODk0NCwgMC4wMDkwNDksIDAuMDA5MDY2LCAwLjAwOTA3MSwgMC4wMDkwNzUsIDAuMDA5MDc3LCAwLjAwOTA3OSIsIFwKLSAgICAgICAgICAiMC4wMDg4OTYsIDAuMDA5MDM3LCAwLjAwOTA1OSwgMC4wMDkwNjYsIDAuMDA5MDcyLCAwLjAwOTA3NSwgMC4wMDkwNzgiLCBcCi0gICAgICAgICAgIjAuMDA4ODk3LCAwLjAwOTAyOSwgMC4wMDkwNTQsIDAuMDA5MDYyLCAwLjAwOTA3LCAwLjAwOTA3NCwgMC4wMDkwNzYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNTk3MSwgMC4wMDU5NzMsIDAuMDA1OTcsIDAuMDA1OTYzLCAwLjAwNTk1NSwgMC4wMDU5NTcsIDAuMDA1OTUiLCBcCi0gICAgICAgICAgIjAuMDA1ODk2LCAwLjAwNTkxMywgMC4wMDU5MTUsIDAuMDA1OTEsIDAuMDA1OTA5LCAwLjAwNTkwNSwgMC4wMDU5IiwgXAotICAgICAgICAgICIwLjAwNTg1NSwgMC4wMDU4OTIsIDAuMDA1ODk3LCAwLjAwNTg5OSwgMC4wMDU4OTksIDAuMDA1ODk2LCAwLjAwNTg5NCIsIFwKLSAgICAgICAgICAiMC4wMDU4MywgMC4wMDU4ODEsIDAuMDA1ODg4LCAwLjAwNTg4OSwgMC4wMDU4ODgsIDAuMDA1ODg3LCAwLjAwNTg4MyIsIFwKLSAgICAgICAgICAiMC4wMDU4MTIsIDAuMDA1ODcxLCAwLjAwNTg4MSwgMC4wMDU4ODIsIDAuMDA1ODg0LCAwLjAwNTg4MSwgMC4wMDU4NzciLCBcCi0gICAgICAgICAgIjAuMDA1Nzg4LCAwLjAwNTg1OCwgMC4wMDU4NzYsIDAuMDA1ODc5LCAwLjAwNTg4MSwgMC4wMDU4NzYsIDAuMDA1ODcyIiwgXAotICAgICAgICAgICIwLjAwNTc3OSwgMC4wMDU4NSwgMC4wMDU4NjcsIDAuMDA1ODcxLCAwLjAwNTg3MiwgMC4wMDU4NzMsIDAuMDA1ODcxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQzEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA4LCAwLjAwODAxNSwgMC4wMDgwMTUsIDAuMDA4MDE3LCAwLjAwODAxNywgMC4wMDgwMTcsIDAuMDA4MDE4IiwgXAotICAgICAgICAgICIwLjAwNzk4NSwgMC4wMDgwNDUsIDAuMDA4MDUyLCAwLjAwODA1NCwgMC4wMDgwNTYsIDAuMDA4MDU3LCAwLjAwODA1OCIsIFwKLSAgICAgICAgICAiMC4wMDc5NTEsIDAuMDA4MDQ3LCAwLjAwODA1OSwgMC4wMDgwNjQsIDAuMDA4MDY3LCAwLjAwODA2OCwgMC4wMDgwNyIsIFwKLSAgICAgICAgICAiMC4wMDc5MTksIDAuMDA4MDQyLCAwLjAwODA1NywgMC4wMDgwNjIsIDAuMDA4MDY3LCAwLjAwODA2OSwgMC4wMDgwNzIiLCBcCi0gICAgICAgICAgIjAuMDA3ODkzLCAwLjAwODAzMSwgMC4wMDgwNTMsIDAuMDA4MDYxLCAwLjAwODA2NiwgMC4wMDgwNywgMC4wMDgwNzIiLCBcCi0gICAgICAgICAgIjAuMDA3ODYzLCAwLjAwODAxNiwgMC4wMDgwNDQsIDAuMDA4MDU0LCAwLjAwODA2MSwgMC4wMDgwNjYsIDAuMDA4MDcxIiwgXAotICAgICAgICAgICIwLjAwNzg0OCwgMC4wMDgwMDYsIDAuMDA4MDM4LCAwLjAwODA0OSwgMC4wMDgwNTgsIDAuMDA4MDY0LCAwLjAwODA2OCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0NzQzLCAwLjAwNDc1OSwgMC4wMDQ3NTgsIDAuMDA0NzYsIDAuMDA0NzQ3LCAwLjAwNDc0NSwgMC4wMDQ3NDYiLCBcCi0gICAgICAgICAgIjAuMDA0NzI4LCAwLjAwNDc4OSwgMC4wMDQ3OTgsIDAuMDA0Nzk2LCAwLjAwNDc5OCwgMC4wMDQ3OTcsIDAuMDA0Nzk1IiwgXAotICAgICAgICAgICIwLjAwNDY3NSwgMC4wMDQ3NzcsIDAuMDA0Nzk0LCAwLjAwNDc5OCwgMC4wMDQ4MDIsIDAuMDA0OCwgMC4wMDQ3OTYiLCBcCi0gICAgICAgICAgIjAuMDA0NjI1LCAwLjAwNDc1OCwgMC4wMDQ3ODQsIDAuMDA0NzksIDAuMDA0Nzk1LCAwLjAwNDc5NiwgMC4wMDQ3OTUiLCBcCi0gICAgICAgICAgIjAuMDA0NTk1LCAwLjAwNDc0NiwgMC4wMDQ3NzYsIDAuMDA0Nzg2LCAwLjAwNDc5MywgMC4wMDQ3OTUsIDAuMDA0Nzk0IiwgXAotICAgICAgICAgICIwLjAwNDU1MiwgMC4wMDQ3MjIsIDAuMDA0NzYxLCAwLjAwNDc3MywgMC4wMDQ3ODQsIDAuMDA0Nzg3LCAwLjAwNDc4OSIsIFwKLSAgICAgICAgICAiMC4wMDQ1MzIsIDAuMDA0NzAzLCAwLjAwNDc0OCwgMC4wMDQ3NjIsIDAuMDA0Nzc1LCAwLjAwNDc4MSwgMC4wMDQ3ODUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBPQUkyMlgxICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKE9BSTIyWDEpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4wOTY1MjA5OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwODIzNDQ3OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDgyMDQ5NjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA4MjM0NDc7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzA2LCAwLjAwMDMwNiwgMC4wMDAzMDYsIDAuMDAwMzA2LCAwLjAwMDMwNiwgMC4wMDAzMDYsIDAuMDAwMzA2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzA3LCAwLjAwMDMwNywgMC4wMDAzMDcsIDAuMDAwMzA3LCAwLjAwMDMwNywgMC4wMDAzMDcsIDAuMDAwMzA3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihBMSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwODQ5NjY1OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDg0OTY2NTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA4NDY3Mjk7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzA2LCAwLjAwMDMwNiwgMC4wMDAzMDYsIDAuMDAwMzA2LCAwLjAwMDMwNiwgMC4wMDAzMDYsIDAuMDAwMzA2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzA3LCAwLjAwMDMwNywgMC4wMDAzMDcsIDAuMDAwMzA3LCAwLjAwMDMwNywgMC4wMDAzMDcsIDAuMDAwMzA3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNzg5NTQ5OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDc4Mjk5MzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA3ODk1NDk7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzc4LCAwLjAwMDM3OSwgMC4wMDAzNzgsIDAuMDAwMzc5LCAwLjAwMDM3OSwgMC4wMDAzNzgsIDAuMDAwMzc4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzQ4LCAwLjAwMDM0OCwgMC4wMDAzNDgsIDAuMDAwMzQ4LCAwLjAwMDM0OCwgMC4wMDAzNDgsIDAuMDAwMzQ4Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCMSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwODU4ODcyOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDg1ODU1NDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA4NTg4NzI7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzc5LCAwLjAwMDM3OSwgMC4wMDAzNzgsIDAuMDAwMzc5LCAwLjAwMDM3OCwgMC4wMDAzNzgsIDAuMDAwMzc4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzQ3LCAwLjAwMDM0OCwgMC4wMDAzNDgsIDAuMDAwMzQ4LCAwLjAwMDM0OCwgMC4wMDAzNDgsIDAuMDAwMzQ4Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMDY1MjYxOTsKLSAgICBmdW5jdGlvbiA6ICIoISgoQjArQjEpIChBMCtBMSkpKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTAiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE5NTA3LCAwLjI4NDAyMiwgMC43ODU5NDMsIDEuMjI4ODMsIDEuODE4NSwgMi45OTgsIDMuNzM0MTciLCBcCi0gICAgICAgICAgIjAuMjA2NjI2LCAwLjI5NTU4NywgMC43OTc1ODYsIDEuMjM5ODgsIDEuODI5OTksIDMuMDA5NTUsIDMuNzQ1MzkiLCBcCi0gICAgICAgICAgIjAuMjE5Njc3LCAwLjMwODYwNywgMC44MTA4MzgsIDEuMjUzNTEsIDEuODQzNDksIDMuMDIxOTIsIDMuNzU4NzMiLCBcCi0gICAgICAgICAgIjAuMjMyMzQsIDAuMzIxMzIxLCAwLjgyMzUxMSwgMS4yNjU4NCwgMS44NTYsIDMuMDM0ODcsIDMuNzcxNDEiLCBcCi0gICAgICAgICAgIjAuMjQ0NzE2LCAwLjMzMzcxMiwgMC44MzU4MjksIDEuMjc4NjgsIDEuODY3OTcsIDMuMDQ3NzksIDMuNzgzOTkiLCBcCi0gICAgICAgICAgIjAuMjY0NDQ5LCAwLjM1MzUwMSwgMC44NTU3NDgsIDEuMjk4MTEsIDEuODg4MywgMy4wNjcyNiwgMy44MDM3OCIsIFwKLSAgICAgICAgICAiMC4yODE2NjksIDAuMzcwNzgxLCAwLjg3MzQzLCAxLjMxNTY0LCAxLjkwNTk2LCAzLjA4NDY5LCAzLjgyMTMiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzYyOTE3LCAwLjUzNTU4OCwgMS41MTM3MSwgMi4zNzY5OCwgMy41MjgwNCwgNS44Mjk1NiwgNy4yNjc4MSIsIFwKLSAgICAgICAgICAiMC4zNjI4NzksIDAuNTM1NjIyLCAxLjUxMzcyLCAyLjM3NzEyLCAzLjUyODA5LCA1LjgyOTY5LCA3LjI2NzYzIiwgXAotICAgICAgICAgICIwLjM2MjkzMSwgMC41MzU1MTcsIDEuNTEzNzYsIDIuMzc3MDYsIDMuNTI3OTksIDUuODI5NSwgNy4yNjc3MSIsIFwKLSAgICAgICAgICAiMC4zNjI5MTIsIDAuNTM1NTM4LCAxLjUxMzczLCAyLjM3NjgxLCAzLjUyODA0LCA1LjgyOTYyLCA3LjI2NzkyIiwgXAotICAgICAgICAgICIwLjM2MzA0MywgMC41MzU1MjIsIDEuNTEzNzIsIDIuMzc3NDQsIDMuNTI3NzUsIDUuODI5NzIsIDcuMjY3NzMiLCBcCi0gICAgICAgICAgIjAuMzY0ODY3LCAwLjUzNTY5MiwgMS41MTM3MywgMi4zNzY3MywgMy41Mjc4NCwgNS44MzA2MiwgNy4yNjc4NSIsIFwKLSAgICAgICAgICAiMC4zNjc4NzksIDAuNTM3MDY3LCAxLjUxMzk5LCAyLjM3NzMzLCAzLjUyNzgzLCA1LjgzMDUyLCA3LjI2Nzc5Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIzMDE2OSwgMC4zMjk2NDYsIDAuODkxNTMsIDEuMzg3MDksIDIuMDQ4MTYsIDMuMzY2OTMsIDQuMTkxMzQiLCBcCi0gICAgICAgICAgIjAuMjQxOTkxLCAwLjM0MTQ4OSwgMC45MDM1ODQsIDEuMzk4NzgsIDIuMDU5NDEsIDMuMzc4NjUsIDQuMjAzMDkiLCBcCi0gICAgICAgICAgIjAuMjU2NzExLCAwLjM1NjE3NiwgMC45MTg2NTMsIDEuNDE0MjYsIDIuMDczODYsIDMuMzkzMzksIDQuMjE3ODQiLCBcCi0gICAgICAgICAgIjAuMjcwNjUxLCAwLjM3MDE1OSwgMC45MzI0MDksIDEuNDI3NzEsIDIuMDg4ODUsIDMuNDA3MzMsIDQuMjMyMDEiLCBcCi0gICAgICAgICAgIjAuMjg0MzE1LCAwLjM4NDAzNSwgMC45NDYzOTEsIDEuNDQyMDcsIDIuMTAxNzIsIDMuNDIxMDMsIDQuMjQ1OTgiLCBcCi0gICAgICAgICAgIjAuMzA1OTkyLCAwLjQwNTY2NCwgMC45Njc4MzgsIDEuNDYzNDEsIDIuMTI0MzMsIDMuNDQyODcsIDQuMjY3NTMiLCBcCi0gICAgICAgICAgIjAuMzI0ODI0LCAwLjQyNDEzMiwgMC45ODY4OTYsIDEuNDgyODQsIDIuMTQyODgsIDMuNDYxOTgsIDQuMjg2NjMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzgyNjEsIDAuNTcxNzc4LCAxLjY0NDYzLCAyLjU5MTEsIDMuODUzNjgsIDYuMzc4OTksIDcuOTUxNzQiLCBcCi0gICAgICAgICAgIjAuMzgyNTYyLCAwLjU3MTc5NCwgMS42NDUyLCAyLjU5MDMzLCAzLjg1Mjk5LCA2LjM3OTAyLCA3Ljk1MTQxIiwgXAotICAgICAgICAgICIwLjM4MjU3MiwgMC41NzE3NjksIDEuNjQ1MjIsIDIuNTkxNjUsIDMuODUyNjEsIDYuMzc4ODUsIDcuOTUxNDciLCBcCi0gICAgICAgICAgIjAuMzgyNjA4LCAwLjU3MTc0OSwgMS42NDQ5MSwgMi41OTEwOCwgMy44NTM1MSwgNi4zNzYwMSwgNy45NTE2OSIsIFwKLSAgICAgICAgICAiMC4zODI1NzEsIDAuNTcxNzgxLCAxLjY0NDksIDIuNTkxNTYsIDMuODUyNTYsIDYuMzc4ODYsIDcuOTQ5NjQiLCBcCi0gICAgICAgICAgIjAuMzgyNzM4LCAwLjU3MTYzOCwgMS42NDQzNywgMi41OTEyMywgMy44NTM0NiwgNi4zNzkwMSwgNy45NTE1NiIsIFwKLSAgICAgICAgICAiMC4zODM1OTUsIDAuNTcxOTA4LCAxLjY0NTIyLCAyLjU5MTYzLCAzLjg1NDIsIDYuMzc5MTUsIDcuOTUxNjYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE4ODQ0MSwgMC4yNzc0MzIsIDAuNzc5NTQ2LCAxLjIyMTk5LCAxLjgxMjE4LCAyLjk5MDc5LCAzLjcyNzM3IiwgXAotICAgICAgICAgICIwLjE5ODYyOCwgMC4yODc1MzksIDAuNzg5Nzc0LCAxLjIzMjQ4LCAxLjgyMTk4LCAzLjAwMTQyLCAzLjczNzcyIiwgXAotICAgICAgICAgICIwLjIxMTU5MSwgMC4zMDA1NTUsIDAuODAyNTUyLCAxLjI0NDk5LCAxLjgzNTE2LCAzLjAxNDUxLCAzLjc1MDcyIiwgXAotICAgICAgICAgICIwLjIyNDU5MSwgMC4zMTM2MSwgMC44MTU1OTMsIDEuMjU4NjYsIDEuODQ4NjMsIDMuMDI3MTksIDMuNzYzNzYiLCBcCi0gICAgICAgICAgIjAuMjM3Njc3LCAwLjMyNjcsIDAuODI4OTYyLCAxLjI3MTYyLCAxLjg2MTksIDMuMDQwMjgsIDMuNzc2ODciLCBcCi0gICAgICAgICAgIjAuMjU4NjI4LCAwLjM0NzYyOSwgMC44NDk5ODMsIDEuMjkyMTEsIDEuODgyNiwgMy4wNjE1NiwgMy43OTc4NiIsIFwKLSAgICAgICAgICAiMC4yNzcwMzgsIDAuMzY1OTY1LCAwLjg2ODA5MywgMS4zMTA3NCwgMS45MDA1NywgMy4wNzk2MSwgMy44MTYyMSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zNjI4OTEsIDAuNTM1NTU3LCAxLjUxMzY5LCAyLjM3NzQ4LCAzLjUyNzg3LCA1LjgyOTc1LCA3LjI2Nzg0IiwgXAotICAgICAgICAgICIwLjM2MjkyNiwgMC41MzU1NTUsIDEuNTE0MTEsIDIuMzc2NzksIDMuNTI3OTIsIDUuODMwNzUsIDcuMjY5MjkiLCBcCi0gICAgICAgICAgIjAuMzYyOTE1LCAwLjUzNTUzMiwgMS41MTM5NCwgMi4zNzc1OSwgMy41Mjg0OCwgNS44MzA2NiwgNy4yNjg4MiIsIFwKLSAgICAgICAgICAiMC4zNjI4NDcsIDAuNTM1NTA2LCAxLjUxMzc4LCAyLjM3NzMyLCAzLjUyODUxLCA1LjgyOTUsIDcuMjY3ODIiLCBcCi0gICAgICAgICAgIjAuMzYzNDUxLCAwLjUzNTUyMiwgMS41MTM3MiwgMi4zNzY4NywgMy41Mjg0OCwgNS44MjkzNCwgNy4yNjc4IiwgXAotICAgICAgICAgICIwLjM2NzMxLCAwLjUzNjA2NywgMS41MTM3NiwgMi4zNzY3LCAzLjUyNzc4LCA1LjgyOTQ0LCA3LjI2OTI4IiwgXAotICAgICAgICAgICIwLjM3Mjc4MSwgMC41Mzg2MjYsIDEuNTEzOCwgMi4zNzcwMSwgMy41Mjc1NCwgNS44MzA0NywgNy4yNjc3OCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMTk0MzksIDAuMzE4NjgzLCAwLjg4MDIzMiwgMS4zNzU1OCwgMi4wMzYsIDMuMzU0ODIsIDQuMTc5NDQiLCBcCi0gICAgICAgICAgIjAuMjMxNzQ4LCAwLjMzMTA3LCAwLjg5Mjc2MSwgMS4zODc1NCwgMi4wNDg0NiwgMy4zNjc0NiwgNC4xOTE4NiIsIFwKLSAgICAgICAgICAiMC4yNDY0NDUsIDAuMzQ1ODQ3LCAwLjkwNzkwOCwgMS40MDM0OCwgMi4wNjMyNSwgMy4zODIzNCwgNC4yMDY3NiIsIFwKLSAgICAgICAgICAiMC4yNjAzMzksIDAuMzU5NzgsIDAuOTIxNDA5LCAxLjQxNjk0LCAyLjA3Nzk4LCAzLjM5NjI0LCA0LjIyMDk2IiwgXAotICAgICAgICAgICIwLjI3MzkyOCwgMC4zNzM1MSwgMC45MzU3NDYsIDEuNDMxMzMsIDIuMDkxNSwgMy40MTA4NCwgNC4yMzQ5MSIsIFwKLSAgICAgICAgICAiMC4yOTUzNDMsIDAuMzk1MDQsIDAuOTU3MzM2LCAxLjQ1MjU5LCAyLjExMzQ2LCAzLjQzMTg3LCA0LjI1NjQ4IiwgXAotICAgICAgICAgICIwLjMxNDIxNiwgMC40MTM3MTIsIDAuOTc2MDYzLCAxLjQ3MjAxLCAyLjEzMTk0LCAzLjQ1MDk4LCA0LjI3NTU4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjM3MDY0MiwgMC41NjAwMTMsIDEuNjMyMTMsIDIuNTc4MzUsIDMuODQwODIsIDYuMzY1NzIsIDcuOTM3OTkiLCBcCi0gICAgICAgICAgIjAuMzcwNTA1LCAwLjU2MDAwNywgMS42MzIyMiwgMi41Nzc5NSwgMy44NDAwNiwgNi4zNjU0LCA3LjkzNzc5IiwgXAotICAgICAgICAgICIwLjM3MDYzMiwgMC41NjAxNzQsIDEuNjMyNjEsIDIuNTc4ODIsIDMuODQwMDcsIDYuMzY1MzYsIDcuOTM3ODEiLCBcCi0gICAgICAgICAgIjAuMzcwNjIsIDAuNTYwMjY0LCAxLjYzMTk5LCAyLjU3ODM3LCAzLjg0MDMxLCA2LjM2NTE3LCA3LjkzOCIsIFwKLSAgICAgICAgICAiMC4zNzA2MjQsIDAuNTYwMjc3LCAxLjYzMjQ4LCAyLjU3ODE5LCAzLjg0MDIxLCA2LjM2MzQ1LCA3LjkzNTIyIiwgXAotICAgICAgICAgICIwLjM3MDkyMSwgMC41NjAxOTMsIDEuNjMyNDIsIDIuNTc4MzgsIDMuODQwMjMsIDYuMzY1NTEsIDcuOTM3ODQiLCBcCi0gICAgICAgICAgIjAuMzcyNDQ2LCAwLjU2MDA5OSwgMS42MzI2OCwgMi41Nzg3NywgMy44NDEwMSwgNi4zNjU2NSwgNy45Mzc5NCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTc5ODc3LCAwLjI2ODc2MywgMC43NzIxNDQsIDEuMjE2MzEsIDEuODA4NzcsIDIuOTkzNDEsIDMuNzMzNTciLCBcCi0gICAgICAgICAgIjAuMTkxNjY3LCAwLjI4MDY2NywgMC43ODM5OTksIDEuMjI4MzIsIDEuODIwNjMsIDMuMDA1MjksIDMuNzQ1NTMiLCBcCi0gICAgICAgICAgIjAuMjA0NzM5LCAwLjI5Mzc5NywgMC43OTczOTgsIDEuMjQxNDIsIDEuODMzNzMsIDMuMDE4NTYsIDMuNzU4ODEiLCBcCi0gICAgICAgICAgIjAuMjE3MjQ3LCAwLjMwNjIwNCwgMC44MDk4OSwgMS4yNTQwMiwgMS44NDY1NCwgMy4wMzEyNSwgMy43NzE0MiIsIFwKLSAgICAgICAgICAiMC4yMjk2NjUsIDAuMzE4NjM5LCAwLjgyMjI3OSwgMS4yNjY1OCwgMS44NTg4MiwgMy4wNDM0NSwgMy43ODQiLCBcCi0gICAgICAgICAgIjAuMjQ5MzIsIDAuMzM4NTI0LCAwLjg0MjI3NiwgMS4yODYzOSwgMS44Nzg3MSwgMy4wNjMzMiwgMy44MDM4IiwgXAotICAgICAgICAgICIwLjI2NjUyOSwgMC4zNTU2MTIsIDAuODU5Njc0LCAxLjMwMzk4LCAxLjg5NjIzLCAzLjA4MDkyLCAzLjgyMTMyIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjM0ODU3MiwgMC41MjE1MzEsIDEuNTAyOSwgMi4zNjk2MiwgMy41MzI0NiwgNS44MzY5NSwgNy4yNzk2OCIsIFwKLSAgICAgICAgICAiMC4zNDg1NDksIDAuNTIxNTk4LCAxLjUwMjk2LCAyLjM2OTczLCAzLjUzMjM3LCA1LjgzNzMyLCA3LjI3OTkiLCBcCi0gICAgICAgICAgIjAuMzQ4NDYzLCAwLjUyMTUxMiwgMS41MDI3NywgMi4zNjk4MiwgMy41MzI2MiwgNS44MzU3OCwgNy4yODEzNyIsIFwKLSAgICAgICAgICAiMC4zNDg0NDIsIDAuNTIxNDIxLCAxLjUwMjk0LCAyLjM2ODg4LCAzLjUzMjQsIDUuODM3NiwgNy4yODE4NCIsIFwKLSAgICAgICAgICAiMC4zNDg3OTIsIDAuNTIxNDI4LCAxLjUwMjY3LCAyLjM2OTE2LCAzLjUyNDM1LCA1LjgzNjM4LCA3LjI4MTAyIiwgXAotICAgICAgICAgICIwLjM1MTA3NiwgMC41MjE5NDgsIDEuNTAzMDIsIDIuMzY5NDcsIDMuNTI0MTMsIDUuODM3MywgNy4yODI1NyIsIFwKLSAgICAgICAgICAiMC4zNTQ0MjEsIDAuNTIzNDAzLCAxLjUwMjY1LCAyLjM2ODg1LCAzLjUyNDI0LCA1LjgzNzAzLCA3LjI4MjY3Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIxNTA4NywgMC4zMTQ1NjMsIDAuODc2NTE1LCAxLjM3MTUyLCAyLjAzMjQxLCAzLjM1MTgxLCA0LjE3NTgxIiwgXAotICAgICAgICAgICIwLjIyNTM0MSwgMC4zMjQ5LCAwLjg4NjkwNywgMS4zODE5OSwgMi4wNDI2OSwgMy4zNjIxMywgNC4xODY0OCIsIFwKLSAgICAgICAgICAiMC4yMzg1NTMsIDAuMzM4MTEzLCAwLjkwMDE1MSwgMS4zOTU3LCAyLjA1NjI2LCAzLjM3NjIzLCA0LjE5OTkzIiwgXAotICAgICAgICAgICIwLjI1MTkxLCAwLjM1MTMwNywgMC45MTM2MDgsIDEuNDA5MDksIDIuMDY5MywgMy4zODkxOSwgNC4yMTMyOCIsIFwKLSAgICAgICAgICAiMC4yNjQ2NTMsIDAuMzY0NTQ4LCAwLjkyNzExNSwgMS40MjI3NCwgMi4wODI2NiwgMy40MDI0MywgNC4yMjY4NCIsIFwKLSAgICAgICAgICAiMC4yODYwMDYsIDAuMzg1NTczLCAwLjk0OTA2MiwgMS40NDM2MSwgMi4xMDM1NiwgMy40MjM0LCA0LjI0NzI4IiwgXAotICAgICAgICAgICIwLjMwNDYwOSwgMC40MDQxNjIsIDAuOTY2NTE5LCAxLjQ2MjA4LCAyLjEyMjE0LCAzLjQ0MTQ2LCA0LjI2NjA1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjM4MjY1NSwgMC41NzE3NTgsIDEuNjQ1MTYsIDIuNTkwOTEsIDMuODUzMDYsIDYuMzc2MDgsIDcuOTUxMjUiLCBcCi0gICAgICAgICAgIjAuMzgyNTE3LCAwLjU3MTY0LCAxLjY0NTE0LCAyLjU5Mjg3LCAzLjg1Mjk0LCA2LjM3NTY3LCA3Ljk1MTU3IiwgXAotICAgICAgICAgICIwLjM4MjM1NCwgMC41NzE2OTMsIDEuNjQ0MzcsIDIuNTkxMTYsIDMuODUyNjYsIDYuMzc3MTksIDcuOTUxNjQiLCBcCi0gICAgICAgICAgIjAuMzgyMjQyLCAwLjU3MTcyNywgMS42NDUxNSwgMi41OTE2NSwgMy44NTI3NCwgNi4zNzkzMiwgNy45NDk2NiIsIFwKLSAgICAgICAgICAiMC4zODIzNSwgMC41NzE3NiwgMS42NDUyNSwgMi41OTEyOSwgMy44NTI2MSwgNi4zNzU1NiwgNy45NTA5MiIsIFwKLSAgICAgICAgICAiMC4zODQzNjEsIDAuNTcxNTc5LCAxLjY0NDYzLCAyLjU5MTM0LCAzLjg1Mjg0LCA2LjM3OTMxLCA3Ljk1MTM4IiwgXAotICAgICAgICAgICIwLjM4ODM5NywgMC41NzI3OTEsIDEuNjQ0NDUsIDIuNTkxMzMsIDMuODUzMzIsIDYuMzc5MTIsIDcuOTUxNTkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE3MjkzOCwgMC4yNjE5MDEsIDAuNzY1MzE3LCAxLjIwOTU2LCAxLjgwMTc4LCAyLjk4NjY0LCAzLjcyNjc5IiwgXAotICAgICAgICAgICIwLjE4MzMzMSwgMC4yNzIzNSwgMC43NzU3OTMsIDEuMjIwMTYsIDEuODEyNDYsIDIuOTk2ODMsIDMuNzM3NDMiLCBcCi0gICAgICAgICAgIjAuMTk2MzQ5LCAwLjI4NTM1OCwgMC43ODg5MTIsIDEuMjMzMTEsIDEuODI1NTcsIDMuMDEwMDUsIDMuNzUwNTEiLCBcCi0gICAgICAgICAgIjAuMjA5Mjc3LCAwLjI5ODM3NywgMC44MDE4NzUsIDEuMjQ2MzMsIDEuODM4NjUsIDMuMDIzMDksIDMuNzYzNTYiLCBcCi0gICAgICAgICAgIjAuMjIyMzIsIDAuMzExNDI0LCAwLjgxNTAyOSwgMS4yNTk0NywgMS44NTE3MSwgMy4wMzYxNiwgMy43NzY2NiIsIFwKLSAgICAgICAgICAiMC4yNDMyNTEsIDAuMzMyMzMzLCAwLjgzNjAyMSwgMS4yODAyNiwgMS44NzI3NCwgMy4wNTczNywgMy43OTc2NSIsIFwKLSAgICAgICAgICAiMC4yNjE2NjYsIDAuMzUwNzEyLCAwLjg1NDM5MywgMS4yOTg3MSwgMS44OTA5MSwgMy4wNzU1OSwgMy44MTU5OCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zNDg1MjEsIDAuNTIxNTExLCAxLjUwMjcsIDIuMzY5NCwgMy41MjQyMSwgNS44Mzc1MiwgNy4yODE5IiwgXAotICAgICAgICAgICIwLjM0ODQ2MywgMC41MjE1NDgsIDEuNTAyOTEsIDIuMzY5OCwgMy41MjUyNSwgNS44MzcwMSwgNy4yODE5NSIsIFwKLSAgICAgICAgICAiMC4zNDg1MTYsIDAuNTIxNDM2LCAxLjUwMjc4LCAyLjM2OTIsIDMuNTMyNCwgNS44Mzc1NywgNy4yODE4IiwgXAotICAgICAgICAgICIwLjM0ODM5OCwgMC41MjE1MjQsIDEuNTAyODYsIDIuMzY5NTksIDMuNTMyNiwgNS44MzczMSwgNy4yODI1NiIsIFwKLSAgICAgICAgICAiMC4zNDk1MiwgMC41MjE0MTMsIDEuNTAyNzYsIDIuMzY4OTYsIDMuNTI0NjMsIDUuODM3MTksIDcuMjgyNjMiLCBcCi0gICAgICAgICAgIjAuMzU0MTY5LCAwLjUyMjM3OSwgMS41MDI4LCAyLjM2OTYyLCAzLjUzMjYzLCA1LjgzNjkzLCA3LjI4MTIzIiwgXAotICAgICAgICAgICIwLjM2MDMyOCwgMC41MjU0NjEsIDEuNTAyODksIDIuMzY5MDEsIDMuNTI0MzUsIDUuODM2NjcsIDcuMjgyODMiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjA0MTY2LCAwLjMwMzQxOSwgMC44NjUwNTYsIDEuMzYwMTUsIDIuMDIwNjEsIDMuMzM5ODksIDQuMTYzOTEiLCBcCi0gICAgICAgICAgIjAuMjE0OTU5LCAwLjMxNDI2MSwgMC44NzU2NzMsIDEuMzcxNiwgMi4wMzExOSwgMy4zNTA1NCwgNC4xNzUxNiIsIFwKLSAgICAgICAgICAiMC4yMjgwMywgMC4zMjc0ODgsIDAuODkwMDIyLCAxLjM4NTU2LCAyLjA0NTY3LCAzLjM2NDIyLCA0LjE4ODYiLCBcCi0gICAgICAgICAgIjAuMjQxMjM0LCAwLjM0MDcyOSwgMC45MDI3MjgsIDEuMzk4MDQsIDIuMDU4MiwgMy4zNzgsIDQuMjAyMDEiLCBcCi0gICAgICAgICAgIjAuMjU0MzczLCAwLjM1MzkxMywgMC45MTYyMjUsIDEuNDExOCwgMi4wNzE3NCwgMy4zOTEyMiwgNC4yMTU2MiIsIFwKLSAgICAgICAgICAiMC4yNzUzNDYsIDAuMzc1Mzg1LCAwLjkzNjc0MywgMS40MzI2MiwgMi4wOTI0NywgMy40MTIyMywgNC4yMzYwNCIsIFwKLSAgICAgICAgICAiMC4yOTM4MzksIDAuMzkzMzQ2LCAwLjk1NTU5LCAxLjQ1MTAzLCAyLjExMTA1LCAzLjQzMDI2LCA0LjI1NDgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzcwNTEsIDAuNTU5ODcxLCAxLjYzMjcsIDIuNTc4MjcsIDMuODQwMTksIDYuMzYzNjgsIDcuOTM3MSIsIFwKLSAgICAgICAgICAiMC4zNzA1NDIsIDAuNTU5ODUyLCAxLjYzMiwgMi41Nzg1NCwgMy44MzkxOCwgNi4zNjU1MiwgNy45Mzc3OSIsIFwKLSAgICAgICAgICAiMC4zNzAzNjIsIDAuNTU5Nzk0LCAxLjYzMjM4LCAyLjU3ODAyLCAzLjg0MDE3LCA2LjM2NTM0LCA3LjkzNzczIiwgXAotICAgICAgICAgICIwLjM3MDYyNSwgMC41NjAwNDMsIDEuNjMyNDgsIDIuNTc4MDMsIDMuODM5NDQsIDYuMzY1NjEsIDcuOTM3MjMiLCBcCi0gICAgICAgICAgIjAuMzcwMjUxLCAwLjU1OTgzLCAxLjYzMjYsIDIuNTc4MiwgMy44NDAxNywgNi4zNjU4OCwgNy45Mzc4MSIsIFwKLSAgICAgICAgICAiMC4zNzI3NTgsIDAuNTU5Nzc3LCAxLjYzMTgzLCAyLjU3ODQ3LCAzLjgzOTQ3LCA2LjM2NTYxLCA3LjkzNzQ2IiwgXAotICAgICAgICAgICIwLjM3NzE1NSwgMC41NjEwMjksIDEuNjMyMTgsIDIuNTc4MzYsIDMuODQwMDQsIDYuMzY1NDEsIDcuOTM3NjYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyODE1LCAwLjAwMjgxNSwgMC4wMDI4MTMsIDAuMDAyODEzLCAwLjAwMjgxLCAwLjAwMjgwNiwgMC4wMDI4MDQiLCBcCi0gICAgICAgICAgIjAuMDAyODA2LCAwLjAwMjgwNiwgMC4wMDI4MDUsIDAuMDAyODA0LCAwLjAwMjgwMywgMC4wMDI3OTksIDAuMDAyNzk1IiwgXAotICAgICAgICAgICIwLjAwMjgwMywgMC4wMDI4MDMsIDAuMDAyODA0LCAwLjAwMjgwMiwgMC4wMDI4MDEsIDAuMDAyNzk3LCAwLjAwMjc5NCIsIFwKLSAgICAgICAgICAiMC4wMDI4LCAwLjAwMjgwMSwgMC4wMDI4MDIsIDAuMDAyODAxLCAwLjAwMjc5OSwgMC4wMDI3OTUsIDAuMDAyNzkzIiwgXAotICAgICAgICAgICIwLjAwMjc5OCwgMC4wMDI4LCAwLjAwMjgwMiwgMC4wMDI4MDEsIDAuMDAyNzk5LCAwLjAwMjc5NiwgMC4wMDI3OTMiLCBcCi0gICAgICAgICAgIjAuMDAyNzk2LCAwLjAwMjc5OCwgMC4wMDI4LCAwLjAwMjgsIDAuMDAyNzk4LCAwLjAwMjc5NSwgMC4wMDI3OTIiLCBcCi0gICAgICAgICAgIjAuMDAyNzk0LCAwLjAwMjc5NiwgMC4wMDI4LCAwLjAwMjc5OSwgMC4wMDI3OTksIDAuMDAyNzk1LCAwLjAwMjc5MiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTAxNCwgMC4wMDEwMTUsIDAuMDAxMDE0LCAwLjAwMTAxNCwgMC4wMDEwMTIsIDAuMDAxMDEsIDAuMDAxMDA5IiwgXAotICAgICAgICAgICIwLjAwMTAwMSwgMC4wMDEwMDEsIDAuMDAxMDAyLCAwLjAwMTAwMiwgMC4wMDEwMDIsIDAuMDAwOTk4LCAwLjAwMDk5NyIsIFwKLSAgICAgICAgICAiMC4wMDA5OTUsIDAuMDAwOTk2LCAwLjAwMDk5OCwgMC4wMDA5OTksIDAuMDAwOTk3LCAwLjAwMDk5NiwgMC4wMDA5OTQiLCBcCi0gICAgICAgICAgIjAuMDAwOTkxLCAwLjAwMDk5MywgMC4wMDA5OTYsIDAuMDAwOTk2LCAwLjAwMDk5NiwgMC4wMDA5OTQsIDAuMDAwOTkzIiwgXAotICAgICAgICAgICIwLjAwMDk4NywgMC4wMDA5OTEsIDAuMDAwOTk2LCAwLjAwMDk5NiwgMC4wMDA5OTUsIDAuMDAwOTk0LCAwLjAwMDk5MiIsIFwKLSAgICAgICAgICAiMC4wMDA5ODMsIDAuMDAwOTg3LCAwLjAwMDk5NCwgMC4wMDA5OTUsIDAuMDAwOTk1LCAwLjAwMDk5MywgMC4wMDA5OTIiLCBcCi0gICAgICAgICAgIjAuMDAwOTgsIDAuMDAwOTg0LCAwLjAwMDk5MiwgMC4wMDA5OTMsIDAuMDAwOTk0LCAwLjAwMDk5MywgMC4wMDA5OTEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyNTYxLCAwLjAwMjU2LCAwLjAwMjU1OSwgMC4wMDI1NTgsIDAuMDAyNTU3LCAwLjAwMjU1MywgMC4wMDI1NTEiLCBcCi0gICAgICAgICAgIjAuMDAyNTUsIDAuMDAyNTUxLCAwLjAwMjU1MSwgMC4wMDI1NSwgMC4wMDI1NDgsIDAuMDAyNTQ1LCAwLjAwMjU0MSIsIFwKLSAgICAgICAgICAiMC4wMDI1NDUsIDAuMDAyNTQ3LCAwLjAwMjU0OCwgMC4wMDI1NDcsIDAuMDAyNTQ2LCAwLjAwMjU0MiwgMC4wMDI1MzkiLCBcCi0gICAgICAgICAgIjAuMDAyNTQxLCAwLjAwMjU0NCwgMC4wMDI1NDYsIDAuMDAyNTQ2LCAwLjAwMjU0NCwgMC4wMDI1NDEsIDAuMDAyNTM4IiwgXAotICAgICAgICAgICIwLjAwMjUzOCwgMC4wMDI1NDEsIDAuMDAyNTQ1LCAwLjAwMjU0NSwgMC4wMDI1NDQsIDAuMDAyNTQsIDAuMDAyNTM4IiwgXAotICAgICAgICAgICIwLjAwMjUzNCwgMC4wMDI1MzgsIDAuMDAyNTQzLCAwLjAwMjU0MywgMC4wMDI1NDMsIDAuMDAyNTQsIDAuMDAyNTM3IiwgXAotICAgICAgICAgICIwLjAwMjUzMSwgMC4wMDI1MzUsIDAuMDAyNTQyLCAwLjAwMjU0MywgMC4wMDI1NDIsIDAuMDAyNTM5LCAwLjAwMjUzNyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDY4OCwgMC4wMDA2ODksIDAuMDAwNjksIDAuMDAwNjg2LCAwLjAwMDY4OSwgMC4wMDA2ODgsIDAuMDAwNjg3IiwgXAotICAgICAgICAgICIwLjAwMDY5MywgMC4wMDA2OTYsIDAuMDAwNzAxLCAwLjAwMDcsIDAuMDAwNzAyLCAwLjAwMDcsIDAuMDAwNjk5IiwgXAotICAgICAgICAgICIwLjAwMDY4OCwgMC4wMDA2OTMsIDAuMDAwNywgMC4wMDA3MDEsIDAuMDAwNzAyLCAwLjAwMDcwMiwgMC4wMDA3MDEiLCBcCi0gICAgICAgICAgIjAuMDAwNjgsIDAuMDAwNjg4LCAwLjAwMDY5OSwgMC4wMDA3MDEsIDAuMDAwNzAyLCAwLjAwMDcwMiwgMC4wMDA3MDIiLCBcCi0gICAgICAgICAgIjAuMDAwNjc0LCAwLjAwMDY4MywgMC4wMDA2OTcsIDAuMDAwNywgMC4wMDA3MDEsIDAuMDAwNzAxLCAwLjAwMDcwMSIsIFwKLSAgICAgICAgICAiMC4wMDA2NjUsIDAuMDAwNjc1LCAwLjAwMDY5NCwgMC4wMDA2OTgsIDAuMDAwNywgMC4wMDA3MDEsIDAuMDAwNyIsIFwKLSAgICAgICAgICAiMC4wMDA2NTcsIDAuMDAwNjY5LCAwLjAwMDY5MSwgMC4wMDA2OTYsIDAuMDAwNjk4LCAwLjAwMDcsIDAuMDAwNyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDE5MDcsIDAuMDAxOTA4LCAwLjAwMTkwOSwgMC4wMDE5MDksIDAuMDAxOTA4LCAwLjAwMTkwOSwgMC4wMDE5MDgiLCBcCi0gICAgICAgICAgIjAuMDAxOTExLCAwLjAwMTkxMywgMC4wMDE5MTUsIDAuMDAxOTE2LCAwLjAwMTkxNiwgMC4wMDE5MTYsIDAuMDAxOTE2IiwgXAotICAgICAgICAgICIwLjAwMTkwOCwgMC4wMDE5MTEsIDAuMDAxOTE1LCAwLjAwMTkxNiwgMC4wMDE5MTcsIDAuMDAxOTE3LCAwLjAwMTkxNyIsIFwKLSAgICAgICAgICAiMC4wMDE5MDQsIDAuMDAxOTA5LCAwLjAwMTkxNSwgMC4wMDE5MTcsIDAuMDAxOTE3LCAwLjAwMTkxNywgMC4wMDE5MTciLCBcCi0gICAgICAgICAgIjAuMDAxOTAxLCAwLjAwMTkwNiwgMC4wMDE5MTQsIDAuMDAxOTE2LCAwLjAwMTkxNywgMC4wMDE5MTcsIDAuMDAxOTE3IiwgXAotICAgICAgICAgICIwLjAwMTg5NiwgMC4wMDE5MDMsIDAuMDAxOTEzLCAwLjAwMTkxNSwgMC4wMDE5MTYsIDAuMDAxOTE3LCAwLjAwMTkxOCIsIFwKLSAgICAgICAgICAiMC4wMDE4OTIsIDAuMDAxODk5LCAwLjAwMTkxMSwgMC4wMDE5MTQsIDAuMDAxOTE2LCAwLjAwMTkxNywgMC4wMDE5MTciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDEwMTUsIDAuMDAxMDE1LCAwLjAwMTAxNSwgMC4wMDEwMTYsIDAuMDAxMDE3LCAwLjAwMTAxLCAwLjAwMTAwOSIsIFwKLSAgICAgICAgICAiMC4wMDA5OTksIDAuMDAxLCAwLjAwMTAwMiwgMC4wMDEwMDEsIDAuMDAwOTk4LCAwLjAwMDk5OCwgMC4wMDA5OTciLCBcCi0gICAgICAgICAgIjAuMDAwOTkyLCAwLjAwMDk5NSwgMC4wMDA5OTgsIDAuMDAwOTk5LCAwLjAwMDk5NywgMC4wMDA5OTYsIDAuMDAwOTk0IiwgXAotICAgICAgICAgICIwLjAwMDk4OCwgMC4wMDA5OTEsIDAuMDAwOTk2LCAwLjAwMDk5NiwgMC4wMDA5OTYsIDAuMDAwOTk0LCAwLjAwMDk5MiIsIFwKLSAgICAgICAgICAiMC4wMDA5ODIsIDAuMDAwOTg4LCAwLjAwMDk5NSwgMC4wMDA5OTUsIDAuMDAwOTk1LCAwLjAwMDk5MywgMC4wMDA5OTIiLCBcCi0gICAgICAgICAgIjAuMDAwOTgsIDAuMDAwOTg1LCAwLjAwMDk5MywgMC4wMDA5OTMsIDAuMDAwOTk0LCAwLjAwMDk5MiwgMC4wMDA5OTEiLCBcCi0gICAgICAgICAgIjAuMDAwOTc3LCAwLjAwMDk4MiwgMC4wMDA5OTEsIDAuMDAwOTkzLCAwLjAwMDk5MywgMC4wMDA5OTIsIDAuMDAwOTkxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTY1MiwgMC4wMDE2NTIsIDAuMDAxNjUzLCAwLjAwMTY1MywgMC4wMDE2NTMsIDAuMDAxNjUzLCAwLjAwMTY1MyIsIFwKLSAgICAgICAgICAiMC4wMDE2NTMsIDAuMDAxNjU2LCAwLjAwMTY1OSwgMC4wMDE2NiwgMC4wMDE2NiwgMC4wMDE2NjEsIDAuMDAxNjYxIiwgXAotICAgICAgICAgICIwLjAwMTY0OCwgMC4wMDE2NTMsIDAuMDAxNjU5LCAwLjAwMTY2LCAwLjAwMTY2MSwgMC4wMDE2NjEsIDAuMDAxNjYyIiwgXAotICAgICAgICAgICIwLjAwMTY0MywgMC4wMDE2NDksIDAuMDAxNjU4LCAwLjAwMTY2LCAwLjAwMTY2MSwgMC4wMDE2NjIsIDAuMDAxNjYyIiwgXAotICAgICAgICAgICIwLjAwMTYzOCwgMC4wMDE2NDYsIDAuMDAxNjU3LCAwLjAwMTY1OSwgMC4wMDE2NiwgMC4wMDE2NjIsIDAuMDAxNjYyIiwgXAotICAgICAgICAgICIwLjAwMTYzMiwgMC4wMDE2NDEsIDAuMDAxNjU1LCAwLjAwMTY1OCwgMC4wMDE2NiwgMC4wMDE2NjEsIDAuMDAxNjYxIiwgXAotICAgICAgICAgICIwLjAwMTYyNywgMC4wMDE2MzcsIDAuMDAxNjUzLCAwLjAwMTY1NywgMC4wMDE2NTksIDAuMDAxNjYsIDAuMDAxNjYxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwNjgsIDAuMDAwNjgxLCAwLjAwMDY4MSwgMC4wMDA2ODEsIDAuMDAwNjg5LCAwLjAwMDY4LCAwLjAwMDY3OSIsIFwKLSAgICAgICAgICAiMC4wMDA2ODQsIDAuMDAwNjg3LCAwLjAwMDY5MiwgMC4wMDA2OTMsIDAuMDAwNjkzLCAwLjAwMDY5MiwgMC4wMDA2OTEiLCBcCi0gICAgICAgICAgIjAuMDAwNjc3LCAwLjAwMDY4MywgMC4wMDA2OTIsIDAuMDAwNjkzLCAwLjAwMDY5NCwgMC4wMDA2OTMsIDAuMDAwNjkzIiwgXAotICAgICAgICAgICIwLjAwMDY2OSwgMC4wMDA2NzgsIDAuMDAwNjksIDAuMDAwNjkzLCAwLjAwMDY5NCwgMC4wMDA2OTQsIDAuMDAwNjkzIiwgXAotICAgICAgICAgICIwLjAwMDY2MiwgMC4wMDA2NzMsIDAuMDAwNjg4LCAwLjAwMDY5MiwgMC4wMDA2OTMsIDAuMDAwNjk0LCAwLjAwMDY5MyIsIFwKLSAgICAgICAgICAiMC4wMDA2NTQsIDAuMDAwNjY0LCAwLjAwMDY4NSwgMC4wMDA2ODksIDAuMDAwNjkyLCAwLjAwMDY5MywgMC4wMDA2OTMiLCBcCi0gICAgICAgICAgIjAuMDAwNjQ3LCAwLjAwMDY2LCAwLjAwMDY4MywgMC4wMDA2ODgsIDAuMDAwNjkxLCAwLjAwMDY5MiwgMC4wMDA2OTIiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBPQUkyMlgyICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKE9BSTIyWDIpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4xOTMwMjU7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE2Njk0MjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE2NjM0OTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE2Njk0MjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA2MTIsIDAuMDAwNjExLCAwLjAwMDYxMSwgMC4wMDA2MTEsIDAuMDAwNjExLCAwLjAwMDYxMSwgMC4wMDA2MTEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA2MTUsIDAuMDAwNjE1LCAwLjAwMDYxNCwgMC4wMDA2MTQsIDAuMDAwNjE0LCAwLjAwMDYxNSwgMC4wMDA2MTUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEExKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE1ODg7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNTg4OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTU4MjAzOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDYxMiwgMC4wMDA2MTIsIDAuMDAwNjEyLCAwLjAwMDYxMiwgMC4wMDA2MTIsIDAuMDAwNjEyLCAwLjAwMDYxMiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDYxNCwgMC4wMDA2MTQsIDAuMDAwNjE0LCAwLjAwMDYxNCwgMC4wMDA2MTQsIDAuMDAwNjE0LCAwLjAwMDYxNCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQjApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTYyODI4OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTYxNTM5OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTYyODI4OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDY0NCwgMC4wMDA2NDUsIDAuMDAwNjQ0LCAwLjAwMDY0NiwgMC4wMDA2NDUsIDAuMDAwNjQ0LCAwLjAwMDY0NSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDY5NSwgMC4wMDA2OTYsIDAuMDAwNjk2LCAwLjAwMDY5NiwgMC4wMDA2OTYsIDAuMDAwNjk2LCAwLjAwMDY5NiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQjEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTU0OTU3OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTU0OTU3OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTU0OTU0OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDY0NCwgMC4wMDA2NDUsIDAuMDAwNjQ1LCAwLjAwMDY0NSwgMC4wMDA2NDQsIDAuMDAwNjQzLCAwLjAwMDY0NCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDY5NSwgMC4wMDA2OTUsIDAuMDAwNjk1LCAwLjAwMDY5NSwgMC4wMDA2OTUsIDAuMDAwNjk2LCAwLjAwMDY5NiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjEzNTc3NjsKLSAgICBmdW5jdGlvbiA6ICIoISgoQjArQjEpIChBMCtBMSkpKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTAiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExODM4MywgMC40OTAzMjgsIDAuNzg2OTQzLCAxLjE1NzI5LCAxLjUyNzcyLCAxLjg5NzQ5LCAyLjI2ODYzIiwgXAotICAgICAgICAgICIwLjEyOTg1MywgMC41MDE2NTQsIDAuNzk4MzE4LCAxLjE2ODQ0LCAxLjUzOTEsIDEuOTA5MjQsIDIuMjgwMzYiLCBcCi0gICAgICAgICAgIjAuMTQyNzc3LCAwLjUxNDcxNywgMC44MTE0MzQsIDEuMTgxNTQsIDEuNTUyMDgsIDEuOTIyOTEsIDIuMjkyODciLCBcCi0gICAgICAgICAgIjAuMTU1MzIyLCAwLjUyNzM5LCAwLjgyMzc0MSwgMS4xOTQ1MSwgMS41NjUwOCwgMS45MzUxNCwgMi4zMDU2OCIsIFwKLSAgICAgICAgICAiMC4xNjc2OTQsIDAuNTM5NzQyLCAwLjgzNjQ1OCwgMS4yMDcwOCwgMS41NzY5NCwgMS45NDgwNywgMi4zMTg4IiwgXAotICAgICAgICAgICIwLjE4NzQ1LCAwLjU1OTU3MywgMC44NTYyMzEsIDEuMjI2NjYsIDEuNTk3MjYsIDEuOTY3NTIsIDIuMzM3MzciLCBcCi0gICAgICAgICAgIjAuMjA0NTgxLCAwLjU3NjkzMSwgMC44NzM4MDgsIDEuMjQ0MTQsIDEuNjE0NjgsIDEuOTg1NzQsIDIuMzU1MzIiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjE2NSwgMC45Mzk2NTUsIDEuNTE4NDksIDIuMjQxNTgsIDIuOTY0NzcsIDMuNjg4MjUsIDQuNDEyNjMiLCBcCi0gICAgICAgICAgIjAuMjE2NDk4LCAwLjkzOTgxNSwgMS41MTgxNSwgMi4yNDIwMSwgMi45NjQ4NSwgMy42ODkyNiwgNC40MTE1MSIsIFwKLSAgICAgICAgICAiMC4yMTY0ODYsIDAuOTM5NDk0LCAxLjUxODM5LCAyLjI0MTQzLCAyLjk2NTA3LCAzLjY4ODQ4LCA0LjQxMTc3IiwgXAotICAgICAgICAgICIwLjIxNjkxLCAwLjkzOTgwNCwgMS41MTg0NSwgMi4yNDE2NCwgMi45NjUzOCwgMy42ODkzMywgNC40MTIwOCIsIFwKLSAgICAgICAgICAiMC4yMTg0NjQsIDAuOTM5NjM5LCAxLjUxODE4LCAyLjI0MTYsIDIuOTY0ODcsIDMuNjg4MTEsIDQuNDExODIiLCBcCi0gICAgICAgICAgIjAuMjIyNjY3LCAwLjkzOTYwNSwgMS41MTgyNiwgMi4yNDIwMSwgMi45NjQ4OCwgMy42ODkwMywgNC40MTEzNCIsIFwKLSAgICAgICAgICAiMC4yMjc3MzIsIDAuOTM5NDU1LCAxLjUxODQxLCAyLjI0MjAyLCAyLjk2NTI5LCAzLjY4ODM5LCA0LjQxMTk5Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE0MjcyNiwgMC41NTQ0OTQsIDAuODgyNzM3LCAxLjI5NjczLCAxLjcxMjE0LCAyLjEyNzI5LCAyLjU0MTY3IiwgXAotICAgICAgICAgICIwLjE1NDUyNCwgMC41NjYzNTMsIDAuODk0NjY4LCAxLjMwODYzLCAxLjcyMzkyLCAyLjEzOTIyLCAyLjU1MzQxIiwgXAotICAgICAgICAgICIwLjE2OTAwOSwgMC41ODEwMDMsIDAuOTA4OTkzLCAxLjMyMzM4LCAxLjczODAyLCAyLjE1NDM0LCAyLjU2ODg1IiwgXAotICAgICAgICAgICIwLjE4Mjk0NCwgMC41OTQ5OTcsIDAuOTIzNDgsIDEuMzM3MTYsIDEuNzUzMiwgMi4xNjc2OSwgMi41ODI1NCIsIFwKLSAgICAgICAgICAiMC4xOTY1OTIsIDAuNjA4Nzg2LCAwLjkzNzM0NCwgMS4zNTExLCAxLjc2NjE2LCAyLjE4MTM1LCAyLjU5Njg3IiwgXAotICAgICAgICAgICIwLjIxODExNSwgMC42MzAyODUsIDAuOTU4NTAyLCAxLjM3MjcxLCAxLjc4NzgyLCAyLjIwMzMsIDIuNjE3NjciLCBcCi0gICAgICAgICAgIjAuMjM2OTY5LCAwLjY0OTM4NCwgMC45Nzc2ODIsIDEuMzkxMTUsIDEuODA2OTMsIDIuMjIxNzcsIDIuNjM3NCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMTg2MzQsIDEuMDA0NTksIDEuNjM5NjcsIDIuNDMzMTEsIDMuMjI4NTQsIDQuMDIxMjgsIDQuODE0MTciLCBcCi0gICAgICAgICAgIjAuMjE4NTk3LCAxLjAwNDUsIDEuNjM4ODgsIDIuNDMzMTIsIDMuMjI4MTEsIDQuMDIxMzIsIDQuODE0MDciLCBcCi0gICAgICAgICAgIjAuMjE4MzU3LCAxLjAwNDA4LCAxLjYzODk0LCAyLjQzMzIxLCAzLjIyNjgyLCA0LjAyMTU0LCA0LjgxNDkiLCBcCi0gICAgICAgICAgIjAuMjE4NTEsIDEuMDA0NDksIDEuNjM5NzQsIDIuNDMyOTYsIDMuMjI3NDQsIDQuMDIwODksIDQuODE0OTIiLCBcCi0gICAgICAgICAgIjAuMjE4ODA4LCAxLjAwNDU0LCAxLjYzOTU3LCAyLjQzMzk4LCAzLjIyNjksIDQuMDIwODksIDQuODE3NzEiLCBcCi0gICAgICAgICAgIjAuMjIwODI5LCAxLjAwNDAyLCAxLjYzODk2LCAyLjQzMzM4LCAzLjIyNzQ3LCA0LjAyMTY0LCA0LjgxNDUyIiwgXAotICAgICAgICAgICIwLjIyNDIxNywgMS4wMDQ1MSwgMS42MzkyLCAyLjQzMjQzLCAzLjIyNzI5LCA0LjAyMDg4LCA0LjgxNzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExMjM1NCwgMC40ODQyMzksIDAuNzgwODIzLCAxLjE1MDksIDEuNTIxNjQsIDEuODkxNzcsIDIuMjYzMDgiLCBcCi0gICAgICAgICAgIjAuMTIyNDAzLCAwLjQ5NDM1MiwgMC43OTA5ODYsIDEuMTYxMTQsIDEuNTMxNzYsIDEuOTAyOTEsIDIuMjcyODEiLCBcCi0gICAgICAgICAgIjAuMTM1MjIyLCAwLjUwNzI5NywgMC44MDM4NzQsIDEuMTc0NTEsIDEuNTQ0OTksIDEuOTE0NzIsIDIuMjg1NTEiLCBcCi0gICAgICAgICAgIjAuMTQ4MjgyLCAwLjUyMDM3MSwgMC44MTY4NTIsIDEuMTg3NTYsIDEuNTU3OTUsIDEuOTI4NDgsIDIuMjk5NCIsIFwKLSAgICAgICAgICAiMC4xNjEzNTksIDAuNTMzNTQ1LCAwLjgyOTkzLCAxLjIwMDMsIDEuNTcxMDksIDEuOTQyMDksIDIuMzExNjciLCBcCi0gICAgICAgICAgIjAuMTgzMjA3LCAwLjU1NDUwNywgMC44NTExMzUsIDEuMjIxODMsIDEuNTkxOTgsIDEuOTYyNDMsIDIuMzMzMiIsIFwKLSAgICAgICAgICAiMC4yMDIwMTQsIDAuNTcyODQzLCAwLjg2OTIyMywgMS4yMzk4MSwgMS42MTAwMiwgMS45ODA2LCAyLjM1MTI4Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIxNjQ5OCwgMC45Mzk4NDksIDEuNTE4NSwgMi4yNDE3MywgMi45NjQ4MSwgMy42ODgxLCA0LjQxMjMiLCBcCi0gICAgICAgICAgIjAuMjE2NTE2LCAwLjkzOTQ1LCAxLjUxODMxLCAyLjI0MTQyLCAyLjk2NDg2LCAzLjY4ODI2LCA0LjQxMTY1IiwgXAotICAgICAgICAgICIwLjIxNjQxNiwgMC45Mzk1MDUsIDEuNTE4NzEsIDIuMjQxNjQsIDIuOTY1NjQsIDMuNjg4MTcsIDQuNDEyMjEiLCBcCi0gICAgICAgICAgIjAuMjE3ODk5LCAwLjkzOTc0LCAxLjUxODIxLCAyLjI0MTUsIDIuOTY1MjgsIDMuNjg4MjksIDQuNDExNzQiLCBcCi0gICAgICAgICAgIjAuMjIxMzQ3LCAwLjkzOTYwNCwgMS41MTgyLCAyLjI0MTQzLCAyLjk2NDgxLCAzLjY4ODM4LCA0LjQxMjY0IiwgXAotICAgICAgICAgICIwLjIyODg0MiwgMC45Mzk1NiwgMS41MTgxOSwgMi4yNDE2OSwgMi45NjUwNCwgMy42ODkyNiwgNC40MTE0NCIsIFwKLSAgICAgICAgICAiMC4yMzc0NTMsIDAuOTM5NTMyLCAxLjUxODE4LCAyLjI0MTUxLCAyLjk2NTYzLCAzLjY4OTA0LCA0LjQxMTU0Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEzNDYyNSwgMC41NTA5MSwgMC44ODMwNTMsIDEuMjk4NzIsIDEuNzEzNjYsIDIuMTMwNzUsIDIuNTQ3NzIiLCBcCi0gICAgICAgICAgIjAuMTQ2Nzk4LCAwLjU2MzE1MywgMC44OTU2NDUsIDEuMzExMDEsIDEuNzI2NzYsIDIuMTQyMzEsIDIuNTU5OTYiLCBcCi0gICAgICAgICAgIjAuMTYxMTksIDAuNTc4MDEyLCAwLjkxMDM1MiwgMS4zMjU5MywgMS43NDA1NSwgMi4xNTgwMiwgMi41NzQ4OCIsIFwKLSAgICAgICAgICAiMC4xNzQ5MTgsIDAuNTkxOTAzLCAwLjkyNDM2NCwgMS4zMzk3NSwgMS43NTU3NiwgMi4xNzEyNiwgMi41ODg2OSIsIFwKLSAgICAgICAgICAiMC4xODgzNTQsIDAuNjA1NjM3LCAwLjkzODMwMywgMS4zNTM2OCwgMS43Njg3MiwgMi4xODQ1MywgMi42MDI2MiIsIFwKLSAgICAgICAgICAiMC4yMDk2ODEsIDAuNjI3MDEyLCAwLjk1OTM2NSwgMS4zNzUyMywgMS43OTA0NCwgMi4yMDY2NSwgMi42MjM0NSIsIFwKLSAgICAgICAgICAiMC4yMjgzNTgsIDAuNjQ1OTE2LCAwLjk3ODQwMiwgMS4zOTM2MywgMS44MDk0MiwgMi4yMjUxMSwgMi42NDMwMyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMTEwNzgsIDEuMDA1MjgsIDEuNjQ1OTIsIDIuNDQxMDgsIDMuMjU1NjYsIDQuMDQ2NDksIDQuODQxNzgiLCBcCi0gICAgICAgICAgIjAuMjExMDcsIDEuMDA1MTksIDEuNjQxNjgsIDIuNDU1NTQsIDMuMjQ0NTIsIDQuMDU2MzcsIDQuODQ5NjkiLCBcCi0gICAgICAgICAgIjAuMjEwODM2LCAxLjAwNTEyLCAxLjY0MDk0LCAyLjQ0MDU3LCAzLjI1Mzk0LCA0LjA0NTcxLCA0Ljg0OTk0IiwgXAotICAgICAgICAgICIwLjIxMTA1MywgMS4wMDU1LCAxLjY0MDUyLCAyLjQ1NTczLCAzLjI0NDM3LCA0LjA0MTI5LCA0Ljg0OTY4IiwgXAotICAgICAgICAgICIwLjIxMTMwNCwgMS4wMDU0NywgMS42NDMyOCwgMi40NDUyLCAzLjI1NjUyLCA0LjA1NjIsIDQuODQ2ODgiLCBcCi0gICAgICAgICAgIjAuMjEzNzYyLCAxLjAwNjQyLCAxLjY0OTQzLCAyLjQ0MDU5LCAzLjI0OTkzLCA0LjA0MDQ3LCA0Ljg0OTE4IiwgXAotICAgICAgICAgICIwLjIxNzI0NSwgMS4wMDUxMiwgMS42NDk4NSwgMi40NTIzMSwgMy4yNDA3NCwgNC4wNDEyOCwgNC44NDY5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDM5NiwgMC40NzMzOTYsIDAuNzY4Nzg4LCAxLjEzODA2LCAxLjUwNzQyLCAxLjg3NjU3LCAyLjI0NjA5IiwgXAotICAgICAgICAgICIwLjExNTY1NiwgMC40ODUxNDEsIDAuNzgwNTg0LCAxLjE1LCAxLjUxOTMyLCAxLjg4ODQ0LCAyLjI1Nzg3IiwgXAotICAgICAgICAgICIwLjEyODcyMiwgMC40OTgzNzQsIDAuNzk0MTY3LCAxLjE2MzE1LCAxLjUzMjMxLCAxLjkwMTk4LCAyLjI3MDk2IiwgXAotICAgICAgICAgICIwLjE0MTIyNCwgMC41MTEwMjksIDAuODA2NTc3LCAxLjE3NTc5LCAxLjU0NTE0LCAxLjkxNDQsIDIuMjgzNzEiLCBcCi0gICAgICAgICAgIjAuMTUzNTcxLCAwLjUyMzUzNCwgMC44MTg5NCwgMS4xODgyMiwgMS41NTc3LCAxLjkyNjkzLCAyLjI5NjI1IiwgXAotICAgICAgICAgICIwLjE3MzE2MywgMC41NDMzNzEsIDAuODM5MjA4LCAxLjIwODI1LCAxLjU3NzU1LCAxLjk0NjgyLCAyLjMxNjA4IiwgXAotICAgICAgICAgICIwLjE5MDE2NiwgMC41NjA2NzEsIDAuODU2MjY4LCAxLjIyNTUzLCAxLjU5NDczLCAxLjk2NCwgMi4zMzM1Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIwMDAyOSwgMC45MjAwOTUsIDEuNDk3MDUsIDIuMjE3OSwgMi45Mzk0NiwgMy42NjE3MSwgNC4zODMyMSIsIFwKLSAgICAgICAgICAiMC4yMDAwMjMsIDAuOTIwMDE1LCAxLjQ5Njc2LCAyLjIxODY2LCAyLjkzOTA1LCAzLjY2MjI0LCA0LjM4MzI4IiwgXAotICAgICAgICAgICIwLjIwMDAyNCwgMC45MjAxNTYsIDEuNDk2OTcsIDIuMjE3ODgsIDIuOTQwMDQsIDMuNjYxMTUsIDQuMzgyMzIiLCBcCi0gICAgICAgICAgIjAuMjAwNzE2LCAwLjkyMDE3NCwgMS40OTcwMSwgMi4yMTc4MiwgMi45MzkyNiwgMy42NjE0LCA0LjM4MjIiLCBcCi0gICAgICAgICAgIjAuMjAyNTg5LCAwLjkyMDI3MywgMS40OTY4NiwgMi4yMTgwOCwgMi45Mzk0NywgMy42NjA3LCA0LjM4MjgxIiwgXAotICAgICAgICAgICIwLjIwNzM5NCwgMC45MjAxNiwgMS40OTY5OCwgMi4yMTg0OCwgMi45MzkzOCwgMy42NjEyMiwgNC4zODIxMyIsIFwKLSAgICAgICAgICAiMC4yMTI4MzksIDAuOTIwMTI4LCAxLjQ5Njg1LCAyLjIxODU3LCAyLjkzOTE4LCAzLjY2MTcxLCA0LjM4NjE5Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEyODc5OCwgMC41NDA1MDIsIDAuODY4NzM1LCAxLjI4MzU5LCAxLjY5OTM0LCAyLjExNDEsIDIuNTI5MTMiLCBcCi0gICAgICAgICAgIjAuMTM5MDEzLCAwLjU1MDgwMiwgMC44NzkwOTIsIDEuMjk0MzgsIDEuNzA4OTEsIDIuMTI0OTIsIDIuNTM5MSIsIFwKLSAgICAgICAgICAiMC4xNTI2MDEsIDAuNTYzOTkzLCAwLjg5MjQ1LCAxLjMwNzYxLCAxLjcyMzE2LCAyLjEzNzkzLCAyLjU1MzY2IiwgXAotICAgICAgICAgICIwLjE2NTQ1MywgMC41NzcxOTEsIDAuOTA1NzgxLCAxLjMyMDM2LCAxLjczNjUxLCAyLjE1MTE4LCAyLjU2NjU5IiwgXAotICAgICAgICAgICIwLjE3OTEwMiwgMC41OTA3MDEsIDAuOTE5MjY3LCAxLjMzNDA3LCAxLjc0OTQzLCAyLjE2NDg0LCAyLjU4MDI5IiwgXAotICAgICAgICAgICIwLjE5OTcyLCAwLjYxMzA1OCwgMC45Mzk5LCAxLjM1NDg2LCAxLjc3MDg5LCAyLjE4NTc5LCAyLjYwMDc2IiwgXAotICAgICAgICAgICIwLjIxOTUwMywgMC42MzAyMzcsIDAuOTU4NzIsIDEuMzczMTksIDEuNzg4MjcsIDIuMjA0NTcsIDIuNjE5MzEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjE4NDM4LCAxLjAwNTU3LCAxLjY0MDg4LCAyLjQzNDEsIDMuMjI4NzIsIDQuMDIxOTQsIDQuODE1NjgiLCBcCi0gICAgICAgICAgIjAuMjE4NjE3LCAxLjAwNDk3LCAxLjYzOTg3LCAyLjQzNDM0LCAzLjIzMDg5LCA0LjAyMTg5LCA0LjgxNDQ3IiwgXAotICAgICAgICAgICIwLjIxODMzNiwgMS4wMDUzNCwgMS42NDAzMywgMi40MzQzOSwgMy4yMjc5MiwgNC4wMjA1LCA0LjgxNzY5IiwgXAotICAgICAgICAgICIwLjIxODUyMiwgMS4wMDQ5OCwgMS42NDA2NCwgMi40MzM2NCwgMy4yMjgzOCwgNC4wMjE2NiwgNC44MTUyNiIsIFwKLSAgICAgICAgICAiMC4yMjA4NjQsIDEuMDA1MDcsIDEuNjQwNywgMi40MzQ1MiwgMy4yMjc4OCwgNC4wMjI4OCwgNC44MTY3MyIsIFwKLSAgICAgICAgICAiMC4yMjY5MzYsIDEuMDA1NDYsIDEuNjM5OTMsIDIuNDMzOTIsIDMuMjI4NDQsIDQuMDIyMjQsIDQuODE1NTUiLCBcCi0gICAgICAgICAgIjAuMjMzNjY4LCAxLjAwNTQ0LCAxLjY0MDM0LCAyLjQzMzQ5LCAzLjIyNzIxLCA0LjAyMjA4LCA0LjgxNTk0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIxIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTcyMTcsIDAuNDY2OCwgMC43NjIxMTQsIDEuMTMxNDMsIDEuNTAwNzYsIDEuODY5OTgsIDIuMjM5MyIsIFwKLSAgICAgICAgICAiMC4xMDc0NjYsIDAuNDc3MTU4LCAwLjc3MjU5NywgMS4xNDE5NSwgMS41MTEwOSwgMS44ODA0NSwgMi4yNDk4NSIsIFwKLSAgICAgICAgICAiMC4xMjAzMzksIDAuNDkwMzU2LCAwLjc4NTgwMywgMS4xNTQ5LCAxLjUyNDI0LCAxLjg5MzYsIDIuMjYyNzIiLCBcCi0gICAgICAgICAgIjAuMTMzNDI3LCAwLjUwMzM2NCwgMC43OTg4NTMsIDEuMTY4MTUsIDEuNTM3MzUsIDEuOTA2ODYsIDIuMjc1ODYiLCBcCi0gICAgICAgICAgIjAuMTQ2Mzc2LCAwLjUxNjMzOSwgMC44MTE4NzksIDEuMTgxMTEsIDEuNTUwMzIsIDEuOTE5NzgsIDIuMjg4OTciLCBcCi0gICAgICAgICAgIjAuMTY4Mjk3LCAwLjUzNzQwNywgMC44MzI3NzEsIDEuMjAyMSwgMS41NzEzMiwgMS45NDA4NSwgMi4zMDk4NyIsIFwKLSAgICAgICAgICAiMC4xODY5NjksIDAuNTU1NzE5LCAwLjg1MTE2MSwgMS4yMjA1LCAxLjU4OTY0LCAxLjk1ODk2LCAyLjMyODQ1Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIwMDAyMiwgMC45MjAxODksIDEuNDk3MDQsIDIuMjE4NjgsIDIuOTM5NCwgMy42NjE5OSwgNC4zODYwOSIsIFwKLSAgICAgICAgICAiMC4yMDAwMjMsIDAuOTIwMTgsIDEuNDk3MDksIDIuMjE3OTMsIDIuOTM5MTksIDMuNjYxNjUsIDQuMzg2MTgiLCBcCi0gICAgICAgICAgIjAuMjAwMDg1LCAwLjkyMDI4OSwgMS40OTY5LCAyLjIxNzkxLCAyLjkzOTI0LCAzLjY2MTgyLCA0LjM4MTc1IiwgXAotICAgICAgICAgICIwLjIwMjQxMSwgMC45MjAwNzksIDEuNDk2ODMsIDIuMjE4NTUsIDIuOTM5OTUsIDMuNjYyLCA0LjM4NTk5IiwgXAotICAgICAgICAgICIwLjIwNjY2OSwgMC45MjAyNzIsIDEuNDk2ODMsIDIuMjE4NSwgMi45Mzk5OSwgMy42NjI0MywgNC4zODU2NyIsIFwKLSAgICAgICAgICAiMC4yMTUzNzMsIDAuOTIwMjI1LCAxLjQ5Njg1LCAyLjIxODQ0LCAyLjkzOTA2LCAzLjY2MTY0LCA0LjM4MjciLCBcCi0gICAgICAgICAgIjAuMjI0ODk0LCAwLjkyMDE0NiwgMS40OTY4LCAyLjIxODE0LCAyLjkzOTg0LCAzLjY2MTQzLCA0LjM4NjI2Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExOTkyNywgMC41MzU5NywgMC44NjgzNTcsIDEuMjgzOTksIDEuNjk4OCwgMi4xMTY5NCwgMi41MzQwOCIsIFwKLSAgICAgICAgICAiMC4xMzA1MzgsIDAuNTQ3MTE5LCAwLjg3OTQ1NCwgMS4yOTQ3NiwgMS43MDk5NiwgMi4xMjYxMSwgMi41NDQyNyIsIFwKLSAgICAgICAgICAiMC4xNDM1MDYsIDAuNTYwMjEyLCAwLjg5MjM2NywgMS4zMDg0NywgMS43MjMzOSwgMi4xNDA1LCAyLjU1ODc2IiwgXAotICAgICAgICAgICIwLjE1NjYxNiwgMC41NzM1MTYsIDAuOTA1OTI0LCAxLjMyMTU4LCAxLjczNjkzLCAyLjE1MzE2LCAyLjU3MTM5IiwgXAotICAgICAgICAgICIwLjE2OTY1MSwgMC41ODY4NzUsIDAuOTE5ODMxLCAxLjMzNSwgMS43NTAxLCAyLjE2NzA2LCAyLjU4NDM3IiwgXAotICAgICAgICAgICIwLjE5MDg1NCwgMC42MDc2NDksIDAuOTQwMDMyLCAxLjM1NTQyLCAxLjc3MTU3LCAyLjE4NzM5LCAyLjYwNTY3IiwgXAotICAgICAgICAgICIwLjIxMDU5MywgMC42MjYyODQsIDAuOTU4ODUzLCAxLjM3Mzg4LCAxLjc4OTEsIDIuMjA3NjIsIDIuNjI0MjgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjA5OTM5LCAxLjAwNTI3LCAxLjY1MDQ0LCAyLjQ0Mzg4LCAzLjI1NjQxLCA0LjA0NTE5LCA0Ljg0MDUyIiwgXAotICAgICAgICAgICIwLjIwOTk5MSwgMS4wMDUyLCAxLjY0NzU4LCAyLjQ1MDk0LCAzLjI1NTk1LCA0LjA1NTY5LCA0Ljg0NjkzIiwgXAotICAgICAgICAgICIwLjIwOTg0NSwgMS4wMDM5NSwgMS42NDc1OSwgMi40NDQ1NSwgMy4yNDc4NywgNC4wNDgzNCwgNC44NDMyNyIsIFwKLSAgICAgICAgICAiMC4yMTA0MjcsIDEuMDA2MjEsIDEuNjQ3ODMsIDIuNDQwNTcsIDMuMjQwNjgsIDQuMDU1OTYsIDQuODQ3MjMiLCBcCi0gICAgICAgICAgIjAuMjEyNzg0LCAxLjAwNTc4LCAxLjY0ODA2LCAyLjQ0MTMzLCAzLjI0Njk1LCA0LjA0MDM3LCA0Ljg0OTcxIiwgXAotICAgICAgICAgICIwLjIxOTkzMSwgMS4wMDU0NiwgMS42NDc2MSwgMi40NTE2NywgMy4yNDU2NCwgNC4wNTU4NywgNC44NDcyMSIsIFwKLSAgICAgICAgICAiMC4yMjcxMzIsIDEuMDA0MSwgMS42NDA5OSwgMi40NTExOCwgMy4yNDQ3MiwgNC4wNDQ2LCA0Ljg0OTgzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNTM4MywgMC4wMDUzODEsIDAuMDA1MzgsIDAuMDA1Mzc3LCAwLjAwNTM3NSwgMC4wMDUzNzQsIDAuMDA1MzcxIiwgXAotICAgICAgICAgICIwLjAwNTM2NSwgMC4wMDUzNjYsIDAuMDA1MzY0LCAwLjAwNTM2NCwgMC4wMDUzNiwgMC4wMDUzNTksIDAuMDA1MzU2IiwgXAotICAgICAgICAgICIwLjAwNTM1NSwgMC4wMDUzNjEsIDAuMDA1MzYxLCAwLjAwNTM1OSwgMC4wMDUzNTgsIDAuMDA1MzU1LCAwLjAwNTM1NCIsIFwKLSAgICAgICAgICAiMC4wMDUzNDgsIDAuMDA1MzU5LCAwLjAwNTM1OCwgMC4wMDUzNTcsIDAuMDA1MzU1LCAwLjAwNTM1MywgMC4wMDUzNTEiLCBcCi0gICAgICAgICAgIjAuMDA1MzQ0LCAwLjAwNTM1NiwgMC4wMDUzNTcsIDAuMDA1MzU2LCAwLjAwNTM1NiwgMC4wMDUzNTMsIDAuMDA1MzUiLCBcCi0gICAgICAgICAgIjAuMDA1MzM2LCAwLjAwNTM1NCwgMC4wMDUzNTQsIDAuMDA1MzU0LCAwLjAwNTM1MiwgMC4wMDUzNTEsIDAuMDA1MzUiLCBcCi0gICAgICAgICAgIjAuMDA1MzMzLCAwLjAwNTM1MSwgMC4wMDUzNTQsIDAuMDA1MzUzLCAwLjAwNTM1MywgMC4wMDUzNTEsIDAuMDA1MzQ5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxODQyLCAwLjAwMTg0MiwgMC4wMDE4NCwgMC4wMDE4NDEsIDAuMDAxODM4LCAwLjAwMTgzNSwgMC4wMDE4MzQiLCBcCi0gICAgICAgICAgIjAuMDAxODExLCAwLjAwMTgxNywgMC4wMDE4MTgsIDAuMDAxODE0LCAwLjAwMTgxNSwgMC4wMDE4MTcsIDAuMDAxODEzIiwgXAotICAgICAgICAgICIwLjAwMTc5NiwgMC4wMDE4MDksIDAuMDAxODEsIDAuMDAxODEsIDAuMDAxODEsIDAuMDAxODA4LCAwLjAwMTgwOSIsIFwKLSAgICAgICAgICAiMC4wMDE3ODQsIDAuMDAxODA1LCAwLjAwMTgwNywgMC4wMDE4MDgsIDAuMDAxODA2LCAwLjAwMTgwNywgMC4wMDE4MDUiLCBcCi0gICAgICAgICAgIjAuMDAxNzc2LCAwLjAwMTgwMSwgMC4wMDE4MDQsIDAuMDAxODA1LCAwLjAwMTgwNSwgMC4wMDE4MDQsIDAuMDAxODA0IiwgXAotICAgICAgICAgICIwLjAwMTc2NSwgMC4wMDE3OTYsIDAuMDAxODAxLCAwLjAwMTgwMiwgMC4wMDE4MDIsIDAuMDAxODA0LCAwLjAwMTgwMiIsIFwKLSAgICAgICAgICAiMC4wMDE3NTcsIDAuMDAxNzkyLCAwLjAwMTc5OCwgMC4wMDE4MDEsIDAuMDAxODAxLCAwLjAwMTgwMSwgMC4wMDE4MDEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0ODgxLCAwLjAwNDg3OSwgMC4wMDQ4NzgsIDAuMDA0ODc3LCAwLjAwNDg3MywgMC4wMDQ4NzIsIDAuMDA0ODciLCBcCi0gICAgICAgICAgIjAuMDA0ODU3LCAwLjAwNDg2MiwgMC4wMDQ4NjEsIDAuMDA0ODU5LCAwLjAwNDg1NywgMC4wMDQ4NTcsIDAuMDA0ODUzIiwgXAotICAgICAgICAgICIwLjAwNDg0MSwgMC4wMDQ4NTQsIDAuMDA0ODU1LCAwLjAwNDg1NSwgMC4wMDQ4NTQsIDAuMDA0ODUxLCAwLjAwNDg0OCIsIFwKLSAgICAgICAgICAiMC4wMDQ4MzEsIDAuMDA0ODUxLCAwLjAwNDg1MiwgMC4wMDQ4NTEsIDAuMDA0ODUyLCAwLjAwNDg0OSwgMC4wMDQ4NDciLCBcCi0gICAgICAgICAgIjAuMDA0ODIyLCAwLjAwNDg0NywgMC4wMDQ4NSwgMC4wMDQ4NSwgMC4wMDQ4NSwgMC4wMDQ4NDgsIDAuMDA0ODQ2IiwgXAotICAgICAgICAgICIwLjAwNDgxMywgMC4wMDQ4NDMsIDAuMDA0ODQ3LCAwLjAwNDg0NywgMC4wMDQ4NDcsIDAuMDA0ODQ1LCAwLjAwNDg0MyIsIFwKLSAgICAgICAgICAiMC4wMDQ4MDcsIDAuMDA0ODQsIDAuMDA0ODQ0LCAwLjAwNDg0NSwgMC4wMDQ4NDUsIDAuMDA0ODQzLCAwLjAwNDg0MiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTI1OSwgMC4wMDEyNjUsIDAuMDAxMjYzLCAwLjAwMTI2MywgMC4wMDEyNTYsIDAuMDAxMjYyLCAwLjAwMTI1MSIsIFwKLSAgICAgICAgICAiMC4wMDEyNTgsIDAuMDAxMjgxLCAwLjAwMTI4NSwgMC4wMDEyODQsIDAuMDAxMjg1LCAwLjAwMTI4NywgMC4wMDEyODciLCBcCi0gICAgICAgICAgIjAuMDAxMjM4LCAwLjAwMTI3OSwgMC4wMDEyODQsIDAuMDAxMjg2LCAwLjAwMTI4OCwgMC4wMDEyODgsIDAuMDAxMjg5IiwgXAotICAgICAgICAgICIwLjAwMTIxOCwgMC4wMDEyNzQsIDAuMDAxMjgxLCAwLjAwMTI4NCwgMC4wMDEyODYsIDAuMDAxMjg4LCAwLjAwMTI4OCIsIFwKLSAgICAgICAgICAiMC4wMDEyMDEsIDAuMDAxMjY3LCAwLjAwMTI3NywgMC4wMDEyODIsIDAuMDAxMjg0LCAwLjAwMTI4NSwgMC4wMDEyODYiLCBcCi0gICAgICAgICAgIjAuMDAxMTc3LCAwLjAwMTI1OCwgMC4wMDEyNzEsIDAuMDAxMjc4LCAwLjAwMTI4MiwgMC4wMDEyODMsIDAuMDAxMjg0IiwgXAotICAgICAgICAgICIwLjAwMTE2MSwgMC4wMDEyNSwgMC4wMDEyNjYsIDAuMDAxMjc0LCAwLjAwMTI3OSwgMC4wMDEyODEsIDAuMDAxMjgyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzY5LCAwLjAwMzY5MywgMC4wMDM2OTQsIDAuMDAzNjkzLCAwLjAwMzY5MywgMC4wMDM2OTQsIDAuMDAzNjkyIiwgXAotICAgICAgICAgICIwLjAwMzY5LCAwLjAwMzcwNSwgMC4wMDM3MDYsIDAuMDAzNzA3LCAwLjAwMzcwNywgMC4wMDM3MDgsIDAuMDAzNzA3IiwgXAotICAgICAgICAgICIwLjAwMzY3OCwgMC4wMDM3MDQsIDAuMDAzNzA3LCAwLjAwMzcwOCwgMC4wMDM3MDksIDAuMDAzNzA5LCAwLjAwMzcxIiwgXAotICAgICAgICAgICIwLjAwMzY2NywgMC4wMDM3MDIsIDAuMDAzNzA2LCAwLjAwMzcwOCwgMC4wMDM3MDksIDAuMDAzNzA5LCAwLjAwMzcxIiwgXAotICAgICAgICAgICIwLjAwMzY1OCwgMC4wMDM2OTgsIDAuMDAzNzA1LCAwLjAwMzcwNywgMC4wMDM3MDcsIDAuMDAzNzA5LCAwLjAwMzcxIiwgXAotICAgICAgICAgICIwLjAwMzY0NSwgMC4wMDM2OTQsIDAuMDAzNzAxLCAwLjAwMzcwNSwgMC4wMDM3MDcsIDAuMDAzNzA4LCAwLjAwMzcwOSIsIFwKLSAgICAgICAgICAiMC4wMDM2MzYsIDAuMDAzNjksIDAuMDAzNjk4LCAwLjAwMzcwMywgMC4wMDM3MDYsIDAuMDAzNzA4LCAwLjAwMzcwOCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTg0MywgMC4wMDE4NDMsIDAuMDAxODQyLCAwLjAwMTgzNiwgMC4wMDE4NCwgMC4wMDE4NDYsIDAuMDAxODI4IiwgXAotICAgICAgICAgICIwLjAwMTgwNywgMC4wMDE4MTQsIDAuMDAxODE3LCAwLjAwMTgxNSwgMC4wMDE4MTQsIDAuMDAxODEzLCAwLjAwMTgxMiIsIFwKLSAgICAgICAgICAiMC4wMDE3OTEsIDAuMDAxODA3LCAwLjAwMTgwOCwgMC4wMDE4MDgsIDAuMDAxODExLCAwLjAwMTgwNiwgMC4wMDE4MDgiLCBcCi0gICAgICAgICAgIjAuMDAxNzc4LCAwLjAwMTgwMSwgMC4wMDE4MDQsIDAuMDAxODA1LCAwLjAwMTgwNSwgMC4wMDE4MDQsIDAuMDAxODAzIiwgXAotICAgICAgICAgICIwLjAwMTc2OSwgMC4wMDE3OTgsIDAuMDAxODAyLCAwLjAwMTgwMiwgMC4wMDE4MDMsIDAuMDAxODAzLCAwLjAwMTgwMSIsIFwKLSAgICAgICAgICAiMC4wMDE3NTcsIDAuMDAxNzk0LCAwLjAwMTc5NywgMC4wMDE4LCAwLjAwMTgwMSwgMC4wMDE4LCAwLjAwMTgiLCBcCi0gICAgICAgICAgIjAuMDAxNzU0LCAwLjAwMTc4OCwgMC4wMDE3OTQsIDAuMDAxNzk4LCAwLjAwMTc5OSwgMC4wMDE3OTgsIDAuMDAxNzk5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzE3NywgMC4wMDMxODEsIDAuMDAzMTgyLCAwLjAwMzE4MiwgMC4wMDMxODIsIDAuMDAzMTgyLCAwLjAwMzE4MiIsIFwKLSAgICAgICAgICAiMC4wMDMxNywgMC4wMDMxOTEsIDAuMDAzMTk0LCAwLjAwMzE5NSwgMC4wMDMxOTYsIDAuMDAzMTk2LCAwLjAwMzE5NiIsIFwKLSAgICAgICAgICAiMC4wMDMxNTMsIDAuMDAzMTg5LCAwLjAwMzE5NCwgMC4wMDMxOTYsIDAuMDAzMTk4LCAwLjAwMzE5OCwgMC4wMDMxOTkiLCBcCi0gICAgICAgICAgIjAuMDAzMTM2LCAwLjAwMzE4NCwgMC4wMDMxOSwgMC4wMDMxOTMsIDAuMDAzMTk0LCAwLjAwMzE5NiwgMC4wMDMxOTYiLCBcCi0gICAgICAgICAgIjAuMDAzMTI0LCAwLjAwMzE4MiwgMC4wMDMxOSwgMC4wMDMxOTQsIDAuMDAzMTk2LCAwLjAwMzE5NywgMC4wMDMxOTgiLCBcCi0gICAgICAgICAgIjAuMDAzMTEsIDAuMDAzMTc1LCAwLjAwMzE4NSwgMC4wMDMxOTEsIDAuMDAzMTkzLCAwLjAwMzE5NSwgMC4wMDMxOTYiLCBcCi0gICAgICAgICAgIjAuMDAzMTAyLCAwLjAwMzE3LCAwLjAwMzE4MSwgMC4wMDMxODgsIDAuMDAzMTkxLCAwLjAwMzE5NCwgMC4wMDMxOTUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDExNjksIDAuMDAxMTc2LCAwLjAwMTE3OSwgMC4wMDExNzYsIDAuMDAxMTY5LCAwLjAwMTE3NSwgMC4wMDExNzQiLCBcCi0gICAgICAgICAgIjAuMDAxMTY2LCAwLjAwMTE5NCwgMC4wMDExOTcsIDAuMDAxMTk4LCAwLjAwMTE5NywgMC4wMDExOTgsIDAuMDAxMTk4IiwgXAotICAgICAgICAgICIwLjAwMTE0MywgMC4wMDExOTEsIDAuMDAxMTk3LCAwLjAwMTE5OSwgMC4wMDEyLCAwLjAwMTIwMSwgMC4wMDEyMDEiLCBcCi0gICAgICAgICAgIjAuMDAxMTIsIDAuMDAxMTg1LCAwLjAwMTE5MywgMC4wMDExOTcsIDAuMDAxMTk5LCAwLjAwMTIsIDAuMDAxMjAxIiwgXAotICAgICAgICAgICIwLjAwMTEwNSwgMC4wMDExOCwgMC4wMDExOTEsIDAuMDAxMTk2LCAwLjAwMTE5OSwgMC4wMDEyLCAwLjAwMTIiLCBcCi0gICAgICAgICAgIjAuMDAxMDgzLCAwLjAwMTE3LCAwLjAwMTE4NCwgMC4wMDExOTIsIDAuMDAxMTk1LCAwLjAwMTE5NywgMC4wMDExOTkiLCBcCi0gICAgICAgICAgIjAuMDAxMDcyLCAwLjAwMTE2MiwgMC4wMDExNzksIDAuMDAxMTg4LCAwLjAwMTE5MywgMC4wMDExOTUsIDAuMDAxMTk3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBPQUkyQkIxWDIgKgotICogLS0tLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChPQUkyQkIxWDIpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4xNTQ2NDg7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEwTikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNTI4OTQ7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNTI4OTQ7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNTI3NDg4OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDE2NSwgMC4wMDAxNjUsIDAuMDAwMTY1LCAwLjAwMDE2NSwgMC4wMDAxNjUsIDAuMDAwMTY1LCAwLjAwMDE2NSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDE2NywgMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQTFOKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA1NDM3NDI7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNTQzMzA4OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDU0Mzc0MjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAwMjcsIDAuMDAwMDI2LCAwLjAwMDAyNiwgMC4wMDAwMjYsIDAuMDAwMDI2LCAwLjAwMDAyNiwgMC4wMDAwMjYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxODgsIDAuMDAwMTg4LCAwLjAwMDE4OCwgMC4wMDAxODgsIDAuMDAwMTg4LCAwLjAwMDE4OCwgMC4wMDAxODgiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE2NjkxNjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE2NjkxNjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE2NjQ5MjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA2MTIsIDAuMDAwNjEyLCAwLjAwMDYxMiwgMC4wMDA2MTEsIDAuMDAwNjExLCAwLjAwMDYxMSwgMC4wMDA2MTEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA2MzUsIDAuMDAwNjE5LCAwLjAwMDYxNywgMC4wMDA2MTYsIDAuMDAwNjE2LCAwLjAwMDYxNiwgMC4wMDA2MTUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4xMTE3NTI7Ci0gICAgZnVuY3Rpb24gOiAiKCEoKCEoQTBOIEExTikpIEIwKSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEwTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTczNjI3LCAwLjM2MTAwMywgMC41MDcyMTcsIDAuNjg5OTg5LCAwLjg3MjY1NCwgMS4wNTUzNywgMS4yMzgxIiwgXAotICAgICAgICAgICIwLjE4NTgzLCAwLjM3MjgxNiwgMC41MTkwMzgsIDAuNzAxNzg4LCAwLjg4NDYzMiwgMS4wNjcyNSwgMS4yNTA1MSIsIFwKLSAgICAgICAgICAiMC4xOTk2NTEsIDAuMzg2NDU3LCAwLjUzMjY3NSwgMC43MTU0NjEsIDAuODk4MzQxLCAxLjA4MDk0LCAxLjI2Mzc0IiwgXAotICAgICAgICAgICIwLjIxMjkwNCwgMC40MDAyOTIsIDAuNTQ2NTMyLCAwLjcyOTM0MywgMC45MTE5ODQsIDEuMDk0NzUsIDEuMjc3NTIiLCBcCi0gICAgICAgICAgIjAuMjI2OTM5LCAwLjQxNDIzLCAwLjU2MDQ2NywgMC43NDMyNCwgMC45MjYwMTgsIDEuMTA4NzEsIDEuMjkxNjgiLCBcCi0gICAgICAgICAgIjAuMjQ4NzcxLCAwLjQzNjExLCAwLjU4MjM0MSwgMC43NjUxMjgsIDAuOTQ4MDk0LCAxLjEzMDU2LCAxLjMxMzQ4IiwgXAotICAgICAgICAgICIwLjI2Nzk2NywgMC40NTUxNzUsIDAuNjAxNCwgMC43ODQxNjYsIDAuOTY2OTg0LCAxLjE0OTYyLCAxLjMzMjYyIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExNDA1MywgMC40NzE1NTQsIDAuNzYzODgxLCAxLjEzNzM1LCAxLjUwODcsIDEuODgwNTEsIDIuMjUxNzkiLCBcCi0gICAgICAgICAgIjAuMTEzNTA4LCAwLjQ3MTQzNywgMC43NjUwOTksIDEuMTM1MTEsIDEuNTA1NCwgMS44ODA3MywgMi4yNDcwMiIsIFwKLSAgICAgICAgICAiMC4xMTM3NCwgMC40NzA3MzMsIDAuNzY1MDcsIDEuMTM3MzYsIDEuNTA1MTcsIDEuODc1MzYsIDIuMjQ4NDEiLCBcCi0gICAgICAgICAgIjAuMTEzNzMxLCAwLjQ3MDM5NCwgMC43NjUwMTgsIDEuMTM0MTcsIDEuNTA4NzIsIDEuODgwMDUsIDIuMjUxNDUiLCBcCi0gICAgICAgICAgIjAuMTEzNTc1LCAwLjQ3MTI0NiwgMC43NjQ5NDMsIDEuMTM3MjgsIDEuNTA1OTUsIDEuODc1MzYsIDIuMjQ4OTEiLCBcCi0gICAgICAgICAgIjAuMTEzMzUxLCAwLjQ3MTM2NSwgMC43NjUwMDgsIDEuMTM0NTYsIDEuNTA1MjMsIDEuODgwNjcsIDIuMjQ4NTMiLCBcCi0gICAgICAgICAgIjAuMTEzODE3LCAwLjQ3MTM5MiwgMC43NjYxODUsIDEuMTM3MjYsIDEuNTA2MjksIDEuODgwNjUsIDIuMjQ4ODYiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTYxMzY1LCAwLjU2OTU0MiwgMC44OTU1MzgsIDEuMzAyOTgsIDEuNzEwMzgsIDIuMTE3ODYsIDIuNTI1MTIiLCBcCi0gICAgICAgICAgIjAuMTcyNzA1LCAwLjU4MDkyMSwgMC45MDY5MzEsIDEuMzE0MzYsIDEuNzIxNzYsIDIuMTI5MTgsIDIuNTM2NTEiLCBcCi0gICAgICAgICAgIjAuMTg3NDc3LCAwLjU5NTc1NCwgMC45MjE3NTUsIDEuMzI5MjUsIDEuNzM2NjksIDIuMTQzOTksIDIuNTUxNCIsIFwKLSAgICAgICAgICAiMC4yMDIyOTIsIDAuNjEwNjQ1LCAwLjkzNjY3MywgMS4zNDQxNCwgMS43NTE1NCwgMi4xNTg5NCwgMi41NjYzIiwgXAotICAgICAgICAgICIwLjIxNjc3MiwgMC42MjUxOTQsIDAuOTUxMjUsIDEuMzU4NzEsIDEuNzY2MTIsIDIuMTczNTcsIDIuNTgwODgiLCBcCi0gICAgICAgICAgIjAuMjM5NDksIDAuNjQ3OTg5LCAwLjk3NDA0OCwgMS4zODE1LCAxLjc4ODkxLCAyLjE5NjMyLCAyLjYwMzc0IiwgXAotICAgICAgICAgICIwLjI1Nzg1NCwgMC42NjYzNzgsIDAuOTkyNDYxLCAxLjM5OTkxLCAxLjgwNzMzLCAyLjIxNDc1LCAyLjYyMjQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTk0MDIzLCAwLjk3MzYzMSwgMS41OTgwNCwgMi4zNzkwMywgMy4xNjAxMywgMy45Mzc4NywgNC43MjA3NyIsIFwKLSAgICAgICAgICAiMC4xOTQwNjgsIDAuOTczMjcxLCAxLjU5ODE0LCAyLjM3ODk4LCAzLjE1OTkyLCAzLjk1MTE3LCA0LjcxOTc2IiwgXAotICAgICAgICAgICIwLjE5NDA0NSwgMC45NzMyODYsIDEuNjAyMTMsIDIuMzg1NzUsIDMuMTU5NjcsIDMuOTQ3MzcsIDQuNzIxNzMiLCBcCi0gICAgICAgICAgIjAuMTk0MDQ1LCAwLjk3MzcsIDEuNTk3OTksIDIuMzc5MTgsIDMuMTU5OTksIDMuOTQwOTEsIDQuNzIxMSIsIFwKLSAgICAgICAgICAiMC4xOTM4MTUsIDAuOTczMzQsIDEuNTk4MTYsIDIuMzc5MDIsIDMuMTU5OTcsIDMuOTUxMTgsIDQuNzIwMDQiLCBcCi0gICAgICAgICAgIjAuMTk0MzE2LCAwLjk3MzM0NCwgMS41OTkzMywgMi4zNzgzNywgMy4xNjU4NywgMy45NDAyNSwgNC43MjQzNSIsIFwKLSAgICAgICAgICAiMC4xOTQ1MTgsIDAuOTcyNzU2LCAxLjU5OTU2LCAyLjM3ODIxLCAzLjE2MzA5LCAzLjk0MDY5LCA0LjcyMzk2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkExTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTY3NDUzLCAwLjM1NDM5NSwgMC41MDA2MiwgMC42ODM0NjYsIDAuODY2MTYxLCAxLjA0ODgzLCAxLjIzMTc2IiwgXAotICAgICAgICAgICIwLjE3NzM0OCwgMC4zNjQ1MzUsIDAuNTEwNzY1LCAwLjY5MzUwNCwgMC44NzYxOTIsIDEuMDU5MDcsIDEuMjQxNjkiLCBcCi0gICAgICAgICAgIjAuMTkwNTU0LCAwLjM3Nzg4LCAwLjUyNDExMiwgMC43MDY4ODYsIDAuODg5NjU1LCAxLjA3MjM1LCAxLjI1NTMzIiwgXAotICAgICAgICAgICIwLjIwNDQwNiwgMC4zOTE3NjEsIDAuNTM4MDA0LCAwLjcyMDgwMywgMC45MDM0NTksIDEuMDg2MjMsIDEuMjY4OTciLCBcCi0gICAgICAgICAgIjAuMjE4MjAxLCAwLjQwNTU5MSwgMC41NTE4NjQsIDAuNzM0NjQ4LCAwLjkxNzM5NSwgMS4xMDAxMSwgMS4yODI5NyIsIFwKLSAgICAgICAgICAiMC4yNDA1MTEsIDAuNDI3Nzk1LCAwLjU3NDA2NiwgMC43NTY3OTgsIDAuOTM5NTQ3LCAxLjEyMjMsIDEuMzA1MSIsIFwKLSAgICAgICAgICAiMC4yNTk5MjMsIDAuNDQ3MDg3LCAwLjU5MzMyNiwgMC43NzYxMjYsIDAuOTU4Nzg5LCAxLjE0MTYyLCAxLjMyNDQ4Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExMzY3MiwgMC40NzE1MDEsIDAuNzY1MDY2LCAxLjEzNDA5LCAxLjUwNDUxLCAxLjg4MDc1LCAyLjI0Njc0IiwgXAotICAgICAgICAgICIwLjExNDIyNiwgMC40NzA2ODMsIDAuNzY1MDU0LCAxLjEzNzE2LCAxLjUwODYyLCAxLjg3NzIzLCAyLjI1MTc0IiwgXAotICAgICAgICAgICIwLjExMzc0NywgMC40NzExOTMsIDAuNzY1MDEsIDEuMTM3MzEsIDEuNTA1OTQsIDEuODgyOTQsIDIuMjQ5MDEiLCBcCi0gICAgICAgICAgIjAuMTEzNTYyLCAwLjQ3MDM0NywgMC43NjUwMDcsIDEuMTM5MDEsIDEuNTA4NywgMS44ODAwNCwgMi4yNTE4MSIsIFwKLSAgICAgICAgICAiMC4xMTM0NDQsIDAuNDcwNDQ0LCAwLjc2NDkyOSwgMS4xMzczLCAxLjUwNTkyLCAxLjg4Mjk3LCAyLjI0ODI4IiwgXAotICAgICAgICAgICIwLjExMzUwNCwgMC40NzA0NDMsIDAuNzY0OTE5LCAxLjEzNTEyLCAxLjUwODc2LCAxLjg4MDY4LCAyLjI0ODEiLCBcCi0gICAgICAgICAgIjAuMTE0NDQ3LCAwLjQ3MTM2MSwgMC43NjQ5NywgMS4xMzczNCwgMS41MDgyNiwgMS44NzUzNSwgMi4yNDU2Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE1NzY2LCAwLjU2NTcwMiwgMC44OTE5MiwgMS4yOTkzLCAxLjcwNjYxLCAyLjExNDY0LCAyLjUyMjc2IiwgXAotICAgICAgICAgICIwLjE2OTM1NSwgMC41Nzc1NDEsIDAuOTAzNjk1LCAxLjMxMTAyLCAxLjcxODM3LCAyLjEyNjA0LCAyLjUzNDU4IiwgXAotICAgICAgICAgICIwLjE4NDA3NywgMC41OTIzNjQsIDAuOTE4Mzc3LCAxLjMyNTc0LCAxLjczNDM2LCAyLjE0MjE0LCAyLjU0OTA0IiwgXAotICAgICAgICAgICIwLjE5ODYzMywgMC42MDY5MjIsIDAuOTMzMDM4LCAxLjM0MDYyLCAxLjc0OTAzLCAyLjE1NzAyLCAyLjU2MzYiLCBcCi0gICAgICAgICAgIjAuMjEyNjQ4LCAwLjYyMTAwMSwgMC45NDcxMywgMS4zNTU1NSwgMS43NjIyNywgMi4xNzAyNywgMi41Nzc0MiIsIFwKLSAgICAgICAgICAiMC4yMzUzNjIsIDAuNjQzNzEzLCAwLjk2OTg2MywgMS4zNzgyNSwgMS43ODUxOCwgMi4xOTI5NywgMi42MDAyOSIsIFwKLSAgICAgICAgICAiMC4yNTI5NDgsIDAuNjYxNTI3LCAwLjk4NzgzNiwgMS4zOTUyNSwgMS44MDI3NiwgMi4yMTA5NywgMi42MTg1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE5MzY0MSwgMC45NzQ2ODcsIDEuNjA0MSwgMi4zODczLCAzLjE2ODcxLCAzLjk1MDA2LCA0LjcxNjA3IiwgXAotICAgICAgICAgICIwLjE5MzY0OCwgMC45NzM4MTEsIDEuNTk2MDQsIDIuMzg3MDQsIDMuMTY4NzUsIDMuOTUxMTMsIDQuNzE1NTQiLCBcCi0gICAgICAgICAgIjAuMTkzNjYsIDAuOTc0MDc0LCAxLjU5Nzk4LCAyLjM4NTE2LCAzLjE2MDI3LCAzLjkzNTUxLCA0LjcyMzEiLCBcCi0gICAgICAgICAgIjAuMTkzNjgxLCAwLjk3NDAwNCwgMS42MDQwOSwgMi4zODU0NCwgMy4xNTg4MiwgMy45NDA3NiwgNC43MjYxIiwgXAotICAgICAgICAgICIwLjE5Mzg2NiwgMC45NzY2NzYsIDEuNjAyMzQsIDIuMzc4NzIsIDMuMTY5MSwgMy45MzY2NywgNC43MjM3MiIsIFwKLSAgICAgICAgICAiMC4xOTM5NzYsIDAuOTc1ODY4LCAxLjYwMjE5LCAyLjM3OTA4LCAzLjE2ODQ2LCAzLjk1MjE3LCA0LjcxOTIxIiwgXAotICAgICAgICAgICIwLjE5NDMyNywgMC45NzU0NTksIDEuNjA0MywgMi4zODY4NCwgMy4xNzA1OCwgMy45NDI0OSwgNC43MTY5MiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDUwMTg3LCAwLjIzMDMwNCwgMC4zNzQzMzMsIDAuNTU0MjkxLCAwLjczMzkwMywgMC45MTM5NzgsIDEuMDkzODciLCBcCi0gICAgICAgICAgIjAuMDYxNzEzLCAwLjI0MTg4MiwgMC4zODU4NjIsIDAuNTY1NjE4LCAwLjc0NTQ4MSwgMC45MjU1MTksIDEuMTA1MzUiLCBcCi0gICAgICAgICAgIjAuMDc2NTgzLCAwLjI1NjI4NCwgMC4zOTk1MjcsIDAuNTc3NDA2LCAwLjc1NzQzNywgMC45Mzc1MDgsIDEuMTE3MTUiLCBcCi0gICAgICAgICAgIjAuMDkxMzM5LCAwLjI3MDgxMSwgMC40MTQ3MzQsIDAuNTkzNzMzLCAwLjc3MDQ2OCwgMC45NTA2NjMsIDEuMTMwNDMiLCBcCi0gICAgICAgICAgIjAuMTA2MTUxLCAwLjI4NTQzNCwgMC40MjkyMTksIDAuNjA5MDk0LCAwLjc4OTE4OCwgMC45NjM3MzUsIDEuMTQ0MDMiLCBcCi0gICAgICAgICAgIjAuMTI5NjEsIDAuMzA5MTEsIDAuNDUyNDg2LCAwLjYzMjIyOCwgMC44MTIwNjcsIDAuOTg2ODQ3LCAxLjE2Njk1IiwgXAotICAgICAgICAgICIwLjE0ODEzNiwgMC4zMjk4NTcsIDAuNDcyOTY1LCAwLjY1MjY5NywgMC44MzI2MzUsIDEuMDA3MjIsIDEuMTg2OTEiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDkxMDIyLCAwLjQ1NjE1NCwgMC43NDgzNzksIDEuMTEzMTksIDEuNDc4NTEsIDEuODQzMTMsIDIuMjA4MTciLCBcCi0gICAgICAgICAgIjAuMDkxMDQ0LCAwLjQ1NjE1LCAwLjc0ODQ5NSwgMS4xMTI5NiwgMS40Nzg1MSwgMS44NDMwOCwgMi4yMDg1NiIsIFwKLSAgICAgICAgICAiMC4wOTM1ODYsIDAuNDU2MTI3LCAwLjc0Nzg2MiwgMS4xMTM0OCwgMS40NzgxNywgMS44NDMyNiwgMi4yMDgwOSIsIFwKLSAgICAgICAgICAiMC4wOTg3NjksIDAuNDU2MDkyLCAwLjc0ODQxNSwgMS4xMTI5MywgMS40Nzc3MSwgMS44NDMyNSwgMi4yMDgyNCIsIFwKLSAgICAgICAgICAiMC4xMDU1NTUsIDAuNDU2MDc5LCAwLjc0ODA3NCwgMS4xMTMwOCwgMS40NzgzNCwgMS44NDM1OSwgMi4yMDg0MyIsIFwKLSAgICAgICAgICAiMC4xMTc2NTIsIDAuNDU3NDA3LCAwLjc0ODU1MywgMS4xMTI3OCwgMS40Nzg1MiwgMS44NDI2NywgMi4yMDgzMSIsIFwKLSAgICAgICAgICAiMC4xMjk3ODgsIDAuNDYwNzE2LCAwLjc0NzkxNiwgMS4xMTM0NSwgMS40NzgzLCAxLjg0MzMzLCAyLjIwNzk1Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExMzI2OCwgMC41MjEwMDIsIDAuODQ2NzQsIDEuMjU0MjgsIDEuNjYxNDksIDIuMDY5MDEsIDIuNDc2MiIsIFwKLSAgICAgICAgICAiMC4xMjQzOTYsIDAuNTMyMzQ2LCAwLjg1ODQ0MywgMS4yNjU5OSwgMS42NzQyLCAyLjA4MTMxLCAyLjQ4OTI4IiwgXAotICAgICAgICAgICIwLjEzNzM2NCwgMC41NDU2NTQsIDAuODcxNzE0LCAxLjI3OTY3LCAxLjY4ODA2LCAyLjA5NDQ0LCAyLjUwMjQzIiwgXAotICAgICAgICAgICIwLjE1MDQxNSwgMC41NTg5NDIsIDAuODg1MTQ5LCAxLjI5MzIyLCAxLjcwMDUzLCAyLjEwODEzLCAyLjUxNTU2IiwgXAotICAgICAgICAgICIwLjE2MzU0NCwgMC41NzI0NDksIDAuODk4MzkxLCAxLjMwNTk0LCAxLjcxMzgyLCAyLjEyMTQ4LCAyLjUyOTQxIiwgXAotICAgICAgICAgICIwLjE4NDU2MywgMC41OTQwMjUsIDAuOTE5OTkzLCAxLjMyNzc0LCAxLjczNTEzLCAyLjE0MzcsIDIuNTUwOTgiLCBcCi0gICAgICAgICAgIjAuMjAzMjU3LCAwLjYxMjQ4NiwgMC45Mzg3ODYsIDEuMzQ2NDMsIDEuNzUzODEsIDIuMTYxNTYsIDIuNTcwMDMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTkyLCAwLjk3NjM1MiwgMS42MDE4NSwgMi4zODU3MSwgMy4xNjgzNCwgMy45NTEzMSwgNC43MjQ5MiIsIFwKLSAgICAgICAgICAiMC4xOTIxMiwgMC45NzU2MTQsIDEuNjAyMjcsIDIuMzg1NTksIDMuMTcxNzgsIDMuOTUwOTcsIDQuNzI0IiwgXAotICAgICAgICAgICIwLjE5MjI4NSwgMC45NzY2MDcsIDEuNjAzMjcsIDIuMzc5MjYsIDMuMTczMzQsIDMuOTQyNDQsIDQuNzIzMTYiLCBcCi0gICAgICAgICAgIjAuMTkyOTcxLCAwLjk3NjQ5NiwgMS42MDIxNywgMi4zNzgzNSwgMy4xNzExNSwgMy45NTIxMywgNC43MjAxMSIsIFwKLSAgICAgICAgICAiMC4xOTQ0MDUsIDAuOTc1NjQ1LCAxLjYwMjc4LCAyLjM4NTc0LCAzLjE2Mzk3LCAzLjk0NTQ0LCA0LjcyNDc1IiwgXAotICAgICAgICAgICIwLjE5ODk1LCAwLjk3NDE0MywgMS42MDIzOCwgMi4zODUyNSwgMy4xNjkzNiwgMy45MzczOSwgNC43MjM5NyIsIFwKLSAgICAgICAgICAiMC4yMDQ1ODYsIDAuOTc2NDY0LCAxLjYwNDU4LCAyLjM4MzIxLCAzLjE2ODY4LCAzLjk1MTEyLCA0LjcyMTY4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTBOIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI0NDQsIDAuMDAyNDgzLCAwLjAwMjQ4OSwgMC4wMDI0OSwgMC4wMDI0OTMsIDAuMDAyNDk2LCAwLjAwMjQ5MiIsIFwKLSAgICAgICAgICAiMC4wMDI0MzUsIDAuMDAyNDc0LCAwLjAwMjQ4LCAwLjAwMjQ4MywgMC4wMDI0ODMsIDAuMDAyNDg0LCAwLjAwMjQ4MyIsIFwKLSAgICAgICAgICAiMC4wMDI0MjUsIDAuMDAyNDY2LCAwLjAwMjQ3MSwgMC4wMDI0NzMsIDAuMDAyNDc0LCAwLjAwMjQ3NSwgMC4wMDI0NzUiLCBcCi0gICAgICAgICAgIjAuMDAyNDE2LCAwLjAwMjQ1OSwgMC4wMDI0NjQsIDAuMDAyNDY3LCAwLjAwMjQ2OCwgMC4wMDI0NjgsIDAuMDAyNDY5IiwgXAotICAgICAgICAgICIwLjAwMjQxLCAwLjAwMjQ1NSwgMC4wMDI0NTksIDAuMDAyNDYyLCAwLjAwMjQ2NCwgMC4wMDI0NjUsIDAuMDAyNDY1IiwgXAotICAgICAgICAgICIwLjAwMjQwMSwgMC4wMDI0NDksIDAuMDAyNDU0LCAwLjAwMjQ1NywgMC4wMDI0NiwgMC4wMDI0NiwgMC4wMDI0NjEiLCBcCi0gICAgICAgICAgIjAuMDAyMzk2LCAwLjAwMjQ0NSwgMC4wMDI0NTIsIDAuMDAyNDU2LCAwLjAwMjQ1NywgMC4wMDI0NTgsIDAuMDAyNDU5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzMzUzLCAwLjAwMzM5MSwgMC4wMDMzOTUsIDAuMDAzMzk4LCAwLjAwMzM5OSwgMC4wMDMzOTksIDAuMDAzNCIsIFwKLSAgICAgICAgICAiMC4wMDMzNDIsIDAuMDAzMzgzLCAwLjAwMzM4OCwgMC4wMDMzOSwgMC4wMDMzOTEsIDAuMDAzMzkyLCAwLjAwMzM5MiIsIFwKLSAgICAgICAgICAiMC4wMDMzMjksIDAuMDAzMzc2LCAwLjAwMzM4MSwgMC4wMDMzODQsIDAuMDAzMzg2LCAwLjAwMzM4NywgMC4wMDMzODciLCBcCi0gICAgICAgICAgIjAuMDAzMzE4LCAwLjAwMzM2OSwgMC4wMDMzNzYsIDAuMDAzMzgsIDAuMDAzMzgyLCAwLjAwMzM4MywgMC4wMDMzODQiLCBcCi0gICAgICAgICAgIjAuMDAzMzA3LCAwLjAwMzM2MywgMC4wMDMzNzIsIDAuMDAzMzc2LCAwLjAwMzM3OSwgMC4wMDMzOCwgMC4wMDMzODEiLCBcCi0gICAgICAgICAgIjAuMDAzMjk0LCAwLjAwMzM1NywgMC4wMDMzNjcsIDAuMDAzMzczLCAwLjAwMzM3NSwgMC4wMDMzNzcsIDAuMDAzMzc4IiwgXAotICAgICAgICAgICIwLjAwMzI4NCwgMC4wMDMzNTEsIDAuMDAzMzYzLCAwLjAwMzM2OSwgMC4wMDMzNzIsIDAuMDAzMzc0LCAwLjAwMzM3NiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkExTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyNDQ1LCAwLjAwMjQ4NiwgMC4wMDI0OSwgMC4wMDI0OTMsIDAuMDAyNDk0LCAwLjAwMjQ5MiwgMC4wMDI0OTYiLCBcCi0gICAgICAgICAgIjAuMDAyNDI5LCAwLjAwMjQ3MywgMC4wMDI0NzgsIDAuMDAyNDgxLCAwLjAwMjQ4MiwgMC4wMDI0ODMsIDAuMDAyNDgzIiwgXAotICAgICAgICAgICIwLjAwMjQxOCwgMC4wMDI0NjMsIDAuMDAyNDY3LCAwLjAwMjQ3MSwgMC4wMDI0NzIsIDAuMDAyNDcyLCAwLjAwMjQ3MyIsIFwKLSAgICAgICAgICAiMC4wMDI0MDgsIDAuMDAyNDU1LCAwLjAwMjQ2MSwgMC4wMDI0NjMsIDAuMDAyNDY1LCAwLjAwMjQ2NiwgMC4wMDI0NjciLCBcCi0gICAgICAgICAgIjAuMDAyNDAxLCAwLjAwMjQ1LCAwLjAwMjQ1NiwgMC4wMDI0NTksIDAuMDAyNDYxLCAwLjAwMjQ2MiwgMC4wMDI0NjMiLCBcCi0gICAgICAgICAgIjAuMDAyMzkyLCAwLjAwMjQ0NCwgMC4wMDI0NTEsIDAuMDAyNDU1LCAwLjAwMjQ1NywgMC4wMDI0NTgsIDAuMDAyNDU5IiwgXAotICAgICAgICAgICIwLjAwMjM4MywgMC4wMDI0NDIsIDAuMDAyNDQ5LCAwLjAwMjQ1MywgMC4wMDI0NTYsIDAuMDAyNDU4LCAwLjAwMjQ1OSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzExOSwgMC4wMDMxNTUsIDAuMDAzMTU5LCAwLjAwMzE2MSwgMC4wMDMxNjIsIDAuMDAzMTYyLCAwLjAwMzE2MyIsIFwKLSAgICAgICAgICAiMC4wMDMxMTIsIDAuMDAzMTUsIDAuMDAzMTU0LCAwLjAwMzE1NiwgMC4wMDMxNTcsIDAuMDAzMTU4LCAwLjAwMzE1OCIsIFwKLSAgICAgICAgICAiMC4wMDMwOTcsIDAuMDAzMTQxLCAwLjAwMzE0NiwgMC4wMDMxNDksIDAuMDAzMTUsIDAuMDAzMTUxLCAwLjAwMzE1MSIsIFwKLSAgICAgICAgICAiMC4wMDMwODEsIDAuMDAzMTMyLCAwLjAwMzEzOSwgMC4wMDMxNDIsIDAuMDAzMTQ0LCAwLjAwMzE0NSwgMC4wMDMxNDYiLCBcCi0gICAgICAgICAgIjAuMDAzMDY3LCAwLjAwMzEyNSwgMC4wMDMxMzMsIDAuMDAzMTM3LCAwLjAwMzE0LCAwLjAwMzE0MSwgMC4wMDMxNDIiLCBcCi0gICAgICAgICAgIjAuMDAzMDU3LCAwLjAwMzExOCwgMC4wMDMxMjcsIDAuMDAzMTMyLCAwLjAwMzEzNSwgMC4wMDMxMzcsIDAuMDAzMTM4IiwgXAotICAgICAgICAgICIwLjAwMzA0NSwgMC4wMDMxMTEsIDAuMDAzMTIyLCAwLjAwMzEyOCwgMC4wMDMxMzEsIDAuMDAzMTMzLCAwLjAwMzEzNCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDIzOCwgMC4wMDIzODEsIDAuMDAyMzgxLCAwLjAwMjM4MSwgMC4wMDIzODEsIDAuMDAyMzgxLCAwLjAwMjM4IiwgXAotICAgICAgICAgICIwLjAwMjM1NywgMC4wMDIzNjksIDAuMDAyMzY5LCAwLjAwMjM3LCAwLjAwMjM3LCAwLjAwMjM3LCAwLjAwMjM3IiwgXAotICAgICAgICAgICIwLjAwMjM0NSwgMC4wMDIzNjQsIDAuMDAyMzY2LCAwLjAwMjM2NiwgMC4wMDIzNjcsIDAuMDAyMzY2LCAwLjAwMjM2NCIsIFwKLSAgICAgICAgICAiMC4wMDIzMzQsIDAuMDAyMzYxLCAwLjAwMjM2NCwgMC4wMDIzNjQsIDAuMDAyMzY0LCAwLjAwMjM2NCwgMC4wMDIzNjUiLCBcCi0gICAgICAgICAgIjAuMDAyMzI3LCAwLjAwMjM1NywgMC4wMDIzNjEsIDAuMDAyMzY0LCAwLjAwMjM2NSwgMC4wMDIzNjQsIDAuMDAyMzY2IiwgXAotICAgICAgICAgICIwLjAwMjMxOCwgMC4wMDIzNTQsIDAuMDAyMzU5LCAwLjAwMjM2MSwgMC4wMDIzNjQsIDAuMDAyMzYzLCAwLjAwMjM2MyIsIFwKLSAgICAgICAgICAiMC4wMDIzMTUsIDAuMDAyMzUxLCAwLjAwMjM1NiwgMC4wMDIzNiwgMC4wMDIzNjIsIDAuMDAyMzYzLCAwLjAwMjM2MyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTA0NiwgMC4wMDEwNTIsIDAuMDAxMDUyLCAwLjAwMTA1MywgMC4wMDEwNTMsIDAuMDAxMDUzLCAwLjAwMTA1MyIsIFwKLSAgICAgICAgICAiMC4wMDEwMTgsIDAuMDAxMDQ2LCAwLjAwMTA0OSwgMC4wMDEwNSwgMC4wMDEwNTEsIDAuMDAxMDUyLCAwLjAwMTA1MiIsIFwKLSAgICAgICAgICAiMC4wMDA5OTIsIDAuMDAxMDM4LCAwLjAwMTA0NCwgMC4wMDEwNDcsIDAuMDAxMDQ5LCAwLjAwMTA1LCAwLjAwMTA1IiwgXAotICAgICAgICAgICIwLjAwMDk3NCwgMC4wMDEwMzIsIDAuMDAxMDQsIDAuMDAxMDQ0LCAwLjAwMTA0NiwgMC4wMDEwNDgsIDAuMDAxMDQ5IiwgXAotICAgICAgICAgICIwLjAwMDk2LCAwLjAwMTAyNSwgMC4wMDEwMzYsIDAuMDAxMDQxLCAwLjAwMTA0NCwgMC4wMDEwNDYsIDAuMDAxMDQ3IiwgXAotICAgICAgICAgICIwLjAwMDk0MywgMC4wMDEwMTcsIDAuMDAxMDI5LCAwLjAwMTAzNywgMC4wMDEwNDEsIDAuMDAxMDQzLCAwLjAwMTA0NSIsIFwKLSAgICAgICAgICAiMC4wMDA5MzMsIDAuMDAxMDA4LCAwLjAwMTAyNCwgMC4wMDEwMzMsIDAuMDAxMDM4LCAwLjAwMTA0MSwgMC4wMDEwNDMiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IE9BSTJCQjJYMSAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKE9BSTJCQjJYMSkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjEzNDUyMjsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQTBOKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA1OTIyNTQ7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNTkxOTg2OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDU5MjI1NDsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAzNDMsIDAuMDAwMzI2LCAwLjAwMDMxNSwgMC4wMDAzMTEsIDAuMDAwMzA5LCAwLjAwMDMwNywgMC4wMDAzMDciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDEyMzYsIDAuMDAxMjI0LCAwLjAwMTIxNywgMC4wMDEyMTQsIDAuMDAxMjEyLCAwLjAwMTIxLCAwLjAwMTIxIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihBMU4pICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDU5NzI3NjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA1OTY5MjY7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNTk3Mjc2OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDM1LCAwLjAwMDMzNCwgMC4wMDAzMjQsIDAuMDAwMzE5LCAwLjAwMDMxNiwgMC4wMDAzMTQsIDAuMDAwMzE0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxNTE2LCAwLjAwMTUwNSwgMC4wMDE0OTgsIDAuMDAxNDk1LCAwLjAwMTQ5MywgMC4wMDE0OTEsIDAuMDAxNDkiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA4MDYwMjM7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNzk5NDE3OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDgwNjAyMzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyNzQsIDAuMDAwMjg4LCAwLjAwMDI5MiwgMC4wMDAyOTMsIDAuMDAwMjk0LCAwLjAwMDI5NSwgMC4wMDAyOTUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAzMTQsIDAuMDAwMzE0LCAwLjAwMDMxNCwgMC4wMDAzMTQsIDAuMDAwMzE0LCAwLjAwMDMxNCwgMC4wMDAzMTQiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIxKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA4NDk3NzI7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwODQ5NTE3OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDg0OTc3MjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAwOTIsIDAuMDAwMDkyLCAwLjAwMDA5MiwgMC4wMDAwOTIsIDAuMDAwMDkyLCAwLjAwMDA5MiwgMC4wMDAwOTIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAzNjgsIDAuMDAwMzY4LCAwLjAwMDM2OCwgMC4wMDAzNjgsIDAuMDAwMzY4LCAwLjAwMDM2OCwgMC4wMDAzNjgiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4wNjQ3NjgxOwotICAgIGZ1bmN0aW9uIDogIighKChCMCtCMSkgKCEoQTBOIEExTikpKSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEwTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjMzNjgxLCAwLjMyMjUxNywgMC44MjM5OTIsIDEuMjY2MzcsIDEuODU1OTcsIDMuMDMzMzgsIDMuNzY5MTYiLCBcCi0gICAgICAgICAgIjAuMjQ1NDksIDAuMzM0MzYyLCAwLjgzNTkzNiwgMS4yNzgyMSwgMS44Njc4NSwgMy4wNDUwNiwgMy43ODEwMSIsIFwKLSAgICAgICAgICAiMC4yNjA3ODgsIDAuMzQ5Njk1LCAwLjg1MTI4OSwgMS4yOTM2MSwgMS44ODI3MiwgMy4wNjEwNiwgMy43OTY0OCIsIFwKLSAgICAgICAgICAiMC4yNzU5MzMsIDAuMzY0ODE0LCAwLjg2NjQ5MywgMS4zMDg0MiwgMS44OTgxOCwgMy4wNzU1OCwgMy44MTE1IiwgXAotICAgICAgICAgICIwLjI5MDYyMywgMC4zNzk1MjYsIDAuODgxMjQ2LCAxLjMyMzQsIDEuOTEyOTYsIDMuMDkwMjksIDMuODI2MjEiLCBcCi0gICAgICAgICAgIjAuMzEyNDMxLCAwLjQwMTMzOSwgMC45MDI4OTcsIDEuMzQ1NCwgMS45MzQ5NCwgMy4xMTIwOSwgMy44NDgwMyIsIFwKLSAgICAgICAgICAiMC4zMjk3NzMsIDAuNDE4NjcsIDAuOTIwNDIxLCAxLjM2MjE2LCAxLjk1MTgyLCAzLjEzMDEsIDMuODY1NDIiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzY0NjM5LCAwLjUzNzI4MSwgMS41MTU5NCwgMi4zNzkwMiwgMy41MzExNSwgNS44MzIwOSwgNy4yNzA5MiIsIFwKLSAgICAgICAgICAiMC4zNjQ2MjIsIDAuNTM3MjE4LCAxLjUxNTY5LCAyLjM3OTc3LCAzLjUzMDU2LCA1LjgzMjMsIDcuMjcxMDUiLCBcCi0gICAgICAgICAgIjAuMzY0NjI2LCAwLjUzNzMwNiwgMS41MTU3MSwgMi4zNzk3NSwgMy41MzAzOSwgNS44MzI2MiwgNy4yNzA5MyIsIFwKLSAgICAgICAgICAiMC4zNjQ2NzQsIDAuNTM3MjQ4LCAxLjUxNTY4LCAyLjM3OTUsIDMuNTMwMjYsIDUuODMyNzcsIDcuMjcxMDUiLCBcCi0gICAgICAgICAgIjAuMzY0NjIyLCAwLjUzNzI0NCwgMS41MTU3MiwgMi4zNzk4LCAzLjUzMDg5LCA1LjgzMjM3LCA3LjI3MTA0IiwgXAotICAgICAgICAgICIwLjM2NDY0NSwgMC41MzcyODQsIDEuNTE1NywgMi4zNzg5NSwgMy41MzAzNiwgNS44MzM0MiwgNy4yNzEiLCBcCi0gICAgICAgICAgIjAuMzY0NjY1LCAwLjUzNzI4OSwgMS41MTYwMywgMi4zNzkzNSwgMy41MzA0MSwgNS44MzI2NCwgNy4yNzA4NiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yNjM2ODUsIDAuMzYzMjMsIDAuOTI1MTA1LCAxLjQyMDg0LCAyLjA4MTg4LCAzLjQwMDQzLCA0LjIyNTE0IiwgXAotICAgICAgICAgICIwLjI3NTIyOCwgMC4zNzQ3NzIsIDAuOTM2NjUxLCAxLjQzMjkyLCAyLjA5MjYsIDMuNDExOTksIDQuMjM2ODUiLCBcCi0gICAgICAgICAgIjAuMjg5OTU3LCAwLjM4OTUyNiwgMC45NTE1MTIsIDEuNDQ2ODgsIDIuMTA3NDgsIDMuNDI3MDUsIDQuMjUxMzUiLCBcCi0gICAgICAgICAgIjAuMzA0MzQ1LCAwLjQwMzkzOSwgMC45NjYwMzQsIDEuNDYxNTEsIDIuMTIxOCwgMy40NDE3NCwgNC4yNjU4IiwgXAotICAgICAgICAgICIwLjMxNzY2OCwgMC40MTcyODIsIDAuOTc5NTQyLCAxLjQ3NTAzLCAyLjEzNDg1LCAzLjQ1NTE3LCA0LjI3OTA4IiwgXAotICAgICAgICAgICIwLjMzNjU0OSwgMC40MzYxNzksIDAuOTk4MTA4LCAxLjQ5MzQ3LCAyLjE1NDI2LCAzLjQ3MzY5LCA0LjI5ODA3IiwgXAotICAgICAgICAgICIwLjM1MTY2NCwgMC40NTEyMzEsIDEuMDEzMzgsIDEuNTA4NzYsIDIuMTY5NjEsIDMuNDg5MjMsIDQuMzEzMTYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzgzMTExLCAwLjU3MjUwMiwgMS42NDU1NCwgMi41OTIwNSwgMy44NTQ0NiwgNi4zODAyMywgNy45NTI4OSIsIFwKLSAgICAgICAgICAiMC4zODMxMjcsIDAuNTcyNDU5LCAxLjY0NTM2LCAyLjU5MjAzLCAzLjg1MzQ4LCA2LjM3NjcyLCA3Ljk1MTM0IiwgXAotICAgICAgICAgICIwLjM4MzA2MywgMC41NzI0NjQsIDEuNjQ1NDgsIDIuNTkyMjksIDMuODUzOSwgNi4zNzcsIDcuOTUyNzQiLCBcCi0gICAgICAgICAgIjAuMzgzMTEzLCAwLjU3MjQyMSwgMS42NDU5OCwgMi41OTI0OSwgMy44NTM3MSwgNi4zODA0NiwgNy45NTEzNSIsIFwKLSAgICAgICAgICAiMC4zODMwOTIsIDAuNTcyNDA4LCAxLjY0NjIsIDIuNTkyOTMsIDMuODUyNjgsIDYuMzc4NTYsIDcuOTUyNzkiLCBcCi0gICAgICAgICAgIjAuMzgzMTI0LCAwLjU3MjYxNCwgMS42NDU4MSwgMi41OTE0NSwgMy44NTM5OCwgNi4zNzY3NiwgNy45NTI3OCIsIFwKLSAgICAgICAgICAiMC4zODI5NjEsIDAuNTcyNTA5LCAxLjY0NTQxLCAyLjU5Mzk4LCAzLjg1MzU4LCA2LjM4MDMsIDcuOTUyNzkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTFOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMzAxODIsIDAuMzE5MDI3LCAwLjgyMDYyLCAxLjI2MjYsIDEuODUxNywgMy4wMjk3MSwgMy43NjU3MSIsIFwKLSAgICAgICAgICAiMC4yNDIxNiwgMC4zMzEwMjgsIDAuODMyNjY0LCAxLjI3NDQ4LCAxLjg2Mzk4LCAzLjA0MTY5LCAzLjc3NzY1IiwgXAotICAgICAgICAgICIwLjI1NzQ4NCwgMC4zNDYzNDcsIDAuODQ3ODM4LCAxLjI5MDI3LCAxLjg3OTc5LCAzLjA1NzExLCAzLjc5MzA0IiwgXAotICAgICAgICAgICIwLjI3MjI2NiwgMC4zNjExNjYsIDAuODYyODYyLCAxLjMwNDkyLCAxLjg5Mzk1LCAzLjA3MjQ2LCAzLjgwNzk3IiwgXAotICAgICAgICAgICIwLjI4NzM2MywgMC4zNzYzMDMsIDAuODc3OTU2LCAxLjMyMDI5LCAxLjkwOTM2LCAzLjA4NzAzLCAzLjgyMzExIiwgXAotICAgICAgICAgICIwLjMxMDA3MiwgMC4zOTg5ODMsIDAuOTAwNzM0LCAxLjM0MjgsIDEuOTMyMTMsIDMuMTA5NjQsIDMuODQ1ODQiLCBcCi0gICAgICAgICAgIjAuMzI4NDg0LCAwLjQxNzQwOSwgMC45MTkxNzMsIDEuMzYxMiwgMS45NTAyOSwgMy4xMjg4MiwgMy44NjQyNyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zNjQ2NDksIDAuNTM3MjY3LCAxLjUxNTcsIDIuMzc5NDMsIDMuNTMwNjcsIDUuODMzMjYsIDcuMjcwNjUiLCBcCi0gICAgICAgICAgIjAuMzY0Njc2LCAwLjUzNzMwNSwgMS41MTU4NywgMi4zNzk1NCwgMy41Mjk5MywgNS44MzM0LCA3LjI3MDk1IiwgXAotICAgICAgICAgICIwLjM2NDYzMywgMC41MzcyNjYsIDEuNTE1NjUsIDIuMzc5MDEsIDMuNTMwODUsIDUuODMyMjEsIDcuMjcxMDQiLCBcCi0gICAgICAgICAgIjAuMzY0Njc5LCAwLjUzNzI0MiwgMS41MTU3MiwgMi4zNzkwOSwgMy41MzA3OCwgNS44MzIxNSwgNy4yNzI1NSIsIFwKLSAgICAgICAgICAiMC4zNjQ2MzQsIDAuNTM3MjU5LCAxLjUxNTcsIDIuMzc5NiwgMy41MzAyMiwgNS44MzIxOCwgNy4yNzI1OSIsIFwKLSAgICAgICAgICAiMC4zNjQ2NjYsIDAuNTM3MjQyLCAxLjUxNTg1LCAyLjM3OTE0LCAzLjUzMDg3LCA1LjgzMzU3LCA3LjI3MjQ3IiwgXAotICAgICAgICAgICIwLjM2NDc0NSwgMC41MzcyMzQsIDEuNTE1OTUsIDIuMzc5NiwgMy41Mjk5NiwgNS44MzM4MSwgNy4yNzEzNyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yNTg4NSwgMC4zNTgyNDksIDAuOTIwMjc2LCAxLjQxNDg3LCAyLjA3NTEyLCAzLjM5NTE3LCA0LjIxOTQiLCBcCi0gICAgICAgICAgIjAuMjcwNDUsIDAuMzY5ODUxLCAwLjkzMTI4NCwgMS40MjcwNCwgMi4wODc0OCwgMy40MDYzOSwgNC4yMzA4NiIsIFwKLSAgICAgICAgICAiMC4yODUxNzYsIDAuMzg0NjA1LCAwLjk0NjA4NSwgMS40NDIxMywgMi4xMDIxNiwgMy40MjExLCA0LjI0NTg1IiwgXAotICAgICAgICAgICIwLjI5OTc1LCAwLjM5OTIwNiwgMC45NjA4OTcsIDEuNDU2MjksIDIuMTE2MDUsIDMuNDM2MzYsIDQuMjYwMiIsIFwKLSAgICAgICAgICAiMC4zMTM3NDYsIDAuNDEzMjE4LCAwLjk3NDgzOSwgMS40NzA4MywgMi4xMzA4NywgMy40NDk3OSwgNC4yNzQ1OCIsIFwKLSAgICAgICAgICAiMC4zMzM5NTQsIDAuNDMzNDUzLCAwLjk5NTYzMSwgMS40OTExNSwgMi4xNTExNiwgMy40NzAxNSwgNC4yOTQ4OSIsIFwKLSAgICAgICAgICAiMC4zNDk5NTgsIDAuNDQ5NDI0LCAxLjAxMTIzLCAxLjUwNjU1LCAyLjE2NzI4LCAzLjQ4NjM2LCA0LjMxMDc2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjM3MTA4OSwgMC41NjA0MTcsIDEuNjMzMjgsIDIuNTc4MDYsIDMuODM5NSwgNi4zNjYxOCwgNy45MzgzOCIsIFwKLSAgICAgICAgICAiMC4zNzE0NTUsIDAuNTYwNDU1LCAxLjYzMjYsIDIuNTc5MTMsIDMuODQxMiwgNi4zNjY0NCwgNy45Mzg4NSIsIFwKLSAgICAgICAgICAiMC4zNzE0NDUsIDAuNTYwNTc2LCAxLjYzMjc2LCAyLjU3OTQ0LCAzLjg0MjA2LCA2LjM2Mjc5LCA3LjkzOTA1IiwgXAotICAgICAgICAgICIwLjM3MTQ0NSwgMC41NjA1MzUsIDEuNjMzMTksIDIuNTc5NDUsIDMuODM5MzgsIDYuMzY0MzUsIDcuOTM4NDUiLCBcCi0gICAgICAgICAgIjAuMzcxNDQ3LCAwLjU2MDU2OSwgMS42MzMxMywgMi41Nzk0MiwgMy44NDIwNywgNi4zNjYyNSwgNy45MzkwMiIsIFwKLSAgICAgICAgICAiMC4zNzEwOTEsIDAuNTYwNjE3LCAxLjYzMzE3LCAyLjU3OTM4LCAzLjg0MTk2LCA2LjM2MzAxLCA3LjkzODk3IiwgXAotICAgICAgICAgICIwLjM3MTE2OSwgMC41NjA0MjMsIDEuNjMyNTQsIDIuNTc4MDksIDMuODQxMDIsIDYuMzY2MiwgNy45Mzg3OCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTc5MjczLCAwLjI2Nzc5MiwgMC43NjkyNzgsIDEuMjExODIsIDEuODAxODIsIDIuOTgxNTgsIDMuNzE5NDMiLCBcCi0gICAgICAgICAgIjAuMTkwOTc4LCAwLjI3OTY0MywgMC43ODEwNTIsIDEuMjIzNywgMS44MTM2NiwgMi45OTM3NywgMy43MzExOCIsIFwKLSAgICAgICAgICAiMC4yMDQyMzksIDAuMjkyNzM3LCAwLjc5NDMwOCwgMS4yMzY5OCwgMS44MjY5NSwgMy4wMDY4MywgMy43NDQ0NyIsIFwKLSAgICAgICAgICAiMC4yMTY2NTksIDAuMzA1Mjc5LCAwLjgwNzAzNywgMS4yNDk1MSwgMS44Mzk3MSwgMy4wMTk3NywgMy43NTcxOCIsIFwKLSAgICAgICAgICAiMC4yMjkxNjUsIDAuMzE3NzcyLCAwLjgxOTU1LCAxLjI2MjA2LCAxLjg1MjA2LCAzLjAzMjE0LCAzLjc2OTg1IiwgXAotICAgICAgICAgICIwLjI0ODc0NiwgMC4zMzc0NTUsIDAuODM5NDMsIDEuMjgxOTMsIDEuODcxODgsIDMuMDUxOTYsIDMuNzg5NyIsIFwKLSAgICAgICAgICAiMC4yNjU5NjIsIDAuMzU0NzA2LCAwLjg1Njg0NSwgMS4yOTk0NSwgMS44ODk0MSwgMy4wNjk1NiwgMy44MDcxMiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zNDgxOCwgMC41MjA2ODEsIDEuNDk5MzEsIDIuMzYzNDEsIDMuNTE2MjQsIDUuODIyNTIsIDcuMjY0IiwgXAotICAgICAgICAgICIwLjM0ODE0NiwgMC41MjA2NTYsIDEuNDk5MjgsIDIuMzYzOTIsIDMuNTE1NzUsIDUuODIyODgsIDcuMjY0NzYiLCBcCi0gICAgICAgICAgIjAuMzQ4MTQ3LCAwLjUyMDY0MSwgMS40OTkyOCwgMi4zNjM5NywgMy41MjMyNSwgNS44MjI5LCA3LjI2NDY5IiwgXAotICAgICAgICAgICIwLjM0ODA5MywgMC41MjA1NzIsIDEuNDk5MywgMi4zNjQwNCwgMy41MjM0NywgNS44MjI4MywgNy4yNjQzMiIsIFwKLSAgICAgICAgICAiMC4zNDg0MjMsIDAuNTIwNjI5LCAxLjQ5OTQ2LCAyLjM2MzYzLCAzLjUxNTgxLCA1LjgyMjg5LCA3LjI2NDYxIiwgXAotICAgICAgICAgICIwLjM1MDY5NywgMC41MjA5NzEsIDEuNDk5NTQsIDIuMzYzMzgsIDMuNTE1NzIsIDUuODIxMTUsIDcuMjYzMjYiLCBcCi0gICAgICAgICAgIjAuMzU0MDUyLCAwLjUyMjYzOCwgMS40OTk1NCwgMi4zNjMzNiwgMy41MTY3OCwgNS44MjEyLCA3LjI2NDY5Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIxNTY4LCAwLjMxNTE4OSwgMC44NzcyODksIDEuMzcyNDcsIDIuMDMyLCAzLjM1MTMxLCA0LjE3NTk3IiwgXAotICAgICAgICAgICIwLjIyNTkzNSwgMC4zMjU0NTcsIDAuODg3NTExLCAxLjM4MzA0LCAyLjA0Mzg0LCAzLjM2MjksIDQuMTg3MzMiLCBcCi0gICAgICAgICAgIjAuMjM5NTY3LCAwLjMzOTA5OSwgMC45MDA2NDYsIDEuMzk3MzIsIDIuMDU2OTMsIDMuMzc3MTMsIDQuMjAxIiwgXAotICAgICAgICAgICIwLjI1MjQ4OSwgMC4zNTE5MjQsIDAuOTE0MzI4LCAxLjQwOTgxLCAyLjA3MDA5LCAzLjM5MDA0LCA0LjIxNDAzIiwgXAotICAgICAgICAgICIwLjI2NTIzLCAwLjM2NTE1OCwgMC45Mjc5NjgsIDEuNDIzODYsIDIuMDgzNzIsIDMuNDAzMTQsIDQuMjI3NzkiLCBcCi0gICAgICAgICAgIjAuMjg2NTc3LCAwLjM4NjE4MiwgMC45NDgzNDIsIDEuNDQ0MzcsIDIuMTA0MzYsIDMuNDI0MjcsIDQuMjQ4MjEiLCBcCi0gICAgICAgICAgIjAuMzA1MTY3LCAwLjQwNDc2MywgMC45NjcyMTUsIDEuNDYyODIsIDIuMTIyOTMsIDMuNDQyMzMsIDQuMjY2OTYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzgzNDIzLCAwLjU3MjUzMiwgMS42NDYwNiwgMi41OTEzMSwgMy44NTI1MiwgNi4zNzU0MywgNy45NTE4NSIsIFwKLSAgICAgICAgICAiMC4zODI4MjQsIDAuNTcyNTM2LCAxLjY0NTkxLCAyLjU5MTMsIDMuODUzODMsIDYuMzc2NiwgNy45NTEwOCIsIFwKLSAgICAgICAgICAiMC4zODMyOTUsIDAuNTcyNzIzLCAxLjY0NTUzLCAyLjU5MjQ3LCAzLjg1NDIxLCA2LjM3NzYxLCA3Ljk1MjIxIiwgXAotICAgICAgICAgICIwLjM4MzAzOSwgMC41NzI0NDksIDEuNjQ2LCAyLjU5MjUzLCAzLjg1MzcyLCA2LjM4MDQyLCA3Ljk1MDI0IiwgXAotICAgICAgICAgICIwLjM4MzA1NiwgMC41NzI1MzUsIDEuNjQ1NiwgMi41OTI2LCAzLjg1NDY4LCA2LjM4MDU4LCA3Ljk1MzAyIiwgXAotICAgICAgICAgICIwLjM4NTA0NywgMC41NzIxNDEsIDEuNjQ1NTIsIDIuNTkyMjUsIDMuODUzODUsIDYuMzgwNDQsIDcuOTUyNjciLCBcCi0gICAgICAgICAgIjAuMzg5MDQ5LCAwLjU3MzUwNSwgMS42NDUyOCwgMi41OTIyMSwgMy44NTQzMSwgNi4zODAzMSwgNy45NTI4NyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTcyMTUyLCAwLjI2MDc2OSwgMC43NjI0MzUsIDEuMjA0OTIsIDEuNzk1MDcsIDIuOTc0ODgsIDMuNzEyNDkiLCBcCi0gICAgICAgICAgIjAuMTgyNTc3LCAwLjI3MTI1MiwgMC43NzI3MzIsIDEuMjE1NDMsIDEuODA1NDIsIDIuOTg1MzIsIDMuNzIzMDQiLCBcCi0gICAgICAgICAgIjAuMTk1NjM0LCAwLjI4NDMzMSwgMC43ODU4OTcsIDEuMjI4NDEsIDEuODE4NDUsIDIuOTk4NzMsIDMuNzM2MTQiLCBcCi0gICAgICAgICAgIjAuMjA4NTU1LCAwLjI5NzM1NSwgMC43OTg5MzEsIDEuMjQxNTIsIDEuODMxNTYsIDMuMDExNTYsIDMuNzQ5MiIsIFwKLSAgICAgICAgICAiMC4yMjE2MDQsIDAuMzEwMzg1LCAwLjgxMjA4NSwgMS4yNTQ3NywgMS44NDQ3NCwgMy4wMjQ2NSwgMy43NjIzMSIsIFwKLSAgICAgICAgICAiMC4yNDI1NTMsIDAuMzMxMjksIDAuODMzMDQ1LCAxLjI3NTU4LCAxLjg2NTc4LCAzLjA0NTg1LCAzLjc4MzE2IiwgXAotICAgICAgICAgICIwLjI2MDk3NiwgMC4zNDk2NzUsIDAuODUxNDE3LCAxLjI5NDA4LCAxLjg4Mzk3LCAzLjA2NDEsIDMuODAxNjQiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzQ4MTE1LCAwLjUyMDU4OCwgMS40OTkzOCwgMi4zNjM1MiwgMy41MjM0NSwgNS44MjE1MSwgNy4yNjQ3MiIsIFwKLSAgICAgICAgICAiMC4zNDgwNzMsIDAuNTIwNjczLCAxLjQ5OTM1LCAyLjM2NDA5LCAzLjUxNjE1LCA1LjgyMjczLCA3LjI2MzMyIiwgXAotICAgICAgICAgICIwLjM0ODEyNCwgMC41MjA2NDcsIDEuNDk5MjcsIDIuMzYzNTIsIDMuNTIzNTEsIDUuODIzMTMsIDcuMjY0MDMiLCBcCi0gICAgICAgICAgIjAuMzQ4MDI2LCAwLjUyMDYzNywgMS40OTkzLCAyLjM2MzkzLCAzLjUyMzY3LCA1LjgyMjg4LCA3LjI2NDYxIiwgXAotICAgICAgICAgICIwLjM0OTEyNCwgMC41MjA2NjMsIDEuNDk5NDgsIDIuMzYzMzUsIDMuNTE2NjYsIDUuODIyODgsIDcuMjY0NjYiLCBcCi0gICAgICAgICAgIjAuMzUzODM1LCAwLjUyMTU1MywgMS40OTkzNiwgMi4zNjM4MSwgMy41MjM2NiwgNS44MjI0MiwgNy4yNjQ0MiIsIFwKLSAgICAgICAgICAiMC4zNjAwMDcsIDAuNTI0Njc0LCAxLjQ5OTQ4LCAyLjM2Mzk1LCAzLjUxNjg1LCA1LjgyMTU4LCA3LjI2NDc3Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIwNDUxMSwgMC4zMDM3OTEsIDAuODY1MzUzLCAxLjM2MDQsIDIuMDIwOTgsIDMuMzQwNDEsIDQuMTY0NjQiLCBcCi0gICAgICAgICAgIjAuMjE1MzA0LCAwLjMxNDY0NywgMC44NzYzODQsIDEuMzcxNTQsIDIuMDMxOTUsIDMuMzUxNDYsIDQuMTc1NjMiLCBcCi0gICAgICAgICAgIjAuMjI4NTI0LCAwLjMyNzk2OSwgMC44ODk4NTksIDEuMzg2LCAyLjA0NTIyLCAzLjM2NTYxLCA0LjE4OTI5IiwgXAotICAgICAgICAgICIwLjI0MTYxMiwgMC4zNDExMjcsIDAuOTAzMTksIDEuMzk4NjMsIDIuMDU4NzksIDMuMzc4NTUsIDQuMjAyNDQiLCBcCi0gICAgICAgICAgIjAuMjU0NzQ0LCAwLjM1NDU5OCwgMC45MTY2NjIsIDEuNDEyMjEsIDIuMDcyMTYsIDMuMzkxODEsIDQuMjE2MjYiLCBcCi0gICAgICAgICAgIjAuMjc1NzA2LCAwLjM3NTI3NSwgMC45MzcyMzIsIDEuNDMyOTksIDIuMDkzMDQsIDMuNDEyODYsIDQuMjM2NzUiLCBcCi0gICAgICAgICAgIjAuMjk0MTksIDAuMzkzNzM0LCAwLjk1NjA2NywgMS40NTE0OSwgMi4xMTE1OCwgMy40MzA5LCA0LjI1NTQ5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjM3MTA4MywgMC41NjA0MywgMS42MzMxMiwgMi41NzkwOSwgMy44NDA2OCwgNi4zNjM3LCA3LjkzODY1IiwgXAotICAgICAgICAgICIwLjM3MTM3MywgMC41NjAzODIsIDEuNjMzMTEsIDIuNTc5MjMsIDMuODQwMzMsIDYuMzYzNjYsIDcuOTM3MDYiLCBcCi0gICAgICAgICAgIjAuMzcxMjM4LCAwLjU2MDQxOCwgMS42MzI3OSwgMi41NzkzOSwgMy44Mzk0OCwgNi4zNjM5NywgNy45Mzg4NiIsIFwKLSAgICAgICAgICAiMC4zNzEyMiwgMC41NjA1OTksIDEuNjMzMSwgMi41Nzg2OCwgMy44NDAyNCwgNi4zNjU5NiwgNy45Mzg0MyIsIFwKLSAgICAgICAgICAiMC4zNzA4MDEsIDAuNTYwMzY3LCAxLjYzMzE3LCAyLjU3ODk4LCAzLjg0MDEzLCA2LjM2NDM3LCA3LjkzNjQzIiwgXAotICAgICAgICAgICIwLjM3MzE0OCwgMC41NjAxMDksIDEuNjMyNDIsIDIuNTc5MiwgMy44NDAyNCwgNi4zNjY0OCwgNy45Mzg1MyIsIFwKLSAgICAgICAgICAiMC4zNzc2MjMsIDAuNTYxMzc1LCAxLjYzMjc5LCAyLjU3OTY2LCAzLjg0MDc3LCA2LjM2NjM4LCA3LjkzODciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBME4iOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjg2MSwgMC4wMDI4NjEsIDAuMDAyODYsIDAuMDAyODU4LCAwLjAwMjg1NywgMC4wMDI4NTIsIDAuMDAyODUiLCBcCi0gICAgICAgICAgIjAuMDAyODQzLCAwLjAwMjg0MiwgMC4wMDI4NDEsIDAuMDAyODQsIDAuMDAyODM4LCAwLjAwMjgzMywgMC4wMDI4MyIsIFwKLSAgICAgICAgICAiMC4wMDI4MzEsIDAuMDAyODMxLCAwLjAwMjgzLCAwLjAwMjgyOSwgMC4wMDI4MjcsIDAuMDAyODIzLCAwLjAwMjgyMSIsIFwKLSAgICAgICAgICAiMC4wMDI4MjQsIDAuMDAyODI1LCAwLjAwMjgyNSwgMC4wMDI4MjQsIDAuMDAyODIyLCAwLjAwMjgxOCwgMC4wMDI4MTQiLCBcCi0gICAgICAgICAgIjAuMDAyODIyLCAwLjAwMjgyMywgMC4wMDI4MjMsIDAuMDAyODIxLCAwLjAwMjgyLCAwLjAwMjgxNiwgMC4wMDI4MTMiLCBcCi0gICAgICAgICAgIjAuMDAyODIxLCAwLjAwMjgyMiwgMC4wMDI4MjIsIDAuMDAyODIxLCAwLjAwMjgxOSwgMC4wMDI4MTYsIDAuMDAyODEzIiwgXAotICAgICAgICAgICIwLjAwMjgyLCAwLjAwMjgyMSwgMC4wMDI4MjIsIDAuMDAyODIxLCAwLjAwMjgxOSwgMC4wMDI4MTUsIDAuMDAyODEzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyNjQyLCAwLjAwMjY0MywgMC4wMDI2NDIsIDAuMDAyNjQyLCAwLjAwMjY0LCAwLjAwMjYzOCwgMC4wMDI2MzciLCBcCi0gICAgICAgICAgIjAuMDAyNjI5LCAwLjAwMjYzLCAwLjAwMjYzLCAwLjAwMjYyOSwgMC4wMDI2MjgsIDAuMDAyNjI1LCAwLjAwMjYyNCIsIFwKLSAgICAgICAgICAiMC4wMDI2MTksIDAuMDAyNjIsIDAuMDAyNjIxLCAwLjAwMjYyLCAwLjAwMjYxOSwgMC4wMDI2MTYsIDAuMDAyNjE0IiwgXAotICAgICAgICAgICIwLjAwMjYxNiwgMC4wMDI2MTcsIDAuMDAyNjE3LCAwLjAwMjYxNywgMC4wMDI2MTUsIDAuMDAyNjE0LCAwLjAwMjYxMiIsIFwKLSAgICAgICAgICAiMC4wMDI2MTEsIDAuMDAyNjEzLCAwLjAwMjYxNCwgMC4wMDI2MTQsIDAuMDAyNjEzLCAwLjAwMjYxLCAwLjAwMjYwOCIsIFwKLSAgICAgICAgICAiMC4wMDI2MDcsIDAuMDAyNjA5LCAwLjAwMjYxMSwgMC4wMDI2MTEsIDAuMDAyNjEsIDAuMDAyNjA4LCAwLjAwMjYwNiIsIFwKLSAgICAgICAgICAiMC4wMDI2MDYsIDAuMDAyNjA4LCAwLjAwMjYxMSwgMC4wMDI2MTEsIDAuMDAyNjEsIDAuMDAyNjA4LCAwLjAwMjYwNiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkExTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyNjA4LCAwLjAwMjYwOCwgMC4wMDI2MDgsIDAuMDAyNjA2LCAwLjAwMjYwNCwgMC4wMDI2MDIsIDAuMDAyNiIsIFwKLSAgICAgICAgICAiMC4wMDI1OTIsIDAuMDAyNTkzLCAwLjAwMjU5MiwgMC4wMDI1OTEsIDAuMDAyNTksIDAuMDAyNTg1LCAwLjAwMjU4MiIsIFwKLSAgICAgICAgICAiMC4wMDI1OCwgMC4wMDI1ODEsIDAuMDAyNTgyLCAwLjAwMjU4LCAwLjAwMjU3OSwgMC4wMDI1NzUsIDAuMDAyNTcxIiwgXAotICAgICAgICAgICIwLjAwMjU3MywgMC4wMDI1NzQsIDAuMDAyNTc1LCAwLjAwMjU3NCwgMC4wMDI1NzIsIDAuMDAyNTcsIDAuMDAyNTY1IiwgXAotICAgICAgICAgICIwLjAwMjU2OSwgMC4wMDI1NzEsIDAuMDAyNTcyLCAwLjAwMjU3MiwgMC4wMDI1NywgMC4wMDI1NjYsIDAuMDAyNTY0IiwgXAotICAgICAgICAgICIwLjAwMjU2NSwgMC4wMDI1NjcsIDAuMDAyNTcsIDAuMDAyNTY5LCAwLjAwMjU2OCwgMC4wMDI1NjQsIDAuMDAyNTYxIiwgXAotICAgICAgICAgICIwLjAwMjU2NCwgMC4wMDI1NjYsIDAuMDAyNTY5LCAwLjAwMjU2OSwgMC4wMDI1NjgsIDAuMDAyNTY0LCAwLjAwMjU2MSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjYxNywgMC4wMDI2MTksIDAuMDAyNjIyLCAwLjAwMjYyMiwgMC4wMDI2MjIsIDAuMDAyNjIxLCAwLjAwMjYyIiwgXAotICAgICAgICAgICIwLjAwMjYwNiwgMC4wMDI2MDksIDAuMDAyNjExLCAwLjAwMjYxMiwgMC4wMDI2MTIsIDAuMDAyNjExLCAwLjAwMjYxIiwgXAotICAgICAgICAgICIwLjAwMjU5NywgMC4wMDI2LCAwLjAwMjYwNSwgMC4wMDI2MDUsIDAuMDAyNjA1LCAwLjAwMjYwNSwgMC4wMDI2MDQiLCBcCi0gICAgICAgICAgIjAuMDAyNTkxLCAwLjAwMjU5NSwgMC4wMDI2MDEsIDAuMDAyNjAyLCAwLjAwMjYwMiwgMC4wMDI2MDIsIDAuMDAyNjAxIiwgXAotICAgICAgICAgICIwLjAwMjU4NywgMC4wMDI1OTIsIDAuMDAyNTk5LCAwLjAwMjYsIDAuMDAyNjAxLCAwLjAwMjYsIDAuMDAyNTk5IiwgXAotICAgICAgICAgICIwLjAwMjU4MSwgMC4wMDI1ODcsIDAuMDAyNTk3LCAwLjAwMjU5OCwgMC4wMDI1OTksIDAuMDAyNTk5LCAwLjAwMjU5OCIsIFwKLSAgICAgICAgICAiMC4wMDI1NzcsIDAuMDAyNTg0LCAwLjAwMjU5NSwgMC4wMDI1OTcsIDAuMDAyNTk4LCAwLjAwMjU5OCwgMC4wMDI1OTgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxODU1LCAwLjAwMTg1NSwgMC4wMDE4NTYsIDAuMDAxODU2LCAwLjAwMTg1NiwgMC4wMDE4NTUsIDAuMDAxODU2IiwgXAotICAgICAgICAgICIwLjAwMTg1OSwgMC4wMDE4NiwgMC4wMDE4NjMsIDAuMDAxODYzLCAwLjAwMTg2MywgMC4wMDE4NjMsIDAuMDAxODYzIiwgXAotICAgICAgICAgICIwLjAwMTg1NiwgMC4wMDE4NTksIDAuMDAxODYzLCAwLjAwMTg2NCwgMC4wMDE4NjQsIDAuMDAxODY1LCAwLjAwMTg2NSIsIFwKLSAgICAgICAgICAiMC4wMDE4NTIsIDAuMDAxODU2LCAwLjAwMTg2MywgMC4wMDE4NjQsIDAuMDAxODY0LCAwLjAwMTg2NSwgMC4wMDE4NjUiLCBcCi0gICAgICAgICAgIjAuMDAxODQ5LCAwLjAwMTg1NCwgMC4wMDE4NjIsIDAuMDAxODY0LCAwLjAwMTg2MywgMC4wMDE4NjYsIDAuMDAxODY1IiwgXAotICAgICAgICAgICIwLjAwMTg0MywgMC4wMDE4NSwgMC4wMDE4NiwgMC4wMDE4NjIsIDAuMDAxODY0LCAwLjAwMTg2NSwgMC4wMDE4NjUiLCBcCi0gICAgICAgICAgIjAuMDAxODQsIDAuMDAxODQ3LCAwLjAwMTg1OCwgMC4wMDE4NjIsIDAuMDAxODYzLCAwLjAwMTg2NSwgMC4wMDE4NjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDEwOCwgMC4wMDEwOCwgMC4wMDEwNzksIDAuMDAxMDgsIDAuMDAxMDc3LCAwLjAwMTA3NCwgMC4wMDEwNzMiLCBcCi0gICAgICAgICAgIjAuMDAxMDY0LCAwLjAwMTA2NSwgMC4wMDEwNjYsIDAuMDAxMDYzLCAwLjAwMTA2NCwgMC4wMDEwNjIsIDAuMDAxMDYiLCBcCi0gICAgICAgICAgIjAuMDAxMDU4LCAwLjAwMTA2LCAwLjAwMTA2MiwgMC4wMDEwNjMsIDAuMDAxMDYyLCAwLjAwMTA1OSwgMC4wMDEwNTgiLCBcCi0gICAgICAgICAgIjAuMDAxMDUzLCAwLjAwMTA1NiwgMC4wMDEwNiwgMC4wMDEwNjEsIDAuMDAxMDU5LCAwLjAwMTA1OCwgMC4wMDEwNTYiLCBcCi0gICAgICAgICAgIjAuMDAxMDQ3LCAwLjAwMTA1MywgMC4wMDEwNTksIDAuMDAxMDU5LCAwLjAwMTA1OSwgMC4wMDEwNTcsIDAuMDAxMDU1IiwgXAotICAgICAgICAgICIwLjAwMTA0NCwgMC4wMDEwNDksIDAuMDAxMDU3LCAwLjAwMTA1NywgMC4wMDEwNTgsIDAuMDAxMDU2LCAwLjAwMTA1NCIsIFwKLSAgICAgICAgICAiMC4wMDEwNDEsIDAuMDAxMDQ2LCAwLjAwMTA1NSwgMC4wMDEwNTYsIDAuMDAxMDU3LCAwLjAwMTA1NSwgMC4wMDEwNTQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxNTk3LCAwLjAwMTU5OCwgMC4wMDE1OTgsIDAuMDAxNTk5LCAwLjAwMTU5OSwgMC4wMDE1OTksIDAuMDAxNTk5IiwgXAotICAgICAgICAgICIwLjAwMTU5OSwgMC4wMDE2MDIsIDAuMDAxNjA1LCAwLjAwMTYwNiwgMC4wMDE2MDYsIDAuMDAxNjA2LCAwLjAwMTYwNiIsIFwKLSAgICAgICAgICAiMC4wMDE1OTQsIDAuMDAxNTk5LCAwLjAwMTYwNSwgMC4wMDE2MDYsIDAuMDAxNjA3LCAwLjAwMTYwNywgMC4wMDE2MDgiLCBcCi0gICAgICAgICAgIjAuMDAxNTg5LCAwLjAwMTU5NSwgMC4wMDE2MDQsIDAuMDAxNjA2LCAwLjAwMTYwNywgMC4wMDE2MDcsIDAuMDAxNjA4IiwgXAotICAgICAgICAgICIwLjAwMTU4NCwgMC4wMDE1OTEsIDAuMDAxNjAzLCAwLjAwMTYwNSwgMC4wMDE2MDYsIDAuMDAxNjA3LCAwLjAwMTYwOCIsIFwKLSAgICAgICAgICAiMC4wMDE1NzcsIDAuMDAxNTg2LCAwLjAwMTU5OSwgMC4wMDE2MDQsIDAuMDAxNjA1LCAwLjAwMTYwNywgMC4wMDE2MDciLCBcCi0gICAgICAgICAgIjAuMDAxNTczLCAwLjAwMTU4MiwgMC4wMDE1OTksIDAuMDAxNjAyLCAwLjAwMTYwNSwgMC4wMDE2MDYsIDAuMDAxNjA3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwNzM2LCAwLjAwMDczNywgMC4wMDA3MzgsIDAuMDAwNzM3LCAwLjAwMDc0MSwgMC4wMDA3MzUsIDAuMDAwNzM0IiwgXAotICAgICAgICAgICIwLjAwMDc0LCAwLjAwMDc0MywgMC4wMDA3NDgsIDAuMDAwNzQ4LCAwLjAwMDc0NiwgMC4wMDA3NDcsIDAuMDAwNzQ2IiwgXAotICAgICAgICAgICIwLjAwMDczMiwgMC4wMDA3MzksIDAuMDAwNzQ3LCAwLjAwMDc0OSwgMC4wMDA3NDksIDAuMDAwNzQ5LCAwLjAwMDc0OCIsIFwKLSAgICAgICAgICAiMC4wMDA3MjUsIDAuMDAwNzM0LCAwLjAwMDc0NiwgMC4wMDA3NDgsIDAuMDAwNzQ5LCAwLjAwMDc0OSwgMC4wMDA3NDgiLCBcCi0gICAgICAgICAgIjAuMDAwNzE4LCAwLjAwMDcyOSwgMC4wMDA3NDQsIDAuMDAwNzQ3LCAwLjAwMDc0OCwgMC4wMDA3NDksIDAuMDAwNzQ4IiwgXAotICAgICAgICAgICIwLjAwMDcxLCAwLjAwMDcyMiwgMC4wMDA3NDEsIDAuMDAwNzQ1LCAwLjAwMDc0NywgMC4wMDA3NDgsIDAuMDAwNzQ4IiwgXAotICAgICAgICAgICIwLjAwMDcwMywgMC4wMDA3MTYsIDAuMDAwNzM4LCAwLjAwMDc0NCwgMC4wMDA3NDYsIDAuMDAwNzQ3LCAwLjAwMDc0NyIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogT0FJMkJCMlhMICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoT0FJMkJCMlhMKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMDkxNzY3MTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQTBOKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2MDM3ODU7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjAzNTY7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjAzNzg1OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDIyLCAwLjAwMDIwMiwgMC4wMDAxOTIsIDAuMDAwMTg5LCAwLjAwMDE4NywgMC4wMDAxODUsIDAuMDAwMTg2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxMTMyLCAwLjAwMTExOSwgMC4wMDExMTIsIDAuMDAxMTA5LCAwLjAwMTEwNywgMC4wMDExMDYsIDAuMDAxMTA2Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihBMU4pICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYyMDQwMTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MjAwNDg7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjIwNDAxOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDIwMywgMC4wMDAxODcsIDAuMDAwMTc2LCAwLjAwMDE3MSwgMC4wMDAxNjksIDAuMDAwMTY3LCAwLjAwMDE2NyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTU1NSwgMC4wMDE1NDQsIDAuMDAxNTM2LCAwLjAwMTUzNCwgMC4wMDE1MzIsIDAuMDAxNTMsIDAuMDAxNTI5Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjE1Nzg4OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYxMjY5NTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2MTU3ODg7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMTQ3LCAwLjAwMDE1NSwgMC4wMDAxNTcsIDAuMDAwMTU4LCAwLjAwMDE1OSwgMC4wMDAxNTksIDAuMDAwMTU5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMTcsIDAuMDAwMTcsIDAuMDAwMTcsIDAuMDAwMTcsIDAuMDAwMTcsIDAuMDAwMTcsIDAuMDAwMTciKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIxKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2NTc4MDM7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjU3ODAzOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDY1NzQwODsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAwNDksIDAuMDAwMDQ5LCAwLjAwMDA0OSwgMC4wMDAwNDksIDAuMDAwMDQ5LCAwLjAwMDA0OSwgMC4wMDAwNDkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxODQsIDAuMDAwMTg0LCAwLjAwMDE4NCwgMC4wMDAxODQsIDAuMDAwMTg0LCAwLjAwMDE4NCwgMC4wMDAxODQiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4wMzY2MTcxOwotICAgIGZ1bmN0aW9uIDogIighKChCMCtCMSkgKCEoQTBOIEExTikpKSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEwTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzQ5NzUzLCAwLjQwMTY4NiwgMC44Njc4MjYsIDEuNjQyNzUsIDIuNDE4NDUsIDQuMjI0NzYsIDUuMjU3NTUiLCBcCi0gICAgICAgICAgIjAuMzYxMzY4LCAwLjQxMzI1NywgMC44NzkzMjMsIDEuNjU1MDQsIDIuNDI5NjMsIDQuMjM2NTksIDUuMjY5MDQiLCBcCi0gICAgICAgICAgIjAuMzc2NzM1LCAwLjQyODY4MiwgMC44OTQ3MzQsIDEuNjY5NzYsIDIuNDQ0NjIsIDQuMjUxOTcsIDUuMjg0NTEiLCBcCi0gICAgICAgICAgIjAuMzkxODM2LCAwLjQ0MzgzMSwgMC45MTAwMDEsIDEuNjg1NiwgMi40NjA2OSwgNC4yNjY4NSwgNS4yOTk1OSIsIFwKLSAgICAgICAgICAiMC40MDYwNTQsIDAuNDU4MDc2LCAwLjkyNDAzMSwgMS42OTk2MiwgMi40NzM4MywgNC4yODEzMywgNS4zMTM4NyIsIFwKLSAgICAgICAgICAiMC40MjY2MiwgMC40Nzg2MDgsIDAuOTQ0NjA3LCAxLjcyMDE2LCAyLjQ5NTI3LCA0LjMwMTkxLCA1LjMzNDQ5IiwgXAotICAgICAgICAgICIwLjQ0Mjk2NiwgMC40OTQ4NzQsIDAuOTYxMDc2LCAxLjczNjA0LCAyLjUxMTUsIDQuMzE4MTIsIDUuMzUwNzgiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuNTkyNzkxLCAwLjY5MzcyNywgMS42MDE3NywgMy4xMTQzNCwgNC42MjU3NiwgOC4xNTQ0MSwgMTAuMTcwNiIsIFwKLSAgICAgICAgICAiMC41OTI4MDIsIDAuNjkzNzI2LCAxLjYwMTc2LCAzLjExNDMxLCA0LjYyNjAxLCA4LjE1NDk2LCAxMC4xNzAxIiwgXAotICAgICAgICAgICIwLjU5Mjc2OSwgMC42OTM3NDEsIDEuNjAxNzIsIDMuMTEzODcsIDQuNjI3MjgsIDguMTU0OTUsIDEwLjE3MDUiLCBcCi0gICAgICAgICAgIjAuNTkyODI3LCAwLjY5Mzc0NSwgMS42MDE3NiwgMy4xMTQ0OSwgNC42MjU3LCA4LjE1NTIsIDEwLjE2OTkiLCBcCi0gICAgICAgICAgIjAuNTkyNzYzLCAwLjY5MzczNiwgMS42MDE3MiwgMy4xMTM4OSwgNC42MjU3LCA4LjE1NDE1LCAxMC4xNzAxIiwgXAotICAgICAgICAgICIwLjU5Mjc0NCwgMC42OTM4MDksIDEuNjAxNzUsIDMuMTE0NjEsIDQuNjI3MjEsIDguMTU0NDUsIDEwLjE3MDEiLCBcCi0gICAgICAgICAgIjAuNTkyODg0LCAwLjY5Mzc5NiwgMS42MDE3LCAzLjExNDA2LCA0LjYyNjksIDguMTU0MTgsIDEwLjE3MDEiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuNDA0NjA4LCAwLjQ2NDA3MSwgMC45OTkzMjMsIDEuODkxMjUsIDIuNzgyNDUsIDQuODU5NzIsIDYuMDQ2ODkiLCBcCi0gICAgICAgICAgIjAuNDE2MjI4LCAwLjQ3NTcxNiwgMS4wMTExOSwgMS45MDI4MiwgMi43OTQwOCwgNC44NzE0MSwgNi4wNTg0NSIsIFwKLSAgICAgICAgICAiMC40MzA2MTcsIDAuNDkwMjM0LCAxLjAyNTk0LCAxLjkxNzczLCAyLjgwODU1LCA0Ljg4NTk4LCA2LjA3Mjk4IiwgXAotICAgICAgICAgICIwLjQ0NDkzOCwgMC41MDQ0MDgsIDEuMDM5ODEsIDEuOTMxMzksIDIuODIyODYsIDQuOTAwMDcsIDYuMDg3MjYiLCBcCi0gICAgICAgICAgIjAuNDU3NjU2LCAwLjUxNzI0MiwgMS4wNTI3MSwgMS45NDQ5LCAyLjgzNDkxLCA0LjkxMjk4LCA2LjA5OTk0IiwgXAotICAgICAgICAgICIwLjQ3NTM4MywgMC41MzUwMTgsIDEuMDcwNTQsIDEuOTYyODIsIDIuODUzMDcsIDQuOTMwNCwgNi4xMTc4NSIsIFwKLSAgICAgICAgICAiMC40ODk2NDgsIDAuNTQ5MjU0LCAxLjA4NDk4LCAxLjk3NjI3LCAyLjg2NzU3LCA0Ljk0NDkxLCA2LjEzMjE1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjY0MjAwMiwgMC43NTUwNzgsIDEuNzczOTgsIDMuNDczMTQsIDUuMTcxMTQsIDkuMTI1MDMsIDExLjM4MjkiLCBcCi0gICAgICAgICAgIjAuNjQyMDEzLCAwLjc1NTEwMywgMS43NzQzOSwgMy40NzI2LCA1LjE3MTEzLCA5LjEyNjQyLCAxMS4zODI1IiwgXAotICAgICAgICAgICIwLjY0MjE5NiwgMC43NTUwNTgsIDEuNzc0NjYsIDMuNDc1MjYsIDUuMTcxMDEsIDkuMTI2MSwgMTEuMzgxOCIsIFwKLSAgICAgICAgICAiMC42NDIsIDAuNzU1MTI0LCAxLjc3NDk5LCAzLjQ3MTQzLCA1LjE3MTE3LCA5LjEyNiwgMTEuMzgyOCIsIFwKLSAgICAgICAgICAiMC42NDE5MiwgMC43NTUzMzcsIDEuNzc0OTIsIDMuNDczOTMsIDUuMTcwMTIsIDkuMTI2MTgsIDExLjM4MjUiLCBcCi0gICAgICAgICAgIjAuNjQxODQ1LCAwLjc1NTA2NCwgMS43NzQ3NCwgMy40NzM5MiwgNS4xNjk5NiwgOS4xMjUxNiwgMTEuMzgyNiIsIFwKLSAgICAgICAgICAiMC42NDE1NDgsIDAuNzU1MTM2LCAxLjc3NDQ2LCAzLjQ3MzEsIDUuMTczNywgOS4xMjYzOCwgMTEuMzgyOCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMU4iOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjM1MTA1MiwgMC40MDI5NzEsIDAuODY5MDI4LCAxLjY0NDIsIDIuNDE4NzYsIDQuMjI2MTMsIDUuMjU4NzkiLCBcCi0gICAgICAgICAgIjAuMzYyODE3LCAwLjQxNDcyMiwgMC44ODA4MjcsIDEuNjU2NDgsIDIuNDMwOTcsIDQuMjM3OTEsIDUuMjcwNjEiLCBcCi0gICAgICAgICAgIjAuMzc4MjksIDAuNDMwMjIzLCAwLjg5NjM4OCwgMS42NzEzNSwgMi40NDY1NiwgNC4yNTM0NSwgNS4yODYxMSIsIFwKLSAgICAgICAgICAiMC4zOTMwNDYsIDAuNDQ0OTc0LCAwLjkxMTAyNSwgMS42ODY2MSwgMi40NjE0OSwgNC4yNjgzLCA1LjMwMDgyIiwgXAotICAgICAgICAgICIwLjQwODE4MSwgMC40NjAxMDEsIDAuOTI2MTQ0LCAxLjcwMTY1LCAyLjQ3NjU3LCA0LjI4MzQ2LCA1LjMxNTk3IiwgXAotICAgICAgICAgICIwLjQzMDUxOCwgMC40ODI1MSwgMC45NDg2NzgsIDEuNzI0MzQsIDIuNDk5NDgsIDQuMzA1ODYsIDUuMzM4NCIsIFwKLSAgICAgICAgICAiMC40NDg0NDIsIDAuNTAwNDI0LCAwLjk2NjU5LCAxLjc0MTY0LCAyLjUxNzA4LCA0LjMyMzc1LCA1LjM1NjMxIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjU5MjgyLCAwLjY5Mzc4NCwgMS42MDE2NywgMy4xMTQ0NiwgNC42MjU1NywgOC4xNTQzMywgMTAuMTY5NyIsIFwKLSAgICAgICAgICAiMC41OTI4NjksIDAuNjkzNjQsIDEuNjAxNDMsIDMuMTE0MzYsIDQuNjI3MDIsIDguMTU0OCwgMTAuMTcwNSIsIFwKLSAgICAgICAgICAiMC41OTI4ODMsIDAuNjkzNzk2LCAxLjYwMTU3LCAzLjExNDI5LCA0LjYyNzI3LCA4LjE1NDY3LCAxMC4xNzAxIiwgXAotICAgICAgICAgICIwLjU5MjgxNiwgMC42OTM4MTYsIDEuNjAxNywgMy4xMTM4NywgNC42Mjc0OCwgOC4xNTQ5MSwgMTAuMTcwOCIsIFwKLSAgICAgICAgICAiMC41OTI3ODgsIDAuNjkzNzQyLCAxLjYwMTc1LCAzLjExNDA1LCA0LjYyNzU2LCA4LjE1NTA2LCAxMC4xNzA0IiwgXAotICAgICAgICAgICIwLjU5MjgxOSwgMC42OTM3MywgMS42MDE0MSwgMy4xMTQ1NywgNC42MjU3LCA4LjE1NDY5LCAxMC4xNjk5IiwgXAotICAgICAgICAgICIwLjU5MjkwOSwgMC42OTM3LCAxLjYwMTM5LCAzLjExMzg0LCA0LjYyNjksIDguMTU0OTEsIDEwLjE2OTgiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuNDAzMDA5LCAwLjQ2MjQ4LCAwLjk5NzUzNSwgMS44ODg3NSwgMi43ODAyMiwgNC44NTczMSwgNi4wNDQ1IiwgXAotICAgICAgICAgICIwLjQxNDY4MiwgMC40NzQxNjQsIDEuMDA5MzEsIDEuOTAwMzcsIDIuNzkyLCA0Ljg2OTA1LCA2LjA1NjE1IiwgXAotICAgICAgICAgICIwLjQyOTQ0LCAwLjQ4ODkyNiwgMS4wMjQxNiwgMS45MTQ5NywgMi44MDY5LCA0Ljg4Mzg3LCA2LjA3MDk4IiwgXAotICAgICAgICAgICIwLjQ0Mzg5OSwgMC41MDM0MTUsIDEuMDM4NzIsIDEuOTI5OSwgMi44MjE0MSwgNC44OTgzOSwgNi4wODU1MiIsIFwKLSAgICAgICAgICAiMC40NTc3NjksIDAuNTE3MjkxLCAxLjA1MjYxLCAxLjk0MzU2LCAyLjgzNTI2LCA0LjkxMjMyLCA2LjA5OTQ1IiwgXAotICAgICAgICAgICIwLjQ3NzcyMiwgMC41MzczMDQsIDEuMDcyODIsIDEuOTYzOTUsIDIuODU0OTksIDQuOTMyMywgNi4xMTk1MSIsIFwKLSAgICAgICAgICAiMC40OTM0OTcsIDAuNTUyOTc0LCAxLjA4ODM3LCAxLjk3OTY5LCAyLjg3MDgsIDQuOTQ4MDgsIDYuMTM1MjYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuNjMwNTY0LCAwLjc0Mzc2NCwgMS43NjIyLCAzLjQ2MDQ3LCA1LjE1ODIyLCA5LjExMjc5LCAxMS4zNjg0IiwgXAotICAgICAgICAgICIwLjYzMDYxOSwgMC43NDMzODIsIDEuNzYyMzUsIDMuNDYwMTksIDUuMTU4MzMsIDkuMTExNTgsIDExLjM2OTMiLCBcCi0gICAgICAgICAgIjAuNjMwNjAxLCAwLjc0Mzg0LCAxLjc2MjQ1LCAzLjQ2MDA2LCA1LjE1ODQyLCA5LjExMjg1LCAxMS4zNjkzIiwgXAotICAgICAgICAgICIwLjYzMDQwMiwgMC43NDM1MzgsIDEuNzYyNSwgMy40NjAzNCwgNS4xNTgxMywgOS4xMTMyNiwgMTEuMzY5MiIsIFwKLSAgICAgICAgICAiMC42MzAzOTcsIDAuNzQzNTQxLCAxLjc2MjUsIDMuNDYwMTgsIDUuMTU4MSwgOS4xMTI4NiwgMTEuMzY5MiIsIFwKLSAgICAgICAgICAiMC42MzA1NCwgMC43NDM4MDQsIDEuNzYyNjEsIDMuNDYwNTQsIDUuMTU3NDMsIDkuMTEyOTIsIDExLjM2OTIiLCBcCi0gICAgICAgICAgIjAuNjMwMjY3LCAwLjc0MzU1NCwgMS43NjI4OCwgMy40NjA0NiwgNS4xNTc4NCwgOS4xMTMwMiwgMTEuMzY5MiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjkyMDczLCAwLjM0Mzg4NiwgMC44MDg0NDcsIDEuNTgzMjUsIDIuMzU4MTcsIDQuMTY1NTcsIDUuMTk4MDEiLCBcCi0gICAgICAgICAgIjAuMzAzNzcsIDAuMzU1NDA5LCAwLjgyMDIyNywgMS41OTUwNiwgMi4zNjk3MSwgNC4xNzczNiwgNS4yMDk2NyIsIFwKLSAgICAgICAgICAiMC4zMTY3MzEsIDAuMzY4NTM4LCAwLjgzMzMzMywgMS42MDgwNiwgMi4zODI5LCA0LjE5MDM2LCA1LjIyMjc1IiwgXAotICAgICAgICAgICIwLjMyOTI3MiwgMC4zODExMzIsIDAuODQ1ODQyLCAxLjYyMDcyLCAyLjM5NTU4LCA0LjIwMzAyLCA1LjIzNTI1IiwgXAotICAgICAgICAgICIwLjM0MTc5MSwgMC4zOTMzMjEsIDAuODU4MjgzLCAxLjYzMzIzLCAyLjQwNzk0LCA0LjIxNTQ2LCA1LjI0Nzc3IiwgXAotICAgICAgICAgICIwLjM2MTU2MywgMC40MTMzNzksIDAuODc4MzA0LCAxLjY1MzE0LCAyLjQyNzgzLCA0LjIzNTQ0LCA1LjI2NzgiLCBcCi0gICAgICAgICAgIjAuMzc4Njk4LCAwLjQzMDQyNCwgMC44OTU2NjUsIDEuNjcwNTIsIDIuNDQ1MjUsIDQuMjUyODcsIDUuMjg1MjUiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuNTY2NjgzLCAwLjY2NzUwMiwgMS41NzM3NiwgMy4wODUwMSwgNC42MDAxNSwgOC4xMjQxNywgMTAuMTM5IiwgXAotICAgICAgICAgICIwLjU2NjY2OSwgMC42NjczMDcsIDEuNTczMzIsIDMuMDg1MTQsIDQuNjAwMDksIDguMTI0NDIsIDEwLjEzODQiLCBcCi0gICAgICAgICAgIjAuNTY2NjM5LCAwLjY2NzM1MSwgMS41NzM0NywgMy4wODUzLCA0LjYwMDI4LCA4LjEyNDI1LCAxMC4xMzkiLCBcCi0gICAgICAgICAgIjAuNTY2NjY0LCAwLjY2NzM0OSwgMS41NzM1LCAzLjA4NDY1LCA0LjYwMDA2LCA4LjEyNDg1LCAxMC4xMzg1IiwgXAotICAgICAgICAgICIwLjU2NjcxMywgMC42NjcyNzUsIDEuNTczMzEsIDMuMDg1MzQsIDQuNTk2MywgOC4xMjM2OCwgMTAuMTM4NiIsIFwKLSAgICAgICAgICAiMC41NjY4NjcsIDAuNjY3MzMsIDEuNTczNTMsIDMuMDg1NDUsIDQuNTk3MSwgOC4xMjM5NSwgMTAuMTM4NyIsIFwKLSAgICAgICAgICAiMC41NjgxMTUsIDAuNjY3Nzg3LCAxLjU3Mzg1LCAzLjA5MTgsIDQuNTk5NDEsIDguMTI0NDIsIDEwLjEzODIiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzQ4NzMsIDAuNDA4Mzc5LCAwLjk0MzQzMSwgMS44MzQ4LCAyLjcyNjE1LCA0LjgwMzg5LCA1Ljk5MTA2IiwgXAotICAgICAgICAgICIwLjM1OTM4NSwgMC40MTg5OTksIDAuOTU0Njg0LCAxLjg0NjI2LCAyLjczNzM3LCA0LjgxNDY2LCA2LjAwMTc0IiwgXAotICAgICAgICAgICIwLjM3MzAxOSwgMC40MzI1NiwgMC45NjgwNTEsIDEuODYwNDcsIDIuNzUwNzYsIDQuODI4MjcsIDYuMDE1NTIiLCBcCi0gICAgICAgICAgIjAuMzg2NzUsIDAuNDQ2Mjk3LCAwLjk4MTQ2LCAxLjg3MzMsIDIuNzY0NjcsIDQuODQyMDgsIDYuMDI5MDUiLCBcCi0gICAgICAgICAgIjAuNDAwMjUsIDAuNDU5ODk1LCAwLjk5NTIxMywgMS44ODcxNiwgMi43Nzc5OCwgNC44NTU1OCwgNi4wNDI3NyIsIFwKLSAgICAgICAgICAiMC40MjIxMTYsIDAuNDgxNzQxLCAxLjAxNzA0LCAxLjkwODk1LCAyLjc5OTgzLCA0Ljg3NzUyLCA2LjA2NDY2IiwgXAotICAgICAgICAgICIwLjQ0MTA3NywgMC40OTk2OTYsIDEuMDM2MzgsIDEuOTI3ODMsIDIuODE5NDcsIDQuODk2NjgsIDYuMDgzNjIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuNjQxNTU3LCAwLjc1NTA4MSwgMS43NzQxNywgMy40NzI0OSwgNS4xNzE5NSwgOS4xMjQzOCwgMTEuMzgyNyIsIFwKLSAgICAgICAgICAiMC42NDIxMzksIDAuNzU1MDMyLCAxLjc3NDc1LCAzLjQ3MzE2LCA1LjE3NDcxLCA5LjEyNjIzLCAxMS4zODE2IiwgXAotICAgICAgICAgICIwLjY0MTk3MiwgMC43NTUxMzQsIDEuNzc1ODgsIDMuNDczOTQsIDUuMTcwMDMsIDkuMTI0NTMsIDExLjM4MjYiLCBcCi0gICAgICAgICAgIjAuNjQxNTcsIDAuNzU1NTYxLCAxLjc3NDE4LCAzLjQ3Mjg3LCA1LjE3MTA1LCA5LjEyNDYxLCAxMS4zODI3IiwgXAotICAgICAgICAgICIwLjY0MTU2MSwgMC43NTUxMTQsIDEuNzczOTgsIDMuNDcyNDQsIDUuMTcwMTcsIDkuMTI1NDIsIDExLjM4MjYiLCBcCi0gICAgICAgICAgIjAuNjQxNTY0LCAwLjc1NTA2NiwgMS43NzM5OCwgMy40NzIzNCwgNS4xNzAzNCwgOS4xMjQ1NiwgMTEuMzgyIiwgXAotICAgICAgICAgICIwLjY0MTQ5OSwgMC43NTQ3NzgsIDEuNzc0MywgMy40NzI5NCwgNS4xNzEwMSwgOS4xMjYxNSwgMTEuMzgyNiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjg1ODk4LCAwLjMzNzcxNCwgMC44MDIzNzYsIDEuNTc3MjEsIDIuMzUxOSwgNC4xNTkyNCwgNS4xOTE4NiIsIFwKLSAgICAgICAgICAiMC4yOTYzNTUsIDAuMzQ4MTM4LCAwLjgxMjk0MSwgMS41ODc2MSwgMi4zNjI1LCA0LjE2OTk2LCA1LjIwMjMyIiwgXAotICAgICAgICAgICIwLjMwOTMyMywgMC4zNjExOSwgMC44MjU5MjgsIDEuNjAwNzgsIDIuMzc1NTIsIDQuMTgzMDYsIDUuMjE1MzYiLCBcCi0gICAgICAgICAgIjAuMzIyNDQ5LCAwLjM3NDEyLCAwLjgzODk2OSwgMS42MTM5MiwgMi4zODg1MywgNC4xOTYxMywgNS4yMjg0OSIsIFwKLSAgICAgICAgICAiMC4zMzU0NDYsIDAuMzg3MjQsIDAuODUyMDU2LCAxLjYyNjc4LCAyLjQwMTc5LCA0LjIwOTIzLCA1LjI0MTUyIiwgXAotICAgICAgICAgICIwLjM1NjIyMSwgMC40MDgwMDIsIDAuODcyOTY2LCAxLjY0NzcsIDIuNDIyNTQsIDQuMjMwMDQsIDUuMjYyNTMiLCBcCi0gICAgICAgICAgIjAuMzc0NDYzLCAwLjQyNjMwMywgMC44OTExOTMsIDEuNjY2MDQsIDIuNDQwOTUsIDQuMjQ4NDIsIDUuMjgwNzEiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuNTY2NjU1LCAwLjY2NzQ3MywgMS41NzMzMiwgMy4wODUyNCwgNC42MDA0LCA4LjEyMzgyLCAxMC4xMzkzIiwgXAotICAgICAgICAgICIwLjU2NjY1OCwgMC42NjczNDcsIDEuNTczNTEsIDMuMDg1MzIsIDQuNjAwNCwgOC4xMjQ1OCwgMTAuMTM4OSIsIFwKLSAgICAgICAgICAiMC41NjY3MjgsIDAuNjY3MzUyLCAxLjU3Mzc0LCAzLjA4NTY0LCA0LjU5OTk0LCA4LjEyNDgzLCAxMC4xMzg2IiwgXAotICAgICAgICAgICIwLjU2Njc1NSwgMC42NjczMDEsIDEuNTczMzgsIDMuMDg1MjksIDQuNTk3MDUsIDguMTIzOTYsIDEwLjEzODkiLCBcCi0gICAgICAgICAgIjAuNTY2NjM5LCAwLjY2NzM0LCAxLjU3Mzc0LCAzLjA4NTExLCA0LjYwMDA5LCA4LjEyNDg2LCAxMC4xMzg3IiwgXAotICAgICAgICAgICIwLjU2NzA5OCwgMC42NjcyNzEsIDEuNTczNCwgMy4wODUxNCwgNC41OTYyNCwgOC4xMjQ3NSwgMTAuMTM5MyIsIFwKLSAgICAgICAgICAiMC41Njk0NzksIDAuNjY4MzI5LCAxLjU3Mzc3LCAzLjA4NTA5LCA0LjYwMDE3LCA4LjEyNDc3LCAxMC4xMzg3Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMzODI0NCwgMC4zOTc4MjEsIDAuOTMyNTQ1LCAxLjgyMzc4LCAyLjcxNDY5LCA0Ljc5MjU1LCA1Ljk3OTgyIiwgXAotICAgICAgICAgICIwLjM0OTU3NywgMC40MDkwMTcsIDAuOTQ0MzExLCAxLjgzNTcyLCAyLjcyNjcyLCA0LjgwNDAzLCA1Ljk5MTIzIiwgXAotICAgICAgICAgICIwLjM2MzA3NywgMC40MjI2MjMsIDAuOTU3NzcyLCAxLjg1MDAzLCAyLjczOTkzLCA0LjgxODA2LCA2LjAwNDk4IiwgXAotICAgICAgICAgICIwLjM3NjY2NSwgMC40MzYzMTIsIDAuOTcxNzAzLCAxLjg2MzA3LCAyLjc1NDM1LCA0LjgzMTYsIDYuMDE4NTkiLCBcCi0gICAgICAgICAgIjAuMzkwMjQ2LCAwLjQ0OTg3NCwgMC45ODUxMDQsIDEuODc2ODcsIDIuNzY3NjgsIDQuODQ1MDQsIDYuMDMyMyIsIFwKLSAgICAgICAgICAiMC40MTEwNywgMC40NzE1NDUsIDEuMDA3MTYsIDEuODk4NDMsIDIuNzg5NzMsIDQuODY2OTcsIDYuMDU0MTciLCBcCi0gICAgICAgICAgIjAuNDMwOTE5LCAwLjQ4OTQ2NCwgMS4wMjYwOSwgMS45MTc4MiwgMi44MDkwMywgNC44ODYyMiwgNi4wNzMxNSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC42MzAzODYsIDAuNzQzNDQzLCAxLjc2MjQ1LCAzLjQ2MDA1LCA1LjE1Nzc2LCA5LjExMjU1LCAxMS4zNjg3IiwgXAotICAgICAgICAgICIwLjYzMDQ1LCAwLjc0MzU2LCAxLjc2MjI4LCAzLjQ2MDU4LCA1LjE1ODA1LCA5LjExMzQyLCAxMS4zNjk2IiwgXAotICAgICAgICAgICIwLjYzMDMzLCAwLjc0MzQ4OSwgMS43NjE5OSwgMy40NjA5MiwgNS4xNTc1NywgOS4xMTMwNiwgMTEuMzY5MiIsIFwKLSAgICAgICAgICAiMC42MzAzODksIDAuNzQzNzkyLCAxLjc2MjYyLCAzLjQ2MDUzLCA1LjE1ODM0LCA5LjExMzE3LCAxMS4zNjgzIiwgXAotICAgICAgICAgICIwLjYzMDM3NCwgMC43NDM0MzMsIDEuNzYxODEsIDMuNDU5MDYsIDUuMTU3MzgsIDkuMTEyMTgsIDExLjM2OTUiLCBcCi0gICAgICAgICAgIjAuNjMwMDUxLCAwLjc0MzY5MywgMS43NjMwMywgMy40NjAyOCwgNS4xNjIwNiwgOS4xMTMzMSwgMTEuMzY5NSIsIFwKLSAgICAgICAgICAiMC42MzAzOTcsIDAuNzQzMjE2LCAxLjc2Mjk0LCAzLjQ2MDcyLCA1LjE2MTY3LCA5LjExMTY3LCAxMS4zNjk1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTBOIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDIxMjcsIDAuMDAyMTI2LCAwLjAwMjEyNCwgMC4wMDIxMjMsIDAuMDAyMTIsIDAuMDAyMTEyLCAwLjAwMjEwOSIsIFwKLSAgICAgICAgICAiMC4wMDIxMDYsIDAuMDAyMTA3LCAwLjAwMjEwNSwgMC4wMDIxMDMsIDAuMDAyMSwgMC4wMDIwOTIsIDAuMDAyMDg5IiwgXAotICAgICAgICAgICIwLjAwMjA5NiwgMC4wMDIwOTYsIDAuMDAyMDk1LCAwLjAwMjA5MiwgMC4wMDIwODksIDAuMDAyMDgzLCAwLjAwMjA3OSIsIFwKLSAgICAgICAgICAiMC4wMDIwOTIsIDAuMDAyMDkxLCAwLjAwMjA5LCAwLjAwMjA4OCwgMC4wMDIwODUsIDAuMDAyMDc4LCAwLjAwMjA3NSIsIFwKLSAgICAgICAgICAiMC4wMDIwOSwgMC4wMDIwOSwgMC4wMDIwODksIDAuMDAyMDg2LCAwLjAwMjA4NCwgMC4wMDIwNzgsIDAuMDAyMDczIiwgXAotICAgICAgICAgICIwLjAwMjA4OSwgMC4wMDIwODksIDAuMDAyMDg4LCAwLjAwMjA4NiwgMC4wMDIwODQsIDAuMDAyMDc2LCAwLjAwMjA3MiIsIFwKLSAgICAgICAgICAiMC4wMDIwOSwgMC4wMDIwOSwgMC4wMDIwODksIDAuMDAyMDg3LCAwLjAwMjA4NSwgMC4wMDIwNzksIDAuMDAyMDc0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxODQ3LCAwLjAwMTg0OCwgMC4wMDE4NDcsIDAuMDAxODQ2LCAwLjAwMTg0NiwgMC4wMDE4NDQsIDAuMDAxODQyIiwgXAotICAgICAgICAgICIwLjAwMTgzNSwgMC4wMDE4MzUsIDAuMDAxODM0LCAwLjAwMTgzMywgMC4wMDE4MzMsIDAuMDAxODMxLCAwLjAwMTgyOCIsIFwKLSAgICAgICAgICAiMC4wMDE4MjYsIDAuMDAxODI2LCAwLjAwMTgyNiwgMC4wMDE4MjUsIDAuMDAxODI1LCAwLjAwMTgyMiwgMC4wMDE4MjEiLCBcCi0gICAgICAgICAgIjAuMDAxODIzLCAwLjAwMTgyMywgMC4wMDE4MjMsIDAuMDAxODIzLCAwLjAwMTgyMiwgMC4wMDE4MiwgMC4wMDE4MTgiLCBcCi0gICAgICAgICAgIjAuMDAxODIsIDAuMDAxODIsIDAuMDAxODIxLCAwLjAwMTgyLCAwLjAwMTgxOSwgMC4wMDE4MTcsIDAuMDAxODE2IiwgXAotICAgICAgICAgICIwLjAwMTgxOCwgMC4wMDE4MTgsIDAuMDAxODE5LCAwLjAwMTgxOSwgMC4wMDE4MTgsIDAuMDAxODE2LCAwLjAwMTgxNSIsIFwKLSAgICAgICAgICAiMC4wMDE4MTgsIDAuMDAxODE5LCAwLjAwMTgyLCAwLjAwMTgxOSwgMC4wMDE4MTksIDAuMDAxODE3LCAwLjAwMTgxNSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkExTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxOTcsIDAuMDAxOTcsIDAuMDAxOTY5LCAwLjAwMTk2NiwgMC4wMDE5NjMsIDAuMDAxOTU2LCAwLjAwMTk1MyIsIFwKLSAgICAgICAgICAiMC4wMDE5NTMsIDAuMDAxOTUzLCAwLjAwMTk1MiwgMC4wMDE5NSwgMC4wMDE5NDcsIDAuMDAxOTQsIDAuMDAxOTM1IiwgXAotICAgICAgICAgICIwLjAwMTk0MywgMC4wMDE5NDMsIDAuMDAxOTQxLCAwLjAwMTk0LCAwLjAwMTkzNywgMC4wMDE5MzEsIDAuMDAxOTI2IiwgXAotICAgICAgICAgICIwLjAwMTkzNiwgMC4wMDE5MzYsIDAuMDAxOTM2LCAwLjAwMTkzNCwgMC4wMDE5MzEsIDAuMDAxOTI1LCAwLjAwMTkyIiwgXAotICAgICAgICAgICIwLjAwMTkzNCwgMC4wMDE5MzQsIDAuMDAxOTM0LCAwLjAwMTkzMSwgMC4wMDE5MjksIDAuMDAxOTIxLCAwLjAwMTkxOCIsIFwKLSAgICAgICAgICAiMC4wMDE5MzIsIDAuMDAxOTMyLCAwLjAwMTkzMiwgMC4wMDE5MywgMC4wMDE5MjcsIDAuMDAxOTIsIDAuMDAxOTE3IiwgXAotICAgICAgICAgICIwLjAwMTkzMSwgMC4wMDE5MzEsIDAuMDAxOTMxLCAwLjAwMTkzLCAwLjAwMTkyNywgMC4wMDE5MjEsIDAuMDAxOTE1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyMTIyLCAwLjAwMjEyMiwgMC4wMDIxMjMsIDAuMDAyMTIzLCAwLjAwMjEyMiwgMC4wMDIxMjIsIDAuMDAyMTIxIiwgXAotICAgICAgICAgICIwLjAwMjExMSwgMC4wMDIxMTEsIDAuMDAyMTExLCAwLjAwMjExMiwgMC4wMDIxMTIsIDAuMDAyMTExLCAwLjAwMjExMSIsIFwKLSAgICAgICAgICAiMC4wMDIxMDMsIDAuMDAyMTAzLCAwLjAwMjEwNCwgMC4wMDIxMDUsIDAuMDAyMTA1LCAwLjAwMjEwNCwgMC4wMDIxMDQiLCBcCi0gICAgICAgICAgIjAuMDAyMDk5LCAwLjAwMjEsIDAuMDAyMTAyLCAwLjAwMjEwMywgMC4wMDIxMDMsIDAuMDAyMTAxLCAwLjAwMjEwMSIsIFwKLSAgICAgICAgICAiMC4wMDIwOTYsIDAuMDAyMDk3LCAwLjAwMjEsIDAuMDAyMTAxLCAwLjAwMjEwMiwgMC4wMDIxLCAwLjAwMjA5OSIsIFwKLSAgICAgICAgICAiMC4wMDIwOTMsIDAuMDAyMDk0LCAwLjAwMjA5OCwgMC4wMDIwOTksIDAuMDAyMDk5LCAwLjAwMjA5OCwgMC4wMDIwOTgiLCBcCi0gICAgICAgICAgIjAuMDAyMDkyLCAwLjAwMjA5MywgMC4wMDIwOTcsIDAuMDAyMDk5LCAwLjAwMjA5OSwgMC4wMDIwOTgsIDAuMDAyMDk4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTE5OCwgMC4wMDExOTgsIDAuMDAxMTk4LCAwLjAwMTE5OSwgMC4wMDExOTgsIDAuMDAxMTk4LCAwLjAwMTE5OCIsIFwKLSAgICAgICAgICAiMC4wMDEyMDEsIDAuMDAxMjAxLCAwLjAwMTIwMiwgMC4wMDEyMDIsIDAuMDAxMjAyLCAwLjAwMTIwMiwgMC4wMDEyMDIiLCBcCi0gICAgICAgICAgIjAuMDAxMiwgMC4wMDEyMDEsIDAuMDAxMjAzLCAwLjAwMTIwNCwgMC4wMDEyMDQsIDAuMDAxMjAzLCAwLjAwMTIwMyIsIFwKLSAgICAgICAgICAiMC4wMDEyLCAwLjAwMTIsIDAuMDAxMjAyLCAwLjAwMTIwMywgMC4wMDEyMDQsIDAuMDAxMjA0LCAwLjAwMTIwMyIsIFwKLSAgICAgICAgICAiMC4wMDExOTgsIDAuMDAxMTk5LCAwLjAwMTIwMiwgMC4wMDEyMDMsIDAuMDAxMjA0LCAwLjAwMTIwNCwgMC4wMDEyMDQiLCBcCi0gICAgICAgICAgIjAuMDAxMTk3LCAwLjAwMTE5OCwgMC4wMDEyMDIsIDAuMDAxMjAzLCAwLjAwMTIwMywgMC4wMDEyMDQsIDAuMDAxMjA0IiwgXAotICAgICAgICAgICIwLjAwMTE5NSwgMC4wMDExOTcsIDAuMDAxMjAxLCAwLjAwMTIwMywgMC4wMDEyMDQsIDAuMDAxMjA0LCAwLjAwMTIwNCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDUzOCwgMC4wMDA1MzgsIDAuMDAwNTM4LCAwLjAwMDUzNywgMC4wMDA1MzYsIDAuMDAwNTMzLCAwLjAwMDUzMiIsIFwKLSAgICAgICAgICAiMC4wMDA1MywgMC4wMDA1MywgMC4wMDA1MzEsIDAuMDAwNTI5LCAwLjAwMDUyOSwgMC4wMDA1MjcsIDAuMDAwNTI3IiwgXAotICAgICAgICAgICIwLjAwMDUyNywgMC4wMDA1MjgsIDAuMDAwNTI5LCAwLjAwMDUyOSwgMC4wMDA1MjgsIDAuMDAwNTI2LCAwLjAwMDUyNCIsIFwKLSAgICAgICAgICAiMC4wMDA1MjYsIDAuMDAwNTI2LCAwLjAwMDUyOCwgMC4wMDA1MjgsIDAuMDAwNTI3LCAwLjAwMDUyNSwgMC4wMDA1MjQiLCBcCi0gICAgICAgICAgIjAuMDAwNTI0LCAwLjAwMDUyNSwgMC4wMDA1MjcsIDAuMDAwNTI3LCAwLjAwMDUyNywgMC4wMDA1MjUsIDAuMDAwNTI0IiwgXAotICAgICAgICAgICIwLjAwMDUyMiwgMC4wMDA1MjMsIDAuMDAwNTI2LCAwLjAwMDUyNiwgMC4wMDA1MjYsIDAuMDAwNTI1LCAwLjAwMDUyMyIsIFwKLSAgICAgICAgICAiMC4wMDA1MjEsIDAuMDAwNTIxLCAwLjAwMDUyNSwgMC4wMDA1MjYsIDAuMDAwNTI2LCAwLjAwMDUyNCwgMC4wMDA1MjMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxMDYxLCAwLjAwMTA2MSwgMC4wMDEwNjEsIDAuMDAxMDYxLCAwLjAwMTA2MSwgMC4wMDEwNjEsIDAuMDAxMDYxIiwgXAotICAgICAgICAgICIwLjAwMTA2MywgMC4wMDEwNjMsIDAuMDAxMDY1LCAwLjAwMTA2NSwgMC4wMDEwNjUsIDAuMDAxMDY1LCAwLjAwMTA2NSIsIFwKLSAgICAgICAgICAiMC4wMDEwNjIsIDAuMDAxMDYzLCAwLjAwMTA2NSwgMC4wMDEwNjYsIDAuMDAxMDY2LCAwLjAwMTA2NiwgMC4wMDEwNjYiLCBcCi0gICAgICAgICAgIjAuMDAxMDYxLCAwLjAwMTA2MSwgMC4wMDEwNjUsIDAuMDAxMDY2LCAwLjAwMTA2NiwgMC4wMDEwNjcsIDAuMDAxMDY3IiwgXAotICAgICAgICAgICIwLjAwMTA1OSwgMC4wMDEwNiwgMC4wMDEwNjQsIDAuMDAxMDY2LCAwLjAwMTA2NiwgMC4wMDEwNjcsIDAuMDAxMDY3IiwgXAotICAgICAgICAgICIwLjAwMTA1NywgMC4wMDEwNTcsIDAuMDAxMDYzLCAwLjAwMTA2NSwgMC4wMDEwNjYsIDAuMDAxMDY3LCAwLjAwMTA2NyIsIFwKLSAgICAgICAgICAiMC4wMDEwNTUsIDAuMDAxMDU2LCAwLjAwMTA2MiwgMC4wMDEwNjUsIDAuMDAxMDY2LCAwLjAwMTA2NiwgMC4wMDEwNjYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDAzNjksIDAuMDAwMzY5LCAwLjAwMDM2OSwgMC4wMDAzNjksIDAuMDAwMzY4LCAwLjAwMDM2NywgMC4wMDAzNjMiLCBcCi0gICAgICAgICAgIjAuMDAwMzczLCAwLjAwMDM3MywgMC4wMDAzNzUsIDAuMDAwMzc0LCAwLjAwMDM3NSwgMC4wMDAzNzMsIDAuMDAwMzczIiwgXAotICAgICAgICAgICIwLjAwMDM3LCAwLjAwMDM3MSwgMC4wMDAzNzQsIDAuMDAwMzc1LCAwLjAwMDM3NSwgMC4wMDAzNzQsIDAuMDAwMzc0IiwgXAotICAgICAgICAgICIwLjAwMDM2OCwgMC4wMDAzNjksIDAuMDAwMzc0LCAwLjAwMDM3NSwgMC4wMDAzNzUsIDAuMDAwMzc1LCAwLjAwMDM3NCIsIFwKLSAgICAgICAgICAiMC4wMDAzNjUsIDAuMDAwMzY3LCAwLjAwMDM3MywgMC4wMDAzNzUsIDAuMDAwMzc1LCAwLjAwMDM3NSwgMC4wMDAzNzQiLCBcCi0gICAgICAgICAgIjAuMDAwMzYxLCAwLjAwMDM2MywgMC4wMDAzNzEsIDAuMDAwMzc0LCAwLjAwMDM3NSwgMC4wMDAzNzQsIDAuMDAwMzc0IiwgXAotICAgICAgICAgICIwLjAwMDM1OCwgMC4wMDAzNiwgMC4wMDAzNjksIDAuMDAwMzczLCAwLjAwMDM3NCwgMC4wMDAzNzQsIDAuMDAwMzc0Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogT0FJMzFYTCAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChPQUkzMVhMKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMDUzNjc1MTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQTApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDU3MjIwMTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA1NzAyNDU7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNTcyMjAxOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDE2NSwgMC4wMDAxNjUsIDAuMDAwMTY1LCAwLjAwMDE2NSwgMC4wMDAxNjUsIDAuMDAwMTY1LCAwLjAwMDE2NSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQTEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYxNDg5MjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MTI5OTY7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjE0ODkyOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDE2NSwgMC4wMDAxNjUsIDAuMDAwMTY1LCAwLjAwMDE2NSwgMC4wMDAxNjUsIDAuMDAwMTY1LCAwLjAwMDE2NSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQTIpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYyOTU5OTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2Mjk1OTk7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjI3OTAzOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDE2NSwgMC4wMDAxNjUsIDAuMDAwMTY1LCAwLjAwMDE2NSwgMC4wMDAxNjUsIDAuMDAwMTY1LCAwLjAwMDE2NSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQjApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYyMjQ1NTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MjIyMDg7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjIyNDU1OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDMxNywgMC4wMDAzMTcsIDAuMDAwMzE3LCAwLjAwMDMxNywgMC4wMDAzMTcsIDAuMDAwMzE3LCAwLjAwMDMxNyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDE4OCwgMC4wMDAxODgsIDAuMDAwMTg4LCAwLjAwMDE4OCwgMC4wMDAxODgsIDAuMDAwMTg4LCAwLjAwMDE4OCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjAyNzAyMzI7Ci0gICAgZnVuY3Rpb24gOiAiKCEoKChBMCtBMSkrQTIpIEIwKSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC40NzMzOTksIDAuNTUyMjg3LCAxLjI2MDk4LCAyLjQ0MTQ3LCAzLjYxOTk5LCA2LjM2OTk1LCA3Ljk0MTI0IiwgXAotICAgICAgICAgICIwLjQ4NDU0MSwgMC41NjM1MTUsIDEuMjcyNTcsIDIuNDUyNiwgMy42MzEyNiwgNi4zODEyMywgNy45NTI0OSIsIFwKLSAgICAgICAgICAiMC40OTczMzMsIDAuNTc2MjQ1LCAxLjI4NTEzLCAyLjQ2NTA1LCAzLjY0NDE0LCA2LjM5Mzk5LCA3Ljk2NTI4IiwgXAotICAgICAgICAgICIwLjUwOTA3NSwgMC41ODc5ODIsIDEuMjk2NzEsIDIuNDc2OSwgMy42NTU5NSwgNi40MDU4NCwgNy45NzcwOSIsIFwKLSAgICAgICAgICAiMC41MjAyMjYsIDAuNTk5MTk3LCAxLjMwODA3LCAyLjQ4ODM1LCAzLjY2NzE0LCA2LjQxNzA1LCA3Ljk4ODM0IiwgXAotICAgICAgICAgICIwLjUzNzQ2MiwgMC42MTY0MjQsIDEuMzI1MjYsIDIuNTA1NjYsIDMuNjg0MzYsIDYuNDM0MjgsIDguMDA1NTkiLCBcCi0gICAgICAgICAgIjAuNTUyMzUsIDAuNjMxMzA2LCAxLjM0MDM5LCAyLjUxOTk5LCAzLjY5OTQ0LCA2LjQ0OTI5LCA4LjAyMDU1Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjg1MDUxMywgMS4wMDI2MiwgMi4zNjQ5NCwgNC42Mjg3MSwgNi44OTM1LCAxMi4xNzU3LCAxNS4xOTIxIiwgXAotICAgICAgICAgICIwLjg1MDIwOCwgMS4wMDI2MSwgMi4zNjI1MSwgNC42Mjg2NCwgNi44OTc4OCwgMTIuMTc2LCAxNS4xOTIxIiwgXAotICAgICAgICAgICIwLjg1MTEyMSwgMS4wMDE5OSwgMi4zNjE3LCA0LjYzMTE0LCA2Ljg5NDY1LCAxMi4xNzYsIDE1LjE5MjEiLCBcCi0gICAgICAgICAgIjAuODUwMzc4LCAxLjAwMjYyLCAyLjM2NDY0LCA0LjYyODM5LCA2Ljg5NDE5LCAxMi4xNzU2LCAxNS4xOTE2IiwgXAotICAgICAgICAgICIwLjg1MTExOCwgMS4wMDE4NCwgMi4zNjE2NSwgNC42Mjg2LCA2Ljg5NDE3LCAxMi4xNzU3LCAxNS4xOTIxIiwgXAotICAgICAgICAgICIwLjg1MTA5MywgMS4wMDI1NywgMi4zNjIxOCwgNC42Mjg2MywgNi44OTc1LCAxMi4xNzU5LCAxNS4xOTIxIiwgXAotICAgICAgICAgICIwLjg1MTA4MiwgMS4wMDI3OCwgMi4zNjIzNCwgNC42Mjc5NCwgNi44OTUyNywgMTIuMTc1NiwgMTUuMTkyIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjM2NTM3MywgMC40MjQ5NTcsIDAuOTYwNDM3LCAxLjg1MjU4LCAyLjc0MzU4LCA0LjgyMTAxLCA2LjAwODE2IiwgXAotICAgICAgICAgICIwLjM3NzI1OCwgMC40MzY5MjMsIDAuOTcyNDcyLCAxLjg2NDA1LCAyLjc1NTg1LCA0LjgzMzA3LCA2LjAyMDAzIiwgXAotICAgICAgICAgICIwLjM5MjQyNSwgMC40NTIwNDUsIDAuOTg3NTE3LCAxLjg3OTg0LCAyLjc3MDg1LCA0Ljg0ODE1LCA2LjAzNTI0IiwgXAotICAgICAgICAgICIwLjQwNjk2NywgMC40NjY1NzUsIDEuMDAyNTIsIDEuODk0MDgsIDIuNzg1MywgNC44NjI2NCwgNi4wNDk4NyIsIFwKLSAgICAgICAgICAiMC40MjExMDEsIDAuNDgwODA4LCAxLjAxNjMxLCAxLjkwODU0LCAyLjc5OTQ0LCA0Ljg3Njk2LCA2LjA2NDAzIiwgXAotICAgICAgICAgICIwLjQ0MzM3MywgMC41MDMwMzIsIDEuMDM4NjgsIDEuOTI5OTIsIDIuODIxOTIsIDQuODk5MDEsIDYuMDg2MzEiLCBcCi0gICAgICAgICAgIjAuNDYyODk5LCAwLjUyMjYxNywgMS4wNTg0MywgMS45NDk1NywgMi44NDE3NywgNC45MTg4NiwgNi4xMDU5OSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC42MzU2ODMsIDAuNzQ5MjE2LCAxLjc2NzkzLCAzLjQ2NTUsIDUuMTYzOSwgOS4xMTgzNywgMTEuMzc0MyIsIFwKLSAgICAgICAgICAiMC42MzU3ODQsIDAuNzQ4ODgzLCAxLjc2NzMyLCAzLjQ2NTc1LCA1LjE2MTM3LCA5LjExODg1LCAxMS4zNzQ3IiwgXAotICAgICAgICAgICIwLjYzNTgzOSwgMC43NDkyMDUsIDEuNzY3MzQsIDMuNDY1NSwgNS4xNjI2MywgOS4xMTg3MSwgMTEuMzc1MyIsIFwKLSAgICAgICAgICAiMC42MzU4MDgsIDAuNzQ4MjYsIDEuNzY3ODksIDMuNDY1MzQsIDUuMTYzNzUsIDkuMTE4MTksIDExLjM3NDIiLCBcCi0gICAgICAgICAgIjAuNjM1NjAyLCAwLjc0ODU3OCwgMS43Njc1NywgMy40NjU0NSwgNS4xNjM5LCA5LjExNzQ0LCAxMS4zNzQ0IiwgXAotICAgICAgICAgICIwLjYzNTA4NywgMC43NDg4NTcsIDEuNzY3MzksIDMuNDY1MTcsIDUuMTYyNjYsIDkuMTE4MDUsIDExLjM3NTMiLCBcCi0gICAgICAgICAgIjAuNjM1MjY5LCAwLjc0ODU1MiwgMS43NjgwMywgMy40NjQ4MywgNS4xNjIxMSwgOS4xMTkyNiwgMTEuMzc1MyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuNDY3NDQ3LCAwLjU0NjQzMywgMS4yNTU0MSwgMi40MzUyMiwgMy42MTQyOCwgNi4zNjQxNSwgNy45MzUzNyIsIFwKLSAgICAgICAgICAiMC40Nzc4MzEsIDAuNTU2NzYzLCAxLjI2NTg2LCAyLjQ0NiwgMy42MjQ0OCwgNi4zNzQ0NCwgNy45NDU3NSIsIFwKLSAgICAgICAgICAiMC40OTAyNjEsIDAuNTY5MTY4LCAxLjI3Nzk2LCAyLjQ1NzcsIDMuNjM3MDksIDYuMzg2OTQsIDcuOTU4MjQiLCBcCi0gICAgICAgICAgIjAuNTAyNDQxLCAwLjU4MTM2NiwgMS4yOTAxOCwgMi40Njk4OCwgMy42NDkzOCwgNi4zOTkyMywgNy45NzA0NyIsIFwKLSAgICAgICAgICAiMC41MTQyNzcsIDAuNTkzMjYxLCAxLjMwMjA3LCAyLjQ4Mjc1LCAzLjY2MTEsIDYuNDExMTQsIDcuOTgyMzIiLCBcCi0gICAgICAgICAgIjAuNTMzMjAyLCAwLjYxMjEzNywgMS4zMjExMiwgMi41MDEzNiwgMy42ODAwMiwgNi40Mjk5MywgOC4wMDEzIiwgXAotICAgICAgICAgICIwLjU0OTcxOSwgMC42Mjg2OTcsIDEuMzM3NzUsIDIuNTE3MiwgMy42OTY1OSwgNi40NDY2MSwgOC4wMTc5NCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC44NTExMywgMS4wMDE4OCwgMi4zNjI0NiwgNC42MjgzOSwgNi44OTQyMiwgMTIuMTc1NiwgMTUuMTkyMSIsIFwKLSAgICAgICAgICAiMC44NTAyMzksIDEuMDAyNjEsIDIuMzYyNSwgNC42Mjg3MSwgNi44OTI4LCAxMi4xNzU5LCAxNS4xOTIxIiwgXAotICAgICAgICAgICIwLjg1MDY0OCwgMS4wMDIwMSwgMi4zNjIxMiwgNC42MzEsIDYuODk0NzEsIDEyLjE3NiwgMTUuMTkyMSIsIFwKLSAgICAgICAgICAiMC44NTAyNzUsIDEuMDAyNjEsIDIuMzYxNjcsIDQuNjI3ODcsIDYuODk1MDksIDEyLjE3NTUsIDE1LjE5MTYiLCBcCi0gICAgICAgICAgIjAuODUwNDYyLCAxLjAwMTc5LCAyLjM2MTgxLCA0LjYyODg3LCA2Ljg5MzI2LCAxMi4xNzU1LCAxNS4xOTIxIiwgXAotICAgICAgICAgICIwLjg1MDI5MywgMS4wMDE1NCwgMi4zNjE3LCA0LjYyODY3LCA2Ljg5Nzk1LCAxMi4xNzU5LCAxNS4xOTE5IiwgXAotICAgICAgICAgICIwLjg1MDQ1NiwgMS4wMDE1MSwgMi4zNjIzMSwgNC42MzEyNSwgNi44OTI5OSwgMTIuMTc1OSwgMTUuMTkyMSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zNTU4NjEsIDAuNDE1MjU2LCAwLjk1MDU5LCAxLjg0MTIsIDIuNzMyOTcsIDQuODEwMDYsIDUuOTk2ODciLCBcCi0gICAgICAgICAgIjAuMzY4MTU0LCAwLjQyNzYwOCwgMC45NjI5MjEsIDEuODU0MTIsIDIuNzQ1MDgsIDQuODIyMzYsIDYuMDA5NDYiLCBcCi0gICAgICAgICAgIjAuMzgzMjg0LCAwLjQ0Mjc0NCwgMC45NzgxMDcsIDEuODY5NTcsIDIuNzYwNjMsIDQuODM3MzksIDYuMDI0NjciLCBcCi0gICAgICAgICAgIjAuMzk3OTY3LCAwLjQ1NzQyMSwgMC45OTMwNTksIDEuODgzOTgsIDIuNzc1MjIsIDQuODUyMzYsIDYuMDM5NDciLCBcCi0gICAgICAgICAgIjAuNDEyMDA3LCAwLjQ3MTU4NywgMS4wMDY2NCwgMS44OTg0NCwgMi43ODkxOSwgNC44NjY0OCwgNi4wNTM1OSIsIFwKLSAgICAgICAgICAiMC40MzQzNDEsIDAuNDkzODUsIDEuMDI5MDcsIDEuOTIwNzIsIDIuODExODksIDQuODg5MTMsIDYuMDc1OTMiLCBcCi0gICAgICAgICAgIjAuNDUzNywgMC41MTMyODIsIDEuMDQ4NTUsIDEuOTM5NTksIDIuODMxNDksIDQuOTA4NDQsIDYuMDk1NTQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuNjI1MTgyLCAwLjczODQ1OCwgMS43NTcwOSwgMy40NTQyMSwgNS4xNTI1MiwgOS4xMDY0MSwgMTEuMzYzNiIsIFwKLSAgICAgICAgICAiMC42MjUwMTMsIDAuNzM4MjI5LCAxLjc1NzE2LCAzLjQ1NDksIDUuMTUzNTYsIDkuMTA2MDMsIDExLjM2MzQiLCBcCi0gICAgICAgICAgIjAuNjI1MDExLCAwLjczODE3NywgMS43NTcxNywgMy40NTU0NiwgNS4xNTI2NSwgOS4xMDYzOSwgMTEuMzYzNyIsIFwKLSAgICAgICAgICAiMC42MjQ5ODIsIDAuNzM4MTUzLCAxLjc1NzI5LCAzLjQ1NDgzLCA1LjE1NTE3LCA5LjEwNzcyLCAxMS4zNjM3IiwgXAotICAgICAgICAgICIwLjYyNTAwNywgMC43MzgwOTgsIDEuNzU2NDUsIDMuNDU1NDEsIDUuMTUxNjgsIDkuMTA3NDUsIDExLjM2MzIiLCBcCi0gICAgICAgICAgIjAuNjI0OTk2LCAwLjczODM1LCAxLjc1NzE0LCAzLjQ1NDYsIDUuMTU2MTksIDkuMTA2MTgsIDExLjM2MzUiLCBcCi0gICAgICAgICAgIjAuNjI0ODQ3LCAwLjczODExMiwgMS43NTcyMSwgMy40NTQ1NiwgNS4xNTQxNiwgOS4xMDc2OSwgMTEuMzYzNyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuNDUyMjIzLCAwLjUzMTIwNSwgMS4yNDAyMiwgMi40MjAyLCAzLjU5ODkzLCA2LjM0ODg1LCA3LjkyMDE2IiwgXAotICAgICAgICAgICIwLjQ2MTgxNCwgMC41NDA3OTgsIDEuMjQ5ODUsIDIuNDI5MSwgMy42MDg2MiwgNi4zNTg1LCA3LjkyOTgiLCBcCi0gICAgICAgICAgIjAuNDczNjg3LCAwLjU1MjU4OCwgMS4yNjEzNiwgMi40NDE3OSwgMy42MjA0NSwgNi4zNzAzNCwgNy45NDE2NyIsIFwKLSAgICAgICAgICAiMC40ODU3NDYsIDAuNTY0NzQsIDEuMjczNTcsIDIuNDU0MDksIDMuNjMyNiwgNi4zODI1MywgNy45NTM4NiIsIFwKLSAgICAgICAgICAiMC40OTc5MDksIDAuNTc2ODIzLCAxLjI4NTY4LCAyLjQ2NjA5LCAzLjY0NDc2LCA2LjM5NDcsIDcuOTY2MDEiLCBcCi0gICAgICAgICAgIjAuNTE3MTk3LCAwLjU5NjIyMywgMS4zMDUyNywgMi40ODU2LCAzLjY2NDIsIDYuNDE0MTEsIDcuOTg1NDMiLCBcCi0gICAgICAgICAgIjAuNTMzMzM4LCAwLjYxMzE1LCAxLjMyMjE3LCAyLjUwMTg0LCAzLjY4MTM2LCA2LjQzMTMxLCA4LjAwMjU5Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjg1MDIzLCAxLjAwMjYzLCAyLjM2MjQ5LCA0LjYyODU3LCA2Ljg5NzUxLCAxMi4xNzU5LCAxNS4xOTIxIiwgXAotICAgICAgICAgICIwLjg1MTA5MiwgMS4wMDE3OSwgMi4zNjI1LCA0LjYzMTA3LCA2Ljg5NjgzLCAxMi4xNzYsIDE1LjE5MjEiLCBcCi0gICAgICAgICAgIjAuODUwNTA0LCAxLjAwMjAzLCAyLjM2NDkzLCA0LjYyODY3LCA2Ljg5Nzk0LCAxMi4xNzU5LCAxNS4xOTIxIiwgXAotICAgICAgICAgICIwLjg1MTA3MSwgMS4wMDE3OSwgMi4zNjE5NiwgNC42Mjg3MiwgNi44OTM0NiwgMTIuMTc1OCwgMTUuMTkyMSIsIFwKLSAgICAgICAgICAiMC44NTA0OTMsIDEuMDAyNTcsIDIuMzYyMTksIDQuNjI4NjUsIDYuODk3NTEsIDEyLjE3NTksIDE1LjE5MjEiLCBcCi0gICAgICAgICAgIjAuODUwNzkzLCAxLjAwMTc3LCAyLjM2NDA0LCA0LjYyODcxLCA2Ljg5Nzk0LCAxMi4xNzU5LCAxNS4xOTIxIiwgXAotICAgICAgICAgICIwLjg1MDg5MiwgMS4wMDI2OCwgMi4zNjE4MywgNC42MzExMywgNi44OTQyNywgMTIuMTc1NSwgMTUuMTkyIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjM0MTcyNiwgMC40MDA2MDMsIDAuOTMxODYzLCAxLjgxNTc4LCAyLjcwMTQ1LCA0Ljc2Mzc0LCA1Ljk0MjE3IiwgXAotICAgICAgICAgICIwLjM1NDYyMSwgMC40MTM2NDYsIDAuOTQ0NTc3LCAxLjgyOTQxLCAyLjcxNDI5LCA0Ljc3NjU0LCA1Ljk1NTI3IiwgXAotICAgICAgICAgICIwLjM2OTg1OSwgMC40Mjg5MDUsIDAuOTYwMTY0LCAxLjg0NTI5LCAyLjcyOTc0LCA0Ljc5MTk5LCA1Ljk3MDY1IiwgXAotICAgICAgICAgICIwLjM4NDQ2NywgMC40NDMzNjgsIDAuOTc0NTYsIDEuODU5LCAyLjc0NDUyLCA0LjgwNjY4LCA1Ljk4NTM1IiwgXAotICAgICAgICAgICIwLjM5ODUxOSwgMC40NTc0NzUsIDAuOTg4ODE5LCAxLjg3NDEzLCAyLjc1ODg5LCA0LjgyMDk5LCA1Ljk5OTYzIiwgXAotICAgICAgICAgICIwLjQyMDcxNywgMC40Nzk5OCwgMS4wMTExOSwgMS44OTY2MSwgMi43ODA5MSwgNC44NDMxMSwgNi4wMjIwNCIsIFwKLSAgICAgICAgICAiMC40NDAxMTQsIDAuNDk5NDQ0LCAxLjAzMDQ5LCAxLjkxNTc2LCAyLjgwMDc4LCA0Ljg2MzA0LCA2LjA0MTY5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjYwOTkyNywgMC43MjQxMDUsIDEuNzMyODIsIDMuNDMzMjMsIDUuMTA4MzEsIDkuMDIyNzYsIDExLjI2MjciLCBcCi0gICAgICAgICAgIjAuNjA5MTkyLCAwLjcyMTIxNCwgMS43NDI5NCwgMy40MzI1NywgNS4xMDgzOSwgOS4wMjM4NCwgMTEuMjYyNSIsIFwKLSAgICAgICAgICAiMC42MDg2MDEsIDAuNzIwOTg4LCAxLjczMjQ2LCAzLjQxODQ1LCA1LjEwODczLCA5LjAyMjkzLCAxMS4yNjE5IiwgXAotICAgICAgICAgICIwLjYwOTY3NSwgMC43MjQ3MzYsIDEuNzQzMDQsIDMuNDMzNTIsIDUuMTA2NTYsIDkuMDI0MDksIDExLjI2MjUiLCBcCi0gICAgICAgICAgIjAuNjExNjU4LCAwLjcyNDAxLCAxLjc0MjkzLCAzLjQxODU5LCA1LjEwMzgyLCA5LjAyMjU4LCAxMS4yNjIyIiwgXAotICAgICAgICAgICIwLjYxMTE0NywgMC43MjExMTQsIDEuNzM3OTMsIDMuNDIwNzIsIDUuMTA3ODksIDkuMDIyNjYsIDExLjI2MTgiLCBcCi0gICAgICAgICAgIjAuNjExMTUxLCAwLjcyMTE5NywgMS43NDAwMywgMy40MzI1OSwgNS4xMDgxOCwgOS4wMjM1MSwgMTEuMjYyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTQwNTgzLCAwLjE2NTkwMiwgMC4zOTMyNDUsIDAuNzcyMTE0LCAxLjE1MTExLCAyLjAzNDk3LCAyLjUzOTkxIiwgXAotICAgICAgICAgICIwLjE1MjI5MSwgMC4xNzc1NTEsIDAuNDA0ODg2LCAwLjc4MzY5LCAxLjE2MjM2LCAyLjA0NjIxLCAyLjU1MTIxIiwgXAotICAgICAgICAgICIwLjE2NjYzMSwgMC4xOTE5MDYsIDAuNDE3OTA0LCAwLjc5NjcsIDEuMTc1NTYsIDIuMDU5OTksIDIuNTY0MjIiLCBcCi0gICAgICAgICAgIjAuMTgxMzMxLCAwLjIwNjEyOSwgMC40MzE5NTQsIDAuODEwNzI4LCAxLjE4OTM4LCAyLjA3MzM1LCAyLjU3ODQ0IiwgXAotICAgICAgICAgICIwLjE5NjA2MSwgMC4yMjEyNzgsIDAuNDQ4MjE1LCAwLjgyNDc5NiwgMS4yMDM4OSwgMi4wODc5LCAyLjU5MjM1IiwgXAotICAgICAgICAgICIwLjIyMDAyMywgMC4yNDUyNTIsIDAuNDcxNDcsIDAuODQ2ODg5LCAxLjIyNTc4LCAyLjEwOTU0LCAyLjYxNDUiLCBcCi0gICAgICAgICAgIjAuMjQwNjM0LCAwLjI2NTg3LCAwLjQ5MTI0NywgMC44NjY4MTQsIDEuMjQ1NDksIDIuMTMwMzQsIDIuNjM0NTEiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjk1NjUzLCAwLjM0NjQ5OCwgMC44MDU1MTksIDEuNTcxNTcsIDIuMzM3OTksIDQuMTI3NCwgNS4xNTAxNyIsIFwKLSAgICAgICAgICAiMC4yOTU2NywgMC4zNDY1MjksIDAuODA1NDM2LCAxLjU3MTYxLCAyLjMzNzU5LCA0LjEyNzI5LCA1LjE0OTY5IiwgXAotICAgICAgICAgICIwLjI5NTY2NiwgMC4zNDY1NDUsIDAuODA1NjEsIDEuNTcxMzcsIDIuMzM3NzQsIDQuMTI2OSwgNS4xNTA1NSIsIFwKLSAgICAgICAgICAiMC4yOTU4NjEsIDAuMzQ2NTI2LCAwLjgwNTYwOCwgMS41NzE2MywgMi4zMzc2NCwgNC4xMjczOSwgNS4xNDkyMiIsIFwKLSAgICAgICAgICAiMC4yOTc2NjksIDAuMzQ3Mzc2LCAwLjgwNTQ5NiwgMS41NzE2LCAyLjMzNzc0LCA0LjEyNjk5LCA1LjE1MDE5IiwgXAotICAgICAgICAgICIwLjMwMjk3MSwgMC4zNTEzNjEsIDAuODA1NTA0LCAxLjU3MTYsIDIuMzM3NjYsIDQuMTI2NiwgNS4xNDk2NSIsIFwKLSAgICAgICAgICAiMC4zMDk2MzgsIDAuMzU2OTAzLCAwLjgwNTUzNywgMS41NzEzNiwgMi4zMzc4MSwgNC4xMjY0NSwgNS4xNDkyMSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zNDc4NTEsIDAuNDA3NTAxLCAwLjk0MzM3OCwgMS44MzQzNSwgMi43MjY0NSwgNC44MDM1OCwgNS45OTA0OCIsIFwKLSAgICAgICAgICAiMC4zNTg2NDcsIDAuNDE4Mjk5LCAwLjk1NDE0NSwgMS44NDU5NSwgMi43MzY4NCwgNC44MTQ2NCwgNi4wMDE1NyIsIFwKLSAgICAgICAgICAiMC4zNzIyNzUsIDAuNDMxOTIyLCAwLjk2NzkyNCwgMS44NTg5MiwgMi43NTEyLCA0LjgyODI3LCA2LjAxNTQzIiwgXAotICAgICAgICAgICIwLjM4NTgyMSwgMC40NDU1MiwgMC45ODExOTQsIDEuODczMjgsIDIuNzY0NjEsIDQuODQxOTUsIDYuMDI5MTQiLCBcCi0gICAgICAgICAgIjAuMzk5Mzc1LCAwLjQ1OTA4NCwgMC45OTQ4MzQsIDEuODg3MDcsIDIuNzc4MzUsIDQuODU1NzMsIDYuMDQyNTkiLCBcCi0gICAgICAgICAgIjAuNDIwNDgzLCAwLjQ4MDIxLCAxLjAxNjI2LCAxLjkwNzgxLCAyLjc5OTU2LCA0Ljg3Njk0LCA2LjA2Mzk0IiwgXAotICAgICAgICAgICIwLjQzOTMzMywgMC40OTg4OTksIDEuMDM1MDEsIDEuOTI2NDMsIDIuODE4MjIsIDQuODk1NzcsIDYuMDgyOTciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuNjM1NjQsIDAuNzQ4NTU1LCAxLjc2NzI3LCAzLjQ2NDc5LCA1LjE2MjgzLCA5LjExOTMyLCAxMS4zNzU0IiwgXAotICAgICAgICAgICIwLjYzNTA1NSwgMC43NDg1MTIsIDEuNzY3NjIsIDMuNDY1ODcsIDUuMTYzNTEsIDkuMTE3NTQsIDExLjM3NDkiLCBcCi0gICAgICAgICAgIjAuNjM1MzMxLCAwLjc0ODk1LCAxLjc2NzI1LCAzLjQ2NTM5LCA1LjE2Mjk0LCA5LjExOTMyLCAxMS4zNzUzIiwgXAotICAgICAgICAgICIwLjYzNTY1LCAwLjc0ODg4NiwgMS43NjczMSwgMy40NjUyOSwgNS4xNjIzOSwgOS4xMTkwOSwgMTEuMzc1MyIsIFwKLSAgICAgICAgICAiMC42MzU3OTMsIDAuNzQ4OTI0LCAxLjc2NzgzLCAzLjQ2NTA1LCA1LjE2Mjc1LCA5LjExODAyLCAxMS4zNzUzIiwgXAotICAgICAgICAgICIwLjYzNTE4NywgMC43NDg1MDgsIDEuNzY4MDMsIDMuNDY1NzQsIDUuMTYyODQsIDkuMTE4NjcsIDExLjM3NDkiLCBcCi0gICAgICAgICAgIjAuNjM1MzAyLCAwLjc0ODc3OCwgMS43Njc4NywgMy40NjUxNSwgNS4xNjM1NSwgOS4xMTg3MywgMTEuMzc0MiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDE2NzYsIDAuMDAxNjc2LCAwLjAwMTY3NCwgMC4wMDE2NzEsIDAuMDAxNjY5LCAwLjAwMTY1OSwgMC4wMDE1ODUiLCBcCi0gICAgICAgICAgIjAuMDAxNjcyLCAwLjAwMTY3MiwgMC4wMDE2NzEsIDAuMDAxNjY4LCAwLjAwMTY2NSwgMC4wMDE2NTYsIDAuMDAxNTgxIiwgXAotICAgICAgICAgICIwLjAwMTY3MSwgMC4wMDE2NzEsIDAuMDAxNjcsIDAuMDAxNjY3LCAwLjAwMTY2NCwgMC4wMDE2NTMsIDAuMDAxNTgiLCBcCi0gICAgICAgICAgIjAuMDAxNjY5LCAwLjAwMTY2OSwgMC4wMDE2NjksIDAuMDAxNjY2LCAwLjAwMTY2NCwgMC4wMDE2NTIsIDAuMDAxNTg3IiwgXAotICAgICAgICAgICIwLjAwMTY2OSwgMC4wMDE2NjksIDAuMDAxNjY5LCAwLjAwMTY2NiwgMC4wMDE2NjQsIDAuMDAxNjUzLCAwLjAwMTU4IiwgXAotICAgICAgICAgICIwLjAwMTY2OCwgMC4wMDE2NjgsIDAuMDAxNjY4LCAwLjAwMTY2NSwgMC4wMDE2NjMsIDAuMDAxNjUzLCAwLjAwMTU3NyIsIFwKLSAgICAgICAgICAiMC4wMDE2NjcsIDAuMDAxNjY3LCAwLjAwMTY2NywgMC4wMDE2NjUsIDAuMDAxNjYzLCAwLjAwMTY1MywgMC4wMDE1NzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDA1NywgMC4wMDA1NywgMC4wMDA1NjksIDAuMDAwNTY5LCAwLjAwMDU2OCwgMC4wMDA1NjYsIDAuMDAwNTY1IiwgXAotICAgICAgICAgICIwLjAwMDU2LCAwLjAwMDU2LCAwLjAwMDU1OSwgMC4wMDA1NTksIDAuMDAwNTU4LCAwLjAwMDU1NiwgMC4wMDA1NTUiLCBcCi0gICAgICAgICAgIjAuMDAwNTU3LCAwLjAwMDU1NywgMC4wMDA1NTcsIDAuMDAwNTU2LCAwLjAwMDU1NiwgMC4wMDA1NTMsIDAuMDAwNTUyIiwgXAotICAgICAgICAgICIwLjAwMDU1NSwgMC4wMDA1NTUsIDAuMDAwNTU2LCAwLjAwMDU1NSwgMC4wMDA1NTUsIDAuMDAwNTUzLCAwLjAwMDU1MSIsIFwKLSAgICAgICAgICAiMC4wMDA1NTQsIDAuMDAwNTU0LCAwLjAwMDU1NSwgMC4wMDA1NTQsIDAuMDAwNTU0LCAwLjAwMDU1MiwgMC4wMDA1NTEiLCBcCi0gICAgICAgICAgIjAuMDAwNTUyLCAwLjAwMDU1MywgMC4wMDA1NTQsIDAuMDAwNTU0LCAwLjAwMDU1MywgMC4wMDA1NTEsIDAuMDAwNTUiLCBcCi0gICAgICAgICAgIjAuMDAwNTUxLCAwLjAwMDU1MiwgMC4wMDA1NTMsIDAuMDAwNTUzLCAwLjAwMDU1MywgMC4wMDA1NTEsIDAuMDAwNTUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxNTQzLCAwLjAwMTU0MywgMC4wMDE1NDEsIDAuMDAxNTM5LCAwLjAwMTUzNiwgMC4wMDE1MjYsIDAuMDAxNDUyIiwgXAotICAgICAgICAgICIwLjAwMTUzOCwgMC4wMDE1MzgsIDAuMDAxNTM3LCAwLjAwMTUzNiwgMC4wMDE1MzMsIDAuMDAxNTIsIDAuMDAxNDQ3IiwgXAotICAgICAgICAgICIwLjAwMTUzNywgMC4wMDE1MzcsIDAuMDAxNTM2LCAwLjAwMTUzMywgMC4wMDE1MzEsIDAuMDAxNTE5LCAwLjAwMTQ0NiIsIFwKLSAgICAgICAgICAiMC4wMDE1MzYsIDAuMDAxNTM2LCAwLjAwMTUzNSwgMC4wMDE1MzMsIDAuMDAxNTMsIDAuMDAxNTE5LCAwLjAwMTQzOSIsIFwKLSAgICAgICAgICAiMC4wMDE1MzUsIDAuMDAxNTM1LCAwLjAwMTUzNCwgMC4wMDE1MzMsIDAuMDAxNTMsIDAuMDAxNTE5LCAwLjAwMTQ0NCIsIFwKLSAgICAgICAgICAiMC4wMDE1MzQsIDAuMDAxNTM1LCAwLjAwMTUzNSwgMC4wMDE1MzIsIDAuMDAxNTMsIDAuMDAxNTE4LCAwLjAwMTQ0NyIsIFwKLSAgICAgICAgICAiMC4wMDE1MzMsIDAuMDAxNTMzLCAwLjAwMTUzMywgMC4wMDE1MzIsIDAuMDAxNTI5LCAwLjAwMTUxOSwgMC4wMDE0NDMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDA0MDksIDAuMDAwNDA5LCAwLjAwMDQwOSwgMC4wMDA0MTIsIDAuMDAwNDA4LCAwLjAwMDQwNywgMC4wMDA0MDYiLCBcCi0gICAgICAgICAgIjAuMDAwNDA4LCAwLjAwMDQwOCwgMC4wMDA0MDgsIDAuMDAwNDA5LCAwLjAwMDQwOCwgMC4wMDA0MDcsIDAuMDAwNDA2IiwgXAotICAgICAgICAgICIwLjAwMDQwNiwgMC4wMDA0MDYsIDAuMDAwNDA3LCAwLjAwMDQwOCwgMC4wMDA0MDcsIDAuMDAwNDA2LCAwLjAwMDQwNiIsIFwKLSAgICAgICAgICAiMC4wMDA0MDUsIDAuMDAwNDA1LCAwLjAwMDQwNywgMC4wMDA0MDgsIDAuMDAwNDA3LCAwLjAwMDQwNiwgMC4wMDA0MDYiLCBcCi0gICAgICAgICAgIjAuMDAwNDAzLCAwLjAwMDQwNCwgMC4wMDA0MDYsIDAuMDAwNDA3LCAwLjAwMDQwNywgMC4wMDA0MDYsIDAuMDAwNDA1IiwgXAotICAgICAgICAgICIwLjAwMDQsIDAuMDAwNDAxLCAwLjAwMDQwNSwgMC4wMDA0MDYsIDAuMDAwNDA2LCAwLjAwMDQwNiwgMC4wMDA0MDUiLCBcCi0gICAgICAgICAgIjAuMDAwMzk4LCAwLjAwMDM5OSwgMC4wMDA0MDQsIDAuMDAwNDA2LCAwLjAwMDQwNiwgMC4wMDA0MDYsIDAuMDAwNDA1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTIiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTM5OCwgMC4wMDEzOTgsIDAuMDAxMzk3LCAwLjAwMTM5MywgMC4wMDEzOTEsIDAuMDAxMzgsIDAuMDAxMzA3IiwgXAotICAgICAgICAgICIwLjAwMTM5MywgMC4wMDEzOTMsIDAuMDAxMzkzLCAwLjAwMTM5LCAwLjAwMTM4NywgMC4wMDEzNzcsIDAuMDAxMzAzIiwgXAotICAgICAgICAgICIwLjAwMTM5MSwgMC4wMDEzOTEsIDAuMDAxMzkxLCAwLjAwMTM4OCwgMC4wMDEzODYsIDAuMDAxMzc1LCAwLjAwMTMwMSIsIFwKLSAgICAgICAgICAiMC4wMDEzODksIDAuMDAxMzksIDAuMDAxMzg5LCAwLjAwMTM4OCwgMC4wMDEzODUsIDAuMDAxMzc0LCAwLjAwMTMiLCBcCi0gICAgICAgICAgIjAuMDAxMzg4LCAwLjAwMTM4OSwgMC4wMDEzODksIDAuMDAxMzg3LCAwLjAwMTM4NSwgMC4wMDEzNzUsIDAuMDAxMyIsIFwKLSAgICAgICAgICAiMC4wMDEzODYsIDAuMDAxMzg3LCAwLjAwMTM4OCwgMC4wMDEzODYsIDAuMDAxMzg0LCAwLjAwMTM3MiwgMC4wMDEyOTkiLCBcCi0gICAgICAgICAgIjAuMDAxMzgzLCAwLjAwMTM4NiwgMC4wMDEzODcsIDAuMDAxMzg2LCAwLjAwMTM4NSwgMC4wMDEzNzQsIDAuMDAxMjkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDAyMDgsIDAuMDAwMjA4LCAwLjAwMDIwOSwgMC4wMDAyMDksIDAuMDAwMjA5LCAwLjAwMDIwOSwgMC4wMDAyMDkiLCBcCi0gICAgICAgICAgIjAuMDAwMjE2LCAwLjAwMDIxNiwgMC4wMDAyMTgsIDAuMDAwMjE4LCAwLjAwMDIxOSwgMC4wMDAyMTksIDAuMDAwMjE5IiwgXAotICAgICAgICAgICIwLjAwMDIxNiwgMC4wMDAyMTcsIDAuMDAwMjE5LCAwLjAwMDIyLCAwLjAwMDIyMSwgMC4wMDAyMjEsIDAuMDAwMjIxIiwgXAotICAgICAgICAgICIwLjAwMDIxNCwgMC4wMDAyMTUsIDAuMDAwMjIsIDAuMDAwMjIxLCAwLjAwMDIyMiwgMC4wMDAyMjIsIDAuMDAwMjIyIiwgXAotICAgICAgICAgICIwLjAwMDIxMiwgMC4wMDAyMTQsIDAuMDAwMjE5LCAwLjAwMDIyMSwgMC4wMDAyMjIsIDAuMDAwMjIyLCAwLjAwMDIyMiIsIFwKLSAgICAgICAgICAiMC4wMDAyMDksIDAuMDAwMjExLCAwLjAwMDIxOCwgMC4wMDAyMjEsIDAuMDAwMjIyLCAwLjAwMDIyMiwgMC4wMDAyMjMiLCBcCi0gICAgICAgICAgIjAuMDAwMjA1LCAwLjAwMDIwOCwgMC4wMDAyMTYsIDAuMDAwMjIsIDAuMDAwMjIxLCAwLjAwMDIyMiwgMC4wMDAyMjIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxMDg3LCAwLjAwMTA4NywgMC4wMDEwODgsIDAuMDAxMDg4LCAwLjAwMTA4OCwgMC4wMDEwODgsIDAuMDAxMDg4IiwgXAotICAgICAgICAgICIwLjAwMTA5LCAwLjAwMTA4OSwgMC4wMDEwOTEsIDAuMDAxMDkxLCAwLjAwMTA5MSwgMC4wMDEwOTIsIDAuMDAxMDkyIiwgXAotICAgICAgICAgICIwLjAwMTA4OCwgMC4wMDEwODksIDAuMDAxMDkyLCAwLjAwMTA5MiwgMC4wMDEwOTIsIDAuMDAxMDkzLCAwLjAwMTA5MyIsIFwKLSAgICAgICAgICAiMC4wMDEwODcsIDAuMDAxMDg2LCAwLjAwMTA5MSwgMC4wMDEwOTIsIDAuMDAxMDkzLCAwLjAwMTA5MywgMC4wMDEwOTMiLCBcCi0gICAgICAgICAgIjAuMDAxMDg1LCAwLjAwMTA4NywgMC4wMDEwOTEsIDAuMDAxMDkyLCAwLjAwMTA5MywgMC4wMDEwOTMsIDAuMDAxMDkzIiwgXAotICAgICAgICAgICIwLjAwMTA4MywgMC4wMDEwODQsIDAuMDAxMDksIDAuMDAxMDkyLCAwLjAwMTA5MiwgMC4wMDEwOTMsIDAuMDAxMDkzIiwgXAotICAgICAgICAgICIwLjAwMTA4MSwgMC4wMDEwODMsIDAuMDAxMDg3LCAwLjAwMTA5MSwgMC4wMDEwOTIsIDAuMDAxMDkzLCAwLjAwMTA5MyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDU3OSwgMC4wMDA1NzksIDAuMDAwNTc5LCAwLjAwMDU4LCAwLjAwMDU3OCwgMC4wMDA1NzYsIDAuMDAwNTc1IiwgXAotICAgICAgICAgICIwLjAwMDU3NiwgMC4wMDA1NzcsIDAuMDAwNTc4LCAwLjAwMDU3OCwgMC4wMDA1NzgsIDAuMDAwNTc2LCAwLjAwMDU3NSIsIFwKLSAgICAgICAgICAiMC4wMDA1NzMsIDAuMDAwNTc0LCAwLjAwMDU3NywgMC4wMDA1NzgsIDAuMDAwNTc3LCAwLjAwMDU3NiwgMC4wMDA1NzQiLCBcCi0gICAgICAgICAgIjAuMDAwNTcsIDAuMDAwNTcxLCAwLjAwMDU3NSwgMC4wMDA1NzcsIDAuMDAwNTc3LCAwLjAwMDU3NSwgMC4wMDA1NzQiLCBcCi0gICAgICAgICAgIjAuMDAwNTY3LCAwLjAwMDU2OCwgMC4wMDA1NzQsIDAuMDAwNTc2LCAwLjAwMDU3NiwgMC4wMDA1NzUsIDAuMDAwNTc0IiwgXAotICAgICAgICAgICIwLjAwMDU2MywgMC4wMDA1NjUsIDAuMDAwNTcyLCAwLjAwMDU3NSwgMC4wMDA1NzUsIDAuMDAwNTc0LCAwLjAwMDU3MyIsIFwKLSAgICAgICAgICAiMC4wMDA1NjEsIDAuMDAwNTYzLCAwLjAwMDU3MSwgMC4wMDA1NzQsIDAuMDAwNTc1LCAwLjAwMDU3NCwgMC4wMDA1NzMiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBPQUkzMlhMICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKE9BSTMyWEwpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4wNjIyNTk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA1NzIxMjk7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNTcwMzAzOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDU3MjEyOTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxNjUsIDAuMDAwMTY1LCAwLjAwMDE2NSwgMC4wMDAxNjUsIDAuMDAwMTY1LCAwLjAwMDE2NSwgMC4wMDAxNjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiwgMC4wMDAxNjYiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEExKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA1Nzk0NTU7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNTc4MDE7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNTc5NDU1OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDE2NSwgMC4wMDAxNjUsIDAuMDAwMTY1LCAwLjAwMDE2NSwgMC4wMDAxNjUsIDAuMDAwMTY1LCAwLjAwMDE2NSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQTIpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDU3NDA4NDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA1NzQwODQ7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNTcxOTg2OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDE2NSwgMC4wMDAxNjUsIDAuMDAwMTY1LCAwLjAwMDE2NSwgMC4wMDAxNjUsIDAuMDAwMTY1LCAwLjAwMDE2NSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQjApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDU3ODcwODsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA1NzUyMTE7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNTc4NzA4OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDQ5NSwgMC4wMDA0OTUsIDAuMDAwNDk2LCAwLjAwMDQ5NSwgMC4wMDA0OTUsIDAuMDAwNDk1LCAwLjAwMDQ5NSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDE4OCwgMC4wMDAxODgsIDAuMDAwMTg4LCAwLjAwMDE4OCwgMC4wMDAxODgsIDAuMDAwMTg4LCAwLjAwMDE4OCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQjEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDU5MjA1OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDU5MjA1OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDU5MTk0NTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA0OTUsIDAuMDAwNDk1LCAwLjAwMDQ5NSwgMC4wMDA0OTUsIDAuMDAwNDk1LCAwLjAwMDQ5NSwgMC4wMDA0OTUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxODgsIDAuMDAwMTg4LCAwLjAwMDE4OCwgMC4wMDAxODgsIDAuMDAwMTg4LCAwLjAwMDE4OCwgMC4wMDAxODgiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4wMjgxMTAyOwotICAgIGZ1bmN0aW9uIDogIighKChCMCtCMSkgKChBMCtBMSkrQTIpKSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC40OTQ0MDcsIDAuNTczNTMzLCAxLjI4MjcxLCAyLjQ2MzM5LCAzLjY0MjksIDYuMzk2MzMsIDcuOTY4MzciLCBcCi0gICAgICAgICAgIjAuNTA1OTI3LCAwLjU4NDkyNCwgMS4yOTQwMSwgMi40NzUwNiwgMy42NTQyNSwgNi40MDc3NCwgNy45Nzk3NyIsIFwKLSAgICAgICAgICAiMC41MTg4MjQsIDAuNTk3NzYzLCAxLjMwNzIsIDIuNDg3MzksIDMuNjY3MTMsIDYuNDIwNTksIDcuOTkyNzUiLCBcCi0gICAgICAgICAgIjAuNTMwNzgxLCAwLjYwOTgyNCwgMS4zMTg5NywgMi40OTk1MywgMy42NzkyMiwgNi40MzI2NSwgOC4wMDQ3IiwgXAotICAgICAgICAgICIwLjU0MjExNiwgMC42MjEyMjMsIDEuMzMwNTYsIDIuNTEwODYsIDMuNjkwNjIsIDYuNDQ0MDcsIDguMDE2MTEiLCBcCi0gICAgICAgICAgIjAuNTU5NTc1LCAwLjYzODYzMSwgMS4zNDc5NiwgMi41Mjg3NCwgMy43MDgxNCwgNi40NjE1OCwgOC4wMzM3MiIsIFwKLSAgICAgICAgICAiMC41NzQ0ODMsIDAuNjUzNTk5LCAxLjM2Mjk3LCAyLjU0Mzc3LCAzLjcyMjk3LCA2LjQ3NjUxLCA4LjA0ODciKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuOTAwODQ3LCAxLjA1MjIxLCAyLjQxMTk5LCA0LjY3ODIzLCA2Ljk0Mzg0LCAxMi4yMjY3LCAxNS4yNDM1IiwgXAotICAgICAgICAgICIwLjkwMDk3LCAxLjA1MjEyLCAyLjQxMjA3LCA0LjY3Nzk1LCA2Ljk0MzYsIDEyLjIyNjgsIDE1LjI0MzYiLCBcCi0gICAgICAgICAgIjAuOTAwODIsIDEuMDUyMDMsIDIuNDExOTYsIDQuNjc3NDgsIDYuOTQzODQsIDEyLjIyNjQsIDE1LjI0MzciLCBcCi0gICAgICAgICAgIjAuOTAwODQ3LCAxLjA1MjIxLCAyLjQxMjA3LCA0LjY3ODUsIDYuOTQzNTEsIDEyLjIyNjgsIDE1LjI0MzUiLCBcCi0gICAgICAgICAgIjAuOTAwOTI0LCAxLjA1MTkxLCAyLjQxMTk5LCA0LjY3ODEzLCA2Ljk0Mzc5LCAxMi4yMjYyLCAxNS4yNDQiLCBcCi0gICAgICAgICAgIjAuOTAwOTM0LCAxLjA1MTk5LCAyLjQxMjAyLCA0LjY3Nzg4LCA2Ljk0MjIxLCAxMi4yMjY5LCAxNS4yNDM3IiwgXAotICAgICAgICAgICIwLjkwMDkxOCwgMS4wNTE4OSwgMi40MTE5MSwgNC42Nzg1OSwgNi45NDM3MiwgMTIuMjI2OCwgMTUuMjQzNiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zOTA5NzQsIDAuNDUwNzQ4LCAwLjk4Njg2NSwgMS44Nzg3OSwgMi43Njk5OSwgNC44NDc5NywgNi4wMzUzNiIsIFwKLSAgICAgICAgICAiMC40MDI4MzUsIDAuNDYyNjM2LCAwLjk5ODg3NiwgMS44OTExNywgMi43ODI0NiwgNC44NjAxNSwgNi4wNDcyMSIsIFwKLSAgICAgICAgICAiMC40MTgwODYsIDAuNDc3ODc5LCAxLjAxNDA1LCAxLjkwNTk3LCAyLjc5ODA0LCA0Ljg3NTMzLCA2LjA2MjYxIiwgXAotICAgICAgICAgICIwLjQzMzEyMSwgMC40OTI5MDcsIDEuMDI4OTUsIDEuOTIxNiwgMi44MTI0NCwgNC44OTAxNywgNi4wNzc1NyIsIFwKLSAgICAgICAgICAiMC40NDc3NTYsIDAuNTA3NDgxLCAxLjA0NDA0LCAxLjkzNTk0LCAyLjgyNzQ1LCA0LjkwNTA1LCA2LjA5MjM3IiwgXAotICAgICAgICAgICIwLjQ3MDM4NCwgMC41MzAxNiwgMS4wNjY0MSwgMS45NTgwNiwgMi44NDk3NSwgNC45Mjc0NCwgNi4xMTQ5MiIsIFwKLSAgICAgICAgICAiMC40ODk4OTgsIDAuNTQ5NzAzLCAxLjA4NjIzLCAxLjk3ODI3LCAyLjg2OTg2LCA0Ljk0NzMyLCA2LjEzNDYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuNjU5OTA3LCAwLjc3MzUyNywgMS43OTM1LCAzLjQ5MjM5LCA1LjE5MDUyLCA5LjE0NjUzLCAxMS40MDI5IiwgXAotICAgICAgICAgICIwLjY2MDE0MywgMC43NzM3NjgsIDEuNzkzMzEsIDMuNDkxNzQsIDUuMTg4MzcsIDkuMTQ2NDUsIDExLjQwMzMiLCBcCi0gICAgICAgICAgIjAuNjU5OTA3LCAwLjc3MzUyOSwgMS43OTM0MSwgMy40OTA5NywgNS4xODk3MiwgOS4xNDY5NiwgMTEuNDAzMyIsIFwKLSAgICAgICAgICAiMC42NjAwOTEsIDAuNzczODM1LCAxLjc5Mjc0LCAzLjQ5MjAxLCA1LjE4ODI2LCA5LjE0NTczLCAxMS40MDMzIiwgXAotICAgICAgICAgICIwLjY2MDEwNiwgMC43NzM2OTgsIDEuNzkzMiwgMy40OTEwMywgNS4xOTA1NywgOS4xNDY2NywgMTEuNDAzMyIsIFwKLSAgICAgICAgICAiMC42NjAzMTksIDAuNzczMzMxLCAxLjc5MzQ2LCAzLjQ5MTU5LCA1LjE5MDI3LCA5LjE0NTY0LCAxMS40MDI5IiwgXAotICAgICAgICAgICIwLjY2MDI2MiwgMC43NzMzMTYsIDEuNzkzOTgsIDMuNDkxMDYsIDUuMTg5NzMsIDkuMTQ2OTUsIDExLjQwMzMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjQ4Nzc1MywgMC41NjY3NTQsIDEuMjc1ODIsIDIuNDU2ODcsIDMuNjM2MjQsIDYuMzg5NjQsIDcuOTYxNjciLCBcCi0gICAgICAgICAgIjAuNDk4MzM4LCAwLjU3NzI1MiwgMS4yODYzNiwgMi40NjcxMiwgMy42NDY1NiwgNi40MDAwMiwgNy45NzIyMiIsIFwKLSAgICAgICAgICAiMC41MTA5MjQsIDAuNTg5ODczLCAxLjI5OTAyLCAyLjQ3OTkxLCAzLjY1OTIzLCA2LjQxMjY5LCA3Ljk4NDg3IiwgXAotICAgICAgICAgICIwLjUyMzE3NSwgMC42MDIyNDIsIDEuMzExNDgsIDIuNDkyMTksIDMuNjcxNTYsIDYuNDI1MDEsIDcuOTk3MTciLCBcCi0gICAgICAgICAgIjAuNTM0OTk5LCAwLjYxNDA0NSwgMS4zMjMyNSwgMi41MDQxOSwgMy42ODM1OSwgNi40MzY4NywgOC4wMDkwNiIsIFwKLSAgICAgICAgICAiMC41NTM5NTYsIDAuNjMzMDI5LCAxLjM0MjMyLCAyLjUyMjk5LCAzLjcwMjQ4LCA2LjQ1NTkyLCA4LjAyNzk3IiwgXAotICAgICAgICAgICIwLjU3MDQ2NywgMC42NDk1NzIsIDEuMzU4ODIsIDIuNTM5NTIsIDMuNzE5MTQsIDYuNDcyNTYsIDguMDQ0NyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC45MDA5NjIsIDEuMDUyMTIsIDIuNDEyMDYsIDQuNjc3OTcsIDYuOTQzNjcsIDEyLjIyNjksIDE1LjI0MzYiLCBcCi0gICAgICAgICAgIjAuOTAwOTc3LCAxLjA1MjEzLCAyLjQxMTgsIDQuNjc4NDIsIDYuOTQzNjUsIDEyLjIyNjEsIDE1LjI0MzUiLCBcCi0gICAgICAgICAgIjAuOTAwOTk3LCAxLjA1MjE2LCAyLjQxMTkzLCA0LjY3ODYzLCA2Ljk0MjI2LCAxMi4yMjY2LCAxNS4yNDM2IiwgXAotICAgICAgICAgICIwLjkwMDgxOSwgMS4wNTE5LCAyLjQxMjAzLCA0LjY3ODU0LCA2Ljk0MzgyLCAxMi4yMjYzLCAxNS4yNDM2IiwgXAotICAgICAgICAgICIwLjkwMDkzNSwgMS4wNTIxNiwgMi40MTIxMywgNC42Nzg0NCwgNi45NDM3MywgMTIuMjI2MywgMTUuMjQ0MiIsIFwKLSAgICAgICAgICAiMC45MDA5MjEsIDEuMDUyMDcsIDIuNDExOTksIDQuNjc3NDEsIDYuOTQzOCwgMTIuMjI2OSwgMTUuMjQ0IiwgXAotICAgICAgICAgICIwLjkwMDkwNywgMS4wNTIwNCwgMi40MTE4MiwgNC42Nzc4NSwgNi45NDM2MiwgMTIuMjI2OSwgMTUuMjQzNyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zODA1MzMsIDAuNDQwMDY2LCAwLjk3NTQ3NCwgMS44NjcyMywgMi43NTc5LCA0LjgzNTkzLCA2LjAyMjk2IiwgXAotICAgICAgICAgICIwLjM5Mjc3MiwgMC40NTIzMzUsIDAuOTg4MjY5LCAxLjg4MDM5LCAyLjc3MDE5LCA0Ljg0ODQ4LCA2LjAzNTQ1IiwgXAotICAgICAgICAgICIwLjQwODE3NCwgMC40Njc3ODcsIDEuMDAzNTIsIDEuODk1NiwgMi43ODYyOSwgNC44NjM2MiwgNi4wNTA5MiIsIFwKLSAgICAgICAgICAiMC40MjMyMywgMC40ODI4MywgMS4wMTgzMiwgMS45MTA3MiwgMi44MDE0NCwgNC44Nzg3MywgNi4wNjYwMiIsIFwKLSAgICAgICAgICAiMC40Mzc4MjYsIDAuNDk3NDIzLCAxLjAzMzM0LCAxLjkyNDg0LCAyLjgxNjExLCA0Ljg5MzUyLCA2LjA4MDc4IiwgXAotICAgICAgICAgICIwLjQ2MDM5NywgMC41MjAwNTUsIDEuMDU1NTksIDEuOTQ4MDUsIDIuODM4MDksIDQuOTE2MzcsIDYuMTAzMyIsIFwKLSAgICAgICAgICAiMC40ODAxMTMsIDAuNTM5NzA2LCAxLjA3NTU4LCAxLjk2NzM0LCAyLjg1ODcyLCA0LjkzNjAyLCA2LjEyMzI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjY0ODk4NiwgMC43NjIwNTQsIDEuNzgxNjQsIDMuNDgxMDUsIDUuMTc3ODUsIDkuMTMzNzgsIDExLjM5MDMiLCBcCi0gICAgICAgICAgIjAuNjQ4Nzk5LCAwLjc2MjgxNiwgMS43ODE3NSwgMy40ODA3MywgNS4xNzc2NCwgOS4xMzI4MywgMTEuMzkwMSIsIFwKLSAgICAgICAgICAiMC42NDg3NDcsIDAuNzYyMjM2LCAxLjc4MTM3LCAzLjQ4MDYsIDUuMTc3NjYsIDkuMTMyOTgsIDExLjM5MDIiLCBcCi0gICAgICAgICAgIjAuNjQ4NzUsIDAuNzYyMDIzLCAxLjc4MTkyLCAzLjQ4MDU2LCA1LjE4MDk5LCA5LjEzNDA0LCAxMS4zOTAyIiwgXAotICAgICAgICAgICIwLjY0ODc1OCwgMC43NjIwNDYsIDEuNzgxODgsIDMuNDgwMDYsIDUuMTc3ODgsIDkuMTMzOTYsIDExLjM5MDUiLCBcCi0gICAgICAgICAgIjAuNjQ4OTg5LCAwLjc2MjE4OCwgMS43ODE1NiwgMy40ODA0NSwgNS4xNzc3LCA5LjEzMzE4LCAxMS4zOTAxIiwgXAotICAgICAgICAgICIwLjY0ODkzOCwgMC43NjIwNjMsIDEuNzgyMSwgMy40ODAxMSwgNS4xODEyNywgOS4xMzQxNSwgMTEuMzkwNCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuNDY5OTE1LCAwLjU0ODk3NSwgMS4yNTgwMiwgMi40Mzg3NiwgMy42MTg1MSwgNi4zNzE3OSwgNy45NDM5OCIsIFwKLSAgICAgICAgICAiMC40Nzk1MzIsIDAuNTU4NTU4LCAxLjI2NzgyLCAyLjQ0ODU3LCAzLjYyNzk1LCA2LjM4MTM5LCA3Ljk1MzU2IiwgXAotICAgICAgICAgICIwLjQ5MTY2NSwgMC41NzA2MzgsIDEuMjgwMTQsIDIuNDYwMzMsIDMuNjM5OTksIDYuMzkzNDgsIDcuOTY1NjQiLCBcCi0gICAgICAgICAgIjAuNTAzNzMxLCAwLjU4MjgxMSwgMS4yOTE5NiwgMi40NzI1NywgMy42NTIxMSwgNi40MDU2NywgNy45Nzc4MiIsIFwKLSAgICAgICAgICAiMC41MTU4MzksIDAuNTk0ODg4LCAxLjMwNDExLCAyLjQ4NDcyLCAzLjY2NDM4LCA2LjQxNzg1LCA3Ljk5MDAxIiwgXAotICAgICAgICAgICIwLjUzNTIwNiwgMC42MTQyNTYsIDEuMzIzNTQsIDIuNTAzODMsIDMuNjgzOCwgNi40MzcyOCwgOC4wMDkzNiIsIFwKLSAgICAgICAgICAiMC41NTA1MDgsIDAuNjMxMzUsIDEuMzQwNjgsIDIuNTIxMjIsIDMuNzAwODQsIDYuNDU0NDUsIDguMDI2NTkiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuOTAwOTYzLCAxLjA1MTkxLCAyLjQxMTc0LCA0LjY3ODEyLCA2Ljk0MzUsIDEyLjIyNjQsIDE1LjI0MzYiLCBcCi0gICAgICAgICAgIjAuOTAwNzk3LCAxLjA1MjE3LCAyLjQxMTk2LCA0LjY3ODY5LCA2Ljk0MzgzLCAxMi4yMjY2LCAxNS4yNDM2IiwgXAotICAgICAgICAgICIwLjkwMDg0OCwgMS4wNTIxNywgMi40MTIxNywgNC42Nzg1MSwgNi45NDM4MSwgMTIuMjI2NCwgMTUuMjQzNyIsIFwKLSAgICAgICAgICAiMC45MDA5MTYsIDEuMDUxOSwgMi40MTIwOSwgNC42Nzg0NSwgNi45NDE4MywgMTIuMjI2NCwgMTUuMjQzNiIsIFwKLSAgICAgICAgICAiMC45MDA4MTMsIDEuMDUxOTgsIDIuNDEyMDQsIDQuNjc4MzQsIDYuOTQzODUsIDEyLjIyNjgsIDE1LjI0MzYiLCBcCi0gICAgICAgICAgIjAuOTAwODMzLCAxLjA1MjEyLCAyLjQxMjA3LCA0LjY3ODIxLCA2Ljk0Mzg1LCAxMi4yMjY1LCAxNS4yNDM2IiwgXAotICAgICAgICAgICIwLjkwMDYzNywgMS4wNTIxLCAyLjQxMjA3LCA0LjY3NzYsIDYuOTQyMTcsIDEyLjIyNjksIDE1LjI0MzciKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzY3MDkxLCAwLjQyNjY1MiwgMC45NjE1OTMsIDEuODUyNzYsIDIuNzQzNzMsIDQuODIxNDksIDYuMDA4NzMiLCBcCi0gICAgICAgICAgIjAuMzc5NzI5LCAwLjQzOTIwMiwgMC45NzQ1NzIsIDEuODY2MzIsIDIuNzU3MDIsIDQuODM0NDMsIDYuMDIxMjQiLCBcCi0gICAgICAgICAgIjAuMzk1MzYxLCAwLjQ1NDg2NCwgMC45OTA0NTgsIDEuODgxNzMsIDIuNzcyNjgsIDQuODUwMDYsIDYuMDM3MTMiLCBcCi0gICAgICAgICAgIjAuNDEwMzc0LCAwLjQ2OTg2NiwgMS4wMDU2NiwgMS44OTcwMSwgMi43ODc2NiwgNC44NjQ5NSwgNi4wNTIyNCIsIFwKLSAgICAgICAgICAiMC40MjQ5ODIsIDAuNDg0NDg4LCAxLjAyMDA5LCAxLjkxMTM3LCAyLjgwMjU2LCA0Ljg3OTgyLCA2LjA2NzAxIiwgXAotICAgICAgICAgICIwLjQ0NzYwMiwgMC41MDcwNjIsIDEuMDQyOTEsIDEuOTM0NDIsIDIuODI1NjYsIDQuOTAyNiwgNi4wODk3MyIsIFwKLSAgICAgICAgICAiMC40NjcwNjMsIDAuNTI2NjAyLCAxLjA2MjExLCAxLjk1MzczLCAyLjg0NTA0LCA0LjkyMjIsIDYuMTA5MzYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuNjM0ODI4LCAwLjc0ODEwMywgMS43NjcwNywgMy40NjQ2OCwgNS4xNjIxNSwgOS4xMTY4NywgMTEuMzczNSIsIFwKLSAgICAgICAgICAiMC42MzQ5MDgsIDAuNzQ4MDk5LCAxLjc2NzQ2LCAzLjQ2NDk2LCA1LjE2MjczLCA5LjExNjE5LCAxMS4zNzM5IiwgXAotICAgICAgICAgICIwLjYzNDkwNSwgMC43NDgxMzcsIDEuNzY3MTgsIDMuNDY1MDEsIDUuMTYxODcsIDkuMTE2MzYsIDExLjM3MzIiLCBcCi0gICAgICAgICAgIjAuNjM0OTA1LCAwLjc0ODA0NCwgMS43NjcyLCAzLjQ2NTIyLCA1LjE2MjcyLCA5LjExNjY1LCAxMS4zNzI5IiwgXAotICAgICAgICAgICIwLjYzNDg4MywgMC43NDgwOTYsIDEuNzY3MDYsIDMuNDY0NywgNS4xNjIyMiwgOS4xMTc3NywgMTEuMzc0IiwgXAotICAgICAgICAgICIwLjYzNTAwMywgMC43NDg0NTcsIDEuNzY3MiwgMy40NjUxMiwgNS4xNjI3OSwgOS4xMTc5NiwgMTEuMzczOSIsIFwKLSAgICAgICAgICAiMC42MzQ4MTMsIDAuNzQ4MTMyLCAxLjc2NzIxLCAzLjQ2NDc2LCA1LjE2NTY4LCA5LjExNzk0LCAxMS4zNzM5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yOTQ4MDMsIDAuMzQ2NDQ1LCAwLjgxMTMyOCwgMS41ODYwOCwgMi4zNjA3NSwgNC4xNjg0MSwgNS4yMDA5NyIsIFwKLSAgICAgICAgICAiMC4zMDY0NTgsIDAuMzU4MjY3LCAwLjgyMzA4NywgMS41OTc3NiwgMi4zNzI1MywgNC4xODAyNiwgNS4yMTI4NyIsIFwKLSAgICAgICAgICAiMC4zMTk3NDQsIDAuMzcxNTIzLCAwLjgzNjI5OCwgMS42MTEyNiwgMi4zODU4NSwgNC4xOTM1MywgNS4yMjYwNSIsIFwKLSAgICAgICAgICAiMC4zMzIzMzYsIDAuMzg0MTQ1LCAwLjg0OTI4MSwgMS42MjM4NCwgMi4zOTg2MywgNC4yMDYyMywgNS4yMzg4MyIsIFwKLSAgICAgICAgICAiMC4zNDQ5ODksIDAuMzk2NTE0LCAwLjg2MTk1NiwgMS42MzYzMywgMi40MTExLCA0LjIxODc4LCA1LjI1MTMyIiwgXAotICAgICAgICAgICIwLjM2NDY5NywgMC40MTY0MSwgMC44ODEzMzgsIDEuNjU2MDcsIDIuNDMwODgsIDQuMjM4NjYsIDUuMjcxMzQiLCBcCi0gICAgICAgICAgIjAuMzgxODE0LCAwLjQzMzYxNywgMC44OTg5NDcsIDEuNjczNzIsIDIuNDQ4NDIsIDQuMjU2MjEsIDUuMjg4OSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC41OTQ4NTksIDAuNjk1Mjk5LCAxLjYwMDA5LCAzLjEwOTc2LCA0LjYyMDY3LCA4LjE0NjA3LCAxMC4xNjI1IiwgXAotICAgICAgICAgICIwLjU5NDgwMywgMC42OTUyMjIsIDEuNiwgMy4xMDk3NywgNC42MjA0NCwgOC4xNDc5NCwgMTAuMTYyNyIsIFwKLSAgICAgICAgICAiMC41OTQ3OTcsIDAuNjk1MjIsIDEuNTk5OTksIDMuMTA5OTUsIDQuNjIwMTksIDguMTQ2MTgsIDEwLjE2MjUiLCBcCi0gICAgICAgICAgIjAuNTk0ODUyLCAwLjY5NTIxNiwgMS42MDAwMSwgMy4xMDk3OSwgNC42MjA2MSwgOC4xNDY3MywgMTAuMTYyNiIsIFwKLSAgICAgICAgICAiMC41OTQ4NTEsIDAuNjk1MTc5LCAxLjYwMDE5LCAzLjExMDM1LCA0LjYyMDY3LCA4LjE0NzQzLCAxMC4xNjE4IiwgXAotICAgICAgICAgICIwLjU5NDk1MiwgMC42OTUyNDksIDEuNTk5OTcsIDMuMTA5NzMsIDQuNjIwNTQsIDguMTQ3NTcsIDEwLjE2MjQiLCBcCi0gICAgICAgICAgIjAuNTk2MDYyLCAwLjY5NTUzOSwgMS41OTk5NywgMy4xMTAzNCwgNC42MjA0MiwgOC4xNDc1MiwgMTAuMTYyNCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zNjU3ODksIDAuNDI1NjAzLCAwLjk2MTcyOCwgMS44NTM2LCAyLjc0NTMyLCA0LjgyMjk0LCA2LjAxMDI4IiwgXAotICAgICAgICAgICIwLjM3NjUxMywgMC40MzYzNTYsIDAuOTcyMzY3LCAxLjg2NDg3LCAyLjc1NjA5LCA0LjgzMzc2LCA2LjAyMTA0IiwgXAotICAgICAgICAgICIwLjM5MDAzOCwgMC40NDk4MTQsIDAuOTg2MTYyLCAxLjg3ODE3LCAyLjc2OTgxLCA0Ljg0NzQ3LCA2LjAzNDQ3IiwgXAotICAgICAgICAgICIwLjQwMzY5NywgMC40NjM0ODYsIDEuMDAwMDUsIDEuODkxMzMsIDIuNzgzNTUsIDQuODYxMTYsIDYuMDQ4MSIsIFwKLSAgICAgICAgICAiMC40MTczNjMsIDAuNDc3MTQxLCAxLjAxMzQzLCAxLjkwNTg5LCAyLjc5NjUxLCA0Ljg3NDQ5LCA2LjA2MTk0IiwgXAotICAgICAgICAgICIwLjQzOTA4LCAwLjQ5ODk1NCwgMS4wMzUyOSwgMS45Mjc3NSwgMi44MTg3OSwgNC44OTY2NSwgNi4wODM4MiIsIFwKLSAgICAgICAgICAiMC40NTgxNTgsIDAuNTE4MDI2LCAxLjA1NDUxLCAxLjk0NjE4LCAyLjgzODM1LCA0LjkxNTgzLCA2LjEwMjc0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjY2MDA1NCwgMC43NzM1ODgsIDEuNzkzNzYsIDMuNDkyMzQsIDUuMTg5MjMsIDkuMTQ1OTYsIDExLjQwMzEiLCBcCi0gICAgICAgICAgIjAuNjYwMDA3LCAwLjc3Mzc1NywgMS43OTI3NiwgMy40OTE5NywgNS4xOTA5NiwgOS4xNDY3LCAxMS40MDMxIiwgXAotICAgICAgICAgICIwLjY2MDI2MSwgMC43NzM3MTgsIDEuNzkzNDYsIDMuNDkwOSwgNS4xODgzNSwgOS4xNDYyNiwgMTEuNDAyNCIsIFwKLSAgICAgICAgICAiMC42NTk5MTcsIDAuNzczNjQxLCAxLjc5MzIsIDMuNDkyMDEsIDUuMTg5NjUsIDkuMTQ1NjEsIDExLjQwMzEiLCBcCi0gICAgICAgICAgIjAuNjYwMjQ2LCAwLjc3MzczLCAxLjc5MzQxLCAzLjQ5MjUyLCA1LjE4ODYzLCA5LjE0NTY3LCAxMS40MDI4IiwgXAotICAgICAgICAgICIwLjY2MDE2MSwgMC43NzM0OTIsIDEuNzkzNzYsIDMuNDkyNDcsIDUuMTkwNDUsIDkuMTQ1NTcsIDExLjQwMzIiLCBcCi0gICAgICAgICAgIjAuNjU5OTA4LCAwLjc3MzE2NiwgMS43OTMzMywgMy40OTEyMiwgNS4xODk4NSwgOS4xNDY3NSwgMTEuNDAzMSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjg2OTgsIDAuMzM4NjE3LCAwLjgwMzU5LCAxLjU3ODM1LCAyLjM1Mjk4LCA0LjE2MDcsIDUuMTkzMjMiLCBcCi0gICAgICAgICAgIjAuMjk3Mzc3LCAwLjM0OTA1NiwgMC44MTM5MywgMS41ODg2OCwgMi4zNjM0NCwgNC4xNzEwMywgNS4yMDM2NCIsIFwKLSAgICAgICAgICAiMC4zMTAzNTUsIDAuMzYyMjgsIDAuODI3MDIzLCAxLjYwMTc3LCAyLjM3NjU3LCA0LjE4NDI1LCA1LjIxNjc3IiwgXAotICAgICAgICAgICIwLjMyMzQ0MSwgMC4zNzUxMDksIDAuODQwMDU2LCAxLjYxNDgyLCAyLjM4OTY0LCA0LjE5NzIzLCA1LjIzMDAxIiwgXAotICAgICAgICAgICIwLjMzNjQ4NiwgMC4zODgyMjUsIDAuODUzMTQ2LCAxLjYyNzc4LCAyLjQwMjY0LCA0LjIxMDQyLCA1LjI0MzAyIiwgXAotICAgICAgICAgICIwLjM1NzIxNSwgMC40MDkxMDgsIDAuODc0MSwgMS42NDkxLCAyLjQyMzYzLCA0LjIzMTMxLCA1LjI2Mzg1IiwgXAotICAgICAgICAgICIwLjM3NTUwNiwgMC40MjczNSwgMC44OTIyOTEsIDEuNjY3MTMsIDIuNDQyMDIsIDQuMjQ5NjIsIDUuMjgyMTkiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuNTk0Nzk1LCAwLjY5NTE4MiwgMS42MDAxMywgMy4xMDk4NCwgNC42MjA2NywgOC4xNDY0OCwgMTAuMTYyNiIsIFwKLSAgICAgICAgICAiMC41OTQ4MTcsIDAuNjk1MTgzLCAxLjYwMDAxLCAzLjEwOTgzLCA0LjYyMDY3LCA4LjE0NzU5LCAxMC4xNjI2IiwgXAotICAgICAgICAgICIwLjU5NDc5LCAwLjY5NTI0NSwgMS42MDAwNCwgMy4xMTAyMSwgNC42MjA2OCwgOC4xNDc2MywgMTAuMTYyNSIsIFwKLSAgICAgICAgICAiMC41OTQ4NzYsIDAuNjk1MTc0LCAxLjU5OTkzLCAzLjExMDIzLCA0LjYyMDQ3LCA4LjE0NjQ0LCAxMC4xNjE3IiwgXAotICAgICAgICAgICIwLjU5NDgxOSwgMC42OTUyMDIsIDEuNTk5OTcsIDMuMTA5NjcsIDQuNjIwMjEsIDguMTQ3ODksIDEwLjE2MTgiLCBcCi0gICAgICAgICAgIjAuNTk1MTc4LCAwLjY5NTE2OSwgMS41OTk5LCAzLjEwOTY1LCA0LjYyMDQ2LCA4LjE0NjYyLCAxMC4xNjI1IiwgXAotICAgICAgICAgICIwLjU5NzU4MiwgMC42OTYxNTYsIDEuNTk5OTIsIDMuMTA5OCwgNC42MjE1LCA4LjE0NjgxLCAxMC4xNjI0Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjM1MzIyOCwgMC40MTMwNDksIDAuOTQ4NzgyLCAxLjg0MDI3LCAyLjczMTQ5LCA0LjgwOTUzLCA1Ljk5NjgyIiwgXAotICAgICAgICAgICIwLjM2NDc5NSwgMC40MjQ1MzYsIDAuOTYwNDIyLCAxLjg1Mjc1LCAyLjc0MzYzLCA0LjgyMTE3LCA2LjAwODQzIiwgXAotICAgICAgICAgICIwLjM3ODIyLCAwLjQzNzkyNCwgMC45NzM4NzEsIDEuODY1ODYsIDIuNzU3MzMsIDQuODM0ODQsIDYuMDIxNzIiLCBcCi0gICAgICAgICAgIjAuMzkxODYsIDAuNDUxNjkxLCAwLjk4Nzg2MSwgMS44Nzk3NiwgMi43NzEwNywgNC44NDg1OCwgNi4wMzU1MyIsIFwKLSAgICAgICAgICAiMC40MDU0MjEsIDAuNDY1MjE0LCAxLjAwMTE4LCAxLjg5MzYzLCAyLjc4NDU1LCA0Ljg2MjA4LCA2LjA0OTMyIiwgXAotICAgICAgICAgICIwLjQyNzA5NywgMC40ODY5MiwgMS4wMjMxMSwgMS45MTUxOSwgMi44MDY2MiwgNC44ODM5OSwgNi4wNzEyIiwgXAotICAgICAgICAgICIwLjQ0NjExMiwgMC41MDM4NzIsIDEuMDQyMjYsIDEuOTMzOTcsIDIuODI1ODgsIDQuOTAzMjEsIDYuMDkwMTUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuNjQ3MDEsIDAuNzU5OTQyLCAxLjc3OTY0LCAzLjQ3NjgyLCA1LjE3MzY0LCA5LjEzMDQyLCAxMS4zODY3IiwgXAotICAgICAgICAgICIwLjY0NjYzMiwgMC43NjAwNDgsIDEuNzc5NjUsIDMuNDc3MzIsIDUuMTc1NzUsIDkuMTMxMDUsIDExLjM4NzYiLCBcCi0gICAgICAgICAgIjAuNjQ3MDY4LCAwLjc2MDQ3NywgMS43NzkxLCAzLjQ3NzA2LCA1LjE3NDUsIDkuMTMwMjMsIDExLjM4NzMiLCBcCi0gICAgICAgICAgIjAuNjQ3MzQsIDAuNzYwNDYxLCAxLjc3OTQ4LCAzLjQ3NzA3LCA1LjE3NDUzLCA5LjEzMDY2LCAxMS4zODY2IiwgXAotICAgICAgICAgICIwLjY0NzExMSwgMC43NTk4MjYsIDEuNzc5MTksIDMuNDc2ODYsIDUuMTc1MjcsIDkuMTMwMjEsIDExLjM4NzIiLCBcCi0gICAgICAgICAgIjAuNjQ2NjI1LCAwLjc2MDE2MSwgMS43NzkzOSwgMy40Nzc5LCA1LjE3NDQ4LCA5LjEzMTI4LCAxMS4zODc1IiwgXAotICAgICAgICAgICIwLjY0NjQ1OCwgMC43NTk1NjEsIDEuNzc5MDUsIDMuNDc2MDQsIDUuMTc0NzEsIDkuMTI5NTYsIDExLjM4NzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyMTAzLCAwLjAwMjEwMiwgMC4wMDIxMDEsIDAuMDAyMDk3LCAwLjAwMjA5MywgMC4wMDIwNzksIDAuMDAxOTk1IiwgXAotICAgICAgICAgICIwLjAwMjA5OCwgMC4wMDIwOTgsIDAuMDAyMDk3LCAwLjAwMjA5MywgMC4wMDIwODksIDAuMDAyMDc1LCAwLjAwMjAwMSIsIFwKLSAgICAgICAgICAiMC4wMDIwOTcsIDAuMDAyMDk2LCAwLjAwMjA5NSwgMC4wMDIwOTIsIDAuMDAyMDg3LCAwLjAwMjA3MywgMC4wMDE5OTciLCBcCi0gICAgICAgICAgIjAuMDAyMDk1LCAwLjAwMjA5NSwgMC4wMDIwOTQsIDAuMDAyMDksIDAuMDAyMDg3LCAwLjAwMjA3MSwgMC4wMDE5OTUiLCBcCi0gICAgICAgICAgIjAuMDAyMDk1LCAwLjAwMjA5NSwgMC4wMDIwOTQsIDAuMDAyMDkxLCAwLjAwMjA4NiwgMC4wMDIwNzIsIDAuMDAxOTk2IiwgXAotICAgICAgICAgICIwLjAwMjA5NCwgMC4wMDIwOTQsIDAuMDAyMDk0LCAwLjAwMjA5LCAwLjAwMjA4NiwgMC4wMDIwNzIsIDAuMDAxOTg1IiwgXAotICAgICAgICAgICIwLjAwMjA5MywgMC4wMDIwOTMsIDAuMDAyMDkzLCAwLjAwMjA5LCAwLjAwMjA4NSwgMC4wMDIwNzEsIDAuMDAxOTg3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwOTcxLCAwLjAwMDk3MSwgMC4wMDA5NywgMC4wMDA5NjksIDAuMDAwOTY3LCAwLjAwMDk2NCwgMC4wMDA5NjEiLCBcCi0gICAgICAgICAgIjAuMDAwOTYsIDAuMDAwOTYsIDAuMDAwOTYsIDAuMDAwOTU4LCAwLjAwMDk1NSwgMC4wMDA5NTMsIDAuMDAwOTUiLCBcCi0gICAgICAgICAgIjAuMDAwOTU3LCAwLjAwMDk1NywgMC4wMDA5NTcsIDAuMDAwOTU2LCAwLjAwMDk1NSwgMC4wMDA5NSwgMC4wMDA5NDgiLCBcCi0gICAgICAgICAgIjAuMDAwOTU1LCAwLjAwMDk1NSwgMC4wMDA5NTUsIDAuMDAwOTU0LCAwLjAwMDk1MywgMC4wMDA5NDksIDAuMDAwOTQ3IiwgXAotICAgICAgICAgICIwLjAwMDk1NCwgMC4wMDA5NTQsIDAuMDAwOTU0LCAwLjAwMDk1NCwgMC4wMDA5NTIsIDAuMDAwOTQ4LCAwLjAwMDk0NiIsIFwKLSAgICAgICAgICAiMC4wMDA5NTIsIDAuMDAwOTUzLCAwLjAwMDk1MywgMC4wMDA5NTMsIDAuMDAwOTUyLCAwLjAwMDk0OCwgMC4wMDA5NDUiLCBcCi0gICAgICAgICAgIjAuMDAwOTUyLCAwLjAwMDk1MiwgMC4wMDA5NTMsIDAuMDAwOTUyLCAwLjAwMDk1MSwgMC4wMDA5NDcsIDAuMDAwOTQ1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTk2NCwgMC4wMDE5NjQsIDAuMDAxOTYyLCAwLjAwMTk1OCwgMC4wMDE5NTQsIDAuMDAxOTQsIDAuMDAxODY3IiwgXAotICAgICAgICAgICIwLjAwMTk2LCAwLjAwMTk2LCAwLjAwMTk1OCwgMC4wMDE5NTQsIDAuMDAxOTUsIDAuMDAxOTM1LCAwLjAwMTg2IiwgXAotICAgICAgICAgICIwLjAwMTk1OCwgMC4wMDE5NTgsIDAuMDAxOTU2LCAwLjAwMTk1MiwgMC4wMDE5NDksIDAuMDAxOTM2LCAwLjAwMTg1MSIsIFwKLSAgICAgICAgICAiMC4wMDE5NTcsIDAuMDAxOTU3LCAwLjAwMTk1NSwgMC4wMDE5NTIsIDAuMDAxOTQ4LCAwLjAwMTkzMywgMC4wMDE4NTciLCBcCi0gICAgICAgICAgIjAuMDAxOTU2LCAwLjAwMTk1NiwgMC4wMDE5NTQsIDAuMDAxOTUyLCAwLjAwMTk0OCwgMC4wMDE5MzMsIDAuMDAxODU4IiwgXAotICAgICAgICAgICIwLjAwMTk1NSwgMC4wMDE5NTUsIDAuMDAxOTU0LCAwLjAwMTk1MSwgMC4wMDE5NDcsIDAuMDAxOTMzLCAwLjAwMTg1NiIsIFwKLSAgICAgICAgICAiMC4wMDE5NTQsIDAuMDAxOTU0LCAwLjAwMTk1NCwgMC4wMDE5NTEsIDAuMDAxOTQ3LCAwLjAwMTkzMywgMC4wMDE4NDUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDA3ODUsIDAuMDAwNzg0LCAwLjAwMDc4NSwgMC4wMDA3ODMsIDAuMDAwNzgyLCAwLjAwMDc3OSwgMC4wMDA3NzciLCBcCi0gICAgICAgICAgIjAuMDAwNzgzLCAwLjAwMDc4MywgMC4wMDA3ODMsIDAuMDAwNzgyLCAwLjAwMDc4MSwgMC4wMDA3NzgsIDAuMDAwNzc2IiwgXAotICAgICAgICAgICIwLjAwMDc4MSwgMC4wMDA3ODEsIDAuMDAwNzgzLCAwLjAwMDc4MiwgMC4wMDA3ODEsIDAuMDAwNzc4LCAwLjAwMDc3NiIsIFwKLSAgICAgICAgICAiMC4wMDA3OCwgMC4wMDA3OCwgMC4wMDA3ODEsIDAuMDAwNzgxLCAwLjAwMDc4LCAwLjAwMDc3OCwgMC4wMDA3NzYiLCBcCi0gICAgICAgICAgIjAuMDAwNzc4LCAwLjAwMDc3OSwgMC4wMDA3ODEsIDAuMDAwNzgxLCAwLjAwMDc4LCAwLjAwMDc3OCwgMC4wMDA3NzYiLCBcCi0gICAgICAgICAgIjAuMDAwNzc2LCAwLjAwMDc3NywgMC4wMDA3OCwgMC4wMDA3OCwgMC4wMDA3OCwgMC4wMDA3NzcsIDAuMDAwNzc2IiwgXAotICAgICAgICAgICIwLjAwMDc3MywgMC4wMDA3NzUsIDAuMDAwNzc5LCAwLjAwMDc4LCAwLjAwMDc3OSwgMC4wMDA3NzcsIDAuMDAwNzc2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTIiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTgyMSwgMC4wMDE4MiwgMC4wMDE4MTksIDAuMDAxODE1LCAwLjAwMTgxMiwgMC4wMDE3OTgsIDAuMDAxNzIxIiwgXAotICAgICAgICAgICIwLjAwMTgxNiwgMC4wMDE4MTYsIDAuMDAxODE0LCAwLjAwMTgxMSwgMC4wMDE4MDcsIDAuMDAxNzkzLCAwLjAwMTcxNyIsIFwKLSAgICAgICAgICAiMC4wMDE4MTMsIDAuMDAxODE0LCAwLjAwMTgxMiwgMC4wMDE4MDksIDAuMDAxODA1LCAwLjAwMTc5MSwgMC4wMDE3MTUiLCBcCi0gICAgICAgICAgIjAuMDAxODEyLCAwLjAwMTgxMiwgMC4wMDE4MTIsIDAuMDAxODA4LCAwLjAwMTgwNCwgMC4wMDE3OSwgMC4wMDE3MTQiLCBcCi0gICAgICAgICAgIjAuMDAxODExLCAwLjAwMTgxMSwgMC4wMDE4MTEsIDAuMDAxODA4LCAwLjAwMTgwNCwgMC4wMDE3OTEsIDAuMDAxNzEzIiwgXAotICAgICAgICAgICIwLjAwMTgwOSwgMC4wMDE4MDksIDAuMDAxODA5LCAwLjAwMTgwOCwgMC4wMDE4MDMsIDAuMDAxNzksIDAuMDAxNzA3IiwgXAotICAgICAgICAgICIwLjAwMTgwNSwgMC4wMDE4MDgsIDAuMDAxODA5LCAwLjAwMTgwNiwgMC4wMDE4MDMsIDAuMDAxNzg5LCAwLjAwMTcwMiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDUzNiwgMC4wMDA1MzYsIDAuMDAwNTM2LCAwLjAwMDUzNSwgMC4wMDA1MzUsIDAuMDAwNTMzLCAwLjAwMDUzOCIsIFwKLSAgICAgICAgICAiMC4wMDA1NDQsIDAuMDAwNTQ0LCAwLjAwMDU0NSwgMC4wMDA1NDUsIDAuMDAwNTQ0LCAwLjAwMDU0NCwgMC4wMDA1NDMiLCBcCi0gICAgICAgICAgIjAuMDAwNTQ0LCAwLjAwMDU0NCwgMC4wMDA1NDcsIDAuMDAwNTQ4LCAwLjAwMDU0NywgMC4wMDA1NDYsIDAuMDAwNTQ1IiwgXAotICAgICAgICAgICIwLjAwMDU0MiwgMC4wMDA1NDMsIDAuMDAwNTQ3LCAwLjAwMDU0OCwgMC4wMDA1NDgsIDAuMDAwNTQ3LCAwLjAwMDU0NiIsIFwKLSAgICAgICAgICAiMC4wMDA1NCwgMC4wMDA1NDIsIDAuMDAwNTQ2LCAwLjAwMDU0OCwgMC4wMDA1NDgsIDAuMDAwNTQ3LCAwLjAwMDU0NyIsIFwKLSAgICAgICAgICAiMC4wMDA1MzcsIDAuMDAwNTM5LCAwLjAwMDU0NSwgMC4wMDA1NDgsIDAuMDAwNTQ4LCAwLjAwMDU0NywgMC4wMDA1NDciLCBcCi0gICAgICAgICAgIjAuMDAwNTM0LCAwLjAwMDUzNywgMC4wMDA1NDQsIDAuMDAwNTQ3LCAwLjAwMDU0OCwgMC4wMDA1NDcsIDAuMDAwNTQ3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTMwMywgMC4wMDEzMDMsIDAuMDAxMzAzLCAwLjAwMTMwNCwgMC4wMDEzMDMsIDAuMDAxMzA1LCAwLjAwMTMwMyIsIFwKLSAgICAgICAgICAiMC4wMDEzMDYsIDAuMDAxMzA2LCAwLjAwMTMwNywgMC4wMDEzMDcsIDAuMDAxMzA4LCAwLjAwMTMwNywgMC4wMDEzMDciLCBcCi0gICAgICAgICAgIjAuMDAxMzA2LCAwLjAwMTMwNiwgMC4wMDEzMDgsIDAuMDAxMzA4LCAwLjAwMTMwOSwgMC4wMDEzMDgsIDAuMDAxMzA4IiwgXAotICAgICAgICAgICIwLjAwMTMwNSwgMC4wMDEzMDYsIDAuMDAxMzA4LCAwLjAwMTMwOSwgMC4wMDEzMDksIDAuMDAxMzA5LCAwLjAwMTMwOSIsIFwKLSAgICAgICAgICAiMC4wMDEzMDQsIDAuMDAxMzA1LCAwLjAwMTMwNywgMC4wMDEzMDksIDAuMDAxMzA5LCAwLjAwMTMwOSwgMC4wMDEzMDkiLCBcCi0gICAgICAgICAgIjAuMDAxMzAyLCAwLjAwMTMwMywgMC4wMDEzMDcsIDAuMDAxMzA4LCAwLjAwMTMwOSwgMC4wMDEzMDksIDAuMDAxMzA5IiwgXAotICAgICAgICAgICIwLjAwMTMwMSwgMC4wMDEzMDIsIDAuMDAxMzA2LCAwLjAwMTMwOCwgMC4wMDEzMDksIDAuMDAxMzA5LCAwLjAwMTMwOSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDk3MiwgMC4wMDA5NzIsIDAuMDAwOTcxLCAwLjAwMDk3LCAwLjAwMDk2OCwgMC4wMDA5NjQsIDAuMDAwOTYyIiwgXAotICAgICAgICAgICIwLjAwMDk2NCwgMC4wMDA5NjQsIDAuMDAwOTY0LCAwLjAwMDk2MiwgMC4wMDA5NjIsIDAuMDAwOTU3LCAwLjAwMDk1NSIsIFwKLSAgICAgICAgICAiMC4wMDA5NjEsIDAuMDAwOTYyLCAwLjAwMDk2MiwgMC4wMDA5NjEsIDAuMDAwOTYsIDAuMDAwOTU2LCAwLjAwMDk1MyIsIFwKLSAgICAgICAgICAiMC4wMDA5NTksIDAuMDAwOTYsIDAuMDAwOTYxLCAwLjAwMDk2LCAwLjAwMDk2LCAwLjAwMDk1NSwgMC4wMDA5NTMiLCBcCi0gICAgICAgICAgIjAuMDAwOTU4LCAwLjAwMDk1OSwgMC4wMDA5NiwgMC4wMDA5NiwgMC4wMDA5NTksIDAuMDAwOTU1LCAwLjAwMDk1MyIsIFwKLSAgICAgICAgICAiMC4wMDA5NTYsIDAuMDAwOTU3LCAwLjAwMDk1OSwgMC4wMDA5NTksIDAuMDAwOTU4LCAwLjAwMDk1NSwgMC4wMDA5NTIiLCBcCi0gICAgICAgICAgIjAuMDAwOTU1LCAwLjAwMDk1NiwgMC4wMDA5NTgsIDAuMDAwOTU4LCAwLjAwMDk1OCwgMC4wMDA5NTQsIDAuMDAwOTUyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTE2MiwgMC4wMDExNjIsIDAuMDAxMTYyLCAwLjAwMTE2MiwgMC4wMDExNjIsIDAuMDAxMTYyLCAwLjAwMTE2MiIsIFwKLSAgICAgICAgICAiMC4wMDExNjQsIDAuMDAxMTY1LCAwLjAwMTE2NiwgMC4wMDExNjYsIDAuMDAxMTY2LCAwLjAwMTE2NiwgMC4wMDExNjYiLCBcCi0gICAgICAgICAgIjAuMDAxMTYzLCAwLjAwMTE2NCwgMC4wMDExNjYsIDAuMDAxMTY3LCAwLjAwMTE2NywgMC4wMDExNjcsIDAuMDAxMTY3IiwgXAotICAgICAgICAgICIwLjAwMTE2MSwgMC4wMDExNjIsIDAuMDAxMTY2LCAwLjAwMTE2NywgMC4wMDExNjcsIDAuMDAxMTY4LCAwLjAwMTE2NyIsIFwKLSAgICAgICAgICAiMC4wMDExNiwgMC4wMDExNjEsIDAuMDAxMTY1LCAwLjAwMTE2NywgMC4wMDExNjcsIDAuMDAxMTY4LCAwLjAwMTE2NyIsIFwKLSAgICAgICAgICAiMC4wMDExNTgsIDAuMDAxMTU5LCAwLjAwMTE2NCwgMC4wMDExNjYsIDAuMDAxMTY3LCAwLjAwMTE2OCwgMC4wMDExNjciLCBcCi0gICAgICAgICAgIjAuMDAxMTU2LCAwLjAwMTE1OCwgMC4wMDExNjMsIDAuMDAxMTY2LCAwLjAwMTE2NywgMC4wMDExNjcsIDAuMDAxMTY3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwNzQ2LCAwLjAwMDc0NiwgMC4wMDA3NDYsIDAuMDAwNzQ4LCAwLjAwMDczOSwgMC4wMDA3NDIsIDAuMDAwNzMyIiwgXAotICAgICAgICAgICIwLjAwMDc1LCAwLjAwMDc1LCAwLjAwMDc1MSwgMC4wMDA3NTEsIDAuMDAwNzUsIDAuMDAwNzQ4LCAwLjAwMDc0NyIsIFwKLSAgICAgICAgICAiMC4wMDA3NDgsIDAuMDAwNzQ5LCAwLjAwMDc1MiwgMC4wMDA3NTIsIDAuMDAwNzUyLCAwLjAwMDc1LCAwLjAwMDc0OCIsIFwKLSAgICAgICAgICAiMC4wMDA3NDYsIDAuMDAwNzQ3LCAwLjAwMDc1MSwgMC4wMDA3NTIsIDAuMDAwNzUyLCAwLjAwMDc1LCAwLjAwMDc0OCIsIFwKLSAgICAgICAgICAiMC4wMDA3NDMsIDAuMDAwNzQ1LCAwLjAwMDc1LCAwLjAwMDc1MiwgMC4wMDA3NTEsIDAuMDAwNzUsIDAuMDAwNzQ4IiwgXAotICAgICAgICAgICIwLjAwMDc0LCAwLjAwMDc0MSwgMC4wMDA3NDgsIDAuMDAwNzUxLCAwLjAwMDc1MSwgMC4wMDA3NDksIDAuMDAwNzQ4IiwgXAotICAgICAgICAgICIwLjAwMDczNywgMC4wMDA3MzYsIDAuMDAwNzQ3LCAwLjAwMDc1LCAwLjAwMDc1MSwgMC4wMDA3NDksIDAuMDAwNzQ4Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogT0FJMzNYMSAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChPQUkzM1gxKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMTQyMzY3OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwODY4MjM4OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDg2NDA2NDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA4NjgyMzg7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzA2LCAwLjAwMDMwNiwgMC4wMDAzMDYsIDAuMDAwMzA2LCAwLjAwMDMwNiwgMC4wMDAzMDUsIDAuMDAwMzA2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzA3LCAwLjAwMDMwNywgMC4wMDAzMDcsIDAuMDAwMzA3LCAwLjAwMDMwNywgMC4wMDAzMDcsIDAuMDAwMzA3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihBMSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwODk0Mjc1OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDg5MTc1ODsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA4OTQyNzU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzA2LCAwLjAwMDMwNiwgMC4wMDAzMDYsIDAuMDAwMzA2LCAwLjAwMDMwNiwgMC4wMDAzMDYsIDAuMDAwMzA2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzA3LCAwLjAwMDMwNywgMC4wMDAzMDcsIDAuMDAwMzA3LCAwLjAwMDMwNywgMC4wMDAzMDcsIDAuMDAwMzA3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihBMikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwODY3NDY4OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDg2NzQ2ODsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA4NjQyNzM7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzA2LCAwLjAwMDMwNiwgMC4wMDAzMDYsIDAuMDAwMzA2LCAwLjAwMDMwNiwgMC4wMDAzMDYsIDAuMDAwMzA2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzA3LCAwLjAwMDMwNywgMC4wMDAzMDcsIDAuMDAwMzA3LCAwLjAwMDMwNywgMC4wMDAzMDcsIDAuMDAwMzA3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwODk1OTUzOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDg4ODY5MjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA4OTU5NTM7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNjAzLCAwLjAwMDYwNCwgMC4wMDA2MDMsIDAuMDAwNjA0LCAwLjAwMDYwMywgMC4wMDA2MDMsIDAuMDAwNjA0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzQ4LCAwLjAwMDM0OCwgMC4wMDAzNDgsIDAuMDAwMzQ4LCAwLjAwMDM0OCwgMC4wMDAzNDgsIDAuMDAwMzQ4Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCMSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwODk0NTA3OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDg4ODU0MTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA4OTQ1MDc7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNjAzLCAwLjAwMDYwNCwgMC4wMDA2MDMsIDAuMDAwNjAzLCAwLjAwMDYwMywgMC4wMDA2MDMsIDAuMDAwNjAzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzQ3LCAwLjAwMDM0OCwgMC4wMDAzNDgsIDAuMDAwMzQ4LCAwLjAwMDM0OCwgMC4wMDAzNDgsIDAuMDAwMzQ4Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCMikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwODgxNTk2OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDg4MTU5NjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA4ODE1Nzc7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNjAzLCAwLjAwMDYwNCwgMC4wMDA2MDQsIDAuMDAwNjA0LCAwLjAwMDYwMywgMC4wMDA2MDMsIDAuMDAwNjAzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzQ3LCAwLjAwMDM0OCwgMC4wMDAzNDcsIDAuMDAwMzQ4LCAwLjAwMDM0OCwgMC4wMDAzNDgsIDAuMDAwMzQ4Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMDQ1NDk1NzsKLSAgICBmdW5jdGlvbiA6ICIoISgoKEIwK0IxKStCMikgKChBMCtBMSkrQTIpKSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMjIwMjMsIDAuNDU3OTU2LCAxLjIyNTU2LCAxLjkwMjU5LCAyLjgwNDE5LCA0LjYwNzksIDUuNzM1MDgiLCBcCi0gICAgICAgICAgIjAuMzMzMzc1LCAwLjQ2OTM2OCwgMS4yMzcwMSwgMS45MTM4MSwgMi44MTU2LCA0LjYxOTIzLCA1Ljc0NjU4IiwgXAotICAgICAgICAgICIwLjM0NjEwNywgMC40ODIwNzYsIDEuMjUwMDksIDEuOTI3MjYsIDIuODI4MzksIDQuNjMyMDgsIDUuNzU5MjgiLCBcCi0gICAgICAgICAgIjAuMzU3ODY0LCAwLjQ5MzkxNSwgMS4yNjE2MSwgMS45Mzg4OCwgMi44NDAzNCwgNC42NDM4OCwgNS43NzExOSIsIFwKLSAgICAgICAgICAiMC4zNjkwMywgMC41MDUxOTMsIDEuMjcyODEsIDEuOTQ5OCwgMi44NTEzMywgNC42NTUxMywgNS43ODI1MSIsIFwKLSAgICAgICAgICAiMC4zODYyNzksIDAuNTIyMzc1LCAxLjI5MDIyLCAxLjk2Nzc4LCAyLjg2ODgyLCA0LjY3MjQ5LCA1Ljc5OTgiLCBcCi0gICAgICAgICAgIjAuNDAxMDcyLCAwLjUzNzIzNiwgMS4zMDUzNywgMS45ODE3LCAyLjg4MzYyLCA0LjY4NzQ0LCA1LjgxNDc2Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjU5NTQ0LCAwLjg1NDY3NiwgMi4zMjQ4OCwgMy42MjE3OSwgNS4zNTMwNywgOC44MTMxOCwgMTAuOTc2MiIsIFwKLSAgICAgICAgICAiMC41OTU0NjEsIDAuODU0NTgzLCAyLjMyNDYsIDMuNjIyMDYsIDUuMzUyODYsIDguODEzNzgsIDEwLjk3NjIiLCBcCi0gICAgICAgICAgIjAuNTk1NDE5LCAwLjg1NDY1MiwgMi4zMjQ1OSwgMy42MjIyNSwgNS4zNTI4MywgOC44MTQ0OSwgMTAuOTc2MiIsIFwKLSAgICAgICAgICAiMC41OTU0NTEsIDAuODU0NTgxLCAyLjMyNDU5LCAzLjYyMjQ2LCA1LjM1Mjg1LCA4LjgxNDIxLCAxMC45NzYxIiwgXAotICAgICAgICAgICIwLjU5NTQyNSwgMC44NTQ1ODYsIDIuMzI0ODQsIDMuNjIyNjMsIDUuMzUyOTEsIDguODEzODksIDEwLjk3NjMiLCBcCi0gICAgICAgICAgIjAuNTk1NDQsIDAuODU0NTU2LCAyLjMyNDgyLCAzLjYyMTkyLCA1LjM1MjkzLCA4LjgxMzk3LCAxMC45NzYxIiwgXAotICAgICAgICAgICIwLjU5NjEwMiwgMC44NTQ2MDgsIDIuMzI0ODksIDMuNjIxOTMsIDUuMzUzMjksIDguODEzNzMsIDEwLjk3NjEiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjU3MjYsIDAuMzU3NDYsIDAuOTIwNzksIDEuNDE2NDIsIDIuMDc3MDUsIDMuMzk3NjcsIDQuMjIxODYiLCBcCi0gICAgICAgICAgIjAuMjY4OTI2LCAwLjM2OTE1MSwgMC45MzI2MTUsIDEuNDI4MTYsIDIuMDg4NTgsIDMuNDA5MDUsIDQuMjMzNjUiLCBcCi0gICAgICAgICAgIjAuMjgzODEsIDAuMzg0LCAwLjk0NzY0MiwgMS40NDM1OCwgMi4xMDMzOCwgMy40MjM4MSwgNC4yNDg2MSIsIFwKLSAgICAgICAgICAiMC4yOTgxOTQsIDAuMzk4NDY1LCAwLjk2MTc2NiwgMS40NTc0NywgMi4xMTg1LCAzLjQzODI1LCA0LjI2MjgzIiwgXAotICAgICAgICAgICIwLjMxMjAzMiwgMC40MTIxNzIsIDAuOTc1NjA5LCAxLjQ3MTg4LCAyLjEzMjMxLCAzLjQ1MjQ2LCA0LjI3NjQ1IiwgXAotICAgICAgICAgICIwLjMzNDAxNiwgMC40MzQzMzIsIDAuOTk3NjgyLCAxLjQ5NDA4LCAyLjE1MzgsIDMuNDc0MDcsIDQuMjk4OTMiLCBcCi0gICAgICAgICAgIjAuMzUyODIzLCAwLjQ1MzE2NSwgMS4wMTY5MywgMS41MTIzMywgMi4xNzM2MSwgMy40OTMxNywgNC4zMTc5NSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC40MTIyODQsIDAuNjAyMTMyLCAxLjY3NjA4LCAyLjYyMTg0LCAzLjg4NDUyLCA2LjQwNjkyLCA3Ljk4MTkiLCBcCi0gICAgICAgICAgIjAuNDEyMjY5LCAwLjYwMjM3MiwgMS42NzU5OCwgMi42MjIwOCwgMy44ODQyNiwgNi40MDc2MywgNy45ODI2OCIsIFwKLSAgICAgICAgICAiMC40MTE5MDYsIDAuNjAyMzUxLCAxLjY3NTYzLCAyLjYyMTczLCAzLjg4MzUzLCA2LjQwNTQ2LCA3Ljk4MzczIiwgXAotICAgICAgICAgICIwLjQxMTg3NCwgMC42MDIzOTMsIDEuNjc1MDUsIDIuNjIxOTIsIDMuODgyOTgsIDYuNDA3MzIsIDcuOTgzNTIiLCBcCi0gICAgICAgICAgIjAuNDExNzI4LCAwLjYwMjA5MywgMS42NzQ5MSwgMi42MjI3NSwgMy44ODI5OCwgNi40MDYwNSwgNy45ODMyOCIsIFwKLSAgICAgICAgICAiMC40MTIxOTEsIDAuNjAyMzM5LCAxLjY3NTg3LCAyLjYyMjQsIDMuODgzNjYsIDYuNDA2MjEsIDcuOTgzNjMiLCBcCi0gICAgICAgICAgIjAuNDEyMjg1LCAwLjYwMTc5MywgMS42NzYwNywgMi42MjE3NCwgMy44ODQ2MiwgNi40MDgwNSwgNy45ODM2OSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzE2Mjc3LCAwLjQ1MjIzMiwgMS4yMTk4NiwgMS44OTY2NiwgMi43OTgsIDQuNjAyMTcsIDUuNzI5NDIiLCBcCi0gICAgICAgICAgIjAuMzI2NzQ0LCAwLjQ2MjcwNywgMS4yMzAzNCwgMS45MDcsIDIuODA5MDksIDQuNjEyNiwgNS43Mzk5MSIsIFwKLSAgICAgICAgICAiMC4zMzkyOTQsIDAuNDc1MzM1LCAxLjI0MzI1LCAxLjkyMDI1LCAyLjgyMTUxLCA0LjYyNTI3LCA1Ljc1MjM3IiwgXAotICAgICAgICAgICIwLjM1MTM0MSwgMC40ODczOTUsIDEuMjU1NTcsIDEuOTMyMjQsIDIuODMzODEsIDQuNjM3MzUsIDUuNzY0NjYiLCBcCi0gICAgICAgICAgIjAuMzYzMTgxLCAwLjQ5OTIxMSwgMS4yNjczNSwgMS45NDQyMywgMi44NDU0MSwgNC42NDkyMywgNS43NzY1NyIsIFwKLSAgICAgICAgICAiMC4zODIwODEsIDAuNTE4MjYzLCAxLjI4NjQsIDEuOTYyODYsIDIuODY0NDIsIDQuNjY4MjYsIDUuNzk1NjUiLCBcCi0gICAgICAgICAgIjAuMzk4NTMzLCAwLjUzNDcxMywgMS4zMDI2OSwgMS45Nzk3NCwgMi44ODA5NywgNC42ODUxMiwgNS44MTIzMyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC41OTU0MzEsIDAuODU0NjUyLCAyLjMyNDgyLCAzLjYyMTk0LCA1LjM1MzExLCA4LjgxMzcsIDEwLjk3NjEiLCBcCi0gICAgICAgICAgIjAuNTk1NDcyLCAwLjg1NDY1MywgMi4zMjQ0OCwgMy42MjI0NCwgNS4zNTMwNywgOC44MTMyNywgMTAuOTc2MiIsIFwKLSAgICAgICAgICAiMC41OTU0NCwgMC44NTQ1NSwgMi4zMjQ5LCAzLjYyMTk4LCA1LjM1Mjg1LCA4LjgxMzY3LCAxMC45NzYzIiwgXAotICAgICAgICAgICIwLjU5NTQ0MiwgMC44NTQ1ODksIDIuMzI0NDgsIDMuNjIxOTEsIDUuMzUzMDgsIDguODEzODMsIDEwLjk3NjEiLCBcCi0gICAgICAgICAgIjAuNTk1NDMyLCAwLjg1NDYxNCwgMi4zMjQ1NywgMy42MjIyMywgNS4zNTI4OCwgOC44MTMzMywgMTAuOTc2MiIsIFwKLSAgICAgICAgICAiMC41OTU0OTQsIDAuODU0NTI4LCAyLjMyNDU5LCAzLjYyMTkxLCA1LjM1Mjg4LCA4LjgxMzE3LCAxMC45NzY0IiwgXAotICAgICAgICAgICIwLjU5NjQ4NSwgMC44NTQ2MTQsIDIuMzI0NiwgMy42MjE5NCwgNS4zNTMwNywgOC44MTM0MSwgMTAuOTc2NCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yNDgyMzgsIDAuMzQ4MDc3LCAwLjkxMDk2MiwgMS40MDYwOCwgMi4wNjcwMiwgMy4zODY1NiwgNC4yMTEwMSIsIFwKLSAgICAgICAgICAiMC4yNjAzMTksIDAuMzYwMTg0LCAwLjkyMjkxMSwgMS40MTgyMywgMi4wNzg4MiwgMy4zOTg4LCA0LjIyMzMzIiwgXAotICAgICAgICAgICIwLjI3NTI4NCwgMC4zNzUyMDQsIDAuOTM4MTA4LCAxLjQzMzgyLCAyLjA5MzQyLCAzLjQxMzYyLCA0LjIzODQ5IiwgXAotICAgICAgICAgICIwLjI4OTU5MiwgMC4zODk1NzUsIDAuOTUyMjE4LCAxLjQ0NzY5LCAyLjEwODU2LCAzLjQyODQ5LCA0LjI1MjY0IiwgXAotICAgICAgICAgICIwLjMwMzQyOSwgMC40MDMzOTQsIDAuOTY2MzM5LCAxLjQ2MjA5LCAyLjEyMTgzLCAzLjQ0MjAyLCA0LjI2Njc5IiwgXAotICAgICAgICAgICIwLjMyNTIyOSwgMC40MjUyNTUsIDAuOTg4MTUzLCAxLjQ4Mzg1LCAyLjE0NDg2LCAzLjQ2NDA3LCA0LjI4ODYiLCBcCi0gICAgICAgICAgIjAuMzQ0MDY1LCAwLjQ0NDA4MiwgMS4wMDcxOSwgMS41MDI4OSwgMi4xNjM1NSwgMy40ODMxLCA0LjMwNzgzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjQwMjUyMiwgMC41OTE3OTUsIDEuNjY1NzIsIDIuNjExNDYsIDMuODczMzUsIDYuMzk2NDMsIDcuOTcyNTMiLCBcCi0gICAgICAgICAgIjAuNDAyNDg3LCAwLjU5MTc4NSwgMS42NjU1MiwgMi42MTE0MiwgMy44NzE5NiwgNi4zOTY5MSwgNy45NzA4NSIsIFwKLSAgICAgICAgICAiMC40MDI0NjYsIDAuNTkxNjA3LCAxLjY2NTAyLCAyLjYxMTczLCAzLjg3Mjc0LCA2LjM5NjQ5LCA3Ljk3MjY3IiwgXAotICAgICAgICAgICIwLjQwMjIyNywgMC41OTE2NzQsIDEuNjY0NTEsIDIuNjExNCwgMy44NzIxOSwgNi4zOTU2NSwgNy45NzI0IiwgXAotICAgICAgICAgICIwLjQwMjQxNiwgMC41OTE5MzYsIDEuNjY1MiwgMi42MTExLCAzLjg3MjczLCA2LjM5NjA0LCA3Ljk3MjU1IiwgXAotICAgICAgICAgICIwLjQwMjExNiwgMC41OTE3NzksIDEuNjY1MTUsIDIuNjEwOTQsIDMuODczMjMsIDYuMzk2MzMsIDcuOTcyNDEiLCBcCi0gICAgICAgICAgIjAuNDAzMDYzLCAwLjU5MTgyNiwgMS42NjUxNiwgMi42MTIxNiwgMy44NzI2OCwgNi4zOTQ0OSwgNy45NzEyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEyIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMDE1MjEsIDAuNDM3NDgyLCAxLjIwNTUsIDEuODgyNjUsIDIuNzgzNjUsIDQuNTg3NDIsIDUuNzE0NTMiLCBcCi0gICAgICAgICAgIjAuMzEwOTY4LCAwLjQ0Njk1OCwgMS4yMTQ2MSwgMS44OTE5NCwgMi43OTMyNSwgNC41OTY5LCA1LjcyNDE4IiwgXAotICAgICAgICAgICIwLjMyMzE4MywgMC40NTkyODEsIDEuMjI2OTQsIDEuOTAzODMsIDIuODA1NzUsIDQuNjA5MjksIDUuNzM2NDUiLCBcCi0gICAgICAgICAgIjAuMzM1MTE2LCAwLjQ3MTI0OCwgMS4yMzkzMSwgMS45MTYsIDIuODE3NjksIDQuNjIxMzMsIDUuNzQ4NDUiLCBcCi0gICAgICAgICAgIjAuMzQ3MTM4LCAwLjQ4MzM0NiwgMS4yNTE2NiwgMS45MjgyOSwgMi44Mjk0NCwgNC42MzM1MSwgNS43NjA3NSIsIFwKLSAgICAgICAgICAiMC4zNjY0ODksIDAuNTAyNzEsIDEuMjcwNzIsIDEuOTQ3NDQsIDIuODQ5NDIsIDQuNjUzMDEsIDUuNzgwMTIiLCBcCi0gICAgICAgICAgIjAuMzgzNjM5LCAwLjUxODk2NSwgMS4yODgwMywgMS45NjU0NCwgMi44NjYzLCA0LjY3MDE3LCA1Ljc5NzU5Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjU5NTQzLCAwLjg1NDY2MSwgMi4zMjQ2LCAzLjYyMTksIDUuMzUzMDUsIDguODEzNjYsIDEwLjk3NjEiLCBcCi0gICAgICAgICAgIjAuNTk1NDU1LCAwLjg1NDU1LCAyLjMyNDQxLCAzLjYyMjQ3LCA1LjM1MzA5LCA4LjgxMzIsIDEwLjk3NjIiLCBcCi0gICAgICAgICAgIjAuNTk1NDQ1LCAwLjg1NDYzMSwgMi4zMjQ4LCAzLjYyMjA0LCA1LjM1MjksIDguODE0MDUsIDEwLjk3NjMiLCBcCi0gICAgICAgICAgIjAuNTk1NDMyLCAwLjg1NDU4NSwgMi4zMjQ0NSwgMy42MjE5MSwgNS4zNTMwOSwgOC44MTM3OCwgMTAuOTc2MyIsIFwKLSAgICAgICAgICAiMC41OTU0MDcsIDAuODU0NjMzLCAyLjMyNDUsIDMuNjIyNDQsIDUuMzUyODcsIDguODEzMzgsIDEwLjk3NjEiLCBcCi0gICAgICAgICAgIjAuNTk1NDUyLCAwLjg1NDU5LCAyLjMyNDk0LCAzLjYyMTg4LCA1LjM1MzA4LCA4LjgxMzM1LCAxMC45NzYzIiwgXAotICAgICAgICAgICIwLjU5NzU1MSwgMC44NTQ0MjIsIDIuMzI0ODgsIDMuNjIyMDYsIDUuMzUzMDcsIDguODEzMDIsIDEwLjk3NjIiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjM3MTMxLCAwLjMzNjc2NiwgMC44OTkxODUsIDEuMzk0NDYsIDIuMDU0NTQsIDMuMzc0NzYsIDQuMTk4NjkiLCBcCi0gICAgICAgICAgIjAuMjQ5NTk4LCAwLjM0OTMwMywgMC45MTE0OTUsIDEuNDA3MzUsIDIuMDY3NSwgMy4zODc1MiwgNC4yMTE0MSIsIFwKLSAgICAgICAgICAiMC4yNjQ1NTgsIDAuMzY0NDA1LCAwLjkyNjcxNCwgMS40MjIwNCwgMi4wODI2LCAzLjQwMjE0LCA0LjIyNjk0IiwgXAotICAgICAgICAgICIwLjI3ODg5NiwgMC4zNzg2OTQsIDAuOTQxNDQxLCAxLjQzNjU4LCAyLjA5NzQ1LCAzLjQxNjcxLCA0LjI0MTE3IiwgXAotICAgICAgICAgICIwLjI5MjY5OSwgMC4zOTI1MzYsIDAuOTU1MjY1LCAxLjQ1MDksIDIuMTEwNTMsIDMuNDMwNiwgNC4yNTUzIiwgXAotICAgICAgICAgICIwLjMxNDM5OSwgMC40MTQzMjQsIDAuOTc3MiwgMS40NzI5NywgMi4xMzI3MywgMy40NTI3OSwgNC4yNzczMSIsIFwKLSAgICAgICAgICAiMC4zMzMyOTYsIDAuNDMzMzA2LCAwLjk5NjI3OSwgMS40OTEzMywgMi4xNTI2MSwgMy40NzE2MSwgNC4yOTYzNSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zOTA3NTUsIDAuNTgwMDcyLCAxLjY1MzQsIDIuNTk5NTEsIDMuODU4OTUsIDYuMzgyMzEsIDcuOTU4ODIiLCBcCi0gICAgICAgICAgIjAuMzkwNzU4LCAwLjU4MDQ1LCAxLjY1MzE0LCAyLjU5ODcyLCAzLjg1OTA4LCA2LjM4MjgsIDcuOTU4ODgiLCBcCi0gICAgICAgICAgIjAuMzkwODcxLCAwLjU4MDQ0MSwgMS42NTI3NywgMi41OTkyMywgMy44NjA2MywgNi4zODI4MywgNy45NTkwMSIsIFwKLSAgICAgICAgICAiMC4zOTA4MDgsIDAuNTgwNDgyLCAxLjY1MzQzLCAyLjU5OTI5LCAzLjg2MDE0LCA2LjM4Mjk1LCA3Ljk1ODgzIiwgXAotICAgICAgICAgICIwLjM5MDk3NCwgMC41ODA0MTksIDEuNjUyODgsIDIuNTk4MzYsIDMuODU5ODQsIDYuMzgyNjUsIDcuOTU4OTIiLCBcCi0gICAgICAgICAgIjAuMzkxMDAxLCAwLjU4MDAzMSwgMS42NTMwNiwgMi41OTg5OSwgMy44NjA1LCA2LjM4MjkzLCA3Ljk1ODg0IiwgXAotICAgICAgICAgICIwLjM5MTQ0NiwgMC41ODAwNjcsIDEuNjUzMzUsIDIuNTk4NCwgMy44NTk4NywgNi4zODE3MSwgNy45NTg5MyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjg3NTUsIDAuNDIzMzg1LCAxLjE5MjMxLCAxLjg3MDgxLCAyLjc3NTUyLCA0LjU4NDc3LCA1LjcxNTIyIiwgXAotICAgICAgICAgICIwLjI5OTE0MywgMC40MzUwNDcsIDEuMjAzOTksIDEuODgyNjUsIDIuNzg3NDMsIDQuNTk2NTksIDUuNzI3MDgiLCBcCi0gICAgICAgICAgIjAuMzExODkxLCAwLjQ0Nzg0NiwgMS4yMTY4NCwgMS44OTU0NCwgMi44MDAzMSwgNC42MDk0NywgNS43Mzk5NSIsIFwKLSAgICAgICAgICAiMC4zMjM2OTMsIDAuNDU5NjA2LCAxLjIyODY5LCAxLjkwNzM1LCAyLjgxMTk5LCA0LjYyMTMzLCA1Ljc1MTgiLCBcCi0gICAgICAgICAgIjAuMzM0Nzc5LCAwLjQ3MDY3MywgMS4yNDAwOSwgMS45MTg2MywgMi44MjMxOCwgNC42MzI1LCA1Ljc2MzE3IiwgXAotICAgICAgICAgICIwLjM1MTc4MywgMC40ODgxMDksIDEuMjU3NTIsIDEuOTM2MDEsIDIuODQwNTYsIDQuNjQ5OTYsIDUuNzgwNTIiLCBcCi0gICAgICAgICAgIjAuMzY2NzAyLCAwLjUwMjY0NiwgMS4yNzIyMSwgMS45NTA3LCAyLjg1NTU2LCA0LjY2NDkxLCA1Ljc5NTQ3Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjU2NjU4MSwgMC44MjU4NjIsIDIuMjk4MDksIDMuNTk4MjcsIDUuMzMzMiwgOC44MDI0OSwgMTAuOTcwOCIsIFwKLSAgICAgICAgICAiMC41NjY1MDcsIDAuODI1Njk0LCAyLjI5ODEyLCAzLjU5ODU1LCA1LjMzMzE0LCA4LjgwMjMyLCAxMC45NzA3IiwgXAotICAgICAgICAgICIwLjU2NjQ4NiwgMC44MjU3NjEsIDIuMjk4MTEsIDMuNTk3OTcsIDUuMzMzMTQsIDguODAzMjQsIDEwLjk3MDciLCBcCi0gICAgICAgICAgIjAuNTY2NTIzLCAwLjgyNTczMywgMi4yOTc4NiwgMy41OTg1LCA1LjMzMjk0LCA4LjgwMzIzLCAxMC45NzA2IiwgXAotICAgICAgICAgICIwLjU2NjUyMywgMC44MjU3NDEsIDIuMjk4MiwgMy41OTg1NCwgNS4zMzI5MiwgOC44MDI2NSwgMTAuOTcwOCIsIFwKLSAgICAgICAgICAiMC41NjY1OTcsIDAuODI1NzM4LCAyLjI5Nzc2LCAzLjU5ODA4LCA1LjMzMjkxLCA4LjgwMjcyLCAxMC45NzA4IiwgXAotICAgICAgICAgICIwLjU2NzU2NywgMC44MjU3MDgsIDIuMjk4MTgsIDMuNTk4NCwgNS4zMzMsIDguODAzMDYsIDEwLjk3MDIiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjM3ODE3LCAwLjMzODAyMSwgMC45MDE0MDYsIDEuMzk3NTQsIDIuMDU4NjIsIDMuMzc3NjksIDQuMjAyNDYiLCBcCi0gICAgICAgICAgIjAuMjQ3OTU0LCAwLjM0ODIwNCwgMC45MTE2MzgsIDEuNDA3MzMsIDIuMDY3NzIsIDMuMzg3OTgsIDQuMjEyNjgiLCBcCi0gICAgICAgICAgIjAuMjYxMTk3LCAwLjM2MTc0NywgMC45MjQ4OTksIDEuNDIwOTcsIDIuMDgwOTYsIDMuNDAxMTcsIDQuMjI1OTYiLCBcCi0gICAgICAgICAgIjAuMjc0NTUsIDAuMzc0Nzk3LCAwLjkzODEzMywgMS40MzM2MiwgMi4wOTQ4MywgMy40MTQ3MiwgNC4yMzkwNCIsIFwKLSAgICAgICAgICAiMC4yODczMjIsIDAuMzg3ODk1LCAwLjk1MTYzOSwgMS40NDc2MywgMi4xMDgxOSwgMy40Mjc2NiwgNC4yNTI1OSIsIFwKLSAgICAgICAgICAiMC4zMDkzMDIsIDAuNDA3OTgzLCAwLjk3MzI5MiwgMS40Njg3MiwgMi4xMjkxNywgMy40NDkzNywgNC4yNzQwOSIsIFwKLSAgICAgICAgICAiMC4zMjgwOTUsIDAuNDI4MjI4LCAwLjk5MTc4MywgMS40ODc2NCwgMi4xNDgwNSwgMy40NjgyNiwgNC4yOTI5NiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC40MTE5NjUsIDAuNjAyMzk0LCAxLjY3NTY4LCAyLjYyMTc2LCAzLjg4NDc4LCA2LjQxMTA4LCA3Ljk4Mzc2IiwgXAotICAgICAgICAgICIwLjQxMjIzMiwgMC42MDIzNDIsIDEuNjc1NTYsIDIuNjIyMDgsIDMuODgzMzcsIDYuNDA2MzYsIDcuOTgwODQiLCBcCi0gICAgICAgICAgIjAuNDEyMjQxLCAwLjYwMjAxLCAxLjY3NTUxLCAyLjYyMTczLCAzLjg4NDI3LCA2LjQwNzAzLCA3Ljk4MzU3IiwgXAotICAgICAgICAgICIwLjQxMTcxNSwgMC42MDIyOTksIDEuNjc1NTQsIDIuNjIxMDQsIDMuODgzMDIsIDYuNDA4MDMsIDcuOTgzNDQiLCBcCi0gICAgICAgICAgIjAuNDExNzg1LCAwLjYwMjI4NCwgMS42NzYxMiwgMi42MjI3MSwgMy44ODI5NiwgNi40MDcyLCA3Ljk4MDQ4IiwgXAotICAgICAgICAgICIwLjQxMjM1OSwgMC42MDIxMTQsIDEuNjc2MDgsIDIuNjIyNTIsIDMuODg0MjgsIDYuNDA3MDMsIDcuOTgzNSIsIFwKLSAgICAgICAgICAiMC40MTUyNjgsIDAuNjAyMTgsIDEuNjc1NDMsIDIuNjIxOTIsIDMuODgzMjgsIDYuNDA1NTQsIDcuOTgyNjEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI4MTY1NywgMC40MTc0NDMsIDEuMTg2NDYsIDEuODY1MTEsIDIuNzY5ODksIDQuNTc5MDEsIDUuNzA5NTEiLCBcCi0gICAgICAgICAgIjAuMjkyNjI3LCAwLjQyODUwOCwgMS4xOTczNSwgMS44NzU4OCwgMi43ODA3NSwgNC41ODk5MSwgNS43MjA0MyIsIFwKLSAgICAgICAgICAiMC4zMDUxMDcsIDAuNDQwOTgyLCAxLjIxMDE4LCAxLjg4ODY2LCAyLjc5MzE2LCA0LjYwMjY0LCA1LjczMzAyIiwgXAotICAgICAgICAgICIwLjMxNjk5LCAwLjQ1MjkyNywgMS4yMjIyMSwgMS45MDA2NCwgMi44MDU2NywgNC42MTQ3OSwgNS43NDUzIiwgXAotICAgICAgICAgICIwLjMyODgyMSwgMC40NjUwODUsIDEuMjM0MTIsIDEuOTEyNzYsIDIuODE3MywgNC42MjY2OSwgNS43NTczMSIsIFwKLSAgICAgICAgICAiMC4zNDc5MDIsIDAuNDg0MDMzLCAxLjI1MzA0LCAxLjkzMTc1LCAyLjgzNjYsIDQuNjQ1NzgsIDUuNzc2MjciLCBcCi0gICAgICAgICAgIjAuMzY0MTAxLCAwLjUwMDQ1LCAxLjI2OTc3LCAxLjk0ODI4LCAyLjg1MzIxLCA0LjY2MjM0LCA1Ljc5MjkyIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjU2NjQ1NiwgMC44MjU2MjMsIDIuMjk3NzIsIDMuNTk4MDMsIDUuMzMzMzMsIDguODAyNTQsIDEwLjk3MDciLCBcCi0gICAgICAgICAgIjAuNTY2NTg2LCAwLjgyNTg1NSwgMi4yOTgxMiwgMy41OTgsIDUuMzMzMTQsIDguODAyNjIsIDEwLjk3MDgiLCBcCi0gICAgICAgICAgIjAuNTY2NTYyLCAwLjgyNTY5NSwgMi4yOTgxOCwgMy41OTc4NywgNS4zMzI4NywgOC44MDIxMywgMTAuOTcwOCIsIFwKLSAgICAgICAgICAiMC41NjY0OTgsIDAuODI1NjczLCAyLjI5NzgyLCAzLjU5ODM4LCA1LjMzMzE1LCA4LjgwMjc4LCAxMC45NzA3IiwgXAotICAgICAgICAgICIwLjU2NjQ1OSwgMC44MjU3NzQsIDIuMjk3ODcsIDMuNTk4NSwgNS4zMzI5MywgOC44MDIzLCAxMC45NzA3IiwgXAotICAgICAgICAgICIwLjU2NjgyOCwgMC44MjU3NzksIDIuMjk4MTIsIDMuNTk3OTcsIDUuMzMzMTQsIDguODAyMDksIDEwLjk3MDciLCBcCi0gICAgICAgICAgIjAuNTY4MjU5LCAwLjgyNTgyNCwgMi4yOTc3MiwgMy41OTc4MywgNS4zMzM0NCwgOC44MDMxNywgMTAuOTcwOCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMjg3MTEsIDAuMzI4NTc4LCAwLjg5MTM5NywgMS4zODY4MywgMi4wNDc0NCwgMy4zNjczMSwgNC4xOTEzMyIsIFwKLSAgICAgICAgICAiMC4yMzkzNDEsIDAuMzM5MjYzLCAwLjkwMTgxNCwgMS4zOTcyNywgMi4wNTgsIDMuMzc3NTksIDQuMjAyMjUiLCBcCi0gICAgICAgICAgIjAuMjUzMTcxLCAwLjM1MjU0NywgMC45MTU4ODMsIDEuNDExNywgMi4wNzEzMywgMy4zOTE0MSwgNC4yMTYyMiIsIFwKLSAgICAgICAgICAiMC4yNjY0NzgsIDAuMzY2NDQ1LCAwLjkyODU3LCAxLjQyMzgzLCAyLjA4NTQ5LCAzLjQwNDU4LCA0LjIyODgyIiwgXAotICAgICAgICAgICIwLjI3ODkzMywgMC4zNzkwMTEsIDAuOTQyMDMzLCAxLjQzODYxLCAyLjA5OTMxLCAzLjQxODMyLCA0LjI0MzIxIiwgXAotICAgICAgICAgICIwLjMwMDU3NywgMC4zOTk1NDcsIDAuOTYzNjE0LCAxLjQ1ODg1LCAyLjExOTEyLCAzLjQzOTE2LCA0LjI2MzgiLCBcCi0gICAgICAgICAgIjAuMzE5NDYsIDAuNDE5MTY1LCAwLjk4MjIxOCwgMS40Nzc3NiwgMi4xMzgxNywgMy40NTg0NywgNC4yODI2NyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC40MDE5OTIsIDAuNTkxNjc4LCAxLjY2NTcyLCAyLjYxMjE2LCAzLjg3MzIxLCA2LjM5NTU1LCA3Ljk3MDM2IiwgXAotICAgICAgICAgICIwLjQwMjE5MiwgMC41OTE3MzMsIDEuNjY1MzUsIDIuNjExODIsIDMuODczNzYsIDYuMzk2MSwgNy45NzI0MSIsIFwKLSAgICAgICAgICAiMC40MDI0NTYsIDAuNTkxODMzLCAxLjY2NSwgMi42MTE2OCwgMy44NzI2OSwgNi4zOTUxMSwgNy45NzI0MiIsIFwKLSAgICAgICAgICAiMC40MDIwODIsIDAuNTkxNzgyLCAxLjY2NTEyLCAyLjYxMTAyLCAzLjg3MjA0LCA2LjM5NzE1LCA3Ljk3MjIzIiwgXAotICAgICAgICAgICIwLjQwMjEwOCwgMC41OTE5NjIsIDEuNjY1NTksIDIuNjExNjYsIDMuODcyODUsIDYuMzk2MDksIDcuOTcxMiIsIFwKLSAgICAgICAgICAiMC40MDI4MDUsIDAuNTkxNTA4LCAxLjY2NTU3LCAyLjYxMTgxLCAzLjg3MzQyLCA2LjM5NTksIDcuOTcyMjciLCBcCi0gICAgICAgICAgIjAuNDA1ODI1LCAwLjU5MjIzNCwgMS42NjUyMywgMi42MTExMywgMy44NzE5NSwgNi4zOTYxOCwgNy45NzE2NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjY3MDg5LCAwLjQwMzAxMiwgMS4xNzE5OCwgMS44NTAzNSwgMi43NTUxNiwgNC41NjQ0LCA1LjY5NDg1IiwgXAotICAgICAgICAgICIwLjI3Njg2NiwgMC40MTI4MDUsIDEuMTgxNjQsIDEuODYwMzMsIDIuNzY0ODMsIDQuNTc0MiwgNS43MDQ3NyIsIFwKLSAgICAgICAgICAiMC4yODg5MDUsIDAuNDI0ODg1LCAxLjE5NCwgMS44NzI3LCAyLjc3NzM0LCA0LjU4NjY2LCA1LjcxNzE0IiwgXAotICAgICAgICAgICIwLjMwMTA3MywgMC40MzY5MzgsIDEuMjA2MTMsIDEuODg0NjYsIDIuNzg5NjQsIDQuNTk4ODEsIDUuNzI5MTEiLCBcCi0gICAgICAgICAgIjAuMzEyNDExLCAwLjQ0ODg4NiwgMS4yMTgzLCAxLjg5NjgzLCAyLjgwMTY5LCA0LjYxMTAyLCA1Ljc0MTMyIiwgXAotICAgICAgICAgICIwLjMzMjEzMiwgMC40NjgyMzcsIDEuMjM3ODEsIDEuOTE2MzEsIDIuODIxMTUsIDQuNjMwNTIsIDUuNzYwODIiLCBcCi0gICAgICAgICAgIjAuMzQ5NDYxLCAwLjQ4NTUyNiwgMS4yNTUxMSwgMS45MzM2LCAyLjgzODE2LCA0LjY0NzU3LCA1Ljc3ODE4Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjU2NjU1NSwgMC44MjU2OTEsIDIuMjk3ODQsIDMuNTk3ODIsIDUuMzMzMDUsIDguODAyMjksIDEwLjk3MDYiLCBcCi0gICAgICAgICAgIjAuNTY2NTIzLCAwLjgyNTcwNSwgMi4yOTgxMiwgMy41OTgwNiwgNS4zMzI5MSwgOC44MDMwMywgMTAuOTcwOSIsIFwKLSAgICAgICAgICAiMC41NjY1MjUsIDAuODI1NzQ3LCAyLjI5ODExLCAzLjU5ODE5LCA1LjMzMjk3LCA4LjgwMjI5LCAxMC45NzA3IiwgXAotICAgICAgICAgICIwLjU2NjUxNSwgMC44MjU2ODQsIDIuMjk3NjgsIDMuNTk4MjQsIDUuMzMzMTQsIDguODAyNzMsIDEwLjk3MDQiLCBcCi0gICAgICAgICAgIjAuNTY2MjY5LCAwLjgyNTY4OCwgMi4yOTgxNCwgMy41OTg0MSwgNS4zMzMwNSwgOC44MDIyMywgMTAuOTcwNSIsIFwKLSAgICAgICAgICAiMC41NjcxMzYsIDAuODI1NiwgMi4yOTgxOSwgMy41OTg0LCA1LjMzMjk1LCA4LjgwMzA1LCAxMC45NzA4IiwgXAotICAgICAgICAgICIwLjU3MDI4NywgMC44MjU2ODYsIDIuMjk3ODYsIDMuNTk4NDksIDUuMzMzMTEsIDguODAyMDcsIDEwLjk3MDciKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjE3NTk0LCAwLjMxNzMxNiwgMC44NzkzOTcsIDEuMzc1MzQsIDIuMDM1NTYsIDMuMzU0NzEsIDQuMTc5MzkiLCBcCi0gICAgICAgICAgIjAuMjI4NjgsIDAuMzI4NDQ2LCAwLjg5MDY0MSwgMS4zODU5NiwgMi4wNDY0OCwgMy4zNjYwNSwgNC4xOTA2NyIsIFwKLSAgICAgICAgICAiMC4yNDE5NDgsIDAuMzQxNzIyLCAwLjkwNDI5OCwgMS4zOTk1NSwgMi4wNjA1LCAzLjM3OTU5LCA0LjIwNDA3IiwgXAotICAgICAgICAgICIwLjI1NTQwMSwgMC4zNTUyNDEsIDAuOTE3NTg4LCAxLjQxMjkxLCAyLjA3MzYyLCAzLjM5MzI1LCA0LjIxNzQzIiwgXAotICAgICAgICAgICIwLjI2ODExMywgMC4zNjg1OTcsIDAuOTMwOTYyLCAxLjQyNjYxLCAyLjA4NzY0LCAzLjQwNjkyLCA0LjIzMTI1IiwgXAotICAgICAgICAgICIwLjI4OTQzMywgMC4zODkwNjgsIDAuOTUyNjQ3LCAxLjQ0Nzc3LCAyLjEwNzksIDMuNDI3OTUsIDQuMjUyNTYiLCBcCi0gICAgICAgICAgIjAuMzA3OTIzLCAwLjQwNzc3NiwgMC45NzEyLCAxLjQ2Njc1LCAyLjEyNzE4LCAzLjQ0NzMsIDQuMjcxNDQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzkwOTM0LCAwLjU4MDA0MSwgMS42NTMyNSwgMi41OTkyNiwgMy44NTk5MywgNi4zODY2OSwgNy45NTkwOCIsIFwKLSAgICAgICAgICAiMC4zOTEwNTUsIDAuNTgwMjA1LCAxLjY1MzIyLCAyLjU5OTMyLCAzLjg2MDc0LCA2LjM4NjYxLCA3Ljk1ODkyIiwgXAotICAgICAgICAgICIwLjM5MDY2MiwgMC41ODA0MjIsIDEuNjUzMSwgMi41OTgyNSwgMy44NjAyNywgNi4zODI5NCwgNy45NTg4MiIsIFwKLSAgICAgICAgICAiMC4zOTA5NjksIDAuNTgwNDg1LCAxLjY1MjYxLCAyLjU5ODcyLCAzLjg2MDIxLCA2LjM4Mzg4LCA3Ljk1ODc2IiwgXAotICAgICAgICAgICIwLjM5MDIyOCwgMC41ODA0NjYsIDEuNjUzMjksIDIuNTk5NjgsIDMuODYwMTIsIDYuMzgyMzksIDcuOTU4OTUiLCBcCi0gICAgICAgICAgIjAuMzkxODU5LCAwLjU3OTg5LCAxLjY1MzI4LCAyLjU5OTIyLCAzLjg1OTc0LCA2LjM4MjY0LCA3Ljk1ODgxIiwgXAotICAgICAgICAgICIwLjM5NTUwMSwgMC41ODA1MzcsIDEuNjUzMTUsIDIuNTk4MjksIDMuODU4OTksIDYuMzgyODcsIDcuOTU3OTIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzOTEsIDAuMDAzOTA5LCAwLjAwMzkwNiwgMC4wMDM5MDMsIDAuMDAzOSwgMC4wMDM4ODksIDAuMDAzODg0IiwgXAotICAgICAgICAgICIwLjAwMzkwMSwgMC4wMDM5LCAwLjAwMzg5OCwgMC4wMDM4OTUsIDAuMDAzODkyLCAwLjAwMzg4MywgMC4wMDM4NzYiLCBcCi0gICAgICAgICAgIjAuMDAzODk3LCAwLjAwMzg5NywgMC4wMDM4OTUsIDAuMDAzODkyLCAwLjAwMzg4OSwgMC4wMDM4OCwgMC4wMDM4NzQiLCBcCi0gICAgICAgICAgIjAuMDAzODk1LCAwLjAwMzg5NSwgMC4wMDM4OTQsIDAuMDAzODkyLCAwLjAwMzg4OCwgMC4wMDM4OCwgMC4wMDM4NzMiLCBcCi0gICAgICAgICAgIjAuMDAzODkzLCAwLjAwMzg5NCwgMC4wMDM4OTQsIDAuMDAzODkxLCAwLjAwMzg4OCwgMC4wMDM4NzgsIDAuMDAzODcxIiwgXAotICAgICAgICAgICIwLjAwMzg5LCAwLjAwMzg5MSwgMC4wMDM4OTMsIDAuMDAzODkxLCAwLjAwMzg4NywgMC4wMDM4NzgsIDAuMDAzODcyIiwgXAotICAgICAgICAgICIwLjAwMzg4OCwgMC4wMDM4OSwgMC4wMDM4OTIsIDAuMDAzODksIDAuMDAzODg2LCAwLjAwMzg3NiwgMC4wMDM4NjkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDE1NywgMC4wMDE1NjksIDAuMDAxNTY4LCAwLjAwMTU2NywgMC4wMDE1NjUsIDAuMDAxNTYxLCAwLjAwMTU1OSIsIFwKLSAgICAgICAgICAiMC4wMDE1NTEsIDAuMDAxNTUxLCAwLjAwMTU1LCAwLjAwMTU0OCwgMC4wMDE1NDcsIDAuMDAxNTQzLCAwLjAwMTU0MSIsIFwKLSAgICAgICAgICAiMC4wMDE1NDQsIDAuMDAxNTQ1LCAwLjAwMTU0NCwgMC4wMDE1NDQsIDAuMDAxNTQyLCAwLjAwMTUzNywgMC4wMDE1MzQiLCBcCi0gICAgICAgICAgIjAuMDAxNTQxLCAwLjAwMTU0MSwgMC4wMDE1NDIsIDAuMDAxNTQxLCAwLjAwMTUzOSwgMC4wMDE1MzUsIDAuMDAxNTMzIiwgXAotICAgICAgICAgICIwLjAwMTUzOSwgMC4wMDE1NCwgMC4wMDE1NDEsIDAuMDAxNTQsIDAuMDAxNTM4LCAwLjAwMTUzNCwgMC4wMDE1MzIiLCBcCi0gICAgICAgICAgIjAuMDAxNTM1LCAwLjAwMTUzOCwgMC4wMDE1MzksIDAuMDAxNTM4LCAwLjAwMTUzOCwgMC4wMDE1MzQsIDAuMDAxNTMxIiwgXAotICAgICAgICAgICIwLjAwMTUzMywgMC4wMDE1MzUsIDAuMDAxNTM4LCAwLjAwMTUzOCwgMC4wMDE1MzcsIDAuMDAxNTMzLCAwLjAwMTUzMSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkExIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDM2NjcsIDAuMDAzNjY2LCAwLjAwMzY2MywgMC4wMDM2NjEsIDAuMDAzNjU2LCAwLjAwMzY0OCwgMC4wMDM2NDIiLCBcCi0gICAgICAgICAgIjAuMDAzNjU3LCAwLjAwMzY1NywgMC4wMDM2NTUsIDAuMDAzNjUzLCAwLjAwMzY0OSwgMC4wMDM2MzksIDAuMDAzNjMzIiwgXAotICAgICAgICAgICIwLjAwMzY1MywgMC4wMDM2NTQsIDAuMDAzNjUyLCAwLjAwMzY1LCAwLjAwMzY0NywgMC4wMDM2NCwgMC4wMDM2MyIsIFwKLSAgICAgICAgICAiMC4wMDM2NTEsIDAuMDAzNjUyLCAwLjAwMzY1MSwgMC4wMDM2NDksIDAuMDAzNjQ1LCAwLjAwMzYzNiwgMC4wMDM2MjkiLCBcCi0gICAgICAgICAgIjAuMDAzNjUsIDAuMDAzNjUxLCAwLjAwMzY1LCAwLjAwMzY0NywgMC4wMDM2NDYsIDAuMDAzNjM2LCAwLjAwMzYyOSIsIFwKLSAgICAgICAgICAiMC4wMDM2NDcsIDAuMDAzNjQ4LCAwLjAwMzY0OSwgMC4wMDM2NDgsIDAuMDAzNjQzLCAwLjAwMzYzNSwgMC4wMDM2MjYiLCBcCi0gICAgICAgICAgIjAuMDAzNjQ1LCAwLjAwMzY0NiwgMC4wMDM2NDgsIDAuMDAzNjQ3LCAwLjAwMzY0MywgMC4wMDM2MzcsIDAuMDAzNjI4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxMjk1LCAwLjAwMTI5NSwgMC4wMDEyOTQsIDAuMDAxMjkzLCAwLjAwMTI5MSwgMC4wMDEyODksIDAuMDAxMjg3IiwgXAotICAgICAgICAgICIwLjAwMTI5MiwgMC4wMDEyOTMsIDAuMDAxMjkzLCAwLjAwMTI5MiwgMC4wMDEyOTMsIDAuMDAxMjg4LCAwLjAwMTI4NiIsIFwKLSAgICAgICAgICAiMC4wMDEyODgsIDAuMDAxMjksIDAuMDAxMjkyLCAwLjAwMTI5MSwgMC4wMDEyOTEsIDAuMDAxMjg4LCAwLjAwMTI4NSIsIFwKLSAgICAgICAgICAiMC4wMDEyODMsIDAuMDAxMjg3LCAwLjAwMTI5MSwgMC4wMDEyOTEsIDAuMDAxMjksIDAuMDAxMjg4LCAwLjAwMTI4NSIsIFwKLSAgICAgICAgICAiMC4wMDEyOCwgMC4wMDEyODQsIDAuMDAxMjg5LCAwLjAwMTI5LCAwLjAwMTI5LCAwLjAwMTI4NywgMC4wMDEyODUiLCBcCi0gICAgICAgICAgIjAuMDAxMjc0LCAwLjAwMTI3OSwgMC4wMDEyODgsIDAuMDAxMjg5LCAwLjAwMTI4OCwgMC4wMDEyODYsIDAuMDAxMjg1IiwgXAotICAgICAgICAgICIwLjAwMTI2OSwgMC4wMDEyNzYsIDAuMDAxMjg2LCAwLjAwMTI4NywgMC4wMDEyODcsIDAuMDAxMjg2LCAwLjAwMTI4NCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEyIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDM0MSwgMC4wMDM0MSwgMC4wMDM0MDcsIDAuMDAzNDA0LCAwLjAwMzM5OSwgMC4wMDMzOSwgMC4wMDMzODQiLCBcCi0gICAgICAgICAgIjAuMDAzNCwgMC4wMDM0LCAwLjAwMzM5OCwgMC4wMDMzOTYsIDAuMDAzMzkyLCAwLjAwMzM4MywgMC4wMDMzNzYiLCBcCi0gICAgICAgICAgIjAuMDAzMzk0LCAwLjAwMzM5NSwgMC4wMDMzOTUsIDAuMDAzMzkzLCAwLjAwMzM4OCwgMC4wMDMzOCwgMC4wMDMzNzQiLCBcCi0gICAgICAgICAgIjAuMDAzMzksIDAuMDAzMzkyLCAwLjAwMzM5MywgMC4wMDMzOTIsIDAuMDAzMzg3LCAwLjAwMzM4LCAwLjAwMzM3MyIsIFwKLSAgICAgICAgICAiMC4wMDMzODcsIDAuMDAzMzksIDAuMDAzMzkyLCAwLjAwMzM5LCAwLjAwMzM4NiwgMC4wMDMzNzgsIDAuMDAzMzcxIiwgXAotICAgICAgICAgICIwLjAwMzM4MywgMC4wMDMzODYsIDAuMDAzMzksIDAuMDAzMzg5LCAwLjAwMzM4NiwgMC4wMDMzNzcsIDAuMDAzMzY5IiwgXAotICAgICAgICAgICIwLjAwMzM4LCAwLjAwMzM4MSwgMC4wMDMzODksIDAuMDAzMzg4LCAwLjAwMzM4NiwgMC4wMDMzNzcsIDAuMDAzMzY4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwOTYyLCAwLjAwMDk2MiwgMC4wMDA5NjMsIDAuMDAwOTYyLCAwLjAwMDk1NiwgMC4wMDA5NTksIDAuMDAwOTU4IiwgXAotICAgICAgICAgICIwLjAwMDk3NCwgMC4wMDA5NzcsIDAuMDAwOTgsIDAuMDAwOTgsIDAuMDAwOTc5LCAwLjAwMDk3OCwgMC4wMDA5NzciLCBcCi0gICAgICAgICAgIjAuMDAwOTcyLCAwLjAwMDk3NywgMC4wMDA5ODMsIDAuMDAwOTgzLCAwLjAwMDk4MywgMC4wMDA5ODIsIDAuMDAwOTgxIiwgXAotICAgICAgICAgICIwLjAwMDk2OCwgMC4wMDA5NzQsIDAuMDAwOTgzLCAwLjAwMDk4NSwgMC4wMDA5ODUsIDAuMDAwOTg0LCAwLjAwMDk4MyIsIFwKLSAgICAgICAgICAiMC4wMDA5NjMsIDAuMDAwOTcsIDAuMDAwOTgyLCAwLjAwMDk4NCwgMC4wMDA5ODUsIDAuMDAwOTg0LCAwLjAwMDk4MyIsIFwKLSAgICAgICAgICAiMC4wMDA5NTUsIDAuMDAwOTY0LCAwLjAwMDk4LCAwLjAwMDk4MywgMC4wMDA5ODQsIDAuMDAwOTg0LCAwLjAwMDk4MyIsIFwKLSAgICAgICAgICAiMC4wMDA5NDcsIDAuMDAwOTU4LCAwLjAwMDk3NywgMC4wMDA5ODEsIDAuMDAwOTgzLCAwLjAwMDk4MywgMC4wMDA5ODMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyNzUyLCAwLjAwMjc1MiwgMC4wMDI3NTIsIDAuMDAyNzUyLCAwLjAwMjc1MiwgMC4wMDI3NTMsIDAuMDAyNzUxIiwgXAotICAgICAgICAgICIwLjAwMjc1NSwgMC4wMDI3NTcsIDAuMDAyNzU5LCAwLjAwMjc1OSwgMC4wMDI3NiwgMC4wMDI3NiwgMC4wMDI3NTkiLCBcCi0gICAgICAgICAgIjAuMDAyNzUzLCAwLjAwMjc1NiwgMC4wMDI3NiwgMC4wMDI3NjIsIDAuMDAyNzYyLCAwLjAwMjc2MiwgMC4wMDI3NjEiLCBcCi0gICAgICAgICAgIjAuMDAyNzUsIDAuMDAyNzU0LCAwLjAwMjc2LCAwLjAwMjc2MSwgMC4wMDI3NjIsIDAuMDAyNzYyLCAwLjAwMjc2MSIsIFwKLSAgICAgICAgICAiMC4wMDI3NDYsIDAuMDAyNzUxLCAwLjAwMjc1OSwgMC4wMDI3NjEsIDAuMDAyNzYyLCAwLjAwMjc2MiwgMC4wMDI3NjEiLCBcCi0gICAgICAgICAgIjAuMDAyNzM5LCAwLjAwMjc0OCwgMC4wMDI3NTgsIDAuMDAyNzYsIDAuMDAyNzYxLCAwLjAwMjc2MiwgMC4wMDI3NjEiLCBcCi0gICAgICAgICAgIjAuMDAyNzM3LCAwLjAwMjc0NSwgMC4wMDI3NTYsIDAuMDAyNzU5LCAwLjAwMjc2LCAwLjAwMjc2MSwgMC4wMDI3NjEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDE1NzEsIDAuMDAxNTcxLCAwLjAwMTU2OSwgMC4wMDE1NywgMC4wMDE1NjYsIDAuMDAxNTYyLCAwLjAwMTU2IiwgXAotICAgICAgICAgICIwLjAwMTU1MSwgMC4wMDE1NTEsIDAuMDAxNTQ5LCAwLjAwMTU0OSwgMC4wMDE1NDksIDAuMDAxNTQzLCAwLjAwMTU0IiwgXAotICAgICAgICAgICIwLjAwMTU0MywgMC4wMDE1NDUsIDAuMDAxNTQ0LCAwLjAwMTU0MywgMC4wMDE1NDIsIDAuMDAxNTM4LCAwLjAwMTUzNSIsIFwKLSAgICAgICAgICAiMC4wMDE1NCwgMC4wMDE1NDEsIDAuMDAxNTQyLCAwLjAwMTU0MSwgMC4wMDE1NCwgMC4wMDE1MzYsIDAuMDAxNTMzIiwgXAotICAgICAgICAgICIwLjAwMTUzNSwgMC4wMDE1MzgsIDAuMDAxNTM5LCAwLjAwMTUzOSwgMC4wMDE1MzgsIDAuMDAxNTM0LCAwLjAwMTUzMiIsIFwKLSAgICAgICAgICAiMC4wMDE1MzQsIDAuMDAxNTMsIDAuMDAxNTM4LCAwLjAwMTUzOCwgMC4wMDE1MzcsIDAuMDAxNTMzLCAwLjAwMTUzMSIsIFwKLSAgICAgICAgICAiMC4wMDE1MzIsIDAuMDAxNTM0LCAwLjAwMTUzOCwgMC4wMDE1MzcsIDAuMDAxNTM2LCAwLjAwMTUzMywgMC4wMDE1MyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIxIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI1MDksIDAuMDAyNTA5LCAwLjAwMjUwOSwgMC4wMDI1MSwgMC4wMDI1MSwgMC4wMDI1MDksIDAuMDAyNTA4IiwgXAotICAgICAgICAgICIwLjAwMjUxMywgMC4wMDI1MTQsIDAuMDAyNTE2LCAwLjAwMjUxNywgMC4wMDI1MTcsIDAuMDAyNTE2LCAwLjAwMjUxNiIsIFwKLSAgICAgICAgICAiMC4wMDI1MSwgMC4wMDI1MTMsIDAuMDAyNTE3LCAwLjAwMjUxOCwgMC4wMDI1MTksIDAuMDAyNTE4LCAwLjAwMjUxOCIsIFwKLSAgICAgICAgICAiMC4wMDI1MDYsIDAuMDAyNTExLCAwLjAwMjUxNywgMC4wMDI1MTgsIDAuMDAyNTE4LCAwLjAwMjUxOSwgMC4wMDI1MTgiLCBcCi0gICAgICAgICAgIjAuMDAyNTAzLCAwLjAwMjUwOCwgMC4wMDI1MTYsIDAuMDAyNTE4LCAwLjAwMjUxOSwgMC4wMDI1MTksIDAuMDAyNTE4IiwgXAotICAgICAgICAgICIwLjAwMjQ5OSwgMC4wMDI1MDUsIDAuMDAyNTE1LCAwLjAwMjUxNywgMC4wMDI1MTgsIDAuMDAyNTE5LCAwLjAwMjUxOCIsIFwKLSAgICAgICAgICAiMC4wMDI0OTUsIDAuMDAyNTAxLCAwLjAwMjUxMywgMC4wMDI1MTYsIDAuMDAyNTE4LCAwLjAwMjUxOSwgMC4wMDI1MTgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDEyOTYsIDAuMDAxMjk2LCAwLjAwMTI5NSwgMC4wMDEyOTQsIDAuMDAxMjk0LCAwLjAwMTI4OSwgMC4wMDEyODciLCBcCi0gICAgICAgICAgIjAuMDAxMjkzLCAwLjAwMTI5NCwgMC4wMDEyOTQsIDAuMDAxMjk0LCAwLjAwMTI5MywgMC4wMDEyOSwgMC4wMDEyODgiLCBcCi0gICAgICAgICAgIjAuMDAxMjg4LCAwLjAwMTI5LCAwLjAwMTI5MywgMC4wMDEyOTMsIDAuMDAxMjkyLCAwLjAwMTI4OCwgMC4wMDEyODYiLCBcCi0gICAgICAgICAgIjAuMDAxMjgzLCAwLjAwMTI4NywgMC4wMDEyOTIsIDAuMDAxMjkyLCAwLjAwMTI5MSwgMC4wMDEyODgsIDAuMDAxMjg3IiwgXAotICAgICAgICAgICIwLjAwMTI3OCwgMC4wMDEyODMsIDAuMDAxMjg5LCAwLjAwMTI5MSwgMC4wMDEyOTEsIDAuMDAxMjg4LCAwLjAwMTI4NiIsIFwKLSAgICAgICAgICAiMC4wMDEyNzQsIDAuMDAxMjc3LCAwLjAwMTI4OCwgMC4wMDEyODksIDAuMDAxMjg5LCAwLjAwMTI4NywgMC4wMDEyODYiLCBcCi0gICAgICAgICAgIjAuMDAxMjcxLCAwLjAwMTI3NywgMC4wMDEyODcsIDAuMDAxMjg4LCAwLjAwMTI4OSwgMC4wMDEyODcsIDAuMDAxMjg1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjIiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjI1MywgMC4wMDIyNTMsIDAuMDAyMjU1LCAwLjAwMjI1NCwgMC4wMDIyNTQsIDAuMDAyMjU0LCAwLjAwMjI1MyIsIFwKLSAgICAgICAgICAiMC4wMDIyNTQsIDAuMDAyMjU3LCAwLjAwMjI2LCAwLjAwMjI2MSwgMC4wMDIyNjEsIDAuMDAyMjYxLCAwLjAwMjI2IiwgXAotICAgICAgICAgICIwLjAwMjI1LCAwLjAwMjI1NCwgMC4wMDIyNjEsIDAuMDAyMjYyLCAwLjAwMjI2MiwgMC4wMDIyNjQsIDAuMDAyMjYyIiwgXAotICAgICAgICAgICIwLjAwMjI0NSwgMC4wMDIyNTEsIDAuMDAyMjYsIDAuMDAyMjYyLCAwLjAwMjI2MiwgMC4wMDIyNjMsIDAuMDAyMjYzIiwgXAotICAgICAgICAgICIwLjAwMjIzOCwgMC4wMDIyNDgsIDAuMDAyMjU5LCAwLjAwMjI2MSwgMC4wMDIyNjIsIDAuMDAyMjYzLCAwLjAwMjI2MiIsIFwKLSAgICAgICAgICAiMC4wMDIyMzQsIDAuMDAyMjQzLCAwLjAwMjI1NywgMC4wMDIyNiwgMC4wMDIyNjEsIDAuMDAyMjYzLCAwLjAwMjI2MiIsIFwKLSAgICAgICAgICAiMC4wMDIyMjksIDAuMDAyMjM5LCAwLjAwMjI1NSwgMC4wMDIyNTgsIDAuMDAyMjYxLCAwLjAwMjI2MywgMC4wMDIyNjIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDA5NjUsIDAuMDAwOTY2LCAwLjAwMDk2NiwgMC4wMDA5NjYsIDAuMDAwOTY0LCAwLjAwMDk2MywgMC4wMDA5NjIiLCBcCi0gICAgICAgICAgIjAuMDAwOTc3LCAwLjAwMDk3OSwgMC4wMDA5ODMsIDAuMDAwOTgzLCAwLjAwMDk4MiwgMC4wMDA5ODEsIDAuMDAwOTgiLCBcCi0gICAgICAgICAgIjAuMDAwOTc0LCAwLjAwMDk3OSwgMC4wMDA5ODYsIDAuMDAwOTg3LCAwLjAwMDk4NywgMC4wMDA5ODYsIDAuMDAwOTg0IiwgXAotICAgICAgICAgICIwLjAwMDk2OSwgMC4wMDA5NzYsIDAuMDAwOTg2LCAwLjAwMDk4OCwgMC4wMDA5ODgsIDAuMDAwOTg3LCAwLjAwMDk4NiIsIFwKLSAgICAgICAgICAiMC4wMDA5NjIsIDAuMDAwOTcyLCAwLjAwMDk4NSwgMC4wMDA5ODcsIDAuMDAwOTg4LCAwLjAwMDk4NywgMC4wMDA5ODYiLCBcCi0gICAgICAgICAgIjAuMDAwOTU2LCAwLjAwMDk2NCwgMC4wMDA5ODMsIDAuMDAwOTg2LCAwLjAwMDk4NywgMC4wMDA5ODcsIDAuMDAwOTg2IiwgXAotICAgICAgICAgICIwLjAwMDk1LCAwLjAwMDk2MSwgMC4wMDA5ODEsIDAuMDAwOTg1LCAwLjAwMDk4NiwgMC4wMDA5ODcsIDAuMDAwOTg2Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogT0FJMzNYMiAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChPQUkzM1gyKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMjczNjExOwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxODcxMzY7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxODYzNDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE4NzEzNjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA2MTQsIDAuMDAwNjEzLCAwLjAwMDYxMywgMC4wMDA2MTMsIDAuMDAwNjEzLCAwLjAwMDYxMywgMC4wMDA2MTMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA2MTUsIDAuMDAwNjE1LCAwLjAwMDYxNSwgMC4wMDA2MTUsIDAuMDAwNjE2LCAwLjAwMDYxNiwgMC4wMDA2MTYiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEExKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE5Njg4NzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE5NjQ0OTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE5Njg4NzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA2MTQsIDAuMDAwNjEzLCAwLjAwMDYxMywgMC4wMDA2MTMsIDAuMDAwNjEzLCAwLjAwMDYxMywgMC4wMDA2MTMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA2MTUsIDAuMDAwNjE1LCAwLjAwMDYxNSwgMC4wMDA2MTYsIDAuMDAwNjE2LCAwLjAwMDYxNiwgMC4wMDA2MTUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEEyKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE4Njc5NzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE4Njc5NzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE4NjA5NDsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA2MTQsIDAuMDAwNjE0LCAwLjAwMDYxNCwgMC4wMDA2MTQsIDAuMDAwNjE0LCAwLjAwMDYxNCwgMC4wMDA2MTMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA2MTUsIDAuMDAwNjE1LCAwLjAwMDYxNSwgMC4wMDA2MTQsIDAuMDAwNjE1LCAwLjAwMDYxNSwgMC4wMDA2MTUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE4OTUxNzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE4ODEzOTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE4OTUxNzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDE2ODgsIDAuMDAxNjg3LCAwLjAwMTY4NiwgMC4wMDE2ODcsIDAuMDAxNjg2LCAwLjAwMTY4NiwgMC4wMDE2ODYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA2OTUsIDAuMDAwNjk2LCAwLjAwMDY5NiwgMC4wMDA2OTYsIDAuMDAwNjk2LCAwLjAwMDY5NiwgMC4wMDA2OTYiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIxKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDIwNzA3ODsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDIwNTkzMTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDIwNzA3ODsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDE2ODcsIDAuMDAxNjg3LCAwLjAwMTY4NSwgMC4wMDE2ODUsIDAuMDAxNjg2LCAwLjAwMTY4NiwgMC4wMDE2ODUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA2OTUsIDAuMDAwNjk2LCAwLjAwMDY5NSwgMC4wMDA2OTYsIDAuMDAwNjk2LCAwLjAwMDY5NiwgMC4wMDA2OTYiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIyKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE5NjgwNjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE5NjgwNjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE5Njc2NDsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDE2ODcsIDAuMDAxNjg2LCAwLjAwMTY4NywgMC4wMDE2ODcsIDAuMDAxNjg1LCAwLjAwMTY4NiwgMC4wMDE2ODUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA2OTUsIDAuMDAwNjk1LCAwLjAwMDY5NSwgMC4wMDA2OTUsIDAuMDAwNjk1LCAwLjAwMDY5NSwgMC4wMDA2OTYiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4wOTA2NDQ5OwotICAgIGZ1bmN0aW9uIDogIighKCgoQjArQjEpK0IyKSAoKEEwK0ExKStBMikpKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTAiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIxNjE0NSwgMC43NjYwNCwgMS4yMDM2NSwgMS43NTA2NywgMi4yOTc1NiwgMi44NDMzNywgMy4zOTAxNCIsIFwKLSAgICAgICAgICAiMC4yMjc1NjEsIDAuNzc3NTMyLCAxLjIxNTQ1LCAxLjc2MTY4LCAyLjMwODcxLCAyLjg1NDg0LCAzLjQwMTQ2IiwgXAotICAgICAgICAgICIwLjI0MDQxNSwgMC43OTAyNjcsIDEuMjI3OTcsIDEuNzc0NiwgMi4zMjIwNCwgMi44NjgsIDMuNDE0MzkiLCBcCi0gICAgICAgICAgIjAuMjUyMjQ0LCAwLjgwMjMzMiwgMS4yNDAyNSwgMS43ODY2LCAyLjMzMzU1LCAyLjg3OTc2LCAzLjQyNjQiLCBcCi0gICAgICAgICAgIjAuMjYzNTA3LCAwLjgxMzc1MSwgMS4yNTE3MSwgMS43OTg0NSwgMi4zNDU0MiwgMi44OTEzMiwgMy40Mzc3NiIsIFwKLSAgICAgICAgICAiMC4yODA4NjcsIDAuODMxMTA5LCAxLjI2ODkzLCAxLjgxNTYxLCAyLjM2MywgMi45MDg3NywgMy40NTUzNCIsIFwKLSAgICAgICAgICAiMC4yOTU3MSwgMC44NDU5NzEsIDEuMjgzNzUsIDEuODMwODgsIDIuMzc3NTYsIDIuOTIzOTEsIDMuNDcwMjUiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzkxNjk0LCAxLjQ0MDc3LCAyLjI4MTIyLCAzLjMzMTg1LCA0LjM4MjE2LCA1LjQzMzEyLCA2LjQ4NDI0IiwgXAotICAgICAgICAgICIwLjM5MTY4OCwgMS40NDA2MiwgMi4yODEwNCwgMy4zMzE3NiwgNC4zODE5NiwgNS40MzMxMSwgNi40ODQwMiIsIFwKLSAgICAgICAgICAiMC4zOTE2OTEsIDEuNDQwNTksIDIuMjgwODIsIDMuMzMxNzMsIDQuMzgxODUsIDUuNDMyNTYsIDYuNDgzNDUiLCBcCi0gICAgICAgICAgIjAuMzkxNjcsIDEuNDQwNzMsIDIuMjgxMjYsIDMuMzMxODIsIDQuMzgxNTYsIDUuNDMyOTcsIDYuNDg0MTciLCBcCi0gICAgICAgICAgIjAuMzkxNjY3LCAxLjQ0MDc4LCAyLjI4MDg2LCAzLjMzMTY4LCA0LjM4MjE1LCA1LjQzMzMyLCA2LjQ4MzQ2IiwgXAotICAgICAgICAgICIwLjM5MjM3MSwgMS40NDA2MSwgMi4yODExOCwgMy4zMzE3OCwgNC4zODIxMywgNS40MzMzMywgNi40ODQwOCIsIFwKLSAgICAgICAgICAiMC4zOTM5NzYsIDEuNDQwNzQsIDIuMjgwODksIDMuMzMxODMsIDQuMzgxODksIDUuNDMzNDMsIDYuNDgzNjUiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTg1MzE3LCAwLjYwMjY1NSwgMC45MzM1NTksIDEuMzQ2NzEsIDEuNzU5NTMsIDIuMTcyMTYsIDIuNTg0NDMiLCBcCi0gICAgICAgICAgIjAuMTk3MDQ1LCAwLjYxNDI4LCAwLjk0NTE2NSwgMS4zNTg0MywgMS43NzA2OCwgMi4xODM2MywgMi41OTUyNCIsIFwKLSAgICAgICAgICAiMC4yMTIxNzMsIDAuNjI5NTgyLCAwLjk2MDU4NiwgMS4zNzM1OSwgMS43ODY1OCwgMi4xOTg4MywgMi42MTEwMiIsIFwKLSAgICAgICAgICAiMC4yMjY5OTcsIDAuNjQ0MzkyLCAwLjk3NTI1OSwgMS4zODg2MSwgMS44MDA1MSwgMi4yMTI5OSwgMi42MjYyNyIsIFwKLSAgICAgICAgICAiMC4yNDEzOSwgMC42NTg3NzMsIDAuOTg5OTY1LCAxLjQwMjQ5LCAxLjgxNTYzLCAyLjIyNzk5LCAyLjY0MDk1IiwgXAotICAgICAgICAgICIwLjI2MzY0OCwgMC42ODExNTMsIDEuMDEyMjYsIDEuNDI0ODMsIDEuODM3NjksIDIuMjQ5ODUsIDIuNjYzMjMiLCBcCi0gICAgICAgICAgIjAuMjgzMTM5LCAwLjcwMDY5MSwgMS4wMzE2MywgMS40NDQ3NCwgMS44NTc2OSwgMi4yNzAyMiwgMi42ODI5MiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yNjY0NDUsIDEuMDU2MzQsIDEuNjg2NjYsIDIuNDczNSwgMy4yNjE3NCwgNC4wNDg0MywgNC44MzQwOSIsIFwKLSAgICAgICAgICAiMC4yNjY0NDEsIDEuMDU2MzMsIDEuNjg2MywgMi40NzM2NSwgMy4yNjA5LCA0LjA0ODY5LCA0LjgzNDgiLCBcCi0gICAgICAgICAgIjAuMjY2NDM3LCAxLjA1NjI3LCAxLjY4NjI1LCAyLjQ3Mzc4LCAzLjI2MTMyLCA0LjA0NzI1LCA0LjgzNCIsIFwKLSAgICAgICAgICAiMC4yNjY0MzUsIDEuMDU2MDMsIDEuNjg2MywgMi40NzM0NiwgMy4yNjEzMiwgNC4wNDc1NywgNC44MzQwNCIsIFwKLSAgICAgICAgICAiMC4yNjY0MTcsIDEuMDU2MjMsIDEuNjg2MzcsIDIuNDczNDgsIDMuMjYwNDYsIDQuMDQ3MTYsIDQuODM1MTUiLCBcCi0gICAgICAgICAgIjAuMjY2NjA0LCAxLjA1NjAyLCAxLjY4NjMsIDIuNDcyODMsIDMuMjYwNjMsIDQuMDQ3OTEsIDQuODM1MjEiLCBcCi0gICAgICAgICAgIjAuMjY3ODQsIDEuMDU2MDYsIDEuNjg2MjgsIDIuNDc0MzksIDMuMjYwNDksIDQuMDQ5MzQsIDQuODM1MjYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIwOTAxMiwgMC43NTg3NjksIDEuMTk2NjUsIDEuNzQzMjIsIDIuMjkwNzksIDIuODM2NDgsIDMuMzgyNzkiLCBcCi0gICAgICAgICAgIjAuMjE5NDI4LCAwLjc2OTIxNCwgMS4yMDY4OSwgMS43NTQyMSwgMi4zMDA5OCwgMi44NDY5LCAzLjM5MzI2IiwgXAotICAgICAgICAgICIwLjIzMTg5NiwgMC43ODE5NTgsIDEuMjE5ODksIDEuNzY2MTMsIDIuMzEzMTgsIDIuODU5NDQsIDMuNDA1OTEiLCBcCi0gICAgICAgICAgIjAuMjQzOTUzLCAwLjc5Mzg4NywgMS4yMzE5NSwgMS43NzgzNSwgMi4zMjUyNCwgMi44NzE0MiwgMy40MTgwNSIsIFwKLSAgICAgICAgICAiMC4yNTU3NjgsIDAuODA1ODcxLCAxLjI0MzU4LCAxLjc5MDcxLCAyLjMzNzYsIDIuODgzNiwgMy40Mjk5NCIsIFwKLSAgICAgICAgICAiMC4yNzQ0ODksIDAuODI0NzUsIDEuMjYyNDIsIDEuODA5NTksIDIuMzU2NSwgMi45MDIyNywgMy40NDkwNCIsIFwKLSAgICAgICAgICAiMC4yOTA4MTksIDAuODQxMjIsIDEuMjc5MDEsIDEuODI1OTksIDIuMzczMDksIDIuOTE5MjIsIDMuNDY1NDciKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzkxNjcyLCAxLjQ0MDUxLCAyLjI4MTE1LCAzLjMzMTY5LCA0LjM4MTk0LCA1LjQzMzY1LCA2LjQ4MzkzIiwgXAotICAgICAgICAgICIwLjM5MTY5MywgMS40NDA3MiwgMi4yODA4NywgMy4zMzE2OSwgNC4zODIxMywgNS40MzI0NiwgNi40ODQxMiIsIFwKLSAgICAgICAgICAiMC4zOTE2ODgsIDEuNDQwNjMsIDIuMjgxMDMsIDMuMzMxNzYsIDQuMzgyNTYsIDUuNDMzNDIsIDYuNDg0MDMiLCBcCi0gICAgICAgICAgIjAuMzkxNjQ3LCAxLjQ0MDcxLCAyLjI4MDg0LCAzLjMzMTc3LCA0LjM4MTgsIDUuNDMyMTcsIDYuNDgzMjgiLCBcCi0gICAgICAgICAgIjAuMzkxNjk4LCAxLjQ0MDYxLCAyLjI4MDksIDMuMzMxODEsIDQuMzgyNTMsIDUuNDMyMDksIDYuNDg0MTEiLCBcCi0gICAgICAgICAgIjAuMzkzMTcsIDEuNDQwNzMsIDIuMjgxMTUsIDMuMzMxNywgNC4zODE1NiwgNS40MzI2MiwgNi40ODQyIiwgXAotICAgICAgICAgICIwLjM5NTc5OCwgMS40NDA1LCAyLjI4MDkyLCAzLjMzMTY3LCA0LjM4MjE2LCA1LjQzMzY1LCA2LjQ4Mzc4Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE3NDY1MSwgMC41ODg0NjYsIDAuOTE3NDY4LCAxLjMyODQsIDEuNzM5MjYsIDIuMTUwNSwgMi41NTk4OSIsIFwKLSAgICAgICAgICAiMC4xODY3NDksIDAuNjAwNzk5LCAwLjkzMDA1MiwgMS4zNDEwMywgMS43NTE2NiwgMi4xNjIyNCwgMi41NzMyNCIsIFwKLSAgICAgICAgICAiMC4yMDE5NTIsIDAuNjE2MDYyLCAwLjk0NTE4OSwgMS4zNTYyMSwgMS43NjYzOSwgMi4xNzc5OSwgMi41ODgxNCIsIFwKLSAgICAgICAgICAiMC4yMTY3MjMsIDAuNjMwOTcyLCAwLjk2MDExNiwgMS4zNzExMiwgMS43ODE3NywgMi4xOTE4MywgMi42MDMzMyIsIFwKLSAgICAgICAgICAiMC4yMzEwNzUsIDAuNjQ1NDQ3LCAwLjk3NDM2NiwgMS4zODU3MywgMS43OTY2NCwgMi4yMDY5NywgMi42MTczOSIsIFwKLSAgICAgICAgICAiMC4yNTMyMDUsIDAuNjY3ODkxLCAwLjk5NjY3NSwgMS40MDgyMywgMS44MTg5NiwgMi4yMjk4OSwgMi42NDA2MSIsIFwKLSAgICAgICAgICAiMC4yNzI1NjcsIDAuNjg3MTAxLCAxLjAxNjI2LCAxLjQyNzI5LCAxLjgzODM2LCAyLjI0ODg3LCAyLjY1OTc3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI1NDE3OCwgMS4wMzkyNywgMS42NjY5NCwgMi40NTA2MSwgMy4yMzU1MywgNC4wMTc3MSwgNC44MDE0IiwgXAotICAgICAgICAgICIwLjI1NDExNCwgMS4wMzk3NSwgMS42NjY3OCwgMi40NTA4NywgMy4yMzQwMywgNC4wMTk0NCwgNC44MDIzOCIsIFwKLSAgICAgICAgICAiMC4yNTQxNDYsIDEuMDM5ODQsIDEuNjY3MSwgMi40NTA1MiwgMy4yMzQ0NiwgNC4wMTg1NywgNC44MDA3MiIsIFwKLSAgICAgICAgICAiMC4yNTQxMTcsIDEuMDM5NzQsIDEuNjY3MDcsIDIuNDUwNTEsIDMuMjMzODcsIDQuMDIxODksIDQuODAxOTkiLCBcCi0gICAgICAgICAgIjAuMjUzOTkxLCAxLjAzOTg3LCAxLjY2NjgzLCAyLjQ1MTUsIDMuMjM0OTIsIDQuMDE3MzYsIDQuODAwNTMiLCBcCi0gICAgICAgICAgIjAuMjU0NDI0LCAxLjAzOTU0LCAxLjY2Njc4LCAyLjQ1MTY1LCAzLjIzNDAyLCA0LjAxODE4LCA0LjgwMjExIiwgXAotICAgICAgICAgICIwLjI1NTk3MSwgMS4wMzk3OCwgMS42NjY5OSwgMi40NTE0MSwgMy4yMzQ5MSwgNC4wMTczMiwgNC44MDE4NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTkyNTQ5LCAwLjc0MjMwNywgMS4xODA0MywgMS43MjY5OSwgMi4yNzQzNiwgMi44MjAxLCAzLjM2NjY0IiwgXAotICAgICAgICAgICIwLjIwMTkzMSwgMC43NTE5MDUsIDEuMTg5ODEsIDEuNzM2MzYsIDIuMjgzOTIsIDIuODI5NTUsIDMuMzc2MDIiLCBcCi0gICAgICAgICAgIjAuMjEzOTM0LCAwLjc2NDExMiwgMS4yMDIwNSwgMS43NDgzNiwgMi4yOTQ4OCwgMi44NDE0NCwgMy4zODgxMSIsIFwKLSAgICAgICAgICAiMC4yMjU0MzQsIDAuNzc2MjUzLCAxLjIxMzc4LCAxLjc2MTEzLCAyLjMwNzQ3LCAyLjg1MzU1LCAzLjQwMDI5IiwgXAotICAgICAgICAgICIwLjIzNzkxMSwgMC43ODgyMDIsIDEuMjI1ODgsIDEuNzcyNTYsIDIuMzE5MjksIDIuODY1NywgMy40MTI1IiwgXAotICAgICAgICAgICIwLjI1NzE3OCwgMC44MDc0NzQsIDEuMjQ1NjUsIDEuNzkyNiwgMi4zMzg1NiwgMi44ODUwOCwgMy40MzE5MSIsIFwKLSAgICAgICAgICAiMC4yNzQzODgsIDAuODI0NjExLCAxLjI2MjYsIDEuODA5MTcsIDIuMzU1OTQsIDIuOTAyNjMsIDMuNDQ5MDkiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzkxNywgMS40NDA3NCwgMi4yODExNSwgMy4zMzE4LCA0LjM4MjQ1LCA1LjQzMzQ1LCA2LjQ4MzMiLCBcCi0gICAgICAgICAgIjAuMzkxNzExLCAxLjQ0MDYxLCAyLjI4MTI0LCAzLjMzMTc2LCA0LjM4MTg5LCA1LjQzMzI4LCA2LjQ4NDA5IiwgXAotICAgICAgICAgICIwLjM5MTY4MiwgMS40NDA4NCwgMi4yODA4NSwgMy4zMzE3NywgNC4zODI0OSwgNS40MzIyMywgNi40ODMzNiIsIFwKLSAgICAgICAgICAiMC4zOTExMDYsIDEuNDQwNzksIDIuMjgxMTYsIDMuMzMxNjcsIDQuMzgyNTgsIDUuNDMzMDUsIDYuNDg0MDMiLCBcCi0gICAgICAgICAgIjAuMzkxNTA0LCAxLjQ0MDcsIDIuMjgxMTYsIDMuMzMxNzksIDQuMzgxNjUsIDUuNDMzMzQsIDYuNDg0NDMiLCBcCi0gICAgICAgICAgIjAuMzk1MjM3LCAxLjQ0MDY5LCAyLjI4MDgzLCAzLjMzMTY5LCA0LjM4MjEzLCA1LjQzMzEsIDYuNDg0MDUiLCBcCi0gICAgICAgICAgIjAuNDAwNTMzLCAxLjQ0MDcyLCAyLjI4MTIxLCAzLjMzMTc3LCA0LjM4MTc1LCA1LjQzMzMxLCA2LjQ4MjkxIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE2MzAzNywgMC41NzcxODcsIDAuOTA2OTMsIDEuMzE4OCwgMS43MzA5MiwgMi4xNDI5OSwgMi41NTQ1MyIsIFwKLSAgICAgICAgICAiMC4xNzU1MDksIDAuNTkwMDQ3LCAwLjkyMDA2MywgMS4zMzE5OCwgMS43NDM5LCAyLjE1NTQxLCAyLjU2NzgxIiwgXAotICAgICAgICAgICIwLjE5MDcxNCwgMC42MDU0OCwgMC45MzU1NjQsIDEuMzQ3NDgsIDEuNzU5MjksIDIuMTcwMzUsIDIuNTgzMTIiLCBcCi0gICAgICAgICAgIjAuMjA1NDYzLCAwLjYyMDI0NSwgMC45NTAzMDcsIDEuMzYxODcsIDEuNzc0MTYsIDIuMTg1MjQsIDIuNTk3OTEiLCBcCi0gICAgICAgICAgIjAuMjE5NzUzLCAwLjYzNDc1OCwgMC45NjQ0ODUsIDEuMzc2MjksIDEuNzg4OTksIDIuMjAwODMsIDIuNjEyMiIsIFwKLSAgICAgICAgICAiMC4yNDE4NjUsIDAuNjU3MDMzLCAwLjk4NjgwOSwgMS4zOTkyMSwgMS44MTEwOCwgMi4yMjMwOSwgMi42MzQ5NiIsIFwKLSAgICAgICAgICAiMC4yNjA5OCwgMC42NzYyMjUsIDEuMDA2MjUsIDEuNDE4MzMsIDEuODMwNTIsIDIuMjQyMTQsIDIuNjU0MjIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjQyNTM2LCAxLjAyOTQsIDEuNjU4NCwgMi40NDQxNiwgMy4yMzExOCwgNC4wMTU1MiwgNC44MDIzNyIsIFwKLSAgICAgICAgICAiMC4yNDI1MjksIDEuMDI5NTYsIDEuNjU4NiwgMi40NDQ5NCwgMy4yMjk3NCwgNC4wMTcxOCwgNC44MDI0NyIsIFwKLSAgICAgICAgICAiMC4yNDI1MjUsIDEuMDI5NjUsIDEuNjU4NjcsIDIuNDQzOTgsIDMuMjI5NjcsIDQuMDE2NTgsIDQuODAyMTQiLCBcCi0gICAgICAgICAgIjAuMjQyNDY4LCAxLjAyOTA0LCAxLjY1ODA1LCAyLjQ0NDcyLCAzLjIzMDMzLCA0LjAxNjA4LCA0LjgwMjIzIiwgXAotICAgICAgICAgICIwLjI0MjMzMywgMS4wMjk3LCAxLjY1ODM1LCAyLjQ0NDY1LCAzLjIzMDYxLCA0LjAxNjQsIDQuODAwOTYiLCBcCi0gICAgICAgICAgIjAuMjQzMDE4LCAxLjAyOTA0LCAxLjY1ODI0LCAyLjQ0NTEyLCAzLjIzMDQ5LCA0LjAxNzEsIDQuODAyNiIsIFwKLSAgICAgICAgICAiMC4yNDQ4NDcsIDEuMDI5MzIsIDEuNjU4MTMsIDIuNDQ0OTMsIDMuMjMwNTcsIDQuMDE2MTMsIDQuODAyMDgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjAiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE3NTM2OSwgMC43MjIwOTgsIDEuMTU5NjksIDEuNzA2NDgsIDIuMjUzMjgsIDIuODAwMDksIDMuMzQ3MDEiLCBcCi0gICAgICAgICAgIjAuMTg2ODQxLCAwLjczMzkxOCwgMS4xNzE0NSwgMS43MTgzMywgMi4yNjUxLCAyLjgxMTk0LCAzLjM1ODg3IiwgXAotICAgICAgICAgICIwLjE5OTcxNCwgMC43NDY4MzcsIDEuMTg0MjgsIDEuNzMxMjEsIDIuMjc3OTUsIDIuODI0ODEsIDMuMzcxNTUiLCBcCi0gICAgICAgICAgIjAuMjExMzY3LCAwLjc1OTEzNiwgMS4xOTYyNiwgMS43NDMxMywgMi4yODk5LCAyLjgzNjczLCAzLjM4MzQ5IiwgXAotICAgICAgICAgICIwLjIyMjQ4LCAwLjc2OTkzNiwgMS4yMDc1LCAxLjc1NDQyLCAyLjMwMTMsIDIuODQ3OTYsIDMuMzk0NjQiLCBcCi0gICAgICAgICAgIjAuMjM5NTE0LCAwLjc4NzQzMiwgMS4yMjQ3OSwgMS43NzE1NSwgMi4zMTg1NSwgMi44NjUwMiwgMy40MTE5NSIsIFwKLSAgICAgICAgICAiMC4yNTQxNjgsIDAuODAyMTY0LCAxLjIzOTY3LCAxLjc4NjQ5LCAyLjMzMzQyLCAyLjg4MDEsIDMuNDI2OTUiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzYwNjc1LCAxLjQwNjQzLCAyLjI0NTU0LCAzLjI5NTM1LCA0LjM0NDY0LCA1LjM5NDU0LCA2LjQ0NTY4IiwgXAotICAgICAgICAgICIwLjM2MDY3MiwgMS40MDY2LCAyLjI0NTI3LCAzLjI5NTM5LCA0LjM0NDgsIDUuMzk1MjYsIDYuNDQ2MDkiLCBcCi0gICAgICAgICAgIjAuMzYwNjY0LCAxLjQwNjUxLCAyLjI0NTU1LCAzLjI5NTA0LCA0LjM0NDgsIDUuMzk0NjEsIDYuNDQ1OTYiLCBcCi0gICAgICAgICAgIjAuMzYwNjY4LCAxLjQwNjU5LCAyLjI0NTY0LCAzLjI5NTQ5LCA0LjM0NTMsIDUuMzk0NzcsIDYuNDQ1ODgiLCBcCi0gICAgICAgICAgIjAuMzYwNzk2LCAxLjQwNjQzLCAyLjI0NTUxLCAzLjI5NTA3LCA0LjM0NTAyLCA1LjM5NTQ5LCA2LjQ0NTgyIiwgXAotICAgICAgICAgICIwLjM2MjMwNCwgMS40MDY0NSwgMi4yNDUzNiwgMy4yOTUzNSwgNC4zNDQ3NCwgNS4zOTUzNCwgNi40NDU4MyIsIFwKLSAgICAgICAgICAiMC4zNjQ1ODQsIDEuNDA2NSwgMi4yNDUzNiwgMy4yOTU0MywgNC4zNDQ2OSwgNS4zOTU1MywgNi40NDYxMSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNjAzODYsIDAuNTc3NjA3LCAwLjkwODU0MywgMS4zMjEyNywgMS43MzM1MywgMi4xNDc0MywgMi41NTgwNCIsIFwKLSAgICAgICAgICAiMC4xNzA4NjksIDAuNTg4MjI4LCAwLjkxOTIzMSwgMS4zMzIwMiwgMS43NDQ3OSwgMi4xNTcxLCAyLjU3MDM3IiwgXAotICAgICAgICAgICIwLjE4NDIwMSwgMC42MDE1NDUsIDAuOTMyNDc4LCAxLjM0NTIxLCAxLjc1NzY5LCAyLjE3MDE5LCAyLjU4MzQ2IiwgXAotICAgICAgICAgICIwLjE5NzIwNywgMC42MTUxNzIsIDAuOTQ2MjAyLCAxLjM1ODczLCAxLjc3MTIyLCAyLjE4MzcxLCAyLjU5Njk4IiwgXAotICAgICAgICAgICIwLjIxMTI0MSwgMC42Mjg2OTcsIDAuOTU5NDY0LCAxLjM3MjQyLCAxLjc4NDg0LCAyLjE5ODA2LCAyLjYxMDY3IiwgXAotICAgICAgICAgICIwLjIzMzMzOSwgMC42NTAyMDcsIDAuOTgxMzg1LCAxLjM5MzkyLCAxLjgwNzAyLCAyLjIxOTgzLCAyLjYzMjMxIiwgXAotICAgICAgICAgICIwLjI1MjMyOCwgMC42NjkxNjEsIDEuMDAwMDgsIDEuNDEzMTMsIDEuODI1NDgsIDIuMjM4MzUsIDIuNjUxNDkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjY2MzYyLCAxLjA1NTkxLCAxLjY4NjgsIDIuNDc0MjIsIDMuMjYxMTksIDQuMDQ3NjEsIDQuODM1MTMiLCBcCi0gICAgICAgICAgIjAuMjY2NTMsIDEuMDU2MjYsIDEuNjg2OTEsIDIuNDc0MzMsIDMuMjYwMzIsIDQuMDQ4ODEsIDQuODM1NDUiLCBcCi0gICAgICAgICAgIjAuMjY2Mzk5LCAxLjA1NjA2LCAxLjY4NjQsIDIuNDc0MTMsIDMuMjU5NjcsIDQuMDQ3NjksIDQuODM0MDUiLCBcCi0gICAgICAgICAgIjAuMjY1NDg3LCAxLjA1NjMxLCAxLjY4NjU2LCAyLjQ3NDEzLCAzLjI2MTMyLCA0LjA0NzYzLCA0LjgzNDA0IiwgXAotICAgICAgICAgICIwLjI2NTg1MiwgMS4wNTU5OSwgMS42ODY5MSwgMi40NzQ0NywgMy4yNjA2MywgNC4wNDc5MiwgNC44MzUyOSIsIFwKLSAgICAgICAgICAiMC4yNjk2MDksIDEuMDU2MjgsIDEuNjg2OTIsIDIuNDc0MTMsIDMuMjYxODMsIDQuMDQ4MywgNC44MzUwOSIsIFwKLSAgICAgICAgICAiMC4yNzQxODgsIDEuMDU2MjUsIDEuNjg2MDcsIDIuNDczNjEsIDMuMjYxNDMsIDQuMDQ4OTMsIDQuODM0OTUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE2ODc0NSwgMC43MTU4NzYsIDEuMTUzMDQsIDEuNjk5ODUsIDIuMjQ2NzUsIDIuNzkzNTcsIDMuMzQwMjMiLCBcCi0gICAgICAgICAgIjAuMTc5Mzk2LCAwLjcyNjUyLCAxLjE2NDAyLCAxLjcxMDc2LCAyLjI1NzQ3LCAyLjgwNDI5LCAzLjM1MDkiLCBcCi0gICAgICAgICAgIjAuMTkxODA2LCAwLjczOTAyOSwgMS4xNzY0OCwgMS43MjMzMywgMi4yNjk5MSwgMi44MTY5MSwgMy4zNjM2NyIsIFwKLSAgICAgICAgICAiMC4yMDM3NSwgMC43NTExMjYsIDEuMTg4NTgsIDEuNzM1NDYsIDIuMjgyMiwgMi44MjkwNSwgMy4zNzU4MyIsIFwKLSAgICAgICAgICAiMC4yMTU0MzcsIDAuNzYyOTcxLCAxLjIwMDMsIDEuNzQ3MjUsIDIuMjk0MTMsIDIuODQwOTgsIDMuMzg3NjciLCBcCi0gICAgICAgICAgIjAuMjMzOTA0LCAwLjc4MTc5MSwgMS4yMTkyNCwgMS43NjYxNywgMi4zMTI5NCwgMi44NTk5MiwgMy40MDY3IiwgXAotICAgICAgICAgICIwLjI1MDA4NCwgMC43OTgxMywgMS4yMzU4NiwgMS43ODI2MywgMi4zMjkzNywgMi44NzYzNSwgMy40MjI4NCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zNjA2NjQsIDEuNDA2NDksIDIuMjQ1NiwgMy4yOTU0MiwgNC4zNDQ4MSwgNS4zOTUzNSwgNi40NDU2MSIsIFwKLSAgICAgICAgICAiMC4zNjA2NjMsIDEuNDA2NDUsIDIuMjQ1MzgsIDMuMjk1NDMsIDQuMzQ1MywgNS4zOTUzOCwgNi40NDU4MiIsIFwKLSAgICAgICAgICAiMC4zNjA2ODksIDEuNDA2NDksIDIuMjQ1NDQsIDMuMjk1NDksIDQuMzQ0NTEsIDUuMzk0ODIsIDYuNDQ1NDQiLCBcCi0gICAgICAgICAgIjAuMzYwNzA3LCAxLjQwNjQ2LCAyLjI0NTM5LCAzLjI5NTUyLCA0LjM0NTM2LCA1LjM5NTUxLCA2LjQ0NDk1IiwgXAotICAgICAgICAgICIwLjM2MTIzOSwgMS40MDY0OSwgMi4yNDUzOCwgMy4yOTUzNCwgNC4zNDQ2NywgNS4zOTUxLCA2LjQ0NTg3IiwgXAotICAgICAgICAgICIwLjM2Mzg3NSwgMS40MDY0OSwgMi4yNDU1MSwgMy4yOTU0NSwgNC4zNDUxMSwgNS4zOTUwMSwgNi40NDU5OCIsIFwKLSAgICAgICAgICAiMC4zNjc2MjEsIDEuNDA2NDMsIDIuMjQ1NDIsIDMuMjk1NDksIDQuMzQ0ODYsIDUuMzk0NjUsIDYuNDQ1NjYiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTUwODg0LCAwLjU2NjUzNywgMC44OTcwMTUsIDEuMzA5NCwgMS43MjE4MSwgMi4xMzM5OCwgMi41NDY0NyIsIFwKLSAgICAgICAgICAiMC4xNjE3MTEsIDAuNTc3NTUzLCAwLjkwODA4MywgMS4zMjA0NCwgMS43MzI3MywgMi4xNDQ5OCwgMi41NTgyMyIsIFwKLSAgICAgICAgICAiMC4xNzU1MDEsIDAuNTkxNDc0LCAwLjkyMTk5LCAxLjMzNDgsIDEuNzQ2NjgsIDIuMTU5NzIsIDIuNTcxMzQiLCBcCi0gICAgICAgICAgIjAuMTg5MDUyLCAwLjYwNDk4MiwgMC45MzU0MzksIDEuMzQ4NDksIDEuNzYxMSwgMi4xNzM0LCAyLjU4NTA4IiwgXAotICAgICAgICAgICIwLjIwMTk0MSwgMC42MTc3ODksIDAuOTQ4NDk0LCAxLjM2MTEyLCAxLjc3MzY2LCAyLjE4NjMsIDIuNTk4NzUiLCBcCi0gICAgICAgICAgIjAuMjI0MzA5LCAwLjYzOTU4MiwgMC45NzEyMjUsIDEuMzgyNTQsIDEuNzk1MzMsIDIuMjA4MTMsIDIuNjE5NDIiLCBcCi0gICAgICAgICAgIjAuMjQyOTM1LCAwLjY1ODQ4LCAwLjk4ODkxMSwgMS40MDE3LCAxLjgxMzc2LCAyLjIyNjQ0LCAyLjYzOTI4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI1NTQwMSwgMS4wNDMzMywgMS42NzMxOSwgMi40NTk3MSwgMy4yNDU0OSwgNC4wMzIyOCwgNC44MTY1MSIsIFwKLSAgICAgICAgICAiMC4yNTU1MzksIDEuMDQzNzIsIDEuNjczMzUsIDIuNDU5MzIsIDMuMjQ1OTUsIDQuMDMxNDEsIDQuODE4MzciLCBcCi0gICAgICAgICAgIjAuMjU1MzYzLCAxLjA0MzcyLCAxLjY3MzE4LCAyLjQ1ODk3LCAzLjI0NTM5LCA0LjAzMTkyLCA0LjgxODYzIiwgXAotICAgICAgICAgICIwLjI1NDcwOCwgMS4wNDMyOCwgMS42NzI4NCwgMi40NTg5OSwgMy4yNDU0OCwgNC4wMzE5MSwgNC44MTg3MiIsIFwKLSAgICAgICAgICAiMC4yNTUwODksIDEuMDQzNzMsIDEuNjczNDMsIDIuNDU5OTksIDMuMjQ1MDIsIDQuMDMxNTMsIDQuODE4MDEiLCBcCi0gICAgICAgICAgIjAuMjU5MDMxLCAxLjA0MzY4LCAxLjY3MzQ1LCAyLjQ1ODM5LCAzLjI0NjM0LCA0LjAzMTk4LCA0LjgxNzA4IiwgXAotICAgICAgICAgICIwLjI2NDg0LCAxLjA0MzcsIDEuNjcyODEsIDIuNDU5ODcsIDMuMjQ1OTUsIDQuMDMyNDksIDQuODE3NzYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjIiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE1NDA3MiwgMC43MDEyMjMsIDEuMTM4NDcsIDEuNjg1MzMsIDIuMjMyMTksIDIuNzc4ODYsIDMuMzI1NTMiLCBcCi0gICAgICAgICAgIjAuMTYzNzQ2LCAwLjcxMDgyNSwgMS4xNDgyOSwgMS42OTUxNywgMi4yNDIwMiwgMi43ODg2OCwgMy4zMzUzNSIsIFwKLSAgICAgICAgICAiMC4xNzU2NDcsIDAuNzIzMTA4LCAxLjE2MDUxLCAxLjcwNzQ1LCAyLjI1NDE0LCAyLjgwMTA0LCAzLjM0NzcyIiwgXAotICAgICAgICAgICIwLjE4NzYwNywgMC43MzUyOTMsIDEuMTcyNzEsIDEuNzE5NDEsIDIuMjY2NDQsIDIuODEzMjgsIDMuMzU5OTciLCBcCi0gICAgICAgICAgIjAuMTk5NDk2LCAwLjc0NzIzNCwgMS4xODQ4MSwgMS43MzE1NywgMi4yNzg1OCwgMi44MjUzLCAzLjM3MTk2IiwgXAotICAgICAgICAgICIwLjIxODY3MiwgMC43NjY1NjcsIDEuMjA0MjIsIDEuNzUxMDYsIDIuMjk3OTYsIDIuODQ0NDcsIDMuMzkxNTEiLCBcCi0gICAgICAgICAgIjAuMjM2NTM5LCAwLjc4Mzc4LCAxLjIyMTM2LCAxLjc2ODEyLCAyLjMxNTAyLCAyLjg2MTY4LCAzLjQwODY1Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjM2MDY4NiwgMS40MDY1MywgMi4yNDUzNywgMy4yOTUyOSwgNC4zNDUxOSwgNS4zOTU0MywgNi40NDU4MyIsIFwKLSAgICAgICAgICAiMC4zNjA2NTgsIDEuNDA2NDcsIDIuMjQ1NSwgMy4yOTUyNywgNC4zNDU0NiwgNS4zOTU1MSwgNi40NDU4NCIsIFwKLSAgICAgICAgICAiMC4zNjA0NTgsIDEuNDA2NDcsIDIuMjQ1NTYsIDMuMjk1NTQsIDQuMzQ0ODcsIDUuMzk1NTcsIDYuNDQ1NyIsIFwKLSAgICAgICAgICAiMC4zNjAyNzYsIDEuNDA2NSwgMi4yNDUyOSwgMy4yOTUzNSwgNC4zNDQ2NywgNS4zOTQ5NSwgNi40NDU5IiwgXAotICAgICAgICAgICIwLjM2MjA3NywgMS40MDY0MywgMi4yNDU2MSwgMy4yOTUzNiwgNC4zNDQ4NiwgNS4zOTU2MiwgNi40NDU4MyIsIFwKLSAgICAgICAgICAiMC4zNjc4MjQsIDEuNDA2NDMsIDIuMjQ1NDcsIDMuMjk1MzcsIDQuMzQ0NzcsIDUuMzk0NTMsIDYuNDQ1ODgiLCBcCi0gICAgICAgICAgIjAuMzc0NDc3LCAxLjQwNjQ5LCAyLjI0NTU1LCAzLjI5NDkyLCA0LjM0NTMyLCA1LjM5NTQ5LCA2LjQ0NTYzIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE0MDE5LCAwLjU1NjMyOSwgMC44ODc1LCAxLjMwMDk2LCAxLjcxNDc5LCAyLjEyODcxLCAyLjU0MTA0IiwgXAotICAgICAgICAgICIwLjE1MTM0OCwgMC41Njc3NTcsIDAuODk5MTE0LCAxLjMxMjYxLCAxLjcyNTg2LCAyLjEzOTM5LCAyLjU1MzU1IiwgXAotICAgICAgICAgICIwLjE2NDcxMiwgMC41ODEzNzIsIDAuOTEyNzg4LCAxLjMyNjU1LCAxLjc0MDExLCAyLjE1MzU0LCAyLjU2NzA5IiwgXAotICAgICAgICAgICIwLjE3ODE4MSwgMC41OTQ5NDksIDAuOTI2NDAxLCAxLjMzOTY3LCAxLjc1Mjk3LCAyLjE2NjM1LCAyLjU4MDUyIiwgXAotICAgICAgICAgICIwLjE5MTcxNSwgMC42MDg0ODEsIDAuOTM5NzcxLCAxLjM1MzM2LCAxLjc2NjYsIDIuMTgwNzksIDIuNTk0MTIiLCBcCi0gICAgICAgICAgIjAuMjEzNTg1LCAwLjYzMDA1MSwgMC45NjIzMjYsIDEuMzc0ODgsIDEuNzg4NzMsIDIuMjAyNjUsIDIuNjE1MDgiLCBcCi0gICAgICAgICAgIjAuMjMyNTQ0LCAwLjY0ODkyOSwgMC45ODAyNjgsIDEuMzkzOTgsIDEuODA3MiwgMi4yMjA5NiwgMi42MzQ5MSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yNDQ2MzgsIDEuMDM0NjQsIDEuNjY1MjIsIDIuNDU0MTQsIDMuMjQyOTYsIDQuMDMwNzYsIDQuODE3OTQiLCBcCi0gICAgICAgICAgIjAuMjQ0ODA1LCAxLjAzNDE3LCAxLjY2NTczLCAyLjQ1NDE5LCAzLjI0MjUzLCA0LjAzMTIsIDQuODE5MyIsIFwKLSAgICAgICAgICAiMC4yNDQ0MjQsIDEuMDM0MjUsIDEuNjY1NzksIDIuNDU0NDksIDMuMjQyMzUsIDQuMDI5OTgsIDQuODE4NDQiLCBcCi0gICAgICAgICAgIjAuMjQzNzg3LCAxLjAzNDI1LCAxLjY2NTMzLCAyLjQ1NDA2LCAzLjI0MTcyLCA0LjAzMDA3LCA0LjgxODgxIiwgXAotICAgICAgICAgICIwLjI0NDc0OCwgMS4wMzQ1MSwgMS42NjU0OSwgMi40NTQzOSwgMy4yNDI2NywgNC4wMzAyNSwgNC44MTg4OCIsIFwKLSAgICAgICAgICAiMC4yNDk1NTYsIDEuMDM0MTgsIDEuNjY1NzIsIDIuNDUzNDEsIDMuMjQyODYsIDQuMDMwNjYsIDQuODE3ODkiLCBcCi0gICAgICAgICAgIjAuMjU1Mzc2LCAxLjAzNDUsIDEuNjY1MTIsIDIuNDU0MTksIDMuMjQyNSwgNC4wMzEyMiwgNC44MTg2NyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDg5NDksIDAuMDA4OTQyLCAwLjAwODkzOCwgMC4wMDg5MzIsIDAuMDA4OTI4LCAwLjAwODkyMSwgMC4wMDg5MTgiLCBcCi0gICAgICAgICAgIjAuMDA4OTMxLCAwLjAwODkyOCwgMC4wMDg5MjMsIDAuMDA4OTE3LCAwLjAwODkxMiwgMC4wMDg5MDYsIDAuMDA4ODk5IiwgXAotICAgICAgICAgICIwLjAwODkyMywgMC4wMDg5MjEsIDAuMDA4OTE4LCAwLjAwODkxMywgMC4wMDg5MDgsIDAuMDA4OTAxLCAwLjAwODg5NCIsIFwKLSAgICAgICAgICAiMC4wMDg5MTUsIDAuMDA4OTIsIDAuMDA4OTE2LCAwLjAwODkxMSwgMC4wMDg5MDUsIDAuMDA4ODk4LCAwLjAwODg5MiIsIFwKLSAgICAgICAgICAiMC4wMDg5MTEsIDAuMDA4OTE3LCAwLjAwODkxNSwgMC4wMDg5MDgsIDAuMDA4OTA0LCAwLjAwODg5NiwgMC4wMDg4OTMiLCBcCi0gICAgICAgICAgIjAuMDA4OTA0LCAwLjAwODkxNCwgMC4wMDg5MTEsIDAuMDA4OTA1LCAwLjAwODkwMiwgMC4wMDg4OTYsIDAuMDA4ODg3IiwgXAotICAgICAgICAgICIwLjAwODg5NywgMC4wMDg5MSwgMC4wMDg5MDksIDAuMDA4OTA0LCAwLjAwODg5OSwgMC4wMDg4OTUsIDAuMDA4ODg2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzNjM4LCAwLjAwMzYzNiwgMC4wMDM2MzQsIDAuMDAzNjMxLCAwLjAwMzYyOSwgMC4wMDM2MjYsIDAuMDAzNjIyIiwgXAotICAgICAgICAgICIwLjAwMzU5NywgMC4wMDM1OTYsIDAuMDAzNTk3LCAwLjAwMzU5NCwgMC4wMDM1OTMsIDAuMDAzNTg5LCAwLjAwMzU4MSIsIFwKLSAgICAgICAgICAiMC4wMDM1ODIsIDAuMDAzNTg2LCAwLjAwMzU4NCwgMC4wMDM1ODIsIDAuMDAzNTgsIDAuMDAzNTc4LCAwLjAwMzU3NSIsIFwKLSAgICAgICAgICAiMC4wMDM1NzUsIDAuMDAzNTgsIDAuMDAzNTc5LCAwLjAwMzU3OCwgMC4wMDM1NzYsIDAuMDAzNTcyLCAwLjAwMzU3MiIsIFwKLSAgICAgICAgICAiMC4wMDM1NjksIDAuMDAzNTc3LCAwLjAwMzU3NywgMC4wMDM1NzUsIDAuMDAzNTczLCAwLjAwMzU3LCAwLjAwMzU2NyIsIFwKLSAgICAgICAgICAiMC4wMDM1NTksIDAuMDAzNTcxLCAwLjAwMzU3MiwgMC4wMDM1NzIsIDAuMDAzNTcsIDAuMDAzNTY3LCAwLjAwMzU2NCIsIFwKLSAgICAgICAgICAiMC4wMDM1NTMsIDAuMDAzNTcsIDAuMDAzNTcxLCAwLjAwMzU2OSwgMC4wMDM1NjksIDAuMDAzNTY2LCAwLjAwMzU2NCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkExIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDg0MzcsIDAuMDA4NDMzLCAwLjAwODQyOSwgMC4wMDg0MjIsIDAuMDA4NDE3LCAwLjAwODQxLCAwLjAwODQwNCIsIFwKLSAgICAgICAgICAiMC4wMDg0MjEsIDAuMDA4NDE3LCAwLjAwODQxMywgMC4wMDg0MDgsIDAuMDA4NDAyLCAwLjAwODM5MywgMC4wMDgzODYiLCBcCi0gICAgICAgICAgIjAuMDA4NDEyLCAwLjAwODQxMiwgMC4wMDg0MDcsIDAuMDA4NDAxLCAwLjAwODM5NiwgMC4wMDgzODksIDAuMDA4MzgzIiwgXAotICAgICAgICAgICIwLjAwODQwNCwgMC4wMDg0MDcsIDAuMDA4NDA0LCAwLjAwODM5OSwgMC4wMDgzOTQsIDAuMDA4Mzg4LCAwLjAwODM4MSIsIFwKLSAgICAgICAgICAiMC4wMDgzOTcsIDAuMDA4NDAzLCAwLjAwODQsIDAuMDA4Mzk2LCAwLjAwODM5LCAwLjAwODM4NCwgMC4wMDgzNzgiLCBcCi0gICAgICAgICAgIjAuMDA4MzkzLCAwLjAwODQwMiwgMC4wMDg0MDEsIDAuMDA4Mzk2LCAwLjAwODM5MSwgMC4wMDgzODUsIDAuMDA4Mzc4IiwgXAotICAgICAgICAgICIwLjAwODM4OCwgMC4wMDgzOTcsIDAuMDA4Mzk4LCAwLjAwODM5NCwgMC4wMDgzOSwgMC4wMDgzODIsIDAuMDA4Mzc2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyOTIzLCAwLjAwMjkyLCAwLjAwMjkyMiwgMC4wMDI5MTksIDAuMDAyOTE2LCAwLjAwMjkxNCwgMC4wMDI5MiIsIFwKLSAgICAgICAgICAiMC4wMDI5MTQsIDAuMDAyOTE5LCAwLjAwMjkxNywgMC4wMDI5MTYsIDAuMDAyOTE4LCAwLjAwMjkxMywgMC4wMDI5MTEiLCBcCi0gICAgICAgICAgIjAuMDAyOSwgMC4wMDI5MTYsIDAuMDAyOTE2LCAwLjAwMjkxNSwgMC4wMDI5MTMsIDAuMDAyOTEyLCAwLjAwMjkxMiIsIFwKLSAgICAgICAgICAiMC4wMDI4ODksIDAuMDAyOTExLCAwLjAwMjkxNCwgMC4wMDI5MTUsIDAuMDAyOTE0LCAwLjAwMjkxLCAwLjAwMjkxIiwgXAotICAgICAgICAgICIwLjAwMjg3OCwgMC4wMDI5MDcsIDAuMDAyOTExLCAwLjAwMjkxMiwgMC4wMDI5MTIsIDAuMDAyOTEyLCAwLjAwMjkxMSIsIFwKLSAgICAgICAgICAiMC4wMDI4NjQsIDAuMDAyOTAxLCAwLjAwMjkwNiwgMC4wMDI5MDgsIDAuMDAyOTA5LCAwLjAwMjkwNywgMC4wMDI5MDciLCBcCi0gICAgICAgICAgIjAuMDAyODUsIDAuMDAyODk2LCAwLjAwMjkwMywgMC4wMDI5MDUsIDAuMDAyOTA3LCAwLjAwMjkwNiwgMC4wMDI5MDUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA3OTAzLCAwLjAwNzg5OCwgMC4wMDc4OTMsIDAuMDA3ODg4LCAwLjAwNzg4MSwgMC4wMDc4NzUsIDAuMDA3ODY5IiwgXAotICAgICAgICAgICIwLjAwNzg4LCAwLjAwNzg4MSwgMC4wMDc4NzcsIDAuMDA3ODcsIDAuMDA3ODY2LCAwLjAwNzg2LCAwLjAwNzg1MyIsIFwKLSAgICAgICAgICAiMC4wMDc4NjUsIDAuMDA3ODczLCAwLjAwNzg2OSwgMC4wMDc4NjQsIDAuMDA3ODYsIDAuMDA3ODUzLCAwLjAwNzg0OCIsIFwKLSAgICAgICAgICAiMC4wMDc4NDgsIDAuMDA3ODY4LCAwLjAwNzg2NywgMC4wMDc4NjMsIDAuMDA3ODU2LCAwLjAwNzg1LCAwLjAwNzg0NCIsIFwKLSAgICAgICAgICAiMC4wMDc4NDYsIDAuMDA3ODY0LCAwLjAwNzg2NCwgMC4wMDc4NTksIDAuMDA3ODU0LCAwLjAwNzg0OCwgMC4wMDc4NDIiLCBcCi0gICAgICAgICAgIjAuMDA3ODM3LCAwLjAwNzg2LCAwLjAwNzg1OSwgMC4wMDc4NTUsIDAuMDA3ODUyLCAwLjAwNzg0NiwgMC4wMDc4NDEiLCBcCi0gICAgICAgICAgIjAuMDA3ODMsIDAuMDA3ODU2LCAwLjAwNzg1NywgMC4wMDc4NTMsIDAuMDA3ODUsIDAuMDA3ODQ0LCAwLjAwNzgzNyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjEyOSwgMC4wMDIxMzIsIDAuMDAyMTM4LCAwLjAwMjEyNiwgMC4wMDIxMzIsIDAuMDAyMTMxLCAwLjAwMjEyOSIsIFwKLSAgICAgICAgICAiMC4wMDIxNDYsIDAuMDAyMTY2LCAwLjAwMjE2NywgMC4wMDIxNjgsIDAuMDAyMTY3LCAwLjAwMjE2NiwgMC4wMDIxNjQiLCBcCi0gICAgICAgICAgIjAuMDAyMTM2LCAwLjAwMjE3LCAwLjAwMjE3MywgMC4wMDIxNzUsIDAuMDAyMTc1LCAwLjAwMjE3NCwgMC4wMDIxNzMiLCBcCi0gICAgICAgICAgIjAuMDAyMTIyLCAwLjAwMjE2OCwgMC4wMDIxNzQsIDAuMDAyMTc2LCAwLjAwMjE3NywgMC4wMDIxNzcsIDAuMDAyMTc2IiwgXAotICAgICAgICAgICIwLjAwMjEwOCwgMC4wMDIxNjQsIDAuMDAyMTcxLCAwLjAwMjE3NSwgMC4wMDIxNzcsIDAuMDAyMTc4LCAwLjAwMjE3OSIsIFwKLSAgICAgICAgICAiMC4wMDIwODcsIDAuMDAyMTU2LCAwLjAwMjE2NywgMC4wMDIxNzMsIDAuMDAyMTc1LCAwLjAwMjE3NiwgMC4wMDIxNzYiLCBcCi0gICAgICAgICAgIjAuMDAyMDcxLCAwLjAwMjE1LCAwLjAwMjE2MywgMC4wMDIxNzEsIDAuMDAyMTczLCAwLjAwMjE3NCwgMC4wMDIxNzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2MDkxLCAwLjAwNjA5MywgMC4wMDYwOTQsIDAuMDA2MDk0LCAwLjAwNjA5MywgMC4wMDYwOTIsIDAuMDA2MDk0IiwgXAotICAgICAgICAgICIwLjAwNjA5NCwgMC4wMDYxMDgsIDAuMDA2MTA4LCAwLjAwNjEwOCwgMC4wMDYxMDgsIDAuMDA2MTA4LCAwLjAwNjExIiwgXAotICAgICAgICAgICIwLjAwNjA4NSwgMC4wMDYxMDgsIDAuMDA2MTEsIDAuMDA2MTExLCAwLjAwNjExMSwgMC4wMDYxMTMsIDAuMDA2MTEzIiwgXAotICAgICAgICAgICIwLjAwNjA3NSwgMC4wMDYxMDUsIDAuMDA2MTA5LCAwLjAwNjExMSwgMC4wMDYxMTIsIDAuMDA2MTEzLCAwLjAwNjExMyIsIFwKLSAgICAgICAgICAiMC4wMDYwNjMsIDAuMDA2MTAzLCAwLjAwNjEwOCwgMC4wMDYxMTEsIDAuMDA2MTEzLCAwLjAwNjExMywgMC4wMDYxMTQiLCBcCi0gICAgICAgICAgIjAuMDA2MDU2LCAwLjAwNjA5OSwgMC4wMDYxMDYsIDAuMDA2MTEsIDAuMDA2MTExLCAwLjAwNjExMiwgMC4wMDYxMTMiLCBcCi0gICAgICAgICAgIjAuMDA2MDQ3LCAwLjAwNjA5NSwgMC4wMDYxMDMsIDAuMDA2MTA4LCAwLjAwNjExLCAwLjAwNjExMiwgMC4wMDYxMTMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDM2MzUsIDAuMDAzNjMzLCAwLjAwMzYzMywgMC4wMDM2MjgsIDAuMDAzNjI1LCAwLjAwMzYyNSwgMC4wMDM2MjIiLCBcCi0gICAgICAgICAgIjAuMDAzNTk2LCAwLjAwMzU5NCwgMC4wMDM1OTMsIDAuMDAzNTkyLCAwLjAwMzU5MywgMC4wMDM1ODcsIDAuMDAzNTgzIiwgXAotICAgICAgICAgICIwLjAwMzU4LCAwLjAwMzU4MywgMC4wMDM1ODIsIDAuMDAzNTgxLCAwLjAwMzU3OSwgMC4wMDM1NzQsIDAuMDAzNTc1IiwgXAotICAgICAgICAgICIwLjAwMzU2MSwgMC4wMDM1NzcsIDAuMDAzNTc2LCAwLjAwMzU3NiwgMC4wMDM1NzQsIDAuMDAzNTcxLCAwLjAwMzU3IiwgXAotICAgICAgICAgICIwLjAwMzU2MiwgMC4wMDM1NzMsIDAuMDAzNTcyLCAwLjAwMzU3MywgMC4wMDM1NywgMC4wMDM1NjgsIDAuMDAzNTY1IiwgXAotICAgICAgICAgICIwLjAwMzU1NSwgMC4wMDM1NjksIDAuMDAzNTY5LCAwLjAwMzU2OSwgMC4wMDM1NjcsIDAuMDAzNTY2LCAwLjAwMzU2MiIsIFwKLSAgICAgICAgICAiMC4wMDM1NSwgMC4wMDM1NjYsIDAuMDAzNTY3LCAwLjAwMzU2OCwgMC4wMDM1NjUsIDAuMDAzNTY0LCAwLjAwMzU2MiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIxIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDU1ODYsIDAuMDA1NTg5LCAwLjAwNTU4OSwgMC4wMDU1ODksIDAuMDA1NTg5LCAwLjAwNTU4OSwgMC4wMDU1ODkiLCBcCi0gICAgICAgICAgIjAuMDA1NTg5LCAwLjAwNTYwMiwgMC4wMDU2MDIsIDAuMDA1NjAzLCAwLjAwNTYwNCwgMC4wMDU2MDUsIDAuMDA1NjA0IiwgXAotICAgICAgICAgICIwLjAwNTU4LCAwLjAwNTYwMiwgMC4wMDU2MDQsIDAuMDA1NjA2LCAwLjAwNTYwNywgMC4wMDU2MDcsIDAuMDA1NjA4IiwgXAotICAgICAgICAgICIwLjAwNTU3LCAwLjAwNTYsIDAuMDA1NjA0LCAwLjAwNTYwNywgMC4wMDU2MDcsIDAuMDA1NjA3LCAwLjAwNTYwOCIsIFwKLSAgICAgICAgICAiMC4wMDU1NjEsIDAuMDA1NTk4LCAwLjAwNTYwMywgMC4wMDU2MDYsIDAuMDA1NjA3LCAwLjAwNTYwOCwgMC4wMDU2MDgiLCBcCi0gICAgICAgICAgIjAuMDA1NTUsIDAuMDA1NTkzLCAwLjAwNTYsIDAuMDA1NjAzLCAwLjAwNTYwNywgMC4wMDU2MDYsIDAuMDA1NjA3IiwgXAotICAgICAgICAgICIwLjAwNTU0MSwgMC4wMDU1ODksIDAuMDA1NTk4LCAwLjAwNTYwMiwgMC4wMDU2MDQsIDAuMDA1NjA2LCAwLjAwNTYwNyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjk3NywgMC4wMDI5NzcsIDAuMDAyOTc1LCAwLjAwMjk3MywgMC4wMDI5NzgsIDAuMDAyOTY5LCAwLjAwMjk4IiwgXAotICAgICAgICAgICIwLjAwMjk2NiwgMC4wMDI5NzQsIDAuMDAyOTcyLCAwLjAwMjk3MywgMC4wMDI5NywgMC4wMDI5NjYsIDAuMDAyOTY1IiwgXAotICAgICAgICAgICIwLjAwMjk1MiwgMC4wMDI5NywgMC4wMDI5NywgMC4wMDI5NzEsIDAuMDAyOTY5LCAwLjAwMjk2NiwgMC4wMDI5NjYiLCBcCi0gICAgICAgICAgIjAuMDAyOTM5LCAwLjAwMjk2NSwgMC4wMDI5NjgsIDAuMDAyOTY4LCAwLjAwMjk2NiwgMC4wMDI5NjYsIDAuMDAyOTYzIiwgXAotICAgICAgICAgICIwLjAwMjkzMSwgMC4wMDI5NTksIDAuMDAyOTY0LCAwLjAwMjk2NiwgMC4wMDI5NjYsIDAuMDAyOTY1LCAwLjAwMjk2MiIsIFwKLSAgICAgICAgICAiMC4wMDI5MTYsIDAuMDAyOTU2LCAwLjAwMjk2LCAwLjAwMjk2NCwgMC4wMDI5NjMsIDAuMDAyOTYzLCAwLjAwMjk2MiIsIFwKLSAgICAgICAgICAiMC4wMDI5MDgsIDAuMDAyOTUxLCAwLjAwMjk1OCwgMC4wMDI5NiwgMC4wMDI5NjEsIDAuMDAyOTYxLCAwLjAwMjk2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjIiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNTA3MSwgMC4wMDUwNzYsIDAuMDA1MDc2LCAwLjAwNTA3NiwgMC4wMDUwNzYsIDAuMDA1MDc2LCAwLjAwNTA3NiIsIFwKLSAgICAgICAgICAiMC4wMDUwNjcsIDAuMDA1MDg1LCAwLjAwNTA4NywgMC4wMDUwODksIDAuMDA1MDg5LCAwLjAwNTA5LCAwLjAwNTA5IiwgXAotICAgICAgICAgICIwLjAwNTA1MywgMC4wMDUwODUsIDAuMDA1MDg5LCAwLjAwNTA5MSwgMC4wMDUwOTIsIDAuMDA1MDkyLCAwLjAwNTA5MiIsIFwKLSAgICAgICAgICAiMC4wMDUwMzksIDAuMDA1MDgyLCAwLjAwNTA4NywgMC4wMDUwOSwgMC4wMDUwOTEsIDAuMDA1MDkzLCAwLjAwNTA5NCIsIFwKLSAgICAgICAgICAiMC4wMDUwMjgsIDAuMDA1MDc4LCAwLjAwNTA4NSwgMC4wMDUwOSwgMC4wMDUwOTEsIDAuMDA1MDk0LCAwLjAwNTA5MyIsIFwKLSAgICAgICAgICAiMC4wMDUwMTMsIDAuMDA1MDcyLCAwLjAwNTA4MSwgMC4wMDUwODcsIDAuMDA1MDg5LCAwLjAwNTA5MSwgMC4wMDUwOTIiLCBcCi0gICAgICAgICAgIjAuMDA1MDA0LCAwLjAwNTA2NiwgMC4wMDUwNzgsIDAuMDA1MDg0LCAwLjAwNTA4NywgMC4wMDUwOTEsIDAuMDA1MDkxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyMjgzLCAwLjAwMjI4OSwgMC4wMDIyOSwgMC4wMDIyODcsIDAuMDAyMjg1LCAwLjAwMjI4NSwgMC4wMDIyODkiLCBcCi0gICAgICAgICAgIjAuMDAyMjk4LCAwLjAwMjMyMSwgMC4wMDIzMjIsIDAuMDAyMzIzLCAwLjAwMjMyMiwgMC4wMDIzMjIsIDAuMDAyMzE5IiwgXAotICAgICAgICAgICIwLjAwMjI4NSwgMC4wMDIzMjMsIDAuMDAyMzI3LCAwLjAwMjMzLCAwLjAwMjMyOSwgMC4wMDIzMjksIDAuMDAyMzI5IiwgXAotICAgICAgICAgICIwLjAwMjI3MiwgMC4wMDIzMjEsIDAuMDAyMzI4LCAwLjAwMjMzMSwgMC4wMDIzMzEsIDAuMDAyMzMxLCAwLjAwMjMzMSIsIFwKLSAgICAgICAgICAiMC4wMDIyNTgsIDAuMDAyMzE3LCAwLjAwMjMyNSwgMC4wMDIzMywgMC4wMDIzMywgMC4wMDIzMzEsIDAuMDAyMzMxIiwgXAotICAgICAgICAgICIwLjAwMjIzOSwgMC4wMDIzMDksIDAuMDAyMzIsIDAuMDAyMzI2LCAwLjAwMjMyOSwgMC4wMDIzMywgMC4wMDIzMzEiLCBcCi0gICAgICAgICAgIjAuMDAyMjI2LCAwLjAwMjMwMywgMC4wMDIzMTcsIDAuMDAyMzI0LCAwLjAwMjMyNywgMC4wMDIzMjksIDAuMDAyMzI5Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogT0FJMzNYTCAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChPQUkzM1hMKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMDcxMDA1ODsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQTApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYxMzMzNzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MTE1MjY7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjEzMzM3OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDE2NSwgMC4wMDAxNjUsIDAuMDAwMTY1LCAwLjAwMDE2NSwgMC4wMDAxNjUsIDAuMDAwMTY1LCAwLjAwMDE2NSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQTEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY2NTgxNDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2NjQ0NzY7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjY1ODE0OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDE2NSwgMC4wMDAxNjUsIDAuMDAwMTY1LCAwLjAwMDE2NSwgMC4wMDAxNjUsIDAuMDAwMTY1LCAwLjAwMDE2NSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQTIpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYwOTE0NTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MDkxNDU7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjA3MTc4OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDE2NSwgMC4wMDAxNjUsIDAuMDAwMTY1LCAwLjAwMDE2NSwgMC4wMDAxNjUsIDAuMDAwMTY1LCAwLjAwMDE2NSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQjApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY2MzczOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDY2MDU0NDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2NjM3MzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA1NjYsIDAuMDAwNTY2LCAwLjAwMDU2NiwgMC4wMDA1NjYsIDAuMDAwNTY2LCAwLjAwMDU2NiwgMC4wMDA1NjYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxODgsIDAuMDAwMTg4LCAwLjAwMDE4OCwgMC4wMDAxODgsIDAuMDAwMTg4LCAwLjAwMDE4OCwgMC4wMDAxODgiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIxKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2NTU4ODY7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjUzMTQ1OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDY1NTg4NjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA1NjcsIDAuMDAwNTY2LCAwLjAwMDU2NiwgMC4wMDA1NjYsIDAuMDAwNTY2LCAwLjAwMDU2NiwgMC4wMDA1NjYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxODgsIDAuMDAwMTg4LCAwLjAwMDE4OCwgMC4wMDAxODgsIDAuMDAwMTg4LCAwLjAwMDE4OCwgMC4wMDAxODgiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIyKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2MDcwNzY7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjA3MDc2OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDYwNjYzODsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA1NjYsIDAuMDAwNTY2LCAwLjAwMDU2NiwgMC4wMDA1NjYsIDAuMDAwNTY2LCAwLjAwMDU2NiwgMC4wMDA1NjYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxODgsIDAuMDAwMTg4LCAwLjAwMDE4OCwgMC4wMDAxODgsIDAuMDAwMTg4LCAwLjAwMDE4OCwgMC4wMDAxODgiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4wMjU3ODgzOwotICAgIGZ1bmN0aW9uIDogIighKCgoQjArQjEpK0IyKSAoKEEwK0ExKStBMikpKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTAiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjUxNDg4OCwgMC41OTM5ODgsIDEuMzAzNDQsIDIuNDgzNjMsIDMuNjY0MDQsIDYuNDE3MzQsIDcuOTg5NTQiLCBcCi0gICAgICAgICAgIjAuNTI2MjU3LCAwLjYwNTI3NywgMS4zMTQ0NCwgMi40OTU0MiwgMy42NzUzMywgNi40Mjg3MywgOC4wMDA4IiwgXAotICAgICAgICAgICIwLjUzOTAyMiwgMC42MTgwMDYsIDEuMzI3MjEsIDIuNTA4MzEsIDMuNjg3OTksIDYuNDQxNDksIDguMDEzNjgiLCBcCi0gICAgICAgICAgIjAuNTUwODMxLCAwLjYzLCAxLjMzOTQ0LCAyLjUxOTcsIDMuNzAwMDcsIDYuNDUzMzksIDguMDI1NTciLCBcCi0gICAgICAgICAgIjAuNTYyMDk4LCAwLjY0MTE1NSwgMS4zNTA2NCwgMi41MzA3NiwgMy43MTExMywgNi40NjQ2NCwgOC4wMzY4MyIsIFwKLSAgICAgICAgICAiMC41Nzk0ODUsIDAuNjU4NTEyLCAxLjM2NzgzLCAyLjU0ODM0LCAzLjcyODQ5LCA2LjQ4MjA1LCA4LjA1NDI1IiwgXAotICAgICAgICAgICIwLjU5NDI3OSwgMC42NzMzODYsIDEuMzgyNzcsIDIuNTYzNTYsIDMuNzQzNDQsIDYuNDk2OTUsIDguMDY5MTciKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuOTU3MjA1LCAxLjEwODEzLCAyLjQ2NzE2LCA0LjczMTksIDYuOTk3NDQsIDEyLjI4MDMsIDE1LjI5ODEiLCBcCi0gICAgICAgICAgIjAuOTU3MzIzLCAxLjEwODI1LCAyLjQ2NzEsIDQuNzMyMTUsIDYuOTk3NTgsIDEyLjI4MDUsIDE1LjI5ODUiLCBcCi0gICAgICAgICAgIjAuOTU3MTg4LCAxLjEwODI3LCAyLjQ2NjY5LCA0LjczMjE2LCA2Ljk5NzM3LCAxMi4yODAyLCAxNS4yOTgxIiwgXAotICAgICAgICAgICIwLjk1NzMxNiwgMS4xMDgwMiwgMi40NjcwNiwgNC43MzIyOSwgNi45OTcwNSwgMTIuMjgwNSwgMTUuMjk4MSIsIFwKLSAgICAgICAgICAiMC45NTczNTIsIDEuMTA4MSwgMi40NjcyMywgNC43MzE0MSwgNi45OTczNywgMTIuMjgwMiwgMTUuMjk4MSIsIFwKLSAgICAgICAgICAiMC45NTcyMywgMS4xMDgxLCAyLjQ2Njg0LCA0LjczMjI4LCA2Ljk5NzI4LCAxMi4yODAzLCAxNS4yOTg2IiwgXAotICAgICAgICAgICIwLjk1NzIxMywgMS4xMDgxMSwgMi40NjcxNSwgNC43MzIwNCwgNi45OTczMSwgMTIuMjgwNCwgMTUuMjk4NiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC40MTI3NDQsIDAuNDcyNTk4LCAxLjAwOTIxLCAxLjkwMTkyLCAyLjc5MzUxLCA0Ljg3MTEzLCA2LjA1ODE2IiwgXAotICAgICAgICAgICIwLjQyNDU3MSwgMC40ODQ0NDUsIDEuMDIwOTYsIDEuOTEzNywgMi44MDQ1OCwgNC44ODI3MSwgNi4wNzAxNiIsIFwKLSAgICAgICAgICAiMC40Mzk5OTcsIDAuNDk5ODA2LCAxLjAzNjM1LCAxLjkyOTI2LCAyLjgyMDI0LCA0Ljg5OCwgNi4wODU1MiIsIFwKLSAgICAgICAgICAiMC40NTUwNDYsIDAuNTE0OTIsIDEuMDUxNTUsIDEuOTQzMzUsIDIuODM1NzgsIDQuOTEzNDEsIDYuMTAwNyIsIFwKLSAgICAgICAgICAiMC40Njk4MjEsIDAuNTI5NjgsIDEuMDY2MjgsIDEuOTU4MzIsIDIuODUwNjYsIDQuOTI4MTYsIDYuMTE1NDciLCBcCi0gICAgICAgICAgIjAuNDkyNjUyLCAwLjU1MjUxOSwgMS4wODkzNCwgMS45ODE5MiwgMi44NzM0LCA0Ljk1MTIsIDYuMTM4MzQiLCBcCi0gICAgICAgICAgIjAuNTEyMzI4LCAwLjU3MjIxNiwgMS4xMDkwNSwgMi4wMDE2MywgMi44OTI5NCwgNC45NzA3NywgNi4xNTgxNCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC42ODk5NSwgMC44MDI1MzQsIDEuODIzMjUsIDMuNTIwOTUsIDUuMjE5NzgsIDkuMTc2NjQsIDExLjQzMzIiLCBcCi0gICAgICAgICAgIjAuNjg4ODg3LCAwLjgwMzI2OSwgMS44MjI1OCwgMy41MjEzOCwgNS4yMTk5NSwgOS4xNzU5LCAxMS40MzI3IiwgXAotICAgICAgICAgICIwLjY4OTc1NCwgMC44MDI5NjYsIDEuODIzMDUsIDMuNTIxNjksIDUuMjE4MTEsIDkuMTc1NTksIDExLjQzMyIsIFwKLSAgICAgICAgICAiMC42ODk4MzgsIDAuODAyNDYxLCAxLjgyMjg5LCAzLjUyNDE3LCA1LjIxOTQ3LCA5LjE3Njg1LCAxMS40MzMzIiwgXAotICAgICAgICAgICIwLjY4OTcxNCwgMC44MDIzNTgsIDEuODIyODMsIDMuNTIxMTQsIDUuMjE5NjUsIDkuMTc2ODksIDExLjQzMzMiLCBcCi0gICAgICAgICAgIjAuNjg5MTU1LCAwLjgwMzI5MywgMS44MjI3NSwgMy41MjIzMiwgNS4yMTgxNSwgOS4xNzYzMywgMTEuNDMyMiIsIFwKLSAgICAgICAgICAiMC42ODk3ODgsIDAuODAzMTc5LCAxLjgyMzIsIDMuNTIxNjksIDUuMjIwNSwgOS4xNzY0MywgMTEuNDMzMyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuNTA4OTE0LCAwLjU4ODA0MSwgMS4yOTc0MSwgMi40Nzc2NywgMy42NTc5MiwgNi40MTEzOCwgNy45ODM1NiIsIFwKLSAgICAgICAgICAiMC41MTk0NTQsIDAuNTk4NTQ2LCAxLjMwNzYzLCAyLjQ4ODc5LCAzLjY2ODIyLCA2LjQyMTksIDcuOTk0MSIsIFwKLSAgICAgICAgICAiMC41MzIxMzQsIDAuNjExLCAxLjMyMDI2LCAyLjUwMTE4LCAzLjY4MDk5LCA2LjQzNDQ2LCA4LjAwNjciLCBcCi0gICAgICAgICAgIjAuNTQ0MjYsIDAuNjIzMjQ1LCAxLjMzMjU0LCAyLjUxMzM4LCAzLjY5MzI3LCA2LjQ0Njc0LCA4LjAxODkzIiwgXAotICAgICAgICAgICIwLjU1NjE1MywgMC42MzUxMTQsIDEuMzQ0MzQsIDIuNTI1MTUsIDMuNzA1MzQsIDYuNDU4NTcsIDguMDMwODUiLCBcCi0gICAgICAgICAgIjAuNTc0OTgyLCAwLjY1NDAzOSwgMS4zNjM1OSwgMi41NDQ0OCwgMy43MjQyMywgNi40Nzc2NSwgOC4wNDk4MSIsIFwKLSAgICAgICAgICAiMC41OTE1NzMsIDAuNjcwNjE1LCAxLjM3OTkxLCAyLjU2MDc3LCAzLjc0MDk3LCA2LjQ5NDMxLCA4LjA2NjUxIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjk1NzM2LCAxLjEwODMsIDIuNDY3MTgsIDQuNzMyMjMsIDYuOTk3NDMsIDEyLjI4MDIsIDE1LjI5ODEiLCBcCi0gICAgICAgICAgIjAuOTU3Mjg1LCAxLjEwODEsIDIuNDY3MTEsIDQuNzMyMiwgNi45OTczMiwgMTIuMjgwMywgMTUuMjk4NiIsIFwKLSAgICAgICAgICAiMC45NTcyNDYsIDEuMTA4MjUsIDIuNDY2OCwgNC43MzIxOSwgNi45OTcyMiwgMTIuMjgwMywgMTUuMjk4NiIsIFwKLSAgICAgICAgICAiMC45NTcyNzcsIDEuMTA4MSwgMi40NjcxNCwgNC43MzIyMSwgNi45OTczNCwgMTIuMjgwOSwgMTUuMjk4MSIsIFwKLSAgICAgICAgICAiMC45NTczMjEsIDEuMTA4MTQsIDIuNDY2NjcsIDQuNzMxNzYsIDYuOTk3NzMsIDEyLjI4MDQsIDE1LjI5ODEiLCBcCi0gICAgICAgICAgIjAuOTU3MjY3LCAxLjEwODEsIDIuNDY3MTIsIDQuNzMyMTYsIDYuOTk3NDYsIDEyLjI4MDQsIDE1LjI5ODEiLCBcCi0gICAgICAgICAgIjAuOTU3MzE0LCAxLjEwODA5LCAyLjQ2NjgsIDQuNzMyMTcsIDYuOTk3NzMsIDEyLjI4MDMsIDE1LjI5ODEiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuNDAyOTMsIDAuNDYyNzAxLCAwLjk5ODc3LCAxLjg5MDUsIDIuNzgyNjMsIDQuODU5OTMsIDYuMDQ2ODUiLCBcCi0gICAgICAgICAgIjAuNDE1MjQsIDAuNDc0OTk5LCAxLjAxMTA4LCAxLjkwMzMyLCAyLjc5MzgsIDQuODcyMDEsIDYuMDU5MjkiLCBcCi0gICAgICAgICAgIjAuNDMwNjIzLCAwLjQ5MDM1MywgMS4wMjYzMywgMS45MTg5MiwgMi44MDk3NSwgNC44ODc0MiwgNi4wNzQ4MiIsIFwKLSAgICAgICAgICAiMC40NDU4NjQsIDAuNTA1NjEzLCAxLjA0MTU3LCAxLjkzMzM0LCAyLjgyNDc5LCA0LjkwMzA5LCA2LjA4OTk1IiwgXAotICAgICAgICAgICIwLjQ2MDU4OCwgMC41MjAzNSwgMS4wNTY1LCAxLjk0ODU3LCAyLjg0MDA4LCA0LjkxNzcyLCA2LjEwNDc5IiwgXAotICAgICAgICAgICIwLjQ4MzMxLCAwLjU0MzA3LCAxLjA3OTMxLCAxLjk3MTgyLCAyLjg2Mjk5LCA0Ljk0MDYyLCA2LjEyNzY4IiwgXAotICAgICAgICAgICIwLjUwMjk0OSwgMC41NjI3MjEsIDEuMDk5MDMsIDEuOTkxNTMsIDIuODgyNTcsIDQuOTYsIDYuMTQ3NDEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuNjc4OTY5LCAwLjc5MjIyNywgMS44MTE4MSwgMy41MTA3OCwgNS4yMDgzNCwgOS4xNjQwMiwgMTEuNDIxNCIsIFwKLSAgICAgICAgICAiMC42Nzg2MTgsIDAuNzkyMzkxLCAxLjgxMjI5LCAzLjUxMDA4LCA1LjIwNzIyLCA5LjE2MzU2LCAxMS40MjEyIiwgXAotICAgICAgICAgICIwLjY3ODYzNywgMC43OTIyMDYsIDEuODExMjMsIDMuNTEwNDMsIDUuMjA2NjMsIDkuMTY0MDEsIDExLjQyMTUiLCBcCi0gICAgICAgICAgIjAuNjc4OTEyLCAwLjc5MjIwNywgMS44MTIxMywgMy41MTA0OSwgNS4yMDg0NywgOS4xNjQ1MiwgMTEuNDIxNCIsIFwKLSAgICAgICAgICAiMC42Nzg3NSwgMC43OTIyMDMsIDEuODEyMjcsIDMuNTA5NDIsIDUuMjA3NzEsIDkuMTYzNjcsIDExLjQyMTQiLCBcCi0gICAgICAgICAgIjAuNjc4NjIzLCAwLjc5MjIyNCwgMS44MTIyNSwgMy41MTAwOSwgNS4yMDgsIDkuMTY0NTQsIDExLjQyMDYiLCBcCi0gICAgICAgICAgIjAuNjc4NzgzLCAwLjc5MjMyNSwgMS44MTIyOCwgMy41MTAwOSwgNS4yMDc2OSwgOS4xNjM5OSwgMTEuNDIxMiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuNDkyMTc5LCAwLjU3MTIzOCwgMS4yODAzNiwgMi40NjEwOCwgMy42NDExMiwgNi4zOTQ2NywgNy45NjY3OSIsIFwKLSAgICAgICAgICAiMC41MDE3NTMsIDAuNTgwNzgsIDEuMjkwMTcsIDIuNDcwMzgsIDMuNjUwNiwgNi40MDQyMywgNy45NzY0IiwgXAotICAgICAgICAgICIwLjUxMzg4OSwgMC41OTI5MjksIDEuMzAyNTIsIDIuNDgzMDQsIDMuNjYzMSwgNi40MTY0MSwgNy45ODg2MSIsIFwKLSAgICAgICAgICAiMC41MjU5NzMsIDAuNjA1MTU3LCAxLjMxNDI4LCAyLjQ5NDk1LCAzLjY3NTI5LCA2LjQyODYxLCA4LjAwMDgxIiwgXAotICAgICAgICAgICIwLjUzODA4NywgMC42MTcyLCAxLjMyNjQ0LCAyLjUwNjYyLCAzLjY4NzI0LCA2LjQ0MDc2LCA4LjAxMjk1IiwgXAotICAgICAgICAgICIwLjU1NzQyNCwgMC42MzY0OTIsIDEuMzQ1ODIsIDIuNTI2NDYsIDMuNzA2NjQsIDYuNDYwMTgsIDguMDMyMzgiLCBcCi0gICAgICAgICAgIjAuNTc0NDgzLCAwLjY1MzYxNCwgMS4zNjMyOCwgMi41NDM0NiwgMy43MjM4OCwgNi40NzczNywgOC4wNDk0NCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC45NTczNTIsIDEuMTA4MTEsIDIuNDY3MSwgNC43MzE2NywgNi45OTc0MSwgMTIuMjgwMiwgMTUuMjk4NCIsIFwKLSAgICAgICAgICAiMC45NTcyMzksIDEuMTA4MTEsIDIuNDY2OCwgNC43MzE5NCwgNi45OTcyNywgMTIuMjgwMiwgMTUuMjk4NiIsIFwKLSAgICAgICAgICAiMC45NTcxOTQsIDEuMTA4MiwgMi40NjY3NiwgNC43MzIyMSwgNi45OTc0NywgMTIuMjgwMywgMTUuMjk4MSIsIFwKLSAgICAgICAgICAiMC45NTcyMzksIDEuMTA4MTUsIDIuNDY3MTUsIDQuNzMyMjksIDYuOTk3NDEsIDEyLjI4MDIsIDE1LjI5ODEiLCBcCi0gICAgICAgICAgIjAuOTU3MzI5LCAxLjEwODIyLCAyLjQ2NzEsIDQuNzMyMTYsIDYuOTk3MzMsIDEyLjI4MDIsIDE1LjI5ODEiLCBcCi0gICAgICAgICAgIjAuOTU3MjYzLCAxLjEwODA2LCAyLjQ2NjY2LCA0LjczMjI5LCA2Ljk5NzM1LCAxMi4yODAyLCAxNS4yOTgxIiwgXAotICAgICAgICAgICIwLjk1NzEzMywgMS4xMDgwOSwgMi40NjcwOSwgNC43MzIwMiwgNi45OTczOSwgMTIuMjgwNSwgMTUuMjk4Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjM5MDE1NCwgMC40NDk4NjcsIDAuOTg1MzY2LCAxLjg3Njg2LCAyLjc2ODU4LCA0Ljg0NjAzLCA2LjAzMzI0IiwgXAotICAgICAgICAgICIwLjQwMjkyMywgMC40NjI1OTYsIDAuOTk4MzAxLCAxLjg5MDE2LCAyLjc4MDg2LCA0Ljg1ODc0LCA2LjA0NjA4IiwgXAotICAgICAgICAgICIwLjQxODQxMiwgMC40NzgxNDYsIDEuMDE0MDMsIDEuOTA1MTksIDIuNzk3MTEsIDQuODc0NjksIDYuMDYxNjUiLCBcCi0gICAgICAgICAgIjAuNDMzNjE2LCAwLjQ5MzI5OCwgMS4wMjkxMSwgMS45MjExMiwgMi44MTI0OSwgNC44ODk5MSwgNi4wNzcwNiIsIFwKLSAgICAgICAgICAiMC40NDgzMDksIDAuNTA4MDI5LCAxLjA0NDA5LCAxLjkzNTQ5LCAyLjgyNzIxLCA0LjkwNDY0LCA2LjA5MTg4IiwgXAotICAgICAgICAgICIwLjQ3MTExMiwgMC41MzA5MDQsIDEuMDY2ODksIDEuOTU4OTksIDIuODUwMjYsIDQuOTI3NzQsIDYuMTE0NjQiLCBcCi0gICAgICAgICAgIjAuNDkwNzEzLCAwLjU1MDQ3MywgMS4wODY0NywgMS45Nzg2OCwgMi44Njk3OSwgNC45NDczNCwgNi4xMzQ2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjY2NTc2MiwgMC43Nzg3ODQsIDEuNzk3ODIsIDMuNDk1MTksIDUuMTkyODYsIDkuMTQ4NzQsIDExLjQwNTMiLCBcCi0gICAgICAgICAgIjAuNjY1MjE5LCAwLjc3OTMzLCAxLjc5ODE2LCAzLjQ5NjQyLCA1LjE5MzQ4LCA5LjE0ODY0LCAxMS40MDU3IiwgXAotICAgICAgICAgICIwLjY2NTk3MiwgMC43NzkwNzksIDEuNzk3NTUsIDMuNDk1MzQsIDUuMTkxNjUsIDkuMTQ5NDUsIDExLjQwNTgiLCBcCi0gICAgICAgICAgIjAuNjY1NDUxLCAwLjc3ODcxNywgMS43OTgxNSwgMy40OTU1MywgNS4xOTMwOSwgOS4xNDc5MiwgMTEuNDA1OCIsIFwKLSAgICAgICAgICAiMC42NjUyMzcsIDAuNzc5MDMzLCAxLjc5NzQ3LCAzLjQ5NDcxLCA1LjE5MjY5LCA5LjE0OTQ2LCAxMS40MDU4IiwgXAotICAgICAgICAgICIwLjY2NTYzOSwgMC43Nzg4MDcsIDEuNzk3MzMsIDMuNDk1NTcsIDUuMTkzMDYsIDkuMTQ4NTIsIDExLjQwNTgiLCBcCi0gICAgICAgICAgIjAuNjY1OTQ3LCAwLjc3OTEwMiwgMS43OTc2MSwgMy40OTU2OSwgNS4xOTQxNSwgOS4xNDkzNSwgMTEuNDA1OCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuNDY5MTYxLCAwLjU0NzcyLCAxLjI1NTkyLCAyLjQzNjM2LCAzLjYxNjU4LCA2LjM2OTM4LCA3Ljk0MTg2IiwgXAotICAgICAgICAgICIwLjQ4MDc1MSwgMC41NTk2MDEsIDEuMjY3NzMsIDIuNDQ4MTMsIDMuNjI4MjgsIDYuMzgxMjUsIDcuOTUzNTUiLCBcCi0gICAgICAgICAgIjAuNDkzODQxLCAwLjU3MjMzOSwgMS4yODA3NSwgMi40NjEwNywgMy42NDExLCA2LjM5NDE0LCA3Ljk2NjYyIiwgXAotICAgICAgICAgICIwLjUwNTc0NSwgMC41ODQzNTcsIDEuMjkyNywgMi40NzI5NywgMy42NTI4NiwgNi40MDYwNiwgNy45Nzg1NyIsIFwKLSAgICAgICAgICAiMC41MTcwNjIsIDAuNTk1NDcxLCAxLjMwMzk2LCAyLjQ4NDE1LCAzLjY2NDM2LCA2LjQxNzQsIDcuOTg5ODgiLCBcCi0gICAgICAgICAgIjAuNTM0MjYyLCAwLjYxMjc2NSwgMS4zMjEzNCwgMi41MDE3NSwgMy42ODE4NywgNi40MzQ4NiwgOC4wMDczMiIsIFwKLSAgICAgICAgICAiMC41NDkxMTEsIDAuNjI3ODQ5LCAxLjMzNjgyLCAyLjUxNjYzLCAzLjY5NjUsIDYuNDQ5NzQsIDguMDIyMjUiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuOTE0NzE2LCAxLjA2NTIxLCAyLjQyMTksIDQuNjg1MSwgNi45NDkwOCwgMTIuMjMwNSwgMTUuMjQ3OSIsIFwKLSAgICAgICAgICAiMC45MTQ3MjMsIDEuMDY1MjMsIDIuNDIxNDksIDQuNjg0OTgsIDYuOTQ5MTUsIDEyLjIzMSwgMTUuMjQ4MSIsIFwKLSAgICAgICAgICAiMC45MTQ3MzksIDEuMDY1MjEsIDIuNDIxNjYsIDQuNjg1MTIsIDYuOTQ5MDUsIDEyLjIzMDQsIDE1LjI0NzkiLCBcCi0gICAgICAgICAgIjAuOTE0NzE1LCAxLjA2NTI2LCAyLjQyMTk2LCA0LjY4NDk3LCA2Ljk0ODkyLCAxMi4yMzAzLCAxNS4yNDc2IiwgXAotICAgICAgICAgICIwLjkxNDcxOCwgMS4wNjUyNSwgMi40MjE2NywgNC42ODQ5NCwgNi45NDkwNywgMTIuMjMwNiwgMTUuMjQ3OSIsIFwKLSAgICAgICAgICAiMC45MTQ3NDEsIDEuMDY1MTYsIDIuNDIxOTYsIDQuNjg0NzQsIDYuOTQ5MSwgMTIuMjMxLCAxNS4yNDc4IiwgXAotICAgICAgICAgICIwLjkxNDcwMiwgMS4wNjUyNCwgMi40MjIxNywgNC42ODUwNiwgNi45NDg5MiwgMTIuMjMwNSwgMTUuMjQ3NiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zODQwODYsIDAuNDQ0MDA0LCAwLjk4MDU2OCwgMS44NzI3NywgMi43NjQwNCwgNC44NDIyNywgNi4wMjk2NSIsIFwKLSAgICAgICAgICAiMC4zOTQ3MTYsIDAuNDU0NTkyLCAwLjk5MTI1MSwgMS44ODQxNSwgMi43NzUxMywgNC44NTI5OCwgNi4wNDAzMSIsIFwKLSAgICAgICAgICAiMC40MDg2MzQsIDAuNDY4NTAzLCAxLjAwNTMzLCAxLjg5ODIsIDIuNzg5MDEsIDQuODY2ODIsIDYuMDU0MjEiLCBcCi0gICAgICAgICAgIjAuNDIxODc2LCAwLjQ4MTc0MywgMS4wMTg1NywgMS45MTEyOSwgMi44MDIyNSwgNC44ODA0MSwgNi4wNjc0NSIsIFwKLSAgICAgICAgICAiMC40MzU2NywgMC40OTU2MDMsIDEuMDMyMywgMS45MjM5OSwgMi44MTYyMiwgNC44OTM4MiwgNi4wODExNiIsIFwKLSAgICAgICAgICAiMC40NTczNSwgMC41MTcyNTgsIDEuMDUzOTIsIDEuOTQ1ODIsIDIuODM3ODUsIDQuOTE1NzMsIDYuMTAzMDYiLCBcCi0gICAgICAgICAgIjAuNDc1MzM1LCAwLjUzNjI4NSwgMS4wNzMyNCwgMS45NjUxNiwgMi44NTc0NSwgNC45MzQ5NywgNi4xMjIwMyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC42ODkyNCwgMC44MDI3MiwgMS44MjMxNiwgMy41MjIwMiwgNS4yMTk5NSwgOS4xNzY5LCAxMS40MzMiLCBcCi0gICAgICAgICAgIjAuNjg5MDc0LCAwLjgwMjQ2NywgMS44MjMyMSwgMy41MjE3MSwgNS4yMjA0MywgOS4xNzYzOSwgMTEuNDMzMSIsIFwKLSAgICAgICAgICAiMC42ODkxNDYsIDAuODAyNTUyLCAxLjgyMzI3LCAzLjUyMTc5LCA1LjIxNzk5LCA5LjE3NjEzLCAxMS40MzMxIiwgXAotICAgICAgICAgICIwLjY4OTQ1NCwgMC44MDI3OTUsIDEuODIzMzgsIDMuNTIxMjgsIDUuMjE3ODgsIDkuMTc2NDcsIDExLjQzMjciLCBcCi0gICAgICAgICAgIjAuNjg5MjE5LCAwLjgwMzM0NCwgMS44MjI5LCAzLjUyMTA1LCA1LjIxOTMxLCA5LjE3NjU2LCAxMS40MzMiLCBcCi0gICAgICAgICAgIjAuNjg5NjY5LCAwLjgwMjYwNiwgMS44MjI4NiwgMy41MjEsIDUuMjIwMiwgOS4xNzYxOSwgMTEuNDMyOSIsIFwKLSAgICAgICAgICAiMC42ODkyNiwgMC44MDI1NTYsIDEuODIyNzgsIDMuNTIwOTUsIDUuMjE5NjcsIDkuMTc1NjIsIDExLjQzMzIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjQ2MzIzNCwgMC41NDE4NzUsIDEuMjQ5ODIsIDIuNDMwMTksIDMuNjEwNCwgNi4zNjMzMSwgNy45MzU4IiwgXAotICAgICAgICAgICIwLjQ3NDAwNSwgMC41NTI2MjIsIDEuMjYwNzIsIDIuNDQwOTEsIDMuNjIxMjYsIDYuMzc0MTYsIDcuOTQ2NjkiLCBcCi0gICAgICAgICAgIjAuNDg2Njg3LCAwLjU2NTE1NCwgMS4yNzM0OCwgMi40NTM5LCAzLjYzMzc2LCA2LjM4NzAzLCA3Ljk1OTQ4IiwgXAotICAgICAgICAgICIwLjQ5ODc0MiwgMC41Nzc0MTIsIDEuMjg1OTUsIDIuNDY2MDUsIDMuNjQ2MjMsIDYuMzk5MjcsIDcuOTcxNzUiLCBcCi0gICAgICAgICAgIjAuNTEwNTcxLCAwLjU4OTI4NywgMS4yOTc2NywgMi40NzgwOSwgMy42NTgzLCA2LjQxMTE4LCA3Ljk4MzY5IiwgXAotICAgICAgICAgICIwLjUyOTU5NiwgMC42MDg0MDgsIDEuMzE3NDMsIDIuNDk3MSwgMy42NzcyNSwgNi40MzAyMSwgOC4wMDI2NSIsIFwKLSAgICAgICAgICAiMC41NDYyMjEsIDAuNjI0NzQ2LCAxLjMzMzEyLCAyLjUxMzQ2LCAzLjY5Mzg1LCA2LjQ0NjkxLCA4LjAxOTM0Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjkxNDg2MiwgMS4wNjUyMiwgMi40MjE5LCA0LjY4NTEsIDYuOTQ5MTMsIDEyLjIzMDUsIDE1LjI0NzkiLCBcCi0gICAgICAgICAgIjAuOTE0NzUzLCAxLjA2NTI2LCAyLjQyMTU1LCA0LjY4NDkxLCA2Ljk0ODkyLCAxMi4yMzAyLCAxNS4yNDc1IiwgXAotICAgICAgICAgICIwLjkxNDc0OCwgMS4wNjUyMywgMi40MjE4OSwgNC42ODQ5NywgNi45NDkwMiwgMTIuMjMxLCAxNS4yNDc2IiwgXAotICAgICAgICAgICIwLjkxNDY4OSwgMS4wNjUyNSwgMi40MjE1OSwgNC42ODQ5OSwgNi45NDkwNCwgMTIuMjMxLCAxNS4yNDc5IiwgXAotICAgICAgICAgICIwLjkxNDYyOCwgMS4wNjUyNiwgMi40MjE4OCwgNC42ODQ3MywgNi45NDkxNSwgMTIuMjMwNSwgMTUuMjQ3OCIsIFwKLSAgICAgICAgICAiMC45MTQ2MjQsIDEuMDY1MjIsIDIuNDIyMjcsIDQuNjg1MDIsIDYuOTQ5MiwgMTIuMjMwNiwgMTUuMjQ3OSIsIFwKLSAgICAgICAgICAiMC45MTQ3MDgsIDEuMDY1MTQsIDIuNDIxOTcsIDQuNjg0LCA2Ljk0OTExLCAxMi4yMzEsIDE1LjI0NzYiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzc0MTk4LCAwLjQzMzk3NiwgMC45Njk5LCAxLjg2MTk0LCAyLjc1MjczLCA0LjgzMDk1LCA2LjAxODIyIiwgXAotICAgICAgICAgICIwLjM4NTI1OSwgMC40NDQ5NzYsIDAuOTgwOTA5LCAxLjg3MzA3LCAyLjc2NDc4LCA0Ljg0MjE4LCA2LjAyOTI4IiwgXAotICAgICAgICAgICIwLjM5OTMxLCAwLjQ1OTA0OCwgMC45OTUyNjUsIDEuODg2NzQsIDIuNzc4NjksIDQuODU1OTMsIDYuMDQzMzgiLCBcCi0gICAgICAgICAgIjAuNDEzMDU3LCAwLjQ3MjgzOCwgMS4wMDg4NCwgMS45MDEwNiwgMi43OTI0NSwgNC44NzAxNiwgNi4wNTY5OSIsIFwKLSAgICAgICAgICAiMC40MjYwNDcsIDAuNDg1ODE1LCAxLjAyMjgyLCAxLjkxNDMyLCAyLjgwNTY4LCA0Ljg4MzMyLCA2LjA3MDUyIiwgXAotICAgICAgICAgICIwLjQ0Nzc5NywgMC41MDc2NTUsIDEuMDQzOTEsIDEuOTM1MzYsIDIuODI3MjEsIDQuOTA0OTEsIDYuMDkyMTgiLCBcCi0gICAgICAgICAgIjAuNDY1Nzk1LCAwLjUyNjY3NSwgMS4wNjMwOSwgMS45NTQ3OCwgMi44NDY3NywgNC45MjQxMSwgNi4xMTEyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjY3ODc4MiwgMC43OTE3NzYsIDEuODExODIsIDMuNTEwOTQsIDUuMjA3MTksIDkuMTY0MzMsIDExLjQyMDUiLCBcCi0gICAgICAgICAgIjAuNjc4NDM2LCAwLjc5MTkzLCAxLjgxMTkyLCAzLjUwOTA2LCA1LjIwODEsIDkuMTYzNCwgMTEuNDIxMyIsIFwKLSAgICAgICAgICAiMC42Nzg2NDcsIDAuNzkyMDY2LCAxLjgxMjE2LCAzLjUxMDI4LCA1LjIwNzY5LCA5LjE2MzY1LCAxMS40MjEiLCBcCi0gICAgICAgICAgIjAuNjc4NTc0LCAwLjc5MTk0NywgMS44MTE3NSwgMy41MDk5OSwgNS4yMDc2NywgOS4xNjQ0MywgMTEuNDIxIiwgXAotICAgICAgICAgICIwLjY3ODY5OCwgMC43OTE5NTcsIDEuODExNjgsIDMuNTA5ODQsIDUuMjA2MjksIDkuMTYzMDQsIDExLjQyMTIiLCBcCi0gICAgICAgICAgIjAuNjc4NDczLCAwLjc5MjAwNSwgMS44MTE0NywgMy41MDk4NCwgNS4yMDg1NiwgOS4xNjQyOCwgMTEuNDIwOSIsIFwKLSAgICAgICAgICAiMC42NzgxOTcsIDAuNzkxODM1LCAxLjgxMTcsIDMuNTEwNTUsIDUuMjA2OTQsIDkuMTYzMjMsIDExLjQyMDQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjIiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjQ0NjY5NSwgMC41MjUzNzMsIDEuMjMzNDksIDIuNDEzNTksIDMuNTkzNzksIDYuMzQ2NzMsIDcuOTE5MjEiLCBcCi0gICAgICAgICAgIjAuNDU2NDExLCAwLjUzNDkzOSwgMS4yNDMxNCwgMi40MjMzNSwgMy42MDM2OSwgNi4zNTY3LCA3LjkyOSIsIFwKLSAgICAgICAgICAiMC40Njg0MDgsIDAuNTQ3MDcsIDEuMjU1NDUsIDIuNDM1OTMsIDMuNjE2MTEsIDYuMzY4OTksIDcuOTQxNDciLCBcCi0gICAgICAgICAgIjAuNDgwNTMzLCAwLjU1OTM2NSwgMS4yNjc2NSwgMi40NDgxNywgMy42MjgzNCwgNi4zODEyMywgNy45NTM3MiIsIFwKLSAgICAgICAgICAiMC40OTI4MTEsIDAuNTcxNzAxLCAxLjI3OTc4LCAyLjQ2MDMyLCAzLjY0MDM1LCA2LjM5MzQxLCA3Ljk2NTkiLCBcCi0gICAgICAgICAgIjAuNTExODg0LCAwLjU5MDgyNCwgMS4yOTkyMiwgMi40Nzk3NSwgMy42NTk3NywgNi40MTI4NSwgNy45ODUzNCIsIFwKLSAgICAgICAgICAiMC41MjgxMDEsIDAuNjA3OTY5LCAxLjMxNjI0LCAyLjQ5NjY1LCAzLjY3NywgNi40MzAwNiwgOC4wMDI1MiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC45MTQ3MDQsIDEuMDY1MywgMi40MjE5MSwgNC42ODUwNCwgNi45NDkxLCAxMi4yMzA0LCAxNS4yNDc5IiwgXAotICAgICAgICAgICIwLjkxNDc5OCwgMS4wNjUyNCwgMi40MjE1NywgNC42ODQ5MSwgNi45NDgwOCwgMTIuMjMwNiwgMTUuMjQ3NSIsIFwKLSAgICAgICAgICAiMC45MTQ3ODksIDEuMDY1MjIsIDIuNDIxOTMsIDQuNjg0OTIsIDYuOTQ5MSwgMTIuMjMwNSwgMTUuMjQ3OSIsIFwKLSAgICAgICAgICAiMC45MTQ2ODIsIDEuMDY1MjQsIDIuNDIxODksIDQuNjg0NjEsIDYuOTQ5MTUsIDEyLjIzMDQsIDE1LjI0NzkiLCBcCi0gICAgICAgICAgIjAuOTE0ODc3LCAxLjA2NTQsIDIuNDIxODksIDQuNjg0OTUsIDYuOTQ5MDUsIDEyLjIzMDQsIDE1LjI0NzkiLCBcCi0gICAgICAgICAgIjAuOTE0NzYsIDEuMDY1MjIsIDIuNDIxODgsIDQuNjg0NzMsIDYuOTQ5MDQsIDEyLjIzMDQsIDE1LjI0NzkiLCBcCi0gICAgICAgICAgIjAuOTE0NDQ2LCAxLjA2NTIyLCAyLjQyMTg1LCA0LjY4NDAyLCA2Ljk0OTIyLCAxMi4yMzEsIDE1LjI0NzgiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzYxNTU2LCAwLjQyMTA4NCwgMC45NTY4MTEsIDEuODQ4MzEsIDIuNzM5MjksIDQuODE3MjksIDYuMDA0NTUiLCBcCi0gICAgICAgICAgIjAuMzcyOTg3LCAwLjQzMjYzNSwgMC45NjgyMzQsIDEuODU5OSwgMi43NTE3LCA0LjgyOTA0LCA2LjAxNjA2IiwgXAotICAgICAgICAgICIwLjM4NjcyLCAwLjQ0NjM3NCwgMC45ODIyODIsIDEuODc0MDQsIDIuNzY1NDcsIDQuODQyOTEsIDYuMDI5NzkiLCBcCi0gICAgICAgICAgIjAuNDAwMzc3LCAwLjQ2MDA5NSwgMC45OTU5MTEsIDEuODg4MTksIDIuNzc4OSwgNC44NTY3OCwgNi4wNDM2NiIsIFwKLSAgICAgICAgICAiMC40MTQwNTgsIDAuNDczNzM2LCAxLjAwOTY0LCAxLjkwMDk1LCAyLjc5Mjg1LCA0Ljg3MDI1LCA2LjA1NzQzIiwgXAotICAgICAgICAgICIwLjQzNTc1LCAwLjQ5NTUzMSwgMS4wMzE1MiwgMS45MjI4MSwgMi44MTQ2LCA0Ljg5MjE3LCA2LjA3OTQiLCBcCi0gICAgICAgICAgIjAuNDU0NzU4LCAwLjUxMzQwOSwgMS4wNTA3LCAxLjk0MjA5LCAyLjgzNDE2LCA0LjkxMTM3LCA2LjA5ODQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuNjY1MzMzLCAwLjc3ODY4OCwgMS43OTc0MywgMy40OTU5NSwgNS4xOTE5NywgOS4xNDg2MiwgMTEuNDA1MiIsIFwKLSAgICAgICAgICAiMC42NjU2MzYsIDAuNzc4NjQzLCAxLjc5NzQ5LCAzLjQ5NTg2LCA1LjE5Mjk3LCA5LjE0OTA0LCAxMS40MDQ5IiwgXAotICAgICAgICAgICIwLjY2NTQ0NSwgMC43Nzg5MjcsIDEuNzk3NzUsIDMuNDk1NDMsIDUuMTkyODYsIDkuMTQ4MzYsIDExLjQwNTYiLCBcCi0gICAgICAgICAgIjAuNjY1MTQyLCAwLjc3ODQzMywgMS43OTgwNCwgMy40OTUyNCwgNS4xOTEyMSwgOS4xNDg4MywgMTEuNDA1MSIsIFwKLSAgICAgICAgICAiMC42NjU2NzMsIDAuNzc5MDM4LCAxLjc5NzM5LCAzLjQ5NTE5LCA1LjE5Mjc0LCA5LjE0OTQzLCAxMS40MDU2IiwgXAotICAgICAgICAgICIwLjY2NTcyOSwgMC43Nzg4ODgsIDEuNzk3MjgsIDMuNDk1MjIsIDUuMTkzNjMsIDkuMTQ4OTEsIDExLjQwNDgiLCBcCi0gICAgICAgICAgIjAuNjY0OTY0LCAwLjc3ODE3NSwgMS43OTc1MywgMy40OTU3OCwgNS4xOTE5NywgOS4xNDc4NiwgMTEuNDA0NyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI3NjEsIDAuMDAyNzYsIDAuMDAyNzU5LCAwLjAwMjc1NCwgMC4wMDI3NSwgMC4wMDI3MzMsIDAuMDAyNjU0IiwgXAotICAgICAgICAgICIwLjAwMjc1NywgMC4wMDI3NTcsIDAuMDAyNzU1LCAwLjAwMjc1MSwgMC4wMDI3NDUsIDAuMDAyNzMsIDAuMDAyNjUxIiwgXAotICAgICAgICAgICIwLjAwMjc1NSwgMC4wMDI3NTUsIDAuMDAyNzUzLCAwLjAwMjc0OSwgMC4wMDI3NDUsIDAuMDAyNzMsIDAuMDAyNjUiLCBcCi0gICAgICAgICAgIjAuMDAyNzU1LCAwLjAwMjc1NCwgMC4wMDI3NTMsIDAuMDAyNzQ4LCAwLjAwMjc0NCwgMC4wMDI3MjgsIDAuMDAyNjM3IiwgXAotICAgICAgICAgICIwLjAwMjc1MywgMC4wMDI3NTMsIDAuMDAyNzUyLCAwLjAwMjc0NywgMC4wMDI3NDMsIDAuMDAyNzI2LCAwLjAwMjYzNiIsIFwKLSAgICAgICAgICAiMC4wMDI3NTIsIDAuMDAyNzUyLCAwLjAwMjc1MSwgMC4wMDI3NDcsIDAuMDAyNzQyLCAwLjAwMjcyNiwgMC4wMDI2MzQiLCBcCi0gICAgICAgICAgIjAuMDAyNzUxLCAwLjAwMjc1MiwgMC4wMDI3NSwgMC4wMDI3NDcsIDAuMDAyNzQyLCAwLjAwMjcyNywgMC4wMDI2MzMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDEwNzMsIDAuMDAxMDczLCAwLjAwMTA3MiwgMC4wMDEwNywgMC4wMDEwNjksIDAuMDAxMDY0LCAwLjAwMTA2MSIsIFwKLSAgICAgICAgICAiMC4wMDEwNjMsIDAuMDAxMDYzLCAwLjAwMTA2MiwgMC4wMDEwNjEsIDAuMDAxMDU4LCAwLjAwMTA1NCwgMC4wMDEwNDkiLCBcCi0gICAgICAgICAgIjAuMDAxMDU5LCAwLjAwMTA1OSwgMC4wMDEwNTksIDAuMDAxMDU3LCAwLjAwMTA1NywgMC4wMDEwNTIsIDAuMDAxMDQ4IiwgXAotICAgICAgICAgICIwLjAwMTA1OCwgMC4wMDEwNTgsIDAuMDAxMDU4LCAwLjAwMTA1NywgMC4wMDEwNTUsIDAuMDAxMDUxLCAwLjAwMTA0OCIsIFwKLSAgICAgICAgICAiMC4wMDEwNTcsIDAuMDAxMDU3LCAwLjAwMTA1NywgMC4wMDEwNTYsIDAuMDAxMDU0LCAwLjAwMTA1LCAwLjAwMTA0NyIsIFwKLSAgICAgICAgICAiMC4wMDEwNTYsIDAuMDAxMDU2LCAwLjAwMTA1NiwgMC4wMDEwNTUsIDAuMDAxMDU0LCAwLjAwMTA0OSwgMC4wMDEwNDYiLCBcCi0gICAgICAgICAgIjAuMDAxMDU0LCAwLjAwMTA1NSwgMC4wMDEwNTYsIDAuMDAxMDU1LCAwLjAwMTA1MywgMC4wMDEwNDksIDAuMDAxMDQ2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjYyOCwgMC4wMDI2MjgsIDAuMDAyNjI1LCAwLjAwMjYyMSwgMC4wMDI2MTcsIDAuMDAyNiwgMC4wMDI1MjMiLCBcCi0gICAgICAgICAgIjAuMDAyNjI0LCAwLjAwMjYyNCwgMC4wMDI2MjIsIDAuMDAyNjE3LCAwLjAwMjYxMiwgMC4wMDI1OTUsIDAuMDAyNTE4IiwgXAotICAgICAgICAgICIwLjAwMjYyMSwgMC4wMDI2MjEsIDAuMDAyNjIsIDAuMDAyNjE1LCAwLjAwMjYxMSwgMC4wMDI1OTQsIDAuMDAyNTE2IiwgXAotICAgICAgICAgICIwLjAwMjYyLCAwLjAwMjYyMSwgMC4wMDI2MTksIDAuMDAyNjE1LCAwLjAwMjYxLCAwLjAwMjU5MywgMC4wMDI1MDMiLCBcCi0gICAgICAgICAgIjAuMDAyNjIsIDAuMDAyNjIsIDAuMDAyNjE4LCAwLjAwMjYxNCwgMC4wMDI2MSwgMC4wMDI1OTQsIDAuMDAyNTAzIiwgXAotICAgICAgICAgICIwLjAwMjYxOCwgMC4wMDI2MTksIDAuMDAyNjE4LCAwLjAwMjYxNCwgMC4wMDI2MDksIDAuMDAyNTkzLCAwLjAwMjUwMSIsIFwKLSAgICAgICAgICAiMC4wMDI2MTcsIDAuMDAyNjE4LCAwLjAwMjYxNywgMC4wMDI2MTMsIDAuMDAyNjA5LCAwLjAwMjU5MiwgMC4wMDI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwOTA5LCAwLjAwMDkwOSwgMC4wMDA5MDgsIDAuMDAwOTA3LCAwLjAwMDkwMywgMC4wMDA5MDIsIDAuMDAwODk5IiwgXAotICAgICAgICAgICIwLjAwMDkwNywgMC4wMDA5MDcsIDAuMDAwOTA3LCAwLjAwMDkwNiwgMC4wMDA5MDYsIDAuMDAwOTAxLCAwLjAwMDg5OSIsIFwKLSAgICAgICAgICAiMC4wMDA5MDYsIDAuMDAwOTA2LCAwLjAwMDkwNywgMC4wMDA5MDYsIDAuMDAwOTA1LCAwLjAwMDkwMSwgMC4wMDA4OTkiLCBcCi0gICAgICAgICAgIjAuMDAwOTA0LCAwLjAwMDkwNSwgMC4wMDA5MDYsIDAuMDAwOTA1LCAwLjAwMDkwNCwgMC4wMDA5MDEsIDAuMDAwODk5IiwgXAotICAgICAgICAgICIwLjAwMDkwMywgMC4wMDA5MDQsIDAuMDAwOTA1LCAwLjAwMDkwNSwgMC4wMDA5MDQsIDAuMDAwOTAxLCAwLjAwMDg5OCIsIFwKLSAgICAgICAgICAiMC4wMDA5MDEsIDAuMDAwOTAxLCAwLjAwMDkwNCwgMC4wMDA5MDQsIDAuMDAwOTAzLCAwLjAwMDksIDAuMDAwODk4IiwgXAotICAgICAgICAgICIwLjAwMDg5OSwgMC4wMDA5LCAwLjAwMDkwMywgMC4wMDA5MDQsIDAuMDAwOTAzLCAwLjAwMDksIDAuMDAwODk4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTIiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjQ4MywgMC4wMDI0ODMsIDAuMDAyNDgxLCAwLjAwMjQ3NSwgMC4wMDI0NzEsIDAuMDAyNDU1LCAwLjAwMjM3NSIsIFwKLSAgICAgICAgICAiMC4wMDI0NzgsIDAuMDAyNDc4LCAwLjAwMjQ3NiwgMC4wMDI0NzIsIDAuMDAyNDY4LCAwLjAwMjQ1MSwgMC4wMDIzNzMiLCBcCi0gICAgICAgICAgIjAuMDAyNDc2LCAwLjAwMjQ3NiwgMC4wMDI0NzQsIDAuMDAyNDcsIDAuMDAyNDY2LCAwLjAwMjQ0OSwgMC4wMDIzNzIiLCBcCi0gICAgICAgICAgIjAuMDAyNDc0LCAwLjAwMjQ3NCwgMC4wMDI0NzMsIDAuMDAyNDY5LCAwLjAwMjQ2NSwgMC4wMDI0NDgsIDAuMDAyMzU4IiwgXAotICAgICAgICAgICIwLjAwMjQ3MiwgMC4wMDI0NzMsIDAuMDAyNDcyLCAwLjAwMjQ2OCwgMC4wMDI0NjQsIDAuMDAyNDQ5LCAwLjAwMjM1NyIsIFwKLSAgICAgICAgICAiMC4wMDI0NzEsIDAuMDAyNDcxLCAwLjAwMjQ3MSwgMC4wMDI0NjgsIDAuMDAyNDYzLCAwLjAwMjQ0NywgMC4wMDIzNTYiLCBcCi0gICAgICAgICAgIjAuMDAyNDcsIDAuMDAyNDcsIDAuMDAyNDcxLCAwLjAwMjQ2NywgMC4wMDI0NjMsIDAuMDAyNDQ4LCAwLjAwMjM2MSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDY4MSwgMC4wMDA2ODIsIDAuMDAwNjgyLCAwLjAwMDY3OCwgMC4wMDA2OCwgMC4wMDA2NzcsIDAuMDAwNjc2IiwgXAotICAgICAgICAgICIwLjAwMDY4OSwgMC4wMDA2OSwgMC4wMDA2OSwgMC4wMDA2OSwgMC4wMDA2OSwgMC4wMDA2ODcsIDAuMDAwNjg2IiwgXAotICAgICAgICAgICIwLjAwMDY5LCAwLjAwMDY5LCAwLjAwMDY5MywgMC4wMDA2OTMsIDAuMDAwNjkyLCAwLjAwMDY5LCAwLjAwMDY4OSIsIFwKLSAgICAgICAgICAiMC4wMDA2ODgsIDAuMDAwNjg5LCAwLjAwMDY5MiwgMC4wMDA2OTMsIDAuMDAwNjkzLCAwLjAwMDY5MSwgMC4wMDA2OSIsIFwKLSAgICAgICAgICAiMC4wMDA2ODYsIDAuMDAwNjg4LCAwLjAwMDY5MiwgMC4wMDA2OTMsIDAuMDAwNjkzLCAwLjAwMDY5MSwgMC4wMDA2OSIsIFwKLSAgICAgICAgICAiMC4wMDA2ODMsIDAuMDAwNjg1LCAwLjAwMDY5MSwgMC4wMDA2OTMsIDAuMDAwNjkzLCAwLjAwMDY5MSwgMC4wMDA2OSIsIFwKLSAgICAgICAgICAiMC4wMDA2ODEsIDAuMDAwNjgzLCAwLjAwMDY5LCAwLjAwMDY5MiwgMC4wMDA2OTIsIDAuMDAwNjkxLCAwLjAwMDY5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTg2MywgMC4wMDE4NjMsIDAuMDAxODYzLCAwLjAwMTg2NCwgMC4wMDE4NjMsIDAuMDAxODYsIDAuMDAxNzk3IiwgXAotICAgICAgICAgICIwLjAwMTg2NiwgMC4wMDE4NjYsIDAuMDAxODY3LCAwLjAwMTg2NywgMC4wMDE4NjcsIDAuMDAxODY0LCAwLjAwMTc5NSIsIFwKLSAgICAgICAgICAiMC4wMDE4NjYsIDAuMDAxODY2LCAwLjAwMTg2OCwgMC4wMDE4NjgsIDAuMDAxODY4LCAwLjAwMTg2NSwgMC4wMDE3ODciLCBcCi0gICAgICAgICAgIjAuMDAxODY1LCAwLjAwMTg2NiwgMC4wMDE4NjgsIDAuMDAxODY4LCAwLjAwMTg2OSwgMC4wMDE4NjUsIDAuMDAxNzk0IiwgXAotICAgICAgICAgICIwLjAwMTg2NCwgMC4wMDE4NjUsIDAuMDAxODY3LCAwLjAwMTg2OCwgMC4wMDE4NjksIDAuMDAxODY1LCAwLjAwMTc4NyIsIFwKLSAgICAgICAgICAiMC4wMDE4NjIsIDAuMDAxODYzLCAwLjAwMTg2NywgMC4wMDE4NjgsIDAuMDAxODY4LCAwLjAwMTg2NSwgMC4wMDE3OTMiLCBcCi0gICAgICAgICAgIjAuMDAxODYxLCAwLjAwMTg2MiwgMC4wMDE4NjYsIDAuMDAxODY4LCAwLjAwMTg2OCwgMC4wMDE4NjYsIDAuMDAxNzk4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxMDczLCAwLjAwMTA3MywgMC4wMDEwNzIsIDAuMDAxMDcxLCAwLjAwMTA2OSwgMC4wMDEwNjQsIDAuMDAxMDYxIiwgXAotICAgICAgICAgICIwLjAwMTA2MywgMC4wMDEwNjMsIDAuMDAxMDYyLCAwLjAwMTA2MSwgMC4wMDEwNTksIDAuMDAxMDU0LCAwLjAwMTA1MiIsIFwKLSAgICAgICAgICAiMC4wMDEwNiwgMC4wMDEwNTksIDAuMDAxMDU5LCAwLjAwMTA1OCwgMC4wMDEwNTUsIDAuMDAxMDUyLCAwLjAwMTA0OSIsIFwKLSAgICAgICAgICAiMC4wMDEwNTgsIDAuMDAxMDU4LCAwLjAwMTA1NywgMC4wMDEwNTYsIDAuMDAxMDU0LCAwLjAwMTA1LCAwLjAwMTA0OCIsIFwKLSAgICAgICAgICAiMC4wMDEwNTYsIDAuMDAxMDU3LCAwLjAwMTA1NiwgMC4wMDEwNTUsIDAuMDAxMDU0LCAwLjAwMTA1LCAwLjAwMTA0NyIsIFwKLSAgICAgICAgICAiMC4wMDEwNTUsIDAuMDAxMDU1LCAwLjAwMTA1NiwgMC4wMDEwNTUsIDAuMDAxMDUzLCAwLjAwMTA0OSwgMC4wMDEwNDYiLCBcCi0gICAgICAgICAgIjAuMDAxMDUxLCAwLjAwMTA1NCwgMC4wMDEwNTUsIDAuMDAxMDU0LCAwLjAwMTA1MywgMC4wMDEwNDgsIDAuMDAxMDQ2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTcyOSwgMC4wMDE3MjksIDAuMDAxNzI5LCAwLjAwMTcyOSwgMC4wMDE3MjksIDAuMDAxNzI2LCAwLjAwMTY0OCIsIFwKLSAgICAgICAgICAiMC4wMDE3MzEsIDAuMDAxNzMxLCAwLjAwMTczMiwgMC4wMDE3MzIsIDAuMDAxNzMzLCAwLjAwMTczLCAwLjAwMTY1OCIsIFwKLSAgICAgICAgICAiMC4wMDE3MzEsIDAuMDAxNzMyLCAwLjAwMTczMywgMC4wMDE3MzMsIDAuMDAxNzM0LCAwLjAwMTczLCAwLjAwMTY2IiwgXAotICAgICAgICAgICIwLjAwMTczLCAwLjAwMTczMSwgMC4wMDE3MzMsIDAuMDAxNzM0LCAwLjAwMTczNCwgMC4wMDE3MzEsIDAuMDAxNjY0IiwgXAotICAgICAgICAgICIwLjAwMTcyOSwgMC4wMDE3MywgMC4wMDE3MzMsIDAuMDAxNzM0LCAwLjAwMTczNCwgMC4wMDE3MzEsIDAuMDAxNjUyIiwgXAotICAgICAgICAgICIwLjAwMTcyOCwgMC4wMDE3MjksIDAuMDAxNzMyLCAwLjAwMTczNCwgMC4wMDE3MzQsIDAuMDAxNzMxLCAwLjAwMTY2MyIsIFwKLSAgICAgICAgICAiMC4wMDE3MjYsIDAuMDAxNzI3LCAwLjAwMTczMiwgMC4wMDE3MzMsIDAuMDAxNzMzLCAwLjAwMTczMSwgMC4wMDE2NjQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDA5MDYsIDAuMDAwOTA1LCAwLjAwMDkwNCwgMC4wMDA5MDQsIDAuMDAwOSwgMC4wMDA4OTksIDAuMDAwODk2IiwgXAotICAgICAgICAgICIwLjAwMDkwNCwgMC4wMDA5MDQsIDAuMDAwOTA0LCAwLjAwMDkwNCwgMC4wMDA5MDIsIDAuMDAwODk4LCAwLjAwMDg5NiIsIFwKLSAgICAgICAgICAiMC4wMDA5MDIsIDAuMDAwOTAzLCAwLjAwMDkwMywgMC4wMDA5MDIsIDAuMDAwOTAxLCAwLjAwMDg5OCwgMC4wMDA4OTYiLCBcCi0gICAgICAgICAgIjAuMDAwOSwgMC4wMDA5MDEsIDAuMDAwOTAyLCAwLjAwMDkwMiwgMC4wMDA5MDEsIDAuMDAwODk4LCAwLjAwMDg5NSIsIFwKLSAgICAgICAgICAiMC4wMDA4OTksIDAuMDAwOSwgMC4wMDA5MDIsIDAuMDAwOTAyLCAwLjAwMDkwMSwgMC4wMDA4OTcsIDAuMDAwODk1IiwgXAotICAgICAgICAgICIwLjAwMDg5NywgMC4wMDA4OTgsIDAuMDAwOTAxLCAwLjAwMDkwMSwgMC4wMDA5LCAwLjAwMDg5NywgMC4wMDA4OTUiLCBcCi0gICAgICAgICAgIjAuMDAwODkzLCAwLjAwMDg5NiwgMC4wMDA5LCAwLjAwMDkwMSwgMC4wMDA5LCAwLjAwMDg5NywgMC4wMDA4OTUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxNTg0LCAwLjAwMTU4NCwgMC4wMDE1ODQsIDAuMDAxNTg0LCAwLjAwMTU4MywgMC4wMDE1OCwgMC4wMDE1MDQiLCBcCi0gICAgICAgICAgIjAuMDAxNTg2LCAwLjAwMTU4NiwgMC4wMDE1ODcsIDAuMDAxNTg4LCAwLjAwMTU4OCwgMC4wMDE1ODUsIDAuMDAxNTEzIiwgXAotICAgICAgICAgICIwLjAwMTU4NSwgMC4wMDE1ODYsIDAuMDAxNTg4LCAwLjAwMTU4OCwgMC4wMDE1ODgsIDAuMDAxNTg2LCAwLjAwMTUwOCIsIFwKLSAgICAgICAgICAiMC4wMDE1ODQsIDAuMDAxNTg0LCAwLjAwMTU4NywgMC4wMDE1ODgsIDAuMDAxNTg5LCAwLjAwMTU4NiwgMC4wMDE1MTkiLCBcCi0gICAgICAgICAgIjAuMDAxNTgyLCAwLjAwMTU4MywgMC4wMDE1ODcsIDAuMDAxNTg4LCAwLjAwMTU4OSwgMC4wMDE1ODYsIDAuMDAxNTA4IiwgXAotICAgICAgICAgICIwLjAwMTU4LCAwLjAwMTU4MSwgMC4wMDE1ODYsIDAuMDAxNTg4LCAwLjAwMTU4OCwgMC4wMDE1ODYsIDAuMDAxNTA3IiwgXAotICAgICAgICAgICIwLjAwMTU3NywgMC4wMDE1NzksIDAuMDAxNTg1LCAwLjAwMTU4OCwgMC4wMDE1ODgsIDAuMDAxNTg2LCAwLjAwMTUxMiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDY4LCAwLjAwMDY4LCAwLjAwMDY3OCwgMC4wMDA2NzksIDAuMDAwNjczLCAwLjAwMDY3NiwgMC4wMDA2NjgiLCBcCi0gICAgICAgICAgIjAuMDAwNjg3LCAwLjAwMDY4OCwgMC4wMDA2ODksIDAuMDAwNjg5LCAwLjAwMDY4OCwgMC4wMDA2ODYsIDAuMDAwNjg1IiwgXAotICAgICAgICAgICIwLjAwMDY4NywgMC4wMDA2ODgsIDAuMDAwNjkxLCAwLjAwMDY5MSwgMC4wMDA2OTEsIDAuMDAwNjg4LCAwLjAwMDY4NyIsIFwKLSAgICAgICAgICAiMC4wMDA2ODYsIDAuMDAwNjg3LCAwLjAwMDY5LCAwLjAwMDY5MSwgMC4wMDA2OTEsIDAuMDAwNjg5LCAwLjAwMDY4OCIsIFwKLSAgICAgICAgICAiMC4wMDA2ODQsIDAuMDAwNjg1LCAwLjAwMDY5LCAwLjAwMDY5MSwgMC4wMDA2OTEsIDAuMDAwNjksIDAuMDAwNjg4IiwgXAotICAgICAgICAgICIwLjAwMDY4MSwgMC4wMDA2ODMsIDAuMDAwNjg5LCAwLjAwMDY5MSwgMC4wMDA2OTEsIDAuMDAwNjksIDAuMDAwNjg4IiwgXAotICAgICAgICAgICIwLjAwMDY3OCwgMC4wMDA2NzksIDAuMDAwNjg4LCAwLjAwMDY5LCAwLjAwMDY5MSwgMC4wMDA2OSwgMC4wMDA2ODgiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogT1IyWEwgKgotICogLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKE9SMlhMKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMDU2ODEwNjsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjE1Nzk2OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYxMjY1ODsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2MTU3OTY7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMTQ3LCAwLjAwMDE1NSwgMC4wMDAxNTcsIDAuMDAwMTU4LCAwLjAwMDE1OSwgMC4wMDAxNTksIDAuMDAwMTU5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMTcsIDAuMDAwMTcsIDAuMDAwMTcsIDAuMDAwMTcsIDAuMDAwMTcsIDAuMDAwMTcsIDAuMDAwMTciKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYwNjA5NDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MDU5ODQ7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjA2MDk0OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDA0OSwgMC4wMDAwNDksIDAuMDAwMDQ5LCAwLjAwMDA0OSwgMC4wMDAwNDksIDAuMDAwMDQ5LCAwLjAwMDA0OSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDE4NCwgMC4wMDAxODQsIDAuMDAwMTg0LCAwLjAwMDE4NCwgMC4wMDAxODQsIDAuMDAwMTg0LCAwLjAwMDE4NCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjA3MjgzMzsKLSAgICBmdW5jdGlvbiA6ICIoQStCKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTc3Mzk5LCAwLjIwMjY5NSwgMC40MzAwNjUsIDAuODA4ODI5LCAxLjE4NzU0LCAyLjA3MTEyLCAyLjU3NTk5IiwgXAotICAgICAgICAgICIwLjE4OTEyMiwgMC4yMTQ0MTYsIDAuNDQxNzg1LCAwLjgyMDU0OSwgMS4xOTkyNSwgMi4wODI4MSwgMi41ODc3MSIsIFwKLSAgICAgICAgICAiMC4yMDQ1MjgsIDAuMjI5ODI2LCAwLjQ1NzIwMywgMC44MzU5NjksIDEuMjE0NjcsIDIuMDk4MjMsIDIuNjAzMTMiLCBcCi0gICAgICAgICAgIjAuMjE5NzY4LCAwLjI0NTA3NCwgMC40NzI0NDYsIDAuODUxMjA0LCAxLjIyOTk5LCAyLjExMzU2LCAyLjYxODM2IiwgXAotICAgICAgICAgICIwLjIzNDgwMiwgMC4yNjAxMDEsIDAuNDg3NTAxLCAwLjg2NjI2NSwgMS4yNDQ5NiwgMi4xMjg1NCwgMi42MzM1NCIsIFwKLSAgICAgICAgICAiMC4yNTcxOTIsIDAuMjgyNDg5LCAwLjUwOTg5OCwgMC44ODg2NjgsIDEuMjY3NDYsIDIuMTUwOTYsIDIuNjU1ODEiLCBcCi0gICAgICAgICAgIjAuMjc1NDA3LCAwLjMwMDczNSwgMC41MjgxMTIsIDAuOTA2ODg2LCAxLjI4NTYxLCAyLjE2OTE4LCAyLjY3NDAzIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI3MDU4NywgMC4zMjIyNDgsIDAuNzgyNjI4LCAxLjU1MDgsIDIuMzIxNzUsIDQuMTE2NjIsIDUuMTM1MjIiLCBcCi0gICAgICAgICAgIjAuMjcwNDMxLCAwLjMyMjIwMSwgMC43ODI2MzEsIDEuNTUyNDgsIDIuMzIyNiwgNC4xMTc5NSwgNS4xMzUyMSIsIFwKLSAgICAgICAgICAiMC4yNzA2MTUsIDAuMzIyMTg1LCAwLjc4MjYyMSwgMS41NTI0MSwgMi4zMjI1NywgNC4xMTc5MSwgNS4xMzUxNSIsIFwKLSAgICAgICAgICAiMC4yNzEwNjMsIDAuMzIxNDUyLCAwLjc4MjU0NywgMS41NTMwNiwgMi4zMTg1NywgNC4xMTg0MSwgNS4xMzg1NCIsIFwKLSAgICAgICAgICAiMC4yNzEwNTUsIDAuMzIyMjE1LCAwLjc4Mzc1NiwgMS41NTA1NywgMi4zMjIwNSwgNC4xMTc2NiwgNS4xMzc5OCIsIFwKLSAgICAgICAgICAiMC4yNzEwNzYsIDAuMzIyMjQzLCAwLjc4MjUxMywgMS41NTI1NSwgMi4zMTg1OCwgNC4xMTcyMywgNS4xMzc4OCIsIFwKLSAgICAgICAgICAiMC4yNzA2NzUsIDAuMzIxNTU3LCAwLjc4MjQwNSwgMS41NTI1NCwgMi4zMjIxNywgNC4xMTcyMywgNS4xMzc5MiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMjk0NTksIDAuMjU5MTc1LCAwLjUyNjUwOCwgMC45NzIyODcsIDEuNDE3NjcsIDIuNDU2OTYsIDMuMDUxMTgiLCBcCi0gICAgICAgICAgIjAuMjQwNjczLCAwLjI3MDM5LCAwLjUzNzc4NiwgMC45ODM0NTcsIDEuNDI5MjMsIDIuNDY5NDIsIDMuMDYyNSIsIFwKLSAgICAgICAgICAiMC4yNTM1MTUsIDAuMjgzMjUsIDAuNTUwNzQ0LCAwLjk5NjE5NiwgMS40NDE4LCAyLjQ4MjI3LCAzLjA3NTE4IiwgXAotICAgICAgICAgICIwLjI2NjAwNCwgMC4yOTU3MzcsIDAuNTYzMTAzLCAxLjAwODc3LCAxLjQ1NDUyLCAyLjQ5NDc1LCAzLjA4Nzc0IiwgXAotICAgICAgICAgICIwLjI3ODA1NiwgMC4zMDc3OTcsIDAuNTc1MzMxLCAxLjAyMDkzLCAxLjQ2NjMzLCAyLjUwNjc0LCAzLjA5OTgzIiwgXAotICAgICAgICAgICIwLjI5Njg1MywgMC4zMjY1NzQsIDAuNTk0MDk1LCAxLjAzOTUsIDEuNDg1MDQsIDIuNTI0ODMsIDMuMTE5MDEiLCBcCi0gICAgICAgICAgIjAuMzEyNDc4LCAwLjM0MjE5NywgMC42MDk2NDYsIDEuMDU1MjksIDEuNTAxMTcsIDIuNTQwMiwgMy4xMzQyNiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMTI3MTYsIDAuMzY5ODksIDAuOTAwOTcyLCAxLjc4Mjk0LCAyLjY2OTI4LCA0LjcyMDc5LCA1Ljg5MjgxIiwgXAotICAgICAgICAgICIwLjMxMjcxMywgMC4zNzEzNzYsIDAuOTAwOTk5LCAxLjc3OTY0LCAyLjY2NDM5LCA0LjcyMDksIDUuODkyNTQiLCBcCi0gICAgICAgICAgIjAuMzEyMDQ1LCAwLjM3MTM1MSwgMC44OTk0NzMsIDEuNzc5MDYsIDIuNjYxMDQsIDQuNzIyNTksIDUuODkyNzQiLCBcCi0gICAgICAgICAgIjAuMzEyNjgxLCAwLjM3MDA1NCwgMC44OTg4NTUsIDEuNzgsIDIuNjY0MzEsIDQuNzE4MzMsIDUuODkyNDYiLCBcCi0gICAgICAgICAgIjAuMzEyNTcyLCAwLjM2OTk0MywgMC44OTg3MzQsIDEuNzgzMDUsIDIuNjcwNzksIDQuNzE5MTYsIDUuODkyNDUiLCBcCi0gICAgICAgICAgIjAuMzEyNzg1LCAwLjM3MDA5MSwgMC44OTk1NTEsIDEuNzg0MjQsIDIuNjYwOTEsIDQuNzIwODksIDUuODkxODgiLCBcCi0gICAgICAgICAgIjAuMzEyOTM3LCAwLjM3MDgzNiwgMC44OTk3ODMsIDEuNzgwMDgsIDIuNjY3MDUsIDQuNzE3ODksIDUuODkyNDMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTcxNzM0LCAwLjE5Njk4NiwgMC40MjQzMzMsIDAuODAzMDUsIDEuMTgxOCwgMi4wNjYwNiwgMi41NzExNCIsIFwKLSAgICAgICAgICAiMC4xODM0ODcsIDAuMjA4NzYxLCAwLjQzNjEwNiwgMC44MTQ4NzQsIDEuMTkzNywgMi4wNzg0MywgMi41ODI2NyIsIFwKLSAgICAgICAgICAiMC4xOTg5MjIsIDAuMjI0MTY4LCAwLjQ1MTU0MiwgMC44MzA1OTgsIDEuMjA5NTIsIDIuMDkzMjgsIDIuNTk4NTYiLCBcCi0gICAgICAgICAgIjAuMjEzOTEyLCAwLjIzOTE3OSwgMC40NjY2MzEsIDAuODQ1MzA1LCAxLjIyNDM1LCAyLjEwNzksIDIuNjEzMjUiLCBcCi0gICAgICAgICAgIjAuMjI4NTE3LCAwLjI1Mzc4NSwgMC40ODEyMDIsIDAuODYwMzU1LCAxLjIzOTI4LCAyLjEyMzA3LCAyLjYyNzM0IiwgXAotICAgICAgICAgICIwLjI0OTgwMiwgMC4yNzUwNjUsIDAuNTAyNDQ2LCAwLjg4MTIwMSwgMS4yNTk5MSwgMi4xNDQwMywgMi42NDk1NiIsIFwKLSAgICAgICAgICAiMC4yNjY0OSwgMC4yOTE3MjIsIDAuNTE5MDM0LCAwLjg5ODAyNiwgMS4yNzY2OCwgMi4xNjEyNSwgMi42NjU5NiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yNzA1MTQsIDAuMzIxNzM1LCAwLjc4MTc5OCwgMS41NTMyMywgMi4zMjMwMiwgNC4xMTI5NSwgNS4xMzM4MyIsIFwKLSAgICAgICAgICAiMC4yNzA1MTUsIDAuMzIwODgzLCAwLjc4MTY4NCwgMS41NTA1NywgMi4zMTkyOCwgNC4xMDg0NCwgNS4xMzQzOCIsIFwKLSAgICAgICAgICAiMC4yNzA1MTYsIDAuMzIxNzE3LCAwLjc4MTY4NCwgMS41NDk5MSwgMi4zMTczNiwgNC4xMDk1MiwgNS4xMzI2OCIsIFwKLSAgICAgICAgICAiMC4yNzA0NSwgMC4zMjE3MjMsIDAuNzgxNjAxLCAxLjU0ODk3LCAyLjMxNzQzLCA0LjEwNzI5LCA1LjEzNzIxIiwgXAotICAgICAgICAgICIwLjI2OTgxMywgMC4zMjA4OTIsIDAuNzgxNiwgMS41NTAzNywgMi4zMTY5MSwgNC4xMDkyNywgNS4xMzQyNSIsIFwKLSAgICAgICAgICAiMC4yNjk5NywgMC4zMjE4LCAwLjc4MTc1MywgMS41NDkwMywgMi4zMTY5OSwgNC4xMTE2OSwgNS4xMzQ2NyIsIFwKLSAgICAgICAgICAiMC4yNzA5NDQsIDAuMzIxOTU4LCAwLjc4MzE2LCAxLjU0OTUyLCAyLjMxNzgzLCA0LjEwOTAyLCA1LjEzNTgzIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIyMzMzNSwgMC4yNTMwNTYsIDAuNTIwNDE2LCAwLjk2NjExNCwgMS40MTE4MywgMi40NTE1NiwgMy4wNDUwOCIsIFwKLSAgICAgICAgICAiMC4yMzMxNzgsIDAuMjYyODgyLCAwLjUzMDI0OSwgMC45NzU5MzksIDEuNDIxNTMsIDIuNDYwOTksIDMuMDU1MDQiLCBcCi0gICAgICAgICAgIjAuMjQ2MzY0LCAwLjI3NjEwNSwgMC41NDM2MzUsIDAuOTg5Mjk3LCAxLjQzNDY1LCAyLjQ3NTI5LCAzLjA2ODMyIiwgXAotICAgICAgICAgICIwLjI1OTU1NywgMC4yODkzMDMsIDAuNTU2ODQ0LCAxLjAwMjU4LCAxLjQ0NzksIDIuNDg4NSwgMy4wODEzNSIsIFwKLSAgICAgICAgICAiMC4yNzI2MjQsIDAuMzAyMzczLCAwLjU2OTk0MiwgMS4wMTU1OCwgMS40NjA5MywgMi41MDE0NywgMy4wOTQ0OCIsIFwKLSAgICAgICAgICAiMC4yOTIwODEsIDAuMzIxODA5LCAwLjU4OTMxNywgMS4wMzUwNiwgMS40ODAzOSwgMi41MjA4MSwgMy4xMTM5NiIsIFwKLSAgICAgICAgICAiMC4zMDc0MDcsIDAuMzM3MTM4LCAwLjYwNDYwMiwgMS4wNTA0NiwgMS40OTU4NSwgMi41MzYyOSwgMy4xMjkxMSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMTI3MDgsIDAuMzcwMjQ0LCAwLjg5OTcxMiwgMS43ODAyOSwgMi42NjQyNywgNC43MjA2OCwgNS44OTI4MSIsIFwKLSAgICAgICAgICAiMC4zMTI2ODIsIDAuMzcwNDQ4LCAwLjg5OTc4MSwgMS43Nzk3NSwgMi42NjQ0NiwgNC43MjMyMSwgNS44OTIwMSIsIFwKLSAgICAgICAgICAiMC4zMTI2MDUsIDAuMzcxMzI5LCAwLjg5ODk4NSwgMS43ODEzOCwgMi42NjAyNiwgNC43MTc5NywgNS44OTE5IiwgXAotICAgICAgICAgICIwLjMxMjMzOSwgMC4zNzEzNjgsIDAuODk5Mjk3LCAxLjc4MDE1LCAyLjY2MDAyLCA0LjcyMTYsIDUuODkyMDciLCBcCi0gICAgICAgICAgIjAuMzEyNjI5LCAwLjM3MDA0NSwgMC44OTg3ODEsIDEuNzgxOTEsIDIuNjYwNTksIDQuNzE4NjYsIDUuODkyNDYiLCBcCi0gICAgICAgICAgIjAuMzEyOTEsIDAuMzcwNDE5LCAwLjg5ODMzMywgMS43ODE5NywgMi42NjA4NSwgNC43MTk2MywgNS44OTI0NSIsIFwKLSAgICAgICAgICAiMC4zMTMxNDksIDAuMzcxNzUxLCAwLjg5OTA4MSwgMS43ODAzNSwgMi42NjE1NSwgNC43MjI1LCA1Ljg5MDM5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwODMxLCAwLjAwMDgzMiwgMC4wMDA4MzIsIDAuMDAwODMzLCAwLjAwMDgzMiwgMC4wMDA4MzMsIDAuMDAwODMzIiwgXAotICAgICAgICAgICIwLjAwMDgxNywgMC4wMDA4MTcsIDAuMDAwODE5LCAwLjAwMDgxOSwgMC4wMDA4MTksIDAuMDAwODE5LCAwLjAwMDgxOCIsIFwKLSAgICAgICAgICAiMC4wMDA4MDksIDAuMDAwODEsIDAuMDAwODExLCAwLjAwMDgxMSwgMC4wMDA4MTEsIDAuMDAwODExLCAwLjAwMDgxMiIsIFwKLSAgICAgICAgICAiMC4wMDA4MDQsIDAuMDAwODA1LCAwLjAwMDgwNywgMC4wMDA4MDcsIDAuMDAwODA3LCAwLjAwMDgwNywgMC4wMDA4MDciLCBcCi0gICAgICAgICAgIjAuMDAwODAxLCAwLjAwMDgwMiwgMC4wMDA4MDQsIDAuMDAwODA1LCAwLjAwMDgwNSwgMC4wMDA4MDUsIDAuMDAwODA1IiwgXAotICAgICAgICAgICIwLjAwMDc5OCwgMC4wMDA3OTksIDAuMDAwODAyLCAwLjAwMDgwMywgMC4wMDA4MDMsIDAuMDAwODAzLCAwLjAwMDgwMyIsIFwKLSAgICAgICAgICAiMC4wMDA3OTgsIDAuMDAwNzk5LCAwLjAwMDgwMiwgMC4wMDA4MDMsIDAuMDAwODAzLCAwLjAwMDgwMywgMC4wMDA4MDQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDE2NDUsIDAuMDAxNjQ2LCAwLjAwMTY0NywgMC4wMDE2NDgsIDAuMDAxNjQ4LCAwLjAwMTY0OCwgMC4wMDE2NDgiLCBcCi0gICAgICAgICAgIjAuMDAxNjM4LCAwLjAwMTYzOCwgMC4wMDE2NCwgMC4wMDE2NCwgMC4wMDE2NDEsIDAuMDAxNjQxLCAwLjAwMTY0MSIsIFwKLSAgICAgICAgICAiMC4wMDE2MzMsIDAuMDAxNjMzLCAwLjAwMTYzNSwgMC4wMDE2MzYsIDAuMDAxNjM2LCAwLjAwMTYzNiwgMC4wMDE2MzYiLCBcCi0gICAgICAgICAgIjAuMDAxNjMsIDAuMDAxNjMsIDAuMDAxNjMyLCAwLjAwMTYzMywgMC4wMDE2MzMsIDAuMDAxNjMzLCAwLjAwMTYzMyIsIFwKLSAgICAgICAgICAiMC4wMDE2MjgsIDAuMDAxNjI4LCAwLjAwMTYzMSwgMC4wMDE2MzIsIDAuMDAxNjMyLCAwLjAwMTYzMiwgMC4wMDE2MzIiLCBcCi0gICAgICAgICAgIjAuMDAxNjI1LCAwLjAwMTYyNiwgMC4wMDE2MjksIDAuMDAxNjMsIDAuMDAxNjMsIDAuMDAxNjMxLCAwLjAwMTYzMSIsIFwKLSAgICAgICAgICAiMC4wMDE2MjQsIDAuMDAxNjI1LCAwLjAwMTYyOCwgMC4wMDE2MjksIDAuMDAxNjMsIDAuMDAxNjMsIDAuMDAxNjMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDA2NjMsIDAuMDAwNjY0LCAwLjAwMDY2NCwgMC4wMDA2NjUsIDAuMDAwNjY1LCAwLjAwMDY2NCwgMC4wMDA2NjUiLCBcCi0gICAgICAgICAgIjAuMDAwNjQ5LCAwLjAwMDY1LCAwLjAwMDY1LCAwLjAwMDY1LCAwLjAwMDY1LCAwLjAwMDY1LCAwLjAwMDY1MSIsIFwKLSAgICAgICAgICAiMC4wMDA2MzcsIDAuMDAwNjM3LCAwLjAwMDYzOCwgMC4wMDA2MzksIDAuMDAwNjM5LCAwLjAwMDYzOSwgMC4wMDA2MzkiLCBcCi0gICAgICAgICAgIjAuMDAwNjI4LCAwLjAwMDYyOSwgMC4wMDA2MzEsIDAuMDAwNjMxLCAwLjAwMDYzMiwgMC4wMDA2MzIsIDAuMDAwNjMyIiwgXAotICAgICAgICAgICIwLjAwMDYyMywgMC4wMDA2MjQsIDAuMDAwNjI2LCAwLjAwMDYyNywgMC4wMDA2MjgsIDAuMDAwNjI4LCAwLjAwMDYyOCIsIFwKLSAgICAgICAgICAiMC4wMDA2MTksIDAuMDAwNjIsIDAuMDAwNjIzLCAwLjAwMDYyNCwgMC4wMDA2MjQsIDAuMDAwNjI1LCAwLjAwMDYyNSIsIFwKLSAgICAgICAgICAiMC4wMDA2MTcsIDAuMDAwNjE4LCAwLjAwMDYyMiwgMC4wMDA2MjMsIDAuMDAwNjI0LCAwLjAwMDYyNCwgMC4wMDA2MjQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDE1MDgsIDAuMDAxNTA5LCAwLjAwMTUxMSwgMC4wMDE1MTEsIDAuMDAxNTEyLCAwLjAwMTUxMiwgMC4wMDE1MTIiLCBcCi0gICAgICAgICAgIjAuMDAxNDk1LCAwLjAwMTQ5NiwgMC4wMDE0OTgsIDAuMDAxNDk5LCAwLjAwMTQ5OSwgMC4wMDE0OTksIDAuMDAxNDk5IiwgXAotICAgICAgICAgICIwLjAwMTQ4NywgMC4wMDE0ODgsIDAuMDAxNDkxLCAwLjAwMTQ5MiwgMC4wMDE0OTIsIDAuMDAxNDkyLCAwLjAwMTQ5MiIsIFwKLSAgICAgICAgICAiMC4wMDE0ODIsIDAuMDAxNDgzLCAwLjAwMTQ4NywgMC4wMDE0ODgsIDAuMDAxNDg4LCAwLjAwMTQ4OSwgMC4wMDE0ODkiLCBcCi0gICAgICAgICAgIjAuMDAxNDgsIDAuMDAxNDgxLCAwLjAwMTQ4NSwgMC4wMDE0ODYsIDAuMDAxNDg3LCAwLjAwMTQ4NywgMC4wMDE0ODciLCBcCi0gICAgICAgICAgIjAuMDAxNDc3LCAwLjAwMTQ3OCwgMC4wMDE0ODMsIDAuMDAxNDg1LCAwLjAwMTQ4NiwgMC4wMDE0ODYsIDAuMDAxNDg3IiwgXAotICAgICAgICAgICIwLjAwMTQ3NSwgMC4wMDE0NzcsIDAuMDAxNDgzLCAwLjAwMTQ4NSwgMC4wMDE0ODYsIDAuMDAxNDg3LCAwLjAwMTQ4NyIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBPUjNYMiAqCi0gKiAtLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoT1IzWDIpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4xMjI4OTI7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYyMTg4NTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MTgyMzk7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjIxODg1OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDE0NSwgMC4wMDAxNSwgMC4wMDAxNTIsIDAuMDAwMTU0LCAwLjAwMDE1NSwgMC4wMDAxNTUsIDAuMDAwMTU2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjA3LCAwLjAwMDIwNywgMC4wMDAyMDcsIDAuMDAwMjA3LCAwLjAwMDIwNywgMC4wMDAyMDYsIDAuMDAwMjA3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2MjEzODE7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjE4Mzk4OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDYyMTM4MTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxNDUsIDAuMDAwMTUzLCAwLjAwMDE1NywgMC4wMDAxNTgsIDAuMDAwMTU4LCAwLjAwMDE1OSwgMC4wMDAxNiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDE3LCAwLjAwMDE3LCAwLjAwMDE3LCAwLjAwMDE3LCAwLjAwMDE3LCAwLjAwMDE3LCAwLjAwMDE3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihDKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2MDg2NzI7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjA4NjYyOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDYwODY3MjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAwNSwgMC4wMDAwNSwgMC4wMDAwNSwgMC4wMDAwNSwgMC4wMDAwNSwgMC4wMDAwNSwgMC4wMDAwNSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDIxMiwgMC4wMDAyMTIsIDAuMDAwMjEyLCAwLjAwMDIxMiwgMC4wMDAyMTIsIDAuMDAwMjEyLCAwLjAwMDIxMiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjI1MDYyMzsKLSAgICBmdW5jdGlvbiA6ICIoKEErQikrQykiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEyMzY1NSwgMC4zMDQ3MzIsIDAuNDQ4MjI3LCAwLjYyNzM5MywgMC44MDY1MDMsIDAuOTg1NTY1LCAxLjE2NDY3IiwgXAotICAgICAgICAgICIwLjEzNTQ0NSwgMC4zMTY0MzYsIDAuNDU5OTc4LCAwLjYzOTEwNSwgMC44MTgyMzMsIDAuOTk3MjcxLCAxLjE3NjMxIiwgXAotICAgICAgICAgICIwLjE1MDYwNSwgMC4zMzE3NTcsIDAuNDc1MjkyLCAwLjY1NDQyNywgMC44MzM2MDQsIDEuMDEyNTksIDEuMTkxNjMiLCBcCi0gICAgICAgICAgIjAuMTY1NTk5LCAwLjM0NjgxMywgMC40OTAzMjcsIDAuNjY5NDkzLCAwLjg0ODU5MSwgMS4wMjc2NywgMS4yMDY3IiwgXAotICAgICAgICAgICIwLjE4MTIyOSwgMC4zNjI0NDYsIDAuNTA1OTUxLCAwLjY4NTEyOSwgMC44NjQyMzMsIDEuMDQzMywgMS4yMjI0IiwgXAotICAgICAgICAgICIwLjIwNTc0NSwgMC4zODY5MDQsIDAuNTMwNDIzLCAwLjcwOTY0MywgMC44ODg2OTUsIDEuMDY3OCwgMS4yNDY4IiwgXAotICAgICAgICAgICIwLjIyNjg1MiwgMC40MDc5MTEsIDAuNTUxNDI2LCAwLjczMDU4OSwgMC45MDk2OTcsIDEuMDg4NzUsIDEuMjY3OCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTQ3NDcsIDAuNDUxNjE5LCAwLjc0MzcxNiwgMS4xMDgzNywgMS40NzA3OCwgMS44MzcwOCwgMi4xOTg0NyIsIFwKLSAgICAgICAgICAiMC4wOTQ3NDcsIDAuNDUxNTA5LCAwLjc0MzQ2OCwgMS4xMDgzMSwgMS40NzEwOCwgMS44MzQ5NiwgMi4yMDI0MiIsIFwKLSAgICAgICAgICAiMC4wOTQ2MzIsIDAuNDUxOTA2LCAwLjc0MzM4LCAxLjEwODA4LCAxLjQ3MjMxLCAxLjgzNDgsIDIuMjAyMzkiLCBcCi0gICAgICAgICAgIjAuMDk0NjM1LCAwLjQ1MTg2OSwgMC43NDIxNCwgMS4xMDgyNSwgMS40NzMyLCAxLjgzNTA0LCAyLjIwMjM3IiwgXAotICAgICAgICAgICIwLjA5NDU4MiwgMC40NTE4OTgsIDAuNzQyNjMsIDEuMTA4MjgsIDEuNDcyMjUsIDEuODM0OTYsIDIuMjAxOTkiLCBcCi0gICAgICAgICAgIjAuMDk0NjA0LCAwLjQ1MTgwNiwgMC43NDM1ODEsIDEuMTA3OTQsIDEuNDcyMjQsIDEuODM3NCwgMi4yMDEzNSIsIFwKLSAgICAgICAgICAiMC4wOTUyMDEsIDAuNDUxNzU2LCAwLjc0MzQ1LCAxLjEwNzcyLCAxLjQ3MDczLCAxLjgzNzYsIDIuMjAxNCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yNDM4NzgsIDAuNDYyNzgxLCAwLjYyODAxNywgMC44MzQyNDcsIDEuMDQwMzksIDEuMjQ2NzUsIDEuNDUyODkiLCBcCi0gICAgICAgICAgIjAuMjU1MTU3LCAwLjQ3NDE4MywgMC42Mzk0NDUsIDAuODQ1NjYsIDEuMDUxOCwgMS4yNTgsIDEuNDY0MzEiLCBcCi0gICAgICAgICAgIjAuMjY4MTQxLCAwLjQ4Njg3OSwgMC42NTIxMzksIDAuODU4NCwgMS4wNjQ1NCwgMS4yNzA2OSwgMS40NzY5OSIsIFwKLSAgICAgICAgICAiMC4yNzk3ODIsIDAuNDk4NTA1LCAwLjY2Mzc4LCAwLjg3MDAwMiwgMS4wNzYzMSwgMS4yODIzNCwgMS40ODg2NCIsIFwKLSAgICAgICAgICAiMC4yOTEzNzEsIDAuNTEwMDYyLCAwLjY3NTMwNiwgMC44ODE1NDUsIDEuMDg3OCwgMS4yOTQxNSwgMS41MDAxMSIsIFwKLSAgICAgICAgICAiMC4zMDg2MTUsIDAuNTI3NjM4LCAwLjY5Mjk2NiwgMC44OTkxNzksIDEuMTA1NDMsIDEuMzExNDksIDEuNTE3ODEiLCBcCi0gICAgICAgICAgIjAuMzIzNzA4LCAwLjU0MjU3MSwgMC43MDc5MDcsIDAuOTE0MTI1LCAxLjEyMDM3LCAxLjMyNjQzLCAxLjUzMjcxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEzMzUzLCAwLjUyNDQ5OSwgMC44NDc2NSwgMS4yNTcyNCwgMS42Njc2NiwgMi4wNzEyMywgMi40ODU5MiIsIFwKLSAgICAgICAgICAiMC4xMzM0NDIsIDAuNTI0NDkyLCAwLjg0NzQyOSwgMS4yNTczNSwgMS42Njc2OSwgMi4wNzg4MiwgMi40ODc1NSIsIFwKLSAgICAgICAgICAiMC4xMzM2MiwgMC41MjQ1NjIsIDAuODQ3MDg1LCAxLjI1NzQsIDEuNjY3NzEsIDIuMDc4ODMsIDIuNDg2NzciLCBcCi0gICAgICAgICAgIjAuMTMzNTM2LCAwLjUyNDIxNiwgMC44NDc0MjIsIDEuMjU1ODcsIDEuNjYxODcsIDIuMDc4ODIsIDIuNDg3NDgiLCBcCi0gICAgICAgICAgIjAuMTMzNzM1LCAwLjUyNDE3NywgMC44NDgyODYsIDEuMjU0MzksIDEuNjYzNjUsIDIuMDc0ODIsIDIuNDg0MDIiLCBcCi0gICAgICAgICAgIjAuMTMzNzI4LCAwLjUyMzc1OCwgMC44NDU4NDIsIDEuMjUzODEsIDEuNjY3ODIsIDIuMDc4NzksIDIuNDgxNDkiLCBcCi0gICAgICAgICAgIjAuMTMzNTI5LCAwLjUyMzY5LCAwLjg0ODMzNCwgMS4yNTI5NiwgMS42Njc3OSwgMi4wNzg3NywgMi40ODI2MyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTgzMjUsIDAuMjk4NzM3LCAwLjQ0MjA4LCAwLjYyMTEwNSwgMC44MDAxMjMsIDAuOTc5MTU4LCAxLjE1ODEyIiwgXAotICAgICAgICAgICIwLjEzMDM1NiwgMC4zMTA4MTgsIDAuNDU0MTQsIDAuNjMzMTg3LCAwLjgxMjIwNSwgMC45OTEyMDQsIDEuMTcwMjEiLCBcCi0gICAgICAgICAgIjAuMTQ1NTc2LCAwLjMyNjA0NSwgMC40NjkzNzQsIDAuNjQ4NDE5LCAwLjgyNzQ0NywgMS4wMDY0OCwgMS4xODU0NCIsIFwKLSAgICAgICAgICAiMC4xNjA2OTgsIDAuMzQxMjM0LCAwLjQ4NDU2OCwgMC42NjM1MDYsIDAuODQyNjkzLCAxLjAyMTY1LCAxLjIwMDYzIiwgXAotICAgICAgICAgICIwLjE3NjE0NSwgMC4zNTY2ODYsIDAuNTAwMDI0LCAwLjY3OTA4OSwgMC44NTgwOTcsIDEuMDM3MDksIDEuMjE2MSIsIFwKLSAgICAgICAgICAiMC4yMDA1NjMsIDAuMzgwOTc5LCAwLjUyNDMyOCwgMC43MDMzODgsIDAuODgyNDA4LCAxLjA2MTQ0LCAxLjI0MDQyIiwgXAotICAgICAgICAgICIwLjIyMTYzNywgMC40MDE4OTksIDAuNTQ1Mjg1LCAwLjcyNDMwOCwgMC45MDMzMzQsIDEuMDgyMzYsIDEuMjYxMzMiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDkzNzAxLCAwLjQ1MDYxNSwgMC43NDMwMDgsIDEuMTA1OCwgMS40NzIyNiwgMS44MzMwMSwgMi4xOTg4OCIsIFwKLSAgICAgICAgICAiMC4wOTM2MTMsIDAuNDUwODU1LCAwLjc0MzAwOCwgMS4xMDU5MywgMS40NzAwOCwgMS44MzQxOCwgMi4xOTg2MiIsIFwKLSAgICAgICAgICAiMC4wOTM2MjEsIDAuNDUwNjExLCAwLjc0MzAwOCwgMS4xMDU5MSwgMS40Njk5NSwgMS44MzczNywgMi4xOTgzOCIsIFwKLSAgICAgICAgICAiMC4wOTM2MjUsIDAuNDUwOTc5LCAwLjc0MTEyNSwgMS4xMDU4OSwgMS40NzIzNywgMS44MzQyNywgMi4xOTg3NiIsIFwKLSAgICAgICAgICAiMC4wOTM1NjUsIDAuNDUwOTUzLCAwLjc0Mjk5NSwgMS4xMDc2NiwgMS40NzAxNiwgMS44MzY5OSwgMi4xOTg1MSIsIFwKLSAgICAgICAgICAiMC4wOTM4NzgsIDAuNDUwOTA5LCAwLjc0MzAwOCwgMS4xMDc1OSwgMS40NzAwOCwgMS44MzMxMywgMi4xOTg0OSIsIFwKLSAgICAgICAgICAiMC4wOTQyMDIsIDAuNDUwOTQ2LCAwLjc0Mjk3MywgMS4xMDczMiwgMS40NzIyLCAxLjgzNDM0LCAyLjE5ODU2Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIzNTkzMiwgMC40NTUxNzEsIDAuNjIwNDIzLCAwLjgyNjY2MywgMS4wMzI5LCAxLjIzOTI1LCAxLjQ0NTMxIiwgXAotICAgICAgICAgICIwLjI0NjM1LCAwLjQ2NTYyLCAwLjYzMDk0NiwgMC44MzcxNTYsIDEuMDQzNDEsIDEuMjQ5NDcsIDEuNDU1NjQiLCBcCi0gICAgICAgICAgIjAuMjU4OTg2LCAwLjQ3Nzk4MiwgMC42NDMyODEsIDAuODQ5NTE3LCAxLjA1NTc3LCAxLjI2MTgzLCAxLjQ2ODE1IiwgXAotICAgICAgICAgICIwLjI3MDg5NCwgMC40ODk3NDIsIDAuNjU1MDI2LCAwLjg2MTI3NCwgMS4wNjc1MywgMS4yNzM5LCAxLjQ3OTgxIiwgXAotICAgICAgICAgICIwLjI4MjcxMiwgMC41MDE3MDEsIDAuNjY3MDI2LCAwLjg3MzI0NCwgMS4wNzk1LCAxLjI4NTU2LCAxLjQ5MTcxIiwgXAotICAgICAgICAgICIwLjMwMTQ2MywgMC41MjA0NjYsIDAuNjg1NzY5LCAwLjg5MjAyNCwgMS4wOTgyNiwgMS4zMDQ0NSwgMS41MTA4OCIsIFwKLSAgICAgICAgICAiMC4zMTgwNzIsIDAuNTM3MDEzLCAwLjcwMjMxMSwgMC45MDg1NCwgMS4xMTQ2OSwgMS4zMjA4OSwgMS41MjcyMiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMzQwNTUsIDAuNTI0NTE2LCAwLjg0ODMwNCwgMS4yNTMyLCAxLjY2NzgyLCAyLjA3NDMsIDIuNDg1MjUiLCBcCi0gICAgICAgICAgIjAuMTMzNjUsIDAuNTIzODA4LCAwLjg0NjI5NCwgMS4yNTM1MywgMS42NjM0OSwgMi4wNzg4LCAyLjQ5MDMyIiwgXAotICAgICAgICAgICIwLjEzMzcxLCAwLjUyMzgwNiwgMC44NDc2MywgMS4yNTQxNSwgMS42NjM0OSwgMi4wNzg4LCAyLjQ4MTQzIiwgXAotICAgICAgICAgICIwLjEzMzQ5OSwgMC41MjM4MjksIDAuODQ3MTUzLCAxLjI1NDAzLCAxLjY2MzY3LCAyLjA3MjE2LCAyLjQ4NTA3IiwgXAotICAgICAgICAgICIwLjEzMzk4OSwgMC41MjM3NjksIDAuODQ2MTk3LCAxLjI1MzgyLCAxLjY2MzU1LCAyLjA3ODgsIDIuNDkwMyIsIFwKLSAgICAgICAgICAiMC4xMzM0MTEsIDAuNTIzNjksIDAuODQ2MzM0LCAxLjI1MzEsIDEuNjY3NzksIDIuMDczMDYsIDIuNDg1MTEiLCBcCi0gICAgICAgICAgIjAuMTMzNDQsIDAuNTI0MzkyLCAwLjg0ODI4NiwgMS4yNTczLCAxLjY2NzY1LCAyLjA3Mzg3LCAyLjQ4NzQzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExMTkxOSwgMC4yOTIwMTUsIDAuNDM1MjMzLCAwLjYxNDMxOCwgMC43OTMyMTUsIDAuOTcyMzQ0LCAxLjE1MTU3IiwgXAotICAgICAgICAgICIwLjEyMzkwMywgMC4zMDM5NDcsIDAuNDQ3MTY0LCAwLjYyNjI5MSwgMC44MDUzMTcsIDAuOTg0MTY3LCAxLjE2MzM3IiwgXAotICAgICAgICAgICIwLjEzOTEyNSwgMC4zMTkyNjcsIDAuNDYyNDc1LCAwLjY0MTUwMywgMC44MjA0MDcsIDAuOTk5NTI1LCAxLjE3ODY4IiwgXAotICAgICAgICAgICIwLjE1NDUyNCwgMC4zMzQ4LCAwLjQ3ODAzOCwgMC42NTcxMTgsIDAuODM2NDEsIDEuMDE1MTMsIDEuMTk0MyIsIFwKLSAgICAgICAgICAiMC4xNjk4NDcsIDAuMzUwMDY0LCAwLjQ5MzM4OCwgMC42NzIzNDcsIDAuODUxNjM3LCAxLjAzMDI3LCAxLjIwOTQzIiwgXAotICAgICAgICAgICIwLjE5NDA5MiwgMC4zNzQxOTMsIDAuNTE3NDUsIDAuNjk2NDkyLCAwLjg3NTUxNiwgMS4wNTQ1NiwgMS4yMzM3MyIsIFwKLSAgICAgICAgICAiMC4yMTQ3NzEsIDAuMzk0NzY0LCAwLjUzODAxMSwgMC43MTcwNDgsIDAuODk2MzA3LCAxLjA3NTI4LCAxLjI1NDU3Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5MzA1MiwgMC40NTAwMTEsIDAuNzQyNDI3LCAxLjEwNDMxLCAxLjQ3MjQ1LCAxLjgzMjI3LCAyLjE5NjgyIiwgXAotICAgICAgICAgICIwLjA5MzA0NCwgMC40NDk0MTMsIDAuNzQyMzE5LCAxLjEwNDU5LCAxLjQ2OTAzLCAxLjgzNzQ2LCAyLjE5NzI1IiwgXAotICAgICAgICAgICIwLjA5Mjk1MywgMC40NTA0MzksIDAuNzQyNTE3LCAxLjEwNzUsIDEuNDcyMTMsIDEuODM3NTYsIDIuMjAyMDgiLCBcCi0gICAgICAgICAgIjAuMDkyODk5LCAwLjQ0OTk1OSwgMC43NDI1NjgsIDEuMTA0NCwgMS40Njg3MSwgMS44MzI0MSwgMi4xOTY5NyIsIFwKLSAgICAgICAgICAiMC4wOTMwODgsIDAuNDUwOTgxLCAwLjc0MDQ1MSwgMS4xMDc1MywgMS40Njg2OSwgMS44MzcyNSwgMi4xOTYyNCIsIFwKLSAgICAgICAgICAiMC4wOTMzNDQsIDAuNDUwMzMyLCAwLjc0MjU3MiwgMS4xMDc1NCwgMS40NzIwOSwgMS44MzI0MSwgMi4xOTY5MSIsIFwKLSAgICAgICAgICAiMC4wOTQxNTcsIDAuNDUwMzYyLCAwLjc0MjU1NCwgMS4xMDc1LCAxLjQ2ODY4LCAxLjgzMjgyLCAyLjE5Njc0Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIyMDU4NiwgMC40Mzk3MDgsIDAuNjA1MDE5LCAwLjgxMTI1LCAxLjAxNzUzLCAxLjIyMzU4LCAxLjQyOTkiLCBcCi0gICAgICAgICAgIjAuMjMwMDAzLCAwLjQ0OTA5MywgMC42MTQ0MzQsIDAuODIwNjUyLCAxLjAyNjkxLCAxLjIzMjk3LCAxLjQzOTI4IiwgXAotICAgICAgICAgICIwLjI0MTY5LCAwLjQ2MDcyNywgMC42MjYwNiwgMC44MzIyNzcsIDEuMDM4NTQsIDEuMjQ0NiwgMS40NTA3NCIsIFwKLSAgICAgICAgICAiMC4yNTM4MSwgMC40NzI1OTUsIDAuNjM3ODc2LCAwLjg0NDEyNywgMS4wNTAzOSwgMS4yNTY2MywgMS40NjI3MiIsIFwKLSAgICAgICAgICAiMC4yNjYyMjksIDAuNDg1Mjc0LCAwLjY1MDU5LCAwLjg1Njg0MywgMS4wNjMwOSwgMS4yNjkxNiwgMS40NzU2NCIsIFwKLSAgICAgICAgICAiMC4yODYxMjQsIDAuNTA1MDkzLCAwLjY3MDQxNCwgMC44NzY2MjksIDEuMDgyOTIsIDEuMjg4OTcsIDEuNDk1MzUiLCBcCi0gICAgICAgICAgIjAuMzAzNDQ5LCAwLjUyMjUxOCwgMC42ODc4NTIsIDAuODk0MDcsIDEuMTAwMzcsIDEuMzA2NDIsIDEuNTEyNzgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTMzNzEyLCAwLjUyMzczNSwgMC44NDU5LCAxLjI1MjY0LCAxLjY2MjgxLCAyLjA3ODgxLCAyLjQ4MTM0IiwgXAotICAgICAgICAgICIwLjEzNDMxMSwgMC41MjM3OTUsIDAuODQ1NzIxLCAxLjI1MzcxLCAxLjY2NzgyLCAyLjA3ODc5LCAyLjQ4MTYiLCBcCi0gICAgICAgICAgIjAuMTM0MDY3LCAwLjUyMzc4MywgMC44NDYwNTQsIDEuMjUzOTksIDEuNjYzNDUsIDIuMDc4OCwgMi40OTAyNyIsIFwKLSAgICAgICAgICAiMC4xMzM2MjYsIDAuNTIzNzk0LCAwLjg0NjMxMywgMS4yNTQzMiwgMS42Njc4NCwgMi4wNzEyNiwgMi40ODQxOCIsIFwKLSAgICAgICAgICAiMC4xMzM1MTksIDAuNTIzNzIxLCAwLjg0NTY2MiwgMS4yNTM4MiwgMS42Njc4LCAyLjA3ODc5LCAyLjQ4MzUxIiwgXAotICAgICAgICAgICIwLjEzMzQ3NiwgMC41MjQzODYsIDAuODQ1ODI0LCAxLjI1NjAzLCAxLjY2MjM2LCAyLjA3ODc5LCAyLjQ4NTg5IiwgXAotICAgICAgICAgICIwLjEzMzQyLCAwLjUyNDMyMywgMC44NDU0MTcsIDEuMjU1ODksIDEuNjYyMzMsIDIuMDc4NzksIDIuNDg3NjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDIxNzIsIDAuMDAyMjAzLCAwLjAwMjIwNywgMC4wMDIyMDksIDAuMDAyMjA5LCAwLjAwMjIxLCAwLjAwMjIxIiwgXAotICAgICAgICAgICIwLjAwMjE2LCAwLjAwMjE5MSwgMC4wMDIxOTQsIDAuMDAyMTk3LCAwLjAwMjE5OCwgMC4wMDIxOTgsIDAuMDAyMTk4IiwgXAotICAgICAgICAgICIwLjAwMjE1MiwgMC4wMDIxODUsIDAuMDAyMTg5LCAwLjAwMjE5LCAwLjAwMjE5MiwgMC4wMDIxOTIsIDAuMDAyMTkzIiwgXAotICAgICAgICAgICIwLjAwMjE0NCwgMC4wMDIxOCwgMC4wMDIxODQsIDAuMDAyMTg2LCAwLjAwMjE4OCwgMC4wMDIxODgsIDAuMDAyMTg5IiwgXAotICAgICAgICAgICIwLjAwMjEzNywgMC4wMDIxNzUsIDAuMDAyMTgsIDAuMDAyMTgzLCAwLjAwMjE4NSwgMC4wMDIxODUsIDAuMDAyMTg2IiwgXAotICAgICAgICAgICIwLjAwMjEyOCwgMC4wMDIxNywgMC4wMDIxNzcsIDAuMDAyMTc5LCAwLjAwMjE4MSwgMC4wMDIxODIsIDAuMDAyMTgzIiwgXAotICAgICAgICAgICIwLjAwMjEyMiwgMC4wMDIxNjYsIDAuMDAyMTczLCAwLjAwMjE3NywgMC4wMDIxNzksIDAuMDAyMTgsIDAuMDAyMTgxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzMjg2LCAwLjAwMzM0OCwgMC4wMDMzNTcsIDAuMDAzMzYyLCAwLjAwMzM2NCwgMC4wMDMzNjYsIDAuMDAzMzY2IiwgXAotICAgICAgICAgICIwLjAwMzI4MSwgMC4wMDMzNDQsIDAuMDAzMzUzLCAwLjAwMzM1NywgMC4wMDMzNiwgMC4wMDMzNjEsIDAuMDAzMzYyIiwgXAotICAgICAgICAgICIwLjAwMzI3NiwgMC4wMDMzNCwgMC4wMDMzNDgsIDAuMDAzMzUzLCAwLjAwMzM1NSwgMC4wMDMzNTcsIDAuMDAzMzU4IiwgXAotICAgICAgICAgICIwLjAwMzI3MiwgMC4wMDMzMzYsIDAuMDAzMzQ1LCAwLjAwMzM1LCAwLjAwMzM1MiwgMC4wMDMzNTQsIDAuMDAzMzU1IiwgXAotICAgICAgICAgICIwLjAwMzI2OSwgMC4wMDMzMzQsIDAuMDAzMzQzLCAwLjAwMzM0OCwgMC4wMDMzNSwgMC4wMDMzNTIsIDAuMDAzMzUzIiwgXAotICAgICAgICAgICIwLjAwMzI2MywgMC4wMDMzMzEsIDAuMDAzMzQsIDAuMDAzMzQ1LCAwLjAwMzM0OCwgMC4wMDMzNDksIDAuMDAzMzUiLCBcCi0gICAgICAgICAgIjAuMDAzMjYyLCAwLjAwMzMyOSwgMC4wMDMzMzksIDAuMDAzMzQ0LCAwLjAwMzM0NywgMC4wMDMzNDgsIDAuMDAzMzQ5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxOTcyLCAwLjAwMjAwNSwgMC4wMDIwMDksIDAuMDAyMDExLCAwLjAwMjAxMiwgMC4wMDIwMTMsIDAuMDAyMDEzIiwgXAotICAgICAgICAgICIwLjAwMTk2NiwgMC4wMDIsIDAuMDAyMDA0LCAwLjAwMjAwNiwgMC4wMDIwMDYsIDAuMDAyMDA3LCAwLjAwMjAwOCIsIFwKLSAgICAgICAgICAiMC4wMDE5NTUsIDAuMDAxOTkzLCAwLjAwMTk5NywgMC4wMDIsIDAuMDAyLCAwLjAwMjAwMSwgMC4wMDIwMDEiLCBcCi0gICAgICAgICAgIjAuMDAxOTQ0LCAwLjAwMTk4NiwgMC4wMDE5OTEsIDAuMDAxOTk0LCAwLjAwMTk5NiwgMC4wMDE5OTUsIDAuMDAxOTk1IiwgXAotICAgICAgICAgICIwLjAwMTkzNiwgMC4wMDE5OCwgMC4wMDE5ODUsIDAuMDAxOTg5LCAwLjAwMTk5MSwgMC4wMDE5OTEsIDAuMDAxOTkyIiwgXAotICAgICAgICAgICIwLjAwMTkyMiwgMC4wMDE5NzEsIDAuMDAxOTc4LCAwLjAwMTk4MiwgMC4wMDE5ODQsIDAuMDAxOTg1LCAwLjAwMTk4NiIsIFwKLSAgICAgICAgICAiMC4wMDE5MTYsIDAuMDAxOTY2LCAwLjAwMTk3NCwgMC4wMDE5NzgsIDAuMDAxOTgxLCAwLjAwMTk4MiwgMC4wMDE5ODMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDMxNDQsIDAuMDAzMjEyLCAwLjAwMzIyMiwgMC4wMDMyMjcsIDAuMDAzMjMsIDAuMDAzMjMxLCAwLjAwMzIzMyIsIFwKLSAgICAgICAgICAiMC4wMDMxNDEsIDAuMDAzMjA4LCAwLjAwMzIxOCwgMC4wMDMyMjMsIDAuMDAzMjI1LCAwLjAwMzIyNywgMC4wMDMyMjgiLCBcCi0gICAgICAgICAgIjAuMDAzMTM3LCAwLjAwMzIwNCwgMC4wMDMyMTMsIDAuMDAzMjE5LCAwLjAwMzIyMSwgMC4wMDMyMjMsIDAuMDAzMjI0IiwgXAotICAgICAgICAgICIwLjAwMzEzMiwgMC4wMDMxOTksIDAuMDAzMjA5LCAwLjAwMzIxNSwgMC4wMDMyMTgsIDAuMDAzMjIsIDAuMDAzMjIxIiwgXAotICAgICAgICAgICIwLjAwMzEyOCwgMC4wMDMxOTcsIDAuMDAzMjA4LCAwLjAwMzIxMywgMC4wMDMyMTYsIDAuMDAzMjE4LCAwLjAwMzIxOSIsIFwKLSAgICAgICAgICAiMC4wMDMxMjMsIDAuMDAzMTkzLCAwLjAwMzIwNCwgMC4wMDMyMSwgMC4wMDMyMTMsIDAuMDAzMjE1LCAwLjAwMzIxNyIsIFwKLSAgICAgICAgICAiMC4wMDMxMjEsIDAuMDAzMTksIDAuMDAzMjAyLCAwLjAwMzIwOCwgMC4wMDMyMTEsIDAuMDAzMjEzLCAwLjAwMzIxNSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTc2OCwgMC4wMDE3OTcsIDAuMDAxODAyLCAwLjAwMTgwMiwgMC4wMDE4MDMsIDAuMDAxODA0LCAwLjAwMTgwNCIsIFwKLSAgICAgICAgICAiMC4wMDE3NjYsIDAuMDAxNzk3LCAwLjAwMTc5NywgMC4wMDE4MDIsIDAuMDAxODAyLCAwLjAwMTgwMSwgMC4wMDE4MDMiLCBcCi0gICAgICAgICAgIjAuMDAxNzUzLCAwLjAwMTc4OSwgMC4wMDE3OTIsIDAuMDAxNzk0LCAwLjAwMTc5NCwgMC4wMDE3OTUsIDAuMDAxNzk2IiwgXAotICAgICAgICAgICIwLjAwMTc0LCAwLjAwMTc4LCAwLjAwMTc4NSwgMC4wMDE3ODYsIDAuMDAxNzg4LCAwLjAwMTc4OSwgMC4wMDE3ODkiLCBcCi0gICAgICAgICAgIjAuMDAxNzI3LCAwLjAwMTc3MiwgMC4wMDE3NzcsIDAuMDAxNzgsIDAuMDAxNzgxLCAwLjAwMTc4MiwgMC4wMDE3ODMiLCBcCi0gICAgICAgICAgIjAuMDAxNzE0LCAwLjAwMTc2MywgMC4wMDE3NywgMC4wMDE3NzMsIDAuMDAxNzc1LCAwLjAwMTc3NiwgMC4wMDE3NzciLCBcCi0gICAgICAgICAgIjAuMDAxNzA2LCAwLjAwMTc1NywgMC4wMDE3NjUsIDAuMDAxNzY5LCAwLjAwMTc3MSwgMC4wMDE3NzIsIDAuMDAxNzczIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzMDAxLCAwLjAwMzA3MSwgMC4wMDMwODIsIDAuMDAzMDg4LCAwLjAwMzA5LCAwLjAwMzA5MiwgMC4wMDMwOTQiLCBcCi0gICAgICAgICAgIjAuMDAyOTkyLCAwLjAwMzA2MywgMC4wMDMwNzQsIDAuMDAzMDgsIDAuMDAzMDgzLCAwLjAwMzA4NSwgMC4wMDMwODYiLCBcCi0gICAgICAgICAgIjAuMDAyOTg0LCAwLjAwMzA1NiwgMC4wMDMwNjcsIDAuMDAzMDczLCAwLjAwMzA3NiwgMC4wMDMwNzgsIDAuMDAzMDc5IiwgXAotICAgICAgICAgICIwLjAwMjk3OSwgMC4wMDMwNSwgMC4wMDMwNjEsIDAuMDAzMDY4LCAwLjAwMzA3MSwgMC4wMDMwNzMsIDAuMDAzMDc1IiwgXAotICAgICAgICAgICIwLjAwMjk3NCwgMC4wMDMwNDYsIDAuMDAzMDU4LCAwLjAwMzA2NSwgMC4wMDMwNjgsIDAuMDAzMDcsIDAuMDAzMDcyIiwgXAotICAgICAgICAgICIwLjAwMjk2OSwgMC4wMDMwNCwgMC4wMDMwNTMsIDAuMDAzMDYsIDAuMDAzMDY0LCAwLjAwMzA2NiwgMC4wMDMwNjgiLCBcCi0gICAgICAgICAgIjAuMDAyOTY2LCAwLjAwMzAzNiwgMC4wMDMwNDksIDAuMDAzMDU3LCAwLjAwMzA2MSwgMC4wMDMwNjQsIDAuMDAzMDY2Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IE9SM1g0ICoKLSAqIC0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChPUjNYNCkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjI0MzQ4OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA4NTQ2NTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA4NDY5ODI7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwODU0NjU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjY2LCAwLjAwMDI3NSwgMC4wMDAyOCwgMC4wMDAyODMsIDAuMDAwMjg1LCAwLjAwMDI4NiwgMC4wMDAyODciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAzODksIDAuMDAwMzg5LCAwLjAwMDM4OCwgMC4wMDAzOSwgMC4wMDAzOSwgMC4wMDAzOSwgMC4wMDAzOSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwODg1OTEzOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDg4MDU0NTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA4ODU5MTM7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjY1LCAwLjAwMDI4MywgMC4wMDAyODksIDAuMDAwMjkyLCAwLjAwMDI5MywgMC4wMDAyOTQsIDAuMDAwMjk1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzEzLCAwLjAwMDMxMywgMC4wMDAzMTMsIDAuMDAwMzEzLCAwLjAwMDMxMywgMC4wMDAzMTMsIDAuMDAwMzEzIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihDKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA4ODc3Njk7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwODg3NzE0OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDg4Nzc2OTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAwOTEsIDAuMDAwMDkxLCAwLjAwMDA5MSwgMC4wMDAwOTEsIDAuMDAwMDkxLCAwLjAwMDA5MSwgMC4wMDAwOTEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAzMzMsIDAuMDAwMzMzLCAwLjAwMDMzMywgMC4wMDAzMzMsIDAuMDAwMzMzLCAwLjAwMDMzMywgMC4wMDAzMzMiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC41MzM0ODQ7Ci0gICAgZnVuY3Rpb24gOiAiKChBK0IpK0MpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5ODMxLCAwLjIyNzM1OSwgMC4zNTMwOTksIDAuNDQyNzQzLCAwLjU4NjExLCAwLjcxMTUyOSwgMC44OTA2NTgiLCBcCi0gICAgICAgICAgIjAuMTA5NzM5LCAwLjIzODgxMSwgMC4zNjQ1ODIsIDAuNDU0MTk4LCAwLjU5NzU2NCwgMC43MjI5ODEsIDAuOTAyMTA2IiwgXAotICAgICAgICAgICIwLjEyNDgzNSwgMC4yNTM4ODUsIDAuMzc5NjQ4LCAwLjQ2OTI5MSwgMC42MTI2OTYsIDAuNzM4MDg3LCAwLjkxNzE5NiIsIFwKLSAgICAgICAgICAiMC4xMzk4MDQsIDAuMjY4Nzg2LCAwLjM5NDU2NCwgMC40ODQxODMsIDAuNjI3NTUsIDAuNzUyOTY4LCAwLjkzMjA5NCIsIFwKLSAgICAgICAgICAiMC4xNTUwMTgsIDAuMjg0MDg1LCAwLjQwOTg3NywgMC40OTk1MDIsIDAuNjQyODc2LCAwLjc2ODI5MywgMC45NDc0MSIsIFwKLSAgICAgICAgICAiMC4xNzg5OTYsIDAuMzA3OTg1LCAwLjQzMzc1NywgMC41MjMzOTYsIDAuNjY2NzY2LCAwLjc5MjE4NCwgMC45NzE0MTMiLCBcCi0gICAgICAgICAgIjAuMTk5NTMsIDAuMzI4NjA1LCAwLjQ1NDMzNywgMC41NDQwNCwgMC42ODczODksIDAuODEyODExLCAwLjk5MTkzNSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2MDI4NSwgMC4zMDc5MTcsIDAuNTYyMTM3LCAwLjc0NDM4NiwgMS4wMzYyMiwgMS4yODk3MiwgMS42NTQwMyIsIFwKLSAgICAgICAgICAiMC4wNjAzMiwgMC4zMDcyODIsIDAuNTYwNzQsIDAuNzQ0MzM2LCAxLjAzNjE3LCAxLjI4OTY3LCAxLjY1NTQ3IiwgXAotICAgICAgICAgICIwLjA2MDI5MiwgMC4zMDc3MzEsIDAuNTYxOTgxLCAwLjc0NDI0MiwgMS4wMzU5NiwgMS4yOTE0NywgMS42NTU2MyIsIFwKLSAgICAgICAgICAiMC4wNjAyODksIDAuMzA3MjcsIDAuNTYwOTczLCAwLjc0NDI4MSwgMS4wMzYxNSwgMS4yODk2MywgMS42NTU1NiIsIFwKLSAgICAgICAgICAiMC4wNjAyNiwgMC4zMDcyNjEsIDAuNTYxMDMxLCAwLjc0NDMwOCwgMS4wMzU2NywgMS4yODk2MiwgMS42NTYyNyIsIFwKLSAgICAgICAgICAiMC4wNjA1NzQsIDAuMzA3MzA3LCAwLjU2MDY0MywgMC43NDQxNzIsIDEuMDM1NzEsIDEuMjg5NDUsIDEuNjU1NzMiLCBcCi0gICAgICAgICAgIjAuMDYxNjUzLCAwLjMwNzgzMiwgMC41NjIxNzUsIDAuNzQ0MDk0LCAxLjAzNTY0LCAxLjI4OTY2LCAxLjY1MzY2Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjA4MDIxLCAwLjM3MzE2NCwgMC41MTk4MjIsIDAuNjIzOTUyLCAwLjc5MDQzLCAwLjkzNjAzNiwgMS4xNDQxNiIsIFwKLSAgICAgICAgICAiMC4yMTkzMDgsIDAuMzg0NDE5LCAwLjUzMTA2NiwgMC42MzUyMDIsIDAuODAxNjg1LCAwLjk0NzI4NSwgMS4xNTUzNCIsIFwKLSAgICAgICAgICAiMC4yMzIyMzEsIDAuMzk3MTYsIDAuNTQzNzg0LCAwLjY0NzkxNywgMC44MTQ0LCAwLjk1OTk5LCAxLjE2ODA5IiwgXAotICAgICAgICAgICIwLjI0Mzc3NiwgMC40MDg4NDQsIDAuNTU1NTA0LCAwLjY1OTYzOCwgMC44MjYxMjIsIDAuOTcxODMyLCAxLjE3OTkxIiwgXAotICAgICAgICAgICIwLjI1NTMzOCwgMC40MjAxNjgsIDAuNTY2ODE2LCAwLjY3MDk0LCAwLjgzNzQxOCwgMC45ODMwNTgsIDEuMTkxMTIiLCBcCi0gICAgICAgICAgIjAuMjcyNjg0LCAwLjQzNzYyMSwgMC41ODQyNSwgMC42ODgzOSwgMC44NTQ4ODQsIDEuMDAwNDgsIDEuMjA4NTYiLCBcCi0gICAgICAgICAgIjAuMjg3NTA5LCAwLjQ1MjQ4OCwgMC41OTkxMTYsIDAuNzAzMjY1LCAwLjg2OTc1NywgMS4wMTU0OSwgMS4yMjM0MSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5NDUzMiwgMC4zNjgwNjYsIDAuNjUxMDAyLCAwLjg1NTI5MiwgMS4xODQxMiwgMS40NzI1NywgMS44ODQ3MyIsIFwKLSAgICAgICAgICAiMC4wOTQ3OSwgMC4zNjgwNjgsIDAuNjUxMDUxLCAwLjg1NTUzOSwgMS4xODM1MiwgMS40NzI5NCwgMS44ODY5MSIsIFwKLSAgICAgICAgICAiMC4wOTQwNTcsIDAuMzY4MDI0LCAwLjY1MDkzNSwgMC44NTU2MTYsIDEuMTgzNDYsIDEuNDc1OTksIDEuODkwODEiLCBcCi0gICAgICAgICAgIjAuMDk0NTcxLCAwLjM2ODAzLCAwLjY1MTA0MSwgMC44NTU1OTcsIDEuMTgzNCwgMS40NzI0OSwgMS44ODM5MyIsIFwKLSAgICAgICAgICAiMC4wOTQ0ODgsIDAuMzY4MDU1LCAwLjY1MDk5MSwgMC44NTYyNDIsIDEuMTg2MzEsIDEuNDczMjIsIDEuODkwOCIsIFwKLSAgICAgICAgICAiMC4wOTQzMjYsIDAuMzY3OTg3LCAwLjY1MTAyOSwgMC44NTM3NjYsIDEuMTgyODQsIDEuNDc0MTksIDEuODkwNzkiLCBcCi0gICAgICAgICAgIjAuMDk0LCAwLjM2Nzg0LCAwLjY1MDc4NSwgMC44NTY0MTYsIDEuMTg1MywgMS40NzE0OSwgMS44OTA3NyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5MzU5NCwgMC4yMjE5NDMsIDAuMzQ3NDk2LCAwLjQzNzA1NCwgMC41ODAzMzgsIDAuNzA1NzA3LCAwLjg4NDc2MyIsIFwKLSAgICAgICAgICAiMC4xMDUzMjgsIDAuMjMzNzAzLCAwLjM1OTI2LCAwLjQ0ODgxNywgMC41OTIxMTUsIDAuNzE3NDU2LCAwLjg5NjUzNCIsIFwKLSAgICAgICAgICAiMC4xMjAzMTIsIDAuMjQ4NzA0LCAwLjM3NDI1NiwgMC40NjM4MTQsIDAuNjA3MTIyLCAwLjczMjQ1MywgMC45MTE1MzMiLCBcCi0gICAgICAgICAgIjAuMTM1NTI1LCAwLjI2MzkxOSwgMC4zODk0NDgsIDAuNDc5MDU0LCAwLjYyMjMyNSwgMC43NDc2ODIsIDAuOTI2NzU3IiwgXAotICAgICAgICAgICIwLjE1MDQwMSwgMC4yNzg4NTgsIDAuNDA0NDIyLCAwLjQ5Mzk4NCwgMC42MzcyNzIsIDAuNzYyNjQ0LCAwLjk0MTcxOSIsIFwKLSAgICAgICAgICAiMC4xNzQxMSwgMC4zMDI1MjUsIDAuNDI4MTA0LCAwLjUxNzY0NCwgMC42NjA5NTIsIDAuNzg2MzExLCAwLjk2NTQ0NCIsIFwKLSAgICAgICAgICAiMC4xOTQ1NTEsIDAuMzIzMDQ4LCAwLjQ0ODYxLCAwLjUzODIyNywgMC42ODE0ODUsIDAuODA2ODU0LCAwLjk4NTkxNSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1OTM1NCwgMC4zMDY5MiwgMC41NjE1OTgsIDAuNzQzNzgxLCAxLjAzMzk3LCAxLjI4OTA3LCAxLjY1MzQ5IiwgXAotICAgICAgICAgICIwLjA1OTM0LCAwLjMwNjMsIDAuNTYxNTg4LCAwLjc0MzcxOSwgMS4wMzQwMiwgMS4yOTA5NiwgMS42NTMyMiIsIFwKLSAgICAgICAgICAiMC4wNTkzMjgsIDAuMzA2MjIzLCAwLjU2MTU3LCAwLjc0MzcxNSwgMS4wMzM0NCwgMS4yODg4NywgMS42NTM0NyIsIFwKLSAgICAgICAgICAiMC4wNTkzMDcsIDAuMzA2MjY0LCAwLjU2MDQ5MiwgMC43NDIyNzksIDEuMDMzOSwgMS4yODg5MywgMS42NTU5NSIsIFwKLSAgICAgICAgICAiMC4wNTkzODksIDAuMzA2MjI5LCAwLjU2MTU1NywgMC43NDM2ODUsIDEuMDMzODEsIDEuMjg4OTQsIDEuNjUzMzMiLCBcCi0gICAgICAgICAgIjAuMDYwMTc2LCAwLjMwNzAxNywgMC41NjAwNDMsIDAuNzQzNjA2LCAxLjAzMzkxLCAxLjI4ODkxLCAxLjY1NTgyIiwgXAotICAgICAgICAgICIwLjA2MDg4NiwgMC4zMDY1MjUsIDAuNTYxNTIzLCAwLjc0MzcwNSwgMS4wMzM4NywgMS4yODg4NCwgMS42NTMyNSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIwMTQyOCwgMC4zNjU4ODQsIDAuNTEyNTkyLCAwLjYxNjczMiwgMC43ODMxOTcsIDAuOTI4ODg0LCAxLjEzNjg5IiwgXAotICAgICAgICAgICIwLjIxMTgzNCwgMC4zNzY1NCwgMC41MjMyNDQsIDAuNjI3MzcyLCAwLjc5Mzg1NiwgMC45Mzk1NDUsIDEuMTQ3NTUiLCBcCi0gICAgICAgICAgIjAuMjIzODg4LCAwLjM4ODkyMiwgMC41MzU1OTksIDAuNjM5NzMxLCAwLjgwNjIxNiwgMC45NTE5MzYsIDEuMTU5OTkiLCBcCi0gICAgICAgICAgIjAuMjM2LCAwLjQwMDYyOCwgMC41NDcyOTgsIDAuNjUxNDA2LCAwLjgxNzkxNywgMC45NjM2NzIsIDEuMTcxNTkiLCBcCi0gICAgICAgICAgIjAuMjQ3NzQ1LCAwLjQxMjYxOSwgMC41NTkyODcsIDAuNjYzNDM5LCAwLjgyOTkyNCwgMC45NzU2NDksIDEuMTgzNTgiLCBcCi0gICAgICAgICAgIjAuMjY2NjMsIDAuNDMxNTc3LCAwLjU3ODI0LCAwLjY4MjM5OSwgMC44NDg4ODcsIDAuOTk0NjA4LCAxLjIwMjU0IiwgXAotICAgICAgICAgICIwLjI4MzAzNSwgMC40NDgwMjEsIDAuNTk0NjgzLCAwLjY5ODgyMiwgMC44NjUzMTIsIDEuMDExMDgsIDEuMjE5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk0MDg4LCAwLjM2ODM1OSwgMC42NTA4MzUsIDAuODU1MDMzLCAxLjE4NDAyLCAxLjQ3Mzg3LCAxLjg5MDg1IiwgXAotICAgICAgICAgICIwLjA5NDE4LCAwLjM2Nzk2NCwgMC42NTA5NDUsIDAuODU2Mzk0LCAxLjE4NjU2LCAxLjQ3Mzk5LCAxLjg5MDgxIiwgXAotICAgICAgICAgICIwLjA5NDUzNSwgMC4zNjgwMjQsIDAuNjUwOTg0LCAwLjg1NDg5NywgMS4xODM4MiwgMS40NzIsIDEuODg0MTMiLCBcCi0gICAgICAgICAgIjAuMDk0MjQyLCAwLjM2Nzk5NSwgMC42NTA3MDIsIDAuODU2MiwgMS4xODUyLCAxLjQ3MzUyLCAxLjg5MDc5IiwgXAotICAgICAgICAgICIwLjA5NDM3MywgMC4zNjgwNTgsIDAuNjUwMDcyLCAwLjg1NDM4MywgMS4xODQ0MiwgMS40NzE4MSwgMS44OTA3NyIsIFwKLSAgICAgICAgICAiMC4wOTQxMDgsIDAuMzY3OTI1LCAwLjY0OTk2OCwgMC44NTQ5OTEsIDEuMTg0NTUsIDEuNDcxOTQsIDEuODkwNzciLCBcCi0gICAgICAgICAgIjAuMDk0MDEyLCAwLjM2NzkzNiwgMC42NTA4ODUsIDAuODU0OTkyLCAxLjE4NDE4LCAxLjQ3MTI0LCAxLjg5MDc3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg3OTE2LCAwLjIxNTkzNSwgMC4zNDEzNjMsIDAuNDMwODcxLCAwLjU3NDE0NCwgMC42OTk4MTksIDAuODc4NjY1IiwgXAotICAgICAgICAgICIwLjA5OTc4NywgMC4yMjc3MDgsIDAuMzUzMTA2LCAwLjQ0MjYzLCAwLjU4NTg3MiwgMC43MTExODksIDAuODkwNSIsIFwKLSAgICAgICAgICAiMC4xMTQ3MTEsIDAuMjQyNzcsIDAuMzY4MTc0LCAwLjQ1NzY4OSwgMC42MDA5NzYsIDAuNzI2NjYxLCAwLjkwNTUzNSIsIFwKLSAgICAgICAgICAiMC4xMjk4OTYsIDAuMjU3OTY4LCAwLjM4MzQyMiwgMC40NzI5OTIsIDAuNjE2MjEzLCAwLjc0MTgyNSwgMC45MjA4MjQiLCBcCi0gICAgICAgICAgIjAuMTQ0Nzg4LCAwLjI3Mjc3LCAwLjM5ODIxNiwgMC40ODc3NTEsIDAuNjMxMSwgMC43NTYzODgsIDAuOTM1MjEiLCBcCi0gICAgICAgICAgIjAuMTY4NTQyLCAwLjI5NjQzNCwgMC40MjE4NDksIDAuNTExNDE5LCAwLjY1NDY4NSwgMC43ODAzMDEsIDAuOTU5NDAyIiwgXAotICAgICAgICAgICIwLjE4ODA3MiwgMC4zMTYzODQsIDAuNDQxODQ1LCAwLjUzMTM3OCwgMC42NzQ2NTIsIDAuODAwMzExLCAwLjk3OTI5NCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1ODc0NywgMC4zMDU2NTcsIDAuNTU5NTE1LCAwLjc0MjA4MywgMS4wMzU2MSwgMS4yODc2NCwgMS42NTIxOCIsIFwKLSAgICAgICAgICAiMC4wNTg4NDgsIDAuMzA2NTE2LCAwLjU2MTA5NywgMC43NDMyMzksIDEuMDM1MDksIDEuMjkwNTMsIDEuNjUyIiwgXAotICAgICAgICAgICIwLjA1ODcyNiwgMC4zMDU3MDcsIDAuNTYxMDkyLCAwLjc0Mjk1NywgMS4wMzU1NCwgMS4yODc2NCwgMS42NTIxOSIsIFwKLSAgICAgICAgICAiMC4wNTg3MjEsIDAuMzA2LCAwLjU2MTA2OSwgMC43NDIxNzgsIDEuMDM1NDcsIDEuMjg3NzMsIDEuNjUyIiwgXAotICAgICAgICAgICIwLjA1OTM3MiwgMC4zMDU4MDMsIDAuNTYxMDg4LCAwLjc0MTk2LCAxLjAzMjMyLCAxLjI5MDcsIDEuNjU1MSIsIFwKLSAgICAgICAgICAiMC4wNTk2MDUsIDAuMzA2MDIyLCAwLjU1OTk3OSwgMC43NDM0LCAxLjAzNTQzLCAxLjI4NzczLCAxLjY1MTg4IiwgXAotICAgICAgICAgICIwLjA2MTM5NiwgMC4zMDY3MzIsIDAuNTU5NTg2LCAwLjc0MzQ2MywgMS4wMzU1LCAxLjI4NzY4LCAxLjY1MTkxIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTg3MzE0LCAwLjM1MjAyMSwgMC40OTg2ODUsIDAuNjAyODI1LCAwLjc2OTI5MiwgMC45MTUwMjQsIDEuMTIzIiwgXAotICAgICAgICAgICIwLjE5NjAyMSwgMC4zNjEyMDMsIDAuNTA3ODgyLCAwLjYxMjAxNywgMC43Nzg1MDYsIDAuOTI0MjIsIDEuMTMyMjkiLCBcCi0gICAgICAgICAgIjAuMjA4MjQ0LCAwLjM3MzM4LCAwLjUyMDA3MywgMC42MjQyMDgsIDAuNzkwNjk3LCAwLjkzNjQwOCwgMS4xNDQzNCIsIFwKLSAgICAgICAgICAiMC4yMjAxNjQsIDAuMzg1MDk3LCAwLjUzMTc2MiwgMC42MzU5MTEsIDAuODAyMzk4LCAwLjk0ODEyNywgMS4xNTYwNSIsIFwKLSAgICAgICAgICAiMC4yMzI2MjcsIDAuMzk3Njc2LCAwLjU0NDMzNywgMC42NDg0OTEsIDAuODE0OTc5LCAwLjk2MDcwNywgMS4xNjg2MyIsIFwKLSAgICAgICAgICAiMC4yNTI2OTcsIDAuNDE3NTg4LCAwLjU2NDI2MSwgMC42Njg0MzksIDAuODM0OTY0LCAwLjk4MDY3MSwgMS4xODg1OSIsIFwKLSAgICAgICAgICAiMC4yNzAyMjksIDAuNDM1MDksIDAuNTgxNzQ1LCAwLjY4NTkyNCwgMC44NTI0MjIsIDAuOTk4MTQxLCAxLjIwNjA5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk0MzM4LCAwLjM2ODEyLCAwLjY1MTEyMywgMC44NTU0MDEsIDEuMTg2MjksIDEuNDc2MzQsIDEuODkwOCIsIFwKLSAgICAgICAgICAiMC4wOTQ5LCAwLjM2ODAyMiwgMC42NTA5NiwgMC44NTU1OTQsIDEuMTgzMzgsIDEuNDcyNDksIDEuODg0MDYiLCBcCi0gICAgICAgICAgIjAuMDk0NzE4LCAwLjM2Nzk4OCwgMC42NTEwMjYsIDAuODU1NTMsIDEuMTgzMjcsIDEuNDcyNDksIDEuODkwNzciLCBcCi0gICAgICAgICAgIjAuMDk0MjQ5LCAwLjM2Nzk0NSwgMC42NTA3NDgsIDAuODU0Mzk1LCAxLjE4NTIsIDEuNDcxNzMsIDEuODkwNzciLCBcCi0gICAgICAgICAgIjAuMDk0MjY2LCAwLjM2NzkzMSwgMC42NTA3MzcsIDAuODU0MzE1LCAxLjE4NTI3LCAxLjQ3MTY2LCAxLjg5MDc3IiwgXAotICAgICAgICAgICIwLjA5NDA2MiwgMC4zNjc5NDQsIDAuNjUwOTA3LCAwLjg1NjU4MSwgMS4xODY2OCwgMS40NzA5OSwgMS44OTA3NyIsIFwKLSAgICAgICAgICAiMC4wOTQyNzMsIDAuMzY3OTAyLCAwLjY1MTA0OCwgMC44NTUxNTgsIDEuMTg0MTUsIDEuNDcyMzYsIDEuODkwNzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDExLCAwLjAwNDIwMSwgMC4wMDQyMTIsIDAuMDA0MjE1LCAwLjAwNDIxOCwgMC4wMDQyMiwgMC4wMDQyMjEiLCBcCi0gICAgICAgICAgIjAuMDA0MDg2LCAwLjAwNDE3OCwgMC4wMDQxODksIDAuMDA0MTk1LCAwLjAwNDE5NiwgMC4wMDQxOTcsIDAuMDA0MTk5IiwgXAotICAgICAgICAgICIwLjAwNDA2OSwgMC4wMDQxNjUsIDAuMDA0MTgsIDAuMDA0MTgxLCAwLjAwNDE4NSwgMC4wMDQxODYsIDAuMDA0MTg4IiwgXAotICAgICAgICAgICIwLjAwNDA1NiwgMC4wMDQxNTUsIDAuMDA0MTcxLCAwLjAwNDE3NiwgMC4wMDQxOCwgMC4wMDQxODIsIDAuMDA0MTgyIiwgXAotICAgICAgICAgICIwLjAwNDA0NiwgMC4wMDQxNDYsIDAuMDA0MTYyLCAwLjAwNDE2OCwgMC4wMDQxNzIsIDAuMDA0MTc1LCAwLjAwNDE3OCIsIFwKLSAgICAgICAgICAiMC4wMDQwMjQsIDAuMDA0MTMxLCAwLjAwNDE1MSwgMC4wMDQxNTYsIDAuMDA0MTY0LCAwLjAwNDE2OCwgMC4wMDQxNjkiLCBcCi0gICAgICAgICAgIjAuMDA0MDE3LCAwLjAwNDEyNiwgMC4wMDQxNDYsIDAuMDA0MTUxLCAwLjAwNDE2LCAwLjAwNDE2NCwgMC4wMDQxNjciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNTYwMSwgMC4wMDU3NjEsIDAuMDA1Nzg5LCAwLjAwNTc5OCwgMC4wMDU4MDYsIDAuMDA1ODEsIDAuMDA1ODE0IiwgXAotICAgICAgICAgICIwLjAwNTU4OSwgMC4wMDU3NTEsIDAuMDA1NzgsIDAuMDA1Nzg5LCAwLjAwNTc5NywgMC4wMDU4MDEsIDAuMDA1ODA1IiwgXAotICAgICAgICAgICIwLjAwNTU3OSwgMC4wMDU3NDQsIDAuMDA1NzczLCAwLjAwNTc4MiwgMC4wMDU3OSwgMC4wMDU3OTQsIDAuMDA1Nzk3IiwgXAotICAgICAgICAgICIwLjAwNTU3MSwgMC4wMDU3MzcsIDAuMDA1NzY2LCAwLjAwNTc3NiwgMC4wMDU3ODQsIDAuMDA1Nzg4LCAwLjAwNTc5MSIsIFwKLSAgICAgICAgICAiMC4wMDU1NjUsIDAuMDA1NzMxLCAwLjAwNTc2MiwgMC4wMDU3NzIsIDAuMDA1NzgsIDAuMDA1Nzg0LCAwLjAwNTc4OCIsIFwKLSAgICAgICAgICAiMC4wMDU1NTcsIDAuMDA1NzI1LCAwLjAwNTc1NywgMC4wMDU3NjcsIDAuMDA1Nzc1LCAwLjAwNTc4LCAwLjAwNTc4NCIsIFwKLSAgICAgICAgICAiMC4wMDU1NTMsIDAuMDA1NzIsIDAuMDA1NzUzLCAwLjAwNTc2MywgMC4wMDU3NzIsIDAuMDA1Nzc3LCAwLjAwNTc4MSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzODAxLCAwLjAwMzksIDAuMDAzOTEyLCAwLjAwMzkxNSwgMC4wMDM5MTgsIDAuMDAzOTE4LCAwLjAwMzkyMiIsIFwKLSAgICAgICAgICAiMC4wMDM3ODksIDAuMDAzODksIDAuMDAzOTAyLCAwLjAwMzkwNSwgMC4wMDM5MDgsIDAuMDAzOTEsIDAuMDAzOTExIiwgXAotICAgICAgICAgICIwLjAwMzc2NiwgMC4wMDM4NzQsIDAuMDAzODg3LCAwLjAwMzg5MSwgMC4wMDM4OTUsIDAuMDAzODk2LCAwLjAwMzg5OCIsIFwKLSAgICAgICAgICAiMC4wMDM3NDksIDAuMDAzODYsIDAuMDAzODc2LCAwLjAwMzg4LCAwLjAwMzg4NSwgMC4wMDM4ODcsIDAuMDAzODg3IiwgXAotICAgICAgICAgICIwLjAwMzcyNywgMC4wMDM4NDUsIDAuMDAzODYzLCAwLjAwMzg2OSwgMC4wMDM4NzQsIDAuMDAzODgsIDAuMDAzODgiLCBcCi0gICAgICAgICAgIjAuMDAzNzAyLCAwLjAwMzgyNywgMC4wMDM4NSwgMC4wMDM4NTcsIDAuMDAzODY0LCAwLjAwMzg2NywgMC4wMDM4NyIsIFwKLSAgICAgICAgICAiMC4wMDM2OTUsIDAuMDAzODE2LCAwLjAwMzg0MiwgMC4wMDM4NSwgMC4wMDM4NTgsIDAuMDAzODYyLCAwLjAwMzg2NSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1MzQ0LCAwLjAwNTUwNiwgMC4wMDU1NCwgMC4wMDU1NSwgMC4wMDU1NiwgMC4wMDU1NjUsIDAuMDA1NTciLCBcCi0gICAgICAgICAgIjAuMDA1MzM2LCAwLjAwNTUwMywgMC4wMDU1MzQsIDAuMDA1NTQ0LCAwLjAwNTU1MywgMC4wMDU1NTgsIDAuMDA1NTYyIiwgXAotICAgICAgICAgICIwLjAwNTMyOCwgMC4wMDU0OTUsIDAuMDA1NTI2LCAwLjAwNTUzNiwgMC4wMDU1NDUsIDAuMDA1NTUsIDAuMDA1NTU0IiwgXAotICAgICAgICAgICIwLjAwNTMxOCwgMC4wMDU0ODUsIDAuMDA1NTE4LCAwLjAwNTUyOSwgMC4wMDU1MzgsIDAuMDA1NTQzLCAwLjAwNTU0OCIsIFwKLSAgICAgICAgICAiMC4wMDUzMTEsIDAuMDA1NDgsIDAuMDA1NTE0LCAwLjAwNTUyNSwgMC4wMDU1MzUsIDAuMDA1NTM5LCAwLjAwNTU0NCIsIFwKLSAgICAgICAgICAiMC4wMDUzMDMsIDAuMDA1NDcyLCAwLjAwNTUwNywgMC4wMDU1MTksIDAuMDA1NTI5LCAwLjAwNTUzNCwgMC4wMDU1MzkiLCBcCi0gICAgICAgICAgIjAuMDA1MzAzLCAwLjAwNTQ2NywgMC4wMDU1MDIsIDAuMDA1NTE0LCAwLjAwNTUyNSwgMC4wMDU1MywgMC4wMDU1MzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzQ5MiwgMC4wMDM1ODIsIDAuMDAzNTkyLCAwLjAwMzU5NywgMC4wMDM1OTcsIDAuMDAzNTk4LCAwLjAwMzU5OSIsIFwKLSAgICAgICAgICAiMC4wMDM0ODQsIDAuMDAzNTc5LCAwLjAwMzU4OSwgMC4wMDM1OTIsIDAuMDAzNTk0LCAwLjAwMzU5NSwgMC4wMDM1OTciLCBcCi0gICAgICAgICAgIjAuMDAzNDU4LCAwLjAwMzU2MSwgMC4wMDM1NzUsIDAuMDAzNTc4LCAwLjAwMzU4MiwgMC4wMDM1ODEsIDAuMDAzNTgzIiwgXAotICAgICAgICAgICIwLjAwMzQyOSwgMC4wMDM1NDIsIDAuMDAzNTU3LCAwLjAwMzU2MSwgMC4wMDM1NjQsIDAuMDAzNTY3LCAwLjAwMzU2OCIsIFwKLSAgICAgICAgICAiMC4wMDM0MDQsIDAuMDAzNTI1LCAwLjAwMzU0MywgMC4wMDM1NDksIDAuMDAzNTU0LCAwLjAwMzU1NiwgMC4wMDM1NiIsIFwKLSAgICAgICAgICAiMC4wMDMzODcsIDAuMDAzNTA2LCAwLjAwMzUyNywgMC4wMDM1MzUsIDAuMDAzNTQxLCAwLjAwMzU0NCwgMC4wMDM1NDciLCBcCi0gICAgICAgICAgIjAuMDAzMzY1LCAwLjAwMzQ5MywgMC4wMDM1MTgsIDAuMDAzNTI2LCAwLjAwMzUzMywgMC4wMDM1MzcsIDAuMDAzNTQxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDUwOTIsIDAuMDA1MjYzLCAwLjAwNTI5NywgMC4wMDUzMDgsIDAuMDA1MzE4LCAwLjAwNTMyMywgMC4wMDUzMjgiLCBcCi0gICAgICAgICAgIjAuMDA1MDc0LCAwLjAwNTI0OSwgMC4wMDUyODMsIDAuMDA1Mjk0LCAwLjAwNTMwMywgMC4wMDUzMDgsIDAuMDA1MzEzIiwgXAotICAgICAgICAgICIwLjAwNTA1OSwgMC4wMDUyMzUsIDAuMDA1MjcsIDAuMDA1MjgxLCAwLjAwNTI5MSwgMC4wMDUyOTYsIDAuMDA1MzAxIiwgXAotICAgICAgICAgICIwLjAwNTA1MSwgMC4wMDUyMjIsIDAuMDA1MjU4LCAwLjAwNTI3LCAwLjAwNTI4MSwgMC4wMDUyODYsIDAuMDA1MjkxIiwgXAotICAgICAgICAgICIwLjAwNTA0MiwgMC4wMDUyMTMsIDAuMDA1MjUsIDAuMDA1MjYyLCAwLjAwNTI3NCwgMC4wMDUyNzksIDAuMDA1Mjg1IiwgXAotICAgICAgICAgICIwLjAwNTAzOCwgMC4wMDUyMDEsIDAuMDA1MjQsIDAuMDA1MjUzLCAwLjAwNTI2NSwgMC4wMDUyNzIsIDAuMDA1Mjc4IiwgXAotICAgICAgICAgICIwLjAwNTAzNywgMC4wMDUxOTEsIDAuMDA1MjMyLCAwLjAwNTI0NiwgMC4wMDUyNiwgMC4wMDUyNjcsIDAuMDA1MjczIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IE9SNFg0ICoKLSAqIC0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChPUjRYNCkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjI4MDQyODsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwODI0NDM7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwODE2NjY1OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDgyNDQzOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDI2MywgMC4wMDAyNzEsIDAuMDAwMjc2LCAwLjAwMDI3OSwgMC4wMDAyODEsIDAuMDAwMjgzLCAwLjAwMDI4NCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDU2MywgMC4wMDA1NjMsIDAuMDAwNTYzLCAwLjAwMDU2MywgMC4wMDA1NjMsIDAuMDAwNTYzLCAwLjAwMDU2MyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwODQ5OTYzOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDg0MjcyNjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA4NDk5NjM7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjYxLCAwLjAwMDI2OCwgMC4wMDAyNzUsIDAuMDAwMjc5LCAwLjAwMDI4MiwgMC4wMDAyODUsIDAuMDAwMjg2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzksIDAuMDAwMzksIDAuMDAwMzksIDAuMDAwMzksIDAuMDAwMzksIDAuMDAwMzksIDAuMDAwMzkiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEMpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDg1Nzg1MzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA4NTE5MDc7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwODU3ODUzOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDI2NCwgMC4wMDAyOCwgMC4wMDAyODcsIDAuMDAwMjksIDAuMDAwMjkyLCAwLjAwMDI5MywgMC4wMDAyOTQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAzMTMsIDAuMDAwMzE0LCAwLjAwMDMxNCwgMC4wMDAzMTQsIDAuMDAwMzE0LCAwLjAwMDMxNCwgMC4wMDAzMTQiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEQpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDgyMzA4MjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA4MjMwMDQ7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwODIzMDgyOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDA5MSwgMC4wMDAwOTEsIDAuMDAwMDkxLCAwLjAwMDA5MSwgMC4wMDAwOTEsIDAuMDAwMDkxLCAwLjAwMDA5MSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDM0MiwgMC4wMDAzNDIsIDAuMDAwMzQyLCAwLjAwMDM0MiwgMC4wMDAzNDIsIDAuMDAwMzQxLCAwLjAwMDM0MSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjU1MzY4MTsKLSAgICBmdW5jdGlvbiA6ICIoKChBK0IpK0MpK0QpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwNDQ1OCwgMC4yMzU4MTIsIDAuMzYyODQ5LCAwLjQ1MzMzMiwgMC41OTc5NzIsIDAuNzI0NDU4LCAwLjkwNTEwNiIsIFwKLSAgICAgICAgICAiMC4xMTYxMjksIDAuMjQ3MzY0LCAwLjM3NDM3NiwgMC40NjQ4ODcsIDAuNjA5NTMsIDAuNzM2MDE2LCAwLjkxNjY1OSIsIFwKLSAgICAgICAgICAiMC4xMzEwNTUsIDAuMjYyMzIzLCAwLjM4OTM1MywgMC40Nzk4NSwgMC42MjQ0OSwgMC43NTA5OCwgMC45MzE2MzQiLCBcCi0gICAgICAgICAgIjAuMTQ1OTE4LCAwLjI3NzE4OSwgMC40MDQxOTksIDAuNDk0NzE2LCAwLjYzOTM1OCwgMC43NjU4NDUsIDAuOTQ2NDg2IiwgXAotICAgICAgICAgICIwLjE2MTAxMSwgMC4yOTIyNTQsIDAuNDE5Mjc5LCAwLjUwOTgzMywgMC42NTQ0NDQsIDAuNzgwOTM2LCAwLjk2MTU5IiwgXAotICAgICAgICAgICIwLjE4NTQ1OSwgMC4zMTY1NDYsIDAuNDQzNjE2LCAwLjUzNDA5NiwgMC42Nzg3NDEsIDAuODA1MjI4LCAwLjk4NTg3NSIsIFwKLSAgICAgICAgICAiMC4yMDYyODksIDAuMzM3MjMxLCAwLjQ2NDI5NCwgMC41NTQ3NjgsIDAuNjk5NDE1LCAwLjgyNTg5OCwgMS4wMDY1NCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2MjMxMywgMC4zMTEzMjgsIDAuNTY2MjAxLCAwLjc1MDUwNSwgMS4wNDQzOSwgMS4zMDE3NSwgMS42NjkxMyIsIFwKLSAgICAgICAgICAiMC4wNjIzMTksIDAuMzExMzEsIDAuNTY2Mjg5LCAwLjc1MDM3NywgMS4wNDQzLCAxLjMwMTQ3LCAxLjY2OTExIiwgXAotICAgICAgICAgICIwLjA2MjIxMywgMC4zMTEzNTcsIDAuNTY2MjUxLCAwLjc0OTU2NiwgMS4wNDQzMiwgMS4zMDE1LCAxLjY2ODk0IiwgXAotICAgICAgICAgICIwLjA2MjA3NCwgMC4zMTEyMjcsIDAuNTY2MjE4LCAwLjc1MDM5NiwgMS4wNDQyNiwgMS4zMDE1NCwgMS42NjkwMSIsIFwKLSAgICAgICAgICAiMC4wNjE5MDcsIDAuMzExMjEzLCAwLjU2NzA1MSwgMC43NDkwOTEsIDEuMDQ0MzUsIDEuMzAxNTcsIDEuNjY4OTUiLCBcCi0gICAgICAgICAgIjAuMDYyMDE3LCAwLjMxMTEyOCwgMC41NjU4NTEsIDAuNzUwNDM3LCAxLjA0NDM0LCAxLjMwMTYzLCAxLjY2OTA4IiwgXAotICAgICAgICAgICIwLjA2MjkyOCwgMC4zMTA1NDksIDAuNTY1OTYzLCAwLjc1MDMxOSwgMS4wNDQyLCAxLjMwMTQ5LCAxLjY2OTIxIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjgzMjEsIDAuNDYyMTY3LCAwLjYxMTE4NiwgMC43MTU3NTIsIDAuODgyNDI1LCAxLjAyODExLCAxLjIzNjE2IiwgXAotICAgICAgICAgICIwLjI5NDQ1MiwgMC40NzMzODUsIDAuNjIyNDExLCAwLjcyNjk1MiwgMC44OTM2NDEsIDEuMDM5MzMsIDEuMjQ3NDYiLCBcCi0gICAgICAgICAgIjAuMzA2OTg0LCAwLjQ4NTczMywgMC42MzQ3MzUsIDAuNzM5MjI5LCAwLjkwNTkwMSwgMS4wNTE2MywgMS4yNTk3NSIsIFwKLSAgICAgICAgICAiMC4zMTg4NjIsIDAuNDk3NjI2LCAwLjY0NjUyMywgMC43NTExLCAwLjkxNzgyOSwgMS4wNjM1MiwgMS4yNzE2IiwgXAotICAgICAgICAgICIwLjMyOTUzMSwgMC41MDg3ODUsIDAuNjU3ODc2LCAwLjc2MjQ1NCwgMC45MjkxNDUsIDEuMDc0ODMsIDEuMjgyOTgiLCBcCi0gICAgICAgICAgIjAuMzQ2NjczLCAwLjUyNTgxOCwgMC42NzQ3NiwgMC43NzkzMzQsIDAuOTQ2MDI1LCAxLjA5MTcyLCAxLjI5OTk0IiwgXAotICAgICAgICAgICIwLjM2MDgwNSwgMC41NDAwMzEsIDAuNjg5MDI2LCAwLjc5MzUwOSwgMC45NjAyNDEsIDEuMTA1OTgsIDEuMzE0MDIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTE5NjUsIDAuMzg1OTMxLCAwLjY2NDI2NiwgMC44NjYwNjEsIDEuMTkzMywgMS40Nzk2LCAxLjg5NjE3IiwgXAotICAgICAgICAgICIwLjExMTgyOSwgMC4zODU5ODYsIDAuNjY0MjM3LCAwLjg2NjA2MywgMS4xOTI2NCwgMS40ODA1OSwgMS44OTEzIiwgXAotICAgICAgICAgICIwLjExMTg1MiwgMC4zODY0MjMsIDAuNjY0NjE2LCAwLjg2NjQ5LCAxLjE5NDczLCAxLjQ4MTk0LCAxLjg5MDQ3IiwgXAotICAgICAgICAgICIwLjExMTc2OSwgMC4zODYxNTIsIDAuNjYzODg5LCAwLjg2NjQ5OSwgMS4xOTA5NSwgMS40ODM4NiwgMS44OTQ2OSIsIFwKLSAgICAgICAgICAiMC4xMTMyNjUsIDAuMzg1ODQ1LCAwLjY2MzgyNSwgMC44NjY0ODEsIDEuMTkzNjQsIDEuNDc5NDIsIDEuODk2ODEiLCBcCi0gICAgICAgICAgIjAuMTEyODY0LCAwLjM4NTkwNSwgMC42NjM3NzcsIDAuODY2NDY5LCAxLjE5MjI3LCAxLjQ3ODc2LCAxLjg4OTcxIiwgXAotICAgICAgICAgICIwLjExMjI2MSwgMC4zODYwODIsIDAuNjY0MDExLCAwLjg2NjQ3NiwgMS4xOTEwNCwgMS40NzgzLCAxLjg5Mzg4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTAwODQ4LCAwLjIzMTE3MywgMC4zNTc5NDYsIDAuNDQ4MzQ0LCAwLjU5MjgwMywgMC43MTkzMDIsIDAuODk5Nzc2IiwgXAotICAgICAgICAgICIwLjExMjUzNCwgMC4yNDI4NDUsIDAuMzY5NTg4LCAwLjQ1OTk0OSwgMC42MDQ0NjQsIDAuNzMwODYzLCAwLjkxMTQxNiIsIFwKLSAgICAgICAgICAiMC4xMjc1NjIsIDAuMjU3ODM1LCAwLjM4NDYyNCwgMC40NzQ5ODEsIDAuNjE5NTExLCAwLjc0NTkwNSwgMC45MjY0NTEiLCBcCi0gICAgICAgICAgIjAuMTQyNjg4LCAwLjI3MjkyOCwgMC4zOTk3MTYsIDAuNDkwMDUyLCAwLjYzNDU2NSwgMC43NjA5OCwgMC45NDE1MyIsIFwKLSAgICAgICAgICAiMC4xNTc2ODcsIDAuMjg4MDM5LCAwLjQxNDc3NSwgMC41MDUxNjYsIDAuNjQ5Njc2LCAwLjc3NjA5NiwgMC45NTY2NDgiLCBcCi0gICAgICAgICAgIjAuMTgxNTM4LCAwLjMxMTgyOCwgMC40Mzg1OTQsIDAuNTI4OTYsIDAuNjczNDc4LCAwLjc5OTg5MSwgMC45ODA0NTgiLCBcCi0gICAgICAgICAgIjAuMjAxOTY3LCAwLjMzMjQ1MywgMC40NTkxOTgsIDAuNTQ5NTk4LCAwLjY5NDExLCAwLjgyMDUzNSwgMS4wMDEwOSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2MDk3NiwgMC4zMTAxMDMsIDAuNTY2MTU0LCAwLjc0ODE4NSwgMS4wNDM1MiwgMS4zMDA3MiwgMS42Njg3MyIsIFwKLSAgICAgICAgICAiMC4wNjA5MzEsIDAuMzEwMDMxLCAwLjU2NjE3NywgMC43NDk2LCAxLjA0MzcxLCAxLjMwMDMzLCAxLjY2NjE1IiwgXAotICAgICAgICAgICIwLjA2MDg2OSwgMC4zMDk0NjEsIDAuNTY0OTY3LCAwLjc0OTYyNCwgMS4wNDE3NywgMS4yOTkxNCwgMS42NjYxMiIsIFwKLSAgICAgICAgICAiMC4wNjA5NDgsIDAuMzA5NDMzLCAwLjU2NDk4NCwgMC43NDk2NzksIDEuMDQzMTksIDEuMjk5MTMsIDEuNjY3OTIiLCBcCi0gICAgICAgICAgIjAuMDYwNzc5LCAwLjMxMDAzOSwgMC41NjUyNzMsIDAuNzQ5NjgyLCAxLjA0MzcsIDEuMjk5MTMsIDEuNjY3ODQiLCBcCi0gICAgICAgICAgIjAuMDYxMDczLCAwLjMxMDAzNiwgMC41NjYxNiwgMC43NDk2NTQsIDEuMDQzNywgMS4zMDA0MSwgMS42NjYzOSIsIFwKLSAgICAgICAgICAiMC4wNjIyODYsIDAuMzA5NDQ1LCAwLjU2NTMwMSwgMC43NDk2ODYsIDEuMDQzNjUsIDEuMjk5MDksIDEuNjY2MDMiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yNzU5NTEsIDAuNDU1MTYxLCAwLjYwNDE2MiwgMC43MDg2NzUsIDAuODc1NDA2LCAxLjAyMTEsIDEuMjI5MjQiLCBcCi0gICAgICAgICAgIjAuMjg2NDMzLCAwLjQ2NTM2MiwgMC42MTQzOTEsIDAuNzE4OTU2LCAwLjg4NTYyNSwgMS4wMzEzMSwgMS4yMzk0NSIsIFwKLSAgICAgICAgICAiMC4yOTg2MzQsIDAuNDc3MzkyLCAwLjYyNjM3MSwgMC43MzA5NDUsIDAuODk3NjQ2LCAxLjA0MzMyLCAxLjI1MTQ3IiwgXAotICAgICAgICAgICIwLjMxMDIxLCAwLjQ4ODgxOSwgMC42Mzc4MzcsIDAuNzQyMzM1LCAwLjkwOTAyMywgMS4wNTQ3MywgMS4yNjI4NiIsIFwKLSAgICAgICAgICAiMC4zMjEzMjksIDAuNTAwMTI3LCAwLjY0OTAyOSwgMC43NTM2MDcsIDAuOTIwMzQ0LCAxLjA2NjAzLCAxLjI3NDEzIiwgXAotICAgICAgICAgICIwLjMzODMsIDAuNTE3MjE1LCAwLjY2NjIxNSwgMC43NzA3NDQsIDAuOTM3NDY5LCAxLjA4MzE2LCAxLjI5MTIyIiwgXAotICAgICAgICAgICIwLjM1Mjc0MiwgMC41MzIwMTMsIDAuNjgwOTk0LCAwLjc4NTQ5OCwgMC45NTIyMzIsIDEuMDk3OTQsIDEuMzA2MDMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTIzMTUsIDAuMzg1OTA1LCAwLjY2NDI1NCwgMC44NjcyNzksIDEuMTkzMzgsIDEuNDc5NzIsIDEuODkyNjkiLCBcCi0gICAgICAgICAgIjAuMTExODMxLCAwLjM4NTk5LCAwLjY2NDI0NCwgMC44NjYwMzgsIDEuMTkyODIsIDEuNDgwMjcsIDEuODkxNjMiLCBcCi0gICAgICAgICAgIjAuMTExOTksIDAuMzg1OTcyLCAwLjY2Mzg3LCAwLjg2NjU3MSwgMS4xOTE4MiwgMS40ODMxOSwgMS44OTY3OSIsIFwKLSAgICAgICAgICAiMC4xMTE3NDgsIDAuMzg2NDc4LCAwLjY2NDY0OCwgMC44NjYyOTEsIDEuMTkxNzYsIDEuNDgxOSwgMS44OTA1OSIsIFwKLSAgICAgICAgICAiMC4xMTE3NjUsIDAuMzg2MTI1LCAwLjY2Mzg1OSwgMC44NjY1NDQsIDEuMTkxMTMsIDEuNDgxNDQsIDEuODk0MDkiLCBcCi0gICAgICAgICAgIjAuMTExOTQ2LCAwLjM4NjA1NSwgMC42NjQyNzcsIDAuODY2NjYxLCAxLjE5MzI0LCAxLjQ3OTc2LCAxLjg5NjMxIiwgXAotICAgICAgICAgICIwLjExMTkzNywgMC4zODU5NTEsIDAuNjYzODYxLCAwLjg2NjQ3NiwgMS4xOTE1NiwgMS40ODM2NiwgMS44OTI4NCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5NTk0MywgMC4yMjU1NCwgMC4zNTIxMDIsIDAuNDQyMzczLCAwLjU4Njc5NSwgMC43MTMxNTYsIDAuODkzNjczIiwgXAotICAgICAgICAgICIwLjEwNzgzLCAwLjIzNzM4NCwgMC4zNjM5MzYsIDAuNDU0MjA2LCAwLjU5ODYzMSwgMC43MjUwMDcsIDAuOTA1NDg5IiwgXAotICAgICAgICAgICIwLjEyMjkxMiwgMC4yNTI1MjcsIDAuMzc5MDk3LCAwLjQ2OTQxNSwgMC42MTM3ODcsIDAuNzQwMTQ5LCAwLjkyMDY2NCIsIFwKLSAgICAgICAgICAiMC4xMzc5MTgsIDAuMjY3NTUxLCAwLjM5NDA5NiwgMC40ODQzNzMsIDAuNjI4Nzk3LCAwLjc1NTE2NCwgMC45MzU2NjEiLCBcCi0gICAgICAgICAgIjAuMTUyOTg0LCAwLjI4MjYzNCwgMC40MDkxOSwgMC40OTk0NywgMC42NDM4OTUsIDAuNzcwMjY1LCAwLjk1MDc1OSIsIFwKLSAgICAgICAgICAiMC4xNzY2NDYsIDAuMzA2MjgzLCAwLjQzMjg1OSwgMC41MjMyMTUsIDAuNjY3NjA1LCAwLjc5Mzk2NiwgMC45NzQ0NTUiLCBcCi0gICAgICAgICAgIjAuMTk3MjY5LCAwLjMyNjk4NSwgMC40NTM1OTYsIDAuNTQzODU3LCAwLjY4ODI4NywgMC44MTQ2NTEsIDAuOTk1MTY0Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU5OTc2LCAwLjMwOTEzOCwgMC41NjU2NDMsIDAuNzQ5MTUzLCAxLjA0MzE2LCAxLjI5ODQ4LCAxLjY2NDQ1IiwgXAotICAgICAgICAgICIwLjA2MDA4MiwgMC4zMDkyNDcsIDAuNTY1NjAyLCAwLjc0OTA4MSwgMS4wNDE0MiwgMS4yOTczMSwgMS42NjU1NCIsIFwKLSAgICAgICAgICAiMC4wNjAwMiwgMC4zMDg0NzMsIDAuNTY1NTgyLCAwLjc0NzM3NCwgMS4wNDE0MywgMS4zMDA1MSwgMS42NjQ3NSIsIFwKLSAgICAgICAgICAiMC4wNiwgMC4zMDkyMzUsIDAuNTY1NTkxLCAwLjc0OTA4LCAxLjA0Mjc4LCAxLjI5ODMsIDEuNjY1NTgiLCBcCi0gICAgICAgICAgIjAuMDYwMDE3LCAwLjMwOTIzMywgMC41NjU2LCAwLjc0OTA4NCwgMS4wNDI4NCwgMS4yOTY5MSwgMS42NjU1IiwgXAotICAgICAgICAgICIwLjA2MDcxNiwgMC4zMDg3MDksIDAuNTY0NDY2LCAwLjc0OTA2MywgMS4wNDE1NCwgMS4yOTg0MSwgMS42NjU1NCIsIFwKLSAgICAgICAgICAiMC4wNjEzNTYsIDAuMzA5MjMxLCAwLjU2NDA4OCwgMC43NDkxMDcsIDEuMDQxNDgsIDEuMjk4MjgsIDEuNjY4MjIiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yNjEyNzQsIDAuNDQwMDYzLCAwLjU4ODk2MywgMC42OTM1NCwgMC44NjAyNDgsIDEuMDA1OTQsIDEuMjE0MDYiLCBcCi0gICAgICAgICAgIjAuMjcwMjg1LCAwLjQ0OTUzNSwgMC41OTg1NjksIDAuNzAzMTY2LCAwLjg2OTg1MiwgMS4wMTU1NCwgMS4yMjM2NyIsIFwKLSAgICAgICAgICAiMC4yODIzOSwgMC40NjA2NTYsIDAuNjA5Njk4LCAwLjcxNDIzNCwgMC44ODA5NDksIDEuMDI2NjQsIDEuMjM0NyIsIFwKLSAgICAgICAgICAiMC4yOTM2NTcsIDAuNDcyNzIsIDAuNjIxNzEzLCAwLjcyNjE5NywgMC44OTI5MiwgMS4wMzg2MSwgMS4yNDY3MiIsIFwKLSAgICAgICAgICAiMC4zMDUwMzQsIDAuNDgzODg2LCAwLjYzMjg5MywgMC43MzczOSwgMC45MDQxMiwgMS4wNDk4LCAxLjI1NzkyIiwgXAotICAgICAgICAgICIwLjMyMzEzNSwgMC41MDIxODQsIDAuNjUwOTczLCAwLjc1NTQ5NiwgMC45MjIxODUsIDEuMDY3OTUsIDEuMjc2IiwgXAotICAgICAgICAgICIwLjMzOTAwNCwgMC41MTc5NzcsIDAuNjY2OTY2LCAwLjc3MTQ4MiwgMC45MzgyMDIsIDEuMDgzOSwgMS4yOTE5NSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExMTgxLCAwLjM4NjEyNiwgMC42NjM4OCwgMC44NjY1NTYsIDEuMTkxMzgsIDEuNDgzNDIsIDEuODk0NyIsIFwKLSAgICAgICAgICAiMC4xMTI0OSwgMC4zODU4NzcsIDAuNjYzODMsIDAuODY2NDg1LCAxLjE5MzgyLCAxLjQ3OTY1LCAxLjg5Njc3IiwgXAotICAgICAgICAgICIwLjExMTY1OCwgMC4zODY3MDIsIDAuNjY0MTgxLCAwLjg2NjcyOSwgMS4xOTIxNywgMS40ODE4NSwgMS44OTYyNiIsIFwKLSAgICAgICAgICAiMC4xMTE2OSwgMC4zODU5NjEsIDAuNjY0NDEzLCAwLjg2NjQzOSwgMS4xOTEyLCAxLjQ4MTk1LCAxLjg5MTI1IiwgXAotICAgICAgICAgICIwLjExMTcxLCAwLjM4NjMwMSwgMC42NjQ0NDksIDAuODY2NjI1LCAxLjE5MDk5LCAxLjQ4MTk0LCAxLjg5MTQiLCBcCi0gICAgICAgICAgIjAuMTEyMDY5LCAwLjM4NTk0MSwgMC42NjQwMjQsIDAuODY2NDYsIDEuMTkzNTgsIDEuNDgzOTcsIDEuODk0NTEiLCBcCi0gICAgICAgICAgIjAuMTExOTgsIDAuMzg1ODc3LCAwLjY2NDIyNCwgMC44NjY5NTUsIDEuMTkzNjIsIDEuNDc5ODUsIDEuODk2MjMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTAwNDUsIDAuMjE5Mjg1LCAwLjM0NTY4NiwgMC40MzU5MTQsIDAuNTgwNDE0LCAwLjcwNjczMiwgMC44ODczMDUiLCBcCi0gICAgICAgICAgIjAuMTAxODQ5LCAwLjIzMTA5MiwgMC4zNTc0OTIsIDAuNDQ3ODE3LCAwLjU5MjE0NCwgMC43MTg0NTgsIDAuODk4OTciLCBcCi0gICAgICAgICAgIjAuMTE2OTc1LCAwLjI0NjI0MiwgMC4zNzI2ODgsIDAuNDYyOTE1LCAwLjYwNzEyNiwgMC43MzM5OTUsIDAuOTE0MzQxIiwgXAotICAgICAgICAgICIwLjEzMjE4MiwgMC4yNjE0OTQsIDAuMzg3OTI5LCAwLjQ3ODE2OSwgMC42MjI3MzYsIDAuNzQ4OTQ5LCAwLjkyOTQyMyIsIFwKLSAgICAgICAgICAiMC4xNDcwMTYsIDAuMjc2MzU5LCAwLjQwMjc5NiwgMC40OTMwMjEsIDAuNjM3NTE4LCAwLjc2Mzg1NiwgMC45NDQxNDYiLCBcCi0gICAgICAgICAgIjAuMTcwOTM3LCAwLjMwMDAyOCwgMC40MjY0NiwgMC41MTY3NCwgMC42NjExNjQsIDAuNzg3ODIyLCAwLjk2ODE2NiIsIFwKLSAgICAgICAgICAiMC4xOTA3MzgsIDAuMzIwMjM0LCAwLjQ0NjcwMSwgMC41MzY5MTcsIDAuNjgxMzkxLCAwLjgwNzg5OSwgMC45ODgyOTciKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTk1MzMsIDAuMzA3ODU4LCAwLjU2NTExMywgMC43NDg1OTgsIDEuMDQxMTEsIDEuMjk4MjcsIDEuNjY0NDYiLCBcCi0gICAgICAgICAgIjAuMDU5NTM1LCAwLjMwODY5MiwgMC41NjUxMDYsIDAuNzQ3MDMyLCAxLjA0MzEsIDEuMzAwNTIsIDEuNjY1MTkiLCBcCi0gICAgICAgICAgIjAuMDU5NDM5LCAwLjMwODEzNywgMC41NjU5NjQsIDAuNzQ3MzY0LCAxLjAzOTcsIDEuMjk3MTEsIDEuNjY0MjIiLCBcCi0gICAgICAgICAgIjAuMDU5MzYsIDAuMzA4MDI0LCAwLjU2NTA2MiwgMC43NDg1MTYsIDEuMDQwMzcsIDEuMzAwNiwgMS42Njg0NyIsIFwKLSAgICAgICAgICAiMC4wNTk4MzEsIDAuMzA4NjIyLCAwLjU2NTk2MSwgMC43NDg1MywgMS4wMzk5NCwgMS4yOTgwNCwgMS42NjgwNSIsIFwKLSAgICAgICAgICAiMC4wNjAxNDUsIDAuMzA4MDk4LCAwLjU2NDAwMSwgMC43NDcyNDgsIDEuMDQzMDYsIDEuMjk3MTQsIDEuNjY0MzEiLCBcCi0gICAgICAgICAgIjAuMDYxNzIyLCAwLjMwODQwOCwgMC41NjM1NzgsIDAuNzQ4Njc5LCAxLjA0MDE1LCAxLjI5NzIzLCAxLjY2MzU3Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjM4MDQ4LCAwLjQxNzA4OCwgMC41NjYxMDUsIDAuNjcwNjM5LCAwLjgzNzM0MywgMC45ODMwMzMsIDEuMTkxMTciLCBcCi0gICAgICAgICAgIjAuMjQ2NjAyLCAwLjQyNTY0OSwgMC41NzQ2MTIsIDAuNjc5MTUxLCAwLjg0NTQ4MywgMC45OTExOTIsIDEuMTk5MjkiLCBcCi0gICAgICAgICAgIjAuMjU3NjExLCAwLjQzNjg1MywgMC41ODU4NTEsIDAuNjkwMzQyLCAwLjg1NzAyNSwgMS4wMDI3NiwgMS4yMTA5IiwgXAotICAgICAgICAgICIwLjI2OTE4OCwgMC40NDgxNzUsIDAuNTk3MTcxLCAwLjcwMTcxMiwgMC44Njg0MjEsIDEuMDE0MTEsIDEuMjIyMjYiLCBcCi0gICAgICAgICAgIjAuMjgwNjE2LCAwLjQ1OTUzOSwgMC42MDg1MiwgMC43MTMxMTUsIDAuODc5ODEyLCAxLjAyNTQ5LCAxLjIzMzU5IiwgXAotICAgICAgICAgICIwLjI5OTI0NSwgMC40NzgzMSwgMC42MjczMzIsIDAuNzMxODI4LCAwLjg5ODUwOSwgMS4wNDQyNSwgMS4yNTIzOCIsIFwKLSAgICAgICAgICAiMC4zMTYxOTgsIDAuNDk1MzI3LCAwLjY0NDIzMiwgMC43NDg4LCAwLjkxNTUzOSwgMS4wNjEyMSwgMS4yNjkzNiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExMTY3MSwgMC4zODU5MzQsIDAuNjY0Mzc0LCAwLjg2NjI0OSwgMS4xOTMwOSwgMS40Nzk1OCwgMS44OTMyMSIsIFwKLSAgICAgICAgICAiMC4xMTE3NDIsIDAuMzg2MTgyLCAwLjY2NDI3MiwgMC44NjU4ODIsIDEuMTkzNzYsIDEuNDgzNjMsIDEuODk0NDEiLCBcCi0gICAgICAgICAgIjAuMTExODY0LCAwLjM4NTgyOCwgMC42NjQ0NTgsIDAuODY2MzE5LCAxLjE5NDY0LCAxLjQ3OTg2LCAxLjg5MjQ1IiwgXAotICAgICAgICAgICIwLjExMTkwNywgMC4zODYwMTcsIDAuNjY0Mzg4LCAwLjg2NjIwMywgMS4xOTI5NywgMS40NzkzOCwgMS44OTMzIiwgXAotICAgICAgICAgICIwLjExMjAzOSwgMC4zODYwNzksIDAuNjYzODY2LCAwLjg2NjQ0MSwgMS4xOTM5LCAxLjQ4MywgMS44OTIzOSIsIFwKLSAgICAgICAgICAiMC4xMTE3MjQsIDAuMzg1ODQ2LCAwLjY2NDQ2MywgMC44NjY0MDgsIDEuMTk0NTUsIDEuNDgxODQsIDEuODkwNiIsIFwKLSAgICAgICAgICAiMC4xMTE0MjIsIDAuMzg1NzE3LCAwLjY2MzY0OSwgMC44NjY0NDQsIDEuMTkxNzksIDEuNDgzMiwgMS44OTE2OCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0Mzg4LCAwLjAwNDQ4NSwgMC4wMDQ0OTcsIDAuMDA0NTAxLCAwLjAwNDUwNCwgMC4wMDQ1MDUsIDAuMDA0NTA3IiwgXAotICAgICAgICAgICIwLjAwNDM2NiwgMC4wMDQ0NjIsIDAuMDA0NDc1LCAwLjAwNDQ3OCwgMC4wMDQ0ODEsIDAuMDA0NDgxLCAwLjAwNDQ4NiIsIFwKLSAgICAgICAgICAiMC4wMDQzNTEsIDAuMDA0NDQ5LCAwLjAwNDQ2MywgMC4wMDQ0NjcsIDAuMDA0NDcxLCAwLjAwNDQ3MiwgMC4wMDQ0NzQiLCBcCi0gICAgICAgICAgIjAuMDA0MzM3LCAwLjAwNDQzOCwgMC4wMDQ0NTMsIDAuMDA0NDU4LCAwLjAwNDQ2MiwgMC4wMDQ0NjYsIDAuMDA0NDY3IiwgXAotICAgICAgICAgICIwLjAwNDMyNiwgMC4wMDQ0MjksIDAuMDA0NDQ2LCAwLjAwNDQ1MSwgMC4wMDQ0NTYsIDAuMDA0NDU5LCAwLjAwNDQ2MSIsIFwKLSAgICAgICAgICAiMC4wMDQzMDcsIDAuMDA0NDE2LCAwLjAwNDQzNSwgMC4wMDQ0NDMsIDAuMDA0NDQ5LCAwLjAwNDQ1MiwgMC4wMDQ0NTQiLCBcCi0gICAgICAgICAgIjAuMDA0Mjk5LCAwLjAwNDQwNywgMC4wMDQ0MzEsIDAuMDA0NDM3LCAwLjAwNDQ0MywgMC4wMDQ0NSwgMC4wMDQ0NTEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjAyMiwgMC4wMDYxOTEsIDAuMDA2MjMxLCAwLjAwNjI0NCwgMC4wMDYyNTYsIDAuMDA2MjYzLCAwLjAwNjI2OCIsIFwKLSAgICAgICAgICAiMC4wMDYwMTIsIDAuMDA2MTgxLCAwLjAwNjIyMiwgMC4wMDYyMzUsIDAuMDA2MjQ3LCAwLjAwNjI1MywgMC4wMDYyNTkiLCBcCi0gICAgICAgICAgIjAuMDA1OTk3LCAwLjAwNjE2OSwgMC4wMDYyMTIsIDAuMDA2MjI2LCAwLjAwNjIzOCwgMC4wMDYyNDUsIDAuMDA2MjUxIiwgXAotICAgICAgICAgICIwLjAwNTk5MiwgMC4wMDYxNjQsIDAuMDA2MjA2LCAwLjAwNjIxOSwgMC4wMDYyMzIsIDAuMDA2MjM4LCAwLjAwNjI0NCIsIFwKLSAgICAgICAgICAiMC4wMDU5OSwgMC4wMDYxNjIsIDAuMDA2MjAzLCAwLjAwNjIxNywgMC4wMDYyMjksIDAuMDA2MjM2LCAwLjAwNjI0MiIsIFwKLSAgICAgICAgICAiMC4wMDU5ODEsIDAuMDA2MTU2LCAwLjAwNjE5OCwgMC4wMDYyMTIsIDAuMDA2MjI1LCAwLjAwNjIzMSwgMC4wMDYyMzciLCBcCi0gICAgICAgICAgIjAuMDA1OTc3LCAwLjAwNjE1MSwgMC4wMDYxOTQsIDAuMDA2MjA4LCAwLjAwNjIyMSwgMC4wMDYyMjgsIDAuMDA2MjM0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQwNjYsIDAuMDA0MTc1LCAwLjAwNDE4OCwgMC4wMDQxOTIsIDAuMDA0MTk2LCAwLjAwNDE5OCwgMC4wMDQxOTkiLCBcCi0gICAgICAgICAgIjAuMDA0MDUzLCAwLjAwNDE2MywgMC4wMDQxNzYsIDAuMDA0MTgsIDAuMDA0MTg0LCAwLjAwNDE4NSwgMC4wMDQxODciLCBcCi0gICAgICAgICAgIjAuMDA0MDM2LCAwLjAwNDE0OSwgMC4wMDQxNjQsIDAuMDA0MTY4LCAwLjAwNDE3MywgMC4wMDQxNzQsIDAuMDA0MTc1IiwgXAotICAgICAgICAgICIwLjAwNDAyMSwgMC4wMDQxMzYsIDAuMDA0MTUyLCAwLjAwNDE1OCwgMC4wMDQxNjIsIDAuMDA0MTY2LCAwLjAwNDE2NiIsIFwKLSAgICAgICAgICAiMC4wMDQwMDQsIDAuMDA0MTIzLCAwLjAwNDE0MywgMC4wMDQxNSwgMC4wMDQxNTYsIDAuMDA0MTU3LCAwLjAwNDE1OSIsIFwKLSAgICAgICAgICAiMC4wMDM5OCwgMC4wMDQxMDYsIDAuMDA0MTMsIDAuMDA0MTM3LCAwLjAwNDE0NSwgMC4wMDQxNDgsIDAuMDA0MTUxIiwgXAotICAgICAgICAgICIwLjAwMzk2NiwgMC4wMDQwOTUsIDAuMDA0MTIyLCAwLjAwNDEzMSwgMC4wMDQxMzksIDAuMDA0MTQzLCAwLjAwNDE0OCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1NzcxLCAwLjAwNTk0LCAwLjAwNTk4MSwgMC4wMDU5OTUsIDAuMDA2MDA4LCAwLjAwNjAxNCwgMC4wMDYwMiIsIFwKLSAgICAgICAgICAiMC4wMDU3NiwgMC4wMDU5MzEsIDAuMDA1OTcyLCAwLjAwNTk4NiwgMC4wMDU5OTgsIDAuMDA2MDA1LCAwLjAwNjAxMSIsIFwKLSAgICAgICAgICAiMC4wMDU3NDcsIDAuMDA1OTIxLCAwLjAwNTk2MywgMC4wMDU5NzcsIDAuMDA1OTksIDAuMDA1OTk3LCAwLjAwNjAwMyIsIFwKLSAgICAgICAgICAiMC4wMDU3NCwgMC4wMDU5MTIsIDAuMDA1OTU2LCAwLjAwNTk3LCAwLjAwNTk4NCwgMC4wMDU5OSwgMC4wMDU5OTciLCBcCi0gICAgICAgICAgIjAuMDA1NzM2LCAwLjAwNTkwOSwgMC4wMDU5NTIsIDAuMDA1OTY3LCAwLjAwNTk4LCAwLjAwNTk4NywgMC4wMDU5OTMiLCBcCi0gICAgICAgICAgIjAuMDA1NzI5LCAwLjAwNTkwMiwgMC4wMDU5NDYsIDAuMDA1OTYxLCAwLjAwNTk3NSwgMC4wMDU5ODIsIDAuMDA1OTg4IiwgXAotICAgICAgICAgICIwLjAwNTcyMywgMC4wMDU4OTgsIDAuMDA1OTQzLCAwLjAwNTk1OCwgMC4wMDU5NzEsIDAuMDA1OTc4LCAwLjAwNTk4NSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzNzM2LCAwLjAwMzgzNywgMC4wMDM4NDksIDAuMDAzODU1LCAwLjAwMzg1NiwgMC4wMDM4NTcsIDAuMDAzODU5IiwgXAotICAgICAgICAgICIwLjAwMzczMiwgMC4wMDM4MzcsIDAuMDAzODQ4LCAwLjAwMzg1MSwgMC4wMDM4NTUsIDAuMDAzODU2LCAwLjAwMzg1OCIsIFwKLSAgICAgICAgICAiMC4wMDM3MTUsIDAuMDAzODI1LCAwLjAwMzgzOCwgMC4wMDM4NDIsIDAuMDAzODQ1LCAwLjAwMzg0OCwgMC4wMDM4NDkiLCBcCi0gICAgICAgICAgIjAuMDAzNywgMC4wMDM4MTMsIDAuMDAzODI4LCAwLjAwMzgzMiwgMC4wMDM4MzcsIDAuMDAzODM5LCAwLjAwMzg0MSIsIFwKLSAgICAgICAgICAiMC4wMDM2NzksIDAuMDAzOCwgMC4wMDM4MTYsIDAuMDAzODIzLCAwLjAwMzgyOCwgMC4wMDM4MywgMC4wMDM4MzQiLCBcCi0gICAgICAgICAgIjAuMDAzNjUxLCAwLjAwMzc3OCwgMC4wMDM4MDMsIDAuMDAzODA5LCAwLjAwMzgxNiwgMC4wMDM4MTgsIDAuMDAzODIxIiwgXAotICAgICAgICAgICIwLjAwMzY0NSwgMC4wMDM3NjgsIDAuMDAzNzkzLCAwLjAwMzgwMSwgMC4wMDM4MSwgMC4wMDM4MTIsIDAuMDAzODE3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDU1MTQsIDAuMDA1Njg3LCAwLjAwNTczLCAwLjAwNTc0NCwgMC4wMDU3NTgsIDAuMDA1NzY1LCAwLjAwNTc3MSIsIFwKLSAgICAgICAgICAiMC4wMDU1MDksIDAuMDA1Njc5LCAwLjAwNTcyMSwgMC4wMDU3MzYsIDAuMDA1NzQ5LCAwLjAwNTc1NiwgMC4wMDU3NjIiLCBcCi0gICAgICAgICAgIjAuMDA1NDk1LCAwLjAwNTY2NCwgMC4wMDU3MSwgMC4wMDU3MjUsIDAuMDA1NzM5LCAwLjAwNTc0NiwgMC4wMDU3NTIiLCBcCi0gICAgICAgICAgIjAuMDA1NDk2LCAwLjAwNTY2NiwgMC4wMDU3MDgsIDAuMDA1NzIyLCAwLjAwNTczNSwgMC4wMDU3NDIsIDAuMDA1NzQ5IiwgXAotICAgICAgICAgICIwLjAwNTQ4MywgMC4wMDU2NTYsIDAuMDA1NzAxLCAwLjAwNTcxNiwgMC4wMDU3MjksIDAuMDA1NzM3LCAwLjAwNTc0MyIsIFwKLSAgICAgICAgICAiMC4wMDU0NzcsIDAuMDA1NjQ5LCAwLjAwNTY5MywgMC4wMDU3MDksIDAuMDA1NzIzLCAwLjAwNTczMSwgMC4wMDU3MzgiLCBcCi0gICAgICAgICAgIjAuMDA1NDcxLCAwLjAwNTY0MywgMC4wMDU2ODksIDAuMDA1NzA1LCAwLjAwNTcyLCAwLjAwNTcyNywgMC4wMDU3MzQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJEIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzQxMywgMC4wMDM1MDgsIDAuMDAzNTE4LCAwLjAwMzUyMSwgMC4wMDM1MjYsIDAuMDAzNTI1LCAwLjAwMzUyNiIsIFwKLSAgICAgICAgICAiMC4wMDM0MSwgMC4wMDM1MDksIDAuMDAzNTE2LCAwLjAwMzUyMiwgMC4wMDM1MjEsIDAuMDAzNTMsIDAuMDAzNTI1IiwgXAotICAgICAgICAgICIwLjAwMzM5LCAwLjAwMzQ5NiwgMC4wMDM1MDgsIDAuMDAzNTEyLCAwLjAwMzUxNSwgMC4wMDM1MTcsIDAuMDAzNTE3IiwgXAotICAgICAgICAgICIwLjAwMzM2NywgMC4wMDM0OCwgMC4wMDM0OTYsIDAuMDAzNSwgMC4wMDM1MDQsIDAuMDAzNTA1LCAwLjAwMzUwNyIsIFwKLSAgICAgICAgICAiMC4wMDMzNCwgMC4wMDM0NjMsIDAuMDAzNDgxLCAwLjAwMzQ4NywgMC4wMDM0OTIsIDAuMDAzNDk0LCAwLjAwMzQ5NiIsIFwKLSAgICAgICAgICAiMC4wMDMzMjUsIDAuMDAzNDQ2LCAwLjAwMzQ2OCwgMC4wMDM0NzcsIDAuMDAzNDgsIDAuMDAzNDgzLCAwLjAwMzQ4NiIsIFwKLSAgICAgICAgICAiMC4wMDMzMDIsIDAuMDAzNDMxLCAwLjAwMzQ1NywgMC4wMDM0NjUsIDAuMDAzNDcyLCAwLjAwMzQ3NiwgMC4wMDM0NzgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNTI1NywgMC4wMDU0MzMsIDAuMDA1NDc3LCAwLjAwNTQ5MSwgMC4wMDU1MDUsIDAuMDA1NTEyLCAwLjAwNTUxOCIsIFwKLSAgICAgICAgICAiMC4wMDUyMzksIDAuMDA1NDE4LCAwLjAwNTQ2MSwgMC4wMDU0NzYsIDAuMDA1NDg4LCAwLjAwNTQ5NSwgMC4wMDU1MDIiLCBcCi0gICAgICAgICAgIjAuMDA1MjI2LCAwLjAwNTQwNSwgMC4wMDU0NDksIDAuMDA1NDYzLCAwLjAwNTQ3NywgMC4wMDU0ODQsIDAuMDA1NDkiLCBcCi0gICAgICAgICAgIjAuMDA1MjE1LCAwLjAwNTM5MywgMC4wMDU0MzgsIDAuMDA1NDUzLCAwLjAwNTQ2NywgMC4wMDU0NzQsIDAuMDA1NDgxIiwgXAotICAgICAgICAgICIwLjAwNTIwOSwgMC4wMDUzODQsIDAuMDA1NDMsIDAuMDA1NDQ1LCAwLjAwNTQ2LCAwLjAwNTQ2NywgMC4wMDU0NzQiLCBcCi0gICAgICAgICAgIjAuMDA1MjA0LCAwLjAwNTM3NCwgMC4wMDU0MiwgMC4wMDU0MzYsIDAuMDA1NDUyLCAwLjAwNTQ2LCAwLjAwNTQ2NyIsIFwKLSAgICAgICAgICAiMC4wMDUyMDQsIDAuMDA1MzY3LCAwLjAwNTQxNCwgMC4wMDU0MzEsIDAuMDA1NDQ3LCAwLjAwNTQ1NSwgMC4wMDU0NjMiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogT1I0WDYgKgotICogLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKE9SNFg2KSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuNDkxODM1OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE5Mjc5MjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE5MTIxOTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE5Mjc5MjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA1MjMsIDAuMDAwNTQxLCAwLjAwMDU1MSwgMC4wMDA1NTYsIDAuMDAwNTYsIDAuMDAwNTY1LCAwLjAwMDU2NyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTEyLCAwLjAwMTEyMSwgMC4wMDExMjEsIDAuMDAxMTIxLCAwLjAwMTEyMSwgMC4wMDExMjEsIDAuMDAxMTIxIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE4MzI5NDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE4MTg0MzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE4MzI5NDsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA1MjEsIDAuMDAwNTM2LCAwLjAwMDU1LCAwLjAwMDU1OCwgMC4wMDA1NjQsIDAuMDAwNTY5LCAwLjAwMDU3MyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDc4LCAwLjAwMDc4LCAwLjAwMDc4LCAwLjAwMDc4MSwgMC4wMDA3ODEsIDAuMDAwNzgxLCAwLjAwMDc4MSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQykgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNjU1MDk7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNjQyMDc7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNjU1MDk7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNTMyLCAwLjAwMDU2MiwgMC4wMDA1NzUsIDAuMDAwNTgxLCAwLjAwMDU4NSwgMC4wMDA1ODcsIDAuMDAwNTg5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNjI3LCAwLjAwMDYyNywgMC4wMDA2MjcsIDAuMDAwNjI4LCAwLjAwMDYyNywgMC4wMDA2MjgsIDAuMDAwNjI4Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihEKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE1MjI4NjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE1MjI3ODsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE1MjI4NjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxODMsIDAuMDAwMTgzLCAwLjAwMDE4NCwgMC4wMDAxODQsIDAuMDAwMTg0LCAwLjAwMDE4NCwgMC4wMDAxODQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA3MzUsIDAuMDAwNzM1LCAwLjAwMDczNSwgMC4wMDA3MzUsIDAuMDAwNzM1LCAwLjAwMDczNCwgMC4wMDA3MzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC44MDg2MTsKLSAgICBmdW5jdGlvbiA6ICIoKChBK0IpK0MpK0QpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4NDQ0NiwgMC4xNzQ1OTQsIDAuMjYwOTMxLCAwLjMyMjM0NiwgMC40MjA0NSwgMC41MDYyMDksIDAuNjI4NjYyIiwgXAotICAgICAgICAgICIwLjA5NTgxNSwgMC4xODYwMiwgMC4yNzIzMTYsIDAuMzMzNzY1LCAwLjQzMTg1LCAwLjUxNzYyOSwgMC42NDAwNTciLCBcCi0gICAgICAgICAgIjAuMTEwODgyLCAwLjIwMTAzOCwgMC4yODczODYsIDAuMzQ4Nzk2LCAwLjQ0Njg4NiwgMC41MzI2NjIsIDAuNjU1MTEzIiwgXAotICAgICAgICAgICIwLjEyNjA5OCwgMC4yMTYyMDIsIDAuMzAyNTI3LCAwLjM2Mzk2NSwgMC40NjIwNSwgMC41NDc4NjcsIDAuNjcwMjgxIiwgXAotICAgICAgICAgICIwLjE0MTIyNywgMC4yMzEyMjcsIDAuMzE3NTY5LCAwLjM3OTAwNCwgMC40NzcxMTQsIDAuNTYyODcsIDAuNjg1MzIxIiwgXAotICAgICAgICAgICIwLjE2NTIyMSwgMC4yNTUwNCwgMC4zNDEzNTgsIDAuNDAyNzY0LCAwLjUwMDg2OSwgMC41ODY2MjksIDAuNzA5MDg0IiwgXAotICAgICAgICAgICIwLjE4NTk1OCwgMC4yNzU3ODYsIDAuMzYyMDUsIDAuNDIzNDgyLCAwLjUyMTU5NywgMC42MDczNTksIDAuNzI5ODA4Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQ3NDI4LCAwLjIxNTY2MywgMC4zODg1NzUsIDAuNTEyNTAyLCAwLjcxMTM3OSwgMC44ODU1MDMsIDEuMTM0MzciLCBcCi0gICAgICAgICAgIjAuMDQ3MzI2LCAwLjIxNTM0MywgMC4zODc3ODYsIDAuNTExNjE3LCAwLjcxMTM1MSwgMC44ODQxMjUsIDEuMTM0MjUiLCBcCi0gICAgICAgICAgIjAuMDQ3MjM1LCAwLjIxNTUyOSwgMC4zODc3NTQsIDAuNTEyMzcxLCAwLjcxMDYxOCwgMC44ODUzNzgsIDEuMTM0MTYiLCBcCi0gICAgICAgICAgIjAuMDQ3MDcyLCAwLjIxNTQ2MywgMC4zODc4MTUsIDAuNTEyMzQ0LCAwLjcxMDU5OCwgMC44ODUwOTksIDEuMTM0MTciLCBcCi0gICAgICAgICAgIjAuMDQ3MDIxLCAwLjIxNTM5NSwgMC4zODc3OTksIDAuNTEyNDE0LCAwLjcxMDI5LCAwLjg4NTQxLCAxLjEzNDIxIiwgXAotICAgICAgICAgICIwLjA0NzY2MiwgMC4yMTUzNDcsIDAuMzg3NTk4LCAwLjUxMjM0OCwgMC43MTEyMDgsIDAuODg1Mzg0LCAxLjEzNDE3IiwgXAotICAgICAgICAgICIwLjA0ODE5MiwgMC4yMTUxMjIsIDAuMzg4MzY3LCAwLjUxMTc4NSwgMC43MTEyMDksIDAuODg1MDQ3LCAxLjEzNDM3Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjMwNzM3LCAwLjM1Nzc4NywgMC40NjExNTksIDAuNTMyOTA0LCAwLjY0NzAxMywgMC43NDY2MzgsIDAuODg4ODU2IiwgXAotICAgICAgICAgICIwLjI0MTc0NiwgMC4zNjg4ODcsIDAuNDcyMjM4LCAwLjU0Mzk4MiwgMC42NTgxMDYsIDAuNzU3NzM0LCAwLjg5OTk0MyIsIFwKLSAgICAgICAgICAiMC4yNTQwOTMsIDAuMzgxNTgxLCAwLjQ4NDg3OCwgMC41NTY2ODUsIDAuNjcwNzY2LCAwLjc3MDM4NiwgMC45MTI2MDkiLCBcCi0gICAgICAgICAgIjAuMjY1NzczLCAwLjM5MjkyOSwgMC40OTYxNjYsIDAuNTY3OTUsIDAuNjgyMDU1LCAwLjc4MTY2MiwgMC45MjM4ODQiLCBcCi0gICAgICAgICAgIjAuMjc2NzQ4LCAwLjQwMzkyNywgMC41MDcyNjgsIDAuNTc5MDE3LCAwLjY5MzEzMSwgMC43OTI3NjUsIDAuOTM0OTc3IiwgXAotICAgICAgICAgICIwLjI5MzI3MywgMC40MjA1NzgsIDAuNTIzOTQ3LCAwLjU5NTcyOCwgMC43MDk4MTgsIDAuODA5NDA3LCAwLjk1MTY1NiIsIFwKLSAgICAgICAgICAiMC4zMDczMTUsIDAuNDM0NjM2LCAwLjUzODAyMywgMC42MDk4MzYsIDAuNzIzOTI3LCAwLjgyMzUyLCAwLjk2NTc3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg1NzY4LCAwLjI3NDY5OSwgMC40NjIzMTksIDAuNTk4NzYsIDAuODE5NTEsIDEuMDE0NDMsIDEuMjk0NTkiLCBcCi0gICAgICAgICAgIjAuMDg1ODYyLCAwLjI3NDM2NiwgMC40NjIxMzIsIDAuNTk4NjQzLCAwLjgxODk5NSwgMS4wMTM5OSwgMS4yOTQxOSIsIFwKLSAgICAgICAgICAiMC4wODU4NzIsIDAuMjc0MTczLCAwLjQ2MjM4OCwgMC41OTk0OSwgMC44MjA4NDksIDEuMDE1MzksIDEuMjk2MDgiLCBcCi0gICAgICAgICAgIjAuMDg1Nzk5LCAwLjI3NDU4LCAwLjQ2MjIxLCAwLjU5ODczNiwgMC44MjA2MDgsIDEuMDE0MTIsIDEuMjk0OTUiLCBcCi0gICAgICAgICAgIjAuMDg1NzE0LCAwLjI3NDI5NSwgMC40NjIwODgsIDAuNTk4NjY2LCAwLjgyMDgxOCwgMS4wMTU2OCwgMS4yOTQ1MSIsIFwKLSAgICAgICAgICAiMC4wODYwMTcsIDAuMjc0Mjg4LCAwLjQ2MjA4NSwgMC41OTk1MjIsIDAuODIwNzY3LCAxLjAxNjQ5LCAxLjI5NTU4IiwgXAotICAgICAgICAgICIwLjA4NTk0NiwgMC4yNzQwODQsIDAuNDYyMDczLCAwLjU5OTQ1NywgMC44MjA4MTcsIDEuMDE2NDEsIDEuMjk2MDIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODE0NzIsIDAuMTcwNjczLCAwLjI1NjcwMSwgMC4zMTgwMDQsIDAuNDE1OTc2LCAwLjUwMTcsIDAuNjI0MDQ0IiwgXAotICAgICAgICAgICIwLjA5MzEzMiwgMC4xODIzNDksIDAuMjY4NDEsIDAuMzI5Njk5LCAwLjQyNzY4NSwgMC41MTMzNSwgMC42MzU3MTciLCBcCi0gICAgICAgICAgIjAuMTA4MTEsIDAuMTk3MzE4LCAwLjI4MzM1NywgMC4zNDQ2NjgsIDAuNDQyNjQxLCAwLjUyODM0OCwgMC42NTA2ODciLCBcCi0gICAgICAgICAgIjAuMTIzMTc4LCAwLjIxMjQ0NCwgMC4yOTg1MTksIDAuMzU5ODEsIDAuNDU3Nzk4LCAwLjU0MzQ2OCwgMC42NjU4MzkiLCBcCi0gICAgICAgICAgIjAuMTM4MjA3LCAwLjIyNzQ4NCwgMC4zMTM1NTcsIDAuMzc0ODY0LCAwLjQ3MjgzOCwgMC41NTg1NTEsIDAuNjgwOTM3IiwgXAotICAgICAgICAgICIwLjE2MTQxMiwgMC4yNTA5MzMsIDAuMzM2OTczLCAwLjM5ODMwNywgMC40OTYyNjcsIDAuNTgyLCAwLjcwNDM2NSIsIFwKLSAgICAgICAgICAiMC4xODIwNDgsIDAuMjcxMzU0LCAwLjM1NzM4MywgMC40MTg3MTcsIDAuNTE2Njk0LCAwLjYwMjM3NywgMC43MjQ3NTQiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDYyMTksIDAuMjE0Mzg1LCAwLjM4NzU2MywgMC41MTE2NjMsIDAuNzEwNzMyLCAwLjg4NDcxNCwgMS4xMzIyIiwgXAotICAgICAgICAgICIwLjA0NjIwMywgMC4yMTQzNzcsIDAuMzg2NzIzLCAwLjUxMTU1OCwgMC43MDkyNjQsIDAuODg0OTIxLCAxLjEzMTk2IiwgXAotICAgICAgICAgICIwLjA0NjE5NCwgMC4yMTQ0MDQsIDAuMzg2NzM1LCAwLjUxMTU2NSwgMC43MDk2OSwgMC44ODQ2MjgsIDEuMTMzODEiLCBcCi0gICAgICAgICAgIjAuMDQ2MDc3LCAwLjIxNDMwMSwgMC4zODY3LCAwLjUxMTQ3NywgMC43MTA0MjksIDAuODg0ODYxLCAxLjEzMzIxIiwgXAotICAgICAgICAgICIwLjA0NjE2NCwgMC4yMTQyNzYsIDAuMzg3NTAxLCAwLjUxMTU5NSwgMC43MTA2NDQsIDAuODg0NzMxLCAxLjEzMTg4IiwgXAotICAgICAgICAgICIwLjA0NzQzNiwgMC4yMTM5MzQsIDAuMzg2OTE5LCAwLjUxMTU4MywgMC43MTA2NDQsIDAuODg0NTE0LCAxLjEzMTYiLCBcCi0gICAgICAgICAgIjAuMDQ3ODcyLCAwLjIxNDQ0NSwgMC4zODY5MzIsIDAuNTExNjQzLCAwLjcxMDYyOCwgMC44ODQ0OTEsIDEuMTMyMTQiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMjQ3OTEsIDAuMzUxNjc1LCAwLjQ1NTE5OSwgMC41MjY5NDksIDAuNjQxMDYsIDAuNzQwNjg1LCAwLjg4MjkwNSIsIFwKLSAgICAgICAgICAiMC4yMzQ4MzQsIDAuMzYxOTAxLCAwLjQ2NTI3NywgMC41MzcwMjQsIDAuNjUxMTM4LCAwLjc1MDc2NSwgMC44OTI5ODQiLCBcCi0gICAgICAgICAgIjAuMjQ2OTI0LCAwLjM3NDM1NCwgMC40Nzc2NzcsIDAuNTQ5NDkyLCAwLjY2MzU3NiwgMC43NjMxODEsIDAuOTA1NDIiLCBcCi0gICAgICAgICAgIjAuMjU4NDQ1LCAwLjM4NTcwNywgMC40ODkwNDksIDAuNTYwODEyLCAwLjY3NDkwNywgMC43NzQ1NDEsIDAuOTE2NzU4IiwgXAotICAgICAgICAgICIwLjI2OTQzNSwgMC4zOTY4MDEsIDAuNTAwMTc5LCAwLjU3MTk4MywgMC42ODYwNzQsIDAuNzg1NzA1LCAwLjkyNzkxOSIsIFwKLSAgICAgICAgICAiMC4yODY1MDQsIDAuNDEzODg1LCAwLjUxNzI1LCAwLjU4OTA2NywgMC43MDMxNTksIDAuODAyNzU3LCAwLjk0NTAxMiIsIFwKLSAgICAgICAgICAiMC4zMDExNiwgMC40Mjg1MDksIDAuNTMxOTA1LCAwLjYwMzcxNywgMC43MTc4MTIsIDAuODE3NDQ2LCAwLjk1OTY2NSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4NTc1NiwgMC4yNzQ2MjUsIDAuNDYyMzE0LCAwLjU5ODc1NiwgMC44MTk1MDEsIDEuMDE0NDEsIDEuMjk0NjQiLCBcCi0gICAgICAgICAgIjAuMDg1Nzc4LCAwLjI3NDY5NywgMC40NjIzMTMsIDAuNTk4NzUzLCAwLjgxOTI0NywgMS4wMTQ0NCwgMS4yOTQ2NSIsIFwKLSAgICAgICAgICAiMC4wODU3MTEsIDAuMjc0MTksIDAuNDYyMjg5LCAwLjU5OTUwNCwgMC44MjA4MDcsIDEuMDE2MTksIDEuMjk2MSIsIFwKLSAgICAgICAgICAiMC4wODU2OTUsIDAuMjc0MjQ3LCAwLjQ2MjA1OCwgMC41OTk1MTksIDAuODIwNzEsIDEuMDE1NjgsIDEuMjk0MzgiLCBcCi0gICAgICAgICAgIjAuMDg2MDU3LCAwLjI3NDExOCwgMC40NjIzNzIsIDAuNTk5NDg1LCAwLjgyMDg0MSwgMS4wMTY4NiwgMS4yOTYxNCIsIFwKLSAgICAgICAgICAiMC4wODYxNTQsIDAuMjc0MTU3LCAwLjQ2MjA2OCwgMC41OTk0NjksIDAuODIwODQyLCAxLjAxNjQxLCAxLjI5NTgzIiwgXAotICAgICAgICAgICIwLjA4NTY0OCwgMC4yNzM5NjcsIDAuNDYyMjgzLCAwLjU5OTQxLCAwLjgyMDc5NywgMS4wMTY4NCwgMS4yOTYxMiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3Njk0NiwgMC4xNjU0NjIsIDAuMjUxMjg0LCAwLjMxMjQ4MiwgMC40MTAzNTUsIDAuNDk1OTk1LCAwLjYxODMiLCBcCi0gICAgICAgICAgIjAuMDg4NzMzLCAwLjE3NzMxMiwgMC4yNjMxNDgsIDAuMzI0MzQ0LCAwLjQyMjIxNCwgMC41MDc4NDgsIDAuNjMwMTYiLCBcCi0gICAgICAgICAgIjAuMTAzODAxLCAwLjE5MjM4NCwgMC4yNzgyMjUsIDAuMzM5NDI0LCAwLjQzNzI5NiwgMC41MjI5MywgMC42NDUyNDEiLCBcCi0gICAgICAgICAgIjAuMTE4OTQzLCAwLjIwNzU1OSwgMC4yOTMzOTYsIDAuMzU0NjEyLCAwLjQ1MjQ5NiwgMC41MzgxMjksIDAuNjYwNDM1IiwgXAotICAgICAgICAgICIwLjEzMzcxMSwgMC4yMjIyOTYsIDAuMzA4MTI1LCAwLjM2OTM2MiwgMC40NjcyNDIsIDAuNTUyODgyLCAwLjY3NTE5NCIsIFwKLSAgICAgICAgICAiMC4xNTcyNDcsIDAuMjQ1OTYsIDAuMzMxODIyLCAwLjM5MzA1NCwgMC40OTA5MDksIDAuNTc2NTUxLCAwLjY5ODg2IiwgXAotICAgICAgICAgICIwLjE3NjU1OSwgMC4yNjU1MDQsIDAuMzUxMzMzLCAwLjQxMjU4LCAwLjUxMDQ0OSwgMC41OTYwODQsIDAuNzE4Mzk2Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQ1MzA2LCAwLjIxMzQ3OCwgMC4zODY4ODEsIDAuNTExMDUxLCAwLjcxMDAwNiwgMC44ODI5MDIsIDEuMTMxNyIsIFwKLSAgICAgICAgICAiMC4wNDUyNDksIDAuMjEzMjE0LCAwLjM4NTc2MywgMC41MTEwMjIsIDAuNzA5OTYzLCAwLjg4Mjk0MywgMS4xMzE1NCIsIFwKLSAgICAgICAgICAiMC4wNDUyMzQsIDAuMjEzNDgyLCAwLjM4NTYzLCAwLjUxMTAyMSwgMC43MDk5NjMsIDAuODgyOTY4LCAxLjEzMTU0IiwgXAotICAgICAgICAgICIwLjA0NTI1NywgMC4yMTM0MzUsIDAuMzg2NzA2LCAwLjUxMDE0NCwgMC43MDk4NzIsIDAuODgyOTc2LCAxLjEzMTQ2IiwgXAotICAgICAgICAgICIwLjA0NTM3OSwgMC4yMTM0NDgsIDAuMzg2MDM4LCAwLjUxMTAxMSwgMC43MDk5NDIsIDAuODgyOTI1LCAxLjEzMTQ0IiwgXAotICAgICAgICAgICIwLjA0NjE1NywgMC4yMTM2MjcsIDAuMzg1ODc0LCAwLjUxMTA1MywgMC43MDk5MzgsIDAuODgyODAxLCAxLjEzMTMyIiwgXAotICAgICAgICAgICIwLjA0ODMzMywgMC4yMTM4ODEsIDAuMzg2ODM0LCAwLjUxMTExNCwgMC43MDk5NywgMC44ODI4NDMsIDEuMTMxMzMiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMTAzOCwgMC4zMzc4MDksIDAuNDQxMTU4LCAwLjUxMjk2MiwgMC42MjcwNTUsIDAuNzI2Njg0LCAwLjg2ODkwMyIsIFwKLSAgICAgICAgICAiMC4yMTk4NjIsIDAuMzQ3MjIyLCAwLjQ1MDUyNCwgMC41MjI0MDIsIDAuNjM2NDg5LCAwLjczNjA4OCwgMC44NzgzMzkiLCBcCi0gICAgICAgICAgIjAuMjMxMzc2LCAwLjM1ODkyMiwgMC40NjIyNzYsIDAuNTM0MDksIDAuNjQ4MTgxLCAwLjc0NzgxNCwgMC44OTAwMzIiLCBcCi0gICAgICAgICAgIjAuMjQzMTMsIDAuMzcwMjczLCAwLjQ3MzU0MywgMC41NDUyNzYsIDAuNjU5NDE5LCAwLjc1OTAyOSwgMC45MDEyNjEiLCBcCi0gICAgICAgICAgIjAuMjU0MjQ1LCAwLjM4MTY3NywgMC40ODUwNjcsIDAuNTU2ODcyLCAwLjY3MDk2NCwgMC43NzA1NzEsIDAuOTEyODIiLCBcCi0gICAgICAgICAgIjAuMjcyNDA5LCAwLjM5OTczLCAwLjUwMzEyOCwgMC41NzQ4NTgsIDAuNjg5MDAyLCAwLjc4ODY0NSwgMC45MzA4OTIiLCBcCi0gICAgICAgICAgIjAuMjg4MjE3LCAwLjQxNTY4MSwgMC41MTkwMzQsIDAuNTkwNzg4LCAwLjcwNDkwNSwgMC44MDQ1ODIsIDAuOTQ2Nzc5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg1NzMzLCAwLjI3NDEyOCwgMC40NjIzOTIsIDAuNTk5NDYzLCAwLjgyMDg0MywgMS4wMTY4NCwgMS4yOTYxNSIsIFwKLSAgICAgICAgICAiMC4wODU4NjcsIDAuMjc0MjY5LCAwLjQ2MjAxNywgMC41OTk0OTIsIDAuODIwODcyLCAxLjAxNDk0LCAxLjI5NTIyIiwgXAotICAgICAgICAgICIwLjA4NjIzNiwgMC4yNzQwNDMsIDAuNDYyNDMsIDAuNTk5NDczLCAwLjgyMDg0OCwgMS4wMTY4MSwgMS4yOTUyNCIsIFwKLSAgICAgICAgICAiMC4wODU3MjIsIDAuMjc0NjcxLCAwLjQ2MjI3MiwgMC41OTg3MjQsIDAuODIwNTY4LCAxLjAxNDMzLCAxLjI5Nzc5IiwgXAotICAgICAgICAgICIwLjA4NTgyMiwgMC4yNzQwNzIsIDAuNDYyMzQ4LCAwLjU5OTQ2MywgMC44MjA4MzEsIDEuMDE2NjcsIDEuMjk2MTkiLCBcCi0gICAgICAgICAgIjAuMDg1NzMyLCAwLjI3NDE1NCwgMC40NjIwNCwgMC41OTg2MDcsIDAuODIwNzQ0LCAxLjAxNDE2LCAxLjI5Nzc1IiwgXAotICAgICAgICAgICIwLjA4NTU2NywgMC4yNzM5ODQsIDAuNDYxOTIsIDAuNTk4NTczLCAwLjgyMDc5MSwgMS4wMTM5MSwgMS4yOTM0OCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJEIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3MTcyMiwgMC4xNTk5NDUsIDAuMjQ1NjEzLCAwLjMwNjc0OCwgMC40MDQ2NzksIDAuNDkwMDcxLCAwLjYxMjcwNyIsIFwKLSAgICAgICAgICAiMC4wODM1MTEsIDAuMTcxNzM3LCAwLjI1NzQyMSwgMC4zMTg1NjYsIDAuNDE2MzUyLCAwLjUwMTk5OCwgMC42MjQzMzkiLCBcCi0gICAgICAgICAgIjAuMDk4NTk0LCAwLjE4Njg0NywgMC4yNzI1MzEsIDAuMzMzNjY4LCAwLjQzMTU0OSwgMC41MTcxMjgsIDAuNjM5Njc4IiwgXAotICAgICAgICAgICIwLjExMzYyNywgMC4yMDE5MzksIDAuMjg3NjAzLCAwLjM0ODc3MiwgMC40NDY1NywgMC41MzIyMzQsIDAuNjU0Nzc3IiwgXAotICAgICAgICAgICIwLjEyODUzMiwgMC4yMTY3NTgsIDAuMzAyNDY2LCAwLjM2MzYwNiwgMC40NjE1NTksIDAuNTQ3MDYsIDAuNjY5NTY0IiwgXAotICAgICAgICAgICIwLjE1MTM3MSwgMC4yMzk4MzgsIDAuMzI1NTI3LCAwLjM4NjcxNSwgMC40ODQ1NDUsIDAuNTcwNDE0LCAwLjY5MjU3IiwgXAotICAgICAgICAgICIwLjE3MDA4NywgMC4yNTg2MzIsIDAuMzQ0MzUyLCAwLjQwNTUxNywgMC41MDMzOTgsIDAuNTg4OTk4LCAwLjcxMTU2MSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0NDg3MSwgMC4yMTI1ODksIDAuMzg2MzQ4LCAwLjUxMDU4LCAwLjcwODA4MiwgMC44ODM2NTYsIDEuMTMwMzIiLCBcCi0gICAgICAgICAgIjAuMDQ0ODQ4LCAwLjIxMjU2OSwgMC4zODUwOTEsIDAuNTEwNTcyLCAwLjcwODQwMiwgMC44ODQxNTEsIDEuMTI5OTYiLCBcCi0gICAgICAgICAgIjAuMDQ0NzgxLCAwLjIxMjk3OSwgMC4zODYzNDYsIDAuNTEwNTYzLCAwLjcwODQ3NSwgMC44ODQxOTksIDEuMTMwMjgiLCBcCi0gICAgICAgICAgIjAuMDQ0ODQ0LCAwLjIxMjk4NCwgMC4zODYxMjUsIDAuNTEwNTYxLCAwLjcwOTU3NiwgMC44ODQxODYsIDEuMTMwMzEiLCBcCi0gICAgICAgICAgIjAuMDQ1MTM0LCAwLjIxMzAyNCwgMC4zODY4NjcsIDAuNTEwNTQ3LCAwLjcwNzk4NywgMC44ODQxMTksIDEuMTMwMyIsIFwKLSAgICAgICAgICAiMC4wNDY3NDIsIDAuMjEzMjk3LCAwLjM4NTYyMSwgMC41MTA2NDgsIDAuNzA5NDU5LCAwLjg4MTk0OCwgMS4xMzEyNCIsIFwKLSAgICAgICAgICAiMC4wNDg3MzgsIDAuMjEzNDk3LCAwLjM4NjMxNywgMC41MDk2MiwgMC43MDg0MzUsIDAuODg0MTY0LCAxLjEzMDI2Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTg1NjQ5LCAwLjMxMzIzLCAwLjQxNjU4NSwgMC40ODgzODQsIDAuNjAyNDgsIDAuNzAyMDczLCAwLjg0NDMzNCIsIFwKLSAgICAgICAgICAiMC4xOTQyNjYsIDAuMzIxNTMyLCAwLjQyNDksIDAuNDk2NjQ2LCAwLjYxMDc3NSwgMC43MTAzOTQsIDAuODUyNjE2IiwgXAotICAgICAgICAgICIwLjIwNTgyNywgMC4zMzMyNzcsIDAuNDM2NTg4LCAwLjUwODM5OCwgMC42MjI0OTMsIDAuNzIyMDg3LCAwLjg2NDM0NiIsIFwKLSAgICAgICAgICAiMC4yMTY3NjYsIDAuMzQ0MDcsIDAuNDQ3NDcsIDAuNTE5MjkzLCAwLjYzMzM5NywgMC43MzMwMTgsIDAuODc1MjUxIiwgXAotICAgICAgICAgICIwLjIyODIwOSwgMC4zNTU3MiwgMC40NTkwNiwgMC41MzA4MTgsIDAuNjQ0OTY1LCAwLjc0NDYxMywgMC44ODY4MSIsIFwKLSAgICAgICAgICAiMC4yNDc1MzEsIDAuMzc0ODYyLCAwLjQ3ODIyMSwgMC41NDk5OTYsIDAuNjY0MDkzLCAwLjc2Mzc2MSwgMC45MDU5ODYiLCBcCi0gICAgICAgICAgIjAuMjY0MTMxLCAwLjM5MTQ4NiwgMC40OTQ3NzIsIDAuNTY2NTM3LCAwLjY4MDcwMywgMC43ODAzNDksIDAuOTIyNTU0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg2MjQsIDAuMjc0MDYxLCAwLjQ2MjI1OCwgMC41OTk0MSwgMC44MjA4MTMsIDEuMDE2NCwgMS4yOTYyNSIsIFwKLSAgICAgICAgICAiMC4wODU3NDcsIDAuMjc0NDk1LCAwLjQ2MjE5NSwgMC41OTg3OTQsIDAuODIwNjEzLCAxLjAxNDYsIDEuMjk0NDYiLCBcCi0gICAgICAgICAgIjAuMDg1NTc5LCAwLjI3NDE5MywgMC40NjIzNjEsIDAuNTk5NDEyLCAwLjgyMDc0NCwgMS4wMTY0NCwgMS4yOTYzIiwgXAotICAgICAgICAgICIwLjA4NTg3MSwgMC4yNzQxMTEsIDAuNDYxOTk5LCAwLjU5OTQ1NiwgMC44MjA4MzEsIDEuMDE0NDMsIDEuMjk1MzMiLCBcCi0gICAgICAgICAgIjAuMDg1NjMyLCAwLjI3NDAwNCwgMC40NjE5NDIsIDAuNTk4NTYsIDAuODIwNzI5LCAxLjAxNDI1LCAxLjI5NzU2IiwgXAotICAgICAgICAgICIwLjA4NTQ2OSwgMC4yNzM5MjcsIDAuNDYxODgyLCAwLjU5ODk4NCwgMC44MjA3MSwgMS4wMTM5NCwgMS4yOTMzOCIsIFwKLSAgICAgICAgICAiMC4wODU2NjksIDAuMjczOTg1LCAwLjQ2MTkyLCAwLjU5ODU4NywgMC44MjA1OCwgMS4wMTM2NiwgMS4yOTc0OSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA3MDE3LCAwLjAwNzE3OSwgMC4wMDcyMDIsIDAuMDA3MjA5LCAwLjAwNzIxNSwgMC4wMDcyMiwgMC4wMDcyMjEiLCBcCi0gICAgICAgICAgIjAuMDA2OTY4LCAwLjAwNzEyOSwgMC4wMDcxNTMsIDAuMDA3MTYsIDAuMDA3MTY2LCAwLjAwNzE2OSwgMC4wMDcxNzMiLCBcCi0gICAgICAgICAgIjAuMDA2OTM3LCAwLjAwNzEsIDAuMDA3MTI2LCAwLjAwNzEzNiwgMC4wMDcxNDYsIDAuMDA3MTQ3LCAwLjAwNzE1IiwgXAotICAgICAgICAgICIwLjAwNjkxOSwgMC4wMDcwODEsIDAuMDA3MTExLCAwLjAwNzEyLCAwLjAwNzEyOSwgMC4wMDcxMzMsIDAuMDA3MTM3IiwgXAotICAgICAgICAgICIwLjAwNjg4NiwgMC4wMDcwNTcsIDAuMDA3MDkyLCAwLjAwNzEwNCwgMC4wMDcxMTQsIDAuMDA3MTI0LCAwLjAwNzEyNCIsIFwKLSAgICAgICAgICAiMC4wMDY4NiwgMC4wMDcwMzEsIDAuMDA3MDcxLCAwLjAwNzA4NiwgMC4wMDcwOTksIDAuMDA3MTA1LCAwLjAwNzExMiIsIFwKLSAgICAgICAgICAiMC4wMDY4NTMsIDAuMDA3MDIxLCAwLjAwNzA2MywgMC4wMDcwNzksIDAuMDA3MDg5LCAwLjAwNzEsIDAuMDA3MTA4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDk2NywgMC4wMDk5MTcsIDAuMDA5OTgyLCAwLjAxMDAwNCwgMC4wMTAwMjMsIDAuMDEwMDMzLCAwLjAxMDA0MiIsIFwKLSAgICAgICAgICAiMC4wMDk2NDcsIDAuMDA5ODk4LCAwLjAwOTk2MywgMC4wMDk5ODQsIDAuMDEwMDAzLCAwLjAxMDAxMywgMC4wMTAwMjEiLCBcCi0gICAgICAgICAgIjAuMDA5NjM0LCAwLjAwOTg4NCwgMC4wMDk5NDgsIDAuMDA5OTY5LCAwLjAwOTk4NywgMC4wMDk5OTcsIDAuMDEwMDA1IiwgXAotICAgICAgICAgICIwLjAwOTYxOSwgMC4wMDk4NjcsIDAuMDA5OTMzLCAwLjAwOTk1NSwgMC4wMDk5NzQsIDAuMDA5OTg0LCAwLjAwOTk5MyIsIFwKLSAgICAgICAgICAiMC4wMDk2MSwgMC4wMDk4NjEsIDAuMDA5OTI2LCAwLjAwOTk0OCwgMC4wMDk5NjgsIDAuMDA5OTc4LCAwLjAwOTk4NyIsIFwKLSAgICAgICAgICAiMC4wMDk2MDEsIDAuMDA5ODUsIDAuMDA5OTE2LCAwLjAwOTkzOSwgMC4wMDk5NTgsIDAuMDA5OTY5LCAwLjAwOTk3OCIsIFwKLSAgICAgICAgICAiMC4wMDk1ODksIDAuMDA5ODQyLCAwLjAwOTkxLCAwLjAwOTkzMiwgMC4wMDk5NTMsIDAuMDA5OTYzLCAwLjAwOTk3MyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2NDY2LCAwLjAwNjYzNywgMC4wMDY2NjEsIDAuMDA2NjY5LCAwLjAwNjY3NSwgMC4wMDY2NzksIDAuMDA2NjgxIiwgXAotICAgICAgICAgICIwLjAwNjQzNywgMC4wMDY2MTEsIDAuMDA2NjM2LCAwLjAwNjY0MywgMC4wMDY2NTEsIDAuMDA2NjUzLCAwLjAwNjY1NiIsIFwKLSAgICAgICAgICAiMC4wMDY0LCAwLjAwNjU3OCwgMC4wMDY2MDYsIDAuMDA2NjE1LCAwLjAwNjYyLCAwLjAwNjYyNiwgMC4wMDY2MjgiLCBcCi0gICAgICAgICAgIjAuMDA2MzczLCAwLjAwNjU1LCAwLjAwNjU4MywgMC4wMDY1OTIsIDAuMDA2NjAxLCAwLjAwNjYwNiwgMC4wMDY2MDkiLCBcCi0gICAgICAgICAgIjAuMDA2MzQsIDAuMDA2NTIzLCAwLjAwNjU2MSwgMC4wMDY1NzMsIDAuMDA2NTg1LCAwLjAwNjU4OSwgMC4wMDY1OTUiLCBcCi0gICAgICAgICAgIjAuMDA2MjgyLCAwLjAwNjQ5MSwgMC4wMDY1MzYsIDAuMDA2NTUxLCAwLjAwNjU2NSwgMC4wMDY1NzgsIDAuMDA2NTc5IiwgXAotICAgICAgICAgICIwLjAwNjI5MywgMC4wMDY0NzIsIDAuMDA2NTE5LCAwLjAwNjUzNSwgMC4wMDY1NTIsIDAuMDA2NTYsIDAuMDA2NTY3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDkxOSwgMC4wMDk0MzgsIDAuMDA5NTA3LCAwLjAwOTUzLCAwLjAwOTU1MSwgMC4wMDk1NjIsIDAuMDA5NTcyIiwgXAotICAgICAgICAgICIwLjAwOTE2OCwgMC4wMDk0MTcsIDAuMDA5NDg2LCAwLjAwOTUwOSwgMC4wMDk1MywgMC4wMDk1NDEsIDAuMDA5NTUiLCBcCi0gICAgICAgICAgIjAuMDA5MTU0LCAwLjAwOTQwNiwgMC4wMDk0NzIsIDAuMDA5NDk1LCAwLjAwOTUxNSwgMC4wMDk1MjUsIDAuMDA5NTM1IiwgXAotICAgICAgICAgICIwLjAwOTEzOCwgMC4wMDkzOTEsIDAuMDA5NDU5LCAwLjAwOTQ4MiwgMC4wMDk1MDMsIDAuMDA5NTEzLCAwLjAwOTUyMyIsIFwKLSAgICAgICAgICAiMC4wMDkxMzEsIDAuMDA5MzgzLCAwLjAwOTQ1MSwgMC4wMDk0NzQsIDAuMDA5NDk1LCAwLjAwOTUwNiwgMC4wMDk1MTUiLCBcCi0gICAgICAgICAgIjAuMDA5MTE2LCAwLjAwOTM2OSwgMC4wMDk0MzksIDAuMDA5NDYzLCAwLjAwOTQ4NSwgMC4wMDk0OTYsIDAuMDA5NTA2IiwgXAotICAgICAgICAgICIwLjAwOTEwOCwgMC4wMDkzNjEsIDAuMDA5NDMyLCAwLjAwOTQ1NiwgMC4wMDk0NzgsIDAuMDA5NDksIDAuMDA5NTAxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDU4NDksIDAuMDA2MDExLCAwLjAwNjAzMiwgMC4wMDYwMzcsIDAuMDA2MDQyLCAwLjAwNjA0NiwgMC4wMDYwNDciLCBcCi0gICAgICAgICAgIjAuMDA1ODM3LCAwLjAwNjAwNCwgMC4wMDYwMjUsIDAuMDA2MDMxLCAwLjAwNjAzNywgMC4wMDYwMzksIDAuMDA2MDQyIiwgXAotICAgICAgICAgICIwLjAwNTgsIDAuMDA1OTc1LCAwLjAwNiwgMC4wMDYwMSwgMC4wMDYwMTYsIDAuMDA2MDE3LCAwLjAwNjAyIiwgXAotICAgICAgICAgICIwLjAwNTc2OSwgMC4wMDU5NDUsIDAuMDA1OTc1LCAwLjAwNTk4NiwgMC4wMDU5OTMsIDAuMDA1OTk3LCAwLjAwNjAwMSIsIFwKLSAgICAgICAgICAiMC4wMDU3MjMsIDAuMDA1OTEzLCAwLjAwNTk1NCwgMC4wMDU5NjIsIDAuMDA1OTcyLCAwLjAwNTk3OCwgMC4wMDU5ODIiLCBcCi0gICAgICAgICAgIjAuMDA1Njk0LCAwLjAwNTg3OSwgMC4wMDU5MjEsIDAuMDA1OTM2LCAwLjAwNTk0OSwgMC4wMDU5NTUsIDAuMDA1OTU5IiwgXAotICAgICAgICAgICIwLjAwNTY2MiwgMC4wMDU4NTIsIDAuMDA1OTAxLCAwLjAwNTkxNywgMC4wMDU5MzIsIDAuMDA1OTM4LCAwLjAwNTk0NiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA4Njk1LCAwLjAwODk0OCwgMC4wMDkwMTYsIDAuMDA5MDM5LCAwLjAwOTA2MSwgMC4wMDkwNzIsIDAuMDA5MDgzIiwgXAotICAgICAgICAgICIwLjAwODY3MywgMC4wMDg5MjYsIDAuMDA4OTk0LCAwLjAwOTAxOCwgMC4wMDkwMzksIDAuMDA5MDUsIDAuMDA5MDYxIiwgXAotICAgICAgICAgICIwLjAwODY1OCwgMC4wMDg5MDksIDAuMDA4OTc4LCAwLjAwOTAwMSwgMC4wMDkwMjMsIDAuMDA5MDM0LCAwLjAwOTA0NCIsIFwKLSAgICAgICAgICAiMC4wMDg2MzYsIDAuMDA4ODg4LCAwLjAwODk2LCAwLjAwODk4NSwgMC4wMDkwMDgsIDAuMDA5MDIsIDAuMDA5MDMxIiwgXAotICAgICAgICAgICIwLjAwODYzLCAwLjAwODg4MywgMC4wMDg5NTQsIDAuMDA4OTc4LCAwLjAwOTAwMSwgMC4wMDkwMTMsIDAuMDA5MDIzIiwgXAotICAgICAgICAgICIwLjAwODYxMywgMC4wMDg4NjUsIDAuMDA4OTM5LCAwLjAwODk2NCwgMC4wMDg5ODgsIDAuMDA5MDAxLCAwLjAwOTAxMyIsIFwKLSAgICAgICAgICAiMC4wMDg2MDgsIDAuMDA4ODU3LCAwLjAwODkzMSwgMC4wMDg5NTcsIDAuMDA4OTgxLCAwLjAwODk5NCwgMC4wMDkwMDYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJEIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNTE0MiwgMC4wMDUyOTEsIDAuMDA1MzA4LCAwLjAwNTMwOSwgMC4wMDUzMTcsIDAuMDA1MzIsIDAuMDA1MzIyIiwgXAotICAgICAgICAgICIwLjAwNTEyNiwgMC4wMDUyODgsIDAuMDA1MzAzLCAwLjAwNTMxMiwgMC4wMDUzMDcsIDAuMDA1MzE0LCAwLjAwNTMxNSIsIFwKLSAgICAgICAgICAiMC4wMDUwNzksIDAuMDA1MjUxLCAwLjAwNTI3MywgMC4wMDUyOCwgMC4wMDUyODYsIDAuMDA1Mjg5LCAwLjAwNTI5MSIsIFwKLSAgICAgICAgICAiMC4wMDUwMjgsIDAuMDA1MjEyLCAwLjAwNTI0MSwgMC4wMDUyNDksIDAuMDA1MjU3LCAwLjAwNTI2MSwgMC4wMDUyNjQiLCBcCi0gICAgICAgICAgIjAuMDA0OTk0LCAwLjAwNTE4NiwgMC4wMDUyMiwgMC4wMDUyMywgMC4wMDUyMzksIDAuMDA1MjQyLCAwLjAwNTI0OSIsIFwKLSAgICAgICAgICAiMC4wMDQ5NSwgMC4wMDUxNDUsIDAuMDA1MTg4LCAwLjAwNTIwMiwgMC4wMDUyMTQsIDAuMDA1MjE4LCAwLjAwNTIyNiIsIFwKLSAgICAgICAgICAiMC4wMDQ5MzcsIDAuMDA1MTE4LCAwLjAwNTE2NywgMC4wMDUxODIsIDAuMDA1MiwgMC4wMDUyMDUsIDAuMDA1MjExIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDgxNjcsIDAuMDA4NDM1LCAwLjAwODUwNiwgMC4wMDg1MywgMC4wMDg1NTMsIDAuMDA4NTY0LCAwLjAwODU3NiIsIFwKLSAgICAgICAgICAiMC4wMDgxMzEsIDAuMDA4Mzk2LCAwLjAwODQ2OSwgMC4wMDg0OTMsIDAuMDA4NTE2LCAwLjAwODUyOCwgMC4wMDg1MzkiLCBcCi0gICAgICAgICAgIjAuMDA4MTA0LCAwLjAwODM3MSwgMC4wMDg0NDMsIDAuMDA4NDY3LCAwLjAwODQ5LCAwLjAwODUwMiwgMC4wMDg1MTMiLCBcCi0gICAgICAgICAgIjAuMDA4MDg1LCAwLjAwODM0OCwgMC4wMDg0MiwgMC4wMDg0NDUsIDAuMDA4NDY5LCAwLjAwODQ4MSwgMC4wMDg0OTMiLCBcCi0gICAgICAgICAgIjAuMDA4MDc1LCAwLjAwODMzMSwgMC4wMDg0MDQsIDAuMDA4NDMsIDAuMDA4NDU0LCAwLjAwODQ2NywgMC4wMDg0OCIsIFwKLSAgICAgICAgICAiMC4wMDgwNzEsIDAuMDA4MzEsIDAuMDA4Mzg1LCAwLjAwODQxMywgMC4wMDg0MzksIDAuMDA4NDU0LCAwLjAwODQ2NyIsIFwKLSAgICAgICAgICAiMC4wMDgwNzUsIDAuMDA4Mjk1LCAwLjAwODM3MSwgMC4wMDg0LCAwLjAwODQyOCwgMC4wMDg0NDQsIDAuMDA4NDU5Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IE9SNFg4ICoKLSAqIC0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChPUjRYOCkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjU1NzE2ODsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxODg3ODg7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxODcxODU7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxODg3ODg7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNTI0LCAwLjAwMDU0LCAwLjAwMDU1MSwgMC4wMDA1NTYsIDAuMDAwNTYsIDAuMDAwNTY1LCAwLjAwMDU2OCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTEyLCAwLjAwMTEyMSwgMC4wMDExMjEsIDAuMDAxMTIxLCAwLjAwMTEyMSwgMC4wMDExMjEsIDAuMDAxMTIxIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE4MDM0NjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE3ODg4NTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE4MDM0NjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA1MjEsIDAuMDAwNTM2LCAwLjAwMDU1LCAwLjAwMDU1OCwgMC4wMDA1NjQsIDAuMDAwNTY5LCAwLjAwMDU3MyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDc4LCAwLjAwMDc4LCAwLjAwMDc4MSwgMC4wMDA3OCwgMC4wMDA3ODEsIDAuMDAwNzgxLCAwLjAwMDc4MSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQykgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNjY0NDM7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNjUyMjg7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNjY0NDM7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNTMyLCAwLjAwMDU2MiwgMC4wMDA1NzUsIDAuMDAwNTgxLCAwLjAwMDU4NSwgMC4wMDA1ODcsIDAuMDAwNTg5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNjI3LCAwLjAwMDYyNywgMC4wMDA2MjcsIDAuMDAwNjI4LCAwLjAwMDYyNywgMC4wMDA2MjgsIDAuMDAwNjI4Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihEKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE1MjQwNTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE1MjM4ODsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE1MjQwNTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxODMsIDAuMDAwMTgzLCAwLjAwMDE4NCwgMC4wMDAxODQsIDAuMDAwMTg0LCAwLjAwMDE4MywgMC4wMDAxODMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA3MzIsIDAuMDAwNzMyLCAwLjAwMDczMiwgMC4wMDA3MzIsIDAuMDAwNzMyLCAwLjAwMDczMSwgMC4wMDA3MzEiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMS4wOTE2NDsKLSAgICBmdW5jdGlvbiA6ICIoKChBK0IpK0MpK0QpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4OTkwNiwgMC4xNTk3NTcsIDAuMjIzODUyLCAwLjI2OTM4MSwgMC4zNDIwNjksIDAuNDA1NTc2LCAwLjQ5NjIwMyIsIFwKLSAgICAgICAgICAiMC4xMDE0NzQsIDAuMTcxMjQxLCAwLjIzNTM3NiwgMC4yODA5MTksIDAuMzUzNjE2LCAwLjQxNzExMSwgMC41MDc3NjYiLCBcCi0gICAgICAgICAgIjAuMTE2NDM1LCAwLjE4NjIyNCwgMC4yNTAzMzMsIDAuMjk1ODg1LCAwLjM2ODU4LCAwLjQzMjA5OSwgMC41MjI3MjIiLCBcCi0gICAgICAgICAgIjAuMTMxMzQyLCAwLjIwMTA0OCwgMC4yNjUyMjQsIDAuMzEwNzQ3LCAwLjM4MzQ0NiwgMC40NDY5NCwgMC41Mzc2MzgiLCBcCi0gICAgICAgICAgIjAuMTQ2NDc5LCAwLjIxNjIwNSwgMC4yODAyOTcsIDAuMzI1ODUzLCAwLjM5ODU1MiwgMC40NjIwNzMsIDAuNTUyNjk2IiwgXAotICAgICAgICAgICIwLjE3MDg1MiwgMC4yNDA0MzgsIDAuMzA0NTE0LCAwLjM1MDAzMSwgMC40MjI3NjYsIDAuNDg2MjUxLCAwLjU3Njg3OSIsIFwKLSAgICAgICAgICAiMC4xOTE4MzYsIDAuMjYxMTMzLCAwLjMyNTE5MiwgMC4zNzA3MjEsIDAuNDQzMzk1LCAwLjUwNjkxNywgMC41OTc1NTkiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDQ0MzQsIDAuMTY2NjY3LCAwLjI5MzQzOSwgMC4zODQxNCwgMC41MzA4OTYsIDAuNjYwMTQ0LCAwLjg0NDMwOSIsIFwKLSAgICAgICAgICAiMC4wNDQ0OTksIDAuMTY2NDIyLCAwLjI5MzM0MSwgMC4zODQwMjEsIDAuNTMwMjQ2LCAwLjY1OTQ2NCwgMC44NDI1NzEiLCBcCi0gICAgICAgICAgIjAuMDQ0NDE5LCAwLjE2NjM4OCwgMC4yOTI4NjgsIDAuMzg0ODI1LCAwLjUzMDYyMiwgMC42NTk5NjgsIDAuODQzOTYzIiwgXAotICAgICAgICAgICIwLjA0NDIzOCwgMC4xNjYzMzIsIDAuMjkzMjY5LCAwLjM4Mzk2OSwgMC41MzA2MTQsIDAuNjU5NDI4LCAwLjg0MjgyNiIsIFwKLSAgICAgICAgICAiMC4wNDQwNDksIDAuMTY2NDUsIDAuMjkzMjQ4LCAwLjM4NDY4NSwgMC41MzA1NjUsIDAuNjU5OTE5LCAwLjg0NDA1IiwgXAotICAgICAgICAgICIwLjA0NDUzNiwgMC4xNjYzNzQsIDAuMjkzMjMsIDAuMzg0MTU1LCAwLjUzMDM1NCwgMC42NTk5ODUsIDAuODQ0MDQ3IiwgXAotICAgICAgICAgICIwLjA0NDg1NywgMC4xNjYzOTcsIDAuMjkyNzEyLCAwLjM4NDEwNywgMC41MzE0NzgsIDAuNjU5MzAxLCAwLjg0Mzk4OCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI1NDQ2MiwgMC4zNjI2ODcsIDAuNDQ0NzY3LCAwLjQ5OTkxOCwgMC41ODYyOTcsIDAuNjYxMjI0LCAwLjc2Nzg2OSIsIFwKLSAgICAgICAgICAiMC4yNjU2MTksIDAuMzc0MTY2LCAwLjQ1NjAwOCwgMC41MTExODMsIDAuNTk3NTk2LCAwLjY3MjQzNSwgMC43NzkxMTUiLCBcCi0gICAgICAgICAgIjAuMjc4MDg5LCAwLjM4NjYxOSwgMC40Njg0MzYsIDAuNTIzNTkxLCAwLjYxMDAzNCwgMC42ODQ4OCwgMC43OTE2MDUiLCBcCi0gICAgICAgICAgIjAuMjg5MzY4LCAwLjM5ODAwNSwgMC40ODAwMiwgMC41MzUxNjcsIDAuNjIxNTY2LCAwLjY5NjQ3NSwgMC44MDMxMTgiLCBcCi0gICAgICAgICAgIjAuMzAwNjMxLCAwLjQwOTE2LCAwLjQ5MTA5MSwgMC41NDYyNDEsIDAuNjMyNjUsIDAuNzA3NTU3LCAwLjgxNDE4NSIsIFwKLSAgICAgICAgICAiMC4zMTcyNDksIDAuNDI1NTc0LCAwLjUwNzU1MiwgMC41NjI3MzYsIDAuNjQ5MTQ5LCAwLjcyNDA3LCAwLjgzMDcxIiwgXAotICAgICAgICAgICIwLjMzMTA1MywgMC40Mzk2MTUsIDAuNTIxNjM3LCAwLjU3Njg1MiwgMC42NjMyMTMsIDAuNzM4MTQzLCAwLjg0NDc4MyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4NzU4MSwgMC4yMzI5MDYsIDAuMzcxNTYsIDAuNDcyMTYsIDAuNjM1Mzc4LCAwLjc4MDI2MSwgMC45ODk0MDEiLCBcCi0gICAgICAgICAgIjAuMDg3NjU0LCAwLjIzMjg5LCAwLjM3MTQ2MiwgMC40NzIwNTYsIDAuNjM1ODY3LCAwLjc3OTk2MywgMC45ODkxNiIsIFwKLSAgICAgICAgICAiMC4wODc2ODQsIDAuMjMyOTI5LCAwLjM3MTUzMiwgMC40NzIxMSwgMC42MzU5ODYsIDAuNzc5OTAxLCAwLjk4OTQxNCIsIFwKLSAgICAgICAgICAiMC4wODg2OTQsIDAuMjMyODI0LCAwLjM3MTU0MSwgMC40NzIxMiwgMC42MzU4MTEsIDAuNzgwMjA3LCAwLjk4OTQxNCIsIFwKLSAgICAgICAgICAiMC4wODc5MDIsIDAuMjMyODk3LCAwLjM3MTU4OSwgMC40NzIwOSwgMC42MzYxMzMsIDAuNzgwMTcsIDAuOTg5Mzk4IiwgXAotICAgICAgICAgICIwLjA4NzUzNywgMC4yMzMyNjMsIDAuMzcxODMsIDAuNDcyMjM5LCAwLjYzNTg0OSwgMC43ODAyMzQsIDAuOTg5NDM4IiwgXAotICAgICAgICAgICIwLjA4ODM1MiwgMC4yMzI3NjMsIDAuMzcxNCwgMC40NzIxMTYsIDAuNjM1MzQ4LCAwLjc4MDE5NywgMC45ODkzMDgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODY4NjYsIDAuMTU1NzkxLCAwLjIxOTYyMywgMC4yNjUwMjYsIDAuMzM3NjE4LCAwLjQwMTAxMSwgMC40OTE1MzQiLCBcCi0gICAgICAgICAgIjAuMDk4NDEyLCAwLjE2NzQ4NywgMC4yMzEyODgsIDAuMjc2Njg5LCAwLjM0OTI3MiwgMC40MTI2OTQsIDAuNTAzMjAyIiwgXAotICAgICAgICAgICIwLjExMzQ1NiwgMC4xODI0MzQsIDAuMjQ2MjcxLCAwLjI5MTY3MywgMC4zNjQyNzksIDAuNDI3NjYyLCAwLjUxODE5IiwgXAotICAgICAgICAgICIwLjEyODU3MywgMC4xOTc1MTcsIDAuMjYxMzUxLCAwLjMwNjc2NCwgMC4zNzkzNzIsIDAuNDQyNzY5LCAwLjUzMzMwNCIsIFwKLSAgICAgICAgICAiMC4xNDM1OTMsIDAuMjEyNTc1LCAwLjI3NjQ3NSwgMC4zMjE4ODIsIDAuMzk0NDc2LCAwLjQ1NzkwMSwgMC41NDg0MTMiLCBcCi0gICAgICAgICAgIjAuMTY3NDgzLCAwLjIzNjMzNiwgMC4zMDAxODYsIDAuMzQ1NjEsIDAuNDE4MjMxLCAwLjQ4MTYyNywgMC41NzIxNjMiLCBcCi0gICAgICAgICAgIjAuMTg4MTAzLCAwLjI1NzAxMywgMC4zMjA4MTQsIDAuMzY2MjI0LCAwLjQzODgwOCwgMC41MDIyMzcsIDAuNTkyNzc0Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQzMzYzLCAwLjE2NTI1NiwgMC4yOTIzNDIsIDAuMzgzNzM1LCAwLjUzMDYxNiwgMC42NTkyOTcsIDAuODQzMTU5IiwgXAotICAgICAgICAgICIwLjA0MzMwOSwgMC4xNjU0MDQsIDAuMjkyMjU2LCAwLjM4Mjg3MiwgMC41MzA2MDgsIDAuNjU5MjA1LCAwLjg0MzU0NCIsIFwKLSAgICAgICAgICAiMC4wNDMyNDYsIDAuMTY1MjE5LCAwLjI5MjI4NywgMC4zODM1NDUsIDAuNTI5NDQ0LCAwLjY1OTIyMSwgMC44NDM0ODEiLCBcCi0gICAgICAgICAgIjAuMDQzMjEzLCAwLjE2NTIzNiwgMC4yOTE2NzYsIDAuMzgzMDI1LCAwLjUyOTUyOCwgMC42NTkxMTQsIDAuODQzNDA3IiwgXAotICAgICAgICAgICIwLjA0MzE5MSwgMC4xNjUxNSwgMC4yOTIxOSwgMC4zODMxMjksIDAuNTMwNTk3LCAwLjY1OTIxMiwgMC44NDM1IiwgXAotICAgICAgICAgICIwLjA0MzY3NiwgMC4xNjUxODcsIDAuMjkxNjgzLCAwLjM4MzUwNiwgMC41MjkzNjIsIDAuNjU5MTQzLCAwLjg0MzQ5MiIsIFwKLSAgICAgICAgICAiMC4wNDQ1ODksIDAuMTY1NjA5LCAwLjI5MjIzMywgMC4zODMxMjgsIDAuNTI5NTA3LCAwLjY1OTE1NCwgMC44NDM0NzUiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yNDg0MzUsIDAuMzU2NzMyLCAwLjQzODcwOSwgMC40OTM4NzYsIDAuNTgwMjYzLCAwLjY1NTE5MywgMC43NjE4MzciLCBcCi0gICAgICAgICAgIjAuMjU4NTksIDAuMzY2ODk5LCAwLjQ0ODU5NCwgMC41MDQwMjgsIDAuNTkwNDI2LCAwLjY2NTMzOSwgMC43NzE5ODMiLCBcCi0gICAgICAgICAgIjAuMjcwNzMzLCAwLjM3OTI2NCwgMC40NjEwNjQsIDAuNTE2MjM3LCAwLjYwMjY1NywgMC42Nzc1MDUsIDAuNzg0MTc4IiwgXAotICAgICAgICAgICIwLjI4MjI0MywgMC4zOTA3NzIsIDAuNDcyNjYzLCAwLjUyNzgxNSwgMC42MTQyMjcsIDAuNjg5MTM1LCAwLjc5NTc2OSIsIFwKLSAgICAgICAgICAiMC4yOTMyNzksIDAuNDAxNDcsIDAuNDgzNDQyLCAwLjUzODYzMywgMC42MjUwNTMsIDAuNjk5OTA4LCAwLjgwNjU4NCIsIFwKLSAgICAgICAgICAiMC4zMTAyMjIsIDAuNDE4ODQsIDAuNTAwNzI4LCAwLjU1NTg5NywgMC42NDIyOTMsIDAuNzE3MjA1LCAwLjgyMzg0NCIsIFwKLSAgICAgICAgICAiMC4zMjQ3OTksIDAuNDMzMzcxLCAwLjUxNTM4NSwgMC41NzA1NjIsIDAuNjU2OTk4LCAwLjczMTgzLCAwLjgzODQ1NyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4NzYwMywgMC4yMzI4NTcsIDAuMzcxNDY2LCAwLjQ3MjEyNywgMC42MzU3NTcsIDAuNzgwMjE1LCAwLjk4OTM2NyIsIFwKLSAgICAgICAgICAiMC4wODc1ODgsIDAuMjMyODk2LCAwLjM3MTI0MSwgMC40NzIxMzEsIDAuNjM1NzkzLCAwLjc4MDI0OCwgMC45ODk0NDciLCBcCi0gICAgICAgICAgIjAuMDg3NzI5LCAwLjIzMzA1OCwgMC4zNzE2MDEsIDAuNDcyMTc2LCAwLjYzNTk1OSwgMC43Nzk5NiwgMC45ODkxNjIiLCBcCi0gICAgICAgICAgIjAuMDg3NjU4LCAwLjIzMjksIDAuMzcxNjk2LCAwLjQ3MjE0MSwgMC42MzU4MTEsIDAuNzgwMTc0LCAwLjk4OTQwNyIsIFwKLSAgICAgICAgICAiMC4wODc2OCwgMC4yMzM0NjMsIDAuMzcxNzQ4LCAwLjQ3MjI4NiwgMC42MzU5OTUsIDAuNzc5OTkyLCAwLjk4OTI1IiwgXAotICAgICAgICAgICIwLjA4Nzc1MiwgMC4yMzMwMjgsIDAuMzcxMzQ1LCAwLjQ3MjAyNCwgMC42MzU3MzQsIDAuNzgwMTYzLCAwLjk4OTM3MiIsIFwKLSAgICAgICAgICAiMC4wODc3NiwgMC4yMzI1MzYsIDAuMzcxNDY5LCAwLjQ3MjAzOSwgMC42MzU5MDksIDAuNzgwMDg1LCAwLjk4OTE5MyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4MjE5NiwgMC4xNTA2MzgsIDAuMjE0MjI3LCAwLjI1OTUzNywgMC4zMzIwMTcsIDAuMzk1Mzc5LCAwLjQ4NTgyMiIsIFwKLSAgICAgICAgICAiMC4wOTQxMjUsIDAuMTYyNTAyLCAwLjIyNjA4NiwgMC4yNzE0MDIsIDAuMzQzODgxLCAwLjQwNzIxMiwgMC40OTc2NzciLCBcCi0gICAgICAgICAgIjAuMTA5MDkxLCAwLjE3NzQ3NiwgMC4yNDExMzcsIDAuMjg2NDU5LCAwLjM1ODk0NSwgMC40MjIyNzUsIDAuNTEyNzM5IiwgXAotICAgICAgICAgICIwLjEyNDI4NiwgMC4xOTI2NjQsIDAuMjU2MzEzLCAwLjMwMTYzNiwgMC4zNzQxMjgsIDAuNDM3NDYyLCAwLjUyNzkyMiIsIFwKLSAgICAgICAgICAiMC4xMzkyMDksIDAuMjA3NjE4LCAwLjI3MTI0NiwgMC4zMTY1NzksIDAuMzg5MDQxLCAwLjQ1MjQwNiwgMC41NDI5MTEiLCBcCi0gICAgICAgICAgIjAuMTYyODQxLCAwLjIzMTIxMiwgMC4yOTQ5LCAwLjM0MDIzMiwgMC40MTI3NDIsIDAuNDc2MDcyLCAwLjU2NjUzOCIsIFwKLSAgICAgICAgICAiMC4xODMyMTMsIDAuMjUxODQzLCAwLjMxNTQ2NCwgMC4zNjA3ODIsIDAuNDMzMjc1LCAwLjQ5NjYzNiwgMC41ODcxMDIiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDI0MzgsIDAuMTY0NTQ1LCAwLjI5MTQ2OCwgMC4zODIxMjcsIDAuNTMwMDc5LCAwLjY1ODg1MywgMC44NDI2OTYiLCBcCi0gICAgICAgICAgIjAuMDQyNTEyLCAwLjE2NDQ5OCwgMC4yOTE0MTYsIDAuMzgyMDU0LCAwLjUzMDA3NSwgMC42NTg3NzQsIDAuODQyNzg2IiwgXAotICAgICAgICAgICIwLjA0MjQ0MiwgMC4xNjQ0NzYsIDAuMjkwOTQyLCAwLjM4MjM2MiwgMC41MzAwNDQsIDAuNjU4NzgyLCAwLjg0MjY5OSIsIFwKLSAgICAgICAgICAiMC4wNDI0MDEsIDAuMTY0MjY5LCAwLjI5MDY2NCwgMC4zODIwNTksIDAuNTMwMDM1LCAwLjY1ODc4MiwgMC44NDI3OTQiLCBcCi0gICAgICAgICAgIjAuMDQyNTcxLCAwLjE2NDUyOSwgMC4yOTE0NTcsIDAuMzgyODQzLCAwLjUyOTAzNywgMC42NTg3MjQsIDAuODQxMTU4IiwgXAotICAgICAgICAgICIwLjA0MzUzMSwgMC4xNjQ1ODYsIDAuMjkxMzMsIDAuMzgyMzM4LCAwLjUyODU5MiwgMC42NTg3NjgsIDAuODQyNzc4IiwgXAotICAgICAgICAgICIwLjA0NDU0LCAwLjE2NDgwNiwgMC4yOTEyMDksIDAuMzgyNDA5LCAwLjUyODg1MSwgMC42NTg3OTUsIDAuODQyODQ5Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjM0MDI5LCAwLjM0MjU0OCwgMC40MjM5NTksIDAuNDc5MjM2LCAwLjU2NTY4OCwgMC42NDA1NzMsIDAuNzQ3MTkxIiwgXAotICAgICAgICAgICIwLjI0MzI3LCAwLjM1MTk1MiwgMC40MzQwMjksIDAuNDg5MTQyLCAwLjU3NTU1MywgMC42NTA0NjcsIDAuNzU3MTExIiwgXAotICAgICAgICAgICIwLjI1NTM4NywgMC4zNjM4NzMsIDAuNDQ1NjcsIDAuNTAwODQyLCAwLjU4NzI2NiwgMC42NjIxMTQsIDAuNzY4Nzg1IiwgXAotICAgICAgICAgICIwLjI2NjcyMiwgMC4zNzUyODEsIDAuNDU3MjkzLCAwLjUxMjQ3MSwgMC41OTg4ODcsIDAuNjczOCwgMC43ODA0MzYiLCBcCi0gICAgICAgICAgIjAuMjc4MDc0LCAwLjM4NjYzLCAwLjQ2Nzk3NywgMC41MjMzMSwgMC42MDk3MTEsIDAuNjg0NjI1LCAwLjc5MTI2MSIsIFwKLSAgICAgICAgICAiMC4yOTYxMjgsIDAuNDA0NjU5LCAwLjQ4NjM5MywgMC41NDE1NzgsIDAuNjI3OTYsIDAuNzAyOTA3LCAwLjgwOTU2MSIsIFwKLSAgICAgICAgICAiMC4zMTE5OSwgMC40MjAzOTMsIDAuNTAyMzc4LCAwLjU1NzU5MiwgMC42NDQwMjMsIDAuNzE4OTE2LCAwLjgyNTU1MiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4Nzc4NiwgMC4yMzI2NjUsIDAuMzcyMjE4LCAwLjQ3Mjc1MSwgMC42MzY0NTIsIDAuNzgwMDAxLCAwLjk4OTQ4OCIsIFwKLSAgICAgICAgICAiMC4wODgzMTksIDAuMjMyNzk2LCAwLjM3MTQ3NiwgMC40NzIxMSwgMC42MzU4MDksIDAuNzgwMjMxLCAwLjk4OTQzNyIsIFwKLSAgICAgICAgICAiMC4wODc3MTYsIDAuMjMyNjcxLCAwLjM3MTY0MiwgMC40NzIyMSwgMC42MzYwMTIsIDAuNzc5OTIyLCAwLjk4OTIwNSIsIFwKLSAgICAgICAgICAiMC4wODgzMzEsIDAuMjMyODAyLCAwLjM3MTQ0NSwgMC40NzIxMTEsIDAuNjM1ODExLCAwLjc4MDE4NCwgMC45ODk0MDUiLCBcCi0gICAgICAgICAgIjAuMDg3NDY4LCAwLjIzMzA5OSwgMC4zNzIwODksIDAuNDcyNjQsIDAuNjM2MjksIDAuNzgwMDc2LCAwLjk4OTMxNyIsIFwKLSAgICAgICAgICAiMC4wODc1OTMsIDAuMjMyNzc5LCAwLjM3MTY4OCwgMC40NzIyNTgsIDAuNjM1NDQzLCAwLjc4MDIzNiwgMC45ODkyMjUiLCBcCi0gICAgICAgICAgIjAuMDg3Nzc5LCAwLjIzMjY1NiwgMC4zNzEzMTgsIDAuNDcyMDE2LCAwLjYzNjEsIDAuNzgwMTQ2LCAwLjk4OTM2NyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJEIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3NzMwOSwgMC4xNDUyOTUsIDAuMjA4ODEzLCAwLjI1NDA2LCAwLjMyNjQ1OSwgMC4zODk3OCwgMC40ODAzMjEiLCBcCi0gICAgICAgICAgIjAuMDg5MDQyLCAwLjE1NzE2LCAwLjIyMDY4MywgMC4yNjU5MjYsIDAuMzM4MzI5LCAwLjQwMTY0MiwgMC40OTIxNzgiLCBcCi0gICAgICAgICAgIjAuMTA0MTE1LCAwLjE3MjE5NywgMC4yMzU3NDcsIDAuMjgwOTk5LCAwLjM1MzQwNSwgMC40MTY2ODksIDAuNTA3MjUiLCBcCi0gICAgICAgICAgIjAuMTE5MDA5LCAwLjE4NzIxNywgMC4yNTA3NDIsIDAuMjk2MDEsIDAuMzY4NDIzLCAwLjQzMTcxNSwgMC41MjIzMTIiLCBcCi0gICAgICAgICAgIjAuMTM0MTU3LCAwLjIwMjExNSwgMC4yNjU2NzcsIDAuMzEwOTUxLCAwLjM4MzM3MywgMC40NDY2NTcsIDAuNTM3MjI2IiwgXAotICAgICAgICAgICIwLjE1Nzc2OCwgMC4yMjU5MDcsIDAuMjg5Mzg3LCAwLjMzNDY1LCAwLjQwNzA4NSwgMC40NzAzNjgsIDAuNTYwOTY2IiwgXAotICAgICAgICAgICIwLjE3NzIzOCwgMC4yNDU4NTEsIDAuMzA5MzMxLCAwLjM1NDU4NCwgMC40MjcwMDQsIDAuNDkwMzE5LCAwLjU4MDgzOCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0MjA4LCAwLjE2Mzg2NiwgMC4yOTA5ODgsIDAuMzgxNjA5LCAwLjUzMDI0MywgMC42NTkzNjUsIDAuODQwNjU2IiwgXAotICAgICAgICAgICIwLjA0MjEyNiwgMC4xNjM4OSwgMC4yOTA5NjksIDAuMzgxNTUxLCAwLjUzMDIxMywgMC42NTg0NzEsIDAuODQwNjkiLCBcCi0gICAgICAgICAgIjAuMDQyMDg3LCAwLjE2Mzk3MiwgMC4yOTAzMDksIDAuMzgxNzksIDAuNTI4NjM5LCAwLjY1ODMyNiwgMC44NDA3MTkiLCBcCi0gICAgICAgICAgIjAuMDQyMDIsIDAuMTY0MDg4LCAwLjI5MDk5MiwgMC4zODE4NTcsIDAuNTMwMzU2LCAwLjY1ODM2MSwgMC44NDA1ODIiLCBcCi0gICAgICAgICAgIjAuMDQyMzU2LCAwLjE2NDAxMywgMC4yOTA4NzQsIDAuMzgxODg5LCAwLjUzMDQzMiwgMC42NTgzMywgMC44NDA2ODQiLCBcCi0gICAgICAgICAgIjAuMDQzMTY2LCAwLjE2NDE5LCAwLjI5MDQ1MSwgMC4zODE4NDEsIDAuNTI4MTI5LCAwLjY1ODM1OCwgMC44NDA1NzkiLCBcCi0gICAgICAgICAgIjAuMDQ1NjYyLCAwLjE2NDczOCwgMC4yOTA4MzQsIDAuMzgxOTU1LCAwLjUyODM1MiwgMC42NTg0MzMsIDAuODQxMzQ4Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjA5Mzk5LCAwLjMxNzk3MiwgMC4zOTk5NzUsIDAuNDU1MTgyLCAwLjU0MTYyMiwgMC42MTY1MDgsIDAuNzIzMTU5IiwgXAotICAgICAgICAgICIwLjIxODExOSwgMC4zMjY3MjcsIDAuNDA4NjkxLCAwLjQ2MzgzOSwgMC41NTAyOCwgMC42MjUxMzQsIDAuNzMxNzk0IiwgXAotICAgICAgICAgICIwLjIyOTYyNywgMC4zMzgzMTcsIDAuNDIwMjcxLCAwLjQ3NTM3OSwgMC41NjE4NiwgMC42MzY3MTMsIDAuNzQzMzczIiwgXAotICAgICAgICAgICIwLjI0MDU5NiwgMC4zNDkwMzMsIDAuNDMwOTQ4LCAwLjQ4NjE2MywgMC41NzI1OTQsIDAuNjQ3NTA5LCAwLjc1NDE1IiwgXAotICAgICAgICAgICIwLjI1MjEwMywgMC4zNjA1MDQsIDAuNDQyNTM2LCAwLjQ5NzY5OSwgMC41ODQxLCAwLjY1OTAzNCwgMC43NjU2ODUiLCBcCi0gICAgICAgICAgIjAuMjcwNzY3LCAwLjM3OTI4MiwgMC40NjEyNCwgMC41MTY0MDQsIDAuNjAyODYxLCAwLjY3NzcwNSwgMC43ODQzOTciLCBcCi0gICAgICAgICAgIjAuMjg3OCwgMC4zOTYyNDEsIDAuNDc4MjU1LCAwLjUzMzM5OCwgMC42MTk4NDksIDAuNjk0NzAxLCAwLjgwMTM5MyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4ODgxNCwgMC4yMzI3LCAwLjM3MTM1NCwgMC40NzIwMzMsIDAuNjM1OTYyLCAwLjc3OTY4NiwgMC45ODkzNzgiLCBcCi0gICAgICAgICAgIjAuMDg3ODAzLCAwLjIzMjc5NiwgMC4zNzE0MTcsIDAuNDcxODYzLCAwLjYzNTgzMiwgMC43Nzk5MTEsIDAuOTg5MzUxIiwgXAotICAgICAgICAgICIwLjA4NzcwOSwgMC4yMzI3NSwgMC4zNzEzODksIDAuNDcxOTM5LCAwLjYzNTk1NywgMC43Nzk5ODIsIDAuOTg5MzU1IiwgXAotICAgICAgICAgICIwLjA4Nzg2NSwgMC4yMzMxMiwgMC4zNzE0NzgsIDAuNDcyMTM4LCAwLjYzNTgsIDAuNzgwMTg2LCAwLjk4OTQxIiwgXAotICAgICAgICAgICIwLjA4NzgxNywgMC4yMzI3NiwgMC4zNzE0NTksIDAuNDcyMTAxLCAwLjYzNTczOSwgMC43ODAxNTYsIDAuOTg5Mzc4IiwgXAotICAgICAgICAgICIwLjA4NzQxMywgMC4yMzIyOTQsIDAuMzcxMzYxLCAwLjQ3MTk2NiwgMC42MzU5MDEsIDAuNzgwMDE0LCAwLjk4OTI2OSIsIFwKLSAgICAgICAgICAiMC4wODc0MzYsIDAuMjMyMjE1LCAwLjM3MTIyNywgMC40NzE5NDcsIDAuNjM1OTE3LCAwLjc3OTkyNiwgMC45ODkyNTYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwODYyNCwgMC4wMDg4NjQsIDAuMDA4OTA2LCAwLjAwODkxOSwgMC4wMDg5MzIsIDAuMDA4OTM4LCAwLjAwODk0NCIsIFwKLSAgICAgICAgICAiMC4wMDg1NzgsIDAuMDA4ODE2LCAwLjAwODg2LCAwLjAwODg3MywgMC4wMDg4ODYsIDAuMDA4ODkzLCAwLjAwODg5OSIsIFwKLSAgICAgICAgICAiMC4wMDg1NTEsIDAuMDA4Nzg0LCAwLjAwODgzMSwgMC4wMDg4NDcsIDAuMDA4ODYxLCAwLjAwODg2OSwgMC4wMDg4NzQiLCBcCi0gICAgICAgICAgIjAuMDA4NTI4LCAwLjAwODc1NywgMC4wMDg4MDgsIDAuMDA4ODI2LCAwLjAwODg0MywgMC4wMDg4NTEsIDAuMDA4ODU5IiwgXAotICAgICAgICAgICIwLjAwODUwOSwgMC4wMDg3MzEsIDAuMDA4Nzg4LCAwLjAwODgwOCwgMC4wMDg4MjUsIDAuMDA4ODM1LCAwLjAwODg0NiIsIFwKLSAgICAgICAgICAiMC4wMDg0NjksIDAuMDA4Njk2LCAwLjAwODc2MSwgMC4wMDg3ODQsIDAuMDA4ODA2LCAwLjAwODgxOCwgMC4wMDg4MzEiLCBcCi0gICAgICAgICAgIjAuMDA4NDYzLCAwLjAwODY3NSwgMC4wMDg3NDMsIDAuMDA4NzY4LCAwLjAwODc5MiwgMC4wMDg4MDUsIDAuMDA4ODE5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTE0MzcsIDAuMDExNzE3LCAwLjAxMTgyNSwgMC4wMTE4NjUsIDAuMDExOTAyLCAwLjAxMTkyMywgMC4wMTE5NDIiLCBcCi0gICAgICAgICAgIjAuMDExNDI5LCAwLjAxMTcwMiwgMC4wMTE4MDgsIDAuMDExODQ4LCAwLjAxMTg4NSwgMC4wMTE5MDYsIDAuMDExOTI0IiwgXAotICAgICAgICAgICIwLjAxMTQxNSwgMC4wMTE2ODYsIDAuMDExNzkyLCAwLjAxMTgzMywgMC4wMTE4NywgMC4wMTE4OSwgMC4wMTE5MDkiLCBcCi0gICAgICAgICAgIjAuMDExNDA0LCAwLjAxMTY3MiwgMC4wMTE3OCwgMC4wMTE4MiwgMC4wMTE4NTgsIDAuMDExODc4LCAwLjAxMTg5NyIsIFwKLSAgICAgICAgICAiMC4wMTEzOTQsIDAuMDExNjY0LCAwLjAxMTc3MiwgMC4wMTE4MTIsIDAuMDExODUsIDAuMDExODcxLCAwLjAxMTg5IiwgXAotICAgICAgICAgICIwLjAxMTM3LCAwLjAxMTY0MywgMC4wMTE3NTUsIDAuMDExNzk3LCAwLjAxMTgzNywgMC4wMTE4NTgsIDAuMDExODc4IiwgXAotICAgICAgICAgICIwLjAxMTM1OSwgMC4wMTE2MzcsIDAuMDExNzQ4LCAwLjAxMTc5LCAwLjAxMTgzLCAwLjAxMTg1MiwgMC4wMTE4NzIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwODA2MywgMC4wMDgzMTQsIDAuMDA4MzU4LCAwLjAwODM3MiwgMC4wMDgzODUsIDAuMDA4MzkyLCAwLjAwODM5OCIsIFwKLSAgICAgICAgICAiMC4wMDgwMzYsIDAuMDA4Mjg5LCAwLjAwODMzMiwgMC4wMDgzNDcsIDAuMDA4MzYsIDAuMDA4MzY2LCAwLjAwODM3MyIsIFwKLSAgICAgICAgICAiMC4wMDgwMDQsIDAuMDA4MjU0LCAwLjAwODMwMywgMC4wMDgzMTksIDAuMDA4MzM0LCAwLjAwODM0LCAwLjAwODM0NyIsIFwKLSAgICAgICAgICAiMC4wMDc5OCwgMC4wMDgyMjMsIDAuMDA4Mjc3LCAwLjAwODI5NSwgMC4wMDgzMTQsIDAuMDA4MzE1LCAwLjAwODMyNyIsIFwKLSAgICAgICAgICAiMC4wMDc5NDUsIDAuMDA4MTksIDAuMDA4MjQ5LCAwLjAwODI3MSwgMC4wMDgyODksIDAuMDA4MzAxLCAwLjAwODMxIiwgXAotICAgICAgICAgICIwLjAwNzkwNSwgMC4wMDgxNSwgMC4wMDgyMTgsIDAuMDA4MjQyLCAwLjAwODI2NiwgMC4wMDgyNzgsIDAuMDA4MjkiLCBcCi0gICAgICAgICAgIjAuMDA3ODk2LCAwLjAwODEyNCwgMC4wMDgxOTYsIDAuMDA4MjIzLCAwLjAwODI0OSwgMC4wMDgyNjMsIDAuMDA4Mjc3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTA5NTksIDAuMDExMjM4LCAwLjAxMTM0NywgMC4wMTEzODgsIDAuMDExNDI3LCAwLjAxMTQ0OSwgMC4wMTE0NjkiLCBcCi0gICAgICAgICAgIjAuMDEwOTM4LCAwLjAxMTIxOCwgMC4wMTEzMjgsIDAuMDExMzY5LCAwLjAxMTQwOSwgMC4wMTE0MywgMC4wMTE0NSIsIFwKLSAgICAgICAgICAiMC4wMTA5MjQsIDAuMDExMjAyLCAwLjAxMTMxMSwgMC4wMTEzNTMsIDAuMDExMzkyLCAwLjAxMTQxNCwgMC4wMTE0MzQiLCBcCi0gICAgICAgICAgIjAuMDEwOTIxLCAwLjAxMTE5MiwgMC4wMTEzMDEsIDAuMDExMzQyLCAwLjAxMTM4MiwgMC4wMTE0MDQsIDAuMDExNDI0IiwgXAotICAgICAgICAgICIwLjAxMDg5NiwgMC4wMTExNzIsIDAuMDExMjg1LCAwLjAxMTMyOCwgMC4wMTEzNjksIDAuMDExMzkxLCAwLjAxMTQxMiIsIFwKLSAgICAgICAgICAiMC4wMTA4ODYsIDAuMDExMTYzLCAwLjAxMTI3NiwgMC4wMTEzMTgsIDAuMDExMzYsIDAuMDExMzgyLCAwLjAxMTQwMyIsIFwKLSAgICAgICAgICAiMC4wMTA4NzUsIDAuMDExMTUzLCAwLjAxMTI2NSwgMC4wMTEzMDksIDAuMDExMzUxLCAwLjAxMTM3NCwgMC4wMTEzOTYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNzQ0NiwgMC4wMDc2OTEsIDAuMDA3NzMsIDAuMDA3NzQzLCAwLjAwNzc1NywgMC4wMDc3NiwgMC4wMDc3NjUiLCBcCi0gICAgICAgICAgIjAuMDA3NDM5LCAwLjAwNzY4NywgMC4wMDc3MjcsIDAuMDA3NzQsIDAuMDA3NzUsIDAuMDA3NzU4LCAwLjAwNzc2IiwgXAotICAgICAgICAgICIwLjAwNzQwOCwgMC4wMDc2NTcsIDAuMDA3NzAzLCAwLjAwNzcxNywgMC4wMDc3MzIsIDAuMDA3NzM3LCAwLjAwNzc0MiIsIFwKLSAgICAgICAgICAiMC4wMDczOCwgMC4wMDc2MjMsIDAuMDA3Njc1LCAwLjAwNzY5MiwgMC4wMDc3MDcsIDAuMDA3NzE1LCAwLjAwNzcyMSIsIFwKLSAgICAgICAgICAiMC4wMDczMzcsIDAuMDA3NTg1LCAwLjAwNzY0NSwgMC4wMDc2NjcsIDAuMDA3Njg3LCAwLjAwNzY5NiwgMC4wMDc3MDMiLCBcCi0gICAgICAgICAgIjAuMDA3Mjk4LCAwLjAwNzUzOSwgMC4wMDc2MDcsIDAuMDA3NjMxLCAwLjAwNzY1NSwgMC4wMDc2NjYsIDAuMDA3Njc4IiwgXAotICAgICAgICAgICIwLjAwNzI4NSwgMC4wMDc1MTMsIDAuMDA3NTg0LCAwLjAwNzYxLCAwLjAwNzYzNiwgMC4wMDc2NDgsIDAuMDA3NjYyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTA0NTIsIDAuMDEwNzM5LCAwLjAxMDgzNywgMC4wMTA4ODIsIDAuMDEwOTI1LCAwLjAxMDk0OSwgMC4wMTA5NzEiLCBcCi0gICAgICAgICAgIjAuMDEwNDU2LCAwLjAxMDcyMiwgMC4wMTA4MzIsIDAuMDEwODc0LCAwLjAxMDkxNSwgMC4wMTA5MzcsIDAuMDEwOTU4IiwgXAotICAgICAgICAgICIwLjAxMDQyOCwgMC4wMTA3MDcsIDAuMDEwODE2LCAwLjAxMDg1OCwgMC4wMTA4OTksIDAuMDEwOTIyLCAwLjAxMDk0MyIsIFwKLSAgICAgICAgICAiMC4wMTA0MzQsIDAuMDEwNjk2LCAwLjAxMDgwNiwgMC4wMTA4NDgsIDAuMDEwODg5LCAwLjAxMDkxMSwgMC4wMTA5MzIiLCBcCi0gICAgICAgICAgIjAuMDEwMzk3LCAwLjAxMDY3NywgMC4wMTA3OCwgMC4wMTA4MjUsIDAuMDEwODY5LCAwLjAxMDg5MywgMC4wMTA5MTYiLCBcCi0gICAgICAgICAgIjAuMDEwMzg3LCAwLjAxMDY2MSwgMC4wMTA3NzEsIDAuMDEwODE2LCAwLjAxMDg2LCAwLjAxMDg4NCwgMC4wMTA5MDciLCBcCi0gICAgICAgICAgIjAuMDEwMzc0LCAwLjAxMDY0NywgMC4wMTA3NjEsIDAuMDEwODA2LCAwLjAxMDg1MSwgMC4wMTA4NzYsIDAuMDEwODk5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDY3NSwgMC4wMDY5ODIsIDAuMDA3MDIsIDAuMDA3MDI3LCAwLjAwNzAzNiwgMC4wMDcwMzQsIDAuMDA3MDQ1IiwgXAotICAgICAgICAgICIwLjAwNjc0LCAwLjAwNjk4MiwgMC4wMDcwMTgsIDAuMDA3MDI3LCAwLjAwNzAzOCwgMC4wMDcwNDIsIDAuMDA3MDQ4IiwgXAotICAgICAgICAgICIwLjAwNjcwMSwgMC4wMDY5NDcsIDAuMDA2OTkyLCAwLjAwNzAwMywgMC4wMDcwMTQsIDAuMDA3MDE3LCAwLjAwNzAyNSIsIFwKLSAgICAgICAgICAiMC4wMDY2NTQsIDAuMDA2OTAxLCAwLjAwNjk1LCAwLjAwNjk3NCwgMC4wMDY5ODEsIDAuMDA2OTkxLCAwLjAwNjk5NyIsIFwKLSAgICAgICAgICAiMC4wMDY2MTIsIDAuMDA2ODYsIDAuMDA2OTE3LCAwLjAwNjkzOSwgMC4wMDY5NiwgMC4wMDY5NjYsIDAuMDA2OTc5IiwgXAotICAgICAgICAgICIwLjAwNjU4MSwgMC4wMDY4MiwgMC4wMDY4ODcsIDAuMDA2OTEsIDAuMDA2OTI5LCAwLjAwNjk0MywgMC4wMDY5NTMiLCBcCi0gICAgICAgICAgIjAuMDA2NTQsIDAuMDA2Nzg1LCAwLjAwNjg1NiwgMC4wMDY4ODgsIDAuMDA2OTExLCAwLjAwNjkyMywgMC4wMDY5MzgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwOTk0MSwgMC4wMTAyMjUsIDAuMDEwMzM5LCAwLjAxMDM4MiwgMC4wMTA0MjQsIDAuMDEwNDQ4LCAwLjAxMDQ2OSIsIFwKLSAgICAgICAgICAiMC4wMDk5MDcsIDAuMDEwMTk1LCAwLjAxMDMwOSwgMC4wMTAzNTIsIDAuMDEwMzk1LCAwLjAxMDQxNywgMC4wMTA0MzkiLCBcCi0gICAgICAgICAgIjAuMDA5ODc4LCAwLjAxMDE2OCwgMC4wMTAyODMsIDAuMDEwMzI2LCAwLjAxMDM2OSwgMC4wMTAzOTIsIDAuMDEwNDE0IiwgXAotICAgICAgICAgICIwLjAwOTg1NiwgMC4wMTAxNDEsIDAuMDEwMjU3LCAwLjAxMDMwMSwgMC4wMTAzNDUsIDAuMDEwMzY5LCAwLjAxMDM5MiIsIFwKLSAgICAgICAgICAiMC4wMDk4NDMsIDAuMDEwMTI1LCAwLjAxMDIzOSwgMC4wMTAyODQsIDAuMDEwMzI5LCAwLjAxMDM1MywgMC4wMTAzNzciLCBcCi0gICAgICAgICAgIjAuMDA5ODMzLCAwLjAxMDEwNiwgMC4wMTAyMTgsIDAuMDEwMjYzLCAwLjAxMDMwOSwgMC4wMTAzMzUsIDAuMDEwMzU5IiwgXAotICAgICAgICAgICIwLjAwOTgzOCwgMC4wMTAwOTMsIDAuMDEwMjAzLCAwLjAxMDI0OSwgMC4wMTAyOTYsIDAuMDEwMzIzLCAwLjAxMDM0OSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBPUjRYTCAqCi0gKiAtLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoT1I0WEwpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4wOTQ1MzYzOwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA1NjczNDM7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNTYzMTk2OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDU2NzM0MzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxNDIsIDAuMDAwMTQ3LCAwLjAwMDE1LCAwLjAwMDE1MSwgMC4wMDAxNTIsIDAuMDAwMTUzLCAwLjAwMDE1NCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDI5LCAwLjAwMDI5LCAwLjAwMDI5LCAwLjAwMDI5LCAwLjAwMDI5LCAwLjAwMDI5LCAwLjAwMDI5Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2MDM0MTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA1OTk3MzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2MDM0MTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxNDIsIDAuMDAwMTQ2LCAwLjAwMDE0OSwgMC4wMDAxNTEsIDAuMDAwMTUzLCAwLjAwMDE1NCwgMC4wMDAxNTUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyMDcsIDAuMDAwMjA3LCAwLjAwMDIwNywgMC4wMDAyMDcsIDAuMDAwMjA3LCAwLjAwMDIwNywgMC4wMDAyMDciKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEMpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYyMzkxMTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MjA1MDI7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjIzOTExOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDE0MywgMC4wMDAxNTIsIDAuMDAwMTU1LCAwLjAwMDE1NywgMC4wMDAxNTgsIDAuMDAwMTU5LCAwLjAwMDE1OSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDE3LCAwLjAwMDE3LCAwLjAwMDE3LCAwLjAwMDE3LCAwLjAwMDE3LCAwLjAwMDE3LCAwLjAwMDE3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihEKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA1ODY0MDE7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNTg2NDAxOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDU4NjM3MTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAwNDksIDAuMDAwMDQ5LCAwLjAwMDA0OSwgMC4wMDAwNDksIDAuMDAwMDQ5LCAwLjAwMDA0OSwgMC4wMDAwNDkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxOTgsIDAuMDAwMTk4LCAwLjAwMDE5OCwgMC4wMDAxOTgsIDAuMDAwMTk3LCAwLjAwMDE5NywgMC4wMDAxOTciKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4wNzA1MTQ0OwotICAgIGZ1bmN0aW9uIDogIigoKEErQikrQykrRCkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIwMjAzNSwgMC4yMjc0ODgsIDAuNDU1Njc2LCAwLjgzNDk4NSwgMS4yMTM5NywgMi4wOTc5MSwgMi42MDI5MSIsIFwKLSAgICAgICAgICAiMC4yMTM2NzYsIDAuMjM5MTU1LCAwLjQ2NzMzMSwgMC44NDY2MjEsIDEuMjI1NjcsIDIuMTA5NjgsIDIuNjE0NjgiLCBcCi0gICAgICAgICAgIjAuMjI4OTMyLCAwLjI1NDM5MiwgMC40ODI1ODEsIDAuODYxODc2LCAxLjI0MDkzLCAyLjEyNDk1LCAyLjYyOTk0IiwgXAotICAgICAgICAgICIwLjI0NDM1NywgMC4yNjk3OTgsIDAuNDk3OTg4LCAwLjg3NzI1OCwgMS4yNTYyOSwgMi4xNDAyNywgMi42NDUxNyIsIFwKLSAgICAgICAgICAiMC4yNTk2OSwgMC4yODUxNDcsIDAuNTEzMzM2LCAwLjg5MjYzMywgMS4yNzE2NCwgMi4xNTU2MiwgMi42NjA1NSIsIFwKLSAgICAgICAgICAiMC4yODM5NjgsIDAuMzA5NDQ0LCAwLjUzNzY0MSwgMC45MTY4OTQsIDEuMjk1OTMsIDIuMTc5OTUsIDIuNjg0OTQiLCBcCi0gICAgICAgICAgIjAuMzA1MTgyLCAwLjMzMDYzNywgMC41NTg4MDMsIDAuOTM4MDc2LCAxLjMxNzA5LCAyLjIwMTA4LCAyLjcwNjA5Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI3Mzk0OSwgMC4zMjQzNzIsIDAuNzg1MzI4LCAxLjU1Mzk0LCAyLjMxOTU2LCA0LjExMjg2LCA1LjEzNzA4IiwgXAotICAgICAgICAgICIwLjI3MzI5NSwgMC4zMjQyNDksIDAuNzg0MTUyLCAxLjU1MzksIDIuMzIyNTUsIDQuMTE3MjcsIDUuMTM1OTgiLCBcCi0gICAgICAgICAgIjAuMjczMjI0LCAwLjMyNDcyLCAwLjc4NTI0MiwgMS41NTM4NywgMi4zMjIzNywgNC4xMTY1OCwgNS4xMzU0MyIsIFwKLSAgICAgICAgICAiMC4yNzM4MTMsIDAuMzI0MTg1LCAwLjc4NTE2MiwgMS41NTIzOCwgMi4zMjI1MywgNC4xMTcwNiwgNS4xMzc0MSIsIFwKLSAgICAgICAgICAiMC4yNzMyMjcsIDAuMzI0MTE0LCAwLjc4NTIyNiwgMS41NTE2MSwgMi4zMjI3NSwgNC4xMTc0OCwgNS4xMzcxNyIsIFwKLSAgICAgICAgICAiMC4yNzMyNjgsIDAuMzI0MTc1LCAwLjc4NTAzNywgMS41NTM4OSwgMi4zMjI4MSwgNC4xMTc1NiwgNS4xMzg5NiIsIFwKLSAgICAgICAgICAiMC4yNzMxMzgsIDAuMzI0MDc4LCAwLjc4NDI3NSwgMS41NTM5OCwgMi4zMjI2OCwgNC4xMTcxNCwgNS4xMzg5Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjM3OTg3MSwgMC40MTAzMjEsIDAuNjc4NjQ1LCAxLjEyNDIyLCAxLjU2OTg0LCAyLjYxMDUsIDMuMjAzNzEiLCBcCi0gICAgICAgICAgIjAuMzkxMDE5LCAwLjQyMTQxNSwgMC42ODk3MzksIDEuMTM1MywgMS41ODA5MiwgMi42MjE1OSwgMy4yMTQ3OCIsIFwKLSAgICAgICAgICAiMC40MDM5NjIsIDAuNDM0Mzc5LCAwLjcwMjY5NSwgMS4xNDgyMiwgMS41OTM4OCwgMi42MzQ1NiwgMy4yMjc4MSIsIFwKLSAgICAgICAgICAiMC40MTU2MTEsIDAuNDQ2MDQyLCAwLjcxNDM3NywgMS4xNTk5NSwgMS42MDU1OCwgMi42NDYyMSwgMy4yMzk2NSIsIFwKLSAgICAgICAgICAiMC40MjY5MDQsIDAuNDU3MzE5LCAwLjcyNTY0OCwgMS4xNzEyMiwgMS42MTY4NSwgMi42NTc0OSwgMy4yNTA5MiIsIFwKLSAgICAgICAgICAiMC40NDM4NjcsIDAuNDc0Mjg4LCAwLjc0MjYxMSwgMS4xODgwOSwgMS42MzM4LCAyLjY3NDQ4LCAzLjI2NzciLCBcCi0gICAgICAgICAgIjAuNDU4MTE1LCAwLjQ4ODUzMiwgMC43NTY3ODksIDEuMjAyMzYsIDEuNjQ3OTksIDIuNjg4NjQsIDMuMjgxOTYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzMzNDcyLCAwLjM4OTUzLCAwLjkwNTgzLCAxLjc4MzU2LCAyLjY2NzM3LCA0LjcyMDA5LCA1Ljg5MzA3IiwgXAotICAgICAgICAgICIwLjMzMzUzOCwgMC4zODk1NTksIDAuOTA4NDY3LCAxLjc4NDAzLCAyLjY2ODk2LCA0LjcyMDI2LCA1Ljg5MzkiLCBcCi0gICAgICAgICAgIjAuMzMzNDcyLCAwLjM4OTMxNCwgMC45MDU1MTcsIDEuNzg4NzcsIDIuNjY5NzEsIDQuNzIzNzYsIDUuODkyMDciLCBcCi0gICAgICAgICAgIjAuMzMzNjMyLCAwLjM4OTQ1NCwgMC45MDU2NzYsIDEuNzgzMzEsIDIuNjY4MjcsIDQuNzIwMywgNS44OTExMSIsIFwKLSAgICAgICAgICAiMC4zMzM1OTYsIDAuMzg5Mzg5LCAwLjkwNTc2MSwgMS43ODMzMSwgMi42Njg5MywgNC43MjAyNSwgNS44OTE5NiIsIFwKLSAgICAgICAgICAiMC4zMzMzOTYsIDAuMzg5MjQxLCAwLjkwNTYzLCAxLjc4ODY3LCAyLjY2OTczLCA0LjcxOTc4LCA1Ljg5MjE3IiwgXAotICAgICAgICAgICIwLjMzMzI5OCwgMC4zODkyMTEsIDAuOTA4MDQ0LCAxLjc4ODc1LCAyLjY2NzEsIDQuNzIwNDUsIDUuODkyMTIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTk3MzYzLCAwLjIyMjczNSwgMC40NTA0NSwgMC44Mjk1NDMsIDEuMjA4MjcsIDIuMDkyMTMsIDIuNTk3MjMiLCBcCi0gICAgICAgICAgIjAuMjA5MjQ3LCAwLjIzNDYxMywgMC40NjIzMzgsIDAuODQxMzIyLCAxLjIyMDE3LCAyLjEwMzkzLCAyLjYwODg3IiwgXAotICAgICAgICAgICIwLjIyNDU1MywgMC4yNDk5MTcsIDAuNDc3NjM5LCAwLjg1NjY0NiwgMS4yMzU1MywgMi4xMTkyOSwgMi42MjQyMyIsIFwKLSAgICAgICAgICAiMC4yMzk4NDQsIDAuMjY1MjE0LCAwLjQ5Mjk1MiwgMC44NzE5OTIsIDEuMjUwNzgsIDIuMTM0NjgsIDIuNjM5NiIsIFwKLSAgICAgICAgICAiMC4yNTUxODUsIDAuMjgwNTU5LCAwLjUwODMwNSwgMC44ODcyOTQsIDEuMjY2MTQsIDIuMTQ5OSwgMi42NTUwNyIsIFwKLSAgICAgICAgICAiMC4yNzkwODQsIDAuMzA0NDUsIDAuNTMyMjA0LCAwLjkxMTIwMSwgMS4yOTAwNCwgMi4xNzM4LCAyLjY3ODcyIiwgXAotICAgICAgICAgICIwLjI5OTkzNCwgMC4zMjUzMDUsIDAuNTUzMDYxLCAwLjkzMjA1OSwgMS4zMTEsIDIuMTk0NjgsIDIuNjk5NjQiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjcyMjQ0LCAwLjMyMjg1NCwgMC43ODQ0NzUsIDEuNTUzNDMsIDIuMzIzMjcsIDQuMTE4MzQsIDUuMTM4NzgiLCBcCi0gICAgICAgICAgIjAuMjcxODksIDAuMzIyNzI4LCAwLjc4NDM3OSwgMS41NTM3OCwgMi4zMjI5MywgNC4xMTg2LCA1LjEzODc3IiwgXAotICAgICAgICAgICIwLjI3MTg4OCwgMC4zMjI5MTksIDAuNzg0NDUxLCAxLjU1MzU0LCAyLjMyMjYsIDQuMTEwNzcsIDUuMTM4NzQiLCBcCi0gICAgICAgICAgIjAuMjcxOTUyLCAwLjMyMjc3MSwgMC43ODQ0NDQsIDEuNTUxMTEsIDIuMzIzMDgsIDQuMTE3OTksIDUuMTM4NTkiLCBcCi0gICAgICAgICAgIjAuMjcyMjg5LCAwLjMyMjcxLCAwLjc4MzQzOSwgMS41NTM3LCAyLjMyMzAyLCA0LjExODcyLCA1LjEzODQ2IiwgXAotICAgICAgICAgICIwLjI3MTk2MiwgMC4zMjI5MjUsIDAuNzg0MzE3LCAxLjU1MzUyLCAyLjMyMjgxLCA0LjExODc1LCA1LjEzNTk4IiwgXAotICAgICAgICAgICIwLjI3MjM0MSwgMC4zMjM0MSwgMC43ODQwMDUsIDEuNTUzNTEsIDIuMzIyMzEsIDQuMTE4MDUsIDUuMTM4NDciKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzcyMjY2LCAwLjQwMjc4NywgMC42NzEwOCwgMS4xMTY2NCwgMS41NjIwNywgMi42MDE5NSwgMy4xOTYyIiwgXAotICAgICAgICAgICIwLjM4MjM5OSwgMC40MTI4NTIsIDAuNjgxMjA3LCAxLjEyNjc5LCAxLjU3MjQzLCAyLjYxMzEsIDMuMjA2MjciLCBcCi0gICAgICAgICAgIjAuMzk0Njg2LCAwLjQyNTExMSwgMC42OTM0NTYsIDEuMTM4OTksIDEuNTg0NjcsIDIuNjI1MzUsIDMuMjE4NjEiLCBcCi0gICAgICAgICAgIjAuNDA2MDk5LCAwLjQzNjU0OSwgMC43MDQ4ODUsIDEuMTUwNDYsIDEuNTk1OTcsIDIuNjM2NjQsIDMuMjI5OTgiLCBcCi0gICAgICAgICAgIjAuNDE3Mjg2LCAwLjQ0Nzc2OCwgMC43MTYwNywgMS4xNjE2MywgMS42MDczNSwgMi42NDcxMiwgMy4yNDA4NyIsIFwKLSAgICAgICAgICAiMC40MzQ0MTEsIDAuNDY0ODMsIDAuNzMzMTIzLCAxLjE3ODcxLCAxLjYyNDMzLCAyLjY2NTA2LCAzLjI1ODM0IiwgXAotICAgICAgICAgICIwLjQ0ODk2NSwgMC40Nzk0MDYsIDAuNzQ3NzU2LCAxLjE5MzMyLCAxLjYzODc2LCAyLjY3OTM1LCAzLjI3MjczIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMzMzIxNCwgMC4zODk0MDMsIDAuOTA4NDIxLCAxLjc4ODc4LCAyLjY3MjM4LCA0LjcxOTQxLCA1Ljg5MTciLCBcCi0gICAgICAgICAgIjAuMzMzNDU2LCAwLjM4OTUxMSwgMC45MDYwMjksIDEuNzgzNjUsIDIuNjY2NzgsIDQuNzIwMjEsIDUuODkzOTgiLCBcCi0gICAgICAgICAgIjAuMzMzNDA0LCAwLjM4OTI4MSwgMC45MDU2MjYsIDEuNzg4NzYsIDIuNjY5NjgsIDQuNzIyMTMsIDUuODkyMDciLCBcCi0gICAgICAgICAgIjAuMzMzNTI3LCAwLjM4OTU0NSwgMC45MDg0NTQsIDEuNzg4ODIsIDIuNjcyNTgsIDQuNzIwODIsIDUuODkzMjkiLCBcCi0gICAgICAgICAgIjAuMzMzMjUzLCAwLjM4OTM5MSwgMC45MDY0MiwgMS43ODg3OSwgMi42NjIsIDQuNzIyMDksIDUuODk0MDYiLCBcCi0gICAgICAgICAgIjAuMzMzMzU0LCAwLjM4OTIxMSwgMC45MDgwNDMsIDEuNzg4NzUsIDIuNjY2NzksIDQuNzIxODEsIDUuODkyMDkiLCBcCi0gICAgICAgICAgIjAuMzMyOTg3LCAwLjM4OTA4NSwgMC45MDgzNTgsIDEuNzg4NzUsIDIuNjcyMzksIDQuNzIyNDgsIDUuODkyNjIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTkxNzM3LCAwLjIxNzA0OSwgMC40NDQ0NjUsIDAuODIzMjU5LCAxLjIwMTk2LCAyLjA4NTU3LCAyLjU5MDY5IiwgXAotICAgICAgICAgICIwLjIwMzcyMiwgMC4yMjkwMzYsIDAuNDU2NDYsIDAuODM1MjM2LCAxLjIxMzk2LCAyLjA5NzU1LCAyLjYwMjU5IiwgXAotICAgICAgICAgICIwLjIxODk4NywgMC4yNDQyNzcsIDAuNDcxNzEyLCAwLjg1MDQ4NywgMS4yMjkyMSwgMi4xMTI4MSwgMi42MTc3NiIsIFwKLSAgICAgICAgICAiMC4yMzQ0OTMsIDAuMjU5NzgsIDAuNDg3MjE1LCAwLjg2NjAwNiwgMS4yNDQ3MywgMi4xMjgzMiwgMi42MzMyNiIsIFwKLSAgICAgICAgICAiMC4yNDk2NjEsIDAuMjc0OTY5LCAwLjUwMjQ1OCwgMC44ODEyMDksIDEuMjU5OTMsIDIuMTQzNTMsIDIuNjQ4NDEiLCBcCi0gICAgICAgICAgIjAuMjczNjE1LCAwLjI5ODkyOSwgMC41MjYzODYsIDAuOTA1MTk4LCAxLjI4Mzg5LCAyLjE2NzQ5LCAyLjY3MjQxIiwgXAotICAgICAgICAgICIwLjI5MzU3MywgMC4zMTg4NzQsIDAuNTQ2MzM2LCAwLjkyNTE0MiwgMS4zMDM4NywgMi4xODc0NywgMi42OTI2OCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yNzA5MzMsIDAuMzIxODM4LCAwLjc4MjY3OCwgMS41NTEwNCwgMi4zMTkxNiwgNC4xMTE3NywgNS4xMzg2MyIsIFwKLSAgICAgICAgICAiMC4yNzA4OTYsIDAuMzIxODE4LCAwLjc4MjYwOCwgMS41NTEwOSwgMi4zMTkxMywgNC4xMTE3MSwgNS4xMzg0MSIsIFwKLSAgICAgICAgICAiMC4yNzE1NDIsIDAuMzIxODQxLCAwLjc4MjYxOCwgMS41NTA5OCwgMi4zMTkxOCwgNC4xMTY5MSwgNS4xMzU0MyIsIFwKLSAgICAgICAgICAiMC4yNzE1MTcsIDAuMzIxODUsIDAuNzgzNTA4LCAxLjU1MDkyLCAyLjMxOTE4LCA0LjExNzYzLCA1LjEzODYyIiwgXAotICAgICAgICAgICIwLjI3MTM2OCwgMC4zMjIwOTcsIDAuNzgzNTgxLCAxLjU1MDk1LCAyLjMyMTksIDQuMTE3MjUsIDUuMTM0NzgiLCBcCi0gICAgICAgICAgIjAuMjcxMTMyLCAwLjMyMjA2MSwgMC43ODI1NCwgMS41NTA3OSwgMi4zMjIxNSwgNC4xMTcyNiwgNS4xMzUxMSIsIFwKLSAgICAgICAgICAiMC4yNzE3MDksIDAuMzIyNjAyLCAwLjc4Mzc1MywgMS41NTA4OCwgMi4zMTg5NiwgNC4xMTU3LCA1LjEzNzgxIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjM1NzEwNCwgMC4zODc1MjIsIDAuNjU1ODg5LCAxLjEwMTUxLCAxLjU0NzE0LCAyLjU4Nzc5LCAzLjE4MTEiLCBcCi0gICAgICAgICAgIjAuMzY2NTI4LCAwLjM5Njk1OSwgMC42NjUzMzEsIDEuMTEwOTIsIDEuNTU2NiwgMi41OTcwMywgMy4xOTA1MSIsIFwKLSAgICAgICAgICAiMC4zNzgxMjUsIDAuNDA4NTYxLCAwLjY3NjkzMiwgMS4xMjI1MywgMS41NjgxOSwgMi42MDg2NSwgMy4yMDIxOCIsIFwKLSAgICAgICAgICAiMC4zODk0NjUsIDAuNDE5OSwgMC42ODgyMTksIDEuMTMzNzEsIDEuNTc5NSwgMi42MjAxNCwgMy4yMTMzMiIsIFwKLSAgICAgICAgICAiMC40MDA4OCwgMC40MzEyOTksIDAuNjk5NjE1LCAxLjE0NTE2LCAxLjU5MDksIDIuNjMwOCwgMy4yMjQ3NCIsIFwKLSAgICAgICAgICAiMC40MTg4MDIsIDAuNDQ5MjQ3LCAwLjcxNzYyMywgMS4xNjMyMiwgMS42MDg5MSwgMi42NDkzMywgMy4yNDI4MyIsIFwKLSAgICAgICAgICAiMC40MzQ1NDEsIDAuNDY0OTk0LCAwLjczMzM3MiwgMS4xNzg5NywgMS42MjQ2NywgMi42NjUxLCAzLjI1ODU5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMzMzM0OSwgMC4zODkxOTcsIDAuOTA2MTU0LCAxLjc4Mjc2LCAyLjY2OTMsIDQuNzIwMjEsIDUuODkxOTciLCBcCi0gICAgICAgICAgIjAuMzMzMjAyLCAwLjM4OTI5MywgMC45MDg0MDEsIDEuNzg4OCwgMi42NjUwMiwgNC43MjExOCwgNS44OTIxNCIsIFwKLSAgICAgICAgICAiMC4zMzMyMzUsIDAuMzg5MzE4LCAwLjkwODM5OSwgMS43ODM3OSwgMi42NjY2OCwgNC43MjEwNiwgNS44OTI5IiwgXAotICAgICAgICAgICIwLjMzMzM1NSwgMC4zODkxNzYsIDAuOTA4MzA0LCAxLjc4ODkzLCAyLjY2OTk4LCA0LjcyMzM0LCA1Ljg5MjQ5IiwgXAotICAgICAgICAgICIwLjMzMzM5NCwgMC4zODkxNTUsIDAuOTA3OTc3LCAxLjc4NTI2LCAyLjY3MDE0LCA0LjcyNDUyLCA1Ljg5MjQ4IiwgXAotICAgICAgICAgICIwLjMzMzAzNiwgMC4zODkxNDQsIDAuOTA4MzU3LCAxLjc4ODc5LCAyLjY2NDA5LCA0LjcyMTE3LCA1Ljg5MjUzIiwgXAotICAgICAgICAgICIwLjMzMjkwNiwgMC4zODkwMzcsIDAuOTA4MzI5LCAxLjc4ODc3LCAyLjY2MzY1LCA0LjcyMTE0LCA1Ljg5MjY2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkQiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE4NTQ2NSwgMC4yMTA3MjEsIDAuNDM3OTg3LCAwLjgxNjg0NCwgMS4xOTYyNywgMi4wNzkyNCwgMi41ODQ3MyIsIFwKLSAgICAgICAgICAiMC4xOTc1ODUsIDAuMjIyODQ3LCAwLjQ1MDE4MywgMC44MjkwNTIsIDEuMjA3NywgMi4wOTE1OCwgMi41OTczMSIsIFwKLSAgICAgICAgICAiMC4yMTI5MjgsIDAuMjM4MiwgMC40NjU1NjYsIDAuODQ0MzQ2LCAxLjIyMzA0LCAyLjEwODM4LCAyLjYxMjM5IiwgXAotICAgICAgICAgICIwLjIyODE3MiwgMC4yNTM0MzYsIDAuNDgwNzM3LCAwLjg1OTQ5NiwgMS4yMzgzNSwgMi4xMjIzMywgMi42MjgwMSIsIFwKLSAgICAgICAgICAiMC4yNDMyNzcsIDAuMjY4NTMzLCAwLjQ5NTg3MywgMC44NzQ3NjcsIDEuMjUzNDUsIDIuMTM3NTcsIDIuNjQyOTEiLCBcCi0gICAgICAgICAgIjAuMjY2NzY0LCAwLjI5MjAzNCwgMC41MTkzNjksIDAuODk4MTM3LCAxLjI3NywgMi4xNjA5NSwgMi42NjY2NCIsIFwKLSAgICAgICAgICAiMC4yODU0MjQsIDAuMzEwNzIxLCAwLjUzODAzNiwgMC45MTY4MzYsIDEuMjk2NTMsIDIuMTc5OTYsIDIuNjg0NyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yNzAzNzIsIDAuMzIxMzczLCAwLjc4MzM5MSwgMS41NTMzNiwgMi4zMTg1OSwgNC4xMDg1OCwgNS4xMzY2OCIsIFwKLSAgICAgICAgICAiMC4yNzA3ODIsIDAuMzIxMzEyLCAwLjc4MjIzNCwgMS41NDk3MiwgMi4zMTY5NSwgNC4xMTg2MywgNS4xMzMzNCIsIFwKLSAgICAgICAgICAiMC4yNzAyNzEsIDAuMzIxNTQsIDAuNzgyMjI5LCAxLjU0ODg4LCAyLjMxNzAzLCA0LjExMTI2LCA1LjEzMzkxIiwgXAotICAgICAgICAgICIwLjI3MDU0MSwgMC4zMjEzNTEsIDAuNzgzNjUyLCAxLjU1MzA0LCAyLjMxNjc3LCA0LjExODYsIDUuMTMzMyIsIFwKLSAgICAgICAgICAiMC4yNzA0NzQsIDAuMzIxNTYsIDAuNzgxNDU3LCAxLjU0OTg1LCAyLjMxNjkyLCA0LjExMjQzLCA1LjEzMzQ3IiwgXAotICAgICAgICAgICIwLjI3MDYyLCAwLjMyMjA5NywgMC43ODM2NTMsIDEuNTQ5MjUsIDIuMzE2NywgNC4xMTgxMiwgNS4xMzMyOSIsIFwKLSAgICAgICAgICAiMC4yNzEyNzYsIDAuMzIxNTcxLCAwLjc4MTQ2NiwgMS41NDkyNCwgMi4zMTc4LCA0LjEwOTQ0LCA1LjEzNTMiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzM0MTAyLCAwLjM2NDUyMiwgMC42MzI5MDcsIDEuMDc4NTMsIDEuNTI0MTYsIDIuNTY0ODUsIDMuMTU4MTMiLCBcCi0gICAgICAgICAgIjAuMzQyNDY2LCAwLjM3Mjg2OCwgMC42NDEyNTcsIDEuMDg2ODUsIDEuNTMyNTEsIDIuNTcyOTIsIDMuMTY2MzkiLCBcCi0gICAgICAgICAgIjAuMzUzNzM4LCAwLjM4NDE2NywgMC42NTI0ODgsIDEuMDk3OTksIDEuNTQzNzgsIDIuNTg0NDcsIDMuMTc3NjIiLCBcCi0gICAgICAgICAgIjAuMzY1MTI1LCAwLjM5NTU0NCwgMC42NjM5MzYsIDEuMTA5NTksIDEuNTU1MiwgMi41OTU4NywgMy4xODkxNyIsIFwKLSAgICAgICAgICAiMC4zNzcwMjIsIDAuNDA3NDQ1LCAwLjY3NTgwMywgMS4xMjEzOCwgMS41NjcwNCwgMi42MDcyNSwgMy4yMDEwNCIsIFwKLSAgICAgICAgICAiMC4zOTU3MTYsIDAuNDI2MTcxLCAwLjY5NDU3NiwgMS4xNDAxOSwgMS41ODU4NywgMi42MjYzNSwgMy4yMTk4NiIsIFwKLSAgICAgICAgICAiMC40MTIxNTYsIDAuNDQyNTYzLCAwLjcxMDk3NywgMS4xNTY2MywgMS42MDIyNiwgMi42NDI5NiwgMy4yMzYyNiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMzMyNDEsIDAuMzg5MTgxLCAwLjkwNjU2NSwgMS43ODI4OCwgMi42NzAwNCwgNC43MjA1MSwgNS44OTE5MSIsIFwKLSAgICAgICAgICAiMC4zMzMzMjQsIDAuMzg5Mzc0LCAwLjkwODQxMSwgMS43ODg4MiwgMi42Njc3OCwgNC43MjE3MiwgNS44OTQwOSIsIFwKLSAgICAgICAgICAiMC4zMzMxNzUsIDAuMzg5MTM3LCAwLjkwODI1LCAxLjc4ODgyLCAyLjY3MDA0LCA0LjcyMTc1LCA1Ljg5MjQzIiwgXAotICAgICAgICAgICIwLjMzMzE5MiwgMC4zODkxNjIsIDAuOTA4MzQ3LCAxLjc4NTM2LCAyLjY2ODcyLCA0LjcyMDE4LCA1Ljg5MTk0IiwgXAotICAgICAgICAgICIwLjMzMzIyMiwgMC4zODkxMTQsIDAuOTA4MzgsIDEuNzg4NzQsIDIuNjY3MjYsIDQuNzIzMDksIDUuODkyMDYiLCBcCi0gICAgICAgICAgIjAuMzMyOTAzLCAwLjM4OTAyOSwgMC45MDgzMDcsIDEuNzg0MTUsIDIuNjY0OTksIDQuNzIxLCA1Ljg5MjcyIiwgXAotICAgICAgICAgICIwLjMzMzA3MiwgMC4zODkxMTksIDAuOTA4MzI2LCAxLjc4MjkyLCAyLjY2OTQ1LCA0LjcyMDEzLCA1Ljg5MTkyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxMjYsIDAuMDAxMjYsIDAuMDAxMjYxLCAwLjAwMTI2MiwgMC4wMDEyNjIsIDAuMDAxMjYyLCAwLjAwMTI2MiIsIFwKLSAgICAgICAgICAiMC4wMDEyNDYsIDAuMDAxMjQ3LCAwLjAwMTI0OCwgMC4wMDEyNDksIDAuMDAxMjQ5LCAwLjAwMTI0OSwgMC4wMDEyNDkiLCBcCi0gICAgICAgICAgIjAuMDAxMjQxLCAwLjAwMTI0MSwgMC4wMDEyNDMsIDAuMDAxMjQzLCAwLjAwMTI0MywgMC4wMDEyNDQsIDAuMDAxMjQzIiwgXAotICAgICAgICAgICIwLjAwMTIzNiwgMC4wMDEyMzcsIDAuMDAxMjM5LCAwLjAwMTI0LCAwLjAwMTIzOSwgMC4wMDEyNCwgMC4wMDEyMzkiLCBcCi0gICAgICAgICAgIjAuMDAxMjMzLCAwLjAwMTIzNCwgMC4wMDEyMzUsIDAuMDAxMjM2LCAwLjAwMTIzNywgMC4wMDEyMzcsIDAuMDAxMjM3IiwgXAotICAgICAgICAgICIwLjAwMTIyOSwgMC4wMDEyMywgMC4wMDEyMzMsIDAuMDAxMjMzLCAwLjAwMTIzNCwgMC4wMDEyMzUsIDAuMDAxMjM0IiwgXAotICAgICAgICAgICIwLjAwMTIyOCwgMC4wMDEyMjksIDAuMDAxMjMyLCAwLjAwMTIzMiwgMC4wMDEyMzMsIDAuMDAxMjM0LCAwLjAwMTIzNCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjUsIDAuMDAyNTAxLCAwLjAwMjUwMywgMC4wMDI1MDQsIDAuMDAyNTA0LCAwLjAwMjUwNSwgMC4wMDI1MDQiLCBcCi0gICAgICAgICAgIjAuMDAyNDk0LCAwLjAwMjQ5NSwgMC4wMDI0OTcsIDAuMDAyNDk4LCAwLjAwMjQ5OCwgMC4wMDI0OTgsIDAuMDAyNDk4IiwgXAotICAgICAgICAgICIwLjAwMjQ5LCAwLjAwMjQ5MSwgMC4wMDI0OTMsIDAuMDAyNDk0LCAwLjAwMjQ5NCwgMC4wMDI0OTMsIDAuMDAyNDk0IiwgXAotICAgICAgICAgICIwLjAwMjQ4NiwgMC4wMDI0ODcsIDAuMDAyNDksIDAuMDAyNDksIDAuMDAyNDksIDAuMDAyNDksIDAuMDAyNDkiLCBcCi0gICAgICAgICAgIjAuMDAyNDg0LCAwLjAwMjQ4NSwgMC4wMDI0ODgsIDAuMDAyNDg4LCAwLjAwMjQ4OCwgMC4wMDI0ODgsIDAuMDAyNDg5IiwgXAotICAgICAgICAgICIwLjAwMjQ4MiwgMC4wMDI0ODMsIDAuMDAyNDg2LCAwLjAwMjQ4NywgMC4wMDI0ODcsIDAuMDAyNDg3LCAwLjAwMjQ4NyIsIFwKLSAgICAgICAgICAiMC4wMDI0ODEsIDAuMDAyNDgyLCAwLjAwMjQ4NSwgMC4wMDI0ODYsIDAuMDAyNDg2LCAwLjAwMjQ4NiwgMC4wMDI0ODYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDEwNTQsIDAuMDAxMDU1LCAwLjAwMTA1NywgMC4wMDEwNTcsIDAuMDAxMDU4LCAwLjAwMTA1OCwgMC4wMDEwNTgiLCBcCi0gICAgICAgICAgIjAuMDAxMDQ4LCAwLjAwMTA0OCwgMC4wMDEwNSwgMC4wMDEwNSwgMC4wMDEwNTEsIDAuMDAxMDUxLCAwLjAwMTA1MSIsIFwKLSAgICAgICAgICAiMC4wMDEwNCwgMC4wMDEwNDEsIDAuMDAxMDQzLCAwLjAwMTA0NCwgMC4wMDEwNDQsIDAuMDAxMDQ1LCAwLjAwMTA0NCIsIFwKLSAgICAgICAgICAiMC4wMDEwMzQsIDAuMDAxMDM1LCAwLjAwMTAzOCwgMC4wMDEwMzgsIDAuMDAxMDM5LCAwLjAwMTAzOSwgMC4wMDEwNCIsIFwKLSAgICAgICAgICAiMC4wMDEwMywgMC4wMDEwMzEsIDAuMDAxMDM0LCAwLjAwMTAzNiwgMC4wMDEwMzYsIDAuMDAxMDM3LCAwLjAwMTAzNyIsIFwKLSAgICAgICAgICAiMC4wMDEwMjUsIDAuMDAxMDI2LCAwLjAwMTAzLCAwLjAwMTAzMiwgMC4wMDEwMzIsIDAuMDAxMDMyLCAwLjAwMTAzMiIsIFwKLSAgICAgICAgICAiMC4wMDEwMjIsIDAuMDAxMDIzLCAwLjAwMTAyNywgMC4wMDEwMjksIDAuMDAxMDI5LCAwLjAwMTAzLCAwLjAwMTAzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyMzU3LCAwLjAwMjM1OCwgMC4wMDIzNjIsIDAuMDAyMzYzLCAwLjAwMjM2MywgMC4wMDIzNjQsIDAuMDAyMzY0IiwgXAotICAgICAgICAgICIwLjAwMjM1LCAwLjAwMjM1MiwgMC4wMDIzNTYsIDAuMDAyMzU3LCAwLjAwMjM1NywgMC4wMDIzNTcsIDAuMDAyMzU4IiwgXAotICAgICAgICAgICIwLjAwMjM0NiwgMC4wMDIzNDcsIDAuMDAyMzUxLCAwLjAwMjM1MiwgMC4wMDIzNTMsIDAuMDAyMzUzLCAwLjAwMjM1MyIsIFwKLSAgICAgICAgICAiMC4wMDIzNDMsIDAuMDAyMzQ0LCAwLjAwMjM0OCwgMC4wMDIzNDksIDAuMDAyMzUsIDAuMDAyMzUsIDAuMDAyMzUiLCBcCi0gICAgICAgICAgIjAuMDAyMzQxLCAwLjAwMjM0MiwgMC4wMDIzNDYsIDAuMDAyMzQ3LCAwLjAwMjM0OCwgMC4wMDIzNDgsIDAuMDAyMzQ4IiwgXAotICAgICAgICAgICIwLjAwMjMzOSwgMC4wMDIzNCwgMC4wMDIzNDQsIDAuMDAyMzQ1LCAwLjAwMjM0NiwgMC4wMDIzNDYsIDAuMDAyMzQ2IiwgXAotICAgICAgICAgICIwLjAwMjMzNywgMC4wMDIzMzgsIDAuMDAyMzQzLCAwLjAwMjM0NCwgMC4wMDIzNDUsIDAuMDAyMzQ1LCAwLjAwMjM0NSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDg1MSwgMC4wMDA4NTEsIDAuMDAwODUzLCAwLjAwMDg1NCwgMC4wMDA4NTMsIDAuMDAwODUzLCAwLjAwMDg1NCIsIFwKLSAgICAgICAgICAiMC4wMDA4NDgsIDAuMDAwODQ5LCAwLjAwMDg1LCAwLjAwMDg1LCAwLjAwMDg1MSwgMC4wMDA4NTEsIDAuMDAwODUxIiwgXAotICAgICAgICAgICIwLjAwMDg0MiwgMC4wMDA4NDIsIDAuMDAwODQ0LCAwLjAwMDg0NSwgMC4wMDA4NDUsIDAuMDAwODQ1LCAwLjAwMDg0NSIsIFwKLSAgICAgICAgICAiMC4wMDA4MzYsIDAuMDAwODM2LCAwLjAwMDgzOSwgMC4wMDA4MzksIDAuMDAwODQsIDAuMDAwODQsIDAuMDAwODQiLCBcCi0gICAgICAgICAgIjAuMDAwODMxLCAwLjAwMDgzMiwgMC4wMDA4MzQsIDAuMDAwODM1LCAwLjAwMDgzNiwgMC4wMDA4MzYsIDAuMDAwODM2IiwgXAotICAgICAgICAgICIwLjAwMDgyNCwgMC4wMDA4MjYsIDAuMDAwODI5LCAwLjAwMDgzMSwgMC4wMDA4MzEsIDAuMDAwODMxLCAwLjAwMDgzMSIsIFwKLSAgICAgICAgICAiMC4wMDA4MiwgMC4wMDA4MjEsIDAuMDAwODI2LCAwLjAwMDgyNywgMC4wMDA4MjcsIDAuMDAwODI4LCAwLjAwMDgyOCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjIxOSwgMC4wMDIyMjEsIDAuMDAyMjI2LCAwLjAwMjIyNywgMC4wMDIyMjgsIDAuMDAyMjI5LCAwLjAwMjIyOSIsIFwKLSAgICAgICAgICAiMC4wMDIyMTMsIDAuMDAyMjE1LCAwLjAwMjIxOSwgMC4wMDIyMjEsIDAuMDAyMjIyLCAwLjAwMjIyMiwgMC4wMDIyMjMiLCBcCi0gICAgICAgICAgIjAuMDAyMjA4LCAwLjAwMjIxLCAwLjAwMjIxNSwgMC4wMDIyMTYsIDAuMDAyMjE3LCAwLjAwMjIxOCwgMC4wMDIyMTgiLCBcCi0gICAgICAgICAgIjAuMDAyMjA1LCAwLjAwMjIwNywgMC4wMDIyMTIsIDAuMDAyMjE0LCAwLjAwMjIxNCwgMC4wMDIyMTUsIDAuMDAyMjE1IiwgXAotICAgICAgICAgICIwLjAwMjIwMywgMC4wMDIyMDUsIDAuMDAyMjEsIDAuMDAyMjEyLCAwLjAwMjIxMiwgMC4wMDIyMTMsIDAuMDAyMjEzIiwgXAotICAgICAgICAgICIwLjAwMjIsIDAuMDAyMjAyLCAwLjAwMjIwNywgMC4wMDIyMSwgMC4wMDIyMSwgMC4wMDIyMTEsIDAuMDAyMjExIiwgXAotICAgICAgICAgICIwLjAwMjE5OSwgMC4wMDIyLCAwLjAwMjIwNiwgMC4wMDIyMDgsIDAuMDAyMjA5LCAwLjAwMjIxLCAwLjAwMjIxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwNjU2LCAwLjAwMDY1NiwgMC4wMDA2NTcsIDAuMDAwNjU4LCAwLjAwMDY1OCwgMC4wMDA2NTgsIDAuMDAwNjU4IiwgXAotICAgICAgICAgICIwLjAwMDY1MywgMC4wMDA2NTMsIDAuMDAwNjU0LCAwLjAwMDY1NSwgMC4wMDA2NTUsIDAuMDAwNjU1LCAwLjAwMDY1NSIsIFwKLSAgICAgICAgICAiMC4wMDA2NDUsIDAuMDAwNjQ2LCAwLjAwMDY0NywgMC4wMDA2NDgsIDAuMDAwNjQ4LCAwLjAwMDY0OCwgMC4wMDA2NDgiLCBcCi0gICAgICAgICAgIjAuMDAwNjM4LCAwLjAwMDYzOCwgMC4wMDA2NCwgMC4wMDA2NDEsIDAuMDAwNjQxLCAwLjAwMDY0MSwgMC4wMDA2NDEiLCBcCi0gICAgICAgICAgIjAuMDAwNjMyLCAwLjAwMDYzMywgMC4wMDA2MzUsIDAuMDAwNjM2LCAwLjAwMDYzNiwgMC4wMDA2MzYsIDAuMDAwNjM3IiwgXAotICAgICAgICAgICIwLjAwMDYyNSwgMC4wMDA2MjYsIDAuMDAwNjI5LCAwLjAwMDYzMSwgMC4wMDA2MzEsIDAuMDAwNjMxLCAwLjAwMDYzMSIsIFwKLSAgICAgICAgICAiMC4wMDA2MjEsIDAuMDAwNjIyLCAwLjAwMDYyNiwgMC4wMDA2MjgsIDAuMDAwNjI4LCAwLjAwMDYyOSwgMC4wMDA2MjkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDIwNzksIDAuMDAyMDgxLCAwLjAwMjA4NiwgMC4wMDIwODksIDAuMDAyMDg5LCAwLjAwMjA5LCAwLjAwMjA5IiwgXAotICAgICAgICAgICIwLjAwMjA2OSwgMC4wMDIwNzEsIDAuMDAyMDc2LCAwLjAwMjA3OCwgMC4wMDIwNzksIDAuMDAyMDgsIDAuMDAyMDgiLCBcCi0gICAgICAgICAgIjAuMDAyMDYyLCAwLjAwMjA2NCwgMC4wMDIwNjksIDAuMDAyMDcxLCAwLjAwMjA3MiwgMC4wMDIwNzIsIDAuMDAyMDczIiwgXAotICAgICAgICAgICIwLjAwMjA1NywgMC4wMDIwNTksIDAuMDAyMDY0LCAwLjAwMjA2NywgMC4wMDIwNjgsIDAuMDAyMDY4LCAwLjAwMjA2OCIsIFwKLSAgICAgICAgICAiMC4wMDIwNTQsIDAuMDAyMDU2LCAwLjAwMjA2MiwgMC4wMDIwNjQsIDAuMDAyMDY1LCAwLjAwMjA2NiwgMC4wMDIwNjYiLCBcCi0gICAgICAgICAgIjAuMDAyMDUxLCAwLjAwMjA1MywgMC4wMDIwNTksIDAuMDAyMDYyLCAwLjAwMjA2MywgMC4wMDIwNjQsIDAuMDAyMDY0IiwgXAotICAgICAgICAgICIwLjAwMjA0OSwgMC4wMDIwNTEsIDAuMDAyMDU4LCAwLjAwMjA2MSwgMC4wMDIwNjIsIDAuMDAyMDYzLCAwLjAwMjA2MyIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBTREZGSFFYOCAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoU0RGRkhRWDgpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC42NTI3ODE7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgZmYgKE4zMCxRQklOVCkgewotICAgIG5leHRfc3RhdGUgOiAiKChTRSBTSSkgKyAoIVNFIEQpKSI7Ci0gICAgY2xvY2tlZF9vbiA6ICJDSyI7Ci0gIH0KLSAgcGluKENLKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA1NTI3NTY7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNTUyNDkzOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDU1Mjc1NjsKLSAgICBjbG9jayA6IHRydWU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyNzgyLCAwLjAwMjc3LCAwLjAwMjc1OSwgMC4wMDI3NTMsIDAuMDAyNzQ4LCAwLjAwMjc0MSwgMC4wMDI3MzgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDYwOTMsIDAuMDA2MDgyLCAwLjAwNjA3NSwgMC4wMDYwNjgsIDAuMDA2MDY3LCAwLjAwNjA3MywgMC4wMDYwNzciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFEJiFTRSYhU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1NFX0VRXzBfQU5fU0lfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjI3NTQwMSwgMC4yODcyOTksIDAuMzAyMzksIDAuMzE3Nzc0LCAwLjMzMzI2NSwgMC4zNTc3MDIsIDAuMzc4OTEyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4yMDA2NjcsIDAuMjExOTk0LCAwLjIyNzExNCwgMC4yNDIwMzIsIDAuMjU2Njk4LCAwLjI3OTgxNSwgMC4yOTk0NCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwODc2ODAxOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDg3MzQ4MzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA4NzY4MDE7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzMTYzLCAwLjAwMzE0NCwgMC4wMDMxMzQsIDAuMDAzMTI3LCAwLjAwMzEyMSwgMC4wMDMxMTUsIDAuMDAzMTExIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA0NjU4LCAwLjAwNDY0OCwgMC4wMDQ2NDIsIDAuMDA0NjM4LCAwLjAwNDYzNiwgMC4wMDQ2MzIsIDAuMDA0NjMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIVNFIjsKLSAgICAgIHNkZl9jb25kIDogIlNFID09IDEnYjAiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjA5Mzc1LCAtMC4wODg3NSwgLTAuMDc2MjUsIC0wLjA2Mzc1LCAtMC4wNTEyNSwgLTAuMDM1LCAtMC4wMiIsIFwKLSAgICAgICAgICAiLTAuMTA1LCAtMC4xLCAtMC4wODc1LCAtMC4wNzUsIC0wLjA2MjUsIC0wLjA0NjI1LCAtMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMTE3NSwgLTAuMTEyNSwgLTAuMSwgLTAuMDg3NSwgLTAuMDc1LCAtMC4wNTg3NSwgLTAuMDQzNzUiLCBcCi0gICAgICAgICAgIi0wLjEzNjI1LCAtMC4xMjUsIC0wLjExMjUsIC0wLjEsIC0wLjA4NzUsIC0wLjA3MTI1LCAtMC4wNTYyNSIsIFwKLSAgICAgICAgICAiLTAuMTQ4NzUsIC0wLjEzNzUsIC0wLjEyNSwgLTAuMTEyNSwgLTAuMSwgLTAuMDgzNzUsIC0wLjA2ODc1IiwgXAotICAgICAgICAgICItMC4xNjUsIC0wLjE2LCAtMC4xNDc1LCAtMC4xMzUsIC0wLjEyMjUsIC0wLjEwNjI1LCAtMC4wOTEyNSIsIFwKLSAgICAgICAgICAiLTAuMTg2MjUsIC0wLjE3NSwgLTAuMTYyNSwgLTAuMTUsIC0wLjE0Mzc1LCAtMC4xMjEyNSwgLTAuMTEyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2MjUsIDAuMDE3NSwgMC4wMywgMC4wNDg3NSwgMC4wNjEyNSwgMC4wODM3NSwgMC4xMDUiLCBcCi0gICAgICAgICAgIi0wLjAwNSwgMC4wMDYyNSwgMC4wMTg3NSwgMC4wMzc1LCAwLjA1LCAwLjA3MjUsIDAuMDkzNzUiLCBcCi0gICAgICAgICAgIi0wLjAxNzUsIC0wLjAwNjI1LCAwLjAwNjI1LCAwLjAyNSwgMC4wMzc1LCAwLjA2LCAwLjA4MTI1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLjAxMjUsIDAuMDI1LCAwLjA0NzUsIDAuMDY4NzUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzMTI1LCAtMC4wMTI1LCAwLCAwLjAxMjUsIDAuMDM1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICItMC4wNTg3NSwgLTAuMDQ3NSwgLTAuMDM1LCAtMC4wMTYyNSwgLTAuMDAzNzUsIDAuMDE4NzUsIDAuMDQiLCBcCi0gICAgICAgICAgIi0wLjA3Mzc1LCAtMC4wNjI1LCAtMC4wNDM3NSwgLTAuMDMxMjUsIC0wLjAxODc1LCAwLjAwMzc1LCAwLjAxODc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhU0UiOwotICAgICAgc2RmX2NvbmQgOiAiU0UgPT0gMSdiMCI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTYyNSwgMC4xNTEyNSwgMC4xMzI1LCAwLjEyLCAwLjEwNzUsIDAuMDkxMjUsIDAuMDc2MjUiLCBcCi0gICAgICAgICAgIjAuMTczNzUsIDAuMTYyNSwgMC4xNDM3NSwgMC4xMzEyNSwgMC4xMTg3NSwgMC4xMDI1LCAwLjA4NzUiLCBcCi0gICAgICAgICAgIjAuMTg2MjUsIDAuMTc1LCAwLjE2MjUsIDAuMTQzNzUsIDAuMTMxMjUsIDAuMTE1LCAwLjEiLCBcCi0gICAgICAgICAgIjAuMTk4NzUsIDAuMTg3NSwgMC4xNzUsIDAuMTU2MjUsIDAuMTQzNzUsIDAuMTI3NSwgMC4xMTg3NSIsIFwKLSAgICAgICAgICAiMC4yMTc1LCAwLjIsIDAuMTg3NSwgMC4xNzUsIDAuMTYyNSwgMC4xNCwgMC4xMzEyNSIsIFwKLSAgICAgICAgICAiMC4yMzM3NSwgMC4yMjI1LCAwLjIxLCAwLjE5MTI1LCAwLjE3ODc1LCAwLjE2MjUsIDAuMTQ3NSIsIFwKLSAgICAgICAgICAiMC4yNTUsIDAuMjQzNzUsIDAuMjI1LCAwLjIxMjUsIDAuMiwgMC4xODM3NSwgMC4xNjg3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4NzUsIDAuMDc2MjUsIDAuMDU3NSwgMC4wNDUsIDAuMDI2MjUsIDAuMDAzNzUsIC0wLjAxNzUiLCBcCi0gICAgICAgICAgIjAuMDk4NzUsIDAuMDg3NSwgMC4wNjg3NSwgMC4wNTYyNSwgMC4wMzc1LCAwLjAxNSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMTExMjUsIDAuMSwgMC4wODc1LCAwLjA2ODc1LCAwLjA1LCAwLjAyNzUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMTIzNzUsIDAuMTEyNSwgMC4xLCAwLjA4MTI1LCAwLjA2MjUsIDAuMDQsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMTM2MjUsIDAuMTI1LCAwLjEwNjI1LCAwLjA5Mzc1LCAwLjA3NSwgMC4wNTI1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICIwLjE1ODc1LCAwLjE0NzUsIDAuMTI4NzUsIDAuMTEsIDAuMDk3NSwgMC4wNzUsIDAuMDUzNzUiLCBcCi0gICAgICAgICAgIjAuMTczNzUsIDAuMTYyNSwgMC4xNDM3NSwgMC4xMzEyNSwgMC4xMTI1LCAwLjA5LCAwLjA2ODc1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihRKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDEuMDUxMDc7Ci0gICAgZnVuY3Rpb24gOiAiTjMwIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBub25fdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJpc2luZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI0NzkwMSwgMC4zMTQyNjQsIDAuMzc3MzEzLCAwLjQyMjMwNiwgMC40OTQyNzIsIDAuNTU3MjQ2LCAwLjY0NzIyNiIsIFwKLSAgICAgICAgICAiMC4yNTk4OTQsIDAuMzI2MjQ2LCAwLjM4OTI5NCwgMC40MzQyODgsIDAuNTA2MjU0LCAwLjU2OTIyNywgMC42NTkyMDciLCBcCi0gICAgICAgICAgIjAuMjc0ODE5LCAwLjM0MTE3NCwgMC40MDQyMjEsIDAuNDQ5MjE5LCAwLjUyMTE4LCAwLjU4NDE1NywgMC42NzQxMjkiLCBcCi0gICAgICAgICAgIjAuMjkwMzM4LCAwLjM1NjY4NywgMC40MTk3MzUsIDAuNDY0NzI5LCAwLjUzNjY5MiwgMC41OTk2NjQsIDAuNjg5NjU0IiwgXAotICAgICAgICAgICIwLjMwNTc3MywgMC4zNzIxMywgMC40MzUxODksIDAuNDgwMTczLCAwLjU1MjEzOCwgMC42MTUxMTMsIDAuNzA1MDkiLCBcCi0gICAgICAgICAgIjAuMzMwMTc2LCAwLjM5NjU0MiwgMC40NTk1ODUsIDAuNTA0NTgyLCAwLjU3NjU0NCwgMC42Mzk1MjEsIDAuNzI5NDkyIiwgXAotICAgICAgICAgICIwLjM1MTIyMywgMC40MTc1NzcsIDAuNDgwNjMzLCAwLjUyNTYxNywgMC41OTc1ODQsIDAuNjYwNTU5LCAwLjc1MDUzMyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0MDA3MywgMC4xNjEwNCwgMC4yODc0NTcsIDAuMzc4Mzc1LCAwLjUyNDUwOCwgMC42NTEwODQsIDAuODM3MTUyIiwgXAotICAgICAgICAgICIwLjAzOTk3MywgMC4xNjEwNCwgMC4yODc0NTUsIDAuMzc3OTc5LCAwLjUyNDQ4OCwgMC42NTIyNDYsIDAuODM0MTI0IiwgXAotICAgICAgICAgICIwLjAzOTk3NywgMC4xNjEwMzIsIDAuMjg3MjcxLCAwLjM3ODU3NiwgMC41MjQ0NzQsIDAuNjUyMjU5LCAwLjgzNDMwOCIsIFwKLSAgICAgICAgICAiMC4wNCwgMC4xNjEwMjUsIDAuMjg3MjM4LCAwLjM3ODM1MSwgMC41MjQ1NDQsIDAuNjUyNzU3LCAwLjgzNzE4IiwgXAotICAgICAgICAgICIwLjAzOTk3MywgMC4xNjEwNDUsIDAuMjg3Mzk2LCAwLjM3ODM4MywgMC41MjQ0ODUsIDAuNjUyMzAyLCAwLjgzNzEyNiIsIFwKLSAgICAgICAgICAiMC4wMzk5ODMsIDAuMTYxMDAyLCAwLjI4NzIxNCwgMC4zNzg1NTksIDAuNTI0NDg1LCAwLjY1MjMxNSwgMC44MzcxMDQiLCBcCi0gICAgICAgICAgIjAuMDM5OTgyLCAwLjE2MTAzOSwgMC4yODcxNDYsIDAuMzc4MzUxLCAwLjUyNDQ4LCAwLjY1MjI4MywgMC44MzQzMDkiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yNzU0MDMsIDAuMzUyNDg5LCAwLjQyNjk0NSwgMC40ODAwNTMsIDAuNTY1MDEyLCAwLjYzOTM0OSwgMC43NDU1NzEiLCBcCi0gICAgICAgICAgIjAuMjg3MzAxLCAwLjM2NDM5OSwgMC40Mzg4NTgsIDAuNDkxOTY2LCAwLjU3NjkyLCAwLjY1MTI0NiwgMC43NTc0MjgiLCBcCi0gICAgICAgICAgIjAuMzAyMzk1LCAwLjM3OTQ4NiwgMC40NTM5NDQsIDAuNTA3MDU0LCAwLjU5MjAzMiwgMC42NjYzNjUsIDAuNzcyNTczIiwgXAotICAgICAgICAgICIwLjMxNzc3NiwgMC4zOTQ4NzcsIDAuNDY5MzQyLCAwLjUyMjQ1LCAwLjYwNzQwNiwgMC42ODE3NzcsIDAuNzg3OTU1IiwgXAotICAgICAgICAgICIwLjMzMzI2NywgMC40MTAzNTMsIDAuNDg0ODE3LCAwLjUzNzkzNywgMC42MjI4NzksIDAuNjk3MjU3LCAwLjgwMzQ4MyIsIFwKLSAgICAgICAgICAiMC4zNTc3MDYsIDAuNDM0Nzk3LCAwLjUwOTI1NiwgMC41NjIzNzcsIDAuNjQ3MzIzLCAwLjcyMTY3NCwgMC44Mjc4NzQiLCBcCi0gICAgICAgICAgIjAuMzc4OTE3LCAwLjQ1NjAwMiwgMC41MzA0NjEsIDAuNTgzNTcxLCAwLjY2ODUzLCAwLjc0Mjg5MywgMC44NDkwODgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDE1MTksIDAuMTgzODU0LCAwLjMzMDQ2OCwgMC40MzY2NjcsIDAuNjA1ODQsIDAuNzU0MTE3LCAwLjk2NzMzOSIsIFwKLSAgICAgICAgICAiMC4wNDE1MzYsIDAuMTgzNjQyLCAwLjMzMDQ5NSwgMC40MzY4NTcsIDAuNjA2NzI4LCAwLjc1MzczNCwgMC45NjczNTgiLCBcCi0gICAgICAgICAgIjAuMDQxNTI2LCAwLjE4Mzg0LCAwLjMzMDUxMywgMC40MzY4ODEsIDAuNjA3MDExLCAwLjc1NTE5NSwgMC45NjczNCIsIFwKLSAgICAgICAgICAiMC4wNDE1MTMsIDAuMTgzODQ3LCAwLjMzMDg4LCAwLjQzNjA1OSwgMC42MDU3NzYsIDAuNzUyNDM2LCAwLjk2NzMxMiIsIFwKLSAgICAgICAgICAiMC4wNDE1NDMsIDAuMTgzODQ5LCAwLjMzMTIwMywgMC40MzYzNjMsIDAuNjA2NTcsIDAuNzU1MjA5LCAwLjk2NzM3NyIsIFwKLSAgICAgICAgICAiMC4wNDE1MTMsIDAuMTgzODQ0LCAwLjMzMDkzMiwgMC40MzYzNzQsIDAuNjA2MTc0LCAwLjc1NDE5NSwgMC45NjczMTciLCBcCi0gICAgICAgICAgIjAuMDQxNTA3LCAwLjE4MzgzNywgMC4zMzA4MDcsIDAuNDM2NDYzLCAwLjYwNDgwOCwgMC43NTUyMTMsIDAuOTY3MzM0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEzMTUyLCAwLjAxMzM5MSwgMC4wMTM0MzksIDAuMDEzNDU1LCAwLjAxMzQ3MywgMC4wMTM0NzksIDAuMDEzNDg1IiwgXAotICAgICAgICAgICIwLjAxMzE0MiwgMC4wMTMzODMsIDAuMDEzNDMsIDAuMDEzNDQ1LCAwLjAxMzQ2MiwgMC4wMTM0NjgsIDAuMDEzNDcxIiwgXAotICAgICAgICAgICIwLjAxMzEyOSwgMC4wMTMzNjksIDAuMDEzNDE4LCAwLjAxMzQzNCwgMC4wMTM0NDksIDAuMDEzNDU0LCAwLjAxMzQ2MSIsIFwKLSAgICAgICAgICAiMC4wMTMxMiwgMC4wMTMzNjEsIDAuMDEzNDA4LCAwLjAxMzQyNCwgMC4wMTM0MzYsIDAuMDEzNDQ2LCAwLjAxMzQ1MSIsIFwKLSAgICAgICAgICAiMC4wMTMxMDksIDAuMDEzMzUyLCAwLjAxMzQwMywgMC4wMTM0MTcsIDAuMDEzNDMxLCAwLjAxMzQzNywgMC4wMTM0NDMiLCBcCi0gICAgICAgICAgIjAuMDEzMDk4LCAwLjAxMzM0MSwgMC4wMTMzODksIDAuMDEzNDA0LCAwLjAxMzQxOCwgMC4wMTM0MjQsIDAuMDEzNDMiLCBcCi0gICAgICAgICAgIjAuMDEzMDk2LCAwLjAxMzMzNywgMC4wMTMzODcsIDAuMDEzNCwgMC4wMTM0MTYsIDAuMDEzNDIyLCAwLjAxMzQyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEzNDI0LCAwLjAxMzczOSwgMC4wMTM4MDcsIDAuMDEzODI5LCAwLjAxMzg0OSwgMC4wMTM4NiwgMC4wMTM4NjkiLCBcCi0gICAgICAgICAgIjAuMDEzNCwgMC4wMTM3MjIsIDAuMDEzNzkxLCAwLjAxMzgxNCwgMC4wMTM4MzUsIDAuMDEzODQ1LCAwLjAxMzg1NSIsIFwKLSAgICAgICAgICAiMC4wMTMzOTEsIDAuMDEzNzEzLCAwLjAxMzc4MiwgMC4wMTM4MDUsIDAuMDEzODI1LCAwLjAxMzgzNiwgMC4wMTM4NDYiLCBcCi0gICAgICAgICAgIjAuMDEzMzc0LCAwLjAxMzY5OSwgMC4wMTM3NywgMC4wMTM3OTMsIDAuMDEzODE1LCAwLjAxMzgyNSwgMC4wMTM4MzUiLCBcCi0gICAgICAgICAgIjAuMDEzMzc2LCAwLjAxMzcsIDAuMDEzNzY5LCAwLjAxMzc5MiwgMC4wMTM4MTMsIDAuMDEzODI0LCAwLjAxMzgzNCIsIFwKLSAgICAgICAgICAiMC4wMTMzNzQsIDAuMDEzNjk3LCAwLjAxMzc2NiwgMC4wMTM3ODksIDAuMDEzODEsIDAuMDEzODIxLCAwLjAxMzgzIiwgXAotICAgICAgICAgICIwLjAxMzM4NSwgMC4wMTM3MDQsIDAuMDEzNzcyLCAwLjAxMzc5NSwgMC4wMTM4MTUsIDAuMDEzODI2LCAwLjAxMzgzNiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oU0UpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTU4MjAyOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTU4MDg3OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTU4MjAyOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNDQzMywgMC4wMDQ0MzEsIDAuMDA0NDI1LCAwLjAwNDQxOSwgMC4wMDQ0MTQsIDAuMDA0NDA4LCAwLjAwNDQwNSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNTUzMywgMC4wMDU1MDgsIDAuMDA1NDg4LCAwLjAwNTQ3NiwgMC4wMDU0NjgsIDAuMDA1NDU4LCAwLjAwNTQ1NCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRCZTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fU0lfRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wODEyNSwgLTAuMDcsIC0wLjA1NzUsIC0wLjA0NSwgLTAuMDM4NzUsIC0wLjAyMjUsIC0wLjAwNzUiLCBcCi0gICAgICAgICAgIi0wLjA5MjUsIC0wLjA4MTI1LCAtMC4wNjg3NSwgLTAuMDU2MjUsIC0wLjA0Mzc1LCAtMC4wMjc1LCAtMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMTA1LCAtMC4wOTM3NSwgLTAuMDgxMjUsIC0wLjA2ODc1LCAtMC4wNjI1LCAtMC4wNDYyNSwgLTAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjExNzUsIC0wLjEwNjI1LCAtMC4wOTM3NSwgLTAuMDg3NSwgLTAuMDc1LCAtMC4wNTg3NSwgLTAuMDQzNzUiLCBcCi0gICAgICAgICAgIi0wLjEzLCAtMC4xMjUsIC0wLjEwNjI1LCAtMC4xLCAtMC4wODc1LCAtMC4wNzEyNSwgLTAuMDU2MjUiLCBcCi0gICAgICAgICAgIi0wLjE1MjUsIC0wLjE0MTI1LCAtMC4xMjg3NSwgLTAuMTE2MjUsIC0wLjExLCAtMC4wOTM3NSwgLTAuMDc4NzUiLCBcCi0gICAgICAgICAgIi0wLjE3Mzc1LCAtMC4xNjI1LCAtMC4xNSwgLTAuMTM3NSwgLTAuMTI1LCAtMC4xMDg3NSwgLTAuMDkzNzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxODc1LCAwLjAzLCAwLjA0MjUsIDAuMDU1LCAwLjA3Mzc1LCAwLjA5NjI1LCAwLjExMTI1IiwgXAotICAgICAgICAgICIwLjAwNzUsIDAuMDE4NzUsIDAuMDMxMjUsIDAuMDQzNzUsIDAuMDYyNSwgMC4wODUsIDAuMTA2MjUiLCBcCi0gICAgICAgICAgIi0wLjAwNSwgMC4wMDYyNSwgMC4wMTg3NSwgMC4wMzc1LCAwLjA1LCAwLjA3MjUsIDAuMDkzNzUiLCBcCi0gICAgICAgICAgIi0wLjAxNzUsIC0wLjAwNjI1LCAwLjAwNjI1LCAwLjAyNSwgMC4wMzc1LCAwLjA2LCAwLjA4MTI1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDE4NzUsIDAsIDAuMDEyNSwgMC4wMjUsIDAuMDQ3NSwgMC4wNjg3NSIsIFwKLSAgICAgICAgICAiLTAuMDQ2MjUsIC0wLjAzNSwgLTAuMDIyNSwgLTAuMDEsIDAuMDA4NzUsIDAuMDMxMjUsIDAuMDQ2MjUiLCBcCi0gICAgICAgICAgIi0wLjA2MTI1LCAtMC4wNSwgLTAuMDMxMjUsIC0wLjAxODc1LCAtMC4wMDYyNSwgMC4wMTYyNSwgMC4wMzEyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJEJiFTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzFfQU5fU0lfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMTg3NSwgLTAuMDA3NSwgMC4wMDUsIDAuMDE3NSwgMC4wMzYyNSwgMC4wNTg3NSwgMC4wNzM3NSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAxODc1LCAtMC4wMDYyNSwgMC4wMDYyNSwgMC4wMTg3NSwgMC4wNDc1LCAwLjA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wMzc1LCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAuMDA2MjUsIDAuMDI4NzUsIDAuMDUiLCBcCi0gICAgICAgICAgIi0wLjA2MTI1LCAtMC4wNSwgLTAuMDM3NSwgLTAuMDI1LCAtMC4wMDYyNSwgMC4wMTYyNSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDgsIC0wLjA2ODc1LCAtMC4wNSwgLTAuMDM3NSwgLTAuMDI1LCAtMC4wMDI1LCAwLjAxODc1IiwgXAotICAgICAgICAgICItMC4xMDI1LCAtMC4wOTEyNSwgLTAuMDcyNSwgLTAuMDYsIC0wLjA0NzUsIC0wLjAyNSwgLTAuMDAzNzUiLCBcCi0gICAgICAgICAgIi0wLjExNzUsIC0wLjEwNjI1LCAtMC4wOTM3NSwgLTAuMDc1LCAtMC4wNjI1LCAtMC4wNCwgLTAuMDE4NzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4xMTg3NSwgLTAuMTA3NSwgLTAuMDk1LCAtMC4wODI1LCAtMC4wNywgLTAuMDUzNzUsIC0wLjAzODc1IiwgXAotICAgICAgICAgICItMC4xMywgLTAuMTE4NzUsIC0wLjEwNjI1LCAtMC4wOTM3NSwgLTAuMDgxMjUsIC0wLjA2NSwgLTAuMDUiLCBcCi0gICAgICAgICAgIi0wLjE0MjUsIC0wLjEzMTI1LCAtMC4xMTg3NSwgLTAuMTA2MjUsIC0wLjEsIC0wLjA4Mzc1LCAtMC4wNjg3NSIsIFwKLSAgICAgICAgICAiLTAuMTYxMjUsIC0wLjE1LCAtMC4xMzc1LCAtMC4xMjUsIC0wLjExMjUsIC0wLjA5NjI1LCAtMC4wODEyNSIsIFwKLSAgICAgICAgICAiLTAuMTczNzUsIC0wLjE2MjUsIC0wLjE1LCAtMC4xMzc1LCAtMC4xMjUsIC0wLjEwODc1LCAtMC4wOTM3NSIsIFwKLSAgICAgICAgICAiLTAuMTksIC0wLjE3ODc1LCAtMC4xNjYyNSwgLTAuMTUzNzUsIC0wLjE0NzUsIC0wLjEyNSwgLTAuMTE2MjUiLCBcCi0gICAgICAgICAgIi0wLjIwNSwgLTAuMTkzNzUsIC0wLjE4MTI1LCAtMC4xNjg3NSwgLTAuMTYyNSwgLTAuMTQsIC0wLjEzMTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRCZTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fU0lfRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNSwgMC4xMzg3NSwgMC4xMiwgMC4xMDc1LCAwLjA5NSwgMC4wNzg3NSwgMC4wNjM3NSIsIFwKLSAgICAgICAgICAiMC4xNjEyNSwgMC4xNSwgMC4xMzEyNSwgMC4xMTg3NSwgMC4xMDYyNSwgMC4wOSwgMC4wNzUiLCBcCi0gICAgICAgICAgIjAuMTczNzUsIDAuMTYyNSwgMC4xNDM3NSwgMC4xMzEyNSwgMC4xMTg3NSwgMC4xMDI1LCAwLjA4NzUiLCBcCi0gICAgICAgICAgIjAuMTg2MjUsIDAuMTc1LCAwLjE1NjI1LCAwLjE0Mzc1LCAwLjEzMTI1LCAwLjExNSwgMC4xIiwgXAotICAgICAgICAgICIwLjE5ODc1LCAwLjE4NzUsIDAuMTc1LCAwLjE1NjI1LCAwLjE0Mzc1LCAwLjEyNzUsIDAuMTEyNSIsIFwKLSAgICAgICAgICAiMC4yMjEyNSwgMC4yMSwgMC4xOTEyNSwgMC4xNzg3NSwgMC4xNjYyNSwgMC4xNSwgMC4xMzUiLCBcCi0gICAgICAgICAgIjAuMjQyNSwgMC4yMzEyNSwgMC4yMTI1LCAwLjIsIDAuMTg3NSwgMC4xNzEyNSwgMC4xNTYyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3NSwgMC4wNjM3NSwgMC4wNTEyNSwgMC4wMzI1LCAwLjAxMzc1LCAtMC4wMDg3NSwgLTAuMDMiLCBcCi0gICAgICAgICAgIjAuMDg2MjUsIDAuMDc1LCAwLjA1NjI1LCAwLjA0Mzc1LCAwLjAyNSwgMC4wMDI1LCAtMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4wOTg3NSwgMC4wODc1LCAwLjA3NSwgMC4wNTYyNSwgMC4wMzc1LCAwLjAxNSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMTExMjUsIDAuMSwgMC4wODc1LCAwLjA2ODc1LCAwLjA1NjI1LCAwLjAyNzUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMTIzNzUsIDAuMTEyNSwgMC4xLCAwLjA4MTI1LCAwLjA2ODc1LCAwLjA0LCAwLjAxODc1IiwgXAotICAgICAgICAgICIwLjE0NjI1LCAwLjEzNSwgMC4xMjI1LCAwLjEwMzc1LCAwLjA4NSwgMC4wNjI1LCAwLjA0MTI1IiwgXAotICAgICAgICAgICIwLjE2NzUsIDAuMTUsIDAuMTM3NSwgMC4xMTg3NSwgMC4xMDYyNSwgMC4wODM3NSwgMC4wNjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJEJiFTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzFfQU5fU0lfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTI1LCAwLjEwMTI1LCAwLjA4ODc1LCAwLjA3LCAwLjA1NzUsIDAuMDI4NzUsIDAuMDA3NSIsIFwKLSAgICAgICAgICAiMC4xMywgMC4xMTI1LCAwLjEsIDAuMDgxMjUsIDAuMDY4NzUsIDAuMDQ2MjUsIDAuMDI1IiwgXAotICAgICAgICAgICIwLjE0MjUsIDAuMTMxMjUsIDAuMTEyNSwgMC4xLCAwLjA4MTI1LCAwLjA1ODc1LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIjAuMTU1LCAwLjE0Mzc1LCAwLjEzMTI1LCAwLjExMjUsIDAuMSwgMC4wNzEyNSwgMC4wNSIsIFwKLSAgICAgICAgICAiMC4xNzM3NSwgMC4xNjI1LCAwLjE0Mzc1LCAwLjEzMTI1LCAwLjExMjUsIDAuMDksIDAuMDY4NzUiLCBcCi0gICAgICAgICAgIjAuMTk2MjUsIDAuMTg1LCAwLjE2NjI1LCAwLjE0NzUsIDAuMTM1LCAwLjExMjUsIDAuMDkxMjUiLCBcCi0gICAgICAgICAgIjAuMjExMjUsIDAuMiwgMC4xODEyNSwgMC4xNjg3NSwgMC4xNSwgMC4xMjc1LCAwLjEwNjI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTg3NSwgMC4xNywgMC4xNTc1LCAwLjE0NSwgMC4xMzI1LCAwLjExLCAwLjEwMTI1IiwgXAotICAgICAgICAgICIwLjE5ODc1LCAwLjE4MTI1LCAwLjE2ODc1LCAwLjE1NjI1LCAwLjE0Mzc1LCAwLjEyNzUsIDAuMTEyNSIsIFwKLSAgICAgICAgICAiMC4yMTEyNSwgMC4yLCAwLjE4MTI1LCAwLjE2ODc1LCAwLjE1NjI1LCAwLjE0LCAwLjEyNSIsIFwKLSAgICAgICAgICAiMC4yMjM3NSwgMC4yMTI1LCAwLjIsIDAuMTgxMjUsIDAuMTY4NzUsIDAuMTUyNSwgMC4xMzc1IiwgXAotICAgICAgICAgICIwLjIzNjI1LCAwLjIyNSwgMC4yMTI1LCAwLjE5Mzc1LCAwLjE4NzUsIDAuMTY1LCAwLjE1NjI1IiwgXAotICAgICAgICAgICIwLjI1ODc1LCAwLjI0NzUsIDAuMjI4NzUsIDAuMjE2MjUsIDAuMjAzNzUsIDAuMTg3NSwgMC4xNzI1IiwgXAotICAgICAgICAgICIwLjI3Mzc1LCAwLjI2MjUsIDAuMjQzNzUsIDAuMjMxMjUsIDAuMjE4NzUsIDAuMjAyNSwgMC4xODc1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTSSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwODQ3NTgxOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDg0MzYyMzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA4NDc1ODE7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzMDIyLCAwLjAwMzAwMiwgMC4wMDI5OTIsIDAuMDAyOTg1LCAwLjAwMjk4LCAwLjAwMjk3NCwgMC4wMDI5NyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNDg0OSwgMC4wMDQ4MzksIDAuMDA0ODMzLCAwLjAwNDgyOSwgMC4wMDQ4MjcsIDAuMDA0ODI0LCAwLjAwNDgyMSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJTRSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wOTM3NSwgLTAuMDgyNSwgLTAuMDcsIC0wLjA1NzUsIC0wLjA1MTI1LCAtMC4wMzUsIC0wLjAyIiwgXAotICAgICAgICAgICItMC4xMDUsIC0wLjA5Mzc1LCAtMC4wODEyNSwgLTAuMDY4NzUsIC0wLjA2MjUsIC0wLjA0NjI1LCAtMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMTE3NSwgLTAuMTA2MjUsIC0wLjEsIC0wLjA4NzUsIC0wLjA3NSwgLTAuMDU4NzUsIC0wLjA0Mzc1IiwgXAotICAgICAgICAgICItMC4xMywgLTAuMTI1LCAtMC4xMTI1LCAtMC4xLCAtMC4wODc1LCAtMC4wNzEyNSwgLTAuMDU2MjUiLCBcCi0gICAgICAgICAgIi0wLjE0ODc1LCAtMC4xMzc1LCAtMC4xMjUsIC0wLjExMjUsIC0wLjEsIC0wLjA4Mzc1LCAtMC4wNjg3NSIsIFwKLSAgICAgICAgICAiLTAuMTY1LCAtMC4xNiwgLTAuMTQxMjUsIC0wLjEzNSwgLTAuMTIyNSwgLTAuMTA2MjUsIC0wLjA5MTI1IiwgXAotICAgICAgICAgICItMC4xODYyNSwgLTAuMTc1LCAtMC4xNjI1LCAtMC4xNSwgLTAuMTM3NSwgLTAuMTIxMjUsIC0wLjExMjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLCAwLjAxNzUsIDAuMDMsIDAuMDQyNSwgMC4wNTUsIDAuMDc3NSwgMC4wOTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDExMjUsIDAuMDA2MjUsIDAuMDE4NzUsIDAuMDMxMjUsIDAuMDQzNzUsIDAuMDcyNSwgMC4wODc1IiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDEyNSwgMC4wMDYyNSwgMC4wMTg3NSwgMC4wMzEyNSwgMC4wNTM3NSwgMC4wNzUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAuMDA2MjUsIDAuMDE4NzUsIDAuMDQ3NSwgMC4wNjI1IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLjAxMjUsIDAuMDM1LCAwLjA1IiwgXAotICAgICAgICAgICItMC4wNjUsIC0wLjA0NzUsIC0wLjAzNSwgLTAuMDIyNSwgLTAuMDEsIDAuMDEyNSwgMC4wMzM3NSIsIFwKLSAgICAgICAgICAiLTAuMDczNzUsIC0wLjA2MjUsIC0wLjA1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAwMjUsIDAuMDE4NzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlNFIjsKLSAgICAgIHNkZl9jb25kIDogIlNFID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE2MjUsIDAuMTUxMjUsIDAuMTMyNSwgMC4xMiwgMC4xMDc1LCAwLjA5MTI1LCAwLjA3NjI1IiwgXAotICAgICAgICAgICIwLjE3Mzc1LCAwLjE2MjUsIDAuMTQzNzUsIDAuMTMxMjUsIDAuMTE4NzUsIDAuMTAyNSwgMC4wODc1IiwgXAotICAgICAgICAgICIwLjE4NjI1LCAwLjE3NSwgMC4xNTYyNSwgMC4xNDM3NSwgMC4xMzEyNSwgMC4xMTUsIDAuMSIsIFwKLSAgICAgICAgICAiMC4xOTg3NSwgMC4xODc1LCAwLjE3NSwgMC4xNTYyNSwgMC4xNDM3NSwgMC4xMjc1LCAwLjExMjUiLCBcCi0gICAgICAgICAgIjAuMjExMjUsIDAuMiwgMC4xODc1LCAwLjE2ODc1LCAwLjE2MjUsIDAuMTQsIDAuMTMxMjUiLCBcCi0gICAgICAgICAgIjAuMjMzNzUsIDAuMjIyNSwgMC4yMSwgMC4xOTEyNSwgMC4xNzg3NSwgMC4xNjI1LCAwLjE0NzUiLCBcCi0gICAgICAgICAgIjAuMjU1LCAwLjI0Mzc1LCAwLjIyNSwgMC4yMTI1LCAwLjIsIDAuMTgzNzUsIDAuMTY4NzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTM3NSwgMC4wNzYyNSwgMC4wNjM3NSwgMC4wNDUsIDAuMDMyNSwgMC4wMSwgLTAuMDExMjUiLCBcCi0gICAgICAgICAgIjAuMTA1LCAwLjA4NzUsIDAuMDc1LCAwLjA1NjI1LCAwLjA0Mzc1LCAwLjAyMTI1LCAwIiwgXAotICAgICAgICAgICIwLjExNzUsIDAuMSwgMC4wODc1LCAwLjA2ODc1LCAwLjA1NjI1LCAwLjAzMzc1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMTMsIDAuMTEyNSwgMC4xLCAwLjA4MTI1LCAwLjA2ODc1LCAwLjA0NjI1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiMC4xNDI1LCAwLjEyNSwgMC4xMTI1LCAwLjA5Mzc1LCAwLjA4MTI1LCAwLjA1MjUsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiMC4xNTg3NSwgMC4xNDc1LCAwLjEyODc1LCAwLjExNjI1LCAwLjA5NzUsIDAuMDc1LCAwLjA1Mzc1IiwgXAotICAgICAgICAgICIwLjE3Mzc1LCAwLjE2MjUsIDAuMTUsIDAuMTMxMjUsIDAuMTE4NzUsIDAuMDksIDAuMDY4NzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IFNERkZOU1JYMiAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKFNERkZOU1JYMikgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjQzMTkyOwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIGZmIChOMzUsUUJJTlQpIHsKLSAgICBuZXh0X3N0YXRlIDogIigoU0UgU0kpICsgKCFTRSBEKSkiOwotICAgIGNsb2NrZWRfb24gOiAiKCFDS04pIjsKLSAgICBjbGVhciA6ICIoIVJOKSI7Ci0gICAgcHJlc2V0IDogIighU04pIjsKLSAgICBjbGVhcl9wcmVzZXRfdmFyMSA6IEg7Ci0gICAgY2xlYXJfcHJlc2V0X3ZhcjIgOiBMOwotICB9Ci0gIHBpbihDS04pICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDUzNzQyNTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA1MzcxMzc7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNTM3NDI1OwotICAgIGNsb2NrIDogdHJ1ZTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDUzOTgsIDAuMDA1Mzg1LCAwLjAwNTM3MywgMC4wMDUzNjQsIDAuMDA1MzYxLCAwLjAwNTM2NCwgMC4wMDUzNjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDI2ODEsIDAuMDAyNjcsIDAuMDAyNjYyLCAwLjAwMjY1NSwgMC4wMDI2NTEsIDAuMDAyNjQ2LCAwLjAwMjY0MyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDS04iOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFEJlJOJiFTRSYhU0kmU04iOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1JOX0VRXzFfQU5fU0VfRVFfMF9BTl9TSV9FUV8wX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4yNDY1MDQsIDAuMjU4MzcsIDAuMjczNDcxLCAwLjI4ODUwNSwgMC4zMDQzMDMsIDAuMzI4MjkyLCAwLjM0ODUyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMzI2ODY4LCAwLjMzODQwMiwgMC4zNTMwNDcsIDAuMzY3ODQ3LCAwLjM4MjI2NCwgMC40MDQ0MDgsIDAuNDIyMTk1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihEKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2MDM3MDM7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjAxODM0OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDYwMzcwMzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDI4NiwgMC4wMDI4NSwgMC4wMDI4NDUsIDAuMDAyODQyLCAwLjAwMjgzOSwgMC4wMDI4MzYsIDAuMDAyODM0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA0MTk2LCAwLjAwNDE5MiwgMC4wMDQxOSwgMC4wMDQxODgsIDAuMDA0MTg2LCAwLjAwNDE4NCwgMC4wMDQxODMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0tOIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9mYWxsaW5nOwotICAgICAgd2hlbiA6ICJSTiYhU0UmU04iOwotICAgICAgc2RmX2NvbmQgOiAiUk5fRVFfMV9BTl9TRV9FUV8wX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDM3NSwgLTAuMDI2MjUsIC0wLjAxMzc1LCAtMC4wMDEyNSwgMC4wMDUsIDAuMDIxMjUsIDAuMDM2MjUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMDYyNSwgMC4wMSwgMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjA2MTI1LCAtMC4wNSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAxODc1LCAtMC4wMDI1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjA4LCAtMC4wNjg3NSwgLTAuMDU2MjUsIC0wLjA0Mzc1LCAtMC4wMzEyNSwgLTAuMDE1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDkyNSwgLTAuMDgxMjUsIC0wLjA2ODc1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjAzMzc1LCAtMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMTA4NzUsIC0wLjA5NzUsIC0wLjA5MTI1LCAtMC4wNzg3NSwgLTAuMDY2MjUsIC0wLjA1NjI1LCAtMC4wNDEyNSIsIFwKLSAgICAgICAgICAiLTAuMTMsIC0wLjExODc1LCAtMC4xMDYyNSwgLTAuMDkzNzUsIC0wLjA4NzUsIC0wLjA3MTI1LCAtMC4wNTYyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjEzMTI1LCAtMC4xMiwgLTAuMTEzNzUsIC0wLjEwNzUsIC0wLjEwMTI1LCAtMC4wODUsIC0wLjA3NjI1IiwgXAotICAgICAgICAgICItMC4xNDI1LCAtMC4xMzEyNSwgLTAuMTI1LCAtMC4xMTg3NSwgLTAuMTA2MjUsIC0wLjA5NjI1LCAtMC4wOTM3NSIsIFwKLSAgICAgICAgICAiLTAuMTU1LCAtMC4xNSwgLTAuMTM3NSwgLTAuMTMxMjUsIC0wLjEyNSwgLTAuMTE1LCAtMC4xMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMTY3NSwgLTAuMTU2MjUsIC0wLjE1LCAtMC4xNDM3NSwgLTAuMTM3NSwgLTAuMTI3NSwgLTAuMTE4NzUiLCBcCi0gICAgICAgICAgIi0wLjE4LCAtMC4xNzUsIC0wLjE2MjUsIC0wLjE1NjI1LCAtMC4xNSwgLTAuMTQsIC0wLjEzMTI1IiwgXAotICAgICAgICAgICItMC4yMDI1LCAtMC4xOTEyNSwgLTAuMTg1LCAtMC4xNzI1LCAtMC4xNjYyNSwgLTAuMTU2MjUsIC0wLjE0NzUiLCBcCi0gICAgICAgICAgIi0wLjIxNzUsIC0wLjIwNjI1LCAtMC4yLCAtMC4xOTM3NSwgLTAuMTgxMjUsIC0wLjE3MTI1LCAtMC4xNjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX2ZhbGxpbmc7Ci0gICAgICB3aGVuIDogIlJOJiFTRSZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJSTl9FUV8xX0FOX1NFX0VRXzBfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yNSwgMC4yMzg3NSwgMC4yMjYyNSwgMC4yMDc1LCAwLjE5NSwgMC4xNjYyNSwgMC4xNTEyNSIsIFwKLSAgICAgICAgICAiMC4yNjEyNSwgMC4yNSwgMC4yMzc1LCAwLjIxODc1LCAwLjIwNjI1LCAwLjE4Mzc1LCAwLjE2MjUiLCBcCi0gICAgICAgICAgIjAuMjgsIDAuMjYyNSwgMC4yNSwgMC4yMzEyNSwgMC4yMTg3NSwgMC4xOTYyNSwgMC4xNzUiLCBcCi0gICAgICAgICAgIjAuMjkyNSwgMC4yODEyNSwgMC4yNjI1LCAwLjI1LCAwLjIzMTI1LCAwLjIwODc1LCAwLjE4NzUiLCBcCi0gICAgICAgICAgIjAuMzA1LCAwLjI5Mzc1LCAwLjI3NSwgMC4yNjI1LCAwLjI0Mzc1LCAwLjIyMTI1LCAwLjIwNjI1IiwgXAotICAgICAgICAgICIwLjMyNzUsIDAuMzE2MjUsIDAuMjk3NSwgMC4yODUsIDAuMjY2MjUsIDAuMjQzNzUsIDAuMjIyNSIsIFwKLSAgICAgICAgICAiMC4zNDg3NSwgMC4zMzEyNSwgMC4zMTg3NSwgMC4zLCAwLjI4NzUsIDAuMjY1LCAwLjI0Mzc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMywgMC4yODI1LCAwLjI3LCAwLjI1MTI1LCAwLjIzODc1LCAwLjIxNjI1LCAwLjE5NSIsIFwKLSAgICAgICAgICAiMC4zMTEyNSwgMC4yOTM3NSwgMC4yODEyNSwgMC4yNjI1LCAwLjI1LCAwLjIyNzUsIDAuMjA2MjUiLCBcCi0gICAgICAgICAgIjAuMzIzNzUsIDAuMzEyNSwgMC4yOTM3NSwgMC4yNzUsIDAuMjYyNSwgMC4yNCwgMC4yMTg3NSIsIFwKLSAgICAgICAgICAiMC4zMzYyNSwgMC4zMjUsIDAuMzA2MjUsIDAuMjg3NSwgMC4yNzUsIDAuMjUyNSwgMC4yMzEyNSIsIFwKLSAgICAgICAgICAiMC4zNDg3NSwgMC4zMzc1LCAwLjMxODc1LCAwLjMsIDAuMjg3NSwgMC4yNjUsIDAuMjQzNzUiLCBcCi0gICAgICAgICAgIjAuMzcxMjUsIDAuMzUzNzUsIDAuMzM1LCAwLjMyMjUsIDAuMzAzNzUsIDAuMjgxMjUsIDAuMjY2MjUiLCBcCi0gICAgICAgICAgIjAuMzg2MjUsIDAuMzc1LCAwLjM1NjI1LCAwLjMzNzUsIDAuMzI1LCAwLjMwMjUsIDAuMjgxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFEpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4yNjQzNjc7Ci0gICAgZnVuY3Rpb24gOiAiTjM1IjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDS04iOwotICAgICAgdGltaW5nX3NlbnNlIDogbm9uX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiBmYWxsaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMxNzIwMSwgMC40OTk4NDYsIDAuNjQ1MjM1LCAwLjgyNjA4OSwgMS4wMDY2LCAxLjE4Njg1LCAxLjM2NzQzIiwgXAotICAgICAgICAgICIwLjMyODkxMywgMC41MTE1NjIsIDAuNjU2ODcsIDAuODM3MjExLCAxLjAxNzk0LCAxLjE5ODY3LCAxLjM3OTA3IiwgXAotICAgICAgICAgICIwLjM0MzU3NCwgMC41MjYyMTMsIDAuNjcxNDI3LCAwLjg1MTg5NSwgMS4wMzE2OSwgMS4yMTMxNiwgMS4zOTQiLCBcCi0gICAgICAgICAgIjAuMzU4MzY0LCAwLjU0MTAwNSwgMC42ODYyMDYsIDAuODY2MjQyLCAxLjA0ODQ3LCAxLjIyNzg2LCAxLjQxMDQ5IiwgXAotICAgICAgICAgICIwLjM3MzAyMiwgMC41NTU2NjksIDAuNzAxLCAwLjg4MDc5LCAxLjA2MjA2LCAxLjI0Mjc2LCAxLjQyMjgiLCBcCi0gICAgICAgICAgIjAuMzk1MzU1LCAwLjU3Nzk5OSwgMC43MjMxODIsIDAuOTAzOTQ3LCAxLjA4NDI5LCAxLjI2NDk0LCAxLjQ0Njg5IiwgXAotICAgICAgICAgICIwLjQxMzU3MywgMC41OTYyMTgsIDAuNzQxMzk3LCAwLjkyMTg3MiwgMS4xMDMxNiwgMS4yODMxMiwgMS40NjUzNCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTgzOTcsIDAuNDU5NjE3LCAwLjc1MzQyMSwgMS4xMjY0OSwgMS40OTMzOSwgMS44NjQ1OSwgMi4yMTM2NSIsIFwKLSAgICAgICAgICAiMC4wOTgyNjUsIDAuNDU5NTk5LCAwLjc0NzgzOCwgMS4xMjIxOSwgMS40OTI5LCAxLjg2NDYsIDIuMjQyMDIiLCBcCi0gICAgICAgICAgIjAuMDk4MzEsIDAuNDU5NjA1LCAwLjc1NDM0NCwgMS4xMTY4LCAxLjQ5MTMxLCAxLjg2NDQ3LCAyLjIzNTgiLCBcCi0gICAgICAgICAgIjAuMDk4NTQ4LCAwLjQ1OTYwOSwgMC43NDk1MzQsIDEuMTIyNTksIDEuNDg4MjQsIDEuODY0NjEsIDIuMjE3ODMiLCBcCi0gICAgICAgICAgIjAuMDk4MjY3LCAwLjQ1OTU4NCwgMC43NTA5NDgsIDEuMTIyNjgsIDEuNDkyOTMsIDEuODY0NjcsIDIuMjQyMDMiLCBcCi0gICAgICAgICAgIjAuMDk4NDM2LCAwLjQ1OTYyMSwgMC43NDUwNjMsIDEuMTIyMDMsIDEuNDgzMzEsIDEuODY0NjQsIDIuMjE5NDEiLCBcCi0gICAgICAgICAgIjAuMDk4MzU3LCAwLjQ1OTU5MywgMC43NTI5NDQsIDEuMTIyMjcsIDEuNDgyNDgsIDEuODY0NjksIDIuMjM1NjEiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjgzMzMyLCAwLjQ5MTg0MywgMC42NTY3OTYsIDAuODY0OSwgMS4wNzI2NCwgMS4yODAyOSwgMS40ODc3IiwgXAotICAgICAgICAgICIwLjI5NDg2NywgMC41MDMzNjYsIDAuNjY4MzIyLCAwLjg3NjUxMSwgMS4wODIxMywgMS4yOTE4MiwgMS40OTU2IiwgXAotICAgICAgICAgICIwLjMwOTUwMSwgMC41MTgwMTUsIDAuNjgyOTY4LCAwLjg5MDIxMywgMS4wOTczMiwgMS4zMDY0NiwgMS41MTQwOCIsIFwKLSAgICAgICAgICAiMC4zMjQzLCAwLjUzMjgxNSwgMC42OTc3NjksIDAuOTA0OTU3LCAxLjExMTk3LCAxLjMyMTI2LCAxLjUyODg4IiwgXAotICAgICAgICAgICIwLjMzODcyLCAwLjU0NzIzNCwgMC43MTIxODcsIDAuOTE5NDcyLCAxLjEyNjYzLCAxLjMzNTY4LCAxLjU0MzI3IiwgXAotICAgICAgICAgICIwLjM2MDg2LCAwLjU2OTM3MywgMC43MzQzMjUsIDAuOTQxNTI0LCAxLjE0ODUxLCAxLjM1NzgyLCAxLjU2NTQzIiwgXAotICAgICAgICAgICIwLjM3ODY1MSwgMC41ODcxNjUsIDAuNzUyMTE2LCAwLjk1OTM3OCwgMS4xNjY0NywgMS4zNzU2MSwgMS41ODMxNyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDUzOTcsIDAuNTA4Mzk1LCAwLjgzNTM1NSwgMS4yNDg5NiwgMS42NjEyMSwgMi4wNzMxMSwgMi40ODU0MyIsIFwKLSAgICAgICAgICAiMC4xMDUyMzUsIDAuNTA4Mzg1LCAwLjgzNTI2LCAxLjI0OTM3LCAxLjY1OTk2LCAyLjA3MzExLCAyLjQ4NDMxIiwgXAotICAgICAgICAgICIwLjEwNTI4OSwgMC41MDgzOTgsIDAuODM1OTAyLCAxLjI0OTQzLCAxLjY2MTI1LCAyLjA3MzExLCAyLjQ4NDkiLCBcCi0gICAgICAgICAgIjAuMTA1MTU2LCAwLjUwODM5OCwgMC44MzU5MjEsIDEuMjQ5NjgsIDEuNjYyMDQsIDIuMDczMTEsIDIuNDg0OSIsIFwKLSAgICAgICAgICAiMC4xMDU1MTgsIDAuNTA4Mzk3LCAwLjgzNTczNywgMS4yNDkzMSwgMS42NjA5MSwgMi4wNzMxMSwgMi40ODQ5OSIsIFwKLSAgICAgICAgICAiMC4xMDQ5MjksIDAuNTA4NCwgMC44MzU3ODgsIDEuMjQ5NjQsIDEuNjYyMTQsIDIuMDczMTEsIDIuNDg0OTEiLCBcCi0gICAgICAgICAgIjAuMTA1NDcxLCAwLjUwODM5OSwgMC44MzU0NjUsIDEuMjQ5MzksIDEuNjYxMTgsIDIuMDczMTEsIDIuNDg1MDQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUk4iOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGNsZWFyOwotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC40MDgxMDksIDAuNjE2NTY3LCAwLjc4MTU1NywgMC45ODk2NzMsIDEuMTk3MjcsIDEuNDA0ODksIDEuNjA5MjIiLCBcCi0gICAgICAgICAgIjAuNDE5ODAzLCAwLjYyODEyNywgMC43OTMwNTMsIDEuMDAwMDEsIDEuMjA4NzYsIDEuNDE2MzgsIDEuNjIwNjgiLCBcCi0gICAgICAgICAgIjAuNDM0Njc0LCAwLjY0Mjk5NiwgMC44MDc5MjMsIDEuMDE2MDQsIDEuMjIzNjMsIDEuNDMxMjUsIDEuNjM1NTgiLCBcCi0gICAgICAgICAgIjAuNDQ5MzQ1LCAwLjY1NzI3LCAwLjgyMjU4NSwgMS4wMjkxNSwgMS4yMzY3NSwgMS40NDU4OCwgMS42NTMyIiwgXAotICAgICAgICAgICIwLjQ2MzQ0OSwgMC42NzE3NjYsIDAuODM2Njk0LCAxLjA0NDgyLCAxLjI0OTgyLCAxLjQ2LCAxLjY2NTAzIiwgXAotICAgICAgICAgICIwLjQ4NTc4NSwgMC42OTQxMTYsIDAuODU5MDQxLCAxLjA2NzE2LCAxLjI3NDc1LCAxLjQ4MjM3LCAxLjY4NjU2IiwgXAotICAgICAgICAgICIwLjUwMzA4OSwgMC43MTE0MjIsIDAuODc2MzQ4LCAxLjA4NDQ2LCAxLjI5MjA2LCAxLjQ5OTY4LCAxLjcwMzc0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwNTIyMiwgMC41MDg0MjgsIDAuODM1ODM3LCAxLjI0OTMxLCAxLjY2MTUsIDIuMDczNSwgMi40ODU5NyIsIFwKLSAgICAgICAgICAiMC4xMDUxMjMsIDAuNTA4NDAxLCAwLjgzNjIxMSwgMS4yNDkxLCAxLjY2MTUsIDIuMDczNDgsIDIuNDg2MzYiLCBcCi0gICAgICAgICAgIjAuMTA1MjE4LCAwLjUwODM1NywgMC44MzY1NjUsIDEuMjQ5MzMsIDEuNjYxNTIsIDIuMDczNjcsIDIuNDg1OTMiLCBcCi0gICAgICAgICAgIjAuMTA1NTgyLCAwLjUwODQwNSwgMC44MzU5ODMsIDEuMjQ5MzUsIDEuNjYyMSwgMi4wNzM1NCwgMi40ODU5OSIsIFwKLSAgICAgICAgICAiMC4xMDUzMTYsIDAuNTA4NDA4LCAwLjgzNTkxMSwgMS4yNDk0LCAxLjY2MjAzLCAyLjA3MzQ2LCAyLjQ4NTk3IiwgXAotICAgICAgICAgICIwLjEwNTY2NywgMC41MDgzNDUsIDAuODM1OTU4LCAxLjI0OTI3LCAxLjY2MTQ4LCAyLjA3MzUxLCAyLjQ4NTkzIiwgXAotICAgICAgICAgICIwLjEwNTYzNiwgMC41MDg0MTUsIDAuODM1NzQ5LCAxLjI0OTQ4LCAxLjY2MTQ3LCAyLjA3MzQ1LCAyLjQ4NTc4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiBwcmVzZXQ7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI0OTk4NCwgMC40MzIyODQsIDAuNTc3MTg3LCAwLjc1Nzg3MiwgMC45Mzc3ODksIDEuMTE4NjUsIDEuMjk5NTUiLCBcCi0gICAgICAgICAgIjAuMjYxNjEyLCAwLjQ0Mzg2NCwgMC41ODg4MzIsIDAuNzY5NDUxLCAwLjk0OTM5NSwgMS4xMzEwMywgMS4zMTEwMiIsIFwKLSAgICAgICAgICAiMC4yNzYxNDksIDAuNDU4NzcsIDAuNjAyOTA2LCAwLjc4Mzk2OCwgMC45NjQyMTIsIDEuMTQ1MjMsIDEuMzI1NjUiLCBcCi0gICAgICAgICAgIjAuMjg5NzI1LCAwLjQ3MjE2NywgMC42MTY0NjEsIDAuNzk3NTk2LCAwLjk3NzU0MSwgMS4xNTg0OCwgMS4zMzkyNCIsIFwKLSAgICAgICAgICAiMC4zMDI4MDksIDAuNDg1MDQ4LCAwLjYyOTcxMSwgMC44MTEwODcsIDAuOTkyMDM2LCAxLjE3MTQ5LCAxLjM1MzcyIiwgXAotICAgICAgICAgICIwLjMyNTI4NiwgMC41MDc3OTYsIDAuNjUyNDYyLCAwLjgzMjM2NCwgMS4wMTMzMywgMS4xOTM4NiwgMS4zNzUyOCIsIFwKLSAgICAgICAgICAiMC4zNDU1OTksIDAuNTI3NDA3LCAwLjY3MzI4MiwgMC44NTI1OTQsIDEuMDMzMzUsIDEuMjE0NjUsIDEuMzk1MTYiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk2OTYyLCAwLjQ2MDU4NywgMC43NTY3NywgMS4xMjg5MSwgMS41MDAxOSwgMS44NzEwOSwgMi4yNDE4OSIsIFwKLSAgICAgICAgICAiMC4wOTY5NjYsIDAuNDYwNDI1LCAwLjc1NjI4MSwgMS4xMjg5MiwgMS41MDAxNiwgMS44NzExNSwgMi4yNDIxIiwgXAotICAgICAgICAgICIwLjA5NjYzNSwgMC40NjA3MTMsIDAuNzU2MDM1LCAxLjEyODkzLCAxLjUwMDE2LCAxLjg3MTEzLCAyLjI0MjA5IiwgXAotICAgICAgICAgICIwLjA5Njk2MSwgMC40NTk5LCAwLjc1NDExNCwgMS4xMjg5MiwgMS41MDAxNiwgMS44NzExNCwgMi4yNDIwOSIsIFwKLSAgICAgICAgICAiMC4wOTcwMDQsIDAuNDU5MTMzLCAwLjc1Mjg3MSwgMS4xMjg5LCAxLjUwMDEzLCAxLjg3MTI4LCAyLjI0MTg1IiwgXAotICAgICAgICAgICIwLjA5NzAxNSwgMC40NjA0MzUsIDAuNzU0OTcyLCAxLjEyODk2LCAxLjUwMDE4LCAxLjg3MTExLCAyLjI0MTkzIiwgXAotICAgICAgICAgICIwLjA5NzAyNiwgMC40NjA0MjEsIDAuNzU0ODEsIDEuMTI5MDIsIDEuNTAwMTksIDEuODcxMTMsIDIuMjQxOSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zNzY4MTUsIDAuNTg0NzU4LCAwLjc1MDM4OSwgMC45NTgyODIsIDEuMTY1OTksIDEuMzczNDgsIDEuNTgxMDEiLCBcCi0gICAgICAgICAgIjAuMzg4ODIzLCAwLjU5NzE3OCwgMC43NjIxNDcsIDAuOTcwMzEyLCAxLjE3NzkzLCAxLjM4NTU4LCAxLjU5MDIiLCBcCi0gICAgICAgICAgIjAuNDAzNjkzLCAwLjYxMjA1MywgMC43NzcwMiwgMC45ODUxOCwgMS4xOTI4LCAxLjQwMDQ1LCAxLjYwNDc1IiwgXAotICAgICAgICAgICIwLjQxNzg5MywgMC42MjYyMjMsIDAuNzkxMTk2LCAwLjk5ODUyNywgMS4yMDcwNiwgMS40MTQ1NiwgMS42MjE3NCIsIFwKLSAgICAgICAgICAiMC40MzE3OTgsIDAuNjQwMTYxLCAwLjgwNTEyNiwgMS4wMTMyOCwgMS4yMjA5MSwgMS40Mjg1NSwgMS42MzI1NSIsIFwKLSAgICAgICAgICAiMC40NTM2ODQsIDAuNjYyMDU0LCAwLjgyNzAyLCAxLjAzNTE3LCAxLjI0MjgsIDEuNDUwNDQsIDEuNjU0MDciLCBcCi0gICAgICAgICAgIjAuNDcyODc4LCAwLjY4MTI2OSwgMC44NDYxMiwgMS4wNTQzNiwgMS4yNjIwNywgMS40NjYwMywgMS42NzcwNSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDU2MzksIDAuNTA4MzMzLCAwLjgzNjg5NCwgMS4yNDkzLCAxLjY2MTMyLCAyLjA3MzYyLCAyLjQ4NTk4IiwgXAotICAgICAgICAgICIwLjEwNTU1LCAwLjUwODM0OSwgMC44MzU3OTgsIDEuMjQ5MzEsIDEuNjYxNTEsIDIuMDczNTIsIDIuNDg2MDUiLCBcCi0gICAgICAgICAgIjAuMTA1Mjg4LCAwLjUwODM0NiwgMC44MzYwNDEsIDEuMjQ5MjgsIDEuNjYxNDgsIDIuMDczNDksIDIuNDg1OTYiLCBcCi0gICAgICAgICAgIjAuMTA1MTMzLCAwLjUwODM1OCwgMC44MzU5OTcsIDEuMjQ5MjEsIDEuNjYxMzIsIDIuMDczNDksIDIuNDg2IiwgXAotICAgICAgICAgICIwLjEwNTI0MiwgMC41MDgzNDIsIDAuODM1NzU2LCAxLjI0OTI2LCAxLjY2MTQ2LCAyLjA3MzYsIDIuNDg1OSIsIFwKLSAgICAgICAgICAiMC4xMDU1ODIsIDAuNTA4MzQ0LCAwLjgzNTk3MywgMS4yNDkyNiwgMS42NjE0NSwgMi4wNzM0NSwgMi40ODU5OSIsIFwKLSAgICAgICAgICAiMC4xMDU0MTMsIDAuNTA4NDEyLCAwLjgzNjA1NCwgMS4yNDkzMiwgMS42NjEyMiwgMi4wNzM0NCwgMi40ODU4MSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0NjY4LCAwLjAwNDcwOSwgMC4wMDQ3MTQsIDAuMDA0NzE2LCAwLjAwNDcxOCwgMC4wMDQ3MTgsIDAuMDA0NzE5IiwgXAotICAgICAgICAgICIwLjAwNDY2MywgMC4wMDQ3MDQsIDAuMDA0NzA5LCAwLjAwNDcxMiwgMC4wMDQ3MTIsIDAuMDA0NzEzLCAwLjAwNDcxMyIsIFwKLSAgICAgICAgICAiMC4wMDQ2NTgsIDAuMDA0Njk5LCAwLjAwNDcwNCwgMC4wMDQ3MDYsIDAuMDA0NzA4LCAwLjAwNDcwOCwgMC4wMDQ3MDgiLCBcCi0gICAgICAgICAgIjAuMDA0NjU1LCAwLjAwNDY5NiwgMC4wMDQ3MDEsIDAuMDA0NzAzLCAwLjAwNDcwNCwgMC4wMDQ3MDUsIDAuMDA0NzA2IiwgXAotICAgICAgICAgICIwLjAwNDY1NCwgMC4wMDQ2OTUsIDAuMDA0NywgMC4wMDQ3MDIsIDAuMDA0NzA0LCAwLjAwNDcwNCwgMC4wMDQ3MDQiLCBcCi0gICAgICAgICAgIjAuMDA0NjU1LCAwLjAwNDY5NiwgMC4wMDQ3MDEsIDAuMDA0NzAzLCAwLjAwNDcwNSwgMC4wMDQ3MDUsIDAuMDA0NzA2IiwgXAotICAgICAgICAgICIwLjAwNDY1NSwgMC4wMDQ2OTYsIDAuMDA0NzAxLCAwLjAwNDcwMywgMC4wMDQ3MDQsIDAuMDA0NzA1LCAwLjAwNDcwNSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDM4LCAwLjAwNDQyMiwgMC4wMDQ0MjcsIDAuMDA0NDMsIDAuMDA0NDMxLCAwLjAwNDQzMSwgMC4wMDQ0MzIiLCBcCi0gICAgICAgICAgIjAuMDA0Mzc0LCAwLjAwNDQxNiwgMC4wMDQ0MjEsIDAuMDA0NDI0LCAwLjAwNDQyNiwgMC4wMDQ0MjYsIDAuMDA0NDI3IiwgXAotICAgICAgICAgICIwLjAwNDM2OSwgMC4wMDQ0MTEsIDAuMDA0NDE2LCAwLjAwNDQxOCwgMC4wMDQ0MiwgMC4wMDQ0MiwgMC4wMDQ0MjEiLCBcCi0gICAgICAgICAgIjAuMDA0MzY0LCAwLjAwNDQwNiwgMC4wMDQ0MTEsIDAuMDA0NDE0LCAwLjAwNDQxNSwgMC4wMDQ0MTUsIDAuMDA0NDE2IiwgXAotICAgICAgICAgICIwLjAwNDM2MSwgMC4wMDQ0MDMsIDAuMDA0NDA3LCAwLjAwNDQxLCAwLjAwNDQxMSwgMC4wMDQ0MTIsIDAuMDA0NDEyIiwgXAotICAgICAgICAgICIwLjAwNDM1NywgMC4wMDQzOTksIDAuMDA0NDA0LCAwLjAwNDQwNiwgMC4wMDQ0MDgsIDAuMDA0NDA4LCAwLjAwNDQwOSIsIFwKLSAgICAgICAgICAiMC4wMDQzNTMsIDAuMDA0Mzk1LCAwLjAwNDQsIDAuMDA0NDAyLCAwLjAwNDQwNCwgMC4wMDQ0MDQsIDAuMDA0NDA1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUk4iOwotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNTQzNywgMC4wMDU0NzgsIDAuMDA1NDgsIDAuMDA1NDgsIDAuMDA1NDc4LCAwLjAwNTQ3NywgMC4wMDU0NzciLCBcCi0gICAgICAgICAgIjAuMDA1NDMzLCAwLjAwNTQ3MywgMC4wMDU0NzUsIDAuMDA1NDc0LCAwLjAwNTQ3MywgMC4wMDU0NzMsIDAuMDA1NDczIiwgXAotICAgICAgICAgICIwLjAwNTQyOSwgMC4wMDU0NjksIDAuMDA1NDcyLCAwLjAwNTQ3MSwgMC4wMDU0NywgMC4wMDU0NjksIDAuMDA1NDY5IiwgXAotICAgICAgICAgICIwLjAwNTQyNSwgMC4wMDU0NjYsIDAuMDA1NDY4LCAwLjAwNTQ2NywgMC4wMDU0NjYsIDAuMDA1NDY1LCAwLjAwNTQ2NiIsIFwKLSAgICAgICAgICAiMC4wMDU0MjMsIDAuMDA1NDYzLCAwLjAwNTQ2NiwgMC4wMDU0NjYsIDAuMDA1NDY0LCAwLjAwNTQ2MywgMC4wMDU0NjIiLCBcCi0gICAgICAgICAgIjAuMDA1NDIyLCAwLjAwNTQ2MiwgMC4wMDU0NjQsIDAuMDA1NDYzLCAwLjAwNTQ2MiwgMC4wMDU0NjIsIDAuMDA1NDYxIiwgXAotICAgICAgICAgICIwLjAwNTQxOSwgMC4wMDU0NiwgMC4wMDU0NjIsIDAuMDA1NDYxLCAwLjAwNTQ2LCAwLjAwNTQ1OSwgMC4wMDU0NTkiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfcG93ZXIoc2NhbGFyKSB7Ci0gICAgICAgIHZhbHVlcygiMCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQ4OSwgMC4wMDQ5MjgsIDAuMDA0OTMxLCAwLjAwNDkzMywgMC4wMDQ5MzQsIDAuMDA0OTM1LCAwLjAwNDkzNSIsIFwKLSAgICAgICAgICAiMC4wMDQ4ODQsIDAuMDA0OTIxLCAwLjAwNDkyNSwgMC4wMDQ5MjcsIDAuMDA0OTI3LCAwLjAwNDkyOCwgMC4wMDQ5MjkiLCBcCi0gICAgICAgICAgIjAuMDA0ODc5LCAwLjAwNDkxNywgMC4wMDQ5MjEsIDAuMDA0OTIyLCAwLjAwNDkyMywgMC4wMDQ5MjQsIDAuMDA0OTI1IiwgXAotICAgICAgICAgICIwLjAwNDg3NywgMC4wMDQ5MTQsIDAuMDA0OTE4LCAwLjAwNDkyMSwgMC4wMDQ5MiwgMC4wMDQ5MjIsIDAuMDA0OTIyIiwgXAotICAgICAgICAgICIwLjAwNDg3NCwgMC4wMDQ5MTIsIDAuMDA0OTE2LCAwLjAwNDkxOCwgMC4wMDQ5MTgsIDAuMDA0OTE5LCAwLjAwNDkyIiwgXAotICAgICAgICAgICIwLjAwNDg3MiwgMC4wMDQ5MDksIDAuMDA0OTEzLCAwLjAwNDkxNSwgMC4wMDQ5MTUsIDAuMDA0OTE2LCAwLjAwNDkxNyIsIFwKLSAgICAgICAgICAiMC4wMDQ4NywgMC4wMDQ5MDcsIDAuMDA0OTExLCAwLjAwNDkxMiwgMC4wMDQ5MTQsIDAuMDA0OTE0LCAwLjAwNDkxNSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDMwNywgMC4wMDQzNSwgMC4wMDQzNTUsIDAuMDA0MzU5LCAwLjAwNDM1OSwgMC4wMDQzNiwgMC4wMDQzNjEiLCBcCi0gICAgICAgICAgIjAuMDA0MzAxLCAwLjAwNDM0NCwgMC4wMDQzNDksIDAuMDA0MzUyLCAwLjAwNDM1MiwgMC4wMDQzNTMsIDAuMDA0MzUzIiwgXAotICAgICAgICAgICIwLjAwNDI5NiwgMC4wMDQzMzksIDAuMDA0MzQ0LCAwLjAwNDM0NywgMC4wMDQzNDcsIDAuMDA0MzQ4LCAwLjAwNDM0OSIsIFwKLSAgICAgICAgICAiMC4wMDQyOTMsIDAuMDA0MzM1LCAwLjAwNDM0MSwgMC4wMDQzNDQsIDAuMDA0MzQ0LCAwLjAwNDM0NSwgMC4wMDQzNDciLCBcCi0gICAgICAgICAgIjAuMDA0MjksIDAuMDA0MzMzLCAwLjAwNDMzOCwgMC4wMDQzNDEsIDAuMDA0MzQyLCAwLjAwNDM0MiwgMC4wMDQzNDMiLCBcCi0gICAgICAgICAgIjAuMDA0Mjg3LCAwLjAwNDMzLCAwLjAwNDMzNSwgMC4wMDQzMzgsIDAuMDA0MzM4LCAwLjAwNDMzOSwgMC4wMDQzNCIsIFwKLSAgICAgICAgICAiMC4wMDQyODUsIDAuMDA0MzI3LCAwLjAwNDMzMywgMC4wMDQzMzUsIDAuMDA0MzM2LCAwLjAwNDMzNywgMC4wMDQzMzgiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFFOKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMjU4MTQ5OwotICAgIGZ1bmN0aW9uIDogIlFCSU5UIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDS04iOwotICAgICAgdGltaW5nX3NlbnNlIDogbm9uX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiBmYWxsaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMyNjg2OCwgMC41MDcwNzEsIDAuNjUxNTgzLCAwLjgzMjIyMywgMS4wMTI5NCwgMS4xOTM2OCwgMS4zNzQ1IiwgXAotICAgICAgICAgICIwLjMzODQwMiwgMC41MTg1OTUsIDAuNjYzMTUxLCAwLjg0MzgzNCwgMS4wMjQ1NCwgMS4yMDUyMSwgMS4zODU5OSIsIFwKLSAgICAgICAgICAiMC4zNTMwNDcsIDAuNTMzMjQzLCAwLjY3Nzc1MywgMC44NTg0MDIsIDEuMDM5MTIsIDEuMjE5ODUsIDEuNDAwNTkiLCBcCi0gICAgICAgICAgIjAuMzY3ODQ3LCAwLjU0ODA0NCwgMC42OTI1NTQsIDAuODczMjA0LCAxLjA1MzkzLCAxLjIzNDY1LCAxLjQxNTM5IiwgXAotICAgICAgICAgICIwLjM4MjI2NCwgMC41NjI0NjIsIDAuNzA2OTczLCAwLjg4NzYyLCAxLjA2ODM0LCAxLjI0OTA3LCAxLjQyOTgxIiwgXAotICAgICAgICAgICIwLjQwNDQwOCwgMC41ODQ2MDQsIDAuNzI5MTE0LCAwLjkwOTc2NCwgMS4wOTA0OSwgMS4yNzEyMSwgMS40NTE5NSIsIFwKLSAgICAgICAgICAiMC40MjIxOTUsIDAuNjAyMzkxLCAwLjc0NjkwMywgMC45Mjc1NDksIDEuMTA4MjcsIDEuMjg5LCAxLjQ2OTc0Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5MDcyNiwgMC40NTU4OTksIDAuNzQ5ODg5LCAxLjEyMTIsIDEuNDkxMDYsIDEuODYwOTUsIDIuMjMxMDYiLCBcCi0gICAgICAgICAgIjAuMDkwNzEzLCAwLjQ1NTg5MywgMC43NDk3MDksIDEuMTIxNTMsIDEuNDg4NzgsIDEuODYwOTUsIDIuMjI3MzEiLCBcCi0gICAgICAgICAgIjAuMDkwNzIxLCAwLjQ1NTksIDAuNzQ5ODk1LCAxLjEyMTAxLCAxLjQ5MDcxLCAxLjg2MDk1LCAyLjIzMDgxIiwgXAotICAgICAgICAgICIwLjA5MDcxOSwgMC40NTU5MDEsIDAuNzQ5ODk2LCAxLjEyMDY1LCAxLjQ5MDUzLCAxLjg2MDk1LCAyLjIzMDgxIiwgXAotICAgICAgICAgICIwLjA5MDczMywgMC40NTU5LCAwLjc0OTg4OSwgMS4xMjA5OSwgMS40OTA2OSwgMS44NjA5NCwgMi4yMzA4MSIsIFwKLSAgICAgICAgICAiMC4wOTA3MTQsIDAuNDU1OTAxLCAwLjc0OTg4OSwgMS4xMjA2MSwgMS40OTAzMywgMS44NjA5NSwgMi4yMzA4IiwgXAotICAgICAgICAgICIwLjA5MDcyMiwgMC40NTU5MDEsIDAuNzQ5ODg1LCAxLjEyMSwgMS40OTA3MSwgMS44NjA5NSwgMi4yMzA3OCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zNjcxNDMsIDAuNTczMjM5LCAwLjczODU0MiwgMC45NDUwNjgsIDEuMTUxNjksIDEuMzU4MjMsIDEuNTY0ODMiLCBcCi0gICAgICAgICAgIjAuMzc4ODYzLCAwLjU4NDk1OSwgMC43NTAyNTgsIDAuOTU2Nzk1LCAxLjE2MzM3LCAxLjM2OTk2LCAxLjU3NjU0IiwgXAotICAgICAgICAgICIwLjM5MzUzNiwgMC41OTk2MzEsIDAuNzY0ODc2LCAwLjk3MTQyMSwgMS4xNzgwMiwgMS4zODQ2MSwgMS41OTEyMiIsIFwKLSAgICAgICAgICAiMC40MDgzMSwgMC42MTQ0MDYsIDAuNzc5NjU2LCAwLjk4NjIwOSwgMS4xOTI5LCAxLjM5OTM4LCAxLjYwNjE1IiwgXAotICAgICAgICAgICIwLjQyMjk3MiwgMC42MjkwNjksIDAuNzk0MzY5LCAxLjAwMDg3LCAxLjIwNzQ4LCAxLjQxNDA3LCAxLjYyMDYyIiwgXAotICAgICAgICAgICIwLjQ0NTI5OSwgMC42NTEzOTUsIDAuODE2NjQ5LCAxLjAyMzI1LCAxLjIyOTgxLCAxLjQzNjM4LCAxLjY0MzA1IiwgXAotICAgICAgICAgICIwLjQ2MzUyMSwgMC42Njk2MjIsIDAuODM0ODc3LCAxLjA0MTQ2LCAxLjI0ODA2LCAxLjQ1NDYsIDEuNjYxMyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTg2MTgsIDAuNTA2MDMzLCAwLjgzNDU3MywgMS4yNDU4NywgMS42NTc5LCAyLjA2OTE2LCAyLjQ3OTA0IiwgXAotICAgICAgICAgICIwLjA5ODYwOCwgMC41MDYwMzIsIDAuODM0Mzg5LCAxLjI0NjU5LCAxLjY1Nzk3LCAyLjA2OTE4LCAyLjQ3OTczIiwgXAotICAgICAgICAgICIwLjA5ODYxNiwgMC41MDYwMzMsIDAuODM0NjU2LCAxLjI0NTc4LCAxLjY1NzExLCAyLjA2OTE2LCAyLjQ4MDQyIiwgXAotICAgICAgICAgICIwLjA5ODYyMywgMC41MDYwMzIsIDAuODM0NDg5LCAxLjI0NjQ5LCAxLjY1NjQ3LCAyLjA2OTEzLCAyLjQ3ODI5IiwgXAotICAgICAgICAgICIwLjA5ODYwNSwgMC41MDU5NzUsIDAuODM0NDc0LCAxLjI0NjQsIDEuNjU3ODksIDIuMDY5MTYsIDIuNDc5NjYiLCBcCi0gICAgICAgICAgIjAuMDk4NjE5LCAwLjUwNjAzNCwgMC44MzQzNjEsIDEuMjQ2NTgsIDEuNjU2OTIsIDIuMDY5MTQsIDIuNDc4NjYiLCBcCi0gICAgICAgICAgIjAuMDk4NjEyLCAwLjUwNTk3NiwgMC44MzQwNjgsIDEuMjQ2NTIsIDEuNjU2NywgMi4wNjkxMiwgMi40Nzc1NiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcHJlc2V0OwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC40NTE1OTUsIDAuNjMxODY5LCAwLjc3NjU1MywgMC45NTcxOTQsIDEuMTM3OTcsIDEuMzE4NTksIDEuNDk5MzIiLCBcCi0gICAgICAgICAgIjAuNDYzMzE1LCAwLjY0MzUwMSwgMC43ODgwNDksIDAuOTY4NTM1LCAxLjE0OTQ3LCAxLjMzMDA4LCAxLjUxMDgyIiwgXAotICAgICAgICAgICIwLjQ3ODE5LCAwLjY1ODM3NCwgMC44MDI5MjQsIDAuOTgzNTY4LCAxLjE2NDM0LCAxLjM0NDk2LCAxLjUyNTY5IiwgXAotICAgICAgICAgICIwLjQ5MjgzOSwgMC42NzI5NjksIDAuODE3NTg4LCAwLjk5ODMyMSwgMS4xNzg5NCwgMS4zNTk2MiwgMS41NDAzNSIsIFwKLSAgICAgICAgICAiMC41MDY5NTIsIDAuNjg3MTQzLCAwLjgzMTY5NCwgMS4wMTIzNSwgMS4xOTMyLCAxLjM3MzczLCAxLjU1NDQ1IiwgXAotICAgICAgICAgICIwLjUyOTI5OSwgMC43MDk0ODcsIDAuODU0MDMzLCAxLjAzNDY3LCAxLjIxNTQ0LCAxLjM5NjA3LCAxLjU3NjgxIiwgXAotICAgICAgICAgICIwLjU0NjYsIDAuNzI2NzkxLCAwLjg3MTMzOCwgMS4wNTE5NywgMS4yMzI3NCwgMS40MTMzNywgMS41OTQxMiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTA4MjUsIDAuNDU1OTM2LCAwLjc0OTg2OSwgMS4xMjE0OCwgMS40OTE1NywgMS44NjEwMSwgMi4yMzA0IiwgXAotICAgICAgICAgICIwLjA5MDc5NywgMC40NTU5MzgsIDAuNzUxNDQzLCAxLjEyMTMsIDEuNDkxNTcsIDEuODYxMDEsIDIuMjMxMjgiLCBcCi0gICAgICAgICAgIjAuMDkwNzg1LCAwLjQ1NTk0MiwgMC43NTE1MjIsIDEuMTIxNDksIDEuNDkxNTksIDEuODYxMDEsIDIuMjMwNTMiLCBcCi0gICAgICAgICAgIjAuMDkwNzg4LCAwLjQ1NTkyOCwgMC43NDk5MDEsIDEuMTIwODcsIDEuNDkwNzksIDEuODYxMDQsIDIuMjMwODciLCBcCi0gICAgICAgICAgIjAuMDkwODAzLCAwLjQ1NTkyNSwgMC43NDk4MjEsIDEuMTIxNTcsIDEuNDkxMDgsIDEuODYxMDIsIDIuMjMwNDgiLCBcCi0gICAgICAgICAgIjAuMDkwNzkzLCAwLjQ1NTkzNiwgMC43NDk4OTQsIDEuMTIxNDQsIDEuNDkxNSwgMS44NjEsIDIuMjMxMTMiLCBcCi0gICAgICAgICAgIjAuMDkwNzg2LCAwLjQ1NTkzNSwgMC43NDk2NzcsIDEuMTIxNDMsIDEuNDkxNDgsIDEuODYwOTksIDIuMjMwNzkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiU04iOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGNsZWFyOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC40MjAyNzcsIDAuNjAwNDQ3LCAwLjc0NTAxLCAwLjkyNTY5NCwgMS4xMDY0LCAxLjI4NzEyLCAxLjQ2NzgyIiwgXAotICAgICAgICAgICIwLjQzMjMzNCwgMC42MTI1MjMsIDAuNzU3MDcsIDAuOTM3NzEyLCAxLjExODUsIDEuMjk5MSwgMS40Nzk4NCIsIFwKLSAgICAgICAgICAiMC40NDcyMDcsIDAuNjI3Mzk2LCAwLjc3MTk0MywgMC45NTI1OCwgMS4xMzMzNSwgMS4zMTM5OCwgMS40OTQ3MSIsIFwKLSAgICAgICAgICAiMC40NjEzODEsIDAuNjQxNTcsIDAuNzg2MTI1LCAwLjk2Njc1MywgMS4xNDc0NiwgMS4zMjgxNiwgMS41MDg5NiIsIFwKLSAgICAgICAgICAiMC40NzUzMDksIDAuNjU1NTAzLCAwLjgwMDA0OSwgMC45ODA2ODEsIDEuMTYxNDQsIDEuMzQyMDgsIDEuNTIyODMiLCBcCi0gICAgICAgICAgIjAuNDk3MiwgMC42NzczOTUsIDAuODIxOTQzLCAxLjAwMjU3LCAxLjE4MzMzLCAxLjM2Mzk3LCAxLjU0NDczIiwgXAotICAgICAgICAgICIwLjUxNjM2MiwgMC42OTY2MTEsIDAuODQxMDA4LCAxLjAyMTc4LCAxLjIwMjQ5LCAxLjM4MzM5LCAxLjU2MzkiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDkwODAxLCAwLjQ1NTkwOSwgMC43NTE2MjIsIDEuMTIxNDYsIDEuNDkxMzIsIDEuODYxMTMsIDIuMjMwODYiLCBcCi0gICAgICAgICAgIjAuMDkwNzkyLCAwLjQ1NTkzNywgMC43NDk2NzUsIDEuMTIxNDcsIDEuNDkxNiwgMS44NjEwMiwgMi4yMzA1MyIsIFwKLSAgICAgICAgICAiMC4wOTA3OTMsIDAuNDU1OTM2LCAwLjc0OTg0OCwgMS4xMjE0NSwgMS40OTE1MiwgMS44NjEsIDIuMjMwNCIsIFwKLSAgICAgICAgICAiMC4wOTA3NDgsIDAuNDU1OTQsIDAuNzQ5OTA2LCAxLjEyMTMzLCAxLjQ5MTMsIDEuODYxMDQsIDIuMjMxMjQiLCBcCi0gICAgICAgICAgIjAuMDkwNzg5LCAwLjQ1NTkzNSwgMC43NDk4NDMsIDEuMTIxNDIsIDEuNDkxNDUsIDEuODYwOTksIDIuMjMwMzMiLCBcCi0gICAgICAgICAgIjAuMDkwODEzLCAwLjQ1NTkzNSwgMC43NDk5MDgsIDEuMTIxNDIsIDEuNDkxNDIsIDEuODYwOTgsIDIuMjMwNDIiLCBcCi0gICAgICAgICAgIjAuMDkwNzY3LCAwLjQ1NTk0NiwgMC43NDk4MzIsIDEuMTIxNDQsIDEuNDkxMjksIDEuODYwNTQsIDIuMjMwNzkiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjk5OTcyLCAwLjUwNjE4MywgMC42NzEzNzMsIDAuODc3OTQ3LCAxLjA4NDQ5LCAxLjI5MTA4LCAxLjQ5NzY3IiwgXAotICAgICAgICAgICIwLjMxMTU5NCwgMC41MTc3OTQsIDAuNjgyOTk1LCAwLjg4OTU1OSwgMS4wOTYxLCAxLjMwMjcxLCAxLjUwOTI3IiwgXAotICAgICAgICAgICIwLjMyNjEzMywgMC41MzIzNDMsIDAuNjk3NTE4LCAwLjkwNDA5NiwgMS4xMTA2NCwgMS4zMTcyNCwgMS41MjM4MSIsIFwKLSAgICAgICAgICAiMC4zMzk3MTEsIDAuNTQ1OTM3LCAwLjcxMTEyNywgMC45MTc2OTMsIDEuMTI0MjQsIDEuMzMwOCwgMS41Mzc0MSIsIFwKLSAgICAgICAgICAiMC4zNTI3NzcsIDAuNTU4OTExLCAwLjcyNDE3MiwgMC45MzA3NDgsIDEuMTM3MjgsIDEuMzQzODYsIDEuNTUwNDkiLCBcCi0gICAgICAgICAgIjAuMzc1Mjg0LCAwLjU4MTQ0MiwgMC43NDY3MzQsIDAuOTUzMjQsIDEuMTU5ODMsIDEuMzY2MzksIDEuNTczMDMiLCBcCi0gICAgICAgICAgIjAuMzk1NjI5LCAwLjYwMTgyMywgMC43NjcwNjUsIDAuOTczNTg1LCAxLjE4MDE2LCAxLjM4Njc4LCAxLjU5MzM1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5ODU1NSwgMC41MDYwNiwgMC44MzUxOSwgMS4yNDYwNCwgMS42NTcyOCwgMi4wNjg1NSwgMi40ODAzNiIsIFwKLSAgICAgICAgICAiMC4wOTg1NTQsIDAuNTA2MTUxLCAwLjgzNTIyNiwgMS4yNDYwNiwgMS42NTcyOSwgMi4wNjg5NSwgMi40ODAyNSIsIFwKLSAgICAgICAgICAiMC4wOTg1OSwgMC41MDYxOTksIDAuODM1MjI3LCAxLjI0NjUzLCAxLjY1NzcyLCAyLjA2OTIyLCAyLjQ4MDQzIiwgXAotICAgICAgICAgICIwLjA5ODU1NCwgMC41MDYwMjksIDAuODM1MjE0LCAxLjI0NjA3LCAxLjY1NzcsIDIuMDY5MSwgMi40ODAzMyIsIFwKLSAgICAgICAgICAiMC4wOTg1OCwgMC41MDYwMzIsIDAuODM1MjY2LCAxLjI0NjUzLCAxLjY1NzI4LCAyLjA2ODU4LCAyLjQ3OTg4IiwgXAotICAgICAgICAgICIwLjA5ODU2MSwgMC41MDYwNjEsIDAuODM1MjcxLCAxLjI0NjA2LCAxLjY1NzM4LCAyLjA2OTA4LCAyLjQ4MDMyIiwgXAotICAgICAgICAgICIwLjA5ODU3LCAwLjUwNjExNywgMC44MzQ2MDUsIDEuMjQ2MDcsIDEuNjU3NjQsIDIuMDY5NDMsIDIuNDgwNDIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDS04iOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDM4LCAwLjAwNDQyMiwgMC4wMDQ0MjcsIDAuMDA0NDMsIDAuMDA0NDMxLCAwLjAwNDQzMSwgMC4wMDQ0MzIiLCBcCi0gICAgICAgICAgIjAuMDA0Mzc0LCAwLjAwNDQxNiwgMC4wMDQ0MjEsIDAuMDA0NDI0LCAwLjAwNDQyNiwgMC4wMDQ0MjYsIDAuMDA0NDI3IiwgXAotICAgICAgICAgICIwLjAwNDM2OSwgMC4wMDQ0MTEsIDAuMDA0NDE2LCAwLjAwNDQxOCwgMC4wMDQ0MiwgMC4wMDQ0MiwgMC4wMDQ0MjEiLCBcCi0gICAgICAgICAgIjAuMDA0MzY0LCAwLjAwNDQwNiwgMC4wMDQ0MTEsIDAuMDA0NDE0LCAwLjAwNDQxNSwgMC4wMDQ0MTUsIDAuMDA0NDE2IiwgXAotICAgICAgICAgICIwLjAwNDM2MSwgMC4wMDQ0MDMsIDAuMDA0NDA3LCAwLjAwNDQxLCAwLjAwNDQxMSwgMC4wMDQ0MTIsIDAuMDA0NDEyIiwgXAotICAgICAgICAgICIwLjAwNDM1NywgMC4wMDQzOTksIDAuMDA0NDA0LCAwLjAwNDQwNiwgMC4wMDQ0MDgsIDAuMDA0NDA4LCAwLjAwNDQwOSIsIFwKLSAgICAgICAgICAiMC4wMDQzNTMsIDAuMDA0Mzk1LCAwLjAwNDQsIDAuMDA0NDAyLCAwLjAwNDQwNCwgMC4wMDQ0MDQsIDAuMDA0NDA1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0NjY4LCAwLjAwNDcwOSwgMC4wMDQ3MTQsIDAuMDA0NzE2LCAwLjAwNDcxOCwgMC4wMDQ3MTgsIDAuMDA0NzE5IiwgXAotICAgICAgICAgICIwLjAwNDY2MywgMC4wMDQ3MDQsIDAuMDA0NzA5LCAwLjAwNDcxMiwgMC4wMDQ3MTIsIDAuMDA0NzEzLCAwLjAwNDcxMyIsIFwKLSAgICAgICAgICAiMC4wMDQ2NTgsIDAuMDA0Njk5LCAwLjAwNDcwNCwgMC4wMDQ3MDYsIDAuMDA0NzA4LCAwLjAwNDcwOCwgMC4wMDQ3MDgiLCBcCi0gICAgICAgICAgIjAuMDA0NjU1LCAwLjAwNDY5NiwgMC4wMDQ3MDEsIDAuMDA0NzAzLCAwLjAwNDcwNCwgMC4wMDQ3MDUsIDAuMDA0NzA2IiwgXAotICAgICAgICAgICIwLjAwNDY1NCwgMC4wMDQ2OTUsIDAuMDA0NywgMC4wMDQ3MDIsIDAuMDA0NzA0LCAwLjAwNDcwNCwgMC4wMDQ3MDQiLCBcCi0gICAgICAgICAgIjAuMDA0NjU1LCAwLjAwNDY5NiwgMC4wMDQ3MDEsIDAuMDA0NzAzLCAwLjAwNDcwNSwgMC4wMDQ3MDUsIDAuMDA0NzA2IiwgXAotICAgICAgICAgICIwLjAwNDY1NSwgMC4wMDQ2OTYsIDAuMDA0NzAxLCAwLjAwNDcwMywgMC4wMDQ3MDQsIDAuMDA0NzA1LCAwLjAwNDcwNSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDU0MzcsIDAuMDA1NDc4LCAwLjAwNTQ4LCAwLjAwNTQ4LCAwLjAwNTQ3OCwgMC4wMDU0NzcsIDAuMDA1NDc3IiwgXAotICAgICAgICAgICIwLjAwNTQzMywgMC4wMDU0NzMsIDAuMDA1NDc1LCAwLjAwNTQ3NCwgMC4wMDU0NzMsIDAuMDA1NDczLCAwLjAwNTQ3MyIsIFwKLSAgICAgICAgICAiMC4wMDU0MjksIDAuMDA1NDY5LCAwLjAwNTQ3MiwgMC4wMDU0NzEsIDAuMDA1NDcsIDAuMDA1NDY5LCAwLjAwNTQ2OSIsIFwKLSAgICAgICAgICAiMC4wMDU0MjUsIDAuMDA1NDY2LCAwLjAwNTQ2OCwgMC4wMDU0NjcsIDAuMDA1NDY2LCAwLjAwNTQ2NSwgMC4wMDU0NjYiLCBcCi0gICAgICAgICAgIjAuMDA1NDIzLCAwLjAwNTQ2MywgMC4wMDU0NjYsIDAuMDA1NDY2LCAwLjAwNTQ2NCwgMC4wMDU0NjMsIDAuMDA1NDYyIiwgXAotICAgICAgICAgICIwLjAwNTQyMiwgMC4wMDU0NjIsIDAuMDA1NDY0LCAwLjAwNTQ2MywgMC4wMDU0NjIsIDAuMDA1NDYyLCAwLjAwNTQ2MSIsIFwKLSAgICAgICAgICAiMC4wMDU0MTksIDAuMDA1NDYsIDAuMDA1NDYyLCAwLjAwNTQ2MSwgMC4wMDU0NiwgMC4wMDU0NTksIDAuMDA1NDU5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHNjYWxhcikgewotICAgICAgICB2YWx1ZXMoIjAiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0MzA3LCAwLjAwNDM1LCAwLjAwNDM1NSwgMC4wMDQzNTksIDAuMDA0MzU5LCAwLjAwNDM2LCAwLjAwNDM2MSIsIFwKLSAgICAgICAgICAiMC4wMDQzMDEsIDAuMDA0MzQ0LCAwLjAwNDM0OSwgMC4wMDQzNTIsIDAuMDA0MzUyLCAwLjAwNDM1MywgMC4wMDQzNTMiLCBcCi0gICAgICAgICAgIjAuMDA0Mjk2LCAwLjAwNDMzOSwgMC4wMDQzNDQsIDAuMDA0MzQ3LCAwLjAwNDM0NywgMC4wMDQzNDgsIDAuMDA0MzQ5IiwgXAotICAgICAgICAgICIwLjAwNDI5MywgMC4wMDQzMzUsIDAuMDA0MzQxLCAwLjAwNDM0NCwgMC4wMDQzNDQsIDAuMDA0MzQ1LCAwLjAwNDM0NyIsIFwKLSAgICAgICAgICAiMC4wMDQyOSwgMC4wMDQzMzMsIDAuMDA0MzM4LCAwLjAwNDM0MSwgMC4wMDQzNDIsIDAuMDA0MzQyLCAwLjAwNDM0MyIsIFwKLSAgICAgICAgICAiMC4wMDQyODcsIDAuMDA0MzMsIDAuMDA0MzM1LCAwLjAwNDMzOCwgMC4wMDQzMzgsIDAuMDA0MzM5LCAwLjAwNDM0IiwgXAotICAgICAgICAgICIwLjAwNDI4NSwgMC4wMDQzMjcsIDAuMDA0MzMzLCAwLjAwNDMzNSwgMC4wMDQzMzYsIDAuMDA0MzM3LCAwLjAwNDMzOCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDg5LCAwLjAwNDkyOCwgMC4wMDQ5MzEsIDAuMDA0OTMzLCAwLjAwNDkzNCwgMC4wMDQ5MzUsIDAuMDA0OTM1IiwgXAotICAgICAgICAgICIwLjAwNDg4NCwgMC4wMDQ5MjEsIDAuMDA0OTI1LCAwLjAwNDkyNywgMC4wMDQ5MjcsIDAuMDA0OTI4LCAwLjAwNDkyOSIsIFwKLSAgICAgICAgICAiMC4wMDQ4NzksIDAuMDA0OTE3LCAwLjAwNDkyMSwgMC4wMDQ5MjIsIDAuMDA0OTIzLCAwLjAwNDkyNCwgMC4wMDQ5MjUiLCBcCi0gICAgICAgICAgIjAuMDA0ODc3LCAwLjAwNDkxNCwgMC4wMDQ5MTgsIDAuMDA0OTIxLCAwLjAwNDkyLCAwLjAwNDkyMiwgMC4wMDQ5MjIiLCBcCi0gICAgICAgICAgIjAuMDA0ODc0LCAwLjAwNDkxMiwgMC4wMDQ5MTYsIDAuMDA0OTE4LCAwLjAwNDkxOCwgMC4wMDQ5MTksIDAuMDA0OTIiLCBcCi0gICAgICAgICAgIjAuMDA0ODcyLCAwLjAwNDkwOSwgMC4wMDQ5MTMsIDAuMDA0OTE1LCAwLjAwNDkxNSwgMC4wMDQ5MTYsIDAuMDA0OTE3IiwgXAotICAgICAgICAgICIwLjAwNDg3LCAwLjAwNDkwNywgMC4wMDQ5MTEsIDAuMDA0OTEyLCAwLjAwNDkxNCwgMC4wMDQ5MTQsIDAuMDA0OTE1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihSTikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjMyMjgxOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYzMjAyNTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2MzIyODE7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNDE1LCAwLjAwMDQwMSwgMC4wMDAzOTIsIDAuMDAwMzg2LCAwLjAwMDM4MywgMC4wMDAzODEsIDAuMDAwMzgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDIwMjksIDAuMDAyMDIsIDAuMDAyMDEzLCAwLjAwMjAwOSwgMC4wMDIwMDcsIDAuMDAyMDA2LCAwLjAwMjAwNCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQmIVNFJiFTSSZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fU0VfRVFfMF9BTl9TSV9FUV8wX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC40NTE1OTUsIDAuNDYzMzE1LCAwLjQ3ODE5LCAwLjQ5MjgzOSwgMC41MDY5NTIsIDAuNTI5Mjk4LCAwLjU0NjYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0tOIjsKLSAgICAgIHRpbWluZ190eXBlIDogcmVjb3ZlcnlfZmFsbGluZzsKLSAgICAgIHdoZW4gOiAiU04iOwotICAgICAgc2RmX2NvbmQgOiAiU04gPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQocmVjb3ZlcnlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg3NSwgMC4wNzYyNSwgMC4wNjM3NSwgMC4wNDUsIDAuMDI2MjUsIDAuMDAzNzUsIC0wLjAxMTI1IiwgXAotICAgICAgICAgICIwLjA5ODc1LCAwLjA4NzUsIDAuMDc1LCAwLjA1NjI1LCAwLjA0Mzc1LCAwLjAxNSwgMCIsIFwKLSAgICAgICAgICAiMC4xMTc1LCAwLjEwNjI1LCAwLjA4NzUsIDAuMDc1LCAwLjA1NjI1LCAwLjAzMzc1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMTMsIDAuMTE4NzUsIDAuMSwgMC4wODc1LCAwLjA2ODc1LCAwLjA0NjI1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiMC4xNDg3NSwgMC4xMzc1LCAwLjExODc1LCAwLjEsIDAuMDg3NSwgMC4wNjUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMTcxMjUsIDAuMTYsIDAuMTQxMjUsIDAuMTI4NzUsIDAuMTEsIDAuMDg3NSwgMC4wNjYyNSIsIFwKLSAgICAgICAgICAiMC4xOTI1LCAwLjE4MTI1LCAwLjE2MjUsIDAuMTQzNzUsIDAuMTMxMjUsIDAuMTA4NzUsIDAuMDg3NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJlY292ZXJ5X3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUQmIVNFJiFTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fU0VfRVFfMF9BTl9TSV9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHJlY292ZXJ5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE5Mzc1LCAwLjIwNSwgMC4yMTc1LCAwLjIzNjI1LCAwLjI0ODc1LCAwLjI3MTI1LCAwLjI4NjI1IiwgXAotICAgICAgICAgICIwLjE4MjUsIDAuMTkzNzUsIDAuMjA2MjUsIDAuMjI1LCAwLjIzNzUsIDAuMjUzNzUsIDAuMjc1IiwgXAotICAgICAgICAgICIwLjE3LCAwLjE4MTI1LCAwLjE5Mzc1LCAwLjIxMjUsIDAuMjI1LCAwLjI0MTI1LCAwLjI2MjUiLCBcCi0gICAgICAgICAgIjAuMTU3NSwgMC4xNjg3NSwgMC4xODEyNSwgMC4yLCAwLjIxMjUsIDAuMjI4NzUsIDAuMjUiLCBcCi0gICAgICAgICAgIjAuMTQ1LCAwLjE1NjI1LCAwLjE3NSwgMC4xODc1LCAwLjIsIDAuMjIyNSwgMC4yMzc1IiwgXAotICAgICAgICAgICIwLjEzNSwgMC4xNDYyNSwgMC4xNTg3NSwgMC4xNzEyNSwgMC4xODM3NSwgMC4yMDYyNSwgMC4yMjEyNSIsIFwKLSAgICAgICAgICAiMC4xMiwgMC4xMzEyNSwgMC4xNSwgMC4xNjI1LCAwLjE3NSwgMC4xOTc1LCAwLjIxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0tOIjsKLSAgICAgIHRpbWluZ190eXBlIDogcmVtb3ZhbF9mYWxsaW5nOwotICAgICAgd2hlbiA6ICJTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJTTiA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChyZW1vdmFsX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjI1LCAwLjAxNzUsIDAuMDMsIDAuMDQ4NzUsIDAuMDYxMjUsIDAuMDgzNzUsIDAuMDk4NzUiLCBcCi0gICAgICAgICAgIi0wLjAwNSwgMC4wMDYyNSwgMC4wMTg3NSwgMC4wMzc1LCAwLjA1LCAwLjA3MjUsIDAuMDg3NSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxMjUsIDAuMDA2MjUsIDAuMDE4NzUsIDAuMDMxMjUsIDAuMDUzNzUsIDAuMDc1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDI1LCAtMC4wMTI1LCAwLjAwNjI1LCAwLjAxODc1LCAwLjA0MTI1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA0Mzc1LCAtMC4wMjUsIC0wLjAxMjUsIDAsIDAuMDIyNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDc3NSwgLTAuMDY2MjUsIC0wLjA0NzUsIC0wLjAzNSwgLTAuMDIyNSwgMCwgMC4wMjEyNSIsIFwKLSAgICAgICAgICAiLTAuMDk4NzUsIC0wLjA4NzUsIC0wLjA2ODc1LCAtMC4wNTYyNSwgLTAuMDQzNzUsIC0wLjAyMTI1LCAwIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTRSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxMTE5MjM7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxMTE4NzI7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxMTE5MjM7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA0MDkyLCAwLjAwNDA4NCwgMC4wMDQwNzcsIDAuMDA0MDczLCAwLjAwNDA3MSwgMC4wMDQwNjgsIDAuMDA0MDY4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA1NDc3LCAwLjAwNTQ2MiwgMC4wMDU0NSwgMC4wMDU0NDIsIDAuMDA1NDM3LCAwLjAwNTQyOSwgMC4wMDU0MjYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0tOIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9mYWxsaW5nOwotICAgICAgd2hlbiA6ICJSTiZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJSTl9FUV8xX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDI1LCAtMC4wMTM3NSwgLTAuMDAxMjUsIDAuMDExMjUsIDAuMDE3NSwgMC4wMzM3NSwgMC4wNDg3NSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAyNSwgLTAuMDEyNSwgMCwgMC4wMDYyNSwgMC4wMjI1LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLjAxLCAwLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDYxMjUsIC0wLjA1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIC0wLjAwMjUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDczNzUsIC0wLjA2MjUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDMxMjUsIC0wLjAxNSwgMCIsIFwKLSAgICAgICAgICAiLTAuMDksIC0wLjA3ODc1LCAtMC4wNzI1LCAtMC4wNiwgLTAuMDUzNzUsIC0wLjAzNzUsIC0wLjAyMjUiLCBcCi0gICAgICAgICAgIi0wLjEwNSwgLTAuMDkzNzUsIC0wLjA4NzUsIC0wLjA3NSwgLTAuMDY4NzUsIC0wLjA1MjUsIC0wLjAzNzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wNjI1LCAtMC4wNTEyNSwgLTAuMDM4NzUsIC0wLjAyNjI1LCAtMC4wMiwgLTAuMDAzNzUsIDAuMDExMjUiLCBcCi0gICAgICAgICAgIi0wLjA3Mzc1LCAtMC4wNjI1LCAtMC4wNSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAxNSwgMCIsIFwKLSAgICAgICAgICAiLTAuMDg2MjUsIC0wLjA3NSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA0Mzc1LCAtMC4wMjc1LCAtMC4wMTI1IiwgXAotICAgICAgICAgICItMC4xMDUsIC0wLjA5Mzc1LCAtMC4wODEyNSwgLTAuMDY4NzUsIC0wLjA1NjI1LCAtMC4wNCwgLTAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjExNzUsIC0wLjEwNjI1LCAtMC4wOTM3NSwgLTAuMDgxMjUsIC0wLjA3NSwgLTAuMDU4NzUsIC0wLjA0Mzc1IiwgXAotICAgICAgICAgICItMC4xMzM3NSwgLTAuMTIyNSwgLTAuMTEsIC0wLjEwMzc1LCAtMC4wOTEyNSwgLTAuMDc1LCAtMC4wNiIsIFwKLSAgICAgICAgICAiLTAuMTQ4NzUsIC0wLjEzNzUsIC0wLjEzMTI1LCAtMC4xMTg3NSwgLTAuMTA2MjUsIC0wLjA5LCAtMC4wODEyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDS04iOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9mYWxsaW5nOwotICAgICAgd2hlbiA6ICJSTiZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJSTl9FUV8xX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzI1LCAwLjMxMzc1LCAwLjI5NSwgMC4yODI1LCAwLjI2Mzc1LCAwLjI0MTI1LCAwLjIyNjI1IiwgXAotICAgICAgICAgICIwLjMzNjI1LCAwLjMyNSwgMC4zMDYyNSwgMC4yOTM3NSwgMC4yNzUsIDAuMjUyNSwgMC4yMzc1IiwgXAotICAgICAgICAgICIwLjM1NSwgMC4zMzc1LCAwLjMyNSwgMC4zMDYyNSwgMC4yOTM3NSwgMC4yNzEyNSwgMC4yNSIsIFwKLSAgICAgICAgICAiMC4zNjc1LCAwLjM1NjI1LCAwLjMzNzUsIDAuMzI1LCAwLjMwNjI1LCAwLjI4Mzc1LCAwLjI2ODc1IiwgXAotICAgICAgICAgICIwLjM4LCAwLjM2ODc1LCAwLjM1NjI1LCAwLjMzNzUsIDAuMzI1LCAwLjI5NjI1LCAwLjI4MTI1IiwgXAotICAgICAgICAgICIwLjQwMjUsIDAuMzkxMjUsIDAuMzc4NzUsIDAuMzYsIDAuMzQ3NSwgMC4zMTg3NSwgMC4zMDM3NSIsIFwKLSAgICAgICAgICAiMC40MjM3NSwgMC40MTI1LCAwLjM5Mzc1LCAwLjM3NSwgMC4zNjI1LCAwLjM0LCAwLjMxODc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjg3NSwgMC4yNywgMC4yNTc1LCAwLjIzODc1LCAwLjIyNjI1LCAwLjIwMzc1LCAwLjE4MjUiLCBcCi0gICAgICAgICAgIjAuMjkyNSwgMC4yODEyNSwgMC4yNjI1LCAwLjI1LCAwLjIzMTI1LCAwLjIwODc1LCAwLjE5Mzc1IiwgXAotICAgICAgICAgICIwLjMxMTI1LCAwLjI5Mzc1LCAwLjI4MTI1LCAwLjI2MjUsIDAuMjUsIDAuMjIxMjUsIDAuMjA2MjUiLCBcCi0gICAgICAgICAgIjAuMzIzNzUsIDAuMzA2MjUsIDAuMjkzNzUsIDAuMjc1LCAwLjI2MjUsIDAuMjQsIDAuMjE4NzUiLCBcCi0gICAgICAgICAgIjAuMzM2MjUsIDAuMzE4NzUsIDAuMzA2MjUsIDAuMjg3NSwgMC4yNzUsIDAuMjUyNSwgMC4yMzEyNSIsIFwKLSAgICAgICAgICAiMC4zNTg3NSwgMC4zNDEyNSwgMC4zMjI1LCAwLjMxLCAwLjI5NzUsIDAuMjY4NzUsIDAuMjUzNzUiLCBcCi0gICAgICAgICAgIjAuMzczNzUsIDAuMzYyNSwgMC4zNDM3NSwgMC4zMzEyNSwgMC4zMTI1LCAwLjI5LCAwLjI3NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oU0kpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYyOTQ5NzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2Mjc4OTI7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjI5NDk3OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjcxLCAwLjAwMjcwMSwgMC4wMDI2OTYsIDAuMDAyNjkzLCAwLjAwMjY5LCAwLjAwMjY4NywgMC4wMDI2ODUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDQyNzIsIDAuMDA0MjY3LCAwLjAwNDI2NSwgMC4wMDQyNjMsIDAuMDA0MjYxLCAwLjAwNDI1OSwgMC4wMDQyNTgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0tOIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9mYWxsaW5nOwotICAgICAgd2hlbiA6ICJSTiZTRSZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJSTl9FUV8xX0FOX1NFX0VRXzFfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMzc1LCAtMC4wMjYyNSwgLTAuMDEzNzUsIC0wLjAwMTI1LCAwLjAwNSwgMC4wMjEyNSwgMC4wMzYyNSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjAzNzUsIC0wLjAyNSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAuMDEsIDAuMDI1IiwgXAotICAgICAgICAgICItMC4wNjEyNSwgLTAuMDUsIC0wLjAzNzUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAwMjUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDczNzUsIC0wLjA2MjUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDMxMjUsIC0wLjAxNSwgMCIsIFwKLSAgICAgICAgICAiLTAuMDg2MjUsIC0wLjA3NSwgLTAuMDY4NzUsIC0wLjA1NjI1LCAtMC4wNDM3NSwgLTAuMDI3NSwgLTAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMTA4NzUsIC0wLjA5NzUsIC0wLjA4NSwgLTAuMDc4NzUsIC0wLjA2NjI1LCAtMC4wNSwgLTAuMDM1IiwgXAotICAgICAgICAgICItMC4xMjM3NSwgLTAuMTEyNSwgLTAuMTA2MjUsIC0wLjA5Mzc1LCAtMC4wODEyNSwgLTAuMDY1LCAtMC4wNTYyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjEzMTI1LCAtMC4xMiwgLTAuMTEzNzUsIC0wLjEwNzUsIC0wLjA5NSwgLTAuMDg1LCAtMC4wNzYyNSIsIFwKLSAgICAgICAgICAiLTAuMTQyNSwgLTAuMTMxMjUsIC0wLjEyNSwgLTAuMTE4NzUsIC0wLjEwNjI1LCAtMC4wOTYyNSwgLTAuMDg3NSIsIFwKLSAgICAgICAgICAiLTAuMTU1LCAtMC4xNDM3NSwgLTAuMTM3NSwgLTAuMTMxMjUsIC0wLjExODc1LCAtMC4xMDg3NSwgLTAuMTA2MjUiLCBcCi0gICAgICAgICAgIi0wLjE2NzUsIC0wLjE1NjI1LCAtMC4xNSwgLTAuMTQzNzUsIC0wLjEzMTI1LCAtMC4xMjEyNSwgLTAuMTE4NzUiLCBcCi0gICAgICAgICAgIi0wLjE4LCAtMC4xNjg3NSwgLTAuMTYyNSwgLTAuMTU2MjUsIC0wLjE0Mzc1LCAtMC4xMzM3NSwgLTAuMTI1IiwgXAotICAgICAgICAgICItMC4xOTYyNSwgLTAuMTkxMjUsIC0wLjE3ODc1LCAtMC4xNzI1LCAtMC4xNjYyNSwgLTAuMTU2MjUsIC0wLjE0NzUiLCBcCi0gICAgICAgICAgIi0wLjIxNzUsIC0wLjIwNjI1LCAtMC4yLCAtMC4xODc1LCAtMC4xODEyNSwgLTAuMTcxMjUsIC0wLjE2MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0tOIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfZmFsbGluZzsKLSAgICAgIHdoZW4gOiAiUk4mU0UmU04iOwotICAgICAgc2RmX2NvbmQgOiAiUk5fRVFfMV9BTl9TRV9FUV8xX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjUsIDAuMjM4NzUsIDAuMjIsIDAuMjAxMjUsIDAuMTg4NzUsIDAuMTY2MjUsIDAuMTQ1IiwgXAotICAgICAgICAgICIwLjI2MTI1LCAwLjI1LCAwLjIzMTI1LCAwLjIxODc1LCAwLjIsIDAuMTc3NSwgMC4xNTYyNSIsIFwKLSAgICAgICAgICAiMC4yNzM3NSwgMC4yNjI1LCAwLjI0Mzc1LCAwLjIzMTI1LCAwLjIxMjUsIDAuMTksIDAuMTc1IiwgXAotICAgICAgICAgICIwLjI4NjI1LCAwLjI3NSwgMC4yNjI1LCAwLjI0Mzc1LCAwLjIzMTI1LCAwLjIwMjUsIDAuMTg3NSIsIFwKLSAgICAgICAgICAiMC4yOTg3NSwgMC4yODc1LCAwLjI3NSwgMC4yNTYyNSwgMC4yNDM3NSwgMC4yMjEyNSwgMC4yIiwgXAotICAgICAgICAgICIwLjMyMTI1LCAwLjMxLCAwLjI5NzUsIDAuMjc4NzUsIDAuMjY2MjUsIDAuMjM3NSwgMC4yMjI1IiwgXAotICAgICAgICAgICIwLjM0MjUsIDAuMzMxMjUsIDAuMzEyNSwgMC4zLCAwLjI4MTI1LCAwLjI1ODc1LCAwLjI0Mzc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMywgMC4yODI1LCAwLjI2Mzc1LCAwLjI1MTI1LCAwLjIzODc1LCAwLjIxNjI1LCAwLjE5NSIsIFwKLSAgICAgICAgICAiMC4zMTEyNSwgMC4yOTM3NSwgMC4yODEyNSwgMC4yNjI1LCAwLjI1LCAwLjIyNzUsIDAuMjA2MjUiLCBcCi0gICAgICAgICAgIjAuMzIzNzUsIDAuMzA2MjUsIDAuMjkzNzUsIDAuMjc1LCAwLjI2MjUsIDAuMjQsIDAuMjE4NzUiLCBcCi0gICAgICAgICAgIjAuMzM2MjUsIDAuMzE4NzUsIDAuMzA2MjUsIDAuMjg3NSwgMC4yNzUsIDAuMjUyNSwgMC4yMzEyNSIsIFwKLSAgICAgICAgICAiMC4zNDg3NSwgMC4zMzEyNSwgMC4zMTg3NSwgMC4zLCAwLjI4NzUsIDAuMjY1LCAwLjI0Mzc1IiwgXAotICAgICAgICAgICIwLjM2NSwgMC4zNTM3NSwgMC4zMzUsIDAuMzIyNSwgMC4zMDM3NSwgMC4yODEyNSwgMC4yNjYyNSIsIFwKLSAgICAgICAgICAiMC4zODYyNSwgMC4zNjg3NSwgMC4zNSwgMC4zMzc1LCAwLjMyNSwgMC4yOTYyNSwgMC4yODEyNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oU04pICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTczNTUxOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTczNTUxOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTczNDQ4OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDMzMSwgMC4wMDAzMzEsIDAuMDAwMzMxLCAwLjAwMDMzLCAwLjAwMDMzLCAwLjAwMDMzLCAwLjAwMDMzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzMxLCAwLjAwMDMzMSwgMC4wMDAzMzEsIDAuMDAwMzMyLCAwLjAwMDMzMSwgMC4wMDAzMzIsIDAuMDAwMzMyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRCYhUk4mIVNFJiFTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fUk5fRVFfMF9BTl9TRV9FUV8wX0FOX1NJX0VRXzAgPT0gMSdiMSI7Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4yOTk4OSwgMC4zMTE1NDIsIDAuMzI2MDk3LCAwLjMzOTY1OCwgMC4zNTI3MDYsIDAuMzc1Mjg0LCAwLjM5NTYyOSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDS04iOwotICAgICAgdGltaW5nX3R5cGUgOiByZWNvdmVyeV9mYWxsaW5nOwotICAgICAgd2hlbiA6ICJSTiI7Ci0gICAgICBzZGZfY29uZCA6ICJSTiA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChyZWNvdmVyeV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDYyNSwgMC4wOTUsIDAuMDc2MjUsIDAuMDYzNzUsIDAuMDQ1LCAwLjAyMjUsIDAuMDAxMjUiLCBcCi0gICAgICAgICAgIjAuMTE3NSwgMC4xMDYyNSwgMC4wODc1LCAwLjA3NSwgMC4wNTYyNSwgMC4wMzM3NSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4xMzYyNSwgMC4xMTg3NSwgMC4xMDYyNSwgMC4wODc1LCAwLjA3NSwgMC4wNTI1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICIwLjE0ODc1LCAwLjEzNzUsIDAuMTE4NzUsIDAuMTA2MjUsIDAuMDg3NSwgMC4wNjUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMTYxMjUsIDAuMTUsIDAuMTMxMjUsIDAuMTE4NzUsIDAuMSwgMC4wNzc1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICIwLjE4Mzc1LCAwLjE3MjUsIDAuMTUzNzUsIDAuMTQxMjUsIDAuMTIyNSwgMC4xLCAwLjA3ODc1IiwgXAotICAgICAgICAgICIwLjIwNSwgMC4xODc1LCAwLjE3NSwgMC4xNTYyNSwgMC4xNDM3NSwgMC4xMjEyNSwgMC4xIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJlbW92YWxfZmFsbGluZzsKLSAgICAgIHdoZW4gOiAiUk4iOwotICAgICAgc2RmX2NvbmQgOiAiUk4gPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQocmVtb3ZhbF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTI1LCAwLjAyMzc1LCAwLjA0MjUsIDAuMDU1LCAwLjA2NzUsIDAuMDksIDAuMTExMjUiLCBcCi0gICAgICAgICAgIjAuMDAxMjUsIDAuMDEyNSwgMC4wMzEyNSwgMC4wNDM3NSwgMC4wNTYyNSwgMC4wNzg3NSwgMC4wOTM3NSIsIFwKLSAgICAgICAgICAiLTAuMDExMjUsIDAsIDAuMDEyNSwgMC4wMzEyNSwgMC4wNDM3NSwgMC4wNjYyNSwgMC4wODEyNSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxMjUsIDAsIDAuMDEyNSwgMC4wMzEyNSwgMC4wNTM3NSwgMC4wNjg3NSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDMxMjUsIC0wLjAxMjUsIDAsIDAuMDEyNSwgMC4wMzUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIi0wLjA1ODc1LCAtMC4wNDc1LCAtMC4wMzUsIC0wLjAxNjI1LCAtMC4wMDM3NSwgMC4wMTg3NSwgMC4wMzM3NSIsIFwKLSAgICAgICAgICAiLTAuMDgsIC0wLjA2ODc1LCAtMC4wNSwgLTAuMDM3NSwgLTAuMDI1LCAtMC4wMDI1LCAwLjAxODc1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBTREZGTlNSWEwgKgotICogLS0tLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChTREZGTlNSWEwpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4zMjIxNDsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBmZiAoTjM1LFFCSU5UKSB7Ci0gICAgbmV4dF9zdGF0ZSA6ICIoKFNFIFNJKSArICghU0UgRCkpIjsKLSAgICBjbG9ja2VkX29uIDogIighQ0tOKSI7Ci0gICAgY2xlYXIgOiAiKCFSTikiOwotICAgIHByZXNldCA6ICIoIVNOKSI7Ci0gICAgY2xlYXJfcHJlc2V0X3ZhcjEgOiBIOwotICAgIGNsZWFyX3ByZXNldF92YXIyIDogTDsKLSAgfQotICBwaW4oQ0tOKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA1ODM4MjQ7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNTgzNDU4OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDU4MzgyNDsKLSAgICBjbG9jayA6IHRydWU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA1MTU3LCAwLjAwNTE0NCwgMC4wMDUxMzEsIDAuMDA1MTIzLCAwLjAwNTEyLCAwLjAwNTExOCwgMC4wMDUxMjMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDI5MTgsIDAuMDAyOTA5LCAwLjAwMjksIDAuMDAyODk0LCAwLjAwMjg4OCwgMC4wMDI4ODUsIDAuMDAyODgyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQmUk4mIVNFJiFTSSZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fUk5fRVFfMV9BTl9TRV9FUV8wX0FOX1NJX0VRXzBfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjIzODc0OCwgMC4yNTA1MjYsIDAuMjY1NDU4LCAwLjI4MDUxNiwgMC4yOTY1NTEsIDAuMzIwODY5LCAwLjM0MTY2NiIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMzkxMDE3LCAwLjQwMjI5MSwgMC40MTcxODIsIDAuNDMxOTc5LCAwLjQ0NjA3NywgMC40NjkwMjMsIDAuNDg3MzgxIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihEKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA1NjIwNzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA1NjAzOTQ7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNTYyMDc7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyOTI1LCAwLjAwMjkxNiwgMC4wMDI5MTEsIDAuMDAyOTA3LCAwLjAwMjkwNSwgMC4wMDI5MDEsIDAuMDAyODk5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzODksIDAuMDAzODg1LCAwLjAwMzg4MiwgMC4wMDM4ODEsIDAuMDAzODc5LCAwLjAwMzg3NywgMC4wMDM4NzYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0tOIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9mYWxsaW5nOwotICAgICAgd2hlbiA6ICJSTiYhU0UmU04iOwotICAgICAgc2RmX2NvbmQgOiAiUk5fRVFfMV9BTl9TRV9FUV8wX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDUsIC0wLjAzODc1LCAtMC4wMjYyNSwgLTAuMDEzNzUsIC0wLjAwMTI1LCAwLjAxNSwgMC4wMyIsIFwKLSAgICAgICAgICAiLTAuMDYxMjUsIC0wLjA1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAxMjUsIDAuMDAzNzUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjA3Mzc1LCAtMC4wNjI1LCAtMC4wNSwgLTAuMDM3NSwgLTAuMDI1LCAtMC4wMDg3NSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDg2MjUsIC0wLjA3NSwgLTAuMDYyNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wMjEyNSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjEwNSwgLTAuMDkzNzUsIC0wLjA4MTI1LCAtMC4wNjg3NSwgLTAuMDU2MjUsIC0wLjA0LCAtMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMTI3NSwgLTAuMTE2MjUsIC0wLjEwMzc1LCAtMC4wOTEyNSwgLTAuMDc4NzUsIC0wLjA1NjI1LCAtMC4wNDEyNSIsIFwKLSAgICAgICAgICAiLTAuMTQyNSwgLTAuMTMxMjUsIC0wLjExODc1LCAtMC4xMDYyNSwgLTAuMDkzNzUsIC0wLjA3NzUsIC0wLjA2MjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4xMzEyNSwgLTAuMTIsIC0wLjEwNzUsIC0wLjEwMTI1LCAtMC4wOTUsIC0wLjA4NSwgLTAuMDciLCBcCi0gICAgICAgICAgIi0wLjE0MjUsIC0wLjEzMTI1LCAtMC4xMTg3NSwgLTAuMTEyNSwgLTAuMTA2MjUsIC0wLjA5NjI1LCAtMC4wODEyNSIsIFwKLSAgICAgICAgICAiLTAuMTU1LCAtMC4xNDM3NSwgLTAuMTM3NSwgLTAuMTI1LCAtMC4xMTg3NSwgLTAuMTA4NzUsIC0wLjEiLCBcCi0gICAgICAgICAgIi0wLjE2NzUsIC0wLjE1NjI1LCAtMC4xNSwgLTAuMTM3NSwgLTAuMTMxMjUsIC0wLjEyMTI1LCAtMC4xMTI1IiwgXAotICAgICAgICAgICItMC4xOCwgLTAuMTY4NzUsIC0wLjE2MjUsIC0wLjE1LCAtMC4xNDM3NSwgLTAuMTMzNzUsIC0wLjEyNSIsIFwKLSAgICAgICAgICAiLTAuMTk2MjUsIC0wLjE5MTI1LCAtMC4xNzg3NSwgLTAuMTcyNSwgLTAuMTYsIC0wLjE1LCAtMC4xNDEyNSIsIFwKLSAgICAgICAgICAiLTAuMjE3NSwgLTAuMjA2MjUsIC0wLjE5Mzc1LCAtMC4xODc1LCAtMC4xODEyNSwgLTAuMTY1LCAtMC4xNTYyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDS04iOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9mYWxsaW5nOwotICAgICAgd2hlbiA6ICJSTiYhU0UmU04iOwotICAgICAgc2RmX2NvbmQgOiAiUk5fRVFfMV9BTl9TRV9FUV8wX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjMxMjUsIDAuMjIsIDAuMjAxMjUsIDAuMTg4NzUsIDAuMTcsIDAuMTQ3NSwgMC4xMjYyNSIsIFwKLSAgICAgICAgICAiMC4yNDI1LCAwLjIzMTI1LCAwLjIxMjUsIDAuMiwgMC4xODEyNSwgMC4xNTg3NSwgMC4xMzc1IiwgXAotICAgICAgICAgICIwLjI1NSwgMC4yNDM3NSwgMC4yMjUsIDAuMjEyNSwgMC4yLCAwLjE3MTI1LCAwLjE1NjI1IiwgXAotICAgICAgICAgICIwLjI2NzUsIDAuMjU2MjUsIDAuMjQzNzUsIDAuMjI1LCAwLjIxMjUsIDAuMTksIDAuMTY4NzUiLCBcCi0gICAgICAgICAgIjAuMjg2MjUsIDAuMjY4NzUsIDAuMjU2MjUsIDAuMjM3NSwgMC4yMjUsIDAuMjAyNSwgMC4xODEyNSIsIFwKLSAgICAgICAgICAiMC4zMDI1LCAwLjI5MTI1LCAwLjI3ODc1LCAwLjI2LCAwLjI0NzUsIDAuMjI1LCAwLjIwMzc1IiwgXAotICAgICAgICAgICIwLjMyMzc1LCAwLjMxMjUsIDAuMjkzNzUsIDAuMjgxMjUsIDAuMjYyNSwgMC4yNCwgMC4yMjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yNjg3NSwgMC4yNTc1LCAwLjIzODc1LCAwLjIyNjI1LCAwLjIwNzUsIDAuMTg1LCAwLjE3IiwgXAotICAgICAgICAgICIwLjI4LCAwLjI2ODc1LCAwLjI1LCAwLjIzNzUsIDAuMjE4NzUsIDAuMTk2MjUsIDAuMTgxMjUiLCBcCi0gICAgICAgICAgIjAuMjkyNSwgMC4yODEyNSwgMC4yNjI1LCAwLjI1LCAwLjIzMTI1LCAwLjIwODc1LCAwLjE5Mzc1IiwgXAotICAgICAgICAgICIwLjMwNSwgMC4yOTM3NSwgMC4yNzUsIDAuMjYyNSwgMC4yNDM3NSwgMC4yMjEyNSwgMC4yMDYyNSIsIFwKLSAgICAgICAgICAiMC4zMTc1LCAwLjMwNjI1LCAwLjI4NzUsIDAuMjc1LCAwLjI1NjI1LCAwLjIzMzc1LCAwLjIxODc1IiwgXAotICAgICAgICAgICIwLjM0LCAwLjMyMjUsIDAuMzEsIDAuMjkxMjUsIDAuMjc4NzUsIDAuMjU2MjUsIDAuMjQxMjUiLCBcCi0gICAgICAgICAgIjAuMzU1LCAwLjM0Mzc1LCAwLjMyNSwgMC4zMTI1LCAwLjI5Mzc1LCAwLjI3MTI1LCAwLjI1NjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihRKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMDczODIzOTsKLSAgICBmdW5jdGlvbiA6ICJOMzUiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBub25fdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGZhbGxpbmdfZWRnZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuNDA2OTMxLCAwLjQzMjIwOSwgMC42NjA3NTEsIDEuMDQxNDUsIDEuNDIwMzMsIDIuMzA3MTUsIDIuODE1MTUiLCBcCi0gICAgICAgICAgIjAuNDE4MzA1LCAwLjQ0MzU3NSwgMC42NzEwMjYsIDEuMDUxMTQsIDEuNDMxNzksIDIuMzE0NzYsIDIuODI1ODUiLCBcCi0gICAgICAgICAgIjAuNDMzMDA5LCAwLjQ1ODM2OCwgMC42ODY0ODEsIDEuMDY3NzcsIDEuNDQ2MzUsIDIuMzMzNTcsIDIuODM5MDYiLCBcCi0gICAgICAgICAgIjAuNDQ4MDI4LCAwLjQ3MzIxNywgMC43MDE2MzcsIDEuMDgyNjIsIDEuNDYxMDgsIDIuMzQ5MTUsIDIuODU2MTMiLCBcCi0gICAgICAgICAgIjAuNDYyNTE0LCAwLjQ4Nzc3OCwgMC43MTU4ODgsIDEuMDk2NTksIDEuNDc1NzcsIDIuMzYxNjksIDIuODcwMjUiLCBcCi0gICAgICAgICAgIjAuNDg1NDM1LCAwLjUxMDY2LCAwLjczOTA0OCwgMS4xMTk4NiwgMS40OTc4MSwgMi4zODYyMywgMi44OTM4NSIsIFwKLSAgICAgICAgICAiMC41MDM4MDUsIDAuNTI5MTksIDAuNzU3MzE5LCAxLjEzODUxLCAxLjUxNzIyLCAyLjQwNDM4LCAyLjkwODE5Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI3ODcwNywgMC4zMjk3NjEsIDAuNzg1MjIsIDEuNTc1MjIsIDIuMzU0NDEsIDQuMTczOSwgNS4xODU3NyIsIFwKLSAgICAgICAgICAiMC4yNzg3NTUsIDAuMzI5Nzk3LCAwLjc5NTUwOCwgMS41NzUyNSwgMi4zNTM3NywgNC4xNzM4MywgNS4xODY1MiIsIFwKLSAgICAgICAgICAiMC4yNzY4NzMsIDAuMzI5Nzk3LCAwLjc4OTc0NCwgMS41NjU0MiwgMi4zNTQ1NSwgNC4xNjg5NywgNS4xODYyNyIsIFwKLSAgICAgICAgICAiMC4yNzg3ODgsIDAuMzI1NjUsIDAuNzkwMTM3LCAxLjU2NDUxLCAyLjM0Njk2LCA0LjE2ODI1LCA1LjE4NjY2IiwgXAotICAgICAgICAgICIwLjI3ODcwOCwgMC4zMjk3NzMsIDAuNzg1NTc0LCAxLjU2NzQyLCAyLjM1Mzc5LCA0LjE2NDEzLCA1LjE4NjU0IiwgXAotICAgICAgICAgICIwLjI3ODc4MSwgMC4zMjgyOSwgMC43OTAyLCAxLjU2MjA1LCAyLjM1NDg1LCA0LjE2ODMsIDUuMTkzMDciLCBcCi0gICAgICAgICAgIjAuMjc4MDYxLCAwLjMyOTgzNSwgMC43ODk3MzEsIDEuNTYzODMsIDIuMzU0MjQsIDQuMTY4NTcsIDUuMTg2MDMiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzkxMDE3LCAwLjQyMDczNSwgMC42ODk3MDcsIDEuMTMzNDksIDEuNTg0NjIsIDIuNjI3OTEsIDMuMjIzNzIiLCBcCi0gICAgICAgICAgIjAuNDAyMzI2LCAwLjQzMjE1NywgMC42OTk5NjcsIDEuMTQ0OSwgMS41OTU5OSwgMi42MzkxOSwgMy4yMzUyMiIsIFwKLSAgICAgICAgICAiMC40MTcxODIsIDAuNDQ3MDc5LCAwLjcxNTgyMywgMS4xNTk2NSwgMS42MTA3OCwgMi42NTQwMiwgMy4yNTAyNiIsIFwKLSAgICAgICAgICAiMC40MzE5NzksIDAuNDYxNjk3LCAwLjczMDY3MSwgMS4xNzQ0NSwgMS42MjU1OCwgMi42Njg4NywgMy4yNjQ3MiIsIFwKLSAgICAgICAgICAiMC40NDYwNzcsIDAuNDc1OSwgMC43NDM3MDUsIDEuMTg4NjUsIDEuNjM5NywgMi42ODI5NiwgMy4yNzg5MiIsIFwKLSAgICAgICAgICAiMC40NjkwMjMsIDAuNDk4NzQxLCAwLjc2NzcxOSwgMS4yMTE0OSwgMS42NjI2MSwgMi43MDU5LCAzLjMwMTg4IiwgXAotICAgICAgICAgICIwLjQ4NzM4MSwgMC41MTcwOTUsIDAuNzg2MDU2LCAxLjIyOTgzLCAxLjY4MDk1LCAyLjcyNDIyLCAzLjMxOTI5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMxMjc2MSwgMC4zNzA3NDgsIDAuODk4MjIyLCAxLjc3OTksIDIuNjY4NDMsIDQuNzI0NywgNS45MTgxMiIsIFwKLSAgICAgICAgICAiMC4zMTMwOTYsIDAuMzcxNjk3LCAwLjg5ODA4NSwgMS43ODI2NCwgMi42NzIyNCwgNC43MjM1LCA1LjkxNzYyIiwgXAotICAgICAgICAgICIwLjMxMjc4NiwgMC4zNzE2MywgMC44OTg2MjksIDEuNzgwMzMsIDIuNjY4MTcsIDQuNzIzOTMsIDUuOTE2NTkiLCBcCi0gICAgICAgICAgIjAuMzEyNzYsIDAuMzcwNzcsIDAuODk4MjA1LCAxLjc3OTcxLCAyLjY2ODQ0LCA0LjcyNDcyLCA1LjkxNzk2IiwgXAotICAgICAgICAgICIwLjMxMzI2LCAwLjM3MTcwNCwgMC44OTgxMzYsIDEuNzgyNjksIDIuNjcyMzcsIDQuNzIzODYsIDUuOTE3NzIiLCBcCi0gICAgICAgICAgIjAuMzEyNzU5LCAwLjM3MDc1LCAwLjg5ODE3OSwgMS43Nzk3MywgMi42NjgzNywgNC43MjQ0NiwgNS45MTc3NSIsIFwKLSAgICAgICAgICAiMC4zMTI3NjksIDAuMzcwOTc1LCAwLjg5ODM0OCwgMS43Nzg2NCwgMi42NjgxOCwgNC43MjM4NiwgNS45MTk1MyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogY2xlYXI7Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjUwODgwOCwgMC41Mzg3NCwgMC44MDc1MDEsIDEuMjU0NzEsIDEuNzAxNzEsIDIuNzM2MzEsIDMuMzQwNjkiLCBcCi0gICAgICAgICAgIjAuNTIwNTQxLCAwLjU1MDQ3MiwgMC44MTkyMzQsIDEuMjY2NDQsIDEuNzEzNDUsIDIuNzQ4NTIsIDMuMzUyNDMiLCBcCi0gICAgICAgICAgIjAuNTM1MjE4LCAwLjU2NTE1NSwgMC44MzM5MTgsIDEuMjgxMTMsIDEuNzI4MTIsIDIuNzcwOTgsIDMuMzY3MDgiLCBcCi0gICAgICAgICAgIjAuNTQ5NzQ4LCAwLjU3OTY4LCAwLjg0ODQ0NCwgMS4yOTU2NSwgMS43NDI2NCwgMi43NzY3NiwgMy4zODE2IiwgXAotICAgICAgICAgICIwLjU2NDIwMSwgMC41OTQxMzMsIDAuODYyODk5LCAxLjMxMDEsIDEuNzU3MTEsIDIuNzkyMzcsIDMuMzk2MDciLCBcCi0gICAgICAgICAgIjAuNTg1NjA1LCAwLjYxNTQzNywgMC44ODQ0NDYsIDEuMzMxNzEsIDEuNzc4NTEsIDIuODIxNzEsIDMuNDExMjQiLCBcCi0gICAgICAgICAgIjAuNjAyNzY5LCAwLjYzMjcwNywgMC45MDE0NywgMS4zNDg3NCwgMS43OTU0NiwgMi44Mzg5NCwgMy40MzQ0NiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMTMyNDEsIDAuMzcxNDQ2LCAwLjkwMDkyOCwgMS43ODUyMSwgMi42Njc4NCwgNC43MjkwMywgNS45MTg3OSIsIFwKLSAgICAgICAgICAiMC4zMTMxODUsIDAuMzcxMzgsIDAuOTAwOTIzLCAxLjc4NTIsIDIuNjY3ODQsIDQuNzM1ODEsIDUuOTE5NDMiLCBcCi0gICAgICAgICAgIjAuMzEzMTgxLCAwLjM3MTQ3LCAwLjkwMDkxNCwgMS43ODUyLCAyLjY2Nzc5LCA0LjcyMTM1LCA1LjkxOTI2IiwgXAotICAgICAgICAgICIwLjMxMzE4OSwgMC4zNzE0NzQsIDAuOTAwOTExLCAxLjc4NTE2LCAyLjY2NzcyLCA0LjcyOTAyLCA1LjkxODg0IiwgXAotICAgICAgICAgICIwLjMxMzE1MSwgMC4zNzE0MSwgMC45MDA5MTgsIDEuNzg1MTQsIDIuNjY3NywgNC43MzY0MSwgNS45MTkxOCIsIFwKLSAgICAgICAgICAiMC4zMTI2NywgMC4zNzE4NDUsIDAuOTAwNzY1LCAxLjc4NTE0LCAyLjY2NzY2LCA0LjcyNTQ1LCA1LjkxOTI4IiwgXAotICAgICAgICAgICIwLjMxMzIxNCwgMC4zNzE0MzYsIDAuOTAwNzIyLCAxLjc4NTMsIDIuNjY5LCA0LjczNTE3LCA1LjkxOTA3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiBwcmVzZXQ7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjM0MDQ2NSwgMC4zNjU2ODgsIDAuNTk0NjU3LCAwLjk3Mzk5MiwgMS4zNTM5NCwgMi4yMzg0MSwgMi43NDQzNSIsIFwKLSAgICAgICAgICAiMC4zNTIwNTksIDAuMzc3MjE0LCAwLjYwNTkxOCwgMC45ODQ3NTEsIDEuMzY1MTQsIDIuMjUwNzYsIDIuNzU1OTkiLCBcCi0gICAgICAgICAgIjAuMzY2MzY4LCAwLjM5MTcyMywgMC42MjAyOSwgMS4wMDAxNSwgMS4zNzk4OCwgMi4yNjQyNywgMi43NzAyNSIsIFwKLSAgICAgICAgICAiMC4zODAxMzYsIDAuNDA1Mjg2LCAwLjYzMzUxMiwgMS4wMTI2MywgMS4zOTM2LCAyLjI3ODkzLCAyLjc4NTgxIiwgXAotICAgICAgICAgICIwLjM5MjkzNSwgMC40MTgyMDEsIDAuNjQ2NzYxLCAxLjAyNjM2LCAxLjQwNjMxLCAyLjI5MTI5LCAyLjc5NzEzIiwgXAotICAgICAgICAgICIwLjQxMzk0MywgMC40MzkwNzIsIDAuNjY3MzUyLCAxLjA0Njg2LCAxLjQyNzcyLCAyLjMxMTM5LCAyLjgxODAzIiwgXAotICAgICAgICAgICIwLjQzNDEzOCwgMC40NTkzOTksIDAuNjg3OTEyLCAxLjA2NjU2LCAxLjQ0NTc2LCAyLjMzMjMzLCAyLjgzODkyIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI3Nzc4MiwgMC4zMjg3OTMsIDAuNzk1NTU4LCAxLjU3NTMsIDIuMzU0NzEsIDQuMTY0MDQsIDUuMTk3NjYiLCBcCi0gICAgICAgICAgIjAuMjc3MzYzLCAwLjMyODgzLCAwLjc5MDU1OSwgMS41NzUzMywgMi4zNTQ5MSwgNC4xNjUzNiwgNS4xOTQ5OCIsIFwKLSAgICAgICAgICAiMC4yNzc0MDksIDAuMzI4NzU2LCAwLjc5NTQ5MiwgMS41NzUzLCAyLjM1NDkyLCA0LjE1NzMyLCA1LjE5NjgxIiwgXAotICAgICAgICAgICIwLjI3NzM5NCwgMC4zMjg5OTgsIDAuNzk1NTEzLCAxLjU3NTM0LCAyLjM1MjQ0LCA0LjE1OTQ4LCA1LjE4NjU3IiwgXAotICAgICAgICAgICIwLjI3NzQzMiwgMC4zMjg4NjQsIDAuNzk1NTE3LCAxLjU3NTMsIDIuMzU0NzcsIDQuMTYyOTYsIDUuMTk1NCIsIFwKLSAgICAgICAgICAiMC4yNzc0MzgsIDAuMzI4ODMxLCAwLjc5MDg5NiwgMS41NzUyNiwgMi4zNTQ5OSwgNC4xNjEzOSwgNS4xOTY2OSIsIFwKLSAgICAgICAgICAiMC4yNzczOTksIDAuMzI4OTI0LCAwLjc5NTUxLCAxLjU3NTMxLCAyLjM1NDk5LCA0LjE3MzkxLCA1LjE5NzQiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuNDc5NjgyLCAwLjUwOTQ2MSwgMC43Nzg2NTksIDEuMjI2MDYsIDEuNjcyOTgsIDIuNzE2MywgMy4zMTI4OSIsIFwKLSAgICAgICAgICAiMC40OTE5MSwgMC41MjE4NDIsIDAuNzkwNzM0LCAxLjIzODE0LCAxLjY4NDk3LCAyLjcyODQ4LCAzLjMyNDAzIiwgXAotICAgICAgICAgICIwLjUwNjc0NSwgMC41MzY2ODgsIDAuODA1NTY5LCAxLjI1Mjk3LCAxLjY5OTc5LCAyLjc0MzI4LCAzLjMzODgyIiwgXAotICAgICAgICAgICIwLjUyMDkxMSwgMC41NTA4NTMsIDAuODE5NzM3LCAxLjI2NzA2LCAxLjcxNDEzLCAyLjc0OTE3LCAzLjM1MzE3IiwgXAotICAgICAgICAgICIwLjUzNDczNCwgMC41NjQ0OTIsIDAuODMzNTU5LCAxLjI4MDk1LCAxLjcyNzczLCAyLjc3MTI3LCAzLjM2NjgyIiwgXAotICAgICAgICAgICIwLjU1NjY5NiwgMC41ODY0MDgsIDAuODU1NTIyLCAxLjMwMjkxLCAxLjc0OTY4LCAyLjc5MzIxLCAzLjM4ODc4IiwgXAotICAgICAgICAgICIwLjU3NTY4MywgMC42MDU2MjUsIDAuODc0NTA4LCAxLjMyMTg4LCAxLjc2ODY4LCAyLjgxMjIxLCAzLjQwNzczIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMxMzA3NCwgMC4zNzE0NzEsIDAuOTAwNzAxLCAxLjc4NTA3LCAyLjY2OTIxLCA0LjcyNTU2LCA1LjkxMDMyIiwgXAotICAgICAgICAgICIwLjMxMzE5MywgMC4zNzE0NzksIDAuOTAwNzM3LCAxLjc4NTM2LCAyLjY3MTI1LCA0LjczMzU1LCA1LjkxOTA2IiwgXAotICAgICAgICAgICIwLjMxMzI0MSwgMC4zNzE0NTEsIDAuOTAwNzE0LCAxLjc4NTI3LCAyLjY2OTEyLCA0LjczMDU2LCA1LjkxOTEiLCBcCi0gICAgICAgICAgIjAuMzEzMjQxLCAwLjM3MTQ1MywgMC45MDA5MTcsIDEuNzg1MTEsIDIuNjY4OTMsIDQuNzIzOTksIDUuOTE4ODciLCBcCi0gICAgICAgICAgIjAuMzEzMjQxLCAwLjM3MTQ1NywgMC45MDA3MywgMS43ODUyOSwgMi42NjgsIDQuNzM1MDEsIDUuOTE5MSIsIFwKLSAgICAgICAgICAiMC4zMTMxNzQsIDAuMzcxMDc3LCAwLjkwMDczMSwgMS43ODUyNiwgMi42Njc5NSwgNC43MTkxMywgNS45MTkxMSIsIFwKLSAgICAgICAgICAiMC4zMTMxNzIsIDAuMzcxMTUzLCAwLjkwMDc3OCwgMS43ODUxNywgMi42Njc5OCwgNC43MzE2LCA1LjkxOTIyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0tOIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDM2MjksIDAuMDAzNjMsIDAuMDAzNjMyLCAwLjAwMzYzMywgMC4wMDM2MzMsIDAuMDAzNjM0LCAwLjAwMzYzNCIsIFwKLSAgICAgICAgICAiMC4wMDM2MjMsIDAuMDAzNjI0LCAwLjAwMzYyNywgMC4wMDM2MjgsIDAuMDAzNjI4LCAwLjAwMzYyOCwgMC4wMDM2MjgiLCBcCi0gICAgICAgICAgIjAuMDAzNjE5LCAwLjAwMzYyLCAwLjAwMzYyMiwgMC4wMDM2MjMsIDAuMDAzNjIzLCAwLjAwMzYyMywgMC4wMDM2MjQiLCBcCi0gICAgICAgICAgIjAuMDAzNjE2LCAwLjAwMzYxNywgMC4wMDM2MTksIDAuMDAzNjIsIDAuMDAzNjIsIDAuMDAzNjIxLCAwLjAwMzYyMSIsIFwKLSAgICAgICAgICAiMC4wMDM2MTUsIDAuMDAzNjE2LCAwLjAwMzYxOCwgMC4wMDM2MTksIDAuMDAzNjIsIDAuMDAzNjIsIDAuMDAzNjIiLCBcCi0gICAgICAgICAgIjAuMDAzNjE2LCAwLjAwMzYxNywgMC4wMDM2MTksIDAuMDAzNjIsIDAuMDAzNjIxLCAwLjAwMzYyMSwgMC4wMDM2MjEiLCBcCi0gICAgICAgICAgIjAuMDAzNjE1LCAwLjAwMzYxNiwgMC4wMDM2MTgsIDAuMDAzNjE5LCAwLjAwMzYyLCAwLjAwMzYyLCAwLjAwMzYyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzMjE2LCAwLjAwMzIxNywgMC4wMDMyMiwgMC4wMDMyMjEsIDAuMDAzMjIxLCAwLjAwMzIyMiwgMC4wMDMyMjEiLCBcCi0gICAgICAgICAgIjAuMDAzMjExLCAwLjAwMzIxMiwgMC4wMDMyMTUsIDAuMDAzMjE2LCAwLjAwMzIxNiwgMC4wMDMyMTcsIDAuMDAzMjE3IiwgXAotICAgICAgICAgICIwLjAwMzIwNiwgMC4wMDMyMDcsIDAuMDAzMjA5LCAwLjAwMzIxLCAwLjAwMzIxMSwgMC4wMDMyMTEsIDAuMDAzMjExIiwgXAotICAgICAgICAgICIwLjAwMzIwMSwgMC4wMDMyMDIsIDAuMDAzMjA1LCAwLjAwMzIwNiwgMC4wMDMyMDYsIDAuMDAzMjA2LCAwLjAwMzIwNiIsIFwKLSAgICAgICAgICAiMC4wMDMxOTcsIDAuMDAzMTk4LCAwLjAwMzIsIDAuMDAzMjAxLCAwLjAwMzIwMiwgMC4wMDMyMDIsIDAuMDAzMjAyIiwgXAotICAgICAgICAgICIwLjAwMzE5NSwgMC4wMDMxOTUsIDAuMDAzMTk4LCAwLjAwMzE5OSwgMC4wMDMyLCAwLjAwMzIsIDAuMDAzMiIsIFwKLSAgICAgICAgICAiMC4wMDMxOTIsIDAuMDAzMTkzLCAwLjAwMzE5NSwgMC4wMDMxOTYsIDAuMDAzMTk3LCAwLjAwMzE5NywgMC4wMDMxOTciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzOTU0LCAwLjAwMzk1NCwgMC4wMDM5NTUsIDAuMDAzOTUzLCAwLjAwMzk1MiwgMC4wMDM5NTEsIDAuMDAzOTUiLCBcCi0gICAgICAgICAgIjAuMDAzOTQ5LCAwLjAwMzk0OSwgMC4wMDM5NSwgMC4wMDM5NDgsIDAuMDAzOTQ3LCAwLjAwMzk0NiwgMC4wMDM5NDYiLCBcCi0gICAgICAgICAgIjAuMDAzOTQ1LCAwLjAwMzk0NSwgMC4wMDM5NDYsIDAuMDAzOTQ0LCAwLjAwMzk0MywgMC4wMDM5NDIsIDAuMDAzOTQxIiwgXAotICAgICAgICAgICIwLjAwMzk0MSwgMC4wMDM5NDIsIDAuMDAzOTQyLCAwLjAwMzk0LCAwLjAwMzkzOSwgMC4wMDM5MzgsIDAuMDAzOTM4IiwgXAotICAgICAgICAgICIwLjAwMzk0LCAwLjAwMzk0LCAwLjAwMzk0MSwgMC4wMDM5MzksIDAuMDAzOTM4LCAwLjAwMzkzNywgMC4wMDM5MzYiLCBcCi0gICAgICAgICAgIjAuMDAzOTM3LCAwLjAwMzkzOCwgMC4wMDM5MzgsIDAuMDAzOTM2LCAwLjAwMzkzNSwgMC4wMDM5MzQsIDAuMDAzOTM0IiwgXAotICAgICAgICAgICIwLjAwMzkzNSwgMC4wMDM5MzYsIDAuMDAzOTM2LCAwLjAwMzkzNCwgMC4wMDM5MzMsIDAuMDAzOTMyLCAwLjAwMzkzMiIpOwotICAgICAgfQotICAgICAgcmlzZV9wb3dlcihzY2FsYXIpIHsKLSAgICAgICAgdmFsdWVzKCIwIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiU04iOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzgwMywgMC4wMDM4MDUsIDAuMDAzODA2LCAwLjAwMzgwNywgMC4wMDM4MDcsIDAuMDAzODA4LCAwLjAwMzgwNyIsIFwKLSAgICAgICAgICAiMC4wMDM3OTcsIDAuMDAzNzk4LCAwLjAwMzgsIDAuMDAzODAxLCAwLjAwMzgwMSwgMC4wMDM4MDEsIDAuMDAzODAxIiwgXAotICAgICAgICAgICIwLjAwMzc5MywgMC4wMDM3OTQsIDAuMDAzNzk2LCAwLjAwMzc5NywgMC4wMDM3OTcsIDAuMDAzNzk3LCAwLjAwMzc5NyIsIFwKLSAgICAgICAgICAiMC4wMDM3OSwgMC4wMDM3OTEsIDAuMDAzNzkzLCAwLjAwMzc5NCwgMC4wMDM3OTQsIDAuMDAzNzk0LCAwLjAwMzc5NCIsIFwKLSAgICAgICAgICAiMC4wMDM3ODgsIDAuMDAzNzg5LCAwLjAwMzc5MSwgMC4wMDM3OTIsIDAuMDAzNzkyLCAwLjAwMzc5MiwgMC4wMDM3OTIiLCBcCi0gICAgICAgICAgIjAuMDAzNzg1LCAwLjAwMzc4NiwgMC4wMDM3ODgsIDAuMDAzNzg5LCAwLjAwMzc4OCwgMC4wMDM3ODksIDAuMDAzNzg5IiwgXAotICAgICAgICAgICIwLjAwMzc4MywgMC4wMDM3ODQsIDAuMDAzNzg2LCAwLjAwMzc4NywgMC4wMDM3ODcsIDAuMDAzNzg3LCAwLjAwMzc4NiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjg4MSwgMC4wMDI4ODIsIDAuMDAyODg1LCAwLjAwMjg4NiwgMC4wMDI4ODcsIDAuMDAyODg3LCAwLjAwMjg4NyIsIFwKLSAgICAgICAgICAiMC4wMDI4NzUsIDAuMDAyODc2LCAwLjAwMjg3OSwgMC4wMDI4OCwgMC4wMDI4OCwgMC4wMDI4OCwgMC4wMDI4ODEiLCBcCi0gICAgICAgICAgIjAuMDAyODcsIDAuMDAyODcxLCAwLjAwMjg3NCwgMC4wMDI4NzUsIDAuMDAyODc2LCAwLjAwMjg3NiwgMC4wMDI4NzYiLCBcCi0gICAgICAgICAgIjAuMDAyODY4LCAwLjAwMjg2OCwgMC4wMDI4NzEsIDAuMDAyODcyLCAwLjAwMjg3MywgMC4wMDI4NzMsIDAuMDAyODczIiwgXAotICAgICAgICAgICIwLjAwMjg2NSwgMC4wMDI4NjYsIDAuMDAyODY5LCAwLjAwMjg3LCAwLjAwMjg3LCAwLjAwMjg3LCAwLjAwMjg3MSIsIFwKLSAgICAgICAgICAiMC4wMDI4NjIsIDAuMDAyODYzLCAwLjAwMjg2NiwgMC4wMDI4NjcsIDAuMDAyODY3LCAwLjAwMjg2NywgMC4wMDI4NjgiLCBcCi0gICAgICAgICAgIjAuMDAyODYsIDAuMDAyODYxLCAwLjAwMjg2MywgMC4wMDI4NjQsIDAuMDAyODY1LCAwLjAwMjg2NSwgMC4wMDI4NjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFFOKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMDcwMjUwNTsKLSAgICBmdW5jdGlvbiA6ICJRQklOVCI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0tOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5vbl91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogZmFsbGluZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zODgwNDEsIDAuNDEzMjgxLCAwLjY0MDQ1OCwgMS4wMTkyNiwgMS4zOTc4OSwgMi4yODE0MSwgMi43ODYzMiIsIFwKLSAgICAgICAgICAiMC4zOTk0MzUsIDAuNDI0NjY4LCAwLjY1MTg0NiwgMS4wMzA2NCwgMS40MDkxOSwgMi4yOTI4MywgMi43OTc3MyIsIFwKLSAgICAgICAgICAiMC40MTQyMTcsIDAuNDM5NDU5LCAwLjY2NjYzMiwgMS4wNDU0NSwgMS40MjQwNSwgMi4zMDc1OSwgMi44MTIzNCIsIFwKLSAgICAgICAgICAiMC40MjkwMDYsIDAuNDU0MjQ2LCAwLjY4MTQyMiwgMS4wNjAyMywgMS40Mzg4NiwgMi4zMjIzNywgMi44MjcyOCIsIFwKLSAgICAgICAgICAiMC40NDMxMzMsIDAuNDY4Mzg1LCAwLjY5NTU2NCwgMS4wNzQzNiwgMS40NTI5MSwgMi4zMzY1NCwgMi44NDE0NiIsIFwKLSAgICAgICAgICAiMC40NjYwNDcsIDAuNDkxMjg3LCAwLjcxODQ2NCwgMS4wOTcyNywgMS40NzU5LCAyLjM1OTQxLCAyLjg2NDI5IiwgXAotICAgICAgICAgICIwLjQ4NDQxNCwgMC41MDk2NTQsIDAuNzM2ODMsIDEuMTE1NjQsIDEuNDk0MjYsIDIuMzc3NzgsIDIuODgyODUiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjY4NzEzLCAwLjMxOTUyMiwgMC43ODE3MDUsIDEuNTQ3NjEsIDIuMzIxNjcsIDQuMTE3MzEsIDUuMTM3MDMiLCBcCi0gICAgICAgICAgIjAuMjY4Njk3LCAwLjMxOTg1MSwgMC43ODEzNjYsIDEuNTQ3NjMsIDIuMzIxMDYsIDQuMTE3MzUsIDUuMTM3MTIiLCBcCi0gICAgICAgICAgIjAuMjY4NzEzLCAwLjMxOTk1NywgMC43ODE2NTgsIDEuNTQ3NiwgMi4zMjE2MiwgNC4xMTczNCwgNS4xMzcxNCIsIFwKLSAgICAgICAgICAiMC4yNjg3MTMsIDAuMzE5NTIsIDAuNzgxNzA2LCAxLjU0NzYxLCAyLjMyMTY3LCA0LjExNzMxLCA1LjEzNzA1IiwgXAotICAgICAgICAgICIwLjI2ODY5OCwgMC4zMTk4NDcsIDAuNzgxMzQxLCAxLjU0NzYzLCAyLjMyMTEsIDQuMTE3MzYsIDUuMTM3MSIsIFwKLSAgICAgICAgICAiMC4yNjg3MTMsIDAuMzE5NTIyLCAwLjc4MTcxMSwgMS41NDc2MSwgMi4zMjE2OCwgNC4xMTczLCA1LjEzNzEiLCBcCi0gICAgICAgICAgIjAuMjY4NzEzLCAwLjMxOTUxNCwgMC43ODE2ODgsIDEuNTQ3NjEsIDIuMzIxNjYsIDQuMTE3MjksIDUuMTM2NzMiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuNDQ3NjAxLCAwLjQ3NzI5NiwgMC43NDQ2MjYsIDEuMTkwMSwgMS42MzU1MiwgMi42NzQ4NywgMy4yNjg5NiIsIFwKLSAgICAgICAgICAiMC40NTg5MDIsIDAuNDg4NTk3LCAwLjc1NTg1OSwgMS4yMDEzMywgMS42NDY4NCwgMi42ODYwMSwgMy4yODAyMSIsIFwKLSAgICAgICAgICAiMC40NzM4MDMsIDAuNTAzNTA2LCAwLjc3MDgwNCwgMS4yMTYzNywgMS42NjE3MywgMi43MDExNSwgMy4yOTUwMiIsIFwKLSAgICAgICAgICAiMC40ODg3MDQsIDAuNTE4NDAyLCAwLjc4NTcxNywgMS4yMzEyOSwgMS42NzY2MSwgMi43MTYxMywgMy4zMTAwOSIsIFwKLSAgICAgICAgICAiMC41MDMxNTIsIDAuNTMyODQ2LCAwLjgwMDExNSwgMS4yNDU2NCwgMS42OTEwOCwgMi43MzAzNCwgMy4zMjQ0OCIsIFwKLSAgICAgICAgICAiMC41MjYxMSwgMC41NTU4MDcsIDAuODIzMTI0LCAxLjI2ODY1LCAxLjcxMzk3LCAyLjc1MzQ4LCAzLjM0NzQ5IiwgXAotICAgICAgICAgICIwLjU0NDYyNiwgMC41NzQzMjgsIDAuODQxNjI3LCAxLjI4NzE4LCAxLjczMjU1LCAyLjc3MTk3LCAzLjM2NTcyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMwNzQ1NCwgMC4zNjYxNjIsIDAuODk0NDI0LCAxLjc3NjczLCAyLjY1ODYxLCA0LjcxNTc3LCA1Ljg4OTU3IiwgXAotICAgICAgICAgICIwLjMwNzQ2MSwgMC4zNjYxNjUsIDAuODk1MDYxLCAxLjc3Njc3LCAyLjY1ODU4LCA0LjcxNTYyLCA1Ljg4OTkzIiwgXAotICAgICAgICAgICIwLjMwNzIxOSwgMC4zNjYxNjUsIDAuODk1MzIyLCAxLjc3NTg3LCAyLjY1ODYsIDQuNzE1NzUsIDUuODg5ODMiLCBcCi0gICAgICAgICAgIjAuMzA3NDcsIDAuMzY1OSwgMC44OTUyODEsIDEuNzc1NzcsIDIuNjU2NDIsIDQuNzE1NzYsIDUuODg5OTgiLCBcCi0gICAgICAgICAgIjAuMzA3NDU2LCAwLjM2NjE2NCwgMC44OTQ2OTgsIDEuNzc2MSwgMi42NTg1NiwgNC43MTM2NSwgNS44ODk5NSIsIFwKLSAgICAgICAgICAiMC4zMDc0NjgsIDAuMzY1OTk1LCAwLjg5NTI3NSwgMS43NzU2OSwgMi42NTg1NywgNC43MTU3MywgNS44ODY4OCIsIFwKLSAgICAgICAgICAiMC4zMDczNDYsIDAuMzY2MTY5LCAwLjg5NTMyMiwgMS43NzU3NCwgMi42NTg1OCwgNC43MTU3MSwgNS44ODk3MSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcHJlc2V0OwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC41MDYxOTgsIDAuNTMxNDIyLCAwLjc1ODY0NywgMS4xMzczMiwgMS41MTU5NywgMi4zOTk0MywgMi45MDQ2MyIsIFwKLSAgICAgICAgICAiMC41MTc5MzIsIDAuNTQzMTU2LCAwLjc3MDM4LCAxLjE0OTA1LCAxLjUyNzcsIDIuNDExMTUsIDIuOTE2MzYiLCBcCi0gICAgICAgICAgIjAuNTMyNTk3LCAwLjU1NzgzNiwgMC43ODUwNiwgMS4xNjM3MywgMS41NDIzOCwgMi40MjYwNywgMi45MzEwNSIsIFwKLSAgICAgICAgICAiMC41NDcxMzYsIDAuNTcyMzYxLCAwLjc5OTU4NSwgMS4xNzgyNiwgMS41NTY5MSwgMi40NDAzNywgMi45NDU1OCIsIFwKLSAgICAgICAgICAiMC41NjE1OTUsIDAuNTg2ODE3LCAwLjgxNDA0MiwgMS4xOTI3MSwgMS41NzEzNiwgMi40NTQ4MSwgMi45NjAwMiIsIFwKLSAgICAgICAgICAiMC41ODMxMzEsIDAuNjA4MzY1LCAwLjgzNTYxNiwgMS4yMTQyOCwgMS41OTI5OSwgMi40NzY1OSwgMi45ODEyMyIsIFwKLSAgICAgICAgICAiMC42MDAxNDUsIDAuNjI1MzgzLCAwLjg1MjU5MSwgMS4yMzEyNywgMS42MDk5OSwgMi40OTM1MywgMi45OTg1OSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yNjg5MTYsIDAuMzIwMTEyLCAwLjc4MjE3MSwgMS41NTIwOSwgMi4zMjE4NywgNC4xMTY5LCA1LjEzNjk2IiwgXAotICAgICAgICAgICIwLjI2ODkxOSwgMC4zMjAxMTIsIDAuNzgyMTY5LCAxLjU1MjA4LCAyLjMyMTg2LCA0LjExMDUsIDUuMTM2OTYiLCBcCi0gICAgICAgICAgIjAuMjY4ODYsIDAuMzIwMTEyLCAwLjc4MjE2NiwgMS41NTIwOCwgMi4zMjE4NywgNC4xMTcyNSwgNS4xMzY5NiIsIFwKLSAgICAgICAgICAiMC4yNjg5MSwgMC4zMjAxMTIsIDAuNzgyMTY2LCAxLjU1MjA3LCAyLjMyMTg2LCA0LjExMDc1LCA1LjEzNjk1IiwgXAotICAgICAgICAgICIwLjI2ODkyMiwgMC4zMjAxMTEsIDAuNzgyMTY5LCAxLjU1MjA4LCAyLjMyMTg1LCA0LjExMDM5LCA1LjEzNjk1IiwgXAotICAgICAgICAgICIwLjI2NzkzNywgMC4zMTkzMTgsIDAuNzgyMTE5LCAxLjU1MTk5LCAyLjMyMjExLCA0LjExNzI2LCA1LjEzNjUxIiwgXAotICAgICAgICAgICIwLjI2ODg1NywgMC4zMjAxMTEsIDAuNzgyMTA0LCAxLjU1MjA0LCAyLjMyMjMxLCA0LjExNzI5LCA1LjEzNjg2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiBjbGVhcjsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuNDc3MTkzLCAwLjUwMjQ1OSwgMC43Mjk2ODEsIDEuMTA4MzUsIDEuNDg3MDUsIDIuMzcwNjUsIDIuODc1MjkiLCBcCi0gICAgICAgICAgIjAuNDg5MzAzLCAwLjUxNDUzMywgMC43NDE3NDgsIDEuMTIwNDMsIDEuNDk5MTQsIDIuMzgyNjksIDIuODg3NzUiLCBcCi0gICAgICAgICAgIjAuNTA0MTM4LCAwLjUyOTM2NywgMC43NTY1ODMsIDEuMTM1MjYsIDEuNTEzOTcsIDIuMzk3NTMsIDIuOTAyNTkiLCBcCi0gICAgICAgICAgIjAuNTE4MjkzLCAwLjU0MzUxNSwgMC43NzA3NDEsIDEuMTQ5NDEsIDEuNTI4MDYsIDIuNDExNTIsIDIuOTE2NzMiLCBcCi0gICAgICAgICAgIjAuNTMyMDk3LCAwLjU1NzMzLCAwLjc4NDU0NSwgMS4xNjMyMiwgMS41NDE5NCwgMi40MjU0OSwgMi45MzA1NCIsIFwKLSAgICAgICAgICAiMC41NTQwNiwgMC41NzkyOTQsIDAuODA2NTA4LCAxLjE4NTE5LCAxLjU2MzkxLCAyLjQ0NzQ1LCAyLjk1MjUiLCBcCi0gICAgICAgICAgIjAuNTczMDc3LCAwLjU5ODMwOCwgMC44MjU1MjgsIDEuMjA0MjEsIDEuNTgyOTMsIDIuNDY2NDcsIDIuOTcxNTIiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjY4ODMxLCAwLjMyMDA0LCAwLjc4MjEzOSwgMS41NTIwNSwgMi4zMjIxNiwgNC4xMTcyOCwgNS4xMzcxMiIsIFwKLSAgICAgICAgICAiMC4yNjg4NjUsIDAuMzIwMDk0LCAwLjc4MjEwNCwgMS41NTIwNCwgMi4zMjIyNywgNC4xMTcyNCwgNS4xMzY2OSIsIFwKLSAgICAgICAgICAiMC4yNjg4NjMsIDAuMzIwMTAxLCAwLjc4MjA5OSwgMS41NTIwMiwgMi4zMjIyNiwgNC4xMTcyMywgNS4xMzY2OCIsIFwKLSAgICAgICAgICAiMC4yNjg5MiwgMC4zMjAxMSwgMC43ODIxNjYsIDEuNTUyMDcsIDIuMzIxODQsIDQuMTE2MDYsIDUuMTM2OTQiLCBcCi0gICAgICAgICAgIjAuMjY4ODU3LCAwLjMyMDAzLCAwLjc4MjEwMywgMS41NTIwNCwgMi4zMjIzMiwgNC4xMTcyOCwgNS4xMzY4NSIsIFwKLSAgICAgICAgICAiMC4yNjg4NTcsIDAuMzE5OTYzLCAwLjc4MjEwNCwgMS41NTIwNCwgMi4zMjIzMywgNC4xMTcyOCwgNS4xMzY4NSIsIFwKLSAgICAgICAgICAiMC4yNjg4NjIsIDAuMzIwMDg4LCAwLjc4MjExMiwgMS41NTIwNCwgMi4zMjIzLCA0LjExNzIzLCA1LjEzNjg0Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjM4MjEwNSwgMC40MTE3OTcsIDAuNjc5MTIzLCAxLjEyNDUsIDEuNTcwMDEsIDIuNjA5MTYsIDMuMjAzMDQiLCBcCi0gICAgICAgICAgIjAuMzkzNjg3LCAwLjQyMzM5OCwgMC42OTA2ODgsIDEuMTM2MSwgMS41ODE1NywgMi42MjA3OSwgMy4yMTQ1OCIsIFwKLSAgICAgICAgICAiMC40MDgxNiwgMC40Mzc4NDQsIDAuNzA1MTc2LCAxLjE1MDU5LCAxLjU5NjA1LCAyLjYzNTIxLCAzLjIyOTA4IiwgXAotICAgICAgICAgICIwLjQyMTY5MywgMC40NTEzOSwgMC43MTg3MDMsIDEuMTY0MDgsIDEuNjA5NjEsIDIuNjQ4NzYsIDMuMjQyNzIiLCBcCi0gICAgICAgICAgIjAuNDM0NjAxLCAwLjQ2NDI5MiwgMC43MzE2MjIsIDEuMTc3MDYsIDEuNjIyNDYsIDIuNjYxNjcsIDMuMjU1NTQiLCBcCi0gICAgICAgICAgIjAuNDU1ODYsIDAuNDg1NTczLCAwLjc1Mjg0NSwgMS4xOTgyOSwgMS42NDM3OSwgMi42ODI5NCwgMy4yNzY4MyIsIFwKLSAgICAgICAgICAiMC40NzYwNzcsIDAuNTA1NzY5LCAwLjc3MzA3LCAxLjIxODQzLCAxLjY2MzgyLCAyLjcwMzE0LCAzLjI5NzA0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMwNzQzNiwgMC4zNjYxNDQsIDAuODk1MjY5LCAxLjc3NjksIDIuNjU4NjcsIDQuNzE1NTQsIDUuODg5NjciLCBcCi0gICAgICAgICAgIjAuMzA3NDI1LCAwLjM2NjI0NiwgMC44OTUzNzYsIDEuNzc2OSwgMi42NTg2LCA0LjcxMzY3LCA1Ljg4OTc2IiwgXAotICAgICAgICAgICIwLjMwNzQzMiwgMC4zNjYxNDQsIDAuODk1Mzc1LCAxLjc3Njg2LCAyLjY1ODYxLCA0LjcxMzczLCA1Ljg4OTY5IiwgXAotICAgICAgICAgICIwLjMwNzQyMSwgMC4zNjYxNSwgMC44OTUzNjcsIDEuNzc2ODksIDIuNjU4NTcsIDQuNzEzODMsIDUuODg5OTEiLCBcCi0gICAgICAgICAgIjAuMzA3NDMzLCAwLjM2NjE0NiwgMC44OTUzNjksIDEuNzc2OTIsIDIuNjU4NjUsIDQuNzEzODMsIDUuODg5NDkiLCBcCi0gICAgICAgICAgIjAuMzA3NDM0LCAwLjM2NjE1NSwgMC44OTUzNjYsIDEuNzc2OTEsIDIuNjU4NjQsIDQuNzEzODQsIDUuODg5NTMiLCBcCi0gICAgICAgICAgIjAuMzA3NDMsIDAuMzY2MTUsIDAuODk1MzQ2LCAxLjc3NjkxLCAyLjY1ODYsIDQuNzE1NywgNS44ODk3NCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzMjE2LCAwLjAwMzIxNywgMC4wMDMyMiwgMC4wMDMyMjEsIDAuMDAzMjIxLCAwLjAwMzIyMiwgMC4wMDMyMjEiLCBcCi0gICAgICAgICAgIjAuMDAzMjExLCAwLjAwMzIxMiwgMC4wMDMyMTUsIDAuMDAzMjE2LCAwLjAwMzIxNiwgMC4wMDMyMTcsIDAuMDAzMjE3IiwgXAotICAgICAgICAgICIwLjAwMzIwNiwgMC4wMDMyMDcsIDAuMDAzMjA5LCAwLjAwMzIxLCAwLjAwMzIxMSwgMC4wMDMyMTEsIDAuMDAzMjExIiwgXAotICAgICAgICAgICIwLjAwMzIwMSwgMC4wMDMyMDIsIDAuMDAzMjA1LCAwLjAwMzIwNiwgMC4wMDMyMDYsIDAuMDAzMjA2LCAwLjAwMzIwNiIsIFwKLSAgICAgICAgICAiMC4wMDMxOTcsIDAuMDAzMTk4LCAwLjAwMzIsIDAuMDAzMjAxLCAwLjAwMzIwMiwgMC4wMDMyMDIsIDAuMDAzMjAyIiwgXAotICAgICAgICAgICIwLjAwMzE5NSwgMC4wMDMxOTUsIDAuMDAzMTk4LCAwLjAwMzE5OSwgMC4wMDMyLCAwLjAwMzIsIDAuMDAzMiIsIFwKLSAgICAgICAgICAiMC4wMDMxOTIsIDAuMDAzMTkzLCAwLjAwMzE5NSwgMC4wMDMxOTYsIDAuMDAzMTk3LCAwLjAwMzE5NywgMC4wMDMxOTciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDM2MjksIDAuMDAzNjMsIDAuMDAzNjMyLCAwLjAwMzYzMywgMC4wMDM2MzMsIDAuMDAzNjM0LCAwLjAwMzYzNCIsIFwKLSAgICAgICAgICAiMC4wMDM2MjMsIDAuMDAzNjI0LCAwLjAwMzYyNywgMC4wMDM2MjgsIDAuMDAzNjI4LCAwLjAwMzYyOCwgMC4wMDM2MjgiLCBcCi0gICAgICAgICAgIjAuMDAzNjE5LCAwLjAwMzYyLCAwLjAwMzYyMiwgMC4wMDM2MjMsIDAuMDAzNjIzLCAwLjAwMzYyMywgMC4wMDM2MjQiLCBcCi0gICAgICAgICAgIjAuMDAzNjE2LCAwLjAwMzYxNywgMC4wMDM2MTksIDAuMDAzNjIsIDAuMDAzNjIsIDAuMDAzNjIxLCAwLjAwMzYyMSIsIFwKLSAgICAgICAgICAiMC4wMDM2MTUsIDAuMDAzNjE2LCAwLjAwMzYxOCwgMC4wMDM2MTksIDAuMDAzNjIsIDAuMDAzNjIsIDAuMDAzNjIiLCBcCi0gICAgICAgICAgIjAuMDAzNjE2LCAwLjAwMzYxNywgMC4wMDM2MTksIDAuMDAzNjIsIDAuMDAzNjIxLCAwLjAwMzYyMSwgMC4wMDM2MjEiLCBcCi0gICAgICAgICAgIjAuMDAzNjE1LCAwLjAwMzYxNiwgMC4wMDM2MTgsIDAuMDAzNjE5LCAwLjAwMzYyLCAwLjAwMzYyLCAwLjAwMzYyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUk4iOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzk1NCwgMC4wMDM5NTQsIDAuMDAzOTU1LCAwLjAwMzk1MywgMC4wMDM5NTIsIDAuMDAzOTUxLCAwLjAwMzk1IiwgXAotICAgICAgICAgICIwLjAwMzk0OSwgMC4wMDM5NDksIDAuMDAzOTUsIDAuMDAzOTQ4LCAwLjAwMzk0NywgMC4wMDM5NDYsIDAuMDAzOTQ2IiwgXAotICAgICAgICAgICIwLjAwMzk0NSwgMC4wMDM5NDUsIDAuMDAzOTQ2LCAwLjAwMzk0NCwgMC4wMDM5NDMsIDAuMDAzOTQyLCAwLjAwMzk0MSIsIFwKLSAgICAgICAgICAiMC4wMDM5NDEsIDAuMDAzOTQyLCAwLjAwMzk0MiwgMC4wMDM5NCwgMC4wMDM5MzksIDAuMDAzOTM4LCAwLjAwMzkzOCIsIFwKLSAgICAgICAgICAiMC4wMDM5NCwgMC4wMDM5NCwgMC4wMDM5NDEsIDAuMDAzOTM5LCAwLjAwMzkzOCwgMC4wMDM5MzcsIDAuMDAzOTM2IiwgXAotICAgICAgICAgICIwLjAwMzkzNywgMC4wMDM5MzgsIDAuMDAzOTM4LCAwLjAwMzkzNiwgMC4wMDM5MzUsIDAuMDAzOTM0LCAwLjAwMzkzNCIsIFwKLSAgICAgICAgICAiMC4wMDM5MzUsIDAuMDAzOTM2LCAwLjAwMzkzNiwgMC4wMDM5MzQsIDAuMDAzOTMzLCAwLjAwMzkzMiwgMC4wMDM5MzIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoc2NhbGFyKSB7Ci0gICAgICAgIHZhbHVlcygiMCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI4ODEsIDAuMDAyODgyLCAwLjAwMjg4NSwgMC4wMDI4ODYsIDAuMDAyODg3LCAwLjAwMjg4NywgMC4wMDI4ODciLCBcCi0gICAgICAgICAgIjAuMDAyODc1LCAwLjAwMjg3NiwgMC4wMDI4NzksIDAuMDAyODgsIDAuMDAyODgsIDAuMDAyODgsIDAuMDAyODgxIiwgXAotICAgICAgICAgICIwLjAwMjg3LCAwLjAwMjg3MSwgMC4wMDI4NzQsIDAuMDAyODc1LCAwLjAwMjg3NiwgMC4wMDI4NzYsIDAuMDAyODc2IiwgXAotICAgICAgICAgICIwLjAwMjg2OCwgMC4wMDI4NjgsIDAuMDAyODcxLCAwLjAwMjg3MiwgMC4wMDI4NzMsIDAuMDAyODczLCAwLjAwMjg3MyIsIFwKLSAgICAgICAgICAiMC4wMDI4NjUsIDAuMDAyODY2LCAwLjAwMjg2OSwgMC4wMDI4NywgMC4wMDI4NywgMC4wMDI4NywgMC4wMDI4NzEiLCBcCi0gICAgICAgICAgIjAuMDAyODYyLCAwLjAwMjg2MywgMC4wMDI4NjYsIDAuMDAyODY3LCAwLjAwMjg2NywgMC4wMDI4NjcsIDAuMDAyODY4IiwgXAotICAgICAgICAgICIwLjAwMjg2LCAwLjAwMjg2MSwgMC4wMDI4NjMsIDAuMDAyODY0LCAwLjAwMjg2NSwgMC4wMDI4NjUsIDAuMDAyODY1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzODAzLCAwLjAwMzgwNSwgMC4wMDM4MDYsIDAuMDAzODA3LCAwLjAwMzgwNywgMC4wMDM4MDgsIDAuMDAzODA3IiwgXAotICAgICAgICAgICIwLjAwMzc5NywgMC4wMDM3OTgsIDAuMDAzOCwgMC4wMDM4MDEsIDAuMDAzODAxLCAwLjAwMzgwMSwgMC4wMDM4MDEiLCBcCi0gICAgICAgICAgIjAuMDAzNzkzLCAwLjAwMzc5NCwgMC4wMDM3OTYsIDAuMDAzNzk3LCAwLjAwMzc5NywgMC4wMDM3OTcsIDAuMDAzNzk3IiwgXAotICAgICAgICAgICIwLjAwMzc5LCAwLjAwMzc5MSwgMC4wMDM3OTMsIDAuMDAzNzk0LCAwLjAwMzc5NCwgMC4wMDM3OTQsIDAuMDAzNzk0IiwgXAotICAgICAgICAgICIwLjAwMzc4OCwgMC4wMDM3ODksIDAuMDAzNzkxLCAwLjAwMzc5MiwgMC4wMDM3OTIsIDAuMDAzNzkyLCAwLjAwMzc5MiIsIFwKLSAgICAgICAgICAiMC4wMDM3ODUsIDAuMDAzNzg2LCAwLjAwMzc4OCwgMC4wMDM3ODksIDAuMDAzNzg4LCAwLjAwMzc4OSwgMC4wMDM3ODkiLCBcCi0gICAgICAgICAgIjAuMDAzNzgzLCAwLjAwMzc4NCwgMC4wMDM3ODYsIDAuMDAzNzg3LCAwLjAwMzc4NywgMC4wMDM3ODcsIDAuMDAzNzg2Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihSTikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNTc4NzM4OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDU3ODQ3NzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA1Nzg3Mzg7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzk0LCAwLjAwMDM4LCAwLjAwMDM3LCAwLjAwMDM2NCwgMC4wMDAzNjIsIDAuMDAwMzU5LCAwLjAwMDM1OSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTkxLCAwLjAwMTkwMSwgMC4wMDE4OTUsIDAuMDAxODkxLCAwLjAwMTg4OSwgMC4wMDE4ODcsIDAuMDAxODg2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRCYhU0UmIVNJJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9TRV9FUV8wX0FOX1NJX0VRXzBfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjUwODgwOCwgMC41MjA1NDEsIDAuNTM1MjE4LCAwLjU0OTc0OCwgMC41NjQyMDEsIDAuNTg1NjA1LCAwLjYwMjc2OSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDS04iOwotICAgICAgdGltaW5nX3R5cGUgOiByZWNvdmVyeV9mYWxsaW5nOwotICAgICAgd2hlbiA6ICJTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJTTiA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChyZWNvdmVyeV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzUsIDAuMDYzNzUsIDAuMDUxMjUsIDAuMDMyNSwgMC4wMiwgLTAuMDA4NzUsIC0wLjAyMzc1IiwgXAotICAgICAgICAgICIwLjA4NjI1LCAwLjA3NSwgMC4wNjI1LCAwLjA0Mzc1LCAwLjAzMTI1LCAwLjAwMjUsIC0wLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMTA1LCAwLjA5Mzc1LCAwLjA3NSwgMC4wNjI1LCAwLjA0Mzc1LCAwLjAyMTI1LCAwIiwgXAotICAgICAgICAgICIwLjExNzUsIDAuMTA2MjUsIDAuMDg3NSwgMC4wNzUsIDAuMDYyNSwgMC4wMzM3NSwgMC4wMTI1IiwgXAotICAgICAgICAgICIwLjEzNjI1LCAwLjEyNSwgMC4xMDYyNSwgMC4wODc1LCAwLjA3NSwgMC4wNTI1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICIwLjE1ODc1LCAwLjE0NzUsIDAuMTI4NzUsIDAuMTE2MjUsIDAuMDk3NSwgMC4wNzUsIDAuMDUzNzUiLCBcCi0gICAgICAgICAgIjAuMTgsIDAuMTYyNSwgMC4xNSwgMC4xMzEyNSwgMC4xMTg3NSwgMC4wOTYyNSwgMC4wNzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiU04iOwotICAgICAgdGltaW5nX3R5cGUgOiByZWNvdmVyeV9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEJiFTRSYhU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1NFX0VRXzBfQU5fU0lfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChyZWNvdmVyeV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xOTM3NSwgMC4yMDUsIDAuMjIzNzUsIDAuMjM2MjUsIDAuMjQ4NzUsIDAuMjcxMjUsIDAuMjg2MjUiLCBcCi0gICAgICAgICAgIjAuMTgyNSwgMC4xOTM3NSwgMC4yMDYyNSwgMC4yMjUsIDAuMjM3NSwgMC4yNiwgMC4yNzUiLCBcCi0gICAgICAgICAgIjAuMTcsIDAuMTgxMjUsIDAuMTkzNzUsIDAuMjEyNSwgMC4yMjUsIDAuMjQ3NSwgMC4yNjI1IiwgXAotICAgICAgICAgICIwLjE1NzUsIDAuMTY4NzUsIDAuMTg3NSwgMC4yLCAwLjIxMjUsIDAuMjM1LCAwLjI1IiwgXAotICAgICAgICAgICIwLjE0NSwgMC4xNTYyNSwgMC4xNzUsIDAuMTg3NSwgMC4yLCAwLjIyMjUsIDAuMjQzNzUiLCBcCi0gICAgICAgICAgIjAuMTM1LCAwLjE0NjI1LCAwLjE1ODc1LCAwLjE3MTI1LCAwLjE5LCAwLjIwNjI1LCAwLjIyNzUiLCBcCi0gICAgICAgICAgIjAuMTIsIDAuMTM3NSwgMC4xNSwgMC4xNjI1LCAwLjE3NSwgMC4xOTc1LCAwLjIxODc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJlbW92YWxfZmFsbGluZzsKLSAgICAgIHdoZW4gOiAiU04iOwotICAgICAgc2RmX2NvbmQgOiAiU04gPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQocmVtb3ZhbF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDYyNSwgMC4wMTc1LCAwLjAzLCAwLjA0MjUsIDAuMDYxMjUsIDAuMDgzNzUsIDAuMDk4NzUiLCBcCi0gICAgICAgICAgIi0wLjAxMTI1LCAwLjAwNjI1LCAwLjAxODc1LCAwLjAzMTI1LCAwLjA1LCAwLjA3MjUsIDAuMDg3NSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxMjUsIDAsIDAuMDE4NzUsIDAuMDMxMjUsIDAuMDUzNzUsIDAuMDc1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDI1LCAtMC4wMTI1LCAwLCAwLjAxODc1LCAwLjA0MTI1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA0Mzc1LCAtMC4wMjUsIC0wLjAxMjUsIDAsIDAuMDIyNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDc3NSwgLTAuMDY2MjUsIC0wLjA1Mzc1LCAtMC4wMzUsIC0wLjAyMjUsIDAsIDAuMDIxMjUiLCBcCi0gICAgICAgICAgIi0wLjA5ODc1LCAtMC4wODc1LCAtMC4wNjg3NSwgLTAuMDU2MjUsIC0wLjA0Mzc1LCAtMC4wMjEyNSwgMCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oU0UpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTI2MTM5OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTI2MDg5OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTI2MTM5OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzc0NCwgMC4wMDM3MzQsIDAuMDAzNzI4LCAwLjAwMzcyNSwgMC4wMDM3MjMsIDAuMDAzNzIxLCAwLjAwMzcyMSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNDgxNSwgMC4wMDQ3OTgsIDAuMDA0Nzg1LCAwLjAwNDc3OCwgMC4wMDQ3NzIsIDAuMDA0NzY2LCAwLjAwNDc2NCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDS04iOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX2ZhbGxpbmc7Ci0gICAgICB3aGVuIDogIlJOJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIlJOX0VRXzFfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMzc1LCAtMC4wMjYyNSwgLTAuMDEzNzUsIC0wLjAwMTI1LCAwLjAxMTI1LCAwLjAyNzUsIDAuMDQyNSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjAzNzUsIC0wLjAyNSwgLTAuMDEyNSwgMCwgMC4wMTYyNSwgMC4wMzc1IiwgXAotICAgICAgICAgICItMC4wNjEyNSwgLTAuMDUsIC0wLjAzNzUsIC0wLjAyNSwgLTAuMDEyNSwgMC4wMDM3NSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDczNzUsIC0wLjA2MjUsIC0wLjA1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAwODc1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wODYyNSwgLTAuMDc1LCAtMC4wNjI1LCAtMC4wNSwgLTAuMDM3NSwgLTAuMDIxMjUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICItMC4xMDg3NSwgLTAuMDk3NSwgLTAuMDg1LCAtMC4wNzI1LCAtMC4wNiwgLTAuMDQzNzUsIC0wLjAyODc1IiwgXAotICAgICAgICAgICItMC4xMjM3NSwgLTAuMTEyNSwgLTAuMSwgLTAuMDg3NSwgLTAuMDc1LCAtMC4wNTg3NSwgLTAuMDQzNzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wNjI1LCAtMC4wNTEyNSwgLTAuMDM4NzUsIC0wLjAyNjI1LCAtMC4wMTM3NSwgMC4wMDI1LCAwLjAxNzUiLCBcCi0gICAgICAgICAgIi0wLjA3Mzc1LCAtMC4wNjI1LCAtMC4wNSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAwODc1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wOTI1LCAtMC4wODEyNSwgLTAuMDY4NzUsIC0wLjA1NjI1LCAtMC4wNDM3NSwgLTAuMDI3NSwgLTAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMTA1LCAtMC4wOTM3NSwgLTAuMDgxMjUsIC0wLjA2ODc1LCAtMC4wNTYyNSwgLTAuMDQsIC0wLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMTE3NSwgLTAuMTA2MjUsIC0wLjA5Mzc1LCAtMC4wODEyNSwgLTAuMDY4NzUsIC0wLjA1MjUsIC0wLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjEzMzc1LCAtMC4xMjI1LCAtMC4xMSwgLTAuMDk3NSwgLTAuMDkxMjUsIC0wLjA2ODc1LCAtMC4wNTM3NSIsIFwKLSAgICAgICAgICAiLTAuMTQ4NzUsIC0wLjEzNzUsIC0wLjEyNSwgLTAuMTEyNSwgLTAuMSwgLTAuMDgzNzUsIC0wLjA2ODc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX2ZhbGxpbmc7Ci0gICAgICB3aGVuIDogIlJOJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIlJOX0VRXzFfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yODc1LCAwLjI3NjI1LCAwLjI1NzUsIDAuMjQ1LCAwLjIyNjI1LCAwLjIwMzc1LCAwLjE4ODc1IiwgXAotICAgICAgICAgICIwLjI5ODc1LCAwLjI4NzUsIDAuMjY4NzUsIDAuMjU2MjUsIDAuMjM3NSwgMC4yMTUsIDAuMiIsIFwKLSAgICAgICAgICAiMC4zMTc1LCAwLjMsIDAuMjg3NSwgMC4yNjg3NSwgMC4yNTYyNSwgMC4yMzM3NSwgMC4yMTg3NSIsIFwKLSAgICAgICAgICAiMC4zMywgMC4zMTg3NSwgMC4zLCAwLjI4NzUsIDAuMjY4NzUsIDAuMjQ2MjUsIDAuMjMxMjUiLCBcCi0gICAgICAgICAgIjAuMzQyNSwgMC4zMzEyNSwgMC4zMTI1LCAwLjMsIDAuMjgxMjUsIDAuMjY1LCAwLjI0Mzc1IiwgXAotICAgICAgICAgICIwLjM2NSwgMC4zNTM3NSwgMC4zMzUsIDAuMzIyNSwgMC4zMDM3NSwgMC4yODEyNSwgMC4yNjYyNSIsIFwKLSAgICAgICAgICAiMC4zOCwgMC4zNjg3NSwgMC4zNSwgMC4zMzc1LCAwLjMyNSwgMC4zMDI1LCAwLjI4MTI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjU2MjUsIDAuMjQ1LCAwLjIyNjI1LCAwLjIxMzc1LCAwLjE5NSwgMC4xNzI1LCAwLjE1NzUiLCBcCi0gICAgICAgICAgIjAuMjY3NSwgMC4yNTYyNSwgMC4yMzc1LCAwLjIyNSwgMC4yMDYyNSwgMC4xODM3NSwgMC4xNjg3NSIsIFwKLSAgICAgICAgICAiMC4yOCwgMC4yNjg3NSwgMC4yNSwgMC4yMzc1LCAwLjIxODc1LCAwLjE5NjI1LCAwLjE4MTI1IiwgXAotICAgICAgICAgICIwLjI5MjUsIDAuMjgxMjUsIDAuMjYyNSwgMC4yNSwgMC4yMzEyNSwgMC4yMDg3NSwgMC4xOTM3NSIsIFwKLSAgICAgICAgICAiMC4zMDUsIDAuMjkzNzUsIDAuMjc1LCAwLjI2MjUsIDAuMjQzNzUsIDAuMjIxMjUsIDAuMjA2MjUiLCBcCi0gICAgICAgICAgIjAuMzI3NSwgMC4zMTYyNSwgMC4yOTc1LCAwLjI4NSwgMC4yNjYyNSwgMC4yNDM3NSwgMC4yMjg3NSIsIFwKLSAgICAgICAgICAiMC4zNDg3NSwgMC4zMzEyNSwgMC4zMTg3NSwgMC4zLCAwLjI4NzUsIDAuMjY1LCAwLjI0Mzc1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTSSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNTk4ODc0OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDU5Njk2MTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA1OTg4NzQ7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyODM1LCAwLjAwMjgyNSwgMC4wMDI4MjEsIDAuMDAyODE3LCAwLjAwMjgxNSwgMC4wMDI4MTEsIDAuMDAyODA5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzOTM1LCAwLjAwMzkzMSwgMC4wMDM5MjgsIDAuMDAzOTI2LCAwLjAwMzkyNSwgMC4wMDM5MjMsIDAuMDAzOTIxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfZmFsbGluZzsKLSAgICAgIHdoZW4gOiAiUk4mU0UmU04iOwotICAgICAgc2RmX2NvbmQgOiAiUk5fRVFfMV9BTl9TRV9FUV8xX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDUsIC0wLjAzODc1LCAtMC4wMjYyNSwgLTAuMDEzNzUsIC0wLjAwMTI1LCAwLjAxNSwgMC4wMzYyNSIsIFwKLSAgICAgICAgICAiLTAuMDYxMjUsIC0wLjA1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAxMjUsIDAuMDAzNzUsIDAuMDI1IiwgXAotICAgICAgICAgICItMC4wNzM3NSwgLTAuMDYyNSwgLTAuMDUsIC0wLjAzNzUsIC0wLjAyNSwgLTAuMDA4NzUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA4NjI1LCAtMC4wNzUsIC0wLjA2MjUsIC0wLjA1LCAtMC4wMzc1LCAtMC4wMjEyNSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA5ODc1LCAtMC4wODc1LCAtMC4wNzUsIC0wLjA2MjUsIC0wLjA1LCAtMC4wMzM3NSwgLTAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjEyMTI1LCAtMC4xMSwgLTAuMDk3NSwgLTAuMDg1LCAtMC4wNzI1LCAtMC4wNTYyNSwgLTAuMDQxMjUiLCBcCi0gICAgICAgICAgIi0wLjEzNjI1LCAtMC4xMjUsIC0wLjExODc1LCAtMC4xMDYyNSwgLTAuMDkzNzUsIC0wLjA3NzUsIC0wLjA1NjI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMTMxMjUsIC0wLjEyLCAtMC4xMDc1LCAtMC4xMDEyNSwgLTAuMDk1LCAtMC4wODUsIC0wLjA3IiwgXAotICAgICAgICAgICItMC4xNDI1LCAtMC4xMzEyNSwgLTAuMTE4NzUsIC0wLjExMjUsIC0wLjEwNjI1LCAtMC4wOTYyNSwgLTAuMDg3NSIsIFwKLSAgICAgICAgICAiLTAuMTU1LCAtMC4xNDM3NSwgLTAuMTM3NSwgLTAuMTI1LCAtMC4xMTg3NSwgLTAuMTA4NzUsIC0wLjEiLCBcCi0gICAgICAgICAgIi0wLjE2NzUsIC0wLjE1NjI1LCAtMC4xNSwgLTAuMTM3NSwgLTAuMTMxMjUsIC0wLjEyMTI1LCAtMC4xMTI1IiwgXAotICAgICAgICAgICItMC4xOCwgLTAuMTY4NzUsIC0wLjE2MjUsIC0wLjE1LCAtMC4xNDM3NSwgLTAuMTMzNzUsIC0wLjEyNSIsIFwKLSAgICAgICAgICAiLTAuMTk2MjUsIC0wLjE5MTI1LCAtMC4xNzg3NSwgLTAuMTcyNSwgLTAuMTYsIC0wLjE1LCAtMC4xNDEyNSIsIFwKLSAgICAgICAgICAiLTAuMjE3NSwgLTAuMjA2MjUsIC0wLjE5Mzc1LCAtMC4xODc1LCAtMC4xODEyNSwgLTAuMTY1LCAtMC4xNTYyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDS04iOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9mYWxsaW5nOwotICAgICAgd2hlbiA6ICJSTiZTRSZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJSTl9FUV8xX0FOX1NFX0VRXzFfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMjUsIDAuMjEzNzUsIDAuMjAxMjUsIDAuMTgyNSwgMC4xNywgMC4xNDc1LCAwLjEyNjI1IiwgXAotICAgICAgICAgICIwLjI0MjUsIDAuMjI1LCAwLjIxMjUsIDAuMTkzNzUsIDAuMTgxMjUsIDAuMTU4NzUsIDAuMTM3NSIsIFwKLSAgICAgICAgICAiMC4yNTUsIDAuMjQzNzUsIDAuMjI1LCAwLjIxMjUsIDAuMTkzNzUsIDAuMTcxMjUsIDAuMTUiLCBcCi0gICAgICAgICAgIjAuMjY3NSwgMC4yNTYyNSwgMC4yMzc1LCAwLjIyNSwgMC4yMDYyNSwgMC4xODM3NSwgMC4xNjI1IiwgXAotICAgICAgICAgICIwLjI4LCAwLjI2ODc1LCAwLjI1LCAwLjIzNzUsIDAuMjE4NzUsIDAuMTk2MjUsIDAuMTgxMjUiLCBcCi0gICAgICAgICAgIjAuMzAyNSwgMC4yOTEyNSwgMC4yNzI1LCAwLjI2LCAwLjI0MTI1LCAwLjIxODc1LCAwLjIwMzc1IiwgXAotICAgICAgICAgICIwLjMyMzc1LCAwLjMxMjUsIDAuMjkzNzUsIDAuMjgxMjUsIDAuMjYyNSwgMC4yNCwgMC4yMTg3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI2ODc1LCAwLjI1NzUsIDAuMjM4NzUsIDAuMjI2MjUsIDAuMjA3NSwgMC4xODUsIDAuMTciLCBcCi0gICAgICAgICAgIjAuMjgsIDAuMjY4NzUsIDAuMjUsIDAuMjM3NSwgMC4yMTg3NSwgMC4xOTYyNSwgMC4xODEyNSIsIFwKLSAgICAgICAgICAiMC4yOTI1LCAwLjI4MTI1LCAwLjI2MjUsIDAuMjUsIDAuMjMxMjUsIDAuMjA4NzUsIDAuMTkzNzUiLCBcCi0gICAgICAgICAgIjAuMzA1LCAwLjI5Mzc1LCAwLjI3NSwgMC4yNjI1LCAwLjI0Mzc1LCAwLjIyMTI1LCAwLjIwNjI1IiwgXAotICAgICAgICAgICIwLjMxNzUsIDAuMzA2MjUsIDAuMjg3NSwgMC4yNzUsIDAuMjU2MjUsIDAuMjMzNzUsIDAuMjE4NzUiLCBcCi0gICAgICAgICAgIjAuMzQsIDAuMzIyNSwgMC4zMSwgMC4yOTEyNSwgMC4yNzg3NSwgMC4yNTYyNSwgMC4yNDEyNSIsIFwKLSAgICAgICAgICAiMC4zNTUsIDAuMzQzNzUsIDAuMzI1LCAwLjMxMjUsIDAuMjkzNzUsIDAuMjcxMjUsIDAuMjU2MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFNOKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE1MDU3NjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE1MDU3NjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE1MDU1OTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAzMzEsIDAuMDAwMzMsIDAuMDAwMzMsIDAuMDAwMzMsIDAuMDAwMzMsIDAuMDAwMzMsIDAuMDAwMzMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAzMzEsIDAuMDAwMzMyLCAwLjAwMDMzMiwgMC4wMDAzMzEsIDAuMDAwMzMyLCAwLjAwMDMzMiwgMC4wMDAzMzIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiU04iOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFEJiFSTiYhU0UmIVNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9STl9FUV8wX0FOX1NFX0VRXzBfQU5fU0lfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjM4MjA3MSwgMC4zOTM2MDMsIDAuNDA4MTI1LCAwLjQyMTU1MywgMC40MzQ1NjksIDAuNDU1ODYsIDAuNDc2MDc3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJlY292ZXJ5X2ZhbGxpbmc7Ci0gICAgICB3aGVuIDogIlJOIjsKLSAgICAgIHNkZl9jb25kIDogIlJOID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHJlY292ZXJ5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4NzUsIDAuMDc2MjUsIDAuMDU3NSwgMC4wNDUsIDAuMDI2MjUsIDAuMDAzNzUsIC0wLjAxMTI1IiwgXAotICAgICAgICAgICIwLjA5ODc1LCAwLjA4NzUsIDAuMDc1LCAwLjA1NjI1LCAwLjA0Mzc1LCAwLjAxNSwgMCIsIFwKLSAgICAgICAgICAiMC4xMTc1LCAwLjEwNjI1LCAwLjA4NzUsIDAuMDY4NzUsIDAuMDU2MjUsIDAuMDMzNzUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4xMywgMC4xMTg3NSwgMC4xLCAwLjA4NzUsIDAuMDY4NzUsIDAuMDQ2MjUsIDAuMDI1IiwgXAotICAgICAgICAgICIwLjE0MjUsIDAuMTMxMjUsIDAuMTEyNSwgMC4xLCAwLjA4MTI1LCAwLjA1ODc1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjE2NSwgMC4xNTM3NSwgMC4xMzUsIDAuMTIyNSwgMC4xMDM3NSwgMC4wODEyNSwgMC4wNiIsIFwKLSAgICAgICAgICAiMC4xODYyNSwgMC4xNzUsIDAuMTU2MjUsIDAuMTM3NSwgMC4xMjUsIDAuMTAyNSwgMC4wODEyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDS04iOwotICAgICAgdGltaW5nX3R5cGUgOiByZW1vdmFsX2ZhbGxpbmc7Ci0gICAgICB3aGVuIDogIlJOIjsKLSAgICAgIHNkZl9jb25kIDogIlJOID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHJlbW92YWxfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE4NzUsIDAuMDMsIDAuMDQyNSwgMC4wNTUsIDAuMDczNzUsIDAuMDk2MjUsIDAuMTExMjUiLCBcCi0gICAgICAgICAgIjAuMDA3NSwgMC4wMTg3NSwgMC4wMzEyNSwgMC4wNDM3NSwgMC4wNjI1LCAwLjA3ODc1LCAwLjEiLCBcCi0gICAgICAgICAgIi0wLjAxMTI1LCAwLCAwLjAxODc1LCAwLjAzMTI1LCAwLjA0Mzc1LCAwLjA2NjI1LCAwLjA4NzUiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTI1LCAwLCAwLjAxODc1LCAwLjAzMTI1LCAwLjA1Mzc1LCAwLjA2ODc1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDI1LCAtMC4wMTI1LCAwLjAwNjI1LCAwLjAxODc1LCAwLjA0MTI1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICItMC4wNTg3NSwgLTAuMDQ3NSwgLTAuMDM1LCAtMC4wMTYyNSwgLTAuMDAzNzUsIDAuMDE4NzUsIDAuMDMzNzUiLCBcCi0gICAgICAgICAgIi0wLjA3Mzc1LCAtMC4wNjI1LCAtMC4wNSwgLTAuMDM3NSwgLTAuMDE4NzUsIDAuMDAzNzUsIDAuMDE4NzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBTREZGUVgxICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKFNERkZRWDEpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4yNDQ4Njc7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgZmYgKE4zMCxRQklOVCkgewotICAgIG5leHRfc3RhdGUgOiAiKChTRSBTSSkgKyAoIVNFIEQpKSI7Ci0gICAgY2xvY2tlZF9vbiA6ICJDSyI7Ci0gIH0KLSAgcGluKENLKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA1NDMxMTQ7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNTQyODAyOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDU0MzExNDsKLSAgICBjbG9jayA6IHRydWU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyMjYsIDAuMDAyMjQ2LCAwLjAwMjIzNiwgMC4wMDIyMjksIDAuMDAyMjIzLCAwLjAwMjIxNywgMC4wMDIyMTUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDQ3MSwgMC4wMDQ2OTksIDAuMDA0NjkxLCAwLjAwNDY4NSwgMC4wMDQ2ODQsIDAuMDA0Njg2LCAwLjAwNDY4NCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQmIVNFJiFTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fU0VfRVFfMF9BTl9TSV9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMzAxODcsIDAuMzEzNDMxLCAwLjMyODc4MiwgMC4zNDQzNTQsIDAuMzU5NTE1LCAwLjM4Mzg4MSwgMC40MDQ2ODEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjE5MjAzNiwgMC4yMDMyMTksIDAuMjE4NDcsIDAuMjMzMzU4LCAwLjI0Nzg5OCwgMC4yNzA2ODEsIDAuMjg5MzY0Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihEKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2MjE4OTc7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjIwMjkzOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDYyMTg5NzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDIzMDEsIDAuMDAyMjkxLCAwLjAwMjI4NiwgMC4wMDIyODMsIDAuMDAyMjgsIDAuMDAyMjc3LCAwLjAwMjI3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzM0NCwgMC4wMDMzMzksIDAuMDAzMzM3LCAwLjAwMzMzNSwgMC4wMDMzMzQsIDAuMDAzMzMyLCAwLjAwMzMzMSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhU0UiOwotICAgICAgc2RmX2NvbmQgOiAiU0UgPT0gMSdiMCI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMTI1LCAtMC4xMiwgLTAuMTA3NSwgLTAuMDk1LCAtMC4wODg3NSwgLTAuMDcyNSwgLTAuMDU3NSIsIFwKLSAgICAgICAgICAiLTAuMTQyNSwgLTAuMTMxMjUsIC0wLjExODc1LCAtMC4xMDYyNSwgLTAuMSwgLTAuMDgzNzUsIC0wLjA2ODc1IiwgXAotICAgICAgICAgICItMC4xNTUsIC0wLjE0Mzc1LCAtMC4xMzEyNSwgLTAuMTI1LCAtMC4xMTI1LCAtMC4wOTYyNSwgLTAuMDg3NSIsIFwKLSAgICAgICAgICAiLTAuMTY3NSwgLTAuMTU2MjUsIC0wLjE0Mzc1LCAtMC4xMzc1LCAtMC4xMjUsIC0wLjEwODc1LCAtMC4xIiwgXAotICAgICAgICAgICItMC4xOCwgLTAuMTY4NzUsIC0wLjE2MjUsIC0wLjE1LCAtMC4xMzc1LCAtMC4xMjc1LCAtMC4xMTI1IiwgXAotICAgICAgICAgICItMC4yMDI1LCAtMC4xOTEyNSwgLTAuMTg1LCAtMC4xNzI1LCAtMC4xNiwgLTAuMTQzNzUsIC0wLjEzNSIsIFwKLSAgICAgICAgICAiLTAuMjIzNzUsIC0wLjIxMjUsIC0wLjIsIC0wLjE4NzUsIC0wLjE4MTI1LCAtMC4xNjUsIC0wLjE1NjI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDE4NzUsIC0wLjAwNzUsIDAuMDA1LCAwLjAxNzUsIDAuMDMsIDAuMDUyNSwgMC4wNjc1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLjAwNjI1LCAwLjAxODc1LCAwLjA0MTI1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDMxMjUsIC0wLjAxODc1LCAtMC4wMDYyNSwgMC4wMDYyNSwgMC4wMjg3NSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDYxMjUsIC0wLjA0Mzc1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLjAxNjI1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wNjc1LCAtMC4wNTYyNSwgLTAuMDQzNzUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgMC4wMDM3NSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDksIC0wLjA3ODc1LCAtMC4wNiwgLTAuMDQ3NSwgLTAuMDM1LCAtMC4wMTI1LCAwLjAwMjUiLCBcCi0gICAgICAgICAgIi0wLjEwNSwgLTAuMDkzNzUsIC0wLjA4MTI1LCAtMC4wNjI1LCAtMC4wNSwgLTAuMDMzNzUsIC0wLjAxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJTRSA9PSAxJ2IwIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMDYyNSwgMC4xOTUsIDAuMTc2MjUsIDAuMTYzNzUsIDAuMTUxMjUsIDAuMTM1LCAwLjEyIiwgXAotICAgICAgICAgICIwLjIxNzUsIDAuMjA2MjUsIDAuMTg3NSwgMC4xNzUsIDAuMTYyNSwgMC4xNDYyNSwgMC4xMzEyNSIsIFwKLSAgICAgICAgICAiMC4yMywgMC4yMTg3NSwgMC4yLCAwLjE4NzUsIDAuMTc1LCAwLjE1ODc1LCAwLjE0Mzc1IiwgXAotICAgICAgICAgICIwLjI0MjUsIDAuMjMxMjUsIDAuMjE4NzUsIDAuMiwgMC4xODc1LCAwLjE3MTI1LCAwLjE2MjUiLCBcCi0gICAgICAgICAgIjAuMjU1LCAwLjI0Mzc1LCAwLjIzMTI1LCAwLjIxMjUsIDAuMjA2MjUsIDAuMTgzNzUsIDAuMTc1IiwgXAotICAgICAgICAgICIwLjI3NzUsIDAuMjY2MjUsIDAuMjUzNzUsIDAuMjM1LCAwLjIyMjUsIDAuMjA2MjUsIDAuMTk3NSIsIFwKLSAgICAgICAgICAiMC4yOTg3NSwgMC4yODc1LCAwLjI2ODc1LCAwLjI1NjI1LCAwLjI0Mzc1LCAwLjIyNzUsIDAuMjEyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEzMTI1LCAwLjEyLCAwLjEwNzUsIDAuMDg4NzUsIDAuMDc2MjUsIDAuMDQ3NSwgMC4wMjYyNSIsIFwKLSAgICAgICAgICAiMC4xNDI1LCAwLjEzMTI1LCAwLjExODc1LCAwLjEsIDAuMDg3NSwgMC4wNTg3NSwgMC4wMzc1IiwgXAotICAgICAgICAgICIwLjE2MTI1LCAwLjE0Mzc1LCAwLjEzMTI1LCAwLjExMjUsIDAuMSwgMC4wNzEyNSwgMC4wNSIsIFwKLSAgICAgICAgICAiMC4xNzM3NSwgMC4xNTYyNSwgMC4xNDM3NSwgMC4xMjUsIDAuMTEyNSwgMC4wODM3NSwgMC4wNjI1IiwgXAotICAgICAgICAgICIwLjE4NjI1LCAwLjE2ODc1LCAwLjE1NjI1LCAwLjEzNzUsIDAuMTI1LCAwLjA5NjI1LCAwLjA3NSIsIFwKLSAgICAgICAgICAiMC4yMDI1LCAwLjE5MTI1LCAwLjE3MjUsIDAuMTYsIDAuMTQxMjUsIDAuMTE4NzUsIDAuMDk3NSIsIFwKLSAgICAgICAgICAiMC4yMTc1LCAwLjIwNjI1LCAwLjE5Mzc1LCAwLjE3NSwgMC4xNTYyNSwgMC4xMzM3NSwgMC4xMTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihRKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMTMwMTI7Ci0gICAgZnVuY3Rpb24gOiAiTjMwIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBub25fdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJpc2luZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yNjYyNjgsIDAuMzA5NDE4LCAwLjU1Mzc1OCwgMC43Njk0MzksIDEuMDU3MDIsIDEuNjMyMjEsIDEuOTkyMDQiLCBcCi0gICAgICAgICAgIjAuMjc3OTQ2LCAwLjMyMTA4OCwgMC41NjU0MzcsIDAuNzgxMTE4LCAxLjA2ODcsIDEuNjQzOTIsIDIuMDAzNTYiLCBcCi0gICAgICAgICAgIjAuMjkzMTIsIDAuMzM2MjcyLCAwLjU4MDYxNCwgMC43OTYyOTgsIDEuMDgzODcsIDEuNjU5MDcsIDIuMDE4OSIsIFwKLSAgICAgICAgICAiMC4zMDg2NDQsIDAuMzUxNzg4LCAwLjU5NjE0LCAwLjgxMTgyMSwgMS4wOTk0LCAxLjY3NDYzLCAyLjAzNDI2IiwgXAotICAgICAgICAgICIwLjMyMzc5NywgMC4zNjY5NDIsIDAuNjExMjc3LCAwLjgyNjk1NiwgMS4xMTQ1NiwgMS42ODk5MSwgMi4wNDk1NCIsIFwKLSAgICAgICAgICAiMC4zNDgwMDYsIDAuMzkxMTU1LCAwLjYzNTUxLCAwLjg1MTE5MSwgMS4xMzg3NiwgMS43MTQwOSwgMi4wNzM3NiIsIFwKLSAgICAgICAgICAiMC4zNjg1MjgsIDAuNDExNjg2LCAwLjY1NjA0MSwgMC44NzE3MiwgMS4xNTkyOSwgMS43MzQ0OSwgMi4wOTQxNiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNjE2MywgMC4yNDgwMTcsIDAuNzQzMTc0LCAxLjE4MzgyLCAxLjc2OTM5LCAyLjk0MDQ0LCAzLjY2NDM2IiwgXAotICAgICAgICAgICIwLjE2MTYwMywgMC4yNDc2NTQsIDAuNzQzMTM5LCAxLjE4Mzc3LCAxLjc2OTM5LCAyLjkzNTg3LCAzLjY2NTI2IiwgXAotICAgICAgICAgICIwLjE2MTYxOSwgMC4yNDgwMTcsIDAuNzQzMTcsIDEuMTgzOCwgMS43NjkzMywgMi45NDAzNSwgMy42NjQzOSIsIFwKLSAgICAgICAgICAiMC4xNjE1OTgsIDAuMjQ3NjUxLCAwLjc0MzEzNiwgMS4xODM3OCwgMS43NjkzOSwgMi45MzU4LCAzLjY2NTIyIiwgXAotICAgICAgICAgICIwLjE2MTQyMywgMC4yNDc5OTcsIDAuNzQ0NDM3LCAxLjE4MzY3LCAxLjc2OTQ0LCAyLjk0MTI2LCAzLjY3MzM0IiwgXAotICAgICAgICAgICIwLjE2MTYxNCwgMC4yNDgwMDIsIDAuNzQzMjQxLCAxLjE4MzgxLCAxLjc2OTMxLCAyLjk0MTA5LCAzLjY2NDg5IiwgXAotICAgICAgICAgICIwLjE2MTY0LCAwLjI0ODAxMywgMC43NDMxODQsIDEuMTgzNzksIDEuNzY5MzQsIDIuOTQwMzcsIDMuNjY1ODEiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzAxODcsIDAuMzUxMzQ1LCAwLjYzMTMzNywgMC44NzgxMTksIDEuMjA3MjQsIDEuODY1NTksIDIuMjc3MTIiLCBcCi0gICAgICAgICAgIjAuMzEzNDMxLCAwLjM2MjkwNiwgMC42NDI4MDYsIDAuODg5Njc1LCAxLjIxODgyLCAxLjg3NzE4LCAyLjI4ODUxIiwgXAotICAgICAgICAgICIwLjMyODc4MiwgMC4zNzgyNiwgMC42NTgxODcsIDAuOTA1MDI5LCAxLjIzNDE3LCAxLjg5MjU0LCAyLjMwMzg4IiwgXAotICAgICAgICAgICIwLjM0NDM1NCwgMC4zOTM4MywgMC42NzM3MzYsIDAuOTIwNjY5LCAxLjI0OTczLCAxLjkwODA2LCAyLjMxOTQxIiwgXAotICAgICAgICAgICIwLjM1OTUxNSwgMC40MDg5NzQsIDAuNjg4OTM5LCAwLjkzNTc1MSwgMS4yNjQ4NywgMS45MjMyNSwgMi4zMzQ1OCIsIFwKLSAgICAgICAgICAiMC4zODM4ODEsIDAuNDMzMzYxLCAwLjcxMzI0OCwgMC45NjAxMzMsIDEuMjg5MjMsIDEuOTQ3NiwgMi4zNTkxNCIsIFwKLSAgICAgICAgICAiMC40MDQ2ODEsIDAuNDU0MTQ0LCAwLjczNDA1MywgMC45ODA5MjUsIDEuMzEwMDIsIDEuOTY4MzksIDIuMzc5NjkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTc4NzcsIDAuMjc1MzY3LCAwLjgyOTk1NiwgMS4zMjQ2OCwgMS45Nzk5NiwgMy4yODg5MSwgNC4wOTUzNCIsIFwKLSAgICAgICAgICAiMC4xNzg3OTksIDAuMjc1NjI2LCAwLjgzMjc4MSwgMS4zMjQ4MSwgMS45Nzk3NSwgMy4yODkxLCA0LjEwMjQ1IiwgXAotICAgICAgICAgICIwLjE3ODkxNCwgMC4yNzU2ODksIDAuODMyOTA5LCAxLjMyNDgxLCAxLjk3OTc5LCAzLjI4OTExLCA0LjEwNDU2IiwgXAotICAgICAgICAgICIwLjE3ODgsIDAuMjc2NDQ0LCAwLjgzMTc4LCAxLjMyMDk4LCAxLjk3NjIyLCAzLjI4OTQzLCA0LjEwNTQ0IiwgXAotICAgICAgICAgICIwLjE3ODg1NSwgMC4yNzY0MDEsIDAuODMxNzg5LCAxLjMyNDc1LCAxLjk4MDM1LCAzLjI4OTE5LCA0LjEwMDE0IiwgXAotICAgICAgICAgICIwLjE3ODkxNCwgMC4yNzY1MDcsIDAuODMyNzUsIDEuMzI0NjUsIDEuOTgwNjUsIDMuMjg5MzgsIDQuMDk5NCIsIFwKLSAgICAgICAgICAiMC4xNzg4ODUsIDAuMjc2MTIsIDAuODMyNzg2LCAxLjMyNDY3LCAxLjk4MDM5LCAzLjI4OTM3LCA0LjEwNTM0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDg2OSwgMC4wMDQ4NjYsIDAuMDA0ODUsIDAuMDA0ODQ0LCAwLjAwNDg0LCAwLjAwNDgzNSwgMC4wMDQ4MzQiLCBcCi0gICAgICAgICAgIjAuMDA0ODU1LCAwLjAwNDg1MywgMC4wMDQ4MzcsIDAuMDA0ODMxLCAwLjAwNDgyNiwgMC4wMDQ4MjIsIDAuMDA0ODIxIiwgXAotICAgICAgICAgICIwLjAwNDg0MiwgMC4wMDQ4NCwgMC4wMDQ4MjQsIDAuMDA0ODE4LCAwLjAwNDgxMywgMC4wMDQ4MDksIDAuMDA0ODA4IiwgXAotICAgICAgICAgICIwLjAwNDgzMywgMC4wMDQ4MzEsIDAuMDA0ODE1LCAwLjAwNDgwOSwgMC4wMDQ4MDQsIDAuMDA0ODAxLCAwLjAwNDc5OSIsIFwKLSAgICAgICAgICAiMC4wMDQ4MjQsIDAuMDA0ODIzLCAwLjAwNDgwNywgMC4wMDQ4MDEsIDAuMDA0Nzk2LCAwLjAwNDc5MiwgMC4wMDQ3OTEiLCBcCi0gICAgICAgICAgIjAuMDA0ODE2LCAwLjAwNDgxNCwgMC4wMDQ3OTksIDAuMDA0NzkyLCAwLjAwNDc4NywgMC4wMDQ3ODMsIDAuMDA0NzgyIiwgXAotICAgICAgICAgICIwLjAwNDgxMiwgMC4wMDQ4MSwgMC4wMDQ3OTYsIDAuMDA0Nzg5LCAwLjAwNDc4NCwgMC4wMDQ3OCwgMC4wMDQ3NzkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQ5ODksIDAuMDA0OTk2LCAwLjAwNTAwNCwgMC4wMDUwMDYsIDAuMDA1MDA3LCAwLjAwNTAwOCwgMC4wMDUwMDgiLCBcCi0gICAgICAgICAgIjAuMDA0OTc2LCAwLjAwNDk4MiwgMC4wMDQ5OTEsIDAuMDA0OTkzLCAwLjAwNDk5NCwgMC4wMDQ5OTUsIDAuMDA0OTk1IiwgXAotICAgICAgICAgICIwLjAwNDk2MiwgMC4wMDQ5NjksIDAuMDA0OTc4LCAwLjAwNDk4LCAwLjAwNDk4MSwgMC4wMDQ5ODIsIDAuMDA0OTgyIiwgXAotICAgICAgICAgICIwLjAwNDk1NiwgMC4wMDQ5NjIsIDAuMDA0OTcxLCAwLjAwNDk3MywgMC4wMDQ5NzQsIDAuMDA0OTc1LCAwLjAwNDk3NSIsIFwKLSAgICAgICAgICAiMC4wMDQ5NTMsIDAuMDA0OTU5LCAwLjAwNDk2OCwgMC4wMDQ5NywgMC4wMDQ5NzEsIDAuMDA0OTcyLCAwLjAwNDk3MiIsIFwKLSAgICAgICAgICAiMC4wMDQ5NTEsIDAuMDA0OTU3LCAwLjAwNDk2NiwgMC4wMDQ5NjgsIDAuMDA0OTY5LCAwLjAwNDk3LCAwLjAwNDk3IiwgXAotICAgICAgICAgICIwLjAwNDk1OCwgMC4wMDQ5NjQsIDAuMDA0OTczLCAwLjAwNDk3NSwgMC4wMDQ5NzYsIDAuMDA0OTc3LCAwLjAwNDk3NyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oU0UpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTI4MTg3OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTI4MTQxOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTI4MTg3OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzE5MiwgMC4wMDMxOCwgMC4wMDMxNzUsIDAuMDAzMTcyLCAwLjAwMzE3MSwgMC4wMDMxNjgsIDAuMDAzMTY4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA0MzU2LCAwLjAwNDMzOCwgMC4wMDQzMjYsIDAuMDA0MzE5LCAwLjAwNDMxMywgMC4wMDQzMDcsIDAuMDA0MzA2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEJlNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9TSV9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjExMjUsIC0wLjEwMTI1LCAtMC4wODg3NSwgLTAuMDgyNSwgLTAuMDcsIC0wLjA1Mzc1LCAtMC4wNDUiLCBcCi0gICAgICAgICAgIi0wLjEyMzc1LCAtMC4xMTI1LCAtMC4xLCAtMC4wOTM3NSwgLTAuMDgxMjUsIC0wLjA2NSwgLTAuMDU2MjUiLCBcCi0gICAgICAgICAgIi0wLjEzNjI1LCAtMC4xMjUsIC0wLjExODc1LCAtMC4xMDYyNSwgLTAuMDkzNzUsIC0wLjA3NzUsIC0wLjA2ODc1IiwgXAotICAgICAgICAgICItMC4xNDg3NSwgLTAuMTQzNzUsIC0wLjEzMTI1LCAtMC4xMTg3NSwgLTAuMTA2MjUsIC0wLjA5NjI1LCAtMC4wODEyNSIsIFwKLSAgICAgICAgICAiLTAuMTYxMjUsIC0wLjE1NjI1LCAtMC4xNDM3NSwgLTAuMTMxMjUsIC0wLjExODc1LCAtMC4xMDg3NSwgLTAuMDkzNzUiLCBcCi0gICAgICAgICAgIi0wLjE4Mzc1LCAtMC4xNzg3NSwgLTAuMTY2MjUsIC0wLjE1Mzc1LCAtMC4xNDEyNSwgLTAuMTMxMjUsIC0wLjExNjI1IiwgXAotICAgICAgICAgICItMC4yMDUsIC0wLjE5Mzc1LCAtMC4xODEyNSwgLTAuMTc1LCAtMC4xNjI1LCAtMC4xNDYyNSwgLTAuMTM3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAxMjUsIDAuMDA1LCAwLjAxNzUsIDAuMDMsIDAuMDQyNSwgMC4wNjUsIDAuMDgiLCBcCi0gICAgICAgICAgIi0wLjAxNzUsIC0wLjAwNjI1LCAwLjAwNjI1LCAwLjAxODc1LCAwLjAzMTI1LCAwLjA1Mzc1LCAwLjA3NSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAxODc1LCAtMC4wMDYyNSwgMC4wMDYyNSwgMC4wMTg3NSwgMC4wNDEyNSwgMC4wNjI1IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLjAwNjI1LCAwLjAyODc1LCAwLjA1IiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA0Mzc1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLjAxNjI1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wNzc1LCAtMC4wNjYyNSwgLTAuMDQ3NSwgLTAuMDM1LCAtMC4wMjI1LCAwLCAwLjAxNSIsIFwKLSAgICAgICAgICAiLTAuMDg2MjUsIC0wLjA3NSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjAzNzUsIC0wLjAyMTI1LCAwIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIkQmIVNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMV9BTl9TSV9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjA0Mzc1LCAtMC4wMzI1LCAtMC4wMiwgLTAuMDAxMjUsIDAuMDExMjUsIDAuMDMzNzUsIDAuMDQ4NzUiLCBcCi0gICAgICAgICAgIi0wLjA1NSwgLTAuMDQzNzUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgMCwgMC4wMjI1LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjA2NzUsIC0wLjA1NjI1LCAtMC4wNDM3NSwgLTAuMDMxMjUsIC0wLjAxODc1LCAwLjAwMzc1LCAwLjAxODc1IiwgXAotICAgICAgICAgICItMC4wODYyNSwgLTAuMDc1LCAtMC4wNjI1LCAtMC4wNDM3NSwgLTAuMDMxMjUsIC0wLjAwODc1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wOTg3NSwgLTAuMDg3NSwgLTAuMDc1LCAtMC4wNjI1LCAtMC4wNSwgLTAuMDI3NSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjEyMTI1LCAtMC4xMSwgLTAuMDk3NSwgLTAuMDg1LCAtMC4wNjYyNSwgLTAuMDUsIC0wLjAyODc1IiwgXAotICAgICAgICAgICItMC4xMzYyNSwgLTAuMTI1LCAtMC4xMTI1LCAtMC4xLCAtMC4wODc1LCAtMC4wNjUsIC0wLjA0Mzc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMTQzNzUsIC0wLjEzMjUsIC0wLjEyNjI1LCAtMC4xMTM3NSwgLTAuMTAxMjUsIC0wLjA5MTI1LCAtMC4wNzYyNSIsIFwKLSAgICAgICAgICAiLTAuMTU1LCAtMC4xNSwgLTAuMTM3NSwgLTAuMTI1LCAtMC4xMTI1LCAtMC4xMDI1LCAtMC4wODc1IiwgXAotICAgICAgICAgICItMC4xNzM3NSwgLTAuMTYyNSwgLTAuMTUsIC0wLjEzNzUsIC0wLjEzMTI1LCAtMC4xMTUsIC0wLjEwNjI1IiwgXAotICAgICAgICAgICItMC4xODYyNSwgLTAuMTc1LCAtMC4xNjI1LCAtMC4xNTYyNSwgLTAuMTQzNzUsIC0wLjEyNzUsIC0wLjExODc1IiwgXAotICAgICAgICAgICItMC4xOTg3NSwgLTAuMTg3NSwgLTAuMTgxMjUsIC0wLjE2ODc1LCAtMC4xNTYyNSwgLTAuMTQsIC0wLjEzMTI1IiwgXAotICAgICAgICAgICItMC4yMTUsIC0wLjIwMzc1LCAtMC4xOTc1LCAtMC4xODUsIC0wLjE3MjUsIC0wLjE2MjUsIC0wLjE0NzUiLCBcCi0gICAgICAgICAgIi0wLjIzLCAtMC4yMTg3NSwgLTAuMjEyNSwgLTAuMiwgLTAuMTg3NSwgLTAuMTc3NSwgLTAuMTYyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUQmU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1NJX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTg3NSwgMC4xNzYyNSwgMC4xNjM3NSwgMC4xNDUsIDAuMTMyNSwgMC4xMTYyNSwgMC4xMDc1IiwgXAotICAgICAgICAgICIwLjE5ODc1LCAwLjE4NzUsIDAuMTY4NzUsIDAuMTU2MjUsIDAuMTQzNzUsIDAuMTI3NSwgMC4xMTI1IiwgXAotICAgICAgICAgICIwLjIxMTI1LCAwLjIsIDAuMTg3NSwgMC4xNjg3NSwgMC4xNTYyNSwgMC4xNCwgMC4xMzEyNSIsIFwKLSAgICAgICAgICAiMC4yMywgMC4yMTI1LCAwLjIsIDAuMTg3NSwgMC4xNzUsIDAuMTUyNSwgMC4xNDM3NSIsIFwKLSAgICAgICAgICAiMC4yNDI1LCAwLjIyNSwgMC4yMTI1LCAwLjIsIDAuMTg3NSwgMC4xNzEyNSwgMC4xNTYyNSIsIFwKLSAgICAgICAgICAiMC4yNjUsIDAuMjQ3NSwgMC4yMzUsIDAuMjIyNSwgMC4yMSwgMC4xOTM3NSwgMC4xNzg3NSIsIFwKLSAgICAgICAgICAiMC4yOCwgMC4yNjg3NSwgMC4yNTYyNSwgMC4yMzc1LCAwLjIyNSwgMC4yMDg3NSwgMC4yIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTE4NzUsIDAuMTA3NSwgMC4wOTUsIDAuMDc2MjUsIDAuMDU3NSwgMC4wMzUsIDAuMDEzNzUiLCBcCi0gICAgICAgICAgIjAuMTMsIDAuMTE4NzUsIDAuMTA2MjUsIDAuMDg3NSwgMC4wNjg3NSwgMC4wNDYyNSwgMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMTQyNSwgMC4xMzEyNSwgMC4xMTg3NSwgMC4xLCAwLjA4MTI1LCAwLjA1ODc1LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIjAuMTU1LCAwLjE0Mzc1LCAwLjEzMTI1LCAwLjExMjUsIDAuMSwgMC4wNzEyNSwgMC4wNSIsIFwKLSAgICAgICAgICAiMC4xNzM3NSwgMC4xNTYyNSwgMC4xNDM3NSwgMC4xMjUsIDAuMTEyNSwgMC4wODM3NSwgMC4wNjI1IiwgXAotICAgICAgICAgICIwLjE5LCAwLjE3ODc1LCAwLjE2NjI1LCAwLjE0NzUsIDAuMTI4NzUsIDAuMTA2MjUsIDAuMDg1IiwgXAotICAgICAgICAgICIwLjIxMTI1LCAwLjIsIDAuMTgxMjUsIDAuMTY4NzUsIDAuMTUsIDAuMTI3NSwgMC4xMDYyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiRCYhU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8xX0FOX1NJX0VRXzAgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTU2MjUsIDAuMTQ1LCAwLjEyNjI1LCAwLjEwNzUsIDAuMDk1LCAwLjA3MjUsIDAuMDUxMjUiLCBcCi0gICAgICAgICAgIjAuMTY3NSwgMC4xNTYyNSwgMC4xMzc1LCAwLjEyNSwgMC4xMDYyNSwgMC4wODM3NSwgMC4wNjI1IiwgXAotICAgICAgICAgICIwLjE4LCAwLjE2ODc1LCAwLjE1NjI1LCAwLjEzNzUsIDAuMTI1LCAwLjA5NjI1LCAwLjA3NSIsIFwKLSAgICAgICAgICAiMC4xOTg3NSwgMC4xODc1LCAwLjE2ODc1LCAwLjE1LCAwLjEzNzUsIDAuMTE1LCAwLjA5Mzc1IiwgXAotICAgICAgICAgICIwLjIxMTI1LCAwLjIsIDAuMTgxMjUsIDAuMTY4NzUsIDAuMTUsIDAuMTI3NSwgMC4xMDYyNSIsIFwKLSAgICAgICAgICAiMC4yMzM3NSwgMC4yMjI1LCAwLjIwMzc1LCAwLjE4NSwgMC4xNzI1LCAwLjE1LCAwLjEyODc1IiwgXAotICAgICAgICAgICIwLjI0ODc1LCAwLjIzNzUsIDAuMjE4NzUsIDAuMjA2MjUsIDAuMTg3NSwgMC4xNjUsIDAuMTQzNzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMTg3NSwgMC4yMDc1LCAwLjE5NSwgMC4xODI1LCAwLjE3LCAwLjE0NzUsIDAuMTM4NzUiLCBcCi0gICAgICAgICAgIjAuMjM2MjUsIDAuMjE4NzUsIDAuMjA2MjUsIDAuMTkzNzUsIDAuMTgxMjUsIDAuMTY1LCAwLjE1IiwgXAotICAgICAgICAgICIwLjI0ODc1LCAwLjIzNzUsIDAuMjE4NzUsIDAuMjA2MjUsIDAuMTkzNzUsIDAuMTc3NSwgMC4xNjI1IiwgXAotICAgICAgICAgICIwLjI2MTI1LCAwLjI1LCAwLjIzNzUsIDAuMjE4NzUsIDAuMjA2MjUsIDAuMTksIDAuMTgxMjUiLCBcCi0gICAgICAgICAgIjAuMjczNzUsIDAuMjYyNSwgMC4yNSwgMC4yMzEyNSwgMC4yMTg3NSwgMC4yMDI1LCAwLjE5Mzc1IiwgXAotICAgICAgICAgICIwLjI5NjI1LCAwLjI3ODc1LCAwLjI2NjI1LCAwLjI1Mzc1LCAwLjI0MTI1LCAwLjIyNSwgMC4yMSIsIFwKLSAgICAgICAgICAiMC4zMDUsIDAuMjkzNzUsIDAuMjgxMjUsIDAuMjY4NzUsIDAuMjU2MjUsIDAuMjQsIDAuMjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTSSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjc5MTQ1OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDY3NzMxNzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2NzkxNDU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyMTQ1LCAwLjAwMjEzNSwgMC4wMDIxMywgMC4wMDIxMjcsIDAuMDAyMTI0LCAwLjAwMjEyMSwgMC4wMDIxMTkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDM0MjQsIDAuMDAzNDE5LCAwLjAwMzQxNywgMC4wMDM0MTUsIDAuMDAzNDE0LCAwLjAwMzQxMiwgMC4wMDM0MTEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiU0UiOwotICAgICAgc2RmX2NvbmQgOiAiU0UgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMTI1LCAtMC4xMTM3NSwgLTAuMTAxMjUsIC0wLjA5NSwgLTAuMDgyNSwgLTAuMDY2MjUsIC0wLjA1NzUiLCBcCi0gICAgICAgICAgIi0wLjEzNjI1LCAtMC4xMjUsIC0wLjExODc1LCAtMC4xMDYyNSwgLTAuMDkzNzUsIC0wLjA3NzUsIC0wLjA2ODc1IiwgXAotICAgICAgICAgICItMC4xNDg3NSwgLTAuMTM3NSwgLTAuMTMxMjUsIC0wLjExODc1LCAtMC4xMDYyNSwgLTAuMDk2MjUsIC0wLjA4MTI1IiwgXAotICAgICAgICAgICItMC4xNjEyNSwgLTAuMTU2MjUsIC0wLjE0Mzc1LCAtMC4xMzEyNSwgLTAuMTI1LCAtMC4xMDg3NSwgLTAuMDkzNzUiLCBcCi0gICAgICAgICAgIi0wLjE4LCAtMC4xNjg3NSwgLTAuMTU2MjUsIC0wLjE0Mzc1LCAtMC4xMzc1LCAtMC4xMjEyNSwgLTAuMTA2MjUiLCBcCi0gICAgICAgICAgIi0wLjE5NjI1LCAtMC4xOTEyNSwgLTAuMTc4NzUsIC0wLjE2NjI1LCAtMC4xNiwgLTAuMTQzNzUsIC0wLjEyODc1IiwgXAotICAgICAgICAgICItMC4yMTc1LCAtMC4yMDYyNSwgLTAuMiwgLTAuMTg3NSwgLTAuMTc1LCAtMC4xNjUsIC0wLjE1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDE4NzUsIC0wLjAwNzUsIDAuMDA1LCAwLjAxNzUsIDAuMDMsIDAuMDUyNSwgMC4wNjc1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLjAwNjI1LCAwLjAxODc1LCAwLjA0MTI1LCAwLjA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAuMDA2MjUsIDAuMDI4NzUsIDAuMDUiLCBcCi0gICAgICAgICAgIi0wLjA1NSwgLTAuMDQzNzUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAuMDE2MjUsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDY3NSwgLTAuMDU2MjUsIC0wLjA0Mzc1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIDAuMDAzNzUsIDAuMDI1IiwgXAotICAgICAgICAgICItMC4wODM3NSwgLTAuMDcyNSwgLTAuMDYsIC0wLjA0NzUsIC0wLjAzNSwgLTAuMDEyNSwgMC4wMDI1IiwgXAotICAgICAgICAgICItMC4wOTg3NSwgLTAuMDkzNzUsIC0wLjA3NSwgLTAuMDYyNSwgLTAuMDUsIC0wLjAyNzUsIC0wLjAxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlNFIjsKLSAgICAgIHNkZl9jb25kIDogIlNFID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIsIDAuMTg4NzUsIDAuMTcsIDAuMTU3NSwgMC4xNDUsIDAuMTI4NzUsIDAuMTIiLCBcCi0gICAgICAgICAgIjAuMjExMjUsIDAuMiwgMC4xODc1LCAwLjE2ODc1LCAwLjE1NjI1LCAwLjE0LCAwLjEzMTI1IiwgXAotICAgICAgICAgICIwLjIzLCAwLjIxMjUsIDAuMiwgMC4xODc1LCAwLjE3NSwgMC4xNTI1LCAwLjE0Mzc1IiwgXAotICAgICAgICAgICIwLjI0MjUsIDAuMjI1LCAwLjIxMjUsIDAuMiwgMC4xODc1LCAwLjE3MTI1LCAwLjE1NjI1IiwgXAotICAgICAgICAgICIwLjI1NSwgMC4yNDM3NSwgMC4yMjUsIDAuMjEyNSwgMC4yLCAwLjE4Mzc1LCAwLjE2ODc1IiwgXAotICAgICAgICAgICIwLjI3NzUsIDAuMjY2MjUsIDAuMjQ3NSwgMC4yMzUsIDAuMjIyNSwgMC4yMDYyNSwgMC4xOTEyNSIsIFwKLSAgICAgICAgICAiMC4yOTg3NSwgMC4yODEyNSwgMC4yNjg3NSwgMC4yNTYyNSwgMC4yNDM3NSwgMC4yMjEyNSwgMC4yMTI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTMxMjUsIDAuMTIsIDAuMTA3NSwgMC4wODg3NSwgMC4wNywgMC4wNDc1LCAwLjAyNjI1IiwgXAotICAgICAgICAgICIwLjE0MjUsIDAuMTMxMjUsIDAuMTE4NzUsIDAuMSwgMC4wODEyNSwgMC4wNTg3NSwgMC4wMzc1IiwgXAotICAgICAgICAgICIwLjE1NSwgMC4xNDM3NSwgMC4xMzEyNSwgMC4xMTI1LCAwLjA5Mzc1LCAwLjA3MTI1LCAwLjA1IiwgXAotICAgICAgICAgICIwLjE2NzUsIDAuMTU2MjUsIDAuMTQzNzUsIDAuMTI1LCAwLjEwNjI1LCAwLjA4Mzc1LCAwLjA2MjUiLCBcCi0gICAgICAgICAgIjAuMTgsIDAuMTY4NzUsIDAuMTUsIDAuMTM3NSwgMC4xMTg3NSwgMC4wOTYyNSwgMC4wNzUiLCBcCi0gICAgICAgICAgIjAuMjAyNSwgMC4xOTEyNSwgMC4xNzI1LCAwLjE1Mzc1LCAwLjE0MTI1LCAwLjExODc1LCAwLjA5NzUiLCBcCi0gICAgICAgICAgIjAuMjE3NSwgMC4yMDYyNSwgMC4xODc1LCAwLjE3NSwgMC4xNTYyNSwgMC4xMzM3NSwgMC4xMTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBTREZGUkhRWDEgKgotICogLS0tLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChTREZGUkhRWDEpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4zNzIyMDk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgZmYgKE4zMCxRQklOVCkgewotICAgIG5leHRfc3RhdGUgOiAiKChTRSBTSSkgKyAoIVNFIEQpKSI7Ci0gICAgY2xvY2tlZF9vbiA6ICJDSyI7Ci0gICAgY2xlYXIgOiAiKCFSTikiOwotICB9Ci0gIHBpbihDSykgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNTg0OTc4OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDU4NDY2OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDU4NDk3ODsKLSAgICBjbG9jayA6IHRydWU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyNjMsIDAuMDAyNjE5LCAwLjAwMjYwOSwgMC4wMDI2MDMsIDAuMDAyNTk4LCAwLjAwMjU5MSwgMC4wMDI1ODgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDY1NzYsIDAuMDA2NTY3LCAwLjAwNjU1OSwgMC4wMDY1NTQsIDAuMDA2NTUyLCAwLjAwNjU1MywgMC4wMDY1NTgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFEJlJOJiFTRSYhU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1JOX0VRXzFfQU5fU0VfRVFfMF9BTl9TSV9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMzIwNjcsIDAuMzMyNTE1LCAwLjM0Nzc2NiwgMC4zNjMyMzQsIDAuMzc4NzA5LCAwLjQwMzEzNiwgMC40MjQzNDMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjIwNDA1MywgMC4yMTU0NzksIDAuMjMwNDc0LCAwLjI0NTI4NSwgMC4yNjAxNTcsIDAuMjgzNDk0LCAwLjMwMzQyOSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwODIxOTk0OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDgxODY4NDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA4MjE5OTQ7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzMTg5LCAwLjAwMzE2OSwgMC4wMDMxNTksIDAuMDAzMTUzLCAwLjAwMzE0NywgMC4wMDMxNDEsIDAuMDAzMTM3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA0OTU2LCAwLjAwNDk0NywgMC4wMDQ5NDEsIDAuMDA0OTM3LCAwLjAwNDkzNCwgMC4wMDQ5MzEsIDAuMDA0OTI5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlJOJiFTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJSTl9FUV8xX0FOX1NFX0VRXzAgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMTA2MjUsIC0wLjA5NSwgLTAuMDgyNSwgLTAuMDcsIC0wLjA2Mzc1LCAtMC4wNDc1LCAtMC4wMzI1IiwgXAotICAgICAgICAgICItMC4xMTc1LCAtMC4xMDYyNSwgLTAuMDkzNzUsIC0wLjA4MTI1LCAtMC4wNzUsIC0wLjA1ODc1LCAtMC4wNDM3NSIsIFwKLSAgICAgICAgICAiLTAuMTMsIC0wLjExODc1LCAtMC4xMDYyNSwgLTAuMSwgLTAuMDg3NSwgLTAuMDcxMjUsIC0wLjA1NjI1IiwgXAotICAgICAgICAgICItMC4xNDI1LCAtMC4xMzc1LCAtMC4xMjUsIC0wLjExMjUsIC0wLjEsIC0wLjA4Mzc1LCAtMC4wNjg3NSIsIFwKLSAgICAgICAgICAiLTAuMTU1LCAtMC4xNSwgLTAuMTM3NSwgLTAuMTI1LCAtMC4xMTI1LCAtMC4wOTYyNSwgLTAuMDgxMjUiLCBcCi0gICAgICAgICAgIi0wLjE3NzUsIC0wLjE2NjI1LCAtMC4xNTM3NSwgLTAuMTQ3NSwgLTAuMTM1LCAtMC4xMTg3NSwgLTAuMTAzNzUiLCBcCi0gICAgICAgICAgIi0wLjE5ODc1LCAtMC4xODc1LCAtMC4xNzUsIC0wLjE2MjUsIC0wLjE1LCAtMC4xMzM3NSwgLTAuMTI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMCwgMC4wMTEyNSwgMC4wMywgMC4wNDI1LCAwLjA1NSwgMC4wNzc1LCAwLjA5ODc1IiwgXAotICAgICAgICAgICItMC4wMTEyNSwgMCwgMC4wMTg3NSwgMC4wMzEyNSwgMC4wNDM3NSwgMC4wNzI1LCAwLjA4NzUiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTI1LCAwLjAwNjI1LCAwLjAxODc1LCAwLjAzMTI1LCAwLjA2LCAwLjA3NSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAyNSwgLTAuMDA2MjUsIDAuMDA2MjUsIDAuMDE4NzUsIDAuMDQ3NSwgMC4wNjI1IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLjAxMjUsIDAuMDM1LCAwLjA1IiwgXAotICAgICAgICAgICItMC4wNjUsIC0wLjA1Mzc1LCAtMC4wMzUsIC0wLjAyMjUsIC0wLjAxLCAwLjAxMjUsIDAuMDMzNzUiLCBcCi0gICAgICAgICAgIi0wLjA4LCAtMC4wNjg3NSwgLTAuMDUsIC0wLjAzNzUsIC0wLjAyNSwgLTAuMDAyNSwgMC4wMTg3NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiUk4mIVNFIjsKLSAgICAgIHNkZl9jb25kIDogIlJOX0VRXzFfQU5fU0VfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNzUsIDAuMTU3NSwgMC4xNDUsIDAuMTMyNSwgMC4xMiwgMC4xMDM3NSwgMC4wODg3NSIsIFwKLSAgICAgICAgICAiMC4xODYyNSwgMC4xNjg3NSwgMC4xNTYyNSwgMC4xNDM3NSwgMC4xMzEyNSwgMC4xMTUsIDAuMSIsIFwKLSAgICAgICAgICAiMC4xOTg3NSwgMC4xODc1LCAwLjE2ODc1LCAwLjE1NjI1LCAwLjE0Mzc1LCAwLjEyNzUsIDAuMTEyNSIsIFwKLSAgICAgICAgICAiMC4yMTEyNSwgMC4yLCAwLjE4MTI1LCAwLjE2ODc1LCAwLjE1NjI1LCAwLjE0LCAwLjEyNSIsIFwKLSAgICAgICAgICAiMC4yMjM3NSwgMC4yMTI1LCAwLjE5Mzc1LCAwLjE4MTI1LCAwLjE2ODc1LCAwLjE1MjUsIDAuMTM3NSIsIFwKLSAgICAgICAgICAiMC4yNDYyNSwgMC4yMzUsIDAuMjE2MjUsIDAuMjAzNzUsIDAuMTkxMjUsIDAuMTc1LCAwLjE2IiwgXAotICAgICAgICAgICIwLjI2MTI1LCAwLjI1LCAwLjIzNzUsIDAuMjE4NzUsIDAuMjA2MjUsIDAuMTksIDAuMTgxMjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODc1LCAwLjA3LCAwLjA1NzUsIDAuMDM4NzUsIDAuMDI2MjUsIDAuMDAzNzUsIC0wLjAxNzUiLCBcCi0gICAgICAgICAgIjAuMDk4NzUsIDAuMDgxMjUsIDAuMDY4NzUsIDAuMDUsIDAuMDM3NSwgMC4wMTUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICIwLjExMTI1LCAwLjA5Mzc1LCAwLjA4MTI1LCAwLjA2MjUsIDAuMDUsIDAuMDI3NSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiMC4xMjM3NSwgMC4xMDYyNSwgMC4wOTM3NSwgMC4wNzUsIDAuMDYyNSwgMC4wNCwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4xMzYyNSwgMC4xMTg3NSwgMC4xMDYyNSwgMC4wODc1LCAwLjA3NSwgMC4wNTI1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICIwLjE1MjUsIDAuMTQxMjUsIDAuMTIyNSwgMC4xMSwgMC4wOTEyNSwgMC4wNjg3NSwgMC4wNDc1IiwgXAotICAgICAgICAgICIwLjE2NzUsIDAuMTU2MjUsIDAuMTQzNzUsIDAuMTI1LCAwLjExMjUsIDAuMDgzNzUsIDAuMDYyNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjEzMTkwNzsKLSAgICBmdW5jdGlvbiA6ICJOMzAiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5vbl91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcmlzaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMyNDUzMywgMC4zNjgxNzQsIDAuNjEyNjA1LCAwLjgyODI3NSwgMS4xMTU4OSwgMS42OTExMSwgMi4wNTA3NCIsIFwKLSAgICAgICAgICAiMC4zMzY1NDMsIDAuMzgwMTgyLCAwLjYyNDYxNCwgMC44NDAyODUsIDEuMTI3ODYsIDEuNzAzMTIsIDIuMDYyNzUiLCBcCi0gICAgICAgICAgIjAuMzUxNDkyLCAwLjM5NTEyLCAwLjYzOTU0LCAwLjg1NTIyMiwgMS4xNDI4OSwgMS43MTgxLCAyLjA3NzYiLCBcCi0gICAgICAgICAgIjAuMzY3MDI4LCAwLjQxMDY1NiwgMC42NTUwNzQsIDAuODcwNzYyLCAxLjE1ODQyLCAxLjczMzY2LCAyLjA5MzE2IiwgXAotICAgICAgICAgICIwLjM4MjU1OCwgMC40MjYxODEsIDAuNjcwNjIsIDAuODg2MjkxLCAxLjE3MzkxLCAxLjc0OTEyLCAyLjEwODc2IiwgXAotICAgICAgICAgICIwLjQwNjc2NSwgMC40NTAzOTksIDAuNjk0ODQ1LCAwLjkxMDUwNiwgMS4xOTgxNywgMS43NzMzOCwgMi4xMzI5OSIsIFwKLSAgICAgICAgICAiMC40Mjc5MzUsIDAuNDcxNTY4LCAwLjcxNjAwNywgMC45MzE2OCwgMS4yMTkzMywgMS43OTQ1NywgMi4xNTQwOCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNjg5NzEsIDAuMjUzMTE5LCAwLjc0Mzk3NywgMS4xODQyNywgMS43NzAyMSwgMi45NDE1LCAzLjY3NDA4IiwgXAotICAgICAgICAgICIwLjE2ODk0MiwgMC4yNTMxMTEsIDAuNzQ0LCAxLjE4NDIzLCAxLjc2OTY2LCAyLjk0MTQ0LCAzLjY3NDAyIiwgXAotICAgICAgICAgICIwLjE2ODk3OSwgMC4yNTMxMjksIDAuNzQ1NzIsIDEuMTg0NDcsIDEuNzcwNDMsIDIuOTQxNjUsIDMuNjczNTMiLCBcCi0gICAgICAgICAgIjAuMTY4OTk3LCAwLjI1MzEzMywgMC43NDQ0MjgsIDEuMTg0MTksIDEuNzcwMzcsIDIuOTQxODYsIDMuNjczNzEiLCBcCi0gICAgICAgICAgIjAuMTY4OTU1LCAwLjI1MzExMSwgMC43NDM5OTYsIDEuMTg0MjQsIDEuNzcwMTksIDIuOTQxNDQsIDMuNjc0IiwgXAotICAgICAgICAgICIwLjE2ODk5MywgMC4yNTMxMjksIDAuNzQ1ODE0LCAxLjE4NDQ2LCAxLjc3MDQsIDIuOTQxNjgsIDMuNjczNzUiLCBcCi0gICAgICAgICAgIjAuMTY4OTYzLCAwLjI1MzA4OCwgMC43NDU3NiwgMS4xODQxOSwgMS43NzAzMiwgMi45NDE3NywgMy42NzM3MSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMjA2NzIsIDAuMzcwMTM5LCAwLjY1MDA4NSwgMC44OTY4OTYsIDEuMjI2MDMsIDEuODg0MzcsIDIuMjk1NTkiLCBcCi0gICAgICAgICAgIjAuMzMyNTE3LCAwLjM4MTk4NSwgMC42NjE5MzQsIDAuOTA4NzE5LCAxLjIzNzg4LCAxLjg5NjIzLCAyLjMwNzQ1IiwgXAotICAgICAgICAgICIwLjM0Nzc2OCwgMC4zOTcyNDIsIDAuNjc3MTk1LCAwLjkyNDAwMSwgMS4yNTMxMywgMS45MTE1MiwgMi4zMjI5NiIsIFwKLSAgICAgICAgICAiMC4zNjMyMzYsIDAuNDEyNzA0LCAwLjY5MjY0LCAwLjkzOTQzOSwgMS4yNjg2LCAxLjkyNjk0LCAyLjMzODE2IiwgXAotICAgICAgICAgICIwLjM3ODcxMiwgMC40MjgxOCwgMC43MDgxMjgsIDAuOTU0OTEzLCAxLjI4NDA4LCAxLjk0MjQyLCAyLjM1MzY1IiwgXAotICAgICAgICAgICIwLjQwMzEzNiwgMC40NTI2MTEsIDAuNzMyNTQ5LCAwLjk3OTMyOCwgMS4zMDg1MSwgMS45NjY4NiwgMi4zNzgzNCIsIFwKLSAgICAgICAgICAiMC40MjQzNDYsIDAuNDczODIxLCAwLjc1Mzc3NCwgMS4wMDA1OCwgMS4zMjk3MSwgMS45ODgxMSwgMi4zOTk1NSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNzgzMzksIDAuMjc1MTgxLCAwLjgyOTE2MSwgMS4zMjM4MSwgMS45NzkwMSwgMy4yODkwOCwgNC4xMDE2MyIsIFwKLSAgICAgICAgICAiMC4xNzgzNDcsIDAuMjc0OTY1LCAwLjgyOTE3MSwgMS4zMjQyOSwgMS45NzksIDMuMjg5MDIsIDQuMTAzMTUiLCBcCi0gICAgICAgICAgIjAuMTc4NDc0LCAwLjI3NTk4NSwgMC44MjkxODksIDEuMzI0MDQsIDEuOTc5MTEsIDMuMjgyNjUsIDQuMTA0NTkiLCBcCi0gICAgICAgICAgIjAuMTc4Mzc2LCAwLjI3NjAyMywgMC44MjkzMzYsIDEuMzI0MzMsIDEuOTc5LCAzLjI4ODk5LCA0LjEwMTc2IiwgXAotICAgICAgICAgICIwLjE3ODM0MSwgMC4yNzQ4NTYsIDAuODI5MTc1LCAxLjMyNDMxLCAxLjk3ODk5LCAzLjI4OTAyLCA0LjEwMzI4IiwgXAotICAgICAgICAgICIwLjE3ODQ2MywgMC4yNzU5OTcsIDAuODI5MzI1LCAxLjMyNDQ4LCAxLjk3OTA0LCAzLjI4ODkzLCA0LjEwNDY3IiwgXAotICAgICAgICAgICIwLjE3ODQ4MSwgMC4yNzU5OSwgMC44MjkxNjcsIDEuMzI0MDUsIDEuOTc5MiwgMy4yODIzOCwgNC4xMDAyMSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogY2xlYXI7Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE0NDg4NiwgMC4xOTQ1NSwgMC40NzQyODEsIDAuNzIxMDgzLCAxLjA1MDI5LCAxLjcwODU1LCAyLjExOTk1IiwgXAotICAgICAgICAgICIwLjE1NjQ5MywgMC4yMDYxNTgsIDAuNDg1ODk5LCAwLjczMjY5NiwgMS4wNjE4MSwgMS43MjAxOCwgMi4xMzE1MiIsIFwKLSAgICAgICAgICAiMC4xNzEwNTgsIDAuMjIwNzM3LCAwLjUwMDQ5NiwgMC43NDczMDUsIDEuMDc2NDksIDEuNzM0NzgsIDIuMTQ2MTgiLCBcCi0gICAgICAgICAgIjAuMTg1ODc2LCAwLjIzNTU2MSwgMC41MTUzNDgsIDAuNzYyMTYyLCAxLjA5MTI3LCAxLjc0OTY1LCAyLjE2MDk5IiwgXAotICAgICAgICAgICIwLjIwMDUyMiwgMC4yNTAyMTcsIDAuNTMwMDI4LCAwLjc3NjgzOSwgMS4xMDU5NSwgMS43NjQzMywgMi4xNzU2OCIsIFwKLSAgICAgICAgICAiMC4yMjI1NCwgMC4yNzIyMzQsIDAuNTUyMDU2LCAwLjc5ODg5MiwgMS4xMjgsIDEuNzg2MzksIDIuMTk3NzYiLCBcCi0gICAgICAgICAgIjAuMjQwNDEzLCAwLjI5MDA5MiwgMC41Njk5MzYsIDAuODE2NzYsIDEuMTQ1ODksIDEuODA0MjUsIDIuMjE1NTkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTc4ODI2LCAwLjI3NTU5MSwgMC44MzAxNCwgMS4zMjAzMSwgMS45Nzc4MywgMy4yODM5MywgNC4xMDM4MyIsIFwKLSAgICAgICAgICAiMC4xNzg4MjEsIDAuMjc1NTkyLCAwLjgzMTIwNywgMS4zMjAzNCwgMS45Nzc4NywgMy4yODM4NywgNC4xMDMiLCBcCi0gICAgICAgICAgIjAuMTc4ODEzLCAwLjI3NTU4MSwgMC44MzEwNzgsIDEuMzIwMzcsIDEuOTc3NjIsIDMuMjgzOSwgNC4xMDM4IiwgXAotICAgICAgICAgICIwLjE3ODc5MiwgMC4yNzU2MTcsIDAuODMwMjc3LCAxLjMyMDU0LCAxLjk3NzU0LCAzLjI4MzkyLCA0LjEwMjk5IiwgXAotICAgICAgICAgICIwLjE3ODg1NSwgMC4yNzU2MzMsIDAuODMwMDU2LCAxLjMyMTMsIDEuOTc3NDQsIDMuMjg1NDYsIDQuMTAyOTMiLCBcCi0gICAgICAgICAgIjAuMTc5MDM4LCAwLjI3NTcwNSwgMC44MzAyNDcsIDEuMzIwOCwgMS45NzUxNCwgMy4yODY0NiwgNC4xMDI3IiwgXAotICAgICAgICAgICIwLjE3OTQ2NCwgMC4yNzU4NzMsIDAuODMxMTI1LCAxLjMyMDI1LCAxLjk3NTY5LCAzLjI4NDQ4LCA0LjEwMjkxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjE3OCwgMC4wMDYxNzcsIDAuMDA2MTU5LCAwLjAwNjE1LCAwLjAwNjE0NCwgMC4wMDYxMzksIDAuMDA2MTM3IiwgXAotICAgICAgICAgICIwLjAwNjE2OCwgMC4wMDYxNjcsIDAuMDA2MTQ4LCAwLjAwNjE0LCAwLjAwNjEzNCwgMC4wMDYxMjksIDAuMDA2MTI2IiwgXAotICAgICAgICAgICIwLjAwNjE1NSwgMC4wMDYxNTQsIDAuMDA2MTM2LCAwLjAwNjEyNywgMC4wMDYxMjEsIDAuMDA2MTE2LCAwLjAwNjExNCIsIFwKLSAgICAgICAgICAiMC4wMDYxNDYsIDAuMDA2MTQ1LCAwLjAwNjEyNywgMC4wMDYxMTksIDAuMDA2MTEzLCAwLjAwNjEwNywgMC4wMDYxMDYiLCBcCi0gICAgICAgICAgIjAuMDA2MTQsIDAuMDA2MTM5LCAwLjAwNjEyMSwgMC4wMDYxMTIsIDAuMDA2MTA2LCAwLjAwNjEwMSwgMC4wMDYwOTgiLCBcCi0gICAgICAgICAgIjAuMDA2MTI3LCAwLjAwNjEyNywgMC4wMDYxMDksIDAuMDA2MTAxLCAwLjAwNjA5NCwgMC4wMDYwODksIDAuMDA2MDg3IiwgXAotICAgICAgICAgICIwLjAwNjEyMiwgMC4wMDYxMjEsIDAuMDA2MTA0LCAwLjAwNjA5NiwgMC4wMDYwOSwgMC4wMDYwODMsIDAuMDA2MDgxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2MjQsIDAuMDA2MjQ2LCAwLjAwNjI1NCwgMC4wMDYyNTYsIDAuMDA2MjU3LCAwLjAwNjI1OCwgMC4wMDYyNTgiLCBcCi0gICAgICAgICAgIjAuMDA2MjI3LCAwLjAwNjIzMywgMC4wMDYyNDEsIDAuMDA2MjQ0LCAwLjAwNjI0NSwgMC4wMDYyNDUsIDAuMDA2MjQ2IiwgXAotICAgICAgICAgICIwLjAwNjIxNywgMC4wMDYyMjMsIDAuMDA2MjMxLCAwLjAwNjIzMywgMC4wMDYyMzQsIDAuMDA2MjM1LCAwLjAwNjIzNSIsIFwKLSAgICAgICAgICAiMC4wMDYyMDksIDAuMDA2MjE1LCAwLjAwNjIyMywgMC4wMDYyMjUsIDAuMDA2MjI2LCAwLjAwNjIyNywgMC4wMDYyMjciLCBcCi0gICAgICAgICAgIjAuMDA2MjA0LCAwLjAwNjIxLCAwLjAwNjIxOSwgMC4wMDYyMjEsIDAuMDA2MjIyLCAwLjAwNjIyMywgMC4wMDYyMjMiLCBcCi0gICAgICAgICAgIjAuMDA2MTk5LCAwLjAwNjIwNSwgMC4wMDYyMTQsIDAuMDA2MjE2LCAwLjAwNjIxNywgMC4wMDYyMTgsIDAuMDA2MjE4IiwgXAotICAgICAgICAgICIwLjAwNjIwNiwgMC4wMDYyMTIsIDAuMDA2MjIsIDAuMDA2MjIyLCAwLjAwNjIyMywgMC4wMDYyMjQsIDAuMDA2MjI0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUk4iOwotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNzA3MSwgMC4wMDcwNzYsIDAuMDA3MDgxLCAwLjAwNzA4MiwgMC4wMDcwODMsIDAuMDA3MDgzLCAwLjAwNzA4MyIsIFwKLSAgICAgICAgICAiMC4wMDcwNDgsIDAuMDA3MDUzLCAwLjAwNzA1OSwgMC4wMDcwNjEsIDAuMDA3MDYxLCAwLjAwNzA2MiwgMC4wMDcwNjIiLCBcCi0gICAgICAgICAgIjAuMDA3MDMsIDAuMDA3MDM2LCAwLjAwNzA0MywgMC4wMDcwNDUsIDAuMDA3MDQ2LCAwLjAwNzA0NywgMC4wMDcwNDciLCBcCi0gICAgICAgICAgIjAuMDA3MDEzLCAwLjAwNzAyLCAwLjAwNzAyOSwgMC4wMDcwMzEsIDAuMDA3MDMzLCAwLjAwNzAzMywgMC4wMDcwMzQiLCBcCi0gICAgICAgICAgIjAuMDA3MDAyLCAwLjAwNzAxLCAwLjAwNzAyMSwgMC4wMDcwMjQsIDAuMDA3MDI1LCAwLjAwNzAyNiwgMC4wMDcwMjciLCBcCi0gICAgICAgICAgIjAuMDA2OTg0LCAwLjAwNjk5MywgMC4wMDcwMDcsIDAuMDA3MDEsIDAuMDA3MDEyLCAwLjAwNzAxMywgMC4wMDcwMTMiLCBcCi0gICAgICAgICAgIjAuMDA2OTcyLCAwLjAwNjk4MSwgMC4wMDY5OTcsIDAuMDA3LCAwLjAwNzAwMiwgMC4wMDcwMDQsIDAuMDA3MDA0Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3Bvd2VyKHNjYWxhcikgewotICAgICAgICB2YWx1ZXMoIjAiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFJOKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE0OTI3OTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDEzODAzOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTQ5Mjc5OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDQ4NSwgMC4wMDA0ODUsIDAuMDAwNDg0LCAwLjAwMDQ4NCwgMC4wMDA0ODQsIDAuMDAwNDg0LCAwLjAwMDQ4NCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDQ4OCwgMC4wMDA0ODYsIDAuMDAwNDg2LCAwLjAwMDQ4NiwgMC4wMDA0ODYsIDAuMDAwNDg2LCAwLjAwMDQ4NiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQmIVNFJiFTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fU0VfRVFfMF9BTl9TSV9FUV8wID09IDEnYjEiOwotICAgICAgZmFsbF9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMTY1NzIyLCAwLjE3NzI1MywgMC4xOTEyMjEsIDAuMjA0MTQ2LCAwLjIxNjY1NSwgMC4yMzYwMzYsIDAuMjUyNTYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiByZWNvdmVyeV9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEJlNFJlNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9TRV9FUV8xX0FOX1NJX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQocmVjb3ZlcnlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjA3NSwgLTAuMDg2MjUsIC0wLjEwNSwgLTAuMTE3NSwgLTAuMTM2MjUsIC0wLjE1ODc1LCAtMC4xOCIsIFwKLSAgICAgICAgICAiLTAuMDgyNSwgLTAuMDkzNzUsIC0wLjExMjUsIC0wLjEzMTI1LCAtMC4xNDM3NSwgLTAuMTcyNSwgLTAuMTkzNzUiLCBcCi0gICAgICAgICAgIi0wLjA4ODc1LCAtMC4xMDYyNSwgLTAuMTE4NzUsIC0wLjEzNzUsIC0wLjE1LCAtMC4xNzg3NSwgLTAuMiIsIFwKLSAgICAgICAgICAiLTAuMDk1LCAtMC4xMDYyNSwgLTAuMTE4NzUsIC0wLjEzNzUsIC0wLjE1NjI1LCAtMC4xNzg3NSwgLTAuMiIsIFwKLSAgICAgICAgICAiLTAuMDg4NzUsIC0wLjEsIC0wLjExODc1LCAtMC4xMzEyNSwgLTAuMTUsIC0wLjE3MjUsIC0wLjE5Mzc1IiwgXAotICAgICAgICAgICItMC4wNjYyNSwgLTAuMDc3NSwgLTAuMDk2MjUsIC0wLjExNSwgLTAuMTI3NSwgLTAuMTU2MjUsIC0wLjE3NzUiLCBcCi0gICAgICAgICAgIi0wLjA0NSwgLTAuMDU2MjUsIC0wLjA3NSwgLTAuMDkzNzUsIC0wLjEwNjI1LCAtMC4xMzUsIC0wLjE1NjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogcmVtb3ZhbF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEJlNFJlNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9TRV9FUV8xX0FOX1NJX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQocmVtb3ZhbF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTg3NSwgMC4xMywgMC4xNDg3NSwgMC4xNjEyNSwgMC4xOCwgMC4yMDI1LCAwLjIyMzc1IiwgXAotICAgICAgICAgICIwLjEyNjI1LCAwLjEzNzUsIDAuMTU2MjUsIDAuMTY4NzUsIDAuMTg3NSwgMC4yMSwgMC4yMzEyNSIsIFwKLSAgICAgICAgICAiMC4xMzg3NSwgMC4xNSwgMC4xNjI1LCAwLjE4MTI1LCAwLjE5Mzc1LCAwLjIyMjUsIDAuMjQzNzUiLCBcCi0gICAgICAgICAgIjAuMTUxMjUsIDAuMTYyNSwgMC4xNzUsIDAuMTkzNzUsIDAuMjA2MjUsIDAuMjI4NzUsIDAuMjUiLCBcCi0gICAgICAgICAgIjAuMTU3NSwgMC4xNjg3NSwgMC4xODc1LCAwLjIsIDAuMjE4NzUsIDAuMjQxMjUsIDAuMjYyNSIsIFwKLSAgICAgICAgICAiMC4xNzI1LCAwLjE4Mzc1LCAwLjIwMjUsIDAuMjE1LCAwLjIzMzc1LCAwLjI1NjI1LCAwLjI3NzUiLCBcCi0gICAgICAgICAgIjAuMTg4NzUsIDAuMiwgMC4yMTI1LCAwLjIzMTI1LCAwLjI0Mzc1LCAwLjI2NjI1LCAwLjI4NzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFNFKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE1MzM0ODsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE1MzIwODsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE1MzM0ODsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDQ3NDMsIDAuMDA0NzQxLCAwLjAwNDczNSwgMC4wMDQ3MjksIDAuMDA0NzI1LCAwLjAwNDcxOSwgMC4wMDQ3MTYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDU4MTcsIDAuMDA1NzkzLCAwLjAwNTc3NCwgMC4wMDU3NjIsIDAuMDA1NzUzLCAwLjAwNTc0NCwgMC4wMDU3MzkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiUk4iOwotICAgICAgc2RmX2NvbmQgOiAiUk4gPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDI1LCAtMC4wMTM3NSwgMC4wMDUsIDAuMDE3NSwgMC4wMywgMC4wNTI1LCAwLjA3Mzc1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDI1LCAtMC4wMTI1LCAwLjAwNjI1LCAwLjAxODc1LCAwLjA0MTI1LCAwLjA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAxMjUsIDAuMDA2MjUsIDAuMDI4NzUsIDAuMDUiLCBcCi0gICAgICAgICAgIi0wLjA2NzUsIC0wLjA1NjI1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAxMjUsIDAuMDEsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjA4LCAtMC4wNjg3NSwgLTAuMDU2MjUsIC0wLjAzNzUsIC0wLjAyNSwgLTAuMDAyNSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMTAyNSwgLTAuMDkxMjUsIC0wLjA3ODc1LCAtMC4wNiwgLTAuMDQ3NSwgLTAuMDI1LCAtMC4wMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMTE3NSwgLTAuMTA2MjUsIC0wLjA5Mzc1LCAtMC4wODEyNSwgLTAuMDYyNSwgLTAuMDQsIC0wLjAyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEyNSwgMC4wMjM3NSwgMC4wNDI1LCAwLjA1NSwgMC4wNjc1LCAwLjA5LCAwLjExMTI1IiwgXAotICAgICAgICAgICIwLjAwMTI1LCAwLjAxMjUsIDAuMDMxMjUsIDAuMDQzNzUsIDAuMDYyNSwgMC4wODUsIDAuMSIsIFwKLSAgICAgICAgICAiLTAuMDExMjUsIDAsIDAuMDE4NzUsIDAuMDMxMjUsIDAuMDUsIDAuMDcyNSwgMC4wODc1IiwgXAotICAgICAgICAgICItMC4wMTc1LCAtMC4wMDYyNSwgMC4wMDYyNSwgMC4wMTg3NSwgMC4wMzc1LCAwLjA2LCAwLjA3NSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAxODc1LCAtMC4wMDYyNSwgMC4wMDYyNSwgMC4wMjUsIDAuMDQ3NSwgMC4wNjg3NSIsIFwKLSAgICAgICAgICAiLTAuMDUyNSwgLTAuMDQxMjUsIC0wLjAyMjUsIC0wLjAxLCAwLjAwMjUsIDAuMDI1LCAwLjA0NjI1IiwgXAotICAgICAgICAgICItMC4wNjEyNSwgLTAuMDUsIC0wLjAzNzUsIC0wLjAyNSwgLTAuMDEyNSwgMC4wMSwgMC4wMzEyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiUk4iOwotICAgICAgc2RmX2NvbmQgOiAiUk4gPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTU2MjUsIDAuMTQ1LCAwLjEzMjUsIDAuMTEzNzUsIDAuMTAxMjUsIDAuMDg1LCAwLjA3IiwgXAotICAgICAgICAgICIwLjE2NzUsIDAuMTU2MjUsIDAuMTM3NSwgMC4xMjUsIDAuMTEyNSwgMC4wOTYyNSwgMC4wODEyNSIsIFwKLSAgICAgICAgICAiMC4xOCwgMC4xNjg3NSwgMC4xNSwgMC4xMzc1LCAwLjEyNSwgMC4xMDg3NSwgMC4wOTM3NSIsIFwKLSAgICAgICAgICAiMC4xOTI1LCAwLjE4MTI1LCAwLjE2ODc1LCAwLjE1LCAwLjEzNzUsIDAuMTIxMjUsIDAuMTEyNSIsIFwKLSAgICAgICAgICAiMC4yMDUsIDAuMTkzNzUsIDAuMTgxMjUsIDAuMTY4NzUsIDAuMTU2MjUsIDAuMTMzNzUsIDAuMTI1IiwgXAotICAgICAgICAgICIwLjIyNzUsIDAuMjE2MjUsIDAuMjAzNzUsIDAuMTg1LCAwLjE3MjUsIDAuMTU2MjUsIDAuMTQxMjUiLCBcCi0gICAgICAgICAgIjAuMjQ4NzUsIDAuMjM3NSwgMC4yMTg3NSwgMC4yMDYyNSwgMC4xOTM3NSwgMC4xNzc1LCAwLjE2MjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xOTM3NSwgMC4xODI1LCAwLjE2Mzc1LCAwLjE1MTI1LCAwLjEzODc1LCAwLjEyMjUsIDAuMTA3NSIsIFwKLSAgICAgICAgICAiMC4yMDUsIDAuMTkzNzUsIDAuMTc1LCAwLjE2MjUsIDAuMTUsIDAuMTMzNzUsIDAuMTE4NzUiLCBcCi0gICAgICAgICAgIjAuMjE3NSwgMC4yMDYyNSwgMC4xOTM3NSwgMC4xODEyNSwgMC4xNjg3NSwgMC4xNDYyNSwgMC4xMzc1IiwgXAotICAgICAgICAgICIwLjIzNjI1LCAwLjIyNSwgMC4yMDYyNSwgMC4xOTM3NSwgMC4xODEyNSwgMC4xNjUsIDAuMTUiLCBcCi0gICAgICAgICAgIjAuMjQ4NzUsIDAuMjM3NSwgMC4yMTg3NSwgMC4yMDYyNSwgMC4xOTM3NSwgMC4xNzc1LCAwLjE2MjUiLCBcCi0gICAgICAgICAgIjAuMjY1LCAwLjI1Mzc1LCAwLjI0MTI1LCAwLjIyMjUsIDAuMjEsIDAuMTkzNzUsIDAuMTg1IiwgXAotICAgICAgICAgICIwLjI4LCAwLjI2ODc1LCAwLjI1NjI1LCAwLjI0Mzc1LCAwLjIzMTI1LCAwLjIwODc1LCAwLjIiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFNJKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA4NjQ1MTk7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwODYwNjk3OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDg2NDUxOTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDI5OTcsIDAuMDAyOTc3LCAwLjAwMjk2NywgMC4wMDI5NjEsIDAuMDAyOTU2LCAwLjAwMjk0OSwgMC4wMDI5NDUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDUxMTUsIDAuMDA1MTA2LCAwLjAwNTEsIDAuMDA1MDk3LCAwLjAwNTA5NCwgMC4wMDUwOSwgMC4wMDUwODgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiUk4mU0UiOwotICAgICAgc2RmX2NvbmQgOiAiUk5fRVFfMV9BTl9TRV9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjEwNjI1LCAtMC4wOTUsIC0wLjA4MjUsIC0wLjA3LCAtMC4wNTc1LCAtMC4wNDEyNSwgLTAuMDI2MjUiLCBcCi0gICAgICAgICAgIi0wLjExNzUsIC0wLjEwNjI1LCAtMC4wOTM3NSwgLTAuMDgxMjUsIC0wLjA2ODc1LCAtMC4wNTI1LCAtMC4wMzc1IiwgXAotICAgICAgICAgICItMC4xMywgLTAuMTE4NzUsIC0wLjEwNjI1LCAtMC4wOTM3NSwgLTAuMDgxMjUsIC0wLjA2NSwgLTAuMDUiLCBcCi0gICAgICAgICAgIi0wLjE0MjUsIC0wLjEzMTI1LCAtMC4xMTg3NSwgLTAuMTA2MjUsIC0wLjEsIC0wLjA3NzUsIC0wLjA2ODc1IiwgXAotICAgICAgICAgICItMC4xNTUsIC0wLjE0Mzc1LCAtMC4xMzEyNSwgLTAuMTE4NzUsIC0wLjExMjUsIC0wLjA5NjI1LCAtMC4wODEyNSIsIFwKLSAgICAgICAgICAiLTAuMTc3NSwgLTAuMTY2MjUsIC0wLjE1Mzc1LCAtMC4xNDEyNSwgLTAuMTI4NzUsIC0wLjExMjUsIC0wLjEwMzc1IiwgXAotICAgICAgICAgICItMC4xOTg3NSwgLTAuMTg3NSwgLTAuMTc1LCAtMC4xNjI1LCAtMC4xNSwgLTAuMTMzNzUsIC0wLjExODc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMCwgMC4wMTEyNSwgMC4wMywgMC4wNDI1LCAwLjA1NSwgMC4wNzc1LCAwLjA5ODc1IiwgXAotICAgICAgICAgICItMC4wMTEyNSwgMCwgMC4wMTg3NSwgMC4wMzEyNSwgMC4wNDM3NSwgMC4wNjYyNSwgMC4wODc1IiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDEyNSwgMC4wMDYyNSwgMC4wMTg3NSwgMC4wMzEyNSwgMC4wNTM3NSwgMC4wNzUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMjUsIC0wLjAwNjI1LCAwLjAwNjI1LCAwLjAxODc1LCAwLjA0MTI1LCAwLjA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wMzc1LCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAuMDA2MjUsIDAuMDM1LCAwLjA1IiwgXAotICAgICAgICAgICItMC4wNjUsIC0wLjA1Mzc1LCAtMC4wMzUsIC0wLjAyMjUsIC0wLjAxLCAwLjAxMjUsIDAuMDMzNzUiLCBcCi0gICAgICAgICAgIi0wLjA4LCAtMC4wNjg3NSwgLTAuMDUsIC0wLjAzNzUsIC0wLjAyNSwgLTAuMDAyNSwgMC4wMTg3NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiUk4mU0UiOwotICAgICAgc2RmX2NvbmQgOiAiUk5fRVFfMV9BTl9TRV9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE2ODc1LCAwLjE1NzUsIDAuMTQ1LCAwLjEyNjI1LCAwLjExMzc1LCAwLjA5NzUsIDAuMDgyNSIsIFwKLSAgICAgICAgICAiMC4xOCwgMC4xNjg3NSwgMC4xNTYyNSwgMC4xMzc1LCAwLjEyNSwgMC4xMDg3NSwgMC4wOTM3NSIsIFwKLSAgICAgICAgICAiMC4xOTI1LCAwLjE4MTI1LCAwLjE2ODc1LCAwLjE1LCAwLjE0Mzc1LCAwLjEyMTI1LCAwLjExMjUiLCBcCi0gICAgICAgICAgIjAuMjA1LCAwLjE5Mzc1LCAwLjE4MTI1LCAwLjE2ODc1LCAwLjE1NjI1LCAwLjEzMzc1LCAwLjEyNSIsIFwKLSAgICAgICAgICAiMC4yMjM3NSwgMC4yMDYyNSwgMC4xOTM3NSwgMC4xODEyNSwgMC4xNjg3NSwgMC4xNTI1LCAwLjEzNzUiLCBcCi0gICAgICAgICAgIjAuMjQsIDAuMjI4NzUsIDAuMjE2MjUsIDAuMjAzNzUsIDAuMTkxMjUsIDAuMTY4NzUsIDAuMTYiLCBcCi0gICAgICAgICAgIjAuMjYxMjUsIDAuMjUsIDAuMjMxMjUsIDAuMjE4NzUsIDAuMjA2MjUsIDAuMTksIDAuMTc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg3NSwgMC4wNzYyNSwgMC4wNTc1LCAwLjA0NSwgMC4wMjYyNSwgMC4wMDM3NSwgLTAuMDE3NSIsIFwKLSAgICAgICAgICAiMC4wOTg3NSwgMC4wODc1LCAwLjA2ODc1LCAwLjA1NjI1LCAwLjAzNzUsIDAuMDE1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiMC4xMTEyNSwgMC4xLCAwLjA4MTI1LCAwLjA2ODc1LCAwLjA1LCAwLjAyNzUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMTIzNzUsIDAuMTEyNSwgMC4wOTM3NSwgMC4wODEyNSwgMC4wNjI1LCAwLjA0LCAwLjAxODc1IiwgXAotICAgICAgICAgICIwLjEzNjI1LCAwLjEyNSwgMC4xMDYyNSwgMC4wOTM3NSwgMC4wNzUsIDAuMDUyNSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4xNTI1LCAwLjE0MTI1LCAwLjEyODc1LCAwLjExLCAwLjA5NzUsIDAuMDY4NzUsIDAuMDQ3NSIsIFwKLSAgICAgICAgICAiMC4xNzM3NSwgMC4xNTYyNSwgMC4xNDM3NSwgMC4xMjUsIDAuMTEyNSwgMC4wODM3NSwgMC4wNjg3NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogU0RGRlJIUVg0ICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoU0RGRlJIUVg0KSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuNTI5NjAxOwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIGZmIChOMzAsUUJJTlQpIHsKLSAgICBuZXh0X3N0YXRlIDogIigoU0UgU0kpICsgKCFTRSBEKSkiOwotICAgIGNsb2NrZWRfb24gOiAiQ0siOwotICAgIGNsZWFyIDogIighUk4pIjsKLSAgfQotICBwaW4oQ0spICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDU2NDU2NTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA1NjQyNzc7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNTY0NTY1OwotICAgIGNsb2NrIDogdHJ1ZTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDMwNjgsIDAuMDAzMDU3LCAwLjAwMzA0NywgMC4wMDMwNCwgMC4wMDMwMzUsIDAuMDAzMDI5LCAwLjAwMzAyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNjczOSwgMC4wMDY3MywgMC4wMDY3MjMsIDAuMDA2NzE3LCAwLjAwNjcxNCwgMC4wMDY3MTksIDAuMDA2NzIxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRCZSTiYhU0UmIVNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9STl9FUV8xX0FOX1NFX0VRXzBfQU5fU0lfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjI3ODU3NCwgMC4yOTA1MiwgMC4zMDU2NjIsIDAuMzIxMTA3LCAwLjMzNjU0OCwgMC4zNjA3MDgsIDAuMzgyMjgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjIxMzMzOSwgMC4yMjQ2NzIsIDAuMjM5NTU4LCAwLjI1NDQxNCwgMC4yNjkyNzQsIDAuMjkyNDY1LCAwLjMxMjY0NCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwODc5NDU2OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDg3NTk1NjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA4Nzk0NTY7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzMjg4LCAwLjAwMzI2OSwgMC4wMDMyNTgsIDAuMDAzMjUyLCAwLjAwMzI0NywgMC4wMDMyNCwgMC4wMDMyMzciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDQ3ODEsIDAuMDA0NzcxLCAwLjAwNDc2NiwgMC4wMDQ3NjIsIDAuMDA0NzYsIDAuMDA0NzU2LCAwLjAwNDc1NCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJSTiYhU0UiOwotICAgICAgc2RmX2NvbmQgOiAiUk5fRVFfMV9BTl9TRV9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjEsIC0wLjA4ODc1LCAtMC4wODI1LCAtMC4wNywgLTAuMDU3NSwgLTAuMDQxMjUsIC0wLjAyNjI1IiwgXAotICAgICAgICAgICItMC4xMTEyNSwgLTAuMSwgLTAuMDkzNzUsIC0wLjA4MTI1LCAtMC4wNjg3NSwgLTAuMDUyNSwgLTAuMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMTIzNzUsIC0wLjExODc1LCAtMC4xMDYyNSwgLTAuMDkzNzUsIC0wLjA4MTI1LCAtMC4wNjUsIC0wLjA1IiwgXAotICAgICAgICAgICItMC4xNDI1LCAtMC4xMzEyNSwgLTAuMTE4NzUsIC0wLjEwNjI1LCAtMC4wOTM3NSwgLTAuMDc3NSwgLTAuMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMTU1LCAtMC4xNDM3NSwgLTAuMTMxMjUsIC0wLjExODc1LCAtMC4xMDYyNSwgLTAuMDksIC0wLjA3NSIsIFwKLSAgICAgICAgICAiLTAuMTcxMjUsIC0wLjE2NjI1LCAtMC4xNTM3NSwgLTAuMTQxMjUsIC0wLjEyODc1LCAtMC4xMTI1LCAtMC4wOTc1IiwgXAotICAgICAgICAgICItMC4xOTI1LCAtMC4xODEyNSwgLTAuMTY4NzUsIC0wLjE1NjI1LCAtMC4xNDM3NSwgLTAuMTI3NSwgLTAuMTE4NzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMjUsIDAuMDIzNzUsIDAuMDQyNSwgMC4wNTUsIDAuMDY3NSwgMC4wOSwgMC4xMTEyNSIsIFwKLSAgICAgICAgICAiMC4wMDEyNSwgMC4wMTI1LCAwLjAzMTI1LCAwLjA0Mzc1LCAwLjA1NjI1LCAwLjA3ODc1LCAwLjEiLCBcCi0gICAgICAgICAgIi0wLjAxMTI1LCAwLCAwLjAxODc1LCAwLjAzMTI1LCAwLjA0Mzc1LCAwLjA2NjI1LCAwLjA4NzUiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTI1LCAwLjAwNjI1LCAwLjAxODc1LCAwLjAzMTI1LCAwLjA1Mzc1LCAwLjA3NSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAyNSwgLTAuMDA2MjUsIDAuMDA2MjUsIDAuMDI1LCAwLjA0NzUsIDAuMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDUyNSwgLTAuMDQxMjUsIC0wLjAyMjUsIC0wLjAxLCAwLjAwMjUsIDAuMDI1LCAwLjA0NjI1IiwgXAotICAgICAgICAgICItMC4wNjEyNSwgLTAuMDUsIC0wLjAzNzUsIC0wLjAyNSwgLTAuMDEyNSwgMC4wMSwgMC4wMzEyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiUk4mIVNFIjsKLSAgICAgIHNkZl9jb25kIDogIlJOX0VRXzFfQU5fU0VfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xODEyNSwgMC4xNywgMC4xNTEyNSwgMC4xMzg3NSwgMC4xMjYyNSwgMC4xMDM3NSwgMC4wODg3NSIsIFwKLSAgICAgICAgICAiMC4xOTI1LCAwLjE4MTI1LCAwLjE2MjUsIDAuMTUsIDAuMTM3NSwgMC4xMTUsIDAuMSIsIFwKLSAgICAgICAgICAiMC4yMDUsIDAuMTkzNzUsIDAuMTc1LCAwLjE2MjUsIDAuMTUsIDAuMTI3NSwgMC4xMTI1IiwgXAotICAgICAgICAgICIwLjIxNzUsIDAuMjA2MjUsIDAuMTg3NSwgMC4xNzUsIDAuMTYyNSwgMC4xNCwgMC4xMzEyNSIsIFwKLSAgICAgICAgICAiMC4yMywgMC4yMTg3NSwgMC4yLCAwLjE4NzUsIDAuMTc1LCAwLjE1ODc1LCAwLjE0Mzc1IiwgXAotICAgICAgICAgICIwLjI1MjUsIDAuMjQxMjUsIDAuMjIyNSwgMC4yMSwgMC4xOTc1LCAwLjE3NSwgMC4xNiIsIFwKLSAgICAgICAgICAiMC4yNzM3NSwgMC4yNTYyNSwgMC4yNDM3NSwgMC4yMjUsIDAuMjEyNSwgMC4xOTYyNSwgMC4xODEyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4MTI1LCAwLjA3LCAwLjA1MTI1LCAwLjAzODc1LCAwLjAyLCAtMC4wMDI1LCAtMC4wMjM3NSIsIFwKLSAgICAgICAgICAiMC4wOTI1LCAwLjA4MTI1LCAwLjA2MjUsIDAuMDUsIDAuMDMxMjUsIDAuMDA4NzUsIC0wLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMTA1LCAwLjA5Mzc1LCAwLjA3NSwgMC4wNjI1LCAwLjA0Mzc1LCAwLjAyMTI1LCAwIiwgXAotICAgICAgICAgICIwLjExNzUsIDAuMTA2MjUsIDAuMDg3NSwgMC4wNzUsIDAuMDU2MjUsIDAuMDMzNzUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4xMywgMC4xMTg3NSwgMC4xLCAwLjA4NzUsIDAuMDY4NzUsIDAuMDQ2MjUsIDAuMDI1IiwgXAotICAgICAgICAgICIwLjE1MjUsIDAuMTM1LCAwLjEyMjUsIDAuMTAzNzUsIDAuMDkxMjUsIDAuMDYyNSwgMC4wNDc1IiwgXAotICAgICAgICAgICIwLjE2NzUsIDAuMTU2MjUsIDAuMTM3NSwgMC4xMjUsIDAuMTA2MjUsIDAuMDgzNzUsIDAuMDYyNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjUxNjA4NTsKLSAgICBmdW5jdGlvbiA6ICJOMzAiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5vbl91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcmlzaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjgzODA5LCAwLjQxNzYxOCwgMC41NDQ5MTYsIDAuNjM1ODcyLCAwLjc4MTI0NSwgMC45MDg0NDQsIDEuMDkwMjciLCBcCi0gICAgICAgICAgIjAuMjk1ODcsIDAuNDI5Njc3LCAwLjU1Njk3OCwgMC42NDc5NDIsIDAuNzkzMzk0LCAwLjkyMDUzOSwgMS4xMDIzIiwgXAotICAgICAgICAgICIwLjMxMDc1MiwgMC40NDQ1NDQsIDAuNTcxODQzLCAwLjY2MjgwNSwgMC44MDgxMjIsIDAuOTM1NDMxLCAxLjExNzA3IiwgXAotICAgICAgICAgICIwLjMyNjI5NiwgMC40NjAwODksIDAuNTg3Mzg4LCAwLjY3ODM0OCwgMC44MjM3MTYsIDAuOTUwOTEyLCAxLjEzMjczIiwgXAotICAgICAgICAgICIwLjM0MTc2MywgMC40NzU1NTgsIDAuNjAyODYsIDAuNjkzODI1LCAwLjgzOTI1OSwgMC45NjY1MzYsIDEuMTQ4MTUiLCBcCi0gICAgICAgICAgIjAuMzY1NzE1LCAwLjQ5OTQ5OSwgMC42MjY4MjgsIDAuNzE3NjgsIDAuODYzMDksIDAuOTkwMzA4LCAxLjE3MjA1IiwgXAotICAgICAgICAgICIwLjM4NzMwMiwgMC41MjExMDEsIDAuNjQ4NCwgMC43MzkzNjEsIDAuODg0NzI4LCAxLjAxMTkzLCAxLjE5MzcyIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY3NTUsIDAuMzE0NTgxLCAwLjU3MTU4NywgMC43NTU4ODYsIDEuMDU0OTEsIDEuMzEyODIsIDEuNjgyNTYiLCBcCi0gICAgICAgICAgIjAuMDY3NTQsIDAuMzE0ODI3LCAwLjU3MTU4OCwgMC43NTU5MTEsIDEuMDUyMzQsIDEuMzEyOCwgMS42ODY5NSIsIFwKLSAgICAgICAgICAiMC4wNjc0MjUsIDAuMzE0NjA5LCAwLjU3MTU4OCwgMC43NTU5NjIsIDEuMDU0NzEsIDEuMzE1MDUsIDEuNjg2MjQiLCBcCi0gICAgICAgICAgIjAuMDY3NDkzLCAwLjMxNDYzNiwgMC41NzE1ODksIDAuNzU2MDI4LCAxLjA1NDksIDEuMzEyNzMsIDEuNjg2OTMiLCBcCi0gICAgICAgICAgIjAuMDY3NDc5LCAwLjMxNDgyMiwgMC41NzE1OTIsIDAuNzU1ODkyLCAxLjA1MiwgMS4zMTE3NiwgMS42ODY3NyIsIFwKLSAgICAgICAgICAiMC4wNjczOTQsIDAuMzE0NzUyLCAwLjU3MjYzMSwgMC43NTY1MjMsIDEuMDU0NzMsIDEuMzE0ODgsIDEuNjgzOTQiLCBcCi0gICAgICAgICAgIjAuMDY3NCwgMC4zMTQ2MiwgMC41NzE1ODUsIDAuNzU2MSwgMS4wNTQ4OSwgMS4zMTI3NCwgMS42ODY5NCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI3ODU3NiwgMC40MjU4MDYsIDAuNTcxNDI3LCAwLjY3NTQxMywgMC44NDE5MDQsIDAuOTg3NDI1LCAxLjE5NTI2IiwgXAotICAgICAgICAgICIwLjI5MDUyMiwgMC40Mzc3NywgMC41ODMzNzMsIDAuNjg3MzQxLCAwLjg1MzczMSwgMC45OTkzOSwgMS4yMDcyOCIsIFwKLSAgICAgICAgICAiMC4zMDU2NjUsIDAuNDUyODgxLCAwLjU5ODUwOCwgMC43MDI0ODksIDAuODY4OTEyLCAxLjAxNDUsIDEuMjIyNDEiLCBcCi0gICAgICAgICAgIjAuMzIxMTA4LCAwLjQ2ODM0OCwgMC42MTM5NTcsIDAuNzE3OTI2LCAwLjg4NDMwOSwgMS4wMjk5OSwgMS4yMzc4OCIsIFwKLSAgICAgICAgICAiMC4zMzY1NTEsIDAuNDgzODA1LCAwLjYyOTQwMSwgMC43MzMzODMsIDAuODk5ODAyLCAxLjA0NTQsIDEuMjUzMyIsIFwKLSAgICAgICAgICAiMC4zNjA3MTUsIDAuNTA3OTU1LCAwLjY1MzU2NCwgMC43NTc1NDgsIDAuOTIzOTc1LCAxLjA2OTU2LCAxLjI3NzQ3IiwgXAotICAgICAgICAgICIwLjM4MjI4NCwgMC41Mjk1MzgsIDAuNjc1MTMzLCAwLjc3OTExNSwgMC45NDU1MzQsIDEuMDkxMTMsIDEuMjk5MDMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjAwMTQsIDAuMzQ1MDA1LCAwLjYzNTExOSwgMC44NDA3NTMsIDEuMTcxNjIsIDEuNDYxOTEsIDEuODc3OTQiLCBcCi0gICAgICAgICAgIjAuMDU5OTg4LCAwLjM0NDc4NiwgMC42MzUxMjEsIDAuODQyODc5LCAxLjE3Mzc5LCAxLjQ2MDcsIDEuODgwMTMiLCBcCi0gICAgICAgICAgIjAuMDYwMDM1LCAwLjM0NDk3MiwgMC42MzUxMiwgMC44NDE1MjgsIDEuMTcyMDIsIDEuNDYxOTYsIDEuODgwMTQiLCBcCi0gICAgICAgICAgIjAuMDYwMDEyLCAwLjM0NDgwNCwgMC42MzUxMjcsIDAuODQyNzQxLCAxLjE3NTI1LCAxLjQ2MTk4LCAxLjg3OTk5IiwgXAotICAgICAgICAgICIwLjA1OTk4NSwgMC4zNDQwMDYsIDAuNjM1MTE4LCAwLjg0MTgyOSwgMS4xNzEzOCwgMS40NjE5OCwgMS44ODAxOSIsIFwKLSAgICAgICAgICAiMC4wNTk5OTgsIDAuMzQ0NDMzLCAwLjYzNTExNywgMC44NDEwNTYsIDEuMTczMTMsIDEuNDYyMDQsIDEuODgwMTQiLCBcCi0gICAgICAgICAgIjAuMDYsIDAuMzQzOTUxLCAwLjYzNTExOCwgMC44NDE3OTEsIDEuMTcxNDIsIDEuNDYyMDIsIDEuODgwMTkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUk4iOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGNsZWFyOwotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3NzQxNSwgMC4yMjUzOTUsIDAuMzcwODA5LCAwLjQ3NDcyMSwgMC42NDEwODYsIDAuNzg2NTUsIDAuOTk0NDc3IiwgXAotICAgICAgICAgICIwLjA4OTAwMywgMC4yMzcwMDUsIDAuMzgyNDIzLCAwLjQ4NjMzMSwgMC42NTI3LCAwLjc5ODE4LCAxLjAwNjE2IiwgXAotICAgICAgICAgICIwLjEwMzgxNiwgMC4yNTE4NTksIDAuMzk3Mjg5LCAwLjUwMTIwNSwgMC42Njc1NywgMC44MTMwNTQsIDEuMDIxMDMiLCBcCi0gICAgICAgICAgIjAuMTE4MzAxLCAwLjI2NjM4OSwgMC40MTE4NDEsIDAuNTE1NzU0LCAwLjY4MjExNywgMC44Mjc2LCAxLjAzNTU3IiwgXAotICAgICAgICAgICIwLjEzMjc0MiwgMC4yODA4NDYsIDAuNDI2Mjk5LCAwLjUzMDI0NSwgMC42OTY1ODIsIDAuODQyMTAxLCAxLjA1MDA3IiwgXAotICAgICAgICAgICIwLjE1NDI3MSwgMC4zMDI0MTYsIDAuNDQ3OTAyLCAwLjU1MTgwNCwgMC43MTgxNzEsIDAuODYzNjc2LCAxLjA3MTYyIiwgXAotICAgICAgICAgICIwLjE3MTU0MiwgMC4zMTk3OTcsIDAuNDY1Mzc4LCAwLjU2OTI2NiwgMC43MzU1NTEsIDAuODgxMDg1LCAxLjA4OTAxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU5MDc3LCAwLjM0MzYzOSwgMC42MzM0NTksIDAuODQxMTYxLCAxLjE3MTAxLCAxLjQ2MTI0LCAxLjg3NTA5IiwgXAotICAgICAgICAgICIwLjA1OTA3LCAwLjM0MzYzOCwgMC42MzM0ODIsIDAuODQwNzYyLCAxLjE3MjE1LCAxLjQ2MzM1LCAxLjg3NDg4IiwgXAotICAgICAgICAgICIwLjA1OTA4OCwgMC4zNDM2MzEsIDAuNjMzNDQ5LCAwLjg0MDc1MywgMS4xNzExNSwgMS40NjM0NiwgMS44NzQ4OCIsIFwKLSAgICAgICAgICAiMC4wNTkxOTUsIDAuMzQzNjI2LCAwLjYzMzgyOSwgMC44NDA1OTIsIDEuMTcxLCAxLjQ2MjA3LCAxLjg3NTg2IiwgXAotICAgICAgICAgICIwLjA1OTQyLCAwLjM0MzYzNSwgMC42MzM2OTUsIDAuODQwNzIxLCAxLjE3MjI1LCAxLjQ2MTcsIDEuODc1MjUiLCBcCi0gICAgICAgICAgIjAuMDYwMzk1LCAwLjM0MzY3NSwgMC42MzQwNjYsIDAuODQxNDIxLCAxLjE3MDk0LCAxLjQ2MTQyLCAxLjg3NTI2IiwgXAotICAgICAgICAgICIwLjA2MTY2NCwgMC4zNDM4MTgsIDAuNjM0MDY3LCAwLjg0MDg0NSwgMS4xNzI3LCAxLjQ2MTg2LCAxLjg3NzEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDk3NTQsIDAuMDA5ODYsIDAuMDA5ODY0LCAwLjAwOTg2MSwgMC4wMDk4NTgsIDAuMDA5ODU2LCAwLjAwOTg1NCIsIFwKLSAgICAgICAgICAiMC4wMDk3NDMsIDAuMDA5ODUsIDAuMDA5ODUzLCAwLjAwOTg1LCAwLjAwOTg0OCwgMC4wMDk4NDUsIDAuMDA5ODQzIiwgXAotICAgICAgICAgICIwLjAwOTczMSwgMC4wMDk4MzcsIDAuMDA5ODQxLCAwLjAwOTgzOCwgMC4wMDk4MzUsIDAuMDA5ODMyLCAwLjAwOTgzIiwgXAotICAgICAgICAgICIwLjAwOTcyMiwgMC4wMDk4MjgsIDAuMDA5ODMyLCAwLjAwOTgzMSwgMC4wMDk4MjcsIDAuMDA5ODI0LCAwLjAwOTgyMyIsIFwKLSAgICAgICAgICAiMC4wMDk3MTQsIDAuMDA5ODIxLCAwLjAwOTgyNCwgMC4wMDk4MjIsIDAuMDA5ODE5LCAwLjAwOTgxNiwgMC4wMDk4MTQiLCBcCi0gICAgICAgICAgIjAuMDA5NzAxLCAwLjAwOTgwOCwgMC4wMDk4MTEsIDAuMDA5ODA5LCAwLjAwOTgwNywgMC4wMDk4MDQsIDAuMDA5ODAxIiwgXAotICAgICAgICAgICIwLjAwOTY5NiwgMC4wMDk4MDMsIDAuMDA5ODA2LCAwLjAwOTgwNiwgMC4wMDk4MDMsIDAuMDA5Nzk5LCAwLjAwOTc5NiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA5NTU2LCAwLjAwOTcwMiwgMC4wMDk3MjEsIDAuMDA5NzI2LCAwLjAwOTczMSwgMC4wMDk3MzMsIDAuMDA5NzM2IiwgXAotICAgICAgICAgICIwLjAwOTU0NSwgMC4wMDk2OSwgMC4wMDk3MDksIDAuMDA5NzE1LCAwLjAwOTcyLCAwLjAwOTcyMiwgMC4wMDk3MjQiLCBcCi0gICAgICAgICAgIjAuMDA5NTM4LCAwLjAwOTY4LCAwLjAwOTY5OCwgMC4wMDk3MDQsIDAuMDA5NzA5LCAwLjAwOTcxMSwgMC4wMDk3MTQiLCBcCi0gICAgICAgICAgIjAuMDA5NTMsIDAuMDA5NjcxLCAwLjAwOTY5LCAwLjAwOTY5NiwgMC4wMDk3LCAwLjAwOTcwMywgMC4wMDk3MDUiLCBcCi0gICAgICAgICAgIjAuMDA5NTIxLCAwLjAwOTY2NiwgMC4wMDk2ODUsIDAuMDA5NjksIDAuMDA5Njk2LCAwLjAwOTY5OCwgMC4wMDk3MDEiLCBcCi0gICAgICAgICAgIjAuMDA5NTI0LCAwLjAwOTY2OCwgMC4wMDk2ODcsIDAuMDA5NjkzLCAwLjAwOTY5OCwgMC4wMDk3MDEsIDAuMDA5NzAzIiwgXAotICAgICAgICAgICIwLjAwOTUyMywgMC4wMDk2NjcsIDAuMDA5Njg2LCAwLjAwOTY5MSwgMC4wMDk2OTcsIDAuMDA5Njk5LCAwLjAwOTcwMSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMDUxNSwgMC4wMTA2MTYsIDAuMDEwNjI3LCAwLjAxMDYzLCAwLjAxMDYzMywgMC4wMTA2MzQsIDAuMDEwNjM1IiwgXAotICAgICAgICAgICIwLjAxMDQ3MywgMC4wMTA1ODEsIDAuMDEwNTkyLCAwLjAxMDU5NSwgMC4wMTA1OTgsIDAuMDEwNTk5LCAwLjAxMDYwMSIsIFwKLSAgICAgICAgICAiMC4wMTA0MjUsIDAuMDEwNTQ5LCAwLjAxMDU2MywgMC4wMTA1NjgsIDAuMDEwNTcxLCAwLjAxMDU3NCwgMC4wMTA1NzYiLCBcCi0gICAgICAgICAgIjAuMDEwMzgxLCAwLjAxMDUxOSwgMC4wMTA1MzksIDAuMDEwNTQ1LCAwLjAxMDU1LCAwLjAxMDU1MiwgMC4wMTA1NTUiLCBcCi0gICAgICAgICAgIjAuMDEwMzQ5LCAwLjAxMDQ5NywgMC4wMTA1MiwgMC4wMTA1MjgsIDAuMDEwNTM0LCAwLjAxMDUzNywgMC4wMTA1NCIsIFwKLSAgICAgICAgICAiMC4wMTAzMDgsIDAuMDEwNDY0LCAwLjAxMDQ5MiwgMC4wMTA1MDEsIDAuMDEwNTA5LCAwLjAxMDUxMywgMC4wMTA1MTciLCBcCi0gICAgICAgICAgIjAuMDEwMjc5LCAwLjAxMDQzMywgMC4wMTA0NjgsIDAuMDEwNDc4LCAwLjAxMDQ4NywgMC4wMTA0OTIsIDAuMDEwNDk2Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3Bvd2VyKHNjYWxhcikgewotICAgICAgICB2YWx1ZXMoIjAiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFJOKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDIyOTczNTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDIxMjEzODsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDIyOTczNTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA3MjcsIDAuMDAwNzI3LCAwLjAwMDcyNiwgMC4wMDA3MjYsIDAuMDAwNzI2LCAwLjAwMDcyNiwgMC4wMDA3MjYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA3MzgsIDAuMDAwNzMxLCAwLjAwMDczLCAwLjAwMDczLCAwLjAwMDczLCAwLjAwMDczLCAwLjAwMDczIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRCYhU0UmIVNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9TRV9FUV8wX0FOX1NJX0VRXzAgPT0gMSdiMSI7Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4xODAxODMsIDAuMTkxNzU5LCAwLjIwNTg0NSwgMC4yMTg5OTgsIDAuMjMxNTk3LCAwLjI1MTE2NiwgMC4yNjgwMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiByZWNvdmVyeV9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEJlNFJlNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9TRV9FUV8xX0FOX1NJX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQocmVjb3ZlcnlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjA2ODc1LCAtMC4wODYyNSwgLTAuMDk4NzUsIC0wLjExNzUsIC0wLjEzLCAtMC4xNTg3NSwgLTAuMTgiLCBcCi0gICAgICAgICAgIi0wLjA3NjI1LCAtMC4wODc1LCAtMC4xMDYyNSwgLTAuMTI1LCAtMC4xMzc1LCAtMC4xNjYyNSwgLTAuMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDgyNSwgLTAuMSwgLTAuMTEyNSwgLTAuMTMxMjUsIC0wLjE0Mzc1LCAtMC4xNzI1LCAtMC4xOTM3NSIsIFwKLSAgICAgICAgICAiLTAuMDg4NzUsIC0wLjEsIC0wLjExODc1LCAtMC4xMzc1LCAtMC4xNSwgLTAuMTc4NzUsIC0wLjIiLCBcCi0gICAgICAgICAgIi0wLjA4ODc1LCAtMC4xLCAtMC4xMTg3NSwgLTAuMTM3NSwgLTAuMTUsIC0wLjE3ODc1LCAtMC4yIiwgXAotICAgICAgICAgICItMC4wNzg3NSwgLTAuMDksIC0wLjEwODc1LCAtMC4xMjc1LCAtMC4xNCwgLTAuMTY4NzUsIC0wLjE5IiwgXAotICAgICAgICAgICItMC4wNjM3NSwgLTAuMDc1LCAtMC4wOTM3NSwgLTAuMTA2MjUsIC0wLjEyNSwgLTAuMTUzNzUsIC0wLjE3NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJlbW92YWxfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRCZTRSZTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fU0VfRVFfMV9BTl9TSV9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHJlbW92YWxfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTE4NzUsIDAuMTMsIDAuMTQyNSwgMC4xNjEyNSwgMC4xNzM3NSwgMC4xOTYyNSwgMC4yMTc1IiwgXAotICAgICAgICAgICIwLjEyNjI1LCAwLjEzNzUsIDAuMTUsIDAuMTY4NzUsIDAuMTgxMjUsIDAuMjEsIDAuMjMxMjUiLCBcCi0gICAgICAgICAgIjAuMTMyNSwgMC4xNSwgMC4xNjI1LCAwLjE3NSwgMC4xOTM3NSwgMC4yMTYyNSwgMC4yMzc1IiwgXAotICAgICAgICAgICIwLjE0NSwgMC4xNTYyNSwgMC4xNzUsIDAuMTg3NSwgMC4yLCAwLjIyODc1LCAwLjI1IiwgXAotICAgICAgICAgICIwLjE1NzUsIDAuMTY4NzUsIDAuMTgxMjUsIDAuMiwgMC4yMTI1LCAwLjIzNSwgMC4yNTYyNSIsIFwKLSAgICAgICAgICAiMC4xNjYyNSwgMC4xNzc1LCAwLjE5NjI1LCAwLjIwODc1LCAwLjIyNzUsIDAuMjUsIDAuMjcxMjUiLCBcCi0gICAgICAgICAgIjAuMTc2MjUsIDAuMTkzNzUsIDAuMjA2MjUsIDAuMjI1LCAwLjIzNzUsIDAuMjYsIDAuMjgxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFNFKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE0MDI2MzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE0MDIxOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTQwMjYzOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNDY5OSwgMC4wMDQ2OTgsIDAuMDA0NjkyLCAwLjAwNDY4NiwgMC4wMDQ2OCwgMC4wMDQ2NzUsIDAuMDA0NjcyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA1ODQxLCAwLjAwNTgxNywgMC4wMDU3OTksIDAuMDA1Nzg3LCAwLjAwNTc3OCwgMC4wMDU3NjksIDAuMDA1NzY0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlJOIjsKLSAgICAgIHNkZl9jb25kIDogIlJOID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAxODc1LCAtMC4wMDc1LCAwLjAxMTI1LCAwLjAyMzc1LCAwLjAzNjI1LCAwLjA1ODc1LCAwLjA4IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLjAxMjUsIDAuMDI1LCAwLjA0NzUsIDAuMDY4NzUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wMzc1LCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAuMDA2MjUsIDAuMDM1LCAwLjA1IiwgXAotICAgICAgICAgICItMC4wNjEyNSwgLTAuMDUsIC0wLjAzNzUsIC0wLjAxODc1LCAtMC4wMDYyNSwgMC4wMTYyNSwgMC4wMzc1IiwgXAotICAgICAgICAgICItMC4wNzM3NSwgLTAuMDYyNSwgLTAuMDUsIC0wLjAzNzUsIC0wLjAxODc1LCAwLjAwMzc1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMTAyNSwgLTAuMDg1LCAtMC4wNzI1LCAtMC4wNiwgLTAuMDQxMjUsIC0wLjAxODc1LCAwLjAwMjUiLCBcCi0gICAgICAgICAgIi0wLjExNzUsIC0wLjEwNjI1LCAtMC4wOTM3NSwgLTAuMDc1LCAtMC4wNjI1LCAtMC4wNCwgLTAuMDE4NzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyNSwgMC4wMzYyNSwgMC4wNDg3NSwgMC4wNjc1LCAwLjA4LCAwLjEwMjUsIDAuMTIzNzUiLCBcCi0gICAgICAgICAgIjAuMDEzNzUsIDAuMDI1LCAwLjA0Mzc1LCAwLjA1NjI1LCAwLjA2ODc1LCAwLjA5MTI1LCAwLjExMjUiLCBcCi0gICAgICAgICAgIjAuMDAxMjUsIDAuMDEyNSwgMC4wMzEyNSwgMC4wNDM3NSwgMC4wNTYyNSwgMC4wNzg3NSwgMC4xIiwgXAotICAgICAgICAgICItMC4wMTEyNSwgMCwgMC4wMTg3NSwgMC4wMzEyNSwgMC4wNDM3NSwgMC4wNzI1LCAwLjA4NzUiLCBcCi0gICAgICAgICAgIi0wLjAxNzUsIC0wLjAwNjI1LCAwLjAwNjI1LCAwLjAxODc1LCAwLjAzMTI1LCAwLjA2LCAwLjA3NSIsIFwKLSAgICAgICAgICAiLTAuMDMzNzUsIC0wLjAyMjUsIC0wLjAxLCAwLjAwMjUsIDAuMDE1LCAwLjAzNzUsIDAuMDU4NzUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wMzc1LCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAuMDA2MjUsIDAuMDI4NzUsIDAuMDQzNzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlJOIjsKLSAgICAgIHNkZl9jb25kIDogIlJOID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE2ODc1LCAwLjE1MTI1LCAwLjEzODc1LCAwLjEyNjI1LCAwLjExMzc1LCAwLjA5MTI1LCAwLjA3NjI1IiwgXAotICAgICAgICAgICIwLjE4LCAwLjE2MjUsIDAuMTUsIDAuMTMxMjUsIDAuMTE4NzUsIDAuMTAyNSwgMC4wODc1IiwgXAotICAgICAgICAgICIwLjE5MjUsIDAuMTc1LCAwLjE2MjUsIDAuMTUsIDAuMTMxMjUsIDAuMTE1LCAwLjEiLCBcCi0gICAgICAgICAgIjAuMjA1LCAwLjE5Mzc1LCAwLjE3NSwgMC4xNjI1LCAwLjE1LCAwLjEyNzUsIDAuMTEyNSIsIFwKLSAgICAgICAgICAiMC4yMTc1LCAwLjIwNjI1LCAwLjE4NzUsIDAuMTc1LCAwLjE2MjUsIDAuMTQsIDAuMTI1IiwgXAotICAgICAgICAgICIwLjI0LCAwLjIyODc1LCAwLjIxLCAwLjE5NzUsIDAuMTg1LCAwLjE2MjUsIDAuMTQ3NSIsIFwKLSAgICAgICAgICAiMC4yNTUsIDAuMjQzNzUsIDAuMjMxMjUsIDAuMjEyNSwgMC4yLCAwLjE4Mzc1LCAwLjE2ODc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjA2MjUsIDAuMTk1LCAwLjE3NjI1LCAwLjE2Mzc1LCAwLjE1MTI1LCAwLjEyODc1LCAwLjEyIiwgXAotICAgICAgICAgICIwLjIxNzUsIDAuMjA2MjUsIDAuMTg3NSwgMC4xNzUsIDAuMTYyNSwgMC4xNDYyNSwgMC4xMzEyNSIsIFwKLSAgICAgICAgICAiMC4yMzYyNSwgMC4yMTg3NSwgMC4yMDYyNSwgMC4xODc1LCAwLjE3NSwgMC4xNTg3NSwgMC4xNDM3NSIsIFwKLSAgICAgICAgICAiMC4yNDg3NSwgMC4yMzc1LCAwLjIxODc1LCAwLjIwNjI1LCAwLjE5Mzc1LCAwLjE3MTI1LCAwLjE1NjI1IiwgXAotICAgICAgICAgICIwLjI2MTI1LCAwLjI1LCAwLjIzMTI1LCAwLjIxODc1LCAwLjIwNjI1LCAwLjE4Mzc1LCAwLjE3NSIsIFwKLSAgICAgICAgICAiMC4yODM3NSwgMC4yNjYyNSwgMC4yNTM3NSwgMC4yMzUsIDAuMjIyNSwgMC4yMDYyNSwgMC4xOTEyNSIsIFwKLSAgICAgICAgICAiMC4yOTg3NSwgMC4yODc1LCAwLjI2ODc1LCAwLjI1NjI1LCAwLjI0Mzc1LCAwLjIyMTI1LCAwLjIwNjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTSSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwODE5NDI2OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDgxNTgxNjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA4MTk0MjY7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzMTExLCAwLjAwMzA5MiwgMC4wMDMwODIsIDAuMDAzMDc1LCAwLjAwMzA3LCAwLjAwMzA2NCwgMC4wMDMwNiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNTA2OCwgMC4wMDUwNTgsIDAuMDA1MDUzLCAwLjAwNTA0OCwgMC4wMDUwNDYsIDAuMDA1MDQyLCAwLjAwNTA0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlJOJlNFIjsKLSAgICAgIHNkZl9jb25kIDogIlJOX0VRXzFfQU5fU0VfRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4xLCAtMC4wODg3NSwgLTAuMDgyNSwgLTAuMDcsIC0wLjA1NzUsIC0wLjA0MTI1LCAtMC4wMjYyNSIsIFwKLSAgICAgICAgICAiLTAuMTExMjUsIC0wLjEwNjI1LCAtMC4wOTM3NSwgLTAuMDgxMjUsIC0wLjA2ODc1LCAtMC4wNTI1LCAtMC4wMzc1IiwgXAotICAgICAgICAgICItMC4xMywgLTAuMTE4NzUsIC0wLjEwNjI1LCAtMC4wOTM3NSwgLTAuMDgxMjUsIC0wLjA2NSwgLTAuMDUiLCBcCi0gICAgICAgICAgIi0wLjE0MjUsIC0wLjEzMTI1LCAtMC4xMTg3NSwgLTAuMTA2MjUsIC0wLjA5Mzc1LCAtMC4wNzc1LCAtMC4wNjI1IiwgXAotICAgICAgICAgICItMC4xNTUsIC0wLjE0Mzc1LCAtMC4xMzEyNSwgLTAuMTE4NzUsIC0wLjEwNjI1LCAtMC4wOSwgLTAuMDc1IiwgXAotICAgICAgICAgICItMC4xNzc1LCAtMC4xNjYyNSwgLTAuMTUzNzUsIC0wLjE0MTI1LCAtMC4xMjg3NSwgLTAuMTEyNSwgLTAuMDk3NSIsIFwKLSAgICAgICAgICAiLTAuMTkyNSwgLTAuMTgxMjUsIC0wLjE2ODc1LCAtMC4xNTYyNSwgLTAuMTUsIC0wLjEzMzc1LCAtMC4xMTg3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEyNSwgMC4wMjM3NSwgMC4wMzYyNSwgMC4wNDg3NSwgMC4wNjc1LCAwLjA5LCAwLjEwNSIsIFwKLSAgICAgICAgICAiMC4wMDEyNSwgMC4wMTI1LCAwLjAyNSwgMC4wMzc1LCAwLjA1NjI1LCAwLjA3ODc1LCAwLjEiLCBcCi0gICAgICAgICAgIi0wLjAxMTI1LCAwLCAwLjAxMjUsIDAuMDI1LCAwLjA0Mzc1LCAwLjA2NjI1LCAwLjA4NzUiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTI1LCAwLCAwLjAxODc1LCAwLjAzMTI1LCAwLjA1Mzc1LCAwLjA3NSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAyNSwgLTAuMDEyNSwgMC4wMDYyNSwgMC4wMTg3NSwgMC4wNDEyNSwgMC4wNjI1IiwgXAotICAgICAgICAgICItMC4wNTI1LCAtMC4wNDEyNSwgLTAuMDI4NzUsIC0wLjAxLCAwLjAwMjUsIDAuMDI1LCAwLjA0NjI1IiwgXAotICAgICAgICAgICItMC4wNjc1LCAtMC4wNTYyNSwgLTAuMDQzNzUsIC0wLjAyNSwgLTAuMDEyNSwgMC4wMSwgMC4wMzEyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiUk4mU0UiOwotICAgICAgc2RmX2NvbmQgOiAiUk5fRVFfMV9BTl9TRV9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE4MTI1LCAwLjE3LCAwLjE1MTI1LCAwLjEzODc1LCAwLjEyNjI1LCAwLjEwMzc1LCAwLjA4ODc1IiwgXAotICAgICAgICAgICIwLjE5MjUsIDAuMTgxMjUsIDAuMTYyNSwgMC4xNSwgMC4xMzc1LCAwLjExNSwgMC4xIiwgXAotICAgICAgICAgICIwLjIwNSwgMC4xOTM3NSwgMC4xNzUsIDAuMTYyNSwgMC4xNSwgMC4xMjc1LCAwLjExODc1IiwgXAotICAgICAgICAgICIwLjIxNzUsIDAuMjA2MjUsIDAuMTg3NSwgMC4xNzUsIDAuMTYyNSwgMC4xNDYyNSwgMC4xMzEyNSIsIFwKLSAgICAgICAgICAiMC4yMywgMC4yMTg3NSwgMC4yMDYyNSwgMC4xODc1LCAwLjE3NSwgMC4xNTg3NSwgMC4xNDM3NSIsIFwKLSAgICAgICAgICAiMC4yNTI1LCAwLjI0MTI1LCAwLjIyMjUsIDAuMjEsIDAuMTk3NSwgMC4xODEyNSwgMC4xNjYyNSIsIFwKLSAgICAgICAgICAiMC4yNzM3NSwgMC4yNjI1LCAwLjI0Mzc1LCAwLjIzMTI1LCAwLjIxMjUsIDAuMTk2MjUsIDAuMTgxMjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODc1LCAwLjA3LCAwLjA1NzUsIDAuMDM4NzUsIDAuMDI2MjUsIDAuMDAzNzUsIC0wLjAxNzUiLCBcCi0gICAgICAgICAgIjAuMDk4NzUsIDAuMDgxMjUsIDAuMDY4NzUsIDAuMDUsIDAuMDM3NSwgMC4wMTUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICIwLjExMTI1LCAwLjEsIDAuMDgxMjUsIDAuMDYyNSwgMC4wNSwgMC4wMjc1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICIwLjEyMzc1LCAwLjEwNjI1LCAwLjA5Mzc1LCAwLjA3NSwgMC4wNjI1LCAwLjA0LCAwLjAxODc1IiwgXAotICAgICAgICAgICIwLjEzNjI1LCAwLjExODc1LCAwLjEwNjI1LCAwLjA4NzUsIDAuMDc1LCAwLjA1MjUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMTUyNSwgMC4xNDEyNSwgMC4xMjI1LCAwLjExLCAwLjA5MTI1LCAwLjA2ODc1LCAwLjA0NzUiLCBcCi0gICAgICAgICAgIjAuMTY3NSwgMC4xNTYyNSwgMC4xNDM3NSwgMC4xMjUsIDAuMTEyNSwgMC4wODM3NSwgMC4wNjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogU0RGRlJYMSAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChTREZGUlgxKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMzIzMjQzOwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIGZmIChOMzAsUUJJTlQpIHsKLSAgICBuZXh0X3N0YXRlIDogIigoU0UgU0kpICsgKCFTRSBEKSkiOwotICAgIGNsb2NrZWRfb24gOiAiQ0siOwotICAgIGNsZWFyIDogIighUk4pIjsKLSAgfQotICBwaW4oQ0spICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDU0NjQ4NTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA1NDYxNzY7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNTQ2NDg1OwotICAgIGNsb2NrIDogdHJ1ZTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDIyNjYsIDAuMDAyMjU1LCAwLjAwMjI0NSwgMC4wMDIyMzgsIDAuMDAyMjMzLCAwLjAwMjIyNiwgMC4wMDIyMjMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDU1NzIsIDAuMDA1NTY0LCAwLjAwNTU1NiwgMC4wMDU1NSwgMC4wMDU1NDcsIDAuMDA1NTUsIDAuMDA1NTUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFEJlJOJiFTRSYhU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1JOX0VRXzFfQU5fU0VfRVFfMF9BTl9TSV9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMzU5NTg3LCAwLjM3MTQzOSwgMC4zODY3MDcsIDAuNDAyMTMsIDAuNDE3NjI4LCAwLjQ0MTk3OCwgMC40NjMwMjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjIwNzcyOSwgMC4yMTkwOTUsIDAuMjM0MTQxLCAwLjI0OTAzNCwgMC4yNjM2OTUsIDAuMjg2NzU4LCAwLjMwNjE5NyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNTY3ODQ3OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDU2NTk5NTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA1Njc4NDc7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyNDI1LCAwLjAwMjQxNiwgMC4wMDI0MTEsIDAuMDAyNDA3LCAwLjAwMjQwNCwgMC4wMDI0MDEsIDAuMDAyMzk5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzNjI5LCAwLjAwMzYyNCwgMC4wMDM2MjIsIDAuMDAzNjIsIDAuMDAzNjE5LCAwLjAwMzYxNywgMC4wMDM2MTYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiUk4mIVNFIjsKLSAgICAgIHNkZl9jb25kIDogIlJOX0VRXzFfQU5fU0VfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4xMzc1LCAtMC4xMjYyNSwgLTAuMTEzNzUsIC0wLjEwNzUsIC0wLjA5NSwgLTAuMDc4NzUsIC0wLjA2Mzc1IiwgXAotICAgICAgICAgICItMC4xNDg3NSwgLTAuMTM3NSwgLTAuMTI1LCAtMC4xMTg3NSwgLTAuMTA2MjUsIC0wLjA5LCAtMC4wNzUiLCBcCi0gICAgICAgICAgIi0wLjE2MTI1LCAtMC4xNSwgLTAuMTQzNzUsIC0wLjEzMTI1LCAtMC4xMTg3NSwgLTAuMTAyNSwgLTAuMDkzNzUiLCBcCi0gICAgICAgICAgIi0wLjE3Mzc1LCAtMC4xNjg3NSwgLTAuMTU2MjUsIC0wLjE0Mzc1LCAtMC4xMzEyNSwgLTAuMTIxMjUsIC0wLjEwNjI1IiwgXAotICAgICAgICAgICItMC4xOTI1LCAtMC4xODEyNSwgLTAuMTY4NzUsIC0wLjE1NjI1LCAtMC4xNSwgLTAuMTMzNzUsIC0wLjExODc1IiwgXAotICAgICAgICAgICItMC4yMTUsIC0wLjIwMzc1LCAtMC4xOTEyNSwgLTAuMTc4NzUsIC0wLjE2NjI1LCAtMC4xNTYyNSwgLTAuMTQxMjUiLCBcCi0gICAgICAgICAgIi0wLjIzLCAtMC4yMTg3NSwgLTAuMjEyNSwgLTAuMiwgLTAuMTg3NSwgLTAuMTcxMjUsIC0wLjE1NjI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDE4NzUsIC0wLjAwMTI1LCAwLjAxMTI1LCAwLjAyMzc1LCAwLjAzNjI1LCAwLjA1ODc1LCAwLjA4IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDE4NzUsIDAsIDAuMDEyNSwgMC4wMjUsIDAuMDQ3NSwgMC4wNjg3NSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDMxMjUsIC0wLjAxMjUsIDAsIDAuMDEyNSwgMC4wMzUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIi0wLjA1NSwgLTAuMDQzNzUsIC0wLjAyNSwgLTAuMDEyNSwgMCwgMC4wMjI1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICItMC4wNjc1LCAtMC4wNTYyNSwgLTAuMDM3NSwgLTAuMDI1LCAtMC4wMTI1LCAwLjAxLCAwLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wODM3NSwgLTAuMDcyNSwgLTAuMDYsIC0wLjA0MTI1LCAtMC4wMjg3NSwgLTAuMDA2MjUsIDAuMDA4NzUiLCBcCi0gICAgICAgICAgIi0wLjA5ODc1LCAtMC4wODc1LCAtMC4wNzUsIC0wLjA1NjI1LCAtMC4wNDM3NSwgLTAuMDIxMjUsIC0wLjAwNjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJSTiYhU0UiOwotICAgICAgc2RmX2NvbmQgOiAiUk5fRVFfMV9BTl9TRV9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIyNSwgMC4yMTM3NSwgMC4xOTUsIDAuMTgyNSwgMC4xNywgMC4xNDc1LCAwLjEzODc1IiwgXAotICAgICAgICAgICIwLjIzNjI1LCAwLjIyNSwgMC4yMDYyNSwgMC4xOTM3NSwgMC4xODEyNSwgMC4xNjUsIDAuMTUiLCBcCi0gICAgICAgICAgIjAuMjQ4NzUsIDAuMjM3NSwgMC4yMTg3NSwgMC4yMDYyNSwgMC4xOTM3NSwgMC4xNzc1LCAwLjE2MjUiLCBcCi0gICAgICAgICAgIjAuMjYxMjUsIDAuMjUsIDAuMjM3NSwgMC4yMTg3NSwgMC4yMDYyNSwgMC4xOSwgMC4xNzUiLCBcCi0gICAgICAgICAgIjAuMjgsIDAuMjYyNSwgMC4yNSwgMC4yMzc1LCAwLjIxODc1LCAwLjIwMjUsIDAuMTg3NSIsIFwKLSAgICAgICAgICAiMC4yOTYyNSwgMC4yODUsIDAuMjcyNSwgMC4yNTM3NSwgMC4yNDEyNSwgMC4yMjUsIDAuMjEiLCBcCi0gICAgICAgICAgIjAuMzE3NSwgMC4zMDYyNSwgMC4yODc1LCAwLjI3NSwgMC4yNjI1LCAwLjI0NjI1LCAwLjIzMTI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTM3NSwgMC4xMiwgMC4xMDc1LCAwLjA4ODc1LCAwLjA3NjI1LCAwLjA0NzUsIDAuMDI2MjUiLCBcCi0gICAgICAgICAgIjAuMTQ4NzUsIDAuMTMxMjUsIDAuMTE4NzUsIDAuMSwgMC4wODc1LCAwLjA1ODc1LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIjAuMTYxMjUsIDAuMTUsIDAuMTMxMjUsIDAuMTEyNSwgMC4xLCAwLjA3MTI1LCAwLjA1IiwgXAotICAgICAgICAgICIwLjE3Mzc1LCAwLjE2MjUsIDAuMTQzNzUsIDAuMTI1LCAwLjExMjUsIDAuMDgzNzUsIDAuMDYyNSIsIFwKLSAgICAgICAgICAiMC4xODYyNSwgMC4xNzUsIDAuMTU2MjUsIDAuMTM3NSwgMC4xMjUsIDAuMDk2MjUsIDAuMDc1IiwgXAotICAgICAgICAgICIwLjIwMjUsIDAuMTkxMjUsIDAuMTcyNSwgMC4xNiwgMC4xNDEyNSwgMC4xMTg3NSwgMC4wOTc1IiwgXAotICAgICAgICAgICIwLjIyMzc1LCAwLjIwNjI1LCAwLjE5Mzc1LCAwLjE3NSwgMC4xNjI1LCAwLjEzMzc1LCAwLjExMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFEpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4xMzMxODI7Ci0gICAgZnVuY3Rpb24gOiAiTjMwIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBub25fdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJpc2luZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zNzUxNDEsIDAuNDIwMzI3LCAwLjY2NjE3NywgMC44ODExMzMsIDEuMTcyNTIsIDEuNzQ3MDQsIDIuMTA4MDEiLCBcCi0gICAgICAgICAgIjAuMzg3MTgyLCAwLjQzMjI3OCwgMC42NzgzNDYsIDAuODk0MjM4LCAxLjE4MzQ4LCAxLjc1OTQ0LCAyLjExOTY5IiwgXAotICAgICAgICAgICIwLjQwMjI3NywgMC40NDc0OTQsIDAuNjkyNjU0LCAwLjkwOTQxNCwgMS4xOTg1NiwgMS43NzQ0NSwgMi4xMzQ1IiwgXAotICAgICAgICAgICIwLjQxNzg1LCAwLjQ2MjkyNywgMC43MDg4NzcsIDAuOTI1MDA5LCAxLjIxNTUyLCAxLjc4NzksIDIuMTUwMTkiLCBcCi0gICAgICAgICAgIjAuNDMzMjQ4LCAwLjQ3ODQzMywgMC43MjM2NTQsIDAuOTQwMzMsIDEuMjI5NzksIDEuODA1NjksIDIuMTY1NTgiLCBcCi0gICAgICAgICAgIjAuNDU3NTA5LCAwLjUwMjcyMywgMC43NDgxMDEsIDAuOTY0NzA5LCAxLjI1NDI2LCAxLjgyOTg0LCAyLjE5Mjc1IiwgXAotICAgICAgICAgICIwLjQ3ODM4NiwgMC41MjM0MTMsIDAuNzY5MDQxLCAwLjk4NTU1MSwgMS4yNzUxLCAxLjg1MDA0LCAyLjIxMDY5Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE4MzQ3MSwgMC4yNjU4MTYsIDAuNzU1NTY0LCAxLjE5MTg2LCAxLjc4MTQ5LCAyLjk2NjY1LCAzLjcwNDYxIiwgXAotICAgICAgICAgICIwLjE4MzUzNywgMC4yNjY1OTMsIDAuNzU1NTE5LCAxLjE5NjEsIDEuNzg2NjgsIDIuOTY2NiwgMy43MDQ3NSIsIFwKLSAgICAgICAgICAiMC4xODM0NDQsIDAuMjY0NzEzLCAwLjc1NzkyMSwgMS4xOTYwNSwgMS43ODMzNywgMi45NjY4MywgMy43MDQ3MyIsIFwKLSAgICAgICAgICAiMC4xODM0MzksIDAuMjY2Mjg4LCAwLjc1NjcwOCwgMS4xOTYwMiwgMS43ODUyMSwgMi45MzczMiwgMy43MDQ2OCIsIFwKLSAgICAgICAgICAiMC4xODM0NDksIDAuMjY0MDg3LCAwLjc1ODA5MiwgMS4xOTYxMSwgMS43ODUxNSwgMi45NjY4NCwgMy43MDQ3OSIsIFwKLSAgICAgICAgICAiMC4xODM0MzIsIDAuMjY2NDIzLCAwLjc1ODM2MywgMS4xOTU5OSwgMS43Njc2MywgMi45NjY1NywgMy42NzIwOCIsIFwKLSAgICAgICAgICAiMC4xODM0NDgsIDAuMjY2MzQ4LCAwLjc0OTgwNCwgMS4xOTU4NCwgMS43Njg1OCwgMi45NjY5NSwgMy43MDQ2OSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMzg5MTQsIDAuMzg4Nzc2LCAwLjY2ODgyNywgMC45MTU2MSwgMS4yNDQ1OSwgMS45MDk1NSwgMi4zMjI3NyIsIFwKLSAgICAgICAgICAiMC4zNTA3NjMsIDAuNDAwNjI3LCAwLjY4MTM3NSwgMC45MjcyNzUsIDEuMjU3NDYsIDEuOTIxNiwgMi4zMzQxIiwgXAotICAgICAgICAgICIwLjM2NjA3NiwgMC40MTU4OTksIDAuNjk2NjQxLCAwLjk0MjU2NiwgMS4yNzU0NywgMS45MzY4NiwgMi4zNDk1MyIsIFwKLSAgICAgICAgICAiMC4zODE0NTgsIDAuNDMxMzIxLCAwLjcxMTAzOCwgMC45NTgwNDMsIDEuMjg3MTcsIDEuOTUyMSwgMi4zNjUzMiIsIFwKLSAgICAgICAgICAiMC4zOTY5NjQsIDAuNDQ2NzE5LCAwLjcyNzU1LCAwLjk3MzU5MiwgMS4zMDMwMSwgMS45NjY5OCwgMi4zODA5IiwgXAotICAgICAgICAgICIwLjQyMTMwNSwgMC40NzExNjgsIDAuNzUxOTE1LCAxLjAwMDEsIDEuMzMwNzQsIDEuOTkyMTUsIDIuNDA0NzUiLCBcCi0gICAgICAgICAgIjAuNDQyMzUzLCAwLjQ5MjIxNywgMC43NzI5NzcsIDEuMDE4ODYsIDEuMzQ4MTIsIDIuMDEyMzUsIDIuNDI2MjMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTgyNTc2LCAwLjI3ODg1NywgMC44MzE0NTQsIDEuMzIxMjYsIDEuOTgxMywgMy4yODI2MiwgNC4wOTg3MiIsIFwKLSAgICAgICAgICAiMC4xODI1NTQsIDAuMjc4ODY0LCAwLjgzMjYzNiwgMS4zMjE5NSwgMS45Nzc0NywgMy4yODUxMiwgNC4xMDQ1NCIsIFwKLSAgICAgICAgICAiMC4xODI5MzcsIDAuMjc4MzEzLCAwLjgzMjYzOSwgMS4zMjE3OSwgMS45NzcxNywgMy4yODUxNywgNC4xMDQzMSIsIFwKLSAgICAgICAgICAiMC4xODI1NzYsIDAuMjc4ODU3LCAwLjgzMjg5NywgMS4zMjEwNywgMS45NzM4OCwgMy4yODYyNiwgNC4xMDMxMyIsIFwKLSAgICAgICAgICAiMC4xODI5MjYsIDAuMjc4Mzk5LCAwLjgzMjkwMywgMS4zMjA2MiwgMS45Nzc5MiwgMy4yODcxMSwgNC4xMDI4NCIsIFwKLSAgICAgICAgICAiMC4xODI1NzYsIDAuMjc4ODY4LCAwLjgzMjYzNiwgMS4zMjI5NSwgMS45NzgxOSwgMy4yODUxMywgNC4xMDQ0NSIsIFwKLSAgICAgICAgICAiMC4xODI1MDUsIDAuMjc4ODYyLCAwLjgzMjY1NCwgMS4zMjE1MywgMS45NzQ3NSwgMy4yODY3OSwgNC4xMDMxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiBjbGVhcjsKLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTY1NzMsIDAuMjE1NTQ3LCAwLjQ5NjExMiwgMC43NDM4MzYsIDEuMDcyNTYsIDEuNzMwNDMsIDIuMTQ3NzIiLCBcCi0gICAgICAgICAgIjAuMTc3MjczLCAwLjIyNzA1MSwgMC41MDc1NDYsIDAuNzU1MzM4LCAxLjA4MzIzLCAxLjc0NjEsIDIuMTU5MzciLCBcCi0gICAgICAgICAgIjAuMTkyMDIyLCAwLjI0MTg0NywgMC41MjI0MzUsIDAuNzcwMTYxLCAxLjEwMDA2LCAxLjc2MDY4LCAyLjE3NDA1IiwgXAotICAgICAgICAgICIwLjIwNjgyMiwgMC4yNTY2NTQsIDAuNTM3MjYsIDAuNzg0OTksIDEuMTE0ODcsIDEuNzc2MDcsIDIuMTg4ODciLCBcCi0gICAgICAgICAgIjAuMjIxNjQ1LCAwLjI3MTQ1NywgMC41NTIwODUsIDAuNzk5ODE5LCAxLjEzMDI4LCAxLjc5MTE1LCAyLjIwNDA0IiwgXAotICAgICAgICAgICIwLjI0NDg3NCwgMC4yOTQ3MTksIDAuNTc1Mzc3LCAwLjgyMzExOSwgMS4xNTMxMSwgMS44MTQsIDIuMjI3MDEiLCBcCi0gICAgICAgICAgIjAuMjY0Nzg0LCAwLjMxNDU5NiwgMC41OTUyNzYsIDAuODQxNzQ1LCAxLjE3MjksIDEuODMwNzUsIDIuMjQ3MzMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTgzMjksIDAuMjc4Njk4LCAwLjgzMzEzNCwgMS4zMjIyMywgMS45NzYzMiwgMy4yODYwMywgNC4xMDczMiIsIFwKLSAgICAgICAgICAiMC4xODMxNjcsIDAuMjc4NzEyLCAwLjgzMTg2MSwgMS4zMjA1MSwgMS45NzU2NiwgMy4yODY4NSwgNC4xMDg3MSIsIFwKLSAgICAgICAgICAiMC4xODMyNzgsIDAuMjc4NjkzLCAwLjgzMTk4NywgMS4zMjA5OSwgMS45NzYwNSwgMy4yODgxMSwgNC4xMDg0IiwgXAotICAgICAgICAgICIwLjE4MzI5NSwgMC4yNzg3LCAwLjgzMTg4NywgMS4zMjE5NCwgMS45NzYyNSwgMy4yODg3MSwgNC4xMDgzOSIsIFwKLSAgICAgICAgICAiMC4xODM0NzksIDAuMjc4NzEzLCAwLjgzMTU5NywgMS4zMjQwMywgMS45Nzc0OCwgMy4yODkzOCwgNC4xMDgwNSIsIFwKLSAgICAgICAgICAiMC4xODM0ODgsIDAuMjc4NzM2LCAwLjgzMzQ3MywgMS4zMjA0NCwgMS45NzU1OSwgMy4yODkzLCA0LjEwODM0IiwgXAotICAgICAgICAgICIwLjE4Mzc5NSwgMC4yNzg4MywgMC44MzE1NjIsIDEuMzIyNTIsIDEuOTc5MTEsIDMuMjkxNzYsIDQuMTA4NjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzNDU5LCAwLjAwMzQ2MywgMC4wMDM0NiwgMC4wMDM0NTcsIDAuMDAzNDU1LCAwLjAwMzQ1MiwgMC4wMDM0NTIiLCBcCi0gICAgICAgICAgIjAuMDAzNDU0LCAwLjAwMzQ1OCwgMC4wMDM0NTUsIDAuMDAzNDUyLCAwLjAwMzQ1LCAwLjAwMzQ0NywgMC4wMDM0NDYiLCBcCi0gICAgICAgICAgIjAuMDAzNDQ4LCAwLjAwMzQ1MiwgMC4wMDM0NDksIDAuMDAzNDQ2LCAwLjAwMzQ0NCwgMC4wMDM0NDEsIDAuMDAzNDQiLCBcCi0gICAgICAgICAgIjAuMDAzNDQzLCAwLjAwMzQ0NywgMC4wMDM0NDUsIDAuMDAzNDQyLCAwLjAwMzQzOSwgMC4wMDM0MzcsIDAuMDAzNDM2IiwgXAotICAgICAgICAgICIwLjAwMzQ0LCAwLjAwMzQ0NCwgMC4wMDM0NDIsIDAuMDAzNDM5LCAwLjAwMzQzNiwgMC4wMDM0MzQsIDAuMDAzNDMzIiwgXAotICAgICAgICAgICIwLjAwMzQzNSwgMC4wMDM0MzksIDAuMDAzNDM3LCAwLjAwMzQzNCwgMC4wMDM0MzEsIDAuMDAzNDI4LCAwLjAwMzQyOCIsIFwKLSAgICAgICAgICAiMC4wMDM0MzQsIDAuMDAzNDM4LCAwLjAwMzQzNiwgMC4wMDM0MzMsIDAuMDAzNDMxLCAwLjAwMzQyOCwgMC4wMDM0MjciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDM0LCAwLjAwMzQwNSwgMC4wMDM0MTIsIDAuMDAzNDEzLCAwLjAwMzQxNCwgMC4wMDM0MTUsIDAuMDAzNDE1IiwgXAotICAgICAgICAgICIwLjAwMzM5MywgMC4wMDMzOTksIDAuMDAzNDA2LCAwLjAwMzQwNywgMC4wMDM0MDgsIDAuMDAzNDA5LCAwLjAwMzQwOSIsIFwKLSAgICAgICAgICAiMC4wMDMzODgsIDAuMDAzMzkzLCAwLjAwMzQsIDAuMDAzNDAxLCAwLjAwMzQwMiwgMC4wMDM0MDMsIDAuMDAzNDAzIiwgXAotICAgICAgICAgICIwLjAwMzM4MywgMC4wMDMzODgsIDAuMDAzMzk2LCAwLjAwMzM5NywgMC4wMDMzOTgsIDAuMDAzMzk4LCAwLjAwMzM5OSIsIFwKLSAgICAgICAgICAiMC4wMDMzODIsIDAuMDAzMzg3LCAwLjAwMzM5NCwgMC4wMDMzOTYsIDAuMDAzMzk2LCAwLjAwMzM5NywgMC4wMDMzOTciLCBcCi0gICAgICAgICAgIjAuMDAzMzgsIDAuMDAzMzg1LCAwLjAwMzM5MiwgMC4wMDMzOTMsIDAuMDAzMzk0LCAwLjAwMzM5NSwgMC4wMDMzOTUiLCBcCi0gICAgICAgICAgIjAuMDAzMzgyLCAwLjAwMzM4NywgMC4wMDMzOTQsIDAuMDAzMzk1LCAwLjAwMzM5NiwgMC4wMDMzOTcsIDAuMDAzMzk3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUk4iOwotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzYwNywgMC4wMDM2MTEsIDAuMDAzNjE2LCAwLjAwMzYxOCwgMC4wMDM2MTgsIDAuMDAzNjE5LCAwLjAwMzYxOSIsIFwKLSAgICAgICAgICAiMC4wMDM1OTksIDAuMDAzNjA0LCAwLjAwMzYxLCAwLjAwMzYxMSwgMC4wMDM2MTIsIDAuMDAzNjEyLCAwLjAwMzYxMiIsIFwKLSAgICAgICAgICAiMC4wMDM1OTMsIDAuMDAzNTk4LCAwLjAwMzYwNCwgMC4wMDM2MDYsIDAuMDAzNjA2LCAwLjAwMzYwNywgMC4wMDM2MDciLCBcCi0gICAgICAgICAgIjAuMDAzNTg3LCAwLjAwMzU5MiwgMC4wMDM2LCAwLjAwMzYwMSwgMC4wMDM2MDIsIDAuMDAzNjAyLCAwLjAwMzYwMyIsIFwKLSAgICAgICAgICAiMC4wMDM1ODEsIDAuMDAzNTg3LCAwLjAwMzU5NSwgMC4wMDM1OTYsIDAuMDAzNTk3LCAwLjAwMzU5OCwgMC4wMDM1OTkiLCBcCi0gICAgICAgICAgIjAuMDAzNTczLCAwLjAwMzU3OSwgMC4wMDM1ODgsIDAuMDAzNTksIDAuMDAzNTkyLCAwLjAwMzU5MywgMC4wMDM1OTMiLCBcCi0gICAgICAgICAgIjAuMDAzNTY3LCAwLjAwMzU3NCwgMC4wMDM1ODQsIDAuMDAzNTg2LCAwLjAwMzU4NywgMC4wMDM1ODgsIDAuMDAzNTg5Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3Bvd2VyKHNjYWxhcikgewotICAgICAgICB2YWx1ZXMoIjAiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFFOKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMTM0Nzk1OwotICAgIGZ1bmN0aW9uIDogIlFCSU5UIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBub25fdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJpc2luZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zNTk1ODcsIDAuNDAyNjk1LCAwLjY0NzE2LCAwLjg2MjkyNywgMS4xNTA1OCwgMS43MjU3OSwgMi4wODU0MiIsIFwKLSAgICAgICAgICAiMC4zNzE0MzksIDAuNDE0NTQ3LCAwLjY1ODk4MywgMC44NzQ4MjQsIDEuMTYyMTcsIDEuNzM3NjcsIDIuMDk3MzUiLCBcCi0gICAgICAgICAgIjAuMzg2NzA3LCAwLjQyOTgxMiwgMC42NzQyNTEsIDAuODg5ODQ2LCAxLjE3NzcsIDEuNzUyOTMsIDIuMTEyNTgiLCBcCi0gICAgICAgICAgIjAuNDAyMTMsIDAuNDQ1MjQsIDAuNjg5NzU1LCAwLjkwNTQ4NiwgMS4xOTMxMywgMS43Njg0MSwgMi4xMjc5NyIsIFwKLSAgICAgICAgICAiMC40MTc2MjgsIDAuNDYwNzE4LCAwLjcwNTIzNCwgMC45MjA5NjUsIDEuMjA4NiwgMS43ODQwOCwgMi4xNDM0NCIsIFwKLSAgICAgICAgICAiMC40NDE5NzksIDAuNDg1MDg3LCAwLjcyOTUyNCwgMC45NDUzNTksIDEuMjMyOTcsIDEuODA4MjEsIDIuMTY3ODciLCBcCi0gICAgICAgICAgIjAuNDYzMDI1LCAwLjUwNjEzNCwgMC43NTA1ODYsIDAuOTY2Mzg0LCAxLjI1NDAzLCAxLjgyOTUsIDIuMTg4ODUiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTU5MjUzLCAwLjI0NzAwMSwgMC43NDMyNTcsIDEuMTgxOTIsIDEuNzY1MzYsIDIuOTQwOTIsIDMuNjczNDkiLCBcCi0gICAgICAgICAgIjAuMTU5MjU3LCAwLjI0NzAwMiwgMC43NDQ1ODEsIDEuMTgwNzgsIDEuNzY2MiwgMi45NDEwNywgMy42NzM4NyIsIFwKLSAgICAgICAgICAiMC4xNTk2NTEsIDAuMjQ2MzczLCAwLjc0NDU4OCwgMS4xODE3NiwgMS43Njk5NiwgMi45NDEwNSwgMy42NzM2MyIsIFwKLSAgICAgICAgICAiMC4xNTkzODgsIDAuMjQ3LCAwLjc0MjQxMiwgMS4xODIyMSwgMS43NjUzMiwgMi45NDEyOSwgMy42NzM0MyIsIFwKLSAgICAgICAgICAiMC4xNTk2NTgsIDAuMjQ2NTE0LCAwLjc0NDYwOSwgMS4xODIxMSwgMS43NjY2NCwgMi45NDI1NCwgMy42NzMzOCIsIFwKLSAgICAgICAgICAiMC4xNTkyNjIsIDAuMjQ3MDAzLCAwLjc0NDU4MywgMS4xODM4MiwgMS43Njk5NCwgMi45NDEwNywgMy42NzM3NyIsIFwKLSAgICAgICAgICAiMC4xNTk0MDEsIDAuMjQ3LCAwLjc0NDY1MSwgMS4xODEwMywgMS43NjU0MywgMi45NDIzOCwgMy42NzM0MSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC40MDUyNjUsIDAuNDU0NTQ2LCAwLjczNDE3NCwgMC45ODEsIDEuMzEwMzMsIDEuOTY4MzQsIDIuMzc5NzkiLCBcCi0gICAgICAgICAgIjAuNDE3MzA3LCAwLjQ2NjU3MSwgMC43NDYyMTksIDAuOTkzMDE5LCAxLjMyMjI4LCAxLjk4MDQxLCAyLjM5MTc5IiwgXAotICAgICAgICAgICIwLjQzMjQwMSwgMC40ODE2NjcsIDAuNzYxMjYzLCAxLjAwODEyLCAxLjMzNzM2LCAxLjk5NTUsIDIuNDA2ODUiLCBcCi0gICAgICAgICAgIjAuNDQ3OTcyLCAwLjQ5NzI1NSwgMC43NzY4NTEsIDEuMDIzNjksIDEuMzUzMDYsIDIuMDExMDYsIDIuNDIyNDMiLCBcCi0gICAgICAgICAgIjAuNDYzMzgzLCAwLjUxMjY1OSwgMC43OTIyNDQsIDEuMDM5MDksIDEuMzY4MzQsIDIuMDI2NSwgMi40Mzc4NCIsIFwKLSAgICAgICAgICAiMC40ODc2MywgMC41MzY5MDksIDAuODE2NTA2LCAxLjA2MzM2LCAxLjM5MjYyLCAyLjA1MDc5LCAyLjQ2MjM4IiwgXAotICAgICAgICAgICIwLjUwODUwNywgMC41NTc3ODQsIDAuODM3MzczLCAxLjA4NDIyLCAxLjQxMzQ5LCAyLjA3MTU1LCAyLjQ4Mjk2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE3NzczOSwgMC4yNzQ3NjgsIDAuODMwMjM1LCAxLjMxOTg1LCAxLjk3MjQ1LCAzLjI4MTI4LCA0LjA5ODQyIiwgXAotICAgICAgICAgICIwLjE3NzczMywgMC4yNzQ5OTUsIDAuODMwMjI2LCAxLjMyMDM5LCAxLjk3MjY5LCAzLjI4MTE4LCA0LjA5ODI4IiwgXAotICAgICAgICAgICIwLjE3NzcxNywgMC4yNzQ4OTIsIDAuODI5ODE1LCAxLjMyMDQxLCAxLjk3MjY4LCAzLjI4MTA4LCA0LjA5ODAxIiwgXAotICAgICAgICAgICIwLjE3NzcxMywgMC4yNzQ5NTQsIDAuODI5MzEsIDEuMzIwNDIsIDEuOTcyMzcsIDMuMjc5MjgsIDQuMDk4MDUiLCBcCi0gICAgICAgICAgIjAuMTc3NzM3LCAwLjI3NDg3LCAwLjgyOTkyLCAxLjMyMDM5LCAxLjk3NDQ0LCAzLjI4MTMxLCA0LjA5ODIzIiwgXAotICAgICAgICAgICIwLjE3NzczMywgMC4yNzQ5NTMsIDAuODI5ODY1LCAxLjMyMDQzLCAxLjk3MjAzLCAzLjI3ODUyLCA0LjA5NDE1IiwgXAotICAgICAgICAgICIwLjE3NzcxNywgMC4yNzQ5NTIsIDAuODI5NjM1LCAxLjMyMDM3LCAxLjk3MjQ5LCAzLjI4MDk1LCA0LjA5ODAzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiBwcmVzZXQ7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE4NTc2MiwgMC4yMjg4NDYsIDAuNDczMjUxLCAwLjY4ODk5MywgMC45NzY2NDIsIDEuNTUyMDgsIDEuOTExNjEiLCBcCi0gICAgICAgICAgIjAuMTk3MjYxLCAwLjI0MDMzMywgMC40ODQ3MjgsIDAuNzAwNDgsIDAuOTg4MTE5LCAxLjU2MzU1LCAxLjkyMzA3IiwgXAotICAgICAgICAgICIwLjIxMjA1NSwgMC4yNTUxMzYsIDAuNDk5NTQyLCAwLjcxNTI4NCwgMS4wMDI5NCwgMS41NzgzOCwgMS45Mzc5IiwgXAotICAgICAgICAgICIwLjIyNjg2NywgMC4yNjk5NDgsIDAuNTE0MzU0LCAwLjczMDA5NiwgMS4wMTc3NSwgMS41OTMxOSwgMS45NTI3MSIsIFwKLSAgICAgICAgICAiMC4yNDE2NiwgMC4yODQ3MzgsIDAuNTI5MTUsIDAuNzQ0ODkyLCAxLjAzMjUsIDEuNjA3NzksIDEuOTY3MzQiLCBcCi0gICAgICAgICAgIjAuMjY0OTI4LCAwLjMwODAxMiwgMC41NTI0MTcsIDAuNzY4MTYsIDEuMDU1ODIsIDEuNjMxMjYsIDEuOTkwNzgiLCBcCi0gICAgICAgICAgIjAuMjg0ODA0LCAwLjMyNzg3NiwgMC41NzIyNzYsIDAuNzg4MDY4LCAxLjA3NTc0LCAxLjY1MDk3LCAyLjAxMDUyIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE1OTE5OCwgMC4yNDYwNzQsIDAuNzQzNjI2LCAxLjE4MjU3LCAxLjc2NjYyLCAyLjkzNjE5LCAzLjY3MTkxIiwgXAotICAgICAgICAgICIwLjE1OTE4MiwgMC4yNDYwNjUsIDAuNzQzNjI2LCAxLjE4MjU3LCAxLjc2NjgxLCAyLjkzOTU0LCAzLjY3MTk1IiwgXAotICAgICAgICAgICIwLjE1OTE5NiwgMC4yNDYwNjksIDAuNzQzNjI4LCAxLjE4MjU4LCAxLjc2ODI3LCAyLjkzOTg0LCAzLjY3MTg5IiwgXAotICAgICAgICAgICIwLjE1OTE5NSwgMC4yNDYwNzIsIDAuNzQzNjA0LCAxLjE4MjU4LCAxLjc2ODAxLCAyLjk0MDUxLCAzLjY3MTg5IiwgXAotICAgICAgICAgICIwLjE1OTE4NywgMC4yNDYwNywgMC43NDM2MjksIDEuMTgyNTgsIDEuNzY4NzQsIDIuOTQwNDQsIDMuNjcyMjgiLCBcCi0gICAgICAgICAgIjAuMTU5MiwgMC4yNDYwNzUsIDAuNzQzNjMxLCAxLjE4MjYsIDEuNzY4MDgsIDIuOTQwMzUsIDMuNjcyMTMiLCBcCi0gICAgICAgICAgIjAuMTU5MTk0LCAwLjI0NjA1OSwgMC43NDM2MjksIDEuMTgxNjIsIDEuNzY4MzYsIDIuOTM5MjMsIDMuNjcyNDciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzNCwgMC4wMDM0MDUsIDAuMDAzNDEyLCAwLjAwMzQxMywgMC4wMDM0MTQsIDAuMDAzNDE1LCAwLjAwMzQxNSIsIFwKLSAgICAgICAgICAiMC4wMDMzOTMsIDAuMDAzMzk5LCAwLjAwMzQwNiwgMC4wMDM0MDcsIDAuMDAzNDA4LCAwLjAwMzQwOSwgMC4wMDM0MDkiLCBcCi0gICAgICAgICAgIjAuMDAzMzg4LCAwLjAwMzM5MywgMC4wMDM0LCAwLjAwMzQwMSwgMC4wMDM0MDIsIDAuMDAzNDAzLCAwLjAwMzQwMyIsIFwKLSAgICAgICAgICAiMC4wMDMzODMsIDAuMDAzMzg4LCAwLjAwMzM5NiwgMC4wMDMzOTcsIDAuMDAzMzk4LCAwLjAwMzM5OCwgMC4wMDMzOTkiLCBcCi0gICAgICAgICAgIjAuMDAzMzgyLCAwLjAwMzM4NywgMC4wMDMzOTQsIDAuMDAzMzk2LCAwLjAwMzM5NiwgMC4wMDMzOTcsIDAuMDAzMzk3IiwgXAotICAgICAgICAgICIwLjAwMzM4LCAwLjAwMzM4NSwgMC4wMDMzOTIsIDAuMDAzMzkzLCAwLjAwMzM5NCwgMC4wMDMzOTUsIDAuMDAzMzk1IiwgXAotICAgICAgICAgICIwLjAwMzM4MiwgMC4wMDMzODcsIDAuMDAzMzk0LCAwLjAwMzM5NSwgMC4wMDMzOTYsIDAuMDAzMzk3LCAwLjAwMzM5NyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzQ1OSwgMC4wMDM0NjMsIDAuMDAzNDYsIDAuMDAzNDU3LCAwLjAwMzQ1NSwgMC4wMDM0NTIsIDAuMDAzNDUyIiwgXAotICAgICAgICAgICIwLjAwMzQ1NCwgMC4wMDM0NTgsIDAuMDAzNDU1LCAwLjAwMzQ1MiwgMC4wMDM0NSwgMC4wMDM0NDcsIDAuMDAzNDQ2IiwgXAotICAgICAgICAgICIwLjAwMzQ0OCwgMC4wMDM0NTIsIDAuMDAzNDQ5LCAwLjAwMzQ0NiwgMC4wMDM0NDQsIDAuMDAzNDQxLCAwLjAwMzQ0IiwgXAotICAgICAgICAgICIwLjAwMzQ0MywgMC4wMDM0NDcsIDAuMDAzNDQ1LCAwLjAwMzQ0MiwgMC4wMDM0MzksIDAuMDAzNDM3LCAwLjAwMzQzNiIsIFwKLSAgICAgICAgICAiMC4wMDM0NCwgMC4wMDM0NDQsIDAuMDAzNDQyLCAwLjAwMzQzOSwgMC4wMDM0MzYsIDAuMDAzNDM0LCAwLjAwMzQzMyIsIFwKLSAgICAgICAgICAiMC4wMDM0MzUsIDAuMDAzNDM5LCAwLjAwMzQzNywgMC4wMDM0MzQsIDAuMDAzNDMxLCAwLjAwMzQyOCwgMC4wMDM0MjgiLCBcCi0gICAgICAgICAgIjAuMDAzNDM0LCAwLjAwMzQzOCwgMC4wMDM0MzYsIDAuMDAzNDMzLCAwLjAwMzQzMSwgMC4wMDM0MjgsIDAuMDAzNDI3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUk4iOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzYwNywgMC4wMDM2MTEsIDAuMDAzNjE2LCAwLjAwMzYxOCwgMC4wMDM2MTgsIDAuMDAzNjE5LCAwLjAwMzYxOSIsIFwKLSAgICAgICAgICAiMC4wMDM1OTksIDAuMDAzNjA0LCAwLjAwMzYxLCAwLjAwMzYxMSwgMC4wMDM2MTIsIDAuMDAzNjEyLCAwLjAwMzYxMiIsIFwKLSAgICAgICAgICAiMC4wMDM1OTMsIDAuMDAzNTk4LCAwLjAwMzYwNCwgMC4wMDM2MDYsIDAuMDAzNjA2LCAwLjAwMzYwNywgMC4wMDM2MDciLCBcCi0gICAgICAgICAgIjAuMDAzNTg3LCAwLjAwMzU5MiwgMC4wMDM2LCAwLjAwMzYwMSwgMC4wMDM2MDIsIDAuMDAzNjAyLCAwLjAwMzYwMyIsIFwKLSAgICAgICAgICAiMC4wMDM1ODEsIDAuMDAzNTg3LCAwLjAwMzU5NSwgMC4wMDM1OTYsIDAuMDAzNTk3LCAwLjAwMzU5OCwgMC4wMDM1OTkiLCBcCi0gICAgICAgICAgIjAuMDAzNTczLCAwLjAwMzU3OSwgMC4wMDM1ODgsIDAuMDAzNTksIDAuMDAzNTkyLCAwLjAwMzU5MywgMC4wMDM1OTMiLCBcCi0gICAgICAgICAgIjAuMDAzNTY3LCAwLjAwMzU3NCwgMC4wMDM1ODQsIDAuMDAzNTg2LCAwLjAwMzU4NywgMC4wMDM1ODgsIDAuMDAzNTg5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHNjYWxhcikgewotICAgICAgICB2YWx1ZXMoIjAiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFJOKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE0NTk4ODsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDEzODI1ODsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE0NTk4ODsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAzMzEsIDAuMDAwMzMsIDAuMDAwMzMsIDAuMDAwMzMsIDAuMDAwMzMsIDAuMDAwMzMsIDAuMDAwMzMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAzMzMsIDAuMDAwMzMyLCAwLjAwMDMzMiwgMC4wMDAzMzIsIDAuMDAwMzMyLCAwLjAwMDMzMiwgMC4wMDAzMzIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUk4iOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFEJiFTRSYhU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1NFX0VRXzBfQU5fU0lfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjE4NTc2MiwgMC4xOTcyMDUsIDAuMjEyMDU0LCAwLjIyNjg2NiwgMC4yNDE2NiwgMC4yNjQ5MjgsIDAuMjg0ODA0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogcmVjb3ZlcnlfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRCZTRSZTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fU0VfRVFfMV9BTl9TSV9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHJlY292ZXJ5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wNzUsIC0wLjA4NjI1LCAtMC4wOTg3NSwgLTAuMTE3NSwgLTAuMTMsIC0wLjE1ODc1LCAtMC4xOCIsIFwKLSAgICAgICAgICAiLTAuMDgyNSwgLTAuMDkzNzUsIC0wLjEwNjI1LCAtMC4xMjUsIC0wLjE0Mzc1LCAtMC4xNjYyNSwgLTAuMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDg4NzUsIC0wLjEsIC0wLjExODc1LCAtMC4xMzEyNSwgLTAuMTUsIC0wLjE3MjUsIC0wLjE5Mzc1IiwgXAotICAgICAgICAgICItMC4wODg3NSwgLTAuMTA2MjUsIC0wLjExODc1LCAtMC4xMzc1LCAtMC4xNSwgLTAuMTc4NzUsIC0wLjIiLCBcCi0gICAgICAgICAgIi0wLjA4ODc1LCAtMC4xLCAtMC4xMTg3NSwgLTAuMTMxMjUsIC0wLjE1LCAtMC4xNzI1LCAtMC4xOTM3NSIsIFwKLSAgICAgICAgICAiLTAuMDcyNSwgLTAuMDgzNzUsIC0wLjEwMjUsIC0wLjExNSwgLTAuMTMzNzUsIC0wLjE1NjI1LCAtMC4xNzc1IiwgXAotICAgICAgICAgICItMC4wNTEyNSwgLTAuMDYyNSwgLTAuMDgxMjUsIC0wLjA5Mzc1LCAtMC4xMTI1LCAtMC4xNDEyNSwgLTAuMTYyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJlbW92YWxfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRCZTRSZTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fU0VfRVFfMV9BTl9TSV9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHJlbW92YWxfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTEyNSwgMC4xMywgMC4xNDI1LCAwLjE1NSwgMC4xNzM3NSwgMC4xOTYyNSwgMC4yMTc1IiwgXAotICAgICAgICAgICIwLjEyLCAwLjEzNzUsIDAuMTUsIDAuMTYyNSwgMC4xODEyNSwgMC4yMDM3NSwgMC4yMjUiLCBcCi0gICAgICAgICAgIjAuMTMyNSwgMC4xNDM3NSwgMC4xNjI1LCAwLjE3NSwgMC4xOTM3NSwgMC4yMTYyNSwgMC4yMzc1IiwgXAotICAgICAgICAgICIwLjE0NSwgMC4xNTYyNSwgMC4xNjg3NSwgMC4xODc1LCAwLjIsIDAuMjI4NzUsIDAuMjQzNzUiLCBcCi0gICAgICAgICAgIjAuMTUxMjUsIDAuMTY4NzUsIDAuMTgxMjUsIDAuMTkzNzUsIDAuMjEyNSwgMC4yMzUsIDAuMjU2MjUiLCBcCi0gICAgICAgICAgIjAuMTcyNSwgMC4xODM3NSwgMC4xOTYyNSwgMC4yMDg3NSwgMC4yMjc1LCAwLjI1LCAwLjI3MTI1IiwgXAotICAgICAgICAgICIwLjE4MjUsIDAuMTkzNzUsIDAuMjA2MjUsIDAuMjI1LCAwLjIzNzUsIDAuMjYsIDAuMjgxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFNFKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDEyODc3NjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDEyODcyMzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDEyODc3NjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDM1MTEsIDAuMDAzNTAxLCAwLjAwMzQ5NCwgMC4wMDM0OTEsIDAuMDAzNDksIDAuMDAzNDg3LCAwLjAwMzQ4NyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNDU3NSwgMC4wMDQ1NTgsIDAuMDA0NTQ1LCAwLjAwNDUzOCwgMC4wMDQ1MzMsIDAuMDA0NTI3LCAwLjAwNDUyNiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJSTiI7Ci0gICAgICBzZGZfY29uZCA6ICJSTiA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMzc1LCAtMC4wMjYyNSwgLTAuMDA3NSwgMC4wMDUsIDAuMDE3NSwgMC4wNCwgMC4wNjEyNSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjAzNzUsIC0wLjAxODc1LCAtMC4wMDYyNSwgMC4wMDYyNSwgMC4wMjg3NSwgMC4wNSIsIFwKLSAgICAgICAgICAiLTAuMDYxMjUsIC0wLjA1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAwNjI1LCAwLjAxNjI1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wOCwgLTAuMDY4NzUsIC0wLjA1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAwMjUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjA5MjUsIC0wLjA4MTI1LCAtMC4wNjg3NSwgLTAuMDUsIC0wLjAzNzUsIC0wLjAxNSwgMCIsIFwKLSAgICAgICAgICAiLTAuMTE1LCAtMC4xMDM3NSwgLTAuMDg1LCAtMC4wNzI1LCAtMC4wNiwgLTAuMDM3NSwgLTAuMDE2MjUiLCBcCi0gICAgICAgICAgIi0wLjEzLCAtMC4xMTg3NSwgLTAuMTA2MjUsIC0wLjA4NzUsIC0wLjA3NSwgLTAuMDUyNSwgLTAuMDM3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAsIDAuMDExMjUsIDAuMDIzNzUsIDAuMDM2MjUsIDAuMDQ4NzUsIDAuMDcxMjUsIDAuMDkyNSIsIFwKLSAgICAgICAgICAiLTAuMDExMjUsIDAsIDAuMDEyNSwgMC4wMjUsIDAuMDQzNzUsIDAuMDY2MjUsIDAuMDgxMjUiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTI1LCAwLCAwLjAxMjUsIDAuMDMxMjUsIDAuMDUzNzUsIDAuMDY4NzUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMjUsIC0wLjAxMjUsIDAsIDAuMDE4NzUsIDAuMDQxMjUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAxMjUsIDAuMDA2MjUsIDAuMDI4NzUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIi0wLjA2NSwgLTAuMDUzNzUsIC0wLjA0MTI1LCAtMC4wMjg3NSwgLTAuMDE2MjUsIDAuMDA2MjUsIDAuMDI3NSIsIFwKLSAgICAgICAgICAiLTAuMDgsIC0wLjA2ODc1LCAtMC4wNTYyNSwgLTAuMDQzNzUsIC0wLjAzMTI1LCAtMC4wMDg3NSwgMC4wMTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJSTiI7Ci0gICAgICBzZGZfY29uZCA6ICJSTiA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMDYyNSwgMC4xOTUsIDAuMTc2MjUsIDAuMTYzNzUsIDAuMTUxMjUsIDAuMTM1LCAwLjEyIiwgXAotICAgICAgICAgICIwLjIxNzUsIDAuMjA2MjUsIDAuMTg3NSwgMC4xNzUsIDAuMTYyNSwgMC4xNDYyNSwgMC4xMzEyNSIsIFwKLSAgICAgICAgICAiMC4yMywgMC4yMTg3NSwgMC4yLCAwLjE4NzUsIDAuMTc1LCAwLjE1ODc1LCAwLjE0Mzc1IiwgXAotICAgICAgICAgICIwLjI0MjUsIDAuMjMxMjUsIDAuMjE4NzUsIDAuMiwgMC4xODc1LCAwLjE3MTI1LCAwLjE1NjI1IiwgXAotICAgICAgICAgICIwLjI1NSwgMC4yNDM3NSwgMC4yMzEyNSwgMC4yMTI1LCAwLjIsIDAuMTgzNzUsIDAuMTY4NzUiLCBcCi0gICAgICAgICAgIjAuMjc3NSwgMC4yNjYyNSwgMC4yNTM3NSwgMC4yMzUsIDAuMjIyNSwgMC4yMDYyNSwgMC4xOTEyNSIsIFwKLSAgICAgICAgICAiMC4yOTg3NSwgMC4yODc1LCAwLjI2ODc1LCAwLjI1NjI1LCAwLjI0Mzc1LCAwLjIyNzUsIDAuMjEyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIzNzUsIDAuMjI2MjUsIDAuMjEzNzUsIDAuMTk1LCAwLjE4MjUsIDAuMTY2MjUsIDAuMTUxMjUiLCBcCi0gICAgICAgICAgIjAuMjQ4NzUsIDAuMjM3NSwgMC4yMjUsIDAuMjA2MjUsIDAuMTkzNzUsIDAuMTc3NSwgMC4xNjI1IiwgXAotICAgICAgICAgICIwLjI2NzUsIDAuMjU2MjUsIDAuMjM3NSwgMC4yMjUsIDAuMjEyNSwgMC4xOSwgMC4xODEyNSIsIFwKLSAgICAgICAgICAiMC4yOCwgMC4yNjg3NSwgMC4yNSwgMC4yMzc1LCAwLjIyNSwgMC4yMDg3NSwgMC4xOTM3NSIsIFwKLSAgICAgICAgICAiMC4yOTI1LCAwLjI4MTI1LCAwLjI2MjUsIDAuMjUsIDAuMjM3NSwgMC4yMjEyNSwgMC4yMDYyNSIsIFwKLSAgICAgICAgICAiMC4zMDg3NSwgMC4yOTc1LCAwLjI4NSwgMC4yNjYyNSwgMC4yNTM3NSwgMC4yMzc1LCAwLjIyMjUiLCBcCi0gICAgICAgICAgIjAuMzIzNzUsIDAuMzEyNSwgMC4zLCAwLjI4MTI1LCAwLjI2ODc1LCAwLjI1MjUsIDAuMjM3NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oU0kpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYyNDc0NjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MjMwMjg7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjI0NzQ2OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjI2MiwgMC4wMDIyNTIsIDAuMDAyMjQ3LCAwLjAwMjI0NCwgMC4wMDIyNDEsIDAuMDAyMjM4LCAwLjAwMjIzNiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzY5NSwgMC4wMDM2OSwgMC4wMDM2ODcsIDAuMDAzNjg1LCAwLjAwMzY4NCwgMC4wMDM2ODIsIDAuMDAzNjgyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlJOJlNFIjsKLSAgICAgIHNkZl9jb25kIDogIlJOX0VRXzFfQU5fU0VfRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4xMzEyNSwgLTAuMTI2MjUsIC0wLjExMzc1LCAtMC4xMDEyNSwgLTAuMDg4NzUsIC0wLjA3MjUsIC0wLjA2Mzc1IiwgXAotICAgICAgICAgICItMC4xNDI1LCAtMC4xMzc1LCAtMC4xMjUsIC0wLjExMjUsIC0wLjEsIC0wLjA4Mzc1LCAtMC4wNzUiLCBcCi0gICAgICAgICAgIi0wLjE2MTI1LCAtMC4xNSwgLTAuMTM3NSwgLTAuMTI1LCAtMC4xMTg3NSwgLTAuMTAyNSwgLTAuMDg3NSIsIFwKLSAgICAgICAgICAiLTAuMTczNzUsIC0wLjE2MjUsIC0wLjE1LCAtMC4xMzc1LCAtMC4xMzEyNSwgLTAuMTE1LCAtMC4xIiwgXAotICAgICAgICAgICItMC4xODYyNSwgLTAuMTc1LCAtMC4xNjI1LCAtMC4xNTYyNSwgLTAuMTQzNzUsIC0wLjEyNzUsIC0wLjExMjUiLCBcCi0gICAgICAgICAgIi0wLjIwODc1LCAtMC4xOTc1LCAtMC4xODUsIC0wLjE3MjUsIC0wLjE2NjI1LCAtMC4xNSwgLTAuMTM1IiwgXAotICAgICAgICAgICItMC4yMywgLTAuMjE4NzUsIC0wLjIwNjI1LCAtMC4xOTM3NSwgLTAuMTgxMjUsIC0wLjE3MTI1LCAtMC4xNTYyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAxMjUsIC0wLjAwMTI1LCAwLjAxMTI1LCAwLjAyMzc1LCAwLjAzNjI1LCAwLjA1ODc1LCAwLjA4IiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDEyNSwgMCwgMC4wMTI1LCAwLjAyNSwgMC4wNDc1LCAwLjA2ODc1IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMjUsIC0wLjAxMjUsIDAsIDAuMDEyNSwgMC4wMzUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAxMjUsIDAsIDAuMDIyNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDYxMjUsIC0wLjA1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAxMjUsIDAuMDEsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjA4Mzc1LCAtMC4wNjYyNSwgLTAuMDUzNzUsIC0wLjA0MTI1LCAtMC4wMjg3NSwgLTAuMDA2MjUsIDAuMDE1IiwgXAotICAgICAgICAgICItMC4wOTI1LCAtMC4wODc1LCAtMC4wNjg3NSwgLTAuMDU2MjUsIC0wLjA0Mzc1LCAtMC4wMjEyNSwgMCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiUk4mU0UiOwotICAgICAgc2RmX2NvbmQgOiAiUk5fRVFfMV9BTl9TRV9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIxODc1LCAwLjIwNzUsIDAuMTg4NzUsIDAuMTc2MjUsIDAuMTYzNzUsIDAuMTQ3NSwgMC4xMzI1IiwgXAotICAgICAgICAgICIwLjIzLCAwLjIxODc1LCAwLjIsIDAuMTg3NSwgMC4xNzUsIDAuMTU4NzUsIDAuMTQzNzUiLCBcCi0gICAgICAgICAgIjAuMjQyNSwgMC4yMzEyNSwgMC4yMTg3NSwgMC4yLCAwLjE4NzUsIDAuMTcxMjUsIDAuMTU2MjUiLCBcCi0gICAgICAgICAgIjAuMjYxMjUsIDAuMjQzNzUsIDAuMjMxMjUsIDAuMjE4NzUsIDAuMjA2MjUsIDAuMTgzNzUsIDAuMTc1IiwgXAotICAgICAgICAgICIwLjI3Mzc1LCAwLjI2MjUsIDAuMjQzNzUsIDAuMjMxMjUsIDAuMjE4NzUsIDAuMTk2MjUsIDAuMTg3NSIsIFwKLSAgICAgICAgICAiMC4yOTYyNSwgMC4yODUsIDAuMjY2MjUsIDAuMjUzNzUsIDAuMjQxMjUsIDAuMjE4NzUsIDAuMjEiLCBcCi0gICAgICAgICAgIjAuMzExMjUsIDAuMywgMC4yODc1LCAwLjI2ODc1LCAwLjI1NjI1LCAwLjI0LCAwLjIyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEzMTI1LCAwLjEyLCAwLjEwMTI1LCAwLjA4ODc1LCAwLjA3LCAwLjA0NzUsIDAuMDI2MjUiLCBcCi0gICAgICAgICAgIjAuMTQyNSwgMC4xMzEyNSwgMC4xMTI1LCAwLjEsIDAuMDgxMjUsIDAuMDU4NzUsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiMC4xNTUsIDAuMTQzNzUsIDAuMTMxMjUsIDAuMTEyNSwgMC4wOTM3NSwgMC4wNzEyNSwgMC4wNSIsIFwKLSAgICAgICAgICAiMC4xNjc1LCAwLjE1NjI1LCAwLjE0Mzc1LCAwLjEyNSwgMC4xMDYyNSwgMC4wODM3NSwgMC4wNjI1IiwgXAotICAgICAgICAgICIwLjE4LCAwLjE2ODc1LCAwLjE1NjI1LCAwLjEzNzUsIDAuMTE4NzUsIDAuMDk2MjUsIDAuMDc1IiwgXAotICAgICAgICAgICIwLjIwMjUsIDAuMTkxMjUsIDAuMTcyNSwgMC4xNiwgMC4xNDEyNSwgMC4xMTg3NSwgMC4wOTc1IiwgXAotICAgICAgICAgICIwLjIxNzUsIDAuMjA2MjUsIDAuMTg3NSwgMC4xNzUsIDAuMTU2MjUsIDAuMTMzNzUsIDAuMTEyNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IFNERkZSWDIgKgotICogLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoU0RGRlJYMikgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjQwNjc1NDsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBmZiAoTjMwLFFCSU5UKSB7Ci0gICAgbmV4dF9zdGF0ZSA6ICIoKFNFIFNJKSArICghU0UgRCkpIjsKLSAgICBjbG9ja2VkX29uIDogIkNLIjsKLSAgICBjbGVhciA6ICIoIVJOKSI7Ci0gIH0KLSAgcGluKENLKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA1Mjk1Njk7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNTI5MjkxOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDUyOTU2OTsKLSAgICBjbG9jayA6IHRydWU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyMDc0LCAwLjAwMjA2MywgMC4wMDIwNTMsIDAuMDAyMDQ2LCAwLjAwMjA0MSwgMC4wMDIwMzQsIDAuMDAyMDMxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA1NDg4LCAwLjAwNTQ4LCAwLjAwNTQ3MiwgMC4wMDU0NjYsIDAuMDA1NDYzLCAwLjAwNTQ2NiwgMC4wMDU0NjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFEJlJOJiFTRSYhU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1JOX0VRXzFfQU5fU0VfRVFfMF9BTl9TSV9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMzM0NzI5LCAwLjM0NjY0OSwgMC4zNjE4NjcsIDAuMzc3MjczLCAwLjM5Mjc0NCwgMC40MTcwNDQsIDAuNDM4MDg0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4xOTk5NzQsIDAuMjExMjYsIDAuMjI2MzU5LCAwLjI0MTE2OCwgMC4yNTU4OTcsIDAuMjc4OTIzLCAwLjI5ODE4OCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNTU0MTQ3OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDU1MjE4ODsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA1NTQxNDc7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyMzY0LCAwLjAwMjM1NCwgMC4wMDIzNDgsIDAuMDAyMzQ1LCAwLjAwMjM0MiwgMC4wMDIzMzksIDAuMDAyMzM3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzNDY0LCAwLjAwMzQ1OSwgMC4wMDM0NTcsIDAuMDAzNDU1LCAwLjAwMzQ1NCwgMC4wMDM0NTIsIDAuMDAzNDUxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlJOJiFTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJSTl9FUV8xX0FOX1NFX0VRXzAgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMTI1LCAtMC4xMiwgLTAuMTA3NSwgLTAuMDk1LCAtMC4wODg3NSwgLTAuMDcyNSwgLTAuMDU3NSIsIFwKLSAgICAgICAgICAiLTAuMTM2MjUsIC0wLjEzMTI1LCAtMC4xMTg3NSwgLTAuMTA2MjUsIC0wLjEsIC0wLjA4Mzc1LCAtMC4wNjg3NSIsIFwKLSAgICAgICAgICAiLTAuMTU1LCAtMC4xNDM3NSwgLTAuMTMxMjUsIC0wLjExODc1LCAtMC4xMTI1LCAtMC4wOTYyNSwgLTAuMDgxMjUiLCBcCi0gICAgICAgICAgIi0wLjE2NzUsIC0wLjE1NjI1LCAtMC4xNDM3NSwgLTAuMTM3NSwgLTAuMTI1LCAtMC4xMDg3NSwgLTAuMDkzNzUiLCBcCi0gICAgICAgICAgIi0wLjE4LCAtMC4xNjg3NSwgLTAuMTYyNSwgLTAuMTUsIC0wLjEzNzUsIC0wLjEyMTI1LCAtMC4xMTI1IiwgXAotICAgICAgICAgICItMC4yMDI1LCAtMC4xOTEyNSwgLTAuMTg1LCAtMC4xNzI1LCAtMC4xNiwgLTAuMTQzNzUsIC0wLjEzNSIsIFwKLSAgICAgICAgICAiLTAuMjIzNzUsIC0wLjIxMjUsIC0wLjIsIC0wLjE4NzUsIC0wLjE4MTI1LCAtMC4xNjUsIC0wLjE1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDEyNSwgLTAuMDAxMjUsIDAuMDExMjUsIDAuMDIzNzUsIDAuMDQyNSwgMC4wNTg3NSwgMC4wOCIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxMjUsIDAsIDAuMDEyNSwgMC4wMzEyNSwgMC4wNTM3NSwgMC4wNjg3NSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAyNSwgLTAuMDEyNSwgMCwgMC4wMTg3NSwgMC4wMzUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAxMjUsIDAuMDA2MjUsIDAuMDIyNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDYxMjUsIC0wLjA1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAwNjI1LCAwLjAxNjI1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wNzc1LCAtMC4wNjYyNSwgLTAuMDUzNzUsIC0wLjA0MTI1LCAtMC4wMjg3NSwgLTAuMDA2MjUsIDAuMDE1IiwgXAotICAgICAgICAgICItMC4wOTI1LCAtMC4wODEyNSwgLTAuMDY4NzUsIC0wLjA1NjI1LCAtMC4wNDM3NSwgLTAuMDIxMjUsIDAiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlJOJiFTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJSTl9FUV8xX0FOX1NFX0VRXzAgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjE4NzUsIDAuMjA3NSwgMC4xOTUsIDAuMTc2MjUsIDAuMTYzNzUsIDAuMTQ3NSwgMC4xMzI1IiwgXAotICAgICAgICAgICIwLjIzLCAwLjIxODc1LCAwLjIwNjI1LCAwLjE4NzUsIDAuMTc1LCAwLjE1ODc1LCAwLjE0Mzc1IiwgXAotICAgICAgICAgICIwLjI0ODc1LCAwLjIzMTI1LCAwLjIxODc1LCAwLjIsIDAuMTg3NSwgMC4xNzEyNSwgMC4xNTYyNSIsIFwKLSAgICAgICAgICAiMC4yNjEyNSwgMC4yNDM3NSwgMC4yMzEyNSwgMC4yMTg3NSwgMC4yMDYyNSwgMC4xODM3NSwgMC4xNzUiLCBcCi0gICAgICAgICAgIjAuMjczNzUsIDAuMjYyNSwgMC4yNDM3NSwgMC4yMzEyNSwgMC4yMTg3NSwgMC4xOTYyNSwgMC4xODc1IiwgXAotICAgICAgICAgICIwLjI5NjI1LCAwLjI4NSwgMC4yNjYyNSwgMC4yNTM3NSwgMC4yNDEyNSwgMC4yMTg3NSwgMC4yMSIsIFwKLSAgICAgICAgICAiMC4zMTc1LCAwLjMsIDAuMjg3NSwgMC4yNjg3NSwgMC4yNTYyNSwgMC4yNCwgMC4yMjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMzEyNSwgMC4xMiwgMC4xMDEyNSwgMC4wODg3NSwgMC4wNywgMC4wNDc1LCAwLjAyNjI1IiwgXAotICAgICAgICAgICIwLjE0MjUsIDAuMTMxMjUsIDAuMTE4NzUsIDAuMSwgMC4wODEyNSwgMC4wNTg3NSwgMC4wMzc1IiwgXAotICAgICAgICAgICIwLjE1NSwgMC4xNDM3NSwgMC4xMzEyNSwgMC4xMTI1LCAwLjEsIDAuMDcxMjUsIDAuMDUiLCBcCi0gICAgICAgICAgIjAuMTY3NSwgMC4xNTYyNSwgMC4xNDM3NSwgMC4xMjUsIDAuMTEyNSwgMC4wODM3NSwgMC4wNjI1IiwgXAotICAgICAgICAgICIwLjE4LCAwLjE2ODc1LCAwLjE1NjI1LCAwLjEzNzUsIDAuMTI1LCAwLjA5NjI1LCAwLjA3NSIsIFwKLSAgICAgICAgICAiMC4yMDI1LCAwLjE5MTI1LCAwLjE3MjUsIDAuMTYsIDAuMTQxMjUsIDAuMTE4NzUsIDAuMDk3NSIsIFwKLSAgICAgICAgICAiMC4yMTc1LCAwLjIwNjI1LCAwLjE5Mzc1LCAwLjE3NSwgMC4xNTYyNSwgMC4xMzM3NSwgMC4xMTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihRKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMjY0OTI4OwotICAgIGZ1bmN0aW9uIDogIk4zMCI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3NlbnNlIDogbm9uX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiByaXNpbmdfZWRnZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzI0MzIyLCAwLjUxMjMwMSwgMC42NTcyOTcsIDAuODM3ODQ2LCAxLjAxOTU3LCAxLjE5OTQyLCAxLjM3ODY5IiwgXAotICAgICAgICAgICIwLjMzNjMzMiwgMC41MjQ2LCAwLjY2OTIsIDAuODUxNDE4LCAxLjAzMTM0LCAxLjIxMTM3LCAxLjM5MjIxIiwgXAotICAgICAgICAgICIwLjM1MTQwOCwgMC41Mzk1MzgsIDAuNjg0MTg2LCAwLjg2NjUyMSwgMS4wNDY0MywgMS4yMjY0MiwgMS40MDcyOSIsIFwKLSAgICAgICAgICAiMC4zNjY5NjQsIDAuNTU1MjM4LCAwLjY5OTg2MiwgMC44ODIwMiwgMS4wNjE5NywgMS4yNDE5OSwgMS40MjI4MyIsIFwKLSAgICAgICAgICAiMC4zODIyMTMsIDAuNTcwMzA1LCAwLjcxNTQ0MiwgMC44OTc0NjcsIDEuMDc3MTYsIDEuMjU3MDYsIDEuNDM3NzkiLCBcCi0gICAgICAgICAgIjAuNDA2NjE0LCAwLjU5NDY5NCwgMC43MzkyNDcsIDAuOTIxNzIsIDEuMTAxNjYsIDEuMjgxNjEsIDEuNDYzNTkiLCBcCi0gICAgICAgICAgIjAuNDI3NDI1LCAwLjYxNTQzNCwgMC43NjAzNjcsIDAuOTQyNTU1LCAxLjEyMjc1LCAxLjMwMjY3LCAxLjQ4NDg1Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExMTA3OCwgMC40Njg1NTIsIDAuNzU4MTg5LCAxLjEyNjM4LCAxLjUwMDU5LCAxLjg3MzI1LCAyLjIyODc5IiwgXAotICAgICAgICAgICIwLjExMTMyMiwgMC40NjM0NzUsIDAuNzU5MDY3LCAxLjEzMjE5LCAxLjUwMDgzLCAxLjg3MzM2LCAyLjI0NTciLCBcCi0gICAgICAgICAgIjAuMTExMDU0LCAwLjQ2ODIwOSwgMC43NTkwMTcsIDEuMTMyMTQsIDEuNTAwODQsIDEuODczMzgsIDIuMjQ1NCIsIFwKLSAgICAgICAgICAiMC4xMTE4MzMsIDAuNDY0MTA1LCAwLjc1ODkzOCwgMS4xMzE5MiwgMS41MDA2MSwgMS44NzMzOCwgMi4yNDU3MSIsIFwKLSAgICAgICAgICAiMC4xMTE3OTIsIDAuNDY4NDYzLCAwLjc1ODcyMSwgMS4xMzE5OCwgMS41MDA2NiwgMS44NTM1OSwgMi4yNDU1NCIsIFwKLSAgICAgICAgICAiMC4xMTExMjIsIDAuNDY3NDA0LCAwLjc1OTIxNywgMS4xMzIxNSwgMS41MDA4MiwgMS44NzM0MiwgMi4yNDUyMyIsIFwKLSAgICAgICAgICAiMC4xMTE4MzgsIDAuNDY4NTQyLCAwLjc2MzUzNiwgMS4xMzIxNywgMS41MDA4OSwgMS44NzMzMywgMi4yNDU3OCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yODk2NDQsIDAuNDk3NTc0LCAwLjY2MjE2NywgMC44Njg2MzMsIDEuMDc0NTYsIDEuMjgxMiwgMS40ODgxOSIsIFwKLSAgICAgICAgICAiMC4zMDE1NjQsIDAuNTA5NjA5LCAwLjY3NDA5MywgMC44ODE3ODEsIDEuMDg2NDcsIDEuMjk0MTQsIDEuNDk4NzQiLCBcCi0gICAgICAgICAgIjAuMzE2NzA5LCAwLjUyNDY2NiwgMC42ODkyMzgsIDAuODk1NDc1LCAxLjEwMjY2LCAxLjMwNzc5LCAxLjUxODM2IiwgXAotICAgICAgICAgICIwLjMzMjE5MSwgMC41NDAwMDYsIDAuNzA0ODIzLCAwLjkxMTc3NSwgMS4xMTcwNywgMS4zMjQyNiwgMS41MjkyNyIsIFwKLSAgICAgICAgICAiMC4zNDc1ODgsIDAuNTU1NTQsIDAuNzIwMTE4LCAwLjkyNjQ4MiwgMS4xMzI1MiwgMS4zMzg3NSwgMS41NDkyMSIsIFwKLSAgICAgICAgICAiMC4zNzE5NjQsIDAuNTc5OTEsIDAuNzQ0NDkyLCAwLjk1MjE5NSwgMS4xNTY4NywgMS4zNjM0MiwgMS41NjkxNiIsIFwKLSAgICAgICAgICAiMC4zOTI5NywgMC42MDA4NTYsIDAuNzY1NTc2LCAwLjk3MjUzMiwgMS4xNzc4OCwgMS4zODUxOCwgMS41OTAxOSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDE5OTQsIDAuNTA1ODU3LCAwLjgzMjc5OCwgMS4yNDMwNSwgMS42NTI0MywgMi4wNjUwOSwgMi40NzY2NiIsIFwKLSAgICAgICAgICAiMC4xMDI0MTIsIDAuNTA0OTI0LCAwLjgzMjgxMSwgMS4yNDQwNCwgMS42NTcwOCwgMi4wNjY5NywgMi40NzI3NCIsIFwKLSAgICAgICAgICAiMC4xMDIwMDksIDAuNTA1ODg2LCAwLjgzMjgyMiwgMS4yNDMxLCAxLjY1NjM3LCAyLjA2NTkyLCAyLjQ3OTQ4IiwgXAotICAgICAgICAgICIwLjEwMjAwOCwgMC41MDU3MjgsIDAuODMyOTMyLCAxLjI0NDcyLCAxLjY1NzQxLCAyLjA2NDc3LCAyLjQ3NzM1IiwgXAotICAgICAgICAgICIwLjEwMjAwMywgMC41MDU4NjgsIDAuODMyODI0LCAxLjI0Mjg3LCAxLjY1NDkzLCAyLjA2NDU2LCAyLjQ3OTU0IiwgXAotICAgICAgICAgICIwLjEwMjQ1OSwgMC41MDU4NjYsIDAuODMyODE0LCAxLjI0NTcxLCAxLjY1NzA1LCAyLjA2Njk0LCAyLjQ3NzczIiwgXAotICAgICAgICAgICIwLjEwMjAwMSwgMC41MDU4MTQsIDAuODMzNTcyLCAxLjI0NDgyLCAxLjY1MzI3LCAyLjA2NTc4LCAyLjQ3NTY2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiBjbGVhcjsKLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTE4MDg4LCAwLjMyNjI4NCwgMC40OTEwNCwgMC42OTgyNDEsIDAuOTA1MTU0LCAxLjExMjE3LCAxLjMxODgiLCBcCi0gICAgICAgICAgIjAuMTI5NjMyLCAwLjMzNzg3NSwgMC41MDI3MDEsIDAuNzA5NjIyLCAwLjkxNjU3NSwgMS4xMjM2OCwgMS4zMzA0OSIsIFwKLSAgICAgICAgICAiMC4xNDQzMjMsIDAuMzUyNTkzLCAwLjUxNzQ0MSwgMC43MjQ1MTcsIDAuOTMxMzIzLCAxLjEzODQ4LCAxLjM0NTI5IiwgXAotICAgICAgICAgICIwLjE1ODk0NSwgMC4zNjcyNjcsIDAuNTMyMDczLCAwLjczOTE1OCwgMC45NDU3NTksIDEuMTUzMTMsIDEuMzYwMDQiLCBcCi0gICAgICAgICAgIjAuMTczNzYsIDAuMzgyMTExLCAwLjU0Njk1OCwgMC43NTQwNTQsIDAuOTYwODgzLCAxLjE2Nzk5LCAxLjM3MjQ1IiwgXAotICAgICAgICAgICIwLjE5NzA1LCAwLjQwNTM0MiwgMC41NzAyNSwgMC43NzY0NTYsIDAuOTg0MzE3LCAxLjE5MTI4LCAxLjM5Nzk3IiwgXAotICAgICAgICAgICIwLjIxNjQwOCwgMC40MjQ3NywgMC41ODk2NTMsIDAuNzk2ODUsIDEuMDAzNjgsIDEuMjEwNzMsIDEuNDE3NjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTAyNzMzLCAwLjUwNTQ2NywgMC44MzM0MTcsIDEuMjQzNDIsIDEuNjU1ODYsIDIuMDYzODEsIDIuNDc2NDUiLCBcCi0gICAgICAgICAgIjAuMTAyMTk4LCAwLjUwNTQ1LCAwLjgzMzM2OCwgMS4yNDQ0NCwgMS42NTM3NywgMi4wNjQsIDIuNDc1OTkiLCBcCi0gICAgICAgICAgIjAuMTAyMjM2LCAwLjUwNTI4MSwgMC44MzMzNDEsIDEuMjQzOTcsIDEuNjU2NjUsIDIuMDY0MDUsIDIuNDc2MiIsIFwKLSAgICAgICAgICAiMC4xMDI3NzEsIDAuNTA1NDEyLCAwLjgzMzM0NiwgMS4yNDM3OSwgMS42NTM5OSwgMi4wNjM2NSwgMi40Nzk2IiwgXAotICAgICAgICAgICIwLjEwMjczNSwgMC41MDUyLCAwLjgzMzUyOCwgMS4yNDMzMywgMS42NTM0OSwgMi4wNjM3LCAyLjQ3NDk5IiwgXAotICAgICAgICAgICIwLjEwMjYzNiwgMC41MDU1MTYsIDAuODMzMzMyLCAxLjI0Mjk5LCAxLjY1MjY4LCAyLjA2NDQ5LCAyLjQ3MjA4IiwgXAotICAgICAgICAgICIwLjEwMzU3NCwgMC41MDUyMTUsIDAuODMzMzQ5LCAxLjI0MzU0LCAxLjY1NDE4LCAyLjA2NDk5LCAyLjQ3NjE1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDA1NCwgMC4wMDQwOTMsIDAuMDA0MDk0LCAwLjAwNDA5MywgMC4wMDQwOTIsIDAuMDA0MDkxLCAwLjAwNDA5MSIsIFwKLSAgICAgICAgICAiMC4wMDQwNDksIDAuMDA0MDg4LCAwLjAwNDA4OCwgMC4wMDQwODcsIDAuMDA0MDg2LCAwLjAwNDA4NiwgMC4wMDQwODUiLCBcCi0gICAgICAgICAgIjAuMDA0MDQyLCAwLjAwNDA4MiwgMC4wMDQwODIsIDAuMDA0MDgxLCAwLjAwNDA4LCAwLjAwNDA3OSwgMC4wMDQwNzgiLCBcCi0gICAgICAgICAgIjAuMDA0MDM4LCAwLjAwNDA3NywgMC4wMDQwNzgsIDAuMDA0MDc3LCAwLjAwNDA3NywgMC4wMDQwNzUsIDAuMDA0MDc1IiwgXAotICAgICAgICAgICIwLjAwNDAzNSwgMC4wMDQwNzQsIDAuMDA0MDc1LCAwLjAwNDA3NCwgMC4wMDQwNzQsIDAuMDA0MDcyLCAwLjAwNDA3MSIsIFwKLSAgICAgICAgICAiMC4wMDQwMjksIDAuMDA0MDY5LCAwLjAwNDA3LCAwLjAwNDA2OSwgMC4wMDQwNjcsIDAuMDA0MDY3LCAwLjAwNDA2NiIsIFwKLSAgICAgICAgICAiMC4wMDQwMjksIDAuMDA0MDY5LCAwLjAwNDA3LCAwLjAwNDA2OCwgMC4wMDQwNjcsIDAuMDA0MDY3LCAwLjAwNDA2NiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDIyMiwgMC4wMDQyNjEsIDAuMDA0MjY1LCAwLjAwNDI2NywgMC4wMDQyNjgsIDAuMDA0MjY5LCAwLjAwNDI3IiwgXAotICAgICAgICAgICIwLjAwNDIxNSwgMC4wMDQyNTQsIDAuMDA0MjU4LCAwLjAwNDI2LCAwLjAwNDI2MSwgMC4wMDQyNjIsIDAuMDA0MjYyIiwgXAotICAgICAgICAgICIwLjAwNDIxLCAwLjAwNDI0OCwgMC4wMDQyNTMsIDAuMDA0MjU1LCAwLjAwNDI1NywgMC4wMDQyNTcsIDAuMDA0MjU4IiwgXAotICAgICAgICAgICIwLjAwNDIwNiwgMC4wMDQyNDUsIDAuMDA0MjQ5LCAwLjAwNDI1MSwgMC4wMDQyNTIsIDAuMDA0MjUzLCAwLjAwNDI1NCIsIFwKLSAgICAgICAgICAiMC4wMDQyMDQsIDAuMDA0MjQzLCAwLjAwNDI0OCwgMC4wMDQyNSwgMC4wMDQyNTEsIDAuMDA0MjUxLCAwLjAwNDI1MiIsIFwKLSAgICAgICAgICAiMC4wMDQyMDIsIDAuMDA0MjQxLCAwLjAwNDI0NiwgMC4wMDQyNDcsIDAuMDA0MjQ5LCAwLjAwNDI1LCAwLjAwNDI1IiwgXAotICAgICAgICAgICIwLjAwNDIwNCwgMC4wMDQyNDMsIDAuMDA0MjQ4LCAwLjAwNDI1LCAwLjAwNDI1MSwgMC4wMDQyNTIsIDAuMDA0MjUyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUk4iOwotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDYxNiwgMC4wMDQ2NSwgMC4wMDQ2NTMsIDAuMDA0NjU1LCAwLjAwNDY1NSwgMC4wMDQ2NTUsIDAuMDA0NjU2IiwgXAotICAgICAgICAgICIwLjAwNDYwNywgMC4wMDQ2NCwgMC4wMDQ2NDQsIDAuMDA0NjQ3LCAwLjAwNDY0OCwgMC4wMDQ2NDcsIDAuMDA0NjQ3IiwgXAotICAgICAgICAgICIwLjAwNDU5NywgMC4wMDQ2MzMsIDAuMDA0NjM3LCAwLjAwNDYzOSwgMC4wMDQ2NCwgMC4wMDQ2NCwgMC4wMDQ2NDEiLCBcCi0gICAgICAgICAgIjAuMDA0NTg2LCAwLjAwNDYyNSwgMC4wMDQ2MywgMC4wMDQ2MzMsIDAuMDA0NjM0LCAwLjAwNDYzNCwgMC4wMDQ2MzUiLCBcCi0gICAgICAgICAgIjAuMDA0NTc3LCAwLjAwNDYxOSwgMC4wMDQ2MjQsIDAuMDA0NjI3LCAwLjAwNDYyOSwgMC4wMDQ2MjksIDAuMDA0NjI5IiwgXAotICAgICAgICAgICIwLjAwNDU2NSwgMC4wMDQ2MSwgMC4wMDQ2MTcsIDAuMDA0NjE5LCAwLjAwNDYyMiwgMC4wMDQ2MjMsIDAuMDA0NjI0IiwgXAotICAgICAgICAgICIwLjAwNDU1NiwgMC4wMDQ2MDMsIDAuMDA0NjEsIDAuMDA0NjE0LCAwLjAwNDYxNiwgMC4wMDQ2MTYsIDAuMDA0NjE3Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3Bvd2VyKHNjYWxhcikgewotICAgICAgICB2YWx1ZXMoIjAiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFFOKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMjY2ODk2OwotICAgIGZ1bmN0aW9uIDogIlFCSU5UIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBub25fdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJpc2luZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMzQ3MjksIDAuNTE0NjA3LCAwLjY1ODgwNiwgMC44MzkwODMsIDEuMDE5NDcsIDEuMTk5NTgsIDEuMzc5ODIiLCBcCi0gICAgICAgICAgIjAuMzQ2NjUsIDAuNTI2NTY0LCAwLjY3MDczNSwgMC44NTA5NzcsIDEuMDMxMzksIDEuMjExMjYsIDEuMzkxODkiLCBcCi0gICAgICAgICAgIjAuMzYxODY3LCAwLjU0MTY3OCwgMC42ODU4NzYsIDAuODY2MjY4LCAxLjA0NjE2LCAxLjIyNjY4LCAxLjQwNjg4IiwgXAotICAgICAgICAgICIwLjM3NzI3MywgMC41NTcxNCwgMC43MDE0OTgsIDAuODgxNDksIDEuMDYyLCAxLjI0MjExLCAxLjQyMjQxIiwgXAotICAgICAgICAgICIwLjM5Mjc0NSwgMC41NzI1NjIsIDAuNzE2NzU2LCAwLjg5NzA2NiwgMS4wNzc0MiwgMS4yNTc1NiwgMS40Mzc3OSIsIFwKLSAgICAgICAgICAiMC40MTcwNDQsIDAuNTk2OTM2LCAwLjc0MTEzMiwgMC45MjEzOTIsIDEuMTAxNzksIDEuMjgxOTEsIDEuNDYyMzciLCBcCi0gICAgICAgICAgIjAuNDM4MDg0LCAwLjYxNzkzNSwgMC43NjIxODMsIDAuOTQyMjcsIDEuMTIyODEsIDEuMzAyODksIDEuNDgzMTkiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDkwNzQxLCAwLjQ1NTA3MywgMC43NDgxNTIsIDEuMTE3MjMsIDEuNDg0NywgMS44NTM5MywgMi4yMjIyNCIsIFwKLSAgICAgICAgICAiMC4wOTA3NzEsIDAuNDUzODcxLCAwLjc0ODE1MywgMS4xMTkyMiwgMS40ODM4NywgMS44NTYyMiwgMi4yMjA1NiIsIFwKLSAgICAgICAgICAiMC4wOTA4MDQsIDAuNDU1MDg5LCAwLjc0ODE1MywgMS4xMTY0NywgMS40ODczMSwgMS44NTQ0MSwgMi4yMjU5NSIsIFwKLSAgICAgICAgICAiMC4wOTA3MzQsIDAuNDU0OTYzLCAwLjc0ODI5NiwgMS4xMTg1LCAxLjQ4Mzk1LCAxLjg1MzkzLCAyLjIyMjYxIiwgXAotICAgICAgICAgICIwLjA5MDgwMiwgMC40NTUwNzcsIDAuNzQ4MTU0LCAxLjExNTU2LCAxLjQ4NDUxLCAxLjg1NDQzLCAyLjIyNjA2IiwgXAotICAgICAgICAgICIwLjA5MDc2OCwgMC40NTUwNzUsIDAuNzQ4MTUzLCAxLjExOTI5LCAxLjQ4NDg2LCAxLjg1MzkzLCAyLjIyMDk1IiwgXAotICAgICAgICAgICIwLjA5MDc5NCwgMC40NTUwMjMsIDAuNzQ4ODksIDEuMTE4NDYsIDEuNDg0NzgsIDEuODUzODQsIDIuMjIyNDkiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzc1MjYxLCAwLjU4MDI3LCAwLjc0NDk5OCwgMC45NTEwNzksIDEuMTU3MiwgMS4zNjMxOSwgMS41NjkyNyIsIFwKLSAgICAgICAgICAiMC4zODcyNDYsIDAuNTkyMjg0LCAwLjc1NzA2NSwgMC45NjMyLCAxLjE2OTIsIDEuMzc1MjIsIDEuNTgxMyIsIFwKLSAgICAgICAgICAiMC40MDIyOTUsIDAuNjA3MzE4LCAwLjc3MjA4NywgMC45NzgyMywgMS4xODQyMywgMS4zOTAyNCwgMS41OTYzMiIsIFwKLSAgICAgICAgICAiMC40MTc4ODQsIDAuNjIyODkzLCAwLjc4NzY3NSwgMC45OTM4MDQsIDEuMTk5ODEsIDEuNDA1ODIsIDEuNjExOSIsIFwKLSAgICAgICAgICAiMC40MzMxMywgMC42MzgxNDMsIDAuODAyOTM1LCAxLjAwOTA3LCAxLjIxNTA0LCAxLjQyMTEyLCAxLjYyNzEyIiwgXAotICAgICAgICAgICIwLjQ1NzUwMywgMC42NjI1MjcsIDAuODI3Mjg4LCAxLjAzMzQ0LCAxLjIzOTQ0LCAxLjQ0NTQ1LCAxLjY1MTYyIiwgXAotICAgICAgICAgICIwLjQ3ODM0NSwgMC42ODMzNTksIDAuODQ4MTA1LCAxLjA1NDMsIDEuMjYwMzIsIDEuNDY2MzMsIDEuNjcyNTIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk5NjgsIDAuNTA1Mjc2LCAwLjgzMzIwMSwgMS4yNDM1MSwgMS42NTQ4MSwgMi4wNjQ5OSwgMi40NzQyNSIsIFwKLSAgICAgICAgICAiMC4wOTk2NzEsIDAuNTA1MDYsIDAuODMzNTU1LCAxLjI0MzE2LCAxLjY1NDY0LCAyLjA2NDk1LCAyLjQ3NTMyIiwgXAotICAgICAgICAgICIwLjA5OTY0OCwgMC41MDUxOTQsIDAuODMzNTExLCAxLjI0MzEyLCAxLjY1NDY1LCAyLjA2NDg1LCAyLjQ3NTExIiwgXAotICAgICAgICAgICIwLjA5OTY5MywgMC41MDUwNzksIDAuODMzNTI4LCAxLjI0MzE2LCAxLjY1NDU3LCAyLjA2NDg2LCAyLjQ3NTE5IiwgXAotICAgICAgICAgICIwLjA5OTY5OCwgMC41MDUxOTIsIDAuODMzNTgyLCAxLjI0MywgMS42NTQ1NCwgMi4wNjM3NywgMi40NzUwNCIsIFwKLSAgICAgICAgICAiMC4wOTk2NTksIDAuNTA1MTkxLCAwLjgzMzUxNywgMS4yNDMxMywgMS42NTQ2NSwgMi4wNjQ4NCwgMi40NzU1MiIsIFwKLSAgICAgICAgICAiMC4wOTk2OTMsIDAuNTA1MjE0LCAwLjgzMzIxOCwgMS4yNDMxNCwgMS42NTQ2NCwgMi4wNjQ5OSwgMi40NzUxNCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcHJlc2V0OwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNjMxNiwgMC4zNDMwMjIsIDAuNDg3MTU5LCAwLjY2NzQwMSwgMC44NDc2NjgsIDEuMDI3OTEsIDEuMjA4MTkiLCBcCi0gICAgICAgICAgIjAuMTc0NzM1LCAwLjM1NDU1MiwgMC40OTg3MjEsIDAuNjc4OTM0LCAwLjg1OTE3NSwgMS4wMzk0NSwgMS4yMTk3IiwgXAotICAgICAgICAgICIwLjE4OTQ0NiwgMC4zNjkyNjYsIDAuNTEzNDMsIDAuNjkzNzE1LCAwLjg3Mzg5MywgMS4wNTQxNSwgMS4yMzQ0NCIsIFwKLSAgICAgICAgICAiMC4yMDQwNTcsIDAuMzgzODk0LCAwLjUyODAyOSwgMC43MDgyNjYsIDAuODg4NDc4LCAxLjA2ODgzLCAxLjI0OTA2IiwgXAotICAgICAgICAgICIwLjIxODkxOSwgMC4zOTg3MTcsIDAuNTQyODgxLCAwLjcyMzEwMSwgMC45MDMzMzksIDEuMDgzNjYsIDEuMjYzODkiLCBcCi0gICAgICAgICAgIjAuMjQyMTgyLCAwLjQyMjAyLCAwLjU2NjE5LCAwLjc0NjQxNCwgMC45MjY2NTQsIDEuMTA2OTIsIDEuMjg3MTkiLCBcCi0gICAgICAgICAgIjAuMjYxNjEzLCAwLjQ0MTQsIDAuNTg1NTQyLCAwLjc2NTc5MSwgMC45NDYwOTksIDEuMTI2NCwgMS4zMDY1OCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTA4NDYsIDAuNDU0MDg1LCAwLjc0OTQ0NiwgMS4xMTgzMSwgMS40ODcyMSwgMS44NTY0MSwgMi4yMjUzNiIsIFwKLSAgICAgICAgICAiMC4wOTA4ODksIDAuNDU0MTQxLCAwLjc0OTQxOSwgMS4xMTgsIDEuNDg2ODMsIDEuODU2MjcsIDIuMjI1NCIsIFwKLSAgICAgICAgICAiMC4wOTA5MDQsIDAuNDU0MTIyLCAwLjc0OTQ2MywgMS4xMTgxMSwgMS40ODY3MSwgMS44NTY0NCwgMi4yMjUyNyIsIFwKLSAgICAgICAgICAiMC4wOTA5MTQsIDAuNDU0MTM4LCAwLjc0OTQwMiwgMS4xMTgxNCwgMS40ODcyMywgMS44NTYzOSwgMi4yMjUxMyIsIFwKLSAgICAgICAgICAiMC4wOTA5MTMsIDAuNDU0MTQsIDAuNzQ5NDAzLCAxLjExODA5LCAxLjQ4NzI5LCAxLjg1NjQsIDIuMjIyNzkiLCBcCi0gICAgICAgICAgIjAuMDkwODU5LCAwLjQ1NDE4OSwgMC43NDk0MDIsIDEuMTE2OTgsIDEuNDg3MzMsIDEuODU2MzUsIDIuMjI0OTciLCBcCi0gICAgICAgICAgIjAuMDkwODQzLCAwLjQ1NDEyOCwgMC43NDk0MjYsIDEuMTE4MiwgMS40ODY3NSwgMS44NTY0NCwgMi4yMjUzNiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQyMjIsIDAuMDA0MjYxLCAwLjAwNDI2NSwgMC4wMDQyNjcsIDAuMDA0MjY4LCAwLjAwNDI2OSwgMC4wMDQyNyIsIFwKLSAgICAgICAgICAiMC4wMDQyMTUsIDAuMDA0MjU0LCAwLjAwNDI1OCwgMC4wMDQyNiwgMC4wMDQyNjEsIDAuMDA0MjYyLCAwLjAwNDI2MiIsIFwKLSAgICAgICAgICAiMC4wMDQyMSwgMC4wMDQyNDgsIDAuMDA0MjUzLCAwLjAwNDI1NSwgMC4wMDQyNTcsIDAuMDA0MjU3LCAwLjAwNDI1OCIsIFwKLSAgICAgICAgICAiMC4wMDQyMDYsIDAuMDA0MjQ1LCAwLjAwNDI0OSwgMC4wMDQyNTEsIDAuMDA0MjUyLCAwLjAwNDI1MywgMC4wMDQyNTQiLCBcCi0gICAgICAgICAgIjAuMDA0MjA0LCAwLjAwNDI0MywgMC4wMDQyNDgsIDAuMDA0MjUsIDAuMDA0MjUxLCAwLjAwNDI1MSwgMC4wMDQyNTIiLCBcCi0gICAgICAgICAgIjAuMDA0MjAyLCAwLjAwNDI0MSwgMC4wMDQyNDYsIDAuMDA0MjQ3LCAwLjAwNDI0OSwgMC4wMDQyNSwgMC4wMDQyNSIsIFwKLSAgICAgICAgICAiMC4wMDQyMDQsIDAuMDA0MjQzLCAwLjAwNDI0OCwgMC4wMDQyNSwgMC4wMDQyNTEsIDAuMDA0MjUyLCAwLjAwNDI1MiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDA1NCwgMC4wMDQwOTMsIDAuMDA0MDk0LCAwLjAwNDA5MywgMC4wMDQwOTIsIDAuMDA0MDkxLCAwLjAwNDA5MSIsIFwKLSAgICAgICAgICAiMC4wMDQwNDksIDAuMDA0MDg4LCAwLjAwNDA4OCwgMC4wMDQwODcsIDAuMDA0MDg2LCAwLjAwNDA4NiwgMC4wMDQwODUiLCBcCi0gICAgICAgICAgIjAuMDA0MDQyLCAwLjAwNDA4MiwgMC4wMDQwODIsIDAuMDA0MDgxLCAwLjAwNDA4LCAwLjAwNDA3OSwgMC4wMDQwNzgiLCBcCi0gICAgICAgICAgIjAuMDA0MDM4LCAwLjAwNDA3NywgMC4wMDQwNzgsIDAuMDA0MDc3LCAwLjAwNDA3NywgMC4wMDQwNzUsIDAuMDA0MDc1IiwgXAotICAgICAgICAgICIwLjAwNDAzNSwgMC4wMDQwNzQsIDAuMDA0MDc1LCAwLjAwNDA3NCwgMC4wMDQwNzQsIDAuMDA0MDcyLCAwLjAwNDA3MSIsIFwKLSAgICAgICAgICAiMC4wMDQwMjksIDAuMDA0MDY5LCAwLjAwNDA3LCAwLjAwNDA2OSwgMC4wMDQwNjcsIDAuMDA0MDY3LCAwLjAwNDA2NiIsIFwKLSAgICAgICAgICAiMC4wMDQwMjksIDAuMDA0MDY5LCAwLjAwNDA3LCAwLjAwNDA2OCwgMC4wMDQwNjcsIDAuMDA0MDY3LCAwLjAwNDA2NiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQ2MTYsIDAuMDA0NjUsIDAuMDA0NjUzLCAwLjAwNDY1NSwgMC4wMDQ2NTUsIDAuMDA0NjU1LCAwLjAwNDY1NiIsIFwKLSAgICAgICAgICAiMC4wMDQ2MDcsIDAuMDA0NjQsIDAuMDA0NjQ0LCAwLjAwNDY0NywgMC4wMDQ2NDgsIDAuMDA0NjQ3LCAwLjAwNDY0NyIsIFwKLSAgICAgICAgICAiMC4wMDQ1OTcsIDAuMDA0NjMzLCAwLjAwNDYzNywgMC4wMDQ2MzksIDAuMDA0NjQsIDAuMDA0NjQsIDAuMDA0NjQxIiwgXAotICAgICAgICAgICIwLjAwNDU4NiwgMC4wMDQ2MjUsIDAuMDA0NjMsIDAuMDA0NjMzLCAwLjAwNDYzNCwgMC4wMDQ2MzQsIDAuMDA0NjM1IiwgXAotICAgICAgICAgICIwLjAwNDU3NywgMC4wMDQ2MTksIDAuMDA0NjI0LCAwLjAwNDYyNywgMC4wMDQ2MjksIDAuMDA0NjI5LCAwLjAwNDYyOSIsIFwKLSAgICAgICAgICAiMC4wMDQ1NjUsIDAuMDA0NjEsIDAuMDA0NjE3LCAwLjAwNDYxOSwgMC4wMDQ2MjIsIDAuMDA0NjIzLCAwLjAwNDYyNCIsIFwKLSAgICAgICAgICAiMC4wMDQ1NTYsIDAuMDA0NjAzLCAwLjAwNDYxLCAwLjAwNDYxNCwgMC4wMDQ2MTYsIDAuMDA0NjE2LCAwLjAwNDYxNyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihzY2FsYXIpIHsKLSAgICAgICAgdmFsdWVzKCIwIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihSTikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNDI5ODU7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxMzMyMTU7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNDI5ODU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNDA4LCAwLjAwMDQwNywgMC4wMDA0MDcsIDAuMDAwNDA3LCAwLjAwMDQwNywgMC4wMDA0MDYsIDAuMDAwNDA3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNDE0LCAwLjAwMDQxLCAwLjAwMDQxLCAwLjAwMDQwOSwgMC4wMDA0MDksIDAuMDAwNDA5LCAwLjAwMDQwOSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQmIVNFJiFTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fU0VfRVFfMF9BTl9TSV9FUV8wID09IDEnYjEiOwotICAgICAgZmFsbF9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMTc5NzA4LCAwLjE5MTM1NiwgMC4yMDU2NDIsIDAuMjE4ODY4LCAwLjIzMTY4NSwgMC4yNTE5MTMsIDAuMjY4NzE1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogcmVjb3ZlcnlfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRCZTRSZTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fU0VfRVFfMV9BTl9TSV9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHJlY292ZXJ5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wNjg3NSwgLTAuMDgsIC0wLjA5ODc1LCAtMC4xMTEyNSwgLTAuMTMsIC0wLjE1MjUsIC0wLjE3Mzc1IiwgXAotICAgICAgICAgICItMC4wNzYyNSwgLTAuMDg3NSwgLTAuMTA2MjUsIC0wLjEyNSwgLTAuMTM3NSwgLTAuMTYsIC0wLjE4MTI1IiwgXAotICAgICAgICAgICItMC4wODI1LCAtMC4wOTM3NSwgLTAuMTEyNSwgLTAuMTMxMjUsIC0wLjE0Mzc1LCAtMC4xNzI1LCAtMC4xODc1IiwgXAotICAgICAgICAgICItMC4wODg3NSwgLTAuMSwgLTAuMTEyNSwgLTAuMTMxMjUsIC0wLjE1LCAtMC4xNzI1LCAtMC4xOTM3NSIsIFwKLSAgICAgICAgICAiLTAuMDgyNSwgLTAuMDkzNzUsIC0wLjExMjUsIC0wLjEzMTI1LCAtMC4xNDM3NSwgLTAuMTcyNSwgLTAuMTkzNzUiLCBcCi0gICAgICAgICAgIi0wLjA2NjI1LCAtMC4wNzc1LCAtMC4wOTYyNSwgLTAuMTE1LCAtMC4xMjc1LCAtMC4xNTYyNSwgLTAuMTc3NSIsIFwKLSAgICAgICAgICAiLTAuMDQ1LCAtMC4wNTYyNSwgLTAuMDc1LCAtMC4wOTM3NSwgLTAuMTEyNSwgLTAuMTM1LCAtMC4xNTYyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJlbW92YWxfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRCZTRSZTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fU0VfRVFfMV9BTl9TSV9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHJlbW92YWxfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTEyNSwgMC4xMjM3NSwgMC4xNDI1LCAwLjE1NSwgMC4xNjc1LCAwLjE5NjI1LCAwLjIxNzUiLCBcCi0gICAgICAgICAgIjAuMTIsIDAuMTMxMjUsIDAuMTUsIDAuMTYyNSwgMC4xNzUsIDAuMjAzNzUsIDAuMjI1IiwgXAotICAgICAgICAgICIwLjEzMjUsIDAuMTQzNzUsIDAuMTU2MjUsIDAuMTc1LCAwLjE4NzUsIDAuMjEsIDAuMjMxMjUiLCBcCi0gICAgICAgICAgIjAuMTM4NzUsIDAuMTUsIDAuMTY4NzUsIDAuMTgxMjUsIDAuMiwgMC4yMjI1LCAwLjI0Mzc1IiwgXAotICAgICAgICAgICIwLjE1MTI1LCAwLjE2MjUsIDAuMTc1LCAwLjE5Mzc1LCAwLjIwNjI1LCAwLjIzNSwgMC4yNSIsIFwKLSAgICAgICAgICAiMC4xNjYyNSwgMC4xNzc1LCAwLjE5LCAwLjIwODc1LCAwLjIyMTI1LCAwLjI1LCAwLjI2NSIsIFwKLSAgICAgICAgICAiMC4xNzYyNSwgMC4xODc1LCAwLjIwNjI1LCAwLjIxODc1LCAwLjIzNzUsIDAuMjYsIDAuMjgxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFNFKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDEwNzUzMjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDEwNzQ4OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTA3NTMyOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzQyNSwgMC4wMDM0MTYsIDAuMDAzNDA5LCAwLjAwMzQwNSwgMC4wMDM0MDMsIDAuMDAzNDAxLCAwLjAwMzQwMSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNDYxOSwgMC4wMDQ2MDMsIDAuMDA0NTksIDAuMDA0NTgzLCAwLjAwNDU3OCwgMC4wMDQ1NzEsIDAuMDA0NTY5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlJOIjsKLSAgICAgIHNkZl9jb25kIDogIlJOID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAzNzUsIC0wLjAyNjI1LCAtMC4wMTM3NSwgLTAuMDAxMjUsIDAuMDE3NSwgMC4wNCwgMC4wNTUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAxMjUsIDAuMDA2MjUsIDAuMDIyNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDY3NSwgLTAuMDU2MjUsIC0wLjAzNzUsIC0wLjAyNSwgLTAuMDEyNSwgMC4wMSwgMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjA4LCAtMC4wNjg3NSwgLTAuMDU2MjUsIC0wLjA0Mzc1LCAtMC4wMjUsIC0wLjAwMjUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDk4NzUsIC0wLjA4NzUsIC0wLjA2ODc1LCAtMC4wNTYyNSwgLTAuMDQzNzUsIC0wLjAyMTI1LCAwIiwgXAotICAgICAgICAgICItMC4xMTUsIC0wLjEwMzc1LCAtMC4wOTEyNSwgLTAuMDc4NzUsIC0wLjA2NjI1LCAtMC4wNDM3NSwgLTAuMDIyNSIsIFwKLSAgICAgICAgICAiLTAuMTM2MjUsIC0wLjEyNSwgLTAuMTEyNSwgLTAuMDkzNzUsIC0wLjA4MTI1LCAtMC4wNTg3NSwgLTAuMDQzNzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLCAwLjAxMTI1LCAwLjAyMzc1LCAwLjA0MjUsIDAuMDU1LCAwLjA3NzUsIDAuMDkyNSIsIFwKLSAgICAgICAgICAiLTAuMDExMjUsIDAsIDAuMDEyNSwgMC4wMzEyNSwgMC4wNDM3NSwgMC4wNjYyNSwgMC4wODEyNSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxMjUsIDAsIDAuMDE4NzUsIDAuMDMxMjUsIDAuMDUzNzUsIDAuMDY4NzUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMjUsIC0wLjAxMjUsIDAuMDA2MjUsIDAuMDE4NzUsIDAuMDQxMjUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wMzc1LCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAuMDA2MjUsIDAuMDI4NzUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIi0wLjA1ODc1LCAtMC4wNTM3NSwgLTAuMDQxMjUsIC0wLjAyMjUsIC0wLjAxLCAwLjAwNjI1LCAwLjAyNzUiLCBcCi0gICAgICAgICAgIi0wLjA3Mzc1LCAtMC4wNjI1LCAtMC4wNSwgLTAuMDM3NSwgLTAuMDI1LCAtMC4wMDI1LCAwLjAxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlJOIjsKLSAgICAgIHNkZl9jb25kIDogIlJOID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIwNjI1LCAwLjE4ODc1LCAwLjE3NjI1LCAwLjE2Mzc1LCAwLjE1MTI1LCAwLjEyODc1LCAwLjExMzc1IiwgXAotICAgICAgICAgICIwLjIxNzUsIDAuMiwgMC4xODc1LCAwLjE3NSwgMC4xNTYyNSwgMC4xNCwgMC4xMjUiLCBcCi0gICAgICAgICAgIjAuMjMsIDAuMjE4NzUsIDAuMiwgMC4xODc1LCAwLjE3NSwgMC4xNTI1LCAwLjE0Mzc1IiwgXAotICAgICAgICAgICIwLjI0MjUsIDAuMjMxMjUsIDAuMjEyNSwgMC4yLCAwLjE4NzUsIDAuMTY1LCAwLjE1NjI1IiwgXAotICAgICAgICAgICIwLjI1NSwgMC4yNDM3NSwgMC4yMjUsIDAuMjEyNSwgMC4yLCAwLjE4Mzc1LCAwLjE2ODc1IiwgXAotICAgICAgICAgICIwLjI3NzUsIDAuMjY2MjUsIDAuMjQ3NSwgMC4yMzUsIDAuMjIyNSwgMC4yMDYyNSwgMC4xOTEyNSIsIFwKLSAgICAgICAgICAiMC4yOTg3NSwgMC4yODc1LCAwLjI2ODc1LCAwLjI1NjI1LCAwLjI0Mzc1LCAwLjIyMTI1LCAwLjIxMjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yNDM3NSwgMC4yMjYyNSwgMC4yMTM3NSwgMC4yMDEyNSwgMC4xODg3NSwgMC4xNjYyNSwgMC4xNTEyNSIsIFwKLSAgICAgICAgICAiMC4yNTUsIDAuMjQzNzUsIDAuMjI1LCAwLjIxMjUsIDAuMiwgMC4xNzc1LCAwLjE2ODc1IiwgXAotICAgICAgICAgICIwLjI2NzUsIDAuMjU2MjUsIDAuMjM3NSwgMC4yMjUsIDAuMjEyNSwgMC4xOTYyNSwgMC4xODEyNSIsIFwKLSAgICAgICAgICAiMC4yODYyNSwgMC4yNjg3NSwgMC4yNTYyNSwgMC4yMzc1LCAwLjIyNSwgMC4yMDg3NSwgMC4xOTM3NSIsIFwKLSAgICAgICAgICAiMC4yOTg3NSwgMC4yODEyNSwgMC4yNjg3NSwgMC4yNTYyNSwgMC4yMzc1LCAwLjIyMTI1LCAwLjIwNjI1IiwgXAotICAgICAgICAgICIwLjMxNSwgMC4zMDM3NSwgMC4yODUsIDAuMjcyNSwgMC4yNiwgMC4yNDM3NSwgMC4yMjg3NSIsIFwKLSAgICAgICAgICAiMC4zMywgMC4zMTg3NSwgMC4zLCAwLjI4NzUsIDAuMjc1LCAwLjI1ODc1LCAwLjI0Mzc1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTSSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNTc5OTg0OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDU3ODIzMTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA1Nzk5ODQ7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyMjEyLCAwLjAwMjIwMiwgMC4wMDIxOTcsIDAuMDAyMTkzLCAwLjAwMjE5MSwgMC4wMDIxODcsIDAuMDAyMTg1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzNTk1LCAwLjAwMzU5LCAwLjAwMzU4OCwgMC4wMDM1ODYsIDAuMDAzNTg1LCAwLjAwMzU4MywgMC4wMDM1ODIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiUk4mU0UiOwotICAgICAgc2RmX2NvbmQgOiAiUk5fRVFfMV9BTl9TRV9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjEyNSwgLTAuMTIsIC0wLjEwNzUsIC0wLjA5NSwgLTAuMDgyNSwgLTAuMDY2MjUsIC0wLjA1NzUiLCBcCi0gICAgICAgICAgIi0wLjEzNjI1LCAtMC4xMzEyNSwgLTAuMTE4NzUsIC0wLjEwNjI1LCAtMC4wOTM3NSwgLTAuMDgzNzUsIC0wLjA2ODc1IiwgXAotICAgICAgICAgICItMC4xNTUsIC0wLjE0Mzc1LCAtMC4xMzEyNSwgLTAuMTE4NzUsIC0wLjExMjUsIC0wLjA5NjI1LCAtMC4wODEyNSIsIFwKLSAgICAgICAgICAiLTAuMTY3NSwgLTAuMTU2MjUsIC0wLjE0Mzc1LCAtMC4xMzEyNSwgLTAuMTI1LCAtMC4xMDg3NSwgLTAuMDkzNzUiLCBcCi0gICAgICAgICAgIi0wLjE4LCAtMC4xNjg3NSwgLTAuMTU2MjUsIC0wLjE1LCAtMC4xMzc1LCAtMC4xMjEyNSwgLTAuMTA2MjUiLCBcCi0gICAgICAgICAgIi0wLjIwMjUsIC0wLjE5MTI1LCAtMC4xNzg3NSwgLTAuMTY2MjUsIC0wLjE2LCAtMC4xNDM3NSwgLTAuMTI4NzUiLCBcCi0gICAgICAgICAgIi0wLjIxNzUsIC0wLjIxMjUsIC0wLjIsIC0wLjE4NzUsIC0wLjE3NSwgLTAuMTY1LCAtMC4xNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAxMjUsIC0wLjAwMTI1LCAwLjAxMTI1LCAwLjAyMzc1LCAwLjA0MjUsIDAuMDU4NzUsIDAuMDgiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTI1LCAwLCAwLjAxMjUsIDAuMDMxMjUsIDAuMDQ3NSwgMC4wNjg3NSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAyNSwgLTAuMDEyNSwgMCwgMC4wMTg3NSwgMC4wMzUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAxMjUsIDAuMDA2MjUsIDAuMDIyNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDYxMjUsIC0wLjA1LCAtMC4wMzc1LCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAuMDE2MjUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjA3NzUsIC0wLjA2NjI1LCAtMC4wNTM3NSwgLTAuMDQxMjUsIC0wLjAyODc1LCAtMC4wMDYyNSwgMC4wMTUiLCBcCi0gICAgICAgICAgIi0wLjA5MjUsIC0wLjA4MTI1LCAtMC4wNjg3NSwgLTAuMDU2MjUsIC0wLjA0Mzc1LCAtMC4wMjEyNSwgMCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiUk4mU0UiOwotICAgICAgc2RmX2NvbmQgOiAiUk5fRVFfMV9BTl9TRV9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIxODc1LCAwLjIwNzUsIDAuMTg4NzUsIDAuMTc2MjUsIDAuMTYzNzUsIDAuMTQ3NSwgMC4xMzI1IiwgXAotICAgICAgICAgICIwLjIzLCAwLjIxODc1LCAwLjIsIDAuMTg3NSwgMC4xNzUsIDAuMTU4NzUsIDAuMTQzNzUiLCBcCi0gICAgICAgICAgIjAuMjQyNSwgMC4yMzEyNSwgMC4yMTg3NSwgMC4yLCAwLjE4NzUsIDAuMTcxMjUsIDAuMTU2MjUiLCBcCi0gICAgICAgICAgIjAuMjYxMjUsIDAuMjQzNzUsIDAuMjMxMjUsIDAuMjEyNSwgMC4yLCAwLjE4Mzc1LCAwLjE2ODc1IiwgXAotICAgICAgICAgICIwLjI3Mzc1LCAwLjI1NjI1LCAwLjI0Mzc1LCAwLjIzMTI1LCAwLjIxODc1LCAwLjE5NjI1LCAwLjE4NzUiLCBcCi0gICAgICAgICAgIjAuMjk2MjUsIDAuMjc4NzUsIDAuMjY2MjUsIDAuMjUzNzUsIDAuMjM1LCAwLjIxODc1LCAwLjIwMzc1IiwgXAotICAgICAgICAgICIwLjMxMTI1LCAwLjMsIDAuMjg3NSwgMC4yNjg3NSwgMC4yNTYyNSwgMC4yNCwgMC4yMjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMzEyNSwgMC4xMiwgMC4xMDc1LCAwLjA4ODc1LCAwLjA3LCAwLjA0NzUsIDAuMDI2MjUiLCBcCi0gICAgICAgICAgIjAuMTQyNSwgMC4xMzEyNSwgMC4xMTg3NSwgMC4xLCAwLjA4NzUsIDAuMDU4NzUsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiMC4xNjEyNSwgMC4xNDM3NSwgMC4xMzEyNSwgMC4xMTI1LCAwLjEsIDAuMDcxMjUsIDAuMDUiLCBcCi0gICAgICAgICAgIjAuMTczNzUsIDAuMTU2MjUsIDAuMTQzNzUsIDAuMTI1LCAwLjExMjUsIDAuMDgzNzUsIDAuMDYyNSIsIFwKLSAgICAgICAgICAiMC4xODYyNSwgMC4xNjg3NSwgMC4xNTYyNSwgMC4xMzc1LCAwLjEyNSwgMC4wOTYyNSwgMC4wNzUiLCBcCi0gICAgICAgICAgIjAuMjAyNSwgMC4xOTEyNSwgMC4xNzI1LCAwLjE2LCAwLjE0MTI1LCAwLjExODc1LCAwLjA5NzUiLCBcCi0gICAgICAgICAgIjAuMjE3NSwgMC4yMDYyNSwgMC4xOTM3NSwgMC4xNzUsIDAuMTU2MjUsIDAuMTMzNzUsIDAuMTEyNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IFNERkZSWEwgKgotICogLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoU0RGRlJYTCkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjI5MjcwMjsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBmZiAoTjMwLFFCSU5UKSB7Ci0gICAgbmV4dF9zdGF0ZSA6ICIoKFNFIFNJKSArICghU0UgRCkpIjsKLSAgICBjbG9ja2VkX29uIDogIkNLIjsKLSAgICBjbGVhciA6ICIoIVJOKSI7Ci0gIH0KLSAgcGluKENLKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2MTgzNzc7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjE4MTA2OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDYxODM3NzsKLSAgICBjbG9jayA6IHRydWU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyMTg4LCAwLjAwMjE3NywgMC4wMDIxNjYsIDAuMDAyMTYsIDAuMDAyMTU1LCAwLjAwMjE0OCwgMC4wMDIxNDQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDU2MjEsIDAuMDA1NjE0LCAwLjAwNTYwNSwgMC4wMDU2LCAwLjAwNTU5OCwgMC4wMDU1OTcsIDAuMDA1NiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQmUk4mIVNFJiFTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fUk5fRVFfMV9BTl9TRV9FUV8wX0FOX1NJX0VRXzAgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC40MDMxNTUsIDAuNDE0ODk3LCAwLjQzMDEwOSwgMC40NDU1NjcsIDAuNDYxMDE2LCAwLjQ4NTQwOCwgMC41MDY1MjciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjIwOTEzOCwgMC4yMjA2MjIsIDAuMjM1NjEzLCAwLjI1MDQ2NiwgMC4yNjUxODcsIDAuMjg4NDU1LCAwLjMwNzc2NCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjAxNDA4OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDU5OTU3NjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2MDE0MDg7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyNDc1LCAwLjAwMjQ2NCwgMC4wMDI0NiwgMC4wMDI0NTYsIDAuMDAyNDU0LCAwLjAwMjQ1LCAwLjAwMjQ0OCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzY0NCwgMC4wMDM2MzksIDAuMDAzNjM3LCAwLjAwMzYzNSwgMC4wMDM2MzQsIDAuMDAzNjMzLCAwLjAwMzYzMSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJSTiYhU0UiOwotICAgICAgc2RmX2NvbmQgOiAiUk5fRVFfMV9BTl9TRV9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjEzNzUsIC0wLjEzMjUsIC0wLjEyLCAtMC4xMDc1LCAtMC4wOTUsIC0wLjA3ODc1LCAtMC4wNyIsIFwKLSAgICAgICAgICAiLTAuMTQ4NzUsIC0wLjE0Mzc1LCAtMC4xMzEyNSwgLTAuMTE4NzUsIC0wLjEwNjI1LCAtMC4wOSwgLTAuMDgxMjUiLCBcCi0gICAgICAgICAgIi0wLjE2NzUsIC0wLjE1NjI1LCAtMC4xNDM3NSwgLTAuMTMxMjUsIC0wLjExODc1LCAtMC4xMDg3NSwgLTAuMDkzNzUiLCBcCi0gICAgICAgICAgIi0wLjE4LCAtMC4xNjg3NSwgLTAuMTU2MjUsIC0wLjE0Mzc1LCAtMC4xMzc1LCAtMC4xMjEyNSwgLTAuMTA2MjUiLCBcCi0gICAgICAgICAgIi0wLjE5MjUsIC0wLjE4MTI1LCAtMC4xNjg3NSwgLTAuMTYyNSwgLTAuMTUsIC0wLjEzMzc1LCAtMC4xMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMjE1LCAtMC4yMDM3NSwgLTAuMTkxMjUsIC0wLjE3ODc1LCAtMC4xNzI1LCAtMC4xNTYyNSwgLTAuMTQxMjUiLCBcCi0gICAgICAgICAgIi0wLjIzNjI1LCAtMC4yMjUsIC0wLjIxMjUsIC0wLjIsIC0wLjE4NzUsIC0wLjE3NzUsIC0wLjE2MjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMTg3NSwgLTAuMDA3NSwgMC4wMTEyNSwgMC4wMjM3NSwgMC4wMzYyNSwgMC4wNTg3NSwgMC4wOCIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAxODc1LCAwLCAwLjAxMjUsIDAuMDI1LCAwLjA0NzUsIDAuMDY4NzUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgMCwgMC4wMTI1LCAwLjAzNSwgMC4wNSIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNDM3NSwgLTAuMDMxMjUsIC0wLjAxMjUsIDAsIDAuMDIyNSwgMC4wMzc1IiwgXAotICAgICAgICAgICItMC4wNjc1LCAtMC4wNTYyNSwgLTAuMDM3NSwgLTAuMDI1LCAtMC4wMTI1LCAwLjAxLCAwLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wODM3NSwgLTAuMDcyNSwgLTAuMDYsIC0wLjA0NzUsIC0wLjAyODc1LCAtMC4wMDYyNSwgMC4wMDg3NSIsIFwKLSAgICAgICAgICAiLTAuMDk4NzUsIC0wLjA4NzUsIC0wLjA3NSwgLTAuMDYyNSwgLTAuMDQzNzUsIC0wLjAyNzUsIC0wLjAwNjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJSTiYhU0UiOwotICAgICAgc2RmX2NvbmQgOiAiUk5fRVFfMV9BTl9TRV9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIxODc1LCAwLjIwNzUsIDAuMTk1LCAwLjE3NjI1LCAwLjE2Mzc1LCAwLjE0NzUsIDAuMTMyNSIsIFwKLSAgICAgICAgICAiMC4yMywgMC4yMTg3NSwgMC4yMDYyNSwgMC4xODc1LCAwLjE3NSwgMC4xNTg3NSwgMC4xNDM3NSIsIFwKLSAgICAgICAgICAiMC4yNDg3NSwgMC4yMzEyNSwgMC4yMTg3NSwgMC4yMDYyNSwgMC4xOTM3NSwgMC4xNzEyNSwgMC4xNjI1IiwgXAotICAgICAgICAgICIwLjI2MTI1LCAwLjI1LCAwLjIzMTI1LCAwLjIxODc1LCAwLjIwNjI1LCAwLjE4Mzc1LCAwLjE3NSIsIFwKLSAgICAgICAgICAiMC4yNzM3NSwgMC4yNjI1LCAwLjI0Mzc1LCAwLjIzMTI1LCAwLjIxODc1LCAwLjIwMjUsIDAuMTg3NSIsIFwKLSAgICAgICAgICAiMC4yOTYyNSwgMC4yODUsIDAuMjY2MjUsIDAuMjUzNzUsIDAuMjQxMjUsIDAuMjI1LCAwLjIxIiwgXAotICAgICAgICAgICIwLjMxMTI1LCAwLjMsIDAuMjg3NSwgMC4yNzUsIDAuMjU2MjUsIDAuMjQsIDAuMjI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTMxMjUsIDAuMTIsIDAuMTAxMjUsIDAuMDg4NzUsIDAuMDcsIDAuMDQ3NSwgMC4wMjYyNSIsIFwKLSAgICAgICAgICAiMC4xNDI1LCAwLjEzMTI1LCAwLjExMjUsIDAuMSwgMC4wODEyNSwgMC4wNTg3NSwgMC4wMzc1IiwgXAotICAgICAgICAgICIwLjE1NSwgMC4xNDM3NSwgMC4xMzEyNSwgMC4xMTI1LCAwLjA5Mzc1LCAwLjA3MTI1LCAwLjA1IiwgXAotICAgICAgICAgICIwLjE2NzUsIDAuMTU2MjUsIDAuMTQzNzUsIDAuMTI1LCAwLjExMjUsIDAuMDgzNzUsIDAuMDYyNSIsIFwKLSAgICAgICAgICAiMC4xOCwgMC4xNjg3NSwgMC4xNTYyNSwgMC4xMzc1LCAwLjExODc1LCAwLjA5NjI1LCAwLjA3NSIsIFwKLSAgICAgICAgICAiMC4yMDI1LCAwLjE5MTI1LCAwLjE3MjUsIDAuMTYsIDAuMTQxMjUsIDAuMTE4NzUsIDAuMDk3NSIsIFwKLSAgICAgICAgICAiMC4yMTc1LCAwLjIwNjI1LCAwLjE5Mzc1LCAwLjE3NSwgMC4xNTYyNSwgMC4xMzM3NSwgMC4xMTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihRKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMDczMzk2NDsKLSAgICBmdW5jdGlvbiA6ICJOMzAiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5vbl91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcmlzaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjQyMjY4OCwgMC40NDgxODksIDAuNjc2MTQxLCAxLjA1NjczLCAxLjQzNTQ0LCAyLjMyMTM1LCAyLjgyODM4IiwgXAotICAgICAgICAgICIwLjQzNDUxNywgMC40NjAwMjUsIDAuNjg3OTg1LCAxLjA2NjM3LCAxLjQ0NjgxLCAyLjMzMzEsIDIuODQwMzciLCBcCi0gICAgICAgICAgIjAuNDQ5MzgzLCAwLjQ3NDk0NCwgMC43MDIxMjksIDEuMDg0NjYsIDEuNDYxMTMsIDIuMzQ3MTgsIDIuODU1MDQiLCBcCi0gICAgICAgICAgIjAuNDY1MDQyLCAwLjQ5MDQ1MywgMC43MTg2NCwgMS4wOTk4OCwgMS40Nzc4LCAyLjM2MjQ0LCAyLjg3MTM5IiwgXAotICAgICAgICAgICIwLjQ4MDUwMSwgMC41MDU5MTMsIDAuNzM0MTA0LCAxLjExNTM2LCAxLjQ5NDI5LCAyLjM3Nzg1LCAyLjg4Njc1IiwgXAotICAgICAgICAgICIwLjUwNDc3NCwgMC41MzAyNTIsIDAuNzU4MjQzLCAxLjEzODI3LCAxLjUxNzA2LCAyLjQwMzQ4LCAyLjkxMDYxIiwgXAotICAgICAgICAgICIwLjUyNTc0LCAwLjU1MTEyMiwgMC43Nzk2NzEsIDEuMTYwNzYsIDEuNTQwNTQsIDIuNDIzMTMsIDIuOTMxNyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yODc1NzcsIDAuMzM1MzI3LCAwLjc5NDQ1OSwgMS41NjY0MywgMi4zNTY1NCwgNC4xNzUyOCwgNS4xODY5MSIsIFwKLSAgICAgICAgICAiMC4yODc2ODYsIDAuMzM3MjA5LCAwLjc5NDQ5NiwgMS41NjY3OCwgMi4zNTY1MywgNC4xNzM5OCwgNS4xODcxNiIsIFwKLSAgICAgICAgICAiMC4yODc4ODMsIDAuMzM3NTk0LCAwLjc5OTI2OSwgMS41NTU4NCwgMi4zNTY0NCwgNC4xNzQwOCwgNS4xODY4NyIsIFwKLSAgICAgICAgICAiMC4yODU0NjYsIDAuMzM3MjA4LCAwLjc5NDM3NywgMS41NzE5MSwgMi4zNTY1NSwgNC4xNzUzMiwgNS4xODcwMiIsIFwKLSAgICAgICAgICAiMC4yODU5MDMsIDAuMzM1NjY4LCAwLjc5NDM3LCAxLjU3MjE1LCAyLjMyMzk2LCA0LjE3NTI3LCA1LjE4NzAxIiwgXAotICAgICAgICAgICIwLjI4ODM1OSwgMC4zMzQ4NjcsIDAuNzk0NTA0LCAxLjU2ODg5LCAyLjM1NjU1LCA0LjE3MzQ2LCA1LjE4Njg4IiwgXAotICAgICAgICAgICIwLjI4ODQ3MywgMC4zMzc1OCwgMC43ODc5MSwgMS41NzE1NCwgMi4zNDE2NywgNC4xNzUyNiwgNS4xODY5NSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC40MDMxNTUsIDAuNDMzMTQ0LCAwLjcwMjA0MiwgMS4xNDYxNiwgMS41OTcwNCwgMi42NDAyMywgMy4yMzYxMSIsIFwKLSAgICAgICAgICAiMC40MTQ4OTcsIDAuNDQ0ODg1LCAwLjcxMzc4NCwgMS4xNTgxNSwgMS42MDg3OCwgMi42NTE5NywgMy4yNDc4MiIsIFwKLSAgICAgICAgICAiMC40MzAxMDksIDAuNDYwMDY3LCAwLjcyODk1NywgMS4xNzI3MiwgMS42MTk2NCwgMi42NjY3OCwgMy4yNjI4NyIsIFwKLSAgICAgICAgICAiMC40NDU1NjcsIDAuNDc1NTExLCAwLjc0NDQwOSwgMS4xODgzNywgMS42MzkzOSwgMi42ODI2MSwgMy4yNzg0NyIsIFwKLSAgICAgICAgICAiMC40NjEwMTYsIDAuNDkwOTYxLCAwLjc1OTg1OCwgMS4yMDM5NCwgMS42NTQ4NywgMi42OTgwMywgMy4yOTM5NCIsIFwKLSAgICAgICAgICAiMC40ODU0MDgsIDAuNTE1MzU3LCAwLjc4NDI1NCwgMS4yMjgxNywgMS42NzU2NywgMi43MjI0MSwgMy4zMTgyMyIsIFwKLSAgICAgICAgICAiMC41MDY1MjcsIDAuNTM2NDcxLCAwLjgwNTM2OCwgMS4yNDkyOSwgMS43MDAzNCwgMi43NDM1NiwgMy4zMzk0MyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMTQxODYsIDAuMzcyNzk4LCAwLjkwMTQ2NCwgMS43ODM4OSwgMi42NjkxOSwgNC43MjgzNiwgNS45MTgyNyIsIFwKLSAgICAgICAgICAiMC4zMTQxNTIsIDAuMzcyNzk3LCAwLjkwMTQ2NCwgMS43ODIxOSwgMi42NjkxOSwgNC43MjgyNSwgNS45MTgzOCIsIFwKLSAgICAgICAgICAiMC4zMTQ1OTIsIDAuMzcyNzg5LCAwLjkwMTIzMSwgMS43ODIxMSwgMi42NjY4NCwgNC43MjM4NiwgNS45MTg3NiIsIFwKLSAgICAgICAgICAiMC4zMTQ2MjcsIDAuMzcyNzk3LCAwLjkwMTQ1NSwgMS43ODU4LCAyLjY2ODk5LCA0LjcyODM0LCA1LjkxODMyIiwgXAotICAgICAgICAgICIwLjMxNDYyMiwgMC4zNzI3OTksIDAuOTAxNDE4LCAxLjc4NDE2LCAyLjY2OTI4LCA0LjcyODA1LCA1LjkxODIzIiwgXAotICAgICAgICAgICIwLjMxNDYwMSwgMC4zNzI4MSwgMC45MDEyMjgsIDEuNzg2MTYsIDIuNjczNTMsIDQuNzI3NjUsIDUuOTE4OTkiLCBcCi0gICAgICAgICAgIjAuMzE0NjI0LCAwLjM3Mjc5NiwgMC45MDE0NDQsIDEuNzg2MTEsIDIuNjY4OTIsIDQuNzI4MzIsIDUuOTE4MzIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUk4iOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGNsZWFyOwotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMjk2MDcsIDAuMjU5Mzg1LCAwLjUyNzY4MSwgMC45NzQ3NDEsIDEuNDIxODcsIDIuNDY0ODMsIDMuMDYxMTUiLCBcCi0gICAgICAgICAgIjAuMjQxMzA1LCAwLjI3MTA4NywgMC41MzkzODQsIDAuOTg2NDM1LCAxLjQzMzYyLCAyLjQ3NjQzLCAzLjA3Mjg0IiwgXAotICAgICAgICAgICIwLjI1NTkzMiwgMC4yODU3MDQsIDAuNTU0MDE4LCAxLjAwMDkyLCAxLjQ0ODI0LCAyLjQ5MTE2LCAzLjA4NzQ4IiwgXAotICAgICAgICAgICIwLjI3MDY2OSwgMC4zMDA0NSwgMC41Njc3MDQsIDEuMDE1MzcsIDEuNDYzLCAyLjUwNTgsIDMuMTAxMzQiLCBcCi0gICAgICAgICAgIjAuMjg1NDg1LCAwLjMxNTI3MywgMC41ODM2MjUsIDEuMDMwMzIsIDEuNDc3NiwgMi41MTk5OCwgMy4xMTY4NSIsIFwKLSAgICAgICAgICAiMC4zMDg2OTMsIDAuMzM4NDg2LCAwLjYwNjg2OCwgMS4wNTE4NSwgMS41MDA4MiwgMi41NDM5LCAzLjE0MDM1IiwgXAotICAgICAgICAgICIwLjMyODA3OSwgMC4zNTc4NjIsIDAuNjI2MjM0LCAxLjA3MjksIDEuNTIwNTEsIDIuNTYzMzIsIDMuMTUxNTIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzE0OTEyLCAwLjM3MzI3OCwgMC45MDA3MTYsIDEuNzg3NDEsIDIuNjY5MTQsIDQuNzI0OTgsIDUuOTE5OSIsIFwKLSAgICAgICAgICAiMC4zMTUwMzIsIDAuMzczMjk5LCAwLjkwMDY4OCwgMS43ODc1NSwgMi42NzAyLCA0LjcyNTIyLCA1LjkxOTkxIiwgXAotICAgICAgICAgICIwLjMxNTQxNywgMC4zNzMxNiwgMC45MDA4NDQsIDEuNzg3NjEsIDIuNjY2LCA0LjcyNDQxLCA1LjkyMDEzIiwgXAotICAgICAgICAgICIwLjMxNDkyNiwgMC4zNzMyNTgsIDAuOTAyNjQ1LCAxLjc4NzA2LCAyLjY3MTIxLCA0LjczMjQzLCA1LjkyMDIzIiwgXAotICAgICAgICAgICIwLjMxNDYwOCwgMC4zNzMzMDEsIDAuOTAyOTQ0LCAxLjc4NzY1LCAyLjY2OTkzLCA0LjczNTYyLCA1LjkyMDExIiwgXAotICAgICAgICAgICIwLjMxNTExNCwgMC4zNzMzMywgMC45MDA5NTQsIDEuNzgzNDUsIDIuNjcyMDgsIDQuNzI1NSwgNS45MTk5NCIsIFwKLSAgICAgICAgICAiMC4zMTUwNTgsIDAuMzczMzc2LCAwLjkwMjcwMSwgMS43ODcxMSwgMi42NzAwOCwgNC43MzYxNywgNS45MDkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzMTIsIDAuMDAzMTIsIDAuMDAzMTE4LCAwLjAwMzExNSwgMC4wMDMxMTQsIDAuMDAzMTEyLCAwLjAwMzExMiIsIFwKLSAgICAgICAgICAiMC4wMDMxMTUsIDAuMDAzMTE1LCAwLjAwMzExMiwgMC4wMDMxMDksIDAuMDAzMTA4LCAwLjAwMzEwNywgMC4wMDMxMDYiLCBcCi0gICAgICAgICAgIjAuMDAzMTA4LCAwLjAwMzEwOCwgMC4wMDMxMDYsIDAuMDAzMTAzLCAwLjAwMzEwMSwgMC4wMDMxMDEsIDAuMDAzMSIsIFwKLSAgICAgICAgICAiMC4wMDMxMDQsIDAuMDAzMTA0LCAwLjAwMzEwMSwgMC4wMDMwOTksIDAuMDAzMDk3LCAwLjAwMzA5NiwgMC4wMDMwOTYiLCBcCi0gICAgICAgICAgIjAuMDAzMTAxLCAwLjAwMzEwMSwgMC4wMDMwOTksIDAuMDAzMDk2LCAwLjAwMzA5NSwgMC4wMDMwOTMsIDAuMDAzMDkzIiwgXAotICAgICAgICAgICIwLjAwMzA5NiwgMC4wMDMwOTYsIDAuMDAzMDkzLCAwLjAwMzA5LCAwLjAwMzA4OSwgMC4wMDMwODgsIDAuMDAzMDg3IiwgXAotICAgICAgICAgICIwLjAwMzA5MywgMC4wMDMwOTMsIDAuMDAzMDkxLCAwLjAwMzA4OCwgMC4wMDMwODcsIDAuMDAzMDg1LCAwLjAwMzA4NSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzAyOSwgMC4wMDMwMjksIDAuMDAzMDMyLCAwLjAwMzAzMiwgMC4wMDMwMzMsIDAuMDAzMDMzLCAwLjAwMzAzMyIsIFwKLSAgICAgICAgICAiMC4wMDMwMjIsIDAuMDAzMDIzLCAwLjAwMzAyNSwgMC4wMDMwMjYsIDAuMDAzMDI3LCAwLjAwMzAyNywgMC4wMDMwMjciLCBcCi0gICAgICAgICAgIjAuMDAzMDE3LCAwLjAwMzAxNywgMC4wMDMwMiwgMC4wMDMwMjEsIDAuMDAzMDIxLCAwLjAwMzAyMSwgMC4wMDMwMjEiLCBcCi0gICAgICAgICAgIjAuMDAzMDEzLCAwLjAwMzAxMywgMC4wMDMwMTYsIDAuMDAzMDE3LCAwLjAwMzAxNywgMC4wMDMwMTcsIDAuMDAzMDE3IiwgXAotICAgICAgICAgICIwLjAwMzAxMSwgMC4wMDMwMTIsIDAuMDAzMDE0LCAwLjAwMzAxNSwgMC4wMDMwMTUsIDAuMDAzMDE2LCAwLjAwMzAxNiIsIFwKLSAgICAgICAgICAiMC4wMDMwMDksIDAuMDAzMDA5LCAwLjAwMzAxMiwgMC4wMDMwMTMsIDAuMDAzMDEzLCAwLjAwMzAxMywgMC4wMDMwMTMiLCBcCi0gICAgICAgICAgIjAuMDAzMDExLCAwLjAwMzAxMiwgMC4wMDMwMTQsIDAuMDAzMDE1LCAwLjAwMzAxNSwgMC4wMDMwMTUsIDAuMDAzMDE2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUk4iOwotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzI2MiwgMC4wMDMyNjMsIDAuMDAzMjY1LCAwLjAwMzI2NSwgMC4wMDMyNjUsIDAuMDAzMjY1LCAwLjAwMzI2NSIsIFwKLSAgICAgICAgICAiMC4wMDMyNTUsIDAuMDAzMjU2LCAwLjAwMzI1NywgMC4wMDMyNTgsIDAuMDAzMjU4LCAwLjAwMzI1OSwgMC4wMDMyNTkiLCBcCi0gICAgICAgICAgIjAuMDAzMjQ5LCAwLjAwMzI1LCAwLjAwMzI1MiwgMC4wMDMyNTMsIDAuMDAzMjUzLCAwLjAwMzI1MywgMC4wMDMyNTMiLCBcCi0gICAgICAgICAgIjAuMDAzMjQ0LCAwLjAwMzI0NSwgMC4wMDMyNDcsIDAuMDAzMjQ4LCAwLjAwMzI0OSwgMC4wMDMyNDksIDAuMDAzMjQ5IiwgXAotICAgICAgICAgICIwLjAwMzIzOSwgMC4wMDMyNCwgMC4wMDMyNDMsIDAuMDAzMjQ0LCAwLjAwMzI0NSwgMC4wMDMyNDUsIDAuMDAzMjQ1IiwgXAotICAgICAgICAgICIwLjAwMzIzMywgMC4wMDMyMzQsIDAuMDAzMjM4LCAwLjAwMzIzOSwgMC4wMDMyNCwgMC4wMDMyNCwgMC4wMDMyNCIsIFwKLSAgICAgICAgICAiMC4wMDMyMjgsIDAuMDAzMjI5LCAwLjAwMzIzMywgMC4wMDMyMzUsIDAuMDAzMjM1LCAwLjAwMzIzNiwgMC4wMDMyMzYiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfcG93ZXIoc2NhbGFyKSB7Ci0gICAgICAgIHZhbHVlcygiMCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUU4pICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4wNzQyODI7Ci0gICAgZnVuY3Rpb24gOiAiUUJJTlQiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5vbl91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcmlzaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjQwMjM5NiwgMC40Mjc2MzEsIDAuNjU0ODM3LCAxLjAzMzUxLCAxLjQxMjExLCAyLjI5NTczLCAyLjgwMDY0IiwgXAotICAgICAgICAgICIwLjQxNDE0MSwgMC40MzkzNzcsIDAuNjY2NTgxLCAxLjA0NTI1LCAxLjQyMzg1LCAyLjMwNzQ3LCAyLjgxMjM5IiwgXAotICAgICAgICAgICIwLjQyOTMxOSwgMC40NTQ1NjQsIDAuNjgxNzUyLCAxLjA2MDQ1LCAxLjQzOTA0LCAyLjMyMjY2LCAyLjgyNzYxIiwgXAotICAgICAgICAgICIwLjQ0NDc3MiwgMC40Njk5OTYsIDAuNjk3MjAyLCAxLjA3NTg4LCAxLjQ1NDQ3LCAyLjMzODEsIDIuODQzMDEiLCBcCi0gICAgICAgICAgIjAuNDYwMjM0LCAwLjQ4NTQ1OCwgMC43MTI2NjIsIDEuMDkxMzQsIDEuNDY5OTMsIDIuMzUzNTYsIDIuODU4NDciLCBcCi0gICAgICAgICAgIjAuNDg0NjIsIDAuNTA5ODUxLCAwLjczNzA1MiwgMS4xMTU3NSwgMS40OTQzNCwgMi4zNzc5OCwgMi44ODI5NCIsIFwKLSAgICAgICAgICAiMC41MDU3MzEsIDAuNTMwOTU3LCAwLjc1ODE2MSwgMS4xMzY4NCwgMS41MTU0MywgMi4zOTkwNiwgMi45MDM5NyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yNjk0NywgMC4zMjEyOTYsIDAuNzgzMTg0LCAxLjU1MDI4LCAyLjMyMjM4LCA0LjExODU5LCA1LjEzODM5IiwgXAotICAgICAgICAgICIwLjI2OTQzNCwgMC4zMjEyOTIsIDAuNzgzMTgzLCAxLjU1MDE0LCAyLjMyMjM5LCA0LjExODU1LCA1LjEzODM3IiwgXAotICAgICAgICAgICIwLjI3MDA2MSwgMC4zMjEzMzIsIDAuNzgzMTQ1LCAxLjU1MDI5LCAyLjMyMTIxLCA0LjExODQyLCA1LjEzODE2IiwgXAotICAgICAgICAgICIwLjI3MDEwNiwgMC4zMjEyOTUsIDAuNzgzMTgxLCAxLjU1MDI3LCAyLjMyMjM2LCA0LjExODU2LCA1LjEzODM4IiwgXAotICAgICAgICAgICIwLjI3MDEwNiwgMC4zMjEyOTcsIDAuNzgzMTc3LCAxLjU1MDMyLCAyLjMyMjM5LCA0LjExODU1LCA1LjEzODI0IiwgXAotICAgICAgICAgICIwLjI3MDA2NiwgMC4zMjEyNzgsIDAuNzgzMTQ0LCAxLjU1MDMxLCAyLjMyMjA5LCA0LjExODU2LCA1LjEzODE5IiwgXAotICAgICAgICAgICIwLjI3MDEwNSwgMC4zMjEyOTcsIDAuNzgzMTgsIDEuNTUwMjUsIDIuMzIyMzYsIDQuMTE4NTYsIDUuMTM4MzgiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuNDU1OTM0LCAwLjQ4NTYwNywgMC43NTI4NjUsIDEuMTk4MzksIDEuNjQzNzUsIDIuNjgzMDUsIDMuMjc2OTgiLCBcCi0gICAgICAgICAgIjAuNDY3NzUsIDAuNDk3NDIzLCAwLjc2NDY4MiwgMS4yMTAxNCwgMS42NTU1MiwgMi42OTQ4NiwgMy4yODg3OSIsIFwKLSAgICAgICAgICAiMC40ODI2NzYsIDAuNTEyMzcxLCAwLjc3OTU3NiwgMS4yMjUyNywgMS42NzA0MiwgMi43MDk3MywgMy4zMDM3MiIsIFwKLSAgICAgICAgICAiMC40OTgyMDQsIDAuNTI3OSwgMC43OTUxNTYsIDEuMjQwNzUsIDEuNjg2MDMsIDIuNzI1MjMsIDMuMzE5MyIsIFwKLSAgICAgICAgICAiMC41MTM2NDQsIDAuNTQzMzQxLCAwLjgxMDU5NiwgMS4yNTYyLCAxLjcwMTUyLCAyLjc0MDY2LCAzLjMzNDczIiwgXAotICAgICAgICAgICIwLjUzNzk1NiwgMC41Njc2MjcsIDAuODM0ODg4LCAxLjI4MDM4LCAxLjcyNTczLCAyLjc2NTA3LCAzLjM1OSIsIFwKLSAgICAgICAgICAiMC41NTg4NjMsIDAuNTg4NTUzLCAwLjg1NTg0MSwgMS4zMDE0NCwgMS43NDY4NiwgMi43ODU4OCwgMy4zNzk5MyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMDg4OTcsIDAuMzY3NTA3LCAwLjg5NjY3OCwgMS43NzczNCwgMi42NTk1NCwgNC43MTY1OCwgNS44OTA1OCIsIFwKLSAgICAgICAgICAiMC4zMDg4MzcsIDAuMzY3MzIyLCAwLjg5NjY3NiwgMS43Nzc2MywgMi42NTk0OCwgNC43MTcwNCwgNS44OTA5NSIsIFwKLSAgICAgICAgICAiMC4zMDg4OTksIDAuMzY3MzQ0LCAwLjg5NjM2NCwgMS43NzY4NiwgMi42NTk0MSwgNC43MTY1LCA1Ljg5MDU2IiwgXAotICAgICAgICAgICIwLjMwODc4NCwgMC4zNjc1ODUsIDAuODk2NzA4LCAxLjc3NzIzLCAyLjY1OTg0LCA0LjcxNjk2LCA1Ljg5MDYzIiwgXAotICAgICAgICAgICIwLjMwODc5MywgMC4zNjc0MTYsIDAuODk2NzEsIDEuNzc3MjMsIDIuNjU4MDksIDQuNzE2NDMsIDUuODkwNjIiLCBcCi0gICAgICAgICAgIjAuMzA4ODM2LCAwLjM2NzQ4OSwgMC44OTY2NzcsIDEuNzc4NTcsIDIuNjU5NzYsIDQuNzE3MDEsIDUuODkwOTMiLCBcCi0gICAgICAgICAgIjAuMzA4ODY2LCAwLjM2NzUxOSwgMC44OTU3NjgsIDEuNzc2NjcsIDIuNjU4MzMsIDQuNzE2NDMsIDUuODkwNiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcHJlc2V0OwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMjc3ODYsIDAuMjUzMDE4LCAwLjQ4MDIxLCAwLjg1ODgwOSwgMS4yMzc0MywgMi4xMjEwNSwgMi42MjU4OCIsIFwKLSAgICAgICAgICAiMC4yMzk0NzgsIDAuMjY0NzA4LCAwLjQ5MTkwMSwgMC44NzA1LCAxLjI0OTEzLCAyLjEzMjc0LCAyLjYzNzU3IiwgXAotICAgICAgICAgICIwLjI1NDA5NCwgMC4yNzkzMjYsIDAuNTA2NTE2LCAwLjg4NTE1NywgMS4yNjM3NSwgMi4xNDczNSwgMi42NTIzNyIsIFwKLSAgICAgICAgICAiMC4yNjg4MzYsIDAuMjk0MDY2LCAwLjUyMTIzOSwgMC44OTk5NSwgMS4yNzg0OCwgMi4xNjIxLCAyLjY2Njg3IiwgXAotICAgICAgICAgICIwLjI4MzYzMywgMC4zMDg4NjcsIDAuNTM2MDU1LCAwLjkxNDczNywgMS4yOTMyNywgMi4xNzcwMiwgMi42ODE3NyIsIFwKLSAgICAgICAgICAiMC4zMDY4MTQsIDAuMzMyMDQ4LCAwLjU1OTIzNCwgMC45Mzc4NDQsIDEuMzE2NDYsIDIuMjAwMDksIDIuNzA0OTEiLCBcCi0gICAgICAgICAgIjAuMzI2MDg5LCAwLjM1MTMyMywgMC41Nzg1MTcsIDAuOTU3MjA3LCAxLjMzNTc0LCAyLjIxOTM2LCAyLjcyNDI1Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI2OTE1NiwgMC4zMjAzNjIsIDAuNzgyMDM2LCAxLjU1MTcyLCAyLjMyMTYyLCA0LjExNzkxLCA1LjEzNzM5IiwgXAotICAgICAgICAgICIwLjI2OTA3NiwgMC4zMjAzNTksIDAuNzgyMDM1LCAxLjU1MTcsIDIuMzIxNjUsIDQuMTE3OCwgNS4xMzczOCIsIFwKLSAgICAgICAgICAiMC4yNjkxNTIsIDAuMzIwMzYzLCAwLjc4MjAzNSwgMS41NTEzNCwgMi4zMjE1NCwgNC4xMTY5OSwgNS4xMzc0IiwgXAotICAgICAgICAgICIwLjI2OTE0OSwgMC4zMjAzNSwgMC43ODE4NDksIDEuNTUxMiwgMi4zMjE2NiwgNC4xMTY5MiwgNS4xMzczNyIsIFwKLSAgICAgICAgICAiMC4yNjkwNywgMC4zMjAzNjcsIDAuNzgyMDM0LCAxLjU1MTI0LCAyLjMyMTYyLCA0LjExNjY4LCA1LjEzNzI4IiwgXAotICAgICAgICAgICIwLjI2OTExNiwgMC4zMjAzNjYsIDAuNzgyMDM4LCAxLjU1MDEyLCAyLjMyMTY0LCA0LjExNjg5LCA1LjEzNzY4IiwgXAotICAgICAgICAgICIwLjI2OTA4MywgMC4zMjAzNzIsIDAuNzgyMDMyLCAxLjU1MTE5LCAyLjMyMTYsIDQuMTE2OTYsIDUuMTMzNjIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzMDI5LCAwLjAwMzAyOSwgMC4wMDMwMzIsIDAuMDAzMDMyLCAwLjAwMzAzMywgMC4wMDMwMzMsIDAuMDAzMDMzIiwgXAotICAgICAgICAgICIwLjAwMzAyMiwgMC4wMDMwMjMsIDAuMDAzMDI1LCAwLjAwMzAyNiwgMC4wMDMwMjcsIDAuMDAzMDI3LCAwLjAwMzAyNyIsIFwKLSAgICAgICAgICAiMC4wMDMwMTcsIDAuMDAzMDE3LCAwLjAwMzAyLCAwLjAwMzAyMSwgMC4wMDMwMjEsIDAuMDAzMDIxLCAwLjAwMzAyMSIsIFwKLSAgICAgICAgICAiMC4wMDMwMTMsIDAuMDAzMDEzLCAwLjAwMzAxNiwgMC4wMDMwMTcsIDAuMDAzMDE3LCAwLjAwMzAxNywgMC4wMDMwMTciLCBcCi0gICAgICAgICAgIjAuMDAzMDExLCAwLjAwMzAxMiwgMC4wMDMwMTQsIDAuMDAzMDE1LCAwLjAwMzAxNSwgMC4wMDMwMTYsIDAuMDAzMDE2IiwgXAotICAgICAgICAgICIwLjAwMzAwOSwgMC4wMDMwMDksIDAuMDAzMDEyLCAwLjAwMzAxMywgMC4wMDMwMTMsIDAuMDAzMDEzLCAwLjAwMzAxMyIsIFwKLSAgICAgICAgICAiMC4wMDMwMTEsIDAuMDAzMDEyLCAwLjAwMzAxNCwgMC4wMDMwMTUsIDAuMDAzMDE1LCAwLjAwMzAxNSwgMC4wMDMwMTYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDMxMiwgMC4wMDMxMiwgMC4wMDMxMTgsIDAuMDAzMTE1LCAwLjAwMzExNCwgMC4wMDMxMTIsIDAuMDAzMTEyIiwgXAotICAgICAgICAgICIwLjAwMzExNSwgMC4wMDMxMTUsIDAuMDAzMTEyLCAwLjAwMzEwOSwgMC4wMDMxMDgsIDAuMDAzMTA3LCAwLjAwMzEwNiIsIFwKLSAgICAgICAgICAiMC4wMDMxMDgsIDAuMDAzMTA4LCAwLjAwMzEwNiwgMC4wMDMxMDMsIDAuMDAzMTAxLCAwLjAwMzEwMSwgMC4wMDMxIiwgXAotICAgICAgICAgICIwLjAwMzEwNCwgMC4wMDMxMDQsIDAuMDAzMTAxLCAwLjAwMzA5OSwgMC4wMDMwOTcsIDAuMDAzMDk2LCAwLjAwMzA5NiIsIFwKLSAgICAgICAgICAiMC4wMDMxMDEsIDAuMDAzMTAxLCAwLjAwMzA5OSwgMC4wMDMwOTYsIDAuMDAzMDk1LCAwLjAwMzA5MywgMC4wMDMwOTMiLCBcCi0gICAgICAgICAgIjAuMDAzMDk2LCAwLjAwMzA5NiwgMC4wMDMwOTMsIDAuMDAzMDksIDAuMDAzMDg5LCAwLjAwMzA4OCwgMC4wMDMwODciLCBcCi0gICAgICAgICAgIjAuMDAzMDkzLCAwLjAwMzA5MywgMC4wMDMwOTEsIDAuMDAzMDg4LCAwLjAwMzA4NywgMC4wMDMwODUsIDAuMDAzMDg1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUk4iOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzI2MiwgMC4wMDMyNjMsIDAuMDAzMjY1LCAwLjAwMzI2NSwgMC4wMDMyNjUsIDAuMDAzMjY1LCAwLjAwMzI2NSIsIFwKLSAgICAgICAgICAiMC4wMDMyNTUsIDAuMDAzMjU2LCAwLjAwMzI1NywgMC4wMDMyNTgsIDAuMDAzMjU4LCAwLjAwMzI1OSwgMC4wMDMyNTkiLCBcCi0gICAgICAgICAgIjAuMDAzMjQ5LCAwLjAwMzI1LCAwLjAwMzI1MiwgMC4wMDMyNTMsIDAuMDAzMjUzLCAwLjAwMzI1MywgMC4wMDMyNTMiLCBcCi0gICAgICAgICAgIjAuMDAzMjQ0LCAwLjAwMzI0NSwgMC4wMDMyNDcsIDAuMDAzMjQ4LCAwLjAwMzI0OSwgMC4wMDMyNDksIDAuMDAzMjQ5IiwgXAotICAgICAgICAgICIwLjAwMzIzOSwgMC4wMDMyNCwgMC4wMDMyNDMsIDAuMDAzMjQ0LCAwLjAwMzI0NSwgMC4wMDMyNDUsIDAuMDAzMjQ1IiwgXAotICAgICAgICAgICIwLjAwMzIzMywgMC4wMDMyMzQsIDAuMDAzMjM4LCAwLjAwMzIzOSwgMC4wMDMyNCwgMC4wMDMyNCwgMC4wMDMyNCIsIFwKLSAgICAgICAgICAiMC4wMDMyMjgsIDAuMDAzMjI5LCAwLjAwMzIzMywgMC4wMDMyMzUsIDAuMDAzMjM1LCAwLjAwMzIzNiwgMC4wMDMyMzYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoc2NhbGFyKSB7Ci0gICAgICAgIHZhbHVlcygiMCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUk4pICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTQ0NzA4OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTM2OTY5OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTQ0NzA4OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDMzMSwgMC4wMDAzMywgMC4wMDAzMywgMC4wMDAzMywgMC4wMDAzMywgMC4wMDAzMywgMC4wMDAzMyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDMzNCwgMC4wMDAzMzIsIDAuMDAwMzMyLCAwLjAwMDMzMiwgMC4wMDAzMzIsIDAuMDAwMzMyLCAwLjAwMDMzMiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQmIVNFJiFTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fU0VfRVFfMF9BTl9TSV9FUV8wID09IDEnYjEiOwotICAgICAgZmFsbF9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMjI5NjA3LCAwLjI0MTMwMiwgMC4yNTU5MzEsIDAuMjcwNjY2LCAwLjI4NTQ4NCwgMC4zMDg2NjcsIDAuMzI4MDczIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogcmVjb3ZlcnlfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRCZTRSZTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fU0VfRVFfMV9BTl9TSV9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHJlY292ZXJ5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wNzUsIC0wLjA4NjI1LCAtMC4xMDUsIC0wLjExNzUsIC0wLjEzNjI1LCAtMC4xNTg3NSwgLTAuMTgiLCBcCi0gICAgICAgICAgIi0wLjA4MjUsIC0wLjA5Mzc1LCAtMC4xMTI1LCAtMC4xMzEyNSwgLTAuMTQzNzUsIC0wLjE2NjI1LCAtMC4xODc1IiwgXAotICAgICAgICAgICItMC4wODg3NSwgLTAuMTA2MjUsIC0wLjExODc1LCAtMC4xMzc1LCAtMC4xNSwgLTAuMTc4NzUsIC0wLjIiLCBcCi0gICAgICAgICAgIi0wLjA5NSwgLTAuMTA2MjUsIC0wLjEyNSwgLTAuMTM3NSwgLTAuMTU2MjUsIC0wLjE3ODc1LCAtMC4yIiwgXAotICAgICAgICAgICItMC4wODg3NSwgLTAuMTA2MjUsIC0wLjExODc1LCAtMC4xMzc1LCAtMC4xNSwgLTAuMTc4NzUsIC0wLjIiLCBcCi0gICAgICAgICAgIi0wLjA3ODc1LCAtMC4wOSwgLTAuMTAyNSwgLTAuMTIxMjUsIC0wLjE0LCAtMC4xNjI1LCAtMC4xODM3NSIsIFwKLSAgICAgICAgICAiLTAuMDU3NSwgLTAuMDY4NzUsIC0wLjA4MTI1LCAtMC4xLCAtMC4xMTg3NSwgLTAuMTQxMjUsIC0wLjE2ODc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogcmVtb3ZhbF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEJlNFJlNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9TRV9FUV8xX0FOX1NJX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQocmVtb3ZhbF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTg3NSwgMC4xMywgMC4xNDI1LCAwLjE2MTI1LCAwLjE3Mzc1LCAwLjIwMjUsIDAuMjE3NSIsIFwKLSAgICAgICAgICAiMC4xMjYyNSwgMC4xMzc1LCAwLjE1LCAwLjE2ODc1LCAwLjE4MTI1LCAwLjIxLCAwLjIyNSIsIFwKLSAgICAgICAgICAiMC4xMzI1LCAwLjE1LCAwLjE2MjUsIDAuMTc1LCAwLjE5Mzc1LCAwLjIxNjI1LCAwLjIzNzUiLCBcCi0gICAgICAgICAgIjAuMTQ1LCAwLjE1NjI1LCAwLjE3NSwgMC4xODc1LCAwLjIwNjI1LCAwLjIyODc1LCAwLjI1IiwgXAotICAgICAgICAgICIwLjE1NzUsIDAuMTY4NzUsIDAuMTgxMjUsIDAuMiwgMC4yMTI1LCAwLjIzNSwgMC4yNTYyNSIsIFwKLSAgICAgICAgICAiMC4xNzI1LCAwLjE4Mzc1LCAwLjE5NjI1LCAwLjIxNSwgMC4yMjc1LCAwLjI1LCAwLjI3MTI1IiwgXAotICAgICAgICAgICIwLjE4MjUsIDAuMTkzNzUsIDAuMjEyNSwgMC4yMjUsIDAuMjM3NSwgMC4yNjYyNSwgMC4yODc1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTRSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxMzEwNDg7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxMzA5OTk7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxMzEwNDg7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzNTIyLCAwLjAwMzUxMSwgMC4wMDM1MDUsIDAuMDAzNTAyLCAwLjAwMzUwMSwgMC4wMDM0OTgsIDAuMDAzNDk5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA0NjAxLCAwLjAwNDU4MywgMC4wMDQ1NzEsIDAuMDA0NTY0LCAwLjAwNDU1OCwgMC4wMDQ1NTIsIDAuMDA0NTUxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlJOIjsKLSAgICAgIHNkZl9jb25kIDogIlJOID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAzNzUsIC0wLjAyNjI1LCAtMC4wMTM3NSwgMC4wMDUsIDAuMDE3NSwgMC4wNCwgMC4wNTUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAxMjUsIDAuMDA2MjUsIDAuMDI4NzUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIi0wLjA2NzUsIC0wLjA1NjI1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAxMjUsIDAuMDEsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjA4LCAtMC4wNjg3NSwgLTAuMDU2MjUsIC0wLjAzNzUsIC0wLjAyNSwgLTAuMDAyNSwgMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wOTI1LCAtMC4wODEyNSwgLTAuMDY4NzUsIC0wLjA1NjI1LCAtMC4wMzc1LCAtMC4wMTUsIDAiLCBcCi0gICAgICAgICAgIi0wLjExNSwgLTAuMTAzNzUsIC0wLjA5MTI1LCAtMC4wNzI1LCAtMC4wNiwgLTAuMDM3NSwgLTAuMDIyNSIsIFwKLSAgICAgICAgICAiLTAuMTMsIC0wLjExODc1LCAtMC4xMDYyNSwgLTAuMDkzNzUsIC0wLjA4MTI1LCAtMC4wNTg3NSwgLTAuMDM3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAwNjI1LCAwLjAwNSwgMC4wMjM3NSwgMC4wMzYyNSwgMC4wNDg3NSwgMC4wNzEyNSwgMC4wODYyNSIsIFwKLSAgICAgICAgICAiLTAuMDE3NSwgLTAuMDA2MjUsIDAuMDEyNSwgMC4wMjUsIDAuMDM3NSwgMC4wNiwgMC4wODEyNSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAxODc1LCAwLCAwLjAxMjUsIDAuMDI1LCAwLjA0NzUsIDAuMDY4NzUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzMTI1LCAtMC4wMTI1LCAwLCAwLjAxMjUsIDAuMDM1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA0Mzc1LCAtMC4wMjUsIC0wLjAxMjUsIDAsIDAuMDIyNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDcxMjUsIC0wLjA2LCAtMC4wNDc1LCAtMC4wMjg3NSwgLTAuMDE2MjUsIDAuMDA2MjUsIDAuMDIxMjUiLCBcCi0gICAgICAgICAgIi0wLjA4LCAtMC4wNjg3NSwgLTAuMDYyNSwgLTAuMDQzNzUsIC0wLjAzMTI1LCAtMC4wMTUsIDAuMDA2MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlJOIjsKLSAgICAgIHNkZl9jb25kIDogIlJOID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIwNjI1LCAwLjE5NSwgMC4xNzYyNSwgMC4xNjM3NSwgMC4xNTEyNSwgMC4xMzUsIDAuMTIiLCBcCi0gICAgICAgICAgIjAuMjE3NSwgMC4yMDYyNSwgMC4xODc1LCAwLjE3NSwgMC4xNjI1LCAwLjE0NjI1LCAwLjEzMTI1IiwgXAotICAgICAgICAgICIwLjIzLCAwLjIxODc1LCAwLjIsIDAuMTg3NSwgMC4xNzUsIDAuMTU4NzUsIDAuMTQzNzUiLCBcCi0gICAgICAgICAgIjAuMjQyNSwgMC4yMzEyNSwgMC4yMTI1LCAwLjIsIDAuMTg3NSwgMC4xNzEyNSwgMC4xNTYyNSIsIFwKLSAgICAgICAgICAiMC4yNTUsIDAuMjQzNzUsIDAuMjMxMjUsIDAuMjEyNSwgMC4yLCAwLjE4Mzc1LCAwLjE2ODc1IiwgXAotICAgICAgICAgICIwLjI3NzUsIDAuMjY2MjUsIDAuMjUzNzUsIDAuMjM1LCAwLjIyMjUsIDAuMjA2MjUsIDAuMTkxMjUiLCBcCi0gICAgICAgICAgIjAuMjk4NzUsIDAuMjg3NSwgMC4yNjg3NSwgMC4yNTYyNSwgMC4yNDM3NSwgMC4yMjc1LCAwLjIxMjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMzc1LCAwLjIyNjI1LCAwLjIwNzUsIDAuMTk1LCAwLjE4MjUsIDAuMTY2MjUsIDAuMTUxMjUiLCBcCi0gICAgICAgICAgIjAuMjQ4NzUsIDAuMjM3NSwgMC4yMTg3NSwgMC4yMDYyNSwgMC4xOTM3NSwgMC4xNzc1LCAwLjE2MjUiLCBcCi0gICAgICAgICAgIjAuMjYxMjUsIDAuMjUsIDAuMjM3NSwgMC4yMTg3NSwgMC4yMDYyNSwgMC4xOSwgMC4xNzUiLCBcCi0gICAgICAgICAgIjAuMjczNzUsIDAuMjYyNSwgMC4yNSwgMC4yMzc1LCAwLjIyNSwgMC4yMDI1LCAwLjE4NzUiLCBcCi0gICAgICAgICAgIjAuMjkyNSwgMC4yNzUsIDAuMjYyNSwgMC4yNSwgMC4yMzc1LCAwLjIxNSwgMC4yMDYyNSIsIFwKLSAgICAgICAgICAiMC4zMDg3NSwgMC4yOTc1LCAwLjI3ODc1LCAwLjI2NjI1LCAwLjI1Mzc1LCAwLjIzNzUsIDAuMjIyNSIsIFwKLSAgICAgICAgICAiMC4zMjM3NSwgMC4zMTI1LCAwLjI5Mzc1LCAwLjI4MTI1LCAwLjI2ODc1LCAwLjI0NjI1LCAwLjIzNzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFNJKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2MDIwNzY7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNTk5ODg0OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDYwMjA3NjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDIzNTYsIDAuMDAyMzQ2LCAwLjAwMjM0MSwgMC4wMDIzMzgsIDAuMDAyMzM1LCAwLjAwMjMzMiwgMC4wMDIzMjkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDM3MzIsIDAuMDAzNzI3LCAwLjAwMzcyNSwgMC4wMDM3MjMsIDAuMDAzNzIyLCAwLjAwMzcxOSwgMC4wMDM3MTkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiUk4mU0UiOwotICAgICAgc2RmX2NvbmQgOiAiUk5fRVFfMV9BTl9TRV9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjEzNzUsIC0wLjEyNjI1LCAtMC4xMTM3NSwgLTAuMTA3NSwgLTAuMDk1LCAtMC4wNzg3NSwgLTAuMDYzNzUiLCBcCi0gICAgICAgICAgIi0wLjE0ODc1LCAtMC4xMzc1LCAtMC4xMjUsIC0wLjExODc1LCAtMC4xMDYyNSwgLTAuMDksIC0wLjA3NSIsIFwKLSAgICAgICAgICAiLTAuMTYxMjUsIC0wLjE1NjI1LCAtMC4xNDM3NSwgLTAuMTMxMjUsIC0wLjExODc1LCAtMC4xMDI1LCAtMC4wOTM3NSIsIFwKLSAgICAgICAgICAiLTAuMTgsIC0wLjE2ODc1LCAtMC4xNTYyNSwgLTAuMTQzNzUsIC0wLjEzMTI1LCAtMC4xMTUsIC0wLjEwNjI1IiwgXAotICAgICAgICAgICItMC4xOTI1LCAtMC4xODEyNSwgLTAuMTY4NzUsIC0wLjE1NjI1LCAtMC4xNSwgLTAuMTMzNzUsIC0wLjExODc1IiwgXAotICAgICAgICAgICItMC4yMTUsIC0wLjIwMzc1LCAtMC4xOTEyNSwgLTAuMTc4NzUsIC0wLjE2NjI1LCAtMC4xNTYyNSwgLTAuMTQxMjUiLCBcCi0gICAgICAgICAgIi0wLjIzLCAtMC4yMjUsIC0wLjIxMjUsIC0wLjIsIC0wLjE4NzUsIC0wLjE3MTI1LCAtMC4xNjI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDE4NzUsIC0wLjAwNzUsIDAuMDExMjUsIDAuMDIzNzUsIDAuMDM2MjUsIDAuMDU4NzUsIDAuMDczNzUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAuMDEyNSwgMC4wMjUsIDAuMDQ3NSwgMC4wNjI1IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIDAsIDAuMDEyNSwgMC4wMzUsIDAuMDUiLCBcCi0gICAgICAgICAgIi0wLjA1NSwgLTAuMDQzNzUsIC0wLjAzMTI1LCAtMC4wMTI1LCAwLCAwLjAyMjUsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDY3NSwgLTAuMDU2MjUsIC0wLjAzNzUsIC0wLjAyNSwgLTAuMDEyNSwgMC4wMSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDgzNzUsIC0wLjA3MjUsIC0wLjA2LCAtMC4wNDc1LCAtMC4wMjg3NSwgLTAuMDA2MjUsIDAuMDA4NzUiLCBcCi0gICAgICAgICAgIi0wLjA5ODc1LCAtMC4wODc1LCAtMC4wNzUsIC0wLjA2MjUsIC0wLjA0Mzc1LCAtMC4wMjc1LCAtMC4wMDYyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiUk4mU0UiOwotICAgICAgc2RmX2NvbmQgOiAiUk5fRVFfMV9BTl9TRV9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIxODc1LCAwLjIwNzUsIDAuMTg4NzUsIDAuMTc2MjUsIDAuMTYzNzUsIDAuMTQ3NSwgMC4xMzI1IiwgXAotICAgICAgICAgICIwLjIzLCAwLjIxODc1LCAwLjIsIDAuMTg3NSwgMC4xNzUsIDAuMTU4NzUsIDAuMTQzNzUiLCBcCi0gICAgICAgICAgIjAuMjQyNSwgMC4yMzEyNSwgMC4yMTg3NSwgMC4yLCAwLjE4NzUsIDAuMTcxMjUsIDAuMTU2MjUiLCBcCi0gICAgICAgICAgIjAuMjU1LCAwLjI0Mzc1LCAwLjIzMTI1LCAwLjIxMjUsIDAuMiwgMC4xODM3NSwgMC4xNjg3NSIsIFwKLSAgICAgICAgICAiMC4yNzM3NSwgMC4yNTYyNSwgMC4yNDM3NSwgMC4yMzEyNSwgMC4yMTg3NSwgMC4xOTYyNSwgMC4xODc1IiwgXAotICAgICAgICAgICIwLjI5NjI1LCAwLjI3ODc1LCAwLjI2NjI1LCAwLjI1Mzc1LCAwLjI0MTI1LCAwLjIxODc1LCAwLjIxIiwgXAotICAgICAgICAgICIwLjMxMTI1LCAwLjMsIDAuMjg3NSwgMC4yNjg3NSwgMC4yNTYyNSwgMC4yNCwgMC4yMjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMzEyNSwgMC4xMiwgMC4xMDEyNSwgMC4wODg3NSwgMC4wNywgMC4wNDc1LCAwLjAyNjI1IiwgXAotICAgICAgICAgICIwLjE0MjUsIDAuMTMxMjUsIDAuMTE4NzUsIDAuMSwgMC4wODEyNSwgMC4wNTg3NSwgMC4wMzc1IiwgXAotICAgICAgICAgICIwLjE1NSwgMC4xNDM3NSwgMC4xMzEyNSwgMC4xMTI1LCAwLjA5Mzc1LCAwLjA3MTI1LCAwLjA1IiwgXAotICAgICAgICAgICIwLjE2NzUsIDAuMTU2MjUsIDAuMTQzNzUsIDAuMTI1LCAwLjExMjUsIDAuMDgzNzUsIDAuMDYyNSIsIFwKLSAgICAgICAgICAiMC4xOCwgMC4xNjg3NSwgMC4xNTYyNSwgMC4xMzc1LCAwLjExODc1LCAwLjA5NjI1LCAwLjA3NSIsIFwKLSAgICAgICAgICAiMC4yMDI1LCAwLjE5MTI1LCAwLjE3MjUsIDAuMTYsIDAuMTQxMjUsIDAuMTE4NzUsIDAuMDk3NSIsIFwKLSAgICAgICAgICAiMC4yMTc1LCAwLjIwNjI1LCAwLjE5Mzc1LCAwLjE3NSwgMC4xNTYyNSwgMC4xMzM3NSwgMC4xMTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBTREZGU0hRWDEgKgotICogLS0tLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChTREZGU0hRWDEpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4zNTg4NDU7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgZmYgKE4zMCxRQklOVCkgewotICAgIG5leHRfc3RhdGUgOiAiKChTRSBTSSkgKyAoIVNFIEQpKSI7Ci0gICAgY2xvY2tlZF9vbiA6ICJDSyI7Ci0gICAgcHJlc2V0IDogIighU04pIjsKLSAgfQotICBwaW4oQ0spICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDU5NDcyNzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA1OTQ0MDY7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNTk0NzI3OwotICAgIGNsb2NrIDogdHJ1ZTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDI1MDcsIDAuMDAyNDk3LCAwLjAwMjQ4NywgMC4wMDI0ODEsIDAuMDAyNDc2LCAwLjAwMjQ2OSwgMC4wMDI0NjYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDYzMTksIDAuMDA2MzEyLCAwLjAwNjMwMywgMC4wMDYyOTcsIDAuMDA2Mjk2LCAwLjAwNjI5NywgMC4wMDYzMDIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFEJiFTRSYhU0kmU04iOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1NFX0VRXzBfQU5fU0lfRVFfMF9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMzI2MzEsIDAuMzM4MTYzLCAwLjM1MzQ0NSwgMC4zNjg4ODQsIDAuMzg0MzI3LCAwLjQwODc5MiwgMC40Mjk5MTMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjIyNjM2OSwgMC4yMzc2MjUsIDAuMjUyNjQ0LCAwLjI2NzUxNiwgMC4yODIzNjUsIDAuMzA1NjgyLCAwLjMyNTUzMyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwODIwNTI1OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDgxNjY2NjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA4MjA1MjU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzNTgzLCAwLjAwMzU2MywgMC4wMDM1NTQsIDAuMDAzNTQ2LCAwLjAwMzU0MSwgMC4wMDM1MzUsIDAuMDAzNTMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDUwMzIsIDAuMDA1MDIyLCAwLjAwNTAxNywgMC4wMDUwMTMsIDAuMDA1MDEsIDAuMDA1MDA2LCAwLjAwNTAwNCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhU0UmU04iOwotICAgICAgc2RmX2NvbmQgOiAiU0VfRVFfMF9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjEwNjI1LCAtMC4wOTUsIC0wLjA4MjUsIC0wLjA3LCAtMC4wNjM3NSwgLTAuMDQ3NSwgLTAuMDMyNSIsIFwKLSAgICAgICAgICAiLTAuMTE3NSwgLTAuMTA2MjUsIC0wLjA5Mzc1LCAtMC4wODEyNSwgLTAuMDc1LCAtMC4wNTg3NSwgLTAuMDQzNzUiLCBcCi0gICAgICAgICAgIi0wLjEzLCAtMC4xMTg3NSwgLTAuMTA2MjUsIC0wLjEsIC0wLjA4NzUsIC0wLjA3MTI1LCAtMC4wNTYyNSIsIFwKLSAgICAgICAgICAiLTAuMTQyNSwgLTAuMTMxMjUsIC0wLjEyNSwgLTAuMTEyNSwgLTAuMSwgLTAuMDgzNzUsIC0wLjA2ODc1IiwgXAotICAgICAgICAgICItMC4xNTUsIC0wLjE1LCAtMC4xMzc1LCAtMC4xMjUsIC0wLjExMjUsIC0wLjA5NjI1LCAtMC4wODEyNSIsIFwKLSAgICAgICAgICAiLTAuMTc3NSwgLTAuMTY2MjUsIC0wLjE1Mzc1LCAtMC4xNDc1LCAtMC4xMzUsIC0wLjExODc1LCAtMC4xMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMTk4NzUsIC0wLjE4NzUsIC0wLjE3NSwgLTAuMTYyNSwgLTAuMTUsIC0wLjEzMzc1LCAtMC4xMTg3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAwNjI1LCAwLjAwNSwgMC4wMjM3NSwgMC4wMzYyNSwgMC4wNDg3NSwgMC4wNzEyNSwgMC4wOTI1IiwgXAotICAgICAgICAgICItMC4wMTc1LCAtMC4wMDYyNSwgMC4wMTI1LCAwLjAyNSwgMC4wMzc1LCAwLjA2LCAwLjA4MTI1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLjAxMjUsIDAuMDI1LCAwLjA0NzUsIDAuMDY4NzUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgMCwgMC4wMTI1LCAwLjAzNSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNDM3NSwgLTAuMDI1LCAtMC4wMTI1LCAwLCAwLjAyMjUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIi0wLjA3MTI1LCAtMC4wNiwgLTAuMDQ3NSwgLTAuMDM1LCAtMC4wMTYyNSwgMC4wMDYyNSwgMC4wMjEyNSIsIFwKLSAgICAgICAgICAiLTAuMDg2MjUsIC0wLjA3NSwgLTAuMDYyNSwgLTAuMDUsIC0wLjAzMTI1LCAtMC4wMDg3NSwgMC4wMDYyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIVNFJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIlNFX0VRXzBfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNjg3NSwgMC4xNTc1LCAwLjE0NSwgMC4xMjYyNSwgMC4xMTM3NSwgMC4wOTc1LCAwLjA4MjUiLCBcCi0gICAgICAgICAgIjAuMTgsIDAuMTY4NzUsIDAuMTU2MjUsIDAuMTM3NSwgMC4xMjUsIDAuMTA4NzUsIDAuMDkzNzUiLCBcCi0gICAgICAgICAgIjAuMTkyNSwgMC4xODEyNSwgMC4xNjg3NSwgMC4xNTYyNSwgMC4xNDM3NSwgMC4xMjEyNSwgMC4xMTI1IiwgXAotICAgICAgICAgICIwLjIxMTI1LCAwLjE5Mzc1LCAwLjE4MTI1LCAwLjE2ODc1LCAwLjE1NjI1LCAwLjEzMzc1LCAwLjEyNSIsIFwKLSAgICAgICAgICAiMC4yMjM3NSwgMC4yMDYyNSwgMC4xOTM3NSwgMC4xODEyNSwgMC4xNjg3NSwgMC4xNTI1LCAwLjEzNzUiLCBcCi0gICAgICAgICAgIjAuMjQ2MjUsIDAuMjI4NzUsIDAuMjE2MjUsIDAuMjAzNzUsIDAuMTkxMjUsIDAuMTY4NzUsIDAuMTYiLCBcCi0gICAgICAgICAgIjAuMjYxMjUsIDAuMjUsIDAuMjMxMjUsIDAuMjE4NzUsIDAuMjA2MjUsIDAuMTksIDAuMTc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTM3NSwgMC4xMjYyNSwgMC4xMTM3NSwgMC4wOTUsIDAuMDc2MjUsIDAuMDUzNzUsIDAuMDMyNSIsIFwKLSAgICAgICAgICAiMC4xNDg3NSwgMC4xMzc1LCAwLjEyNSwgMC4xMDYyNSwgMC4wODc1LCAwLjA2NSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4xNjc1LCAwLjE1LCAwLjEzNzUsIDAuMTE4NzUsIDAuMSwgMC4wNzc1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICIwLjE4LCAwLjE2MjUsIDAuMTUsIDAuMTMxMjUsIDAuMTEyNSwgMC4wOSwgMC4wNjg3NSIsIFwKLSAgICAgICAgICAiMC4xODYyNSwgMC4xNzUsIDAuMTYyNSwgMC4xNDM3NSwgMC4xMjUsIDAuMTAyNSwgMC4wODEyNSIsIFwKLSAgICAgICAgICAiMC4yMDg3NSwgMC4xOTc1LCAwLjE3ODc1LCAwLjE2NjI1LCAwLjE0NzUsIDAuMTI1LCAwLjEwMzc1IiwgXAotICAgICAgICAgICIwLjIyMzc1LCAwLjIxMjUsIDAuMiwgMC4xODEyNSwgMC4xNjI1LCAwLjE0LCAwLjExODc1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihRKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMTI0NzY7Ci0gICAgZnVuY3Rpb24gOiAiTjMwIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBub25fdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJpc2luZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yNjI2NjEsIDAuMzA1NDY0LCAwLjU0NzY5OSwgMC43NjE0NTYsIDEuMDQ2MzksIDEuNjE2MDksIDEuOTcyMjYiLCBcCi0gICAgICAgICAgIjAuMjc0NjU1LCAwLjMxNzQ1NCwgMC41NTk2ODksIDAuNzczNDAxLCAxLjA1ODM4LCAxLjYyODE3LCAxLjk4NDI5IiwgXAotICAgICAgICAgICIwLjI4OTU0OSwgMC4zMzIzNTIsIDAuNTc0NTk4LCAwLjc4ODMzMiwgMS4wNzMyLCAxLjY0MzA3LCAxLjk5OTI0IiwgXAotICAgICAgICAgICIwLjMwNTAzLCAwLjM0NzgzMywgMC41OTAwNjksIDAuODAzNzkyLCAxLjA4ODc2LCAxLjY1ODU0LCAyLjAxNDY4IiwgXAotICAgICAgICAgICIwLjMyMDUwNiwgMC4zNjMzMDgsIDAuNjA1NTQzLCAwLjgxOTI1LCAxLjEwNDIyLCAxLjY3NDAxLCAyLjAzMDE1IiwgXAotICAgICAgICAgICIwLjM0NDcwMiwgMC4zODc1MDUsIDAuNjI5NzUsIDAuODQzNDg3LCAxLjEyODM1LCAxLjY5ODIyLCAyLjA1NDM4IiwgXAotICAgICAgICAgICIwLjM2NTg0OSwgMC40MDg2NTIsIDAuNjUwODg4LCAwLjg2NDU3NywgMS4xNDk1NywgMS43MTkzNSwgMi4wNzU0OSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNTg0NTksIDAuMjQ0NjM4LCAwLjczNjgxNiwgMS4xNzQzNCwgMS43NTU5NCwgMi45MTg0NSwgMy42Mzk3NyIsIFwKLSAgICAgICAgICAiMC4xNTg0NDMsIDAuMjQ0NjMyLCAwLjczNjgyMiwgMS4xNzI0NiwgMS43NTU4OSwgMi45MTI4OCwgMy42NDA1OSIsIFwKLSAgICAgICAgICAiMC4xNTgzMjQsIDAuMjQzOTk3LCAwLjczNjgyMSwgMS4xNzQzNSwgMS43NTU2MiwgMi45MTI3OSwgMy42NDYxIiwgXAotICAgICAgICAgICIwLjE1ODQ1MywgMC4yNDQ2MzIsIDAuNzM3ODU5LCAxLjE3NDM2LCAxLjc1NTkyLCAyLjkxMjg5LCAzLjY0MDUxIiwgXAotICAgICAgICAgICIwLjE1ODQ0NSwgMC4yNDQ2MzQsIDAuNzM2ODE2LCAxLjE3NDE1LCAxLjc1NTkzLCAyLjkxMjQ0LCAzLjY0MDUzIiwgXAotICAgICAgICAgICIwLjE1ODMxOSwgMC4yNDM5ODksIDAuNzM2NzcyLCAxLjE3NDM1LCAxLjc1NTYyLCAyLjkxMjgsIDMuNjQ2MDEiLCBcCi0gICAgICAgICAgIjAuMTU4NDYxLCAwLjI0NDYzNywgMC43MzY4MzEsIDEuMTc0MDQsIDEuNzU1OTIsIDIuOTEyMDIsIDMuNjQwMjciKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzI2MzI5LCAwLjM3NTgxMywgMC42NTU2MzksIDAuOTAyNTkxLCAxLjIzMTY0LCAxLjg4OTg5LCAyLjMwMTI3IiwgXAotICAgICAgICAgICIwLjMzODE2MywgMC4zODc2MzIsIDAuNjY3NDc4LCAwLjkxNDMxOSwgMS4yNDM0NiwgMS45MDE3NSwgMi4zMTMwMSIsIFwKLSAgICAgICAgICAiMC4zNTM0NDUsIDAuNDAyOTExLCAwLjY4Mjc1NywgMC45Mjk1OTYsIDEuMjU4NzQsIDEuOTE3MDIsIDIuMzI4MjgiLCBcCi0gICAgICAgICAgIjAuMzY4ODg0LCAwLjQxODM1NCwgMC42OTgxOTYsIDAuOTQ1MDczLCAxLjI3NDE4LCAxLjkzMjQ1LCAyLjM0Mzk2IiwgXAotICAgICAgICAgICIwLjM4NDMyNywgMC40MzM3OTUsIDAuNzEzNjIyLCAwLjk2MDQ5OCwgMS4yODk2NSwgMS45NDgwNiwgMi4zNTk1MSIsIFwKLSAgICAgICAgICAiMC40MDg3OTIsIDAuNDU4MjUzLCAwLjczODA5MiwgMC45ODUsIDEuMzE0MDksIDEuOTcyMjgsIDIuMzgzODIiLCBcCi0gICAgICAgICAgIjAuNDI5OTEzLCAwLjQ3OTM4NSwgMC43NTkyMzIsIDEuMDA2MDksIDEuMzM1MjEsIDEuOTkzNTEsIDIuNDA0ODUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTc3NTI2LCAwLjI3NDcsIDAuODMxNzI2LCAxLjMyMzUyLCAxLjk3NTQ5LCAzLjI4OTU0LCA0LjEwNDU3IiwgXAotICAgICAgICAgICIwLjE3NzUyNiwgMC4yNzQ2NDEsIDAuODMxNjEzLCAxLjMyMzUyLCAxLjk3NDQ4LCAzLjI4MzU4LCA0LjEwNDU1IiwgXAotICAgICAgICAgICIwLjE3NzUwMSwgMC4yNzQ0OTIsIDAuODMxNTgyLCAxLjMyMzU0LCAxLjk3NDUzLCAzLjI4MzU1LCA0LjEwNDU5IiwgXAotICAgICAgICAgICIwLjE3NzUwNywgMC4yNzQ2NzMsIDAuODMxNjc0LCAxLjMyMzUzLCAxLjk3NDc2LCAzLjI4MTA0LCA0LjEwNDM2IiwgXAotICAgICAgICAgICIwLjE3NzQ3OSwgMC4yNzQ0ODgsIDAuODMxNTcyLCAxLjMyMTEyLCAxLjk3Nzg2LCAzLjI3ODUsIDQuMTAyMTQiLCBcCi0gICAgICAgICAgIjAuMTc3NDgxLCAwLjI3NDY3MywgMC44MzE3NjYsIDEuMzE5NTIsIDEuOTc1MjQsIDMuMjg5NDIsIDQuMTAzODEiLCBcCi0gICAgICAgICAgIjAuMTc3NTI1LCAwLjI3NDgzMSwgMC44MzE1NCwgMS4zMjA4NywgMS45NzQxMSwgMy4yODYwNywgNC4xMDIwMSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcHJlc2V0OwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMjEyNjMsIDAuMjY0MDgzLCAwLjUwNjMyMiwgMC43MjAwNTQsIDEuMDA0OTIsIDEuNTc0NzMsIDEuOTMwODYiLCBcCi0gICAgICAgICAgIjAuMjMyODU4LCAwLjI3NTYzMSwgMC41MTc4NzMsIDAuNzMxNTk2LCAxLjAxNjQ2LCAxLjU4NjI4LCAxLjk0MjM5IiwgXAotICAgICAgICAgICIwLjI0NzQ2NCwgMC4yOTAyODMsIDAuNTMyNTE1LCAwLjc0NjIxLCAxLjAzMTExLCAxLjYwMDkzLCAxLjk1NzE2IiwgXAotICAgICAgICAgICIwLjI2MTczNywgMC4zMDQ1NTcsIDAuNTQ2NzkyLCAwLjc2MDUyOCwgMS4wNDUzOSwgMS42MTUyLCAxLjk3MTM0IiwgXAotICAgICAgICAgICIwLjI3NjI3NiwgMC4zMTkwOTUsIDAuNTYxMzMxLCAwLjc3NTA2OCwgMS4wNTk5MiwgMS42Mjk3NCwgMS45ODU4OSIsIFwKLSAgICAgICAgICAiMC4yOTg5MDksIDAuMzQxNzI4LCAwLjU4Mzk2MywgMC43OTc2NzUsIDEuMDgyNTUsIDEuNjUyMzcsIDIuMDA4NyIsIFwKLSAgICAgICAgICAiMC4zMTc5OTIsIDAuMzYwNzY3LCAwLjYwMzAxNSwgMC44MTY3MzYsIDEuMTAxNiwgMS42NzE1LCAyLjAyNzUzIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE1ODE1OSwgMC4yNDQ0NSwgMC43Mzc3NywgMS4xNzQwMywgMS43NTI5NSwgMi45MTkyOSwgMy42NDUzMiIsIFwKLSAgICAgICAgICAiMC4xNTgxNjEsIDAuMjQ0NDU2LCAwLjczODAxLCAxLjE3NDAyLCAxLjc1MzAzLCAyLjkxOTQxLCAzLjY0NjA1IiwgXAotICAgICAgICAgICIwLjE1ODE1NSwgMC4yNDQ0NCwgMC43Mzc5MjIsIDEuMTcyNjMsIDEuNzUyOTcsIDIuOTE4ODksIDMuNjQ1MjUiLCBcCi0gICAgICAgICAgIjAuMTU4MTUxLCAwLjI0NDQ0NywgMC43Mzc5MjQsIDEuMTc0LCAxLjc1Mjk0LCAyLjkxOTM4LCAzLjY0Mzg4IiwgXAotICAgICAgICAgICIwLjE1Nzk0NCwgMC4yNDM5MDEsIDAuNzM4MDM2LCAxLjE3Mzk5LCAxLjc1NTUsIDIuOTE0MzgsIDMuNjQ2MzUiLCBcCi0gICAgICAgICAgIjAuMTU3OTc1LCAwLjI0MzkxLCAwLjczNzkxNSwgMS4xNzIzNywgMS43NTU4OCwgMi45MTg3MiwgMy42NDU5NyIsIFwKLSAgICAgICAgICAiMC4xNTgxNTMsIDAuMjQ0NDMxLCAwLjczNzY1MiwgMS4xNzQsIDEuNzU1MTYsIDIuOTE4OTcsIDMuNjQ1MzQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1ODU0LCAwLjAwNTg1OCwgMC4wMDU4NjMsIDAuMDA1ODY0LCAwLjAwNTg2NiwgMC4wMDU4NjYsIDAuMDA1ODY1IiwgXAotICAgICAgICAgICIwLjAwNTg0MywgMC4wMDU4NDcsIDAuMDA1ODUyLCAwLjAwNTg1MywgMC4wMDU4NTMsIDAuMDA1ODU0LCAwLjAwNTg1NCIsIFwKLSAgICAgICAgICAiMC4wMDU4MywgMC4wMDU4MzUsIDAuMDA1ODQxLCAwLjAwNTg0LCAwLjAwNTg0MSwgMC4wMDU4NDEsIDAuMDA1ODQxIiwgXAotICAgICAgICAgICIwLjAwNTgyMiwgMC4wMDU4MjYsIDAuMDA1ODMxLCAwLjAwNTgzMiwgMC4wMDU4MzIsIDAuMDA1ODMyLCAwLjAwNTgzMyIsIFwKLSAgICAgICAgICAiMC4wMDU4MTUsIDAuMDA1ODE5LCAwLjAwNTgyNCwgMC4wMDU4MjUsIDAuMDA1ODI2LCAwLjAwNTgyNiwgMC4wMDU4MjYiLCBcCi0gICAgICAgICAgIjAuMDA1ODAyLCAwLjAwNTgwNiwgMC4wMDU4MTEsIDAuMDA1ODEyLCAwLjAwNTgxMywgMC4wMDU4MTIsIDAuMDA1ODEzIiwgXAotICAgICAgICAgICIwLjAwNTc5NiwgMC4wMDU4LCAwLjAwNTgwNSwgMC4wMDU4MDYsIDAuMDA1ODA3LCAwLjAwNTgwNywgMC4wMDU4MDgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDU3MDcsIDAuMDA1NzEzLCAwLjAwNTcyMSwgMC4wMDU3MjMsIDAuMDA1NzI0LCAwLjAwNTcyNSwgMC4wMDU3MjUiLCBcCi0gICAgICAgICAgIjAuMDA1Njk1LCAwLjAwNTcwMSwgMC4wMDU3MSwgMC4wMDU3MTEsIDAuMDA1NzEyLCAwLjAwNTcxMywgMC4wMDU3MTMiLCBcCi0gICAgICAgICAgIjAuMDA1Njg0LCAwLjAwNTY5LCAwLjAwNTY5OCwgMC4wMDU3LCAwLjAwNTcwMSwgMC4wMDU3MDEsIDAuMDA1NzAyIiwgXAotICAgICAgICAgICIwLjAwNTY3NiwgMC4wMDU2ODIsIDAuMDA1NjkxLCAwLjAwNTY5MiwgMC4wMDU2OTMsIDAuMDA1Njk0LCAwLjAwNTY5NCIsIFwKLSAgICAgICAgICAiMC4wMDU2NzEsIDAuMDA1Njc3LCAwLjAwNTY4NiwgMC4wMDU2ODcsIDAuMDA1Njg4LCAwLjAwNTY4OSwgMC4wMDU2ODkiLCBcCi0gICAgICAgICAgIjAuMDA1NjY3LCAwLjAwNTY3NCwgMC4wMDU2ODIsIDAuMDA1NjgzLCAwLjAwNTY4NCwgMC4wMDU2ODUsIDAuMDA1Njg1IiwgXAotICAgICAgICAgICIwLjAwNTY3MywgMC4wMDU2NzksIDAuMDA1Njg4LCAwLjAwNTY4OSwgMC4wMDU2OSwgMC4wMDU2OTEsIDAuMDA1NjkxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiU04iOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjU3NywgMC4wMDY1ODEsIDAuMDA2NTg2LCAwLjAwNjU4NywgMC4wMDY1ODgsIDAuMDA2NTksIDAuMDA2NTkiLCBcCi0gICAgICAgICAgIjAuMDA2NTU0LCAwLjAwNjU1OCwgMC4wMDY1NjMsIDAuMDA2NTY0LCAwLjAwNjU2NCwgMC4wMDY1NjUsIDAuMDA2NTY2IiwgXAotICAgICAgICAgICIwLjAwNjUzNiwgMC4wMDY1NCwgMC4wMDY1NDYsIDAuMDA2NTQ2LCAwLjAwNjU0NywgMC4wMDY1NDksIDAuMDA2NTQ4IiwgXAotICAgICAgICAgICIwLjAwNjUyMSwgMC4wMDY1MjUsIDAuMDA2NTMsIDAuMDA2NTMxLCAwLjAwNjUzMSwgMC4wMDY1MzMsIDAuMDA2NTMzIiwgXAotICAgICAgICAgICIwLjAwNjUwNSwgMC4wMDY1MDksIDAuMDA2NTE1LCAwLjAwNjUxNiwgMC4wMDY1MTYsIDAuMDA2NTE4LCAwLjAwNjUxOCIsIFwKLSAgICAgICAgICAiMC4wMDY0ODksIDAuMDA2NDkzLCAwLjAwNjQ5OSwgMC4wMDY1LCAwLjAwNjUsIDAuMDA2NTAyLCAwLjAwNjUwMSIsIFwKLSAgICAgICAgICAiMC4wMDY0NzcsIDAuMDA2NDgxLCAwLjAwNjQ4NywgMC4wMDY0ODgsIDAuMDA2NDg4LCAwLjAwNjQ4OSwgMC4wMDY0OSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihzY2FsYXIpIHsKLSAgICAgICAgdmFsdWVzKCIwIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTRSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNDAyMjY7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNDAxNTU7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNDAyMjY7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA0Nzk0LCAwLjAwNDc5MywgMC4wMDQ3ODcsIDAuMDA0NzgyLCAwLjAwNDc3NiwgMC4wMDQ3NywgMC4wMDQ3NjciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDYxODQsIDAuMDA2MTYxLCAwLjAwNjE0MiwgMC4wMDYxMzEsIDAuMDA2MTIyLCAwLjAwNjExMSwgMC4wMDYxMDUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiU04iOwotICAgICAgc2RmX2NvbmQgOiAiU04gPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDM3NSwgLTAuMDI2MjUsIC0wLjAxMzc1LCAwLjAwNSwgMC4wMTc1LCAwLjA0LCAwLjA2MTI1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDM3NSwgLTAuMDI1LCAtMC4wMDYyNSwgMC4wMDYyNSwgMC4wMjg3NSwgMC4wNSIsIFwKLSAgICAgICAgICAiLTAuMDY3NSwgLTAuMDU2MjUsIC0wLjAzNzUsIC0wLjAyNSwgLTAuMDEyNSwgMC4wMSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDgsIC0wLjA2ODc1LCAtMC4wNTYyNSwgLTAuMDM3NSwgLTAuMDI1LCAtMC4wMDI1LCAwLjAxODc1IiwgXAotICAgICAgICAgICItMC4wOTI1LCAtMC4wODEyNSwgLTAuMDY4NzUsIC0wLjA1NjI1LCAtMC4wMzc1LCAtMC4wMTUsIDAiLCBcCi0gICAgICAgICAgIi0wLjExNSwgLTAuMTEsIC0wLjA5MTI1LCAtMC4wNzg3NSwgLTAuMDY2MjUsIC0wLjAzNzUsIC0wLjAyMjUiLCBcCi0gICAgICAgICAgIi0wLjEzNjI1LCAtMC4xMjUsIC0wLjExMjUsIC0wLjEsIC0wLjA4MTI1LCAtMC4wNTg3NSwgLTAuMDM3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2MjUsIDAuMDE3NSwgMC4wMzYyNSwgMC4wNDg3NSwgMC4wNjEyNSwgMC4wODM3NSwgMC4xMDUiLCBcCi0gICAgICAgICAgIi0wLjAwNSwgMC4wMDYyNSwgMC4wMjUsIDAuMDM3NSwgMC4wNSwgMC4wNzI1LCAwLjA5Mzc1IiwgXAotICAgICAgICAgICItMC4wMTc1LCAtMC4wMDYyNSwgMC4wMTI1LCAwLjAyNSwgMC4wMzc1LCAwLjA2LCAwLjA4MTI1IiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDE4NzUsIDAsIDAuMDEyNSwgMC4wMjUsIDAuMDQ3NSwgMC4wNjg3NSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDI1LCAtMC4wMTI1LCAwLCAwLjAxMjUsIDAuMDM1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICItMC4wNTg3NSwgLTAuMDQ3NSwgLTAuMDM1LCAtMC4wMTYyNSwgLTAuMDAzNzUsIDAuMDE4NzUsIDAuMDQiLCBcCi0gICAgICAgICAgIi0wLjA3Mzc1LCAtMC4wNjI1LCAtMC4wNSwgLTAuMDMxMjUsIC0wLjAxODc1LCAwLjAwMzc1LCAwLjAxODc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJTTiA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNzUsIDAuMTU3NSwgMC4xNDUsIDAuMTI2MjUsIDAuMTEzNzUsIDAuMDg1LCAwLjA3IiwgXAotICAgICAgICAgICIwLjE4NjI1LCAwLjE3NSwgMC4xNTYyNSwgMC4xMzc1LCAwLjEyNSwgMC4wOTYyNSwgMC4wNzUiLCBcCi0gICAgICAgICAgIjAuMTk4NzUsIDAuMTg3NSwgMC4xNjg3NSwgMC4xNTYyNSwgMC4xMzc1LCAwLjExNSwgMC4wOTM3NSIsIFwKLSAgICAgICAgICAiMC4yMTc1LCAwLjIsIDAuMTg3NSwgMC4xNjg3NSwgMC4xNTYyNSwgMC4xMjc1LCAwLjEwNjI1IiwgXAotICAgICAgICAgICIwLjIzLCAwLjIxODc1LCAwLjIsIDAuMTg3NSwgMC4xNjg3NSwgMC4xNCwgMC4xMTg3NSIsIFwKLSAgICAgICAgICAiMC4yNTI1LCAwLjI0MTI1LCAwLjIyMjUsIDAuMjEsIDAuMTkxMjUsIDAuMTY4NzUsIDAuMTQ3NSIsIFwKLSAgICAgICAgICAiMC4yNzM3NSwgMC4yNTYyNSwgMC4yNDM3NSwgMC4yMjUsIDAuMjEyNSwgMC4xODM3NSwgMC4xNjI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMiwgMC4xODI1LCAwLjE3LCAwLjE1NzUsIDAuMTQ1LCAwLjEyMjUsIDAuMTEzNzUiLCBcCi0gICAgICAgICAgIjAuMjExMjUsIDAuMiwgMC4xODEyNSwgMC4xNjg3NSwgMC4xNTYyNSwgMC4xNCwgMC4xMjUiLCBcCi0gICAgICAgICAgIjAuMjIzNzUsIDAuMjEyNSwgMC4xOTM3NSwgMC4xODEyNSwgMC4xNjg3NSwgMC4xNTI1LCAwLjEzNzUiLCBcCi0gICAgICAgICAgIjAuMjM2MjUsIDAuMjI1LCAwLjIxMjUsIDAuMiwgMC4xODc1LCAwLjE2NSwgMC4xNTYyNSIsIFwKLSAgICAgICAgICAiMC4yNTUsIDAuMjM3NSwgMC4yMjUsIDAuMjEyNSwgMC4yLCAwLjE4Mzc1LCAwLjE2ODc1IiwgXAotICAgICAgICAgICIwLjI3MTI1LCAwLjI2LCAwLjI0NzUsIDAuMjI4NzUsIDAuMjE2MjUsIDAuMiwgMC4xODUiLCBcCi0gICAgICAgICAgIjAuMjg2MjUsIDAuMjc1LCAwLjI2MjUsIDAuMjUsIDAuMjM3NSwgMC4yMTUsIDAuMjA2MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFNJKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA4NzE0MjM7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwODY3OTk3OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDg3MTQyMzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDMyMzksIDAuMDAzMjIsIDAuMDAzMjEsIDAuMDAzMjAzLCAwLjAwMzE5OCwgMC4wMDMxOTIsIDAuMDAzMTg3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA1MjEyLCAwLjAwNTIwMiwgMC4wMDUxOTcsIDAuMDA1MTkyLCAwLjAwNTE4OSwgMC4wMDUxODYsIDAuMDA1MTg0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlNFJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIlNFX0VRXzFfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4xLCAtMC4wOTUsIC0wLjA4MjUsIC0wLjA3LCAtMC4wNTc1LCAtMC4wNDEyNSwgLTAuMDI2MjUiLCBcCi0gICAgICAgICAgIi0wLjExMTI1LCAtMC4xMDYyNSwgLTAuMDkzNzUsIC0wLjA4MTI1LCAtMC4wNjg3NSwgLTAuMDUyNSwgLTAuMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMTMsIC0wLjExODc1LCAtMC4xMDYyNSwgLTAuMDkzNzUsIC0wLjA4MTI1LCAtMC4wNjUsIC0wLjA1IiwgXAotICAgICAgICAgICItMC4xNDI1LCAtMC4xMzEyNSwgLTAuMTE4NzUsIC0wLjEwNjI1LCAtMC4wOTM3NSwgLTAuMDc3NSwgLTAuMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMTU1LCAtMC4xNDM3NSwgLTAuMTMxMjUsIC0wLjExODc1LCAtMC4xMDYyNSwgLTAuMDksIC0wLjA4MTI1IiwgXAotICAgICAgICAgICItMC4xNzc1LCAtMC4xNjYyNSwgLTAuMTUzNzUsIC0wLjE0MTI1LCAtMC4xMjg3NSwgLTAuMTEyNSwgLTAuMDk3NSIsIFwKLSAgICAgICAgICAiLTAuMTkyNSwgLTAuMTgxMjUsIC0wLjE2ODc1LCAtMC4xNTYyNSwgLTAuMTUsIC0wLjEzMzc1LCAtMC4xMTg3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAwNjI1LCAwLjAwNSwgMC4wMjM3NSwgMC4wMzYyNSwgMC4wNDg3NSwgMC4wNzEyNSwgMC4wOTI1IiwgXAotICAgICAgICAgICItMC4wMTc1LCAtMC4wMDYyNSwgMC4wMTI1LCAwLjAyNSwgMC4wMzc1LCAwLjA2LCAwLjA4MTI1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDE4NzUsIDAsIDAuMDEyNSwgMC4wMjUsIDAuMDQ3NSwgMC4wNjg3NSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDMxMjUsIC0wLjAxMjUsIDAsIDAuMDEyNSwgMC4wMzUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIi0wLjA1NSwgLTAuMDM3NSwgLTAuMDI1LCAtMC4wMTI1LCAwLCAwLjAyMjUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIi0wLjA3MTI1LCAtMC4wNiwgLTAuMDQxMjUsIC0wLjAyODc1LCAtMC4wMTYyNSwgMC4wMDYyNSwgMC4wMjc1IiwgXAotICAgICAgICAgICItMC4wODYyNSwgLTAuMDc1LCAtMC4wNTYyNSwgLTAuMDQzNzUsIC0wLjAzMTI1LCAtMC4wMDg3NSwgMC4wMTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJTRSZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJTRV9FUV8xX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTY4NzUsIDAuMTUxMjUsIDAuMTM4NzUsIDAuMTI2MjUsIDAuMTEzNzUsIDAuMDkxMjUsIDAuMDgyNSIsIFwKLSAgICAgICAgICAiMC4xNzM3NSwgMC4xNjI1LCAwLjE1LCAwLjEzNzUsIDAuMTI1LCAwLjEwMjUsIDAuMDkzNzUiLCBcCi0gICAgICAgICAgIjAuMTkyNSwgMC4xNzUsIDAuMTYyNSwgMC4xNSwgMC4xMzc1LCAwLjEyMTI1LCAwLjEwNjI1IiwgXAotICAgICAgICAgICIwLjIwNSwgMC4xOTM3NSwgMC4xNzUsIDAuMTYyNSwgMC4xNSwgMC4xMzM3NSwgMC4xMTg3NSIsIFwKLSAgICAgICAgICAiMC4yMTc1LCAwLjIwNjI1LCAwLjE4NzUsIDAuMTc1LCAwLjE2MjUsIDAuMTQ2MjUsIDAuMTMxMjUiLCBcCi0gICAgICAgICAgIjAuMjQsIDAuMjI4NzUsIDAuMjEsIDAuMTk3NSwgMC4xODUsIDAuMTY4NzUsIDAuMTUzNzUiLCBcCi0gICAgICAgICAgIjAuMjU1LCAwLjI0Mzc1LCAwLjIzMTI1LCAwLjIxMjUsIDAuMiwgMC4xODM3NSwgMC4xNjg3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEzNzUsIDAuMTI2MjUsIDAuMTEzNzUsIDAuMDk1LCAwLjA3NjI1LCAwLjA1Mzc1LCAwLjAzMjUiLCBcCi0gICAgICAgICAgIjAuMTQ4NzUsIDAuMTM3NSwgMC4xMjUsIDAuMTA2MjUsIDAuMDg3NSwgMC4wNjUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMTYxMjUsIDAuMTUsIDAuMTM3NSwgMC4xMTg3NSwgMC4xLCAwLjA3NzUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIjAuMTczNzUsIDAuMTYyNSwgMC4xNSwgMC4xMzEyNSwgMC4xMTI1LCAwLjA5LCAwLjA2ODc1IiwgXAotICAgICAgICAgICIwLjE4NjI1LCAwLjE3NSwgMC4xNjI1LCAwLjE0Mzc1LCAwLjEyNSwgMC4xMDI1LCAwLjA4MTI1IiwgXAotICAgICAgICAgICIwLjIwODc1LCAwLjE5NzUsIDAuMTc4NzUsIDAuMTYsIDAuMTQ3NSwgMC4xMTg3NSwgMC4wOTc1IiwgXAotICAgICAgICAgICIwLjIyMzc1LCAwLjIxMjUsIDAuMTkzNzUsIDAuMTgxMjUsIDAuMTYyNSwgMC4xNCwgMC4xMTg3NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oU04pICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTU3MTU3OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTQ1MDI1OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTU3MTU3OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDQ4NSwgMC4wMDA0ODQsIDAuMDAwNDg0LCAwLjAwMDQ4NCwgMC4wMDA0ODQsIDAuMDAwNDg0LCAwLjAwMDQ4NCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDQ5MiwgMC4wMDA0ODgsIDAuMDAwNDg3LCAwLjAwMDQ4NywgMC4wMDA0ODcsIDAuMDAwNDg3LCAwLjAwMDQ4NyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQmIVNFJiFTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fU0VfRVFfMF9BTl9TSV9FUV8wID09IDEnYjEiOwotICAgICAgZmFsbF9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMjIxMjYzLCAwLjIzMjg1OCwgMC4yNDc0NjQsIDAuMjYxNzM3LCAwLjI3NjI3NiwgMC4yOTg5MDksIDAuMzE3OTkyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogcmVjb3ZlcnlfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRCYhU0UmIVNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9TRV9FUV8wX0FOX1NJX0VRXzAgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQocmVjb3ZlcnlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAwNjI1LCAtMC4wMTc1LCAtMC4wMzYyNSwgLTAuMDQ4NzUsIC0wLjA2NzUsIC0wLjA5LCAtMC4xMTc1IiwgXAotICAgICAgICAgICIwLjAwNSwgLTAuMDA2MjUsIC0wLjAxODc1LCAtMC4wMzc1LCAtMC4wNTYyNSwgLTAuMDc4NzUsIC0wLjEwNjI1IiwgXAotICAgICAgICAgICIwLjAxNzUsIDAuMDA2MjUsIC0wLjAwNjI1LCAtMC4wMjUsIC0wLjA0Mzc1LCAtMC4wNjYyNSwgLTAuMDkzNzUiLCBcCi0gICAgICAgICAgIjAuMDM2MjUsIDAuMDE4NzUsIDAuMDA2MjUsIC0wLjAxMjUsIC0wLjAzMTI1LCAtMC4wNTM3NSwgLTAuMDc1IiwgXAotICAgICAgICAgICIwLjA0ODc1LCAwLjAzMTI1LCAwLjAxODc1LCAwLCAtMC4wMTg3NSwgLTAuMDQxMjUsIC0wLjA2MjUiLCBcCi0gICAgICAgICAgIjAuMDY1LCAwLjA1Mzc1LCAwLjAzNSwgMC4wMjI1LCAwLjAwMzc1LCAtMC4wMTg3NSwgLTAuMDQ2MjUiLCBcCi0gICAgICAgICAgIjAuMDg2MjUsIDAuMDc1LCAwLjA1NjI1LCAwLjAzNzUsIDAuMDI1LCAtMC4wMDM3NSwgLTAuMDI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogcmVtb3ZhbF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEJiFTRSYhU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1NFX0VRXzBfQU5fU0lfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChyZW1vdmFsX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5Mzc1LCAwLjEwNSwgMC4xMTc1LCAwLjEzNjI1LCAwLjE0ODc1LCAwLjE3NzUsIDAuMTk4NzUiLCBcCi0gICAgICAgICAgIjAuMDgyNSwgMC4wOTM3NSwgMC4xMDYyNSwgMC4xMjUsIDAuMTM3NSwgMC4xNjYyNSwgMC4xODc1IiwgXAotICAgICAgICAgICIwLjA3LCAwLjA4MTI1LCAwLjA5Mzc1LCAwLjExMjUsIDAuMTI1LCAwLjE1Mzc1LCAwLjE3NSIsIFwKLSAgICAgICAgICAiMC4wNTc1LCAwLjA2ODc1LCAwLjA4MTI1LCAwLjEsIDAuMTEyNSwgMC4xNDEyNSwgMC4xNjI1IiwgXAotICAgICAgICAgICIwLjA0NSwgMC4wNTYyNSwgMC4wNjg3NSwgMC4wODc1LCAwLjEsIDAuMTI4NzUsIDAuMTUiLCBcCi0gICAgICAgICAgIjAuMDIyNSwgMC4wMzM3NSwgMC4wNTI1LCAwLjA2NSwgMC4wODM3NSwgMC4xMDYyNSwgMC4xMjc1IiwgXAotICAgICAgICAgICIwLjAwNzUsIDAuMDE4NzUsIDAuMDMxMjUsIDAuMDUsIDAuMDYyNSwgMC4wOTEyNSwgMC4xMTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogU0RGRlNSSFFYMSAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChTREZGU1JIUVgxKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuNDAyODY4OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIGZmIChOMzUsUUJJTlQpIHsKLSAgICBuZXh0X3N0YXRlIDogIigoU0UgU0kpICsgKCFTRSBEKSkiOwotICAgIGNsb2NrZWRfb24gOiAiQ0siOwotICAgIGNsZWFyIDogIighUk4pIjsKLSAgICBwcmVzZXQgOiAiKCFTTikiOwotICAgIGNsZWFyX3ByZXNldF92YXIxIDogSDsKLSAgfQotICBwaW4oQ0spICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYxOTY2MjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MTk0OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDYxOTY2MjsKLSAgICBjbG9jayA6IHRydWU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyOTYyLCAwLjAwMjk1MiwgMC4wMDI5NDIsIDAuMDAyOTM3LCAwLjAwMjkzMiwgMC4wMDI5MjYsIDAuMDAyOTIxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA3MzA1LCAwLjAwNzI5NywgMC4wMDcyODksIDAuMDA3MjgxLCAwLjAwNzI3OCwgMC4wMDcyNzksIDAuMDA3MjgzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRCZSTiYhU0UmIVNJJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9STl9FUV8xX0FOX1NFX0VRXzBfQU5fU0lfRVFfMF9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMzYyMTgzLCAwLjM3Mzk4NywgMC4zODkxMDUsIDAuNDA0NTkxLCAwLjQxOTk2MSwgMC40NDQ0MDIsIDAuNDY2MDYxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4yNTc1LCAwLjI2ODc2NSwgMC4yODM5MDEsIDAuMjk4NjUxLCAwLjMxMzYwMywgMC4zMzY5OTgsIDAuMzU3MjYzIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihEKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA4NDI5NzM7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwODM5ODc0OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDg0Mjk3MzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDM5NzYsIDAuMDAzOTU2LCAwLjAwMzk0NywgMC4wMDM5MzksIDAuMDAzOTM0LCAwLjAwMzkyNywgMC4wMDM5MjIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDUxMjQsIDAuMDA1MTEzLCAwLjAwNTEwOSwgMC4wMDUxMDQsIDAuMDA1MTAxLCAwLjAwNTA5NywgMC4wMDUwOTMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiUk4mIVNFJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIlJOX0VRXzFfQU5fU0VfRVFfMF9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjEwNjI1LCAtMC4wOTUsIC0wLjA4MjUsIC0wLjA3LCAtMC4wNTc1LCAtMC4wNDEyNSwgLTAuMDI2MjUiLCBcCi0gICAgICAgICAgIi0wLjExNzUsIC0wLjEwNjI1LCAtMC4wOTM3NSwgLTAuMDgxMjUsIC0wLjA2ODc1LCAtMC4wNTI1LCAtMC4wMzc1IiwgXAotICAgICAgICAgICItMC4xMywgLTAuMTE4NzUsIC0wLjEwNjI1LCAtMC4wOTM3NSwgLTAuMDg3NSwgLTAuMDY1LCAtMC4wNSIsIFwKLSAgICAgICAgICAiLTAuMTQyNSwgLTAuMTM3NSwgLTAuMTE4NzUsIC0wLjExMjUsIC0wLjEsIC0wLjA3NzUsIC0wLjA2ODc1IiwgXAotICAgICAgICAgICItMC4xNTUsIC0wLjE1LCAtMC4xMzc1LCAtMC4xMjUsIC0wLjExMjUsIC0wLjA5NjI1LCAtMC4wODEyNSIsIFwKLSAgICAgICAgICAiLTAuMTc3NSwgLTAuMTY2MjUsIC0wLjE1Mzc1LCAtMC4xNDEyNSwgLTAuMTM1LCAtMC4xMTI1LCAtMC4xMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMTk4NzUsIC0wLjE4NzUsIC0wLjE3NSwgLTAuMTYyNSwgLTAuMTUsIC0wLjEzMzc1LCAtMC4xMTg3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2MjUsIDAuMDE3NSwgMC4wMywgMC4wNDg3NSwgMC4wNjEyNSwgMC4wODM3NSwgMC4xMDUiLCBcCi0gICAgICAgICAgIi0wLjAwNSwgMC4wMDYyNSwgMC4wMjUsIDAuMDM3NSwgMC4wNSwgMC4wNzI1LCAwLjA5Mzc1IiwgXAotICAgICAgICAgICItMC4wMTc1LCAtMC4wMDYyNSwgMC4wMDYyNSwgMC4wMjUsIDAuMDM3NSwgMC4wNiwgMC4wODEyNSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAxODc1LCAwLCAwLjAxMjUsIDAuMDI1LCAwLjA0NzUsIDAuMDY4NzUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzMTI1LCAtMC4wMTI1LCAwLCAwLjAxMjUsIDAuMDM1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICItMC4wNTg3NSwgLTAuMDQ3NSwgLTAuMDM1LCAtMC4wMTYyNSwgLTAuMDAzNzUsIDAuMDE4NzUsIDAuMDQiLCBcCi0gICAgICAgICAgIi0wLjA3Mzc1LCAtMC4wNjI1LCAtMC4wNSwgLTAuMDMxMjUsIC0wLjAxODc1LCAwLjAwMzc1LCAwLjAyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiUk4mIVNFJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIlJOX0VRXzFfQU5fU0VfRVFfMF9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIxMjUsIDAuMjAxMjUsIDAuMTgyNSwgMC4xNywgMC4xNTEyNSwgMC4xMjg3NSwgMC4xMDc1IiwgXAotICAgICAgICAgICIwLjIyMzc1LCAwLjIxMjUsIDAuMTkzNzUsIDAuMTc1LCAwLjE2MjUsIDAuMTQsIDAuMTE4NzUiLCBcCi0gICAgICAgICAgIjAuMjM2MjUsIDAuMjI1LCAwLjIxMjUsIDAuMTkzNzUsIDAuMTc1LCAwLjE1MjUsIDAuMTMxMjUiLCBcCi0gICAgICAgICAgIjAuMjU1LCAwLjIzNzUsIDAuMjI1LCAwLjIwNjI1LCAwLjE4NzUsIDAuMTY1LCAwLjE0Mzc1IiwgXAotICAgICAgICAgICIwLjI2NzUsIDAuMjUsIDAuMjM3NSwgMC4yMTg3NSwgMC4yLCAwLjE3NzUsIDAuMTYyNSIsIFwKLSAgICAgICAgICAiMC4yODM3NSwgMC4yNzI1LCAwLjI2LCAwLjI0MTI1LCAwLjIyMjUsIDAuMiwgMC4xNzg3NSIsIFwKLSAgICAgICAgICAiMC4zMDUsIDAuMjkzNzUsIDAuMjc1LCAwLjI1NjI1LCAwLjI0Mzc1LCAwLjIxNSwgMC4yIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTQzNzUsIDAuMTMyNSwgMC4xMiwgMC4xMDEyNSwgMC4wODI1LCAwLjA2LCAwLjAzODc1IiwgXAotICAgICAgICAgICIwLjE1NSwgMC4xNDM3NSwgMC4xMzEyNSwgMC4xMTI1LCAwLjA5Mzc1LCAwLjA3MTI1LCAwLjA1IiwgXAotICAgICAgICAgICIwLjE2NzUsIDAuMTU2MjUsIDAuMTQzNzUsIDAuMTI1LCAwLjEwNjI1LCAwLjA4Mzc1LCAwLjA2MjUiLCBcCi0gICAgICAgICAgIjAuMTgsIDAuMTY4NzUsIDAuMTU2MjUsIDAuMTM3NSwgMC4xMTg3NSwgMC4wOTYyNSwgMC4wNzUiLCBcCi0gICAgICAgICAgIjAuMTkyNSwgMC4xODEyNSwgMC4xNjg3NSwgMC4xNSwgMC4xMzEyNSwgMC4xMDg3NSwgMC4wODc1IiwgXAotICAgICAgICAgICIwLjIxNSwgMC4yMDM3NSwgMC4xODUsIDAuMTY2MjUsIDAuMTUzNzUsIDAuMTI1LCAwLjEwMzc1IiwgXAotICAgICAgICAgICIwLjIzLCAwLjIxODc1LCAwLjIwNjI1LCAwLjE4NzUsIDAuMTY4NzUsIDAuMTQ2MjUsIDAuMTE4NzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFEpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4xMjU1OwotICAgIGZ1bmN0aW9uIDogIk4zNSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3NlbnNlIDogbm9uX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiByaXNpbmdfZWRnZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzE3NTg5LCAwLjM2MDg0NiwgMC42MDUzODEsIDAuODIxMTE0LCAxLjEwODgsIDEuNjg0MSwgMi4wNDM2NSIsIFwKLSAgICAgICAgICAiMC4zMjkyNTgsIDAuMzcyNTM5LCAwLjYxNzA4NiwgMC44MzI4ODUsIDEuMTIwNTksIDEuNjk1ODMsIDIuMDU1NDIiLCBcCi0gICAgICAgICAgIjAuMzQ0NTQ1LCAwLjM4NzgwNCwgMC42MzIzMzgsIDAuODQ4MDcsIDEuMTM1NzYsIDEuNzExMDUsIDIuMDcwNjQiLCBcCi0gICAgICAgICAgIjAuMzU5NjQ2LCAwLjQwMjkwNiwgMC42NDc0NDEsIDAuODYzMTczLCAxLjE1MDg2LCAxLjcyNjE2LCAyLjA4NTc0IiwgXAotICAgICAgICAgICIwLjM3NTE3NywgMC40MTg0NDQsIDAuNjYyOTg5LCAwLjg3ODcwOCwgMS4xNjY0LCAxLjc0MTY5LCAyLjEwMTI5IiwgXAotICAgICAgICAgICIwLjM5OTY4LCAwLjQ0Mjk1NywgMC42ODc0OTEsIDAuOTAzMjI2LCAxLjE5MDkxLCAxLjc2NjIxLCAyLjEyNTc2IiwgXAotICAgICAgICAgICIwLjQyMDg0MiwgMC40NjQxMSwgMC43MDg2NTUsIDAuOTI0NDM0LCAxLjIxMjA3LCAxLjc4NzM1LCAyLjE0Njk0Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE2MTE5NiwgMC4yNDc0MjQsIDAuNzQzNDY2LCAxLjE4MDk4LCAxLjc2ODU4LCAyLjkzNTIsIDMuNjcxNjQiLCBcCi0gICAgICAgICAgIjAuMTYxMjUzLCAwLjI0NzQyOSwgMC43NDM2NTIsIDEuMTgyODgsIDEuNzY4ODYsIDIuOTM5NTgsIDMuNjcyMDYiLCBcCi0gICAgICAgICAgIjAuMTYxMTYxLCAwLjI0NzQwOCwgMC43NDMyNTMsIDEuMTgwOTQsIDEuNzY4NTYsIDIuOTM1MTMsIDMuNjY2MDMiLCBcCi0gICAgICAgICAgIjAuMTYxMjg2LCAwLjI0NzQyNSwgMC43NDM1MzgsIDEuMTgwOTcsIDEuNzY4NTUsIDIuOTM1MTUsIDMuNjcxNSIsIFwKLSAgICAgICAgICAiMC4xNjExOTcsIDAuMjQ3NDIsIDAuNzQyNjc2LCAxLjE4MDkxLCAxLjc2ODU2LCAyLjkzNTA1LCAzLjY2NjA3IiwgXAotICAgICAgICAgICIwLjE2MTE2NiwgMC4yNDc0MTQsIDAuNzQzNTc0LCAxLjE4MDk4LCAxLjc2ODU1LCAyLjkzNTE1LCAzLjY3MTY5IiwgXAotICAgICAgICAgICIwLjE2MTE2NywgMC4yNDc0MDksIDAuNzQyNjU1LCAxLjE4MzExLCAxLjc2ODU5LCAyLjkzNDgzLCAzLjY2NTk5Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjM2MjE4MywgMC40MTE2NTYsIDAuNjkxNDk1LCAwLjkzODM3LCAxLjI2NzQ5LCAxLjkyNTc0LCAyLjMzNzIxIiwgXAotICAgICAgICAgICIwLjM3Mzk4NywgMC40MjM0NiwgMC43MDMzMzMsIDAuOTUwMTkzLCAxLjI3OTI3LCAxLjkzNzUsIDIuMzQ4OTUiLCBcCi0gICAgICAgICAgIjAuMzg5MTA1LCAwLjQzODU3OSwgMC43MTg0MTksIDAuOTY1Mjk2LCAxLjI5NDQxLCAxLjk1MjY3LCAyLjM2NDEzIiwgXAotICAgICAgICAgICIwLjQwNDU5MSwgMC40NTQwNjUsIDAuNzMzODk3LCAwLjk4MDc3MiwgMS4zMDk5NSwgMS45NjgxMywgMi4zNzk1NyIsIFwKLSAgICAgICAgICAiMC40MTk5NjEsIDAuNDY5NDQyLCAwLjc0OTI3MiwgMC45OTYxMTUsIDEuMzI1MjYsIDEuOTgzNTYsIDIuMzk1MDYiLCBcCi0gICAgICAgICAgIjAuNDQ0NDAyLCAwLjQ5Mzg4LCAwLjc3MzcwNiwgMS4wMjA1NiwgMS4zNDk2OSwgMi4wMDgsIDIuNDE5NTMiLCBcCi0gICAgICAgICAgIjAuNDY2MDYxLCAwLjUxNTU0MiwgMC43OTUzNjEsIDEuMDQyMjUsIDEuMzcxMzYsIDIuMDI5NjEsIDIuNDQwOTYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTc4NTgzLCAwLjI3NTMyNCwgMC44MzE5NiwgMS4zMjQxLCAxLjk3OTQsIDMuMjg0MTYsIDQuMTA0MTMiLCBcCi0gICAgICAgICAgIjAuMTc4NTYyLCAwLjI3NTQ2MSwgMC44MjkyMywgMS4zMjQwMSwgMS45Nzk0OSwgMy4yOTA2NiwgNC4xMDQ0MSIsIFwKLSAgICAgICAgICAiMC4xNzgzMjcsIDAuMjc1MjI1LCAwLjgzMTM3OCwgMS4zMjM4OCwgMS45NzkxMSwgMy4yODU4MywgNC4wOTkxNiIsIFwKLSAgICAgICAgICAiMC4xNzgzMjksIDAuMjc1MjE3LCAwLjgzMDIwMiwgMS4zMjM4MSwgMS45NzgzMiwgMy4yODk2OSwgNC4xMDI1OSIsIFwKLSAgICAgICAgICAiMC4xNzgzMzYsIDAuMjc1Mjg0LCAwLjgzMDAzNSwgMS4zMjM5LCAxLjk3OTQxLCAzLjI4MjgsIDQuMTA0MzMiLCBcCi0gICAgICAgICAgIjAuMTc4NTY1LCAwLjI3NTMyMywgMC44MzE4NTMsIDEuMzI0MDQsIDEuOTc5MzgsIDMuMjgzNjUsIDQuMTA0MjMiLCBcCi0gICAgICAgICAgIjAuMTc4MzEsIDAuMjc1MzI5LCAwLjgyOTk5MSwgMS4zMjAyLCAxLjk3NjE3LCAzLjI4OTY2LCA0LjEwNTAxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiBjbGVhcjsKLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuNDEyMTQxLCAwLjQ2MTYyNCwgMC43NDE0NjQsIDAuOTg4MzE3LCAxLjMxNzQxLCAxLjk3NTcyLCAyLjM4NzA5IiwgXAotICAgICAgICAgICIwLjQyMzQzOSwgMC40NzI5MzEsIDAuNzUyNzYsIDAuOTk5NjM0LCAxLjMyODg0LCAxLjk4NzAxLCAyLjM5ODQ2IiwgXAotICAgICAgICAgICIwLjQzODQ1NywgMC40ODc5NCwgMC43Njc3ODMsIDEuMDE0NjMsIDEuMzQzNzMsIDIuMDAyMDIsIDIuNDEzNDIiLCBcCi0gICAgICAgICAgIjAuNDUzMjU1LCAwLjUwMjc0OCwgMC43ODI1ODcsIDEuMDI5NDgsIDEuMzU4NTYsIDIuMDE2ODMsIDIuNDI4MjgiLCBcCi0gICAgICAgICAgIjAuNDY3MjYyLCAwLjUxNjc1MiwgMC43OTY1OTgsIDEuMDQzNDQsIDEuMzcyNTcsIDIuMDMwNzgsIDIuNDQyMjQiLCBcCi0gICAgICAgICAgIjAuNDg5OTE3LCAwLjUzOTQxMiwgMC44MTkyNSwgMS4wNjYxNiwgMS4zOTUyMiwgMi4wNTM0OSwgMi40NjQ5IiwgXAotICAgICAgICAgICIwLjUwNzYwMiwgMC41NTcwOSwgMC44MzY5MjksIDEuMDgzNzgsIDEuNDEyODgsIDIuMDcxMTgsIDIuNDgyNTUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTc4NDI4LCAwLjI3NTQzMywgMC44MzIwNTMsIDEuMzIzNTIsIDEuOTc5NjQsIDMuMjgyOCwgNC4xMDQyMiIsIFwKLSAgICAgICAgICAiMC4xNzgyMzcsIDAuMjc1NDIzLCAwLjgzMTk4MiwgMS4zMjM2MSwgMS45NzczMSwgMy4yODgzNywgNC4xMDMxOCIsIFwKLSAgICAgICAgICAiMC4xNzgyNDYsIDAuMjc1NDI4LCAwLjgzMjEwMSwgMS4zMjM1NywgMS45Nzk0NCwgMy4yODY2OSwgNC4xMDQzOCIsIFwKLSAgICAgICAgICAiMC4xNzgyOTYsIDAuMjc1NDI1LCAwLjgzMiwgMS4zMjI1OCwgMS45Nzc1OSwgMy4yODkwMSwgNC4xMDQ4IiwgXAotICAgICAgICAgICIwLjE3ODI2OCwgMC4yNzU0MjIsIDAuODMyMDM1LCAxLjMyMzYzLCAxLjk3Nzg1LCAzLjI5MTA3LCA0LjEwNDM0IiwgXAotICAgICAgICAgICIwLjE3ODI4OCwgMC4yNzU0NDIsIDAuODMyMDA4LCAxLjMyMjQ5LCAxLjk3NjY3LCAzLjI4ODg3LCA0LjEwNDk1IiwgXAotICAgICAgICAgICIwLjE3ODMxOSwgMC4yNzU0MjMsIDAuODMyMDU0LCAxLjMyMzQ2LCAxLjk3OTU3LCAzLjI4NzMzLCA0LjEwNDM1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiBwcmVzZXQ7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI1MTgxOSwgMC4yOTUxLCAwLjUzOTY2OSwgMC43NTU0MjMsIDEuMDQzMDcsIDEuNjE4MzgsIDEuOTc3OTMiLCBcCi0gICAgICAgICAgIjAuMjYzNDcxLCAwLjMwNjc1NSwgMC41NTEzMjYsIDAuNzY3MTA1LCAxLjA1NDc1LCAxLjYzMDA4LCAxLjk4OTYyIiwgXAotICAgICAgICAgICIwLjI3NzU1NiwgMC4zMjA4MzksIDAuNTY1NDA4LCAwLjc4MTE2MiwgMS4wNjg4MSwgMS42NDQxMywgMi4wMDM2NiIsIFwKLSAgICAgICAgICAiMC4yOTE3NTUsIDAuMzM0OTQ5LCAwLjU3OTUwMSwgMC43OTUyNjYsIDEuMDgyOTgsIDEuNjU4MTgsIDIuMDE3NzUiLCBcCi0gICAgICAgICAgIjAuMzA2NDE1LCAwLjM0OTYwOCwgMC41OTQxNTcsIDAuODA5OTI1LCAxLjA5NzU1LCAxLjY3MjgzLCAyLjAzMjQxIiwgXAotICAgICAgICAgICIwLjMyOTU2MiwgMC4zNzI3NTMsIDAuNjE3MzIyLCAwLjgzMzA1MywgMS4xMjA2OSwgMS42OTU5OSwgMi4wNTU1NCIsIFwKLSAgICAgICAgICAiMC4zNDk2MjksIDAuMzkyODE2LCAwLjYzNzM1OCwgMC44NTMxMzEsIDEuMTQwOCwgMS43MTYyLCAyLjA3NTYiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTYwNDcsIDAuMjQ3MDEsIDAuNzQzODE0LCAxLjE4Mjg5LCAxLjc2ODM4LCAyLjkzOTYsIDMuNjcxNDYiLCBcCi0gICAgICAgICAgIjAuMTYwNDY5LCAwLjI0NzAxLCAwLjc0Mzc3MiwgMS4xODMwNCwgMS43Njg2NiwgMi45Mzk5NCwgMy42NjY2MyIsIFwKLSAgICAgICAgICAiMC4xNjA0NTgsIDAuMjQ3MDEsIDAuNzQzNzk5LCAxLjE4MzEyLCAxLjc2ODU3LCAyLjkzOTgzLCAzLjY3MjExIiwgXAotICAgICAgICAgICIwLjE2MDQ2MSwgMC4yNDY3ODUsIDAuNzQ0MDMxLCAxLjE4MzA1LCAxLjc2ODczLCAyLjkzODY2LCAzLjY3MjIzIiwgXAotICAgICAgICAgICIwLjE2MDQ2NSwgMC4yNDY5NzMsIDAuNzQzOTk4LCAxLjE4MzAzLCAxLjc2ODU0LCAyLjkzOTY1LCAzLjY3MjE4IiwgXAotICAgICAgICAgICIwLjE2MDQ1NCwgMC4yNDY4MDcsIDAuNzQzODA0LCAxLjE4Mjg5LCAxLjc2ODU1LCAyLjk0MDQzLCAzLjY3MTYiLCBcCi0gICAgICAgICAgIjAuMTYwNDUzLCAwLjI0NjcyMSwgMC43NDM4LCAxLjE4MjkxLCAxLjc2ODQ3LCAyLjkzOTc2LCAzLjY3MTQyIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjM3NTUxNSwgMC40MjUwMDUsIDAuNzA0ODUyLCAwLjk1MTc1MiwgMS4yODA4MiwgMS45MzkxLCAyLjM1MDYxIiwgXAotICAgICAgICAgICIwLjM4NzM0MiwgMC40MzY4MzMsIDAuNzE2Njc0LCAwLjk2MzU4MSwgMS4yOTI2NSwgMS45NTA5MiwgMi4zNjIzNCIsIFwKLSAgICAgICAgICAiMC40MDE2NTYsIDAuNDUxMTQ4LCAwLjczMDk4OCwgMC45Nzc5NTYsIDEuMzA2OTYsIDEuOTY1MjMsIDIuMzc2NjIiLCBcCi0gICAgICAgICAgIjAuNDE1MzA4LCAwLjQ2NDc5NCwgMC43NDQ2MzQsIDAuOTkxNDg5LCAxLjMyMDU4LCAxLjk3ODg5LCAyLjM5MDI1IiwgXAotICAgICAgICAgICIwLjQyODY2MywgMC40NzgxNTQsIDAuNzU4MDA3LCAxLjAwNDg2LCAxLjMzMzk4LCAxLjk5MjIyLCAyLjQwMzciLCBcCi0gICAgICAgICAgIjAuNDUwMTkzLCAwLjQ5OTY4NCwgMC43Nzk1MjksIDEuMDI2MzcsIDEuMzU1NSwgMi4wMTM3NiwgMi40MjUzOSIsIFwKLSAgICAgICAgICAiMC40Njg5NzIsIDAuNTE4NDUyLCAwLjc5ODI5NCwgMS4wNDUxNCwgMS4zNzQyNCwgMi4wMzI1NCwgMi40NDM5MSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNzgyNjgsIDAuMjc1Mzc2LCAwLjgzMjAyOCwgMS4zMjIyMSwgMS45Nzk0MiwgMy4yOSwgNC4xMDQ1OSIsIFwKLSAgICAgICAgICAiMC4xNzgzLCAwLjI3NTQ3NywgMC44MzE5OSwgMS4zMjIyMSwgMS45NzU5MywgMy4yODg2MywgNC4xMDQ5MiIsIFwKLSAgICAgICAgICAiMC4xNzgyODIsIDAuMjc1NDU1LCAwLjgzMjAwNywgMS4zMjIyMiwgMS45Nzc0NSwgMy4yODgzNSwgNC4xMDUwMSIsIFwKLSAgICAgICAgICAiMC4xNzgyNzQsIDAuMjc1Mzg1LCAwLjgzMjA1OSwgMS4zMjM0NiwgMS45Nzk1NiwgMy4yODcyLCA0LjEwNDMyIiwgXAotICAgICAgICAgICIwLjE3ODIyOSwgMC4yNzU0NCwgMC44MzA5NSwgMS4zMjM1MiwgMS45Nzc0MiwgMy4yODY3OCwgNC4xMDExNyIsIFwKLSAgICAgICAgICAiMC4xNzgyNzgsIDAuMjc1NDcsIDAuODMyMDM5LCAxLjMyMjIxLCAxLjk3NzExLCAzLjI4OTE4LCA0LjEwMDU3IiwgXAotICAgICAgICAgICIwLjE3ODQwMSwgMC4yNzU1MiwgMC44MzIwOSwgMS4zMjM0NSwgMS45Nzk0NiwgMy4yODM4NiwgNC4xMDQyNiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDY4NzYsIDAuMDA2ODgsIDAuMDA2ODg1LCAwLjAwNjg4NSwgMC4wMDY4ODYsIDAuMDA2ODg2LCAwLjAwNjg4NyIsIFwKLSAgICAgICAgICAiMC4wMDY4NjUsIDAuMDA2ODY5LCAwLjAwNjg3NSwgMC4wMDY4NzUsIDAuMDA2ODc2LCAwLjAwNjg3NiwgMC4wMDY4NzYiLCBcCi0gICAgICAgICAgIjAuMDA2ODU1LCAwLjAwNjg1OSwgMC4wMDY4NjQsIDAuMDA2ODY1LCAwLjAwNjg2NiwgMC4wMDY4NjUsIDAuMDA2ODY1IiwgXAotICAgICAgICAgICIwLjAwNjg0NiwgMC4wMDY4NSwgMC4wMDY4NTUsIDAuMDA2ODU2LCAwLjAwNjg1NywgMC4wMDY4NTcsIDAuMDA2ODU3IiwgXAotICAgICAgICAgICIwLjAwNjgzOCwgMC4wMDY4NDIsIDAuMDA2ODQ3LCAwLjAwNjg0OSwgMC4wMDY4NDksIDAuMDA2ODQ5LCAwLjAwNjg1IiwgXAotICAgICAgICAgICIwLjAwNjgzLCAwLjAwNjgzMywgMC4wMDY4MzgsIDAuMDA2ODM5LCAwLjAwNjg0LCAwLjAwNjg0LCAwLjAwNjg0MSIsIFwKLSAgICAgICAgICAiMC4wMDY4MjIsIDAuMDA2ODI1LCAwLjAwNjgzLCAwLjAwNjgzMSwgMC4wMDY4MzIsIDAuMDA2ODMyLCAwLjAwNjgzMiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjM0OCwgMC4wMDYzNTQsIDAuMDA2MzYyLCAwLjAwNjM2NCwgMC4wMDYzNjUsIDAuMDA2MzY1LCAwLjAwNjM2NSIsIFwKLSAgICAgICAgICAiMC4wMDYzMzgsIDAuMDA2MzQ0LCAwLjAwNjM1MiwgMC4wMDYzNTMsIDAuMDA2MzU0LCAwLjAwNjM1NSwgMC4wMDYzNTUiLCBcCi0gICAgICAgICAgIjAuMDA2MzI2LCAwLjAwNjMzMiwgMC4wMDYzNCwgMC4wMDYzNDIsIDAuMDA2MzQyLCAwLjAwNjM0MywgMC4wMDYzNDMiLCBcCi0gICAgICAgICAgIjAuMDA2MzIsIDAuMDA2MzI2LCAwLjAwNjMzNCwgMC4wMDYzMzUsIDAuMDA2MzM2LCAwLjAwNjMzNywgMC4wMDYzMzciLCBcCi0gICAgICAgICAgIjAuMDA2MzEzLCAwLjAwNjMxOSwgMC4wMDYzMjcsIDAuMDA2MzI4LCAwLjAwNjMyOSwgMC4wMDYzMywgMC4wMDYzMyIsIFwKLSAgICAgICAgICAiMC4wMDYzMTMsIDAuMDA2MzE5LCAwLjAwNjMyNywgMC4wMDYzMjgsIDAuMDA2MzI5LCAwLjAwNjMzLCAwLjAwNjMzMSIsIFwKLSAgICAgICAgICAiMC4wMDYzMTMsIDAuMDA2MzE5LCAwLjAwNjMyNywgMC4wMDYzMjgsIDAuMDA2MzI5LCAwLjAwNjMzLCAwLjAwNjMzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUk4iOwotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwODI4MSwgMC4wMDgyODcsIDAuMDA4Mjk2LCAwLjAwODI5OCwgMC4wMDgyOTksIDAuMDA4MywgMC4wMDgzIiwgXAotICAgICAgICAgICIwLjAwODI3LCAwLjAwODI3NywgMC4wMDgyODYsIDAuMDA4Mjg4LCAwLjAwODI4OSwgMC4wMDgyOSwgMC4wMDgyOSIsIFwKLSAgICAgICAgICAiMC4wMDgyNjMsIDAuMDA4MjY5LCAwLjAwODI3OCwgMC4wMDgyOCwgMC4wMDgyODEsIDAuMDA4MjgyLCAwLjAwODI4MiIsIFwKLSAgICAgICAgICAiMC4wMDgyNTUsIDAuMDA4MjYxLCAwLjAwODI3MSwgMC4wMDgyNzMsIDAuMDA4Mjc0LCAwLjAwODI3NCwgMC4wMDgyNzQiLCBcCi0gICAgICAgICAgIjAuMDA4MjQ4LCAwLjAwODI1NCwgMC4wMDgyNjMsIDAuMDA4MjY1LCAwLjAwODI2NiwgMC4wMDgyNjYsIDAuMDA4MjY3IiwgXAotICAgICAgICAgICIwLjAwODI0NCwgMC4wMDgyNTEsIDAuMDA4MjYsIDAuMDA4MjYxLCAwLjAwODI2MiwgMC4wMDgyNjMsIDAuMDA4MjYzIiwgXAotICAgICAgICAgICIwLjAwODIzOSwgMC4wMDgyNDUsIDAuMDA4MjU0LCAwLjAwODI1NiwgMC4wMDgyNTcsIDAuMDA4MjU4LCAwLjAwODI1OCIpOwotICAgICAgfQotICAgICAgcmlzZV9wb3dlcihzY2FsYXIpIHsKLSAgICAgICAgdmFsdWVzKCIwIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiU04iOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwODI5MywgMC4wMDgyOTcsIDAuMDA4MywgMC4wMDgzLCAwLjAwODMsIDAuMDA4MzAxLCAwLjAwODMwMSIsIFwKLSAgICAgICAgICAiMC4wMDgyNzUsIDAuMDA4Mjc3LCAwLjAwODI4MiwgMC4wMDgyODIsIDAuMDA4MjgyLCAwLjAwODI4MiwgMC4wMDgyODMiLCBcCi0gICAgICAgICAgIjAuMDA4MjYyLCAwLjAwODI2NiwgMC4wMDgyNjgsIDAuMDA4MjY5LCAwLjAwODI2OSwgMC4wMDgyNywgMC4wMDgyNjkiLCBcCi0gICAgICAgICAgIjAuMDA4MjUzLCAwLjAwODI1NywgMC4wMDgyNTksIDAuMDA4MjYsIDAuMDA4MjYxLCAwLjAwODI2LCAwLjAwODI2IiwgXAotICAgICAgICAgICIwLjAwODI0NywgMC4wMDgyNSwgMC4wMDgyNTUsIDAuMDA4MjU1LCAwLjAwODI1NSwgMC4wMDgyNTYsIDAuMDA4MjU2IiwgXAotICAgICAgICAgICIwLjAwODIzOCwgMC4wMDgyNDEsIDAuMDA4MjQ2LCAwLjAwODI0NiwgMC4wMDgyNDYsIDAuMDA4MjQ3LCAwLjAwODI0NiIsIFwKLSAgICAgICAgICAiMC4wMDgyMzQsIDAuMDA4MjM3LCAwLjAwODI0LCAwLjAwODI0MSwgMC4wMDgyNDEsIDAuMDA4MjQxLCAwLjAwODI0MSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNTk2MSwgMC4wMDU5NjgsIDAuMDA1OTc3LCAwLjAwNTk3OSwgMC4wMDU5OCwgMC4wMDU5ODEsIDAuMDA1OTgxIiwgXAotICAgICAgICAgICIwLjAwNTk0MSwgMC4wMDU5NDgsIDAuMDA1OTU3LCAwLjAwNTk1OSwgMC4wMDU5NiwgMC4wMDU5NiwgMC4wMDU5NjEiLCBcCi0gICAgICAgICAgIjAuMDA1OTI4LCAwLjAwNTkzNCwgMC4wMDU5NDMsIDAuMDA1OTQ1LCAwLjAwNTk0NiwgMC4wMDU5NDcsIDAuMDA1OTQ3IiwgXAotICAgICAgICAgICIwLjAwNTkxOCwgMC4wMDU5MjQsIDAuMDA1OTMzLCAwLjAwNTkzNSwgMC4wMDU5MzYsIDAuMDA1OTM3LCAwLjAwNTkzNyIsIFwKLSAgICAgICAgICAiMC4wMDU5MSwgMC4wMDU5MTcsIDAuMDA1OTI2LCAwLjAwNTkyOCwgMC4wMDU5MjksIDAuMDA1OTI5LCAwLjAwNTkzIiwgXAotICAgICAgICAgICIwLjAwNTkwMSwgMC4wMDU5MDgsIDAuMDA1OTE3LCAwLjAwNTkxOSwgMC4wMDU5MTksIDAuMDA1OTIsIDAuMDA1OTIiLCBcCi0gICAgICAgICAgIjAuMDA1ODk1LCAwLjAwNTkwMSwgMC4wMDU5MSwgMC4wMDU5MTIsIDAuMDA1OTEzLCAwLjAwNTkxNCwgMC4wMDU5MTQiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFJOKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA1NTEyODg7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNTUwOTQ2OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDU1MTI4ODsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA2MjgsIDAuMDAwNjE0LCAwLjAwMDYwNCwgMC4wMDA1OTksIDAuMDAwNTk2LCAwLjAwMDU5NCwgMC4wMDA1OTMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDE5NzcsIDAuMDAxOTY4LCAwLjAwMTk2MiwgMC4wMDE5NTgsIDAuMDAxOTU2LCAwLjAwMTk1NSwgMC4wMDE5NTEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUk4iOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFEJiFTRSYhU0kmU04iOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1NFX0VRXzBfQU5fU0lfRVFfMF9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgZmFsbF9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuNDEyMTQxLCAwLjQyMzQzOSwgMC40Mzg0NTcsIDAuNDUzMjU1LCAwLjQ2NzI2MiwgMC40ODk5MTcsIDAuNTA3NjAyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogcmVjb3ZlcnlfcmlzaW5nOwotICAgICAgd2hlbiA6ICJTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJTTiA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChyZWNvdmVyeV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTg3NSwgMC4xMDEyNSwgMC4wODg3NSwgMC4wNywgMC4wNTEyNSwgMC4wMjg3NSwgMC4wMDc1IiwgXAotICAgICAgICAgICIwLjEzLCAwLjExMjUsIDAuMSwgMC4wODEyNSwgMC4wNjI1LCAwLjA0LCAwLjAxODc1IiwgXAotICAgICAgICAgICIwLjE0MjUsIDAuMTMxMjUsIDAuMTEyNSwgMC4xLCAwLjA4MTI1LCAwLjA1MjUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMTYxMjUsIDAuMTQzNzUsIDAuMTMxMjUsIDAuMTEyNSwgMC4wOTM3NSwgMC4wNzEyNSwgMC4wNSIsIFwKLSAgICAgICAgICAiMC4xNzM3NSwgMC4xNjI1LCAwLjE0Mzc1LCAwLjEyNSwgMC4xMTI1LCAwLjA4Mzc1LCAwLjA2MjUiLCBcCi0gICAgICAgICAgIjAuMTk2MjUsIDAuMTg1LCAwLjE3MjUsIDAuMTUzNzUsIDAuMTM1LCAwLjEwNjI1LCAwLjA4NSIsIFwKLSAgICAgICAgICAiMC4yMTc1LCAwLjIwNjI1LCAwLjE5Mzc1LCAwLjE2ODc1LCAwLjE1NjI1LCAwLjEyNzUsIDAuMTA2MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiU04iOwotICAgICAgdGltaW5nX3R5cGUgOiByZWNvdmVyeV9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEJiFTRSYhU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1NFX0VRXzBfQU5fU0lfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChyZWNvdmVyeV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNjg3NSwgMC4xOCwgMC4xOTI1LCAwLjIwNSwgMC4yMTc1LCAwLjI0LCAwLjI1NSIsIFwKLSAgICAgICAgICAiMC4xNTc1LCAwLjE2ODc1LCAwLjE4MTI1LCAwLjE5Mzc1LCAwLjIwNjI1LCAwLjIyODc1LCAwLjI0Mzc1IiwgXAotICAgICAgICAgICIwLjE0NSwgMC4xNTYyNSwgMC4xNjg3NSwgMC4xODEyNSwgMC4xOTM3NSwgMC4yMTYyNSwgMC4yMzEyNSIsIFwKLSAgICAgICAgICAiMC4xMzI1LCAwLjE0Mzc1LCAwLjE1NjI1LCAwLjE2ODc1LCAwLjE4MTI1LCAwLjIwMzc1LCAwLjIxODc1IiwgXAotICAgICAgICAgICIwLjEyLCAwLjEzMTI1LCAwLjE0Mzc1LCAwLjE2MjUsIDAuMTc1LCAwLjE5MTI1LCAwLjIxMjUiLCBcCi0gICAgICAgICAgIjAuMTEsIDAuMTIxMjUsIDAuMTMzNzUsIDAuMTQ2MjUsIDAuMTU4NzUsIDAuMTgxMjUsIDAuMTk2MjUiLCBcCi0gICAgICAgICAgIjAuMTAxMjUsIDAuMTEyNSwgMC4xMjUsIDAuMTM3NSwgMC4xNSwgMC4xNjYyNSwgMC4xODc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogcmVtb3ZhbF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlNOIjsKLSAgICAgIHNkZl9jb25kIDogIlNOID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHJlbW92YWxfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAxODc1LCAtMC4wMDc1LCAwLjAwNSwgMC4wMjM3NSwgMC4wMzYyNSwgMC4wNTg3NSwgMC4wOCIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAxODc1LCAtMC4wMDYyNSwgMC4wMTI1LCAwLjAyNSwgMC4wNDc1LCAwLjA2ODc1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDM3NSwgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLjAxMjUsIDAuMDM1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICItMC4wNjEyNSwgLTAuMDUsIC0wLjAzNzUsIC0wLjAxODc1LCAtMC4wMDYyNSwgMC4wMTYyNSwgMC4wMzc1IiwgXAotICAgICAgICAgICItMC4wOCwgLTAuMDY4NzUsIC0wLjA1LCAtMC4wMzc1LCAtMC4wMTg3NSwgMC4wMDM3NSwgMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjEwMjUsIC0wLjA5MTI1LCAtMC4wNzI1LCAtMC4wNiwgLTAuMDQ3NSwgLTAuMDE4NzUsIDAuMDAyNSIsIFwKLSAgICAgICAgICAiLTAuMTIzNzUsIC0wLjExMjUsIC0wLjA5Mzc1LCAtMC4wODEyNSwgLTAuMDYyNSwgLTAuMDQsIC0wLjAxODc1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTRSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNTQ1NDg7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNTQ1NDg7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNTQ1Mjg7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA0ODQxLCAwLjAwNDgzOCwgMC4wMDQ4MzMsIDAuMDA0ODI4LCAwLjAwNDgyMywgMC4wMDQ4MTgsIDAuMDA0ODE1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA2MDE0LCAwLjAwNTk5LCAwLjAwNTk3LCAwLjAwNTk1NywgMC4wMDU5NDcsIDAuMDA1OTM2LCAwLjAwNTkyOSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJSTiZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJSTl9FUV8xX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDE4NzUsIC0wLjAwNzUsIDAuMDA1LCAwLjAyMzc1LCAwLjAzNjI1LCAwLjA1ODc1LCAwLjA4IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLjAwNjI1LCAwLjAyNSwgMC4wNDc1LCAwLjA2ODc1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDM3NSwgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLjAwNjI1LCAwLjAyODc1LCAwLjA1IiwgXAotICAgICAgICAgICItMC4wNjEyNSwgLTAuMDUsIC0wLjAzNzUsIC0wLjAxODc1LCAtMC4wMDYyNSwgMC4wMTYyNSwgMC4wMzc1IiwgXAotICAgICAgICAgICItMC4wOCwgLTAuMDY4NzUsIC0wLjA1LCAtMC4wMzc1LCAtMC4wMTg3NSwgMC4wMDM3NSwgMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjA5NjI1LCAtMC4wODUsIC0wLjA3MjUsIC0wLjA2LCAtMC4wNDEyNSwgLTAuMDE4NzUsIDAuMDAyNSIsIFwKLSAgICAgICAgICAiLTAuMTE3NSwgLTAuMTA2MjUsIC0wLjA4NzUsIC0wLjA3NSwgLTAuMDYyNSwgLTAuMDQsIC0wLjAxODc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTg3NSwgMC4wMywgMC4wNDI1LCAwLjA1NSwgMC4wNzM3NSwgMC4wOTYyNSwgMC4xMTc1IiwgXAotICAgICAgICAgICIwLjAwNzUsIDAuMDE4NzUsIDAuMDMxMjUsIDAuMDUsIDAuMDYyNSwgMC4wODUsIDAuMTA2MjUiLCBcCi0gICAgICAgICAgIi0wLjAwNSwgMC4wMDYyNSwgMC4wMTg3NSwgMC4wMzc1LCAwLjA1LCAwLjA3MjUsIDAuMDkzNzUiLCBcCi0gICAgICAgICAgIi0wLjAxNzUsIC0wLjAwNjI1LCAwLjAxMjUsIDAuMDI1LCAwLjAzNzUsIDAuMDYsIDAuMDgxMjUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMTg3NSwgMCwgMC4wMTI1LCAwLjAyNSwgMC4wNDc1LCAwLjA2ODc1IiwgXAotICAgICAgICAgICItMC4wNDYyNSwgLTAuMDM1LCAtMC4wMjI1LCAtMC4wMSwgMC4wMDg3NSwgMC4wMzEyNSwgMC4wNTI1IiwgXAotICAgICAgICAgICItMC4wNjEyNSwgLTAuMDUsIC0wLjAzNzUsIC0wLjAyNSwgLTAuMDA2MjUsIDAuMDE2MjUsIDAuMDMxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlJOJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIlJOX0VRXzFfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yLCAwLjE4MjUsIDAuMTcsIDAuMTUxMjUsIDAuMTM4NzUsIDAuMTEsIDAuMDk1IiwgXAotICAgICAgICAgICIwLjIxMTI1LCAwLjE5Mzc1LCAwLjE4MTI1LCAwLjE2MjUsIDAuMTQzNzUsIDAuMTIxMjUsIDAuMTA2MjUiLCBcCi0gICAgICAgICAgIjAuMjIzNzUsIDAuMjA2MjUsIDAuMTkzNzUsIDAuMTc1LCAwLjE1NjI1LCAwLjEzMzc1LCAwLjExODc1IiwgXAotICAgICAgICAgICIwLjIzNjI1LCAwLjIyNSwgMC4yMDYyNSwgMC4xODc1LCAwLjE2ODc1LCAwLjE0NjI1LCAwLjEzMTI1IiwgXAotICAgICAgICAgICIwLjI0ODc1LCAwLjIzNzUsIDAuMjE4NzUsIDAuMiwgMC4xODc1LCAwLjE1ODc1LCAwLjE0Mzc1IiwgXAotICAgICAgICAgICIwLjI3MTI1LCAwLjI2LCAwLjI0MTI1LCAwLjIyMjUsIDAuMjAzNzUsIDAuMTgxMjUsIDAuMTY2MjUiLCBcCi0gICAgICAgICAgIjAuMjkyNSwgMC4yNzUsIDAuMjYyNSwgMC4yNDM3NSwgMC4yMjUsIDAuMjAyNSwgMC4xODEyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIzMTI1LCAwLjIyLCAwLjIwNzUsIDAuMTg4NzUsIDAuMTcsIDAuMTQ3NSwgMC4xMjYyNSIsIFwKLSAgICAgICAgICAiMC4yNDg3NSwgMC4yMzEyNSwgMC4yMTg3NSwgMC4yLCAwLjE4MTI1LCAwLjE1ODc1LCAwLjEzNzUiLCBcCi0gICAgICAgICAgIjAuMjYxMjUsIDAuMjUsIDAuMjMxMjUsIDAuMjEyNSwgMC4yLCAwLjE3MTI1LCAwLjE1NjI1IiwgXAotICAgICAgICAgICIwLjI3Mzc1LCAwLjI2MjUsIDAuMjUsIDAuMjI1LCAwLjIxMjUsIDAuMTksIDAuMTY4NzUiLCBcCi0gICAgICAgICAgIjAuMjg2MjUsIDAuMjc1LCAwLjI2MjUsIDAuMjQzNzUsIDAuMjI1LCAwLjIwMjUsIDAuMTgxMjUiLCBcCi0gICAgICAgICAgIjAuMzA4NzUsIDAuMjk3NSwgMC4yNzg3NSwgMC4yNiwgMC4yNDc1LCAwLjIxODc1LCAwLjIwMzc1IiwgXAotICAgICAgICAgICIwLjMyMzc1LCAwLjMxMjUsIDAuMjkzNzUsIDAuMjc1LCAwLjI2MjUsIDAuMjMzNzUsIDAuMjE4NzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFNJKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA4NzcwMTY7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwODczMjc0OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDg3NzAxNjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDM3ODMsIDAuMDAzNzY1LCAwLjAwMzc1NCwgMC4wMDM3NDcsIDAuMDAzNzQyLCAwLjAwMzczNSwgMC4wMDM3MzEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDUyNjIsIDAuMDA1MjUyLCAwLjAwNTI0NywgMC4wMDUyNDMsIDAuMDA1MjM5LCAwLjAwNTIzNSwgMC4wMDUyMzIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiUk4mU0UmU04iOwotICAgICAgc2RmX2NvbmQgOiAiUk5fRVFfMV9BTl9TRV9FUV8xX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMTA2MjUsIC0wLjA5NSwgLTAuMDgyNSwgLTAuMDcsIC0wLjA1NzUsIC0wLjA0MTI1LCAtMC4wMjYyNSIsIFwKLSAgICAgICAgICAiLTAuMTE3NSwgLTAuMTA2MjUsIC0wLjA5Mzc1LCAtMC4wODEyNSwgLTAuMDY4NzUsIC0wLjA1MjUsIC0wLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjEzLCAtMC4xMTg3NSwgLTAuMTA2MjUsIC0wLjA5Mzc1LCAtMC4wODEyNSwgLTAuMDY1LCAtMC4wNSIsIFwKLSAgICAgICAgICAiLTAuMTQyNSwgLTAuMTMxMjUsIC0wLjExODc1LCAtMC4xMDYyNSwgLTAuMDkzNzUsIC0wLjA3NzUsIC0wLjA2MjUiLCBcCi0gICAgICAgICAgIi0wLjE1NSwgLTAuMTQzNzUsIC0wLjEzMTI1LCAtMC4xMTg3NSwgLTAuMTA2MjUsIC0wLjA5LCAtMC4wNzUiLCBcCi0gICAgICAgICAgIi0wLjE3NzUsIC0wLjE2NjI1LCAtMC4xNTM3NSwgLTAuMTQxMjUsIC0wLjEyODc1LCAtMC4xMTI1LCAtMC4wOTc1IiwgXAotICAgICAgICAgICItMC4xOTI1LCAtMC4xODc1LCAtMC4xNjg3NSwgLTAuMTYyNSwgLTAuMTUsIC0wLjEzMzc1LCAtMC4xMTg3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2MjUsIDAuMDE3NSwgMC4wMywgMC4wNDg3NSwgMC4wNjEyNSwgMC4wODM3NSwgMC4xMDUiLCBcCi0gICAgICAgICAgIi0wLjAwNSwgMC4wMDYyNSwgMC4wMTg3NSwgMC4wMzc1LCAwLjA1LCAwLjA3MjUsIDAuMDkzNzUiLCBcCi0gICAgICAgICAgIi0wLjAxNzUsIC0wLjAwNjI1LCAwLjAwNjI1LCAwLjAyNSwgMC4wMzc1LCAwLjA2LCAwLjA4MTI1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLjAxMjUsIDAuMDI1LCAwLjA0NzUsIDAuMDY4NzUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzMTI1LCAtMC4wMTI1LCAwLCAwLjAxMjUsIDAuMDM1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICItMC4wNTg3NSwgLTAuMDQ3NSwgLTAuMDM1LCAtMC4wMTYyNSwgLTAuMDAzNzUsIDAuMDE4NzUsIDAuMDQiLCBcCi0gICAgICAgICAgIi0wLjA3Mzc1LCAtMC4wNjI1LCAtMC4wNSwgLTAuMDM3NSwgLTAuMDE4NzUsIDAuMDAzNzUsIDAuMDI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJSTiZTRSZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJSTl9FUV8xX0FOX1NFX0VRXzFfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMTI1LCAwLjE5NSwgMC4xODI1LCAwLjE2Mzc1LCAwLjE0NSwgMC4xMjI1LCAwLjEwNzUiLCBcCi0gICAgICAgICAgIjAuMjIzNzUsIDAuMjA2MjUsIDAuMTkzNzUsIDAuMTc1LCAwLjE1NjI1LCAwLjEzMzc1LCAwLjExODc1IiwgXAotICAgICAgICAgICIwLjIzNjI1LCAwLjIyNSwgMC4yMDYyNSwgMC4xODc1LCAwLjE2ODc1LCAwLjE0NjI1LCAwLjEzMTI1IiwgXAotICAgICAgICAgICIwLjI0ODc1LCAwLjIzNzUsIDAuMjE4NzUsIDAuMiwgMC4xODc1LCAwLjE1ODc1LCAwLjE0Mzc1IiwgXAotICAgICAgICAgICIwLjI2MTI1LCAwLjI1LCAwLjIzMTI1LCAwLjIxMjUsIDAuMiwgMC4xNzc1LCAwLjE1NjI1IiwgXAotICAgICAgICAgICIwLjI4Mzc1LCAwLjI3MjUsIDAuMjUzNzUsIDAuMjM1LCAwLjIyMjUsIDAuMTkzNzUsIDAuMTc4NzUiLCBcCi0gICAgICAgICAgIjAuMzA1LCAwLjI4NzUsIDAuMjc1LCAwLjI1NjI1LCAwLjIzNzUsIDAuMjE1LCAwLjE5Mzc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTUsIDAuMTMyNSwgMC4xMiwgMC4xMDEyNSwgMC4wODg3NSwgMC4wNiwgMC4wMzg3NSIsIFwKLSAgICAgICAgICAiMC4xNjEyNSwgMC4xNDM3NSwgMC4xMzEyNSwgMC4xMTI1LCAwLjEsIDAuMDcxMjUsIDAuMDUiLCBcCi0gICAgICAgICAgIjAuMTczNzUsIDAuMTU2MjUsIDAuMTQzNzUsIDAuMTI1LCAwLjExMjUsIDAuMDgzNzUsIDAuMDYyNSIsIFwKLSAgICAgICAgICAiMC4xODYyNSwgMC4xNjg3NSwgMC4xNTYyNSwgMC4xMzc1LCAwLjExODc1LCAwLjA5NjI1LCAwLjA3NSIsIFwKLSAgICAgICAgICAiMC4xOTI1LCAwLjE4MTI1LCAwLjE2ODc1LCAwLjE1LCAwLjEzMTI1LCAwLjEwODc1LCAwLjA4NzUiLCBcCi0gICAgICAgICAgIjAuMjE1LCAwLjIwMzc1LCAwLjE4NSwgMC4xNzI1LCAwLjE1Mzc1LCAwLjEyNSwgMC4xMDM3NSIsIFwKLSAgICAgICAgICAiMC4yMywgMC4yMTg3NSwgMC4yMDYyNSwgMC4xODc1LCAwLjE2ODc1LCAwLjE0NjI1LCAwLjExODc1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTTikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxODc5NTI7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxODc5NTI7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxODc5MzY7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNDg1LCAwLjAwMDQ4NCwgMC4wMDA0ODQsIDAuMDAwNDg0LCAwLjAwMDQ4NCwgMC4wMDA0ODQsIDAuMDAwNDg0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNDg2LCAwLjAwMDQ4NiwgMC4wMDA0ODYsIDAuMDAwNDg2LCAwLjAwMDQ4NiwgMC4wMDA0ODcsIDAuMDAwNDg3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRCYhUk4mIVNFJiFTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fUk5fRVFfMF9BTl9TRV9FUV8wX0FOX1NJX0VRXzAgPT0gMSdiMSI7Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4yNTE3MjUsIDAuMjYzMzgsIDAuMjc3NTEzLCAwLjI5MTc1NSwgMC4zMDY0MTUsIDAuMzI5NTYyLCAwLjM0OTYyOCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJlY292ZXJ5X3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiUk4iOwotICAgICAgc2RmX2NvbmQgOiAiUk4gPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQocmVjb3ZlcnlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEyNSwgLTAuMDA1LCAtMC4wMTc1LCAtMC4wMzYyNSwgLTAuMDU1LCAtMC4wNzc1LCAtMC4xMDUiLCBcCi0gICAgICAgICAgIjAuMDIzNzUsIDAuMDA2MjUsIC0wLjAwNjI1LCAtMC4wMjUsIC0wLjA0Mzc1LCAtMC4wNjYyNSwgLTAuMDg3NSIsIFwKLSAgICAgICAgICAiMC4wMzYyNSwgMC4wMjUsIDAuMDA2MjUsIC0wLjAxMjUsIC0wLjAyNSwgLTAuMDUzNzUsIC0wLjA3NSIsIFwKLSAgICAgICAgICAiMC4wNDg3NSwgMC4wMzc1LCAwLjAxODc1LCAwLjAwNjI1LCAtMC4wMTI1LCAtMC4wNDEyNSwgLTAuMDYyNSIsIFwKLSAgICAgICAgICAiMC4wNjEyNSwgMC4wNSwgMC4wMzc1LCAwLjAxODc1LCAwLCAtMC4wMjg3NSwgLTAuMDUiLCBcCi0gICAgICAgICAgIjAuMDgzNzUsIDAuMDcyNSwgMC4wNTM3NSwgMC4wMzUsIDAuMDIyNSwgLTAuMDA2MjUsIC0wLjAyNzUiLCBcCi0gICAgICAgICAgIjAuMTA1LCAwLjA4NzUsIDAuMDc1LCAwLjA1NjI1LCAwLjAzNzUsIDAuMDE1LCAtMC4wMTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogcmVtb3ZhbF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlJOIjsKLSAgICAgIHNkZl9jb25kIDogIlJOID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHJlbW92YWxfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDkzNzUsIDAuMTA1LCAwLjExNzUsIDAuMTM2MjUsIDAuMTQ4NzUsIDAuMTc3NSwgMC4xOTg3NSIsIFwKLSAgICAgICAgICAiMC4wODI1LCAwLjA5Mzc1LCAwLjExMjUsIDAuMTI1LCAwLjE0Mzc1LCAwLjE2NjI1LCAwLjE4NzUiLCBcCi0gICAgICAgICAgIjAuMDcsIDAuMDgxMjUsIDAuMDkzNzUsIDAuMTEyNSwgMC4xMjUsIDAuMTUzNzUsIDAuMTc1IiwgXAotICAgICAgICAgICIwLjA1NzUsIDAuMDY4NzUsIDAuMDgxMjUsIDAuMSwgMC4xMTI1LCAwLjE0MTI1LCAwLjE2MjUiLCBcCi0gICAgICAgICAgIjAuMDQ1LCAwLjA1NjI1LCAwLjA2ODc1LCAwLjA4NzUsIDAuMSwgMC4xMjg3NSwgMC4xNSIsIFwKLSAgICAgICAgICAiMC4wMjI1LCAwLjAzMzc1LCAwLjA0NjI1LCAwLjA2NSwgMC4wNzc1LCAwLjEwNjI1LCAwLjEyNzUiLCBcCi0gICAgICAgICAgIjAuMDAxMjUsIDAuMDEyNSwgMC4wMzEyNSwgMC4wNDM3NSwgMC4wNjI1LCAwLjA4NSwgMC4xMDYyNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IFNERkZTUkhRWDIgKgotICogLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoU0RGRlNSSFFYMikgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjQzOTI4MTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBmZiAoTjM1LFFCSU5UKSB7Ci0gICAgbmV4dF9zdGF0ZSA6ICIoKFNFIFNJKSArICghU0UgRCkpIjsKLSAgICBjbG9ja2VkX29uIDogIkNLIjsKLSAgICBjbGVhciA6ICIoIVJOKSI7Ci0gICAgcHJlc2V0IDogIighU04pIjsKLSAgICBjbGVhcl9wcmVzZXRfdmFyMSA6IEg7Ci0gIH0KLSAgcGluKENLKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA1OTMyMTM7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNTkyOTU7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNTkzMjEzOwotICAgIGNsb2NrIDogdHJ1ZTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDMwMTIsIDAuMDAzMDAyLCAwLjAwMjk5MiwgMC4wMDI5ODYsIDAuMDAyOTgxLCAwLjAwMjk3NCwgMC4wMDI5NzEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDcyNzUsIDAuMDA3MjY1LCAwLjAwNzI1OCwgMC4wMDcyNTEsIDAuMDA3MjQ3LCAwLjAwNzI0NiwgMC4wMDcyNTIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFEJlJOJiFTRSYhU0kmU04iOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1JOX0VRXzFfQU5fU0VfRVFfMF9BTl9TSV9FUV8wX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4zMzcyNSwgMC4zNDkwNTYsIDAuMzY0MTMxLCAwLjM3OTU4MSwgMC4zOTUwMjMsIDAuNDE5NDY1LCAwLjQ0MDkyMSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMjU5MjEsIDAuMjcwNjEzLCAwLjI4NTU1OCwgMC4zMDA0MTUsIDAuMzE1MjY5LCAwLjMzODg0OSwgMC4zNTkwMTQiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEQpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDg3NzQ5MzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA4NzQzMDU7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwODc3NDkzOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNDAzOCwgMC4wMDQwMTgsIDAuMDA0MDA5LCAwLjAwNDAwMiwgMC4wMDM5OTYsIDAuMDAzOTg5LCAwLjAwMzk4NSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNTA2NCwgMC4wMDUwNTQsIDAuMDA1MDQ5LCAwLjAwNTA0NCwgMC4wMDUwNDEsIDAuMDA1MDM3LCAwLjAwNTAzMyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJSTiYhU0UmU04iOwotICAgICAgc2RmX2NvbmQgOiAiUk5fRVFfMV9BTl9TRV9FUV8wX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMTA2MjUsIC0wLjA5NSwgLTAuMDgyNSwgLTAuMDcsIC0wLjA1NzUsIC0wLjA0MTI1LCAtMC4wMjYyNSIsIFwKLSAgICAgICAgICAiLTAuMTE3NSwgLTAuMTA2MjUsIC0wLjA5Mzc1LCAtMC4wODEyNSwgLTAuMDY4NzUsIC0wLjA1MjUsIC0wLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjEzLCAtMC4xMTg3NSwgLTAuMTA2MjUsIC0wLjA5Mzc1LCAtMC4wODEyNSwgLTAuMDY1LCAtMC4wNSIsIFwKLSAgICAgICAgICAiLTAuMTQyNSwgLTAuMTMxMjUsIC0wLjExODc1LCAtMC4xMDYyNSwgLTAuMDkzNzUsIC0wLjA3NzUsIC0wLjA2MjUiLCBcCi0gICAgICAgICAgIi0wLjE1NSwgLTAuMTQzNzUsIC0wLjEzMTI1LCAtMC4xMTg3NSwgLTAuMTEyNSwgLTAuMDksIC0wLjA3NSIsIFwKLSAgICAgICAgICAiLTAuMTc3NSwgLTAuMTY2MjUsIC0wLjE1Mzc1LCAtMC4xNDEyNSwgLTAuMTI4NzUsIC0wLjExMjUsIC0wLjA5NzUiLCBcCi0gICAgICAgICAgIi0wLjE5ODc1LCAtMC4xODc1LCAtMC4xNzUsIC0wLjE2MjUsIC0wLjE1LCAtMC4xMzM3NSwgLTAuMTE4NzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjI1LCAwLjAxNzUsIDAuMDM2MjUsIDAuMDQ4NzUsIDAuMDYxMjUsIDAuMDgzNzUsIDAuMTA1IiwgXAotICAgICAgICAgICItMC4wMDUsIDAuMDA2MjUsIDAuMDI1LCAwLjAzNzUsIDAuMDUsIDAuMDc4NzUsIDAuMDkzNzUiLCBcCi0gICAgICAgICAgIi0wLjAxNzUsIC0wLjAwNjI1LCAwLjAxMjUsIDAuMDI1LCAwLjAzNzUsIDAuMDYsIDAuMDgxMjUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMTg3NSwgMCwgMC4wMTI1LCAwLjAyNSwgMC4wNTM3NSwgMC4wNjg3NSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDI1LCAtMC4wMTI1LCAwLCAwLjAxODc1LCAwLjA0MTI1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICItMC4wNTg3NSwgLTAuMDQ3NSwgLTAuMDI4NzUsIC0wLjAxNjI1LCAtMC4wMDM3NSwgMC4wMTg3NSwgMC4wNCIsIFwKLSAgICAgICAgICAiLTAuMDczNzUsIC0wLjA2MjUsIC0wLjA0Mzc1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIDAuMDAzNzUsIDAuMDI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJSTiYhU0UmU04iOwotICAgICAgc2RmX2NvbmQgOiAiUk5fRVFfMV9BTl9TRV9FUV8wX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjE4NzUsIDAuMjAxMjUsIDAuMTg4NzUsIDAuMTcsIDAuMTUxMjUsIDAuMTI4NzUsIDAuMTEzNzUiLCBcCi0gICAgICAgICAgIjAuMjMsIDAuMjEyNSwgMC4yLCAwLjE4MTI1LCAwLjE2MjUsIDAuMTQsIDAuMTE4NzUiLCBcCi0gICAgICAgICAgIjAuMjQyNSwgMC4yMzEyNSwgMC4yMTI1LCAwLjE5Mzc1LCAwLjE3NSwgMC4xNTI1LCAwLjEzMTI1IiwgXAotICAgICAgICAgICIwLjI1NSwgMC4yNDM3NSwgMC4yMjUsIDAuMjA2MjUsIDAuMTg3NSwgMC4xNjUsIDAuMTUiLCBcCi0gICAgICAgICAgIjAuMjY3NSwgMC4yNTYyNSwgMC4yMzc1LCAwLjIxODc1LCAwLjIwNjI1LCAwLjE3NzUsIDAuMTYyNSIsIFwKLSAgICAgICAgICAiMC4yOSwgMC4yNzg3NSwgMC4yNiwgMC4yNDEyNSwgMC4yMjI1LCAwLjIsIDAuMTg1IiwgXAotICAgICAgICAgICIwLjMwNSwgMC4yOTM3NSwgMC4yNzUsIDAuMjYyNSwgMC4yNDM3NSwgMC4yMjEyNSwgMC4yIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTUsIDAuMTMyNSwgMC4xMiwgMC4xMDEyNSwgMC4wODg3NSwgMC4wNiwgMC4wMzg3NSIsIFwKLSAgICAgICAgICAiMC4xNjEyNSwgMC4xNSwgMC4xMzEyNSwgMC4xMTI1LCAwLjEsIDAuMDcxMjUsIDAuMDUiLCBcCi0gICAgICAgICAgIjAuMTczNzUsIDAuMTYyNSwgMC4xNDM3NSwgMC4xMjUsIDAuMTEyNSwgMC4wODM3NSwgMC4wNjI1IiwgXAotICAgICAgICAgICIwLjE4NjI1LCAwLjE3NSwgMC4xNTYyNSwgMC4xMzc1LCAwLjEyNSwgMC4wOTYyNSwgMC4wNzUiLCBcCi0gICAgICAgICAgIjAuMTk4NzUsIDAuMTg3NSwgMC4xNjg3NSwgMC4xNSwgMC4xMzc1LCAwLjEwODc1LCAwLjA4NzUiLCBcCi0gICAgICAgICAgIjAuMjE1LCAwLjIwMzc1LCAwLjE4NSwgMC4xNzI1LCAwLjE1Mzc1LCAwLjEzMTI1LCAwLjEwMzc1IiwgXAotICAgICAgICAgICIwLjIzLCAwLjIxODc1LCAwLjIwNjI1LCAwLjE4NzUsIDAuMTY4NzUsIDAuMTQ2MjUsIDAuMTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihRKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMjQ3NTI7Ci0gICAgZnVuY3Rpb24gOiAiTjM1IjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBub25fdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJpc2luZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yOTgxMjksIDAuNDc4NDQ3LCAwLjYyMTY3MSwgMC44MDA3MTgsIDAuOTc5NzQ2LCAxLjE1ODc3LCAxLjMzNzgiLCBcCi0gICAgICAgICAgIjAuMzEwMTksIDAuNDkwNDYxLCAwLjYzMzcxMiwgMC44MTI3MTYsIDAuOTkxNzU5LCAxLjE3MDc3LCAxLjM0OTk0IiwgXAotICAgICAgICAgICIwLjMyNDkwMSwgMC41MDUyMywgMC42NDg0NzEsIDAuODI3NDkyLCAxLjAwNjUyLCAxLjE4NTU0LCAxLjM2NDYzIiwgXAotICAgICAgICAgICIwLjM0MDE5NSwgMC41MjA1ODYsIDAuNjYzODExLCAwLjg0Mjg0LCAxLjAyMTg2LCAxLjIwMDg4LCAxLjM4MDA3IiwgXAotICAgICAgICAgICIwLjM1NTcxOCwgMC41MzYwNzcsIDAuNjc5MzAzLCAwLjg1ODMyOSwgMS4wMzczNywgMS4yMTYzOSwgMS4zOTU0NiIsIFwKLSAgICAgICAgICAiMC4zODAwNjIsIDAuNTYwNDE2LCAwLjcwMzY1NiwgMC44ODI2ODcsIDEuMDYxNywgMS4yNDA3MiwgMS40MTk4MyIsIFwKLSAgICAgICAgICAiMC40MDEyNDEsIDAuNTgxNTU2LCAwLjcyNDc4NCwgMC45MDM3ODgsIDEuMDgyODMsIDEuMjYxODUsIDEuNDQwOTMiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDkzNDA5LCAwLjQ0OTk1NSwgMC43NDIsIDEuMTA3NDgsIDEuNDcyNjEsIDEuODM3NTUsIDIuMjAzMzciLCBcCi0gICAgICAgICAgIjAuMDkzNDQzLCAwLjQ1MDU1LCAwLjc0MDU2NCwgMS4xMDU0OCwgMS40NzI1OSwgMS44Mzc3NiwgMi4yMDM2MyIsIFwKLSAgICAgICAgICAiMC4wOTM1MTUsIDAuNDUwNTYyLCAwLjc0MjA5LCAxLjEwNzI1LCAxLjQ3MjU4LCAxLjgzNzU2LCAyLjIwMzQyIiwgXAotICAgICAgICAgICIwLjA5MzQyMiwgMC40NTA1NCwgMC43NDA1MTQsIDEuMTA0OTQsIDEuNDcyNTgsIDEuODM3NTcsIDIuMjAzNzEiLCBcCi0gICAgICAgICAgIjAuMDkzNDA5LCAwLjQ1MDUzLCAwLjc0MTk1NCwgMS4xMDcxMiwgMS40NzI1OCwgMS44Mzc2LCAyLjIwMzM1IiwgXAotICAgICAgICAgICIwLjA5MzQ4NywgMC40NTA1NTcsIDAuNzQwNDkxLCAxLjEwNzMyLCAxLjQ3MjU4LCAxLjgzNzU1LCAyLjIwMzUzIiwgXAotICAgICAgICAgICIwLjA5MzUwNSwgMC40NTA1NDYsIDAuNzQwNTg2LCAxLjEwMzk4LCAxLjQ3MjU5LCAxLjgzNzU2LCAyLjE5OTgzIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMzNzI2NiwgMC41NDQzMTYsIDAuNzA5MTk5LCAwLjkxNTI1NCwgMS4xMjEzNywgMS4zMjc0MSwgMS41MzM1MSIsIFwKLSAgICAgICAgICAiMC4zNDkwNTYsIDAuNTU2MTA1LCAwLjcyMDk4OSwgMC45MjcwNjQsIDEuMTMzMTEsIDEuMzM5MywgMS41NDUzIiwgXAotICAgICAgICAgICIwLjM2NDEzMSwgMC41NzExNTYsIDAuNzM2MDI0LCAwLjk0MjA4NCwgMS4xNDgyMSwgMS4zNTQyNywgMS41NjAzNSIsIFwKLSAgICAgICAgICAiMC4zNzk1ODEsIDAuNTg2NiwgMC43NTE0OCwgMC45NTc1MzMsIDEuMTYzNjcsIDEuMzY5NzMsIDEuNTc1OCIsIFwKLSAgICAgICAgICAiMC4zOTUwMjMsIDAuNjAyMDczLCAwLjc2Njk1NiwgMC45NzMsIDEuMTc5MTQsIDEuMzg1MTYsIDEuNTkxMjciLCBcCi0gICAgICAgICAgIjAuNDE5NDY1LCAwLjYyNjUxNiwgMC43OTE0MDEsIDAuOTk3NDQ3LCAxLjIwMzU4LCAxLjQwOTYxLCAxLjYxNTcxIiwgXAotICAgICAgICAgICIwLjQ0MDkyMSwgMC42NDc5MzgsIDAuODEyODIsIDEuMDE4ODcsIDEuMjI1MDEsIDEuNDMxMDcsIDEuNjM3MTYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTAwNzMyLCAwLjUwNTM2NSwgMC44MzU5MTgsIDEuMjQ0MjcsIDEuNjU5MDIsIDIuMDY1MzksIDIuNDc0ODUiLCBcCi0gICAgICAgICAgIjAuMTAwNjY5LCAwLjUwNTM2OSwgMC44MzU5MTQsIDEuMjQ0ODQsIDEuNjU2NzEsIDIuMDY5MjksIDIuNDc4NDMiLCBcCi0gICAgICAgICAgIjAuMTAwNzAzLCAwLjUwNTM4NiwgMC44MzU2OTcsIDEuMjQ3MzgsIDEuNjU0ODUsIDIuMDY2MTMsIDIuNDgxNjIiLCBcCi0gICAgICAgICAgIjAuMTAwNzA5LCAwLjUwNTQ4NiwgMC44MzM0NTksIDEuMjQ3MzQsIDEuNjU1MTcsIDIuMDY3MTQsIDIuNDgxNDgiLCBcCi0gICAgICAgICAgIjAuMTAwNzQzLCAwLjUwNTM1OCwgMC44MzU5MDQsIDEuMjQ1NjQsIDEuNjU4ODEsIDIuMDY1MzQsIDIuNDc4MzkiLCBcCi0gICAgICAgICAgIjAuMTAwNzM3LCAwLjUwNTM1OCwgMC44MzU5LCAxLjI0NTgxLCAxLjY1ODg0LCAyLjA2NTM3LCAyLjQ3ODkxIiwgXAotICAgICAgICAgICIwLjEwMDcxNCwgMC41MDYwNTMsIDAuODMzNTMxLCAxLjI0NzM0LCAxLjY1NTIxLCAyLjA2NzQzLCAyLjQ4MTA3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiBjbGVhcjsKLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzg4NzQxLCAwLjU5NTcxOCwgMC43NjA1OCwgMC45NjY2MzksIDEuMTcyNzUsIDEuMzc4OTksIDEuNTg0OTIiLCBcCi0gICAgICAgICAgIjAuNDAwMTYzLCAwLjYwNzEzNSwgMC43NzE5OTcsIDAuOTc4MDU5LCAxLjE4NDE3LCAxLjM5MDIzLCAxLjU5NjM1IiwgXAotICAgICAgICAgICIwLjQxNTExOSwgMC42MjIwNzgsIDAuNzg2OTU4LCAwLjk5MzAxNiwgMS4xOTkxMywgMS40MDUzNCwgMS42MTEzIiwgXAotICAgICAgICAgICIwLjQyOTkzMywgMC42MzY5MDMsIDAuODAxNzY5LCAxLjAwNzg0LCAxLjIxMzk0LCAxLjQyMDA0LCAxLjYyNjExIiwgXAotICAgICAgICAgICIwLjQ0NDAyOSwgMC42NTA5OTcsIDAuODE1ODU5LCAxLjAyMTkyLCAxLjIyODAzLCAxLjQzNDE0LCAxLjY0MDIxIiwgXAotICAgICAgICAgICIwLjQ2NjgwNywgMC42NzM3NjYsIDAuODM4NjQ4LCAxLjA0NDcsIDEuMjUwODIsIDEuNDU2OTUsIDEuNjYyOTgiLCBcCi0gICAgICAgICAgIjAuNDg0NzEsIDAuNjkxNjU4LCAwLjg1NjU1MSwgMS4wNjI2MiwgMS4yNjg3MiwgMS40NzQ4MywgMS42ODA4OCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDA5MDQsIDAuNTA2NDUyLCAwLjgzNTYxMSwgMS4yNDc1NCwgMS42NTYzLCAyLjA2NzgyLCAyLjQ3OTMxIiwgXAotICAgICAgICAgICIwLjEwMDkwNiwgMC41MDU1MzEsIDAuODM1NjQ0LCAxLjI0NzUsIDEuNjU2MTksIDIuMDY2NTYsIDIuNDc5OTciLCBcCi0gICAgICAgICAgIjAuMTAwODYxLCAwLjUwNTkwMywgMC44MzU2NDQsIDEuMjQ3NTMsIDEuNjU3NjgsIDIuMDY1ODgsIDIuNDc5NzIiLCBcCi0gICAgICAgICAgIjAuMTAwODk3LCAwLjUwNjA1NSwgMC44MzU2MjUsIDEuMjQ3NDgsIDEuNjU2NjUsIDIuMDY4NTQsIDIuNDgxNTgiLCBcCi0gICAgICAgICAgIjAuMTAwODk3LCAwLjUwNjAzLCAwLjgzNTUwNiwgMS4yNDc0NiwgMS42NTUyMSwgMi4wNjk3LCAyLjQ3ODM5IiwgXAotICAgICAgICAgICIwLjEwMDkwMywgMC41MDYwOTMsIDAuODM1NDc1LCAxLjI0NzU1LCAxLjY1NTI0LCAyLjA2OTUsIDIuNDgwMDMiLCBcCi0gICAgICAgICAgIjAuMTAwODY3LCAwLjUwNjQxMiwgMC44MzU2MzUsIDEuMjQ2MjgsIDEuNjU1MzksIDIuMDY5NzUsIDIuNDc5ODgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiU04iOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHByZXNldDsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjMwMTAzLCAwLjQxMDA3NywgMC41NTMzMjgsIDAuNzMyMzk4LCAwLjkxMTQyOCwgMS4wOTA0NSwgMS4yNjk0OSIsIFwKLSAgICAgICAgICAiMC4yNDE2OTcsIDAuNDIxNjk4LCAwLjU2NDk5MSwgMC43NDQwMzQsIDAuOTIzMTYyLCAxLjEwMjEyLCAxLjI4MTE2IiwgXAotICAgICAgICAgICIwLjI1NjEzOCwgMC40MzYwMDMsIDAuNTc5MjQzLCAwLjc1ODI4MiwgMC45MzczMTcsIDEuMTE2MzgsIDEuMjk1MzUiLCBcCi0gICAgICAgICAgIjAuMjcwNTIzLCAwLjQ1MDM4OSwgMC41OTM2MjEsIDAuNzcyNjY2LCAwLjk1MTcwMSwgMS4xMzA3NSwgMS4zMDk3NSIsIFwKLSAgICAgICAgICAiMC4yODUxMDMsIDAuNDY1MDcsIDAuNjA4MjY0LCAwLjc4NzM1NSwgMC45NjY0NTUsIDEuMTQ1NDQsIDEuMzI0NDUiLCBcCi0gICAgICAgICAgIjAuMzA4MzM4LCAwLjQ4ODE3MywgMC42MzE0MjksIDAuODEwNDYsIDAuOTg5NDkyLCAxLjE2ODU1LCAxLjM0NzUxIiwgXAotICAgICAgICAgICIwLjMyODMzOCwgMC41MDgyMDcsIDAuNjUxNDQ0LCAwLjgzMDQ4NCwgMS4wMDk1MiwgMS4xODg1NywgMS4zNjc1NSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTE5MjUsIDAuNDUwMjU0LCAwLjc0MjE3MSwgMS4xMDU2NywgMS40NzI2OSwgMS44MzgzMiwgMi4yMDE4NyIsIFwKLSAgICAgICAgICAiMC4wOTE4NTIsIDAuNDUwMDk4LCAwLjc0MjM3OCwgMS4xMDcwMiwgMS40NzI4NiwgMS44MzgwNCwgMi4yMDM2NCIsIFwKLSAgICAgICAgICAiMC4wOTE4MzksIDAuNDUwMjU1LCAwLjc0MjAzNywgMS4xMDU2MiwgMS40NzI4NSwgMS44MzgxLCAyLjIwMzYyIiwgXAotICAgICAgICAgICIwLjA5MTg3NiwgMC40NTAwNjUsIDAuNzQyMTYyLCAxLjEwNzQ3LCAxLjQ3Mjg5LCAxLjgzODI2LCAyLjIwMzY0IiwgXAotICAgICAgICAgICIwLjA5MTkyLCAwLjQ1MDA1MiwgMC43NDIxNTgsIDEuMTA3NDIsIDEuNDcyNjUsIDEuODM4MjgsIDIuMjAzMzYiLCBcCi0gICAgICAgICAgIjAuMDkxODU0LCAwLjQ0OTk1NiwgMC43NDIyNjQsIDEuMTA3NDUsIDEuNDcyOCwgMS44MzgyOCwgMi4yMDMyMiIsIFwKLSAgICAgICAgICAiMC4wOTE4MDEsIDAuNDUwMjU2LCAwLjc0MjE3NSwgMS4xMDc1MiwgMS40NzI4NiwgMS44MzgxOCwgMi4yMDMwNyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zNDk2NzUsIDAuNTU2NjUyLCAwLjcyMTUxNSwgMC45Mjc1NzQsIDEuMTMzNjksIDEuMzM5NzgsIDEuNTQ1ODciLCBcCi0gICAgICAgICAgIjAuMzYxNTQzLCAwLjU2ODUxMiwgMC43MzMzNzQsIDAuOTM5NDM4LCAxLjE0NTU1LCAxLjM1MTcxLCAxLjU1NzczIiwgXAotICAgICAgICAgICIwLjM3NTc3MiwgMC41ODI3MzEsIDAuNzQ3NjEzLCAwLjk1MzY4NCwgMS4xNTk3OCwgMS4zNjU5MSwgMS41NzE5NSIsIFwKLSAgICAgICAgICAiMC4zODkzMTYsIDAuNTk2Mjk1LCAwLjc2MTE1OCwgMC45NjcyMjcsIDEuMTczMzMsIDEuMzc5NDIsIDEuNTg1NDkiLCBcCi0gICAgICAgICAgIjAuNDAyNzYzLCAwLjYwOTcwMywgMC43NzQ1NTIsIDAuOTgwNjQ4LCAxLjE4Njc0LCAxLjM5Mjg0LCAxLjU5OTAzIiwgXAotICAgICAgICAgICIwLjQyNDIwNiwgMC42MzExNjIsIDAuNzk2MDQ1LCAxLjAwMjEsIDEuMjA4MjEsIDEuNDE0MzMsIDEuNjIwMzgiLCBcCi0gICAgICAgICAgIjAuNDQyOTI2LCAwLjY0OTg4MSwgMC44MTQ3NjgsIDEuMDIwODQsIDEuMjI2OTQsIDEuNDMzMDMsIDEuNjM5MSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDA4NjksIDAuNTA2NTMsIDAuODM1NDYyLCAxLjI0NzU1LCAxLjY1NTMsIDIuMDY5MjQsIDIuNDc5OTciLCBcCi0gICAgICAgICAgIjAuMTAwNzcsIDAuNTA1OTMzLCAwLjgzNTQ3NCwgMS4yNDc0OCwgMS42NTYyNiwgMi4wNjkzMiwgMi40NzkyNSIsIFwKLSAgICAgICAgICAiMC4xMDA4NSwgMC41MDY0ODQsIDAuODM1NDY3LCAxLjI0NjMsIDEuNjU1NDQsIDIuMDY5NTEsIDIuNDc5NjUiLCBcCi0gICAgICAgICAgIjAuMTAwODcyLCAwLjUwNjUxNiwgMC44MzU0NywgMS4yNDYzLCAxLjY1Njg2LCAyLjA2OTk3LCAyLjQ3ODk1IiwgXAotICAgICAgICAgICIwLjEwMDg5NSwgMC41MDU5MzUsIDAuODM1OTIyLCAxLjI0NjIsIDEuNjU3NjIsIDIuMDY1OCwgMi40Nzk4NiIsIFwKLSAgICAgICAgICAiMC4xMDA4NjYsIDAuNTA1Nzc1LCAwLjgzNTQ2NywgMS4yNDc1NCwgMS42NTY5MiwgMi4wNjk2NiwgMi40Nzk4NSIsIFwKLSAgICAgICAgICAiMC4xMDA4ODIsIDAuNTA1OTM5LCAwLjgzNTQ3LCAxLjI0NjM1LCAxLjY1NjE0LCAyLjA2OTg4LCAyLjQ3OTg0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNzY0OSwgMC4wMDc2ODYsIDAuMDA3NjkxLCAwLjAwNzY5MywgMC4wMDc2OTQsIDAuMDA3Njk2LCAwLjAwNzY5NiIsIFwKLSAgICAgICAgICAiMC4wMDc2MzksIDAuMDA3Njc3LCAwLjAwNzY4MSwgMC4wMDc2ODIsIDAuMDA3Njg0LCAwLjAwNzY4NSwgMC4wMDc2ODYiLCBcCi0gICAgICAgICAgIjAuMDA3NjI3LCAwLjAwNzY2NSwgMC4wMDc2NjksIDAuMDA3NjcxLCAwLjAwNzY3MywgMC4wMDc2NzMsIDAuMDA3Njc0IiwgXAotICAgICAgICAgICIwLjAwNzYxOSwgMC4wMDc2NTYsIDAuMDA3NjYxLCAwLjAwNzY2MywgMC4wMDc2NjUsIDAuMDA3NjY1LCAwLjAwNzY2NiIsIFwKLSAgICAgICAgICAiMC4wMDc2MTEsIDAuMDA3NjQ5LCAwLjAwNzY1NCwgMC4wMDc2NTUsIDAuMDA3NjU3LCAwLjAwNzY1NywgMC4wMDc2NTgiLCBcCi0gICAgICAgICAgIjAuMDA3NjAxLCAwLjAwNzYzOSwgMC4wMDc2NDQsIDAuMDA3NjQ2LCAwLjAwNzY0OCwgMC4wMDc2NDgsIDAuMDA3NjQ5IiwgXAotICAgICAgICAgICIwLjAwNzU5NCwgMC4wMDc2MzIsIDAuMDA3NjM2LCAwLjAwNzYzOCwgMC4wMDc2NCwgMC4wMDc2NCwgMC4wMDc2NCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNzMwOSwgMC4wMDczNiwgMC4wMDczNjYsIDAuMDA3MzcsIDAuMDA3MzcxLCAwLjAwNzM3MywgMC4wMDczNzMiLCBcCi0gICAgICAgICAgIjAuMDA3MzAxLCAwLjAwNzM1MiwgMC4wMDczNTgsIDAuMDA3MzYyLCAwLjAwNzM2MywgMC4wMDczNjQsIDAuMDA3MzY1IiwgXAotICAgICAgICAgICIwLjAwNzI4NywgMC4wMDczMzksIDAuMDA3MzQ2LCAwLjAwNzM0OSwgMC4wMDczNTEsIDAuMDA3MzUyLCAwLjAwNzM1MyIsIFwKLSAgICAgICAgICAiMC4wMDcyODEsIDAuMDA3MzMzLCAwLjAwNzM0LCAwLjAwNzM0MywgMC4wMDczNDUsIDAuMDA3MzQ2LCAwLjAwNzM0NyIsIFwKLSAgICAgICAgICAiMC4wMDcyNzUsIDAuMDA3MzI2LCAwLjAwNzMzMywgMC4wMDczMzYsIDAuMDA3MzM4LCAwLjAwNzMzOSwgMC4wMDczMzkiLCBcCi0gICAgICAgICAgIjAuMDA3Mjc0LCAwLjAwNzMyNiwgMC4wMDczMzMsIDAuMDA3MzM2LCAwLjAwNzMzOCwgMC4wMDczMzksIDAuMDA3MzM5IiwgXAotICAgICAgICAgICIwLjAwNzI3MiwgMC4wMDczMjQsIDAuMDA3MzMxLCAwLjAwNzMzNSwgMC4wMDczMzYsIDAuMDA3MzM3LCAwLjAwNzMzOCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDkyMjUsIDAuMDA5MjgsIDAuMDA5Mjg4LCAwLjAwOTI5MiwgMC4wMDkyOTMsIDAuMDA5Mjk1LCAwLjAwOTI5NSIsIFwKLSAgICAgICAgICAiMC4wMDkyMTUsIDAuMDA5MjcsIDAuMDA5Mjc4LCAwLjAwOTI4MiwgMC4wMDkyODQsIDAuMDA5Mjg1LCAwLjAwOTI4NiIsIFwKLSAgICAgICAgICAiMC4wMDkyMDcsIDAuMDA5MjYyLCAwLjAwOTI3LCAwLjAwOTI3NCwgMC4wMDkyNzYsIDAuMDA5Mjc3LCAwLjAwOTI3OCIsIFwKLSAgICAgICAgICAiMC4wMDkyLCAwLjAwOTI1NiwgMC4wMDkyNjMsIDAuMDA5MjY3LCAwLjAwOTI2OSwgMC4wMDkyNywgMC4wMDkyNzEiLCBcCi0gICAgICAgICAgIjAuMDA5MTkyLCAwLjAwOTI0NywgMC4wMDkyNTUsIDAuMDA5MjU5LCAwLjAwOTI2MSwgMC4wMDkyNjIsIDAuMDA5MjYyIiwgXAotICAgICAgICAgICIwLjAwOTE4OSwgMC4wMDkyNDUsIDAuMDA5MjUyLCAwLjAwOTI1NiwgMC4wMDkyNTgsIDAuMDA5MjU5LCAwLjAwOTI2IiwgXAotICAgICAgICAgICIwLjAwOTE4MywgMC4wMDkyMzksIDAuMDA5MjQ2LCAwLjAwOTI1LCAwLjAwOTI1MiwgMC4wMDkyNTMsIDAuMDA5MjU0Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3Bvd2VyKHNjYWxhcikgewotICAgICAgICB2YWx1ZXMoIjAiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA4OTk2LCAwLjAwOTAyOCwgMC4wMDkwMzIsIDAuMDA5MDMzLCAwLjAwOTAzNSwgMC4wMDkwMzQsIDAuMDA5MDM1IiwgXAotICAgICAgICAgICIwLjAwODk3NywgMC4wMDkwMTEsIDAuMDA5MDEzLCAwLjAwOTAxNCwgMC4wMDkwMTYsIDAuMDA5MDE4LCAwLjAwOTAxNiIsIFwKLSAgICAgICAgICAiMC4wMDg5NjUsIDAuMDA4OTk4LCAwLjAwODk5OSwgMC4wMDkwMDEsIDAuMDA5MDAzLCAwLjAwOTAwMiwgMC4wMDkwMDQiLCBcCi0gICAgICAgICAgIjAuMDA4OTU2LCAwLjAwODk4OSwgMC4wMDg5OTIsIDAuMDA4OTkyLCAwLjAwODk5NCwgMC4wMDg5OTQsIDAuMDA4OTk1IiwgXAotICAgICAgICAgICIwLjAwODk1LCAwLjAwODk4MiwgMC4wMDg5ODYsIDAuMDA4OTg5LCAwLjAwODk4OSwgMC4wMDg5ODksIDAuMDA4OTg4IiwgXAotICAgICAgICAgICIwLjAwODk0LCAwLjAwODk3MywgMC4wMDg5NzYsIDAuMDA4OTc3LCAwLjAwODk3OCwgMC4wMDg5NzgsIDAuMDA4OTgyIiwgXAotICAgICAgICAgICIwLjAwODkzNCwgMC4wMDg5NjgsIDAuMDA4OTcxLCAwLjAwODk3MiwgMC4wMDg5NzMsIDAuMDA4OTc0LCAwLjAwODk3NCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjgzOCwgMC4wMDY4OTMsIDAuMDA2OTAxLCAwLjAwNjkwNCwgMC4wMDY5MDYsIDAuMDA2OTA3LCAwLjAwNjkwOCIsIFwKLSAgICAgICAgICAiMC4wMDY4MTcsIDAuMDA2ODcyLCAwLjAwNjg4LCAwLjAwNjg4NCwgMC4wMDY4ODYsIDAuMDA2ODg3LCAwLjAwNjg4OCIsIFwKLSAgICAgICAgICAiMC4wMDY4MDMsIDAuMDA2ODU5LCAwLjAwNjg2NiwgMC4wMDY4NywgMC4wMDY4NzIsIDAuMDA2ODczLCAwLjAwNjg3NCIsIFwKLSAgICAgICAgICAiMC4wMDY3OTQsIDAuMDA2ODQ5LCAwLjAwNjg1NywgMC4wMDY4NiwgMC4wMDY4NjMsIDAuMDA2ODY0LCAwLjAwNjg2NCIsIFwKLSAgICAgICAgICAiMC4wMDY3ODYsIDAuMDA2ODQyLCAwLjAwNjg0OSwgMC4wMDY4NTMsIDAuMDA2ODU1LCAwLjAwNjg1NiwgMC4wMDY4NTciLCBcCi0gICAgICAgICAgIjAuMDA2Nzc3LCAwLjAwNjgzMiwgMC4wMDY4NCwgMC4wMDY4NDQsIDAuMDA2ODQ2LCAwLjAwNjg0NywgMC4wMDY4NDgiLCBcCi0gICAgICAgICAgIjAuMDA2NzcsIDAuMDA2ODI2LCAwLjAwNjgzNCwgMC4wMDY4MzgsIDAuMDA2ODM5LCAwLjAwNjg0MSwgMC4wMDY4NDIiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFJOKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA1NDA2MDM7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNTQwMjEyOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDU0MDYwMzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA2NDYsIDAuMDAwNjMyLCAwLjAwMDYyMiwgMC4wMDA2MTcsIDAuMDAwNjE0LCAwLjAwMDYxMSwgMC4wMDA2MSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjA0NSwgMC4wMDIwMzYsIDAuMDAyMDMxLCAwLjAwMjAyNywgMC4wMDIwMjUsIDAuMDAyMDIzLCAwLjAwMjAyMSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQmIVNFJiFTSSZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fU0VfRVFfMF9BTl9TSV9FUV8wX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4zODg3NDEsIDAuNDAwMTYzLCAwLjQxNTExOSwgMC40Mjk5MzMsIDAuNDQ0MDI5LCAwLjQ2NjgwNywgMC40ODQ3MSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJlY292ZXJ5X3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiU04iOwotICAgICAgc2RmX2NvbmQgOiAiU04gPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQocmVjb3ZlcnlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTE4NzUsIDAuMTA3NSwgMC4wODg3NSwgMC4wNzYyNSwgMC4wNTc1LCAwLjAzNSwgMC4wMTM3NSIsIFwKLSAgICAgICAgICAiMC4xMywgMC4xMTg3NSwgMC4xMDYyNSwgMC4wODc1LCAwLjA2ODc1LCAwLjA0NjI1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiMC4xNDg3NSwgMC4xMzEyNSwgMC4xMTg3NSwgMC4xLCAwLjA4NzUsIDAuMDU4NzUsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiMC4xNjEyNSwgMC4xNSwgMC4xMzEyNSwgMC4xMTg3NSwgMC4xLCAwLjA3MTI1LCAwLjA1IiwgXAotICAgICAgICAgICIwLjE4LCAwLjE2ODc1LCAwLjE1LCAwLjEzMTI1LCAwLjExMjUsIDAuMDksIDAuMDY4NzUiLCBcCi0gICAgICAgICAgIjAuMjAyNSwgMC4xOTEyNSwgMC4xNzI1LCAwLjE2LCAwLjE0MTI1LCAwLjExMjUsIDAuMDkxMjUiLCBcCi0gICAgICAgICAgIjAuMjIzNzUsIDAuMjEyNSwgMC4xOTM3NSwgMC4xNzUsIDAuMTYyNSwgMC4xMzM3NSwgMC4xMTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIHRpbWluZ190eXBlIDogcmVjb3ZlcnlfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRCYhU0UmIVNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9TRV9FUV8wX0FOX1NJX0VRXzAgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQocmVjb3ZlcnlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTY4NzUsIDAuMTgsIDAuMTk4NzUsIDAuMjExMjUsIDAuMjIzNzUsIDAuMjQsIDAuMjYxMjUiLCBcCi0gICAgICAgICAgIjAuMTU3NSwgMC4xNjg3NSwgMC4xODc1LCAwLjIsIDAuMjEyNSwgMC4yMjg3NSwgMC4yNSIsIFwKLSAgICAgICAgICAiMC4xNDUsIDAuMTU2MjUsIDAuMTc1LCAwLjE4NzUsIDAuMiwgMC4yMTYyNSwgMC4yMzc1IiwgXAotICAgICAgICAgICIwLjEzMjUsIDAuMTQzNzUsIDAuMTYyNSwgMC4xNzUsIDAuMTg3NSwgMC4yMDM3NSwgMC4yMjUiLCBcCi0gICAgICAgICAgIjAuMTI2MjUsIDAuMTM3NSwgMC4xNSwgMC4xNjI1LCAwLjE3NSwgMC4xOTc1LCAwLjIxMjUiLCBcCi0gICAgICAgICAgIjAuMTEsIDAuMTIxMjUsIDAuMTMzNzUsIDAuMTUyNSwgMC4xNjUsIDAuMTgxMjUsIDAuMTk2MjUiLCBcCi0gICAgICAgICAgIjAuMTAxMjUsIDAuMTEyNSwgMC4xMjUsIDAuMTM3NSwgMC4xNSwgMC4xNzI1LCAwLjE4NzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiByZW1vdmFsX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiU04iOwotICAgICAgc2RmX2NvbmQgOiAiU04gPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQocmVtb3ZhbF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDI1LCAtMC4wMDc1LCAwLjAwNSwgMC4wMjM3NSwgMC4wMzYyNSwgMC4wNTg3NSwgMC4wOCIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAxODc1LCAtMC4wMDYyNSwgMC4wMDYyNSwgMC4wMjUsIDAuMDQ3NSwgMC4wNjg3NSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjAzNzUsIC0wLjAxODc1LCAtMC4wMDYyNSwgMC4wMDYyNSwgMC4wMzUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIi0wLjA2MTI1LCAtMC4wNSwgLTAuMDM3NSwgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLjAxNjI1LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjA4LCAtMC4wNjg3NSwgLTAuMDUsIC0wLjAzNzUsIC0wLjAxODc1LCAwLjAwMzc1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMTAyNSwgLTAuMDkxMjUsIC0wLjA3ODc1LCAtMC4wNiwgLTAuMDQ3NSwgLTAuMDE4NzUsIC0wLjAwMzc1IiwgXAotICAgICAgICAgICItMC4xMjM3NSwgLTAuMTEyNSwgLTAuMSwgLTAuMDgxMjUsIC0wLjA2ODc1LCAtMC4wNCwgLTAuMDE4NzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFNFKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE1OTYwNTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE1OTUzOTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE1OTYwNTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDQ4MTksIDAuMDA0ODE2LCAwLjAwNDgxMiwgMC4wMDQ4MDYsIDAuMDA0ODAyLCAwLjAwNDc5NiwgMC4wMDQ3OTMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDYwMjcsIDAuMDA2MDAzLCAwLjAwNTk4MywgMC4wMDU5NzEsIDAuMDA1OTYxLCAwLjAwNTk0OSwgMC4wMDU5NDQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiUk4mU04iOwotICAgICAgc2RmX2NvbmQgOiAiUk5fRVFfMV9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAxODc1LCAtMC4wMDc1LCAwLjAwNSwgMC4wMjM3NSwgMC4wMzYyNSwgMC4wNTg3NSwgMC4wOCIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAxODc1LCAtMC4wMDYyNSwgMC4wMDYyNSwgMC4wMjUsIDAuMDQ3NSwgMC4wNjg3NSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjAzNzUsIC0wLjAxODc1LCAtMC4wMDYyNSwgMC4wMDYyNSwgMC4wMjg3NSwgMC4wNSIsIFwKLSAgICAgICAgICAiLTAuMDYxMjUsIC0wLjA1LCAtMC4wMzc1LCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAuMDE2MjUsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDgsIC0wLjA2ODc1LCAtMC4wNSwgLTAuMDM3NSwgLTAuMDI1LCAwLjAwMzc1LCAwLjAxODc1IiwgXAotICAgICAgICAgICItMC4xMDI1LCAtMC4wODUsIC0wLjA3MjUsIC0wLjA2LCAtMC4wNDc1LCAtMC4wMTg3NSwgLTAuMDAzNzUiLCBcCi0gICAgICAgICAgIi0wLjExNzUsIC0wLjEwNjI1LCAtMC4wOTM3NSwgLTAuMDc1LCAtMC4wNjI1LCAtMC4wNCwgLTAuMDE4NzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxODc1LCAwLjAzLCAwLjA0MjUsIDAuMDYxMjUsIDAuMDczNzUsIDAuMDk2MjUsIDAuMTE3NSIsIFwKLSAgICAgICAgICAiMC4wMDc1LCAwLjAxODc1LCAwLjAzNzUsIDAuMDUsIDAuMDYyNSwgMC4wOTEyNSwgMC4xMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDA1LCAwLjAwNjI1LCAwLjAyNSwgMC4wMzc1LCAwLjA1LCAwLjA3ODc1LCAwLjA5Mzc1IiwgXAotICAgICAgICAgICItMC4wMTc1LCAtMC4wMDYyNSwgMC4wMTI1LCAwLjAyNSwgMC4wMzc1LCAwLjA2NjI1LCAwLjA4MTI1IiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDE4NzUsIDAsIDAuMDEyNSwgMC4wMjUsIDAuMDUzNzUsIDAuMDY4NzUiLCBcCi0gICAgICAgICAgIi0wLjA0NjI1LCAtMC4wMzUsIC0wLjAyMjUsIC0wLjAwMzc1LCAwLjAwODc1LCAwLjAzMTI1LCAwLjA1MjUiLCBcCi0gICAgICAgICAgIi0wLjA2MTI1LCAtMC4wNSwgLTAuMDM3NSwgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLjAxNjI1LCAwLjAzNzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlJOJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIlJOX0VRXzFfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yLCAwLjE4ODc1LCAwLjE3LCAwLjE1MTI1LCAwLjEzODc1LCAwLjExNjI1LCAwLjA5NSIsIFwKLSAgICAgICAgICAiMC4yMTEyNSwgMC4yLCAwLjE4MTI1LCAwLjE2MjUsIDAuMTUsIDAuMTIxMjUsIDAuMTA2MjUiLCBcCi0gICAgICAgICAgIjAuMjIzNzUsIDAuMjEyNSwgMC4xOTM3NSwgMC4xNzUsIDAuMTYyNSwgMC4xMzM3NSwgMC4xMTg3NSIsIFwKLSAgICAgICAgICAiMC4yMzYyNSwgMC4yMjUsIDAuMjA2MjUsIDAuMTg3NSwgMC4xNzUsIDAuMTUyNSwgMC4xMzEyNSIsIFwKLSAgICAgICAgICAiMC4yNDg3NSwgMC4yMzc1LCAwLjIxODc1LCAwLjIwNjI1LCAwLjE4NzUsIDAuMTY1LCAwLjE0Mzc1IiwgXAotICAgICAgICAgICIwLjI3MTI1LCAwLjI2LCAwLjI0MTI1LCAwLjIyMjUsIDAuMjEsIDAuMTgxMjUsIDAuMTY2MjUiLCBcCi0gICAgICAgICAgIjAuMjkyNSwgMC4yODEyNSwgMC4yNjI1LCAwLjI0Mzc1LCAwLjIyNSwgMC4yMDI1LCAwLjE4NzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMzc1LCAwLjIyNjI1LCAwLjIwNzUsIDAuMTg4NzUsIDAuMTc2MjUsIDAuMTQ3NSwgMC4xMzI1IiwgXAotICAgICAgICAgICIwLjI0ODc1LCAwLjIzNzUsIDAuMjE4NzUsIDAuMjA2MjUsIDAuMTg3NSwgMC4xNjUsIDAuMTQzNzUiLCBcCi0gICAgICAgICAgIjAuMjY3NSwgMC4yNSwgMC4yMzc1LCAwLjIxODc1LCAwLjIsIDAuMTc3NSwgMC4xNjI1IiwgXAotICAgICAgICAgICIwLjI4LCAwLjI2ODc1LCAwLjI1LCAwLjIzMTI1LCAwLjIxMjUsIDAuMTksIDAuMTc1IiwgXAotICAgICAgICAgICIwLjI5MjUsIDAuMjgxMjUsIDAuMjYyNSwgMC4yNDM3NSwgMC4yMzEyNSwgMC4yMDg3NSwgMC4xODc1IiwgXAotICAgICAgICAgICIwLjMxNSwgMC4yOTc1LCAwLjI4NSwgMC4yNjYyNSwgMC4yNDc1LCAwLjIyNSwgMC4yMDM3NSIsIFwKLSAgICAgICAgICAiMC4zMywgMC4zMTI1LCAwLjMsIDAuMjgxMjUsIDAuMjYyNSwgMC4yNCwgMC4yMTg3NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oU0kpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDg3MjYzMzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA4NjkwNTI7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwODcyNjMzOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzgyOSwgMC4wMDM4MSwgMC4wMDM4LCAwLjAwMzc5MywgMC4wMDM3ODgsIDAuMDAzNzgxLCAwLjAwMzc3NiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNTIzOCwgMC4wMDUyMjgsIDAuMDA1MjIzLCAwLjAwNTIxOSwgMC4wMDUyMTUsIDAuMDA1MjExLCAwLjAwNTIwOCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJSTiZTRSZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJSTl9FUV8xX0FOX1NFX0VRXzFfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4xLCAtMC4wOTUsIC0wLjA4MjUsIC0wLjA3LCAtMC4wNTc1LCAtMC4wNDEyNSwgLTAuMDI2MjUiLCBcCi0gICAgICAgICAgIi0wLjExMTI1LCAtMC4xMDYyNSwgLTAuMDkzNzUsIC0wLjA4MTI1LCAtMC4wNjg3NSwgLTAuMDUyNSwgLTAuMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMTMsIC0wLjExODc1LCAtMC4xMDYyNSwgLTAuMDkzNzUsIC0wLjA4MTI1LCAtMC4wNjUsIC0wLjA1IiwgXAotICAgICAgICAgICItMC4xNDI1LCAtMC4xMzEyNSwgLTAuMTE4NzUsIC0wLjEwNjI1LCAtMC4wOTM3NSwgLTAuMDc3NSwgLTAuMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMTU1LCAtMC4xNDM3NSwgLTAuMTMxMjUsIC0wLjExODc1LCAtMC4xMDYyNSwgLTAuMDksIC0wLjA3NSIsIFwKLSAgICAgICAgICAiLTAuMTc3NSwgLTAuMTY2MjUsIC0wLjE1Mzc1LCAtMC4xNDEyNSwgLTAuMTI4NzUsIC0wLjExMjUsIC0wLjA5NzUiLCBcCi0gICAgICAgICAgIi0wLjE5MjUsIC0wLjE4MTI1LCAtMC4xNjg3NSwgLTAuMTU2MjUsIC0wLjE1LCAtMC4xMjc1LCAtMC4xMTg3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2MjUsIDAuMDE3NSwgMC4wMywgMC4wNDg3NSwgMC4wNjEyNSwgMC4wODM3NSwgMC4xMDUiLCBcCi0gICAgICAgICAgIi0wLjAwNSwgMC4wMDYyNSwgMC4wMjUsIDAuMDM3NSwgMC4wNSwgMC4wNzI1LCAwLjA5Mzc1IiwgXAotICAgICAgICAgICItMC4wMTc1LCAtMC4wMDYyNSwgMC4wMTI1LCAwLjAyNSwgMC4wMzc1LCAwLjA2LCAwLjA4MTI1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDE4NzUsIDAsIDAuMDEyNSwgMC4wMjUsIDAuMDQ3NSwgMC4wNjg3NSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDMxMjUsIC0wLjAxMjUsIDAsIDAuMDEyNSwgMC4wNDEyNSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiLTAuMDU4NzUsIC0wLjA0NzUsIC0wLjAzNSwgLTAuMDE2MjUsIC0wLjAwMzc1LCAwLjAxODc1LCAwLjA0IiwgXAotICAgICAgICAgICItMC4wNzM3NSwgLTAuMDYyNSwgLTAuMDUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgMC4wMDM3NSwgMC4wMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlJOJlNFJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIlJOX0VRXzFfQU5fU0VfRVFfMV9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIxMjUsIDAuMjAxMjUsIDAuMTgyNSwgMC4xNjM3NSwgMC4xNTEyNSwgMC4xMjg3NSwgMC4xMDc1IiwgXAotICAgICAgICAgICIwLjIyMzc1LCAwLjIxMjUsIDAuMTkzNzUsIDAuMTc1LCAwLjE2MjUsIDAuMTMzNzUsIDAuMTE4NzUiLCBcCi0gICAgICAgICAgIjAuMjM2MjUsIDAuMjI1LCAwLjIwNjI1LCAwLjE4NzUsIDAuMTc1LCAwLjE1MjUsIDAuMTMxMjUiLCBcCi0gICAgICAgICAgIjAuMjU1LCAwLjIzNzUsIDAuMjE4NzUsIDAuMjA2MjUsIDAuMTg3NSwgMC4xNjUsIDAuMTQzNzUiLCBcCi0gICAgICAgICAgIjAuMjY3NSwgMC4yNSwgMC4yMzc1LCAwLjIxODc1LCAwLjIsIDAuMTc3NSwgMC4xNTYyNSIsIFwKLSAgICAgICAgICAiMC4yOSwgMC4yNzI1LCAwLjI1Mzc1LCAwLjI0MTI1LCAwLjIyMjUsIDAuMiwgMC4xNzg3NSIsIFwKLSAgICAgICAgICAiMC4zMDUsIDAuMjkzNzUsIDAuMjc1LCAwLjI1NjI1LCAwLjIzNzUsIDAuMjE1LCAwLjIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNSwgMC4xMzg3NSwgMC4xMiwgMC4xMDc1LCAwLjA4ODc1LCAwLjA2LCAwLjAzODc1IiwgXAotICAgICAgICAgICIwLjE2MTI1LCAwLjE1LCAwLjEzMTI1LCAwLjExMjUsIDAuMSwgMC4wNzEyNSwgMC4wNSIsIFwKLSAgICAgICAgICAiMC4xNzM3NSwgMC4xNjI1LCAwLjE0Mzc1LCAwLjEzMTI1LCAwLjExMjUsIDAuMDgzNzUsIDAuMDYyNSIsIFwKLSAgICAgICAgICAiMC4xODYyNSwgMC4xNzUsIDAuMTU2MjUsIDAuMTM3NSwgMC4xMjUsIDAuMDk2MjUsIDAuMDc1IiwgXAotICAgICAgICAgICIwLjE5ODc1LCAwLjE4NzUsIDAuMTY4NzUsIDAuMTUsIDAuMTM3NSwgMC4xMDg3NSwgMC4wODc1IiwgXAotICAgICAgICAgICIwLjIxNSwgMC4yMDM3NSwgMC4xOTEyNSwgMC4xNzI1LCAwLjE1Mzc1LCAwLjEzMTI1LCAwLjExIiwgXAotICAgICAgICAgICIwLjIzNjI1LCAwLjIxODc1LCAwLjIwNjI1LCAwLjE4NzUsIDAuMTc1LCAwLjE0NjI1LCAwLjEyNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oU04pICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTkzODYyOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTkzODYyOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTkzODY7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNDg1LCAwLjAwMDQ4NCwgMC4wMDA0ODQsIDAuMDAwNDg0LCAwLjAwMDQ4NCwgMC4wMDA0ODQsIDAuMDAwNDg0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNDg2LCAwLjAwMDQ4NiwgMC4wMDA0ODYsIDAuMDAwNDg2LCAwLjAwMDQ4NiwgMC4wMDA0ODcsIDAuMDAwNDg3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRCYhUk4mIVNFJiFTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fUk5fRVFfMF9BTl9TRV9FUV8wX0FOX1NJX0VRXzAgPT0gMSdiMSI7Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4yMzAwMzEsIDAuMjQxNjk3LCAwLjI1NjEzOCwgMC4yNzA1MjMsIDAuMjg1MTAzLCAwLjMwODMzOCwgMC4zMjgzMzgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiByZWNvdmVyeV9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlJOIjsKLSAgICAgIHNkZl9jb25kIDogIlJOID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHJlY292ZXJ5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMjUsIDAuMDAxMjUsIC0wLjAxNzUsIC0wLjAzNjI1LCAtMC4wNDg3NSwgLTAuMDc3NSwgLTAuMDk4NzUiLCBcCi0gICAgICAgICAgIjAuMDIzNzUsIDAuMDEyNSwgLTAuMDA2MjUsIC0wLjAyNSwgLTAuMDM3NSwgLTAuMDY2MjUsIC0wLjA4NzUiLCBcCi0gICAgICAgICAgIjAuMDM2MjUsIDAuMDI1LCAwLjAwNjI1LCAtMC4wMDYyNSwgLTAuMDI1LCAtMC4wNTM3NSwgLTAuMDc1IiwgXAotICAgICAgICAgICIwLjA0ODc1LCAwLjAzNzUsIDAuMDE4NzUsIDAuMDA2MjUsIC0wLjAxMjUsIC0wLjA0MTI1LCAtMC4wNjI1IiwgXAotICAgICAgICAgICIwLjA2MTI1LCAwLjA1LCAwLjAzNzUsIDAuMDE4NzUsIDAsIC0wLjAyMjUsIC0wLjA1IiwgXAotICAgICAgICAgICIwLjA4Mzc1LCAwLjA3MjUsIDAuMDUzNzUsIDAuMDQxMjUsIDAuMDIyNSwgLTAuMDA2MjUsIC0wLjAyNzUiLCBcCi0gICAgICAgICAgIjAuMTA1LCAwLjA5Mzc1LCAwLjA3NSwgMC4wNTYyNSwgMC4wNDM3NSwgMC4wMTUsIC0wLjAwNjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogcmVtb3ZhbF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlJOIjsKLSAgICAgIHNkZl9jb25kIDogIlJOID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHJlbW92YWxfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDkzNzUsIDAuMTA1LCAwLjEyMzc1LCAwLjEzNjI1LCAwLjE1NSwgMC4xNzc1LCAwLjE5ODc1IiwgXAotICAgICAgICAgICIwLjA4MjUsIDAuMDkzNzUsIDAuMTEyNSwgMC4xMjUsIDAuMTQzNzUsIDAuMTY2MjUsIDAuMTg3NSIsIFwKLSAgICAgICAgICAiMC4wNywgMC4wODEyNSwgMC4xLCAwLjExMjUsIDAuMTMxMjUsIDAuMTUzNzUsIDAuMTc1IiwgXAotICAgICAgICAgICIwLjA1NzUsIDAuMDY4NzUsIDAuMDg3NSwgMC4xLCAwLjExODc1LCAwLjE0MTI1LCAwLjE2MjUiLCBcCi0gICAgICAgICAgIjAuMDQ1LCAwLjA1NjI1LCAwLjA2ODc1LCAwLjA4NzUsIDAuMSwgMC4xMjg3NSwgMC4xNSIsIFwKLSAgICAgICAgICAiMC4wMjI1LCAwLjAzMzc1LCAwLjA1MjUsIDAuMDY1LCAwLjA4Mzc1LCAwLjEwNjI1LCAwLjEyNzUiLCBcCi0gICAgICAgICAgIjAuMDA3NSwgMC4wMTg3NSwgMC4wMzEyNSwgMC4wNSwgMC4wNjI1LCAwLjA4NSwgMC4xMDYyNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IFNERkZTUkhRWDQgKgotICogLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoU0RGRlNSSFFYNCkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjUzNjEzOwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIGZmIChOMzUsUUJJTlQpIHsKLSAgICBuZXh0X3N0YXRlIDogIigoU0UgU0kpICsgKCFTRSBEKSkiOwotICAgIGNsb2NrZWRfb24gOiAiQ0siOwotICAgIGNsZWFyIDogIighUk4pIjsKLSAgICBwcmVzZXQgOiAiKCFTTikiOwotICAgIGNsZWFyX3ByZXNldF92YXIxIDogSDsKLSAgfQotICBwaW4oQ0spICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYzMTAwNTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MzA3NTc7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjMxMDA1OwotICAgIGNsb2NrIDogdHJ1ZTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDI2NzEsIDAuMDAyNjYxLCAwLjAwMjY1MiwgMC4wMDI2NDUsIDAuMDAyNjQxLCAwLjAwMjYzNCwgMC4wMDI2MyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNzEyNSwgMC4wMDcxMTYsIDAuMDA3MTA2LCAwLjAwNzA5NywgMC4wMDcwOTIsIDAuMDA3MDgxLCAwLjAwNzA3NiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQmUk4mIVNFJiFTSSZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fUk5fRVFfMV9BTl9TRV9FUV8wX0FOX1NJX0VRXzBfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjMxNTA4MSwgMC4zMjY4NSwgMC4zNDE3MTgsIDAuMzU3NTI4LCAwLjM3Mjg2OSwgMC4zOTcyODksIDAuNDE4OTI2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4yNDg2NTIsIDAuMjYwMTMsIDAuMjc1MDcxLCAwLjI4OTgyLCAwLjMwNDc0MiwgMC4zMjgxNDIsIDAuMzQ4MzYxIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihEKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA5MjIwMDE7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwOTE4OTY4OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDkyMjAwMTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDM5NzQsIDAuMDAzOTU1LCAwLjAwMzk0NSwgMC4wMDM5MzcsIDAuMDAzOTMyLCAwLjAwMzkyNSwgMC4wMDM5MjEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDQ5MDksIDAuMDA0ODk5LCAwLjAwNDg5MywgMC4wMDQ4OSwgMC4wMDQ4ODUsIDAuMDA0ODgxLCAwLjAwNDg3OCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJSTiYhU0UmU04iOwotICAgICAgc2RmX2NvbmQgOiAiUk5fRVFfMV9BTl9TRV9FUV8wX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMSwgLTAuMDg4NzUsIC0wLjA3NjI1LCAtMC4wNjM3NSwgLTAuMDUxMjUsIC0wLjAzNSwgLTAuMDIiLCBcCi0gICAgICAgICAgIi0wLjExMTI1LCAtMC4xLCAtMC4wODc1LCAtMC4wNzUsIC0wLjA2MjUsIC0wLjA0NjI1LCAtMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMTIzNzUsIC0wLjExMjUsIC0wLjEsIC0wLjA4NzUsIC0wLjA3NSwgLTAuMDU4NzUsIC0wLjA0Mzc1IiwgXAotICAgICAgICAgICItMC4xMzYyNSwgLTAuMTI1LCAtMC4xMTI1LCAtMC4xLCAtMC4wODc1LCAtMC4wNzEyNSwgLTAuMDU2MjUiLCBcCi0gICAgICAgICAgIi0wLjE0ODc1LCAtMC4xMzc1LCAtMC4xMjUsIC0wLjExMjUsIC0wLjEwNjI1LCAtMC4wODM3NSwgLTAuMDY4NzUiLCBcCi0gICAgICAgICAgIi0wLjE3MTI1LCAtMC4xNiwgLTAuMTQ3NSwgLTAuMTM1LCAtMC4xMjI1LCAtMC4xMDYyNSwgLTAuMDkxMjUiLCBcCi0gICAgICAgICAgIi0wLjE5MjUsIC0wLjE4MTI1LCAtMC4xNjg3NSwgLTAuMTU2MjUsIC0wLjE0Mzc1LCAtMC4xMjc1LCAtMC4xMTI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDYyNSwgMC4wMTc1LCAwLjAzLCAwLjA0ODc1LCAwLjA2MTI1LCAwLjA4Mzc1LCAwLjEwNSIsIFwKLSAgICAgICAgICAiLTAuMDA1LCAwLjAwNjI1LCAwLjAyNSwgMC4wMzc1LCAwLjA1LCAwLjA3MjUsIDAuMDkzNzUiLCBcCi0gICAgICAgICAgIi0wLjAxNzUsIC0wLjAwNjI1LCAwLjAxMjUsIDAuMDI1LCAwLjAzNzUsIDAuMDYsIDAuMDgxMjUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMTg3NSwgMCwgMC4wMTI1LCAwLjAyNSwgMC4wNDc1LCAwLjA2ODc1IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzEyNSwgLTAuMDEyNSwgMCwgMC4wMTI1LCAwLjAzNSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiLTAuMDU4NzUsIC0wLjA0NzUsIC0wLjAzNSwgLTAuMDE2MjUsIC0wLjAwMzc1LCAwLjAxODc1LCAwLjA0IiwgXAotICAgICAgICAgICItMC4wNzM3NSwgLTAuMDYyNSwgLTAuMDUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgMC4wMDM3NSwgMC4wMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlJOJiFTRSZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJSTl9FUV8xX0FOX1NFX0VRXzBfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMTI1LCAwLjIwMTI1LCAwLjE4MjUsIDAuMTYzNzUsIDAuMTQ1LCAwLjEyMjUsIDAuMTA3NSIsIFwKLSAgICAgICAgICAiMC4yMjM3NSwgMC4yMTI1LCAwLjE5Mzc1LCAwLjE3NSwgMC4xNTYyNSwgMC4xMzM3NSwgMC4xMTg3NSIsIFwKLSAgICAgICAgICAiMC4yMzYyNSwgMC4yMjUsIDAuMjA2MjUsIDAuMTg3NSwgMC4xNzUsIDAuMTQ2MjUsIDAuMTMxMjUiLCBcCi0gICAgICAgICAgIjAuMjQ4NzUsIDAuMjM3NSwgMC4yMTg3NSwgMC4yLCAwLjE4NzUsIDAuMTY1LCAwLjE0Mzc1IiwgXAotICAgICAgICAgICIwLjI2MTI1LCAwLjI1LCAwLjIzMTI1LCAwLjIxMjUsIDAuMiwgMC4xNzc1LCAwLjE1NjI1IiwgXAotICAgICAgICAgICIwLjI4Mzc1LCAwLjI3MjUsIDAuMjUzNzUsIDAuMjM1LCAwLjIyMjUsIDAuMTkzNzUsIDAuMTc4NzUiLCBcCi0gICAgICAgICAgIjAuMzA1LCAwLjI4NzUsIDAuMjc1LCAwLjI1NjI1LCAwLjIzNzUsIDAuMjE1LCAwLjE5Mzc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTUsIDAuMTM4NzUsIDAuMTIsIDAuMTA3NSwgMC4wODg3NSwgMC4wNiwgMC4wMzg3NSIsIFwKLSAgICAgICAgICAiMC4xNjEyNSwgMC4xNSwgMC4xMzEyNSwgMC4xMTg3NSwgMC4xLCAwLjA3NzUsIDAuMDUiLCBcCi0gICAgICAgICAgIjAuMTczNzUsIDAuMTYyNSwgMC4xNSwgMC4xMzEyNSwgMC4xMTI1LCAwLjA5LCAwLjA2MjUiLCBcCi0gICAgICAgICAgIjAuMTg2MjUsIDAuMTc1LCAwLjE2MjUsIDAuMTQzNzUsIDAuMTI1LCAwLjEwMjUsIDAuMDc1IiwgXAotICAgICAgICAgICIwLjE5ODc1LCAwLjE4NzUsIDAuMTY4NzUsIDAuMTU2MjUsIDAuMTM3NSwgMC4xMDg3NSwgMC4wODc1IiwgXAotICAgICAgICAgICIwLjIyMTI1LCAwLjIwMzc1LCAwLjE5MTI1LCAwLjE3MjUsIDAuMTYsIDAuMTMxMjUsIDAuMTEiLCBcCi0gICAgICAgICAgIjAuMjM2MjUsIDAuMjI1LCAwLjIwNjI1LCAwLjE5Mzc1LCAwLjE3NSwgMC4xNDYyNSwgMC4xMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFEpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC41MTIxOTI7Ci0gICAgZnVuY3Rpb24gOiAiTjM1IjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBub25fdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJpc2luZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI4NTQ0OCwgMC40MTMwNzcsIDAuNTM4MTI1LCAwLjYyNzQyOCwgMC43NzAyOTksIDAuODk1MzEsIDEuMDczOTMiLCBcCi0gICAgICAgICAgIjAuMjk3MTc3LCAwLjQyNDc3OCwgMC41NDk4MjUsIDAuNjM5MTE4LCAwLjc4MTk5MSwgMC45MDcwMiwgMS4wODU2MyIsIFwKLSAgICAgICAgICAiMC4zMTIwNzMsIDAuNDM5NTkzLCAwLjU2NDY0MiwgMC42NTM5NDgsIDAuNzk2ODU5LCAwLjkyMTgzLCAxLjEwMDU0IiwgXAotICAgICAgICAgICIwLjMyNzgxLCAwLjQ1NTMzMiwgMC41ODAzODEsIDAuNjY5Njg2LCAwLjgxMjU5NiwgMC45Mzc1NjgsIDEuMTE2MjgiLCBcCi0gICAgICAgICAgIjAuMzQzMTMyLCAwLjQ3MDc2MywgMC41OTU4MSwgMC42ODUxMSwgMC44Mjc5ODUsIDAuOTUzMDIsIDEuMTMxNjEiLCBcCi0gICAgICAgICAgIjAuMzY3Mzc0LCAwLjQ5NDk4MSwgMC42MjAwMywgMC43MDkzMzUsIDAuODUyMiwgMC45NzcyMjksIDEuMTU1OTQiLCBcCi0gICAgICAgICAgIjAuMzg4NTU1LCAwLjUxNjExNCwgMC42NDExODEsIDAuNzMwNDY0LCAwLjg3MzMyOCwgMC45OTgzNjEsIDEuMTc3MDUiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTg4NDQsIDAuMzA0MTMsIDAuNTU3MzI1LCAwLjczOTczNSwgMS4wMzA4NywgMS4yODU2NiwgMS42NDk4MiIsIFwKLSAgICAgICAgICAiMC4wNTg5OTksIDAuMzA0MTM2LCAwLjU1NzMxNywgMC43Mzk2NzEsIDEuMDI5NDgsIDEuMjgzODgsIDEuNjQ5OTIiLCBcCi0gICAgICAgICAgIjAuMDU4ODg0LCAwLjMwNDEzMSwgMC41NTczMTMsIDAuNzM4MzIxLCAxLjAzMTI4LCAxLjI4NTY3LCAxLjY1MDQ2IiwgXAotICAgICAgICAgICIwLjA1ODg3OSwgMC4zMDQxMywgMC41NTczMTIsIDAuNzM4MzIyLCAxLjAzMTI2LCAxLjI4NTY3LCAxLjY1MDQ2IiwgXAotICAgICAgICAgICIwLjA1ODc1MywgMC4zMDQxMjYsIDAuNTU3MzE0LCAwLjczOTQ1MywgMS4wMzA4NywgMS4yODU4NSwgMS42NDk3NiIsIFwKLSAgICAgICAgICAiMC4wNTkwMDgsIDAuMzA0MTEsIDAuNTU3Mjc5LCAwLjczODMzNiwgMS4wMjkzNCwgMS4yODU3NCwgMS42NTA1MSIsIFwKLSAgICAgICAgICAiMC4wNTkwMDQsIDAuMzAzOTU1LCAwLjU1NjkxNiwgMC43MzgxMTgsIDEuMDMwODQsIDEuMjgzODgsIDEuNjUwNCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMxNTA4MSwgMC40NjI2MzMsIDAuNjA4MTk4LCAwLjcxMjEzNSwgMC44Nzg0NzIsIDEuMDI0MDYsIDEuMjMyMDYiLCBcCi0gICAgICAgICAgIjAuMzI2ODUxLCAwLjQ3NDM5NCwgMC42MTk5NTUsIDAuNzIzODk1LCAwLjg5MDE5NSwgMS4wMzU3OCwgMS4yNDM2OCIsIFwKLSAgICAgICAgICAiMC4zNDE3MTgsIDAuNDg5MjUzLCAwLjYzNDgyOSwgMC43Mzg3NjgsIDAuOTA1MDk5LCAxLjA1MDcsIDEuMjU4NTciLCBcCi0gICAgICAgICAgIjAuMzU3NTI4LCAwLjUwNTA0OSwgMC42NTA2MTgsIDAuNzU0NTUsIDAuOTIwOTI2LCAxLjA2NjQzLCAxLjI3NDMyIiwgXAotICAgICAgICAgICIwLjM3Mjg2OSwgMC41MjA0MTEsIDAuNjY1OTcyLCAwLjc2OTkxMywgMC45MzYyMSwgMS4wODE4LCAxLjI4OTciLCBcCi0gICAgICAgICAgIjAuMzk3Mjg5LCAwLjU0NDgwNiwgMC42OTAzOTUsIDAuNzk0MzA5LCAwLjk2MDY0NiwgMS4xMDYxOSwgMS4zMTQwOSIsIFwKLSAgICAgICAgICAiMC40MTg5MjYsIDAuNTY2NDA4LCAwLjcxMTk2NywgMC44MTU4OTMsIDAuOTgyMjcyLCAxLjEyNzgyLCAxLjMzNTgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjE2OSwgMC4zNDQ5NDUsIDAuNjM0NTcxLCAwLjg0MjYyNywgMS4xNzI4NSwgMS40NjYwMiwgMS44ODA1MiIsIFwKLSAgICAgICAgICAiMC4wNjE2OTEsIDAuMzQ0MzU3LCAwLjYzNDAyMSwgMC44NDE1MTIsIDEuMTcyMjEsIDEuNDY1NzQsIDEuODgwNTMiLCBcCi0gICAgICAgICAgIjAuMDYxNjU2LCAwLjM0NDU5NSwgMC42MzM1NzEsIDAuODQwOTE4LCAxLjE3MzIxLCAxLjQ2NjA2LCAxLjg3NzE1IiwgXAotICAgICAgICAgICIwLjA2MTcyNywgMC4zNDQzNTEsIDAuNjMzNTMxLCAwLjg0MTg0NiwgMS4xNzE0NSwgMS40NjU2MywgMS44ODA2MSIsIFwKLSAgICAgICAgICAiMC4wNjE2OTEsIDAuMzQ0MzU2LCAwLjYzMzgzMywgMC44NDE1ODIsIDEuMTcxOTYsIDEuNDY1NzIsIDEuODgwNTMiLCBcCi0gICAgICAgICAgIjAuMDYxNjU4LCAwLjM0NDM1NywgMC42MzM0NDYsIDAuODQxOTQ1LCAxLjE3MjYzLCAxLjQ2NTY5LCAxLjg4MDU1IiwgXAotICAgICAgICAgICIwLjA2MTc0MSwgMC4zNDQ0MzgsIDAuNjMzNjQ4LCAwLjg0MjE4OSwgMS4xNzA3NSwgMS40NjU5NSwgMS44NzQzMSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogY2xlYXI7Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzc2MTQ4LCAwLjUyMzY1NCwgMC42NjkyNDcsIDAuNzczMTk5LCAwLjkzOTUyMiwgMS4wODUwNCwgMS4yOTI5MiIsIFwKLSAgICAgICAgICAiMC4zODc2MzQsIDAuNTM1MTI4LCAwLjY4MDY5MywgMC43ODQ2MDgsIDAuOTUwOTc0LCAxLjA5NjYyLCAxLjMwNDUzIiwgXAotICAgICAgICAgICIwLjQwMjU5OCwgMC41NTAxMDUsIDAuNjk1NjYyLCAwLjc5OTU5OCwgMC45NjU5NTksIDEuMTExNTcsIDEuMzE5MzkiLCBcCi0gICAgICAgICAgIjAuNDE3NSwgMC41NjQ5MjYsIDAuNzEwNDg1LCAwLjgxNDQ2LCAwLjk4MDc2OSwgMS4xMjYzLCAxLjMzNDE4IiwgXAotICAgICAgICAgICIwLjQzMTUxMSwgMC41NzkwMDIsIDAuNzI0NTUsIDAuODI4NTAxLCAwLjk5NDg1MywgMS4xNDAzOCwgMS4zNDgyNiIsIFwKLSAgICAgICAgICAiMC40NTQzMTEsIDAuNjAxNjk2LCAwLjc0NzI1NCwgMC44NTEyMjksIDEuMDE3NTgsIDEuMTYzMDcsIDEuMzcwOTUiLCBcCi0gICAgICAgICAgIjAuNDcyMDM2LCAwLjYxOTUxMiwgMC43NjUwOTgsIDAuODY5MDQ5LCAxLjAzNTM3LCAxLjE4MDksIDEuMzg4ODMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjE4NTQsIDAuMzQ0OTIxLCAwLjYzNDI0NiwgMC44NDMzNTEsIDEuMTc0OTksIDEuNDY1NzUsIDEuODgwOTIiLCBcCi0gICAgICAgICAgIjAuMDYxODc3LCAwLjM0NTA4NiwgMC42MzQyMzYsIDAuODQyOTcyLCAxLjE3NTA2LCAxLjQ2NCwgMS44Nzg4OCIsIFwKLSAgICAgICAgICAiMC4wNjIxMzQsIDAuMzQ0OTMsIDAuNjM0ODgyLCAwLjg0MDYwMywgMS4xNzUwMywgMS40NjQsIDEuODgwNDIiLCBcCi0gICAgICAgICAgIjAuMDYxOTcsIDAuMzQ0Nzk3LCAwLjYzNDE5MywgMC44NDM0MDUsIDEuMTc0MTgsIDEuNDY1NjUsIDEuODgwNzkiLCBcCi0gICAgICAgICAgIjAuMDYxODY5LCAwLjM0NDkxOCwgMC42MzUzNiwgMC44NDI2MzEsIDEuMTc1LCAxLjQ2NTY0LCAxLjg3ODgiLCBcCi0gICAgICAgICAgIjAuMDYyMjY1LCAwLjM0NDM3MSwgMC42MzQ5OTUsIDAuODQzMzg5LCAxLjE3NTI3LCAxLjQ2NTYyLCAxLjg4MDc2IiwgXAotICAgICAgICAgICIwLjA2MTg3MSwgMC4zNDUwNjgsIDAuNjM0Nzg3LCAwLjg0MzMwMywgMS4xNzQ5MSwgMS40NjU3MSwgMS44ODAwOCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcHJlc2V0OwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIxNjk2NSwgMC4zNDQxMzUsIDAuNDY5MjMzLCAwLjU1ODU2NywgMC43MDE0MzksIDAuODI2NDg3LCAxLjAwNTEiLCBcCi0gICAgICAgICAgIjAuMjI4NjE5LCAwLjM1NTczNywgMC40ODA4MDksIDAuNTcwMTEzLCAwLjcxMzAzMSwgMC44MzgxNSwgMS4wMTY2OCIsIFwKLSAgICAgICAgICAiMC4yNDI2NTQsIDAuMzY5NzQsIDAuNDk0ODIyLCAwLjU4NDE0MywgMC43MjcwMzQsIDAuODUyMDcyLCAxLjAzMDY5IiwgXAotICAgICAgICAgICIwLjI1NTcyNSwgMC4zODI4MDcsIDAuNTA3ODU2LCAwLjU5NzE5NiwgMC43NDAxMTUsIDAuODY1MTQ5LCAxLjA0MzczIiwgXAotICAgICAgICAgICIwLjI2OTI2NywgMC4zOTYxODEsIDAuNTIxMjEyLCAwLjYxMDUyLCAwLjc1MzQxNiwgMC44Nzg1MDQsIDEuMDU3MDciLCBcCi0gICAgICAgICAgIjAuMjkyMjU1LCAwLjQxOTE2OSwgMC41NDQxNjgsIDAuNjMzNDc5LCAwLjc3NjQyMiwgMC45MDE1NTEsIDEuMDgwMTQiLCBcCi0gICAgICAgICAgIjAuMzEyNDQ1LCAwLjQzOTM1OCwgMC41NjQ0MDMsIDAuNjUzNjY4LCAwLjc5NjYxMiwgMC45MjE3MzIsIDEuMTAwMyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1NjgyNCwgMC4zMDM2MSwgMC41NTc4NzYsIDAuNzQwMDAzLCAxLjAzMTIxLCAxLjI4NTc0LCAxLjY0OTYiLCBcCi0gICAgICAgICAgIjAuMDU2ODg0LCAwLjMwMzYyMiwgMC41NTc4NjgsIDAuNzQwMDQ2LCAxLjAzMTIxLCAxLjI4NjA2LCAxLjY0OTYiLCBcCi0gICAgICAgICAgIjAuMDU2ODgyLCAwLjMwMzQ4NywgMC41NTc5NTcsIDAuNzM5OTc5LCAxLjAzMTMxLCAxLjI4NTY4LCAxLjY1MDAyIiwgXAotICAgICAgICAgICIwLjA1Njg4NCwgMC4zMDM1NDMsIDAuNTU3OTU2LCAwLjc0MDAyMywgMS4wMzEyOSwgMS4yODYwNCwgMS42NTAxOCIsIFwKLSAgICAgICAgICAiMC4wNTY4NDksIDAuMzAzNTQ5LCAwLjU1Nzk1NSwgMC43Mzk5NTcsIDEuMDMxMzMsIDEuMjg2MTUsIDEuNjQ5OTQiLCBcCi0gICAgICAgICAgIjAuMDU2ODk2LCAwLjMwMzU1NCwgMC41NTc4NTQsIDAuNzM5OTk1LCAxLjAzMTE5LCAxLjI4NjA4LCAxLjY1MDE2IiwgXAotICAgICAgICAgICIwLjA1Njg4NSwgMC4zMDM1MjMsIDAuNTU3ODY1LCAwLjc0LCAxLjAzMTIyLCAxLjI4NjA4LCAxLjY1MDI2Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzM4MjM5LCAwLjQ4NTcwNiwgMC42MzEyODUsIDAuNzM1MjQsIDAuOTAxNTk3LCAxLjA0NzA4LCAxLjI1NDk2IiwgXAotICAgICAgICAgICIwLjM1MDA2LCAwLjQ5NzU4NSwgMC42NDMxMzYsIDAuNzQ3MDYxLCAwLjkxMzQyOCwgMS4wNTkwNSwgMS4yNjY4OCIsIFwKLSAgICAgICAgICAiMC4zNjQ0MjUsIDAuNTExODUyLCAwLjY1NzQxMSwgMC43NjEzODUsIDAuOTI3Njc4LCAxLjA3MzIzLCAxLjI4MTEiLCBcCi0gICAgICAgICAgIjAuMzc4MDMzLCAwLjUyNTUsIDAuNjcxMDg5LCAwLjc3NTA0MSwgMC45NDEzNTgsIDEuMDg2ODksIDEuMjk0ODIiLCBcCi0gICAgICAgICAgIjAuMzkxNDUyLCAwLjUzODk0MSwgMC42ODQ0ODgsIDAuNzg4NDM5LCAwLjk1NDc5NCwgMS4xMDAzMiwgMS4zMDgyIiwgXAotICAgICAgICAgICIwLjQxMzAzMiwgMC41NjA0MDMsIDAuNzA1OTYxLCAwLjgwOTg5OCwgMC45NzYyNjMsIDEuMTIxODIsIDEuMzI5NyIsIFwKLSAgICAgICAgICAiMC40MzE3MywgMC41NzkxMTksIDAuNzI0Njc2LCAwLjgyODY1NSwgMC45OTQ5ODgsIDEuMTQwNSwgMS4zNDgzOCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2MTg4OCwgMC4zNDUwMTUsIDAuNjM1MTIsIDAuODQzNDU0LCAxLjE3NTMzLCAxLjQ2NTc1LCAxLjg4MDk0IiwgXAotICAgICAgICAgICIwLjA2MjI0LCAwLjM0NDk0NywgMC42MzQ2MzUsIDAuODQyODksIDEuMTc1MDIsIDEuNDYzNzIsIDEuODgwMTEiLCBcCi0gICAgICAgICAgIjAuMDYyMDQsIDAuMzQ0NjA2LCAwLjYzNDg2MSwgMC44NDMzOTQsIDEuMTc0MjgsIDEuNDY1NjQsIDEuODgwNzkiLCBcCi0gICAgICAgICAgIjAuMDYxODk1LCAwLjM0NTA0LCAwLjYzNTA3NSwgMC44NDMzMDgsIDEuMTc0OTEsIDEuNDY1NzEsIDEuODgwMDUiLCBcCi0gICAgICAgICAgIjAuMDYyMzEzLCAwLjM0NDU5NywgMC42MzUzNTMsIDAuODQyNjU3LCAxLjE3NTAyLCAxLjQ2NTU5LCAxLjg3ODMzIiwgXAotICAgICAgICAgICIwLjA2MjI5NCwgMC4zNDQ4NjcsIDAuNjM0OTg2LCAwLjg0Mjk4NSwgMS4xNzUxLCAxLjQ2MzU2LCAxLjg3OTUzIiwgXAotICAgICAgICAgICIwLjA2MTg4MiwgMC4zNDQ4NzgsIDAuNjM0NzE4LCAwLjg0MzM1NCwgMS4xNzUyNSwgMS40NjU1NSwgMS44ODA2NyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwOTUzMywgMC4wMDk2NDYsIDAuMDA5NjYzLCAwLjAwOTY2OCwgMC4wMDk2NzIsIDAuMDA5Njc0LCAwLjAwOTY3OCIsIFwKLSAgICAgICAgICAiMC4wMDk1MiwgMC4wMDk2MzYsIDAuMDA5NjUyLCAwLjAwOTY1NywgMC4wMDk2NjIsIDAuMDA5NjYzLCAwLjAwOTY2NyIsIFwKLSAgICAgICAgICAiMC4wMDk1MDksIDAuMDA5NjI0LCAwLjAwOTY0MiwgMC4wMDk2NDUsIDAuMDA5NjUsIDAuMDA5NjUyLCAwLjAwOTY1NCIsIFwKLSAgICAgICAgICAiMC4wMDk1MDIsIDAuMDA5NjE2LCAwLjAwOTYzNSwgMC4wMDk2MzgsIDAuMDA5NjQyLCAwLjAwOTY0NCwgMC4wMDk2NDYiLCBcCi0gICAgICAgICAgIjAuMDA5NDk2LCAwLjAwOTYwOSwgMC4wMDk2MjcsIDAuMDA5NjMsIDAuMDA5NjM2LCAwLjAwOTYzOCwgMC4wMDk2MzkiLCBcCi0gICAgICAgICAgIjAuMDA5NDg0LCAwLjAwOTU5OSwgMC4wMDk2MTgsIDAuMDA5NjIxLCAwLjAwOTYyNywgMC4wMDk2MjksIDAuMDA5NjI5IiwgXAotICAgICAgICAgICIwLjAwOTQ3NiwgMC4wMDk1OTIsIDAuMDA5NjA4LCAwLjAwOTYxMywgMC4wMDk2MiwgMC4wMDk2MTksIDAuMDA5NjIxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDkxMDMsIDAuMDA5MjU5LCAwLjAwOTI4NCwgMC4wMDkyOTIsIDAuMDA5Mjk4LCAwLjAwOTMwMiwgMC4wMDkzMDUiLCBcCi0gICAgICAgICAgIjAuMDA5MDksIDAuMDA5MjQ2LCAwLjAwOTI3LCAwLjAwOTI3OCwgMC4wMDkyODUsIDAuMDA5Mjg4LCAwLjAwOTI5MSIsIFwKLSAgICAgICAgICAiMC4wMDkwODIsIDAuMDA5MjM3LCAwLjAwOTI2MSwgMC4wMDkyNjgsIDAuMDA5Mjc1LCAwLjAwOTI3OCwgMC4wMDkyODEiLCBcCi0gICAgICAgICAgIjAuMDA5MDc4LCAwLjAwOTIzMiwgMC4wMDkyNTYsIDAuMDA5MjYzLCAwLjAwOTI2OSwgMC4wMDkyNzMsIDAuMDA5Mjc2IiwgXAotICAgICAgICAgICIwLjAwOTA2OCwgMC4wMDkyMjUsIDAuMDA5MjQ5LCAwLjAwOTI1NiwgMC4wMDkyNjMsIDAuMDA5MjY2LCAwLjAwOTI3IiwgXAotICAgICAgICAgICIwLjAwOTA3MSwgMC4wMDkyMjUsIDAuMDA5MjQ5LCAwLjAwOTI1NiwgMC4wMDkyNjMsIDAuMDA5MjY2LCAwLjAwOTI2OSIsIFwKLSAgICAgICAgICAiMC4wMDkwNzksIDAuMDA5MjI3LCAwLjAwOTI1LCAwLjAwOTI1NywgMC4wMDkyNjIsIDAuMDA5MjY2LCAwLjAwOTI2OSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMTIxNSwgMC4wMTEzNzUsIDAuMDExNDAxLCAwLjAxMTQwOSwgMC4wMTE0MTcsIDAuMDExNDIxLCAwLjAxMTQyNCIsIFwKLSAgICAgICAgICAiMC4wMTEyMDUsIDAuMDExMzY1LCAwLjAxMTM5MSwgMC4wMTE0LCAwLjAxMTQwNywgMC4wMTE0MTEsIDAuMDExNDE0IiwgXAotICAgICAgICAgICIwLjAxMTE5NywgMC4wMTEzNTcsIDAuMDExMzg0LCAwLjAxMTM5MiwgMC4wMTE0LCAwLjAxMTQwMywgMC4wMTE0MDciLCBcCi0gICAgICAgICAgIjAuMDExMTkxLCAwLjAxMTM1LCAwLjAxMTM3NywgMC4wMTEzODUsIDAuMDExMzkzLCAwLjAxMTM5NiwgMC4wMTE0IiwgXAotICAgICAgICAgICIwLjAxMTE4MywgMC4wMTEzNDMsIDAuMDExMzcsIDAuMDExMzc4LCAwLjAxMTM4NSwgMC4wMTEzODksIDAuMDExMzkyIiwgXAotICAgICAgICAgICIwLjAxMTE4LCAwLjAxMTMzOSwgMC4wMTEzNjYsIDAuMDExMzc1LCAwLjAxMTM4MiwgMC4wMTEzODYsIDAuMDExMzg5IiwgXAotICAgICAgICAgICIwLjAxMTE3NSwgMC4wMTEzMzQsIDAuMDExMzYxLCAwLjAxMTM2OSwgMC4wMTEzNzcsIDAuMDExMzgsIDAuMDExMzg0Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3Bvd2VyKHNjYWxhcikgewotICAgICAgICB2YWx1ZXMoIjAiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTE0NjQsIDAuMDExNTc0LCAwLjAxMTU4NywgMC4wMTE1OSwgMC4wMTE1OTMsIDAuMDExNTk1LCAwLjAxMTU5NiIsIFwKLSAgICAgICAgICAiMC4wMTE0NDgsIDAuMDExNTU0LCAwLjAxMTU2NywgMC4wMTE1NzEsIDAuMDExNTc0LCAwLjAxMTU3NiwgMC4wMTE1NzciLCBcCi0gICAgICAgICAgIjAuMDExNDM0LCAwLjAxMTU0MSwgMC4wMTE1NTUsIDAuMDExNTU4LCAwLjAxMTU2MiwgMC4wMTE1NjMsIDAuMDExNTY0IiwgXAotICAgICAgICAgICIwLjAxMTQzLCAwLjAxMTUzNCwgMC4wMTE1NDcsIDAuMDExNTUsIDAuMDExNTU0LCAwLjAxMTU1NSwgMC4wMTE1NTciLCBcCi0gICAgICAgICAgIjAuMDExNDIzLCAwLjAxMTUyOCwgMC4wMTE1NDEsIDAuMDExNTQ1LCAwLjAxMTU0OSwgMC4wMTE1NSwgMC4wMTE1NTMiLCBcCi0gICAgICAgICAgIjAuMDExNDE0LCAwLjAxMTUxOSwgMC4wMTE1MzIsIDAuMDExNTM1LCAwLjAxMTUzOSwgMC4wMTE1NDEsIDAuMDExNTQ1IiwgXAotICAgICAgICAgICIwLjAxMTQwNCwgMC4wMTE1MTEsIDAuMDExNTI2LCAwLjAxMTUyOSwgMC4wMTE1MzMsIDAuMDExNTM1LCAwLjAxMTUzNSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA4ODc5LCAwLjAwOTAzOSwgMC4wMDkwNjUsIDAuMDA5MDc0LCAwLjAwOTA4MSwgMC4wMDkwODUsIDAuMDA5MDg5IiwgXAotICAgICAgICAgICIwLjAwODg1OSwgMC4wMDkwMTgsIDAuMDA5MDQ2LCAwLjAwOTA1NCwgMC4wMDkwNjEsIDAuMDA5MDY1LCAwLjAwOTA2OSIsIFwKLSAgICAgICAgICAiMC4wMDg4NDYsIDAuMDA5MDA1LCAwLjAwOTAzMiwgMC4wMDkwNCwgMC4wMDkwNDgsIDAuMDA5MDUyLCAwLjAwOTA1NSIsIFwKLSAgICAgICAgICAiMC4wMDg4MzcsIDAuMDA4OTk2LCAwLjAwOTAyMywgMC4wMDkwMzEsIDAuMDA5MDM5LCAwLjAwOTA0MiwgMC4wMDkwNDYiLCBcCi0gICAgICAgICAgIjAuMDA4ODMsIDAuMDA4OTg5LCAwLjAwOTAxNiwgMC4wMDkwMjQsIDAuMDA5MDMyLCAwLjAwOTAzNiwgMC4wMDkwMzkiLCBcCi0gICAgICAgICAgIjAuMDA4ODIxLCAwLjAwODk4LCAwLjAwOTAwNywgMC4wMDkwMTYsIDAuMDA5MDIzLCAwLjAwOTAyNywgMC4wMDkwMyIsIFwKLSAgICAgICAgICAiMC4wMDg4MTUsIDAuMDA4OTc0LCAwLjAwOTAwMSwgMC4wMDkwMSwgMC4wMDkwMTcsIDAuMDA5MDIxLCAwLjAwOTAyNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUk4pICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDU1OTk5NTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA1NTk2Mzg7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNTU5OTk1OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDY1OCwgMC4wMDA2NDQsIDAuMDAwNjM0LCAwLjAwMDYyOSwgMC4wMDA2MjYsIDAuMDAwNjI0LCAwLjAwMDYyMyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTk5MywgMC4wMDE5ODQsIDAuMDAxOTc5LCAwLjAwMTk3NSwgMC4wMDE5NzMsIDAuMDAxOTcxLCAwLjAwMTk2OSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQmIVNFJiFTSSZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fU0VfRVFfMF9BTl9TSV9FUV8wX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4zNzYxNDgsIDAuMzg3NjM0LCAwLjQwMjU5OCwgMC40MTc1LCAwLjQzMTQ5NCwgMC40NTQzMTEsIDAuNDcyMDM2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogcmVjb3ZlcnlfcmlzaW5nOwotICAgICAgd2hlbiA6ICJTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJTTiA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChyZWNvdmVyeV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMjUsIDAuMTEzNzUsIDAuMDk1LCAwLjA4MjUsIDAuMDYzNzUsIDAuMDM1LCAwLjAxMzc1IiwgXAotICAgICAgICAgICIwLjEzNjI1LCAwLjEyNSwgMC4xMDYyNSwgMC4wOTM3NSwgMC4wNzUsIDAuMDQ2MjUsIDAuMDI1IiwgXAotICAgICAgICAgICIwLjE0ODc1LCAwLjEzNzUsIDAuMTI1LCAwLjEwNjI1LCAwLjA4NzUsIDAuMDY1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjE2NzUsIDAuMTU2MjUsIDAuMTM3NSwgMC4xMjUsIDAuMTA2MjUsIDAuMDc3NSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiMC4xOCwgMC4xNjg3NSwgMC4xNTYyNSwgMC4xMzc1LCAwLjExODc1LCAwLjA5NjI1LCAwLjA2ODc1IiwgXAotICAgICAgICAgICIwLjIwODc1LCAwLjE5MTI1LCAwLjE3ODc1LCAwLjE2LCAwLjE0MTI1LCAwLjExODc1LCAwLjA5NzUiLCBcCi0gICAgICAgICAgIjAuMjMsIDAuMjEyNSwgMC4yLCAwLjE4MTI1LCAwLjE2MjUsIDAuMTQsIDAuMTE4NzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiU04iOwotICAgICAgdGltaW5nX3R5cGUgOiByZWNvdmVyeV9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEJiFTRSYhU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1NFX0VRXzBfQU5fU0lfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChyZWNvdmVyeV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xODc1LCAwLjE5ODc1LCAwLjIxNzUsIDAuMjMsIDAuMjQyNSwgMC4yNTg3NSwgMC4yOCIsIFwKLSAgICAgICAgICAiMC4xNzYyNSwgMC4xODc1LCAwLjIsIDAuMjE4NzUsIDAuMjMxMjUsIDAuMjQ3NSwgMC4yNjg3NSIsIFwKLSAgICAgICAgICAiMC4xNjM3NSwgMC4xNzUsIDAuMTg3NSwgMC4yMDYyNSwgMC4yMTg3NSwgMC4yMzUsIDAuMjU2MjUiLCBcCi0gICAgICAgICAgIjAuMTUxMjUsIDAuMTYyNSwgMC4xNzUsIDAuMTkzNzUsIDAuMjA2MjUsIDAuMjIyNSwgMC4yNDM3NSIsIFwKLSAgICAgICAgICAiMC4xMzg3NSwgMC4xNSwgMC4xNjg3NSwgMC4xODEyNSwgMC4xOTM3NSwgMC4yMTYyNSwgMC4yMzEyNSIsIFwKLSAgICAgICAgICAiMC4xMjg3NSwgMC4xNCwgMC4xNTI1LCAwLjE2NSwgMC4xNzc1LCAwLjIsIDAuMjE1IiwgXAotICAgICAgICAgICIwLjEyLCAwLjEzMTI1LCAwLjE0Mzc1LCAwLjE1NjI1LCAwLjE2ODc1LCAwLjE5MTI1LCAwLjIwNjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogcmVtb3ZhbF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlNOIjsKLSAgICAgIHNkZl9jb25kIDogIlNOID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHJlbW92YWxfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAyNSwgLTAuMDEzNzUsIC0wLjAwMTI1LCAwLjAxNzUsIDAuMDMsIDAuMDUyNSwgMC4wNzM3NSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAyNSwgLTAuMDEyNSwgMC4wMDYyNSwgMC4wMTg3NSwgMC4wNDEyNSwgMC4wNjI1IiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA0Mzc1LCAtMC4wMjUsIC0wLjAxMjUsIDAuMDA2MjUsIDAuMDI4NzUsIDAuMDUiLCBcCi0gICAgICAgICAgIi0wLjA2NzUsIC0wLjA1NjI1LCAtMC4wNDM3NSwgLTAuMDI1LCAtMC4wMTI1LCAwLjAxLCAwLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wODYyNSwgLTAuMDc1LCAtMC4wNTYyNSwgLTAuMDQzNzUsIC0wLjAyNSwgLTAuMDAyNSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMTA4NzUsIC0wLjA5NzUsIC0wLjA3ODc1LCAtMC4wNjYyNSwgLTAuMDUzNzUsIC0wLjAyNSwgLTAuMDAzNzUiLCBcCi0gICAgICAgICAgIi0wLjEzLCAtMC4xMTg3NSwgLTAuMSwgLTAuMDg3NSwgLTAuMDY4NzUsIC0wLjA0NjI1LCAtMC4wMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFNFKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE0Njc2NjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE0Njc0NjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE0Njc2NjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDQ3MDEsIDAuMDA0NzAxLCAwLjAwNDY5NSwgMC4wMDQ2ODgsIDAuMDA0NjgyLCAwLjAwNDY3NSwgMC4wMDQ2NzEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDYxMzIsIDAuMDA2MTA3LCAwLjAwNjA4OSwgMC4wMDYwNzYsIDAuMDA2MDY0LCAwLjAwNjA1NCwgMC4wMDYwNDgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiUk4mU04iOwotICAgICAgc2RmX2NvbmQgOiAiUk5fRVFfMV9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAzMTI1LCAtMC4wMTM3NSwgLTAuMDAxMjUsIDAuMDExMjUsIDAuMDMsIDAuMDUyNSwgMC4wNzM3NSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDMxMjUsIC0wLjAxMjUsIDAsIDAuMDEyNSwgMC4wNDEyNSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNDM3NSwgLTAuMDMxMjUsIC0wLjAxMjUsIDAsIDAuMDIyNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDczNzUsIC0wLjA1NjI1LCAtMC4wNDM3NSwgLTAuMDMxMjUsIC0wLjAxMjUsIDAuMDEsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjA4NjI1LCAtMC4wNzUsIC0wLjA2MjUsIC0wLjA0Mzc1LCAtMC4wMzEyNSwgLTAuMDA4NzUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMTA4NzUsIC0wLjA5NzUsIC0wLjA4NSwgLTAuMDY2MjUsIC0wLjA1Mzc1LCAtMC4wMzEyNSwgLTAuMDEiLCBcCi0gICAgICAgICAgIi0wLjEyMzc1LCAtMC4xMTg3NSwgLTAuMSwgLTAuMDg3NSwgLTAuMDc1LCAtMC4wNDYyNSwgLTAuMDMxMjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxODc1LCAwLjAzLCAwLjA0MjUsIDAuMDYxMjUsIDAuMDczNzUsIDAuMDk2MjUsIDAuMTE3NSIsIFwKLSAgICAgICAgICAiMC4wMDc1LCAwLjAxODc1LCAwLjAzNzUsIDAuMDUsIDAuMDYyNSwgMC4wODUsIDAuMTA2MjUiLCBcCi0gICAgICAgICAgIi0wLjAwNSwgMC4wMDYyNSwgMC4wMjUsIDAuMDM3NSwgMC4wNSwgMC4wNzI1LCAwLjA5Mzc1IiwgXAotICAgICAgICAgICItMC4wMTc1LCAtMC4wMDYyNSwgMC4wMTI1LCAwLjAyNSwgMC4wMzc1LCAwLjA2LCAwLjA4MTI1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDE4NzUsIDAsIDAuMDEyNSwgMC4wMjUsIDAuMDQ3NSwgMC4wNjg3NSIsIFwKLSAgICAgICAgICAiLTAuMDQ2MjUsIC0wLjAzNSwgLTAuMDIyNSwgLTAuMDEsIDAuMDA4NzUsIDAuMDMxMjUsIDAuMDUyNSIsIFwKLSAgICAgICAgICAiLTAuMDYxMjUsIC0wLjA1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAwNjI1LCAwLjAxNjI1LCAwLjAzNzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlJOJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIlJOX0VRXzFfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yLCAwLjE4MjUsIDAuMTcsIDAuMTUxMjUsIDAuMTMyNSwgMC4xMSwgMC4wODg3NSIsIFwKLSAgICAgICAgICAiMC4yMDUsIDAuMTkzNzUsIDAuMTc1LCAwLjE1NjI1LCAwLjE0Mzc1LCAwLjEyMTI1LCAwLjEiLCBcCi0gICAgICAgICAgIjAuMjE3NSwgMC4yMDYyNSwgMC4xODc1LCAwLjE2ODc1LCAwLjE1NjI1LCAwLjEzMzc1LCAwLjExMjUiLCBcCi0gICAgICAgICAgIjAuMjM2MjUsIDAuMjE4NzUsIDAuMjA2MjUsIDAuMTg3NSwgMC4xNjg3NSwgMC4xNDYyNSwgMC4xMjUiLCBcCi0gICAgICAgICAgIjAuMjQ4NzUsIDAuMjMxMjUsIDAuMjE4NzUsIDAuMiwgMC4xODEyNSwgMC4xNTg3NSwgMC4xMzc1IiwgXAotICAgICAgICAgICIwLjI3MTI1LCAwLjI1Mzc1LCAwLjI0MTI1LCAwLjIyMjUsIDAuMjAzNzUsIDAuMTgxMjUsIDAuMTYiLCBcCi0gICAgICAgICAgIjAuMjg2MjUsIDAuMjc1LCAwLjI1NjI1LCAwLjIzNzUsIDAuMjI1LCAwLjE5NjI1LCAwLjE4MTI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjQzNzUsIDAuMjI2MjUsIDAuMjEzNzUsIDAuMTk1LCAwLjE3NjI1LCAwLjE1Mzc1LCAwLjEzMjUiLCBcCi0gICAgICAgICAgIjAuMjU1LCAwLjIzNzUsIDAuMjI1LCAwLjIwNjI1LCAwLjE4NzUsIDAuMTY1LCAwLjE0Mzc1IiwgXAotICAgICAgICAgICIwLjI2NzUsIDAuMjU2MjUsIDAuMjM3NSwgMC4yMTg3NSwgMC4yLCAwLjE3NzUsIDAuMTYyNSIsIFwKLSAgICAgICAgICAiMC4yOCwgMC4yNjg3NSwgMC4yNSwgMC4yMzEyNSwgMC4yMTg3NSwgMC4xOTYyNSwgMC4xNzUiLCBcCi0gICAgICAgICAgIjAuMjk4NzUsIDAuMjgxMjUsIDAuMjY4NzUsIDAuMjUsIDAuMjMxMjUsIDAuMjA4NzUsIDAuMTg3NSIsIFwKLSAgICAgICAgICAiMC4zMTUsIDAuMzAzNzUsIDAuMjg1LCAwLjI2NjI1LCAwLjI1Mzc1LCAwLjIzMTI1LCAwLjIxIiwgXAotICAgICAgICAgICIwLjMzNjI1LCAwLjMxODc1LCAwLjMsIDAuMjgxMjUsIDAuMjY4NzUsIDAuMjQ2MjUsIDAuMjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTSSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwODk2NDA3OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDg5MzgyMjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA4OTY0MDc7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzNzQ2LCAwLjAwMzcyNywgMC4wMDM3MTYsIDAuMDAzNzA5LCAwLjAwMzcwNCwgMC4wMDM2OTcsIDAuMDAzNjkzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA1MDkzLCAwLjAwNTA4MywgMC4wMDUwNzYsIDAuMDA1MDczLCAwLjAwNTA3LCAwLjAwNTA2NCwgMC4wMDUwNjIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiUk4mU0UmU04iOwotICAgICAgc2RmX2NvbmQgOiAiUk5fRVFfMV9BTl9TRV9FUV8xX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDkzNzUsIC0wLjA4ODc1LCAtMC4wNzYyNSwgLTAuMDYzNzUsIC0wLjA1MTI1LCAtMC4wMzUsIC0wLjAyIiwgXAotICAgICAgICAgICItMC4xMDUsIC0wLjEsIC0wLjA4NzUsIC0wLjA3NSwgLTAuMDYyNSwgLTAuMDQ2MjUsIC0wLjAzMTI1IiwgXAotICAgICAgICAgICItMC4xMjM3NSwgLTAuMTEyNSwgLTAuMSwgLTAuMDg3NSwgLTAuMDc1LCAtMC4wNTg3NSwgLTAuMDQzNzUiLCBcCi0gICAgICAgICAgIi0wLjEzNjI1LCAtMC4xMjUsIC0wLjExMjUsIC0wLjEsIC0wLjA4NzUsIC0wLjA3MTI1LCAtMC4wNTYyNSIsIFwKLSAgICAgICAgICAiLTAuMTQ4NzUsIC0wLjEzNzUsIC0wLjEyNSwgLTAuMTEyNSwgLTAuMSwgLTAuMDgzNzUsIC0wLjA2ODc1IiwgXAotICAgICAgICAgICItMC4xNzEyNSwgLTAuMTYsIC0wLjE0NzUsIC0wLjEzNSwgLTAuMTIyNSwgLTAuMTA2MjUsIC0wLjA5MTI1IiwgXAotICAgICAgICAgICItMC4xODYyNSwgLTAuMTc1LCAtMC4xNjI1LCAtMC4xNSwgLTAuMTQzNzUsIC0wLjEyNzUsIC0wLjExMjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjI1LCAwLjAxNzUsIDAuMDMsIDAuMDQ4NzUsIDAuMDYxMjUsIDAuMDgzNzUsIDAuMTA1IiwgXAotICAgICAgICAgICItMC4wMDUsIDAuMDA2MjUsIDAuMDE4NzUsIDAuMDM3NSwgMC4wNSwgMC4wNzI1LCAwLjA5Mzc1IiwgXAotICAgICAgICAgICItMC4wMTc1LCAtMC4wMDYyNSwgMC4wMDYyNSwgMC4wMjUsIDAuMDM3NSwgMC4wNiwgMC4wODEyNSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAxODc1LCAwLCAwLjAxMjUsIDAuMDI1LCAwLjA0NzUsIDAuMDY4NzUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzMTI1LCAtMC4wMTI1LCAwLCAwLjAxMjUsIDAuMDM1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICItMC4wNTg3NSwgLTAuMDQ3NSwgLTAuMDM1LCAtMC4wMTYyNSwgLTAuMDAzNzUsIDAuMDE4NzUsIDAuMDQiLCBcCi0gICAgICAgICAgIi0wLjA3Mzc1LCAtMC4wNjI1LCAtMC4wNSwgLTAuMDMxMjUsIC0wLjAxODc1LCAwLjAwMzc1LCAwLjAyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiUk4mU0UmU04iOwotICAgICAgc2RmX2NvbmQgOiAiUk5fRVFfMV9BTl9TRV9FUV8xX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjEyNSwgMC4xOTUsIDAuMTgyNSwgMC4xNjM3NSwgMC4xNDUsIDAuMTIyNSwgMC4xMDEyNSIsIFwKLSAgICAgICAgICAiMC4yMjM3NSwgMC4yMDYyNSwgMC4xOTM3NSwgMC4xNzUsIDAuMTU2MjUsIDAuMTMzNzUsIDAuMTEyNSIsIFwKLSAgICAgICAgICAiMC4yMzYyNSwgMC4yMTg3NSwgMC4yMDYyNSwgMC4xODc1LCAwLjE2ODc1LCAwLjE0NjI1LCAwLjEyNSIsIFwKLSAgICAgICAgICAiMC4yNDg3NSwgMC4yMzc1LCAwLjIxODc1LCAwLjIsIDAuMTgxMjUsIDAuMTU4NzUsIDAuMTM3NSIsIFwKLSAgICAgICAgICAiMC4yNjEyNSwgMC4yNSwgMC4yMzEyNSwgMC4yMTI1LCAwLjE5Mzc1LCAwLjE3MTI1LCAwLjE1NjI1IiwgXAotICAgICAgICAgICIwLjI4Mzc1LCAwLjI2NjI1LCAwLjI1Mzc1LCAwLjIzNSwgMC4yMTYyNSwgMC4xOTM3NSwgMC4xNzI1IiwgXAotICAgICAgICAgICIwLjI5ODc1LCAwLjI4NzUsIDAuMjY4NzUsIDAuMjUsIDAuMjM3NSwgMC4yMTUsIDAuMTkzNzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNSwgMC4xMzg3NSwgMC4xMjYyNSwgMC4xMDc1LCAwLjA4ODc1LCAwLjA2NjI1LCAwLjAzODc1IiwgXAotICAgICAgICAgICIwLjE2MTI1LCAwLjE1LCAwLjEzNzUsIDAuMTE4NzUsIDAuMSwgMC4wNzc1LCAwLjA1IiwgXAotICAgICAgICAgICIwLjE3Mzc1LCAwLjE2MjUsIDAuMTUsIDAuMTMxMjUsIDAuMTEyNSwgMC4wOSwgMC4wNjg3NSIsIFwKLSAgICAgICAgICAiMC4xODYyNSwgMC4xNzUsIDAuMTYyNSwgMC4xNDM3NSwgMC4xMjUsIDAuMTAyNSwgMC4wNzUiLCBcCi0gICAgICAgICAgIjAuMTk4NzUsIDAuMTg3NSwgMC4xNzUsIDAuMTU2MjUsIDAuMTM3NSwgMC4xMTUsIDAuMDg3NSIsIFwKLSAgICAgICAgICAiMC4yMjEyNSwgMC4yMDM3NSwgMC4xOTEyNSwgMC4xNzI1LCAwLjE2LCAwLjEzMTI1LCAwLjExIiwgXAotICAgICAgICAgICIwLjIzNjI1LCAwLjIyNSwgMC4yMDYyNSwgMC4xOTM3NSwgMC4xNzUsIDAuMTQ2MjUsIDAuMTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTTikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNzU0MDI7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNzU0MDI7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNzUzNDI7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNDg1LCAwLjAwMDQ4NSwgMC4wMDA0ODQsIDAuMDAwNDg0LCAwLjAwMDQ4NCwgMC4wMDA0ODQsIDAuMDAwNDg0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNDg2LCAwLjAwMDQ4NiwgMC4wMDA0ODYsIDAuMDAwNDg2LCAwLjAwMDQ4NiwgMC4wMDA0ODcsIDAuMDAwNDg3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRCYhUk4mIVNFJiFTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fUk5fRVFfMF9BTl9TRV9FUV8wX0FOX1NJX0VRXzAgPT0gMSdiMSI7Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4yMTY4ODYsIDAuMjI4NjE4LCAwLjI0MjU2OCwgMC4yNTU2NjksIDAuMjY5MjY3LCAwLjI5MjI1NCwgMC4zMTI0NDUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiByZWNvdmVyeV9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlJOIjsKLSAgICAgIHNkZl9jb25kIDogIlJOID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHJlY292ZXJ5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxODc1LCAwLjAwNzUsIC0wLjAwNSwgLTAuMDIzNzUsIC0wLjA0MjUsIC0wLjA2NSwgLTAuMDkyNSIsIFwKLSAgICAgICAgICAiMC4wMzYyNSwgMC4wMTg3NSwgMC4wMDYyNSwgLTAuMDEyNSwgLTAuMDMxMjUsIC0wLjA1Mzc1LCAtMC4wODEyNSIsIFwKLSAgICAgICAgICAiMC4wNDg3NSwgMC4wMzc1LCAwLjAxODc1LCAwLCAtMC4wMTI1LCAtMC4wNDEyNSwgLTAuMDYyNSIsIFwKLSAgICAgICAgICAiMC4wNjEyNSwgMC4wNSwgMC4wMzEyNSwgMC4wMTI1LCAwLCAtMC4wMjg3NSwgLTAuMDUiLCBcCi0gICAgICAgICAgIjAuMDczNzUsIDAuMDYyNSwgMC4wNDM3NSwgMC4wMzEyNSwgMC4wMTI1LCAtMC4wMTYyNSwgLTAuMDM3NSIsIFwKLSAgICAgICAgICAiMC4wOTYyNSwgMC4wODUsIDAuMDY2MjUsIDAuMDQ3NSwgMC4wMzUsIDAuMDA2MjUsIC0wLjAxNSIsIFwKLSAgICAgICAgICAiMC4xMTEyNSwgMC4xLCAwLjA4NzUsIDAuMDY4NzUsIDAuMDUsIDAuMDI3NSwgMC4wMDYyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJlbW92YWxfcmlzaW5nOwotICAgICAgd2hlbiA6ICJSTiI7Ci0gICAgICBzZGZfY29uZCA6ICJSTiA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChyZW1vdmFsX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4MTI1LCAwLjA5MjUsIDAuMTA1LCAwLjEyMzc1LCAwLjEzNjI1LCAwLjE2NSwgMC4xODYyNSIsIFwKLSAgICAgICAgICAiMC4wNywgMC4wODEyNSwgMC4wOTM3NSwgMC4xMTI1LCAwLjEyNSwgMC4xNTM3NSwgMC4xNzUiLCBcCi0gICAgICAgICAgIjAuMDU3NSwgMC4wNjg3NSwgMC4wODEyNSwgMC4xLCAwLjExMjUsIDAuMTM1LCAwLjE1NjI1IiwgXAotICAgICAgICAgICIwLjA0NSwgMC4wNTYyNSwgMC4wNjg3NSwgMC4wODc1LCAwLjEsIDAuMTIyNSwgMC4xNDM3NSIsIFwKLSAgICAgICAgICAiMC4wMjYyNSwgMC4wNDM3NSwgMC4wNTYyNSwgMC4wNjg3NSwgMC4wODc1LCAwLjExLCAwLjEzMTI1IiwgXAotICAgICAgICAgICIwLjAxLCAwLjAyMTI1LCAwLjAzMzc1LCAwLjA1MjUsIDAuMDY1LCAwLjA4NzUsIDAuMTA4NzUiLCBcCi0gICAgICAgICAgIi0wLjAxMTI1LCAwLCAwLjAxMjUsIDAuMDMxMjUsIDAuMDQzNzUsIDAuMDcyNSwgMC4wOTM3NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBTREZGU1JYMSAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoU0RGRlNSWDEpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4zNTQ0Nzg7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgZmYgKE4zNSxRQklOVCkgewotICAgIG5leHRfc3RhdGUgOiAiKChTRSBTSSkgKyAoIVNFIEQpKSI7Ci0gICAgY2xvY2tlZF9vbiA6ICJDSyI7Ci0gICAgY2xlYXIgOiAiKCFSTikiOwotICAgIHByZXNldCA6ICIoIVNOKSI7Ci0gICAgY2xlYXJfcHJlc2V0X3ZhcjEgOiBIOwotICAgIGNsZWFyX3ByZXNldF92YXIyIDogTDsKLSAgfQotICBwaW4oQ0spICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYyMDMzOTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MjAwMDI7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjIwMzM5OwotICAgIGNsb2NrIDogdHJ1ZTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDIwMDksIDAuMDAxOTk3LCAwLjAwMTk4NywgMC4wMDE5OCwgMC4wMDE5NzUsIDAuMDAxOTY4LCAwLjAwMTk2NSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNTYyMSwgMC4wMDU2MTIsIDAuMDA1NjAzLCAwLjAwNTU5NywgMC4wMDU1OTYsIDAuMDA1NTk3LCAwLjAwNTU5NiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQmUk4mIVNFJiFTSSZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fUk5fRVFfMV9BTl9TRV9FUV8wX0FOX1NJX0VRXzBfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjM4MDA3NiwgMC4zOTE4NDIsIDAuNDA3MDQsIDAuNDIyNTc3LCAwLjQzODAwMiwgMC40NjI0MDIsIDAuNDgzMjQyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4yMzc5MywgMC4yNDk0MywgMC4yNjQyOTMsIDAuMjc5MDYzLCAwLjI5Mzg3OCwgMC4zMTY4MjcsIDAuMzM1OTk1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihEKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2MjE1MTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MTk3ODQ7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjIxNTE7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyNzk1LCAwLjAwMjc4NSwgMC4wMDI3OCwgMC4wMDI3NzcsIDAuMDAyNzc0LCAwLjAwMjc3LCAwLjAwMjc2OCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzc0MywgMC4wMDM3MzgsIDAuMDAzNzM1LCAwLjAwMzczNCwgMC4wMDM3MzIsIDAuMDAzNzMsIDAuMDAzNzI4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlJOJiFTRSZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJSTl9FUV8xX0FOX1NFX0VRXzBfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4xMzc1LCAtMC4xMjYyNSwgLTAuMTEzNzUsIC0wLjEwNzUsIC0wLjA5NSwgLTAuMDc4NzUsIC0wLjA2Mzc1IiwgXAotICAgICAgICAgICItMC4xNDg3NSwgLTAuMTM3NSwgLTAuMTI1LCAtMC4xMTg3NSwgLTAuMTA2MjUsIC0wLjA5LCAtMC4wODEyNSIsIFwKLSAgICAgICAgICAiLTAuMTYxMjUsIC0wLjE1LCAtMC4xNDM3NSwgLTAuMTMxMjUsIC0wLjExODc1LCAtMC4xMDI1LCAtMC4wOTM3NSIsIFwKLSAgICAgICAgICAiLTAuMTczNzUsIC0wLjE2ODc1LCAtMC4xNTYyNSwgLTAuMTQzNzUsIC0wLjEzMTI1LCAtMC4xMjEyNSwgLTAuMTA2MjUiLCBcCi0gICAgICAgICAgIi0wLjE4NjI1LCAtMC4xODEyNSwgLTAuMTY4NzUsIC0wLjE1NjI1LCAtMC4xNSwgLTAuMTMzNzUsIC0wLjExODc1IiwgXAotICAgICAgICAgICItMC4yMDg3NSwgLTAuMjAzNzUsIC0wLjE5MTI1LCAtMC4xNzg3NSwgLTAuMTY2MjUsIC0wLjE1NjI1LCAtMC4xNDEyNSIsIFwKLSAgICAgICAgICAiLTAuMjMsIC0wLjIxODc1LCAtMC4yMDYyNSwgLTAuMiwgLTAuMTg3NSwgLTAuMTcxMjUsIC0wLjE2MjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMzEyNSwgLTAuMDEzNzUsIC0wLjAwMTI1LCAwLjAxMTI1LCAwLjAyMzc1LCAwLjA0NjI1LCAwLjA2NzUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAyNSwgLTAuMDEyNSwgMCwgMC4wMTI1LCAwLjAzNSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNDM3NSwgLTAuMDI1LCAtMC4wMTI1LCAwLCAwLjAyMjUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIi0wLjA2NzUsIC0wLjA1NjI1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAxMjUsIDAuMDEsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjA4LCAtMC4wNjg3NSwgLTAuMDUsIC0wLjAzNzUsIC0wLjAyNSwgLTAuMDAyNSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDk2MjUsIC0wLjA4NSwgLTAuMDcyNSwgLTAuMDUzNzUsIC0wLjA0MTI1LCAtMC4wMTg3NSwgLTAuMDAzNzUiLCBcCi0gICAgICAgICAgIi0wLjExMTI1LCAtMC4xLCAtMC4wODc1LCAtMC4wNzUsIC0wLjA1NjI1LCAtMC4wNCwgLTAuMDE4NzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlJOJiFTRSZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJSTl9FUV8xX0FOX1NFX0VRXzBfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yNjI1LCAwLjI1MTI1LCAwLjIzMjUsIDAuMjIsIDAuMjAxMjUsIDAuMTc4NzUsIDAuMTU3NSIsIFwKLSAgICAgICAgICAiMC4yNzM3NSwgMC4yNjI1LCAwLjI0Mzc1LCAwLjIzMTI1LCAwLjIxMjUsIDAuMTksIDAuMTY4NzUiLCBcCi0gICAgICAgICAgIjAuMjkyNSwgMC4yNzUsIDAuMjYyNSwgMC4yNDM3NSwgMC4yMjUsIDAuMjAyNSwgMC4xODEyNSIsIFwKLSAgICAgICAgICAiMC4zMDUsIDAuMjg3NSwgMC4yNzUsIDAuMjU2MjUsIDAuMjM3NSwgMC4yMTUsIDAuMiIsIFwKLSAgICAgICAgICAiMC4zMTc1LCAwLjMwNjI1LCAwLjI4NzUsIDAuMjY4NzUsIDAuMjU2MjUsIDAuMjMzNzUsIDAuMjEyNSIsIFwKLSAgICAgICAgICAiMC4zNCwgMC4zMjg3NSwgMC4zMSwgMC4yOTEyNSwgMC4yNzg3NSwgMC4yNSwgMC4yMzUiLCBcCi0gICAgICAgICAgIjAuMzYxMjUsIDAuMzQzNzUsIDAuMzI1LCAwLjMxMjUsIDAuMjkzNzUsIDAuMjcxMjUsIDAuMjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMDYyNSwgMC4xOTUsIDAuMTc2MjUsIDAuMTYzNzUsIDAuMTQ1LCAwLjEyMjUsIDAuMTAxMjUiLCBcCi0gICAgICAgICAgIjAuMjE3NSwgMC4yMDYyNSwgMC4xOTM3NSwgMC4xNzUsIDAuMTU2MjUsIDAuMTMzNzUsIDAuMTEyNSIsIFwKLSAgICAgICAgICAiMC4yMywgMC4yMTg3NSwgMC4yMDYyNSwgMC4xODc1LCAwLjE2ODc1LCAwLjE0NjI1LCAwLjEyNSIsIFwKLSAgICAgICAgICAiMC4yNDI1LCAwLjIzMTI1LCAwLjIxODc1LCAwLjIsIDAuMTgxMjUsIDAuMTU4NzUsIDAuMTM3NSIsIFwKLSAgICAgICAgICAiMC4yNTUsIDAuMjQzNzUsIDAuMjMxMjUsIDAuMjEyNSwgMC4xOTM3NSwgMC4xNzEyNSwgMC4xNSIsIFwKLSAgICAgICAgICAiMC4yNzc1LCAwLjI2NjI1LCAwLjI0NzUsIDAuMjI4NzUsIDAuMjE2MjUsIDAuMTg3NSwgMC4xNjYyNSIsIFwKLSAgICAgICAgICAiMC4yOTI1LCAwLjI4MTI1LCAwLjI2MjUsIDAuMjUsIDAuMjMxMjUsIDAuMjA4NzUsIDAuMTg3NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjEzNDAyNTsKLSAgICBmdW5jdGlvbiA6ICJOMzUiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5vbl91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcmlzaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMzMDM5NywgMC4zNzM4OTUsIDAuNjE5MjI3LCAwLjgzNzA4OCwgMS4xMjQzMywgMS43MDIxNywgMi4wNjEzMyIsIFwKLSAgICAgICAgICAiMC4zNDE4ODgsIDAuMzg1Mzg0LCAwLjYzMTYwMywgMC44NDgyMDEsIDEuMTM1ODYsIDEuNzEyNjMsIDIuMDcyODciLCBcCi0gICAgICAgICAgIjAuMzU3MjExLCAwLjQwMDcxOSwgMC42NDU5MzcsIDAuODYzNTYsIDEuMTUwOTEsIDEuNzI3NTYsIDIuMDg2NDEiLCBcCi0gICAgICAgICAgIjAuMzcyNjY1LCAwLjQxNjI1MywgMC42NjEyMTIsIDAuODc4MjUsIDEuMTY2NiwgMS43NDIxMSwgMi4xMDM2OSIsIFwKLSAgICAgICAgICAiMC4zODc5ODQsIDAuNDMxNDY4LCAwLjY3NjY5NiwgMC44OTQzOTksIDEuMTgxMDIsIDEuNzU4NDEsIDIuMTE5MjIiLCBcCi0gICAgICAgICAgIjAuNDEyMTg1LCAwLjQ1NTYzMSwgMC43MDA4NTIsIDAuOTE4NTAyLCAxLjIwNTU5LCAxLjc4MjUxLCAyLjE0MzciLCBcCi0gICAgICAgICAgIjAuNDMyODY5LCAwLjQ3NjM3LCAwLjcyMTgzMSwgMC45Mzc5MDYsIDEuMjI2ODMsIDEuODAzNzcsIDIuMTYzODciKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTY3ODgsIDAuMjU1NzUsIDAuNzUxMDg0LCAxLjE5NDksIDEuNzg0NDEsIDIuOTY1NjgsIDMuNzAzODIiLCBcCi0gICAgICAgICAgIjAuMTY3NDU3LCAwLjI1NTcyOCwgMC43NTMzMzYsIDEuMTkzMzUsIDEuNzg0NTIsIDIuOTY1NzcsIDMuNzAzOTYiLCBcCi0gICAgICAgICAgIjAuMTY3ODcyLCAwLjI1NTgwNywgMC43NTEyNzgsIDEuMTg4ODYsIDEuNzg0NzcsIDIuOTY2MDQsIDMuNjc2MDYiLCBcCi0gICAgICAgICAgIjAuMTY3NTU4LCAwLjI1NTQ3OCwgMC43NTEzOTQsIDEuMTkzMzgsIDEuNzg0NTQsIDIuOTQ0MzgsIDMuNzAzOTYiLCBcCi0gICAgICAgICAgIjAuMTY3NDQ3LCAwLjI1NTc1MywgMC43NTEyNjIsIDEuMTkwNzMsIDEuNzY2MTQsIDIuOTY1OTksIDMuNzA0IiwgXAotICAgICAgICAgICIwLjE2ODc4NSwgMC4yNTU3OTQsIDAuNzUxMjc1LCAxLjE4OTQ3LCAxLjc4NDg3LCAyLjk2NjAzLCAzLjY3MDYyIiwgXAotICAgICAgICAgICIwLjE2ODAxNiwgMC4yNTU3NDMsIDAuNzUxMzgzLCAxLjE5Mzc4LCAxLjc4NDU3LCAyLjk2NjA4LCAzLjcwNDAxIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjM1OTg0NCwgMC40MDk0NTksIDAuNjg5NjQ0LCAwLjkzNjUxNiwgMS4yNjU1NiwgMS45MzAzNywgMi4zNDM1MiIsIFwKLSAgICAgICAgICAiMC4zNzE2NDYsIDAuNDIxMzc4LCAwLjcwMjI1MSwgMC45NTA0NzksIDEuMjgxMzEsIDEuOTQyMDcsIDIuMzU1MzgiLCBcCi0gICAgICAgICAgIjAuMzg2ODQyLCAwLjQzNjU2NiwgMC43MTc0MzcsIDAuOTY1Njc0LCAxLjI5NjUxLCAxLjk1NzI1LCAyLjM3MDU4IiwgXAotICAgICAgICAgICIwLjQwMjMyOCwgMC40NTIxMjMsIDAuNzMyOTg4LCAwLjk4MTIwMywgMS4zMDgwOSwgMS45NzI4NSwgMi4zODYwNSIsIFwKLSAgICAgICAgICAiMC40MTc3NzQsIDAuNDY3NTA0LCAwLjc0ODM3NiwgMC45OTY2MiwgMS4zMjc0NiwgMS45ODgzMiwgMi4zOTQxMiIsIFwKLSAgICAgICAgICAiMC40NDIxNjYsIDAuNDkxODk2LCAwLjc3Mjc3NCwgMS4wMjEsIDEuMzUxODMsIDIuMDEyNiwgMi40MjU4OSIsIFwKLSAgICAgICAgICAiMC40NjMwNTMsIDAuNTEyNzgzLCAwLjc5MzY1NywgMS4wNDE4OCwgMS4zNzI3MiwgMi4wMzM0OCwgMi40NDY3OSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xODM1OTQsIDAuMjc5MzE5LCAwLjgzMTQ1MiwgMS4zMjE4NCwgMS45Nzk1LCAzLjI4MzI2LCA0LjEwNjM2IiwgXAotICAgICAgICAgICIwLjE4MzY4MSwgMC4yNzkwMDQsIDAuODMyOTU2LCAxLjMyMzEzLCAxLjk3NjU2LCAzLjI4NjQzLCA0LjEwMzk1IiwgXAotICAgICAgICAgICIwLjE4MzYyMiwgMC4yNzg5OTYsIDAuODMyOTk0LCAxLjMyMzE0LCAxLjk3NjYsIDMuMjg2NDMsIDQuMTAzOTciLCBcCi0gICAgICAgICAgIjAuMTgzNTA1LCAwLjI3ODk5OCwgMC44MzI5MzIsIDEuMzIzMTcsIDEuOTc3MywgMy4yODY0NCwgNC4xMDQwMyIsIFwKLSAgICAgICAgICAiMC4xODM2OCwgMC4yNzg5NTYsIDAuODMzMDEyLCAxLjMyMzE4LCAxLjk3NjUxLCAzLjI4NjMxLCA0LjA5NTEzIiwgXAotICAgICAgICAgICIwLjE4MzY3NCwgMC4yNzkwMDQsIDAuODMyOTM3LCAxLjMyMzE1LCAxLjk3NjU3LCAzLjI4NjQsIDQuMTAzOTciLCBcCi0gICAgICAgICAgIjAuMTgzNzE0LCAwLjI3OTAxNywgMC44MzI5NTQsIDEuMzIzMTQsIDEuOTc2NTcsIDMuMjg2NDMsIDQuMTAzOTIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUk4iOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGNsZWFyOwotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC40NDE5NzEsIDAuNDkxODA2LCAwLjc3MTg4NywgMS4wMjA2NCwgMS4zNTEzLCAyLjAwODY0LCAyLjQyNTM1IiwgXAotICAgICAgICAgICIwLjQ1MzQyLCAwLjUwMzE1OSwgMC43ODI3ODUsIDEuMDMxOTksIDEuMzYyNjUsIDIuMDE2OTEsIDIuNDM2NjkiLCBcCi0gICAgICAgICAgIjAuNDY4Mzg5LCAwLjUxODAzNiwgMC43OTg4NDEsIDEuMDQ2OTcsIDEuMzc3NTcsIDIuMDM4NjEsIDIuNDUxNjIiLCBcCi0gICAgICAgICAgIjAuNDgzMDE5LCAwLjUzMjU4NSwgMC44MTI1NCwgMS4wNjE2NCwgMS4zOTIyOCwgMi4wNDY1NywgMi40NjYzMSIsIFwKLSAgICAgICAgICAiMC40OTcxNDMsIDAuNTQ2Nzc0LCAwLjgyNzYsIDEuMDc1NzMsIDEuNDA2MzMsIDIuMDY3MzYsIDIuNDgwMzciLCBcCi0gICAgICAgICAgIjAuNTE5NDY4LCAwLjU2OTI0NSwgMC44NDk5MjgsIDEuMDk4MDUsIDEuNDI4NzEsIDIuMDg4OTgsIDIuNTAyNzEiLCBcCi0gICAgICAgICAgIjAuNTM2NzQ4LCAwLjU4NjUxOCwgMC44NjcyMDksIDEuMTE1MzMsIDEuNDQ1OTksIDIuMTA2OTIsIDIuNTE5OTciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTgzNDY4LCAwLjI3ODg0MSwgMC44MzMwOTcsIDEuMzIzNjcsIDEuOTc4NzUsIDMuMjg3ODgsIDQuMTA4MzgiLCBcCi0gICAgICAgICAgIjAuMTgzNTM0LCAwLjI3ODg2NywgMC44MzI5OCwgMS4zMjM3NCwgMS45Nzg4NiwgMy4yODkwNiwgNC4xMDg4OSIsIFwKLSAgICAgICAgICAiMC4xODM1MDksIDAuMjc5MDc5LCAwLjgzMywgMS4zMjM3NiwgMS45Nzk1MywgMy4yODk2MSwgNC4xMDkzNSIsIFwKLSAgICAgICAgICAiMC4xODM1MzEsIDAuMjc4NTksIDAuODMzMDAxLCAxLjMyMzc3LCAxLjk3OSwgMy4yODk2OCwgNC4xMDkzMiIsIFwKLSAgICAgICAgICAiMC4xODM0NjcsIDAuMjc5MDYyLCAwLjgzMjk4MiwgMS4zMjM2NywgMS45Nzk0OCwgMy4yODg5NiwgNC4xMDg2IiwgXAotICAgICAgICAgICIwLjE4MzQ1OCwgMC4yNzkyMDgsIDAuODMyOTkxLCAxLjMyMzc0LCAxLjk3ODg5LCAzLjI5MDY1LCA0LjEwODgxIiwgXAotICAgICAgICAgICIwLjE4MzUwMSwgMC4yNzkyMDEsIDAuODMyOTg3LCAxLjMyMjkyLCAxLjk3OTc1LCAzLjI4OTExLCA0LjEwOTQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiU04iOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHByZXNldDsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjg3MDgsIDAuMzMwNjA5LCAwLjU3NjcxLCAwLjc5MTkzNiwgMS4wODAzLCAxLjY1ODUzLCAyLjAyMDE0IiwgXAotICAgICAgICAgICIwLjI5ODc2NCwgMC4zNDIzMjcsIDAuNTg4MDM4LCAwLjgwMzYyMSwgMS4wOTE5NiwgMS42NzExNiwgMi4wMzE4NiIsIFwKLSAgICAgICAgICAiMC4zMTMxOTcsIDAuMzU2Nzg5LCAwLjYwMjM0NSwgMC44MTkxNzQsIDEuMTA3MDksIDEuNjg0NDcsIDIuMDQ2MTkiLCBcCi0gICAgICAgICAgIjAuMzI2NzA0LCAwLjM3MDI0NCwgMC42MTU5NTgsIDAuODMxNTU0LCAxLjExOTgsIDEuNjk4NzgsIDIuMDU5ODMiLCBcCi0gICAgICAgICAgIjAuMzM5NjY3LCAwLjM4MzE2NywgMC42Mjg2MTMsIDAuODQ1ODY5LCAxLjEzMzY3LCAxLjcxMTA0LCAyLjA3MDc4IiwgXAotICAgICAgICAgICIwLjM2MTI4OCwgMC40MDQ3NjUsIDAuNjUwMDA3LCAwLjg2Njk1NSwgMS4xNTQxOSwgMS43MzI1NiwgMi4wOTI3MSIsIFwKLSAgICAgICAgICAiMC4zODEzOTcsIDAuNDI0ODcxLCAwLjY3MDI2LCAwLjg4NjA2LCAxLjE3NDQ0LCAxLjc1MTQ4LCAyLjExNDYxIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE2ODQ4MSwgMC4yNTQxNjcsIDAuNzUyNzk5LCAxLjE5NDUsIDEuNzg5MTgsIDIuOTY2MzcsIDMuNzA5MDIiLCBcCi0gICAgICAgICAgIjAuMTY4Mjk3LCAwLjI1NDEzNywgMC43NTA2NTEsIDEuMTk4NDIsIDEuNzg5MjIsIDIuOTY2MjIsIDMuNzA0MzIiLCBcCi0gICAgICAgICAgIjAuMTY4MzQzLCAwLjI1NDE1LCAwLjc1MDY2LCAxLjE5ODQyLCAxLjc4OTIxLCAyLjk3MDEsIDMuNzA0MDQiLCBcCi0gICAgICAgICAgIjAuMTY4Njk4LCAwLjI1NDEzOCwgMC43NTA3NDEsIDEuMTk0NTIsIDEuNzg1ODcsIDIuOTY2MzksIDMuNjk3ODEiLCBcCi0gICAgICAgICAgIjAuMTY2NzIzLCAwLjI1NDIwNSwgMC43NTA2MTUsIDEuMTk4MzcsIDEuNzg5MjMsIDIuOTY2MzIsIDMuNzA0MzEiLCBcCi0gICAgICAgICAgIjAuMTY3NTE0LCAwLjI1NDIxMiwgMC43NTMyMTgsIDEuMTk4NDEsIDEuNzg5MzMsIDIuOTcxLCAzLjcwMzkiLCBcCi0gICAgICAgICAgIjAuMTY2NTY2LCAwLjI1NDE0NiwgMC43NTI4MDYsIDEuMTk4NDEsIDEuNzg5MzMsIDIuOTY2MjgsIDMuNzA4NjIiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuNDA5OTI0LCAwLjQ1OTUxOCwgMC43NDA1NTksIDAuOTg2NDIsIDEuMzE3ODUsIDEuOTgwNTksIDIuMzkzMTQiLCBcCi0gICAgICAgICAgIjAuNDIyMDAxLCAwLjQ3MTcwNywgMC43NTI1OTcsIDEuMDAwODIsIDEuMzMxNDksIDEuOTkyNjIsIDIuNDA1NjMiLCBcCi0gICAgICAgICAgIjAuNDM2NzY4LCAwLjQ4NjUxLCAwLjc2NzM2NSwgMS4wMTU1OSwgMS4zNDYyNSwgMi4wMDczNywgMi40MjAzNyIsIFwKLSAgICAgICAgICAiMC40NTA4MTgsIDAuNTAwMzg0LCAwLjc4MTQ0NywgMS4wMjk2NywgMS4zNjAzOCwgMi4wMjExMSwgMi40MzQ1NSIsIFwKLSAgICAgICAgICAiMC40NjQ2OTgsIDAuNTE0MzM4LCAwLjc5NTI5NywgMS4wNDM1MSwgMS4zNzQxOCwgMi4wMzUyOCwgMi40NDgzMyIsIFwKLSAgICAgICAgICAiMC40ODY2MTUsIDAuNTM2MTk4LCAwLjgxNzI1MiwgMS4wNjU0NywgMS4zOTYxOCwgMi4wNTExNSwgMi40NzAzIiwgXAotICAgICAgICAgICIwLjUwNTYzNCwgMC41NTUzMjEsIDAuODM2MjcsIDEuMDg0NDgsIDEuNDE1MiwgMi4wNzAzNSwgMi40ODkzMSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xODM1MzMsIDAuMjc4NDE0LCAwLjgzMjc4NywgMS4zMjM3NywgMS45NzgxMSwgMy4yODc3OCwgNC4xMDc0IiwgXAotICAgICAgICAgICIwLjE4MzUzNCwgMC4yNzkyODcsIDAuODMzNDg4LCAxLjMyMzksIDEuOTc5MDcsIDMuMjg5MjEsIDQuMTA4NzQiLCBcCi0gICAgICAgICAgIjAuMTgzNTQ2LCAwLjI3OTE1OSwgMC44MzI5ODUsIDEuMzIzNSwgMS45Nzg5NywgMy4yODk0NSwgNC4xMDk1MiIsIFwKLSAgICAgICAgICAiMC4xODM1MDEsIDAuMjc4NDk5LCAwLjgzMjk5NywgMS4zMjM3NywgMS45NzkwMSwgMy4yODk3LCA0LjEwOTQyIiwgXAotICAgICAgICAgICIwLjE4MzQ2OSwgMC4yNzkzMTEsIDAuODMyOTkxLCAxLjMyMzUsIDEuOTc5NDYsIDMuMjg5NDUsIDQuMTA5NjMiLCBcCi0gICAgICAgICAgIjAuMTgzNTI0LCAwLjI3OTEyNywgMC44MzI5OTksIDEuMzIzODksIDEuOTc5MDEsIDMuMjkyNjksIDQuMTA5MzUiLCBcCi0gICAgICAgICAgIjAuMTgzMTg5LCAwLjI3ODg3NywgMC44MzI5NDYsIDEuMzIzNjksIDEuOTc4OSwgMy4yODkwNiwgNC4xMDkxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzM5MSwgMC4wMDMzOTYsIDAuMDAzNDA0LCAwLjAwMzQwNiwgMC4wMDM0MDYsIDAuMDAzNDA3LCAwLjAwMzQwOCIsIFwKLSAgICAgICAgICAiMC4wMDMzODQsIDAuMDAzMzksIDAuMDAzMzk4LCAwLjAwMzM5OSwgMC4wMDM0LCAwLjAwMzQwMSwgMC4wMDM0MDEiLCBcCi0gICAgICAgICAgIjAuMDAzMzc5LCAwLjAwMzM4NSwgMC4wMDMzOTIsIDAuMDAzMzk0LCAwLjAwMzM5NSwgMC4wMDMzOTUsIDAuMDAzMzk1IiwgXAotICAgICAgICAgICIwLjAwMzM3NSwgMC4wMDMzOCwgMC4wMDMzODgsIDAuMDAzMzg5LCAwLjAwMzM5LCAwLjAwMzM5MSwgMC4wMDMzOTEiLCBcCi0gICAgICAgICAgIjAuMDAzMzcyLCAwLjAwMzM3NywgMC4wMDMzODUsIDAuMDAzMzg2LCAwLjAwMzM4OCwgMC4wMDMzODgsIDAuMDAzMzg4IiwgXAotICAgICAgICAgICIwLjAwMzM2NiwgMC4wMDMzNzIsIDAuMDAzMzgsIDAuMDAzMzgxLCAwLjAwMzM4MiwgMC4wMDMzODMsIDAuMDAzMzgzIiwgXAotICAgICAgICAgICIwLjAwMzM2NiwgMC4wMDMzNzEsIDAuMDAzMzc5LCAwLjAwMzM4MSwgMC4wMDMzODEsIDAuMDAzMzgyLCAwLjAwMzM4MyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzIxOSwgMC4wMDMyMjUsIDAuMDAzMjMzLCAwLjAwMzIzNCwgMC4wMDMyMzUsIDAuMDAzMjM3LCAwLjAwMzIzNiIsIFwKLSAgICAgICAgICAiMC4wMDMyMTMsIDAuMDAzMjE5LCAwLjAwMzIyOCwgMC4wMDMyMjgsIDAuMDAzMjI5LCAwLjAwMzIzMSwgMC4wMDMyMzEiLCBcCi0gICAgICAgICAgIjAuMDAzMjA4LCAwLjAwMzIxMywgMC4wMDMyMjMsIDAuMDAzMjI0LCAwLjAwMzIyNCwgMC4wMDMyMjUsIDAuMDAzMjI2IiwgXAotICAgICAgICAgICIwLjAwMzIwNSwgMC4wMDMyMSwgMC4wMDMyMTgsIDAuMDAzMjIsIDAuMDAzMjIxLCAwLjAwMzIyMiwgMC4wMDMyMjIiLCBcCi0gICAgICAgICAgIjAuMDAzMjAzLCAwLjAwMzIwOSwgMC4wMDMyMTYsIDAuMDAzMjE4LCAwLjAwMzIxOSwgMC4wMDMyMTksIDAuMDAzMjIiLCBcCi0gICAgICAgICAgIjAuMDAzMjAxLCAwLjAwMzIwNiwgMC4wMDMyMTQsIDAuMDAzMjE3LCAwLjAwMzIxNywgMC4wMDMyMTgsIDAuMDAzMjE4IiwgXAotICAgICAgICAgICIwLjAwMzIwMiwgMC4wMDMyMDgsIDAuMDAzMjE2LCAwLjAwMzIxOSwgMC4wMDMyMTgsIDAuMDAzMjIsIDAuMDAzMjE5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUk4iOwotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDMxMywgMC4wMDQzMTksIDAuMDA0MzIyLCAwLjAwNDMyLCAwLjAwNDMxOSwgMC4wMDQzMTcsIDAuMDA0MzE1IiwgXAotICAgICAgICAgICIwLjAwNDMwOCwgMC4wMDQzMTQsIDAuMDA0MzE3LCAwLjAwNDMxNSwgMC4wMDQzMTQsIDAuMDA0MzEyLCAwLjAwNDMxIiwgXAotICAgICAgICAgICIwLjAwNDMwNCwgMC4wMDQzMSwgMC4wMDQzMTMsIDAuMDA0MzEzLCAwLjAwNDMxLCAwLjAwNDMwOCwgMC4wMDQzMDgiLCBcCi0gICAgICAgICAgIjAuMDA0MzAxLCAwLjAwNDMwNiwgMC4wMDQzMSwgMC4wMDQzMDgsIDAuMDA0MzA3LCAwLjAwNDMwNCwgMC4wMDQzMDMiLCBcCi0gICAgICAgICAgIjAuMDA0Mjk4LCAwLjAwNDMwNCwgMC4wMDQzMDcsIDAuMDA0MzA3LCAwLjAwNDMwNCwgMC4wMDQzMDMsIDAuMDA0MzAyIiwgXAotICAgICAgICAgICIwLjAwNDI5NywgMC4wMDQzMDIsIDAuMDA0MzA2LCAwLjAwNDMwNCwgMC4wMDQzMDIsIDAuMDA0MywgMC4wMDQzIiwgXAotICAgICAgICAgICIwLjAwNDI5NSwgMC4wMDQzLCAwLjAwNDMwNCwgMC4wMDQzMDIsIDAuMDA0MywgMC4wMDQyOTksIDAuMDA0Mjk4Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3Bvd2VyKHNjYWxhcikgewotICAgICAgICB2YWx1ZXMoIjAiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0MTE4LCAwLjAwNDEyNCwgMC4wMDQxMywgMC4wMDQxMzEsIDAuMDA0MTMyLCAwLjAwNDEzMiwgMC4wMDQxMzIiLCBcCi0gICAgICAgICAgIjAuMDA0MTEyLCAwLjAwNDExNywgMC4wMDQxMjMsIDAuMDA0MTI1LCAwLjAwNDEyNiwgMC4wMDQxMjYsIDAuMDA0MTI2IiwgXAotICAgICAgICAgICIwLjAwNDEwNywgMC4wMDQxMTIsIDAuMDA0MTE5LCAwLjAwNDEyLCAwLjAwNDEyMSwgMC4wMDQxMjEsIDAuMDA0MTIyIiwgXAotICAgICAgICAgICIwLjAwNDEwNSwgMC4wMDQxMDksIDAuMDA0MTE3LCAwLjAwNDExOCwgMC4wMDQxMTgsIDAuMDA0MTE5LCAwLjAwNDExOSIsIFwKLSAgICAgICAgICAiMC4wMDQxMDIsIDAuMDA0MTA4LCAwLjAwNDExNCwgMC4wMDQxMTUsIDAuMDA0MTE2LCAwLjAwNDExNywgMC4wMDQxMTgiLCBcCi0gICAgICAgICAgIjAuMDA0MDk5LCAwLjAwNDEwNCwgMC4wMDQxMTEsIDAuMDA0MTEyLCAwLjAwNDExMywgMC4wMDQxMTMsIDAuMDA0MTE0IiwgXAotICAgICAgICAgICIwLjAwNDA5NywgMC4wMDQxMDIsIDAuMDA0MTA4LCAwLjAwNDExLCAwLjAwNDExMSwgMC4wMDQxMTEsIDAuMDA0MTEyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzMTg4LCAwLjAwMzE5NCwgMC4wMDMyMDIsIDAuMDAzMjA0LCAwLjAwMzIwNSwgMC4wMDMyMDYsIDAuMDAzMjA2IiwgXAotICAgICAgICAgICIwLjAwMzE4MiwgMC4wMDMxODcsIDAuMDAzMTk2LCAwLjAwMzE5OSwgMC4wMDMxOTgsIDAuMDAzMiwgMC4wMDMyIiwgXAotICAgICAgICAgICIwLjAwMzE3NywgMC4wMDMxODMsIDAuMDAzMTkxLCAwLjAwMzE5NCwgMC4wMDMxOTQsIDAuMDAzMTk1LCAwLjAwMzE5NiIsIFwKLSAgICAgICAgICAiMC4wMDMxNzQsIDAuMDAzMTgsIDAuMDAzMTg4LCAwLjAwMzE4OSwgMC4wMDMxOTIsIDAuMDAzMTkxLCAwLjAwMzE5MSIsIFwKLSAgICAgICAgICAiMC4wMDMxNzEsIDAuMDAzMTc3LCAwLjAwMzE4NSwgMC4wMDMxODgsIDAuMDAzMTg4LCAwLjAwMzE4OCwgMC4wMDMxOSIsIFwKLSAgICAgICAgICAiMC4wMDMxNjgsIDAuMDAzMTc0LCAwLjAwMzE4MiwgMC4wMDMxODQsIDAuMDAzMTg1LCAwLjAwMzE4NSwgMC4wMDMxODYiLCBcCi0gICAgICAgICAgIjAuMDAzMTY2LCAwLjAwMzE3MiwgMC4wMDMxOCwgMC4wMDMxODIsIDAuMDAzMTgyLCAwLjAwMzE4NCwgMC4wMDMxODQiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFFOKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMTI4NzU5OwotICAgIGZ1bmN0aW9uIDogIlFCSU5UIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBub25fdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJpc2luZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zODAwNzYsIDAuNDIzMTU3LCAwLjY2NzUwNywgMC44ODMzNzEsIDEuMTcxMSwgMS43NDY0LCAyLjEwNjI2IiwgXAotICAgICAgICAgICIwLjM5MTg0MiwgMC40MzQ5MjQsIDAuNjc5Mzg3LCAwLjg5NTEzLCAxLjE4MjgxLCAxLjc1ODE5LCAyLjExNzc1IiwgXAotICAgICAgICAgICIwLjQwNzA0LCAwLjQ1MDEyMiwgMC42OTQ1OSwgMC45MTAzMjUsIDEuMTk4MDEsIDEuNzczNCwgMi4xMzI5NCIsIFwKLSAgICAgICAgICAiMC40MjI1NzcsIDAuNDY1NjU4LCAwLjcxMDEyMSwgMC45MjU4NTMsIDEuMjEzNjYsIDEuNzg4OSwgMi4xNDg1IiwgXAotICAgICAgICAgICIwLjQzODAwMiwgMC40ODEwODYsIDAuNzI1NTU1LCAwLjk0MTI4MiwgMS4yMjg5OCwgMS44MDQzMSwgMi4xNjM5MiIsIFwKLSAgICAgICAgICAiMC40NjI0MDIsIDAuNTA1NDQsIDAuNzQ5OTAzLCAwLjk2NTY0NCwgMS4yNTMzMywgMS44Mjg3LCAyLjE4ODI2IiwgXAotICAgICAgICAgICIwLjQ4MzI0MiwgMC41MjYzMjMsIDAuNzcwNzg4LCAwLjk4NjUzLCAxLjI3NDIxLCAxLjg0OTU5LCAyLjIwOTE1Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE1OTAyOCwgMC4yNDY1MjIsIDAuNzQyNzksIDEuMTgxNiwgMS43NjQ2OSwgMi45NDEwMiwgMy42NzMzNCIsIFwKLSAgICAgICAgICAiMC4xNTkzMjIsIDAuMjQ2MDQxLCAwLjc0NDI4NiwgMS4xODM2NiwgMS43Njk1NCwgMi45NDExNywgMy42NzMyMiIsIFwKLSAgICAgICAgICAiMC4xNTkzMTgsIDAuMjQ2MDEsIDAuNzQ0MzEyLCAxLjE4MzY1LCAxLjc2OTUyLCAyLjk0MTIyLCAzLjY3MzIxIiwgXAotICAgICAgICAgICIwLjE1OTAzMiwgMC4yNDYwMzUsIDAuNzQ0MjcsIDEuMTgzNTksIDEuNzY0NzksIDIuOTQxMDMsIDMuNjczMzIiLCBcCi0gICAgICAgICAgIjAuMTU5MzIxLCAwLjI0NTk2LCAwLjc0NDMwNSwgMS4xODM2MSwgMS43Njk1NywgMi45NDA5NiwgMy42NjY5OCIsIFwKLSAgICAgICAgICAiMC4xNTkzMjUsIDAuMjQ2MDQyLCAwLjc0NDI4MiwgMS4xODM2NSwgMS43Njk1MywgMi45NDExNSwgMy42NzMyMyIsIFwKLSAgICAgICAgICAiMC4xNTkzMjMsIDAuMjQ2MDQsIDAuNzQ0Mjg3LCAxLjE4MzY1LCAxLjc2OTUzLCAyLjk0MTE1LCAzLjY3MzIyIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjM2Nzc3LCAwLjQxNzA5LCAwLjY5NjgzNiwgMC45NDM4MTIsIDEuMjcyODcsIDEuOTMxMjQsIDIuMzQyNTciLCBcCi0gICAgICAgICAgIjAuMzc5MjY2LCAwLjQyODU4NSwgMC43MDgzOTUsIDAuOTU1Mjc4LCAxLjI4NDM2LCAxLjk0MjY2LCAyLjM1NDA2IiwgXAotICAgICAgICAgICIwLjM5NDU3MiwgMC40NDM5ODksIDAuNzIzNzI3LCAwLjk3MDY4MiwgMS4yOTk3NCwgMS45NTgwMywgMi4zNjk0MSIsIFwKLSAgICAgICAgICAiMC40MTAwMzgsIDAuNDU5MzcxLCAwLjczOTA4MiwgMC45ODU5OTQsIDEuMzE1MTMsIDEuOTczMzksIDIuMzg0ODQiLCBcCi0gICAgICAgICAgIjAuNDI1NDE0LCAwLjQ3NDczMywgMC43NTQ0NzIsIDEuMDAxNDQsIDEuMzMwNSwgMS45ODg3OCwgMi40MDAyNCIsIFwKLSAgICAgICAgICAiMC40NDk1ODMsIDAuNDk4OSwgMC43Nzg2MzgsIDEuMDI1NiwgMS4zNTQ2NCwgMi4wMTI5NCwgMi40MjQzMSIsIFwKLSAgICAgICAgICAiMC40NzAyNDQsIDAuNTE5NTYzLCAwLjc5OTMxOSwgMS4wNDYxNiwgMS4zNzUzNCwgMi4wMzM2NCwgMi40NDUwNCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNzY5MDksIDAuMjc0NDI2LCAwLjgyOTgwOSwgMS4zMTkwMywgMS45NzM4OCwgMy4yODEyOCwgNC4wOTgxOSIsIFwKLSAgICAgICAgICAiMC4xNzY4NzksIDAuMjc0NDI4LCAwLjgyOTE4NCwgMS4zMjAyNSwgMS45NzM4NiwgMy4yODExNiwgNC4wOTgxNiIsIFwKLSAgICAgICAgICAiMC4xNzY5MDMsIDAuMjc0NDQyLCAwLjgyOTc2MywgMS4zMTg5NSwgMS45NzM3NSwgMy4yODEsIDQuMDk1NjYiLCBcCi0gICAgICAgICAgIjAuMTc2ODc5LCAwLjI3NDM1NCwgMC44Mjk3MjksIDEuMzIwMjQsIDEuOTczODQsIDMuMjc5MDcsIDQuMDk4MTYiLCBcCi0gICAgICAgICAgIjAuMTc2ODg3LCAwLjI3NDQzNywgMC44Mjk3NjcsIDEuMzE5MDMsIDEuOTcyNTksIDMuMjgxMDMsIDQuMDk4MjEiLCBcCi0gICAgICAgICAgIjAuMTc2OTg4LCAwLjI3NDQ0LCAwLjgyOTc2NCwgMS4zMTg5NiwgMS45NzM2OCwgMy4yODEsIDQuMDg3MzkiLCBcCi0gICAgICAgICAgIjAuMTc2OTA4LCAwLjI3NDQyNSwgMC44Mjk4MzQsIDEuMzIwMDUsIDEuOTczODQsIDMuMjgxMTYsIDQuMDk4MTgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUk4iOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHByZXNldDsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuNDYyNDEsIDAuNTA1NTA0LCAwLjc0OTk3MywgMC45NjU3MTEsIDEuMjUzMzksIDEuODI4NzIsIDIuMTg4MzkiLCBcCi0gICAgICAgICAgIjAuNDczODI3LCAwLjUxNjkwOSwgMC43NjEzOSwgMC45NzcwODEsIDEuMjY0NzYsIDEuODQwMTUsIDIuMTk5NzciLCBcCi0gICAgICAgICAgIjAuNDg4ODA1LCAwLjUzMTg3MSwgMC43NzYzMzIsIDAuOTkyMDYyLCAxLjI3OTczLCAxLjg1NTExLCAyLjIxNDcyIiwgXAotICAgICAgICAgICIwLjUwMzQxNSwgMC41NDY1LCAwLjc5MDk2LCAxLjAwNjY4LCAxLjI5NDM2LCAxLjg2OTc2LCAyLjIyOTM2IiwgXAotICAgICAgICAgICIwLjUxNzU1OSwgMC41NjA2MjMsIDAuODA1MDg3LCAxLjAyMDgyLCAxLjMwODQ4LCAxLjg4Mzg2LCAyLjI0MzQ3IiwgXAotICAgICAgICAgICIwLjUzOTg4MSwgMC41ODI5NjUsIDAuODI3NDEyLCAxLjA0MzEzLCAxLjMzMDgyLCAxLjkwNjM1LCAyLjI2NTgzIiwgXAotICAgICAgICAgICIwLjU1NzE2MSwgMC42MDAyNDQsIDAuODQ0NjkxLCAxLjA2MDQxLCAxLjM0ODEsIDEuOTIzNDYsIDIuMjgzMTEiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTU5Mjk4LCAwLjI0NjA3NSwgMC43NDQyOCwgMS4xODM3LCAxLjc2OTUsIDIuOTQxNDQsIDMuNjczNzciLCBcCi0gICAgICAgICAgIjAuMTU5MzIsIDAuMjQ2MTE3LCAwLjc0NDI0OSwgMS4xODM3MiwgMS43Njk1NiwgMi45NDA5LCAzLjY3MzkyIiwgXAotICAgICAgICAgICIwLjE1OTM1MSwgMC4yNDY1NDksIDAuNzQ0MzU1LCAxLjE4MzcxLCAxLjc2OTcsIDIuOTQxMzYsIDMuNjc0MTEiLCBcCi0gICAgICAgICAgIjAuMTU5MzE4LCAwLjI0NTgzOCwgMC43NDQyNzgsIDEuMTgzNzEsIDEuNzY5NTQsIDIuOTQxMDEsIDMuNjczODgiLCBcCi0gICAgICAgICAgIjAuMTU5MzQ5LCAwLjI0NjUzNiwgMC43NDQzNjEsIDEuMTgzNjksIDEuNzY5NjksIDIuOTQxMzYsIDMuNjc0MDgiLCBcCi0gICAgICAgICAgIjAuMTU5Mjk5LCAwLjI0NjY0NCwgMC43NDQzNDMsIDEuMTgzNzksIDEuNzY5NTgsIDIuOTQyNDYsIDMuNjczOTYiLCBcCi0gICAgICAgICAgIjAuMTU5MzQsIDAuMjQ2NjQsIDAuNzQ0MzM4LCAxLjE4MzczLCAxLjc2OTY3LCAyLjk0MTMsIDMuNjczOTgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiU04iOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGNsZWFyOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC40MzAzNDYsIDAuNDczNDE1LCAwLjcxNzg4NywgMC45MzM3NzIsIDEuMjIxMjksIDEuNzk2NjUsIDIuMTU2MzUiLCBcCi0gICAgICAgICAgIjAuNDQyNDE0LCAwLjQ4NTQ4OCwgMC43Mjk5NDQsIDAuOTQ1Njc5LCAxLjIzMzM0LCAxLjgwODcyLCAyLjE2ODM1IiwgXAotICAgICAgICAgICIwLjQ1NzE4MSwgMC41MDAyNTksIDAuNzQ0NzEyLCAwLjk2MDQ0OCwgMS4yNDgxMSwgMS44MjM0OSwgMi4xODMxMSIsIFwKLSAgICAgICAgICAiMC40NzEyMywgMC41MTQzMDMsIDAuNzU4NzcxLCAwLjk3NDUwNywgMS4yNjIxOCwgMS44Mzc1OSwgMi4xOTcxNyIsIFwKLSAgICAgICAgICAiMC40ODUxMTQsIDAuNTI4MTc5LCAwLjc3MjY0NCwgMC45ODgzNzIsIDEuMjc2MDQsIDEuODUxNDIsIDIuMjExMDMiLCBcCi0gICAgICAgICAgIjAuNTA3MDMsIDAuNTUwMTE3LCAwLjc5NDU3NywgMS4wMTAzLCAxLjI5Nzk4LCAxLjg3MzM5LCAyLjIzMjk5IiwgXAotICAgICAgICAgICIwLjUyNjA0OSwgMC41NjkxMzgsIDAuODEzNTk0LCAxLjAyOTMyLCAxLjMxNywgMS44OTI0MiwgMi4yNTIwMSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNTkzMzEsIDAuMjQ1ODAxLCAwLjc0NDMyNywgMS4xODM1NSwgMS43NjkzMSwgMi45NDEyNiwgMy42NzQyOCIsIFwKLSAgICAgICAgICAiMC4xNTkzNTUsIDAuMjQ2NTk3LCAwLjc0NDM0OCwgMS4xODM3MiwgMS43Njk2MywgMi45NDEzNSwgMy42NzQxNyIsIFwKLSAgICAgICAgICAiMC4xNTkzNTYsIDAuMjQ2NjE2LCAwLjc0NDM0NCwgMS4xODM3MiwgMS43Njk2MiwgMi45NDEzNCwgMy42NzQxNSIsIFwKLSAgICAgICAgICAiMC4xNTkzMTksIDAuMjQ1NjY1LCAwLjc0NDMxMSwgMS4xODM3MiwgMS43Njk0NSwgMi45NDE3NywgMy42NzM2OCIsIFwKLSAgICAgICAgICAiMC4xNTkzNDgsIDAuMjQ2NTc2LCAwLjc0NDM2MSwgMS4xODM2OSwgMS43Njk2LCAyLjk0MTM1LCAzLjY3NDA2IiwgXAotICAgICAgICAgICIwLjE1OTMxNiwgMC4yNDY0ODgsIDAuNzQ0MzI3LCAxLjE4MzcsIDEuNzY5NTIsIDIuOTQwOTMsIDMuNjczODIiLCBcCi0gICAgICAgICAgIjAuMTU4OTIsIDAuMjQ2MTQxLCAwLjc0NDMyNSwgMS4xODM3LCAxLjc2OTUyLCAyLjk0MDgyLCAzLjY3MzgzIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMyNTI4MywgMC4zNzQ2MjQsIDAuNjU0NDI4LCAwLjkwMTE5MywgMS4yMzAzMiwgMS44ODg2NywgMi4zMDAyNCIsIFwKLSAgICAgICAgICAiMC4zMzY5NzEsIDAuMzg2MzE0LCAwLjY2NjA3NiwgMC45MTI4ODcsIDEuMjQyMDIsIDEuOTAwNDksIDIuMzExOTIiLCBcCi0gICAgICAgICAgIjAuMzUxNDEsIDAuNDAwNzQ3LCAwLjY4MDUwMSwgMC45MjczOTksIDEuMjU2NSwgMS45MTQ4MywgMi4zMjYzMiIsIFwKLSAgICAgICAgICAiMC4zNjQ5MjQsIDAuNDE0MjcsIDAuNjk0MDQ3LCAwLjk0MDg0MSwgMS4yNjk5NiwgMS45Mjg0MSwgMi4zMzk4OSIsIFwKLSAgICAgICAgICAiMC4zNzc3OSwgMC40MjcyMTIsIDAuNzA2OTUzLCAwLjk1Mzg4MSwgMS4yODI5LCAxLjk0MTI5LCAyLjM1MjU3IiwgXAotICAgICAgICAgICIwLjM5OTYzMSwgMC40NDg5OCwgMC43Mjg3MDUsIDAuOTc1NjY3LCAxLjMwNDc1LCAxLjk2MzEzLCAyLjM3NDQ2IiwgXAotICAgICAgICAgICIwLjQxOTc4NywgMC40NjkxMzMsIDAuNzQ4ODgsIDAuOTk1Njk1LCAxLjMyNDgyLCAxLjk4MzE0LCAyLjM5NDc4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE3NzAzNiwgMC4yNzQzNzEsIDAuODI5OTU3LCAxLjMyMDAzLCAxLjk3MzczLCAzLjI4MTQ0LCA0LjA5ODk1IiwgXAotICAgICAgICAgICIwLjE3Njk2LCAwLjI3NDM2OCwgMC44Mjk5MDcsIDEuMzE5OTksIDEuOTczNzQsIDMuMjgxNDYsIDQuMDk4OTYiLCBcCi0gICAgICAgICAgIjAuMTc2OTU0LCAwLjI3NDM2NywgMC44Mjk5MSwgMS4zMTk5OSwgMS45NzM2NiwgMy4yODE0NCwgNC4wOTg3OSIsIFwKLSAgICAgICAgICAiMC4xNzY5OTksIDAuMjc0MzY1LCAwLjgyOTk2NywgMS4zMTk5OSwgMS45NzM2LCAzLjI4MTY4LCA0LjA5NjExIiwgXAotICAgICAgICAgICIwLjE3NjkyNCwgMC4yNzQzNzUsIDAuODI5OTE1LCAxLjMxOTk1LCAxLjk3MzY1LCAzLjI4MTUzLCA0LjA5ODg5IiwgXAotICAgICAgICAgICIwLjE3NjkyNCwgMC4yNzQzODEsIDAuODI5OTIxLCAxLjMyMDAzLCAxLjk3MzY0LCAzLjI4MTQ4LCA0LjA5ODczIiwgXAotICAgICAgICAgICIwLjE3Njg5LCAwLjI3NDM3LCAwLjgyOTkzNywgMS4zMjAwOCwgMS45NzM2NCwgMy4yODE1NSwgNC4wOTg4MyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDMyMTksIDAuMDAzMjI1LCAwLjAwMzIzMywgMC4wMDMyMzQsIDAuMDAzMjM1LCAwLjAwMzIzNywgMC4wMDMyMzYiLCBcCi0gICAgICAgICAgIjAuMDAzMjEzLCAwLjAwMzIxOSwgMC4wMDMyMjgsIDAuMDAzMjI4LCAwLjAwMzIyOSwgMC4wMDMyMzEsIDAuMDAzMjMxIiwgXAotICAgICAgICAgICIwLjAwMzIwOCwgMC4wMDMyMTMsIDAuMDAzMjIzLCAwLjAwMzIyNCwgMC4wMDMyMjQsIDAuMDAzMjI1LCAwLjAwMzIyNiIsIFwKLSAgICAgICAgICAiMC4wMDMyMDUsIDAuMDAzMjEsIDAuMDAzMjE4LCAwLjAwMzIyLCAwLjAwMzIyMSwgMC4wMDMyMjIsIDAuMDAzMjIyIiwgXAotICAgICAgICAgICIwLjAwMzIwMywgMC4wMDMyMDksIDAuMDAzMjE2LCAwLjAwMzIxOCwgMC4wMDMyMTksIDAuMDAzMjE5LCAwLjAwMzIyIiwgXAotICAgICAgICAgICIwLjAwMzIwMSwgMC4wMDMyMDYsIDAuMDAzMjE0LCAwLjAwMzIxNywgMC4wMDMyMTcsIDAuMDAzMjE4LCAwLjAwMzIxOCIsIFwKLSAgICAgICAgICAiMC4wMDMyMDIsIDAuMDAzMjA4LCAwLjAwMzIxNiwgMC4wMDMyMTksIDAuMDAzMjE4LCAwLjAwMzIyLCAwLjAwMzIxOSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzM5MSwgMC4wMDMzOTYsIDAuMDAzNDA0LCAwLjAwMzQwNiwgMC4wMDM0MDYsIDAuMDAzNDA3LCAwLjAwMzQwOCIsIFwKLSAgICAgICAgICAiMC4wMDMzODQsIDAuMDAzMzksIDAuMDAzMzk4LCAwLjAwMzM5OSwgMC4wMDM0LCAwLjAwMzQwMSwgMC4wMDM0MDEiLCBcCi0gICAgICAgICAgIjAuMDAzMzc5LCAwLjAwMzM4NSwgMC4wMDMzOTIsIDAuMDAzMzk0LCAwLjAwMzM5NSwgMC4wMDMzOTUsIDAuMDAzMzk1IiwgXAotICAgICAgICAgICIwLjAwMzM3NSwgMC4wMDMzOCwgMC4wMDMzODgsIDAuMDAzMzg5LCAwLjAwMzM5LCAwLjAwMzM5MSwgMC4wMDMzOTEiLCBcCi0gICAgICAgICAgIjAuMDAzMzcyLCAwLjAwMzM3NywgMC4wMDMzODUsIDAuMDAzMzg2LCAwLjAwMzM4OCwgMC4wMDMzODgsIDAuMDAzMzg4IiwgXAotICAgICAgICAgICIwLjAwMzM2NiwgMC4wMDMzNzIsIDAuMDAzMzgsIDAuMDAzMzgxLCAwLjAwMzM4MiwgMC4wMDMzODMsIDAuMDAzMzgzIiwgXAotICAgICAgICAgICIwLjAwMzM2NiwgMC4wMDMzNzEsIDAuMDAzMzc5LCAwLjAwMzM4MSwgMC4wMDMzODEsIDAuMDAzMzgyLCAwLjAwMzM4MyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQzMTMsIDAuMDA0MzE5LCAwLjAwNDMyMiwgMC4wMDQzMiwgMC4wMDQzMTksIDAuMDA0MzE3LCAwLjAwNDMxNSIsIFwKLSAgICAgICAgICAiMC4wMDQzMDgsIDAuMDA0MzE0LCAwLjAwNDMxNywgMC4wMDQzMTUsIDAuMDA0MzE0LCAwLjAwNDMxMiwgMC4wMDQzMSIsIFwKLSAgICAgICAgICAiMC4wMDQzMDQsIDAuMDA0MzEsIDAuMDA0MzEzLCAwLjAwNDMxMywgMC4wMDQzMSwgMC4wMDQzMDgsIDAuMDA0MzA4IiwgXAotICAgICAgICAgICIwLjAwNDMwMSwgMC4wMDQzMDYsIDAuMDA0MzEsIDAuMDA0MzA4LCAwLjAwNDMwNywgMC4wMDQzMDQsIDAuMDA0MzAzIiwgXAotICAgICAgICAgICIwLjAwNDI5OCwgMC4wMDQzMDQsIDAuMDA0MzA3LCAwLjAwNDMwNywgMC4wMDQzMDQsIDAuMDA0MzAzLCAwLjAwNDMwMiIsIFwKLSAgICAgICAgICAiMC4wMDQyOTcsIDAuMDA0MzAyLCAwLjAwNDMwNiwgMC4wMDQzMDQsIDAuMDA0MzAyLCAwLjAwNDMsIDAuMDA0MyIsIFwKLSAgICAgICAgICAiMC4wMDQyOTUsIDAuMDA0MywgMC4wMDQzMDQsIDAuMDA0MzAyLCAwLjAwNDMsIDAuMDA0Mjk5LCAwLjAwNDI5OCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihzY2FsYXIpIHsKLSAgICAgICAgdmFsdWVzKCIwIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiU04iOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzE4OCwgMC4wMDMxOTQsIDAuMDAzMjAyLCAwLjAwMzIwNCwgMC4wMDMyMDUsIDAuMDAzMjA2LCAwLjAwMzIwNiIsIFwKLSAgICAgICAgICAiMC4wMDMxODIsIDAuMDAzMTg3LCAwLjAwMzE5NiwgMC4wMDMxOTksIDAuMDAzMTk4LCAwLjAwMzIsIDAuMDAzMiIsIFwKLSAgICAgICAgICAiMC4wMDMxNzcsIDAuMDAzMTgzLCAwLjAwMzE5MSwgMC4wMDMxOTQsIDAuMDAzMTk0LCAwLjAwMzE5NSwgMC4wMDMxOTYiLCBcCi0gICAgICAgICAgIjAuMDAzMTc0LCAwLjAwMzE4LCAwLjAwMzE4OCwgMC4wMDMxODksIDAuMDAzMTkyLCAwLjAwMzE5MSwgMC4wMDMxOTEiLCBcCi0gICAgICAgICAgIjAuMDAzMTcxLCAwLjAwMzE3NywgMC4wMDMxODUsIDAuMDAzMTg4LCAwLjAwMzE4OCwgMC4wMDMxODgsIDAuMDAzMTkiLCBcCi0gICAgICAgICAgIjAuMDAzMTY4LCAwLjAwMzE3NCwgMC4wMDMxODIsIDAuMDAzMTg0LCAwLjAwMzE4NSwgMC4wMDMxODUsIDAuMDAzMTg2IiwgXAotICAgICAgICAgICIwLjAwMzE2NiwgMC4wMDMxNzIsIDAuMDAzMTgsIDAuMDAzMTgyLCAwLjAwMzE4MiwgMC4wMDMxODQsIDAuMDAzMTg0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0MTE4LCAwLjAwNDEyNCwgMC4wMDQxMywgMC4wMDQxMzEsIDAuMDA0MTMyLCAwLjAwNDEzMiwgMC4wMDQxMzIiLCBcCi0gICAgICAgICAgIjAuMDA0MTEyLCAwLjAwNDExNywgMC4wMDQxMjMsIDAuMDA0MTI1LCAwLjAwNDEyNiwgMC4wMDQxMjYsIDAuMDA0MTI2IiwgXAotICAgICAgICAgICIwLjAwNDEwNywgMC4wMDQxMTIsIDAuMDA0MTE5LCAwLjAwNDEyLCAwLjAwNDEyMSwgMC4wMDQxMjEsIDAuMDA0MTIyIiwgXAotICAgICAgICAgICIwLjAwNDEwNSwgMC4wMDQxMDksIDAuMDA0MTE3LCAwLjAwNDExOCwgMC4wMDQxMTgsIDAuMDA0MTE5LCAwLjAwNDExOSIsIFwKLSAgICAgICAgICAiMC4wMDQxMDIsIDAuMDA0MTA4LCAwLjAwNDExNCwgMC4wMDQxMTUsIDAuMDA0MTE2LCAwLjAwNDExNywgMC4wMDQxMTgiLCBcCi0gICAgICAgICAgIjAuMDA0MDk5LCAwLjAwNDEwNCwgMC4wMDQxMTEsIDAuMDA0MTEyLCAwLjAwNDExMywgMC4wMDQxMTMsIDAuMDA0MTE0IiwgXAotICAgICAgICAgICIwLjAwNDA5NywgMC4wMDQxMDIsIDAuMDA0MTA4LCAwLjAwNDExLCAwLjAwNDExMSwgMC4wMDQxMTEsIDAuMDA0MTEyIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihSTikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjE0Nzg7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjE0NDAxOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDYxNDc4OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDQyMiwgMC4wMDA0MDgsIDAuMDAwMzk4LCAwLjAwMDM5MywgMC4wMDAzOSwgMC4wMDAzODgsIDAuMDAwMzg3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyMDE2LCAwLjAwMjAwOCwgMC4wMDIwMDEsIDAuMDAxOTk4LCAwLjAwMTk5NiwgMC4wMDE5OTQsIDAuMDAxOTkzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRCYhU0UmIVNJJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9TRV9FUV8wX0FOX1NJX0VRXzBfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjQ2MjQxLCAwLjQ3MzgyNywgMC40ODg4MDUsIDAuNTAzNDE1LCAwLjUxNzU1OSwgMC41Mzk4ODEsIDAuNTU3MTYxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogcmVjb3ZlcnlfcmlzaW5nOwotICAgICAgd2hlbiA6ICJTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJTTiA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChyZWNvdmVyeV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMjUsIDAuMTEzNzUsIDAuMDk1LCAwLjA3NjI1LCAwLjA2Mzc1LCAwLjAzNSwgMC4wMTM3NSIsIFwKLSAgICAgICAgICAiMC4xMzYyNSwgMC4xMjUsIDAuMTA2MjUsIDAuMDg3NSwgMC4wNzUsIDAuMDQ2MjUsIDAuMDI1IiwgXAotICAgICAgICAgICIwLjE0ODc1LCAwLjEzNzUsIDAuMTE4NzUsIDAuMTA2MjUsIDAuMDg3NSwgMC4wNjUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMTY3NSwgMC4xNSwgMC4xMzc1LCAwLjExODc1LCAwLjEwNjI1LCAwLjA3NzUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIjAuMTgsIDAuMTY4NzUsIDAuMTUsIDAuMTM3NSwgMC4xMTg3NSwgMC4wOSwgMC4wNjg3NSIsIFwKLSAgICAgICAgICAiMC4yMDI1LCAwLjE5MTI1LCAwLjE3MjUsIDAuMTYsIDAuMTQxMjUsIDAuMTE4NzUsIDAuMDk3NSIsIFwKLSAgICAgICAgICAiMC4yMjM3NSwgMC4yMTI1LCAwLjE5Mzc1LCAwLjE4MTI1LCAwLjE2MjUsIDAuMTQsIDAuMTEyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJlY292ZXJ5X3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUQmIVNFJiFTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fU0VfRVFfMF9BTl9TSV9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHJlY292ZXJ5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE4NzUsIDAuMTk4NzUsIDAuMjExMjUsIDAuMjMsIDAuMjQyNSwgMC4yNjUsIDAuMjgiLCBcCi0gICAgICAgICAgIjAuMTc2MjUsIDAuMTg3NSwgMC4yLCAwLjIxODc1LCAwLjIzMTI1LCAwLjI1Mzc1LCAwLjI2ODc1IiwgXAotICAgICAgICAgICIwLjE2Mzc1LCAwLjE3NSwgMC4xODc1LCAwLjIwNjI1LCAwLjIxODc1LCAwLjI0MTI1LCAwLjI1NjI1IiwgXAotICAgICAgICAgICIwLjE1MTI1LCAwLjE2MjUsIDAuMTc1LCAwLjE5Mzc1LCAwLjIwNjI1LCAwLjIyODc1LCAwLjI0Mzc1IiwgXAotICAgICAgICAgICIwLjEzODc1LCAwLjE1LCAwLjE2ODc1LCAwLjE4MTI1LCAwLjE5Mzc1LCAwLjIxNjI1LCAwLjIzNzUiLCBcCi0gICAgICAgICAgIjAuMTI4NzUsIDAuMTQsIDAuMTUyNSwgMC4xNjUsIDAuMTgzNzUsIDAuMiwgMC4yMjEyNSIsIFwKLSAgICAgICAgICAiMC4xMTM3NSwgMC4xMjUsIDAuMTQzNzUsIDAuMTU2MjUsIDAuMTY4NzUsIDAuMTkxMjUsIDAuMjA2MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiByZW1vdmFsX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiU04iOwotICAgICAgc2RmX2NvbmQgOiAiU04gPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQocmVtb3ZhbF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDMxMjUsIC0wLjAyLCAtMC4wMDEyNSwgMC4wMTEyNSwgMC4wMjM3NSwgMC4wNTI1LCAwLjA2NzUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgMCwgMC4wMTI1LCAwLjAzNSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNDM3NSwgLTAuMDMxMjUsIC0wLjAxODc1LCAwLCAwLjAyMjUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIi0wLjA3Mzc1LCAtMC4wNjI1LCAtMC4wNDM3NSwgLTAuMDMxMjUsIC0wLjAxODc1LCAwLjAxLCAwLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDg2MjUsIC0wLjA3NSwgLTAuMDYyNSwgLTAuMDQzNzUsIC0wLjAzMTI1LCAtMC4wMDg3NSwgMC4wMTI1IiwgXAotICAgICAgICAgICItMC4xMTUsIC0wLjEwMzc1LCAtMC4wODUsIC0wLjA3MjUsIC0wLjA1Mzc1LCAtMC4wMzEyNSwgLTAuMDEiLCBcCi0gICAgICAgICAgIi0wLjEzLCAtMC4xMTg3NSwgLTAuMTA2MjUsIC0wLjA4NzUsIC0wLjA3NSwgLTAuMDUyNSwgLTAuMDMxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFNFKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDEyNjU3NTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDEyNjUyOTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDEyNjU3NTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDM1ODYsIDAuMDAzNTc1LCAwLjAwMzU2OSwgMC4wMDM1NjYsIDAuMDAzNTY2LCAwLjAwMzU2MywgMC4wMDM1NjQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDQ2MTYsIDAuMDA0NTk5LCAwLjAwNDU4NiwgMC4wMDQ1NzksIDAuMDA0NTcyLCAwLjAwNDU2NiwgMC4wMDQ1NjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiUk4mU04iOwotICAgICAgc2RmX2NvbmQgOiAiUk5fRVFfMV9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjA0Mzc1LCAtMC4wMzI1LCAtMC4wMiwgLTAuMDA3NSwgMC4wMDUsIDAuMDI3NSwgMC4wNDg3NSIsIFwKLSAgICAgICAgICAiLTAuMDYxMjUsIC0wLjA0Mzc1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLjAxNjI1LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjA3Mzc1LCAtMC4wNjI1LCAtMC4wNSwgLTAuMDMxMjUsIC0wLjAxODc1LCAwLjAwMzc1LCAwLjAxODc1IiwgXAotICAgICAgICAgICItMC4wODYyNSwgLTAuMDc1LCAtMC4wNjI1LCAtMC4wNSwgLTAuMDM3NSwgLTAuMDE1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICItMC4xMDUsIC0wLjA5Mzc1LCAtMC4wNzUsIC0wLjA2MjUsIC0wLjA1LCAtMC4wMjc1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMTIxMjUsIC0wLjExLCAtMC4wOTc1LCAtMC4wODUsIC0wLjA3MjUsIC0wLjA1LCAtMC4wMjg3NSIsIFwKLSAgICAgICAgICAiLTAuMTM2MjUsIC0wLjEyNSwgLTAuMTEyNSwgLTAuMSwgLTAuMDg3NSwgLTAuMDY1LCAtMC4wNDM3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAxODc1LCAtMC4wMDEyNSwgMC4wMTEyNSwgMC4wMjM3NSwgMC4wMzYyNSwgMC4wNTg3NSwgMC4wOCIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxMjUsIDAsIDAuMDEyNSwgMC4wMjUsIDAuMDQ3NSwgMC4wNjg3NSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDI1LCAtMC4wMTI1LCAwLCAwLjAxMjUsIDAuMDM1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjAzNzUsIC0wLjAyNSwgLTAuMDEyNSwgMCwgMC4wMjI1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICItMC4wNjc1LCAtMC4wNSwgLTAuMDM3NSwgLTAuMDI1LCAtMC4wMTI1LCAwLjAxLCAwLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wODM3NSwgLTAuMDcyNSwgLTAuMDYsIC0wLjA0NzUsIC0wLjAyODc1LCAtMC4wMDYyNSwgMC4wMDg3NSIsIFwKLSAgICAgICAgICAiLTAuMDk4NzUsIC0wLjA4NzUsIC0wLjA3NSwgLTAuMDYyNSwgLTAuMDUsIC0wLjAyNzUsIC0wLjAwNjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJSTiZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJSTl9FUV8xX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjUsIDAuMjM4NzUsIDAuMjIsIDAuMjAxMjUsIDAuMTgyNSwgMC4xNiwgMC4xNDUiLCBcCi0gICAgICAgICAgIjAuMjYxMjUsIDAuMjQzNzUsIDAuMjMxMjUsIDAuMjEyNSwgMC4xOTM3NSwgMC4xNzEyNSwgMC4xNTYyNSIsIFwKLSAgICAgICAgICAiMC4yNzM3NSwgMC4yNTYyNSwgMC4yNDM3NSwgMC4yMjUsIDAuMjEyNSwgMC4xODM3NSwgMC4xNjg3NSIsIFwKLSAgICAgICAgICAiMC4yODYyNSwgMC4yNzUsIDAuMjU2MjUsIDAuMjM3NSwgMC4yMjUsIDAuMjAyNSwgMC4xODEyNSIsIFwKLSAgICAgICAgICAiMC4yOTg3NSwgMC4yODc1LCAwLjI2ODc1LCAwLjI1LCAwLjIzNzUsIDAuMjE1LCAwLjE5Mzc1IiwgXAotICAgICAgICAgICIwLjMyMTI1LCAwLjMxLCAwLjI5MTI1LCAwLjI3MjUsIDAuMjYsIDAuMjM3NSwgMC4yMTYyNSIsIFwKLSAgICAgICAgICAiMC4zNDI1LCAwLjMyNSwgMC4zMTI1LCAwLjI5Mzc1LCAwLjI3NSwgMC4yNTI1LCAwLjIzNzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yNzUsIDAuMjYzNzUsIDAuMjQ1LCAwLjIzMjUsIDAuMjEzNzUsIDAuMTkxMjUsIDAuMTciLCBcCi0gICAgICAgICAgIjAuMjkyNSwgMC4yNzUsIDAuMjYyNSwgMC4yNDM3NSwgMC4yMjUsIDAuMjAyNSwgMC4xODc1IiwgXAotICAgICAgICAgICIwLjMwNSwgMC4yOTM3NSwgMC4yNzUsIDAuMjU2MjUsIDAuMjQzNzUsIDAuMjE1LCAwLjIiLCBcCi0gICAgICAgICAgIjAuMzE3NSwgMC4zMDYyNSwgMC4yODc1LCAwLjI2ODc1LCAwLjI1NjI1LCAwLjIzMzc1LCAwLjIxMjUiLCBcCi0gICAgICAgICAgIjAuMzMsIDAuMzE4NzUsIDAuMywgMC4yODEyNSwgMC4yNjg3NSwgMC4yNDYyNSwgMC4yMjUiLCBcCi0gICAgICAgICAgIjAuMzQ2MjUsIDAuMzM1LCAwLjMxNjI1LCAwLjMwMzc1LCAwLjI4NSwgMC4yNjI1LCAwLjI0MTI1IiwgXAotICAgICAgICAgICIwLjM2MTI1LCAwLjM1LCAwLjMzMTI1LCAwLjMxMjUsIDAuMywgMC4yNzc1LCAwLjI1NjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTSSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjM5MzQzOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYzNzEwNDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2MzkzNDM7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyNjczLCAwLjAwMjY2NCwgMC4wMDI2NTksIDAuMDAyNjU1LCAwLjAwMjY1MywgMC4wMDI2NSwgMC4wMDI2NDciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDM4MTEsIDAuMDAzODA2LCAwLjAwMzgwMywgMC4wMDM4MDIsIDAuMDAzOCwgMC4wMDM3OTcsIDAuMDAzNzk2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlJOJlNFJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIlJOX0VRXzFfQU5fU0VfRVFfMV9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjEzMTI1LCAtMC4xMjYyNSwgLTAuMTEzNzUsIC0wLjEwMTI1LCAtMC4wOTUsIC0wLjA3ODc1LCAtMC4wNjM3NSIsIFwKLSAgICAgICAgICAiLTAuMTQyNSwgLTAuMTM3NSwgLTAuMTI1LCAtMC4xMTI1LCAtMC4xMDYyNSwgLTAuMDksIC0wLjA3NSIsIFwKLSAgICAgICAgICAiLTAuMTYxMjUsIC0wLjE1LCAtMC4xMzc1LCAtMC4xMjUsIC0wLjExODc1LCAtMC4xMDI1LCAtMC4wODc1IiwgXAotICAgICAgICAgICItMC4xNzM3NSwgLTAuMTYyNSwgLTAuMTUsIC0wLjE0Mzc1LCAtMC4xMzEyNSwgLTAuMTE1LCAtMC4xIiwgXAotICAgICAgICAgICItMC4xODYyNSwgLTAuMTc1LCAtMC4xNjg3NSwgLTAuMTU2MjUsIC0wLjE0Mzc1LCAtMC4xMjc1LCAtMC4xMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMjA4NzUsIC0wLjE5NzUsIC0wLjE4NSwgLTAuMTc4NzUsIC0wLjE2NjI1LCAtMC4xNSwgLTAuMTQxMjUiLCBcCi0gICAgICAgICAgIi0wLjIzLCAtMC4yMTg3NSwgLTAuMjA2MjUsIC0wLjE5Mzc1LCAtMC4xODc1LCAtMC4xNzEyNSwgLTAuMTU2MjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMzEyNSwgLTAuMDEzNzUsIC0wLjAwMTI1LCAwLjAxMTI1LCAwLjAyMzc1LCAwLjA0NjI1LCAwLjA2NzUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAyNSwgLTAuMDEyNSwgMCwgMC4wMTI1LCAwLjAzNSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNDM3NSwgLTAuMDI1LCAtMC4wMTI1LCAwLCAwLjAyMjUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIi0wLjA2NzUsIC0wLjA1NjI1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAxMjUsIDAuMDEsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjA4LCAtMC4wNjI1LCAtMC4wNSwgLTAuMDM3NSwgLTAuMDI1LCAtMC4wMDI1LCAwLjAxODc1IiwgXAotICAgICAgICAgICItMC4wOTYyNSwgLTAuMDg1LCAtMC4wNzI1LCAtMC4wNTM3NSwgLTAuMDQxMjUsIC0wLjAxODc1LCAtMC4wMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMTExMjUsIC0wLjEsIC0wLjA4NzUsIC0wLjA3NSwgLTAuMDU2MjUsIC0wLjAzMzc1LCAtMC4wMTg3NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiUk4mU0UmU04iOwotICAgICAgc2RmX2NvbmQgOiAiUk5fRVFfMV9BTl9TRV9FUV8xX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjYyNSwgMC4yNDUsIDAuMjMyNSwgMC4yMTM3NSwgMC4xOTUsIDAuMTcyNSwgMC4xNTc1IiwgXAotICAgICAgICAgICIwLjI3Mzc1LCAwLjI2MjUsIDAuMjQzNzUsIDAuMjI1LCAwLjIxMjUsIDAuMTgzNzUsIDAuMTY4NzUiLCBcCi0gICAgICAgICAgIjAuMjg2MjUsIDAuMjc1LCAwLjI1NjI1LCAwLjIzNzUsIDAuMjI1LCAwLjIwMjUsIDAuMTgxMjUiLCBcCi0gICAgICAgICAgIjAuMjk4NzUsIDAuMjg3NSwgMC4yNjg3NSwgMC4yNTYyNSwgMC4yMzc1LCAwLjIxNSwgMC4xOTM3NSIsIFwKLSAgICAgICAgICAiMC4zMTEyNSwgMC4zLCAwLjI4MTI1LCAwLjI2ODc1LCAwLjI1LCAwLjIyNzUsIDAuMjA2MjUiLCBcCi0gICAgICAgICAgIjAuMzMzNzUsIDAuMzIyNSwgMC4zMDM3NSwgMC4yOTEyNSwgMC4yNzI1LCAwLjI1LCAwLjIyODc1IiwgXAotICAgICAgICAgICIwLjM1NSwgMC4zNDM3NSwgMC4zMjUsIDAuMzA2MjUsIDAuMjkzNzUsIDAuMjcxMjUsIDAuMjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMDYyNSwgMC4xOTUsIDAuMTc2MjUsIDAuMTYzNzUsIDAuMTQ1LCAwLjEyMjUsIDAuMTAxMjUiLCBcCi0gICAgICAgICAgIjAuMjE3NSwgMC4yMDYyNSwgMC4xODc1LCAwLjE3NSwgMC4xNTYyNSwgMC4xMzM3NSwgMC4xMTI1IiwgXAotICAgICAgICAgICIwLjIzLCAwLjIxODc1LCAwLjIwNjI1LCAwLjE4NzUsIDAuMTY4NzUsIDAuMTQ2MjUsIDAuMTI1IiwgXAotICAgICAgICAgICIwLjI0MjUsIDAuMjMxMjUsIDAuMjE4NzUsIDAuMiwgMC4xODEyNSwgMC4xNTg3NSwgMC4xMzc1IiwgXAotICAgICAgICAgICIwLjI1NSwgMC4yNDM3NSwgMC4yMjUsIDAuMjEyNSwgMC4xOTM3NSwgMC4xNzEyNSwgMC4xNSIsIFwKLSAgICAgICAgICAiMC4yNzc1LCAwLjI2NjI1LCAwLjI0NzUsIDAuMjI4NzUsIDAuMjE2MjUsIDAuMTg3NSwgMC4xNjYyNSIsIFwKLSAgICAgICAgICAiMC4yOTI1LCAwLjI4MTI1LCAwLjI2MjUsIDAuMjUsIDAuMjMxMjUsIDAuMjA4NzUsIDAuMTgxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFNOKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE1NTk2OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTU1OTY7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNTU5MjE7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzMxLCAwLjAwMDMzLCAwLjAwMDMzLCAwLjAwMDMzLCAwLjAwMDMzLCAwLjAwMDMzLCAwLjAwMDMzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzMxLCAwLjAwMDMzMiwgMC4wMDAzMzEsIDAuMDAwMzMxLCAwLjAwMDMzMiwgMC4wMDAzMzIsIDAuMDAwMzMyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRCYhUk4mIVNFJiFTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fUk5fRVFfMF9BTl9TRV9FUV8wX0FOX1NJX0VRXzAgPT0gMSdiMSI7Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4zMjUyMzQsIDAuMzM2OTU5LCAwLjM1MTM2NCwgMC4zNjQ5MDgsIDAuMzc3Nzc2LCAwLjM5OTYzMSwgMC40MTk3ODciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiByZWNvdmVyeV9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlJOIjsKLSAgICAgIHNkZl9jb25kIDogIlJOID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHJlY292ZXJ5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0Mzc1LCAwLjAzMjUsIDAuMDEzNzUsIC0wLjAwNSwgLTAuMDE3NSwgLTAuMDQ2MjUsIC0wLjA2NzUiLCBcCi0gICAgICAgICAgIjAuMDU1LCAwLjA0Mzc1LCAwLjAyNSwgMC4wMTI1LCAtMC4wMDYyNSwgLTAuMDM1LCAtMC4wNTYyNSIsIFwKLSAgICAgICAgICAiMC4wNjc1LCAwLjA1NjI1LCAwLjA0Mzc1LCAwLjAyNSwgMC4wMDYyNSwgLTAuMDE2MjUsIC0wLjAzNzUiLCBcCi0gICAgICAgICAgIjAuMDg2MjUsIDAuMDY4NzUsIDAuMDU2MjUsIDAuMDM3NSwgMC4wMjUsIC0wLjAwMzc1LCAtMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMDk4NzUsIDAuMDg3NSwgMC4wNjg3NSwgMC4wNSwgMC4wMzc1LCAwLjAwODc1LCAtMC4wMTI1IiwgXAotICAgICAgICAgICIwLjEyMTI1LCAwLjExLCAwLjA5MTI1LCAwLjA3MjUsIDAuMDYsIDAuMDMxMjUsIDAuMDEiLCBcCi0gICAgICAgICAgIjAuMTM2MjUsIDAuMTI1LCAwLjExMjUsIDAuMDkzNzUsIDAuMDc1LCAwLjA1MjUsIDAuMDMxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiByZW1vdmFsX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiUk4iOwotICAgICAgc2RmX2NvbmQgOiAiUk4gPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQocmVtb3ZhbF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTYyNSwgMC4wNjc1LCAwLjA4NjI1LCAwLjA5ODc1LCAwLjExNzUsIDAuMTQsIDAuMTYxMjUiLCBcCi0gICAgICAgICAgIjAuMDQ1LCAwLjA1NjI1LCAwLjA3NSwgMC4wODc1LCAwLjEwNjI1LCAwLjEyODc1LCAwLjE1IiwgXAotICAgICAgICAgICIwLjAzMjUsIDAuMDQzNzUsIDAuMDYyNSwgMC4wNzUsIDAuMDkzNzUsIDAuMTE2MjUsIDAuMTM3NSIsIFwKLSAgICAgICAgICAiMC4wMiwgMC4wMzEyNSwgMC4wNDM3NSwgMC4wNjI1LCAwLjA3NSwgMC4xMDM3NSwgMC4xMjUiLCBcCi0gICAgICAgICAgIjAuMDA3NSwgMC4wMTg3NSwgMC4wMzEyNSwgMC4wNSwgMC4wNjI1LCAwLjA4NSwgMC4xMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDE1LCAtMC4wMDM3NSwgMC4wMDg3NSwgMC4wMjc1LCAwLjA0LCAwLjA2MjUsIDAuMDgzNzUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMjUsIC0wLjAxMjUsIDAuMDA2MjUsIDAuMDE4NzUsIDAuMDQ3NSwgMC4wNjg3NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBTREZGU1JYNCAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoU0RGRlNSWDQpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC42MTIwNzY7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgZmYgKE4zNSxRQklOVCkgewotICAgIG5leHRfc3RhdGUgOiAiKChTRSBTSSkgKyAoIVNFIEQpKSI7Ci0gICAgY2xvY2tlZF9vbiA6ICJDSyI7Ci0gICAgY2xlYXIgOiAiKCFSTikiOwotICAgIHByZXNldCA6ICIoIVNOKSI7Ci0gICAgY2xlYXJfcHJlc2V0X3ZhcjEgOiBIOwotICAgIGNsZWFyX3ByZXNldF92YXIyIDogTDsKLSAgfQotICBwaW4oQ0spICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDU4MTEyMzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA1ODExMjM7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNTgxMDQ0OwotICAgIGNsb2NrIDogdHJ1ZTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDI3MTIsIDAuMDAyNywgMC4wMDI2ODksIDAuMDAyNjgzLCAwLjAwMjY3OCwgMC4wMDI2NzEsIDAuMDAyNjY3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA2MTk2LCAwLjAwNjE4OCwgMC4wMDYxNzgsIDAuMDA2MTcsIDAuMDA2MTYyLCAwLjAwNjE1NSwgMC4wMDYxNTUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFEJlJOJiFTRSYhU0kmU04iOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1JOX0VRXzFfQU5fU0VfRVFfMF9BTl9TSV9FUV8wX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4zNzU4OTgsIDAuMzg3NjY2LCAwLjQwMjgyLCAwLjQxODIzNiwgMC40MzM3OTksIDAuNDU4MjIsIDAuNDc5Mjk2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4yODU4MzEsIDAuMjk2OTQ0LCAwLjMxMjA4NiwgMC4zMjY5NCwgMC4zNDE2OTMsIDAuMzY0NzY4LCAwLjM4NDM5Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihEKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2MTI2NDg7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjExMDM7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjEyNjQ4OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzQwOSwgMC4wMDM0LCAwLjAwMzM5NSwgMC4wMDMzOTEsIDAuMDAzMzg5LCAwLjAwMzM4NSwgMC4wMDMzODMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDQwNzYsIDAuMDA0MDcyLCAwLjAwNDA2OSwgMC4wMDQwNjcsIDAuMDA0MDY2LCAwLjAwNDA2NCwgMC4wMDQwNjIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiUk4mIVNFJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIlJOX0VRXzFfQU5fU0VfRVFfMF9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjEzNzUsIC0wLjEyNjI1LCAtMC4xMTM3NSwgLTAuMTA3NSwgLTAuMDk1LCAtMC4wODUsIC0wLjA3IiwgXAotICAgICAgICAgICItMC4xNDg3NSwgLTAuMTM3NSwgLTAuMTI1LCAtMC4xMTg3NSwgLTAuMTA2MjUsIC0wLjA5NjI1LCAtMC4wODEyNSIsIFwKLSAgICAgICAgICAiLTAuMTYxMjUsIC0wLjE1NjI1LCAtMC4xNDM3NSwgLTAuMTMxMjUsIC0wLjEyNSwgLTAuMTA4NzUsIC0wLjA5Mzc1IiwgXAotICAgICAgICAgICItMC4xNzM3NSwgLTAuMTY4NzUsIC0wLjE1NjI1LCAtMC4xNDM3NSwgLTAuMTM3NSwgLTAuMTIxMjUsIC0wLjEwNjI1IiwgXAotICAgICAgICAgICItMC4xOTI1LCAtMC4xODEyNSwgLTAuMTY4NzUsIC0wLjE2MjUsIC0wLjE1LCAtMC4xMzM3NSwgLTAuMTE4NzUiLCBcCi0gICAgICAgICAgIi0wLjIwODc1LCAtMC4yMDM3NSwgLTAuMTkxMjUsIC0wLjE3ODc1LCAtMC4xNzI1LCAtMC4xNTYyNSwgLTAuMTQxMjUiLCBcCi0gICAgICAgICAgIi0wLjIzLCAtMC4yMjUsIC0wLjIxMjUsIC0wLjIsIC0wLjE4NzUsIC0wLjE3NzUsIC0wLjE2MjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMTg3NSwgLTAuMDA3NSwgMC4wMDUsIDAuMDE3NSwgMC4wMywgMC4wNTI1LCAwLjA3Mzc1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLjAwNjI1LCAwLjAxODc1LCAwLjA0MTI1LCAwLjA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAuMDA2MjUsIDAuMDI4NzUsIDAuMDUiLCBcCi0gICAgICAgICAgIi0wLjA1NSwgLTAuMDQzNzUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAuMDE2MjUsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDY3NSwgLTAuMDU2MjUsIC0wLjA0Mzc1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIDAuMDAzNzUsIDAuMDI1IiwgXAotICAgICAgICAgICItMC4wOSwgLTAuMDc4NzUsIC0wLjA2LCAtMC4wNDc1LCAtMC4wMzUsIC0wLjAxMjUsIDAuMDAyNSIsIFwKLSAgICAgICAgICAiLTAuMTA1LCAtMC4wOTM3NSwgLTAuMDc1LCAtMC4wNjI1LCAtMC4wNSwgLTAuMDI3NSwgLTAuMDEyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiUk4mIVNFJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIlJOX0VRXzFfQU5fU0VfRVFfMF9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMyNSwgMC4zMDc1LCAwLjI4ODc1LCAwLjI3NjI1LCAwLjI1NzUsIDAuMjI4NzUsIDAuMjEzNzUiLCBcCi0gICAgICAgICAgIjAuMzM2MjUsIDAuMzE4NzUsIDAuMzA2MjUsIDAuMjg3NSwgMC4yNjg3NSwgMC4yNCwgMC4yMjUiLCBcCi0gICAgICAgICAgIjAuMzQ4NzUsIDAuMzMxMjUsIDAuMzE4NzUsIDAuMywgMC4yODEyNSwgMC4yNTg3NSwgMC4yMzc1IiwgXAotICAgICAgICAgICIwLjM2MTI1LCAwLjM1LCAwLjMzMTI1LCAwLjMxMjUsIDAuMjkzNzUsIDAuMjcxMjUsIDAuMjUiLCBcCi0gICAgICAgICAgIjAuMzczNzUsIDAuMzYyNSwgMC4zNDM3NSwgMC4zMjUsIDAuMzEyNSwgMC4yODM3NSwgMC4yNjI1IiwgXAotICAgICAgICAgICIwLjM5NjI1LCAwLjM4NSwgMC4zNjYyNSwgMC4zNDc1LCAwLjMyODc1LCAwLjMwNjI1LCAwLjI4NSIsIFwKLSAgICAgICAgICAiMC40MTc1LCAwLjQsIDAuMzg3NSwgMC4zNjg3NSwgMC4zNSwgMC4zMjc1LCAwLjMwNjI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjU2MjUsIDAuMjQ1LCAwLjIzMjUsIDAuMjEzNzUsIDAuMTk1LCAwLjE3MjUsIDAuMTQ1IiwgXAotICAgICAgICAgICIwLjI3Mzc1LCAwLjI1NjI1LCAwLjI0Mzc1LCAwLjIyNSwgMC4yMDYyNSwgMC4xODM3NSwgMC4xNTYyNSIsIFwKLSAgICAgICAgICAiMC4yODYyNSwgMC4yNjg3NSwgMC4yNTYyNSwgMC4yMzc1LCAwLjIxODc1LCAwLjE5NjI1LCAwLjE3NSIsIFwKLSAgICAgICAgICAiMC4yOTg3NSwgMC4yODEyNSwgMC4yNjg3NSwgMC4yNSwgMC4yMzEyNSwgMC4yMDg3NSwgMC4xODc1IiwgXAotICAgICAgICAgICIwLjMxMTI1LCAwLjI5Mzc1LCAwLjI4MTI1LCAwLjI2MjUsIDAuMjQzNzUsIDAuMjIxMjUsIDAuMTkzNzUiLCBcCi0gICAgICAgICAgIjAuMzI3NSwgMC4zMTYyNSwgMC4yOTc1LCAwLjI3ODc1LCAwLjI2NjI1LCAwLjIzNzUsIDAuMjE2MjUiLCBcCi0gICAgICAgICAgIjAuMzQyNSwgMC4zMzEyNSwgMC4zMTg3NSwgMC4zLCAwLjI4MTI1LCAwLjI1MjUsIDAuMjMxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFEpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC41MjQzMTg7Ci0gICAgZnVuY3Rpb24gOiAiTjM1IjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBub25fdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJpc2luZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI5NzE4NywgMC40MjgxODEsIDAuNTU1NzM2LCAwLjY0NjUxOCwgMC43OTA5MywgMC45MTk0MjMsIDEuMTAyMzkiLCBcCi0gICAgICAgICAgIjAuMzA4ODE1LCAwLjQzOTc1MSwgMC41NjY3OTMsIDAuNjU4MDUxLCAwLjgwMzQ2MiwgMC45MzA2MDIsIDEuMTExODUiLCBcCi0gICAgICAgICAgIjAuMzIzOTIxLCAwLjQ1NDg1NCwgMC41ODE4NDQsIDAuNjczMTQ4LCAwLjgxODU1OSwgMC45NDU2NzEsIDEuMTI2NzIiLCBcCi0gICAgICAgICAgIjAuMzM5NDU4LCAwLjQ3MDM5LCAwLjU5NzQzMywgMC42ODg0NiwgMC44MzQwNzMsIDAuOTYxMjgzLCAxLjE0NDEyIiwgXAotICAgICAgICAgICIwLjM1NDcyNSwgMC40ODU2NjIsIDAuNjEyNzM4LCAwLjcwMzk2NCwgMC44NDkzOCwgMC45NzY1MzIsIDEuMTU5MjMiLCBcCi0gICAgICAgICAgIjAuMzc4ODI0LCAwLjUwOTc1OSwgMC42MzY3NTcsIDAuNzI4MDUyLCAwLjg3MzQ2MiwgMS4wMDA1NiwgMS4xODE1NSIsIFwKLSAgICAgICAgICAiMC4zOTk4LCAwLjUzMDc1MywgMC42NTgyNTYsIDAuNzQ5MDM5LCAwLjg5NDQyOCwgMS4wMjE5LCAxLjIwNDYzIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY0MzY2LCAwLjMwOTgzNSwgMC41NzM2NDgsIDAuNzYxMzE2LCAxLjA1NjMzLCAxLjMyMTkxLCAxLjY4Nzg0IiwgXAotICAgICAgICAgICIwLjA2NDI2NCwgMC4zMTU4MDIsIDAuNTc0NDA0LCAwLjc0ODk0LCAxLjA1NzI2LCAxLjMwMjU4LCAxLjY4MDMiLCBcCi0gICAgICAgICAgIjAuMDYzOTM3LCAwLjMxNDcsIDAuNTc0MzQ2LCAwLjc1NzMwNCwgMS4wNTc2MywgMS4zMDM1OSwgMS42ODcxIiwgXAotICAgICAgICAgICIwLjA2NDA3MSwgMC4zMDk4NzksIDAuNTc0MzQ0LCAwLjc1ODcwNywgMS4wNDg5MSwgMS4zMDQ5NSwgMS42NzY5MSIsIFwKLSAgICAgICAgICAiMC4wNjQzNDMsIDAuMzEzNTM4LCAwLjU3NDM2MywgMC43NTcxOTEsIDEuMDU3NDIsIDEuMzAxODcsIDEuNjc1MjEiLCBcCi0gICAgICAgICAgIjAuMDYzOTU2LCAwLjMxNDkwMSwgMC41NzQzNDcsIDAuNzU3NDkyLCAxLjA1Nzg4LCAxLjMwNCwgMS42ODcxOCIsIFwKLSAgICAgICAgICAiMC4wNjQzNjMsIDAuMzA5ODcxLCAwLjU3NDIzLCAwLjc2MDA1NiwgMS4wNjAzMSwgMS4zMTg3MSwgMS42ODg4NCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMyNjc5OCwgMC40NzYyNzEsIDAuNjIyMzcyLCAwLjcyNjg5NCwgMC44OTQyNzksIDEuMDQwMzcsIDEuMjQ5NzUiLCBcCi0gICAgICAgICAgIjAuMzM4NTksIDAuNDg4MDUyLCAwLjYzNDE1NiwgMC43Mzg2NzUsIDAuOTA2MDc1LCAxLjA1MjE5LCAxLjI2MTYyIiwgXAotICAgICAgICAgICIwLjM1Mzc2OCwgMC41MDMyNSwgMC42NDkzNTEsIDAuNzUzOSwgMC45MjExMjgsIDEuMDY3NSwgMS4yNzYwNSIsIFwKLSAgICAgICAgICAiMC4zNjkxODcsIDAuNTE4Njc2LCAwLjY2NDc3OSwgMC43NjkzMTgsIDAuOTM2NDAzLCAxLjA4Mjg2LCAxLjI5MTM1IiwgXAotICAgICAgICAgICIwLjM4NDc0MywgMC41MzQxOTUsIDAuNjgwMjk2LCAwLjc4NDgxLCAwLjk1MjE5MSwgMS4wOTg1NCwgMS4zMDc5NyIsIFwKLSAgICAgICAgICAiMC40MDkxNywgMC41NTg2NSwgMC43MDQ3NTIsIDAuODA5NDE5LCAwLjk3NjY5OSwgMS4xMjI5LCAxLjMzMTUzIiwgXAotICAgICAgICAgICIwLjQzMDI1MiwgMC41Nzk3MzEsIDAuNzI1ODMyLCAwLjgzMDM2NiwgMC45OTg0NjUsIDEuMTQzODcsIDEuMzUyNjIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjYwNTYsIDAuMzQ3MTc2LCAwLjYzNzQxOCwgMC44NDU4LCAxLjE3NzQxLCAxLjQ2Nzc3LCAxLjg4NTQ1IiwgXAotICAgICAgICAgICIwLjA2NjQzNCwgMC4zNDcxNSwgMC42Mzc0MTcsIDAuODQ0MTMyLCAxLjE3NzQ4LCAxLjQ2NjUsIDEuODg1NDMiLCBcCi0gICAgICAgICAgIjAuMDY2MDksIDAuMzQ3MTUsIDAuNjM3NDA3LCAwLjg0NTUyNCwgMS4xNzU5MiwgMS40Njg1LCAxLjg4NTg0IiwgXAotICAgICAgICAgICIwLjA2NjAwOSwgMC4zNDcxNDcsIDAuNjM3NDA4LCAwLjg0NTYwNiwgMS4xNzc4NiwgMS40Njc0MywgMS44ODUzOSIsIFwKLSAgICAgICAgICAiMC4wNjYxNSwgMC4zNDcxNDYsIDAuNjM3NDExLCAwLjg0NTc5NCwgMS4xNzcyOCwgMS40NjkwMywgMS44ODQ2NyIsIFwKLSAgICAgICAgICAiMC4wNjYxNTIsIDAuMzQ3MTU5LCAwLjYzNzQwNywgMC44NDQxMzYsIDEuMTc3NjIsIDEuNDY4NDcsIDEuODg0ODkiLCBcCi0gICAgICAgICAgIjAuMDY2MjMyLCAwLjM0NzE3NywgMC42Mzc0MSwgMC44NDU2MjksIDEuMTc4NTEsIDEuNDY2MywgMS44ODQ3NiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogY2xlYXI7Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuNDI5NjI1LCAwLjU3ODkyOCwgMC43MjQ5ODMsIDAuODI5NDUzLCAwLjk5NjU5MywgMS4xNDI2NiwgMS4zNTE1IiwgXAotICAgICAgICAgICIwLjQ0MTExOCwgMC41OTA0MzYsIDAuNzM2NDc5LCAwLjg0MDk0OSwgMS4wMDgwOSwgMS4xNTQxNSwgMS4zNjMiLCBcCi0gICAgICAgICAgIjAuNDU2MDAzLCAwLjYwNTMyLCAwLjc1MTM2MywgMC44NTU4MzUsIDEuMDIyOTgsIDEuMTY5MDUsIDEuMzc3ODgiLCBcCi0gICAgICAgICAgIjAuNDcwODE0LCAwLjYyMDEzNCwgMC43NjYxNzMsIDAuODcwNjQ2LCAxLjAzNzgsIDEuMTgzODYsIDEuMzkyNjkiLCBcCi0gICAgICAgICAgIjAuNDg0NzUyLCAwLjYzNDA0OSwgMC43ODAxMDcsIDAuODg0NTg1LCAxLjA1MTc0LCAxLjE5Nzc1LCAxLjQwNjYzIiwgXAotICAgICAgICAgICIwLjUwNzMzNSwgMC42NTY2NCwgMC44MDI2OTIsIDAuOTA3MTY3LCAxLjA3NDMzLCAxLjIyMDM4LCAxLjQyOTIxIiwgXAotICAgICAgICAgICIwLjUyNDg0MSwgMC42NzQxNjIsIDAuODIwMjAxLCAwLjkyNDY3NiwgMS4wOTE4NCwgMS4yMzc4OSwgMS40NDY3MiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2NzU3LCAwLjM0Nzc3LCAwLjYzNzQyNiwgMC44NDU0MzUsIDEuMTc4MywgMS40NjkyOCwgMS44ODgzIiwgXAotICAgICAgICAgICIwLjA2NjU0MywgMC4zNDc3NzQsIDAuNjM3Mjk1LCAwLjg0NTU2MiwgMS4xNzg2MSwgMS40NjkyMSwgMS44ODgyOSIsIFwKLSAgICAgICAgICAiMC4wNjc0MjcsIDAuMzQ3NzczLCAwLjYzNzI5MywgMC44NDU1MzQsIDEuMTc4MjksIDEuNDY5NTEsIDEuODg4MzUiLCBcCi0gICAgICAgICAgIjAuMDY2MzExLCAwLjM0NzU5MiwgMC42MzcyOTYsIDAuODQ1NDk5LCAxLjE3Nzk2LCAxLjQ2OTUsIDEuODg4MzMiLCBcCi0gICAgICAgICAgIjAuMDY2Mjk4LCAwLjM0Nzc2MiwgMC42MzcyOTMsIDAuODQ1Njg5LCAxLjE3Nzg3LCAxLjQ2ODQxLCAxLjg4ODE5IiwgXAotICAgICAgICAgICIwLjA2NzU5LCAwLjM0Nzc2NSwgMC42MzcyOTIsIDAuODQ1NTUxLCAxLjE3ODYsIDEuNDY4NTksIDEuODg4MzEiLCBcCi0gICAgICAgICAgIjAuMDY2MzE5LCAwLjM0Nzc3MSwgMC42Mzc0NDcsIDAuODQ1NjU0LCAxLjE3Nzk5LCAxLjQ2ODkyLCAxLjg4ODM0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiBwcmVzZXQ7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjQ2MjkzLCAwLjM3NjI2OCwgMC41MDM5MTgsIDAuNTk0OTU1LCAwLjczOTA2OSwgMC44NjY4NywgMS4wNDg1NSIsIFwKLSAgICAgICAgICAiMC4yNTc3MzQsIDAuMzg3NzI1LCAwLjUxNDc1LCAwLjYwNjM0NSwgMC43NTA5OTYsIDAuODc4NDkxLCAxLjA2MDI3IiwgXAotICAgICAgICAgICIwLjI3MjAzOSwgMC40MDIwMjksIDAuNTI4OTczLCAwLjYxOTQ2NSwgMC43NjQ3MjEsIDAuODkyNzI5LCAxLjA3NDIxIiwgXAotICAgICAgICAgICIwLjI4NjQxLCAwLjQxNjM4NywgMC41NDQwMzEsIDAuNjM1MDc2LCAwLjc3OTIsIDAuOTA3MDI0LCAxLjA4ODYiLCBcCi0gICAgICAgICAgIjAuMzAxNDIyLCAwLjQzMTQ5NiwgMC41NTg1NCwgMC42NTAxMTIsIDAuNzk0Nzc2LCAwLjkyMjI2MywgMS4xMDM2NSIsIFwKLSAgICAgICAgICAiMC4zMjQ5MjgsIDAuNDU0OTYyLCAwLjU4MjU4OSwgMC42NzIzNDQsIDAuODE5Mzk0LCAwLjk0NjI2NSwgMS4xMjcxOCIsIFwKLSAgICAgICAgICAiMC4zNDQ0MzUsIDAuNDc0NDMsIDAuNjAxMzY5LCAwLjY5MTc5NSwgMC44MzcxNDcsIDAuOTY0OTQ4LCAxLjE0NjY1Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDYxNjUyLCAwLjMxMjE5MSwgMC41NzM2ODksIDAuNzU5NjQxLCAxLjA2MDM1LCAxLjMyMjA0LCAxLjY5NTQ1IiwgXAotICAgICAgICAgICIwLjA2MTk4LCAwLjMxMzQ4OSwgMC41NzM5MzMsIDAuNzYwMDIyLCAxLjA2MDMzLCAxLjMyMjA2LCAxLjY5NTUyIiwgXAotICAgICAgICAgICIwLjA2MTQxNiwgMC4zMDkzMDgsIDAuNTczNTMxLCAwLjc2MDQxNywgMS4wNjAzMywgMS4zMjIwNSwgMS42OTU1IiwgXAotICAgICAgICAgICIwLjA2MTk0NCwgMC4zMTM3MzMsIDAuNTc0MSwgMC43NjA4MTUsIDEuMDYwMjgsIDEuMzIyMTIsIDEuNjk1NTEiLCBcCi0gICAgICAgICAgIjAuMDYxOTg1LCAwLjMxMzgwMywgMC41NzI3NzQsIDAuNzYwMjUyLCAxLjA2MDM0LCAxLjMyMjEzLCAxLjY5NTUiLCBcCi0gICAgICAgICAgIjAuMDYxODk2LCAwLjMxMjY2MSwgMC41NzQyMDMsIDAuNzYwNDQ0LCAxLjA2MDM4LCAxLjMyMjA0LCAxLjY5NTUyIiwgXAotICAgICAgICAgICIwLjA2MTUzLCAwLjMxMzY5OSwgMC41NzMzMTQsIDAuNzYwNTA1LCAxLjA2MDI2LCAxLjMyMjA0LCAxLjY5NTU1Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzk4NDY1LCAwLjU0Nzc1NSwgMC42OTM4MiwgMC43OTgyOTYsIDAuOTY1NCwgMS4xMTEzNSwgMS4zMjAzNSIsIFwKLSAgICAgICAgICAiMC40MTA1NjMsIDAuNTU5ODc2LCAwLjcwNTkyNCwgMC44MTAzOTQsIDAuOTc3NTQzLCAxLjEyMzU2LCAxLjMzMjQ1IiwgXAotICAgICAgICAgICIwLjQyNTUsIDAuNTc0ODIzLCAwLjcyMDg2NCwgMC44MjUzMzYsIDAuOTkyNDg5LCAxLjEzODU1LCAxLjM0NzM5IiwgXAotICAgICAgICAgICIwLjQzOTkxNSwgMC41ODkyMzcsIDAuNzM1Mjc4LCAwLjgzOTc1MiwgMS4wMDY5MiwgMS4xNTI5MSwgMS4zNjE4IiwgXAotICAgICAgICAgICIwLjQ1Mzg4NCwgMC42MDMyMSwgMC43NDkyNDgsIDAuODUzNzIzLCAxLjAyMDg5LCAxLjE2NjkzLCAxLjM3NTc3IiwgXAotICAgICAgICAgICIwLjQ3NTg3OCwgMC42MjUxOTEsIDAuNzcxMjM4LCAwLjg3NTcyNywgMS4wNDI5LCAxLjE4ODg3LCAxLjM5Nzc2IiwgXAotICAgICAgICAgICIwLjQ5NDk1NSwgMC42NDQyNDYsIDAuNzkwMjk0LCAwLjg5NDc4NCwgMS4wNjE5NSwgMS4yMDc4NiwgMS40MTY4MiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2NjMyNCwgMC4zNDc3NjYsIDAuNjM3MjgyLCAwLjg0NDk2OSwgMS4xNzY2MSwgMS40Njg2OSwgMS44ODc5NiIsIFwKLSAgICAgICAgICAiMC4wNjYzMDEsIDAuMzQ3NzY4LCAwLjYzNzI5MSwgMC44NDUxMDUsIDEuMTc3ODksIDEuNDcwMzUsIDEuODg4MzciLCBcCi0gICAgICAgICAgIjAuMDY2MzQ1LCAwLjM0NzUxMywgMC42MzcyOTUsIDAuODQ1MDQzLCAxLjE3Nzk0LCAxLjQ2OTQ4LCAxLjg4ODM0IiwgXAotICAgICAgICAgICIwLjA2NjUxNCwgMC4zNDc3NjcsIDAuNjM3MjkzLCAwLjg0NTEyNCwgMS4xNzkxNywgMS40Njk4NSwgMS44ODg0MSIsIFwKLSAgICAgICAgICAiMC4wNjc0OTIsIDAuMzQ3NTM3LCAwLjYzNzM3NSwgMC44NDUwNjMsIDEuMTc3OTksIDEuNDcxMDQsIDEuODg4MzEiLCBcCi0gICAgICAgICAgIjAuMDY2NjgsIDAuMzQ3NzY1LCAwLjYzNzI5NSwgMC44NDUxMjUsIDEuMTc3OTIsIDEuNDY4NDMsIDEuODg4MTIiLCBcCi0gICAgICAgICAgIjAuMDY2ODAzLCAwLjM0Nzc1NCwgMC42MzczLCAwLjg0NTA1NSwgMS4xNzg3MSwgMS40Njg2NywgMS44ODc4MiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjY5OSwgMC4wMDY4MTksIDAuMDA2ODM2LCAwLjAwNjg0MSwgMC4wMDY4NDUsIDAuMDA2ODQ2LCAwLjAwNjg0OCIsIFwKLSAgICAgICAgICAiMC4wMDY2OTIsIDAuMDA2ODEzLCAwLjAwNjgyOSwgMC4wMDY4MzMsIDAuMDA2ODM3LCAwLjAwNjgzOSwgMC4wMDY4NDIiLCBcCi0gICAgICAgICAgIjAuMDA2Njg2LCAwLjAwNjgwNiwgMC4wMDY4MjMsIDAuMDA2ODI4LCAwLjAwNjgzMiwgMC4wMDY4MzMsIDAuMDA2ODM2IiwgXAotICAgICAgICAgICIwLjAwNjY4MywgMC4wMDY4MDMsIDAuMDA2ODIsIDAuMDA2ODI0LCAwLjAwNjgyOSwgMC4wMDY4MywgMC4wMDY4MzMiLCBcCi0gICAgICAgICAgIjAuMDA2Njc5LCAwLjAwNjc5OSwgMC4wMDY4MTUsIDAuMDA2ODIxLCAwLjAwNjgyNCwgMC4wMDY4MjYsIDAuMDA2ODI5IiwgXAotICAgICAgICAgICIwLjAwNjY3MywgMC4wMDY3OTQsIDAuMDA2ODEsIDAuMDA2ODE1LCAwLjAwNjgxOSwgMC4wMDY4MjEsIDAuMDA2ODIzIiwgXAotICAgICAgICAgICIwLjAwNjY3MiwgMC4wMDY3OTIsIDAuMDA2ODA5LCAwLjAwNjgxMiwgMC4wMDY4MTcsIDAuMDA2ODIxLCAwLjAwNjgyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDY2NjgsIDAuMDA2Nzg2LCAwLjAwNjgwMywgMC4wMDY4MDgsIDAuMDA2ODE0LCAwLjAwNjgxNSwgMC4wMDY4MTYiLCBcCi0gICAgICAgICAgIjAuMDA2NjY4LCAwLjAwNjc4MiwgMC4wMDY3OTgsIDAuMDA2ODAzLCAwLjAwNjgwNywgMC4wMDY4MTEsIDAuMDA2ODExIiwgXAotICAgICAgICAgICIwLjAwNjY2MSwgMC4wMDY3NzcsIDAuMDA2Nzk0LCAwLjAwNjc5OCwgMC4wMDY4MDIsIDAuMDA2ODA0LCAwLjAwNjgwOCIsIFwKLSAgICAgICAgICAiMC4wMDY2NTIsIDAuMDA2NzcxLCAwLjAwNjc4OCwgMC4wMDY3OTIsIDAuMDA2Nzk3LCAwLjAwNjc5OSwgMC4wMDY4IiwgXAotICAgICAgICAgICIwLjAwNjY1NCwgMC4wMDY3NzEsIDAuMDA2Nzg5LCAwLjAwNjc5NCwgMC4wMDY3OTMsIDAuMDA2Nzk4LCAwLjAwNjgiLCBcCi0gICAgICAgICAgIjAuMDA2NjUzLCAwLjAwNjc2OSwgMC4wMDY3ODcsIDAuMDA2NzksIDAuMDA2Nzk0LCAwLjAwNjc5NiwgMC4wMDY4IiwgXAotICAgICAgICAgICIwLjAwNjY1NSwgMC4wMDY3NywgMC4wMDY3ODYsIDAuMDA2NzkyLCAwLjAwNjc5NSwgMC4wMDY3OTksIDAuMDA2ODAyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUk4iOwotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA3NjY1LCAwLjAwNzc4NSwgMC4wMDc4MDIsIDAuMDA3ODA3LCAwLjAwNzgxMiwgMC4wMDc4MTQsIDAuMDA3ODE2IiwgXAotICAgICAgICAgICIwLjAwNzY2MSwgMC4wMDc3OCwgMC4wMDc3OTksIDAuMDA3ODA0LCAwLjAwNzgwOCwgMC4wMDc4MTEsIDAuMDA3ODExIiwgXAotICAgICAgICAgICIwLjAwNzY1NywgMC4wMDc3NzYsIDAuMDA3Nzk1LCAwLjAwNzgsIDAuMDA3ODA0LCAwLjAwNzgwNSwgMC4wMDc4MDciLCBcCi0gICAgICAgICAgIjAuMDA3NjU0LCAwLjAwNzc3MywgMC4wMDc3OTEsIDAuMDA3Nzk3LCAwLjAwNzgwMSwgMC4wMDc4MDIsIDAuMDA3ODA0IiwgXAotICAgICAgICAgICIwLjAwNzY1MSwgMC4wMDc3NjksIDAuMDA3Nzg3LCAwLjAwNzc5MywgMC4wMDc3OTcsIDAuMDA3Nzk5LCAwLjAwNzgwMSIsIFwKLSAgICAgICAgICAiMC4wMDc2NDksIDAuMDA3NzY4LCAwLjAwNzc4NiwgMC4wMDc3OTEsIDAuMDA3Nzk2LCAwLjAwNzc5OCwgMC4wMDc4IiwgXAotICAgICAgICAgICIwLjAwNzY0OCwgMC4wMDc3NjYsIDAuMDA3Nzg0LCAwLjAwNzc4OSwgMC4wMDc3OTQsIDAuMDA3Nzk2LCAwLjAwNzc5OCIpOwotICAgICAgfQotICAgICAgcmlzZV9wb3dlcihzY2FsYXIpIHsKLSAgICAgICAgdmFsdWVzKCIwIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiU04iOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA3MzQ5LCAwLjAwNzQ2MiwgMC4wMDc0NzUsIDAuMDA3NDgsIDAuMDA3NDgxLCAwLjAwNzQ4NCwgMC4wMDc0ODUiLCBcCi0gICAgICAgICAgIjAuMDA3MzQyLCAwLjAwNzQ1NiwgMC4wMDc0NjksIDAuMDA3NDczLCAwLjAwNzQ3NiwgMC4wMDc0NzcsIDAuMDA3NDc5IiwgXAotICAgICAgICAgICIwLjAwNzMzOSwgMC4wMDc0NTIsIDAuMDA3NDY1LCAwLjAwNzQ3LCAwLjAwNzQ3MywgMC4wMDc0NzQsIDAuMDA3NDc0IiwgXAotICAgICAgICAgICIwLjAwNzMzNiwgMC4wMDc0NSwgMC4wMDc0NjMsIDAuMDA3NDY3LCAwLjAwNzQ2OSwgMC4wMDc0NzEsIDAuMDA3NDcyIiwgXAotICAgICAgICAgICIwLjAwNzMzNCwgMC4wMDc0NDcsIDAuMDA3NDYsIDAuMDA3NDY0LCAwLjAwNzQ2NywgMC4wMDc0NjgsIDAuMDA3NDciLCBcCi0gICAgICAgICAgIjAuMDA3MzMxLCAwLjAwNzQ0NSwgMC4wMDc0NTgsIDAuMDA3NDYyLCAwLjAwNzQ2NSwgMC4wMDc0NywgMC4wMDc0NyIsIFwKLSAgICAgICAgICAiMC4wMDczMjcsIDAuMDA3NDQxLCAwLjAwNzQ1NSwgMC4wMDc0NTksIDAuMDA3NDYyLCAwLjAwNzQ2MywgMC4wMDc0NjQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjUzMSwgMC4wMDY2NTEsIDAuMDA2NjY5LCAwLjAwNjY3NCwgMC4wMDY2NzksIDAuMDA2NjgzLCAwLjAwNjY4MyIsIFwKLSAgICAgICAgICAiMC4wMDY1MjYsIDAuMDA2NjQ1LCAwLjAwNjY2NCwgMC4wMDY2NjksIDAuMDA2Njc0LCAwLjAwNjY3NSwgMC4wMDY2NzciLCBcCi0gICAgICAgICAgIjAuMDA2NTIxLCAwLjAwNjY0MSwgMC4wMDY2NTksIDAuMDA2NjY0LCAwLjAwNjY2OSwgMC4wMDY2NzEsIDAuMDA2NjcyIiwgXAotICAgICAgICAgICIwLjAwNjUxOCwgMC4wMDY2MzcsIDAuMDA2NjU2LCAwLjAwNjY2MiwgMC4wMDY2NjUsIDAuMDA2NjY3LCAwLjAwNjY2OSIsIFwKLSAgICAgICAgICAiMC4wMDY1MTYsIDAuMDA2NjM0LCAwLjAwNjY1NCwgMC4wMDY2NTksIDAuMDA2NjYzLCAwLjAwNjY2NSwgMC4wMDY2NjciLCBcCi0gICAgICAgICAgIjAuMDA2NTExLCAwLjAwNjYzLCAwLjAwNjY0OSwgMC4wMDY2NTQsIDAuMDA2NjYsIDAuMDA2NjYxLCAwLjAwNjY2MyIsIFwKLSAgICAgICAgICAiMC4wMDY1MSwgMC4wMDY2MjksIDAuMDA2NjQ3LCAwLjAwNjY1MiwgMC4wMDY2NTcsIDAuMDA2NjYxLCAwLjAwNjY2MSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUU4pICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC41Mjc1NzsKLSAgICBmdW5jdGlvbiA6ICJRQklOVCI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3NlbnNlIDogbm9uX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiByaXNpbmdfZWRnZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zNzU4OTgsIDAuNTAxNzYyLCAwLjYyNzY3NywgMC43MTc2NDUsIDAuODYxNjQyLCAwLjk4NzY1OCwgMS4xNjc3IiwgXAotICAgICAgICAgICIwLjM4NzY2NiwgMC41MTM1NTEsIDAuNjM5NDcsIDAuNzI5NDM5LCAwLjg3MzQzMSwgMC45OTk0NTEsIDEuMTc5NDkiLCBcCi0gICAgICAgICAgIjAuNDAyODIsIDAuNTI4NzYsIDAuNjU0Njc0LCAwLjc0NDYzOSwgMC44ODg2MzUsIDEuMDE0NjUsIDEuMTk0NzIiLCBcCi0gICAgICAgICAgIjAuNDE4MjM2LCAwLjU0NDE3NiwgMC42NzAwODksIDAuNzYwMDU1LCAwLjkwNDA1OCwgMS4wMzAwNywgMS4yMTAxNSIsIFwKLSAgICAgICAgICAiMC40MzM3OTksIDAuNTU5Njk3LCAwLjY4NTYxNSwgMC43NzU1ODUsIDAuOTE5NTc2LCAxLjA0NTU5LCAxLjIyNTYzIiwgXAotICAgICAgICAgICIwLjQ1ODIyLCAwLjU4NDE2MSwgMC43MTAwNzMsIDAuODAwMDM1LCAwLjk0NDAzMiwgMS4wNzAwNSwgMS4yNTAxMiIsIFwKLSAgICAgICAgICAiMC40NzkyOTYsIDAuNjA1MjQsIDAuNzMxMTUxLCAwLjgyMTExOCwgMC45NjUxMDgsIDEuMDkxMTMsIDEuMjcxMiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1NzcwOSwgMC4zMDY5MjUsIDAuNTYzNjA2LCAwLjc0NzA2MywgMS4wMzkyMiwgMS4yOTU2NiwgMS42NjIxOCIsIFwKLSAgICAgICAgICAiMC4wNTc2NjcsIDAuMzA2ODgsIDAuNTYzNTk1LCAwLjc0NzAwOCwgMS4wMzkwNywgMS4yOTU3LCAxLjY2MTk4IiwgXAotICAgICAgICAgICIwLjA1NzY0NiwgMC4zMDY4OTYsIDAuNTYzNTU1LCAwLjc0NzE1OSwgMS4wMzkyNCwgMS4yOTU3MywgMS42NjIxMSIsIFwKLSAgICAgICAgICAiMC4wNTc2NDYsIDAuMzA2OSwgMC41NjM1NzIsIDAuNzQ3MTYyLCAxLjAzOTEyLCAxLjI5NTc3LCAxLjY2MjI2IiwgXAotICAgICAgICAgICIwLjA1NzY2OSwgMC4zMDY4ODYsIDAuNTYzNTgsIDAuNzQ2ODgsIDEuMDM5MSwgMS4yOTU2NCwgMS42NjAxOSIsIFwKLSAgICAgICAgICAiMC4wNTc2NDksIDAuMzA2OTA0LCAwLjU2MzU1NSwgMC43NDcxMzksIDEuMDM5MDMsIDEuMjk1NzMsIDEuNjYyMDkiLCBcCi0gICAgICAgICAgIjAuMDU3NjEsIDAuMzA2OTIzLCAwLjU2MzU4LCAwLjc0NzE3MiwgMS4wNDA2NSwgMS4yOTU3MSwgMS42NjIwOCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjM1MTAzMywgMC40OTY3NTYsIDAuNjQyODc0LCAwLjc0NzI5NCwgMC45MTQyOTgsIDEuMDYwNjUsIDEuMjY5NjIiLCBcCi0gICAgICAgICAgIjAuMzYyNjUzLCAwLjUwODMzNSwgMC42NTQ0NTIsIDAuNzU4ODY2LCAwLjkyNTk2OSwgMS4wNzIxOCwgMS4yODExMSIsIFwKLSAgICAgICAgICAiMC4zNzc3MjUsIDAuNTIzNDI5LCAwLjY2OTU1NiwgMC43NzM5NjEsIDAuOTQxMDY0LCAxLjA4NzI4LCAxLjI5NjIyIiwgXAotICAgICAgICAgICIwLjM5MzI3MSwgMC41Mzg5NjUsIDAuNjg1MDksIDAuNzg5NTI0LCAwLjk1NjU5OCwgMS4xMDI4MiwgMS4zMTE4MyIsIFwKLSAgICAgICAgICAiMC40MDg1NzMsIDAuNTU0MjMyLCAwLjcwMDM1OSwgMC44MDQ3NzksIDAuOTcxODgyLCAxLjExODEsIDEuMzI3MSIsIFwKLSAgICAgICAgICAiMC40MzI2MjksIDAuNTc4MzMxLCAwLjcyNDQ1NiwgMC44Mjg4NjMsIDAuOTk1OTY1LCAxLjE0MjE4LCAxLjM1MTExIiwgXAotICAgICAgICAgICIwLjQ1MzYwNCwgMC41OTkzMjgsIDAuNzQ1NDM3LCAwLjg0OTkyMSwgMS4wMTY5NiwgMS4xNjMyMSwgMS4zNzIyMiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2MTg1NSwgMC4zNDcwNDksIDAuNjM3NDM2LCAwLjg0NTE5NiwgMS4xNzc0LCAxLjQ2ODQ3LCAxLjg4MzUyIiwgXAotICAgICAgICAgICIwLjA2MTg2OSwgMC4zNDc0MDgsIDAuNjM3NTEsIDAuODQzMzg4LCAxLjE3NzI4LCAxLjQ2Nzk2LCAxLjg4MzczIiwgXAotICAgICAgICAgICIwLjA2MTgyMiwgMC4zNDcwNzEsIDAuNjM3NTA2LCAwLjg0NDU2LCAxLjE3NzI4LCAxLjQ2Nzk5LCAxLjg4NDU4IiwgXAotICAgICAgICAgICIwLjA2MTgxNywgMC4zNDcwNDksIDAuNjM3NTAyLCAwLjg0NDcxNywgMS4xNzU2NiwgMS40NjgwMiwgMS44ODMyMyIsIFwKLSAgICAgICAgICAiMC4wNjE4NDgsIDAuMzQ2OTMyLCAwLjYzNzUwMSwgMC44NDQ1NSwgMS4xNzcyNywgMS40Njc5NCwgMS44ODMiLCBcCi0gICAgICAgICAgIjAuMDYxODIyLCAwLjM0NzA5OCwgMC42Mzc1MDUsIDAuODQ0NTc3LCAxLjE3NzI3LCAxLjQ2OCwgMS44ODQ1NiIsIFwKLSAgICAgICAgICAiMC4wNjE4NDMsIDAuMzQ3MDUxLCAwLjYzNzQ3NiwgMC44NDQ5MTksIDEuMTc3NTksIDEuNDY3NzcsIDEuODgyNDgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUk4iOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHByZXNldDsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC40Nzg1MTMsIDAuNjA0NDcxLCAwLjczMDM2NCwgMC44MjAzNDEsIDAuOTY0MzQ5LCAxLjA5MDQxLCAxLjI3MDU5IiwgXAotICAgICAgICAgICIwLjQ4OTk3NCwgMC42MTU5NjUsIDAuNzQxODU4LCAwLjgzMTgzNSwgMC45NzU4NDMsIDEuMTAxOTEsIDEuMjgyMDgiLCBcCi0gICAgICAgICAgIjAuNTA0ODU3LCAwLjYzMDg0NiwgMC43NTY3NCwgMC44NDY3MTYsIDAuOTkwNzIzLCAxLjExNjc5LCAxLjI5Njk2IiwgXAotICAgICAgICAgICIwLjUxOTY2NiwgMC42NDU2NTIsIDAuNzcxNTQ5LCAwLjg2MTUyNSwgMS4wMDU1MywgMS4xMzE2LCAxLjMxMTc3IiwgXAotICAgICAgICAgICIwLjUzMzYsIDAuNjU5NTkzLCAwLjc4NTQ4NCwgMC44NzU0NjMsIDEuMDE5NDcsIDEuMTQ1NTMsIDEuMzI1NzEiLCBcCi0gICAgICAgICAgIjAuNTU2MjE1LCAwLjY4MjE3OCwgMC44MDgwNjksIDAuODk4MDQ1LCAxLjA0MjA1LCAxLjE2ODEyLCAxLjM0ODI5IiwgXAotICAgICAgICAgICIwLjU3MzY5MywgMC42OTk2ODIsIDAuODI1NTc2LCAwLjkxNTU1MSwgMS4wNTk1NiwgMS4xODU2MywgMS4zNjU4Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU3NzQsIDAuMzA3NzI1LCAwLjU2NDA4MSwgMC43NDcyNDcsIDEuMDQxMDcsIDEuMjk4MDIsIDEuNjY1NSIsIFwKLSAgICAgICAgICAiMC4wNTc3MjksIDAuMzA3NzI2LCAwLjU2Mzk1OCwgMC43NDcxNjYsIDEuMDQxMDEsIDEuMjk1MzQsIDEuNjY1NTIiLCBcCi0gICAgICAgICAgIjAuMDU3NzY3LCAwLjMwNzcyNywgMC41NjM5NTksIDAuNzQ3MTQzLCAxLjA0MTA3LCAxLjI5NTQzLCAxLjY2NTUyIiwgXAotICAgICAgICAgICIwLjA1Nzc0OCwgMC4zMDc1NSwgMC41NjM5NiwgMC43NDcxNzEsIDEuMDM5MzIsIDEuMjk2MDgsIDEuNjY1NTEiLCBcCi0gICAgICAgICAgIjAuMDU3NzM2LCAwLjMwNzcxOSwgMC41NjM5NjIsIDAuNzQ3NDYxLCAxLjAzOTMyLCAxLjI5NTE4LCAxLjY2NTUiLCBcCi0gICAgICAgICAgIjAuMDU3NzU2LCAwLjMwNzcyMiwgMC41NjM5NTIsIDAuNzQ3MTcxLCAxLjA0MDgzLCAxLjI5NTM3LCAxLjY2NTUiLCBcCi0gICAgICAgICAgIjAuMDU3NzM1LCAwLjMwNzcyNywgMC41NjQwNjksIDAuNzQ3Mzk5LCAxLjAzOTQsIDEuMjk1NSwgMS42NjUyNyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogY2xlYXI7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuNDQ3MywgMC41NzMyOCwgMC42OTkxNzIsIDAuNzg5MTQ4LCAwLjkzMzE1OSwgMS4wNTkyMSwgMS4yMzk0IiwgXAotICAgICAgICAgICIwLjQ1OTQxOSwgMC41ODU0MDMsIDAuNzExMjk2LCAwLjgwMTI3MywgMC45NDUyOCwgMS4wNzE0MSwgMS4yNTE1MSIsIFwKLSAgICAgICAgICAiMC40NzQzNTQsIDAuNjAwMzQyLCAwLjcyNjIzOCwgMC44MTYyMTQsIDAuOTYwMjIyLCAxLjA4NjI5LCAxLjI2NjQ2IiwgXAotICAgICAgICAgICIwLjQ4ODc5MSwgMC42MTQ3NTYsIDAuNzQwNjQ5LCAwLjgzMDYyNCwgMC45NzQ2MzEsIDEuMTAwNzYsIDEuMjgwODciLCBcCi0gICAgICAgICAgIjAuNTAyNzYxLCAwLjYyODczLCAwLjc1NDYyMywgMC44NDQ1OTksIDAuOTg4NjA2LCAxLjExNDY3LCAxLjI5NDg0IiwgXAotICAgICAgICAgICIwLjUyNDc1LCAwLjY1MDY5MiwgMC43NzY1ODEsIDAuODY2NTU1LCAxLjAxMDU2LCAxLjEzNjYyLCAxLjMxNjgxIiwgXAotICAgICAgICAgICIwLjU0Mzg3NywgMC42Njk3NzgsIDAuNzk1NjczLCAwLjg4NTY0NywgMS4wMjk2NSwgMS4xNTU3MSwgMS4zMzU5Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU3NzMyLCAwLjMwNzcyOSwgMC41NjM5NjksIDAuNzQ3MTIzLCAxLjAzOTMxLCAxLjI5NTE2LCAxLjY2MDc4IiwgXAotICAgICAgICAgICIwLjA1NzczLCAwLjMwNzcyNCwgMC41NjM5NTMsIDAuNzQ3MTM3LCAxLjAzOTM1LCAxLjI5NDc3LCAxLjY2NTM5IiwgXAotICAgICAgICAgICIwLjA1NzczMiwgMC4zMDc0ODcsIDAuNTYzOTU4LCAwLjc0NzEyNCwgMS4wMzkzMywgMS4yOTU0MiwgMS42NjA3OCIsIFwKLSAgICAgICAgICAiMC4wNTc3NSwgMC4zMDc3MjMsIDAuNTYzOTQ4LCAwLjc0NzEzOCwgMS4wNDAxOSwgMS4yOTQ4NCwgMS42NjUzNyIsIFwKLSAgICAgICAgICAiMC4wNTc3NTgsIDAuMzA3NDg3LCAwLjU2Mzk2MSwgMC43NDcxMTYsIDEuMDM5MzEsIDEuMjk1NDIsIDEuNjY1NCIsIFwKLSAgICAgICAgICAiMC4wNTc3NDEsIDAuMzA3NzI3LCAwLjU2Mzk1OSwgMC43NDcxMzcsIDEuMDM5MjMsIDEuMjk1MTksIDEuNjYwNzciLCBcCi0gICAgICAgICAgIjAuMDU3Nzg5LCAwLjMwNzcyMywgMC41NjM5NjcsIDAuNzQ3MTI5LCAxLjA0MDc4LCAxLjI5NTA1LCAxLjY2NTQiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yOTk0OTcsIDAuNDQ1MzYyLCAwLjU5MTQ5NywgMC42OTU5NTksIDAuODYyOTI1LCAxLjAwOTMxLCAxLjIxODIyIiwgXAotICAgICAgICAgICIwLjMxMDkzNiwgMC40NTY3OTcsIDAuNjAyOTU5LCAwLjcwNzQyMywgMC44NzQ1MjYsIDEuMDIwNzgsIDEuMjI5NjkiLCBcCi0gICAgICAgICAgIjAuMzI1MTkzLCAwLjQ3MTEyLCAwLjYxNzE4OCwgMC43MjE1NzQsIDAuODg4Njc0LCAxLjAzNTA4LCAxLjI0Mzk3IiwgXAotICAgICAgICAgICIwLjMzOTYyMSwgMC40ODU0ODEsIDAuNjMxNjE2LCAwLjczNjA3NSwgMC45MDMwNSwgMS4wNDk0MywgMS4yNTgzMyIsIFwKLSAgICAgICAgICAiMC4zNTQ2MTcsIDAuNTAwNTYyLCAwLjY0NjcyNCwgMC43NTExOTEsIDAuOTE4Mjk0LCAxLjA2NDU0LCAxLjI3MzQzIiwgXAotICAgICAgICAgICIwLjM3ODEyNiwgMC41MjQwMzMsIDAuNjcwMTcsIDAuNzc0NDk2LCAwLjk0MTc2NCwgMS4wODc5OCwgMS4yOTY4OSIsIFwKLSAgICAgICAgICAiMC4zOTc2LCAwLjU0MzUyLCAwLjY4OTU4OCwgMC43OTM5OTEsIDAuOTYxMDkyLCAxLjEwNzQ1LCAxLjMxNjM3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDYxNzM0LCAwLjM0NzA0NiwgMC42Mzc0OTQsIDAuODQ1MDI3LCAxLjE3ODAyLCAxLjQ2ODU3LCAxLjg4NDI2IiwgXAotICAgICAgICAgICIwLjA2MTc0OCwgMC4zNDczMDIsIDAuNjM3NjQ4LCAwLjg0NTQ5LCAxLjE3OCwgMS40Njg2LCAxLjg4NDI3IiwgXAotICAgICAgICAgICIwLjA2MTcyOCwgMC4zNDcwNDQsIDAuNjM3NDE4LCAwLjg0NTQ2MiwgMS4xNzc2NSwgMS40Njg3LCAxLjg4NDE5IiwgXAotICAgICAgICAgICIwLjA2MTc1NSwgMC4zNDczMjUsIDAuNjM3NjUxLCAwLjg0NTQ4OSwgMS4xNzgwNSwgMS40Njg2MywgMS44ODQyIiwgXAotICAgICAgICAgICIwLjA2MTc2MywgMC4zNDcxODksIDAuNjM3NDMxLCAwLjg0NTQ0OCwgMS4xNzgwNCwgMS40NjkwNCwgMS44ODQyNSIsIFwKLSAgICAgICAgICAiMC4wNjE3NTQsIDAuMzQ3MDQyLCAwLjYzNzY1OSwgMC44NDUyMzgsIDEuMTc4LCAxLjQ2ODU1LCAxLjg4NDIiLCBcCi0gICAgICAgICAgIjAuMDYxNzE5LCAwLjM0NzA1NCwgMC42Mzc0NTQsIDAuODQ1MTc4LCAxLjE3NzY4LCAxLjQ2ODU1LCAxLjg4NDI2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2NjY4LCAwLjAwNjc4NiwgMC4wMDY4MDMsIDAuMDA2ODA4LCAwLjAwNjgxNCwgMC4wMDY4MTUsIDAuMDA2ODE2IiwgXAotICAgICAgICAgICIwLjAwNjY2OCwgMC4wMDY3ODIsIDAuMDA2Nzk4LCAwLjAwNjgwMywgMC4wMDY4MDcsIDAuMDA2ODExLCAwLjAwNjgxMSIsIFwKLSAgICAgICAgICAiMC4wMDY2NjEsIDAuMDA2Nzc3LCAwLjAwNjc5NCwgMC4wMDY3OTgsIDAuMDA2ODAyLCAwLjAwNjgwNCwgMC4wMDY4MDgiLCBcCi0gICAgICAgICAgIjAuMDA2NjUyLCAwLjAwNjc3MSwgMC4wMDY3ODgsIDAuMDA2NzkyLCAwLjAwNjc5NywgMC4wMDY3OTksIDAuMDA2OCIsIFwKLSAgICAgICAgICAiMC4wMDY2NTQsIDAuMDA2NzcxLCAwLjAwNjc4OSwgMC4wMDY3OTQsIDAuMDA2NzkzLCAwLjAwNjc5OCwgMC4wMDY4IiwgXAotICAgICAgICAgICIwLjAwNjY1MywgMC4wMDY3NjksIDAuMDA2Nzg3LCAwLjAwNjc5LCAwLjAwNjc5NCwgMC4wMDY3OTYsIDAuMDA2OCIsIFwKLSAgICAgICAgICAiMC4wMDY2NTUsIDAuMDA2NzcsIDAuMDA2Nzg2LCAwLjAwNjc5MiwgMC4wMDY3OTUsIDAuMDA2Nzk5LCAwLjAwNjgwMiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2Njk5LCAwLjAwNjgxOSwgMC4wMDY4MzYsIDAuMDA2ODQxLCAwLjAwNjg0NSwgMC4wMDY4NDYsIDAuMDA2ODQ4IiwgXAotICAgICAgICAgICIwLjAwNjY5MiwgMC4wMDY4MTMsIDAuMDA2ODI5LCAwLjAwNjgzMywgMC4wMDY4MzcsIDAuMDA2ODM5LCAwLjAwNjg0MiIsIFwKLSAgICAgICAgICAiMC4wMDY2ODYsIDAuMDA2ODA2LCAwLjAwNjgyMywgMC4wMDY4MjgsIDAuMDA2ODMyLCAwLjAwNjgzMywgMC4wMDY4MzYiLCBcCi0gICAgICAgICAgIjAuMDA2NjgzLCAwLjAwNjgwMywgMC4wMDY4MiwgMC4wMDY4MjQsIDAuMDA2ODI5LCAwLjAwNjgzLCAwLjAwNjgzMyIsIFwKLSAgICAgICAgICAiMC4wMDY2NzksIDAuMDA2Nzk5LCAwLjAwNjgxNSwgMC4wMDY4MjEsIDAuMDA2ODI0LCAwLjAwNjgyNiwgMC4wMDY4MjkiLCBcCi0gICAgICAgICAgIjAuMDA2NjczLCAwLjAwNjc5NCwgMC4wMDY4MSwgMC4wMDY4MTUsIDAuMDA2ODE5LCAwLjAwNjgyMSwgMC4wMDY4MjMiLCBcCi0gICAgICAgICAgIjAuMDA2NjcyLCAwLjAwNjc5MiwgMC4wMDY4MDksIDAuMDA2ODEyLCAwLjAwNjgxNywgMC4wMDY4MjEsIDAuMDA2ODIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDc2NjUsIDAuMDA3Nzg1LCAwLjAwNzgwMiwgMC4wMDc4MDcsIDAuMDA3ODEyLCAwLjAwNzgxNCwgMC4wMDc4MTYiLCBcCi0gICAgICAgICAgIjAuMDA3NjYxLCAwLjAwNzc4LCAwLjAwNzc5OSwgMC4wMDc4MDQsIDAuMDA3ODA4LCAwLjAwNzgxMSwgMC4wMDc4MTEiLCBcCi0gICAgICAgICAgIjAuMDA3NjU3LCAwLjAwNzc3NiwgMC4wMDc3OTUsIDAuMDA3OCwgMC4wMDc4MDQsIDAuMDA3ODA1LCAwLjAwNzgwNyIsIFwKLSAgICAgICAgICAiMC4wMDc2NTQsIDAuMDA3NzczLCAwLjAwNzc5MSwgMC4wMDc3OTcsIDAuMDA3ODAxLCAwLjAwNzgwMiwgMC4wMDc4MDQiLCBcCi0gICAgICAgICAgIjAuMDA3NjUxLCAwLjAwNzc2OSwgMC4wMDc3ODcsIDAuMDA3NzkzLCAwLjAwNzc5NywgMC4wMDc3OTksIDAuMDA3ODAxIiwgXAotICAgICAgICAgICIwLjAwNzY0OSwgMC4wMDc3NjgsIDAuMDA3Nzg2LCAwLjAwNzc5MSwgMC4wMDc3OTYsIDAuMDA3Nzk4LCAwLjAwNzgiLCBcCi0gICAgICAgICAgIjAuMDA3NjQ4LCAwLjAwNzc2NiwgMC4wMDc3ODQsIDAuMDA3Nzg5LCAwLjAwNzc5NCwgMC4wMDc3OTYsIDAuMDA3Nzk4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHNjYWxhcikgewotICAgICAgICB2YWx1ZXMoIjAiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDY1MzEsIDAuMDA2NjUxLCAwLjAwNjY2OSwgMC4wMDY2NzQsIDAuMDA2Njc5LCAwLjAwNjY4MywgMC4wMDY2ODMiLCBcCi0gICAgICAgICAgIjAuMDA2NTI2LCAwLjAwNjY0NSwgMC4wMDY2NjQsIDAuMDA2NjY5LCAwLjAwNjY3NCwgMC4wMDY2NzUsIDAuMDA2Njc3IiwgXAotICAgICAgICAgICIwLjAwNjUyMSwgMC4wMDY2NDEsIDAuMDA2NjU5LCAwLjAwNjY2NCwgMC4wMDY2NjksIDAuMDA2NjcxLCAwLjAwNjY3MiIsIFwKLSAgICAgICAgICAiMC4wMDY1MTgsIDAuMDA2NjM3LCAwLjAwNjY1NiwgMC4wMDY2NjIsIDAuMDA2NjY1LCAwLjAwNjY2NywgMC4wMDY2NjkiLCBcCi0gICAgICAgICAgIjAuMDA2NTE2LCAwLjAwNjYzNCwgMC4wMDY2NTQsIDAuMDA2NjU5LCAwLjAwNjY2MywgMC4wMDY2NjUsIDAuMDA2NjY3IiwgXAotICAgICAgICAgICIwLjAwNjUxMSwgMC4wMDY2MywgMC4wMDY2NDksIDAuMDA2NjU0LCAwLjAwNjY2LCAwLjAwNjY2MSwgMC4wMDY2NjMiLCBcCi0gICAgICAgICAgIjAuMDA2NTEsIDAuMDA2NjI5LCAwLjAwNjY0NywgMC4wMDY2NTIsIDAuMDA2NjU3LCAwLjAwNjY2MSwgMC4wMDY2NjEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNzM0OSwgMC4wMDc0NjIsIDAuMDA3NDc1LCAwLjAwNzQ4LCAwLjAwNzQ4MSwgMC4wMDc0ODQsIDAuMDA3NDg1IiwgXAotICAgICAgICAgICIwLjAwNzM0MiwgMC4wMDc0NTYsIDAuMDA3NDY5LCAwLjAwNzQ3MywgMC4wMDc0NzYsIDAuMDA3NDc3LCAwLjAwNzQ3OSIsIFwKLSAgICAgICAgICAiMC4wMDczMzksIDAuMDA3NDUyLCAwLjAwNzQ2NSwgMC4wMDc0NywgMC4wMDc0NzMsIDAuMDA3NDc0LCAwLjAwNzQ3NCIsIFwKLSAgICAgICAgICAiMC4wMDczMzYsIDAuMDA3NDUsIDAuMDA3NDYzLCAwLjAwNzQ2NywgMC4wMDc0NjksIDAuMDA3NDcxLCAwLjAwNzQ3MiIsIFwKLSAgICAgICAgICAiMC4wMDczMzQsIDAuMDA3NDQ3LCAwLjAwNzQ2LCAwLjAwNzQ2NCwgMC4wMDc0NjcsIDAuMDA3NDY4LCAwLjAwNzQ3IiwgXAotICAgICAgICAgICIwLjAwNzMzMSwgMC4wMDc0NDUsIDAuMDA3NDU4LCAwLjAwNzQ2MiwgMC4wMDc0NjUsIDAuMDA3NDcsIDAuMDA3NDciLCBcCi0gICAgICAgICAgIjAuMDA3MzI3LCAwLjAwNzQ0MSwgMC4wMDc0NTUsIDAuMDA3NDU5LCAwLjAwNzQ2MiwgMC4wMDc0NjMsIDAuMDA3NDY0Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihSTikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNTU3NTc7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNTU3MjgzOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDU1NzU3OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDQ4MywgMC4wMDA0NjksIDAuMDAwNDU5LCAwLjAwMDQ1NCwgMC4wMDA0NTEsIDAuMDAwNDQ4LCAwLjAwMDQ0NyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjAzNCwgMC4wMDIwMjQsIDAuMDAyMDE5LCAwLjAwMjAxNSwgMC4wMDIwMTIsIDAuMDAyMDExLCAwLjAwMjAwOSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQmIVNFJiFTSSZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fU0VfRVFfMF9BTl9TSV9FUV8wX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC40Nzg1MTEsIDAuNDg5OTc0LCAwLjUwNDg1NywgMC41MTk2NjYsIDAuNTMzNiwgMC41NTYyMTMsIDAuNTczNjkzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogcmVjb3ZlcnlfcmlzaW5nOwotICAgICAgd2hlbiA6ICJTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJTTiA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChyZWNvdmVyeV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNjI1LCAwLjE0NSwgMC4xMzI1LCAwLjExMzc1LCAwLjA5NSwgMC4wNzI1LCAwLjA1MTI1IiwgXAotICAgICAgICAgICIwLjE3Mzc1LCAwLjE1NjI1LCAwLjE0Mzc1LCAwLjEyNSwgMC4xMDYyNSwgMC4wODM3NSwgMC4wNjI1IiwgXAotICAgICAgICAgICIwLjE4NjI1LCAwLjE3NSwgMC4xNTYyNSwgMC4xMzc1LCAwLjEyNSwgMC4wOTYyNSwgMC4wNzUiLCBcCi0gICAgICAgICAgIjAuMjA1LCAwLjE4NzUsIDAuMTc1LCAwLjE1NjI1LCAwLjEzNzUsIDAuMTE1LCAwLjA5Mzc1IiwgXAotICAgICAgICAgICIwLjIxNzUsIDAuMjA2MjUsIDAuMTg3NSwgMC4xNjg3NSwgMC4xNTYyNSwgMC4xMjc1LCAwLjEwNjI1IiwgXAotICAgICAgICAgICIwLjI0LCAwLjIyODc1LCAwLjIxNjI1LCAwLjE5NzUsIDAuMTc4NzUsIDAuMTU2MjUsIDAuMTI4NzUiLCBcCi0gICAgICAgICAgIjAuMjYxMjUsIDAuMjUsIDAuMjMxMjUsIDAuMjEyNSwgMC4yLCAwLjE3MTI1LCAwLjE1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIHRpbWluZ190eXBlIDogcmVjb3ZlcnlfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRCYhU0UmIVNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9TRV9FUV8wX0FOX1NJX0VRXzAgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQocmVjb3ZlcnlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjEyNSwgMC4yMjM3NSwgMC4yMzYyNSwgMC4yNTUsIDAuMjY3NSwgMC4yOSwgMC4zMDUiLCBcCi0gICAgICAgICAgIjAuMjAxMjUsIDAuMjEyNSwgMC4yMjUsIDAuMjQzNzUsIDAuMjU2MjUsIDAuMjcyNSwgMC4yOTM3NSIsIFwKLSAgICAgICAgICAiMC4xODg3NSwgMC4yLCAwLjIxMjUsIDAuMjI1LCAwLjI0Mzc1LCAwLjI2LCAwLjI4MTI1IiwgXAotICAgICAgICAgICIwLjE3NjI1LCAwLjE4NzUsIDAuMiwgMC4yMTg3NSwgMC4yMzEyNSwgMC4yNDc1LCAwLjI2ODc1IiwgXAotICAgICAgICAgICIwLjE2Mzc1LCAwLjE3NSwgMC4xOTM3NSwgMC4yMDYyNSwgMC4yMTg3NSwgMC4yNDEyNSwgMC4yNTYyNSIsIFwKLSAgICAgICAgICAiMC4xNDc1LCAwLjE1ODc1LCAwLjE3NzUsIDAuMTksIDAuMjAyNSwgMC4yMjUsIDAuMjQiLCBcCi0gICAgICAgICAgIjAuMTM4NzUsIDAuMTUsIDAuMTYyNSwgMC4xODEyNSwgMC4xOTM3NSwgMC4yMSwgMC4yMzEyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJlbW92YWxfcmlzaW5nOwotICAgICAgd2hlbiA6ICJTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJTTiA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChyZW1vdmFsX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMzEyNSwgLTAuMDIsIC0wLjAwNzUsIDAuMDExMjUsIDAuMDIzNzUsIDAuMDQ2MjUsIDAuMDY3NSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDMxMjUsIC0wLjAxODc1LCAwLCAwLjAxMjUsIDAuMDM1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICItMC4wNjEyNSwgLTAuMDUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgMCwgMC4wMjI1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICItMC4wNzM3NSwgLTAuMDYyNSwgLTAuMDUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgMC4wMDM3NSwgMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjA5MjUsIC0wLjA4MTI1LCAtMC4wNjI1LCAtMC4wNSwgLTAuMDMxMjUsIC0wLjAwODc1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjExNSwgLTAuMTAzNzUsIC0wLjA5MTI1LCAtMC4wNzI1LCAtMC4wNiwgLTAuMDMxMjUsIC0wLjAxNjI1IiwgXAotICAgICAgICAgICItMC4xMzYyNSwgLTAuMTI1LCAtMC4xMDYyNSwgLTAuMDkzNzUsIC0wLjA3NSwgLTAuMDUyNSwgLTAuMDMxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFNFKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE0MTIyOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTQxMTc2OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTQxMjI7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzOTE4LCAwLjAwMzkwNiwgMC4wMDM5MDEsIDAuMDAzODk4LCAwLjAwMzg5NywgMC4wMDM4OTUsIDAuMDAzODk1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA1MDIsIDAuMDA1MDAzLCAwLjAwNDk5MSwgMC4wMDQ5ODMsIDAuMDA0OTc4LCAwLjAwNDk3MSwgMC4wMDQ5NjkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiUk4mU04iOwotICAgICAgc2RmX2NvbmQgOiAiUk5fRVFfMV9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjA0Mzc1LCAtMC4wMjYyNSwgLTAuMDEzNzUsIC0wLjAwMTI1LCAwLjAxMTI1LCAwLjAzMzc1LCAwLjA1NSIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAxMjUsIDAsIDAuMDIyNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDY3NSwgLTAuMDU2MjUsIC0wLjA0Mzc1LCAtMC4wMjUsIC0wLjAxMjUsIDAuMDEsIDAuMDI1IiwgXAotICAgICAgICAgICItMC4wOCwgLTAuMDY4NzUsIC0wLjA1NjI1LCAtMC4wNDM3NSwgLTAuMDMxMjUsIC0wLjAwODc1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjA5ODc1LCAtMC4wODc1LCAtMC4wNjg3NSwgLTAuMDU2MjUsIC0wLjA0Mzc1LCAtMC4wMjEyNSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjExNSwgLTAuMTAzNzUsIC0wLjA5MTI1LCAtMC4wNzg3NSwgLTAuMDY2MjUsIC0wLjA0Mzc1LCAtMC4wMjI1IiwgXAotICAgICAgICAgICItMC4xMzYyNSwgLTAuMTI1LCAtMC4xMDYyNSwgLTAuMDkzNzUsIC0wLjA4MTI1LCAtMC4wNTg3NSwgLTAuMDM3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAwNjI1LCAwLjAwNSwgMC4wMTc1LCAwLjAzLCAwLjA0MjUsIDAuMDY1LCAwLjA4NjI1IiwgXAotICAgICAgICAgICItMC4wMTc1LCAtMC4wMDYyNSwgMC4wMDYyNSwgMC4wMTg3NSwgMC4wMzEyNSwgMC4wNTM3NSwgMC4wNzUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAuMDA2MjUsIDAuMDE4NzUsIDAuMDQxMjUsIDAuMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDMxMjUsIC0wLjAxODc1LCAtMC4wMDYyNSwgMC4wMDYyNSwgMC4wMjg3NSwgMC4wNSIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNDM3NSwgLTAuMDMxMjUsIC0wLjAxODc1LCAtMC4wMDYyNSwgMC4wMTYyNSwgMC4wMzc1IiwgXAotICAgICAgICAgICItMC4wNzc1LCAtMC4wNjYyNSwgLTAuMDQ3NSwgLTAuMDM1LCAtMC4wMjI1LCAwLCAwLjAxNSIsIFwKLSAgICAgICAgICAiLTAuMDkyNSwgLTAuMDgxMjUsIC0wLjA2ODc1LCAtMC4wNTYyNSwgLTAuMDM3NSwgLTAuMDIxMjUsIDAiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlJOJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIlJOX0VRXzFfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMDYyNSwgMC4yOTUsIDAuMjc2MjUsIDAuMjU3NSwgMC4yNDUsIDAuMjE2MjUsIDAuMTk1IiwgXAotICAgICAgICAgICIwLjMxNzUsIDAuMzA2MjUsIDAuMjg3NSwgMC4yNjg3NSwgMC4yNTYyNSwgMC4yMjc1LCAwLjIwNjI1IiwgXAotICAgICAgICAgICIwLjMzLCAwLjMxODc1LCAwLjMsIDAuMjg3NSwgMC4yNjg3NSwgMC4yNCwgMC4yMTg3NSIsIFwKLSAgICAgICAgICAiMC4zNDg3NSwgMC4zMzEyNSwgMC4zMTI1LCAwLjMsIDAuMjgxMjUsIDAuMjU4NzUsIDAuMjMxMjUiLCBcCi0gICAgICAgICAgIjAuMzYxMjUsIDAuMzQzNzUsIDAuMzMxMjUsIDAuMzEyNSwgMC4yOTM3NSwgMC4yNzEyNSwgMC4yNSIsIFwKLSAgICAgICAgICAiMC4zODM3NSwgMC4zNjYyNSwgMC4zNTM3NSwgMC4zMzUsIDAuMzE2MjUsIDAuMjkzNzUsIDAuMjcyNSIsIFwKLSAgICAgICAgICAiMC4zOTg3NSwgMC4zODc1LCAwLjM2ODc1LCAwLjM1LCAwLjMzNzUsIDAuMzA4NzUsIDAuMjg3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMzNzUsIDAuMzI2MjUsIDAuMzA3NSwgMC4yODg3NSwgMC4yNywgMC4yNDc1LCAwLjIyNjI1IiwgXAotICAgICAgICAgICIwLjM0ODc1LCAwLjMzNzUsIDAuMzE4NzUsIDAuMywgMC4yODc1LCAwLjI1ODc1LCAwLjIzNzUiLCBcCi0gICAgICAgICAgIjAuMzYxMjUsIDAuMzUsIDAuMzMxMjUsIDAuMzEyNSwgMC4zLCAwLjI3MTI1LCAwLjI1IiwgXAotICAgICAgICAgICIwLjM4LCAwLjM2MjUsIDAuMzUsIDAuMzMxMjUsIDAuMzEyNSwgMC4yODM3NSwgMC4yNjg3NSIsIFwKLSAgICAgICAgICAiMC4zOTI1LCAwLjM3NSwgMC4zNjI1LCAwLjM0Mzc1LCAwLjMyNSwgMC4yOTYyNSwgMC4yODEyNSIsIFwKLSAgICAgICAgICAiMC40MDg3NSwgMC4zOTEyNSwgMC4zNzg3NSwgMC4zNiwgMC4zNDEyNSwgMC4zMTg3NSwgMC4yOTc1IiwgXAotICAgICAgICAgICIwLjQyMzc1LCAwLjQwNjI1LCAwLjM5Mzc1LCAwLjM3NSwgMC4zNTYyNSwgMC4zMzM3NSwgMC4zMTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTSSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjM1NDcyOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYzMzg0OTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2MzU0NzI7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzMzExLCAwLjAwMzMwMSwgMC4wMDMyOTYsIDAuMDAzMjkzLCAwLjAwMzI5LCAwLjAwMzI4NywgMC4wMDMyODUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDQxNjIsIDAuMDA0MTU3LCAwLjAwNDE1NSwgMC4wMDQxNTMsIDAuMDA0MTUyLCAwLjAwNDE0OSwgMC4wMDQxNDgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiUk4mU0UmU04iOwotICAgICAgc2RmX2NvbmQgOiAiUk5fRVFfMV9BTl9TRV9FUV8xX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMTM3NSwgLTAuMTI2MjUsIC0wLjExMzc1LCAtMC4xMDc1LCAtMC4wOTUsIC0wLjA3ODc1LCAtMC4wNyIsIFwKLSAgICAgICAgICAiLTAuMTQ4NzUsIC0wLjEzNzUsIC0wLjEzMTI1LCAtMC4xMTg3NSwgLTAuMTA2MjUsIC0wLjA5LCAtMC4wODEyNSIsIFwKLSAgICAgICAgICAiLTAuMTYxMjUsIC0wLjE1LCAtMC4xNDM3NSwgLTAuMTMxMjUsIC0wLjExODc1LCAtMC4xMDg3NSwgLTAuMDkzNzUiLCBcCi0gICAgICAgICAgIi0wLjE3Mzc1LCAtMC4xNjg3NSwgLTAuMTU2MjUsIC0wLjE0Mzc1LCAtMC4xMzc1LCAtMC4xMjEyNSwgLTAuMTA2MjUiLCBcCi0gICAgICAgICAgIi0wLjE4NjI1LCAtMC4xODEyNSwgLTAuMTY4NzUsIC0wLjE1NjI1LCAtMC4xNSwgLTAuMTMzNzUsIC0wLjExODc1IiwgXAotICAgICAgICAgICItMC4yMDg3NSwgLTAuMjAzNzUsIC0wLjE5MTI1LCAtMC4xNzg3NSwgLTAuMTcyNSwgLTAuMTU2MjUsIC0wLjE0MTI1IiwgXAotICAgICAgICAgICItMC4yMywgLTAuMjE4NzUsIC0wLjIxMjUsIC0wLjIsIC0wLjE4NzUsIC0wLjE3NzUsIC0wLjE2MjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMjUsIC0wLjAwNzUsIDAuMDA1LCAwLjAxNzUsIDAuMDMsIDAuMDUyNSwgMC4wNzM3NSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAxODc1LCAtMC4wMDYyNSwgMC4wMDYyNSwgMC4wMTg3NSwgMC4wNDEyNSwgMC4wNjI1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDMxMjUsIC0wLjAxODc1LCAtMC4wMDYyNSwgMC4wMDYyNSwgMC4wMjg3NSwgMC4wNSIsIFwKLSAgICAgICAgICAiLTAuMDYxMjUsIC0wLjA0Mzc1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLjAxNjI1LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjA2NzUsIC0wLjA1NjI1LCAtMC4wNDM3NSwgLTAuMDMxMjUsIC0wLjAxODc1LCAwLjAwMzc1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDksIC0wLjA3ODc1LCAtMC4wNiwgLTAuMDQ3NSwgLTAuMDM1LCAtMC4wMTI1LCAwLjAwMjUiLCBcCi0gICAgICAgICAgIi0wLjEwNSwgLTAuMDkzNzUsIC0wLjA3NSwgLTAuMDYyNSwgLTAuMDUsIC0wLjAyNzUsIC0wLjAxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlJOJlNFJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIlJOX0VRXzFfQU5fU0VfRVFfMV9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMxODc1LCAwLjMwNzUsIDAuMjg4NzUsIDAuMjcsIDAuMjU3NSwgMC4yMjg3NSwgMC4yMDc1IiwgXAotICAgICAgICAgICIwLjMzLCAwLjMxODc1LCAwLjMsIDAuMjgxMjUsIDAuMjY4NzUsIDAuMjQsIDAuMjE4NzUiLCBcCi0gICAgICAgICAgIjAuMzQ4NzUsIDAuMzMxMjUsIDAuMzE4NzUsIDAuMywgMC4yODEyNSwgMC4yNTI1LCAwLjIzNzUiLCBcCi0gICAgICAgICAgIjAuMzYxMjUsIDAuMzQzNzUsIDAuMzMxMjUsIDAuMzEyNSwgMC4yOTM3NSwgMC4yNzEyNSwgMC4yNSIsIFwKLSAgICAgICAgICAiMC4zNzM3NSwgMC4zNjI1LCAwLjM0Mzc1LCAwLjMyNSwgMC4zMDYyNSwgMC4yODM3NSwgMC4yNjI1IiwgXAotICAgICAgICAgICIwLjM5NjI1LCAwLjM4NSwgMC4zNjYyNSwgMC4zNDc1LCAwLjMyODc1LCAwLjMwNjI1LCAwLjI4NSIsIFwKLSAgICAgICAgICAiMC40MTc1LCAwLjQsIDAuMzgxMjUsIDAuMzY4NzUsIDAuMzUsIDAuMzIxMjUsIDAuMzA2MjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yNjI1LCAwLjI0NSwgMC4yMzI1LCAwLjIxMzc1LCAwLjE5NSwgMC4xNzI1LCAwLjE1MTI1IiwgXAotICAgICAgICAgICIwLjI3Mzc1LCAwLjI1NjI1LCAwLjI0Mzc1LCAwLjIyNSwgMC4yMDYyNSwgMC4xODM3NSwgMC4xNjI1IiwgXAotICAgICAgICAgICIwLjI4NjI1LCAwLjI2ODc1LCAwLjI1NjI1LCAwLjIzNzUsIDAuMjE4NzUsIDAuMTk2MjUsIDAuMTc1IiwgXAotICAgICAgICAgICIwLjI5ODc1LCAwLjI4MTI1LCAwLjI2ODc1LCAwLjI1LCAwLjIzMTI1LCAwLjIwODc1LCAwLjE4NzUiLCBcCi0gICAgICAgICAgIjAuMzExMjUsIDAuMjkzNzUsIDAuMjgxMjUsIDAuMjYyNSwgMC4yNDM3NSwgMC4yMjEyNSwgMC4yIiwgXAotICAgICAgICAgICIwLjMyNzUsIDAuMzE2MjUsIDAuMjk3NSwgMC4yODUsIDAuMjY2MjUsIDAuMjM3NSwgMC4yMTYyNSIsIFwKLSAgICAgICAgICAiMC4zNDg3NSwgMC4zMzEyNSwgMC4zMTg3NSwgMC4zLCAwLjI4MTI1LCAwLjI1ODc1LCAwLjIzMTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTTikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNDMxNTM7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNDMxNTM7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNDMwNTM7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzMxLCAwLjAwMDMzMSwgMC4wMDAzMywgMC4wMDAzMywgMC4wMDAzMywgMC4wMDAzMywgMC4wMDAzMyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDMzMSwgMC4wMDAzMzEsIDAuMDAwMzMxLCAwLjAwMDMzMiwgMC4wMDAzMzIsIDAuMDAwMzMxLCAwLjAwMDMzMSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQmIVJOJiFTRSYhU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1JOX0VRXzBfQU5fU0VfRVFfMF9BTl9TSV9FUV8wID09IDEnYjEiOwotICAgICAgZmFsbF9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMjk5NDk3LCAwLjMxMDkzNiwgMC4zMjUxOTMsIDAuMzM5NjIxLCAwLjM1NDYxNywgMC4zNzgxMjYsIDAuMzk3NiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJlY292ZXJ5X3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiUk4iOwotICAgICAgc2RmX2NvbmQgOiAiUk4gPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQocmVjb3ZlcnlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc1LCAwLjA2Mzc1LCAwLjA0NSwgMC4wMjYyNSwgMC4wMTM3NSwgLTAuMDE1LCAtMC4wMzYyNSIsIFwKLSAgICAgICAgICAiMC4wODYyNSwgMC4wNzUsIDAuMDU2MjUsIDAuMDM3NSwgMC4wMjUsIC0wLjAwMzc1LCAtMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMDk4NzUsIDAuMDg3NSwgMC4wNzUsIDAuMDU2MjUsIDAuMDM3NSwgMC4wMDg3NSwgLTAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4xMTc1LCAwLjEsIDAuMDg3NSwgMC4wNjg3NSwgMC4wNSwgMC4wMjc1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICIwLjEzLCAwLjExODc1LCAwLjEsIDAuMDgxMjUsIDAuMDY4NzUsIDAuMDQsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMTUyNSwgMC4xNDEyNSwgMC4xMjI1LCAwLjEwMzc1LCAwLjA5MTI1LCAwLjA2MjUsIDAuMDQxMjUiLCBcCi0gICAgICAgICAgIjAuMTczNzUsIDAuMTU2MjUsIDAuMTQzNzUsIDAuMTI1LCAwLjEwNjI1LCAwLjA4Mzc1LCAwLjA1NjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogcmVtb3ZhbF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlJOIjsKLSAgICAgIHNkZl9jb25kIDogIlJOID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHJlbW92YWxfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU2MjUsIDAuMDY3NSwgMC4wODYyNSwgMC4wOTg3NSwgMC4xMTc1LCAwLjE0LCAwLjE2MTI1IiwgXAotICAgICAgICAgICIwLjA0NSwgMC4wNTYyNSwgMC4wNzUsIDAuMDg3NSwgMC4xMDYyNSwgMC4xMjg3NSwgMC4xNSIsIFwKLSAgICAgICAgICAiMC4wMzI1LCAwLjA0Mzc1LCAwLjA2MjUsIDAuMDc1LCAwLjA4NzUsIDAuMTE2MjUsIDAuMTM3NSIsIFwKLSAgICAgICAgICAiMC4wMiwgMC4wMzEyNSwgMC4wNDM3NSwgMC4wNjI1LCAwLjA3NSwgMC4xMDM3NSwgMC4xMjUiLCBcCi0gICAgICAgICAgIjAuMDA3NSwgMC4wMTg3NSwgMC4wMzEyNSwgMC4wNSwgMC4wNjI1LCAwLjA4NSwgMC4xMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDE1LCAtMC4wMDM3NSwgMC4wMDg3NSwgMC4wMjc1LCAwLjA0LCAwLjA2MjUsIDAuMDgzNzUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMjUsIC0wLjAxMjUsIDAuMDA2MjUsIDAuMDE4NzUsIDAuMDQ3NSwgMC4wNjg3NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IFNERkZTWDEgKgotICogLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoU0RGRlNYMSkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjMxOTY2MTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBmZiAoTjM1LFFCSU5UKSB7Ci0gICAgbmV4dF9zdGF0ZSA6ICIoKFNFIFNJKSArICghU0UgRCkpIjsKLSAgICBjbG9ja2VkX29uIDogIkNLIjsKLSAgICBwcmVzZXQgOiAiKCFTTikiOwotICB9Ci0gIHBpbihDSykgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjI3Njk0OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYyNzUwNzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2Mjc2OTQ7Ci0gICAgY2xvY2sgOiB0cnVlOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjEyMiwgMC4wMDIxMDksIDAuMDAyMDk5LCAwLjAwMjA5MiwgMC4wMDIwODcsIDAuMDAyMDc5LCAwLjAwMjA3NiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNTMxOCwgMC4wMDUzMDYsIDAuMDA1Mjk1LCAwLjAwNTI4NywgMC4wMDUyODEsIDAuMDA1MjgyLCAwLjAwNTI4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRCYhU0UmIVNJJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9TRV9FUV8wX0FOX1NJX0VRXzBfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjM3MzU5MSwgMC4zODU0MywgMC40MDA3NzIsIDAuNDE2MTM0LCAwLjQzMTUyMSwgMC40NTU4MzksIDAuNDc2Nzc2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4yNDA3OTIsIDAuMjUyNDk1LCAwLjI2NjYzNywgMC4yODIxNjEsIDAuMjk2NzQxLCAwLjMxOTgxNCwgMC4zMzg4OTkiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEQpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDU4MjEzNTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA1ODA1NzI7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNTgyMTM1OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjc5OCwgMC4wMDI3ODgsIDAuMDAyNzgzLCAwLjAwMjc4LCAwLjAwMjc3NywgMC4wMDI3NzQsIDAuMDAyNzcxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzNzQ4LCAwLjAwMzc0MywgMC4wMDM3NDEsIDAuMDAzNzM5LCAwLjAwMzczNywgMC4wMDM3MzYsIDAuMDAzNzM1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFTRSZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJTRV9FUV8wX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMTMxMjUsIC0wLjEyLCAtMC4xMTM3NSwgLTAuMTAxMjUsIC0wLjA4ODc1LCAtMC4wNzg3NSwgLTAuMDYzNzUiLCBcCi0gICAgICAgICAgIi0wLjE0MjUsIC0wLjEzNzUsIC0wLjEyNSwgLTAuMTEyNSwgLTAuMTA2MjUsIC0wLjA5LCAtMC4wNzUiLCBcCi0gICAgICAgICAgIi0wLjE2MTI1LCAtMC4xNSwgLTAuMTM3NSwgLTAuMTI1LCAtMC4xMTg3NSwgLTAuMTAyNSwgLTAuMDg3NSIsIFwKLSAgICAgICAgICAiLTAuMTczNzUsIC0wLjE2MjUsIC0wLjE1LCAtMC4xNDM3NSwgLTAuMTMxMjUsIC0wLjExNSwgLTAuMTA2MjUiLCBcCi0gICAgICAgICAgIi0wLjE4NjI1LCAtMC4xNzUsIC0wLjE2ODc1LCAtMC4xNTYyNSwgLTAuMTQzNzUsIC0wLjEyNzUsIC0wLjExODc1IiwgXAotICAgICAgICAgICItMC4yMDg3NSwgLTAuMTk3NSwgLTAuMTg1LCAtMC4xNzg3NSwgLTAuMTY2MjUsIC0wLjE1LCAtMC4xNDEyNSIsIFwKLSAgICAgICAgICAiLTAuMjMsIC0wLjIxODc1LCAtMC4yMDYyNSwgLTAuMTkzNzUsIC0wLjE4NzUsIC0wLjE3MTI1LCAtMC4xNTYyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAyNSwgLTAuMDEzNzUsIC0wLjAwMTI1LCAwLjAxNzUsIDAuMDMsIDAuMDQ2MjUsIDAuMDY3NSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAyNSwgLTAuMDEyNSwgMC4wMDYyNSwgMC4wMTg3NSwgMC4wMzUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAxMjUsIDAuMDA2MjUsIDAuMDIyNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDYxMjUsIC0wLjA1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAwNjI1LCAwLjAxLCAwLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wNzM3NSwgLTAuMDYyNSwgLTAuMDUsIC0wLjAzNzUsIC0wLjAxODc1LCAtMC4wMDI1LCAwLjAxODc1IiwgXAotICAgICAgICAgICItMC4wOSwgLTAuMDc4NzUsIC0wLjA2NjI1LCAtMC4wNTM3NSwgLTAuMDQxMjUsIC0wLjAxODc1LCAwLjAwMjUiLCBcCi0gICAgICAgICAgIi0wLjExMTI1LCAtMC4xLCAtMC4wODEyNSwgLTAuMDY4NzUsIC0wLjA1NjI1LCAtMC4wMzM3NSwgLTAuMDE4NzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFTRSZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJTRV9FUV8wX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjI1LCAwLjIwNzUsIDAuMTk1LCAwLjE4MjUsIDAuMTYzNzUsIDAuMTQ3NSwgMC4xMzI1IiwgXAotICAgICAgICAgICIwLjIzNjI1LCAwLjIyNSwgMC4yMDYyNSwgMC4xOTM3NSwgMC4xNzUsIDAuMTU4NzUsIDAuMTQzNzUiLCBcCi0gICAgICAgICAgIjAuMjQ4NzUsIDAuMjM3NSwgMC4yMTg3NSwgMC4yMDYyNSwgMC4xOTM3NSwgMC4xNzEyNSwgMC4xNjI1IiwgXAotICAgICAgICAgICIwLjI2MTI1LCAwLjI1LCAwLjIzMTI1LCAwLjIxODc1LCAwLjIwNjI1LCAwLjE5LCAwLjE3NSIsIFwKLSAgICAgICAgICAiMC4yNzM3NSwgMC4yNjI1LCAwLjI1LCAwLjIzMTI1LCAwLjIxODc1LCAwLjIwMjUsIDAuMTg3NSIsIFwKLSAgICAgICAgICAiMC4yOTYyNSwgMC4yODUsIDAuMjY2MjUsIDAuMjUzNzUsIDAuMjQxMjUsIDAuMjI1LCAwLjIxIiwgXAotICAgICAgICAgICIwLjMxNzUsIDAuMzA2MjUsIDAuMjg3NSwgMC4yNzUsIDAuMjYyNSwgMC4yNCwgMC4yMzEyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIxMjUsIDAuMjAxMjUsIDAuMTgyNSwgMC4xNywgMC4xNTEyNSwgMC4xMjg3NSwgMC4xMDc1IiwgXAotICAgICAgICAgICIwLjIyMzc1LCAwLjIxMjUsIDAuMTkzNzUsIDAuMTgxMjUsIDAuMTYyNSwgMC4xNCwgMC4xMTg3NSIsIFwKLSAgICAgICAgICAiMC4yMzYyNSwgMC4yMjUsIDAuMjA2MjUsIDAuMTkzNzUsIDAuMTc1LCAwLjE1MjUsIDAuMTMxMjUiLCBcCi0gICAgICAgICAgIjAuMjQ4NzUsIDAuMjM3NSwgMC4yMTg3NSwgMC4yMDYyNSwgMC4xODc1LCAwLjE2NSwgMC4xNDM3NSIsIFwKLSAgICAgICAgICAiMC4yNjEyNSwgMC4yNSwgMC4yMzEyNSwgMC4yMTg3NSwgMC4yLCAwLjE3NzUsIDAuMTU2MjUiLCBcCi0gICAgICAgICAgIjAuMjgzNzUsIDAuMjcyNSwgMC4yNTM3NSwgMC4yMzUsIDAuMjIyNSwgMC4xOTM3NSwgMC4xNzI1IiwgXAotICAgICAgICAgICIwLjI5ODc1LCAwLjI4NzUsIDAuMjY4NzUsIDAuMjU2MjUsIDAuMjM3NSwgMC4yMTUsIDAuMTkzNzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFEpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4xMzMxODY7Ci0gICAgZnVuY3Rpb24gOiAiTjM1IjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBub25fdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJpc2luZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yODc2MSwgMC4zMzA1ODQsIDAuNTc1MTEzLCAwLjc4ODM2MSwgMS4wNzI3LCAxLjY0MzA5LCAyLjAwMDAyIiwgXAotICAgICAgICAgICIwLjI5OTM5MiwgMC4zNDIzMDcsIDAuNTg2MjU0LCAwLjgwMDEyOSwgMS4wODQ0NSwgMS42NTQ5LCAyLjAxMTgyIiwgXAotICAgICAgICAgICIwLjMxNDY2OCwgMC4zNTc2NzMsIDAuNjAwNTc1LCAwLjgxNDk3MiwgMS4wOTg5NCwgMS42Njk4NCwgMi4wMjQ0NCIsIFwKLSAgICAgICAgICAiMC4zMzAwMDcsIDAuMzcyOTMzLCAwLjYxNjc5NiwgMC44MzA2ODUsIDEuMTE0ODYsIDEuNjg1NDUsIDIuMDQyNTgiLCBcCi0gICAgICAgICAgIjAuMzQ1MzU5LCAwLjM4ODM2NywgMC42MzEzMiwgMC44NDU2MDUsIDEuMTI5NTgsIDEuNzAwNDksIDIuMDU2OCIsIFwKLSAgICAgICAgICAiMC4zNjk1MDQsIDAuNDEyNTQxLCAwLjY1NTg4NywgMC44NzAyMTgsIDEuMTU1MDUsIDEuNzI1MDMsIDIuMDgzNCIsIFwKLSAgICAgICAgICAiMC4zOTAyMDMsIDAuNDMzMjE2LCAwLjY3NjM4LCAwLjg5MDQ5OSwgMS4xNzQxNywgMS43NDU1OCwgMi4xMDQyIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE2NDExNywgMC4yNTEyNDYsIDAuNzQ2MzAzLCAxLjE3NTU4LCAxLjc0ODYzLCAyLjk0Njg5LCAzLjY3OTU0IiwgXAotICAgICAgICAgICIwLjE2NDEwNywgMC4yNTA2MjMsIDAuNzQ0NzU3LCAxLjE3NjI4LCAxLjc0ODY5LCAyLjk0Njg2LCAzLjY3OTUxIiwgXAotICAgICAgICAgICIwLjE2NDEwNCwgMC4yNDg1MTQsIDAuNzQ1MjYxLCAxLjE3MDM3LCAxLjc1OTI2LCAyLjk0NjkxLCAzLjY0NjEiLCBcCi0gICAgICAgICAgIjAuMTY0MTI5LCAwLjI0ODU1MywgMC43NDQ5OTMsIDEuMTgyMzEsIDEuNzUxOTcsIDIuOTQ2ODcsIDMuNjc5NDgiLCBcCi0gICAgICAgICAgIjAuMTY0MDk4LCAwLjI0ODUwMiwgMC43NDQ4MzUsIDEuMTY4ODIsIDEuNzU5NzIsIDIuOTQ2ODgsIDMuNjc5MzgiLCBcCi0gICAgICAgICAgIjAuMTY1NzY4LCAwLjI0ODQ4MiwgMC43NDIyMTQsIDEuMTgxLCAxLjc2MjI1LCAyLjk0NjksIDMuNjc4NjkiLCBcCi0gICAgICAgICAgIjAuMTY0MTAxLCAwLjI0ODQ5NSwgMC43NDMxODQsIDEuMTgwOTQsIDEuNzYyMjMsIDIuOTQ2ODksIDMuNjc3OTIiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzQ4MjczLCAwLjM5NzgzNCwgMC42Nzg1NTEsIDAuOTI1MzYxLCAxLjI1NzY2LCAxLjkxODUyLCAyLjMzMTU4IiwgXAotICAgICAgICAgICIwLjM2MDEwNSwgMC40MDk5MTksIDAuNjkwMzksIDAuOTM4NjU0LCAxLjI2OTUsIDEuOTMwMzUsIDIuMzQzNDgiLCBcCi0gICAgICAgICAgIjAuMzc1NDI3LCAwLjQyNTE3NCwgMC43MDU3MjYsIDAuOTUxNzgyLCAxLjI4MzMxLCAxLjk0NTY4LCAyLjM1ODc0IiwgXAotICAgICAgICAgICIwLjM5MDc3NywgMC40NDA1NTIsIDAuNzIxMDg2LCAwLjk2Nzc1OCwgMS4zMDAxOSwgMS45NjA5OCwgMi4zNzQxMSIsIFwKLSAgICAgICAgICAiMC40MDYxODgsIDAuNDU1OTMyLCAwLjczNjQ5MSwgMC45ODI5MDQsIDEuMzE1NiwgMS45NzYzNywgMi4zODk1NCIsIFwKLSAgICAgICAgICAiMC40MzA1MTQsIDAuNDgwMDgsIDAuNzYwNzk1LCAxLjAwOTA1LCAxLjMzNzcyLCAyLjAwMDc5LCAyLjQwNjAyIiwgXAotICAgICAgICAgICIwLjQ1MTQzNywgMC41MDEwODcsIDAuNzgxNzE1LCAxLjAyOTk4LCAxLjM2MDgyLCAyLjAyMTU2LCAyLjQzNDg0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE4MjgxLCAwLjI3ODMyNCwgMC44MzIxODQsIDEuMzIyMjcsIDEuOTc2MDIsIDMuMjg0MzIsIDQuMTAyNjUiLCBcCi0gICAgICAgICAgIjAuMTgyMjU0LCAwLjI3Nzg4MiwgMC44MzIzMTEsIDEuMzIyNzMsIDEuOTc2NDksIDMuMjg2NTksIDQuMTAzNzkiLCBcCi0gICAgICAgICAgIjAuMTgyNjI3LCAwLjI3Nzg5NSwgMC44MzIzMDgsIDEuMzIwNDUsIDEuOTc2MSwgMy4yODU0NiwgNC4xMDM1OSIsIFwKLSAgICAgICAgICAiMC4xODI4MjgsIDAuMjc3OTM5LCAwLjgzMjMwNSwgMS4zMjE4NCwgMS45NzYxMSwgMy4yODU1NCwgNC4xMDMyNCIsIFwKLSAgICAgICAgICAiMC4xODI4MTYsIDAuMjc3OTIxLCAwLjgzMjMxNiwgMS4zMjIzNSwgMS45NzYwNiwgMy4yODU2LCA0LjEwMzEzIiwgXAotICAgICAgICAgICIwLjE4MjgxNCwgMC4yNzgzMDcsIDAuODMyMzEsIDEuMzIyNzQsIDEuOTc1MjcsIDMuMjg1MzcsIDQuMTA2NDkiLCBcCi0gICAgICAgICAgIjAuMTgyODAyLCAwLjI3Nzk5LCAwLjgzMjM0OSwgMS4zMjI3MSwgMS45NzYxMSwgMy4yODU2LCA0LjEwMyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcHJlc2V0OwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yNjcwMDYsIDAuMzA5OTksIDAuNTUyMjMyLCAwLjc2Njc5NiwgMS4wNTI2MiwgMS42MjI4LCAxLjk4MDEzIiwgXAotICAgICAgICAgICIwLjI3ODUsIDAuMzIxNDkyLCAwLjU2Mzc4MSwgMC43Nzc4MTMsIDEuMDYzNDUsIDEuNjM1OTQsIDEuOTg5NTEiLCBcCi0gICAgICAgICAgIjAuMjkyNzcyLCAwLjMzNTc0MiwgMC41Nzc5NTQsIDAuNzkyNDQzLCAxLjA3NzQxLCAxLjY1MDAxLCAyLjAwNTY1IiwgXAotICAgICAgICAgICIwLjMwNzUyOCwgMC4zNTA1MiwgMC41OTI4MDcsIDAuODA2ODQzLCAxLjA5MjQ4LCAxLjY2NDk5LCAyLjAxODUzIiwgXAotICAgICAgICAgICIwLjMyMjIzMiwgMC4zNjUyMTIsIDAuNjA4NDQ4LCAwLjgyMTI4MSwgMS4xMDY2NywgMS42NzkxNCwgMi4wMzU5OSIsIFwKLSAgICAgICAgICAiMC4zNDU0MiwgMC4zODg0MiwgMC42MzA2MjgsIDAuODQ0NjM5LCAxLjEzMDMyLCAxLjcwMjk0LCAyLjA1NjE0IiwgXAotICAgICAgICAgICIwLjM2NTIxNywgMC40MDgxODQsIDAuNjUwNDA4LCAwLjg2NDk4MiwgMS4xNTA1NSwgMS43MjI1OSwgMi4wNzc1NSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNjM3NCwgMC4yNDgxODksIDAuNzQ3NDI4LCAxLjE4NzgxLCAxLjc3NDI0LCAyLjk0NjIzLCAzLjY0MjU2IiwgXAotICAgICAgICAgICIwLjE2MzksIDAuMjQ4MTc1LCAwLjc0NzQxNSwgMS4xODc3NCwgMS43NzQyNiwgMi45NDUzLCAzLjY3OTQxIiwgXAotICAgICAgICAgICIwLjE2MzgyMiwgMC4yNDgxNjEsIDAuNzQ3NDg1LCAxLjE4Nzc3LCAxLjc3NDE5LCAyLjk0NDAzLCAzLjY3OTE5IiwgXAotICAgICAgICAgICIwLjE2Mzc2NCwgMC4yNDgxNSwgMC43NDc1MTEsIDEuMTg3NzYsIDEuNzc0MjYsIDIuOTQzNzgsIDMuNjc5NDEiLCBcCi0gICAgICAgICAgIjAuMTY1NTQ0LCAwLjI0ODU0OSwgMC43NDc1NjMsIDEuMTg3NzEsIDEuNzc0MjUsIDIuOTQ2NDQsIDMuNjYzMzMiLCBcCi0gICAgICAgICAgIjAuMTYzNzgxLCAwLjI0ODA2MSwgMC43NDc1NzMsIDEuMTg3NzQsIDEuNzc0MjUsIDIuOTQ1ODIsIDMuNjc5NDEiLCBcCi0gICAgICAgICAgIjAuMTYzNzc4LCAwLjI0ODE2NiwgMC43NDc1MTcsIDEuMTg3NzYsIDEuNzc0MjUsIDIuOTQzMjksIDMuNjc5NDEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzNDE3LCAwLjAwMzQyMiwgMC4wMDM0MjksIDAuMDAzNDMsIDAuMDAzNDMxLCAwLjAwMzQzMSwgMC4wMDM0MzEiLCBcCi0gICAgICAgICAgIjAuMDAzNDEsIDAuMDAzNDE1LCAwLjAwMzQyMiwgMC4wMDM0MjMsIDAuMDAzNDI0LCAwLjAwMzQyNSwgMC4wMDM0MjUiLCBcCi0gICAgICAgICAgIjAuMDAzNDA0LCAwLjAwMzQwOSwgMC4wMDM0MTYsIDAuMDAzNDE3LCAwLjAwMzQxOCwgMC4wMDM0MTksIDAuMDAzNDE5IiwgXAotICAgICAgICAgICIwLjAwMzM5OSwgMC4wMDM0MDQsIDAuMDAzNDExLCAwLjAwMzQxMywgMC4wMDM0MTMsIDAuMDAzNDE0LCAwLjAwMzQxNCIsIFwKLSAgICAgICAgICAiMC4wMDMzOTYsIDAuMDAzNDAxLCAwLjAwMzQwOCwgMC4wMDM0MDksIDAuMDAzNDEsIDAuMDAzNDExLCAwLjAwMzQxMSIsIFwKLSAgICAgICAgICAiMC4wMDMzOTEsIDAuMDAzMzk2LCAwLjAwMzQwMywgMC4wMDM0MDQsIDAuMDAzNDA1LCAwLjAwMzQwNSwgMC4wMDM0MDUiLCBcCi0gICAgICAgICAgIjAuMDAzMzg4LCAwLjAwMzM5MywgMC4wMDM0LCAwLjAwMzQwMiwgMC4wMDM0MDIsIDAuMDAzNDAzLCAwLjAwMzQwMyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzIzNywgMC4wMDMyNDMsIDAuMDAzMjUxLCAwLjAwMzI1MywgMC4wMDMyNTQsIDAuMDAzMjU0LCAwLjAwMzI1NCIsIFwKLSAgICAgICAgICAiMC4wMDMyMywgMC4wMDMyMzYsIDAuMDAzMjQ0LCAwLjAwMzI0NSwgMC4wMDMyNDYsIDAuMDAzMjQ3LCAwLjAwMzI0NyIsIFwKLSAgICAgICAgICAiMC4wMDMyMjUsIDAuMDAzMjMxLCAwLjAwMzIzOSwgMC4wMDMyNCwgMC4wMDMyNDEsIDAuMDAzMjQyLCAwLjAwMzI0MiIsIFwKLSAgICAgICAgICAiMC4wMDMyMjEsIDAuMDAzMjI2LCAwLjAwMzIzNCwgMC4wMDMyMzYsIDAuMDAzMjM3LCAwLjAwMzIzOCwgMC4wMDMyMzgiLCBcCi0gICAgICAgICAgIjAuMDAzMjE5LCAwLjAwMzIyNSwgMC4wMDMyMzIsIDAuMDAzMjM0LCAwLjAwMzIzNSwgMC4wMDMyMzYsIDAuMDAzMjM2IiwgXAotICAgICAgICAgICIwLjAwMzIxOCwgMC4wMDMyMjMsIDAuMDAzMjMxLCAwLjAwMzIzMywgMC4wMDMyMzQsIDAuMDAzMjM1LCAwLjAwMzIzNSIsIFwKLSAgICAgICAgICAiMC4wMDMyMiwgMC4wMDMyMjYsIDAuMDAzMjM0LCAwLjAwMzIzNiwgMC4wMDMyMzYsIDAuMDAzMjM3LCAwLjAwMzIzNyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDM2NTQsIDAuMDAzNjU5LCAwLjAwMzY2NiwgMC4wMDM2NjgsIDAuMDAzNjY4LCAwLjAwMzY2OSwgMC4wMDM2NjkiLCBcCi0gICAgICAgICAgIjAuMDAzNjQ3LCAwLjAwMzY1MiwgMC4wMDM2NTksIDAuMDAzNjYsIDAuMDAzNjYxLCAwLjAwMzY2MiwgMC4wMDM2NjIiLCBcCi0gICAgICAgICAgIjAuMDAzNjQxLCAwLjAwMzY0NiwgMC4wMDM2NTMsIDAuMDAzNjU1LCAwLjAwMzY1NSwgMC4wMDM2NTYsIDAuMDAzNjU2IiwgXAotICAgICAgICAgICIwLjAwMzYzNywgMC4wMDM2NDIsIDAuMDAzNjQ5LCAwLjAwMzY1MSwgMC4wMDM2NTIsIDAuMDAzNjUyLCAwLjAwMzY1MiIsIFwKLSAgICAgICAgICAiMC4wMDM2MzMsIDAuMDAzNjM4LCAwLjAwMzY0NSwgMC4wMDM2NDYsIDAuMDAzNjQ3LCAwLjAwMzY0OCwgMC4wMDM2NDgiLCBcCi0gICAgICAgICAgIjAuMDAzNjI4LCAwLjAwMzYzNCwgMC4wMDM2NDEsIDAuMDAzNjQyLCAwLjAwMzY0MywgMC4wMDM2NDQsIDAuMDAzNjQ0IiwgXAotICAgICAgICAgICIwLjAwMzYyNCwgMC4wMDM2MjksIDAuMDAzNjM2LCAwLjAwMzYzOCwgMC4wMDM2MzgsIDAuMDAzNjM5LCAwLjAwMzYzOSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihzY2FsYXIpIHsKLSAgICAgICAgdmFsdWVzKCIwIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihRTikgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjEzMjgzNTsKLSAgICBmdW5jdGlvbiA6ICJRQklOVCI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3NlbnNlIDogbm9uX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiByaXNpbmdfZWRnZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzczNjIsIDAuNDE2ODA2LCAwLjY2MTkzOCwgMC44NzgyNjEsIDEuMTY2NzQsIDEuNzQzNjcsIDIuMTA0MjUiLCBcCi0gICAgICAgICAgIjAuMzg1NDMxLCAwLjQyODY0NywgMC42NzM3ODUsIDAuODkwMTA1LCAxLjE3ODU3LCAxLjc1NTY2LCAyLjExNjA5IiwgXAotICAgICAgICAgICIwLjQwMDc3MiwgMC40NDM5ODEsIDAuNjg5MDk2LCAwLjkwNTQ3MSwgMS4xOTM5LCAxLjc3MDgyLCAyLjEzMTM4IiwgXAotICAgICAgICAgICIwLjQxNjEzNCwgMC40NTkzMzksIDAuNzA0NDYxLCAwLjkyMDc4NSwgMS4yMDkyOCwgMS43ODYyLCAyLjE0Njc5IiwgXAotICAgICAgICAgICIwLjQzMTUyMSwgMC40NzQ3MjcsIDAuNzE5ODg2LCAwLjkzNjIxNiwgMS4yMjQ3LCAxLjgwMTYzLCAyLjE2MjIiLCBcCi0gICAgICAgICAgIjAuNDU1ODM5LCAwLjQ5OTAzOCwgMC43NDQxNywgMC45NjA0OTUsIDEuMjQ4OTgsIDEuODI1ODgsIDIuMTg2NSIsIFwKLSAgICAgICAgICAiMC40NzY3NzYsIDAuNTE5OTYzLCAwLjc2NTA5MiwgMC45ODE0MjYsIDEuMjY5ODksIDEuODQ2ODUsIDIuMjA3MzgiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTYwOTYzLCAwLjI0ODEzMywgMC43NDU5MSwgMS4xODMxOSwgMS43NzEzOSwgMi45NDMxOCwgMy42NzU2MiIsIFwKLSAgICAgICAgICAiMC4xNjA2MDcsIDAuMjQ3NjE1LCAwLjc0NTg4NywgMS4xODUzNSwgMS43NzEzNCwgMi45NDQxOCwgMy42NzU1IiwgXAotICAgICAgICAgICIwLjE2MDczLCAwLjI0NzYwNywgMC43NDU4ODMsIDEuMTgyNjIsIDEuNzcwOTcsIDIuOTQzMDMsIDMuNjc1MjgiLCBcCi0gICAgICAgICAgIjAuMTYwOTc2LCAwLjI0NzY1NywgMC43NDU4ODEsIDEuMTgzMjEsIDEuNzcxMzgsIDIuOTQzMTQsIDMuNjc1NTQiLCBcCi0gICAgICAgICAgIjAuMTYwOTc5LCAwLjI0NzY0MiwgMC43NDU4OTYsIDEuMTgzMTUsIDEuNzcxMzksIDIuOTQzMTYsIDMuNjc1NTIiLCBcCi0gICAgICAgICAgIjAuMTYxMDA0LCAwLjI0ODEyNCwgMC43NDU4ODgsIDEuMTg1MzEsIDEuNzcxMSwgMi45NDI5OSwgMy42NjkyMiIsIFwKLSAgICAgICAgICAiMC4xNjA5NTksIDAuMjQ3NzM0LCAwLjc0NTkyNSwgMS4xODUzOCwgMS43NzEzNSwgMi45NDMyOSwgMy42NzU0MSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMzE1MjMsIDAuMzgxMDgsIDAuNjYyMTY1LCAwLjkwOTk0OCwgMS4yNDAzOCwgMS45MDE0MSwgMi4zMTQ1OCIsIFwKLSAgICAgICAgICAiMC4zNDMzMDcsIDAuMzkyODQzLCAwLjY3Mzg4MiwgMC45MjE3MjgsIDEuMjUyMTYsIDEuOTEzMTksIDIuMzI2MzciLCBcCi0gICAgICAgICAgIjAuMzU4NTk3LCAwLjQwODE0OCwgMC42ODkwOTUsIDAuOTM2OTg4LCAxLjI2NzQ1LCAxLjkyODQ2LCAyLjM0MTU4IiwgXAotICAgICAgICAgICIwLjM3MzkxLCAwLjQyMzQ0NSwgMC43MDQ0NTYsIDAuOTUyMzI4LCAxLjI4Mjc3LCAxLjk0MzgsIDIuMzU2OTgiLCBcCi0gICAgICAgICAgIjAuMzg5Mjg4LCAwLjQzODgzNywgMC43MTk3ODUsIDAuOTY3Njc1LCAxLjI5ODE0LCAxLjk1OTE1LCAyLjM3MjI3IiwgXAotICAgICAgICAgICIwLjQxMzQ0NiwgMC40NjI5OTcsIDAuNzQzOTU5LCAwLjk5MTkwMiwgMS4zMjIzMiwgMS45ODMzNCwgMi4zOTY2MSIsIFwKLSAgICAgICAgICAiMC40MzQxMDcsIDAuNDgzNjYxLCAwLjc2NDYxNywgMS4wMTI1MywgMS4zNDI5NiwgMi4wMDQsIDIuNDE3MjgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTc5MywgMC4yNzcxMTIsIDAuODMzNjAxLCAxLjMyNDc4LCAxLjk4MDEzLCAzLjI5MTY3LCA0LjExMTA4IiwgXAotICAgICAgICAgICIwLjE3OTMwMiwgMC4yNzY5NDYsIDAuODMzMjQ2LCAxLjMyNDc4LCAxLjk4MDExLCAzLjI5MTY3LCA0LjExMTA5IiwgXAotICAgICAgICAgICIwLjE3OTMwNCwgMC4yNzcwNCwgMC44MzM4MDEsIDEuMzI0ODIsIDEuOTgwMzYsIDMuMjkxNjUsIDQuMTA5OTYiLCBcCi0gICAgICAgICAgIjAuMTc5MzAxLCAwLjI3Njk5LCAwLjgzMzM1OSwgMS4zMjQ5OSwgMS45ODAxOCwgMy4yOTE2NywgNC4xMTExMSIsIFwKLSAgICAgICAgICAiMC4xNzkzMDMsIDAuMjc3MDM4LCAwLjgzMzY5MiwgMS4zMjQ4NSwgMS45ODAzNywgMy4yOTEyOCwgNC4xMTA0OSIsIFwKLSAgICAgICAgICAiMC4xNzk0NjcsIDAuMjc3MDM5LCAwLjgzMzY2NCwgMS4zMjU2NCwgMS45ODA0NSwgMy4yOTE3MiwgNC4xMTExNyIsIFwKLSAgICAgICAgICAiMC4xNzkzMDUsIDAuMjc3MDM5LCAwLjgzMzY5MiwgMS4zMjU3OSwgMS45ODA0NSwgMy4yOTE2OSwgNC4xMTExNyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogY2xlYXI7Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMxMTA4NywgMC4zNjA2NDMsIDAuNjQxNTM1LCAwLjg4OTQxNSwgMS4yMTk5NCwgMS44ODA5MywgMi4yOTQxMSIsIFwKLSAgICAgICAgICAiMC4zMjI1OTQsIDAuMzcyMTUxLCAwLjY1MzExNywgMC45MDA5OTMsIDEuMjMxNTIsIDEuODkyNjcsIDIuMzA1NiIsIFwKLSAgICAgICAgICAiMC4zMzY4MzksIDAuMzg2Mzg2LCAwLjY2NzI5LCAwLjkxNTE5NSwgMS4yNDU2OCwgMS45MDY4MywgMi4zMTk4NSIsIFwKLSAgICAgICAgICAiMC4zNTE2MjUsIDAuNDAxMTgyLCAwLjY4MjE0NSwgMC45MzAwMjIsIDEuMjYwNTUsIDEuOTIxNywgMi4zMzQ2MyIsIFwKLSAgICAgICAgICAiMC4zNjYzNTEsIDAuNDE1OTA0LCAwLjY5Njg2NSwgMC45NDQ2NjcsIDEuMjc1MTcsIDEuOTM2MjcsIDIuMzQ5NDIiLCBcCi0gICAgICAgICAgIjAuMzg5NTY5LCAwLjQzOTEyMywgMC43MjAwMzQsIDAuOTY3OTA5LCAxLjI5ODQ0LCAxLjk1OTYsIDIuMzcyNSIsIFwKLSAgICAgICAgICAiMC40MDkyNjcsIDAuNDU4ODE3LCAwLjczOTcyMywgMC45ODc1OTgsIDEuMzE4MTEsIDEuOTc5MjgsIDIuMzkyMjciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTc5Mzk0LCAwLjI3NzA0LCAwLjgzMzk5OCwgMS4zMjU0MywgMS45ODA4NywgMy4yOTI4NSwgNC4xMDg5IiwgXAotICAgICAgICAgICIwLjE3OTUzOCwgMC4yNzcwNDQsIDAuODMzOTYxLCAxLjMyNTM3LCAxLjk4MDg3LCAzLjI5Mjc4LCA0LjExMDkxIiwgXAotICAgICAgICAgICIwLjE3OTI4NiwgMC4yNzcwNDYsIDAuODMzNzg4LCAxLjMyNTQzLCAxLjk4MDg2LCAzLjI5Mjg1LCA0LjExMTA0IiwgXAotICAgICAgICAgICIwLjE3OTMwMiwgMC4yNzcwNDYsIDAuODM0MDI1LCAxLjMyNTQsIDEuOTgwOTIsIDMuMjkxODYsIDQuMTExMDEiLCBcCi0gICAgICAgICAgIjAuMTc5MzI1LCAwLjI3NzAzNywgMC44MzM4MTMsIDEuMzI1MzUsIDEuOTgwOTksIDMuMjkxNzgsIDQuMTA5NDkiLCBcCi0gICAgICAgICAgIjAuMTc5Mjk3LCAwLjI3NzAzLCAwLjgzMzgxNiwgMS4zMjUzNywgMS45ODA4NywgMy4yOTE4MywgNC4xMTA4OCIsIFwKLSAgICAgICAgICAiMC4xNzk0NywgMC4yNzcwNDcsIDAuODMzNzk3LCAxLjMyNTM5LCAxLjk4MDkxLCAzLjI5MTgyLCA0LjExMDkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzMjM3LCAwLjAwMzI0MywgMC4wMDMyNTEsIDAuMDAzMjUzLCAwLjAwMzI1NCwgMC4wMDMyNTQsIDAuMDAzMjU0IiwgXAotICAgICAgICAgICIwLjAwMzIzLCAwLjAwMzIzNiwgMC4wMDMyNDQsIDAuMDAzMjQ1LCAwLjAwMzI0NiwgMC4wMDMyNDcsIDAuMDAzMjQ3IiwgXAotICAgICAgICAgICIwLjAwMzIyNSwgMC4wMDMyMzEsIDAuMDAzMjM5LCAwLjAwMzI0LCAwLjAwMzI0MSwgMC4wMDMyNDIsIDAuMDAzMjQyIiwgXAotICAgICAgICAgICIwLjAwMzIyMSwgMC4wMDMyMjYsIDAuMDAzMjM0LCAwLjAwMzIzNiwgMC4wMDMyMzcsIDAuMDAzMjM4LCAwLjAwMzIzOCIsIFwKLSAgICAgICAgICAiMC4wMDMyMTksIDAuMDAzMjI1LCAwLjAwMzIzMiwgMC4wMDMyMzQsIDAuMDAzMjM1LCAwLjAwMzIzNiwgMC4wMDMyMzYiLCBcCi0gICAgICAgICAgIjAuMDAzMjE4LCAwLjAwMzIyMywgMC4wMDMyMzEsIDAuMDAzMjMzLCAwLjAwMzIzNCwgMC4wMDMyMzUsIDAuMDAzMjM1IiwgXAotICAgICAgICAgICIwLjAwMzIyLCAwLjAwMzIyNiwgMC4wMDMyMzQsIDAuMDAzMjM2LCAwLjAwMzIzNiwgMC4wMDMyMzcsIDAuMDAzMjM3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzNDE3LCAwLjAwMzQyMiwgMC4wMDM0MjksIDAuMDAzNDMsIDAuMDAzNDMxLCAwLjAwMzQzMSwgMC4wMDM0MzEiLCBcCi0gICAgICAgICAgIjAuMDAzNDEsIDAuMDAzNDE1LCAwLjAwMzQyMiwgMC4wMDM0MjMsIDAuMDAzNDI0LCAwLjAwMzQyNSwgMC4wMDM0MjUiLCBcCi0gICAgICAgICAgIjAuMDAzNDA0LCAwLjAwMzQwOSwgMC4wMDM0MTYsIDAuMDAzNDE3LCAwLjAwMzQxOCwgMC4wMDM0MTksIDAuMDAzNDE5IiwgXAotICAgICAgICAgICIwLjAwMzM5OSwgMC4wMDM0MDQsIDAuMDAzNDExLCAwLjAwMzQxMywgMC4wMDM0MTMsIDAuMDAzNDE0LCAwLjAwMzQxNCIsIFwKLSAgICAgICAgICAiMC4wMDMzOTYsIDAuMDAzNDAxLCAwLjAwMzQwOCwgMC4wMDM0MDksIDAuMDAzNDEsIDAuMDAzNDExLCAwLjAwMzQxMSIsIFwKLSAgICAgICAgICAiMC4wMDMzOTEsIDAuMDAzMzk2LCAwLjAwMzQwMywgMC4wMDM0MDQsIDAuMDAzNDA1LCAwLjAwMzQwNSwgMC4wMDM0MDUiLCBcCi0gICAgICAgICAgIjAuMDAzMzg4LCAwLjAwMzM5MywgMC4wMDM0LCAwLjAwMzQwMiwgMC4wMDM0MDIsIDAuMDAzNDAzLCAwLjAwMzQwMyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDM2NTQsIDAuMDAzNjU5LCAwLjAwMzY2NiwgMC4wMDM2NjgsIDAuMDAzNjY4LCAwLjAwMzY2OSwgMC4wMDM2NjkiLCBcCi0gICAgICAgICAgIjAuMDAzNjQ3LCAwLjAwMzY1MiwgMC4wMDM2NTksIDAuMDAzNjYsIDAuMDAzNjYxLCAwLjAwMzY2MiwgMC4wMDM2NjIiLCBcCi0gICAgICAgICAgIjAuMDAzNjQxLCAwLjAwMzY0NiwgMC4wMDM2NTMsIDAuMDAzNjU1LCAwLjAwMzY1NSwgMC4wMDM2NTYsIDAuMDAzNjU2IiwgXAotICAgICAgICAgICIwLjAwMzYzNywgMC4wMDM2NDIsIDAuMDAzNjQ5LCAwLjAwMzY1MSwgMC4wMDM2NTIsIDAuMDAzNjUyLCAwLjAwMzY1MiIsIFwKLSAgICAgICAgICAiMC4wMDM2MzMsIDAuMDAzNjM4LCAwLjAwMzY0NSwgMC4wMDM2NDYsIDAuMDAzNjQ3LCAwLjAwMzY0OCwgMC4wMDM2NDgiLCBcCi0gICAgICAgICAgIjAuMDAzNjI4LCAwLjAwMzYzNCwgMC4wMDM2NDEsIDAuMDAzNjQyLCAwLjAwMzY0MywgMC4wMDM2NDQsIDAuMDAzNjQ0IiwgXAotICAgICAgICAgICIwLjAwMzYyNCwgMC4wMDM2MjksIDAuMDAzNjM2LCAwLjAwMzYzOCwgMC4wMDM2MzgsIDAuMDAzNjM5LCAwLjAwMzYzOSIpOwotICAgICAgfQotICAgICAgcmlzZV9wb3dlcihzY2FsYXIpIHsKLSAgICAgICAgdmFsdWVzKCIwIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTRSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxMjU4MTc7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxMjU4MTc7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxMjU4MTY7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzNTM3LCAwLjAwMzUyNCwgMC4wMDM1MTksIDAuMDAzNTE3LCAwLjAwMzUxNywgMC4wMDM1MTQsIDAuMDAzNTE1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA0NjM0LCAwLjAwNDYxNiwgMC4wMDQ2MDQsIDAuMDA0NTk3LCAwLjAwNDU5LCAwLjAwNDU4NSwgMC4wMDQ1ODQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiU04iOwotICAgICAgc2RmX2NvbmQgOiAiU04gPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDQzNzUsIC0wLjAzMjUsIC0wLjAxMzc1LCAtMC4wMDEyNSwgMC4wMTEyNSwgMC4wMzM3NSwgMC4wNDg3NSIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNDM3NSwgLTAuMDMxMjUsIC0wLjAxMjUsIDAsIDAuMDIyNSwgMC4wMzc1IiwgXAotICAgICAgICAgICItMC4wNjc1LCAtMC4wNTYyNSwgLTAuMDQzNzUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgMC4wMDM3NSwgMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjA4NjI1LCAtMC4wNzUsIC0wLjA1NjI1LCAtMC4wNDM3NSwgLTAuMDMxMjUsIC0wLjAwODc1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wOTg3NSwgLTAuMDg3NSwgLTAuMDc1LCAtMC4wNjI1LCAtMC4wNDM3NSwgLTAuMDI3NSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjEyMTI1LCAtMC4xMSwgLTAuMDk3NSwgLTAuMDc4NzUsIC0wLjA2NjI1LCAtMC4wNDM3NSwgLTAuMDI4NzUiLCBcCi0gICAgICAgICAgIi0wLjEzNjI1LCAtMC4xMjUsIC0wLjExMjUsIC0wLjA5Mzc1LCAtMC4wODEyNSwgLTAuMDU4NzUsIC0wLjA0Mzc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDEyNSwgLTAuMDAxMjUsIDAuMDExMjUsIDAuMDIzNzUsIDAuMDQyNSwgMC4wNTg3NSwgMC4wOCIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxMjUsIDAsIDAuMDE4NzUsIDAuMDMxMjUsIDAuMDQ3NSwgMC4wNjg3NSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAyNSwgLTAuMDEyNSwgMC4wMDYyNSwgMC4wMTg3NSwgMC4wMzUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAxMjUsIDAuMDA2MjUsIDAuMDIyNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDYxMjUsIC0wLjA1LCAtMC4wMzc1LCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAuMDEsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjA3NzUsIC0wLjA2NjI1LCAtMC4wNTM3NSwgLTAuMDQxMjUsIC0wLjAyODc1LCAtMC4wMDYyNSwgMC4wMDg3NSIsIFwKLSAgICAgICAgICAiLTAuMDkyNSwgLTAuMDgxMjUsIC0wLjA3NSwgLTAuMDU2MjUsIC0wLjA0Mzc1LCAtMC4wMjEyNSwgLTAuMDA2MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlNOIjsKLSAgICAgIHNkZl9jb25kIDogIlNOID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIzMTI1LCAwLjIyLCAwLjIwMTI1LCAwLjE4MjUsIDAuMTcsIDAuMTQxMjUsIDAuMTIiLCBcCi0gICAgICAgICAgIjAuMjQyNSwgMC4yMzEyNSwgMC4yMTI1LCAwLjIsIDAuMTgxMjUsIDAuMTUyNSwgMC4xMzEyNSIsIFwKLSAgICAgICAgICAiMC4yNTUsIDAuMjQzNzUsIDAuMjMxMjUsIDAuMjEyNSwgMC4xOTM3NSwgMC4xNzEyNSwgMC4xNSIsIFwKLSAgICAgICAgICAiMC4yNzM3NSwgMC4yNjI1LCAwLjI0Mzc1LCAwLjIyNSwgMC4yMTI1LCAwLjE4Mzc1LCAwLjE2MjUiLCBcCi0gICAgICAgICAgIjAuMjg2MjUsIDAuMjc1LCAwLjI1NjI1LCAwLjI0Mzc1LCAwLjIyNSwgMC4xOTYyNSwgMC4xODEyNSIsIFwKLSAgICAgICAgICAiMC4zMDg3NSwgMC4yOTc1LCAwLjI3ODc1LCAwLjI2LCAwLjI0NzUsIDAuMjE4NzUsIDAuMTk3NSIsIFwKLSAgICAgICAgICAiMC4zMjM3NSwgMC4zMTI1LCAwLjI5Mzc1LCAwLjI3NSwgMC4yNjI1LCAwLjIzMzc1LCAwLjIxMjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMzc1LCAwLjIyLCAwLjIwNzUsIDAuMTk1LCAwLjE3NjI1LCAwLjE2LCAwLjE0NSIsIFwKLSAgICAgICAgICAiMC4yNDg3NSwgMC4yMzc1LCAwLjIxODc1LCAwLjIwNjI1LCAwLjE5Mzc1LCAwLjE3MTI1LCAwLjE1NjI1IiwgXAotICAgICAgICAgICIwLjI2MTI1LCAwLjI1LCAwLjIzMTI1LCAwLjIxODc1LCAwLjIwNjI1LCAwLjE5LCAwLjE3NSIsIFwKLSAgICAgICAgICAiMC4yNzM3NSwgMC4yNjI1LCAwLjI0Mzc1LCAwLjIzMTI1LCAwLjIxODc1LCAwLjIwMjUsIDAuMTg3NSIsIFwKLSAgICAgICAgICAiMC4yODYyNSwgMC4yNzUsIDAuMjYyNSwgMC4yNDM3NSwgMC4yMzEyNSwgMC4yMTUsIDAuMiIsIFwKLSAgICAgICAgICAiMC4zMDg3NSwgMC4yOTEyNSwgMC4yNzg3NSwgMC4yNjYyNSwgMC4yNDc1LCAwLjIzMTI1LCAwLjIxNjI1IiwgXAotICAgICAgICAgICIwLjMxNzUsIDAuMzA2MjUsIDAuMjkzNzUsIDAuMjc1LCAwLjI2MjUsIDAuMjQ2MjUsIDAuMjMxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFNJKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2NTk4NzQ7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjU4MDQyOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDY1OTg3NDsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDI2NjksIDAuMDAyNjU5LCAwLjAwMjY1NCwgMC4wMDI2NTEsIDAuMDAyNjQ4LCAwLjAwMjY0NCwgMC4wMDI2NDIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDM3NzcsIDAuMDAzNzcyLCAwLjAwMzc3LCAwLjAwMzc2OCwgMC4wMDM3NjYsIDAuMDAzNzY1LCAwLjAwMzc2MyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJTRSZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJTRV9FUV8xX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMTMxMjUsIC0wLjEyLCAtMC4xMDc1LCAtMC4wOTUsIC0wLjA4ODc1LCAtMC4wNzI1LCAtMC4wNTc1IiwgXAotICAgICAgICAgICItMC4xNDI1LCAtMC4xMzEyNSwgLTAuMTE4NzUsIC0wLjEwNjI1LCAtMC4xLCAtMC4wODM3NSwgLTAuMDY4NzUiLCBcCi0gICAgICAgICAgIi0wLjE1NSwgLTAuMTQzNzUsIC0wLjEzMTI1LCAtMC4xMjUsIC0wLjExMjUsIC0wLjA5NjI1LCAtMC4wODc1IiwgXAotICAgICAgICAgICItMC4xNjc1LCAtMC4xNTYyNSwgLTAuMTUsIC0wLjEzNzUsIC0wLjEyNSwgLTAuMTE1LCAtMC4xIiwgXAotICAgICAgICAgICItMC4xOCwgLTAuMTY4NzUsIC0wLjE2MjUsIC0wLjE1LCAtMC4xMzc1LCAtMC4xMjc1LCAtMC4xMTI1IiwgXAotICAgICAgICAgICItMC4yMDI1LCAtMC4xOTEyNSwgLTAuMTg1LCAtMC4xNzI1LCAtMC4xNiwgLTAuMTUsIC0wLjEzNSIsIFwKLSAgICAgICAgICAiLTAuMjIzNzUsIC0wLjIxMjUsIC0wLjIsIC0wLjE4NzUsIC0wLjE4MTI1LCAtMC4xNjUsIC0wLjE1NjI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDI1LCAtMC4wMTM3NSwgLTAuMDAxMjUsIDAuMDE3NSwgMC4wMywgMC4wNTI1LCAwLjA2NzUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMjUsIC0wLjAxMjUsIDAuMDA2MjUsIDAuMDE4NzUsIDAuMDQxMjUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAwNjI1LCAwLjAwNjI1LCAwLjAyODc1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICItMC4wNjEyNSwgLTAuMDUsIC0wLjAzNzUsIC0wLjAxODc1LCAtMC4wMDYyNSwgMC4wMTYyNSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDczNzUsIC0wLjA2MjUsIC0wLjA1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIDAuMDAzNzUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjA5LCAtMC4wNzg3NSwgLTAuMDY2MjUsIC0wLjA1Mzc1LCAtMC4wMzUsIC0wLjAxODc1LCAwLjAwMjUiLCBcCi0gICAgICAgICAgIi0wLjEwNSwgLTAuMDkzNzUsIC0wLjA4MTI1LCAtMC4wNjg3NSwgLTAuMDU2MjUsIC0wLjAzMzc1LCAtMC4wMTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJTRSZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJTRV9FUV8xX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjE4NzUsIDAuMjA3NSwgMC4xODg3NSwgMC4xNzYyNSwgMC4xNjM3NSwgMC4xNDEyNSwgMC4xMzI1IiwgXAotICAgICAgICAgICIwLjIzLCAwLjIxODc1LCAwLjIsIDAuMTg3NSwgMC4xNzUsIDAuMTUyNSwgMC4xNDM3NSIsIFwKLSAgICAgICAgICAiMC4yNDI1LCAwLjIzMTI1LCAwLjIxMjUsIDAuMiwgMC4xODc1LCAwLjE3MTI1LCAwLjE1NjI1IiwgXAotICAgICAgICAgICIwLjI1NSwgMC4yNDM3NSwgMC4yMzEyNSwgMC4yMTI1LCAwLjIsIDAuMTgzNzUsIDAuMTY4NzUiLCBcCi0gICAgICAgICAgIjAuMjczNzUsIDAuMjU2MjUsIDAuMjQzNzUsIDAuMjMxMjUsIDAuMjEyNSwgMC4xOTYyNSwgMC4xODEyNSIsIFwKLSAgICAgICAgICAiMC4yOTYyNSwgMC4yNzg3NSwgMC4yNjYyNSwgMC4yNDc1LCAwLjIzNSwgMC4yMTg3NSwgMC4yMDM3NSIsIFwKLSAgICAgICAgICAiMC4zMTEyNSwgMC4zLCAwLjI4MTI1LCAwLjI2ODc1LCAwLjI1NjI1LCAwLjI0LCAwLjIyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIxMjUsIDAuMjAxMjUsIDAuMTgyNSwgMC4xNjM3NSwgMC4xNTEyNSwgMC4xMjI1LCAwLjEwMTI1IiwgXAotICAgICAgICAgICIwLjIyMzc1LCAwLjIxMjUsIDAuMTkzNzUsIDAuMTgxMjUsIDAuMTYyNSwgMC4xMzM3NSwgMC4xMTI1IiwgXAotICAgICAgICAgICIwLjIzNjI1LCAwLjIyNSwgMC4yMDYyNSwgMC4xOTM3NSwgMC4xNzUsIDAuMTQ2MjUsIDAuMTMxMjUiLCBcCi0gICAgICAgICAgIjAuMjQ4NzUsIDAuMjM3NSwgMC4yMTg3NSwgMC4yMDYyNSwgMC4xODc1LCAwLjE1ODc1LCAwLjEzNzUiLCBcCi0gICAgICAgICAgIjAuMjYxMjUsIDAuMjUsIDAuMjMxMjUsIDAuMjE4NzUsIDAuMiwgMC4xNzEyNSwgMC4xNSIsIFwKLSAgICAgICAgICAiMC4yODM3NSwgMC4yNjYyNSwgMC4yNTM3NSwgMC4yMzUsIDAuMjIyNSwgMC4xOTM3NSwgMC4xNzI1IiwgXAotICAgICAgICAgICIwLjI5ODc1LCAwLjI4NzUsIDAuMjY4NzUsIDAuMjUsIDAuMjM3NSwgMC4yMDg3NSwgMC4xODc1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTTikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNDAxNDU7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxMzE4Mzg7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNDAxNDU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzMxLCAwLjAwMDMzLCAwLjAwMDMzLCAwLjAwMDMzLCAwLjAwMDMzLCAwLjAwMDMzLCAwLjAwMDMzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzMzLCAwLjAwMDMzMiwgMC4wMDAzMzIsIDAuMDAwMzMyLCAwLjAwMDMzMiwgMC4wMDAzMzIsIDAuMDAwMzMyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRCYhU0UmIVNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9TRV9FUV8wX0FOX1NJX0VRXzAgPT0gMSdiMSI7Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4zMTEwODcsIDAuMzIyNTk0LCAwLjMzNjgzOSwgMC4zNTE2MjUsIDAuMzY2MzUxLCAwLjM4OTU2OSwgMC40MDkyNjciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiByZWNvdmVyeV9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEJiFTRSYhU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1NFX0VRXzBfQU5fU0lfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChyZWNvdmVyeV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDM3NSwgMC4wMjYyNSwgMC4wMTM3NSwgLTAuMDA1LCAtMC4wMjM3NSwgLTAuMDQ2MjUsIC0wLjA2NzUiLCBcCi0gICAgICAgICAgIjAuMDU1LCAwLjAzNzUsIDAuMDI1LCAwLjAwNjI1LCAtMC4wMDYyNSwgLTAuMDM1LCAtMC4wNTYyNSIsIFwKLSAgICAgICAgICAiMC4wNjc1LCAwLjA1NjI1LCAwLjAzNzUsIDAuMDE4NzUsIDAuMDA2MjUsIC0wLjAyMjUsIC0wLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjA4LCAwLjA2ODc1LCAwLjA1LCAwLjAzNzUsIDAuMDE4NzUsIC0wLjAxLCAtMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4wOTI1LCAwLjA4MTI1LCAwLjA2MjUsIDAuMDUsIDAuMDMxMjUsIDAuMDAyNSwgLTAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMTE1LCAwLjEwMzc1LCAwLjA4NSwgMC4wNzI1LCAwLjA1Mzc1LCAwLjAyNSwgMC4wMDM3NSIsIFwKLSAgICAgICAgICAiMC4xMzYyNSwgMC4xMTg3NSwgMC4xMDYyNSwgMC4wODc1LCAwLjA2ODc1LCAwLjA0NjI1LCAwLjAyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJlbW92YWxfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRCYhU0UmIVNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9TRV9FUV8wX0FOX1NJX0VRXzAgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQocmVtb3ZhbF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjI1LCAwLjA3Mzc1LCAwLjA5MjUsIDAuMTA1LCAwLjEyMzc1LCAwLjE0NjI1LCAwLjE2NzUiLCBcCi0gICAgICAgICAgIjAuMDUxMjUsIDAuMDYyNSwgMC4wODEyNSwgMC4wOTM3NSwgMC4xMTI1LCAwLjEzNSwgMC4xNTYyNSIsIFwKLSAgICAgICAgICAiMC4wMzg3NSwgMC4wNSwgMC4wNjg3NSwgMC4wODEyNSwgMC4xLCAwLjEyMjUsIDAuMTQzNzUiLCBcCi0gICAgICAgICAgIjAuMDI2MjUsIDAuMDM3NSwgMC4wNTYyNSwgMC4wNjg3NSwgMC4wODc1LCAwLjExLCAwLjEzMTI1IiwgXAotICAgICAgICAgICIwLjAxMzc1LCAwLjAyNSwgMC4wMzc1LCAwLjA1NjI1LCAwLjA2ODc1LCAwLjA5NzUsIDAuMTE4NzUiLCBcCi0gICAgICAgICAgIi0wLjAwODc1LCAwLjAwMjUsIDAuMDE1LCAwLjAzMzc1LCAwLjA0NjI1LCAwLjA3NSwgMC4wOTYyNSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAxMjUsIDAsIDAuMDEyNSwgMC4wMzEyNSwgMC4wNTM3NSwgMC4wNzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBTREZGU1hMICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKFNERkZTWEwpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4yODc1NDk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgZmYgKE4zNSxRQklOVCkgewotICAgIG5leHRfc3RhdGUgOiAiKChTRSBTSSkgKyAoIVNFIEQpKSI7Ci0gICAgY2xvY2tlZF9vbiA6ICJDSyI7Ci0gICAgcHJlc2V0IDogIighU04pIjsKLSAgfQotICBwaW4oQ0spICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYwNDUwNDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MDQyMDc7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjA0NTA0OwotICAgIGNsb2NrIDogdHJ1ZTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDIwOTQsIDAuMDAyMDgxLCAwLjAwMjA2OSwgMC4wMDIwNjMsIDAuMDAyMDU3LCAwLjAwMjA1LCAwLjAwMjA0OSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNTMxMiwgMC4wMDUzMDEsIDAuMDA1MjksIDAuMDA1MjgxLCAwLjAwNTI3NCwgMC4wMDUyNjUsIDAuMDA1MjYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFEJiFTRSYhU0kmU04iOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1NFX0VRXzBfQU5fU0lfRVFfMF9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuNDEyNjcyLCAwLjQyNDMyOCwgMC40Mzk2MiwgMC40NTUxMTEsIDAuNDcwNDY0LCAwLjQ5NDgxNCwgMC41MTU2MSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMjQxNDQxLCAwLjI1Mjg5LCAwLjI2Nzc5NiwgMC4yODI1OTQsIDAuMjk3MjYyLCAwLjMyMDExNCwgMC4zMzg5MTgiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEQpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDU4MzMxOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDU4MTgwNDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA1ODMzMTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDI4MSwgMC4wMDI4LCAwLjAwMjc5NSwgMC4wMDI3OTIsIDAuMDAyNzg5LCAwLjAwMjc4NiwgMC4wMDI3ODMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDM3OTIsIDAuMDAzNzg3LCAwLjAwMzc4NSwgMC4wMDM3ODMsIDAuMDAzNzgyLCAwLjAwMzc4LCAwLjAwMzc3OSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhU0UmU04iOwotICAgICAgc2RmX2NvbmQgOiAiU0VfRVFfMF9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjEzNzUsIC0wLjEyNjI1LCAtMC4xMTM3NSwgLTAuMTA3NSwgLTAuMDk1LCAtMC4wNzg3NSwgLTAuMDciLCBcCi0gICAgICAgICAgIi0wLjE0ODc1LCAtMC4xMzc1LCAtMC4xMjUsIC0wLjExODc1LCAtMC4xMDYyNSwgLTAuMDksIC0wLjA4MTI1IiwgXAotICAgICAgICAgICItMC4xNjEyNSwgLTAuMTUsIC0wLjE0Mzc1LCAtMC4xMzEyNSwgLTAuMTE4NzUsIC0wLjEwODc1LCAtMC4wOTM3NSIsIFwKLSAgICAgICAgICAiLTAuMTczNzUsIC0wLjE2ODc1LCAtMC4xNTYyNSwgLTAuMTQzNzUsIC0wLjEzMTI1LCAtMC4xMjEyNSwgLTAuMTA2MjUiLCBcCi0gICAgICAgICAgIi0wLjE4NjI1LCAtMC4xODEyNSwgLTAuMTY4NzUsIC0wLjE1NjI1LCAtMC4xNSwgLTAuMTMzNzUsIC0wLjExODc1IiwgXAotICAgICAgICAgICItMC4yMDg3NSwgLTAuMjAzNzUsIC0wLjE5MTI1LCAtMC4xNzg3NSwgLTAuMTcyNSwgLTAuMTU2MjUsIC0wLjE0MTI1IiwgXAotICAgICAgICAgICItMC4yMywgLTAuMjE4NzUsIC0wLjIwNjI1LCAtMC4yLCAtMC4xODc1LCAtMC4xNzEyNSwgLTAuMTYyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAzMTI1LCAtMC4wMiwgLTAuMDAxMjUsIDAuMDExMjUsIDAuMDIzNzUsIDAuMDQ2MjUsIDAuMDYxMjUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzMTI1LCAtMC4wMTI1LCAwLCAwLjAxMjUsIDAuMDM1LCAwLjA1IiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA0Mzc1LCAtMC4wMjUsIC0wLjAxMjUsIDAsIDAuMDIyNSwgMC4wMzc1IiwgXAotICAgICAgICAgICItMC4wNjc1LCAtMC4wNTYyNSwgLTAuMDM3NSwgLTAuMDI1LCAtMC4wMTI1LCAwLjAxLCAwLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDgsIC0wLjA2ODc1LCAtMC4wNSwgLTAuMDM3NSwgLTAuMDI1LCAtMC4wMDI1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjA5NjI1LCAtMC4wODUsIC0wLjA3MjUsIC0wLjA1Mzc1LCAtMC4wNDEyNSwgLTAuMDI1LCAtMC4wMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMTExMjUsIC0wLjEsIC0wLjA4NzUsIC0wLjA3NSwgLTAuMDYyNSwgLTAuMDQsIC0wLjAxODc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhU0UmU04iOwotICAgICAgc2RmX2NvbmQgOiAiU0VfRVFfMF9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIyNSwgMC4yMDc1LCAwLjE5NSwgMC4xODI1LCAwLjE2Mzc1LCAwLjE0NzUsIDAuMTMyNSIsIFwKLSAgICAgICAgICAiMC4yMzYyNSwgMC4yMTg3NSwgMC4yMDYyNSwgMC4xOTM3NSwgMC4xNzUsIDAuMTU4NzUsIDAuMTQzNzUiLCBcCi0gICAgICAgICAgIjAuMjQ4NzUsIDAuMjM3NSwgMC4yMTg3NSwgMC4yMDYyNSwgMC4xOTM3NSwgMC4xNzEyNSwgMC4xNjI1IiwgXAotICAgICAgICAgICIwLjI2MTI1LCAwLjI1LCAwLjIzMTI1LCAwLjIxODc1LCAwLjIwNjI1LCAwLjE5LCAwLjE3NSIsIFwKLSAgICAgICAgICAiMC4yNzM3NSwgMC4yNjI1LCAwLjI1LCAwLjIzMTI1LCAwLjIxODc1LCAwLjIwMjUsIDAuMTg3NSIsIFwKLSAgICAgICAgICAiMC4yOTYyNSwgMC4yODUsIDAuMjY2MjUsIDAuMjUzNzUsIDAuMjQxMjUsIDAuMjI1LCAwLjIxIiwgXAotICAgICAgICAgICIwLjMxNzUsIDAuMzA2MjUsIDAuMjg3NSwgMC4yNzUsIDAuMjYyNSwgMC4yNCwgMC4yMzEyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIxMjUsIDAuMjAxMjUsIDAuMTg4NzUsIDAuMTcsIDAuMTUxMjUsIDAuMTI4NzUsIDAuMTA3NSIsIFwKLSAgICAgICAgICAiMC4yMjM3NSwgMC4yMTI1LCAwLjIsIDAuMTgxMjUsIDAuMTYyNSwgMC4xNCwgMC4xMTg3NSIsIFwKLSAgICAgICAgICAiMC4yMzYyNSwgMC4yMjUsIDAuMjEyNSwgMC4xOTM3NSwgMC4xNzUsIDAuMTUyNSwgMC4xMzEyNSIsIFwKLSAgICAgICAgICAiMC4yNDg3NSwgMC4yMzc1LCAwLjIyNSwgMC4yMDYyNSwgMC4xODc1LCAwLjE2NSwgMC4xNDM3NSIsIFwKLSAgICAgICAgICAiMC4yNjEyNSwgMC4yNSwgMC4yMzc1LCAwLjIxODc1LCAwLjIsIDAuMTc3NSwgMC4xNTYyNSIsIFwKLSAgICAgICAgICAiMC4yODM3NSwgMC4yNzI1LCAwLjI1Mzc1LCAwLjI0MTI1LCAwLjIyMjUsIDAuMTkzNzUsIDAuMTc4NzUiLCBcCi0gICAgICAgICAgIjAuMjk4NzUsIDAuMjg3NSwgMC4yNzUsIDAuMjU2MjUsIDAuMjM3NSwgMC4yMTUsIDAuMTkzNzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFEpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4wNzM2Njc0OwotICAgIGZ1bmN0aW9uIDogIk4zNSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3NlbnNlIDogbm9uX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiByaXNpbmdfZWRnZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzM2MzYsIDAuMzYxOTcxLCAwLjU5MTE0NCwgMC45Njk4OTgsIDEuMzQ4MjUsIDIuMjM2NTcsIDIuNzQyNDMiLCBcCi0gICAgICAgICAgIjAuMzQ4MTgsIDAuMzczNzE2LCAwLjYwMTczOSwgMC45ODA4ODEsIDEuMzU5NDksIDIuMjQ4MywgMi43NTQ4MSIsIFwKLSAgICAgICAgICAiMC4zNjMyNzgsIDAuMzg4MzU1LCAwLjYxNjc3LCAwLjk5NTE1OSwgMS4zNzUyNCwgMi4yNjQyLCAyLjc2NzQ0IiwgXAotICAgICAgICAgICIwLjM3ODgxMSwgMC40MDQzNDcsIDAuNjMyMTUzLCAxLjAxMTM1LCAxLjM5MDQyLCAyLjI3Njk1LCAyLjc4NDk0IiwgXAotICAgICAgICAgICIwLjM5NDA2MSwgMC40MTk1OTIsIDAuNjQ3NTE5LCAxLjAyNjc4LCAxLjQwNTQ4LCAyLjI5MDkzLCAyLjgwMDUzIiwgXAotICAgICAgICAgICIwLjQxODIxOSwgMC40NDM3NTQsIDAuNjcxNzk3LCAxLjA1MDg2LCAxLjQyOTU0LCAyLjMxOTQ0LCAyLjgyNDgzIiwgXAotICAgICAgICAgICIwLjQzODczLCAwLjQ2NDQzOCwgMC42OTIzNTcsIDEuMDcxMzcsIDEuNDUwNywgMi4zMzkxNCwgMi44NDQ2Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI3NDg5MSwgMC4zMjc2OTgsIDAuNzkzMDEyLCAxLjU2NDUyLCAyLjM1NTcxLCA0LjE3Mjc2LCA1LjE5MDA1IiwgXAotICAgICAgICAgICIwLjI3NDYzNSwgMC4zMjcwNDksIDAuNzkwNzc3LCAxLjU2MTYyLCAyLjM1NTcxLCA0LjE3MDcxLCA1LjE4ODM4IiwgXAotICAgICAgICAgICIwLjI3NDY5MSwgMC4zMjYzODQsIDAuNzkxNDc2LCAxLjU3NTM1LCAyLjM1NTksIDQuMTcwOTUsIDUuMTUwMDUiLCBcCi0gICAgICAgICAgIjAuMjc0NjQ3LCAwLjMyNzQ4MywgMC43OTI0NzMsIDEuNTYzMzksIDIuMzU1NjEsIDQuMTE0ODEsIDUuMTc1MzQiLCBcCi0gICAgICAgICAgIjAuMjc0NjE0LCAwLjMyNzMzNywgMC43OTE1MjksIDEuNTYxMTMsIDIuMzU1NzIsIDQuMTc2MDcsIDUuMTM3NTEiLCBcCi0gICAgICAgICAgIjAuMjc0NjQsIDAuMzI3MDA5LCAwLjc5MDYxMSwgMS41NjIyNSwgMi4zNTU3MiwgNC4xNjg3MSwgNS4xODc1MyIsIFwKLSAgICAgICAgICAiMC4yNzQzNzQsIDAuMzI3NjY4LCAwLjc5MjUwMiwgMS41NzU1NCwgMi4zNTU3NCwgNC4xNzE2MiwgNS4xOTEzOSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC40MDg3NiwgMC40MzgzODUsIDAuNzA3MjIxLCAxLjE1NDk2LCAxLjYwMTkzLCAyLjY0NTEyLCAzLjI0MTE3IiwgXAotICAgICAgICAgICIwLjQyMDMzMywgMC40NTAwMzgsIDAuNzE3Mzg1LCAxLjE2MywgMS42MTM2MSwgMi42NTEzOCwgMy4yNTI4NiIsIFwKLSAgICAgICAgICAiMC40MzU2NzUsIDAuNDY1MzAyLCAwLjczNDExNCwgMS4xODE4NywgMS42Mjg4MiwgMi42NzIwNCwgMy4yNjgzOCIsIFwKLSAgICAgICAgICAiMC40NTExODEsIDAuNDgwODA0LCAwLjc0OTU2NCwgMS4xOTQyOCwgMS42NDQzOCwgMi42ODc5MiwgMy4yODM3MiIsIFwKLSAgICAgICAgICAiMC40NjY1MTMsIDAuNDk2MTQsIDAuNzY0OTQ1LCAxLjIxMjcsIDEuNjU5NjYsIDIuNzAyODgsIDMuMjk5MjUiLCBcCi0gICAgICAgICAgIjAuNDkwODc1LCAwLjUyMDQ5NiwgMC43ODkzNjksIDEuMjM3MDgsIDEuNjgzOTUsIDIuNzI3MzgsIDMuMzIyODYiLCBcCi0gICAgICAgICAgIjAuNTExNzAyLCAwLjU0MTMyNCwgMC44MTAxODIsIDEuMjU1NDEsIDEuNzA0NSwgMi43NDc5MiwgMy4zNDQzNCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMTE4OTMsIDAuMzcwNDMzLCAwLjg5ODE2NCwgMS43ODMyMywgMi42NjM3MiwgNC43MTQ3NSwgNS45MTM1MyIsIFwKLSAgICAgICAgICAiMC4zMTE2OTgsIDAuMzcwMzc5LCAwLjg5ODkxLCAxLjc4NDQzLCAyLjY2MjI5LCA0LjczMjYxLCA1LjkxNTI0IiwgXAotICAgICAgICAgICIwLjMxMTgzMywgMC4zNzAzNzYsIDAuODk4NDM4LCAxLjc4MzAxLCAyLjY2MjUzLCA0LjcxNjA1LCA1LjkxNTA0IiwgXAotICAgICAgICAgICIwLjMxMTkxMSwgMC4zNzAzNzgsIDAuODk5MDQxLCAxLjc4MjE1LCAyLjY2MjIsIDQuNzE3MTgsIDUuOTE1MTMiLCBcCi0gICAgICAgICAgIjAuMzExODM0LCAwLjM3MDMxLCAwLjg5ODQ1NSwgMS43ODI5OSwgMi42NjI2MywgNC43MTYwMSwgNS45MTQ5NiIsIFwKLSAgICAgICAgICAiMC4zMTE4ODgsIDAuMzcwMzQ3LCAwLjg5ODE5NiwgMS43ODMwNywgMi42NjM0MiwgNC43MTQ4MywgNS45MTU0NyIsIFwKLSAgICAgICAgICAiMC4zMTE5MDgsIDAuMzcwMzc0LCAwLjg5ODU0NSwgMS43Nzk2MiwgMi42NjA2MiwgNC43MTgwMSwgNS45MTUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiU04iOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHByZXNldDsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzE3NzM0LCAwLjM0Mjk3OSwgMC41NzA4MTgsIDAuOTUwNzczLCAxLjMzMDg5LCAyLjIxNjYxLCAyLjcyMjU1IiwgXAotICAgICAgICAgICIwLjMyOTAyMSwgMC4zNTQ0MzIsIDAuNTgyMzQ1LCAwLjk2MTAwNCwgMS4zNDA0MSwgMi4yMjc3OSwgMi43MzQzIiwgXAotICAgICAgICAgICIwLjM0MzUzMSwgMC4zNjg3NTQsIDAuNTk2NjA2LCAwLjk3NzcsIDEuMzU1MTMsIDIuMjQxNzcsIDIuNzQ4MzgiLCBcCi0gICAgICAgICAgIjAuMzU4MjQyLCAwLjM4MzY4LCAwLjYxMTIwOSwgMC45OTA5MjYsIDEuMzcyNDcsIDIuMjU3MzgsIDIuNzYyMTUiLCBcCi0gICAgICAgICAgIjAuMzczMDQ1LCAwLjM5ODI5NCwgMC42MjYwNCwgMS4wMDU4NCwgMS4zODY1MywgMi4yNzIwOSwgMi43NzU3NSIsIFwKLSAgICAgICAgICAiMC4zOTYwODcsIDAuNDIxMzIzLCAwLjY0OTI1NiwgMS4wMjc5OSwgMS40MDczNywgMi4yOTQ1NywgMi44MDEwNyIsIFwKLSAgICAgICAgICAiMC40MTU4MDgsIDAuNDQxMTkzLCAwLjY2OTQxOCwgMS4wNTAyNSwgMS40Mjc0OCwgMi4zMTQxLCAyLjgyMDY3Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI3NjIyOCwgMC4zMjc1MSwgMC43OTUwMzcsIDEuNTc1NjYsIDIuMzQ5NjEsIDQuMTY0MTYsIDUuMTk4NDIiLCBcCi0gICAgICAgICAgIjAuMjc2MTg0LCAwLjMyNzQ1MywgMC43OTUyMTgsIDEuNTc1NjksIDIuMzU1NzcsIDQuMTYyNDEsIDUuMTk4MzQiLCBcCi0gICAgICAgICAgIjAuMjc2MTc3LCAwLjMyNzQ1MiwgMC43OTUwNDcsIDEuNTc1NjksIDIuMzQ3OTYsIDQuMTU5MDMsIDUuMTgyMzYiLCBcCi0gICAgICAgICAgIjAuMjc2NjEyLCAwLjMyNzUyMSwgMC43OTUwMTcsIDEuNTc1ODEsIDIuMzQ0ODgsIDQuMTY1NjIsIDUuMTkwMDMiLCBcCi0gICAgICAgICAgIjAuMjc0MywgMC4zMjcxMjQsIDAuNzk1MDIzLCAxLjU3NTcxLCAyLjM0OTU4LCA0LjE2Njg2LCA1LjE5NzgzIiwgXAotICAgICAgICAgICIwLjI3NjE0MSwgMC4zMjc0OTgsIDAuNzk1MDM5LCAxLjU3NTcxLCAyLjM1NTgyLCA0LjE2NjI4LCA1LjE5ODEiLCBcCi0gICAgICAgICAgIjAuMjc1MDk3LCAwLjMyNjc1MywgMC43OTQ5NjcsIDEuNTc1NjQsIDIuMzQzNTgsIDQuMTU3ODQsIDUuMTk2ODQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzMTA3LCAwLjAwMzEwNywgMC4wMDMxMDksIDAuMDAzMTEsIDAuMDAzMTExLCAwLjAwMzExMSwgMC4wMDMxMTEiLCBcCi0gICAgICAgICAgIjAuMDAzMSwgMC4wMDMxMDEsIDAuMDAzMTAzLCAwLjAwMzEwNCwgMC4wMDMxMDQsIDAuMDAzMTA0LCAwLjAwMzEwNCIsIFwKLSAgICAgICAgICAiMC4wMDMwOTQsIDAuMDAzMDk0LCAwLjAwMzA5NiwgMC4wMDMwOTcsIDAuMDAzMDk4LCAwLjAwMzA5OCwgMC4wMDMwOTgiLCBcCi0gICAgICAgICAgIjAuMDAzMDg5LCAwLjAwMzA5LCAwLjAwMzA5MiwgMC4wMDMwOTMsIDAuMDAzMDkzLCAwLjAwMzA5MywgMC4wMDMwOTMiLCBcCi0gICAgICAgICAgIjAuMDAzMDg1LCAwLjAwMzA4NiwgMC4wMDMwODgsIDAuMDAzMDg5LCAwLjAwMzA4OSwgMC4wMDMwODksIDAuMDAzMDkiLCBcCi0gICAgICAgICAgIjAuMDAzMDgsIDAuMDAzMDgxLCAwLjAwMzA4MywgMC4wMDMwODQsIDAuMDAzMDg0LCAwLjAwMzA4NCwgMC4wMDMwODQiLCBcCi0gICAgICAgICAgIjAuMDAzMDc4LCAwLjAwMzA3OSwgMC4wMDMwODEsIDAuMDAzMDgyLCAwLjAwMzA4MiwgMC4wMDMwODIsIDAuMDAzMDgyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyODEsIDAuMDAyODEsIDAuMDAyODEzLCAwLjAwMjgxNCwgMC4wMDI4MTQsIDAuMDAyODE1LCAwLjAwMjgxNSIsIFwKLSAgICAgICAgICAiMC4wMDI4MDIsIDAuMDAyODAzLCAwLjAwMjgwNiwgMC4wMDI4MDcsIDAuMDAyODA3LCAwLjAwMjgwNywgMC4wMDI4MDciLCBcCi0gICAgICAgICAgIjAuMDAyNzk3LCAwLjAwMjc5OCwgMC4wMDI4LCAwLjAwMjgwMiwgMC4wMDI4MDIsIDAuMDAyODAyLCAwLjAwMjgwMiIsIFwKLSAgICAgICAgICAiMC4wMDI3OTMsIDAuMDAyNzk0LCAwLjAwMjc5NywgMC4wMDI3OTgsIDAuMDAyNzk4LCAwLjAwMjc5OSwgMC4wMDI3OTkiLCBcCi0gICAgICAgICAgIjAuMDAyNzkyLCAwLjAwMjc5MywgMC4wMDI3OTUsIDAuMDAyNzk3LCAwLjAwMjc5NywgMC4wMDI3OTcsIDAuMDAyNzk3IiwgXAotICAgICAgICAgICIwLjAwMjc5MSwgMC4wMDI3OTIsIDAuMDAyNzk0LCAwLjAwMjc5NSwgMC4wMDI3OTYsIDAuMDAyNzk2LCAwLjAwMjc5NiIsIFwKLSAgICAgICAgICAiMC4wMDI3OTQsIDAuMDAyNzk0LCAwLjAwMjc5NywgMC4wMDI3OTgsIDAuMDAyNzk4LCAwLjAwMjc5OSwgMC4wMDI3OTkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzMzc2LCAwLjAwMzM3NywgMC4wMDMzNzksIDAuMDAzMzgsIDAuMDAzMzgsIDAuMDAzMzgsIDAuMDAzMzgxIiwgXAotICAgICAgICAgICIwLjAwMzM2OSwgMC4wMDMzNywgMC4wMDMzNzIsIDAuMDAzMzczLCAwLjAwMzM3MywgMC4wMDMzNzMsIDAuMDAzMzc0IiwgXAotICAgICAgICAgICIwLjAwMzM2MywgMC4wMDMzNjQsIDAuMDAzMzY3LCAwLjAwMzM2NywgMC4wMDMzNjgsIDAuMDAzMzY4LCAwLjAwMzM2OCIsIFwKLSAgICAgICAgICAiMC4wMDMzNiwgMC4wMDMzNiwgMC4wMDMzNjMsIDAuMDAzMzYzLCAwLjAwMzM2NCwgMC4wMDMzNjQsIDAuMDAzMzY0IiwgXAotICAgICAgICAgICIwLjAwMzM1NiwgMC4wMDMzNTcsIDAuMDAzMzU5LCAwLjAwMzM2LCAwLjAwMzM2LCAwLjAwMzM2MSwgMC4wMDMzNjEiLCBcCi0gICAgICAgICAgIjAuMDAzMzUxLCAwLjAwMzM1MSwgMC4wMDMzNTQsIDAuMDAzMzU0LCAwLjAwMzM1NSwgMC4wMDMzNTUsIDAuMDAzMzU1IiwgXAotICAgICAgICAgICIwLjAwMzM0NywgMC4wMDMzNDgsIDAuMDAzMzUsIDAuMDAzMzUxLCAwLjAwMzM1MSwgMC4wMDMzNTEsIDAuMDAzMzUyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHNjYWxhcikgewotICAgICAgICB2YWx1ZXMoIjAiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFFOKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMDY3NTE5OTsKLSAgICBmdW5jdGlvbiA6ICJRQklOVCI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3NlbnNlIDogbm9uX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiByaXNpbmdfZWRnZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuNDEyNjksIDAuNDM4MTA2LCAwLjY2Njk3NSwgMS4wNDg0NywgMS40Mjk5MiwgMi4zMTk5NSwgMi44Mjg4MyIsIFwKLSAgICAgICAgICAiMC40MjQzMjgsIDAuNDQ5NzU2LCAwLjY3ODY0NCwgMS4wNjAwOSwgMS40NDE1NiwgMi4zMzE0NSwgMi44NDAyMyIsIFwKLSAgICAgICAgICAiMC40Mzk2MiwgMC40NjUwMzcsIDAuNjkzOTI2LCAxLjA3NTQyLCAxLjQ1Njg3LCAyLjM0Njg5LCAyLjg1NTQiLCBcCi0gICAgICAgICAgIjAuNDU1MTExLCAwLjQ4MDUyNCwgMC43MDkzNSwgMS4wOTA4MiwgMS40NzIzMywgMi4zNjIyNiwgMi44NzA5NyIsIFwKLSAgICAgICAgICAiMC40NzA0NjQsIDAuNDk1ODgsIDAuNzI0NzcsIDEuMTA2MjcsIDEuNDg3NzIsIDIuMzc3NzMsIDIuODg2MjIiLCBcCi0gICAgICAgICAgIjAuNDk0ODE0LCAwLjUyMDIzLCAwLjc0OTEsIDEuMTMwNjEsIDEuNTEyMSwgMi40MDIwNSwgMi45MTA3OSIsIFwKLSAgICAgICAgICAiMC41MTU2MzYsIDAuNTQxMDQ5LCAwLjc2OTkwNywgMS4xNTEzNCwgMS41MzI5NSwgMi40MjI5MSwgMi45MzE0NyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yNzMwMDQsIDAuMzI0NTczLCAwLjc4OTA4OCwgMS41NjM1NSwgMi4zMzc2OSwgNC4xNDMzMSwgNS4xNjg4NyIsIFwKLSAgICAgICAgICAiMC4yNzI1MTIsIDAuMzI0NTI4LCAwLjc4NjY4MSwgMS41NjA3OCwgMi4zMzc1OSwgNC4xNDIzMSwgNS4xNjg5NCIsIFwKLSAgICAgICAgICAiMC4yNzI5OTMsIDAuMzI0NDQ0LCAwLjc4OTExNCwgMS41NjM1NywgMi4zMzc3NCwgNC4xNDMzLCA1LjE2OTAxIiwgXAotICAgICAgICAgICIwLjI3MzAxNSwgMC4zMjQ1MjYsIDAuNzg4NzUxLCAxLjU2MDUyLCAyLjMzNzU4LCA0LjE0MzMzLCA1LjE2ODk4IiwgXAotICAgICAgICAgICIwLjI3Mjk5NSwgMC4zMjQ0OSwgMC43ODkxMTQsIDEuNTYzNTcsIDIuMzM3NzUsIDQuMTQzMywgNS4xNjkwMiIsIFwKLSAgICAgICAgICAiMC4yNzMwMTQsIDAuMzI0NTExLCAwLjc4OTAyNCwgMS41NjM1NSwgMi4zMzc5OSwgNC4xNDMzMywgNS4xNjg3NCIsIFwKLSAgICAgICAgICAiMC4yNzMwMTUsIDAuMzI0NTI1LCAwLjc4OTA2OCwgMS41NjI1NiwgMi4zMzgxOSwgNC4xNDMyNCwgNS4xNjkwMiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zODUxMTgsIDAuNDE1MDIsIDAuNjg0NDE2LCAxLjEzMzAxLCAxLjU4MTY3LCAyLjYyODc5LCAzLjIyNjk5IiwgXAotICAgICAgICAgICIwLjM5NjgzNSwgMC40MjY3NTYsIDAuNjk2MDMsIDEuMTQ0NywgMS41OTMzNywgMi42NDA1NCwgMy4yMzg3MiIsIFwKLSAgICAgICAgICAiMC40MTE5NCwgMC40NDE4ODIsIDAuNzExMTM5LCAxLjE1OTc5LCAxLjYwODUyLCAyLjY1NTcsIDMuMjUzNjciLCBcCi0gICAgICAgICAgIjAuNDI3NDcyLCAwLjQ1NzM5MSwgMC43MjY2NjIsIDEuMTc1MzMsIDEuNjI0MDIsIDIuNjcwOTUsIDMuMjY5MyIsIFwKLSAgICAgICAgICAiMC40NDI3MTYsIDAuNDcyNjM0LCAwLjc0MTkwNiwgMS4xOTA1OCwgMS42MzkyNSwgMi42ODYyLCAzLjI4NDU4IiwgXAotICAgICAgICAgICIwLjQ2Njg3MiwgMC40OTY3OTMsIDAuNzY2MDY4LCAxLjIxNDc0LCAxLjY2MzQxLCAyLjcxMDY1LCAzLjMwODc1IiwgXAotICAgICAgICAgICIwLjQ4NzYwMywgMC41MTc0OTQsIDAuNzg2NzgxLCAxLjIzNTQ2LCAxLjY4NDE0LCAyLjczMTI4LCAzLjMyOTM3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMxMjAwNCwgMC4zNzEwMzYsIDAuOTAyNjkyLCAxLjc4ODU1LCAyLjY3NTM4LCA0Ljc0MzU1LCA1LjkyMzU4IiwgXAotICAgICAgICAgICIwLjMxMTk4NywgMC4zNzA4OTksIDAuOTAyNTM3LCAxLjc4ODQzLCAyLjY3NTM1LCA0Ljc0MzQ0LCA1LjkxOTA3IiwgXAotICAgICAgICAgICIwLjMxMTk4OSwgMC4zNzEwNDEsIDAuOTAyNTcyLCAxLjc4OTAyLCAyLjY3NTQ1LCA0Ljc0MzQ4LCA1LjkyMTYxIiwgXAotICAgICAgICAgICIwLjMxMTk4NywgMC4zNzA5NTEsIDAuOTAyNjIzLCAxLjc4ODQ5LCAyLjY3NTM2LCA0Ljc0MDc1LCA1LjkyMTk0IiwgXAotICAgICAgICAgICIwLjMxMTk4NiwgMC4zNzA5MywgMC45MDI1NzEsIDEuNzg4NDIsIDIuNjc1MzYsIDQuNzQzNTYsIDUuOTIxMDMiLCBcCi0gICAgICAgICAgIjAuMzExOTg3LCAwLjM3MDg5NSwgMC45MDI1MjksIDEuNzg4NDUsIDIuNjc1MzUsIDQuNzQzMzksIDUuOTE4OTciLCBcCi0gICAgICAgICAgIjAuMzExODczLCAwLjM3MTAwMiwgMC45MDI2MzcsIDEuNzg5MTEsIDIuNjc1MzksIDQuNzQzNDgsIDUuOTIxODkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiU04iOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGNsZWFyOwotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zNjY3MjcsIDAuMzk2NjI4LCAwLjY2NTkwNiwgMS4xMTQ2MiwgMS41NjMyOSwgMi42MTAyMSwgMy4yMDg0NCIsIFwKLSAgICAgICAgICAiMC4zNzgxNCwgMC40MDgwNDksIDAuNjc3MzMzLCAxLjEyNTk4LCAxLjU3NDY2LCAyLjYyMTYyLCAzLjIxOTg4IiwgXAotICAgICAgICAgICIwLjM5MjQyOCwgMC40MjIzNDMsIDAuNjkxNjE3LCAxLjE0MDQxLCAxLjU4ODk1LCAyLjYzNTg5LCAzLjIzNDE2IiwgXAotICAgICAgICAgICIwLjQwNzIzNiwgMC40MzcxNSwgMC43MDY0MTcsIDEuMTU1MTIsIDEuNjAzOTQsIDIuNjUwNzQsIDMuMjQ5MDYiLCBcCi0gICAgICAgICAgIjAuNDIyMDM3LCAwLjQ1MTk0NiwgMC43MjEyMiwgMS4xNjk5MywgMS42MTg2NCwgMi42NjU1NCwgMy4yNjM3NyIsIFwKLSAgICAgICAgICAiMC40NDUwMzYsIDAuNDc0OTUsIDAuNzQ0MjM0LCAxLjE5Mjg4LCAxLjY0MTU3LCAyLjY4ODUxLCAzLjI4Njc3IiwgXAotICAgICAgICAgICIwLjQ2NDkwMywgMC40OTQ3OTYsIDAuNzY0MDUzLCAxLjIxMjg2LCAxLjY2MTM5LCAyLjcwODM0LCAzLjMwNjYxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMxMjA2MywgMC4zNzEwNTIsIDAuOTAyNzkzLCAxLjc4OTE5LCAyLjY3NDQxLCA0Ljc0MTA5LCA1LjkyMjgyIiwgXAotICAgICAgICAgICIwLjMxMTk5OCwgMC4zNzEwMDcsIDAuOTAyODE1LCAxLjc4OTEzLCAyLjY3NTQ3LCA0Ljc0MDE3LCA1LjkyMjUiLCBcCi0gICAgICAgICAgIjAuMzEyMDAxLCAwLjM3MTAwOCwgMC45MDI3OTQsIDEuNzg5MTQsIDIuNjc0NjIsIDQuNzQxODksIDUuOTIyNSIsIFwKLSAgICAgICAgICAiMC4zMTE5OSwgMC4zNzEwMTQsIDAuOTAyNzg1LCAxLjc4OTIsIDIuNjczNTUsIDQuNzQxNjIsIDUuOTIzNTIiLCBcCi0gICAgICAgICAgIjAuMzExOTk2LCAwLjM3MTAxNCwgMC45MDI3ODcsIDEuNzg5MTksIDIuNjc0NTIsIDQuNzQxNiwgNS45MjM0MSIsIFwKLSAgICAgICAgICAiMC4zMTIwMDQsIDAuMzcxMDA4LCAwLjkwMjgsIDEuNzg5MTUsIDIuNjc1NDQsIDQuNzQxMjEsIDUuOTIzNTUiLCBcCi0gICAgICAgICAgIjAuMzExOTg2LCAwLjM3MDk2NCwgMC45MDI3NTcsIDEuNzg5MTIsIDIuNjc0NDksIDQuNzQxNTQsIDUuOTIzMzYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyODEsIDAuMDAyODEsIDAuMDAyODEzLCAwLjAwMjgxNCwgMC4wMDI4MTQsIDAuMDAyODE1LCAwLjAwMjgxNSIsIFwKLSAgICAgICAgICAiMC4wMDI4MDIsIDAuMDAyODAzLCAwLjAwMjgwNiwgMC4wMDI4MDcsIDAuMDAyODA3LCAwLjAwMjgwNywgMC4wMDI4MDciLCBcCi0gICAgICAgICAgIjAuMDAyNzk3LCAwLjAwMjc5OCwgMC4wMDI4LCAwLjAwMjgwMiwgMC4wMDI4MDIsIDAuMDAyODAyLCAwLjAwMjgwMiIsIFwKLSAgICAgICAgICAiMC4wMDI3OTMsIDAuMDAyNzk0LCAwLjAwMjc5NywgMC4wMDI3OTgsIDAuMDAyNzk4LCAwLjAwMjc5OSwgMC4wMDI3OTkiLCBcCi0gICAgICAgICAgIjAuMDAyNzkyLCAwLjAwMjc5MywgMC4wMDI3OTUsIDAuMDAyNzk3LCAwLjAwMjc5NywgMC4wMDI3OTcsIDAuMDAyNzk3IiwgXAotICAgICAgICAgICIwLjAwMjc5MSwgMC4wMDI3OTIsIDAuMDAyNzk0LCAwLjAwMjc5NSwgMC4wMDI3OTYsIDAuMDAyNzk2LCAwLjAwMjc5NiIsIFwKLSAgICAgICAgICAiMC4wMDI3OTQsIDAuMDAyNzk0LCAwLjAwMjc5NywgMC4wMDI3OTgsIDAuMDAyNzk4LCAwLjAwMjc5OSwgMC4wMDI3OTkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDMxMDcsIDAuMDAzMTA3LCAwLjAwMzEwOSwgMC4wMDMxMSwgMC4wMDMxMTEsIDAuMDAzMTExLCAwLjAwMzExMSIsIFwKLSAgICAgICAgICAiMC4wMDMxLCAwLjAwMzEwMSwgMC4wMDMxMDMsIDAuMDAzMTA0LCAwLjAwMzEwNCwgMC4wMDMxMDQsIDAuMDAzMTA0IiwgXAotICAgICAgICAgICIwLjAwMzA5NCwgMC4wMDMwOTQsIDAuMDAzMDk2LCAwLjAwMzA5NywgMC4wMDMwOTgsIDAuMDAzMDk4LCAwLjAwMzA5OCIsIFwKLSAgICAgICAgICAiMC4wMDMwODksIDAuMDAzMDksIDAuMDAzMDkyLCAwLjAwMzA5MywgMC4wMDMwOTMsIDAuMDAzMDkzLCAwLjAwMzA5MyIsIFwKLSAgICAgICAgICAiMC4wMDMwODUsIDAuMDAzMDg2LCAwLjAwMzA4OCwgMC4wMDMwODksIDAuMDAzMDg5LCAwLjAwMzA4OSwgMC4wMDMwOSIsIFwKLSAgICAgICAgICAiMC4wMDMwOCwgMC4wMDMwODEsIDAuMDAzMDgzLCAwLjAwMzA4NCwgMC4wMDMwODQsIDAuMDAzMDg0LCAwLjAwMzA4NCIsIFwKLSAgICAgICAgICAiMC4wMDMwNzgsIDAuMDAzMDc5LCAwLjAwMzA4MSwgMC4wMDMwODIsIDAuMDAzMDgyLCAwLjAwMzA4MiwgMC4wMDMwODIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzMzc2LCAwLjAwMzM3NywgMC4wMDMzNzksIDAuMDAzMzgsIDAuMDAzMzgsIDAuMDAzMzgsIDAuMDAzMzgxIiwgXAotICAgICAgICAgICIwLjAwMzM2OSwgMC4wMDMzNywgMC4wMDMzNzIsIDAuMDAzMzczLCAwLjAwMzM3MywgMC4wMDMzNzMsIDAuMDAzMzc0IiwgXAotICAgICAgICAgICIwLjAwMzM2MywgMC4wMDMzNjQsIDAuMDAzMzY3LCAwLjAwMzM2NywgMC4wMDMzNjgsIDAuMDAzMzY4LCAwLjAwMzM2OCIsIFwKLSAgICAgICAgICAiMC4wMDMzNiwgMC4wMDMzNiwgMC4wMDMzNjMsIDAuMDAzMzYzLCAwLjAwMzM2NCwgMC4wMDMzNjQsIDAuMDAzMzY0IiwgXAotICAgICAgICAgICIwLjAwMzM1NiwgMC4wMDMzNTcsIDAuMDAzMzU5LCAwLjAwMzM2LCAwLjAwMzM2LCAwLjAwMzM2MSwgMC4wMDMzNjEiLCBcCi0gICAgICAgICAgIjAuMDAzMzUxLCAwLjAwMzM1MSwgMC4wMDMzNTQsIDAuMDAzMzU0LCAwLjAwMzM1NSwgMC4wMDMzNTUsIDAuMDAzMzU1IiwgXAotICAgICAgICAgICIwLjAwMzM0NywgMC4wMDMzNDgsIDAuMDAzMzUsIDAuMDAzMzUxLCAwLjAwMzM1MSwgMC4wMDMzNTEsIDAuMDAzMzUyIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3Bvd2VyKHNjYWxhcikgewotICAgICAgICB2YWx1ZXMoIjAiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFNFKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDEyOTkzMjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDEyOTg2NDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDEyOTkzMjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDM2MTMsIDAuMDAzNjAxLCAwLjAwMzU5NiwgMC4wMDM1OTMsIDAuMDAzNTkzLCAwLjAwMzU5LCAwLjAwMzU5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA0Njk1LCAwLjAwNDY3NywgMC4wMDQ2NjUsIDAuMDA0NjU4LCAwLjAwNDY1MiwgMC4wMDQ2NDYsIDAuMDA0NjQ1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlNOIjsKLSAgICAgIHNkZl9jb25kIDogIlNOID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjA1LCAtMC4wMzI1LCAtMC4wMiwgLTAuMDA3NSwgMC4wMDUsIDAuMDI3NSwgMC4wNDI1IiwgXAotICAgICAgICAgICItMC4wNjEyNSwgLTAuMDUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAuMDE2MjUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjA3Mzc1LCAtMC4wNjI1LCAtMC4wNSwgLTAuMDM3NSwgLTAuMDE4NzUsIC0wLjAwMjUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjA5MjUsIC0wLjA4MTI1LCAtMC4wNjI1LCAtMC4wNSwgLTAuMDM3NSwgLTAuMDE1LCAwIiwgXAotICAgICAgICAgICItMC4xMDUsIC0wLjA5Mzc1LCAtMC4wNzUsIC0wLjA2MjUsIC0wLjA1LCAtMC4wMjc1LCAtMC4wMTI1IiwgXAotICAgICAgICAgICItMC4xMjEyNSwgLTAuMTEsIC0wLjA5NzUsIC0wLjA4NSwgLTAuMDcyNSwgLTAuMDUsIC0wLjAzNSIsIFwKLSAgICAgICAgICAiLTAuMTQyNSwgLTAuMTMxMjUsIC0wLjExMjUsIC0wLjEsIC0wLjA4NzUsIC0wLjA2NSwgLTAuMDUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMTg3NSwgLTAuMDA3NSwgMC4wMTEyNSwgMC4wMjM3NSwgMC4wMzYyNSwgMC4wNTg3NSwgMC4wNzM3NSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAxODc1LCAwLCAwLjAxMjUsIDAuMDI1LCAwLjA0NzUsIDAuMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDMxMjUsIC0wLjAxMjUsIDAsIDAuMDEyNSwgMC4wMzUsIDAuMDUiLCBcCi0gICAgICAgICAgIi0wLjA1NSwgLTAuMDQzNzUsIC0wLjAyNSwgLTAuMDEyNSwgMCwgMC4wMjI1LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjA2NzUsIC0wLjA1NjI1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAxMjUsIDAuMDEsIDAuMDI1IiwgXAotICAgICAgICAgICItMC4wODM3NSwgLTAuMDcyNSwgLTAuMDYsIC0wLjA0NzUsIC0wLjAzNSwgLTAuMDEyNSwgMC4wMDg3NSIsIFwKLSAgICAgICAgICAiLTAuMDk4NzUsIC0wLjA5Mzc1LCAtMC4wNzUsIC0wLjA2MjUsIC0wLjA1LCAtMC4wMjc1LCAtMC4wMTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJTTiA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMzEyNSwgMC4yMiwgMC4yMDEyNSwgMC4xODg3NSwgMC4xNywgMC4xNDc1LCAwLjEyNjI1IiwgXAotICAgICAgICAgICIwLjI0MjUsIDAuMjMxMjUsIDAuMjE4NzUsIDAuMiwgMC4xODEyNSwgMC4xNTg3NSwgMC4xMzc1IiwgXAotICAgICAgICAgICIwLjI2MTI1LCAwLjI1LCAwLjIzMTI1LCAwLjIxMjUsIDAuMiwgMC4xNzEyNSwgMC4xNSIsIFwKLSAgICAgICAgICAiMC4yNzM3NSwgMC4yNjI1LCAwLjI1LCAwLjIzMTI1LCAwLjIxMjUsIDAuMTksIDAuMTY4NzUiLCBcCi0gICAgICAgICAgIjAuMjg2MjUsIDAuMjc1LCAwLjI2MjUsIDAuMjQzNzUsIDAuMjI1LCAwLjIwMjUsIDAuMTgxMjUiLCBcCi0gICAgICAgICAgIjAuMzA4NzUsIDAuMjk3NSwgMC4yNzg3NSwgMC4yNjYyNSwgMC4yNDc1LCAwLjIyNSwgMC4yMDM3NSIsIFwKLSAgICAgICAgICAiMC4zMjM3NSwgMC4zMTI1LCAwLjMsIDAuMjgxMjUsIDAuMjYyNSwgMC4yNCwgMC4yMTg3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIzNzUsIDAuMjIsIDAuMjA3NSwgMC4xOTUsIDAuMTgyNSwgMC4xNiwgMC4xNTEyNSIsIFwKLSAgICAgICAgICAiMC4yNDg3NSwgMC4yMzc1LCAwLjIxODc1LCAwLjIwNjI1LCAwLjE5Mzc1LCAwLjE3MTI1LCAwLjE2MjUiLCBcCi0gICAgICAgICAgIjAuMjYxMjUsIDAuMjUsIDAuMjMxMjUsIDAuMjE4NzUsIDAuMjA2MjUsIDAuMTksIDAuMTc1IiwgXAotICAgICAgICAgICIwLjI3Mzc1LCAwLjI2MjUsIDAuMjUsIDAuMjMxMjUsIDAuMjE4NzUsIDAuMjAyNSwgMC4xODc1IiwgXAotICAgICAgICAgICIwLjI4NjI1LCAwLjI3NSwgMC4yNjI1LCAwLjI0Mzc1LCAwLjIzMTI1LCAwLjIxNSwgMC4yIiwgXAotICAgICAgICAgICIwLjMwODc1LCAwLjI5MTI1LCAwLjI3ODc1LCAwLjI2NjI1LCAwLjI0NzUsIDAuMjMxMjUsIDAuMjE2MjUiLCBcCi0gICAgICAgICAgIjAuMzE3NSwgMC4zMDYyNSwgMC4yOTM3NSwgMC4yNzUsIDAuMjYyNSwgMC4yNDYyNSwgMC4yMzEyNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oU0kpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY1NTE3NTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2NTMyODY7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjU1MTc1OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjcwNiwgMC4wMDI2OTYsIDAuMDAyNjkyLCAwLjAwMjY4OCwgMC4wMDI2ODUsIDAuMDAyNjgyLCAwLjAwMjY4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzODU3LCAwLjAwMzg1MiwgMC4wMDM4NSwgMC4wMDM4NDgsIDAuMDAzODQ2LCAwLjAwMzg0NCwgMC4wMDM4NDMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiU0UmU04iOwotICAgICAgc2RmX2NvbmQgOiAiU0VfRVFfMV9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjEzNzUsIC0wLjEyNjI1LCAtMC4xMTM3NSwgLTAuMTAxMjUsIC0wLjA5NSwgLTAuMDc4NzUsIC0wLjA2Mzc1IiwgXAotICAgICAgICAgICItMC4xNDg3NSwgLTAuMTM3NSwgLTAuMTI1LCAtMC4xMTI1LCAtMC4xMDYyNSwgLTAuMDksIC0wLjA3NSIsIFwKLSAgICAgICAgICAiLTAuMTYxMjUsIC0wLjE1LCAtMC4xMzc1LCAtMC4xMzEyNSwgLTAuMTE4NzUsIC0wLjEwMjUsIC0wLjA5Mzc1IiwgXAotICAgICAgICAgICItMC4xNzM3NSwgLTAuMTYyNSwgLTAuMTUsIC0wLjE0Mzc1LCAtMC4xMzEyNSwgLTAuMTE1LCAtMC4xMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMTg2MjUsIC0wLjE3NSwgLTAuMTY4NzUsIC0wLjE1NjI1LCAtMC4xNDM3NSwgLTAuMTMzNzUsIC0wLjExODc1IiwgXAotICAgICAgICAgICItMC4yMDg3NSwgLTAuMTk3NSwgLTAuMTg1LCAtMC4xNzg3NSwgLTAuMTY2MjUsIC0wLjE1LCAtMC4xNDEyNSIsIFwKLSAgICAgICAgICAiLTAuMjMsIC0wLjIxODc1LCAtMC4yMDYyNSwgLTAuMTkzNzUsIC0wLjE4NzUsIC0wLjE3MTI1LCAtMC4xNjI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDMxMjUsIC0wLjAyLCAtMC4wMDEyNSwgMC4wMTEyNSwgMC4wMjM3NSwgMC4wNDYyNSwgMC4wNjEyNSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDMxMjUsIC0wLjAxMjUsIDAsIDAuMDEyNSwgMC4wMzUsIDAuMDUiLCBcCi0gICAgICAgICAgIi0wLjA1NSwgLTAuMDQzNzUsIC0wLjAyNSwgLTAuMDEyNSwgMCwgMC4wMjI1LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjA2NzUsIC0wLjA1NjI1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAxMjUsIDAuMDEsIDAuMDI1IiwgXAotICAgICAgICAgICItMC4wOCwgLTAuMDY4NzUsIC0wLjA1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAwMjUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDk2MjUsIC0wLjA4NSwgLTAuMDcyNSwgLTAuMDUzNzUsIC0wLjA0MTI1LCAtMC4wMTg3NSwgLTAuMDAzNzUiLCBcCi0gICAgICAgICAgIi0wLjExMTI1LCAtMC4xLCAtMC4wODc1LCAtMC4wNzUsIC0wLjA2MjUsIC0wLjA0LCAtMC4wMTg3NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiU0UmU04iOwotICAgICAgc2RmX2NvbmQgOiAiU0VfRVFfMV9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIxODc1LCAwLjIwNzUsIDAuMTk1LCAwLjE3NjI1LCAwLjE2Mzc1LCAwLjE0NzUsIDAuMTMyNSIsIFwKLSAgICAgICAgICAiMC4yMywgMC4yMTg3NSwgMC4yMDYyNSwgMC4xODc1LCAwLjE3NSwgMC4xNTg3NSwgMC4xNDM3NSIsIFwKLSAgICAgICAgICAiMC4yNDI1LCAwLjIzMTI1LCAwLjIxODc1LCAwLjIsIDAuMTg3NSwgMC4xNzEyNSwgMC4xNTYyNSIsIFwKLSAgICAgICAgICAiMC4yNjEyNSwgMC4yNDM3NSwgMC4yMzEyNSwgMC4yMTg3NSwgMC4yLCAwLjE4Mzc1LCAwLjE2ODc1IiwgXAotICAgICAgICAgICIwLjI3Mzc1LCAwLjI2MjUsIDAuMjQzNzUsIDAuMjMxMjUsIDAuMjE4NzUsIDAuMTk2MjUsIDAuMTg3NSIsIFwKLSAgICAgICAgICAiMC4yOTYyNSwgMC4yNzg3NSwgMC4yNjYyNSwgMC4yNTM3NSwgMC4yNDEyNSwgMC4yMTg3NSwgMC4yMSIsIFwKLSAgICAgICAgICAiMC4zMTc1LCAwLjMsIDAuMjg3NSwgMC4yNjg3NSwgMC4yNTYyNSwgMC4yNCwgMC4yMjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMTI1LCAwLjIwMTI1LCAwLjE4ODc1LCAwLjE3LCAwLjE1MTI1LCAwLjEyODc1LCAwLjEwNzUiLCBcCi0gICAgICAgICAgIjAuMjIzNzUsIDAuMjEyNSwgMC4yLCAwLjE4MTI1LCAwLjE2MjUsIDAuMTQsIDAuMTE4NzUiLCBcCi0gICAgICAgICAgIjAuMjM2MjUsIDAuMjI1LCAwLjIxMjUsIDAuMTkzNzUsIDAuMTc1LCAwLjE1MjUsIDAuMTMxMjUiLCBcCi0gICAgICAgICAgIjAuMjQ4NzUsIDAuMjM3NSwgMC4yMjUsIDAuMjA2MjUsIDAuMTg3NSwgMC4xNjUsIDAuMTQzNzUiLCBcCi0gICAgICAgICAgIjAuMjYxMjUsIDAuMjUsIDAuMjM3NSwgMC4yMTg3NSwgMC4yLCAwLjE3NzUsIDAuMTU2MjUiLCBcCi0gICAgICAgICAgIjAuMjgzNzUsIDAuMjcyNSwgMC4yNTM3NSwgMC4yMzUsIDAuMjIyNSwgMC4xOTM3NSwgMC4xNzI1IiwgXAotICAgICAgICAgICIwLjI5ODc1LCAwLjI4NzUsIDAuMjc1LCAwLjI1NjI1LCAwLjIzNzUsIDAuMjE1LCAwLjE5Mzc1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTTikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxMzY3Njc7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxMjg0NzM7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxMzY3Njc7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzMxLCAwLjAwMDMzLCAwLjAwMDMzLCAwLjAwMDMzLCAwLjAwMDMzLCAwLjAwMDMzLCAwLjAwMDMzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzMzLCAwLjAwMDMzMiwgMC4wMDAzMzIsIDAuMDAwMzMyLCAwLjAwMDMzMiwgMC4wMDAzMzIsIDAuMDAwMzMyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRCYhU0UmIVNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9TRV9FUV8wX0FOX1NJX0VRXzAgPT0gMSdiMSI7Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4zNjY3MjcsIDAuMzc4MTQsIDAuMzkyNDI4LCAwLjQwNzIzNiwgMC40MjIwMzcsIDAuNDQ1MDM2LCAwLjQ2NDkwMyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJlY292ZXJ5X3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUQmIVNFJiFTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fU0VfRVFfMF9BTl9TSV9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHJlY292ZXJ5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzNzUsIDAuMDI2MjUsIDAuMDEzNzUsIC0wLjAwNSwgLTAuMDIzNzUsIC0wLjA0NjI1LCAtMC4wNjc1IiwgXAotICAgICAgICAgICIwLjA1NSwgMC4wMzc1LCAwLjAyNSwgMC4wMDYyNSwgLTAuMDEyNSwgLTAuMDM1LCAtMC4wNTYyNSIsIFwKLSAgICAgICAgICAiMC4wNjc1LCAwLjA1LCAwLjAzNzUsIDAuMDE4NzUsIDAuMDA2MjUsIC0wLjAyMjUsIC0wLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjA4LCAwLjA2ODc1LCAwLjA1LCAwLjAzMTI1LCAwLjAxODc1LCAtMC4wMSwgLTAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMDkyNSwgMC4wODEyNSwgMC4wNjI1LCAwLjA1LCAwLjAzMTI1LCAwLjAwMjUsIC0wLjAxODc1IiwgXAotICAgICAgICAgICIwLjExNSwgMC4xMDM3NSwgMC4wODUsIDAuMDY2MjUsIDAuMDUzNzUsIDAuMDI1LCAwLjAwMzc1IiwgXAotICAgICAgICAgICIwLjEzNjI1LCAwLjExODc1LCAwLjEwNjI1LCAwLjA4NzUsIDAuMDY4NzUsIDAuMDQ2MjUsIDAuMDI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogcmVtb3ZhbF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEJiFTRSYhU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1NFX0VRXzBfQU5fU0lfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChyZW1vdmFsX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2MjUsIDAuMDczNzUsIDAuMDg2MjUsIDAuMTA1LCAwLjExNzUsIDAuMTQ2MjUsIDAuMTY3NSIsIFwKLSAgICAgICAgICAiMC4wNTEyNSwgMC4wNjI1LCAwLjA3NSwgMC4wOTM3NSwgMC4xMDYyNSwgMC4xMzUsIDAuMTU2MjUiLCBcCi0gICAgICAgICAgIjAuMDM4NzUsIDAuMDUsIDAuMDYyNSwgMC4wODEyNSwgMC4wOTM3NSwgMC4xMjI1LCAwLjE0Mzc1IiwgXAotICAgICAgICAgICIwLjAyNjI1LCAwLjAzNzUsIDAuMDUsIDAuMDY4NzUsIDAuMDgxMjUsIDAuMTAzNzUsIDAuMTI1IiwgXAotICAgICAgICAgICIwLjAxMzc1LCAwLjAyNSwgMC4wMzc1LCAwLjA1NjI1LCAwLjA2ODc1LCAwLjA5MTI1LCAwLjExMjUiLCBcCi0gICAgICAgICAgIi0wLjAwODc1LCAwLjAwMjUsIDAuMDE1LCAwLjAzMzc1LCAwLjA0NjI1LCAwLjA2ODc1LCAwLjA5IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDE4NzUsIDAsIDAuMDEyNSwgMC4wMzEyNSwgMC4wNTM3NSwgMC4wNzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogU0RGRlRSWDEgKgotICogLS0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKFNERkZUUlgxKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMzQ1NzU4OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIGZmIChOMzAsUUJJTlQpIHsKLSAgICBuZXh0X3N0YXRlIDogIigoU0UgU0kpICsgKCFTRSAoRCBSTikpKSI7Ci0gICAgY2xvY2tlZF9vbiA6ICJDSyI7Ci0gIH0KLSAgcGluKENLKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA1NDY1MjQ7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNTQ2MjE7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNTQ2NTI0OwotICAgIGNsb2NrIDogdHJ1ZTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDIzMTYsIDAuMDAyMzAyLCAwLjAwMjI5MiwgMC4wMDIyODUsIDAuMDAyMjc5LCAwLjAwMjI3MywgMC4wMDIyNzEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDQ2NzUsIDAuMDA0NjY1LCAwLjAwNDY1NiwgMC4wMDQ2NSwgMC4wMDQ2NDksIDAuMDA0NjUxLCAwLjAwNDY1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRCYhUk4mIVNFJiFTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fUk5fRVFfMF9BTl9TRV9FUV8wX0FOX1NJX0VRXzAgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4zMzQwMTcsIDAuMzQ1NzUzLCAwLjM2MTIxOCwgMC4zNzY2MTEsIDAuMzkxNzY4LCAwLjQxNjA2NiwgMC40MzY4MjgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjE5MjY2MywgMC4yMDM5NzMsIDAuMjE5MTM3LCAwLjIzNDAxOCwgMC4yNDg1NDgsIDAuMjcxMjkzLCAwLjI4OTgzNCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNTg1ODIyOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDU4NTQ1MTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA1ODU4MjI7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyNjEzLCAwLjAwMjYwMywgMC4wMDI1OTYsIDAuMDAyNTkyLCAwLjAwMjU5LCAwLjAwMjU4NywgMC4wMDI1ODYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDQzODYsIDAuMDA0MzgyLCAwLjAwNDM3OCwgMC4wMDQzNzUsIDAuMDA0MzczLCAwLjAwNDM3LCAwLjAwNDM2NyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJSTiYhU0UiOwotICAgICAgc2RmX2NvbmQgOiAiUk5fRVFfMV9BTl9TRV9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjIxODc1LCAtMC4yMDc1LCAtMC4yMDEyNSwgLTAuMTg4NzUsIC0wLjE4MjUsIC0wLjE2NjI1LCAtMC4xNTc1IiwgXAotICAgICAgICAgICItMC4yMywgLTAuMjE4NzUsIC0wLjIxMjUsIC0wLjIsIC0wLjE5Mzc1LCAtMC4xNzc1LCAtMC4xNjg3NSIsIFwKLSAgICAgICAgICAiLTAuMjQyNSwgLTAuMjMxMjUsIC0wLjIyNSwgLTAuMjEyNSwgLTAuMjA2MjUsIC0wLjE5LCAtMC4xODEyNSIsIFwKLSAgICAgICAgICAiLTAuMjU1LCAtMC4yNDM3NSwgLTAuMjM3NSwgLTAuMjI1LCAtMC4yMTg3NSwgLTAuMjAyNSwgLTAuMTkzNzUiLCBcCi0gICAgICAgICAgIi0wLjI2NzUsIC0wLjI2MjUsIC0wLjI1LCAtMC4yNDM3NSwgLTAuMjMxMjUsIC0wLjIyMTI1LCAtMC4yMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMjksIC0wLjI4NSwgLTAuMjcyNSwgLTAuMjY2MjUsIC0wLjI1Mzc1LCAtMC4yNDM3NSwgLTAuMjI4NzUiLCBcCi0gICAgICAgICAgIi0wLjMxMTI1LCAtMC4zLCAtMC4yOTM3NSwgLTAuMjgxMjUsIC0wLjI3NSwgLTAuMjU4NzUsIC0wLjI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDI1LCAtMC4wMTM3NSwgLTAuMDAxMjUsIDAuMDExMjUsIDAuMDIzNzUsIDAuMDQ2MjUsIDAuMDYxMjUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMjUsIC0wLjAxMjUsIDAsIDAuMDEyNSwgMC4wMzUsIDAuMDUiLCBcCi0gICAgICAgICAgIi0wLjA1NSwgLTAuMDM3NSwgLTAuMDI1LCAtMC4wMTI1LCAwLCAwLjAxNjI1LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjA2NzUsIC0wLjA1NjI1LCAtMC4wNDM3NSwgLTAuMDMxMjUsIC0wLjAxMjUsIDAuMDAzNzUsIDAuMDI1IiwgXAotICAgICAgICAgICItMC4wOCwgLTAuMDY4NzUsIC0wLjA1NjI1LCAtMC4wNDM3NSwgLTAuMDMxMjUsIC0wLjAwODc1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wOTYyNSwgLTAuMDg1LCAtMC4wNzI1LCAtMC4wNiwgLTAuMDQ3NSwgLTAuMDMxMjUsIC0wLjAxIiwgXAotICAgICAgICAgICItMC4xMTEyNSwgLTAuMSwgLTAuMDg3NSwgLTAuMDc1LCAtMC4wNjg3NSwgLTAuMDQ2MjUsIC0wLjAzMTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJSTiYhU0UiOwotICAgICAgc2RmX2NvbmQgOiAiUk5fRVFfMV9BTl9TRV9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMyNSwgMC4zMTM3NSwgMC4zMDEyNSwgMC4yODI1LCAwLjI3LCAwLjI1Mzc1LCAwLjIzODc1IiwgXAotICAgICAgICAgICIwLjMzNjI1LCAwLjMyNSwgMC4zMDYyNSwgMC4yOTM3NSwgMC4yODEyNSwgMC4yNjUsIDAuMjUiLCBcCi0gICAgICAgICAgIjAuMzQ4NzUsIDAuMzM3NSwgMC4zMTg3NSwgMC4zMDYyNSwgMC4yOTM3NSwgMC4yNzc1LCAwLjI2MjUiLCBcCi0gICAgICAgICAgIjAuMzYxMjUsIDAuMzUsIDAuMzM3NSwgMC4zMTg3NSwgMC4zMDYyNSwgMC4yOSwgMC4yNzUiLCBcCi0gICAgICAgICAgIjAuMzgsIDAuMzYyNSwgMC4zNSwgMC4zMzc1LCAwLjMyNSwgMC4zMDI1LCAwLjI4NzUiLCBcCi0gICAgICAgICAgIjAuNDAyNSwgMC4zODUsIDAuMzcyNSwgMC4zNiwgMC4zNDEyNSwgMC4zMjUsIDAuMzEiLCBcCi0gICAgICAgICAgIjAuNDE3NSwgMC40MDYyNSwgMC4zODc1LCAwLjM3NSwgMC4zNjI1LCAwLjM0NjI1LCAwLjMzMTI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTQzNzUsIDAuMTMyNSwgMC4xMTM3NSwgMC4xMDEyNSwgMC4wODI1LCAwLjA2LCAwLjAzODc1IiwgXAotICAgICAgICAgICIwLjE1NSwgMC4xNDM3NSwgMC4xMzEyNSwgMC4xMTI1LCAwLjA5Mzc1LCAwLjA3MTI1LCAwLjA1IiwgXAotICAgICAgICAgICIwLjE3Mzc1LCAwLjE1NjI1LCAwLjE0Mzc1LCAwLjEyNSwgMC4xMTI1LCAwLjA4Mzc1LCAwLjA2MjUiLCBcCi0gICAgICAgICAgIjAuMTg2MjUsIDAuMTc1LCAwLjE1NjI1LCAwLjEzNzUsIDAuMTI1LCAwLjEwMjUsIDAuMDgxMjUiLCBcCi0gICAgICAgICAgIjAuMTk4NzUsIDAuMTg3NSwgMC4xNjg3NSwgMC4xNTYyNSwgMC4xMzc1LCAwLjExNSwgMC4wOTM3NSIsIFwKLSAgICAgICAgICAiMC4yMjEyNSwgMC4yMSwgMC4xOTEyNSwgMC4xNzg3NSwgMC4xNiwgMC4xMzc1LCAwLjExNjI1IiwgXAotICAgICAgICAgICIwLjI0MjUsIDAuMjMxMjUsIDAuMjEyNSwgMC4xOTM3NSwgMC4xODEyNSwgMC4xNTg3NSwgMC4xMzc1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihRKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMTM1MTI2OwotICAgIGZ1bmN0aW9uIDogIk4zMCI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3NlbnNlIDogbm9uX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiByaXNpbmdfZWRnZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjc4MjU4LCAwLjMyMTY0MiwgMC41NjY2MTUsIDAuNzgzMTM3LCAxLjA2OTc2LCAxLjY0Nzc5LCAyLjAwNjkyIiwgXAotICAgICAgICAgICIwLjI4OTkxOCwgMC4zMzMzMSwgMC41Nzg0MDYsIDAuNzk0NjM3LCAxLjA4MTIxLCAxLjY1OTM1LCAyLjAyMDA3IiwgXAotICAgICAgICAgICIwLjMwNTEzMywgMC4zNDg1MjUsIDAuNTkzOTI1LCAwLjgxMDEyMiwgMS4wOTc0NiwgMS42NzQ5NSwgMi4wMzYxNyIsIFwKLSAgICAgICAgICAiMC4zMjA2MTcsIDAuMzY0MDA4LCAwLjYwOTA5MiwgMC44MjUzNzUsIDEuMTExOTIsIDEuNjkwMDgsIDIuMDUwNDQiLCBcCi0gICAgICAgICAgIjAuMzM1NzM1LCAwLjM3OTEyNCwgMC42MjQ1MTQsIDAuODQwNjk1LCAxLjEyODQsIDEuNzA0NzIsIDIuMDY2ODMiLCBcCi0gICAgICAgICAgIjAuMzU5OTk1LCAwLjQwMzIxOCwgMC42NDg3MDUsIDAuODY0OTk3LCAxLjE1MTk4LCAxLjcyODg3LCAyLjA5MDkxIiwgXAotICAgICAgICAgICIwLjM4MDM0MywgMC40MjM2NzEsIDAuNjY5MDkxLCAwLjg4NTQ4MiwgMS4xNzI0OSwgMS43NTI0NywgMi4xMTEyNyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNjQ4MzIsIDAuMjUyNzg4LCAwLjc1MzI1LCAxLjE4MzkzLCAxLjc3NDc1LCAyLjk2NjEyLCAzLjcxMDMxIiwgXAotICAgICAgICAgICIwLjE2NDgyOSwgMC4yNTI3NywgMC43NTA1NywgMS4xODE2MywgMS43NzY3NiwgMi45NjYzNCwgMy43MDQ0MSIsIFwKLSAgICAgICAgICAiMC4xNjQ4MTIsIDAuMjUyNzU3LCAwLjc0NzUyOCwgMS4xODgxOSwgMS43NzU4MSwgMi45NjYwMiwgMy43MDQzNCIsIFwKLSAgICAgICAgICAiMC4xNjQ4MjgsIDAuMjUyNzgsIDAuNzUwNzA4LCAxLjE4MjEyLCAxLjc3NjYzLCAyLjk2NjMzLCAzLjcwNDQ3IiwgXAotICAgICAgICAgICIwLjE2NDgxNywgMC4yNTI3MzUsIDAuNzQ3NTksIDEuMTg3MjQsIDEuNzY4OTYsIDIuOTQ4NzgsIDMuNzA0MiIsIFwKLSAgICAgICAgICAiMC4xNjQ4MzQsIDAuMjUzODY3LCAwLjc0ODIwNCwgMS4xOTUyOCwgMS43Njg2NiwgMi45NzE1LCAzLjcwNDI0IiwgXAotICAgICAgICAgICIwLjE2NDgyLCAwLjI1Mjk2NCwgMC43NDg0NTMsIDEuMTk1ODUsIDEuNzY3MzUsIDIuOTY2MzksIDMuNzA0MjgiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzEzMjE4LCAwLjM2MjgzNywgMC42NDMwMDQsIDAuODkxOTUyLCAxLjIyMjY4LCAxLjg4Mjk0LCAyLjI5Njc5IiwgXAotICAgICAgICAgICIwLjMyNDk0NiwgMC4zNzQ0MTUsIDAuNjU0NzM4LCAwLjkwMTM0MywgMS4yMzQxOCwgMS44OTQ3OSwgMi4zMDg1MyIsIFwKLSAgICAgICAgICAiMC4zNDA0MjYsIDAuMzkwMDk1LCAwLjY3MDIxNSwgMC45MTY4ODgsIDEuMjQ5NzcsIDEuOTA1MTUsIDIuMzI0IiwgXAotICAgICAgICAgICIwLjM1NTgwOSwgMC40MDU1NzUsIDAuNjg1NjQxLCAwLjkzMjgyOSwgMS4yNjIwMiwgMS45MjYzMSwgMi4zMzk0MSIsIFwKLSAgICAgICAgICAiMC4zNzA5NTQsIDAuNDIwNzMzLCAwLjcwMDc3NSwgMC45NDg4ODksIDEuMjc4NDIsIDEuOTQxNDYsIDIuMzU0NTYiLCBcCi0gICAgICAgICAgIjAuMzk1MjU3LCAwLjQ0NTA0MSwgMC43MjUxNzUsIDAuOTcyMDIsIDEuMzAxODQsIDEuOTY1ODMsIDIuMzc4ODciLCBcCi0gICAgICAgICAgIjAuNDE2MDAzLCAwLjQ2NTc4OCwgMC43NDYxMjcsIDAuOTkyNzUyLCAxLjMyMjU3LCAxLjk4NjcsIDIuMzk5NjIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTgxOTMxLCAwLjI3ODE3MywgMC44MzE2MTMsIDEuMzI0MzgsIDEuOTc3MDQsIDMuMjkwNjEsIDQuMDk5ODQiLCBcCi0gICAgICAgICAgIjAuMTgxOTM0LCAwLjI3Nzk2OCwgMC44MzEwNDUsIDEuMzIyNywgMS45Nzc3NiwgMy4yODc1MSwgNC4xMDM5IiwgXAotICAgICAgICAgICIwLjE4MTgyMywgMC4yNzgyMjQsIDAuODMzMTk3LCAxLjMyMjE3LCAxLjk3NzU5LCAzLjI4NzQxLCA0LjEwMzk1IiwgXAotICAgICAgICAgICIwLjE4MTkyOSwgMC4yNzgyODgsIDAuODMxNTM1LCAxLjMyMzM4LCAxLjk3ODg1LCAzLjI4NjE2LCA0LjEwMzgiLCBcCi0gICAgICAgICAgIjAuMTgxOTI2LCAwLjI3ODI4NiwgMC44MzEwMjksIDEuMzIzLCAxLjk3NjUxLCAzLjI4NjE4LCA0LjEwMzgzIiwgXAotICAgICAgICAgICIwLjE4MTk0NCwgMC4yNzgzMTUsIDAuODMxNDc1LCAxLjMyMjgxLCAxLjk3ODI3LCAzLjI4NTk4LCA0LjEwMzU1IiwgXAotICAgICAgICAgICIwLjE4MTk0LCAwLjI3ODMxMiwgMC44MzIyMTYsIDEuMzIyOTcsIDEuOTc4MjcsIDMuMjg1OTYsIDQuMTA0MSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDMyNzEsIDAuMDAzMjcyLCAwLjAwMzI2NywgMC4wMDMyNjQsIDAuMDAzMjYzLCAwLjAwMzI2MSwgMC4wMDMyNiIsIFwKLSAgICAgICAgICAiMC4wMDMyNjQsIDAuMDAzMjY1LCAwLjAwMzI2LCAwLjAwMzI1OCwgMC4wMDMyNTYsIDAuMDAzMjU0LCAwLjAwMzI1MyIsIFwKLSAgICAgICAgICAiMC4wMDMyNTcsIDAuMDAzMjU5LCAwLjAwMzI1NCwgMC4wMDMyNTEsIDAuMDAzMjQ5LCAwLjAwMzI0OCwgMC4wMDMyNDciLCBcCi0gICAgICAgICAgIjAuMDAzMjUzLCAwLjAwMzI1NCwgMC4wMDMyNDksIDAuMDAzMjQ3LCAwLjAwMzI0NSwgMC4wMDMyNDMsIDAuMDAzMjQzIiwgXAotICAgICAgICAgICIwLjAwMzI0OCwgMC4wMDMyNSwgMC4wMDMyNDUsIDAuMDAzMjQyLCAwLjAwMzI0MSwgMC4wMDMyMzksIDAuMDAzMjM4IiwgXAotICAgICAgICAgICIwLjAwMzI0NCwgMC4wMDMyNDYsIDAuMDAzMjQxLCAwLjAwMzIzOCwgMC4wMDMyMzYsIDAuMDAzMjM1LCAwLjAwMzIzNCIsIFwKLSAgICAgICAgICAiMC4wMDMyNDEsIDAuMDAzMjQzLCAwLjAwMzIzOSwgMC4wMDMyMzYsIDAuMDAzMjM0LCAwLjAwMzIzMiwgMC4wMDMyMzEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDMyNzIsIDAuMDAzMjc3LCAwLjAwMzI4MywgMC4wMDMyODQsIDAuMDAzMjg1LCAwLjAwMzI4NiwgMC4wMDMyODYiLCBcCi0gICAgICAgICAgIjAuMDAzMjY1LCAwLjAwMzI2OSwgMC4wMDMyNzYsIDAuMDAzMjc3LCAwLjAwMzI3OCwgMC4wMDMyNzgsIDAuMDAzMjc5IiwgXAotICAgICAgICAgICIwLjAwMzI2LCAwLjAwMzI2NCwgMC4wMDMyNzEsIDAuMDAzMjcyLCAwLjAwMzI3MywgMC4wMDMyNzQsIDAuMDAzMjc0IiwgXAotICAgICAgICAgICIwLjAwMzI1NiwgMC4wMDMyNjEsIDAuMDAzMjY3LCAwLjAwMzI2OCwgMC4wMDMyNjksIDAuMDAzMjY5LCAwLjAwMzI3IiwgXAotICAgICAgICAgICIwLjAwMzI1NCwgMC4wMDMyNTksIDAuMDAzMjY1LCAwLjAwMzI2NiwgMC4wMDMyNjcsIDAuMDAzMjY4LCAwLjAwMzI2OCIsIFwKLSAgICAgICAgICAiMC4wMDMyNTMsIDAuMDAzMjU4LCAwLjAwMzI2NSwgMC4wMDMyNjYsIDAuMDAzMjY2LCAwLjAwMzI2NywgMC4wMDMyNjciLCBcCi0gICAgICAgICAgIjAuMDAzMjU3LCAwLjAwMzI2MSwgMC4wMDMyNjgsIDAuMDAzMjY5LCAwLjAwMzI3LCAwLjAwMzI3LCAwLjAwMzI3MSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUU4pICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4xMzMzNjY7Ci0gICAgZnVuY3Rpb24gOiAiUUJJTlQiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5vbl91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcmlzaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMzNDAyLCAwLjM3NzA5OCwgMC42MjE2MDgsIDAuODM3NDMyLCAxLjEyNTAzLCAxLjcwMDU3LCAyLjA1OTk1IiwgXAotICAgICAgICAgICIwLjM0NTc1NywgMC4zODg4MjcsIDAuNjMzMzQyLCAwLjg0OTEzNiwgMS4xMzY4LCAxLjcxMjIyLCAyLjA3MTY5IiwgXAotICAgICAgICAgICIwLjM2MTIyMywgMC40MDQzMDUsIDAuNjQ4ODM5LCAwLjg2NDU4MywgMS4xNTIyLCAxLjcyNzYyLCAyLjA4NzE1IiwgXAotICAgICAgICAgICIwLjM3NjYxNywgMC40MTk3MTMsIDAuNjY0MjA0LCAwLjg3OTk1NSwgMS4xNjc2MiwgMS43NDI5MywgMi4xMDI1NyIsIFwKLSAgICAgICAgICAiMC4zOTE3NzUsIDAuNDM0ODY5LCAwLjY3OTM2OCwgMC44OTUwOTksIDEuMTgyNzYsIDEuNzU4MDksIDIuMTE3NzIiLCBcCi0gICAgICAgICAgIjAuNDE2MDcsIDAuNDU5MTY4LCAwLjcwMzY1NCwgMC45MTk0MDcsIDEuMjA3MDQsIDEuNzgyMzcsIDIuMTQyMDQiLCBcCi0gICAgICAgICAgIjAuNDM2ODI4LCAwLjQ3OTkzLCAwLjcyNDQxNCwgMC45NDAyMDEsIDEuMjI3ODIsIDEuODAzMTIsIDIuMTYyNzkiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTU5NTM1LCAwLjI0NjgyNiwgMC43NDMyODIsIDEuMTg0MTEsIDEuNzcwMDgsIDIuOTQyNTQsIDMuNjczNzgiLCBcCi0gICAgICAgICAgIjAuMTU5NTM0LCAwLjI0Njc0OSwgMC43NDMyODMsIDEuMTgwODEsIDEuNzcwMjIsIDIuOTQyMzcsIDMuNjczNzYiLCBcCi0gICAgICAgICAgIjAuMTU5NTE1LCAwLjI0Njg2LCAwLjc0MzI2NywgMS4xODEzMiwgMS43Njk3NiwgMi45MzYzNywgMy42NzM3MyIsIFwKLSAgICAgICAgICAiMC4xNTk1NSwgMC4yNDY5MjcsIDAuNzQzMjI1LCAxLjE4MTk0LCAxLjc2Njc4LCAyLjk0MTMsIDMuNjczODMiLCBcCi0gICAgICAgICAgIjAuMTU5NTUzLCAwLjI0NjkyNiwgMC43NDMyNzIsIDEuMTgzNzksIDEuNzY5NiwgMi45NDEzMywgMy42NzM4MyIsIFwKLSAgICAgICAgICAiMC4xNTk1NjUsIDAuMjQ2OTI5LCAwLjc0NDAzMiwgMS4xODE4NCwgMS43NjY2MiwgMi45NDEyNSwgMy42NzM5OCIsIFwKLSAgICAgICAgICAiMC4xNTk1NzYsIDAuMjQ2OTI4LCAwLjc0NDUwMywgMS4xODE4NCwgMS43NjY2MywgMi45NDEyNCwgMy42NzM5OCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMTcyNzgsIDAuMzY2NjE3LCAwLjY0NjM0NSwgMC44OTMyMTYsIDEuMjIyMjgsIDEuODgwNTMsIDIuMjkxODYiLCBcCi0gICAgICAgICAgIjAuMzI4OTQzLCAwLjM3ODI4LCAwLjY1ODA0OSwgMC45MDQ4NzUsIDEuMjMzOTUsIDEuODkyMTksIDIuMzAzNjIiLCBcCi0gICAgICAgICAgIjAuMzQ0MTM1LCAwLjM5MzQ3NSwgMC42NzMyNTQsIDAuOTIwMDc5LCAxLjI0OTE1LCAxLjkwNzQyLCAyLjMxODg4IiwgXAotICAgICAgICAgICIwLjM1OTYzNiwgMC40MDg5NzUsIDAuNjg4NzQzLCAwLjkzNTU2OSwgMS4yNjQ2NCwgMS45MjI4OCwgMi4zMzQyOCIsIFwKLSAgICAgICAgICAiMC4zNzQ3MjEsIDAuNDI0MDU5LCAwLjcwMzgzOSwgMC45NTA2NjMsIDEuMjc5NzYsIDEuOTM3OTgsIDIuMzQ5NDciLCBcCi0gICAgICAgICAgIjAuMzk4OTYzLCAwLjQ0ODMzLCAwLjcyODA4NiwgMC45NzQ5MTQsIDEuMzAzOTgsIDEuOTYyMTcsIDIuMzczNyIsIFwKLSAgICAgICAgICAiMC40MTkzODUsIDAuNDY4NzE0LCAwLjc0ODQ5LCAwLjk5NTMyMSwgMS4zMjQzOCwgMS45ODI4NCwgMi4zOTQxMSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNzcxNjQsIDAuMjc0Njc1LCAwLjgzMDEzOSwgMS4zMTk1NSwgMS45NzMwMiwgMy4yODExNywgNC4wOTY4OSIsIFwKLSAgICAgICAgICAiMC4xNzcxNjYsIDAuMjc0NjczLCAwLjgyOTc2OSwgMS4zMTk1NSwgMS45NzMwNiwgMy4yODExLCA0LjA5Nzk0IiwgXAotICAgICAgICAgICIwLjE3NzEzNiwgMC4yNzQ2MzUsIDAuODI5NjksIDEuMzE5MzEsIDEuOTcyOTEsIDMuMjgxMDYsIDQuMDk4NDEiLCBcCi0gICAgICAgICAgIjAuMTc3MTYzLCAwLjI3NDY3NCwgMC44Mjk3NzIsIDEuMzE5NTQsIDEuOTczMDUsIDMuMjgwOTMsIDQuMDk3ODQiLCBcCi0gICAgICAgICAgIjAuMTc3MTM5LCAwLjI3NDYzNSwgMC44Mjk2NTEsIDEuMzE5MzYsIDEuOTcyNjksIDMuMjc4OTgsIDQuMDk4NDIiLCBcCi0gICAgICAgICAgIjAuMTc3MTU2LCAwLjI3NDcwNywgMC44Mjk3MDYsIDEuMzE4ODQsIDEuOTcyODYsIDMuMjc5ODMsIDQuMDk4MTYiLCBcCi0gICAgICAgICAgIjAuMTc3MTU1LCAwLjI3NDYwNCwgMC44Mjk3MTIsIDEuMzE5MDQsIDEuOTcyODMsIDMuMjgxMzcsIDQuMDk4MTQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzMjcyLCAwLjAwMzI3NywgMC4wMDMyODMsIDAuMDAzMjg0LCAwLjAwMzI4NSwgMC4wMDMyODYsIDAuMDAzMjg2IiwgXAotICAgICAgICAgICIwLjAwMzI2NSwgMC4wMDMyNjksIDAuMDAzMjc2LCAwLjAwMzI3NywgMC4wMDMyNzgsIDAuMDAzMjc4LCAwLjAwMzI3OSIsIFwKLSAgICAgICAgICAiMC4wMDMyNiwgMC4wMDMyNjQsIDAuMDAzMjcxLCAwLjAwMzI3MiwgMC4wMDMyNzMsIDAuMDAzMjc0LCAwLjAwMzI3NCIsIFwKLSAgICAgICAgICAiMC4wMDMyNTYsIDAuMDAzMjYxLCAwLjAwMzI2NywgMC4wMDMyNjgsIDAuMDAzMjY5LCAwLjAwMzI2OSwgMC4wMDMyNyIsIFwKLSAgICAgICAgICAiMC4wMDMyNTQsIDAuMDAzMjU5LCAwLjAwMzI2NSwgMC4wMDMyNjYsIDAuMDAzMjY3LCAwLjAwMzI2OCwgMC4wMDMyNjgiLCBcCi0gICAgICAgICAgIjAuMDAzMjUzLCAwLjAwMzI1OCwgMC4wMDMyNjUsIDAuMDAzMjY2LCAwLjAwMzI2NiwgMC4wMDMyNjcsIDAuMDAzMjY3IiwgXAotICAgICAgICAgICIwLjAwMzI1NywgMC4wMDMyNjEsIDAuMDAzMjY4LCAwLjAwMzI2OSwgMC4wMDMyNywgMC4wMDMyNywgMC4wMDMyNzEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDMyNzEsIDAuMDAzMjcyLCAwLjAwMzI2NywgMC4wMDMyNjQsIDAuMDAzMjYzLCAwLjAwMzI2MSwgMC4wMDMyNiIsIFwKLSAgICAgICAgICAiMC4wMDMyNjQsIDAuMDAzMjY1LCAwLjAwMzI2LCAwLjAwMzI1OCwgMC4wMDMyNTYsIDAuMDAzMjU0LCAwLjAwMzI1MyIsIFwKLSAgICAgICAgICAiMC4wMDMyNTcsIDAuMDAzMjU5LCAwLjAwMzI1NCwgMC4wMDMyNTEsIDAuMDAzMjQ5LCAwLjAwMzI0OCwgMC4wMDMyNDciLCBcCi0gICAgICAgICAgIjAuMDAzMjUzLCAwLjAwMzI1NCwgMC4wMDMyNDksIDAuMDAzMjQ3LCAwLjAwMzI0NSwgMC4wMDMyNDMsIDAuMDAzMjQzIiwgXAotICAgICAgICAgICIwLjAwMzI0OCwgMC4wMDMyNSwgMC4wMDMyNDUsIDAuMDAzMjQyLCAwLjAwMzI0MSwgMC4wMDMyMzksIDAuMDAzMjM4IiwgXAotICAgICAgICAgICIwLjAwMzI0NCwgMC4wMDMyNDYsIDAuMDAzMjQxLCAwLjAwMzIzOCwgMC4wMDMyMzYsIDAuMDAzMjM1LCAwLjAwMzIzNCIsIFwKLSAgICAgICAgICAiMC4wMDMyNDEsIDAuMDAzMjQzLCAwLjAwMzIzOSwgMC4wMDMyMzYsIDAuMDAzMjM0LCAwLjAwMzIzMiwgMC4wMDMyMzEiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFJOKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA1NDc1MzE7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNTQ3NTMxOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDU0NjA0OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjYxNCwgMC4wMDI2MDYsIDAuMDAyNiwgMC4wMDI1OTYsIDAuMDAyNTkzLCAwLjAwMjU5LCAwLjAwMjU4OCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNDYwMSwgMC4wMDQ1OTQsIDAuMDA0NTksIDAuMDA0NTg4LCAwLjAwNDU4NywgMC4wMDQ1ODYsIDAuMDA0NTg0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIkQmIVNFIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMV9BTl9TRV9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjIyNSwgLTAuMjEzNzUsIC0wLjIwNzUsIC0wLjE5NSwgLTAuMTg4NzUsIC0wLjE3MjUsIC0wLjE2Mzc1IiwgXAotICAgICAgICAgICItMC4yMzYyNSwgLTAuMjI1LCAtMC4yMTg3NSwgLTAuMjA2MjUsIC0wLjIsIC0wLjE4Mzc1LCAtMC4xNzUiLCBcCi0gICAgICAgICAgIi0wLjI0ODc1LCAtMC4yNDM3NSwgLTAuMjMxMjUsIC0wLjIxODc1LCAtMC4yMTI1LCAtMC4yMDI1LCAtMC4xODc1IiwgXAotICAgICAgICAgICItMC4yNjc1LCAtMC4yNTYyNSwgLTAuMjQzNzUsIC0wLjIzNzUsIC0wLjIyNSwgLTAuMjE1LCAtMC4yIiwgXAotICAgICAgICAgICItMC4yOCwgLTAuMjY4NzUsIC0wLjI1NjI1LCAtMC4yNSwgLTAuMjM3NSwgLTAuMjI3NSwgLTAuMjE4NzUiLCBcCi0gICAgICAgICAgIi0wLjMwMjUsIC0wLjI5MTI1LCAtMC4yNzg3NSwgLTAuMjcyNSwgLTAuMjYsIC0wLjI1LCAtMC4yNDEyNSIsIFwKLSAgICAgICAgICAiLTAuMzE3NSwgLTAuMzEyNSwgLTAuMywgLTAuMjg3NSwgLTAuMjgxMjUsIC0wLjI2NSwgLTAuMjU2MjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMzEyNSwgLTAuMDIsIC0wLjAwNzUsIDAuMDA1LCAwLjAyMzc1LCAwLjA0LCAwLjA2MTI1IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLjAxMjUsIDAuMDI4NzUsIDAuMDUiLCBcCi0gICAgICAgICAgIi0wLjA1NSwgLTAuMDQzNzUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAuMDE2MjUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjA2NzUsIC0wLjA1NjI1LCAtMC4wNDM3NSwgLTAuMDMxMjUsIC0wLjAxODc1LCAwLjAwMzc1LCAwLjAxODc1IiwgXAotICAgICAgICAgICItMC4wOCwgLTAuMDY4NzUsIC0wLjA1NjI1LCAtMC4wNDM3NSwgLTAuMDMxMjUsIC0wLjAwODc1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wOTYyNSwgLTAuMDg1LCAtMC4wNzg3NSwgLTAuMDY2MjUsIC0wLjA1Mzc1LCAtMC4wMzEyNSwgLTAuMDE2MjUiLCBcCi0gICAgICAgICAgIi0wLjExMTI1LCAtMC4xLCAtMC4wOTM3NSwgLTAuMDgxMjUsIC0wLjA2ODc1LCAtMC4wNTI1LCAtMC4wMzEyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiRCYhU0UiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8xX0FOX1NFX0VRXzAgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzMxMjUsIDAuMzIsIDAuMzAxMjUsIDAuMjg4NzUsIDAuMjc2MjUsIDAuMjYsIDAuMjQ1IiwgXAotICAgICAgICAgICIwLjM0MjUsIDAuMzMxMjUsIDAuMzE4NzUsIDAuMywgMC4yODc1LCAwLjI3MTI1LCAwLjI1NjI1IiwgXAotICAgICAgICAgICIwLjM2MTI1LCAwLjM0Mzc1LCAwLjMzMTI1LCAwLjMxMjUsIDAuMywgMC4yODM3NSwgMC4yNjg3NSIsIFwKLSAgICAgICAgICAiMC4zNzM3NSwgMC4zNjI1LCAwLjM0Mzc1LCAwLjMzMTI1LCAwLjMxODc1LCAwLjI5NjI1LCAwLjI4MTI1IiwgXAotICAgICAgICAgICIwLjM4NjI1LCAwLjM3NSwgMC4zNTYyNSwgMC4zNDM3NSwgMC4zMzEyNSwgMC4zMDg3NSwgMC4zIiwgXAotICAgICAgICAgICIwLjQwODc1LCAwLjM5NzUsIDAuMzc4NzUsIDAuMzY2MjUsIDAuMzUzNzUsIDAuMzMxMjUsIDAuMzE2MjUiLCBcCi0gICAgICAgICAgIjAuNDMsIDAuNDEyNSwgMC40LCAwLjM4MTI1LCAwLjM2ODc1LCAwLjM1MjUsIDAuMzM3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE1LCAwLjEzODc1LCAwLjEyLCAwLjEwMTI1LCAwLjA4ODc1LCAwLjA2NjI1LCAwLjA0NSIsIFwKLSAgICAgICAgICAiMC4xNjEyNSwgMC4xNSwgMC4xMzEyNSwgMC4xMTI1LCAwLjEsIDAuMDc3NSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiMC4xNzM3NSwgMC4xNjI1LCAwLjE0Mzc1LCAwLjEzMTI1LCAwLjExMjUsIDAuMDksIDAuMDY4NzUiLCBcCi0gICAgICAgICAgIjAuMTg2MjUsIDAuMTc1LCAwLjE2MjUsIDAuMTQzNzUsIDAuMTI1LCAwLjEwMjUsIDAuMDgxMjUiLCBcCi0gICAgICAgICAgIjAuMjA1LCAwLjE5Mzc1LCAwLjE3NSwgMC4xNTYyNSwgMC4xNDM3NSwgMC4xMjEyNSwgMC4xIiwgXAotICAgICAgICAgICIwLjIyNzUsIDAuMjE2MjUsIDAuMTk3NSwgMC4xNzg3NSwgMC4xNjYyNSwgMC4xNDM3NSwgMC4xMjI1IiwgXAotICAgICAgICAgICIwLjI0MjUsIDAuMjMxMjUsIDAuMjE4NzUsIDAuMiwgMC4xODEyNSwgMC4xNTg3NSwgMC4xMzc1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTRSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxMTEzMzQ7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxMTEyNzE7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxMTEzMzQ7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzMzQ4LCAwLjAwMzMzOCwgMC4wMDMzMzMsIDAuMDAzMzMyLCAwLjAwMzMzMywgMC4wMDMzMzMsIDAuMDAzMzMzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA0NDA1LCAwLjAwNDM4OCwgMC4wMDQzNzYsIDAuMDA0MzY5LCAwLjAwNDM2MywgMC4wMDQzNTYsIDAuMDA0MzUzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEJiFSTiZTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fUk5fRVFfMF9BTl9TSV9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjExODc1LCAtMC4xMDc1LCAtMC4wOTUsIC0wLjA4MjUsIC0wLjA3NjI1LCAtMC4wNiwgLTAuMDQ1IiwgXAotICAgICAgICAgICItMC4xMjM3NSwgLTAuMTE4NzUsIC0wLjEwNjI1LCAtMC4wOTM3NSwgLTAuMDg3NSwgLTAuMDcxMjUsIC0wLjA1NjI1IiwgXAotICAgICAgICAgICItMC4xNDI1LCAtMC4xMzEyNSwgLTAuMTE4NzUsIC0wLjEwNjI1LCAtMC4xLCAtMC4wODM3NSwgLTAuMDc1IiwgXAotICAgICAgICAgICItMC4xNTUsIC0wLjE0Mzc1LCAtMC4xMzEyNSwgLTAuMTE4NzUsIC0wLjExMjUsIC0wLjA5NjI1LCAtMC4wODc1IiwgXAotICAgICAgICAgICItMC4xNjc1LCAtMC4xNTYyNSwgLTAuMTQzNzUsIC0wLjEzNzUsIC0wLjEyNSwgLTAuMTA4NzUsIC0wLjEiLCBcCi0gICAgICAgICAgIi0wLjE5LCAtMC4xNzg3NSwgLTAuMTY2MjUsIC0wLjE1Mzc1LCAtMC4xNDc1LCAtMC4xMzEyNSwgLTAuMTIyNSIsIFwKLSAgICAgICAgICAiLTAuMjExMjUsIC0wLjIsIC0wLjE4NzUsIC0wLjE3NSwgLTAuMTY4NzUsIC0wLjE1MjUsIC0wLjEzNzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjI1LCAwLjAxNzUsIDAuMDMsIDAuMDQ4NzUsIDAuMDYxMjUsIDAuMDgzNzUsIDAuMDk4NzUiLCBcCi0gICAgICAgICAgIi0wLjAwNSwgMC4wMDYyNSwgMC4wMTg3NSwgMC4wMzc1LCAwLjA1LCAwLjA3MjUsIDAuMDkzNzUiLCBcCi0gICAgICAgICAgIi0wLjAxNzUsIC0wLjAwNjI1LCAwLjAwNjI1LCAwLjAyNSwgMC4wMzc1LCAwLjA2LCAwLjA3NSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAxODc1LCAtMC4wMDYyNSwgMC4wMDYyNSwgMC4wMjUsIDAuMDQ3NSwgMC4wNjI1IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLjAxMjUsIDAuMDM1LCAwLjA1IiwgXAotICAgICAgICAgICItMC4wNjUsIC0wLjA1Mzc1LCAtMC4wMzUsIC0wLjAyMjUsIC0wLjAxLCAwLjAxMjUsIDAuMDMzNzUiLCBcCi0gICAgICAgICAgIi0wLjA3Mzc1LCAtMC4wNjI1LCAtMC4wNSwgLTAuMDM3NSwgLTAuMDI1LCAtMC4wMDI1LCAwLjAxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiRCZSTiYhU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8xX0FOX1JOX0VRXzFfQU5fU0lfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wNSwgLTAuMDM4NzUsIC0wLjAyNjI1LCAtMC4wMDc1LCAwLjAwNSwgMC4wMjc1LCAwLjA0MjUiLCBcCi0gICAgICAgICAgIi0wLjA2MTI1LCAtMC4wNSwgLTAuMDM3NSwgLTAuMDI1LCAtMC4wMDYyNSwgMC4wMSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDgsIC0wLjA2MjUsIC0wLjA1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAwMjUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDkyNSwgLTAuMDgxMjUsIC0wLjA2ODc1LCAtMC4wNSwgLTAuMDM3NSwgLTAuMDE1LCAwIiwgXAotICAgICAgICAgICItMC4xMDUsIC0wLjA5Mzc1LCAtMC4wODEyNSwgLTAuMDY4NzUsIC0wLjA1NjI1LCAtMC4wMzM3NSwgLTAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMTI3NSwgLTAuMTE2MjUsIC0wLjEwMzc1LCAtMC4wOTEyNSwgLTAuMDc4NzUsIC0wLjA1NjI1LCAtMC4wMzUiLCBcCi0gICAgICAgICAgIi0wLjE0ODc1LCAtMC4xMzc1LCAtMC4xMjUsIC0wLjEwNjI1LCAtMC4wOTM3NSwgLTAuMDcxMjUsIC0wLjA1NjI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMTQzNzUsIC0wLjEzODc1LCAtMC4xMjYyNSwgLTAuMTIsIC0wLjEwNzUsIC0wLjA5NzUsIC0wLjA4MjUiLCBcCi0gICAgICAgICAgIi0wLjE2MTI1LCAtMC4xNSwgLTAuMTM3NSwgLTAuMTMxMjUsIC0wLjExODc1LCAtMC4xMDg3NSwgLTAuMSIsIFwKLSAgICAgICAgICAiLTAuMTczNzUsIC0wLjE2MjUsIC0wLjE1NjI1LCAtMC4xNDM3NSwgLTAuMTM3NSwgLTAuMTIxMjUsIC0wLjExMjUiLCBcCi0gICAgICAgICAgIi0wLjE4NjI1LCAtMC4xODEyNSwgLTAuMTY4NzUsIC0wLjE1NjI1LCAtMC4xNSwgLTAuMTMzNzUsIC0wLjEyNSIsIFwKLSAgICAgICAgICAiLTAuMTk4NzUsIC0wLjE5Mzc1LCAtMC4xODEyNSwgLTAuMTc1LCAtMC4xNjI1LCAtMC4xNTI1LCAtMC4xNDM3NSIsIFwKLSAgICAgICAgICAiLTAuMjIxMjUsIC0wLjIxNjI1LCAtMC4yMDM3NSwgLTAuMTkxMjUsIC0wLjE4NSwgLTAuMTY4NzUsIC0wLjE2IiwgXAotICAgICAgICAgICItMC4yNDI1LCAtMC4yMzEyNSwgLTAuMjE4NzUsIC0wLjIxMjUsIC0wLjIsIC0wLjE5LCAtMC4xNzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEJiFSTiZTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fUk5fRVFfMF9BTl9TSV9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE5Mzc1LCAwLjE4MjUsIDAuMTYzNzUsIDAuMTUxMjUsIDAuMTM4NzUsIDAuMTIyNSwgMC4xMDc1IiwgXAotICAgICAgICAgICIwLjIwNSwgMC4xOTM3NSwgMC4xNzUsIDAuMTYyNSwgMC4xNSwgMC4xMzM3NSwgMC4xMTg3NSIsIFwKLSAgICAgICAgICAiMC4yMTc1LCAwLjIwNjI1LCAwLjE4NzUsIDAuMTc1LCAwLjE2MjUsIDAuMTQ2MjUsIDAuMTMxMjUiLCBcCi0gICAgICAgICAgIjAuMjMsIDAuMjE4NzUsIDAuMiwgMC4xODc1LCAwLjE3NSwgMC4xNTg3NSwgMC4xNDM3NSIsIFwKLSAgICAgICAgICAiMC4yNDI1LCAwLjIzMTI1LCAwLjIxODc1LCAwLjIsIDAuMTg3NSwgMC4xNzEyNSwgMC4xNjI1IiwgXAotICAgICAgICAgICIwLjI2NSwgMC4yNTM3NSwgMC4yMzUsIDAuMjIyNSwgMC4yMSwgMC4xOTM3NSwgMC4xODUiLCBcCi0gICAgICAgICAgIjAuMjg2MjUsIDAuMjc1LCAwLjI1NjI1LCAwLjI0Mzc1LCAwLjIzMTI1LCAwLjIxNSwgMC4yIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg3NSwgMC4wNywgMC4wNTc1LCAwLjAzODc1LCAwLjAyNjI1LCAwLjAwMzc1LCAtMC4wMTc1IiwgXAotICAgICAgICAgICIwLjA5ODc1LCAwLjA4MTI1LCAwLjA2ODc1LCAwLjA1LCAwLjAzNzUsIDAuMDE1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiMC4xMTEyNSwgMC4xLCAwLjA4MTI1LCAwLjA2MjUsIDAuMDUsIDAuMDI3NSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiMC4xMjM3NSwgMC4xMTI1LCAwLjA5Mzc1LCAwLjA4MTI1LCAwLjA2MjUsIDAuMDQsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMTM2MjUsIDAuMTI1LCAwLjEwNjI1LCAwLjA5Mzc1LCAwLjA3NSwgMC4wNTI1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICIwLjE1ODc1LCAwLjE0NzUsIDAuMTI4NzUsIDAuMTE2MjUsIDAuMDk3NSwgMC4wNzUsIDAuMDUzNzUiLCBcCi0gICAgICAgICAgIjAuMTgsIDAuMTY4NzUsIDAuMTUsIDAuMTMxMjUsIDAuMTE4NzUsIDAuMDk2MjUsIDAuMDc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJEJlJOJiFTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzFfQU5fUk5fRVFfMV9BTl9TSV9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE2MjUsIDAuMTUxMjUsIDAuMTMyNSwgMC4xMiwgMC4xMDEyNSwgMC4wNzg3NSwgMC4wNTc1IiwgXAotICAgICAgICAgICIwLjE3Mzc1LCAwLjE2MjUsIDAuMTUsIDAuMTMxMjUsIDAuMTEyNSwgMC4wOSwgMC4wNjg3NSIsIFwKLSAgICAgICAgICAiMC4xOTI1LCAwLjE4MTI1LCAwLjE2MjUsIDAuMTQzNzUsIDAuMTMxMjUsIDAuMTA4NzUsIDAuMDg3NSIsIFwKLSAgICAgICAgICAiMC4yMDUsIDAuMTkzNzUsIDAuMTc1LCAwLjE2MjUsIDAuMTQzNzUsIDAuMTIxMjUsIDAuMSIsIFwKLSAgICAgICAgICAiMC4yMjM3NSwgMC4yMDYyNSwgMC4xOTM3NSwgMC4xNzUsIDAuMTYyNSwgMC4xMzM3NSwgMC4xMTI1IiwgXAotICAgICAgICAgICIwLjI0LCAwLjIyODc1LCAwLjIxNjI1LCAwLjE5NzUsIDAuMTg1LCAwLjE1NjI1LCAwLjEzNSIsIFwKLSAgICAgICAgICAiMC4yNjEyNSwgMC4yNSwgMC4yMzEyNSwgMC4yMTg3NSwgMC4yLCAwLjE3NzUsIDAuMTU2MjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yNTYyNSwgMC4yNDUsIDAuMjI2MjUsIDAuMjEzNzUsIDAuMTk1LCAwLjE3ODc1LCAwLjE2Mzc1IiwgXAotICAgICAgICAgICIwLjI2NzUsIDAuMjU2MjUsIDAuMjM3NSwgMC4yMjUsIDAuMjEyNSwgMC4xOSwgMC4xNzUiLCBcCi0gICAgICAgICAgIjAuMjgsIDAuMjY4NzUsIDAuMjUsIDAuMjM3NSwgMC4yMjUsIDAuMjA4NzUsIDAuMTkzNzUiLCBcCi0gICAgICAgICAgIjAuMjk4NzUsIDAuMjgxMjUsIDAuMjY4NzUsIDAuMjUsIDAuMjM3NSwgMC4yMjEyNSwgMC4yMDYyNSIsIFwKLSAgICAgICAgICAiMC4zMTEyNSwgMC4yOTM3NSwgMC4yODEyNSwgMC4yNjI1LCAwLjI1LCAwLjIzMzc1LCAwLjIxODc1IiwgXAotICAgICAgICAgICIwLjMyNzUsIDAuMzE2MjUsIDAuMzAzNzUsIDAuMjg1LCAwLjI3MjUsIDAuMjU2MjUsIDAuMjQxMjUiLCBcCi0gICAgICAgICAgIjAuMzQ4NzUsIDAuMzMxMjUsIDAuMzE4NzUsIDAuMzA2MjUsIDAuMjg3NSwgMC4yNzEyNSwgMC4yNTYyNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oU0kpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYwMjI0MjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MDA0MDI7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjAyMjQyOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjIxNiwgMC4wMDIyMDYsIDAuMDAyMjAxLCAwLjAwMjE5OCwgMC4wMDIxOTUsIDAuMDAyMTkyLCAwLjAwMjE5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzNDkzLCAwLjAwMzQ4OSwgMC4wMDM0ODYsIDAuMDAzNDg0LCAwLjAwMzQ4MywgMC4wMDM0ODEsIDAuMDAzNDgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiU0UiOwotICAgICAgc2RmX2NvbmQgOiAiU0UgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMTMxMjUsIC0wLjEyLCAtMC4xMDc1LCAtMC4xMDEyNSwgLTAuMDg4NzUsIC0wLjA3MjUsIC0wLjA2Mzc1IiwgXAotICAgICAgICAgICItMC4xNDI1LCAtMC4xMzEyNSwgLTAuMTE4NzUsIC0wLjExMjUsIC0wLjEsIC0wLjA4Mzc1LCAtMC4wNzUiLCBcCi0gICAgICAgICAgIi0wLjE1NSwgLTAuMTQzNzUsIC0wLjEzNzUsIC0wLjEyNSwgLTAuMTEyNSwgLTAuMDk2MjUsIC0wLjA4NzUiLCBcCi0gICAgICAgICAgIi0wLjE2NzUsIC0wLjE1NjI1LCAtMC4xNSwgLTAuMTM3NSwgLTAuMTI1LCAtMC4xMTUsIC0wLjEiLCBcCi0gICAgICAgICAgIi0wLjE4LCAtMC4xNzUsIC0wLjE2MjUsIC0wLjE1LCAtMC4xNDM3NSwgLTAuMTI3NSwgLTAuMTEyNSIsIFwKLSAgICAgICAgICAiLTAuMjAyNSwgLTAuMTk3NSwgLTAuMTg1LCAtMC4xNzI1LCAtMC4xNjYyNSwgLTAuMTUsIC0wLjEzNSIsIFwKLSAgICAgICAgICAiLTAuMjIzNzUsIC0wLjIxMjUsIC0wLjIsIC0wLjE5Mzc1LCAtMC4xODEyNSwgLTAuMTY1LCAtMC4xNTYyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAyNSwgLTAuMDEzNzUsIDAuMDA1LCAwLjAxNzUsIDAuMDMsIDAuMDUyNSwgMC4wNjc1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDI1LCAtMC4wMDYyNSwgMC4wMDYyNSwgMC4wMTg3NSwgMC4wNDEyNSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjAzNzUsIC0wLjAyNSwgLTAuMDA2MjUsIDAuMDA2MjUsIDAuMDI4NzUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIi0wLjA2MTI1LCAtMC4wNSwgLTAuMDM3NSwgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLjAxNjI1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wNzM3NSwgLTAuMDYyNSwgLTAuMDQzNzUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgMC4wMDM3NSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDksIC0wLjA3ODc1LCAtMC4wNjYyNSwgLTAuMDUzNzUsIC0wLjAzNSwgLTAuMDE4NzUsIDAuMDAyNSIsIFwKLSAgICAgICAgICAiLTAuMTA1LCAtMC4wOTM3NSwgLTAuMDgxMjUsIC0wLjA2ODc1LCAtMC4wNTYyNSwgLTAuMDMzNzUsIC0wLjAxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlNFIjsKLSAgICAgIHNkZl9jb25kIDogIlNFID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIwNjI1LCAwLjE5NSwgMC4xNzYyNSwgMC4xNjM3NSwgMC4xNTEyNSwgMC4xMzUsIDAuMTIiLCBcCi0gICAgICAgICAgIjAuMjE3NSwgMC4yMDYyNSwgMC4xODc1LCAwLjE3NSwgMC4xNjI1LCAwLjE0NjI1LCAwLjEzNzUiLCBcCi0gICAgICAgICAgIjAuMjMsIDAuMjE4NzUsIDAuMjA2MjUsIDAuMTg3NSwgMC4xODEyNSwgMC4xNTg3NSwgMC4xNSIsIFwKLSAgICAgICAgICAiMC4yNDg3NSwgMC4yMzEyNSwgMC4yMTg3NSwgMC4yMDYyNSwgMC4xOTM3NSwgMC4xNzc1LCAwLjE2MjUiLCBcCi0gICAgICAgICAgIjAuMjYxMjUsIDAuMjUsIDAuMjMxMjUsIDAuMjE4NzUsIDAuMjA2MjUsIDAuMTksIDAuMTc1IiwgXAotICAgICAgICAgICIwLjI4Mzc1LCAwLjI2NjI1LCAwLjI1Mzc1LCAwLjI0MTI1LCAwLjIyODc1LCAwLjIxMjUsIDAuMTk3NSIsIFwKLSAgICAgICAgICAiMC4yOTg3NSwgMC4yODc1LCAwLjI3NSwgMC4yNTYyNSwgMC4yNDM3NSwgMC4yMjc1LCAwLjIxODc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTM3NSwgMC4xMjYyNSwgMC4xMDc1LCAwLjA5NSwgMC4wNzYyNSwgMC4wNTM3NSwgMC4wMzI1IiwgXAotICAgICAgICAgICIwLjE0ODc1LCAwLjEzNzUsIDAuMTE4NzUsIDAuMTA2MjUsIDAuMDg3NSwgMC4wNjUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMTYxMjUsIDAuMTUsIDAuMTMxMjUsIDAuMTE4NzUsIDAuMSwgMC4wNzc1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICIwLjE3Mzc1LCAwLjE2MjUsIDAuMTQzNzUsIDAuMTMxMjUsIDAuMTEyNSwgMC4wOSwgMC4wNjg3NSIsIFwKLSAgICAgICAgICAiMC4xODYyNSwgMC4xNzUsIDAuMTU2MjUsIDAuMTQzNzUsIDAuMTI1LCAwLjEwMjUsIDAuMDgxMjUiLCBcCi0gICAgICAgICAgIjAuMjA4NzUsIDAuMTkxMjUsIDAuMTc4NzUsIDAuMTYsIDAuMTQ3NSwgMC4xMTg3NSwgMC4wOTc1IiwgXAotICAgICAgICAgICIwLjIyMzc1LCAwLjIxMjUsIDAuMTkzNzUsIDAuMTgxMjUsIDAuMTYyNSwgMC4xNCwgMC4xMTg3NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBTREZGVFJYMiAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoU0RGRlRSWDIpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC40MjI2NjQ7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgZmYgKE4zMCxRQklOVCkgewotICAgIG5leHRfc3RhdGUgOiAiKChTRSBTSSkgKyAoIVNFIChEIFJOKSkpIjsKLSAgICBjbG9ja2VkX29uIDogIkNLIjsKLSAgfQotICBwaW4oQ0spICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDUzMzA5MTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA1MzI4ODc7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNTMzMDkxOwotICAgIGNsb2NrIDogdHJ1ZTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDIzMzIsIDAuMDAyMzE5LCAwLjAwMjMwOSwgMC4wMDIzMDIsIDAuMDAyMjk2LCAwLjAwMjI5LCAwLjAwMjI4NyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNDgzMiwgMC4wMDQ4MjIsIDAuMDA0ODE0LCAwLjAwNDgwOCwgMC4wMDQ4MDcsIDAuMDA0ODA5LCAwLjAwNDgwNyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQmIVJOJiFTRSYhU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1JOX0VRXzBfQU5fU0VfRVFfMF9BTl9TSV9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMzIzODMyLCAwLjMzNTQ0LCAwLjM1MDgyOSwgMC4zNjYyMjgsIDAuMzgxNjcsIDAuNDA1OTgsIDAuNDI2OTE0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4xOTc0ODQsIDAuMjA4NTI4LCAwLjIyMzg4MiwgMC4yMzg3NiwgMC4yNTMyNzcsIDAuMjc2MTI5LCAwLjI5NTEwOSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNTg4MTQ7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNTg3NzE3OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDU4ODE0OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjYyMSwgMC4wMDI2MTEsIDAuMDAyNjA0LCAwLjAwMjU5OSwgMC4wMDI1OTgsIDAuMDAyNTk1LCAwLjAwMjU5MyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNDI4MiwgMC4wMDQyNzksIDAuMDA0Mjc0LCAwLjAwNDI3MSwgMC4wMDQyNjksIDAuMDA0MjY2LCAwLjAwNDI2MyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJSTiYhU0UiOwotICAgICAgc2RmX2NvbmQgOiAiUk5fRVFfMV9BTl9TRV9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjIxMjUsIC0wLjIwMTI1LCAtMC4xODg3NSwgLTAuMTgyNSwgLTAuMTcsIC0wLjE2LCAtMC4xNDUiLCBcCi0gICAgICAgICAgIi0wLjIxNzUsIC0wLjIxMjUsIC0wLjIsIC0wLjE5Mzc1LCAtMC4xODEyNSwgLTAuMTY1LCAtMC4xNTYyNSIsIFwKLSAgICAgICAgICAiLTAuMjMsIC0wLjIyNSwgLTAuMjEyNSwgLTAuMjA2MjUsIC0wLjE5Mzc1LCAtMC4xNzc1LCAtMC4xNjg3NSIsIFwKLSAgICAgICAgICAiLTAuMjQ4NzUsIC0wLjIzNzUsIC0wLjIyNSwgLTAuMjE4NzUsIC0wLjIwNjI1LCAtMC4xOTYyNSwgLTAuMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMjYxMjUsIC0wLjI1LCAtMC4yNDM3NSwgLTAuMjMxMjUsIC0wLjIyNSwgLTAuMjA4NzUsIC0wLjIiLCBcCi0gICAgICAgICAgIi0wLjI4Mzc1LCAtMC4yNzI1LCAtMC4yNjYyNSwgLTAuMjUzNzUsIC0wLjI0MTI1LCAtMC4yMzEyNSwgLTAuMjIyNSIsIFwKLSAgICAgICAgICAiLTAuMjk4NzUsIC0wLjI5Mzc1LCAtMC4yODEyNSwgLTAuMjc1LCAtMC4yNjI1LCAtMC4yNTI1LCAtMC4yMzc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDI1LCAtMC4wMDc1LCAwLjAwNSwgMC4wMTc1LCAwLjAzLCAwLjA1MjUsIDAuMDY3NSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAxODc1LCAtMC4wMDYyNSwgMC4wMDYyNSwgMC4wMTg3NSwgMC4wNDEyNSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjAzNzUsIC0wLjAyNSwgLTAuMDA2MjUsIDAuMDA2MjUsIDAuMDIyNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDYxMjUsIC0wLjA1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAxMjUsIDAuMDEsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjA3Mzc1LCAtMC4wNjI1LCAtMC4wNSwgLTAuMDM3NSwgLTAuMDI1LCAtMC4wMDI1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjA5LCAtMC4wNzg3NSwgLTAuMDY2MjUsIC0wLjA1Mzc1LCAtMC4wNDEyNSwgLTAuMDI1LCAtMC4wMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMTA1LCAtMC4wOTM3NSwgLTAuMDgxMjUsIC0wLjA2ODc1LCAtMC4wNjI1LCAtMC4wNCwgLTAuMDI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJSTiYhU0UiOwotICAgICAgc2RmX2NvbmQgOiAiUk5fRVFfMV9BTl9TRV9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMyNSwgMC4zMTM3NSwgMC4yOTUsIDAuMjgyNSwgMC4yNywgMC4yNDc1LCAwLjIzMjUiLCBcCi0gICAgICAgICAgIjAuMzM2MjUsIDAuMzI1LCAwLjMwNjI1LCAwLjI5Mzc1LCAwLjI4MTI1LCAwLjI1ODc1LCAwLjI0Mzc1IiwgXAotICAgICAgICAgICIwLjM0ODc1LCAwLjMzNzUsIDAuMzE4NzUsIDAuMzA2MjUsIDAuMjkzNzUsIDAuMjcxMjUsIDAuMjU2MjUiLCBcCi0gICAgICAgICAgIjAuMzYxMjUsIDAuMzUsIDAuMzMxMjUsIDAuMzE4NzUsIDAuMzA2MjUsIDAuMjgzNzUsIDAuMjY4NzUiLCBcCi0gICAgICAgICAgIjAuMzgsIDAuMzYyNSwgMC4zNSwgMC4zMzEyNSwgMC4zMTg3NSwgMC4zMDI1LCAwLjI4NzUiLCBcCi0gICAgICAgICAgIjAuNDAyNSwgMC4zODUsIDAuMzcyNSwgMC4zNTM3NSwgMC4zNDEyNSwgMC4zMjUsIDAuMzEiLCBcCi0gICAgICAgICAgIjAuNDE3NSwgMC40MDYyNSwgMC4zODc1LCAwLjM3NSwgMC4zNjI1LCAwLjM0LCAwLjMyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE0Mzc1LCAwLjEzMjUsIDAuMTEzNzUsIDAuMTAxMjUsIDAuMDgyNSwgMC4wNiwgMC4wMzg3NSIsIFwKLSAgICAgICAgICAiMC4xNTUsIDAuMTQzNzUsIDAuMTI1LCAwLjExMjUsIDAuMDkzNzUsIDAuMDcxMjUsIDAuMDUiLCBcCi0gICAgICAgICAgIjAuMTY3NSwgMC4xNTYyNSwgMC4xNDM3NSwgMC4xMjUsIDAuMTA2MjUsIDAuMDgzNzUsIDAuMDYyNSIsIFwKLSAgICAgICAgICAiMC4xOCwgMC4xNjg3NSwgMC4xNTYyNSwgMC4xMzc1LCAwLjEyNSwgMC4wOTYyNSwgMC4wNzUiLCBcCi0gICAgICAgICAgIjAuMTk4NzUsIDAuMTg3NSwgMC4xNjg3NSwgMC4xNSwgMC4xMzc1LCAwLjExNSwgMC4wOTM3NSIsIFwKLSAgICAgICAgICAiMC4yMjEyNSwgMC4yMSwgMC4xOTEyNSwgMC4xNzI1LCAwLjE2LCAwLjEzNzUsIDAuMTE2MjUiLCBcCi0gICAgICAgICAgIjAuMjM2MjUsIDAuMjI1LCAwLjIxMjUsIDAuMTkzNzUsIDAuMTgxMjUsIDAuMTUyNSwgMC4xMzEyNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjI2MTg4ODsKLSAgICBmdW5jdGlvbiA6ICJOMzAiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5vbl91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcmlzaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI0NzA2MSwgMC40MjY4NTQsIDAuNTY5NDkyLCAwLjc0ODk2MiwgMC45MjY5MTEsIDEuMTAzOTksIDEuMjgzNjgiLCBcCi0gICAgICAgICAgIjAuMjU4NjY1LCAwLjQzODQ2NSwgMC41ODE3MTIsIDAuNzYxOTE5LCAwLjkzODU3LCAxLjExNzczLCAxLjI5NTI4IiwgXAotICAgICAgICAgICIwLjI3MzkwNywgMC40NTQwNzYsIDAuNTk3MzcyLCAwLjc3NjU5OCwgMC45NTQ2NDYsIDEuMTM0MTIsIDEuMzEwMjMiLCBcCi0gICAgICAgICAgIjAuMjg5Mzk5LCAwLjQ2OTQ4MSwgMC42MTM0NjEsIDAuNzkxODc2LCAwLjk2OTYwNCwgMS4xNDg0NiwgMS4zMjYwNCIsIFwKLSAgICAgICAgICAiMC4zMDQ2MzQsIDAuNDg0NzEyLCAwLjYyODU5LCAwLjgwNzEwOSwgMC45ODQ4MzgsIDEuMTYzNTIsIDEuMzQxMjgiLCBcCi0gICAgICAgICAgIjAuMzI4ODU1LCAwLjUwODM1MiwgMC42NTI0NTMsIDAuODMxNDA4LCAxLjAwOTI2LCAxLjE4OCwgMS4zNjU0NSIsIFwKLSAgICAgICAgICAiMC4zNDk1NywgMC41MjkwNywgMC42NzMxNDIsIDAuODUyMTEsIDEuMDMwNDcsIDEuMjA4NjYsIDEuMzg2ODgiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDkzNTYzLCAwLjQ1MzE4NiwgMC43NDIwNjksIDEuMTEwNjIsIDEuNDc3MjQsIDEuODQyMjcsIDIuMjIxMjEiLCBcCi0gICAgICAgICAgIjAuMDkzNjA4LCAwLjQ1MzE1MywgMC43NTAwOTUsIDEuMTEzOTIsIDEuNDg1OTEsIDEuODI4MjQsIDIuMjIxMTIiLCBcCi0gICAgICAgICAgIjAuMDkzNDY4LCAwLjQ1NTI4NiwgMC43NDc2ODcsIDEuMTEwNTUsIDEuNDY0MzMsIDEuODM0NTgsIDIuMjIxMDgiLCBcCi0gICAgICAgICAgIjAuMDkzNTM5LCAwLjQ1MzI3MiwgMC43NDQxNDUsIDEuMTEyODksIDEuNDczMjIsIDEuODUzNTcsIDIuMjIxMTkiLCBcCi0gICAgICAgICAgIjAuMDkzNTQyLCAwLjQ1MjkwOCwgMC43NDQ4NTEsIDEuMTEyODQsIDEuNDczMjUsIDEuODUzNTUsIDIuMjIxMTEiLCBcCi0gICAgICAgICAgIjAuMDkzNTgxLCAwLjQ1Mzc1OSwgMC43NDc4OTksIDEuMTE0NzMsIDEuNDcwNzQsIDEuODUzNTYsIDIuMjIxMTEiLCBcCi0gICAgICAgICAgIjAuMDkzNTg1LCAwLjQ1Mzc3NywgMC43NDgwNTcsIDEuMTE0NTEsIDEuNDcwOTYsIDEuODUzNTYsIDIuMjIxMTEiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjc4NTkzLCAwLjQ4NjIzNCwgMC42NTA4NTEsIDAuODU3NjI0LCAxLjA2Mzg5LCAxLjI3MzE3LCAxLjQ3NjY4IiwgXAotICAgICAgICAgICIwLjI5MDI1NCwgMC40OTc5MiwgMC42NjI0NTUsIDAuODcwMzY0LCAxLjA3NDcxLCAxLjI4MTU1LCAxLjQ5MTYyIiwgXAotICAgICAgICAgICIwLjMwNTU4MywgMC41MTMxNjgsIDAuNjc3ODA3LCAwLjg4Mzk5MiwgMS4wOTAxLCAxLjI5NjMyLCAxLjUwNDMzIiwgXAotICAgICAgICAgICIwLjMyMTA3OCwgMC41Mjg3NDksIDAuNjkzNDA3LCAwLjkwMDgyNiwgMS4xMDYwNCwgMS4zMTI1MiwgMS41MTg5MSIsIFwKLSAgICAgICAgICAiMC4zMzY0MjMsIDAuNTQ0MDQ0LCAwLjcwODYyNSwgMC45MTU5OTUsIDEuMTIzODUsIDEuMzI3MDMsIDEuNTMzMjIiLCBcCi0gICAgICAgICAgIjAuMzYwNzM4LCAwLjU2ODM3NywgMC43MzI5OTQsIDAuOTM5NDQyLCAxLjE0NTgzLCAxLjM1MjM5LCAxLjU1ODY2IiwgXAotICAgICAgICAgICIwLjM4MTY2NCwgMC41ODkyNSwgMC43NTM4ODgsIDAuOTYwMDQzLCAxLjE2NjIsIDEuMzcyNDEsIDEuNTgwMjciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTAyMTE1LCAwLjUwNzQ0OCwgMC44MzQ4MTEsIDEuMjQ1ODYsIDEuNjU3MDEsIDIuMDY3MDQsIDIuNDc3NTEiLCBcCi0gICAgICAgICAgIjAuMTAyMTEzLCAwLjUwNzQ0NSwgMC44MzU1OTEsIDEuMjQ3ODcsIDEuNjU3MTQsIDIuMDY1OTEsIDIuNDc4MjciLCBcCi0gICAgICAgICAgIjAuMTAyMzM3LCAwLjUwNzQxMSwgMC44MzU3NDcsIDEuMjQ3OTIsIDEuNjU5ODQsIDIuMDY3ODMsIDIuNDc1NjIiLCBcCi0gICAgICAgICAgIjAuMTAyNjIzLCAwLjUwNzQzNSwgMC44MzU2NTUsIDEuMjQ3MywgMS42NTc0OCwgMi4wNjkwOSwgMi40ODA4MiIsIFwKLSAgICAgICAgICAiMC4xMDIzMzcsIDAuNTA3NDQ5LCAwLjgzNDE1NSwgMS4yNDUzNiwgMS42NTY0NSwgMi4wNjUyOSwgMi40ODA2NyIsIFwKLSAgICAgICAgICAiMC4xMDIxMDEsIDAuNTA3NDQ5LCAwLjgzNDcyOSwgMS4yNDY1OSwgMS42NTQ0OSwgMi4wNjkzMiwgMi40ODA3IiwgXAotICAgICAgICAgICIwLjEwMjMzNSwgMC41MDc0MTksIDAuODM1NzQ5LCAxLjI0NTE4LCAxLjY1NzA3LCAyLjA2ODQ5LCAyLjQ3NzE2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDExNSwgMC4wMDQxNDQsIDAuMDA0MTQzLCAwLjAwNDE0MiwgMC4wMDQxNDEsIDAuMDA0MTQsIDAuMDA0MTQiLCBcCi0gICAgICAgICAgIjAuMDA0MTA4LCAwLjAwNDEzNywgMC4wMDQxMzYsIDAuMDA0MTM1LCAwLjAwNDEzNCwgMC4wMDQxMzQsIDAuMDA0MTM0IiwgXAotICAgICAgICAgICIwLjAwNDEwMiwgMC4wMDQxMzEsIDAuMDA0MTMxLCAwLjAwNDEyOSwgMC4wMDQxMjksIDAuMDA0MTI4LCAwLjAwNDEyOCIsIFwKLSAgICAgICAgICAiMC4wMDQwOTcsIDAuMDA0MTI3LCAwLjAwNDEyNiwgMC4wMDQxMjUsIDAuMDA0MTI0LCAwLjAwNDEyMywgMC4wMDQxMjIiLCBcCi0gICAgICAgICAgIjAuMDA0MDkzLCAwLjAwNDEyMywgMC4wMDQxMjIsIDAuMDA0MTIxLCAwLjAwNDEyLCAwLjAwNDEyLCAwLjAwNDExOSIsIFwKLSAgICAgICAgICAiMC4wMDQwODgsIDAuMDA0MTE4LCAwLjAwNDExNywgMC4wMDQxMTYsIDAuMDA0MTE1LCAwLjAwNDExNSwgMC4wMDQxMTQiLCBcCi0gICAgICAgICAgIjAuMDA0MDg2LCAwLjAwNDExNiwgMC4wMDQxMTYsIDAuMDA0MTE0LCAwLjAwNDExMywgMC4wMDQxMTIsIDAuMDA0MTEyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0MzIxLCAwLjAwNDM1OCwgMC4wMDQzNjIsIDAuMDA0MzY0LCAwLjAwNDM2NiwgMC4wMDQzNjYsIDAuMDA0MzY2IiwgXAotICAgICAgICAgICIwLjAwNDMxNCwgMC4wMDQzNTEsIDAuMDA0MzU1LCAwLjAwNDM1NywgMC4wMDQzNTgsIDAuMDA0MzU5LCAwLjAwNDM1OSIsIFwKLSAgICAgICAgICAiMC4wMDQzMDksIDAuMDA0MzQ1LCAwLjAwNDM1LCAwLjAwNDM1MiwgMC4wMDQzNTMsIDAuMDA0MzU0LCAwLjAwNDM1NCIsIFwKLSAgICAgICAgICAiMC4wMDQzMDUsIDAuMDA0MzQyLCAwLjAwNDM0NiwgMC4wMDQzNDksIDAuMDA0MzUsIDAuMDA0MzUsIDAuMDA0MzUxIiwgXAotICAgICAgICAgICIwLjAwNDMwNCwgMC4wMDQzNDEsIDAuMDA0MzQ1LCAwLjAwNDM0NywgMC4wMDQzNDgsIDAuMDA0MzQ5LCAwLjAwNDM0OSIsIFwKLSAgICAgICAgICAiMC4wMDQzMDMsIDAuMDA0MzM5LCAwLjAwNDM0NCwgMC4wMDQzNDYsIDAuMDA0MzQ3LCAwLjAwNDM0NywgMC4wMDQzNDgiLCBcCi0gICAgICAgICAgIjAuMDA0MzA1LCAwLjAwNDM0MSwgMC4wMDQzNDUsIDAuMDA0MzQ3LCAwLjAwNDM0OCwgMC4wMDQzNDksIDAuMDA0MzQ5Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihRTikgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjI2NDY1NzsKLSAgICBmdW5jdGlvbiA6ICJRQklOVCI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3NlbnNlIDogbm9uX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiByaXNpbmdfZWRnZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzIzODM3LCAwLjUwMTM5OSwgMC42NDM4MTEsIDAuODIxNzQsIDAuOTk5NzI1LCAxLjE3NzczLCAxLjM1NTY5IiwgXAotICAgICAgICAgICIwLjMzNTQ0NCwgMC41MTMwNDcsIDAuNjU1NDIsIDAuODMzNDA2LCAxLjAxMTQxLCAxLjE4OTM2LCAxLjM2NzQiLCBcCi0gICAgICAgICAgIjAuMzUwODM0LCAwLjUyODM1OCwgMC42NzA3NjQsIDAuODQ4NzkxLCAxLjAyNjgxLCAxLjIwNDg1LCAxLjM4MjY1IiwgXAotICAgICAgICAgICIwLjM2NjI0LCAwLjU0Mzg3NiwgMC42ODYzNDYsIDAuODY0MDk5LCAxLjA0MjI0LCAxLjIyMDI1LCAxLjM5ODI1IiwgXAotICAgICAgICAgICIwLjM4MTY3NCwgMC41NTkyMTEsIDAuNzAxNTg0LCAwLjg3OTU0NSwgMS4wNTc1OSwgMS4yMzU1OCwgMS40MTM1NyIsIFwKLSAgICAgICAgICAiMC40MDU5ODIsIDAuNTgzNTQyLCAwLjcyNTk1NCwgMC45MDM5MDksIDEuMDgxODgsIDEuMjU5ODYsIDEuNDM3ODQiLCBcCi0gICAgICAgICAgIjAuNDI2OTE1LCAwLjYwNDQ0MSwgMC43NDY4NDgsIDAuOTI0ODQ4LCAxLjEwMjg1LCAxLjI4MDkzLCAxLjQ1ODc0Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5MDY2MSwgMC40NDg5MTgsIDAuNzM3NDA4LCAxLjEwMDA2LCAxLjQ2MjYyLCAxLjgyODM0LCAyLjE4NzI1IiwgXAotICAgICAgICAgICIwLjA5MDYwNiwgMC40NDg5MSwgMC43MzcwNDgsIDEuMTAyMzYsIDEuNDYxOSwgMS44MjUwMiwgMi4xOTE0NiIsIFwKLSAgICAgICAgICAiMC4wOTA2NzgsIDAuNDQ4ODkzLCAwLjczNjkzMywgMS4wOTksIDEuNDYxMTIsIDEuODIzNDksIDIuMTkwOTciLCBcCi0gICAgICAgICAgIjAuMDkwNjMsIDAuNDQ5NDQzLCAwLjczNzg4NSwgMS4xMDE3MSwgMS40NjI1NCwgMS44MjUwOCwgMi4xODc0OCIsIFwKLSAgICAgICAgICAiMC4wOTA2NzcsIDAuNDQ4OTE5LCAwLjczNzEwMSwgMS4xMDE5MiwgMS40NjU0NiwgMS44MjM3NCwgMi4xODc5OCIsIFwKLSAgICAgICAgICAiMC4wOTA2NjMsIDAuNDQ4OTE5LCAwLjczNzQzMywgMS4xMDAxNiwgMS40NjI2LCAxLjgyNTAyLCAyLjE4NzM0IiwgXAotICAgICAgICAgICIwLjA5MDY3NywgMC40NDg4OTksIDAuNzM2OTEyLCAxLjA5OTE2LCAxLjQ2MTI4LCAxLjgyMzQ1LCAyLjE5MDQ4Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI5OTY5LCAwLjUwNTM1NCwgMC42NzAyMDUsIDAuODc2MjgzLCAxLjA4MjMzLCAxLjI4ODEyLCAxLjQ5NDQyIiwgXAotICAgICAgICAgICIwLjMxMTI4NywgMC41MTY5NjEsIDAuNjgxODQ2LCAwLjg4ODAzOSwgMS4wOTM5MywgMS4zLCAxLjUwNjA1IiwgXAotICAgICAgICAgICIwLjMyNjQ5OCwgMC41MzIyMDgsIDAuNjk3MTQsIDAuOTAzMTkxLCAxLjEwOTIsIDEuMzE1MzIsIDEuNTIxMjgiLCBcCi0gICAgICAgICAgIjAuMzQyMDI0LCAwLjU0NzcwMSwgMC43MTI2NjUsIDAuOTE4NjUxLCAxLjEyNDY3LCAxLjMzMDc2LCAxLjUzNjc2IiwgXAotICAgICAgICAgICIwLjM1NzI1OSwgMC41NjI5MzgsIDAuNzI3ODkxLCAwLjkzMzg4NiwgMS4xMzk5LCAxLjM0NTk4LCAxLjU1MTk5IiwgXAotICAgICAgICAgICIwLjM4MTQ2OSwgMC41ODcxODIsIDAuNzUyMDM0LCAwLjk1ODEwMSwgMS4xNjQxMiwgMS4zNzAyMSwgMS41NzYxOSIsIFwKLSAgICAgICAgICAiMC40MDIxODQsIDAuNjA3ODk3LCAwLjc3Mjc0OCwgMC45Nzg4MTQsIDEuMTg0OTEsIDEuMzkwODksIDEuNTk2OTgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk5NTg3LCAwLjUwNjI5NCwgMC44MzQ2OTMsIDEuMjQ0NTcsIDEuNjU0ODUsIDIuMDY0ODUsIDIuNDc1NiIsIFwKLSAgICAgICAgICAiMC4wOTk2MDIsIDAuNTA2Mjg5LCAwLjgzNDU2NCwgMS4yNDQyMywgMS42NTUwMywgMi4wNjQ3NCwgMi40NzU2MSIsIFwKLSAgICAgICAgICAiMC4wOTk2MSwgMC41MDY0MjIsIDAuODM0MDU0LCAxLjI0NDM0LCAxLjY1NDUxLCAyLjA2NDQ1LCAyLjQ3NTU3IiwgXAotICAgICAgICAgICIwLjA5OTYxNiwgMC41MDYxNTQsIDAuODMzNjMyLCAxLjI0Mzg0LCAxLjY1NDczLCAyLjA2NTQsIDIuNDc1NiIsIFwKLSAgICAgICAgICAiMC4wOTk2MTcsIDAuNTA2MTM3LCAwLjgzMzcwNSwgMS4yNDM4MywgMS42NTQ3MywgMi4wNjUzOCwgMi40NzU1OSIsIFwKLSAgICAgICAgICAiMC4wOTk2MjksIDAuNTA2MTksIDAuODM0NDUxLCAxLjI0NDA5LCAxLjY1NDY3LCAyLjA2NTQyLCAyLjQ3NTU4IiwgXAotICAgICAgICAgICIwLjA5OTYyOSwgMC41MDYxOTIsIDAuODM0NDU3LCAxLjI0NDA1LCAxLjY1NDY3LCAyLjA2NTQyLCAyLjQ3NTU4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDMyMSwgMC4wMDQzNTgsIDAuMDA0MzYyLCAwLjAwNDM2NCwgMC4wMDQzNjYsIDAuMDA0MzY2LCAwLjAwNDM2NiIsIFwKLSAgICAgICAgICAiMC4wMDQzMTQsIDAuMDA0MzUxLCAwLjAwNDM1NSwgMC4wMDQzNTcsIDAuMDA0MzU4LCAwLjAwNDM1OSwgMC4wMDQzNTkiLCBcCi0gICAgICAgICAgIjAuMDA0MzA5LCAwLjAwNDM0NSwgMC4wMDQzNSwgMC4wMDQzNTIsIDAuMDA0MzUzLCAwLjAwNDM1NCwgMC4wMDQzNTQiLCBcCi0gICAgICAgICAgIjAuMDA0MzA1LCAwLjAwNDM0MiwgMC4wMDQzNDYsIDAuMDA0MzQ5LCAwLjAwNDM1LCAwLjAwNDM1LCAwLjAwNDM1MSIsIFwKLSAgICAgICAgICAiMC4wMDQzMDQsIDAuMDA0MzQxLCAwLjAwNDM0NSwgMC4wMDQzNDcsIDAuMDA0MzQ4LCAwLjAwNDM0OSwgMC4wMDQzNDkiLCBcCi0gICAgICAgICAgIjAuMDA0MzAzLCAwLjAwNDMzOSwgMC4wMDQzNDQsIDAuMDA0MzQ2LCAwLjAwNDM0NywgMC4wMDQzNDcsIDAuMDA0MzQ4IiwgXAotICAgICAgICAgICIwLjAwNDMwNSwgMC4wMDQzNDEsIDAuMDA0MzQ1LCAwLjAwNDM0NywgMC4wMDQzNDgsIDAuMDA0MzQ5LCAwLjAwNDM0OSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDExNSwgMC4wMDQxNDQsIDAuMDA0MTQzLCAwLjAwNDE0MiwgMC4wMDQxNDEsIDAuMDA0MTQsIDAuMDA0MTQiLCBcCi0gICAgICAgICAgIjAuMDA0MTA4LCAwLjAwNDEzNywgMC4wMDQxMzYsIDAuMDA0MTM1LCAwLjAwNDEzNCwgMC4wMDQxMzQsIDAuMDA0MTM0IiwgXAotICAgICAgICAgICIwLjAwNDEwMiwgMC4wMDQxMzEsIDAuMDA0MTMxLCAwLjAwNDEyOSwgMC4wMDQxMjksIDAuMDA0MTI4LCAwLjAwNDEyOCIsIFwKLSAgICAgICAgICAiMC4wMDQwOTcsIDAuMDA0MTI3LCAwLjAwNDEyNiwgMC4wMDQxMjUsIDAuMDA0MTI0LCAwLjAwNDEyMywgMC4wMDQxMjIiLCBcCi0gICAgICAgICAgIjAuMDA0MDkzLCAwLjAwNDEyMywgMC4wMDQxMjIsIDAuMDA0MTIxLCAwLjAwNDEyLCAwLjAwNDEyLCAwLjAwNDExOSIsIFwKLSAgICAgICAgICAiMC4wMDQwODgsIDAuMDA0MTE4LCAwLjAwNDExNywgMC4wMDQxMTYsIDAuMDA0MTE1LCAwLjAwNDExNSwgMC4wMDQxMTQiLCBcCi0gICAgICAgICAgIjAuMDA0MDg2LCAwLjAwNDExNiwgMC4wMDQxMTYsIDAuMDA0MTE0LCAwLjAwNDExMywgMC4wMDQxMTIsIDAuMDA0MTEyIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihSTikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNTYyMzUzOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDU2MjM1MzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA1NjA5Mjc7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyNjIyLCAwLjAwMjYxMywgMC4wMDI2MDgsIDAuMDAyNjA0LCAwLjAwMjYwMSwgMC4wMDI1OTcsIDAuMDAyNTk2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA0NDc2LCAwLjAwNDQ2OSwgMC4wMDQ0NjUsIDAuMDA0NDY0LCAwLjAwNDQ2MiwgMC4wMDQ0NiwgMC4wMDQ0NTkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiRCYhU0UiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8xX0FOX1NFX0VRXzAgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMjEyNSwgLTAuMjA3NSwgLTAuMTk1LCAtMC4xODg3NSwgLTAuMTc2MjUsIC0wLjE2LCAtMC4xNTEyNSIsIFwKLSAgICAgICAgICAiLTAuMjIzNzUsIC0wLjIxODc1LCAtMC4yMDYyNSwgLTAuMiwgLTAuMTg3NSwgLTAuMTcxMjUsIC0wLjE2MjUiLCBcCi0gICAgICAgICAgIi0wLjI0MjUsIC0wLjIzMTI1LCAtMC4yMTg3NSwgLTAuMjEyNSwgLTAuMiwgLTAuMTksIC0wLjE3NSIsIFwKLSAgICAgICAgICAiLTAuMjU1LCAtMC4yNDM3NSwgLTAuMjM3NSwgLTAuMjI1LCAtMC4yMTI1LCAtMC4yMDI1LCAtMC4xOTM3NSIsIFwKLSAgICAgICAgICAiLTAuMjY3NSwgLTAuMjU2MjUsIC0wLjI1LCAtMC4yMzc1LCAtMC4yMzEyNSwgLTAuMjE1LCAtMC4yMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMjksIC0wLjI3ODc1LCAtMC4yNzI1LCAtMC4yNiwgLTAuMjUzNzUsIC0wLjIzNzUsIC0wLjIyODc1IiwgXAotICAgICAgICAgICItMC4zMTEyNSwgLTAuMywgLTAuMjg3NSwgLTAuMjgxMjUsIC0wLjI2ODc1LCAtMC4yNTg3NSwgLTAuMjQzNzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMjUsIC0wLjAxMzc1LCAtMC4wMDEyNSwgMC4wMTEyNSwgMC4wMywgMC4wNDYyNSwgMC4wNjc1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDI1LCAtMC4wMTI1LCAwLCAwLjAxODc1LCAwLjAzNSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjAzNzUsIC0wLjAyNSwgLTAuMDEyNSwgMCwgMC4wMjI1LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjA2MTI1LCAtMC4wNSwgLTAuMDM3NSwgLTAuMDI1LCAtMC4wMTI1LCAwLjAxLCAwLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDczNzUsIC0wLjA2MjUsIC0wLjA1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAwMjUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDksIC0wLjA3ODc1LCAtMC4wNzI1LCAtMC4wNiwgLTAuMDQ3NSwgLTAuMDI1LCAtMC4wMSIsIFwKLSAgICAgICAgICAiLTAuMTA1LCAtMC4wOTM3NSwgLTAuMDg3NSwgLTAuMDc1LCAtMC4wNjI1LCAtMC4wNDYyNSwgLTAuMDI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJEJiFTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzFfQU5fU0VfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMzEyNSwgMC4zMiwgMC4zMDEyNSwgMC4yODg3NSwgMC4yNzYyNSwgMC4yNTM3NSwgMC4yMzg3NSIsIFwKLSAgICAgICAgICAiMC4zNDI1LCAwLjMzMTI1LCAwLjMxMjUsIDAuMywgMC4yODc1LCAwLjI2NSwgMC4yNSIsIFwKLSAgICAgICAgICAiMC4zNTUsIDAuMzQzNzUsIDAuMzI1LCAwLjMxMjUsIDAuMywgMC4yNzc1LCAwLjI2MjUiLCBcCi0gICAgICAgICAgIjAuMzczNzUsIDAuMzU2MjUsIDAuMzQzNzUsIDAuMzI1LCAwLjMxMjUsIDAuMjk2MjUsIDAuMjgxMjUiLCBcCi0gICAgICAgICAgIjAuMzg2MjUsIDAuMzc1LCAwLjM1NjI1LCAwLjMzNzUsIDAuMzI1LCAwLjMwODc1LCAwLjI5Mzc1IiwgXAotICAgICAgICAgICIwLjQwODc1LCAwLjM5MTI1LCAwLjM3ODc1LCAwLjM2LCAwLjM0NzUsIDAuMzMxMjUsIDAuMzE2MjUiLCBcCi0gICAgICAgICAgIjAuNDIzNzUsIDAuNDEyNSwgMC4zOTM3NSwgMC4zODEyNSwgMC4zNjg3NSwgMC4zNDYyNSwgMC4zMzEyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE0Mzc1LCAwLjEzMjUsIDAuMTIsIDAuMTAxMjUsIDAuMDg4NzUsIDAuMDYsIDAuMDM4NzUiLCBcCi0gICAgICAgICAgIjAuMTU1LCAwLjE0Mzc1LCAwLjEzMTI1LCAwLjExMjUsIDAuMSwgMC4wNzEyNSwgMC4wNSIsIFwKLSAgICAgICAgICAiMC4xNzM3NSwgMC4xNjI1LCAwLjE0Mzc1LCAwLjEyNSwgMC4xMTI1LCAwLjA5LCAwLjA2ODc1IiwgXAotICAgICAgICAgICIwLjE4NjI1LCAwLjE3NSwgMC4xNTYyNSwgMC4xNDM3NSwgMC4xMjUsIDAuMTAyNSwgMC4wODEyNSIsIFwKLSAgICAgICAgICAiMC4xOTg3NSwgMC4xODc1LCAwLjE3NSwgMC4xNTYyNSwgMC4xMzc1LCAwLjExNSwgMC4wOTM3NSIsIFwKLSAgICAgICAgICAiMC4yMjEyNSwgMC4yMSwgMC4xOTc1LCAwLjE3ODc1LCAwLjE2LCAwLjEzNzUsIDAuMTE2MjUiLCBcCi0gICAgICAgICAgIjAuMjQyNSwgMC4yMzEyNSwgMC4yMTI1LCAwLjIsIDAuMTgxMjUsIDAuMTU4NzUsIDAuMTM3NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oU0UpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTExNzE7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxMTE2MDM7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxMTE3MTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDMzNTMsIDAuMDAzMzQ0LCAwLjAwMzMzOSwgMC4wMDMzMzksIDAuMDAzMzM4LCAwLjAwMzM0MSwgMC4wMDMzMzkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDQ0NjQsIDAuMDA0NDQ4LCAwLjAwNDQzNSwgMC4wMDQ0MjksIDAuMDA0NDI0LCAwLjAwNDQxNiwgMC4wMDQ0MTIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUQmIVJOJlNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9STl9FUV8wX0FOX1NJX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMTEyNSwgLTAuMTAxMjUsIC0wLjA4ODc1LCAtMC4wODI1LCAtMC4wNywgLTAuMDUzNzUsIC0wLjA0NSIsIFwKLSAgICAgICAgICAiLTAuMTIzNzUsIC0wLjExMjUsIC0wLjEsIC0wLjA4NzUsIC0wLjA4MTI1LCAtMC4wNjUsIC0wLjA1IiwgXAotICAgICAgICAgICItMC4xMzYyNSwgLTAuMTI1LCAtMC4xMTI1LCAtMC4xMDYyNSwgLTAuMDkzNzUsIC0wLjA3NzUsIC0wLjA2ODc1IiwgXAotICAgICAgICAgICItMC4xNDg3NSwgLTAuMTM3NSwgLTAuMTMxMjUsIC0wLjExODc1LCAtMC4xMDYyNSwgLTAuMDksIC0wLjA4MTI1IiwgXAotICAgICAgICAgICItMC4xNjEyNSwgLTAuMTU2MjUsIC0wLjE0Mzc1LCAtMC4xMzEyNSwgLTAuMTE4NzUsIC0wLjEwODc1LCAtMC4wOTM3NSIsIFwKLSAgICAgICAgICAiLTAuMTgzNzUsIC0wLjE3MjUsIC0wLjE2NjI1LCAtMC4xNTM3NSwgLTAuMTQxMjUsIC0wLjEyNSwgLTAuMTE2MjUiLCBcCi0gICAgICAgICAgIi0wLjIwNSwgLTAuMTkzNzUsIC0wLjE4MTI1LCAtMC4xNzUsIC0wLjE2MjUsIC0wLjE0NjI1LCAtMC4xMzc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTI1LCAwLjAyMzc1LCAwLjAzNjI1LCAwLjA0ODc1LCAwLjA2MTI1LCAwLjA4Mzc1LCAwLjEwNSIsIFwKLSAgICAgICAgICAiMC4wMDEyNSwgMC4wMTI1LCAwLjAyNSwgMC4wMzc1LCAwLjA1NjI1LCAwLjA3ODc1LCAwLjA5Mzc1IiwgXAotICAgICAgICAgICItMC4wMTc1LCAwLCAwLjAxMjUsIDAuMDI1LCAwLjAzNzUsIDAuMDYsIDAuMDgxMjUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMTg3NSwgMCwgMC4wMTI1LCAwLjAyNSwgMC4wNDc1LCAwLjA2ODc1IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMjUsIC0wLjAxMjUsIDAsIDAuMDEyNSwgMC4wMzUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIi0wLjA1ODc1LCAtMC4wNDc1LCAtMC4wMzUsIC0wLjAyMjUsIC0wLjAwMzc1LCAwLjAxODc1LCAwLjAzMzc1IiwgXAotICAgICAgICAgICItMC4wNzM3NSwgLTAuMDYyNSwgLTAuMDUsIC0wLjAzNzUsIC0wLjAxODc1LCAwLjAwMzc1LCAwLjAxODc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIkQmUk4mIVNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMV9BTl9STl9FUV8xX0FOX1NJX0VRXzAgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDQzNzUsIC0wLjAzMjUsIC0wLjAyLCAtMC4wMDc1LCAwLjAwNSwgMC4wMjc1LCAwLjA0ODc1IiwgXAotICAgICAgICAgICItMC4wNjEyNSwgLTAuMDUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAuMDE2MjUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjA3Mzc1LCAtMC4wNjI1LCAtMC4wNSwgLTAuMDM3NSwgLTAuMDE4NzUsIC0wLjAwMjUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjA4NjI1LCAtMC4wNzUsIC0wLjA2MjUsIC0wLjA1LCAtMC4wMzc1LCAtMC4wMTUsIDAiLCBcCi0gICAgICAgICAgIi0wLjEwNSwgLTAuMDkzNzUsIC0wLjA4MTI1LCAtMC4wNjg3NSwgLTAuMDUsIC0wLjAyNzUsIC0wLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjEyNzUsIC0wLjExNjI1LCAtMC4xMDM3NSwgLTAuMDg1LCAtMC4wNzI1LCAtMC4wNSwgLTAuMDM1IiwgXAotICAgICAgICAgICItMC4xNDI1LCAtMC4xMzEyNSwgLTAuMTE4NzUsIC0wLjEwNjI1LCAtMC4wOTM3NSwgLTAuMDcxMjUsIC0wLjA1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMTQzNzUsIC0wLjEzMjUsIC0wLjEyNjI1LCAtMC4xMTM3NSwgLTAuMTA3NSwgLTAuMDkxMjUsIC0wLjA4MjUiLCBcCi0gICAgICAgICAgIi0wLjE1NSwgLTAuMTQzNzUsIC0wLjEzNzUsIC0wLjEyNSwgLTAuMTE4NzUsIC0wLjEwMjUsIC0wLjA5Mzc1IiwgXAotICAgICAgICAgICItMC4xNjc1LCAtMC4xNjI1LCAtMC4xNSwgLTAuMTM3NSwgLTAuMTMxMjUsIC0wLjExNSwgLTAuMTA2MjUiLCBcCi0gICAgICAgICAgIi0wLjE4NjI1LCAtMC4xNzUsIC0wLjE2MjUsIC0wLjE1NjI1LCAtMC4xNDM3NSwgLTAuMTMzNzUsIC0wLjExODc1IiwgXAotICAgICAgICAgICItMC4xOTg3NSwgLTAuMTg3NSwgLTAuMTgxMjUsIC0wLjE2ODc1LCAtMC4xNTYyNSwgLTAuMTQ2MjUsIC0wLjEzNzUiLCBcCi0gICAgICAgICAgIi0wLjIyMTI1LCAtMC4yMSwgLTAuMTk3NSwgLTAuMTkxMjUsIC0wLjE3ODc1LCAtMC4xNjg3NSwgLTAuMTUzNzUiLCBcCi0gICAgICAgICAgIi0wLjIzNjI1LCAtMC4yMjUsIC0wLjIxODc1LCAtMC4yMDYyNSwgLTAuMiwgLTAuMTgzNzUsIC0wLjE3NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUQmIVJOJlNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9STl9FUV8wX0FOX1NJX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTkzNzUsIDAuMTgyNSwgMC4xNjM3NSwgMC4xNTEyNSwgMC4xMzg3NSwgMC4xMjI1LCAwLjEwNzUiLCBcCi0gICAgICAgICAgIjAuMjA1LCAwLjE5Mzc1LCAwLjE3NSwgMC4xNjI1LCAwLjE1LCAwLjEzMzc1LCAwLjExODc1IiwgXAotICAgICAgICAgICIwLjIxNzUsIDAuMjA2MjUsIDAuMTg3NSwgMC4xNzUsIDAuMTYyNSwgMC4xNDYyNSwgMC4xMzEyNSIsIFwKLSAgICAgICAgICAiMC4yMywgMC4yMTg3NSwgMC4yMDYyNSwgMC4xODc1LCAwLjE3NSwgMC4xNTg3NSwgMC4xNDM3NSIsIFwKLSAgICAgICAgICAiMC4yNDg3NSwgMC4yMzEyNSwgMC4yMTg3NSwgMC4yMDYyNSwgMC4xOTM3NSwgMC4xNzEyNSwgMC4xNjI1IiwgXAotICAgICAgICAgICIwLjI3MTI1LCAwLjI1Mzc1LCAwLjI0MTI1LCAwLjIyMjUsIDAuMjEsIDAuMTkzNzUsIDAuMTg1IiwgXAotICAgICAgICAgICIwLjI4NjI1LCAwLjI3NSwgMC4yNTYyNSwgMC4yNDM3NSwgMC4yMzEyNSwgMC4yMTUsIDAuMiIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4NzUsIDAuMDc2MjUsIDAuMDU3NSwgMC4wMzg3NSwgMC4wMjYyNSwgMC4wMDM3NSwgLTAuMDE3NSIsIFwKLSAgICAgICAgICAiMC4wOTg3NSwgMC4wODEyNSwgMC4wNjg3NSwgMC4wNSwgMC4wMzc1LCAwLjAxNSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMTExMjUsIDAuMSwgMC4wODEyNSwgMC4wNjg3NSwgMC4wNSwgMC4wMjc1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICIwLjEyMzc1LCAwLjExMjUsIDAuMDkzNzUsIDAuMDgxMjUsIDAuMDYyNSwgMC4wNCwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4xMzYyNSwgMC4xMjUsIDAuMTA2MjUsIDAuMDkzNzUsIDAuMDc1LCAwLjA1MjUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMTU4NzUsIDAuMTQ3NSwgMC4xMjg3NSwgMC4xMTYyNSwgMC4wOTc1LCAwLjA3NSwgMC4wNTM3NSIsIFwKLSAgICAgICAgICAiMC4xOCwgMC4xNjg3NSwgMC4xNSwgMC4xMzEyNSwgMC4xMTg3NSwgMC4wOTYyNSwgMC4wNzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIkQmUk4mIVNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMV9BTl9STl9FUV8xX0FOX1NJX0VRXzAgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTYyNSwgMC4xNTEyNSwgMC4xMzg3NSwgMC4xMiwgMC4xMDEyNSwgMC4wNzg3NSwgMC4wNTc1IiwgXAotICAgICAgICAgICIwLjE4LCAwLjE2MjUsIDAuMTUsIDAuMTMxMjUsIDAuMTE4NzUsIDAuMDksIDAuMDY4NzUiLCBcCi0gICAgICAgICAgIjAuMTkyNSwgMC4xODEyNSwgMC4xNjI1LCAwLjE1LCAwLjEzMTI1LCAwLjEwODc1LCAwLjA4NzUiLCBcCi0gICAgICAgICAgIjAuMjA1LCAwLjE5Mzc1LCAwLjE4MTI1LCAwLjE2MjUsIDAuMTQzNzUsIDAuMTIxMjUsIDAuMSIsIFwKLSAgICAgICAgICAiMC4yMjM3NSwgMC4yMTI1LCAwLjE5Mzc1LCAwLjE3NSwgMC4xNjI1LCAwLjE0LCAwLjExODc1IiwgXAotICAgICAgICAgICIwLjI0NjI1LCAwLjIzNSwgMC4yMTYyNSwgMC4xOTc1LCAwLjE4NSwgMC4xNjI1LCAwLjE0MTI1IiwgXAotICAgICAgICAgICIwLjI2MTI1LCAwLjI1LCAwLjIzNzUsIDAuMjE4NzUsIDAuMiwgMC4xNzc1LCAwLjE1NjI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjU2MjUsIDAuMjQ1LCAwLjIzMjUsIDAuMjEzNzUsIDAuMjAxMjUsIDAuMTc4NzUsIDAuMTciLCBcCi0gICAgICAgICAgIjAuMjczNzUsIDAuMjU2MjUsIDAuMjQzNzUsIDAuMjI1LCAwLjIxMjUsIDAuMTk2MjUsIDAuMTgxMjUiLCBcCi0gICAgICAgICAgIjAuMjg2MjUsIDAuMjc1LCAwLjI1NjI1LCAwLjI0Mzc1LCAwLjIyNSwgMC4yMDg3NSwgMC4xOTM3NSIsIFwKLSAgICAgICAgICAiMC4yOTg3NSwgMC4yODc1LCAwLjI2ODc1LCAwLjI1NjI1LCAwLjI0Mzc1LCAwLjIyMTI1LCAwLjIwNjI1IiwgXAotICAgICAgICAgICIwLjMxMTI1LCAwLjMsIDAuMjg3NSwgMC4yNjg3NSwgMC4yNTYyNSwgMC4yMzM3NSwgMC4yMjUiLCBcCi0gICAgICAgICAgIjAuMzMzNzUsIDAuMzIyNSwgMC4zMDM3NSwgMC4yOTEyNSwgMC4yNzg3NSwgMC4yNTYyNSwgMC4yNDEyNSIsIFwKLSAgICAgICAgICAiMC4zNTUsIDAuMzM3NSwgMC4zMjUsIDAuMzA2MjUsIDAuMjkzNzUsIDAuMjc3NSwgMC4yNjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTSSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNTg5NDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA1ODc2MjU7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNTg5NDsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDIyMTMsIDAuMDAyMjAzLCAwLjAwMjE5OCwgMC4wMDIxOTUsIDAuMDAyMTkyLCAwLjAwMjE4OSwgMC4wMDIxODciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDM0OTYsIDAuMDAzNDkxLCAwLjAwMzQ4OSwgMC4wMDM0ODcsIDAuMDAzNDg1LCAwLjAwMzQ4NCwgMC4wMDM0ODMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiU0UiOwotICAgICAgc2RmX2NvbmQgOiAiU0UgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMTI1LCAtMC4xMTM3NSwgLTAuMTA3NSwgLTAuMDk1LCAtMC4wODI1LCAtMC4wNjYyNSwgLTAuMDU3NSIsIFwKLSAgICAgICAgICAiLTAuMTM2MjUsIC0wLjEyNSwgLTAuMTE4NzUsIC0wLjEwNjI1LCAtMC4wOTM3NSwgLTAuMDc3NSwgLTAuMDY4NzUiLCBcCi0gICAgICAgICAgIi0wLjE0ODc1LCAtMC4xNDM3NSwgLTAuMTMxMjUsIC0wLjExODc1LCAtMC4xMTI1LCAtMC4wOTYyNSwgLTAuMDgxMjUiLCBcCi0gICAgICAgICAgIi0wLjE2NzUsIC0wLjE1NjI1LCAtMC4xNDM3NSwgLTAuMTMxMjUsIC0wLjEyNSwgLTAuMTA4NzUsIC0wLjA5Mzc1IiwgXAotICAgICAgICAgICItMC4xOCwgLTAuMTY4NzUsIC0wLjE1NjI1LCAtMC4xNSwgLTAuMTM3NSwgLTAuMTIxMjUsIC0wLjEwNjI1IiwgXAotICAgICAgICAgICItMC4yMDI1LCAtMC4xOTEyNSwgLTAuMTc4NzUsIC0wLjE2NjI1LCAtMC4xNiwgLTAuMTQzNzUsIC0wLjEyODc1IiwgXAotICAgICAgICAgICItMC4yMTc1LCAtMC4yMTI1LCAtMC4yLCAtMC4xODc1LCAtMC4xNzUsIC0wLjE2NSwgLTAuMTUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMTg3NSwgLTAuMDA3NSwgMC4wMDUsIDAuMDE3NSwgMC4wMzYyNSwgMC4wNTI1LCAwLjA3Mzc1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLjAwNjI1LCAwLjAyNSwgMC4wNDEyNSwgMC4wNjI1IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLjAxMjUsIDAuMDI4NzUsIDAuMDUiLCBcCi0gICAgICAgICAgIi0wLjA1NSwgLTAuMDQzNzUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgMCwgMC4wMTYyNSwgMC4wMzc1IiwgXAotICAgICAgICAgICItMC4wNjc1LCAtMC4wNTYyNSwgLTAuMDQzNzUsIC0wLjAzMTI1LCAtMC4wMTI1LCAwLjAwMzc1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDgzNzUsIC0wLjA3MjUsIC0wLjA2LCAtMC4wNDc1LCAtMC4wMzUsIC0wLjAxMjUsIDAuMDA4NzUiLCBcCi0gICAgICAgICAgIi0wLjA5ODc1LCAtMC4wODc1LCAtMC4wNzUsIC0wLjA2MjUsIC0wLjA1LCAtMC4wMjc1LCAtMC4wMTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJTRSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMDYyNSwgMC4xOTUsIDAuMTgyNSwgMC4xNjM3NSwgMC4xNTEyNSwgMC4xMzUsIDAuMTIiLCBcCi0gICAgICAgICAgIjAuMjE3NSwgMC4yMDYyNSwgMC4xOTM3NSwgMC4xNzUsIDAuMTYyNSwgMC4xNDYyNSwgMC4xMzEyNSIsIFwKLSAgICAgICAgICAiMC4yMzYyNSwgMC4yMTg3NSwgMC4yMDYyNSwgMC4xOTM3NSwgMC4xODEyNSwgMC4xNTg3NSwgMC4xNSIsIFwKLSAgICAgICAgICAiMC4yNDg3NSwgMC4yMzc1LCAwLjIxODc1LCAwLjIwNjI1LCAwLjE5Mzc1LCAwLjE3NzUsIDAuMTYyNSIsIFwKLSAgICAgICAgICAiMC4yNjEyNSwgMC4yNSwgMC4yMzEyNSwgMC4yMTg3NSwgMC4yMDYyNSwgMC4xOSwgMC4xNzUiLCBcCi0gICAgICAgICAgIjAuMjgzNzUsIDAuMjcyNSwgMC4yNTM3NSwgMC4yNDEyNSwgMC4yMjg3NSwgMC4yMTI1LCAwLjE5NzUiLCBcCi0gICAgICAgICAgIjAuMzA1LCAwLjI4NzUsIDAuMjc1LCAwLjI2MjUsIDAuMjUsIDAuMjI3NSwgMC4yMTg3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEzNzUsIDAuMTI2MjUsIDAuMTA3NSwgMC4wOTUsIDAuMDc2MjUsIDAuMDUzNzUsIDAuMDMyNSIsIFwKLSAgICAgICAgICAiMC4xNDg3NSwgMC4xMzc1LCAwLjExODc1LCAwLjEwNjI1LCAwLjA4NzUsIDAuMDY1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjE2MTI1LCAwLjE1LCAwLjEzMTI1LCAwLjExODc1LCAwLjEsIDAuMDc3NSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiMC4xNzM3NSwgMC4xNjI1LCAwLjE0Mzc1LCAwLjEzMTI1LCAwLjExMjUsIDAuMDksIDAuMDY4NzUiLCBcCi0gICAgICAgICAgIjAuMTg2MjUsIDAuMTc1LCAwLjE1NjI1LCAwLjE0Mzc1LCAwLjEyNSwgMC4xMDI1LCAwLjA4MTI1IiwgXAotICAgICAgICAgICIwLjIwODc1LCAwLjE5MTI1LCAwLjE3ODc1LCAwLjE2LCAwLjE0NzUsIDAuMTE4NzUsIDAuMDk3NSIsIFwKLSAgICAgICAgICAiMC4yMjM3NSwgMC4yMTI1LCAwLjE5Mzc1LCAwLjE3NSwgMC4xNjI1LCAwLjE0LCAwLjExODc1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IFNERkZUUlg0ICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChTREZGVFJYNCkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjYwNTQ4OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIGZmIChOMzAsUUJJTlQpIHsKLSAgICBuZXh0X3N0YXRlIDogIigoU0UgU0kpICsgKCFTRSAoRCBSTikpKSI7Ci0gICAgY2xvY2tlZF9vbiA6ICJDSyI7Ci0gIH0KLSAgcGluKENLKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2MDM3NjU7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjAzNTA2OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDYwMzc2NTsKLSAgICBjbG9jayA6IHRydWU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyNDI5LCAwLjAwMjQxNSwgMC4wMDI0MDMsIDAuMDAyMzk1LCAwLjAwMjM4OCwgMC4wMDIzODMsIDAuMDAyMzgzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA0Mzg5LCAwLjAwNDM3OSwgMC4wMDQzNjgsIDAuMDA0MzYzLCAwLjAwNDM2MiwgMC4wMDQzNjIsIDAuMDA0MzYzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRCYhUk4mIVNFJiFTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fUk5fRVFfMF9BTl9TRV9FUV8wX0FOX1NJX0VRXzAgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4zMTEzMTIsIDAuMzIyOTQ1LCAwLjMzODYwNCwgMC4zNTM3NDUsIDAuMzY5MTc2LCAwLjM5MzE3NiwgMC40MTMyNDYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjE4Nzc0MiwgMC4xOTkzODQsIDAuMjEzNzg4LCAwLjIyOTAzNiwgMC4yNDM2MTEsIDAuMjY1NzE3LCAwLjI4MzcxMiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNTc0NDk1OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDU3NDA0ODsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA1NzQ0OTU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyNTgzLCAwLjAwMjU3MywgMC4wMDI1NjcsIDAuMDAyNTYyLCAwLjAwMjU2LCAwLjAwMjU1NywgMC4wMDI1NTYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDQ0OTMsIDAuMDA0NDg5LCAwLjAwNDQ4NSwgMC4wMDQ0ODIsIDAuMDA0NDc5LCAwLjAwNDQ3NywgMC4wMDQ0NzQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiUk4mIVNFIjsKLSAgICAgIHNkZl9jb25kIDogIlJOX0VRXzFfQU5fU0VfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4yMTI1LCAtMC4yMDc1LCAtMC4xOTUsIC0wLjE4ODc1LCAtMC4xODI1LCAtMC4xNjYyNSwgLTAuMTU3NSIsIFwKLSAgICAgICAgICAiLTAuMjIzNzUsIC0wLjIxODc1LCAtMC4yMDYyNSwgLTAuMiwgLTAuMTg3NSwgLTAuMTc3NSwgLTAuMTY4NzUiLCBcCi0gICAgICAgICAgIi0wLjIzNjI1LCAtMC4yMzEyNSwgLTAuMjE4NzUsIC0wLjIxMjUsIC0wLjIsIC0wLjE5LCAtMC4xODEyNSIsIFwKLSAgICAgICAgICAiLTAuMjQ4NzUsIC0wLjI0Mzc1LCAtMC4yMzEyNSwgLTAuMjI1LCAtMC4yMTI1LCAtMC4yMDI1LCAtMC4xOTM3NSIsIFwKLSAgICAgICAgICAiLTAuMjYxMjUsIC0wLjI1NjI1LCAtMC4yNSwgLTAuMjM3NSwgLTAuMjMxMjUsIC0wLjIyMTI1LCAtMC4yMTI1IiwgXAotICAgICAgICAgICItMC4yODM3NSwgLTAuMjc4NzUsIC0wLjI2NjI1LCAtMC4yNiwgLTAuMjUzNzUsIC0wLjIzNzUsIC0wLjIzNSIsIFwKLSAgICAgICAgICAiLTAuMzA1LCAtMC4zLCAtMC4yODc1LCAtMC4yODEyNSwgLTAuMjY4NzUsIC0wLjI1ODc1LCAtMC4yNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAyNSwgLTAuMDEzNzUsIC0wLjAwMTI1LCAwLjAxMTI1LCAwLjAyMzc1LCAwLjA0LCAwLjA1NSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAyNSwgLTAuMDEyNSwgMCwgMC4wMTI1LCAwLjAyODc1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDM3NSwgLTAuMDI1LCAtMC4wMTI1LCAwLCAwLjAxNjI1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wNjEyNSwgLTAuMDUsIC0wLjAzNzUsIC0wLjAyNSwgLTAuMDE4NzUsIDAuMDAzNzUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjA3Mzc1LCAtMC4wNjI1LCAtMC4wNSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAwODc1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wOSwgLTAuMDc4NzUsIC0wLjA2NjI1LCAtMC4wNTM3NSwgLTAuMDQ3NSwgLTAuMDMxMjUsIC0wLjAxNjI1IiwgXAotICAgICAgICAgICItMC4wOTg3NSwgLTAuMDg3NSwgLTAuMDc1LCAtMC4wNjg3NSwgLTAuMDYyNSwgLTAuMDQ2MjUsIC0wLjAzMTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJSTiYhU0UiOwotICAgICAgc2RmX2NvbmQgOiAiUk5fRVFfMV9BTl9TRV9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjM0Mzc1LCAwLjMzMjUsIDAuMzIsIDAuMzAxMjUsIDAuMjg4NzUsIDAuMjcyNSwgMC4yNTc1IiwgXAotICAgICAgICAgICIwLjM1NSwgMC4zNDM3NSwgMC4zMjUsIDAuMzEyNSwgMC4zLCAwLjI3NzUsIDAuMjYyNSIsIFwKLSAgICAgICAgICAiMC4zNjc1LCAwLjM1NjI1LCAwLjM0Mzc1LCAwLjMyNSwgMC4zMTI1LCAwLjI5LCAwLjI4MTI1IiwgXAotICAgICAgICAgICIwLjM4LCAwLjM2ODc1LCAwLjM1NjI1LCAwLjMzNzUsIDAuMzI1LCAwLjMwODc1LCAwLjI5Mzc1IiwgXAotICAgICAgICAgICIwLjM5ODc1LCAwLjM4MTI1LCAwLjM2ODc1LCAwLjM1NjI1LCAwLjMzNzUsIDAuMzIxMjUsIDAuMzA2MjUiLCBcCi0gICAgICAgICAgIjAuNDIxMjUsIDAuNDAzNzUsIDAuMzkxMjUsIDAuMzc4NzUsIDAuMzYsIDAuMzQzNzUsIDAuMzI4NzUiLCBcCi0gICAgICAgICAgIjAuNDM2MjUsIDAuNDI1LCAwLjQxMjUsIDAuMzkzNzUsIDAuMzgxMjUsIDAuMzU4NzUsIDAuMzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNjI1LCAwLjE0NSwgMC4xMzI1LCAwLjExMzc1LCAwLjEwMTI1LCAwLjA3MjUsIDAuMDU3NSIsIFwKLSAgICAgICAgICAiMC4xNzM3NSwgMC4xNTYyNSwgMC4xNDM3NSwgMC4xMjUsIDAuMTEyNSwgMC4wODM3NSwgMC4wNjg3NSIsIFwKLSAgICAgICAgICAiMC4xODYyNSwgMC4xNzUsIDAuMTU2MjUsIDAuMTQzNzUsIDAuMTI1LCAwLjEwMjUsIDAuMDgxMjUiLCBcCi0gICAgICAgICAgIjAuMTk4NzUsIDAuMTg3NSwgMC4xNjg3NSwgMC4xNTYyNSwgMC4xMzc1LCAwLjExNSwgMC4wOTM3NSIsIFwKLSAgICAgICAgICAiMC4yMTc1LCAwLjIsIDAuMTg3NSwgMC4xNjg3NSwgMC4xNTYyNSwgMC4xMjc1LCAwLjEwNjI1IiwgXAotICAgICAgICAgICIwLjI0LCAwLjIyMjUsIDAuMjEsIDAuMTkxMjUsIDAuMTc4NzUsIDAuMTUsIDAuMTI4NzUiLCBcCi0gICAgICAgICAgIjAuMjU1LCAwLjI0Mzc1LCAwLjIyNSwgMC4yMTI1LCAwLjE5Mzc1LCAwLjE3MTI1LCAwLjE1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihRKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuNTI0MDcyOwotICAgIGZ1bmN0aW9uIDogIk4zMCI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3NlbnNlIDogbm9uX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiByaXNpbmdfZWRnZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMzYzMjMsIDAuMzY2MDc2LCAwLjQ5MzM1MiwgMC41ODQ4NTIsIDAuNzMwMDg5LCAwLjg1NzQ5MywgMS4wMzg3NiIsIFwKLSAgICAgICAgICAiMC4yNDgyMSwgMC4zNzc5MjgsIDAuNTA1Nzk5LCAwLjU5NjE5MSwgMC43NDEyNjcsIDAuODY5MDM0LCAxLjA1MDM2IiwgXAotICAgICAgICAgICIwLjI2MzY4MiwgMC4zOTM0MTMsIDAuNTIwMzQsIDAuNjEyMjIxLCAwLjc1NTQ5LCAwLjg4NDc3MywgMS4wNjU5IiwgXAotICAgICAgICAgICIwLjI3ODk4NSwgMC40MDg3MjgsIDAuNTM2NjA2LCAwLjYyNjYyNCwgMC43NzM0NDIsIDAuOTAwMTMyLCAxLjA4MDkzIiwgXAotICAgICAgICAgICIwLjI5Mzc3LCAwLjQyMzUwMiwgMC41NTA0MTEsIDAuNjQxMTYxLCAwLjc4NzIyOCwgMC45MTQ0NjEsIDEuMDk2MjEiLCBcCi0gICAgICAgICAgIjAuMzE3OTE4LCAwLjQ0NzY1MywgMC41NzQ0NzQsIDAuNjY2NjQ5LCAwLjgxMTc3NywgMC45Mzk2MzgsIDEuMTIwMTgiLCBcCi0gICAgICAgICAgIjAuMzM3NzExLCAwLjQ2NzQ0OCwgMC41OTQyNTUsIDAuNjg2NDQ0LCAwLjgzMTU4MywgMC45NTk1MzMsIDEuMTM5OTUiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTkyMDcsIDAuMzA4NTc1LCAwLjU3MjQwNywgMC43NTMwODQsIDEuMDUxMDEsIDEuMzE1NDgsIDEuNjc2NjgiLCBcCi0gICAgICAgICAgIjAuMDU5NTE5LCAwLjMwODUyMiwgMC41NjU1NzcsIDAuNzU4OTI0LCAxLjA0OTAxLCAxLjMwMzE4LCAxLjY2ODM5IiwgXAotICAgICAgICAgICIwLjA1OTIzNywgMC4zMDg1MjUsIDAuNTcyMDM3LCAwLjc1ODA4OCwgMS4wNTQ1OCwgMS4zMTM0MSwgMS42Njk4NyIsIFwKLSAgICAgICAgICAiMC4wNTkxNTYsIDAuMzA4NTAxLCAwLjU3MTI4OCwgMC43NTI2LCAxLjA1NywgMS4zMTU3NiwgMS42NzM3MyIsIFwKLSAgICAgICAgICAiMC4wNTk0NzksIDAuMzA4NTA0LCAwLjU3MjA0OCwgMC43NTI4MzIsIDEuMDUzMzksIDEuMzEyMTQsIDEuNjg4MDQiLCBcCi0gICAgICAgICAgIjAuMDU5MzQ1LCAwLjMwODUzNywgMC41NzIwNzUsIDAuNzU0OTA5LCAxLjA0ODk3LCAxLjMxNzgyLCAxLjY3MDk2IiwgXAotICAgICAgICAgICIwLjA1OTQ1MiwgMC4zMDg1MjksIDAuNTcyMDgzLCAwLjc1MzMxNSwgMS4wNDg4NiwgMS4zMTc1LCAxLjY3MDYzIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjYyNjkzLCAwLjQxMTMxNSwgMC41NTc0NDEsIDAuNjYxODA0LCAwLjgyOTM2NSwgMC45NzQ1LCAxLjE4NDA2IiwgXAotICAgICAgICAgICIwLjI3NDM1NSwgMC40MjI5NjksIDAuNTY4OTYzLCAwLjY3MzE3MiwgMC44NDA1NzQsIDAuOTg2NzQ4LCAxLjE5NTczIiwgXAotICAgICAgICAgICIwLjI4OTkxNCwgMC40Mzg0OTcsIDAuNTg0NDQ0LCAwLjY4ODcwNCwgMC44NTcwMjcsIDEuMDAyNzMsIDEuMjExMDUiLCBcCi0gICAgICAgICAgIjAuMzA1MTQ3LCAwLjQ1Mzc2MywgMC41OTk3MDMsIDAuNzAzOTYzLCAwLjg3MDg4NCwgMS4wMTc1NiwgMS4yMjYxNiIsIFwKLSAgICAgICAgICAiMC4zMjA0ODQsIDAuNDY5MDk1LCAwLjYxNTE2LCAwLjcxOTI3LCAwLjg4NzU5MywgMS4wMzQ1MSwgMS4yNDQyIiwgXAotICAgICAgICAgICIwLjM0NDU2MSwgMC40OTMxNjMsIDAuNjM5MTAyLCAwLjc0MzM2LCAwLjkxMDMwNywgMS4wNTY5NCwgMS4yNjU1OSIsIFwKLSAgICAgICAgICAiMC4zNjQ1NDksIDAuNTEzMTYsIDAuNjU5MTAzLCAwLjc2MzM2NSwgMC45MzE2OTEsIDEuMDc3MzMsIDEuMjg1NzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjI3ODQsIDAuMzQ2MTExLCAwLjYzNjYyMiwgMC44NDQ3NDYsIDEuMTc1NzEsIDEuNDcwMDEsIDEuODg0NzEiLCBcCi0gICAgICAgICAgIjAuMDYyODExLCAwLjM0NjIwMiwgMC42MzY2MzUsIDAuODQzOTE1LCAxLjE3NjMsIDEuNDY1OTksIDEuODgzNTciLCBcCi0gICAgICAgICAgIjAuMDYyODk1LCAwLjM0NjExLCAwLjYzNjYzMSwgMC44NDM5MzgsIDEuMTc3NDYsIDEuNDY3MDUsIDEuODg1NDYiLCBcCi0gICAgICAgICAgIjAuMDYyOSwgMC4zNDYxNzksIDAuNjM2NjEyLCAwLjg0MzMxLCAxLjE3NDg0LCAxLjQ2NjQ4LCAxLjg4MTU2IiwgXAotICAgICAgICAgICIwLjA2Mjg1OSwgMC4zNDY3NzcsIDAuNjM2NjAxLCAwLjg0MjU3MiwgMS4xNzc0NiwgMS40Njg2MiwgMS44ODMyMiIsIFwKLSAgICAgICAgICAiMC4wNjI2MDcsIDAuMzQ2MTUxLCAwLjYzNjY0OSwgMC44NDM4OCwgMS4xNzc5NiwgMS40NjYyNSwgMS44ODEwOSIsIFwKLSAgICAgICAgICAiMC4wNjI4NjgsIDAuMzQ2MTA3LCAwLjYzNjU4MywgMC44NDMyOTcsIDEuMTc3NDYsIDEuNDY3MjcsIDEuODgzMDEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDYzMzksIDAuMDA2NDUzLCAwLjAwNjQ2NywgMC4wMDY0NzEsIDAuMDA2NDc0LCAwLjAwNjQ3NiwgMC4wMDY0NzciLCBcCi0gICAgICAgICAgIjAuMDA2MzMyLCAwLjAwNjQ0NywgMC4wMDY0NTksIDAuMDA2NDY0LCAwLjAwNjQ2NywgMC4wMDY0NjgsIDAuMDA2NDciLCBcCi0gICAgICAgICAgIjAuMDA2MzI1LCAwLjAwNjQ0LCAwLjAwNjQ1MywgMC4wMDY0NTcsIDAuMDA2NDYxLCAwLjAwNjQ2MiwgMC4wMDY0NjMiLCBcCi0gICAgICAgICAgIjAuMDA2MzIsIDAuMDA2NDM1LCAwLjAwNjQ0OCwgMC4wMDY0NTIsIDAuMDA2NDU1LCAwLjAwNjQ1NywgMC4wMDY0NTkiLCBcCi0gICAgICAgICAgIjAuMDA2MzE0LCAwLjAwNjQyOSwgMC4wMDY0NDMsIDAuMDA2NDQ2LCAwLjAwNjQ1LCAwLjAwNjQ1MSwgMC4wMDY0NTMiLCBcCi0gICAgICAgICAgIjAuMDA2MzExLCAwLjAwNjQyNiwgMC4wMDY0MzksIDAuMDA2NDQ0LCAwLjAwNjQ0NiwgMC4wMDY0NDgsIDAuMDA2NDQ5IiwgXAotICAgICAgICAgICIwLjAwNjMwOSwgMC4wMDY0MjQsIDAuMDA2NDM3LCAwLjAwNjQ0MSwgMC4wMDY0NDQsIDAuMDA2NDQ2LCAwLjAwNjQ0NyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2NTE4LCAwLjAwNjYzLCAwLjAwNjY0MywgMC4wMDY2NDcsIDAuMDA2NjUxLCAwLjAwNjY1MiwgMC4wMDY2NTMiLCBcCi0gICAgICAgICAgIjAuMDA2NTA5LCAwLjAwNjYyMSwgMC4wMDY2MzUsIDAuMDA2NjM4LCAwLjAwNjY0MywgMC4wMDY2NDUsIDAuMDA2NjQ2IiwgXAotICAgICAgICAgICIwLjAwNjUwOSwgMC4wMDY2MTcsIDAuMDA2NjMyLCAwLjAwNjYzNCwgMC4wMDY2MzksIDAuMDA2NjM5LCAwLjAwNjY0IiwgXAotICAgICAgICAgICIwLjAwNjQ5OSwgMC4wMDY2MTEsIDAuMDA2NjI1LCAwLjAwNjYyOSwgMC4wMDY2MzIsIDAuMDA2NjM1LCAwLjAwNjYzNSIsIFwKLSAgICAgICAgICAiMC4wMDY1MDEsIDAuMDA2NjExLCAwLjAwNjYyNSwgMC4wMDY2MjgsIDAuMDA2NjMyLCAwLjAwNjYzMywgMC4wMDY2MzUiLCBcCi0gICAgICAgICAgIjAuMDA2NTA0LCAwLjAwNjYxNCwgMC4wMDY2MjYsIDAuMDA2NjMsIDAuMDA2NjM0LCAwLjAwNjYzNSwgMC4wMDY2MzYiLCBcCi0gICAgICAgICAgIjAuMDA2NSwgMC4wMDY2MTMsIDAuMDA2NjI2LCAwLjAwNjYzMSwgMC4wMDY2MzUsIDAuMDA2NjM1LCAwLjAwNjYzNyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUU4pICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC41MjM2OwotICAgIGZ1bmN0aW9uIDogIlFCSU5UIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBub25fdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJpc2luZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMxMTMxOCwgMC40MzgzMzIsIDAuNTY1MTQ1LCAwLjY1NTY3OCwgMC44MDA2NCwgMC45Mjc2MTIsIDEuMTA4OTEiLCBcCi0gICAgICAgICAgIjAuMzIyOTY4LCAwLjQ0OTk4OCwgMC41NzY3MzgsIDAuNjY3NDAyLCAwLjgxMjQ4OCwgMC45MzkxOTMsIDEuMTIwNCIsIFwKLSAgICAgICAgICAiMC4zMzg2MTEsIDAuNDY1NTM0LCAwLjU5MjI5NSwgMC42ODI5NTcsIDAuODI3ODYzLCAwLjk1NDc5NywgMS4xMzYxIiwgXAotICAgICAgICAgICIwLjM1Mzg0NywgMC40ODA3NzUsIDAuNjA3NTI4LCAwLjY5ODE4NSwgMC44NDMxNTUsIDAuOTY5OTc5LCAxLjE1MTE5IiwgXAotICAgICAgICAgICIwLjM2OTE4MSwgMC40OTYxMzEsIDAuNjIyOTEyLCAwLjcxMzUwNiwgMC44NTg0NzgsIDAuOTg1MzAzLCAxLjE2NjU3IiwgXAotICAgICAgICAgICIwLjM5MzE4MSwgMC41MjAxOSwgMC42NDY5NDQsIDAuNzM3NjA0LCAwLjg4MjYwOSwgMS4wMDk0LCAxLjE5MDYxIiwgXAotICAgICAgICAgICIwLjQxMzI0OSwgMC41NDAxNzMsIDAuNjY2OTM5LCAwLjc1NzU5NCwgMC45MDI1MDEsIDEuMDI5MiwgMS4yMTA2Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU3NzIxLCAwLjMwODcxNiwgMC41NjczNTgsIDAuNzUxODM5LCAxLjA0NzAyLCAxLjMwMjIyLCAxLjY3MjA4IiwgXAotICAgICAgICAgICIwLjA1NzcyMiwgMC4zMDg3MzQsIDAuNTY3MjI4LCAwLjc0OTc0OCwgMS4wNDUzNywgMS4zMDIwNCwgMS42NzIwMyIsIFwKLSAgICAgICAgICAiMC4wNTc3NjYsIDAuMzA4NzE4LCAwLjU2NzE1OSwgMC43NDk3MTksIDEuMDQ3MjgsIDEuMzA1MTIsIDEuNjcyMTMiLCBcCi0gICAgICAgICAgIjAuMDU3NzY5LCAwLjMwODcyMywgMC41NjcxNTUsIDAuNzQ5NzMsIDEuMDQ0NDEsIDEuMzAzNDYsIDEuNjcxOTYiLCBcCi0gICAgICAgICAgIjAuMDU3NzY0LCAwLjMwOTM4MSwgMC41NjczMzUsIDAuNzQ5NzkyLCAxLjA0NzIxLCAxLjMwNTg2LCAxLjY3NTI5IiwgXAotICAgICAgICAgICIwLjA1NzcyMywgMC4zMDg3MTUsIDAuNTY3MTYsIDAuNzQ5NzQ1LCAxLjA0NDMsIDEuMzAzNDgsIDEuNjcyIiwgXAotICAgICAgICAgICIwLjA1Nzc2OCwgMC4zMDg3MjIsIDAuNTY3MTcyLCAwLjc0OTc0NCwgMS4wNDcyNSwgMS4zMDUxNywgMS42NzIxMyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI4OTM1MiwgMC40MzUyNywgMC41ODEzNDcsIDAuNjg1NjY3LCAwLjg1MjY1NywgMC45OTg3NjksIDEuMjA3NDYiLCBcCi0gICAgICAgICAgIjAuMzAxMjY2LCAwLjQ0NzEyNywgMC41OTMxNzcsIDAuNjk3NTU2LCAwLjg2NDM3NiwgMS4wMTA2MSwgMS4yMTkzMiIsIFwKLSAgICAgICAgICAiMC4zMTY3MDksIDAuNDYyNjI0LCAwLjYwODY0MSwgMC43MTMwODIsIDAuODc5NzgzLCAxLjAyNjE3LCAxLjIzNDgiLCBcCi0gICAgICAgICAgIjAuMzMyMDE4LCAwLjQ3Nzk0NywgMC42MjQwMDgsIDAuNzI4MzU3LCAwLjg5NTQzNywgMS4wNDE0NSwgMS4yNTAxMyIsIFwKLSAgICAgICAgICAiMC4zNDY4MTEsIDAuNDkyNzA2LCAwLjYzODczMiwgMC43NDMwOTgsIDAuOTEwMDgxLCAxLjA1NjIyLCAxLjI2NDkiLCBcCi0gICAgICAgICAgIjAuMzcwOTYzLCAwLjUxNjg0NSwgMC42NjI4NzksIDAuNzY3Mjg2LCAwLjkzNDIzNCwgMS4wODA0NSwgMS4yODkwMyIsIFwKLSAgICAgICAgICAiMC4zOTA3NTcsIDAuNTM2NjQxLCAwLjY4MjY3NywgMC43ODcwNzksIDAuOTU0MDMxLCAxLjEwMDI1LCAxLjMwODgyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDYxNTM0LCAwLjM0NjgwNiwgMC42MzY4MzksIDAuODQ0MzIyLCAxLjE3NjU5LCAxLjQ2Njk3LCAxLjg4MTgzIiwgXAotICAgICAgICAgICIwLjA2MTYxMSwgMC4zNDY4MTEsIDAuNjM1NjUxLCAwLjg0NDM4OCwgMS4xNzYzNiwgMS40NjcsIDEuODgyMSIsIFwKLSAgICAgICAgICAiMC4wNjE1MywgMC4zNDY4MDcsIDAuNjM2OTczLCAwLjg0NDEyOCwgMS4xNzU2NCwgMS40NjY4MiwgMS44ODIiLCBcCi0gICAgICAgICAgIjAuMDYxNTM4LCAwLjM0Njc5NywgMC42MzY3NDksIDAuODQ0ODI2LCAxLjE3NjI1LCAxLjQ2NjM3LCAxLjg4MjIyIiwgXAotICAgICAgICAgICIwLjA2MTU1OSwgMC4zNDY4MDMsIDAuNjM2OTc1LCAwLjg0NDgyOCwgMS4xNzY2MywgMS40NjgwOSwgMS44ODEyNCIsIFwKLSAgICAgICAgICAiMC4wNjE1NCwgMC4zNDY4MSwgMC42MzY5ODQsIDAuODQzODAzLCAxLjE3NjUsIDEuNDY2NzgsIDEuODgxOTkiLCBcCi0gICAgICAgICAgIjAuMDYxNTY0LCAwLjM0NjgwNywgMC42MzY5ODcsIDAuODQ0MjE2LCAxLjE3NjQ5LCAxLjQ2NjY4LCAxLjg4MTk3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2NTE4LCAwLjAwNjYzLCAwLjAwNjY0MywgMC4wMDY2NDcsIDAuMDA2NjUxLCAwLjAwNjY1MiwgMC4wMDY2NTMiLCBcCi0gICAgICAgICAgIjAuMDA2NTA5LCAwLjAwNjYyMSwgMC4wMDY2MzUsIDAuMDA2NjM4LCAwLjAwNjY0MywgMC4wMDY2NDUsIDAuMDA2NjQ2IiwgXAotICAgICAgICAgICIwLjAwNjUwOSwgMC4wMDY2MTcsIDAuMDA2NjMyLCAwLjAwNjYzNCwgMC4wMDY2MzksIDAuMDA2NjM5LCAwLjAwNjY0IiwgXAotICAgICAgICAgICIwLjAwNjQ5OSwgMC4wMDY2MTEsIDAuMDA2NjI1LCAwLjAwNjYyOSwgMC4wMDY2MzIsIDAuMDA2NjM1LCAwLjAwNjYzNSIsIFwKLSAgICAgICAgICAiMC4wMDY1MDEsIDAuMDA2NjExLCAwLjAwNjYyNSwgMC4wMDY2MjgsIDAuMDA2NjMyLCAwLjAwNjYzMywgMC4wMDY2MzUiLCBcCi0gICAgICAgICAgIjAuMDA2NTA0LCAwLjAwNjYxNCwgMC4wMDY2MjYsIDAuMDA2NjMsIDAuMDA2NjM0LCAwLjAwNjYzNSwgMC4wMDY2MzYiLCBcCi0gICAgICAgICAgIjAuMDA2NSwgMC4wMDY2MTMsIDAuMDA2NjI2LCAwLjAwNjYzMSwgMC4wMDY2MzUsIDAuMDA2NjM1LCAwLjAwNjYzNyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2MzM5LCAwLjAwNjQ1MywgMC4wMDY0NjcsIDAuMDA2NDcxLCAwLjAwNjQ3NCwgMC4wMDY0NzYsIDAuMDA2NDc3IiwgXAotICAgICAgICAgICIwLjAwNjMzMiwgMC4wMDY0NDcsIDAuMDA2NDU5LCAwLjAwNjQ2NCwgMC4wMDY0NjcsIDAuMDA2NDY4LCAwLjAwNjQ3IiwgXAotICAgICAgICAgICIwLjAwNjMyNSwgMC4wMDY0NCwgMC4wMDY0NTMsIDAuMDA2NDU3LCAwLjAwNjQ2MSwgMC4wMDY0NjIsIDAuMDA2NDYzIiwgXAotICAgICAgICAgICIwLjAwNjMyLCAwLjAwNjQzNSwgMC4wMDY0NDgsIDAuMDA2NDUyLCAwLjAwNjQ1NSwgMC4wMDY0NTcsIDAuMDA2NDU5IiwgXAotICAgICAgICAgICIwLjAwNjMxNCwgMC4wMDY0MjksIDAuMDA2NDQzLCAwLjAwNjQ0NiwgMC4wMDY0NSwgMC4wMDY0NTEsIDAuMDA2NDUzIiwgXAotICAgICAgICAgICIwLjAwNjMxMSwgMC4wMDY0MjYsIDAuMDA2NDM5LCAwLjAwNjQ0NCwgMC4wMDY0NDYsIDAuMDA2NDQ4LCAwLjAwNjQ0OSIsIFwKLSAgICAgICAgICAiMC4wMDYzMDksIDAuMDA2NDI0LCAwLjAwNjQzNywgMC4wMDY0NDEsIDAuMDA2NDQ0LCAwLjAwNjQ0NiwgMC4wMDY0NDciKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFJOKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA1ODI4OTY7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNTgyODk2OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDU4MTQ3MjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDI1ODQsIDAuMDAyNTc2LCAwLjAwMjU3LCAwLjAwMjU2NywgMC4wMDI1NjMsIDAuMDAyNTYsIDAuMDAyNTU3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA0Njc0LCAwLjAwNDY2OCwgMC4wMDQ2NjQsIDAuMDA0NjYyLCAwLjAwNDY2MSwgMC4wMDQ2NTksIDAuMDA0NjU4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIkQmIVNFIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMV9BTl9TRV9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjIxODc1LCAtMC4yMDc1LCAtMC4yMDEyNSwgLTAuMTk1LCAtMC4xODI1LCAtMC4xNzI1LCAtMC4xNjM3NSIsIFwKLSAgICAgICAgICAiLTAuMjMsIC0wLjIxODc1LCAtMC4yMTI1LCAtMC4yMDYyNSwgLTAuMTkzNzUsIC0wLjE4Mzc1LCAtMC4xNzUiLCBcCi0gICAgICAgICAgIi0wLjI0MjUsIC0wLjIzNzUsIC0wLjIyNSwgLTAuMjE4NzUsIC0wLjIxMjUsIC0wLjE5NjI1LCAtMC4xODc1IiwgXAotICAgICAgICAgICItMC4yNTUsIC0wLjI1LCAtMC4yNDM3NSwgLTAuMjMxMjUsIC0wLjIyNSwgLTAuMjA4NzUsIC0wLjIiLCBcCi0gICAgICAgICAgIi0wLjI3Mzc1LCAtMC4yNjI1LCAtMC4yNTYyNSwgLTAuMjQzNzUsIC0wLjIzNzUsIC0wLjIyNzUsIC0wLjIxODc1IiwgXAotICAgICAgICAgICItMC4yOTYyNSwgLTAuMjg1LCAtMC4yNzI1LCAtMC4yNjYyNSwgLTAuMjYsIC0wLjI1LCAtMC4yNDEyNSIsIFwKLSAgICAgICAgICAiLTAuMzExMjUsIC0wLjMwNjI1LCAtMC4yOTM3NSwgLTAuMjg3NSwgLTAuMjgxMjUsIC0wLjI2NSwgLTAuMjU2MjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMjUsIC0wLjAxMzc1LCAtMC4wMDEyNSwgMC4wMTEyNSwgMC4wMTc1LCAwLjA0LCAwLjA1NSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAyNSwgLTAuMDEyNSwgMCwgMC4wMDYyNSwgMC4wMjg3NSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjAzNzUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLjAxNjI1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wNjEyNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIC0wLjAwMjUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDczNzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNDM3NSwgLTAuMDMxMjUsIC0wLjAxNSwgMCIsIFwKLSAgICAgICAgICAiLTAuMDksIC0wLjA3ODc1LCAtMC4wNjYyNSwgLTAuMDYsIC0wLjA0NzUsIC0wLjAzMTI1LCAtMC4wMTYyNSIsIFwKLSAgICAgICAgICAiLTAuMDk4NzUsIC0wLjA5Mzc1LCAtMC4wODEyNSwgLTAuMDY4NzUsIC0wLjA2MjUsIC0wLjA1MjUsIC0wLjAzNzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIkQmIVNFIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMV9BTl9TRV9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjM1LCAwLjMzODc1LCAwLjMyLCAwLjMwNzUsIDAuMjk1LCAwLjI3MjUsIDAuMjU3NSIsIFwKLSAgICAgICAgICAiMC4zNjEyNSwgMC4zNSwgMC4zMzEyNSwgMC4zMTg3NSwgMC4zMDYyNSwgMC4yODM3NSwgMC4yNjg3NSIsIFwKLSAgICAgICAgICAiMC4zOCwgMC4zNjI1LCAwLjM1LCAwLjMzMTI1LCAwLjMxODc1LCAwLjMwMjUsIDAuMjg3NSIsIFwKLSAgICAgICAgICAiMC4zOTI1LCAwLjM3NSwgMC4zNjI1LCAwLjM1LCAwLjMzMTI1LCAwLjMxNSwgMC4zIiwgXAotICAgICAgICAgICIwLjQwNSwgMC4zOTM3NSwgMC4zNzUsIDAuMzYyNSwgMC4zNDM3NSwgMC4zMjc1LCAwLjMxMjUiLCBcCi0gICAgICAgICAgIjAuNDI3NSwgMC40MSwgMC4zOTc1LCAwLjM4NSwgMC4zNjYyNSwgMC4zNSwgMC4zMzUiLCBcCi0gICAgICAgICAgIjAuNDQyNSwgMC40MzEyNSwgMC40MTg3NSwgMC40LCAwLjM4NzUsIDAuMzcxMjUsIDAuMzU2MjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNjI1LCAwLjE1MTI1LCAwLjEzMjUsIDAuMTIsIDAuMTAxMjUsIDAuMDc4NzUsIDAuMDU3NSIsIFwKLSAgICAgICAgICAiMC4xNzM3NSwgMC4xNjI1LCAwLjE0Mzc1LCAwLjEzMTI1LCAwLjExMjUsIDAuMDksIDAuMDY4NzUiLCBcCi0gICAgICAgICAgIjAuMTg2MjUsIDAuMTc1LCAwLjE2MjUsIDAuMTQzNzUsIDAuMTMxMjUsIDAuMTAyNSwgMC4wODEyNSIsIFwKLSAgICAgICAgICAiMC4yMDUsIDAuMTkzNzUsIDAuMTc1LCAwLjE1NjI1LCAwLjE0Mzc1LCAwLjEyMTI1LCAwLjEiLCBcCi0gICAgICAgICAgIjAuMjE3NSwgMC4yMDYyNSwgMC4xODc1LCAwLjE3NSwgMC4xNTYyNSwgMC4xMzM3NSwgMC4xMTI1IiwgXAotICAgICAgICAgICIwLjI0LCAwLjIyODc1LCAwLjIxLCAwLjE5NzUsIDAuMTc4NzUsIDAuMTU2MjUsIDAuMTM1IiwgXAotICAgICAgICAgICIwLjI2MTI1LCAwLjI0Mzc1LCAwLjIzMTI1LCAwLjIxMjUsIDAuMiwgMC4xNzc1LCAwLjE1NjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTRSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxMTE1NDk7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxMTE0ODk7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxMTE1NDk7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzNTM5LCAwLjAwMzUzLCAwLjAwMzUyNiwgMC4wMDM1MjUsIDAuMDAzNTI1LCAwLjAwMzUyNiwgMC4wMDM1MjYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDQ3ODksIDAuMDA0Nzc0LCAwLjAwNDc2MSwgMC4wMDQ3NTQsIDAuMDA0NzQ3LCAwLjAwNDc0MiwgMC4wMDQ3MzkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUQmIVJOJlNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9STl9FUV8wX0FOX1NJX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMTE4NzUsIC0wLjEwNzUsIC0wLjA5NSwgLTAuMDg4NzUsIC0wLjA3NjI1LCAtMC4wNjYyNSwgLTAuMDU3NSIsIFwKLSAgICAgICAgICAiLTAuMTIzNzUsIC0wLjExODc1LCAtMC4xMDYyNSwgLTAuMSwgLTAuMDg3NSwgLTAuMDc3NSwgLTAuMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMTQyNSwgLTAuMTMxMjUsIC0wLjExODc1LCAtMC4xMTI1LCAtMC4xLCAtMC4wOSwgLTAuMDgxMjUiLCBcCi0gICAgICAgICAgIi0wLjE1NSwgLTAuMTQzNzUsIC0wLjEzNzUsIC0wLjEyNSwgLTAuMTEyNSwgLTAuMTAyNSwgLTAuMDkzNzUiLCBcCi0gICAgICAgICAgIi0wLjE2NzUsIC0wLjE2MjUsIC0wLjE1LCAtMC4xMzc1LCAtMC4xMzEyNSwgLTAuMTE1LCAtMC4xMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMTksIC0wLjE3ODc1LCAtMC4xNzI1LCAtMC4xNiwgLTAuMTUzNzUsIC0wLjEzNzUsIC0wLjEyODc1IiwgXAotICAgICAgICAgICItMC4yMTEyNSwgLTAuMiwgLTAuMTg3NSwgLTAuMTgxMjUsIC0wLjE2ODc1LCAtMC4xNTg3NSwgLTAuMTUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLCAwLjAxMTI1LCAwLjAyMzc1LCAwLjA0MjUsIDAuMDU1LCAwLjA3NzUsIDAuMDkyNSIsIFwKLSAgICAgICAgICAiLTAuMDExMjUsIDAsIDAuMDE4NzUsIDAuMDMxMjUsIDAuMDQzNzUsIDAuMDY2MjUsIDAuMDgxMjUiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTI1LCAwLCAwLjAxODc1LCAwLjAzMTI1LCAwLjA1Mzc1LCAwLjA2ODc1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDI1LCAtMC4wMTI1LCAwLjAwNjI1LCAwLjAxODc1LCAwLjA0MTI1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDM3NSwgLTAuMDI1LCAtMC4wMDYyNSwgMC4wMDYyNSwgMC4wMjI1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICItMC4wNjUsIC0wLjA1Mzc1LCAtMC4wNDEyNSwgLTAuMDI4NzUsIC0wLjAxNjI1LCAwLjAwNjI1LCAwLjAyMTI1IiwgXAotICAgICAgICAgICItMC4wNzM3NSwgLTAuMDY4NzUsIC0wLjA1NjI1LCAtMC4wNDM3NSwgLTAuMDMxMjUsIC0wLjAwODc1LCAwLjAwNjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIkQmUk4mIVNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMV9BTl9STl9FUV8xX0FOX1NJX0VRXzAgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDU2MjUsIC0wLjA0NSwgLTAuMDMyNSwgLTAuMDEzNzUsIC0wLjAwNzUsIDAuMDE1LCAwLjAzIiwgXAotICAgICAgICAgICItMC4wNjc1LCAtMC4wNTYyNSwgLTAuMDQzNzUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgMC4wMDM3NSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDgsIC0wLjA2ODc1LCAtMC4wNTYyNSwgLTAuMDQzNzUsIC0wLjAzMTI1LCAtMC4wMTUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA5ODc1LCAtMC4wODc1LCAtMC4wNzUsIC0wLjA2MjUsIC0wLjA1LCAtMC4wMjc1LCAtMC4wMTI1IiwgXAotICAgICAgICAgICItMC4xMTEyNSwgLTAuMSwgLTAuMDg3NSwgLTAuMDc1LCAtMC4wNjI1LCAtMC4wNDYyNSwgLTAuMDI1IiwgXAotICAgICAgICAgICItMC4xMzM3NSwgLTAuMTIyNSwgLTAuMTEsIC0wLjA5NzUsIC0wLjA4NSwgLTAuMDY4NzUsIC0wLjA0NzUiLCBcCi0gICAgICAgICAgIi0wLjE1NSwgLTAuMTQzNzUsIC0wLjEzMTI1LCAtMC4xMTg3NSwgLTAuMTA2MjUsIC0wLjA4Mzc1LCAtMC4wNjg3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjE0Mzc1LCAtMC4xMzg3NSwgLTAuMTMyNSwgLTAuMTIsIC0wLjExMzc1LCAtMC4xMDM3NSwgLTAuMDk1IiwgXAotICAgICAgICAgICItMC4xNjEyNSwgLTAuMTUsIC0wLjE0Mzc1LCAtMC4xMzEyNSwgLTAuMTI1LCAtMC4xMTUsIC0wLjEwNjI1IiwgXAotICAgICAgICAgICItMC4xNzM3NSwgLTAuMTY4NzUsIC0wLjE1NjI1LCAtMC4xNSwgLTAuMTM3NSwgLTAuMTI3NSwgLTAuMTE4NzUiLCBcCi0gICAgICAgICAgIi0wLjE4NjI1LCAtMC4xODEyNSwgLTAuMTY4NzUsIC0wLjE2MjUsIC0wLjE1NjI1LCAtMC4xNCwgLTAuMTMxMjUiLCBcCi0gICAgICAgICAgIi0wLjIwNSwgLTAuMTkzNzUsIC0wLjE4NzUsIC0wLjE3NSwgLTAuMTY4NzUsIC0wLjE1ODc1LCAtMC4xNSIsIFwKLSAgICAgICAgICAiLTAuMjIxMjUsIC0wLjIxNjI1LCAtMC4yMDM3NSwgLTAuMTk3NSwgLTAuMTkxMjUsIC0wLjE4MTI1LCAtMC4xNzI1IiwgXAotICAgICAgICAgICItMC4yNDI1LCAtMC4yMzEyNSwgLTAuMjI1LCAtMC4yMTI1LCAtMC4yMDYyNSwgLTAuMTk2MjUsIC0wLjE4NzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEJiFSTiZTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fUk5fRVFfMF9BTl9TSV9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIxMjUsIDAuMTk1LCAwLjE4MjUsIDAuMTcsIDAuMTU3NSwgMC4xNDEyNSwgMC4xMjYyNSIsIFwKLSAgICAgICAgICAiMC4yMjM3NSwgMC4yMDYyNSwgMC4xOTM3NSwgMC4xODEyNSwgMC4xNjI1LCAwLjE0NjI1LCAwLjEzNzUiLCBcCi0gICAgICAgICAgIjAuMjM2MjUsIDAuMjE4NzUsIDAuMjA2MjUsIDAuMTkzNzUsIDAuMTgxMjUsIDAuMTU4NzUsIDAuMTUiLCBcCi0gICAgICAgICAgIjAuMjQ4NzUsIDAuMjM3NSwgMC4yMTg3NSwgMC4yMDYyNSwgMC4xOTM3NSwgMC4xNzc1LCAwLjE2MjUiLCBcCi0gICAgICAgICAgIjAuMjYxMjUsIDAuMjUsIDAuMjMxMjUsIDAuMjE4NzUsIDAuMjA2MjUsIDAuMTksIDAuMTc1IiwgXAotICAgICAgICAgICIwLjI4Mzc1LCAwLjI3MjUsIDAuMjUzNzUsIDAuMjQxMjUsIDAuMjI4NzUsIDAuMjEyNSwgMC4xOTc1IiwgXAotICAgICAgICAgICIwLjMwNSwgMC4yODc1LCAwLjI3NSwgMC4yNjI1LCAwLjI1LCAwLjIzMzc1LCAwLjIxODc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMSwgMC4wODg3NSwgMC4wNywgMC4wNTc1LCAwLjAzODc1LCAwLjAxNjI1LCAtMC4wMDUiLCBcCi0gICAgICAgICAgIjAuMTExMjUsIDAuMSwgMC4wODEyNSwgMC4wNjg3NSwgMC4wNSwgMC4wMjc1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICIwLjEyMzc1LCAwLjExMjUsIDAuMSwgMC4wODEyNSwgMC4wNjg3NSwgMC4wNCwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4xNDI1LCAwLjEyNSwgMC4xMTI1LCAwLjA5Mzc1LCAwLjA4MTI1LCAwLjA1MjUsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiMC4xNTUsIDAuMTQzNzUsIDAuMTI1LCAwLjEwNjI1LCAwLjA5Mzc1LCAwLjA3MTI1LCAwLjA1IiwgXAotICAgICAgICAgICIwLjE3NzUsIDAuMTY2MjUsIDAuMTQ3NSwgMC4xMjg3NSwgMC4xMTYyNSwgMC4wOTM3NSwgMC4wNzI1IiwgXAotICAgICAgICAgICIwLjE5MjUsIDAuMTgxMjUsIDAuMTY4NzUsIDAuMTUsIDAuMTM3NSwgMC4xMDg3NSwgMC4wODc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJEJlJOJiFTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzFfQU5fUk5fRVFfMV9BTl9TSV9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE4NzUsIDAuMTcsIDAuMTU3NSwgMC4xMzg3NSwgMC4xMjYyNSwgMC4wOTc1LCAwLjA4MjUiLCBcCi0gICAgICAgICAgIjAuMTk4NzUsIDAuMTg3NSwgMC4xNjg3NSwgMC4xNSwgMC4xMzc1LCAwLjEwODc1LCAwLjA5Mzc1IiwgXAotICAgICAgICAgICIwLjIxMTI1LCAwLjIsIDAuMTgxMjUsIDAuMTY4NzUsIDAuMTUsIDAuMTI3NSwgMC4xMDYyNSIsIFwKLSAgICAgICAgICAiMC4yMywgMC4yMTI1LCAwLjIsIDAuMTgxMjUsIDAuMTY4NzUsIDAuMTQsIDAuMTE4NzUiLCBcCi0gICAgICAgICAgIjAuMjQyNSwgMC4yMzEyNSwgMC4yMTI1LCAwLjIsIDAuMTgxMjUsIDAuMTU4NzUsIDAuMTM3NSIsIFwKLSAgICAgICAgICAiMC4yNjUsIDAuMjUzNzUsIDAuMjM1LCAwLjIyMjUsIDAuMjAzNzUsIDAuMTgxMjUsIDAuMTYiLCBcCi0gICAgICAgICAgIjAuMjg2MjUsIDAuMjY4NzUsIDAuMjU2MjUsIDAuMjM3NSwgMC4yMjUsIDAuMTk2MjUsIDAuMTgxMjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yODEyNSwgMC4yNjM3NSwgMC4yNTEyNSwgMC4yMzg3NSwgMC4yMiwgMC4yMDM3NSwgMC4xODg3NSIsIFwKLSAgICAgICAgICAiMC4yOTI1LCAwLjI3NSwgMC4yNjI1LCAwLjI1LCAwLjIzMTI1LCAwLjIxNSwgMC4yIiwgXAotICAgICAgICAgICIwLjMwNSwgMC4yOTM3NSwgMC4yNzUsIDAuMjYyNSwgMC4yNSwgMC4yMjc1LCAwLjIxMjUiLCBcCi0gICAgICAgICAgIjAuMzIzNzUsIDAuMzA2MjUsIDAuMjkzNzUsIDAuMjc1LCAwLjI2MjUsIDAuMjQ2MjUsIDAuMjMxMjUiLCBcCi0gICAgICAgICAgIjAuMzM2MjUsIDAuMzE4NzUsIDAuMzA2MjUsIDAuMjkzNzUsIDAuMjc1LCAwLjI1ODc1LCAwLjI0Mzc1IiwgXAotICAgICAgICAgICIwLjM1ODc1LCAwLjM0MTI1LCAwLjMyODc1LCAwLjMxLCAwLjI5NzUsIDAuMjgxMjUsIDAuMjY2MjUiLCBcCi0gICAgICAgICAgIjAuMzczNzUsIDAuMzYyNSwgMC4zNDM3NSwgMC4zMzEyNSwgMC4zMTI1LCAwLjI5NjI1LCAwLjI4MTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTSSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjIzMDEyOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYyMTMyNjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2MjMwMTI7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyMTc2LCAwLjAwMjE2NiwgMC4wMDIxNjIsIDAuMDAyMTU5LCAwLjAwMjE1NiwgMC4wMDIxNTMsIDAuMDAyMTUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDM3MDIsIDAuMDAzNjk4LCAwLjAwMzY5NSwgMC4wMDM2OTQsIDAuMDAzNjkzLCAwLjAwMzY5MSwgMC4wMDM2ODkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiU0UiOwotICAgICAgc2RmX2NvbmQgOiAiU0UgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMTMxMjUsIC0wLjEyLCAtMC4xMDc1LCAtMC4xMDEyNSwgLTAuMDk1LCAtMC4wNzg3NSwgLTAuMDciLCBcCi0gICAgICAgICAgIi0wLjE0MjUsIC0wLjEzMTI1LCAtMC4xMjUsIC0wLjExMjUsIC0wLjEwNjI1LCAtMC4wOSwgLTAuMDgxMjUiLCBcCi0gICAgICAgICAgIi0wLjE1NSwgLTAuMTUsIC0wLjEzNzUsIC0wLjEyNSwgLTAuMTE4NzUsIC0wLjEwMjUsIC0wLjA5Mzc1IiwgXAotICAgICAgICAgICItMC4xNjc1LCAtMC4xNjI1LCAtMC4xNSwgLTAuMTM3NSwgLTAuMTMxMjUsIC0wLjEyMTI1LCAtMC4xMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMTgsIC0wLjE3NSwgLTAuMTYyNSwgLTAuMTU2MjUsIC0wLjE0Mzc1LCAtMC4xMzM3NSwgLTAuMTI1IiwgXAotICAgICAgICAgICItMC4yMDI1LCAtMC4xOTc1LCAtMC4xODUsIC0wLjE3ODc1LCAtMC4xNjYyNSwgLTAuMTU2MjUsIC0wLjE0MTI1IiwgXAotICAgICAgICAgICItMC4yMjM3NSwgLTAuMjE4NzUsIC0wLjIwNjI1LCAtMC4xOTM3NSwgLTAuMTg3NSwgLTAuMTcxMjUsIC0wLjE2MjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMjUsIC0wLjAxMzc1LCAtMC4wMDEyNSwgMC4wMTEyNSwgMC4wMjM3NSwgMC4wNDYyNSwgMC4wNjEyNSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAyNSwgLTAuMDEyNSwgMCwgMC4wMTI1LCAwLjAzNSwgMC4wNSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjAzNzUsIC0wLjAyNSwgLTAuMDEyNSwgMCwgMC4wMjI1LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjA2MTI1LCAtMC4wNSwgLTAuMDM3NSwgLTAuMDI1LCAtMC4wMTI1LCAwLjAxLCAwLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDczNzUsIC0wLjA2MjUsIC0wLjA1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAwMjUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDksIC0wLjA3ODc1LCAtMC4wNjYyNSwgLTAuMDUzNzUsIC0wLjA0MTI1LCAtMC4wMjUsIC0wLjAwMzc1IiwgXAotICAgICAgICAgICItMC4xMDUsIC0wLjA5Mzc1LCAtMC4wODEyNSwgLTAuMDY4NzUsIC0wLjA1NjI1LCAtMC4wNCwgLTAuMDI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJTRSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMjUsIDAuMjEzNzUsIDAuMTk1LCAwLjE4MjUsIDAuMTcsIDAuMTUzNzUsIDAuMTM4NzUiLCBcCi0gICAgICAgICAgIjAuMjM2MjUsIDAuMjI1LCAwLjIwNjI1LCAwLjE5Mzc1LCAwLjE4MTI1LCAwLjE2NSwgMC4xNSIsIFwKLSAgICAgICAgICAiMC4yNDg3NSwgMC4yMzc1LCAwLjIxODc1LCAwLjIwNjI1LCAwLjE5Mzc1LCAwLjE3NzUsIDAuMTYyNSIsIFwKLSAgICAgICAgICAiMC4yNjEyNSwgMC4yNSwgMC4yMzc1LCAwLjIxODc1LCAwLjIwNjI1LCAwLjE5LCAwLjE4MTI1IiwgXAotICAgICAgICAgICIwLjI4LCAwLjI2MjUsIDAuMjUsIDAuMjM3NSwgMC4yMTg3NSwgMC4yMDI1LCAwLjE5Mzc1IiwgXAotICAgICAgICAgICIwLjI5NjI1LCAwLjI4NSwgMC4yNzI1LCAwLjI1Mzc1LCAwLjI0MTI1LCAwLjIyNSwgMC4yMTYyNSIsIFwKLSAgICAgICAgICAiMC4zMTc1LCAwLjMwNjI1LCAwLjI4NzUsIDAuMjc1LCAwLjI2MjUsIDAuMjQ2MjUsIDAuMjMxMjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNTYyNSwgMC4xNDUsIDAuMTI2MjUsIDAuMTA3NSwgMC4wOTUsIDAuMDcyNSwgMC4wNTEyNSIsIFwKLSAgICAgICAgICAiMC4xNjc1LCAwLjE1NjI1LCAwLjEzNzUsIDAuMTE4NzUsIDAuMTA2MjUsIDAuMDgzNzUsIDAuMDYyNSIsIFwKLSAgICAgICAgICAiMC4xOCwgMC4xNjg3NSwgMC4xNSwgMC4xMzc1LCAwLjExODc1LCAwLjA5NjI1LCAwLjA3NSIsIFwKLSAgICAgICAgICAiMC4xOTI1LCAwLjE4MTI1LCAwLjE2MjUsIDAuMTUsIDAuMTMxMjUsIDAuMTA4NzUsIDAuMDg3NSIsIFwKLSAgICAgICAgICAiMC4yMDUsIDAuMTkzNzUsIDAuMTc1LCAwLjE2MjUsIDAuMTQzNzUsIDAuMTIxMjUsIDAuMSIsIFwKLSAgICAgICAgICAiMC4yMjEyNSwgMC4yMSwgMC4xOTc1LCAwLjE3ODc1LCAwLjE2NjI1LCAwLjEzNzUsIDAuMTE2MjUiLCBcCi0gICAgICAgICAgIjAuMjQyNSwgMC4yMjUsIDAuMjEyNSwgMC4xOTM3NSwgMC4xODEyNSwgMC4xNTI1LCAwLjEzNzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogU0RGRlRSWEwgKgotICogLS0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKFNERkZUUlhMKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMzEzODI5OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIGZmIChOMzAsUUJJTlQpIHsKLSAgICBuZXh0X3N0YXRlIDogIigoU0UgU0kpICsgKCFTRSAoRCBSTikpKSI7Ci0gICAgY2xvY2tlZF9vbiA6ICJDSyI7Ci0gIH0KLSAgcGluKENLKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA1NTQxMTc7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNTUzODExOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDU1NDExNzsKLSAgICBjbG9jayA6IHRydWU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyMjY2LCAwLjAwMjI1MywgMC4wMDIyNDEsIDAuMDAyMjM1LCAwLjAwMjIyOSwgMC4wMDIyMjIsIDAuMDAyMjIxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA0NzE3LCAwLjAwNDcwNiwgMC4wMDQ2OTgsIDAuMDA0NjkyLCAwLjAwNDY5MSwgMC4wMDQ2OTMsIDAuMDA0NjkxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRCYhUk4mIVNFJiFTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fUk5fRVFfMF9BTl9TRV9FUV8wX0FOX1NJX0VRXzAgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4zNzUzNjIsIDAuMzg3MDIxLCAwLjQwMjQ2OSwgMC40MTc4ODMsIDAuNDMzMDM2LCAwLjQ1NzMyMywgMC40NzgxMDEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjE5MjA3MywgMC4yMDMzNDgsIDAuMjE4MzkxLCAwLjIzMzMwNSwgMC4yNDc4ODMsIDAuMjcwNDI3LCAwLjI4OTA5NCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNTk5MjU2OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDU5ODg4NTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA1OTkyNTY7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyNTcsIDAuMDAyNTU5LCAwLjAwMjU1MywgMC4wMDI1NDgsIDAuMDAyNTQ2LCAwLjAwMjU0MywgMC4wMDI1NDIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDQ0MzYsIDAuMDA0NDMyLCAwLjAwNDQyOCwgMC4wMDQ0MjUsIDAuMDA0NDIzLCAwLjAwNDQyLCAwLjAwNDQxNyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJSTiYhU0UiOwotICAgICAgc2RmX2NvbmQgOiAiUk5fRVFfMV9BTl9TRV9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjIyNSwgLTAuMjEzNzUsIC0wLjIwMTI1LCAtMC4xOTUsIC0wLjE4MjUsIC0wLjE3MjUsIC0wLjE1NzUiLCBcCi0gICAgICAgICAgIi0wLjIzLCAtMC4yMjUsIC0wLjIxMjUsIC0wLjIsIC0wLjE5Mzc1LCAtMC4xNzc1LCAtMC4xNjg3NSIsIFwKLSAgICAgICAgICAiLTAuMjQyNSwgLTAuMjM3NSwgLTAuMjI1LCAtMC4yMTg3NSwgLTAuMjA2MjUsIC0wLjE5LCAtMC4xODEyNSIsIFwKLSAgICAgICAgICAiLTAuMjYxMjUsIC0wLjI1LCAtMC4yMzc1LCAtMC4yMzEyNSwgLTAuMjE4NzUsIC0wLjIwODc1LCAtMC4xOTM3NSIsIFwKLSAgICAgICAgICAiLTAuMjczNzUsIC0wLjI2MjUsIC0wLjI1NjI1LCAtMC4yNDM3NSwgLTAuMjM3NSwgLTAuMjIxMjUsIC0wLjIxMjUiLCBcCi0gICAgICAgICAgIi0wLjI5NjI1LCAtMC4yODUsIC0wLjI3MjUsIC0wLjI2NjI1LCAtMC4yNTM3NSwgLTAuMjQzNzUsIC0wLjIzNSIsIFwKLSAgICAgICAgICAiLTAuMzE3NSwgLTAuMzA2MjUsIC0wLjI5Mzc1LCAtMC4yODc1LCAtMC4yNzUsIC0wLjI1ODc1LCAtMC4yNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAzMTI1LCAtMC4wMiwgLTAuMDA3NSwgMC4wMDUsIDAuMDIzNzUsIDAuMDQsIDAuMDYxMjUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAuMDEyNSwgMC4wMjg3NSwgMC4wNSIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNDM3NSwgLTAuMDMxMjUsIC0wLjAxODc1LCAtMC4wMDYyNSwgMC4wMTYyNSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDY3NSwgLTAuMDU2MjUsIC0wLjA0Mzc1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIDAuMDAzNzUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjA4NjI1LCAtMC4wNjg3NSwgLTAuMDU2MjUsIC0wLjA0Mzc1LCAtMC4wMzEyNSwgLTAuMDA4NzUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjEwMjUsIC0wLjA5MTI1LCAtMC4wNzg3NSwgLTAuMDY2MjUsIC0wLjA1Mzc1LCAtMC4wMzEyNSwgLTAuMDE2MjUiLCBcCi0gICAgICAgICAgIi0wLjExNzUsIC0wLjEwNjI1LCAtMC4wOTM3NSwgLTAuMDgxMjUsIC0wLjA2ODc1LCAtMC4wNTI1LCAtMC4wMzEyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiUk4mIVNFIjsKLSAgICAgIHNkZl9jb25kIDogIlJOX0VRXzFfQU5fU0VfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMjUsIDAuMzA3NSwgMC4yOTUsIDAuMjc2MjUsIDAuMjYzNzUsIDAuMjQ3NSwgMC4yMzI1IiwgXAotICAgICAgICAgICIwLjMzLCAwLjMxODc1LCAwLjMwNjI1LCAwLjI4NzUsIDAuMjc1LCAwLjI1ODc1LCAwLjI0Mzc1IiwgXAotICAgICAgICAgICIwLjM0MjUsIDAuMzMxMjUsIDAuMzE4NzUsIDAuMywgMC4yODc1LCAwLjI3MTI1LCAwLjI1NjI1IiwgXAotICAgICAgICAgICIwLjM1NSwgMC4zNDM3NSwgMC4zMzEyNSwgMC4zMTI1LCAwLjMsIDAuMjgzNzUsIDAuMjY4NzUiLCBcCi0gICAgICAgICAgIjAuMzczNzUsIDAuMzYyNSwgMC4zNDM3NSwgMC4zMzEyNSwgMC4zMTg3NSwgMC4zMDI1LCAwLjI4NzUiLCBcCi0gICAgICAgICAgIjAuMzk2MjUsIDAuMzc4NzUsIDAuMzY2MjUsIDAuMzUzNzUsIDAuMzQxMjUsIDAuMzI1LCAwLjMxIiwgXAotICAgICAgICAgICIwLjQxMTI1LCAwLjQsIDAuMzg3NSwgMC4zNjg3NSwgMC4zNTYyNSwgMC4zNCwgMC4zMjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNDM3NSwgMC4xMzI1LCAwLjExMzc1LCAwLjA5NSwgMC4wODI1LCAwLjA2LCAwLjAzODc1IiwgXAotICAgICAgICAgICIwLjE1NSwgMC4xNDM3NSwgMC4xMjUsIDAuMTA2MjUsIDAuMDkzNzUsIDAuMDcxMjUsIDAuMDUiLCBcCi0gICAgICAgICAgIjAuMTY3NSwgMC4xNTYyNSwgMC4xMzc1LCAwLjEyNSwgMC4xMDYyNSwgMC4wODM3NSwgMC4wNjI1IiwgXAotICAgICAgICAgICIwLjE4LCAwLjE2ODc1LCAwLjE1NjI1LCAwLjEzNzUsIDAuMTI1LCAwLjA5NjI1LCAwLjA3NSIsIFwKLSAgICAgICAgICAiMC4xOTg3NSwgMC4xODc1LCAwLjE2ODc1LCAwLjE1LCAwLjEzNzUsIDAuMTE1LCAwLjA5Mzc1IiwgXAotICAgICAgICAgICIwLjIyMTI1LCAwLjIxLCAwLjE5MTI1LCAwLjE3MjUsIDAuMTYsIDAuMTM3NSwgMC4xMTYyNSIsIFwKLSAgICAgICAgICAiMC4yMzYyNSwgMC4yMjUsIDAuMjEyNSwgMC4xOTM3NSwgMC4xNzUsIDAuMTUyNSwgMC4xMzEyNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjA3MzIwODM7Ci0gICAgZnVuY3Rpb24gOiAiTjMwIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBub25fdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJpc2luZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMjY5MjEsIDAuMzUyNDEzLCAwLjU4MDc3NiwgMC45NTk3ODcsIDEuMzQxMzEsIDIuMjI3MDksIDIuNzMxOCIsIFwKLSAgICAgICAgICAiMC4zMzg0ODgsIDAuMzYzNzAxLCAwLjU5MjE5MiwgMC45NzEwNzUsIDEuMzQ5NSwgMi4yMzg4OCwgMi43NDMwNyIsIFwKLSAgICAgICAgICAiMC4zNTM3OCwgMC4zNzg5MzEsIDAuNjA3MTI5LCAwLjk4NTU1NiwgMS4zNjU2MSwgMi4yNTQ2LCAyLjc1OTkxIiwgXAotICAgICAgICAgICIwLjM2OTMwMywgMC4zOTQ4NCwgMC42MjMwNDEsIDEuMDAxODEsIDEuMzgwMjUsIDIuMjY5NjgsIDIuNzc0IiwgXAotICAgICAgICAgICIwLjM4NDM3MiwgMC40MDk1MjQsIDAuNjM3NzA1LCAxLjAxNjE2LCAxLjM5NjIxLCAyLjI4NTI0LCAyLjc5MDUiLCBcCi0gICAgICAgICAgIjAuNDA4NTgzLCAwLjQzMzgxMywgMC42NjE5ODYsIDEuMDQwNDgsIDEuNDIwNDQsIDIuMzA5NDQsIDIuODExNTkiLCBcCi0gICAgICAgICAgIjAuNDI5LCAwLjQ1NDE0MywgMC42ODIzMywgMS4wNjA4MSwgMS40NDA4NSwgMi4zMjk5NCwgMi44MzUwNyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yNzc0ODUsIDAuMzI5NDEzLCAwLjc5NDcwNiwgMS41NzY4MiwgMi4zNTU2MSwgNC4xNzA2NCwgNS4xOTU3NCIsIFwKLSAgICAgICAgICAiMC4yNzc0NjIsIDAuMzI5MTQzLCAwLjc4NjkxOCwgMS41NTkyNiwgMi4zNTYzLCA0LjE2OTU1LCA1LjE4Nzg0IiwgXAotICAgICAgICAgICIwLjI3NzQ2MiwgMC4zMjkwNzUsIDAuNzg5OTkxLCAxLjU3NjY0LCAyLjM1NjQ3LCA0LjEwOTM1LCA1LjE5NDUzIiwgXAotICAgICAgICAgICIwLjI3NzQ2NSwgMC4zMjg5NywgMC43OTI3NjIsIDEuNTU3NTQsIDIuMzU2MjksIDQuMTY5NDYsIDUuMTg3ODYiLCBcCi0gICAgICAgICAgIjAuMjc3NDY4LCAwLjMyOTA3NSwgMC43OTAxNzEsIDEuNTc2NjQsIDIuMzU2NDcsIDQuMTMxODUsIDUuMTk0NTEiLCBcCi0gICAgICAgICAgIjAuMjc3NDA2LCAwLjMyOTE1NiwgMC43OTQ3NjUsIDEuNTc2NjUsIDIuMzU2NDQsIDQuMTI0OTcsIDUuMTQ5OSIsIFwKLSAgICAgICAgICAiMC4yNzc0NiwgMC4zMjkwODMsIDAuNzkwMTQ4LCAxLjU3NjY0LCAyLjM1NjQ3LCA0LjE0OTgxLCA1LjE5Njg2Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjM3NTM2NiwgMC40MDUzMTQsIDAuNjcyOTU0LCAxLjExODIyLCAxLjU2ODk4LCAyLjYxMjUzLCAzLjIwNzQ2IiwgXAotICAgICAgICAgICIwLjM4NzAyMSwgMC40MTY5ODcsIDAuNjg0NDksIDEuMTMwMjIsIDEuNTgwNjQsIDIuNjIzNTMsIDMuMjE5MzgiLCBcCi0gICAgICAgICAgIjAuNDAyNDczLCAwLjQzMjMxNywgMC42OTk3MzYsIDEuMTQ1MzUsIDEuNTk2MTYsIDIuNjM5LCAzLjIzNDczIiwgXAotICAgICAgICAgICIwLjQxNzg4NywgMC40NDc4MzUsIDAuNzE1MjgsIDEuMTYwMzksIDEuNjExMjQsIDIuNjU0MTksIDMuMjUwMDciLCBcCi0gICAgICAgICAgIjAuNDMzMDQsIDAuNDYyOTg3LCAwLjczMDY0LCAxLjE3NTkxLCAxLjYyNjY2LCAyLjY2MTE5LCAzLjI2NTEyIiwgXAotICAgICAgICAgICIwLjQ1NzMyNCwgMC40ODcyNzEsIDAuNzU1MDUzLCAxLjIwMDI2LCAxLjY1MTA0LCAyLjY5MzczLCAzLjI4OTU5IiwgXAotICAgICAgICAgICIwLjQ3ODEwMiwgMC41MDgwNDksIDAuNzc1Njk1LCAxLjIyMDksIDEuNjcxNjYsIDIuNzA5MTQsIDMuMzEwMjIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzEzNjc5LCAwLjM3MTk5MywgMC44OTkyMzcsIDEuNzg0NDIsIDIuNjY5MTQsIDQuNzMxMjMsIDUuOTEzMDgiLCBcCi0gICAgICAgICAgIjAuMzEzNzczLCAwLjM3MjEwMiwgMC45MDEwOTMsIDEuNzgyNjEsIDIuNjY3OTMsIDQuNzIwNjgsIDUuOTE5NzQiLCBcCi0gICAgICAgICAgIjAuMzEzNzU3LCAwLjM3MTc3LCAwLjkwMDA4MiwgMS43ODQ4MywgMi42Njc3NSwgNC43MjE4NSwgNS45MTk4NiIsIFwKLSAgICAgICAgICAiMC4zMTM3NzMsIDAuMzcyMTU5LCAwLjkwMTM4OCwgMS43ODA3MywgMi42NjM5NSwgNC43MTc2NywgNS45MjAwMSIsIFwKLSAgICAgICAgICAiMC4zMTM3NzYsIDAuMzcyMTU2LCAwLjg5OTkzNSwgMS43ODQ1NSwgMi42NjcyMiwgNC43MjMzNSwgNS45MjAxOSIsIFwKLSAgICAgICAgICAiMC4zMTM3NzYsIDAuMzcyMTUyLCAwLjg5OTU3MiwgMS43ODM5MSwgMi42NjgyOCwgNC43Mzg3NSwgNS45MjAyNCIsIFwKLSAgICAgICAgICAiMC4zMTM3NzYsIDAuMzcyMTU3LCAwLjkwMDM2NywgMS43ODU5MSwgMi42NjY1OSwgNC43Mzk3LCA1LjkyMDE3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjkyNiwgMC4wMDI5MjYsIDAuMDAyOTIzLCAwLjAwMjkyMSwgMC4wMDI5MiwgMC4wMDI5MTksIDAuMDAyOTE5IiwgXAotICAgICAgICAgICIwLjAwMjkxOSwgMC4wMDI5MTksIDAuMDAyOTE2LCAwLjAwMjkxMywgMC4wMDI5MTIsIDAuMDAyOTEyLCAwLjAwMjkxMiIsIFwKLSAgICAgICAgICAiMC4wMDI5MTMsIDAuMDAyOTEyLCAwLjAwMjkwOSwgMC4wMDI5MDcsIDAuMDAyOTA2LCAwLjAwMjkwNSwgMC4wMDI5MDUiLCBcCi0gICAgICAgICAgIjAuMDAyOTA4LCAwLjAwMjkwOCwgMC4wMDI5MDUsIDAuMDAyOTAzLCAwLjAwMjkwMiwgMC4wMDI5MDEsIDAuMDAyOTAxIiwgXAotICAgICAgICAgICIwLjAwMjkwNCwgMC4wMDI5MDQsIDAuMDAyOTAxLCAwLjAwMjg5OSwgMC4wMDI4OTcsIDAuMDAyODk2LCAwLjAwMjg5NiIsIFwKLSAgICAgICAgICAiMC4wMDI5LCAwLjAwMjksIDAuMDAyODk3LCAwLjAwMjg5NCwgMC4wMDI4OTMsIDAuMDAyODkyLCAwLjAwMjg5MiIsIFwKLSAgICAgICAgICAiMC4wMDI4OTcsIDAuMDAyODk3LCAwLjAwMjg5NCwgMC4wMDI4OTIsIDAuMDAyODkxLCAwLjAwMjg5LCAwLjAwMjg4OSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjg5MSwgMC4wMDI4OTEsIDAuMDAyODk0LCAwLjAwMjg5NCwgMC4wMDI4OTUsIDAuMDAyODk1LCAwLjAwMjg5NSIsIFwKLSAgICAgICAgICAiMC4wMDI4ODQsIDAuMDAyODg1LCAwLjAwMjg4NywgMC4wMDI4ODcsIDAuMDAyODg4LCAwLjAwMjg4OCwgMC4wMDI4ODgiLCBcCi0gICAgICAgICAgIjAuMDAyODc4LCAwLjAwMjg3OSwgMC4wMDI4ODEsIDAuMDAyODgyLCAwLjAwMjg4MiwgMC4wMDI4ODIsIDAuMDAyODgyIiwgXAotICAgICAgICAgICIwLjAwMjg3NCwgMC4wMDI4NzUsIDAuMDAyODc3LCAwLjAwMjg3OCwgMC4wMDI4NzgsIDAuMDAyODc5LCAwLjAwMjg3OSIsIFwKLSAgICAgICAgICAiMC4wMDI4NzMsIDAuMDAyODczLCAwLjAwMjg3NSwgMC4wMDI4NzYsIDAuMDAyODc3LCAwLjAwMjg3NywgMC4wMDI4NzciLCBcCi0gICAgICAgICAgIjAuMDAyODcyLCAwLjAwMjg3MywgMC4wMDI4NzUsIDAuMDAyODc1LCAwLjAwMjg3NiwgMC4wMDI4NzYsIDAuMDAyODc2IiwgXAotICAgICAgICAgICIwLjAwMjg3NiwgMC4wMDI4NzYsIDAuMDAyODc4LCAwLjAwMjg3OSwgMC4wMDI4NzksIDAuMDAyODgsIDAuMDAyODgiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFFOKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMDcyNTY1OTsKLSAgICBmdW5jdGlvbiA6ICJRQklOVCI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3NlbnNlIDogbm9uX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiByaXNpbmdfZWRnZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzc0NjU4LCAwLjM5OTg4OCwgMC42MjcxMjQsIDEuMDA1NzYsIDEuMzg0MzUsIDIuMjY3OTEsIDIuNzczMDgiLCBcCi0gICAgICAgICAgIjAuMzg2MzI1LCAwLjQxMTU4NCwgMC42Mzg3OTYsIDEuMDE3NDIsIDEuMzk2MDUsIDIuMjc5NzIsIDIuNzg0NjUiLCBcCi0gICAgICAgICAgIjAuNDAxNzc2LCAwLjQyNzAwOSwgMC42NTQyNTcsIDEuMDMyODgsIDEuNDExNDgsIDIuMjk1MjIsIDIuODAwMTQiLCBcCi0gICAgICAgICAgIjAuNDE3MjAxLCAwLjQ0MjQzMSwgMC42Njk2NzUsIDEuMDQ4MzEsIDEuNDI2ODksIDIuMzEwNjIsIDIuODE1NTgiLCBcCi0gICAgICAgICAgIjAuNDMyMzQ1LCAwLjQ1NzU3NSwgMC42ODQ4MDksIDEuMDYzNDQsIDEuNDQyMDQsIDIuMzI1NTksIDIuODMwNzYiLCBcCi0gICAgICAgICAgIjAuNDU2NjI3LCAwLjQ4MTg2MywgMC43MDkxMDgsIDEuMDg3NzMsIDEuNDY2MzQsIDIuMzUwMDcsIDIuODU1MDciLCBcCi0gICAgICAgICAgIjAuNDc3NDEzLCAwLjUwMjY0NCwgMC43Mjk4ODIsIDEuMTA4NTIsIDEuNDg3MTEsIDIuMzcwNjUsIDIuODc1ODMiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjY5NjUsIDAuMzIwODc5LCAwLjc4MTMzNiwgMS41NDk5MiwgMi4zMjE5MSwgNC4xMTc2OCwgNS4xMzc2OCIsIFwKLSAgICAgICAgICAiMC4yNjk2NDcsIDAuMzIwOTg0LCAwLjc4MTQxMSwgMS41NDk3OSwgMi4zMjIwNiwgNC4xMTgwNSwgNS4xMzc1OCIsIFwKLSAgICAgICAgICAiMC4yNjk2NDEsIDAuMzIwODIzLCAwLjc4MTQwNSwgMS41NDk5MywgMi4zMjE5NCwgNC4xMTgwNiwgNS4xMzc3MyIsIFwKLSAgICAgICAgICAiMC4yNjk2NDYsIDAuMzIwODczLCAwLjc4MTQ2LCAxLjU0OTgzLCAyLjMyMTgyLCA0LjExNzk4LCA1LjEzNzciLCBcCi0gICAgICAgICAgIjAuMjY5NjQ4LCAwLjMyMDg3OSwgMC43ODEyOTMsIDEuNTQ5OTMsIDIuMzIxOTIsIDQuMTExNCwgNS4xMzc2OCIsIFwKLSAgICAgICAgICAiMC4yNjk2NDcsIDAuMzIwODc5LCAwLjc4MjUyNSwgMS41NDk5MSwgMi4zMjE5OSwgNC4xMTgwNiwgNS4xMzc1NiIsIFwKLSAgICAgICAgICAiMC4yNjk2NDgsIDAuMzIwODc4LCAwLjc4MTMzNCwgMS41NDk4OCwgMi4zMjE5LCA0LjExNzE0LCA1LjEzNzY5Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjM3MDc1NCwgMC40MDA0NTQsIDAuNjY3Nzk3LCAxLjExMzE3LCAxLjU1ODczLCAyLjU5ODAxLCAzLjE5MTcxIiwgXAotICAgICAgICAgICIwLjM4MjMxNCwgMC40MTIwMSwgMC42NzkzMzcsIDEuMTI0NywgMS41NzAwNSwgMi42MDk1OSwgMy4yMDMzNCIsIFwKLSAgICAgICAgICAiMC4zOTc2MDMsIDAuNDI3MzExLCAwLjY5NDYwOSwgMS4xMzk5NiwgMS41ODU0LCAyLjYyNDkxLCAzLjIxODY0IiwgXAotICAgICAgICAgICIwLjQxMzEyNSwgMC40NDI4MzcsIDAuNzEwMTUxLCAxLjE1NTUxLCAxLjYwMDg2LCAyLjY0MDQsIDMuMjM0MTciLCBcCi0gICAgICAgICAgIjAuNDI4MTksIDAuNDU3ODk4LCAwLjcyNTE5NSwgMS4xNzA1NSwgMS42MTU5OSwgMi42NTU1LCAzLjI0OTIzIiwgXAotICAgICAgICAgICIwLjQ1MjQyMiwgMC40ODIxMDksIDAuNzQ5NDE5LCAxLjE5NDc3LCAxLjY0MDIxLCAyLjY3OTcyLCAzLjI3MzI3IiwgXAotICAgICAgICAgICIwLjQ3MjgxMSwgMC41MDI1MiwgMC43Njk4MTQsIDEuMjE1MTcsIDEuNjYwNjEsIDIuNzAwMTMsIDMuMjkzODQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzA4MzQ4LCAwLjM2NzA4MywgMC44OTYzMzEsIDEuNzc3NzYsIDIuNjU5NDMsIDQuNzE2NTYsIDUuODg5OCIsIFwKLSAgICAgICAgICAiMC4zMDgzNDYsIDAuMzY3MDcsIDAuODk1NjgzLCAxLjc3NzAyLCAyLjY1OTI4LCA0LjcxNjUsIDUuODkwNDkiLCBcCi0gICAgICAgICAgIjAuMzA4MzQ0LCAwLjM2NzA4MSwgMC44OTU3NzUsIDEuNzc3NjIsIDIuNjU5MzksIDQuNzEyNiwgNS44ODgwNSIsIFwKLSAgICAgICAgICAiMC4zMDgzNDUsIDAuMzY2OTk2LCAwLjg5NTMzNiwgMS43NzY5OCwgMi42NTkyNywgNC43MTY0OSwgNS44OTA1IiwgXAotICAgICAgICAgICIwLjMwODM0NCwgMC4zNjcwOCwgMC44OTU3NzksIDEuNzc3NjIsIDIuNjU5MzksIDQuNzEzMiwgNS44ODgwNSIsIFwKLSAgICAgICAgICAiMC4zMDgzNTEsIDAuMzY3MDcsIDAuODk2MDAxLCAxLjc3NzY2LCAyLjY1OTEsIDQuNzEyOTgsIDUuODg4NTUiLCBcCi0gICAgICAgICAgIjAuMzA4MzQ0LCAwLjM2NzA4MiwgMC44OTU3NzcsIDEuNzc3NjIsIDIuNjU5MzksIDQuNzEzODQsIDUuODg3NjciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyODkxLCAwLjAwMjg5MSwgMC4wMDI4OTQsIDAuMDAyODk0LCAwLjAwMjg5NSwgMC4wMDI4OTUsIDAuMDAyODk1IiwgXAotICAgICAgICAgICIwLjAwMjg4NCwgMC4wMDI4ODUsIDAuMDAyODg3LCAwLjAwMjg4NywgMC4wMDI4ODgsIDAuMDAyODg4LCAwLjAwMjg4OCIsIFwKLSAgICAgICAgICAiMC4wMDI4NzgsIDAuMDAyODc5LCAwLjAwMjg4MSwgMC4wMDI4ODIsIDAuMDAyODgyLCAwLjAwMjg4MiwgMC4wMDI4ODIiLCBcCi0gICAgICAgICAgIjAuMDAyODc0LCAwLjAwMjg3NSwgMC4wMDI4NzcsIDAuMDAyODc4LCAwLjAwMjg3OCwgMC4wMDI4NzksIDAuMDAyODc5IiwgXAotICAgICAgICAgICIwLjAwMjg3MywgMC4wMDI4NzMsIDAuMDAyODc1LCAwLjAwMjg3NiwgMC4wMDI4NzcsIDAuMDAyODc3LCAwLjAwMjg3NyIsIFwKLSAgICAgICAgICAiMC4wMDI4NzIsIDAuMDAyODczLCAwLjAwMjg3NSwgMC4wMDI4NzUsIDAuMDAyODc2LCAwLjAwMjg3NiwgMC4wMDI4NzYiLCBcCi0gICAgICAgICAgIjAuMDAyODc2LCAwLjAwMjg3NiwgMC4wMDI4NzgsIDAuMDAyODc5LCAwLjAwMjg3OSwgMC4wMDI4OCwgMC4wMDI4OCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjkyNiwgMC4wMDI5MjYsIDAuMDAyOTIzLCAwLjAwMjkyMSwgMC4wMDI5MiwgMC4wMDI5MTksIDAuMDAyOTE5IiwgXAotICAgICAgICAgICIwLjAwMjkxOSwgMC4wMDI5MTksIDAuMDAyOTE2LCAwLjAwMjkxMywgMC4wMDI5MTIsIDAuMDAyOTEyLCAwLjAwMjkxMiIsIFwKLSAgICAgICAgICAiMC4wMDI5MTMsIDAuMDAyOTEyLCAwLjAwMjkwOSwgMC4wMDI5MDcsIDAuMDAyOTA2LCAwLjAwMjkwNSwgMC4wMDI5MDUiLCBcCi0gICAgICAgICAgIjAuMDAyOTA4LCAwLjAwMjkwOCwgMC4wMDI5MDUsIDAuMDAyOTAzLCAwLjAwMjkwMiwgMC4wMDI5MDEsIDAuMDAyOTAxIiwgXAotICAgICAgICAgICIwLjAwMjkwNCwgMC4wMDI5MDQsIDAuMDAyOTAxLCAwLjAwMjg5OSwgMC4wMDI4OTcsIDAuMDAyODk2LCAwLjAwMjg5NiIsIFwKLSAgICAgICAgICAiMC4wMDI5LCAwLjAwMjksIDAuMDAyODk3LCAwLjAwMjg5NCwgMC4wMDI4OTMsIDAuMDAyODkyLCAwLjAwMjg5MiIsIFwKLSAgICAgICAgICAiMC4wMDI4OTcsIDAuMDAyODk3LCAwLjAwMjg5NCwgMC4wMDI4OTIsIDAuMDAyODkxLCAwLjAwMjg5LCAwLjAwMjg4OSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUk4pICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDU0Nzk1OTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA1NDc5NTk7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNTQ2NTc5OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjU3MSwgMC4wMDI1NjIsIDAuMDAyNTU2LCAwLjAwMjU1MywgMC4wMDI1NSwgMC4wMDI1NDYsIDAuMDAyNTQ0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA0NjQ3LCAwLjAwNDY0MSwgMC4wMDQ2MzcsIDAuMDA0NjM1LCAwLjAwNDYzNCwgMC4wMDQ2MzMsIDAuMDA0NjMxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIkQmIVNFIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMV9BTl9TRV9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjIzMTI1LCAtMC4yMiwgLTAuMjA3NSwgLTAuMjAxMjUsIC0wLjE4ODc1LCAtMC4xNzg3NSwgLTAuMTYzNzUiLCBcCi0gICAgICAgICAgIi0wLjI0MjUsIC0wLjIzMTI1LCAtMC4yMTg3NSwgLTAuMjEyNSwgLTAuMiwgLTAuMTksIC0wLjE3NSIsIFwKLSAgICAgICAgICAiLTAuMjU1LCAtMC4yNDM3NSwgLTAuMjMxMjUsIC0wLjIyNSwgLTAuMjEyNSwgLTAuMjAyNSwgLTAuMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMjY3NSwgLTAuMjU2MjUsIC0wLjI1LCAtMC4yMzc1LCAtMC4yMzEyNSwgLTAuMjE1LCAtMC4yMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMjgsIC0wLjI2ODc1LCAtMC4yNjI1LCAtMC4yNSwgLTAuMjQzNzUsIC0wLjIyNzUsIC0wLjIxODc1IiwgXAotICAgICAgICAgICItMC4zMDI1LCAtMC4yOTEyNSwgLTAuMjg1LCAtMC4yNzI1LCAtMC4yNjYyNSwgLTAuMjUsIC0wLjI0MTI1IiwgXAotICAgICAgICAgICItMC4zMjM3NSwgLTAuMzEyNSwgLTAuMywgLTAuMjkzNzUsIC0wLjI4MTI1LCAtMC4yNzEyNSwgLTAuMjU2MjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMzEyNSwgLTAuMDIsIC0wLjAwNzUsIDAuMDA1LCAwLjAxNzUsIDAuMDQsIDAuMDU1IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLjAwNjI1LCAwLjAyODc1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICItMC4wNjEyNSwgLTAuMDQzNzUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAuMDE2MjUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjA3Mzc1LCAtMC4wNjI1LCAtMC4wNSwgLTAuMDMxMjUsIC0wLjAxODc1LCAtMC4wMDI1LCAwLjAxODc1IiwgXAotICAgICAgICAgICItMC4wODYyNSwgLTAuMDc1LCAtMC4wNjI1LCAtMC4wNSwgLTAuMDM3NSwgLTAuMDE1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICItMC4xMDI1LCAtMC4wOTEyNSwgLTAuMDc4NzUsIC0wLjA3MjUsIC0wLjA1Mzc1LCAtMC4wMzc1LCAtMC4wMTYyNSIsIFwKLSAgICAgICAgICAiLTAuMTIzNzUsIC0wLjEwNjI1LCAtMC4xLCAtMC4wODc1LCAtMC4wNzUsIC0wLjA1MjUsIC0wLjAzNzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIkQmIVNFIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMV9BTl9TRV9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMyNSwgMC4zMTM3NSwgMC4zMDEyNSwgMC4yODI1LCAwLjI3LCAwLjI1Mzc1LCAwLjIzODc1IiwgXAotICAgICAgICAgICIwLjM0MjUsIDAuMzI1LCAwLjMxMjUsIDAuMjkzNzUsIDAuMjgxMjUsIDAuMjY1LCAwLjI1IiwgXAotICAgICAgICAgICIwLjM1NSwgMC4zMzc1LCAwLjMyNSwgMC4zMTI1LCAwLjMsIDAuMjc3NSwgMC4yNjg3NSIsIFwKLSAgICAgICAgICAiMC4zNjc1LCAwLjM1NjI1LCAwLjMzNzUsIDAuMzI1LCAwLjMxMjUsIDAuMjk2MjUsIDAuMjgxMjUiLCBcCi0gICAgICAgICAgIjAuMzgsIDAuMzY4NzUsIDAuMzU2MjUsIDAuMzM3NSwgMC4zMjUsIDAuMzA4NzUsIDAuMjkzNzUiLCBcCi0gICAgICAgICAgIjAuNDAyNSwgMC4zOTEyNSwgMC4zNzI1LCAwLjM2LCAwLjM0NzUsIDAuMzMxMjUsIDAuMzE2MjUiLCBcCi0gICAgICAgICAgIjAuNDIzNzUsIDAuNDA2MjUsIDAuMzkzNzUsIDAuMzgxMjUsIDAuMzY4NzUsIDAuMzQ2MjUsIDAuMzMxMjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNDM3NSwgMC4xMzI1LCAwLjEyLCAwLjEwMTI1LCAwLjA4MjUsIDAuMDYsIDAuMDM4NzUiLCBcCi0gICAgICAgICAgIjAuMTU1LCAwLjE0Mzc1LCAwLjEzMTI1LCAwLjExMjUsIDAuMSwgMC4wNzEyNSwgMC4wNSIsIFwKLSAgICAgICAgICAiMC4xNzM3NSwgMC4xNTYyNSwgMC4xNDM3NSwgMC4xMjUsIDAuMTEyNSwgMC4wOSwgMC4wNjg3NSIsIFwKLSAgICAgICAgICAiMC4xODYyNSwgMC4xNzUsIDAuMTU2MjUsIDAuMTQzNzUsIDAuMTI1LCAwLjEwMjUsIDAuMDgxMjUiLCBcCi0gICAgICAgICAgIjAuMTk4NzUsIDAuMTg3NSwgMC4xNzUsIDAuMTU2MjUsIDAuMTM3NSwgMC4xMTUsIDAuMDkzNzUiLCBcCi0gICAgICAgICAgIjAuMjIxMjUsIDAuMjEsIDAuMTk3NSwgMC4xNzg3NSwgMC4xNiwgMC4xMzc1LCAwLjExNjI1IiwgXAotICAgICAgICAgICIwLjI0MjUsIDAuMjMxMjUsIDAuMjEyNSwgMC4yLCAwLjE4MTI1LCAwLjE1ODc1LCAwLjEzNzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFNFKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDExNDUzMTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDExNDQ2NjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDExNDUzMTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDMzMTgsIDAuMDAzMzA4LCAwLjAwMzMwMywgMC4wMDMzMDIsIDAuMDAzMzAyLCAwLjAwMzMwMywgMC4wMDMzMDQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDQ0NDksIDAuMDA0NDMzLCAwLjAwNDQyLCAwLjAwNDQxMywgMC4wMDQ0MDgsIDAuMDA0NCwgMC4wMDQzOTciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUQmIVJOJlNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9STl9FUV8wX0FOX1NJX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMTE4NzUsIC0wLjEwNzUsIC0wLjA5NSwgLTAuMDgyNSwgLTAuMDc2MjUsIC0wLjA2LCAtMC4wNDUiLCBcCi0gICAgICAgICAgIi0wLjEyMzc1LCAtMC4xMTg3NSwgLTAuMTA2MjUsIC0wLjA5Mzc1LCAtMC4wODc1LCAtMC4wNzEyNSwgLTAuMDU2MjUiLCBcCi0gICAgICAgICAgIi0wLjE0MjUsIC0wLjEzMTI1LCAtMC4xMTg3NSwgLTAuMTA2MjUsIC0wLjEsIC0wLjA4Mzc1LCAtMC4wNjg3NSIsIFwKLSAgICAgICAgICAiLTAuMTU1LCAtMC4xNDM3NSwgLTAuMTMxMjUsIC0wLjExODc1LCAtMC4xMTI1LCAtMC4wOTYyNSwgLTAuMDg3NSIsIFwKLSAgICAgICAgICAiLTAuMTY3NSwgLTAuMTU2MjUsIC0wLjE0Mzc1LCAtMC4xMzc1LCAtMC4xMjUsIC0wLjEwODc1LCAtMC4xIiwgXAotICAgICAgICAgICItMC4xOSwgLTAuMTc4NzUsIC0wLjE2NjI1LCAtMC4xNTM3NSwgLTAuMTQ3NSwgLTAuMTMxMjUsIC0wLjEyMjUiLCBcCi0gICAgICAgICAgIi0wLjIxMTI1LCAtMC4yLCAtMC4xODc1LCAtMC4xNzUsIC0wLjE2ODc1LCAtMC4xNTI1LCAtMC4xMzc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDYyNSwgMC4wMTc1LCAwLjAzLCAwLjA0MjUsIDAuMDYxMjUsIDAuMDgzNzUsIDAuMDk4NzUiLCBcCi0gICAgICAgICAgIi0wLjAwNSwgMC4wMDYyNSwgMC4wMTg3NSwgMC4wMzc1LCAwLjA1LCAwLjA3MjUsIDAuMDg3NSIsIFwKLSAgICAgICAgICAiLTAuMDE3NSwgLTAuMDA2MjUsIDAuMDA2MjUsIDAuMDE4NzUsIDAuMDM3NSwgMC4wNiwgMC4wNzUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAuMDA2MjUsIDAuMDI1LCAwLjA0NzUsIDAuMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDMxMjUsIC0wLjAxODc1LCAtMC4wMDYyNSwgMC4wMDYyNSwgMC4wMjg3NSwgMC4wNSIsIFwKLSAgICAgICAgICAiLTAuMDY1LCAtMC4wNTM3NSwgLTAuMDQxMjUsIC0wLjAyMjUsIC0wLjAxLCAwLjAxMjUsIDAuMDI3NSIsIFwKLSAgICAgICAgICAiLTAuMDgsIC0wLjA2ODc1LCAtMC4wNTYyNSwgLTAuMDQzNzUsIC0wLjAyNSwgLTAuMDAyNSwgMC4wMTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIkQmUk4mIVNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMV9BTl9STl9FUV8xX0FOX1NJX0VRXzAgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDUsIC0wLjAzODc1LCAtMC4wMjYyNSwgLTAuMDEzNzUsIC0wLjAwMTI1LCAwLjAyMTI1LCAwLjA0MjUiLCBcCi0gICAgICAgICAgIi0wLjA2NzUsIC0wLjA1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAxMjUsIDAuMDEsIDAuMDI1IiwgXAotICAgICAgICAgICItMC4wOCwgLTAuMDY4NzUsIC0wLjA1NjI1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAwMjUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDkyNSwgLTAuMDgxMjUsIC0wLjA2ODc1LCAtMC4wNTYyNSwgLTAuMDQzNzUsIC0wLjAyMTI1LCAwIiwgXAotICAgICAgICAgICItMC4xMTEyNSwgLTAuMSwgLTAuMDgxMjUsIC0wLjA2ODc1LCAtMC4wNTYyNSwgLTAuMDMzNzUsIC0wLjAxODc1IiwgXAotICAgICAgICAgICItMC4xMzM3NSwgLTAuMTIyNSwgLTAuMTEsIC0wLjA5MTI1LCAtMC4wNzg3NSwgLTAuMDU2MjUsIC0wLjA0MTI1IiwgXAotICAgICAgICAgICItMC4xNDg3NSwgLTAuMTM3NSwgLTAuMTI1LCAtMC4xMTI1LCAtMC4xLCAtMC4wNzc1LCAtMC4wNTYyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjE1LCAtMC4xMzg3NSwgLTAuMTI2MjUsIC0wLjEyLCAtMC4xMDc1LCAtMC4wOTc1LCAtMC4wODI1IiwgXAotICAgICAgICAgICItMC4xNjEyNSwgLTAuMTUsIC0wLjEzNzUsIC0wLjEzMTI1LCAtMC4xMjUsIC0wLjEwODc1LCAtMC4xIiwgXAotICAgICAgICAgICItMC4xNzM3NSwgLTAuMTYyNSwgLTAuMTU2MjUsIC0wLjE0Mzc1LCAtMC4xMzc1LCAtMC4xMjEyNSwgLTAuMTEyNSIsIFwKLSAgICAgICAgICAiLTAuMTkyNSwgLTAuMTgxMjUsIC0wLjE2ODc1LCAtMC4xNjI1LCAtMC4xNSwgLTAuMTMzNzUsIC0wLjEyNSIsIFwKLSAgICAgICAgICAiLTAuMjA1LCAtMC4xOTM3NSwgLTAuMTgxMjUsIC0wLjE3NSwgLTAuMTYyNSwgLTAuMTUyNSwgLTAuMTM3NSIsIFwKLSAgICAgICAgICAiLTAuMjIxMjUsIC0wLjIxNjI1LCAtMC4yMDM3NSwgLTAuMTk3NSwgLTAuMTg1LCAtMC4xNjg3NSwgLTAuMTYiLCBcCi0gICAgICAgICAgIi0wLjI0MjUsIC0wLjIzMTI1LCAtMC4yMTg3NSwgLTAuMjEyNSwgLTAuMiwgLTAuMTksIC0wLjE4MTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRCYhUk4mU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1JOX0VRXzBfQU5fU0lfRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xODc1LCAwLjE3NjI1LCAwLjE1NzUsIDAuMTQ1LCAwLjEzMjUsIDAuMTE2MjUsIDAuMTA3NSIsIFwKLSAgICAgICAgICAiMC4xOTg3NSwgMC4xODc1LCAwLjE2ODc1LCAwLjE1NjI1LCAwLjE0Mzc1LCAwLjEyNzUsIDAuMTEyNSIsIFwKLSAgICAgICAgICAiMC4yMTEyNSwgMC4yLCAwLjE4MTI1LCAwLjE2ODc1LCAwLjE1NjI1LCAwLjE0LCAwLjEzMTI1IiwgXAotICAgICAgICAgICIwLjIyMzc1LCAwLjIxMjUsIDAuMiwgMC4xODEyNSwgMC4xNjg3NSwgMC4xNTI1LCAwLjE0Mzc1IiwgXAotICAgICAgICAgICIwLjIzNjI1LCAwLjIyNSwgMC4yMTI1LCAwLjIsIDAuMTg3NSwgMC4xNzEyNSwgMC4xNTYyNSIsIFwKLSAgICAgICAgICAiMC4yNTg3NSwgMC4yNDc1LCAwLjIzNSwgMC4yMTYyNSwgMC4yMSwgMC4xODc1LCAwLjE3ODc1IiwgXAotICAgICAgICAgICIwLjI4LCAwLjI2ODc1LCAwLjI1LCAwLjIzNzUsIDAuMjI1LCAwLjIwODc1LCAwLjIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODEyNSwgMC4wNywgMC4wNTEyNSwgMC4wMzg3NSwgMC4wMiwgLTAuMDAyNSwgLTAuMDIzNzUiLCBcCi0gICAgICAgICAgIjAuMDkyNSwgMC4wODEyNSwgMC4wNjI1LCAwLjA1LCAwLjAzMTI1LCAwLjAwODc1LCAtMC4wMTI1IiwgXAotICAgICAgICAgICIwLjEwNSwgMC4wOTM3NSwgMC4wODEyNSwgMC4wNjI1LCAwLjA0Mzc1LCAwLjAyMTI1LCAwIiwgXAotICAgICAgICAgICIwLjEyMzc1LCAwLjEwNjI1LCAwLjA5Mzc1LCAwLjA3NSwgMC4wNjI1LCAwLjAzMzc1LCAwLjAxODc1IiwgXAotICAgICAgICAgICIwLjEzNjI1LCAwLjExODc1LCAwLjEwNjI1LCAwLjA4NzUsIDAuMDc1LCAwLjA1MjUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMTU4NzUsIDAuMTQxMjUsIDAuMTI4NzUsIDAuMTEsIDAuMDk3NSwgMC4wNzUsIDAuMDUzNzUiLCBcCi0gICAgICAgICAgIjAuMTczNzUsIDAuMTYyNSwgMC4xNSwgMC4xMzEyNSwgMC4xMTI1LCAwLjA5LCAwLjA2ODc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJEJlJOJiFTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzFfQU5fUk5fRVFfMV9BTl9TSV9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE2MjUsIDAuMTUxMjUsIDAuMTMyNSwgMC4xMTM3NSwgMC4xMDEyNSwgMC4wNzI1LCAwLjA1NzUiLCBcCi0gICAgICAgICAgIjAuMTczNzUsIDAuMTYyNSwgMC4xNDM3NSwgMC4xMjUsIDAuMTEyNSwgMC4wOSwgMC4wNjg3NSIsIFwKLSAgICAgICAgICAiMC4xODYyNSwgMC4xNzUsIDAuMTYyNSwgMC4xNDM3NSwgMC4xMjUsIDAuMTAyNSwgMC4wODEyNSIsIFwKLSAgICAgICAgICAiMC4yMDUsIDAuMTkzNzUsIDAuMTc1LCAwLjE1NjI1LCAwLjE0Mzc1LCAwLjEyMTI1LCAwLjEiLCBcCi0gICAgICAgICAgIjAuMjE3NSwgMC4yMDYyNSwgMC4xODc1LCAwLjE3NSwgMC4xNTYyNSwgMC4xMzM3NSwgMC4xMTI1IiwgXAotICAgICAgICAgICIwLjI0LCAwLjIyODc1LCAwLjIxLCAwLjE5NzUsIDAuMTc4NzUsIDAuMTU2MjUsIDAuMTM1IiwgXAotICAgICAgICAgICIwLjI2MTI1LCAwLjI0Mzc1LCAwLjIzMTI1LCAwLjIxMjUsIDAuMiwgMC4xNzEyNSwgMC4xNTYyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI1LCAwLjIzMjUsIDAuMjIsIDAuMjAxMjUsIDAuMTg4NzUsIDAuMTcyNSwgMC4xNTc1IiwgXAotICAgICAgICAgICIwLjI2MTI1LCAwLjI0Mzc1LCAwLjIzMTI1LCAwLjIxODc1LCAwLjIwNjI1LCAwLjE4Mzc1LCAwLjE3NSIsIFwKLSAgICAgICAgICAiMC4yNzM3NSwgMC4yNjI1LCAwLjI0Mzc1LCAwLjIzMTI1LCAwLjIxODc1LCAwLjIwMjUsIDAuMTg3NSIsIFwKLSAgICAgICAgICAiMC4yODYyNSwgMC4yNzUsIDAuMjYyNSwgMC4yNDM3NSwgMC4yMzEyNSwgMC4yMTUsIDAuMiIsIFwKLSAgICAgICAgICAiMC4zMDUsIDAuMjg3NSwgMC4yNzUsIDAuMjU2MjUsIDAuMjQzNzUsIDAuMjI3NSwgMC4yMTI1IiwgXAotICAgICAgICAgICIwLjMyMTI1LCAwLjMxLCAwLjI5NzUsIDAuMjc4NzUsIDAuMjY2MjUsIDAuMjUsIDAuMjM1IiwgXAotICAgICAgICAgICIwLjM0MjUsIDAuMzI1LCAwLjMxMjUsIDAuMywgMC4yODEyNSwgMC4yNjUsIDAuMjU2MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFNJKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA1OTk0OTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA1OTc2ODY7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNTk5NDk7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyMTc1LCAwLjAwMjE2NSwgMC4wMDIxNiwgMC4wMDIxNTcsIDAuMDAyMTU0LCAwLjAwMjE1MSwgMC4wMDIxNDkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDM0NzgsIDAuMDAzNDcyLCAwLjAwMzQ3LCAwLjAwMzQ2OCwgMC4wMDM0NjcsIDAuMDAzNDY1LCAwLjAwMzQ2NCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJTRSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4xMzEyNSwgLTAuMTIsIC0wLjEwNzUsIC0wLjA5NSwgLTAuMDg4NzUsIC0wLjA3MjUsIC0wLjA2Mzc1IiwgXAotICAgICAgICAgICItMC4xNDI1LCAtMC4xMzEyNSwgLTAuMTE4NzUsIC0wLjExMjUsIC0wLjEsIC0wLjA4Mzc1LCAtMC4wNzUiLCBcCi0gICAgICAgICAgIi0wLjE1NSwgLTAuMTQzNzUsIC0wLjEzMTI1LCAtMC4xMjUsIC0wLjExMjUsIC0wLjA5NjI1LCAtMC4wODc1IiwgXAotICAgICAgICAgICItMC4xNjc1LCAtMC4xNTYyNSwgLTAuMTUsIC0wLjEzNzUsIC0wLjEyNSwgLTAuMTE1LCAtMC4xIiwgXAotICAgICAgICAgICItMC4xOCwgLTAuMTc1LCAtMC4xNjI1LCAtMC4xNSwgLTAuMTQzNzUsIC0wLjEyNzUsIC0wLjExMjUiLCBcCi0gICAgICAgICAgIi0wLjIwMjUsIC0wLjE5NzUsIC0wLjE4NSwgLTAuMTcyNSwgLTAuMTYsIC0wLjE1LCAtMC4xMzUiLCBcCi0gICAgICAgICAgIi0wLjIyMzc1LCAtMC4yMTI1LCAtMC4yLCAtMC4xOTM3NSwgLTAuMTgxMjUsIC0wLjE2NSwgLTAuMTU2MjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMjUsIC0wLjAxMzc1LCAtMC4wMDEyNSwgMC4wMTEyNSwgMC4wMywgMC4wNDYyNSwgMC4wNjc1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDI1LCAtMC4wMTI1LCAwLCAwLjAxODc1LCAwLjAzNSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjAzNzUsIC0wLjAyNSwgLTAuMDEyNSwgMC4wMDYyNSwgMC4wMjI1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICItMC4wNjEyNSwgLTAuMDUsIC0wLjAzNzUsIC0wLjAyNSwgLTAuMDA2MjUsIDAuMDEsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjA3Mzc1LCAtMC4wNjI1LCAtMC4wNSwgLTAuMDM3NSwgLTAuMDE4NzUsIDAuMDAzNzUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjA5LCAtMC4wNzg3NSwgLTAuMDY2MjUsIC0wLjA1Mzc1LCAtMC4wNDEyNSwgLTAuMDE4NzUsIDAuMDAyNSIsIFwKLSAgICAgICAgICAiLTAuMTA1LCAtMC4wOTM3NSwgLTAuMDgxMjUsIC0wLjA2ODc1LCAtMC4wNTYyNSwgLTAuMDMzNzUsIC0wLjAxODc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJTRSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yLCAwLjE4ODc1LCAwLjE3NjI1LCAwLjE1NzUsIDAuMTQ1LCAwLjEyODc1LCAwLjEyIiwgXAotICAgICAgICAgICIwLjIxMTI1LCAwLjIsIDAuMTg3NSwgMC4xNjg3NSwgMC4xNTYyNSwgMC4xNCwgMC4xMzEyNSIsIFwKLSAgICAgICAgICAiMC4yMjM3NSwgMC4yMTI1LCAwLjIsIDAuMTg3NSwgMC4xNzUsIDAuMTU4NzUsIDAuMTQzNzUiLCBcCi0gICAgICAgICAgIjAuMjQyNSwgMC4yMjUsIDAuMjEyNSwgMC4yLCAwLjE4NzUsIDAuMTcxMjUsIDAuMTU2MjUiLCBcCi0gICAgICAgICAgIjAuMjU1LCAwLjI0Mzc1LCAwLjIyNSwgMC4yMTI1LCAwLjIsIDAuMTgzNzUsIDAuMTY4NzUiLCBcCi0gICAgICAgICAgIjAuMjc3NSwgMC4yNjYyNSwgMC4yNDc1LCAwLjIzNSwgMC4yMjI1LCAwLjIwNjI1LCAwLjE5MTI1IiwgXAotICAgICAgICAgICIwLjI5MjUsIDAuMjgxMjUsIDAuMjY4NzUsIDAuMjUsIDAuMjQzNzUsIDAuMjI3NSwgMC4yMTI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTMxMjUsIDAuMTIsIDAuMTA3NSwgMC4wODg3NSwgMC4wNywgMC4wNDc1LCAwLjAyNjI1IiwgXAotICAgICAgICAgICIwLjE0MjUsIDAuMTMxMjUsIDAuMTE4NzUsIDAuMSwgMC4wODEyNSwgMC4wNTg3NSwgMC4wMzc1IiwgXAotICAgICAgICAgICIwLjE1NSwgMC4xNDM3NSwgMC4xMzEyNSwgMC4xMTI1LCAwLjEsIDAuMDcxMjUsIDAuMDUiLCBcCi0gICAgICAgICAgIjAuMTY3NSwgMC4xNTYyNSwgMC4xNDM3NSwgMC4xMjUsIDAuMTEyNSwgMC4wODM3NSwgMC4wNjI1IiwgXAotICAgICAgICAgICIwLjE4LCAwLjE2ODc1LCAwLjE1NjI1LCAwLjEzNzUsIDAuMTE4NzUsIDAuMDk2MjUsIDAuMDc1IiwgXAotICAgICAgICAgICIwLjIwMjUsIDAuMTkxMjUsIDAuMTcyNSwgMC4xNiwgMC4xNDEyNSwgMC4xMTg3NSwgMC4wOTc1IiwgXAotICAgICAgICAgICIwLjIxNzUsIDAuMjA2MjUsIDAuMTg3NSwgMC4xNzUsIDAuMTU2MjUsIDAuMTMzNzUsIDAuMTEyNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogU0RGRlgxICoKLSAqIC0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoU0RGRlgxKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMzAwNTc4OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIGZmIChOMzAsUUJJTlQpIHsKLSAgICBuZXh0X3N0YXRlIDogIigoU0UgU0kpICsgKCFTRSBEKSkiOwotICAgIGNsb2NrZWRfb24gOiAiQ0siOwotICB9Ci0gIHBpbihDSykgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNTQ1ODQyOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDU0NTUzNDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA1NDU4NDI7Ci0gICAgY2xvY2sgOiB0cnVlOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjI5NiwgMC4wMDIyODIsIDAuMDAyMjcyLCAwLjAwMjI2NSwgMC4wMDIyNTgsIDAuMDAyMjUyLCAwLjAwMjI1MSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNDcxOSwgMC4wMDQ3MDgsIDAuMDA0NywgMC4wMDQ2OTQsIDAuMDA0NjkzLCAwLjAwNDY5MywgMC4wMDQ2OTQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFEJiFTRSYhU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1NFX0VRXzBfQU5fU0lfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjMzNDc1MiwgMC4zNDY0OCwgMC4zNjE5NDYsIDAuMzc3MzA1LCAwLjM5MjUwNiwgMC40MTY3OTgsIDAuNDM3NTE2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4xOTMxMDMsIDAuMjA0MzAyLCAwLjIxOTU5LCAwLjIzNDQ2NSwgMC4yNDg5NDgsIDAuMjcxNzUzLCAwLjI5MDIyNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNTc4NTcyOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDU3Njk1OTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA1Nzg1NzI7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyMzEzLCAwLjAwMjMwMywgMC4wMDIyOTgsIDAuMDAyMjk1LCAwLjAwMjI5MiwgMC4wMDIyODksIDAuMDAyMjg2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzMzkzLCAwLjAwMzM4OCwgMC4wMDMzODUsIDAuMDAzMzg0LCAwLjAwMzM4MiwgMC4wMDMzOCwgMC4wMDMzNzkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIVNFIjsKLSAgICAgIHNkZl9jb25kIDogIlNFID09IDEnYjAiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjEzMTI1LCAtMC4xMiwgLTAuMTA3NSwgLTAuMTAxMjUsIC0wLjA4ODc1LCAtMC4wNzI1LCAtMC4wNjM3NSIsIFwKLSAgICAgICAgICAiLTAuMTQyNSwgLTAuMTMxMjUsIC0wLjExODc1LCAtMC4xMTI1LCAtMC4xLCAtMC4wODM3NSwgLTAuMDc1IiwgXAotICAgICAgICAgICItMC4xNTUsIC0wLjE0Mzc1LCAtMC4xMzc1LCAtMC4xMjUsIC0wLjExMjUsIC0wLjEwMjUsIC0wLjA4NzUiLCBcCi0gICAgICAgICAgIi0wLjE2NzUsIC0wLjE1NjI1LCAtMC4xNSwgLTAuMTM3NSwgLTAuMTI1LCAtMC4xMTUsIC0wLjEiLCBcCi0gICAgICAgICAgIi0wLjE4LCAtMC4xNzUsIC0wLjE2MjUsIC0wLjE1LCAtMC4xNDM3NSwgLTAuMTI3NSwgLTAuMTEyNSIsIFwKLSAgICAgICAgICAiLTAuMjAyNSwgLTAuMTk3NSwgLTAuMTg1LCAtMC4xNzI1LCAtMC4xNjYyNSwgLTAuMTUsIC0wLjEzNSIsIFwKLSAgICAgICAgICAiLTAuMjIzNzUsIC0wLjIxMjUsIC0wLjIsIC0wLjE5Mzc1LCAtMC4xODEyNSwgLTAuMTY1LCAtMC4xNTYyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAyNSwgLTAuMDA3NSwgMC4wMDUsIDAuMDE3NSwgMC4wMywgMC4wNTI1LCAwLjA2NzUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMjUsIC0wLjAwNjI1LCAwLjAwNjI1LCAwLjAxODc1LCAwLjA0MTI1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDM3NSwgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLjAwNjI1LCAwLjAyODc1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICItMC4wNjEyNSwgLTAuMDUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAuMDE2MjUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjA3Mzc1LCAtMC4wNjI1LCAtMC4wNDM3NSwgLTAuMDMxMjUsIC0wLjAxODc1LCAwLjAwMzc1LCAwLjAxODc1IiwgXAotICAgICAgICAgICItMC4wOSwgLTAuMDc4NzUsIC0wLjA2NjI1LCAtMC4wNTM3NSwgLTAuMDM1LCAtMC4wMTg3NSwgMC4wMDI1IiwgXAotICAgICAgICAgICItMC4xMDUsIC0wLjA5Mzc1LCAtMC4wODEyNSwgLTAuMDY4NzUsIC0wLjA1NjI1LCAtMC4wMzM3NSwgLTAuMDEyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIVNFIjsKLSAgICAgIHNkZl9jb25kIDogIlNFID09IDEnYjAiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIwNjI1LCAwLjE5NSwgMC4xNzYyNSwgMC4xNjM3NSwgMC4xNTEyNSwgMC4xMzUsIDAuMTI2MjUiLCBcCi0gICAgICAgICAgIjAuMjE3NSwgMC4yMDYyNSwgMC4xODc1LCAwLjE3NSwgMC4xNjI1LCAwLjE0NjI1LCAwLjEzNzUiLCBcCi0gICAgICAgICAgIjAuMjMsIDAuMjE4NzUsIDAuMjA2MjUsIDAuMTkzNzUsIDAuMTgxMjUsIDAuMTY1LCAwLjE1IiwgXAotICAgICAgICAgICIwLjI0ODc1LCAwLjIzMTI1LCAwLjIxODc1LCAwLjIwNjI1LCAwLjE5Mzc1LCAwLjE3NzUsIDAuMTYyNSIsIFwKLSAgICAgICAgICAiMC4yNjEyNSwgMC4yNSwgMC4yMzEyNSwgMC4yMTg3NSwgMC4yMDYyNSwgMC4xOSwgMC4xNzUiLCBcCi0gICAgICAgICAgIjAuMjgzNzUsIDAuMjcyNSwgMC4yNTM3NSwgMC4yNDEyNSwgMC4yMjg3NSwgMC4yMTI1LCAwLjE5NzUiLCBcCi0gICAgICAgICAgIjAuMjk4NzUsIDAuMjg3NSwgMC4yNzUsIDAuMjYyNSwgMC4yNSwgMC4yMjc1LCAwLjIxODc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTM3NSwgMC4xMjYyNSwgMC4xMDc1LCAwLjA4ODc1LCAwLjA3NjI1LCAwLjA1Mzc1LCAwLjAzMjUiLCBcCi0gICAgICAgICAgIjAuMTQ4NzUsIDAuMTM3NSwgMC4xMTg3NSwgMC4xMDYyNSwgMC4wODc1LCAwLjA2NSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4xNjEyNSwgMC4xNSwgMC4xMzEyNSwgMC4xMTg3NSwgMC4xLCAwLjA3NzUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIjAuMTczNzUsIDAuMTYyNSwgMC4xNDM3NSwgMC4xMzEyNSwgMC4xMTI1LCAwLjA5LCAwLjA2ODc1IiwgXAotICAgICAgICAgICIwLjE4NjI1LCAwLjE3NSwgMC4xNTYyNSwgMC4xNDM3NSwgMC4xMjUsIDAuMTAyNSwgMC4wODEyNSIsIFwKLSAgICAgICAgICAiMC4yMDg3NSwgMC4xOTEyNSwgMC4xNzg3NSwgMC4xNiwgMC4xNDc1LCAwLjExODc1LCAwLjA5NzUiLCBcCi0gICAgICAgICAgIjAuMjIzNzUsIDAuMjEyNSwgMC4xOTM3NSwgMC4xNzUsIDAuMTYyNSwgMC4xNCwgMC4xMTg3NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjEzMjcyODsKLSAgICBmdW5jdGlvbiA6ICJOMzAiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5vbl91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcmlzaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI3ODQwMSwgMC4zMjE3OTMsIDAuNTY3MDAxLCAwLjc4Mjg1OSwgMS4wNjk5MSwgMS42NDc3LCAyLjAwOTU2IiwgXAotICAgICAgICAgICIwLjI5MDA1MywgMC4zMzM0MjgsIDAuNTc4MDUsIDAuNzk1MjMxLCAxLjA4MTc4LCAxLjY1OTYyLCAyLjAyMDYzIiwgXAotICAgICAgICAgICIwLjMwNTI2NywgMC4zNDg2NDIsIDAuNTkzNjk5LCAwLjgxMDQ3MiwgMS4wOTcwNiwgMS42NzQ4NSwgMi4wMzYzMiIsIFwKLSAgICAgICAgICAiMC4zMjA3NjgsIDAuMzY0MTQ3LCAwLjYwOTE5NywgMC44MjU5NzcsIDEuMTEyNTUsIDEuNjkwMzUsIDIuMDUxNzQiLCBcCi0gICAgICAgICAgIjAuMzM1ODU4LCAwLjM3OTI0OCwgMC42MjU5NDcsIDAuODQwODk2LCAxLjEyNzQ0LCAxLjcwNTM2LCAyLjA2MzQ2IiwgXAotICAgICAgICAgICIwLjM2MDA4NiwgMC40MDM0NjgsIDAuNjQ4MjkyLCAwLjg2NTI3MSwgMS4xNTE4MywgMS43Mjk2OSwgMi4wOTExNiIsIFwKLSAgICAgICAgICAiMC4zODA0NjksIDAuNDIzODU5LCAwLjY2OTQxOCwgMC44ODU1NDgsIDEuMTcyMDIsIDEuNzUwMDUsIDIuMTA5NDEiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTY0OTIzLCAwLjI1MjQxLCAwLjc1MDAzNywgMS4xODUyMywgMS43NzUwNiwgMi45NjU5LCAzLjY3MjgxIiwgXAotICAgICAgICAgICIwLjE2NDkwMiwgMC4yNTI0MjgsIDAuNzU0Mjg2LCAxLjE5NTUsIDEuNzcyNDgsIDIuOTY1ODEsIDMuNjg0MDUiLCBcCi0gICAgICAgICAgIjAuMTY0ODk0LCAwLjI1MjQzMywgMC43NTEzOTksIDEuMTk1NjQsIDEuNzcxNzgsIDIuOTY1ODMsIDMuNjc3MzYiLCBcCi0gICAgICAgICAgIjAuMTY0ODksIDAuMjUyNDE5LCAwLjc1MTQ4NiwgMS4xOTU2NSwgMS43NzE4OSwgMi45NjU4MywgMy42Njc1NyIsIFwKLSAgICAgICAgICAiMC4xNjQ5LCAwLjI1MjM5NCwgMC43NTM0ODUsIDEuMTg3MSwgMS43NzQwOCwgMi45NjU5LCAzLjY2NjA0IiwgXAotICAgICAgICAgICIwLjE2NDg4NCwgMC4yNTI0MTYsIDAuNzUzMDc1LCAxLjE5NTUxLCAxLjc3MjMxLCAyLjk2NTg1LCAzLjY3OTE2IiwgXAotICAgICAgICAgICIwLjE2NDg4NCwgMC4yNTI0MDcsIDAuNzUwMzg0LCAxLjE4ODU2LCAxLjc3NDQyLCAyLjk2NTksIDMuNjc5NTMiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzEzMjczLCAwLjM2Mjk2OCwgMC42NDMzODEsIDAuODkwMDczLCAxLjIxOTUyLCAxLjg4NDA5LCAyLjI5NjQ3IiwgXAotICAgICAgICAgICIwLjMyNTAwOCwgMC4zNzQ3NzQsIDAuNjU1MDgzLCAwLjkwMTYzNiwgMS4yMzEyOSwgMS44OTU3OCwgMi4zMDc3NSIsIFwKLSAgICAgICAgICAiMC4zNDA0NzYsIDAuMzkwMjQyLCAwLjY3MDU2NiwgMC45MTcxMTEsIDEuMjQ2NzYsIDEuOTExMjUsIDIuMzIzMTciLCBcCi0gICAgICAgICAgIjAuMzU1ODMxLCAwLjQwNTQ1MSwgMC42ODU4NTQsIDAuOTMyMjc5LCAxLjI2MTYxLCAxLjkyMDg4LCAyLjMzOTYiLCBcCi0gICAgICAgICAgIjAuMzcxMDMyLCAwLjQyMDgwNiwgMC43MDExNTgsIDAuOTQ3NTksIDEuMjc3MjksIDEuOTQxODYsIDIuMzU0NjIiLCBcCi0gICAgICAgICAgIjAuMzk1MzcsIDAuNDQ1MDk0LCAwLjcyNTQyNywgMC45NzE3ODUsIDEuMzAxMDUsIDEuOTY1OSwgMi4zNzkxNCIsIFwKLSAgICAgICAgICAiMC40MTYwNDUsIDAuNDY1NjM2LCAwLjc0NjAyLCAwLjk5MzQzNiwgMS4zMjE3NiwgMS45ODU4OSwgMi4zOTk4MSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xODE2MTQsIDAuMjc3NTMzLCAwLjgzMTMyNiwgMS4zMjIwMSwgMS45NzY0OSwgMy4yODQyNCwgNC4wOTk3MSIsIFwKLSAgICAgICAgICAiMC4xODE2NTcsIDAuMjc3NTAzLCAwLjgzMTQ4OSwgMS4zMjMwNCwgMS45Nzg0MSwgMy4yODIxOSwgNC4xMDI2MiIsIFwKLSAgICAgICAgICAiMC4xODE2NTYsIDAuMjc3NTMzLCAwLjgzMTQxMSwgMS4zMjMsIDEuOTc4NCwgMy4yODIyNCwgNC4xMDMzOSIsIFwKLSAgICAgICAgICAiMC4xODE2NDQsIDAuMjc3OTQzLCAwLjgzMTc5NywgMS4zMjIxLCAxLjk3Njk1LCAzLjI4ODgxLCA0LjA5OTQ3IiwgXAotICAgICAgICAgICIwLjE4MTYzMywgMC4yNzc1NzEsIDAuODMxMTk0LCAxLjMyMzYzLCAxLjk3ODQyLCAzLjI4MjEyLCA0LjEwMDU3IiwgXAotICAgICAgICAgICIwLjE4MTY5MywgMC4yNzgwMDMsIDAuODMxNjIxLCAxLjMyMjIsIDEuOTc4NDMsIDMuMjgzMjQsIDQuMDk5NSIsIFwKLSAgICAgICAgICAiMC4xODE2OTEsIDAuMjc3OTAzLCAwLjgzMjA1NywgMS4zMjIxMiwgMS45NzU0LCAzLjI4NDMsIDQuMDk5MzEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzMjcxLCAwLjAwMzI3MywgMC4wMDMyNjgsIDAuMDAzMjY2LCAwLjAwMzI2NCwgMC4wMDMyNjIsIDAuMDAzMjYyIiwgXAotICAgICAgICAgICIwLjAwMzI2NCwgMC4wMDMyNjYsIDAuMDAzMjYxLCAwLjAwMzI1OSwgMC4wMDMyNTcsIDAuMDAzMjU1LCAwLjAwMzI1NSIsIFwKLSAgICAgICAgICAiMC4wMDMyNTgsIDAuMDAzMjU5LCAwLjAwMzI1NSwgMC4wMDMyNTIsIDAuMDAzMjUxLCAwLjAwMzI0OSwgMC4wMDMyNDgiLCBcCi0gICAgICAgICAgIjAuMDAzMjUzLCAwLjAwMzI1NSwgMC4wMDMyNTEsIDAuMDAzMjQ4LCAwLjAwMzI0NiwgMC4wMDMyNDUsIDAuMDAzMjQ0IiwgXAotICAgICAgICAgICIwLjAwMzI0OSwgMC4wMDMyNSwgMC4wMDMyNDYsIDAuMDAzMjQzLCAwLjAwMzI0MiwgMC4wMDMyNCwgMC4wMDMyMzkiLCBcCi0gICAgICAgICAgIjAuMDAzMjQ1LCAwLjAwMzI0NiwgMC4wMDMyNDMsIDAuMDAzMjQsIDAuMDAzMjM4LCAwLjAwMzIzNiwgMC4wMDMyMzUiLCBcCi0gICAgICAgICAgIjAuMDAzMjQyLCAwLjAwMzI0NCwgMC4wMDMyNCwgMC4wMDMyMzcsIDAuMDAzMjM1LCAwLjAwMzIzMywgMC4wMDMyMzIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDMyODIsIDAuMDAzMjg3LCAwLjAwMzI5MywgMC4wMDMyOTUsIDAuMDAzMjk1LCAwLjAwMzI5NiwgMC4wMDMyOTYiLCBcCi0gICAgICAgICAgIjAuMDAzMjc1LCAwLjAwMzI4LCAwLjAwMzI4NiwgMC4wMDMyODgsIDAuMDAzMjg4LCAwLjAwMzI4OSwgMC4wMDMyODkiLCBcCi0gICAgICAgICAgIjAuMDAzMjcsIDAuMDAzMjc1LCAwLjAwMzI4MSwgMC4wMDMyODMsIDAuMDAzMjg0LCAwLjAwMzI4NCwgMC4wMDMyODQiLCBcCi0gICAgICAgICAgIjAuMDAzMjY2LCAwLjAwMzI3MSwgMC4wMDMyNzcsIDAuMDAzMjc4LCAwLjAwMzI3OSwgMC4wMDMyOCwgMC4wMDMyOCIsIFwKLSAgICAgICAgICAiMC4wMDMyNjUsIDAuMDAzMjY5LCAwLjAwMzI3NiwgMC4wMDMyNzcsIDAuMDAzMjc4LCAwLjAwMzI3OSwgMC4wMDMyNzkiLCBcCi0gICAgICAgICAgIjAuMDAzMjY0LCAwLjAwMzI2OCwgMC4wMDMyNzUsIDAuMDAzMjc2LCAwLjAwMzI3NywgMC4wMDMyNzgsIDAuMDAzMjc4IiwgXAotICAgICAgICAgICIwLjAwMzI2NywgMC4wMDMyNzIsIDAuMDAzMjc4LCAwLjAwMzI4LCAwLjAwMzI4MSwgMC4wMDMyODEsIDAuMDAzMjgyIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihRTikgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjEzMzQ2NDsKLSAgICBmdW5jdGlvbiA6ICJRQklOVCI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3NlbnNlIDogbm9uX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiByaXNpbmdfZWRnZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzM0NzUyLCAwLjM3NzM4NSwgMC42MTkyNjgsIDAuODMyNzQ5LCAxLjExNzM1LCAxLjY4NjU1LCAyLjA0MjQ2IiwgXAotICAgICAgICAgICIwLjM0NjQ4LCAwLjM4OTEyNiwgMC42MzA5OTgsIDAuODQ0NDg5LCAxLjEyOTA4LCAxLjY5ODI4LCAyLjA1NDMiLCBcCi0gICAgICAgICAgIjAuMzYxOTQ2LCAwLjQwNDU5MywgMC42NDY0NjQsIDAuODU5OTU2LCAxLjE0NDU0LCAxLjcxMzc1LCAyLjA2OTgiLCBcCi0gICAgICAgICAgIjAuMzc3MzA1LCAwLjQxOTkyMywgMC42NjE4MTIsIDAuODc1NDA1LCAxLjE1OTksIDEuNzI5MTQsIDIuMDg0OTIiLCBcCi0gICAgICAgICAgIjAuMzkyNTA2LCAwLjQzNTE1MiwgMC42NzcwMjEsIDAuODkwNTE5LCAxLjE3NTEsIDEuNzQ0MywgMi4xMDAxNSIsIFwKLSAgICAgICAgICAiMC40MTY4NCwgMC40NTk0NzEsIDAuNzAxMzUsIDAuOTE0OTM3LCAxLjE5OTQ1LCAxLjc2ODY2LCAyLjEyNDQ1IiwgXAotICAgICAgICAgICIwLjQzNzUxNiwgMC40ODAxMzMsIDAuNzIyMDI2LCAwLjkzNTQ4MywgMS4yMjAxNSwgMS43ODk1MSwgMi4xNDUxNCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNTgxMjIsIDAuMjQzOTUsIDAuNzM3MDE5LCAxLjE2OTk2LCAxLjc0ODkyLCAyLjkxMTMzLCAzLjYzNjkzIiwgXAotICAgICAgICAgICIwLjE1ODEyNCwgMC4yNDM4OTQsIDAuNzM3MDI5LCAxLjE2OTk0LCAxLjc0ODg4LCAyLjkxMTM0LCAzLjYzNzUxIiwgXAotICAgICAgICAgICIwLjE1ODExOCwgMC4yNDM5MzYsIDAuNzM3MDE4LCAxLjE2OTk0LCAxLjc0ODg4LCAyLjkxMTMzLCAzLjYzNzQ5IiwgXAotICAgICAgICAgICIwLjE1ODEyMSwgMC4yNDQ0NjksIDAuNzM3MDEyLCAxLjE2ODkzLCAxLjc0ODgsIDIuOTA2NzQsIDMuNjM2MzIiLCBcCi0gICAgICAgICAgIjAuMTU4MTE5LCAwLjI0Mzk5OCwgMC43MzY5OSwgMS4xNzAwMywgMS43NDg5LCAyLjkxMTI5LCAzLjYzNjQ0IiwgXAotICAgICAgICAgICIwLjE1ODEyMiwgMC4yNDQ1MTYsIDAuNzM3MDEsIDEuMTY5MTEsIDEuNzQ4ODUsIDIuOTExNDcsIDMuNjM2MyIsIFwKLSAgICAgICAgICAiMC4xNTgxMTcsIDAuMjQ0NDM1LCAwLjczNzAzOSwgMS4xNzE4OSwgMS43NDkyNCwgMi45MTI2NiwgMy42MzYzOCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMTg2MDksIDAuMzY3OTU3LCAwLjY0NzczMSwgMC44OTQ1NDQsIDEuMjIzNjIsIDEuODgxODUsIDIuMjkzMzUiLCBcCi0gICAgICAgICAgIjAuMzMwMjU3LCAwLjM3OTYsIDAuNjU5MzY5LCAwLjkwNjIxMiwgMS4yMzUyNiwgMS44OTM1MSwgMi4zMDQ5NCIsIFwKLSAgICAgICAgICAiMC4zNDU0NywgMC4zOTQ4MTMsIDAuNjc0NTgzLCAwLjkyMTQyNSwgMS4yNTA0OCwgMS45MDg3MiwgMi4zMjAxOCIsIFwKLSAgICAgICAgICAiMC4zNjA5NjgsIDAuNDEwMzEsIDAuNjkwMDgyLCAwLjkzNjkyMywgMS4yNjU5NywgMS45MjQyMiwgMi4zMzU2NyIsIFwKLSAgICAgICAgICAiMC4zNzYwNTIsIDAuNDI1MzkzLCAwLjcwNTI5MywgMC45NTE5OTksIDEuMjgxMDYsIDEuOTM5MywgMi4zNTA2NSIsIFwKLSAgICAgICAgICAiMC40MDAyODUsIDAuNDQ5NjI4LCAwLjcyOTM5NiwgMC45NzYyMzgsIDEuMzA1MjksIDEuOTYzNTQsIDIuMzc1IiwgXAotICAgICAgICAgICIwLjQyMDY2OCwgMC40NzAwMTEsIDAuNzQ5Nzk4LCAwLjk5NjYxNSwgMS4zMjU2NywgMS45ODM5MiwgMi4zOTUyOSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNzczLCAwLjI3NDc4MywgMC44Mjk4NDcsIDEuMzE5NzIsIDEuOTczMTEsIDMuMjgxMTYsIDQuMDk0NjIiLCBcCi0gICAgICAgICAgIjAuMTc3MzA1LCAwLjI3NDc4NywgMC44MzAwMSwgMS4zMTkwOSwgMS45NzMwMiwgMy4yODEwNCwgNC4wOTU0MiIsIFwKLSAgICAgICAgICAiMC4xNzczMDUsIDAuMjc0Nzg3LCAwLjgyOTkxMiwgMS4zMTkxNSwgMS45NzMsIDMuMjgxMDQsIDQuMDk0NTMiLCBcCi0gICAgICAgICAgIjAuMTc3MzA1LCAwLjI3NDc1MywgMC44Mjk5MTUsIDEuMzE5MDYsIDEuOTczLCAzLjI4MTA0LCA0LjA5NDkyIiwgXAotICAgICAgICAgICIwLjE3NzMwNSwgMC4yNzQ3NTEsIDAuODI5Njk0LCAxLjMxOTQyLCAxLjk3MzA2LCAzLjI4MTAxLCA0LjA5NTk1IiwgXAotICAgICAgICAgICIwLjE3NzMwNCwgMC4yNzQ3ODUsIDAuODI5OTY4LCAxLjMxOTA5LCAxLjk3MzAyLCAzLjI4MTIxLCA0LjA5NDQ1IiwgXAotICAgICAgICAgICIwLjE3NzMwMywgMC4yNzQ3ODYsIDAuODI5NTg5LCAxLjMxOTM1LCAxLjk3MzA3LCAzLjI4MTE5LCA0LjA5NTcxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzI4MiwgMC4wMDMyODcsIDAuMDAzMjkzLCAwLjAwMzI5NSwgMC4wMDMyOTUsIDAuMDAzMjk2LCAwLjAwMzI5NiIsIFwKLSAgICAgICAgICAiMC4wMDMyNzUsIDAuMDAzMjgsIDAuMDAzMjg2LCAwLjAwMzI4OCwgMC4wMDMyODgsIDAuMDAzMjg5LCAwLjAwMzI4OSIsIFwKLSAgICAgICAgICAiMC4wMDMyNywgMC4wMDMyNzUsIDAuMDAzMjgxLCAwLjAwMzI4MywgMC4wMDMyODQsIDAuMDAzMjg0LCAwLjAwMzI4NCIsIFwKLSAgICAgICAgICAiMC4wMDMyNjYsIDAuMDAzMjcxLCAwLjAwMzI3NywgMC4wMDMyNzgsIDAuMDAzMjc5LCAwLjAwMzI4LCAwLjAwMzI4IiwgXAotICAgICAgICAgICIwLjAwMzI2NSwgMC4wMDMyNjksIDAuMDAzMjc2LCAwLjAwMzI3NywgMC4wMDMyNzgsIDAuMDAzMjc5LCAwLjAwMzI3OSIsIFwKLSAgICAgICAgICAiMC4wMDMyNjQsIDAuMDAzMjY4LCAwLjAwMzI3NSwgMC4wMDMyNzYsIDAuMDAzMjc3LCAwLjAwMzI3OCwgMC4wMDMyNzgiLCBcCi0gICAgICAgICAgIjAuMDAzMjY3LCAwLjAwMzI3MiwgMC4wMDMyNzgsIDAuMDAzMjgsIDAuMDAzMjgxLCAwLjAwMzI4MSwgMC4wMDMyODIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDMyNzEsIDAuMDAzMjczLCAwLjAwMzI2OCwgMC4wMDMyNjYsIDAuMDAzMjY0LCAwLjAwMzI2MiwgMC4wMDMyNjIiLCBcCi0gICAgICAgICAgIjAuMDAzMjY0LCAwLjAwMzI2NiwgMC4wMDMyNjEsIDAuMDAzMjU5LCAwLjAwMzI1NywgMC4wMDMyNTUsIDAuMDAzMjU1IiwgXAotICAgICAgICAgICIwLjAwMzI1OCwgMC4wMDMyNTksIDAuMDAzMjU1LCAwLjAwMzI1MiwgMC4wMDMyNTEsIDAuMDAzMjQ5LCAwLjAwMzI0OCIsIFwKLSAgICAgICAgICAiMC4wMDMyNTMsIDAuMDAzMjU1LCAwLjAwMzI1MSwgMC4wMDMyNDgsIDAuMDAzMjQ2LCAwLjAwMzI0NSwgMC4wMDMyNDQiLCBcCi0gICAgICAgICAgIjAuMDAzMjQ5LCAwLjAwMzI1LCAwLjAwMzI0NiwgMC4wMDMyNDMsIDAuMDAzMjQyLCAwLjAwMzI0LCAwLjAwMzIzOSIsIFwKLSAgICAgICAgICAiMC4wMDMyNDUsIDAuMDAzMjQ2LCAwLjAwMzI0MywgMC4wMDMyNCwgMC4wMDMyMzgsIDAuMDAzMjM2LCAwLjAwMzIzNSIsIFwKLSAgICAgICAgICAiMC4wMDMyNDIsIDAuMDAzMjQ0LCAwLjAwMzI0LCAwLjAwMzIzNywgMC4wMDMyMzUsIDAuMDAzMjMzLCAwLjAwMzIzMiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oU0UpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTI5MTQzOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTI5MDk0OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTI5MTQzOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzIxNywgMC4wMDMyMDYsIDAuMDAzMiwgMC4wMDMxOTcsIDAuMDAzMTk2LCAwLjAwMzE5MywgMC4wMDMxOTMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDQzNDgsIDAuMDA0MzMsIDAuMDA0MzE4LCAwLjAwNDMxLCAwLjAwNDMwNSwgMC4wMDQyOTksIDAuMDA0Mjk3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEJlNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9TSV9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjExMjUsIC0wLjEwNzUsIC0wLjA5NSwgLTAuMDgyNSwgLTAuMDc2MjUsIC0wLjA2LCAtMC4wNDUiLCBcCi0gICAgICAgICAgIi0wLjEyMzc1LCAtMC4xMTg3NSwgLTAuMTA2MjUsIC0wLjA5Mzc1LCAtMC4wODc1LCAtMC4wNzEyNSwgLTAuMDU2MjUiLCBcCi0gICAgICAgICAgIi0wLjEzNjI1LCAtMC4xMzEyNSwgLTAuMTE4NzUsIC0wLjEwNjI1LCAtMC4xLCAtMC4wODM3NSwgLTAuMDY4NzUiLCBcCi0gICAgICAgICAgIi0wLjE1NSwgLTAuMTQzNzUsIC0wLjEzMTI1LCAtMC4xMTg3NSwgLTAuMTEyNSwgLTAuMDk2MjUsIC0wLjA4NzUiLCBcCi0gICAgICAgICAgIi0wLjE2NzUsIC0wLjE1NjI1LCAtMC4xNDM3NSwgLTAuMTM3NSwgLTAuMTI1LCAtMC4xMDg3NSwgLTAuMSIsIFwKLSAgICAgICAgICAiLTAuMTksIC0wLjE3ODc1LCAtMC4xNjYyNSwgLTAuMTUzNzUsIC0wLjE0NzUsIC0wLjEzMTI1LCAtMC4xMjI1IiwgXAotICAgICAgICAgICItMC4yMDUsIC0wLjIsIC0wLjE4NzUsIC0wLjE3NSwgLTAuMTY4NzUsIC0wLjE1MjUsIC0wLjEzNzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMTI1LCAtMC4wMDEyNSwgMC4wMTc1LCAwLjAzLCAwLjA0MjUsIDAuMDY1LCAwLjA4IiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDA2MjUsIDAuMDA2MjUsIDAuMDE4NzUsIDAuMDMxMjUsIDAuMDUzNzUsIDAuMDY4NzUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMjUsIC0wLjAwNjI1LCAwLjAwNjI1LCAwLjAxODc1LCAwLjA0MTI1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDM3NSwgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLjAwNjI1LCAwLjAyODc1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICItMC4wNjEyNSwgLTAuMDQzNzUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAuMDE2MjUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjA3NzUsIC0wLjA2NjI1LCAtMC4wNTM3NSwgLTAuMDQxMjUsIC0wLjAyODc1LCAtMC4wMDYyNSwgMC4wMTUiLCBcCi0gICAgICAgICAgIi0wLjA5MjUsIC0wLjA4MTI1LCAtMC4wNjg3NSwgLTAuMDU2MjUsIC0wLjA0Mzc1LCAtMC4wMjEyNSwgLTAuMDA2MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiRCYhU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8xX0FOX1NJX0VRXzAgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDQzNzUsIC0wLjAzMjUsIC0wLjAyLCAtMC4wMDEyNSwgMC4wMTEyNSwgMC4wMzM3NSwgMC4wNDg3NSIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNDM3NSwgLTAuMDMxMjUsIC0wLjAxMjUsIDAsIDAuMDIyNSwgMC4wMzc1IiwgXAotICAgICAgICAgICItMC4wNjc1LCAtMC4wNTYyNSwgLTAuMDQzNzUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgMC4wMDM3NSwgMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjA4NjI1LCAtMC4wNzUsIC0wLjA1NjI1LCAtMC4wNDM3NSwgLTAuMDMxMjUsIC0wLjAwODc1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wOTg3NSwgLTAuMDg3NSwgLTAuMDc1LCAtMC4wNjI1LCAtMC4wNDM3NSwgLTAuMDI3NSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjEyMTI1LCAtMC4xMSwgLTAuMDk3NSwgLTAuMDc4NzUsIC0wLjA2NjI1LCAtMC4wNDM3NSwgLTAuMDI4NzUiLCBcCi0gICAgICAgICAgIi0wLjEzNjI1LCAtMC4xMjUsIC0wLjExMjUsIC0wLjEsIC0wLjA4MTI1LCAtMC4wNjUsIC0wLjA0Mzc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMTQzNzUsIC0wLjEzMjUsIC0wLjEyNjI1LCAtMC4xMTM3NSwgLTAuMTAxMjUsIC0wLjA5MTI1LCAtMC4wNzYyNSIsIFwKLSAgICAgICAgICAiLTAuMTU1LCAtMC4xNDM3NSwgLTAuMTM3NSwgLTAuMTI1LCAtMC4xMTI1LCAtMC4xMDI1LCAtMC4wODc1IiwgXAotICAgICAgICAgICItMC4xNzM3NSwgLTAuMTYyNSwgLTAuMTUsIC0wLjEzNzUsIC0wLjEzMTI1LCAtMC4xMTUsIC0wLjEwNjI1IiwgXAotICAgICAgICAgICItMC4xODYyNSwgLTAuMTc1LCAtMC4xNjI1LCAtMC4xNTYyNSwgLTAuMTQzNzUsIC0wLjEyNzUsIC0wLjExODc1IiwgXAotICAgICAgICAgICItMC4xOTg3NSwgLTAuMTg3NSwgLTAuMTc1LCAtMC4xNjg3NSwgLTAuMTU2MjUsIC0wLjE0LCAtMC4xMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMjE1LCAtMC4yMDM3NSwgLTAuMTk3NSwgLTAuMTg1LCAtMC4xNzI1LCAtMC4xNjI1LCAtMC4xNDc1IiwgXAotICAgICAgICAgICItMC4yMywgLTAuMjE4NzUsIC0wLjIwNjI1LCAtMC4yLCAtMC4xODc1LCAtMC4xNzEyNSwgLTAuMTYyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUQmU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1NJX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTkzNzUsIDAuMTgyNSwgMC4xNjM3NSwgMC4xNTEyNSwgMC4xMzg3NSwgMC4xMjI1LCAwLjEwNzUiLCBcCi0gICAgICAgICAgIjAuMjA1LCAwLjE4NzUsIDAuMTc1LCAwLjE2MjUsIDAuMTUsIDAuMTMzNzUsIDAuMTE4NzUiLCBcCi0gICAgICAgICAgIjAuMjE3NSwgMC4yMDYyNSwgMC4xODc1LCAwLjE3NSwgMC4xNjI1LCAwLjE0NjI1LCAwLjEzMTI1IiwgXAotICAgICAgICAgICIwLjIzLCAwLjIxODc1LCAwLjIsIDAuMTg3NSwgMC4xNzUsIDAuMTU4NzUsIDAuMTQzNzUiLCBcCi0gICAgICAgICAgIjAuMjQyNSwgMC4yMzEyNSwgMC4yMTI1LCAwLjIsIDAuMTg3NSwgMC4xNzEyNSwgMC4xNjI1IiwgXAotICAgICAgICAgICIwLjI2NSwgMC4yNTM3NSwgMC4yMzUsIDAuMjIyNSwgMC4yMSwgMC4xOTM3NSwgMC4xNzg3NSIsIFwKLSAgICAgICAgICAiMC4yODYyNSwgMC4yNzUsIDAuMjU2MjUsIDAuMjQzNzUsIDAuMjMxMjUsIDAuMjE1LCAwLjIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMjUsIDAuMTEzNzUsIDAuMDk1LCAwLjA3NjI1LCAwLjA2Mzc1LCAwLjA0MTI1LCAwLjAyIiwgXAotICAgICAgICAgICIwLjEzNjI1LCAwLjEyNSwgMC4xMDYyNSwgMC4wODc1LCAwLjA3NSwgMC4wNDYyNSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4xNDg3NSwgMC4xMzc1LCAwLjExODc1LCAwLjEsIDAuMDg3NSwgMC4wNjUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMTYxMjUsIDAuMTUsIDAuMTMxMjUsIDAuMTE4NzUsIDAuMSwgMC4wNzc1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICIwLjE3Mzc1LCAwLjE2MjUsIDAuMTQzNzUsIDAuMTMxMjUsIDAuMTEyNSwgMC4wOSwgMC4wNjg3NSIsIFwKLSAgICAgICAgICAiMC4xOTYyNSwgMC4xODUsIDAuMTY2MjUsIDAuMTQ3NSwgMC4xMzUsIDAuMTEyNSwgMC4wOTEyNSIsIFwKLSAgICAgICAgICAiMC4yMTEyNSwgMC4yLCAwLjE4NzUsIDAuMTY4NzUsIDAuMTU2MjUsIDAuMTI3NSwgMC4xMDYyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiRCYhU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8xX0FOX1NJX0VRXzAgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTU2MjUsIDAuMTQ1LCAwLjEyNjI1LCAwLjExMzc1LCAwLjA5NSwgMC4wNzI1LCAwLjA1MTI1IiwgXAotICAgICAgICAgICIwLjE2NzUsIDAuMTU2MjUsIDAuMTM3NSwgMC4xMjUsIDAuMTA2MjUsIDAuMDgzNzUsIDAuMDYyNSIsIFwKLSAgICAgICAgICAiMC4xODYyNSwgMC4xNjg3NSwgMC4xNTYyNSwgMC4xMzc1LCAwLjEyNSwgMC4wOTYyNSwgMC4wNzUiLCBcCi0gICAgICAgICAgIjAuMTk4NzUsIDAuMTg3NSwgMC4xNjg3NSwgMC4xNTYyNSwgMC4xMzc1LCAwLjExNSwgMC4wOTM3NSIsIFwKLSAgICAgICAgICAiMC4yMTEyNSwgMC4yLCAwLjE4MTI1LCAwLjE2ODc1LCAwLjE1LCAwLjEyNzUsIDAuMTA2MjUiLCBcCi0gICAgICAgICAgIjAuMjMzNzUsIDAuMjIyNSwgMC4yMDM3NSwgMC4xODUsIDAuMTcyNSwgMC4xNSwgMC4xMjg3NSIsIFwKLSAgICAgICAgICAiMC4yNDg3NSwgMC4yMzc1LCAwLjIxODc1LCAwLjIwNjI1LCAwLjE4NzUsIDAuMTY1LCAwLjE0Mzc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjI1LCAwLjIwNzUsIDAuMTk1LCAwLjE4MjUsIDAuMTcsIDAuMTUzNzUsIDAuMTM4NzUiLCBcCi0gICAgICAgICAgIjAuMjM2MjUsIDAuMjE4NzUsIDAuMjA2MjUsIDAuMTkzNzUsIDAuMTgxMjUsIDAuMTY1LCAwLjE1IiwgXAotICAgICAgICAgICIwLjI0ODc1LCAwLjIzNzUsIDAuMjE4NzUsIDAuMjA2MjUsIDAuMTkzNzUsIDAuMTc3NSwgMC4xNjI1IiwgXAotICAgICAgICAgICIwLjI2MTI1LCAwLjI1LCAwLjIzMTI1LCAwLjIxODc1LCAwLjIwNjI1LCAwLjE5LCAwLjE4MTI1IiwgXAotICAgICAgICAgICIwLjI3Mzc1LCAwLjI2MjUsIDAuMjUsIDAuMjMxMjUsIDAuMjE4NzUsIDAuMjAyNSwgMC4xOTM3NSIsIFwKLSAgICAgICAgICAiMC4yOSwgMC4yNzg3NSwgMC4yNjYyNSwgMC4yNTM3NSwgMC4yNDEyNSwgMC4yMjUsIDAuMjEiLCBcCi0gICAgICAgICAgIjAuMzA1LCAwLjI5Mzc1LCAwLjI4MTI1LCAwLjI2MjUsIDAuMjU2MjUsIDAuMjMzNzUsIDAuMjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTSSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjQ2OTg3OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDY0NTA3OTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2NDY5ODc7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyMjAxLCAwLjAwMjE5MSwgMC4wMDIxODYsIDAuMDAyMTgzLCAwLjAwMjE4LCAwLjAwMjE3NywgMC4wMDIxNzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDM0NTcsIDAuMDAzNDUzLCAwLjAwMzQ1MSwgMC4wMDM0NDksIDAuMDAzNDQ3LCAwLjAwMzQ0NSwgMC4wMDM0NDUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiU0UiOwotICAgICAgc2RmX2NvbmQgOiAiU0UgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMTI1LCAtMC4xMiwgLTAuMTA3NSwgLTAuMDk1LCAtMC4wODg3NSwgLTAuMDcyNSwgLTAuMDU3NSIsIFwKLSAgICAgICAgICAiLTAuMTM2MjUsIC0wLjEzMTI1LCAtMC4xMTg3NSwgLTAuMTA2MjUsIC0wLjEsIC0wLjA4Mzc1LCAtMC4wNjg3NSIsIFwKLSAgICAgICAgICAiLTAuMTU1LCAtMC4xNDM3NSwgLTAuMTMxMjUsIC0wLjExODc1LCAtMC4xMTI1LCAtMC4wOTYyNSwgLTAuMDg3NSIsIFwKLSAgICAgICAgICAiLTAuMTY3NSwgLTAuMTU2MjUsIC0wLjE0Mzc1LCAtMC4xMzc1LCAtMC4xMjUsIC0wLjEwODc1LCAtMC4xIiwgXAotICAgICAgICAgICItMC4xOCwgLTAuMTY4NzUsIC0wLjE2MjUsIC0wLjE1LCAtMC4xMzc1LCAtMC4xMjc1LCAtMC4xMTI1IiwgXAotICAgICAgICAgICItMC4yMDI1LCAtMC4xOTEyNSwgLTAuMTc4NzUsIC0wLjE3MjUsIC0wLjE2LCAtMC4xNDM3NSwgLTAuMTM1IiwgXAotICAgICAgICAgICItMC4yMjM3NSwgLTAuMjEyNSwgLTAuMiwgLTAuMTg3NSwgLTAuMTgxMjUsIC0wLjE2NSwgLTAuMTU2MjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMjUsIC0wLjAxMzc1LCAwLjAwNSwgMC4wMTc1LCAwLjAzLCAwLjA1MjUsIDAuMDY3NSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAyNSwgLTAuMDA2MjUsIDAuMDA2MjUsIDAuMDE4NzUsIDAuMDQxMjUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wMzc1LCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAuMDA2MjUsIDAuMDI4NzUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIi0wLjA2MTI1LCAtMC4wNSwgLTAuMDMxMjUsIC0wLjAxODc1LCAtMC4wMDYyNSwgMC4wMTYyNSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDczNzUsIC0wLjA1NjI1LCAtMC4wNDM3NSwgLTAuMDMxMjUsIC0wLjAxODc1LCAwLjAwMzc1LCAwLjAxODc1IiwgXAotICAgICAgICAgICItMC4wOSwgLTAuMDc4NzUsIC0wLjA2NjI1LCAtMC4wNDc1LCAtMC4wMzUsIC0wLjAxODc1LCAwLjAwMjUiLCBcCi0gICAgICAgICAgIi0wLjEwNSwgLTAuMDkzNzUsIC0wLjA4MTI1LCAtMC4wNjg3NSwgLTAuMDUsIC0wLjAzMzc1LCAtMC4wMTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJTRSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMDYyNSwgMC4xOTUsIDAuMTc2MjUsIDAuMTYzNzUsIDAuMTUxMjUsIDAuMTM1LCAwLjEyIiwgXAotICAgICAgICAgICIwLjIxNzUsIDAuMjA2MjUsIDAuMTg3NSwgMC4xNzUsIDAuMTYyNSwgMC4xNDYyNSwgMC4xMzEyNSIsIFwKLSAgICAgICAgICAiMC4yMywgMC4yMTg3NSwgMC4yLCAwLjE4NzUsIDAuMTc1LCAwLjE1ODc1LCAwLjE0Mzc1IiwgXAotICAgICAgICAgICIwLjI0MjUsIDAuMjMxMjUsIDAuMjEyNSwgMC4yLCAwLjE4NzUsIDAuMTcxMjUsIDAuMTYyNSIsIFwKLSAgICAgICAgICAiMC4yNTUsIDAuMjQzNzUsIDAuMjMxMjUsIDAuMjEyNSwgMC4yMDYyNSwgMC4xODM3NSwgMC4xNzUiLCBcCi0gICAgICAgICAgIjAuMjc3NSwgMC4yNjYyNSwgMC4yNTM3NSwgMC4yMzUsIDAuMjIyNSwgMC4yMDYyNSwgMC4xOTc1IiwgXAotICAgICAgICAgICIwLjI5ODc1LCAwLjI4NzUsIDAuMjY4NzUsIDAuMjU2MjUsIDAuMjQzNzUsIDAuMjI3NSwgMC4yMTI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTM3NSwgMC4xMjYyNSwgMC4xMDc1LCAwLjA4ODc1LCAwLjA3NjI1LCAwLjA1Mzc1LCAwLjAzMjUiLCBcCi0gICAgICAgICAgIjAuMTQ4NzUsIDAuMTM3NSwgMC4xMTg3NSwgMC4xLCAwLjA4NzUsIDAuMDY1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjE2MTI1LCAwLjE1LCAwLjEzMTI1LCAwLjExODc1LCAwLjEsIDAuMDc3NSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiMC4xNzM3NSwgMC4xNjI1LCAwLjE0Mzc1LCAwLjEzMTI1LCAwLjExMjUsIDAuMDksIDAuMDY4NzUiLCBcCi0gICAgICAgICAgIjAuMTg2MjUsIDAuMTc1LCAwLjE1NjI1LCAwLjEzNzUsIDAuMTI1LCAwLjEwMjUsIDAuMDgxMjUiLCBcCi0gICAgICAgICAgIjAuMjAyNSwgMC4xOTEyNSwgMC4xNzg3NSwgMC4xNiwgMC4xNDEyNSwgMC4xMTg3NSwgMC4wOTc1IiwgXAotICAgICAgICAgICIwLjIyMzc1LCAwLjIxMjUsIDAuMTkzNzUsIDAuMTc1LCAwLjE2MjUsIDAuMTQsIDAuMTE4NzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IFNFREZGSFFYMiAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKFNFREZGSFFYMikgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjUxOTYzODsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBmZiAoTjMwLFFCSU5UKSB7Ci0gICAgbmV4dF9zdGF0ZSA6ICIoKFNFIFNJKSArICghU0UgKChFIEQpICsgKCFFICghKCFOMzApKSkpKSkiOwotICAgIGNsb2NrZWRfb24gOiAiQ0siOwotICB9Ci0gIHBpbihDSykgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjAzMDA3OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYwMjY3ODsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2MDMwMDc7Ci0gICAgY2xvY2sgOiB0cnVlOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjcyMywgMC4wMDI3MTIsIDAuMDAyNywgMC4wMDI2OTQsIDAuMDAyNjg5LCAwLjAwMjY4MywgMC4wMDI2ODEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDU1OTQsIDAuMDA1NTg1LCAwLjAwNTU3NiwgMC4wMDU1NzEsIDAuMDA1NTcxLCAwLjAwNTU3NywgMC4wMDU1NzciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFEJiFFJlNFJiFTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fRV9FUV8wX0FOX1NFX0VRXzFfQU5fU0lfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjI2NTg2OCwgMC4yNzc2NDIsIDAuMjkyOTI4LCAwLjMwODQ3MiwgMC4zMjM3NjMsIDAuMzQ4MDk0LCAwLjM2OTA5NiIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMTkzMzIsIDAuMjA0OTgzLCAwLjIxOTkyNCwgMC4yMzQ4NiwgMC4yNDk0MDQsIDAuMjcyNDMxLCAwLjI5MTM2MyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwODY0MDUxOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDg2MDY3NzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA4NjQwNTE7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA0MDM3LCAwLjAwNDAxOSwgMC4wMDQwMTEsIDAuMDA0MDA1LCAwLjAwNDAwMSwgMC4wMDM5OTcsIDAuMDAzOTkzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA2ODgsIDAuMDA2ODcsIDAuMDA2ODY2LCAwLjAwNjg2MywgMC4wMDY4NjEsIDAuMDA2ODU4LCAwLjAwNjg1NiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJFJiFTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJFX0VRXzFfQU5fU0VfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4yLCAtMC4xODg3NSwgLTAuMTgyNSwgLTAuMTcsIC0wLjE2Mzc1LCAtMC4xNDc1LCAtMC4xMzg3NSIsIFwKLSAgICAgICAgICAiLTAuMjExMjUsIC0wLjIwNjI1LCAtMC4xOTM3NSwgLTAuMTgxMjUsIC0wLjE3NSwgLTAuMTU4NzUsIC0wLjE1IiwgXAotICAgICAgICAgICItMC4yMjM3NSwgLTAuMjE4NzUsIC0wLjIwNjI1LCAtMC4xOTM3NSwgLTAuMTg3NSwgLTAuMTcxMjUsIC0wLjE2MjUiLCBcCi0gICAgICAgICAgIi0wLjI0MjUsIC0wLjIzMTI1LCAtMC4yMTg3NSwgLTAuMjEyNSwgLTAuMiwgLTAuMTgzNzUsIC0wLjE3NSIsIFwKLSAgICAgICAgICAiLTAuMjU1LCAtMC4yNDM3NSwgLTAuMjMxMjUsIC0wLjIyNSwgLTAuMjEyNSwgLTAuMTk2MjUsIC0wLjE4NzUiLCBcCi0gICAgICAgICAgIi0wLjI3NzUsIC0wLjI2NjI1LCAtMC4yNTM3NSwgLTAuMjQxMjUsIC0wLjIzNSwgLTAuMjE4NzUsIC0wLjIxIiwgXAotICAgICAgICAgICItMC4yOTI1LCAtMC4yODEyNSwgLTAuMjc1LCAtMC4yNjI1LCAtMC4yNTYyNSwgLTAuMjQsIC0wLjIzMTI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDQzNzUsIC0wLjAzMjUsIC0wLjAyLCAtMC4wMTM3NSwgLTAuMDAxMjUsIDAuMDA4NzUsIDAuMDIzNzUiLCBcCi0gICAgICAgICAgIi0wLjA1NSwgLTAuMDQzNzUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAxMjUsIC0wLjAwMjUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDY3NSwgLTAuMDU2MjUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAxNSwgMCIsIFwKLSAgICAgICAgICAiLTAuMDgsIC0wLjA2ODc1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjAzNzUsIC0wLjAyNzUsIC0wLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjA5MjUsIC0wLjA4MTI1LCAtMC4wNjg3NSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNCwgLTAuMDI1IiwgXAotICAgICAgICAgICItMC4xMDg3NSwgLTAuMDk3NSwgLTAuMDg1LCAtMC4wNzg3NSwgLTAuMDY2MjUsIC0wLjA1NjI1LCAtMC4wNDEyNSIsIFwKLSAgICAgICAgICAiLTAuMTIzNzUsIC0wLjExMjUsIC0wLjEsIC0wLjA5Mzc1LCAtMC4wODEyNSwgLTAuMDcxMjUsIC0wLjA1NjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJFJiFTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJFX0VRXzFfQU5fU0VfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yOTM3NSwgMC4yNzYyNSwgMC4yNjM3NSwgMC4yNDUsIDAuMjMyNSwgMC4yMTYyNSwgMC4yMDEyNSIsIFwKLSAgICAgICAgICAiMC4zMDUsIDAuMjg3NSwgMC4yNzUsIDAuMjU2MjUsIDAuMjQzNzUsIDAuMjI3NSwgMC4yMTI1IiwgXAotICAgICAgICAgICIwLjMxNzUsIDAuMywgMC4yODc1LCAwLjI2ODc1LCAwLjI1NjI1LCAwLjI0LCAwLjIyNSIsIFwKLSAgICAgICAgICAiMC4zMywgMC4zMTg3NSwgMC4zLCAwLjI4NzUsIDAuMjc1LCAwLjI1MjUsIDAuMjM3NSIsIFwKLSAgICAgICAgICAiMC4zNDI1LCAwLjMzMTI1LCAwLjMxMjUsIDAuMywgMC4yODc1LCAwLjI2NSwgMC4yNTYyNSIsIFwKLSAgICAgICAgICAiMC4zNjUsIDAuMzUzNzUsIDAuMzM1LCAwLjMyMjUsIDAuMzAzNzUsIDAuMjg3NSwgMC4yNzI1IiwgXAotICAgICAgICAgICIwLjM4NjI1LCAwLjM2ODc1LCAwLjM1NjI1LCAwLjMzNzUsIDAuMzI1LCAwLjMwODc1LCAwLjI5Mzc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjA2MjUsIDAuMTk1LCAwLjE3NjI1LCAwLjE2Mzc1LCAwLjE0NSwgMC4xMjI1LCAwLjEwMTI1IiwgXAotICAgICAgICAgICIwLjIxNzUsIDAuMjA2MjUsIDAuMTg3NSwgMC4xNzUsIDAuMTU2MjUsIDAuMTMzNzUsIDAuMTEyNSIsIFwKLSAgICAgICAgICAiMC4yMywgMC4yMTg3NSwgMC4yLCAwLjE4NzUsIDAuMTY4NzUsIDAuMTQ2MjUsIDAuMTI1IiwgXAotICAgICAgICAgICIwLjI0MjUsIDAuMjMxMjUsIDAuMjEyNSwgMC4yLCAwLjE4MTI1LCAwLjE1ODc1LCAwLjEzNzUiLCBcCi0gICAgICAgICAgIjAuMjU1LCAwLjI0Mzc1LCAwLjIyNSwgMC4yMTI1LCAwLjE5Mzc1LCAwLjE3MTI1LCAwLjE1IiwgXAotICAgICAgICAgICIwLjI3NzUsIDAuMjYsIDAuMjQ3NSwgMC4yMjg3NSwgMC4yMTYyNSwgMC4xODc1LCAwLjE2NjI1IiwgXAotICAgICAgICAgICIwLjI5MjUsIDAuMjgxMjUsIDAuMjYyNSwgMC4yNSwgMC4yMzEyNSwgMC4yMDg3NSwgMC4xODc1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihFKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE0MTg2MzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE0MTc5NzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE0MTg2MzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDY0NTcsIDAuMDA2NDUxLCAwLjAwNjQ0OCwgMC4wMDY0NDQsIDAuMDA2NDQsIDAuMDA2NDM2LCAwLjAwNjQzNiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNzgwNywgMC4wMDc3ODYsIDAuMDA3NzcxLCAwLjAwNzc2MiwgMC4wMDc3NTYsIDAuMDA3NzQ2LCAwLjAwNzc0MyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhU0UiOwotICAgICAgc2RmX2NvbmQgOiAiU0UgPT0gMSdiMCI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMiwgLTAuMTg4NzUsIC0wLjE3LCAtMC4xNTc1LCAtMC4xMzg3NSwgLTAuMTE2MjUsIC0wLjA5NSIsIFwKLSAgICAgICAgICAiLTAuMjExMjUsIC0wLjIsIC0wLjE4MTI1LCAtMC4xNjg3NSwgLTAuMTUsIC0wLjEyNzUsIC0wLjEwNjI1IiwgXAotICAgICAgICAgICItMC4yMywgLTAuMjEyNSwgLTAuMiwgLTAuMTgxMjUsIC0wLjE2ODc1LCAtMC4xNDYyNSwgLTAuMTI1IiwgXAotICAgICAgICAgICItMC4yNDI1LCAtMC4yMzEyNSwgLTAuMjEyNSwgLTAuMiwgLTAuMTgxMjUsIC0wLjE1ODc1LCAtMC4xMzc1IiwgXAotICAgICAgICAgICItMC4yNTUsIC0wLjI0Mzc1LCAtMC4yMzEyNSwgLTAuMjEyNSwgLTAuMiwgLTAuMTc3NSwgLTAuMTU2MjUiLCBcCi0gICAgICAgICAgIi0wLjI3NzUsIC0wLjI2NjI1LCAtMC4yNTM3NSwgLTAuMjM1LCAtMC4yMjI1LCAtMC4yLCAtMC4xNzg3NSIsIFwKLSAgICAgICAgICAiLTAuMjk4NzUsIC0wLjI4NzUsIC0wLjI2ODc1LCAtMC4yNTYyNSwgLTAuMjM3NSwgLTAuMjE1LCAtMC4yIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDMxMjUsIC0wLjAyLCAtMC4wMDc1LCAtMC4wMDEyNSwgMC4wMTEyNSwgMC4wMjEyNSwgMC4wMzYyNSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDMxMjUsIC0wLjAxODc1LCAtMC4wMDYyNSwgMCwgMC4wMTYyNSwgMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjA1NSwgLTAuMDQzNzUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAxMjUsIDAuMDAzNzUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDY3NSwgLTAuMDU2MjUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAxNSwgMCIsIFwKLSAgICAgICAgICAiLTAuMDgsIC0wLjA2ODc1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjAzNzUsIC0wLjAyNzUsIC0wLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjA5NjI1LCAtMC4wODUsIC0wLjA3MjUsIC0wLjA2NjI1LCAtMC4wNTM3NSwgLTAuMDQzNzUsIC0wLjAyODc1IiwgXAotICAgICAgICAgICItMC4xMTEyNSwgLTAuMSwgLTAuMDg3NSwgLTAuMDc1LCAtMC4wNjg3NSwgLTAuMDU4NzUsIC0wLjA0Mzc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhU0UiOwotICAgICAgc2RmX2NvbmQgOiAiU0UgPT0gMSdiMCI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjgxMjUsIDAuMjYzNzUsIDAuMjUxMjUsIDAuMjMyNSwgMC4yMiwgMC4yMDM3NSwgMC4xODg3NSIsIFwKLSAgICAgICAgICAiMC4yODYyNSwgMC4yNzUsIDAuMjYyNSwgMC4yNDM3NSwgMC4yMzEyNSwgMC4yMTUsIDAuMiIsIFwKLSAgICAgICAgICAiMC4zMDUsIDAuMjg3NSwgMC4yNzUsIDAuMjU2MjUsIDAuMjQzNzUsIDAuMjI3NSwgMC4yMTI1IiwgXAotICAgICAgICAgICIwLjMxNzUsIDAuMywgMC4yODc1LCAwLjI2ODc1LCAwLjI1NjI1LCAwLjI0LCAwLjIyNSIsIFwKLSAgICAgICAgICAiMC4zMywgMC4zMTI1LCAwLjMsIDAuMjgxMjUsIDAuMjY4NzUsIDAuMjUyNSwgMC4yMzc1IiwgXAotICAgICAgICAgICIwLjM1MjUsIDAuMzM1LCAwLjMyMjUsIDAuMzAzNzUsIDAuMjkxMjUsIDAuMjc1LCAwLjI2IiwgXAotICAgICAgICAgICIwLjM2NzUsIDAuMzU2MjUsIDAuMzM3NSwgMC4zMjUsIDAuMzEyNSwgMC4yOTYyNSwgMC4yODEyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI1LCAwLjI0NSwgMC4yMzI1LCAwLjIyLCAwLjIwNzUsIDAuMTk3NSwgMC4xODI1IiwgXAotICAgICAgICAgICIwLjI2MTI1LCAwLjI1LCAwLjI0Mzc1LCAwLjIzMTI1LCAwLjIyNSwgMC4yMDg3NSwgMC4xOTM3NSIsIFwKLSAgICAgICAgICAiMC4yOCwgMC4yNjg3NSwgMC4yNTYyNSwgMC4yNDM3NSwgMC4yMzc1LCAwLjIyMTI1LCAwLjIxMjUiLCBcCi0gICAgICAgICAgIjAuMjkyNSwgMC4yODEyNSwgMC4yNjg3NSwgMC4yNjI1LCAwLjI1LCAwLjI0LCAwLjIyNSIsIFwKLSAgICAgICAgICAiMC4zMDUsIDAuMywgMC4yODc1LCAwLjI3NSwgMC4yNjI1LCAwLjI1MjUsIDAuMjM3NSIsIFwKLSAgICAgICAgICAiMC4zMjc1LCAwLjMxNjI1LCAwLjMwMzc1LCAwLjI5NzUsIDAuMjg1LCAwLjI2ODc1LCAwLjI2IiwgXAotICAgICAgICAgICIwLjM0MjUsIDAuMzMxMjUsIDAuMzI1LCAwLjMxMjUsIDAuMywgMC4yOSwgMC4yNzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFEpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4yNjAyNDQ7Ci0gICAgZnVuY3Rpb24gOiAiTjMwIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBub25fdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJpc2luZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMjg4NTEsIDAuNDEwMDQsIDAuNTU0MzkxLCAwLjczNDc4MSwgMC45MTUxNjIsIDEuMDk1NTUsIDEuMjc1OTUiLCBcCi0gICAgICAgICAgIjAuMjQwNTU4LCAwLjQyMTc2NiwgMC41NjYwODksIDAuNzQ2NDksIDAuOTI2ODYxLCAxLjEwNzM3LCAxLjI4NzY2IiwgXAotICAgICAgICAgICIwLjI1NTY2NCwgMC40MzY4ODIsIDAuNTgxMjA2LCAwLjc2MTYwMiwgMC45NDIwMDEsIDEuMTIyNCwgMS4zMDI3OCIsIFwKLSAgICAgICAgICAiMC4yNzExNjUsIDAuNDUyMzgxLCAwLjU5Njc2MywgMC43NzcxMDksIDAuOTU3NDg5LCAxLjEzNzg1LCAxLjMxODI4IiwgXAotICAgICAgICAgICIwLjI4NjQ3NywgMC40Njc2OTEsIDAuNjEyMDYxLCAwLjc5MjQxNywgMC45NzI4MTQsIDEuMTUzMTYsIDEuMzMzNTkiLCBcCi0gICAgICAgICAgIjAuMzEwNzE2LCAwLjQ5MTkwNCwgMC42MzYyNTUsIDAuODE2NjQ0LCAwLjk5NzAzLCAxLjE3NzQyLCAxLjM1Nzg2IiwgXAotICAgICAgICAgICIwLjMzMTUxMywgMC41MTI3MjYsIDAuNjU3MDU0LCAwLjgzNzQ0NSwgMS4wMTc4OCwgMS4xOTgyLCAxLjM3ODYyIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5MTIzMSwgMC40NTQ3NDcsIDAuNzQ5ODk1LCAxLjExNzA0LCAxLjQ4ODE1LCAxLjg1NzQyLCAyLjIyNjczIiwgXAotICAgICAgICAgICIwLjA5MTIzLCAwLjQ1NDk3NywgMC43NDk4NzEsIDEuMTE4MTksIDEuNDg3OTQsIDEuODU3MjIsIDIuMjI2NzQiLCBcCi0gICAgICAgICAgIjAuMDkxMjMyLCAwLjQ1NDk4NywgMC43NDk4OTYsIDEuMTE5LCAxLjQ4ODI3LCAxLjg1NzU3LCAyLjIyNjgzIiwgXAotICAgICAgICAgICIwLjA5MTI1NSwgMC40NTQ5ODcsIDAuNzQ4MjQ2LCAxLjExNzIsIDEuNDg4MTksIDEuODU3MjcsIDIuMjI2ODEiLCBcCi0gICAgICAgICAgIjAuMDkxMjQ5LCAwLjQ1NDk4NiwgMC43NDk5NDgsIDEuMTE3MTUsIDEuNDg4MiwgMS44NTcyNiwgMi4yMjY4MiIsIFwKLSAgICAgICAgICAiMC4wOTEyNDgsIDAuNDU0Nzg4LCAwLjc0OTg5NSwgMS4xMTcwMywgMS40ODgxNywgMS44NTc0MSwgMi4yMjY5NCIsIFwKLSAgICAgICAgICAiMC4wOTEyNDYsIDAuNDU0OTk2LCAwLjc0OTg5NSwgMS4xMTcxLCAxLjQ4ODQ5LCAxLjg1NzQzLCAyLjIyNjkyIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI2NTg4NywgMC40NzI4NzYsIDAuNjM3ODMzLCAwLjg0NDA1MywgMS4wNTAyMSwgMS4yNTY0MiwgMS40NjI2MiIsIFwKLSAgICAgICAgICAiMC4yNzc2NjIsIDAuNDg0NjQ3LCAwLjY0OTYwNSwgMC44NTU4MzEsIDEuMDYyMDcsIDEuMjY4MjEsIDEuNDc0MzciLCBcCi0gICAgICAgICAgIjAuMjkyOTQ3LCAwLjQ5OTkyLCAwLjY2NDg5LCAwLjg3MTExNSwgMS4wNzcyNywgMS4yODM0OCwgMS40ODk2OCIsIFwKLSAgICAgICAgICAiMC4zMDg0OTYsIDAuNTE1NDU5LCAwLjY4MDQzMywgMC44ODY2NTIsIDEuMDkyNzcsIDEuMjk4OTYsIDEuNTA1MjEiLCBcCi0gICAgICAgICAgIjAuMzIzNzgyLCAwLjUzMDcyNCwgMC42OTU3MjYsIDAuOTAyMDE2LCAxLjEwODIsIDEuMzE0MzIsIDEuNTIwNTEiLCBcCi0gICAgICAgICAgIjAuMzQ4MTEyLCAwLjU1NTEwNiwgMC43MjAwNTUsIDAuOTI2Mjg2LCAxLjEzMjQ3LCAxLjMzODY2LCAxLjU0NDg0IiwgXAotICAgICAgICAgICIwLjM2OTExNiwgMC41NzYwODIsIDAuNzQxMDU4LCAwLjk0NzI4MiwgMS4xNTMzOSwgMS4zNTk3NSwgMS41NjU4NCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTg4ODMsIDAuNTA2NzY1LCAwLjgzNTI5OCwgMS4yNDU1NywgMS42NTkzMiwgMi4wNzE0LCAyLjQ4MjgxIiwgXAotICAgICAgICAgICIwLjA5ODkwNiwgMC41MDU0MTQsIDAuODM1MjMzLCAxLjI0ODIsIDEuNjU5MDYsIDIuMDcwNTUsIDIuNDgyODciLCBcCi0gICAgICAgICAgIjAuMDk4ODgyLCAwLjUwNjI4NywgMC44MzUxNjcsIDEuMjQ1NzMsIDEuNjU5MzUsIDIuMDcxNCwgMi40ODI4MSIsIFwKLSAgICAgICAgICAiMC4wOTg4OTYsIDAuNTA1NDk2LCAwLjgzNDYwOSwgMS4yNDQ3NiwgMS42NTk5OSwgMi4wNzE0MSwgMi40ODIxNSIsIFwKLSAgICAgICAgICAiMC4wOTg4OTUsIDAuNTA2NzU1LCAwLjgzNTM2MywgMS4yNDc2NSwgMS42NTkzMiwgMi4wNzEwNSwgMi40ODI4IiwgXAotICAgICAgICAgICIwLjA5ODg5NiwgMC41MDU2NTgsIDAuODM1MTk5LCAxLjI0ODI5LCAxLjY1OTg0LCAyLjA3MTQzLCAyLjQ4Mjg3IiwgXAotICAgICAgICAgICIwLjA5ODg5NiwgMC41MDU1NTIsIDAuODM0NTYzLCAxLjI0NzQsIDEuNjYwMjQsIDIuMDcxNCwgMi40ODIxOCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDk4ODYsIDAuMDA5OTE5LCAwLjAwOTkyMiwgMC4wMDk5MjUsIDAuMDA5OTI1LCAwLjAwOTkyNiwgMC4wMDk5MjYiLCBcCi0gICAgICAgICAgIjAuMDA5ODczLCAwLjAwOTkwNiwgMC4wMDk5MDksIDAuMDA5OTEyLCAwLjAwOTkxMiwgMC4wMDk5MTMsIDAuMDA5OTEzIiwgXAotICAgICAgICAgICIwLjAwOTg1OSwgMC4wMDk4OTMsIDAuMDA5ODk2LCAwLjAwOTg5OCwgMC4wMDk4OTksIDAuMDA5ODk5LCAwLjAwOTg5OSIsIFwKLSAgICAgICAgICAiMC4wMDk4NDksIDAuMDA5ODgzLCAwLjAwOTg4NiwgMC4wMDk4ODksIDAuMDA5ODg5LCAwLjAwOTg4OSwgMC4wMDk4ODkiLCBcCi0gICAgICAgICAgIjAuMDA5ODQyLCAwLjAwOTg3NSwgMC4wMDk4NzksIDAuMDA5ODgyLCAwLjAwOTg4MSwgMC4wMDk4ODEsIDAuMDA5ODgyIiwgXAotICAgICAgICAgICIwLjAwOTgzLCAwLjAwOTg2NCwgMC4wMDk4NjcsIDAuMDA5ODY5LCAwLjAwOTg3LCAwLjAwOTg3MSwgMC4wMDk4NzEiLCBcCi0gICAgICAgICAgIjAuMDA5ODI5LCAwLjAwOTg2MiwgMC4wMDk4NjUsIDAuMDA5ODY4LCAwLjAwOTg2OSwgMC4wMDk4NjgsIDAuMDA5ODY5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA5ODA4LCAwLjAwOTg1NCwgMC4wMDk4NTksIDAuMDA5ODYxLCAwLjAwOTg2MywgMC4wMDk4NjMsIDAuMDA5ODY0IiwgXAotICAgICAgICAgICIwLjAwOTc5NSwgMC4wMDk4NCwgMC4wMDk4NDUsIDAuMDA5ODQ4LCAwLjAwOTg0OSwgMC4wMDk4NDksIDAuMDA5ODUiLCBcCi0gICAgICAgICAgIjAuMDA5Nzg0LCAwLjAwOTgzLCAwLjAwOTgzNSwgMC4wMDk4MzcsIDAuMDA5ODM4LCAwLjAwOTgzOSwgMC4wMDk4MzkiLCBcCi0gICAgICAgICAgIjAuMDA5Nzc5LCAwLjAwOTgyNCwgMC4wMDk4MjksIDAuMDA5ODMxLCAwLjAwOTgzMiwgMC4wMDk4MzMsIDAuMDA5ODM0IiwgXAotICAgICAgICAgICIwLjAwOTc3NiwgMC4wMDk4MjIsIDAuMDA5ODI3LCAwLjAwOTgyOSwgMC4wMDk4MzEsIDAuMDA5ODMxLCAwLjAwOTgzMiIsIFwKLSAgICAgICAgICAiMC4wMDk3NzYsIDAuMDA5ODIyLCAwLjAwOTgyNiwgMC4wMDk4MjksIDAuMDA5ODMsIDAuMDA5ODMxLCAwLjAwOTgzMSIsIFwKLSAgICAgICAgICAiMC4wMDk3ODQsIDAuMDA5ODI5LCAwLjAwOTgzNCwgMC4wMDk4MzYsIDAuMDA5ODM3LCAwLjAwOTgzOCwgMC4wMDk4MzkiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFNFKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDEzMjkyOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTMyODQzOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTMyOTI7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA0ODA0LCAwLjAwNDgwMiwgMC4wMDQ4MDQsIDAuMDA0ODA2LCAwLjAwNDgwNiwgMC4wMDQ4MDcsIDAuMDA0ODA2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA1ODk0LCAwLjAwNTg3MSwgMC4wMDU4NTEsIDAuMDA1ODQyLCAwLjAwNTgzNCwgMC4wMDU4MjUsIDAuMDA1ODIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUQmIUUmIVNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9FX0VRXzBfQU5fU0lfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4xMzEyNSwgLTAuMTIsIC0wLjExMzc1LCAtMC4xMDEyNSwgLTAuMDk1LCAtMC4wNzg3NSwgLTAuMDYzNzUiLCBcCi0gICAgICAgICAgIi0wLjE0MjUsIC0wLjEzMTI1LCAtMC4xMjUsIC0wLjExMjUsIC0wLjEwNjI1LCAtMC4wOSwgLTAuMDgxMjUiLCBcCi0gICAgICAgICAgIi0wLjE2MTI1LCAtMC4xNSwgLTAuMTM3NSwgLTAuMTMxMjUsIC0wLjExODc1LCAtMC4xMDI1LCAtMC4wOTM3NSIsIFwKLSAgICAgICAgICAiLTAuMTczNzUsIC0wLjE2MjUsIC0wLjE1NjI1LCAtMC4xNDM3NSwgLTAuMTMxMjUsIC0wLjEyMTI1LCAtMC4xMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMTg2MjUsIC0wLjE3NSwgLTAuMTY4NzUsIC0wLjE1NjI1LCAtMC4xNSwgLTAuMTMzNzUsIC0wLjEyNSIsIFwKLSAgICAgICAgICAiLTAuMjA4NzUsIC0wLjE5NzUsIC0wLjE5MTI1LCAtMC4xNzg3NSwgLTAuMTcyNSwgLTAuMTU2MjUsIC0wLjE0NzUiLCBcCi0gICAgICAgICAgIi0wLjIzLCAtMC4yMTg3NSwgLTAuMjA2MjUsIC0wLjIsIC0wLjE4NzUsIC0wLjE3NzUsIC0wLjE2MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUQmIUUmU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX0VfRVFfMF9BTl9TSV9FUV8xID09IDEnYjEiOwotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAwNjI1LCAwLjAwNSwgMC4wMTc1LCAwLjAzLCAwLjA0MjUsIDAuMDY1LCAwLjA4IiwgXAotICAgICAgICAgICItMC4wMTc1LCAtMC4wMDYyNSwgMC4wMDYyNSwgMC4wMTg3NSwgMC4wMzEyNSwgMC4wNTM3NSwgMC4wNjg3NSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAxODc1LCAtMC4wMDYyNSwgMC4wMDYyNSwgMC4wMTg3NSwgMC4wNDEyNSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDMxMjUsIC0wLjAxODc1LCAtMC4wMDYyNSwgMC4wMDYyNSwgMC4wMjg3NSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNDM3NSwgLTAuMDMxMjUsIC0wLjAxODc1LCAtMC4wMDYyNSwgMC4wMTYyNSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDcxMjUsIC0wLjA2LCAtMC4wNDc1LCAtMC4wMzUsIC0wLjAyMjUsIDAsIDAuMDE1IiwgXAotICAgICAgICAgICItMC4wOCwgLTAuMDY4NzUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDM3NSwgLTAuMDE1LCAwIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEJkUmU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX0VfRVFfMV9BTl9TSV9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjEsIC0wLjA4ODc1LCAtMC4wNzYyNSwgLTAuMDYzNzUsIC0wLjA1NzUsIC0wLjA0MTI1LCAtMC4wMjYyNSIsIFwKLSAgICAgICAgICAiLTAuMTExMjUsIC0wLjEsIC0wLjA4NzUsIC0wLjA3NSwgLTAuMDY4NzUsIC0wLjA1MjUsIC0wLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjEyMzc1LCAtMC4xMTI1LCAtMC4xLCAtMC4wODc1LCAtMC4wODEyNSwgLTAuMDY1LCAtMC4wNSIsIFwKLSAgICAgICAgICAiLTAuMTM2MjUsIC0wLjEyNSwgLTAuMTEyNSwgLTAuMTA2MjUsIC0wLjA5Mzc1LCAtMC4wNzc1LCAtMC4wNjg3NSIsIFwKLSAgICAgICAgICAiLTAuMTQ4NzUsIC0wLjEzNzUsIC0wLjEyNSwgLTAuMTE4NzUsIC0wLjEwNjI1LCAtMC4wOSwgLTAuMDgxMjUiLCBcCi0gICAgICAgICAgIi0wLjE3MTI1LCAtMC4xNiwgLTAuMTQ3NSwgLTAuMTM1LCAtMC4xMjg3NSwgLTAuMTEyNSwgLTAuMDk3NSIsIFwKLSAgICAgICAgICAiLTAuMTkyNSwgLTAuMTgxMjUsIC0wLjE2ODc1LCAtMC4xNTYyNSwgLTAuMTUsIC0wLjEzMzc1LCAtMC4xMTg3NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJEJkUmIVNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMV9BTl9FX0VRXzFfQU5fU0lfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wNDM3NSwgLTAuMDMyNSwgLTAuMDIsIC0wLjAwMTI1LCAwLjAxMTI1LCAwLjAzMzc1LCAwLjA0ODc1IiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA0Mzc1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIDAsIDAuMDE2MjUsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDczNzUsIC0wLjA2MjUsIC0wLjA0Mzc1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIDAuMDAzNzUsIDAuMDI1IiwgXAotICAgICAgICAgICItMC4wODYyNSwgLTAuMDc1LCAtMC4wNjI1LCAtMC4wNSwgLTAuMDMxMjUsIC0wLjAxNSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMTA1LCAtMC4wODc1LCAtMC4wNzUsIC0wLjA2MjUsIC0wLjA1LCAtMC4wMjc1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMTI3NSwgLTAuMTE2MjUsIC0wLjA5NzUsIC0wLjA4NSwgLTAuMDcyNSwgLTAuMDUsIC0wLjAyODc1IiwgXAotICAgICAgICAgICItMC4xNDI1LCAtMC4xMzEyNSwgLTAuMTE4NzUsIC0wLjEwNjI1LCAtMC4wOTM3NSwgLTAuMDcxMjUsIC0wLjA1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRCYhRSYhU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX0VfRVFfMF9BTl9TSV9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEzNzUsIDAuMTI2MjUsIDAuMTA3NSwgMC4wOTUsIDAuMDc2MjUsIDAuMDUzNzUsIDAuMDMyNSIsIFwKLSAgICAgICAgICAiMC4xNDg3NSwgMC4xMzc1LCAwLjExODc1LCAwLjEwNjI1LCAwLjA4NzUsIDAuMDY1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjE2NzUsIDAuMTUsIDAuMTM3NSwgMC4xMTg3NSwgMC4xMDYyNSwgMC4wODM3NSwgMC4wNjI1IiwgXAotICAgICAgICAgICIwLjE4LCAwLjE2ODc1LCAwLjE1LCAwLjEzNzUsIDAuMTE4NzUsIDAuMDk2MjUsIDAuMDc1IiwgXAotICAgICAgICAgICIwLjE5MjUsIDAuMTgxMjUsIDAuMTY4NzUsIDAuMTUsIDAuMTM3NSwgMC4xMDg3NSwgMC4wODc1IiwgXAotICAgICAgICAgICIwLjIyMTI1LCAwLjIwMzc1LCAwLjE5MTI1LCAwLjE3MjUsIDAuMTYsIDAuMTMxMjUsIDAuMTE2MjUiLCBcCi0gICAgICAgICAgIjAuMjM2MjUsIDAuMjI1LCAwLjIwNjI1LCAwLjE5Mzc1LCAwLjE3NSwgMC4xNTI1LCAwLjEzMTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRCYhRSZTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fRV9FUV8wX0FOX1NJX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTYyNSwgMC4xNTEyNSwgMC4xMzI1LCAwLjEyLCAwLjEwNzUsIDAuMDkxMjUsIDAuMDgyNSIsIFwKLSAgICAgICAgICAiMC4xNzM3NSwgMC4xNjI1LCAwLjE0Mzc1LCAwLjEzMTI1LCAwLjExODc1LCAwLjEwMjUsIDAuMDg3NSIsIFwKLSAgICAgICAgICAiMC4xODYyNSwgMC4xNzUsIDAuMTU2MjUsIDAuMTQzNzUsIDAuMTMxMjUsIDAuMTE1LCAwLjEwNjI1IiwgXAotICAgICAgICAgICIwLjE5ODc1LCAwLjE4NzUsIDAuMTc1LCAwLjE1NjI1LCAwLjE0Mzc1LCAwLjEyNzUsIDAuMTE4NzUiLCBcCi0gICAgICAgICAgIjAuMjExMjUsIDAuMiwgMC4xODc1LCAwLjE2ODc1LCAwLjE2MjUsIDAuMTQ2MjUsIDAuMTMxMjUiLCBcCi0gICAgICAgICAgIjAuMjMzNzUsIDAuMjIyNSwgMC4yMSwgMC4xOTEyNSwgMC4xNzg3NSwgMC4xNjI1LCAwLjE1Mzc1IiwgXAotICAgICAgICAgICIwLjI1NSwgMC4yNDM3NSwgMC4yMjUsIDAuMjEyNSwgMC4yLCAwLjE4Mzc1LCAwLjE2ODc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRCZFJlNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9FX0VRXzFfQU5fU0lfRVFfMSA9PSAxJ2IxIjsKLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMzc1LCAwLjEyNjI1LCAwLjEwNzUsIDAuMDg4NzUsIDAuMDc2MjUsIDAuMDQ3NSwgMC4wMjYyNSIsIFwKLSAgICAgICAgICAiMC4xNDg3NSwgMC4xMzEyNSwgMC4xMTg3NSwgMC4xLCAwLjA4NzUsIDAuMDU4NzUsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiMC4xNjEyNSwgMC4xNDM3NSwgMC4xMzEyNSwgMC4xMTI1LCAwLjEsIDAuMDcxMjUsIDAuMDUiLCBcCi0gICAgICAgICAgIjAuMTczNzUsIDAuMTU2MjUsIDAuMTQzNzUsIDAuMTI1LCAwLjExMjUsIDAuMDgzNzUsIDAuMDYyNSIsIFwKLSAgICAgICAgICAiMC4xODYyNSwgMC4xNjg3NSwgMC4xNTYyNSwgMC4xMzc1LCAwLjEyNSwgMC4wOTYyNSwgMC4wNzUiLCBcCi0gICAgICAgICAgIjAuMjAyNSwgMC4xOTEyNSwgMC4xNzI1LCAwLjE2LCAwLjE0MTI1LCAwLjExODc1LCAwLjA5NzUiLCBcCi0gICAgICAgICAgIjAuMjIzNzUsIDAuMjA2MjUsIDAuMTkzNzUsIDAuMTc1LCAwLjE2MjUsIDAuMTMzNzUsIDAuMTEyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiRCZFJiFTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzFfQU5fRV9FUV8xX0FOX1NJX0VRXzAgPT0gMSdiMSI7Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjE4NzUsIDAuMjA3NSwgMC4xODg3NSwgMC4xNzYyNSwgMC4xNjM3NSwgMC4xNDc1LCAwLjEzMjUiLCBcCi0gICAgICAgICAgIjAuMjMsIDAuMjE4NzUsIDAuMjA2MjUsIDAuMTg3NSwgMC4xNzUsIDAuMTU4NzUsIDAuMTQzNzUiLCBcCi0gICAgICAgICAgIjAuMjQ4NzUsIDAuMjMxMjUsIDAuMjE4NzUsIDAuMiwgMC4xODc1LCAwLjE3MTI1LCAwLjE1NjI1IiwgXAotICAgICAgICAgICIwLjI2MTI1LCAwLjI1LCAwLjIzMTI1LCAwLjIxODc1LCAwLjIwNjI1LCAwLjE5LCAwLjE3NSIsIFwKLSAgICAgICAgICAiMC4yNzM3NSwgMC4yNjI1LCAwLjI1LCAwLjIzMTI1LCAwLjIxODc1LCAwLjIwMjUsIDAuMTg3NSIsIFwKLSAgICAgICAgICAiMC4yOTYyNSwgMC4yODUsIDAuMjcyNSwgMC4yNTM3NSwgMC4yNDEyNSwgMC4yMjUsIDAuMjEiLCBcCi0gICAgICAgICAgIjAuMzE3NSwgMC4zMDYyNSwgMC4yODc1LCAwLjI3NSwgMC4yNTYyNSwgMC4yNCwgMC4yMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFNJKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA4NDMyMzQ7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwODM5NTQyOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDg0MzIzNDsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDMxMTYsIDAuMDAzMDk3LCAwLjAwMzA4NywgMC4wMDMwOCwgMC4wMDMwNzUsIDAuMDAzMDY5LCAwLjAwMzA2NSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNTE3OCwgMC4wMDUxNjgsIDAuMDA1MTYyLCAwLjAwNTE1OSwgMC4wMDUxNTYsIDAuMDA1MTUzLCAwLjAwNTE1MSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJTRSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4xMTI1LCAtMC4xMDEyNSwgLTAuMDg4NzUsIC0wLjA4MjUsIC0wLjA3LCAtMC4wNTM3NSwgLTAuMDQ1IiwgXAotICAgICAgICAgICItMC4xMjM3NSwgLTAuMTEyNSwgLTAuMSwgLTAuMDkzNzUsIC0wLjA4MTI1LCAtMC4wNjUsIC0wLjA1NjI1IiwgXAotICAgICAgICAgICItMC4xMzYyNSwgLTAuMTI1LCAtMC4xMTg3NSwgLTAuMTA2MjUsIC0wLjA5Mzc1LCAtMC4wNzc1LCAtMC4wNjg3NSIsIFwKLSAgICAgICAgICAiLTAuMTQ4NzUsIC0wLjE0Mzc1LCAtMC4xMzEyNSwgLTAuMTE4NzUsIC0wLjEwNjI1LCAtMC4wOSwgLTAuMDgxMjUiLCBcCi0gICAgICAgICAgIi0wLjE2MTI1LCAtMC4xNTYyNSwgLTAuMTQzNzUsIC0wLjEzMTI1LCAtMC4xMTg3NSwgLTAuMTA4NzUsIC0wLjA5Mzc1IiwgXAotICAgICAgICAgICItMC4xODM3NSwgLTAuMTcyNSwgLTAuMTY2MjUsIC0wLjE1Mzc1LCAtMC4xNDEyNSwgLTAuMTI1LCAtMC4xMTYyNSIsIFwKLSAgICAgICAgICAiLTAuMjA1LCAtMC4xOTM3NSwgLTAuMTgxMjUsIC0wLjE2ODc1LCAtMC4xNjI1LCAtMC4xNDYyNSwgLTAuMTMxMjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMTI1LCAtMC4wMDEyNSwgMC4wMTEyNSwgMC4wMjM3NSwgMC4wMzYyNSwgMC4wNTg3NSwgMC4wOCIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxMjUsIDAsIDAuMDEyNSwgMC4wMzEyNSwgMC4wNDc1LCAwLjA2ODc1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDI1LCAtMC4wMTI1LCAwLCAwLjAxMjUsIDAuMDM1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDM3NSwgLTAuMDI1LCAtMC4wMTI1LCAwLCAwLjAyMjUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIi0wLjA2MTI1LCAtMC4wNSwgLTAuMDM3NSwgLTAuMDI1LCAtMC4wMDYyNSwgMC4wMSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDc3NSwgLTAuMDY2MjUsIC0wLjA1Mzc1LCAtMC4wNDEyNSwgLTAuMDI4NzUsIC0wLjAwNjI1LCAwLjAxNSIsIFwKLSAgICAgICAgICAiLTAuMDkyNSwgLTAuMDgxMjUsIC0wLjA2ODc1LCAtMC4wNTYyNSwgLTAuMDQzNzUsIC0wLjAyMTI1LCAwIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJTRSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNzUsIDAuMTYzNzUsIDAuMTQ1LCAwLjEzMjUsIDAuMTIsIDAuMTAzNzUsIDAuMDk1IiwgXAotICAgICAgICAgICIwLjE4NjI1LCAwLjE3NSwgMC4xNTYyNSwgMC4xNDM3NSwgMC4xMzEyNSwgMC4xMTUsIDAuMTA2MjUiLCBcCi0gICAgICAgICAgIjAuMTk4NzUsIDAuMTg3NSwgMC4xNzUsIDAuMTU2MjUsIDAuMTQzNzUsIDAuMTI3NSwgMC4xMTg3NSIsIFwKLSAgICAgICAgICAiMC4yMTEyNSwgMC4yLCAwLjE4NzUsIDAuMTY4NzUsIDAuMTYyNSwgMC4xNDYyNSwgMC4xMzEyNSIsIFwKLSAgICAgICAgICAiMC4yMywgMC4yMTI1LCAwLjIsIDAuMTg3NSwgMC4xNzUsIDAuMTU4NzUsIDAuMTQzNzUiLCBcCi0gICAgICAgICAgIjAuMjQ2MjUsIDAuMjM1LCAwLjIyMjUsIDAuMjAzNzUsIDAuMTk3NSwgMC4xODEyNSwgMC4xNjYyNSIsIFwKLSAgICAgICAgICAiMC4yNjc1LCAwLjI1NjI1LCAwLjIzNzUsIDAuMjI1LCAwLjIxMjUsIDAuMTk2MjUsIDAuMTg3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwNjI1LCAwLjA5NSwgMC4wNzYyNSwgMC4wNjM3NSwgMC4wNDUsIDAuMDIyNSwgMC4wMDEyNSIsIFwKLSAgICAgICAgICAiMC4xMTc1LCAwLjEwNjI1LCAwLjA4NzUsIDAuMDc1LCAwLjA1NjI1LCAwLjAzMzc1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMTMsIDAuMTE4NzUsIDAuMSwgMC4wODc1LCAwLjA2ODc1LCAwLjA0NjI1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiMC4xNDI1LCAwLjEzMTI1LCAwLjExMjUsIDAuMSwgMC4wODEyNSwgMC4wNTg3NSwgMC4wMzc1IiwgXAotICAgICAgICAgICIwLjE1NSwgMC4xNDM3NSwgMC4xMjUsIDAuMTEyNSwgMC4wOTM3NSwgMC4wNzEyNSwgMC4wNSIsIFwKLSAgICAgICAgICAiMC4xNzc1LCAwLjE2LCAwLjE0NzUsIDAuMTI4NzUsIDAuMTE2MjUsIDAuMDg3NSwgMC4wNzI1IiwgXAotICAgICAgICAgICIwLjE5MjUsIDAuMTgxMjUsIDAuMTYyNSwgMC4xNSwgMC4xMzEyNSwgMC4xMDg3NSwgMC4wODc1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBTRURGRkhRWDggKgotICogLS0tLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChTRURGRkhRWDgpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC44NDMzODU7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgZmYgKE4zMCxRQklOVCkgewotICAgIG5leHRfc3RhdGUgOiAiKChTRSBTSSkgKyAoIVNFICgoRSBEKSArICghRSAoISghTjMwKSkpKSkpIjsKLSAgICBjbG9ja2VkX29uIDogIkNLIjsKLSAgfQotICBwaW4oQ0spICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDU3NjM2MTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA1NzYwNjU7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNTc2MzYxOwotICAgIGNsb2NrIDogdHJ1ZTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDMyNzYsIDAuMDAzMjYyLCAwLjAwMzI1MSwgMC4wMDMyNDQsIDAuMDAzMjM4LCAwLjAwMzIzMSwgMC4wMDMyMyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNTcsIDAuMDA1Njg5LCAwLjAwNTY3OSwgMC4wMDU2NzQsIDAuMDA1NjczLCAwLjAwNTY4LCAwLjAwNTY4MiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQmIUUmU0UmIVNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9FX0VRXzBfQU5fU0VfRVFfMV9BTl9TSV9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMjgyNzEsIDAuMjk0NDMsIDAuMzA5ODcxLCAwLjMyNTQxLCAwLjM0MDQ5MiwgMC4zNjQ4MjIsIDAuMzg1NyIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMjA2Nzg2LCAwLjIxODE0OCwgMC4yMzMxMywgMC4yNDgxMDIsIDAuMjYyNzU0LCAwLjI4NTQ0NSwgMC4zMDQyNjgiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEQpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDg4MzkyNjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA4ODAyNTY7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwODgzOTI2OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzk4OSwgMC4wMDM5NzEsIDAuMDAzOTYyLCAwLjAwMzk1NiwgMC4wMDM5NTIsIDAuMDAzOTQ3LCAwLjAwMzk0NCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNjcwNSwgMC4wMDY2OTUsIDAuMDA2NjkxLCAwLjAwNjY4OSwgMC4wMDY2ODcsIDAuMDA2Njg0LCAwLjAwNjY4MSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJFJiFTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJFX0VRXzFfQU5fU0VfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4xODc1LCAtMC4xNzYyNSwgLTAuMTcsIC0wLjE1NzUsIC0wLjE0NSwgLTAuMTM1LCAtMC4xMjYyNSIsIFwKLSAgICAgICAgICAiLTAuMTk4NzUsIC0wLjE4NzUsIC0wLjE4MTI1LCAtMC4xNjg3NSwgLTAuMTU2MjUsIC0wLjE0NjI1LCAtMC4xMzc1IiwgXAotICAgICAgICAgICItMC4yMTEyNSwgLTAuMjA2MjUsIC0wLjE5Mzc1LCAtMC4xODEyNSwgLTAuMTc1LCAtMC4xNTg3NSwgLTAuMTUiLCBcCi0gICAgICAgICAgIi0wLjIyMzc1LCAtMC4yMTg3NSwgLTAuMjA2MjUsIC0wLjE5Mzc1LCAtMC4xODc1LCAtMC4xNzEyNSwgLTAuMTYyNSIsIFwKLSAgICAgICAgICAiLTAuMjQyNSwgLTAuMjMxMjUsIC0wLjIxODc1LCAtMC4yMDYyNSwgLTAuMiwgLTAuMTgzNzUsIC0wLjE3NSIsIFwKLSAgICAgICAgICAiLTAuMjU4NzUsIC0wLjI1Mzc1LCAtMC4yNDEyNSwgLTAuMjI4NzUsIC0wLjIyMjUsIC0wLjIwNjI1LCAtMC4xOTc1IiwgXAotICAgICAgICAgICItMC4yOCwgLTAuMjY4NzUsIC0wLjI1NjI1LCAtMC4yNSwgLTAuMjM3NSwgLTAuMjI3NSwgLTAuMjEyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAzMTI1LCAtMC4wMiwgLTAuMDA3NSwgMC4wMDUsIDAuMDExMjUsIDAuMDI3NSwgMC4wNDI1IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLCAwLjAxNjI1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA0Mzc1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIDAuMDAzNzUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjA2NzUsIC0wLjA1NjI1LCAtMC4wNDM3NSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDA4NzUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA4LCAtMC4wNjg3NSwgLTAuMDU2MjUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMjEyNSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA5NjI1LCAtMC4wODUsIC0wLjA3MjUsIC0wLjA2LCAtMC4wNTM3NSwgLTAuMDM3NSwgLTAuMDIyNSIsIFwKLSAgICAgICAgICAiLTAuMTA1LCAtMC4wOTM3NSwgLTAuMDgxMjUsIC0wLjA3NSwgLTAuMDYyNSwgLTAuMDUyNSwgLTAuMDM3NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiRSYhU0UiOwotICAgICAgc2RmX2NvbmQgOiAiRV9FUV8xX0FOX1NFX0VRXzAgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjkzNzUsIDAuMjc2MjUsIDAuMjYzNzUsIDAuMjQ1LCAwLjIzMjUsIDAuMjE2MjUsIDAuMjAxMjUiLCBcCi0gICAgICAgICAgIjAuMzA1LCAwLjI5Mzc1LCAwLjI3NSwgMC4yNTYyNSwgMC4yNDM3NSwgMC4yMjc1LCAwLjIxMjUiLCBcCi0gICAgICAgICAgIjAuMzE3NSwgMC4zMDYyNSwgMC4yODc1LCAwLjI2ODc1LCAwLjI1NjI1LCAwLjI0LCAwLjIyNSIsIFwKLSAgICAgICAgICAiMC4zMywgMC4zMTg3NSwgMC4zLCAwLjI4NzUsIDAuMjc1LCAwLjI1MjUsIDAuMjM3NSIsIFwKLSAgICAgICAgICAiMC4zNDI1LCAwLjMzMTI1LCAwLjMxMjUsIDAuMywgMC4yODc1LCAwLjI2NSwgMC4yNSIsIFwKLSAgICAgICAgICAiMC4zNjUsIDAuMzUzNzUsIDAuMzM1LCAwLjMyMjUsIDAuMzAzNzUsIDAuMjg3NSwgMC4yNzI1IiwgXAotICAgICAgICAgICIwLjM4NjI1LCAwLjM2ODc1LCAwLjM1NjI1LCAwLjMzNzUsIDAuMzI1LCAwLjMwODc1LCAwLjI5Mzc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMiwgMC4xODg3NSwgMC4xNzYyNSwgMC4xNTc1LCAwLjEzODc1LCAwLjExNjI1LCAwLjA5NSIsIFwKLSAgICAgICAgICAiMC4yMTEyNSwgMC4yLCAwLjE4NzUsIDAuMTY4NzUsIDAuMTUsIDAuMTI3NSwgMC4xMDYyNSIsIFwKLSAgICAgICAgICAiMC4yMjM3NSwgMC4yMTI1LCAwLjIsIDAuMTgxMjUsIDAuMTYyNSwgMC4xNCwgMC4xMTg3NSIsIFwKLSAgICAgICAgICAiMC4yMzYyNSwgMC4yMjUsIDAuMjEyNSwgMC4xOTM3NSwgMC4xNzUsIDAuMTUyNSwgMC4xMzEyNSIsIFwKLSAgICAgICAgICAiMC4yNDg3NSwgMC4yMzc1LCAwLjIyNSwgMC4yMDYyNSwgMC4xODc1LCAwLjE2NSwgMC4xNDM3NSIsIFwKLSAgICAgICAgICAiMC4yNzEyNSwgMC4yNiwgMC4yNDEyNSwgMC4yMjI1LCAwLjIxLCAwLjE4NzUsIDAuMTY2MjUiLCBcCi0gICAgICAgICAgIjAuMjg2MjUsIDAuMjc1LCAwLjI1NjI1LCAwLjI0Mzc1LCAwLjIyNSwgMC4yMDI1LCAwLjE4MTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihFKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE1NDc1NzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE1NDY1MTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE1NDc1NzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDYyNzUsIDAuMDA2MjY3LCAwLjAwNjI2NCwgMC4wMDYyNTksIDAuMDA2MjU3LCAwLjAwNjI1NCwgMC4wMDYyNTMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDc0MzUsIDAuMDA3NDEyLCAwLjAwNzM5NywgMC4wMDczODgsIDAuMDA3MzgsIDAuMDA3MzcyLCAwLjAwNzM2OCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhU0UiOwotICAgICAgc2RmX2NvbmQgOiAiU0UgPT0gMSdiMCI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMTg3NSwgLTAuMTc2MjUsIC0wLjE1NzUsIC0wLjE0NSwgLTAuMTI2MjUsIC0wLjEwMzc1LCAtMC4wODI1IiwgXAotICAgICAgICAgICItMC4xOTg3NSwgLTAuMTg3NSwgLTAuMTY4NzUsIC0wLjE1NjI1LCAtMC4xMzc1LCAtMC4xMTUsIC0wLjA5Mzc1IiwgXAotICAgICAgICAgICItMC4yMTEyNSwgLTAuMiwgLTAuMTg3NSwgLTAuMTY4NzUsIC0wLjE1NjI1LCAtMC4xMzM3NSwgLTAuMTEyNSIsIFwKLSAgICAgICAgICAiLTAuMjMsIC0wLjIxODc1LCAtMC4yLCAtMC4xODc1LCAtMC4xNjg3NSwgLTAuMTQ2MjUsIC0wLjEyNSIsIFwKLSAgICAgICAgICAiLTAuMjQyNSwgLTAuMjMxMjUsIC0wLjIxODc1LCAtMC4yLCAtMC4xODc1LCAtMC4xNTg3NSwgLTAuMTQzNzUiLCBcCi0gICAgICAgICAgIi0wLjI2NSwgLTAuMjUzNzUsIC0wLjI0MTI1LCAtMC4yMjI1LCAtMC4yMSwgLTAuMTgxMjUsIC0wLjE2NjI1IiwgXAotICAgICAgICAgICItMC4yOCwgLTAuMjY4NzUsIC0wLjI1NjI1LCAtMC4yMzc1LCAtMC4yMjUsIC0wLjIwMjUsIC0wLjE4MTI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDE4NzUsIC0wLjAwNzUsIDAuMDA1LCAwLjAxMTI1LCAwLjAyMzc1LCAwLjA0LCAwLjA0ODc1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLjAwNjI1LCAwLjAxMjUsIDAuMDI4NzUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAsIDAuMDE2MjUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjA1NSwgLTAuMDQzNzUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgMC4wMDM3NSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDY3NSwgLTAuMDU2MjUsIC0wLjA0Mzc1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIC0wLjAwODc1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wNzc1LCAtMC4wNjYyNSwgLTAuMDYsIC0wLjA0NzUsIC0wLjAzNSwgLTAuMDI1LCAtMC4wMSIsIFwKLSAgICAgICAgICAiLTAuMDkyNSwgLTAuMDgxMjUsIC0wLjA2ODc1LCAtMC4wNjI1LCAtMC4wNSwgLTAuMDMzNzUsIC0wLjAyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIVNFIjsKLSAgICAgIHNkZl9jb25kIDogIlNFID09IDEnYjAiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI4MTI1LCAwLjI2Mzc1LCAwLjI1MTI1LCAwLjIzMjUsIDAuMjIsIDAuMjAzNzUsIDAuMTg4NzUiLCBcCi0gICAgICAgICAgIjAuMjkyNSwgMC4yNzUsIDAuMjYyNSwgMC4yNDM3NSwgMC4yMzEyNSwgMC4yMTUsIDAuMiIsIFwKLSAgICAgICAgICAiMC4zMDUsIDAuMjkzNzUsIDAuMjc1LCAwLjI1NjI1LCAwLjI0Mzc1LCAwLjIyNzUsIDAuMjEyNSIsIFwKLSAgICAgICAgICAiMC4zMTc1LCAwLjMwNjI1LCAwLjI4NzUsIDAuMjY4NzUsIDAuMjU2MjUsIDAuMjQsIDAuMjI1IiwgXAotICAgICAgICAgICIwLjMzLCAwLjMxODc1LCAwLjMsIDAuMjg3NSwgMC4yNzUsIDAuMjUyNSwgMC4yMzc1IiwgXAotICAgICAgICAgICIwLjM1MjUsIDAuMzQxMjUsIDAuMzIyNSwgMC4zMDM3NSwgMC4yOTEyNSwgMC4yNzUsIDAuMjYiLCBcCi0gICAgICAgICAgIjAuMzY3NSwgMC4zNTYyNSwgMC4zNDM3NSwgMC4zMjUsIDAuMzEyNSwgMC4yOTYyNSwgMC4yODEyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIzMTI1LCAwLjIyLCAwLjIxMzc1LCAwLjIwMTI1LCAwLjE4ODc1LCAwLjE3ODc1LCAwLjE2Mzc1IiwgXAotICAgICAgICAgICIwLjI0MjUsIDAuMjM3NSwgMC4yMjUsIDAuMjEyNSwgMC4yMDYyNSwgMC4xOSwgMC4xNzUiLCBcCi0gICAgICAgICAgIjAuMjYxMjUsIDAuMjUsIDAuMjM3NSwgMC4yMjUsIDAuMjE4NzUsIDAuMjAyNSwgMC4xOTM3NSIsIFwKLSAgICAgICAgICAiMC4yNzM3NSwgMC4yNjI1LCAwLjI1LCAwLjI0Mzc1LCAwLjIzMTI1LCAwLjIyMTI1LCAwLjIwNjI1IiwgXAotICAgICAgICAgICIwLjI4NjI1LCAwLjI3NSwgMC4yNjg3NSwgMC4yNTYyNSwgMC4yNDM3NSwgMC4yMzM3NSwgMC4yMTg3NSIsIFwKLSAgICAgICAgICAiMC4zMDg3NSwgMC4yOTc1LCAwLjI4NSwgMC4yNzI1LCAwLjI2NjI1LCAwLjI1LCAwLjI0MTI1IiwgXAotICAgICAgICAgICIwLjMyMzc1LCAwLjMxMjUsIDAuMywgMC4yODc1LCAwLjI4MTI1LCAwLjI2NSwgMC4yNTYyNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAxLjA1NDMxOwotICAgIGZ1bmN0aW9uIDogIk4zMCI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3NlbnNlIDogbm9uX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiByaXNpbmdfZWRnZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yNTE2NzgsIDAuMzE5OTQsIDAuMzgzMDMyLCAwLjQyODAzLCAwLjUwMDAxLCAwLjU2Mjk4MiwgMC42NTI5NzYiLCBcCi0gICAgICAgICAgIjAuMjYzNjE1LCAwLjMzMTg1OSwgMC4zOTQ5NTksIDAuNDM5OTYxLCAwLjUxMTk1OCwgMC41NzQ5MSwgMC42NjQ4ODYiLCBcCi0gICAgICAgICAgIjAuMjc4ODcxLCAwLjM0NzEyLCAwLjQxMDIyOSwgMC40NTUyMzQsIDAuNTI3MjA3LCAwLjU5MDE3MiwgMC42ODAxNTQiLCBcCi0gICAgICAgICAgIjAuMjk0NDE3LCAwLjM2MjY1MSwgMC40MjU3NTMsIDAuNDcwNzcsIDAuNTQyNzM0LCAwLjYwNTcsIDAuNjk1NjgxIiwgXAotICAgICAgICAgICIwLjMwOTY0MSwgMC4zNzc4ODUsIDAuNDQwOTg1LCAwLjQ4NTk4NywgMC41NTc5ODcsIDAuNjIwOTM3LCAwLjcxMDkxMyIsIFwKLSAgICAgICAgICAiMC4zMzM5MTMsIDAuNDAyMTU1LCAwLjQ2NTI1NSwgMC41MTAyNTMsIDAuNTgyMjMyLCAwLjY0NTIwNywgMC43MzUxNzkiLCBcCi0gICAgICAgICAgIjAuMzU0NjI4LCAwLjQyMjg3MywgMC40ODU5NzMsIDAuNTMwOTczLCAwLjYwMjk2NCwgMC42NjU5MjMsIDAuNzU1OSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0Mjk3LCAwLjE2MjYsIDAuMjg4NDQ2LCAwLjM3OTM5MywgMC41MjU2MDcsIDAuNjUyNzIyLCAwLjgzNzM0NyIsIFwKLSAgICAgICAgICAiMC4wNDI5NTIsIDAuMTYyNTkyLCAwLjI4ODQzMywgMC4zNzkzOTMsIDAuNTI1NzQ5LCAwLjY1Mjc2NywgMC44MzcyNTgiLCBcCi0gICAgICAgICAgIjAuMDQzMDIsIDAuMTYyNTk5LCAwLjI4ODQ0OSwgMC4zNzkyNDEsIDAuNTI1NTk3LCAwLjY1Mzc4NiwgMC44MzcyODYiLCBcCi0gICAgICAgICAgIjAuMDQyOTM3LCAwLjE2MjU4OSwgMC4yODg0NjEsIDAuMzc5MjQ2LCAwLjUyNDc4OCwgMC42NTM3MjQsIDAuODM3Mjc5IiwgXAotICAgICAgICAgICIwLjA0Mjk1MSwgMC4xNjI1OTIsIDAuMjg4NDI5LCAwLjM3OTM5MiwgMC41MjU3MzUsIDAuNjUyNzYxLCAwLjgzNzI1OSIsIFwKLSAgICAgICAgICAiMC4wNDI5NDEsIDAuMTYyNTg5LCAwLjI4ODQ0MywgMC4zNzkzNzIsIDAuNTI1NjAxLCAwLjY1MzQ5LCAwLjgzNzIzOSIsIFwKLSAgICAgICAgICAiMC4wNDI5NzMsIDAuMTYyNTk4LCAwLjI4ODQ0NCwgMC4zNzkzOSwgMC41MjU3NSwgMC42NTI3NDksIDAuODM3MjYiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yODI3MjUsIDAuMzYxMTY2LCAwLjQzNTY1OSwgMC40ODg3OSwgMC41NzM3NSwgMC42NDgxMywgMC43NTQzMDMiLCBcCi0gICAgICAgICAgIjAuMjk0NDQ0LCAwLjM3Mjg4LCAwLjQ0NzM3OCwgMC41MDA1MSwgMC41ODU0NywgMC42NTk4NTEsIDAuNzY2MDIzIiwgXAotICAgICAgICAgICIwLjMwOTg4NSwgMC4zODgzMjIsIDAuNDYyODIsIDAuNTE1OTUxLCAwLjYwMDkxMSwgMC42NzUyOTIsIDAuNzgxNDY0IiwgXAotICAgICAgICAgICIwLjMyNTQxNSwgMC40MDM4MzksIDAuNDc4MzM2LCAwLjUzMTQ2MSwgMC42MTY0MjMsIDAuNjkwNzk0LCAwLjc5Njk3NCIsIFwKLSAgICAgICAgICAiMC4zNDA1MDEsIDAuNDE4OTUxLCAwLjQ5MzQzNiwgMC41NDY1NywgMC42MzE1MjksIDAuNzA1OTAyLCAwLjgxMjA3OSIsIFwKLSAgICAgICAgICAiMC4zNjQ4MzEsIDAuNDQzMjcyLCAwLjUxNzc2OCwgMC41NzA4OTUsIDAuNjU1ODU4LCAwLjczMDIzNywgMC44MzY0MTUiLCBcCi0gICAgICAgICAgIjAuMzg1NzA5LCAwLjQ2NDE0NiwgMC41Mzg2NDQsIDAuNTkxNzc2LCAwLjY3NjczNCwgMC43NTEwODcsIDAuODU3MjgzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQzOTk4LCAwLjE4NTE3LCAwLjMzMTIxOCwgMC40MzY5MTMsIDAuNjA1NDU1LCAwLjc1MjgyNCwgMC45NjczMjgiLCBcCi0gICAgICAgICAgIjAuMDQzOTY2LCAwLjE4NTE1OSwgMC4zMzEyMjMsIDAuNDM3MTQ4LCAwLjYwNTQ1NCwgMC43NTMzMDQsIDAuOTY3MzI4IiwgXAotICAgICAgICAgICIwLjA0Mzk2NywgMC4xODUxNiwgMC4zMzEyMjEsIDAuNDM3MTQ5LCAwLjYwNTQ1NCwgMC43NTM0MjgsIDAuOTY3MzI4IiwgXAotICAgICAgICAgICIwLjA0MzkyNywgMC4xODUxMTMsIDAuMzMxMTc3LCAwLjQzNzA2MiwgMC42MDUzOCwgMC43NTQyNjYsIDAuOTY3MzI5IiwgXAotICAgICAgICAgICIwLjA0Mzk1NSwgMC4xODUyNzIsIDAuMzMxMjAxLCAwLjQzNzE1MiwgMC42MDU0MTMsIDAuNzUzOTg2LCAwLjk2NzMyNSIsIFwKLSAgICAgICAgICAiMC4wNDM5OSwgMC4xODUxODIsIDAuMzMxMjQsIDAuNDM3MTQ5LCAwLjYwNTQ1NiwgMC43NTQyNjMsIDAuOTY3MzI3IiwgXAotICAgICAgICAgICIwLjA0Mzk3OCwgMC4xODUxNjgsIDAuMzMxMjE2LCAwLjQzNjQwNywgMC42MDU0NDksIDAuNzU0NDQ4LCAwLjk2NzMxMiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxNzYwNSwgMC4wMTc4NDYsIDAuMDE3ODk4LCAwLjAxNzkxNSwgMC4wMTc5MywgMC4wMTc5MzgsIDAuMDE3OTQ2IiwgXAotICAgICAgICAgICIwLjAxNzU4OSwgMC4wMTc4MzQsIDAuMDE3ODg2LCAwLjAxNzkwMywgMC4wMTc5MTgsIDAuMDE3OTI1LCAwLjAxNzkzNCIsIFwKLSAgICAgICAgICAiMC4wMTc1NzcsIDAuMDE3ODIsIDAuMDE3ODczLCAwLjAxNzg5LCAwLjAxNzkwNSwgMC4wMTc5MTQsIDAuMDE3OTE5IiwgXAotICAgICAgICAgICIwLjAxNzU2OCwgMC4wMTc4MTIsIDAuMDE3ODYzLCAwLjAxNzg4MywgMC4wMTc4OTUsIDAuMDE3OTAzLCAwLjAxNzkxMiIsIFwKLSAgICAgICAgICAiMC4wMTc1NTgsIDAuMDE3ODAzLCAwLjAxNzg1MywgMC4wMTc4NzMsIDAuMDE3ODg3LCAwLjAxNzg5NCwgMC4wMTc5MDIiLCBcCi0gICAgICAgICAgIjAuMDE3NTQ1LCAwLjAxNzc5LCAwLjAxNzg0MiwgMC4wMTc4NiwgMC4wMTc4NzUsIDAuMDE3ODgzLCAwLjAxNzg4OSIsIFwKLSAgICAgICAgICAiMC4wMTc1NDQsIDAuMDE3Nzg3LCAwLjAxNzgzOSwgMC4wMTc4NTYsIDAuMDE3ODcxLCAwLjAxNzg3NywgMC4wMTc4ODYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxODczLCAwLjAxOTA2LCAwLjAxOTEzNiwgMC4wMTkxNjEsIDAuMDE5MTg1LCAwLjAxOTE5NywgMC4wMTkyMDgiLCBcCi0gICAgICAgICAgIjAuMDE4NzE1LCAwLjAxOTA0NSwgMC4wMTkxMjIsIDAuMDE5MTQ3LCAwLjAxOTE3MSwgMC4wMTkxODMsIDAuMDE5MTk0IiwgXAotICAgICAgICAgICIwLjAxODcwNCwgMC4wMTkwMzQsIDAuMDE5MTEsIDAuMDE5MTM2LCAwLjAxOTE1OSwgMC4wMTkxNzIsIDAuMDE5MTgzIiwgXAotICAgICAgICAgICIwLjAxODcyMywgMC4wMTkwNDEsIDAuMDE5MTE0LCAwLjAxOTEzOSwgMC4wMTkxNjEsIDAuMDE5MTczLCAwLjAxOTE4MyIsIFwKLSAgICAgICAgICAiMC4wMTg3LCAwLjAxOTAyOCwgMC4wMTkxMDMsIDAuMDE5MTI5LCAwLjAxOTE1MiwgMC4wMTkxNjQsIDAuMDE5MTc1IiwgXAotICAgICAgICAgICIwLjAxODY5MywgMC4wMTkwMjMsIDAuMDE5MSwgMC4wMTkxMjUsIDAuMDE5MTQ5LCAwLjAxOTE2MSwgMC4wMTkxNzIiLCBcCi0gICAgICAgICAgIjAuMDE4NzA2LCAwLjAxOTAzNiwgMC4wMTkxMTEsIDAuMDE5MTM2LCAwLjAxOTE1OSwgMC4wMTkxNzEsIDAuMDE5MTgyIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTRSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxMzgyODU7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxMzgyMTk7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxMzgyODU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA0NzA1LCAwLjAwNDcwMSwgMC4wMDQ3MDQsIDAuMDA0NzA1LCAwLjAwNDcwNSwgMC4wMDQ3MDYsIDAuMDA0NzA1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA1NzExLCAwLjAwNTY4NywgMC4wMDU2NjksIDAuMDA1NjU4LCAwLjAwNTY1MSwgMC4wMDU2NDEsIDAuMDA1NjM3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEJiFFJiFTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fRV9FUV8wX0FOX1NJX0VRXzAgPT0gMSdiMSI7Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMTE4NzUsIC0wLjExMzc1LCAtMC4xMDEyNSwgLTAuMDg4NzUsIC0wLjA4MjUsIC0wLjA2NjI1LCAtMC4wNTc1IiwgXAotICAgICAgICAgICItMC4xMywgLTAuMTI1LCAtMC4xMTI1LCAtMC4xLCAtMC4wOTM3NSwgLTAuMDc3NSwgLTAuMDY4NzUiLCBcCi0gICAgICAgICAgIi0wLjE0ODc1LCAtMC4xMzc1LCAtMC4xMjUsIC0wLjExODc1LCAtMC4xMDYyNSwgLTAuMDk2MjUsIC0wLjA4MTI1IiwgXAotICAgICAgICAgICItMC4xNjEyNSwgLTAuMTUsIC0wLjE0Mzc1LCAtMC4xMzEyNSwgLTAuMTI1LCAtMC4xMDg3NSwgLTAuMSIsIFwKLSAgICAgICAgICAiLTAuMTczNzUsIC0wLjE2ODc1LCAtMC4xNTYyNSwgLTAuMTQzNzUsIC0wLjEzNzUsIC0wLjEyMTI1LCAtMC4xMTI1IiwgXAotICAgICAgICAgICItMC4xOTYyNSwgLTAuMTkxMjUsIC0wLjE3ODc1LCAtMC4xNjYyNSwgLTAuMTYsIC0wLjE0Mzc1LCAtMC4xMzUiLCBcCi0gICAgICAgICAgIi0wLjIxNzUsIC0wLjIwNjI1LCAtMC4xOTM3NSwgLTAuMTg3NSwgLTAuMTc1LCAtMC4xNjUsIC0wLjE1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEJiFFJlNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9FX0VRXzBfQU5fU0lfRVFfMSA9PSAxJ2IxIjsKLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLCAwLjAxMTI1LCAwLjAzLCAwLjA0MjUsIDAuMDU1LCAwLjA3MTI1LCAwLjA5MjUiLCBcCi0gICAgICAgICAgIi0wLjAxMTI1LCAwLCAwLjAxODc1LCAwLjAzMTI1LCAwLjA0Mzc1LCAwLjA2NjI1LCAwLjA4MTI1IiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDEyNSwgMC4wMDYyNSwgMC4wMTg3NSwgMC4wMzEyNSwgMC4wNTM3NSwgMC4wNjg3NSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAxODc1LCAtMC4wMDYyNSwgMC4wMDYyNSwgMC4wMTg3NSwgMC4wNDEyNSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDMxMjUsIC0wLjAxODc1LCAtMC4wMDYyNSwgMC4wMDYyNSwgMC4wMjg3NSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDU4NzUsIC0wLjA0NzUsIC0wLjAzNSwgLTAuMDIyNSwgLTAuMDEsIDAuMDEyNSwgMC4wMjc1IiwgXAotICAgICAgICAgICItMC4wNjc1LCAtMC4wNTYyNSwgLTAuMDQzNzUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAwMjUsIDAuMDEyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRCZFJlNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9FX0VRXzFfQU5fU0lfRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wODc1LCAtMC4wNzYyNSwgLTAuMDYzNzUsIC0wLjA1NzUsIC0wLjA0NSwgLTAuMDI4NzUsIC0wLjAyIiwgXAotICAgICAgICAgICItMC4wOTg3NSwgLTAuMDg3NSwgLTAuMDc1LCAtMC4wNjg3NSwgLTAuMDU2MjUsIC0wLjA0LCAtMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMTExMjUsIC0wLjEsIC0wLjA4NzUsIC0wLjA4MTI1LCAtMC4wNjg3NSwgLTAuMDUyNSwgLTAuMDQzNzUiLCBcCi0gICAgICAgICAgIi0wLjEyMzc1LCAtMC4xMTg3NSwgLTAuMTA2MjUsIC0wLjA5Mzc1LCAtMC4wODEyNSwgLTAuMDY1LCAtMC4wNTYyNSIsIFwKLSAgICAgICAgICAiLTAuMTM2MjUsIC0wLjEzMTI1LCAtMC4xMTg3NSwgLTAuMTA2MjUsIC0wLjA5Mzc1LCAtMC4wODM3NSwgLTAuMDY4NzUiLCBcCi0gICAgICAgICAgIi0wLjE1ODc1LCAtMC4xNDc1LCAtMC4xMzUsIC0wLjEyODc1LCAtMC4xMTYyNSwgLTAuMSwgLTAuMDkxMjUiLCBcCi0gICAgICAgICAgIi0wLjE4LCAtMC4xNjg3NSwgLTAuMTU2MjUsIC0wLjE0Mzc1LCAtMC4xMzc1LCAtMC4xMjEyNSwgLTAuMTA2MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiRCZFJiFTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzFfQU5fRV9FUV8xX0FOX1NJX0VRXzAgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDM3NSwgLTAuMDI2MjUsIC0wLjAwNzUsIDAuMDA1LCAwLjAxNzUsIDAuMDQsIDAuMDYxMjUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wMzc1LCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAuMDA2MjUsIDAuMDI4NzUsIDAuMDUiLCBcCi0gICAgICAgICAgIi0wLjA2MTI1LCAtMC4wNSwgLTAuMDM3NSwgLTAuMDI1LCAtMC4wMDYyNSwgMC4wMTYyNSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDgsIC0wLjA2ODc1LCAtMC4wNSwgLTAuMDM3NSwgLTAuMDI1LCAtMC4wMDI1LCAwLjAxODc1IiwgXAotICAgICAgICAgICItMC4wOTI1LCAtMC4wODEyNSwgLTAuMDY4NzUsIC0wLjA1NjI1LCAtMC4wMzc1LCAtMC4wMTUsIDAiLCBcCi0gICAgICAgICAgIi0wLjExNSwgLTAuMTAzNzUsIC0wLjA5MTI1LCAtMC4wNzg3NSwgLTAuMDYsIC0wLjAzNzUsIC0wLjAyMjUiLCBcCi0gICAgICAgICAgIi0wLjEzNjI1LCAtMC4xMjUsIC0wLjExMjUsIC0wLjA5Mzc1LCAtMC4wODEyNSwgLTAuMDU4NzUsIC0wLjAzNzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEJiFFJiFTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fRV9FUV8wX0FOX1NJX0VRXzAgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTM3NSwgMC4xMiwgMC4xMDc1LCAwLjA4ODc1LCAwLjA3NjI1LCAwLjA0NzUsIDAuMDMyNSIsIFwKLSAgICAgICAgICAiMC4xNDg3NSwgMC4xMzEyNSwgMC4xMTg3NSwgMC4xLCAwLjA4NzUsIDAuMDY1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjE2MTI1LCAwLjE1LCAwLjEzMTI1LCAwLjExODc1LCAwLjEsIDAuMDc3NSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiMC4xOCwgMC4xNjI1LCAwLjE1LCAwLjEzMTI1LCAwLjExODc1LCAwLjA5NjI1LCAwLjA3NSIsIFwKLSAgICAgICAgICAiMC4xOTI1LCAwLjE4MTI1LCAwLjE2MjUsIDAuMTUsIDAuMTMxMjUsIDAuMTA4NzUsIDAuMDg3NSIsIFwKLSAgICAgICAgICAiMC4yMTUsIDAuMjAzNzUsIDAuMTg1LCAwLjE3MjUsIDAuMTUzNzUsIDAuMTMxMjUsIDAuMTEiLCBcCi0gICAgICAgICAgIjAuMjM2MjUsIDAuMjI1LCAwLjIwNjI1LCAwLjE4NzUsIDAuMTc1LCAwLjE1MjUsIDAuMTMxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEJiFFJlNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9FX0VRXzBfQU5fU0lfRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNjI1LCAwLjE1MTI1LCAwLjEzMjUsIDAuMTIsIDAuMTA3NSwgMC4wOTEyNSwgMC4wNzYyNSIsIFwKLSAgICAgICAgICAiMC4xNzM3NSwgMC4xNTYyNSwgMC4xNDM3NSwgMC4xMzEyNSwgMC4xMTg3NSwgMC4xMDI1LCAwLjA4NzUiLCBcCi0gICAgICAgICAgIjAuMTg2MjUsIDAuMTc1LCAwLjE1NjI1LCAwLjE0Mzc1LCAwLjEzMTI1LCAwLjExNSwgMC4xIiwgXAotICAgICAgICAgICIwLjE5ODc1LCAwLjE4NzUsIDAuMTY4NzUsIDAuMTU2MjUsIDAuMTQzNzUsIDAuMTI3NSwgMC4xMTI1IiwgXAotICAgICAgICAgICIwLjIxMTI1LCAwLjIsIDAuMTgxMjUsIDAuMTY4NzUsIDAuMTU2MjUsIDAuMTQsIDAuMTMxMjUiLCBcCi0gICAgICAgICAgIjAuMjMzNzUsIDAuMjIyNSwgMC4yMDM3NSwgMC4xOTEyNSwgMC4xNzg3NSwgMC4xNjI1LCAwLjE0NzUiLCBcCi0gICAgICAgICAgIjAuMjU1LCAwLjIzNzUsIDAuMjI1LCAwLjIxMjUsIDAuMiwgMC4xODM3NSwgMC4xNjg3NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUQmRSZTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fRV9FUV8xX0FOX1NJX0VRXzEgPT0gMSdiMSI7Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTMxMjUsIDAuMTIsIDAuMTAxMjUsIDAuMDg4NzUsIDAuMDcsIDAuMDQ3NSwgMC4wMjYyNSIsIFwKLSAgICAgICAgICAiMC4xNDI1LCAwLjEzMTI1LCAwLjExMjUsIDAuMDkzNzUsIDAuMDgxMjUsIDAuMDUyNSwgMC4wMzc1IiwgXAotICAgICAgICAgICIwLjE1NSwgMC4xNDM3NSwgMC4xMjUsIDAuMTA2MjUsIDAuMDkzNzUsIDAuMDY1LCAwLjA1IiwgXAotICAgICAgICAgICIwLjE2NzUsIDAuMTU2MjUsIDAuMTM3NSwgMC4xMjUsIDAuMTA2MjUsIDAuMDgzNzUsIDAuMDYyNSIsIFwKLSAgICAgICAgICAiMC4xOCwgMC4xNjg3NSwgMC4xNSwgMC4xMzEyNSwgMC4xMTg3NSwgMC4wOTYyNSwgMC4wNzUiLCBcCi0gICAgICAgICAgIjAuMTk2MjUsIDAuMTg1LCAwLjE3MjUsIDAuMTUzNzUsIDAuMTQxMjUsIDAuMTEyNSwgMC4wOTEyNSIsIFwKLSAgICAgICAgICAiMC4yMTc1LCAwLjIwNjI1LCAwLjE4NzUsIDAuMTc1LCAwLjE1NjI1LCAwLjEzMzc1LCAwLjExMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIkQmRSYhU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8xX0FOX0VfRVFfMV9BTl9TSV9FUV8wID09IDEnYjEiOwotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIyNSwgMC4yMTM3NSwgMC4xOTUsIDAuMTc2MjUsIDAuMTYzNzUsIDAuMTQ3NSwgMC4xMzI1IiwgXAotICAgICAgICAgICIwLjIzNjI1LCAwLjIyNSwgMC4yMDYyNSwgMC4xODc1LCAwLjE3NSwgMC4xNTg3NSwgMC4xNDM3NSIsIFwKLSAgICAgICAgICAiMC4yNDg3NSwgMC4yMzc1LCAwLjIxODc1LCAwLjIwNjI1LCAwLjE5Mzc1LCAwLjE3MTI1LCAwLjE2MjUiLCBcCi0gICAgICAgICAgIjAuMjY3NSwgMC4yNSwgMC4yMzc1LCAwLjIxODc1LCAwLjIwNjI1LCAwLjE5LCAwLjE3NSIsIFwKLSAgICAgICAgICAiMC4yOCwgMC4yNjg3NSwgMC4yNSwgMC4yMzEyNSwgMC4yMTg3NSwgMC4yMDI1LCAwLjE4NzUiLCBcCi0gICAgICAgICAgIjAuMzAyNSwgMC4yOTEyNSwgMC4yNzI1LCAwLjI1Mzc1LCAwLjI0MTI1LCAwLjIyNSwgMC4yMSIsIFwKLSAgICAgICAgICAiMC4zMTc1LCAwLjMwNjI1LCAwLjI4NzUsIDAuMjc1LCAwLjI2MjUsIDAuMjQsIDAuMjMxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFNJKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA4MjQ2OTg7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwODIxMjMzOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDgyNDY5ODsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDMwNjUsIDAuMDAzMDQ2LCAwLjAwMzAzNiwgMC4wMDMwMjksIDAuMDAzMDI0LCAwLjAwMzAxOCwgMC4wMDMwMTQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDUwNTgsIDAuMDA1MDQ4LCAwLjAwNTA0MywgMC4wMDUwMzksIDAuMDA1MDM2LCAwLjAwNTAzMiwgMC4wMDUwMyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJTRSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4xLCAtMC4wOTUsIC0wLjA4MjUsIC0wLjA3LCAtMC4wNTc1LCAtMC4wNDc1LCAtMC4wMzI1IiwgXAotICAgICAgICAgICItMC4xMTEyNSwgLTAuMTA2MjUsIC0wLjA5Mzc1LCAtMC4wODEyNSwgLTAuMDY4NzUsIC0wLjA1ODc1LCAtMC4wNDM3NSIsIFwKLSAgICAgICAgICAiLTAuMTMsIC0wLjExODc1LCAtMC4xMDYyNSwgLTAuMDkzNzUsIC0wLjA4NzUsIC0wLjA3MTI1LCAtMC4wNTYyNSIsIFwKLSAgICAgICAgICAiLTAuMTQyNSwgLTAuMTMxMjUsIC0wLjExODc1LCAtMC4xMDYyNSwgLTAuMSwgLTAuMDgzNzUsIC0wLjA2ODc1IiwgXAotICAgICAgICAgICItMC4xNTUsIC0wLjE0Mzc1LCAtMC4xMzEyNSwgLTAuMTE4NzUsIC0wLjExMjUsIC0wLjA5NjI1LCAtMC4wODEyNSIsIFwKLSAgICAgICAgICAiLTAuMTc3NSwgLTAuMTY2MjUsIC0wLjE1Mzc1LCAtMC4xNDEyNSwgLTAuMTM1LCAtMC4xMTg3NSwgLTAuMTAzNzUiLCBcCi0gICAgICAgICAgIi0wLjE5MjUsIC0wLjE4MTI1LCAtMC4xNjg3NSwgLTAuMTYyNSwgLTAuMTUsIC0wLjEzMzc1LCAtMC4xMjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMDYyNSwgMC4wMDUsIDAuMDIzNzUsIDAuMDM2MjUsIDAuMDQ4NzUsIDAuMDcxMjUsIDAuMDkyNSIsIFwKLSAgICAgICAgICAiLTAuMDE3NSwgLTAuMDA2MjUsIDAuMDEyNSwgMC4wMjUsIDAuMDM3NSwgMC4wNiwgMC4wODEyNSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAxODc1LCAwLCAwLjAxMjUsIDAuMDI1LCAwLjA0NzUsIDAuMDY4NzUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzMTI1LCAtMC4wMTI1LCAwLCAwLjAxMjUsIDAuMDM1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDM3NSwgLTAuMDI1LCAtMC4wMTI1LCAwLCAwLjAyMjUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIi0wLjA3MTI1LCAtMC4wNTM3NSwgLTAuMDQxMjUsIC0wLjAyODc1LCAtMC4wMTYyNSwgMC4wMDYyNSwgMC4wMjc1IiwgXAotICAgICAgICAgICItMC4wOCwgLTAuMDY4NzUsIC0wLjA1NjI1LCAtMC4wNDM3NSwgLTAuMDMxMjUsIC0wLjAwODc1LCAwLjAxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlNFIjsKLSAgICAgIHNkZl9jb25kIDogIlNFID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE3NSwgMC4xNjM3NSwgMC4xNDUsIDAuMTMyNSwgMC4xMiwgMC4xMDM3NSwgMC4wOTUiLCBcCi0gICAgICAgICAgIjAuMTg2MjUsIDAuMTc1LCAwLjE1NjI1LCAwLjE0Mzc1LCAwLjEzMTI1LCAwLjExNSwgMC4xMDYyNSIsIFwKLSAgICAgICAgICAiMC4xOTg3NSwgMC4xODc1LCAwLjE2ODc1LCAwLjE1NjI1LCAwLjE0Mzc1LCAwLjEyNzUsIDAuMTE4NzUiLCBcCi0gICAgICAgICAgIjAuMjExMjUsIDAuMiwgMC4xODc1LCAwLjE2ODc1LCAwLjE2MjUsIDAuMTQsIDAuMTMxMjUiLCBcCi0gICAgICAgICAgIjAuMjMsIDAuMjEyNSwgMC4yLCAwLjE4NzUsIDAuMTc1LCAwLjE1ODc1LCAwLjE0Mzc1IiwgXAotICAgICAgICAgICIwLjI0NjI1LCAwLjIzNSwgMC4yMjI1LCAwLjIwMzc1LCAwLjE5MTI1LCAwLjE3NSwgMC4xNjYyNSIsIFwKLSAgICAgICAgICAiMC4yNjc1LCAwLjI1NjI1LCAwLjIzNzUsIDAuMjI1LCAwLjIxMjUsIDAuMTk2MjUsIDAuMTgxMjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDYyNSwgMC4wODg3NSwgMC4wNzYyNSwgMC4wNTc1LCAwLjA0NSwgMC4wMTYyNSwgMC4wMDEyNSIsIFwKLSAgICAgICAgICAiMC4xMTc1LCAwLjEsIDAuMDg3NSwgMC4wNjg3NSwgMC4wNTYyNSwgMC4wMjc1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMTMsIDAuMTEyNSwgMC4xLCAwLjA4MTI1LCAwLjA2ODc1LCAwLjA0LCAwLjAyNSIsIFwKLSAgICAgICAgICAiMC4xNDI1LCAwLjEyNSwgMC4xMTI1LCAwLjA5Mzc1LCAwLjA4MTI1LCAwLjA1MjUsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiMC4xNDg3NSwgMC4xMzc1LCAwLjEyNSwgMC4xMDYyNSwgMC4wOTM3NSwgMC4wNjUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMTcxMjUsIDAuMTYsIDAuMTQxMjUsIDAuMTI4NzUsIDAuMTEsIDAuMDg3NSwgMC4wNjYyNSIsIFwKLSAgICAgICAgICAiMC4xODYyNSwgMC4xNzUsIDAuMTYyNSwgMC4xNDM3NSwgMC4xMjUsIDAuMTAyNSwgMC4wODEyNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogU0VERkZUUlgyICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoU0VERkZUUlgyKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuNDk4MjY2OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIGZmIChOMzAsUUJJTlQpIHsKLSAgICBuZXh0X3N0YXRlIDogIigoU0UgU0kpICsgKCFTRSAoKCghKCghRCkgRSkpICghKCghRSkgKCFOMzApKSkpIFJOKSkpIjsKLSAgICBjbG9ja2VkX29uIDogIkNLIjsKLSAgfQotICBwaW4oQ0spICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDU2MjYzMjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA1NjIzNTE7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNTYyNjMyOwotICAgIGNsb2NrIDogdHJ1ZTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDIzLCAwLjAwMjI4OSwgMC4wMDIyNzksIDAuMDAyMjcyLCAwLjAwMjI2NywgMC4wMDIyNiwgMC4wMDIyNTYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDUxNiwgMC4wMDUxNTEsIDAuMDA1MTQzLCAwLjAwNTEzNiwgMC4wMDUxMzUsIDAuMDA1MTM3LCAwLjAwNTEzNiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQmIUUmIVJOJiFTRSYhU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX0VfRVFfMF9BTl9STl9FUV8wX0FOX1NFX0VRXzBfQU5fU0lfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjM0MDQ5MywgMC4zNTI1MzEsIDAuMzY3NTc2LCAwLjM4MzA2MywgMC4zOTg1MjcsIDAuNDIyODc1LCAwLjQ0MzgzOCIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMjAzMTQ0LCAwLjIxNDMwMSwgMC4yMjk1MzIsIDAuMjQ0MzU5LCAwLjI1OTA0NiwgMC4yODIxMjcsIDAuMzAxMzQ2Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihEKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2MDcwNjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MDY4MjY7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjA3MDY7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA1ODA3LCAwLjAwNTc4OCwgMC4wMDU3NzYsIDAuMDA1NzY5LCAwLjAwNTc2NSwgMC4wMDU3NjEsIDAuMDA1NzYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDUwNTYsIDAuMDA1MDQzLCAwLjAwNTAzNCwgMC4wMDUwMywgMC4wMDUwMjYsIDAuMDA1MDIyLCAwLjAwNTAyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIkUmUk4mIVNFIjsKLSAgICAgIHNkZl9jb25kIDogIkVfRVFfMV9BTl9STl9FUV8xX0FOX1NFX0VRXzAgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMzE4NzUsIC0wLjMxMzc1LCAtMC4zMDEyNSwgLTAuMjg4NzUsIC0wLjI3NjI1LCAtMC4yNiwgLTAuMjUxMjUiLCBcCi0gICAgICAgICAgIi0wLjMzLCAtMC4zMjUsIC0wLjMxMjUsIC0wLjMsIC0wLjI4NzUsIC0wLjI3NzUsIC0wLjI2MjUiLCBcCi0gICAgICAgICAgIi0wLjM0ODc1LCAtMC4zMzc1LCAtMC4zMjUsIC0wLjMxODc1LCAtMC4zMDYyNSwgLTAuMjksIC0wLjI3NSIsIFwKLSAgICAgICAgICAiLTAuMzYxMjUsIC0wLjM1LCAtMC4zNDM3NSwgLTAuMzMxMjUsIC0wLjMxODc1LCAtMC4zMDI1LCAtMC4yOTM3NSIsIFwKLSAgICAgICAgICAiLTAuMzczNzUsIC0wLjM2ODc1LCAtMC4zNTYyNSwgLTAuMzQzNzUsIC0wLjMzMTI1LCAtMC4zMTUsIC0wLjMwNjI1IiwgXAotICAgICAgICAgICItMC4zOTYyNSwgLTAuMzg1LCAtMC4zNzI1LCAtMC4zNjYyNSwgLTAuMzUzNzUsIC0wLjMzNzUsIC0wLjMyMjUiLCBcCi0gICAgICAgICAgIi0wLjQxMTI1LCAtMC40MDYyNSwgLTAuMzkzNzUsIC0wLjM4MTI1LCAtMC4zNjg3NSwgLTAuMzUyNSwgLTAuMzQzNzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4xODc1LCAtMC4xNzYyNSwgLTAuMTYzNzUsIC0wLjE1MTI1LCAtMC4xMzg3NSwgLTAuMTE2MjUsIC0wLjA5NSIsIFwKLSAgICAgICAgICAiLTAuMTk4NzUsIC0wLjE4NzUsIC0wLjE3NSwgLTAuMTYyNSwgLTAuMTUsIC0wLjEyNzUsIC0wLjExMjUiLCBcCi0gICAgICAgICAgIi0wLjIxNzUsIC0wLjIwNjI1LCAtMC4xOTM3NSwgLTAuMTc1LCAtMC4xNjI1LCAtMC4xNCwgLTAuMTI1IiwgXAotICAgICAgICAgICItMC4yMywgLTAuMjE4NzUsIC0wLjIwNjI1LCAtMC4xOTM3NSwgLTAuMTc1LCAtMC4xNTg3NSwgLTAuMTM3NSIsIFwKLSAgICAgICAgICAiLTAuMjQyNSwgLTAuMjMxMjUsIC0wLjIxODc1LCAtMC4yMDYyNSwgLTAuMTg3NSwgLTAuMTcxMjUsIC0wLjE1IiwgXAotICAgICAgICAgICItMC4yNTg3NSwgLTAuMjQ3NSwgLTAuMjM1LCAtMC4yMjI1LCAtMC4yMSwgLTAuMTg3NSwgLTAuMTY2MjUiLCBcCi0gICAgICAgICAgIi0wLjI3Mzc1LCAtMC4yNjI1LCAtMC4yNSwgLTAuMjM3NSwgLTAuMjE4NzUsIC0wLjIwMjUsIC0wLjE4MTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJFJlJOJiFTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJFX0VRXzFfQU5fUk5fRVFfMV9BTl9TRV9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjQ0Mzc1LCAwLjQzMjUsIDAuNDIsIDAuNDAxMjUsIDAuMzg4NzUsIDAuMzcyNSwgMC4zNTc1IiwgXAotICAgICAgICAgICIwLjQ2MTI1LCAwLjQ0Mzc1LCAwLjQzMTI1LCAwLjQxMjUsIDAuNCwgMC4zODM3NSwgMC4zNjg3NSIsIFwKLSAgICAgICAgICAiMC40NzM3NSwgMC40NjI1LCAwLjQ0Mzc1LCAwLjQzMTI1LCAwLjQxODc1LCAwLjM5NjI1LCAwLjM4NzUiLCBcCi0gICAgICAgICAgIjAuNDg2MjUsIDAuNDc1LCAwLjQ1NjI1LCAwLjQ0Mzc1LCAwLjQzMTI1LCAwLjQxNSwgMC40IiwgXAotICAgICAgICAgICIwLjQ5ODc1LCAwLjQ4NzUsIDAuNDc1LCAwLjQ1NjI1LCAwLjQ0Mzc1LCAwLjQyNzUsIDAuNDEyNSIsIFwKLSAgICAgICAgICAiMC41MjEyNSwgMC41MSwgMC40OTEyNSwgMC40Nzg3NSwgMC40NjYyNSwgMC40NSwgMC40MzUiLCBcCi0gICAgICAgICAgIjAuNTM2MjUsIDAuNTI1LCAwLjUwNjI1LCAwLjQ5Mzc1LCAwLjQ4MTI1LCAwLjQ2NSwgMC40NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMwNjI1LCAwLjI5NSwgMC4yNzYyNSwgMC4yNTc1LCAwLjI0NSwgMC4yMTYyNSwgMC4xOTUiLCBcCi0gICAgICAgICAgIjAuMzE3NSwgMC4zMDYyNSwgMC4yODc1LCAwLjI2ODc1LCAwLjI1NjI1LCAwLjIzMzc1LCAwLjIxMjUiLCBcCi0gICAgICAgICAgIjAuMzMsIDAuMzE4NzUsIDAuMywgMC4yODc1LCAwLjI2ODc1LCAwLjI0NjI1LCAwLjIyNSIsIFwKLSAgICAgICAgICAiMC4zNDI1LCAwLjMzMTI1LCAwLjMxODc1LCAwLjMsIDAuMjgxMjUsIDAuMjU4NzUsIDAuMjM3NSIsIFwKLSAgICAgICAgICAiMC4zNTUsIDAuMzQzNzUsIDAuMzMxMjUsIDAuMzEyNSwgMC4yOTM3NSwgMC4yNzEyNSwgMC4yNSIsIFwKLSAgICAgICAgICAiMC4zNzEyNSwgMC4zNiwgMC4zNDc1LCAwLjMyODc1LCAwLjMxNjI1LCAwLjI4NzUsIDAuMjY2MjUiLCBcCi0gICAgICAgICAgIjAuMzg2MjUsIDAuMzc1LCAwLjM2MjUsIDAuMzQzNzUsIDAuMzI1LCAwLjMwMjUsIDAuMjgxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEUpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTEwNzM5OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTEwNzM5OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTEwNjU0OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNjIwOCwgMC4wMDYxOTcsIDAuMDA2MTg5LCAwLjAwNjE4NSwgMC4wMDYxODQsIDAuMDA2MTgxLCAwLjAwNjE4MSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNjkwOSwgMC4wMDY4OTEsIDAuMDA2ODc5LCAwLjAwNjg3MywgMC4wMDY4NjgsIDAuMDA2ODYzLCAwLjAwNjg2MiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJSTiYhU0UiOwotICAgICAgc2RmX2NvbmQgOiAiUk5fRVFfMV9BTl9TRV9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjIzNzUsIC0wLjIyNjI1LCAtMC4yMTM3NSwgLTAuMTk1LCAtMC4xODI1LCAtMC4xNiwgLTAuMTM4NzUiLCBcCi0gICAgICAgICAgIi0wLjI1NSwgLTAuMjM3NSwgLTAuMjI1LCAtMC4yMTI1LCAtMC4xOTM3NSwgLTAuMTcxMjUsIC0wLjE1IiwgXAotICAgICAgICAgICItMC4yNjc1LCAtMC4yNTYyNSwgLTAuMjM3NSwgLTAuMjI1LCAtMC4yMDYyNSwgLTAuMTgzNzUsIC0wLjE2MjUiLCBcCi0gICAgICAgICAgIi0wLjI4LCAtMC4yNjg3NSwgLTAuMjUsIC0wLjIzNzUsIC0wLjIyNSwgLTAuMTk2MjUsIC0wLjE4MTI1IiwgXAotICAgICAgICAgICItMC4yOTI1LCAtMC4yODEyNSwgLTAuMjY4NzUsIC0wLjI1LCAtMC4yMzc1LCAtMC4yMTUsIC0wLjE5Mzc1IiwgXAotICAgICAgICAgICItMC4zMTUsIC0wLjMwMzc1LCAtMC4yODUsIC0wLjI3MjUsIC0wLjI2LCAtMC4yMzEyNSwgLTAuMjE2MjUiLCBcCi0gICAgICAgICAgIi0wLjMzNjI1LCAtMC4zMjUsIC0wLjMwNjI1LCAtMC4yOTM3NSwgLTAuMjc1LCAtMC4yNTI1LCAtMC4yMzEyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjIyNSwgLTAuMjA3NSwgLTAuMTk1LCAtMC4xODI1LCAtMC4xNywgLTAuMTQ3NSwgLTAuMTMyNSIsIFwKLSAgICAgICAgICAiLTAuMjM2MjUsIC0wLjIyNSwgLTAuMjA2MjUsIC0wLjE5Mzc1LCAtMC4xODEyNSwgLTAuMTU4NzUsIC0wLjE0Mzc1IiwgXAotICAgICAgICAgICItMC4yNDg3NSwgLTAuMjM3NSwgLTAuMjI1LCAtMC4yMTI1LCAtMC4xOTM3NSwgLTAuMTc3NSwgLTAuMTU2MjUiLCBcCi0gICAgICAgICAgIi0wLjI2MTI1LCAtMC4yNSwgLTAuMjM3NSwgLTAuMjI1LCAtMC4yMTI1LCAtMC4xOSwgLTAuMTY4NzUiLCBcCi0gICAgICAgICAgIi0wLjI3Mzc1LCAtMC4yNjI1LCAtMC4yNSwgLTAuMjM3NSwgLTAuMjI1LCAtMC4yMDI1LCAtMC4xODc1IiwgXAotICAgICAgICAgICItMC4yOTYyNSwgLTAuMjg1LCAtMC4yNzI1LCAtMC4yNTM3NSwgLTAuMjQxMjUsIC0wLjIxODc1LCAtMC4yMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMzExMjUsIC0wLjMsIC0wLjI4NzUsIC0wLjI2ODc1LCAtMC4yNTYyNSwgLTAuMjMzNzUsIC0wLjIxODc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJSTiYhU0UiOwotICAgICAgc2RmX2NvbmQgOiAiUk5fRVFfMV9BTl9TRV9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjQ5Mzc1LCAwLjQ3NjI1LCAwLjQ2Mzc1LCAwLjQ1MTI1LCAwLjQzMjUsIDAuNDE2MjUsIDAuNDAxMjUiLCBcCi0gICAgICAgICAgIjAuNTA1LCAwLjQ5Mzc1LCAwLjQ3NSwgMC40NjI1LCAwLjQ1LCAwLjQyNzUsIDAuNDE4NzUiLCBcCi0gICAgICAgICAgIjAuNTE3NSwgMC41MDYyNSwgMC40OTM3NSwgMC40NzUsIDAuNDYyNSwgMC40NDYyNSwgMC40MzEyNSIsIFwKLSAgICAgICAgICAiMC41MzYyNSwgMC41MjUsIDAuNTA2MjUsIDAuNDkzNzUsIDAuNDc1LCAwLjQ1ODc1LCAwLjQ0Mzc1IiwgXAotICAgICAgICAgICIwLjU0ODc1LCAwLjUzNzUsIDAuNTE4NzUsIDAuNTA2MjUsIDAuNDkzNzUsIDAuNDc3NSwgMC40NjI1IiwgXAotICAgICAgICAgICIwLjU3MTI1LCAwLjU2LCAwLjU0MTI1LCAwLjUyODc1LCAwLjUxNjI1LCAwLjQ5Mzc1LCAwLjQ4NSIsIFwKLSAgICAgICAgICAiMC41ODYyNSwgMC41NzUsIDAuNTU2MjUsIDAuNTQzNzUsIDAuNTMxMjUsIDAuNTE1LCAwLjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zNSwgMC4zMzg3NSwgMC4zMjYyNSwgMC4zMTM3NSwgMC4zMDEyNSwgMC4yODUsIDAuMjc2MjUiLCBcCi0gICAgICAgICAgIjAuMzU1LCAwLjM0Mzc1LCAwLjMzNzUsIDAuMzI1LCAwLjMxMjUsIDAuMjk2MjUsIDAuMjgxMjUiLCBcCi0gICAgICAgICAgIjAuMzY3NSwgMC4zNjI1LCAwLjM1LCAwLjMzNzUsIDAuMzI1LCAwLjMwODc1LCAwLjMiLCBcCi0gICAgICAgICAgIjAuMzgsIDAuMzc1LCAwLjM2MjUsIDAuMzUsIDAuMzM3NSwgMC4zMjEyNSwgMC4zMTI1IiwgXAotICAgICAgICAgICIwLjM5ODc1LCAwLjM4NzUsIDAuMzc1LCAwLjM2MjUsIDAuMzUsIDAuMzMzNzUsIDAuMzI1IiwgXAotICAgICAgICAgICIwLjQxNSwgMC40MDM3NSwgMC4zOTEyNSwgMC4zNzg3NSwgMC4zNzI1LCAwLjM1NjI1LCAwLjM0MTI1IiwgXAotICAgICAgICAgICIwLjQzNjI1LCAwLjQyNSwgMC40MTI1LCAwLjQsIDAuMzg3NSwgMC4zNzEyNSwgMC4zNjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihRKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMjY1MTk4OwotICAgIGZ1bmN0aW9uIDogIk4zMCI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3NlbnNlIDogbm9uX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiByaXNpbmdfZWRnZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjY2MDI5LCAwLjQ0ODU5LCAwLjU5Mzg5MSwgMC43NzQxNjMsIDAuOTU2MzgsIDEuMTM3LCAxLjMxOTUxIiwgXAotICAgICAgICAgICIwLjI3Nzk0MywgMC40NjA1MjUsIDAuNjA2NTUyLCAwLjc4NzU4LCAwLjk2NzcyOCwgMS4xNDgwOSwgMS4zMzA5OSIsIFwKLSAgICAgICAgICAiMC4yOTI5ODQsIDAuNDc1NTQ4LCAwLjYyMDI5OCwgMC44MDMwNDYsIDAuOTgzODYxLCAxLjE2Mzc1LCAxLjM0NDk3IiwgXAotICAgICAgICAgICIwLjMwODQ5MSwgMC40OTEyNjcsIDAuNjM2MDUyLCAwLjgxNzkxOCwgMC45OTg0MzIsIDEuMTc5NjUsIDEuMzYwODQiLCBcCi0gICAgICAgICAgIjAuMzIzODQ3LCAwLjUwNjQyMywgMC42NTEyOTYsIDAuODMzMTE1LCAxLjAxNDQ0LCAxLjE5NDg1LCAxLjM3NTg2IiwgXAotICAgICAgICAgICIwLjM0ODEzNCwgMC41MzA3MTIsIDAuNjc2MDM3LCAwLjg1NzQ0MSwgMS4wMzgyOSwgMS4yMTkxOCwgMS40MDAxNiIsIFwKLSAgICAgICAgICAiMC4zNjg5OCwgMC41NTE1MDksIDAuNjk2NDY2LCAwLjg3ODAzMywgMS4wNTgyOSwgMS4yNDAxNCwgMS40MjE5NiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTY1NjcsIDAuNDYyNzI2LCAwLjc2MDkwOSwgMS4xMzM0NiwgMS41MDU0OSwgMS44NzkzOSwgMi4yNTI3OCIsIFwKLSAgICAgICAgICAiMC4wOTY1MDMsIDAuNDYzMDU1LCAwLjc1OTgsIDEuMTMzNTksIDEuNTA2NSwgMS44Nzk5MSwgMi4yNTI1NyIsIFwKLSAgICAgICAgICAiMC4wOTY1NTcsIDAuNDYxOTg0LCAwLjc2MDg3MSwgMS4xMzMxNCwgMS41MDM0OCwgMS44NzkzNywgMi4yNTIxOCIsIFwKLSAgICAgICAgICAiMC4wOTY2NDIsIDAuNDYyMDI0LCAwLjc2MDc4MSwgMS4xMzMyMywgMS41MDY0NiwgMS44NzkzNCwgMi4yNTI3MiIsIFwKLSAgICAgICAgICAiMC4wOTY1NjQsIDAuNDYyMDIsIDAuNzYwNzg0LCAxLjEzMzI4LCAxLjUwNjQ3LCAxLjg3OTM0LCAyLjI1Mjg1IiwgXAotICAgICAgICAgICIwLjA5NjU2NiwgMC40NjE4MzIsIDAuNzYwNzY5LCAxLjEzMzMxLCAxLjUwNjQ3LCAxLjg3OTMzLCAyLjI1Mjc0IiwgXAotICAgICAgICAgICIwLjA5NjU1LCAwLjQ2MTk1NywgMC43NjExMDcsIDEuMTMxNzUsIDEuNTAyODUsIDEuODc5MzksIDIuMjUyMSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yOTU2ODcsIDAuNTA0MDgyLCAwLjY2OTI0NCwgMC44NzY0NTYsIDEuMDg0MiwgMS4yOTEwMiwgMS40OTg3OCIsIFwKLSAgICAgICAgICAiMC4zMDc2NjksIDAuNTE2MDY3LCAwLjY4MTE5NSwgMC44ODg0ODQsIDEuMDk1NzYsIDEuMzAyODUsIDEuNTA5OTciLCBcCi0gICAgICAgICAgIjAuMzIyNzY2LCAwLjUzMTE1NSwgMC42OTYyOTMsIDAuOTAzNjg0LCAxLjExMDg3LCAxLjMxODA1LCAxLjUyNTMyIiwgXAotICAgICAgICAgICIwLjMzODI1NSwgMC41NDY2NDcsIDAuNzExNzA2LCAwLjkxODU3MSwgMS4xMjYzNCwgMS4zMzM1OCwgMS41NDA1IiwgXAotICAgICAgICAgICIwLjM1MzY0MiwgMC41NjIwMTUsIDAuNzI3MTk5LCAwLjkzNDM3OCwgMS4xNDE3NywgMS4zNDg5NSwgMS41NTY2NyIsIFwKLSAgICAgICAgICAiMC4zNzgwMzMsIDAuNTg2NDE4LCAwLjc1MTU1NywgMC45NTg3MTcsIDEuMTY2MiwgMS4zNzE3MywgMS41ODExNSIsIFwKLSAgICAgICAgICAiMC4zOTkwMTUsIDAuNjA3NDI1LCAwLjc3MjU0OSwgMC45Nzk3MzQsIDEuMTg3MTIsIDEuMzk0MywgMS42MDEzMyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDM0OCwgMC41MDczNTMsIDAuODM1MjIzLCAxLjI0ODM3LCAxLjY2MDg0LCAyLjA2OTY5LCAyLjQ4MTY5IiwgXAotICAgICAgICAgICIwLjEwMzgyNCwgMC41MDczNjYsIDAuODM1MzYxLCAxLjI0Nzg1LCAxLjY1OTUsIDIuMDY5ODcsIDIuNDg1MzgiLCBcCi0gICAgICAgICAgIjAuMTAzNzE5LCAwLjUwNzM2NiwgMC44MzQ3MjIsIDEuMjQ3ODEsIDEuNjU4MzYsIDIuMDY5NDIsIDIuNDgzMzUiLCBcCi0gICAgICAgICAgIjAuMTAzNTIxLCAwLjUwNzM2NSwgMC44MzU1MzMsIDEuMjQ3NTgsIDEuNjU5MDgsIDIuMDY5NDgsIDIuNDgzMzMiLCBcCi0gICAgICAgICAgIjAuMTAzNzE3LCAwLjUwNzM1MSwgMC44MzUyMjIsIDEuMjQ3MjIsIDEuNjYwMDcsIDIuMDY5NTksIDIuNDgzMzUiLCBcCi0gICAgICAgICAgIjAuMTAzODUsIDAuNTA3MzcyLCAwLjgzNTc0NCwgMS4yNDc4MiwgMS42NjAwNCwgMi4wNzIzLCAyLjQ4MzM3IiwgXAotICAgICAgICAgICIwLjEwMzg3OCwgMC41MDczOTgsIDAuODM1MzU3LCAxLjI0Njg3LCAxLjY1OTg3LCAyLjA3Mjg4LCAyLjQ4MzA3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNTg3NSwgMC4wMDU5MDEsIDAuMDA1ODk5LCAwLjAwNTg5NywgMC4wMDU4OTYsIDAuMDA1ODk1LCAwLjAwNTg5NSIsIFwKLSAgICAgICAgICAiMC4wMDU4NjksIDAuMDA1ODk1LCAwLjAwNTg5NSwgMC4wMDU4OTIsIDAuMDA1ODkxLCAwLjAwNTg5LCAwLjAwNTg4OSIsIFwKLSAgICAgICAgICAiMC4wMDU4NjIsIDAuMDA1ODg5LCAwLjAwNTg4OCwgMC4wMDU4ODYsIDAuMDA1ODg0LCAwLjAwNTg4MywgMC4wMDU4ODIiLCBcCi0gICAgICAgICAgIjAuMDA1ODU3LCAwLjAwNTg4NSwgMC4wMDU4ODMsIDAuMDA1ODgxLCAwLjAwNTg4LCAwLjAwNTg3OSwgMC4wMDU4NzgiLCBcCi0gICAgICAgICAgIjAuMDA1ODU1LCAwLjAwNTg4MiwgMC4wMDU4OCwgMC4wMDU4NzgsIDAuMDA1ODc3LCAwLjAwNTg3NiwgMC4wMDU4NzUiLCBcCi0gICAgICAgICAgIjAuMDA1ODQ5LCAwLjAwNTg3NiwgMC4wMDU4NzUsIDAuMDA1ODczLCAwLjAwNTg3MiwgMC4wMDU4NywgMC4wMDU4NyIsIFwKLSAgICAgICAgICAiMC4wMDU4NDcsIDAuMDA1ODc0LCAwLjAwNTg3MywgMC4wMDU4NzEsIDAuMDA1ODcsIDAuMDA1ODY4LCAwLjAwNTg2NyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNTA3LCAwLjAwNTEwOCwgMC4wMDUxMTIsIDAuMDA1MTE0LCAwLjAwNTExNSwgMC4wMDUxMTUsIDAuMDA1MTE2IiwgXAotICAgICAgICAgICIwLjAwNTA2MywgMC4wMDUxMDEsIDAuMDA1MTA1LCAwLjAwNTEwNywgMC4wMDUxMDgsIDAuMDA1MTA5LCAwLjAwNTEwOSIsIFwKLSAgICAgICAgICAiMC4wMDUwNTgsIDAuMDA1MDk2LCAwLjAwNTEsIDAuMDA1MTAyLCAwLjAwNTEwMywgMC4wMDUxMDMsIDAuMDA1MTA0IiwgXAotICAgICAgICAgICIwLjAwNTA1NCwgMC4wMDUwOTIsIDAuMDA1MDk2LCAwLjAwNTA5OCwgMC4wMDUwOTksIDAuMDA1MSwgMC4wMDUxIiwgXAotICAgICAgICAgICIwLjAwNTA1MiwgMC4wMDUwOSwgMC4wMDUwOTQsIDAuMDA1MDk2LCAwLjAwNTA5OCwgMC4wMDUwOTgsIDAuMDA1MDk5IiwgXAotICAgICAgICAgICIwLjAwNTA1LCAwLjAwNTA4OCwgMC4wMDUwOTIsIDAuMDA1MDk1LCAwLjAwNTA5NSwgMC4wMDUwOTcsIDAuMDA1MDk2IiwgXAotICAgICAgICAgICIwLjAwNTA1MywgMC4wMDUwOTEsIDAuMDA1MDk1LCAwLjAwNTA5NywgMC4wMDUwOTgsIDAuMDA1MDk5LCAwLjAwNTA5OSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUU4pICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4yNTY2OTQ7Ci0gICAgZnVuY3Rpb24gOiAiUUJJTlQiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5vbl91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcmlzaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjM0MTU5LCAwLjUyMTY2NCwgMC42NjYxMjEsIDAuODQ2NjIxLCAxLjAyNzE0LCAxLjIwNzg2LCAxLjM4ODM3IiwgXAotICAgICAgICAgICIwLjM1MzUxMiwgMC41MzM2OCwgMC42NzgwODIsIDAuODU4Mzg1LCAxLjAzOTI4LCAxLjIxOTY5LCAxLjQwMDQzIiwgXAotICAgICAgICAgICIwLjM2ODYwNywgMC41NDg3NDMsIDAuNjkzMTYsIDAuODczNjIxLCAxLjA1NDI0LCAxLjIzNDgzLCAxLjQxNTMiLCBcCi0gICAgICAgICAgIjAuMzg0MDg0LCAwLjU2NDI1NiwgMC43MDg2ODksIDAuODg5MjM3LCAxLjA2OTc3LCAxLjI1MDM3LCAxLjQzMDgyIiwgXAotICAgICAgICAgICIwLjM5OTU0LCAwLjU3OTYyNiwgMC43MjQwNzUsIDAuOTA0NjQsIDEuMDg1MTYsIDEuMjY1ODIsIDEuNDQ2MjkiLCBcCi0gICAgICAgICAgIjAuNDIzODY1LCAwLjYwNDAwNiwgMC43NDg0MzMsIDAuOTI4Nzg0LCAxLjEwOTY1LCAxLjI5MDA2LCAxLjQ3MDU4IiwgXAotICAgICAgICAgICIwLjQ0NDkwOCwgMC42MjUwMzMsIDAuNzY5NDk1LCAwLjk0OTk2MiwgMS4xMzA2MiwgMS4zMTEwNSwgMS40OTE1OSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTE3NjYsIDAuNDU2OTg0LCAwLjc1MDM4MywgMS4xMjExMywgMS40OTA4MywgMS44NjA2OSwgMi4yMzAyMiIsIFwKLSAgICAgICAgICAiMC4wOTE3MTcsIDAuNDU2NDExLCAwLjc1MDQ3MywgMS4xMjEwNywgMS40OTExMiwgMS44NTk1LCAyLjIyOTQ0IiwgXAotICAgICAgICAgICIwLjA5MTY5NywgMC40NTY0LCAwLjc1MDUyMSwgMS4xMjEyNSwgMS40ODk5MSwgMS44NTg0NiwgMi4yMzAwMiIsIFwKLSAgICAgICAgICAiMC4wOTE3MTIsIDAuNDU2NDEsIDAuNzUxOTA2LCAxLjEyMTMsIDEuNDg5OTgsIDEuODU4NjksIDIuMjI5NTIiLCBcCi0gICAgICAgICAgIjAuMDkxNzYyLCAwLjQ1Njk5NSwgMC43NTAzNzcsIDEuMTIxMTYsIDEuNDkxMSwgMS44NTk0NCwgMi4yMzAxMSIsIFwKLSAgICAgICAgICAiMC4wOTE3MzcsIDAuNDU2OTc4LCAwLjc1MTgzOCwgMS4xMjA2NCwgMS40OTA2NywgMS44NTkyNSwgMi4yMjk4NCIsIFwKLSAgICAgICAgICAiMC4wOTE3MjcsIDAuNDU3MDE4LCAwLjc1MTg3NSwgMS4xMTk3NiwgMS40ODkxOSwgMS44NjA2NSwgMi4yMjk2MSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMTgzMywgMC41MjQzMTYsIDAuNjg5NDQyLCAwLjg5NTgyMywgMS4xMDIyMSwgMS4zMDg2MiwgMS41MTUxOSIsIFwKLSAgICAgICAgICAiMC4zMzAyMSwgMC41MzYyODIsIDAuNzAxNDIsIDAuOTA3ODE2LCAxLjExNDE0LCAxLjMyMDQ4LCAxLjUyNjg3IiwgXAotICAgICAgICAgICIwLjM0NTI3OCwgMC41NTEyNzIsIDAuNzE2MzkzLCAwLjkyMjkyNywgMS4xMjkxMywgMS4zMzU1NiwgMS41NDE5NCIsIFwKLSAgICAgICAgICAiMC4zNjA3NDgsIDAuNTY2ODE4LCAwLjczMTg5MiwgMC45MzgzMTQsIDEuMTQ0NjQsIDEuMzUxMDcsIDEuNTU3MzkiLCBcCi0gICAgICAgICAgIjAuMzc2MTQyLCAwLjU4MjEzLCAwLjc0NzI1OSwgMC45NTM2NzgsIDEuMTYwMTMsIDEuMzY2NDMsIDEuNTcyNzQiLCBcCi0gICAgICAgICAgIjAuNDAwNDI4LCAwLjYwNjQxOCwgMC43NzE1NDcsIDAuOTc3OTY3LCAxLjE4NDM4LCAxLjM5MDcyLCAxLjU5NzAyIiwgXAotICAgICAgICAgICIwLjQyMTI0OCwgMC42MjcyNzYsIDAuNzkyNCwgMC45OTg3NzMsIDEuMjA1MTUsIDEuNDExNTQsIDEuNjE4MDkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk5NTMyLCAwLjUwNjcxMSwgMC44MzU0NjcsIDEuMjQ2MDYsIDEuNjU2OTIsIDIuMDY3NzYsIDIuNDc5NTMiLCBcCi0gICAgICAgICAgIjAuMDk5NTMxLCAwLjUwNjY4NywgMC44MzUzODgsIDEuMjQ2MDQsIDEuNjU2ODgsIDIuMDY3NzMsIDIuNDc4ODkiLCBcCi0gICAgICAgICAgIjAuMDk5NTQ2LCAwLjUwNjYzMiwgMC44MzUzODYsIDEuMjQ2MDMsIDEuNjU3MjUsIDIuMDY3NzUsIDIuNDc4NTciLCBcCi0gICAgICAgICAgIjAuMDk5NTQzLCAwLjUwNjYzOSwgMC44MzUxOTYsIDEuMjQ2MDMsIDEuNjU2OSwgMi4wNjgyMiwgMi40Nzg4NyIsIFwKLSAgICAgICAgICAiMC4wOTk1MjQsIDAuNTA2NjM3LCAwLjgzNTE5NSwgMS4yNDYwMywgMS42NTY5LCAyLjA2Nzc4LCAyLjQ3ODU0IiwgXAotICAgICAgICAgICIwLjA5OTUyMywgMC41MDY1ODksIDAuODM1MTk0LCAxLjI0NjAzLCAxLjY1NjksIDIuMDY3NzgsIDIuNDc4NTQiLCBcCi0gICAgICAgICAgIjAuMDk5NTE0LCAwLjUwNjU5OSwgMC44MzUzNzYsIDEuMjQ2NDMsIDEuNjU2NzYsIDIuMDY3NzMsIDIuNDc4NTIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1MDcsIDAuMDA1MTA4LCAwLjAwNTExMiwgMC4wMDUxMTQsIDAuMDA1MTE1LCAwLjAwNTExNSwgMC4wMDUxMTYiLCBcCi0gICAgICAgICAgIjAuMDA1MDYzLCAwLjAwNTEwMSwgMC4wMDUxMDUsIDAuMDA1MTA3LCAwLjAwNTEwOCwgMC4wMDUxMDksIDAuMDA1MTA5IiwgXAotICAgICAgICAgICIwLjAwNTA1OCwgMC4wMDUwOTYsIDAuMDA1MSwgMC4wMDUxMDIsIDAuMDA1MTAzLCAwLjAwNTEwMywgMC4wMDUxMDQiLCBcCi0gICAgICAgICAgIjAuMDA1MDU0LCAwLjAwNTA5MiwgMC4wMDUwOTYsIDAuMDA1MDk4LCAwLjAwNTA5OSwgMC4wMDUxLCAwLjAwNTEiLCBcCi0gICAgICAgICAgIjAuMDA1MDUyLCAwLjAwNTA5LCAwLjAwNTA5NCwgMC4wMDUwOTYsIDAuMDA1MDk4LCAwLjAwNTA5OCwgMC4wMDUwOTkiLCBcCi0gICAgICAgICAgIjAuMDA1MDUsIDAuMDA1MDg4LCAwLjAwNTA5MiwgMC4wMDUwOTUsIDAuMDA1MDk1LCAwLjAwNTA5NywgMC4wMDUwOTYiLCBcCi0gICAgICAgICAgIjAuMDA1MDUzLCAwLjAwNTA5MSwgMC4wMDUwOTUsIDAuMDA1MDk3LCAwLjAwNTA5OCwgMC4wMDUwOTksIDAuMDA1MDk5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1ODc1LCAwLjAwNTkwMSwgMC4wMDU4OTksIDAuMDA1ODk3LCAwLjAwNTg5NiwgMC4wMDU4OTUsIDAuMDA1ODk1IiwgXAotICAgICAgICAgICIwLjAwNTg2OSwgMC4wMDU4OTUsIDAuMDA1ODk1LCAwLjAwNTg5MiwgMC4wMDU4OTEsIDAuMDA1ODksIDAuMDA1ODg5IiwgXAotICAgICAgICAgICIwLjAwNTg2MiwgMC4wMDU4ODksIDAuMDA1ODg4LCAwLjAwNTg4NiwgMC4wMDU4ODQsIDAuMDA1ODgzLCAwLjAwNTg4MiIsIFwKLSAgICAgICAgICAiMC4wMDU4NTcsIDAuMDA1ODg1LCAwLjAwNTg4MywgMC4wMDU4ODEsIDAuMDA1ODgsIDAuMDA1ODc5LCAwLjAwNTg3OCIsIFwKLSAgICAgICAgICAiMC4wMDU4NTUsIDAuMDA1ODgyLCAwLjAwNTg4LCAwLjAwNTg3OCwgMC4wMDU4NzcsIDAuMDA1ODc2LCAwLjAwNTg3NSIsIFwKLSAgICAgICAgICAiMC4wMDU4NDksIDAuMDA1ODc2LCAwLjAwNTg3NSwgMC4wMDU4NzMsIDAuMDA1ODcyLCAwLjAwNTg3LCAwLjAwNTg3IiwgXAotICAgICAgICAgICIwLjAwNTg0NywgMC4wMDU4NzQsIDAuMDA1ODczLCAwLjAwNTg3MSwgMC4wMDU4NywgMC4wMDU4NjgsIDAuMDA1ODY3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihSTikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjA3MjE2OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYwNjkxMjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2MDcyMTY7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA2Njg2LCAwLjAwNjY2NywgMC4wMDY2NTYsIDAuMDA2NjUsIDAuMDA2NjQ3LCAwLjAwNjY0NSwgMC4wMDY2NDQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDU5NywgMC4wMDU5NTcsIDAuMDA1OTQ2LCAwLjAwNTk0MSwgMC4wMDU5MzgsIDAuMDA1OTM1LCAwLjAwNTkzNCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhU0UiOwotICAgICAgc2RmX2NvbmQgOiAiU0UgPT0gMSdiMCI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuNDI1LCAtMC40MTM3NSwgLTAuNDA3NSwgLTAuMzk1LCAtMC4zODI1LCAtMC4zNjYyNSwgLTAuMzU3NSIsIFwKLSAgICAgICAgICAiLTAuNDM2MjUsIC0wLjQzMTI1LCAtMC40MTg3NSwgLTAuNDA2MjUsIC0wLjM5Mzc1LCAtMC4zODM3NSwgLTAuMzY4NzUiLCBcCi0gICAgICAgICAgIi0wLjQ1NSwgLTAuNDQzNzUsIC0wLjQzMTI1LCAtMC40MTg3NSwgLTAuNDEyNSwgLTAuMzk2MjUsIC0wLjM4MTI1IiwgXAotICAgICAgICAgICItMC40Njc1LCAtMC40NTYyNSwgLTAuNDUsIC0wLjQzNzUsIC0wLjQyNSwgLTAuNDA4NzUsIC0wLjQiLCBcCi0gICAgICAgICAgIi0wLjQ4NjI1LCAtMC40NzUsIC0wLjQ2MjUsIC0wLjQ1LCAtMC40NDM3NSwgLTAuNDI3NSwgLTAuNDEyNSIsIFwKLSAgICAgICAgICAiLTAuNTAyNSwgLTAuNDk3NSwgLTAuNDg1LCAtMC40NzI1LCAtMC40NiwgLTAuNDUsIC0wLjQzNSIsIFwKLSAgICAgICAgICAiLTAuNTIzNzUsIC0wLjUxMjUsIC0wLjUsIC0wLjQ4NzUsIC0wLjQ4MTI1LCAtMC40NjUsIC0wLjQ1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMTUsIC0wLjEzODc1LCAtMC4xMjYyNSwgLTAuMTA3NSwgLTAuMDk1LCAtMC4wNzI1LCAtMC4wNTc1IiwgXAotICAgICAgICAgICItMC4xNjEyNSwgLTAuMTUsIC0wLjEzNzUsIC0wLjExODc1LCAtMC4xMDYyNSwgLTAuMDgzNzUsIC0wLjA2ODc1IiwgXAotICAgICAgICAgICItMC4xNzM3NSwgLTAuMTYyNSwgLTAuMTUsIC0wLjEzNzUsIC0wLjEyNSwgLTAuMTAyNSwgLTAuMDgxMjUiLCBcCi0gICAgICAgICAgIi0wLjE5MjUsIC0wLjE3NSwgLTAuMTYyNSwgLTAuMTUsIC0wLjEzNzUsIC0wLjExNSwgLTAuMDkzNzUiLCBcCi0gICAgICAgICAgIi0wLjIwNSwgLTAuMTkzNzUsIC0wLjE3NSwgLTAuMTYyNSwgLTAuMTUsIC0wLjEyNzUsIC0wLjExMjUiLCBcCi0gICAgICAgICAgIi0wLjIyMTI1LCAtMC4yMSwgLTAuMTk3NSwgLTAuMTg1LCAtMC4xNjYyNSwgLTAuMTQzNzUsIC0wLjEyODc1IiwgXAotICAgICAgICAgICItMC4yMzYyNSwgLTAuMjI1LCAtMC4yMTI1LCAtMC4yLCAtMC4xODEyNSwgLTAuMTU4NzUsIC0wLjE0Mzc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhU0UiOwotICAgICAgc2RmX2NvbmQgOiAiU0UgPT0gMSdiMCI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuNTEyNSwgMC41MDEyNSwgMC40ODI1LCAwLjQ3LCAwLjQ1NzUsIDAuNDQxMjUsIDAuNDI2MjUiLCBcCi0gICAgICAgICAgIjAuNTIzNzUsIDAuNTEyNSwgMC40OTM3NSwgMC40ODEyNSwgMC40Njg3NSwgMC40NTI1LCAwLjQzNzUiLCBcCi0gICAgICAgICAgIjAuNTQyNSwgMC41MjUsIDAuNTEyNSwgMC40OTM3NSwgMC40ODEyNSwgMC40NjUsIDAuNDUiLCBcCi0gICAgICAgICAgIjAuNTU1LCAwLjU0Mzc1LCAwLjUyNSwgMC41MTI1LCAwLjUsIDAuNDc3NSwgMC40Njg3NSIsIFwKLSAgICAgICAgICAiMC41Njc1LCAwLjU1NjI1LCAwLjU0Mzc1LCAwLjUyNSwgMC41MTI1LCAwLjQ5NjI1LCAwLjQ4MTI1IiwgXAotICAgICAgICAgICIwLjU5LCAwLjU3ODc1LCAwLjU2LCAwLjU0NzUsIDAuNTM1LCAwLjUxODc1LCAwLjUwMzc1IiwgXAotICAgICAgICAgICIwLjYwNSwgMC41OTM3NSwgMC41ODEyNSwgMC41NjI1LCAwLjU1LCAwLjUzMzc1LCAwLjUxODc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjY4NzUsIDAuMjU3NSwgMC4yMzg3NSwgMC4yMiwgMC4yMDc1LCAwLjE3ODc1LCAwLjE2Mzc1IiwgXAotICAgICAgICAgICIwLjI4LCAwLjI2ODc1LCAwLjI1LCAwLjIzMTI1LCAwLjIxODc1LCAwLjE5NjI1LCAwLjE3NSIsIFwKLSAgICAgICAgICAiMC4yOTI1LCAwLjI4MTI1LCAwLjI2ODc1LCAwLjI1LCAwLjIzMTI1LCAwLjIwODc1LCAwLjE4NzUiLCBcCi0gICAgICAgICAgIjAuMzA1LCAwLjI5Mzc1LCAwLjI4MTI1LCAwLjI2MjUsIDAuMjUsIDAuMjIxMjUsIDAuMiIsIFwKLSAgICAgICAgICAiMC4zMjM3NSwgMC4zMDYyNSwgMC4yOTM3NSwgMC4yNzUsIDAuMjYyNSwgMC4yMzM3NSwgMC4yMTI1IiwgXAotICAgICAgICAgICIwLjM0LCAwLjMyODc1LCAwLjMxLCAwLjI5NzUsIDAuMjc4NzUsIDAuMjU2MjUsIDAuMjM1IiwgXAotICAgICAgICAgICIwLjM1NSwgMC4zNDM3NSwgMC4zMjUsIDAuMzEyNSwgMC4yOTM3NSwgMC4yNzEyNSwgMC4yNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oU0UpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTQxNTg3OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTQxNDM2OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTQxNTg3OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzM0NiwgMC4wMDMzMzYsIDAuMDAzMzI5LCAwLjAwMzMyNiwgMC4wMDMzMjQsIDAuMDAzMzIxLCAwLjAwMzMyMiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNDQ0OSwgMC4wMDQ0MzEsIDAuMDA0NDE4LCAwLjAwNDQxMSwgMC4wMDQ0MDYsIDAuMDA0NCwgMC4wMDQzOTkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUQmIUUmIVJOJlNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9FX0VRXzBfQU5fUk5fRVFfMF9BTl9TSV9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjExMjUsIC0wLjEwMTI1LCAtMC4wODg3NSwgLTAuMDgyNSwgLTAuMDcsIC0wLjA1Mzc1LCAtMC4wMzg3NSIsIFwKLSAgICAgICAgICAiLTAuMTIzNzUsIC0wLjExMjUsIC0wLjEsIC0wLjA5Mzc1LCAtMC4wODEyNSwgLTAuMDY1LCAtMC4wNSIsIFwKLSAgICAgICAgICAiLTAuMTM2MjUsIC0wLjEzMTI1LCAtMC4xMTI1LCAtMC4xMDYyNSwgLTAuMDkzNzUsIC0wLjA3NzUsIC0wLjA2ODc1IiwgXAotICAgICAgICAgICItMC4xNDg3NSwgLTAuMTQzNzUsIC0wLjEzMTI1LCAtMC4xMTg3NSwgLTAuMTA2MjUsIC0wLjA5LCAtMC4wODEyNSIsIFwKLSAgICAgICAgICAiLTAuMTY3NSwgLTAuMTU2MjUsIC0wLjE0Mzc1LCAtMC4xMzEyNSwgLTAuMTE4NzUsIC0wLjEwMjUsIC0wLjA5Mzc1IiwgXAotICAgICAgICAgICItMC4xODM3NSwgLTAuMTc4NzUsIC0wLjE2NjI1LCAtMC4xNTM3NSwgLTAuMTQxMjUsIC0wLjEyNSwgLTAuMTE2MjUiLCBcCi0gICAgICAgICAgIi0wLjIwNSwgLTAuMTkzNzUsIC0wLjE4MTI1LCAtMC4xNzUsIC0wLjE2MjUsIC0wLjE0NjI1LCAtMC4xMzEyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAwNjI1LCAwLjAwNSwgMC4wMjM3NSwgMC4wMzYyNSwgMC4wNDg3NSwgMC4wNzEyNSwgMC4wODYyNSIsIFwKLSAgICAgICAgICAiLTAuMDE3NSwgMCwgMC4wMTI1LCAwLjAyNSwgMC4wMzc1LCAwLjA2LCAwLjA4MTI1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDE4NzUsIDAsIDAuMDEyNSwgMC4wMjUsIDAuMDQ3NSwgMC4wNjg3NSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDMxMjUsIC0wLjAxMjUsIDAsIDAuMDEyNSwgMC4wMzUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAxMjUsIDAsIDAuMDIyNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDcxMjUsIC0wLjA2LCAtMC4wNDc1LCAtMC4wMjg3NSwgLTAuMDE2MjUsIDAuMDA2MjUsIDAuMDIxMjUiLCBcCi0gICAgICAgICAgIi0wLjA4LCAtMC4wNjg3NSwgLTAuMDYyNSwgLTAuMDUsIC0wLjAzMTI1LCAtMC4wMTUsIDAuMDA2MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUQmIUUmUk4mIVNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9FX0VRXzBfQU5fUk5fRVFfMV9BTl9TSV9FUV8wID09IDEnYjEiOwotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjE0Mzc1LCAtMC4xMzg3NSwgLTAuMTI2MjUsIC0wLjExMzc1LCAtMC4xMDEyNSwgLTAuMDg1LCAtMC4wNzYyNSIsIFwKLSAgICAgICAgICAiLTAuMTU1LCAtMC4xNSwgLTAuMTM3NSwgLTAuMTI1LCAtMC4xMTI1LCAtMC4wOTYyNSwgLTAuMDg3NSIsIFwKLSAgICAgICAgICAiLTAuMTczNzUsIC0wLjE2MjUsIC0wLjE1LCAtMC4xMzc1LCAtMC4xMzEyNSwgLTAuMTE1LCAtMC4xIiwgXAotICAgICAgICAgICItMC4xODYyNSwgLTAuMTc1LCAtMC4xNjI1LCAtMC4xNTYyNSwgLTAuMTQzNzUsIC0wLjEyNzUsIC0wLjExMjUiLCBcCi0gICAgICAgICAgIi0wLjE5ODc1LCAtMC4xODc1LCAtMC4xNzUsIC0wLjE2ODc1LCAtMC4xNTYyNSwgLTAuMTQsIC0wLjEyNSIsIFwKLSAgICAgICAgICAiLTAuMjE1LCAtMC4yMSwgLTAuMTk3NSwgLTAuMTg1LCAtMC4xNzI1LCAtMC4xNTYyNSwgLTAuMTQ3NSIsIFwKLSAgICAgICAgICAiLTAuMjMsIC0wLjIxODc1LCAtMC4yMDYyNSwgLTAuMiwgLTAuMTg3NSwgLTAuMTcxMjUsIC0wLjE2MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiRCZFJlJOJiFTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzFfQU5fRV9FUV8xX0FOX1JOX0VRXzFfQU5fU0lfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMzc1LCAtMC4wMjYyNSwgLTAuMDEzNzUsIDAuMDA1LCAwLjAxNzUsIDAuMDQsIDAuMDU1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDM3NSwgLTAuMDI1LCAtMC4wMDYyNSwgMC4wMDYyNSwgMC4wMjg3NSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDYxMjUsIC0wLjA1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAxMjUsIDAuMDEsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjA4LCAtMC4wNjg3NSwgLTAuMDU2MjUsIC0wLjAzNzUsIC0wLjAyNSwgLTAuMDAyNSwgMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wOTI1LCAtMC4wODEyNSwgLTAuMDY4NzUsIC0wLjA1NjI1LCAtMC4wMzc1LCAtMC4wMTUsIDAiLCBcCi0gICAgICAgICAgIi0wLjExNSwgLTAuMTAzNzUsIC0wLjA5MTI1LCAtMC4wNzI1LCAtMC4wNiwgLTAuMDM3NSwgLTAuMDIyNSIsIFwKLSAgICAgICAgICAiLTAuMTMsIC0wLjExODc1LCAtMC4xMDYyNSwgLTAuMDkzNzUsIC0wLjA4MTI1LCAtMC4wNTI1LCAtMC4wMzc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRCYhRSYhUk4mU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX0VfRVFfMF9BTl9STl9FUV8wX0FOX1NJX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTkzNzUsIDAuMTgyNSwgMC4xNjM3NSwgMC4xNTEyNSwgMC4xMzg3NSwgMC4xMjI1LCAwLjEwNzUiLCBcCi0gICAgICAgICAgIjAuMjA1LCAwLjE5Mzc1LCAwLjE3NSwgMC4xNjI1LCAwLjE1LCAwLjEyNzUsIDAuMTE4NzUiLCBcCi0gICAgICAgICAgIjAuMjE3NSwgMC4yMDYyNSwgMC4xODc1LCAwLjE3NSwgMC4xNjI1LCAwLjE0NjI1LCAwLjEzMTI1IiwgXAotICAgICAgICAgICIwLjIzLCAwLjIxODc1LCAwLjIsIDAuMTg3NSwgMC4xNzUsIDAuMTU4NzUsIDAuMTQzNzUiLCBcCi0gICAgICAgICAgIjAuMjQyNSwgMC4yMzEyNSwgMC4yMTg3NSwgMC4yLCAwLjE4NzUsIDAuMTcxMjUsIDAuMTU2MjUiLCBcCi0gICAgICAgICAgIjAuMjY1LCAwLjI1Mzc1LCAwLjI0MTI1LCAwLjIyMjUsIDAuMjEsIDAuMTkzNzUsIDAuMTc4NzUiLCBcCi0gICAgICAgICAgIjAuMjg2MjUsIDAuMjc1LCAwLjI1NjI1LCAwLjI0Mzc1LCAwLjIzMTI1LCAwLjIxNSwgMC4yIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTE4NzUsIDAuMTA3NSwgMC4wOTUsIDAuMDc2MjUsIDAuMDU3NSwgMC4wMzUsIDAuMDEzNzUiLCBcCi0gICAgICAgICAgIjAuMTMsIDAuMTE4NzUsIDAuMSwgMC4wODc1LCAwLjA2ODc1LCAwLjA0NjI1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiMC4xNDI1LCAwLjEzMTI1LCAwLjExODc1LCAwLjEsIDAuMDgxMjUsIDAuMDU4NzUsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiMC4xNTUsIDAuMTQzNzUsIDAuMTMxMjUsIDAuMTEyNSwgMC4wOTM3NSwgMC4wNzEyNSwgMC4wNSIsIFwKLSAgICAgICAgICAiMC4xNjc1LCAwLjE1NjI1LCAwLjE0Mzc1LCAwLjEyNSwgMC4xMDYyNSwgMC4wODM3NSwgMC4wNjI1IiwgXAotICAgICAgICAgICIwLjE5LCAwLjE3ODc1LCAwLjE2NjI1LCAwLjE0NzUsIDAuMTI4NzUsIDAuMTA2MjUsIDAuMDg1IiwgXAotICAgICAgICAgICIwLjIxMTI1LCAwLjIsIDAuMTgxMjUsIDAuMTYyNSwgMC4xNSwgMC4xMjc1LCAwLjEwNjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRCYhRSZSTiYhU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX0VfRVFfMF9BTl9STl9FUV8xX0FOX1NJX0VRXzAgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTU2MjUsIDAuMTM4NzUsIDAuMTI2MjUsIDAuMTA3NSwgMC4wOTUsIDAuMDY2MjUsIDAuMDQ1IiwgXAotICAgICAgICAgICIwLjE2NzUsIDAuMTUsIDAuMTM3NSwgMC4xMTg3NSwgMC4xMDYyNSwgMC4wNzc1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICIwLjE4LCAwLjE2ODc1LCAwLjE1LCAwLjEzNzUsIDAuMTE4NzUsIDAuMDk2MjUsIDAuMDc1IiwgXAotICAgICAgICAgICIwLjE5ODc1LCAwLjE4MTI1LCAwLjE2ODc1LCAwLjE1LCAwLjEzNzUsIDAuMTA4NzUsIDAuMDg3NSIsIFwKLSAgICAgICAgICAiMC4yMTEyNSwgMC4yLCAwLjE4MTI1LCAwLjE2MjUsIDAuMTUsIDAuMTIxMjUsIDAuMTA2MjUiLCBcCi0gICAgICAgICAgIjAuMjMzNzUsIDAuMjE2MjUsIDAuMjAzNzUsIDAuMTg1LCAwLjE3MjUsIDAuMTQzNzUsIDAuMTIyNSIsIFwKLSAgICAgICAgICAiMC4yNDg3NSwgMC4yMzc1LCAwLjIxODc1LCAwLjIsIDAuMTg3NSwgMC4xNjUsIDAuMTQzNzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIkQmRSZSTiYhU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8xX0FOX0VfRVFfMV9BTl9STl9FUV8xX0FOX1NJX0VRXzAgPT0gMSdiMSI7Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjI1LCAwLjIxMzc1LCAwLjE5NSwgMC4xODI1LCAwLjE3LCAwLjE1Mzc1LCAwLjEzODc1IiwgXAotICAgICAgICAgICIwLjIzNjI1LCAwLjIyNSwgMC4yMDYyNSwgMC4xOTM3NSwgMC4xODEyNSwgMC4xNjUsIDAuMTUiLCBcCi0gICAgICAgICAgIjAuMjU1LCAwLjIzNzUsIDAuMjI1LCAwLjIxMjUsIDAuMTkzNzUsIDAuMTc3NSwgMC4xNjI1IiwgXAotICAgICAgICAgICIwLjI2NzUsIDAuMjU2MjUsIDAuMjM3NSwgMC4yMjUsIDAuMjEyNSwgMC4xOTYyNSwgMC4xODEyNSIsIFwKLSAgICAgICAgICAiMC4yOCwgMC4yNjg3NSwgMC4yNSwgMC4yMzc1LCAwLjIyNSwgMC4yMDg3NSwgMC4xOTM3NSIsIFwKLSAgICAgICAgICAiMC4yOTYyNSwgMC4yODUsIDAuMjY2MjUsIDAuMjUzNzUsIDAuMjQxMjUsIDAuMjI1LCAwLjIxIiwgXAotICAgICAgICAgICIwLjMxMTI1LCAwLjMsIDAuMjgxMjUsIDAuMjY4NzUsIDAuMjU2MjUsIDAuMjQsIDAuMjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTSSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjQzNzIyOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDY0MTg4MTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2NDM3MjI7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyMjEyLCAwLjAwMjIwMywgMC4wMDIxOTcsIDAuMDAyMTk0LCAwLjAwMjE5MiwgMC4wMDIxODgsIDAuMDAyMTg2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzNTY0LCAwLjAwMzU2LCAwLjAwMzU1NywgMC4wMDM1NTYsIDAuMDAzNTU1LCAwLjAwMzU1MiwgMC4wMDM1NTIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiU0UiOwotICAgICAgc2RmX2NvbmQgOiAiU0UgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMTI1LCAtMC4xMTM3NSwgLTAuMTA3NSwgLTAuMDk1LCAtMC4wODI1LCAtMC4wNjYyNSwgLTAuMDUxMjUiLCBcCi0gICAgICAgICAgIi0wLjEzNjI1LCAtMC4xMjUsIC0wLjExODc1LCAtMC4xMDYyNSwgLTAuMDkzNzUsIC0wLjA3NzUsIC0wLjA2ODc1IiwgXAotICAgICAgICAgICItMC4xNDg3NSwgLTAuMTQzNzUsIC0wLjEzMTI1LCAtMC4xMTg3NSwgLTAuMTA2MjUsIC0wLjA5LCAtMC4wODEyNSIsIFwKLSAgICAgICAgICAiLTAuMTY3NSwgLTAuMTU2MjUsIC0wLjE0Mzc1LCAtMC4xMzEyNSwgLTAuMTI1LCAtMC4xMDg3NSwgLTAuMDkzNzUiLCBcCi0gICAgICAgICAgIi0wLjE4LCAtMC4xNjg3NSwgLTAuMTU2MjUsIC0wLjE0Mzc1LCAtMC4xMzc1LCAtMC4xMjEyNSwgLTAuMTA2MjUiLCBcCi0gICAgICAgICAgIi0wLjIwMjUsIC0wLjE5MTI1LCAtMC4xNzg3NSwgLTAuMTY2MjUsIC0wLjE2LCAtMC4xNDM3NSwgLTAuMTI4NzUiLCBcCi0gICAgICAgICAgIi0wLjIxNzUsIC0wLjIxMjUsIC0wLjIsIC0wLjE4NzUsIC0wLjE3NSwgLTAuMTU4NzUsIC0wLjE1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDE4NzUsIC0wLjAwMTI1LCAwLjAxMTI1LCAwLjAyMzc1LCAwLjAzNjI1LCAwLjA1ODc1LCAwLjA3Mzc1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDEyNSwgMCwgMC4wMTI1LCAwLjAyNSwgMC4wNDc1LCAwLjA2ODc1IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzEyNSwgLTAuMDEyNSwgMCwgMC4wMTI1LCAwLjAzNSwgMC4wNSIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNDM3NSwgLTAuMDI1LCAtMC4wMTI1LCAwLCAwLjAyMjUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIi0wLjA2NzUsIC0wLjA1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAxMjUsIDAuMDEsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjA4Mzc1LCAtMC4wNzI1LCAtMC4wNTM3NSwgLTAuMDQxMjUsIC0wLjAyODc1LCAtMC4wMDYyNSwgMC4wMDg3NSIsIFwKLSAgICAgICAgICAiLTAuMDk4NzUsIC0wLjA4NzUsIC0wLjA3NSwgLTAuMDU2MjUsIC0wLjA0Mzc1LCAtMC4wMjEyNSwgLTAuMDA2MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlNFIjsKLSAgICAgIHNkZl9jb25kIDogIlNFID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIwNjI1LCAwLjE5NSwgMC4xNzYyNSwgMC4xNjM3NSwgMC4xNTEyNSwgMC4xMzUsIDAuMTIiLCBcCi0gICAgICAgICAgIjAuMjE3NSwgMC4yMDYyNSwgMC4xODc1LCAwLjE3NSwgMC4xNjI1LCAwLjE0NjI1LCAwLjEzMTI1IiwgXAotICAgICAgICAgICIwLjIzLCAwLjIxODc1LCAwLjIsIDAuMTg3NSwgMC4xNzUsIDAuMTU4NzUsIDAuMTQzNzUiLCBcCi0gICAgICAgICAgIjAuMjQyNSwgMC4yMzEyNSwgMC4yMTg3NSwgMC4yLCAwLjE4NzUsIDAuMTcxMjUsIDAuMTU2MjUiLCBcCi0gICAgICAgICAgIjAuMjYxMjUsIDAuMjQzNzUsIDAuMjMxMjUsIDAuMjE4NzUsIDAuMiwgMC4xODM3NSwgMC4xNjg3NSIsIFwKLSAgICAgICAgICAiMC4yODM3NSwgMC4yNjYyNSwgMC4yNTM3NSwgMC4yMzUsIDAuMjIyNSwgMC4yMDYyNSwgMC4xOTEyNSIsIFwKLSAgICAgICAgICAiMC4yOTg3NSwgMC4yODc1LCAwLjI2ODc1LCAwLjI1NjI1LCAwLjI0Mzc1LCAwLjIyNzUsIDAuMjEyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEzMTI1LCAwLjEyLCAwLjEwNzUsIDAuMDg4NzUsIDAuMDcsIDAuMDQ3NSwgMC4wMjYyNSIsIFwKLSAgICAgICAgICAiMC4xNDI1LCAwLjEzMTI1LCAwLjExODc1LCAwLjEsIDAuMDgxMjUsIDAuMDU4NzUsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiMC4xNTUsIDAuMTQzNzUsIDAuMTMxMjUsIDAuMTEyNSwgMC4wOTM3NSwgMC4wNzEyNSwgMC4wNSIsIFwKLSAgICAgICAgICAiMC4xNjc1LCAwLjE1NjI1LCAwLjE0Mzc1LCAwLjEyNSwgMC4xMDYyNSwgMC4wODM3NSwgMC4wNjI1IiwgXAotICAgICAgICAgICIwLjE4LCAwLjE2ODc1LCAwLjE1NjI1LCAwLjEzNzUsIDAuMTE4NzUsIDAuMDk2MjUsIDAuMDc1IiwgXAotICAgICAgICAgICIwLjIwMjUsIDAuMTkxMjUsIDAuMTcyNSwgMC4xNTM3NSwgMC4xNDEyNSwgMC4xMTg3NSwgMC4wOTc1IiwgXAotICAgICAgICAgICIwLjIxNzUsIDAuMjA2MjUsIDAuMTg3NSwgMC4xNzUsIDAuMTU2MjUsIDAuMTMzNzUsIDAuMTEyNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogU0VERkZUUlg0ICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoU0VERkZUUlg0KSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuNjc5ODY1OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIGZmIChOMzAsUUJJTlQpIHsKLSAgICBuZXh0X3N0YXRlIDogIigoU0UgU0kpICsgKCFTRSAoKCghKCghRCkgRSkpICghKCghRSkgKCFOMzApKSkpIFJOKSkpIjsKLSAgICBjbG9ja2VkX29uIDogIkNLIjsKLSAgfQotICBwaW4oQ0spICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDUyMTQ1ODsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA1MjExODQ7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNTIxNDU4OwotICAgIGNsb2NrIDogdHJ1ZTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDIzMTMsIDAuMDAyMzAyLCAwLjAwMjI5LCAwLjAwMjI4NCwgMC4wMDIyNzksIDAuMDAyMjcyLCAwLjAwMjI2OSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNTE3MSwgMC4wMDUxNjEsIDAuMDA1MTUzLCAwLjAwNTE0NywgMC4wMDUxNDUsIDAuMDA1MTQ3LCAwLjAwNTE0NyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQmIUUmIVJOJiFTRSYhU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX0VfRVFfMF9BTl9STl9FUV8wX0FOX1NFX0VRXzBfQU5fU0lfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjMyNDU0MiwgMC4zMzY1MzQsIDAuMzUxNTA4LCAwLjM2NjkwMywgMC4zODI1MzksIDAuNDA2ODc2LCAwLjQyNzczNyIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMjA0MjI4LCAwLjIxNTQ2NCwgMC4yMzA1OTYsIDAuMjQ1MjQ5LCAwLjI2MDEzOCwgMC4yODMyNTIsIDAuMzAyMzcxIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihEKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA1NTE5Njc7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNTUxNjc5OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDU1MTk2NzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDYwOTcsIDAuMDA2MDc4LCAwLjAwNjA2NiwgMC4wMDYwNTksIDAuMDA2MDU1LCAwLjAwNjA1MSwgMC4wMDYwNSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNTE0MywgMC4wMDUxMywgMC4wMDUxMjEsIDAuMDA1MTE3LCAwLjAwNTExMywgMC4wMDUxMDksIDAuMDA1MTA4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIkUmUk4mIVNFIjsKLSAgICAgIHNkZl9jb25kIDogIkVfRVFfMV9BTl9STl9FUV8xX0FOX1NFX0VRXzAgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMzMxMjUsIC0wLjMyLCAtMC4zMTM3NSwgLTAuMzAxMjUsIC0wLjI4ODc1LCAtMC4yNzI1LCAtMC4yNjM3NSIsIFwKLSAgICAgICAgICAiLTAuMzQyNSwgLTAuMzM3NSwgLTAuMzI1LCAtMC4zMTI1LCAtMC4zLCAtMC4yODM3NSwgLTAuMjc1IiwgXAotICAgICAgICAgICItMC4zNjEyNSwgLTAuMzUsIC0wLjMzNzUsIC0wLjMyNSwgLTAuMzE4NzUsIC0wLjMwMjUsIC0wLjI4NzUiLCBcCi0gICAgICAgICAgIi0wLjM3Mzc1LCAtMC4zNjI1LCAtMC4zNSwgLTAuMzQzNzUsIC0wLjMzMTI1LCAtMC4zMTUsIC0wLjMwNjI1IiwgXAotICAgICAgICAgICItMC4zODYyNSwgLTAuMzc1LCAtMC4zNjg3NSwgLTAuMzU2MjUsIC0wLjM0Mzc1LCAtMC4zMzM3NSwgLTAuMzE4NzUiLCBcCi0gICAgICAgICAgIi0wLjQwODc1LCAtMC4zOTc1LCAtMC4zODUsIC0wLjM3ODc1LCAtMC4zNjYyNSwgLTAuMzUsIC0wLjMzNSIsIFwKLSAgICAgICAgICAiLTAuNDIzNzUsIC0wLjQxMjUsIC0wLjQwNjI1LCAtMC4zOTM3NSwgLTAuMzgxMjUsIC0wLjM2NSwgLTAuMzU2MjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4yLCAtMC4xODg3NSwgLTAuMTc2MjUsIC0wLjE2Mzc1LCAtMC4xNTEyNSwgLTAuMTI4NzUsIC0wLjEwNzUiLCBcCi0gICAgICAgICAgIi0wLjIxMTI1LCAtMC4yLCAtMC4xODc1LCAtMC4xNzUsIC0wLjE2MjUsIC0wLjE0LCAtMC4xMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMjMsIC0wLjIxMjUsIC0wLjIsIC0wLjE4NzUsIC0wLjE3NSwgLTAuMTUyNSwgLTAuMTM3NSIsIFwKLSAgICAgICAgICAiLTAuMjQyNSwgLTAuMjMxMjUsIC0wLjIxMjUsIC0wLjIsIC0wLjE4NzUsIC0wLjE3MTI1LCAtMC4xNSIsIFwKLSAgICAgICAgICAiLTAuMjU1LCAtMC4yNDM3NSwgLTAuMjI1LCAtMC4yMTI1LCAtMC4yLCAtMC4xODM3NSwgLTAuMTYyNSIsIFwKLSAgICAgICAgICAiLTAuMjcxMjUsIC0wLjI2LCAtMC4yNDc1LCAtMC4yMzUsIC0wLjIyMjUsIC0wLjIsIC0wLjE3ODc1IiwgXAotICAgICAgICAgICItMC4yODYyNSwgLTAuMjc1LCAtMC4yNjI1LCAtMC4yNDM3NSwgLTAuMjMxMjUsIC0wLjIxNSwgLTAuMTkzNzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIkUmUk4mIVNFIjsKLSAgICAgIHNkZl9jb25kIDogIkVfRVFfMV9BTl9STl9FUV8xX0FOX1NFX0VRXzAgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuNDY4NzUsIDAuNDU3NSwgMC40Mzg3NSwgMC40MjYyNSwgMC40MTM3NSwgMC4zOTc1LCAwLjM4MjUiLCBcCi0gICAgICAgICAgIjAuNDgsIDAuNDY4NzUsIDAuNDUsIDAuNDM3NSwgMC40MjUsIDAuNDA4NzUsIDAuMzkzNzUiLCBcCi0gICAgICAgICAgIjAuNDk4NzUsIDAuNDgxMjUsIDAuNDY4NzUsIDAuNDUsIDAuNDM3NSwgMC40MjEyNSwgMC40MDYyNSIsIFwKLSAgICAgICAgICAiMC41MTEyNSwgMC41LCAwLjQ4MTI1LCAwLjQ2ODc1LCAwLjQ1NjI1LCAwLjQzMzc1LCAwLjQyNSIsIFwKLSAgICAgICAgICAiMC41MjM3NSwgMC41MTI1LCAwLjQ5Mzc1LCAwLjQ4MTI1LCAwLjQ2ODc1LCAwLjQ1MjUsIDAuNDM3NSIsIFwKLSAgICAgICAgICAiMC41NDYyNSwgMC41MzUsIDAuNTE2MjUsIDAuNTAzNzUsIDAuNDkxMjUsIDAuNDY4NzUsIDAuNDUzNzUiLCBcCi0gICAgICAgICAgIjAuNTYxMjUsIDAuNTUsIDAuNTMxMjUsIDAuNTE4NzUsIDAuNTA2MjUsIDAuNDgzNzUsIDAuNDc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzI1LCAwLjMwNzUsIDAuMjk1LCAwLjI3NjI1LCAwLjI2Mzc1LCAwLjIzNSwgMC4yMTM3NSIsIFwKLSAgICAgICAgICAiMC4zMzYyNSwgMC4zMTg3NSwgMC4zMDYyNSwgMC4yODc1LCAwLjI3NSwgMC4yNDYyNSwgMC4yMjUiLCBcCi0gICAgICAgICAgIjAuMzQ4NzUsIDAuMzM3NSwgMC4zMTg3NSwgMC4zMDYyNSwgMC4yODc1LCAwLjI2NSwgMC4yNDM3NSIsIFwKLSAgICAgICAgICAiMC4zNjEyNSwgMC4zNSwgMC4zMzEyNSwgMC4zMTg3NSwgMC4zLCAwLjI3NzUsIDAuMjU2MjUiLCBcCi0gICAgICAgICAgIjAuMzczNzUsIDAuMzYyNSwgMC4zNDM3NSwgMC4zMzEyNSwgMC4zMTI1LCAwLjI5LCAwLjI2ODc1IiwgXAotICAgICAgICAgICIwLjM5LCAwLjM3ODc1LCAwLjM2NjI1LCAwLjM0NzUsIDAuMzM1LCAwLjMwNjI1LCAwLjI4NSIsIFwKLSAgICAgICAgICAiMC40MDUsIDAuMzkzNzUsIDAuMzgxMjUsIDAuMzYyNSwgMC4zNDM3NSwgMC4zMjEyNSwgMC4zIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihFKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDExMTM0NzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDExMTM0NzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDExMTE4NzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDY0NiwgMC4wMDY0NDgsIDAuMDA2NDQxLCAwLjAwNjQzNywgMC4wMDY0MzUsIDAuMDA2NDMyLCAwLjAwNjQzMyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNzI1MiwgMC4wMDcyMzQsIDAuMDA3MjI0LCAwLjAwNzIxNywgMC4wMDcyMTIsIDAuMDA3MjA2LCAwLjAwNzIwNiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJSTiYhU0UiOwotICAgICAgc2RmX2NvbmQgOiAiUk5fRVFfMV9BTl9TRV9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjI1NjI1LCAtMC4yNDUsIC0wLjIzMjUsIC0wLjIxMzc1LCAtMC4yMDEyNSwgLTAuMTcyNSwgLTAuMTU3NSIsIFwKLSAgICAgICAgICAiLTAuMjY3NSwgLTAuMjU2MjUsIC0wLjI0Mzc1LCAtMC4yMjUsIC0wLjIxMjUsIC0wLjE5LCAtMC4xNjg3NSIsIFwKLSAgICAgICAgICAiLTAuMjgsIC0wLjI2ODc1LCAtMC4yNTYyNSwgLTAuMjM3NSwgLTAuMjI1LCAtMC4yMDI1LCAtMC4xODEyNSIsIFwKLSAgICAgICAgICAiLTAuMjk4NzUsIC0wLjI4NzUsIC0wLjI2ODc1LCAtMC4yNTYyNSwgLTAuMjM3NSwgLTAuMjE1LCAtMC4xOTM3NSIsIFwKLSAgICAgICAgICAiLTAuMzExMjUsIC0wLjMsIC0wLjI4MTI1LCAtMC4yNjg3NSwgLTAuMjUsIC0wLjIyNzUsIC0wLjIwNjI1IiwgXAotICAgICAgICAgICItMC4zMzM3NSwgLTAuMzIyNSwgLTAuMzAzNzUsIC0wLjI5MTI1LCAtMC4yNzI1LCAtMC4yNSwgLTAuMjI4NzUiLCBcCi0gICAgICAgICAgIi0wLjM0ODc1LCAtMC4zMzc1LCAtMC4zMjUsIC0wLjMwNjI1LCAtMC4yOTM3NSwgLTAuMjcxMjUsIC0wLjI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMjMxMjUsIC0wLjIyLCAtMC4yMDc1LCAtMC4xOTUsIC0wLjE4MjUsIC0wLjE2LCAtMC4xMzg3NSIsIFwKLSAgICAgICAgICAiLTAuMjQyNSwgLTAuMjMxMjUsIC0wLjIxODc1LCAtMC4yMDYyNSwgLTAuMTkzNzUsIC0wLjE3MTI1LCAtMC4xNTYyNSIsIFwKLSAgICAgICAgICAiLTAuMjYxMjUsIC0wLjI1LCAtMC4yMzEyNSwgLTAuMjE4NzUsIC0wLjIwNjI1LCAtMC4xODM3NSwgLTAuMTY4NzUiLCBcCi0gICAgICAgICAgIi0wLjI3Mzc1LCAtMC4yNjI1LCAtMC4yNSwgLTAuMjM3NSwgLTAuMjI1LCAtMC4yMDI1LCAtMC4xODEyNSIsIFwKLSAgICAgICAgICAiLTAuMjg2MjUsIC0wLjI3NSwgLTAuMjYyNSwgLTAuMjUsIC0wLjIzNzUsIC0wLjIxNSwgLTAuMTkzNzUiLCBcCi0gICAgICAgICAgIi0wLjMwODc1LCAtMC4yOTc1LCAtMC4yNzg3NSwgLTAuMjY2MjUsIC0wLjI1Mzc1LCAtMC4yMzEyNSwgLTAuMjE2MjUiLCBcCi0gICAgICAgICAgIi0wLjMyMzc1LCAtMC4zMTI1LCAtMC4yOTM3NSwgLTAuMjgxMjUsIC0wLjI2ODc1LCAtMC4yNDYyNSwgLTAuMjMxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlJOJiFTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJSTl9FUV8xX0FOX1NFX0VRXzAgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuNTEyNSwgMC41MDEyNSwgMC40ODI1LCAwLjQ3LCAwLjQ1NzUsIDAuNDQxMjUsIDAuNDI2MjUiLCBcCi0gICAgICAgICAgIjAuNTMsIDAuNTEyNSwgMC41LCAwLjQ4MTI1LCAwLjQ2ODc1LCAwLjQ1MjUsIDAuNDM3NSIsIFwKLSAgICAgICAgICAiMC41NDI1LCAwLjUzMTI1LCAwLjUxMjUsIDAuNSwgMC40ODc1LCAwLjQ2NSwgMC40NTYyNSIsIFwKLSAgICAgICAgICAiMC41NTUsIDAuNTQzNzUsIDAuNTMxMjUsIDAuNTEyNSwgMC41LCAwLjQ4Mzc1LCAwLjQ2ODc1IiwgXAotICAgICAgICAgICIwLjU3Mzc1LCAwLjU1NjI1LCAwLjU0Mzc1LCAwLjUzMTI1LCAwLjUxMjUsIDAuNDk2MjUsIDAuNDgxMjUiLCBcCi0gICAgICAgICAgIjAuNTk2MjUsIDAuNTc4NzUsIDAuNTY2MjUsIDAuNTQ3NSwgMC41MzUsIDAuNTE4NzUsIDAuNTAzNzUiLCBcCi0gICAgICAgICAgIjAuNjExMjUsIDAuNiwgMC41ODEyNSwgMC41Njg3NSwgMC41NTYyNSwgMC41MzM3NSwgMC41MTg3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjM2MjUsIDAuMzUxMjUsIDAuMzM4NzUsIDAuMzI2MjUsIDAuMzIsIDAuMzAzNzUsIDAuMjg4NzUiLCBcCi0gICAgICAgICAgIjAuMzczNzUsIDAuMzYyNSwgMC4zNSwgMC4zMzc1LCAwLjMzMTI1LCAwLjMxNSwgMC4zIiwgXAotICAgICAgICAgICIwLjM4NjI1LCAwLjM3NSwgMC4zNjI1LCAwLjM1LCAwLjM0Mzc1LCAwLjMyNzUsIDAuMzEyNSIsIFwKLSAgICAgICAgICAiMC4zOTg3NSwgMC4zODc1LCAwLjM3NSwgMC4zNjI1LCAwLjM1NjI1LCAwLjM0LCAwLjMyNSIsIFwKLSAgICAgICAgICAiMC40MTEyNSwgMC40LCAwLjM4NzUsIDAuMzc1LCAwLjM2ODc1LCAwLjM1MjUsIDAuMzM3NSIsIFwKLSAgICAgICAgICAiMC40MzM3NSwgMC40MjI1LCAwLjQxLCAwLjM5NzUsIDAuMzg1LCAwLjM2ODc1LCAwLjM2IiwgXAotICAgICAgICAgICIwLjQ0ODc1LCAwLjQzNzUsIDAuNDI1LCAwLjQxMjUsIDAuNDA2MjUsIDAuMzksIDAuMzc1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihRKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuNTI1MDQ1OwotICAgIGZ1bmN0aW9uIDogIk4zMCI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3NlbnNlIDogbm9uX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiByaXNpbmdfZWRnZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yNTM5ODksIDAuMzg0OTIyLCAwLjUxMzI0OCwgMC42MDM5NzMsIDAuNzQ5NjQ2LCAwLjg3OTIyNSwgMS4wNjE0OCIsIFwKLSAgICAgICAgICAiMC4yNjU5OTYsIDAuMzk2OTMxLCAwLjUyNTU2OCwgMC42MTczMDIsIDAuNzYzMDQ2LCAwLjg5MDkxNiwgMS4wNzMxNSIsIFwKLSAgICAgICAgICAiMC4yODA4NzQsIDAuNDExNzkxLCAwLjUzOTgyNiwgMC42MzIyMzIsIDAuNzc4MDg5LCAwLjkwNDYxOCwgMS4wODgyNCIsIFwKLSAgICAgICAgICAiMC4yOTYzNzQsIDAuNDI3MzE3LCAwLjU1NTk1LCAwLjY0NzYwMywgMC43OTQwNDIsIDAuOTIxNzE4LCAxLjEwMzY0IiwgXAotICAgICAgICAgICIwLjMxMTc1MSwgMC40NDI2OTksIDAuNTcwOTk2LCAwLjY2MTczLCAwLjgwODcxOCwgMC45MzU4OTgsIDEuMTIwMzMiLCBcCi0gICAgICAgICAgIjAuMzM2MDUyLCAwLjQ2NzAwMSwgMC41OTUzMjcsIDAuNjg2MDMyLCAwLjgzMTY3MiwgMC45NTkyMDcsIDEuMTQ0NCIsIFwKLSAgICAgICAgICAiMC4zNTY5MSwgMC40ODc4MzEsIDAuNjE1ODg0LCAwLjcwODE5NSwgMC44NTQxMTgsIDAuOTgwNjk1LCAxLjE2NDI0Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDYxMTc3LCAwLjMxMzUxOSwgMC41Nzg5NzEsIDAuNzY3NTU5LCAxLjA2OTAxLCAxLjMzMjY3LCAxLjcwNTA2IiwgXAotICAgICAgICAgICIwLjA2MDgyNiwgMC4zMTM0MDgsIDAuNTc4ODk0LCAwLjc2NDI2MSwgMS4wNjgxLCAxLjMzMjY4LCAxLjcwOTMzIiwgXAotICAgICAgICAgICIwLjA2MTAzOCwgMC4zMTM1MzUsIDAuNTc4NTM2LCAwLjc2NjA4MSwgMS4wNjkwMiwgMS4zMjkzOSwgMS43MDkzMSIsIFwKLSAgICAgICAgICAiMC4wNjExNjgsIDAuMzEzNDQ1LCAwLjU3ODg2MiwgMC43NjY4NDcsIDEuMDY2NjEsIDEuMzMyNjgsIDEuNzA5MzQiLCBcCi0gICAgICAgICAgIjAuMDYxMDU4LCAwLjMxMzU1MSwgMC41NzkxMzcsIDAuNzY3NDI2LCAxLjA2OTAyLCAxLjMzMjY2LCAxLjcwODY5IiwgXAotICAgICAgICAgICIwLjA2MTA2LCAwLjMxMzU1NCwgMC41Nzg5NTQsIDAuNzY3NDI3LCAxLjA2OTAxLCAxLjMzMjY2LCAxLjcwOTA3IiwgXAotICAgICAgICAgICIwLjA2MTA0LCAwLjMxMzU0MSwgMC41Nzg5OTMsIDAuNzY2MTQxLCAxLjA2OTAyLCAxLjMyOTksIDEuNzA5MzEiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yNzg2NywgMC40Mjc1ODIsIDAuNTczNTUsIDAuNjc3OTMzLCAwLjg0NTI4NSwgMC45OTIzMjcsIDEuMTk5MiIsIFwKLSAgICAgICAgICAiMC4yOTA2ODksIDAuNDM5NTg1LCAwLjU4NTU5MSwgMC42ODk4OTUsIDAuODU3ODQ2LCAxLjAwMjgyLCAxLjIxMzMiLCBcCi0gICAgICAgICAgIjAuMzA1NjM0LCAwLjQ1NDU0OSwgMC42MDA1NjQsIDAuNzA0ODc0LCAwLjg3MjM5MiwgMS4wMTgwMSwgMS4yMjgyMiIsIFwKLSAgICAgICAgICAiMC4zMjEwNTgsIDAuNDY5OTk0LCAwLjYxNTk1LCAwLjcyMDM3NywgMC44ODc3MDMsIDEuMDM0NTEsIDEuMjQzNjciLCBcCi0gICAgICAgICAgIjAuMzM2NjAxLCAwLjQ4NTM4OSwgMC42MzE0NzcsIDAuNzM1ODEsIDAuOTAzNDQzLCAxLjA0OTkzLCAxLjI1OTM2IiwgXAotICAgICAgICAgICIwLjM2MDk1LCAwLjUwOTg3MywgMC42NTU4MjksIDAuNzYwMjI4LCAwLjkyNzU3OSwgMS4wNzQzOCwgMS4yODM1NCIsIFwKLSAgICAgICAgICAiMC4zODE5OTcsIDAuNTMwODg1LCAwLjY3Njg4NywgMC43ODExOTgsIDAuOTQ4NTI4LCAxLjA5NDM4LCAxLjMwNDg1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDYzODYzLCAwLjM0NjM0OCwgMC42MzY0NTksIDAuODQ0MTI5LCAxLjE3NjUzLCAxLjQ2ODEyLCAxLjg4NTQ4IiwgXAotICAgICAgICAgICIwLjA2NDA4NCwgMC4zNDYzMzksIDAuNjM2NDQ5LCAwLjg0MzY4NSwgMS4xNzcwMywgMS40NjcwMSwgMS44ODI2NiIsIFwKLSAgICAgICAgICAiMC4wNjM5ODgsIDAuMzQ2ODc5LCAwLjYzNjUzMiwgMC44NDM2ODYsIDEuMTc2MTMsIDEuNDY3MzMsIDEuODgyNjgiLCBcCi0gICAgICAgICAgIjAuMDYzNzgzLCAwLjM0NjM0NSwgMC42MzY0ODMsIDAuODQ0MTA4LCAxLjE3NTgsIDEuNDY3MzEsIDEuODgyNSIsIFwKLSAgICAgICAgICAiMC4wNjQwNjMsIDAuMzQ2OTI0LCAwLjYzNjUyOSwgMC44NDM2ODQsIDEuMTc3LCAxLjQ2NzY3LCAxLjg4MjQ3IiwgXAotICAgICAgICAgICIwLjA2Mzk4MiwgMC4zNDYzNDQsIDAuNjM2NDg0LCAwLjg0Mzg4OCwgMS4xNzU4LCAxLjQ2ODIyLCAxLjg4MjUiLCBcCi0gICAgICAgICAgIjAuMDYzODUyLCAwLjM0NjkwMywgMC42MzY1NDQsIDAuODQ0MTY1LCAxLjE3Njk0LCAxLjQ2NzgsIDEuODg0MDciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDgwODMsIDAuMDA4MTksIDAuMDA4MTk2LCAwLjAwODE5NywgMC4wMDgxOTcsIDAuMDA4MTk2LCAwLjAwODE5NyIsIFwKLSAgICAgICAgICAiMC4wMDgwNzcsIDAuMDA4MTg0LCAwLjAwODE5MSwgMC4wMDgxOTIsIDAuMDA4MTkxLCAwLjAwODE5MSwgMC4wMDgxOSIsIFwKLSAgICAgICAgICAiMC4wMDgwNzEsIDAuMDA4MTc4LCAwLjAwODE4NCwgMC4wMDgxODUsIDAuMDA4MTg1LCAwLjAwODE4MywgMC4wMDgxODMiLCBcCi0gICAgICAgICAgIjAuMDA4MDY1LCAwLjAwODE3MywgMC4wMDgxOCwgMC4wMDgxODEsIDAuMDA4MTgsIDAuMDA4MTgsIDAuMDA4MTgiLCBcCi0gICAgICAgICAgIjAuMDA4MDYzLCAwLjAwODE3LCAwLjAwODE3NywgMC4wMDgxNzgsIDAuMDA4MTc3LCAwLjAwODE3NywgMC4wMDgxNzYiLCBcCi0gICAgICAgICAgIjAuMDA4MDU3LCAwLjAwODE2NSwgMC4wMDgxNzIsIDAuMDA4MTcyLCAwLjAwODE3MiwgMC4wMDgxNzIsIDAuMDA4MTcxIiwgXAotICAgICAgICAgICIwLjAwODA1NSwgMC4wMDgxNjIsIDAuMDA4MTY5LCAwLjAwODE3LCAwLjAwODE3LCAwLjAwODE2OSwgMC4wMDgxNjgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNzI1NiwgMC4wMDczNjksIDAuMDA3MzgzLCAwLjAwNzM4NywgMC4wMDczODksIDAuMDA3MzkxLCAwLjAwNzM5MyIsIFwKLSAgICAgICAgICAiMC4wMDcyNSwgMC4wMDczNjIsIDAuMDA3Mzc2LCAwLjAwNzM4LCAwLjAwNzM4MywgMC4wMDczODUsIDAuMDA3Mzg2IiwgXAotICAgICAgICAgICIwLjAwNzI0MSwgMC4wMDczNTUsIDAuMDA3MzY5LCAwLjAwNzM3MywgMC4wMDczNzcsIDAuMDA3Mzc4LCAwLjAwNzM3OSIsIFwKLSAgICAgICAgICAiMC4wMDcyMzYsIDAuMDA3MzUsIDAuMDA3MzY1LCAwLjAwNzM2OSwgMC4wMDczNzIsIDAuMDA3Mzc0LCAwLjAwNzM3NSIsIFwKLSAgICAgICAgICAiMC4wMDcyMzgsIDAuMDA3MzUxLCAwLjAwNzM2NSwgMC4wMDczNjksIDAuMDA3MzcyLCAwLjAwNzM3NSwgMC4wMDczNzUiLCBcCi0gICAgICAgICAgIjAuMDA3MjM1LCAwLjAwNzM0OCwgMC4wMDczNjIsIDAuMDA3MzY2LCAwLjAwNzM3LCAwLjAwNzM3MSwgMC4wMDczNzMiLCBcCi0gICAgICAgICAgIjAuMDA3MjQsIDAuMDA3MzUyLCAwLjAwNzM2NSwgMC4wMDczNjksIDAuMDA3Mzc0LCAwLjAwNzM3NCwgMC4wMDczNzQiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFFOKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuNTIzMzY1OwotICAgIGZ1bmN0aW9uIDogIlFCSU5UIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBub25fdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJpc2luZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMyNTA4OCwgMC40NTI3NzQsIDAuNTgwMzIzLCAwLjY3MTQ4NSwgMC44MTczMywgMC45NDQ5ODcsIDEuMTI3NCIsIFwKLSAgICAgICAgICAiMC4zMzcxNzQsIDAuNDY0NzgzLCAwLjU5MjM0NCwgMC42ODM1NDMsIDAuODI5MzUzLCAwLjk1NzA0MSwgMS4xMzkzNiIsIFwKLSAgICAgICAgICAiMC4zNTIxMTMsIDAuNDc5NzY3LCAwLjYwNzMxOSwgMC42OTg1MDcsIDAuODQ0MzIzLCAwLjk3MjAwMywgMS4xNTQzMiIsIFwKLSAgICAgICAgICAiMC4zNjc0NTMsIDAuNDk1MTYzLCAwLjYyMjcxNSwgMC43MTM4OTQsIDAuODU5ODUzLCAwLjk4NzM5NSwgMS4xNjk3NSIsIFwKLSAgICAgICAgICAiMC4zODI5OTMsIDAuNTEwNzE2LCAwLjYzODI3NCwgMC43Mjk0NTQsIDAuODc1MjcyLCAxLjAwMjk2LCAxLjE4NTI2IiwgXAotICAgICAgICAgICIwLjQwNzM0MiwgMC41MzUwNDksIDAuNjYyNjA0LCAwLjc1Mzc1NywgMC44OTk3MzksIDEuMDI3MjgsIDEuMjA5NjQiLCBcCi0gICAgICAgICAgIjAuNDI4Mzg5LCAwLjU1NjEsIDAuNjgzNjY0LCAwLjc3NDg0OSwgMC45MjA1NDgsIDEuMDQ4MzUsIDEuMjMwNjciKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTc1NiwgMC4zMTE0NzYsIDAuNTcyNjI2LCAwLjc1OTMwMywgMS4wNTczOCwgMS4zMTg4LCAxLjY4ODcxIiwgXAotICAgICAgICAgICIwLjA1NzYxLCAwLjMxMTUsIDAuNTcyNjE2LCAwLjc1Nzg1MSwgMS4wNTc1NiwgMS4zMTY0NSwgMS42ODk2MiIsIFwKLSAgICAgICAgICAiMC4wNTc1OTgsIDAuMzEyMDQ4LCAwLjU3MjcyLCAwLjc1NzgwNiwgMS4wNTcyNCwgMS4zMTY1MywgMS42ODk2IiwgXAotICAgICAgICAgICIwLjA1NzUyOSwgMC4zMTE1MDEsIDAuNTcyNjM4LCAwLjc1OTI3LCAxLjA1NzIxLCAxLjMxODQ4LCAxLjY4OTcyIiwgXAotICAgICAgICAgICIwLjA1NzU5NSwgMC4zMTIxMjIsIDAuNTcyNzE4LCAwLjc1NzgwOSwgMS4wNTc1NCwgMS4zMTY4OSwgMS42ODk4OCIsIFwKLSAgICAgICAgICAiMC4wNTc1ODIsIDAuMzExNTAxLCAwLjU3MjY0LCAwLjc1OTE5NiwgMS4wNTcyMywgMS4zMTg3MSwgMS42ODk3MiIsIFwKLSAgICAgICAgICAiMC4wNTc1NTYsIDAuMzEyMDc5LCAwLjU3MjczOCwgMC43NTkyOTIsIDEuMDU3MzIsIDEuMzE4MzQsIDEuNjkxOTciKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMDUxMjUsIDAuNDUwOTUzLCAwLjU5NjkwOSwgMC43MDEyMTksIDAuODY3OTI3LCAxLjAxNDEzLCAxLjIyMjc3IiwgXAotICAgICAgICAgICIwLjMxNzEzMSwgMC40NjI5NzksIDAuNjA4OTczLCAwLjcxMzI3NiwgMC44Nzk5NzMsIDEuMDI2MTgsIDEuMjM0NzciLCBcCi0gICAgICAgICAgIjAuMzMyMDE1LCAwLjQ3Nzg1LCAwLjYyMzgwMiwgMC43MjgyMTIsIDAuODk1MDQsIDEuMDQwOCwgMS4yNDk2NCIsIFwKLSAgICAgICAgICAiMC4zNDc1MjgsIDAuNDkzMzU0LCAwLjYzOTM0NCwgMC43NDM2NjYsIDAuOTEwNjE5LCAxLjA1NjU1LCAxLjI2NTE0IiwgXAotICAgICAgICAgICIwLjM2Mjg5NCwgMC41MDg3MjUsIDAuNjU0NjgsIDAuNzU4OTg5LCAwLjkyNTY5MiwgMS4wNzE3MSwgMS4yODA0MiIsIFwKLSAgICAgICAgICAiMC4zODcxOTUsIDAuNTMzMDI2LCAwLjY3ODk4MiwgMC43ODMyOSwgMC45NDk5OTIsIDEuMDk2MDEsIDEuMzA0ODEiLCBcCi0gICAgICAgICAgIjAuNDA4MDUsIDAuNTUzODg2LCAwLjY5OTgzNSwgMC44MDQyNDEsIDAuOTcxMDc0LCAxLjExNjgzLCAxLjMyNTY3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDYxMTg2LCAwLjM0NjU0MSwgMC42MzY3MDksIDAuODQ0MzU0LCAxLjE3NjEzLCAxLjQ2NjY4LCAxLjg4MjU5IiwgXAotICAgICAgICAgICIwLjA2MTIzNCwgMC4zNDY1MjYsIDAuNjM2NjQ4LCAwLjg0NDM0MywgMS4xNzYxNywgMS40NjY2NywgMS44ODE3NiIsIFwKLSAgICAgICAgICAiMC4wNjEyMiwgMC4zNDY1MzksIDAuNjM2NjU0LCAwLjg0NDMyNywgMS4xNzYxNCwgMS40NjYzLCAxLjg4MTc2IiwgXAotICAgICAgICAgICIwLjA2MTIxNywgMC4zNDY1MjksIDAuNjM2NjQ1LCAwLjg0NDM2MSwgMS4xNzYwNCwgMS40NjY3MywgMS44ODE3OSIsIFwKLSAgICAgICAgICAiMC4wNjEyMTcsIDAuMzQ2NTQ0LCAwLjYzNjcxNCwgMC44NDQzNDUsIDEuMTc2MTMsIDEuNDY2NjgsIDEuODgyMjYiLCBcCi0gICAgICAgICAgIjAuMDYxMjE3LCAwLjM0NjU0NCwgMC42MzY3MDYsIDAuODQ0MzQ1LCAxLjE3NjEzLCAxLjQ2NjY4LCAxLjg4MTg4IiwgXAotICAgICAgICAgICIwLjA2MTIxOCwgMC4zNDY1MzksIDAuNjM2NjQ1LCAwLjg0NDMyNiwgMS4xNzYxNCwgMS40NjYzLCAxLjg4MTc2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA3MjU2LCAwLjAwNzM2OSwgMC4wMDczODMsIDAuMDA3Mzg3LCAwLjAwNzM4OSwgMC4wMDczOTEsIDAuMDA3MzkzIiwgXAotICAgICAgICAgICIwLjAwNzI1LCAwLjAwNzM2MiwgMC4wMDczNzYsIDAuMDA3MzgsIDAuMDA3MzgzLCAwLjAwNzM4NSwgMC4wMDczODYiLCBcCi0gICAgICAgICAgIjAuMDA3MjQxLCAwLjAwNzM1NSwgMC4wMDczNjksIDAuMDA3MzczLCAwLjAwNzM3NywgMC4wMDczNzgsIDAuMDA3Mzc5IiwgXAotICAgICAgICAgICIwLjAwNzIzNiwgMC4wMDczNSwgMC4wMDczNjUsIDAuMDA3MzY5LCAwLjAwNzM3MiwgMC4wMDczNzQsIDAuMDA3Mzc1IiwgXAotICAgICAgICAgICIwLjAwNzIzOCwgMC4wMDczNTEsIDAuMDA3MzY1LCAwLjAwNzM2OSwgMC4wMDczNzIsIDAuMDA3Mzc1LCAwLjAwNzM3NSIsIFwKLSAgICAgICAgICAiMC4wMDcyMzUsIDAuMDA3MzQ4LCAwLjAwNzM2MiwgMC4wMDczNjYsIDAuMDA3MzcsIDAuMDA3MzcxLCAwLjAwNzM3MyIsIFwKLSAgICAgICAgICAiMC4wMDcyNCwgMC4wMDczNTIsIDAuMDA3MzY1LCAwLjAwNzM2OSwgMC4wMDczNzQsIDAuMDA3Mzc0LCAwLjAwNzM3NCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA4MDgzLCAwLjAwODE5LCAwLjAwODE5NiwgMC4wMDgxOTcsIDAuMDA4MTk3LCAwLjAwODE5NiwgMC4wMDgxOTciLCBcCi0gICAgICAgICAgIjAuMDA4MDc3LCAwLjAwODE4NCwgMC4wMDgxOTEsIDAuMDA4MTkyLCAwLjAwODE5MSwgMC4wMDgxOTEsIDAuMDA4MTkiLCBcCi0gICAgICAgICAgIjAuMDA4MDcxLCAwLjAwODE3OCwgMC4wMDgxODQsIDAuMDA4MTg1LCAwLjAwODE4NSwgMC4wMDgxODMsIDAuMDA4MTgzIiwgXAotICAgICAgICAgICIwLjAwODA2NSwgMC4wMDgxNzMsIDAuMDA4MTgsIDAuMDA4MTgxLCAwLjAwODE4LCAwLjAwODE4LCAwLjAwODE4IiwgXAotICAgICAgICAgICIwLjAwODA2MywgMC4wMDgxNywgMC4wMDgxNzcsIDAuMDA4MTc4LCAwLjAwODE3NywgMC4wMDgxNzcsIDAuMDA4MTc2IiwgXAotICAgICAgICAgICIwLjAwODA1NywgMC4wMDgxNjUsIDAuMDA4MTcyLCAwLjAwODE3MiwgMC4wMDgxNzIsIDAuMDA4MTcyLCAwLjAwODE3MSIsIFwKLSAgICAgICAgICAiMC4wMDgwNTUsIDAuMDA4MTYyLCAwLjAwODE2OSwgMC4wMDgxNywgMC4wMDgxNywgMC4wMDgxNjksIDAuMDA4MTY4Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihSTikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjA5MDEyOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYwODg2ODsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2MDkwMTI7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA2OTc2LCAwLjAwNjk1OCwgMC4wMDY5NDYsIDAuMDA2OTQsIDAuMDA2OTM5LCAwLjAwNjkzNSwgMC4wMDY5MzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDU5MTYsIDAuMDA1OTAzLCAwLjAwNTg5MiwgMC4wMDU4ODcsIDAuMDA1ODgyLCAwLjAwNTg4LCAwLjAwNTg4MSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhU0UiOwotICAgICAgc2RmX2NvbmQgOiAiU0UgPT0gMSdiMCI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuNDM3NSwgLTAuNDI2MjUsIC0wLjQxMzc1LCAtMC40MDc1LCAtMC4zOTUsIC0wLjM3ODc1LCAtMC4zNyIsIFwKLSAgICAgICAgICAiLTAuNDQ4NzUsIC0wLjQzNzUsIC0wLjQyNSwgLTAuNDE4NzUsIC0wLjQwNjI1LCAtMC4zOSwgLTAuMzgxMjUiLCBcCi0gICAgICAgICAgIi0wLjQ2MTI1LCAtMC40NTYyNSwgLTAuNDQzNzUsIC0wLjQzMTI1LCAtMC40MjUsIC0wLjQwODc1LCAtMC4zOTM3NSIsIFwKLSAgICAgICAgICAiLTAuNDgsIC0wLjQ2ODc1LCAtMC40NTYyNSwgLTAuNDUsIC0wLjQzNzUsIC0wLjQyMTI1LCAtMC40MTI1IiwgXAotICAgICAgICAgICItMC40OTI1LCAtMC40ODEyNSwgLTAuNDY4NzUsIC0wLjQ2MjUsIC0wLjQ1LCAtMC40MzM3NSwgLTAuNDI1IiwgXAotICAgICAgICAgICItMC41MTUsIC0wLjUwMzc1LCAtMC40OTEyNSwgLTAuNDg1LCAtMC40NzI1LCAtMC40NTYyNSwgLTAuNDQ3NSIsIFwKLSAgICAgICAgICAiLTAuNTMsIC0wLjUxODc1LCAtMC41MDYyNSwgLTAuNSwgLTAuNDg3NSwgLTAuNDcxMjUsIC0wLjQ2MjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4xNSwgLTAuMTM4NzUsIC0wLjEyNjI1LCAtMC4xMTM3NSwgLTAuMTAxMjUsIC0wLjA3ODc1LCAtMC4wNTc1IiwgXAotICAgICAgICAgICItMC4xNjEyNSwgLTAuMTUsIC0wLjEzNzUsIC0wLjEyNSwgLTAuMTEyNSwgLTAuMDksIC0wLjA2ODc1IiwgXAotICAgICAgICAgICItMC4xOCwgLTAuMTYyNSwgLTAuMTUsIC0wLjEzNzUsIC0wLjEyNSwgLTAuMTAyNSwgLTAuMDg3NSIsIFwKLSAgICAgICAgICAiLTAuMTkyNSwgLTAuMTgxMjUsIC0wLjE2MjUsIC0wLjE1LCAtMC4xMzc1LCAtMC4xMTUsIC0wLjEiLCBcCi0gICAgICAgICAgIi0wLjIwNSwgLTAuMTkzNzUsIC0wLjE3NSwgLTAuMTYyNSwgLTAuMTUsIC0wLjEyNzUsIC0wLjExMjUiLCBcCi0gICAgICAgICAgIi0wLjIyMTI1LCAtMC4yMSwgLTAuMTk3NSwgLTAuMTg1LCAtMC4xNzI1LCAtMC4xNSwgLTAuMTI4NzUiLCBcCi0gICAgICAgICAgIi0wLjIzNjI1LCAtMC4yMjUsIC0wLjIxMjUsIC0wLjIsIC0wLjE4MTI1LCAtMC4xNjUsIC0wLjE0Mzc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhU0UiOwotICAgICAgc2RmX2NvbmQgOiAiU0UgPT0gMSdiMCI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuNTMxMjUsIDAuNTIsIDAuNTAxMjUsIDAuNDg4NzUsIDAuNDc2MjUsIDAuNDYsIDAuNDQ1IiwgXAotICAgICAgICAgICIwLjU0MjUsIDAuNTMxMjUsIDAuNTE4NzUsIDAuNSwgMC40ODc1LCAwLjQ3MTI1LCAwLjQ1NjI1IiwgXAotICAgICAgICAgICIwLjU2MTI1LCAwLjU1LCAwLjUzMTI1LCAwLjUxODc1LCAwLjUwNjI1LCAwLjQ4Mzc1LCAwLjQ2ODc1IiwgXAotICAgICAgICAgICIwLjU3Mzc1LCAwLjU2MjUsIDAuNTQzNzUsIDAuNTMxMjUsIDAuNTE4NzUsIDAuNTAyNSwgMC40ODc1IiwgXAotICAgICAgICAgICIwLjU5MjUsIDAuNTc1LCAwLjU2MjUsIDAuNTQzNzUsIDAuNTMxMjUsIDAuNTE1LCAwLjUiLCBcCi0gICAgICAgICAgIjAuNjA4NzUsIDAuNTk3NSwgMC41Nzg3NSwgMC41NjYyNSwgMC41NTM3NSwgMC41Mzc1LCAwLjUyMjUiLCBcCi0gICAgICAgICAgIjAuNjIzNzUsIDAuNjEyNSwgMC42LCAwLjU4MTI1LCAwLjU2ODc1LCAwLjU1MjUsIDAuNTM3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI3NSwgMC4yNjM3NSwgMC4yNDUsIDAuMjMyNSwgMC4yMTM3NSwgMC4xOTEyNSwgMC4xNyIsIFwKLSAgICAgICAgICAiMC4yODYyNSwgMC4yNzUsIDAuMjU2MjUsIDAuMjQzNzUsIDAuMjI1LCAwLjIwMjUsIDAuMTgxMjUiLCBcCi0gICAgICAgICAgIjAuMjk4NzUsIDAuMjg3NSwgMC4yNzUsIDAuMjU2MjUsIDAuMjQzNzUsIDAuMjE1LCAwLjE5Mzc1IiwgXAotICAgICAgICAgICIwLjMxNzUsIDAuMzA2MjUsIDAuMjg3NSwgMC4yNjg3NSwgMC4yNTYyNSwgMC4yMjc1LCAwLjIwNjI1IiwgXAotICAgICAgICAgICIwLjMzLCAwLjMxODc1LCAwLjMsIDAuMjgxMjUsIDAuMjY4NzUsIDAuMjQsIDAuMjE4NzUiLCBcCi0gICAgICAgICAgIjAuMzQ2MjUsIDAuMzM1LCAwLjMxNjI1LCAwLjMwMzc1LCAwLjI4NSwgMC4yNjI1LCAwLjI0MTI1IiwgXAotICAgICAgICAgICIwLjM2MTI1LCAwLjM1LCAwLjMzMTI1LCAwLjMxODc1LCAwLjMsIDAuMjc3NSwgMC4yNTYyNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oU0UpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTM5Mzg1OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTM5MjI7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxMzkzODU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzMzc5LCAwLjAwMzM3LCAwLjAwMzM2MywgMC4wMDMzNiwgMC4wMDMzNTcsIDAuMDAzMzU1LCAwLjAwMzM1NSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNDQ2NywgMC4wMDQ0NDksIDAuMDA0NDM2LCAwLjAwNDQyOSwgMC4wMDQ0MjQsIDAuMDA0NDE4LCAwLjAwNDQxNyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRCYhRSYhUk4mU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX0VfRVFfMF9BTl9STl9FUV8wX0FOX1NJX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMTEyNSwgLTAuMTAxMjUsIC0wLjA4ODc1LCAtMC4wNzYyNSwgLTAuMDYzNzUsIC0wLjA1Mzc1LCAtMC4wMzg3NSIsIFwKLSAgICAgICAgICAiLTAuMTE3NSwgLTAuMTEyNSwgLTAuMSwgLTAuMDg3NSwgLTAuMDc1LCAtMC4wNjUsIC0wLjA1IiwgXAotICAgICAgICAgICItMC4xMzYyNSwgLTAuMTI1LCAtMC4xMTI1LCAtMC4xLCAtMC4wOTM3NSwgLTAuMDc3NSwgLTAuMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMTQ4NzUsIC0wLjEzNzUsIC0wLjEyNSwgLTAuMTEyNSwgLTAuMTA2MjUsIC0wLjA5LCAtMC4wNzUiLCBcCi0gICAgICAgICAgIi0wLjE2MTI1LCAtMC4xNSwgLTAuMTM3NSwgLTAuMTMxMjUsIC0wLjExODc1LCAtMC4xMDI1LCAtMC4wODc1IiwgXAotICAgICAgICAgICItMC4xODM3NSwgLTAuMTcyNSwgLTAuMTYsIC0wLjE0NzUsIC0wLjE0MTI1LCAtMC4xMjUsIC0wLjExIiwgXAotICAgICAgICAgICItMC4yMDUsIC0wLjE5Mzc1LCAtMC4xODEyNSwgLTAuMTY4NzUsIC0wLjE1NjI1LCAtMC4xNDYyNSwgLTAuMTMxMjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLCAwLjAxMTI1LCAwLjAyMzc1LCAwLjAzNjI1LCAwLjA0ODc1LCAwLjA3MTI1LCAwLjA5MjUiLCBcCi0gICAgICAgICAgIi0wLjAxMTI1LCAwLCAwLjAxMjUsIDAuMDI1LCAwLjAzNzUsIDAuMDYsIDAuMDgxMjUiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTI1LCAwLCAwLjAxMjUsIDAuMDI1LCAwLjA0NzUsIDAuMDY4NzUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMjUsIC0wLjAxMjUsIDAsIDAuMDEyNSwgMC4wMzUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAxMjUsIDAsIDAuMDIyNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDY1LCAtMC4wNTM3NSwgLTAuMDQxMjUsIC0wLjAyODc1LCAtMC4wMTYyNSwgMC4wMDYyNSwgMC4wMjEyNSIsIFwKLSAgICAgICAgICAiLTAuMDgsIC0wLjA2ODc1LCAtMC4wNTYyNSwgLTAuMDQzNzUsIC0wLjAzMTI1LCAtMC4wMDg3NSwgMC4wMDYyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRCYhRSZSTiYhU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX0VfRVFfMF9BTl9STl9FUV8xX0FOX1NJX0VRXzAgPT0gMSdiMSI7Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMTQzNzUsIC0wLjEzMjUsIC0wLjEyLCAtMC4xMDc1LCAtMC4xMDEyNSwgLTAuMDg1LCAtMC4wNyIsIFwKLSAgICAgICAgICAiLTAuMTU1LCAtMC4xNDM3NSwgLTAuMTMxMjUsIC0wLjExODc1LCAtMC4xMTI1LCAtMC4wOTYyNSwgLTAuMDgxMjUiLCBcCi0gICAgICAgICAgIi0wLjE2NzUsIC0wLjE1NjI1LCAtMC4xNDM3NSwgLTAuMTM3NSwgLTAuMTI1LCAtMC4xMDg3NSwgLTAuMSIsIFwKLSAgICAgICAgICAiLTAuMTgsIC0wLjE3NSwgLTAuMTYyNSwgLTAuMTUsIC0wLjEzNzUsIC0wLjEyNzUsIC0wLjExMjUiLCBcCi0gICAgICAgICAgIi0wLjE5MjUsIC0wLjE4NzUsIC0wLjE3NSwgLTAuMTYyNSwgLTAuMTUsIC0wLjE0LCAtMC4xMjUiLCBcCi0gICAgICAgICAgIi0wLjIxNSwgLTAuMjAzNzUsIC0wLjE5MTI1LCAtMC4xNzg3NSwgLTAuMTcyNSwgLTAuMTU2MjUsIC0wLjE0MTI1IiwgXAotICAgICAgICAgICItMC4yMjM3NSwgLTAuMjE4NzUsIC0wLjIwNjI1LCAtMC4xOTM3NSwgLTAuMTg3NSwgLTAuMTcxMjUsIC0wLjE1NjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIkQmRSZSTiYhU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8xX0FOX0VfRVFfMV9BTl9STl9FUV8xX0FOX1NJX0VRXzAgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDM3NSwgLTAuMDI2MjUsIC0wLjAwNzUsIDAuMDA1LCAwLjAxNzUsIDAuMDQsIDAuMDYxMjUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wMzc1LCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAuMDA2MjUsIDAuMDI4NzUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIi0wLjA2MTI1LCAtMC4wNSwgLTAuMDM3NSwgLTAuMDI1LCAtMC4wMTI1LCAwLjAxLCAwLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wOCwgLTAuMDYyNSwgLTAuMDUsIC0wLjAzNzUsIC0wLjAyNSwgLTAuMDAyNSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDkyNSwgLTAuMDgxMjUsIC0wLjA2ODc1LCAtMC4wNSwgLTAuMDM3NSwgLTAuMDE1LCAwIiwgXAotICAgICAgICAgICItMC4xMTUsIC0wLjEwMzc1LCAtMC4wODUsIC0wLjA3MjUsIC0wLjA2LCAtMC4wMzc1LCAtMC4wMTYyNSIsIFwKLSAgICAgICAgICAiLTAuMTMsIC0wLjExODc1LCAtMC4xMDYyNSwgLTAuMDg3NSwgLTAuMDc1LCAtMC4wNTI1LCAtMC4wMzc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRCYhRSYhUk4mU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX0VfRVFfMF9BTl9STl9FUV8wX0FOX1NJX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMiwgMC4xODI1LCAwLjE3LCAwLjE1NzUsIDAuMTQ1LCAwLjEyMjUsIDAuMTA3NSIsIFwKLSAgICAgICAgICAiMC4yMTEyNSwgMC4xOTM3NSwgMC4xODEyNSwgMC4xNjI1LCAwLjE1LCAwLjEzMzc1LCAwLjExODc1IiwgXAotICAgICAgICAgICIwLjIyMzc1LCAwLjIxMjUsIDAuMTkzNzUsIDAuMTgxMjUsIDAuMTY4NzUsIDAuMTQ2MjUsIDAuMTMxMjUiLCBcCi0gICAgICAgICAgIjAuMjM2MjUsIDAuMjI1LCAwLjIwNjI1LCAwLjE5Mzc1LCAwLjE4MTI1LCAwLjE1ODc1LCAwLjE1IiwgXAotICAgICAgICAgICIwLjI0ODc1LCAwLjIzNzUsIDAuMjE4NzUsIDAuMjA2MjUsIDAuMTkzNzUsIDAuMTc3NSwgMC4xNjI1IiwgXAotICAgICAgICAgICIwLjI3MTI1LCAwLjI2LCAwLjI0MTI1LCAwLjIyODc1LCAwLjIxNjI1LCAwLjIsIDAuMTg1IiwgXAotICAgICAgICAgICIwLjI5MjUsIDAuMjgxMjUsIDAuMjYyNSwgMC4yNSwgMC4yMzc1LCAwLjIxNSwgMC4yIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTI1LCAwLjExMzc1LCAwLjA5NSwgMC4wNzYyNSwgMC4wNjM3NSwgMC4wNDEyNSwgMC4wMiIsIFwKLSAgICAgICAgICAiMC4xMzYyNSwgMC4xMjUsIDAuMTA2MjUsIDAuMDg3NSwgMC4wNzUsIDAuMDQ2MjUsIDAuMDI1IiwgXAotICAgICAgICAgICIwLjE0ODc1LCAwLjEzNzUsIDAuMTE4NzUsIDAuMSwgMC4wODc1LCAwLjA2NSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4xNjEyNSwgMC4xNSwgMC4xMzEyNSwgMC4xMTg3NSwgMC4xLCAwLjA3NzUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIjAuMTczNzUsIDAuMTYyNSwgMC4xNDM3NSwgMC4xMzEyNSwgMC4xMTI1LCAwLjA5LCAwLjA2ODc1IiwgXAotICAgICAgICAgICIwLjE5NjI1LCAwLjE4NSwgMC4xNjYyNSwgMC4xNDc1LCAwLjEzNSwgMC4xMTI1LCAwLjA5MTI1IiwgXAotICAgICAgICAgICIwLjIxMTI1LCAwLjIsIDAuMTg3NSwgMC4xNjg3NSwgMC4xNTYyNSwgMC4xMjc1LCAwLjEwNjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRCYhRSZSTiYhU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX0VfRVFfMF9BTl9STl9FUV8xX0FOX1NJX0VRXzAgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTU2MjUsIDAuMTQ1LCAwLjEyNjI1LCAwLjExMzc1LCAwLjA5NSwgMC4wNzI1LCAwLjA1MTI1IiwgXAotICAgICAgICAgICIwLjE2NzUsIDAuMTU2MjUsIDAuMTQzNzUsIDAuMTI1LCAwLjEwNjI1LCAwLjA4Mzc1LCAwLjA2MjUiLCBcCi0gICAgICAgICAgIjAuMTg2MjUsIDAuMTc1LCAwLjE1NjI1LCAwLjEzNzUsIDAuMTI1LCAwLjA5NjI1LCAwLjA4MTI1IiwgXAotICAgICAgICAgICIwLjE5ODc1LCAwLjE4NzUsIDAuMTY4NzUsIDAuMTU2MjUsIDAuMTM3NSwgMC4xMTUsIDAuMDkzNzUiLCBcCi0gICAgICAgICAgIjAuMjExMjUsIDAuMiwgMC4xODc1LCAwLjE2ODc1LCAwLjE1LCAwLjEyNzUsIDAuMTA2MjUiLCBcCi0gICAgICAgICAgIjAuMjMzNzUsIDAuMjIyNSwgMC4yMDM3NSwgMC4xOTEyNSwgMC4xNzI1LCAwLjE1LCAwLjEyODc1IiwgXAotICAgICAgICAgICIwLjI0ODc1LCAwLjIzNzUsIDAuMjI1LCAwLjIwNjI1LCAwLjE4NzUsIDAuMTY1LCAwLjE0Mzc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJEJkUmUk4mIVNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMV9BTl9FX0VRXzFfQU5fUk5fRVFfMV9BTl9TSV9FUV8wID09IDEnYjEiOwotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIzMTI1LCAwLjIyLCAwLjIwMTI1LCAwLjE4ODc1LCAwLjE3NjI1LCAwLjE1Mzc1LCAwLjEzODc1IiwgXAotICAgICAgICAgICIwLjI0MjUsIDAuMjMxMjUsIDAuMjEyNSwgMC4yLCAwLjE4NzUsIDAuMTY1LCAwLjE1NjI1IiwgXAotICAgICAgICAgICIwLjI1NSwgMC4yNDM3NSwgMC4yMjUsIDAuMjEyNSwgMC4yLCAwLjE4Mzc1LCAwLjE2ODc1IiwgXAotICAgICAgICAgICIwLjI3Mzc1LCAwLjI1NjI1LCAwLjI0Mzc1LCAwLjIyNSwgMC4yMTI1LCAwLjE5NjI1LCAwLjE4MTI1IiwgXAotICAgICAgICAgICIwLjI4NjI1LCAwLjI2ODc1LCAwLjI1NjI1LCAwLjIzNzUsIDAuMjI1LCAwLjIwODc1LCAwLjE5Mzc1IiwgXAotICAgICAgICAgICIwLjMwMjUsIDAuMjkxMjUsIDAuMjcyNSwgMC4yNiwgMC4yNDc1LCAwLjIyNSwgMC4yMTYyNSIsIFwKLSAgICAgICAgICAiMC4zMTc1LCAwLjMwNjI1LCAwLjI4NzUsIDAuMjc1LCAwLjI2MjUsIDAuMjQsIDAuMjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTSSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjM3NDA3OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYzNTU0MjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2Mzc0MDc7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyMjE3LCAwLjAwMjIwNywgMC4wMDIyMDIsIDAuMDAyMTk4LCAwLjAwMjE5NiwgMC4wMDIxOTMsIDAuMDAyMTkxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzNTg5LCAwLjAwMzU4NCwgMC4wMDM1ODIsIDAuMDAzNTgsIDAuMDAzNTc5LCAwLjAwMzU3NywgMC4wMDM1NzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiU0UiOwotICAgICAgc2RmX2NvbmQgOiAiU0UgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMTI1LCAtMC4xMTM3NSwgLTAuMTAxMjUsIC0wLjA4ODc1LCAtMC4wODI1LCAtMC4wNjYyNSwgLTAuMDUxMjUiLCBcCi0gICAgICAgICAgIi0wLjEzNjI1LCAtMC4xMjUsIC0wLjExMjUsIC0wLjEsIC0wLjA5Mzc1LCAtMC4wNzc1LCAtMC4wNjI1IiwgXAotICAgICAgICAgICItMC4xNDg3NSwgLTAuMTM3NSwgLTAuMTI1LCAtMC4xMTg3NSwgLTAuMTA2MjUsIC0wLjA5LCAtMC4wNzUiLCBcCi0gICAgICAgICAgIi0wLjE2MTI1LCAtMC4xNSwgLTAuMTM3NSwgLTAuMTMxMjUsIC0wLjExODc1LCAtMC4xMDI1LCAtMC4wODc1IiwgXAotICAgICAgICAgICItMC4xNzM3NSwgLTAuMTYyNSwgLTAuMTU2MjUsIC0wLjE0Mzc1LCAtMC4xMzEyNSwgLTAuMTE1LCAtMC4xMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMTk2MjUsIC0wLjE4NSwgLTAuMTcyNSwgLTAuMTY2MjUsIC0wLjE1Mzc1LCAtMC4xMzc1LCAtMC4xMjg3NSIsIFwKLSAgICAgICAgICAiLTAuMjE3NSwgLTAuMjA2MjUsIC0wLjE5Mzc1LCAtMC4xODEyNSwgLTAuMTc1LCAtMC4xNTg3NSwgLTAuMTQzNzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMTI1LCAtMC4wMDEyNSwgMC4wMTEyNSwgMC4wMjM3NSwgMC4wMzYyNSwgMC4wNTg3NSwgMC4wOCIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxMjUsIDAsIDAuMDEyNSwgMC4wMjUsIDAuMDQ3NSwgMC4wNjg3NSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAyNSwgLTAuMDEyNSwgMCwgMC4wMTI1LCAwLjAzNSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjAzNzUsIC0wLjAyNSwgLTAuMDEyNSwgMCwgMC4wMjI1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICItMC4wNjEyNSwgLTAuMDUsIC0wLjAzNzUsIC0wLjAyNSwgLTAuMDEyNSwgMC4wMSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDgzNzUsIC0wLjA2NjI1LCAtMC4wNTM3NSwgLTAuMDQxMjUsIC0wLjAyODc1LCAtMC4wMDYyNSwgMC4wMDg3NSIsIFwKLSAgICAgICAgICAiLTAuMDkyNSwgLTAuMDgxMjUsIC0wLjA2ODc1LCAtMC4wNTYyNSwgLTAuMDQzNzUsIC0wLjAyMTI1LCAtMC4wMDYyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiU0UiOwotICAgICAgc2RmX2NvbmQgOiAiU0UgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjEyNSwgMC4xOTUsIDAuMTgyNSwgMC4xNywgMC4xNTc1LCAwLjEzNSwgMC4xMiIsIFwKLSAgICAgICAgICAiMC4yMjM3NSwgMC4yMTI1LCAwLjE5Mzc1LCAwLjE4MTI1LCAwLjE2ODc1LCAwLjE0NjI1LCAwLjEzMTI1IiwgXAotICAgICAgICAgICIwLjIzNjI1LCAwLjIyNSwgMC4yMDYyNSwgMC4xOTM3NSwgMC4xODEyNSwgMC4xNTg3NSwgMC4xNSIsIFwKLSAgICAgICAgICAiMC4yNDg3NSwgMC4yMzc1LCAwLjIxODc1LCAwLjIwNjI1LCAwLjE5Mzc1LCAwLjE3NzUsIDAuMTYyNSIsIFwKLSAgICAgICAgICAiMC4yNjEyNSwgMC4yNSwgMC4yMzc1LCAwLjIxODc1LCAwLjIwNjI1LCAwLjE5LCAwLjE3NSIsIFwKLSAgICAgICAgICAiMC4yODM3NSwgMC4yNzI1LCAwLjI1Mzc1LCAwLjI0MTI1LCAwLjIyODc1LCAwLjIxMjUsIDAuMTk3NSIsIFwKLSAgICAgICAgICAiMC4zMDUsIDAuMjkzNzUsIDAuMjc1LCAwLjI2MjUsIDAuMjUsIDAuMjI3NSwgMC4yMTg3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEzNzUsIDAuMTI2MjUsIDAuMTA3NSwgMC4wOTUsIDAuMDc2MjUsIDAuMDUzNzUsIDAuMDMyNSIsIFwKLSAgICAgICAgICAiMC4xNDg3NSwgMC4xMzc1LCAwLjExODc1LCAwLjEwNjI1LCAwLjA4NzUsIDAuMDY1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjE2MTI1LCAwLjE1LCAwLjEzMTI1LCAwLjExODc1LCAwLjEsIDAuMDc3NSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiMC4xNzM3NSwgMC4xNjI1LCAwLjE0Mzc1LCAwLjEzMTI1LCAwLjExMjUsIDAuMDksIDAuMDY4NzUiLCBcCi0gICAgICAgICAgIjAuMTg2MjUsIDAuMTc1LCAwLjE1NjI1LCAwLjE0Mzc1LCAwLjEyNSwgMC4xMDI1LCAwLjA4MTI1IiwgXAotICAgICAgICAgICIwLjIwMjUsIDAuMTkxMjUsIDAuMTc4NzUsIDAuMTYsIDAuMTQ3NSwgMC4xMTg3NSwgMC4wOTc1IiwgXAotICAgICAgICAgICIwLjIyMzc1LCAwLjIxMjUsIDAuMTkzNzUsIDAuMTc1LCAwLjE2MjUsIDAuMTQsIDAuMTE4NzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IFNFREZGVFJYTCAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKFNFREZGVFJYTCkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjM4NjE2NTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBmZiAoTjMwLFFCSU5UKSB7Ci0gICAgbmV4dF9zdGF0ZSA6ICIoKFNFIFNJKSArICghU0UgKCgoISgoIUQpIEUpKSAoISgoIUUpICghTjMwKSkpKSBSTikpKSI7Ci0gICAgY2xvY2tlZF9vbiA6ICJDSyI7Ci0gIH0KLSAgcGluKENLKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA1NjkyNDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA1Njg5NDI7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNTY5MjQ7Ci0gICAgY2xvY2sgOiB0cnVlOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjQyOSwgMC4wMDI0MTQsIDAuMDAyNDAzLCAwLjAwMjM5NywgMC4wMDIzOTEsIDAuMDAyMzg2LCAwLjAwMjM4NSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNDQ4NSwgMC4wMDQ0NzQsIDAuMDA0NDY1LCAwLjAwNDQ2LCAwLjAwNDQ2LCAwLjAwNDQ2MSwgMC4wMDQ0NjIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFEJiFFJiFSTiYhU0UmIVNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9FX0VRXzBfQU5fUk5fRVFfMF9BTl9TRV9FUV8wX0FOX1NJX0VRXzAgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC40MTA3MDcsIDAuNDIyNTMyLCAwLjQzNzc4LCAwLjQ1MzI4NCwgMC40NjgxNDgsIDAuNDkyNTYzLCAwLjUxMjg1NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMTkwMzA5LCAwLjIwMTgxOCwgMC4yMTY2NDgsIDAuMjMxNTMsIDAuMjQ1OTY1LCAwLjI2ODM3MywgMC4yODY1MzkiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEQpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDU5MTI4NzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA1OTA5ODk7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNTkxMjg3OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNTAyMSwgMC4wMDUwMDIsIDAuMDA0OTg4LCAwLjAwNDk4MSwgMC4wMDQ5NzYsIDAuMDA0OTcyLCAwLjAwNDk3MiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNTMyNiwgMC4wMDUzMTMsIDAuMDA1MzAzLCAwLjAwNTI5OCwgMC4wMDUyOTMsIDAuMDA1Mjg5LCAwLjAwNTI4OCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJFJlJOJiFTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJFX0VRXzFfQU5fUk5fRVFfMV9BTl9TRV9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjMsIC0wLjI5NSwgLTAuMjgyNSwgLTAuMjcsIC0wLjI2Mzc1LCAtMC4yNDc1LCAtMC4yMzg3NSIsIFwKLSAgICAgICAgICAiLTAuMzExMjUsIC0wLjMwNjI1LCAtMC4yOTM3NSwgLTAuMjgxMjUsIC0wLjI3NSwgLTAuMjU4NzUsIC0wLjI1IiwgXAotICAgICAgICAgICItMC4zMywgLTAuMzE4NzUsIC0wLjMwNjI1LCAtMC4zLCAtMC4yODc1LCAtMC4yNzc1LCAtMC4yNjI1IiwgXAotICAgICAgICAgICItMC4zNDI1LCAtMC4zMzEyNSwgLTAuMzI1LCAtMC4zMTI1LCAtMC4zMDYyNSwgLTAuMjksIC0wLjI4MTI1IiwgXAotICAgICAgICAgICItMC4zNTUsIC0wLjM1LCAtMC4zMzc1LCAtMC4zMzEyNSwgLTAuMzE4NzUsIC0wLjMwMjUsIC0wLjI5Mzc1IiwgXAotICAgICAgICAgICItMC4zNzc1LCAtMC4zNjYyNSwgLTAuMzYsIC0wLjM0NzUsIC0wLjM0MTI1LCAtMC4zMjUsIC0wLjMxNjI1IiwgXAotICAgICAgICAgICItMC4zOTI1LCAtMC4zODc1LCAtMC4zNzUsIC0wLjM2MjUsIC0wLjM1NjI1LCAtMC4zNCwgLTAuMzMxMjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4xODEyNSwgLTAuMTcsIC0wLjE1NzUsIC0wLjE0NSwgLTAuMTI2MjUsIC0wLjExLCAtMC4wOTUiLCBcCi0gICAgICAgICAgIi0wLjE5MjUsIC0wLjE4MTI1LCAtMC4xNjg3NSwgLTAuMTU2MjUsIC0wLjE0Mzc1LCAtMC4xMjEyNSwgLTAuMTA2MjUiLCBcCi0gICAgICAgICAgIi0wLjIwNSwgLTAuMTkzNzUsIC0wLjE4MTI1LCAtMC4xNjg3NSwgLTAuMTU2MjUsIC0wLjEzMzc1LCAtMC4xMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMjE3NSwgLTAuMjA2MjUsIC0wLjE5Mzc1LCAtMC4xODEyNSwgLTAuMTY4NzUsIC0wLjE1MjUsIC0wLjEzMTI1IiwgXAotICAgICAgICAgICItMC4yMywgLTAuMjE4NzUsIC0wLjIwNjI1LCAtMC4xOTM3NSwgLTAuMTgxMjUsIC0wLjE2NSwgLTAuMTQzNzUiLCBcCi0gICAgICAgICAgIi0wLjI1MjUsIC0wLjI0MTI1LCAtMC4yMjI1LCAtMC4yMSwgLTAuMTk3NSwgLTAuMTgxMjUsIC0wLjE2NjI1IiwgXAotICAgICAgICAgICItMC4yNjc1LCAtMC4yNTYyNSwgLTAuMjM3NSwgLTAuMjI1LCAtMC4yMTI1LCAtMC4xOTYyNSwgLTAuMTc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJFJlJOJiFTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJFX0VRXzFfQU5fUk5fRVFfMV9BTl9TRV9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjQwNjI1LCAwLjM5NSwgMC4zODI1LCAwLjM3LCAwLjM1NzUsIDAuMzQxMjUsIDAuMzI2MjUiLCBcCi0gICAgICAgICAgIjAuNDE3NSwgMC40MDYyNSwgMC4zOTM3NSwgMC4zODEyNSwgMC4zNjg3NSwgMC4zNTI1LCAwLjMzNzUiLCBcCi0gICAgICAgICAgIjAuNDM2MjUsIDAuNDI1LCAwLjQwNjI1LCAwLjM5Mzc1LCAwLjM4MTI1LCAwLjM2NSwgMC4zNTYyNSIsIFwKLSAgICAgICAgICAiMC40NDg3NSwgMC40Mzc1LCAwLjQyNSwgMC40MTI1LCAwLjQsIDAuMzgzNzUsIDAuMzY4NzUiLCBcCi0gICAgICAgICAgIjAuNDYxMjUsIDAuNDUsIDAuNDM3NSwgMC40MjUsIDAuNDEyNSwgMC4zOTYyNSwgMC4zODEyNSIsIFwKLSAgICAgICAgICAiMC40ODM3NSwgMC40NzI1LCAwLjQ2LCAwLjQ0MTI1LCAwLjQzNSwgMC40MTg3NSwgMC40MDM3NSIsIFwKLSAgICAgICAgICAiMC40OTg3NSwgMC40ODc1LCAwLjQ3NSwgMC40NjI1LCAwLjQ1LCAwLjQzMzc1LCAwLjQxODc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjg3NSwgMC4yNzYyNSwgMC4yNTc1LCAwLjI0NSwgMC4yMjYyNSwgMC4yMDM3NSwgMC4xODI1IiwgXAotICAgICAgICAgICIwLjI5ODc1LCAwLjI4NzUsIDAuMjc1LCAwLjI1NjI1LCAwLjIzNzUsIDAuMjE1LCAwLjE5Mzc1IiwgXAotICAgICAgICAgICIwLjMxNzUsIDAuMywgMC4yODc1LCAwLjI2ODc1LCAwLjI1NjI1LCAwLjIyNzUsIDAuMjEyNSIsIFwKLSAgICAgICAgICAiMC4zMywgMC4zMTg3NSwgMC4zLCAwLjI4MTI1LCAwLjI2ODc1LCAwLjI0NjI1LCAwLjIyNSIsIFwKLSAgICAgICAgICAiMC4zNDI1LCAwLjMzMTI1LCAwLjMxMjUsIDAuMjkzNzUsIDAuMjgxMjUsIDAuMjU4NzUsIDAuMjM3NSIsIFwKLSAgICAgICAgICAiMC4zNTg3NSwgMC4zNDc1LCAwLjMyODc1LCAwLjMxNjI1LCAwLjI5NzUsIDAuMjc1LCAwLjI1Mzc1IiwgXAotICAgICAgICAgICIwLjM3Mzc1LCAwLjM2MjUsIDAuMzQzNzUsIDAuMzMxMjUsIDAuMzEyNSwgMC4yOSwgMC4yNjg3NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxMTM1OTI7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxMTM1OTI7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxMTM0ODsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDU0LCAwLjAwNTM4OCwgMC4wMDUzOCwgMC4wMDUzNzYsIDAuMDA1MzczLCAwLjAwNTM3LCAwLjAwNTM3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA2MDQ1LCAwLjAwNjAyNiwgMC4wMDYwMTQsIDAuMDA2MDA4LCAwLjAwNjAwMywgMC4wMDU5OTcsIDAuMDA1OTk1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlJOJiFTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJSTl9FUV8xX0FOX1NFX0VRXzAgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMjMxMjUsIC0wLjIyLCAtMC4yMDEyNSwgLTAuMTg4NzUsIC0wLjE3LCAtMC4xNDc1LCAtMC4xMjYyNSIsIFwKLSAgICAgICAgICAiLTAuMjQyNSwgLTAuMjMxMjUsIC0wLjIxMjUsIC0wLjIsIC0wLjE4MTI1LCAtMC4xNTg3NSwgLTAuMTM3NSIsIFwKLSAgICAgICAgICAiLTAuMjU1LCAtMC4yNDM3NSwgLTAuMjI1LCAtMC4yMTI1LCAtMC4xOTM3NSwgLTAuMTcxMjUsIC0wLjE1NjI1IiwgXAotICAgICAgICAgICItMC4yNjc1LCAtMC4yNTYyNSwgLTAuMjM3NSwgLTAuMjI1LCAtMC4yMTI1LCAtMC4xOSwgLTAuMTY4NzUiLCBcCi0gICAgICAgICAgIi0wLjI4LCAtMC4yNjg3NSwgLTAuMjU2MjUsIC0wLjIzNzUsIC0wLjIyNSwgLTAuMjAyNSwgLTAuMTgxMjUiLCBcCi0gICAgICAgICAgIi0wLjMwMjUsIC0wLjI5MTI1LCAtMC4yNzI1LCAtMC4yNiwgLTAuMjQ3NSwgLTAuMjE4NzUsIC0wLjIwMzc1IiwgXAotICAgICAgICAgICItMC4zMjM3NSwgLTAuMzEyNSwgLTAuMjkzNzUsIC0wLjI4MTI1LCAtMC4yNjI1LCAtMC4yNCwgLTAuMjE4NzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4yMDYyNSwgLTAuMTk1LCAtMC4xODI1LCAtMC4xNywgLTAuMTU3NSwgLTAuMTM1LCAtMC4xMiIsIFwKLSAgICAgICAgICAiLTAuMjIzNzUsIC0wLjIxMjUsIC0wLjE5Mzc1LCAtMC4xODEyNSwgLTAuMTY4NzUsIC0wLjE1MjUsIC0wLjEzMTI1IiwgXAotICAgICAgICAgICItMC4yMzYyNSwgLTAuMjI1LCAtMC4yMTI1LCAtMC4yLCAtMC4xODc1LCAtMC4xNjUsIC0wLjE1IiwgXAotICAgICAgICAgICItMC4yNDg3NSwgLTAuMjM3NSwgLTAuMjI1LCAtMC4yMTI1LCAtMC4yLCAtMC4xNzc1LCAtMC4xNjI1IiwgXAotICAgICAgICAgICItMC4yNjEyNSwgLTAuMjUsIC0wLjIzNzUsIC0wLjIyNSwgLTAuMjEyNSwgLTAuMTksIC0wLjE3NSIsIFwKLSAgICAgICAgICAiLTAuMjgzNzUsIC0wLjI3MjUsIC0wLjI1Mzc1LCAtMC4yNDEyNSwgLTAuMjI4NzUsIC0wLjIxMjUsIC0wLjE5MTI1IiwgXAotICAgICAgICAgICItMC4yOTg3NSwgLTAuMjg3NSwgLTAuMjY4NzUsIC0wLjI1NjI1LCAtMC4yNDM3NSwgLTAuMjI3NSwgLTAuMjA2MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlJOJiFTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJSTl9FUV8xX0FOX1NFX0VRXzAgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuNDUsIDAuNDM4NzUsIDAuNDI2MjUsIDAuNDA3NSwgMC40MDEyNSwgMC4zODUsIDAuMzciLCBcCi0gICAgICAgICAgIjAuNDYxMjUsIDAuNDUsIDAuNDM3NSwgMC40MjUsIDAuNDEyNSwgMC4zOTYyNSwgMC4zODEyNSIsIFwKLSAgICAgICAgICAiMC40OCwgMC40Njg3NSwgMC40NSwgMC40Mzc1LCAwLjQyNSwgMC40MDg3NSwgMC40IiwgXAotICAgICAgICAgICIwLjQ5MjUsIDAuNDgxMjUsIDAuNDY4NzUsIDAuNDUsIDAuNDQzNzUsIDAuNDI3NSwgMC40MTI1IiwgXAotICAgICAgICAgICIwLjUwNSwgMC40OTM3NSwgMC40ODEyNSwgMC40Njg3NSwgMC40NTYyNSwgMC40NCwgMC40MjUiLCBcCi0gICAgICAgICAgIjAuNTI3NSwgMC41MTYyNSwgMC41MDM3NSwgMC40OTEyNSwgMC40Nzg3NSwgMC40NjI1LCAwLjQ0NzUiLCBcCi0gICAgICAgICAgIjAuNTQyNSwgMC41MzEyNSwgMC41MTg3NSwgMC41MDYyNSwgMC40OTM3NSwgMC40Nzc1LCAwLjQ2MjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMTI1LCAwLjMwNzUsIDAuMjk1LCAwLjI4MjUsIDAuMjc2MjUsIDAuMjYsIDAuMjUxMjUiLCBcCi0gICAgICAgICAgIjAuMzIzNzUsIDAuMzEyNSwgMC4zMDYyNSwgMC4yOTM3NSwgMC4yODEyNSwgMC4yNzEyNSwgMC4yNTYyNSIsIFwKLSAgICAgICAgICAiMC4zMzYyNSwgMC4zMjUsIDAuMzE4NzUsIDAuMzA2MjUsIDAuMywgMC4yODM3NSwgMC4yNjg3NSIsIFwKLSAgICAgICAgICAiMC4zNDg3NSwgMC4zMzc1LCAwLjMzMTI1LCAwLjMxODc1LCAwLjMxMjUsIDAuMjk2MjUsIDAuMjgxMjUiLCBcCi0gICAgICAgICAgIjAuMzYxMjUsIDAuMzUsIDAuMzQzNzUsIDAuMzMxMjUsIDAuMzI1LCAwLjMwODc1LCAwLjMiLCBcCi0gICAgICAgICAgIjAuMzgzNzUsIDAuMzcyNSwgMC4zNiwgMC4zNTM3NSwgMC4zNDEyNSwgMC4zMzEyNSwgMC4zMTYyNSIsIFwKLSAgICAgICAgICAiMC4zOTg3NSwgMC4zOTM3NSwgMC4zODEyNSwgMC4zNjg3NSwgMC4zNjI1LCAwLjM0NjI1LCAwLjMzNzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFEpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4wNzMzOTIxOwotICAgIGZ1bmN0aW9uIDogIk4zMCI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3NlbnNlIDogbm9uX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiByaXNpbmdfZWRnZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzY1OTkyLCAwLjM5MTMwMywgMC42MTk2NDUsIDAuOTk5NTYsIDEuMzgwNiwgMi4yNjYwMSwgMi43NzQwOSIsIFwKLSAgICAgICAgICAiMC4zNzc2NCwgMC40MDI5ODgsIDAuNjMyMDM4LCAxLjAxMDU0LCAxLjM5MDg2LCAyLjI3ODE5LCAyLjc4Mjc3IiwgXAotICAgICAgICAgICIwLjM5Mjk3OCwgMC40MTgzMzUsIDAuNjQ3MjMyLCAxLjAyNTk4LCAxLjQwNzA2LCAyLjI5MzM3LCAyLjgwMDY3IiwgXAotICAgICAgICAgICIwLjQwODM0MywgMC40MzM2NjgsIDAuNjYyNywgMS4wNDIxMSwgMS40MjI2LCAyLjMwOTQ2LCAyLjgxMzY1IiwgXAotICAgICAgICAgICIwLjQyMzE4NCwgMC40NDg1NDEsIDAuNjc3NTc0LCAxLjA1NzE3LCAxLjQzNjkxLCAyLjMyNTQyLCAyLjgyODgyIiwgXAotICAgICAgICAgICIwLjQ0NzM5MywgMC40NzI3NTgsIDAuNzAxNzczLCAxLjA4MDM1LCAxLjQ2MTYxLCAyLjM0OTE1LCAyLjg1NDIzIiwgXAotICAgICAgICAgICIwLjQ2NzQsIDAuNDkyNzU3LCAwLjcyMTY5NywgMS4xMDE5NywgMS40ODEwMywgMi4zNjk4LCAyLjg3MzUzIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI4MjYwOSwgMC4zMzM1NDUsIDAuNzk1OTczLCAxLjU3MzE5LCAyLjM1MTU5LCA0LjE3NjQ5LCA1LjE4ODY2IiwgXAotICAgICAgICAgICIwLjI4MjU0NCwgMC4zMzMyOCwgMC43OTY2MDMsIDEuNTc3NSwgMi4zNTY5NiwgNC4xNzY0NCwgNS4xOTgwMiIsIFwKLSAgICAgICAgICAiMC4yODI1NSwgMC4zMzM1MTYsIDAuNzk2NTE5LCAxLjU3NzQxLCAyLjM1NjgzLCA0LjE3NjIsIDUuMTkwNTEiLCBcCi0gICAgICAgICAgIjAuMjgyNTE0LCAwLjMzMzM2NywgMC43OTY3NiwgMS41Nzc0NCwgMi4zNTY4MywgNC4xNzYxOCwgNS4xODc4NCIsIFwKLSAgICAgICAgICAiMC4yODI1MzMsIDAuMzMzMzkxLCAwLjc5NTIxMywgMS41NzcwNSwgMi4zNTY4NiwgNC4xNzYyMSwgNS4yMDAyNCIsIFwKLSAgICAgICAgICAiMC4yODI1MjIsIDAuMzMzNDkzLCAwLjc5Njc0MiwgMS41Nzc0NSwgMi4zNTY3NywgNC4xNzYxNiwgNS4xOTczOCIsIFwKLSAgICAgICAgICAiMC4yODI1MjQsIDAuMzMzNDAyLCAwLjc5NTQzNSwgMS41NzcwNSwgMi4zNTY4NiwgNC4xNzYyNCwgNS4xODc5NyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC40MTIzOTEsIDAuNDQyMjg4LCAwLjcxMDM1NSwgMS4xNTgwMSwgMS42MDQ4OCwgMi42NDkyOCwgMy4yNDU4MSIsIFwKLSAgICAgICAgICAiMC40MjQyNjMsIDAuNDU0MTg5LCAwLjcyMjE3NiwgMS4xNzA2MiwgMS42MTY3OSwgMi42NjE2MywgMy4yNTc3MSIsIFwKLSAgICAgICAgICAiMC40Mzk0OTcsIDAuNDY5NDA5LCAwLjczNzYwNCwgMS4xODU5MywgMS42MzIzLCAyLjY3NzIzLCAzLjI3MjE2IiwgXAotICAgICAgICAgICIwLjQ1NDk4MywgMC40ODQ4NjcsIDAuNzUzNTkxLCAxLjIwMDUsIDEuNjQ3NDcsIDIuNjkxNjMsIDMuMjg4MzkiLCBcCi0gICAgICAgICAgIjAuNDY5OTc3LCAwLjQ5OTg2MSwgMC43Njg1ODMsIDEuMjE1NDksIDEuNjYyNDYsIDIuNzA2NTUsIDMuMzAzMzgiLCBcCi0gICAgICAgICAgIjAuNDk0MjIyLCAwLjUyNDEzOSwgMC43OTIzMjMsIDEuMjM5NTgsIDEuNjg4MTMsIDIuNzMxODIsIDMuMzI3NjkiLCBcCi0gICAgICAgICAgIjAuNTE0Njc2LCAwLjU0NDU1OSwgMC44MTMyODcsIDEuMjYxLCAxLjcwNzE3LCAyLjc1MjIyLCAzLjM0ODA4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMxNzIzOCwgMC4zNzUwNCwgMC45MDE5NjEsIDEuNzg3MiwgMi42NzI0NiwgNC43MzU1MSwgNS45MTg1NiIsIFwKLSAgICAgICAgICAiMC4zMTc0NzcsIDAuMzc1Mjc2LCAwLjkwMjQ1OCwgMS43ODg1OSwgMi42NzQ4NCwgNC43NDA4OSwgNS45MjIxMSIsIFwKLSAgICAgICAgICAiMC4zMTc0NjQsIDAuMzc1MzI2LCAwLjkwMjQxMywgMS43ODg5MywgMi42NzQzMSwgNC43MzMyMSwgNS45MjI0NiIsIFwKLSAgICAgICAgICAiMC4zMTczMTUsIDAuMzc1MTg3LCAwLjkwMjQ4LCAxLjc4ODYyLCAyLjY3NDI2LCA0Ljc0MDc3LCA1LjkyMjIiLCBcCi0gICAgICAgICAgIjAuMzE3MjcxLCAwLjM3NTE4OCwgMC45MDI5MTQsIDEuNzg4NjIsIDIuNjc0NzYsIDQuNzQwNzEsIDUuOTIyMTYiLCBcCi0gICAgICAgICAgIjAuMzE3Mzk0LCAwLjM3NTMwNCwgMC45MDIxNjgsIDEuNzg4MzQsIDIuNjc0MzMsIDQuNzQyMDIsIDUuOTIyMzciLCBcCi0gICAgICAgICAgIjAuMzE3MjEsIDAuMzc1MTk1LCAwLjkwMjMyMywgMS43ODg2MSwgMi42NzQ1MSwgNC43NDE5NCwgNS45MjIxNCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQzMzEsIDAuMDA0MzMyLCAwLjAwNDMzNSwgMC4wMDQzMzYsIDAuMDA0MzM2LCAwLjAwNDMzNiwgMC4wMDQzMzYiLCBcCi0gICAgICAgICAgIjAuMDA0MzI0LCAwLjAwNDMyNSwgMC4wMDQzMjcsIDAuMDA0MzI4LCAwLjAwNDMyOCwgMC4wMDQzMjksIDAuMDA0MzI5IiwgXAotICAgICAgICAgICIwLjAwNDMxOCwgMC4wMDQzMTgsIDAuMDA0MzIxLCAwLjAwNDMyMiwgMC4wMDQzMjIsIDAuMDA0MzIyLCAwLjAwNDMyMyIsIFwKLSAgICAgICAgICAiMC4wMDQzMTMsIDAuMDA0MzE0LCAwLjAwNDMxNiwgMC4wMDQzMTgsIDAuMDA0MzE4LCAwLjAwNDMxOCwgMC4wMDQzMTgiLCBcCi0gICAgICAgICAgIjAuMDA0MzA4LCAwLjAwNDMwOSwgMC4wMDQzMTEsIDAuMDA0MzEyLCAwLjAwNDMxMiwgMC4wMDQzMTIsIDAuMDA0MzEzIiwgXAotICAgICAgICAgICIwLjAwNDMwNCwgMC4wMDQzMDUsIDAuMDA0MzA4LCAwLjAwNDMwOCwgMC4wMDQzMDksIDAuMDA0MzA5LCAwLjAwNDMwOSIsIFwKLSAgICAgICAgICAiMC4wMDQzMDIsIDAuMDA0MzAzLCAwLjAwNDMwNiwgMC4wMDQzMDYsIDAuMDA0MzA3LCAwLjAwNDMwNywgMC4wMDQzMDciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQzNDksIDAuMDA0MzUsIDAuMDA0MzUzLCAwLjAwNDM1NCwgMC4wMDQzNTQsIDAuMDA0MzU1LCAwLjAwNDM1NCIsIFwKLSAgICAgICAgICAiMC4wMDQzNDIsIDAuMDA0MzQzLCAwLjAwNDM0NiwgMC4wMDQzNDcsIDAuMDA0MzQ3LCAwLjAwNDM0OCwgMC4wMDQzNDgiLCBcCi0gICAgICAgICAgIjAuMDA0MzM3LCAwLjAwNDMzOCwgMC4wMDQzNDEsIDAuMDA0MzQyLCAwLjAwNDM0MiwgMC4wMDQzNDIsIDAuMDA0MzQyIiwgXAotICAgICAgICAgICIwLjAwNDMzMywgMC4wMDQzMzQsIDAuMDA0MzM3LCAwLjAwNDMzOCwgMC4wMDQzMzgsIDAuMDA0MzM5LCAwLjAwNDMzOSIsIFwKLSAgICAgICAgICAiMC4wMDQzMzIsIDAuMDA0MzMzLCAwLjAwNDMzNiwgMC4wMDQzMzcsIDAuMDA0MzM3LCAwLjAwNDMzOCwgMC4wMDQzMzgiLCBcCi0gICAgICAgICAgIjAuMDA0MzMzLCAwLjAwNDMzMywgMC4wMDQzMzYsIDAuMDA0MzM3LCAwLjAwNDMzNywgMC4wMDQzMzgsIDAuMDA0MzM4IiwgXAotICAgICAgICAgICIwLjAwNDMzNiwgMC4wMDQzMzYsIDAuMDA0MzM5LCAwLjAwNDM0LCAwLjAwNDM0MSwgMC4wMDQzNDEsIDAuMDA0MzQxIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihRTikgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjA3MzgwMTI7Ci0gICAgZnVuY3Rpb24gOiAiUUJJTlQiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5vbl91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcmlzaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjQwOTA5LCAwLjQzNDMxNywgMC42NjE1MjMsIDEuMDQwMjUsIDEuNDE4NzcsIDIuMzAyMzksIDIuODA3MTMiLCBcCi0gICAgICAgICAgIjAuNDIwOTkyLCAwLjQ0NjIxOSwgMC42NzM0NiwgMS4wNTIxNSwgMS40MzA2NywgMi4zMTQxNCwgMi44MTkwMyIsIFwKLSAgICAgICAgICAiMC40MzYyMjIsIDAuNDYxNDYxLCAwLjY4ODcsIDEuMDY3MjksIDEuNDQ1OTYsIDIuMzI5MzYsIDIuODM0MjciLCBcCi0gICAgICAgICAgIjAuNDUxNjU0LCAwLjQ3Njg5MiwgMC43MDQwNjksIDEuMDgyNzMsIDEuNDYxMzQsIDIuMzQ0NzksIDIuODQ5NzEiLCBcCi0gICAgICAgICAgIjAuNDY2NjM3LCAwLjQ5MTg4OCwgMC43MTkwNjEsIDEuMDk3NzIsIDEuNDc2MzQsIDIuMzU5ODMsIDIuODY0NzEiLCBcCi0gICAgICAgICAgIjAuNDkwOTUyLCAwLjUxNjE3OSwgMC43NDM0NCwgMS4xMjIxMywgMS41MDA2MiwgMi4zODQxLCAyLjg4OTAyIiwgXAotICAgICAgICAgICIwLjUxMTM1NSwgMC41MzY1ODUsIDAuNzYzNzY2LCAxLjE0MjQ4LCAxLjUyMTAzLCAyLjQwNDQ3LCAyLjkwOTQiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjcwNTgyLCAwLjMyMTc5NCwgMC43ODE5NjIsIDEuNTUzMzIsIDIuMzIyNTcsIDQuMTE4NywgNS4xMzg1NiIsIFwKLSAgICAgICAgICAiMC4yNzAxOTcsIDAuMzIxNzYsIDAuNzgzNDk3LCAxLjU1MzY3LCAyLjMyMjU2LCA0LjExODc4LCA1LjEzODU3IiwgXAotICAgICAgICAgICIwLjI3MDU1MiwgMC4zMjE3ODcsIDAuNzgzNTY4LCAxLjU1MzU1LCAyLjMyMjU2LCA0LjExODczLCA1LjEzODQ2IiwgXAotICAgICAgICAgICIwLjI3MDU1OSwgMC4zMjE3NTUsIDAuNzgzNTkyLCAxLjU1MzU3LCAyLjMyMjc2LCA0LjExODc1LCA1LjEzODQyIiwgXAotICAgICAgICAgICIwLjI3MDQzMiwgMC4zMjE3NTksIDAuNzgzNTc4LCAxLjU1MzU4LCAyLjMyMjU2LCA0LjExODQ2LCA1LjEzODQxIiwgXAotICAgICAgICAgICIwLjI3MDU0MiwgMC4zMjE3NTcsIDAuNzgzNTM0LCAxLjU1MzUyLCAyLjMyMjc3LCA0LjExODcxLCA1LjEzODQxIiwgXAotICAgICAgICAgICIwLjI3MDU3MywgMC4zMjE3NDksIDAuNzgzNTYzLCAxLjU1MzY2LCAyLjMyMjc2LCA0LjExODc3LCA1LjEzODQyIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjQwNjExNywgMC40MzU4MTcsIDAuNzAzMDgsIDEuMTQ4NTUsIDEuNTk0MDMsIDIuNjMzMjksIDMuMjI3MzgiLCBcCi0gICAgICAgICAgIjAuNDE3NzcxLCAwLjQ0NzQ2LCAwLjcxNDgzOCwgMS4xNjAxOSwgMS42MDU2NSwgMi42NDQ5NCwgMy4yMzg4IiwgXAotICAgICAgICAgICIwLjQzMzEwOSwgMC40NjI4MTQsIDAuNzMwMTYyLCAxLjE3NTUyLCAxLjYyMTA0LCAyLjY2MDI4LCAzLjI1NDE4IiwgXAotICAgICAgICAgICIwLjQ0ODQ4MywgMC40NzgxNzUsIDAuNzQ1NTQ3LCAxLjE5MDksIDEuNjM2MzgsIDIuNjc1NjUsIDMuMjY5NDYiLCBcCi0gICAgICAgICAgIjAuNDYzMzAyLCAwLjQ5Mjk5NSwgMC43NjAzNjMsIDEuMjA1OCwgMS42NTExMywgMi42OTA2LCAzLjI4NDMzIiwgXAotICAgICAgICAgICIwLjQ4NzUxNywgMC41MTcyMDYsIDAuNzg0NTgyLCAxLjIyOTkzLCAxLjY3NTM4LCAyLjcxNDc3LCAzLjMwODYzIiwgXAotICAgICAgICAgICIwLjUwNzUxOCwgMC41MzcyMSwgMC44MDQ1NzQsIDEuMjUwMDksIDEuNjk1MzQsIDIuNzM0ODIsIDMuMzI4NTciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzA5Mzg3LCAwLjM2ODA5NiwgMC44OTcwOTYsIDEuNzc4NDEsIDIuNjYxMTYsIDQuNzE3NjMsIDUuODkxNjkiLCBcCi0gICAgICAgICAgIjAuMzA5Mzc4LCAwLjM2ODA4NSwgMC44OTY0OTksIDEuNzc4NTYsIDIuNjYwNCwgNC43MTc2MiwgNS44OTEzMyIsIFwKLSAgICAgICAgICAiMC4zMDkzNDMsIDAuMzY4MDU1LCAwLjg5NzAyOSwgMS43NzgzOCwgMi42NTk5NywgNC43MTcxNSwgNS44OTEzMSIsIFwKLSAgICAgICAgICAiMC4zMDkzNzUsIDAuMzY4MDg4LCAwLjg5NjU4NiwgMS43NzgzOCwgMi42NjAxMiwgNC43MTcwOSwgNS44OTA5NiIsIFwKLSAgICAgICAgICAiMC4zMDkzNzMsIDAuMzY4MDc1LCAwLjg5NjU1NiwgMS43Nzg4MSwgMi42NjA0MywgNC43MTg1NiwgNS44OTA4NyIsIFwKLSAgICAgICAgICAiMC4zMDkzMzksIDAuMzY4MDQ1LCAwLjg5NjY2NywgMS43Nzg1NSwgMi42NjA2MywgNC43MTg0NiwgNS44OTEzMSIsIFwKLSAgICAgICAgICAiMC4zMDkzNzQsIDAuMzY4MDY0LCAwLjg5NjYxNCwgMS43NzkwNSwgMi42NjA0MywgNC43MTc2MiwgNS44OTEyOCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQzNDksIDAuMDA0MzUsIDAuMDA0MzUzLCAwLjAwNDM1NCwgMC4wMDQzNTQsIDAuMDA0MzU1LCAwLjAwNDM1NCIsIFwKLSAgICAgICAgICAiMC4wMDQzNDIsIDAuMDA0MzQzLCAwLjAwNDM0NiwgMC4wMDQzNDcsIDAuMDA0MzQ3LCAwLjAwNDM0OCwgMC4wMDQzNDgiLCBcCi0gICAgICAgICAgIjAuMDA0MzM3LCAwLjAwNDMzOCwgMC4wMDQzNDEsIDAuMDA0MzQyLCAwLjAwNDM0MiwgMC4wMDQzNDIsIDAuMDA0MzQyIiwgXAotICAgICAgICAgICIwLjAwNDMzMywgMC4wMDQzMzQsIDAuMDA0MzM3LCAwLjAwNDMzOCwgMC4wMDQzMzgsIDAuMDA0MzM5LCAwLjAwNDMzOSIsIFwKLSAgICAgICAgICAiMC4wMDQzMzIsIDAuMDA0MzMzLCAwLjAwNDMzNiwgMC4wMDQzMzcsIDAuMDA0MzM3LCAwLjAwNDMzOCwgMC4wMDQzMzgiLCBcCi0gICAgICAgICAgIjAuMDA0MzMzLCAwLjAwNDMzMywgMC4wMDQzMzYsIDAuMDA0MzM3LCAwLjAwNDMzNywgMC4wMDQzMzgsIDAuMDA0MzM4IiwgXAotICAgICAgICAgICIwLjAwNDMzNiwgMC4wMDQzMzYsIDAuMDA0MzM5LCAwLjAwNDM0LCAwLjAwNDM0MSwgMC4wMDQzNDEsIDAuMDA0MzQxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0MzMxLCAwLjAwNDMzMiwgMC4wMDQzMzUsIDAuMDA0MzM2LCAwLjAwNDMzNiwgMC4wMDQzMzYsIDAuMDA0MzM2IiwgXAotICAgICAgICAgICIwLjAwNDMyNCwgMC4wMDQzMjUsIDAuMDA0MzI3LCAwLjAwNDMyOCwgMC4wMDQzMjgsIDAuMDA0MzI5LCAwLjAwNDMyOSIsIFwKLSAgICAgICAgICAiMC4wMDQzMTgsIDAuMDA0MzE4LCAwLjAwNDMyMSwgMC4wMDQzMjIsIDAuMDA0MzIyLCAwLjAwNDMyMiwgMC4wMDQzMjMiLCBcCi0gICAgICAgICAgIjAuMDA0MzEzLCAwLjAwNDMxNCwgMC4wMDQzMTYsIDAuMDA0MzE4LCAwLjAwNDMxOCwgMC4wMDQzMTgsIDAuMDA0MzE4IiwgXAotICAgICAgICAgICIwLjAwNDMwOCwgMC4wMDQzMDksIDAuMDA0MzExLCAwLjAwNDMxMiwgMC4wMDQzMTIsIDAuMDA0MzEyLCAwLjAwNDMxMyIsIFwKLSAgICAgICAgICAiMC4wMDQzMDQsIDAuMDA0MzA1LCAwLjAwNDMwOCwgMC4wMDQzMDgsIDAuMDA0MzA5LCAwLjAwNDMwOSwgMC4wMDQzMDkiLCBcCi0gICAgICAgICAgIjAuMDA0MzAyLCAwLjAwNDMwMywgMC4wMDQzMDYsIDAuMDA0MzA2LCAwLjAwNDMwNywgMC4wMDQzMDcsIDAuMDA0MzA3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihSTikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNTY1MzU2OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDU2NTA3OTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA1NjUzNTY7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA1ODk0LCAwLjAwNTg3NSwgMC4wMDU4NjMsIDAuMDA1ODU3LCAwLjAwNTg1NCwgMC4wMDU4NTIsIDAuMDA1ODUyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA2MTI4LCAwLjAwNjExNCwgMC4wMDYxMDQsIDAuMDA2MDk4LCAwLjAwNjA5NSwgMC4wMDYwOTIsIDAuMDA2MDkxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJTRSA9PSAxJ2IwIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4zOTM3NSwgLTAuMzg4NzUsIC0wLjM3NjI1LCAtMC4zNywgLTAuMzU3NSwgLTAuMzQxMjUsIC0wLjMzMjUiLCBcCi0gICAgICAgICAgIi0wLjQxMTI1LCAtMC40LCAtMC4zODc1LCAtMC4zODEyNSwgLTAuMzY4NzUsIC0wLjM1MjUsIC0wLjM0Mzc1IiwgXAotICAgICAgICAgICItMC40MjM3NSwgLTAuNDEyNSwgLTAuNDA2MjUsIC0wLjM5Mzc1LCAtMC4zODc1LCAtMC4zNzEyNSwgLTAuMzYyNSIsIFwKLSAgICAgICAgICAiLTAuNDM2MjUsIC0wLjQzMTI1LCAtMC40MTg3NSwgLTAuNDA2MjUsIC0wLjQsIC0wLjM4Mzc1LCAtMC4zNzUiLCBcCi0gICAgICAgICAgIi0wLjQ1NSwgLTAuNDQzNzUsIC0wLjQzMTI1LCAtMC40MjUsIC0wLjQxMjUsIC0wLjQwMjUsIC0wLjM4NzUiLCBcCi0gICAgICAgICAgIi0wLjQ3MTI1LCAtMC40NjYyNSwgLTAuNDUzNzUsIC0wLjQ0NzUsIC0wLjQzNSwgLTAuNDE4NzUsIC0wLjQxIiwgXAotICAgICAgICAgICItMC40OTI1LCAtMC40ODEyNSwgLTAuNDY4NzUsIC0wLjQ2MjUsIC0wLjQ1LCAtMC40NCwgLTAuNDI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMTUsIC0wLjEzODc1LCAtMC4xMjYyNSwgLTAuMTEzNzUsIC0wLjEwMTI1LCAtMC4wNzg3NSwgLTAuMDYzNzUiLCBcCi0gICAgICAgICAgIi0wLjE2MTI1LCAtMC4xNSwgLTAuMTM3NSwgLTAuMTI1LCAtMC4xMTI1LCAtMC4wOSwgLTAuMDc1IiwgXAotICAgICAgICAgICItMC4xOCwgLTAuMTY4NzUsIC0wLjE1LCAtMC4xMzc1LCAtMC4xMjUsIC0wLjEwODc1LCAtMC4wODc1IiwgXAotICAgICAgICAgICItMC4xOTI1LCAtMC4xODEyNSwgLTAuMTY4NzUsIC0wLjE1NjI1LCAtMC4xMzc1LCAtMC4xMjEyNSwgLTAuMSIsIFwKLSAgICAgICAgICAiLTAuMjA1LCAtMC4xOTM3NSwgLTAuMTgxMjUsIC0wLjE2ODc1LCAtMC4xNTYyNSwgLTAuMTMzNzUsIC0wLjExODc1IiwgXAotICAgICAgICAgICItMC4yMjEyNSwgLTAuMjEsIC0wLjE5NzUsIC0wLjE4NSwgLTAuMTcyNSwgLTAuMTUsIC0wLjEzNSIsIFwKLSAgICAgICAgICAiLTAuMjM2MjUsIC0wLjIyNSwgLTAuMjEyNSwgLTAuMiwgLTAuMTg3NSwgLTAuMTY1LCAtMC4xNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIVNFIjsKLSAgICAgIHNkZl9jb25kIDogIlNFID09IDEnYjAiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjQ2ODc1LCAwLjQ1NzUsIDAuNDQ1LCAwLjQzMjUsIDAuNDIsIDAuNDAzNzUsIDAuMzg4NzUiLCBcCi0gICAgICAgICAgIjAuNDg2MjUsIDAuNDY4NzUsIDAuNDU2MjUsIDAuNDQzNzUsIDAuNDMxMjUsIDAuNDE1LCAwLjQiLCBcCi0gICAgICAgICAgIjAuNDk4NzUsIDAuNDg3NSwgMC40Njg3NSwgMC40NTYyNSwgMC40NDM3NSwgMC40Mjc1LCAwLjQxODc1IiwgXAotICAgICAgICAgICIwLjUxMTI1LCAwLjUsIDAuNDg3NSwgMC40NzUsIDAuNDYyNSwgMC40NDYyNSwgMC40MzEyNSIsIFwKLSAgICAgICAgICAiMC41MywgMC41MTI1LCAwLjUsIDAuNDg3NSwgMC40NzUsIDAuNDU4NzUsIDAuNDUiLCBcCi0gICAgICAgICAgIjAuNTQ2MjUsIDAuNTM1LCAwLjUyMjUsIDAuNTEsIDAuNDk3NSwgMC40ODEyNSwgMC40NjYyNSIsIFwKLSAgICAgICAgICAiMC41Njc1LCAwLjU1NjI1LCAwLjUzNzUsIDAuNTI1LCAwLjUxMjUsIDAuNDk2MjUsIDAuNDg3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI2MjUsIDAuMjUxMjUsIDAuMjM4NzUsIDAuMjIsIDAuMjAxMjUsIDAuMTc4NzUsIDAuMTU3NSIsIFwKLSAgICAgICAgICAiMC4yNzM3NSwgMC4yNjI1LCAwLjI1LCAwLjIzMTI1LCAwLjIxODc1LCAwLjE5LCAwLjE2ODc1IiwgXAotICAgICAgICAgICIwLjI5MjUsIDAuMjc1LCAwLjI2MjUsIDAuMjQzNzUsIDAuMjMxMjUsIDAuMjA4NzUsIDAuMTg3NSIsIFwKLSAgICAgICAgICAiMC4zMDUsIDAuMjkzNzUsIDAuMjc1LCAwLjI2MjUsIDAuMjQzNzUsIDAuMjIxMjUsIDAuMiIsIFwKLSAgICAgICAgICAiMC4zMTc1LCAwLjMwNjI1LCAwLjI4NzUsIDAuMjc1LCAwLjI1NjI1LCAwLjIzMzc1LCAwLjIxMjUiLCBcCi0gICAgICAgICAgIjAuMzMzNzUsIDAuMzIyNSwgMC4zMSwgMC4yOTEyNSwgMC4yNzg3NSwgMC4yNSwgMC4yMjg3NSIsIFwKLSAgICAgICAgICAiMC4zNDg3NSwgMC4zMzc1LCAwLjMyNSwgMC4zMDYyNSwgMC4yODc1LCAwLjI2NSwgMC4yNDM3NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oU0UpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTEzMjY3OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTEzMjAyOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTEzMjY3OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzcxMiwgMC4wMDM3MDUsIDAuMDAzNjk4LCAwLjAwMzY5NCwgMC4wMDM2OTIsIDAuMDAzNjg5LCAwLjAwMzY4OCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNTA5NCwgMC4wMDUwOCwgMC4wMDUwNjgsIDAuMDA1MDYsIDAuMDA1MDU1LCAwLjAwNTA0OSwgMC4wMDUwNDYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUQmIUUmIVJOJlNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9FX0VRXzBfQU5fUk5fRVFfMF9BTl9TSV9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjEzMTI1LCAtMC4xMjYyNSwgLTAuMTEzNzUsIC0wLjEwMTI1LCAtMC4wOTUsIC0wLjA3ODc1LCAtMC4wNyIsIFwKLSAgICAgICAgICAiLTAuMTQyNSwgLTAuMTM3NSwgLTAuMTI1LCAtMC4xMTI1LCAtMC4xMDYyNSwgLTAuMDksIC0wLjA4MTI1IiwgXAotICAgICAgICAgICItMC4xNjEyNSwgLTAuMTUsIC0wLjEzNzUsIC0wLjEyNSwgLTAuMTE4NzUsIC0wLjEwMjUsIC0wLjA5Mzc1IiwgXAotICAgICAgICAgICItMC4xNzM3NSwgLTAuMTYyNSwgLTAuMTUsIC0wLjE0Mzc1LCAtMC4xMzEyNSwgLTAuMTIxMjUsIC0wLjEwNjI1IiwgXAotICAgICAgICAgICItMC4xODYyNSwgLTAuMTc1LCAtMC4xNjI1LCAtMC4xNTYyNSwgLTAuMTQzNzUsIC0wLjEzMzc1LCAtMC4xMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMjA4NzUsIC0wLjE5NzUsIC0wLjE4NSwgLTAuMTc4NzUsIC0wLjE2NjI1LCAtMC4xNTYyNSwgLTAuMTQxMjUiLCBcCi0gICAgICAgICAgIi0wLjIyMzc1LCAtMC4yMTg3NSwgLTAuMjA2MjUsIC0wLjE5Mzc1LCAtMC4xODc1LCAtMC4xNzEyNSwgLTAuMTYyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAyNSwgLTAuMDEzNzUsIC0wLjAwMTI1LCAwLjAxMTI1LCAwLjAzLCAwLjA0NjI1LCAwLjA2MTI1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDI1LCAtMC4wMDYyNSwgMC4wMDYyNSwgMC4wMTg3NSwgMC4wMzUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAxMjUsIDAuMDA2MjUsIDAuMDIyNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDYxMjUsIC0wLjA1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAxMjUsIDAuMDEsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjA3Mzc1LCAtMC4wNjI1LCAtMC4wNSwgLTAuMDM3NSwgLTAuMDI1LCAtMC4wMDI1LCAwLjAxODc1IiwgXAotICAgICAgICAgICItMC4wOSwgLTAuMDc4NzUsIC0wLjA2NjI1LCAtMC4wNTM3NSwgLTAuMDQxMjUsIC0wLjAxODc1LCAtMC4wMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMTA1LCAtMC4wOTM3NSwgLTAuMDgxMjUsIC0wLjA3NSwgLTAuMDU2MjUsIC0wLjA0LCAtMC4wMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUQmIUUmUk4mIVNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9FX0VRXzBfQU5fUk5fRVFfMV9BTl9TSV9FUV8wID09IDEnYjEiOwotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjE3NSwgLTAuMTYzNzUsIC0wLjE1NzUsIC0wLjE0NSwgLTAuMTM4NzUsIC0wLjEyMjUsIC0wLjExMzc1IiwgXAotICAgICAgICAgICItMC4xODYyNSwgLTAuMTgxMjUsIC0wLjE2ODc1LCAtMC4xNTYyNSwgLTAuMTUsIC0wLjEzMzc1LCAtMC4xMjUiLCBcCi0gICAgICAgICAgIi0wLjIwNSwgLTAuMTkzNzUsIC0wLjE4MTI1LCAtMC4xNzUsIC0wLjE2MjUsIC0wLjE1MjUsIC0wLjEzNzUiLCBcCi0gICAgICAgICAgIi0wLjIxNzUsIC0wLjIwNjI1LCAtMC4yLCAtMC4xODc1LCAtMC4xODEyNSwgLTAuMTY1LCAtMC4xNTYyNSIsIFwKLSAgICAgICAgICAiLTAuMjMsIC0wLjIyNSwgLTAuMjEyNSwgLTAuMiwgLTAuMTkzNzUsIC0wLjE3NzUsIC0wLjE2ODc1IiwgXAotICAgICAgICAgICItMC4yNTI1LCAtMC4yNDEyNSwgLTAuMjM1LCAtMC4yMjI1LCAtMC4yMSwgLTAuMiwgLTAuMTkxMjUiLCBcCi0gICAgICAgICAgIi0wLjI2NzUsIC0wLjI1NjI1LCAtMC4yNSwgLTAuMjM3NSwgLTAuMjMxMjUsIC0wLjIxNSwgLTAuMjA2MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiRCZFJlJOJiFTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzFfQU5fRV9FUV8xX0FOX1JOX0VRXzFfQU5fU0lfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wNjg3NSwgLTAuMDU3NSwgLTAuMDQ1LCAtMC4wMzI1LCAtMC4wMiwgMC4wMDI1LCAwLjAxNzUiLCBcCi0gICAgICAgICAgIi0wLjA4LCAtMC4wNjg3NSwgLTAuMDU2MjUsIC0wLjA0Mzc1LCAtMC4wMzEyNSwgLTAuMDA4NzUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA5ODc1LCAtMC4wODc1LCAtMC4wNzUsIC0wLjA2MjUsIC0wLjA0Mzc1LCAtMC4wMjc1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMTExMjUsIC0wLjEsIC0wLjA4NzUsIC0wLjA3NSwgLTAuMDYyNSwgLTAuMDQsIC0wLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMTMsIC0wLjExODc1LCAtMC4xLCAtMC4wODc1LCAtMC4wNzUsIC0wLjA1ODc1LCAtMC4wMzc1IiwgXAotICAgICAgICAgICItMC4xNTI1LCAtMC4xNDEyNSwgLTAuMTIyNSwgLTAuMTEsIC0wLjA5NzUsIC0wLjA4MTI1LCAtMC4wNiIsIFwKLSAgICAgICAgICAiLTAuMTY3NSwgLTAuMTU2MjUsIC0wLjE0Mzc1LCAtMC4xMzEyNSwgLTAuMTE4NzUsIC0wLjA5NjI1LCAtMC4wODEyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUQmIUUmIVJOJlNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9FX0VRXzBfQU5fUk5fRVFfMF9BTl9TSV9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIwNjI1LCAwLjE5NSwgMC4xNzYyNSwgMC4xNjM3NSwgMC4xNTEyNSwgMC4xMzUsIDAuMTI2MjUiLCBcCi0gICAgICAgICAgIjAuMjE3NSwgMC4yMDYyNSwgMC4xODc1LCAwLjE3NSwgMC4xNjI1LCAwLjE0NjI1LCAwLjEzNzUiLCBcCi0gICAgICAgICAgIjAuMjMsIDAuMjE4NzUsIDAuMiwgMC4xODc1LCAwLjE3NSwgMC4xNTg3NSwgMC4xNSIsIFwKLSAgICAgICAgICAiMC4yNDI1LCAwLjIzMTI1LCAwLjIxODc1LCAwLjIsIDAuMTg3NSwgMC4xNzc1LCAwLjE2MjUiLCBcCi0gICAgICAgICAgIjAuMjU1LCAwLjI0Mzc1LCAwLjIzMTI1LCAwLjIxMjUsIDAuMjA2MjUsIDAuMTksIDAuMTc1IiwgXAotICAgICAgICAgICIwLjI3NzUsIDAuMjY2MjUsIDAuMjUzNzUsIDAuMjM1LCAwLjIyODc1LCAwLjIxMjUsIDAuMTk3NSIsIFwKLSAgICAgICAgICAiMC4yOTg3NSwgMC4yODc1LCAwLjI2ODc1LCAwLjI1NjI1LCAwLjI0Mzc1LCAwLjIyNzUsIDAuMjE4NzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMzc1LCAwLjEyNjI1LCAwLjEwNzUsIDAuMDk1LCAwLjA3NjI1LCAwLjA1Mzc1LCAwLjAzMjUiLCBcCi0gICAgICAgICAgIjAuMTQ4NzUsIDAuMTM3NSwgMC4xMTg3NSwgMC4xLCAwLjA4NzUsIDAuMDY1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjE2MTI1LCAwLjE1LCAwLjEzMTI1LCAwLjExMjUsIDAuMSwgMC4wNzc1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICIwLjE3Mzc1LCAwLjE2MjUsIDAuMTQzNzUsIDAuMTMxMjUsIDAuMTEyNSwgMC4wOSwgMC4wNjg3NSIsIFwKLSAgICAgICAgICAiMC4xODYyNSwgMC4xNzUsIDAuMTU2MjUsIDAuMTQzNzUsIDAuMTI1LCAwLjEwMjUsIDAuMDgxMjUiLCBcCi0gICAgICAgICAgIjAuMjA4NzUsIDAuMTk3NSwgMC4xNzg3NSwgMC4xNjYyNSwgMC4xNDc1LCAwLjEyNSwgMC4xMDM3NSIsIFwKLSAgICAgICAgICAiMC4yMjM3NSwgMC4yMTI1LCAwLjIsIDAuMTgxMjUsIDAuMTY4NzUsIDAuMTQsIDAuMTE4NzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEJiFFJlJOJiFTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fRV9FUV8wX0FOX1JOX0VRXzFfQU5fU0lfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xODEyNSwgMC4xNywgMC4xNTc1LCAwLjEzODc1LCAwLjEyNjI1LCAwLjA5NzUsIDAuMDc2MjUiLCBcCi0gICAgICAgICAgIjAuMTk4NzUsIDAuMTgxMjUsIDAuMTY4NzUsIDAuMTUsIDAuMTM3NSwgMC4xMDg3NSwgMC4wOTM3NSIsIFwKLSAgICAgICAgICAiMC4yMTEyNSwgMC4yLCAwLjE4MTI1LCAwLjE2ODc1LCAwLjE1LCAwLjEyNzUsIDAuMTA2MjUiLCBcCi0gICAgICAgICAgIjAuMjIzNzUsIDAuMjEyNSwgMC4yLCAwLjE4MTI1LCAwLjE2ODc1LCAwLjE0LCAwLjExODc1IiwgXAotICAgICAgICAgICIwLjI0MjUsIDAuMjMxMjUsIDAuMjEyNSwgMC4yLCAwLjE4MTI1LCAwLjE1ODc1LCAwLjEzNzUiLCBcCi0gICAgICAgICAgIjAuMjY1LCAwLjI1Mzc1LCAwLjIzNSwgMC4yMjI1LCAwLjIwMzc1LCAwLjE4MTI1LCAwLjE2IiwgXAotICAgICAgICAgICIwLjI4LCAwLjI2ODc1LCAwLjI1NjI1LCAwLjIzNzUsIDAuMjI1LCAwLjE5NjI1LCAwLjE3NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiRCZFJlJOJiFTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzFfQU5fRV9FUV8xX0FOX1JOX0VRXzFfQU5fU0lfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yNSwgMC4yMzI1LCAwLjIyLCAwLjIwNzUsIDAuMTk1LCAwLjE3ODc1LCAwLjE3IiwgXAotICAgICAgICAgICIwLjI2MTI1LCAwLjI0Mzc1LCAwLjIzMTI1LCAwLjIxODc1LCAwLjIwNjI1LCAwLjE5LCAwLjE4MTI1IiwgXAotICAgICAgICAgICIwLjI3Mzc1LCAwLjI2MjUsIDAuMjUsIDAuMjMxMjUsIDAuMjI1LCAwLjIwODc1LCAwLjE5Mzc1IiwgXAotICAgICAgICAgICIwLjI4NjI1LCAwLjI3NSwgMC4yNjI1LCAwLjI1LCAwLjIzNzUsIDAuMjIxMjUsIDAuMjA2MjUiLCBcCi0gICAgICAgICAgIjAuMzA1LCAwLjI5Mzc1LCAwLjI3NSwgMC4yNjI1LCAwLjI1LCAwLjIzMzc1LCAwLjIyNSIsIFwKLSAgICAgICAgICAiMC4zMjEyNSwgMC4zMSwgMC4yOTc1LCAwLjI4NSwgMC4yNzI1LCAwLjI1NjI1LCAwLjI0MTI1IiwgXAotICAgICAgICAgICIwLjMzNjI1LCAwLjMyNSwgMC4zMTI1LCAwLjMsIDAuMjg3NSwgMC4yNzEyNSwgMC4yNjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTSSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNTQ5MDMyOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDU0NzM4NzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA1NDkwMzI7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyMjg0LCAwLjAwMjI3NSwgMC4wMDIyNywgMC4wMDIyNjcsIDAuMDAyMjY0LCAwLjAwMjI2MSwgMC4wMDIyNTkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDM4NjcsIDAuMDAzODYyLCAwLjAwMzg2LCAwLjAwMzg1NywgMC4wMDM4NTcsIDAuMDAzODU1LCAwLjAwMzg1NCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJTRSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4xNSwgLTAuMTM4NzUsIC0wLjEyNjI1LCAtMC4xMiwgLTAuMTA3NSwgLTAuMDk3NSwgLTAuMDgyNSIsIFwKLSAgICAgICAgICAiLTAuMTYxMjUsIC0wLjE1LCAtMC4xMzc1LCAtMC4xMzEyNSwgLTAuMTE4NzUsIC0wLjEwODc1LCAtMC4wOTM3NSIsIFwKLSAgICAgICAgICAiLTAuMTczNzUsIC0wLjE2MjUsIC0wLjE1NjI1LCAtMC4xNDM3NSwgLTAuMTM3NSwgLTAuMTIxMjUsIC0wLjExMjUiLCBcCi0gICAgICAgICAgIi0wLjE4NjI1LCAtMC4xODEyNSwgLTAuMTY4NzUsIC0wLjE1NjI1LCAtMC4xNSwgLTAuMTMzNzUsIC0wLjEyNSIsIFwKLSAgICAgICAgICAiLTAuMTk4NzUsIC0wLjE5Mzc1LCAtMC4xODEyNSwgLTAuMTc1LCAtMC4xNjI1LCAtMC4xNDYyNSwgLTAuMTM3NSIsIFwKLSAgICAgICAgICAiLTAuMjIxMjUsIC0wLjIxNjI1LCAtMC4yMDM3NSwgLTAuMTkxMjUsIC0wLjE4NSwgLTAuMTY4NzUsIC0wLjE2IiwgXAotICAgICAgICAgICItMC4yNDI1LCAtMC4yMzEyNSwgLTAuMjI1LCAtMC4yMTI1LCAtMC4yMDYyNSwgLTAuMTksIC0wLjE4MTI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDM3NSwgLTAuMDI2MjUsIC0wLjAxMzc1LCAtMC4wMDEyNSwgMC4wMTEyNSwgMC4wMzM3NSwgMC4wNDg3NSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjAzNzUsIC0wLjAyNSwgLTAuMDEyNSwgMCwgMC4wMjI1LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjA2NzUsIC0wLjA1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAxMjUsIDAuMDEsIDAuMDI1IiwgXAotICAgICAgICAgICItMC4wNzM3NSwgLTAuMDYyNSwgLTAuMDUsIC0wLjAzNzUsIC0wLjAyNSwgLTAuMDAyNSwgMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wODYyNSwgLTAuMDc1LCAtMC4wNjI1LCAtMC4wNSwgLTAuMDM3NSwgLTAuMDE1LCAwIiwgXAotICAgICAgICAgICItMC4xMDg3NSwgLTAuMDk3NSwgLTAuMDg1LCAtMC4wNjYyNSwgLTAuMDUzNzUsIC0wLjAzNzUsIC0wLjAxNjI1IiwgXAotICAgICAgICAgICItMC4xMjM3NSwgLTAuMTEyNSwgLTAuMSwgLTAuMDg3NSwgLTAuMDc1LCAtMC4wNTI1LCAtMC4wMzc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJTRSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMTg3NSwgMC4yMDc1LCAwLjE5NSwgMC4xNzYyNSwgMC4xNywgMC4xNTM3NSwgMC4xMzg3NSIsIFwKLSAgICAgICAgICAiMC4yMywgMC4yMTg3NSwgMC4yMDYyNSwgMC4xODc1LCAwLjE4MTI1LCAwLjE2NSwgMC4xNSIsIFwKLSAgICAgICAgICAiMC4yNDI1LCAwLjIzMTI1LCAwLjIxODc1LCAwLjIwNjI1LCAwLjE5Mzc1LCAwLjE3NzUsIDAuMTYyNSIsIFwKLSAgICAgICAgICAiMC4yNjEyNSwgMC4yNDM3NSwgMC4yMzEyNSwgMC4yMTg3NSwgMC4yMDYyNSwgMC4xOSwgMC4xODEyNSIsIFwKLSAgICAgICAgICAiMC4yNzM3NSwgMC4yNjI1LCAwLjI0Mzc1LCAwLjIzMTI1LCAwLjIxODc1LCAwLjIwMjUsIDAuMTkzNzUiLCBcCi0gICAgICAgICAgIjAuMjk2MjUsIDAuMjg1LCAwLjI2NjI1LCAwLjI1Mzc1LCAwLjI0MTI1LCAwLjIyNSwgMC4yMTYyNSIsIFwKLSAgICAgICAgICAiMC4zMTEyNSwgMC4zLCAwLjI4NzUsIDAuMjc1LCAwLjI2MjUsIDAuMjQ2MjUsIDAuMjMxMjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNSwgMC4xMzg3NSwgMC4xMjYyNSwgMC4xMDc1LCAwLjA5NSwgMC4wNjYyNSwgMC4wNTEyNSIsIFwKLSAgICAgICAgICAiMC4xNjEyNSwgMC4xNSwgMC4xMzc1LCAwLjExODc1LCAwLjEwNjI1LCAwLjA3NzUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIjAuMTgsIDAuMTYyNSwgMC4xNSwgMC4xMzEyNSwgMC4xMTg3NSwgMC4wOSwgMC4wNzUiLCBcCi0gICAgICAgICAgIjAuMTkyNSwgMC4xNzUsIDAuMTYyNSwgMC4xNDM3NSwgMC4xMzEyNSwgMC4xMDI1LCAwLjA4NzUiLCBcCi0gICAgICAgICAgIjAuMjA1LCAwLjE4NzUsIDAuMTc1LCAwLjE1NjI1LCAwLjE0Mzc1LCAwLjExNSwgMC4xIiwgXAotICAgICAgICAgICIwLjIyMTI1LCAwLjIxLCAwLjE5MTI1LCAwLjE3ODc1LCAwLjE2LCAwLjEzNzUsIDAuMTE2MjUiLCBcCi0gICAgICAgICAgIjAuMjM2MjUsIDAuMjI1LCAwLjIxMjUsIDAuMTkzNzUsIDAuMTgxMjUsIDAuMTUyNSwgMC4xMzEyNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IFNFREZGWDIgKgotICogLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoU0VERkZYMikgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjQ0OTM1OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIGZmIChOMzAsTkVUNTM2KSB7Ci0gICAgbmV4dF9zdGF0ZSA6ICIoKFNFIFNJKSArICghU0UgKChFIEQpICsgKCFFICghKCFOMzApKSkpKSkiOwotICAgIGNsb2NrZWRfb24gOiAiQ0siOwotICB9Ci0gIHBpbihDSykgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNTU4NjMxOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDU1ODMzMjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA1NTg2MzE7Ci0gICAgY2xvY2sgOiB0cnVlOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjU0MywgMC4wMDI1MywgMC4wMDI1MTgsIDAuMDAyNTExLCAwLjAwMjUwNSwgMC4wMDI0OTgsIDAuMDAyNDk3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA0NzYsIDAuMDA0NzUsIDAuMDA0NzQxLCAwLjAwNDczNiwgMC4wMDQ3MzQsIDAuMDA0NzM2LCAwLjAwNDczNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQmIUUmU0UmIVNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9FX0VRXzBfQU5fU0VfRVFfMV9BTl9TSV9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMzYxMDI5LCAwLjM3MjgzOSwgMC4zODgxNDgsIDAuNDAzNjY2LCAwLjQxODg3MiwgMC40NDMyNDksIDAuNDY0MDE3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4yMDg0MjcsIDAuMjE5NzQ1LCAwLjIzNDgwOSwgMC4yNDk2NjMsIDAuMjY0MzM1LCAwLjI4NzExNywgMC4zMDU3NDMiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEQpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYxNTYwNjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MTM4NDI7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjE1NjA2OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjc3OCwgMC4wMDI3NjgsIDAuMDAyNzY0LCAwLjAwMjc2MiwgMC4wMDI3NTksIDAuMDAyNzU3LCAwLjAwMjc1NSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNTM0LCAwLjAwNTMzNSwgMC4wMDUzMzMsIDAuMDA1MzMyLCAwLjAwNTMzLCAwLjAwNTMyOSwgMC4wMDUzMjgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiRSYhU0UiOwotICAgICAgc2RmX2NvbmQgOiAiRV9FUV8xX0FOX1NFX0VRXzAgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMjU2MjUsIC0wLjI1MTI1LCAtMC4yMzg3NSwgLTAuMjMyNSwgLTAuMjIsIC0wLjIxLCAtMC4xOTUiLCBcCi0gICAgICAgICAgIi0wLjI2NzUsIC0wLjI2MjUsIC0wLjI1LCAtMC4yNDM3NSwgLTAuMjMxMjUsIC0wLjIyMTI1LCAtMC4yMTI1IiwgXAotICAgICAgICAgICItMC4yODYyNSwgLTAuMjc1LCAtMC4yNjI1LCAtMC4yNTYyNSwgLTAuMjUsIC0wLjIzMzc1LCAtMC4yMjUiLCBcCi0gICAgICAgICAgIi0wLjI5ODc1LCAtMC4yODc1LCAtMC4yODEyNSwgLTAuMjY4NzUsIC0wLjI2MjUsIC0wLjI0NjI1LCAtMC4yMzc1IiwgXAotICAgICAgICAgICItMC4zMTEyNSwgLTAuMywgLTAuMjkzNzUsIC0wLjI4MTI1LCAtMC4yNzUsIC0wLjI1ODc1LCAtMC4yNSIsIFwKLSAgICAgICAgICAiLTAuMzMzNzUsIC0wLjMyMjUsIC0wLjMxNjI1LCAtMC4zMDM3NSwgLTAuMjk3NSwgLTAuMjgxMjUsIC0wLjI3MjUiLCBcCi0gICAgICAgICAgIi0wLjM1NSwgLTAuMzQzNzUsIC0wLjMzMTI1LCAtMC4zMjUsIC0wLjMxODc1LCAtMC4zMDI1LCAtMC4yOTM3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjA2MjUsIC0wLjA1MTI1LCAtMC4wMzg3NSwgLTAuMDMyNSwgLTAuMDI2MjUsIC0wLjAxNjI1LCAtMC4wMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDczNzUsIC0wLjA2MjUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDI3NSwgLTAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDg2MjUsIC0wLjA3NSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNCwgLTAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjA5ODc1LCAtMC4wODc1LCAtMC4wNzUsIC0wLjA2ODc1LCAtMC4wNjI1LCAtMC4wNTI1LCAtMC4wNDM3NSIsIFwKLSAgICAgICAgICAiLTAuMTExMjUsIC0wLjEsIC0wLjA4NzUsIC0wLjA4MTI1LCAtMC4wNzUsIC0wLjA2NSwgLTAuMDUiLCBcCi0gICAgICAgICAgIi0wLjEzMzc1LCAtMC4xMjI1LCAtMC4xMSwgLTAuMTAzNzUsIC0wLjA5MTI1LCAtMC4wODEyNSwgLTAuMDcyNSIsIFwKLSAgICAgICAgICAiLTAuMTQyNSwgLTAuMTM3NSwgLTAuMTI1LCAtMC4xMTg3NSwgLTAuMTEyNSwgLTAuMDk2MjUsIC0wLjA4NzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIkUmIVNFIjsKLSAgICAgIHNkZl9jb25kIDogIkVfRVFfMV9BTl9TRV9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjM4MTI1LCAwLjM2Mzc1LCAwLjM1MTI1LCAwLjMzMjUsIDAuMzIsIDAuMzAzNzUsIDAuMjg4NzUiLCBcCi0gICAgICAgICAgIjAuMzkyNSwgMC4zNzUsIDAuMzYyNSwgMC4zNDM3NSwgMC4zMzEyNSwgMC4zMTUsIDAuMyIsIFwKLSAgICAgICAgICAiMC40MDUsIDAuMzkzNzUsIDAuMzc1LCAwLjM2MjUsIDAuMzQzNzUsIDAuMzI3NSwgMC4zMTI1IiwgXAotICAgICAgICAgICIwLjQxNzUsIDAuNDA2MjUsIDAuMzg3NSwgMC4zNzUsIDAuMzYyNSwgMC4zNCwgMC4zMjUiLCBcCi0gICAgICAgICAgIjAuNDMsIDAuNDE4NzUsIDAuNCwgMC4zODc1LCAwLjM3NSwgMC4zNTI1LCAwLjMzNzUiLCBcCi0gICAgICAgICAgIjAuNDUyNSwgMC40NDEyNSwgMC40MjI1LCAwLjQxLCAwLjM5NzUsIDAuMzc1LCAwLjM2IiwgXAotICAgICAgICAgICIwLjQ3Mzc1LCAwLjQ2MjUsIDAuNDQzNzUsIDAuNDMxMjUsIDAuNDEyNSwgMC4zOTYyNSwgMC4zODEyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI4MTI1LCAwLjI3LCAwLjI1MTI1LCAwLjIzODc1LCAwLjIyLCAwLjE5NzUsIDAuMTc2MjUiLCBcCi0gICAgICAgICAgIjAuMjkyNSwgMC4yODEyNSwgMC4yNjI1LCAwLjI1LCAwLjIzMTI1LCAwLjIwODc1LCAwLjE4NzUiLCBcCi0gICAgICAgICAgIjAuMzA1LCAwLjI5Mzc1LCAwLjI3NSwgMC4yNjI1LCAwLjI0Mzc1LCAwLjIyMTI1LCAwLjIiLCBcCi0gICAgICAgICAgIjAuMzE3NSwgMC4zMDYyNSwgMC4yODc1LCAwLjI3NSwgMC4yNTYyNSwgMC4yMzM3NSwgMC4yMTI1IiwgXAotICAgICAgICAgICIwLjMzLCAwLjMxODc1LCAwLjMsIDAuMjg3NSwgMC4yNjg3NSwgMC4yNDYyNSwgMC4yMjUiLCBcCi0gICAgICAgICAgIjAuMzUyNSwgMC4zMzUsIDAuMzIyNSwgMC4zMDM3NSwgMC4yOTEyNSwgMC4yNjI1LCAwLjI0MTI1IiwgXAotICAgICAgICAgICIwLjM2NzUsIDAuMzU2MjUsIDAuMzM3NSwgMC4zMjUsIDAuMzA2MjUsIDAuMjgzNzUsIDAuMjYyNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxMzAwNDc7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxMjk5OTY7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxMzAwNDc7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA1MTI5LCAwLjAwNTExNywgMC4wMDUxMDksIDAuMDA1MTA1LCAwLjAwNTEwNCwgMC4wMDUxMDMsIDAuMDA1MTA0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA2MjM5LCAwLjAwNjIyMywgMC4wMDYyMTIsIDAuMDA2MjA3LCAwLjAwNjIwMiwgMC4wMDYxOTgsIDAuMDA2MTk2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJTRSA9PSAxJ2IwIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4yNTYyNSwgLTAuMjQ1LCAtMC4yMjYyNSwgLTAuMjEzNzUsIC0wLjE5NSwgLTAuMTcyNSwgLTAuMTUxMjUiLCBcCi0gICAgICAgICAgIi0wLjI2NzUsIC0wLjI1NjI1LCAtMC4yNDM3NSwgLTAuMjI1LCAtMC4yMTI1LCAtMC4xODM3NSwgLTAuMTY4NzUiLCBcCi0gICAgICAgICAgIi0wLjI4NjI1LCAtMC4yNjg3NSwgLTAuMjU2MjUsIC0wLjIzNzUsIC0wLjIyNSwgLTAuMjAyNSwgLTAuMTgxMjUiLCBcCi0gICAgICAgICAgIi0wLjI5ODc1LCAtMC4yODc1LCAtMC4yNjg3NSwgLTAuMjU2MjUsIC0wLjIzNzUsIC0wLjIxNSwgLTAuMTkzNzUiLCBcCi0gICAgICAgICAgIi0wLjMxMTI1LCAtMC4zLCAtMC4yODc1LCAtMC4yNjg3NSwgLTAuMjU2MjUsIC0wLjIyNzUsIC0wLjIxMjUiLCBcCi0gICAgICAgICAgIi0wLjMzMzc1LCAtMC4zMjI1LCAtMC4zMSwgLTAuMjkxMjUsIC0wLjI3ODc1LCAtMC4yNSwgLTAuMjM1IiwgXAotICAgICAgICAgICItMC4zNDg3NSwgLTAuMzM3NSwgLTAuMzI1LCAtMC4zMDYyNSwgLTAuMjkzNzUsIC0wLjI3MTI1LCAtMC4yNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjA1LCAtMC4wMzg3NSwgLTAuMDI2MjUsIC0wLjAyLCAtMC4wMTM3NSwgMC4wMDI1LCAwLjAxMTI1IiwgXAotICAgICAgICAgICItMC4wNjEyNSwgLTAuMDUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgLTAuMDA4NzUsIDAiLCBcCi0gICAgICAgICAgIi0wLjA3Mzc1LCAtMC4wNjI1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAyMTI1LCAtMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wODYyNSwgLTAuMDc1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjAzMzc1LCAtMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjA5ODc1LCAtMC4wODc1LCAtMC4wNzUsIC0wLjA2ODc1LCAtMC4wNjI1LCAtMC4wNDYyNSwgLTAuMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMTIxMjUsIC0wLjExLCAtMC4wOTc1LCAtMC4wODUsIC0wLjA3ODc1LCAtMC4wNjg3NSwgLTAuMDYiLCBcCi0gICAgICAgICAgIi0wLjEzLCAtMC4xMTg3NSwgLTAuMTA2MjUsIC0wLjEsIC0wLjA5Mzc1LCAtMC4wODM3NSwgLTAuMDc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhU0UiOwotICAgICAgc2RmX2NvbmQgOiAiU0UgPT0gMSdiMCI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzYyNSwgMC4zNTEyNSwgMC4zMzg3NSwgMC4zMiwgMC4zMDc1LCAwLjI4NSwgMC4yNzYyNSIsIFwKLSAgICAgICAgICAiMC4zNzM3NSwgMC4zNjI1LCAwLjM1LCAwLjMzMTI1LCAwLjMxODc1LCAwLjI5NjI1LCAwLjI4NzUiLCBcCi0gICAgICAgICAgIjAuMzkyNSwgMC4zNzUsIDAuMzYyNSwgMC4zNDM3NSwgMC4zMzEyNSwgMC4zMTUsIDAuMyIsIFwKLSAgICAgICAgICAiMC40MDUsIDAuMzkzNzUsIDAuMzc1LCAwLjM1NjI1LCAwLjM0Mzc1LCAwLjMyNzUsIDAuMzEyNSIsIFwKLSAgICAgICAgICAiMC40MTc1LCAwLjQwNjI1LCAwLjM4NzUsIDAuMzc1LCAwLjM1NjI1LCAwLjM0LCAwLjMyNSIsIFwKLSAgICAgICAgICAiMC40NCwgMC40Mjg3NSwgMC40MSwgMC4zOTEyNSwgMC4zNzg3NSwgMC4zNjI1LCAwLjM0NzUiLCBcCi0gICAgICAgICAgIjAuNDU1LCAwLjQ0Mzc1LCAwLjQzMTI1LCAwLjQxMjUsIDAuNCwgMC4zNzc1LCAwLjM2ODc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzA2MjUsIDAuMjk1LCAwLjI4ODc1LCAwLjI3NjI1LCAwLjI3LCAwLjI1Mzc1LCAwLjI0NSIsIFwKLSAgICAgICAgICAiMC4zMTc1LCAwLjMxMjUsIDAuMywgMC4yODc1LCAwLjI4MTI1LCAwLjI2NSwgMC4yNTYyNSIsIFwKLSAgICAgICAgICAiMC4zMzYyNSwgMC4zMjUsIDAuMzEyNSwgMC4zLCAwLjI5Mzc1LCAwLjI3NzUsIDAuMjY4NzUiLCBcCi0gICAgICAgICAgIjAuMzQ4NzUsIDAuMzM3NSwgMC4zMjUsIDAuMzE4NzUsIDAuMzA2MjUsIDAuMjk2MjUsIDAuMjgxMjUiLCBcCi0gICAgICAgICAgIjAuMzYxMjUsIDAuMzUsIDAuMzM3NSwgMC4zMzEyNSwgMC4zMTg3NSwgMC4zMDg3NSwgMC4yOTM3NSIsIFwKLSAgICAgICAgICAiMC4zNzc1LCAwLjM3MjUsIDAuMzYsIDAuMzQ3NSwgMC4zNDEyNSwgMC4zMjUsIDAuMzE2MjUiLCBcCi0gICAgICAgICAgIjAuMzkyNSwgMC4zODEyNSwgMC4zNzUsIDAuMzYyNSwgMC4zNTYyNSwgMC4zNCwgMC4zMzEyNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjI2MjMyNjsKLSAgICBmdW5jdGlvbiA6ICJOMzAiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5vbl91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcmlzaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI1MDExNiwgMC40MzA4MjYsIDAuNTc1MTY1LCAwLjc1Mzc0NSwgMC45MzQ3NiwgMS4xMTQzNSwgMS4yOTMwNCIsIFwKLSAgICAgICAgICAiMC4yNjE3NzEsIDAuNDQyNTMsIDAuNTg2ODk1LCAwLjc2NTU3NSwgMC45NDY1MzQsIDEuMTI1NzUsIDEuMzA0NzMiLCBcCi0gICAgICAgICAgIjAuMjc2OTUsIDAuNDU3Njk2LCAwLjYwMjA2MywgMC43ODA3MjksIDAuOTYxMjE5LCAxLjE0MDk0LCAxLjMxOTg4IiwgXAotICAgICAgICAgICIwLjI5MjQzMSwgMC40NzMxODQsIDAuNjE3NTUsIDAuNzk2MjI4LCAwLjk3NzE1NCwgMS4xNTY0MSwgMS4zMzUzOCIsIFwKLSAgICAgICAgICAiMC4zMDc2MzIsIDAuNDg4MzU1LCAwLjYzMjY4NSwgMC44MTI2NzEsIDAuOTkxNzQzLCAxLjE3MTI2LCAxLjM1MTMzIiwgXAotICAgICAgICAgICIwLjMzMTgsIDAuNTEyNTU2LCAwLjY1NjkxOSwgMC44MzU2MDYsIDEuMDE2NjgsIDEuMTk1NzYsIDEuMzc0NzMiLCBcCi0gICAgICAgICAgIjAuMzUyMzg0LCAwLjUzMzEzOSwgMC42Nzc1MDQsIDAuODU2MTg4LCAxLjAzNzIyLCAxLjIxNjMzLCAxLjM5NTI4Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5NDE3NSwgMC40NTYwNDEsIDAuNzUwODQ3LCAxLjExOTU3LCAxLjQ4NzksIDEuODU1OTUsIDIuMjEyNTQiLCBcCi0gICAgICAgICAgIjAuMDk0MjI5LCAwLjQ1NTk2NSwgMC43NTEwMzQsIDEuMTE5MzksIDEuNDgyNjksIDEuODU3NTEsIDIuMjIwNDQiLCBcCi0gICAgICAgICAgIjAuMDk0MjQ4LCAwLjQ1NjAwMiwgMC43NTEwNTEsIDEuMTE5MjYsIDEuNDgxNzgsIDEuODU0NTUsIDIuMjE2NDMiLCBcCi0gICAgICAgICAgIjAuMDk0MjAxLCAwLjQ1NTk0MywgMC43NTEwMzIsIDEuMTE5MzgsIDEuNDg1MSwgMS44NTQwNiwgMi4yMjA0NSIsIFwKLSAgICAgICAgICAiMC4wOTQxMzksIDAuNDU3Nzg1LCAwLjc1MDg5MywgMS4xMTk4MywgMS40ODQ3OSwgMS44NTYxMiwgMi4yMTUyNyIsIFwKLSAgICAgICAgICAiMC4wOTQyMzIsIDAuNDU1OTgyLCAwLjc1MTAzNywgMS4xMTk0NCwgMS40ODY4LCAxLjg1MzY5LCAyLjIyMDQzIiwgXAotICAgICAgICAgICIwLjA5NDIwNywgMC40NTU5NTUsIDAuNzUxMDM0LCAxLjExOTQyLCAxLjQ4NTgyLCAxLjg1MzQ1LCAyLjIyMDY3Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI4MzU1NSwgMC40OTEyMzUsIDAuNjU2NTI3LCAwLjg2MjE0NSwgMS4wNjg5LCAxLjI3NjY1LCAxLjQ4MTM3IiwgXAotICAgICAgICAgICIwLjI5NTMyNywgMC41MDMwMDUsIDAuNjY4MjgxLCAwLjg3NDA2OCwgMS4wODAxLCAxLjI4NjgyLCAxLjQ5NTYzIiwgXAotICAgICAgICAgICIwLjMxMDYzOCwgMC41MTgzMTIsIDAuNjgzNTkxLCAwLjg4OTM3NCwgMS4wOTU5NSwgMS4zMDIxMSwgMS41MTA5NCIsIFwKLSAgICAgICAgICAiMC4zMjYxMzIsIDAuNTMzODUzLCAwLjY5OTA3OSwgMC45MDQ3NDIsIDEuMTExNDYsIDEuMzE4LCAxLjUyNTM0IiwgXAotICAgICAgICAgICIwLjM0MTM2MSwgMC41NDkwMzIsIDAuNzE0MzA5LCAwLjkxOTg3NSwgMS4xMjY2OSwgMS4zMzQ0MiwgMS41MzkyIiwgXAotICAgICAgICAgICIwLjM2NTczNywgMC41NzMzODUsIDAuNzM4NjY2LCAwLjk0NDI0LCAxLjE1MDQ5LCAxLjM1Njg4LCAxLjU2Mjg0IiwgXAotICAgICAgICAgICIwLjM4NjUzNSwgMC41OTQyMSwgMC43NTk0ODUsIDAuOTY1MjY1LCAxLjE3MTg1LCAxLjM3OTY1LCAxLjU4Njg0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwMjEyLCAwLjUwNjMzMywgMC44MzQyODcsIDEuMjQ0NywgMS42NTYzLCAyLjA2NzcxLCAyLjQ3NTY1IiwgXAotICAgICAgICAgICIwLjEwMjEyLCAwLjUwNTk5LCAwLjgzNDI1NiwgMS4yNDM2MywgMS42NTQ1OSwgMi4wNjQ3NywgMi40Nzk2IiwgXAotICAgICAgICAgICIwLjEwMjEyMywgMC41MDYwMDUsIDAuODM0MjU3LCAxLjI0MzYzLCAxLjY1NjA5LCAyLjA2NDc1LCAyLjQ3OTU0IiwgXAotICAgICAgICAgICIwLjEwMjQyMywgMC41MDYzMTgsIDAuODM0MjE1LCAxLjI0Mzc3LCAxLjY1NjE5LCAyLjA2Nzg5LCAyLjQ3NzgiLCBcCi0gICAgICAgICAgIjAuMTAyMTIyLCAwLjUwNjIyLCAwLjgzNDI1MSwgMS4yNDQ3LCAxLjY1NjA1LCAyLjA2NzgzLCAyLjQ3Nzg0IiwgXAotICAgICAgICAgICIwLjEwMjEyMSwgMC41MDYyNTMsIDAuODM0MjIyLCAxLjI0NDcsIDEuNjU0MTYsIDIuMDY3ODEsIDIuNDc2MDUiLCBcCi0gICAgICAgICAgIjAuMTAyMTE1LCAwLjUwNjAwNywgMC44MzQyNTYsIDEuMjQzNjQsIDEuNjU2MDgsIDIuMDY4MjksIDIuNDc5NDgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1MTE5LCAwLjAwNTE2NCwgMC4wMDUxNjgsIDAuMDA1MTcxLCAwLjAwNTE3MiwgMC4wMDUxNzMsIDAuMDA1MTc0IiwgXAotICAgICAgICAgICIwLjAwNTExMiwgMC4wMDUxNTcsIDAuMDA1MTYyLCAwLjAwNTE2NCwgMC4wMDUxNjUsIDAuMDA1MTY2LCAwLjAwNTE2NyIsIFwKLSAgICAgICAgICAiMC4wMDUxMDYsIDAuMDA1MTUsIDAuMDA1MTU2LCAwLjAwNTE1OCwgMC4wMDUxNTksIDAuMDA1MTYsIDAuMDA1MTYxIiwgXAotICAgICAgICAgICIwLjAwNTEwMSwgMC4wMDUxNDUsIDAuMDA1MTUxLCAwLjAwNTE1MywgMC4wMDUxNTQsIDAuMDA1MTU1LCAwLjAwNTE1NiIsIFwKLSAgICAgICAgICAiMC4wMDUwOTcsIDAuMDA1MTQxLCAwLjAwNTE0NiwgMC4wMDUxNDksIDAuMDA1MTUsIDAuMDA1MTUxLCAwLjAwNTE1MiIsIFwKLSAgICAgICAgICAiMC4wMDUwOTIsIDAuMDA1MTM3LCAwLjAwNTE0MiwgMC4wMDUxNDUsIDAuMDA1MTQ2LCAwLjAwNTE0NiwgMC4wMDUxNDciLCBcCi0gICAgICAgICAgIjAuMDA1MDksIDAuMDA1MTM0LCAwLjAwNTEzOSwgMC4wMDUxNDIsIDAuMDA1MTQzLCAwLjAwNTE0NCwgMC4wMDUxNDUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDUzODcsIDAuMDA1NDMyLCAwLjAwNTQzNywgMC4wMDU0MzksIDAuMDA1NDQxLCAwLjAwNTQ0MiwgMC4wMDU0NDEiLCBcCi0gICAgICAgICAgIjAuMDA1MzgsIDAuMDA1NDI1LCAwLjAwNTQzLCAwLjAwNTQzMiwgMC4wMDU0MzMsIDAuMDA1NDM0LCAwLjAwNTQzNSIsIFwKLSAgICAgICAgICAiMC4wMDUzNzUsIDAuMDA1NDE5LCAwLjAwNTQyNCwgMC4wMDU0MjcsIDAuMDA1NDI4LCAwLjAwNTQyOSwgMC4wMDU0MjkiLCBcCi0gICAgICAgICAgIjAuMDA1MzcxLCAwLjAwNTQxNiwgMC4wMDU0MiwgMC4wMDU0MjMsIDAuMDA1NDI0LCAwLjAwNTQyNSwgMC4wMDU0MjUiLCBcCi0gICAgICAgICAgIjAuMDA1MzcsIDAuMDA1NDE0LCAwLjAwNTQxOSwgMC4wMDU0MjEsIDAuMDA1NDIzLCAwLjAwNTQyMywgMC4wMDU0MjQiLCBcCi0gICAgICAgICAgIjAuMDA1MzcsIDAuMDA1NDE0LCAwLjAwNTQxOSwgMC4wMDU0MjEsIDAuMDA1NDIyLCAwLjAwNTQyMywgMC4wMDU0MjMiLCBcCi0gICAgICAgICAgIjAuMDA1MzcxLCAwLjAwNTQxNiwgMC4wMDU0MjEsIDAuMDA1NDIzLCAwLjAwNTQyNSwgMC4wMDU0MjUsIDAuMDA1NDI2Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihRTikgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjI2Mjc3MjsKLSAgICBmdW5jdGlvbiA6ICJORVQ1MzYiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5vbl91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcmlzaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjM2MTAyOSwgMC41NDIyNTYsIDAuNjg2NTQsIDAuODY2OTgxLCAxLjA0NzQ0LCAxLjIyNzk2LCAxLjQwODMxIiwgXAotICAgICAgICAgICIwLjM3MjgzOSwgMC41NTQwMDksIDAuNjk4MjgyLCAwLjg3ODcxNSwgMS4wNTkxNywgMS4yMzk2OSwgMS40MjAwNCIsIFwKLSAgICAgICAgICAiMC4zODgxNDgsIDAuNTY5MzUsIDAuNzEzNjIzLCAwLjg5NDA1NCwgMS4wNzQ1MSwgMS4yNTUwMywgMS40MzUzOCIsIFwKLSAgICAgICAgICAiMC40MDM2NjYsIDAuNTg0ODUxLCAwLjcyOTEyOSwgMC45MDk1NjMsIDEuMDkwMDEsIDEuMjcwNTQsIDEuNDUwOTgiLCBcCi0gICAgICAgICAgIjAuNDE4ODcyLCAwLjYwMDA0MiwgMC43NDQzMTUsIDAuOTI0NzQ5LCAxLjEwNTIsIDEuMjg1NzMsIDEuNDY2MDciLCBcCi0gICAgICAgICAgIjAuNDQzMjQ5LCAwLjYyNDQyLCAwLjc2ODY5OCwgMC45NDkxMzIsIDEuMTI5NTgsIDEuMzEwMTEsIDEuNDkwNTIiLCBcCi0gICAgICAgICAgIjAuNDY0MDE3LCAwLjY0NTI0OSwgMC43ODk1MjEsIDAuOTY5OTUzLCAxLjE1MDQxLCAxLjMzMDkzLCAxLjUxMTI4Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5NzkxLCAwLjQ1Njk4LCAwLjc1MTYzOSwgMS4xMjA4OCwgMS40ODk4OCwgMS44NTk4NCwgMi4yMjUyOCIsIFwKLSAgICAgICAgICAiMC4wOTc4ODEsIDAuNDU2ODU1LCAwLjc1MTYzMSwgMS4xMTg2MSwgMS40ODczOCwgMS44NTYzNiwgMi4yMjkzIiwgXAotICAgICAgICAgICIwLjA5Nzg4LCAwLjQ1NjgzNCwgMC43NTE2MzEsIDEuMTE4NTYsIDEuNDg5ODEsIDEuODU2MzksIDIuMjI5MjQiLCBcCi0gICAgICAgICAgIjAuMDk3ODg5LCAwLjQ1Njk1OSwgMC43NTE2MTQsIDEuMTE4OCwgMS40ODk4MSwgMS44NTg1OCwgMi4yMjg0NyIsIFwKLSAgICAgICAgICAiMC4wOTc4ODEsIDAuNDU2OTMyLCAwLjc1MTYyOCwgMS4xMjA4NiwgMS40ODk4MSwgMS44NTk1NywgMi4yMjU3NyIsIFwKLSAgICAgICAgICAiMC4wOTc4OCwgMC40NTY5MjYsIDAuNzUxNjE4LCAxLjEyMDU1LCAxLjQ4NzM4LCAxLjg1NjI1LCAyLjIyNTQ4IiwgXAotICAgICAgICAgICIwLjA5NzkxMSwgMC40NTY4MzMsIDAuNzUxNjMxLCAxLjExODU2LCAxLjQ4OTgxLCAxLjg1OTkxLCAyLjIyOTE4Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMzMTE1NSwgMC41Mzc4NzcsIDAuNzAyODMyLCAwLjkwOTA5NSwgMS4xMTUzNywgMS4zMjE2MywgMS41Mjc5MSIsIFwKLSAgICAgICAgICAiMC4zNDI4NDQsIDAuNTQ5NTY1LCAwLjcxNDUxOSwgMC45MjA3ODksIDEuMTI3MDUsIDEuMzMzMywgMS41Mzk2IiwgXAotICAgICAgICAgICIwLjM1ODAwOCwgMC41NjQ3MzIsIDAuNzI5Njg1LCAwLjkzNTk4NywgMS4xNDIyMiwgMS4zNDg0OCwgMS41NTQ3NiIsIFwKLSAgICAgICAgICAiMC4zNzM1MDIsIDAuNTgwMjIxLCAwLjc0NTE3NCwgMC45NTE0NDgsIDEuMTU3NzEsIDEuMzYzOTcsIDEuNTcwMjUiLCBcCi0gICAgICAgICAgIjAuMzg4Njc4LCAwLjU5NTM5OSwgMC43NjAzNTMsIDAuOTY2NjAyLCAxLjE3MjkxLCAxLjM3OTE3LCAxLjU4NTQzIiwgXAotICAgICAgICAgICIwLjQxMjg3MSwgMC42MTk1OTIsIDAuNzg0NTQ1LCAwLjk5MDgyNywgMS4xOTcwOCwgMS40MDMzNSwgMS42MDk2MyIsIFwKLSAgICAgICAgICAiMC40MzM0NTYsIDAuNjQwMTc1LCAwLjgwNTEyOSwgMS4wMTE0MSwgMS4yMTc2NiwgMS40MjM5MywgMS42MzAyMSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDQ1MzIsIDAuNTA3NDAyLCAwLjgzNTA1NSwgMS4yNDU4NSwgMS42NTYwNiwgMi4wNjY2OSwgMi40NzcyOCIsIFwKLSAgICAgICAgICAiMC4xMDQ1MzIsIDAuNTA3MzgsIDAuODM1MDk1LCAxLjI0NTg0LCAxLjY1NTc5LCAyLjA2Njg1LCAyLjQ3NzU5IiwgXAotICAgICAgICAgICIwLjEwNDUzLCAwLjUwNzM5NywgMC44MzUxNTMsIDEuMjQ1NzgsIDEuNjU1OTYsIDIuMDY2NjEsIDIuNDc4MTQiLCBcCi0gICAgICAgICAgIjAuMTA0NTMsIDAuNTA3Mzc1LCAwLjgzNTIwMywgMS4yNDU4NCwgMS42NTU4LCAyLjA2NjU3LCAyLjQ3NzU5IiwgXAotICAgICAgICAgICIwLjEwNDUyOSwgMC41MDczNzMsIDAuODM1MTgxLCAxLjI0NTQ0LCAxLjY1NjA1LCAyLjA2NzY0LCAyLjQ3Njk4IiwgXAotICAgICAgICAgICIwLjEwNDUzMiwgMC41MDczNzgsIDAuODM1MjExLCAxLjI0NTc4LCAxLjY1NTgxLCAyLjA2NjUzLCAyLjQ3NzU5IiwgXAotICAgICAgICAgICIwLjEwNDUzLCAwLjUwNzM3NywgMC44MzUxOTUsIDEuMjQ1ODQsIDEuNjU1ODIsIDIuMDY2NTYsIDIuNDc3NTkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1Mzg3LCAwLjAwNTQzMiwgMC4wMDU0MzcsIDAuMDA1NDM5LCAwLjAwNTQ0MSwgMC4wMDU0NDIsIDAuMDA1NDQxIiwgXAotICAgICAgICAgICIwLjAwNTM4LCAwLjAwNTQyNSwgMC4wMDU0MywgMC4wMDU0MzIsIDAuMDA1NDMzLCAwLjAwNTQzNCwgMC4wMDU0MzUiLCBcCi0gICAgICAgICAgIjAuMDA1Mzc1LCAwLjAwNTQxOSwgMC4wMDU0MjQsIDAuMDA1NDI3LCAwLjAwNTQyOCwgMC4wMDU0MjksIDAuMDA1NDI5IiwgXAotICAgICAgICAgICIwLjAwNTM3MSwgMC4wMDU0MTYsIDAuMDA1NDIsIDAuMDA1NDIzLCAwLjAwNTQyNCwgMC4wMDU0MjUsIDAuMDA1NDI1IiwgXAotICAgICAgICAgICIwLjAwNTM3LCAwLjAwNTQxNCwgMC4wMDU0MTksIDAuMDA1NDIxLCAwLjAwNTQyMywgMC4wMDU0MjMsIDAuMDA1NDI0IiwgXAotICAgICAgICAgICIwLjAwNTM3LCAwLjAwNTQxNCwgMC4wMDU0MTksIDAuMDA1NDIxLCAwLjAwNTQyMiwgMC4wMDU0MjMsIDAuMDA1NDIzIiwgXAotICAgICAgICAgICIwLjAwNTM3MSwgMC4wMDU0MTYsIDAuMDA1NDIxLCAwLjAwNTQyMywgMC4wMDU0MjUsIDAuMDA1NDI1LCAwLjAwNTQyNiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNTExOSwgMC4wMDUxNjQsIDAuMDA1MTY4LCAwLjAwNTE3MSwgMC4wMDUxNzIsIDAuMDA1MTczLCAwLjAwNTE3NCIsIFwKLSAgICAgICAgICAiMC4wMDUxMTIsIDAuMDA1MTU3LCAwLjAwNTE2MiwgMC4wMDUxNjQsIDAuMDA1MTY1LCAwLjAwNTE2NiwgMC4wMDUxNjciLCBcCi0gICAgICAgICAgIjAuMDA1MTA2LCAwLjAwNTE1LCAwLjAwNTE1NiwgMC4wMDUxNTgsIDAuMDA1MTU5LCAwLjAwNTE2LCAwLjAwNTE2MSIsIFwKLSAgICAgICAgICAiMC4wMDUxMDEsIDAuMDA1MTQ1LCAwLjAwNTE1MSwgMC4wMDUxNTMsIDAuMDA1MTU0LCAwLjAwNTE1NSwgMC4wMDUxNTYiLCBcCi0gICAgICAgICAgIjAuMDA1MDk3LCAwLjAwNTE0MSwgMC4wMDUxNDYsIDAuMDA1MTQ5LCAwLjAwNTE1LCAwLjAwNTE1MSwgMC4wMDUxNTIiLCBcCi0gICAgICAgICAgIjAuMDA1MDkyLCAwLjAwNTEzNywgMC4wMDUxNDIsIDAuMDA1MTQ1LCAwLjAwNTE0NiwgMC4wMDUxNDYsIDAuMDA1MTQ3IiwgXAotICAgICAgICAgICIwLjAwNTA5LCAwLjAwNTEzNCwgMC4wMDUxMzksIDAuMDA1MTQyLCAwLjAwNTE0MywgMC4wMDUxNDQsIDAuMDA1MTQ1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTRSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxMDc0NDg7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxMDczODg7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxMDc0NDg7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzNzEzLCAwLjAwMzcwMywgMC4wMDM2OTksIDAuMDAzNjk4LCAwLjAwMzY5OCwgMC4wMDM3LCAwLjAwMzY5OSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNDgxMiwgMC4wMDQ3OTYsIDAuMDA0Nzg0LCAwLjAwNDc3OCwgMC4wMDQ3NzMsIDAuMDA0NzY2LCAwLjAwNDc2NCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRCYhRSYhU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX0VfRVFfMF9BTl9TSV9FUV8wID09IDEnYjEiOwotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjE2MjUsIC0wLjE1MTI1LCAtMC4xMzg3NSwgLTAuMTMyNSwgLTAuMTIsIC0wLjExLCAtMC4xMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMTczNzUsIC0wLjE2MjUsIC0wLjE1LCAtMC4xNDM3NSwgLTAuMTM3NSwgLTAuMTIxMjUsIC0wLjExMjUiLCBcCi0gICAgICAgICAgIi0wLjE4NjI1LCAtMC4xNzUsIC0wLjE2ODc1LCAtMC4xNTYyNSwgLTAuMTUsIC0wLjEzMzc1LCAtMC4xMjUiLCBcCi0gICAgICAgICAgIi0wLjE5ODc1LCAtMC4xOTM3NSwgLTAuMTgxMjUsIC0wLjE3NSwgLTAuMTYyNSwgLTAuMTUyNSwgLTAuMTQzNzUiLCBcCi0gICAgICAgICAgIi0wLjIxNzUsIC0wLjIwNjI1LCAtMC4xOTM3NSwgLTAuMTg3NSwgLTAuMTgxMjUsIC0wLjE2NSwgLTAuMTU2MjUiLCBcCi0gICAgICAgICAgIi0wLjIzMzc1LCAtMC4yMjg3NSwgLTAuMjE2MjUsIC0wLjIxLCAtMC4xOTc1LCAtMC4xODc1LCAtMC4xNzI1IiwgXAotICAgICAgICAgICItMC4yNTUsIC0wLjI0Mzc1LCAtMC4yMzc1LCAtMC4yMjUsIC0wLjIxODc1LCAtMC4yMDI1LCAtMC4xOTM3NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRCYhRSZTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fRV9FUV8wX0FOX1NJX0VRXzEgPT0gMSdiMSI7Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDE4NzUsIC0wLjAwNzUsIDAuMDExMjUsIDAuMDE3NSwgMC4wMywgMC4wNDYyNSwgMC4wNjEyNSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAxMjUsIDAsIDAuMDA2MjUsIDAuMDE4NzUsIDAuMDM1LCAwLjA1IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLjAwNjI1LCAwLjAyMjUsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNDM3NSwgLTAuMDMxMjUsIC0wLjAxODc1LCAtMC4wMDYyNSwgMC4wMSwgMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjA2NzUsIC0wLjA1NjI1LCAtMC4wNDM3NSwgLTAuMDMxMjUsIC0wLjAxODc1LCAtMC4wMDI1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjA4Mzc1LCAtMC4wNzI1LCAtMC4wNiwgLTAuMDUzNzUsIC0wLjA0MTI1LCAtMC4wMTg3NSwgLTAuMDAzNzUiLCBcCi0gICAgICAgICAgIi0wLjA5ODc1LCAtMC4wODc1LCAtMC4wNzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNCwgLTAuMDI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEJkUmU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX0VfRVFfMV9BTl9TSV9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjEyNSwgLTAuMTIsIC0wLjEwNzUsIC0wLjA5NSwgLTAuMDg4NzUsIC0wLjA3MjUsIC0wLjA2Mzc1IiwgXAotICAgICAgICAgICItMC4xMzYyNSwgLTAuMTMxMjUsIC0wLjExODc1LCAtMC4xMDYyNSwgLTAuMSwgLTAuMDgzNzUsIC0wLjA2ODc1IiwgXAotICAgICAgICAgICItMC4xNTUsIC0wLjE0Mzc1LCAtMC4xMzEyNSwgLTAuMTE4NzUsIC0wLjExMjUsIC0wLjA5NjI1LCAtMC4wODc1IiwgXAotICAgICAgICAgICItMC4xNjc1LCAtMC4xNTYyNSwgLTAuMTQzNzUsIC0wLjEzNzUsIC0wLjEyNSwgLTAuMTA4NzUsIC0wLjEiLCBcCi0gICAgICAgICAgIi0wLjE4LCAtMC4xNjg3NSwgLTAuMTU2MjUsIC0wLjE1LCAtMC4xMzc1LCAtMC4xMjEyNSwgLTAuMTEyNSIsIFwKLSAgICAgICAgICAiLTAuMjAyNSwgLTAuMTkxMjUsIC0wLjE3ODc1LCAtMC4xNzI1LCAtMC4xNiwgLTAuMTQzNzUsIC0wLjEzNSIsIFwKLSAgICAgICAgICAiLTAuMjIzNzUsIC0wLjIxMjUsIC0wLjIsIC0wLjE4NzUsIC0wLjE4MTI1LCAtMC4xNjUsIC0wLjE1NjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIkQmRSYhU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8xX0FOX0VfRVFfMV9BTl9TSV9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjA1NjI1LCAtMC4wNDUsIC0wLjAyNjI1LCAtMC4wMTM3NSwgLTAuMDAxMjUsIDAuMDE1LCAwLjAzNjI1IiwgXAotICAgICAgICAgICItMC4wNjc1LCAtMC4wNTYyNSwgLTAuMDQzNzUsIC0wLjAzMTI1LCAtMC4wMTI1LCAwLjAwMzc1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDgsIC0wLjA2ODc1LCAtMC4wNTYyNSwgLTAuMDQzNzUsIC0wLjAzMTI1LCAtMC4wMDg3NSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDk4NzUsIC0wLjA4NzUsIC0wLjA2ODc1LCAtMC4wNTYyNSwgLTAuMDQzNzUsIC0wLjAyNzUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICItMC4xMTEyNSwgLTAuMSwgLTAuMDg3NSwgLTAuMDc1LCAtMC4wNjI1LCAtMC4wNCwgLTAuMDI1IiwgXAotICAgICAgICAgICItMC4xMzM3NSwgLTAuMTIyNSwgLTAuMTEsIC0wLjA5NzUsIC0wLjA4NSwgLTAuMDYyNSwgLTAuMDQ3NSIsIFwKLSAgICAgICAgICAiLTAuMTU1LCAtMC4xNDM3NSwgLTAuMTI1LCAtMC4xMTI1LCAtMC4xLCAtMC4wODM3NSwgLTAuMDYyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUQmIUUmIVNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9FX0VRXzBfQU5fU0lfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xODEyNSwgMC4xNjM3NSwgMC4xNTEyNSwgMC4xMzI1LCAwLjEyLCAwLjA5MTI1LCAwLjA3IiwgXAotICAgICAgICAgICIwLjE5MjUsIDAuMTgxMjUsIDAuMTYyNSwgMC4xNDM3NSwgMC4xMzEyNSwgMC4xMDI1LCAwLjA4NzUiLCBcCi0gICAgICAgICAgIjAuMjA1LCAwLjE5Mzc1LCAwLjE4MTI1LCAwLjE2MjUsIDAuMTQzNzUsIDAuMTIxMjUsIDAuMSIsIFwKLSAgICAgICAgICAiMC4yMjM3NSwgMC4yMTI1LCAwLjE5Mzc1LCAwLjE3NSwgMC4xNjI1LCAwLjEzMzc1LCAwLjExMjUiLCBcCi0gICAgICAgICAgIjAuMjM2MjUsIDAuMjI1LCAwLjIwNjI1LCAwLjE5Mzc1LCAwLjE3NSwgMC4xNTI1LCAwLjEzMTI1IiwgXAotICAgICAgICAgICIwLjI1ODc1LCAwLjI0NzUsIDAuMjI4NzUsIDAuMjE2MjUsIDAuMTk3NSwgMC4xNzUsIDAuMTUzNzUiLCBcCi0gICAgICAgICAgIjAuMjgsIDAuMjYyNSwgMC4yNSwgMC4yMzEyNSwgMC4yMTg3NSwgMC4xOSwgMC4xNjg3NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUQmIUUmU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX0VfRVFfMF9BTl9TSV9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIxMjUsIDAuMjAxMjUsIDAuMTgyNSwgMC4xNywgMC4xNTc1LCAwLjE0MTI1LCAwLjEyNjI1IiwgXAotICAgICAgICAgICIwLjIyMzc1LCAwLjIxMjUsIDAuMTkzNzUsIDAuMTgxMjUsIDAuMTY4NzUsIDAuMTUyNSwgMC4xMzc1IiwgXAotICAgICAgICAgICIwLjIzNjI1LCAwLjIyNSwgMC4yMDYyNSwgMC4xOTM3NSwgMC4xODEyNSwgMC4xNjUsIDAuMTUiLCBcCi0gICAgICAgICAgIjAuMjQ4NzUsIDAuMjM3NSwgMC4yMTg3NSwgMC4yMDYyNSwgMC4xOTM3NSwgMC4xNzc1LCAwLjE2MjUiLCBcCi0gICAgICAgICAgIjAuMjY3NSwgMC4yNSwgMC4yMzc1LCAwLjIxODc1LCAwLjIwNjI1LCAwLjE5LCAwLjE3NSIsIFwKLSAgICAgICAgICAiMC4yODM3NSwgMC4yNzI1LCAwLjI2LCAwLjI0MTI1LCAwLjIyODc1LCAwLjIxMjUsIDAuMTk3NSIsIFwKLSAgICAgICAgICAiMC4zMDUsIDAuMjkzNzUsIDAuMjc1LCAwLjI2MjUsIDAuMjUsIDAuMjMzNzUsIDAuMjE4NzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEJkUmU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX0VfRVFfMV9BTl9TSV9FUV8xID09IDEnYjEiOwotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE5Mzc1LCAwLjE4MjUsIDAuMTYzNzUsIDAuMTQ1LCAwLjEzMjUsIDAuMTEsIDAuMDg4NzUiLCBcCi0gICAgICAgICAgIjAuMjA1LCAwLjE4NzUsIDAuMTc1LCAwLjE1NjI1LCAwLjE0Mzc1LCAwLjExNSwgMC4wOTM3NSIsIFwKLSAgICAgICAgICAiMC4yMTc1LCAwLjIwNjI1LCAwLjE4NzUsIDAuMTY4NzUsIDAuMTU2MjUsIDAuMTI3NSwgMC4xMDYyNSIsIFwKLSAgICAgICAgICAiMC4yMywgMC4yMTg3NSwgMC4yLCAwLjE4MTI1LCAwLjE2ODc1LCAwLjE0NjI1LCAwLjEyNSIsIFwKLSAgICAgICAgICAiMC4yNDI1LCAwLjIzMTI1LCAwLjIxMjUsIDAuMTkzNzUsIDAuMTgxMjUsIDAuMTUyNSwgMC4xMzc1IiwgXAotICAgICAgICAgICIwLjI1ODc1LCAwLjI0NzUsIDAuMjM1LCAwLjIxNjI1LCAwLjE5NzUsIDAuMTc1LCAwLjE1Mzc1IiwgXAotICAgICAgICAgICIwLjI4LCAwLjI2ODc1LCAwLjI1LCAwLjIzMTI1LCAwLjIxODc1LCAwLjE5LCAwLjE2ODc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJEJkUmIVNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMV9BTl9FX0VRXzFfQU5fU0lfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yODEyNSwgMC4yNjM3NSwgMC4yNTEyNSwgMC4yMzI1LCAwLjIyLCAwLjIwMzc1LCAwLjE4ODc1IiwgXAotICAgICAgICAgICIwLjI5MjUsIDAuMjc1LCAwLjI2MjUsIDAuMjQzNzUsIDAuMjMxMjUsIDAuMjE1LCAwLjIiLCBcCi0gICAgICAgICAgIjAuMzA1LCAwLjI5Mzc1LCAwLjI4MTI1LCAwLjI2MjUsIDAuMjUsIDAuMjI3NSwgMC4yMTI1IiwgXAotICAgICAgICAgICIwLjMxNzUsIDAuMzA2MjUsIDAuMjg3NSwgMC4yNzUsIDAuMjYyNSwgMC4yNCwgMC4yMjUiLCBcCi0gICAgICAgICAgIjAuMzM2MjUsIDAuMzE4NzUsIDAuMzA2MjUsIDAuMjg3NSwgMC4yNzUsIDAuMjU4NzUsIDAuMjQzNzUiLCBcCi0gICAgICAgICAgIjAuMzUyNSwgMC4zNDEyNSwgMC4zMjg3NSwgMC4zMSwgMC4yOTc1LCAwLjI3NSwgMC4yNiIsIFwKLSAgICAgICAgICAiMC4zNzM3NSwgMC4zNTYyNSwgMC4zNDM3NSwgMC4zMjUsIDAuMzEyNSwgMC4yOTYyNSwgMC4yODEyNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oU0kpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYwNzkzNzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MDYxMDI7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjA3OTM3OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjI2MywgMC4wMDIyNTQsIDAuMDAyMjQ4LCAwLjAwMjI0NiwgMC4wMDIyNDMsIDAuMDAyMjQsIDAuMDAyMjM4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzODUyLCAwLjAwMzg0NywgMC4wMDM4NDUsIDAuMDAzODQzLCAwLjAwMzg0MSwgMC4wMDM4NCwgMC4wMDM4MzgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiU0UiOwotICAgICAgc2RmX2NvbmQgOiAiU0UgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMTQzNzUsIC0wLjEzMjUsIC0wLjEyLCAtMC4xMTM3NSwgLTAuMTAxMjUsIC0wLjA4NSwgLTAuMDc2MjUiLCBcCi0gICAgICAgICAgIi0wLjE1NSwgLTAuMTQzNzUsIC0wLjEzMTI1LCAtMC4xMjUsIC0wLjExMjUsIC0wLjA5NjI1LCAtMC4wODc1IiwgXAotICAgICAgICAgICItMC4xNjc1LCAtMC4xNTYyNSwgLTAuMTUsIC0wLjEzNzUsIC0wLjEyNSwgLTAuMTE1LCAtMC4xIiwgXAotICAgICAgICAgICItMC4xOCwgLTAuMTY4NzUsIC0wLjE2MjUsIC0wLjE1LCAtMC4xNDM3NSwgLTAuMTI3NSwgLTAuMTEyNSIsIFwKLSAgICAgICAgICAiLTAuMTkyNSwgLTAuMTg3NSwgLTAuMTc1LCAtMC4xNjI1LCAtMC4xNTYyNSwgLTAuMTQsIC0wLjEyNSIsIFwKLSAgICAgICAgICAiLTAuMjE1LCAtMC4yMDM3NSwgLTAuMTk3NSwgLTAuMTg1LCAtMC4xNzg3NSwgLTAuMTYyNSwgLTAuMTQ3NSIsIFwKLSAgICAgICAgICAiLTAuMjM2MjUsIC0wLjIyNSwgLTAuMjE4NzUsIC0wLjIwNjI1LCAtMC4xOTM3NSwgLTAuMTgzNzUsIC0wLjE2ODc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDI1LCAtMC4wMTM3NSwgLTAuMDAxMjUsIDAuMDExMjUsIDAuMDIzNzUsIDAuMDQ2MjUsIDAuMDYxMjUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMjUsIC0wLjAxMjUsIDAsIDAuMDEyNSwgMC4wMzUsIDAuMDUiLCBcCi0gICAgICAgICAgIi0wLjA1NSwgLTAuMDM3NSwgLTAuMDI1LCAtMC4wMTI1LCAwLCAwLjAxNjI1LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjA2NzUsIC0wLjA1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAxMjUsIDAuMDAzNzUsIDAuMDI1IiwgXAotICAgICAgICAgICItMC4wNzM3NSwgLTAuMDYyNSwgLTAuMDUsIC0wLjAzNzUsIC0wLjAyNSwgLTAuMDAyNSwgMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wOTYyNSwgLTAuMDg1LCAtMC4wNjYyNSwgLTAuMDUzNzUsIC0wLjA0MTI1LCAtMC4wMjUsIC0wLjAwMzc1IiwgXAotICAgICAgICAgICItMC4xMTEyNSwgLTAuMSwgLTAuMDgxMjUsIC0wLjA3NSwgLTAuMDYyNSwgLTAuMDQsIC0wLjAyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiU0UiOwotICAgICAgc2RmX2NvbmQgOiAiU0UgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjI1LCAwLjIxMzc1LCAwLjE5NSwgMC4xODI1LCAwLjE3LCAwLjE1Mzc1LCAwLjEzODc1IiwgXAotICAgICAgICAgICIwLjIzNjI1LCAwLjIyNSwgMC4yMDYyNSwgMC4xOTM3NSwgMC4xODEyNSwgMC4xNjUsIDAuMTUiLCBcCi0gICAgICAgICAgIjAuMjU1LCAwLjIzNzUsIDAuMjI1LCAwLjIwNjI1LCAwLjE5Mzc1LCAwLjE3NzUsIDAuMTYyNSIsIFwKLSAgICAgICAgICAiMC4yNjc1LCAwLjI1LCAwLjIzNzUsIDAuMjI1LCAwLjIxMjUsIDAuMTksIDAuMTgxMjUiLCBcCi0gICAgICAgICAgIjAuMjgsIDAuMjY4NzUsIDAuMjUsIDAuMjM3NSwgMC4yMjUsIDAuMjA4NzUsIDAuMTkzNzUiLCBcCi0gICAgICAgICAgIjAuMzAyNSwgMC4yOTEyNSwgMC4yNzI1LCAwLjI2LCAwLjI0NzUsIDAuMjI1LCAwLjIxNjI1IiwgXAotICAgICAgICAgICIwLjMxNzUsIDAuMzA2MjUsIDAuMjkzNzUsIDAuMjc1LCAwLjI2MjUsIDAuMjQ2MjUsIDAuMjMxMjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNSwgMC4xMzg3NSwgMC4xMjYyNSwgMC4xMDc1LCAwLjA4ODc1LCAwLjA2NjI1LCAwLjA0NSIsIFwKLSAgICAgICAgICAiMC4xNjEyNSwgMC4xNSwgMC4xMzc1LCAwLjExODc1LCAwLjEsIDAuMDc3NSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiMC4xNzM3NSwgMC4xNjI1LCAwLjE1LCAwLjEzMTI1LCAwLjExMjUsIDAuMDksIDAuMDY4NzUiLCBcCi0gICAgICAgICAgIjAuMTg2MjUsIDAuMTc1LCAwLjE2MjUsIDAuMTQzNzUsIDAuMTI1LCAwLjEwMjUsIDAuMDgxMjUiLCBcCi0gICAgICAgICAgIjAuMTk4NzUsIDAuMTg3NSwgMC4xNzUsIDAuMTU2MjUsIDAuMTM3NSwgMC4xMTUsIDAuMDkzNzUiLCBcCi0gICAgICAgICAgIjAuMjIxMjUsIDAuMjEsIDAuMTkxMjUsIDAuMTc4NzUsIDAuMTYsIDAuMTM3NSwgMC4xMTYyNSIsIFwKLSAgICAgICAgICAiMC4yMzYyNSwgMC4yMjUsIDAuMjEyNSwgMC4xOTM3NSwgMC4xNzUsIDAuMTUyNSwgMC4xMzEyNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IFNFREZGWEwgKgotICogLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoU0VERkZYTCkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjM0MDcyNzsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBmZiAoTjMwLE5FVDUzNikgewotICAgIG5leHRfc3RhdGUgOiAiKChTRSBTSSkgKyAoIVNFICgoRSBEKSArICghRSAoISghTjMwKSkpKSkpIjsKLSAgICBjbG9ja2VkX29uIDogIkNLIjsKLSAgfQotICBwaW4oQ0spICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDU1ODc0MTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA1NTg3MjY7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNTU4NzQxOwotICAgIGNsb2NrIDogdHJ1ZTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDI0MjUsIDAuMDAyNDEyLCAwLjAwMjQwMSwgMC4wMDIzOTUsIDAuMDAyMzg5LCAwLjAwMjM4MywgMC4wMDIzODIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDQ4MDEsIDAuMDA0NzkyLCAwLjAwNDc4MywgMC4wMDQ3NzgsIDAuMDA0Nzc3LCAwLjAwNDc3OCwgMC4wMDQ3NzkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFEJiFFJlNFJiFTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fRV9FUV8wX0FOX1NFX0VRXzFfQU5fU0lfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjQwMjc1NywgMC40MTQ3MTgsIDAuNDI5OTkyLCAwLjQ0NTM1NywgMC40NjA1MiwgMC40ODQ4MTgsIDAuNTA1NTQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjIwMjQxOSwgMC4yMTM4ODIsIDAuMjI5MDM5LCAwLjI0Mzg5OCwgMC4yNTg0ODgsIDAuMjgxMTUsIDAuMjk5NTgxIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihEKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA1NTY2MzI7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNTU0MzYzOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDU1NjYzMjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDI4NjksIDAuMDAyODU5LCAwLjAwMjg1NSwgMC4wMDI4NTIsIDAuMDAyODUsIDAuMDAyODQ3LCAwLjAwMjg0NiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNTc3MywgMC4wMDU3NjgsIDAuMDA1NzY2LCAwLjAwNTc2NSwgMC4wMDU3NjQsIDAuMDA1NzYzLCAwLjAwNTc2MiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJFJiFTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJFX0VRXzFfQU5fU0VfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4yODc1LCAtMC4yNzYyNSwgLTAuMjYzNzUsIC0wLjI1NzUsIC0wLjI1MTI1LCAtMC4yMzUsIC0wLjIyNjI1IiwgXAotICAgICAgICAgICItMC4yOTg3NSwgLTAuMjg3NSwgLTAuMjc1LCAtMC4yNjg3NSwgLTAuMjYyNSwgLTAuMjQ2MjUsIC0wLjIzNzUiLCBcCi0gICAgICAgICAgIi0wLjMxMTI1LCAtMC4zLCAtMC4yODc1LCAtMC4yODEyNSwgLTAuMjc1LCAtMC4yNTg3NSwgLTAuMjUiLCBcCi0gICAgICAgICAgIi0wLjMyMzc1LCAtMC4zMTI1LCAtMC4zMDYyNSwgLTAuMjkzNzUsIC0wLjI4NzUsIC0wLjI3NzUsIC0wLjI2MjUiLCBcCi0gICAgICAgICAgIi0wLjMzNjI1LCAtMC4zMjUsIC0wLjMxODc1LCAtMC4zMTI1LCAtMC4zLCAtMC4yOSwgLTAuMjgxMjUiLCBcCi0gICAgICAgICAgIi0wLjM1ODc1LCAtMC4zNDc1LCAtMC4zNDEyNSwgLTAuMzM1LCAtMC4zMjI1LCAtMC4zMTI1LCAtMC4zMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMzgsIC0wLjM2ODc1LCAtMC4zNjI1LCAtMC4zNSwgLTAuMzQzNzUsIC0wLjMyNzUsIC0wLjMxODc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDg3NSwgLTAuMDc2MjUsIC0wLjA2Mzc1LCAtMC4wNTc1LCAtMC4wNTEyNSwgLTAuMDQxMjUsIC0wLjAzMjUiLCBcCi0gICAgICAgICAgIi0wLjA5ODc1LCAtMC4wODc1LCAtMC4wNzUsIC0wLjA2ODc1LCAtMC4wNjI1LCAtMC4wNTI1LCAtMC4wNDM3NSIsIFwKLSAgICAgICAgICAiLTAuMTExMjUsIC0wLjEsIC0wLjA4NzUsIC0wLjA4MTI1LCAtMC4wNzUsIC0wLjA2NSwgLTAuMDU2MjUiLCBcCi0gICAgICAgICAgIi0wLjEyMzc1LCAtMC4xMTI1LCAtMC4xMDYyNSwgLTAuMDkzNzUsIC0wLjA4NzUsIC0wLjA3NzUsIC0wLjA2ODc1IiwgXAotICAgICAgICAgICItMC4xMzYyNSwgLTAuMTI1LCAtMC4xMTI1LCAtMC4xMDYyNSwgLTAuMSwgLTAuMDksIC0wLjA4MTI1IiwgXAotICAgICAgICAgICItMC4xNTg3NSwgLTAuMTQxMjUsIC0wLjEzNSwgLTAuMTI4NzUsIC0wLjExNjI1LCAtMC4xMDYyNSwgLTAuMDk3NSIsIFwKLSAgICAgICAgICAiLTAuMTczNzUsIC0wLjE2MjUsIC0wLjE1LCAtMC4xNDM3NSwgLTAuMTM3NSwgLTAuMTI3NSwgLTAuMTEyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiRSYhU0UiOwotICAgICAgc2RmX2NvbmQgOiAiRV9FUV8xX0FOX1NFX0VRXzAgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuNCwgMC4zODI1LCAwLjM3LCAwLjM1MTI1LCAwLjMzODc1LCAwLjMyMjUsIDAuMzA3NSIsIFwKLSAgICAgICAgICAiMC40MTEyNSwgMC4zOTM3NSwgMC4zODEyNSwgMC4zNjI1LCAwLjM1LCAwLjMzMzc1LCAwLjMxODc1IiwgXAotICAgICAgICAgICIwLjQyMzc1LCAwLjQwNjI1LCAwLjM5Mzc1LCAwLjM4MTI1LCAwLjM2ODc1LCAwLjM0NjI1LCAwLjMzNzUiLCBcCi0gICAgICAgICAgIjAuNDM2MjUsIDAuNDI1LCAwLjQwNjI1LCAwLjM5Mzc1LCAwLjM4MTI1LCAwLjM2NSwgMC4zNSIsIFwKLSAgICAgICAgICAiMC40NDg3NSwgMC40Mzc1LCAwLjQyNSwgMC40MDYyNSwgMC4zOTM3NSwgMC4zNzc1LCAwLjM2MjUiLCBcCi0gICAgICAgICAgIjAuNDcxMjUsIDAuNDYsIDAuNDQ3NSwgMC40Mjg3NSwgMC40MTYyNSwgMC40LCAwLjM4NSIsIFwKLSAgICAgICAgICAiMC40OTI1LCAwLjQ3NSwgMC40NjI1LCAwLjQ1LCAwLjQzNzUsIDAuNDE1LCAwLjQwNjI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzA2MjUsIDAuMjg4NzUsIDAuMjc2MjUsIDAuMjU3NSwgMC4yNDUsIDAuMjE2MjUsIDAuMTk1IiwgXAotICAgICAgICAgICIwLjMxNzUsIDAuMywgMC4yODc1LCAwLjI2ODc1LCAwLjI1NjI1LCAwLjIyNzUsIDAuMjEyNSIsIFwKLSAgICAgICAgICAiMC4zMywgMC4zMTg3NSwgMC4zLCAwLjI4MTI1LCAwLjI2ODc1LCAwLjI0NjI1LCAwLjIyNSIsIFwKLSAgICAgICAgICAiMC4zNDI1LCAwLjMzMTI1LCAwLjMxMjUsIDAuMjkzNzUsIDAuMjgxMjUsIDAuMjU4NzUsIDAuMjM3NSIsIFwKLSAgICAgICAgICAiMC4zNTUsIDAuMzQzNzUsIDAuMzI1LCAwLjMwNjI1LCAwLjI5Mzc1LCAwLjI3MTI1LCAwLjI1IiwgXAotICAgICAgICAgICIwLjM3MTI1LCAwLjM2LCAwLjM0NzUsIDAuMzI4NzUsIDAuMzEsIDAuMjg3NSwgMC4yNjYyNSIsIFwKLSAgICAgICAgICAiMC4zOTI1LCAwLjM3NSwgMC4zNjI1LCAwLjM0Mzc1LCAwLjMzMTI1LCAwLjMwMjUsIDAuMjgxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEUpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTQzMDgxOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTQzMDQ4OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTQzMDgxOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNTUwOSwgMC4wMDU0OTMsIDAuMDA1NDg3LCAwLjAwNTQ4NSwgMC4wMDU0ODUsIDAuMDA1NDgzLCAwLjAwNTQ4NSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNjU1MSwgMC4wMDY1MzUsIDAuMDA2NTI0LCAwLjAwNjUxOCwgMC4wMDY1MTQsIDAuMDA2NTEsIDAuMDA2NTA5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJTRSA9PSAxJ2IwIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4yNzUsIC0wLjI2Mzc1LCAtMC4yNDUsIC0wLjIzMjUsIC0wLjIxMzc1LCAtMC4xOTEyNSwgLTAuMTciLCBcCi0gICAgICAgICAgIi0wLjI4NjI1LCAtMC4yNzUsIC0wLjI1NjI1LCAtMC4yNDM3NSwgLTAuMjI1LCAtMC4yMDI1LCAtMC4xODEyNSIsIFwKLSAgICAgICAgICAiLTAuMjk4NzUsIC0wLjI4NzUsIC0wLjI3NSwgLTAuMjU2MjUsIC0wLjI0Mzc1LCAtMC4yMjEyNSwgLTAuMiIsIFwKLSAgICAgICAgICAiLTAuMzE3NSwgLTAuMzA2MjUsIC0wLjI4NzUsIC0wLjI3NSwgLTAuMjU2MjUsIC0wLjIzMzc1LCAtMC4yMTI1IiwgXAotICAgICAgICAgICItMC4zMywgLTAuMzE4NzUsIC0wLjMsIC0wLjI4NzUsIC0wLjI2ODc1LCAtMC4yNDYyNSwgLTAuMjI1IiwgXAotICAgICAgICAgICItMC4zNDYyNSwgLTAuMzQxMjUsIC0wLjMyMjUsIC0wLjMxLCAtMC4yOTEyNSwgLTAuMjY4NzUsIC0wLjI0NzUiLCBcCi0gICAgICAgICAgIi0wLjM2NzUsIC0wLjM1NjI1LCAtMC4zMzc1LCAtMC4zMjUsIC0wLjMwNjI1LCAtMC4yODM3NSwgLTAuMjYyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjA3NSwgLTAuMDYzNzUsIC0wLjA1MTI1LCAtMC4wNDUsIC0wLjAzMjUsIC0wLjAyMjUsIC0wLjAxMzc1IiwgXAotICAgICAgICAgICItMC4wODYyNSwgLTAuMDc1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDQzNzUsIC0wLjAzMzc1LCAtMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjA5ODc1LCAtMC4wODc1LCAtMC4wNzUsIC0wLjA2ODc1LCAtMC4wNTYyNSwgLTAuMDQ2MjUsIC0wLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjExMTI1LCAtMC4xLCAtMC4wODc1LCAtMC4wODEyNSwgLTAuMDc1LCAtMC4wNTg3NSwgLTAuMDUiLCBcCi0gICAgICAgICAgIi0wLjEyMzc1LCAtMC4xMTI1LCAtMC4xLCAtMC4wOTM3NSwgLTAuMDg3NSwgLTAuMDcxMjUsIC0wLjA2MjUiLCBcCi0gICAgICAgICAgIi0wLjE0LCAtMC4xMjg3NSwgLTAuMTE2MjUsIC0wLjExLCAtMC4xMDM3NSwgLTAuMDkzNzUsIC0wLjA4NSIsIFwKLSAgICAgICAgICAiLTAuMTYxMjUsIC0wLjE1LCAtMC4xMzc1LCAtMC4xMzEyNSwgLTAuMTE4NzUsIC0wLjEwODc1LCAtMC4xIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhU0UiOwotICAgICAgc2RmX2NvbmQgOiAiU0UgPT0gMSdiMCI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzgxMjUsIDAuMzcsIDAuMzU3NSwgMC4zMzg3NSwgMC4zMjYyNSwgMC4zMSwgMC4yOTUiLCBcCi0gICAgICAgICAgIjAuMzkyNSwgMC4zODEyNSwgMC4zNjg3NSwgMC4zNSwgMC4zMzc1LCAwLjMyMTI1LCAwLjMwNjI1IiwgXAotICAgICAgICAgICIwLjQxMTI1LCAwLjM5Mzc1LCAwLjM4MTI1LCAwLjM2MjUsIDAuMzUsIDAuMzMzNzUsIDAuMzE4NzUiLCBcCi0gICAgICAgICAgIjAuNDIzNzUsIDAuNDA2MjUsIDAuMzkzNzUsIDAuMzgxMjUsIDAuMzYyNSwgMC4zNDYyNSwgMC4zMzEyNSIsIFwKLSAgICAgICAgICAiMC40MzYyNSwgMC40MjUsIDAuNDA2MjUsIDAuMzkzNzUsIDAuMzgxMjUsIDAuMzU4NzUsIDAuMzUiLCBcCi0gICAgICAgICAgIjAuNDU4NzUsIDAuNDQ3NSwgMC40Mjg3NSwgMC40MTYyNSwgMC40MDM3NSwgMC4zODEyNSwgMC4zNzI1IiwgXAotICAgICAgICAgICIwLjQ3Mzc1LCAwLjQ2MjUsIDAuNDUsIDAuNDMxMjUsIDAuNDE4NzUsIDAuNDAyNSwgMC4zODc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzI1LCAwLjMxMzc1LCAwLjMwNzUsIDAuMjk1LCAwLjI4ODc1LCAwLjI3MjUsIDAuMjYzNzUiLCBcCi0gICAgICAgICAgIjAuMzM2MjUsIDAuMzMxMjUsIDAuMzE4NzUsIDAuMzA2MjUsIDAuMywgMC4yODM3NSwgMC4yNzUiLCBcCi0gICAgICAgICAgIjAuMzU1LCAwLjM0Mzc1LCAwLjMzMTI1LCAwLjMyNSwgMC4zMTI1LCAwLjMwMjUsIDAuMjg3NSIsIFwKLSAgICAgICAgICAiMC4zNjc1LCAwLjM1NjI1LCAwLjM0Mzc1LCAwLjMzNzUsIDAuMzI1LCAwLjMxNSwgMC4zMDYyNSIsIFwKLSAgICAgICAgICAiMC4zOCwgMC4zNjg3NSwgMC4zNTYyNSwgMC4zNSwgMC4zMzc1LCAwLjMyNzUsIDAuMzE4NzUiLCBcCi0gICAgICAgICAgIjAuMzk2MjUsIDAuMzg1LCAwLjM3ODc1LCAwLjM2NjI1LCAwLjM2LCAwLjM0Mzc1LCAwLjMzNSIsIFwKLSAgICAgICAgICAiMC40MTEyNSwgMC40LCAwLjM4NzUsIDAuMzgxMjUsIDAuMzY4NzUsIDAuMzU4NzUsIDAuMzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFEpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4wNzM4NzU1OwotICAgIGZ1bmN0aW9uIDogIk4zMCI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3NlbnNlIDogbm9uX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiByaXNpbmdfZWRnZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzM2Njk5LCAwLjM2MjA3OCwgMC41OTEyMTIsIDAuOTcwNzQ4LCAxLjM0OTM1LCAyLjIzNjYyLCAyLjc0NDM4IiwgXAotICAgICAgICAgICIwLjM0ODU2NywgMC4zNzM4OTYsIDAuNjAzMTA2LCAwLjk4MjYxNiwgMS4zNjEyMiwgMi4yNDgyOSwgMi43NTUxMiIsIFwKLSAgICAgICAgICAiMC4zNjM1NzEsIDAuMzg4OTUxLCAwLjYxODEzOCwgMC45OTc3MDgsIDEuMzc1MjksIDIuMjYyOSwgMi43NzA4NyIsIFwKLSAgICAgICAgICAiMC4zNzkwMzEsIDAuNDA0Mzg2LCAwLjYzMzU4MSwgMS4wMTMxNiwgMS4zOTE2NywgMi4yNzgzNCwgMi43ODYzNyIsIFwKLSAgICAgICAgICAiMC4zOTQxMTksIDAuNDE5NDcxLCAwLjY0ODY2MywgMS4wMjgyMSwgMS40MDY3MSwgMi4yOTQxOSwgMi44MDA5NyIsIFwKLSAgICAgICAgICAiMC40MTgzMzIsIDAuNDQzNjkxLCAwLjY3MjgyNiwgMS4wNTI3NSwgMS40MzA5NywgMi4zMTgxMywgMi44MjYwMyIsIFwKLSAgICAgICAgICAiMC40Mzg2NCwgMC40NjQwMzEsIDAuNjkzMTI1LCAxLjA3MjY2LCAxLjQ1MTI4LCAyLjMzODU4LCAyLjg0NzI5Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI3NjYyNywgMC4zMjc0MDYsIDAuNzk1MzA2LCAxLjU3NTEyLCAyLjM0ODQ0LCA0LjE3Nzk3LCA1LjE5MTc5IiwgXAotICAgICAgICAgICIwLjI3NjQ5MiwgMC4zMzAxMywgMC43OTU4OTMsIDEuNTc0MDEsIDIuMzU4MjEsIDQuMTc4MTksIDUuMTkxNyIsIFwKLSAgICAgICAgICAiMC4yNzYxMjUsIDAuMzI3NDY1LCAwLjc5Njk2NiwgMS41NzE1OSwgMi4zNTgxOSwgNC4xNzgxNSwgNS4xOTE1NCIsIFwKLSAgICAgICAgICAiMC4yNzY1NSwgMC4zMzA4NzcsIDAuNzk2OTYxLCAxLjU3MjU3LCAyLjM1ODE4LCA0LjE3ODIsIDUuMTkxNDYiLCBcCi0gICAgICAgICAgIjAuMjc2ODE3LCAwLjMzMDMwMiwgMC43OTYyOCwgMS41NzQ4NiwgMi4zNTgyOSwgNC4xNzgxNSwgNS4xOTE0IiwgXAotICAgICAgICAgICIwLjI3NjY2OSwgMC4zMjk4NjksIDAuNzk1Mzc1LCAxLjU3NDQzLCAyLjM1ODE5LCA0LjE3ODIsIDUuMTkxMzkiLCBcCi0gICAgICAgICAgIjAuMjc2ODIsIDAuMzI3NTAyLCAwLjc5Njg4NywgMS41NzQ3OCwgMi4zNTgzMSwgNC4xNzgyLCA1LjE5MzQ0Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjM4NDY0MiwgMC40MTQ0NiwgMC42ODIxMjcsIDEuMTI4MDQsIDEuNTc2NjgsIDIuNjIyMDEsIDMuMjE3OTgiLCBcCi0gICAgICAgICAgIjAuMzk2NjA1LCAwLjQyNjQyMywgMC42OTQ0MjIsIDEuMTM5MzEsIDEuNTg1OTQsIDIuNjMzOTMsIDMuMjI5OTQiLCBcCi0gICAgICAgICAgIjAuNDExODc3LCAwLjQ0MTY5NCwgMC43MDk1MiwgMS4xNTQ5MiwgMS42MDIyMywgMi42NDkyMiwgMy4yNDUxOCIsIFwKLSAgICAgICAgICAiMC40MjcyNTYsIDAuNDU3MDg0LCAwLjcyNDc0NCwgMS4xNzAxNSwgMS42MTkzOSwgMi42NjQ1OCwgMy4yNjA2NCIsIFwKLSAgICAgICAgICAiMC40NDI0MTMsIDAuNDcyMjI5LCAwLjczOTk4LCAxLjE4ODUsIDEuNjMxMzIsIDIuNjc5MiwgMy4yNzU3MiIsIFwKLSAgICAgICAgICAiMC40NjY3MTQsIDAuNDk2NTMsIDAuNzY0MTk0LCAxLjIwOTY3LCAxLjY1ODQ1LCAyLjcwNDA1LCAzLjMwMDAyIiwgXAotICAgICAgICAgICIwLjQ4NzQyOSwgMC41MTcyNDgsIDAuNzg0ODgyLCAxLjIzMjI0LCAxLjY3OTQsIDIuNzI0NzcsIDMuMzIwNzciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzE0NiwgMC4zNzM0NzksIDAuOTAyMTYsIDEuNzg0NTksIDIuNjcyMzQsIDQuNzMzODQsIDUuOTE3NDEiLCBcCi0gICAgICAgICAgIjAuMzE0OTcxLCAwLjM3MzQ5NiwgMC45MDIzMDcsIDEuNzg1LCAyLjY3MDg4LCA0LjcyOTU1LCA1LjkyMDk3IiwgXAotICAgICAgICAgICIwLjMxNTAxNSwgMC4zNzM0ODUsIDAuOTAzMzUyLCAxLjc4NjM5LCAyLjY3MjczLCA0LjczNjQzLCA1LjkyMTAyIiwgXAotICAgICAgICAgICIwLjMxNDYzMywgMC4zNzI5NzQsIDAuOTAyMDU3LCAxLjc4NDQzLCAyLjY3MTc0LCA0LjcyODMxLCA1LjkxOTU3IiwgXAotICAgICAgICAgICIwLjMxNDk2NSwgMC4zNzM0OTcsIDAuOTAxOTY0LCAxLjc4NjY5LCAyLjY3MTE1LCA0LjczNzE3LCA1LjkyMTAxIiwgXAotICAgICAgICAgICIwLjMxNDk3MywgMC4zNzM0MDUsIDAuOTAyMTI2LCAxLjc4NjY4LCAyLjY3MzY0LCA0LjczNzA3LCA1LjkyMDk4IiwgXAotICAgICAgICAgICIwLjMxNDk4NCwgMC4zNzM0MjksIDAuOTAyNjYsIDEuNzg3MTcsIDIuNjczMzgsIDQuNzM2OTgsIDUuOTIxMDMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzNTk4LCAwLjAwMzU5OCwgMC4wMDM2MDEsIDAuMDAzNjAyLCAwLjAwMzYwMiwgMC4wMDM2MDIsIDAuMDAzNjAyIiwgXAotICAgICAgICAgICIwLjAwMzU5MSwgMC4wMDM1OTEsIDAuMDAzNTk0LCAwLjAwMzU5NSwgMC4wMDM1OTUsIDAuMDAzNTk1LCAwLjAwMzU5NiIsIFwKLSAgICAgICAgICAiMC4wMDM1ODQsIDAuMDAzNTg1LCAwLjAwMzU4OCwgMC4wMDM1ODgsIDAuMDAzNTg5LCAwLjAwMzU4OSwgMC4wMDM1ODkiLCBcCi0gICAgICAgICAgIjAuMDAzNTgsIDAuMDAzNTgsIDAuMDAzNTgzLCAwLjAwMzU4NCwgMC4wMDM1ODQsIDAuMDAzNTg0LCAwLjAwMzU4NSIsIFwKLSAgICAgICAgICAiMC4wMDM1NzUsIDAuMDAzNTc2LCAwLjAwMzU3OCwgMC4wMDM1NzksIDAuMDAzNTgsIDAuMDAzNTgsIDAuMDAzNTgiLCBcCi0gICAgICAgICAgIjAuMDAzNTcxLCAwLjAwMzU3MiwgMC4wMDM1NzUsIDAuMDAzNTc1LCAwLjAwMzU3NiwgMC4wMDM1NzYsIDAuMDAzNTc2IiwgXAotICAgICAgICAgICIwLjAwMzU2OSwgMC4wMDM1NjksIDAuMDAzNTcyLCAwLjAwMzU3MywgMC4wMDM1NzMsIDAuMDAzNTczLCAwLjAwMzU3MyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDIzMSwgMC4wMDQyMzIsIDAuMDA0MjM0LCAwLjAwNDIzNSwgMC4wMDQyMzYsIDAuMDA0MjM2LCAwLjAwNDIzNiIsIFwKLSAgICAgICAgICAiMC4wMDQyMjQsIDAuMDA0MjI1LCAwLjAwNDIyNywgMC4wMDQyMjgsIDAuMDA0MjI4LCAwLjAwNDIyOSwgMC4wMDQyMjkiLCBcCi0gICAgICAgICAgIjAuMDA0MjE5LCAwLjAwNDIyLCAwLjAwNDIyMiwgMC4wMDQyMjMsIDAuMDA0MjIzLCAwLjAwNDIyNCwgMC4wMDQyMjQiLCBcCi0gICAgICAgICAgIjAuMDA0MjE2LCAwLjAwNDIxNiwgMC4wMDQyMTksIDAuMDA0MjIsIDAuMDA0MjIsIDAuMDA0MjIsIDAuMDA0MjIiLCBcCi0gICAgICAgICAgIjAuMDA0MjE0LCAwLjAwNDIxNSwgMC4wMDQyMTcsIDAuMDA0MjE4LCAwLjAwNDIxOCwgMC4wMDQyMTksIDAuMDA0MjE5IiwgXAotICAgICAgICAgICIwLjAwNDIxNCwgMC4wMDQyMTQsIDAuMDA0MjE3LCAwLjAwNDIxOCwgMC4wMDQyMTgsIDAuMDA0MjE4LCAwLjAwNDIxOSIsIFwKLSAgICAgICAgICAiMC4wMDQyMTgsIDAuMDA0MjE4LCAwLjAwNDIyMSwgMC4wMDQyMjIsIDAuMDA0MjIyLCAwLjAwNDIyMiwgMC4wMDQyMjIiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFFOKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMDczNDAzOwotICAgIGZ1bmN0aW9uIDogIk5FVDUzNiI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3NlbnNlIDogbm9uX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiByaXNpbmdfZWRnZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuNDAyNzU3LCAwLjQyODA0NiwgMC42NTUyNTcsIDEuMDMzOTgsIDEuNDEyNjgsIDIuMjk2NTEsIDIuODAxMjEiLCBcCi0gICAgICAgICAgIjAuNDE0NzE4LCAwLjQ0MDAwNywgMC42NjcyMiwgMS4wNDU5NCwgMS40MjQ1OSwgMi4zMDg0NiwgMi44MTMyOSIsIFwKLSAgICAgICAgICAiMC40Mjk5OTIsIDAuNDU1Mjc5LCAwLjY4MjUwNiwgMS4wNjEyMiwgMS40Mzk4NywgMi4zMjM3LCAyLjgyODU0IiwgXAotICAgICAgICAgICIwLjQ0NTM1NywgMC40NzA2NDYsIDAuNjk3ODU4LCAxLjA3NjU4LCAxLjQ1NTI2LCAyLjMzOTEsIDIuODQzODMiLCBcCi0gICAgICAgICAgIjAuNDYwNTIsIDAuNDg1ODEsIDAuNzEzMDIzLCAxLjA5MTc0LCAxLjQ3MDQ0LCAyLjM1NDI2LCAyLjg1OTA4IiwgXAotICAgICAgICAgICIwLjQ4NDgxOCwgMC41MTAxMDUsIDAuNzM3MzIxLCAxLjExNjA0LCAxLjQ5NDgxLCAyLjM3ODU1LCAyLjg4MzM3IiwgXAotICAgICAgICAgICIwLjUwNTU0LCAwLjUzMDgyOCwgMC43NTgwNDQsIDEuMTM2NzUsIDEuNTE1NDgsIDIuMzk5MjcsIDIuOTA0MDkiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjczMDY2LCAwLjMyNTAwMiwgMC43ODU2MzksIDEuNTUzMTIsIDIuMzI1MzIsIDQuMTIxODMsIDUuMTQxNzciLCBcCi0gICAgICAgICAgIjAuMjczMjAxLCAwLjMyNTAxNSwgMC43ODU5OTcsIDEuNTUyMTYsIDIuMzIxNzQsIDQuMTIxNzgsIDUuMTQxNzciLCBcCi0gICAgICAgICAgIjAuMjczMjczLCAwLjMyNTAwNCwgMC43ODQ1NzIsIDEuNTUzMzQsIDIuMzI1MzIsIDQuMTIxNzksIDUuMTQxNjQiLCBcCi0gICAgICAgICAgIjAuMjczMTE4LCAwLjMyNDAzNiwgMC43ODU3MDQsIDEuNTUzMjcsIDIuMzI1MzIsIDQuMTIxOCwgNS4xNDE3OCIsIFwKLSAgICAgICAgICAiMC4yNzMyMzgsIDAuMzI1MDExLCAwLjc4NjAyLCAxLjU1NjM3LCAyLjMyMTgxLCA0LjEyMTY0LCA1LjE0MTc2IiwgXAotICAgICAgICAgICIwLjI3MzI0MywgMC4zMjQzNTksIDAuNzg1NjUzLCAxLjU1MzI2LCAyLjMyNTIsIDQuMTIxNzksIDUuMTQxNiIsIFwKLSAgICAgICAgICAiMC4yNzMyNDcsIDAuMzI0Mzg0LCAwLjc4NTQzNiwgMS41NTQyMywgMi4zMjUzNCwgNC4xMjE3OSwgNS4xNDE3NyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zOTgzOTksIDAuNDI4MTMxLCAwLjY5NTQyOCwgMS4xNDA5MSwgMS41ODY0NSwgMi42MjYwNSwgMy4yMTk5MyIsIFwKLSAgICAgICAgICAiMC40MTAyNjcsIDAuNDM5OTk4LCAwLjcwNzI5NiwgMS4xNTI4NSwgMS41OTgzLCAyLjYzNzgsIDMuMjMxODIiLCBcCi0gICAgICAgICAgIjAuNDI1Mjc0LCAwLjQ1NTAwMywgMC43MjIzMzYsIDEuMTY3OCwgMS42MTMyOSwgMi42NTI2NCwgMy4yNDY4MyIsIFwKLSAgICAgICAgICAiMC40NDA3MTgsIDAuNDcwNDQ4LCAwLjczNzc0NywgMS4xODMzLCAxLjYyODc1LCAyLjY2ODI1LCAzLjI2MjI4IiwgXAotICAgICAgICAgICIwLjQ1NTgxOSwgMC40ODU1NSwgMC43NTI4NDcsIDEuMTk4MzMsIDEuNjQzODMsIDIuNjgzMzMsIDMuMjc3NDIiLCBcCi0gICAgICAgICAgIjAuNDgwMDE5LCAwLjUwOTc0OSwgMC43NzcwNDYsIDEuMjIyNTksIDEuNjY4MDQsIDIuNzA3NTQsIDMuMzAxNTgiLCBcCi0gICAgICAgICAgIjAuNTAwMzQsIDAuNTMwMDY5LCAwLjc5NzM2MiwgMS4yNDI4NiwgMS42ODgzOCwgMi43Mjc4NSwgMy4zMjE3NSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMTI3ODgsIDAuMzcxMzk2LCAwLjg5OTczOSwgMS43ODE1NSwgMi42NjI5MSwgNC43MjE4NCwgNS44OTUxMSIsIFwKLSAgICAgICAgICAiMC4zMTI3ODgsIDAuMzcxMzQzLCAwLjg5OTcxMSwgMS43ODEzLCAyLjY2MzI1LCA0LjcyMTYsIDUuODk1MDEiLCBcCi0gICAgICAgICAgIjAuMzEyODA2LCAwLjM3MTM4LCAwLjkwMDAzNSwgMS43ODA5NCwgMi42NjMyNSwgNC43MjExNCwgNS44OTUwNCIsIFwKLSAgICAgICAgICAiMC4zMTI3OTEsIDAuMzcxMzI5LCAwLjg5OTgxMiwgMS43ODE0MywgMi42NjMyNCwgNC43MjA5OCwgNS44OTUwNCIsIFwKLSAgICAgICAgICAiMC4zMTI4MzgsIDAuMzcxMzI1LCAwLjg5OTY4NSwgMS43ODEzOCwgMi42NjMwMSwgNC43MjE2NywgNS44OTQ5MyIsIFwKLSAgICAgICAgICAiMC4zMTI4MDMsIDAuMzcxMzQ2LCAwLjg5OTcwOSwgMS43ODEzMSwgMi42NjI5OSwgNC43MjE2MSwgNS44OTQ3MiIsIFwKLSAgICAgICAgICAiMC4zMTI4MzYsIDAuMzcxMzYzLCAwLjkwMDA5MSwgMS43ODExNiwgMi42NjMwMSwgNC43MjE2NCwgNS44OTUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0MjMxLCAwLjAwNDIzMiwgMC4wMDQyMzQsIDAuMDA0MjM1LCAwLjAwNDIzNiwgMC4wMDQyMzYsIDAuMDA0MjM2IiwgXAotICAgICAgICAgICIwLjAwNDIyNCwgMC4wMDQyMjUsIDAuMDA0MjI3LCAwLjAwNDIyOCwgMC4wMDQyMjgsIDAuMDA0MjI5LCAwLjAwNDIyOSIsIFwKLSAgICAgICAgICAiMC4wMDQyMTksIDAuMDA0MjIsIDAuMDA0MjIyLCAwLjAwNDIyMywgMC4wMDQyMjMsIDAuMDA0MjI0LCAwLjAwNDIyNCIsIFwKLSAgICAgICAgICAiMC4wMDQyMTYsIDAuMDA0MjE2LCAwLjAwNDIxOSwgMC4wMDQyMiwgMC4wMDQyMiwgMC4wMDQyMiwgMC4wMDQyMiIsIFwKLSAgICAgICAgICAiMC4wMDQyMTQsIDAuMDA0MjE1LCAwLjAwNDIxNywgMC4wMDQyMTgsIDAuMDA0MjE4LCAwLjAwNDIxOSwgMC4wMDQyMTkiLCBcCi0gICAgICAgICAgIjAuMDA0MjE0LCAwLjAwNDIxNCwgMC4wMDQyMTcsIDAuMDA0MjE4LCAwLjAwNDIxOCwgMC4wMDQyMTgsIDAuMDA0MjE5IiwgXAotICAgICAgICAgICIwLjAwNDIxOCwgMC4wMDQyMTgsIDAuMDA0MjIxLCAwLjAwNDIyMiwgMC4wMDQyMjIsIDAuMDA0MjIyLCAwLjAwNDIyMiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzU5OCwgMC4wMDM1OTgsIDAuMDAzNjAxLCAwLjAwMzYwMiwgMC4wMDM2MDIsIDAuMDAzNjAyLCAwLjAwMzYwMiIsIFwKLSAgICAgICAgICAiMC4wMDM1OTEsIDAuMDAzNTkxLCAwLjAwMzU5NCwgMC4wMDM1OTUsIDAuMDAzNTk1LCAwLjAwMzU5NSwgMC4wMDM1OTYiLCBcCi0gICAgICAgICAgIjAuMDAzNTg0LCAwLjAwMzU4NSwgMC4wMDM1ODgsIDAuMDAzNTg4LCAwLjAwMzU4OSwgMC4wMDM1ODksIDAuMDAzNTg5IiwgXAotICAgICAgICAgICIwLjAwMzU4LCAwLjAwMzU4LCAwLjAwMzU4MywgMC4wMDM1ODQsIDAuMDAzNTg0LCAwLjAwMzU4NCwgMC4wMDM1ODUiLCBcCi0gICAgICAgICAgIjAuMDAzNTc1LCAwLjAwMzU3NiwgMC4wMDM1NzgsIDAuMDAzNTc5LCAwLjAwMzU4LCAwLjAwMzU4LCAwLjAwMzU4IiwgXAotICAgICAgICAgICIwLjAwMzU3MSwgMC4wMDM1NzIsIDAuMDAzNTc1LCAwLjAwMzU3NSwgMC4wMDM1NzYsIDAuMDAzNTc2LCAwLjAwMzU3NiIsIFwKLSAgICAgICAgICAiMC4wMDM1NjksIDAuMDAzNTY5LCAwLjAwMzU3MiwgMC4wMDM1NzMsIDAuMDAzNTczLCAwLjAwMzU3MywgMC4wMDM1NzMiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFNFKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDEwODg1MzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDEwODc5NzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDEwODg1MzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDQxNDEsIDAuMDA0MTMxLCAwLjAwNDEyNiwgMC4wMDQxMjUsIDAuMDA0MTI2LCAwLjAwNDEyNywgMC4wMDQxMjgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDUxMzQsIDAuMDA1MTE4LCAwLjAwNTEwNiwgMC4wMDUxLCAwLjAwNTA5NSwgMC4wMDUwODgsIDAuMDA1MDg2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEJiFFJiFTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fRV9FUV8wX0FOX1NJX0VRXzAgPT0gMSdiMSI7Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMTgxMjUsIC0wLjE3LCAtMC4xNjM3NSwgLTAuMTUxMjUsIC0wLjE0NSwgLTAuMTM1LCAtMC4xMiIsIFwKLSAgICAgICAgICAiLTAuMTkyNSwgLTAuMTgxMjUsIC0wLjE3NSwgLTAuMTY4NzUsIC0wLjE1NjI1LCAtMC4xNDYyNSwgLTAuMTMxMjUiLCBcCi0gICAgICAgICAgIi0wLjIwNSwgLTAuMiwgLTAuMTg3NSwgLTAuMTgxMjUsIC0wLjE3NSwgLTAuMTU4NzUsIC0wLjE1IiwgXAotICAgICAgICAgICItMC4yMjM3NSwgLTAuMjEyNSwgLTAuMiwgLTAuMTkzNzUsIC0wLjE4NzUsIC0wLjE3MTI1LCAtMC4xNjI1IiwgXAotICAgICAgICAgICItMC4yMzYyNSwgLTAuMjI1LCAtMC4yMTI1LCAtMC4yMDYyNSwgLTAuMiwgLTAuMTgzNzUsIC0wLjE3NSIsIFwKLSAgICAgICAgICAiLTAuMjUyNSwgLTAuMjQ3NSwgLTAuMjM1LCAtMC4yMjg3NSwgLTAuMjE2MjUsIC0wLjIwNjI1LCAtMC4xOTc1IiwgXAotICAgICAgICAgICItMC4yNzM3NSwgLTAuMjYyNSwgLTAuMjU2MjUsIC0wLjI0Mzc1LCAtMC4yMzc1LCAtMC4yMjEyNSwgLTAuMjEyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRCYhRSZTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fRV9FUV8wX0FOX1NJX0VRXzEgPT0gMSdiMSI7Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDMxMjUsIC0wLjAyLCAtMC4wMDc1LCAwLjAwNSwgMC4wMTEyNSwgMC4wMjc1LCAwLjA0MjUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLjAwNjI1LCAwLjAyMjUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjA1NSwgLTAuMDQzNzUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgMC4wMDM3NSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDY3NSwgLTAuMDU2MjUsIC0wLjA0Mzc1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMDg3NSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDgsIC0wLjA2ODc1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjAzNzUsIC0wLjAyMTI1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMTAyNSwgLTAuMDkxMjUsIC0wLjA3ODc1LCAtMC4wNjYyNSwgLTAuMDUzNzUsIC0wLjAzNzUsIC0wLjAyMjUiLCBcCi0gICAgICAgICAgIi0wLjExNzUsIC0wLjEwNjI1LCAtMC4wOTM3NSwgLTAuMDgxMjUsIC0wLjA3NSwgLTAuMDUyNSwgLTAuMDQzNzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUQmRSZTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fRV9FUV8xX0FOX1NJX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMTQzNzUsIC0wLjEzODc1LCAtMC4xMjYyNSwgLTAuMTEzNzUsIC0wLjEwNzUsIC0wLjA5MTI1LCAtMC4wODI1IiwgXAotICAgICAgICAgICItMC4xNTUsIC0wLjE1LCAtMC4xMzc1LCAtMC4xMjUsIC0wLjExODc1LCAtMC4xMDI1LCAtMC4wOTM3NSIsIFwKLSAgICAgICAgICAiLTAuMTY3NSwgLTAuMTYyNSwgLTAuMTUsIC0wLjEzNzUsIC0wLjEzMTI1LCAtMC4xMTUsIC0wLjEwNjI1IiwgXAotICAgICAgICAgICItMC4xODYyNSwgLTAuMTc1LCAtMC4xNjI1LCAtMC4xNTYyNSwgLTAuMTQzNzUsIC0wLjEzMzc1LCAtMC4xMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMTk4NzUsIC0wLjE4NzUsIC0wLjE3NSwgLTAuMTY4NzUsIC0wLjE1NjI1LCAtMC4xNDYyNSwgLTAuMTMxMjUiLCBcCi0gICAgICAgICAgIi0wLjIyMTI1LCAtMC4yMSwgLTAuMTk3NSwgLTAuMTkxMjUsIC0wLjE3ODc1LCAtMC4xNjg3NSwgLTAuMTUzNzUiLCBcCi0gICAgICAgICAgIi0wLjI0MjUsIC0wLjIzMTI1LCAtMC4yMTg3NSwgLTAuMjA2MjUsIC0wLjIsIC0wLjE4Mzc1LCAtMC4xNzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiRCZFJiFTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzFfQU5fRV9FUV8xX0FOX1NJX0VRXzAgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDYyNSwgLTAuMDUxMjUsIC0wLjAzODc1LCAtMC4wMjYyNSwgLTAuMDEzNzUsIDAuMDAyNSwgMC4wMjM3NSIsIFwKLSAgICAgICAgICAiLTAuMDgsIC0wLjA2MjUsIC0wLjA1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAwODc1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wOTI1LCAtMC4wODEyNSwgLTAuMDY4NzUsIC0wLjA1NjI1LCAtMC4wNDM3NSwgLTAuMDIxMjUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICItMC4xMTEyNSwgLTAuMDkzNzUsIC0wLjA4MTI1LCAtMC4wNjg3NSwgLTAuMDU2MjUsIC0wLjA0LCAtMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMTIzNzUsIC0wLjExMjUsIC0wLjEsIC0wLjA4NzUsIC0wLjA3NSwgLTAuMDUyNSwgLTAuMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMTQ2MjUsIC0wLjEzNSwgLTAuMTIyNSwgLTAuMTEsIC0wLjA5NzUsIC0wLjA3NSwgLTAuMDYiLCBcCi0gICAgICAgICAgIi0wLjE2MTI1LCAtMC4xNSwgLTAuMTM3NSwgLTAuMTI1LCAtMC4xMTI1LCAtMC4wOTYyNSwgLTAuMDc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRCYhRSYhU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX0VfRVFfMF9BTl9TSV9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE5Mzc1LCAwLjE3NjI1LCAwLjE2Mzc1LCAwLjE0NSwgMC4xMzI1LCAwLjEwMzc1LCAwLjA4MjUiLCBcCi0gICAgICAgICAgIjAuMjA1LCAwLjE5Mzc1LCAwLjE3NSwgMC4xNTYyNSwgMC4xNDM3NSwgMC4xMjEyNSwgMC4xIiwgXAotICAgICAgICAgICIwLjIxNzUsIDAuMjA2MjUsIDAuMTg3NSwgMC4xNzUsIDAuMTU2MjUsIDAuMTMzNzUsIDAuMTEyNSIsIFwKLSAgICAgICAgICAiMC4yMzYyNSwgMC4yMTg3NSwgMC4yMDYyNSwgMC4xODc1LCAwLjE3NSwgMC4xNDYyNSwgMC4xMjUiLCBcCi0gICAgICAgICAgIjAuMjQ4NzUsIDAuMjM3NSwgMC4yMTg3NSwgMC4yMDYyNSwgMC4xODc1LCAwLjE2NSwgMC4xNDM3NSIsIFwKLSAgICAgICAgICAiMC4yNzEyNSwgMC4yNiwgMC4yNDEyNSwgMC4yMjg3NSwgMC4yMSwgMC4xODc1LCAwLjE2NjI1IiwgXAotICAgICAgICAgICIwLjI4NjI1LCAwLjI3NSwgMC4yNjI1LCAwLjI0Mzc1LCAwLjIyNSwgMC4yMDI1LCAwLjE4MTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRCYhRSZTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fRV9FUV8wX0FOX1NJX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjI1LCAwLjIxMzc1LCAwLjE5NSwgMC4xODI1LCAwLjE3LCAwLjE1Mzc1LCAwLjEzODc1IiwgXAotICAgICAgICAgICIwLjIzNjI1LCAwLjIyNSwgMC4yMDYyNSwgMC4xOTM3NSwgMC4xODEyNSwgMC4xNjUsIDAuMTUiLCBcCi0gICAgICAgICAgIjAuMjQ4NzUsIDAuMjM3NSwgMC4yMTg3NSwgMC4yMDYyNSwgMC4xOTM3NSwgMC4xNzc1LCAwLjE2ODc1IiwgXAotICAgICAgICAgICIwLjI2MTI1LCAwLjI1LCAwLjIzNzUsIDAuMjE4NzUsIDAuMjA2MjUsIDAuMTksIDAuMTgxMjUiLCBcCi0gICAgICAgICAgIjAuMjczNzUsIDAuMjYyNSwgMC4yNSwgMC4yMzc1LCAwLjIyNSwgMC4yMDg3NSwgMC4xOTM3NSIsIFwKLSAgICAgICAgICAiMC4yOTYyNSwgMC4yODUsIDAuMjcyNSwgMC4yNiwgMC4yNDc1LCAwLjIzMTI1LCAwLjIxNjI1IiwgXAotICAgICAgICAgICIwLjMxNzUsIDAuMzA2MjUsIDAuMjg3NSwgMC4yNzUsIDAuMjYyNSwgMC4yNDYyNSwgMC4yMzc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRCZFJlNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9FX0VRXzFfQU5fU0lfRVFfMSA9PSAxJ2IxIjsKLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMTI1LCAwLjIwMTI1LCAwLjE4MjUsIDAuMTYzNzUsIDAuMTUxMjUsIDAuMTI4NzUsIDAuMTA3NSIsIFwKLSAgICAgICAgICAiMC4yMjM3NSwgMC4yMTI1LCAwLjE5Mzc1LCAwLjE3NSwgMC4xNjI1LCAwLjE0LCAwLjExODc1IiwgXAotICAgICAgICAgICIwLjIzNjI1LCAwLjIyNSwgMC4yMDYyNSwgMC4xOTM3NSwgMC4xNzUsIDAuMTUyNSwgMC4xMzEyNSIsIFwKLSAgICAgICAgICAiMC4yNDg3NSwgMC4yMzc1LCAwLjIxODc1LCAwLjIwNjI1LCAwLjE4NzUsIDAuMTY1LCAwLjE0Mzc1IiwgXAotICAgICAgICAgICIwLjI2MTI1LCAwLjI1LCAwLjIzMTI1LCAwLjIxODc1LCAwLjIsIDAuMTc3NSwgMC4xNTYyNSIsIFwKLSAgICAgICAgICAiMC4yNzc1LCAwLjI2NjI1LCAwLjI1Mzc1LCAwLjIzNSwgMC4yMjI1LCAwLjE5Mzc1LCAwLjE3MjUiLCBcCi0gICAgICAgICAgIjAuMjk4NzUsIDAuMjg3NSwgMC4yNjg3NSwgMC4yNSwgMC4yMzc1LCAwLjIxNSwgMC4xOTM3NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiRCZFJiFTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzFfQU5fRV9FUV8xX0FOX1NJX0VRXzAgPT0gMSdiMSI7Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjkzNzUsIDAuMjc2MjUsIDAuMjYzNzUsIDAuMjQ1LCAwLjIzMjUsIDAuMjE2MjUsIDAuMjAxMjUiLCBcCi0gICAgICAgICAgIjAuMzA1LCAwLjI5Mzc1LCAwLjI3NSwgMC4yNjI1LCAwLjI1LCAwLjIyNzUsIDAuMjEyNSIsIFwKLSAgICAgICAgICAiMC4zMTc1LCAwLjMwNjI1LCAwLjI4NzUsIDAuMjc1LCAwLjI2MjUsIDAuMjQ2MjUsIDAuMjMxMjUiLCBcCi0gICAgICAgICAgIjAuMzMsIDAuMzE4NzUsIDAuMzA2MjUsIDAuMjg3NSwgMC4yNzUsIDAuMjU4NzUsIDAuMjQzNzUiLCBcCi0gICAgICAgICAgIjAuMzQyNSwgMC4zMzEyNSwgMC4zMTg3NSwgMC4zLCAwLjI4NzUsIDAuMjcxMjUsIDAuMjU2MjUiLCBcCi0gICAgICAgICAgIjAuMzY1LCAwLjM1Mzc1LCAwLjM0MTI1LCAwLjMyMjUsIDAuMzEsIDAuMjkzNzUsIDAuMjc4NzUiLCBcCi0gICAgICAgICAgIjAuMzgsIDAuMzY4NzUsIDAuMzU2MjUsIDAuMzM3NSwgMC4zMjUsIDAuMzA4NzUsIDAuMjkzNzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFNJKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA1OTY0ODU7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNTk0NjUzOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDU5NjQ4NTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDIyNDksIDAuMDAyMjQsIDAuMDAyMjM1LCAwLjAwMjIzMiwgMC4wMDIyMjksIDAuMDAyMjI3LCAwLjAwMjIyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNDI4MSwgMC4wMDQyNzYsIDAuMDA0Mjc0LCAwLjAwNDI3MiwgMC4wMDQyNzEsIDAuMDA0MjY5LCAwLjAwNDI2OCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJTRSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4xNjI1LCAtMC4xNTEyNSwgLTAuMTM4NzUsIC0wLjEzMjUsIC0wLjEyLCAtMC4xMDM3NSwgLTAuMDk1IiwgXAotICAgICAgICAgICItMC4xNzM3NSwgLTAuMTYyNSwgLTAuMTUsIC0wLjE0Mzc1LCAtMC4xMzEyNSwgLTAuMTIxMjUsIC0wLjEwNjI1IiwgXAotICAgICAgICAgICItMC4xODYyNSwgLTAuMTc1LCAtMC4xNjI1LCAtMC4xNTYyNSwgLTAuMTQzNzUsIC0wLjEzMzc1LCAtMC4xMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMTk4NzUsIC0wLjE4NzUsIC0wLjE4MTI1LCAtMC4xNjg3NSwgLTAuMTYyNSwgLTAuMTQ2MjUsIC0wLjEzNzUiLCBcCi0gICAgICAgICAgIi0wLjIxMTI1LCAtMC4yLCAtMC4xOTM3NSwgLTAuMTgxMjUsIC0wLjE3NSwgLTAuMTU4NzUsIC0wLjE1IiwgXAotICAgICAgICAgICItMC4yMzM3NSwgLTAuMjIyNSwgLTAuMjE2MjUsIC0wLjIwMzc1LCAtMC4xOTc1LCAtMC4xODEyNSwgLTAuMTcyNSIsIFwKLSAgICAgICAgICAiLTAuMjU1LCAtMC4yNDM3NSwgLTAuMjM3NSwgLTAuMjI1LCAtMC4yMTI1LCAtMC4yMDI1LCAtMC4xODc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDQzNzUsIC0wLjAzMjUsIC0wLjAxMzc1LCAtMC4wMDEyNSwgMC4wMTEyNSwgMC4wMjc1LCAwLjA0MjUiLCBcCi0gICAgICAgICAgIi0wLjA1NSwgLTAuMDQzNzUsIC0wLjAyNSwgLTAuMDEyNSwgMCwgMC4wMTYyNSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDY3NSwgLTAuMDU2MjUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgMC4wMDM3NSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDgsIC0wLjA2ODc1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjAzMTI1LCAtMC4wMDg3NSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDkyNSwgLTAuMDgxMjUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNDM3NSwgLTAuMDIxMjUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICItMC4xMDg3NSwgLTAuMDk3NSwgLTAuMDg1LCAtMC4wNzI1LCAtMC4wNiwgLTAuMDM3NSwgLTAuMDIyNSIsIFwKLSAgICAgICAgICAiLTAuMTIzNzUsIC0wLjExMjUsIC0wLjEsIC0wLjA4NzUsIC0wLjA3NSwgLTAuMDU4NzUsIC0wLjAzNzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlNFIjsKLSAgICAgIHNkZl9jb25kIDogIlNFID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIzNzUsIDAuMjI2MjUsIDAuMjEzNzUsIDAuMTk1LCAwLjE4MjUsIDAuMTY2MjUsIDAuMTU3NSIsIFwKLSAgICAgICAgICAiMC4yNDg3NSwgMC4yMzc1LCAwLjIyNSwgMC4yMDYyNSwgMC4xOTM3NSwgMC4xNzc1LCAwLjE2ODc1IiwgXAotICAgICAgICAgICIwLjI2MTI1LCAwLjI1LCAwLjIzNzUsIDAuMjI1LCAwLjIxMjUsIDAuMTk2MjUsIDAuMTgxMjUiLCBcCi0gICAgICAgICAgIjAuMjgsIDAuMjYyNSwgMC4yNSwgMC4yMzc1LCAwLjIyNSwgMC4yMDg3NSwgMC4xOTM3NSIsIFwKLSAgICAgICAgICAiMC4yOTI1LCAwLjI4MTI1LCAwLjI2MjUsIDAuMjUsIDAuMjM3NSwgMC4yMjEyNSwgMC4yMDYyNSIsIFwKLSAgICAgICAgICAiMC4zMTUsIDAuMzAzNzUsIDAuMjg1LCAwLjI3MjUsIDAuMjYsIDAuMjQzNzUsIDAuMjI4NzUiLCBcCi0gICAgICAgICAgIjAuMzMsIDAuMzE4NzUsIDAuMzA2MjUsIDAuMjkzNzUsIDAuMjgxMjUsIDAuMjY1LCAwLjI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTY4NzUsIDAuMTU3NSwgMC4xMzg3NSwgMC4xMiwgMC4xMDc1LCAwLjA3ODc1LCAwLjA2Mzc1IiwgXAotICAgICAgICAgICIwLjE4LCAwLjE2ODc1LCAwLjE1LCAwLjEzMTI1LCAwLjExODc1LCAwLjA5NjI1LCAwLjA3NSIsIFwKLSAgICAgICAgICAiMC4xOTI1LCAwLjE4MTI1LCAwLjE2MjUsIDAuMTQzNzUsIDAuMTMxMjUsIDAuMTA4NzUsIDAuMDg3NSIsIFwKLSAgICAgICAgICAiMC4yMDUsIDAuMTkzNzUsIDAuMTc1LCAwLjE1NjI1LCAwLjE0Mzc1LCAwLjEyMTI1LCAwLjEiLCBcCi0gICAgICAgICAgIjAuMjE3NSwgMC4yMDYyNSwgMC4xODc1LCAwLjE2ODc1LCAwLjE1NjI1LCAwLjEzMzc1LCAwLjExMjUiLCBcCi0gICAgICAgICAgIjAuMjMzNzUsIDAuMjIyNSwgMC4yMSwgMC4xOTEyNSwgMC4xNzI1LCAwLjE1LCAwLjEyODc1IiwgXAotICAgICAgICAgICIwLjI1NSwgMC4yNDM3NSwgMC4yMjUsIDAuMjA2MjUsIDAuMTkzNzUsIDAuMTcxMjUsIDAuMTUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IFNNREZGSFFYMSAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKFNNREZGSFFYMSkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjQ0ODUxODsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBmZiAoTjMwLFFCSU5UKSB7Ci0gICAgbmV4dF9zdGF0ZSA6ICIoKFNFIFNJKSArICghU0UgKChTMCBEMSkgKyAoIVMwIEQwKSkpKSI7Ci0gICAgY2xvY2tlZF9vbiA6ICJDSyI7Ci0gIH0KLSAgcGluKENLKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA1NDMzNzk7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNTQzMDY2OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDU0MzM3OTsKLSAgICBjbG9jayA6IHRydWU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyNywgMC4wMDI2ODgsIDAuMDAyNjc3LCAwLjAwMjY3MSwgMC4wMDI2NjUsIDAuMDAyNjU4LCAwLjAwMjY1NSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNTkyNywgMC4wMDU5MTcsIDAuMDA1OTA5LCAwLjAwNTkwMiwgMC4wMDU5MDIsIDAuMDA1OTA3LCAwLjAwNTkxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRDAmIUQxJiFTMCYhU0UmIVNJIjsKLSAgICAgIHNkZl9jb25kIDogIkQwX0VRXzBfQU5fRDFfRVFfMF9BTl9TMF9FUV8wX0FOX1NFX0VRXzBfQU5fU0lfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjMwMjU0OCwgMC4zMTQyOTIsIDAuMzI5NjAxLCAwLjM0NTA5LCAwLjM2MDQ4NCwgMC4zODQ4MDgsIDAuNDA1ODcyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4yMDY4NTksIDAuMjE4MDU4LCAwLjIzMzI5MiwgMC4yNDgxNTUsIDAuMjYyODU4LCAwLjI4NTg4LCAwLjMwNTEzNyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRDApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDg5NDEwMTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA4OTA4MzU7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwODk0MTAxOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNDEwNywgMC4wMDQwODgsIDAuMDA0MDgsIDAuMDA0MDc0LCAwLjAwNDA3LCAwLjAwNDA2NCwgMC4wMDQwNjIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDYzNzIsIDAuMDA2MzYzLCAwLjAwNjM1OCwgMC4wMDYzNTUsIDAuMDA2MzUzLCAwLjAwNjM1LCAwLjAwNjM0OSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhUzAmIVNFIjsKLSAgICAgIHNkZl9jb25kIDogIlMwX0VRXzBfQU5fU0VfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4xODc1LCAtMC4xODI1LCAtMC4xNywgLTAuMTU3NSwgLTAuMTQ1LCAtMC4xMzUsIC0wLjEyIiwgXAotICAgICAgICAgICItMC4xOTg3NSwgLTAuMTkzNzUsIC0wLjE4MTI1LCAtMC4xNjg3NSwgLTAuMTU2MjUsIC0wLjE0NjI1LCAtMC4xMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMjExMjUsIC0wLjIwNjI1LCAtMC4xOTM3NSwgLTAuMTgxMjUsIC0wLjE3NSwgLTAuMTU4NzUsIC0wLjE0Mzc1IiwgXAotICAgICAgICAgICItMC4yMywgLTAuMjE4NzUsIC0wLjIwNjI1LCAtMC4xOTM3NSwgLTAuMTg3NSwgLTAuMTcxMjUsIC0wLjE1NjI1IiwgXAotICAgICAgICAgICItMC4yNDI1LCAtMC4yMzEyNSwgLTAuMjE4NzUsIC0wLjIwNjI1LCAtMC4yLCAtMC4xODM3NSwgLTAuMTY4NzUiLCBcCi0gICAgICAgICAgIi0wLjI2NSwgLTAuMjUzNzUsIC0wLjI0MTI1LCAtMC4yMjg3NSwgLTAuMjIyNSwgLTAuMjA2MjUsIC0wLjE5MTI1IiwgXAotICAgICAgICAgICItMC4yOCwgLTAuMjY4NzUsIC0wLjI2MjUsIC0wLjI1LCAtMC4yMzc1LCAtMC4yMjEyNSwgLTAuMjEyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjA0Mzc1LCAtMC4wMzI1LCAtMC4wMiwgLTAuMDA3NSwgLTAuMDAxMjUsIDAuMDIxMjUsIDAuMDM2MjUiLCBcCi0gICAgICAgICAgIi0wLjA1NSwgLTAuMDQzNzUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgMC4wMSwgMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjA2NzUsIC0wLjA1NjI1LCAtMC4wNDM3NSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDAyNSwgMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wOCwgLTAuMDY4NzUsIC0wLjA1NjI1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDE1LCAwIiwgXAotICAgICAgICAgICItMC4wOTI1LCAtMC4wODEyNSwgLTAuMDY4NzUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDI3NSwgLTAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMTA4NzUsIC0wLjA5NzUsIC0wLjA4NSwgLTAuMDc4NzUsIC0wLjA2NjI1LCAtMC4wNSwgLTAuMDM1IiwgXAotICAgICAgICAgICItMC4xMjM3NSwgLTAuMTEyNSwgLTAuMSwgLTAuMDg3NSwgLTAuMDgxMjUsIC0wLjA2NSwgLTAuMDUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFTMCYhU0UiOwotICAgICAgc2RmX2NvbmQgOiAiUzBfRVFfMF9BTl9TRV9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI3NSwgMC4yNTc1LCAwLjI0NSwgMC4yMzI1LCAwLjIxMzc1LCAwLjE5NzUsIDAuMTgyNSIsIFwKLSAgICAgICAgICAiMC4yODYyNSwgMC4yNjg3NSwgMC4yNTYyNSwgMC4yMzc1LCAwLjIyNSwgMC4yMDg3NSwgMC4xOTM3NSIsIFwKLSAgICAgICAgICAiMC4yOTg3NSwgMC4yODc1LCAwLjI2ODc1LCAwLjI1NjI1LCAwLjI0Mzc1LCAwLjIyMTI1LCAwLjIwNjI1IiwgXAotICAgICAgICAgICIwLjMxMTI1LCAwLjMsIDAuMjgxMjUsIDAuMjY4NzUsIDAuMjU2MjUsIDAuMjMzNzUsIDAuMjI1IiwgXAotICAgICAgICAgICIwLjMyMzc1LCAwLjMxMjUsIDAuMjkzNzUsIDAuMjgxMjUsIDAuMjY4NzUsIDAuMjUyNSwgMC4yMzc1IiwgXAotICAgICAgICAgICIwLjM0NjI1LCAwLjMzNSwgMC4zMTYyNSwgMC4zMDM3NSwgMC4yOTEyNSwgMC4yNjg3NSwgMC4yNiIsIFwKLSAgICAgICAgICAiMC4zNjEyNSwgMC4zNSwgMC4zMzc1LCAwLjMxODc1LCAwLjMwNjI1LCAwLjI5LCAwLjI3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE4NzUsIDAuMTc2MjUsIDAuMTU3NSwgMC4xMzg3NSwgMC4xMjYyNSwgMC4wOTc1LCAwLjA3NjI1IiwgXAotICAgICAgICAgICIwLjE5ODc1LCAwLjE4NzUsIDAuMTY4NzUsIDAuMTUsIDAuMTM3NSwgMC4xMDg3NSwgMC4wOTM3NSIsIFwKLSAgICAgICAgICAiMC4yMTEyNSwgMC4yLCAwLjE4MTI1LCAwLjE2MjUsIDAuMTUsIDAuMTI3NSwgMC4xMDYyNSIsIFwKLSAgICAgICAgICAiMC4yMjM3NSwgMC4yMTI1LCAwLjE5Mzc1LCAwLjE3NSwgMC4xNjI1LCAwLjE0LCAwLjExODc1IiwgXAotICAgICAgICAgICIwLjIzNjI1LCAwLjIyNSwgMC4yMDYyNSwgMC4xODc1LCAwLjE3NSwgMC4xNDYyNSwgMC4xMzEyNSIsIFwKLSAgICAgICAgICAiMC4yNTI1LCAwLjI0MTI1LCAwLjIyODc1LCAwLjIxLCAwLjE5MTI1LCAwLjE2ODc1LCAwLjE0NzUiLCBcCi0gICAgICAgICAgIjAuMjczNzUsIDAuMjU2MjUsIDAuMjQzNzUsIDAuMjI1LCAwLjIxMjUsIDAuMTgzNzUsIDAuMTYyNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRDEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDg0NDgxNzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA4NDA4MzQ7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwODQ0ODE3OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzk2NiwgMC4wMDM5NDcsIDAuMDAzOTM4LCAwLjAwMzkzMywgMC4wMDM5MjgsIDAuMDAzOTIzLCAwLjAwMzkyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA2NTUsIDAuMDA2NTQxLCAwLjAwNjUzNiwgMC4wMDY1MzMsIDAuMDA2NTMxLCAwLjAwNjUyOCwgMC4wMDY1MjYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiUzAmIVNFIjsKLSAgICAgIHNkZl9jb25kIDogIlMwX0VRXzFfQU5fU0VfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4xODc1LCAtMC4xNzYyNSwgLTAuMTcsIC0wLjE1NzUsIC0wLjE0NSwgLTAuMTI4NzUsIC0wLjEyIiwgXAotICAgICAgICAgICItMC4xOTg3NSwgLTAuMTg3NSwgLTAuMTgxMjUsIC0wLjE2ODc1LCAtMC4xNTYyNSwgLTAuMTQsIC0wLjEzMTI1IiwgXAotICAgICAgICAgICItMC4yMTEyNSwgLTAuMiwgLTAuMTkzNzUsIC0wLjE4MTI1LCAtMC4xNjg3NSwgLTAuMTU4NzUsIC0wLjE0Mzc1IiwgXAotICAgICAgICAgICItMC4yMjM3NSwgLTAuMjE4NzUsIC0wLjIwNjI1LCAtMC4xOTM3NSwgLTAuMTgxMjUsIC0wLjE3MTI1LCAtMC4xNTYyNSIsIFwKLSAgICAgICAgICAiLTAuMjQyNSwgLTAuMjMxMjUsIC0wLjIxODc1LCAtMC4yMDYyNSwgLTAuMiwgLTAuMTgzNzUsIC0wLjE2ODc1IiwgXAotICAgICAgICAgICItMC4yNTg3NSwgLTAuMjUzNzUsIC0wLjI0MTI1LCAtMC4yMjg3NSwgLTAuMjE2MjUsIC0wLjIwNjI1LCAtMC4xOTEyNSIsIFwKLSAgICAgICAgICAiLTAuMjgsIC0wLjI2ODc1LCAtMC4yNTYyNSwgLTAuMjUsIC0wLjIzNzUsIC0wLjIyMTI1LCAtMC4yMTI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDQzNzUsIC0wLjAzMjUsIC0wLjAyLCAtMC4wMTM3NSwgLTAuMDAxMjUsIDAuMDE1LCAwLjAzIiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA0Mzc1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMTI1LCAwLjAwMzc1LCAwLjAxODc1IiwgXAotICAgICAgICAgICItMC4wNjc1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjAzNzUsIC0wLjAyNSwgLTAuMDA4NzUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA4LCAtMC4wNjg3NSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wMzc1LCAtMC4wMjEyNSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA5MjUsIC0wLjA4MTI1LCAtMC4wNjg3NSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wMzM3NSwgLTAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMTA4NzUsIC0wLjEwMzc1LCAtMC4wOTEyNSwgLTAuMDc4NzUsIC0wLjA2NjI1LCAtMC4wNSwgLTAuMDM1IiwgXAotICAgICAgICAgICItMC4xMjM3NSwgLTAuMTEyNSwgLTAuMSwgLTAuMDkzNzUsIC0wLjA4MTI1LCAtMC4wNjUsIC0wLjA1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJTMCYhU0UiOwotICAgICAgc2RmX2NvbmQgOiAiUzBfRVFfMV9BTl9TRV9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI3NSwgMC4yNTc1LCAwLjI0NSwgMC4yMjYyNSwgMC4yMTM3NSwgMC4xOTc1LCAwLjE4MjUiLCBcCi0gICAgICAgICAgIjAuMjg2MjUsIDAuMjY4NzUsIDAuMjU2MjUsIDAuMjM3NSwgMC4yMjUsIDAuMjA4NzUsIDAuMTkzNzUiLCBcCi0gICAgICAgICAgIjAuMjk4NzUsIDAuMjgxMjUsIDAuMjY4NzUsIDAuMjUsIDAuMjM3NSwgMC4yMjEyNSwgMC4yMDYyNSIsIFwKLSAgICAgICAgICAiMC4zMTEyNSwgMC4yOTM3NSwgMC4yODEyNSwgMC4yNjg3NSwgMC4yNTYyNSwgMC4yMzM3NSwgMC4yMTg3NSIsIFwKLSAgICAgICAgICAiMC4zMjM3NSwgMC4zMTI1LCAwLjI5Mzc1LCAwLjI4MTI1LCAwLjI2ODc1LCAwLjI0NjI1LCAwLjIzNzUiLCBcCi0gICAgICAgICAgIjAuMzQ2MjUsIDAuMzM1LCAwLjMxNjI1LCAwLjMwMzc1LCAwLjI4NSwgMC4yNjg3NSwgMC4yNTM3NSIsIFwKLSAgICAgICAgICAiMC4zNjEyNSwgMC4zNSwgMC4zMzc1LCAwLjMxODc1LCAwLjMwNjI1LCAwLjI5LCAwLjI3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE4NzUsIDAuMTc2MjUsIDAuMTU3NSwgMC4xNDUsIDAuMTI2MjUsIDAuMTAzNzUsIDAuMDgyNSIsIFwKLSAgICAgICAgICAiMC4xOTg3NSwgMC4xODc1LCAwLjE2ODc1LCAwLjE1NjI1LCAwLjEzNzUsIDAuMTE1LCAwLjA5Mzc1IiwgXAotICAgICAgICAgICIwLjIxMTI1LCAwLjIsIDAuMTgxMjUsIDAuMTY4NzUsIDAuMTUsIDAuMTI3NSwgMC4xMDYyNSIsIFwKLSAgICAgICAgICAiMC4yMjM3NSwgMC4yMTI1LCAwLjE5Mzc1LCAwLjE4MTI1LCAwLjE2MjUsIDAuMTQsIDAuMTE4NzUiLCBcCi0gICAgICAgICAgIjAuMjM2MjUsIDAuMjI1LCAwLjIwNjI1LCAwLjE5Mzc1LCAwLjE3NSwgMC4xNTI1LCAwLjEzMTI1IiwgXAotICAgICAgICAgICIwLjI1ODc1LCAwLjI0MTI1LCAwLjIyODc1LCAwLjIxLCAwLjE5NzUsIDAuMTY4NzUsIDAuMTQ3NSIsIFwKLSAgICAgICAgICAiMC4yNzM3NSwgMC4yNjI1LCAwLjI0Mzc1LCAwLjIzMTI1LCAwLjIxMjUsIDAuMTksIDAuMTY4NzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFEpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4xMjgxMDE7Ci0gICAgZnVuY3Rpb24gOiAiTjMwIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBub25fdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJpc2luZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yNTY3NTIsIDAuMjk5ODU2LCAwLjU0NDE2OSwgMC43NTk2NjEsIDEuMDQ3NDQsIDEuNjIyNjcsIDEuOTgyMjEiLCBcCi0gICAgICAgICAgIjAuMjY4NjY0LCAwLjMxMTc2NSwgMC41NTYwNDgsIDAuNzcxODAzLCAxLjA1OTM3LCAxLjYzNDYsIDEuOTk0MTIiLCBcCi0gICAgICAgICAgIjAuMjgzODcyLCAwLjMyNjk3NSwgMC41NzEyOTIsIDAuNzg2OTY1LCAxLjA3NDYzLCAxLjY0OTgyLCAyLjAwOTI5IiwgXAotICAgICAgICAgICIwLjI5OTM4OSwgMC4zNDI0OTMsIDAuNTg2ODI5LCAwLjgwMjQ5MSwgMS4wOTAxMiwgMS42NjU0NywgMi4wMjQ3OSIsIFwKLSAgICAgICAgICAiMC4zMTQ3NjcsIDAuMzU3ODY3LCAwLjYwMjE5LCAwLjgxNzg4LCAxLjEwNTQ2LCAxLjY4MDcxLCAyLjA0MDIxIiwgXAotICAgICAgICAgICIwLjMzOTAzNCwgMC4zODIxNDEsIDAuNjI2NDYyLCAwLjg0MTk1OSwgMS4xMjk2NiwgMS43MDUxMSwgMi4wNjQ0OCIsIFwKLSAgICAgICAgICAiMC4zNTk5MDUsIDAuNDAzMDIyLCAwLjY0NzM0NCwgMC44NjMwMzQsIDEuMTUwNjEsIDEuNzI1ODYsIDIuMDg1MzMiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTU5NzU2LCAwLjI0NjQzMywgMC43NDIxMzEsIDEuMTgxMTQsIDEuNzY5MjIsIDIuOTM5OTYsIDMuNjYzODkiLCBcCi0gICAgICAgICAgIjAuMTYwMTE3LCAwLjI0Njg3NSwgMC43NDM5MzQsIDEuMTgwMjcsIDEuNzY5MTQsIDIuOTM0MjMsIDMuNjYzODEiLCBcCi0gICAgICAgICAgIjAuMTU5NzcyLCAwLjI0NjE2LCAwLjc0MjgzOSwgMS4xODM0OCwgMS43NjQyOCwgMi45MzQ4OSwgMy42NzIyNiIsIFwKLSAgICAgICAgICAiMC4xNjAxLCAwLjI0Njg3MywgMC43NDIzODgsIDEuMTgzNDcsIDEuNzY5LCAyLjkzMzQsIDMuNjcyMTEiLCBcCi0gICAgICAgICAgIjAuMTU5NzU5LCAwLjI0Njg2OSwgMC43NDI4NTQsIDEuMTgzNDUsIDEuNzY5MjEsIDIuOTM0NjgsIDMuNjcyNDEiLCBcCi0gICAgICAgICAgIjAuMTU5NzYxLCAwLjI0Njg2NywgMC43NDQwNjcsIDEuMTgxMjEsIDEuNzY4NzMsIDIuOTMzNDEsIDMuNjY2NDQiLCBcCi0gICAgICAgICAgIjAuMTU5NzcxLCAwLjI0NjQ3NCwgMC43NDI4MTIsIDEuMTgzNDQsIDEuNzY5MiwgMi45MzUzNywgMy42NzIyNiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMDI1NDgsIDAuMzUyMDAxLCAwLjYzMTk1NiwgMC44Nzg3NjYsIDEuMjA3OTEsIDEuODY2MTMsIDIuMjc3NTYiLCBcCi0gICAgICAgICAgIjAuMzE0MjkyLCAwLjM2Mzc1NywgMC42NDM2NTUsIDAuODkwNTA1LCAxLjIxOTY1LCAxLjg3Nzc5LCAyLjI4OTI4IiwgXAotICAgICAgICAgICIwLjMyOTYwMSwgMC4zNzkwNjYsIDAuNjU4OTYsIDAuOTA1ODEzLCAxLjIzNDk3LCAxLjg5MzExLCAyLjMwNDU4IiwgXAotICAgICAgICAgICIwLjM0NTA5MSwgMC4zOTQ1NDgsIDAuNjc0NDQ1LCAwLjkyMTI5NiwgMS4yNTA0NSwgMS45MDg1NywgMi4zMjAwNyIsIFwKLSAgICAgICAgICAiMC4zNjA0ODQsIDAuNDA5OTQ3LCAwLjY4OTg5MSwgMC45MzY2OTYsIDEuMjY1ODQsIDEuOTI0MDEsIDIuMzM1NDgiLCBcCi0gICAgICAgICAgIjAuMzg0ODA4LCAwLjQzNDI3MSwgMC43MTQyMTEsIDAuOTYxMDIxLCAxLjI5MDE2LCAxLjk0ODQzLCAyLjM1OTgxIiwgXAotICAgICAgICAgICIwLjQwNTg3OCwgMC40NTUzMzcsIDAuNzM1MjU4LCAwLjk4MjA5NSwgMS4zMTEyNSwgMS45Njk2MSwgMi4zODA5MSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNzc4ODQsIDAuMjc1NzI5LCAwLjgzMDIzOSwgMS4zMjM0OSwgMS45Nzg2NywgMy4yODgzNiwgNC4xMDAzIiwgXAotICAgICAgICAgICIwLjE3Nzc3MiwgMC4yNzU3MzMsIDAuODMxMzk3LCAxLjMyMzU0LCAxLjk3ODYzLCAzLjI5MTA3LCA0LjA5OTI4IiwgXAotICAgICAgICAgICIwLjE3Nzc4LCAwLjI3NTczMiwgMC44MzIxOTQsIDEuMzIzNTYsIDEuOTc4NTksIDMuMjg1MzgsIDQuMTAxNzYiLCBcCi0gICAgICAgICAgIjAuMTc3MzUsIDAuMjc1NzE2LCAwLjgzMTMsIDEuMzIzNTMsIDEuOTc4NjIsIDMuMjkxMjcsIDQuMDk5OCIsIFwKLSAgICAgICAgICAiMC4xNzczNTYsIDAuMjc1NzA4LCAwLjgyOTY1MiwgMS4zMjM1MSwgMS45Nzg2NSwgMy4yOTA0NiwgNC4wOTgxOSIsIFwKLSAgICAgICAgICAiMC4xNzc1NSwgMC4yNzU3MDYsIDAuODMxMTU4LCAxLjMyMzUxLCAxLjk3ODcsIDMuMjg4NjcsIDQuMDk3ODIiLCBcCi0gICAgICAgICAgIjAuMTc3OSwgMC4yNzU3MywgMC44Mjk0NzIsIDEuMzIzNDUsIDEuOTc5OSwgMy4yODI4MSwgNC4xMDU0OCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDU3MjUsIDAuMDA1NzIxLCAwLjAwNTcwMiwgMC4wMDU2OTQsIDAuMDA1NjksIDAuMDA1Njg2LCAwLjAwNTY4NSIsIFwKLSAgICAgICAgICAiMC4wMDU3MTQsIDAuMDA1NzEsIDAuMDA1NjkxLCAwLjAwNTY4NCwgMC4wMDU2OCwgMC4wMDU2NzQsIDAuMDA1Njc0IiwgXAotICAgICAgICAgICIwLjAwNTcwMSwgMC4wMDU2OTcsIDAuMDA1Njc4LCAwLjAwNTY3MiwgMC4wMDU2NjYsIDAuMDA1NjYyLCAwLjAwNTY2MSIsIFwKLSAgICAgICAgICAiMC4wMDU2OTIsIDAuMDA1Njg4LCAwLjAwNTY2OSwgMC4wMDU2NjIsIDAuMDA1NjU3LCAwLjAwNTY1MiwgMC4wMDU2NTEiLCBcCi0gICAgICAgICAgIjAuMDA1Njg1LCAwLjAwNTY4MSwgMC4wMDU2NjIsIDAuMDA1NjU1LCAwLjAwNTY1LCAwLjAwNTY0NiwgMC4wMDU2NDUiLCBcCi0gICAgICAgICAgIjAuMDA1NjcyLCAwLjAwNTY2OSwgMC4wMDU2NSwgMC4wMDU2NDMsIDAuMDA1NjM4LCAwLjAwNTYzMywgMC4wMDU2MzMiLCBcCi0gICAgICAgICAgIjAuMDA1NjY2LCAwLjAwNTY2MywgMC4wMDU2NDUsIDAuMDA1NjM4LCAwLjAwNTYzMywgMC4wMDU2MjgsIDAuMDA1NjI3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2MDYsIDAuMDA2MDY2LCAwLjAwNjA3MywgMC4wMDYwNzUsIDAuMDA2MDc2LCAwLjAwNjA3NywgMC4wMDYwNzciLCBcCi0gICAgICAgICAgIjAuMDA2MDQ2LCAwLjAwNjA1MSwgMC4wMDYwNTksIDAuMDA2MDYsIDAuMDA2MDYyLCAwLjAwNjA2MiwgMC4wMDYwNjMiLCBcCi0gICAgICAgICAgIjAuMDA2MDM2LCAwLjAwNjA0MSwgMC4wMDYwNDksIDAuMDA2MDUsIDAuMDA2MDUyLCAwLjAwNjA1MiwgMC4wMDYwNTMiLCBcCi0gICAgICAgICAgIjAuMDA2MDI3LCAwLjAwNjAzMywgMC4wMDYwNCwgMC4wMDYwNDIsIDAuMDA2MDQzLCAwLjAwNjA0NCwgMC4wMDYwNDQiLCBcCi0gICAgICAgICAgIjAuMDA2MDI1LCAwLjAwNjAzMSwgMC4wMDYwMzgsIDAuMDA2MDQsIDAuMDA2MDQxLCAwLjAwNjA0MiwgMC4wMDYwNDMiLCBcCi0gICAgICAgICAgIjAuMDA2MDIzLCAwLjAwNjAyOSwgMC4wMDYwMzYsIDAuMDA2MDM4LCAwLjAwNjAzOSwgMC4wMDYwNCwgMC4wMDYwNCIsIFwKLSAgICAgICAgICAiMC4wMDYwMywgMC4wMDYwMzYsIDAuMDA2MDQzLCAwLjAwNjA0NSwgMC4wMDYwNDYsIDAuMDA2MDQ2LCAwLjAwNjA0NyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUzApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTU0OTc5OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTU0ODM1OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTU0OTc5OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNjEyNSwgMC4wMDYxMTksIDAuMDA2MTEzLCAwLjAwNjEwOSwgMC4wMDYxMDYsIDAuMDA2MTAzLCAwLjAwNjEwMSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNzIyMSwgMC4wMDcxOTksIDAuMDA3MTgzLCAwLjAwNzE3NCwgMC4wMDcxNjYsIDAuMDA3MTU4LCAwLjAwNzE1NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhU0UiOwotICAgICAgc2RmX2NvbmQgOiAiU0UgPT0gMSdiMCI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDY4NzUsIC0wLjA1NzUsIC0wLjA0NSwgLTAuMDMyNSwgLTAuMDI2MjUsIC0wLjAxLCAwLjAxMTI1IiwgXAotICAgICAgICAgICItMC4wOCwgLTAuMDY4NzUsIC0wLjA1NjI1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDIxMjUsIDAiLCBcCi0gICAgICAgICAgIi0wLjA5ODc1LCAtMC4wODc1LCAtMC4wNzUsIC0wLjA2MjUsIC0wLjA1LCAtMC4wMzM3NSwgLTAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjExMTI1LCAtMC4xLCAtMC4wODc1LCAtMC4wNzUsIC0wLjA2ODc1LCAtMC4wNTI1LCAtMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMTIzNzUsIC0wLjExMjUsIC0wLjEwNjI1LCAtMC4wOTM3NSwgLTAuMDgxMjUsIC0wLjA2NSwgLTAuMDUiLCBcCi0gICAgICAgICAgIi0wLjE0NjI1LCAtMC4xMzUsIC0wLjEyMjUsIC0wLjExLCAtMC4xMDM3NSwgLTAuMDg3NSwgLTAuMDcyNSIsIFwKLSAgICAgICAgICAiLTAuMTY3NSwgLTAuMTU2MjUsIC0wLjE0Mzc1LCAtMC4xMzEyNSwgLTAuMTE4NzUsIC0wLjEwMjUsIC0wLjA4NzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMzEyNSwgLTAuMDIsIC0wLjAwNzUsIC0wLjAwMTI1LCAwLjAxMTI1LCAwLjAyNzUsIDAuMDQ4NzUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAsIDAuMDIyNSwgMC4wMzc1IiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA0Mzc1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIDAuMDAzNzUsIDAuMDI1IiwgXAotICAgICAgICAgICItMC4wNjc1LCAtMC4wNTYyNSwgLTAuMDQzNzUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAwODc1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjA4LCAtMC4wNjg3NSwgLTAuMDU2MjUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMjEyNSwgMCIsIFwKLSAgICAgICAgICAiLTAuMDk2MjUsIC0wLjA4NSwgLTAuMDcyNSwgLTAuMDY2MjUsIC0wLjA1Mzc1LCAtMC4wMzc1LCAtMC4wMjI1IiwgXAotICAgICAgICAgICItMC4xMTEyNSwgLTAuMSwgLTAuMDg3NSwgLTAuMDc1LCAtMC4wNjg3NSwgLTAuMDUyNSwgLTAuMDM3NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIVNFIjsKLSAgICAgIHNkZl9jb25kIDogIlNFID09IDEnYjAiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI2MjUsIDAuMjQ1LCAwLjIzMjUsIDAuMjEzNzUsIDAuMjAxMjUsIDAuMTg1LCAwLjE3IiwgXAotICAgICAgICAgICIwLjI2NzUsIDAuMjU2MjUsIDAuMjQzNzUsIDAuMjI1LCAwLjIxMjUsIDAuMTk2MjUsIDAuMTgxMjUiLCBcCi0gICAgICAgICAgIjAuMjg2MjUsIDAuMjY4NzUsIDAuMjU2MjUsIDAuMjM3NSwgMC4yMjUsIDAuMjA4NzUsIDAuMTkzNzUiLCBcCi0gICAgICAgICAgIjAuMjk4NzUsIDAuMjgxMjUsIDAuMjY4NzUsIDAuMjU2MjUsIDAuMjM3NSwgMC4yMjEyNSwgMC4yMDYyNSIsIFwKLSAgICAgICAgICAiMC4zMTEyNSwgMC4zLCAwLjI4MTI1LCAwLjI2ODc1LCAwLjI1NjI1LCAwLjIzMzc1LCAwLjIxODc1IiwgXAotICAgICAgICAgICIwLjMzMzc1LCAwLjMxNjI1LCAwLjMwMzc1LCAwLjI4NSwgMC4yNzI1LCAwLjI1NjI1LCAwLjI0MTI1IiwgXAotICAgICAgICAgICIwLjM0ODc1LCAwLjMzNzUsIDAuMzE4NzUsIDAuMzA2MjUsIDAuMjkzNzUsIDAuMjc3NSwgMC4yNjI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjkzNzUsIDAuMjgyNSwgMC4yNjM3NSwgMC4yNTEyNSwgMC4yMzg3NSwgMC4yMTYyNSwgMC4yMDc1IiwgXAotICAgICAgICAgICIwLjMwNSwgMC4yOTM3NSwgMC4yNzUsIDAuMjYyNSwgMC4yNSwgMC4yMjc1LCAwLjIxODc1IiwgXAotICAgICAgICAgICIwLjMxNzUsIDAuMzA2MjUsIDAuMjg3NSwgMC4yNzUsIDAuMjYyNSwgMC4yNDYyNSwgMC4yMzEyNSIsIFwKLSAgICAgICAgICAiMC4zMzYyNSwgMC4zMTg3NSwgMC4zMDYyNSwgMC4yODc1LCAwLjI3NSwgMC4yNTg3NSwgMC4yNDM3NSIsIFwKLSAgICAgICAgICAiMC4zNDg3NSwgMC4zMzc1LCAwLjMxODc1LCAwLjMwNjI1LCAwLjI5Mzc1LCAwLjI3MTI1LCAwLjI1NjI1IiwgXAotICAgICAgICAgICIwLjM2NSwgMC4zNTM3NSwgMC4zMzUsIDAuMzIyNSwgMC4zMSwgMC4yOTM3NSwgMC4yNzg3NSIsIFwKLSAgICAgICAgICAiMC4zOCwgMC4zNjg3NSwgMC4zNSwgMC4zMzc1LCAwLjMyNSwgMC4zMDg3NSwgMC4yOTM3NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oU0UpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTQ0NDA1OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTQ0MzIyOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTQ0NDA1OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNDQ2MSwgMC4wMDQ0NTksIDAuMDA0NDU5LCAwLjAwNDQ1OSwgMC4wMDQ0NiwgMC4wMDQ0NTksIDAuMDA0NDU4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA1NTI3LCAwLjAwNTUwMiwgMC4wMDU0ODMsIDAuMDA1NDczLCAwLjAwNTQ2NiwgMC4wMDU0NTYsIDAuMDA1NDUyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEMCYhRDEmIVMwJlNJIjsKLSAgICAgIHNkZl9jb25kIDogIkQwX0VRXzBfQU5fRDFfRVFfMF9BTl9TMF9FUV8wX0FOX1NJX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDg3NSwgLTAuMDc2MjUsIC0wLjA2Mzc1LCAtMC4wNTEyNSwgLTAuMDM4NzUsIC0wLjAyODc1LCAtMC4wMTM3NSIsIFwKLSAgICAgICAgICAiLTAuMDk4NzUsIC0wLjA4NzUsIC0wLjA3NSwgLTAuMDYyNSwgLTAuMDUsIC0wLjAzMzc1LCAtMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjExMTI1LCAtMC4xLCAtMC4wODc1LCAtMC4wNzUsIC0wLjA2ODc1LCAtMC4wNDYyNSwgLTAuMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMTIzNzUsIC0wLjExMjUsIC0wLjEsIC0wLjA4NzUsIC0wLjA4MTI1LCAtMC4wNjUsIC0wLjA1IiwgXAotICAgICAgICAgICItMC4xMzYyNSwgLTAuMTI1LCAtMC4xMTI1LCAtMC4xLCAtMC4wOTM3NSwgLTAuMDc3NSwgLTAuMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMTU4NzUsIC0wLjE0NzUsIC0wLjEzNSwgLTAuMTIyNSwgLTAuMTE2MjUsIC0wLjEsIC0wLjA4NSIsIFwKLSAgICAgICAgICAiLTAuMTgsIC0wLjE2ODc1LCAtMC4xNTYyNSwgLTAuMTQzNzUsIC0wLjEzMTI1LCAtMC4xMTUsIC0wLjEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLCAwLjAxMTI1LCAwLjAyMzc1LCAwLjA0MjUsIDAuMDU1LCAwLjA3NzUsIDAuMDkyNSIsIFwKLSAgICAgICAgICAiLTAuMDExMjUsIDAsIDAuMDE4NzUsIDAuMDMxMjUsIDAuMDQzNzUsIDAuMDY2MjUsIDAuMDgxMjUiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTI1LCAwLjAwNjI1LCAwLjAxODc1LCAwLjAzMTI1LCAwLjA1Mzc1LCAwLjA2ODc1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDI1LCAtMC4wMDYyNSwgMC4wMDYyNSwgMC4wMTg3NSwgMC4wNDEyNSwgMC4wNjI1IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLjAwNjI1LCAwLjAyODc1LCAwLjA1IiwgXAotICAgICAgICAgICItMC4wNjUsIC0wLjA1Mzc1LCAtMC4wNDEyNSwgLTAuMDIyNSwgLTAuMDEsIDAuMDEyNSwgMC4wMjc1IiwgXAotICAgICAgICAgICItMC4wNzM3NSwgLTAuMDYyNSwgLTAuMDUsIC0wLjAzNzUsIC0wLjAyNSwgLTAuMDAyNSwgMC4wMTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEMCZEMSZTMCYhU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRDBfRVFfMF9BTl9EMV9FUV8xX0FOX1MwX0VRXzFfQU5fU0lfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMzEyNSwgLTAuMDIsIC0wLjAwNzUsIDAuMDExMjUsIDAuMDIzNzUsIDAuMDQ2MjUsIDAuMDY3NSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDMxMjUsIC0wLjAxODc1LCAtMC4wMDYyNSwgMC4wMTI1LCAwLjAzNSwgMC4wNSIsIFwKLSAgICAgICAgICAiLTAuMDYxMjUsIC0wLjA1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLjAxNjI1LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjA3Mzc1LCAtMC4wNjI1LCAtMC4wNSwgLTAuMDM3NSwgLTAuMDE4NzUsIDAuMDAzNzUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjA5MjUsIC0wLjA4MTI1LCAtMC4wNjI1LCAtMC4wNSwgLTAuMDM3NSwgLTAuMDE1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICItMC4xMTUsIC0wLjEwMzc1LCAtMC4wODUsIC0wLjA3MjUsIC0wLjA2LCAtMC4wMzc1LCAtMC4wMTYyNSIsIFwKLSAgICAgICAgICAiLTAuMTMsIC0wLjExODc1LCAtMC4xMDYyNSwgLTAuMDkzNzUsIC0wLjA3NSwgLTAuMDUyNSwgLTAuMDMxMjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4xMTg3NSwgLTAuMTA3NSwgLTAuMTAxMjUsIC0wLjA4ODc1LCAtMC4wNzYyNSwgLTAuMDY2MjUsIC0wLjA1MTI1IiwgXAotICAgICAgICAgICItMC4xMywgLTAuMTI1LCAtMC4xMTI1LCAtMC4xLCAtMC4wODc1LCAtMC4wNzc1LCAtMC4wNjI1IiwgXAotICAgICAgICAgICItMC4xNDg3NSwgLTAuMTM3NSwgLTAuMTI1LCAtMC4xMTI1LCAtMC4xMDYyNSwgLTAuMDksIC0wLjA4MTI1IiwgXAotICAgICAgICAgICItMC4xNjEyNSwgLTAuMTUsIC0wLjEzNzUsIC0wLjEzMTI1LCAtMC4xMTg3NSwgLTAuMTAyNSwgLTAuMDkzNzUiLCBcCi0gICAgICAgICAgIi0wLjE3Mzc1LCAtMC4xNjI1LCAtMC4xNTYyNSwgLTAuMTQzNzUsIC0wLjEzMTI1LCAtMC4xMjEyNSwgLTAuMTA2MjUiLCBcCi0gICAgICAgICAgIi0wLjE5NjI1LCAtMC4xODUsIC0wLjE3ODc1LCAtMC4xNjYyNSwgLTAuMTUzNzUsIC0wLjE0Mzc1LCAtMC4xMjg3NSIsIFwKLSAgICAgICAgICAiLTAuMjE3NSwgLTAuMjA2MjUsIC0wLjE5Mzc1LCAtMC4xODEyNSwgLTAuMTc1LCAtMC4xNTg3NSwgLTAuMTQzNzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEMCYhRDEmIVMwJlNJIjsKLSAgICAgIHNkZl9jb25kIDogIkQwX0VRXzBfQU5fRDFfRVFfMF9BTl9TMF9FUV8wX0FOX1NJX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTQzNzUsIDAuMTMyNSwgMC4xMiwgMC4xMDc1LCAwLjA5NSwgMC4wNzg3NSwgMC4wNjM3NSIsIFwKLSAgICAgICAgICAiMC4xNTUsIDAuMTQzNzUsIDAuMTMxMjUsIDAuMTE4NzUsIDAuMTA2MjUsIDAuMDksIDAuMDc1IiwgXAotICAgICAgICAgICIwLjE2NzUsIDAuMTU2MjUsIDAuMTQzNzUsIDAuMTMxMjUsIDAuMTE4NzUsIDAuMTAyNSwgMC4wODc1IiwgXAotICAgICAgICAgICIwLjE4NjI1LCAwLjE2ODc1LCAwLjE1NjI1LCAwLjE0Mzc1LCAwLjEzMTI1LCAwLjExNSwgMC4xIiwgXAotICAgICAgICAgICIwLjE5ODc1LCAwLjE4NzUsIDAuMTY4NzUsIDAuMTU2MjUsIDAuMTQzNzUsIDAuMTI3NSwgMC4xMTI1IiwgXAotICAgICAgICAgICIwLjIyMTI1LCAwLjIwMzc1LCAwLjE5MTI1LCAwLjE3ODc1LCAwLjE2NjI1LCAwLjE1LCAwLjEzNSIsIFwKLSAgICAgICAgICAiMC4yMzYyNSwgMC4yMjUsIDAuMjEyNSwgMC4xOTM3NSwgMC4xODEyNSwgMC4xNjUsIDAuMTU2MjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTg3NSwgMC4xMDc1LCAwLjA4ODc1LCAwLjA3LCAwLjA1NzUsIDAuMDI4NzUsIDAuMDEzNzUiLCBcCi0gICAgICAgICAgIjAuMTMsIDAuMTEyNSwgMC4xLCAwLjA4MTI1LCAwLjA2ODc1LCAwLjA0LCAwLjAxODc1IiwgXAotICAgICAgICAgICIwLjE0MjUsIDAuMTI1LCAwLjExMjUsIDAuMDkzNzUsIDAuMDgxMjUsIDAuMDUyNSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4xNTUsIDAuMTM3NSwgMC4xMjUsIDAuMTA2MjUsIDAuMDkzNzUsIDAuMDY1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjE2NzUsIDAuMTUsIDAuMTM3NSwgMC4xMTg3NSwgMC4xMDYyNSwgMC4wNzc1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICIwLjE4Mzc1LCAwLjE3MjUsIDAuMTUzNzUsIDAuMTQxMjUsIDAuMTIyNSwgMC4xLCAwLjA3ODc1IiwgXAotICAgICAgICAgICIwLjIwNSwgMC4xODc1LCAwLjE3NSwgMC4xNTYyNSwgMC4xNDM3NSwgMC4xMTUsIDAuMDkzNzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEMCZEMSZTMCYhU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRDBfRVFfMF9BTl9EMV9FUV8xX0FOX1MwX0VRXzFfQU5fU0lfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTg3NSwgMC4xMDc1LCAwLjA4ODc1LCAwLjA3NjI1LCAwLjA1NzUsIDAuMDM1LCAwLjAxMzc1IiwgXAotICAgICAgICAgICIwLjEzLCAwLjExODc1LCAwLjEwNjI1LCAwLjA4NzUsIDAuMDc1LCAwLjA0NjI1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiMC4xNDg3NSwgMC4xMzc1LCAwLjExODc1LCAwLjEwNjI1LCAwLjA4NzUsIDAuMDY1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjE2MTI1LCAwLjE1LCAwLjEzNzUsIDAuMTE4NzUsIDAuMTA2MjUsIDAuMDc3NSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiMC4xOCwgMC4xNjg3NSwgMC4xNSwgMC4xMzEyNSwgMC4xMTg3NSwgMC4wOTYyNSwgMC4wNzUiLCBcCi0gICAgICAgICAgIjAuMjAyNSwgMC4xOTEyNSwgMC4xNzI1LCAwLjE1Mzc1LCAwLjE0MTI1LCAwLjExODc1LCAwLjA5NzUiLCBcCi0gICAgICAgICAgIjAuMjE3NSwgMC4yMDYyNSwgMC4xODc1LCAwLjE3NSwgMC4xNjI1LCAwLjEzMzc1LCAwLjExMjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yLCAwLjE4ODc1LCAwLjE3NjI1LCAwLjE1NzUsIDAuMTQ1LCAwLjEyODc1LCAwLjExMzc1IiwgXAotICAgICAgICAgICIwLjIxNzUsIDAuMiwgMC4xODc1LCAwLjE2ODc1LCAwLjE1NjI1LCAwLjE0LCAwLjEyNSIsIFwKLSAgICAgICAgICAiMC4yMywgMC4yMTg3NSwgMC4yLCAwLjE4NzUsIDAuMTc1LCAwLjE1MjUsIDAuMTQzNzUiLCBcCi0gICAgICAgICAgIjAuMjQyNSwgMC4yMzEyNSwgMC4yMTI1LCAwLjIsIDAuMTg3NSwgMC4xNzEyNSwgMC4xNTYyNSIsIFwKLSAgICAgICAgICAiMC4yNjEyNSwgMC4yNDM3NSwgMC4yMzEyNSwgMC4yMTI1LCAwLjIsIDAuMTgzNzUsIDAuMTY4NzUiLCBcCi0gICAgICAgICAgIjAuMjc3NSwgMC4yNjYyNSwgMC4yNTM3NSwgMC4yMzUsIDAuMjIyNSwgMC4yMDYyNSwgMC4xOTEyNSIsIFwKLSAgICAgICAgICAiMC4yOTg3NSwgMC4yODEyNSwgMC4yNjg3NSwgMC4yNTYyNSwgMC4yNDM3NSwgMC4yMjEyNSwgMC4yMTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTSSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwODk0NTM0OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDg5MTI2NDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA4OTQ1MzQ7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyOTQsIDAuMDAyOTIxLCAwLjAwMjkxMSwgMC4wMDI5MDUsIDAuMDAyODk5LCAwLjAwMjg5MywgMC4wMDI4ODkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDQ4NTEsIDAuMDA0ODQxLCAwLjAwNDgzNiwgMC4wMDQ4MzIsIDAuMDA0ODI5LCAwLjAwNDgyNSwgMC4wMDQ4MjMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiU0UiOwotICAgICAgc2RmX2NvbmQgOiAiU0UgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMSwgLTAuMDg4NzUsIC0wLjA3NjI1LCAtMC4wNjM3NSwgLTAuMDU3NSwgLTAuMDQxMjUsIC0wLjAyNjI1IiwgXAotICAgICAgICAgICItMC4xMTEyNSwgLTAuMSwgLTAuMDg3NSwgLTAuMDc1LCAtMC4wNjg3NSwgLTAuMDUyNSwgLTAuMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMTIzNzUsIC0wLjExMjUsIC0wLjEsIC0wLjA4NzUsIC0wLjA4MTI1LCAtMC4wNjUsIC0wLjA1IiwgXAotICAgICAgICAgICItMC4xMzYyNSwgLTAuMTI1LCAtMC4xMTI1LCAtMC4xMDYyNSwgLTAuMDkzNzUsIC0wLjA3NzUsIC0wLjA2MjUiLCBcCi0gICAgICAgICAgIi0wLjE0ODc1LCAtMC4xMzc1LCAtMC4xMzEyNSwgLTAuMTE4NzUsIC0wLjEwNjI1LCAtMC4wOSwgLTAuMDc1IiwgXAotICAgICAgICAgICItMC4xNzEyNSwgLTAuMTYsIC0wLjE0NzUsIC0wLjE0MTI1LCAtMC4xMjg3NSwgLTAuMTEyNSwgLTAuMDk3NSIsIFwKLSAgICAgICAgICAiLTAuMTkyNSwgLTAuMTgxMjUsIC0wLjE2ODc1LCAtMC4xNTYyNSwgLTAuMTQzNzUsIC0wLjEyNzUsIC0wLjExODc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMCwgMC4wMTEyNSwgMC4wMjM3NSwgMC4wMzYyNSwgMC4wNTUsIDAuMDcxMjUsIDAuMDkyNSIsIFwKLSAgICAgICAgICAiLTAuMDExMjUsIDAsIDAuMDEyNSwgMC4wMjUsIDAuMDQzNzUsIDAuMDY2MjUsIDAuMDgxMjUiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTI1LCAwLCAwLjAxMjUsIDAuMDMxMjUsIDAuMDUzNzUsIDAuMDY4NzUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMjUsIC0wLjAxMjUsIDAsIDAuMDE4NzUsIDAuMDQxMjUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAwNjI1LCAwLjAwNjI1LCAwLjAyODc1LCAwLjA1IiwgXAotICAgICAgICAgICItMC4wNjUsIC0wLjA1Mzc1LCAtMC4wNDEyNSwgLTAuMDI4NzUsIC0wLjAxLCAwLjAxMjUsIDAuMDI3NSIsIFwKLSAgICAgICAgICAiLTAuMDgsIC0wLjA2ODc1LCAtMC4wNTYyNSwgLTAuMDQzNzUsIC0wLjAyNSwgLTAuMDAyNSwgMC4wMTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJTRSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNTYyNSwgMC4xNDUsIDAuMTMyNSwgMC4xMiwgMC4xMDc1LCAwLjA5MTI1LCAwLjA3NjI1IiwgXAotICAgICAgICAgICIwLjE2NzUsIDAuMTU2MjUsIDAuMTQzNzUsIDAuMTMxMjUsIDAuMTE4NzUsIDAuMTAyNSwgMC4wODc1IiwgXAotICAgICAgICAgICIwLjE4NjI1LCAwLjE2ODc1LCAwLjE1NjI1LCAwLjE0Mzc1LCAwLjEzMTI1LCAwLjExNSwgMC4xIiwgXAotICAgICAgICAgICIwLjE5ODc1LCAwLjE4NzUsIDAuMTY4NzUsIDAuMTU2MjUsIDAuMTQzNzUsIDAuMTI3NSwgMC4xMTI1IiwgXAotICAgICAgICAgICIwLjIxMTI1LCAwLjIsIDAuMTgxMjUsIDAuMTY4NzUsIDAuMTU2MjUsIDAuMTQsIDAuMTI1IiwgXAotICAgICAgICAgICIwLjIzMzc1LCAwLjIyMjUsIDAuMjAzNzUsIDAuMTkxMjUsIDAuMTc4NzUsIDAuMTYyNSwgMC4xNDc1IiwgXAotICAgICAgICAgICIwLjI0ODc1LCAwLjIzNzUsIDAuMjI1LCAwLjIwNjI1LCAwLjIsIDAuMTgzNzUsIDAuMTY4NzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODc1LCAwLjA3NjI1LCAwLjA2Mzc1LCAwLjA0NSwgMC4wMzI1LCAwLjAwMzc1LCAtMC4wMTc1IiwgXAotICAgICAgICAgICIwLjA5ODc1LCAwLjA4NzUsIDAuMDc1LCAwLjA1NjI1LCAwLjA0Mzc1LCAwLjAxNSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMTExMjUsIDAuMSwgMC4wODc1LCAwLjA2ODc1LCAwLjA1NjI1LCAwLjAyNzUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMTIzNzUsIDAuMTEyNSwgMC4xLCAwLjA4MTI1LCAwLjA2ODc1LCAwLjA0LCAwLjAxODc1IiwgXAotICAgICAgICAgICIwLjEzNjI1LCAwLjEyNSwgMC4xMTI1LCAwLjA5Mzc1LCAwLjA4MTI1LCAwLjA1MjUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMTU4NzUsIDAuMTQ3NSwgMC4xMjg3NSwgMC4xMTYyNSwgMC4wOTc1LCAwLjA3NSwgMC4wNTM3NSIsIFwKLSAgICAgICAgICAiMC4xNzM3NSwgMC4xNjI1LCAwLjE0Mzc1LCAwLjEzMTI1LCAwLjExMjUsIDAuMDksIDAuMDY4NzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IFNNREZGSFFYMiAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKFNNREZGSFFYMikgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjQ5MTY2MTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBmZiAoTjMwLFFCSU5UKSB7Ci0gICAgbmV4dF9zdGF0ZSA6ICIoKFNFIFNJKSArICghU0UgKChTMCBEMSkgKyAoIVMwIEQwKSkpKSI7Ci0gICAgY2xvY2tlZF9vbiA6ICJDSyI7Ci0gIH0KLSAgcGluKENLKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA1ODA2MTI7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNTgwMzAzOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDU4MDYxMjsKLSAgICBjbG9jayA6IHRydWU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyNjk5LCAwLjAwMjY4NiwgMC4wMDI2NzcsIDAuMDAyNjcsIDAuMDAyNjY0LCAwLjAwMjY1NywgMC4wMDI2NTUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDU5MTksIDAuMDA1OTEsIDAuMDA1OTAyLCAwLjAwNTg5NSwgMC4wMDU4OTUsIDAuMDA1OSwgMC4wMDU5MDIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFEMCYhRDEmIVMwJiFTRSYhU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRDBfRVFfMF9BTl9EMV9FUV8wX0FOX1MwX0VRXzBfQU5fU0VfRVFfMF9BTl9TSV9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMjY2NDMyLCAwLjI3ODE2OCwgMC4yOTM0NzcsIDAuMzA4OTM2LCAwLjMyNDMxOSwgMC4zNDg2NDgsIDAuMzY5NzIyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4yMDUwNTcsIDAuMjE2NjU4LCAwLjIzMTUzNCwgMC4yNDYzOTksIDAuMjYwOTk1LCAwLjI4NDE0NSwgMC4zMDMzODkiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEQwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA4Nzc5MjY7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwODc0NjgxOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDg3NzkyNjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDQwNywgMC4wMDQwNTIsIDAuMDA0MDQzLCAwLjAwNDAzOCwgMC4wMDQwMzMsIDAuMDA0MDI4LCAwLjAwNDAyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNjQyNCwgMC4wMDY0MTQsIDAuMDA2NDEsIDAuMDA2NDA3LCAwLjAwNjQwNCwgMC4wMDY0MDEsIDAuMDA2NCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhUzAmIVNFIjsKLSAgICAgIHNkZl9jb25kIDogIlMwX0VRXzBfQU5fU0VfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4xODc1LCAtMC4xNzYyNSwgLTAuMTcsIC0wLjE1NzUsIC0wLjE0NSwgLTAuMTM1LCAtMC4xMiIsIFwKLSAgICAgICAgICAiLTAuMTk4NzUsIC0wLjE4NzUsIC0wLjE4MTI1LCAtMC4xNjg3NSwgLTAuMTU2MjUsIC0wLjE0NjI1LCAtMC4xMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMjExMjUsIC0wLjIwNjI1LCAtMC4xOTM3NSwgLTAuMTgxMjUsIC0wLjE2ODc1LCAtMC4xNTg3NSwgLTAuMTQzNzUiLCBcCi0gICAgICAgICAgIi0wLjIzLCAtMC4yMTg3NSwgLTAuMjA2MjUsIC0wLjE5Mzc1LCAtMC4xODc1LCAtMC4xNzEyNSwgLTAuMTU2MjUiLCBcCi0gICAgICAgICAgIi0wLjI0MjUsIC0wLjIzMTI1LCAtMC4yMTg3NSwgLTAuMjA2MjUsIC0wLjIsIC0wLjE4Mzc1LCAtMC4xNzUiLCBcCi0gICAgICAgICAgIi0wLjI1ODc1LCAtMC4yNTM3NSwgLTAuMjQxMjUsIC0wLjIyODc1LCAtMC4yMjI1LCAtMC4yMDYyNSwgLTAuMTkxMjUiLCBcCi0gICAgICAgICAgIi0wLjI4LCAtMC4yNjg3NSwgLTAuMjYyNSwgLTAuMjUsIC0wLjIzNzUsIC0wLjIyMTI1LCAtMC4yMTI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDM3NSwgLTAuMDI2MjUsIC0wLjAxMzc1LCAtMC4wMDEyNSwgMC4wMDUsIDAuMDIxMjUsIDAuMDM2MjUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLjAxLCAwLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDYxMjUsIC0wLjA1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMDI1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjA3Mzc1LCAtMC4wNjI1LCAtMC4wNSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAxNSwgMCIsIFwKLSAgICAgICAgICAiLTAuMDg2MjUsIC0wLjA3NSwgLTAuMDYyNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wMjc1LCAtMC4wMTI1IiwgXAotICAgICAgICAgICItMC4xMDI1LCAtMC4wOTEyNSwgLTAuMDc4NzUsIC0wLjA3MjUsIC0wLjA2LCAtMC4wNDM3NSwgLTAuMDI4NzUiLCBcCi0gICAgICAgICAgIi0wLjExNzUsIC0wLjEwNjI1LCAtMC4wOTM3NSwgLTAuMDgxMjUsIC0wLjA3NSwgLTAuMDU4NzUsIC0wLjA0Mzc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhUzAmIVNFIjsKLSAgICAgIHNkZl9jb25kIDogIlMwX0VRXzBfQU5fU0VfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yODEyNSwgMC4yNywgMC4yNTEyNSwgMC4yMzI1LCAwLjIyLCAwLjIwMzc1LCAwLjE4ODc1IiwgXAotICAgICAgICAgICIwLjI5MjUsIDAuMjgxMjUsIDAuMjYyNSwgMC4yNDM3NSwgMC4yMzEyNSwgMC4yMTUsIDAuMiIsIFwKLSAgICAgICAgICAiMC4zMDUsIDAuMjkzNzUsIDAuMjc1LCAwLjI2MjUsIDAuMjQzNzUsIDAuMjI3NSwgMC4yMTI1IiwgXAotICAgICAgICAgICIwLjMxNzUsIDAuMzA2MjUsIDAuMjg3NSwgMC4yNzUsIDAuMjYyNSwgMC4yNCwgMC4yMjUiLCBcCi0gICAgICAgICAgIjAuMzMsIDAuMzE4NzUsIDAuMywgMC4yODc1LCAwLjI3NSwgMC4yNTI1LCAwLjIzNzUiLCBcCi0gICAgICAgICAgIjAuMzUyNSwgMC4zNDEyNSwgMC4zMjI1LCAwLjMxLCAwLjI5MTI1LCAwLjI3NSwgMC4yNiIsIFwKLSAgICAgICAgICAiMC4zNzM3NSwgMC4zNTYyNSwgMC4zNDM3NSwgMC4zMjUsIDAuMzEyNSwgMC4yOTYyNSwgMC4yODEyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE4NzUsIDAuMTc2MjUsIDAuMTU3NSwgMC4xNDUsIDAuMTI2MjUsIDAuMTAzNzUsIDAuMDgyNSIsIFwKLSAgICAgICAgICAiMC4xOTg3NSwgMC4xODc1LCAwLjE2ODc1LCAwLjE1NjI1LCAwLjEzNzUsIDAuMTE1LCAwLjA5Mzc1IiwgXAotICAgICAgICAgICIwLjIxMTI1LCAwLjIsIDAuMTgxMjUsIDAuMTY4NzUsIDAuMTUsIDAuMTI3NSwgMC4xMDYyNSIsIFwKLSAgICAgICAgICAiMC4yMjM3NSwgMC4yMTI1LCAwLjE5Mzc1LCAwLjE4MTI1LCAwLjE2MjUsIDAuMTQsIDAuMTE4NzUiLCBcCi0gICAgICAgICAgIjAuMjM2MjUsIDAuMjI1LCAwLjIwNjI1LCAwLjE5Mzc1LCAwLjE3NSwgMC4xNTI1LCAwLjEzMTI1IiwgXAotICAgICAgICAgICIwLjI1ODc1LCAwLjI0NzUsIDAuMjI4NzUsIDAuMjEsIDAuMTk3NSwgMC4xNjg3NSwgMC4xNDc1IiwgXAotICAgICAgICAgICIwLjI3Mzc1LCAwLjI2MjUsIDAuMjQzNzUsIDAuMjMxMjUsIDAuMjEyNSwgMC4xOSwgMC4xNjg3NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRDEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDg2ODY2NDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA4NjQ5MjU7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwODY4NjY0OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzg5MywgMC4wMDM4NzUsIDAuMDAzODY2LCAwLjAwMzg2MSwgMC4wMDM4NTYsIDAuMDAzODUxLCAwLjAwMzg0OCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNjYsIDAuMDA2NTksIDAuMDA2NTg2LCAwLjAwNjU4MywgMC4wMDY1ODEsIDAuMDA2NTc4LCAwLjAwNjU3NyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJTMCYhU0UiOwotICAgICAgc2RmX2NvbmQgOiAiUzBfRVFfMV9BTl9TRV9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjE4NzUsIC0wLjE3NjI1LCAtMC4xNjM3NSwgLTAuMTU3NSwgLTAuMTQ1LCAtMC4xMjg3NSwgLTAuMTIiLCBcCi0gICAgICAgICAgIi0wLjE5ODc1LCAtMC4xODc1LCAtMC4xNzUsIC0wLjE2ODc1LCAtMC4xNTYyNSwgLTAuMTQsIC0wLjEzMTI1IiwgXAotICAgICAgICAgICItMC4yMTEyNSwgLTAuMiwgLTAuMTkzNzUsIC0wLjE4MTI1LCAtMC4xNjg3NSwgLTAuMTU4NzUsIC0wLjE0Mzc1IiwgXAotICAgICAgICAgICItMC4yMjM3NSwgLTAuMjEyNSwgLTAuMjA2MjUsIC0wLjE5Mzc1LCAtMC4xODEyNSwgLTAuMTcxMjUsIC0wLjE1NjI1IiwgXAotICAgICAgICAgICItMC4yMzYyNSwgLTAuMjMxMjUsIC0wLjIxODc1LCAtMC4yMDYyNSwgLTAuMiwgLTAuMTgzNzUsIC0wLjE2ODc1IiwgXAotICAgICAgICAgICItMC4yNTg3NSwgLTAuMjQ3NSwgLTAuMjQxMjUsIC0wLjIyODc1LCAtMC4yMTYyNSwgLTAuMjA2MjUsIC0wLjE5MTI1IiwgXAotICAgICAgICAgICItMC4yOCwgLTAuMjY4NzUsIC0wLjI1NjI1LCAtMC4yNSwgLTAuMjM3NSwgLTAuMjIxMjUsIC0wLjIxMjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMzc1LCAtMC4wMjYyNSwgLTAuMDEzNzUsIC0wLjAwNzUsIDAuMDA1LCAwLjAyMTI1LCAwLjAzNjI1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDM3NSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAuMDEsIDAuMDI1IiwgXAotICAgICAgICAgICItMC4wNjEyNSwgLTAuMDUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgLTAuMDAyNSwgMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wNzM3NSwgLTAuMDYyNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wMzEyNSwgLTAuMDE1LCAwIiwgXAotICAgICAgICAgICItMC4wODYyNSwgLTAuMDc1LCAtMC4wNjI1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjAyNzUsIC0wLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjEwMjUsIC0wLjA5MTI1LCAtMC4wNzg3NSwgLTAuMDcyNSwgLTAuMDYsIC0wLjA0Mzc1LCAtMC4wMjg3NSIsIFwKLSAgICAgICAgICAiLTAuMTE3NSwgLTAuMTA2MjUsIC0wLjA5Mzc1LCAtMC4wODEyNSwgLTAuMDc1LCAtMC4wNTg3NSwgLTAuMDQzNzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlMwJiFTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJTMF9FUV8xX0FOX1NFX0VRXzAgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjgxMjUsIDAuMjYzNzUsIDAuMjUxMjUsIDAuMjMyNSwgMC4yMiwgMC4yMDM3NSwgMC4xODg3NSIsIFwKLSAgICAgICAgICAiMC4yOTI1LCAwLjI3NSwgMC4yNTYyNSwgMC4yNDM3NSwgMC4yMzEyNSwgMC4yMTUsIDAuMiIsIFwKLSAgICAgICAgICAiMC4zMDUsIDAuMjg3NSwgMC4yNzUsIDAuMjU2MjUsIDAuMjQzNzUsIDAuMjI3NSwgMC4yMTI1IiwgXAotICAgICAgICAgICIwLjMxNzUsIDAuMzA2MjUsIDAuMjg3NSwgMC4yNjg3NSwgMC4yNTYyNSwgMC4yNCwgMC4yMjUiLCBcCi0gICAgICAgICAgIjAuMzMsIDAuMzE4NzUsIDAuMywgMC4yODc1LCAwLjI2ODc1LCAwLjI1MjUsIDAuMjM3NSIsIFwKLSAgICAgICAgICAiMC4zNTI1LCAwLjM0MTI1LCAwLjMyMjUsIDAuMzAzNzUsIDAuMjkxMjUsIDAuMjc1LCAwLjI2IiwgXAotICAgICAgICAgICIwLjM2NzUsIDAuMzU2MjUsIDAuMzM3NSwgMC4zMjUsIDAuMzEyNSwgMC4yOSwgMC4yODEyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE4NzUsIDAuMTc2MjUsIDAuMTYzNzUsIDAuMTQ1LCAwLjEzMjUsIDAuMTAzNzUsIDAuMDgyNSIsIFwKLSAgICAgICAgICAiMC4xOTg3NSwgMC4xODc1LCAwLjE3NSwgMC4xNTYyNSwgMC4xNDM3NSwgMC4xMTUsIDAuMDkzNzUiLCBcCi0gICAgICAgICAgIjAuMjE3NSwgMC4yLCAwLjE4NzUsIDAuMTY4NzUsIDAuMTU2MjUsIDAuMTI3NSwgMC4xMDYyNSIsIFwKLSAgICAgICAgICAiMC4yMjM3NSwgMC4yMTI1LCAwLjIsIDAuMTgxMjUsIDAuMTY4NzUsIDAuMTQsIDAuMTE4NzUiLCBcCi0gICAgICAgICAgIjAuMjM2MjUsIDAuMjI1LCAwLjIxMjUsIDAuMTkzNzUsIDAuMTgxMjUsIDAuMTUyNSwgMC4xMzEyNSIsIFwKLSAgICAgICAgICAiMC4yNTg3NSwgMC4yNDc1LCAwLjIyODc1LCAwLjIxNjI1LCAwLjE5NzUsIDAuMTc1LCAwLjE1Mzc1IiwgXAotICAgICAgICAgICIwLjI3Mzc1LCAwLjI2MjUsIDAuMjQzNzUsIDAuMjMxMjUsIDAuMjEyNSwgMC4xOSwgMC4xNjg3NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjI1NTYxODsKLSAgICBmdW5jdGlvbiA6ICJOMzAiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5vbl91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcmlzaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIyNjI1OCwgMC40MDQ1MSwgMC41NDY4ODgsIDAuNzI0ODcyLCAwLjkwMjgxNSwgMS4wODA3OSwgMS4yNTg2OSIsIFwKLSAgICAgICAgICAiMC4yMzc3OTMsIDAuNDE2MDY4LCAwLjU1ODM4NCwgMC43MzY0MDUsIDAuOTE0MzU3LCAxLjA5MjI3LCAxLjI3MDMyIiwgXAotICAgICAgICAgICIwLjI1MzA1NywgMC40MzEzMDksIDAuNTczNjk0LCAwLjc1MTY3NSwgMC45Mjk2MTcsIDEuMTA3NiwgMS4yODU2MiIsIFwKLSAgICAgICAgICAiMC4yNjg2MjcsIDAuNDQ2ODc4LCAwLjU4OTI1NCwgMC43NjcyNDMsIDAuOTQ1MTg3LCAxLjEyMzE3LCAxLjMwMTE5IiwgXAotICAgICAgICAgICIwLjI4Mzk0MiwgMC40NjIyLCAwLjYwNDU3LCAwLjc4MjU2NiwgMC45NjA1MDgsIDEuMTM4NDgsIDEuMzE2NTEiLCBcCi0gICAgICAgICAgIjAuMzA4MjI3LCAwLjQ4NjQ4NiwgMC42Mjg4NDYsIDAuODA2ODUxLCAwLjk4NDc5MywgMS4xNjI3NywgMS4zNDA3MyIsIFwKLSAgICAgICAgICAiMC4zMjkwNTgsIDAuNTA3MzIzLCAwLjY0OTcwNCwgMC44Mjc2ODksIDEuMDA1NjMsIDEuMTgzNjEsIDEuMzYxNjQiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg4MDM0LCAwLjQ0NTkwNywgMC43MzY5NDIsIDEuMSwgMS40NjI4NSwgMS44MjU4NCwgMi4xODQ4MiIsIFwKLSAgICAgICAgICAiMC4wODgwMzUsIDAuNDQ2NzQ1LCAwLjczNjY0OCwgMS4wOTk5NywgMS40NjI5MSwgMS44MjU1LCAyLjE4ODc2IiwgXAotICAgICAgICAgICIwLjA4ODA2LCAwLjQ0NjU0NywgMC43MzY5MzUsIDEuMDk5OTgsIDEuNDYyODEsIDEuODI1OCwgMi4xODg2OSIsIFwKLSAgICAgICAgICAiMC4wODgwMjQsIDAuNDQ2NTUsIDAuNzM2ODk1LCAxLjA5OTk4LCAxLjQ2MjgzLCAxLjgyNTgyLCAyLjE4ODY4IiwgXAotICAgICAgICAgICIwLjA4ODA2LCAwLjQ0NjUzMSwgMC43MzY4NzYsIDEuMDk5OTgsIDEuNDYyODMsIDEuODI1ODEsIDIuMTg4NjgiLCBcCi0gICAgICAgICAgIjAuMDg4MDU5LCAwLjQ0NTg3NCwgMC43MzY4NDUsIDEuMDk5OTcsIDEuNDYyODMsIDEuODI1OCwgMi4xODg2NSIsIFwKLSAgICAgICAgICAiMC4wODgwNjQsIDAuNDQ2NTI3LCAwLjczNjkxNCwgMS4wOTk5NywgMS40NjI4MywgMS44MjU4MywgMi4xODg2NiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yNjY0MzIsIDAuNDczLCAwLjYzNzk4MSwgMC44NDQwMTEsIDEuMDUwMDcsIDEuMjU2MTUsIDEuNDYyMyIsIFwKLSAgICAgICAgICAiMC4yNzgxNjgsIDAuNDg0NzQzLCAwLjY0OTYyNCwgMC44NTU3MjQsIDEuMDYxNzksIDEuMjY3ODEsIDEuNDczOTUiLCBcCi0gICAgICAgICAgIjAuMjkzNDc4LCAwLjUwMDAzNSwgMC42NjUwMjMsIDAuODcxMDA0LCAxLjA3NzA3LCAxLjI4MzE3LCAxLjQ4OTE2IiwgXAotICAgICAgICAgICIwLjMwODkzNiwgMC41MTU0ODMsIDAuNjgwNDYyLCAwLjg4NjQ1OSwgMS4wOTI1NywgMS4yOTg2MiwgMS41MDQ3IiwgXAotICAgICAgICAgICIwLjMyNDMxOSwgMC41MzA4NzgsIDAuNjk1ODU2LCAwLjkwMTg2OSwgMS4xMDc5NywgMS4zMTQwMiwgMS41MjAwNyIsIFwKLSAgICAgICAgICAiMC4zNDg2NDgsIDAuNTU1MjA4LCAwLjcyMDE4NiwgMC45MjYyMjcsIDEuMTMyMywgMS4zMzgzNCwgMS41NDQzOCIsIFwKLSAgICAgICAgICAiMC4zNjk3MjIsIDAuNTc2Mjc3LCAwLjc0MTI1MywgMC45NDcyNTUsIDEuMTUzMzYsIDEuMzU5NDIsIDEuNTY1NTciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk3Mjk3LCAwLjUwNTk0MiwgMC44MzM4NSwgMS4yNDY0NiwgMS42NTc4OSwgMi4wNjkyLCAyLjQ3NjEiLCBcCi0gICAgICAgICAgIjAuMDk3MzEsIDAuNTA1OTc2LCAwLjgzNTI1NCwgMS4yNDY2MSwgMS42NTc5OSwgMi4wNjU3NCwgMi40ODA2OCIsIFwKLSAgICAgICAgICAiMC4wOTcyOTcsIDAuNTA1OTM5LCAwLjgzNDAxMSwgMS4yNDcxOSwgMS42NTYwOSwgMi4wNjkzMywgMi40NzYwMyIsIFwKLSAgICAgICAgICAiMC4wOTcyOTYsIDAuNTA1OTM3LCAwLjgzMjgyNCwgMS4yNDM5LCAxLjY1Nzc1LCAyLjA2OTI1LCAyLjQ4MDI3IiwgXAotICAgICAgICAgICIwLjA5NzMxMiwgMC41MDU5MzksIDAuODMyMzY2LCAxLjI0NTgsIDEuNjU3NzcsIDIuMDY5MjQsIDIuNDgwNTEiLCBcCi0gICAgICAgICAgIjAuMDk3MzExLCAwLjUwNTkzOSwgMC44MzI5LCAxLjI0NTM1LCAxLjY1Nzc2LCAyLjA2OTI1LCAyLjQ4MTAyIiwgXAotICAgICAgICAgICIwLjA5NzI5NCwgMC41MDU5MzYsIDAuODMyMDQ0LCAxLjI0NzE5LCAxLjY1Nzc4LCAyLjA2OTI2LCAyLjQ4MDA2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjU5MSwgMC4wMDY1OTgsIDAuMDA2NTkxLCAwLjAwNjU4NSwgMC4wMDY1ODIsIDAuMDA2NTgsIDAuMDA2NTc4IiwgXAotICAgICAgICAgICIwLjAwNjU3OCwgMC4wMDY1ODQsIDAuMDA2NTc5LCAwLjAwNjU3MiwgMC4wMDY1NywgMC4wMDY1NjgsIDAuMDA2NTY1IiwgXAotICAgICAgICAgICIwLjAwNjU2NSwgMC4wMDY1NzIsIDAuMDA2NTY2LCAwLjAwNjU2LCAwLjAwNjU1NywgMC4wMDY1NTUsIDAuMDA2NTUyIiwgXAotICAgICAgICAgICIwLjAwNjU1NiwgMC4wMDY1NjMsIDAuMDA2NTU2LCAwLjAwNjU1LCAwLjAwNjU0OCwgMC4wMDY1NDYsIDAuMDA2NTQzIiwgXAotICAgICAgICAgICIwLjAwNjU0OSwgMC4wMDY1NTYsIDAuMDA2NTUsIDAuMDA2NTQ0LCAwLjAwNjU0MSwgMC4wMDY1MzksIDAuMDA2NTM2IiwgXAotICAgICAgICAgICIwLjAwNjUzNiwgMC4wMDY1NDQsIDAuMDA2NTM3LCAwLjAwNjUzMiwgMC4wMDY1MjksIDAuMDA2NTI3LCAwLjAwNjUyNSIsIFwKLSAgICAgICAgICAiMC4wMDY1MywgMC4wMDY1MzksIDAuMDA2NTMyLCAwLjAwNjUyNywgMC4wMDY1MjMsIDAuMDA2NTIxLCAwLjAwNjUxOSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNzAzNiwgMC4wMDcwODEsIDAuMDA3MDg1LCAwLjAwNzA4OCwgMC4wMDcwOSwgMC4wMDcwOTEsIDAuMDA3MDkxIiwgXAotICAgICAgICAgICIwLjAwNzAyMiwgMC4wMDcwNjcsIDAuMDA3MDcyLCAwLjAwNzA3NSwgMC4wMDcwNzYsIDAuMDA3MDc3LCAwLjAwNzA3NyIsIFwKLSAgICAgICAgICAiMC4wMDcwMTIsIDAuMDA3MDU3LCAwLjAwNzA2MiwgMC4wMDcwNjUsIDAuMDA3MDY2LCAwLjAwNzA2NywgMC4wMDcwNjgiLCBcCi0gICAgICAgICAgIjAuMDA3MDAyLCAwLjAwNzA0OCwgMC4wMDcwNTMsIDAuMDA3MDU2LCAwLjAwNzA1OCwgMC4wMDcwNTgsIDAuMDA3MDU5IiwgXAotICAgICAgICAgICIwLjAwNywgMC4wMDcwNDYsIDAuMDA3MDUyLCAwLjAwNzA1NCwgMC4wMDcwNTYsIDAuMDA3MDU2LCAwLjAwNzA1NyIsIFwKLSAgICAgICAgICAiMC4wMDY5OTgsIDAuMDA3MDQ0LCAwLjAwNzA0OSwgMC4wMDcwNTIsIDAuMDA3MDUzLCAwLjAwNzA1NSwgMC4wMDcwNTUiLCBcCi0gICAgICAgICAgIjAuMDA3MDA2LCAwLjAwNzA1MiwgMC4wMDcwNTYsIDAuMDA3MDU5LCAwLjAwNzA2MSwgMC4wMDcwNjEsIDAuMDA3MDYyIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNTQ2ODc7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNTQ2MDU7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNTQ2ODc7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA2MTgsIDAuMDA2MTc0LCAwLjAwNjE2OCwgMC4wMDYxNjQsIDAuMDA2MTYyLCAwLjAwNjE1OCwgMC4wMDYxNTciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDczMDQsIDAuMDA3MjgyLCAwLjAwNzI2NiwgMC4wMDcyNTYsIDAuMDA3MjQ5LCAwLjAwNzI0MSwgMC4wMDcyMzciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIVNFIjsKLSAgICAgIHNkZl9jb25kIDogIlNFID09IDEnYjAiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjA2MjUsIC0wLjA1MTI1LCAtMC4wMzg3NSwgLTAuMDMyNSwgLTAuMDIsIC0wLjAwMzc1LCAwLjAxMTI1IiwgXAotICAgICAgICAgICItMC4wNzM3NSwgLTAuMDYyNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wMzEyNSwgLTAuMDE1LCAwIiwgXAotICAgICAgICAgICItMC4wOTI1LCAtMC4wODEyNSwgLTAuMDY4NzUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDMzNzUsIC0wLjAxODc1IiwgXAotICAgICAgICAgICItMC4xMDUsIC0wLjA5Mzc1LCAtMC4wODEyNSwgLTAuMDc1LCAtMC4wNjI1LCAtMC4wNDYyNSwgLTAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjEyMzc1LCAtMC4xMDYyNSwgLTAuMSwgLTAuMDg3NSwgLTAuMDc1LCAtMC4wNTg3NSwgLTAuMDQzNzUiLCBcCi0gICAgICAgICAgIi0wLjE0LCAtMC4xMjg3NSwgLTAuMTIyNSwgLTAuMTEsIC0wLjA5NzUsIC0wLjA4MTI1LCAtMC4wNjYyNSIsIFwKLSAgICAgICAgICAiLTAuMTYxMjUsIC0wLjE1LCAtMC4xMzc1LCAtMC4xMjUsIC0wLjExODc1LCAtMC4xMDI1LCAtMC4wODc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDI1LCAtMC4wMTM3NSwgLTAuMDAxMjUsIDAuMDA1LCAwLjAxNzUsIDAuMDMzNzUsIDAuMDQ4NzUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMjUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLjAwNjI1LCAwLjAyMjUsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjAzNzUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLjAxLCAwLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDYxMjUsIC0wLjA1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIC0wLjAwMjUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDczNzUsIC0wLjA2MjUsIC0wLjA1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDE1LCAwIiwgXAotICAgICAgICAgICItMC4wOSwgLTAuMDc4NzUsIC0wLjA2NjI1LCAtMC4wNTM3NSwgLTAuMDQ3NSwgLTAuMDMxMjUsIC0wLjAxNjI1IiwgXAotICAgICAgICAgICItMC4wOTg3NSwgLTAuMDg3NSwgLTAuMDgxMjUsIC0wLjA2ODc1LCAtMC4wNTYyNSwgLTAuMDQ2MjUsIC0wLjAzMTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhU0UiOwotICAgICAgc2RmX2NvbmQgOiAiU0UgPT0gMSdiMCI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjY4NzUsIDAuMjUxMjUsIDAuMjMyNSwgMC4yMiwgMC4yMDc1LCAwLjE5MTI1LCAwLjE3NjI1IiwgXAotICAgICAgICAgICIwLjI3Mzc1LCAwLjI2MjUsIDAuMjQzNzUsIDAuMjMxMjUsIDAuMjE4NzUsIDAuMjAyNSwgMC4xODc1IiwgXAotICAgICAgICAgICIwLjI5MjUsIDAuMjc1LCAwLjI1NjI1LCAwLjI0Mzc1LCAwLjIzMTI1LCAwLjIxNSwgMC4yIiwgXAotICAgICAgICAgICIwLjMwNSwgMC4yODc1LCAwLjI3NSwgMC4yNTYyNSwgMC4yNDM3NSwgMC4yMjc1LCAwLjIxMjUiLCBcCi0gICAgICAgICAgIjAuMzE3NSwgMC4zLCAwLjI4NzUsIDAuMjY4NzUsIDAuMjU2MjUsIDAuMjQsIDAuMjI1IiwgXAotICAgICAgICAgICIwLjM0LCAwLjMyMjUsIDAuMzEsIDAuMjkxMjUsIDAuMjc4NzUsIDAuMjYyNSwgMC4yNDc1IiwgXAotICAgICAgICAgICIwLjM1NSwgMC4zNDM3NSwgMC4zMjUsIDAuMzEyNSwgMC4zLCAwLjI3NzUsIDAuMjYyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMsIDAuMjg4NzUsIDAuMjcsIDAuMjU3NSwgMC4yNDUsIDAuMjIyNSwgMC4yMDc1IiwgXAotICAgICAgICAgICIwLjMxMTI1LCAwLjMsIDAuMjgxMjUsIDAuMjY4NzUsIDAuMjU2MjUsIDAuMjMzNzUsIDAuMjE4NzUiLCBcCi0gICAgICAgICAgIjAuMzMsIDAuMzEyNSwgMC4yOTM3NSwgMC4yODEyNSwgMC4yNjg3NSwgMC4yNTI1LCAwLjIzNzUiLCBcCi0gICAgICAgICAgIjAuMzQyNSwgMC4zMzEyNSwgMC4zMTI1LCAwLjI5Mzc1LCAwLjI4MTI1LCAwLjI2NSwgMC4yNSIsIFwKLSAgICAgICAgICAiMC4zNTUsIDAuMzQzNzUsIDAuMzI1LCAwLjMxMjUsIDAuMjkzNzUsIDAuMjc3NSwgMC4yNjI1IiwgXAotICAgICAgICAgICIwLjM3MTI1LCAwLjM2LCAwLjM0MTI1LCAwLjMyODc1LCAwLjMxNjI1LCAwLjMsIDAuMjg1IiwgXAotICAgICAgICAgICIwLjM4NjI1LCAwLjM3NSwgMC4zNTYyNSwgMC4zNDM3NSwgMC4zMzEyNSwgMC4zMTUsIDAuMyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oU0UpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTM5MzAzOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTM5MTgyOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTM5MzAzOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNDQ3LCAwLjAwNDQ2OCwgMC4wMDQ0NjgsIDAuMDA0NDY4LCAwLjAwNDQ2OCwgMC4wMDQ0NjgsIDAuMDA0NDY2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA1NTM4LCAwLjAwNTUxNCwgMC4wMDU0OTUsIDAuMDA1NDg1LCAwLjAwNTQ3NywgMC4wMDU0NjcsIDAuMDA1NDYzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEMCYhRDEmIVMwJlNJIjsKLSAgICAgIHNkZl9jb25kIDogIkQwX0VRXzBfQU5fRDFfRVFfMF9BTl9TMF9FUV8wX0FOX1NJX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDg3NSwgLTAuMDc2MjUsIC0wLjA2Mzc1LCAtMC4wNTEyNSwgLTAuMDM4NzUsIC0wLjAyMjUsIC0wLjAxMzc1IiwgXAotICAgICAgICAgICItMC4wOTg3NSwgLTAuMDg3NSwgLTAuMDc1LCAtMC4wNjI1LCAtMC4wNSwgLTAuMDMzNzUsIC0wLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMTExMjUsIC0wLjEsIC0wLjA4NzUsIC0wLjA3NSwgLTAuMDYyNSwgLTAuMDQ2MjUsIC0wLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjEyMzc1LCAtMC4xMTI1LCAtMC4xLCAtMC4wODc1LCAtMC4wODEyNSwgLTAuMDY1LCAtMC4wNSIsIFwKLSAgICAgICAgICAiLTAuMTM2MjUsIC0wLjEyNSwgLTAuMTEyNSwgLTAuMSwgLTAuMDkzNzUsIC0wLjA3NzUsIC0wLjA2MjUiLCBcCi0gICAgICAgICAgIi0wLjE1ODc1LCAtMC4xNDc1LCAtMC4xMzUsIC0wLjEyMjUsIC0wLjExLCAtMC4xLCAtMC4wODUiLCBcCi0gICAgICAgICAgIi0wLjE3Mzc1LCAtMC4xNjI1LCAtMC4xNTYyNSwgLTAuMTQzNzUsIC0wLjEzMTI1LCAtMC4xMTUsIC0wLjEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjI1LCAwLjAxNzUsIDAuMDMsIDAuMDQyNSwgMC4wNTUsIDAuMDc3NSwgMC4wOTI1IiwgXAotICAgICAgICAgICItMC4wMDUsIDAuMDA2MjUsIDAuMDE4NzUsIDAuMDMxMjUsIDAuMDQzNzUsIDAuMDY2MjUsIDAuMDg3NSIsIFwKLSAgICAgICAgICAiLTAuMDE3NSwgLTAuMDA2MjUsIDAuMDA2MjUsIDAuMDE4NzUsIDAuMDMxMjUsIDAuMDUzNzUsIDAuMDc1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLjAwNjI1LCAwLjAxODc1LCAwLjA0MTI1LCAwLjA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAuMDEyNSwgMC4wMjg3NSwgMC4wNSIsIFwKLSAgICAgICAgICAiLTAuMDU4NzUsIC0wLjA0NzUsIC0wLjAzNSwgLTAuMDIyNSwgLTAuMDEsIDAuMDEyNSwgMC4wMzM3NSIsIFwKLSAgICAgICAgICAiLTAuMDczNzUsIC0wLjA2MjUsIC0wLjA1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAwMjUsIDAuMDEyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRDAmRDEmUzAmIVNJIjsKLSAgICAgIHNkZl9jb25kIDogIkQwX0VRXzBfQU5fRDFfRVFfMV9BTl9TMF9FUV8xX0FOX1NJX0VRXzAgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDMxMjUsIC0wLjAyLCAtMC4wMDc1LCAwLjAxMTI1LCAwLjAyMzc1LCAwLjA0NjI1LCAwLjA2NzUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAuMDEyNSwgMC4wMzUsIDAuMDUiLCBcCi0gICAgICAgICAgIi0wLjA2MTI1LCAtMC4wNSwgLTAuMDMxMjUsIC0wLjAxODc1LCAtMC4wMDYyNSwgMC4wMTYyNSwgMC4wMzc1IiwgXAotICAgICAgICAgICItMC4wNzM3NSwgLTAuMDYyNSwgLTAuMDUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgMC4wMDM3NSwgMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjA5MjUsIC0wLjA3NSwgLTAuMDYyNSwgLTAuMDUsIC0wLjAzNzUsIC0wLjAxNSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMTE1LCAtMC4xMDM3NSwgLTAuMDg1LCAtMC4wNzI1LCAtMC4wNiwgLTAuMDM3NSwgLTAuMDE2MjUiLCBcCi0gICAgICAgICAgIi0wLjEzLCAtMC4xMTg3NSwgLTAuMTA2MjUsIC0wLjA5Mzc1LCAtMC4wNzUsIC0wLjA1MjUsIC0wLjAzNzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4xMTg3NSwgLTAuMTA3NSwgLTAuMDk1LCAtMC4wODg3NSwgLTAuMDc2MjUsIC0wLjA2LCAtMC4wNTEyNSIsIFwKLSAgICAgICAgICAiLTAuMTMsIC0wLjExODc1LCAtMC4xMTI1LCAtMC4xLCAtMC4wODc1LCAtMC4wNzc1LCAtMC4wNjI1IiwgXAotICAgICAgICAgICItMC4xNDI1LCAtMC4xMzc1LCAtMC4xMjUsIC0wLjExMjUsIC0wLjEwNjI1LCAtMC4wOSwgLTAuMDc1IiwgXAotICAgICAgICAgICItMC4xNjEyNSwgLTAuMTUsIC0wLjEzNzUsIC0wLjEzMTI1LCAtMC4xMTg3NSwgLTAuMTAyNSwgLTAuMDkzNzUiLCBcCi0gICAgICAgICAgIi0wLjE3Mzc1LCAtMC4xNjI1LCAtMC4xNTYyNSwgLTAuMTQzNzUsIC0wLjEzMTI1LCAtMC4xMjEyNSwgLTAuMTA2MjUiLCBcCi0gICAgICAgICAgIi0wLjE5NjI1LCAtMC4xODUsIC0wLjE3ODc1LCAtMC4xNjYyNSwgLTAuMTUzNzUsIC0wLjEzNzUsIC0wLjEyODc1IiwgXAotICAgICAgICAgICItMC4yMTEyNSwgLTAuMjA2MjUsIC0wLjE5Mzc1LCAtMC4xODEyNSwgLTAuMTc1LCAtMC4xNTg3NSwgLTAuMTQzNzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEMCYhRDEmIVMwJlNJIjsKLSAgICAgIHNkZl9jb25kIDogIkQwX0VRXzBfQU5fRDFfRVFfMF9BTl9TMF9FUV8wX0FOX1NJX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTUsIDAuMTM4NzUsIDAuMTIsIDAuMTA3NSwgMC4wOTUsIDAuMDc4NzUsIDAuMDYzNzUiLCBcCi0gICAgICAgICAgIjAuMTYxMjUsIDAuMTUsIDAuMTMxMjUsIDAuMTE4NzUsIDAuMTA2MjUsIDAuMDksIDAuMDc1IiwgXAotICAgICAgICAgICIwLjE3Mzc1LCAwLjE2MjUsIDAuMTQzNzUsIDAuMTMxMjUsIDAuMTE4NzUsIDAuMTAyNSwgMC4wODc1IiwgXAotICAgICAgICAgICIwLjE4NjI1LCAwLjE3NSwgMC4xNTYyNSwgMC4xNDM3NSwgMC4xMzEyNSwgMC4xMTUsIDAuMTA2MjUiLCBcCi0gICAgICAgICAgIjAuMTk4NzUsIDAuMTg3NSwgMC4xNzUsIDAuMTU2MjUsIDAuMTQzNzUsIDAuMTI3NSwgMC4xMTg3NSIsIFwKLSAgICAgICAgICAiMC4yMjEyNSwgMC4yMSwgMC4xOTEyNSwgMC4xNzg3NSwgMC4xNjYyNSwgMC4xNSwgMC4xMzUiLCBcCi0gICAgICAgICAgIjAuMjQyNSwgMC4yMzEyNSwgMC4yMTI1LCAwLjIsIDAuMTg3NSwgMC4xNzEyNSwgMC4xNTYyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExODc1LCAwLjEwNzUsIDAuMDg4NzUsIDAuMDc2MjUsIDAuMDU3NSwgMC4wMzUsIDAuMDEzNzUiLCBcCi0gICAgICAgICAgIjAuMTMsIDAuMTE4NzUsIDAuMSwgMC4wODEyNSwgMC4wNjg3NSwgMC4wNCwgMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMTQyNSwgMC4xMzEyNSwgMC4xMTI1LCAwLjA5Mzc1LCAwLjA4MTI1LCAwLjA1MjUsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiMC4xNTUsIDAuMTQzNzUsIDAuMTI1LCAwLjEwNjI1LCAwLjA5Mzc1LCAwLjA2NSwgMC4wNSIsIFwKLSAgICAgICAgICAiMC4xNjc1LCAwLjE1NjI1LCAwLjEzNzUsIDAuMTE4NzUsIDAuMTA2MjUsIDAuMDgzNzUsIDAuMDYyNSIsIFwKLSAgICAgICAgICAiMC4xODM3NSwgMC4xNzI1LCAwLjE2LCAwLjE0MTI1LCAwLjEyMjUsIDAuMSwgMC4wNzg3NSIsIFwKLSAgICAgICAgICAiMC4yMDUsIDAuMTkzNzUsIDAuMTc1LCAwLjE1NjI1LCAwLjE0Mzc1LCAwLjExNSwgMC4wOTM3NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUQwJkQxJlMwJiFTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEMF9FUV8wX0FOX0QxX0VRXzFfQU5fUzBfRVFfMV9BTl9TSV9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEyNSwgMC4xMDc1LCAwLjA5NSwgMC4wNzYyNSwgMC4wNjM3NSwgMC4wNDEyNSwgMC4wMiIsIFwKLSAgICAgICAgICAiMC4xMzYyNSwgMC4xMjUsIDAuMTA2MjUsIDAuMDg3NSwgMC4wNzUsIDAuMDUyNSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4xNDg3NSwgMC4xMzc1LCAwLjEyNSwgMC4xMDYyNSwgMC4wODc1LCAwLjA2NSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4xNjc1LCAwLjE1NjI1LCAwLjEzNzUsIDAuMTE4NzUsIDAuMTA2MjUsIDAuMDgzNzUsIDAuMDYyNSIsIFwKLSAgICAgICAgICAiMC4xOCwgMC4xNjg3NSwgMC4xNSwgMC4xMzc1LCAwLjExODc1LCAwLjA5NjI1LCAwLjA3NSIsIFwKLSAgICAgICAgICAiMC4yMDI1LCAwLjE5MTI1LCAwLjE3MjUsIDAuMTYsIDAuMTQxMjUsIDAuMTE4NzUsIDAuMDk3NSIsIFwKLSAgICAgICAgICAiMC4yMjM3NSwgMC4yMTI1LCAwLjE5Mzc1LCAwLjE3NSwgMC4xNjI1LCAwLjE0LCAwLjExODc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjA2MjUsIDAuMTk1LCAwLjE3NjI1LCAwLjE2Mzc1LCAwLjE1MTI1LCAwLjEyODc1LCAwLjEyIiwgXAotICAgICAgICAgICIwLjIxNzUsIDAuMjA2MjUsIDAuMTg3NSwgMC4xNzUsIDAuMTYyNSwgMC4xNDYyNSwgMC4xMzEyNSIsIFwKLSAgICAgICAgICAiMC4yMzYyNSwgMC4yMjUsIDAuMjA2MjUsIDAuMTg3NSwgMC4xNzUsIDAuMTU4NzUsIDAuMTQzNzUiLCBcCi0gICAgICAgICAgIjAuMjQ4NzUsIDAuMjM3NSwgMC4yMTg3NSwgMC4yMDYyNSwgMC4xOTM3NSwgMC4xNzEyNSwgMC4xNjI1IiwgXAotICAgICAgICAgICIwLjI2MTI1LCAwLjI1LCAwLjIzMTI1LCAwLjIxODc1LCAwLjIwNjI1LCAwLjE5LCAwLjE3NSIsIFwKLSAgICAgICAgICAiMC4yODM3NSwgMC4yNzI1LCAwLjI1Mzc1LCAwLjI0MTI1LCAwLjIyODc1LCAwLjIxMjUsIDAuMTk3NSIsIFwKLSAgICAgICAgICAiMC4zMDUsIDAuMjg3NSwgMC4yNzUsIDAuMjU2MjUsIDAuMjQzNzUsIDAuMjI3NSwgMC4yMTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTSSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwODUzODY1OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDg1MDg0OTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA4NTM4NjU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyOTI0LCAwLjAwMjkwNSwgMC4wMDI4OTUsIDAuMDAyODg4LCAwLjAwMjg4MywgMC4wMDI4NzcsIDAuMDAyODczIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA0ODU5LCAwLjAwNDg0OCwgMC4wMDQ4NDMsIDAuMDA0ODM5LCAwLjAwNDgzNiwgMC4wMDQ4MzEsIDAuMDA0ODMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiU0UiOwotICAgICAgc2RmX2NvbmQgOiAiU0UgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMSwgLTAuMDg4NzUsIC0wLjA3NjI1LCAtMC4wNjM3NSwgLTAuMDU3NSwgLTAuMDQxMjUsIC0wLjAyNjI1IiwgXAotICAgICAgICAgICItMC4xMTEyNSwgLTAuMSwgLTAuMDg3NSwgLTAuMDc1LCAtMC4wNjg3NSwgLTAuMDUyNSwgLTAuMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMTIzNzUsIC0wLjExMjUsIC0wLjEsIC0wLjA4NzUsIC0wLjA4MTI1LCAtMC4wNjUsIC0wLjA1IiwgXAotICAgICAgICAgICItMC4xMzYyNSwgLTAuMTI1LCAtMC4xMTI1LCAtMC4xMDYyNSwgLTAuMDkzNzUsIC0wLjA3NzUsIC0wLjA2MjUiLCBcCi0gICAgICAgICAgIi0wLjE0ODc1LCAtMC4xMzc1LCAtMC4xMjUsIC0wLjExODc1LCAtMC4xMDYyNSwgLTAuMDksIC0wLjA3NSIsIFwKLSAgICAgICAgICAiLTAuMTcxMjUsIC0wLjE2LCAtMC4xNDc1LCAtMC4xMzUsIC0wLjEyODc1LCAtMC4xMTI1LCAtMC4wOTc1IiwgXAotICAgICAgICAgICItMC4xOTI1LCAtMC4xODEyNSwgLTAuMTY4NzUsIC0wLjE1NjI1LCAtMC4xNDM3NSwgLTAuMTI3NSwgLTAuMTE4NzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLCAwLjAxMTI1LCAwLjAyMzc1LCAwLjAzNjI1LCAwLjA1NSwgMC4wNzc1LCAwLjA5MjUiLCBcCi0gICAgICAgICAgIi0wLjAxMTI1LCAwLCAwLjAxMjUsIDAuMDI1LCAwLjA0Mzc1LCAwLjA2NjI1LCAwLjA4MTI1IiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDEyNSwgMCwgMC4wMTI1LCAwLjAzMTI1LCAwLjA1Mzc1LCAwLjA2ODc1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDI1LCAtMC4wMTI1LCAwLjAwNjI1LCAwLjAxODc1LCAwLjA0MTI1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDM3NSwgLTAuMDI1LCAtMC4wMDYyNSwgMC4wMDYyNSwgMC4wMjg3NSwgMC4wNSIsIFwKLSAgICAgICAgICAiLTAuMDY1LCAtMC4wNTM3NSwgLTAuMDQxMjUsIC0wLjAyODc1LCAtMC4wMSwgMC4wMTI1LCAwLjAyNzUiLCBcCi0gICAgICAgICAgIi0wLjA4LCAtMC4wNjg3NSwgLTAuMDU2MjUsIC0wLjAzNzUsIC0wLjAyNSwgLTAuMDAyNSwgMC4wMTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJTRSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNjI1LCAwLjE1MTI1LCAwLjEzMjUsIDAuMTIsIDAuMTA3NSwgMC4wOTEyNSwgMC4wODI1IiwgXAotICAgICAgICAgICIwLjE3Mzc1LCAwLjE2MjUsIDAuMTQzNzUsIDAuMTMxMjUsIDAuMTE4NzUsIDAuMTAyNSwgMC4wODc1IiwgXAotICAgICAgICAgICIwLjE4NjI1LCAwLjE3NSwgMC4xNjI1LCAwLjE0Mzc1LCAwLjEzMTI1LCAwLjExNSwgMC4xMDYyNSIsIFwKLSAgICAgICAgICAiMC4xOTg3NSwgMC4xODc1LCAwLjE3NSwgMC4xNTYyNSwgMC4xNSwgMC4xMjc1LCAwLjExODc1IiwgXAotICAgICAgICAgICIwLjIxNzUsIDAuMiwgMC4xODc1LCAwLjE3NSwgMC4xNjI1LCAwLjE0NjI1LCAwLjEzMTI1IiwgXAotICAgICAgICAgICIwLjIzMzc1LCAwLjIyMjUsIDAuMjEsIDAuMTkxMjUsIDAuMTc4NzUsIDAuMTYyNSwgMC4xNTM3NSIsIFwKLSAgICAgICAgICAiMC4yNTUsIDAuMjQzNzUsIDAuMjI1LCAwLjIxMjUsIDAuMiwgMC4xODM3NSwgMC4xNjg3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5Mzc1LCAwLjA4MjUsIDAuMDYzNzUsIDAuMDQ1LCAwLjAzMjUsIDAuMDEsIC0wLjAxMTI1IiwgXAotICAgICAgICAgICIwLjEwNSwgMC4wOTM3NSwgMC4wNzUsIDAuMDU2MjUsIDAuMDQzNzUsIDAuMDIxMjUsIDAiLCBcCi0gICAgICAgICAgIjAuMTE3NSwgMC4xMDYyNSwgMC4wODc1LCAwLjA2ODc1LCAwLjA1NjI1LCAwLjAzMzc1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMTMsIDAuMTE4NzUsIDAuMSwgMC4wODEyNSwgMC4wNjg3NSwgMC4wNDYyNSwgMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMTQyNSwgMC4xMjUsIDAuMTEyNSwgMC4wOTM3NSwgMC4wODEyNSwgMC4wNTg3NSwgMC4wMzc1IiwgXAotICAgICAgICAgICIwLjE1ODc1LCAwLjE0NzUsIDAuMTI4NzUsIDAuMTE2MjUsIDAuMDk3NSwgMC4wNzUsIDAuMDUzNzUiLCBcCi0gICAgICAgICAgIjAuMTczNzUsIDAuMTYyNSwgMC4xNSwgMC4xMzEyNSwgMC4xMTg3NSwgMC4wOSwgMC4wNjg3NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogU01ERkZIUVg0ICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoU01ERkZIUVg0KSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuNTg0ODE2OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIGZmIChOMzAsUUJJTlQpIHsKLSAgICBuZXh0X3N0YXRlIDogIigoU0UgU0kpICsgKCFTRSAoKFMwIEQxKSArICghUzAgRDApKSkpIjsKLSAgICBjbG9ja2VkX29uIDogIkNLIjsKLSAgfQotICBwaW4oQ0spICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDU1MzAyMjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA1NTI4OTU7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNTUzMDIyOwotICAgIGNsb2NrIDogdHJ1ZTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDI2NTksIDAuMDAyNjQ4LCAwLjAwMjYzOCwgMC4wMDI2MzIsIDAuMDAyNjI2LCAwLjAwMjYxOSwgMC4wMDI2MTYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDYxNTgsIDAuMDA2MTQ5LCAwLjAwNjEzOSwgMC4wMDYxMzQsIDAuMDA2MTMxLCAwLjAwNjEzMywgMC4wMDYxNDMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFEMCYhRDEmIVMwJiFTRSYhU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRDBfRVFfMF9BTl9EMV9FUV8wX0FOX1MwX0VRXzBfQU5fU0VfRVFfMF9BTl9TSV9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMjU4MzM0LCAwLjI3MDE5LCAwLjI4NTQ4MSwgMC4zMDA5LCAwLjMxNjM1OSwgMC4zNDA3OTgsIDAuMzYxOTY3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4yMDkwOTQsIDAuMjIwNjM1LCAwLjIzNTY2MSwgMC4yNTA1MTgsIDAuMjY1MjgxLCAwLjI4ODQ4NSwgMC4zMDgwMTkiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEQwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA5MTU1MjE7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwOTEyMDE2OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDkxNTUyMTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDQwOTIsIDAuMDA0MDczLCAwLjAwNDA2NSwgMC4wMDQwNTksIDAuMDA0MDU1LCAwLjAwNDA1LCAwLjAwNDA0NiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNjI2OCwgMC4wMDYyNTksIDAuMDA2MjU0LCAwLjAwNjI1MSwgMC4wMDYyNDksIDAuMDA2MjQ2LCAwLjAwNjI0NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhUzAmIVNFIjsKLSAgICAgIHNkZl9jb25kIDogIlMwX0VRXzBfQU5fU0VfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4xODEyNSwgLTAuMTc2MjUsIC0wLjE2Mzc1LCAtMC4xNTEyNSwgLTAuMTM4NzUsIC0wLjEyMjUsIC0wLjExMzc1IiwgXAotICAgICAgICAgICItMC4xOTI1LCAtMC4xODc1LCAtMC4xNzUsIC0wLjE2MjUsIC0wLjE1LCAtMC4xMzM3NSwgLTAuMTI1IiwgXAotICAgICAgICAgICItMC4yMDUsIC0wLjIsIC0wLjE4NzUsIC0wLjE3NSwgLTAuMTYyNSwgLTAuMTUyNSwgLTAuMTM3NSIsIFwKLSAgICAgICAgICAiLTAuMjIzNzUsIC0wLjIxMjUsIC0wLjIsIC0wLjE4NzUsIC0wLjE3NSwgLTAuMTY1LCAtMC4xNSIsIFwKLSAgICAgICAgICAiLTAuMjM2MjUsIC0wLjIyNSwgLTAuMjEyNSwgLTAuMiwgLTAuMTkzNzUsIC0wLjE3NzUsIC0wLjE2MjUiLCBcCi0gICAgICAgICAgIi0wLjI1ODc1LCAtMC4yNDc1LCAtMC4yMzUsIC0wLjIyMjUsIC0wLjIxLCAtMC4yLCAtMC4xODUiLCBcCi0gICAgICAgICAgIi0wLjI3Mzc1LCAtMC4yNjI1LCAtMC4yNTYyNSwgLTAuMjQzNzUsIC0wLjIzMTI1LCAtMC4yMTUsIC0wLjIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMzEyNSwgLTAuMDIsIC0wLjAwNzUsIDAuMDA1LCAwLjAxMTI1LCAwLjAyNzUsIDAuMDQyNSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDMxMjUsIC0wLjAxODc1LCAtMC4wMDYyNSwgMCwgMC4wMTYyNSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNDM3NSwgLTAuMDMxMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAwLjAwMzc1LCAwLjAxODc1IiwgXAotICAgICAgICAgICItMC4wNjc1LCAtMC4wNTYyNSwgLTAuMDQzNzUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAwODc1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wOCwgLTAuMDY4NzUsIC0wLjA1NjI1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDIxMjUsIDAiLCBcCi0gICAgICAgICAgIi0wLjA5NjI1LCAtMC4wODUsIC0wLjA3MjUsIC0wLjA2NjI1LCAtMC4wNTM3NSwgLTAuMDM3NSwgLTAuMDIyNSIsIFwKLSAgICAgICAgICAiLTAuMTExMjUsIC0wLjEsIC0wLjA4NzUsIC0wLjA3NSwgLTAuMDY4NzUsIC0wLjA1MjUsIC0wLjAzNzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFTMCYhU0UiOwotICAgICAgc2RmX2NvbmQgOiAiUzBfRVFfMF9BTl9TRV9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI3NSwgMC4yNjM3NSwgMC4yNDUsIDAuMjMyNSwgMC4yMTM3NSwgMC4xOTc1LCAwLjE4MjUiLCBcCi0gICAgICAgICAgIjAuMjg2MjUsIDAuMjc1LCAwLjI1NjI1LCAwLjI0Mzc1LCAwLjIyNSwgMC4yMDg3NSwgMC4xOTM3NSIsIFwKLSAgICAgICAgICAiMC4yOTg3NSwgMC4yODc1LCAwLjI2ODc1LCAwLjI1NjI1LCAwLjI0Mzc1LCAwLjIyMTI1LCAwLjIwNjI1IiwgXAotICAgICAgICAgICIwLjMxMTI1LCAwLjMsIDAuMjgxMjUsIDAuMjY4NzUsIDAuMjU2MjUsIDAuMjMzNzUsIDAuMjE4NzUiLCBcCi0gICAgICAgICAgIjAuMzMsIDAuMzEyNSwgMC4yOTM3NSwgMC4yODEyNSwgMC4yNjg3NSwgMC4yNDYyNSwgMC4yMzEyNSIsIFwKLSAgICAgICAgICAiMC4zNDYyNSwgMC4zMzUsIDAuMzE2MjUsIDAuMzAzNzUsIDAuMjkxMjUsIDAuMjY4NzUsIDAuMjUzNzUiLCBcCi0gICAgICAgICAgIjAuMzY3NSwgMC4zNTYyNSwgMC4zMzc1LCAwLjMxODc1LCAwLjMwNjI1LCAwLjI5LCAwLjI3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE4MTI1LCAwLjE3LCAwLjE1MTI1LCAwLjEzMjUsIDAuMTIsIDAuMDkxMjUsIDAuMDciLCBcCi0gICAgICAgICAgIjAuMTkyNSwgMC4xODEyNSwgMC4xNjI1LCAwLjE0Mzc1LCAwLjEzMTI1LCAwLjEwMjUsIDAuMDg3NSIsIFwKLSAgICAgICAgICAiMC4yMDUsIDAuMTkzNzUsIDAuMTc1LCAwLjE2MjUsIDAuMTQzNzUsIDAuMTIxMjUsIDAuMSIsIFwKLSAgICAgICAgICAiMC4yMTc1LCAwLjIwNjI1LCAwLjE4NzUsIDAuMTc1LCAwLjE1NjI1LCAwLjEzMzc1LCAwLjExMjUiLCBcCi0gICAgICAgICAgIjAuMjMsIDAuMjE4NzUsIDAuMiwgMC4xODEyNSwgMC4xNjg3NSwgMC4xNDYyNSwgMC4xMjUiLCBcCi0gICAgICAgICAgIjAuMjQ2MjUsIDAuMjM1LCAwLjIyMjUsIDAuMjAzNzUsIDAuMTg1LCAwLjE2MjUsIDAuMTQxMjUiLCBcCi0gICAgICAgICAgIjAuMjY3NSwgMC4yNTYyNSwgMC4yMzc1LCAwLjIxODc1LCAwLjIwNjI1LCAwLjE3NzUsIDAuMTU2MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEQxKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA4ODcwODQ7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwODgzMjgzOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDg4NzA4NDsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDM5MDEsIDAuMDAzODgyLCAwLjAwMzg3MywgMC4wMDM4NjgsIDAuMDAzODY0LCAwLjAwMzg1OSwgMC4wMDM4NTYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDY0NzYsIDAuMDA2NDY3LCAwLjAwNjQ2MiwgMC4wMDY0NTksIDAuMDA2NDU3LCAwLjAwNjQ1NCwgMC4wMDY0NTIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiUzAmIVNFIjsKLSAgICAgIHNkZl9jb25kIDogIlMwX0VRXzFfQU5fU0VfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4xODEyNSwgLTAuMTcsIC0wLjE2Mzc1LCAtMC4xNTEyNSwgLTAuMTM4NzUsIC0wLjEyMjUsIC0wLjExMzc1IiwgXAotICAgICAgICAgICItMC4xOTI1LCAtMC4xODEyNSwgLTAuMTc1LCAtMC4xNjI1LCAtMC4xNSwgLTAuMTMzNzUsIC0wLjEyNSIsIFwKLSAgICAgICAgICAiLTAuMjA1LCAtMC4yLCAtMC4xODc1LCAtMC4xNzUsIC0wLjE2MjUsIC0wLjE0NjI1LCAtMC4xMzc1IiwgXAotICAgICAgICAgICItMC4yMTc1LCAtMC4yMTI1LCAtMC4yLCAtMC4xODc1LCAtMC4xNzUsIC0wLjE1ODc1LCAtMC4xNSIsIFwKLSAgICAgICAgICAiLTAuMjM2MjUsIC0wLjIyNSwgLTAuMjEyNSwgLTAuMiwgLTAuMTg3NSwgLTAuMTc3NSwgLTAuMTYyNSIsIFwKLSAgICAgICAgICAiLTAuMjUyNSwgLTAuMjQ3NSwgLTAuMjM1LCAtMC4yMjI1LCAtMC4yMSwgLTAuMTkzNzUsIC0wLjE4NSIsIFwKLSAgICAgICAgICAiLTAuMjczNzUsIC0wLjI2MjUsIC0wLjI1LCAtMC4yNDM3NSwgLTAuMjMxMjUsIC0wLjIxNSwgLTAuMiIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAzNzUsIC0wLjAyNjI1LCAtMC4wMTM3NSwgLTAuMDAxMjUsIDAuMDExMjUsIDAuMDI3NSwgMC4wNDI1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDM3NSwgLTAuMDI1LCAtMC4wMTI1LCAwLCAwLjAxNjI1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wNjEyNSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAyNSwgLTAuMDEyNSwgMC4wMDM3NSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDY3NSwgLTAuMDU2MjUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAwODc1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wOCwgLTAuMDY4NzUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDM3NSwgLTAuMDIxMjUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wOTYyNSwgLTAuMDg1LCAtMC4wNzI1LCAtMC4wNjYyNSwgLTAuMDUzNzUsIC0wLjAzNzUsIC0wLjAyMjUiLCBcCi0gICAgICAgICAgIi0wLjExMTI1LCAtMC4xLCAtMC4wODc1LCAtMC4wNzUsIC0wLjA2ODc1LCAtMC4wNTI1LCAtMC4wMzc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJTMCYhU0UiOwotICAgICAgc2RmX2NvbmQgOiAiUzBfRVFfMV9BTl9TRV9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI3NSwgMC4yNjM3NSwgMC4yNDUsIDAuMjI2MjUsIDAuMjEzNzUsIDAuMTk3NSwgMC4xODI1IiwgXAotICAgICAgICAgICIwLjI4NjI1LCAwLjI3NSwgMC4yNTYyNSwgMC4yMzc1LCAwLjIyNSwgMC4yMDg3NSwgMC4xOTM3NSIsIFwKLSAgICAgICAgICAiMC4yOTg3NSwgMC4yODc1LCAwLjI2ODc1LCAwLjI1LCAwLjIzNzUsIDAuMjIxMjUsIDAuMjA2MjUiLCBcCi0gICAgICAgICAgIjAuMzExMjUsIDAuMywgMC4yODEyNSwgMC4yNjg3NSwgMC4yNSwgMC4yMzM3NSwgMC4yMTg3NSIsIFwKLSAgICAgICAgICAiMC4zMjM3NSwgMC4zMTI1LCAwLjI5Mzc1LCAwLjI4MTI1LCAwLjI2ODc1LCAwLjI0NjI1LCAwLjIzMTI1IiwgXAotICAgICAgICAgICIwLjM0NjI1LCAwLjMzNSwgMC4zMTYyNSwgMC4zMDM3NSwgMC4yODUsIDAuMjY4NzUsIDAuMjUzNzUiLCBcCi0gICAgICAgICAgIjAuMzY3NSwgMC4zNSwgMC4zMzc1LCAwLjMxODc1LCAwLjMwNjI1LCAwLjI4Mzc1LCAwLjI3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE4MTI1LCAwLjE3LCAwLjE1NzUsIDAuMTM4NzUsIDAuMTIsIDAuMDk3NSwgMC4wNzYyNSIsIFwKLSAgICAgICAgICAiMC4xOTI1LCAwLjE4MTI1LCAwLjE2ODc1LCAwLjE1LCAwLjEzMTI1LCAwLjEwODc1LCAwLjA4NzUiLCBcCi0gICAgICAgICAgIjAuMjA1LCAwLjE5Mzc1LCAwLjE4MTI1LCAwLjE2MjUsIDAuMTQzNzUsIDAuMTIxMjUsIDAuMSIsIFwKLSAgICAgICAgICAiMC4yMTc1LCAwLjIwNjI1LCAwLjE5Mzc1LCAwLjE3NSwgMC4xNTYyNSwgMC4xMzM3NSwgMC4xMTI1IiwgXAotICAgICAgICAgICIwLjIzLCAwLjIxODc1LCAwLjIwNjI1LCAwLjE4NzUsIDAuMTY4NzUsIDAuMTQ2MjUsIDAuMTI1IiwgXAotICAgICAgICAgICIwLjI1MjUsIDAuMjQxMjUsIDAuMjIyNSwgMC4yMDM3NSwgMC4xOTEyNSwgMC4xNjI1LCAwLjE0NzUiLCBcCi0gICAgICAgICAgIjAuMjY3NSwgMC4yNTYyNSwgMC4yMzc1LCAwLjIyNSwgMC4yMDYyNSwgMC4xODM3NSwgMC4xNjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihRKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuNTI0NzgxOwotICAgIGZ1bmN0aW9uIDogIk4zMCI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3NlbnNlIDogbm9uX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiByaXNpbmdfZWRnZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMjQ5NDksIDAuMzUzMzg0LCAwLjQ4MDU4NywgMC41NzEzOTUsIDAuNzE2Nzg1LCAwLjg0Mzg4MiwgMS4wMjU2NiIsIFwKLSAgICAgICAgICAiMC4yMzY5NTcsIDAuMzY1Mzg3LCAwLjQ5MjU5LCAwLjU4MzM5NSwgMC43Mjg3ODksIDAuODU1OTA4LCAxLjAzNzY4IiwgXAotICAgICAgICAgICIwLjI1MjA1LCAwLjM4MDQ2OCwgMC41MDc2NTEsIDAuNTk4NDgyLCAwLjc0Mzg4MiwgMC44NzEwOSwgMS4wNTI1NyIsIFwKLSAgICAgICAgICAiMC4yNjc1NDIsIDAuMzk1OTY0LCAwLjUyMzE0MywgMC42MTQwMTMsIDAuNzU5MzcyLCAwLjg4NjU3NywgMS4wNjgxNSIsIFwKLSAgICAgICAgICAiMC4yODMwMDMsIDAuNDExNDMyLCAwLjUzODYyMiwgMC42Mjk0NDksIDAuNzc0ODQxLCAwLjkwMjEyNCwgMS4wODM4IiwgXAotICAgICAgICAgICIwLjMwNzI1LCAwLjQzNTY4OSwgMC41NjI4NTksIDAuNjUzNzI0LCAwLjc5OTA5MywgMC45MjYyOTYsIDEuMTA3NzciLCBcCi0gICAgICAgICAgIjAuMzI4NDA4LCAwLjQ1Njg0NywgMC41ODQwMjcsIDAuNjc0ODk4LCAwLjgyMDI1NiwgMC45NDc0NjEsIDEuMTI5MTYiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTUwOTUsIDAuMzA4Njg2LCAwLjU2OTAwOCwgMC43NTQ2NTIsIDEuMDUwNDYsIDEuMzEyMDksIDEuNjgxNDYiLCBcCi0gICAgICAgICAgIjAuMDU1MDk1LCAwLjMwODY4NiwgMC41NjkwMDUsIDAuNzU0NTk2LCAxLjA1MDQ3LCAxLjMxMjM2LCAxLjY4MTY1IiwgXAotICAgICAgICAgICIwLjA1NTEsIDAuMzA4NzMxLCAwLjU2ODEzNCwgMC43NTQ2NTMsIDEuMDUwNTEsIDEuMzA3NywgMS42ODM0NyIsIFwKLSAgICAgICAgICAiMC4wNTUxLCAwLjMwODcsIDAuNTY4ODk3LCAwLjc1NDg4OCwgMS4wNDg0NSwgMS4zMDgxOCwgMS42ODM3NCIsIFwKLSAgICAgICAgICAiMC4wNTUxMDUsIDAuMzA4NzE3LCAwLjU2ODk2OSwgMC43NTQ2NzIsIDEuMDUwNDQsIDEuMzA5MzYsIDEuNjg0NTciLCBcCi0gICAgICAgICAgIjAuMDU1MDk1LCAwLjMwODY4MiwgMC41Njg4NDYsIDAuNzUzNDkzLCAxLjA1MDQ0LCAxLjMxMjEzLCAxLjY4MzM0IiwgXAotICAgICAgICAgICIwLjA1NTA5OCwgMC4zMDg3LCAwLjU2ODkxOCwgMC43NTQ4OTMsIDEuMDUwNDUsIDEuMzA4MTcsIDEuNjg0MzMiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yNTgzMzQsIDAuNDA1MTI0LCAwLjU1MDY5MiwgMC42NTQ2NTksIDAuODIxMDI3LCAwLjk2NjY0MiwgMS4xNzQ0OSIsIFwKLSAgICAgICAgICAiMC4yNzAxOTEsIDAuNDE2OTcyLCAwLjU2MjU0MSwgMC42NjY1MDUsIDAuODMyODc0LCAwLjk3ODQ5NywgMS4xODYzNCIsIFwKLSAgICAgICAgICAiMC4yODU0ODEsIDAuNDMyMjYzLCAwLjU3Nzg2NSwgMC42ODE3ODQsIDAuODQ4MTcxLCAwLjk5MzY3NSwgMS4yMDE2MSIsIFwKLSAgICAgICAgICAiMC4zMDA5LCAwLjQ0NzY3MiwgMC41OTMyNjgsIDAuNjk3MjE3LCAwLjg2MzYwMSwgMS4wMDkxOSwgMS4yMTY5NiIsIFwKLSAgICAgICAgICAiMC4zMTYzNTksIDAuNDYzMTQxLCAwLjYwODcwOCwgMC43MTI2NzIsIDAuODc5MDQxLCAxLjAyNDY2LCAxLjIzMjUxIiwgXAotICAgICAgICAgICIwLjM0MDc5OCwgMC40ODc1ODIsIDAuNjMzMTQ5LCAwLjczNzExNCwgMC45MDM0ODIsIDEuMDQ5MSwgMS4yNTY5NSIsIFwKLSAgICAgICAgICAiMC4zNjE5NjcsIDAuNTA4NzUsIDAuNjU0MzIxLCAwLjc1ODI5LCAwLjkyNDY3MSwgMS4wNzAyNSwgMS4yNzgwNSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1ODQ2MywgMC4zNDQzMDIsIDAuNjM0ODgsIDAuODQxMjY1LCAxLjE3MTQzLCAxLjQ2MDMyLCAxLjg3OTY4IiwgXAotICAgICAgICAgICIwLjA1ODUxMiwgMC4zNDQzMTIsIDAuNjM0ODY5LCAwLjg0MTYwNywgMS4xNzMyNiwgMS40NjI0NiwgMS44Nzk2NCIsIFwKLSAgICAgICAgICAiMC4wNTg0NzYsIDAuMzQzMjA4LCAwLjYzMzA0MiwgMC44NDE3MjUsIDEuMTcxMTEsIDEuNDYzNjgsIDEuODc5NjUiLCBcCi0gICAgICAgICAgIjAuMDU4NTAyLCAwLjM0NDI4OCwgMC42MzQ5NDgsIDAuODQxNjQ3LCAxLjE3MTA3LCAxLjQ2MDc0LCAxLjg4MDk0IiwgXAotICAgICAgICAgICIwLjA1ODUwMywgMC4zNDQyOTMsIDAuNjM0ODY2LCAwLjg0MTU2NiwgMS4xNzM4MSwgMS40NjAxLCAxLjg3OTY0IiwgXAotICAgICAgICAgICIwLjA1ODQ3LCAwLjM0NDI4NiwgMC42MzQ4NjgsIDAuODQxNTQ1LCAxLjE3MzI5LCAxLjQ1OTgxLCAxLjg3OTY2IiwgXAotICAgICAgICAgICIwLjA1ODQ3OSwgMC4zNDQ0NTksIDAuNjM0OTA5LCAwLjg0MDgzNiwgMS4xNzEwOCwgMS40NjExNSwgMS44NzYzMyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwODUyMywgMC4wMDg2MDMsIDAuMDA4NTk5LCAwLjAwODU5NiwgMC4wMDg1OTEsIDAuMDA4NTg5LCAwLjAwODU4NiIsIFwKLSAgICAgICAgICAiMC4wMDg1MTMsIDAuMDA4NTkzLCAwLjAwODU5LCAwLjAwODU4NywgMC4wMDg1ODIsIDAuMDA4NTgxLCAwLjAwODU3NiIsIFwKLSAgICAgICAgICAiMC4wMDg1MDEsIDAuMDA4NTgsIDAuMDA4NTc3LCAwLjAwODU3MywgMC4wMDg1NjksIDAuMDA4NTY4LCAwLjAwODU2NSIsIFwKLSAgICAgICAgICAiMC4wMDg0OTIsIDAuMDA4NTcyLCAwLjAwODU2OSwgMC4wMDg1NjQsIDAuMDA4NTYxLCAwLjAwODU1OCwgMC4wMDg1NTUiLCBcCi0gICAgICAgICAgIjAuMDA4NDg1LCAwLjAwODU2NSwgMC4wMDg1NjQsIDAuMDA4NTYsIDAuMDA4NTU2LCAwLjAwODU1MiwgMC4wMDg1NTEiLCBcCi0gICAgICAgICAgIjAuMDA4NDcyLCAwLjAwODU1MywgMC4wMDg1NSwgMC4wMDg1NDYsIDAuMDA4NTQyLCAwLjAwODU0LCAwLjAwODUzNyIsIFwKLSAgICAgICAgICAiMC4wMDg0NjYsIDAuMDA4NTQ4LCAwLjAwODU0NCwgMC4wMDg1NDIsIDAuMDA4NTM3LCAwLjAwODUzNCwgMC4wMDg1MzIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwODc0NiwgMC4wMDg4NzcsIDAuMDA4ODkzLCAwLjAwODg5OCwgMC4wMDg5MDMsIDAuMDA4OTA1LCAwLjAwODkwNyIsIFwKLSAgICAgICAgICAiMC4wMDg3MzcsIDAuMDA4ODY1LCAwLjAwODg4MSwgMC4wMDg4ODYsIDAuMDA4ODkxLCAwLjAwODg5MiwgMC4wMDg4OTUiLCBcCi0gICAgICAgICAgIjAuMDA4NzI3LCAwLjAwODg1NCwgMC4wMDg4NywgMC4wMDg4NzYsIDAuMDA4ODgsIDAuMDA4ODgyLCAwLjAwODg4NCIsIFwKLSAgICAgICAgICAiMC4wMDg3MTUsIDAuMDA4ODQ1LCAwLjAwODg2MSwgMC4wMDg4NjYsIDAuMDA4ODcxLCAwLjAwODg3MywgMC4wMDg4NzUiLCBcCi0gICAgICAgICAgIjAuMDA4NzEzLCAwLjAwODg0MywgMC4wMDg4NTksIDAuMDA4ODY0LCAwLjAwODg2OCwgMC4wMDg4NywgMC4wMDg4NzIiLCBcCi0gICAgICAgICAgIjAuMDA4NzEsIDAuMDA4ODM5LCAwLjAwODg1NSwgMC4wMDg4NiwgMC4wMDg4NjQsIDAuMDA4ODY2LCAwLjAwODg2OCIsIFwKLSAgICAgICAgICAiMC4wMDg3MTYsIDAuMDA4ODQ0LCAwLjAwODg2LCAwLjAwODg2NSwgMC4wMDg4NjksIDAuMDA4ODcxLCAwLjAwODg3MyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUzApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTUxNjY4OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTUxNjA5OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTUxNjY4OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNjA5LCAwLjAwNjA4NSwgMC4wMDYwNzgsIDAuMDA2MDc0LCAwLjAwNjA3MSwgMC4wMDYwNjgsIDAuMDA2MDY2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA3MTk5LCAwLjAwNzE3NywgMC4wMDcxNjEsIDAuMDA3MTUxLCAwLjAwNzE0MywgMC4wMDcxMzUsIDAuMDA3MTMzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJTRSA9PSAxJ2IwIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wNjI1LCAtMC4wNTEyNSwgLTAuMDM4NzUsIC0wLjAyNjI1LCAtMC4wMTM3NSwgMC4wMDI1LCAwLjAxNzUiLCBcCi0gICAgICAgICAgIi0wLjA3Mzc1LCAtMC4wNjI1LCAtMC4wNSwgLTAuMDM3NSwgLTAuMDI1LCAtMC4wMDg3NSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDg2MjUsIC0wLjA3NSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA0Mzc1LCAtMC4wMjc1LCAtMC4wMTI1IiwgXAotICAgICAgICAgICItMC4xMDUsIC0wLjA5Mzc1LCAtMC4wODEyNSwgLTAuMDY4NzUsIC0wLjA1NjI1LCAtMC4wNCwgLTAuMDI1IiwgXAotICAgICAgICAgICItMC4xMTc1LCAtMC4xMDYyNSwgLTAuMDkzNzUsIC0wLjA4MTI1LCAtMC4wNzUsIC0wLjA1ODc1LCAtMC4wMzc1IiwgXAotICAgICAgICAgICItMC4xNCwgLTAuMTI4NzUsIC0wLjExNjI1LCAtMC4xMDM3NSwgLTAuMDk3NSwgLTAuMDgxMjUsIC0wLjA2NjI1IiwgXAotICAgICAgICAgICItMC4xNTUsIC0wLjE0Mzc1LCAtMC4xMzc1LCAtMC4xMjUsIC0wLjExMjUsIC0wLjA5NjI1LCAtMC4wODEyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAyNSwgLTAuMDEzNzUsIC0wLjAwMTI1LCAwLjAxMTI1LCAwLjAyMzc1LCAwLjA0LCAwLjA1NSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAxODc1LCAtMC4wMDYyNSwgMCwgMC4wMTI1LCAwLjAyODc1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzc1LCAtMC4wMTg3NSwgLTAuMDEyNSwgMCwgMC4wMTYyNSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNDM3NSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDEyNSwgMC4wMDM3NSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDY3NSwgLTAuMDU2MjUsIC0wLjA0Mzc1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMDg3NSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDgzNzUsIC0wLjA3MjUsIC0wLjA2LCAtMC4wNDc1LCAtMC4wNDEyNSwgLTAuMDI1LCAtMC4wMSIsIFwKLSAgICAgICAgICAiLTAuMDkyNSwgLTAuMDg3NSwgLTAuMDc1LCAtMC4wNjI1LCAtMC4wNSwgLTAuMDQsIC0wLjAyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIVNFIjsKLSAgICAgIHNkZl9jb25kIDogIlNFID09IDEnYjAiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI2MjUsIDAuMjUxMjUsIDAuMjMyNSwgMC4yMTM3NSwgMC4yMDEyNSwgMC4xODUsIDAuMTciLCBcCi0gICAgICAgICAgIjAuMjczNzUsIDAuMjYyNSwgMC4yNDM3NSwgMC4yMjUsIDAuMjEyNSwgMC4xOTYyNSwgMC4xODEyNSIsIFwKLSAgICAgICAgICAiMC4yODYyNSwgMC4yNzUsIDAuMjU2MjUsIDAuMjM3NSwgMC4yMjUsIDAuMjA4NzUsIDAuMTkzNzUiLCBcCi0gICAgICAgICAgIjAuMjk4NzUsIDAuMjg3NSwgMC4yNjg3NSwgMC4yNSwgMC4yMzc1LCAwLjIyMTI1LCAwLjIwNjI1IiwgXAotICAgICAgICAgICIwLjMxMTI1LCAwLjMsIDAuMjgxMjUsIDAuMjY4NzUsIDAuMjUsIDAuMjMzNzUsIDAuMjE4NzUiLCBcCi0gICAgICAgICAgIjAuMzMzNzUsIDAuMzIyNSwgMC4zMDM3NSwgMC4yODUsIDAuMjcyNSwgMC4yNTYyNSwgMC4yNDEyNSIsIFwKLSAgICAgICAgICAiMC4zNTUsIDAuMzM3NSwgMC4zMTg3NSwgMC4zMDYyNSwgMC4yOTM3NSwgMC4yNzEyNSwgMC4yNTYyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMsIDAuMjgyNSwgMC4yNywgMC4yNTEyNSwgMC4yMzg3NSwgMC4yMjI1LCAwLjIwNzUiLCBcCi0gICAgICAgICAgIjAuMzExMjUsIDAuMywgMC4yODEyNSwgMC4yNjI1LCAwLjI1LCAwLjIzMzc1LCAwLjIxODc1IiwgXAotICAgICAgICAgICIwLjMyMzc1LCAwLjMxMjUsIDAuMjkzNzUsIDAuMjgxMjUsIDAuMjY4NzUsIDAuMjQ2MjUsIDAuMjMxMjUiLCBcCi0gICAgICAgICAgIjAuMzQyNSwgMC4zMjUsIDAuMzA2MjUsIDAuMjkzNzUsIDAuMjgxMjUsIDAuMjU4NzUsIDAuMjQzNzUiLCBcCi0gICAgICAgICAgIjAuMzU1LCAwLjMzNzUsIDAuMzI1LCAwLjMwNjI1LCAwLjI5Mzc1LCAwLjI3NzUsIDAuMjYyNSIsIFwKLSAgICAgICAgICAiMC4zNzEyNSwgMC4zNiwgMC4zNDEyNSwgMC4zMjg3NSwgMC4zMTYyNSwgMC4yOTM3NSwgMC4yNzg3NSIsIFwKLSAgICAgICAgICAiMC4zODYyNSwgMC4zNzUsIDAuMzU2MjUsIDAuMzQzNzUsIDAuMzMxMjUsIDAuMzA4NzUsIDAuMjkzNzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFNFKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDEzNjk5ODsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDEzNjkyMTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDEzNjk5ODsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDQ0NDMsIDAuMDA0NDQyLCAwLjAwNDQ0MiwgMC4wMDQ0NDIsIDAuMDA0NDQyLCAwLjAwNDQ0MSwgMC4wMDQ0NCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNTUwNywgMC4wMDU0ODIsIDAuMDA1NDYzLCAwLjAwNTQ1MywgMC4wMDU0NDYsIDAuMDA1NDM4LCAwLjAwNTQzMiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRDAmIUQxJiFTMCZTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEMF9FUV8wX0FOX0QxX0VRXzBfQU5fUzBfRVFfMF9BTl9TSV9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjA4MTI1LCAtMC4wNywgLTAuMDU3NSwgLTAuMDQ1LCAtMC4wMzg3NSwgLTAuMDE2MjUsIC0wLjAwNzUiLCBcCi0gICAgICAgICAgIi0wLjA5MjUsIC0wLjA4MTI1LCAtMC4wNjg3NSwgLTAuMDU2MjUsIC0wLjA0Mzc1LCAtMC4wMjc1LCAtMC4wMTI1IiwgXAotICAgICAgICAgICItMC4xMDUsIC0wLjA5Mzc1LCAtMC4wODEyNSwgLTAuMDY4NzUsIC0wLjA2MjUsIC0wLjA0LCAtMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMTE3NSwgLTAuMTA2MjUsIC0wLjA5Mzc1LCAtMC4wODc1LCAtMC4wNzUsIC0wLjA1ODc1LCAtMC4wNDM3NSIsIFwKLSAgICAgICAgICAiLTAuMTMsIC0wLjEyNSwgLTAuMTEyNSwgLTAuMSwgLTAuMDg3NSwgLTAuMDcxMjUsIC0wLjA1NjI1IiwgXAotICAgICAgICAgICItMC4xNTI1LCAtMC4xNDEyNSwgLTAuMTI4NzUsIC0wLjExNjI1LCAtMC4xMSwgLTAuMDkzNzUsIC0wLjA3ODc1IiwgXAotICAgICAgICAgICItMC4xNzM3NSwgLTAuMTYyNSwgLTAuMTUsIC0wLjEzNzUsIC0wLjEyNSwgLTAuMTA4NzUsIC0wLjA5Mzc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDYyNSwgMC4wMTc1LCAwLjAzNjI1LCAwLjA0ODc1LCAwLjA2MTI1LCAwLjA4Mzc1LCAwLjA5ODc1IiwgXAotICAgICAgICAgICItMC4wMDUsIDAuMDA2MjUsIDAuMDI1LCAwLjAzNzUsIDAuMDUsIDAuMDcyNSwgMC4wOTM3NSIsIFwKLSAgICAgICAgICAiLTAuMDExMjUsIC0wLjAwNjI1LCAwLjAxMjUsIDAuMDI1LCAwLjAzNzUsIDAuMDYsIDAuMDgxMjUiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTI1LCAwLCAwLjAxMjUsIDAuMDI1LCAwLjA0NzUsIDAuMDY4NzUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMjUsIC0wLjAxMjUsIDAsIDAuMDEyNSwgMC4wMzUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIi0wLjA1MjUsIC0wLjA0MTI1LCAtMC4wMjg3NSwgLTAuMDE2MjUsIC0wLjAwMzc1LCAwLjAxODc1LCAwLjA0IiwgXAotICAgICAgICAgICItMC4wNjc1LCAtMC4wNTYyNSwgLTAuMDQzNzUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgMC4wMDM3NSwgMC4wMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUQwJkQxJlMwJiFTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEMF9FUV8wX0FOX0QxX0VRXzFfQU5fUzBfRVFfMV9BTl9TSV9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAyNSwgLTAuMDEzNzUsIC0wLjAwMTI1LCAwLjAxNzUsIDAuMDMsIDAuMDUyNSwgMC4wNzM3NSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAyNSwgLTAuMDEyNSwgMCwgMC4wMTg3NSwgMC4wNDEyNSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNDM3NSwgLTAuMDI1LCAtMC4wMTI1LCAwLCAwLjAyMjUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIi0wLjA2NzUsIC0wLjA1NjI1LCAtMC4wNDM3NSwgLTAuMDMxMjUsIC0wLjAxMjUsIDAuMDEsIDAuMDI1IiwgXAotICAgICAgICAgICItMC4wODYyNSwgLTAuMDc1LCAtMC4wNTYyNSwgLTAuMDQzNzUsIC0wLjAzMTI1LCAtMC4wMDg3NSwgMC4wMTI1IiwgXAotICAgICAgICAgICItMC4xMDg3NSwgLTAuMDk3NSwgLTAuMDg1LCAtMC4wNjYyNSwgLTAuMDUzNzUsIC0wLjAzMTI1LCAtMC4wMSIsIFwKLSAgICAgICAgICAiLTAuMTIzNzUsIC0wLjExMjUsIC0wLjEsIC0wLjA4NzUsIC0wLjA2ODc1LCAtMC4wNDYyNSwgLTAuMDMxMjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4xMTI1LCAtMC4xMDc1LCAtMC4wOTUsIC0wLjA4MjUsIC0wLjA3LCAtMC4wNTM3NSwgLTAuMDQ1IiwgXAotICAgICAgICAgICItMC4xMywgLTAuMTE4NzUsIC0wLjEwNjI1LCAtMC4wOTM3NSwgLTAuMDgxMjUsIC0wLjA3MTI1LCAtMC4wNTYyNSIsIFwKLSAgICAgICAgICAiLTAuMTQyNSwgLTAuMTMxMjUsIC0wLjExODc1LCAtMC4xMTI1LCAtMC4xLCAtMC4wODM3NSwgLTAuMDY4NzUiLCBcCi0gICAgICAgICAgIi0wLjE1NSwgLTAuMTQzNzUsIC0wLjEzNzUsIC0wLjEyNSwgLTAuMTEyNSwgLTAuMDk2MjUsIC0wLjA4NzUiLCBcCi0gICAgICAgICAgIi0wLjE3Mzc1LCAtMC4xNjI1LCAtMC4xNSwgLTAuMTM3NSwgLTAuMTI1LCAtMC4xMTUsIC0wLjEiLCBcCi0gICAgICAgICAgIi0wLjE5LCAtMC4xODUsIC0wLjE3MjUsIC0wLjE2LCAtMC4xNDc1LCAtMC4xMzc1LCAtMC4xMjI1IiwgXAotICAgICAgICAgICItMC4yMTEyNSwgLTAuMiwgLTAuMTg3NSwgLTAuMTc1LCAtMC4xNjg3NSwgLTAuMTUyNSwgLTAuMTM3NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUQwJiFEMSYhUzAmU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRDBfRVFfMF9BTl9EMV9FUV8wX0FOX1MwX0VRXzBfQU5fU0lfRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNSwgMC4xMzI1LCAwLjEyLCAwLjEwNzUsIDAuMDk1LCAwLjA3MjUsIDAuMDYzNzUiLCBcCi0gICAgICAgICAgIjAuMTU1LCAwLjE0Mzc1LCAwLjEzMTI1LCAwLjExMjUsIDAuMSwgMC4wODM3NSwgMC4wNjg3NSIsIFwKLSAgICAgICAgICAiMC4xNzM3NSwgMC4xNTYyNSwgMC4xNDM3NSwgMC4xMjUsIDAuMTE4NzUsIDAuMDk2MjUsIDAuMDg3NSIsIFwKLSAgICAgICAgICAiMC4xODYyNSwgMC4xNjg3NSwgMC4xNTYyNSwgMC4xNDM3NSwgMC4xMzEyNSwgMC4xMDg3NSwgMC4xIiwgXAotICAgICAgICAgICIwLjE5ODc1LCAwLjE4NzUsIDAuMTY4NzUsIDAuMTU2MjUsIDAuMTQzNzUsIDAuMTI3NSwgMC4xMTI1IiwgXAotICAgICAgICAgICIwLjIyMTI1LCAwLjIwMzc1LCAwLjE5MTI1LCAwLjE3ODc1LCAwLjE2NjI1LCAwLjE0Mzc1LCAwLjEzNSIsIFwKLSAgICAgICAgICAiMC4yMzYyNSwgMC4yMjUsIDAuMjEyNSwgMC4xOTM3NSwgMC4xODEyNSwgMC4xNjUsIDAuMTUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTI1LCAwLjEwMTI1LCAwLjA4MjUsIDAuMDcsIDAuMDUxMjUsIDAuMDI4NzUsIDAuMDA3NSIsIFwKLSAgICAgICAgICAiMC4xMjM3NSwgMC4xMTI1LCAwLjA5Mzc1LCAwLjA3NSwgMC4wNjI1LCAwLjAzMzc1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMTM2MjUsIDAuMTI1LCAwLjEwNjI1LCAwLjA4NzUsIDAuMDc1LCAwLjA0NjI1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICIwLjE0ODc1LCAwLjEzNzUsIDAuMTE4NzUsIDAuMSwgMC4wODc1LCAwLjA1ODc1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjE2MTI1LCAwLjE1LCAwLjEzMTI1LCAwLjExMjUsIDAuMSwgMC4wNzEyNSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiMC4xNzc1LCAwLjE2NjI1LCAwLjE1Mzc1LCAwLjEzNSwgMC4xMTYyNSwgMC4wOTM3NSwgMC4wNzI1IiwgXAotICAgICAgICAgICIwLjE5ODc1LCAwLjE4NzUsIDAuMTY4NzUsIDAuMTUsIDAuMTM3NSwgMC4xMDg3NSwgMC4wODc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRDAmRDEmUzAmIVNJIjsKLSAgICAgIHNkZl9jb25kIDogIkQwX0VRXzBfQU5fRDFfRVFfMV9BTl9TMF9FUV8xX0FOX1NJX0VRXzAgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTE4NzUsIDAuMTA3NSwgMC4wODg3NSwgMC4wNzYyNSwgMC4wNTc1LCAwLjAzNSwgMC4wMTM3NSIsIFwKLSAgICAgICAgICAiMC4xMywgMC4xMTg3NSwgMC4xLCAwLjA4NzUsIDAuMDY4NzUsIDAuMDQ2MjUsIDAuMDI1IiwgXAotICAgICAgICAgICIwLjE0MjUsIDAuMTMxMjUsIDAuMTE4NzUsIDAuMSwgMC4wODc1LCAwLjA1ODc1LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIjAuMTYxMjUsIDAuMTUsIDAuMTMxMjUsIDAuMTE4NzUsIDAuMSwgMC4wNzc1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICIwLjE3Mzc1LCAwLjE2MjUsIDAuMTUsIDAuMTMxMjUsIDAuMTE4NzUsIDAuMDksIDAuMDY4NzUiLCBcCi0gICAgICAgICAgIjAuMTk2MjUsIDAuMTg1LCAwLjE3MjUsIDAuMTUzNzUsIDAuMTQxMjUsIDAuMTEyNSwgMC4wOTEyNSIsIFwKLSAgICAgICAgICAiMC4yMTc1LCAwLjIwNjI1LCAwLjE4NzUsIDAuMTc1LCAwLjE1NjI1LCAwLjEzMzc1LCAwLjExMjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMDYyNSwgMC4xOTUsIDAuMTc2MjUsIDAuMTU3NSwgMC4xNDUsIDAuMTI4NzUsIDAuMTEzNzUiLCBcCi0gICAgICAgICAgIjAuMjE3NSwgMC4yMDYyNSwgMC4xODc1LCAwLjE3NSwgMC4xNTYyNSwgMC4xNCwgMC4xMjUiLCBcCi0gICAgICAgICAgIjAuMjMsIDAuMjE4NzUsIDAuMiwgMC4xODc1LCAwLjE3NSwgMC4xNTI1LCAwLjEzNzUiLCBcCi0gICAgICAgICAgIjAuMjQ4NzUsIDAuMjM3NSwgMC4yMTg3NSwgMC4yLCAwLjE4NzUsIDAuMTcxMjUsIDAuMTU2MjUiLCBcCi0gICAgICAgICAgIjAuMjYxMjUsIDAuMjUsIDAuMjMxMjUsIDAuMjE4NzUsIDAuMiwgMC4xODM3NSwgMC4xNjg3NSIsIFwKLSAgICAgICAgICAiMC4yODM3NSwgMC4yNzI1LCAwLjI1Mzc1LCAwLjIzNSwgMC4yMjI1LCAwLjIwNjI1LCAwLjE5MTI1IiwgXAotICAgICAgICAgICIwLjI5ODc1LCAwLjI4NzUsIDAuMjY4NzUsIDAuMjU2MjUsIDAuMjQzNzUsIDAuMjIxMjUsIDAuMjA2MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFNJKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA4NDQ1Mjc7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwODQxMzc2OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDg0NDUyNzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDI5MDUsIDAuMDAyODg2LCAwLjAwMjg3NiwgMC4wMDI4NjksIDAuMDAyODYzLCAwLjAwMjg1NywgMC4wMDI4NTQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDQ4MjIsIDAuMDA0ODEyLCAwLjAwNDgwNiwgMC4wMDQ4MDIsIDAuMDA0Nzk5LCAwLjAwNDc5NSwgMC4wMDQ3OTMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiU0UiOwotICAgICAgc2RmX2NvbmQgOiAiU0UgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDkzNzUsIC0wLjA4MjUsIC0wLjA3NjI1LCAtMC4wNjM3NSwgLTAuMDUxMjUsIC0wLjAzNSwgLTAuMDIiLCBcCi0gICAgICAgICAgIi0wLjEwNSwgLTAuMDkzNzUsIC0wLjA4MTI1LCAtMC4wNzUsIC0wLjA2MjUsIC0wLjA0NjI1LCAtMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMTE3NSwgLTAuMTEyNSwgLTAuMSwgLTAuMDg3NSwgLTAuMDc1LCAtMC4wNTg3NSwgLTAuMDQzNzUiLCBcCi0gICAgICAgICAgIi0wLjEzNjI1LCAtMC4xMjUsIC0wLjExMjUsIC0wLjEsIC0wLjA4NzUsIC0wLjA3MTI1LCAtMC4wNTYyNSIsIFwKLSAgICAgICAgICAiLTAuMTQ4NzUsIC0wLjEzNzUsIC0wLjEyNSwgLTAuMTEyNSwgLTAuMSwgLTAuMDgzNzUsIC0wLjA2ODc1IiwgXAotICAgICAgICAgICItMC4xNjUsIC0wLjE2LCAtMC4xNDc1LCAtMC4xMzUsIC0wLjEyMjUsIC0wLjEwNjI1LCAtMC4wOTEyNSIsIFwKLSAgICAgICAgICAiLTAuMTg2MjUsIC0wLjE3NSwgLTAuMTYyNSwgLTAuMTUsIC0wLjEzNzUsIC0wLjEyNzUsIC0wLjExMjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjI1LCAwLjAxNzUsIDAuMDMsIDAuMDQyNSwgMC4wNjEyNSwgMC4wODM3NSwgMC4wOTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDA1LCAwLjAwNjI1LCAwLjAxODc1LCAwLjAzMTI1LCAwLjA1LCAwLjA3MjUsIDAuMDg3NSIsIFwKLSAgICAgICAgICAiLTAuMDE3NSwgLTAuMDA2MjUsIDAuMDA2MjUsIDAuMDE4NzUsIDAuMDM3NSwgMC4wNiwgMC4wNzUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAuMDA2MjUsIDAuMDI1LCAwLjA0NzUsIDAuMDY4NzUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgMCwgMC4wMTI1LCAwLjAzNSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiLTAuMDU4NzUsIC0wLjA0NzUsIC0wLjAzNSwgLTAuMDIyNSwgLTAuMDAzNzUsIDAuMDE4NzUsIDAuMDMzNzUiLCBcCi0gICAgICAgICAgIi0wLjA3Mzc1LCAtMC4wNjI1LCAtMC4wNSwgLTAuMDM3NSwgLTAuMDE4NzUsIDAuMDAzNzUsIDAuMDE4NzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlNFIjsKLSAgICAgIHNkZl9jb25kIDogIlNFID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE2MjUsIDAuMTQ1LCAwLjEzMjUsIDAuMTIsIDAuMTA3NSwgMC4wODUsIDAuMDc2MjUiLCBcCi0gICAgICAgICAgIjAuMTczNzUsIDAuMTU2MjUsIDAuMTQzNzUsIDAuMTMxMjUsIDAuMTE4NzUsIDAuMDk2MjUsIDAuMDg3NSIsIFwKLSAgICAgICAgICAiMC4xODYyNSwgMC4xNzUsIDAuMTU2MjUsIDAuMTQzNzUsIDAuMTMxMjUsIDAuMTE1LCAwLjEiLCBcCi0gICAgICAgICAgIjAuMTk4NzUsIDAuMTg3NSwgMC4xNjg3NSwgMC4xNTYyNSwgMC4xNDM3NSwgMC4xMjc1LCAwLjExMjUiLCBcCi0gICAgICAgICAgIjAuMjExMjUsIDAuMiwgMC4xODEyNSwgMC4xNjg3NSwgMC4xNTYyNSwgMC4xNCwgMC4xMjUiLCBcCi0gICAgICAgICAgIjAuMjMzNzUsIDAuMjIyNSwgMC4yMDM3NSwgMC4xOTEyNSwgMC4xNzg3NSwgMC4xNjI1LCAwLjE0NzUiLCBcCi0gICAgICAgICAgIjAuMjQ4NzUsIDAuMjM3NSwgMC4yMjUsIDAuMjA2MjUsIDAuMTkzNzUsIDAuMTc3NSwgMC4xNjI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg3NSwgMC4wNzYyNSwgMC4wNTc1LCAwLjA0NSwgMC4wMjYyNSwgMC4wMDM3NSwgLTAuMDE3NSIsIFwKLSAgICAgICAgICAiMC4wOTg3NSwgMC4wODc1LCAwLjA2ODc1LCAwLjA1NjI1LCAwLjAzNzUsIDAuMDE1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiMC4xMTEyNSwgMC4xLCAwLjA4MTI1LCAwLjA2ODc1LCAwLjA1LCAwLjAyNzUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMTIzNzUsIDAuMTEyNSwgMC4wOTM3NSwgMC4wODEyNSwgMC4wNjI1LCAwLjA0LCAwLjAxODc1IiwgXAotICAgICAgICAgICIwLjEzNjI1LCAwLjEyNSwgMC4xMDYyNSwgMC4wODc1LCAwLjA3NSwgMC4wNTI1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICIwLjE1MjUsIDAuMTQxMjUsIDAuMTIyNSwgMC4xMSwgMC4wOTEyNSwgMC4wNjg3NSwgMC4wNDc1IiwgXAotICAgICAgICAgICIwLjE3Mzc1LCAwLjE1NjI1LCAwLjE0Mzc1LCAwLjEyNSwgMC4xMTI1LCAwLjA4Mzc1LCAwLjA2MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IFNNREZGSFFYOCAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKFNNREZGSFFYOCkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjc3MTUxMzsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBmZiAoTjMwLFFCSU5UKSB7Ci0gICAgbmV4dF9zdGF0ZSA6ICIoKFNFIFNJKSArICghU0UgKChTMCBEMSkgKyAoIVMwIEQwKSkpKSI7Ci0gICAgY2xvY2tlZF9vbiA6ICJDSyI7Ci0gIH0KLSAgcGluKENLKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA1NTM3Njk7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNTUzNDg5OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDU1Mzc2OTsKLSAgICBjbG9jayA6IHRydWU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyNzg3LCAwLjAwMjc3NiwgMC4wMDI3NjYsIDAuMDAyNzU5LCAwLjAwMjc1MywgMC4wMDI3NDcsIDAuMDAyNzQzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA2MTQyLCAwLjAwNjEzMSwgMC4wMDYxMjQsIDAuMDA2MTE3LCAwLjAwNjExNiwgMC4wMDYxMjIsIDAuMDA2MTI2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRDAmIUQxJiFTMCYhU0UmIVNJIjsKLSAgICAgIHNkZl9jb25kIDogIkQwX0VRXzBfQU5fRDFfRVFfMF9BTl9TMF9FUV8wX0FOX1NFX0VRXzBfQU5fU0lfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjI3NTk5NSwgMC4yODc3ODgsIDAuMzAyOTUxLCAwLjMxODMyNCwgMC4zMzM4MjMsIDAuMzU4MjU3LCAwLjM3OTQ0OCIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMjEyMTQsIDAuMjIzMjg3LCAwLjIzODQ4NiwgMC4yNTM0NjcsIDAuMjY4MjEzLCAwLjI5MTIxNSwgMC4zMTA4ODUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEQwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA4OTk5NDc7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwODk2NjI2OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDg5OTk0NzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDQwODIsIDAuMDA0MDYzLCAwLjAwNDA1NSwgMC4wMDQwNSwgMC4wMDQwNDUsIDAuMDA0MDQsIDAuMDA0MDM3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA2NDI5LCAwLjAwNjQxOSwgMC4wMDY0MTUsIDAuMDA2NDExLCAwLjAwNjQwOSwgMC4wMDY0MDYsIDAuMDA2NDA1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFTMCYhU0UiOwotICAgICAgc2RmX2NvbmQgOiAiUzBfRVFfMF9BTl9TRV9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjE4MTI1LCAtMC4xNywgLTAuMTYzNzUsIC0wLjE1MTI1LCAtMC4xMzg3NSwgLTAuMTIyNSwgLTAuMTEzNzUiLCBcCi0gICAgICAgICAgIi0wLjE5MjUsIC0wLjE4NzUsIC0wLjE3NSwgLTAuMTYyNSwgLTAuMTUsIC0wLjEzMzc1LCAtMC4xMjUiLCBcCi0gICAgICAgICAgIi0wLjIwNSwgLTAuMiwgLTAuMTg3NSwgLTAuMTc1LCAtMC4xNjI1LCAtMC4xNTI1LCAtMC4xMzc1IiwgXAotICAgICAgICAgICItMC4yMjM3NSwgLTAuMjEyNSwgLTAuMiwgLTAuMTg3NSwgLTAuMTc1LCAtMC4xNjUsIC0wLjE1IiwgXAotICAgICAgICAgICItMC4yMzYyNSwgLTAuMjI1LCAtMC4yMTI1LCAtMC4yLCAtMC4xOTM3NSwgLTAuMTc3NSwgLTAuMTYyNSIsIFwKLSAgICAgICAgICAiLTAuMjUyNSwgLTAuMjQ3NSwgLTAuMjM1LCAtMC4yMjI1LCAtMC4yMSwgLTAuMiwgLTAuMTg1IiwgXAotICAgICAgICAgICItMC4yNzM3NSwgLTAuMjYyNSwgLTAuMjUsIC0wLjI0Mzc1LCAtMC4yMzEyNSwgLTAuMjE1LCAtMC4yIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDMxMjUsIC0wLjAyLCAtMC4wMDc1LCAwLjAwNSwgMC4wMTEyNSwgMC4wMjc1LCAwLjA0MjUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAsIDAuMDE2MjUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjA1NSwgLTAuMDQzNzUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgMC4wMDM3NSwgMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjA2NzUsIC0wLjA1NjI1LCAtMC4wNDM3NSwgLTAuMDMxMjUsIC0wLjAxODc1LCAtMC4wMDI1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjA4LCAtMC4wNjg3NSwgLTAuMDU2MjUsIC0wLjA0Mzc1LCAtMC4wMzEyNSwgLTAuMDE1LCAwIiwgXAotICAgICAgICAgICItMC4wOTYyNSwgLTAuMDg1LCAtMC4wNzI1LCAtMC4wNiwgLTAuMDUzNzUsIC0wLjAzNzUsIC0wLjAyMjUiLCBcCi0gICAgICAgICAgIi0wLjExMTI1LCAtMC4xLCAtMC4wODc1LCAtMC4wNzUsIC0wLjA2MjUsIC0wLjA0NjI1LCAtMC4wMzc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhUzAmIVNFIjsKLSAgICAgIHNkZl9jb25kIDogIlMwX0VRXzBfQU5fU0VfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yODEyNSwgMC4yNywgMC4yNTEyNSwgMC4yMzg3NSwgMC4yMiwgMC4yMDM3NSwgMC4xODg3NSIsIFwKLSAgICAgICAgICAiMC4yOTI1LCAwLjI4MTI1LCAwLjI2MjUsIDAuMjUsIDAuMjMxMjUsIDAuMjE1LCAwLjIiLCBcCi0gICAgICAgICAgIjAuMzA1LCAwLjI5Mzc1LCAwLjI3NSwgMC4yNjI1LCAwLjI1LCAwLjIyNzUsIDAuMjEyNSIsIFwKLSAgICAgICAgICAiMC4zMTc1LCAwLjMwNjI1LCAwLjI4NzUsIDAuMjc1LCAwLjI2MjUsIDAuMjQsIDAuMjI1IiwgXAotICAgICAgICAgICIwLjMzNjI1LCAwLjMxODc1LCAwLjMsIDAuMjg3NSwgMC4yNzUsIDAuMjUyNSwgMC4yMzc1IiwgXAotICAgICAgICAgICIwLjM1MjUsIDAuMzQxMjUsIDAuMzIyNSwgMC4zMSwgMC4yOTc1LCAwLjI3NSwgMC4yNiIsIFwKLSAgICAgICAgICAiMC4zNzM3NSwgMC4zNjI1LCAwLjM0Mzc1LCAwLjMyNSwgMC4zMTI1LCAwLjI5NjI1LCAwLjI4MTI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTg3NSwgMC4xNzYyNSwgMC4xNTc1LCAwLjE0NSwgMC4xMjYyNSwgMC4xMDM3NSwgMC4wODI1IiwgXAotICAgICAgICAgICIwLjE5ODc1LCAwLjE4NzUsIDAuMTY4NzUsIDAuMTU2MjUsIDAuMTM3NSwgMC4xMTUsIDAuMDkzNzUiLCBcCi0gICAgICAgICAgIjAuMjExMjUsIDAuMiwgMC4xODEyNSwgMC4xNjg3NSwgMC4xNSwgMC4xMjc1LCAwLjEwNjI1IiwgXAotICAgICAgICAgICIwLjIyMzc1LCAwLjIxMjUsIDAuMTkzNzUsIDAuMTgxMjUsIDAuMTYyNSwgMC4xNCwgMC4xMTg3NSIsIFwKLSAgICAgICAgICAiMC4yMzYyNSwgMC4yMjUsIDAuMjA2MjUsIDAuMTkzNzUsIDAuMTc1LCAwLjE1MjUsIDAuMTMxMjUiLCBcCi0gICAgICAgICAgIjAuMjU4NzUsIDAuMjQxMjUsIDAuMjI4NzUsIDAuMjEsIDAuMTk3NSwgMC4xNjg3NSwgMC4xNDc1IiwgXAotICAgICAgICAgICIwLjI3Mzc1LCAwLjI2MjUsIDAuMjQzNzUsIDAuMjMxMjUsIDAuMjEyNSwgMC4xOSwgMC4xNjg3NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRDEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDgzMzIzNzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA4Mjk2MTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA4MzMyMzc7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzOTU2LCAwLjAwMzkzNywgMC4wMDM5MjgsIDAuMDAzOTIzLCAwLjAwMzkxOCwgMC4wMDM5MTMsIDAuMDAzOTEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDY2MjMsIDAuMDA2NjE0LCAwLjAwNjYwOSwgMC4wMDY2MDYsIDAuMDA2NjA0LCAwLjAwNjYwMSwgMC4wMDY1OTkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiUzAmIVNFIjsKLSAgICAgIHNkZl9jb25kIDogIlMwX0VRXzFfQU5fU0VfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4xODEyNSwgLTAuMTcsIC0wLjE2Mzc1LCAtMC4xNTEyNSwgLTAuMTM4NzUsIC0wLjEyMjUsIC0wLjExMzc1IiwgXAotICAgICAgICAgICItMC4xOTI1LCAtMC4xODEyNSwgLTAuMTc1LCAtMC4xNjI1LCAtMC4xNSwgLTAuMTMzNzUsIC0wLjEyNSIsIFwKLSAgICAgICAgICAiLTAuMjA1LCAtMC4yLCAtMC4xODc1LCAtMC4xNzUsIC0wLjE2MjUsIC0wLjE0NjI1LCAtMC4xMzc1IiwgXAotICAgICAgICAgICItMC4yMTc1LCAtMC4yMTI1LCAtMC4yLCAtMC4xODc1LCAtMC4xNzUsIC0wLjE2NSwgLTAuMTUiLCBcCi0gICAgICAgICAgIi0wLjIzNjI1LCAtMC4yMjUsIC0wLjIxMjUsIC0wLjIsIC0wLjE5Mzc1LCAtMC4xNzc1LCAtMC4xNjI1IiwgXAotICAgICAgICAgICItMC4yNTI1LCAtMC4yNDc1LCAtMC4yMzUsIC0wLjIyMjUsIC0wLjIxLCAtMC4yLCAtMC4xODUiLCBcCi0gICAgICAgICAgIi0wLjI3Mzc1LCAtMC4yNjI1LCAtMC4yNSwgLTAuMjQzNzUsIC0wLjIzMTI1LCAtMC4yMTUsIC0wLjIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMzc1LCAtMC4wMiwgLTAuMDA3NSwgLTAuMDAxMjUsIDAuMDExMjUsIDAuMDI3NSwgMC4wNDI1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDMxMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAwLCAwLjAxNjI1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wNjEyNSwgLTAuMDQzNzUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAxMjUsIDAuMDAzNzUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjA2NzUsIC0wLjA1NjI1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDI1LCAtMC4wMDg3NSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDgsIC0wLjA2ODc1LCAtMC4wNTYyNSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAyMTI1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDk2MjUsIC0wLjA4NSwgLTAuMDcyNSwgLTAuMDY2MjUsIC0wLjA1Mzc1LCAtMC4wMzc1LCAtMC4wMjI1IiwgXAotICAgICAgICAgICItMC4xMTEyNSwgLTAuMSwgLTAuMDg3NSwgLTAuMDc1LCAtMC4wNjg3NSwgLTAuMDUyNSwgLTAuMDM3NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiUzAmIVNFIjsKLSAgICAgIHNkZl9jb25kIDogIlMwX0VRXzFfQU5fU0VfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yODEyNSwgMC4yNywgMC4yNTEyNSwgMC4yMzg3NSwgMC4yMiwgMC4yMDM3NSwgMC4xODg3NSIsIFwKLSAgICAgICAgICAiMC4yOTI1LCAwLjI4MTI1LCAwLjI2MjUsIDAuMjUsIDAuMjMxMjUsIDAuMjE1LCAwLjIiLCBcCi0gICAgICAgICAgIjAuMzA1LCAwLjI5Mzc1LCAwLjI3NSwgMC4yNjI1LCAwLjI0Mzc1LCAwLjIyNzUsIDAuMjEyNSIsIFwKLSAgICAgICAgICAiMC4zMTc1LCAwLjMwNjI1LCAwLjI4NzUsIDAuMjc1LCAwLjI2MjUsIDAuMjQsIDAuMjI1IiwgXAotICAgICAgICAgICIwLjMzLCAwLjMxODc1LCAwLjMsIDAuMjg3NSwgMC4yNzUsIDAuMjUyNSwgMC4yMzc1IiwgXAotICAgICAgICAgICIwLjM1MjUsIDAuMzQxMjUsIDAuMzIyNSwgMC4zMSwgMC4yOTc1LCAwLjI3NSwgMC4yNiIsIFwKLSAgICAgICAgICAiMC4zNzM3NSwgMC4zNTYyNSwgMC4zNDM3NSwgMC4zMjUsIDAuMzEyNSwgMC4yOTYyNSwgMC4yODEyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE5Mzc1LCAwLjE3NjI1LCAwLjE2Mzc1LCAwLjE0NSwgMC4xMzI1LCAwLjEwMzc1LCAwLjA4MjUiLCBcCi0gICAgICAgICAgIjAuMjA1LCAwLjE4NzUsIDAuMTc1LCAwLjE1NjI1LCAwLjE0Mzc1LCAwLjExNSwgMC4wOTM3NSIsIFwKLSAgICAgICAgICAiMC4yMTc1LCAwLjIsIDAuMTg3NSwgMC4xNjg3NSwgMC4xNTYyNSwgMC4xMjc1LCAwLjEwNjI1IiwgXAotICAgICAgICAgICIwLjIzLCAwLjIxMjUsIDAuMiwgMC4xODEyNSwgMC4xNjg3NSwgMC4xNCwgMC4xMTg3NSIsIFwKLSAgICAgICAgICAiMC4yNDI1LCAwLjIyNSwgMC4yMTI1LCAwLjE5Mzc1LCAwLjE4MTI1LCAwLjE1MjUsIDAuMTMxMjUiLCBcCi0gICAgICAgICAgIjAuMjU4NzUsIDAuMjQ3NSwgMC4yMjg3NSwgMC4yMTYyNSwgMC4xOTc1LCAwLjE3NSwgMC4xNTM3NSIsIFwKLSAgICAgICAgICAiMC4yNzM3NSwgMC4yNjI1LCAwLjI1LCAwLjIzMTI1LCAwLjIxMjUsIDAuMTksIDAuMTY4NzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFEpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMS4wNTM1NzsKLSAgICBmdW5jdGlvbiA6ICJOMzAiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5vbl91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcmlzaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjQ4MTYyLCAwLjMxNDUsIDAuMzc3NTUxLCAwLjQyMjU0NiwgMC40OTQ1MSwgMC41NTc0ODQsIDAuNjQ3NDY4IiwgXAotICAgICAgICAgICIwLjI2MDA4MSwgMC4zMjY0MTcsIDAuMzg5NDcsIDAuNDM0NDY0LCAwLjUwNjQyOCwgMC41NjkzOTgsIDAuNjU5Mzc5IiwgXAotICAgICAgICAgICIwLjI3NTA5NywgMC4zNDE0MjUsIDAuNDA0NDg2LCAwLjQ0OTQ2OCwgMC41MjE0MzQsIDAuNTg0NDA5LCAwLjY3NDM4NyIsIFwKLSAgICAgICAgICAiMC4yOTA2MTYsIDAuMzU2OTU2LCAwLjQyMDAyLCAwLjQ2NDk5OSwgMC41MzY5NjYsIDAuNTk5OTQxLCAwLjY4OTkxNiIsIFwKLSAgICAgICAgICAiMC4zMDYwNDEsIDAuMzcyMzc5LCAwLjQzNTQzLCAwLjQ4MDQyNCwgMC41NTIzODgsIDAuNjE1MzYsIDAuNzA1MzUzIiwgXAotICAgICAgICAgICIwLjMzMDQ0MSwgMC4zOTY3NzksIDAuNDU5ODM4LCAwLjUwNDgyMywgMC41NzY3ODksIDAuNjM5NzY0LCAwLjcyOTc0MiIsIFwKLSAgICAgICAgICAiMC4zNTE0NzIsIDAuNDE3ODA2LCAwLjQ4MDg1NiwgMC41MjU4NTEsIDAuNTk3ODE1LCAwLjY2MDc4OCwgMC43NTA3NzciKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzk5MzQsIDAuMTYxMDEsIDAuMjg3MjEzLCAwLjM3ODMxMSwgMC41MjQ0NzQsIDAuNjUyMTMzLCAwLjgzNzE0NCIsIFwKLSAgICAgICAgICAiMC4wMzk5NDYsIDAuMTYwODY4LCAwLjI4NzI0OCwgMC4zNzg1MjIsIDAuNTI0NDg4LCAwLjY1MjYyMywgMC44MzQ0MDYiLCBcCi0gICAgICAgICAgIjAuMDM5OTM3LCAwLjE2MTAwMiwgMC4yODczNywgMC4zNzc5MzksIDAuNTI0NDY0LCAwLjY1MjI5NSwgMC44MzQyOTkiLCBcCi0gICAgICAgICAgIjAuMDM5OTI0LCAwLjE2MTAxLCAwLjI4NzM2OCwgMC4zNzgzNDEsIDAuNTI0NDY0LCAwLjY1MjI2MSwgMC44MzcwOTkiLCBcCi0gICAgICAgICAgIjAuMDM5OTMxLCAwLjE2MTAwOCwgMC4yODcyMywgMC4zNzgzMTEsIDAuNTI0NTEyLCAwLjY1Mjc1LCAwLjgzNzE2NCIsIFwKLSAgICAgICAgICAiMC4wMzk5MjksIDAuMTYwOTk4LCAwLjI4NzM1NiwgMC4zNzgzNTYsIDAuNTI0NDY2LCAwLjY1MjI3NCwgMC44MzcxMDYiLCBcCi0gICAgICAgICAgIjAuMDM5OTQ4LCAwLjE2MTAwNCwgMC4yODcyMDUsIDAuMzc3Nzc0LCAwLjUyNDUxLCAwLjY1MTQ5OSwgMC44MzQxMTgiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yNzU5OTUsIDAuMzUzMDYzLCAwLjQyNzUxOCwgMC40ODA2MjgsIDAuNTY1NTgxLCAwLjYzOTkyNywgMC43NDYxNDIiLCBcCi0gICAgICAgICAgIjAuMjg3Nzg4LCAwLjM2NDg2OSwgMC40MzkzMjgsIDAuNDkyNDM4LCAwLjU3NzM5MSwgMC42NTE3MzYsIDAuNzU3OTU2IiwgXAotICAgICAgICAgICIwLjMwMjk1MSwgMC4zODAwMjYsIDAuNDU0NDksIDAuNTA3NTk5LCAwLjU5MjU1MywgMC42NjY5MTUsIDAuNzczMTA4IiwgXAotICAgICAgICAgICIwLjMxODMyNCwgMC4zOTU0MTIsIDAuNDY5ODg2LCAwLjUyMjk4NSwgMC42MDc5NDQsIDAuNjgyMzA5LCAwLjc4ODUwNSIsIFwKLSAgICAgICAgICAiMC4zMzM4MjMsIDAuNDEwOTA4LCAwLjQ4NTM2NywgMC41Mzg0NzksIDAuNjIzNDI3LCAwLjY5Nzc3NywgMC44MDM5OTkiLCBcCi0gICAgICAgICAgIjAuMzU4MjU3LCAwLjQzNTMzLCAwLjUwOTc5NSwgMC41NjI5MDQsIDAuNjQ3ODcyLCAwLjcyMjIxMSwgMC44Mjg0MjgiLCBcCi0gICAgICAgICAgIjAuMzc5NDQ4LCAwLjQ1NjUyMywgMC41MzA5ODMsIDAuNTg0MDg5LCAwLjY2OTA1MSwgMC43NDM0MTUsIDAuODQ5NjEzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQxNDksIDAuMTgzODExLCAwLjMzMDc3NywgMC40MzU5NTcsIDAuNjA1OTg4LCAwLjc1MzkzNCwgMC45NjczMDEiLCBcCi0gICAgICAgICAgIjAuMDQxNDcyLCAwLjE4MzgwNywgMC4zMzA2NDksIDAuNDM2ODE4LCAwLjYwNjgwNSwgMC43NTI5MDgsIDAuOTY3MzA3IiwgXAotICAgICAgICAgICIwLjA0MTQ2OSwgMC4xODQwMDYsIDAuMzMxMDA3LCAwLjQzNjI2NywgMC42MDYxMjYsIDAuNzU1MTgzLCAwLjk2NzI5MiIsIFwKLSAgICAgICAgICAiMC4wNDE0NzcsIDAuMTgzNTY5LCAwLjMzMDUxMSwgMC40MzU3ODMsIDAuNjA0NzI5LCAwLjc1NTE4MiwgMC45NjczMDciLCBcCi0gICAgICAgICAgIjAuMDQxNDc1LCAwLjE4Mzc5LCAwLjMzMDYwMSwgMC40MzY4NDIsIDAuNjA2NzI3LCAwLjc1Mjg3MSwgMC45NjczMDgiLCBcCi0gICAgICAgICAgIjAuMDQxNDcyLCAwLjE4Mzc1NywgMC4zMzA1MTMsIDAuNDM2ODU0LCAwLjYwNjkxMiwgMC43NTUyMjgsIDAuOTY3MzE1IiwgXAotICAgICAgICAgICIwLjA0MTQ0MiwgMC4xODM3ODYsIDAuMzMxMDYsIDAuNDM2MTg3LCAwLjYwNDc5OSwgMC43NTUxODMsIDAuOTY3MzE0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEzMTc4LCAwLjAxMzQyMSwgMC4wMTM0NjksIDAuMDEzNDg1LCAwLjAxMzQ5OCwgMC4wMTM1MDYsIDAuMDEzNTExIiwgXAotICAgICAgICAgICIwLjAxMzE3MiwgMC4wMTM0MTEsIDAuMDEzNDU5LCAwLjAxMzQ3NywgMC4wMTM0ODksIDAuMDEzNDk0LCAwLjAxMzUiLCBcCi0gICAgICAgICAgIjAuMDEzMTU4LCAwLjAxMzM5OSwgMC4wMTM0NDYsIDAuMDEzNDY0LCAwLjAxMzQ3NywgMC4wMTM0ODQsIDAuMDEzNDkiLCBcCi0gICAgICAgICAgIjAuMDEzMTQ2LCAwLjAxMzM4OSwgMC4wMTM0MzgsIDAuMDEzNDUzLCAwLjAxMzQ2NiwgMC4wMTM0NzMsIDAuMDEzNDc4IiwgXAotICAgICAgICAgICIwLjAxMzEzOCwgMC4wMTMzODEsIDAuMDEzNDMsIDAuMDEzNDQ1LCAwLjAxMzQ1OSwgMC4wMTM0NjYsIDAuMDEzNDcyIiwgXAotICAgICAgICAgICIwLjAxMzEyNywgMC4wMTMzNywgMC4wMTM0MiwgMC4wMTM0MzMsIDAuMDEzNDQ3LCAwLjAxMzQ1NCwgMC4wMTM0NiIsIFwKLSAgICAgICAgICAiMC4wMTMxMjUsIDAuMDEzMzY1LCAwLjAxMzQxMywgMC4wMTM0MywgMC4wMTM0NDUsIDAuMDEzNDUxLCAwLjAxMzQ1NSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEzMzg1LCAwLjAxMzY5NCwgMC4wMTM3NjEsIDAuMDEzNzgzLCAwLjAxMzgwNCwgMC4wMTM4MTQsIDAuMDEzODIzIiwgXAotICAgICAgICAgICIwLjAxMzM1NCwgMC4wMTM2NzYsIDAuMDEzNzQ1LCAwLjAxMzc2OCwgMC4wMTM3ODgsIDAuMDEzNzk5LCAwLjAxMzgwOSIsIFwKLSAgICAgICAgICAiMC4wMTMzNDUsIDAuMDEzNjY2LCAwLjAxMzczNiwgMC4wMTM3NTgsIDAuMDEzNzc5LCAwLjAxMzc5LCAwLjAxMzc5OSIsIFwKLSAgICAgICAgICAiMC4wMTMzMjcsIDAuMDEzNjUyLCAwLjAxMzcyMywgMC4wMTM3NDcsIDAuMDEzNzY4LCAwLjAxMzc3OSwgMC4wMTM3ODkiLCBcCi0gICAgICAgICAgIjAuMDEzMzMsIDAuMDEzNjUzLCAwLjAxMzcyMywgMC4wMTM3NDYsIDAuMDEzNzY3LCAwLjAxMzc3NywgMC4wMTM3ODciLCBcCi0gICAgICAgICAgIjAuMDEzMzI5LCAwLjAxMzY1MSwgMC4wMTM3MiwgMC4wMTM3NDMsIDAuMDEzNzY0LCAwLjAxMzc3NCwgMC4wMTM3ODMiLCBcCi0gICAgICAgICAgIjAuMDEzMzM3LCAwLjAxMzY1NywgMC4wMTM3MjYsIDAuMDEzNzQ5LCAwLjAxMzc2OSwgMC4wMTM3OCwgMC4wMTM3ODkiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFMwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE1MjAwODsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE1MTk0NDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE1MjAwODsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDYyMjMsIDAuMDA2MjE3LCAwLjAwNjIxMiwgMC4wMDYyMDcsIDAuMDA2MjA1LCAwLjAwNjIwMSwgMC4wMDYyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA3MjcyLCAwLjAwNzI1MSwgMC4wMDcyMzQsIDAuMDA3MjI1LCAwLjAwNzIxNywgMC4wMDcyMDksIDAuMDA3MjA2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJTRSA9PSAxJ2IwIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wNTYyNSwgLTAuMDQ1LCAtMC4wMzI1LCAtMC4wMiwgLTAuMDEzNzUsIDAuMDAyNSwgMC4wMTc1IiwgXAotICAgICAgICAgICItMC4wNjc1LCAtMC4wNTYyNSwgLTAuMDQzNzUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAwODc1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wODYyNSwgLTAuMDc1LCAtMC4wNjI1LCAtMC4wNSwgLTAuMDM3NSwgLTAuMDIxMjUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wOTg3NSwgLTAuMDg3NSwgLTAuMDc1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDQsIC0wLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMTE3NSwgLTAuMTA2MjUsIC0wLjA4NzUsIC0wLjA4MTI1LCAtMC4wNjg3NSwgLTAuMDUyNSwgLTAuMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMTQsIC0wLjEyMjUsIC0wLjExLCAtMC4xMDM3NSwgLTAuMDkxMjUsIC0wLjA3NSwgLTAuMDYiLCBcCi0gICAgICAgICAgIi0wLjE1NSwgLTAuMTQzNzUsIC0wLjEzMTI1LCAtMC4xMTg3NSwgLTAuMTA2MjUsIC0wLjA5LCAtMC4wNzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMjUsIC0wLjAwNzUsIDAuMDA1LCAwLjAxMTI1LCAwLjAyMzc1LCAwLjA0LCAwLjA1NSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAxODc1LCAtMC4wMDYyNSwgMC4wMDYyNSwgMC4wMTI1LCAwLjAyODc1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLCAwLjAxNjI1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA0Mzc1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIDAuMDAzNzUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjA2NzUsIC0wLjA1NjI1LCAtMC4wNDM3NSwgLTAuMDMxMjUsIC0wLjAxODc1LCAtMC4wMDI1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wODM3NSwgLTAuMDcyNSwgLTAuMDYsIC0wLjA0NzUsIC0wLjAzNSwgLTAuMDI1LCAtMC4wMSIsIFwKLSAgICAgICAgICAiLTAuMDkyNSwgLTAuMDgxMjUsIC0wLjA2ODc1LCAtMC4wNjI1LCAtMC4wNSwgLTAuMDMzNzUsIC0wLjAyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIVNFIjsKLSAgICAgIHNkZl9jb25kIDogIlNFID09IDEnYjAiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI2ODc1LCAwLjI1NzUsIDAuMjM4NzUsIDAuMjIsIDAuMjA3NSwgMC4xOTEyNSwgMC4xNzYyNSIsIFwKLSAgICAgICAgICAiMC4yOCwgMC4yNjg3NSwgMC4yNSwgMC4yMzEyNSwgMC4yMTg3NSwgMC4yMDI1LCAwLjE4NzUiLCBcCi0gICAgICAgICAgIjAuMjkyNSwgMC4yODEyNSwgMC4yNjI1LCAwLjI1LCAwLjIzMTI1LCAwLjIxNSwgMC4yIiwgXAotICAgICAgICAgICIwLjMwNSwgMC4yOTM3NSwgMC4yNzUsIDAuMjYyNSwgMC4yNDM3NSwgMC4yMjc1LCAwLjIxMjUiLCBcCi0gICAgICAgICAgIjAuMzE3NSwgMC4zMDYyNSwgMC4yODc1LCAwLjI3NSwgMC4yNjI1LCAwLjI0LCAwLjIyNSIsIFwKLSAgICAgICAgICAiMC4zNCwgMC4zMjg3NSwgMC4zMSwgMC4yOTc1LCAwLjI3ODc1LCAwLjI2MjUsIDAuMjQ3NSIsIFwKLSAgICAgICAgICAiMC4zNjEyNSwgMC4zNDM3NSwgMC4zMzEyNSwgMC4zMTI1LCAwLjMsIDAuMjgzNzUsIDAuMjY4NzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zLCAwLjI4ODc1LCAwLjI3LCAwLjI1NzUsIDAuMjQ1LCAwLjIyMjUsIDAuMjA3NSIsIFwKLSAgICAgICAgICAiMC4zMTc1LCAwLjMsIDAuMjgxMjUsIDAuMjY4NzUsIDAuMjU2MjUsIDAuMjMzNzUsIDAuMjE4NzUiLCBcCi0gICAgICAgICAgIjAuMzMsIDAuMzEyNSwgMC4zLCAwLjI4MTI1LCAwLjI2ODc1LCAwLjI1MjUsIDAuMjM3NSIsIFwKLSAgICAgICAgICAiMC4zNDI1LCAwLjMzMTI1LCAwLjMxMjUsIDAuMywgMC4yODEyNSwgMC4yNjUsIDAuMjUiLCBcCi0gICAgICAgICAgIjAuMzU1LCAwLjM0Mzc1LCAwLjMyNSwgMC4zMTI1LCAwLjMsIDAuMjc3NSwgMC4yNjI1IiwgXAotICAgICAgICAgICIwLjM3NzUsIDAuMzYsIDAuMzQ3NSwgMC4zMjg3NSwgMC4zMTYyNSwgMC4zLCAwLjI4NSIsIFwKLSAgICAgICAgICAiMC4zOTI1LCAwLjM3NSwgMC4zNjI1LCAwLjM0Mzc1LCAwLjMzMTI1LCAwLjMwODc1LCAwLjMiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFNFKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE0NjQzMzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE0NjM0NjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE0NjQzMzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDQ0OSwgMC4wMDQ0ODgsIDAuMDA0NDg4LCAwLjAwNDQ4OCwgMC4wMDQ0ODgsIDAuMDA0NDg4LCAwLjAwNDQ4NyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNTU2MSwgMC4wMDU1MzUsIDAuMDA1NTE3LCAwLjAwNTUwNywgMC4wMDU0OTksIDAuMDA1NDksIDAuMDA1NDg2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEMCYhRDEmIVMwJlNJIjsKLSAgICAgIHNkZl9jb25kIDogIkQwX0VRXzBfQU5fRDFfRVFfMF9BTl9TMF9FUV8wX0FOX1NJX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDgxMjUsIC0wLjA3LCAtMC4wNTc1LCAtMC4wNDUsIC0wLjAzMjUsIC0wLjAxNjI1LCAtMC4wMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDkyNSwgLTAuMDgxMjUsIC0wLjA2ODc1LCAtMC4wNTYyNSwgLTAuMDQzNzUsIC0wLjAyNzUsIC0wLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjEwNSwgLTAuMDkzNzUsIC0wLjA4MTI1LCAtMC4wNjg3NSwgLTAuMDU2MjUsIC0wLjA0LCAtMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMTE3NSwgLTAuMTA2MjUsIC0wLjA5Mzc1LCAtMC4wODEyNSwgLTAuMDc1LCAtMC4wNTI1LCAtMC4wNDM3NSIsIFwKLSAgICAgICAgICAiLTAuMTMsIC0wLjExODc1LCAtMC4xMDYyNSwgLTAuMDkzNzUsIC0wLjA4NzUsIC0wLjA3MTI1LCAtMC4wNTYyNSIsIFwKLSAgICAgICAgICAiLTAuMTUyNSwgLTAuMTQxMjUsIC0wLjEyODc1LCAtMC4xMTYyNSwgLTAuMTAzNzUsIC0wLjA4NzUsIC0wLjA3ODc1IiwgXAotICAgICAgICAgICItMC4xNzM3NSwgLTAuMTYyNSwgLTAuMTUsIC0wLjEzNzUsIC0wLjEyNSwgLTAuMTA4NzUsIC0wLjA5Mzc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDYyNSwgMC4wMTc1LCAwLjAzNjI1LCAwLjA0ODc1LCAwLjA2MTI1LCAwLjA4Mzc1LCAwLjA5ODc1IiwgXAotICAgICAgICAgICItMC4wMDUsIDAuMDA2MjUsIDAuMDI1LCAwLjAzNzUsIDAuMDUsIDAuMDcyNSwgMC4wOTM3NSIsIFwKLSAgICAgICAgICAiLTAuMDE3NSwgLTAuMDA2MjUsIDAuMDEyNSwgMC4wMjUsIDAuMDM3NSwgMC4wNiwgMC4wODEyNSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxMjUsIDAsIDAuMDEyNSwgMC4wMjUsIDAuMDQ3NSwgMC4wNjg3NSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAyNSwgLTAuMDEyNSwgMCwgMC4wMTI1LCAwLjAzNSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiLTAuMDUyNSwgLTAuMDQxMjUsIC0wLjAyODc1LCAtMC4wMTYyNSwgLTAuMDAzNzUsIDAuMDE4NzUsIDAuMDQiLCBcCi0gICAgICAgICAgIi0wLjA2NzUsIC0wLjA1NjI1LCAtMC4wNDM3NSwgLTAuMDMxMjUsIC0wLjAxODc1LCAwLjAwMzc1LCAwLjAyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRDAmRDEmUzAmIVNJIjsKLSAgICAgIHNkZl9jb25kIDogIkQwX0VRXzBfQU5fRDFfRVFfMV9BTl9TMF9FUV8xX0FOX1NJX0VRXzAgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDI1LCAtMC4wMTM3NSwgLTAuMDAxMjUsIDAuMDE3NSwgMC4wMywgMC4wNTI1LCAwLjA3Mzc1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDI1LCAtMC4wMTI1LCAwLjAwNjI1LCAwLjAxODc1LCAwLjA0MTI1LCAwLjA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA1NSwgLTAuMDQzNzUsIC0wLjAyNSwgLTAuMDEyNSwgMCwgMC4wMjI1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICItMC4wNjc1LCAtMC4wNTYyNSwgLTAuMDQzNzUsIC0wLjAyNSwgLTAuMDEyNSwgMC4wMSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDg2MjUsIC0wLjA3NSwgLTAuMDU2MjUsIC0wLjA0Mzc1LCAtMC4wMzEyNSwgLTAuMDAyNSwgMC4wMTI1IiwgXAotICAgICAgICAgICItMC4xMDg3NSwgLTAuMDk3NSwgLTAuMDc4NzUsIC0wLjA2NjI1LCAtMC4wNTM3NSwgLTAuMDMxMjUsIC0wLjAxIiwgXAotICAgICAgICAgICItMC4xMjM3NSwgLTAuMTEyNSwgLTAuMSwgLTAuMDg3NSwgLTAuMDY4NzUsIC0wLjA0NjI1LCAtMC4wMjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4xMTI1LCAtMC4xMDEyNSwgLTAuMDg4NzUsIC0wLjA4MjUsIC0wLjA3LCAtMC4wNTM3NSwgLTAuMDQ1IiwgXAotICAgICAgICAgICItMC4xMjM3NSwgLTAuMTEyNSwgLTAuMTA2MjUsIC0wLjA5Mzc1LCAtMC4wODEyNSwgLTAuMDY1LCAtMC4wNTYyNSIsIFwKLSAgICAgICAgICAiLTAuMTQyNSwgLTAuMTMxMjUsIC0wLjExODc1LCAtMC4xMDYyNSwgLTAuMSwgLTAuMDgzNzUsIC0wLjA2ODc1IiwgXAotICAgICAgICAgICItMC4xNTUsIC0wLjE0Mzc1LCAtMC4xMzEyNSwgLTAuMTI1LCAtMC4xMTI1LCAtMC4wOTYyNSwgLTAuMDg3NSIsIFwKLSAgICAgICAgICAiLTAuMTY3NSwgLTAuMTU2MjUsIC0wLjE1LCAtMC4xMzc1LCAtMC4xMjUsIC0wLjEwODc1LCAtMC4xIiwgXAotICAgICAgICAgICItMC4xOSwgLTAuMTc4NzUsIC0wLjE3MjUsIC0wLjE2LCAtMC4xNDc1LCAtMC4xMzEyNSwgLTAuMTIyNSIsIFwKLSAgICAgICAgICAiLTAuMjA1LCAtMC4yLCAtMC4xODc1LCAtMC4xNzUsIC0wLjE2MjUsIC0wLjE1MjUsIC0wLjEzNzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEMCYhRDEmIVMwJlNJIjsKLSAgICAgIHNkZl9jb25kIDogIkQwX0VRXzBfQU5fRDFfRVFfMF9BTl9TMF9FUV8wX0FOX1NJX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTUsIDAuMTM4NzUsIDAuMTIsIDAuMTA3NSwgMC4wOTUsIDAuMDc4NzUsIDAuMDYzNzUiLCBcCi0gICAgICAgICAgIjAuMTYxMjUsIDAuMTUsIDAuMTMxMjUsIDAuMTE4NzUsIDAuMTA2MjUsIDAuMDksIDAuMDc1IiwgXAotICAgICAgICAgICIwLjE3Mzc1LCAwLjE2MjUsIDAuMTQzNzUsIDAuMTMxMjUsIDAuMTE4NzUsIDAuMTAyNSwgMC4wODc1IiwgXAotICAgICAgICAgICIwLjE4NjI1LCAwLjE3NSwgMC4xNTYyNSwgMC4xNDM3NSwgMC4xMzEyNSwgMC4xMTUsIDAuMSIsIFwKLSAgICAgICAgICAiMC4xOTg3NSwgMC4xODc1LCAwLjE3NSwgMC4xNTYyNSwgMC4xNDM3NSwgMC4xMjc1LCAwLjExMjUiLCBcCi0gICAgICAgICAgIjAuMjIxMjUsIDAuMjEsIDAuMTkxMjUsIDAuMTc4NzUsIDAuMTY2MjUsIDAuMTUsIDAuMTM1IiwgXAotICAgICAgICAgICIwLjI0MjUsIDAuMjMxMjUsIDAuMjEyNSwgMC4yLCAwLjE4NzUsIDAuMTcxMjUsIDAuMTU2MjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTg3NSwgMC4xMDc1LCAwLjA4ODc1LCAwLjA3NjI1LCAwLjA1NzUsIDAuMDM1LCAwLjAxMzc1IiwgXAotICAgICAgICAgICIwLjEzLCAwLjExODc1LCAwLjEsIDAuMDgxMjUsIDAuMDY4NzUsIDAuMDQ2MjUsIDAuMDI1IiwgXAotICAgICAgICAgICIwLjE0MjUsIDAuMTMxMjUsIDAuMTEyNSwgMC4xLCAwLjA4MTI1LCAwLjA1ODc1LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIjAuMTU1LCAwLjE0Mzc1LCAwLjEyNSwgMC4xMDYyNSwgMC4wOTM3NSwgMC4wNzEyNSwgMC4wNSIsIFwKLSAgICAgICAgICAiMC4xNjc1LCAwLjE1NjI1LCAwLjEzNzUsIDAuMTE4NzUsIDAuMTA2MjUsIDAuMDgzNzUsIDAuMDYyNSIsIFwKLSAgICAgICAgICAiMC4xODM3NSwgMC4xNzI1LCAwLjE2LCAwLjE0MTI1LCAwLjEyMjUsIDAuMSwgMC4wNzg3NSIsIFwKLSAgICAgICAgICAiMC4yMDUsIDAuMTkzNzUsIDAuMTc1LCAwLjE1NjI1LCAwLjE0Mzc1LCAwLjEyMTI1LCAwLjEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEMCZEMSZTMCYhU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRDBfRVFfMF9BTl9EMV9FUV8xX0FOX1MwX0VRXzFfQU5fU0lfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTg3NSwgMC4xMDc1LCAwLjA5NSwgMC4wNzYyNSwgMC4wNjM3NSwgMC4wMzUsIDAuMDEzNzUiLCBcCi0gICAgICAgICAgIjAuMTM2MjUsIDAuMTE4NzUsIDAuMTA2MjUsIDAuMDg3NSwgMC4wNzUsIDAuMDQ2MjUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMTQ4NzUsIDAuMTM3NSwgMC4xMTg3NSwgMC4xMDYyNSwgMC4wODc1LCAwLjA2NSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4xNjEyNSwgMC4xNSwgMC4xMzc1LCAwLjExODc1LCAwLjEwNjI1LCAwLjA3NzUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIjAuMTgsIDAuMTY4NzUsIDAuMTUsIDAuMTM3NSwgMC4xMTg3NSwgMC4wOTYyNSwgMC4wNzUiLCBcCi0gICAgICAgICAgIjAuMjAyNSwgMC4xOTEyNSwgMC4xNzI1LCAwLjE2LCAwLjE0MTI1LCAwLjExODc1LCAwLjA5NzUiLCBcCi0gICAgICAgICAgIjAuMjE3NSwgMC4yMDYyNSwgMC4xOTM3NSwgMC4xNzUsIDAuMTYyNSwgMC4xMzM3NSwgMC4xMTI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjEyNSwgMC4xOTUsIDAuMTgyNSwgMC4xNjM3NSwgMC4xNTEyNSwgMC4xMzUsIDAuMTIiLCBcCi0gICAgICAgICAgIjAuMjIzNzUsIDAuMjEyNSwgMC4xOTM3NSwgMC4xNzUsIDAuMTYyNSwgMC4xNDYyNSwgMC4xMzEyNSIsIFwKLSAgICAgICAgICAiMC4yMzYyNSwgMC4yMjUsIDAuMjA2MjUsIDAuMTkzNzUsIDAuMTgxMjUsIDAuMTU4NzUsIDAuMTQzNzUiLCBcCi0gICAgICAgICAgIjAuMjU1LCAwLjIzNzUsIDAuMjI1LCAwLjIwNjI1LCAwLjE5Mzc1LCAwLjE3MTI1LCAwLjE2MjUiLCBcCi0gICAgICAgICAgIjAuMjY3NSwgMC4yNTYyNSwgMC4yMzc1LCAwLjIxODc1LCAwLjIwNjI1LCAwLjE5LCAwLjE3NSIsIFwKLSAgICAgICAgICAiMC4yOSwgMC4yNzI1LCAwLjI2LCAwLjI0MTI1LCAwLjIyODc1LCAwLjIxMjUsIDAuMTk3NSIsIFwKLSAgICAgICAgICAiMC4zMDUsIDAuMjkzNzUsIDAuMjc1LCAwLjI2MjUsIDAuMjQzNzUsIDAuMjI3NSwgMC4yMTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTSSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwODk1ODk4OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDg5MjQ2ODsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA4OTU4OTg7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyOTIsIDAuMDAyOTAxLCAwLjAwMjg5MiwgMC4wMDI4ODQsIDAuMDAyODgsIDAuMDAyODczLCAwLjAwMjg2OSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNDg4LCAwLjAwNDg3LCAwLjAwNDg2NCwgMC4wMDQ4NiwgMC4wMDQ4NTgsIDAuMDA0ODU1LCAwLjAwNDg1MiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJTRSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wOTM3NSwgLTAuMDgyNSwgLTAuMDcsIC0wLjA1NzUsIC0wLjA1MTI1LCAtMC4wMjg3NSwgLTAuMDIiLCBcCi0gICAgICAgICAgIi0wLjEwNSwgLTAuMDkzNzUsIC0wLjA4MTI1LCAtMC4wNjg3NSwgLTAuMDU2MjUsIC0wLjA0LCAtMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMTE3NSwgLTAuMTA2MjUsIC0wLjA5Mzc1LCAtMC4wODEyNSwgLTAuMDc1LCAtMC4wNTg3NSwgLTAuMDQzNzUiLCBcCi0gICAgICAgICAgIi0wLjEzLCAtMC4xMjUsIC0wLjExMjUsIC0wLjEsIC0wLjA4NzUsIC0wLjA3MTI1LCAtMC4wNTYyNSIsIFwKLSAgICAgICAgICAiLTAuMTQyNSwgLTAuMTM3NSwgLTAuMTI1LCAtMC4xMTI1LCAtMC4xLCAtMC4wODM3NSwgLTAuMDY4NzUiLCBcCi0gICAgICAgICAgIi0wLjE2NSwgLTAuMTUzNzUsIC0wLjE0MTI1LCAtMC4xMzUsIC0wLjEyMjUsIC0wLjEwNjI1LCAtMC4wOTEyNSIsIFwKLSAgICAgICAgICAiLTAuMTg2MjUsIC0wLjE3NSwgLTAuMTYyNSwgLTAuMTUsIC0wLjEzNzUsIC0wLjEyMTI1LCAtMC4xMDYyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2MjUsIDAuMDE3NSwgMC4wMywgMC4wNDI1LCAwLjA2MTI1LCAwLjA4Mzc1LCAwLjA5ODc1IiwgXAotICAgICAgICAgICItMC4wMDUsIDAuMDA2MjUsIDAuMDE4NzUsIDAuMDMxMjUsIDAuMDUsIDAuMDcyNSwgMC4wODc1IiwgXAotICAgICAgICAgICItMC4wMTc1LCAtMC4wMDYyNSwgMC4wMDYyNSwgMC4wMTg3NSwgMC4wMzc1LCAwLjA2LCAwLjA3NSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAxODc1LCAtMC4wMDYyNSwgMC4wMTI1LCAwLjAyNSwgMC4wNDc1LCAwLjA2ODc1IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIDAsIDAuMDEyNSwgMC4wMzUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIi0wLjA1ODc1LCAtMC4wNDc1LCAtMC4wMzUsIC0wLjAyMjUsIC0wLjAwMzc1LCAwLjAxODc1LCAwLjA0IiwgXAotICAgICAgICAgICItMC4wNzM3NSwgLTAuMDYyNSwgLTAuMDUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgMC4wMDM3NSwgMC4wMTg3NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiU0UiOwotICAgICAgc2RmX2NvbmQgOiAiU0UgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTYyNSwgMC4xNTEyNSwgMC4xMzI1LCAwLjEyLCAwLjEwNzUsIDAuMDkxMjUsIDAuMDc2MjUiLCBcCi0gICAgICAgICAgIjAuMTczNzUsIDAuMTYyNSwgMC4xNDM3NSwgMC4xMzEyNSwgMC4xMTg3NSwgMC4xMDI1LCAwLjA4NzUiLCBcCi0gICAgICAgICAgIjAuMTg2MjUsIDAuMTc1LCAwLjE1NjI1LCAwLjE0Mzc1LCAwLjEzMTI1LCAwLjExNSwgMC4xIiwgXAotICAgICAgICAgICIwLjE5ODc1LCAwLjE4NzUsIDAuMTc1LCAwLjE1NjI1LCAwLjE0Mzc1LCAwLjEyNzUsIDAuMTEyNSIsIFwKLSAgICAgICAgICAiMC4yMTc1LCAwLjIsIDAuMTg3NSwgMC4xNzUsIDAuMTYyNSwgMC4xNCwgMC4xMzEyNSIsIFwKLSAgICAgICAgICAiMC4yMzM3NSwgMC4yMjI1LCAwLjIxLCAwLjE5MTI1LCAwLjE3ODc1LCAwLjE2MjUsIDAuMTQ3NSIsIFwKLSAgICAgICAgICAiMC4yNTUsIDAuMjQzNzUsIDAuMjI1LCAwLjIxMjUsIDAuMiwgMC4xODM3NSwgMC4xNjg3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5Mzc1LCAwLjA3NjI1LCAwLjA2Mzc1LCAwLjA0NSwgMC4wMzI1LCAwLjAwMzc1LCAtMC4wMTEyNSIsIFwKLSAgICAgICAgICAiMC4xMDUsIDAuMDg3NSwgMC4wNzUsIDAuMDU2MjUsIDAuMDQzNzUsIDAuMDE1LCAwIiwgXAotICAgICAgICAgICIwLjExNzUsIDAuMSwgMC4wODc1LCAwLjA2ODc1LCAwLjA1NjI1LCAwLjAyNzUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4xMjM3NSwgMC4xMTI1LCAwLjEsIDAuMDgxMjUsIDAuMDY4NzUsIDAuMDQsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMTM2MjUsIDAuMTI1LCAwLjExMjUsIDAuMDkzNzUsIDAuMDgxMjUsIDAuMDUyNSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4xNTg3NSwgMC4xNDc1LCAwLjEyODc1LCAwLjExNjI1LCAwLjA5NzUsIDAuMDc1LCAwLjA1Mzc1IiwgXAotICAgICAgICAgICIwLjE3Mzc1LCAwLjE2MjUsIDAuMTQzNzUsIDAuMTMxMjUsIDAuMTEyNSwgMC4wOSwgMC4wNjg3NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IFRCVUZYMTYgKgotICogLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoVEJVRlgxNikgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAxLjAwNDQ1OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDcxNDA2ODsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDcxMjY5OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwNzE0MDY4OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjMzLCAwLjAwMjM3OSwgMC4wMDIzODcsIDAuMDAyMzkxLCAwLjAwMjM5MywgMC4wMDIzOTUsIDAuMDAyMzkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDI0NzEsIDAuMDAyNDUxLCAwLjAwMjQ0OSwgMC4wMDI0NDgsIDAuMDAyNDQ5LCAwLjAwMjQ0OCwgMC4wMDI0NDgiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKE9FKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDQwNTAzOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwNDA0NzQzOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwNDA1MDM7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHNjYWxhcikgewotICAgICAgICB2YWx1ZXMoIjAiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMTE1MjEsIDAuMDExNDQ5LCAwLjAxMTM3NywgMC4wMTEzMDQsIDAuMDExMjU5LCAwLjAxMTIwNiwgMC4wMTExNzciKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDA5NDQzODE7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDA5NDQzODE7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDA5NDQzODE7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMi4yMjI3MjsKLSAgICBmdW5jdGlvbiA6ICJBIjsKLSAgICB0aHJlZV9zdGF0ZSA6ICIoIU9FKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMTk0NDM4LCAwLjAyNTQ0MzgsIDAuMDU5NDQzOCwgMC4wODk0NDM4LCAwLjEyOTQ0NCwgMC4yMDk0NDQsIDAuMjU5NDQ0Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTY2MjUsIDAuMTAxNjAxLCAwLjEyMzY4MSwgMC4xMzk3OTIsIDAuMTU5NzkyLCAwLjE5NzY4MiwgMC4yMjA5NjEiLCBcCi0gICAgICAgICAgIjAuMTA3ODM1LCAwLjExMjg3MSwgMC4xMzQ4NjcsIDAuMTUxMDI2LCAwLjE3MDk5NSwgMC4yMDg5MDcsIDAuMjMyMTg1IiwgXAotICAgICAgICAgICIwLjEyMTI2NCwgMC4xMjYxNTIsIDAuMTQ4MjY4LCAwLjE2NDQxLCAwLjE4NDQxOCwgMC4yMjIzMjIsIDAuMjQ1NjAyIiwgXAotICAgICAgICAgICIwLjEzNDQzNiwgMC4xMzkzNzIsIDAuMTYxNDkxLCAwLjE3NzY3OCwgMC4xOTc2NTYsIDAuMjM1NTg1LCAwLjI1ODg2NyIsIFwKLSAgICAgICAgICAiMC4xNDc3MzYsIDAuMTUyNzA0LCAwLjE3NDgwNSwgMC4xOTEwNzUsIDAuMjExMDUxLCAwLjI0ODk2MywgMC4yNzIyMjgiLCBcCi0gICAgICAgICAgIjAuMTY4NzUxLCAwLjE3MzcwOCwgMC4xOTU4NTksIDAuMjEyMTQ3LCAwLjIzMjEyLCAwLjI3MDA2OCwgMC4yOTMzMzYiLCBcCi0gICAgICAgICAgIjAuMTg2NDg2LCAwLjE5MTUxNiwgMC4yMTM3OSwgMC4yMzAwOTIsIDAuMjUwMTQzLCAwLjI4ODA3MSwgMC4zMTEzNTYiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMTk0NDM4LCAwLjAyNTQ0MzgsIDAuMDU5NDQzOCwgMC4wODk0NDM4LCAwLjEyOTQ0NCwgMC4yMDk0NDQsIDAuMjU5NDQ0Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzkwMzYsIDAuMDQ1MDUyLCAwLjA3NjA1NywgMC4xMDIzODksIDAuMTM3NjcxLCAwLjIwOTM2MywgMC4yNTQ2MDUiLCBcCi0gICAgICAgICAgIjAuMDM5MDUyLCAwLjA0NTAxLCAwLjA3NjExNSwgMC4xMDIzMjEsIDAuMTM3NjU0LCAwLjIwOTM2NSwgMC4yNTQ3OTYiLCBcCi0gICAgICAgICAgIjAuMDM5MTI2LCAwLjA0NTE2NCwgMC4wNzYxMTQsIDAuMTAyNDE3LCAwLjEzNzY3MSwgMC4yMDkzNDQsIDAuMjU0NzA5IiwgXAotICAgICAgICAgICIwLjAzOTE4MiwgMC4wNDUyNjYsIDAuMDc2MTY1LCAwLjEwMjQ1OCwgMC4xMzc2OTcsIDAuMjA5MzU0LCAwLjI1NDc3MSIsIFwKLSAgICAgICAgICAiMC4wMzkzMywgMC4wNDUzMjksIDAuMDc2MjIzLCAwLjEwMjQ5NywgMC4xMzc3MTcsIDAuMjA5Mzc3LCAwLjI1NDg3MSIsIFwKLSAgICAgICAgICAiMC4wMzk4MjgsIDAuMDQ1NjcyLCAwLjA3NjM2MywgMC4xMDI2NCwgMC4xMzc3MTksIDAuMjA5NDM2LCAwLjI1NDg4NSIsIFwKLSAgICAgICAgICAiMC4wNDA1MTUsIDAuMDQ2NDEzLCAwLjA3NjgwMSwgMC4xMDMwNDIsIDAuMTM4MTMxLCAwLjIwOTYwOSwgMC4yNTQ5MTUiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMTk0NDM4LCAwLjAyNTQ0MzgsIDAuMDU5NDQzOCwgMC4wODk0NDM4LCAwLjEyOTQ0NCwgMC4yMDk0NDQsIDAuMjU5NDQ0Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODAxMjEsIDAuMDg0ODUzLCAwLjEwNzA4NywgMC4xMjQzOTgsIDAuMTQ2MjY1LCAwLjE4ODk2NCwgMC4yMTU0NDgiLCBcCi0gICAgICAgICAgIjAuMDkwOTgxLCAwLjA5NTc0NywgMC4xMTgwMjUsIDAuMTM1MzA4LCAwLjE1NzE5MywgMC4xOTk4OTEsIDAuMjI2Mzg0IiwgXAotICAgICAgICAgICIwLjEwMzA3MSwgMC4xMDc4MTEsIDAuMTMwMDkyLCAwLjE0NzM0NSwgMC4xNjkyNzUsIDAuMjExOTk0LCAwLjIzODQ4NyIsIFwKLSAgICAgICAgICAiMC4xMTQ2MDIsIDAuMTE5MzM2LCAwLjE0MTYwNywgMC4xNTg5MDksIDAuMTgwODU1LCAwLjIyMzU4NSwgMC4yNTAwODgiLCBcCi0gICAgICAgICAgIjAuMTI1OTUsIDAuMTMwNzE0LCAwLjE1MzA0LCAwLjE3MDMxNSwgMC4xOTIyOTUsIDAuMjM1MDM0LCAwLjI2MTU0MyIsIFwKLSAgICAgICAgICAiMC4xNDMyNjEsIDAuMTQ4MSwgMC4xNzA2NDksIDAuMTg4MDI4LCAwLjIxMDAwOSwgMC4yNTI3OTMsIDAuMjc5MjkzIiwgXAotICAgICAgICAgICIwLjE1NzM1MywgMC4xNjIzMzQsIDAuMTg1MTg4LCAwLjIwMjY4MywgMC4yMjQ3MjcsIDAuMjY3NTI5LCAwLjI5NDAzNSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxOTQ0MzgsIDAuMDI1NDQzOCwgMC4wNTk0NDM4LCAwLjA4OTQ0MzgsIDAuMTI5NDQ0LCAwLjIwOTQ0NCwgMC4yNTk0NDQiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzNDI5MywgMC4wNDA3MDgsIDAuMDc1MDMxLCAwLjEwNTAzNCwgMC4xNDUzNDgsIDAuMjI3NDA2LCAwLjI3OTMyNSIsIFwKLSAgICAgICAgICAiMC4wMzQyNzcsIDAuMDQwNzM3LCAwLjA3NTA1OSwgMC4xMDUwNDEsIDAuMTQ1MzY4LCAwLjIyNzM2OSwgMC4yNzkyOTQiLCBcCi0gICAgICAgICAgIjAuMDM0NDIzLCAwLjA0MDgzLCAwLjA3NTEyNSwgMC4xMDUxMiwgMC4xNDUzNzUsIDAuMjI3NDEyLCAwLjI3OTMxIiwgXAotICAgICAgICAgICIwLjAzNDU2NywgMC4wNDA5NjEsIDAuMDc1MTc5LCAwLjEwNTE1MiwgMC4xNDU0MDcsIDAuMjI3NDA4LCAwLjI3OTMxNCIsIFwKLSAgICAgICAgICAiMC4wMzQ5NTcsIDAuMDQxMzEzLCAwLjA3NTM1OCwgMC4xMDUyMTIsIDAuMTQ1NTAzLCAwLjIyNzQwNywgMC4yNzkzNDMiLCBcCi0gICAgICAgICAgIjAuMDM2MzI1LCAwLjA0MjU3LCAwLjA3NjE4MiwgMC4xMDU3OTIsIDAuMTQ1OTE5LCAwLjIyNzU1NiwgMC4yNzk0OTciLCBcCi0gICAgICAgICAgIjAuMDM3NzgzLCAwLjA0MzkxMywgMC4wNzczNTUsIDAuMTA2NzcyLCAwLjE0NjYxOCwgMC4yMjc5NCwgMC4yNzkyMDkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiT0UiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHRocmVlX3N0YXRlX2VuYWJsZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMTk0NDM4LCAwLjAyNTQ0MzgsIDAuMDU5NDQzOCwgMC4wODk0NDM4LCAwLjEyOTQ0NCwgMC4yMDk0NDQsIDAuMjU5NDQ0Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTA4NDEsIDAuMDk1ODIzLCAwLjExNzksIDAuMTM0MTE3LCAwLjE1NDA2OSwgMC4xOTIwMDksIDAuMjE1MjM1IiwgXAotICAgICAgICAgICIwLjEwMDYzNywgMC4xMDU2MDMsIDAuMTI3NzA1LCAwLjE0MzkxMSwgMC4xNjM4NjcsIDAuMjAxODA1LCAwLjIyNTAzNiIsIFwKLSAgICAgICAgICAiMC4xMTQxNDQsIDAuMTE5MTEsIDAuMTQxMTc0LCAwLjE1NzM4NCwgMC4xNzczNCwgMC4yMTUyNTMsIDAuMjM4NDk5IiwgXAotICAgICAgICAgICIwLjEyNzUwMSwgMC4xMzI0NDYsIDAuMTU0NTI3LCAwLjE3MDcyNCwgMC4xOTA2OTEsIDAuMjI4NTk5LCAwLjI1MTg0OSIsIFwKLSAgICAgICAgICAiMC4xNDEwNjMsIDAuMTQ2MDIsIDAuMTY4MTI0LCAwLjE4NDMyNSwgMC4yMDQzMDYsIDAuMjQyMjEsIDAuMjY1NDY0IiwgXAotICAgICAgICAgICIwLjE2Mjk0NiwgMC4xNjc4NTEsIDAuMTkwMDIyLCAwLjIwNjI0MiwgMC4yMjYyMzgsIDAuMjY0MTQsIDAuMjg3Mzk4IiwgXAotICAgICAgICAgICIwLjE4MTI0NiwgMC4xODYzMDcsIDAuMjA4NTcxLCAwLjIyNDkwNCwgMC4yNDQ5MDQsIDAuMjgyODUsIDAuMzA2MTA5Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDE5NDQzOCwgMC4wMjU0NDM4LCAwLjA1OTQ0MzgsIDAuMDg5NDQzOCwgMC4xMjk0NDQsIDAuMjA5NDQ0LCAwLjI1OTQ0NCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQwODU2LCAwLjA0Njc2LCAwLjA3NzE2NiwgMC4xMDMyNjUsIDAuMTM4MjkxLCAwLjIwOTcxNiwgMC4yNTUzMjEiLCBcCi0gICAgICAgICAgIjAuMDQwOTA4LCAwLjA0Njc3LCAwLjA3NzE3LCAwLjEwMzI1MiwgMC4xMzgzLCAwLjIwOTczNywgMC4yNTUwOTkiLCBcCi0gICAgICAgICAgIjAuMDQwNzQyLCAwLjA0NjUzLCAwLjA3NzExNywgMC4xMDMxNTcsIDAuMTM4MjYzLCAwLjIwOTc2NywgMC4yNTUwNDMiLCBcCi0gICAgICAgICAgIjAuMDQwNjMsIDAuMDQ2NTQxLCAwLjA3NzA2OSwgMC4xMDMxODgsIDAuMTM4MjU2LCAwLjIwOTc5MiwgMC4yNTUwNyIsIFwKLSAgICAgICAgICAiMC4wNDEwNjcsIDAuMDQ2ODc2LCAwLjA3NzIxMiwgMC4xMDMyNzgsIDAuMTM4MzA5LCAwLjIwOTgyMywgMC4yNTUwOTciLCBcCi0gICAgICAgICAgIjAuMDQxNDI0LCAwLjA0NzUyOSwgMC4wNzc1NCwgMC4xMDM1MTgsIDAuMTM4NDcsIDAuMjA5ODM5LCAwLjI1NTE1MyIsIFwKLSAgICAgICAgICAiMC4wNDMxMDcsIDAuMDQ4NzQ2LCAwLjA3ODYyMywgMC4xMDQzMDQsIDAuMTM5MTA0LCAwLjIxMDIzNSwgMC4yNTU0NDgiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMTk0NDM4LCAwLjAyNTQ0MzgsIDAuMDU5NDQzOCwgMC4wODk0NDM4LCAwLjEyOTQ0NCwgMC4yMDk0NDQsIDAuMjU5NDQ0Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMjQzNzcsIDAuMTI5MTIyLCAwLjE1MTQwMiwgMC4xNjg2NTYsIDAuMTkwNTU4LCAwLjIzMzIyNCwgMC4yNTk2OTIiLCBcCi0gICAgICAgICAgIjAuMTM1ODMzLCAwLjE0MDU5MywgMC4xNjI5NTcsIDAuMTgwMTI2LCAwLjIwMjAyLCAwLjI0NDY4MywgMC4yNzExNTkiLCBcCi0gICAgICAgICAgIjAuMTUwOTgyLCAwLjE1NTY4MywgMC4xNzgwMzMsIDAuMTk1MjE4LCAwLjIxNzExOSwgMC4yNTk3ODMsIDAuMjg2MjU1IiwgXAotICAgICAgICAgICIwLjE2NTg4NiwgMC4xNzA2ODMsIDAuMTkyOTQyLCAwLjIxMDIwNiwgMC4yMzIwNjUsIDAuMjc0NzM5LCAwLjMwMTIwNyIsIFwKLSAgICAgICAgICAiMC4xODA3MywgMC4xODU0MzQsIDAuMjA3NzksIDAuMjI0OTU1LCAwLjI0Njg2NSwgMC4yODk1MjksIDAuMzE2MDA3IiwgXAotICAgICAgICAgICIwLjIwNDI0NiwgMC4yMDg5NTEsIDAuMjMxMzIxLCAwLjI0ODQ4NCwgMC4yNzAzODksIDAuMzEzMDQ5LCAwLjMzOTUyNyIsIFwKLSAgICAgICAgICAiMC4yMjM5NzYsIDAuMjI4NzQxLCAwLjI1MDk3NiwgMC4yNjgyNiwgMC4yOTAxMzgsIDAuMzMyNzc5LCAwLjM1OTI1MiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxOTQ0MzgsIDAuMDI1NDQzOCwgMC4wNTk0NDM4LCAwLjA4OTQ0MzgsIDAuMTI5NDQ0LCAwLjIwOTQ0NCwgMC4yNTk0NDQiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzNjQyNCwgMC4wNDI3MjEsIDAuMDc2NDcsIDAuMTA2MDQ1LCAwLjE0NjExMSwgMC4yMjc3NTYsIDAuMjc5NDA0IiwgXAotICAgICAgICAgICIwLjAzNjQyNSwgMC4wNDI2NjUsIDAuMDc2NDc2LCAwLjEwNjAyNiwgMC4xNDYxMSwgMC4yMjc3MTQsIDAuMjc5NTI1IiwgXAotICAgICAgICAgICIwLjAzNjQ3LCAwLjA0MjcwNiwgMC4wNzY0ODcsIDAuMTA2MDkyLCAwLjE0NjEwNywgMC4yMjc2ODUsIDAuMjc5NDk0IiwgXAotICAgICAgICAgICIwLjAzNjQxNiwgMC4wNDI3NzYsIDAuMDc2NDA2LCAwLjEwNjA4MywgMC4xNDYwNjgsIDAuMjI3NzAzLCAwLjI3OTUxIiwgXAotICAgICAgICAgICIwLjAzNjQ3OCwgMC4wNDI3MTcsIDAuMDc2NTA4LCAwLjEwNjAyOSwgMC4xNDYxMSwgMC4yMjc2ODgsIDAuMjc5NTA5IiwgXAotICAgICAgICAgICIwLjAzNjQ5OCwgMC4wNDI3MjUsIDAuMDc2NTE1LCAwLjEwNjAzNSwgMC4xNDYxMiwgMC4yMjc2OTksIDAuMjc5NDciLCBcCi0gICAgICAgICAgIjAuMDM2NDc2LCAwLjA0Mjc2MywgMC4wNzY0ODEsIDAuMTA2MTAyLCAwLjE0NjEzMywgMC4yMjc2ODMsIDAuMjc5NDk2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIk9FIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiB0aHJlZV9zdGF0ZV9kaXNhYmxlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDg5MDU2LCAwLjEwMDUzNywgMC4xMTUyNDYsIDAuMTMwMDczLCAwLjE0NDc5MSwgMC4xNjczLCAwLjE4NTk0OSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKHNjYWxhcikgewotICAgICAgICB2YWx1ZXMoIjAiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAzODYzLCAwLjA1MDMzOSwgMC4wNjQ2OTcsIDAuMDc5NjY1LCAwLjA5Mzk1MywgMC4xMTM4NDYsIDAuMTI5NzQ1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oc2NhbGFyKSB7Ci0gICAgICAgIHZhbHVlcygiMCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDE5NDQzOCwgMC4wMjU0NDM4LCAwLjA1OTQ0MzgsIDAuMDg5NDQzOCwgMC4xMjk0NDQsIDAuMjA5NDQ0LCAwLjI1OTQ0NCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE1OTc2LCAwLjAxNjA0OCwgMC4wMTYyMzMsIDAuMDE2MjkyLCAwLjAxNjMzLCAwLjAxNjM2NCwgMC4wMTYzNzUiLCBcCi0gICAgICAgICAgIjAuMDE1NzU2LCAwLjAxNTgyNiwgMC4wMTYwMiwgMC4wMTYwODYsIDAuMDE2MTI5LCAwLjAxNjE2NywgMC4wMTYxOCIsIFwKLSAgICAgICAgICAiMC4wMTU1NzMsIDAuMDE1NjM3LCAwLjAxNTgzMywgMC4wMTU5MTEsIDAuMDE1OTY2LCAwLjAxNjAxOCwgMC4wMTYwMzUiLCBcCi0gICAgICAgICAgIjAuMDE1NDI4LCAwLjAxNTQ5MSwgMC4wMTU2OTIsIDAuMDE1Nzc4LCAwLjAxNTg0NSwgMC4wMTU5MTEsIDAuMDE1OTM0IiwgXAotICAgICAgICAgICIwLjAxNTMyOCwgMC4wMTUzOTMsIDAuMDE1NTk4LCAwLjAxNTY5LCAwLjAxNTc2NCwgMC4wMTU4NCwgMC4wMTU4NjciLCBcCi0gICAgICAgICAgIjAuMDE1MjE0LCAwLjAxNTI3NiwgMC4wMTU0ODUsIDAuMDE1NTgyLCAwLjAxNTY2NCwgMC4wMTU3NTMsIDAuMDE1Nzg2IiwgXAotICAgICAgICAgICIwLjAxNTE1OSwgMC4wMTUyMTcsIDAuMDE1NDMzLCAwLjAxNTUyMywgMC4wMTU2MSwgMC4wMTU3MDcsIDAuMDE1NzQ0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMTk0NDM4LCAwLjAyNTQ0MzgsIDAuMDU5NDQzOCwgMC4wODk0NDM4LCAwLjEyOTQ0NCwgMC4yMDk0NDQsIDAuMjU5NDQ0Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjYxNjUsIDAuMDI2Mjc5LCAwLjAyNjYwNSwgMC4wMjY3MjQsIDAuMDI2ODA2LCAwLjAyNjg4MywgMC4wMjY5MDciLCBcCi0gICAgICAgICAgIjAuMDI2MDIyLCAwLjAyNjEzMiwgMC4wMjY0NTksIDAuMDI2NTg1LCAwLjAyNjY3MywgMC4wMjY3NTUsIDAuMDI2NzgyIiwgXAotICAgICAgICAgICIwLjAyNTg3NiwgMC4wMjU5NzYsIDAuMDI2Mjk3LCAwLjAyNjQzMywgMC4wMjY1MzUsIDAuMDI2NjM3LCAwLjAyNjY3MSIsIFwKLSAgICAgICAgICAiMC4wMjU3NDIsIDAuMDI1ODM3LCAwLjAyNjE1NywgMC4wMjYzMDMsIDAuMDI2NDIsIDAuMDI2NTQyLCAwLjAyNjU4NSIsIFwKLSAgICAgICAgICAiMC4wMjU2MzYsIDAuMDI1NzI4LCAwLjAyNjA1MSwgMC4wMjYyMDUsIDAuMDI2MzMxLCAwLjAyNjQ2OCwgMC4wMjY1MTciLCBcCi0gICAgICAgICAgIjAuMDI1NTQsIDAuMDI1NjIyLCAwLjAyNTkyNywgMC4wMjYwNjQsIDAuMDI2MjE4LCAwLjAyNjM3MSwgMC4wMjY0MjkiLCBcCi0gICAgICAgICAgIjAuMDI1NDkxLCAwLjAyNTU4MSwgMC4wMjU4NTgsIDAuMDI2MDEyLCAwLjAyNjE0OCwgMC4wMjYzMDgsIDAuMDI2MzUyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiT0UiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDE5NDQzOCwgMC4wMjU0NDM4LCAwLjA1OTQ0MzgsIDAuMDg5NDQzOCwgMC4xMjk0NDQsIDAuMjA5NDQ0LCAwLjI1OTQ0NCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE1MDU3LCAwLjAxNTA1OCwgMC4wMTUwNTUsIDAuMDE1MDUzLCAwLjAxNTA1MSwgMC4wMTUwNDcsIDAuMDE1MDQyIiwgXAotICAgICAgICAgICIwLjAxNDkxNCwgMC4wMTQ5MTMsIDAuMDE0OTExLCAwLjAxNDkxMSwgMC4wMTQ5MDcsIDAuMDE0OTAzLCAwLjAxNDkiLCBcCi0gICAgICAgICAgIjAuMDE0ODI1LCAwLjAxNDgyNywgMC4wMTQ4MjMsIDAuMDE0ODIsIDAuMDE0ODE5LCAwLjAxNDgxNSwgMC4wMTQ4MTEiLCBcCi0gICAgICAgICAgIjAuMDE0NzcsIDAuMDE0NzcyLCAwLjAxNDc2OCwgMC4wMTQ3NjcsIDAuMDE0NzY1LCAwLjAxNDc1OCwgMC4wMTQ3NTciLCBcCi0gICAgICAgICAgIjAuMDE0NzQyLCAwLjAxNDc0MywgMC4wMTQ3NDQsIDAuMDE0NzQyLCAwLjAxNDc0LCAwLjAxNDczMywgMC4wMTQ3MzQiLCBcCi0gICAgICAgICAgIjAuMDE0NzI2LCAwLjAxNDcxMywgMC4wMTQ3MTUsIDAuMDE0NzE4LCAwLjAxNDcxNSwgMC4wMTQ3MSwgMC4wMTQ3MSIsIFwKLSAgICAgICAgICAiMC4wMTQ3MjEsIDAuMDE0NzE5LCAwLjAxNDcyLCAwLjAxNDcyNCwgMC4wMTQ3MTgsIDAuMDE0NzE0LCAwLjAxNDcxMSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDE5NDQzOCwgMC4wMjU0NDM4LCAwLjA1OTQ0MzgsIDAuMDg5NDQzOCwgMC4xMjk0NDQsIDAuMjA5NDQ0LCAwLjI1OTQ0NCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE0NTU4LCAwLjAxNDU1OSwgMC4wMTQ1NTgsIDAuMDE0NTU4LCAwLjAxNDU1OCwgMC4wMTQ1NTgsIDAuMDE0NTU4IiwgXAotICAgICAgICAgICIwLjAxNDUzMywgMC4wMTQ1MzMsIDAuMDE0NTM0LCAwLjAxNDUzMywgMC4wMTQ1MzIsIDAuMDE0NTMyLCAwLjAxNDUzMiIsIFwKLSAgICAgICAgICAiMC4wMTQ1MDgsIDAuMDE0NTA4LCAwLjAxNDUwOCwgMC4wMTQ1MDgsIDAuMDE0NTA4LCAwLjAxNDUwNywgMC4wMTQ1MDgiLCBcCi0gICAgICAgICAgIjAuMDE0NDg0LCAwLjAxNDQ4NCwgMC4wMTQ0ODUsIDAuMDE0NDg0LCAwLjAxNDQ4MywgMC4wMTQ0ODQsIDAuMDE0NDgzIiwgXAotICAgICAgICAgICIwLjAxNDQ2MywgMC4wMTQ0NjQsIDAuMDE0NDY0LCAwLjAxNDQ2MywgMC4wMTQ0NjMsIDAuMDE0NDYyLCAwLjAxNDQ2MyIsIFwKLSAgICAgICAgICAiMC4wMTQ0NDgsIDAuMDE0NDQ5LCAwLjAxNDQ0NywgMC4wMTQ0NDgsIDAuMDE0NDQ4LCAwLjAxNDQ0NywgMC4wMTQ0NDciLCBcCi0gICAgICAgICAgIjAuMDE0NDQ1LCAwLjAxNDQ0NiwgMC4wMTQ0NDUsIDAuMDE0NDQ2LCAwLjAxNDQ0NiwgMC4wMTQ0NDUsIDAuMDE0NDQ2Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBUQlVGWDMgKgotICogLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChUQlVGWDMpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4yMjgyMjc7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTg4NjE3OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTg4MjM0OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTg4NjE3OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDU4NywgMC4wMDA2LCAwLjAwMDYwMywgMC4wMDA2MDMsIDAuMDAwNjA0LCAwLjAwMDYwNSwgMC4wMDA2MDUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA2MjcsIDAuMDAwNjIsIDAuMDAwNjE5LCAwLjAwMDYxOSwgMC4wMDA2MTksIDAuMDAwNjE4LCAwLjAwMDYxOCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oT0UpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTMxMzczOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTMxMzExOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTMxMzczOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihzY2FsYXIpIHsKLSAgICAgICAgdmFsdWVzKCIwIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzMzU5LCAwLjAwMzMzLCAwLjAwMzMwNCwgMC4wMDMyNzUsIDAuMDAzMjY1LCAwLjAwMzI1MiwgMC4wMDMyNDMiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxODIxODc7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxODIxODc7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxODIwODg7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4zOTQxNzE7Ci0gICAgZnVuY3Rpb24gOiAiQSI7Ci0gICAgdGhyZWVfc3RhdGUgOiAiKCFPRSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDExODIxOSwgMC4wODE4MjE5LCAwLjE1MTgyMiwgMC4yMDE4MjIsIDAuMjgxODIyLCAwLjM1MTgyMiwgMC40NTE4MjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExNDc2OCwgMC4yODgwNzIsIDAuNDU4MTMyLCAwLjU3OTU0MywgMC43NzM4NDQsIDAuOTQzODY1LCAxLjE4NjY3IiwgXAotICAgICAgICAgICIwLjEyNTc2OCwgMC4yOTkxMjcsIDAuNDY5MjQzLCAwLjU5MDYsIDAuNzg0OTIzLCAwLjk1NDkxMiwgMS4xOTc3NyIsIFwKLSAgICAgICAgICAiMC4xMzg5OTksIDAuMzEyNDEsIDAuNDgyNDgsIDAuNjAzODgzLCAwLjc5ODE4MSwgMC45NjgyMTgsIDEuMjExMDUiLCBcCi0gICAgICAgICAgIjAuMTUyMjIyLCAwLjMyNTY0NCwgMC40OTU3ODksIDAuNjE3MTI4LCAwLjgxMTQ0MywgMC45ODE0NjMsIDEuMjI0MzIiLCBcCi0gICAgICAgICAgIjAuMTY1NDQ2LCAwLjMzODkwNSwgMC41MDkwMDEsIDAuNjMwMzk4LCAwLjgyNDY2MSwgMC45OTQ3MTYsIDEuMjM3NDkiLCBcCi0gICAgICAgICAgIjAuMTg2MjQsIDAuMzU5NzQ3LCAwLjUyOTg1MywgMC42NTEyNSwgMC44NDU1NjYsIDEuMDE1NTIsIDEuMjU4MzEiLCBcCi0gICAgICAgICAgIjAuMjAzODk2LCAwLjM3NzUwNywgMC41NDc1NjYsIDAuNjY5MDY2LCAwLjg2MzMyLCAxLjAzMzM2LCAxLjI3NjEyIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDExODIxOSwgMC4wODE4MjE5LCAwLjE1MTgyMiwgMC4yMDE4MjIsIDAuMjgxODIyLCAwLjM1MTgyMiwgMC40NTE4MjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3NDE0LCAwLjQxMDcwNywgMC43NTczNjEsIDEuMDA0ODMsIDEuMzk4MjgsIDEuNzQ5MDksIDIuMjQ0ODciLCBcCi0gICAgICAgICAgIjAuMDc0MTg5LCAwLjQxMDY0NSwgMC43NTUzNzYsIDEuMDA0NzYsIDEuMzk4NjYsIDEuNzQ4OTIsIDIuMjQ1MDIiLCBcCi0gICAgICAgICAgIjAuMDc0MjM4LCAwLjQxMDY0LCAwLjc1NzMzNCwgMS4wMDQ3MSwgMS4zOTk0MywgMS43NDkwMywgMi4yNDQ5NSIsIFwKLSAgICAgICAgICAiMC4wNzQyOTYsIDAuNDEwNjQyLCAwLjc1NTUwMywgMS4wMDQ2NywgMS4zOTg3MSwgMS43NDg5NywgMi4yNDUxIiwgXAotICAgICAgICAgICIwLjA3NDMzMSwgMC40MTA1NjQsIDAuNzU3MzU3LCAxLjAwNDg4LCAxLjQwMTAzLCAxLjc0ODksIDIuMjQ0NDUiLCBcCi0gICAgICAgICAgIjAuMDc0NjMxLCAwLjQxMDUyMywgMC43NTczNjMsIDEuMDA0ODcsIDEuMzk4NjQsIDEuNzQ4NTgsIDIuMjQwOTgiLCBcCi0gICAgICAgICAgIjAuMDc1MTI5LCAwLjQxMTUzMywgMC43NTU5MDcsIDEuMDA1MTIsIDEuMzk4NTUsIDEuNzQ4OTgsIDIuMjM5NzYiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMTE4MjA5LCAwLjA4MTgyMDksIDAuMTUxODIxLCAwLjIwMTgyMSwgMC4yODE4MjEsIDAuMzUxODIxLCAwLjQ1MTgyMSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk5NjM1LCAwLjI5NTk1NywgMC40OTA1NjIsIDAuNjI5NTcyLCAwLjg1MTk1LCAxLjA0NjUyLCAxLjMyNDQ1IiwgXAotICAgICAgICAgICIwLjExMDYwOSwgMC4zMDY5NTcsIDAuNTAxNTczLCAwLjY0MDU3NSwgMC44NjI5NTcsIDEuMDU3NTEsIDEuMzM1MzkiLCBcCi0gICAgICAgICAgIjAuMTIzMDQsIDAuMzE5NDU3LCAwLjUxNDA1MiwgMC42NTMwMzgsIDAuODc1NDQsIDEuMDY5OTksIDEuMzQ3OTUiLCBcCi0gICAgICAgICAgIjAuMTM0OTkzLCAwLjMzMTQ1OSwgMC41MjYwODgsIDAuNjY1MDk2LCAwLjg4NzQ3MSwgMS4wODIwNCwgMS4zNTk5NyIsIFwKLSAgICAgICAgICAiMC4xNDY3NjksIDAuMzQzMzQsIDAuNTM4MDAyLCAwLjY3NjkzMiwgMC44OTkzMjIsIDEuMDkzODcsIDEuMzcxODIiLCBcCi0gICAgICAgICAgIjAuMTY0NjM1LCAwLjM2MTM1MiwgMC41NTYwMjQsIDAuNjk1MDYzLCAwLjkxNzM1NiwgMS4xMTE5NiwgMS4zODk4NiIsIFwKLSAgICAgICAgICAiMC4xNzkyODYsIDAuMzc2MTUxLCAwLjU3MDgyNSwgMC43MDk3OTksIDAuOTMyMjIsIDEuMTI2ODQsIDEuNDA0NjkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMTE4MjA5LCAwLjA4MTgyMDksIDAuMTUxODIxLCAwLjIwMTgyMSwgMC4yODE4MjEsIDAuMzUxODIxLCAwLjQ1MTgyMSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc0OTIyLCAwLjQ1NTU2OSwgMC44NDQwMzgsIDEuMTE5NDgsIDEuNTYwNTEsIDEuOTQ3MjYsIDIuNTA1MjMiLCBcCi0gICAgICAgICAgIjAuMDc0OTM0LCAwLjQ1NjU5MSwgMC44NDI2NzQsIDEuMTE5NDMsIDEuNTYxODUsIDEuOTQ3OTIsIDIuNTA2OSIsIFwKLSAgICAgICAgICAiMC4wNzQ5ODIsIDAuNDU2NzM4LCAwLjg0MzgyOSwgMS4xMTg2NSwgMS41NjM0NCwgMS45NDg1MywgMi41MDEyNyIsIFwKLSAgICAgICAgICAiMC4wNzUwNTUsIDAuNDU2NTQ0LCAwLjg0Mzg1OSwgMS4xMjAwNSwgMS41NjIzMiwgMS45NTA5NCwgMi41MDQzNiIsIFwKLSAgICAgICAgICAiMC4wNzUyNzcsIDAuNDU0OTIxLCAwLjg0MzEwOCwgMS4xMjA3NywgMS41NjM0MiwgMS45NDk3MiwgMi41MDE2NyIsIFwKLSAgICAgICAgICAiMC4wNzYxNiwgMC40NTYwNSwgMC44NDMwOTQsIDEuMTE5NDYsIDEuNTYyNDcsIDEuOTUxMTQsIDIuNTAyMDkiLCBcCi0gICAgICAgICAgIjAuMDc3MzMzLCAwLjQ1NjcxMSwgMC44NDMxNTcsIDEuMTIwMzQsIDEuNTYyOTEsIDEuOTUwNDMsIDIuNTAyMSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJPRSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogdGhyZWVfc3RhdGVfZW5hYmxlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxMTgyMTksIDAuMDgxODIxOSwgMC4xNTE4MjIsIDAuMjAxODIyLCAwLjI4MTgyMiwgMC4zNTE4MjIsIDAuNDUxODIyIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDk3MDcsIDAuMjgyOTk2LCAwLjQ1MzA3MiwgMC41NzQ0OTIsIDAuNzY4NzczLCAwLjkzODc2NywgMS4xODE2NCIsIFwKLSAgICAgICAgICAiMC4xMTk0MTYsIDAuMjkyNzQ2LCAwLjQ2Mjg1LCAwLjU4NDI0MSwgMC43Nzg1MDQsIDAuOTQ4NTEyLCAxLjE5MTQ5IiwgXAotICAgICAgICAgICIwLjEzMjc3OCwgMC4zMDYxMDMsIDAuNDc2MTcyLCAwLjU5NzU5OSwgMC43OTE4NjQsIDAuOTYxODcxLCAxLjIwNDciLCBcCi0gICAgICAgICAgIjAuMTQ2MTkxLCAwLjMxOTUwOCwgMC40ODk2MDIsIDAuNjExMDA0LCAwLjgwNTI2MywgMC45NzUyNjEsIDEuMjE4MTEiLCBcCi0gICAgICAgICAgIjAuMTU5NzM1LCAwLjMzMzAyMiwgMC41MDMwODIsIDAuNjI0NTE4LCAwLjgxODc3NywgMC45ODg3NzgsIDEuMjMxNjEiLCBcCi0gICAgICAgICAgIjAuMTgxMjM1LCAwLjM1NDYwMiwgMC41MjQ2NTgsIDAuNjQ2MTA0LCAwLjg0MDM0OSwgMS4wMTAzNCwgMS4yNTMxOCIsIFwKLSAgICAgICAgICAiMC4xOTkzNDgsIDAuMzcyODYsIDAuNTQyODg1LCAwLjY2NDMzMSwgMC44NTg1ODQsIDEuMDI4NTcsIDEuMjcxNDEiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMTE4MjE5LCAwLjA4MTgyMTksIDAuMTUxODIyLCAwLjIwMTgyMiwgMC4yODE4MjIsIDAuMzUxODIyLCAwLjQ1MTgyMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc1MTA5LCAwLjQxMTA0OCwgMC43NTc1OTgsIDEuMDAzODQsIDEuMzk5OTEsIDEuNzQ2NDgsIDIuMjQ1NDgiLCBcCi0gICAgICAgICAgIjAuMDc1MTAzLCAwLjQxMTExNywgMC43NTc2NjcsIDEuMDA1MjksIDEuMzk5OTEsIDEuNzQ5MTYsIDIuMjQwMDciLCBcCi0gICAgICAgICAgIjAuMDc1MDkxLCAwLjQxMDgyNywgMC43NTYzNCwgMS4wMDUyMywgMS40MDE3OSwgMS43NDY0NCwgMi4yNDIxMSIsIFwKLSAgICAgICAgICAiMC4wNzUwODgsIDAuNDExMTcsIDAuNzU3NTUsIDEuMDA1MjMsIDEuNDAxNzUsIDEuNzQ2NTUsIDIuMjQyMDgiLCBcCi0gICAgICAgICAgIjAuMDc1MDQ4LCAwLjQxMTE2NiwgMC43NTYyMjksIDEuMDA1MjIsIDEuNDAxNzMsIDEuNzQ2NjgsIDIuMjQxNjQiLCBcCi0gICAgICAgICAgIjAuMDc1NjY5LCAwLjQxMTU5NywgMC43NTYzMDQsIDEuMDAzMjMsIDEuNDAxNjksIDEuNzQ2MjEsIDIuMjQ0ODUiLCBcCi0gICAgICAgICAgIjAuMDc2Nzk2LCAwLjQxMTkwNCwgMC43NTc0MzEsIDEuMDA1MjUsIDEuNDAxNSwgMS43NDYyNywgMi4yNDQyMiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxMTgyMDksIDAuMDgxODIwOSwgMC4xNTE4MjEsIDAuMjAxODIxLCAwLjI4MTgyMSwgMC4zNTE4MjEsIDAuNDUxODIxIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMjUxNzEsIDAuMzIxNDQ1LCAwLjUxNjE0OSwgMC42NTUxOTMsIDAuODc3NDg3LCAxLjA3MjExLCAxLjM1MDA0IiwgXAotICAgICAgICAgICIwLjEzNjg2MywgMC4zMzMwODUsIDAuNTI3NzMyLCAwLjY2Njg0NSwgMC44ODkxMzQsIDEuMDgzNzEsIDEuMzYxNzEiLCBcCi0gICAgICAgICAgIjAuMTUyMjgzLCAwLjM0ODQ2LCAwLjU0MzEzNywgMC42ODIxMDIsIDAuOTA0NTA2LCAxLjA5OTA5LCAxLjM3NzA1IiwgXAotICAgICAgICAgICIwLjE2NzEzMSwgMC4zNjMzNzgsIDAuNTU4MDM0LCAwLjY5NzA5NiwgMC45MTk0MjYsIDEuMTE0MDQsIDEuMzkyMDMiLCBcCi0gICAgICAgICAgIjAuMTgxNzEsIDAuMzc3OTUxLCAwLjU3MjU3OSwgMC43MTE2MDgsIDAuOTM0MDA1LCAxLjEyODYsIDEuNDA2NiIsIFwKLSAgICAgICAgICAiMC4yMDM0MTksIDAuMzk5NjQ5LCAwLjU5NDMxOCwgMC43MzMyOTksIDAuOTU1NzM2LCAxLjE1MDI1LCAxLjQyODM2IiwgXAotICAgICAgICAgICIwLjIyMDQ5MywgMC40MTY3MDMsIDAuNjExMzE1LCAwLjc1MDMwOSwgMC45NzI3MDgsIDEuMTY3MzksIDEuNDQ1MzQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMTE4MjA5LCAwLjA4MTgyMDksIDAuMTUxODIxLCAwLjIwMTgyMSwgMC4yODE4MjEsIDAuMzUxODIxLCAwLjQ1MTgyMSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc2MDU0LCAwLjQ1NTQ2NSwgMC44NDI5NTYsIDEuMTE3NiwgMS41NjYzNywgMS45NTM5NywgMi41MDg5NSIsIFwKLSAgICAgICAgICAiMC4wNzYxMzcsIDAuNDU2MjgsIDAuODQzMDg3LCAxLjExOTQ1LCAxLjU2NTg4LCAxLjk1NDQyLCAyLjUwODU4IiwgXAotICAgICAgICAgICIwLjA3NjExNiwgMC40NTU1ODMsIDAuODQxODcyLCAxLjExOTE1LCAxLjU2NTc3LCAxLjk1MTEyLCAyLjUwNDgzIiwgXAotICAgICAgICAgICIwLjA3NjAzNywgMC40NTUzNDIsIDAuODQ0NjY0LCAxLjExNzk5LCAxLjU2NTUxLCAxLjk1MzM3LCAyLjUwNzI4IiwgXAotICAgICAgICAgICIwLjA3NjA4NSwgMC40NTYwODksIDAuODQzNjIyLCAxLjExOTE3LCAxLjU2NTAxLCAxLjk1MzE1LCAyLjUwNzQ1IiwgXAotICAgICAgICAgICIwLjA3NjA2MywgMC40NTU0OTEsIDAuODQyMTI0LCAxLjEyMTM0LCAxLjU2NDQ2LCAxLjk1MzM1LCAyLjUwNjczIiwgXAotICAgICAgICAgICIwLjA3NjI2MiwgMC40NTU2NDQsIDAuODQ0MzUsIDEuMTE5MTQsIDEuNTY0ODIsIDEuOTUxNzUsIDIuNTA1MTUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiT0UiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHRocmVlX3N0YXRlX2Rpc2FibGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wNjE3NTEsIDAuMDczMzQ1LCAwLjA4Nzg5MSwgMC4xMDIyMTUsIDAuMTE1NTEsIDAuMTM0NTk4LCAwLjE0OTUzMiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKHNjYWxhcikgewotICAgICAgICB2YWx1ZXMoIjAiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAzMjg3MiwgMC4wNDQ2MzQsIDAuMDU5MiwgMC4wNzQxMTcsIDAuMDg3ODExLCAwLjEwNjgyNiwgMC4xMjIxMDciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihzY2FsYXIpIHsKLSAgICAgICAgdmFsdWVzKCIwIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMTE4MjE5LCAwLjA4MTgyMTksIDAuMTUxODIyLCAwLjIwMTgyMiwgMC4yODE4MjIsIDAuMzUxODIyLCAwLjQ1MTgyMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzMTIxLCAwLjAwMzE0MywgMC4wMDMxNDQsIDAuMDAzMTQ1LCAwLjAwMzE0NSwgMC4wMDMxNDUsIDAuMDAzMTQ2IiwgXAotICAgICAgICAgICIwLjAwMzA2NywgMC4wMDMwOTMsIDAuMDAzMDk0LCAwLjAwMzA5NSwgMC4wMDMwOTUsIDAuMDAzMDkzLCAwLjAwMzA5MyIsIFwKLSAgICAgICAgICAiMC4wMDMwMjIsIDAuMDAzMDU4LCAwLjAwMzA2MSwgMC4wMDMwNjEsIDAuMDAzMDYyLCAwLjAwMzA2MSwgMC4wMDMwNjIiLCBcCi0gICAgICAgICAgIjAuMDAyOTkxLCAwLjAwMzAzNywgMC4wMDMwNDEsIDAuMDAzMDQ0LCAwLjAwMzA0MywgMC4wMDMwNDMsIDAuMDAzMDQzIiwgXAotICAgICAgICAgICIwLjAwMjk3MSwgMC4wMDMwMjMsIDAuMDAzMDI5LCAwLjAwMzAzMSwgMC4wMDMwMzEsIDAuMDAzMDMzLCAwLjAwMzAzMyIsIFwKLSAgICAgICAgICAiMC4wMDI5NDgsIDAuMDAzMDA5LCAwLjAwMzAxNywgMC4wMDMwMTksIDAuMDAzMDIsIDAuMDAzMDIyLCAwLjAwMzAyMiIsIFwKLSAgICAgICAgICAiMC4wMDI5MzgsIDAuMDAzMDAyLCAwLjAwMzAxMSwgMC4wMDMwMTMsIDAuMDAzMDE2LCAwLjAwMzAxOCwgMC4wMDMwMTgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxMTgyMDksIDAuMDgxODIwOSwgMC4xNTE4MjEsIDAuMjAxODIxLCAwLjI4MTgyMSwgMC4zNTE4MjEsIDAuNDUxODIxIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDYwODgsIDAuMDA2MTQsIDAuMDA2MTQ0LCAwLjAwNjE0NiwgMC4wMDYxNDcsIDAuMDA2MTQ3LCAwLjAwNjE0OCIsIFwKLSAgICAgICAgICAiMC4wMDYwNSwgMC4wMDYxMDYsIDAuMDA2MTExLCAwLjAwNjExMiwgMC4wMDYxMTQsIDAuMDA2MTE0LCAwLjAwNjExNSIsIFwKLSAgICAgICAgICAiMC4wMDYwMTEsIDAuMDA2MDgyLCAwLjAwNjA4OSwgMC4wMDYwOTEsIDAuMDA2MDkzLCAwLjAwNjA5NCwgMC4wMDYwOTQiLCBcCi0gICAgICAgICAgIjAuMDA1OTgxLCAwLjAwNjA2NiwgMC4wMDYwNzUsIDAuMDA2MDc4LCAwLjAwNjA4LCAwLjAwNjA4MSwgMC4wMDYwODIiLCBcCi0gICAgICAgICAgIjAuMDA1OTYxLCAwLjAwNjA1NSwgMC4wMDYwNjcsIDAuMDA2MDcsIDAuMDA2MDczLCAwLjAwNjA3NSwgMC4wMDYwNzYiLCBcCi0gICAgICAgICAgIjAuMDA1OTM2LCAwLjAwNjA0LCAwLjAwNjA1NSwgMC4wMDYwNTksIDAuMDA2MDYzLCAwLjAwNjA2NSwgMC4wMDYwNjciLCBcCi0gICAgICAgICAgIjAuMDA1OTIyLCAwLjAwNjAzMSwgMC4wMDYwNDgsIDAuMDA2MDUzLCAwLjAwNjA1OCwgMC4wMDYwNiwgMC4wMDYwNjIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJPRSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMTE4MjE5LCAwLjA4MTgyMTksIDAuMTUxODIyLCAwLjIwMTgyMiwgMC4yODE4MjIsIDAuMzUxODIyLCAwLjQ1MTgyMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyOTQ3LCAwLjAwMjkyNCwgMC4wMDI4OTYsIDAuMDAyODg0LCAwLjAwMjg2MywgMC4wMDI4NTEsIDAuMDAyODE3IiwgXAotICAgICAgICAgICIwLjAwMjg5MywgMC4wMDI4NjgsIDAuMDAyODUsIDAuMDAyODM0LCAwLjAwMjgwOSwgMC4wMDI3NzYsIDAuMDAyNzUxIiwgXAotICAgICAgICAgICIwLjAwMjg2LCAwLjAwMjgzNywgMC4wMDI4MDYsIDAuMDAyODAyLCAwLjAwMjc2NCwgMC4wMDI3MzgsIDAuMDAyNzIiLCBcCi0gICAgICAgICAgIjAuMDAyODQ2LCAwLjAwMjgyMSwgMC4wMDI4MDMsIDAuMDAyNzg2LCAwLjAwMjc1NiwgMC4wMDI3MzgsIDAuMDAyNzAzIiwgXAotICAgICAgICAgICIwLjAwMjgzNSwgMC4wMDI4MSwgMC4wMDI3OTMsIDAuMDAyNzc2LCAwLjAwMjc0NiwgMC4wMDI3MjgsIDAuMDAyNjg3IiwgXAotICAgICAgICAgICIwLjAwMjgyNiwgMC4wMDI4MDcsIDAuMDAyNzczLCAwLjAwMjc1MSwgMC4wMDI3MjYsIDAuMDAyNzEyLCAwLjAwMjY5OCIsIFwKLSAgICAgICAgICAiMC4wMDI4MjMsIDAuMDAyODAzLCAwLjAwMjc4MSwgMC4wMDI3NjQsIDAuMDAyNzMyLCAwLjAwMjcxLCAwLjAwMjY1OCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDExODIwOSwgMC4wODE4MjA5LCAwLjE1MTgyMSwgMC4yMDE4MjEsIDAuMjgxODIxLCAwLjM1MTgyMSwgMC40NTE4MjEiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzE5MiwgMC4wMDMxOTIsIDAuMDAzMTkyLCAwLjAwMzE5MiwgMC4wMDMxOTIsIDAuMDAzMTkyLCAwLjAwMzE5MiIsIFwKLSAgICAgICAgICAiMC4wMDMxNzEsIDAuMDAzMTcxLCAwLjAwMzE3MSwgMC4wMDMxNzEsIDAuMDAzMTcxLCAwLjAwMzE3MSwgMC4wMDMxNzEiLCBcCi0gICAgICAgICAgIjAuMDAzMTU2LCAwLjAwMzE1NiwgMC4wMDMxNTYsIDAuMDAzMTU2LCAwLjAwMzE1NiwgMC4wMDMxNTYsIDAuMDAzMTU2IiwgXAotICAgICAgICAgICIwLjAwMzE0NiwgMC4wMDMxNDYsIDAuMDAzMTQ2LCAwLjAwMzE0NiwgMC4wMDMxNDYsIDAuMDAzMTQ2LCAwLjAwMzE0NiIsIFwKLSAgICAgICAgICAiMC4wMDMxNDEsIDAuMDAzMTQxLCAwLjAwMzE0MSwgMC4wMDMxNCwgMC4wMDMxNDEsIDAuMDAzMTQxLCAwLjAwMzE0IiwgXAotICAgICAgICAgICIwLjAwMzEzOCwgMC4wMDMxMzgsIDAuMDAzMTM4LCAwLjAwMzEzOCwgMC4wMDMxMzgsIDAuMDAzMTM5LCAwLjAwMzEzOCIsIFwKLSAgICAgICAgICAiMC4wMDMxMzksIDAuMDAzMTQsIDAuMDAzMTQsIDAuMDAzMTQsIDAuMDAzMTQxLCAwLjAwMzE0LCAwLjAwMzE0Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBUQlVGWDYgKgotICogLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChUQlVGWDYpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC40NDA3OTY7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMzc4NjIxOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMzc3ODY0OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMzc4NjIxOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTE2NywgMC4wMDExODksIDAuMDAxMTkzLCAwLjAwMTE5NSwgMC4wMDExOTYsIDAuMDAxMTk3LCAwLjAwMTE5NyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTIzNiwgMC4wMDEyMjUsIDAuMDAxMjI1LCAwLjAwMTIyNCwgMC4wMDEyMjQsIDAuMDAxMjI0LCAwLjAwMTIyNCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oT0UpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMjM2MjUxOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMjM2MDQ4OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMjM2MjUxOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihzY2FsYXIpIHsKLSAgICAgICAgdmFsdWVzKCIwIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA2MDI2LCAwLjAwNTk4NiwgMC4wMDU5NCwgMC4wMDU4OTYsIDAuMDA1ODg0LCAwLjAwNTg1MiwgMC4wMDU4NDUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAzNDk0NDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDM0OTQ0OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMzQ5MjI1OwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuNzkxNDQxOwotICAgIGZ1bmN0aW9uIDogIkEiOwotICAgIHRocmVlX3N0YXRlIDogIighT0UpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxMzQ5NDQsIDAuMDgzNDk0NCwgMC4xNTM0OTQsIDAuMjAzNDk0LCAwLjI4MzQ5NCwgMC4zNTM0OTQsIDAuNDUzNDk0Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDEzOTMsIDAuMTkyODkyLCAwLjI3Nzg3MSwgMC4zMzg0NTMsIDAuNDM1NDIzLCAwLjUyMDE4OSwgMC42NDEzMzkiLCBcCi0gICAgICAgICAgIjAuMTEyNjQxLCAwLjIwNDA5MSwgMC4yODkwOTMsIDAuMzQ5NjY3LCAwLjQ0NjY0NSwgMC41MzE1MDIsIDAuNjUyNTUzIiwgXAotICAgICAgICAgICIwLjEyNjA0OSwgMC4yMTc1NDIsIDAuMzAyNTQ5LCAwLjM2MzEzMiwgMC40NjAxMSwgMC41NDQ5MzEsIDAuNjY2MDAzIiwgXAotICAgICAgICAgICIwLjEzOTQ1OSwgMC4yMzEwMTYsIDAuMzE2MDAzLCAwLjM3NjU5NiwgMC40NzM1ODQsIDAuNTU4MzQ4LCAwLjY3OTQ3OSIsIFwKLSAgICAgICAgICAiMC4xNTI4MTksIDAuMjQ0NDQ3LCAwLjMyOTQ0MSwgMC4zOTAwMzIsIDAuNDg3MDMxLCAwLjU3MTc5MiwgMC42OTI5MTIiLCBcCi0gICAgICAgICAgIjAuMTczOTAxLCAwLjI2NTU3OSwgMC4zNTA1OTgsIDAuNDExMiwgMC41MDgxOTUsIDAuNTkyOTYyLCAwLjcxNDA5NCIsIFwKLSAgICAgICAgICAiMC4xOTE4MjksIDAuMjgzNzI1LCAwLjM2ODcyMSwgMC40MjkzMjMsIDAuNTI2MzE4LCAwLjYxMTA5OSwgMC43MzIyMDgiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMTM0OTQ0LCAwLjA4MzQ5NDQsIDAuMTUzNDk0LCAwLjIwMzQ5NCwgMC4yODM0OTQsIDAuMzUzNDk0LCAwLjQ1MzQ5NCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDUwOTI0LCAwLjIxNTAwNSwgMC4zODUxOTQsIDAuNTA2NTI0LCAwLjcwNDY3MywgMC44NzcxMDIsIDEuMTIxODciLCBcCi0gICAgICAgICAgIjAuMDUwOTU2LCAwLjIxNTAxMiwgMC4zODUxODgsIDAuNTA3NTE5LCAwLjcwNDY0NSwgMC44NzQ3MywgMS4xMjM4IiwgXAotICAgICAgICAgICIwLjA1MTAzNywgMC4yMTUwMjgsIDAuMzg0MjE2LCAwLjUwNjk0NSwgMC43MDQ2MzksIDAuODc3MjYsIDEuMTIzNyIsIFwKLSAgICAgICAgICAiMC4wNTExMjYsIDAuMjE0OTkyLCAwLjM4NDE2LCAwLjUwNjgyOCwgMC43MDQ2NTksIDAuODc3MDYzLCAxLjEyMTgzIiwgXAotICAgICAgICAgICIwLjA1MTE2NSwgMC4yMTQ5OTQsIDAuMzg1MTM4LCAwLjUwNjc3MywgMC43MDI2NzUsIDAuODc3MDcyLCAxLjEyMzQ2IiwgXAotICAgICAgICAgICIwLjA1MTU0MiwgMC4yMTUxMDMsIDAuMzg0NDU4LCAwLjUwNjgxMiwgMC43MDQ2NDYsIDAuODc3MDM2LCAxLjEyMTciLCBcCi0gICAgICAgICAgIjAuMDUyMjc5LCAwLjIxNTI2NiwgMC4zODUxOTMsIDAuNTA2Nzc4LCAwLjcwNDY0NiwgMC44NzcwNzMsIDEuMTIzMjgiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMTM0OTIzLCAwLjA4MzQ5MjMsIDAuMTUzNDkyLCAwLjIwMzQ5MiwgMC4yODM0OTIsIDAuMzUzNDkyLCAwLjQ1MzQ5MiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg4ODQ1LCAwLjE5MDUzMywgMC4yODgxMjgsIDAuMzU3ODE3LCAwLjQ2OTIzMSwgMC41NjY3ODksIDAuNzA2MTExIiwgXAotICAgICAgICAgICIwLjA5OTg1NCwgMC4yMDE1NTMsIDAuMjk5MTQ0LCAwLjM2ODgwOCwgMC40ODAyNTcsIDAuNTc3NzU3LCAwLjcxNzAzNSIsIFwKLSAgICAgICAgICAiMC4xMTIwMjUsIDAuMjEzODA3LCAwLjMxMTQxMywgMC4zODEwODcsIDAuNDkyNTM4LCAwLjU5MDA2NiwgMC43MjkzNjciLCBcCi0gICAgICAgICAgIjAuMTIzNzA0LCAwLjIyNTU0NiwgMC4zMjMxNzYsIDAuMzkyODY4LCAwLjUwNDMwOCwgMC42MDE4NTgsIDAuNzQxMTg0IiwgXAotICAgICAgICAgICIwLjEzNTA4MSwgMC4yMzY5ODksIDAuMzM0NjM5LCAwLjQwNDM1MiwgMC41MTU3OTksIDAuNjEzMzQ4LCAwLjc1MjYiLCBcCi0gICAgICAgICAgIjAuMTUyODkyLCAwLjI1NTAzNCwgMC4zNTI3MDMsIDAuNDIyMzY3LCAwLjUzMzg3MiwgMC42MzEzNzIsIDAuNzcwNjU3IiwgXAotICAgICAgICAgICIwLjE2NzI1MywgMC4yNjk4MDQsIDAuMzY3NDYyLCAwLjQzNzIwNCwgMC41NDg2NTUsIDAuNjQ2MTQ0LCAwLjc4NTQzMiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxMzQ5MjMsIDAuMDgzNDkyMywgMC4xNTM0OTIsIDAuMjAzNDkyLCAwLjI4MzQ5MiwgMC4zNTM0OTIsIDAuNDUzNDkyIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDkxMzEsIDAuMjM2OTcsIDAuNDMwMTM5LCAwLjU2ODg1OSwgMC43OTA4MTYsIDAuOTg0NDk5LCAxLjI1ODcyIiwgXAotICAgICAgICAgICIwLjA0OTE2NiwgMC4yMzY5NTIsIDAuNDI5MTExLCAwLjU2NzIzNiwgMC43OTA3NTYsIDAuOTg1MTI4LCAxLjI2MzA0IiwgXAotICAgICAgICAgICIwLjA0OTI1LCAwLjIzNjk3NywgMC40MzAwMDgsIDAuNTY4Njk0LCAwLjc5MDcxOCwgMC45ODQ2ODcsIDEuMjYyMjUiLCBcCi0gICAgICAgICAgIjAuMDQ5Mzc5LCAwLjIzNjk3MywgMC40MzAwNywgMC41Njg3NzUsIDAuNzkwNTksIDAuOTg0MzE1LCAxLjI2MTkxIiwgXAotICAgICAgICAgICIwLjA0OTY3NywgMC4yMzY5OTEsIDAuNDMwMTU4LCAwLjU2ODYzLCAwLjc5MDIxOSwgMC45ODQyMzUsIDEuMjU5ODgiLCBcCi0gICAgICAgICAgIjAuMDUwNjI2LCAwLjIzNzA0NCwgMC40MzAzMjIsIDAuNTY4NjU1LCAwLjc5MDA4MiwgMC45ODMwMjksIDEuMjYyMTkiLCBcCi0gICAgICAgICAgIjAuMDUxODI4LCAwLjIzNzMyLCAwLjQzMDEzOCwgMC41NjczOTMsIDAuNzg5OTc5LCAwLjk4NDY4NiwgMS4yNjAzNCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJPRSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogdGhyZWVfc3RhdGVfZW5hYmxlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxMzQ5NDQsIDAuMDgzNDk0NCwgMC4xNTM0OTQsIDAuMjAzNDk0LCAwLjI4MzQ5NCwgMC4zNTM0OTQsIDAuNDUzNDk0Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTU2ODksIDAuMTg3MTc0LCAwLjI3MjExOSwgMC4zMzI3MDksIDAuNDI5NjQ4LCAwLjUxNDQyNiwgMC42MzU1NDkiLCBcCi0gICAgICAgICAgIjAuMTA1NTAzLCAwLjE5NzAyNiwgMC4yODE5NzQsIDAuMzQyNTYzLCAwLjQzOTQ5NywgMC41MjQyOCwgMC42NDU0MjgiLCBcCi0gICAgICAgICAgIjAuMTE5MDM3LCAwLjIxMDU2NSwgMC4yOTU1MTMsIDAuMzU2MTAyLCAwLjQ1MzAzLCAwLjUzNzg3LCAwLjY1ODk2OSIsIFwKLSAgICAgICAgICAiMC4xMzI1MDEsIDAuMjI0MDEzLCAwLjMwODk2NCwgMC4zNjk1NTMsIDAuNDY2NDc3LCAwLjU1MTI4NiwgMC42NzI0MzMiLCBcCi0gICAgICAgICAgIjAuMTQ2MTQsIDAuMjM3Njc1LCAwLjMyMjYzNiwgMC4zODMyNCwgMC40ODAxMjcsIDAuNTY0OTM2LCAwLjY4NjA1NCIsIFwKLSAgICAgICAgICAiMC4xNjgwMjIsIDAuMjU5NTg2LCAwLjM0NDUyNiwgMC40MDUxMTUsIDAuNTAyMDM5LCAwLjU4Njg0NiwgMC43MDc5ODciLCBcCi0gICAgICAgICAgIjAuMTg2MjA3LCAwLjI3ODE1LCAwLjM2MzA3NywgMC40MjM2NTcsIDAuNTIwNTgsIDAuNjA1MzY1LCAwLjcyNjUwNyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxMzQ5NDQsIDAuMDgzNDk0NCwgMC4xNTM0OTQsIDAuMjAzNDk0LCAwLjI4MzQ5NCwgMC4zNTM0OTQsIDAuNDUzNDk0Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTIzOTcsIDAuMjE1NDE5LCAwLjM4NDQxOSwgMC41MDc3NTQsIDAuNzAzMDY0LCAwLjg3NzA0MiwgMS4xMjMzMiIsIFwKLSAgICAgICAgICAiMC4wNTIzMjgsIDAuMjE1MzQ0LCAwLjM4NDc5OCwgMC41MDY5OCwgMC43MDI5MTMsIDAuODc1Nzc3LCAxLjEyMTM1IiwgXAotICAgICAgICAgICIwLjA1MjIzOCwgMC4yMTUzMzIsIDAuMzg0Nzk3LCAwLjUwNjk2NywgMC43MDM0ODUsIDAuODc0NzMzLCAxLjEyMzUxIiwgXAotICAgICAgICAgICIwLjA1MjE2NiwgMC4yMTUzNzcsIDAuMzg0NzMyLCAwLjUwNjk3MywgMC43MDMzNzUsIDAuODc1MjcsIDEuMTIzNDIiLCBcCi0gICAgICAgICAgIjAuMDUyNTksIDAuMjE1MzY4LCAwLjM4NTI0NSwgMC41MDc1OTYsIDAuNzA0NDExLCAwLjg3NjgzNywgMS4xMjM2NSIsIFwKLSAgICAgICAgICAiMC4wNTI5NDUsIDAuMjE1NDQ4LCAwLjM4NDc5NywgMC41MDY5NTMsIDAuNzAzMzcyLCAwLjg3NTIyNywgMS4xMjMxOSIsIFwKLSAgICAgICAgICAiMC4wNTQ1OTYsIDAuMjE1ODg1LCAwLjM4NTMzLCAwLjUwNzYzLCAwLjcwMzUzMywgMC44NzU2MjcsIDEuMTIxNDciKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMTM0OTIzLCAwLjA4MzQ5MjMsIDAuMTUzNDkyLCAwLjIwMzQ5MiwgMC4yODM0OTIsIDAuMzUzNDkyLCAwLjQ1MzQ5MiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTMxNjMxLCAwLjIzMzMyOSwgMC4zMzA4NjQsIDAuNDAwNTE3LCAwLjUxMTk3LCAwLjYwOTU1MywgMC43NDg4NSIsIFwKLSAgICAgICAgICAiMC4xNDMzNCwgMC4yNDUwMjUsIDAuMzQyNTczLCAwLjQxMjIyMywgMC41MjM2NzUsIDAuNjIxMjAyLCAwLjc2MDU0NCIsIFwKLSAgICAgICAgICAiMC4xNTg2NTEsIDAuMjYwMzUsIDAuMzU3OTA3LCAwLjQyNzU4NSwgMC41MzkwMDEsIDAuNjM2NTMxLCAwLjc3NTgyMSIsIFwKLSAgICAgICAgICAiMC4xNzM4NDQsIDAuMjc1NTUxLCAwLjM3MzA5OCwgMC40NDI3NDcsIDAuNTU0MjAxLCAwLjY1MTcyNywgMC43OTEwOTQiLCBcCi0gICAgICAgICAgIjAuMTg5MDYxLCAwLjI5MDY5MywgMC4zODgyNDIsIDAuNDU3OTQyLCAwLjU2OTM3NywgMC42NjY4ODUsIDAuODA2MjY1IiwgXAotICAgICAgICAgICIwLjIxMzA1MiwgMC4zMTQ2OTUsIDAuNDEyMjM5LCAwLjQ4MTkyNiwgMC41OTMzNDIsIDAuNjkwODY3LCAwLjgzMDIzOCIsIFwKLSAgICAgICAgICAiMC4yMzI5MTEsIDAuMzM0NjA2LCAwLjQzMjE0NywgMC41MDE3OTMsIDAuNjEzMjU4LCAwLjcxMDc3NSwgMC44NTAxNjYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMTM0OTIzLCAwLjA4MzQ5MjMsIDAuMTUzNDkyLCAwLjIwMzQ5MiwgMC4yODM0OTIsIDAuMzUzNDkyLCAwLjQ1MzQ5MiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDUwOTQ1LCAwLjIzNzI3MSwgMC40MzAyNTUsIDAuNTY3NDYxLCAwLjc5MTA2MywgMC45ODI0ODgsIDEuMjYwNzUiLCBcCi0gICAgICAgICAgIjAuMDUwOTQ3LCAwLjIzNzI0MSwgMC40MzAzMzEsIDAuNTY4ODU2LCAwLjc5MTA2NiwgMC45ODQ5NTYsIDEuMjYwNzkiLCBcCi0gICAgICAgICAgIjAuMDUwOTE1LCAwLjIzNzE5MSwgMC40MjkzMDksIDAuNTY4OTIsIDAuNzkxMDY2LCAwLjk4NTczNiwgMS4yNjIzMSIsIFwKLSAgICAgICAgICAiMC4wNTA5MiwgMC4yMzcyMTUsIDAuNDMwMzIsIDAuNTY4ODQsIDAuNzkxMDY4LCAwLjk4NDk3MywgMS4yNTk3NyIsIFwKLSAgICAgICAgICAiMC4wNTA5OTYsIDAuMjM3Mjc4LCAwLjQyOTc1LCAwLjU2NzEwMiwgMC43OTExMTYsIDAuOTgzMzMsIDEuMjU5MjUiLCBcCi0gICAgICAgICAgIjAuMDUwOTg1LCAwLjIzNzIwMywgMC40MjkxMywgMC41Njg5MjYsIDAuNzkxMDYxLCAwLjk4MzM4LCAxLjI1OTQzIiwgXAotICAgICAgICAgICIwLjA1MDk0MywgMC4yMzcyMzMsIDAuNDMwMjI5LCAwLjU2ODcxMywgMC43OTEwNjksIDAuOTgzMjkyLCAxLjI2MTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIk9FIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiB0aHJlZV9zdGF0ZV9kaXNhYmxlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDgzNzY0LCAwLjA5NTM0NywgMC4xMDk3NzEsIDAuMTI0NzQzLCAwLjEzOTEzMiwgMC4xNjE1MTcsIDAuMTc5NjkiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihzY2FsYXIpIHsKLSAgICAgICAgdmFsdWVzKCIwIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMzI4MjMsIDAuMDQ0NjUzLCAwLjA1OTIyOCwgMC4wNzQzMDQsIDAuMDg3NDEzLCAwLjEwNzA2MiwgMC4xMjE0NTEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihzY2FsYXIpIHsKLSAgICAgICAgdmFsdWVzKCIwIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMTM0OTQ0LCAwLjA4MzQ5NDQsIDAuMTUzNDk0LCAwLjIwMzQ5NCwgMC4yODM0OTQsIDAuMzUzNDk0LCAwLjQ1MzQ5NCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2NDI2LCAwLjAwNjUxMiwgMC4wMDY1MjEsIDAuMDA2NTI0LCAwLjAwNjUyNiwgMC4wMDY1MjYsIDAuMDA2NTI4IiwgXAotICAgICAgICAgICIwLjAwNjMxMywgMC4wMDY0MDksIDAuMDA2NDE4LCAwLjAwNjQyMSwgMC4wMDY0MjYsIDAuMDA2NDI1LCAwLjAwNjQyNyIsIFwKLSAgICAgICAgICAiMC4wMDYyMiwgMC4wMDYzMzUsIDAuMDA2MzUyLCAwLjAwNjM1MywgMC4wMDYzNTksIDAuMDA2MzU4LCAwLjAwNjM2MSIsIFwKLSAgICAgICAgICAiMC4wMDYxNTYsIDAuMDA2Mjg2LCAwLjAwNjMwNiwgMC4wMDYzMTIsIDAuMDA2MzE3LCAwLjAwNjMxOCwgMC4wMDYzMjIiLCBcCi0gICAgICAgICAgIjAuMDA2MTEyLCAwLjAwNjI1NCwgMC4wMDYyNzgsIDAuMDA2Mjg1LCAwLjAwNjI5MiwgMC4wMDYyOTQsIDAuMDA2MzAxIiwgXAotICAgICAgICAgICIwLjAwNjA2NSwgMC4wMDYyMTgsIDAuMDA2MjQ3LCAwLjAwNjI1OSwgMC4wMDYyNjUsIDAuMDA2MjcxLCAwLjAwNjI3NSIsIFwKLSAgICAgICAgICAiMC4wMDYwNDEsIDAuMDA2MTk5LCAwLjAwNjIzMiwgMC4wMDYyNDMsIDAuMDA2MjU0LCAwLjAwNjI2LCAwLjAwNjI1OSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEzNDkyMywgMC4wODM0OTIzLCAwLjE1MzQ5MiwgMC4yMDM0OTIsIDAuMjgzNDkyLCAwLjM1MzQ5MiwgMC40NTM0OTIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMjI2OSwgMC4wMTI0MzEsIDAuMDEyNDUsIDAuMDEyNDU1LCAwLjAxMjQ2LCAwLjAxMjQ2MywgMC4wMTI0NjUiLCBcCi0gICAgICAgICAgIjAuMDEyMTk0LCAwLjAxMjM2NiwgMC4wMTIzODcsIDAuMDEyMzkzLCAwLjAxMjM5OCwgMC4wMTI0MDEsIDAuMDEyNDA0IiwgXAotICAgICAgICAgICIwLjAxMjExNywgMC4wMTIzMTEsIDAuMDEyMzQsIDAuMDEyMzQ5LCAwLjAxMjM1NiwgMC4wMTIzNiwgMC4wMTIzNjMiLCBcCi0gICAgICAgICAgIjAuMDEyMDUxLCAwLjAxMjI2OSwgMC4wMTIzMDYsIDAuMDEyMzE4LCAwLjAxMjMyOCwgMC4wMTIzMzMsIDAuMDEyMzM4IiwgXAotICAgICAgICAgICIwLjAxMjAwOSwgMC4wMTIyMzksIDAuMDEyMjgyLCAwLjAxMjI5NywgMC4wMTIzMDksIDAuMDEyMzE1LCAwLjAxMjMyMSIsIFwKLSAgICAgICAgICAiMC4wMTE5NTksIDAuMDEyMiwgMC4wMTIyNTIsIDAuMDEyMjY5LCAwLjAxMjI4NSwgMC4wMTIyOTMsIDAuMDEyMyIsIFwKLSAgICAgICAgICAiMC4wMTE5MjQsIDAuMDEyMTc1LCAwLjAxMjIzMywgMC4wMTIyNTIsIDAuMDEyMjcsIDAuMDEyMjgsIDAuMDEyMjg5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiT0UiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEzNDk0NCwgMC4wODM0OTQ0LCAwLjE1MzQ5NCwgMC4yMDM0OTQsIDAuMjgzNDk0LCAwLjM1MzQ5NCwgMC40NTM0OTQiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjAwOCwgMC4wMDU5OTgsIDAuMDA1OTg3LCAwLjAwNTk3OCwgMC4wMDU5NjUsIDAuMDA1OTUsIDAuMDA1OTM2IiwgXAotICAgICAgICAgICIwLjAwNTkyOSwgMC4wMDU5MiwgMC4wMDU5MDgsIDAuMDA1OTAxLCAwLjAwNTg4NiwgMC4wMDU4NzEsIDAuMDA1ODU5IiwgXAotICAgICAgICAgICIwLjAwNTg4LCAwLjAwNTg2NywgMC4wMDU4NjEsIDAuMDA1ODUsIDAuMDA1ODM5LCAwLjAwNTgyMiwgMC4wMDU4MTMiLCBcCi0gICAgICAgICAgIjAuMDA1ODUyLCAwLjAwNTgzOSwgMC4wMDU4MjksIDAuMDA1ODI0LCAwLjAwNTgwOSwgMC4wMDU4LCAwLjAwNTc2OCIsIFwKLSAgICAgICAgICAiMC4wMDU4MzQsIDAuMDA1ODIzLCAwLjAwNTgxNiwgMC4wMDU4MDcsIDAuMDA1Nzk0LCAwLjAwNTc4MiwgMC4wMDU3NjgiLCBcCi0gICAgICAgICAgIjAuMDA1ODI5LCAwLjAwNTgxMiwgMC4wMDU4MDUsIDAuMDA1Nzk2LCAwLjAwNTc4NCwgMC4wMDU3NjYsIDAuMDA1NzQiLCBcCi0gICAgICAgICAgIjAuMDA1ODI0LCAwLjAwNTgxNCwgMC4wMDU4MDMsIDAuMDA1Nzk1LCAwLjAwNTc4MywgMC4wMDU3NzIsIDAuMDA1NzU0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMTM0OTIzLCAwLjA4MzQ5MjMsIDAuMTUzNDkyLCAwLjIwMzQ5MiwgMC4yODM0OTIsIDAuMzUzNDkyLCAwLjQ1MzQ5MiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2NDYsIDAuMDA2NDYsIDAuMDA2NDYsIDAuMDA2NDYsIDAuMDA2NDYsIDAuMDA2NDYsIDAuMDA2NDU5IiwgXAotICAgICAgICAgICIwLjAwNjQ0NSwgMC4wMDY0NDUsIDAuMDA2NDQ1LCAwLjAwNjQ0NSwgMC4wMDY0NDUsIDAuMDA2NDQ1LCAwLjAwNjQ0NSIsIFwKLSAgICAgICAgICAiMC4wMDY0MzIsIDAuMDA2NDMxLCAwLjAwNjQzMSwgMC4wMDY0MzEsIDAuMDA2NDMxLCAwLjAwNjQzMSwgMC4wMDY0MzEiLCBcCi0gICAgICAgICAgIjAuMDA2NDE5LCAwLjAwNjQxOCwgMC4wMDY0MTgsIDAuMDA2NDE5LCAwLjAwNjQxOSwgMC4wMDY0MTksIDAuMDA2NDE4IiwgXAotICAgICAgICAgICIwLjAwNjQwOCwgMC4wMDY0MDgsIDAuMDA2NDA4LCAwLjAwNjQwNywgMC4wMDY0MDgsIDAuMDA2NDA4LCAwLjAwNjQwNyIsIFwKLSAgICAgICAgICAiMC4wMDY0MDEsIDAuMDA2NDAxLCAwLjAwNjQwMSwgMC4wMDY0LCAwLjAwNjQsIDAuMDA2NDAxLCAwLjAwNjQiLCBcCi0gICAgICAgICAgIjAuMDA2Mzk1LCAwLjAwNjM5NSwgMC4wMDYzOTUsIDAuMDA2Mzk1LCAwLjAwNjM5NSwgMC4wMDYzOTUsIDAuMDA2Mzk1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBUQlVGWDggKgotICogLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChUQlVGWDgpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC41MDkxMzg7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMzc5MjU0OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMzc4NTg4OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMzc5MjU0OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTE2NywgMC4wMDExODksIDAuMDAxMTkzLCAwLjAwMTE5NSwgMC4wMDExOTYsIDAuMDAxMTk3LCAwLjAwMTE5OCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTIzNiwgMC4wMDEyMjUsIDAuMDAxMjI1LCAwLjAwMTIyNCwgMC4wMDEyMjQsIDAuMDAxMjI0LCAwLjAwMTIyNCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oT0UpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMjM2MTU2OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMjM2MDU5OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMjM2MTU2OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihzY2FsYXIpIHsKLSAgICAgICAgdmFsdWVzKCIwIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA2MzQ1LCAwLjAwNjMxLCAwLjAwNjI3NCwgMC4wMDYyMywgMC4wMDYyMTgsIDAuMDA2MTc5LCAwLjAwNjE2NiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDQ2NTQ1NDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDQ2NTQ1NDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDQ2NTE1NjsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAxLjA0ODA2OwotICAgIGZ1bmN0aW9uIDogIkEiOwotICAgIHRocmVlX3N0YXRlIDogIighT0UpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxNDY1NDUsIDAuMDg0NjU0NSwgMC4xNTQ2NTUsIDAuMjA0NjU1LCAwLjI4NDY1NSwgMC4zNTQ2NTUsIDAuNDU0NjU1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDU5OTMsIDAuMTc5NzY5LCAwLjI0NDIwOSwgMC4yODk4ODksIDAuMzYyODM2LCAwLjQyNjYzOCwgMC41MTc4NDkiLCBcCi0gICAgICAgICAgIjAuMTE3MjMyLCAwLjE5MTExNCwgMC4yNTU0ODMsIDAuMzAxMTQ3LCAwLjM3NDA5LCAwLjQzNzg5NSwgMC41MjkxMTEiLCBcCi0gICAgICAgICAgIjAuMTMwNjkxLCAwLjIwNDQ3NSwgMC4yNjg5NDQsIDAuMzE0NjEzLCAwLjM4NzU1OCwgMC40NTEzODYsIDAuNTQyNTA3IiwgXAotICAgICAgICAgICIwLjE0NDA5NywgMC4yMTc5NywgMC4yODI0LCAwLjMyODA1NiwgMC40MDEwMTEsIDAuNDY0ODMyLCAwLjU1NjAyNCIsIFwKLSAgICAgICAgICAiMC4xNTc1MDcsIDAuMjMxMzg4LCAwLjI5NTg0NSwgMC4zNDE1MzcsIDAuNDE0NDgsIDAuNDc4MzAyLCAwLjU2OTQ4NyIsIFwKLSAgICAgICAgICAiMC4xNzg3MjQsIDAuMjUyNjYxLCAwLjMxNzEzNywgMC4zNjI4MzEsIDAuNDM1Nzc5LCAwLjQ5OTYwMiwgMC41OTA3NzIiLCBcCi0gICAgICAgICAgIjAuMTk2OTEyLCAwLjI3MDk5OSwgMC4zMzU0NzIsIDAuMzgxMTQ0LCAwLjQ1NDExMSwgMC41MTc5MzEsIDAuNjA5MTMyIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDE0NjU0NSwgMC4wODQ2NTQ1LCAwLjE1NDY1NSwgMC4yMDQ2NTUsIDAuMjg0NjU1LCAwLjM1NDY1NSwgMC40NTQ2NTUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0ODU4NCwgMC4xNzExMjksIDAuMjk3MTAxLCAwLjM4ODQxNywgMC41MzQzNzksIDAuNjY0Nzc1LCAwLjg1MDMxNyIsIFwKLSAgICAgICAgICAiMC4wNDg1OTQsIDAuMTcxMTI4LCAwLjI5Njc4OCwgMC4zODg0MTMsIDAuNTM0ODI1LCAwLjY2MzY5LCAwLjg1MDI4MyIsIFwKLSAgICAgICAgICAiMC4wNDg2OTksIDAuMTcxMTI0LCAwLjI5NzA2MiwgMC4zODg0MSwgMC41MzQ3NzcsIDAuNjY0ODg5LCAwLjg0OTkyNSIsIFwKLSAgICAgICAgICAiMC4wNDg3MDcsIDAuMTcxMTY5LCAwLjI5NjgyOCwgMC4zODg0NjYsIDAuNTM0NjY4LCAwLjY2MzgwNSwgMC44NTAyMzciLCBcCi0gICAgICAgICAgIjAuMDQ4ODgxLCAwLjE3MTE5NywgMC4yOTcwNSwgMC4zODgzMzQsIDAuNTM0NjMyLCAwLjY2MzIwMywgMC44NDgxMzMiLCBcCi0gICAgICAgICAgIjAuMDQ5MTY5LCAwLjE3MTIwOSwgMC4yOTcwODIsIDAuMzg4MzU5LCAwLjUzNDY4MywgMC42NjM4NjcsIDAuODQ4NjM4IiwgXAotICAgICAgICAgICIwLjA0OTczNSwgMC4xNzE0MjEsIDAuMjk2OTUsIDAuMzg4Mzk1LCAwLjUzNDYxOCwgMC42NjM3MDcsIDAuODUwMjI5Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDE0NjUxNiwgMC4wODQ2NTE2LCAwLjE1NDY1MiwgMC4yMDQ2NTIsIDAuMjg0NjUyLCAwLjM1NDY1MiwgMC40NTQ2NTIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5MDA2OSwgMC4xNjk2NTUsIDAuMjQzMjE1LCAwLjI5NTYxOCwgMC4zNzk0NTcsIDAuNDUyNzQ2LCAwLjU1NzQ0NCIsIFwKLSAgICAgICAgICAiMC4xMDEwNzEsIDAuMTgwNjQyLCAwLjI1NDIyLCAwLjMwNjYzMiwgMC4zOTA0NDYsIDAuNDYzNzQ2LCAwLjU2ODQ3NCIsIFwKLSAgICAgICAgICAiMC4xMTMyNzYsIDAuMTkyODkzLCAwLjI2NjQ5LCAwLjMxODkwNywgMC40MDI3MjksIDAuNDc2MDI2LCAwLjU4MDcyOCIsIFwKLSAgICAgICAgICAiMC4xMjQ5OTYsIDAuMjA0NjU4LCAwLjI3ODI3NywgMC4zMzA3LCAwLjQxNDUyOSwgMC40ODc4NDUsIDAuNTkyNTg1IiwgXAotICAgICAgICAgICIwLjEzNjQyNSwgMC4yMTYxNjksIDAuMjg5ODA2LCAwLjM0MjIzOCwgMC40MjYwNzQsIDAuNDk5Mzc4LCAwLjYwNDA4OCIsIFwKLSAgICAgICAgICAiMC4xNTQ0MDUsIDAuMjM0NDA4LCAwLjMwODA2MSwgMC4zNjA0NjYsIDAuNDQ0MzM4LCAwLjUxNzYyLCAwLjYyMjM1NCIsIFwKLSAgICAgICAgICAiMC4xNjkxMzksIDAuMjQ5NTIsIDAuMzIzMTY1LCAwLjM3NTYsIDAuNDU5NDIyLCAwLjUzMjc3NCwgMC42Mzc1MTkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMTQ2NTE2LCAwLjA4NDY1MTYsIDAuMTU0NjUyLCAwLjIwNDY1MiwgMC4yODQ2NTIsIDAuMzU0NjUyLCAwLjQ1NDY1MiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQ0NjYxLCAwLjE4NDQzLCAwLjMyODMxMSwgMC40MzE0MDgsIDAuNTk3MTI0LCAwLjc0NDc1MiwgMC45NTM1NDEiLCBcCi0gICAgICAgICAgIjAuMDQ0NjkyLCAwLjE4NDQzNiwgMC4zMjgzNjMsIDAuNDMwNzkxLCAwLjU5ODg2MSwgMC43NDQ3NzUsIDAuOTUzMTQ0IiwgXAotICAgICAgICAgICIwLjA0NDc4OCwgMC4xODQ0MzQsIDAuMzI4MzU4LCAwLjQzMDczMSwgMC41OTg5MjQsIDAuNzQ0NzA1LCAwLjk1MzQ5NiIsIFwKLSAgICAgICAgICAiMC4wNDQ4OTgsIDAuMTg0NTk5LCAwLjMyODM3OCwgMC40MzIzMzYsIDAuNTk4ODgzLCAwLjc0MzUwOCwgMC45NTIyNiIsIFwKLSAgICAgICAgICAiMC4wNDUxNDQsIDAuMTg0Njg0LCAwLjMyODM5NCwgMC40MzA1NjEsIDAuNTk4NzY3LCAwLjc0NDQ1OSwgMC45NTMyOTQiLCBcCi0gICAgICAgICAgIjAuMDQ2MTkyLCAwLjE4NDkzNiwgMC4zMjg0OTgsIDAuNDMyMDc2LCAwLjU5ODY3OCwgMC43NDQ2OTMsIDAuOTUzMzQ1IiwgXAotICAgICAgICAgICIwLjA0NzUzOCwgMC4xODUxOTIsIDAuMzI4NjY3LCAwLjQzMjQzMSwgMC41OTczMjMsIDAuNzQ0MDEzLCAwLjk1MjYyNiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJPRSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogdGhyZWVfc3RhdGVfZW5hYmxlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxNDY1NDUsIDAuMDg0NjU0NSwgMC4xNTQ2NTUsIDAuMjA0NjU1LCAwLjI4NDY1NSwgMC4zNTQ2NTUsIDAuNDU0NjU1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDAyNywgMC4xNzQxLCAwLjIzODUwNCwgMC4yODQxMzMsIDAuMzU3MDksIDAuNDIwOTAxLCAwLjUxMjA5IiwgXAotICAgICAgICAgICIwLjExMDE3OCwgMC4xODQwMDQsIDAuMjQ4NDA5LCAwLjI5NDA0NywgMC4zNjY5OTcsIDAuNDMwOCwgMC41MjE5NTQiLCBcCi0gICAgICAgICAgIjAuMTIzNjYzLCAwLjE5NzQ5MiwgMC4yNjE5MDUsIDAuMzA3NTM4LCAwLjM4MDQ3NywgMC40NDQzMTEsIDAuNTM1NDM5IiwgXAotICAgICAgICAgICIwLjEzNzEwNywgMC4yMTA5MDcsIDAuMjc1MzE2LCAwLjMyMDk1MiwgMC4zOTM4ODgsIDAuNDU3NzIxLCAwLjU0ODgyNSIsIFwKLSAgICAgICAgICAiMC4xNTA4MjUsIDAuMjI0NjY4LCAwLjI4OTA2NiwgMC4zMzQ3MTcsIDAuNDA3NjUxLCAwLjQ3MTQ1OSwgMC41NjI2MDMiLCBcCi0gICAgICAgICAgIjAuMTcyNzIsIDAuMjQ2NjE2LCAwLjMxMTAxNywgMC4zNTY2NjcsIDAuNDI5NjAyLCAwLjQ5MzQxLCAwLjU4NDU1MSIsIFwKLSAgICAgICAgICAiMC4xOTE0MTUsIDAuMjY1NTA3LCAwLjMyOTkzLCAwLjM3NTU0OCwgMC40NDg0ODEsIDAuNTEyMjg3LCAwLjYwMzQyMyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxNDY1NDUsIDAuMDg0NjU0NSwgMC4xNTQ2NTUsIDAuMjA0NjU1LCAwLjI4NDY1NSwgMC4zNTQ2NTUsIDAuNDU0NjU1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTAxODYsIDAuMTcxNjMxLCAwLjI5NzM3MywgMC4zODg1OCwgMC41MzQ4MzMsIDAuNjYzMjk1LCAwLjg0NzcxOCIsIFwKLSAgICAgICAgICAiMC4wNTAxNzMsIDAuMTcxNjQ1LCAwLjI5NzM1MiwgMC4zODg2MywgMC41MzQ3MDMsIDAuNjYzOTAxLCAwLjg0ODQiLCBcCi0gICAgICAgICAgIjAuMDUwMSwgMC4xNzE2NTUsIDAuMjk3MzY3LCAwLjM4Nzk0LCAwLjUzNDg0LCAwLjY2NDk2MSwgMC44NDgyMTMiLCBcCi0gICAgICAgICAgIjAuMDUwMDY4LCAwLjE3MTY0OCwgMC4yOTczMzksIDAuMzg3OTQsIDAuNTM0ODM1LCAwLjY2NDkyNSwgMC44NDk5NTgiLCBcCi0gICAgICAgICAgIjAuMDUwMjU2LCAwLjE3MTY2NCwgMC4yOTczNTUsIDAuMzg3OTM3LCAwLjUzNDg0OCwgMC42NjM4NTQsIDAuODQ4MzA0IiwgXAotICAgICAgICAgICIwLjA1MDYzNCwgMC4xNzE2OCwgMC4yOTczNTEsIDAuMzg3OTU4LCAwLjUzNDg2NSwgMC42NjM4MTYsIDAuODQ4MTMxIiwgXAotICAgICAgICAgICIwLjA1MTg2NiwgMC4xNzIyMDgsIDAuMjk3MjUsIDAuMzg4Mjg3LCAwLjUzNDk0NywgMC42NjM4NTYsIDAuODQ4ODMzIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDE0NjUxNiwgMC4wODQ2NTE2LCAwLjE1NDY1MiwgMC4yMDQ2NTIsIDAuMjg0NjUyLCAwLjM1NDY1MiwgMC40NTQ2NTIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEzMzE2LCAwLjIxMjY3MiwgMC4yODYyMTcsIDAuMzM4NTc5LCAwLjQyMjQwNiwgMC40OTU3MDIsIDAuNjAwNDM5IiwgXAotICAgICAgICAgICIwLjE0NDgxNCwgMC4yMjQzODIsIDAuMjk3OTE1LCAwLjM1MDI4NywgMC40MzQwOTMsIDAuNTA3NDIsIDAuNjEyMTEiLCBcCi0gICAgICAgICAgIjAuMTYwMTI1LCAwLjIzOTcyMiwgMC4zMTMyMzcsIDAuMzY1NjAzLCAwLjQ0OTM4NywgMC41MjI3MzUsIDAuNjI3NDI1IiwgXAotICAgICAgICAgICIwLjE3NTMzMSwgMC4yNTQ5MDIsIDAuMzI4NDMyLCAwLjM4MDgwNiwgMC40NjQ2MTgsIDAuNTM3OTQzLCAwLjY0MjYzMSIsIFwKLSAgICAgICAgICAiMC4xOTA1MzQsIDAuMjcwMDU0LCAwLjM0MzU3MiwgMC4zOTU5MzgsIDAuNDc5NzQzLCAwLjU1MzA2OCwgMC42NTc3NjEiLCBcCi0gICAgICAgICAgIjAuMjE0NTMzLCAwLjI5NDA1OSwgMC4zNjc1NzQsIDAuNDE5OTQxLCAwLjUwMzc0OCwgMC41NzcwNzEsIDAuNjgxNzYzIiwgXAotICAgICAgICAgICIwLjIzNDM3LCAwLjMxMzk4NCwgMC4zODc1MTQsIDAuNDM5ODc3LCAwLjUyMzcxMiwgMC41OTY5OTUsIDAuNzAxNzE1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDE0NjUxNiwgMC4wODQ2NTE2LCAwLjE1NDY1MiwgMC4yMDQ2NTIsIDAuMjg0NjUyLCAwLjM1NDY1MiwgMC40NTQ2NTIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0Njc0MSwgMC4xODUxMywgMC4zMjg2NzksIDAuNDMyMzQsIDAuNTk4OTcxLCAwLjc0NDk4MSwgMC45NTM5MjMiLCBcCi0gICAgICAgICAgIjAuMDQ2NjY4LCAwLjE4NDk3MywgMC4zMjgyNDgsIDAuNDMyMzA3LCAwLjU5ODA3NiwgMC43NDQ5OTcsIDAuOTUzODY4IiwgXAotICAgICAgICAgICIwLjA0NjY2MywgMC4xODUxNzYsIDAuMzI4NjIyLCAwLjQzMTk4NCwgMC41OTg5MDcsIDAuNzQ0OTk5LCAwLjk1Mzg3IiwgXAotICAgICAgICAgICIwLjA0NjY3LCAwLjE4NDk3NywgMC4zMjgyODEsIDAuNDMxNzgzLCAwLjU5ODkzNiwgMC43NDUwMDQsIDAuOTUzODcyIiwgXAotICAgICAgICAgICIwLjA0NjcyOCwgMC4xODUxNywgMC4zMjgyMTIsIDAuNDMxOTEsIDAuNTk3MDYzLCAwLjc0NDk5NywgMC45NTM4NjkiLCBcCi0gICAgICAgICAgIjAuMDQ2NzU1LCAwLjE4NTE3MSwgMC4zMjgyMjksIDAuNDMxOTEzLCAwLjU5NzE0MiwgMC43NDQ5OTcsIDAuOTUzODY4IiwgXAotICAgICAgICAgICIwLjA0NjYyMSwgMC4xODUsIDAuMzI4NTc0LCAwLjQzMDk4OSwgMC41OTY1ODUsIDAuNzQ0OTc3LCAwLjk1Mzg5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIk9FIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiB0aHJlZV9zdGF0ZV9kaXNhYmxlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDg3NzQ1LCAwLjA5OTI2NCwgMC4xMTM4MjcsIDAuMTI4NTY2LCAwLjE0MzI0NSwgMC4xNjU2MjEsIDAuMTgzNjUzIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oc2NhbGFyKSB7Ci0gICAgICAgIHZhbHVlcygiMCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDM3Mjk2LCAwLjA0OTA0NSwgMC4wNjM3NzMsIDAuMDc4NjI3LCAwLjA5Mjc1OSwgMC4xMTMxMTksIDAuMTI5NDk5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oc2NhbGFyKSB7Ci0gICAgICAgIHZhbHVlcygiMCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDE0NjU0NSwgMC4wODQ2NTQ1LCAwLjE1NDY1NSwgMC4yMDQ2NTUsIDAuMjg0NjU1LCAwLjM1NDY1NSwgMC40NTQ2NTUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwODAyNiwgMC4wMDgxNzMsIDAuMDA4MTkxLCAwLjAwODE5NywgMC4wMDgyLCAwLjAwODIwMiwgMC4wMDgyMDUiLCBcCi0gICAgICAgICAgIjAuMDA3OTE4LCAwLjAwODA3NCwgMC4wMDgwOTQsIDAuMDA4MDk5LCAwLjAwODEwNCwgMC4wMDgxMDYsIDAuMDA4MTA4IiwgXAotICAgICAgICAgICIwLjAwNzgyNCwgMC4wMDc5OTUsIDAuMDA4MDIyLCAwLjAwODAzLCAwLjAwODAzNywgMC4wMDgwNCwgMC4wMDgwNDQiLCBcCi0gICAgICAgICAgIjAuMDA3NzUyLCAwLjAwNzkzOSwgMC4wMDc5NzQsIDAuMDA3OTg0LCAwLjAwNzk5NCwgMC4wMDc5OTksIDAuMDA4MDAyIiwgXAotICAgICAgICAgICIwLjAwNzcsIDAuMDA3ODk4LCAwLjAwNzkzOSwgMC4wMDc5NTIsIDAuMDA3OTY1LCAwLjAwNzk2OSwgMC4wMDc5NzIiLCBcCi0gICAgICAgICAgIjAuMDA3NjQzLCAwLjAwNzg1MSwgMC4wMDc5LCAwLjAwNzkxNywgMC4wMDc5MzIsIDAuMDA3OTQsIDAuMDA3OTQ2IiwgXAotICAgICAgICAgICIwLjAwNzYyLCAwLjAwNzgyNiwgMC4wMDc4NzksIDAuMDA3ODk4LCAwLjAwNzkxNiwgMC4wMDc5MjIsIDAuMDA3OTMzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMTQ2NTE2LCAwLjA4NDY1MTYsIDAuMTU0NjUyLCAwLjIwNDY1MiwgMC4yODQ2NTIsIDAuMzU0NjUyLCAwLjQ1NDY1MiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEzOTEzLCAwLjAxNDE3NiwgMC4wMTQyMTQsIDAuMDE0MjI2LCAwLjAxNDIzNiwgMC4wMTQyNDEsIDAuMDE0MjQ2IiwgXAotICAgICAgICAgICIwLjAxMzg0MywgMC4wMTQxMTQsIDAuMDE0MTU0LCAwLjAxNDE2NiwgMC4wMTQxNzcsIDAuMDE0MTgzLCAwLjAxNDE4OCIsIFwKLSAgICAgICAgICAiMC4wMTM3NjUsIDAuMDE0MDUxLCAwLjAxNDEwMiwgMC4wMTQxMTcsIDAuMDE0MTMyLCAwLjAxNDE0LCAwLjAxNDE0NiIsIFwKLSAgICAgICAgICAiMC4wMTM2OTEsIDAuMDEzOTk1LCAwLjAxNDA1OCwgMC4wMTQwNzksIDAuMDE0MDk3LCAwLjAxNDEwNywgMC4wMTQxMTYiLCBcCi0gICAgICAgICAgIjAuMDEzNjM1LCAwLjAxMzk1NCwgMC4wMTQwMjcsIDAuMDE0MDUxLCAwLjAxNDA3NCwgMC4wMTQwODYsIDAuMDE0MDk3IiwgXAotICAgICAgICAgICIwLjAxMzU3OSwgMC4wMTM4OTQsIDAuMDEzOTc3LCAwLjAxNDAwNiwgMC4wMTQwMzQsIDAuMDE0MDQ5LCAwLjAxNDA2MiIsIFwKLSAgICAgICAgICAiMC4wMTM1NDksIDAuMDEzODY2LCAwLjAxMzk1OCwgMC4wMTM5OTEsIDAuMDE0MDIyLCAwLjAxNDAzOSwgMC4wMTQwNTUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJPRSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMTQ2NTQ1LCAwLjA4NDY1NDUsIDAuMTU0NjU1LCAwLjIwNDY1NSwgMC4yODQ2NTUsIDAuMzU0NjU1LCAwLjQ1NDY1NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA3NTE4LCAwLjAwNzUwOSwgMC4wMDc1LCAwLjAwNzQ5NywgMC4wMDc0ODQsIDAuMDA3NDc1LCAwLjAwNzQ2MSIsIFwKLSAgICAgICAgICAiMC4wMDc0NDEsIDAuMDA3NDMyLCAwLjAwNzQyMywgMC4wMDc0MiwgMC4wMDc0MTEsIDAuMDA3NCwgMC4wMDczODUiLCBcCi0gICAgICAgICAgIjAuMDA3MzkzLCAwLjAwNzM4NSwgMC4wMDczNzUsIDAuMDA3MzczLCAwLjAwNzM2MSwgMC4wMDczNTEsIDAuMDA3MzQyIiwgXAotICAgICAgICAgICIwLjAwNzM2NywgMC4wMDczNTYsIDAuMDA3MzQ2LCAwLjAwNzM0MiwgMC4wMDczMzIsIDAuMDA3MzIyLCAwLjAwNzMwNyIsIFwKLSAgICAgICAgICAiMC4wMDczNDgsIDAuMDA3MzM4LCAwLjAwNzMyOCwgMC4wMDczMjQsIDAuMDA3MzEyLCAwLjAwNzMwNSwgMC4wMDcyODkiLCBcCi0gICAgICAgICAgIjAuMDA3MzMzLCAwLjAwNzMyNywgMC4wMDczMTYsIDAuMDA3MzEyLCAwLjAwNzMwNCwgMC4wMDcyOTMsIDAuMDA3MjgzIiwgXAotICAgICAgICAgICIwLjAwNzMyNiwgMC4wMDczMjEsIDAuMDA3MzExLCAwLjAwNzMwOSwgMC4wMDczLCAwLjAwNzI5MiwgMC4wMDcyNzkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxNDY1MTYsIDAuMDg0NjUxNiwgMC4xNTQ2NTIsIDAuMjA0NjUyLCAwLjI4NDY1MiwgMC4zNTQ2NTIsIDAuNDU0NjUyIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDc3MDUsIDAuMDA3NzA1LCAwLjAwNzcwNCwgMC4wMDc3MDQsIDAuMDA3NzA0LCAwLjAwNzcwNCwgMC4wMDc3MDUiLCBcCi0gICAgICAgICAgIjAuMDA3NjksIDAuMDA3NjksIDAuMDA3NjksIDAuMDA3NjksIDAuMDA3NjksIDAuMDA3NjksIDAuMDA3NjkiLCBcCi0gICAgICAgICAgIjAuMDA3Njc2LCAwLjAwNzY3NiwgMC4wMDc2NzYsIDAuMDA3Njc2LCAwLjAwNzY3NiwgMC4wMDc2NzYsIDAuMDA3Njc1IiwgXAotICAgICAgICAgICIwLjAwNzY2MywgMC4wMDc2NjMsIDAuMDA3NjYyLCAwLjAwNzY2MywgMC4wMDc2NjIsIDAuMDA3NjYyLCAwLjAwNzY2MiIsIFwKLSAgICAgICAgICAiMC4wMDc2NTIsIDAuMDA3NjUyLCAwLjAwNzY1MiwgMC4wMDc2NTIsIDAuMDA3NjUyLCAwLjAwNzY1MiwgMC4wMDc2NTIiLCBcCi0gICAgICAgICAgIjAuMDA3NjQ2LCAwLjAwNzY0NSwgMC4wMDc2NDYsIDAuMDA3NjQ1LCAwLjAwNzY0NiwgMC4wMDc2NDUsIDAuMDA3NjQ1IiwgXAotICAgICAgICAgICIwLjAwNzYzOCwgMC4wMDc2MzgsIDAuMDA3NjM4LCAwLjAwNzYzOCwgMC4wMDc2MzgsIDAuMDA3NjM4LCAwLjAwNzYzOCIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogVEJVRlhMICoKLSAqIC0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoVEJVRlhMKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMDk1ODk4NzsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxMzg4Mjg7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxMzg2MTM7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxMzg4Mjg7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzIxLCAwLjAwMDMyNSwgMC4wMDAzMjYsIDAuMDAwMzI3LCAwLjAwMDMyNywgMC4wMDAzMjcsIDAuMDAwMzI3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzM3LCAwLjAwMDMzNCwgMC4wMDAzMzQsIDAuMDAwMzM0LCAwLjAwMDMzNCwgMC4wMDAzMzQsIDAuMDAwMzM0Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihPRSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxMTA3OTY7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxMTA3MzE7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxMTA3OTY7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHNjYWxhcikgewotICAgICAgICB2YWx1ZXMoIjAiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDIzMjUsIDAuMDAyMzAxLCAwLjAwMjI4MywgMC4wMDIyNzMsIDAuMDAyMjY2LCAwLjAwMjI2MiwgMC4wMDIyNjIiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNTA5NDQ1OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDUwOTQ0NTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA1MDkyNDY7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4wNjk3OTQxOwotICAgIGZ1bmN0aW9uIDogIkEiOwotICAgIHRocmVlX3N0YXRlIDogIighT0UpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxMDUwOTQsIDAuMDEyNTA5NCwgMC4wMzA1MDk0LCAwLjA2MDUwOTQsIDAuMDkwNTA5NCwgMC4xNjA1MDksIDAuMjAwNTA5Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMTIwMDEsIDAuMjM3MjQyLCAwLjQ2NDUyNCwgMC44NDMyMDIsIDEuMjIxNzksIDIuMTA1MzIsIDIuNjEwMTgiLCBcCi0gICAgICAgICAgIjAuMjIzMzIyLCAwLjI0ODU4NiwgMC40NzU4MDcsIDAuODU0NDcsIDEuMjMzMjgsIDIuMTE2NTksIDIuNjIxNDciLCBcCi0gICAgICAgICAgIjAuMjM2OTc2LCAwLjI2MjIzLCAwLjQ4OTQ2MiwgMC44NjgyMDEsIDEuMjQ2OSwgMi4xMzAyNCwgMi42MzUwOSIsIFwKLSAgICAgICAgICAiMC4yNTA1NjEsIDAuMjc1ODEsIDAuNTAzMDg3LCAwLjg4MTc4LCAxLjI2MDM0LCAyLjE0Mzg3LCAyLjY0ODciLCBcCi0gICAgICAgICAgIjAuMjY0MDk0LCAwLjI4OTM2MSwgMC41MTY2MDUsIDAuODk1MzExLCAxLjI3Mzk1LCAyLjE1NzM5LCAyLjY2MjI1IiwgXAotICAgICAgICAgICIwLjI4NTQxOCwgMC4zMTA2NzUsIDAuNTM3OTYsIDAuOTE2Njc2LCAxLjI5NTIzLCAyLjE3ODc1LCAyLjY4MzU3IiwgXAotICAgICAgICAgICIwLjMwMzQ0OCwgMC4zMjg2ODksIDAuNTU1OTU4LCAwLjkzNDY4OSwgMS4zMTMzLCAyLjE5Njc0LCAyLjcwMTYxIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEwNTA5NCwgMC4wMTI1MDk0LCAwLjAzMDUwOTQsIDAuMDYwNTA5NCwgMC4wOTA1MDk0LCAwLjE2MDUwOSwgMC4yMDA1MDkiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI3MzI0NiwgMC4zMjMzOTEsIDAuNzg0Njc5LCAxLjU1NDIyLCAyLjMyMzY3LCA0LjExMzI5LCA1LjEzNTc5IiwgXAotICAgICAgICAgICIwLjI3MjYxLCAwLjMyMzQ5MiwgMC43ODQ0MDUsIDEuNTUzODksIDIuMzE4MTMsIDQuMTEyNDcsIDUuMTM2ODYiLCBcCi0gICAgICAgICAgIjAuMjczMjk4LCAwLjMyMzM4OSwgMC43ODQ0MDEsIDEuNTUzOTksIDIuMzIzNjgsIDQuMTE4ODEsIDUuMTM2NDkiLCBcCi0gICAgICAgICAgIjAuMjczMjAyLCAwLjMyMzQ3NywgMC43ODQ1MjIsIDEuNTU0MDgsIDIuMzIzMjIsIDQuMTEyMjQsIDUuMTM5IiwgXAotICAgICAgICAgICIwLjI3MzE1MiwgMC4zMjM0MDQsIDAuNzg0MzcyLCAxLjU1MzkxLCAyLjMxODc2LCA0LjExMjEyLCA1LjEzNjk1IiwgXAotICAgICAgICAgICIwLjI3MzI1LCAwLjMyMzkwNCwgMC43ODQ0NzEsIDEuNTU0LCAyLjMxOTM0LCA0LjExMjIzLCA1LjEzODk1IiwgXAotICAgICAgICAgICIwLjI3MzQyNSwgMC4zMjM2NDYsIDAuNzg0MzkzLCAxLjU1MzkxLCAyLjMxODE5LCA0LjExNjM5LCA1LjEzNjM1Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEwNTA5MiwgMC4wMTI1MDkyLCAwLjAzMDUwOTIsIDAuMDYwNTA5MiwgMC4wOTA1MDkyLCAwLjE2MDUwOSwgMC4yMDA1MDkiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIyMDA4MSwgMC4yNDk3OTksIDAuNTE3MDk5LCAwLjk2MjU0NywgMS40MDc5NSwgMi40NDcyNywgMy4wNDEzMyIsIFwKLSAgICAgICAgICAiMC4yMzEzMjMsIDAuMjYxMDE2LCAwLjUyODMyNSwgMC45NzM3NzcsIDEuNDE5MjksIDIuNDU4NDksIDMuMDUyNDEiLCBcCi0gICAgICAgICAgIjAuMjQ0MjM3LCAwLjI3MzkzNSwgMC41NDEyNTcsIDAuOTg2NzMzLCAxLjQzMjEyLCAyLjQ3MTQ0LCAzLjA2NTM1IiwgXAotICAgICAgICAgICIwLjI1NjUxMSwgMC4yODYyNDQsIDAuNTUzNTUxLCAwLjk5OTAxMSwgMS40NDQ0NiwgMi40ODM3NCwgMy4wNzc3NiIsIFwKLSAgICAgICAgICAiMC4yNjg0MTcsIDAuMjk4MTU5LCAwLjU2NTQ3MywgMS4wMTA5NCwgMS40NTYzOCwgMi40OTU2OSwgMy4wODk1OCIsIFwKLSAgICAgICAgICAiMC4yODY1NTQsIDAuMzE2Mjk5LCAwLjU4MzYyOCwgMS4wMjkxLCAxLjQ3NDUyLCAyLjUxMzg0LCAzLjEwNzg3IiwgXAotICAgICAgICAgICIwLjMwMTI4NSwgMC4zMzEwMTIsIDAuNTk4Mzc0LCAxLjA0MzgzLCAxLjQ4OTI3LCAyLjUyODYsIDMuMTIyNjgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMTA1MDkyLCAwLjAxMjUwOTIsIDAuMDMwNTA5MiwgMC4wNjA1MDkyLCAwLjA5MDUwOTIsIDAuMTYwNTA5LCAwLjIwMDUwOSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzExODcxLCAwLjM3MDQ3OSwgMC44OTk2MTksIDEuNzgwOTQsIDIuNjY3NTIsIDQuNzIyMzksIDUuODkyMyIsIFwKLSAgICAgICAgICAiMC4zMTE4NzYsIDAuMzY5OTkzLCAwLjg5OTU3MiwgMS43ODM1NywgMi42NjYyOSwgNC43MjIxNCwgNS44OTEyOCIsIFwKLSAgICAgICAgICAiMC4zMTE4NzUsIDAuMzcwNDU4LCAwLjg5OTY1NywgMS43ODMwOCwgMi42NjQzOCwgNC43MjIzNiwgNS44OTEyNyIsIFwKLSAgICAgICAgICAiMC4zMTE3MzcsIDAuMzcwNDgxLCAwLjg5ODQ0OCwgMS43ODM1NiwgMi42Njc1MiwgNC43MjE1MSwgNS44OTA2MSIsIFwKLSAgICAgICAgICAiMC4zMTE2OTUsIDAuMzcwNTE3LCAwLjg5ODYwNiwgMS43ODM2NSwgMi42Njc2MywgNC43MjI0OSwgNS44OTE1NCIsIFwKLSAgICAgICAgICAiMC4zMTE2NjYsIDAuMzY5ODA3LCAwLjg5OTgyNCwgMS43ODM2NiwgMi42NjQ0MywgNC43MjE3MiwgNS44OTE4NiIsIFwKLSAgICAgICAgICAiMC4zMTIxMTIsIDAuMzcwNzY3LCAwLjg5OTUxNCwgMS43ODE0OSwgMi42NjQ0MiwgNC43MjE2OSwgNS44ODg4MyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJPRSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogdGhyZWVfc3RhdGVfZW5hYmxlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxMDUwOTQsIDAuMDEyNTA5NCwgMC4wMzA1MDk0LCAwLjA2MDUwOTQsIDAuMDkwNTA5NCwgMC4xNjA1MDksIDAuMjAwNTA5Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMDY1NCwgMC4yMzE3OTEsIDAuNDU5MTc0LCAwLjgzODA1MSwgMS4yMTY5OCwgMi4xMDA5OSwgMi42MDYyMSIsIFwKLSAgICAgICAgICAiMC4yMTY0MzksIDAuMjQxNjg5LCAwLjQ2OTA2MiwgMC44NDc5MzksIDEuMjI2ODMsIDIuMTEwOTcsIDIuNjE2MDciLCBcCi0gICAgICAgICAgIjAuMjMwMTAyLCAwLjI1NTM2NCwgMC40ODI3NDQsIDAuODYxNjA3LCAxLjI0MDUsIDIuMTI0NTcsIDIuNjI5NzYiLCBcCi0gICAgICAgICAgIjAuMjQzNzc4LCAwLjI2OTA0NSwgMC40OTY0NDgsIDAuODc1Mjc5LCAxLjI1NDE3LCAyLjEzODI1LCAyLjY0MzQzIiwgXAotICAgICAgICAgICIwLjI1NzU2MiwgMC4yODI4MjMsIDAuNTEwMjA4LCAwLjg4OTA2LCAxLjI2Nzk0LCAyLjE1MjAyLCAyLjY1NzIxIiwgXAotICAgICAgICAgICIwLjI3OTM5MywgMC4zMDQ2NiwgMC41MzIwNDksIDAuOTEwODk1LCAxLjI4OTc4LCAyLjE3Mzg2LCAyLjY3OTAyIiwgXAotICAgICAgICAgICIwLjI5NzY1NSwgMC4zMjI5MTQsIDAuNTUwMjg5LCAwLjkyOTE1MiwgMS4zMDgwMywgMi4xOTIyNCwgMi42OTczMyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxMDUwOTQsIDAuMDEyNTA5NCwgMC4wMzA1MDk0LCAwLjA2MDUwOTQsIDAuMDkwNTA5NCwgMC4xNjA1MDksIDAuMjAwNTA5Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yNzM5NzUsIDAuMzI0MDM5LCAwLjc4NDE0MSwgMS41NTQ5MSwgMi4zMjg3MiwgNC4xMjc4NywgNS4xNDcyNCIsIFwKLSAgICAgICAgICAiMC4yNzM5NjIsIDAuMzI0MTEsIDAuNzg2MDMyLCAxLjU1NjUyLCAyLjMyNDY1LCA0LjEyMjA2LCA1LjE1MDI0IiwgXAotICAgICAgICAgICIwLjI3Mzk5OSwgMC4zMjQwOCwgMC43ODU5MjMsIDEuNTU0NjcsIDIuMzI0NTEsIDQuMTI2NzUsIDUuMTQ2OTEiLCBcCi0gICAgICAgICAgIjAuMjczOTIxLCAwLjMyNDc3NCwgMC43ODU2ODgsIDEuNTU0NDcsIDIuMzI0NTIsIDQuMTI3NTYsIDUuMTQ2MjUiLCBcCi0gICAgICAgICAgIjAuMjczOTQ0LCAwLjMyNDM4LCAwLjc4NTY3MywgMS41NTQ0MywgMi4zMjgwNSwgNC4xMjc0OCwgNS4xNDYzMSIsIFwKLSAgICAgICAgICAiMC4yNzM2NjgsIDAuMzI0Mzg5LCAwLjc4NTY4MywgMS41NTY0OSwgMi4zMjc2NCwgNC4xMjY3NCwgNS4xNDk2MSIsIFwKLSAgICAgICAgICAiMC4yNzQyMjEsIDAuMzI0OTQ4LCAwLjc4NDQwMiwgMS41NTQ0MSwgMi4zMjczOSwgNC4xMjgxOSwgNS4xNDk4OSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxMDUwOTIsIDAuMDEyNTA5MiwgMC4wMzA1MDkyLCAwLjA2MDUwOTIsIDAuMDkwNTA5MiwgMC4xNjA1MDksIDAuMjAwNTA5Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yNDA2MzgsIDAuMjcwMzY5LCAwLjUzNzk0NywgMC45ODM2NjIsIDEuNDI5NDEsIDIuNDY5NzIsIDMuMDYzOTQiLCBcCi0gICAgICAgICAgIjAuMjUyMjkxLCAwLjI4MjAwNSwgMC41NDk1MDcsIDAuOTk1Mjg3LCAxLjQ0MTEyLCAyLjQ4MTU1LCAzLjA3NTk4IiwgXAotICAgICAgICAgICIwLjI2NzUxLCAwLjI5NzIzNCwgMC41NjQ3NjYsIDEuMDEwNTEsIDEuNDU2NDEsIDIuNDk2NSwgMy4wOTA5MSIsIFwKLSAgICAgICAgICAiMC4yODI0MDEsIDAuMzEyMTMxLCAwLjU3OTY1NSwgMS4wMjU0MiwgMS40NzEzMSwgMi41MTE0MSwgMy4xMDU4IiwgXAotICAgICAgICAgICIwLjI5NjQ1LCAwLjMyNjE5LCAwLjU5MzY4NywgMS4wMzk1LCAxLjQ4NTIsIDIuNTI1MzksIDMuMTE5NzgiLCBcCi0gICAgICAgICAgIjAuMzE3MTM2LCAwLjM0Njg2OCwgMC42MTQzNDMsIDEuMDYwMTYsIDEuNTA1OTUsIDIuNTQ2MDYsIDMuMTQwMzkiLCBcCi0gICAgICAgICAgIjAuMzMzNDY0LCAwLjM2MzE5MywgMC42MzA2NTMsIDEuMDc2NDUsIDEuNTIyMjEsIDIuNTYyMzUsIDMuMTU2ODEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMTA1MDkyLCAwLjAxMjUwOTIsIDAuMDMwNTA5MiwgMC4wNjA1MDkyLCAwLjA5MDUwOTIsIDAuMTYwNTA5LCAwLjIwMDUwOSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzExNTI3LCAwLjM3MTQ2LCAwLjg5OTIzOCwgMS43ODYwNSwgMi42NjkzOCwgNC43MjgwNiwgNS45MDU1IiwgXAotICAgICAgICAgICIwLjMxMTYzMywgMC4zNzAzOTgsIDAuOTAwOTA0LCAxLjc4OTMxLCAyLjY3NDU5LCA0LjczMTYzLCA1LjkwNjY0IiwgXAotICAgICAgICAgICIwLjMxMTczMiwgMC4zNzAzMzIsIDAuODk5OTcsIDEuNzg1NDIsIDIuNjczNzksIDQuNzMxMDgsIDUuOTA1MDIiLCBcCi0gICAgICAgICAgIjAuMzExNjM5LCAwLjM3MTQ0MSwgMC45MDE1NiwgMS43ODgzNiwgMi42NzM1OCwgNC43MzA2MywgNS45MDU5NSIsIFwKLSAgICAgICAgICAiMC4zMTE4MTgsIDAuMzcwNzU3LCAwLjg5OTg0MywgMS43ODczLCAyLjY3MTAxLCA0LjczMjM3LCA1LjkwMzU2IiwgXAotICAgICAgICAgICIwLjMxMTk2LCAwLjM3MDk3NSwgMC45MDAyNjQsIDEuNzg1MjQsIDIuNjY4NDYsIDQuNzMyNTgsIDUuOTA1NDEiLCBcCi0gICAgICAgICAgIjAuMzEyNTUzLCAwLjM3MDIzOCwgMC45MDIxLCAxLjc4ODAxLCAyLjY3MDA4LCA0LjczMjg3LCA1LjkwNTg4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIk9FIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiB0aHJlZV9zdGF0ZV9kaXNhYmxlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDU1MjMxLCAwLjA2NjcxNywgMC4wODEzMSwgMC4wOTU0MTIsIDAuMTA4MDk0LCAwLjEyNTg4NSwgMC4xNDAwNTYiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihzY2FsYXIpIHsKLSAgICAgICAgdmFsdWVzKCIwIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMjc3OSwgMC4wMzk0NDYsIDAuMDU0MDIsIDAuMDY4NTEyLCAwLjA4MTE2NCwgMC4wOTg1MzUsIDAuMTEyNDI4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oc2NhbGFyKSB7Ci0gICAgICAgIHZhbHVlcygiMCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEwNTA5NCwgMC4wMTI1MDk0LCAwLjAzMDUwOTQsIDAuMDYwNTA5NCwgMC4wOTA1MDk0LCAwLjE2MDUwOSwgMC4yMDA1MDkiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTA2LCAwLjAwMTA2LCAwLjAwMTA2LCAwLjAwMTA2MSwgMC4wMDEwNjEsIDAuMDAxMDYxLCAwLjAwMTA2MSIsIFwKLSAgICAgICAgICAiMC4wMDEwMywgMC4wMDEwMywgMC4wMDEwMzEsIDAuMDAxMDMxLCAwLjAwMTAzMSwgMC4wMDEwMywgMC4wMDEwMyIsIFwKLSAgICAgICAgICAiMC4wMDEwMTIsIDAuMDAxMDEyLCAwLjAwMTAxMywgMC4wMDEwMTMsIDAuMDAxMDEzLCAwLjAwMTAxMywgMC4wMDEwMTMiLCBcCi0gICAgICAgICAgIjAuMDAxMDAxLCAwLjAwMTAwMiwgMC4wMDEwMDMsIDAuMDAxMDAzLCAwLjAwMTAwMywgMC4wMDEwMDMsIDAuMDAxMDAzIiwgXAotICAgICAgICAgICIwLjAwMDk5NSwgMC4wMDA5OTUsIDAuMDAwOTk3LCAwLjAwMDk5NywgMC4wMDA5OTcsIDAuMDAwOTk3LCAwLjAwMDk5NyIsIFwKLSAgICAgICAgICAiMC4wMDA5ODksIDAuMDAwOTksIDAuMDAwOTkyLCAwLjAwMDk5MiwgMC4wMDA5OTIsIDAuMDAwOTkzLCAwLjAwMDk5MiIsIFwKLSAgICAgICAgICAiMC4wMDA5ODcsIDAuMDAwOTg3LCAwLjAwMDk4OSwgMC4wMDA5OSwgMC4wMDA5OSwgMC4wMDA5OSwgMC4wMDA5OSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEwNTA5MiwgMC4wMTI1MDkyLCAwLjAzMDUwOTIsIDAuMDYwNTA5MiwgMC4wOTA1MDkyLCAwLjE2MDUwOSwgMC4yMDA1MDkiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjkwOCwgMC4wMDI5MDgsIDAuMDAyOTA5LCAwLjAwMjkwOSwgMC4wMDI5MDksIDAuMDAyOTA5LCAwLjAwMjkxIiwgXAotICAgICAgICAgICIwLjAwMjg4OSwgMC4wMDI4OSwgMC4wMDI4OTEsIDAuMDAyODkxLCAwLjAwMjg5MSwgMC4wMDI4OTEsIDAuMDAyODkxIiwgXAotICAgICAgICAgICIwLjAwMjg3OCwgMC4wMDI4NzgsIDAuMDAyODgsIDAuMDAyODgsIDAuMDAyODgsIDAuMDAyODgxLCAwLjAwMjg4MSIsIFwKLSAgICAgICAgICAiMC4wMDI4NzEsIDAuMDAyODcxLCAwLjAwMjg3NCwgMC4wMDI4NzQsIDAuMDAyODc1LCAwLjAwMjg3NSwgMC4wMDI4NzUiLCBcCi0gICAgICAgICAgIjAuMDAyODY2LCAwLjAwMjg2NywgMC4wMDI4NywgMC4wMDI4NzEsIDAuMDAyODcxLCAwLjAwMjg3MiwgMC4wMDI4NzIiLCBcCi0gICAgICAgICAgIjAuMDAyODYxLCAwLjAwMjg2MiwgMC4wMDI4NjUsIDAuMDAyODY3LCAwLjAwMjg2NywgMC4wMDI4NjgsIDAuMDAyODY4IiwgXAotICAgICAgICAgICIwLjAwMjg1OCwgMC4wMDI4NTksIDAuMDAyODYzLCAwLjAwMjg2NSwgMC4wMDI4NjUsIDAuMDAyODY2LCAwLjAwMjg2NiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIk9FIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxMDUwOTQsIDAuMDEyNTA5NCwgMC4wMzA1MDk0LCAwLjA2MDUwOTQsIDAuMDkwNTA5NCwgMC4xNjA1MDksIDAuMjAwNTA5Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDEwMjIsIDAuMDAxMDE3LCAwLjAwMDk5NSwgMC4wMDA5MzYsIDAuMDAwODk5LCAwLjAwMDc4MywgMC4wMDA3MDgiLCBcCi0gICAgICAgICAgIjAuMDAwOTgzLCAwLjAwMDk4MSwgMC4wMDA5NTUsIDAuMDAwODkzLCAwLjAwMDg2MywgMC4wMDA3MzYsIDAuMDAwNjY2IiwgXAotICAgICAgICAgICIwLjAwMDk2LCAwLjAwMDk1NywgMC4wMDA5MzIsIDAuMDAwODc2LCAwLjAwMDgzOCwgMC4wMDA3MiwgMC4wMDA2NSIsIFwKLSAgICAgICAgICAiMC4wMDA5NDYsIDAuMDAwOTQsIDAuMDAwOTIxLCAwLjAwMDg2MiwgMC4wMDA4MjUsIDAuMDAwNzEsIDAuMDAwNjM1IiwgXAotICAgICAgICAgICIwLjAwMDkzOSwgMC4wMDA5MzcsIDAuMDAwOTEzLCAwLjAwMDg1NCwgMC4wMDA3OTcsIDAuMDAwNzAyLCAwLjAwMDYyOCIsIFwKLSAgICAgICAgICAiMC4wMDA5MzMsIDAuMDAwOTI4LCAwLjAwMDkwNiwgMC4wMDA4NDUsIDAuMDAwODEyLCAwLjAwMDY5NSwgMC4wMDA2MTUiLCBcCi0gICAgICAgICAgIjAuMDAwOTI5LCAwLjAwMDkyNCwgMC4wMDA4OTMsIDAuMDAwODQzLCAwLjAwMDgwNSwgMC4wMDA2NzQsIDAuMDAwNjExIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMTA1MDkyLCAwLjAxMjUwOTIsIDAuMDMwNTA5MiwgMC4wNjA1MDkyLCAwLjA5MDUwOTIsIDAuMTYwNTA5LCAwLjIwMDUwOSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxNDA0LCAwLjAwMTQwNCwgMC4wMDE0MDQsIDAuMDAxNDA0LCAwLjAwMTQwNCwgMC4wMDE0MDQsIDAuMDAxNDA0IiwgXAotICAgICAgICAgICIwLjAwMTM4MywgMC4wMDEzODMsIDAuMDAxMzgzLCAwLjAwMTM4MywgMC4wMDEzODMsIDAuMDAxMzgzLCAwLjAwMTM4MyIsIFwKLSAgICAgICAgICAiMC4wMDEzNywgMC4wMDEzNywgMC4wMDEzNywgMC4wMDEzNywgMC4wMDEzNywgMC4wMDEzNywgMC4wMDEzNyIsIFwKLSAgICAgICAgICAiMC4wMDEzNjMsIDAuMDAxMzYzLCAwLjAwMTM2MywgMC4wMDEzNjMsIDAuMDAxMzYzLCAwLjAwMTM2MywgMC4wMDEzNjMiLCBcCi0gICAgICAgICAgIjAuMDAxMzYsIDAuMDAxMzYsIDAuMDAxMzYsIDAuMDAxMzYsIDAuMDAxMzYsIDAuMDAxMzYsIDAuMDAxMzYiLCBcCi0gICAgICAgICAgIjAuMDAxMzYsIDAuMDAxMzYsIDAuMDAxMzYsIDAuMDAxMzYsIDAuMDAxMzU5LCAwLjAwMTM2LCAwLjAwMTM2IiwgXAotICAgICAgICAgICIwLjAwMTM2MSwgMC4wMDEzNjEsIDAuMDAxMzYxLCAwLjAwMTM2MSwgMC4wMDEzNjEsIDAuMDAxMzYxLCAwLjAwMTM2MSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBUSUVMTyAqCi0gKiAtLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoVElFTE8pIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4wMDY4Mjc4MTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVlNTOwotICAgIGZ1bmN0aW9uIDogIjAiOwotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogVExBVE5DQVgxMiAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChUTEFUTkNBWDEyKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuNjk1OTg5OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIGNsb2NrX2dhdGluZ19pbnRlZ3JhdGVkX2NlbGwgOiAibGF0Y2hfcG9zZWRnZSI7Ci0gIHN0YXRldGFibGUoIiBDSyAgRSAiLCAiIEVJTlQgIikgewotICAgICB0YWJsZSA6ICIgIEwgIEwgOiAtIDogTCAsIFwKLSAgICAgICAgICAgICAgICBMICBIIDogLSA6IEggLCBcCi0gICAgICAgICAgICAgICAgSCAgLSA6IC0gOiBOICI7Ci0gIH0KLSAgcGluKEVJTlQpIHsKLSAgICBkaXJlY3Rpb24gOiBpbnRlcm5hbDsKLSAgICBpbnRlcm5hbF9ub2RlIDogIkVJTlQiOwotICB9Ci0gIHBpbihDSykgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNTMwODI4OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDUzMDUzMjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA1MzA4Mjg7Ci0gICAgY2xvY2tfZ2F0ZV9jbG9ja19waW4gOiB0cnVlOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzI0OSwgMC4wMDMyMzUsIDAuMDAzMjIzLCAwLjAwMzIxNywgMC4wMDMyMTEsIDAuMDAzMjA1LCAwLjAwMzIwMyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzkyOSwgMC4wMDM5MTksIDAuMDAzOTEyLCAwLjAwMzkwNSwgMC4wMDM4OTksIDAuMDAzODk2LCAwLjAwMzg5MiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUUiOwotICAgICAgc2RmX2NvbmQgOiAiRSA9PSAxJ2IwIjsKLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjI2NjkyMSwgMC4yNzg2NjksIDAuMjkzNDkxLCAwLjMwODM5MiwgMC4zMjI3ODUsIDAuMzQ1NjksIDAuMzY0MjQxIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihFKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA1NDQxOTE7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNTQyNTAxOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDU0NDE5MTsKLSAgICBjbG9ja19nYXRlX2VuYWJsZV9waW4gOiB0cnVlOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzQzMSwgMC4wMDM0MjEsIDAuMDAzNDE0LCAwLjAwMzQxLCAwLjAwMzQwNiwgMC4wMDM0MDIsIDAuMDAzMzk3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzMjYxLCAwLjAwMzI1NiwgMC4wMDMyNTIsIDAuMDAzMjQ5LCAwLjAwMzI0NiwgMC4wMDMyNDEsIDAuMDAzMjM4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDgxMjUsIC0wLjA3LCAtMC4wNTc1LCAtMC4wNDUsIC0wLjAzODc1LCAtMC4wMjI1LCAtMC4wMTM3NSIsIFwKLSAgICAgICAgICAiLTAuMDkyNSwgLTAuMDgxMjUsIC0wLjA2ODc1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjAzMzc1LCAtMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjEwNSwgLTAuMDkzNzUsIC0wLjA4MTI1LCAtMC4wNzUsIC0wLjA2MjUsIC0wLjA0NjI1LCAtMC4wMzc1IiwgXAotICAgICAgICAgICItMC4xMTc1LCAtMC4xMDYyNSwgLTAuMDkzNzUsIC0wLjA4NzUsIC0wLjA3NSwgLTAuMDU4NzUsIC0wLjA1IiwgXAotICAgICAgICAgICItMC4xMzYyNSwgLTAuMTI1LCAtMC4xMTI1LCAtMC4xLCAtMC4wODc1LCAtMC4wNzc1LCAtMC4wNjI1IiwgXAotICAgICAgICAgICItMC4xNTI1LCAtMC4xNDEyNSwgLTAuMTI4NzUsIC0wLjEyMjUsIC0wLjExLCAtMC4xLCAtMC4wODUiLCBcCi0gICAgICAgICAgIi0wLjE3Mzc1LCAtMC4xNjI1LCAtMC4xNSwgLTAuMTM3NSwgLTAuMTMxMjUsIC0wLjExNSwgLTAuMTA2MjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjI1LCAwLjAxNzUsIDAuMDMsIDAuMDQ4NzUsIDAuMDYxMjUsIDAuMDksIDAuMTExMjUiLCBcCi0gICAgICAgICAgIi0wLjAwNSwgMC4wMDYyNSwgMC4wMTg3NSwgMC4wMzc1LCAwLjA1LCAwLjA3ODc1LCAwLjEiLCBcCi0gICAgICAgICAgIi0wLjAxNzUsIC0wLjAwNjI1LCAwLjAwNjI1LCAwLjAyNSwgMC4wMzc1LCAwLjA2NjI1LCAwLjA4MTI1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLjAxMjUsIDAuMDI1LCAwLjA1Mzc1LCAwLjA2ODc1IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIDAsIDAuMDEyNSwgMC4wNDEyNSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiLTAuMDY1LCAtMC4wNTM3NSwgLTAuMDM1LCAtMC4wMjI1LCAtMC4wMDM3NSwgMC4wMTg3NSwgMC4wNCIsIFwKLSAgICAgICAgICAiLTAuMDgsIC0wLjA2ODc1LCAtMC4wNSwgLTAuMDM3NSwgLTAuMDE4NzUsIDAuMDAzNzUsIDAuMDI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4NzUsIDAuMDc2MjUsIDAuMDYzNzUsIDAuMDUxMjUsIDAuMDQ1LCAwLjAyODc1LCAwLjAyIiwgXAotICAgICAgICAgICIwLjA5ODc1LCAwLjA4NzUsIDAuMDc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDQsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMTExMjUsIDAuMSwgMC4wODc1LCAwLjA4MTI1LCAwLjA2ODc1LCAwLjA1MjUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMTIzNzUsIDAuMTEyNSwgMC4xLCAwLjA5Mzc1LCAwLjA4MTI1LCAwLjA2NSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiMC4xNDI1LCAwLjEzMTI1LCAwLjExODc1LCAwLjEwNjI1LCAwLjA5Mzc1LCAwLjA4Mzc1LCAwLjA2ODc1IiwgXAotICAgICAgICAgICIwLjE1ODc1LCAwLjE0NzUsIDAuMTM1LCAwLjEyODc1LCAwLjExNjI1LCAwLjEwNjI1LCAwLjA5MTI1IiwgXAotICAgICAgICAgICIwLjE4LCAwLjE2ODc1LCAwLjE1NjI1LCAwLjE0Mzc1LCAwLjEzNzUsIDAuMTIxMjUsIDAuMTEyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLCAtMC4wMTEyNSwgLTAuMDIzNzUsIC0wLjA0MjUsIC0wLjA1NSwgLTAuMDgzNzUsIC0wLjEwNSIsIFwKLSAgICAgICAgICAiMC4wMTEyNSwgMCwgLTAuMDEyNSwgLTAuMDMxMjUsIC0wLjA0Mzc1LCAtMC4wNzI1LCAtMC4wOTM3NSIsIFwKLSAgICAgICAgICAiMC4wMjM3NSwgMC4wMTI1LCAwLCAtMC4wMTg3NSwgLTAuMDMxMjUsIC0wLjA2LCAtMC4wNzUiLCBcCi0gICAgICAgICAgIjAuMDM2MjUsIDAuMDI1LCAwLjAxMjUsIC0wLjAwNjI1LCAtMC4wMTg3NSwgLTAuMDQ3NSwgLTAuMDYyNSIsIFwKLSAgICAgICAgICAiMC4wNDg3NSwgMC4wMzc1LCAwLjAyNSwgMC4wMDYyNSwgLTAuMDA2MjUsIC0wLjAzNSwgLTAuMDUiLCBcCi0gICAgICAgICAgIjAuMDcxMjUsIDAuMDYsIDAuMDQxMjUsIDAuMDI4NzUsIDAuMDEsIC0wLjAxMjUsIC0wLjAzMzc1IiwgXAotICAgICAgICAgICIwLjA4NjI1LCAwLjA3NSwgMC4wNTYyNSwgMC4wNDM3NSwgMC4wMjUsIDAuMDAyNSwgLTAuMDE4NzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEVDSykgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAxLjU1NTY2OwotICAgIGNsb2NrX2dhdGVfb3V0X3BpbiA6IHRydWU7Ci0gICAgc3RhdGVfZnVuY3Rpb24gOiAiKENLIEVJTlQpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjQ4MTg3LCAwLjI1NDc2OSwgMC4yODM1MTksIDAuMzA0NDA3LCAwLjMzMDU0LCAwLjM4MDU4NywgMC40MTEzNzciLCBcCi0gICAgICAgICAgIjAuMjYwMDAxLCAwLjI2NjY2NiwgMC4yOTUzNTksIDAuMzE2NDQ0LCAwLjM0MjU1MiwgMC4zOTI0OTQsIDAuNDIzMzMxIiwgXAotICAgICAgICAgICIwLjI3NTIyNiwgMC4yODE4MjksIDAuMzEwNjA1LCAwLjMzMTUwNiwgMC4zNTc2MjEsIDAuNDA3NjU0LCAwLjQzODQ0NCIsIFwKLSAgICAgICAgICAiMC4yOTA3NDYsIDAuMjk3MzkxLCAwLjMyNjAzNCwgMC4zNDcwOTUsIDAuMzczMjI2LCAwLjQyMzE2NywgMC40NTQwMDQiLCBcCi0gICAgICAgICAgIjAuMzA2MDg1LCAwLjMxMjU3OCwgMC4zNDE0MjEsIDAuMzYyMzIyLCAwLjM4ODQxNCwgMC40Mzg0NjUsIDAuNDY5MjU5IiwgXAotICAgICAgICAgICIwLjMzMDIxMiwgMC4zMzY5MDYsIDAuMzY1NzI4LCAwLjM4NjYzMywgMC40MTI3NTQsIDAuNDYyNjg4LCAwLjQ5MzUyOSIsIFwKLSAgICAgICAgICAiMC4zNTA4NjgsIDAuMzU3NTQsIDAuMzg2MjUsIDAuNDA3MjgyLCAwLjQzMzM4NywgMC40ODMzNDgsIDAuNTE0MjA5Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0Nzk5NSwgMC4wNTU2MDgsIDAuMDk1NTA4LCAwLjEzMDI0NiwgMC4xNzcyMzMsIDAuMjczNDc2LCAwLjMzNDgxNCIsIFwKLSAgICAgICAgICAiMC4wNDgzMjksIDAuMDU1ODcsIDAuMDk1NTA2LCAwLjEzMDI2MiwgMC4xNzczNTksIDAuMjczNDE5LCAwLjMzNDgyMSIsIFwKLSAgICAgICAgICAiMC4wNDgwOTgsIDAuMDU1NTksIDAuMDk1NTQ4LCAwLjEzMDI3NiwgMC4xNzcyNSwgMC4yNzM0NzQsIDAuMzM0Nzk1IiwgXAotICAgICAgICAgICIwLjA0ODE4NCwgMC4wNTU4NDUsIDAuMDk1NSwgMC4xMzAyMywgMC4xNzczMzcsIDAuMjczNTE2LCAwLjMzNDgwMiIsIFwKLSAgICAgICAgICAiMC4wNDc5NzYsIDAuMDU1Njg2LCAwLjA5NTYwMSwgMC4xMzAyMywgMC4xNzcyNzMsIDAuMjczNDU1LCAwLjMzNDc3NiIsIFwKLSAgICAgICAgICAiMC4wNDgyNzgsIDAuMDU1ODUxLCAwLjA5NTU5MywgMC4xMzAyMzEsIDAuMTc3MzQxLCAwLjI3MzQxNiwgMC4zMzQ3NzEiLCBcCi0gICAgICAgICAgIjAuMDQ4MzE2LCAwLjA1NTgyNywgMC4wOTU0NDMsIDAuMTMwMjExLCAwLjE3NzI2MSwgMC4yNzM0MDIsIDAuMzM0NzU0Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIxMzY3MSwgMC4yMTkzMjYsIDAuMjQ2NTgyLCAwLjI2ODY3NCwgMC4yOTc1NjcsIDAuMzU0NDAzLCAwLjM4OTc4NyIsIFwKLSAgICAgICAgICAiMC4yMjU0NTQsIDAuMjMxMTExLCAwLjI1ODI2NSwgMC4yODAzNTUsIDAuMzA5Mjc0LCAwLjM2NjEwOSwgMC40MDE0ODYiLCBcCi0gICAgICAgICAgIjAuMjQwMjMxLCAwLjI0NTg1OSwgMC4yNzMwNzIsIDAuMjk1MjA0LCAwLjMyNDA5OSwgMC4zODA5MzMsIDAuNDE2MzEzIiwgXAotICAgICAgICAgICIwLjI1NTE1NCwgMC4yNjA3NzUsIDAuMjg3OTY3LCAwLjMxMDA1MiwgMC4zMzg5NzYsIDAuMzk1ODEzLCAwLjQzMTE4OSIsIFwKLSAgICAgICAgICAiMC4yNjk1NjQsIDAuMjc1MjE3LCAwLjMwMjM3MiwgMC4zMjQ0NTksIDAuMzUzMzgyLCAwLjQxMDIxNywgMC40NDU1OTQiLCBcCi0gICAgICAgICAgIjAuMjkyNDcsIDAuMjk4MDA0LCAwLjMyNTI1NywgMC4zNDczNDcsIDAuMzc2MjY4LCAwLjQzMzEwMywgMC40Njg0NzkiLCBcCi0gICAgICAgICAgIjAuMzEwODk3LCAwLjMxNjU4NywgMC4zNDM4MzUsIDAuMzY1OTI4LCAwLjM5NDgyMSwgMC40NTE2NjEsIDAuNDg3MDQ5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzNzIwNiwgMC4wNDUxMjgsIDAuMDkwMDgxLCAwLjEzMDE5MSwgMC4xODUxNjIsIDAuMjk2MjMxLCAwLjM2NjQ3MiIsIFwKLSAgICAgICAgICAiMC4wMzY5ODYsIDAuMDQ0OTUxLCAwLjA5MDEwMiwgMC4xMzAxMzcsIDAuMTg1MDQsIDAuMjk2MTM5LCAwLjM2NjEwOSIsIFwKLSAgICAgICAgICAiMC4wMzcxMTIsIDAuMDQ1MDA1LCAwLjA5MDAyNCwgMC4xMzAxOTEsIDAuMTg1MTU1LCAwLjI5NjI0NSwgMC4zNjY0NzEiLCBcCi0gICAgICAgICAgIjAuMDM3MDA2LCAwLjA0NDk1NCwgMC4wOTAwOTQsIDAuMTMwMTQyLCAwLjE4NTE4NCwgMC4yOTY0OTYsIDAuMzY2MDg0IiwgXAotICAgICAgICAgICIwLjAzNjk5LCAwLjA0NDk3NCwgMC4wOTAxMDEsIDAuMTMwMTgzLCAwLjE4NTAzMiwgMC4yOTYzNjQsIDAuMzY2MDY1IiwgXAotICAgICAgICAgICIwLjAzNzAwMiwgMC4wNDUxMzIsIDAuMDkwMSwgMC4xMzAxMzYsIDAuMTg1MDI2LCAwLjI5NjE2MSwgMC4zNjYyNzciLCBcCi0gICAgICAgICAgIjAuMDM3MTcsIDAuMDQ1MSwgMC4wOTAwOTEsIDAuMTMwMTUzLCAwLjE4NTExOSwgMC4yOTY0OTQsIDAuMzY1OTkzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxNDIyMiwgMC4wMTQyODEsIDAuMDE0NDk1LCAwLjAxNDU5NiwgMC4wMTQ2NzMsIDAuMDE0NzU0LCAwLjAxNDc3OCIsIFwKLSAgICAgICAgICAiMC4wMTQyMDUsIDAuMDE0MjY1LCAwLjAxNDQ4MiwgMC4wMTQ1ODMsIDAuMDE0NjYyLCAwLjAxNDczOSwgMC4wMTQ3NjYiLCBcCi0gICAgICAgICAgIjAuMDE0MTk4LCAwLjAxNDI1NywgMC4wMTQ0NywgMC4wMTQ1NzIsIDAuMDE0NjUxLCAwLjAxNDcyOCwgMC4wMTQ3NTIiLCBcCi0gICAgICAgICAgIjAuMDE0MTg3LCAwLjAxNDI0NywgMC4wMTQ0NjQsIDAuMDE0NTY1LCAwLjAxNDY0MywgMC4wMTQ3MjQsIDAuMDE0NzUiLCBcCi0gICAgICAgICAgIjAuMDE0MTgzLCAwLjAxNDI0LCAwLjAxNDQ1NywgMC4wMTQ1NTgsIDAuMDE0NjM2LCAwLjAxNDcxNSwgMC4wMTQ3NDEiLCBcCi0gICAgICAgICAgIjAuMDE0MTc0LCAwLjAxNDIzNCwgMC4wMTQ0NTEsIDAuMDE0NTUyLCAwLjAxNDYzMSwgMC4wMTQ3MSwgMC4wMTQ3MzUiLCBcCi0gICAgICAgICAgIjAuMDE0MTY4LCAwLjAxNDIyOSwgMC4wMTQ0NDUsIDAuMDE0NTQ3LCAwLjAxNDYyNiwgMC4wMTQ3MDIsIDAuMDE0NzM5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE4MSwgMC4wMTgxODYsIDAuMDE4NDY5LCAwLjAxODU4NywgMC4wMTg2NzMsIDAuMDE4NzU0LCAwLjAxODc4IiwgXAotICAgICAgICAgICIwLjAxODEwMywgMC4wMTgxODYsIDAuMDE4NDYxLCAwLjAxODU3OSwgMC4wMTg2NjYsIDAuMDE4NzQ3LCAwLjAxODc3MiIsIFwKLSAgICAgICAgICAiMC4wMTgwODIsIDAuMDE4MTY5LCAwLjAxODQ1MSwgMC4wMTg1NjksIDAuMDE4NjU3LCAwLjAxODczOCwgMC4wMTg3NjMiLCBcCi0gICAgICAgICAgIjAuMDE4MDg0LCAwLjAxODE2OSwgMC4wMTg0NDUsIDAuMDE4NTY0LCAwLjAxODY1MSwgMC4wMTg3MzIsIDAuMDE4NzU3IiwgXAotICAgICAgICAgICIwLjAxODA4MSwgMC4wMTgxNjMsIDAuMDE4NDM5LCAwLjAxODU1NiwgMC4wMTg2NDQsIDAuMDE4NzI0LCAwLjAxODc1IiwgXAotICAgICAgICAgICIwLjAxODA4LCAwLjAxODE1NywgMC4wMTg0MzYsIDAuMDE4NTUzLCAwLjAxODY0LCAwLjAxODcyMSwgMC4wMTg3NDciLCBcCi0gICAgICAgICAgIjAuMDE4MDYsIDAuMDE4MTQ2LCAwLjAxODQyOCwgMC4wMTg1NDUsIDAuMDE4NjMxLCAwLjAxODcxNCwgMC4wMTg3MzkiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IFRMQVROQ0FYMiAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKFRMQVROQ0FYMikgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjE4NDYxMTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBjbG9ja19nYXRpbmdfaW50ZWdyYXRlZF9jZWxsIDogImxhdGNoX3Bvc2VkZ2UiOwotICBzdGF0ZXRhYmxlKCIgQ0sgIEUgIiwgIiBFSU5UICIpIHsKLSAgICAgdGFibGUgOiAiICBMICBMIDogLSA6IEwgLCBcCi0gICAgICAgICAgICAgICAgTCAgSCA6IC0gOiBIICwgXAotICAgICAgICAgICAgICAgIEggIC0gOiAtIDogTiAiOwotICB9Ci0gIHBpbihFSU5UKSB7Ci0gICAgZGlyZWN0aW9uIDogaW50ZXJuYWw7Ci0gICAgaW50ZXJuYWxfbm9kZSA6ICJFSU5UIjsKLSAgfQotICBwaW4oQ0spICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDU2MjA2NDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA1NjE3NjE7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNTYyMDY0OwotICAgIGNsb2NrX2dhdGVfY2xvY2tfcGluIDogdHJ1ZTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDE5MjEsIDAuMDAxOTA1LCAwLjAwMTg5MiwgMC4wMDE4ODMsIDAuMDAxODc4LCAwLjAwMTg3NCwgMC4wMDE4NzQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDI0MjYsIDAuMDAyNDEzLCAwLjAwMjQwNCwgMC4wMDIzOTcsIDAuMDAyMzkyLCAwLjAwMjM4OCwgMC4wMDIzODYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFFIjsKLSAgICAgIHNkZl9jb25kIDogIkUgPT0gMSdiMCI7Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4xOTU5OTgsIDAuMjA3Mzc1LCAwLjIyMjMxOSwgMC4yMzY5MDYsIDAuMjUxMDQ3LCAwLjI3MjA0MiwgMC4yODgzMDMiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEUpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDU0MTczODsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA1NDAwMzM7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNTQxNzM4OwotICAgIGNsb2NrX2dhdGVfZW5hYmxlX3BpbiA6IHRydWU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxOTg4LCAwLjAwMTk3NywgMC4wMDE5NywgMC4wMDE5NjUsIDAuMDAxOTYyLCAwLjAwMTk1OCwgMC4wMDE5NTMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDIyMzMsIDAuMDAyMjI3LCAwLjAwMjIyMywgMC4wMDIyMiwgMC4wMDIyMTgsIDAuMDAyMjE0LCAwLjAwMjIxMyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjA3NSwgLTAuMDYzNzUsIC0wLjA1MTI1LCAtMC4wMzg3NSwgLTAuMDMyNSwgLTAuMDIyNSwgLTAuMDEzNzUiLCBcCi0gICAgICAgICAgIi0wLjA4NjI1LCAtMC4wNzUsIC0wLjA2MjUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDMzNzUsIC0wLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDk4NzUsIC0wLjA4NzUsIC0wLjA3NSwgLTAuMDY4NzUsIC0wLjA1NjI1LCAtMC4wNDYyNSwgLTAuMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMTExMjUsIC0wLjEsIC0wLjA4NzUsIC0wLjA4MTI1LCAtMC4wNjg3NSwgLTAuMDU4NzUsIC0wLjA1IiwgXAotICAgICAgICAgICItMC4xMjM3NSwgLTAuMTEyNSwgLTAuMSwgLTAuMDkzNzUsIC0wLjA4NzUsIC0wLjA3MTI1LCAtMC4wNjI1IiwgXAotICAgICAgICAgICItMC4xNDYyNSwgLTAuMTM1LCAtMC4xMjI1LCAtMC4xMTYyNSwgLTAuMTAzNzUsIC0wLjA5Mzc1LCAtMC4wODUiLCBcCi0gICAgICAgICAgIi0wLjE2NzUsIC0wLjE1NjI1LCAtMC4xNDM3NSwgLTAuMTMxMjUsIC0wLjEyNSwgLTAuMTE1LCAtMC4xIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDEyNSwgLTAuMDAxMjUsIDAuMDExMjUsIDAuMDMsIDAuMDQyNSwgMC4wNjUsIDAuMDg2MjUiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTI1LCAwLCAwLjAxODc1LCAwLjAzMTI1LCAwLjA1Mzc1LCAwLjA3NSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAyNSwgLTAuMDEyNSwgMC4wMDYyNSwgMC4wMTg3NSwgMC4wNDEyNSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjAzNzUsIC0wLjAyNSwgLTAuMDA2MjUsIDAuMDA2MjUsIDAuMDI4NzUsIDAuMDUiLCBcCi0gICAgICAgICAgIi0wLjA2MTI1LCAtMC4wNSwgLTAuMDM3NSwgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLjAxNjI1LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjA4Mzc1LCAtMC4wNzI1LCAtMC4wNTM3NSwgLTAuMDQxMjUsIC0wLjAyMjUsIDAsIDAuMDE1IiwgXAotICAgICAgICAgICItMC4wOTg3NSwgLTAuMDg3NSwgLTAuMDc1LCAtMC4wNTYyNSwgLTAuMDQzNzUsIC0wLjAyMTI1LCAwIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4MTI1LCAwLjA3LCAwLjA1NzUsIDAuMDQ1LCAwLjAzODc1LCAwLjAyODc1LCAwLjAyIiwgXAotICAgICAgICAgICIwLjA5MjUsIDAuMDgxMjUsIDAuMDY4NzUsIDAuMDU2MjUsIDAuMDUsIDAuMDQsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMTA1LCAwLjA5Mzc1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNjI1LCAwLjA1MjUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMTE3NSwgMC4xMDYyNSwgMC4wOTM3NSwgMC4wODc1LCAwLjA3NSwgMC4wNjUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIjAuMTMsIDAuMTE4NzUsIDAuMTA2MjUsIDAuMSwgMC4wOTM3NSwgMC4wNzc1LCAwLjA2ODc1IiwgXAotICAgICAgICAgICIwLjE1MjUsIDAuMTQxMjUsIDAuMTI4NzUsIDAuMTIyNSwgMC4xMSwgMC4xLCAwLjA5MTI1IiwgXAotICAgICAgICAgICIwLjE3Mzc1LCAwLjE2MjUsIDAuMTUsIDAuMTM3NSwgMC4xMzEyNSwgMC4xMjEyNSwgMC4xMDYyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxODc1LCAwLjAwNzUsIC0wLjAwNSwgLTAuMDIzNzUsIC0wLjAzNjI1LCAtMC4wNTg3NSwgLTAuMDgiLCBcCi0gICAgICAgICAgIjAuMDMsIDAuMDE4NzUsIDAuMDA2MjUsIC0wLjAxMjUsIC0wLjAyNSwgLTAuMDQ3NSwgLTAuMDY4NzUiLCBcCi0gICAgICAgICAgIjAuMDQyNSwgMC4wMzEyNSwgMC4wMTg3NSwgMCwgLTAuMDEyNSwgLTAuMDM1LCAtMC4wNSIsIFwKLSAgICAgICAgICAiMC4wNTUsIDAuMDQzNzUsIDAuMDMxMjUsIDAuMDEyNSwgMCwgLTAuMDIyNSwgLTAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMDY3NSwgMC4wNTYyNSwgMC4wNDM3NSwgMC4wMjUsIDAuMDEyNSwgLTAuMDEsIC0wLjAzMTI1IiwgXAotICAgICAgICAgICIwLjA5LCAwLjA3ODc1LCAwLjA2LCAwLjA0NzUsIDAuMDI4NzUsIDAuMDA2MjUsIC0wLjAwODc1IiwgXAotICAgICAgICAgICIwLjEwNSwgMC4wOTM3NSwgMC4wODEyNSwgMC4wNjI1LCAwLjA1LCAwLjAyNzUsIDAuMDA2MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEVDSykgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjI2MTQ4NDsKLSAgICBjbG9ja19nYXRlX291dF9waW4gOiB0cnVlOwotICAgIHN0YXRlX2Z1bmN0aW9uIDogIihDSyBFSU5UKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI0NzYzNCwgMC40MzI5NjYsIDAuNTc3Mjg5LCAwLjc1NzY3LCAwLjkzNzk3OSwgMS4xMTgyNiwgMS4yOTg1NCIsIFwKLSAgICAgICAgICAiMC4yNTkzNTcsIDAuNDQ0ODQxLCAwLjU4OTEzLCAwLjc2OTQ5NywgMC45NDk3ODksIDEuMTMwMTgsIDEuMzEwMzUiLCBcCi0gICAgICAgICAgIjAuMjc0NjA5LCAwLjQ2MDA5MywgMC42MDQzODUsIDAuNzg0NzA2LCAwLjk2NTAxMSwgMS4xNDUyOSwgMS4zMjU2OCIsIFwKLSAgICAgICAgICAiMC4yODk4MjksIDAuNDc1MzIxLCAwLjYxOTYxOSwgMC44MDAwMTUsIDAuOTgwMjc3LCAxLjE2MDU3LCAxLjM0MDkiLCBcCi0gICAgICAgICAgIjAuMzA0OTc2LCAwLjQ5MDQ2MiwgMC42MzQ3NTQsIDAuODE1MTE3LCAwLjk5NTQxMywgMS4xNzU4LCAxLjM1NTkzIiwgXAotICAgICAgICAgICIwLjMyODM3NSwgMC41MTM4NjgsIDAuNjU4MTM5LCAwLjgzODUxLCAxLjAxODc5LCAxLjE5OTIzLCAxLjM3OTM4IiwgXAotICAgICAgICAgICIwLjM0NzQ4NiwgMC41MzI5NjcsIDAuNjc3MjY1LCAwLjg1NzY0NSwgMS4wMzc5LCAxLjIxODI3LCAxLjM5ODUiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTA3MjQ5LCAwLjQ2MDc4NiwgMC43NTMwMDYsIDEuMTIyNDUsIDEuNDkxMiwgMS44NjAwNywgMi4yMjg5MiIsIFwKLSAgICAgICAgICAiMC4xMDcwNDMsIDAuNDYxNTgyLCAwLjc1NDAwNSwgMS4xMjIzOCwgMS40ODgzOSwgMS44NTUyNiwgMi4yMjQ5OSIsIFwKLSAgICAgICAgICAiMC4xMDcwNzgsIDAuNDYxNjE2LCAwLjc1MzA1MywgMS4xMjIxNywgMS40OTA5LCAxLjg1OTIzLCAyLjIyOTAyIiwgXAotICAgICAgICAgICIwLjEwNzA5NSwgMC40NjA4MzMsIDAuNzUzMDI2LCAxLjEyMjQ2LCAxLjQ5MTAxLCAxLjg1OTgzLCAyLjIyODkiLCBcCi0gICAgICAgICAgIjAuMTA3MTE2LCAwLjQ2MTYsIDAuNzUzODc2LCAxLjEyMjM1LCAxLjQ4ODMxLCAxLjg1NTI2LCAyLjIyODQzIiwgXAotICAgICAgICAgICIwLjEwNzA4NywgMC40NjE1NywgMC43NTI5ODMsIDEuMTIyMzgsIDEuNDkwNTgsIDEuODU1MTcsIDIuMjI4NzEiLCBcCi0gICAgICAgICAgIjAuMTA3MTY5LCAwLjQ2MTAzOCwgMC43NTI5OTIsIDEuMTIyNDIsIDEuNDkwNDUsIDEuODU2MDgsIDIuMjI4NzMiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTk1OTk4LCAwLjQwMjU1OCwgMC41NjczNDYsIDAuNzczMzczLCAwLjk3OTQ4OCwgMS4xODU0OCwgMS4zOTE1NyIsIFwKLSAgICAgICAgICAiMC4yMDczNzUsIDAuNDEzOTM1LCAwLjU3ODcxOCwgMC43ODQ3NTQsIDAuOTkwODE0LCAxLjE5Njg2LCAxLjQwMjg5IiwgXAotICAgICAgICAgICIwLjIyMjMxOSwgMC40Mjg4NjcsIDAuNTkzNjYsIDAuNzk5NzIxLCAxLjAwNTc3LCAxLjIxMTc4LCAxLjQxNzgiLCBcCi0gICAgICAgICAgIjAuMjM2OTA2LCAwLjQ0MzQ2OSwgMC42MDgyNjcsIDAuODE0Mjg4LCAxLjAyMDMzLCAxLjIyNjQsIDEuNDMyNDMiLCBcCi0gICAgICAgICAgIjAuMjUxMDQ3LCAwLjQ1NzYwNSwgMC42MjIzOTgsIDAuODI4NDIyLCAxLjAzNDQ2LCAxLjI0MDUzLCAxLjQ0NjU1IiwgXAotICAgICAgICAgICIwLjI3MjA0MiwgMC40Nzg2MDksIDAuNjQzNDA4LCAwLjg0OTQzMywgMS4wNTU0NywgMS4yNjE1NCwgMS40Njc1NiIsIFwKLSAgICAgICAgICAiMC4yODgzMDMsIDAuNDk0OTA4LCAwLjY1OTY5NiwgMC44NjU3MDgsIDEuMDcxOCwgMS4yNzc4MSwgMS40ODM5OCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTk4NjUsIDAuNTA3MDY0LCAwLjgzNDk5OCwgMS4yNDQ1MywgMS42NTY5NywgMi4wNjY5OCwgMi40Nzk4IiwgXAotICAgICAgICAgICIwLjA5OTg2NCwgMC41MDcwNzIsIDAuODM0ODA5LCAxLjI0NTQzLCAxLjY1NTYsIDIuMDY2OTYsIDIuNDc5NTgiLCBcCi0gICAgICAgICAgIjAuMDk5ODgxLCAwLjUwNzA2NSwgMC44MzQ0MDUsIDEuMjQ2NDksIDEuNjU1NjMsIDIuMDY3NTgsIDIuNDgxMDUiLCBcCi0gICAgICAgICAgIjAuMDk5ODU1LCAwLjUwNzAzNCwgMC44MzQxNjUsIDEuMjQ3MDMsIDEuNjU4MTQsIDIuMDY2OTIsIDIuNDgwMjMiLCBcCi0gICAgICAgICAgIjAuMDk5ODgxLCAwLjUwNzA1NSwgMC44MzQ0MzgsIDEuMjQ2MTQsIDEuNjU2OTcsIDIuMDY3MzksIDIuNDgwMDgiLCBcCi0gICAgICAgICAgIjAuMDk5ODY2LCAwLjUwNzAyMiwgMC44MzQwOTgsIDEuMjQ1NTUsIDEuNjU4MjQsIDIuMDY2OTMsIDIuNDgwNjMiLCBcCi0gICAgICAgICAgIjAuMDk5ODcsIDAuNTA2OTg1LCAwLjgzNDE0NiwgMS4yNDY4NSwgMS42NTc5NSwgMi4wNjY5NywgMi40ODA1NSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDM5NTUsIDAuMDAzOTg1LCAwLjAwMzk4NCwgMC4wMDM5ODMsIDAuMDAzOTgyLCAwLjAwMzk4MSwgMC4wMDM5OCIsIFwKLSAgICAgICAgICAiMC4wMDM5MzksIDAuMDAzOTY5LCAwLjAwMzk2OCwgMC4wMDM5NjYsIDAuMDAzOTY2LCAwLjAwMzk2NiwgMC4wMDM5NjQiLCBcCi0gICAgICAgICAgIjAuMDAzOTI3LCAwLjAwMzk1NywgMC4wMDM5NTYsIDAuMDAzOTU1LCAwLjAwMzk1NCwgMC4wMDM5NTMsIDAuMDAzOTUzIiwgXAotICAgICAgICAgICIwLjAwMzkxOCwgMC4wMDM5NDgsIDAuMDAzOTQ3LCAwLjAwMzk0OCwgMC4wMDM5NDUsIDAuMDAzOTQ2LCAwLjAwMzk0NSIsIFwKLSAgICAgICAgICAiMC4wMDM5MTMsIDAuMDAzOTQzLCAwLjAwMzk0MywgMC4wMDM5NDEsIDAuMDAzOTQsIDAuMDAzOTM5LCAwLjAwMzkzOSIsIFwKLSAgICAgICAgICAiMC4wMDM5MDgsIDAuMDAzOTQsIDAuMDAzOTM5LCAwLjAwMzkzNywgMC4wMDM5MzcsIDAuMDAzOTM1LCAwLjAwMzkzNSIsIFwKLSAgICAgICAgICAiMC4wMDM5MDgsIDAuMDAzOTQsIDAuMDAzOTQsIDAuMDAzOTM4LCAwLjAwMzkzNiwgMC4wMDM5MzYsIDAuMDAzOTM1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2NzIyLCAwLjAwNjc1LCAwLjAwNjc1LCAwLjAwNjc1LCAwLjAwNjc0OSwgMC4wMDY3NDksIDAuMDA2NzQ5IiwgXAotICAgICAgICAgICIwLjAwNjcwOSwgMC4wMDY3MzgsIDAuMDA2NzM4LCAwLjAwNjczNywgMC4wMDY3MzYsIDAuMDA2NzM2LCAwLjAwNjczNiIsIFwKLSAgICAgICAgICAiMC4wMDY2OTksIDAuMDA2NzI4LCAwLjAwNjcyOCwgMC4wMDY3MjcsIDAuMDA2NzI3LCAwLjAwNjcyNiwgMC4wMDY3MjYiLCBcCi0gICAgICAgICAgIjAuMDA2NjkyLCAwLjAwNjcyMiwgMC4wMDY3MjIsIDAuMDA2NzIxLCAwLjAwNjcyMSwgMC4wMDY3MiwgMC4wMDY3MiIsIFwKLSAgICAgICAgICAiMC4wMDY2ODgsIDAuMDA2NzE4LCAwLjAwNjcxOCwgMC4wMDY3MTcsIDAuMDA2NzE2LCAwLjAwNjcxNiwgMC4wMDY3MTUiLCBcCi0gICAgICAgICAgIjAuMDA2NjgyLCAwLjAwNjcxMywgMC4wMDY3MTMsIDAuMDA2NzEyLCAwLjAwNjcxMSwgMC4wMDY3MTEsIDAuMDA2NzEiLCBcCi0gICAgICAgICAgIjAuMDA2NjczLCAwLjAwNjcwNCwgMC4wMDY3MDQsIDAuMDA2NzAzLCAwLjAwNjcwMiwgMC4wMDY3MDIsIDAuMDA2NzAxIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogVExBVE5DQVgyMCAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChUTEFUTkNBWDIwKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDEuMTM5ODQ7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgY2xvY2tfZ2F0aW5nX2ludGVncmF0ZWRfY2VsbCA6ICJsYXRjaF9wb3NlZGdlIjsKLSAgc3RhdGV0YWJsZSgiIENLICBFICIsICIgRUlOVCAiKSB7Ci0gICAgIHRhYmxlIDogIiAgTCAgTCA6IC0gOiBMICwgXAotICAgICAgICAgICAgICAgIEwgIEggOiAtIDogSCAsIFwKLSAgICAgICAgICAgICAgICBIICAtIDogLSA6IE4gIjsKLSAgfQotICBwaW4oRUlOVCkgewotICAgIGRpcmVjdGlvbiA6IGludGVybmFsOwotICAgIGludGVybmFsX25vZGUgOiAiRUlOVCI7Ci0gIH0KLSAgcGluKENLKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2NTc0Mzg7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjU3MDY0OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDY1NzQzODsKLSAgICBjbG9ja19nYXRlX2Nsb2NrX3BpbiA6IHRydWU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA0NDE2LCAwLjAwNDQwMSwgMC4wMDQzODksIDAuMDA0MzgxLCAwLjAwNDM3NywgMC4wMDQzNzEsIDAuMDA0MzY5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA0MjY4LCAwLjAwNDI1OCwgMC4wMDQyNDcsIDAuMDA0MjQyLCAwLjAwNDIzNywgMC4wMDQyMzIsIDAuMDA0MjMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFFIjsKLSAgICAgIHNkZl9jb25kIDogIkUgPT0gMSdiMCI7Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4zMTI0OTEsIDAuMzI0MTM3LCAwLjMzODkwNCwgMC4zNTM1MzcsIDAuMzY3OTk4LCAwLjM4OTg4LCAwLjQwNzUwNyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjYwMTEzOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDY1ODE5NjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2NjAxMTM7Ci0gICAgY2xvY2tfZ2F0ZV9lbmFibGVfcGluIDogdHJ1ZTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDU0MDYsIDAuMDA1Mzk2LCAwLjAwNTM4OSwgMC4wMDUzODMsIDAuMDA1Mzc5LCAwLjAwNTM3NiwgMC4wMDUzNjciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDQ1MzQsIDAuMDA0NTMsIDAuMDA0NTI2LCAwLjAwNDUyMSwgMC4wMDQ1MTgsIDAuMDA0NTE0LCAwLjAwNDUwOCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjA5Mzc1LCAtMC4wODI1LCAtMC4wNywgLTAuMDYzNzUsIC0wLjA1MTI1LCAtMC4wNDEyNSwgLTAuMDMyNSIsIFwKLSAgICAgICAgICAiLTAuMTA1LCAtMC4wOTM3NSwgLTAuMDgxMjUsIC0wLjA3NSwgLTAuMDYyNSwgLTAuMDUyNSwgLTAuMDQzNzUiLCBcCi0gICAgICAgICAgIi0wLjEyMzc1LCAtMC4xMDYyNSwgLTAuMSwgLTAuMDg3NSwgLTAuMDc1LCAtMC4wNjUsIC0wLjA1NjI1IiwgXAotICAgICAgICAgICItMC4xMzYyNSwgLTAuMTI1LCAtMC4xMTI1LCAtMC4xLCAtMC4wOTM3NSwgLTAuMDc3NSwgLTAuMDY4NzUiLCBcCi0gICAgICAgICAgIi0wLjE0ODc1LCAtMC4xMzc1LCAtMC4xMjUsIC0wLjExMjUsIC0wLjEwNjI1LCAtMC4wOSwgLTAuMDgxMjUiLCBcCi0gICAgICAgICAgIi0wLjE3MTI1LCAtMC4xNiwgLTAuMTQ3NSwgLTAuMTM1LCAtMC4xMjg3NSwgLTAuMTEyNSwgLTAuMTAzNzUiLCBcCi0gICAgICAgICAgIi0wLjE4NjI1LCAtMC4xNzUsIC0wLjE2MjUsIC0wLjE1NjI1LCAtMC4xNDM3NSwgLTAuMTMzNzUsIC0wLjExODc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDA2MjUsIDAuMDA1LCAwLjAyMzc1LCAwLjAzNjI1LCAwLjA1NSwgMC4wNzc1LCAwLjA5ODc1IiwgXAotICAgICAgICAgICItMC4wMTc1LCAtMC4wMDYyNSwgMC4wMTI1LCAwLjAyNSwgMC4wMzc1LCAwLjA2NjI1LCAwLjA4MTI1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDE4NzUsIDAsIDAuMDEyNSwgMC4wMjUsIDAuMDUzNzUsIDAuMDY4NzUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzMTI1LCAtMC4wMTI1LCAwLCAwLjAxMjUsIDAuMDQxMjUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIi0wLjA1NSwgLTAuMDQzNzUsIC0wLjAyNSwgLTAuMDEyNSwgMCwgMC4wMjg3NSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDc3NSwgLTAuMDYsIC0wLjA0NzUsIC0wLjAzNSwgLTAuMDE2MjUsIDAuMDA2MjUsIDAuMDI3NSIsIFwKLSAgICAgICAgICAiLTAuMDkyNSwgLTAuMDgxMjUsIC0wLjA2MjUsIC0wLjA1LCAtMC4wMzEyNSwgLTAuMDA4NzUsIDAuMDEyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xLCAwLjA4ODc1LCAwLjA3NjI1LCAwLjA3LCAwLjA1NzUsIDAuMDQ3NSwgMC4wMzg3NSIsIFwKLSAgICAgICAgICAiMC4xMTEyNSwgMC4xLCAwLjA4NzUsIDAuMDgxMjUsIDAuMDY4NzUsIDAuMDU4NzUsIDAuMDUiLCBcCi0gICAgICAgICAgIjAuMTMsIDAuMTEyNSwgMC4xMDYyNSwgMC4wOTM3NSwgMC4wODEyNSwgMC4wNzEyNSwgMC4wNjI1IiwgXAotICAgICAgICAgICIwLjE0MjUsIDAuMTMxMjUsIDAuMTE4NzUsIDAuMTA2MjUsIDAuMSwgMC4wODM3NSwgMC4wNzUiLCBcCi0gICAgICAgICAgIjAuMTU1LCAwLjE0Mzc1LCAwLjEzMTI1LCAwLjExODc1LCAwLjExMjUsIDAuMDk2MjUsIDAuMDg3NSIsIFwKLSAgICAgICAgICAiMC4xNzc1LCAwLjE2NjI1LCAwLjE1Mzc1LCAwLjE0MTI1LCAwLjEzNSwgMC4xMTg3NSwgMC4xMSIsIFwKLSAgICAgICAgICAiMC4xOTI1LCAwLjE4MTI1LCAwLjE2ODc1LCAwLjE2MjUsIDAuMTUsIDAuMTQsIDAuMTI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEyNSwgMC4wMDEyNSwgLTAuMDE3NSwgLTAuMDMsIC0wLjA0ODc1LCAtMC4wNzEyNSwgLTAuMDkyNSIsIFwKLSAgICAgICAgICAiMC4wMjM3NSwgMC4wMTI1LCAtMC4wMDYyNSwgLTAuMDE4NzUsIC0wLjAzMTI1LCAtMC4wNiwgLTAuMDc1IiwgXAotICAgICAgICAgICIwLjAzNjI1LCAwLjAyNSwgMC4wMDYyNSwgLTAuMDA2MjUsIC0wLjAxODc1LCAtMC4wNDc1LCAtMC4wNjI1IiwgXAotICAgICAgICAgICIwLjA0ODc1LCAwLjAzNzUsIDAuMDE4NzUsIDAuMDA2MjUsIC0wLjAwNjI1LCAtMC4wMzUsIC0wLjA1IiwgXAotICAgICAgICAgICIwLjA2MTI1LCAwLjA1LCAwLjAzMTI1LCAwLjAxODc1LCAwLjAwNjI1LCAtMC4wMjI1LCAtMC4wMzc1IiwgXAotICAgICAgICAgICIwLjA4Mzc1LCAwLjA2NjI1LCAwLjA1Mzc1LCAwLjA0MTI1LCAwLjAyMjUsIDAsIC0wLjAyMTI1IiwgXAotICAgICAgICAgICIwLjA5ODc1LCAwLjA4NzUsIDAuMDY4NzUsIDAuMDU2MjUsIDAuMDM3NSwgMC4wMTUsIC0wLjAwNjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihFQ0spICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMi43OTcyMTsKLSAgICBjbG9ja19nYXRlX291dF9waW4gOiB0cnVlOwotICAgIHN0YXRlX2Z1bmN0aW9uIDogIihDSyBFSU5UKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI3NTUzOCwgMC4zMDU4MDksIDAuMzI0MjA0LCAwLjM0NTA4MSwgMC4zNjQ0OTksIDAuMzgzNDYsIDAuNDAyMDcyIiwgXAotICAgICAgICAgICIwLjI4NzMyNSwgMC4zMTc1MDcsIDAuMzM2MDQ3LCAwLjM1NjYzMSwgMC4zNzYyMjYsIDAuMzk1MTM1LCAwLjQxMzc3NyIsIFwKLSAgICAgICAgICAiMC4zMDI4MjksIDAuMzMzMDUzLCAwLjM1MTU2OCwgMC4zNzIxNDIsIDAuMzkxNzAzLCAwLjQxMDY1NCwgMC40MjkyODQiLCBcCi0gICAgICAgICAgIjAuMzE4MTUxLCAwLjM0ODQzOSwgMC4zNjY5NjIsIDAuMzg3NTM1LCAwLjQwNzEyMywgMC40MjYwNDQsIDAuNDQ0NjY5IiwgXAotICAgICAgICAgICIwLjMzMjkyMiwgMC4zNjMyMDYsIDAuMzgxNjYxLCAwLjQwMjI5NSwgMC40MjE4NiwgMC40NDA4NDUsIDAuNDU5NDU5IiwgXAotICAgICAgICAgICIwLjM1NzA1NywgMC4zODczOTYsIDAuNDA1ODU4LCAwLjQyNjU4NCwgMC40NDYxNzUsIDAuNDY1MTQ3LCAwLjQ4MzY2NiIsIFwKLSAgICAgICAgICAiMC4zNzcyMzQsIDAuNDA3NTE5LCAwLjQyNjAyMywgMC40NDY2MTEsIDAuNDY2MTc5LCAwLjQ4NTE1NSwgMC41MDM3ODciKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQ2ODUyLCAwLjA4MzQwOSwgMC4xMTA3MjIsIDAuMTQ0OTYsIDAuMTc5NjY3LCAwLjIxNDY1LCAwLjI1MDA5OSIsIFwKLSAgICAgICAgICAiMC4wNDY4NzIsIDAuMDgzNDQzLCAwLjExMDc2NCwgMC4xNDUwMDQsIDAuMTc5NDUzLCAwLjIxNDY5NSwgMC4yNTAxMDYiLCBcCi0gICAgICAgICAgIjAuMDQ2ODU1LCAwLjA4MzQwOSwgMC4xMTA3NDgsIDAuMTQ0OTY4LCAwLjE3OTU3LCAwLjIxNDcyMiwgMC4yNTAwNzMiLCBcCi0gICAgICAgICAgIjAuMDQ2Nzg5LCAwLjA4MzQ5OSwgMC4xMTA4MzgsIDAuMTQ0OTU1LCAwLjE3OTQ4MSwgMC4yMTQ3NTEsIDAuMjUwMDcxIiwgXAotICAgICAgICAgICIwLjA0NjkxOCwgMC4wODM0NTMsIDAuMTEwNzY4LCAwLjE0NDk4OCwgMC4xNzk2NTIsIDAuMjE0Njg5LCAwLjI1MDEiLCBcCi0gICAgICAgICAgIjAuMDQ3MzU1LCAwLjA4MzM0NiwgMC4xMTA3MjgsIDAuMTQ0OTU3LCAwLjE3OTY1MiwgMC4yMTQ3MzMsIDAuMjUwMTMiLCBcCi0gICAgICAgICAgIjAuMDQ2OTQyLCAwLjA4MzQzMSwgMC4xMTA3OSwgMC4xNDQ5ODIsIDAuMTc5NTc4LCAwLjIxNDY2MywgMC4yNTAwNzMiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjQ2MjkzLCAwLjI3MzU1MywgMC4yOTE3NjYsIDAuMzEzNjk5LCAwLjMzNTE4MSwgMC4zNTY0NjIsIDAuMzc3NTM5IiwgXAotICAgICAgICAgICIwLjI1ODA2OCwgMC4yODUxMTcsIDAuMzAzNDY1LCAwLjMyNTM0LCAwLjM0Njg1OSwgMC4zNjgxMzYsIDAuMzg5MTkxIiwgXAotICAgICAgICAgICIwLjI3MjY5NiwgMC4yOTk5NDYsIDAuMzE4MTc0LCAwLjM0MDA5MywgMC4zNjE1NzUsIDAuMzgyODU5LCAwLjQwMzkzNCIsIFwKLSAgICAgICAgICAiMC4yODcyODksIDAuMzE0NDM4LCAwLjMzMjgwMiwgMC4zNTQ3MiwgMC4zNzYxOTksIDAuMzk3NDg1LCAwLjQxODU1OSIsIFwKLSAgICAgICAgICAiMC4zMDE3MjgsIDAuMzI5MDA3LCAwLjM0NzI0MywgMC4zNjkxNTUsIDAuMzkwNjM5LCAwLjQxMTkyMSwgMC40MzI5OTciLCBcCi0gICAgICAgICAgIjAuMzIzNjgzLCAwLjM1MDkwMSwgMC4zNjkxMjgsIDAuMzkxMDQ2LCAwLjQxMjUzMywgMC40MzM4MSwgMC40NTQ4ODIiLCBcCi0gICAgICAgICAgIjAuMzQxMzMzLCAwLjM2ODQ4MiwgMC4zODY3NzUsIDAuNDA4NjM1LCAwLjQzMDE1OCwgMC40NTE0MDcsIDAuNDcyNDg2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzNjQzNSwgMC4wNzU4NCwgMC4xMDY5MTEsIDAuMTQ2NDMxLCAwLjE4Njg0OCwgMC4yMjc2NSwgMC4yNjg2NzgiLCBcCi0gICAgICAgICAgIjAuMDM2MDY3LCAwLjA3NTcwMSwgMC4xMDY5NjcsIDAuMTQ2NDA0LCAwLjE4NjkzNywgMC4yMjc2NTUsIDAuMjY4NTA0IiwgXAotICAgICAgICAgICIwLjAzNjQ0LCAwLjA3NTgzMSwgMC4xMDY5MTIsIDAuMTQ2NDM1LCAwLjE4Njg0MiwgMC4yMjc2NjQsIDAuMjY4Njg2IiwgXAotICAgICAgICAgICIwLjAzNjQ2NSwgMC4wNzU3MywgMC4xMDY5MTUsIDAuMTQ2NDI5LCAwLjE4Njg1LCAwLjIyNzY0NCwgMC4yNjg2NyIsIFwKLSAgICAgICAgICAiMC4wMzY0MTEsIDAuMDc1ODI5LCAwLjEwNjkwMywgMC4xNDY0MjcsIDAuMTg2ODI1LCAwLjIyNzY0OCwgMC4yNjkwMzQiLCBcCi0gICAgICAgICAgIjAuMDM2NTA2LCAwLjA3NTg0MSwgMC4xMDY5MzQsIDAuMTQ2NDMxLCAwLjE4NjgzNywgMC4yMjc2NDIsIDAuMjY4NjY0IiwgXAotICAgICAgICAgICIwLjAzNjQ1LCAwLjA3NTc0NywgMC4xMDY5NjEsIDAuMTQ2NDM0LCAwLjE4NjgzLCAwLjIyNzY1LCAwLjI2ODY2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyNDIzMiwgMC4wMjQ1NzcsIDAuMDI0NzQ1LCAwLjAyNDg4MiwgMC4wMjQ5NzQsIDAuMDI1MDQsIDAuMDI1MDg3IiwgXAotICAgICAgICAgICIwLjAyNDIxNSwgMC4wMjQ1NjMsIDAuMDI0NzMsIDAuMDI0ODY4LCAwLjAyNDk1MywgMC4wMjUwMjUsIDAuMDI1MDczIiwgXAotICAgICAgICAgICIwLjAyNDIwNCwgMC4wMjQ1NTIsIDAuMDI0NzE4LCAwLjAyNDg1NywgMC4wMjQ5NDgsIDAuMDI1MDE0LCAwLjAyNTA2MiIsIFwKLSAgICAgICAgICAiMC4wMjQxOTcsIDAuMDI0NTQ0LCAwLjAyNDcxMywgMC4wMjQ4NSwgMC4wMjQ5NDEsIDAuMDI1MDA2LCAwLjAyNTA1NCIsIFwKLSAgICAgICAgICAiMC4wMjQxODcsIDAuMDI0NTM3LCAwLjAyNDcwNiwgMC4wMjQ4NDMsIDAuMDI0OTQyLCAwLjAyNSwgMC4wMjUwNDgiLCBcCi0gICAgICAgICAgIjAuMDI0MTczLCAwLjAyNDUzMywgMC4wMjQ3MDEsIDAuMDI0ODM5LCAwLjAyNDkzLCAwLjAyNDk5NSwgMC4wMjUwNDQiLCBcCi0gICAgICAgICAgIjAuMDI0MTgsIDAuMDI0NTMsIDAuMDI0Njk3LCAwLjAyNDgzNiwgMC4wMjQ5MjYsIDAuMDI0OTkyLCAwLjAyNTA0MSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyODE3OCwgMC4wMjg2NzgsIDAuMDI4ODk3LCAwLjAyOTA3LCAwLjAyOTE4NSwgMC4wMjkyNjQsIDAuMDI5MzIyIiwgXAotICAgICAgICAgICIwLjAyODIxNCwgMC4wMjg2ODYsIDAuMDI4OTAyLCAwLjAyOTA3MiwgMC4wMjkxODUsIDAuMDI5MjYyLCAwLjAyOTMyIiwgXAotICAgICAgICAgICIwLjAyODE2MiwgMC4wMjg2NTgsIDAuMDI4ODc4LCAwLjAyOTA1LCAwLjAyOTE2NSwgMC4wMjkyNDMsIDAuMDI5MzAzIiwgXAotICAgICAgICAgICIwLjAyODE0NiwgMC4wMjg2NTIsIDAuMDI4ODcyLCAwLjAyOTA0NCwgMC4wMjkxNTksIDAuMDI5MjM4LCAwLjAyOTI5NiIsIFwKLSAgICAgICAgICAiMC4wMjgxNTQsIDAuMDI4NjQ2LCAwLjAyODg2NywgMC4wMjkwMzksIDAuMDI5MTUzLCAwLjAyOTIzMiwgMC4wMjkyOTEiLCBcCi0gICAgICAgICAgIjAuMDI4MTYyLCAwLjAyODY0NSwgMC4wMjg4NjQsIDAuMDI5MDM0LCAwLjAyOTE0OCwgMC4wMjkyMjgsIDAuMDI5Mjg2IiwgXAotICAgICAgICAgICIwLjAyODE1NSwgMC4wMjg2NDMsIDAuMDI4ODYzLCAwLjAyOTAzNiwgMC4wMjkxNDksIDAuMDI5MjI3LCAwLjAyOTI4NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogVExBVE5DQVg2ICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoVExBVE5DQVg2KSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMzg3MTUxOwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIGNsb2NrX2dhdGluZ19pbnRlZ3JhdGVkX2NlbGwgOiAibGF0Y2hfcG9zZWRnZSI7Ci0gIHN0YXRldGFibGUoIiBDSyAgRSAiLCAiIEVJTlQgIikgewotICAgICB0YWJsZSA6ICIgIEwgIEwgOiAtIDogTCAsIFwKLSAgICAgICAgICAgICAgICBMICBIIDogLSA6IEggLCBcCi0gICAgICAgICAgICAgICAgSCAgLSA6IC0gOiBOICI7Ci0gIH0KLSAgcGluKEVJTlQpIHsKLSAgICBkaXJlY3Rpb24gOiBpbnRlcm5hbDsKLSAgICBpbnRlcm5hbF9ub2RlIDogIkVJTlQiOwotICB9Ci0gIHBpbihDSykgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNTgwMDI3OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDU3OTc0MjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA1ODAwMjc7Ci0gICAgY2xvY2tfZ2F0ZV9jbG9ja19waW4gOiB0cnVlOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjcyOCwgMC4wMDI3MTMsIDAuMDAyNywgMC4wMDI2OTEsIDAuMDAyNjg2LCAwLjAwMjY4MSwgMC4wMDI2ODEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDMwODksIDAuMDAzMDc4LCAwLjAwMzA2OCwgMC4wMDMwNjEsIDAuMDAzMDU3LCAwLjAwMzA1MiwgMC4wMDMwNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUUiOwotICAgICAgc2RmX2NvbmQgOiAiRSA9PSAxJ2IwIjsKLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjI0MDg0NCwgMC4yNTI1MTMsIDAuMjY3NDA5LCAwLjI4MTg0NiwgMC4yOTYzMjUsIDAuMzE3NzExLCAwLjMzNDkwOSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNTkxNjA5OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDU4OTg4ODsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA1OTE2MDk7Ci0gICAgY2xvY2tfZ2F0ZV9lbmFibGVfcGluIDogdHJ1ZTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDI4OTQsIDAuMDAyODg0LCAwLjAwMjg3NywgMC4wMDI4NzIsIDAuMDAyODY4LCAwLjAwMjg2NCwgMC4wMDI4NTkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDMwMjksIDAuMDAzMDIzLCAwLjAwMzAxOSwgMC4wMDMwMTYsIDAuMDAzMDEzLCAwLjAwMzAwOSwgMC4wMDMwMDYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wODEyNSwgLTAuMDcsIC0wLjA2Mzc1LCAtMC4wNTEyNSwgLTAuMDQ1LCAtMC4wMjg3NSwgLTAuMDIiLCBcCi0gICAgICAgICAgIi0wLjA5ODc1LCAtMC4wODc1LCAtMC4wNzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNCwgLTAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjExMTI1LCAtMC4xLCAtMC4wODc1LCAtMC4wNzUsIC0wLjA2ODc1LCAtMC4wNTg3NSwgLTAuMDQzNzUiLCBcCi0gICAgICAgICAgIi0wLjEyMzc1LCAtMC4xMTI1LCAtMC4xLCAtMC4wODc1LCAtMC4wODEyNSwgLTAuMDcxMjUsIC0wLjA1NjI1IiwgXAotICAgICAgICAgICItMC4xMzYyNSwgLTAuMTI1LCAtMC4xMTI1LCAtMC4xMDYyNSwgLTAuMDkzNzUsIC0wLjA4Mzc1LCAtMC4wNzUiLCBcCi0gICAgICAgICAgIi0wLjE1ODc1LCAtMC4xNDc1LCAtMC4xMzUsIC0wLjEyMjUsIC0wLjExNjI1LCAtMC4xMDYyNSwgLTAuMDkxMjUiLCBcCi0gICAgICAgICAgIi0wLjE4LCAtMC4xNjg3NSwgLTAuMTU2MjUsIC0wLjE0Mzc1LCAtMC4xMzc1LCAtMC4xMjEyNSwgLTAuMTEyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAxMjUsIC0wLjAwMTI1LCAwLjAxMTI1LCAwLjAzLCAwLjA0MjUsIDAuMDY1LCAwLjA4NjI1IiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDEyNSwgMCwgMC4wMTg3NSwgMC4wMzEyNSwgMC4wNTM3NSwgMC4wNzUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMjUsIC0wLjAxMjUsIDAuMDA2MjUsIDAuMDE4NzUsIDAuMDQxMjUsIDAuMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjAzNzUsIC0wLjAyNSwgLTAuMDA2MjUsIDAuMDA2MjUsIDAuMDI4NzUsIDAuMDUiLCBcCi0gICAgICAgICAgIi0wLjA2MTI1LCAtMC4wNSwgLTAuMDM3NSwgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLjAxNjI1LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjA4Mzc1LCAtMC4wNzI1LCAtMC4wNTM3NSwgLTAuMDQxMjUsIC0wLjAyMjUsIDAsIDAuMDIxMjUiLCBcCi0gICAgICAgICAgIi0wLjA5ODc1LCAtMC4wODc1LCAtMC4wNjg3NSwgLTAuMDU2MjUsIC0wLjAzNzUsIC0wLjAxNSwgMCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODc1LCAwLjA3NjI1LCAwLjA3LCAwLjA1NzUsIDAuMDUxMjUsIDAuMDM1LCAwLjAyNjI1IiwgXAotICAgICAgICAgICIwLjEwNSwgMC4wOTM3NSwgMC4wODEyNSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA0NjI1LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIjAuMTE3NSwgMC4xMDYyNSwgMC4wOTM3NSwgMC4wODEyNSwgMC4wNzUsIDAuMDY1LCAwLjA1IiwgXAotICAgICAgICAgICIwLjEzLCAwLjExODc1LCAwLjEwNjI1LCAwLjA5Mzc1LCAwLjA4NzUsIDAuMDc3NSwgMC4wNjI1IiwgXAotICAgICAgICAgICIwLjE0MjUsIDAuMTMxMjUsIDAuMTE4NzUsIDAuMTEyNSwgMC4xLCAwLjA5LCAwLjA4MTI1IiwgXAotICAgICAgICAgICIwLjE2NSwgMC4xNTM3NSwgMC4xNDEyNSwgMC4xMjg3NSwgMC4xMjI1LCAwLjExMjUsIDAuMDk3NSIsIFwKLSAgICAgICAgICAiMC4xODYyNSwgMC4xNzUsIDAuMTYyNSwgMC4xNSwgMC4xNDM3NSwgMC4xMjc1LCAwLjExODc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE4NzUsIDAuMDA3NSwgLTAuMDA1LCAtMC4wMjM3NSwgLTAuMDM2MjUsIC0wLjA1ODc1LCAtMC4wOCIsIFwKLSAgICAgICAgICAiMC4wMywgMC4wMTg3NSwgMC4wMDYyNSwgLTAuMDEyNSwgLTAuMDI1LCAtMC4wNDc1LCAtMC4wNjg3NSIsIFwKLSAgICAgICAgICAiMC4wNDI1LCAwLjAzMTI1LCAwLjAxODc1LCAwLCAtMC4wMTI1LCAtMC4wMzUsIC0wLjA1NjI1IiwgXAotICAgICAgICAgICIwLjA1NSwgMC4wNDM3NSwgMC4wMzEyNSwgMC4wMTI1LCAwLCAtMC4wMjI1LCAtMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4wNjc1LCAwLjA1NjI1LCAwLjA0Mzc1LCAwLjAyNSwgMC4wMTI1LCAtMC4wMSwgLTAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMDksIDAuMDc4NzUsIDAuMDYsIDAuMDQ3NSwgMC4wMjg3NSwgMC4wMDYyNSwgLTAuMDE1IiwgXAotICAgICAgICAgICIwLjEwNSwgMC4wOTM3NSwgMC4wNzUsIDAuMDYyNSwgMC4wNDM3NSwgMC4wMjEyNSwgMC4wMDYyNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRUNLKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuNzc4MTk7Ci0gICAgY2xvY2tfZ2F0ZV9vdXRfcGluIDogdHJ1ZTsKLSAgICBzdGF0ZV9mdW5jdGlvbiA6ICIoQ0sgRUlOVCkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIxODg0OCwgMC4zMTEwMjcsIDAuMzk1MzIyLCAwLjQ1NTMzMywgMC41NTEzOTEsIDAuNjM1MzMxLCAwLjc1NTMzNiIsIFwKLSAgICAgICAgICAiMC4yMzA2OSwgMC4zMjI4NDcsIDAuNDA3MTQ2LCAwLjQ2NzE1NiwgMC41NjMyMTUsIDAuNjQ3MTU2LCAwLjc2NzE1NiIsIFwKLSAgICAgICAgICAiMC4yNDYwMzQsIDAuMzM4MDUxLCAwLjQyMjM3NywgMC40ODI0MDQsIDAuNTc4NDI5LCAwLjY2MjQwOSwgMC43ODIzOTEiLCBcCi0gICAgICAgICAgIjAuMjYxMzA0LCAwLjM1MzQyNSwgMC40Mzc3MTksIDAuNDk3NzUzLCAwLjU5Mzc3NSwgMC42Nzc3NzUsIDAuNzk3NzAyIiwgXAotICAgICAgICAgICIwLjI3NjM5MywgMC4zNjg1NzUsIDAuNDUyODcxLCAwLjUxMjg4MSwgMC42MDg5NDEsIDAuNjkyOTUsIDAuODEyODI5IiwgXAotICAgICAgICAgICIwLjMwMDE0OCwgMC4zOTIyNTcsIDAuNDc2NTU5LCAwLjUzNjYwMiwgMC42MzI2MiwgMC43MTY2MSwgMC44MzY1NzEiLCBcCi0gICAgICAgICAgIjAuMzE5NjgsIDAuNDExNzg0LCAwLjQ5NjA4NCwgMC41NTYxMjcsIDAuNjUyMTQ0LCAwLjczNjEzNiwgMC44NTYxMDIiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTU0OTYsIDAuMjE2NDUxLCAwLjM4NDM3MSwgMC41MDQxNTMsIDAuNjk4MzcyLCAwLjg3MTAzNiwgMS4xMTMzMiIsIFwKLSAgICAgICAgICAiMC4wNTU1MjEsIDAuMjE2NDUzLCAwLjM4NDM3MiwgMC41MDQ2ODIsIDAuNjk4MTA3LCAwLjg3MTAzMSwgMS4xMTMzMyIsIFwKLSAgICAgICAgICAiMC4wNTU1NjksIDAuMjE2NDI0LCAwLjM4NDI3OCwgMC41MDQ2MTksIDAuNjk4NjI3LCAwLjg3MTA2NCwgMS4xMTMzOCIsIFwKLSAgICAgICAgICAiMC4wNTU0MjcsIDAuMjE2NDY4LCAwLjM4MzY1MSwgMC41MDUzNDYsIDAuNjk4NjA5LCAwLjg3MTExNiwgMS4xMTUwNCIsIFwKLSAgICAgICAgICAiMC4wNTU0OTEsIDAuMjE2NDU4LCAwLjM4NDM3NCwgMC41MDQ2NjMsIDAuNjk4NjE5LCAwLjg2ODY4LCAxLjExNTI2IiwgXAotICAgICAgICAgICIwLjA1NTQ0NCwgMC4yMTYzODcsIDAuMzgzNjA4LCAwLjUwNDU2NywgMC42OTg1MzcsIDAuODcxMDc1LCAxLjExMzA2IiwgXAotICAgICAgICAgICIwLjA1NTM5OCwgMC4yMTYzODUsIDAuMzgzNTgsIDAuNTA0NTY0LCAwLjY5ODUwNiwgMC44NzEwNzksIDEuMTEzMSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE4ODQ2LCAwLjI4OTM3MywgMC4zODcyMzgsIDAuNDU3MTQ1LCAwLjU2OTA4NiwgMC42NjcwMTksIDAuODA2OTk2IiwgXAotICAgICAgICAgICIwLjIwMDAyNCwgMC4zMDA5OTYsIDAuMzk4ODU4LCAwLjQ2ODc2NCwgMC41ODA2NzYsIDAuNjc4NjI2LCAwLjgxODU3MiIsIFwKLSAgICAgICAgICAiMC4yMTQ5MzksIDAuMzE1ODQ2LCAwLjQxMzcwNSwgMC40ODM2MSwgMC41OTU1NTEsIDAuNjkzNDcsIDAuODMzNDIiLCBcCi0gICAgICAgICAgIjAuMjI5NDA4LCAwLjMzMDI5MywgMC40MjgxNjEsIDAuNDk4MDc5LCAwLjYwOTk4OCwgMC43MDc5NDUsIDAuODQ3ODc4IiwgXAotICAgICAgICAgICIwLjI0Mzc4NCwgMC4zNDQ3NDksIDAuNDQyNjEzLCAwLjUxMjUxOCwgMC42MjQ0MzIsIDAuNzIyMzg2LCAwLjg2MjMyOCIsIFwKLSAgICAgICAgICAiMC4yNjUyMjMsIDAuMzY2MTE3LCAwLjQ2Mzk3OSwgMC41MzM5MDEsIDAuNjQ1Nzk5LCAwLjc0Mzc1MSwgMC44ODM2OTUiLCBcCi0gICAgICAgICAgIjAuMjgyNDAxLCAwLjM4MzMzMywgMC40ODEyMDEsIDAuNTUxMTA3LCAwLjY2MzA0NiwgMC43NjA5ODEsIDAuOTAwOTE1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQ3OTUyLCAwLjIzNzE1MSwgMC40MzA2MTQsIDAuNTY5NTQ4LCAwLjc5MjA2NiwgMC45ODY5NTYsIDEuMjY1MjIiLCBcCi0gICAgICAgICAgIjAuMDQ3OTEyLCAwLjIzNjc5NywgMC40MzA2MDIsIDAuNTY5NTEyLCAwLjc5MjA1MywgMC45ODY5MzEsIDEuMjY1MyIsIFwKLSAgICAgICAgICAiMC4wNDc5ODMsIDAuMjM3MTEyLCAwLjQzMDYzOCwgMC41NjkwNTksIDAuNzkyMTMsIDAuOTg2ODgsIDEuMjY0NzgiLCBcCi0gICAgICAgICAgIjAuMDQ3OTgxLCAwLjIzNzEwNCwgMC40MzA3ODgsIDAuNTY5MzUyLCAwLjc5MjA5OSwgMC45ODY4NzUsIDEuMjY0NSIsIFwKLSAgICAgICAgICAiMC4wNDc5MTMsIDAuMjM2NjM2LCAwLjQzMDYyNCwgMC41Njk0NzcsIDAuNzkxNzA5LCAwLjk4Njg1OCwgMS4yNjUyMiIsIFwKLSAgICAgICAgICAiMC4wNDc5NzEsIDAuMjM3MDg2LCAwLjQzMDYxLCAwLjU2OTU5NywgMC43OTIxMDYsIDAuOTg2ODQ5LCAxLjI2NDc0IiwgXAotICAgICAgICAgICIwLjA0NzkzOSwgMC4yMzY1ODcsIDAuNDMwNjE1LCAwLjU2OTQ2MiwgMC43OTE5OTcsIDAuOTg2ODk5LCAxLjI2NTEzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA5MjQ1LCAwLjAwOTQzMiwgMC4wMDk0NjQsIDAuMDA5NDc0LCAwLjAwOTQ4NCwgMC4wMDk0ODYsIDAuMDA5NDkxIiwgXAotICAgICAgICAgICIwLjAwOTIzLCAwLjAwOTQxNywgMC4wMDk0NDksIDAuMDA5NDU5LCAwLjAwOTQ2NywgMC4wMDk0NzEsIDAuMDA5NDc2IiwgXAotICAgICAgICAgICIwLjAwOTIxOCwgMC4wMDk0MDQsIDAuMDA5NDM3LCAwLjAwOTQ0NywgMC4wMDk0NTYsIDAuMDA5NDYxLCAwLjAwOTQ2MyIsIFwKLSAgICAgICAgICAiMC4wMDkyMSwgMC4wMDkzOTYsIDAuMDA5NDI4LCAwLjAwOTQzOCwgMC4wMDk0NDcsIDAuMDA5NDUxLCAwLjAwOTQ1NiIsIFwKLSAgICAgICAgICAiMC4wMDkyMDQsIDAuMDA5MzksIDAuMDA5NDIyLCAwLjAwOTQzMiwgMC4wMDk0NCwgMC4wMDk0NDYsIDAuMDA5NDUiLCBcCi0gICAgICAgICAgIjAuMDA5MTk3LCAwLjAwOTM4NCwgMC4wMDk0MTYsIDAuMDA5NDI3LCAwLjAwOTQzNSwgMC4wMDk0MzksIDAuMDA5NDQzIiwgXAotICAgICAgICAgICIwLjAwOTE5NCwgMC4wMDkzOCwgMC4wMDk0MTIsIDAuMDA5NDIyLCAwLjAwOTQzMSwgMC4wMDk0MzgsIDAuMDA5NDM5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTIwMDIsIDAuMDEyMjMzLCAwLjAxMjI2OCwgMC4wMTIyNzksIDAuMDEyMjg4LCAwLjAxMjI5MywgMC4wMTIyOTciLCBcCi0gICAgICAgICAgIjAuMDExOTksIDAuMDEyMjIxLCAwLjAxMjI1NywgMC4wMTIyNjgsIDAuMDEyMjc3LCAwLjAxMjI4MiwgMC4wMTIyODYiLCBcCi0gICAgICAgICAgIjAuMDExOTgxLCAwLjAxMjIxMiwgMC4wMTIyNDgsIDAuMDEyMjU5LCAwLjAxMjI2OCwgMC4wMTIyNzMsIDAuMDEyMjc3IiwgXAotICAgICAgICAgICIwLjAxMTk3MiwgMC4wMTIyMDMsIDAuMDEyMjM5LCAwLjAxMjI1LCAwLjAxMjI1OSwgMC4wMTIyNjQsIDAuMDEyMjY4IiwgXAotICAgICAgICAgICIwLjAxMTk2OSwgMC4wMTIyLCAwLjAxMjIzNiwgMC4wMTIyNDcsIDAuMDEyMjU2LCAwLjAxMjI2MSwgMC4wMTIyNjUiLCBcCi0gICAgICAgICAgIjAuMDExOTYxLCAwLjAxMjE5MiwgMC4wMTIyMjcsIDAuMDEyMjM4LCAwLjAxMjI0OCwgMC4wMTIyNTIsIDAuMDEyMjU2IiwgXAotICAgICAgICAgICIwLjAxMTk2MSwgMC4wMTIxOTEsIDAuMDEyMjI2LCAwLjAxMjIzNywgMC4wMTIyNDYsIDAuMDEyMjUxLCAwLjAxMjI1NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogVExBVE5TUlg0ICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoVExBVE5TUlg0KSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuNjExNDEyOwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIGxhdGNoIChRSU5ULE41KSB7Ci0gICAgZGF0YV9pbiA6ICJEIjsKLSAgICBlbmFibGUgOiAiKCghR04pIFJOKSI7Ci0gICAgcHJlc2V0IDogIighU04pIjsKLSAgfQotICBwaW4oRCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNTg5MzM0OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDU4Nzc4NjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA1ODkzMzQ7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMTYsIDAuMDAwMTYxLCAwLjAwMDE2MiwgMC4wMDAxNjIsIDAuMDAwMTYyLCAwLjAwMDE2MiwgMC4wMDAxNjIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiwgMC4wMDAxNjYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiR04iOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiUk4mU04iOwotICAgICAgc2RmX2NvbmQgOiAiUk5fRVFfMV9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAzNzUsIC0wLjAyNjI1LCAtMC4wMDc1LCAwLjAwNSwgMC4wMTc1LCAwLjA0LCAwLjA1NSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjAzNzUsIC0wLjAyNSwgLTAuMDA2MjUsIDAuMDA2MjUsIDAuMDI4NzUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIi0wLjA2MTI1LCAtMC4wNSwgLTAuMDM3NSwgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLjAxNjI1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wOCwgLTAuMDYyNSwgLTAuMDUsIC0wLjAzNzUsIC0wLjAxODc1LCAwLjAwMzc1LCAwLjAxODc1IiwgXAotICAgICAgICAgICItMC4wOTI1LCAtMC4wODEyNSwgLTAuMDYyNSwgLTAuMDUsIC0wLjAzMTI1LCAtMC4wMTUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjExNSwgLTAuMTAzNzUsIC0wLjA4NSwgLTAuMDcyNSwgLTAuMDUzNzUsIC0wLjAzNzUsIC0wLjAxNjI1IiwgXAotICAgICAgICAgICItMC4xMywgLTAuMTE4NzUsIC0wLjEwNjI1LCAtMC4wODc1LCAtMC4wNzUsIC0wLjA1MjUsIC0wLjAzNzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wNjg3NSwgLTAuMDU3NSwgLTAuMDM4NzUsIC0wLjAyNjI1LCAtMC4wMTM3NSwgMC4wMDg3NSwgMC4wMjM3NSIsIFwKLSAgICAgICAgICAiLTAuMDgsIC0wLjA2ODc1LCAtMC4wNSwgLTAuMDM3NSwgLTAuMDI1LCAtMC4wMDI1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjA5MjUsIC0wLjA4MTI1LCAtMC4wNjI1LCAtMC4wNSwgLTAuMDM3NSwgLTAuMDE1LCAwIiwgXAotICAgICAgICAgICItMC4xMDUsIC0wLjA5Mzc1LCAtMC4wNzUsIC0wLjA2MjUsIC0wLjA1LCAtMC4wMjc1LCAtMC4wMTI1IiwgXAotICAgICAgICAgICItMC4xMTc1LCAtMC4xMDYyNSwgLTAuMDg3NSwgLTAuMDc1LCAtMC4wNjI1LCAtMC4wNCwgLTAuMDI1IiwgXAotICAgICAgICAgICItMC4xMzM3NSwgLTAuMTIyNSwgLTAuMTEsIC0wLjA5MTI1LCAtMC4wNzg3NSwgLTAuMDU2MjUsIC0wLjA0MTI1IiwgXAotICAgICAgICAgICItMC4xNDg3NSwgLTAuMTM3NSwgLTAuMTI1LCAtMC4xMTI1LCAtMC4wOTM3NSwgLTAuMDc3NSwgLTAuMDYyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJHTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiUk4mU04iOwotICAgICAgc2RmX2NvbmQgOiAiUk5fRVFfMV9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3NSwgMC4wNjM3NSwgMC4wNTEyNSwgMC4wMzI1LCAwLjAyLCAtMC4wMDI1LCAtMC4wMTc1IiwgXAotICAgICAgICAgICIwLjA4NjI1LCAwLjA3NSwgMC4wNjI1LCAwLjA0Mzc1LCAwLjAzMTI1LCAwLjAwODc1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiMC4wOTg3NSwgMC4wODc1LCAwLjA3NSwgMC4wNTYyNSwgMC4wNDM3NSwgMC4wMjEyNSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiMC4xMTEyNSwgMC4xLCAwLjA4NzUsIDAuMDc1LCAwLjA1NjI1LCAwLjAzMzc1LCAwLjAxODc1IiwgXAotICAgICAgICAgICIwLjEzLCAwLjExMjUsIDAuMSwgMC4wODc1LCAwLjA2ODc1LCAwLjA0NjI1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICIwLjE0NjI1LCAwLjEzNSwgMC4xMjI1LCAwLjEwMzc1LCAwLjA5MTI1LCAwLjA2ODc1LCAwLjA1Mzc1IiwgXAotICAgICAgICAgICIwLjE2NzUsIDAuMTU2MjUsIDAuMTM3NSwgMC4xMjUsIDAuMTEyNSwgMC4wOSwgMC4wNjg3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExMjUsIDAuMTAxMjUsIDAuMDg4NzUsIDAuMDcsIDAuMDU3NSwgMC4wMzUsIDAuMDIiLCBcCi0gICAgICAgICAgIjAuMTIzNzUsIDAuMTEyNSwgMC4xLCAwLjA4MTI1LCAwLjA2ODc1LCAwLjA0NjI1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICIwLjEzNjI1LCAwLjEyNSwgMC4xMTI1LCAwLjA5Mzc1LCAwLjA4MTI1LCAwLjA1ODc1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjE0ODc1LCAwLjEzNzUsIDAuMTE4NzUsIDAuMTA2MjUsIDAuMDkzNzUsIDAuMDcxMjUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIjAuMTYxMjUsIDAuMTUsIDAuMTMxMjUsIDAuMTE4NzUsIDAuMTA2MjUsIDAuMDgzNzUsIDAuMDY4NzUiLCBcCi0gICAgICAgICAgIjAuMTc3NSwgMC4xNjYyNSwgMC4xNTM3NSwgMC4xMzUsIDAuMTIyNSwgMC4xLCAwLjA4NSIsIFwKLSAgICAgICAgICAiMC4xOTI1LCAwLjE4MTI1LCAwLjE2ODc1LCAwLjE1LCAwLjEzNzUsIDAuMTIxMjUsIDAuMSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oR04pICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDU5MjgwNTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA1OTI1MjI7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNTkyODA1OwotICAgIGNsb2NrIDogdHJ1ZTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyODYsIDAuMDAwMjY4LCAwLjAwMDI1OCwgMC4wMDAyNTQsIDAuMDAwMjUzLCAwLjAwMDI1MSwgMC4wMDAyNTIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDMwNDksIDAuMDAzMDM0LCAwLjAwMzAyMSwgMC4wMDMwMTQsIDAuMDAzMDA5LCAwLjAwMzAwNSwgMC4wMDMwMDQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiR04iOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFEJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgZmFsbF9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuNDIzNDY5LCAwLjQzNTAyLCAwLjQ0OTI5MSwgMC40NjMyMTYsIDAuNDc1Mjk0LCAwLjQ5MjQzMiwgMC41MDU4ODQiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFEpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC41MzI1NjQ7Ci0gICAgZnVuY3Rpb24gOiAiUUlOVCI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yNTI1MDQsIDAuMzc4Mzk4LCAwLjUwNDg2OCwgMC41OTU2MTIsIDAuNzM4OTEsIDAuODY3NjM3LCAxLjA0NzM2IiwgXAotICAgICAgICAgICIwLjI2NDI5NSwgMC4zOTAxNDksIDAuNTE2Njc0LCAwLjYwNzM5NywgMC43NTA1OTQsIDAuODc5MzA1LCAxLjA1OTEzIiwgXAotICAgICAgICAgICIwLjI3ODQ4LCAwLjQwNDM3NywgMC41MzA1MjIsIDAuNjIxNTg1LCAwLjc2NTEsIDAuODkzMzc4LCAxLjA3MzQyIiwgXAotICAgICAgICAgICIwLjI5MjE2OCwgMC40MTgxNzgsIDAuNTQ0MzQyLCAwLjYzNTA0MywgMC43Nzg4MzYsIDAuOTA0Nzk0LCAxLjA4NzIxIiwgXAotICAgICAgICAgICIwLjMwNTkwMSwgMC40MzE3OTYsIDAuNTU3OTM4LCAwLjY0ODU0LCAwLjc5MjU1NSwgMC45MjA3OCwgMS4xMDA4MyIsIFwKLSAgICAgICAgICAiMC4zMjc4NjIsIDAuNDUzNjkxLCAwLjU3OTkzNCwgMC42NzA5NDMsIDAuODE0NTI0LCAwLjk0Mjc0OCwgMS4xMjI3OSIsIFwKLSAgICAgICAgICAiMC4zNDY4NDksIDAuNDcyNjA3LCAwLjU5ODYzNiwgMC42ODk4ODEsIDAuODMzMjE3LCAwLjk2MTkzMiwgMS4xNDE2NyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0OTczMiwgMC4zMDM0NTEsIDAuNTY0Nzc5LCAwLjc0OTY4NCwgMS4wMzU4NSwgMS4zMDE2NiwgMS42NzUyNCIsIFwKLSAgICAgICAgICAiMC4wNDk2ODUsIDAuMzAzMDA2LCAwLjU2MzU2NywgMC43NDk1OTEsIDEuMDM2ODIsIDEuMjk5NjksIDEuNjc1MTEiLCBcCi0gICAgICAgICAgIjAuMDQ5NjM1LCAwLjMwMzI1MSwgMC41NjAyLCAwLjc0OTYzNSwgMS4wMzk5MiwgMS4yOTY3NSwgMS42NzUwNSIsIFwKLSAgICAgICAgICAiMC4wNDk1NzUsIDAuMzAzMzIsIDAuNTU5ODQsIDAuNzQ5ODU1LCAxLjAzOTU2LCAxLjI5MzI3LCAxLjY3NTA1IiwgXAotICAgICAgICAgICIwLjA0OTcxNywgMC4zMDMyNjEsIDAuNTYwMjczLCAwLjc0OTk1MSwgMS4wNDAxNiwgMS4yOTY0MywgMS42NzUwOSIsIFwKLSAgICAgICAgICAiMC4wNDk3MjEsIDAuMzAzMzgzLCAwLjU2MTMwNSwgMC43NDk2MzgsIDEuMDQwMjEsIDEuMjk2NTUsIDEuNjc1MDkiLCBcCi0gICAgICAgICAgIjAuMDQ5NTk2LCAwLjMwMzE0MywgMC41NjIyNTUsIDAuNzQ5NjI1LCAxLjAzNTQ0LCAxLjMwMTM3LCAxLjY3NTA4Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjk2MDkzLCAwLjQ0MTg5NCwgMC41ODg2OTUsIDAuNjk0MDUyLCAwLjg1OTcxNSwgMS4wMDg4NSwgMS4yMTQ0NiIsIFwKLSAgICAgICAgICAiMC4zMDc0MTQsIDAuNDUzMzgyLCAwLjYwMDE4MSwgMC43MDUxLCAwLjg3MTE5MiwgMS4wMTY4NywgMS4yMzAxNyIsIFwKLSAgICAgICAgICAiMC4zMjA1MzQsIDAuNDY2MzMyLCAwLjYxMzEzNCwgMC43MTg1MDIsIDAuODg0MTYxLCAxLjAzMzI5LCAxLjIzOSIsIFwKLSAgICAgICAgICAiMC4zMzI4OTYsIDAuNDc4NzIxLCAwLjYyNTQ1OCwgMC43MzA1LCAwLjg5NjQ4OCwgMS4wNDI3NywgMS4yNTU1MiIsIFwKLSAgICAgICAgICAiMC4zNDUxNjgsIDAuNDkwOTU2LCAwLjYzNzc1OCwgMC43NDI0ODcsIDAuOTA5MDE3LCAxLjA1NDUxLCAxLjI2Nzc2IiwgXAotICAgICAgICAgICIwLjM2NDUxMiwgMC41MTAzMzEsIDAuNjU3MTI3LCAwLjc2MjAzMywgMC45MjgwODIsIDEuMDc3MjgsIDEuMjgyOTQiLCBcCi0gICAgICAgICAgIjAuMzgxMTk4LCAwLjUyNzAyMiwgMC42NzM4MDYsIDAuNzc4ODE1LCAwLjk0NDc5LCAxLjA5MTM2LCAxLjMwMzgzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU2MDY4LCAwLjM0NDAxNywgMC42MzU2ODgsIDAuODQyMDU3LCAxLjE3NTYzLCAxLjQ2NzcyLCAxLjg4MjUiLCBcCi0gICAgICAgICAgIjAuMDU2MjczLCAwLjM0Mzk5MiwgMC42MzU2NTksIDAuODQzMTkyLCAxLjE3NTA0LCAxLjQ2NDE2LCAxLjg4MzY5IiwgXAotICAgICAgICAgICIwLjA1NjA2OCwgMC4zNDQwMTIsIDAuNjM1NjgxLCAwLjg0MTk0OCwgMS4xNzU1MywgMS40Njc4NiwgMS44ODQxNSIsIFwKLSAgICAgICAgICAiMC4wNTYwMDYsIDAuMzQzOTgxLCAwLjYzNTgxOCwgMC44NDMwOTUsIDEuMTc1MzYsIDEuNDY2NTcsIDEuODgzNTUiLCBcCi0gICAgICAgICAgIjAuMDU2MzI0LCAwLjM0Mzk1OCwgMC42MzU2NDIsIDAuODQ0MDA4LCAxLjE3NDYsIDEuNDY1ODEsIDEuODgzMTMiLCBcCi0gICAgICAgICAgIjAuMDU1OTgxLCAwLjM0Mzk4LCAwLjYzNTYwOCwgMC44NDM1NTgsIDEuMTc1NjQsIDEuNDY2MzMsIDEuODg1OTMiLCBcCi0gICAgICAgICAgIjAuMDU2MDAxLCAwLjM0Mzk4NCwgMC42MzU1MzgsIDAuODQzMDcyLCAxLjE3NTM5LCAxLjQ2NjcyLCAxLjg4NDQ3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkdOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5vbl91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogZmFsbGluZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjQwNjI4OSwgMC41MzIyNDMsIDAuNjU4NTk3LCAwLjc0OTM0NiwgMC44OTI4LCAxLjAyMTUzLCAxLjIwMTI1IiwgXAotICAgICAgICAgICIwLjQxNzc1NiwgMC41NDM2NiwgMC42Njk2MjMsIDAuNzYwMTQyLCAwLjkwNDUyMywgMS4wMzI2NywgMS4yMTIzOSIsIFwKLSAgICAgICAgICAiMC40MzE5NjIsIDAuNTU3OTI0LCAwLjY4NDA1OCwgMC43NzUxMDQsIDAuOTE5ODA0LCAxLjA0NjUxLCAxLjIyNzEiLCBcCi0gICAgICAgICAgIjAuNDQ1ODIzLCAwLjU3MTc1NiwgMC42OTc4ODcsIDAuNzg4ODk2LCAwLjkzMjM5MSwgMS4wNjExMiwgMS4yNDA4NCIsIFwKLSAgICAgICAgICAiMC40NTc5MDksIDAuNTgzODM0LCAwLjcwOTk3NywgMC43OTk4NDMsIDAuOTQ0MDQ5LCAxLjA3MzI2LCAxLjI1Mjk5IiwgXAotICAgICAgICAgICIwLjQ3NTIyLCAwLjYwMTE0OCwgMC43MjcwNzcsIDAuODE4MzM3LCAwLjk2MzM5NCwgMS4wODk3MywgMS4yNzAzMiIsIFwKLSAgICAgICAgICAiMC40ODg5NjMsIDAuNjE0ODM3LCAwLjc0MDc4NiwgMC44MzIwOCwgMC45NzY1NzUsIDEuMTAyODgsIDEuMjgzOSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0OTU4LCAwLjMwNTEzMiwgMC41NTkwNTQsIDAuNzQ5NjE5LCAxLjAzNjgzLCAxLjMwNDE2LCAxLjY3NSIsIFwKLSAgICAgICAgICAiMC4wNDk0MDEsIDAuMzAzMTAxLCAwLjU1ODY1NSwgMC43NDU4MTUsIDEuMDQwOSwgMS4yOTY4NSwgMS42Njc0IiwgXAotICAgICAgICAgICIwLjA0OTYzLCAwLjMwNTIzNSwgMC41NTk5NTIsIDAuNzQ5NjA3LCAxLjA0NTUzLCAxLjMwNDU4LCAxLjY3NDkyIiwgXAotICAgICAgICAgICIwLjA0OTQzMiwgMC4zMDUxNzcsIDAuNTU5NTE4LCAwLjc0OTYxNywgMS4wMzc3MywgMS4yOTU2LCAxLjY3NDk3IiwgXAotICAgICAgICAgICIwLjA0OTU4NiwgMC4zMDUyMjMsIDAuNTU5NzA0LCAwLjc0NDg2NiwgMS4wMzU4OCwgMS4yOTU4OCwgMS42NzQ5MyIsIFwKLSAgICAgICAgICAiMC4wNDk1NDcsIDAuMzA1MjMzLCAwLjU1OTQ2OSwgMC43NDk2MDUsIDEuMDM4MTUsIDEuMzA0NTEsIDEuNjc0OTQiLCBcCi0gICAgICAgICAgIjAuMDQ5NTg0LCAwLjMwMzQyOSwgMC41NTk0NjcsIDAuNzQ5NTgzLCAxLjAzNTEyLCAxLjMwNDgsIDEuNjc1MDciKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC40MjM0NjksIDAuNTY5MzY2LCAwLjcxNjE0MiwgMC44MjEwMjIsIDAuOTg3Mzc4LCAxLjEzMjkxLCAxLjM0NjE1IiwgXAotICAgICAgICAgICIwLjQzNTAyLCAwLjU4MDg5NywgMC43Mjc3MDcsIDAuODMyNTMyLCAwLjk5ODkxNywgMS4xNDQ0NCwgMS4zNTc2OSIsIFwKLSAgICAgICAgICAiMC40NDkyOTEsIDAuNTk0ODM4LCAwLjc0MTkwMSwgMC44NDcwOTksIDEuMDEzMDIsIDEuMTYyMDYsIDEuMzY3NTMiLCBcCi0gICAgICAgICAgIjAuNDYzMjE2LCAwLjYwOTAzMywgMC43NTU3OCwgMC44NTk3MzEsIDEuMDI2ODMsIDEuMTczODMsIDEuMzgxMzIiLCBcCi0gICAgICAgICAgIjAuNDc1Mjk0LCAwLjYyMDg0MSwgMC43Njc4MjcsIDAuODcyNzkxLCAxLjAzOTA5LCAxLjE4NTAxLCAxLjM5Nzg2IiwgXAotICAgICAgICAgICIwLjQ5MjQzMiwgMC42MzgzMzgsIDAuNzg1MTM0LCAwLjg4OTk0NywgMS4wNTY0NSwgMS4yMDE5LCAxLjQxNTEzIiwgXAotICAgICAgICAgICIwLjUwNTg4NCwgMC42NTE0MDUsIDAuNzk3NDk3LCAwLjkwMzM1NiwgMS4wNjk3MiwgMS4yMTUwNywgMS40Mjg0MyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1NjAyMSwgMC4zNDM4OTcsIDAuNjM1NTc3LCAwLjg0Mzg1NSwgMS4xNzUxNSwgMS40NjU5MywgMS44ODM2NyIsIFwKLSAgICAgICAgICAiMC4wNTYyMTMsIDAuMzQ0MDk4LCAwLjYzNTg5MSwgMC44NDQzNjEsIDEuMTc1MTEsIDEuNDY1NjEsIDEuODgyMjUiLCBcCi0gICAgICAgICAgIjAuMDU2MzQxLCAwLjM0NDI0NywgMC42MzUwOTcsIDAuODQxNjQyLCAxLjE3MzUsIDEuNDY4MTUsIDEuODgwMzQiLCBcCi0gICAgICAgICAgIjAuMDU2MzY0LCAwLjM0Mzg3NiwgMC42MzQ5MDQsIDAuODQyMTE2LCAxLjE3NDA1LCAxLjQ2NTQsIDEuODg0MyIsIFwKLSAgICAgICAgICAiMC4wNTYxMzUsIDAuMzQzNTE2LCAwLjYzNDg1MiwgMC44NDE4NjEsIDEuMTc0OTYsIDEuNDY1NjksIDEuODgzMTYiLCBcCi0gICAgICAgICAgIjAuMDU2MjkzLCAwLjM0NDExMSwgMC42MzU4OTgsIDAuODQ0NDcyLCAxLjE3MzkyLCAxLjQ2NjM3LCAxLjg4MTM4IiwgXAotICAgICAgICAgICIwLjA1NjE0NCwgMC4zNDM3MDcsIDAuNjM0NDg2LCAwLjg0MTg2MywgMS4xNzQ4NSwgMS40NjQ1OSwgMS44ODMwNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcmlzaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzg2ODg4LCAwLjUxMjYzNCwgMC42Mzk1MjcsIDAuNzI5OTcyLCAwLjg3MzM2NiwgMS4wMDIwOCwgMS4xODE4MSIsIFwKLSAgICAgICAgICAiMC4zOTgzMTQsIDAuNTI0MjI4LCAwLjY1MDM0MSwgMC43NDExNjQsIDAuODg0ODc1LCAxLjAxMzI1LCAxLjE5MzMyIiwgXAotICAgICAgICAgICIwLjQxMjEzLCAwLjUzODAwNSwgMC42NjQxNTgsIDAuNzU0NDczLCAwLjg5ODU1OCwgMS4wMjYxNCwgMS4yMDY5NiIsIFwKLSAgICAgICAgICAiMC40MjU1NDEsIDAuNTUxNDc5LCAwLjY3NzM2OSwgMC43Njg2MDcsIDAuOTEyMDgyLCAxLjA0MDgxLCAxLjIyMDUzIiwgXAotICAgICAgICAgICIwLjQzOTE4MywgMC41NjUxMjEsIDAuNjkxMTIyLCAwLjc4MjMyNCwgMC45MjU1MDcsIDEuMDU0MjQsIDEuMjM0MSIsIFwKLSAgICAgICAgICAiMC40NjEwNjcsIDAuNTg2OTY1LCAwLjcxMzQwNSwgMC44MDI5OCwgMC45NDc0MDIsIDEuMDc2MTIsIDEuMjU1OSIsIFwKLSAgICAgICAgICAiMC40Nzk4NzYsIDAuNjA1Nzg2LCAwLjczMTkwMiwgMC44MjI3MDMsIDAuOTY2Mzg4LCAxLjA5NDgyLCAxLjI3NDg5Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQ5MjE4LCAwLjMwMzAxNiwgMC41NTk0OCwgMC43NDk2MTMsIDEuMDM1NTQsIDEuMzAyNjQsIDEuNjc1MDIiLCBcCi0gICAgICAgICAgIjAuMDQ5NDksIDAuMzAzMDk2LCAwLjU2MDgyNiwgMC43NDk3OTYsIDEuMDM5NTQsIDEuMjk2OTksIDEuNjc1MDUiLCBcCi0gICAgICAgICAgIjAuMDQ5NTI4LCAwLjMwMzAzNywgMC41NjAyNTksIDAuNzQ2NjczLCAxLjAzODUxLCAxLjMwNDc1LCAxLjY3NTEzIiwgXAotICAgICAgICAgICIwLjA0OTQ2MSwgMC4zMDUxNjQsIDAuNTU5NDc4LCAwLjc0OTYxOCwgMS4wMzcyNiwgMS4zMDM5MSwgMS42NzQ5OCIsIFwKLSAgICAgICAgICAiMC4wNDk1MzgsIDAuMzA1MTcsIDAuNTYzNzc4LCAwLjc0OTU5NSwgMS4wMzcxNywgMS4yOTk0OCwgMS42NzUwOCIsIFwKLSAgICAgICAgICAiMC4wNDk1NzUsIDAuMzA1MjE3LCAwLjU1OTA0OCwgMC43NDQ3MzIsIDEuMDM2MzYsIDEuMzAwMTcsIDEuNjc1MDkiLCBcCi0gICAgICAgICAgIjAuMDQ5NDYzLCAwLjMwMzEyMSwgMC41NjA3MzYsIDAuNzQ5ODA5LCAxLjAzOTI5LCAxLjI5NzIzLCAxLjY3NTA0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiBmYWxsaW5nX2VkZ2U7Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzc4NzMzLCAwLjUyNDU2MiwgMC42NzExOTksIDAuNzc2Mjg2LCAwLjk0MjIzMSwgMS4wODgxNSwgMS4zMDA2OCIsIFwKLSAgICAgICAgICAiMC4zOTAxMDgsIDAuNTM1ODUzLCAwLjY4MjQ5OCwgMC43ODc1ODMsIDAuOTUzNTY1LCAxLjA5OTQ5LCAxLjMxMTk3IiwgXAotICAgICAgICAgICIwLjQwNDUyLCAwLjU1MDU0OSwgMC42OTcyNzUsIDAuODAyMjY1LCAwLjk2ODIzMiwgMS4xMTQxNSwgMS4zMjY2NiIsIFwKLSAgICAgICAgICAiMC40MTk0NiwgMC41NjUyNTIsIDAuNzEyMDU5LCAwLjgxNjc5LCAwLjk4MzIzMywgMS4xMjg5MiwgMS4zNDEzNCIsIFwKLSAgICAgICAgICAiMC40MzQxNDQsIDAuNTc5ODgxLCAwLjcyNjY4LCAwLjgzMTU2NCwgMC45OTc4MDcsIDEuMTQzMzUsIDEuMzU1OTciLCBcCi0gICAgICAgICAgIjAuNDU2ODE4LCAwLjYwMjU1LCAwLjc0OTM1OSwgMC44NTI4NjYsIDEuMDIwMzEsIDEuMTY3MDksIDEuMzc4NCIsIFwKLSAgICAgICAgICAiMC40NzUyNjYsIDAuNjIxMDI1LCAwLjc2ODAxOSwgMC44NzI5OTksIDEuMDM5MDMsIDEuMTg0OSwgMS4zOTczNiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1NjM2MiwgMC4zNDQwMjksIDAuNjM1NjM5LCAwLjg0NDIwOSwgMS4xNzU4NiwgMS40NjYyNywgMS44ODAzMyIsIFwKLSAgICAgICAgICAiMC4wNTYzMTksIDAuMzQ0MDI0LCAwLjYzNTgxNiwgMC44NDQyMTUsIDEuMTc2NDEsIDEuNDY3MjgsIDEuODgxNzUiLCBcCi0gICAgICAgICAgIjAuMDU2NDE0LCAwLjM0NDEyMSwgMC42MzU2OTEsIDAuODQzODA1LCAxLjE3NjM2LCAxLjQ2NTQ5LCAxLjg4MzQ4IiwgXAotICAgICAgICAgICIwLjA1NjMxOCwgMC4zNDQwNjcsIDAuNjM1OTY3LCAwLjg0NDEwOCwgMS4xNzYzNiwgMS40NjgzNSwgMS44ODEyNSIsIFwKLSAgICAgICAgICAiMC4wNTU5NzEsIDAuMzQ0MDYyLCAwLjYzNTg1NCwgMC44NDQyNTIsIDEuMTc1ODUsIDEuNDY2NTcsIDEuODgyMjYiLCBcCi0gICAgICAgICAgIjAuMDU2MDgyLCAwLjM0NDEyMiwgMC42MzU4MjksIDAuODQzNDUzLCAxLjE3NjQyLCAxLjQ2NzY4LCAxLjg4MzE3IiwgXAotICAgICAgICAgICIwLjA1NjQwNSwgMC4zNDM3NDcsIDAuNjM1Nzg3LCAwLjg0Mzk1NywgMS4xNzYyLCAxLjQ2Nzg4LCAxLjg4MjM4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiBwcmVzZXQ7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTE0NzU2LCAwLjI0MDcxMSwgMC4zNjY4MjYsIDAuNDU3NjUyLCAwLjYwMjE2NiwgMC43Mjg4OTUsIDAuOTA5OTQ5IiwgXAotICAgICAgICAgICIwLjEyNjUyNiwgMC4yNTI0ODQsIDAuMzc4NjU3LCAwLjQ2OTQ5MywgMC42MTM3NzMsIDAuNzQxMTU2LCAwLjkyMDExNiIsIFwKLSAgICAgICAgICAiMC4xNDEwNjUsIDAuMjY3MDIsIDAuMzkzMjEyLCAwLjQ4Mzk5NSwgMC42MjkwMDYsIDAuNzU1MDExLCAwLjkzNTA1MiIsIFwKLSAgICAgICAgICAiMC4xNTU3NzksIDAuMjgxNzM0LCAwLjQwNzg3NiwgMC40OTgwMTEsIDAuNjQyNzUsIDAuNzY5NDc2LCAwLjk1MDM1NiIsIFwKLSAgICAgICAgICAiMC4xNzA2MSwgMC4yOTY1NzcsIDAuNDIyNzE1LCAwLjUxMzQzMywgMC42NTc3MzIsIDAuNzg1MzIyLCAwLjk2NjAzMyIsIFwKLSAgICAgICAgICAiMC4xOTM4OTgsIDAuMzE5ODY1LCAwLjQ0NTg3OCwgMC41MzYzMzksIDAuNjgwNTM2LCAwLjgwNzI2NiwgMC45ODc5OTgiLCBcCi0gICAgICAgICAgIjAuMjEzMjYyLCAwLjMzOTIsIDAuNDY1NDM2LCAwLjU1NjE0NiwgMC43MDAwMjQsIDAuODI3MTIsIDEuMDA4MzIiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDk1NjMsIDAuMzA0NTMxLCAwLjU2MTE4NiwgMC43NDk2NDYsIDEuMDQzNjQsIDEuMzA1MTksIDEuNjc1MzMiLCBcCi0gICAgICAgICAgIjAuMDQ5NDg4LCAwLjMwMzU2LCAwLjU2Mjc3NiwgMC43NDk2MzksIDEuMDQ1ODcsIDEuMzA1MDUsIDEuNjc1MTkiLCBcCi0gICAgICAgICAgIjAuMDQ5Njk2LCAwLjMwNDQ1MSwgMC41NjIzNDgsIDAuNzQ5NjkyLCAxLjA0NDc2LCAxLjMwNTMzLCAxLjY3NTM0IiwgXAotICAgICAgICAgICIwLjA0OTU2NSwgMC4zMDM2MTMsIDAuNTYzMzk3LCAwLjc0ODczOCwgMS4wNDU2MiwgMS4zMDUzMSwgMS42NzU1NSIsIFwKLSAgICAgICAgICAiMC4wNDk3MTIsIDAuMzAzNTYsIDAuNTYyOTI5LCAwLjc0OTc2NSwgMS4wNDIzMSwgMS4yOTU4LCAxLjY3NTQ2IiwgXAotICAgICAgICAgICIwLjA0OTU5NiwgMC4zMDM2MDcsIDAuNTYxNTk1LCAwLjc0OTkyMSwgMS4wNDM1NywgMS4zMDY2NSwgMS42Nzc0NyIsIFwKLSAgICAgICAgICAiMC4wNDk1ODcsIDAuMzA0NjU5LCAwLjU2NDI4NCwgMC43NDk3NywgMS4wNDM5NCwgMS4zMDIzOSwgMS42NzU1OCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE4NTIyNywgMC4zMzA3MjUsIDAuNDc3NjQxLCAwLjU4MjY2OSwgMC43NDg2NzYsIDAuODk0NDUsIDEuMTA3NzYiLCBcCi0gICAgICAgICAgIjAuMTk2NTIzLCAwLjM0MjU0NiwgMC40ODkzNiwgMC41OTM4NjgsIDAuNzYwMTc3LCAwLjkwOTM0NSwgMS4xMTg5MyIsIFwKLSAgICAgICAgICAiMC4yMDk1OTcsIDAuMzU1MTQ4LCAwLjUwMTgwNywgMC42MDcwODMsIDAuNzczMjIsIDAuOTE4ODk0LCAxLjEzMjE4IiwgXAotICAgICAgICAgICIwLjIyMjY4LCAwLjM2ODE3NywgMC41MTUwNiwgMC42MjAxNiwgMC43ODYyNzUsIDAuOTMxOTYsIDEuMTQ1MjUiLCBcCi0gICAgICAgICAgIjAuMjM1NDY4LCAwLjM4MTQ3OCwgMC41MjgyNTcsIDAuNjMzMTg2LCAwLjc5OTI0NCwgMC45NDQ5NTUsIDEuMTU4MjciLCBcCi0gICAgICAgICAgIjAuMjU2NTU0LCAwLjQwMjQ2MSwgMC41NDg4MjUsIDAuNjU0MzUyLCAwLjgyMDMwOSwgMC45NjY2MTQsIDEuMTc5NCIsIFwKLSAgICAgICAgICAiMC4yNzUxNywgMC40MjA5NjUsIDAuNTY3Nzc4LCAwLjY3Mjc5MSwgMC44Mzg2NDgsIDAuOTg3OTMsIDEuMTk3MjkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTYxNTMsIDAuMzQ0MDU5LCAwLjYzNTg4MSwgMC44NDQzNTcsIDEuMTc2NjQsIDEuNDY0NjMsIDEuODgyMyIsIFwKLSAgICAgICAgICAiMC4wNTY0NCwgMC4zNDQwNzksIDAuNjM1Njg2LCAwLjg0MzkzOSwgMS4xNzY0OCwgMS40Njc2MywgMS44ODM5IiwgXAotICAgICAgICAgICIwLjA1NjI3MSwgMC4zNDM5NzgsIDAuNjM1NjM3LCAwLjg0Mzk2MSwgMS4xNzU2NiwgMS40NjUxOSwgMS44ODMzMSIsIFwKLSAgICAgICAgICAiMC4wNTYwNTgsIDAuMzQzNzU2LCAwLjYzNTMyLCAwLjg0MzUzMSwgMS4xNzU2NSwgMS40NjM5NCwgMS44ODI4NyIsIFwKLSAgICAgICAgICAiMC4wNTYzNjUsIDAuMzQ0MDI4LCAwLjYzNTY3LCAwLjg0Mzk1MiwgMS4xNzUyMiwgMS40NjU3MywgMS44ODM2OSIsIFwKLSAgICAgICAgICAiMC4wNTYzNjIsIDAuMzQzOTk0LCAwLjYzNTQ1NywgMC44NDM1ODcsIDEuMTc2MzMsIDEuNDY3NjcsIDEuODg0MDQiLCBcCi0gICAgICAgICAgIjAuMDU2NDA5LCAwLjM0NDU2LCAwLjYzNTk5MSwgMC44NDQxODIsIDEuMTc0NjksIDEuNDY2MjEsIDEuODg1OTYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJEIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjIxMywgMC4wMDYzMjksIDAuMDA2MzQ1LCAwLjAwNjM0NiwgMC4wMDYzNTIsIDAuMDA2MzU2LCAwLjAwNjM1NSIsIFwKLSAgICAgICAgICAiMC4wMDYyMDMsIDAuMDA2MzIzLCAwLjAwNjMzOSwgMC4wMDYzNDIsIDAuMDA2MzQ4LCAwLjAwNjM1LCAwLjAwNjM1MSIsIFwKLSAgICAgICAgICAiMC4wMDYyLCAwLjAwNjMxOSwgMC4wMDYzMzUsIDAuMDA2MzQsIDAuMDA2MzQ0LCAwLjAwNjM0NiwgMC4wMDYzNSIsIFwKLSAgICAgICAgICAiMC4wMDYxOTMsIDAuMDA2MzE5LCAwLjAwNjMzNiwgMC4wMDYzNCwgMC4wMDYzNDQsIDAuMDA2MzQ4LCAwLjAwNjM0OCIsIFwKLSAgICAgICAgICAiMC4wMDYxOTQsIDAuMDA2MzEzLCAwLjAwNjMyOSwgMC4wMDYzMzQsIDAuMDA2MzM4LCAwLjAwNjM0LCAwLjAwNjM0MiIsIFwKLSAgICAgICAgICAiMC4wMDYxOTEsIDAuMDA2MzEsIDAuMDA2MzI3LCAwLjAwNjMzMSwgMC4wMDYzMzMsIDAuMDA2MzM3LCAwLjAwNjM0MSIsIFwKLSAgICAgICAgICAiMC4wMDYxODYsIDAuMDA2MzA2LCAwLjAwNjMyMiwgMC4wMDYzMjQsIDAuMDA2MzMzLCAwLjAwNjMzMywgMC4wMDYzMzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjY2NiwgMC4wMDY3OTMsIDAuMDA2ODEyLCAwLjAwNjgxOCwgMC4wMDY4MjEsIDAuMDA2ODI1LCAwLjAwNjgyOCIsIFwKLSAgICAgICAgICAiMC4wMDY2NTksIDAuMDA2NzksIDAuMDA2ODA5LCAwLjAwNjgxNiwgMC4wMDY4MiwgMC4wMDY4MjMsIDAuMDA2ODI1IiwgXAotICAgICAgICAgICIwLjAwNjY2MiwgMC4wMDY3ODgsIDAuMDA2ODA3LCAwLjAwNjgxMiwgMC4wMDY4MTgsIDAuMDA2ODIxLCAwLjAwNjgyMyIsIFwKLSAgICAgICAgICAiMC4wMDY2NjEsIDAuMDA2Nzg3LCAwLjAwNjgwNiwgMC4wMDY4MTIsIDAuMDA2ODE3LCAwLjAwNjgyLCAwLjAwNjgyMiIsIFwKLSAgICAgICAgICAiMC4wMDY2NiwgMC4wMDY3ODYsIDAuMDA2ODA1LCAwLjAwNjgxMywgMC4wMDY4MTYsIDAuMDA2ODE4LCAwLjAwNjgxOSIsIFwKLSAgICAgICAgICAiMC4wMDY2NTgsIDAuMDA2Nzg0LCAwLjAwNjgwMywgMC4wMDY4MDksIDAuMDA2ODEzLCAwLjAwNjgxNiwgMC4wMDY4MTgiLCBcCi0gICAgICAgICAgIjAuMDA2NjU1LCAwLjAwNjc4MSwgMC4wMDY4LCAwLjAwNjgwNiwgMC4wMDY4MTEsIDAuMDA2ODE0LCAwLjAwNjgxNiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkdOIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNzY2OSwgMC4wMDc3ODgsIDAuMDA3ODAzLCAwLjAwNzgwNywgMC4wMDc4MTIsIDAuMDA3ODE0LCAwLjAwNzgxNSIsIFwKLSAgICAgICAgICAiMC4wMDc2NiwgMC4wMDc3NzksIDAuMDA3Nzk1LCAwLjAwNzgsIDAuMDA3ODAxLCAwLjAwNzgwNSwgMC4wMDc4MDUiLCBcCi0gICAgICAgICAgIjAuMDA3NjUzLCAwLjAwNzc3MywgMC4wMDc3ODksIDAuMDA3NzkzLCAwLjAwNzc5NywgMC4wMDc4LCAwLjAwNzgiLCBcCi0gICAgICAgICAgIjAuMDA3NjQ5LCAwLjAwNzc2OSwgMC4wMDc3ODUsIDAuMDA3NzksIDAuMDA3Nzk0LCAwLjAwNzc5NiwgMC4wMDc3OTciLCBcCi0gICAgICAgICAgIjAuMDA3NjQ3LCAwLjAwNzc2NywgMC4wMDc3ODMsIDAuMDA3Nzg3LCAwLjAwNzc5MSwgMC4wMDc3OTMsIDAuMDA3Nzk1IiwgXAotICAgICAgICAgICIwLjAwNzY0NywgMC4wMDc3NjYsIDAuMDA3NzgzLCAwLjAwNzc4NiwgMC4wMDc3OSwgMC4wMDc3OTQsIDAuMDA3Nzk0IiwgXAotICAgICAgICAgICIwLjAwNzY1NCwgMC4wMDc3NzEsIDAuMDA3Nzg5LCAwLjAwNzc5MSwgMC4wMDc3OTUsIDAuMDA3Nzk3LCAwLjAwNzc5OSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA4MDU5LCAwLjAwODE4OSwgMC4wMDgyMDgsIDAuMDA4MjE0LCAwLjAwODIxOSwgMC4wMDgyMjIsIDAuMDA4MjI0IiwgXAotICAgICAgICAgICIwLjAwODA0OSwgMC4wMDgxOCwgMC4wMDgyMDIsIDAuMDA4MjA1LCAwLjAwODIxLCAwLjAwODIxMywgMC4wMDgyMTMiLCBcCi0gICAgICAgICAgIjAuMDA4MDQ0LCAwLjAwODE3MywgMC4wMDgxOTMsIDAuMDA4MTk5LCAwLjAwODIwNCwgMC4wMDgyMDYsIDAuMDA4MjA5IiwgXAotICAgICAgICAgICIwLjAwODA0NiwgMC4wMDgxNzIsIDAuMDA4MTkxLCAwLjAwODE5OCwgMC4wMDgyMDMsIDAuMDA4MjA3LCAwLjAwODIwNyIsIFwKLSAgICAgICAgICAiMC4wMDgwNDMsIDAuMDA4MTcsIDAuMDA4MTg5LCAwLjAwODE5NSwgMC4wMDgyLCAwLjAwODIwMywgMC4wMDgyMDgiLCBcCi0gICAgICAgICAgIjAuMDA4MDM3LCAwLjAwODE2OCwgMC4wMDgxODcsIDAuMDA4MTk2LCAwLjAwODE5NSwgMC4wMDgyMDEsIDAuMDA4MjAzIiwgXAotICAgICAgICAgICIwLjAwODAzNywgMC4wMDgxNjYsIDAuMDA4MTg1LCAwLjAwODE5MSwgMC4wMDgxOTYsIDAuMDA4MTk5LCAwLjAwODIwMSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNzAxLCAwLjAwNzEyOSwgMC4wMDcxNDUsIDAuMDA3MTUsIDAuMDA3MTUyLCAwLjAwNzE1NSwgMC4wMDcxNTciLCBcCi0gICAgICAgICAgIjAuMDA3MDAyLCAwLjAwNzEyMiwgMC4wMDcxMzcsIDAuMDA3MTQyLCAwLjAwNzE0NiwgMC4wMDcxNDgsIDAuMDA3MTUiLCBcCi0gICAgICAgICAgIjAuMDA2OTk5LCAwLjAwNzExOCwgMC4wMDcxMzMsIDAuMDA3MTM4LCAwLjAwNzE0MiwgMC4wMDcxNDQsIDAuMDA3MTQ2IiwgXAotICAgICAgICAgICIwLjAwNjk5MywgMC4wMDcxMTMsIDAuMDA3MTI4LCAwLjAwNzEzMywgMC4wMDcxMzcsIDAuMDA3MTM5LCAwLjAwNzE0IiwgXAotICAgICAgICAgICIwLjAwNjk5NCwgMC4wMDcxMTMsIDAuMDA3MTI4LCAwLjAwNzEzMywgMC4wMDcxMzcsIDAuMDA3MTM5LCAwLjAwNzE0MSIsIFwKLSAgICAgICAgICAiMC4wMDY5OTEsIDAuMDA3MTExLCAwLjAwNzEyNiwgMC4wMDcxMywgMC4wMDcxMzUsIDAuMDA3MTM3LCAwLjAwNzEzOSIsIFwKLSAgICAgICAgICAiMC4wMDY5ODksIDAuMDA3MTA5LCAwLjAwNzEyNCwgMC4wMDcxMjksIDAuMDA3MTMyLCAwLjAwNzEzNSwgMC4wMDcxMzgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNzkzLCAwLjAwODA1NiwgMC4wMDgwNzUsIDAuMDA4MDgsIDAuMDA4MDg1LCAwLjAwODA4OCwgMC4wMDgwOSIsIFwKLSAgICAgICAgICAiMC4wMDc5MjMsIDAuMDA4MDQ5LCAwLjAwODA2NiwgMC4wMDgwNzYsIDAuMDA4MDc4LCAwLjAwODA4MSwgMC4wMDgwODMiLCBcCi0gICAgICAgICAgIjAuMDA3OTEzLCAwLjAwODA0NSwgMC4wMDgwNjMsIDAuMDA4MDY5LCAwLjAwODA3NCwgMC4wMDgwNzYsIDAuMDA4MDc4IiwgXAotICAgICAgICAgICIwLjAwNzkxNiwgMC4wMDgwNDEsIDAuMDA4MDYyLCAwLjAwODA2OCwgMC4wMDgwNjgsIDAuMDA4MDc1LCAwLjAwODA3MyIsIFwKLSAgICAgICAgICAiMC4wMDc5MTQsIDAuMDA4MDM5LCAwLjAwODA2MSwgMC4wMDgwNjYsIDAuMDA4MDcsIDAuMDA4MDcxLCAwLjAwODA3IiwgXAotICAgICAgICAgICIwLjAwNzkxMSwgMC4wMDgwMzYsIDAuMDA4MDU1LCAwLjAwODA2LCAwLjAwODA2NiwgMC4wMDgwNjcsIDAuMDA4MDcxIiwgXAotICAgICAgICAgICIwLjAwNzkwMywgMC4wMDgwMzUsIDAuMDA4MDU0LCAwLjAwODA2LCAwLjAwODA2NCwgMC4wMDgwNjcsIDAuMDA4MDY5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiU04iOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2ODk1LCAwLjAwNjk5NCwgMC4wMDcwMDQsIDAuMDA3MDA4LCAwLjAwNzAxLCAwLjAwNzAxMSwgMC4wMDcwMTMiLCBcCi0gICAgICAgICAgIjAuMDA2ODgxLCAwLjAwNjk4MSwgMC4wMDY5OTIsIDAuMDA2OTk1LCAwLjAwNjk5NiwgMC4wMDcsIDAuMDA3IiwgXAotICAgICAgICAgICIwLjAwNjg1OSwgMC4wMDY5NjMsIDAuMDA2OTc1LCAwLjAwNjk4MSwgMC4wMDY5ODIsIDAuMDA2OTg2LCAwLjAwNjk4NyIsIFwKLSAgICAgICAgICAiMC4wMDY4MzgsIDAuMDA2OTQ1LCAwLjAwNjk1OSwgMC4wMDY5NjMsIDAuMDA2OTY3LCAwLjAwNjk2OCwgMC4wMDY5NzEiLCBcCi0gICAgICAgICAgIjAuMDA2ODE0LCAwLjAwNjkyNiwgMC4wMDY5NDEsIDAuMDA2OTQ2LCAwLjAwNjk1LCAwLjAwNjk1MywgMC4wMDY5NTYiLCBcCi0gICAgICAgICAgIjAuMDA2NzkzLCAwLjAwNjkwNiwgMC4wMDY5MjQsIDAuMDA2OTMsIDAuMDA2OTM1LCAwLjAwNjkzNywgMC4wMDY5NDIiLCBcCi0gICAgICAgICAgIjAuMDA2NzY4LCAwLjAwNjg4NiwgMC4wMDY5MDYsIDAuMDA2OTE1LCAwLjAwNjkxOSwgMC4wMDY5MjUsIDAuMDA2OTI4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDU0NjEsIDAuMDA1NTg0LCAwLjAwNTYwMiwgMC4wMDU2MDcsIDAuMDA1NjExLCAwLjAwNTYxMywgMC4wMDU2MTUiLCBcCi0gICAgICAgICAgIjAuMDA1NDQ1LCAwLjAwNTU3MywgMC4wMDU1OSwgMC4wMDU1OTQsIDAuMDA1NTk5LCAwLjAwNTYwMSwgMC4wMDU2MDIiLCBcCi0gICAgICAgICAgIjAuMDA1NDM2LCAwLjAwNTU2MSwgMC4wMDU1OCwgMC4wMDU1ODIsIDAuMDA1NTg3LCAwLjAwNTU4OSwgMC4wMDU1OSIsIFwKLSAgICAgICAgICAiMC4wMDU0MjcsIDAuMDA1NTUxLCAwLjAwNTU2OCwgMC4wMDU1NzMsIDAuMDA1NTgsIDAuMDA1NTgsIDAuMDA1NTgyIiwgXAotICAgICAgICAgICIwLjAwNTQxOCwgMC4wMDU1NDMsIDAuMDA1NTYzLCAwLjAwNTU2NiwgMC4wMDU1NzEsIDAuMDA1NTczLCAwLjAwNTU3NSIsIFwKLSAgICAgICAgICAiMC4wMDU0MDksIDAuMDA1NTM3LCAwLjAwNTU1NiwgMC4wMDU1NjIsIDAuMDA1NTY3LCAwLjAwNTU2OSwgMC4wMDU1NzEiLCBcCi0gICAgICAgICAgIjAuMDA1NDEyLCAwLjAwNTUzNSwgMC4wMDU1NTUsIDAuMDA1NTYxLCAwLjAwNTU2NCwgMC4wMDU1NjcsIDAuMDA1NTY5Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihRTikgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjUyNzY2NjsKLSAgICBmdW5jdGlvbiA6ICJONSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yNzg2MzIsIDAuNDIyNDM4LCAwLjU0OTc2OCwgMC42NDA0ODMsIDAuNzg1NTc1LCAwLjkxMjYxOCwgMS4wOTM5OCIsIFwKLSAgICAgICAgICAiMC4yOTAwOCwgMC40MzM4OTQsIDAuNTYxMjEyLCAwLjY1MTkyMywgMC43OTcwMjksIDAuOTI0MTI5LCAxLjEwNTM5IiwgXAotICAgICAgICAgICIwLjMwMzA3MiwgMC40NDY4NzcsIDAuNTc0MjA3LCAwLjY2NDkyNSwgMC44MTAwMTMsIDAuOTM3MDYsIDEuMTE4NDEiLCBcCi0gICAgICAgICAgIjAuMzE1NDMsIDAuNDU5MjE3LCAwLjU4NjU0NSwgMC42NzcyNSwgMC44MjIzNTQsIDAuOTQ5MzI2LCAxLjEzMDcxIiwgXAotICAgICAgICAgICIwLjMyNzczLCAwLjQ3MTUwOSwgMC41OTg4NDMsIDAuNjg5NTQ0LCAwLjgzNDY1MSwgMC45NjE3NzIsIDEuMTQzMDIiLCBcCi0gICAgICAgICAgIjAuMzQ3MDUxLCAwLjQ5MDgzNiwgMC42MTgxNjYsIDAuNzA4ODY1LCAwLjg1Mzk3MywgMC45ODA5NTQsIDEuMTYyNTciLCBcCi0gICAgICAgICAgIjAuMzYzNzM0LCAwLjUwNzUyLCAwLjYzNDg1MSwgMC43MjU1NTQsIDAuODcwNjU4LCAwLjk5NzYyMiwgMS4xNzkwNiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4MzI3OSwgMC4zMjE4MTksIDAuNTczMjYzLCAwLjc1NTc4LCAxLjA0NzY3LCAxLjMwNzYzLCAxLjY3MzUzIiwgXAotICAgICAgICAgICIwLjA4MzI1MSwgMC4zMjE4MTksIDAuNTczMjUxLCAwLjc1NTYxMywgMS4wNDc2NiwgMS4zMDQwOCwgMS42NzY0NSIsIFwKLSAgICAgICAgICAiMC4wODMyNzksIDAuMzIxODE4LCAwLjU3MzI2MiwgMC43NTU3OTcsIDEuMDQ3NjYsIDEuMzA3NjUsIDEuNjczNiIsIFwKLSAgICAgICAgICAiMC4wODMxNCwgMC4zMjE4MDIsIDAuNTczMzA0LCAwLjc1NTYyOSwgMS4wNDc2OSwgMS4zMDUxMSwgMS42NzY0NiIsIFwKLSAgICAgICAgICAiMC4wODMxODQsIDAuMzIxNzk4LCAwLjU3MzI3OCwgMC43NTU1OTQsIDEuMDQ5LCAxLjMwMzk2LCAxLjY3NjUiLCBcCi0gICAgICAgICAgIjAuMDgzMTQsIDAuMzIxOCwgMC41NzMyNzMsIDAuNzU1NjAzLCAxLjA0NzcsIDEuMzA3MzUsIDEuNjcyNzQiLCBcCi0gICAgICAgICAgIjAuMDgzMTQyLCAwLjMyMTgwMiwgMC41NzMyNzgsIDAuNzU1NjMyLCAxLjA0NzY5LCAxLjMwNjM4LCAxLjY3NjY0Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjM3MjIxLCAwLjM4NzcyOSwgMC41MzM3MTYsIDAuNjM4MDE4LCAwLjgwNDc3OCwgMC45NTA4MzksIDEuMTU5MTYiLCBcCi0gICAgICAgICAgIjAuMjQ4OTgxLCAwLjM5OTUxMywgMC41NDU1MTcsIDAuNjQ5ODA4LCAwLjgxNjU3MiwgMC45NjI2MTMsIDEuMTcwOTUiLCBcCi0gICAgICAgICAgIjAuMjYzMTYyLCAwLjQxMzY3NywgMC41NTk2NzgsIDAuNjYzOTY3LCAwLjgzMDc1MiwgMC45NzY3NTUsIDEuMTg1MTIiLCBcCi0gICAgICAgICAgIjAuMjc2ODg5LCAwLjQyNzQ1NywgMC41NzM0NTYsIDAuNjc3NzA1LCAwLjg0NDUyOCwgMC45OTAyNywgMS4xOTg5IiwgXAotICAgICAgICAgICIwLjI5MDU5NiwgMC40NDExMDQsIDAuNTg3MTA1LCAwLjY5MTMwNywgMC44NTgxNzksIDEuMDA0MTgsIDEuMjEyNTUiLCBcCi0gICAgICAgICAgIjAuMzEyNTYzLCAwLjQ2MzA3MiwgMC42MDkwMjksIDAuNzEzMzUzLCAwLjg4MDE0MSwgMS4wMjYxNCwgMS4yMzQ1MSIsIFwKLSAgICAgICAgICAiMC4zMzE1NTYsIDAuNDgyMDg0LCAwLjYyODAzNywgMC43MzIzNjksIDAuODk5MTM2LCAxLjA0NTIsIDEuMjUzNTIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjgyMDksIDAuMzQ2ODk2LCAwLjYzNTM1NiwgMC44NDI2MjMsIDEuMTczMzYsIDEuNDYzMTUsIDEuODc5NTUiLCBcCi0gICAgICAgICAgIjAuMDY4MjY5LCAwLjM0Njg5OSwgMC42MzQ1MDksIDAuODQyNjY5LCAxLjE3MzM5LCAxLjQ2MzE4LCAxLjg3OTYxIiwgXAotICAgICAgICAgICIwLjA2ODI3LCAwLjM0NjkwNCwgMC42MzQ5MzgsIDAuODQyNjQzLCAxLjE3MzM3LCAxLjQ2MzIxLCAxLjg3OTU3IiwgXAotICAgICAgICAgICIwLjA2ODEzMiwgMC4zNDY5MDgsIDAuNjM0OTQ2LCAwLjg0MjQ2NSwgMS4xNzMzNywgMS40NjM1NSwgMS44Nzk2NSIsIFwKLSAgICAgICAgICAiMC4wNjgyNDgsIDAuMzQ2OSwgMC42MzQ5MzMsIDAuODQyMzA2LCAxLjE3MzM2LCAxLjQ2MzIxLCAxLjg3OTYzIiwgXAotICAgICAgICAgICIwLjA2ODI0NCwgMC4zNDY4OTksIDAuNjM0OTg3LCAwLjg0MjYzNiwgMS4xNzMzNywgMS40NjMyMSwgMS44Nzk2MyIsIFwKLSAgICAgICAgICAiMC4wNjgyMjQsIDAuMzQ2MTQyLCAwLjYzNDg1NCwgMC44NDI2MzksIDEuMTczNDEsIDEuNDYzMTUsIDEuODc5NjIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiR04iOwotICAgICAgdGltaW5nX3NlbnNlIDogbm9uX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiBmYWxsaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuNDA2MjI4LCAwLjU1MDI1NiwgMC42Nzc1OTQsIDAuNzY4Mjk2LCAwLjkxMzM5OSwgMS4wNDA1MiwgMS4yMjE3NyIsIFwKLSAgICAgICAgICAiMC40MTc3NTIsIDAuNTYxNzk1LCAwLjY4OTEzMSwgMC43Nzk4MzQsIDAuOTI0OTM4LCAxLjA1MjA1LCAxLjIzMzMiLCBcCi0gICAgICAgICAgIjAuNDMyMDQ1LCAwLjU3NjA2NSwgMC43MDM0MTcsIDAuNzk0MTQ1LCAwLjkzOTIxOSwgMS4wNjYyNSwgMS4yNDc2NSIsIFwKLSAgICAgICAgICAiMC40NDU5MywgMC41ODk5MTQsIDAuNzE3MjY0LCAwLjgwNzk1MiwgMC45NTMwNjYsIDEuMDgwMDMsIDEuMjYxNTIiLCBcCi0gICAgICAgICAgIjAuNDU4MDI1LCAwLjYwMjAwMiwgMC43MjkzNDIsIDAuODIwMDUzLCAwLjk2NTE1NSwgMS4wOTIxNSwgMS4yNzM1MiIsIFwKLSAgICAgICAgICAiMC40NzUxNjIsIDAuNjE5MTksIDAuNzQ2NTI2LCAwLjgzNzIyOSwgMC45ODIzMzIsIDEuMTA5NDYsIDEuMjkwNyIsIFwKLSAgICAgICAgICAiMC40ODg2NzMsIDAuNjMyNjYzLCAwLjc2MDAxMSwgMC44NTA3MTYsIDAuOTk1ODE4LCAxLjEyMjgxLCAxLjMwNDE5Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDgzNjg4LCAwLjMyMTk5MSwgMC41NzMzNjYsIDAuNzU1Njc4LCAxLjA0ODg4LCAxLjMwMzk3LCAxLjY3NjUzIiwgXAotICAgICAgICAgICIwLjA4MzgzNSwgMC4zMjIwMTYsIDAuNTczMzUzLCAwLjc1NTY2NSwgMS4wNDg4OSwgMS4zMDQsIDEuNjc2NTIiLCBcCi0gICAgICAgICAgIjAuMDgzNzQ2LCAwLjMyMTk5MywgMC41NzMzNjMsIDAuNzU1ODY5LCAxLjA0NzY0LCAxLjMwNzYzLCAxLjY3MzQ5IiwgXAotICAgICAgICAgICIwLjA4MzYxNSwgMC4zMjE5ODEsIDAuNTczMzcxLCAwLjc1NDUxMywgMS4wNDc2OSwgMS4zMDcxLCAxLjY3MjEiLCBcCi0gICAgICAgICAgIjAuMDgzNTk0LCAwLjMyMTgwMiwgMC41NzMzNDksIDAuNzU1NjcsIDEuMDQ3NTcsIDEuMzA0MSwgMS42NzY1MSIsIFwKLSAgICAgICAgICAiMC4wODM2MzMsIDAuMzIxOTkxLCAwLjU3MzMzMiwgMC43NTU2MzQsIDEuMDQ5MjMsIDEuMzAzOTMsIDEuNjc2NDkiLCBcCi0gICAgICAgICAgIjAuMDgzNzE0LCAwLjMyMTgyMiwgMC41NzIwNjIsIDAuNzU1NjYxLCAxLjA0NzU0LCAxLjMwMjk0LCAxLjY3NjUzIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzkwOTQ4LCAwLjU0MTUxNiwgMC42ODc0OTMsIDAuNzkxNzg4LCAwLjk1ODU0NiwgMS4xMDQ2NCwgMS4zMTI5NSIsIFwKLSAgICAgICAgICAiMC40MDI0NTUsIDAuNTUzMDEyLCAwLjY5ODk2LCAwLjgwMzIwNSwgMC45NzAwODcsIDEuMTE2MDksIDEuMzI0NDgiLCBcCi0gICAgICAgICAgIjAuNDE2Njg1LCAwLjU2NzI0LCAwLjcxMzIzNSwgMC44MTc1MjQsIDAuOTg0MzE4LCAxLjEzMDI5LCAxLjMzODciLCBcCi0gICAgICAgICAgIjAuNDMwNDk3LCAwLjU4MTA2NiwgMC43MjcwNTcsIDAuODMxMzQ1LCAwLjk5ODEwMiwgMS4xNDQyLCAxLjM1MjUxIiwgXAotICAgICAgICAgICIwLjQ0MjU5NiwgMC41OTMxNTgsIDAuNzM5MTUzLCAwLjg0MzMxMSwgMS4wMTAwNCwgMS4xNTYzLCAxLjM2NDYxIiwgXAotICAgICAgICAgICIwLjQ1OTkxOSwgMC42MTA0NzcsIDAuNzU2NDE4LCAwLjg2MDc2MSwgMS4wMjc2LCAxLjE3MzUzLCAxLjM4MTkzIiwgXAotICAgICAgICAgICIwLjQ3MzYwOCwgMC42MjQxNTQsIDAuNzcwMDk4LCAwLjg3NDQ0NCwgMS4wNDEyNiwgMS4xODcxMSwgMS4zOTU1OSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2ODEzNiwgMC4zNDcxMDIsIDAuNjMzNjMsIDAuODQyNjQyLCAxLjE3MzQ2LCAxLjQ2MjQ2LCAxLjg3OTY3IiwgXAotICAgICAgICAgICIwLjA2ODE1MSwgMC4zNDY5LCAwLjYzMzU0LCAwLjg0MTE1OCwgMS4xNzMzMywgMS40NjMyMSwgMS44Nzc5NCIsIFwKLSAgICAgICAgICAiMC4wNjgxNTksIDAuMzQ3MDU3LCAwLjYzNDk0MywgMC44NDI2NTEsIDEuMTc0NDgsIDEuNDYyODIsIDEuODc5NzMiLCBcCi0gICAgICAgICAgIjAuMDY4MTUxLCAwLjM0NzA3MywgMC42MzQ5NTMsIDAuODQyNjQzLCAxLjE3MzQ4LCAxLjQ2Mjk1LCAxLjg3OTY5IiwgXAotICAgICAgICAgICIwLjA2ODE0MiwgMC4zNDcwNTgsIDAuNjM0OTQ4LCAwLjg0MTEzMiwgMS4xNzMyNCwgMS40NjMyNCwgMS44Nzk3MiIsIFwKLSAgICAgICAgICAiMC4wNjgxMzgsIDAuMzQ3MDU1LCAwLjYzMzU5OSwgMC44NDI2NTMsIDEuMTczMDEsIDEuNDYyODksIDEuODc5NzIiLCBcCi0gICAgICAgICAgIjAuMDY4MTgsIDAuMzQ2OTExLCAwLjYzMzYsIDAuODQyNjcxLCAxLjE3MzEyLCAxLjQ2NDczLCAxLjg3OTY1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiByaXNpbmdfZWRnZTsKLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zNzE1NjYsIDAuNTIyMTEzLCAwLjY2ODEzNiwgMC43NzIzOTUsIDAuOTM5MTU2LCAxLjA4NTIzLCAxLjI5MzU1IiwgXAotICAgICAgICAgICIwLjM4MzAwOSwgMC41MzM1NTksIDAuNjc5NTYyLCAwLjc4MzgxNSwgMC45NTA2MjUsIDEuMDk2NjQsIDEuMzA1MDEiLCBcCi0gICAgICAgICAgIjAuMzk2ODAyLCAwLjU0NzM2LCAwLjY5MzM2MSwgMC43OTc1NDUsIDAuOTY0MjYyLCAxLjExMDMzLCAxLjMxODc5IiwgXAotICAgICAgICAgICIwLjQxMDIxNiwgMC41NjA3ODgsIDAuNzA2NzI1LCAwLjgxMTA2NSwgMC45Nzc4MjMsIDEuMTIzOTEsIDEuMzMyMjMiLCBcCi0gICAgICAgICAgIjAuNDIzODYzLCAwLjU3NDQxNSwgMC43MjA0NCwgMC44MjQ3MjcsIDAuOTkxNDk0LCAxLjEzNzUzLCAxLjM0NTg3IiwgXAotICAgICAgICAgICIwLjQ0NTcyNywgMC41OTYyODgsIDAuNzQyMzA0LCAwLjg0NjQ0LCAxLjAxMzM0LCAxLjE1OTM4LCAxLjM2NzcxIiwgXAotICAgICAgICAgICIwLjQ2NDU2NiwgMC42MTUxMTcsIDAuNzYxMTE5LCAwLjg2NTM3LCAxLjAzMjE4LCAxLjE3ODE5LCAxLjM4NjU3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY4MTYsIDAuMzQ2NzQ0LCAwLjYzNDc4NSwgMC44NDI2NDYsIDEuMTczNDUsIDEuNDYzMTIsIDEuODc5NjUiLCBcCi0gICAgICAgICAgIjAuMDY4MTQ3LCAwLjM0NjkwMSwgMC42MzQ5MjIsIDAuODQyNTA4LCAxLjE3MzM3LCAxLjQ2MzIxLCAxLjg3OTY2IiwgXAotICAgICAgICAgICIwLjA2ODE2OSwgMC4zNDY4OTUsIDAuNjM0OTM2LCAwLjg0MTkyOSwgMS4xNzMzNiwgMS40NjQ3NywgMS44Nzk1OSIsIFwKLSAgICAgICAgICAiMC4wNjgxNTQsIDAuMzQ3MDgxLCAwLjYzMzU5OSwgMC44NDI2NDIsIDEuMTczNDcsIDEuNDYyMzIsIDEuODc5NjkiLCBcCi0gICAgICAgICAgIjAuMDY4MTQzLCAwLjM0NzA3NSwgMC42MzQ0MDUsIDAuODQyNjY0LCAxLjE3MzM5LCAxLjQ2MzE4LCAxLjg3OTYzIiwgXAotICAgICAgICAgICIwLjA2ODEzNCwgMC4zNDcwNTIsIDAuNjMzNTUsIDAuODQxMTQxLCAxLjE3MzQxLCAxLjQ2MzE3LCAxLjg3OTYxIiwgXAotICAgICAgICAgICIwLjA2ODE0NiwgMC4zNDY5MDEsIDAuNjM0OTI3LCAwLjg0MjQ5OCwgMS4xNzMzNywgMS40NjMyLCAxLjg3OTY3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiBmYWxsaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzYxMjcyLCAwLjUwNTA2OSwgMC42MzI0MTQsIDAuNzIzMTA1LCAwLjg2ODIxNiwgMC45OTUzMDksIDEuMTc2NTciLCBcCi0gICAgICAgICAgIjAuMzcyNjgzLCAwLjUxNjQ2LCAwLjY0MzgzNCwgMC43MzQ1MjYsIDAuODc5NjM0LCAxLjAwNjczLCAxLjE4Nzk5IiwgXAotICAgICAgICAgICIwLjM4NzIzOCwgMC41MzEwNTIsIDAuNjU4MzgyLCAwLjc0OTA4NywgMC44OTQxOTgsIDEuMDIxMjksIDEuMjAyNTUiLCBcCi0gICAgICAgICAgIjAuNDAyMDQxLCAwLjU0NTgzMSwgMC42NzMxNjgsIDAuNzYzODcyLCAwLjkwODk4MywgMS4wMzYwMiwgMS4yMTczNSIsIFwKLSAgICAgICAgICAiMC40MTY3MDQsIDAuNTYwNDk2LCAwLjY4NzgzNSwgMC43Nzg1NCwgMC45MjM2NDcsIDEuMDUwNzYsIDEuMjMyMDIiLCBcCi0gICAgICAgICAgIjAuNDM5MzkzLCAwLjU4MzE4NiwgMC43MTA1NCwgMC44MDEyNTUsIDAuOTQ2MzUxLCAxLjA3MzMyLCAxLjI1NDc3IiwgXAotICAgICAgICAgICIwLjQ1Nzk3LCAwLjYwMTc2MiwgMC43MjkxMDksIDAuODE5ODE3LCAwLjk2NDkyNiwgMS4wOTIwMywgMS4yNzMyOCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4MzMzMywgMC4zMjE4MTYsIDAuNTczNDY3LCAwLjc1NTY2NSwgMS4wNDc3NiwgMS4zMDc0MywgMS42NzY0NCIsIFwKLSAgICAgICAgICAiMC4wODM0MTUsIDAuMzIxODMyLCAwLjU3MzQ1NCwgMC43NTU2NDYsIDEuMDQ5MDYsIDEuMzA0NTQsIDEuNjc2NDciLCBcCi0gICAgICAgICAgIjAuMDgzNTgxLCAwLjMyMTg1OSwgMC41NzMzNTEsIDAuNzU1NjU5LCAxLjA0Nzc1LCAxLjMwNjg0LCAxLjY3NjUiLCBcCi0gICAgICAgICAgIjAuMDgzNDM5LCAwLjMyMTgzLCAwLjU3MzMwMSwgMC43NTU2NDMsIDEuMDQ4NzUsIDEuMzA3NSwgMS42NzY0OCIsIFwKLSAgICAgICAgICAiMC4wODMzMTIsIDAuMzIxODEyLCAwLjU3MzMwMywgMC43NTU2NDYsIDEuMDQ3NjYsIDEuMzA3NzcsIDEuNjc2NDQiLCBcCi0gICAgICAgICAgIjAuMDgzMzY5LCAwLjMyMTgzLCAwLjU3MzI3MiwgMC43NTU2MzgsIDEuMDQ3NzEsIDEuMzA3MTQsIDEuNjc2NTIiLCBcCi0gICAgICAgICAgIjAuMDgzNDM0LCAwLjMyMTY3MywgMC41NzMzMTYsIDAuNzU1NjQ1LCAxLjA0NzcsIDEuMzA0MjgsIDEuNjc2NDMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiU04iOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGNsZWFyOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE2NzcyOCwgMC4zMTE0MjksIDAuNDM4NzQ3LCAwLjUyOTQ1NiwgMC42NzQ1NTksIDAuODAxNjUzLCAwLjk4MjkwNyIsIFwKLSAgICAgICAgICAiMC4xNzkxNTEsIDAuMzIyODAzLCAwLjQ1MDExOCwgMC41NDA4MTYsIDAuNjg1OTE5LCAwLjgxMjg3MSwgMC45OTQzOTgiLCBcCi0gICAgICAgICAgIjAuMTkyMTE2LCAwLjMzNTc0NywgMC40NjMwNjksIDAuNTUzNzc4LCAwLjY5ODg3OCwgMC44MjU5ODIsIDEuMDA3MjMiLCBcCi0gICAgICAgICAgIjAuMjA1MTgsIDAuMzQ4ODA4LCAwLjQ3NjEzMSwgMC41NjY4NDQsIDAuNzExOTQ1LCAwLjgzOTA1LCAxLjAyMDMiLCBcCi0gICAgICAgICAgIjAuMjE4MDc4LCAwLjM2MTczMSwgMC40ODkwNTcsIDAuNTc5NzY2LCAwLjcyNDg3MSwgMC44NTE5NjYsIDEuMDMzMjIiLCBcCi0gICAgICAgICAgIjAuMjM5MTgsIDAuMzgyODA4LCAwLjUxMDE1NiwgMC42MDA4NjIsIDAuNzQ1OTY2LCAwLjg3MjkzOCwgMS4wNTQzNiIsIFwKLSAgICAgICAgICAiMC4yNTc2MDEsIDAuNDAxMjY3LCAwLjUyODYxMSwgMC42MTkzMTQsIDAuNzY0NDUxLCAwLjg5MTQwMiwgMS4wNzMwMiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4MzA2MywgMC4zMjE2NTksIDAuNTczMjI3LCAwLjc1NTYxNSwgMS4wNDc3MSwgMS4zMDQwNiwgMS42NzY1MiIsIFwKLSAgICAgICAgICAiMC4wODI1OSwgMC4zMjE2ODEsIDAuNTczMjE2LCAwLjc1NTU4NywgMS4wNDc3NSwgMS4zMDcyLCAxLjY3NjY0IiwgXAotICAgICAgICAgICIwLjA4MjY1OSwgMC4zMjE2NDksIDAuNTczMjE1LCAwLjc1NTU4OSwgMS4wNDg3MiwgMS4zMDQwNCwgMS42NzY1IiwgXAotICAgICAgICAgICIwLjA4MjY0MiwgMC4zMjE1MzEsIDAuNTczMTkyLCAwLjc1NTU4NywgMS4wNDc2MywgMS4zMDQwNCwgMS42NzY0NyIsIFwKLSAgICAgICAgICAiMC4wODI2NTcsIDAuMzIxNjUyLCAwLjU3MzIwOCwgMC43NTU1NzUsIDEuMDQ4OTYsIDEuMzA0MDUsIDEuNjc2NSIsIFwKLSAgICAgICAgICAiMC4wODI1OTUsIDAuMzIxNzAzLCAwLjU3MzE1LCAwLjc1NTU4NCwgMS4wNDc3LCAxLjMwNjUsIDEuNjc2NjYiLCBcCi0gICAgICAgICAgIjAuMDgyOTc3LCAwLjMyMTcyNiwgMC41NzMyMzUsIDAuNzU1NTk0LCAxLjA0OTIsIDEuMzA3MzYsIDEuNjc2NSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5OTE2LCAwLjI0OTkzNiwgMC4zOTYyNDcsIDAuNTAwMzkzLCAwLjY2NzAyNywgMC44MTI4NjMsIDEuMDIxMjYiLCBcCi0gICAgICAgICAgIjAuMTEwOTQ0LCAwLjI2MTcyOSwgMC40MDgwNDEsIDAuNTEyMTg2LCAwLjY3ODgyMiwgMC44MjQ2OSwgMS4wMzMwNSIsIFwKLSAgICAgICAgICAiMC4xMjU0NjMsIDAuMjc2MjgsIDAuNDIyNTk4LCAwLjUyNjc0NiwgMC42OTMzODUsIDAuODM5MjU1LCAxLjA0NzYyIiwgXAotICAgICAgICAgICIwLjE0MDEzMiwgMC4yOTA5NzEsIDAuNDM3Mjk1LCAwLjU0MTQ0OSwgMC43MDgwODksIDAuODUzOTMzLCAxLjA2MjMzIiwgXAotICAgICAgICAgICIwLjE1NDk3MiwgMC4zMDU4NDUsIDAuNDUyMTc0LCAwLjU1NjMzMSwgMC43MjI5NzYsIDAuODY4ODI2LCAxLjA3NzIyIiwgXAotICAgICAgICAgICIwLjE3ODI4NywgMC4zMjkxOTMsIDAuNDc1NTI2LCAwLjU3OTY4NiwgMC43NDYzMzYsIDAuODkyMjAyLCAxLjEwMDU4IiwgXAotICAgICAgICAgICIwLjE5NzczLCAwLjM0ODcxOSwgMC40OTUwNTQsIDAuNTk5MjIxLCAwLjc2NTg3MiwgMC45MTE3NTIsIDEuMTIwMTIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjYzNTcsIDAuMzQ2ODk2LCAwLjYzNTA2NSwgMC44NDI4MTIsIDEuMTczNzksIDEuNDY0OTEsIDEuODc5OSIsIFwKLSAgICAgICAgICAiMC4wNjYzOSwgMC4zNDY4OTMsIDAuNjM1MDU2LCAwLjg0MjgyNywgMS4xNzM3NiwgMS40NjM0OCwgMS44Nzg1NCIsIFwKLSAgICAgICAgICAiMC4wNjYzOTQsIDAuMzQ2ODg0LCAwLjYzNTA1OSwgMC44NDI3ODgsIDEuMTczODEsIDEuNDY0NzcsIDEuODc4MjkiLCBcCi0gICAgICAgICAgIjAuMDY2Mzk2LCAwLjM0Njg3OCwgMC42MzUwNTksIDAuODQyMDY4LCAxLjE3Mzc1LCAxLjQ2NDcyLCAxLjg3OTY1IiwgXAotICAgICAgICAgICIwLjA2NjQ5OSwgMC4zNDY4NzYsIDAuNjM1MDU1LCAwLjg0MjczMiwgMS4xNzM3NiwgMS40NjMzNCwgMS44Nzk5NiIsIFwKLSAgICAgICAgICAiMC4wNjcwMjEsIDAuMzQ2ODgxLCAwLjYzNTE0MSwgMC44NDI1MDgsIDEuMTczNzgsIDEuNDY0NjUsIDEuODc5NTIiLCBcCi0gICAgICAgICAgIjAuMDY3ODQxLCAwLjM0Njk0MywgMC42MzUwNzIsIDAuODQyNzYyLCAxLjE3MzY4LCAxLjQ2NDA1LCAxLjg3OTgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJEIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjY2NiwgMC4wMDY3OTMsIDAuMDA2ODEyLCAwLjAwNjgxOCwgMC4wMDY4MjEsIDAuMDA2ODI1LCAwLjAwNjgyOCIsIFwKLSAgICAgICAgICAiMC4wMDY2NTksIDAuMDA2NzksIDAuMDA2ODA5LCAwLjAwNjgxNiwgMC4wMDY4MiwgMC4wMDY4MjMsIDAuMDA2ODI1IiwgXAotICAgICAgICAgICIwLjAwNjY2MiwgMC4wMDY3ODgsIDAuMDA2ODA3LCAwLjAwNjgxMiwgMC4wMDY4MTgsIDAuMDA2ODIxLCAwLjAwNjgyMyIsIFwKLSAgICAgICAgICAiMC4wMDY2NjEsIDAuMDA2Nzg3LCAwLjAwNjgwNiwgMC4wMDY4MTIsIDAuMDA2ODE3LCAwLjAwNjgyLCAwLjAwNjgyMiIsIFwKLSAgICAgICAgICAiMC4wMDY2NiwgMC4wMDY3ODYsIDAuMDA2ODA1LCAwLjAwNjgxMywgMC4wMDY4MTYsIDAuMDA2ODE4LCAwLjAwNjgxOSIsIFwKLSAgICAgICAgICAiMC4wMDY2NTgsIDAuMDA2Nzg0LCAwLjAwNjgwMywgMC4wMDY4MDksIDAuMDA2ODEzLCAwLjAwNjgxNiwgMC4wMDY4MTgiLCBcCi0gICAgICAgICAgIjAuMDA2NjU1LCAwLjAwNjc4MSwgMC4wMDY4LCAwLjAwNjgwNiwgMC4wMDY4MTEsIDAuMDA2ODE0LCAwLjAwNjgxNiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2MjEzLCAwLjAwNjMyOSwgMC4wMDYzNDUsIDAuMDA2MzQ2LCAwLjAwNjM1MiwgMC4wMDYzNTYsIDAuMDA2MzU1IiwgXAotICAgICAgICAgICIwLjAwNjIwMywgMC4wMDYzMjMsIDAuMDA2MzM5LCAwLjAwNjM0MiwgMC4wMDYzNDgsIDAuMDA2MzUsIDAuMDA2MzUxIiwgXAotICAgICAgICAgICIwLjAwNjIsIDAuMDA2MzE5LCAwLjAwNjMzNSwgMC4wMDYzNCwgMC4wMDYzNDQsIDAuMDA2MzQ2LCAwLjAwNjM1IiwgXAotICAgICAgICAgICIwLjAwNjE5MywgMC4wMDYzMTksIDAuMDA2MzM2LCAwLjAwNjM0LCAwLjAwNjM0NCwgMC4wMDYzNDgsIDAuMDA2MzQ4IiwgXAotICAgICAgICAgICIwLjAwNjE5NCwgMC4wMDYzMTMsIDAuMDA2MzI5LCAwLjAwNjMzNCwgMC4wMDYzMzgsIDAuMDA2MzQsIDAuMDA2MzQyIiwgXAotICAgICAgICAgICIwLjAwNjE5MSwgMC4wMDYzMSwgMC4wMDYzMjcsIDAuMDA2MzMxLCAwLjAwNjMzMywgMC4wMDYzMzcsIDAuMDA2MzQxIiwgXAotICAgICAgICAgICIwLjAwNjE4NiwgMC4wMDYzMDYsIDAuMDA2MzIyLCAwLjAwNjMyNCwgMC4wMDYzMzMsIDAuMDA2MzMzLCAwLjAwNjMzNSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkdOIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwODA1OSwgMC4wMDgxODksIDAuMDA4MjA4LCAwLjAwODIxNCwgMC4wMDgyMTksIDAuMDA4MjIyLCAwLjAwODIyNCIsIFwKLSAgICAgICAgICAiMC4wMDgwNDksIDAuMDA4MTgsIDAuMDA4MjAyLCAwLjAwODIwNSwgMC4wMDgyMSwgMC4wMDgyMTMsIDAuMDA4MjEzIiwgXAotICAgICAgICAgICIwLjAwODA0NCwgMC4wMDgxNzMsIDAuMDA4MTkzLCAwLjAwODE5OSwgMC4wMDgyMDQsIDAuMDA4MjA2LCAwLjAwODIwOSIsIFwKLSAgICAgICAgICAiMC4wMDgwNDYsIDAuMDA4MTcyLCAwLjAwODE5MSwgMC4wMDgxOTgsIDAuMDA4MjAzLCAwLjAwODIwNywgMC4wMDgyMDciLCBcCi0gICAgICAgICAgIjAuMDA4MDQzLCAwLjAwODE3LCAwLjAwODE4OSwgMC4wMDgxOTUsIDAuMDA4MiwgMC4wMDgyMDMsIDAuMDA4MjA4IiwgXAotICAgICAgICAgICIwLjAwODAzNywgMC4wMDgxNjgsIDAuMDA4MTg3LCAwLjAwODE5NiwgMC4wMDgxOTUsIDAuMDA4MjAxLCAwLjAwODIwMyIsIFwKLSAgICAgICAgICAiMC4wMDgwMzcsIDAuMDA4MTY2LCAwLjAwODE4NSwgMC4wMDgxOTEsIDAuMDA4MTk2LCAwLjAwODE5OSwgMC4wMDgyMDEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNzY2OSwgMC4wMDc3ODgsIDAuMDA3ODAzLCAwLjAwNzgwNywgMC4wMDc4MTIsIDAuMDA3ODE0LCAwLjAwNzgxNSIsIFwKLSAgICAgICAgICAiMC4wMDc2NiwgMC4wMDc3NzksIDAuMDA3Nzk1LCAwLjAwNzgsIDAuMDA3ODAxLCAwLjAwNzgwNSwgMC4wMDc4MDUiLCBcCi0gICAgICAgICAgIjAuMDA3NjUzLCAwLjAwNzc3MywgMC4wMDc3ODksIDAuMDA3NzkzLCAwLjAwNzc5NywgMC4wMDc4LCAwLjAwNzgiLCBcCi0gICAgICAgICAgIjAuMDA3NjQ5LCAwLjAwNzc2OSwgMC4wMDc3ODUsIDAuMDA3NzksIDAuMDA3Nzk0LCAwLjAwNzc5NiwgMC4wMDc3OTciLCBcCi0gICAgICAgICAgIjAuMDA3NjQ3LCAwLjAwNzc2NywgMC4wMDc3ODMsIDAuMDA3Nzg3LCAwLjAwNzc5MSwgMC4wMDc3OTMsIDAuMDA3Nzk1IiwgXAotICAgICAgICAgICIwLjAwNzY0NywgMC4wMDc3NjYsIDAuMDA3NzgzLCAwLjAwNzc4NiwgMC4wMDc3OSwgMC4wMDc3OTQsIDAuMDA3Nzk0IiwgXAotICAgICAgICAgICIwLjAwNzY1NCwgMC4wMDc3NzEsIDAuMDA3Nzg5LCAwLjAwNzc5MSwgMC4wMDc3OTUsIDAuMDA3Nzk3LCAwLjAwNzc5OSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNzkzLCAwLjAwODA1NiwgMC4wMDgwNzUsIDAuMDA4MDgsIDAuMDA4MDg1LCAwLjAwODA4OCwgMC4wMDgwOSIsIFwKLSAgICAgICAgICAiMC4wMDc5MjMsIDAuMDA4MDQ5LCAwLjAwODA2NiwgMC4wMDgwNzYsIDAuMDA4MDc4LCAwLjAwODA4MSwgMC4wMDgwODMiLCBcCi0gICAgICAgICAgIjAuMDA3OTEzLCAwLjAwODA0NSwgMC4wMDgwNjMsIDAuMDA4MDY5LCAwLjAwODA3NCwgMC4wMDgwNzYsIDAuMDA4MDc4IiwgXAotICAgICAgICAgICIwLjAwNzkxNiwgMC4wMDgwNDEsIDAuMDA4MDYyLCAwLjAwODA2OCwgMC4wMDgwNjgsIDAuMDA4MDc1LCAwLjAwODA3MyIsIFwKLSAgICAgICAgICAiMC4wMDc5MTQsIDAuMDA4MDM5LCAwLjAwODA2MSwgMC4wMDgwNjYsIDAuMDA4MDcsIDAuMDA4MDcxLCAwLjAwODA3IiwgXAotICAgICAgICAgICIwLjAwNzkxMSwgMC4wMDgwMzYsIDAuMDA4MDU1LCAwLjAwODA2LCAwLjAwODA2NiwgMC4wMDgwNjcsIDAuMDA4MDcxIiwgXAotICAgICAgICAgICIwLjAwNzkwMywgMC4wMDgwMzUsIDAuMDA4MDU0LCAwLjAwODA2LCAwLjAwODA2NCwgMC4wMDgwNjcsIDAuMDA4MDY5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDcwMSwgMC4wMDcxMjksIDAuMDA3MTQ1LCAwLjAwNzE1LCAwLjAwNzE1MiwgMC4wMDcxNTUsIDAuMDA3MTU3IiwgXAotICAgICAgICAgICIwLjAwNzAwMiwgMC4wMDcxMjIsIDAuMDA3MTM3LCAwLjAwNzE0MiwgMC4wMDcxNDYsIDAuMDA3MTQ4LCAwLjAwNzE1IiwgXAotICAgICAgICAgICIwLjAwNjk5OSwgMC4wMDcxMTgsIDAuMDA3MTMzLCAwLjAwNzEzOCwgMC4wMDcxNDIsIDAuMDA3MTQ0LCAwLjAwNzE0NiIsIFwKLSAgICAgICAgICAiMC4wMDY5OTMsIDAuMDA3MTEzLCAwLjAwNzEyOCwgMC4wMDcxMzMsIDAuMDA3MTM3LCAwLjAwNzEzOSwgMC4wMDcxNCIsIFwKLSAgICAgICAgICAiMC4wMDY5OTQsIDAuMDA3MTEzLCAwLjAwNzEyOCwgMC4wMDcxMzMsIDAuMDA3MTM3LCAwLjAwNzEzOSwgMC4wMDcxNDEiLCBcCi0gICAgICAgICAgIjAuMDA2OTkxLCAwLjAwNzExMSwgMC4wMDcxMjYsIDAuMDA3MTMsIDAuMDA3MTM1LCAwLjAwNzEzNywgMC4wMDcxMzkiLCBcCi0gICAgICAgICAgIjAuMDA2OTg5LCAwLjAwNzEwOSwgMC4wMDcxMjQsIDAuMDA3MTI5LCAwLjAwNzEzMiwgMC4wMDcxMzUsIDAuMDA3MTM4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiU04iOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1NDYxLCAwLjAwNTU4NCwgMC4wMDU2MDIsIDAuMDA1NjA3LCAwLjAwNTYxMSwgMC4wMDU2MTMsIDAuMDA1NjE1IiwgXAotICAgICAgICAgICIwLjAwNTQ0NSwgMC4wMDU1NzMsIDAuMDA1NTksIDAuMDA1NTk0LCAwLjAwNTU5OSwgMC4wMDU2MDEsIDAuMDA1NjAyIiwgXAotICAgICAgICAgICIwLjAwNTQzNiwgMC4wMDU1NjEsIDAuMDA1NTgsIDAuMDA1NTgyLCAwLjAwNTU4NywgMC4wMDU1ODksIDAuMDA1NTkiLCBcCi0gICAgICAgICAgIjAuMDA1NDI3LCAwLjAwNTU1MSwgMC4wMDU1NjgsIDAuMDA1NTczLCAwLjAwNTU4LCAwLjAwNTU4LCAwLjAwNTU4MiIsIFwKLSAgICAgICAgICAiMC4wMDU0MTgsIDAuMDA1NTQzLCAwLjAwNTU2MywgMC4wMDU1NjYsIDAuMDA1NTcxLCAwLjAwNTU3MywgMC4wMDU1NzUiLCBcCi0gICAgICAgICAgIjAuMDA1NDA5LCAwLjAwNTUzNywgMC4wMDU1NTYsIDAuMDA1NTYyLCAwLjAwNTU2NywgMC4wMDU1NjksIDAuMDA1NTcxIiwgXAotICAgICAgICAgICIwLjAwNTQxMiwgMC4wMDU1MzUsIDAuMDA1NTU1LCAwLjAwNTU2MSwgMC4wMDU1NjQsIDAuMDA1NTY3LCAwLjAwNTU2OSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2ODk1LCAwLjAwNjk5NCwgMC4wMDcwMDQsIDAuMDA3MDA4LCAwLjAwNzAxLCAwLjAwNzAxMSwgMC4wMDcwMTMiLCBcCi0gICAgICAgICAgIjAuMDA2ODgxLCAwLjAwNjk4MSwgMC4wMDY5OTIsIDAuMDA2OTk1LCAwLjAwNjk5NiwgMC4wMDcsIDAuMDA3IiwgXAotICAgICAgICAgICIwLjAwNjg1OSwgMC4wMDY5NjMsIDAuMDA2OTc1LCAwLjAwNjk4MSwgMC4wMDY5ODIsIDAuMDA2OTg2LCAwLjAwNjk4NyIsIFwKLSAgICAgICAgICAiMC4wMDY4MzgsIDAuMDA2OTQ1LCAwLjAwNjk1OSwgMC4wMDY5NjMsIDAuMDA2OTY3LCAwLjAwNjk2OCwgMC4wMDY5NzEiLCBcCi0gICAgICAgICAgIjAuMDA2ODE0LCAwLjAwNjkyNiwgMC4wMDY5NDEsIDAuMDA2OTQ2LCAwLjAwNjk1LCAwLjAwNjk1MywgMC4wMDY5NTYiLCBcCi0gICAgICAgICAgIjAuMDA2NzkzLCAwLjAwNjkwNiwgMC4wMDY5MjQsIDAuMDA2OTMsIDAuMDA2OTM1LCAwLjAwNjkzNywgMC4wMDY5NDIiLCBcCi0gICAgICAgICAgIjAuMDA2NzY4LCAwLjAwNjg4NiwgMC4wMDY5MDYsIDAuMDA2OTE1LCAwLjAwNjkxOSwgMC4wMDY5MjUsIDAuMDA2OTI4Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihSTikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNDgxMjQ7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNDgxMjQ7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNDcxNTk7Ci0gICAgY2xvY2sgOiB0cnVlOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjA2NCwgMC4wMDIwNDUsIDAuMDAyMDMyLCAwLjAwMjAyNywgMC4wMDIwMjksIDAuMDAyMDM4LCAwLjAwMjA0OSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDMzMywgMC4wMDAzMzIsIDAuMDAwMzMyLCAwLjAwMDMzMiwgMC4wMDAzMzIsIDAuMDAwMzMxLCAwLjAwMDMzMiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJHTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJEJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMV9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjE4MTI1LCAtMC4xNywgLTAuMTUxMjUsIC0wLjEzODc1LCAtMC4xMjYyNSwgLTAuMTAzNzUsIC0wLjA5NSIsIFwKLSAgICAgICAgICAiLTAuMTkyNSwgLTAuMTgxMjUsIC0wLjE2MjUsIC0wLjE1LCAtMC4xMzc1LCAtMC4xMTUsIC0wLjEwNjI1IiwgXAotICAgICAgICAgICItMC4yMDUsIC0wLjE5Mzc1LCAtMC4xODEyNSwgLTAuMTYyNSwgLTAuMTUsIC0wLjEzMzc1LCAtMC4xMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMjE3NSwgLTAuMjA2MjUsIC0wLjE5Mzc1LCAtMC4xNzUsIC0wLjE2MjUsIC0wLjE0NjI1LCAtMC4xMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMjM2MjUsIC0wLjIxODc1LCAtMC4yMDYyNSwgLTAuMTkzNzUsIC0wLjE3NSwgLTAuMTU4NzUsIC0wLjE0Mzc1IiwgXAotICAgICAgICAgICItMC4yNTI1LCAtMC4yNDEyNSwgLTAuMjI4NzUsIC0wLjIxNjI1LCAtMC4xOTc1LCAtMC4xODEyNSwgLTAuMTY2MjUiLCBcCi0gICAgICAgICAgIi0wLjI3Mzc1LCAtMC4yNjI1LCAtMC4yNSwgLTAuMjMxMjUsIC0wLjIxODc1LCAtMC4xOTYyNSwgLTAuMTg3NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQmU04iOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4zMTAxNzgsIDAuMzIyMDE2LCAwLjMzNjE1OSwgMC4zNDk1NjcsIDAuMzYyNzE3LCAwLjM4MjY5NSwgMC40MDAwMTQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiR04iOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIkQmU04iOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8xX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjE4NzUsIDAuMjA3NSwgMC4xODg3NSwgMC4xNzYyNSwgMC4xNjM3NSwgMC4xNDEyNSwgMC4xMjYyNSIsIFwKLSAgICAgICAgICAiMC4yMywgMC4yMTg3NSwgMC4yLCAwLjE4NzUsIDAuMTY4NzUsIDAuMTUyNSwgMC4xMzc1IiwgXAotICAgICAgICAgICIwLjI0MjUsIDAuMjMxMjUsIDAuMjEyNSwgMC4yLCAwLjE4NzUsIDAuMTY1LCAwLjE1IiwgXAotICAgICAgICAgICIwLjI1NSwgMC4yNDM3NSwgMC4yMjUsIDAuMjEyNSwgMC4yLCAwLjE3NzUsIDAuMTYyNSIsIFwKLSAgICAgICAgICAiMC4yNjc1LCAwLjI1NjI1LCAwLjI0Mzc1LCAwLjIyNSwgMC4yMTI1LCAwLjE5LCAwLjE3NSIsIFwKLSAgICAgICAgICAiMC4yOSwgMC4yNzg3NSwgMC4yNiwgMC4yNDc1LCAwLjIzNSwgMC4yMTI1LCAwLjE5NzUiLCBcCi0gICAgICAgICAgIjAuMzA1LCAwLjI5Mzc1LCAwLjI4MTI1LCAwLjI2MjUsIDAuMjUsIDAuMjI3NSwgMC4yMTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTTikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxMzc3OTg7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxMzc3OTg7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxMzc1MjM7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNDg1LCAwLjAwMDQ4NCwgMC4wMDA0ODQsIDAuMDAwNDg0LCAwLjAwMDQ4NCwgMC4wMDA0ODQsIDAuMDAwNDg0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNDk4LCAwLjAwMDQ4OSwgMC4wMDA0ODgsIDAuMDAwNDg3LCAwLjAwMDQ4NywgMC4wMDA0ODYsIDAuMDAwNDg2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRCI7Ci0gICAgICBzZGZfY29uZCA6ICJEID09IDEnYjAiOwotICAgICAgZmFsbF9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMjIyMjU2LCAwLjIzMzg4NywgMC4yNDc4MTcsIDAuMjYxNzc4LCAwLjI3NTg0NiwgMC4yOTgxODksIDAuMzE2Njc5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkdOIjsKLSAgICAgIHRpbWluZ190eXBlIDogcmVjb3ZlcnlfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRCZSTiI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fUk5fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChyZWNvdmVyeV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDA2MjUsIC0wLjAxNzUsIC0wLjAzLCAtMC4wNDg3NSwgLTAuMDYxMjUsIC0wLjA4Mzc1LCAtMC4wOTg3NSIsIFwKLSAgICAgICAgICAiMC4wMDUsIC0wLjAwNjI1LCAtMC4wMTg3NSwgLTAuMDM3NSwgLTAuMDUsIC0wLjA3MjUsIC0wLjA4NzUiLCBcCi0gICAgICAgICAgIjAuMDE3NSwgMC4wMDYyNSwgLTAuMDEyNSwgLTAuMDI1LCAtMC4wMzc1LCAtMC4wNiwgLTAuMDc1IiwgXAotICAgICAgICAgICIwLjAzLCAwLjAxODc1LCAwLCAtMC4wMTI1LCAtMC4wMzEyNSwgLTAuMDQ3NSwgLTAuMDYyNSIsIFwKLSAgICAgICAgICAiMC4wNDI1LCAwLjAyNSwgMC4wMTI1LCAwLCAtMC4wMTg3NSwgLTAuMDM1LCAtMC4wNTYyNSIsIFwKLSAgICAgICAgICAiMC4wNTg3NSwgMC4wNDc1LCAwLjAyODc1LCAwLjAxNjI1LCAwLjAwMzc1LCAtMC4wMTg3NSwgLTAuMDMzNzUiLCBcCi0gICAgICAgICAgIjAuMDczNzUsIDAuMDYyNSwgMC4wNDM3NSwgMC4wMzEyNSwgMC4wMTg3NSwgLTAuMDAzNzUsIC0wLjAxODc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIHRpbWluZ190eXBlIDogcmVjb3ZlcnlfcmlzaW5nOwotICAgICAgd2hlbiA6ICJHTiI7Ci0gICAgICBzZGZfY29uZCA6ICJHTiA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChyZWNvdmVyeV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjUsIDAuMDIsIDAuMDA3NSwgMC4wMDEyNSwgLTAuMDExMjUsIC0wLjAyMTI1LCAtMC4wMyIsIFwKLSAgICAgICAgICAiMC4wMzYyNSwgMC4wMzEyNSwgMC4wMTg3NSwgMC4wMTI1LCAwLCAtMC4wMSwgLTAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMDQ4NzUsIDAuMDQzNzUsIDAuMDMxMjUsIDAuMDE4NzUsIDAuMDEyNSwgMC4wMDI1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiMC4wNjEyNSwgMC4wNSwgMC4wNDM3NSwgMC4wMzEyNSwgMC4wMjUsIDAuMDE1LCAwIiwgXAotICAgICAgICAgICIwLjA3Mzc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMjEyNSwgMC4wMTI1IiwgXAotICAgICAgICAgICIwLjA5LCAwLjA3ODc1LCAwLjA3MjUsIDAuMDYsIDAuMDUzNzUsIDAuMDM3NSwgMC4wMjg3NSIsIFwKLSAgICAgICAgICAiMC4xMDUsIDAuMDkzNzUsIDAuMDgxMjUsIDAuMDc1LCAwLjA2MjUsIDAuMDUyNSwgMC4wNDM3NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJHTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJlbW92YWxfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRCZSTiI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fUk5fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChyZW1vdmFsX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3NSwgMC4wODYyNSwgMC4xMDUsIDAuMTE3NSwgMC4xMywgMC4xNTI1LCAwLjE2NzUiLCBcCi0gICAgICAgICAgIjAuMDYzNzUsIDAuMDc1LCAwLjA5Mzc1LCAwLjEwNjI1LCAwLjExODc1LCAwLjE0MTI1LCAwLjE1NjI1IiwgXAotICAgICAgICAgICIwLjA1MTI1LCAwLjA2MjUsIDAuMDgxMjUsIDAuMDkzNzUsIDAuMTA2MjUsIDAuMTI4NzUsIDAuMTQzNzUiLCBcCi0gICAgICAgICAgIjAuMDM4NzUsIDAuMDUsIDAuMDY4NzUsIDAuMDgxMjUsIDAuMSwgMC4xMTYyNSwgMC4xMzc1IiwgXAotICAgICAgICAgICIwLjAzMjUsIDAuMDQzNzUsIDAuMDU2MjUsIDAuMDc1LCAwLjA4NzUsIDAuMTEsIDAuMTI1IiwgXAotICAgICAgICAgICIwLjAxNjI1LCAwLjAyNzUsIDAuMDQsIDAuMDU4NzUsIDAuMDcxMjUsIDAuMDkzNzUsIDAuMTA4NzUiLCBcCi0gICAgICAgICAgIjAuMDAxMjUsIDAuMDEyNSwgMC4wMzEyNSwgMC4wNDM3NSwgMC4wNTYyNSwgMC4wNzg3NSwgMC4wOTM3NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJlbW92YWxfcmlzaW5nOwotICAgICAgd2hlbiA6ICJHTiI7Ci0gICAgICBzZGZfY29uZCA6ICJHTiA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChyZW1vdmFsX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyNSwgMC4wNDI1LCAwLjA1NSwgMC4wNjc1LCAwLjA4LCAwLjA5NjI1LCAwLjExMTI1IiwgXAotICAgICAgICAgICIwLjAyLCAwLjAzMTI1LCAwLjA0Mzc1LCAwLjA1NjI1LCAwLjA2ODc1LCAwLjA4NSwgMC4xIiwgXAotICAgICAgICAgICIwLjAwNzUsIDAuMDE4NzUsIDAuMDMxMjUsIDAuMDQzNzUsIDAuMDU2MjUsIDAuMDcyNSwgMC4wODc1IiwgXAotICAgICAgICAgICItMC4wMDUsIDAuMDA2MjUsIDAuMDE4NzUsIDAuMDMxMjUsIDAuMDQzNzUsIDAuMDYsIDAuMDc1IiwgXAotICAgICAgICAgICItMC4wMTc1LCAtMC4wMDYyNSwgMC4wMDYyNSwgMC4wMTg3NSwgMC4wMzEyNSwgMC4wNTM3NSwgMC4wNjg3NSIsIFwKLSAgICAgICAgICAiLTAuMDMzNzUsIC0wLjAyMjUsIC0wLjAxLCAwLjAwMjUsIDAuMDE1LCAwLjAzNzUsIDAuMDUyNSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjAzNzUsIC0wLjAyNSwgLTAuMDEyNSwgMCwgMC4wMjI1LCAwLjAzNzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IFRMQVROU1JYTCAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKFRMQVROU1JYTCkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjIwMDQxNjsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBsYXRjaCAoUUlOVCxONSkgewotICAgIGRhdGFfaW4gOiAiRCI7Ci0gICAgZW5hYmxlIDogIigoIUdOKSBSTikiOwotICAgIHByZXNldCA6ICIoIVNOKSI7Ci0gIH0KLSAgcGluKEQpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDU4MTQxOTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA1Nzk3ODE7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNTgxNDE5OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDE1OSwgMC4wMDAxNjEsIDAuMDAwMTYyLCAwLjAwMDE2MSwgMC4wMDAxNjIsIDAuMDAwMTYyLCAwLjAwMDE2MiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDE2NywgMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJHTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJSTiZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJSTl9FUV8xX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDEyNSwgLTAuMDAxMjUsIDAuMDExMjUsIDAuMDMsIDAuMDQyNSwgMC4wNjUsIDAuMDgiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTI1LCAwLCAwLjAxODc1LCAwLjAzMTI1LCAwLjA1Mzc1LCAwLjA2ODc1IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMjUsIC0wLjAxMjUsIDAsIDAuMDE4NzUsIDAuMDM1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA0Mzc1LCAtMC4wMjUsIC0wLjAxMjUsIDAsIDAuMDIyNSwgMC4wMzc1IiwgXAotICAgICAgICAgICItMC4wNjc1LCAtMC4wNTYyNSwgLTAuMDM3NSwgLTAuMDI1LCAtMC4wMTI1LCAwLjAxLCAwLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDksIC0wLjA3ODc1LCAtMC4wNiwgLTAuMDQ3NSwgLTAuMDM1LCAtMC4wMTI1LCAwLjAwMjUiLCBcCi0gICAgICAgICAgIi0wLjExMTI1LCAtMC4wOTM3NSwgLTAuMDgxMjUsIC0wLjA2ODc1LCAtMC4wNSwgLTAuMDMzNzUsIC0wLjAxMjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wNDM3NSwgLTAuMDMyNSwgLTAuMDIsIC0wLjAwMTI1LCAwLjAxMTI1LCAwLjAyNzUsIDAuMDQyNSIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNDM3NSwgLTAuMDMxMjUsIC0wLjAxMjUsIDAsIDAuMDE2MjUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjA2NzUsIC0wLjA1NjI1LCAtMC4wNDM3NSwgLTAuMDMxMjUsIC0wLjAxMjUsIDAuMDAzNzUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjA4LCAtMC4wNjg3NSwgLTAuMDU2MjUsIC0wLjA0Mzc1LCAtMC4wMjUsIC0wLjAwODc1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wOTI1LCAtMC4wODEyNSwgLTAuMDY4NzUsIC0wLjA1LCAtMC4wMzc1LCAtMC4wMjEyNSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjExNSwgLTAuMTAzNzUsIC0wLjA4NSwgLTAuMDcyNSwgLTAuMDYsIC0wLjAzNzUsIC0wLjAyMjUiLCBcCi0gICAgICAgICAgIi0wLjEzLCAtMC4xMTg3NSwgLTAuMTA2MjUsIC0wLjA4NzUsIC0wLjA3NSwgLTAuMDUyNSwgLTAuMDM3NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJHTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiUk4mU04iOwotICAgICAgc2RmX2NvbmQgOiAiUk5fRVFfMV9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzNzUsIDAuMDI2MjUsIDAuMDEzNzUsIC0wLjAwNSwgLTAuMDE3NSwgLTAuMDQsIC0wLjA1NSIsIFwKLSAgICAgICAgICAiMC4wNTUsIDAuMDM3NSwgMC4wMjUsIDAuMDEyNSwgLTAuMDA2MjUsIC0wLjAyODc1LCAtMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4wNjc1LCAwLjA1NjI1LCAwLjAzNzUsIDAuMDI1LCAwLjAwNjI1LCAtMC4wMSwgLTAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMDgsIDAuMDY4NzUsIDAuMDUsIDAuMDM3NSwgMC4wMTg3NSwgMC4wMDI1LCAtMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4wOTI1LCAwLjA4MTI1LCAwLjA2MjUsIDAuMDUsIDAuMDM3NSwgMC4wMTUsIDAiLCBcCi0gICAgICAgICAgIjAuMTE1LCAwLjEwMzc1LCAwLjA4NSwgMC4wNzI1LCAwLjA1Mzc1LCAwLjAzNzUsIDAuMDE2MjUiLCBcCi0gICAgICAgICAgIjAuMTMsIDAuMTE4NzUsIDAuMTA2MjUsIDAuMDg3NSwgMC4wNzUsIDAuMDUyNSwgMC4wMzc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDgxMjUsIDAuMDcsIDAuMDUxMjUsIDAuMDM4NzUsIDAuMDI2MjUsIDAuMDAzNzUsIC0wLjAxMTI1IiwgXAotICAgICAgICAgICIwLjA5MjUsIDAuMDgxMjUsIDAuMDYyNSwgMC4wNSwgMC4wMzc1LCAwLjAxNSwgMCIsIFwKLSAgICAgICAgICAiMC4xMDUsIDAuMDkzNzUsIDAuMDc1LCAwLjA2MjUsIDAuMDUsIDAuMDI3NSwgMC4wMTI1IiwgXAotICAgICAgICAgICIwLjExNzUsIDAuMTA2MjUsIDAuMDg3NSwgMC4wNzUsIDAuMDYyNSwgMC4wNCwgMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMTMsIDAuMTE4NzUsIDAuMSwgMC4wODc1LCAwLjA3NSwgMC4wNTI1LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIjAuMTQ2MjUsIDAuMTM1LCAwLjExNjI1LCAwLjEwMzc1LCAwLjA5MTI1LCAwLjA2ODc1LCAwLjA1Mzc1IiwgXAotICAgICAgICAgICIwLjE2MTI1LCAwLjE1LCAwLjEzNzUsIDAuMTE4NzUsIDAuMTA2MjUsIDAuMDgzNzUsIDAuMDY4NzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEdOKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2MTY1MTI7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjE2MjUxOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDYxNjUxMjsKLSAgICBjbG9jayA6IHRydWU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjI3LCAwLjAwMDIwOCwgMC4wMDAxOTgsIDAuMDAwMTk1LCAwLjAwMDE5NCwgMC4wMDAxOTEsIDAuMDAwMTkzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzMTQ5LCAwLjAwMzEzMywgMC4wMDMxMjEsIDAuMDAzMTEzLCAwLjAwMzEwOCwgMC4wMDMxMDQsIDAuMDAzMTAyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkdOIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRCZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjQ5MzQwNCwgMC41MDQ2MjMsIDAuNTE4NzczLCAwLjUzMjg0MSwgMC41NDQ3MjcsIDAuNTYxODM5LCAwLjU3NDk3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihRKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMDc0NTk4MzsKLSAgICBmdW5jdGlvbiA6ICJRSU5UIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJEIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMjU4MTksIDAuMzUxMDgyLCAwLjU3OTM1NiwgMC45NTg1MzYsIDEuMzM3ODksIDIuMjIxMzEsIDIuNzMyMzciLCBcCi0gICAgICAgICAgIjAuMzM3NDIxLCAwLjM2Mjg2MywgMC41OTA3NTYsIDAuOTcwNTc4LCAxLjM1MDE0LCAyLjIzODYxLCAyLjc0NTUyIiwgXAotICAgICAgICAgICIwLjM1MTI0MSwgMC4zNzY1MSwgMC42MDQxMjksIDAuOTg0MTA3LCAxLjM2MzU0LCAyLjI0OTkxLCAyLjc1OTk0IiwgXAotICAgICAgICAgICIwLjM2NDgyNSwgMC4zOTAyNTEsIDAuNjE3NjAzLCAwLjk5NzcwNiwgMS4zNzcxNSwgMi4yNjI1OCwgMi43NzM2NyIsIFwKLSAgICAgICAgICAiMC4zNzgzODUsIDAuNDAzODE5LCAwLjYzMTMxNSwgMS4wMTEyOSwgMS4zOTA3NiwgMi4yNzczNiwgMi43ODcxMSIsIFwKLSAgICAgICAgICAiMC40MDAyNDYsIDAuNDI1NTIzLCAwLjY1MzE4LCAxLjAzMzE3LCAxLjQxMzE3LCAyLjMwMDMsIDIuODA2MzgiLCBcCi0gICAgICAgICAgIjAuNDE5MDI2LCAwLjQ0NDI5NCwgMC42NzI3MjgsIDEuMDUxODEsIDEuNDMxMTgsIDIuMzEzMTEsIDIuODI1MzQiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjcwMjg0LCAwLjMyMTI4NiwgMC43ODg3MTMsIDEuNTY1NzQsIDIuMzUwMjIsIDQuMTE0NjQsIDUuMTkwMTEiLCBcCi0gICAgICAgICAgIjAuMjcwNTIzLCAwLjMyMjYzMywgMC43ODYxMzEsIDEuNTY1ODgsIDIuMzQzMSwgNC4xNTU4LCA1LjE3OTM0IiwgXAotICAgICAgICAgICIwLjI3MDQ0LCAwLjMyMTUxNSwgMC43ODY1NzcsIDEuNTY1ODgsIDIuMzUwMTgsIDQuMTY4NiwgNS4xOTEwNSIsIFwKLSAgICAgICAgICAiMC4yNjg5NDQsIDAuMzIyNjU4LCAwLjc4NDc0MiwgMS41NjU5MywgMi4zNDI5NCwgNC4xNjkxLCA1LjE4NDQxIiwgXAotICAgICAgICAgICIwLjI2ODYzMSwgMC4zMjI2NjEsIDAuNzg2Njc0LCAxLjU2NTksIDIuMzQyOTgsIDQuMTY3MzMsIDUuMTkxMDIiLCBcCi0gICAgICAgICAgIjAuMjY5NzgsIDAuMzIwMzcsIDAuNzg2OTAzLCAxLjU2NTg3LCAyLjM0OTksIDQuMTY2MDYsIDUuMTQ4NzEiLCBcCi0gICAgICAgICAgIjAuMjcwMzg5LCAwLjMyMTQ3NywgMC43ODg1ODgsIDEuNTY1OTEsIDIuMzUwMjMsIDQuMTI5NDksIDUuMTg5NjYiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzg5MzQzLCAwLjQxOTA5MiwgMC42ODc5MjMsIDEuMTM1OTUsIDEuNTgyNzksIDIuNjI2NzIsIDMuMjIyMTUiLCBcCi0gICAgICAgICAgIjAuNDAwNjEzLCAwLjQzMDMzNSwgMC42OTkwNTMsIDEuMTQzNSwgMS41OTQxLCAyLjYzNzQ3LCAzLjIzMzQ4IiwgXAotICAgICAgICAgICIwLjQxMzMyNCwgMC40NDMxMzcsIDAuNzExOTU4LCAxLjE2LCAxLjYwMTUyLCAyLjY0OTM5LCAzLjI0NjM0IiwgXAotICAgICAgICAgICIwLjQyNTYyOCwgMC40NTUzNzMsIDAuNzI0MTI3LCAxLjE2ODQxLCAxLjYxNDA4LCAyLjY2MTQyLCAzLjI1ODU0IiwgXAotICAgICAgICAgICIwLjQzNzg1NiwgMC40NjczNjQsIDAuNzM2MjYsIDEuMTgwNCwgMS42MzEzMSwgMi42NzQ3OSwgMy4yNzA2NCIsIFwKLSAgICAgICAgICAiMC40NTY2MzksIDAuNDg2MTUyLCAwLjc1NTA3NywgMS4yMDMxLCAxLjY0OTg3LCAyLjY5Mzc3LCAzLjI4OTQxIiwgXAotICAgICAgICAgICIwLjQ3MjgxNSwgMC41MDI2OTgsIDAuNzcxNDIyLCAxLjIxNTkxLCAxLjY2NjUxLCAyLjcxMDExLCAzLjMwNTg1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMwOTEwNiwgMC4zNjgxMzYsIDAuODk3MjY2LCAxLjc4NDksIDIuNjY5MTEsIDQuNzI4NzEsIDUuOTE0OTYiLCBcCi0gICAgICAgICAgIjAuMzA4Mzg2LCAwLjM2NzU0LCAwLjg5NTk1NSwgMS43ODMyNSwgMi42Njg1NCwgNC43MjU1LCA1LjkxNDI2IiwgXAotICAgICAgICAgICIwLjMwOTI1MiwgMC4zNjgyOTgsIDAuODk3MDgyLCAxLjc4NDg4LCAyLjY2NzAyLCA0LjcxNzQ0LCA1LjkxNDQiLCBcCi0gICAgICAgICAgIjAuMzEwMDU1LCAwLjM2ODEwOCwgMC44OTYzNDcsIDEuNzc5MDMsIDIuNjU2OTQsIDQuNzEzNzYsIDUuOTE0MzEiLCBcCi0gICAgICAgICAgIjAuMzA5MDY5LCAwLjM2ODYxNSwgMC44OTcwMTcsIDEuNzc3MjgsIDIuNjY4ODEsIDQuNzI1MjMsIDUuOTE0MzciLCBcCi0gICAgICAgICAgIjAuMzA4NzM0LCAwLjM2ODYyMywgMC44OTcyODEsIDEuNzg0ODgsIDIuNjY4OTMsIDQuNzI4MDgsIDUuOTE0NTMiLCBcCi0gICAgICAgICAgIjAuMzA5Nzk2LCAwLjM2NzQzMSwgMC44OTU5NzYsIDEuNzg0MzEsIDIuNjY4MDUsIDQuNzI1OTcsIDUuOTE0MjgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiR04iOwotICAgICAgdGltaW5nX3NlbnNlIDogbm9uX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiBmYWxsaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjQ2MzQ0NCwgMC40ODg3MTMsIDAuNzE2MzMzLCAxLjA5NjQzLCAxLjQ3NTkyLCAyLjM2MDk1LCAyLjg3MTkzIiwgXAotICAgICAgICAgICIwLjQ3NTA5MywgMC41MDAzNjYsIDAuNzI3NzQ5LCAxLjEwODE0LCAxLjQ4NjExLCAyLjM3NTE2LCAyLjg3Nzc4IiwgXAotICAgICAgICAgICIwLjQ4OTExOCwgMC41MTQzOTEsIDAuNzQxNzYyLCAxLjEyMjE3LCAxLjUwMDM1LCAyLjM4OTIyLCAyLjg5MTcyIiwgXAotICAgICAgICAgICIwLjUwMjczLCAwLjUyNzk5NywgMC43NTU1NDEsIDEuMTM1NjIsIDEuNTE1MDYsIDIuNDAxODUsIDIuOTExMzYiLCBcCi0gICAgICAgICAgIjAuNTE0ODIsIDAuNTQwMjE2LCAwLjc2NzQ0OCwgMS4xNDc4NCwgMS41MjY4NSwgMi40MTQ4NiwgMi45MTg3OCIsIFwKLSAgICAgICAgICAiMC41MzIwMjksIDAuNTU3MzAzLCAwLjc4NDY5OCwgMS4xNjUwOCwgMS41NDMyOSwgMi40MzIxMywgMi45MzQ2NyIsIFwKLSAgICAgICAgICAiMC41NDUyNDMsIDAuNTcwNjAxLCAwLjc5ODA0MywgMS4xNzgxMSwgMS41NTc1MSwgMi40NDMyOCwgMi45NTM5NyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yNzAzMjcsIDAuMzIxNTE5LCAwLjc4NjQ5NywgMS41NjU5LCAyLjM0MywgNC4xMzIyNSwgNS4xODQyNiIsIFwKLSAgICAgICAgICAiMC4yNzAzNTgsIDAuMzIxNDA5LCAwLjc4NDExOSwgMS41NjU4NSwgMi4zMTYwNCwgNC4xNjYzMywgNS4xNzg2NiIsIFwKLSAgICAgICAgICAiMC4yNzAzNDgsIDAuMzIxNCwgMC43ODQwNjQsIDEuNTY1ODUsIDIuMzE3MzQsIDQuMTY2MiwgNS4xNzg2NiIsIFwKLSAgICAgICAgICAiMC4yNzAzMjUsIDAuMzIxNzIsIDAuNzg1NTY1LCAxLjU2NTksIDIuMzQyOTYsIDQuMTY3MDIsIDUuMTkxMzEiLCBcCi0gICAgICAgICAgIjAuMjcwMzUxLCAwLjMyMjU2LCAwLjc4MzkyNywgMS41NjU4NSwgMi4zNTAyLCA0LjE2NjM0LCA1LjE3ODgxIiwgXAotICAgICAgICAgICIwLjI3MDM2NCwgMC4zMjE0ODgsIDAuNzg0MTU4LCAxLjU2NTg1LCAyLjMxNzU3LCA0LjE2NjI1LCA1LjE3ODY2IiwgXAotICAgICAgICAgICIwLjI3MDI5NiwgMC4zMjIzMTUsIDAuNzg1MzIzLCAxLjU2NTg5LCAyLjM0Mjk0LCA0LjE2OTA2LCA1LjE4OTU1Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjQ5MzQwNCwgMC41MjI5MTQsIDAuNzkwNTgyLCAxLjIzNzE2LCAxLjY4NjcsIDIuNzMwMDgsIDMuMzI2MDkiLCBcCi0gICAgICAgICAgIjAuNTA0NjIzLCAwLjUzNDM2MiwgMC44MDMzMTYsIDEuMjQ4MzgsIDEuNjk4MTYsIDIuNzQxNTMsIDMuMzI1NCIsIFwKLSAgICAgICAgICAiMC41MTg3NzMsIDAuNTQ4NTE0LCAwLjgxNzQ4OSwgMS4yNjI2NCwgMS43MTIyNywgMi43NTU2MiwgMy4zNTA0MSIsIFwKLSAgICAgICAgICAiMC41MzI4NDEsIDAuNTYyMzA0LCAwLjgzMTE0NiwgMS4yNzU5NywgMS43MjYxNSwgMi43NjM5OSwgMy4zNjU1NCIsIFwKLSAgICAgICAgICAiMC41NDQ3MjcsIDAuNTc0MjA2LCAwLjg0MzU2MiwgMS4yODg1OCwgMS43MzgsIDIuNzgxMzksIDMuMzY4NzMiLCBcCi0gICAgICAgICAgIjAuNTYxODM5LCAwLjU5MTMxOCwgMC44NTk5NDIsIDEuMzA1NjMsIDEuNzU1MDcsIDIuNzk4NDQsIDMuMzk0NTMiLCBcCi0gICAgICAgICAgIjAuNTc0OTcsIDAuNjA0NDQyLCAwLjg3MzgwNiwgMS4zMTg5MiwgMS43NjgyLCAyLjgxMTU4LCAzLjM5NzY5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMwOTU5OSwgMC4zNjgzMTEsIDAuODk5NTgzLCAxLjc4NDM1LCAyLjY2ODI0LCA0LjcyOTk5LCA1LjkwOTE0IiwgXAotICAgICAgICAgICIwLjMwOTgzMywgMC4zNjg2NjIsIDAuODk3NjkyLCAxLjc4NjQ5LCAyLjY2ODMsIDQuNzI3OTgsIDUuOTA2MDciLCBcCi0gICAgICAgICAgIjAuMzA5ODcyLCAwLjM2ODY5NywgMC44OTc3NjgsIDEuNzg2MzYsIDIuNjY3OSwgNC43MjY5MywgNS45MTg1MiIsIFwKLSAgICAgICAgICAiMC4zMDk4NjcsIDAuMzY4NzI3LCAwLjg5NjMwMiwgMS43ODY1NiwgMi42Njc4NSwgNC43Mzg2MSwgNS45MTQyOCIsIFwKLSAgICAgICAgICAiMC4zMTAwNjgsIDAuMzY4NywgMC44OTk5MTMsIDEuNzg1ODQsIDIuNjY3OTgsIDQuNzI3MDksIDUuODg4ODgiLCBcCi0gICAgICAgICAgIjAuMzEwMDU4LCAwLjM2ODcxOSwgMC44OTU4NTMsIDEuNzg2MDQsIDIuNjY3NjgsIDQuNzI2NTksIDUuOTE0NjkiLCBcCi0gICAgICAgICAgIjAuMzEwMDc0LCAwLjM2ODcyNCwgMC44OTk4NDgsIDEuNzg1NiwgMi42Njc3MiwgNC43MjY0NiwgNS44OTEyMyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcmlzaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjQ0NTEzNCwgMC40NzA0MDQsIDAuNjk3ODI3LCAxLjA3ODY0LCAxLjQ1NzMyLCAyLjM0NTI0LCAyLjg0NzMxIiwgXAotICAgICAgICAgICIwLjQ1NjY0MywgMC40ODIwNzUsIDAuNzA5MjkxLCAxLjA4OTM2LCAxLjQ2ODc2LCAyLjM1Mzg3LCAyLjg2Mjg5IiwgXAotICAgICAgICAgICIwLjQ2OTkzMiwgMC40OTUxOTUsIDAuNzIyNzE5LCAxLjEwMjc4LCAxLjQ4MjIxLCAyLjM2ODI4LCAyLjg3ODYxIiwgXAotICAgICAgICAgICIwLjQ4MzcxMiwgMC41MDg5ODUsIDAuNzM2Mzc5LCAxLjExNzY5LCAxLjQ5NTM0LCAyLjM4MzgxLCAyLjg4NjE3IiwgXAotICAgICAgICAgICIwLjQ5NzMyNiwgMC41MjI1ODYsIDAuNzUwMDk2LCAxLjEzMDEzLCAxLjUwOTUyLCAyLjM5NDQ5LCAyLjkwNjE3IiwgXAotICAgICAgICAgICIwLjUxOTE2NSwgMC41NDQ0MzcsIDAuNzcxODMzLCAxLjE1MzIxLCAxLjUzMDc1LCAyLjQxOTI2LCAyLjkyMTY0IiwgXAotICAgICAgICAgICIwLjUzNzU0NCwgMC41NjI4MTIsIDAuNzkwODkxLCAxLjE3MDI4LCAxLjU0OTcxLCAyLjQzNTU3LCAyLjk0MzY4Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI3MDM1MiwgMC4zMjE4NDgsIDAuNzg0MzE2LCAxLjU2NTg4LCAyLjM0NDIxLCA0LjE2NjI5LCA1LjE3ODYxIiwgXAotICAgICAgICAgICIwLjI3MDI1OSwgMC4zMjI2MDEsIDAuNzgyNzYxLCAxLjU2NTg5LCAyLjM0Mjg5LCA0LjEyNzg4LCA1LjE4Njk5IiwgXAotICAgICAgICAgICIwLjI3MDMwNCwgMC4zMjE2ODIsIDAuNzg1MzA2LCAxLjU2NTg5LCAyLjM0Mjk1LCA0LjE2ODk5LCA1LjE5MDkyIiwgXAotICAgICAgICAgICIwLjI3MDM1MSwgMC4zMjE1MjQsIDAuNzg0MTQ3LCAxLjU2NTc1LCAyLjMyMTQ2LCA0LjE2NjIzLCA1LjE3ODY0IiwgXAotICAgICAgICAgICIwLjI3MDI5NiwgMC4zMTk2NzUsIDAuNzgwNDcyLCAxLjU2NTg5LCAyLjM0MjkzLCA0LjE2OTI3LCA1LjE1MTE1IiwgXAotICAgICAgICAgICIwLjI3MDM1MSwgMC4zMjE1MDMsIDAuNzg0MTUzLCAxLjU1MDY3LCAyLjMyMTAzLCA0LjE2NjI0LCA1LjE3ODY0IiwgXAotICAgICAgICAgICIwLjI2OTYzNCwgMC4zMjA2OTUsIDAuNzg1OTIyLCAxLjU2NTksIDIuMzQyODUsIDQuMTU5OCwgNS4xNDM1NCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogZmFsbGluZ19lZGdlOwotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC40NjgzODMsIDAuNDk3OTk4LCAwLjc2Njg4NywgMS4yMTQxOCwgMS42NTczOSwgMi42OTc4LCAzLjI5OTM0IiwgXAotICAgICAgICAgICIwLjQ3OTcsIDAuNTA5NTU5LCAwLjc3ODQ1NSwgMS4yMjUzNCwgMS42Njg1NCwgMi43MDc3OCwgMy4zMDM4IiwgXAotICAgICAgICAgICIwLjQ5NDQxNSwgMC41MjQyMzIsIDAuNzkyOTg2LCAxLjI0MDQ0LCAxLjY4MzY4LCAyLjcyOTUxLCAzLjMxODQ4IiwgXAotICAgICAgICAgICIwLjUwODg3LCAwLjUzODcyOSwgMC44MDc1NzYsIDEuMjU0OTUsIDEuNjk3LCAyLjc0NDEyLCAzLjMzMjc1IiwgXAotICAgICAgICAgICIwLjUyMzQ2MSwgMC41NTMzMzEsIDAuODIxOTU3LCAxLjI2OTI0LCAxLjcxMjUxLCAyLjc1Mjg0LCAzLjM0NTc2IiwgXAotICAgICAgICAgICIwLjU0NDk5NCwgMC41NzQ3NzQsIDAuODQzNjgzLCAxLjI4NzQ0LCAxLjczMzgxLCAyLjc3Mjk0LCAzLjM2OTA0IiwgXAotICAgICAgICAgICIwLjU2MjE5OCwgMC41OTE4OTgsIDAuODYwNzE5LCAxLjMwODA4LCAxLjc1NDIyLCAyLjc5NzczLCAzLjM4NTg3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMxMDI1LCAwLjM2ODU0NywgMC44OTcxNzksIDEuNzgxOCwgMi42NzExNCwgNC43MzE5NSwgNS45MTkxNCIsIFwKLSAgICAgICAgICAiMC4zMDk3MzQsIDAuMzY4NTQsIDAuODk3NTA5LCAxLjc4MTYzLCAyLjY3MTAzLCA0LjczMzIsIDUuODk4ODEiLCBcCi0gICAgICAgICAgIjAuMzA5NzkyLCAwLjM2ODU2MywgMC44OTcxNzcsIDEuNzgxODgsIDIuNjY1NTQsIDQuNzI3OTksIDUuOTE3MDkiLCBcCi0gICAgICAgICAgIjAuMzA5OTQ0LCAwLjM2ODU4NiwgMC44OTY4NjgsIDEuNzgxNzMsIDIuNjY4MDEsIDQuNzE1OCwgNS45MTYwMSIsIFwKLSAgICAgICAgICAiMC4zMTAxOTEsIDAuMzY4ODkzLCAwLjg5NzA3OCwgMS43ODE3NCwgMi42NzAyNywgNC43Mjg1MSwgNS45MTY4MiIsIFwKLSAgICAgICAgICAiMC4zMDk4NjMsIDAuMzY4NTgxLCAwLjg5NzUwNCwgMS43ODE2NiwgMi42NjcxNiwgNC43MzAwNCwgNS45MTgxMyIsIFwKLSAgICAgICAgICAiMC4zMDkyNjYsIDAuMzY4MzYxLCAwLjg5Nzc4MiwgMS43ODE1LCAyLjY2ODM4LCA0LjcxNzI5LCA1Ljg5NjgzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiBwcmVzZXQ7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIyMTYwNiwgMC4yNDY5NzcsIDAuNDc0OTI0LCAwLjg1NDgxMywgMS4yMzM3MiwgMi4xMTg4LCAyLjYyNjQ3IiwgXAotICAgICAgICAgICIwLjIzMzIxMiwgMC4yNTg0NzcsIDAuNDg2MzcxLCAwLjg2NjI0NiwgMS4yNDU2MSwgMi4xMzAwMiwgMi42MzY3MiIsIFwKLSAgICAgICAgICAiMC4yNDc5NDQsIDAuMjczMTg3LCAwLjUwMTAxNCwgMC44ODExMjUsIDEuMjU5NzMsIDIuMTQ3MTUsIDIuNjUxMDkiLCBcCi0gICAgICAgICAgIjAuMjYyODEyLCAwLjI4ODExOCwgMC41MTU1NjIsIDAuODk2MDY3LCAxLjI3NDgsIDIuMTU5ODksIDIuNjY3ODUiLCBcCi0gICAgICAgICAgIjAuMjc3NDkyLCAwLjMwMjc0MSwgMC41MzA2ODUsIDAuOTEwNTIxLCAxLjI4OTY1LCAyLjE3NjY0LCAyLjY4MjI3IiwgXAotICAgICAgICAgICIwLjMwMDM3NywgMC4zMjU2NDIsIDAuNTUzMjk5LCAwLjkzMzI5MywgMS4zMTI0OCwgMi4xOTc1OSwgMi43MDQ2MiIsIFwKLSAgICAgICAgICAiMC4zMTg5NiwgMC4zNDQxOTYsIDAuNTcxODg4LCAwLjk1MTgxNCwgMS4zMzA1NSwgMi4yMTU1NSwgMi43MjE1OCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yNzAyODYsIDAuMzIxMzc3LCAwLjc4OTI3MiwgMS41NjU5MywgMi4zNDY3MywgNC4xNjg4NSwgNS4xOTE3NiIsIFwKLSAgICAgICAgICAiMC4yNzA1MzYsIDAuMzIyMDU0LCAwLjc4OTMwOSwgMS41NjYwNSwgMi4zNDY3MywgNC4xNjg5MiwgNS4xOTI0MiIsIFwKLSAgICAgICAgICAiMC4yNzAzNDYsIDAuMzIyMjE2LCAwLjc4Mzk0LCAxLjU2NzYsIDIuMzQ2NTYsIDQuMTY5MDEsIDUuMTc4NCIsIFwKLSAgICAgICAgICAiMC4yNzAyNzQsIDAuMzIyNDQxLCAwLjc4NjU0LCAxLjU2NTU1LCAyLjM0NjcyLCA0LjE2ODc4LCA1LjE4OTQ0IiwgXAotICAgICAgICAgICIwLjI3MDM3OSwgMC4zMjE2OTcsIDAuNzg2MzEsIDEuNTY1MjQsIDIuMzQ2MzgsIDQuMTY4ODIsIDUuMTc4OTkiLCBcCi0gICAgICAgICAgIjAuMjcwMjc4LCAwLjMyMTM3MywgMC43ODc0MDMsIDEuNTY0NzEsIDIuMzQ2MDMsIDQuMTY5MDYsIDUuMTc4OTMiLCBcCi0gICAgICAgICAgIjAuMjcwNTA5LCAwLjMyMDMxNiwgMC43OTAyOTMsIDEuNTY3MjYsIDIuMzQ1OTIsIDQuMTY5MDksIDUuMTc4NjgiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzAzOTMsIDAuMzMzNjM1LCAwLjYwMjQ5MiwgMS4wNTA1NiwgMS40OTU2OCwgMi41Mzk5MiwgMy4xMjU3IiwgXAotICAgICAgICAgICIwLjMxNTI3MywgMC4zNDUwNDgsIDAuNjEzOTA4LCAxLjA2MTk4LCAxLjUwNzE2LCAyLjU0OTAzLCAzLjEzNzEzIiwgXAotICAgICAgICAgICIwLjMyODkwOSwgMC4zNTg0LCAwLjYyNzIxOCwgMS4wNzM2NywgMS41MTgwMSwgMi41NTkxNywgMy4xNTMzNSIsIFwKLSAgICAgICAgICAiMC4zNDIxNzMsIDAuMzcyMDUsIDAuNjQwNzE0LCAxLjA4NDU1LCAxLjUzMDY5LCAyLjU2OTkxLCAzLjE2NTkiLCBcCi0gICAgICAgICAgIjAuMzU1NzE4LCAwLjM4NTQxNywgMC42NTQyNTgsIDEuMDk4NjUsIDEuNTQ4MzEsIDIuNTk0MzEsIDMuMTg3MiIsIFwKLSAgICAgICAgICAiMC4zNzc0MzcsIDAuNDA3MjQ3LCAwLjY3NjExLCAxLjEyMDMxLCAxLjU2OTcyLCAyLjYwNTgyLCAzLjE5OTU0IiwgXAotICAgICAgICAgICIwLjM5NjM5MSwgMC40MjU4NDksIDAuNjk0NzYzLCAxLjEzODc3LCAxLjU4NjcyLCAyLjYyNzQ1LCAzLjIxNzY0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMwOTczMSwgMC4zNjgzNjQsIDAuODk4MjQ1LCAxLjc4MzY5LCAyLjY2NjQ5LCA0LjczMTU3LCA1Ljg5MTkxIiwgXAotICAgICAgICAgICIwLjMxMDMwMiwgMC4zNjg1NTQsIDAuODk3MzQ5LCAxLjc4NDk4LCAyLjY2OTM2LCA0LjczODQ4LCA1LjkwODA0IiwgXAotICAgICAgICAgICIwLjMxMDA5OSwgMC4zNjg2MTEsIDAuODk3OTU1LCAxLjc4NDk3LCAyLjY2OTk1LCA0LjczODM3LCA1Ljg4OTgiLCBcCi0gICAgICAgICAgIjAuMzA5ODU2LCAwLjM2OTA2LCAwLjg5NTk5MSwgMS43Nzg3NywgMi42NjgzMywgNC43MjkyOSwgNS44OTE0MiIsIFwKLSAgICAgICAgICAiMC4zMDk1NzMsIDAuMzY4NTk2LCAwLjg5Njc0OSwgMS43ODM5OSwgMi42NzAxOCwgNC43MzU0LCA1LjkxOTIiLCBcCi0gICAgICAgICAgIjAuMzA5OTEyLCAwLjM2ODU4MSwgMC44OTczMDksIDEuNzgyMDEsIDIuNjY4NjcsIDQuNzI5OTgsIDUuOTA3OTIiLCBcCi0gICAgICAgICAgIjAuMzA5OTA5LCAwLjM2ODU3NCwgMC44OTcyMzIsIDEuNzgxNzgsIDIuNjcxMzYsIDQuNzM5MzUsIDUuOTA5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxNzQzLCAwLjAwMTc0MywgMC4wMDE3NDYsIDAuMDAxNzQ2LCAwLjAwMTc0NiwgMC4wMDE3NDcsIDAuMDAxNzQ3IiwgXAotICAgICAgICAgICIwLjAwMTczNywgMC4wMDE3MzgsIDAuMDAxNzQsIDAuMDAxNzQxLCAwLjAwMTc0MSwgMC4wMDE3NDEsIDAuMDAxNzQxIiwgXAotICAgICAgICAgICIwLjAwMTczNCwgMC4wMDE3MzQsIDAuMDAxNzM3LCAwLjAwMTczNywgMC4wMDE3MzgsIDAuMDAxNzM4LCAwLjAwMTczOCIsIFwKLSAgICAgICAgICAiMC4wMDE3MzEsIDAuMDAxNzMyLCAwLjAwMTczNCwgMC4wMDE3MzUsIDAuMDAxNzM1LCAwLjAwMTczNSwgMC4wMDE3MzYiLCBcCi0gICAgICAgICAgIjAuMDAxNzI5LCAwLjAwMTczLCAwLjAwMTczMiwgMC4wMDE3MzMsIDAuMDAxNzMzLCAwLjAwMTczMywgMC4wMDE3MzMiLCBcCi0gICAgICAgICAgIjAuMDAxNzI3LCAwLjAwMTcyOCwgMC4wMDE3MywgMC4wMDE3MzEsIDAuMDAxNzMxLCAwLjAwMTczMSwgMC4wMDE3MzEiLCBcCi0gICAgICAgICAgIjAuMDAxNzI0LCAwLjAwMTcyNSwgMC4wMDE3MjcsIDAuMDAxNzI4LCAwLjAwMTcyOCwgMC4wMDE3MjgsIDAuMDAxNzI4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyMTYxLCAwLjAwMjE2MiwgMC4wMDIxNjUsIDAuMDAyMTY2LCAwLjAwMjE2NiwgMC4wMDIxNjYsIDAuMDAyMTY2IiwgXAotICAgICAgICAgICIwLjAwMjE1OCwgMC4wMDIxNTksIDAuMDAyMTYxLCAwLjAwMjE2MiwgMC4wMDIxNjMsIDAuMDAyMTYzLCAwLjAwMjE2MyIsIFwKLSAgICAgICAgICAiMC4wMDIxNTYsIDAuMDAyMTU3LCAwLjAwMjE2LCAwLjAwMjE2MSwgMC4wMDIxNjEsIDAuMDAyMTYxLCAwLjAwMjE2MSIsIFwKLSAgICAgICAgICAiMC4wMDIxNTUsIDAuMDAyMTU2LCAwLjAwMjE1OCwgMC4wMDIxNTksIDAuMDAyMTU5LCAwLjAwMjE2LCAwLjAwMjE2IiwgXAotICAgICAgICAgICIwLjAwMjE1NCwgMC4wMDIxNTQsIDAuMDAyMTU3LCAwLjAwMjE1OCwgMC4wMDIxNTgsIDAuMDAyMTU4LCAwLjAwMjE1OSIsIFwKLSAgICAgICAgICAiMC4wMDIxNTIsIDAuMDAyMTUyLCAwLjAwMjE1NSwgMC4wMDIxNTYsIDAuMDAyMTU2LCAwLjAwMjE1NywgMC4wMDIxNTciLCBcCi0gICAgICAgICAgIjAuMDAyMTUxLCAwLjAwMjE1MiwgMC4wMDIxNTQsIDAuMDAyMTU1LCAwLjAwMjE1NSwgMC4wMDIxNTYsIDAuMDAyMTU2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiR04iOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzI5MiwgMC4wMDMyOTIsIDAuMDAzMjk0LCAwLjAwMzI5NSwgMC4wMDMyOTYsIDAuMDAzMjk1LCAwLjAwMzI5NSIsIFwKLSAgICAgICAgICAiMC4wMDMyODQsIDAuMDAzMjg1LCAwLjAwMzI4NywgMC4wMDMyODcsIDAuMDAzMjg4LCAwLjAwMzI4OSwgMC4wMDMyODgiLCBcCi0gICAgICAgICAgIjAuMDAzMjc3LCAwLjAwMzI3OCwgMC4wMDMyOCwgMC4wMDMyODEsIDAuMDAzMjgxLCAwLjAwMzI4MSwgMC4wMDMyODEiLCBcCi0gICAgICAgICAgIjAuMDAzMjc0LCAwLjAwMzI3NCwgMC4wMDMyNzYsIDAuMDAzMjc3LCAwLjAwMzI3OCwgMC4wMDMyNzgsIDAuMDAzMjc4IiwgXAotICAgICAgICAgICIwLjAwMzI3MiwgMC4wMDMyNzIsIDAuMDAzMjc0LCAwLjAwMzI3NSwgMC4wMDMyNzUsIDAuMDAzMjc2LCAwLjAwMzI3NiIsIFwKLSAgICAgICAgICAiMC4wMDMyNywgMC4wMDMyNzEsIDAuMDAzMjczLCAwLjAwMzI3MywgMC4wMDMyNzQsIDAuMDAzMjc0LCAwLjAwMzI3NCIsIFwKLSAgICAgICAgICAiMC4wMDMyNjgsIDAuMDAzMjY5LCAwLjAwMzI3MSwgMC4wMDMyNzIsIDAuMDAzMjcyLCAwLjAwMzI3MiwgMC4wMDMyNzIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDM2MzgsIDAuMDAzNjM5LCAwLjAwMzY0MSwgMC4wMDM2NDIsIDAuMDAzNjQyLCAwLjAwMzY0MiwgMC4wMDM2NDMiLCBcCi0gICAgICAgICAgIjAuMDAzNjMsIDAuMDAzNjMsIDAuMDAzNjMzLCAwLjAwMzYzNCwgMC4wMDM2MzQsIDAuMDAzNjM0LCAwLjAwMzYzNCIsIFwKLSAgICAgICAgICAiMC4wMDM2MjMsIDAuMDAzNjI0LCAwLjAwMzYyNiwgMC4wMDM2MjcsIDAuMDAzNjI3LCAwLjAwMzYyOCwgMC4wMDM2MjgiLCBcCi0gICAgICAgICAgIjAuMDAzNjIsIDAuMDAzNjIxLCAwLjAwMzYyMywgMC4wMDM2MjQsIDAuMDAzNjI0LCAwLjAwMzYyNCwgMC4wMDM2MjQiLCBcCi0gICAgICAgICAgIjAuMDAzNjE3LCAwLjAwMzYxOCwgMC4wMDM2MjEsIDAuMDAzNjIxLCAwLjAwMzYyMiwgMC4wMDM2MjIsIDAuMDAzNjIyIiwgXAotICAgICAgICAgICIwLjAwMzYxNSwgMC4wMDM2MTYsIDAuMDAzNjE4LCAwLjAwMzYxOSwgMC4wMDM2MTksIDAuMDAzNjIsIDAuMDAzNjIiLCBcCi0gICAgICAgICAgIjAuMDAzNjEzLCAwLjAwMzYxNCwgMC4wMDM2MTYsIDAuMDAzNjE3LCAwLjAwMzYxNywgMC4wMDM2MTcsIDAuMDAzNjE3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUk4iOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjYyMywgMC4wMDI2MjMsIDAuMDAyNjI2LCAwLjAwMjYyNiwgMC4wMDI2MjcsIDAuMDAyNjI3LCAwLjAwMjYyNyIsIFwKLSAgICAgICAgICAiMC4wMDI2MTYsIDAuMDAyNjE3LCAwLjAwMjYxOSwgMC4wMDI2MTksIDAuMDAyNjIsIDAuMDAyNjIsIDAuMDAyNjIiLCBcCi0gICAgICAgICAgIjAuMDAyNjEsIDAuMDAyNjExLCAwLjAwMjYxMywgMC4wMDI2MTQsIDAuMDAyNjE0LCAwLjAwMjYxNCwgMC4wMDI2MTQiLCBcCi0gICAgICAgICAgIjAuMDAyNjA4LCAwLjAwMjYwOCwgMC4wMDI2MTEsIDAuMDAyNjExLCAwLjAwMjYxMiwgMC4wMDI2MTIsIDAuMDAyNjEyIiwgXAotICAgICAgICAgICIwLjAwMjYwNiwgMC4wMDI2MDYsIDAuMDAyNjA5LCAwLjAwMjYwOSwgMC4wMDI2MSwgMC4wMDI2MSwgMC4wMDI2MSIsIFwKLSAgICAgICAgICAiMC4wMDI2MDQsIDAuMDAyNjA0LCAwLjAwMjYwNywgMC4wMDI2MDcsIDAuMDAyNjA4LCAwLjAwMjYwOCwgMC4wMDI2MDgiLCBcCi0gICAgICAgICAgIjAuMDAyNjAyLCAwLjAwMjYwMiwgMC4wMDI2MDQsIDAuMDAyNjA1LCAwLjAwMjYwNiwgMC4wMDI2MDYsIDAuMDAyNjA2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzMjIxLCAwLjAwMzIyMSwgMC4wMDMyMjQsIDAuMDAzMjI1LCAwLjAwMzIyNSwgMC4wMDMyMjUsIDAuMDAzMjI1IiwgXAotICAgICAgICAgICIwLjAwMzIxNCwgMC4wMDMyMTQsIDAuMDAzMjE3LCAwLjAwMzIxNywgMC4wMDMyMTgsIDAuMDAzMjE4LCAwLjAwMzIxNyIsIFwKLSAgICAgICAgICAiMC4wMDMyMDksIDAuMDAzMjA5LCAwLjAwMzIxMiwgMC4wMDMyMTIsIDAuMDAzMjEzLCAwLjAwMzIxMywgMC4wMDMyMTMiLCBcCi0gICAgICAgICAgIjAuMDAzMjA0LCAwLjAwMzIwNSwgMC4wMDMyMDgsIDAuMDAzMjA4LCAwLjAwMzIwOSwgMC4wMDMyMDksIDAuMDAzMjA5IiwgXAotICAgICAgICAgICIwLjAwMzIwMiwgMC4wMDMyMDMsIDAuMDAzMjA1LCAwLjAwMzIwNiwgMC4wMDMyMDYsIDAuMDAzMjA3LCAwLjAwMzIwNyIsIFwKLSAgICAgICAgICAiMC4wMDMyLCAwLjAwMzIsIDAuMDAzMjAzLCAwLjAwMzIwNCwgMC4wMDMyMDQsIDAuMDAzMjA0LCAwLjAwMzIwNCIsIFwKLSAgICAgICAgICAiMC4wMDMxOTcsIDAuMDAzMTk4LCAwLjAwMzIwMSwgMC4wMDMyMDEsIDAuMDAzMjAyLCAwLjAwMzIwMiwgMC4wMDMyMDIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyMDcxLCAwLjAwMjA3MiwgMC4wMDIwNzMsIDAuMDAyMDc0LCAwLjAwMjA3NCwgMC4wMDIwNzQsIDAuMDAyMDc0IiwgXAotICAgICAgICAgICIwLjAwMjA2NywgMC4wMDIwNjcsIDAuMDAyMDY4LCAwLjAwMjA2OSwgMC4wMDIwNjksIDAuMDAyMDcsIDAuMDAyMDciLCBcCi0gICAgICAgICAgIjAuMDAyMDYxLCAwLjAwMjA2MSwgMC4wMDIwNjMsIDAuMDAyMDYzLCAwLjAwMjA2MywgMC4wMDIwNjQsIDAuMDAyMDY0IiwgXAotICAgICAgICAgICIwLjAwMjA1NSwgMC4wMDIwNTUsIDAuMDAyMDU3LCAwLjAwMjA1OCwgMC4wMDIwNTgsIDAuMDAyMDU4LCAwLjAwMjA1OSIsIFwKLSAgICAgICAgICAiMC4wMDIwNDksIDAuMDAyMDUsIDAuMDAyMDUyLCAwLjAwMjA1MywgMC4wMDIwNTMsIDAuMDAyMDUzLCAwLjAwMjA1MyIsIFwKLSAgICAgICAgICAiMC4wMDIwNDMsIDAuMDAyMDQ0LCAwLjAwMjA0NiwgMC4wMDIwNDcsIDAuMDAyMDQ4LCAwLjAwMjA0OCwgMC4wMDIwNDgiLCBcCi0gICAgICAgICAgIjAuMDAyMDQsIDAuMDAyMDQsIDAuMDAyMDQzLCAwLjAwMjA0NCwgMC4wMDIwNDUsIDAuMDAyMDQ2LCAwLjAwMjA0NSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTI0MywgMC4wMDEyNDQsIDAuMDAxMjQ2LCAwLjAwMTI0NiwgMC4wMDEyNDcsIDAuMDAxMjQ3LCAwLjAwMTI0NyIsIFwKLSAgICAgICAgICAiMC4wMDEyMzcsIDAuMDAxMjM4LCAwLjAwMTI0LCAwLjAwMTI0MSwgMC4wMDEyNDEsIDAuMDAxMjQxLCAwLjAwMTI0MSIsIFwKLSAgICAgICAgICAiMC4wMDEyMzMsIDAuMDAxMjM0LCAwLjAwMTIzNiwgMC4wMDEyMzcsIDAuMDAxMjM3LCAwLjAwMTIzNywgMC4wMDEyMzciLCBcCi0gICAgICAgICAgIjAuMDAxMjMsIDAuMDAxMjMxLCAwLjAwMTIzMywgMC4wMDEyMzQsIDAuMDAxMjM0LCAwLjAwMTIzNCwgMC4wMDEyMzQiLCBcCi0gICAgICAgICAgIjAuMDAxMjI4LCAwLjAwMTIyOSwgMC4wMDEyMzEsIDAuMDAxMjMyLCAwLjAwMTIzMiwgMC4wMDEyMzIsIDAuMDAxMjMyIiwgXAotICAgICAgICAgICIwLjAwMTIyNiwgMC4wMDEyMjcsIDAuMDAxMjI5LCAwLjAwMTIzLCAwLjAwMTIzMSwgMC4wMDEyMzEsIDAuMDAxMjMxIiwgXAotICAgICAgICAgICIwLjAwMTIyNCwgMC4wMDEyMjUsIDAuMDAxMjI3LCAwLjAwMTIyOCwgMC4wMDEyMjgsIDAuMDAxMjI5LCAwLjAwMTIyOSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUU4pICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4wNzA1MjgxOwotICAgIGZ1bmN0aW9uIDogIk41IjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJEIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zNTM1ODMsIDAuMzc4OTUsIDAuNjA2MjYsIDAuOTg1MDA1LCAxLjM2Mzc5LCAyLjI0NzE5LCAyLjc1MjE3IiwgXAotICAgICAgICAgICIwLjM2NDg0NywgMC4zOTAyMTQsIDAuNjE3NTIsIDAuOTk2MzAxLCAxLjM3NSwgMi4yNTg0NiwgMi43NjMzNSIsIFwKLSAgICAgICAgICAiMC4zNzc2NywgMC40MDMwMzYsIDAuNjMwMzQ1LCAxLjAwOTA5LCAxLjM4Nzk5LCAyLjI3MTQ2LCAyLjc3NjI0IiwgXAotICAgICAgICAgICIwLjM4OTg4OSwgMC40MTUyNTgsIDAuNjQyNTY0LCAxLjAyMTM1LCAxLjQwMDEsIDIuMjgzNzIsIDIuNzg4NDIiLCBcCi0gICAgICAgICAgIjAuNDAyMTM0LCAwLjQyNzUwNywgMC42NTQ4MTQsIDEuMDMzNiwgMS40MTIyOCwgMi4yOTU3MSwgMi44MDA2OSIsIFwKLSAgICAgICAgICAiMC40MjA5NzYsIDAuNDQ2MzQ5LCAwLjY3MzY1OCwgMS4wNTI0LCAxLjQzMTIsIDIuMzE0NTksIDIuODE5NTUiLCBcCi0gICAgICAgICAgIjAuNDM3MTk1LCAwLjQ2MjU3OSwgMC42ODk4ODcsIDEuMDY4NjcsIDEuNDQ3MzMsIDIuMzMwNzksIDIuODM1NzMiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjgyMDY4LCAwLjMzMTU1NiwgMC43ODc0MSwgMS41NTU5NSwgMi4zMjU5MSwgNC4xMjA5OSwgNS4xNDEzNiIsIFwKLSAgICAgICAgICAiMC4yODIwNzcsIDAuMzMxNTUzLCAwLjc4NzM4MywgMS41NTQ3OSwgMi4zMjU2NCwgNC4xMjA5NywgNS4xNDEyMSIsIFwKLSAgICAgICAgICAiMC4yODE5NDcsIDAuMzMxNTc1LCAwLjc4NzQwNywgMS41NTU5MywgMi4zMTk1LCA0LjEyMTM1LCA1LjE0MTI4IiwgXAotICAgICAgICAgICIwLjI4MjA1OCwgMC4zMzE1NjgsIDAuNzg3MzksIDEuNTUyOTUsIDIuMzIwNTgsIDQuMTIxMzMsIDUuMTQwODkiLCBcCi0gICAgICAgICAgIjAuMjgyMTE0LCAwLjMzMTU1LCAwLjc4NzQwMywgMS41NTMxNSwgMi4zMjU2MiwgNC4xMjA3MSwgNS4xNDEyNiIsIFwKLSAgICAgICAgICAiMC4yODIxMzQsIDAuMzMxNTY3LCAwLjc4NzQxMiwgMS41NTU5NCwgMi4zMjU5NCwgNC4xMjA5OSwgNS4xNDE0MiIsIFwKLSAgICAgICAgICAiMC4yODIxMTIsIDAuMzMxNTM0LCAwLjc4NzM4MSwgMS41NTUsIDIuMzI1NDYsIDQuMTIwNzMsIDUuMTQxMzciKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzI2MTc5LCAwLjM1NTkxMiwgMC42MjMyOTQsIDEuMDY4NzQsIDEuNTE0MTgsIDIuNTUzNTUsIDMuMTQ3NjYiLCBcCi0gICAgICAgICAgIjAuMzM3Nzk5LCAwLjM2NzUzNiwgMC42MzQ5NjYsIDEuMDgwMzksIDEuNTI1ODUsIDIuNTY1NDYsIDMuMTU5NDUiLCBcCi0gICAgICAgICAgIjAuMzUxNTk5LCAwLjM4MTMyNiwgMC42NDg3NTIsIDEuMDk0MTcsIDEuNTM5NjEsIDIuNTc5MDcsIDMuMTczMzEiLCBcCi0gICAgICAgICAgIjAuMzY1MjIyLCAwLjM5NDk3MiwgMC42NjIzOTQsIDEuMTA3ODEsIDEuNTUzMjYsIDIuNTkyNjMsIDMuMTg2OTciLCBcCi0gICAgICAgICAgIjAuMzc4Nzg1LCAwLjQwODUzOCwgMC42NzU5NjMsIDEuMTIxMzgsIDEuNTY2ODIsIDIuNjA2MzEsIDMuMjAwNTIiLCBcCi0gICAgICAgICAgIjAuNDAwNjY1LCAwLjQzMDM5NiwgMC42OTc4MTYsIDEuMTQzMjMsIDEuNTg4NzMsIDIuNjI4MjIsIDMuMjIyMTIiLCBcCi0gICAgICAgICAgIjAuNDE5Mzg3LCAwLjQ0OTExNiwgMC43MTY1MjgsIDEuMTYxOTUsIDEuNjA3MzksIDIuNjQ2NzQsIDMuMjQwODUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzEzMTAxLCAwLjM3MDk2NywgMC44OTk1ODQsIDEuNzgxMiwgMi42NjI0NCwgNC43MTgxNCwgNS44OTEzIiwgXAotICAgICAgICAgICIwLjMxMzE1MSwgMC4zNzE1NTMsIDAuODk4NzQyLCAxLjc4MTI2LCAyLjY2MzA0LCA0LjcyMTI5LCA1Ljg5NDIxIiwgXAotICAgICAgICAgICIwLjMxMzEzMywgMC4zNzEwNDUsIDAuODk4NzA3LCAxLjc4MTIsIDIuNjYyNDgsIDQuNzIwMSwgNS44OTAxMiIsIFwKLSAgICAgICAgICAiMC4zMTI2NzQsIDAuMzcxNDkyLCAwLjg5ODgyLCAxLjc4MTE4LCAyLjY2Mjk2LCA0LjcxOTkyLCA1Ljg4ODUxIiwgXAotICAgICAgICAgICIwLjMxMjY2NCwgMC4zNzE1MDUsIDAuODk4NjksIDEuNzgxMTksIDIuNjYyOTYsIDQuNzIwMDUsIDUuODkwMTEiLCBcCi0gICAgICAgICAgIjAuMzEyNzkxLCAwLjM3MDk4OSwgMC44OTg2ODYsIDEuNzgxMiwgMi42NjI2NCwgNC43MjAwNSwgNS44OTExMiIsIFwKLSAgICAgICAgICAiMC4zMTMxMjQsIDAuMzcxMDUxLCAwLjg5OTYzOSwgMS43ODEwOSwgMi42NjI0NSwgNC43MTg0OCwgNS44ODk3NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJHTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBub25fdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGZhbGxpbmdfZWRnZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuNDU4MjM0LCAwLjQ4MzYxMywgMC43MTA5MzMsIDEuMDg5NjksIDEuNDY4MzksIDIuMzUxOTIsIDIuODU2NzciLCBcCi0gICAgICAgICAgIjAuNDY5Njk3LCAwLjQ5NTA4NCwgMC43MjIzOTYsIDEuMTAxMTYsIDEuNDc5ODYsIDIuMzYzNCwgMi44Njg0MSIsIFwKLSAgICAgICAgICAiMC40ODM4MjUsIDAuNTA5MjExLCAwLjczNjUyMiwgMS4xMTUyOCwgMS40OTM5OSwgMi4zNzc1MiwgMi44ODI2MSIsIFwKLSAgICAgICAgICAiMC40OTc1NzEsIDAuNTIyOTUyLCAwLjc1MDI1NiwgMS4xMjkwMiwgMS41MDc3LCAyLjM5MTE2LCAyLjg5NjEiLCBcCi0gICAgICAgICAgIjAuNTA5NTMzLCAwLjUzNDkxNCwgMC43NjIyNTQsIDEuMTQwOTgsIDEuNTE5NjksIDIuNDAzMjIsIDIuOTA4IiwgXAotICAgICAgICAgICIwLjUyNjY3LCAwLjU1MjA1MSwgMC43NzkzNDgsIDEuMTU4MTIsIDEuNTM2ODIsIDIuNDIwMzYsIDIuOTI1MiIsIFwKLSAgICAgICAgICAiMC41Mzk3NzMsIDAuNTY1MTU0LCAwLjc5MjQ4LCAxLjE3MTIyLCAxLjU0OTkzLCAyLjQzMzQ1LCAyLjkzODI1Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI4MjY3OSwgMC4zMzIwMDQsIDAuNzg2NDM0LCAxLjU1NTYyLCAyLjMyNTY1LCA0LjEyMTQ1LCA1LjE0MTM0IiwgXAotICAgICAgICAgICIwLjI4MjY2MiwgMC4zMzIwMjEsIDAuNzg3NTEyLCAxLjU1NTU5LCAyLjMyNTY1LCA0LjEyMTQ2LCA1LjEzNjc4IiwgXAotICAgICAgICAgICIwLjI4MjY0LCAwLjMzMjAwMywgMC43ODc1MDIsIDEuNTU1NTUsIDIuMzI1NjEsIDQuMTIxMzksIDUuMTQwNjkiLCBcCi0gICAgICAgICAgIjAuMjgyNjgxLCAwLjMzMjAwNiwgMC43ODc0NjksIDEuNTU1NTcsIDIuMzI1NDgsIDQuMTIwMjIsIDUuMTQxMjMiLCBcCi0gICAgICAgICAgIjAuMjgyNjkyLCAwLjMzMjAwMywgMC43ODc3NDQsIDEuNTU1NTMsIDIuMzI1NiwgNC4xMjEzMiwgNS4xMzc1OSIsIFwKLSAgICAgICAgICAiMC4yODI3MSwgMC4zMzIwMjEsIDAuNzg3NDAzLCAxLjU1NTUyLCAyLjMyNTU4LCA0LjEyMTMyLCA1LjE0MTIiLCBcCi0gICAgICAgICAgIjAuMjgyNjkxLCAwLjMzMjAwNiwgMC43ODc2NjMsIDEuNTU1NTEsIDIuMzI1NTksIDQuMTIxMjgsIDUuMTM4MTEiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuNDYzOTAzLCAwLjQ5MzYzMywgMC43NjEwNiwgMS4yMDY0OCwgMS42NTE5MywgMi42OTEzMiwgMy4yODU1OSIsIFwKLSAgICAgICAgICAiMC40NzU1NDIsIDAuNTA1MjcxLCAwLjc3MjY5MiwgMS4yMTgxMiwgMS42NjM1NywgMi43MDMxLCAzLjI5Njc3IiwgXAotICAgICAgICAgICIwLjQ4OTU2OCwgMC41MTkyOTYsIDAuNzg2NzE2LCAxLjIzMjE1LCAxLjY3NzYsIDIuNzE3MTMsIDMuMzEwNzkiLCBcCi0gICAgICAgICAgIjAuNTAzMTkyLCAwLjUzMjkyMywgMC44MDAzNDcsIDEuMjQ1NzYsIDEuNjkxMjEsIDIuNzMwNzEsIDMuMzI0OSIsIFwKLSAgICAgICAgICAiMC41MTUyNzUsIDAuNTQ1MDAxLCAwLjgxMjQyNCwgMS4yNTc4NSwgMS43MDMyNiwgMi43NDI4MywgMy4zMzY2MSIsIFwKLSAgICAgICAgICAiMC41MzI0ODIsIDAuNTYyMjEzLCAwLjgyOTYzMiwgMS4yNzUwNiwgMS43MjA1MSwgMi43NjAwNCwgMy4zNTM3MSIsIFwKLSAgICAgICAgICAiMC41NDU2NiwgMC41NzUzOCwgMC44NDI4MTMsIDEuMjg4MjMsIDEuNzMzNjcsIDIuNzczMDcsIDMuMzY3MzgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzEzMTgxLCAwLjM3MTA4OCwgMC44OTg3MTUsIDEuNzgxMjIsIDIuNjYyOTksIDQuNzE3MjQsIDUuODkxNjUiLCBcCi0gICAgICAgICAgIjAuMzEzMTgsIDAuMzcxMDk3LCAwLjg5ODgzNSwgMS43ODEyMywgMi42NjE1NSwgNC43MjAwNiwgNS44OTM3NiIsIFwKLSAgICAgICAgICAiMC4zMTMxNzgsIDAuMzcxMDk3LCAwLjg5ODgzNCwgMS43ODExNSwgMi42NjE0OSwgNC43MjAwNiwgNS44OTM3NSIsIFwKLSAgICAgICAgICAiMC4zMTMxNzgsIDAuMzcxMDY4LCAwLjg5ODc2LCAxLjc4MTIsIDIuNjYyOTYsIDQuNzIwMDYsIDUuODkwNjgiLCBcCi0gICAgICAgICAgIjAuMzEzMTcsIDAuMzcxNDg1LCAwLjg5ODgzNSwgMS43ODExNCwgMi42NjI0NSwgNC43MjAwNiwgNS44OTM4NiIsIFwKLSAgICAgICAgICAiMC4zMTMxODUsIDAuMzcxMDE1LCAwLjg5ODgzMywgMS43ODExNSwgMi42NjE0OCwgNC43MjAwNiwgNS44OTM3NSIsIFwKLSAgICAgICAgICAiMC4zMTMxNTcsIDAuMzcxNDIyLCAwLjg5ODc3OSwgMS43ODExOSwgMi42NjI5NSwgNC43MTk5OCwgNS44ODk1NiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcmlzaW5nX2VkZ2U7Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjQ0NTU5MywgMC40NzUzMjMsIDAuNzQyNzQ1LCAxLjE4ODIyLCAxLjYzMzY1LCAyLjY3MzE1LCAzLjI2Njc5IiwgXAotICAgICAgICAgICIwLjQ1NzA1LCAwLjQ4Njc5NCwgMC43NTQyMDEsIDEuMTk5NjEsIDEuNjQ1MDUsIDIuNjg0NDQsIDMuMjc4NSIsIFwKLSAgICAgICAgICAiMC40NzAzOTQsIDAuNTAwMTI2LCAwLjc2NzU0OCwgMS4yMTI5NiwgMS42NTg0MSwgMi42OTc4NCwgMy4yOTIxMSIsIFwKLSAgICAgICAgICAiMC40ODQxNzIsIDAuNTEzOTA0LCAwLjc4MTMyNCwgMS4yMjY4NSwgMS42NzIyMiwgMi43MTE3NCwgMy4zMDUzOSIsIFwKLSAgICAgICAgICAiMC40OTc3NzksIDAuNTI3NTEzLCAwLjc5NDkyMiwgMS4yNDAzNSwgMS42ODU3OSwgMi43MjUxMiwgMy4zMTk1MSIsIFwKLSAgICAgICAgICAiMC41MTk2MjUsIDAuNTQ5MzU2LCAwLjgxNjc3NiwgMS4yNjIzMSwgMS43MDc2NywgMi43NDcxOSwgMy4zNDA4NSIsIFwKLSAgICAgICAgICAiMC41Mzc5ODgsIDAuNTY3NzE0LCAwLjgzNTE1NiwgMS4yODA1NCwgMS43MjU5OCwgMi43NjUzOSwgMy4zNTk0MiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMTMxODIsIDAuMzcxMDQ5LCAwLjg5ODg0NCwgMS43ODEzNSwgMi42NjAzOSwgNC43MjAwNywgNS44OTM3MyIsIFwKLSAgICAgICAgICAiMC4zMTMxNjksIDAuMzcxNTc3LCAwLjg5ODg2LCAxLjc4MTE3LCAyLjY2MjkzLCA0LjcxNzM5LCA1Ljg4OTI1IiwgXAotICAgICAgICAgICIwLjMxMzE3OCwgMC4zNzA5NTQsIDAuODk4Nzc5LCAxLjc4MTExLCAyLjY2Mjk2LCA0LjcyMDA2LCA1Ljg5MDA4IiwgXAotICAgICAgICAgICIwLjMxMzE4NiwgMC4zNzEwMDgsIDAuODk4ODMzLCAxLjc4MTUsIDIuNjYxNDQsIDQuNzIwMDYsIDUuODkzNzMiLCBcCi0gICAgICAgICAgIjAuMzEzMTc3LCAwLjM3MTA1NiwgMC44OTg5MDcsIDEuNzgxMSwgMi42NjI4MSwgNC43MTk4MSwgNS44OTAzNCIsIFwKLSAgICAgICAgICAiMC4zMTMxODYsIDAuMzcxMDE0LCAwLjg5ODgzNCwgMS43NzkzMSwgMi42NjE0NCwgNC43MjAwNiwgNS44OTM3NCIsIFwKLSAgICAgICAgICAiMC4zMTI4NTcsIDAuMzcxMDM5LCAwLjg5ODc0MywgMS43ODEwOCwgMi42NjI5NCwgNC43MTY5NCwgNS44OTEyNCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogZmFsbGluZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC40MzI2NjMsIDAuNDU4MDM1LCAwLjY4NTM2NSwgMS4wNjQxLCAxLjQ0Mjc4LCAyLjMyNjMyLCAyLjgzMTM5IiwgXAotICAgICAgICAgICIwLjQ0NDE0OSwgMC40Njk1MTgsIDAuNjk2ODUzLCAxLjA3NTY5LCAxLjQ1NDI1LCAyLjMzNzg3LCAyLjg0MjciLCBcCi0gICAgICAgICAgIjAuNDU4ODM0LCAwLjQ4NDE4LCAwLjcxMTUxMywgMS4wOTAyNCwgMS40Njg5MywgMi4zNTI2NywgMi44NTczNiIsIFwKLSAgICAgICAgICAiMC40NzMzOTMsIDAuNDk4NzQ5LCAwLjcyNjA3NiwgMS4xMDQ4LCAxLjQ4MzU0LCAyLjM2NzE4LCAyLjg3MTk0IiwgXAotICAgICAgICAgICIwLjQ4Nzc0MiwgMC41MTMxMDcsIDAuNzQwNDQ1LCAxLjExOTE4LCAxLjQ5Nzg2LCAyLjM4MTM5LCAyLjg4NjI0IiwgXAotICAgICAgICAgICIwLjUwOTM2OCwgMC41MzQ3NCwgMC43NjIwNzQsIDEuMTQwOTMsIDEuNTE5NDcsIDIuNDAzMDksIDIuOTA3OTIiLCBcCi0gICAgICAgICAgIjAuNTI2NDkxLCAwLjU1MTg2MiwgMC43NzkxODksIDEuMTU3OTEsIDEuNTM2NzQsIDIuNDIwMjIsIDIuOTI1MDYiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjgyMjQsIDAuMzMxNjQxLCAwLjc4NzQ4NCwgMS41NTU4NSwgMi4zMjU0OSwgNC4xMjEyOSwgNS4xNDA2MiIsIFwKLSAgICAgICAgICAiMC4yODIyMTQsIDAuMzMxNjI1LCAwLjc4NzQ5NywgMS41NTU5OSwgMi4zMjIxNiwgNC4xMTUxMiwgNS4xMzczNCIsIFwKLSAgICAgICAgICAiMC4yODIxOTUsIDAuMzMxNjE4LCAwLjc4NzQ4MiwgMS41NTU5NiwgMi4zMjE3OSwgNC4xMjExNSwgNS4xMzc1NyIsIFwKLSAgICAgICAgICAiMC4yODIyMTYsIDAuMzMxNjIyLCAwLjc4NzQ3NiwgMS41NTU3OCwgMi4zMjE2OSwgNC4xMjExNSwgNS4xMzc0NiIsIFwKLSAgICAgICAgICAiMC4yODIyMzYsIDAuMzMxNjk2LCAwLjc4NzQ3NCwgMS41NTU4MywgMi4zMjIwNCwgNC4xMTQ4MiwgNS4xMzgxMyIsIFwKLSAgICAgICAgICAiMC4yODIxOTUsIDAuMzMxNjIsIDAuNzg3NDksIDEuNTU1NzcsIDIuMzI0OTgsIDQuMTE0NTEsIDUuMTM3NTkiLCBcCi0gICAgICAgICAgIjAuMjgyMjE2LCAwLjMzMTQ2MywgMC43ODc0OTksIDEuNTU1OTksIDIuMzI1MjQsIDQuMTIxMTgsIDUuMTM0ODIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiU04iOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGNsZWFyOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yNjgwMjIsIDAuMjkzMzg1LCAwLjUyMDY3MSwgMC44OTk0MDUsIDEuMjc4MjQsIDIuMTYyMDcsIDIuNjY3MTYiLCBcCi0gICAgICAgICAgIjAuMjc5NDMxLCAwLjMwNDc5MiwgMC41MzIwODIsIDAuOTEwODE0LCAxLjI4OTY1LCAyLjE3MzYxLCAyLjY3ODU2IiwgXAotICAgICAgICAgICIwLjI5MjkzNiwgMC4zMTgzMDIsIDAuNTQ1NTg2LCAwLjkyNDQwMywgMS4zMDMyNiwgMi4xODczMywgMi42OTI0IiwgXAotICAgICAgICAgICIwLjMwNjM3MSwgMC4zMzE3MzgsIDAuNTU5MDI3LCAwLjkzNzg0NywgMS4zMTcxOSwgMi4yMDA0OCwgMi43MDU4NyIsIFwKLSAgICAgICAgICAiMC4zMTk4MzIsIDAuMzQ1MTk5LCAwLjU3MjQ5NiwgMC45NTEzMjEsIDEuMzMwMzIsIDIuMjEzNzUsIDIuNzE4OTkiLCBcCi0gICAgICAgICAgIjAuMzQxNjI0LCAwLjM2Njk4OSwgMC41OTQyOTQsIDAuOTczMTI0LCAxLjM1MTg0LCAyLjIzNjYzLCAyLjc0MDcyIiwgXAotICAgICAgICAgICIwLjM2MDI2NywgMC4zODU2MzQsIDAuNjEyOTUsIDAuOTkxNzgzLCAxLjM3MDU2LCAyLjI1NDYxLCAyLjc1OTUiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjgxOTU2LCAwLjMzMTQ1NCwgMC43ODc0MjUsIDEuNTU1OTksIDIuMzI1MzQsIDQuMTIxNSwgNS4xMzQ4NCIsIFwKLSAgICAgICAgICAiMC4yODIwNzgsIDAuMzMxNDksIDAuNzg3NDA2LCAxLjU1NjAzLCAyLjMyNTI2LCA0LjEyMTMsIDUuMTM0NTMiLCBcCi0gICAgICAgICAgIjAuMjgyMDIxLCAwLjMzMTQ3MiwgMC43ODczNywgMS41NTYwMSwgMi4zMjUyOCwgNC4xMjEyOCwgNS4xMzg3NiIsIFwKLSAgICAgICAgICAiMC4yODIwMDgsIDAuMzMxNDkxLCAwLjc4NzM2LCAxLjU1MzQxLCAyLjMyMDM5LCA0LjExMDgsIDUuMTM5MTYiLCBcCi0gICAgICAgICAgIjAuMjgxOTEsIDAuMzMxNDQxLCAwLjc4NzM2OSwgMS41NTU0OSwgMi4zMjYwNCwgNC4xMjIzMSwgNS4xNDA4OSIsIFwKLSAgICAgICAgICAiMC4yODIwMDEsIDAuMzMxNDMzLCAwLjc4NzM3NCwgMS41NTM0LCAyLjMyNTExLCA0LjExMjg0LCA1LjEzOTcxIiwgXAotICAgICAgICAgICIwLjI4MjAzMSwgMC4zMzE0NzYsIDAuNzg3Mzc2LCAxLjU1MzI3LCAyLjMyNTI0LCA0LjEyMTI2LCA1LjEzOTM2Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIyMjcwOSwgMC4yNTI2MzQsIDAuNTIwMDc5LCAwLjk2NTQ3MSwgMS40MTA4OCwgMi40NTAyNiwgMy4wNDQyNCIsIFwKLSAgICAgICAgICAiMC4yMzQzMjcsIDAuMjY0MjUyLCAwLjUzMTY5LCAwLjk3NzA5NCwgMS40MjI1NywgMi40NjE4OSwgMy4wNTU4NSIsIFwKLSAgICAgICAgICAiMC4yNDkxMDcsIDAuMjc5MDM1LCAwLjU0NjQ4NiwgMC45OTE4OSwgMS40MzczNSwgMi40NzY4NCwgMy4wNzA1MiIsIFwKLSAgICAgICAgICAiMC4yNjM5OTcsIDAuMjkzOTI3LCAwLjU2MTM4NSwgMS4wMDY4OSwgMS40NTIyMSwgMi40OTE1NSwgMy4wODU0OSIsIFwKLSAgICAgICAgICAiMC4yNzg3MDgsIDAuMzA4NjQxLCAwLjU3NjExNCwgMS4wMjE1MiwgMS40NjY5OCwgMi41MDY0OCwgMy4xMDAxNiIsIFwKLSAgICAgICAgICAiMC4zMDE2NTMsIDAuMzMxNTg2LCAwLjU5OTA3NywgMS4wNDQ0OSwgMS40ODk5NiwgMi41MjkyMiwgMy4xMjMyMSIsIFwKLSAgICAgICAgICAiMC4zMjA1MzQsIDAuMzUwNDUyLCAwLjYxNzk0OCwgMS4wNjMzNywgMS41MDg3OSwgMi41NDgxNSwgMy4xNDIwNiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMTM3MDQsIDAuMzcxODEsIDAuODk5NjYsIDEuNzgwOTMsIDIuNjYyNjUsIDQuNzE5OTksIDUuODk0MDEiLCBcCi0gICAgICAgICAgIjAuMzEzNzAxLCAwLjM3MTgwNywgMC44OTk1OTgsIDEuNzgwOTIsIDIuNjYyNjUsIDQuNzE5OTcsIDUuODkzODYiLCBcCi0gICAgICAgICAgIjAuMzEzNzA2LCAwLjM3MTg0OCwgMC44OTk0OSwgMS43ODA5NSwgMi42NjI2NCwgNC43MTk5NSwgNS44OTM4NiIsIFwKLSAgICAgICAgICAiMC4zMTM2ODgsIDAuMzcxNzk3LCAwLjg5OTM4OCwgMS43ODA5MSwgMi42NjI2NSwgNC43MjAwMSwgNS44OTQxOSIsIFwKLSAgICAgICAgICAiMC4zMTM3LCAwLjM3MTgzNSwgMC44OTk0NTksIDEuNzgwOSwgMi42NjI2MiwgNC43MiwgNS44OTQxNyIsIFwKLSAgICAgICAgICAiMC4zMTM3NDUsIDAuMzcxODI0LCAwLjg5OTQsIDEuNzgwODgsIDIuNjYyNjEsIDQuNzE5OTQsIDUuODk0MTYiLCBcCi0gICAgICAgICAgIjAuMzEzODg4LCAwLjM3MTkyNSwgMC44OTk1NDQsIDEuNzgwNDgsIDIuNjYyNiwgNC43MTk5NSwgNS44OTM5NiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkQiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjE2MSwgMC4wMDIxNjIsIDAuMDAyMTY1LCAwLjAwMjE2NiwgMC4wMDIxNjYsIDAuMDAyMTY2LCAwLjAwMjE2NiIsIFwKLSAgICAgICAgICAiMC4wMDIxNTgsIDAuMDAyMTU5LCAwLjAwMjE2MSwgMC4wMDIxNjIsIDAuMDAyMTYzLCAwLjAwMjE2MywgMC4wMDIxNjMiLCBcCi0gICAgICAgICAgIjAuMDAyMTU2LCAwLjAwMjE1NywgMC4wMDIxNiwgMC4wMDIxNjEsIDAuMDAyMTYxLCAwLjAwMjE2MSwgMC4wMDIxNjEiLCBcCi0gICAgICAgICAgIjAuMDAyMTU1LCAwLjAwMjE1NiwgMC4wMDIxNTgsIDAuMDAyMTU5LCAwLjAwMjE1OSwgMC4wMDIxNiwgMC4wMDIxNiIsIFwKLSAgICAgICAgICAiMC4wMDIxNTQsIDAuMDAyMTU0LCAwLjAwMjE1NywgMC4wMDIxNTgsIDAuMDAyMTU4LCAwLjAwMjE1OCwgMC4wMDIxNTkiLCBcCi0gICAgICAgICAgIjAuMDAyMTUyLCAwLjAwMjE1MiwgMC4wMDIxNTUsIDAuMDAyMTU2LCAwLjAwMjE1NiwgMC4wMDIxNTcsIDAuMDAyMTU3IiwgXAotICAgICAgICAgICIwLjAwMjE1MSwgMC4wMDIxNTIsIDAuMDAyMTU0LCAwLjAwMjE1NSwgMC4wMDIxNTUsIDAuMDAyMTU2LCAwLjAwMjE1NiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTc0MywgMC4wMDE3NDMsIDAuMDAxNzQ2LCAwLjAwMTc0NiwgMC4wMDE3NDYsIDAuMDAxNzQ3LCAwLjAwMTc0NyIsIFwKLSAgICAgICAgICAiMC4wMDE3MzcsIDAuMDAxNzM4LCAwLjAwMTc0LCAwLjAwMTc0MSwgMC4wMDE3NDEsIDAuMDAxNzQxLCAwLjAwMTc0MSIsIFwKLSAgICAgICAgICAiMC4wMDE3MzQsIDAuMDAxNzM0LCAwLjAwMTczNywgMC4wMDE3MzcsIDAuMDAxNzM4LCAwLjAwMTczOCwgMC4wMDE3MzgiLCBcCi0gICAgICAgICAgIjAuMDAxNzMxLCAwLjAwMTczMiwgMC4wMDE3MzQsIDAuMDAxNzM1LCAwLjAwMTczNSwgMC4wMDE3MzUsIDAuMDAxNzM2IiwgXAotICAgICAgICAgICIwLjAwMTcyOSwgMC4wMDE3MywgMC4wMDE3MzIsIDAuMDAxNzMzLCAwLjAwMTczMywgMC4wMDE3MzMsIDAuMDAxNzMzIiwgXAotICAgICAgICAgICIwLjAwMTcyNywgMC4wMDE3MjgsIDAuMDAxNzMsIDAuMDAxNzMxLCAwLjAwMTczMSwgMC4wMDE3MzEsIDAuMDAxNzMxIiwgXAotICAgICAgICAgICIwLjAwMTcyNCwgMC4wMDE3MjUsIDAuMDAxNzI3LCAwLjAwMTcyOCwgMC4wMDE3MjgsIDAuMDAxNzI4LCAwLjAwMTcyOCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkdOIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDM2MzgsIDAuMDAzNjM5LCAwLjAwMzY0MSwgMC4wMDM2NDIsIDAuMDAzNjQyLCAwLjAwMzY0MiwgMC4wMDM2NDMiLCBcCi0gICAgICAgICAgIjAuMDAzNjMsIDAuMDAzNjMsIDAuMDAzNjMzLCAwLjAwMzYzNCwgMC4wMDM2MzQsIDAuMDAzNjM0LCAwLjAwMzYzNCIsIFwKLSAgICAgICAgICAiMC4wMDM2MjMsIDAuMDAzNjI0LCAwLjAwMzYyNiwgMC4wMDM2MjcsIDAuMDAzNjI3LCAwLjAwMzYyOCwgMC4wMDM2MjgiLCBcCi0gICAgICAgICAgIjAuMDAzNjIsIDAuMDAzNjIxLCAwLjAwMzYyMywgMC4wMDM2MjQsIDAuMDAzNjI0LCAwLjAwMzYyNCwgMC4wMDM2MjQiLCBcCi0gICAgICAgICAgIjAuMDAzNjE3LCAwLjAwMzYxOCwgMC4wMDM2MjEsIDAuMDAzNjIxLCAwLjAwMzYyMiwgMC4wMDM2MjIsIDAuMDAzNjIyIiwgXAotICAgICAgICAgICIwLjAwMzYxNSwgMC4wMDM2MTYsIDAuMDAzNjE4LCAwLjAwMzYxOSwgMC4wMDM2MTksIDAuMDAzNjIsIDAuMDAzNjIiLCBcCi0gICAgICAgICAgIjAuMDAzNjEzLCAwLjAwMzYxNCwgMC4wMDM2MTYsIDAuMDAzNjE3LCAwLjAwMzYxNywgMC4wMDM2MTcsIDAuMDAzNjE3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzMjkyLCAwLjAwMzI5MiwgMC4wMDMyOTQsIDAuMDAzMjk1LCAwLjAwMzI5NiwgMC4wMDMyOTUsIDAuMDAzMjk1IiwgXAotICAgICAgICAgICIwLjAwMzI4NCwgMC4wMDMyODUsIDAuMDAzMjg3LCAwLjAwMzI4NywgMC4wMDMyODgsIDAuMDAzMjg5LCAwLjAwMzI4OCIsIFwKLSAgICAgICAgICAiMC4wMDMyNzcsIDAuMDAzMjc4LCAwLjAwMzI4LCAwLjAwMzI4MSwgMC4wMDMyODEsIDAuMDAzMjgxLCAwLjAwMzI4MSIsIFwKLSAgICAgICAgICAiMC4wMDMyNzQsIDAuMDAzMjc0LCAwLjAwMzI3NiwgMC4wMDMyNzcsIDAuMDAzMjc4LCAwLjAwMzI3OCwgMC4wMDMyNzgiLCBcCi0gICAgICAgICAgIjAuMDAzMjcyLCAwLjAwMzI3MiwgMC4wMDMyNzQsIDAuMDAzMjc1LCAwLjAwMzI3NSwgMC4wMDMyNzYsIDAuMDAzMjc2IiwgXAotICAgICAgICAgICIwLjAwMzI3LCAwLjAwMzI3MSwgMC4wMDMyNzMsIDAuMDAzMjczLCAwLjAwMzI3NCwgMC4wMDMyNzQsIDAuMDAzMjc0IiwgXAotICAgICAgICAgICIwLjAwMzI2OCwgMC4wMDMyNjksIDAuMDAzMjcxLCAwLjAwMzI3MiwgMC4wMDMyNzIsIDAuMDAzMjcyLCAwLjAwMzI3MiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDMyMjEsIDAuMDAzMjIxLCAwLjAwMzIyNCwgMC4wMDMyMjUsIDAuMDAzMjI1LCAwLjAwMzIyNSwgMC4wMDMyMjUiLCBcCi0gICAgICAgICAgIjAuMDAzMjE0LCAwLjAwMzIxNCwgMC4wMDMyMTcsIDAuMDAzMjE3LCAwLjAwMzIxOCwgMC4wMDMyMTgsIDAuMDAzMjE3IiwgXAotICAgICAgICAgICIwLjAwMzIwOSwgMC4wMDMyMDksIDAuMDAzMjEyLCAwLjAwMzIxMiwgMC4wMDMyMTMsIDAuMDAzMjEzLCAwLjAwMzIxMyIsIFwKLSAgICAgICAgICAiMC4wMDMyMDQsIDAuMDAzMjA1LCAwLjAwMzIwOCwgMC4wMDMyMDgsIDAuMDAzMjA5LCAwLjAwMzIwOSwgMC4wMDMyMDkiLCBcCi0gICAgICAgICAgIjAuMDAzMjAyLCAwLjAwMzIwMywgMC4wMDMyMDUsIDAuMDAzMjA2LCAwLjAwMzIwNiwgMC4wMDMyMDcsIDAuMDAzMjA3IiwgXAotICAgICAgICAgICIwLjAwMzIsIDAuMDAzMiwgMC4wMDMyMDMsIDAuMDAzMjA0LCAwLjAwMzIwNCwgMC4wMDMyMDQsIDAuMDAzMjA0IiwgXAotICAgICAgICAgICIwLjAwMzE5NywgMC4wMDMxOTgsIDAuMDAzMjAxLCAwLjAwMzIwMSwgMC4wMDMyMDIsIDAuMDAzMjAyLCAwLjAwMzIwMiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjYyMywgMC4wMDI2MjMsIDAuMDAyNjI2LCAwLjAwMjYyNiwgMC4wMDI2MjcsIDAuMDAyNjI3LCAwLjAwMjYyNyIsIFwKLSAgICAgICAgICAiMC4wMDI2MTYsIDAuMDAyNjE3LCAwLjAwMjYxOSwgMC4wMDI2MTksIDAuMDAyNjIsIDAuMDAyNjIsIDAuMDAyNjIiLCBcCi0gICAgICAgICAgIjAuMDAyNjEsIDAuMDAyNjExLCAwLjAwMjYxMywgMC4wMDI2MTQsIDAuMDAyNjE0LCAwLjAwMjYxNCwgMC4wMDI2MTQiLCBcCi0gICAgICAgICAgIjAuMDAyNjA4LCAwLjAwMjYwOCwgMC4wMDI2MTEsIDAuMDAyNjExLCAwLjAwMjYxMiwgMC4wMDI2MTIsIDAuMDAyNjEyIiwgXAotICAgICAgICAgICIwLjAwMjYwNiwgMC4wMDI2MDYsIDAuMDAyNjA5LCAwLjAwMjYwOSwgMC4wMDI2MSwgMC4wMDI2MSwgMC4wMDI2MSIsIFwKLSAgICAgICAgICAiMC4wMDI2MDQsIDAuMDAyNjA0LCAwLjAwMjYwNywgMC4wMDI2MDcsIDAuMDAyNjA4LCAwLjAwMjYwOCwgMC4wMDI2MDgiLCBcCi0gICAgICAgICAgIjAuMDAyNjAyLCAwLjAwMjYwMiwgMC4wMDI2MDQsIDAuMDAyNjA1LCAwLjAwMjYwNiwgMC4wMDI2MDYsIDAuMDAyNjA2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiU04iOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTI0MywgMC4wMDEyNDQsIDAuMDAxMjQ2LCAwLjAwMTI0NiwgMC4wMDEyNDcsIDAuMDAxMjQ3LCAwLjAwMTI0NyIsIFwKLSAgICAgICAgICAiMC4wMDEyMzcsIDAuMDAxMjM4LCAwLjAwMTI0LCAwLjAwMTI0MSwgMC4wMDEyNDEsIDAuMDAxMjQxLCAwLjAwMTI0MSIsIFwKLSAgICAgICAgICAiMC4wMDEyMzMsIDAuMDAxMjM0LCAwLjAwMTIzNiwgMC4wMDEyMzcsIDAuMDAxMjM3LCAwLjAwMTIzNywgMC4wMDEyMzciLCBcCi0gICAgICAgICAgIjAuMDAxMjMsIDAuMDAxMjMxLCAwLjAwMTIzMywgMC4wMDEyMzQsIDAuMDAxMjM0LCAwLjAwMTIzNCwgMC4wMDEyMzQiLCBcCi0gICAgICAgICAgIjAuMDAxMjI4LCAwLjAwMTIyOSwgMC4wMDEyMzEsIDAuMDAxMjMyLCAwLjAwMTIzMiwgMC4wMDEyMzIsIDAuMDAxMjMyIiwgXAotICAgICAgICAgICIwLjAwMTIyNiwgMC4wMDEyMjcsIDAuMDAxMjI5LCAwLjAwMTIzLCAwLjAwMTIzMSwgMC4wMDEyMzEsIDAuMDAxMjMxIiwgXAotICAgICAgICAgICIwLjAwMTIyNCwgMC4wMDEyMjUsIDAuMDAxMjI3LCAwLjAwMTIyOCwgMC4wMDEyMjgsIDAuMDAxMjI5LCAwLjAwMTIyOSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjA3MSwgMC4wMDIwNzIsIDAuMDAyMDczLCAwLjAwMjA3NCwgMC4wMDIwNzQsIDAuMDAyMDc0LCAwLjAwMjA3NCIsIFwKLSAgICAgICAgICAiMC4wMDIwNjcsIDAuMDAyMDY3LCAwLjAwMjA2OCwgMC4wMDIwNjksIDAuMDAyMDY5LCAwLjAwMjA3LCAwLjAwMjA3IiwgXAotICAgICAgICAgICIwLjAwMjA2MSwgMC4wMDIwNjEsIDAuMDAyMDYzLCAwLjAwMjA2MywgMC4wMDIwNjMsIDAuMDAyMDY0LCAwLjAwMjA2NCIsIFwKLSAgICAgICAgICAiMC4wMDIwNTUsIDAuMDAyMDU1LCAwLjAwMjA1NywgMC4wMDIwNTgsIDAuMDAyMDU4LCAwLjAwMjA1OCwgMC4wMDIwNTkiLCBcCi0gICAgICAgICAgIjAuMDAyMDQ5LCAwLjAwMjA1LCAwLjAwMjA1MiwgMC4wMDIwNTMsIDAuMDAyMDUzLCAwLjAwMjA1MywgMC4wMDIwNTMiLCBcCi0gICAgICAgICAgIjAuMDAyMDQzLCAwLjAwMjA0NCwgMC4wMDIwNDYsIDAuMDAyMDQ3LCAwLjAwMjA0OCwgMC4wMDIwNDgsIDAuMDAyMDQ4IiwgXAotICAgICAgICAgICIwLjAwMjA0LCAwLjAwMjA0LCAwLjAwMjA0MywgMC4wMDIwNDQsIDAuMDAyMDQ1LCAwLjAwMjA0NiwgMC4wMDIwNDUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFJOKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE0NjY0NDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE0NjY0NDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE0NTY2NjsKLSAgICBjbG9jayA6IHRydWU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyMDUzLCAwLjAwMjAzMywgMC4wMDIwMjEsIDAuMDAyMDE3LCAwLjAwMjAxNywgMC4wMDIwMjMsIDAuMDAyMDI3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzMzLCAwLjAwMDMzMiwgMC4wMDAzMzIsIDAuMDAwMzMyLCAwLjAwMDMzMiwgMC4wMDAzMzIsIDAuMDAwMzMyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkdOIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIkQmU04iOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8xX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMTQzNzUsIC0wLjEzMjUsIC0wLjEyLCAtMC4xMDEyNSwgLTAuMDg4NzUsIC0wLjA3MjUsIC0wLjA2Mzc1IiwgXAotICAgICAgICAgICItMC4xNTUsIC0wLjE0Mzc1LCAtMC4xMzEyNSwgLTAuMTEyNSwgLTAuMSwgLTAuMDgzNzUsIC0wLjA3NSIsIFwKLSAgICAgICAgICAiLTAuMTczNzUsIC0wLjE1NjI1LCAtMC4xNDM3NSwgLTAuMTMxMjUsIC0wLjExMjUsIC0wLjA5NjI1LCAtMC4wODc1IiwgXAotICAgICAgICAgICItMC4xODYyNSwgLTAuMTc1LCAtMC4xNTYyNSwgLTAuMTQzNzUsIC0wLjEzMTI1LCAtMC4xMDg3NSwgLTAuMSIsIFwKLSAgICAgICAgICAiLTAuMTk4NzUsIC0wLjE4NzUsIC0wLjE2ODc1LCAtMC4xNTYyNSwgLTAuMTQzNzUsIC0wLjEyNzUsIC0wLjExMjUiLCBcCi0gICAgICAgICAgIi0wLjIyMTI1LCAtMC4yMSwgLTAuMTkxMjUsIC0wLjE3ODc1LCAtMC4xNjYyNSwgLTAuMTUsIC0wLjEzNSIsIFwKLSAgICAgICAgICAiLTAuMjM2MjUsIC0wLjIyNSwgLTAuMjEyNSwgLTAuMTkzNzUsIC0wLjE4MTI1LCAtMC4xNjUsIC0wLjE1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRCZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjQwNTYwNCwgMC40MTc0ODIsIDAuNDMxNjEyLCAwLjQ0NTA1NiwgMC40NTc3NDQsIDAuNDc3NzY2LCAwLjQ5NDU4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkdOIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJEJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMV9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE3NSwgMC4xNjM3NSwgMC4xNDUsIDAuMTMyNSwgMC4xMTM3NSwgMC4wOTc1LCAwLjA4MjUiLCBcCi0gICAgICAgICAgIjAuMTg2MjUsIDAuMTc1LCAwLjE1NjI1LCAwLjE0Mzc1LCAwLjEyNSwgMC4xMDg3NSwgMC4wOTM3NSIsIFwKLSAgICAgICAgICAiMC4xOTg3NSwgMC4xODc1LCAwLjE2ODc1LCAwLjE1NjI1LCAwLjEzNzUsIDAuMTIxMjUsIDAuMTA2MjUiLCBcCi0gICAgICAgICAgIjAuMjExMjUsIDAuMiwgMC4xODEyNSwgMC4xNjg3NSwgMC4xNTYyNSwgMC4xMzM3NSwgMC4xMjUiLCBcCi0gICAgICAgICAgIjAuMjIzNzUsIDAuMjEyNSwgMC4xOTM3NSwgMC4xODEyNSwgMC4xNjg3NSwgMC4xNDYyNSwgMC4xMzc1IiwgXAotICAgICAgICAgICIwLjI0NjI1LCAwLjIzNSwgMC4yMTYyNSwgMC4yMDM3NSwgMC4xOTEyNSwgMC4xNjg3NSwgMC4xNTM3NSIsIFwKLSAgICAgICAgICAiMC4yNjEyNSwgMC4yNSwgMC4yMzc1LCAwLjIxODc1LCAwLjIwNjI1LCAwLjE5LCAwLjE3NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oU04pICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDU3OTI3NzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA1NzkyNzc7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNTc3OTQ7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMTY1LCAwLjAwMDE2NSwgMC4wMDAxNjUsIDAuMDAwMTY1LCAwLjAwMDE2NSwgMC4wMDAxNjUsIDAuMDAwMTY1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMTcsIDAuMDAwMTY3LCAwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiwgMC4wMDAxNjYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiU04iOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFEIjsKLSAgICAgIHNkZl9jb25kIDogIkQgPT0gMSdiMCI7Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4yMjI3MDksIDAuMjM0MzI3LCAwLjI0OTEwNywgMC4yNjM5OTcsIDAuMjc4NzA4LCAwLjMwMTY1MywgMC4zMjA1MzQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiR04iOwotICAgICAgdGltaW5nX3R5cGUgOiByZWNvdmVyeV9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEJlJOIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9STl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHJlY292ZXJ5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMTI1LCAtMC4wMywgLTAuMDQyNSwgLTAuMDU1LCAtMC4wNzM3NSwgLTAuMDksIC0wLjEwNSIsIFwKLSAgICAgICAgICAiLTAuMDA3NSwgLTAuMDE4NzUsIC0wLjAzMTI1LCAtMC4wNDM3NSwgLTAuMDYyNSwgLTAuMDc4NzUsIC0wLjA5Mzc1IiwgXAotICAgICAgICAgICIwLjAwNSwgLTAuMDA2MjUsIC0wLjAxODc1LCAtMC4wMzc1LCAtMC4wNSwgLTAuMDY2MjUsIC0wLjA4NzUiLCBcCi0gICAgICAgICAgIjAuMDE3NSwgMC4wMDYyNSwgLTAuMDA2MjUsIC0wLjAyNSwgLTAuMDM3NSwgLTAuMDUzNzUsIC0wLjA3NSIsIFwKLSAgICAgICAgICAiMC4wMzYyNSwgMC4wMTg3NSwgMC4wMDYyNSwgLTAuMDA2MjUsIC0wLjAyNSwgLTAuMDQxMjUsIC0wLjA2MjUiLCBcCi0gICAgICAgICAgIjAuMDUyNSwgMC4wNDEyNSwgMC4wMjI1LCAwLjAxLCAtMC4wMDI1LCAtMC4wMjUsIC0wLjA0IiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDU2MjUsIDAuMDQzNzUsIDAuMDI1LCAwLjAxMjUsIC0wLjAxLCAtMC4wMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUk4iOwotICAgICAgdGltaW5nX3R5cGUgOiByZWNvdmVyeV9yaXNpbmc7Ci0gICAgICB3aGVuIDogIkdOIjsKLSAgICAgIHNkZl9jb25kIDogIkdOID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHJlY292ZXJ5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjI1LCAtMC4wMDUsIC0wLjAxNzUsIC0wLjAyMzc1LCAtMC4wMzYyNSwgLTAuMDUyNSwgLTAuMDYxMjUiLCBcCi0gICAgICAgICAgIjAuMDE3NSwgMC4wMDYyNSwgLTAuMDA2MjUsIC0wLjAxODc1LCAtMC4wMjUsIC0wLjA0MTI1LCAtMC4wNSIsIFwKLSAgICAgICAgICAiMC4wMywgMC4wMTg3NSwgMC4wMDYyNSwgMCwgLTAuMDEyNSwgLTAuMDI4NzUsIC0wLjAzNzUiLCBcCi0gICAgICAgICAgIjAuMDQyNSwgMC4wMzEyNSwgMC4wMTg3NSwgMC4wMTI1LCAwLCAtMC4wMTYyNSwgLTAuMDI1IiwgXAotICAgICAgICAgICIwLjA1NSwgMC4wNDM3NSwgMC4wMzEyNSwgMC4wMTg3NSwgMC4wMTI1LCAtMC4wMDM3NSwgLTAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMDcxMjUsIDAuMDYsIDAuMDQ3NSwgMC4wMzUsIDAuMDI4NzUsIDAuMDEyNSwgLTAuMDAyNSIsIFwKLSAgICAgICAgICAiMC4wODYyNSwgMC4wNzUsIDAuMDYyNSwgMC4wNSwgMC4wNDM3NSwgMC4wMjc1LCAwLjAxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiR04iOwotICAgICAgdGltaW5nX3R5cGUgOiByZW1vdmFsX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUQmUk4iOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1JOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQocmVtb3ZhbF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjI1LCAwLjA4LCAwLjA5MjUsIDAuMTA1LCAwLjEyMzc1LCAwLjE0LCAwLjE1NSIsIFwKLSAgICAgICAgICAiMC4wNTEyNSwgMC4wNjI1LCAwLjA4MTI1LCAwLjA5Mzc1LCAwLjExMjUsIDAuMTI4NzUsIDAuMTQzNzUiLCBcCi0gICAgICAgICAgIjAuMDM4NzUsIDAuMDUsIDAuMDY4NzUsIDAuMDgxMjUsIDAuMDkzNzUsIDAuMTE2MjUsIDAuMTMxMjUiLCBcCi0gICAgICAgICAgIjAuMDI2MjUsIDAuMDM3NSwgMC4wNTYyNSwgMC4wNjg3NSwgMC4wODc1LCAwLjEwMzc1LCAwLjExODc1IiwgXAotICAgICAgICAgICIwLjAyLCAwLjAzMTI1LCAwLjA0Mzc1LCAwLjA1NjI1LCAwLjA3NSwgMC4wOTEyNSwgMC4xMTI1IiwgXAotICAgICAgICAgICItMC4wMDI1LCAwLjAxNSwgMC4wMjc1LCAwLjA0LCAwLjA1ODc1LCAwLjA3NSwgMC4wOTYyNSIsIFwKLSAgICAgICAgICAiLTAuMDExMjUsIDAsIDAuMDEyNSwgMC4wMzEyNSwgMC4wNDM3NSwgMC4wNjYyNSwgMC4wODEyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJlbW92YWxfcmlzaW5nOwotICAgICAgd2hlbiA6ICJHTiI7Ci0gICAgICBzZGZfY29uZCA6ICJHTiA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChyZW1vdmFsX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzMTI1LCAwLjA0MjUsIDAuMDU1LCAwLjA2NzUsIDAuMDgsIDAuMDk2MjUsIDAuMTExMjUiLCBcCi0gICAgICAgICAgIjAuMDIsIDAuMDMxMjUsIDAuMDQzNzUsIDAuMDU2MjUsIDAuMDY4NzUsIDAuMDg1LCAwLjEiLCBcCi0gICAgICAgICAgIjAuMDA3NSwgMC4wMTg3NSwgMC4wMzEyNSwgMC4wNDM3NSwgMC4wNTYyNSwgMC4wNzg3NSwgMC4wOTM3NSIsIFwKLSAgICAgICAgICAiLTAuMDA1LCAwLjAwNjI1LCAwLjAyNSwgMC4wMzc1LCAwLjA0Mzc1LCAwLjA2NjI1LCAwLjA4MTI1IiwgXAotICAgICAgICAgICItMC4wMTEyNSwgMCwgMC4wMTI1LCAwLjAyNSwgMC4wMzc1LCAwLjA1Mzc1LCAwLjA2ODc1IiwgXAotICAgICAgICAgICItMC4wMjc1LCAtMC4wMTYyNSwgLTAuMDAzNzUsIDAuMDA4NzUsIDAuMDIxMjUsIDAuMDM3NSwgMC4wNTI1IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLjAwNjI1LCAwLjAyMjUsIDAuMDM3NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogVExBVE5UU0NBWDE2ICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoVExBVE5UU0NBWDE2KSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuOTc5NzY0OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIGNsb2NrX2dhdGluZ19pbnRlZ3JhdGVkX2NlbGwgOiAibGF0Y2hfcG9zZWRnZV9wcmVjb250cm9sIjsKLSAgc3RhdGV0YWJsZSgiIENLICBFIFNFICIsICIgRUlOVCAiKSB7Ci0gICAgIHRhYmxlIDogIiAgTCAgTCAgTCA6IC0gOiBMICwgXAotICAgICAgICAgICAgICAgIEwgIEggIEwgOiAtIDogSCAsIFwKLSAgICAgICAgICAgICAgICBMICBMICBIIDogLSA6IEggLCBcCi0gICAgICAgICAgICAgICAgTCAgSCAgSCA6IC0gOiBIICwgXAotICAgICAgICAgICAgICAgIEggIC0gIC0gOiAtIDogTiAiOwotICB9Ci0gIHBpbihFSU5UKSB7Ci0gICAgZGlyZWN0aW9uIDogaW50ZXJuYWw7Ci0gICAgaW50ZXJuYWxfbm9kZSA6ICJFSU5UIjsKLSAgfQotICBwaW4oQ0spICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYyNDk0ODsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MjQ3MDY7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjI0OTQ4OwotICAgIGNsb2NrX2dhdGVfY2xvY2tfcGluIDogdHJ1ZTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDQwMSwgMC4wMDM5OTYsIDAuMDAzOTg0LCAwLjAwMzk3NSwgMC4wMDM5NjksIDAuMDAzOTY1LCAwLjAwMzk2NCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzY0NywgMC4wMDM2MzcsIDAuMDAzNjI4LCAwLjAwMzYyMSwgMC4wMDM2MTUsIDAuMDAzNjEyLCAwLjAwMzYwOSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUUmIVNFIjsKLSAgICAgIHNkZl9jb25kIDogIkVfRVFfMF9BTl9TRV9FUV8wID09IDEnYjEiOwotICAgICAgZmFsbF9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMjc5MTMzLCAwLjI5MDcxNywgMC4zMDU3MjIsIDAuMzIwMzAyLCAwLjMzNDc1OCwgMC4zNTY0NjgsIDAuMzczODQ2Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihFKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2Mzk4MTY7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjM5NzQ5OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDYzOTgxNjsKLSAgICBjbG9ja19nYXRlX2VuYWJsZV9waW4gOiB0cnVlOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNDc1NCwgMC4wMDQ3NDksIDAuMDA0NzQyLCAwLjAwNDczNiwgMC4wMDQ3MzEsIDAuMDA0NzIyLCAwLjAwNDcxNiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNTIzMiwgMC4wMDUyMjQsIDAuMDA1MjE4LCAwLjAwNTIxNSwgMC4wMDUyMTMsIDAuMDA1MjExLCAwLjAwNTIwOCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhU0UiOwotICAgICAgc2RmX2NvbmQgOiAiU0UgPT0gMSdiMCI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMSwgLTAuMDg4NzUsIC0wLjA3NjI1LCAtMC4wNywgLTAuMDU3NSwgLTAuMDQ3NSwgLTAuMDM4NzUiLCBcCi0gICAgICAgICAgIi0wLjExMTI1LCAtMC4xLCAtMC4wOTM3NSwgLTAuMDgxMjUsIC0wLjA3NSwgLTAuMDU4NzUsIC0wLjA1IiwgXAotICAgICAgICAgICItMC4xMywgLTAuMTE4NzUsIC0wLjEwNjI1LCAtMC4wOTM3NSwgLTAuMDg3NSwgLTAuMDcxMjUsIC0wLjA2MjUiLCBcCi0gICAgICAgICAgIi0wLjE0MjUsIC0wLjEzMTI1LCAtMC4xMTg3NSwgLTAuMTEyNSwgLTAuMSwgLTAuMDksIC0wLjA4MTI1IiwgXAotICAgICAgICAgICItMC4xNjEyNSwgLTAuMTUsIC0wLjEzNzUsIC0wLjEyNSwgLTAuMTE4NzUsIC0wLjEwMjUsIC0wLjA5Mzc1IiwgXAotICAgICAgICAgICItMC4xODM3NSwgLTAuMTcyNSwgLTAuMTYsIC0wLjE0NzUsIC0wLjE0MTI1LCAtMC4xMjUsIC0wLjExNjI1IiwgXAotICAgICAgICAgICItMC4yMDUsIC0wLjE5Mzc1LCAtMC4xODEyNSwgLTAuMTY4NzUsIC0wLjE2MjUsIC0wLjE0NjI1LCAtMC4xMzc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDkzNzUsIC0wLjA4MjUsIC0wLjA2Mzc1LCAtMC4wNTEyNSwgLTAuMDMyNSwgLTAuMDEsIDAuMDA1IiwgXAotICAgICAgICAgICItMC4xMDUsIC0wLjA4NzUsIC0wLjA3NSwgLTAuMDYyNSwgLTAuMDQzNzUsIC0wLjAyMTI1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMTE3NSwgLTAuMTA2MjUsIC0wLjA4NzUsIC0wLjA3NSwgLTAuMDU2MjUsIC0wLjAzMzc1LCAtMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMTMsIC0wLjExODc1LCAtMC4xLCAtMC4wODc1LCAtMC4wNjg3NSwgLTAuMDQ2MjUsIC0wLjAzMTI1IiwgXAotICAgICAgICAgICItMC4xNDI1LCAtMC4xMzEyNSwgLTAuMTEyNSwgLTAuMSwgLTAuMDg3NSwgLTAuMDU4NzUsIC0wLjA0Mzc1IiwgXAotICAgICAgICAgICItMC4xNjUsIC0wLjE1Mzc1LCAtMC4xMzUsIC0wLjEyMjUsIC0wLjExLCAtMC4wODEyNSwgLTAuMDY2MjUiLCBcCi0gICAgICAgICAgIi0wLjE4LCAtMC4xNjg3NSwgLTAuMTU2MjUsIC0wLjEzNzUsIC0wLjEyNSwgLTAuMTAyNSwgLTAuMDgxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJTRSA9PSAxJ2IwIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDYyNSwgMC4wOTUsIDAuMDgyNSwgMC4wNzYyNSwgMC4wNjM3NSwgMC4wNTM3NSwgMC4wNDUiLCBcCi0gICAgICAgICAgIjAuMTE3NSwgMC4xMDYyNSwgMC4xLCAwLjA4NzUsIDAuMDgxMjUsIDAuMDY1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICIwLjEzNjI1LCAwLjEyNSwgMC4xMTI1LCAwLjEsIDAuMDkzNzUsIDAuMDc3NSwgMC4wNjg3NSIsIFwKLSAgICAgICAgICAiMC4xNDg3NSwgMC4xMzc1LCAwLjEyNSwgMC4xMTg3NSwgMC4xMDYyNSwgMC4wOTYyNSwgMC4wODc1IiwgXAotICAgICAgICAgICIwLjE2NzUsIDAuMTU2MjUsIDAuMTQzNzUsIDAuMTMxMjUsIDAuMTI1LCAwLjEwODc1LCAwLjEiLCBcCi0gICAgICAgICAgIjAuMTksIDAuMTc4NzUsIDAuMTY2MjUsIDAuMTUzNzUsIDAuMTQ3NSwgMC4xMzEyNSwgMC4xMjI1IiwgXAotICAgICAgICAgICIwLjIxMTI1LCAwLjIsIDAuMTg3NSwgMC4xNzUsIDAuMTY4NzUsIDAuMTUyNSwgMC4xNDM3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEsIDAuMDg4NzUsIDAuMDcsIDAuMDU3NSwgMC4wMzg3NSwgMC4wMTYyNSwgMC4wMDEyNSIsIFwKLSAgICAgICAgICAiMC4xMTEyNSwgMC4wOTM3NSwgMC4wODEyNSwgMC4wNjg3NSwgMC4wNSwgMC4wMjc1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMTIzNzUsIDAuMTEyNSwgMC4wOTM3NSwgMC4wODEyNSwgMC4wNjI1LCAwLjA0LCAwLjAyNSIsIFwKLSAgICAgICAgICAiMC4xMzYyNSwgMC4xMjUsIDAuMTA2MjUsIDAuMDkzNzUsIDAuMDc1LCAwLjA1MjUsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiMC4xNDg3NSwgMC4xMzc1LCAwLjExODc1LCAwLjEwNjI1LCAwLjA5Mzc1LCAwLjA2NSwgMC4wNSIsIFwKLSAgICAgICAgICAiMC4xNzEyNSwgMC4xNiwgMC4xNDEyNSwgMC4xMjg3NSwgMC4xMTYyNSwgMC4wODc1LCAwLjA3MjUiLCBcCi0gICAgICAgICAgIjAuMTg2MjUsIDAuMTc1LCAwLjE2MjUsIDAuMTQzNzUsIDAuMTMxMjUsIDAuMTA4NzUsIDAuMDg3NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRUNLKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDIuMjEyMDc7Ci0gICAgY2xvY2tfZ2F0ZV9vdXRfcGluIDogdHJ1ZTsKLSAgICBzdGF0ZV9mdW5jdGlvbiA6ICIoQ0sgRUlOVCkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yNTcwOCwgMC4yNjI0NDcsIDAuMjg2MTU1LCAwLjMwMjkyMywgMC4zMjMzODcsIDAuMzYxNTgyLCAwLjM4NDczNSIsIFwKLSAgICAgICAgICAiMC4yNjg2OTUsIDAuMjc0MTQxLCAwLjI5NzY5OSwgMC4zMTQ2MTQsIDAuMzM1MTA2LCAwLjM3MzI5OSwgMC4zOTYzNzEiLCBcCi0gICAgICAgICAgIjAuMjg0MjMxLCAwLjI4OTYyMywgMC4zMTMxNTgsIDAuMzMwMDU4LCAwLjM1MDU2NCwgMC4zODg2MzYsIDAuNDExODA4IiwgXAotICAgICAgICAgICIwLjI5OTQ5MiwgMC4zMDQ5NDIsIDAuMzI4NDkyLCAwLjM0NTQwOCwgMC4zNjU4NzksIDAuNDAzOTg2LCAwLjQyNzE3MyIsIFwKLSAgICAgICAgICAiMC4zMTQyMTksIDAuMzE5NjgsIDAuMzQzMjU1LCAwLjM2MDM0MywgMC4zODA2NDMsIDAuNDE4ODM2LCAwLjQ0MTkwOCIsIFwKLSAgICAgICAgICAiMC4zMzg1ODQsIDAuMzQ0MDA2LCAwLjM2NzQ3NCwgMC4zODQ0MjQsIDAuNDA0NzkzLCAwLjQ0MzAyNCwgMC40NjYxNzYiLCBcCi0gICAgICAgICAgIjAuMzU4MzkzLCAwLjM2MzcwOCwgMC4zODc0NiwgMC40MDQzODYsIDAuNDI0NzAyLCAwLjQ2Mjg4OCwgMC40ODYwNTMiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQ2NDU3LCAwLjA1MjU5OCwgMC4wODI2MzMsIDAuMTA3OTcyLCAwLjE0MjI1MywgMC4yMTIxMTksIDAuMjU2NTEiLCBcCi0gICAgICAgICAgIjAuMDQ2ODY3LCAwLjA1MjQ4NCwgMC4wODI1MDQsIDAuMTA3OTc5LCAwLjE0MjMwMiwgMC4yMTIxMTIsIDAuMjU2NDgyIiwgXAotICAgICAgICAgICIwLjA0NjU3LCAwLjA1MjM1LCAwLjA4MjQ5LCAwLjEwODAxNSwgMC4xNDIzODEsIDAuMjEyMDkxLCAwLjI1NjUwMSIsIFwKLSAgICAgICAgICAiMC4wNDY2NjIsIDAuMDUyMzY3LCAwLjA4MjQxMywgMC4xMDc5ODYsIDAuMTQyMzAzLCAwLjIxMjE0OSwgMC4yNTY1NzMiLCBcCi0gICAgICAgICAgIjAuMDQ2NzkzLCAwLjA1MjUyNCwgMC4wODI0MywgMC4xMDgxMTMsIDAuMTQyMjkxLCAwLjIxMjExNywgMC4yNTY0OTciLCBcCi0gICAgICAgICAgIjAuMDQ2NTUzLCAwLjA1MjIzMywgMC4wODIzOSwgMC4xMDgwMzEsIDAuMTQyMjU0LCAwLjIxMjA5OCwgMC4yNTY0OTkiLCBcCi0gICAgICAgICAgIjAuMDQ2NDI1LCAwLjA1MjUyNywgMC4wODI1OTcsIDAuMTA4MTA5LCAwLjE0MjI0MSwgMC4yMTIwNTksIDAuMjU2NDY1Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIyNzM3NCwgMC4yMzIwMDgsIDAuMjUzODM1LCAwLjI3MTA4NCwgMC4yOTMxODIsIDAuMzM2NDksIDAuMzYzMjU3IiwgXAotICAgICAgICAgICIwLjIzODk5LCAwLjI0MzYyMSwgMC4yNjU0NjUsIDAuMjgyNzExLCAwLjMwNDgwMiwgMC4zNDgxMSwgMC4zNzQ4NzciLCBcCi0gICAgICAgICAgIjAuMjUzNzI4LCAwLjI1ODM2LCAwLjI4MDQyNywgMC4yOTc1OTksIDAuMzE5NzU5LCAwLjM2MzA0NSwgMC4zODk4MTIiLCBcCi0gICAgICAgICAgIjAuMjY4MzM3LCAwLjI3Mjk2MywgMC4yOTQ4NSwgMC4zMTIxMjUsIDAuMzM0Mjc1LCAwLjM3NzU2LCAwLjQwNDMyOSIsIFwKLSAgICAgICAgICAiMC4yODI4MzUsIDAuMjg3NDMsIDAuMzA5MjgsIDAuMzI2NTQyLCAwLjM0ODY0MywgMC4zOTE5NzEsIDAuNDE4NzI1IiwgXAotICAgICAgICAgICIwLjMwNDM4OSwgMC4zMDg5NjYsIDAuMzMwODUsIDAuMzQ4MTIzLCAwLjM3MDIxMSwgMC40MTM1NCwgMC40NDAyOTIiLCBcCi0gICAgICAgICAgIjAuMzIxNTI1LCAwLjMyNjE2MiwgMC4zNDgyMjgsIDAuMzY1Mzk4LCAwLjM4NzU2MSwgMC40MzA4NDgsIDAuNDU3NjE5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzNjMwOSwgMC4wNDIzNTMsIDAuMDc2MzIsIDAuMTA2MzY2LCAwLjE0NzA2LCAwLjIzMDQ4NSwgMC4yODMxNiIsIFwKLSAgICAgICAgICAiMC4wMzYyMzcsIDAuMDQyMzU5LCAwLjA3NjM3NiwgMC4xMDYzNjgsIDAuMTQ3MDUyLCAwLjIzMDQ5NCwgMC4yODMyNTIiLCBcCi0gICAgICAgICAgIjAuMDM2NTA4LCAwLjA0MjU2NiwgMC4wNzY0MTUsIDAuMTA2MzA0LCAwLjE0NzA1LCAwLjIzMDQ3OCwgMC4yODI4NzYiLCBcCi0gICAgICAgICAgIjAuMDM2MzQxLCAwLjA0MjQxMywgMC4wNzYzNSwgMC4xMDYzNCwgMC4xNDcwNTQsIDAuMjMwNDgxLCAwLjI4MzM3MSIsIFwKLSAgICAgICAgICAiMC4wMzYzMjcsIDAuMDQyNDAyLCAwLjA3NjM0MSwgMC4xMDYzNTMsIDAuMTQ3MDQ0LCAwLjIzMDQ3NCwgMC4yODMyNDIiLCBcCi0gICAgICAgICAgIjAuMDM2MzM2LCAwLjA0MjM1NCwgMC4wNzYzMzksIDAuMTA2Mzc1LCAwLjE0NzA2MywgMC4yMzA0ODQsIDAuMjgzNDI3IiwgXAotICAgICAgICAgICIwLjAzNjUzNywgMC4wNDI1NjksIDAuMDc2NDE2LCAwLjEwNjMxMSwgMC4xNDcwNTYsIDAuMjMwNDgyLCAwLjI4MzQ0MSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTkwNzQsIDAuMDE5MTI0LCAwLjAxOTM2LCAwLjAxOTQ4NywgMC4wMTk1OTYsIDAuMDE5NzIxLCAwLjAxOTc2MSIsIFwKLSAgICAgICAgICAiMC4wMTkwNSwgMC4wMTkxMDgsIDAuMDE5MzQ1LCAwLjAxOTQ3MiwgMC4wMTk1ODEsIDAuMDE5NzA0LCAwLjAxOTc0NiIsIFwKLSAgICAgICAgICAiMC4wMTkwNDMsIDAuMDE5MTAxLCAwLjAxOTMzNCwgMC4wMTk0NjEsIDAuMDE5NTY5LCAwLjAxOTY5LCAwLjAxOTczNCIsIFwKLSAgICAgICAgICAiMC4wMTkwMzIsIDAuMDE5MDkxLCAwLjAxOTMyNiwgMC4wMTk0NTMsIDAuMDE5NTYyLCAwLjAxOTY4MywgMC4wMTk3MjYiLCBcCi0gICAgICAgICAgIjAuMDE5MDIzLCAwLjAxOTA4MiwgMC4wMTkzMTksIDAuMDE5NDQ2LCAwLjAxOTU1NiwgMC4wMTk2NzYsIDAuMDE5NzE5IiwgXAotICAgICAgICAgICIwLjAxOTAyNiwgMC4wMTkwODMsIDAuMDE5MzE1LCAwLjAxOTQ0MiwgMC4wMTk1NSwgMC4wMTk2NzcsIDAuMDE5NzE1IiwgXAotICAgICAgICAgICIwLjAxOTAyMywgMC4wMTkwNzQsIDAuMDE5MzEsIDAuMDE5NDM3LCAwLjAxOTU0NiwgMC4wMTk2NjcsIDAuMDE5NzExIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDIzMjIsIDAuMDIzMywgMC4wMjM1OTksIDAuMDIzNzYsIDAuMDIzODkzLCAwLjAyNDAzOCwgMC4wMjQwODkiLCBcCi0gICAgICAgICAgIjAuMDIzMjEyLCAwLjAyMzI5MywgMC4wMjM1OTIsIDAuMDIzNzUzLCAwLjAyMzg4NSwgMC4wMjQwMjksIDAuMDI0MDgiLCBcCi0gICAgICAgICAgIjAuMDIzMTQ5LCAwLjAyMzIzOCwgMC4wMjM1NjUsIDAuMDIzNzMsIDAuMDIzODY1LCAwLjAyNDAxMywgMC4wMjQwNjQiLCBcCi0gICAgICAgICAgIjAuMDIzMTU4LCAwLjAyMzI0MiwgMC4wMjM1NTgsIDAuMDIzNzIzLCAwLjAyMzg1OCwgMC4wMjQwMDUsIDAuMDI0MDU4IiwgXAotICAgICAgICAgICIwLjAyMzE2NSwgMC4wMjMyNDgsIDAuMDIzNTU5LCAwLjAyMzcyMiwgMC4wMjM4NTgsIDAuMDI0MDA1LCAwLjAyNDA1OCIsIFwKLSAgICAgICAgICAiMC4wMjMxNzYsIDAuMDIzMjU3LCAwLjAyMzU2MywgMC4wMjM3MjUsIDAuMDIzODYsIDAuMDI0MDA3LCAwLjAyNDA1OSIsIFwKLSAgICAgICAgICAiMC4wMjMxNDIsIDAuMDIzMjMzLCAwLjAyMzU2LCAwLjAyMzcyNCwgMC4wMjM4NTksIDAuMDI0MDA3LCAwLjAyNDA1OSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oU0UpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY4MDMwOTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2NzcxMzI7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjgwMzA5OwotICAgIGNsb2NrX2dhdGVfdGVzdF9waW4gOiB0cnVlOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNDkzOSwgMC4wMDQ5MjcsIDAuMDA0OTIzLCAwLjAwNDkxOCwgMC4wMDQ5MTQsIDAuMDA0OTEsIDAuMDA0OTA2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA1MzcsIDAuMDA1MzY2LCAwLjAwNTM2MiwgMC4wMDUzNTksIDAuMDA1MzU4LCAwLjAwNTM1NSwgMC4wMDUzNTMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUUiOwotICAgICAgc2RmX2NvbmQgOiAiRSA9PSAxJ2IwIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4xMDYyNSwgLTAuMDk1LCAtMC4wODI1LCAtMC4wNzYyNSwgLTAuMDYzNzUsIC0wLjA1Mzc1LCAtMC4wMzg3NSIsIFwKLSAgICAgICAgICAiLTAuMTE3NSwgLTAuMTA2MjUsIC0wLjA5Mzc1LCAtMC4wODc1LCAtMC4wNzUsIC0wLjA2NSwgLTAuMDU2MjUiLCBcCi0gICAgICAgICAgIi0wLjEzNjI1LCAtMC4xMjUsIC0wLjExMjUsIC0wLjEsIC0wLjA5Mzc1LCAtMC4wNzc1LCAtMC4wNjg3NSIsIFwKLSAgICAgICAgICAiLTAuMTQ4NzUsIC0wLjEzNzUsIC0wLjEyNSwgLTAuMTE4NzUsIC0wLjEwNjI1LCAtMC4wOTYyNSwgLTAuMDgxMjUiLCBcCi0gICAgICAgICAgIi0wLjE2MTI1LCAtMC4xNTYyNSwgLTAuMTQzNzUsIC0wLjEzMTI1LCAtMC4xMjUsIC0wLjEwODc1LCAtMC4xIiwgXAotICAgICAgICAgICItMC4xOSwgLTAuMTc4NzUsIC0wLjE2NjI1LCAtMC4xNTM3NSwgLTAuMTQ3NSwgLTAuMTMxMjUsIC0wLjEyMjUiLCBcCi0gICAgICAgICAgIi0wLjIxMTI1LCAtMC4yLCAtMC4xODc1LCAtMC4xNzUsIC0wLjE2ODc1LCAtMC4xNTI1LCAtMC4xNDM3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjEsIC0wLjA4ODc1LCAtMC4wNywgLTAuMDU3NSwgLTAuMDM4NzUsIC0wLjAxNjI1LCAtMC4wMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMTExMjUsIC0wLjEsIC0wLjA4MTI1LCAtMC4wNjg3NSwgLTAuMDU2MjUsIC0wLjAzMzc1LCAtMC4wMTI1IiwgXAotICAgICAgICAgICItMC4xMjM3NSwgLTAuMTEyNSwgLTAuMDkzNzUsIC0wLjA4MTI1LCAtMC4wNjg3NSwgLTAuMDQ2MjUsIC0wLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMTM2MjUsIC0wLjEyNSwgLTAuMTA2MjUsIC0wLjA5Mzc1LCAtMC4wODEyNSwgLTAuMDU4NzUsIC0wLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjE0ODc1LCAtMC4xMzc1LCAtMC4xMTg3NSwgLTAuMTA2MjUsIC0wLjA5Mzc1LCAtMC4wNzEyNSwgLTAuMDUiLCBcCi0gICAgICAgICAgIi0wLjE2NSwgLTAuMTUzNzUsIC0wLjE0MTI1LCAtMC4xMjI1LCAtMC4xMSwgLTAuMDg3NSwgLTAuMDcyNSIsIFwKLSAgICAgICAgICAiLTAuMTg2MjUsIC0wLjE3NSwgLTAuMTU2MjUsIC0wLjE0Mzc1LCAtMC4xMjUsIC0wLjEwMjUsIC0wLjA4NzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFFIjsKLSAgICAgIHNkZl9jb25kIDogIkUgPT0gMSdiMCI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTEyNSwgMC4xMDEyNSwgMC4wODg3NSwgMC4wODI1LCAwLjA3LCAwLjA2LCAwLjA0NSIsIFwKLSAgICAgICAgICAiMC4xMjM3NSwgMC4xMTI1LCAwLjEsIDAuMDkzNzUsIDAuMDgxMjUsIDAuMDcxMjUsIDAuMDYyNSIsIFwKLSAgICAgICAgICAiMC4xNDI1LCAwLjEzMTI1LCAwLjExODc1LCAwLjEwNjI1LCAwLjEsIDAuMDgzNzUsIDAuMDc1IiwgXAotICAgICAgICAgICIwLjE1NSwgMC4xNDM3NSwgMC4xMzEyNSwgMC4xMjUsIDAuMTEyNSwgMC4xMDI1LCAwLjA4NzUiLCBcCi0gICAgICAgICAgIjAuMTY3NSwgMC4xNjI1LCAwLjE1LCAwLjEzNzUsIDAuMTMxMjUsIDAuMTE1LCAwLjEwNjI1IiwgXAotICAgICAgICAgICIwLjE5NjI1LCAwLjE4NSwgMC4xNzI1LCAwLjE2LCAwLjE1Mzc1LCAwLjEzNzUsIDAuMTI4NzUiLCBcCi0gICAgICAgICAgIjAuMjE3NSwgMC4yMDYyNSwgMC4xOTM3NSwgMC4xODEyNSwgMC4xNzUsIDAuMTU4NzUsIDAuMTUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDYyNSwgMC4wOTUsIDAuMDc2MjUsIDAuMDYzNzUsIDAuMDQ1LCAwLjAyMjUsIDAuMDA3NSIsIFwKLSAgICAgICAgICAiMC4xMTc1LCAwLjEwNjI1LCAwLjA4NzUsIDAuMDc1LCAwLjA2MjUsIDAuMDQsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMTMsIDAuMTE4NzUsIDAuMSwgMC4wODc1LCAwLjA3NSwgMC4wNTI1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICIwLjE0MjUsIDAuMTMxMjUsIDAuMTEyNSwgMC4xLCAwLjA4NzUsIDAuMDY1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjE1NSwgMC4xNDM3NSwgMC4xMjUsIDAuMTEyNSwgMC4xLCAwLjA3NzUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIjAuMTcxMjUsIDAuMTYsIDAuMTQ3NSwgMC4xMjg3NSwgMC4xMTYyNSwgMC4wOTM3NSwgMC4wNzg3NSIsIFwKLSAgICAgICAgICAiMC4xOTI1LCAwLjE4MTI1LCAwLjE2MjUsIDAuMTUsIDAuMTMxMjUsIDAuMTA4NzUsIDAuMDkzNzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogVExBVE5UU0NBWDQgKgotICogLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKFRMQVROVFNDQVg0KSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMjk0NDcyOwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIGNsb2NrX2dhdGluZ19pbnRlZ3JhdGVkX2NlbGwgOiAibGF0Y2hfcG9zZWRnZV9wcmVjb250cm9sIjsKLSAgc3RhdGV0YWJsZSgiIENLICBFIFNFICIsICIgRUlOVCAiKSB7Ci0gICAgIHRhYmxlIDogIiAgTCAgTCAgTCA6IC0gOiBMICwgXAotICAgICAgICAgICAgICAgIEwgIEggIEwgOiAtIDogSCAsIFwKLSAgICAgICAgICAgICAgICBMICBMICBIIDogLSA6IEggLCBcCi0gICAgICAgICAgICAgICAgTCAgSCAgSCA6IC0gOiBIICwgXAotICAgICAgICAgICAgICAgIEggIC0gIC0gOiAtIDogTiAiOwotICB9Ci0gIHBpbihFSU5UKSB7Ci0gICAgZGlyZWN0aW9uIDogaW50ZXJuYWw7Ci0gICAgaW50ZXJuYWxfbm9kZSA6ICJFSU5UIjsKLSAgfQotICBwaW4oQ0spICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDU3OTM4MTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA1NzkxMTE7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNTc5MzgxOwotICAgIGNsb2NrX2dhdGVfY2xvY2tfcGluIDogdHJ1ZTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDI2MTEsIDAuMDAyNTk1LCAwLjAwMjU4MiwgMC4wMDI1NzMsIDAuMDAyNTY4LCAwLjAwMjU2NCwgMC4wMDI1NjMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDI0NDYsIDAuMDAyNDM0LCAwLjAwMjQyMywgMC4wMDI0MTcsIDAuMDAyNDExLCAwLjAwMjQwOCwgMC4wMDI0MDQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFFJiFTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJFX0VRXzBfQU5fU0VfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjIxMjA3NSwgMC4yMjM3MTQsIDAuMjM4NDc5LCAwLjI1Mjk2LCAwLjI2NzM1NSwgMC4yODgyNjgsIDAuMzA1MTI3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihFKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2MzUwNDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MzUwNDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2MzQ5Njg7Ci0gICAgY2xvY2tfZ2F0ZV9lbmFibGVfcGluIDogdHJ1ZTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDIzLCAwLjAwMjI5NCwgMC4wMDIyODcsIDAuMDAyMjgxLCAwLjAwMjI3NiwgMC4wMDIyNjgsIDAuMDAyMjY1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzNTQ0LCAwLjAwMzUzNiwgMC4wMDM1MzEsIDAuMDAzNTI3LCAwLjAwMzUyNSwgMC4wMDM1MjIsIDAuMDAzNTIxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJTRSA9PSAxJ2IwIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wODc1LCAtMC4wNzYyNSwgLTAuMDYzNzUsIC0wLjA1NzUsIC0wLjA0NSwgLTAuMDM1LCAtMC4wMjYyNSIsIFwKLSAgICAgICAgICAiLTAuMDk4NzUsIC0wLjA4NzUsIC0wLjA3NSwgLTAuMDY4NzUsIC0wLjA1NjI1LCAtMC4wNDYyNSwgLTAuMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMTExMjUsIC0wLjEwNjI1LCAtMC4wOTM3NSwgLTAuMDgxMjUsIC0wLjA3NSwgLTAuMDU4NzUsIC0wLjA1IiwgXAotICAgICAgICAgICItMC4xMywgLTAuMTE4NzUsIC0wLjEwNjI1LCAtMC4xLCAtMC4wODc1LCAtMC4wNzc1LCAtMC4wNjg3NSIsIFwKLSAgICAgICAgICAiLTAuMTQyNSwgLTAuMTMxMjUsIC0wLjEyNSwgLTAuMTEyNSwgLTAuMTA2MjUsIC0wLjA5LCAtMC4wODEyNSIsIFwKLSAgICAgICAgICAiLTAuMTcxMjUsIC0wLjE2LCAtMC4xNDc1LCAtMC4xMzUsIC0wLjEyODc1LCAtMC4xMTI1LCAtMC4xMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMTkyNSwgLTAuMTgxMjUsIC0wLjE2ODc1LCAtMC4xNTYyNSwgLTAuMTUsIC0wLjEzMzc1LCAtMC4xMjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wODc1LCAtMC4wNzYyNSwgLTAuMDU3NSwgLTAuMDQ1LCAtMC4wMzI1LCAtMC4wMSwgMC4wMTEyNSIsIFwKLSAgICAgICAgICAiLTAuMDk4NzUsIC0wLjA4NzUsIC0wLjA2ODc1LCAtMC4wNTYyNSwgLTAuMDM3NSwgLTAuMDE1LCAwIiwgXAotICAgICAgICAgICItMC4xMTEyNSwgLTAuMSwgLTAuMDgxMjUsIC0wLjA2ODc1LCAtMC4wNTYyNSwgLTAuMDMzNzUsIC0wLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjEyMzc1LCAtMC4xMTI1LCAtMC4wOTM3NSwgLTAuMDgxMjUsIC0wLjA2ODc1LCAtMC4wNDYyNSwgLTAuMDI1IiwgXAotICAgICAgICAgICItMC4xMzYyNSwgLTAuMTI1LCAtMC4xMTI1LCAtMC4wOTM3NSwgLTAuMDgxMjUsIC0wLjA1ODc1LCAtMC4wMzc1IiwgXAotICAgICAgICAgICItMC4xNTg3NSwgLTAuMTQ3NSwgLTAuMTI4NzUsIC0wLjExNjI1LCAtMC4xMDM3NSwgLTAuMDgxMjUsIC0wLjA2IiwgXAotICAgICAgICAgICItMC4xOCwgLTAuMTYyNSwgLTAuMTUsIC0wLjEzNzUsIC0wLjExODc1LCAtMC4wOTYyNSwgLTAuMDgxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJTRSA9PSAxJ2IwIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTM3NSwgMC4wODI1LCAwLjA3LCAwLjA2Mzc1LCAwLjA1MTI1LCAwLjA0MTI1LCAwLjAzMjUiLCBcCi0gICAgICAgICAgIjAuMTA1LCAwLjA5Mzc1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNjI1LCAwLjA1MjUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMTE3NSwgMC4xMTI1LCAwLjEsIDAuMDg3NSwgMC4wODEyNSwgMC4wNjUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIjAuMTM2MjUsIDAuMTI1LCAwLjExMjUsIDAuMTA2MjUsIDAuMDkzNzUsIDAuMDgzNzUsIDAuMDc1IiwgXAotICAgICAgICAgICIwLjE0ODc1LCAwLjEzNzUsIDAuMTMxMjUsIDAuMTE4NzUsIDAuMTEyNSwgMC4wOTYyNSwgMC4wODc1IiwgXAotICAgICAgICAgICIwLjE3NzUsIDAuMTY2MjUsIDAuMTUzNzUsIDAuMTQxMjUsIDAuMTM1LCAwLjExODc1LCAwLjExIiwgXAotICAgICAgICAgICIwLjE5ODc1LCAwLjE4NzUsIDAuMTc1LCAwLjE2MjUsIDAuMTU2MjUsIDAuMTQsIDAuMTMxMjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTM3NSwgMC4wODI1LCAwLjA2Mzc1LCAwLjA1MTI1LCAwLjAzODc1LCAwLjAxNjI1LCAtMC4wMDUiLCBcCi0gICAgICAgICAgIjAuMTA1LCAwLjA5Mzc1LCAwLjA3NSwgMC4wNjI1LCAwLjA0Mzc1LCAwLjAyMTI1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICIwLjExNzUsIDAuMTA2MjUsIDAuMDg3NSwgMC4wNzUsIDAuMDYyNSwgMC4wNCwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4xMywgMC4xMTg3NSwgMC4xLCAwLjA4NzUsIDAuMDc1LCAwLjA1MjUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMTQyNSwgMC4xMzEyNSwgMC4xMTg3NSwgMC4xLCAwLjA4NzUsIDAuMDY1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjE2NSwgMC4xNTM3NSwgMC4xMzUsIDAuMTIyNSwgMC4xMSwgMC4wODc1LCAwLjA2NjI1IiwgXAotICAgICAgICAgICIwLjE4NjI1LCAwLjE2ODc1LCAwLjE1NjI1LCAwLjE0Mzc1LCAwLjEyNSwgMC4xMDI1LCAwLjA4NzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEVDSykgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjUxNDAyOwotICAgIGNsb2NrX2dhdGVfb3V0X3BpbiA6IHRydWU7Ci0gICAgc3RhdGVfZnVuY3Rpb24gOiAiKENLIEVJTlQpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMzY0NDYsIDAuMzcwODY4LCAwLjQ5NjMyNSwgMC41ODU4NDUsIDAuNzI5MTI5LCAwLjg1NDM3LCAxLjAzMzM3IiwgXAotICAgICAgICAgICIwLjI0ODMxLCAwLjM4MjY4OCwgMC41MDgyMDgsIDAuNTk3Nzc0LCAwLjc0MDk5NSwgMC44NjYyNDIsIDEuMDQ1MDgiLCBcCi0gICAgICAgICAgIjAuMjYzNTc3LCAwLjM5Nzk1OSwgMC41MjM0NzcsIDAuNjEzMDM0LCAwLjc1NjE5NywgMC44ODE0OTYsIDEuMDYwMzUiLCBcCi0gICAgICAgICAgIjAuMjc4ODY2LCAwLjQxMzIzNCwgMC41Mzg3NTUsIDAuNjI4Mjg5LCAwLjc3MTU0NywgMC44OTY3OTYsIDEuMDc1NjMiLCBcCi0gICAgICAgICAgIjAuMjkzODM2LCAwLjQyODMzMiwgMC41NTM4NDMsIDAuNjQzMzUyLCAwLjc4NjU2MywgMC45MTE4MDQsIDEuMDkwODQiLCBcCi0gICAgICAgICAgIjAuMzE3Mjk2LCAwLjQ1MTc5OCwgMC41NzczMDgsIDAuNjY2ODE1LCAwLjgxMDAyNywgMC45MzUyNjksIDEuMTE0MzEiLCBcCi0gICAgICAgICAgIjAuMzM2NjU4LCAwLjQ3MTIxLCAwLjU5NjY3NSwgMC42ODYxOTMsIDAuODI5MzYsIDAuOTU0NjIyLCAxLjEzMzY0Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDcyNDE1LCAwLjMxMzgxMiwgMC41NjQxMTcsIDAuNzQ2NTc2LCAxLjAzNTY1LCAxLjI5MjU1LCAxLjY1Nzc2IiwgXAotICAgICAgICAgICIwLjA3MjM3MSwgMC4zMTM3OTMsIDAuNTY0NjE0LCAwLjc0NDg5NywgMS4wMzUwMywgMS4yODk0MiwgMS42NTciLCBcCi0gICAgICAgICAgIjAuMDcyMzYsIDAuMzEzNzcyLCAwLjU2NDY3NCwgMC43NDY4MSwgMS4wMzc4MiwgMS4yOTMwNywgMS42NTcwNiIsIFwKLSAgICAgICAgICAiMC4wNzIzOCwgMC4zMTM3OTEsIDAuNTY0Njg0LCAwLjc0NTAzNiwgMS4wMzUsIDEuMjg5NDIsIDEuNjU2OTgiLCBcCi0gICAgICAgICAgIjAuMDcyMjgyLCAwLjMxMzgyNiwgMC41NjQ1ODgsIDAuNzQ1NDg2LCAxLjAzNzg2LCAxLjI5MjU2LCAxLjY1MzA2IiwgXAotICAgICAgICAgICIwLjA3MjI4NywgMC4zMTM2MDEsIDAuNTY0MDQ4LCAwLjc0NTQzOSwgMS4wMzc4NiwgMS4yOTI1MiwgMS42NTI5NyIsIFwKLSAgICAgICAgICAiMC4wNzIyODQsIDAuMzEzNTk0LCAwLjU2NDUzNywgMC43NDY1NTIsIDEuMDM3MTIsIDEuMjkyNzQsIDEuNjU3NzIiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xOTQ1NzEsIDAuMzQyNDU1LCAwLjQ4ODAzNSwgMC41OTIwOTcsIDAuNzU4NTUzLCAwLjkwNDI1OCwgMS4xMTI0NyIsIFwKLSAgICAgICAgICAiMC4yMDYyNjIsIDAuMzU0MDk1LCAwLjQ5OTY2NywgMC42MDM2OTYsIDAuNzcwMTg5LCAwLjkxNTkwNCwgMS4xMjQwMiIsIFwKLSAgICAgICAgICAiMC4yMjA5ODIsIDAuMzY4ODQ0LCAwLjUxNDQxOCwgMC42MTg0NjYsIDAuNzg0OTQ1LCAwLjkzMDYzOSwgMS4xMzg4NyIsIFwKLSAgICAgICAgICAiMC4yMzUzNTQsIDAuMzgzMjI2LCAwLjUyODgwOSwgMC42MzI4NDksIDAuNzk5MzM1LCAwLjk0NTExLCAxLjE1MzIxIiwgXAotICAgICAgICAgICIwLjI0OTcxNSwgMC4zOTc1NzEsIDAuNTQzMTU3LCAwLjY0NzE5NiwgMC44MTM2ODMsIDAuOTU5NDE1LCAxLjE2NzYxIiwgXAotICAgICAgICAgICIwLjI3MDU0NSwgMC40MTg0MjIsIDAuNTY0MDA0LCAwLjY2ODAyNiwgMC44MzQ1MTksIDAuOTgwMjIxLCAxLjE4ODQxIiwgXAotICAgICAgICAgICIwLjI4NzIxNCwgMC40MzUwNTgsIDAuNTgwNzEzLCAwLjY4NDc2NiwgMC44NTEyMzgsIDAuOTk2ODY1LCAxLjIwNTIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjI1NzEsIDAuMzQ2OTUyLCAwLjYzNzM3NywgMC44NDI5MjgsIDEuMTc2NDMsIDEuNDY1NjMsIDEuODgyODMiLCBcCi0gICAgICAgICAgIjAuMDYyNjI3LCAwLjM0NjQ2MywgMC42MzY3NDksIDAuODQyODE0LCAxLjE3NjYyLCAxLjQ2NjE4LCAxLjg4Mjg4IiwgXAotICAgICAgICAgICIwLjA2MjU5NSwgMC4zNDU4OTYsIDAuNjM3Mzc2LCAwLjg0MjcyOSwgMS4xNzU3NywgMS40NjYxLCAxLjg4MDg5IiwgXAotICAgICAgICAgICIwLjA2MjU5NiwgMC4zNDU5MDEsIDAuNjM3Mzc1LCAwLjg0MzE3NiwgMS4xNzU4MSwgMS40NjcxLCAxLjg4MDc1IiwgXAotICAgICAgICAgICIwLjA2MjY0NiwgMC4zNDcwNCwgMC42MzY3MzYsIDAuODQzMTgyLCAxLjE3NTgyLCAxLjQ2NzAzLCAxLjg4MTQ0IiwgXAotICAgICAgICAgICIwLjA2MjU3MSwgMC4zNDY5OTksIDAuNjM2NzI5LCAwLjg0MjMzOCwgMS4xNzU3NywgMS40NjYyNywgMS44ODI4IiwgXAotICAgICAgICAgICIwLjA2MjYyOSwgMC4zNDU5MDIsIDAuNjM2Nzc0LCAwLjg0MjQ0OCwgMS4xNzYzMiwgMS40NjYyLCAxLjg4MTAyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2Njg2LCAwLjAwNjgxNSwgMC4wMDY4MzYsIDAuMDA2ODQsIDAuMDA2ODQ2LCAwLjAwNjg0OCwgMC4wMDY4NSIsIFwKLSAgICAgICAgICAiMC4wMDY2NzEsIDAuMDA2OCwgMC4wMDY4MTksIDAuMDA2ODI1LCAwLjAwNjgyOSwgMC4wMDY4MzQsIDAuMDA2ODM1IiwgXAotICAgICAgICAgICIwLjAwNjY1OCwgMC4wMDY3ODgsIDAuMDA2ODA4LCAwLjAwNjgxMywgMC4wMDY4MTcsIDAuMDA2ODIsIDAuMDA2ODIzIiwgXAotICAgICAgICAgICIwLjAwNjY1LCAwLjAwNjc3OSwgMC4wMDY3OTgsIDAuMDA2ODA0LCAwLjAwNjgwOCwgMC4wMDY4MTMsIDAuMDA2ODE0IiwgXAotICAgICAgICAgICIwLjAwNjY0NCwgMC4wMDY3NzMsIDAuMDA2NzkyLCAwLjAwNjc5OCwgMC4wMDY4MDMsIDAuMDA2ODA2LCAwLjAwNjgwOCIsIFwKLSAgICAgICAgICAiMC4wMDY2MzksIDAuMDA2NzY4LCAwLjAwNjc4NywgMC4wMDY3OTMsIDAuMDA2Nzk4LCAwLjAwNjgwMSwgMC4wMDY4MDMiLCBcCi0gICAgICAgICAgIjAuMDA2NjM5LCAwLjAwNjc2OCwgMC4wMDY3ODgsIDAuMDA2NzkzLCAwLjAwNjc5OCwgMC4wMDY4MDIsIDAuMDA2ODAzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDg4NTYsIDAuMDA4OTkzLCAwLjAwOTAxLCAwLjAwOTAxNSwgMC4wMDkwMTksIDAuMDA5MDIxLCAwLjAwOTAyMyIsIFwKLSAgICAgICAgICAiMC4wMDg4NDIsIDAuMDA4OTgsIDAuMDA4OTk3LCAwLjAwOTAwMiwgMC4wMDkwMDYsIDAuMDA5MDA5LCAwLjAwOTAxMSIsIFwKLSAgICAgICAgICAiMC4wMDg4MzEsIDAuMDA4OTY5LCAwLjAwODk4NiwgMC4wMDg5OTEsIDAuMDA4OTk1LCAwLjAwODk5OCwgMC4wMDg5OTkiLCBcCi0gICAgICAgICAgIjAuMDA4ODI3LCAwLjAwODk2NSwgMC4wMDg5ODIsIDAuMDA4OTg3LCAwLjAwODk5MiwgMC4wMDg5OTQsIDAuMDA4OTk2IiwgXAotICAgICAgICAgICIwLjAwODgyNiwgMC4wMDg5NjQsIDAuMDA4OTgxLCAwLjAwODk4NywgMC4wMDg5OTEsIDAuMDA4OTkzLCAwLjAwODk5NSIsIFwKLSAgICAgICAgICAiMC4wMDg4MjcsIDAuMDA4OTY0LCAwLjAwODk4LCAwLjAwODk4NSwgMC4wMDg5OSwgMC4wMDg5OTIsIDAuMDA4OTk0IiwgXAotICAgICAgICAgICIwLjAwODgzMywgMC4wMDg5NywgMC4wMDg5ODUsIDAuMDA4OTksIDAuMDA4OTk1LCAwLjAwODk5OSwgMC4wMDg5OTkiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFNFKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2NzUwMzk7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjcxOTE3OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDY3NTAzOTsKLSAgICBjbG9ja19nYXRlX3Rlc3RfcGluIDogdHJ1ZTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDI0NzEsIDAuMDAyNDU5LCAwLjAwMjQ1NCwgMC4wMDI0NSwgMC4wMDI0NDcsIDAuMDAyNDQzLCAwLjAwMjQ0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzNjgzLCAwLjAwMzY3OCwgMC4wMDM2NzQsIDAuMDAzNjcyLCAwLjAwMzY3LCAwLjAwMzY2NywgMC4wMDM2NjYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUUiOwotICAgICAgc2RmX2NvbmQgOiAiRSA9PSAxJ2IwIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wOTM3NSwgLTAuMDgyNSwgLTAuMDcsIC0wLjA2Mzc1LCAtMC4wNTEyNSwgLTAuMDQxMjUsIC0wLjAyNjI1IiwgXAotICAgICAgICAgICItMC4xMDUsIC0wLjA5Mzc1LCAtMC4wODEyNSwgLTAuMDc1LCAtMC4wNjI1LCAtMC4wNTI1LCAtMC4wNDM3NSIsIFwKLSAgICAgICAgICAiLTAuMTE3NSwgLTAuMTA2MjUsIC0wLjEsIC0wLjA4NzUsIC0wLjA4MTI1LCAtMC4wNjUsIC0wLjA1NjI1IiwgXAotICAgICAgICAgICItMC4xMzYyNSwgLTAuMTI1LCAtMC4xMTI1LCAtMC4xMDYyNSwgLTAuMDkzNzUsIC0wLjA4Mzc1LCAtMC4wNjg3NSIsIFwKLSAgICAgICAgICAiLTAuMTQ4NzUsIC0wLjEzNzUsIC0wLjEyNSwgLTAuMTE4NzUsIC0wLjExMjUsIC0wLjA5NjI1LCAtMC4wODc1IiwgXAotICAgICAgICAgICItMC4xNzc1LCAtMC4xNjYyNSwgLTAuMTUzNzUsIC0wLjE0MTI1LCAtMC4xMzUsIC0wLjExODc1LCAtMC4xMSIsIFwKLSAgICAgICAgICAiLTAuMTk4NzUsIC0wLjE4NzUsIC0wLjE3NSwgLTAuMTYyNSwgLTAuMTU2MjUsIC0wLjE0LCAtMC4xMzEyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjA5Mzc1LCAtMC4wODI1LCAtMC4wNjM3NSwgLTAuMDUxMjUsIC0wLjAzODc1LCAtMC4wMTYyNSwgMC4wMDUiLCBcCi0gICAgICAgICAgIi0wLjEwNSwgLTAuMDkzNzUsIC0wLjA3NSwgLTAuMDYyNSwgLTAuMDUsIC0wLjAyNzUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICItMC4xMTc1LCAtMC4xMDYyNSwgLTAuMDg3NSwgLTAuMDc1LCAtMC4wNjI1LCAtMC4wNCwgLTAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjEzLCAtMC4xMTg3NSwgLTAuMTA2MjUsIC0wLjA4NzUsIC0wLjA3NSwgLTAuMDUyNSwgLTAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjE0MjUsIC0wLjEzMTI1LCAtMC4xMTI1LCAtMC4xLCAtMC4wODc1LCAtMC4wNjUsIC0wLjA0Mzc1IiwgXAotICAgICAgICAgICItMC4xNjUsIC0wLjE0NzUsIC0wLjEzNSwgLTAuMTIyNSwgLTAuMTAzNzUsIC0wLjA4MTI1LCAtMC4wNjYyNSIsIFwKLSAgICAgICAgICAiLTAuMTgsIC0wLjE2ODc1LCAtMC4xNSwgLTAuMTM3NSwgLTAuMTI1LCAtMC4xMDI1LCAtMC4wODEyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUUiOwotICAgICAgc2RmX2NvbmQgOiAiRSA9PSAxJ2IwIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xLCAwLjA4ODc1LCAwLjA3NjI1LCAwLjA3LCAwLjA1NzUsIDAuMDQ3NSwgMC4wMzI1IiwgXAotICAgICAgICAgICIwLjExMTI1LCAwLjEsIDAuMDg3NSwgMC4wODEyNSwgMC4wNjg3NSwgMC4wNTg3NSwgMC4wNSIsIFwKLSAgICAgICAgICAiMC4xMjM3NSwgMC4xMTI1LCAwLjEwNjI1LCAwLjA5Mzc1LCAwLjA4NzUsIDAuMDcxMjUsIDAuMDYyNSIsIFwKLSAgICAgICAgICAiMC4xNDI1LCAwLjEzMTI1LCAwLjExODc1LCAwLjExMjUsIDAuMSwgMC4wOSwgMC4wNzUiLCBcCi0gICAgICAgICAgIjAuMTU1LCAwLjE0Mzc1LCAwLjEzMTI1LCAwLjEyNSwgMC4xMTg3NSwgMC4xMDI1LCAwLjA5Mzc1IiwgXAotICAgICAgICAgICIwLjE4Mzc1LCAwLjE3MjUsIDAuMTYsIDAuMTQ3NSwgMC4xNDEyNSwgMC4xMjUsIDAuMTE2MjUiLCBcCi0gICAgICAgICAgIjAuMjA1LCAwLjE5Mzc1LCAwLjE4MTI1LCAwLjE2ODc1LCAwLjE2MjUsIDAuMTQ2MjUsIDAuMTM3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEsIDAuMDg4NzUsIDAuMDcsIDAuMDU3NSwgMC4wNDUsIDAuMDIyNSwgMC4wMDEyNSIsIFwKLSAgICAgICAgICAiMC4xMTEyNSwgMC4xLCAwLjA4MTI1LCAwLjA2ODc1LCAwLjA1NjI1LCAwLjAzMzc1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMTIzNzUsIDAuMTEyNSwgMC4wOTM3NSwgMC4wODEyNSwgMC4wNjg3NSwgMC4wNDYyNSwgMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMTM2MjUsIDAuMTI1LCAwLjExMjUsIDAuMDkzNzUsIDAuMDgxMjUsIDAuMDU4NzUsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiMC4xNDg3NSwgMC4xMzc1LCAwLjExODc1LCAwLjEwNjI1LCAwLjA5Mzc1LCAwLjA3MTI1LCAwLjA1IiwgXAotICAgICAgICAgICIwLjE3MTI1LCAwLjE1Mzc1LCAwLjE0MTI1LCAwLjEyODc1LCAwLjExLCAwLjA4NzUsIDAuMDcyNSIsIFwKLSAgICAgICAgICAiMC4xODYyNSwgMC4xNzUsIDAuMTU2MjUsIDAuMTQzNzUsIDAuMTMxMjUsIDAuMTA4NzUsIDAuMDg3NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBUTEFUTlRTQ0FYOCAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoVExBVE5UU0NBWDgpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC40NzY1NDE7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgY2xvY2tfZ2F0aW5nX2ludGVncmF0ZWRfY2VsbCA6ICJsYXRjaF9wb3NlZGdlX3ByZWNvbnRyb2wiOwotICBzdGF0ZXRhYmxlKCIgQ0sgIEUgU0UgIiwgIiBFSU5UICIpIHsKLSAgICAgdGFibGUgOiAiICBMICBMICBMIDogLSA6IEwgLCBcCi0gICAgICAgICAgICAgICAgTCAgSCAgTCA6IC0gOiBIICwgXAotICAgICAgICAgICAgICAgIEwgIEwgIEggOiAtIDogSCAsIFwKLSAgICAgICAgICAgICAgICBMICBIICBIIDogLSA6IEggLCBcCi0gICAgICAgICAgICAgICAgSCAgLSAgLSA6IC0gOiBOICI7Ci0gIH0KLSAgcGluKEVJTlQpIHsKLSAgICBkaXJlY3Rpb24gOiBpbnRlcm5hbDsKLSAgICBpbnRlcm5hbF9ub2RlIDogIkVJTlQiOwotICB9Ci0gIHBpbihDSykgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjAxOTE3OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYwMTYxMTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2MDE5MTc7Ci0gICAgY2xvY2tfZ2F0ZV9jbG9ja19waW4gOiB0cnVlOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjk2LCAwLjAwMjk0NSwgMC4wMDI5MzMsIDAuMDAyOTI1LCAwLjAwMjkxOSwgMC4wMDI5MTQsIDAuMDAyOTEzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyOTE0LCAwLjAwMjkwMywgMC4wMDI4OTQsIDAuMDAyODg2LCAwLjAwMjg4MiwgMC4wMDI4NzcsIDAuMDAyODc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRSYhU0UiOwotICAgICAgc2RmX2NvbmQgOiAiRV9FUV8wX0FOX1NFX0VRXzAgPT0gMSdiMSI7Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4yMzcyOTgsIDAuMjQ5MDE5LCAwLjI2Mzc3MiwgMC4yNzgyODUsIDAuMjkyODU5LCAwLjMxNDUwMywgMC4zMzE4MTciKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEUpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY1NjY2ODsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2NTY2NTE7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjU2NjY4OwotICAgIGNsb2NrX2dhdGVfZW5hYmxlX3BpbiA6IHRydWU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzMDgzLCAwLjAwMzA3NywgMC4wMDMwNywgMC4wMDMwNjQsIDAuMDAzMDU5LCAwLjAwMzA1MSwgMC4wMDMwNDYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDQwMjcsIDAuMDA0MDE5LCAwLjAwNDAxNCwgMC4wMDQwMTEsIDAuMDA0MDA4LCAwLjAwNDAwNSwgMC4wMDQwMDMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIVNFIjsKLSAgICAgIHNkZl9jb25kIDogIlNFID09IDEnYjAiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjA5Mzc1LCAtMC4wODI1LCAtMC4wNywgLTAuMDU3NSwgLTAuMDUxMjUsIC0wLjAzNSwgLTAuMDI2MjUiLCBcCi0gICAgICAgICAgIi0wLjEwNSwgLTAuMDkzNzUsIC0wLjA4MTI1LCAtMC4wNjg3NSwgLTAuMDYyNSwgLTAuMDQ2MjUsIC0wLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjExNzUsIC0wLjEwNjI1LCAtMC4wOTM3NSwgLTAuMDg3NSwgLTAuMDc1LCAtMC4wNjUsIC0wLjA1IiwgXAotICAgICAgICAgICItMC4xMzYyNSwgLTAuMTI1LCAtMC4xMTI1LCAtMC4xLCAtMC4wOTM3NSwgLTAuMDc3NSwgLTAuMDY4NzUiLCBcCi0gICAgICAgICAgIi0wLjE0ODc1LCAtMC4xMzc1LCAtMC4xMjUsIC0wLjExODc1LCAtMC4xMDYyNSwgLTAuMDksIC0wLjA4MTI1IiwgXAotICAgICAgICAgICItMC4xNzEyNSwgLTAuMTYsIC0wLjE0NzUsIC0wLjE0MTI1LCAtMC4xMjg3NSwgLTAuMTE4NzUsIC0wLjEwMzc1IiwgXAotICAgICAgICAgICItMC4xOTI1LCAtMC4xODEyNSwgLTAuMTY4NzUsIC0wLjE2MjUsIC0wLjE1LCAtMC4xNCwgLTAuMTI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDg3NSwgLTAuMDc2MjUsIC0wLjA1NzUsIC0wLjA0NSwgLTAuMDMyNSwgLTAuMDEsIDAuMDExMjUiLCBcCi0gICAgICAgICAgIi0wLjA5ODc1LCAtMC4wODc1LCAtMC4wNjg3NSwgLTAuMDU2MjUsIC0wLjAzNzUsIC0wLjAxNSwgMCIsIFwKLSAgICAgICAgICAiLTAuMTExMjUsIC0wLjEsIC0wLjA4MTI1LCAtMC4wNjg3NSwgLTAuMDUsIC0wLjAyNzUsIC0wLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjEyMzc1LCAtMC4xMTI1LCAtMC4wOTM3NSwgLTAuMDgxMjUsIC0wLjA2ODc1LCAtMC4wNDYyNSwgLTAuMDI1IiwgXAotICAgICAgICAgICItMC4xMzYyNSwgLTAuMTI1LCAtMC4xMDYyNSwgLTAuMDkzNzUsIC0wLjA4MTI1LCAtMC4wNTg3NSwgLTAuMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMTU4NzUsIC0wLjE0NzUsIC0wLjEyODc1LCAtMC4xMTYyNSwgLTAuMTAzNzUsIC0wLjA4MTI1LCAtMC4wNiIsIFwKLSAgICAgICAgICAiLTAuMTgsIC0wLjE2MjUsIC0wLjE1LCAtMC4xMzc1LCAtMC4xMTg3NSwgLTAuMDk2MjUsIC0wLjA4MTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhU0UiOwotICAgICAgc2RmX2NvbmQgOiAiU0UgPT0gMSdiMCI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMSwgMC4wODg3NSwgMC4wNzYyNSwgMC4wNjM3NSwgMC4wNTc1LCAwLjA0MTI1LCAwLjAzMjUiLCBcCi0gICAgICAgICAgIjAuMTExMjUsIDAuMSwgMC4wODc1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNTI1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjEyMzc1LCAwLjExMjUsIDAuMSwgMC4wOTM3NSwgMC4wODEyNSwgMC4wNzEyNSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiMC4xNDI1LCAwLjEzMTI1LCAwLjExODc1LCAwLjEwNjI1LCAwLjEsIDAuMDgzNzUsIDAuMDc1IiwgXAotICAgICAgICAgICIwLjE1NSwgMC4xNDM3NSwgMC4xMzEyNSwgMC4xMjUsIDAuMTEyNSwgMC4wOTYyNSwgMC4wODc1IiwgXAotICAgICAgICAgICIwLjE3NzUsIDAuMTY2MjUsIDAuMTUzNzUsIDAuMTQ3NSwgMC4xMzUsIDAuMTI1LCAwLjExIiwgXAotICAgICAgICAgICIwLjE5ODc1LCAwLjE4NzUsIDAuMTc1LCAwLjE2ODc1LCAwLjE1NjI1LCAwLjE0NjI1LCAwLjEzMTI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDkzNzUsIDAuMDgyNSwgMC4wNjM3NSwgMC4wNTEyNSwgMC4wMzg3NSwgMC4wMTYyNSwgLTAuMDA1IiwgXAotICAgICAgICAgICIwLjEwNSwgMC4wOTM3NSwgMC4wNzUsIDAuMDYyNSwgMC4wNDM3NSwgMC4wMjEyNSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiMC4xMTc1LCAwLjEwNjI1LCAwLjA4NzUsIDAuMDc1LCAwLjA1NjI1LCAwLjAzMzc1LCAwLjAxODc1IiwgXAotICAgICAgICAgICIwLjEzLCAwLjExODc1LCAwLjEsIDAuMDg3NSwgMC4wNzUsIDAuMDUyNSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4xNDI1LCAwLjEzMTI1LCAwLjExMjUsIDAuMSwgMC4wODc1LCAwLjA2NSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4xNjUsIDAuMTUzNzUsIDAuMTM1LCAwLjEyMjUsIDAuMTEsIDAuMDg3NSwgMC4wNjYyNSIsIFwKLSAgICAgICAgICAiMC4xODYyNSwgMC4xNjg3NSwgMC4xNTYyNSwgMC4xNDM3NSwgMC4xMjUsIDAuMTAyNSwgMC4wODc1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihFQ0spICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMS4wMzU1NjsKLSAgICBjbG9ja19nYXRlX291dF9waW4gOiB0cnVlOwotICAgIHN0YXRlX2Z1bmN0aW9uIDogIihDSyBFSU5UKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjMxODA1LCAwLjMwNzUzNiwgMC4zNzIyNTgsIDAuNDE3ODYxLCAwLjQ5MDY4NiwgMC41NTQzMywgMC42NDUzMDciLCBcCi0gICAgICAgICAgIjAuMjQzNTI2LCAwLjMxOTMwNiwgMC4zODQwMDEsIDAuNDI5NjEsIDAuNTAyNDEyLCAwLjU2NjA2MSwgMC42NTcwNDgiLCBcCi0gICAgICAgICAgIjAuMjU5MDA4LCAwLjMzNDgxMiwgMC4zOTk0MTQsIDAuNDQ1MDE2LCAwLjUxNzg0MSwgMC41ODE0ODYsIDAuNjcyNDciLCBcCi0gICAgICAgICAgIjAuMjc0MjQ0LCAwLjM1MDEzMywgMC40MTQ3ODMsIDAuNDYwNDIsIDAuNTMzMjE1LCAwLjU5Njg3NSwgMC42ODc4NyIsIFwKLSAgICAgICAgICAiMC4yODkxMTYsIDAuMzY0OTE5LCAwLjQyOTUxOCwgMC40NzUxMiwgMC41NDc5NDYsIDAuNjExNTkxLCAwLjcwMjU3MiIsIFwKLSAgICAgICAgICAiMC4zMTMyMjcsIDAuMzg5MTA4LCAwLjQ1Mzc4OCwgMC40OTkzOTIsIDAuNTcyMTgxLCAwLjYzNTg0NSwgMC43MjY4MzgiLCBcCi0gICAgICAgICAgIjAuMzMyODk4LCAwLjQwODc3MSwgMC40NzM0MjUsIDAuNTE5MDQ1LCAwLjU5MTg0NCwgMC42NTU1MTQsIDAuNzQ2NDk4Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU0MTU3LCAwLjE3NTAxNiwgMC4yOTk1OTYsIDAuMzkwNjYsIDAuNTM1NzIxLCAwLjY2NDU4MSwgMC44NTA0ODkiLCBcCi0gICAgICAgICAgIjAuMDU0MTM0LCAwLjE3NDk1NiwgMC4yOTk1NjIsIDAuMzkwNjMsIDAuNTM1ODg4LCAwLjY2NDU1OCwgMC44NDgwMTUiLCBcCi0gICAgICAgICAgIjAuMDU0MTgsIDAuMTc1MDQ0LCAwLjI5OTU3NSwgMC4zOTA2NDcsIDAuNTM2MjAzLCAwLjY2NDU0NywgMC44NDgwMjMiLCBcCi0gICAgICAgICAgIjAuMDU0MjUxLCAwLjE3NTAyOCwgMC4yOTk3MzcsIDAuMzkwNTMsIDAuNTM1NzE2LCAwLjY2NTU4MiwgMC44NDc3OTciLCBcCi0gICAgICAgICAgIjAuMDU0MTgzLCAwLjE3NTAyMiwgMC4yOTk1NzQsIDAuMzkwNjQ1LCAwLjUzNjE5NiwgMC42NjQ1NDEsIDAuODQ4MDI0IiwgXAotICAgICAgICAgICIwLjA1NDI5LCAwLjE3NDk0OSwgMC4yOTk0MDIsIDAuMzkwNDg3LCAwLjUzNjE3MywgMC42NjQ1MDcsIDAuODQ3ODk0IiwgXAotICAgICAgICAgICIwLjA1NDI5MiwgMC4xNzQ5NTksIDAuMjk5NzExLCAwLjM5MDUzMSwgMC41MzU3MjgsIDAuNjY1NzA5LCAwLjg0ODAxNiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE5NjI1MSwgMC4yNzUwODcsIDAuMzQ5NjUzLCAwLjQwMjc5NCwgMC40ODc4ODgsIDAuNTYyMzk3LCAwLjY2ODgxMyIsIFwKLSAgICAgICAgICAiMC4yMDc5NDQsIDAuMjg2NzkyLCAwLjM2MTMzNiwgMC40MTQ0ODIsIDAuNDk5NTgyLCAwLjU3NDA2NiwgMC42ODA1IiwgXAotICAgICAgICAgICIwLjIyMjY5NCwgMC4zMDE1LCAwLjM3NjA2NywgMC40MjkyMTcsIDAuNTE0MzE3LCAwLjU4ODgwMiwgMC42OTUyNDIiLCBcCi0gICAgICAgICAgIjAuMjM3MjU4LCAwLjMxNjA2NCwgMC4zOTA2MjYsIDAuNDQzNzY3LCAwLjUyODg2LCAwLjYwMzM1NiwgMC43MDk3ODEiLCBcCi0gICAgICAgICAgIjAuMjUxNjk0LCAwLjMzMDUyMSwgMC40MDUwNzUsIDAuNDU4MjIzLCAwLjU0MzMyMywgMC42MTc4MSwgMC43MjQyNDUiLCBcCi0gICAgICAgICAgIjAuMjczMjAxLCAwLjM1MjAyOCwgMC40MjY2MTMsIDAuNDc5NzM5LCAwLjU2NDgzNCwgMC42MzkzMjQsIDAuNzQ1NzUyIiwgXAotICAgICAgICAgICIwLjI5MDQ1NSwgMC4zNjkyNjYsIDAuNDQzODM0LCAwLjQ5Njk4MywgMC41ODIwODksIDAuNjU2NTczLCAwLjc2MzAyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQzNzQ2LCAwLjE4NjEyMiwgMC4zMzI3MzksIDAuNDM4NjA0LCAwLjYwOTYxNiwgMC43NTc1MjksIDAuOTY5MDU4IiwgXAotICAgICAgICAgICIwLjA0Mzg2MywgMC4xODYxMTMsIDAuMzMzMTM1LCAwLjQzODI5NiwgMC42MDk2MjcsIDAuNzU2NTgxLCAwLjk2OTA4MiIsIFwKLSAgICAgICAgICAiMC4wNDM4NDUsIDAuMTg2MTksIDAuMzMzNzg5LCAwLjQzODMwNywgMC42MDk2MDgsIDAuNzU4NDg0LCAwLjk3MTIxMSIsIFwKLSAgICAgICAgICAiMC4wNDM4NDcsIDAuMTg2MTQsIDAuMzMyNzM2LCAwLjQzODgwNSwgMC42MDgyNDYsIDAuNzU4NDg1LCAwLjk3MDQ4NSIsIFwKLSAgICAgICAgICAiMC4wNDM4MzcsIDAuMTg2MTUyLCAwLjMzMywgMC40MzgyMDIsIDAuNjA4NDA1LCAwLjc1ODQ4NywgMC45NzA2NzIiLCBcCi0gICAgICAgICAgIjAuMDQzODQ3LCAwLjE4NjE4LCAwLjMzMzI0NywgMC40Mzg0MjcsIDAuNjA4OTQ2LCAwLjc1NjczNCwgMC45Njg2MTQiLCBcCi0gICAgICAgICAgIjAuMDQzODM5LCAwLjE4NjE3NywgMC4zMzMyNTYsIDAuNDM4NDMyLCAwLjYwOTYyNywgMC43NTY3NzIsIDAuOTY5MDQzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEwNjA0LCAwLjAxMDg2LCAwLjAxMDkxNywgMC4wMTA5MzcsIDAuMDEwOTU0LCAwLjAxMDk2MiwgMC4wMTA5NjkiLCBcCi0gICAgICAgICAgIjAuMDEwNTg4LCAwLjAxMDg0NCwgMC4wMTA5MDIsIDAuMDEwOTIxLCAwLjAxMDkzOCwgMC4wMTA5NDcsIDAuMDEwOTU1IiwgXAotICAgICAgICAgICIwLjAxMDU3NywgMC4wMTA4MzMsIDAuMDEwODkxLCAwLjAxMDkxLCAwLjAxMDkyNiwgMC4wMTA5MzcsIDAuMDEwOTQ0IiwgXAotICAgICAgICAgICIwLjAxMDU2NywgMC4wMTA4MjQsIDAuMDEwODgyLCAwLjAxMDkwMywgMC4wMTA5MTksIDAuMDEwOTI4LCAwLjAxMDkzNiIsIFwKLSAgICAgICAgICAiMC4wMTA1NjEsIDAuMDEwODE3LCAwLjAxMDg3NSwgMC4wMTA4OTMsIDAuMDEwOTExLCAwLjAxMDkyLCAwLjAxMDkyNyIsIFwKLSAgICAgICAgICAiMC4wMTA1NTUsIDAuMDEwODEzLCAwLjAxMDg3LCAwLjAxMDg5NCwgMC4wMTA5MDcsIDAuMDEwOTE5LCAwLjAxMDkyNiIsIFwKLSAgICAgICAgICAiMC4wMTA1NSwgMC4wMTA4MTMsIDAuMDEwODY2LCAwLjAxMDg4NSwgMC4wMTA5MDIsIDAuMDEwOTExLCAwLjAxMDkyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTM1MzIsIDAuMDEzODYxLCAwLjAxMzkyNiwgMC4wMTM5NDYsIDAuMDEzOTY1LCAwLjAxMzk3NCwgMC4wMTM5ODMiLCBcCi0gICAgICAgICAgIjAuMDEzNTE5LCAwLjAxMzg0OCwgMC4wMTM5MTMsIDAuMDEzOTM0LCAwLjAxMzk1MiwgMC4wMTM5NjIsIDAuMDEzOTcxIiwgXAotICAgICAgICAgICIwLjAxMzUxLCAwLjAxMzgzOCwgMC4wMTM5MDMsIDAuMDEzOTI0LCAwLjAxMzk0MywgMC4wMTM5NTIsIDAuMDEzOTYxIiwgXAotICAgICAgICAgICIwLjAxMzUxLCAwLjAxMzgzNSwgMC4wMTM4OTksIDAuMDEzOTIsIDAuMDEzOTM4LCAwLjAxMzk0OCwgMC4wMTM5NTYiLCBcCi0gICAgICAgICAgIjAuMDEzNTAyLCAwLjAxMzgzMSwgMC4wMTM4OTYsIDAuMDEzOTE3LCAwLjAxMzkzNiwgMC4wMTM5NDYsIDAuMDEzOTU0IiwgXAotICAgICAgICAgICIwLjAxMzUwNCwgMC4wMTM4MzEsIDAuMDEzODk2LCAwLjAxMzkxNywgMC4wMTM5MzUsIDAuMDEzOTQ0LCAwLjAxMzk1NCIsIFwKLSAgICAgICAgICAiMC4wMTM1MDUsIDAuMDEzODM0LCAwLjAxMzg5OSwgMC4wMTM5MiwgMC4wMTM5MzgsIDAuMDEzOTQ4LCAwLjAxMzk1NiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oU0UpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY3ODAyNDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2NzUwNDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2NzgwMjQ7Ci0gICAgY2xvY2tfZ2F0ZV90ZXN0X3BpbiA6IHRydWU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzMjU2LCAwLjAwMzI0NSwgMC4wMDMyNCwgMC4wMDMyMzYsIDAuMDAzMjMyLCAwLjAwMzIyOCwgMC4wMDMyMjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDQxNjYsIDAuMDA0MTYxLCAwLjAwNDE1OCwgMC4wMDQxNTUsIDAuMDA0MTUzLCAwLjAwNDE1MSwgMC4wMDQxNDkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUUiOwotICAgICAgc2RmX2NvbmQgOiAiRSA9PSAxJ2IwIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wOTM3NSwgLTAuMDg4NzUsIC0wLjA3NjI1LCAtMC4wNjM3NSwgLTAuMDU3NSwgLTAuMDQxMjUsIC0wLjAzMjUiLCBcCi0gICAgICAgICAgIi0wLjExMTI1LCAtMC4xLCAtMC4wODc1LCAtMC4wNzUsIC0wLjA2ODc1LCAtMC4wNTI1LCAtMC4wNDM3NSIsIFwKLSAgICAgICAgICAiLTAuMTIzNzUsIC0wLjExMjUsIC0wLjEsIC0wLjA5Mzc1LCAtMC4wODEyNSwgLTAuMDcxMjUsIC0wLjA1NjI1IiwgXAotICAgICAgICAgICItMC4xMzYyNSwgLTAuMTI1LCAtMC4xMTg3NSwgLTAuMTA2MjUsIC0wLjEsIC0wLjA4Mzc1LCAtMC4wNzUiLCBcCi0gICAgICAgICAgIi0wLjE1NSwgLTAuMTQzNzUsIC0wLjEzMTI1LCAtMC4xMTg3NSwgLTAuMTEyNSwgLTAuMDk2MjUsIC0wLjA4NzUiLCBcCi0gICAgICAgICAgIi0wLjE3NzUsIC0wLjE2NjI1LCAtMC4xNTM3NSwgLTAuMTQ3NSwgLTAuMTM1LCAtMC4xMjUsIC0wLjExIiwgXAotICAgICAgICAgICItMC4xOTg3NSwgLTAuMTg3NSwgLTAuMTc1LCAtMC4xNjg3NSwgLTAuMTU2MjUsIC0wLjE0NjI1LCAtMC4xMzEyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjA5Mzc1LCAtMC4wODI1LCAtMC4wNjM3NSwgLTAuMDUxMjUsIC0wLjAzODc1LCAtMC4wMTYyNSwgMC4wMDUiLCBcCi0gICAgICAgICAgIi0wLjEwNSwgLTAuMDkzNzUsIC0wLjA3NSwgLTAuMDYyNSwgLTAuMDUsIC0wLjAyNzUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICItMC4xMTc1LCAtMC4xMDYyNSwgLTAuMDg3NSwgLTAuMDc1LCAtMC4wNjI1LCAtMC4wNCwgLTAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjEzLCAtMC4xMTg3NSwgLTAuMSwgLTAuMDg3NSwgLTAuMDc1LCAtMC4wNTI1LCAtMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMTQyNSwgLTAuMTMxMjUsIC0wLjExMjUsIC0wLjEsIC0wLjA4NzUsIC0wLjA2NSwgLTAuMDQzNzUiLCBcCi0gICAgICAgICAgIi0wLjE2NSwgLTAuMTQ3NSwgLTAuMTM1LCAtMC4xMjI1LCAtMC4xMDM3NSwgLTAuMDgxMjUsIC0wLjA2NjI1IiwgXAotICAgICAgICAgICItMC4xOCwgLTAuMTY4NzUsIC0wLjE1LCAtMC4xMzc1LCAtMC4xMjUsIC0wLjA5NjI1LCAtMC4wODEyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUUiOwotICAgICAgc2RmX2NvbmQgOiAiRSA9PSAxJ2IwIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xLCAwLjA5NSwgMC4wODI1LCAwLjA3LCAwLjA2Mzc1LCAwLjA0NzUsIDAuMDM4NzUiLCBcCi0gICAgICAgICAgIjAuMTE3NSwgMC4xMDYyNSwgMC4wOTM3NSwgMC4wODEyNSwgMC4wNzUsIDAuMDU4NzUsIDAuMDUiLCBcCi0gICAgICAgICAgIjAuMTMsIDAuMTE4NzUsIDAuMTA2MjUsIDAuMSwgMC4wODc1LCAwLjA3NzUsIDAuMDYyNSIsIFwKLSAgICAgICAgICAiMC4xNDI1LCAwLjEzMTI1LCAwLjEyNSwgMC4xMTI1LCAwLjEwNjI1LCAwLjA5LCAwLjA4MTI1IiwgXAotICAgICAgICAgICIwLjE2MTI1LCAwLjE1LCAwLjEzNzUsIDAuMTI1LCAwLjExODc1LCAwLjEwMjUsIDAuMDkzNzUiLCBcCi0gICAgICAgICAgIjAuMTgzNzUsIDAuMTcyNSwgMC4xNiwgMC4xNTM3NSwgMC4xNDEyNSwgMC4xMzEyNSwgMC4xMTYyNSIsIFwKLSAgICAgICAgICAiMC4yMDUsIDAuMTkzNzUsIDAuMTgxMjUsIDAuMTc1LCAwLjE2MjUsIDAuMTUyNSwgMC4xMzc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMSwgMC4wODg3NSwgMC4wNywgMC4wNTc1LCAwLjA0NSwgMC4wMjI1LCAwLjAwMTI1IiwgXAotICAgICAgICAgICIwLjExMTI1LCAwLjEsIDAuMDgxMjUsIDAuMDY4NzUsIDAuMDU2MjUsIDAuMDMzNzUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4xMjM3NSwgMC4xMTI1LCAwLjA5Mzc1LCAwLjA4MTI1LCAwLjA2ODc1LCAwLjA0NjI1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiMC4xMzYyNSwgMC4xMjUsIDAuMTA2MjUsIDAuMDkzNzUsIDAuMDgxMjUsIDAuMDU4NzUsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiMC4xNDg3NSwgMC4xMzc1LCAwLjExODc1LCAwLjEwNjI1LCAwLjA5Mzc1LCAwLjA3MTI1LCAwLjA1IiwgXAotICAgICAgICAgICIwLjE3MTI1LCAwLjE1Mzc1LCAwLjE0MTI1LCAwLjEyODc1LCAwLjExLCAwLjA4NzUsIDAuMDcyNSIsIFwKLSAgICAgICAgICAiMC4xODYyNSwgMC4xNzUsIDAuMTU2MjUsIDAuMTQzNzUsIDAuMTMxMjUsIDAuMTAyNSwgMC4wODc1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogVExBVE5YMiAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChUTEFUTlgyKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMzE3NDAyOwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIGxhdGNoIChRSU5ULE4wKSB7Ci0gICAgZGF0YV9pbiA6ICJEIjsKLSAgICBlbmFibGUgOiAiKCFHTikiOwotICB9Ci0gIHBpbihEKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2Mjk3MjI7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjI3Nzk7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjI5NzIyOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDE1OSwgMC4wMDAxNjEsIDAuMDAwMTYxLCAwLjAwMDE2MSwgMC4wMDAxNjIsIDAuMDAwMTYyLCAwLjAwMDE2MiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDE3LCAwLjAwMDE2NywgMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkdOIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDgxMjUsIC0wLjA3LCAtMC4wNTc1LCAtMC4wNDUsIC0wLjAzODc1LCAtMC4wMjI1LCAtMC4wMTM3NSIsIFwKLSAgICAgICAgICAiLTAuMDkyNSwgLTAuMDgxMjUsIC0wLjA2ODc1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjAzMzc1LCAtMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjEwNSwgLTAuMDkzNzUsIC0wLjA4MTI1LCAtMC4wNzUsIC0wLjA2MjUsIC0wLjA1MjUsIC0wLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjExNzUsIC0wLjEwNjI1LCAtMC4wOTM3NSwgLTAuMDg3NSwgLTAuMDc1LCAtMC4wNjUsIC0wLjA1IiwgXAotICAgICAgICAgICItMC4xMzYyNSwgLTAuMTI1LCAtMC4xMTI1LCAtMC4xLCAtMC4wODc1LCAtMC4wNzc1LCAtMC4wNjI1IiwgXAotICAgICAgICAgICItMC4xNTg3NSwgLTAuMTQxMjUsIC0wLjEyODc1LCAtMC4xMjI1LCAtMC4xMSwgLTAuMSwgLTAuMDg1IiwgXAotICAgICAgICAgICItMC4xNzM3NSwgLTAuMTYyNSwgLTAuMTUsIC0wLjEzNzUsIC0wLjEzMTI1LCAtMC4xMTUsIC0wLjEwNjI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDI1LCAtMC4wMTM3NSwgMC4wMDUsIDAuMDE3NSwgMC4wMzYyNSwgMC4wNTg3NSwgMC4wOCIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAyNSwgLTAuMDA2MjUsIDAuMDA2MjUsIDAuMDI1LCAwLjA0NzUsIDAuMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjAzNzUsIC0wLjAxODc1LCAtMC4wMDYyNSwgMC4wMTI1LCAwLjAzNSwgMC4wNSIsIFwKLSAgICAgICAgICAiLTAuMDYxMjUsIC0wLjA1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIDAsIDAuMDIyNSwgMC4wMzc1IiwgXAotICAgICAgICAgICItMC4wNzM3NSwgLTAuMDYyNSwgLTAuMDQzNzUsIC0wLjAzMTI1LCAtMC4wMTI1LCAwLjAxLCAwLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wOSwgLTAuMDc4NzUsIC0wLjA2NjI1LCAtMC4wNDc1LCAtMC4wMzUsIC0wLjAxMjUsIDAuMDA4NzUiLCBcCi0gICAgICAgICAgIi0wLjExMTI1LCAtMC4xLCAtMC4wODEyNSwgLTAuMDY4NzUsIC0wLjA1LCAtMC4wMjc1LCAtMC4wMDYyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJHTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTI1LCAwLjEwMTI1LCAwLjA4ODc1LCAwLjA3NjI1LCAwLjA3LCAwLjA2LCAwLjA1MTI1IiwgXAotICAgICAgICAgICIwLjEyMzc1LCAwLjExMjUsIDAuMSwgMC4wODc1LCAwLjA4MTI1LCAwLjA3MTI1LCAwLjA2MjUiLCBcCi0gICAgICAgICAgIjAuMTM2MjUsIDAuMTI1LCAwLjExMjUsIDAuMSwgMC4wOTM3NSwgMC4wODM3NSwgMC4wNzUiLCBcCi0gICAgICAgICAgIjAuMTQ4NzUsIDAuMTM3NSwgMC4xMjUsIDAuMTEyNSwgMC4xMDYyNSwgMC4wOTYyNSwgMC4wODc1IiwgXAotICAgICAgICAgICIwLjE2MTI1LCAwLjE1LCAwLjEzNzUsIDAuMTI1LCAwLjExODc1LCAwLjEwODc1LCAwLjEiLCBcCi0gICAgICAgICAgIjAuMTgzNzUsIDAuMTcyNSwgMC4xNiwgMC4xNDc1LCAwLjE0MTI1LCAwLjEyNSwgMC4xMjI1IiwgXAotICAgICAgICAgICIwLjE5ODc1LCAwLjE4NzUsIDAuMTc1LCAwLjE2ODc1LCAwLjE1NjI1LCAwLjE0NjI1LCAwLjEzNzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjI1LCAwLjA1MTI1LCAwLjAzODc1LCAwLjAyLCAwLjAwNzUsIC0wLjAyMTI1LCAtMC4wNDI1IiwgXAotICAgICAgICAgICIwLjA3Mzc1LCAwLjA2MjUsIDAuMDQzNzUsIDAuMDMxMjUsIDAuMDEyNSwgLTAuMDEsIC0wLjAzMTI1IiwgXAotICAgICAgICAgICIwLjA4NjI1LCAwLjA3NSwgMC4wNTYyNSwgMC4wNDM3NSwgMC4wMjUsIDAuMDAyNSwgLTAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMDk4NzUsIDAuMDg3NSwgMC4wNjg3NSwgMC4wNTYyNSwgMC4wMzc1LCAwLjAxNSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMTExMjUsIDAuMSwgMC4wODEyNSwgMC4wNjI1LCAwLjA1LCAwLjAyNzUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMTI3NSwgMC4xMTYyNSwgMC4wOTc1LCAwLjA4NSwgMC4wNjYyNSwgMC4wNDM3NSwgMC4wMjI1IiwgXAotICAgICAgICAgICIwLjE0MjUsIDAuMTMxMjUsIDAuMTEyNSwgMC4xLCAwLjA4MTI1LCAwLjA1ODc1LCAwLjAzNzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEdOKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA1NTM5NDQ7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNTUzMzE7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNTUzOTQ0OwotICAgIGNsb2NrIDogdHJ1ZTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDE0NjksIDAuMDAxNDU1LCAwLjAwMTQ0MiwgMC4wMDE0MzcsIDAuMDAxNDMsIDAuMDAxNDI2LCAwLjAwMTQyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjYyNywgMC4wMDI2MTcsIDAuMDAyNjEsIDAuMDAyNjA0LCAwLjAwMjU5OSwgMC4wMDI1OTUsIDAuMDAyNTk0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkdOIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRCI7Ci0gICAgICBzZGZfY29uZCA6ICJEID09IDEnYjAiOwotICAgICAgZmFsbF9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMzExMTE4LCAwLjMyMjU3OSwgMC4zMzczMzQsIDAuMzUyMjE0LCAwLjM2NjczMiwgMC4zODkxMjgsIDAuNDA2ODU3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihRKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMjY4Mzk5OwotICAgIGZ1bmN0aW9uIDogIlFJTlQiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkQiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI0MDM3OSwgMC40MTk5NjcsIDAuNTY0NDk0LCAwLjc0NDY1NSwgMC45MjM3MTksIDEuMTAyODksIDEuMjgzMTQiLCBcCi0gICAgICAgICAgIjAuMjUxODMxLCAwLjQzMTQwNSwgMC41NzUzODgsIDAuNzU2MDM3LCAwLjkzNTAzOCwgMS4xMTQ1OSwgMS4yOTQ1NiIsIFwKLSAgICAgICAgICAiMC4yNjUzNjIsIDAuNDQ1MDY5LCAwLjU4ODk5MywgMC43Njk3ODUsIDAuOTQ5MDY0LCAxLjEyNjQsIDEuMzA3OTUiLCBcCi0gICAgICAgICAgIjAuMjc4OTQ5LCAwLjQ1ODQ0NSwgMC42MDI1MDUsIDAuNzgyNDAyLCAwLjk2MjE0NiwgMS4xNDE5MiwgMS4zMjEyNSIsIFwKLSAgICAgICAgICAiMC4yOTI4MTYsIDAuNDcyMjYsIDAuNjE2MzM4LCAwLjc5NjE4NiwgMC45NzYwMSwgMS4xNTU3NiwgMS4zMzUxMyIsIFwKLSAgICAgICAgICAiMC4zMTQzMSwgMC40OTM5MDEsIDAuNjM4NDUxLCAwLjgxODU2NCwgMC45OTc2NjQsIDEuMTc2OCwgMS4zNTcxMSIsIFwKLSAgICAgICAgICAiMC4zMzI5MDYsIDAuNTEyNTg1LCAwLjY1NjU3NywgMC44MzczNTYsIDEuMDE2MzgsIDEuMTk1NjEsIDEuMzc1NjIiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg0NTYxLCAwLjQ1MTI3NSwgMC43NDM3NzksIDEuMTEyMDcsIDEuNDgxOTEsIDEuODUwMzgsIDIuMjE4MzEiLCBcCi0gICAgICAgICAgIjAuMDg0NDE4LCAwLjQ1MTI0NSwgMC43NDU2MDIsIDEuMTExMjksIDEuNDgxOTIsIDEuODUwMTksIDIuMjE4NDciLCBcCi0gICAgICAgICAgIjAuMDg0NTQ2LCAwLjQ1MTI1NywgMC43NDU2NiwgMS4xMTI5NSwgMS40ODE2NywgMS44MzA3MSwgMi4yMTgyOCIsIFwKLSAgICAgICAgICAiMC4wODQ1NTksIDAuNDQ5NjMyLCAwLjc0NTY5MSwgMS4xMTM3LCAxLjQ4MjA5LCAxLjg1MDM0LCAyLjIxODM2IiwgXAotICAgICAgICAgICIwLjA4NDQ0MywgMC40NTExMjIsIDAuNzQ1NjQ1LCAxLjExMzY2LCAxLjQ4MTk2LCAxLjg1MDIyLCAyLjIxODM2IiwgXAotICAgICAgICAgICIwLjA4NDU1NywgMC40NTEyNzcsIDAuNzQ0MjE1LCAxLjExMTQ1LCAxLjQ4MTksIDEuODUwNDIsIDIuMjE4MjgiLCBcCi0gICAgICAgICAgIjAuMDg0NTQxLCAwLjQ1MTI2NiwgMC43NDU2MzgsIDEuMTA1MzUsIDEuNDgxODQsIDEuODUwMzQsIDIuMjE4MjgiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjM5MTMyLCAwLjQ0NjAyLCAwLjYxMzE3MSwgMC44MjA4MjYsIDEuMDI4NDcsIDEuMjM1NzYsIDEuNDQzNjIiLCBcCi0gICAgICAgICAgIjAuMjUwNTg2LCAwLjQ1ODQ4NCwgMC42MjI2MzMsIDAuODI5MjQ4LCAxLjA0MDAxLCAxLjI0NzUxLCAxLjQ1NDk4IiwgXAotICAgICAgICAgICIwLjI2MzUxMiwgMC40NzAyOTYsIDAuNjM1NTEsIDAuODQyMjEzLCAxLjA1Mjg5LCAxLjI2MDQsIDEuNDY0NyIsIFwKLSAgICAgICAgICAiMC4yNzU5NjEsIDAuNDgyODQ0LCAwLjY0NzkyNiwgMC44NTQ3NjYsIDEuMDY1MzUsIDEuMjY4ODEsIDEuNDc3MyIsIFwKLSAgICAgICAgICAiMC4yODgyNSwgMC40OTYxNTMsIDAuNjYwMywgMC44NjY5MywgMS4wNzc2NywgMS4yODUxOCwgMS40ODk4MSIsIFwKLSAgICAgICAgICAiMC4zMDc0NTMsIDAuNTE0ODUsIDAuNjc5NTE1LCAwLjg4NjEyMSwgMS4wOTY4NywgMS4zMDQzNCwgMS41MTE2NiIsIFwKLSAgICAgICAgICAiMC4zMjM4OTIsIDAuNTMxNzg4LCAwLjY5NTkzMiwgMC45MDI1OTYsIDEuMTEzMjgsIDEuMzIwNzcsIDEuNTI4MjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk0ODQ2LCAwLjUwNDg0NiwgMC44MzY1ODksIDEuMjQ4NzcsIDEuNjYwNDYsIDIuMDY2OTgsIDIuNDc3OTgiLCBcCi0gICAgICAgICAgIjAuMDk0NTIxLCAwLjUwNjQzOSwgMC44MzU4MzksIDEuMjQ4NjQsIDEuNjYwNDUsIDIuMDY4MTEsIDIuNDc3OTMiLCBcCi0gICAgICAgICAgIjAuMDk0ODgyLCAwLjUwNTk2NCwgMC44MzQ0NTQsIDEuMjQ2OTcsIDEuNjYxMDcsIDIuMDcwODIsIDIuNDg1NjQiLCBcCi0gICAgICAgICAgIjAuMDk0OTY5LCAwLjUwNjM1OSwgMC44MzI5NTIsIDEuMjQ2ODEsIDEuNjYwODQsIDIuMDY5MjIsIDIuNDg2OTkiLCBcCi0gICAgICAgICAgIjAuMDk0NTMsIDAuNTA2Mjc3LCAwLjgzNTgzOSwgMS4yNDg0MiwgMS42NjA4MSwgMi4wNjkzMywgMi40ODc0OCIsIFwKLSAgICAgICAgICAiMC4wOTQ1NTcsIDAuNTA2MzE5LCAwLjgzNTc3NCwgMS4yNDgzMiwgMS42NjA4OCwgMi4wNjk3NywgMi40NzkxIiwgXAotICAgICAgICAgICIwLjA5NDUyNCwgMC41MDY0NDcsIDAuODM0NTIyLCAxLjI0ODUyLCAxLjY2MDE5LCAyLjA2NzU3LCAyLjQ3ODE2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkdOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5vbl91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogZmFsbGluZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yNzk3MzQsIDAuNDU5MTQzLCAwLjYwMzI1LCAwLjc4MzExMywgMC45NjI5MzEsIDEuMTQyNzEsIDEuMzIyMDciLCBcCi0gICAgICAgICAgIjAuMjkxMTExLCAwLjQ3MDU4NSwgMC42MTQ2NTgsIDAuNzk1MjQ5LCAwLjk3NDI3LCAxLjE1NDIxLCAxLjMzMzQzIiwgXAotICAgICAgICAgICIwLjMwNTg1OCwgMC40ODUyNDQsIDAuNjI5MzQ4LCAwLjgwOTIxNywgMC45ODkwMjksIDEuMTY4ODEsIDEuMzQ4MTciLCBcCi0gICAgICAgICAgIjAuMzIwNjQxLCAwLjQ5OTk3NSwgMC42NDQxMjcsIDAuODI0NjU0LCAxLjAwMzcyLCAxLjE4MzU5LCAxLjM2NDYxIiwgXAotICAgICAgICAgICIwLjMzNTA0NywgMC41MTQ2NDUsIDAuNjU4NTUxLCAwLjgzNzU0OCwgMS4wMTgwMSwgMS4xOTgwNCwgMS4zNzc1NSIsIFwKLSAgICAgICAgICAiMC4zNTcxOTQsIDAuNTM2NTY1LCAwLjY4MDY3OCwgMC44NjA1MzQsIDEuMDQwMzYsIDEuMjIwMTMsIDEuMzk5NSIsIFwKLSAgICAgICAgICAiMC4zNzUxNzQsIDAuNTU0NjQxLCAwLjY5ODcxOSwgMC44NzkyNzksIDEuMDU4MzMsIDEuMjM4MjYsIDEuNDE3NTIiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg0NDYsIDAuNDUxMDAxLCAwLjc0NTYyNSwgMS4xMTM2NiwgMS40ODE5NCwgMS44NTAyLCAyLjIxODM2IiwgXAotICAgICAgICAgICIwLjA4NDUyMSwgMC40NTExOCwgMC43NDU2MTksIDEuMTA4ODQsIDEuNDgxOTUsIDEuODUwMSwgMi4yMTgzNCIsIFwKLSAgICAgICAgICAiMC4wODQzNjQsIDAuNDUxMDA2LCAwLjc0NTYyNSwgMS4xMTM2NSwgMS40ODE5NCwgMS44NTAxOSwgMi4yMTgzNCIsIFwKLSAgICAgICAgICAiMC4wODQ0NjQsIDAuNDUwODk5LCAwLjc0NTYxMSwgMS4xMDc2NywgMS40ODE5NSwgMS44NTAxLCAyLjE5MzY2IiwgXAotICAgICAgICAgICIwLjA4NDQyLCAwLjQ1MTIyMywgMC43NDU2MTQsIDEuMTA3NDcsIDEuNDgyMDMsIDEuODUwMTQsIDIuMjE4MyIsIFwKLSAgICAgICAgICAiMC4wODQzNDYsIDAuNDUwOTYsIDAuNzQ1NjI2LCAxLjExMzY2LCAxLjQ4MTk0LCAxLjg1MDE5LCAyLjIxODM1IiwgXAotICAgICAgICAgICIwLjA4NDUyLCAwLjQ1MTE2NywgMC43NDU2MTksIDEuMTA4MTcsIDEuNDgxOTYsIDEuODUwMSwgMi4yMTgzMiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMTExMTgsIDAuNTE3NzgxLCAwLjY4NTAyOCwgMC44OTAwNjgsIDEuMTAwNDcsIDEuMzA3ODYsIDEuNTE1NDgiLCBcCi0gICAgICAgICAgIjAuMzIyNTc5LCAwLjUzMDAyNSwgMC42OTQ0MzMsIDAuOTA0MTk2LCAxLjExMTksIDEuMzE5MjgsIDEuNTIzMTYiLCBcCi0gICAgICAgICAgIjAuMzM3MzM0LCAwLjU0Mzk3NSwgMC43MTEzMDgsIDAuOTE2MTU5LCAxLjEyNjcxLCAxLjMzNDIxLCAxLjUzNjMiLCBcCi0gICAgICAgICAgIjAuMzUyMjE0LCAwLjU1ODkxOSwgMC43MjQwODIsIDAuOTMxMDIxLCAxLjE0MTU4LCAxLjM0OTA5LCAxLjU1NjUiLCBcCi0gICAgICAgICAgIjAuMzY2NzMyLCAwLjU3MzQ1OCwgMC43Mzg2NCwgMC45NDg0NDQsIDEuMTU2MTIsIDEuMzYzNDUsIDEuNTY4MzQiLCBcCi0gICAgICAgICAgIjAuMzg5MTI4LCAwLjU5NTg2NiwgMC43NjMxMDcsIDAuOTY4MTExLCAxLjE3NDY1LCAxLjM4NTkzLCAxLjU5MzUyIiwgXAotICAgICAgICAgICIwLjQwNjg1NywgMC42MTM1OTIsIDAuNzgwODc0LCAwLjk4NTg0OCwgMS4xOTYzMiwgMS40MDM3LCAxLjYxMTMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk1MjA1LCAwLjUwNjA0LCAwLjgzNjQ0NSwgMS4yNDYzLCAxLjY2MDY1LCAyLjA2OTAxLCAyLjQ3ODc2IiwgXAotICAgICAgICAgICIwLjA5NTE5NSwgMC41MDQ0NjQsIDAuODM0NDMsIDEuMjQ4NDYsIDEuNjYxMDIsIDIuMDY4ODMsIDIuNDg1MjciLCBcCi0gICAgICAgICAgIjAuMDk1MjA4LCAwLjUwMzk0NywgMC44MzU2NzMsIDEuMjQ3MzQsIDEuNjYxNDUsIDIuMDY5MTQsIDIuNDg0MjEiLCBcCi0gICAgICAgICAgIjAuMDk1MjA2LCAwLjUwNTY5MSwgMC44MzMyODksIDEuMjQ3NDYsIDEuNjYxMzEsIDIuMDY4OSwgMi40Nzc5MyIsIFwKLSAgICAgICAgICAiMC4wOTUxOTQsIDAuNTA2MzAyLCAwLjgzMzkwMywgMS4yNDg4OCwgMS42NjA3NCwgMi4wNjgxOCwgMi40ODgzIiwgXAotICAgICAgICAgICIwLjA5NTIwNiwgMC41MDYwODEsIDAuODM2NjA5LCAxLjI0NjU3LCAxLjY2MDU0LCAyLjA2ODUzLCAyLjQ3Nzc2IiwgXAotICAgICAgICAgICIwLjA5NDg3NywgMC41MDUzMTIsIDAuODM2MTQyLCAxLjI0NjgxLCAxLjY2MDc3LCAyLjA2ODM0LCAyLjQ3Nzg0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzNTA0LCAwLjAwMzU0MywgMC4wMDM1NDcsIDAuMDAzNTQ5LCAwLjAwMzU1LCAwLjAwMzU1MSwgMC4wMDM1NTIiLCBcCi0gICAgICAgICAgIjAuMDAzNDk3LCAwLjAwMzUzNiwgMC4wMDM1NDEsIDAuMDAzNTQzLCAwLjAwMzU0NCwgMC4wMDM1NDUsIDAuMDAzNTQ3IiwgXAotICAgICAgICAgICIwLjAwMzQ5MywgMC4wMDM1MzMsIDAuMDAzNTM3LCAwLjAwMzU0LCAwLjAwMzU0MSwgMC4wMDM1NDEsIDAuMDAzNTQyIiwgXAotICAgICAgICAgICIwLjAwMzQ5MSwgMC4wMDM1MywgMC4wMDM1MzQsIDAuMDAzNTM3LCAwLjAwMzUzOCwgMC4wMDM1MzksIDAuMDAzNTM5IiwgXAotICAgICAgICAgICIwLjAwMzQ5LCAwLjAwMzUyOSwgMC4wMDM1MzQsIDAuMDAzNTM2LCAwLjAwMzUzOCwgMC4wMDM1MzgsIDAuMDAzNTM5IiwgXAotICAgICAgICAgICIwLjAwMzQ4NywgMC4wMDM1MjYsIDAuMDAzNTMxLCAwLjAwMzUzMywgMC4wMDM1MzQsIDAuMDAzNTMzLCAwLjAwMzUzNiIsIFwKLSAgICAgICAgICAiMC4wMDM0ODIsIDAuMDAzNTIyLCAwLjAwMzUyNiwgMC4wMDM1MjksIDAuMDAzNTMsIDAuMDAzNTMsIDAuMDAzNTMxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzNjQzLCAwLjAwMzY4MiwgMC4wMDM2ODYsIDAuMDAzNjg5LCAwLjAwMzY5LCAwLjAwMzY5LCAwLjAwMzY5MSIsIFwKLSAgICAgICAgICAiMC4wMDM2NDEsIDAuMDAzNjgsIDAuMDAzNjg0LCAwLjAwMzY4NiwgMC4wMDM2ODcsIDAuMDAzNjg3LCAwLjAwMzY4OCIsIFwKLSAgICAgICAgICAiMC4wMDM2MzksIDAuMDAzNjc3LCAwLjAwMzY4MiwgMC4wMDM2ODMsIDAuMDAzNjg1LCAwLjAwMzY4NiwgMC4wMDM2ODYiLCBcCi0gICAgICAgICAgIjAuMDAzNjM3LCAwLjAwMzY3NiwgMC4wMDM2OCwgMC4wMDM2ODIsIDAuMDAzNjg0LCAwLjAwMzY4NCwgMC4wMDM2ODUiLCBcCi0gICAgICAgICAgIjAuMDAzNjM2LCAwLjAwMzY3NCwgMC4wMDM2NzksIDAuMDAzNjgxLCAwLjAwMzY4MiwgMC4wMDM2ODMsIDAuMDAzNjgzIiwgXAotICAgICAgICAgICIwLjAwMzYzMywgMC4wMDM2NzIsIDAuMDAzNjc2LCAwLjAwMzY3OCwgMC4wMDM2NzksIDAuMDAzNjgsIDAuMDAzNjgiLCBcCi0gICAgICAgICAgIjAuMDAzNjMxLCAwLjAwMzY3LCAwLjAwMzY3NCwgMC4wMDM2NzYsIDAuMDAzNjc4LCAwLjAwMzY3OCwgMC4wMDM2NzkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJHTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0Nzc1LCAwLjAwNDgwNywgMC4wMDQ4MDcsIDAuMDA0ODA3LCAwLjAwNDgwNiwgMC4wMDQ4MDUsIDAuMDA0ODA1IiwgXAotICAgICAgICAgICIwLjAwNDc2OSwgMC4wMDQ4MDEsIDAuMDA0OCwgMC4wMDQ4MDEsIDAuMDA0OCwgMC4wMDQ4LCAwLjAwNDgiLCBcCi0gICAgICAgICAgIjAuMDA0NzY0LCAwLjAwNDc5NSwgMC4wMDQ3OTYsIDAuMDA0Nzk2LCAwLjAwNDc5MywgMC4wMDQ3OTQsIDAuMDA0NzkzIiwgXAotICAgICAgICAgICIwLjAwNDc1OSwgMC4wMDQ3OTEsIDAuMDA0NzksIDAuMDA0NzkxLCAwLjAwNDc5LCAwLjAwNDc4OSwgMC4wMDQ3ODkiLCBcCi0gICAgICAgICAgIjAuMDA0NzU2LCAwLjAwNDc4NywgMC4wMDQ3ODksIDAuMDA0Nzg3LCAwLjAwNDc4OCwgMC4wMDQ3ODcsIDAuMDA0Nzg1IiwgXAotICAgICAgICAgICIwLjAwNDc1MiwgMC4wMDQ3ODQsIDAuMDA0Nzg1LCAwLjAwNDc4NCwgMC4wMDQ3ODQsIDAuMDA0NzgzLCAwLjAwNDc4MiIsIFwKLSAgICAgICAgICAiMC4wMDQ3NDksIDAuMDA0NzgyLCAwLjAwNDc4MiwgMC4wMDQ3ODEsIDAuMDA0NzgsIDAuMDA0NzgsIDAuMDA0NzgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQ3ODMsIDAuMDA0ODIxLCAwLjAwNDgyNiwgMC4wMDQ4MjgsIDAuMDA0ODI4LCAwLjAwNDgyOSwgMC4wMDQ4MjkiLCBcCi0gICAgICAgICAgIjAuMDA0Nzc4LCAwLjAwNDgxNiwgMC4wMDQ4MiwgMC4wMDQ4MjMsIDAuMDA0ODI0LCAwLjAwNDgyNCwgMC4wMDQ4MjUiLCBcCi0gICAgICAgICAgIjAuMDA0Nzc0LCAwLjAwNDgxMiwgMC4wMDQ4MTYsIDAuMDA0ODIsIDAuMDA0ODIsIDAuMDA0ODIsIDAuMDA0ODIiLCBcCi0gICAgICAgICAgIjAuMDA0NzcxLCAwLjAwNDgwOSwgMC4wMDQ4MTMsIDAuMDA0ODE3LCAwLjAwNDgxNywgMC4wMDQ4MTYsIDAuMDA0ODE4IiwgXAotICAgICAgICAgICIwLjAwNDc2OCwgMC4wMDQ4MDcsIDAuMDA0ODExLCAwLjAwNDgxMywgMC4wMDQ4MTQsIDAuMDA0ODE1LCAwLjAwNDgxNSIsIFwKLSAgICAgICAgICAiMC4wMDQ3NjgsIDAuMDA0ODA2LCAwLjAwNDgxLCAwLjAwNDgxMiwgMC4wMDQ4MTMsIDAuMDA0ODE0LCAwLjAwNDgxNCIsIFwKLSAgICAgICAgICAiMC4wMDQ3NjUsIDAuMDA0ODA0LCAwLjAwNDgwOCwgMC4wMDQ4MSwgMC4wMDQ4MTEsIDAuMDA0ODExLCAwLjAwNDgxMiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUU4pICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4yNjg0NDQ7Ci0gICAgZnVuY3Rpb24gOiAiTjAiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkQiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIxOTcwNSwgMC40MDA4OTQsIDAuNTQ0MjMsIDAuNzIzMzgsIDAuOTAyNDU4LCAxLjA4MTQ5LCAxLjI2MDQ5IiwgXAotICAgICAgICAgICIwLjIzMTE2MywgMC40MTIzNzYsIDAuNTU1NzI1LCAwLjczNDc4NSwgMC45MTM4NTcsIDEuMDkyODYsIDEuMjcxOSIsIFwKLSAgICAgICAgICAiMC4yNDQwODIsIDAuNDI1MjY2LCAwLjU2ODYzNSwgMC43NDc2OTMsIDAuOTI2NzcsIDEuMTA1NzcsIDEuMjg0OCIsIFwKLSAgICAgICAgICAiMC4yNTY1MDgsIDAuNDM3NjkzLCAwLjU4MTAyNSwgMC43NjAyNTEsIDAuOTM5MTkxLCAxLjExODIsIDEuMjk3MjMiLCBcCi0gICAgICAgICAgIjAuMjY4ODI4LCAwLjQ1MDAzNCwgMC41OTMzOTEsIDAuNzcyNDUsIDAuOTUxNTIzLCAxLjEzMDUyLCAxLjMwOTU2IiwgXAotICAgICAgICAgICIwLjI4ODAzNiwgMC40NjkyMjcsIDAuNjEyNiwgMC43OTE2NjUsIDAuOTcwNzM0LCAxLjE0OTc0LCAxLjMyODgyIiwgXAotICAgICAgICAgICIwLjMwNDQ3MiwgMC40ODU2OTEsIDAuNjI5MDQxLCAwLjgwODA5OCwgMC45ODcxNzMsIDEuMTY2MTgsIDEuMzQ1MjEiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk4MTc0LCAwLjQ1MDY5LCAwLjc0MjMzMiwgMS4xMDcwNiwgMS40NzIwOCwgMS44MzY5LCAyLjIwMTciLCBcCi0gICAgICAgICAgIjAuMDk4MTEsIDAuNDUxNTA1LCAwLjc0MDE3NCwgMS4xMDUwNiwgMS40NzIxLCAxLjgzNjgsIDIuMjAxNjkiLCBcCi0gICAgICAgICAgIjAuMDk4MTY0LCAwLjQ1MDQwNCwgMC43NDAxOTMsIDEuMTA1MTMsIDEuNDcyMTIsIDEuODM2OCwgMi4yMDE0MiIsIFwKLSAgICAgICAgICAiMC4wOTgxNzIsIDAuNDUwNzI5LCAwLjc0MDU2NiwgMS4xMDQxMywgMS40NzIwOSwgMS44MzM2NSwgMi4yMDE0MSIsIFwKLSAgICAgICAgICAiMC4wOTgxMTEsIDAuNDUxNDY5LCAwLjc0MDE3MiwgMS4xMDUwOCwgMS40NzIxLCAxLjgzNjc5LCAyLjIwMTQiLCBcCi0gICAgICAgICAgIjAuMDk4MTI2LCAwLjQ1MTMxLCAwLjc0MDIwMSwgMS4xMDUwNSwgMS40NzIwOSwgMS44MzY4LCAyLjIwMTkyIiwgXAotICAgICAgICAgICIwLjA5ODEzMywgMC40NTE1MDksIDAuNzQwMTk3LCAxLjEwNTEsIDEuNDcyMDksIDEuODM2NzksIDIuMjAxNjYiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjMxMDk3LCAwLjQzODkzOCwgMC42MDQwMzksIDAuODEwMzAzLCAxLjAxNjM4LCAxLjIyMjQ5LCAxLjQyODcyIiwgXAotICAgICAgICAgICIwLjI0MjQ1NiwgMC40NTAyOTksIDAuNjE1MzE3LCAwLjgyMTY1MSwgMS4wMjc3MywgMS4yMzM4OCwgMS40NDAwOCIsIFwKLSAgICAgICAgICAiMC4yNTYxMSwgMC40NjM5NjgsIDAuNjI4OTc2LCAwLjgzNTMzNSwgMS4wNDE0NCwgMS4yNDc1NCwgMS40NTM3MSIsIFwKLSAgICAgICAgICAiMC4yNjk2OTUsIDAuNDc3NTM3LCAwLjY0MjU1MSwgMC44NDg3NzEsIDEuMDU0OTYsIDEuMjYxMTQsIDEuNDY3MjYiLCBcCi0gICAgICAgICAgIjAuMjgzNDg5LCAwLjQ5MTMxNiwgMC42NTYzNDUsIDAuODYyNTYyLCAxLjA2ODc2LCAxLjI3NDkzLCAxLjQ4MTA2IiwgXAotICAgICAgICAgICIwLjMwNTAzLCAwLjUxMjg3MSwgMC42Nzc5NzYsIDAuODg0MjMxLCAxLjA5MDMyLCAxLjI5NjQyLCAxLjUwMjY1IiwgXAotICAgICAgICAgICIwLjMyMzY2MSwgMC41MzE1MTksIDAuNjk2NTM2LCAwLjkwMjkwMSwgMS4xMDg5NiwgMS4zMTUwOCwgMS41MjEyOCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDU0OSwgMC41MDY2MjEsIDAuODMzMjc0LCAxLjI0MzM2LCAxLjY1NTQxLCAyLjA2NTc2LCAyLjQ3NjU4IiwgXAotICAgICAgICAgICIwLjEwNTUzOCwgMC41MDY2NjksIDAuODM0MzU5LCAxLjI0MzMxLCAxLjY1NTM4LCAyLjA2NTg5LCAyLjQ3NjUyIiwgXAotICAgICAgICAgICIwLjEwNTU0NiwgMC41MDY2NzQsIDAuODM0MzMyLCAxLjI0MjksIDEuNjU1NjIsIDIuMDY0NjEsIDIuNDc2NTQiLCBcCi0gICAgICAgICAgIjAuMTA1NTQsIDAuNTA1OTQyLCAwLjgzNDI5OSwgMS4yNDQ4MywgMS42NTUyOCwgMi4wNjU4NSwgMi40NzY0NSIsIFwKLSAgICAgICAgICAiMC4xMDU0ODYsIDAuNTA2NDgsIDAuODM0MzIyLCAxLjI0NDgzLCAxLjY1NTM1LCAyLjA2NTkyLCAyLjQ3NjQ1IiwgXAotICAgICAgICAgICIwLjEwNTQ4NywgMC41MDY2MTYsIDAuODMzMjY0LCAxLjI0MzM4LCAxLjY1NTQyLCAyLjA2NTczLCAyLjQ3NjYiLCBcCi0gICAgICAgICAgIjAuMTA1NTU0LCAwLjUwNjY1NCwgMC44MzQzNTMsIDEuMjQzNDMsIDEuNjU1NDYsIDIuMDY1NzksIDIuNDc2NTYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiR04iOwotICAgICAgdGltaW5nX3NlbnNlIDogbm9uX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiBmYWxsaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI5MTY0OSwgMC40NzI4NjcsIDAuNjE2MTc2LCAwLjc5NTI4OSwgMC45NzQzMzksIDEuMTUzMzgsIDEuMzMyNDEiLCBcCi0gICAgICAgICAgIjAuMzAzMTIxLCAwLjQ4NDMyNSwgMC42Mjc2OTYsIDAuODA2NzE4LCAwLjk4NTgyMiwgMS4xNjQ4NSwgMS4zNDM4OCIsIFwKLSAgICAgICAgICAiMC4zMTc5NTgsIDAuNDk5MTYsIDAuNjQyNDM3LCAwLjgyMTU4NSwgMS4wMDA2OSwgMS4xNzk2NiwgMS4zNTg4NyIsIFwKLSAgICAgICAgICAiMC4zMzI4MzksIDAuNTE0MDQsIDAuNjU3NDIsIDAuODM2NDY3LCAxLjAxNTU3LCAxLjE5NDU0LCAxLjM3MzYxIiwgXAotICAgICAgICAgICIwLjM0NzM4NCwgMC41Mjg1ODEsIDAuNjcxOTYyLCAwLjg1MTAwNywgMS4wMzAwOCwgMS4yMDkxMSwgMS4zODgxMyIsIFwKLSAgICAgICAgICAiMC4zNjk3NTQsIDAuNTUwOTU0LCAwLjY5NDI3OSwgMC44NzMzNzYsIDEuMDUyNDksIDEuMjMxNDcsIDEuNDEwNTEiLCBcCi0gICAgICAgICAgIjAuMzg3NTMyLCAwLjU2ODczNCwgMC43MTIwMzIsIDAuODkxMTU2LCAxLjA3MDIyLCAxLjI0OTI1LCAxLjQyODI4Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5ODQxLCAwLjQ1MDQxNywgMC43NDIyNjEsIDEuMTA0OTUsIDEuNDcyMDQsIDEuODM2OTEsIDIuMjAxOCIsIFwKLSAgICAgICAgICAiMC4wOTg0MDMsIDAuNDUxMzc3LCAwLjc0MDIwNCwgMS4xMDY5OCwgMS40NzIxMiwgMS44MzY5MiwgMi4yMDE2MSIsIFwKLSAgICAgICAgICAiMC4wOTg0MDgsIDAuNDUwNTEyLCAwLjc0MjExNCwgMS4xMDUwNSwgMS40NzIyNiwgMS44MzY4NCwgMi4xOTYzNiIsIFwKLSAgICAgICAgICAiMC4wOTg0MDgsIDAuNDUwNDQzLCAwLjc0MDEwOSwgMS4xMDUwNiwgMS40NzIyNCwgMS44MzY4MiwgMi4yMDE4NyIsIFwKLSAgICAgICAgICAiMC4wOTg0NTMsIDAuNDUwNzM3LCAwLjc0MDE1OSwgMS4xMDcwOCwgMS40NzIwOSwgMS44MzY5MSwgMi4yMDEzOCIsIFwKLSAgICAgICAgICAiMC4wOTg0MDYsIDAuNDUwNDA1LCAwLjc0MjMxMiwgMS4xMDQ5NywgMS40NjgxMywgMS44MzY4NiwgMi4yMDE3NiIsIFwKLSAgICAgICAgICAiMC4wOTgzNzgsIDAuNDUwNDYsIDAuNzQyMjAxLCAxLjEwNDk4LCAxLjQ3MjA2LCAxLjgzNjg1LCAyLjIwMTc2Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI3MDMyNiwgMC40NzgxMTEsIDAuNjQzMDkyLCAwLjg0OTI3NCwgMS4wNTU0NSwgMS4yNjE2MSwgMS40Njc3MyIsIFwKLSAgICAgICAgICAiMC4yODE3NjksIDAuNDg5NTA5LCAwLjY1NDQ4NSwgMC44NjA3NjgsIDEuMDY2ODMsIDEuMjczMDEsIDEuNDc5MTEiLCBcCi0gICAgICAgICAgIjAuMjk2NDgxLCAwLjUwNDIxMSwgMC42NjkxOTIsIDAuODc1Mzc1LCAxLjA4MTU1LCAxLjI4NzcxLCAxLjQ5MzgzIiwgXAotICAgICAgICAgICIwLjMxMTIyNSwgMC41MTg5NTQsIDAuNjgzOTQyLCAwLjg5MDIxOCwgMS4wOTYyOCwgMS4zMDI0NiwgMS41MDg3NiIsIFwKLSAgICAgICAgICAiMC4zMjU2NjEsIDAuNTMzNDI2LCAwLjY5ODM4MSwgMC45MDQ1NjUsIDEuMTEwNzEsIDEuMzE2OSwgMS41MjMwMyIsIFwKLSAgICAgICAgICAiMC4zNDc4MSwgMC41NTU1NDcsIDAuNzIwNTMsIDAuOTI2NzEsIDEuMTMyODgsIDEuMzM5MDUsIDEuNTQ1MTYiLCBcCi0gICAgICAgICAgIjAuMzY1ODE3LCAwLjU3MzU2NCwgMC43Mzg1NDIsIDAuOTQ0ODIxLCAxLjE1MDg5LCAxLjM1NzA3LCAxLjU2MzE3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwNTUxNSwgMC41MDY0NDUsIDAuODM0MzAxLCAxLjI0NDc5LCAxLjY1NTI4LCAyLjA2NTkzLCAyLjQ3NjQ1IiwgXAotICAgICAgICAgICIwLjEwNTYyMywgMC41MDY1MTIsIDAuODM0MzQxLCAxLjI0MzM2LCAxLjY1NTM0LCAyLjA2NTksIDIuNDc2MzMiLCBcCi0gICAgICAgICAgIjAuMTA1NTA2LCAwLjUwNjQyMiwgMC44MzQzMDIsIDEuMjQ0NzksIDEuNjU1MjgsIDIuMDY1ODQsIDIuNDc2MzQiLCBcCi0gICAgICAgICAgIjAuMTA1NTA5LCAwLjUwNjQzNCwgMC44MzQzMTUsIDEuMjQzMzcsIDEuNjU1MjYsIDIuMDY1ODgsIDIuNDczOTIiLCBcCi0gICAgICAgICAgIjAuMTA1NTQzLCAwLjUwNjY4LCAwLjgzNDMxNywgMS4yNDM5OCwgMS42NTUyNywgMi4wNjU5NiwgMi40NzY1MiIsIFwKLSAgICAgICAgICAiMC4xMDU0OTcsIDAuNTA2NDE4LCAwLjgzNDMwMSwgMS4yNDQ3OCwgMS42NTUyOCwgMi4wNjU4MywgMi40NzY0NSIsIFwKLSAgICAgICAgICAiMC4xMDU1OTMsIDAuNTA2NTIsIDAuODM0MzQsIDEuMjQzMzcsIDEuNjU1MzMsIDIuMDY1OSwgMi40NzYzNCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkQiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzY0MywgMC4wMDM2ODIsIDAuMDAzNjg2LCAwLjAwMzY4OSwgMC4wMDM2OSwgMC4wMDM2OSwgMC4wMDM2OTEiLCBcCi0gICAgICAgICAgIjAuMDAzNjQxLCAwLjAwMzY4LCAwLjAwMzY4NCwgMC4wMDM2ODYsIDAuMDAzNjg3LCAwLjAwMzY4NywgMC4wMDM2ODgiLCBcCi0gICAgICAgICAgIjAuMDAzNjM5LCAwLjAwMzY3NywgMC4wMDM2ODIsIDAuMDAzNjgzLCAwLjAwMzY4NSwgMC4wMDM2ODYsIDAuMDAzNjg2IiwgXAotICAgICAgICAgICIwLjAwMzYzNywgMC4wMDM2NzYsIDAuMDAzNjgsIDAuMDAzNjgyLCAwLjAwMzY4NCwgMC4wMDM2ODQsIDAuMDAzNjg1IiwgXAotICAgICAgICAgICIwLjAwMzYzNiwgMC4wMDM2NzQsIDAuMDAzNjc5LCAwLjAwMzY4MSwgMC4wMDM2ODIsIDAuMDAzNjgzLCAwLjAwMzY4MyIsIFwKLSAgICAgICAgICAiMC4wMDM2MzMsIDAuMDAzNjcyLCAwLjAwMzY3NiwgMC4wMDM2NzgsIDAuMDAzNjc5LCAwLjAwMzY4LCAwLjAwMzY4IiwgXAotICAgICAgICAgICIwLjAwMzYzMSwgMC4wMDM2NywgMC4wMDM2NzQsIDAuMDAzNjc2LCAwLjAwMzY3OCwgMC4wMDM2NzgsIDAuMDAzNjc5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzNTA0LCAwLjAwMzU0MywgMC4wMDM1NDcsIDAuMDAzNTQ5LCAwLjAwMzU1LCAwLjAwMzU1MSwgMC4wMDM1NTIiLCBcCi0gICAgICAgICAgIjAuMDAzNDk3LCAwLjAwMzUzNiwgMC4wMDM1NDEsIDAuMDAzNTQzLCAwLjAwMzU0NCwgMC4wMDM1NDUsIDAuMDAzNTQ3IiwgXAotICAgICAgICAgICIwLjAwMzQ5MywgMC4wMDM1MzMsIDAuMDAzNTM3LCAwLjAwMzU0LCAwLjAwMzU0MSwgMC4wMDM1NDEsIDAuMDAzNTQyIiwgXAotICAgICAgICAgICIwLjAwMzQ5MSwgMC4wMDM1MywgMC4wMDM1MzQsIDAuMDAzNTM3LCAwLjAwMzUzOCwgMC4wMDM1MzksIDAuMDAzNTM5IiwgXAotICAgICAgICAgICIwLjAwMzQ5LCAwLjAwMzUyOSwgMC4wMDM1MzQsIDAuMDAzNTM2LCAwLjAwMzUzOCwgMC4wMDM1MzgsIDAuMDAzNTM5IiwgXAotICAgICAgICAgICIwLjAwMzQ4NywgMC4wMDM1MjYsIDAuMDAzNTMxLCAwLjAwMzUzMywgMC4wMDM1MzQsIDAuMDAzNTMzLCAwLjAwMzUzNiIsIFwKLSAgICAgICAgICAiMC4wMDM0ODIsIDAuMDAzNTIyLCAwLjAwMzUyNiwgMC4wMDM1MjksIDAuMDAzNTMsIDAuMDAzNTMsIDAuMDAzNTMxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiR04iOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDc4MywgMC4wMDQ4MjEsIDAuMDA0ODI2LCAwLjAwNDgyOCwgMC4wMDQ4MjgsIDAuMDA0ODI5LCAwLjAwNDgyOSIsIFwKLSAgICAgICAgICAiMC4wMDQ3NzgsIDAuMDA0ODE2LCAwLjAwNDgyLCAwLjAwNDgyMywgMC4wMDQ4MjQsIDAuMDA0ODI0LCAwLjAwNDgyNSIsIFwKLSAgICAgICAgICAiMC4wMDQ3NzQsIDAuMDA0ODEyLCAwLjAwNDgxNiwgMC4wMDQ4MiwgMC4wMDQ4MiwgMC4wMDQ4MiwgMC4wMDQ4MiIsIFwKLSAgICAgICAgICAiMC4wMDQ3NzEsIDAuMDA0ODA5LCAwLjAwNDgxMywgMC4wMDQ4MTcsIDAuMDA0ODE3LCAwLjAwNDgxNiwgMC4wMDQ4MTgiLCBcCi0gICAgICAgICAgIjAuMDA0NzY4LCAwLjAwNDgwNywgMC4wMDQ4MTEsIDAuMDA0ODEzLCAwLjAwNDgxNCwgMC4wMDQ4MTUsIDAuMDA0ODE1IiwgXAotICAgICAgICAgICIwLjAwNDc2OCwgMC4wMDQ4MDYsIDAuMDA0ODEsIDAuMDA0ODEyLCAwLjAwNDgxMywgMC4wMDQ4MTQsIDAuMDA0ODE0IiwgXAotICAgICAgICAgICIwLjAwNDc2NSwgMC4wMDQ4MDQsIDAuMDA0ODA4LCAwLjAwNDgxLCAwLjAwNDgxMSwgMC4wMDQ4MTEsIDAuMDA0ODEyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0Nzc1LCAwLjAwNDgwNywgMC4wMDQ4MDcsIDAuMDA0ODA3LCAwLjAwNDgwNiwgMC4wMDQ4MDUsIDAuMDA0ODA1IiwgXAotICAgICAgICAgICIwLjAwNDc2OSwgMC4wMDQ4MDEsIDAuMDA0OCwgMC4wMDQ4MDEsIDAuMDA0OCwgMC4wMDQ4LCAwLjAwNDgiLCBcCi0gICAgICAgICAgIjAuMDA0NzY0LCAwLjAwNDc5NSwgMC4wMDQ3OTYsIDAuMDA0Nzk2LCAwLjAwNDc5MywgMC4wMDQ3OTQsIDAuMDA0NzkzIiwgXAotICAgICAgICAgICIwLjAwNDc1OSwgMC4wMDQ3OTEsIDAuMDA0NzksIDAuMDA0NzkxLCAwLjAwNDc5LCAwLjAwNDc4OSwgMC4wMDQ3ODkiLCBcCi0gICAgICAgICAgIjAuMDA0NzU2LCAwLjAwNDc4NywgMC4wMDQ3ODksIDAuMDA0Nzg3LCAwLjAwNDc4OCwgMC4wMDQ3ODcsIDAuMDA0Nzg1IiwgXAotICAgICAgICAgICIwLjAwNDc1MiwgMC4wMDQ3ODQsIDAuMDA0Nzg1LCAwLjAwNDc4NCwgMC4wMDQ3ODQsIDAuMDA0NzgzLCAwLjAwNDc4MiIsIFwKLSAgICAgICAgICAiMC4wMDQ3NDksIDAuMDA0NzgyLCAwLjAwNDc4MiwgMC4wMDQ3ODEsIDAuMDA0NzgsIDAuMDA0NzgsIDAuMDA0NzgiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBUTEFUTlhMICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKFRMQVROWEwpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4xNTQzMzM7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgbGF0Y2ggKFFJTlQsTjApIHsKLSAgICBkYXRhX2luIDogIkQiOwotICAgIGVuYWJsZSA6ICIoIUdOKSI7Ci0gIH0KLSAgcGluKEQpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYwNjAzOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYwMzcwMjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2MDYwMzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxNTgsIDAuMDAwMTYsIDAuMDAwMTYxLCAwLjAwMDE2MSwgMC4wMDAxNjIsIDAuMDAwMTYyLCAwLjAwMDE2MiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDE3LCAwLjAwMDE2NywgMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkdOIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDc1LCAtMC4wNjM3NSwgLTAuMDU3NSwgLTAuMDQ1LCAtMC4wMzg3NSwgLTAuMDIyNSwgLTAuMDEzNzUiLCBcCi0gICAgICAgICAgIi0wLjA5MjUsIC0wLjA4MTI1LCAtMC4wNjg3NSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wMzM3NSwgLTAuMDI1IiwgXAotICAgICAgICAgICItMC4xMDUsIC0wLjA5Mzc1LCAtMC4wODEyNSwgLTAuMDY4NzUsIC0wLjA2MjUsIC0wLjA0NjI1LCAtMC4wMzc1IiwgXAotICAgICAgICAgICItMC4xMTc1LCAtMC4xMDYyNSwgLTAuMDkzNzUsIC0wLjA4MTI1LCAtMC4wNzUsIC0wLjA1ODc1LCAtMC4wNSIsIFwKLSAgICAgICAgICAiLTAuMTMsIC0wLjExODc1LCAtMC4xMDYyNSwgLTAuMDkzNzUsIC0wLjA4NzUsIC0wLjA3MTI1LCAtMC4wNjI1IiwgXAotICAgICAgICAgICItMC4xNTI1LCAtMC4xNDEyNSwgLTAuMTI4NzUsIC0wLjExNjI1LCAtMC4xMSwgLTAuMDkzNzUsIC0wLjA4NSIsIFwKLSAgICAgICAgICAiLTAuMTczNzUsIC0wLjE2MjUsIC0wLjE1LCAtMC4xMzc1LCAtMC4xMjUsIC0wLjExNSwgLTAuMTA2MjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMjUsIC0wLjAxMzc1LCAwLjAwNSwgMC4wMTc1LCAwLjAzNjI1LCAwLjA1ODc1LCAwLjA3Mzc1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDI1LCAtMC4wMDYyNSwgMC4wMDYyNSwgMC4wMjUsIDAuMDQ3NSwgMC4wNjI1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDM3NSwgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLjAxMjUsIDAuMDM1LCAwLjA1IiwgXAotICAgICAgICAgICItMC4wNjEyNSwgLTAuMDUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAuMDIyNSwgMC4wMzc1IiwgXAotICAgICAgICAgICItMC4wNzM3NSwgLTAuMDYyNSwgLTAuMDQzNzUsIC0wLjAzMTI1LCAtMC4wMTI1LCAwLjAxLCAwLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDk2MjUsIC0wLjA3ODc1LCAtMC4wNjYyNSwgLTAuMDQ3NSwgLTAuMDM1LCAtMC4wMTI1LCAwLjAwODc1IiwgXAotICAgICAgICAgICItMC4xMTEyNSwgLTAuMSwgLTAuMDgxMjUsIC0wLjA2ODc1LCAtMC4wNSwgLTAuMDI3NSwgLTAuMDEyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJHTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xLCAwLjA4ODc1LCAwLjA3NjI1LCAwLjA2Mzc1LCAwLjA1NzUsIDAuMDQ3NSwgMC4wMzg3NSIsIFwKLSAgICAgICAgICAiMC4xMTEyNSwgMC4xLCAwLjA4NzUsIDAuMDc1LCAwLjA2ODc1LCAwLjA1ODc1LCAwLjA1IiwgXAotICAgICAgICAgICIwLjEyMzc1LCAwLjExMjUsIDAuMSwgMC4wOTM3NSwgMC4wODEyNSwgMC4wNzEyNSwgMC4wNjI1IiwgXAotICAgICAgICAgICIwLjEzNjI1LCAwLjEyNSwgMC4xMTI1LCAwLjEwNjI1LCAwLjA5Mzc1LCAwLjA4Mzc1LCAwLjA3NSIsIFwKLSAgICAgICAgICAiMC4xNDg3NSwgMC4xMzc1LCAwLjEyNSwgMC4xMTg3NSwgMC4xMTI1LCAwLjA5NjI1LCAwLjA5Mzc1IiwgXAotICAgICAgICAgICIwLjE3MTI1LCAwLjE2LCAwLjE0NzUsIDAuMTQxMjUsIDAuMTI4NzUsIDAuMTE4NzUsIDAuMTEiLCBcCi0gICAgICAgICAgIjAuMTkyNSwgMC4xODEyNSwgMC4xNjg3NSwgMC4xNTYyNSwgMC4xNSwgMC4xNCwgMC4xMzEyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1NjI1LCAwLjA0NSwgMC4wMjYyNSwgMC4wMDc1LCAtMC4wMDUsIC0wLjAyNzUsIC0wLjA0ODc1IiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDU2MjUsIDAuMDM3NSwgMC4wMTg3NSwgMC4wMDYyNSwgLTAuMDE2MjUsIC0wLjAzNzUiLCBcCi0gICAgICAgICAgIjAuMDgsIDAuMDY4NzUsIDAuMDUsIDAuMDMxMjUsIDAuMDE4NzUsIC0wLjAwMzc1LCAtMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMDkyNSwgMC4wNzUsIDAuMDYyNSwgMC4wNDM3NSwgMC4wMzEyNSwgMC4wMDg3NSwgLTAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4xMDUsIDAuMDg3NSwgMC4wNzUsIDAuMDU2MjUsIDAuMDQzNzUsIDAuMDIxMjUsIDAiLCBcCi0gICAgICAgICAgIjAuMTIxMjUsIDAuMTEsIDAuMDkxMjUsIDAuMDc4NzUsIDAuMDYsIDAuMDM3NSwgMC4wMTYyNSIsIFwKLSAgICAgICAgICAiMC4xMzYyNSwgMC4xMjUsIDAuMTA2MjUsIDAuMDkzNzUsIDAuMDc1LCAwLjA1MjUsIDAuMDM3NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oR04pICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYyMjc1MjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MjIzMTk7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjIyNzUyOwotICAgIGNsb2NrIDogdHJ1ZTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDEzNywgMC4wMDEzNTYsIDAuMDAxMzQ0LCAwLjAwMTMzOCwgMC4wMDEzMzEsIDAuMDAxMzI4LCAwLjAwMTMyNyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjUxMywgMC4wMDI1MDMsIDAuMDAyNDk0LCAwLjAwMjQ4OCwgMC4wMDI0ODQsIDAuMDAyNDc5LCAwLjAwMjQ3OSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJHTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQiOwotICAgICAgc2RmX2NvbmQgOiAiRCA9PSAxJ2IwIjsKLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjQwNzcwNywgMC40MTkyNzEsIDAuNDM0MjMsIDAuNDQ4NDMsIDAuNDYzNDgyLCAwLjQ4NDg3NiwgMC41MDIzOTQiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFEpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4wNzQ2MTI7Ci0gICAgZnVuY3Rpb24gOiAiUUlOVCI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzI1MDQyLCAwLjM1MDM5NiwgMC41NzgwOSwgMC45NTgyNywgMS4zMzgwMSwgMi4yMjQ2OCwgMi43MzQzMSIsIFwKLSAgICAgICAgICAiMC4zMzYzOTUsIDAuMzYxNjUsIDAuNTg5NzEsIDAuOTY5MjkzLCAxLjM0ODg4LCAyLjIzNDYzLCAyLjc0MjY5IiwgXAotICAgICAgICAgICIwLjM1MDA3NywgMC4zNzU0MzIsIDAuNjAzMjMyLCAwLjk4MzM1NCwgMS4zNjMwNywgMi4yNTIyMywgMi43NTkyNiIsIFwKLSAgICAgICAgICAiMC4zNjM2NTQsIDAuMzg4OTkzLCAwLjYxNjYxNiwgMC45OTY2NTgsIDEuMzc2MTgsIDIuMjYyMDgsIDIuNzY5ODkiLCBcCi0gICAgICAgICAgIjAuMzc3MzI1LCAwLjQwMjY3OSwgMC42MzA0MTMsIDEuMDEwNTUsIDEuMzkwMjUsIDIuMjc1NjMsIDIuNzg2NjMiLCBcCi0gICAgICAgICAgIjAuMzk4OTgxLCAwLjQyNDMzLCAwLjY1MjAyMSwgMS4wMzIyNywgMS40MTE5OSwgMi4zMDA5OSwgMi44MDgwNSIsIFwKLSAgICAgICAgICAiMC40MTc1NjIsIDAuNDQyOTUyLCAwLjY3MTY4OCwgMS4wNTA1NCwgMS40MzEzLCAyLjMxODQsIDIuODIzNTkiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjcwMTUsIDAuMzIwNTc1LCAwLjc4ODk5OCwgMS41NjU2OCwgMi4zNDI2MSwgNC4xNjgxOCwgNS4xODQ5NCIsIFwKLSAgICAgICAgICAiMC4yNzAwNDksIDAuMzE5MzkzLCAwLjc4NzgzNSwgMS41NjU1MywgMi4zNDI2MSwgNC4xNTg5OSwgNS4xNTEyNSIsIFwKLSAgICAgICAgICAiMC4yNzAxODMsIDAuMzIwNDk5LCAwLjc4ODk2NiwgMS41NjU2MSwgMi4zNDI3MSwgNC4xNTMzNiwgNS4xOTE0IiwgXAotICAgICAgICAgICIwLjI2OTk5LCAwLjMyMTc5LCAwLjc4NDg5OSwgMS41NjU1NywgMi4zNDI1OSwgNC4xNjAwOSwgNS4xNTk1NSIsIFwKLSAgICAgICAgICAiMC4yNzAwNzQsIDAuMzIxOTQ5LCAwLjc4ODk5OSwgMS41NjU1OCwgMi4zNDI3MiwgNC4xNjkyOSwgNS4xODcyNCIsIFwKLSAgICAgICAgICAiMC4yNzAxMDgsIDAuMzIyMTg4LCAwLjc4OTAwMiwgMS41NjA4NiwgMi4zNDI3NSwgNC4xNTc4MSwgNS4xOTA1NiIsIFwKLSAgICAgICAgICAiMC4yNjk2MzgsIDAuMzIyMjUxLCAwLjc4NTUxNiwgMS41NjU1MywgMi4zNDMyNiwgNC4xNTYxMiwgNS4xNzA3NyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zNDE1NTksIDAuMzcxNjQ0LCAwLjY0MDY2NCwgMS4wODc4NiwgMS41MzUyNSwgMi41Nzg0NywgMy4xNjYxMSIsIFwKLSAgICAgICAgICAiMC4zNTMyNjMsIDAuMzgyODQzLCAwLjY1MjA3MywgMS4wOTk0LCAxLjU0Njk0LCAyLjU5MDAxLCAzLjE4NTYiLCBcCi0gICAgICAgICAgIjAuMzY2MjUyLCAwLjM5NjE5MiwgMC42NjM2MDEsIDEuMTA5MTcsIDEuNTYwMDUsIDIuNjAzMiwgMy4xOTkwNiIsIFwKLSAgICAgICAgICAiMC4zNzg4MDIsIDAuNDA4NzYzLCAwLjY3ODAwNSwgMS4xMjE3OSwgMS41NzI3MiwgMi42MTU3NSwgMy4yMTE1NiIsIFwKLSAgICAgICAgICAiMC4zOTExNzYsIDAuNDIxMTMsIDAuNjg4ODE2LCAxLjEzNDA2LCAxLjU4NDk4LCAyLjYyODEyLCAzLjIyMzk1IiwgXAotICAgICAgICAgICIwLjQxMDU4LCAwLjQ0MDQ5MywgMC43MDc5NTYsIDEuMTUzNDksIDEuNjA0MzQsIDIuNjQ3NDksIDMuMjQzMyIsIFwKLSAgICAgICAgICAiMC40MjY5NDYsIDAuNDU2ODE5LCAwLjcyNDEzNiwgMS4xNzMzNCwgMS42MjA1NSwgMi42NjM4OCwgMy4yNTE0OSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMDc1MjUsIDAuMzY3OTYxLCAwLjg5OTIwNywgMS43ODQ5LCAyLjY2ODIyLCA0LjcyNzU1LCA1Ljg4NTY1IiwgXAotICAgICAgICAgICIwLjMwOTY1OSwgMC4zNjgxNTksIDAuODk5NjkzLCAxLjc4NDQ2LCAyLjY2ODE1LCA0LjcyMzk4LCA1LjkxODI4IiwgXAotICAgICAgICAgICIwLjMwNzc2LCAwLjM2NjAzNiwgMC44OTQ2NjQsIDEuNzgzMDgsIDIuNjY3ODIsIDQuNzI1MDMsIDUuOTE3NzkiLCBcCi0gICAgICAgICAgIjAuMzA4MTQ1LCAwLjM2ODg4NSwgMC44OTk2NDEsIDEuNzc4MTMsIDIuNjY3ODQsIDQuNzI0MSwgNS45MTgxNSIsIFwKLSAgICAgICAgICAiMC4zMDc3OTUsIDAuMzY2MTQ1LCAwLjg5NTU1OCwgMS43Nzk1NCwgMi42Njc3NSwgNC43MjQ4MywgNS45MTc5MSIsIFwKLSAgICAgICAgICAiMC4zMDc3LCAwLjM2NjA3MSwgMC44OTQyNzMsIDEuNzgyOTksIDIuNjY3NjMsIDQuNzI0NjMsIDUuOTE3OTkiLCBcCi0gICAgICAgICAgIjAuMzA3NzgzLCAwLjM2NjM2MSwgMC44OTg5NTUsIDEuNzg0NTMsIDIuNjY3MywgNC43MjUsIDUuOTAzNzEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiR04iOwotICAgICAgdGltaW5nX3NlbnNlIDogbm9uX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiBmYWxsaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjM2MDM1NywgMC4zODU4MSwgMC42MTMwMzcsIDAuOTkzMzkzLCAxLjM3MjkzLCAyLjI1NzI3LCAyLjc2Njc1IiwgXAotICAgICAgICAgICIwLjM3MTgwNywgMC4zOTcyNjMsIDAuNjI0NTEzLCAxLjAwNTA0LCAxLjM4NDMsIDIuMjcyODgsIDIuNzc1NzQiLCBcCi0gICAgICAgICAgIjAuMzg2NTQ4LCAwLjQxMjAwNCwgMC42MzkyNjIsIDEuMDE5NzYsIDEuMzk5NDEsIDIuMjg2ODYsIDIuNzkzNDQiLCBcCi0gICAgICAgICAgIjAuNDAxMTM3LCAwLjQyNjQwNiwgMC42NTM3ODMsIDEuMDM0NDQsIDEuNDE0MTEsIDIuMjk4NDMsIDIuODA4MTMiLCBcCi0gICAgICAgICAgIjAuNDE1NTY3LCAwLjQ0MDg2MiwgMC42NjkxMzIsIDEuMDQ4NTMsIDEuNDI4MSwgMi4zMTI4MiwgMi44MjE2NyIsIFwKLSAgICAgICAgICAiMC40MzcxOSwgMC40NjI2NDUsIDAuNjg5OTAzLCAxLjA3MDM4LCAxLjQ1MDAzLCAyLjMzODU3LCAyLjg0NDAzIiwgXAotICAgICAgICAgICIwLjQ1NDc2NiwgMC40ODAwMjQsIDAuNzA4NDEsIDEuMDg3NzYsIDEuNDY3MywgMi4zNDk3OCwgMi44NjEwNCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yNjk5NDgsIDAuMzIxMTQ3LCAwLjc4MTk4MSwgMS41NjU2LCAyLjM0MjY1LCA0LjE2OTQ3LCA1LjE0NjQ5IiwgXAotICAgICAgICAgICIwLjI2OTk1MywgMC4zMjIyMDIsIDAuNzgxOTg5LCAxLjU2NTUzLCAyLjM0Mjk5LCA0LjE1NjA4LCA1LjE3OTI5IiwgXAotICAgICAgICAgICIwLjI2OTk1OCwgMC4zMjA2MDcsIDAuNzgzNTg0LCAxLjU2NTYxLCAyLjM0MjcsIDQuMTU3NTQsIDUuMTkxMjYiLCBcCi0gICAgICAgICAgIjAuMjY5OTU5LCAwLjMyMDExMywgMC43ODMxNTUsIDEuNTY1NiwgMi4zNDI3NywgNC4xMTI0MiwgNS4xOTM2NCIsIFwKLSAgICAgICAgICAiMC4yNjk4OTUsIDAuMzIwOTkxLCAwLjc4ODI3LCAxLjU2NTU2LCAyLjM0MjU5LCA0LjExMzc1LCA1LjE2NjYiLCBcCi0gICAgICAgICAgIjAuMjY5OTUyLCAwLjMxOTM3NCwgMC43ODM1NzgsIDEuNTY1NjEsIDIuMzQyNzMsIDQuMTU2ODUsIDUuMTg5NTYiLCBcCi0gICAgICAgICAgIjAuMjcwMDk2LCAwLjMyMTY0NCwgMC43ODE3MywgMS41NjU1OSwgMi4zNDI2NCwgNC4xMjYzNywgNS4xNTU4MyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC40MDc3MDcsIDAuNDM3MTI2LCAwLjcwNTA5MiwgMS4xNTAzMSwgMS42MDEyNywgMi42NDQ1NywgMy4yNDAzOSIsIFwKLSAgICAgICAgICAiMC40MTkyNzEsIDAuNDQ4NjIzLCAwLjcxNjQ3NSwgMS4xNjUzNywgMS42MTI4NSwgMi42NTYxNSwgMy4yNTE5NyIsIFwKLSAgICAgICAgICAiMC40MzQyMywgMC40NjM2NDUsIDAuNzMxNjQ2LCAxLjE3Njg0LCAxLjYyNzc5LCAyLjY3MTExLCAzLjI2NjkiLCBcCi0gICAgICAgICAgIjAuNDQ4NDMsIDAuNDc4Mzc5LCAwLjc0NTQ1OCwgMS4xOTE1NSwgMS42NDIzMywgMi42ODU2MywgMy4yODEzOCIsIFwKLSAgICAgICAgICAiMC40NjM0ODIsIDAuNDkyOTc1LCAwLjc2MjI1MSwgMS4yMDU3MSwgMS42NTY4LCAyLjcwMDUsIDMuMjg2NzIiLCBcCi0gICAgICAgICAgIjAuNDg0ODc2LCAwLjUxNDgxLCAwLjc4MjcwOSwgMS4yMjc4MiwgMS42Nzg4LCAyLjcyMjA1LCAzLjMxNzg0IiwgXAotICAgICAgICAgICIwLjUwMjM5NCwgMC41MzI0NDUsIDAuODAxNDg3LCAxLjI0NjU0LCAxLjY5NiwgMi43Mzk0NiwgMy4zMjYyOCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMDk3ODUsIDAuMzY5MTk5LCAwLjg5NzQ1MywgMS43ODIyOCwgMi42Njg0NywgNC43Mjc0NiwgNS45MTcyOCIsIFwKLSAgICAgICAgICAiMC4zMDk3ODQsIDAuMzY2ODIxLCAwLjg5OTgyNywgMS43ODUyMywgMi42Njg0OCwgNC43Mjc2LCA1LjkxNzE4IiwgXAotICAgICAgICAgICIwLjMwOTc4NCwgMC4zNjkxNTUsIDAuODk4NTczLCAxLjc4MjY0LCAyLjY2ODQyLCA0LjcyNzY5LCA1LjkxNzMiLCBcCi0gICAgICAgICAgIjAuMzA4NDEyLCAwLjM2ODE1NiwgMC44OTgzNDUsIDEuNzgwOTIsIDIuNjY3OTUsIDQuNzI2OSwgNS45MTc2MSIsIFwKLSAgICAgICAgICAiMC4zMDkwODcsIDAuMzY4MzE0LCAwLjg5OTgxNCwgMS43NzU4MywgMi42Njc1MywgNC43Mjk0NywgNS45MDEiLCBcCi0gICAgICAgICAgIjAuMzA4NDE2LCAwLjM2NjE1OSwgMC44OTk0NTIsIDEuNzgxMjIsIDIuNjY3OSwgNC43MjY1OSwgNS45MTc1OSIsIFwKLSAgICAgICAgICAiMC4zMDc1MDgsIDAuMzY4NjksIDAuODk5NzkxLCAxLjc4NTY2LCAyLjY2NzI1LCA0LjcyNjk0LCA1LjkwODEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJEIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDE5MzEsIDAuMDAxOTMxLCAwLjAwMTkzMywgMC4wMDE5MzQsIDAuMDAxOTM0LCAwLjAwMTkzNSwgMC4wMDE5MzUiLCBcCi0gICAgICAgICAgIjAuMDAxOTI1LCAwLjAwMTkyNSwgMC4wMDE5MjgsIDAuMDAxOTI5LCAwLjAwMTkyOSwgMC4wMDE5MjksIDAuMDAxOTI5IiwgXAotICAgICAgICAgICIwLjAwMTkyMSwgMC4wMDE5MjIsIDAuMDAxOTI0LCAwLjAwMTkyNSwgMC4wMDE5MjUsIDAuMDAxOTI1LCAwLjAwMTkyNiIsIFwKLSAgICAgICAgICAiMC4wMDE5MTksIDAuMDAxOTIsIDAuMDAxOTIyLCAwLjAwMTkyMiwgMC4wMDE5MjMsIDAuMDAxOTIzLCAwLjAwMTkyMyIsIFwKLSAgICAgICAgICAiMC4wMDE5MTcsIDAuMDAxOTE4LCAwLjAwMTkyLCAwLjAwMTkyMSwgMC4wMDE5MjEsIDAuMDAxOTIyLCAwLjAwMTkyMSIsIFwKLSAgICAgICAgICAiMC4wMDE5MTUsIDAuMDAxOTE1LCAwLjAwMTkxOCwgMC4wMDE5MTgsIDAuMDAxOTE5LCAwLjAwMTkxOSwgMC4wMDE5MTkiLCBcCi0gICAgICAgICAgIjAuMDAxOTEyLCAwLjAwMTkxMywgMC4wMDE5MTUsIDAuMDAxOTE2LCAwLjAwMTkxNiwgMC4wMDE5MTYsIDAuMDAxOTE2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxOTg5LCAwLjAwMTk5LCAwLjAwMTk5MiwgMC4wMDE5OTMsIDAuMDAxOTkzLCAwLjAwMTk5MywgMC4wMDE5OTMiLCBcCi0gICAgICAgICAgIjAuMDAxOTg2LCAwLjAwMTk4NywgMC4wMDE5ODksIDAuMDAxOTksIDAuMDAxOTksIDAuMDAxOTksIDAuMDAxOTkiLCBcCi0gICAgICAgICAgIjAuMDAxOTg1LCAwLjAwMTk4NSwgMC4wMDE5ODcsIDAuMDAxOTg4LCAwLjAwMTk4OCwgMC4wMDE5ODgsIDAuMDAxOTg5IiwgXAotICAgICAgICAgICIwLjAwMTk4MywgMC4wMDE5ODQsIDAuMDAxOTg2LCAwLjAwMTk4NywgMC4wMDE5ODcsIDAuMDAxOTg3LCAwLjAwMTk4NyIsIFwKLSAgICAgICAgICAiMC4wMDE5ODIsIDAuMDAxOTgyLCAwLjAwMTk4NCwgMC4wMDE5ODUsIDAuMDAxOTg1LCAwLjAwMTk4NiwgMC4wMDE5ODYiLCBcCi0gICAgICAgICAgIjAuMDAxOTgsIDAuMDAxOTgsIDAuMDAxOTgzLCAwLjAwMTk4MywgMC4wMDE5ODQsIDAuMDAxOTg0LCAwLjAwMTk4NCIsIFwKLSAgICAgICAgICAiMC4wMDE5NzgsIDAuMDAxOTc5LCAwLjAwMTk4MSwgMC4wMDE5ODIsIDAuMDAxOTgyLCAwLjAwMTk4MywgMC4wMDE5ODMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJHTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzMTQyLCAwLjAwMzE0MiwgMC4wMDMxNCwgMC4wMDMxMzksIDAuMDAzMTM4LCAwLjAwMzEzNywgMC4wMDMxMzciLCBcCi0gICAgICAgICAgIjAuMDAzMTM2LCAwLjAwMzEzNiwgMC4wMDMxMzQsIDAuMDAzMTMzLCAwLjAwMzEzMiwgMC4wMDMxMzEsIDAuMDAzMTMxIiwgXAotICAgICAgICAgICIwLjAwMzEzLCAwLjAwMzEzLCAwLjAwMzEyOCwgMC4wMDMxMjcsIDAuMDAzMTI2LCAwLjAwMzEyNSwgMC4wMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMDAzMTI1LCAwLjAwMzEyNSwgMC4wMDMxMjMsIDAuMDAzMTIyLCAwLjAwMzEyMSwgMC4wMDMxMiwgMC4wMDMxMiIsIFwKLSAgICAgICAgICAiMC4wMDMxMjEsIDAuMDAzMTIxLCAwLjAwMzEyLCAwLjAwMzExOCwgMC4wMDMxMTcsIDAuMDAzMTE3LCAwLjAwMzExNiIsIFwKLSAgICAgICAgICAiMC4wMDMxMTgsIDAuMDAzMTE4LCAwLjAwMzExNiwgMC4wMDMxMTUsIDAuMDAzMTE0LCAwLjAwMzExMywgMC4wMDMxMTMiLCBcCi0gICAgICAgICAgIjAuMDAzMTE1LCAwLjAwMzExNSwgMC4wMDMxMTMsIDAuMDAzMTEyLCAwLjAwMzExMSwgMC4wMDMxMSwgMC4wMDMxMSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzA2NCwgMC4wMDMwNjUsIDAuMDAzMDY3LCAwLjAwMzA2OCwgMC4wMDMwNjgsIDAuMDAzMDY4LCAwLjAwMzA2OCIsIFwKLSAgICAgICAgICAiMC4wMDMwNTksIDAuMDAzMDYsIDAuMDAzMDYyLCAwLjAwMzA2MywgMC4wMDMwNjMsIDAuMDAzMDYzLCAwLjAwMzA2MyIsIFwKLSAgICAgICAgICAiMC4wMDMwNTUsIDAuMDAzMDU2LCAwLjAwMzA1OCwgMC4wMDMwNTksIDAuMDAzMDU5LCAwLjAwMzA1OSwgMC4wMDMwNTkiLCBcCi0gICAgICAgICAgIjAuMDAzMDUxLCAwLjAwMzA1MiwgMC4wMDMwNTQsIDAuMDAzMDU1LCAwLjAwMzA1NSwgMC4wMDMwNTUsIDAuMDAzMDU2IiwgXAotICAgICAgICAgICIwLjAwMzA1LCAwLjAwMzA1MSwgMC4wMDMwNTMsIDAuMDAzMDU0LCAwLjAwMzA1NCwgMC4wMDMwNTQsIDAuMDAzMDU0IiwgXAotICAgICAgICAgICIwLjAwMzA0OCwgMC4wMDMwNDgsIDAuMDAzMDUxLCAwLjAwMzA1MSwgMC4wMDMwNTIsIDAuMDAzMDUyLCAwLjAwMzA1MiIsIFwKLSAgICAgICAgICAiMC4wMDMwNDYsIDAuMDAzMDQ3LCAwLjAwMzA0OSwgMC4wMDMwNSwgMC4wMDMwNSwgMC4wMDMwNSwgMC4wMDMwNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUU4pICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4wNjcxMjMzOwotICAgIGZ1bmN0aW9uIDogIk4wIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJEIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yOTg0MDQsIDAuMzIzNjY2LCAwLjU1MDk5NCwgMC45Mjk3OTIsIDEuMzA4NDIsIDIuMTkyMTEsIDIuNjk3IiwgXAotICAgICAgICAgICIwLjMwOTgzNywgMC4zMzUxMTUsIDAuNTYyNDA3LCAwLjk0MTEzMiwgMS4zMTk4LCAyLjIwMzQ2LCAyLjcwODYxIiwgXAotICAgICAgICAgICIwLjMyMzE0OCwgMC4zNDg0MDYsIDAuNTc1NzEyLCAwLjk1NDU3OSwgMS4zMzMxNCwgMi4yMTY4NywgMi43MjE4NiIsIFwKLSAgICAgICAgICAiMC4zMzU3NjksIDAuMzYxMDM4LCAwLjU4ODM0NywgMC45NjcwODEsIDEuMzQ1NzYsIDIuMjI5NTMsIDIuNzM0NTIiLCBcCi0gICAgICAgICAgIjAuMzQ4MDc5LCAwLjM3MzMzNywgMC42MDA2NSwgMC45Nzk0NzgsIDEuMzU4MDcsIDIuMjQxODEsIDIuNzQ2OCIsIFwKLSAgICAgICAgICAiMC4zNjc0NjcsIDAuMzkyNzI3LCAwLjYyMDAzNSwgMC45OTg4OTQsIDEuMzc3NDYsIDIuMjYxMiwgMi43NjYxOSIsIFwKLSAgICAgICAgICAiMC4zODM4NTIsIDAuNDA5MTA5LCAwLjYzNjQ3MywgMS4wMTUxNywgMS4zOTM4NywgMi4yNzc1NywgMi43ODI0MSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yNzQ1MTIsIDAuMzI0NzI4LCAwLjc4NTQ4NywgMS41NTU0MywgMi4zMjQ3MiwgNC4xMjA5NiwgNS4xMzQ0OCIsIFwKLSAgICAgICAgICAiMC4yNzQyMDgsIDAuMzI1MjQ5LCAwLjc4NTQxMSwgMS41NTQ5NCwgMi4zMjQ1MywgNC4xMjA1NSwgNS4xNDA2OCIsIFwKLSAgICAgICAgICAiMC4yNzQ1MzUsIDAuMzI1MTUyLCAwLjc4NDAwNSwgMS41NTEwNSwgMi4zMjQ2MywgNC4xMjA5MywgNS4xNDA1NCIsIFwKLSAgICAgICAgICAiMC4yNzQ1MDksIDAuMzI0NTg4LCAwLjc4NTQzMSwgMS41NTI0OSwgMi4zMjQ2LCA0LjEyMDk5LCA1LjE0MDY3IiwgXAotICAgICAgICAgICIwLjI3NDUzNSwgMC4zMjUxNTIsIDAuNzg0MDc5LCAxLjU1MTA4LCAyLjMyNDYyLCA0LjEyMDkzLCA1LjE0MDUyIiwgXAotICAgICAgICAgICIwLjI3NDUyOSwgMC4zMjUxNDgsIDAuNzg0MDEzLCAxLjU1MTA2LCAyLjMyNDYxLCA0LjEyMDkzLCA1LjE0MDUxIiwgXAotICAgICAgICAgICIwLjI3NDUzNiwgMC4zMjUxNDMsIDAuNzgzMzIyLCAxLjU1NTAzLCAyLjMyNDcyLCA0LjEyMDkyLCA1LjEzNzIzIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMyNjI2MiwgMC4zNTU5ODEsIDAuNjIzNDMyLCAxLjA2ODkxLCAxLjUxNDQxLCAyLjU1Mzk1LCAzLjE0ODE5IiwgXAotICAgICAgICAgICIwLjMzNzY1LCAwLjM2NzM3OCwgMC42MzQ4MzksIDEuMDgwMjcsIDEuNTI1NzUsIDIuNTY1MjIsIDMuMTU5MjgiLCBcCi0gICAgICAgICAgIjAuMzUxMjk2LCAwLjM4MTAxNCwgMC42NDg0NzEsIDEuMDkzOTQsIDEuNTM5NDQsIDIuNTc5MTgsIDMuMTczMjIiLCBcCi0gICAgICAgICAgIjAuMzY0ODU5LCAwLjM5NDU3OCwgMC42NjE5OTgsIDEuMTA3NDgsIDEuNTUyOTYsIDIuNTkyNDQsIDMuMTg2NDgiLCBcCi0gICAgICAgICAgIjAuMzc4NTQ3LCAwLjQwODI2NywgMC42NzU3MjMsIDEuMTIxMTksIDEuNTY2NjksIDIuNjA2MTIsIDMuMjAwNDgiLCBcCi0gICAgICAgICAgIjAuNDAwMTkyLCAwLjQyOTkwNCwgMC42OTczNTIsIDEuMTQyODcsIDEuNTg4MzMsIDIuNjI4MDUsIDMuMjIyMDkiLCBcCi0gICAgICAgICAgIjAuNDE4ODAxLCAwLjQ0ODUzMSwgMC43MTYwMTIsIDEuMTYxNDIsIDEuNjA3MDIsIDIuNjQ2NTYsIDMuMjQwNDIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzEzMTQ0LCAwLjM3MTAyMiwgMC44OTgzNjgsIDEuNzgxMjIsIDIuNjYzMTQsIDQuNzIwMzEsIDUuODg4NjgiLCBcCi0gICAgICAgICAgIjAuMzEzMTI3LCAwLjM3MTAzNywgMC44OTg2NjksIDEuNzgxMTcsIDIuNjYzMDIsIDQuNzE2NTMsIDUuODkyNCIsIFwKLSAgICAgICAgICAiMC4zMTMxNTcsIDAuMzcxMDIyLCAwLjg5ODUxMSwgMS43ODEyNCwgMi42NjMxMywgNC43MTQ5NSwgNS44OTAyMiIsIFwKLSAgICAgICAgICAiMC4zMTMxMTksIDAuMzcxMzE1LCAwLjg5ODk1NywgMS43ODExOSwgMi42NjMwNCwgNC43MTcwMSwgNS44OTI3NiIsIFwKLSAgICAgICAgICAiMC4zMTMxMjYsIDAuMzcxMzQ3LCAwLjg5ODQyMSwgMS43ODEyMywgMi42NjMxMSwgNC43MjAxMiwgNS44ODkwOSIsIFwKLSAgICAgICAgICAiMC4zMTMyMDcsIDAuMzcxNDI1LCAwLjg5ODM3OCwgMS43Nzk5OSwgMi42NjMxNCwgNC43MTY0OSwgNS44OTExMiIsIFwKLSAgICAgICAgICAiMC4zMTI5MTksIDAuMzcxNDQ3LCAwLjg5ODUxNywgMS43ODExLCAyLjY2MzI4LCA0LjcyMTMxLCA1Ljg5MzA0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkdOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5vbl91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogZmFsbGluZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zNjQ0MSwgMC4zODk2OSwgMC42MTY5OTEsIDAuOTk1ODQ0LCAxLjM3NDQxLCAyLjI1ODEzLCAyLjc2MzEyIiwgXAotICAgICAgICAgICIwLjM3NTk3NywgMC40MDEyNTYsIDAuNjI4NTg3LCAxLjAwNzM2LCAxLjM4NTk4LCAyLjI2OTcsIDIuNzc0NjkiLCBcCi0gICAgICAgICAgIjAuMzkwOTM1LCAwLjQxNjIxNCwgMC42NDM1MTksIDEuMDIyMzcsIDEuNDAwOTQsIDIuMjg0NjYsIDIuNzg5NjUiLCBcCi0gICAgICAgICAgIjAuNDA1NTM1LCAwLjQzMDgwNSwgMC42NTgxMDMsIDEuMDM2OTEsIDEuNDE1NTUsIDIuMjk5MjYsIDIuODA0MjYiLCBcCi0gICAgICAgICAgIjAuNDIwMTE3LCAwLjQ0NTM5MSwgMC42NzI2NzMsIDEuMDUxNDQsIDEuNDMwMTQsIDIuMzEzODQsIDIuODE4NzgiLCBcCi0gICAgICAgICAgIjAuNDQxOTgyLCAwLjQ2NzI1MywgMC42OTQ1NzEsIDEuMDczMzksIDEuNDUxOTksIDIuMzM1NzEsIDIuODQwNzEiLCBcCi0gICAgICAgICAgIjAuNDU5MzYxLCAwLjQ4NDYyMSwgMC43MTE5MTIsIDEuMDkwNjUsIDEuNDY5MzcsIDIuMzUzMDcsIDIuODU4Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI3NDI2MSwgMC4zMjQ0MDYsIDAuNzg0MDQ4LCAxLjU1MTA2LCAyLjMyNDY5LCA0LjEyMDk4LCA1LjE0MDc5IiwgXAotICAgICAgICAgICIwLjI3NDI2MSwgMC4zMjQ0NjEsIDAuNzg0MjQ1LCAxLjU1NTM4LCAyLjMyNDY4LCA0LjEyMDk4LCA1LjE0MDYzIiwgXAotICAgICAgICAgICIwLjI3NDI2LCAwLjMyNDQxLCAwLjc4NDAyOCwgMS41NTEwNiwgMi4zMjQ2OCwgNC4xMjA5OCwgNS4xNDA3OCIsIFwKLSAgICAgICAgICAiMC4yNzQ1ODUsIDAuMzI0NjY1LCAwLjc4MzkwNSwgMS41NTE2OSwgMi4zMjQ2NCwgNC4xMjA5NiwgNS4xNDA1NiIsIFwKLSAgICAgICAgICAiMC4yNzQyOTQsIDAuMzI0NjU3LCAwLjc4NTMwNiwgMS41NTIzMiwgMi4zMjQ2NywgNC4xMjEwMywgNS4xMzYxIiwgXAotICAgICAgICAgICIwLjI3NDU5MywgMC4zMjQ2ODYsIDAuNzg0MDA4LCAxLjU1MTA5LCAyLjMyNDYxLCA0LjEyMDk2LCA1LjE0MDczIiwgXAotICAgICAgICAgICIwLjI3NDIxOSwgMC4zMjUyMTEsIDAuNzg1MzM1LCAxLjU1NDYxLCAyLjMyNDY1LCA0LjEyMDk2LCA1LjEzNTYxIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjM2MTQ2MywgMC4zOTExNzksIDAuNjU4NDEyLCAxLjEwMzc4LCAxLjU0OTIxLCAyLjU4ODUzLCAzLjE4MjY4IiwgXAotICAgICAgICAgICIwLjM3MjkzNCwgMC40MDI2NDgsIDAuNjY5ODg1LCAxLjExNTI2LCAxLjU2MDY4LCAyLjYwMDMxLCAzLjE5NDAyIiwgXAotICAgICAgICAgICIwLjM4NzY2NCwgMC40MTczOCwgMC42ODQ2MjEsIDEuMTMsIDEuNTc1NDQsIDIuNjE0OTYsIDMuMjA4OTIiLCBcCi0gICAgICAgICAgIjAuNDAyMjQ3LCAwLjQzMTk1MiwgMC42OTkyMDgsIDEuMTQ0NTksIDEuNTkwMDQsIDIuNjI5NDEsIDMuMjIzNTEiLCBcCi0gICAgICAgICAgIjAuNDE2NjcxLCAwLjQ0NjM2NSwgMC43MTM2MDQsIDEuMTU4OTgsIDEuNjA0NDIsIDIuNjQzODEsIDMuMjM3ODgiLCBcCi0gICAgICAgICAgIjAuNDM4MzI3LCAwLjQ2ODA0NiwgMC43MzUyOTIsIDEuMTgwNjYsIDEuNjI2MSwgMi42NjU3NSwgMy4yNTk1OCIsIFwKLSAgICAgICAgICAiMC40NTU4ODMsIDAuNDg1NTY5LCAwLjc1Mjg3NywgMS4xOTgxOSwgMS42NDM2MiwgMi42ODI5OCwgMy4yNzcwOSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMTMxMjYsIDAuMzcwOTI0LCAwLjg5ODc4MSwgMS43ODExLCAyLjY2MzA0LCA0LjcxOTg5LCA1Ljg5MjQ2IiwgXAotICAgICAgICAgICIwLjMxMzEyNywgMC4zNzE1MjksIDAuODk4Nzg0LCAxLjc4MTE1LCAyLjY2Mjg1LCA0LjcyMTEyLCA1Ljg5NCIsIFwKLSAgICAgICAgICAiMC4zMTMxMjgsIDAuMzcwOTUzLCAwLjg5ODc1OSwgMS43ODExNCwgMi42NjI5NywgNC43MTYzOCwgNS44OTAxNyIsIFwKLSAgICAgICAgICAiMC4zMTMxMjksIDAuMzcxMDA1LCAwLjg5ODc2NywgMS43ODExNiwgMi42NjMxMiwgNC43MTgxOSwgNS44OTExMyIsIFwKLSAgICAgICAgICAiMC4zMTMxMTcsIDAuMzcxMTU4LCAwLjg5OTQ4NCwgMS43ODExLCAyLjY2MjkxLCA0LjcxODE0LCA1Ljg5MjkiLCBcCi0gICAgICAgICAgIjAuMzEzMTMsIDAuMzcwOTkyLCAwLjg5ODc1OCwgMS43ODExMywgMi42NjI5NiwgNC43MjExOSwgNS44ODk3OCIsIFwKLSAgICAgICAgICAiMC4zMTMyLCAwLjM3MTEwOSwgMC44OTg1ODQsIDEuNzgxMSwgMi42NjI5LCA0LjcxODYzLCA1Ljg5MjcxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxOTg5LCAwLjAwMTk5LCAwLjAwMTk5MiwgMC4wMDE5OTMsIDAuMDAxOTkzLCAwLjAwMTk5MywgMC4wMDE5OTMiLCBcCi0gICAgICAgICAgIjAuMDAxOTg2LCAwLjAwMTk4NywgMC4wMDE5ODksIDAuMDAxOTksIDAuMDAxOTksIDAuMDAxOTksIDAuMDAxOTkiLCBcCi0gICAgICAgICAgIjAuMDAxOTg1LCAwLjAwMTk4NSwgMC4wMDE5ODcsIDAuMDAxOTg4LCAwLjAwMTk4OCwgMC4wMDE5ODgsIDAuMDAxOTg5IiwgXAotICAgICAgICAgICIwLjAwMTk4MywgMC4wMDE5ODQsIDAuMDAxOTg2LCAwLjAwMTk4NywgMC4wMDE5ODcsIDAuMDAxOTg3LCAwLjAwMTk4NyIsIFwKLSAgICAgICAgICAiMC4wMDE5ODIsIDAuMDAxOTgyLCAwLjAwMTk4NCwgMC4wMDE5ODUsIDAuMDAxOTg1LCAwLjAwMTk4NiwgMC4wMDE5ODYiLCBcCi0gICAgICAgICAgIjAuMDAxOTgsIDAuMDAxOTgsIDAuMDAxOTgzLCAwLjAwMTk4MywgMC4wMDE5ODQsIDAuMDAxOTg0LCAwLjAwMTk4NCIsIFwKLSAgICAgICAgICAiMC4wMDE5NzgsIDAuMDAxOTc5LCAwLjAwMTk4MSwgMC4wMDE5ODIsIDAuMDAxOTgyLCAwLjAwMTk4MywgMC4wMDE5ODMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDE5MzEsIDAuMDAxOTMxLCAwLjAwMTkzMywgMC4wMDE5MzQsIDAuMDAxOTM0LCAwLjAwMTkzNSwgMC4wMDE5MzUiLCBcCi0gICAgICAgICAgIjAuMDAxOTI1LCAwLjAwMTkyNSwgMC4wMDE5MjgsIDAuMDAxOTI5LCAwLjAwMTkyOSwgMC4wMDE5MjksIDAuMDAxOTI5IiwgXAotICAgICAgICAgICIwLjAwMTkyMSwgMC4wMDE5MjIsIDAuMDAxOTI0LCAwLjAwMTkyNSwgMC4wMDE5MjUsIDAuMDAxOTI1LCAwLjAwMTkyNiIsIFwKLSAgICAgICAgICAiMC4wMDE5MTksIDAuMDAxOTIsIDAuMDAxOTIyLCAwLjAwMTkyMiwgMC4wMDE5MjMsIDAuMDAxOTIzLCAwLjAwMTkyMyIsIFwKLSAgICAgICAgICAiMC4wMDE5MTcsIDAuMDAxOTE4LCAwLjAwMTkyLCAwLjAwMTkyMSwgMC4wMDE5MjEsIDAuMDAxOTIyLCAwLjAwMTkyMSIsIFwKLSAgICAgICAgICAiMC4wMDE5MTUsIDAuMDAxOTE1LCAwLjAwMTkxOCwgMC4wMDE5MTgsIDAuMDAxOTE5LCAwLjAwMTkxOSwgMC4wMDE5MTkiLCBcCi0gICAgICAgICAgIjAuMDAxOTEyLCAwLjAwMTkxMywgMC4wMDE5MTUsIDAuMDAxOTE2LCAwLjAwMTkxNiwgMC4wMDE5MTYsIDAuMDAxOTE2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiR04iOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzA2NCwgMC4wMDMwNjUsIDAuMDAzMDY3LCAwLjAwMzA2OCwgMC4wMDMwNjgsIDAuMDAzMDY4LCAwLjAwMzA2OCIsIFwKLSAgICAgICAgICAiMC4wMDMwNTksIDAuMDAzMDYsIDAuMDAzMDYyLCAwLjAwMzA2MywgMC4wMDMwNjMsIDAuMDAzMDYzLCAwLjAwMzA2MyIsIFwKLSAgICAgICAgICAiMC4wMDMwNTUsIDAuMDAzMDU2LCAwLjAwMzA1OCwgMC4wMDMwNTksIDAuMDAzMDU5LCAwLjAwMzA1OSwgMC4wMDMwNTkiLCBcCi0gICAgICAgICAgIjAuMDAzMDUxLCAwLjAwMzA1MiwgMC4wMDMwNTQsIDAuMDAzMDU1LCAwLjAwMzA1NSwgMC4wMDMwNTUsIDAuMDAzMDU2IiwgXAotICAgICAgICAgICIwLjAwMzA1LCAwLjAwMzA1MSwgMC4wMDMwNTMsIDAuMDAzMDU0LCAwLjAwMzA1NCwgMC4wMDMwNTQsIDAuMDAzMDU0IiwgXAotICAgICAgICAgICIwLjAwMzA0OCwgMC4wMDMwNDgsIDAuMDAzMDUxLCAwLjAwMzA1MSwgMC4wMDMwNTIsIDAuMDAzMDUyLCAwLjAwMzA1MiIsIFwKLSAgICAgICAgICAiMC4wMDMwNDYsIDAuMDAzMDQ3LCAwLjAwMzA0OSwgMC4wMDMwNSwgMC4wMDMwNSwgMC4wMDMwNSwgMC4wMDMwNSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzE0MiwgMC4wMDMxNDIsIDAuMDAzMTQsIDAuMDAzMTM5LCAwLjAwMzEzOCwgMC4wMDMxMzcsIDAuMDAzMTM3IiwgXAotICAgICAgICAgICIwLjAwMzEzNiwgMC4wMDMxMzYsIDAuMDAzMTM0LCAwLjAwMzEzMywgMC4wMDMxMzIsIDAuMDAzMTMxLCAwLjAwMzEzMSIsIFwKLSAgICAgICAgICAiMC4wMDMxMywgMC4wMDMxMywgMC4wMDMxMjgsIDAuMDAzMTI3LCAwLjAwMzEyNiwgMC4wMDMxMjUsIDAuMDAzMTI1IiwgXAotICAgICAgICAgICIwLjAwMzEyNSwgMC4wMDMxMjUsIDAuMDAzMTIzLCAwLjAwMzEyMiwgMC4wMDMxMjEsIDAuMDAzMTIsIDAuMDAzMTIiLCBcCi0gICAgICAgICAgIjAuMDAzMTIxLCAwLjAwMzEyMSwgMC4wMDMxMiwgMC4wMDMxMTgsIDAuMDAzMTE3LCAwLjAwMzExNywgMC4wMDMxMTYiLCBcCi0gICAgICAgICAgIjAuMDAzMTE4LCAwLjAwMzExOCwgMC4wMDMxMTYsIDAuMDAzMTE1LCAwLjAwMzExNCwgMC4wMDMxMTMsIDAuMDAzMTEzIiwgXAotICAgICAgICAgICIwLjAwMzExNSwgMC4wMDMxMTUsIDAuMDAzMTEzLCAwLjAwMzExMiwgMC4wMDMxMTEsIDAuMDAzMTEsIDAuMDAzMTEiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogVExBVFNSWDIgKgotICogLS0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKFRMQVRTUlgyKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMzM4NzI7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgbGF0Y2ggKFFJTlQsTjUpIHsKLSAgICBkYXRhX2luIDogIkQiOwotICAgIGVuYWJsZSA6ICIoRyBSTikiOwotICAgIHByZXNldCA6ICIoIVNOKSI7Ci0gIH0KLSAgcGluKEQpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDU1NjYzNzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA1NTQ0MzQ7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNTU2NjM3OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDE1OCwgMC4wMDAxNiwgMC4wMDAxNjEsIDAuMDAwMTYxLCAwLjAwMDE2MSwgMC4wMDAxNjIsIDAuMDAwMTYyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMTY3LCAwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkciOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX2ZhbGxpbmc7Ci0gICAgICB3aGVuIDogIlJOJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIlJOX0VRXzFfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wNTYyNSwgLTAuMDQ1LCAtMC4wMzI1LCAtMC4wMTM3NSwgLTAuMDAxMjUsIDAuMDIxMjUsIDAuMDQyNSIsIFwKLSAgICAgICAgICAiLTAuMDczNzUsIC0wLjA1NjI1LCAtMC4wNDM3NSwgLTAuMDI1LCAtMC4wMTI1LCAwLjAxLCAwLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wODYyNSwgLTAuMDc1LCAtMC4wNTYyNSwgLTAuMDQzNzUsIC0wLjAyNSwgLTAuMDAyNSwgMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wOTg3NSwgLTAuMDg3NSwgLTAuMDY4NzUsIC0wLjA1NjI1LCAtMC4wMzc1LCAtMC4wMTUsIDAiLCBcCi0gICAgICAgICAgIi0wLjExMTI1LCAtMC4xLCAtMC4wODc1LCAtMC4wNjg3NSwgLTAuMDU2MjUsIC0wLjAzMzc1LCAtMC4wMTI1IiwgXAotICAgICAgICAgICItMC4xMzM3NSwgLTAuMTIyNSwgLTAuMTAzNzUsIC0wLjA5MTI1LCAtMC4wNzg3NSwgLTAuMDUsIC0wLjAzNSIsIFwKLSAgICAgICAgICAiLTAuMTU1LCAtMC4xNDM3NSwgLTAuMTI1LCAtMC4xMTI1LCAtMC4wOTM3NSwgLTAuMDcxMjUsIC0wLjA1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDkzNzUsIC0wLjA4MjUsIC0wLjA3LCAtMC4wNTc1LCAtMC4wNTEyNSwgLTAuMDM1LCAtMC4wMjYyNSIsIFwKLSAgICAgICAgICAiLTAuMTA1LCAtMC4wOTM3NSwgLTAuMDgxMjUsIC0wLjA2ODc1LCAtMC4wNjI1LCAtMC4wNDYyNSwgLTAuMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMTE3NSwgLTAuMTA2MjUsIC0wLjA5Mzc1LCAtMC4wODEyNSwgLTAuMDc1LCAtMC4wNTg3NSwgLTAuMDUiLCBcCi0gICAgICAgICAgIi0wLjEzLCAtMC4xMTg3NSwgLTAuMTA2MjUsIC0wLjA5Mzc1LCAtMC4wODc1LCAtMC4wNzEyNSwgLTAuMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMTQyNSwgLTAuMTMxMjUsIC0wLjExODc1LCAtMC4xMDYyNSwgLTAuMSwgLTAuMDgzNzUsIC0wLjA3NSIsIFwKLSAgICAgICAgICAiLTAuMTU4NzUsIC0wLjE0NzUsIC0wLjEzNSwgLTAuMTI4NzUsIC0wLjExNjI1LCAtMC4xMDYyNSwgLTAuMDk3NSIsIFwKLSAgICAgICAgICAiLTAuMTgsIC0wLjE2ODc1LCAtMC4xNTYyNSwgLTAuMTQzNzUsIC0wLjEzMTI1LCAtMC4xMjEyNSwgLTAuMTEyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJHIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfZmFsbGluZzsKLSAgICAgIHdoZW4gOiAiUk4mU04iOwotICAgICAgc2RmX2NvbmQgOiAiUk5fRVFfMV9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEsIDAuMDg4NzUsIDAuMDcsIDAuMDU3NSwgMC4wMzg3NSwgMC4wMTYyNSwgLTAuMDA1IiwgXAotICAgICAgICAgICIwLjExMTI1LCAwLjEsIDAuMDgxMjUsIDAuMDY4NzUsIDAuMDUsIDAuMDI3NSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiMC4xMjM3NSwgMC4xMTI1LCAwLjEsIDAuMDgxMjUsIDAuMDYyNSwgMC4wNCwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4xMzYyNSwgMC4xMjUsIDAuMTEyNSwgMC4wOTM3NSwgMC4wNzUsIDAuMDUyNSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4xNDg3NSwgMC4xMzc1LCAwLjEyNSwgMC4xMDYyNSwgMC4wOTM3NSwgMC4wNjUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMTcxMjUsIDAuMTYsIDAuMTQxMjUsIDAuMTI4NzUsIDAuMTEsIDAuMDg3NSwgMC4wNjYyNSIsIFwKLSAgICAgICAgICAiMC4xOTI1LCAwLjE3NSwgMC4xNjI1LCAwLjE0Mzc1LCAwLjEzMTI1LCAwLjEwMjUsIDAuMDg3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEzNzUsIDAuMTI2MjUsIDAuMTEzNzUsIDAuMTAxMjUsIDAuMDk1LCAwLjA3ODc1LCAwLjA3NjI1IiwgXAotICAgICAgICAgICIwLjE0ODc1LCAwLjEzNzUsIDAuMTI1LCAwLjExMjUsIDAuMTA2MjUsIDAuMDksIDAuMDg3NSIsIFwKLSAgICAgICAgICAiMC4xNjEyNSwgMC4xNSwgMC4xMzc1LCAwLjEyNSwgMC4xMTg3NSwgMC4xMDI1LCAwLjA5Mzc1IiwgXAotICAgICAgICAgICIwLjE3Mzc1LCAwLjE2MjUsIDAuMTUsIDAuMTM3NSwgMC4xMjUsIDAuMTE1LCAwLjEwNjI1IiwgXAotICAgICAgICAgICIwLjE4NjI1LCAwLjE3NSwgMC4xNjI1LCAwLjE1LCAwLjEzNzUsIDAuMTI3NSwgMC4xMTg3NSIsIFwKLSAgICAgICAgICAiMC4yMDI1LCAwLjE5MTI1LCAwLjE3ODc1LCAwLjE2NjI1LCAwLjE2LCAwLjE0Mzc1LCAwLjEzNSIsIFwKLSAgICAgICAgICAiMC4yMTc1LCAwLjIwNjI1LCAwLjE5Mzc1LCAwLjE4MTI1LCAwLjE3NSwgMC4xNTg3NSwgMC4xNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRykgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNTY4NDI3OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDU2ODQyNzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA0Nzk5Nzk7Ci0gICAgY2xvY2sgOiB0cnVlOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTg0NiwgMC4wMDE4MzQsIDAuMDAxODIzLCAwLjAwMTgxOCwgMC4wMDE4MTUsIDAuMDAxODEsIDAuMDAxODA4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMTg4LCAwLjAwMDE4OCwgMC4wMDAxODgsIDAuMDAwMTg4LCAwLjAwMDE4OCwgMC4wMDAxODgsIDAuMDAwMTg4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkciOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFEJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuNDQwNjQ2LCAwLjQ1MDgxNywgMC40NjM3NDUsIDAuNDc3MTg0LCAwLjQ5MTM2MSwgMC41MTM0NTksIDAuNTMzMDE3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihRKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMjY1NDk1OwotICAgIGZ1bmN0aW9uIDogIlFJTlQiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkQiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI3MDkxLCAwLjQ1MDg1OCwgMC41OTUzNjYsIDAuNzc0MzIsIDAuOTU1NzQzLCAxLjEzNTM2LCAxLjMxNTI4IiwgXAotICAgICAgICAgICIwLjI4MjU2OCwgMC40NjI1MTQsIDAuNjA1NzQ3LCAwLjc4NjQyMywgMC45Njc1MDcsIDEuMTQ2ODYsIDEuMzI3MTIiLCBcCi0gICAgICAgICAgIjAuMjk2NTAzLCAwLjQ3NjA1NCwgMC42MjA5MDksIDAuNzk5NjAyLCAwLjk4MTIyNSwgMS4xNjEwMywgMS4zNDIyNyIsIFwKLSAgICAgICAgICAiMC4zMTAxMzYsIDAuNDg5NjU2LCAwLjYzNDUzOSwgMC44MTMyMDcsIDAuOTk0ODQ3LCAxLjE3NDY2LCAxLjM1NTU1IiwgXAotICAgICAgICAgICIwLjMyMzcwMiwgMC41MDM0MDYsIDAuNjQ4MDUsIDAuODI3OTM3LCAxLjAwODMzLCAxLjE4NTY1LCAxLjM2Nzk3IiwgXAotICAgICAgICAgICIwLjM0NTg2NCwgMC41MjU4MTMsIDAuNjcwMTksIDAuODUwMTI0LCAxLjAzMDUyLCAxLjIxMDQ3LCAxLjM5MDg0IiwgXAotICAgICAgICAgICIwLjM2NDQ4MywgMC41NDQwNzcsIDAuNjg4ODk4LCAwLjg2ODU5OCwgMS4wNDkyMiwgMS4yMjg5NSwgMS40MDY3MiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODQ3MDgsIDAuNDQ4NDU4LCAwLjc0MDI2NywgMS4xMTE3MywgMS40ODQwNCwgMS44NTMzNywgMi4yMjIwNCIsIFwKLSAgICAgICAgICAiMC4wODQ2ODUsIDAuNDUyMTM3LCAwLjc0MzQ2OCwgMS4xMDcxOSwgMS40NzQyNCwgMS44NTM0OSwgMi4yMjE5NiIsIFwKLSAgICAgICAgICAiMC4wODQ3MTYsIDAuNDQ5MTY5LCAwLjc0MjUxOCwgMS4xMDcxNSwgMS40ODQyMSwgMS44NTMyMiwgMi4yMDIyNiIsIFwKLSAgICAgICAgICAiMC4wODQ3MTIsIDAuNDQ5NjE1LCAwLjc0MjU4OCwgMS4xMDc1OCwgMS40ODQyMiwgMS44NTMyMiwgMi4yMjE3NyIsIFwKLSAgICAgICAgICAiMC4wODQ3MDQsIDAuNDUxODUsIDAuNzQyNzI1LCAxLjExMTU4LCAxLjQ4NDIyLCAxLjgzNzkxLCAyLjIyMjAzIiwgXAotICAgICAgICAgICIwLjA4NDY4NiwgMC40NTIxMzgsIDAuNzQzMTU1LCAxLjExMTk3LCAxLjQ4NDE5LCAxLjg1MzM0LCAyLjIyMTcyIiwgXAotICAgICAgICAgICIwLjA4NDY5NywgMC40NDgzNTgsIDAuNzQxOTM4LCAxLjExMjksIDEuNDg0MiwgMS44NTMyNCwgMi4yMDMzOSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMjk0NTIsIDAuNTM2MzU3LCAwLjcwMjQwMiwgMC45MDg2NzQsIDEuMTE0OTIsIDEuMzI2NTEsIDEuNTI4NjMiLCBcCi0gICAgICAgICAgIjAuMzQwOTc5LCAwLjU0Nzg5OCwgMC43MTQyNCwgMC45MjAyMjksIDEuMTI2NDYsIDEuMzM4MDUsIDEuNTQwODgiLCBcCi0gICAgICAgICAgIjAuMzU0MDM2LCAwLjU2MDU2OSwgMC43MjY5MzQsIDAuOTMyOTY1LCAxLjEzOTIxLCAxLjM1MDc0LCAxLjU1MzQiLCBcCi0gICAgICAgICAgIjAuMzY2NjE4LCAwLjU3MzUwOSwgMC43Mzk0OTMsIDAuOTQ1ODU4LCAxLjE1MjA5LCAxLjM2MzY3LCAxLjU2NTYxIiwgXAotICAgICAgICAgICIwLjM3OTAzOSwgMC41ODU5NTEsIDAuNzUxMjExLCAwLjk1ODI3NywgMS4xNjQ1MiwgMS4zNzYxMSwgMS41NzgwMiIsIFwKLSAgICAgICAgICAiMC4zOTg1MjUsIDAuNjA1NDQsIDAuNzcwNTY3LCAwLjk3Nzc3NCwgMS4xODQwMSwgMS4zOTU2LCAxLjU5NzQ2IiwgXAotICAgICAgICAgICIwLjQxNDg5OCwgMC42MjE4MzEsIDAuNzg2NjU0LCAwLjk5NDE3NywgMS4yMDAzOSwgMS40MDcwNCwgMS42MTYxMiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTU1NDcsIDAuNTA1MDQ4LCAwLjgzNTc4MiwgMS4yNDcxLCAxLjY1Njg4LCAyLjA3MTAzLCAyLjQ4NTIyIiwgXAotICAgICAgICAgICIwLjA5NTU0LCAwLjUwNTExLCAwLjgzNjIxOCwgMS4yNDc0NiwgMS42NTY3LCAyLjA2OTg5LCAyLjQ3ODk5IiwgXAotICAgICAgICAgICIwLjA5NTU4NCwgMC41MDQ3ODYsIDAuODM1Mzg4LCAxLjI0NTQ0LCAxLjY2MDM2LCAyLjA3MjQxLCAyLjQ4MjgiLCBcCi0gICAgICAgICAgIjAuMDk1NTYzLCAwLjUwNTE2OSwgMC44MzU1NTQsIDEuMjQ3MjcsIDEuNjU3NiwgMi4wNzA0MSwgMi40ODAxMyIsIFwKLSAgICAgICAgICAiMC4wOTU2MzMsIDAuNTA0OTc2LCAwLjgzNTQ4MiwgMS4yNDY4LCAxLjY1NzEsIDIuMDcxNDEsIDIuNDgyMTkiLCBcCi0gICAgICAgICAgIjAuMDk1NjMyLCAwLjUwNSwgMC44MzU1MzksIDEuMjQ2ODcsIDEuNjU3MTYsIDIuMDcxMjEsIDIuNDg0NjYiLCBcCi0gICAgICAgICAgIjAuMDk1NTgxLCAwLjUwNTEzNiwgMC44MzU3NDYsIDEuMjQ3MzcsIDEuNjU2NjksIDIuMDcyNDksIDIuNDgyNCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJHIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5vbl91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcmlzaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjQxMDI4NCwgMC41OTAxOSwgMC43MzQ2MTQsIDAuOTE1MDU0LCAxLjA5NDk2LCAxLjI3NDczLCAxLjQ1NDMxIiwgXAotICAgICAgICAgICIwLjQyMDQwOCwgMC42MDAzNDgsIDAuNzQ0ODM1LCAwLjkyMzc4NywgMS4xMDUwMiwgMS4yODQ4OSwgMS40NjQ3MyIsIFwKLSAgICAgICAgICAiMC40MzMyMywgMC42MTMxMzgsIDAuNzU3NjA4LCAwLjkzNzE5OCwgMS4xMTc5MywgMS4yOTc0OCwgMS40NzUzNSIsIFwKLSAgICAgICAgICAiMC40NDY4NTEsIDAuNjI2NTc1LCAwLjc3MTE1OSwgMC45NTEyNjMsIDEuMTMxNSwgMS4zMDk0LCAxLjQ5MDg4IiwgXAotICAgICAgICAgICIwLjQ2MTEyMywgMC42NDEwNDMsIDAuNzg1NTY4LCAwLjk2NDU2MSwgMS4xNDUzMSwgMS4zMjU1NSwgMS41MDU0NyIsIFwKLSAgICAgICAgICAiMC40ODMzNzYsIDAuNjYzMTU1LCAwLjgwNzc4MSwgMC45ODc4OTMsIDEuMTY3MDgsIDEuMzQ4MSwgMS41MjczOCIsIFwKLSAgICAgICAgICAiMC41MDI5ODYsIDAuNjgyNzUsIDAuODI3Mzg4LCAxLjAwODIyLCAxLjE4NzIzLCAxLjM2NzQsIDEuNTQ3MDIiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg0Njc1LCAwLjQ1MjExMiwgMC43NDI0NTIsIDEuMTA1NDYsIDEuNDg0MjQsIDEuODUzMiwgMi4yMjIxIiwgXAotICAgICAgICAgICIwLjA4NDc0MywgMC40NTIxMDcsIDAuNzM5NjU3LCAxLjExMDcsIDEuNDczNTcsIDEuODUzMiwgMi4yMjIwNyIsIFwKLSAgICAgICAgICAiMC4wODQ3NTUsIDAuNDUyMTEzLCAwLjc0MTIzNCwgMS4xMTUwNiwgMS40ODQyMiwgMS44NTMzLCAyLjE5OTU5IiwgXAotICAgICAgICAgICIwLjA4NDc3NSwgMC40NTE5NTIsIDAuNzQzMzc5LCAxLjExNTQ3LCAxLjQ4NDI1LCAxLjgzMzcyLCAyLjIyMjExIiwgXAotICAgICAgICAgICIwLjA4NDc2NCwgMC40NTIxMDIsIDAuNzQwMTU1LCAxLjExMTQ4LCAxLjQ4NDQzLCAxLjg1MzIsIDIuMjIyMDMiLCBcCi0gICAgICAgICAgIjAuMDg0NjY1LCAwLjQ1MTEwMSwgMC43NDEzNTgsIDEuMTA3ODYsIDEuNDg0NDMsIDEuODUzMTksIDIuMjIyMTIiLCBcCi0gICAgICAgICAgIjAuMDg0NjY1LCAwLjQ1MTM2LCAwLjc0MTcxNSwgMS4xMTQ0NSwgMS40NzcyOCwgMS44NTMzMiwgMi4yMjIxMSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC40NDA2NDYsIDAuNjQ3NDM5LCAwLjgxMjYxOSwgMS4wMjAwMSwgMS4yMjU5NiwgMS40Mzc2LCAxLjY0NTQyIiwgXAotICAgICAgICAgICIwLjQ1MDgxNywgMC42NTc3NTQsIDAuODIzOTYzLCAxLjAzMDMsIDEuMjM2MzEsIDEuNDQ3OTEsIDEuNjQ5ODciLCBcCi0gICAgICAgICAgIjAuNDYzNzQ1LCAwLjY3MDcyMSwgMC44MzY2ODcsIDEuMDQ1MjYsIDEuMjUyNzYsIDEuNDYwODYsIDEuNjY1NDgiLCBcCi0gICAgICAgICAgIjAuNDc3MTg0LCAwLjY4NDAzMiwgMC44NTAyMDksIDEuMDU3ODMsIDEuMjYyODksIDEuNDc0MiwgMS42Nzc0MyIsIFwKLSAgICAgICAgICAiMC40OTEzNjEsIDAuNjk4MjA4LCAwLjg2NDM4NiwgMS4wNzIwMSwgMS4yNzcwNiwgMS40ODgzOCwgMS42OTE2IiwgXAotICAgICAgICAgICIwLjUxMzQ1OSwgMC43MjAzNSwgMC44ODY1NjIsIDEuMDkzMDIsIDEuMjk5MjQsIDEuNTEwNTIsIDEuNzE4MzEiLCBcCi0gICAgICAgICAgIjAuNTMzMDE3LCAwLjczOTg2LCAwLjkwNjAzOCwgMS4xMTM2NiwgMS4zMTg3MSwgMS41MzAwMywgMS43MzMyNiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTU3MzYsIDAuNTA1MzM4LCAwLjgzNDI3NiwgMS4yNDY1MiwgMS42NTkwNCwgMi4wNzIxMiwgMi40ODQ0NCIsIFwKLSAgICAgICAgICAiMC4wOTU3NDEsIDAuNTA1MjM0LCAwLjgzNjQ3LCAxLjI0NTkyLCAxLjY1NTg3LCAyLjA2OTg2LCAyLjQ4MjUiLCBcCi0gICAgICAgICAgIjAuMDk1NzQzLCAwLjUwNTEzNiwgMC44MzUyNTcsIDEuMjQ1MjEsIDEuNjU3NjksIDIuMDY4OCwgMi40ODUxNCIsIFwKLSAgICAgICAgICAiMC4wOTU1OTksIDAuNTA1MzM4LCAwLjgzNjIwNSwgMS4yNDkyMiwgMS42NTY4MSwgMi4wNjk4NCwgMi40ODQwNiIsIFwKLSAgICAgICAgICAiMC4wOTU1OTksIDAuNTA1MzM5LCAwLjgzNjIwNSwgMS4yNDkyMiwgMS42NTY4NSwgMi4wNjk4NCwgMi40ODQwNiIsIFwKLSAgICAgICAgICAiMC4wOTU1OTksIDAuNTA1MzIxLCAwLjgzNjI4NywgMS4yNDQ5NSwgMS42NTU5NywgMi4wNjk4MiwgMi40ODExMyIsIFwKLSAgICAgICAgICAiMC4wOTU1OTgsIDAuNTA1MzQsIDAuODM2MjA5LCAxLjI0OTIyLCAxLjY1NzE4LCAyLjA2OTg0LCAyLjQ4NDA1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiByaXNpbmdfZWRnZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuNDE2OTk1LCAwLjU5NjY3NywgMC43NDEzMiwgMC45MjE4NDQsIDEuMTAxNTYsIDEuMjgxMTgsIDEuNDYwOTciLCBcCi0gICAgICAgICAgIjAuNDI4NTc0LCAwLjYwODQ5MSwgMC43NTI5NzEsIDAuOTMyNTU1LCAxLjExMzMsIDEuMjkyODUsIDEuNDcwNzYiLCBcCi0gICAgICAgICAgIjAuNDQyNTk3LCAwLjYyMjM1LCAwLjc2Njk2NCwgMC45NDYyNjIsIDEuMTI1NzQsIDEuMzA3NTgsIDEuNDg2NTQiLCBcCi0gICAgICAgICAgIjAuNDU2MzYsIDAuNjM2MTc3LCAwLjc4MDY3MSwgMC45NjA4OTEsIDEuMTQxMDEsIDEuMzIwNCwgMS41MDAzNSIsIFwKLSAgICAgICAgICAiMC40Njk5MTgsIDAuNjQ5ODYxLCAwLjc5NDMwNiwgMC45NzMxNTQsIDEuMTU0NSwgMS4zMzQzNSwgMS41MTQwMSIsIFwKLSAgICAgICAgICAiMC40OTIxMjMsIDAuNjcxODM1LCAwLjgxNjQyMSwgMC45OTY2MTcsIDEuMTc2NzYsIDEuMzU1MDEsIDEuNTM2MTIiLCBcCi0gICAgICAgICAgIjAuNTEwOTUxLCAwLjY5MDcsIDAuODM1MzEzLCAxLjAxNDcxLCAxLjE5NDEzLCAxLjM3NTkxLCAxLjU1NDg5Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4NDc2LCAwLjQ1MDk0NCwgMC43NDIwMiwgMS4xMDc3NiwgMS40NzQ5MywgMS44NTMzOCwgMi4yMjIxMiIsIFwKLSAgICAgICAgICAiMC4wODQ3NzgsIDAuNDUyMTE1LCAwLjc0MTEyNSwgMS4xMTUwOCwgMS40ODQyMiwgMS44NTMzLCAyLjIwMzMxIiwgXAotICAgICAgICAgICIwLjA4NDc2NCwgMC40NDk2OTcsIDAuNzQxMDc5LCAxLjExNTcyLCAxLjQ3NjQ1LCAxLjg1MzA3LCAyLjIyMjE1IiwgXAotICAgICAgICAgICIwLjA4NDc0OSwgMC40NTIxMzQsIDAuNzQyMzY5LCAxLjExNTM3LCAxLjQ4NDI0LCAxLjg1MzQzLCAyLjIyMjEiLCBcCi0gICAgICAgICAgIjAuMDg0Nzc5LCAwLjQ0ODA0OCwgMC43NDAyMzMsIDEuMTEwMDIsIDEuNDg0MjcsIDEuODUzMjIsIDIuMjIyMSIsIFwKLSAgICAgICAgICAiMC4wODQ3NDUsIDAuNDUyMDM2LCAwLjc0MjYzNiwgMS4xMTU0LCAxLjQ4NDI0LCAxLjg0MTYyLCAyLjIyMjEiLCBcCi0gICAgICAgICAgIjAuMDg0NzY0LCAwLjQ0OTkxNCwgMC43NDExNTcsIDEuMTE1NTQsIDEuNDc2NjcsIDEuODUzMDksIDIuMjIyMTQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUk4iOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGZhbGxpbmdfZWRnZTsKLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuNDE3NDIxLCAwLjYyNDMzNiwgMC43OTAzNTMsIDAuOTk2NTU5LCAxLjIwMjk4LCAxLjQxMzgzLCAxLjYxNjk2IiwgXAotICAgICAgICAgICIwLjQyODcyOSwgMC42MzU2NTYsIDAuODAxNzY4LCAxLjAwODIxLCAxLjIxNDIxLCAxLjQyNTE1LCAxLjYzMjc2IiwgXAotICAgICAgICAgICIwLjQ0MzMzNSwgMC42NTAzMjUsIDAuODE1NjI2LCAxLjAyNDg1LCAxLjIzMjI3LCAxLjQzOTg4LCAxLjY0NzI2IiwgXAotICAgICAgICAgICIwLjQ1ODAwNiwgMC42NjQ5MzMsIDAuODMxMDI5LCAxLjAzNzUsIDEuMjQzNzUsIDEuNDU0NCwgMS42NjIwMSIsIFwKLSAgICAgICAgICAiMC40NzI3MTUsIDAuNjc5NjM2LCAwLjg0NTczNywgMS4wNTIyNCwgMS4yNTg1LCAxLjQ2OTEsIDEuNjc2NyIsIFwKLSAgICAgICAgICAiMC40OTU1ODcsIDAuNzAyMjA4LCAwLjg2NzU1MywgMS4wNzY3MywgMS4yODQzOCwgMS40OTE0NSwgMS42OTkxNyIsIFwKLSAgICAgICAgICAiMC41MTUyMDIsIDAuNzIyMTEyLCAwLjg4ODMwOCwgMS4wOTQ0MSwgMS4zMDA3NSwgMS41MTE1OSwgMS43MTQzMyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTU2MiwgMC41MDUwNiwgMC44MzU4OTMsIDEuMjQ3ODEsIDEuNjYxNDcsIDIuMDcyNjYsIDIuNDg1NzYiLCBcCi0gICAgICAgICAgIjAuMDk1NTgzLCAwLjUwNTMzLCAwLjgzNjA4NCwgMS4yNDYxLCAxLjY1NjYxLCAyLjA2OTksIDIuNDgyNTQiLCBcCi0gICAgICAgICAgIjAuMDk1NTkzLCAwLjUwNTEzMSwgMC44MzU2ODgsIDEuMjQ3NjYsIDEuNjU5MjUsIDIuMDcwMSwgMi40ODI4IiwgXAotICAgICAgICAgICIwLjA5NTU0MiwgMC41MDUyMjksIDAuODM2MDcsIDEuMjQ1NzIsIDEuNjU3ODksIDIuMDcwMDUsIDIuNDgyNzEiLCBcCi0gICAgICAgICAgIjAuMDk1NTczLCAwLjUwNTI0MywgMC44MzYwNywgMS4yNDcxMywgMS42NTg2MywgMi4wNzAwNSwgMi40ODYwNiIsIFwKLSAgICAgICAgICAiMC4wOTU1OTUsIDAuNTA1MDIsIDAuODM1OTQ3LCAxLjI0NzE3LCAxLjY1OTM1LCAyLjA2OTQ0LCAyLjQ4NTExIiwgXAotICAgICAgICAgICIwLjA5NTU5NiwgMC41MDUxNywgMC44MzYxNzYsIDEuMjQ3MTIsIDEuNjU5NTYsIDIuMDY5OSwgMi40ODI0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiBwcmVzZXQ7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE0NDAwMywgMC4zMjM1ODgsIDAuNDY4MTg2LCAwLjY0NzUxNSwgMC44Mjc5MjMsIDEuMDA4MTMsIDEuMTg5NDMiLCBcCi0gICAgICAgICAgIjAuMTU1NjY0LCAwLjMzNTI0MywgMC40Nzk4MDMsIDAuNjU4ODc4LCAwLjgzOTQ4NiwgMS4wMTk5NSwgMS4yMDEwNCIsIFwKLSAgICAgICAgICAiMC4xNzAyMTUsIDAuMzQ5ODMsIDAuNDk0NDQ0LCAwLjY3NDA0MiwgMC44NTQxNjUsIDEuMDM0NTcsIDEuMjE0ODciLCBcCi0gICAgICAgICAgIjAuMTg0OTIzLCAwLjM2NDc2MiwgMC41MDkxODIsIDAuNjg4Njc3LCAwLjg2ODc2NywgMS4wNDkyNiwgMS4yMjkzIiwgXAotICAgICAgICAgICIwLjE5OTg0MywgMC4zNzk0NjksIDAuNTI0MDY5LCAwLjcwMzg4MywgMC44ODQ0NTIsIDEuMDY0MjIsIDEuMjQ1NDQiLCBcCi0gICAgICAgICAgIjAuMjIzNDI5LCAwLjQwMzIyOCwgMC41NDY1MjgsIDAuNzI3MTAxLCAwLjkwNjU2OSwgMS4wODc4MywgMS4yNjgwNiIsIFwKLSAgICAgICAgICAiMC4yNDM2MTcsIDAuNDIzMjQxLCAwLjU2NzcyNywgMC43NDc5NzIsIDAuOTI3MzAxLCAxLjEwNzkyLCAxLjI4OTE5Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4NDczMiwgMC40NTA5NTEsIDAuNzQ0MDAzLCAxLjExMDEsIDEuNDg0NzEsIDEuODUyNDIsIDIuMjIyMSIsIFwKLSAgICAgICAgICAiMC4wODQ3NDIsIDAuNDUwOTM1LCAwLjc0Njk2MSwgMS4xMTE4NCwgMS40ODQ3MywgMS44NDg3LCAyLjIyMjA5IiwgXAotICAgICAgICAgICIwLjA4NDc2MiwgMC40NTE1NDMsIDAuNzQ2OTUzLCAxLjEwODc4LCAxLjQ3NjkyLCAxLjg1MiwgMi4yMTY2OCIsIFwKLSAgICAgICAgICAiMC4wODQ3NzYsIDAuNDUyMDk3LCAwLjc0NDA3OSwgMS4xMTU5NSwgMS40ODQ3OSwgMS44NDU3LCAyLjIyMTg4IiwgXAotICAgICAgICAgICIwLjA4NDc4MywgMC40NTA2NDYsIDAuNzQ3MDI3LCAxLjExNTg3LCAxLjQ4NDUsIDEuODUzNTYsIDIuMjIxOSIsIFwKLSAgICAgICAgICAiMC4wODQ3OTMsIDAuNDUyMTI2LCAwLjc0Mzc5MiwgMS4xMTU5NywgMS40Nzc3OCwgMS44NDkwOCwgMi4yMTg3OSIsIFwKLSAgICAgICAgICAiMC4wODQ3MzcsIDAuNDUyMTIsIDAuNzQ2OTkzLCAxLjExNTg0LCAxLjQ4MDQsIDEuODUzNSwgMi4yMjAxNiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMjYwMzMsIDAuNDMyMzA1LCAwLjU5ODY4MiwgMC44MDUxNDQsIDEuMDExMjUsIDEuMjIyOCwgMS40Mjk5MSIsIFwKLSAgICAgICAgICAiMC4yMzc1MzgsIDAuNDQ0NDczLCAwLjYxMDUyMiwgMC44MTY3NzIsIDEuMDIzMDMsIDEuMjM0NjMsIDEuNDM2NzciLCBcCi0gICAgICAgICAgIjAuMjUwNzc4LCAwLjQ1NzcwOSwgMC42MjM3MDUsIDAuODMwMDI5LCAxLjAzNjI3LCAxLjI0Nzg3LCAxLjQ0OTkiLCBcCi0gICAgICAgICAgIjAuMjYzNzY5LCAwLjQ3MDcwNiwgMC42MzY3MDcsIDAuODQzMTA1LCAxLjA0OTI4LCAxLjI1OTk1LCAxLjQ2ODY3IiwgXAotICAgICAgICAgICIwLjI3NzI1OCwgMC40ODQxNzYsIDAuNjQ5MDY1LCAwLjg1NjUxMiwgMS4wNjI3NSwgMS4yNzQzNCwgMS40ODIxNyIsIFwKLSAgICAgICAgICAiMC4yOTg0NjEsIDAuNTA1MjUxLCAwLjY3MTQzNSwgMC44Nzc3NjEsIDEuMDgzOTUsIDEuMjk1NDMsIDEuNTAzMjIiLCBcCi0gICAgICAgICAgIjAuMzE3MTM2LCAwLjUyNDA4OCwgMC42ODkwMiwgMC44OTY0NCwgMS4xMDI2NiwgMS4zMTQyNSwgMS41MjIwOCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTU2NjMsIDAuNTA1MzkzLCAwLjgzNjMyMiwgMS4yNDczMSwgMS42NTc3MywgMi4wNzA0NCwgMi40ODE5NiIsIFwKLSAgICAgICAgICAiMC4wOTU1ODgsIDAuNTA1MTE0LCAwLjgzNTkxLCAxLjI0NzM1LCAxLjY1NzA1LCAyLjA3MDczLCAyLjQ4Mzk5IiwgXAotICAgICAgICAgICIwLjA5NTU5MSwgMC41MDUwNjQsIDAuODM2MjMsIDEuMjQ3MjUsIDEuNjU3MTQsIDIuMDcwNzUsIDIuNDgyMjkiLCBcCi0gICAgICAgICAgIjAuMDk1NTYyLCAwLjUwNTE1LCAwLjgzNjAyNywgMS4yNDcyOSwgMS42NTc1NywgMi4wNzA4NCwgMi40ODI3OCIsIFwKLSAgICAgICAgICAiMC4wOTU1MzgsIDAuNTA1MDY2LCAwLjgzNTcwNywgMS4yNDcyMiwgMS42NTcxOCwgMi4wNzA4NywgMi40ODUwNCIsIFwKLSAgICAgICAgICAiMC4wOTU2NjQsIDAuNTA1MjQ0LCAwLjgzNjI3NSwgMS4yNDc2LCAxLjY2MTQxLCAyLjA3MTIsIDIuNDgxMDciLCBcCi0gICAgICAgICAgIjAuMDk1NTUsIDAuNTA1MTI5LCAwLjgzNTYxMSwgMS4yNDcxNiwgMS42NTcyOCwgMi4wNzMxLCAyLjQ4NDExIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzNzAxLCAwLjAwMzc0MywgMC4wMDM3NDgsIDAuMDAzNzUxLCAwLjAwMzc1MywgMC4wMDM3NTMsIDAuMDAzNzU0IiwgXAotICAgICAgICAgICIwLjAwMzY5NSwgMC4wMDM3MzcsIDAuMDAzNzQyLCAwLjAwMzc0NSwgMC4wMDM3NDYsIDAuMDAzNzQ3LCAwLjAwMzc0OCIsIFwKLSAgICAgICAgICAiMC4wMDM2OTIsIDAuMDAzNzM0LCAwLjAwMzczOSwgMC4wMDM3NDIsIDAuMDAzNzQzLCAwLjAwMzc0NCwgMC4wMDM3NDUiLCBcCi0gICAgICAgICAgIjAuMDAzNjksIDAuMDAzNzMyLCAwLjAwMzczNywgMC4wMDM3MzksIDAuMDAzNzQxLCAwLjAwMzc0MywgMC4wMDM3NDIiLCBcCi0gICAgICAgICAgIjAuMDAzNjg3LCAwLjAwMzcyOSwgMC4wMDM3MzQsIDAuMDAzNzM3LCAwLjAwMzczOCwgMC4wMDM3MzksIDAuMDAzNzM3IiwgXAotICAgICAgICAgICIwLjAwMzY4NSwgMC4wMDM3MjcsIDAuMDAzNzMyLCAwLjAwMzczNSwgMC4wMDM3MzUsIDAuMDAzNzM3LCAwLjAwMzczOCIsIFwKLSAgICAgICAgICAiMC4wMDM2ODEsIDAuMDAzNzI0LCAwLjAwMzcyOSwgMC4wMDM3MzIsIDAuMDAzNzM0LCAwLjAwMzczMywgMC4wMDM3MzQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQwMjMsIDAuMDA0MDY5LCAwLjAwNDA3NSwgMC4wMDQwNzksIDAuMDA0MDgsIDAuMDA0MDgxLCAwLjAwNDA4MiIsIFwKLSAgICAgICAgICAiMC4wMDQwMiwgMC4wMDQwNjcsIDAuMDA0MDczLCAwLjAwNDA3NiwgMC4wMDQwNzcsIDAuMDA0MDc4LCAwLjAwNDA3OSIsIFwKLSAgICAgICAgICAiMC4wMDQwMTgsIDAuMDA0MDY0LCAwLjAwNDA3LCAwLjAwNDA3NCwgMC4wMDQwNzUsIDAuMDA0MDc2LCAwLjAwNDA3NiIsIFwKLSAgICAgICAgICAiMC4wMDQwMTYsIDAuMDA0MDYzLCAwLjAwNDA2OSwgMC4wMDQwNzIsIDAuMDA0MDc0LCAwLjAwNDA3NSwgMC4wMDQwNzUiLCBcCi0gICAgICAgICAgIjAuMDA0MDE2LCAwLjAwNDA2MiwgMC4wMDQwNjgsIDAuMDA0MDcxLCAwLjAwNDA3MywgMC4wMDQwNzQsIDAuMDA0MDc0IiwgXAotICAgICAgICAgICIwLjAwNDAxNCwgMC4wMDQwNjEsIDAuMDA0MDY3LCAwLjAwNDA3LCAwLjAwNDA3MSwgMC4wMDQwNzIsIDAuMDA0MDczIiwgXAotICAgICAgICAgICIwLjAwNDAxMiwgMC4wMDQwNTksIDAuMDA0MDY1LCAwLjAwNDA2NywgMC4wMDQwNjksIDAuMDA0MDcsIDAuMDA0MDcxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0NTg1LCAwLjAwNDYyNywgMC4wMDQ2MzIsIDAuMDA0NjM0LCAwLjAwNDYzNiwgMC4wMDQ2MzYsIDAuMDA0NjM1IiwgXAotICAgICAgICAgICIwLjAwNDU3OSwgMC4wMDQ2MjEsIDAuMDA0NjI2LCAwLjAwNDYzLCAwLjAwNDYzLCAwLjAwNDYzMSwgMC4wMDQ2MzIiLCBcCi0gICAgICAgICAgIjAuMDA0NTczLCAwLjAwNDYxNSwgMC4wMDQ2MiwgMC4wMDQ2MjMsIDAuMDA0NjI0LCAwLjAwNDYyNSwgMC4wMDQ2MjYiLCBcCi0gICAgICAgICAgIjAuMDA0NTcxLCAwLjAwNDYxMywgMC4wMDQ2MTgsIDAuMDA0NjIsIDAuMDA0NjIyLCAwLjAwNDYyMiwgMC4wMDQ2MjMiLCBcCi0gICAgICAgICAgIjAuMDA0NTY5LCAwLjAwNDYxMSwgMC4wMDQ2MTUsIDAuMDA0NjE4LCAwLjAwNDYxOSwgMC4wMDQ2MiwgMC4wMDQ2MjEiLCBcCi0gICAgICAgICAgIjAuMDA0NTY5LCAwLjAwNDYxLCAwLjAwNDYxNSwgMC4wMDQ2MTgsIDAuMDA0NjE5LCAwLjAwNDYyLCAwLjAwNDYyMSIsIFwKLSAgICAgICAgICAiMC4wMDQ1NjcsIDAuMDA0NjA5LCAwLjAwNDYxNCwgMC4wMDQ2MTYsIDAuMDA0NjE3LCAwLjAwNDYxOSwgMC4wMDQ2MTkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQ4MTgsIDAuMDA0ODY0LCAwLjAwNDg3LCAwLjAwNDg3MywgMC4wMDQ4NzUsIDAuMDA0ODc2LCAwLjAwNDg3NiIsIFwKLSAgICAgICAgICAiMC4wMDQ4MTIsIDAuMDA0ODU4LCAwLjAwNDg2NCwgMC4wMDQ4NjcsIDAuMDA0ODY5LCAwLjAwNDg2OSwgMC4wMDQ4NyIsIFwKLSAgICAgICAgICAiMC4wMDQ4MDYsIDAuMDA0ODUzLCAwLjAwNDg1OCwgMC4wMDQ4NjIsIDAuMDA0ODY0LCAwLjAwNDg2NCwgMC4wMDQ4NjQiLCBcCi0gICAgICAgICAgIjAuMDA0ODAyLCAwLjAwNDg0OSwgMC4wMDQ4NTYsIDAuMDA0ODU4LCAwLjAwNDg2LCAwLjAwNDg1OSwgMC4wMDQ4NjIiLCBcCi0gICAgICAgICAgIjAuMDA0OCwgMC4wMDQ4NDcsIDAuMDA0ODU0LCAwLjAwNDg1NiwgMC4wMDQ4NTcsIDAuMDA0ODU4LCAwLjAwNDg1OSIsIFwKLSAgICAgICAgICAiMC4wMDQ3OTgsIDAuMDA0ODQ1LCAwLjAwNDg1MSwgMC4wMDQ4NTIsIDAuMDA0ODU1LCAwLjAwNDg1NywgMC4wMDQ4NTciLCBcCi0gICAgICAgICAgIjAuMDA0Nzk1LCAwLjAwNDg0MiwgMC4wMDQ4NDgsIDAuMDA0ODUsIDAuMDA0ODUzLCAwLjAwNDg1MywgMC4wMDQ4NTQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0NTA1LCAwLjAwNDU0NywgMC4wMDQ1NTEsIDAuMDA0NTU0LCAwLjAwNDU1NSwgMC4wMDQ1NTcsIDAuMDA0NTU2IiwgXAotICAgICAgICAgICIwLjAwNDQ5OCwgMC4wMDQ1NCwgMC4wMDQ1NDUsIDAuMDA0NTQ4LCAwLjAwNDU0OSwgMC4wMDQ1NSwgMC4wMDQ1NTEiLCBcCi0gICAgICAgICAgIjAuMDA0NDk2LCAwLjAwNDUzNywgMC4wMDQ1NDIsIDAuMDA0NTQ0LCAwLjAwNDU0NiwgMC4wMDQ1NDcsIDAuMDA0NTQ4IiwgXAotICAgICAgICAgICIwLjAwNDQ5MiwgMC4wMDQ1MzQsIDAuMDA0NTM4LCAwLjAwNDU0LCAwLjAwNDU0MywgMC4wMDQ1NDQsIDAuMDA0NTQzIiwgXAotICAgICAgICAgICIwLjAwNDQ4OCwgMC4wMDQ1MzEsIDAuMDA0NTM1LCAwLjAwNDUzNywgMC4wMDQ1MzksIDAuMDA0NTQsIDAuMDA0NTQiLCBcCi0gICAgICAgICAgIjAuMDA0NDg4LCAwLjAwNDUzLCAwLjAwNDUzNCwgMC4wMDQ1MzcsIDAuMDA0NTM4LCAwLjAwNDUzOCwgMC4wMDQ1MzkiLCBcCi0gICAgICAgICAgIjAuMDA0NDg4LCAwLjAwNDUyOSwgMC4wMDQ1MzQsIDAuMDA0NTM3LCAwLjAwNDUzOCwgMC4wMDQ1MzksIDAuMDA0NTQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDU0MzUsIDAuMDA1NDgxLCAwLjAwNTQ4NywgMC4wMDU0ODksIDAuMDA1NDkxLCAwLjAwNTQ5MiwgMC4wMDU0OTIiLCBcCi0gICAgICAgICAgIjAuMDA1NDI4LCAwLjAwNTQ3NSwgMC4wMDU0OCwgMC4wMDU0ODIsIDAuMDA1NDg1LCAwLjAwNTQ4NiwgMC4wMDU0ODYiLCBcCi0gICAgICAgICAgIjAuMDA1NDIzLCAwLjAwNTQ3LCAwLjAwNTQ3NiwgMC4wMDU0NzksIDAuMDA1NDgsIDAuMDA1NDgxLCAwLjAwNTQ4MSIsIFwKLSAgICAgICAgICAiMC4wMDU0MiwgMC4wMDU0NjcsIDAuMDA1NDczLCAwLjAwNTQ3NiwgMC4wMDU0NzcsIDAuMDA1NDc5LCAwLjAwNTQ3OSIsIFwKLSAgICAgICAgICAiMC4wMDU0MTgsIDAuMDA1NDY0LCAwLjAwNTQ3MSwgMC4wMDU0NzIsIDAuMDA1NDc2LCAwLjAwNTQ3NiwgMC4wMDU0NzciLCBcCi0gICAgICAgICAgIjAuMDA1NDE1LCAwLjAwNTQ2MSwgMC4wMDU0NjcsIDAuMDA1NDcxLCAwLjAwNTQ3MiwgMC4wMDU0NzMsIDAuMDA1NDczIiwgXAotICAgICAgICAgICIwLjAwNTQxNSwgMC4wMDU0NjEsIDAuMDA1NDY3LCAwLjAwNTQ3LCAwLjAwNTQ3MSwgMC4wMDU0NzIsIDAuMDA1NDczIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiU04iOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDA2OCwgMC4wMDQxLCAwLjAwNDEwMywgMC4wMDQxMDQsIDAuMDA0MTA1LCAwLjAwNDEwNiwgMC4wMDQxMDciLCBcCi0gICAgICAgICAgIjAuMDA0MDYzLCAwLjAwNDA5NCwgMC4wMDQxLCAwLjAwNDA5OSwgMC4wMDQxMDIsIDAuMDA0MTAxLCAwLjAwNDEwMyIsIFwKLSAgICAgICAgICAiMC4wMDQwNTQsIDAuMDA0MDg3LCAwLjAwNDA5MSwgMC4wMDQwOTIsIDAuMDA0MDk0LCAwLjAwNDA5NCwgMC4wMDQwOTYiLCBcCi0gICAgICAgICAgIjAuMDA0MDQ0LCAwLjAwNDA4LCAwLjAwNDA4NCwgMC4wMDQwODYsIDAuMDA0MDg3LCAwLjAwNDA4OSwgMC4wMDQwODgiLCBcCi0gICAgICAgICAgIjAuMDA0MDM2LCAwLjAwNDA3MywgMC4wMDQwNzksIDAuMDA0MDgsIDAuMDA0MDgxLCAwLjAwNDA4MiwgMC4wMDQwODIiLCBcCi0gICAgICAgICAgIjAuMDA0MDIyLCAwLjAwNDA2MiwgMC4wMDQwNjgsIDAuMDA0MDcsIDAuMDA0MDcyLCAwLjAwNDA3MiwgMC4wMDQwNzIiLCBcCi0gICAgICAgICAgIjAuMDA0MDEzLCAwLjAwNDA1NCwgMC4wMDQwNjUsIDAuMDA0MDY4LCAwLjAwNDA3LCAwLjAwNDA3MSwgMC4wMDQwNzIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI5MDIsIDAuMDAyOTQ2LCAwLjAwMjk1MiwgMC4wMDI5NTMsIDAuMDAyOTU1LCAwLjAwMjk1NiwgMC4wMDI5NTYiLCBcCi0gICAgICAgICAgIjAuMDAyODk5LCAwLjAwMjk0MiwgMC4wMDI5NDcsIDAuMDAyOTUsIDAuMDAyOTUxLCAwLjAwMjk1MiwgMC4wMDI5NTMiLCBcCi0gICAgICAgICAgIjAuMDAyODkzLCAwLjAwMjkzNiwgMC4wMDI5NDIsIDAuMDAyOTQ0LCAwLjAwMjk0NiwgMC4wMDI5NDYsIDAuMDAyOTQ3IiwgXAotICAgICAgICAgICIwLjAwMjg4NywgMC4wMDI5MzIsIDAuMDAyOTM2LCAwLjAwMjkzOSwgMC4wMDI5NCwgMC4wMDI5NDIsIDAuMDAyOTQyIiwgXAotICAgICAgICAgICIwLjAwMjg4MiwgMC4wMDI5MjcsIDAuMDAyOTMzLCAwLjAwMjkzNSwgMC4wMDI5MzcsIDAuMDAyOTM4LCAwLjAwMjkzOCIsIFwKLSAgICAgICAgICAiMC4wMDI4NzgsIDAuMDAyOTIzLCAwLjAwMjkyOSwgMC4wMDI5MzIsIDAuMDAyOTMzLCAwLjAwMjkzNCwgMC4wMDI5MzUiLCBcCi0gICAgICAgICAgIjAuMDAyODc1LCAwLjAwMjkyMSwgMC4wMDI5MjcsIDAuMDAyOTMsIDAuMDAyOTMyLCAwLjAwMjkzMiwgMC4wMDI5MzMiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFFOKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMjY0MTMzOwotICAgIGZ1bmN0aW9uIDogIk41IjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJEIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMjAxNDEsIDAuNTExNDIzLCAwLjY1NDg5NiwgMC44MzQxMDMsIDEuMDEzNDcsIDEuMTkyNTMsIDEuMzcxOSIsIFwKLSAgICAgICAgICAiMC4zMzE2NywgMC41MjI5NTEsIDAuNjY2NDM3LCAwLjg0NTYzMSwgMS4wMjUsIDEuMjA0MDYsIDEuMzgzMzYiLCBcCi0gICAgICAgICAgIjAuMzQ0OTQxLCAwLjUzNjI1NiwgMC42Nzk3MzgsIDAuODU4OTMxLCAxLjAzODMsIDEuMjE3MzYsIDEuMzk2NjQiLCBcCi0gICAgICAgICAgIjAuMzU3MzU1LCAwLjU0ODY0NiwgMC42OTIxMTgsIDAuODcxMzI1LCAxLjA1MDY5LCAxLjIyOTc2LCAxLjQwOTA4IiwgXAotICAgICAgICAgICIwLjM2OTc0NCwgMC41NjEwMzEsIDAuNzA0NTA2LCAwLjg4MzcxMSwgMS4wNjMwOCwgMS4yNDIxNCwgMS40MjE0NSIsIFwKLSAgICAgICAgICAiMC4zODkyMDgsIDAuNTgwNDg5LCAwLjcyMzk2NSwgMC45MDMxNjksIDEuMDgyNTMsIDEuMjYxNiwgMS40NDA5IiwgXAotICAgICAgICAgICIwLjQwNTY0MywgMC41OTY5MzEsIDAuNzQwNDEyLCAwLjkxOTYxMSwgMS4wOTg5NywgMS4yNzgxNCwgMS40NTcyMyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMjI3NzgsIDAuNDYyODAzLCAwLjc0OTQxNywgMS4xMDk4NCwgMS40NzE5OCwgMS44NDA2NCwgMi4xOTk2MiIsIFwKLSAgICAgICAgICAiMC4xMjI3MjQsIDAuNDYyNzkyLCAwLjc0OTQzMywgMS4xMDk4MywgMS40NzE5OSwgMS44NDA2MiwgMi4yMDA1NSIsIFwKLSAgICAgICAgICAiMC4xMjI4MTgsIDAuNDYyODI2LCAwLjc0OTQ2NCwgMS4xMDk4MSwgMS40NzE4MiwgMS44NDA2NSwgMi4xOTk4MSIsIFwKLSAgICAgICAgICAiMC4xMjI5MDUsIDAuNDYyODE5LCAwLjc0OTQwMSwgMS4xMDk4MiwgMS40NzE5NCwgMS44NDA2MywgMi4xOTk4OCIsIFwKLSAgICAgICAgICAiMC4xMjI3NzMsIDAuNDYyODAzLCAwLjc0ODQ2NCwgMS4xMDk4MywgMS40NzE5NiwgMS44NDA2MywgMi4xOTk4NyIsIFwKLSAgICAgICAgICAiMC4xMjI3MDUsIDAuNDYyNzk0LCAwLjc0ODUzLCAxLjEwOTgzLCAxLjQ3MTk2LCAxLjg0MDYzLCAyLjE5OTg3IiwgXAotICAgICAgICAgICIwLjEyMjgzNCwgMC40NjI4MDIsIDAuNzQ4NTI3LCAxLjEwOTgyLCAxLjQ3MTk4LCAxLjgzNTc5LCAyLjIwNTE4Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI2MjMyNCwgMC40NzA4NTksIDAuNjM2MDAxLCAwLjg0MjMyOSwgMS4wNDg2NCwgMS4yNTQ4NywgMS40NjExNCIsIFwKLSAgICAgICAgICAiMC4yNzM5NzUsIDAuNDgyNTE1LCAwLjY0NzU5NSwgMC44NTQwMDgsIDEuMDYwMzIsIDEuMjY2NTEsIDEuNDcyODEiLCBcCi0gICAgICAgICAgIjAuMjg3OTIyLCAwLjQ5NjM4MSwgMC42NjE1NzEsIDAuODY3OTA3LCAxLjA3NDIxLCAxLjI4MDQ3LCAxLjQ4Njg4IiwgXAotICAgICAgICAgICIwLjMwMTU1NiwgMC41MTAwMTQsIDAuNjc1MjA2LCAwLjg4MTU0MywgMS4wODc4NCwgMS4yOTQxLCAxLjUwMDQ3IiwgXAotICAgICAgICAgICIwLjMxNTExNiwgMC41MjM2MjMsIDAuNjg4Nzg4LCAwLjg5NTE2OCwgMS4xMDE0MiwgMS4zMDczOCwgMS41MTM5MiIsIFwKLSAgICAgICAgICAiMC4zMzcyNzUsIDAuNTQ1ODE2LCAwLjcxMDkzOCwgMC45MTczMjIsIDEuMTIzNTgsIDEuMzI5ODUsIDEuNTM2MTUiLCBcCi0gICAgICAgICAgIjAuMzU1OTE4LCAwLjU2NDM4MywgMC43Mjk1NzIsIDAuOTM1OTQxLCAxLjE0MjIxLCAxLjM0ODQ1LCAxLjU1NDczIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwNzkwOCwgMC41MDY5NDYsIDAuODM0MDQ4LCAxLjI0NDQxLCAxLjY1NjYxLCAyLjA2NywgMi40Nzc4MSIsIFwKLSAgICAgICAgICAiMC4xMDc4ODksIDAuNTA3NjA1LCAwLjgzNDIxOSwgMS4yNDM5MywgMS42NTQyNiwgMi4wNjY5MSwgMi40Nzc4OCIsIFwKLSAgICAgICAgICAiMC4xMDc4OTUsIDAuNTA3MDk5LCAwLjgzMzg1NCwgMS4yNDQ2MSwgMS42NTY0OCwgMi4wNjcwOCwgMi40NzUwNiIsIFwKLSAgICAgICAgICAiMC4xMDc4ODcsIDAuNTA3MDg2LCAwLjgzMzg1MSwgMS4yNDQ2LCAxLjY1NjQ4LCAyLjA2NzA4LCAyLjQ3ODE4IiwgXAotICAgICAgICAgICIwLjEwNzkwMiwgMC41MDczOTEsIDAuODMzODY5LCAxLjI0MjQ2LCAxLjY1NjQ3LCAyLjA2NTMzLCAyLjQ3Nzc4IiwgXAotICAgICAgICAgICIwLjEwNzg4NiwgMC41MDc2LCAwLjgzMzg1LCAxLjI0MjUzLCAxLjY1NjQ5LCAyLjA2NzA1LCAyLjQ3ODA4IiwgXAotICAgICAgICAgICIwLjEwNzkzNSwgMC41MDcxMjcsIDAuODMzODgsIDEuMjQ0MzEsIDEuNjU2NSwgMi4wNjcwNiwgMi40NzYyMiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJHIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5vbl91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcmlzaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjQzMTgyNywgMC42MjMzMTIsIDAuNzY2Nzc3LCAwLjk0NTk3OCwgMS4xMjUzNiwgMS4zMDQ0MiwgMS40ODM2MyIsIFwKLSAgICAgICAgICAiMC40NDIsIDAuNjMzNDcsIDAuNzc2OTY5LCAwLjk1NjE0MiwgMS4xMzU1MiwgMS4zMTQ1OCwgMS40OTM4MyIsIFwKLSAgICAgICAgICAiMC40NTQ5NDcsIDAuNjQ2NDIxLCAwLjc4OTkwMywgMC45NjkxMywgMS4xNDgyOCwgMS4zMjc0NywgMS41MDY3MSIsIFwKLSAgICAgICAgICAiMC40NjgzNzUsIDAuNjU5ODUzLCAwLjgwMzMyOSwgMC45ODI1MTgsIDEuMTYxODEsIDEuMzQwOTcsIDEuNTIwMTYiLCBcCi0gICAgICAgICAgIjAuNDgyNTUyLCAwLjY3NDAzLCAwLjgxNzUwNiwgMC45OTY2OTUsIDEuMTc1OTksIDEuMzU1MTUsIDEuNTM0MzQiLCBcCi0gICAgICAgICAgIjAuNTA0NjU1LCAwLjY5NjEzMiwgMC44Mzk2MSwgMS4wMTg4LCAxLjE5ODA5LCAxLjM3NzI1LCAxLjU1NjQiLCBcCi0gICAgICAgICAgIjAuNTI0MjA2LCAwLjcxNTY4NCwgMC44NTkxNTksIDEuMDM4MzUsIDEuMjE3NjUsIDEuMzk2OCwgMS41NzU5OSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMjM1NzUsIDAuNDYzMDE3LCAwLjc0ODYxNywgMS4xMTEwOCwgMS40NzIxNCwgMS44NDA3MywgMi4yMDU5MiIsIFwKLSAgICAgICAgICAiMC4xMjM2MzUsIDAuNDYzMDEyLCAwLjc0OTY3NywgMS4xMTE0LCAxLjQ3MjEsIDEuODQwNjcsIDIuMjAxNzEiLCBcCi0gICAgICAgICAgIjAuMTIzNjQzLCAwLjQ2MzAxMywgMC43NDk1MDcsIDEuMTExODQsIDEuNDc1NTEsIDEuODQwMzksIDIuMjA1MTQiLCBcCi0gICAgICAgICAgIjAuMTIzNjE3LCAwLjQ2MzAxNywgMC43NDk1MDgsIDEuMTExNDgsIDEuNDcyNiwgMS44NDA2OCwgMi4yMDE2NCIsIFwKLSAgICAgICAgICAiMC4xMjM2MTYsIDAuNDYzMDE3LCAwLjc0OTUwOCwgMS4xMTE0OCwgMS40NzI2LCAxLjg0MDY4LCAyLjIwMTY0IiwgXAotICAgICAgICAgICIwLjEyMzYyLCAwLjQ2MzAxNSwgMC43NDk1MTYsIDEuMTExNTgsIDEuNDcyNTksIDEuODQwNjcsIDIuMjA1NiIsIFwKLSAgICAgICAgICAiMC4xMjM2MTUsIDAuNDYzMDE3LCAwLjc0OTUwOCwgMS4xMTE0OCwgMS40NzI2LCAxLjg0MDY4LCAyLjIwMTY0Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjQwMTcwMiwgMC42MTAyMzMsIDAuNzc1MzYyLCAwLjk4MTczMywgMS4xODgsIDEuMzk0MjQsIDEuNjAwNDgiLCBcCi0gICAgICAgICAgIjAuNDExODM2LCAwLjYyMDM3NSwgMC43ODU1MTIsIDAuOTkxODQ3LCAxLjE5ODE5LCAxLjQwNDM5LCAxLjYxMDY1IiwgXAotICAgICAgICAgICIwLjQyNDY1MSwgMC42MzMxODgsIDAuNzk4MzI0LCAxLjAwNDY4LCAxLjIxMDk2LCAxLjQxNzE5LCAxLjYyMzQ3IiwgXAotICAgICAgICAgICIwLjQzODI4MSwgMC42NDY3OTMsIDAuODExOTQsIDEuMDE4MjYsIDEuMjI0NTgsIDEuNDMwODMsIDEuNjM3MDYiLCBcCi0gICAgICAgICAgIjAuNDUyNTM3LCAwLjY2MTA3MSwgMC44MjYyMTYsIDEuMDMyNTUsIDEuMjM4NzgsIDEuNDQ1MDgsIDEuNjUxMzUiLCBcCi0gICAgICAgICAgIjAuNDc0ODMsIDAuNjgzMzQ5LCAwLjg0ODQ5MSwgMS4wNTQ4OCwgMS4yNjExMywgMS40Njc0LCAxLjY3MzYiLCBcCi0gICAgICAgICAgIjAuNDk0NDQ5LCAwLjcwMjk2NywgMC44NjgxMDksIDEuMDc0NTQsIDEuMjgwNzcsIDEuNDg2OTksIDEuNjkzMjIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTA3OTkzLCAwLjUwNzYyOSwgMC44MzM4NjMsIDEuMjQ0MTQsIDEuNjU2NDgsIDIuMDY3MDgsIDIuNDc3NzIiLCBcCi0gICAgICAgICAgIjAuMTA4MDQ5LCAwLjUwNzY0MSwgMC44MzM5ODYsIDEuMjQ0NTQsIDEuNjU0NjksIDIuMDY3MDksIDIuNDc3NzgiLCBcCi0gICAgICAgICAgIjAuMTA4MDgyLCAwLjUwNzYwNywgMC44MzM5MTEsIDEuMjQ0MjgsIDEuNjU2NDIsIDIuMDY3LCAyLjQ3NjI3IiwgXAotICAgICAgICAgICIwLjEwODA1OCwgMC41MDc0MjgsIDAuODMzODI1LCAxLjI0NTcxLCAxLjY1NjQ3LCAyLjA2NTczLCAyLjQ3NzcxIiwgXAotICAgICAgICAgICIwLjEwODAzMywgMC41MDc2MjQsIDAuODM0MDIzLCAxLjI0NDQ3LCAxLjY1NjIxLCAyLjA2Njk4LCAyLjQ3NzY5IiwgXAotICAgICAgICAgICIwLjEwNzk5NSwgMC41MDY4ODYsIDAuODMzOTExLCAxLjI0NDI1LCAxLjY1NDI0LCAyLjA2NzE2LCAyLjQ3NzU5IiwgXAotICAgICAgICAgICIwLjEwNzk5NCwgMC41MDY3NzUsIDAuODMzODk1LCAxLjI0NDA2LCAxLjY1NDgxLCAyLjA2NzAyLCAyLjQ3NzYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUk4iOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJpc2luZ19lZGdlOwotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC40MDgzOTQsIDAuNjE2OTEzLCAwLjc4MjA1NCwgMC45ODg0MzYsIDEuMTk0NzQsIDEuNDAwOTIsIDEuNjA3MTciLCBcCi0gICAgICAgICAgIjAuNDIwMDA5LCAwLjYyODU1NCwgMC43OTM2OTIsIDEuMDAwMDUsIDEuMjA2MzMsIDEuNDEyNTYsIDEuNjE4ODQiLCBcCi0gICAgICAgICAgIjAuNDM0MDA1LCAwLjY0MjUyNiwgMC44MDc2NjksIDEuMDE0MDIsIDEuMjIwMjksIDEuNDI2NjIsIDEuNjMyNzciLCBcCi0gICAgICAgICAgIjAuNDQ3NzU4LCAwLjY1NjI4LCAwLjgyMTQxOCwgMS4wMjc3NiwgMS4yMzQwNiwgMS40NDAyNywgMS42NDY1MyIsIFwKLSAgICAgICAgICAiMC40NjEzMzcsIDAuNjY5ODc2LCAwLjgzNTAwNywgMS4wNDEzNCwgMS4yNDc2MywgMS40NTM4OCwgMS42NjAxMiIsIFwKLSAgICAgICAgICAiMC40ODM1MjEsIDAuNjkyMDM0LCAwLjg1NzE4LCAxLjA2MzUyLCAxLjI2OTgyLCAxLjQ3NjA2LCAxLjY4MjMiLCBcCi0gICAgICAgICAgIjAuNTAyMzU4LCAwLjcxMDg3OSwgMC44NzYwMjEsIDEuMDgyMzgsIDEuMjg4NjUsIDEuNDk0OTcsIDEuNzAxMTMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTA4MDAzLCAwLjUwNjkxNSwgMC44MzM4ODIsIDEuMjQ0MTgsIDEuNjU0NTksIDIuMDY2OTYsIDIuNDc3NzEiLCBcCi0gICAgICAgICAgIjAuMTA4MDcxLCAwLjUwNzYwNCwgMC44MzM5MTUsIDEuMjQ0MjgsIDEuNjU2NSwgMi4wNjcsIDIuNDc2MiIsIFwKLSAgICAgICAgICAiMC4xMDgwMTIsIDAuNTA2OTQ5LCAwLjgzMzkyNCwgMS4yNDM5MiwgMS42NTUwNSwgMi4wNjczLCAyLjQ3NzY5IiwgXAotICAgICAgICAgICIwLjEwNzk5OCwgMC41MDc1ODgsIDAuODMzODY2LCAxLjI0NTgsIDEuNjU2NDgsIDIuMDY2OTEsIDIuNDc3NzIiLCBcCi0gICAgICAgICAgIjAuMTA4MDQ3LCAwLjUwNjk0NiwgMC44MzM5NjEsIDEuMjQ0NTYsIDEuNjU2MzcsIDIuMDY2OTcsIDIuNDc3NjIiLCBcCi0gICAgICAgICAgIjAuMTA3OTk3LCAwLjUwNzQ2NywgMC44MzM4NTUsIDEuMjQ1NzgsIDEuNjU2NDgsIDIuMDY1ODcsIDIuNDc3NzIiLCBcCi0gICAgICAgICAgIjAuMTA4MDExLCAwLjUwNjk0NCwgMC44MzM5MiwgMS4yNDQwMSwgMS42NTUwNCwgMi4wNjcyOSwgMi40Nzc3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiBmYWxsaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjQwODEzLCAwLjU5OTQzOSwgMC43NDI5MiwgMC45MjIxMzUsIDEuMTAxNDksIDEuMjgwNTcsIDEuNDU5NjgiLCBcCi0gICAgICAgICAgIjAuNDE5NTIsIDAuNjEwODQ1LCAwLjc1NDMyMywgMC45MzM1MywgMS4xMTI5MSwgMS4yOTE5OCwgMS40NzEwNyIsIFwKLSAgICAgICAgICAiMC40MzQxODksIDAuNjI1NTA4LCAwLjc2OTAwNCwgMC45NDgyMjgsIDEuMTI3MzksIDEuMzA2NiwgMS40ODU3NyIsIFwKLSAgICAgICAgICAiMC40NDg4NDIsIDAuNjQwMTY3LCAwLjc4MzY1NCwgMC45NjI4NjIsIDEuMTQyMTYsIDEuMzIxMzEsIDEuNTAwNDEiLCBcCi0gICAgICAgICAgIjAuNDYzNTU1LCAwLjY1NDg3OSwgMC43OTgzNjcsIDAuOTc3NTc0LCAxLjE1Njg3LCAxLjMzNjAzLCAxLjUxNTEyIiwgXAotICAgICAgICAgICIwLjQ4NjUyOSwgMC42Nzc4NzQsIDAuODIxMzY0LCAxLjAwMDYzLCAxLjE3OTc3LCAxLjM1OTA1LCAxLjUzODEzIiwgXAotICAgICAgICAgICIwLjUwNTk0NCwgMC42OTcyNjIsIDAuODQwNzQ5LCAxLjAxOTk2LCAxLjE5OTMyLCAxLjM3ODM5LCAxLjU1NzUxIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEyMjg5OSwgMC40NjI4NDYsIDAuNzQ5NDY5LCAxLjEwOTkzLCAxLjQ3MjYxLCAxLjg0MDYzLCAyLjIwMTk0IiwgXAotICAgICAgICAgICIwLjEyMjkyMSwgMC40NjI4NzMsIDAuNzQ5NTQxLCAxLjExMTMyLCAxLjQ3MjIsIDEuODQwNjgsIDIuMjA1MjciLCBcCi0gICAgICAgICAgIjAuMTIyODQxLCAwLjQ2Mjg0NywgMC43NDk0NDMsIDEuMTExODMsIDEuNDc1NTUsIDEuODQwNjEsIDIuMjA1NDEiLCBcCi0gICAgICAgICAgIjAuMTIyOTEyLCAwLjQ2Mjg1NywgMC43NDk0OTQsIDEuMTExNiwgMS40NzI2NiwgMS44NDA3LCAyLjIwNTI3IiwgXAotICAgICAgICAgICIwLjEyMjkyMiwgMC40NjI4NTcsIDAuNzQ5NDg4LCAxLjExMTU4LCAxLjQ3MjYzLCAxLjg0MDY3LCAyLjIwNTI0IiwgXAotICAgICAgICAgICIwLjEyMjkxNiwgMC40NjI4NzMsIDAuNzQ5NDU1LCAxLjExMTk5LCAxLjQ3NTY5LCAxLjg0MDgzLCAyLjIwNTM4IiwgXAotICAgICAgICAgICIwLjEyMjkxNywgMC40NjI4NjcsIDAuNzQ5NDgxLCAxLjExMTMzLCAxLjQ3MjcyLCAxLjg0MDY1LCAyLjIwNTQ3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiBjbGVhcjsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjE2Nzc5LCAwLjQwODAxLCAwLjU1MTQ4MiwgMC43MzA2ODEsIDAuOTEwMDU4LCAxLjA4OTEyLCAxLjI2ODQiLCBcCi0gICAgICAgICAgIjAuMjI4MTQxLCAwLjQxOTM0NSwgMC41NjI4MDgsIDAuNzQyMDA4LCAwLjkyMTM2NiwgMS4xMDA0MywgMS4yNzk4MSIsIFwKLSAgICAgICAgICAiMC4yNDEzNzYsIDAuNDMyNTg0LCAwLjU3NjA0NiwgMC43NTUyNDgsIDAuOTM0NjA4LCAxLjExMzY3LCAxLjI5MzAyIiwgXAotICAgICAgICAgICIwLjI1NDU0OSwgMC40NDU4MDEsIDAuNTg5Mjc5LCAwLjc2ODQ2NSwgMC45NDc4MzEsIDEuMTI3MDEsIDEuMzA2MDYiLCBcCi0gICAgICAgICAgIjAuMjY3OTAxLCAwLjQ1OTEyNCwgMC42MDI1OTcsIDAuNzgxNzkyLCAwLjk2MTE1NCwgMS4xNDAyMiwgMS4zMTk0NiIsIFwKLSAgICAgICAgICAiMC4yODkxNzcsIDAuNDgwNDA0LCAwLjYyMzg3OSwgMC44MDMwNzMsIDAuOTgyNDUsIDEuMTYxNTEsIDEuMzQwNjUiLCBcCi0gICAgICAgICAgIjAuMzA3NzIxLCAwLjQ5ODk0OCwgMC42NDI0MjcsIDAuODIxNjI3LCAxLjAwMDk5LCAxLjE4MDA2LCAxLjM1OTI5Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEyMjcwMiwgMC40NjI5NTksIDAuNzQ5NDQyLCAxLjExMTIsIDEuNDcyMTYsIDEuODQwNywgMi4yMDU2NiIsIFwKLSAgICAgICAgICAiMC4xMjI2OTIsIDAuNDYyNzY0LCAwLjc0OTM4NywgMS4xMDk4NCwgMS40NzE5OCwgMS44NDA2NSwgMi4xOTk4NyIsIFwKLSAgICAgICAgICAiMC4xMjI1NiwgMC40NjI3NTIsIDAuNzQ5Mzg4LCAxLjEwOTgyLCAxLjQ3MTk2LCAxLjg0MDY0LCAyLjE5OTc1IiwgXAotICAgICAgICAgICIwLjEyMjYxMSwgMC40NjI3NDksIDAuNzQ5Mzg5LCAxLjExMTIyLCAxLjQ3MTk1LCAxLjg0MDY1LCAyLjIwNTU5IiwgXAotICAgICAgICAgICIwLjEyMjU4NywgMC40NjI3NTUsIDAuNzQ4NSwgMS4xMDk4MiwgMS40NzE5NiwgMS44NDA2MiwgMi4yMDU4OSIsIFwKLSAgICAgICAgICAiMC4xMjI1MDksIDAuNDYyODQ5LCAwLjc0OTM5NiwgMS4xMTExNiwgMS40NzI0MywgMS44NDA2NCwgMi4yMDU1OCIsIFwKLSAgICAgICAgICAiMC4xMjI0OTMsIDAuNDYyNzM2LCAwLjc0OTM3LCAxLjEwOTgsIDEuNDcyLCAxLjg0MDYyLCAyLjIwNTg2Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEzNTE3LCAwLjM0NDU5NSwgMC41MDk1NjEsIDAuNzE1NzQ4LCAwLjkyMTk3NywgMS4xMjgzLCAxLjMzNDQ5IiwgXAotICAgICAgICAgICIwLjE0NjgzNywgMC4zNTYyNzEsIDAuNTIxMjMyLCAwLjcyNzQxOSwgMC45MzM2NDksIDEuMTM5OTcsIDEuMzQ2MTYiLCBcCi0gICAgICAgICAgIjAuMTYxNDA1LCAwLjM3MDg2MSwgMC41MzU4MzEsIDAuNzQyMDIsIDAuOTQ4MjUsIDEuMTU0NTUsIDEuMzYwNzciLCBcCi0gICAgICAgICAgIjAuMTc2MDY2LCAwLjM4NTU0MywgMC41NTA1MTksIDAuNzU2NzA5LCAwLjk2Mjk0NCwgMS4xNjkyNCwgMS4zNzU0NiIsIFwKLSAgICAgICAgICAiMC4xOTA5NzksIDAuNDAwNDc3LCAwLjU2NTQ1OSwgMC43NzE2NDIsIDAuOTc3ODk1LCAxLjE4NDE2LCAxLjM5MDQxIiwgXAotICAgICAgICAgICIwLjIxNDU4OCwgMC40MjQxMTYsIDAuNTg5MTA2LCAwLjc5NTMwNCwgMS4wMDE1NSwgMS4yMDc4MywgMS40MTQwNyIsIFwKLSAgICAgICAgICAiMC4yMzQ4MjgsIDAuNDQ0Mzc3LCAwLjYwOTM4NywgMC44MTU1ODIsIDEuMDIxODQsIDEuMjI4MTEsIDEuNDM0MzciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTA3NzMxLCAwLjUwNjkxNSwgMC44MzQ2NjcsIDEuMjQ1MDMsIDEuNjU2NDMsIDIuMDY1NDcsIDIuNDc4NTkiLCBcCi0gICAgICAgICAgIjAuMTA3Njg2LCAwLjUwNjkyLCAwLjgzNTQxMywgMS4yNDUwMiwgMS42NTY0LCAyLjA2NTU1LCAyLjQ3ODU4IiwgXAotICAgICAgICAgICIwLjEwNzczOCwgMC41MDc0NTksIDAuODM1MzcyLCAxLjI0NTAxLCAxLjY1NTI2LCAyLjA2NjMxLCAyLjQ3NjU0IiwgXAotICAgICAgICAgICIwLjEwNzcxMSwgMC41MDc4NTksIDAuODM0NjY0LCAxLjI0NTYxLCAxLjY1NjM1LCAyLjA2NTI2LCAyLjQ3NTgiLCBcCi0gICAgICAgICAgIjAuMTA3NzM1LCAwLjUwNzMwOCwgMC44MzUzNjIsIDEuMjQ1NzIsIDEuNjU2NjUsIDIuMDY3MTgsIDIuNDc1NzIiLCBcCi0gICAgICAgICAgIjAuMTA3ODE0LCAwLjUwNzg1LCAwLjgzNDY1LCAxLjI0NTYsIDEuNjU1MzIsIDIuMDY2MzEsIDIuNDc1OTQiLCBcCi0gICAgICAgICAgIjAuMTA4MjA3LCAwLjUwNzc1NywgMC44MzUzOTMsIDEuMjQ1ODgsIDEuNjU1NjQsIDIuMDY3MzMsIDIuNDc1NjkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJEIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQwMjMsIDAuMDA0MDY5LCAwLjAwNDA3NSwgMC4wMDQwNzksIDAuMDA0MDgsIDAuMDA0MDgxLCAwLjAwNDA4MiIsIFwKLSAgICAgICAgICAiMC4wMDQwMiwgMC4wMDQwNjcsIDAuMDA0MDczLCAwLjAwNDA3NiwgMC4wMDQwNzcsIDAuMDA0MDc4LCAwLjAwNDA3OSIsIFwKLSAgICAgICAgICAiMC4wMDQwMTgsIDAuMDA0MDY0LCAwLjAwNDA3LCAwLjAwNDA3NCwgMC4wMDQwNzUsIDAuMDA0MDc2LCAwLjAwNDA3NiIsIFwKLSAgICAgICAgICAiMC4wMDQwMTYsIDAuMDA0MDYzLCAwLjAwNDA2OSwgMC4wMDQwNzIsIDAuMDA0MDc0LCAwLjAwNDA3NSwgMC4wMDQwNzUiLCBcCi0gICAgICAgICAgIjAuMDA0MDE2LCAwLjAwNDA2MiwgMC4wMDQwNjgsIDAuMDA0MDcxLCAwLjAwNDA3MywgMC4wMDQwNzQsIDAuMDA0MDc0IiwgXAotICAgICAgICAgICIwLjAwNDAxNCwgMC4wMDQwNjEsIDAuMDA0MDY3LCAwLjAwNDA3LCAwLjAwNDA3MSwgMC4wMDQwNzIsIDAuMDA0MDczIiwgXAotICAgICAgICAgICIwLjAwNDAxMiwgMC4wMDQwNTksIDAuMDA0MDY1LCAwLjAwNDA2NywgMC4wMDQwNjksIDAuMDA0MDcsIDAuMDA0MDcxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzNzAxLCAwLjAwMzc0MywgMC4wMDM3NDgsIDAuMDAzNzUxLCAwLjAwMzc1MywgMC4wMDM3NTMsIDAuMDAzNzU0IiwgXAotICAgICAgICAgICIwLjAwMzY5NSwgMC4wMDM3MzcsIDAuMDAzNzQyLCAwLjAwMzc0NSwgMC4wMDM3NDYsIDAuMDAzNzQ3LCAwLjAwMzc0OCIsIFwKLSAgICAgICAgICAiMC4wMDM2OTIsIDAuMDAzNzM0LCAwLjAwMzczOSwgMC4wMDM3NDIsIDAuMDAzNzQzLCAwLjAwMzc0NCwgMC4wMDM3NDUiLCBcCi0gICAgICAgICAgIjAuMDAzNjksIDAuMDAzNzMyLCAwLjAwMzczNywgMC4wMDM3MzksIDAuMDAzNzQxLCAwLjAwMzc0MywgMC4wMDM3NDIiLCBcCi0gICAgICAgICAgIjAuMDAzNjg3LCAwLjAwMzcyOSwgMC4wMDM3MzQsIDAuMDAzNzM3LCAwLjAwMzczOCwgMC4wMDM3MzksIDAuMDAzNzM3IiwgXAotICAgICAgICAgICIwLjAwMzY4NSwgMC4wMDM3MjcsIDAuMDAzNzMyLCAwLjAwMzczNSwgMC4wMDM3MzUsIDAuMDAzNzM3LCAwLjAwMzczOCIsIFwKLSAgICAgICAgICAiMC4wMDM2ODEsIDAuMDAzNzI0LCAwLjAwMzcyOSwgMC4wMDM3MzIsIDAuMDAzNzM0LCAwLjAwMzczMywgMC4wMDM3MzQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJHIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQ4MTgsIDAuMDA0ODY0LCAwLjAwNDg3LCAwLjAwNDg3MywgMC4wMDQ4NzUsIDAuMDA0ODc2LCAwLjAwNDg3NiIsIFwKLSAgICAgICAgICAiMC4wMDQ4MTIsIDAuMDA0ODU4LCAwLjAwNDg2NCwgMC4wMDQ4NjcsIDAuMDA0ODY5LCAwLjAwNDg2OSwgMC4wMDQ4NyIsIFwKLSAgICAgICAgICAiMC4wMDQ4MDYsIDAuMDA0ODUzLCAwLjAwNDg1OCwgMC4wMDQ4NjIsIDAuMDA0ODY0LCAwLjAwNDg2NCwgMC4wMDQ4NjQiLCBcCi0gICAgICAgICAgIjAuMDA0ODAyLCAwLjAwNDg0OSwgMC4wMDQ4NTYsIDAuMDA0ODU4LCAwLjAwNDg2LCAwLjAwNDg1OSwgMC4wMDQ4NjIiLCBcCi0gICAgICAgICAgIjAuMDA0OCwgMC4wMDQ4NDcsIDAuMDA0ODU0LCAwLjAwNDg1NiwgMC4wMDQ4NTcsIDAuMDA0ODU4LCAwLjAwNDg1OSIsIFwKLSAgICAgICAgICAiMC4wMDQ3OTgsIDAuMDA0ODQ1LCAwLjAwNDg1MSwgMC4wMDQ4NTIsIDAuMDA0ODU1LCAwLjAwNDg1NywgMC4wMDQ4NTciLCBcCi0gICAgICAgICAgIjAuMDA0Nzk1LCAwLjAwNDg0MiwgMC4wMDQ4NDgsIDAuMDA0ODUsIDAuMDA0ODUzLCAwLjAwNDg1MywgMC4wMDQ4NTQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQ1ODUsIDAuMDA0NjI3LCAwLjAwNDYzMiwgMC4wMDQ2MzQsIDAuMDA0NjM2LCAwLjAwNDYzNiwgMC4wMDQ2MzUiLCBcCi0gICAgICAgICAgIjAuMDA0NTc5LCAwLjAwNDYyMSwgMC4wMDQ2MjYsIDAuMDA0NjMsIDAuMDA0NjMsIDAuMDA0NjMxLCAwLjAwNDYzMiIsIFwKLSAgICAgICAgICAiMC4wMDQ1NzMsIDAuMDA0NjE1LCAwLjAwNDYyLCAwLjAwNDYyMywgMC4wMDQ2MjQsIDAuMDA0NjI1LCAwLjAwNDYyNiIsIFwKLSAgICAgICAgICAiMC4wMDQ1NzEsIDAuMDA0NjEzLCAwLjAwNDYxOCwgMC4wMDQ2MiwgMC4wMDQ2MjIsIDAuMDA0NjIyLCAwLjAwNDYyMyIsIFwKLSAgICAgICAgICAiMC4wMDQ1NjksIDAuMDA0NjExLCAwLjAwNDYxNSwgMC4wMDQ2MTgsIDAuMDA0NjE5LCAwLjAwNDYyLCAwLjAwNDYyMSIsIFwKLSAgICAgICAgICAiMC4wMDQ1NjksIDAuMDA0NjEsIDAuMDA0NjE1LCAwLjAwNDYxOCwgMC4wMDQ2MTksIDAuMDA0NjIsIDAuMDA0NjIxIiwgXAotICAgICAgICAgICIwLjAwNDU2NywgMC4wMDQ2MDksIDAuMDA0NjE0LCAwLjAwNDYxNiwgMC4wMDQ2MTcsIDAuMDA0NjE5LCAwLjAwNDYxOSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDU0MzUsIDAuMDA1NDgxLCAwLjAwNTQ4NywgMC4wMDU0ODksIDAuMDA1NDkxLCAwLjAwNTQ5MiwgMC4wMDU0OTIiLCBcCi0gICAgICAgICAgIjAuMDA1NDI4LCAwLjAwNTQ3NSwgMC4wMDU0OCwgMC4wMDU0ODIsIDAuMDA1NDg1LCAwLjAwNTQ4NiwgMC4wMDU0ODYiLCBcCi0gICAgICAgICAgIjAuMDA1NDIzLCAwLjAwNTQ3LCAwLjAwNTQ3NiwgMC4wMDU0NzksIDAuMDA1NDgsIDAuMDA1NDgxLCAwLjAwNTQ4MSIsIFwKLSAgICAgICAgICAiMC4wMDU0MiwgMC4wMDU0NjcsIDAuMDA1NDczLCAwLjAwNTQ3NiwgMC4wMDU0NzcsIDAuMDA1NDc5LCAwLjAwNTQ3OSIsIFwKLSAgICAgICAgICAiMC4wMDU0MTgsIDAuMDA1NDY0LCAwLjAwNTQ3MSwgMC4wMDU0NzIsIDAuMDA1NDc2LCAwLjAwNTQ3NiwgMC4wMDU0NzciLCBcCi0gICAgICAgICAgIjAuMDA1NDE1LCAwLjAwNTQ2MSwgMC4wMDU0NjcsIDAuMDA1NDcxLCAwLjAwNTQ3MiwgMC4wMDU0NzMsIDAuMDA1NDczIiwgXAotICAgICAgICAgICIwLjAwNTQxNSwgMC4wMDU0NjEsIDAuMDA1NDY3LCAwLjAwNTQ3LCAwLjAwNTQ3MSwgMC4wMDU0NzIsIDAuMDA1NDczIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0NTA1LCAwLjAwNDU0NywgMC4wMDQ1NTEsIDAuMDA0NTU0LCAwLjAwNDU1NSwgMC4wMDQ1NTcsIDAuMDA0NTU2IiwgXAotICAgICAgICAgICIwLjAwNDQ5OCwgMC4wMDQ1NCwgMC4wMDQ1NDUsIDAuMDA0NTQ4LCAwLjAwNDU0OSwgMC4wMDQ1NSwgMC4wMDQ1NTEiLCBcCi0gICAgICAgICAgIjAuMDA0NDk2LCAwLjAwNDUzNywgMC4wMDQ1NDIsIDAuMDA0NTQ0LCAwLjAwNDU0NiwgMC4wMDQ1NDcsIDAuMDA0NTQ4IiwgXAotICAgICAgICAgICIwLjAwNDQ5MiwgMC4wMDQ1MzQsIDAuMDA0NTM4LCAwLjAwNDU0LCAwLjAwNDU0MywgMC4wMDQ1NDQsIDAuMDA0NTQzIiwgXAotICAgICAgICAgICIwLjAwNDQ4OCwgMC4wMDQ1MzEsIDAuMDA0NTM1LCAwLjAwNDUzNywgMC4wMDQ1MzksIDAuMDA0NTQsIDAuMDA0NTQiLCBcCi0gICAgICAgICAgIjAuMDA0NDg4LCAwLjAwNDUzLCAwLjAwNDUzNCwgMC4wMDQ1MzcsIDAuMDA0NTM4LCAwLjAwNDUzOCwgMC4wMDQ1MzkiLCBcCi0gICAgICAgICAgIjAuMDA0NDg4LCAwLjAwNDUyOSwgMC4wMDQ1MzQsIDAuMDA0NTM3LCAwLjAwNDUzOCwgMC4wMDQ1MzksIDAuMDA0NTQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyOTAyLCAwLjAwMjk0NiwgMC4wMDI5NTIsIDAuMDAyOTUzLCAwLjAwMjk1NSwgMC4wMDI5NTYsIDAuMDAyOTU2IiwgXAotICAgICAgICAgICIwLjAwMjg5OSwgMC4wMDI5NDIsIDAuMDAyOTQ3LCAwLjAwMjk1LCAwLjAwMjk1MSwgMC4wMDI5NTIsIDAuMDAyOTUzIiwgXAotICAgICAgICAgICIwLjAwMjg5MywgMC4wMDI5MzYsIDAuMDAyOTQyLCAwLjAwMjk0NCwgMC4wMDI5NDYsIDAuMDAyOTQ2LCAwLjAwMjk0NyIsIFwKLSAgICAgICAgICAiMC4wMDI4ODcsIDAuMDAyOTMyLCAwLjAwMjkzNiwgMC4wMDI5MzksIDAuMDAyOTQsIDAuMDAyOTQyLCAwLjAwMjk0MiIsIFwKLSAgICAgICAgICAiMC4wMDI4ODIsIDAuMDAyOTI3LCAwLjAwMjkzMywgMC4wMDI5MzUsIDAuMDAyOTM3LCAwLjAwMjkzOCwgMC4wMDI5MzgiLCBcCi0gICAgICAgICAgIjAuMDAyODc4LCAwLjAwMjkyMywgMC4wMDI5MjksIDAuMDAyOTMyLCAwLjAwMjkzMywgMC4wMDI5MzQsIDAuMDAyOTM1IiwgXAotICAgICAgICAgICIwLjAwMjg3NSwgMC4wMDI5MjEsIDAuMDAyOTI3LCAwLjAwMjkzLCAwLjAwMjkzMiwgMC4wMDI5MzIsIDAuMDAyOTMzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0MDY4LCAwLjAwNDEsIDAuMDA0MTAzLCAwLjAwNDEwNCwgMC4wMDQxMDUsIDAuMDA0MTA2LCAwLjAwNDEwNyIsIFwKLSAgICAgICAgICAiMC4wMDQwNjMsIDAuMDA0MDk0LCAwLjAwNDEsIDAuMDA0MDk5LCAwLjAwNDEwMiwgMC4wMDQxMDEsIDAuMDA0MTAzIiwgXAotICAgICAgICAgICIwLjAwNDA1NCwgMC4wMDQwODcsIDAuMDA0MDkxLCAwLjAwNDA5MiwgMC4wMDQwOTQsIDAuMDA0MDk0LCAwLjAwNDA5NiIsIFwKLSAgICAgICAgICAiMC4wMDQwNDQsIDAuMDA0MDgsIDAuMDA0MDg0LCAwLjAwNDA4NiwgMC4wMDQwODcsIDAuMDA0MDg5LCAwLjAwNDA4OCIsIFwKLSAgICAgICAgICAiMC4wMDQwMzYsIDAuMDA0MDczLCAwLjAwNDA3OSwgMC4wMDQwOCwgMC4wMDQwODEsIDAuMDA0MDgyLCAwLjAwNDA4MiIsIFwKLSAgICAgICAgICAiMC4wMDQwMjIsIDAuMDA0MDYyLCAwLjAwNDA2OCwgMC4wMDQwNywgMC4wMDQwNzIsIDAuMDA0MDcyLCAwLjAwNDA3MiIsIFwKLSAgICAgICAgICAiMC4wMDQwMTMsIDAuMDA0MDU0LCAwLjAwNDA2NSwgMC4wMDQwNjgsIDAuMDA0MDcsIDAuMDA0MDcxLCAwLjAwNDA3MiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUk4pICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDkyMDMyMjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA5MTQyMjI7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwOTIwMzIyOwotICAgIGNsb2NrIDogdHJ1ZTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAzMzEsIDAuMDAwMzMsIDAuMDAwMzMsIDAuMDAwMzMsIDAuMDAwMzMsIDAuMDAwMzMsIDAuMDAwMzMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAzMzMsIDAuMDAwMzMyLCAwLjAwMDMzMiwgMC4wMDAzMzIsIDAuMDAwMzMyLCAwLjAwMDMzMiwgMC4wMDAzMzIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfZmFsbGluZzsKLSAgICAgIHdoZW4gOiAiRCZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzFfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4yMTg3NSwgLTAuMjA3NSwgLTAuMTg4NzUsIC0wLjE4MjUsIC0wLjE4MjUsIC0wLjE5NzUsIC0wLjIxMzc1IiwgXAotICAgICAgICAgICItMC4yMywgLTAuMjE4NzUsIC0wLjIsIC0wLjE5Mzc1LCAtMC4yLCAtMC4yMDg3NSwgLTAuMjI1IiwgXAotICAgICAgICAgICItMC4yNDI1LCAtMC4yMzEyNSwgLTAuMjE4NzUsIC0wLjIwNjI1LCAtMC4yMTI1LCAtMC4yMjEyNSwgLTAuMjM3NSIsIFwKLSAgICAgICAgICAiLTAuMjU1LCAtMC4yNDM3NSwgLTAuMjMxMjUsIC0wLjIyNSwgLTAuMjI1LCAtMC4yNCwgLTAuMjUiLCBcCi0gICAgICAgICAgIi0wLjI2NzUsIC0wLjI1NjI1LCAtMC4yNDM3NSwgLTAuMjM3NSwgLTAuMjM3NSwgLTAuMjUyNSwgLTAuMjY4NzUiLCBcCi0gICAgICAgICAgIi0wLjI5LCAtMC4yNzg3NSwgLTAuMjY2MjUsIC0wLjI2LCAtMC4yNiwgLTAuMjc1LCAtMC4yOTEyNSIsIFwKLSAgICAgICAgICAiLTAuMzExMjUsIC0wLjMsIC0wLjI4NzUsIC0wLjI3NSwgLTAuMjgxMjUsIC0wLjI5LCAtMC4zMDYyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQmU04iOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4zNDIyMTgsIDAuMzUzNjU4LCAwLjM2ODA5OSwgMC4zODEzMSwgMC4zOTQxNTIsIDAuNDE0MTQ1LCAwLjQzMDk1MSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJHIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfZmFsbGluZzsKLSAgICAgIHdoZW4gOiAiRCZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzFfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yNTYyNSwgMC4yNDUsIDAuMjI2MjUsIDAuMjEzNzUsIDAuMjA3NSwgMC4yMjI1LCAwLjI0NSIsIFwKLSAgICAgICAgICAiMC4yNjc1LCAwLjI1NjI1LCAwLjIzNzUsIDAuMjI1LCAwLjIxODc1LCAwLjIzMzc1LCAwLjI1NjI1IiwgXAotICAgICAgICAgICIwLjI4LCAwLjI2ODc1LCAwLjI1LCAwLjIzNzUsIDAuMjMxMjUsIDAuMjQ2MjUsIDAuMjY4NzUiLCBcCi0gICAgICAgICAgIjAuMjkyNSwgMC4yODEyNSwgMC4yNjg3NSwgMC4yNSwgMC4yNSwgMC4yNTg3NSwgMC4yODEyNSIsIFwKLSAgICAgICAgICAiMC4zMDUsIDAuMjkzNzUsIDAuMjgxMjUsIDAuMjY4NzUsIDAuMjYyNSwgMC4yNzEyNSwgMC4yOTM3NSIsIFwKLSAgICAgICAgICAiMC4zMjc1LCAwLjMxNjI1LCAwLjMwMzc1LCAwLjI4NSwgMC4yODUsIDAuMjkzNzUsIDAuMzE2MjUiLCBcCi0gICAgICAgICAgIjAuMzQ4NzUsIDAuMzMxMjUsIDAuMzE4NzUsIDAuMzA2MjUsIDAuMywgMC4zMTUsIDAuMzMxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFNOKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA3MzE4MzQ7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNzMxODM0OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDczMDE0NDsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyNDIsIDAuMDAwMjQyLCAwLjAwMDI0MiwgMC4wMDAyNDIsIDAuMDAwMjQyLCAwLjAwMDI0MiwgMC4wMDAyNDIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyNSwgMC4wMDAyNDUsIDAuMDAwMjQ0LCAwLjAwMDI0NCwgMC4wMDAyNDQsIDAuMDAwMjQzLCAwLjAwMDI0MyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQiOwotICAgICAgc2RmX2NvbmQgOiAiRCA9PSAxJ2IwIjsKLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjIxNjYyOSwgMC4yMjgxOTksIDAuMjQyNDg1LCAwLjI1NjgyLCAwLjI3MTM5MywgMC4yOTQzOTksIDAuMzE0MTciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJlY292ZXJ5X2ZhbGxpbmc7Ci0gICAgICB3aGVuIDogIiFEJlJOIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9STl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHJlY292ZXJ5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzMTI1LCAwLjAyLCAwLjAwMTI1LCAtMC4wMTEyNSwgLTAuMDIzNzUsIC0wLjA0NjI1LCAtMC4wNjEyNSIsIFwKLSAgICAgICAgICAiMC4wMzYyNSwgMC4wMjUsIDAuMDEyNSwgMCwgLTAuMDEyNSwgLTAuMDM1LCAtMC4wNSIsIFwKLSAgICAgICAgICAiMC4wNDg3NSwgMC4wMzc1LCAwLjAyNSwgMC4wMTI1LCAwLCAtMC4wMjI1LCAtMC4wMzc1IiwgXAotICAgICAgICAgICIwLjA2MTI1LCAwLjA1LCAwLjAzNzUsIDAuMDI1LCAwLjAwNjI1LCAtMC4wMSwgLTAuMDI1IiwgXAotICAgICAgICAgICIwLjA3Mzc1LCAwLjA2MjUsIDAuMDUsIDAuMDMxMjUsIDAuMDE4NzUsIDAuMDAyNSwgLTAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4wOTYyNSwgMC4wODUsIDAuMDY2MjUsIDAuMDUzNzUsIDAuMDQxMjUsIDAuMDE4NzUsIDAuMDAzNzUiLCBcCi0gICAgICAgICAgIjAuMTExMjUsIDAuMSwgMC4wODEyNSwgMC4wNjg3NSwgMC4wNTYyNSwgMC4wMzM3NSwgMC4wMTg3NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJlY292ZXJ5X3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUciOwotICAgICAgc2RmX2NvbmQgOiAiRyA9PSAxJ2IwIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChyZWNvdmVyeV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjUsIDAuMDIsIDAuMDA3NSwgLTAuMDA1LCAtMC4wMTEyNSwgLTAuMDI3NSwgLTAuMDM2MjUiLCBcCi0gICAgICAgICAgIjAuMDM2MjUsIDAuMDMxMjUsIDAuMDE4NzUsIDAuMDA2MjUsIDAsIC0wLjAxNjI1LCAtMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMDQ4NzUsIDAuMDQzNzUsIDAuMDMxMjUsIDAuMDE4NzUsIDAuMDEyNSwgLTAuMDAzNzUsIC0wLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMDYxMjUsIDAuMDU2MjUsIDAuMDQzNzUsIDAuMDMxMjUsIDAuMDI1LCAwLjAwODc1LCAwIiwgXAotICAgICAgICAgICIwLjA3Mzc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMjEyNSwgMC4wMTI1IiwgXAotICAgICAgICAgICIwLjA5NjI1LCAwLjA4NSwgMC4wNzI1LCAwLjA2LCAwLjA1Mzc1LCAwLjAzNzUsIDAuMDI4NzUiLCBcCi0gICAgICAgICAgIjAuMTExMjUsIDAuMSwgMC4wODc1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNTI1LCAwLjA0Mzc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkciOwotICAgICAgdGltaW5nX3R5cGUgOiByZW1vdmFsX2ZhbGxpbmc7Ci0gICAgICB3aGVuIDogIiFEJlJOIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9STl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHJlbW92YWxfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQzNzUsIDAuMDU1LCAwLjA2NzUsIDAuMDgsIDAuMDk4NzUsIDAuMTIxMjUsIDAuMTM2MjUiLCBcCi0gICAgICAgICAgIjAuMDMyNSwgMC4wNDM3NSwgMC4wNTYyNSwgMC4wNjg3NSwgMC4wODc1LCAwLjExLCAwLjEyNSIsIFwKLSAgICAgICAgICAiMC4wMiwgMC4wMzEyNSwgMC4wNDM3NSwgMC4wNTYyNSwgMC4wNzUsIDAuMDk3NSwgMC4xMTI1IiwgXAotICAgICAgICAgICIwLjAwNzUsIDAuMDE4NzUsIDAuMDMxMjUsIDAuMDQzNzUsIDAuMDYyNSwgMC4wODUsIDAuMSIsIFwKLSAgICAgICAgICAiLTAuMDA1LCAwLjAwNjI1LCAwLjAxODc1LCAwLjAzMTI1LCAwLjA1LCAwLjA3MjUsIDAuMDg3NSIsIFwKLSAgICAgICAgICAiLTAuMDIxMjUsIC0wLjAxLCAwLjAwMjUsIDAuMDE1LCAwLjAzMzc1LCAwLjA1NjI1LCAwLjA3MTI1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDI1LCAtMC4wMTI1LCAwLCAwLjAxODc1LCAwLjA0MTI1LCAwLjA1NjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIHRpbWluZ190eXBlIDogcmVtb3ZhbF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFHIjsKLSAgICAgIHNkZl9jb25kIDogIkcgPT0gMSdiMCI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQocmVtb3ZhbF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTg3NSwgMC4wMywgMC4wNDg3NSwgMC4wNjEyNSwgMC4wNjc1LCAwLjA5LCAwLjEwNSIsIFwKLSAgICAgICAgICAiMC4wMDc1LCAwLjAxODc1LCAwLjAzNzUsIDAuMDUsIDAuMDYyNSwgMC4wNzg3NSwgMC4wOTM3NSIsIFwKLSAgICAgICAgICAiLTAuMDA1LCAwLjAwNjI1LCAwLjAyNSwgMC4wMzc1LCAwLjA1LCAwLjA2NjI1LCAwLjA4MTI1IiwgXAotICAgICAgICAgICItMC4wMTEyNSwgMCwgMC4wMTI1LCAwLjAyNSwgMC4wMzc1LCAwLjA1Mzc1LCAwLjA2ODc1IiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDEyNSwgMCwgMC4wMTI1LCAwLjAyNSwgMC4wNDEyNSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiLTAuMDQsIC0wLjAyODc1LCAtMC4wMTYyNSwgLTAuMDAzNzUsIDAuMDA4NzUsIDAuMDI1LCAwLjA0IiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA0Mzc1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLjAxLCAwLjAyNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBUTEFUU1JYNCAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoVExBVFNSWDQpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC41OTI4Mzg7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgbGF0Y2ggKFFJTlQsTjUpIHsKLSAgICBkYXRhX2luIDogIkQiOwotICAgIGVuYWJsZSA6ICIoRyBSTikiOwotICAgIHByZXNldCA6ICIoIVNOKSI7Ci0gIH0KLSAgcGluKEQpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDU4MTMxMjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA1Nzk0NTU7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNTgxMzEyOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDE1OSwgMC4wMDAxNjEsIDAuMDAwMTYyLCAwLjAwMDE2MiwgMC4wMDAxNjIsIDAuMDAwMTYyLCAwLjAwMDE2MiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJHIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9mYWxsaW5nOwotICAgICAgd2hlbiA6ICJSTiZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJSTl9FUV8xX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDUsIC0wLjAzODc1LCAtMC4wMiwgLTAuMDA3NSwgMC4wMTEyNSwgMC4wMzM3NSwgMC4wNTUiLCBcCi0gICAgICAgICAgIi0wLjA2MTI1LCAtMC4wNSwgLTAuMDMxMjUsIC0wLjAxODc1LCAwLCAwLjAyMjUsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDczNzUsIC0wLjA2MjUsIC0wLjA0Mzc1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIDAuMDEsIDAuMDI1IiwgXAotICAgICAgICAgICItMC4wODYyNSwgLTAuMDc1LCAtMC4wNjI1LCAtMC4wNDM3NSwgLTAuMDMxMjUsIC0wLjAwODc1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjA5ODc1LCAtMC4wODc1LCAtMC4wNzUsIC0wLjA1NjI1LCAtMC4wNDM3NSwgLTAuMDIxMjUsIDAiLCBcCi0gICAgICAgICAgIi0wLjEyMTI1LCAtMC4xMSwgLTAuMDk3NSwgLTAuMDc4NzUsIC0wLjA2NjI1LCAtMC4wNDM3NSwgLTAuMDIyNSIsIFwKLSAgICAgICAgICAiLTAuMTQyNSwgLTAuMTMxMjUsIC0wLjExMjUsIC0wLjEsIC0wLjA4NzUsIC0wLjA1ODc1LCAtMC4wNDM3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjA4NzUsIC0wLjA3NjI1LCAtMC4wNjM3NSwgLTAuMDUxMjUsIC0wLjA0NSwgLTAuMDI4NzUsIC0wLjAyIiwgXAotICAgICAgICAgICItMC4wOTg3NSwgLTAuMDg3NSwgLTAuMDc1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDQsIC0wLjAzMTI1IiwgXAotICAgICAgICAgICItMC4xMTEyNSwgLTAuMSwgLTAuMDg3NSwgLTAuMDc1LCAtMC4wNjg3NSwgLTAuMDUyNSwgLTAuMDQzNzUiLCBcCi0gICAgICAgICAgIi0wLjEyMzc1LCAtMC4xMTI1LCAtMC4xLCAtMC4wODc1LCAtMC4wODEyNSwgLTAuMDY1LCAtMC4wNTYyNSIsIFwKLSAgICAgICAgICAiLTAuMTM2MjUsIC0wLjEyNSwgLTAuMTEyNSwgLTAuMSwgLTAuMDkzNzUsIC0wLjA3NzUsIC0wLjA2ODc1IiwgXAotICAgICAgICAgICItMC4xNTI1LCAtMC4xNDEyNSwgLTAuMTI4NzUsIC0wLjEyMjUsIC0wLjExLCAtMC4wOTM3NSwgLTAuMDg1IiwgXAotICAgICAgICAgICItMC4xNzM3NSwgLTAuMTYyNSwgLTAuMTUsIC0wLjEzNzUsIC0wLjEyNSwgLTAuMTE1LCAtMC4xIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkciOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9mYWxsaW5nOwotICAgICAgd2hlbiA6ICJSTiZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJSTl9FUV8xX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg3NSwgMC4wNzYyNSwgMC4wNTc1LCAwLjAzODc1LCAwLjAyNjI1LCAwLjAwMzc1LCAtMC4wMTc1IiwgXAotICAgICAgICAgICIwLjA5ODc1LCAwLjA4NzUsIDAuMDY4NzUsIDAuMDUsIDAuMDM3NSwgMC4wMTUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICIwLjExMTI1LCAwLjEsIDAuMDgxMjUsIDAuMDY4NzUsIDAuMDUsIDAuMDI3NSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiMC4xMjM3NSwgMC4xMTI1LCAwLjA5Mzc1LCAwLjA4MTI1LCAwLjA2MjUsIDAuMDQsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMTM2MjUsIDAuMTI1LCAwLjEwNjI1LCAwLjA5Mzc1LCAwLjA3NSwgMC4wNTI1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICIwLjE1ODc1LCAwLjE0NzUsIDAuMTI4NzUsIDAuMTE2MjUsIDAuMDk3NSwgMC4wNzUsIDAuMDUzNzUiLCBcCi0gICAgICAgICAgIjAuMTczNzUsIDAuMTYyNSwgMC4xNSwgMC4xMzEyNSwgMC4xMTg3NSwgMC4wOSwgMC4wNzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMzEyNSwgMC4xMiwgMC4xMDc1LCAwLjA5NSwgMC4wODg3NSwgMC4wNzI1LCAwLjA2Mzc1IiwgXAotICAgICAgICAgICIwLjE0MjUsIDAuMTMxMjUsIDAuMTE4NzUsIDAuMTA2MjUsIDAuMSwgMC4wODM3NSwgMC4wNzUiLCBcCi0gICAgICAgICAgIjAuMTU1LCAwLjE0Mzc1LCAwLjEzMTI1LCAwLjExODc1LCAwLjExMjUsIDAuMDk2MjUsIDAuMDg3NSIsIFwKLSAgICAgICAgICAiMC4xNjc1LCAwLjE1NjI1LCAwLjE0Mzc1LCAwLjEzMTI1LCAwLjExODc1LCAwLjEwODc1LCAwLjEiLCBcCi0gICAgICAgICAgIjAuMTgsIDAuMTY4NzUsIDAuMTU2MjUsIDAuMTQzNzUsIDAuMTMxMjUsIDAuMTIxMjUsIDAuMTEyNSIsIFwKLSAgICAgICAgICAiMC4xOTYyNSwgMC4xODUsIDAuMTcyNSwgMC4xNiwgMC4xNTM3NSwgMC4xMzc1LCAwLjEyODc1IiwgXAotICAgICAgICAgICIwLjIxMTI1LCAwLjIsIDAuMTg3NSwgMC4xNzUsIDAuMTY4NzUsIDAuMTUyNSwgMC4xNDM3NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRykgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNTc4MjgzOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDU3ODI4MzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA0ODk0NTU7Ci0gICAgY2xvY2sgOiB0cnVlOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTcwNCwgMC4wMDE2OTQsIDAuMDAxNjg0LCAwLjAwMTY4LCAwLjAwMTY3NiwgMC4wMDE2NzEsIDAuMDAxNjciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxODgsIDAuMDAwMTg4LCAwLjAwMDE4OCwgMC4wMDAxODgsIDAuMDAwMTg4LCAwLjAwMDE4OCwgMC4wMDAxODgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQmU04iOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC40NDAyNzcsIDAuNDUwOTAzLCAwLjQ2MzUxMSwgMC40NzcwODYsIDAuNDkwNDY4LCAwLjUxMzA3NSwgMC41MzI1NjYiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFEpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC41MzE3NTE7Ci0gICAgZnVuY3Rpb24gOiAiUUlOVCI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yNTAxMjEsIDAuMzc3NTk5LCAwLjUwNTQyMywgMC41OTc1NDEsIDAuNzQyNzIzLCAwLjg3Mjc2MSwgMS4wNTQ5NSIsIFwKLSAgICAgICAgICAiMC4yNjE4NzMsIDAuMzg5MzQzLCAwLjUxNywgMC42MDkzMDEsIDAuNzU0NTM3LCAwLjg4NDU1NiwgMS4wNjY2OCIsIFwKLSAgICAgICAgICAiMC4yNzYxMDYsIDAuNDAzNTg4LCAwLjUzMTgyOCwgMC42MjM0NzQsIDAuNzY4NzYzLCAwLjg5ODc4NiwgMS4wODA5MSIsIFwKLSAgICAgICAgICAiMC4yODk3OTMsIDAuNDE3MTMyLCAwLjU0NTQzOCwgMC42MzcxMzcsIDAuNzgyNDI1LCAwLjkxMjQ1MSwgMS4wOTQ1OCIsIFwKLSAgICAgICAgICAiMC4zMDM0MjQsIDAuNDMwOTA2LCAwLjU1ODcyMiwgMC42NTA0MzUsIDAuNzk2MTA4LCAwLjkyNDI5NiwgMS4xMDU5NSIsIFwKLSAgICAgICAgICAiMC4zMjU2MywgMC40NTI5NTgsIDAuNTgwNjQzLCAwLjY3MzAzLCAwLjgxODE2MSwgMC45NDgxOSwgMS4xMzA0IiwgXAotICAgICAgICAgICIwLjM0NDM3MywgMC40NzE3NTgsIDAuNTk5OTUxLCAwLjY5MTg5NCwgMC44MzgwNDUsIDAuOTY2MzM5LCAxLjE0OTI2Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDUxMDk0LCAwLjMxMDAwMywgMC41NzA3MDQsIDAuNzYxOTA4LCAxLjA1NzAxLCAxLjMxNzk3LCAxLjcwMTQ4IiwgXAotICAgICAgICAgICIwLjA1MTQ1NiwgMC4zMDk5NTMsIDAuNTcyNDYyLCAwLjc2MTkwNywgMS4wNTU3OSwgMS4zMTkwNywgMS43MDE0NSIsIFwKLSAgICAgICAgICAiMC4wNTEwMDYsIDAuMzA5ODQzLCAwLjU2OTcsIDAuNzYxOTA2LCAxLjA1NTI2LCAxLjMyMDEyLCAxLjcwMTQ1IiwgXAotICAgICAgICAgICIwLjA1MTM3LCAwLjMxMDI5OSwgMC41NzM5ODEsIDAuNzYxOTExLCAxLjA1NTUyLCAxLjMxOTgsIDEuNzAxNDUiLCBcCi0gICAgICAgICAgIjAuMDUxMDA4LCAwLjMwOTk2NSwgMC41NzA4MzEsIDAuNzYxODUzLCAxLjA1OTU4LCAxLjMyMjU2LCAxLjY5OTQ4IiwgXAotICAgICAgICAgICIwLjA1MTA4MiwgMC4zMDk3NDYsIDAuNTcwNDk3LCAwLjc1ODk0MSwgMS4wNTcwOCwgMS4zMTcyOCwgMS43MDE0NSIsIFwKLSAgICAgICAgICAiMC4wNTE0MzUsIDAuMzA5MDcsIDAuNTczNTg3LCAwLjc2MTg5OCwgMS4wNjI2NywgMS4zMjU2OCwgMS43MDE0NCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI5MjgzNSwgMC40MzgzNjMsIDAuNTg1MzM1LCAwLjY5MDU1OCwgMC44NTYzNDksIDEuMDA1MzgsIDEuMjEwOTUiLCBcCi0gICAgICAgICAgIjAuMzA0Mjc5LCAwLjQ0OTgsIDAuNTk2NzU3LCAwLjcwMTYxNywgMC44NjgwMjksIDEuMDEzNDQsIDEuMjI2NjEiLCBcCi0gICAgICAgICAgIjAuMzE3MTc5LCAwLjQ2Mjg4MSwgMC42MDk4NDYsIDAuNzE0NTA3LCAwLjg4MDgxNSwgMS4wMjk4MSwgMS4yMzUyMyIsIFwKLSAgICAgICAgICAiMC4zMjk3MzMsIDAuNDc1MjE1LCAwLjYyMjE4LCAwLjcyNzAyMiwgMC44OTM0ODcsIDEuMDM4ODcsIDEuMjUyMDMiLCBcCi0gICAgICAgICAgIjAuMzQxNzk4LCAwLjQ4NzY3MywgMC42MzQzNTgsIDAuNzM5NDEzLCAwLjkwNTQxMiwgMS4wNTEwMywgMS4yNjQyMiIsIFwKLSAgICAgICAgICAiMC4zNjEwODcsIDAuNTA2NzcsIDAuNjUzNzQ5LCAwLjc1NzEwOCwgMC45MjQ3NDQsIDEuMDcxNDMsIDEuMjgzNjEiLCBcCi0gICAgICAgICAgIjAuMzc3OTY1LCAwLjUyMzUwMSwgMC42NzA0NzQsIDAuNzc1NzEsIDAuOTQxNDkyLCAxLjA5MDUyLCAxLjI5NjA4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU3MzQ4LCAwLjM0NDUzMiwgMC42MzU2NDYsIDAuODQzOTA2LCAxLjE3NjQ4LCAxLjQ2NjA1LCAxLjg4MzM4IiwgXAotICAgICAgICAgICIwLjA1NzMzNSwgMC4zNDQ1MTEsIDAuNjM1NjIzLCAwLjg0NDI5LCAxLjE3NTc2LCAxLjQ2MzU3LCAxLjg4MTE3IiwgXAotICAgICAgICAgICIwLjA1NzUxLCAwLjM0NDYzNiwgMC42MzU3ODUsIDAuODQzOTEsIDEuMTc2ODcsIDEuNDY3MjgsIDEuODgwODMiLCBcCi0gICAgICAgICAgIjAuMDU3MzYzLCAwLjM0NDMzNiwgMC42MzU2MTcsIDAuODQ0MjE5LCAxLjE3NTU5LCAxLjQ2Mzg4LCAxLjg4MTA4IiwgXAotICAgICAgICAgICIwLjA1NzUzOCwgMC4zNDQ5ODQsIDAuNjM1NTU5LCAwLjg0NDE4MSwgMS4xNzYzNCwgMS40NjQ0OSwgMS44ODExMyIsIFwKLSAgICAgICAgICAiMC4wNTc1MDMsIDAuMzQ1NTM0LCAwLjYzNTY4NiwgMC44NDQ0MDMsIDEuMTc2ODQsIDEuNDY2MzEsIDEuODgxMzEiLCBcCi0gICAgICAgICAgIjAuMDU3Mjg2LCAwLjM0NDM4NywgMC42MzU2MDEsIDAuODQzNzk0LCAxLjE3NjM2LCAxLjQ2NTk3LCAxLjg4MjU5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkciOwotICAgICAgdGltaW5nX3NlbnNlIDogbm9uX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiByaXNpbmdfZWRnZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC40MTg0NzEsIDAuNTQ1ODMxLCAwLjY3Mzk0NSwgMC43NjQ2MzcsIDAuOTEwNzQ4LCAxLjA0MDE2LCAxLjIyMzM4IiwgXAotICAgICAgICAgICIwLjQyODUwNSwgMC41NTYwMTUsIDAuNjg0MjY2LCAwLjc3NTkyOCwgMC45MjEwNDUsIDEuMDQ4ODIsIDEuMjMyMDkiLCBcCi0gICAgICAgICAgIjAuNDQxNzEzLCAwLjU2OTA5LCAwLjY5NzIxMywgMC43ODkwNjcsIDAuOTM1MzUsIDEuMDYyMDMsIDEuMjQ2NjciLCBcCi0gICAgICAgICAgIjAuNDU1MDE4LCAwLjU4MjM2MiwgMC43MTAxMTIsIDAuODAyMzMyLCAwLjk0NzU3OCwgMS4wNzY3LCAxLjI1OTk1IiwgXAotICAgICAgICAgICIwLjQ2ODU4OSwgMC41OTYwOCwgMC43MjM4NTQsIDAuODE1MDU4LCAwLjk2MTExOCwgMS4wOTEwNCwgMS4yNzM0MyIsIFwKLSAgICAgICAgICAiMC40OTEzNSwgMC42MTg4NjEsIDAuNzQ2NjI3LCAwLjgzNzk1MSwgMC45ODQwMTMsIDEuMTExODksIDEuMjk1MjIiLCBcCi0gICAgICAgICAgIjAuNTExMDcyLCAwLjYzODYwOCwgMC43NjYzODEsIDAuODU4NDM0LCAxLjAwMzczLCAxLjEzMzc0LCAxLjMxNTg1Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDUxMzE2LCAwLjMxMDQzMywgMC41Njk2MTcsIDAuNzU5NjM3LCAxLjA1NjM0LCAxLjMyMTQyLCAxLjcwMTM0IiwgXAotICAgICAgICAgICIwLjA1MTA4NSwgMC4zMDk4ODksIDAuNTczOTg2LCAwLjc2MTg5OSwgMS4wNTcwOSwgMS4zMjAzOCwgMS43MDAzOCIsIFwKLSAgICAgICAgICAiMC4wNTEzMzcsIDAuMzEwMTUsIDAuNTczNzUsIDAuNzYxOTA2LCAxLjA2MjY0LCAxLjMxNDcyLCAxLjcwMTMzIiwgXAotICAgICAgICAgICIwLjA1MTQxMywgMC4zMDg5ODksIDAuNTcxNjg3LCAwLjc2MTkxMSwgMS4wNTYyMiwgMS4zMTkyNiwgMS43MDEzNCIsIFwKLSAgICAgICAgICAiMC4wNTEzOTgsIDAuMzA5ODkxLCAwLjU3MTE0NiwgMC43NjA4NzEsIDEuMDU5MTUsIDEuMzE0NywgMS43MDEzNSIsIFwKLSAgICAgICAgICAiMC4wNTEyODksIDAuMzA5ODk1LCAwLjU3MTI2NywgMC43NTY5NjcsIDEuMDU5ODUsIDEuMzIxNDQsIDEuNjk5MjQiLCBcCi0gICAgICAgICAgIjAuMDUxMzE1LCAwLjMwOTg0NCwgMC41NjkwNTYsIDAuNzYxODk4LCAxLjA1NDkxLCAxLjMyMzM5LCAxLjcwMTM3Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuNDQwMjc3LCAwLjU4NTg3NiwgMC43MzI3MywgMC44Mzc4NjMsIDEuMDAzODgsIDEuMTQ5OTgsIDEuMzYyNjUiLCBcCi0gICAgICAgICAgIjAuNDUwOTAzLCAwLjU5NjU1NywgMC43NDM0OSwgMC44NDcwMSwgMS4wMTQ1NiwgMS4xNjEzLCAxLjM3MzMyIiwgXAotICAgICAgICAgICIwLjQ2MzUxMSwgMC42MDkzNzksIDAuNzU2MDkzLCAwLjg1OTU5NywgMS4wMjcxOSwgMS4xNzM4OSwgMS4zODU5MyIsIFwKLSAgICAgICAgICAiMC40NzcwODYsIDAuNjIyNzg1LCAwLjc2OTMzOSwgMC44NzQ0OTIsIDEuMDQwNzksIDEuMTg2MjcsIDEuMzk5MzIiLCBcCi0gICAgICAgICAgIjAuNDkwNDY4LCAwLjYzNTk2LCAwLjc4Mjg4MSwgMC44ODc4MzcsIDEuMDU0MTgsIDEuMTk5ODIsIDEuNDEyNyIsIFwKLSAgICAgICAgICAiMC41MTMwNzUsIDAuNjU4NTU2LCAwLjgwNDU3MSwgMC45MTA0MzksIDEuMDc2NzksIDEuMjIyNCwgMS40MzUzIiwgXAotICAgICAgICAgICIwLjUzMjU2NiwgMC42NzgwNjIsIDAuODI0OTc1LCAwLjkyOTkzOSwgMS4wOTYyOCwgMS4yNDE5MiwgMS40NTQ4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU3NDkyLCAwLjM0NDE2OSwgMC42MzUzMTksIDAuODQzODQzLCAxLjE3NTcxLCAxLjQ2NzIxLCAxLjg4MDE2IiwgXAotICAgICAgICAgICIwLjA1NzYzNywgMC4zNDQ1OTIsIDAuNjM1NzkzLCAwLjg0MjA3OCwgMS4xNzY4MSwgMS40NjU2NSwgMS44ODE1NSIsIFwKLSAgICAgICAgICAiMC4wNTc2NzIsIDAuMzQ0OTkzLCAwLjYzNTc2LCAwLjg0MjQ1NywgMS4xNzY3OCwgMS40NjU3NCwgMS44ODE1OSIsIFwKLSAgICAgICAgICAiMC4wNTc2MzMsIDAuMzQ0NTcyLCAwLjYzNDg2OCwgMC44NDMzNjksIDEuMTc2MjQsIDEuNDY1MzksIDEuODgyMjMiLCBcCi0gICAgICAgICAgIjAuMDU3NiwgMC4zNDQyMjIsIDAuNjM1MTg3LCAwLjg0MzMxNywgMS4xNzY1MSwgMS40NjUzNiwgMS44ODIzNSIsIFwKLSAgICAgICAgICAiMC4wNTcyMjMsIDAuMzQ0MTI5LCAwLjYzNDM4NSwgMC44NDMzMjcsIDEuMTc2NDUsIDEuNDY1ODMsIDEuODgyMzQiLCBcCi0gICAgICAgICAgIjAuMDU3MjI4LCAwLjM0NDI0NywgMC42MzUxNzUsIDAuODQzMzE1LCAxLjE3NjUzLCAxLjQ2NTMxLCAxLjg4MjM1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiByaXNpbmdfZWRnZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC40MjQwNjQsIDAuNTUxNTM4LCAwLjY3OTgzNywgMC43NzAyNzgsIDAuOTE2Nzg5LCAxLjA0NTk0LCAxLjIyODkxIiwgXAotICAgICAgICAgICIwLjQzNTkyLCAwLjU2MzM2OSwgMC42OTExNTQsIDAuNzgyMjk3LCAwLjkyODQwOCwgMS4wNTgzMiwgMS4yNDA2OSIsIFwKLSAgICAgICAgICAiMC40NDk0OTUsIDAuNTc2OTksIDAuNzA0NzY3LCAwLjc5NjE2OCwgMC45NDE5OTgsIDEuMDcxOTQsIDEuMjU0MzMiLCBcCi0gICAgICAgICAgIjAuNDYzMzMsIDAuNTkwNjk3LCAwLjcxOTIyNCwgMC44MTA2NjMsIDAuOTU2MDA2LCAxLjA4NjAxLCAxLjI2ODEyIiwgXAotICAgICAgICAgICIwLjQ3NjU5NCwgMC42MDQwNjIsIDAuNzMyMTAxLCAwLjgyMzk1MywgMC45NjkxMDgsIDEuMDk5MTEsIDEuMjgxMyIsIFwKLSAgICAgICAgICAiMC40OTg3OTYsIDAuNjI2MDk4LCAwLjc1NDAxNSwgMC44NDQ5NSwgMC45OTE1NTMsIDEuMTIxMDcsIDEuMzAzNzIiLCBcCi0gICAgICAgICAgIjAuNTE3Njg0LCAwLjY0NTA1NSwgMC43NzMxNjIsIDAuODY1LCAxLjAxMTYxLCAxLjEzOTQzLCAxLjMyMjU5Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDUxMzU5LCAwLjMwOTkzOCwgMC41NzM5ODgsIDAuNzU4NzE1LCAxLjA1MzM4LCAxLjMxODAxLCAxLjcwMTM1IiwgXAotICAgICAgICAgICIwLjA1MTMzNSwgMC4zMDk4OTIsIDAuNTcwOTYyLCAwLjc2MDU0MSwgMS4wNTkxNywgMS4zMTQ3MiwgMS43MDEzNSIsIFwKLSAgICAgICAgICAiMC4wNTE0MDIsIDAuMzA5ODk3LCAwLjU3MTA4NSwgMC43NTk1OTQsIDEuMDU5MDYsIDEuMzE0NzMsIDEuNzAxMzUiLCBcCi0gICAgICAgICAgIjAuMDUxNTMxLCAwLjMwOTQxNiwgMC41NzIwODIsIDAuNzYxOTA1LCAxLjA1NDMzLCAxLjMyMDYxLCAxLjcwMTM2IiwgXAotICAgICAgICAgICIwLjA1MTM0OSwgMC4zMDk5NDQsIDAuNTczODIsIDAuNzYxOTA2LCAxLjA1NjczLCAxLjMxNzE5LCAxLjcwMTM4IiwgXAotICAgICAgICAgICIwLjA1MTExMywgMC4zMDkxNDQsIDAuNTY5OTM1LCAwLjc1OTYxMiwgMS4wNTMxMSwgMS4zMTI3MywgMS43MDEzMyIsIFwKLSAgICAgICAgICAiMC4wNTEzNTMsIDAuMzEwNDMyLCAwLjU3MDE2OCwgMC43NTUyNDUsIDEuMDU3MzEsIDEuMzIxMzYsIDEuNzAxMzQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUk4iOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGZhbGxpbmdfZWRnZTsKLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zOTYzNjEsIDAuNTQyMDUsIDAuNjg4Nzk2LCAwLjc5MzY5OSwgMC45NTk4MSwgMS4xMDUyNiwgMS4zMTc4MiIsIFwKLSAgICAgICAgICAiMC40MDc3MTksIDAuNTUzMjIxLCAwLjY5OTMyMSwgMC44MDUwMjYsIDAuOTcxMjQsIDEuMTE2ODYsIDEuMzI5MTYiLCBcCi0gICAgICAgICAgIjAuNDIxOTYzLCAwLjU2NzM2NywgMC43MTQzMzYsIDAuODE5MzM2LCAwLjk4NTI1MiwgMS4xMzA5LCAxLjM0MzQiLCBcCi0gICAgICAgICAgIjAuNDM2OTE2LCAwLjU4MjM4OCwgMC43MjkzMiwgMC44MzQxNDUsIDEuMDAwNTIsIDEuMTQ2MTQsIDEuMzU4MzYiLCBcCi0gICAgICAgICAgIjAuNDUxODUyLCAwLjU5NzU0NywgMC43NDQxMDMsIDAuODQ5MTcsIDEuMDE1MzgsIDEuMTYxMDEsIDEuMzczMjkiLCBcCi0gICAgICAgICAgIjAuNDc1MDQzLCAwLjYyMDY3MSwgMC43Njc2MDgsIDAuODcxMzE3LCAxLjAzODYsIDEuMTg3MzksIDEuMzkyOTciLCBcCi0gICAgICAgICAgIjAuNDk1NDkxLCAwLjY0MTE2NywgMC43ODcwODMsIDAuODkyODU0LCAxLjA1ODg5LCAxLjIwNDU3LCAxLjQxNjkyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU3NTM1LCAwLjM0NTU5MiwgMC42MzU4MTMsIDAuODQ0NTAzLCAxLjE3Njg3LCAxLjQ2Nzk1LCAxLjg4MzkxIiwgXAotICAgICAgICAgICIwLjA1NzUwOSwgMC4zNDU2MDEsIDAuNjM1NzQ5LCAwLjg0NDQ2NywgMS4xNzY2MSwgMS40NjgxNSwgMS44ODM1NiIsIFwKLSAgICAgICAgICAiMC4wNTc1MjcsIDAuMzQ1NDkyLCAwLjYzNTgxMywgMC44NDQyMjYsIDEuMTc2ODQsIDEuNDY3NzgsIDEuODgzNjQiLCBcCi0gICAgICAgICAgIjAuMDU3NTAxLCAwLjM0NDY5MiwgMC42MzU3MTgsIDAuODQ0MzEsIDEuMTc1ODgsIDEuNDY2ODUsIDEuODg0MjciLCBcCi0gICAgICAgICAgIjAuMDU3NTEyLCAwLjM0NDg0OCwgMC42MzU3NzYsIDAuODQ0NDkxLCAxLjE3NjY1LCAxLjQ2ODIsIDEuODgzNTUiLCBcCi0gICAgICAgICAgIjAuMDU3NTA5LCAwLjM0NDk4NCwgMC42MzU3NzEsIDAuODQ0MjI3LCAxLjE3Njg2LCAxLjQ2NzcyLCAxLjg4MzUiLCBcCi0gICAgICAgICAgIjAuMDU3NTQ0LCAwLjM0NTUsIDAuNjM1NzU1LCAwLjg0NDQyNCwgMS4xNzY4NywgMS40Njc3NSwgMS44ODQ2NCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcHJlc2V0OwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExNTc4MywgMC4yNDMyMSwgMC4zNzExNzcsIDAuNDYzMDMsIDAuNjA4NTU0LCAwLjczNzM0OCwgMC45MjA0NDciLCBcCi0gICAgICAgICAgIjAuMTI3MjIzLCAwLjI1NDc0MSwgMC4zODI1OTksIDAuNDc0NDIyLCAwLjYyMDk4MiwgMC43NDg1NywgMC45MzE5OTEiLCBcCi0gICAgICAgICAgIjAuMTQyMDU0LCAwLjI2OTU0OCwgMC4zOTczNzksIDAuNDg5MTczLCAwLjYzNTYyNiwgMC43NjM1OTIsIDAuOTQ2OTA0IiwgXAotICAgICAgICAgICIwLjE1NjcyOSwgMC4yODQxOTMsIDAuNDExOTEyLCAwLjUwMzg1MywgMC42NDk2MTIsIDAuNzc4MTgzLCAwLjk2MTMwMSIsIFwKLSAgICAgICAgICAiMC4xNzE1NTYsIDAuMjk5MDMsIDAuNDI2OTI0LCAwLjUxODQzMywgMC42NjQ0MzksIDAuNzkyODQzLCAwLjk3NTc3OSIsIFwKLSAgICAgICAgICAiMC4xOTQ4MzMsIDAuMzIyMjg1LCAwLjQ0OTk5MSwgMC41NDE5MTEsIDAuNjg3OTg5LCAwLjgxNjI1OCwgMC45OTk0MDgiLCBcCi0gICAgICAgICAgIjAuMjE0MDY5LCAwLjM0MTQ2NCwgMC40NjkyMjEsIDAuNTYxMjU1LCAwLjcwNjk0NSwgMC44MzU1NDMsIDEuMDE5MDMiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTEzMjQsIDAuMzEwMDM3LCAwLjU3MjQ0LCAwLjc2MTg4NSwgMS4wNTc5MiwgMS4zMjU0MiwgMS43MDExNiIsIFwKLSAgICAgICAgICAiMC4wNTExNTIsIDAuMzA5ODg3LCAwLjU3MjUxMSwgMC43NjE4OTMsIDEuMDYyMywgMS4zMjU1MywgMS43MDEwNyIsIFwKLSAgICAgICAgICAiMC4wNTE0NDEsIDAuMzA5OTgxLCAwLjU3MjUyMiwgMC43NjE4OTksIDEuMDYyMzEsIDEuMzI1NDcsIDEuNzAxMzIiLCBcCi0gICAgICAgICAgIjAuMDUxMzg5LCAwLjMwOTkyNywgMC41NzI0NDcsIDAuNzYxOTEsIDEuMDYxMDIsIDEuMzI1NDQsIDEuNzAxMTgiLCBcCi0gICAgICAgICAgIjAuMDUxMzIzLCAwLjMwOTkwOSwgMC41NzI0NTgsIDAuNzU4NTY1LCAxLjA2MDgzLCAxLjMyNTU4LCAxLjcwMTQ0IiwgXAotICAgICAgICAgICIwLjA1MTMyNywgMC4zMTAwMzcsIDAuNTcyNDk5LCAwLjc2MTg1OSwgMS4wNjIwNSwgMS4zMjUzOCwgMS43MDE1OCIsIFwKLSAgICAgICAgICAiMC4wNTEzNTUsIDAuMzEwMDEsIDAuNTcyNTUsIDAuNzYxODY5LCAxLjA2MjI4LCAxLjMyNDI5LCAxLjcwMTExIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTg1ODQ4LCAwLjMzMTIyOSwgMC40NzgyNjYsIDAuNTgzMjQ3LCAwLjc0OTE1NywgMC44OTQ4NDksIDEuMTA4MDciLCBcCi0gICAgICAgICAgIjAuMTk3MTcsIDAuMzQyNjczLCAwLjQ4OTYzMSwgMC41OTQ0ODgsIDAuNzYwODk5LCAwLjkwNjMwNiwgMS4xMTk0OSIsIFwKLSAgICAgICAgICAiMC4yMTAwOTYsIDAuMzU1NzE5LCAwLjUwMjc0NCwgMC42MDc3MzgsIDAuNzczNjUxLCAwLjkxOTg4NiwgMS4xMzI1NSIsIFwKLSAgICAgICAgICAiMC4yMjMyMzYsIDAuMzY4NjAzLCAwLjUxNDYzLCAwLjYyMDYzMywgMC43ODY2MDcsIDAuOTMyMjU0LCAxLjE0NTQ3IiwgXAotICAgICAgICAgICIwLjIzNjExMiwgMC4zODE3ODQsIDAuNTI4NzczLCAwLjYzMzgyOCwgMC43OTk3MDQsIDAuOTQ1Nzk3LCAxLjE1ODYyIiwgXAotICAgICAgICAgICIwLjI1NzQ2MiwgMC40MDI3NzYsIDAuNTQ5ODMyLCAwLjY1NDU0MiwgMC44MjEwMjYsIDAuOTY2NDQ3LCAxLjE3OTYyIiwgXAotICAgICAgICAgICIwLjI3NTY5NSwgMC40MjE0NjksIDAuNTY3NjUsIDAuNjcyNzUxLCAwLjgzOTE3NiwgMC45ODQ1NjcsIDEuMTk3NzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTc1NDIsIDAuMzQ0NTgxLCAwLjYzNTk3NywgMC44NDQ3NzIsIDEuMTc2NzUsIDEuNDY2MTYsIDEuODgxOTEiLCBcCi0gICAgICAgICAgIjAuMDU3NTU2LCAwLjM0NDcxNSwgMC42MzU3OTYsIDAuODQ0ODE1LCAxLjE3NjgsIDEuNDY0NjgsIDEuODgyMDIiLCBcCi0gICAgICAgICAgIjAuMDU3NDY2LCAwLjM0NDk3MSwgMC42MzU5MiwgMC44NDQ2NTIsIDEuMTc2ODgsIDEuNDY4MTIsIDEuODgxNzIiLCBcCi0gICAgICAgICAgIjAuMDU3MDU1LCAwLjM0NDE2OSwgMC42MzYxOTcsIDAuODQ0Njc3LCAxLjE3Njc1LCAxLjQ2NDksIDEuODgxNTkiLCBcCi0gICAgICAgICAgIjAuMDU3NDY3LCAwLjM0NTU2LCAwLjYzNTY2NCwgMC44NDQzNjYsIDEuMTc2NywgMS40Njc3NiwgMS44ODEwOSIsIFwKLSAgICAgICAgICAiMC4wNTc2NTUsIDAuMzQ0ODA0LCAwLjYzNTg1LCAwLjg0NDExLCAxLjE3NTgsIDEuNDYzNjcsIDEuODgxMzYiLCBcCi0gICAgICAgICAgIjAuMDU3MzUzLCAwLjM0NTAwOCwgMC42MzU5NDIsIDAuODQ0ODEyLCAxLjE3Njg3LCAxLjQ2NDgzLCAxLjg4MjEzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDYzODgsIDAuMDA2NTA2LCAwLjAwNjUyMywgMC4wMDY1MjQsIDAuMDA2NTMyLCAwLjAwNjUzNCwgMC4wMDY1NCIsIFwKLSAgICAgICAgICAiMC4wMDYzODIsIDAuMDA2NTAxLCAwLjAwNjUxNywgMC4wMDY1MjIsIDAuMDA2NTI2LCAwLjAwNjUyOSwgMC4wMDY1MzEiLCBcCi0gICAgICAgICAgIjAuMDA2Mzg5LCAwLjAwNjUwNSwgMC4wMDY1MiwgMC4wMDY1MjUsIDAuMDA2NTMsIDAuMDA2NTMzLCAwLjAwNjUzMiIsIFwKLSAgICAgICAgICAiMC4wMDYzODIsIDAuMDA2NDk5LCAwLjAwNjUxNSwgMC4wMDY1MiwgMC4wMDY1MjQsIDAuMDA2NTI2LCAwLjAwNjUyNiIsIFwKLSAgICAgICAgICAiMC4wMDYzNzgsIDAuMDA2NDk2LCAwLjAwNjUxMiwgMC4wMDY1MTYsIDAuMDA2NTE3LCAwLjAwNjUxOSwgMC4wMDY1MiIsIFwKLSAgICAgICAgICAiMC4wMDYzODMsIDAuMDA2NDk4LCAwLjAwNjUxMywgMC4wMDY1MTgsIDAuMDA2NTIyLCAwLjAwNjUyNCwgMC4wMDY1MjYiLCBcCi0gICAgICAgICAgIjAuMDA2MzY5LCAwLjAwNjQ4OCwgMC4wMDY1MDEsIDAuMDA2NTA5LCAwLjAwNjUxLCAwLjAwNjUxMywgMC4wMDY1MTciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjcxOSwgMC4wMDY4NDMsIDAuMDA2ODYzLCAwLjAwNjg2NywgMC4wMDY4NzMsIDAuMDA2ODc1LCAwLjAwNjg3NyIsIFwKLSAgICAgICAgICAiMC4wMDY3MTYsIDAuMDA2ODQsIDAuMDA2ODU5LCAwLjAwNjg2NSwgMC4wMDY4NjksIDAuMDA2ODcyLCAwLjAwNjg3NSIsIFwKLSAgICAgICAgICAiMC4wMDY3MTEsIDAuMDA2ODM5LCAwLjAwNjg1OCwgMC4wMDY4NjQsIDAuMDA2ODY4LCAwLjAwNjg3MSwgMC4wMDY4NzMiLCBcCi0gICAgICAgICAgIjAuMDA2NzE0LCAwLjAwNjgzOCwgMC4wMDY4NTYsIDAuMDA2ODYzLCAwLjAwNjg2NywgMC4wMDY4NjksIDAuMDA2ODcxIiwgXAotICAgICAgICAgICIwLjAwNjcwOCwgMC4wMDY4MzYsIDAuMDA2ODU0LCAwLjAwNjg2LCAwLjAwNjg2NiwgMC4wMDY4NjgsIDAuMDA2ODciLCBcCi0gICAgICAgICAgIjAuMDA2NzA1LCAwLjAwNjgzMywgMC4wMDY4NTEsIDAuMDA2ODU4LCAwLjAwNjg2MiwgMC4wMDY4NjUsIDAuMDA2ODY3IiwgXAotICAgICAgICAgICIwLjAwNjcwNywgMC4wMDY4MzEsIDAuMDA2ODQ5LCAwLjAwNjg1NSwgMC4wMDY4NiwgMC4wMDY4NjIsIDAuMDA2ODY0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDcxOTUsIDAuMDA3MzA5LCAwLjAwNzMxOSwgMC4wMDczMTcsIDAuMDA3MzE5LCAwLjAwNzMxOCwgMC4wMDczMTciLCBcCi0gICAgICAgICAgIjAuMDA3MTg4LCAwLjAwNzMwMiwgMC4wMDczMTMsIDAuMDA3MzE3LCAwLjAwNzMxMywgMC4wMDczMTIsIDAuMDA3MzExIiwgXAotICAgICAgICAgICIwLjAwNzE4MSwgMC4wMDcyOTYsIDAuMDA3MzA2LCAwLjAwNzMwNywgMC4wMDczMDcsIDAuMDA3MzA2LCAwLjAwNzMwNSIsIFwKLSAgICAgICAgICAiMC4wMDcxNzUsIDAuMDA3MjkxLCAwLjAwNzMwMiwgMC4wMDczMDMsIDAuMDA3MzAyLCAwLjAwNzMwMSwgMC4wMDcyOTkiLCBcCi0gICAgICAgICAgIjAuMDA3MTc5LCAwLjAwNzI5MywgMC4wMDczMDMsIDAuMDA3MzA0LCAwLjAwNzMsIDAuMDA3MzAzLCAwLjAwNzMwNSIsIFwKLSAgICAgICAgICAiMC4wMDcxNzYsIDAuMDA3MjkxLCAwLjAwNzI5OCwgMC4wMDczMDIsIDAuMDA3MzAyLCAwLjAwNzI5NiwgMC4wMDcyOTkiLCBcCi0gICAgICAgICAgIjAuMDA3MTgsIDAuMDA3Mjk0LCAwLjAwNzMwNiwgMC4wMDczMDcsIDAuMDA3MzA1LCAwLjAwNzMwNCwgMC4wMDczMDIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNzQzOSwgMC4wMDc1NjcsIDAuMDA3NTg2LCAwLjAwNzU5NCwgMC4wMDc1OTksIDAuMDA3NjAyLCAwLjAwNzYwMSIsIFwKLSAgICAgICAgICAiMC4wMDc0MzQsIDAuMDA3NTYyLCAwLjAwNzU4MSwgMC4wMDc1ODcsIDAuMDA3NTkxLCAwLjAwNzU5NCwgMC4wMDc1OTYiLCBcCi0gICAgICAgICAgIjAuMDA3NDI5LCAwLjAwNzU1NywgMC4wMDc1NzgsIDAuMDA3NTgyLCAwLjAwNzU4OSwgMC4wMDc1ODgsIDAuMDA3NTg5IiwgXAotICAgICAgICAgICIwLjAwNzQyNywgMC4wMDc1NTMsIDAuMDA3NTY4LCAwLjAwNzU4MSwgMC4wMDc1NzcsIDAuMDA3NTg1LCAwLjAwNzU4NyIsIFwKLSAgICAgICAgICAiMC4wMDc0MjYsIDAuMDA3NTUxLCAwLjAwNzU3LCAwLjAwNzU3NSwgMC4wMDc1ODEsIDAuMDA3NTc4LCAwLjAwNzU4NSIsIFwKLSAgICAgICAgICAiMC4wMDc0MjQsIDAuMDA3NTQ5LCAwLjAwNzU3LCAwLjAwNzU3NywgMC4wMDc1NzgsIDAuMDA3NTc1LCAwLjAwNzU4MyIsIFwKLSAgICAgICAgICAiMC4wMDc0MjMsIDAuMDA3NTQ4LCAwLjAwNzU2NywgMC4wMDc1NzcsIDAuMDA3NTcyLCAwLjAwNzU3NCwgMC4wMDc1NzgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDcxMSwgMC4wMDcyMjUsIDAuMDA3MjM1LCAwLjAwNzIzNiwgMC4wMDcyMzcsIDAuMDA3MjM0LCAwLjAwNzIzMiIsIFwKLSAgICAgICAgICAiMC4wMDcxMTIsIDAuMDA3MjI1LCAwLjAwNzIzNCwgMC4wMDcyMzMsIDAuMDA3MjM1LCAwLjAwNzIzNCwgMC4wMDcyMzUiLCBcCi0gICAgICAgICAgIjAuMDA3MTA0LCAwLjAwNzIxOCwgMC4wMDcyMjksIDAuMDA3MjMsIDAuMDA3MjI5LCAwLjAwNzIyNywgMC4wMDcyMjYiLCBcCi0gICAgICAgICAgIjAuMDA3MTA1LCAwLjAwNzIxOCwgMC4wMDcyMjgsIDAuMDA3MjMxLCAwLjAwNzIyOSwgMC4wMDcyMjcsIDAuMDA3MjIzIiwgXAotICAgICAgICAgICIwLjAwNzA5NSwgMC4wMDcyMTEsIDAuMDA3MjIxLCAwLjAwNzIyMywgMC4wMDcyMjIsIDAuMDA3MjIsIDAuMDA3MjE4IiwgXAotICAgICAgICAgICIwLjAwNzEwMSwgMC4wMDcyMTQsIDAuMDA3MjI1LCAwLjAwNzIyNiwgMC4wMDcyMjMsIDAuMDA3MjIzLCAwLjAwNzIxOSIsIFwKLSAgICAgICAgICAiMC4wMDcwOTEsIDAuMDA3MjA3LCAwLjAwNzIxNywgMC4wMDcyMTksIDAuMDA3MjE4LCAwLjAwNzIxNiwgMC4wMDcyMTQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwODU3NywgMC4wMDg2OTksIDAuMDA4NzE0LCAwLjAwODcxNiwgMC4wMDg3MTcsIDAuMDA4NzE5LCAwLjAwODcxNyIsIFwKLSAgICAgICAgICAiMC4wMDg1NzEsIDAuMDA4NjkzLCAwLjAwODcwOCwgMC4wMDg3MTEsIDAuMDA4NzEsIDAuMDA4NzEyLCAwLjAwODcxMSIsIFwKLSAgICAgICAgICAiMC4wMDg1NjYsIDAuMDA4Njg5LCAwLjAwODcwNCwgMC4wMDg3MDcsIDAuMDA4NzA4LCAwLjAwODcwOCwgMC4wMDg3MDciLCBcCi0gICAgICAgICAgIjAuMDA4NTY0LCAwLjAwODY4NywgMC4wMDg3MDIsIDAuMDA4NzA0LCAwLjAwODcwNCwgMC4wMDg3MDUsIDAuMDA4NzAzIiwgXAotICAgICAgICAgICIwLjAwODU2MywgMC4wMDg2ODUsIDAuMDA4NywgMC4wMDg3MDMsIDAuMDA4NzA0LCAwLjAwODcwNCwgMC4wMDg3MDEiLCBcCi0gICAgICAgICAgIjAuMDA4NTUyLCAwLjAwODY4LCAwLjAwODY5NSwgMC4wMDg2OTksIDAuMDA4Njk4LCAwLjAwODcsIDAuMDA4Njk5IiwgXAotICAgICAgICAgICIwLjAwODU1OSwgMC4wMDg2ODIsIDAuMDA4Njk3LCAwLjAwODcwMSwgMC4wMDg3MDEsIDAuMDA4NywgMC4wMDg3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiU04iOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA3MTA0LCAwLjAwNzIwMSwgMC4wMDcyMTEsIDAuMDA3MjE1LCAwLjAwNzIxNiwgMC4wMDcyMTYsIDAuMDA3MjIxIiwgXAotICAgICAgICAgICIwLjAwNzA4OCwgMC4wMDcxODcsIDAuMDA3MTk4LCAwLjAwNzIwMSwgMC4wMDcyMDMsIDAuMDA3MjA1LCAwLjAwNzIwOCIsIFwKLSAgICAgICAgICAiMC4wMDcwNjksIDAuMDA3MTcsIDAuMDA3MTgyLCAwLjAwNzE4NiwgMC4wMDcxODksIDAuMDA3MTkzLCAwLjAwNzE5NSIsIFwKLSAgICAgICAgICAiMC4wMDcwNDcsIDAuMDA3MTUyLCAwLjAwNzE2NiwgMC4wMDcxNywgMC4wMDcxNzMsIDAuMDA3MTc1LCAwLjAwNzE3NyIsIFwKLSAgICAgICAgICAiMC4wMDcwMjMsIDAuMDA3MTMzLCAwLjAwNzE0OCwgMC4wMDcxNTMsIDAuMDA3MTU3LCAwLjAwNzE1OSwgMC4wMDcxNjQiLCBcCi0gICAgICAgICAgIjAuMDA3MDAxLCAwLjAwNzExMywgMC4wMDcxMzEsIDAuMDA3MTM3LCAwLjAwNzE0MSwgMC4wMDcxNDYsIDAuMDA3MTQ2IiwgXAotICAgICAgICAgICIwLjAwNjk3NSwgMC4wMDcwOTMsIDAuMDA3MTE3LCAwLjAwNzEyMiwgMC4wMDcxMjUsIDAuMDA3MTMxLCAwLjAwNzEzMSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1NTYxLCAwLjAwNTY4MywgMC4wMDU3LCAwLjAwNTcwNSwgMC4wMDU3MDksIDAuMDA1NzExLCAwLjAwNTcxMyIsIFwKLSAgICAgICAgICAiMC4wMDU1NDksIDAuMDA1NjcxLCAwLjAwNTY4NywgMC4wMDU2OTIsIDAuMDA1Njk2LCAwLjAwNTY5OCwgMC4wMDU3IiwgXAotICAgICAgICAgICIwLjAwNTUzMiwgMC4wMDU2NTYsIDAuMDA1Njc1LCAwLjAwNTY4LCAwLjAwNTY4MiwgMC4wMDU2ODQsIDAuMDA1Njg2IiwgXAotICAgICAgICAgICIwLjAwNTUyNCwgMC4wMDU2NDcsIDAuMDA1NjY0LCAwLjAwNTY2OSwgMC4wMDU2NzQsIDAuMDA1Njc1LCAwLjAwNTY3NyIsIFwKLSAgICAgICAgICAiMC4wMDU1MTMsIDAuMDA1NjQsIDAuMDA1NjU3LCAwLjAwNTY2MiwgMC4wMDU2NjcsIDAuMDA1NjY5LCAwLjAwNTY3MSIsIFwKLSAgICAgICAgICAiMC4wMDU1MDksIDAuMDA1NjMzLCAwLjAwNTY1NCwgMC4wMDU2NTcsIDAuMDA1NjYxLCAwLjAwNTY2NCwgMC4wMDU2NjQiLCBcCi0gICAgICAgICAgIjAuMDA1NTA5LCAwLjAwNTYzMSwgMC4wMDU2NTEsIDAuMDA1NjU4LCAwLjAwNTY2MywgMC4wMDU2NjQsIDAuMDA1NjY2Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihRTikgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjUyODc1OwotICAgIGZ1bmN0aW9uIDogIk41IjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJEIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI3NDAxOCwgMC40MTc3NTksIDAuNTQ1NTgxLCAwLjYzNjY2MywgMC43ODIyOTUsIDAuOTA5Nzc5LCAxLjA5MjA3IiwgXAotICAgICAgICAgICIwLjI4NTQ2NywgMC40MjkyMDgsIDAuNTU3MDMyLCAwLjY0ODA4MSwgMC43OTM3NDUsIDAuOTIxMzY1LCAxLjEwMzMxIiwgXAotICAgICAgICAgICIwLjI5ODQ5OSwgMC40NDIyNDIsIDAuNTcwMDY0LCAwLjY2MTEwMSwgMC44MDY3NzgsIDAuOTM0MjI5LCAxLjExNjQ2IiwgXAotICAgICAgICAgICIwLjMxMDg4NiwgMC40NTQ2MDUsIDAuNTgyNDI5LCAwLjY3MzQ3OCwgMC44MTkxNDMsIDAuOTQ2NzY0LCAxLjEyODcxIiwgXAotICAgICAgICAgICIwLjMyMzExOCwgMC40NjY4NywgMC41OTQ3MDIsIDAuNjg1NzU4LCAwLjgzMTQxOSwgMC45NTkwMjYsIDEuMTQwOTciLCBcCi0gICAgICAgICAgIjAuMzQyNDE2LCAwLjQ4NjE2NCwgMC42MTM5ODksIDAuNzA1MDM0LCAwLjg1MDcwMSwgMC45NzgxNTQsIDEuMTYwMyIsIFwKLSAgICAgICAgICAiMC4zNTkxNTIsIDAuNTAyODczLCAwLjYzMDY5NSwgMC43MjE3NzcsIDAuODY3NDA5LCAwLjk5NDg4NywgMS4xNzcxOCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4MzkxNywgMC4zMjQ3MTIsIDAuNTc4NTEyLCAwLjc2MjU3LCAxLjA1Njg4LCAxLjMxODY2LCAxLjY4NzA1IiwgXAotICAgICAgICAgICIwLjA4MzkyMiwgMC4zMjQ3MTMsIDAuNTc4NTM3LCAwLjc2MjMzLCAxLjA1ODM3LCAxLjMxNTMxLCAxLjY5MDc0IiwgXAotICAgICAgICAgICIwLjA4Mzg1MSwgMC4zMjQ3MTQsIDAuNTc4NTAxLCAwLjc2MjI2NywgMS4wNTY5LCAxLjMxODQ5LCAxLjY4NjUzIiwgXAotICAgICAgICAgICIwLjA4MzgwOSwgMC4zMjQ2ODQsIDAuNTc4NTMsIDAuNzYyMzE5LCAxLjA1ODM2LCAxLjMxNTI5LCAxLjY5MDc0IiwgXAotICAgICAgICAgICIwLjA4Mzg0NiwgMC4zMjQ4NDEsIDAuNTc4NTMzLCAwLjc2MjM3LCAxLjA1Njg3LCAxLjMxNTM5LCAxLjY5MDciLCBcCi0gICAgICAgICAgIjAuMDgzODU0LCAwLjMyNDY3NSwgMC41Nzg1MTUsIDAuNzYxMjk3LCAxLjA1NjksIDEuMzE4MjcsIDEuNjkwODgiLCBcCi0gICAgICAgICAgIjAuMDgzNzk4LCAwLjMyNDY4NiwgMC41Nzg1MDgsIDAuNzYyNTYzLCAxLjA1Njg4LCAxLjMxODYyLCAxLjY4NzEiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMzM3MTMsIDAuMzgzOTczLCAwLjUyOTg0MywgMC42MzQwNDQsIDAuODAwNjYzLCAwLjk0NjU3NCwgMS4xNTQ3MyIsIFwKLSAgICAgICAgICAiMC4yNDU0NTQsIDAuMzk1NzI1LCAwLjU0MTU2NiwgMC42NDU3OTgsIDAuODEyNDEsIDAuOTU4MzM0LCAxLjE2NjQ4IiwgXAotICAgICAgICAgICIwLjI1OTYzMiwgMC40MDk4ODEsIDAuNTU1NzQ5LCAwLjY1OTk0MSwgMC44MjY1NTMsIDAuOTcyNDg3LCAxLjE4MDYzIiwgXAotICAgICAgICAgICIwLjI3MzMzMiwgMC40MjM1NjQsIDAuNTY5NDM2LCAwLjY3MzYzOSwgMC44NDAyNTQsIDAuOTg2MTg1LCAxLjE5NDMzIiwgXAotICAgICAgICAgICIwLjI4Njk2OCwgMC40MzcyMDYsIDAuNTgzMDc0LCAwLjY4NzIyMiwgMC44NTM5MjEsIDAuOTk5NzI4LCAxLjIwNzY1IiwgXAotICAgICAgICAgICIwLjMwOTE2NywgMC40NTkzNTYsIDAuNjA1MTkyLCAwLjcwOTQ2LCAwLjg3NjA3NSwgMS4wMjE5OCwgMS4yMzAxNCIsIFwKLSAgICAgICAgICAiMC4zMjc5MzcsIDAuNDc4MTkyLCAwLjYyNDA4NCwgMC43MjgzMDIsIDAuODk0ODk4LCAxLjA0MDcyLCAxLjI0ODk4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY5MDI5LCAwLjM0Nzg0MywgMC42MzU1NjEsIDAuODQzMTcyLCAxLjE3MzYxLCAxLjQ2MzI0LCAxLjg3OTQzIiwgXAotICAgICAgICAgICIwLjA2OTA2NCwgMC4zNDc4MzcsIDAuNjM0NTgzLCAwLjg0MzE3NiwgMS4xNzM2OSwgMS40NjMyMiwgMS44Nzk0MSIsIFwKLSAgICAgICAgICAiMC4wNjg5NjYsIDAuMzQ3ODc2LCAwLjYzNTM2NSwgMC44NDMxNjcsIDEuMTczNywgMS40NjMyLCAxLjg3OTQ0IiwgXAotICAgICAgICAgICIwLjA2ODk1MywgMC4zNDc1ODYsIDAuNjM2MDY3LCAwLjg0MzE1NiwgMS4xNzM2OSwgMS40NjMyMSwgMS44Nzk0MyIsIFwKLSAgICAgICAgICAiMC4wNjg5NDksIDAuMzQ3ODAyLCAwLjYzNTU1LCAwLjg0Mjg0LCAxLjE3MzU5LCAxLjQ2MzAzLCAxLjg3NjgiLCBcCi0gICAgICAgICAgIjAuMDY4OTUsIDAuMzQ3MDMyLCAwLjYzNTExMiwgMC44NDE4NjksIDEuMTczNjQsIDEuNDYzMjUsIDEuODc5NDIiLCBcCi0gICAgICAgICAgIjAuMDY4OTYsIDAuMzQ3MzIsIDAuNjM1ODgsIDAuODQzMTc5LCAxLjE3NDU5LCAxLjQ2NDkzLCAxLjg3OTM5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkciOwotICAgICAgdGltaW5nX3NlbnNlIDogbm9uX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiByaXNpbmdfZWRnZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC40MjE2MjYsIDAuNTY1NiwgMC42OTM0MjcsIDAuNzg0NDczLCAwLjkzMDEzMSwgMS4wNTc2LCAxLjIzOTY4IiwgXAotICAgICAgICAgICIwLjQzMjI3NywgMC41NzYyNCwgMC43MDQwNjgsIDAuNzk1MTA4LCAwLjk0MDc3NSwgMS4wNjgyMywgMS4yNTA0IiwgXAotICAgICAgICAgICIwLjQ0NDg4MywgMC41ODg4MzcsIDAuNzE2Njc0LCAwLjgwNzcxNCwgMC45NTMzODEsIDEuMDgwODQsIDEuMjYzIiwgXAotICAgICAgICAgICIwLjQ1ODQxNCwgMC42MDIzNjQsIDAuNzMwMTkzLCAwLjgyMTIzNiwgMC45NjY4OTYsIDEuMDk0NDMsIDEuMjc2NDYiLCBcCi0gICAgICAgICAgIjAuNDcxNzk1LCAwLjYxNTcxMSwgMC43NDM1MzMsIDAuODM0NTk2LCAwLjk4MDI1NywgMS4xMDc3NywgMS4yODk4MiIsIFwKLSAgICAgICAgICAiMC40OTQ0MDYsIDAuNjM4MzIyLCAwLjc2NjE1MSwgMC44NTcyMDcsIDEuMDAyODcsIDEuMTMwMzgsIDEuMzEyNDMiLCBcCi0gICAgICAgICAgIjAuNTEzODkyLCAwLjY1NzgwOCwgMC43ODU2MzEsIDAuODc2Njk0LCAxLjAyMjM1LCAxLjE0OTg3LCAxLjMzMTkyIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg0MzAyLCAwLjMyNDkzNSwgMC41Nzg2NzQsIDAuNzYyNDIsIDEuMDU2ODcsIDEuMzE2NTEsIDEuNjkwNzEiLCBcCi0gICAgICAgICAgIjAuMDg0MzQ3LCAwLjMyNTA4NiwgMC41Nzg1ODIsIDAuNzYxMzk1LCAxLjA1Njg2LCAxLjMxODI4LCAxLjY5MDk1IiwgXAotICAgICAgICAgICIwLjA4NDM0NiwgMC4zMjUwNDEsIDAuNTc4NTgsIDAuNzYxMzc1LCAxLjA1Njg1LCAxLjMxODI3LCAxLjY5MDk0IiwgXAotICAgICAgICAgICIwLjA4NDQyMywgMC4zMjUwNiwgMC41Nzg3MzIsIDAuNzYyNDIxLCAxLjA1ODA2LCAxLjMxNTE0LCAxLjY5MDczIiwgXAotICAgICAgICAgICIwLjA4NDIzMiwgMC4zMjUwNTYsIDAuNTc4NTQxLCAwLjc2MjQwNiwgMS4wNTc4OSwgMS4zMTQ3NSwgMS42OTA3MyIsIFwKLSAgICAgICAgICAiMC4wODQyNjYsIDAuMzI1MDU2LCAwLjU3NzMxOSwgMC43NjI0MDQsIDEuMDU3OTIsIDEuMzE0OCwgMS42OTA3MyIsIFwKLSAgICAgICAgICAiMC4wODQyNjgsIDAuMzI1MDU2LCAwLjU3ODU0NSwgMC43NjI0MDcsIDEuMDU3ODksIDEuMzE0NzQsIDEuNjkwNzMiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC40MDE5NzcsIDAuNTUyMjQ5LCAwLjY5ODExLCAwLjgwMjE4LCAwLjk2ODc2MSwgMS4xMTQ3OSwgMS4zMjMwMyIsIFwKLSAgICAgICAgICAiMC40MTIwNjYsIDAuNTYyMzQsIDAuNzA4MjI5LCAwLjgxMjQxLCAwLjk3OTAyOCwgMS4xMjQ4MywgMS4zMzMwOSIsIFwKLSAgICAgICAgICAiMC40MjUyNTQsIDAuNTc1NTI1LCAwLjcyMTM4NiwgMC44MjU1OTQsIDAuOTkyMjE1LCAxLjEzNzg3LCAxLjM0NjMxIiwgXAotICAgICAgICAgICIwLjQzODUzOSwgMC41ODg4MjgsIDAuNzM0NjM3LCAwLjgzODg5NSwgMS4wMDUzNiwgMS4xNTEzNywgMS4zNTk2MSIsIFwKLSAgICAgICAgICAiMC40NTIxMjksIDAuNjAyNCwgMC43NDgyNjYsIDAuODUyNDM0LCAxLjAxOTEsIDEuMTY0OTgsIDEuMzczMTYiLCBcCi0gICAgICAgICAgIjAuNDc0OTExLCAwLjYyNTE4NCwgMC43NzEwNSwgMC44NzUyMDEsIDEuMDQxODksIDEuMTg3NjgsIDEuMzk1OTUiLCBcCi0gICAgICAgICAgIjAuNDk0NTY1LCAwLjY0NDg1OSwgMC43OTA3MjgsIDAuODk0OTEyLCAxLjA2MTUyLCAxLjIwNzQ2LCAxLjQxNTYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjg4NjksIDAuMzQ3NjA4LCAwLjYzNDIxMSwgMC44NDIxNzcsIDEuMTczNDksIDEuNDYzMDUsIDEuODc5NSIsIFwKLSAgICAgICAgICAiMC4wNjg4ODMsIDAuMzQ3ODAzLCAwLjYzNjExMSwgMC44NDMxNSwgMS4xNzM2NSwgMS40NjM2NiwgMS44NzciLCBcCi0gICAgICAgICAgIjAuMDY4ODg5LCAwLjM0NzU0NSwgMC42MzU5MywgMC44NDMxNjIsIDEuMTc0NjIsIDEuNDYzNjYsIDEuODc5NTIiLCBcCi0gICAgICAgICAgIjAuMDY4ODc2LCAwLjM0NzQ4OCwgMC42MzU0NiwgMC44NDMxNTEsIDEuMTczMjQsIDEuNDYzMjksIDEuODc5NTEiLCBcCi0gICAgICAgICAgIjAuMDY4ODY4LCAwLjM0NzgwMywgMC42MzU1MzQsIDAuODQxODE2LCAxLjE3MzYyLCAxLjQ2MzI3LCAxLjg3OTM0IiwgXAotICAgICAgICAgICIwLjA2ODg4MywgMC4zNDc4MDMsIDAuNjM1NTMsIDAuODQyMzMzLCAxLjE3MzUzLCAxLjQ2MzYzLCAxLjg3NzM2IiwgXAotICAgICAgICAgICIwLjA2ODg5OCwgMC4zNDc4NzksIDAuNjM1MzksIDAuODQzMTM1LCAxLjE3MzcxLCAxLjQ2MjczLCAxLjg3OTQxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiByaXNpbmdfZWRnZTsKLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC40MDc1ODksIDAuNTU3ODYyLCAwLjcwMzc1OSwgMC44MDc3ODcsIDAuOTc0NTMsIDEuMTIwNCwgMS4zMjg2MyIsIFwKLSAgICAgICAgICAiMC40MTk0MDIsIDAuNTY5Njc0LCAwLjcxNTUzOSwgMC44MTk3MDgsIDAuOTg2Mzc3LCAxLjEzMjI1LCAxLjM0MDQ0IiwgXAotICAgICAgICAgICIwLjQzMzA0LCAwLjU4MzMxLCAwLjcyOTE3NSwgMC44MzMzNTIsIDEuMDAwMDEsIDEuMTQ1ODksIDEuMzU0MDciLCBcCi0gICAgICAgICAgIjAuNDQ2ODIsIDAuNTk3MDk0LCAwLjc0MzAxOSwgMC44NDcxNiwgMS4wMTM3NywgMS4xNTk3MiwgMS4zNjc4NSIsIFwKLSAgICAgICAgICAiMC40NjAxMjMsIDAuNjEwNDEzLCAwLjc1NjI3NSwgMC44NjA0ODIsIDEuMDI3MSwgMS4xNzMwMSwgMS4zODExNiIsIFwKLSAgICAgICAgICAiMC40ODIyNzQsIDAuNjMyNTUyLCAwLjc3ODM2NywgMC44ODI0NzksIDEuMDQ5MjIsIDEuMTk1MTIsIDEuNDAzMzMiLCBcCi0gICAgICAgICAgIjAuNTAxMjExLCAwLjY1MTQ4NSwgMC43OTczNDcsIDAuOTAxNTU0LCAxLjA2ODIyLCAxLjIxNDAzLCAxLjQyMjI3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY4ODg0LCAwLjM0Nzg1MSwgMC42MzYxODQsIDAuODQxOTg4LCAxLjE3Mzc1LCAxLjQ2MDYsIDEuODc5NDciLCBcCi0gICAgICAgICAgIjAuMDY4OTEsIDAuMzQ3ODA5LCAwLjYzNTU0LCAwLjg0MjEzMywgMS4xNzM2MiwgMS40NjMyNywgMS44NzkzMiIsIFwKLSAgICAgICAgICAiMC4wNjg4NjksIDAuMzQ3ODA0LCAwLjYzNTUzNiwgMC44NDIwODUsIDEuMTczNjIsIDEuNDYzMjcsIDEuODc5MzQiLCBcCi0gICAgICAgICAgIjAuMDY4ODg5LCAwLjM0NzM5OSwgMC42MzUxODYsIDAuODQzMTU3LCAxLjE3MzczLCAxLjQ2Mjk2LCAxLjg3OTQzIiwgXAotICAgICAgICAgICIwLjA2ODg5MSwgMC4zNDc4MjUsIDAuNjM1OTIxLCAwLjg0MzE3LCAxLjE3MzY3LCAxLjQ2MzI1LCAxLjg3OTM4IiwgXAotICAgICAgICAgICIwLjA2ODkyNCwgMC4zNDczMzUsIDAuNjM1NTMxLCAwLjg0MjE3OCwgMS4xNzM4MSwgMS40NjMyNCwgMS44Nzk1MiIsIFwKLSAgICAgICAgICAiMC4wNjg4NzQsIDAuMzQ3NjAyLCAwLjYzNTM1MiwgMC44NDIxNCwgMS4xNzMwNCwgMS40NjMxNCwgMS44Nzk1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiBmYWxsaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzc3NTUzLCAwLjUyMTI4NiwgMC42NDkxMDMsIDAuNzQwMTY0LCAwLjg4NTgyOCwgMS4wMTM0NCwgMS4xOTUzOSIsIFwKLSAgICAgICAgICAiMC4zODg4OTgsIDAuNTMyNjI3LCAwLjY2MDQ0LCAwLjc1MTUwNywgMC44OTcxNzIsIDEuMDI0NywgMS4yMDY3MyIsIFwKLSAgICAgICAgICAiMC40MDMxNDQsIDAuNTQ2ODkyLCAwLjY3NDcxMywgMC43NjU3NjQsIDAuOTExNDI4LCAxLjAzOTAzLCAxLjIyMDk4IiwgXAotICAgICAgICAgICIwLjQxODA4MSwgMC41NjE4MTQsIDAuNjg5NjM3LCAwLjc4MDY4OCwgMC45MjYzNTYsIDEuMDUzODgsIDEuMjM1OTIiLCBcCi0gICAgICAgICAgIjAuNDMzMDM0LCAwLjU3Njc1NSwgMC43MDQ1NzMsIDAuNzk1NjQ0LCAwLjk0MTMwOCwgMS4wNjg4NCwgMS4yNTA4NyIsIFwKLSAgICAgICAgICAiMC40NTYzNjUsIDAuNjAwMTQ2LCAwLjcyNzk3LCAwLjgxOTAxLCAwLjk2NDY4NSwgMS4wOTIxMywgMS4yNzQzNCIsIFwKLSAgICAgICAgICAiMC40NzY2NzgsIDAuNjIwNDA5LCAwLjc0ODIyMiwgMC44MzkyOTMsIDAuOTg0OTU3LCAxLjExMjQ5LCAxLjI5NDUyIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg0MDAxLCAwLjMyNDg3LCAwLjU3ODUxLCAwLjc2MjU4MiwgMS4wNTY4OSwgMS4zMTg2OSwgMS42OTA2MSIsIFwKLSAgICAgICAgICAiMC4wODM5MjIsIDAuMzI0OTEsIDAuNTc4NTI4LCAwLjc2MjM3OSwgMS4wNTgxNiwgMS4zMTY0MiwgMS42OTA2MiIsIFwKLSAgICAgICAgICAiMC4wODM5OTgsIDAuMzI0NzUyLCAwLjU3ODU0MywgMC43NjI1MzgsIDEuMDU2OTIsIDEuMzE4NTksIDEuNjkwNTkiLCBcCi0gICAgICAgICAgIjAuMDgzOTQ1LCAwLjMyNDg4LCAwLjU3ODU0OSwgMC43NjIzNDgsIDEuMDU4ODUsIDEuMzE1ODUsIDEuNjkwNjMiLCBcCi0gICAgICAgICAgIjAuMDgzOTg3LCAwLjMyNDg4NSwgMC41Nzg0NjEsIDAuNzYyMzgyLCAxLjA1ODE3LCAxLjMxNTkzLCAxLjY5MDYxIiwgXAotICAgICAgICAgICIwLjA4NDIxOCwgMC4zMjQ4MzQsIDAuNTc4NjQzLCAwLjc2MjM4OSwgMS4wNTY4OSwgMS4zMTg0MywgMS42OTA1OCIsIFwKLSAgICAgICAgICAiMC4wODQxOTYsIDAuMzI0ODYzLCAwLjU3ODU0MSwgMC43NjIzOTgsIDEuMDU2ODksIDEuMzE4MjksIDEuNjkwODUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiU04iOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGNsZWFyOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE2Njk3OSwgMC4zMTA1OTgsIDAuNDM4MzkxLCAwLjUyOTQ1MSwgMC42NzUxMSwgMC44MDI3MDQsIDAuOTg0NjU0IiwgXAotICAgICAgICAgICIwLjE3ODI3NywgMC4zMjE4NzUsIDAuNDQ5NjgzLCAwLjU0MDcyNiwgMC42ODYzODYsIDAuODE0MDAxLCAwLjk5NTk0NSIsIFwKLSAgICAgICAgICAiMC4xOTEzOTUsIDAuMzM0OTgzLCAwLjQ2Mjc3OSwgMC41NTM4MzYsIDAuNjk5NDk0LCAwLjgyNjk2MSwgMS4wMDkwOCIsIFwKLSAgICAgICAgICAiMC4yMDQzNzQsIDAuMzQ3OTc5LCAwLjQ3NTc3NSwgMC41NjY4MzcsIDAuNzEyNDk3LCAwLjg0MDA5NSwgMS4wMjIwNCIsIFwKLSAgICAgICAgICAiMC4yMTczNjYsIDAuMzYwOTc4LCAwLjQ4ODc5NywgMC41Nzk4NDQsIDAuNzI1NTA1LCAwLjg1Mjk3MiwgMS4wMzUwNCIsIFwKLSAgICAgICAgICAiMC4yMzg1OCwgMC4zODIyLCAwLjUxMDAxNiwgMC42MDEwNjUsIDAuNzQ2NzMzLCAwLjg3NDM0OCwgMS4wNTYyOSIsIFwKLSAgICAgICAgICAiMC4yNTY4MDMsIDAuNDAwNDUxLCAwLjUyODI3LCAwLjYxOTM1NSwgMC43NjUwMTksIDAuODkyNjM2LCAxLjA3NDU4Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDgzNjcyLCAwLjMyNDc5NCwgMC41Nzg0NTEsIDAuNzYyMzY0LCAxLjA1NjkyLCAxLjMxNjMsIDEuNjkwNzQiLCBcCi0gICAgICAgICAgIjAuMDgzNjE1LCAwLjMyNDc4NSwgMC41Nzg1MDgsIDAuNzYyMzQ1LCAxLjA1NjgxLCAxLjMxNTQsIDEuNjkwNzUiLCBcCi0gICAgICAgICAgIjAuMDgzMzQxLCAwLjMyNDY0MywgMC41Nzg0NDMsIDAuNzYyMzU0LCAxLjA1ODM2LCAxLjMxNjQ3LCAxLjY5MDg0IiwgXAotICAgICAgICAgICIwLjA4MzMyNiwgMC4zMjQ3NDQsIDAuNTc3NzI5LCAwLjc2MjM1MywgMS4wNTY4OCwgMS4zMTU0MiwgMS42OTA3IiwgXAotICAgICAgICAgICIwLjA4MzMxOCwgMC4zMjQ1MzcsIDAuNTc4NDY5LCAwLjc2MjMzNywgMS4wNTY5MSwgMS4zMTY1NiwgMS42OTA2NiIsIFwKLSAgICAgICAgICAiMC4wODMzNDUsIDAuMzI0NTk4LCAwLjU3ODQzMywgMC43NjIyNzMsIDEuMDU4MzQsIDEuMzE1MjksIDEuNjkwNzIiLCBcCi0gICAgICAgICAgIjAuMDgzNjQyLCAwLjMyNDc5MiwgMC41Nzg1MjksIDAuNzYyMzI5LCAxLjA1ODM0LCAxLjMxNTQsIDEuNjkwNyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5OTA1OSwgMC4yNDk2MSwgMC4zOTU3NzYsIDAuNDk5ODI5LCAwLjY2NjMxNSwgMC44MTIwMywgMS4wMjAyNSIsIFwKLSAgICAgICAgICAiMC4xMTA0ODEsIDAuMjYxMDQ1LCAwLjQwNzIxMiwgMC41MTEyNjMsIDAuNjc3NzU0LCAwLjgyMzQ5LCAxLjAzMTY2IiwgXAotICAgICAgICAgICIwLjEyNTI3NiwgMC4yNzU4NjksIDAuNDIyMDM3LCAwLjUyNjA5OSwgMC42OTI1ODksIDAuODM4MzMxLCAxLjA0NjU3IiwgXAotICAgICAgICAgICIwLjEzOTk1LCAwLjI5MDU2MSwgMC40MzY3NCwgMC41NDA3OTksIDAuNzA3MywgMC44NTMwMTQsIDEuMDYxMjMiLCBcCi0gICAgICAgICAgIjAuMTU0NzgxLCAwLjMwNTQyNywgMC40NTE2MTEsIDAuNTU1Njc1LCAwLjcyMjE3OCwgMC44Njc4OTUsIDEuMDc2MTEiLCBcCi0gICAgICAgICAgIjAuMTc4MDU2LCAwLjMyODczNCwgMC40NzQ5MjIsIDAuNTc4OTk0LCAwLjc0NTQ5OCwgMC44OTEyMjcsIDEuMDk5NDQiLCBcCi0gICAgICAgICAgIjAuMTk3NDMyLCAwLjM0ODE3MSwgMC40OTQzNzgsIDAuNTk4NDQ3LCAwLjc2NDk2MiwgMC45MTA2OTMsIDEuMTE4OTEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjcyMDEsIDAuMzQ3NzExLCAwLjYzNTY5LCAwLjg0MzM1MiwgMS4xNzQwMSwgMS40NjQ4OCwgMS44Nzk1MyIsIFwKLSAgICAgICAgICAiMC4wNjcyMDcsIDAuMzQ3NzgzLCAwLjYzNTY5NCwgMC44NDMzMjcsIDEuMTc0ODQsIDEuNDY0OCwgMS44Nzk1NyIsIFwKLSAgICAgICAgICAiMC4wNjcyMDIsIDAuMzQ3NzE3LCAwLjYzNTcxMywgMC44NDMzMTgsIDEuMTc0NzgsIDEuNDY0ODEsIDEuODc5NjQiLCBcCi0gICAgICAgICAgIjAuMDY3MjA4LCAwLjM0NzcxNiwgMC42MzU2ODUsIDAuODQzMjc3LCAxLjE3NDA5LCAxLjQ2NDg0LCAxLjg3OTQ5IiwgXAotICAgICAgICAgICIwLjA2NzMxMywgMC4zNDc3MDIsIDAuNjM1NjkzLCAwLjg0MjYxOSwgMS4xNzQxMSwgMS40NjQ3OCwgMS44NzkzNCIsIFwKLSAgICAgICAgICAiMC4wNjc4MjMsIDAuMzQ3NzY2LCAwLjYzNTE0OCwgMC44NDMzMTIsIDEuMTc0NTgsIDEuNDY0ODcsIDEuODc5NTIiLCBcCi0gICAgICAgICAgIjAuMDY4NjgxLCAwLjM0Nzg0LCAwLjYzNTY3NSwgMC44NDMzMTIsIDEuMTc0NDIsIDEuNDY0MTksIDEuODc5NjMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJEIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjcxOSwgMC4wMDY4NDMsIDAuMDA2ODYzLCAwLjAwNjg2NywgMC4wMDY4NzMsIDAuMDA2ODc1LCAwLjAwNjg3NyIsIFwKLSAgICAgICAgICAiMC4wMDY3MTYsIDAuMDA2ODQsIDAuMDA2ODU5LCAwLjAwNjg2NSwgMC4wMDY4NjksIDAuMDA2ODcyLCAwLjAwNjg3NSIsIFwKLSAgICAgICAgICAiMC4wMDY3MTEsIDAuMDA2ODM5LCAwLjAwNjg1OCwgMC4wMDY4NjQsIDAuMDA2ODY4LCAwLjAwNjg3MSwgMC4wMDY4NzMiLCBcCi0gICAgICAgICAgIjAuMDA2NzE0LCAwLjAwNjgzOCwgMC4wMDY4NTYsIDAuMDA2ODYzLCAwLjAwNjg2NywgMC4wMDY4NjksIDAuMDA2ODcxIiwgXAotICAgICAgICAgICIwLjAwNjcwOCwgMC4wMDY4MzYsIDAuMDA2ODU0LCAwLjAwNjg2LCAwLjAwNjg2NiwgMC4wMDY4NjgsIDAuMDA2ODciLCBcCi0gICAgICAgICAgIjAuMDA2NzA1LCAwLjAwNjgzMywgMC4wMDY4NTEsIDAuMDA2ODU4LCAwLjAwNjg2MiwgMC4wMDY4NjUsIDAuMDA2ODY3IiwgXAotICAgICAgICAgICIwLjAwNjcwNywgMC4wMDY4MzEsIDAuMDA2ODQ5LCAwLjAwNjg1NSwgMC4wMDY4NiwgMC4wMDY4NjIsIDAuMDA2ODY0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDYzODgsIDAuMDA2NTA2LCAwLjAwNjUyMywgMC4wMDY1MjQsIDAuMDA2NTMyLCAwLjAwNjUzNCwgMC4wMDY1NCIsIFwKLSAgICAgICAgICAiMC4wMDYzODIsIDAuMDA2NTAxLCAwLjAwNjUxNywgMC4wMDY1MjIsIDAuMDA2NTI2LCAwLjAwNjUyOSwgMC4wMDY1MzEiLCBcCi0gICAgICAgICAgIjAuMDA2Mzg5LCAwLjAwNjUwNSwgMC4wMDY1MiwgMC4wMDY1MjUsIDAuMDA2NTMsIDAuMDA2NTMzLCAwLjAwNjUzMiIsIFwKLSAgICAgICAgICAiMC4wMDYzODIsIDAuMDA2NDk5LCAwLjAwNjUxNSwgMC4wMDY1MiwgMC4wMDY1MjQsIDAuMDA2NTI2LCAwLjAwNjUyNiIsIFwKLSAgICAgICAgICAiMC4wMDYzNzgsIDAuMDA2NDk2LCAwLjAwNjUxMiwgMC4wMDY1MTYsIDAuMDA2NTE3LCAwLjAwNjUxOSwgMC4wMDY1MiIsIFwKLSAgICAgICAgICAiMC4wMDYzODMsIDAuMDA2NDk4LCAwLjAwNjUxMywgMC4wMDY1MTgsIDAuMDA2NTIyLCAwLjAwNjUyNCwgMC4wMDY1MjYiLCBcCi0gICAgICAgICAgIjAuMDA2MzY5LCAwLjAwNjQ4OCwgMC4wMDY1MDEsIDAuMDA2NTA5LCAwLjAwNjUxLCAwLjAwNjUxMywgMC4wMDY1MTciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJHIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNzQzOSwgMC4wMDc1NjcsIDAuMDA3NTg2LCAwLjAwNzU5NCwgMC4wMDc1OTksIDAuMDA3NjAyLCAwLjAwNzYwMSIsIFwKLSAgICAgICAgICAiMC4wMDc0MzQsIDAuMDA3NTYyLCAwLjAwNzU4MSwgMC4wMDc1ODcsIDAuMDA3NTkxLCAwLjAwNzU5NCwgMC4wMDc1OTYiLCBcCi0gICAgICAgICAgIjAuMDA3NDI5LCAwLjAwNzU1NywgMC4wMDc1NzgsIDAuMDA3NTgyLCAwLjAwNzU4OSwgMC4wMDc1ODgsIDAuMDA3NTg5IiwgXAotICAgICAgICAgICIwLjAwNzQyNywgMC4wMDc1NTMsIDAuMDA3NTY4LCAwLjAwNzU4MSwgMC4wMDc1NzcsIDAuMDA3NTg1LCAwLjAwNzU4NyIsIFwKLSAgICAgICAgICAiMC4wMDc0MjYsIDAuMDA3NTUxLCAwLjAwNzU3LCAwLjAwNzU3NSwgMC4wMDc1ODEsIDAuMDA3NTc4LCAwLjAwNzU4NSIsIFwKLSAgICAgICAgICAiMC4wMDc0MjQsIDAuMDA3NTQ5LCAwLjAwNzU3LCAwLjAwNzU3NywgMC4wMDc1NzgsIDAuMDA3NTc1LCAwLjAwNzU4MyIsIFwKLSAgICAgICAgICAiMC4wMDc0MjMsIDAuMDA3NTQ4LCAwLjAwNzU2NywgMC4wMDc1NzcsIDAuMDA3NTcyLCAwLjAwNzU3NCwgMC4wMDc1NzgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNzE5NSwgMC4wMDczMDksIDAuMDA3MzE5LCAwLjAwNzMxNywgMC4wMDczMTksIDAuMDA3MzE4LCAwLjAwNzMxNyIsIFwKLSAgICAgICAgICAiMC4wMDcxODgsIDAuMDA3MzAyLCAwLjAwNzMxMywgMC4wMDczMTcsIDAuMDA3MzEzLCAwLjAwNzMxMiwgMC4wMDczMTEiLCBcCi0gICAgICAgICAgIjAuMDA3MTgxLCAwLjAwNzI5NiwgMC4wMDczMDYsIDAuMDA3MzA3LCAwLjAwNzMwNywgMC4wMDczMDYsIDAuMDA3MzA1IiwgXAotICAgICAgICAgICIwLjAwNzE3NSwgMC4wMDcyOTEsIDAuMDA3MzAyLCAwLjAwNzMwMywgMC4wMDczMDIsIDAuMDA3MzAxLCAwLjAwNzI5OSIsIFwKLSAgICAgICAgICAiMC4wMDcxNzksIDAuMDA3MjkzLCAwLjAwNzMwMywgMC4wMDczMDQsIDAuMDA3MywgMC4wMDczMDMsIDAuMDA3MzA1IiwgXAotICAgICAgICAgICIwLjAwNzE3NiwgMC4wMDcyOTEsIDAuMDA3Mjk4LCAwLjAwNzMwMiwgMC4wMDczMDIsIDAuMDA3Mjk2LCAwLjAwNzI5OSIsIFwKLSAgICAgICAgICAiMC4wMDcxOCwgMC4wMDcyOTQsIDAuMDA3MzA2LCAwLjAwNzMwNywgMC4wMDczMDUsIDAuMDA3MzA0LCAwLjAwNzMwMiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwODU3NywgMC4wMDg2OTksIDAuMDA4NzE0LCAwLjAwODcxNiwgMC4wMDg3MTcsIDAuMDA4NzE5LCAwLjAwODcxNyIsIFwKLSAgICAgICAgICAiMC4wMDg1NzEsIDAuMDA4NjkzLCAwLjAwODcwOCwgMC4wMDg3MTEsIDAuMDA4NzEsIDAuMDA4NzEyLCAwLjAwODcxMSIsIFwKLSAgICAgICAgICAiMC4wMDg1NjYsIDAuMDA4Njg5LCAwLjAwODcwNCwgMC4wMDg3MDcsIDAuMDA4NzA4LCAwLjAwODcwOCwgMC4wMDg3MDciLCBcCi0gICAgICAgICAgIjAuMDA4NTY0LCAwLjAwODY4NywgMC4wMDg3MDIsIDAuMDA4NzA0LCAwLjAwODcwNCwgMC4wMDg3MDUsIDAuMDA4NzAzIiwgXAotICAgICAgICAgICIwLjAwODU2MywgMC4wMDg2ODUsIDAuMDA4NywgMC4wMDg3MDMsIDAuMDA4NzA0LCAwLjAwODcwNCwgMC4wMDg3MDEiLCBcCi0gICAgICAgICAgIjAuMDA4NTUyLCAwLjAwODY4LCAwLjAwODY5NSwgMC4wMDg2OTksIDAuMDA4Njk4LCAwLjAwODcsIDAuMDA4Njk5IiwgXAotICAgICAgICAgICIwLjAwODU1OSwgMC4wMDg2ODIsIDAuMDA4Njk3LCAwLjAwODcwMSwgMC4wMDg3MDEsIDAuMDA4NywgMC4wMDg3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDcxMSwgMC4wMDcyMjUsIDAuMDA3MjM1LCAwLjAwNzIzNiwgMC4wMDcyMzcsIDAuMDA3MjM0LCAwLjAwNzIzMiIsIFwKLSAgICAgICAgICAiMC4wMDcxMTIsIDAuMDA3MjI1LCAwLjAwNzIzNCwgMC4wMDcyMzMsIDAuMDA3MjM1LCAwLjAwNzIzNCwgMC4wMDcyMzUiLCBcCi0gICAgICAgICAgIjAuMDA3MTA0LCAwLjAwNzIxOCwgMC4wMDcyMjksIDAuMDA3MjMsIDAuMDA3MjI5LCAwLjAwNzIyNywgMC4wMDcyMjYiLCBcCi0gICAgICAgICAgIjAuMDA3MTA1LCAwLjAwNzIxOCwgMC4wMDcyMjgsIDAuMDA3MjMxLCAwLjAwNzIyOSwgMC4wMDcyMjcsIDAuMDA3MjIzIiwgXAotICAgICAgICAgICIwLjAwNzA5NSwgMC4wMDcyMTEsIDAuMDA3MjIxLCAwLjAwNzIyMywgMC4wMDcyMjIsIDAuMDA3MjIsIDAuMDA3MjE4IiwgXAotICAgICAgICAgICIwLjAwNzEwMSwgMC4wMDcyMTQsIDAuMDA3MjI1LCAwLjAwNzIyNiwgMC4wMDcyMjMsIDAuMDA3MjIzLCAwLjAwNzIxOSIsIFwKLSAgICAgICAgICAiMC4wMDcwOTEsIDAuMDA3MjA3LCAwLjAwNzIxNywgMC4wMDcyMTksIDAuMDA3MjE4LCAwLjAwNzIxNiwgMC4wMDcyMTQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDU1NjEsIDAuMDA1NjgzLCAwLjAwNTcsIDAuMDA1NzA1LCAwLjAwNTcwOSwgMC4wMDU3MTEsIDAuMDA1NzEzIiwgXAotICAgICAgICAgICIwLjAwNTU0OSwgMC4wMDU2NzEsIDAuMDA1Njg3LCAwLjAwNTY5MiwgMC4wMDU2OTYsIDAuMDA1Njk4LCAwLjAwNTciLCBcCi0gICAgICAgICAgIjAuMDA1NTMyLCAwLjAwNTY1NiwgMC4wMDU2NzUsIDAuMDA1NjgsIDAuMDA1NjgyLCAwLjAwNTY4NCwgMC4wMDU2ODYiLCBcCi0gICAgICAgICAgIjAuMDA1NTI0LCAwLjAwNTY0NywgMC4wMDU2NjQsIDAuMDA1NjY5LCAwLjAwNTY3NCwgMC4wMDU2NzUsIDAuMDA1Njc3IiwgXAotICAgICAgICAgICIwLjAwNTUxMywgMC4wMDU2NCwgMC4wMDU2NTcsIDAuMDA1NjYyLCAwLjAwNTY2NywgMC4wMDU2NjksIDAuMDA1NjcxIiwgXAotICAgICAgICAgICIwLjAwNTUwOSwgMC4wMDU2MzMsIDAuMDA1NjU0LCAwLjAwNTY1NywgMC4wMDU2NjEsIDAuMDA1NjY0LCAwLjAwNTY2NCIsIFwKLSAgICAgICAgICAiMC4wMDU1MDksIDAuMDA1NjMxLCAwLjAwNTY1MSwgMC4wMDU2NTgsIDAuMDA1NjYzLCAwLjAwNTY2NCwgMC4wMDU2NjYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNzEwNCwgMC4wMDcyMDEsIDAuMDA3MjExLCAwLjAwNzIxNSwgMC4wMDcyMTYsIDAuMDA3MjE2LCAwLjAwNzIyMSIsIFwKLSAgICAgICAgICAiMC4wMDcwODgsIDAuMDA3MTg3LCAwLjAwNzE5OCwgMC4wMDcyMDEsIDAuMDA3MjAzLCAwLjAwNzIwNSwgMC4wMDcyMDgiLCBcCi0gICAgICAgICAgIjAuMDA3MDY5LCAwLjAwNzE3LCAwLjAwNzE4MiwgMC4wMDcxODYsIDAuMDA3MTg5LCAwLjAwNzE5MywgMC4wMDcxOTUiLCBcCi0gICAgICAgICAgIjAuMDA3MDQ3LCAwLjAwNzE1MiwgMC4wMDcxNjYsIDAuMDA3MTcsIDAuMDA3MTczLCAwLjAwNzE3NSwgMC4wMDcxNzciLCBcCi0gICAgICAgICAgIjAuMDA3MDIzLCAwLjAwNzEzMywgMC4wMDcxNDgsIDAuMDA3MTUzLCAwLjAwNzE1NywgMC4wMDcxNTksIDAuMDA3MTY0IiwgXAotICAgICAgICAgICIwLjAwNzAwMSwgMC4wMDcxMTMsIDAuMDA3MTMxLCAwLjAwNzEzNywgMC4wMDcxNDEsIDAuMDA3MTQ2LCAwLjAwNzE0NiIsIFwKLSAgICAgICAgICAiMC4wMDY5NzUsIDAuMDA3MDkzLCAwLjAwNzExNywgMC4wMDcxMjIsIDAuMDA3MTI1LCAwLjAwNzEzMSwgMC4wMDcxMzEiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFJOKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDIzMzU3NDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDIzMjk5OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMjMzNTc0OwotICAgIGNsb2NrIDogdHJ1ZTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAzMzEsIDAuMDAwMzMxLCAwLjAwMDMzLCAwLjAwMDMzLCAwLjAwMDMzLCAwLjAwMDMzLCAwLjAwMDMzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzMzLCAwLjAwMDMzMiwgMC4wMDAzMzIsIDAuMDAwMzMyLCAwLjAwMDMzMiwgMC4wMDAzMzEsIDAuMDAwMzMyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkciOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX2ZhbGxpbmc7Ci0gICAgICB3aGVuIDogIkQmU04iOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8xX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMjMxMjUsIC0wLjIyNjI1LCAtMC4yMTM3NSwgLTAuMjA3NSwgLTAuMjEzNzUsIC0wLjIyMjUsIC0wLjIzODc1IiwgXAotICAgICAgICAgICItMC4yNDI1LCAtMC4yMzc1LCAtMC4yMjUsIC0wLjIxODc1LCAtMC4yMjUsIC0wLjIzMzc1LCAtMC4yNSIsIFwKLSAgICAgICAgICAiLTAuMjYxMjUsIC0wLjI1LCAtMC4yMzc1LCAtMC4yMzEyNSwgLTAuMjM3NSwgLTAuMjQ2MjUsIC0wLjI2MjUiLCBcCi0gICAgICAgICAgIi0wLjI3Mzc1LCAtMC4yNjI1LCAtMC4yNSwgLTAuMjUsIC0wLjI1LCAtMC4yNjUsIC0wLjI3NSIsIFwKLSAgICAgICAgICAiLTAuMjg2MjUsIC0wLjI3NSwgLTAuMjYyNSwgLTAuMjYyNSwgLTAuMjYyNSwgLTAuMjc3NSwgLTAuMjkzNzUiLCBcCi0gICAgICAgICAgIi0wLjMwODc1LCAtMC4yOTc1LCAtMC4yODUsIC0wLjI4NSwgLTAuMjg1LCAtMC4zLCAtMC4zMSIsIFwKLSAgICAgICAgICAiLTAuMzMsIC0wLjMxODc1LCAtMC4zMDYyNSwgLTAuMywgLTAuMzA2MjUsIC0wLjMxNSwgLTAuMzMxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUk4iOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFEJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgZmFsbF9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMzA4NTI2LCAwLjMyMDE2NywgMC4zMzQ1MzksIDAuMzQ3ODE4LCAwLjM2MDkxMSwgMC4zODEyMjEsIDAuMzk4MTExIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkciOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9mYWxsaW5nOwotICAgICAgd2hlbiA6ICJEJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMV9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI2ODc1LCAwLjI1NzUsIDAuMjQ1LCAwLjIzMjUsIDAuMjMyNSwgMC4yNDc1LCAwLjI3IiwgXAotICAgICAgICAgICIwLjI4LCAwLjI2ODc1LCAwLjI1NjI1LCAwLjI0Mzc1LCAwLjI0Mzc1LCAwLjI1ODc1LCAwLjI4MTI1IiwgXAotICAgICAgICAgICIwLjI5MjUsIDAuMjgxMjUsIDAuMjY4NzUsIDAuMjU2MjUsIDAuMjU2MjUsIDAuMjcxMjUsIDAuMjkzNzUiLCBcCi0gICAgICAgICAgIjAuMzA1LCAwLjI5Mzc1LCAwLjI4MTI1LCAwLjI2ODc1LCAwLjI2ODc1LCAwLjI4Mzc1LCAwLjMwNjI1IiwgXAotICAgICAgICAgICIwLjMxNzUsIDAuMzA2MjUsIDAuMjkzNzUsIDAuMjgxMjUsIDAuMjgxMjUsIDAuMjk2MjUsIDAuMzE4NzUiLCBcCi0gICAgICAgICAgIjAuMzQsIDAuMzI4NzUsIDAuMzE2MjUsIDAuMzAzNzUsIDAuMzAzNzUsIDAuMzE4NzUsIDAuMzQxMjUiLCBcCi0gICAgICAgICAgIjAuMzU1LCAwLjM1LCAwLjMzMTI1LCAwLjMyNSwgMC4zMjUsIDAuMzQsIDAuMzYyNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oU04pICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTM5OTgxOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTM5OTgxOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTM5NjY2OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDQ4NSwgMC4wMDA0ODQsIDAuMDAwNDg0LCAwLjAwMDQ4NCwgMC4wMDA0ODQsIDAuMDAwNDg0LCAwLjAwMDQ4NCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDQ5NSwgMC4wMDA0ODgsIDAuMDAwNDg3LCAwLjAwMDQ4NywgMC4wMDA0ODcsIDAuMDAwNDg2LCAwLjAwMDQ4NyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQiOwotICAgICAgc2RmX2NvbmQgOiAiRCA9PSAxJ2IwIjsKLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjIxOTUzOCwgMC4yMzA3NTIsIDAuMjQ1MDAxLCAwLjI1ODk3OCwgMC4yNzMwMjIsIDAuMjk1MzEzLCAwLjMxMzc0MyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJHIjsKLSAgICAgIHRpbWluZ190eXBlIDogcmVjb3ZlcnlfZmFsbGluZzsKLSAgICAgIHdoZW4gOiAiIUQmUk4iOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1JOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQocmVjb3ZlcnlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE4NzUsIDAuMDAxMjUsIC0wLjAxMTI1LCAtMC4wMjM3NSwgLTAuMDM2MjUsIC0wLjA1MjUsIC0wLjA2NzUiLCBcCi0gICAgICAgICAgIjAuMDIzNzUsIDAuMDEyNSwgMCwgLTAuMDEyNSwgLTAuMDI1LCAtMC4wNDc1LCAtMC4wNjI1IiwgXAotICAgICAgICAgICIwLjAzNjI1LCAwLjAyNSwgMC4wMTI1LCAwLCAtMC4wMTI1LCAtMC4wMzUsIC0wLjA1IiwgXAotICAgICAgICAgICIwLjA0ODc1LCAwLjAzNzUsIDAuMDI1LCAwLjAwNjI1LCAtMC4wMDYyNSwgLTAuMDIyNSwgLTAuMDM3NSIsIFwKLSAgICAgICAgICAiMC4wNjEyNSwgMC4wNSwgMC4wMzEyNSwgMC4wMTg3NSwgMC4wMDYyNSwgLTAuMDE2MjUsIC0wLjAzMTI1IiwgXAotICAgICAgICAgICIwLjA3NzUsIDAuMDY2MjUsIDAuMDQ3NSwgMC4wMzUsIDAuMDIyNSwgMCwgLTAuMDE1IiwgXAotICAgICAgICAgICIwLjA5MjUsIDAuMDgxMjUsIDAuMDYyNSwgMC4wNSwgMC4wMzc1LCAwLjAxNSwgMCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJlY292ZXJ5X3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUciOwotICAgICAgc2RmX2NvbmQgOiAiRyA9PSAxJ2IwIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChyZWNvdmVyeV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjUsIDAuMDIsIDAuMDA3NSwgLTAuMDA1LCAtMC4wMTEyNSwgLTAuMDIxMjUsIC0wLjAzIiwgXAotICAgICAgICAgICIwLjAzNjI1LCAwLjAzMTI1LCAwLjAxODc1LCAwLjAwNjI1LCAwLCAtMC4wMTYyNSwgLTAuMDI1IiwgXAotICAgICAgICAgICIwLjA0ODc1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDE4NzUsIDAuMDEyNSwgLTAuMDAzNzUsIC0wLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMDYxMjUsIDAuMDUsIDAuMDQzNzUsIDAuMDMxMjUsIDAuMDI1LCAwLjAwODc1LCAwIiwgXAotICAgICAgICAgICIwLjA3Mzc1LCAwLjA2MjUsIDAuMDUsIDAuMDQzNzUsIDAuMDMxMjUsIDAuMDIxMjUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4wOSwgMC4wNzg3NSwgMC4wNjYyNSwgMC4wNiwgMC4wNDc1LCAwLjAzNzUsIDAuMDI4NzUiLCBcCi0gICAgICAgICAgIjAuMDk4NzUsIDAuMDkzNzUsIDAuMDgxMjUsIDAuMDc1LCAwLjA2MjUsIDAuMDUyNSwgMC4wMzc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkciOwotICAgICAgdGltaW5nX3R5cGUgOiByZW1vdmFsX2ZhbGxpbmc7Ci0gICAgICB3aGVuIDogIiFEJlJOIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9STl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHJlbW92YWxfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDYyNSwgMC4wNzM3NSwgMC4wODYyNSwgMC4xMDUsIDAuMTE3NSwgMC4xNCwgMC4xNjEyNSIsIFwKLSAgICAgICAgICAiMC4wNTEyNSwgMC4wNjI1LCAwLjA3NSwgMC4wOTM3NSwgMC4xMDYyNSwgMC4xMjg3NSwgMC4xNSIsIFwKLSAgICAgICAgICAiMC4wMzg3NSwgMC4wNSwgMC4wNjI1LCAwLjA4MTI1LCAwLjA5Mzc1LCAwLjExNjI1LCAwLjEzNzUiLCBcCi0gICAgICAgICAgIjAuMDI2MjUsIDAuMDM3NSwgMC4wNSwgMC4wNjg3NSwgMC4wODEyNSwgMC4xMDM3NSwgMC4xMjUiLCBcCi0gICAgICAgICAgIjAuMDEzNzUsIDAuMDI1LCAwLjA0Mzc1LCAwLjA1NjI1LCAwLjA2ODc1LCAwLjA5MTI1LCAwLjExMjUiLCBcCi0gICAgICAgICAgIi0wLjAwMjUsIDAuMDA4NzUsIDAuMDIxMjUsIDAuMDQsIDAuMDUyNSwgMC4wNzUsIDAuMDk2MjUiLCBcCi0gICAgICAgICAgIi0wLjAxNzUsIDAsIDAuMDEyNSwgMC4wMjUsIDAuMDQzNzUsIDAuMDYsIDAuMDgxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUk4iOwotICAgICAgdGltaW5nX3R5cGUgOiByZW1vdmFsX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUciOwotICAgICAgc2RmX2NvbmQgOiAiRyA9PSAxJ2IwIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChyZW1vdmFsX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyNSwgMC4wNDI1LCAwLjA1NSwgMC4wNjc1LCAwLjA4LCAwLjA5NjI1LCAwLjExMTI1IiwgXAotICAgICAgICAgICIwLjAyLCAwLjAzMTI1LCAwLjA0Mzc1LCAwLjA1NjI1LCAwLjA2ODc1LCAwLjA4NSwgMC4xIiwgXAotICAgICAgICAgICIwLjAwMTI1LCAwLjAxODc1LCAwLjAzMTI1LCAwLjA0Mzc1LCAwLjA1NjI1LCAwLjA3MjUsIDAuMDg3NSIsIFwKLSAgICAgICAgICAiLTAuMDA1LCAwLjAwNjI1LCAwLjAxODc1LCAwLjAzMTI1LCAwLjA0Mzc1LCAwLjA2LCAwLjA3NSIsIFwKLSAgICAgICAgICAiLTAuMDE3NSwgLTAuMDA2MjUsIDAuMDA2MjUsIDAuMDE4NzUsIDAuMDMxMjUsIDAuMDUzNzUsIDAuMDY4NzUiLCBcCi0gICAgICAgICAgIi0wLjAzMzc1LCAtMC4wMjI1LCAtMC4wMSwgMC4wMDI1LCAwLjAxNSwgMC4wMzc1LCAwLjA1MjUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAxMjUsIDAsIDAuMDIyNSwgMC4wMzc1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBUTEFUWDIgKgotICogLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChUTEFUWDIpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4zMTgwNTI7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgbGF0Y2ggKFFJTlQsTjApIHsKLSAgICBkYXRhX2luIDogIkQiOwotICAgIGVuYWJsZSA6ICJHIjsKLSAgfQotICBwaW4oRCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNTc3NDg0OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDU3NTg4NDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA1Nzc0ODQ7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMTU4LCAwLjAwMDE2LCAwLjAwMDE2MSwgMC4wMDAxNjEsIDAuMDAwMTYyLCAwLjAwMDE2MiwgMC4wMDAxNjIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiwgMC4wMDAxNjYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfZmFsbGluZzsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wNDM3NSwgLTAuMDI2MjUsIC0wLjAxMzc1LCAtMC4wMDEyNSwgMC4wMTc1LCAwLjA0LCAwLjA1NSIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNDM3NSwgLTAuMDI1LCAtMC4wMTI1LCAwLjAwNjI1LCAwLjAyODc1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICItMC4wNjc1LCAtMC4wNTYyNSwgLTAuMDM3NSwgLTAuMDI1LCAtMC4wMTI1LCAwLjAxLCAwLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wOCwgLTAuMDY4NzUsIC0wLjA1NjI1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAwMjUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjA5MjUsIC0wLjA4MTI1LCAtMC4wNjg3NSwgLTAuMDUsIC0wLjAzNzUsIC0wLjAxNSwgMCIsIFwKLSAgICAgICAgICAiLTAuMTE1LCAtMC4xMDM3NSwgLTAuMDkxMjUsIC0wLjA3MjUsIC0wLjA2LCAtMC4wMzc1LCAtMC4wMTYyNSIsIFwKLSAgICAgICAgICAiLTAuMTM2MjUsIC0wLjEyNSwgLTAuMTA2MjUsIC0wLjA5Mzc1LCAtMC4wODEyNSwgLTAuMDU4NzUsIC0wLjAzNzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wNjg3NSwgLTAuMDU3NSwgLTAuMDQ1LCAtMC4wMzg3NSwgLTAuMDMyNSwgLTAuMDIyNSwgLTAuMDEzNzUiLCBcCi0gICAgICAgICAgIi0wLjA4LCAtMC4wNjg3NSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDMzNzUsIC0wLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDkyNSwgLTAuMDgxMjUsIC0wLjA3NSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA0NjI1LCAtMC4wMzc1IiwgXAotICAgICAgICAgICItMC4xMDUsIC0wLjA5Mzc1LCAtMC4wODEyNSwgLTAuMDc1LCAtMC4wNjg3NSwgLTAuMDU4NzUsIC0wLjA1IiwgXAotICAgICAgICAgICItMC4xMTc1LCAtMC4xMDYyNSwgLTAuMDkzNzUsIC0wLjA4NzUsIC0wLjA4MTI1LCAtMC4wNzEyNSwgLTAuMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMTQsIC0wLjEyODc1LCAtMC4xMTYyNSwgLTAuMTAzNzUsIC0wLjA5NzUsIC0wLjA4NzUsIC0wLjA3ODc1IiwgXAotICAgICAgICAgICItMC4xNTUsIC0wLjE0Mzc1LCAtMC4xMzEyNSwgLTAuMTI1LCAtMC4xMTI1LCAtMC4xMDI1LCAtMC4wOTM3NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJHIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfZmFsbGluZzsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzUsIDAuMDYzNzUsIDAuMDQ1LCAwLjAzMjUsIDAuMDEzNzUsIC0wLjAwODc1LCAtMC4wMyIsIFwKLSAgICAgICAgICAiMC4wODYyNSwgMC4wNzUsIDAuMDU2MjUsIDAuMDM3NSwgMC4wMjUsIDAuMDAyNSwgLTAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMDk4NzUsIDAuMDg3NSwgMC4wNjg3NSwgMC4wNTYyNSwgMC4wMzc1LCAwLjAxNSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMTExMjUsIDAuMSwgMC4wODEyNSwgMC4wNjg3NSwgMC4wNSwgMC4wMjc1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMTIzNzUsIDAuMTEyNSwgMC4wOTM3NSwgMC4wODEyNSwgMC4wNjI1LCAwLjA0LCAwLjAyNSIsIFwKLSAgICAgICAgICAiMC4xNDYyNSwgMC4xMzUsIDAuMTE2MjUsIDAuMTAzNzUsIDAuMDg1LCAwLjA2MjUsIDAuMDQ3NSIsIFwKLSAgICAgICAgICAiMC4xNjc1LCAwLjE1LCAwLjEzNzUsIDAuMTE4NzUsIDAuMTA2MjUsIDAuMDgzNzUsIDAuMDYyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEsIDAuMDg4NzUsIDAuMDc2MjUsIDAuMDcsIDAuMDYzNzUsIDAuMDUzNzUsIDAuMDUxMjUiLCBcCi0gICAgICAgICAgIjAuMTExMjUsIDAuMSwgMC4wODc1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNjUsIDAuMDYyNSIsIFwKLSAgICAgICAgICAiMC4xMjM3NSwgMC4xMTI1LCAwLjEsIDAuMDkzNzUsIDAuMDg3NSwgMC4wNzc1LCAwLjA3NSIsIFwKLSAgICAgICAgICAiMC4xMzYyNSwgMC4xMjUsIDAuMTEyNSwgMC4xMDYyNSwgMC4xLCAwLjA5LCAwLjA4MTI1IiwgXAotICAgICAgICAgICIwLjE0ODc1LCAwLjEzNzUsIDAuMTI1LCAwLjExODc1LCAwLjExMjUsIDAuMTAyNSwgMC4wOTM3NSIsIFwKLSAgICAgICAgICAiMC4xNjUsIDAuMTUzNzUsIDAuMTQxMjUsIDAuMTM1LCAwLjEyODc1LCAwLjExODc1LCAwLjExIiwgXAotICAgICAgICAgICIwLjE4LCAwLjE2ODc1LCAwLjE2MjUsIDAuMTUsIDAuMTQzNzUsIDAuMTMzNzUsIDAuMTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihHKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA1ODMwNjQ7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNTgyNzI4OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDU4MzA2NDsKLSAgICBjbG9jayA6IHRydWU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxNTgxLCAwLjAwMTU2NywgMC4wMDE1NTUsIDAuMDAxNTQ5LCAwLjAwMTU0MiwgMC4wMDE1MzgsIDAuMDAxNTM4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyNjAxLCAwLjAwMjU5MSwgMC4wMDI1ODMsIDAuMDAyNTc3LCAwLjAwMjU3MiwgMC4wMDI1NjgsIDAuMDAyNTY2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkciOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFEIjsKLSAgICAgIHNkZl9jb25kIDogIkQgPT0gMSdiMCI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4yNzk5MywgMC4yOTE1OTgsIDAuMzA2ODEyLCAwLjMyMjE1LCAwLjMzNzI3MiwgMC4zNjExNzUsIDAuMzgxMDI4Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihRKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMjY4NzE7Ci0gICAgZnVuY3Rpb24gOiAiUUlOVCI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjM4MDUyLCAwLjQxNzY0MiwgMC41NjE1ODYsIDAuNzQyMDY4LCAwLjkyMTE1NywgMS4xMDA4MiwgMS4yODEwMyIsIFwKLSAgICAgICAgICAiMC4yNDk3ODIsIDAuNDI5MzYyLCAwLjU3Mzg0NCwgMC43NTM5MiwgMC45MzMwODIsIDEuMTExMDUsIDEuMjkyNDkiLCBcCi0gICAgICAgICAgIjAuMjYzODY0LCAwLjQ0MzQ0MiwgMC41ODgwNzQsIDAuNzY3OTgxLCAwLjk0NzEzNiwgMS4xMjUwNywgMS4zMDY2MiIsIFwKLSAgICAgICAgICAiMC4yNzc2NywgMC40NTczNjIsIDAuNjAxMTgzLCAwLjc4MTAwMSwgMC45NjA3OTQsIDEuMTQwNjYsIDEuMzE5ODciLCBcCi0gICAgICAgICAgIjAuMjkxNDQ2LCAwLjQ3MDk5NywgMC42MTQ4NTUsIDAuNzk0OTQsIDAuOTc0MTEzLCAxLjE1NTEyLCAxLjMzMzY1IiwgXAotICAgICAgICAgICIwLjMxMzM2MiwgMC40OTI5MDUsIDAuNjM2ODU1LCAwLjgxNzM2OCwgMC45OTY0NDEsIDEuMTc2MDcsIDEuMzU2MSIsIFwKLSAgICAgICAgICAiMC4zMzIwMTksIDAuNTExNTYyLCAwLjY1NTUyNywgMC44MzYwNDIsIDEuMDE1MjgsIDEuMTkzMiwgMS4zNzQ2OCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODQ2NjksIDAuNDUxNDA4LCAwLjc0NTgwMywgMS4xMDcyNCwgMS40ODIxNCwgMS44NTAyOCwgMi4yMTg0OSIsIFwKLSAgICAgICAgICAiMC4wODQ1OTQsIDAuNDUxNDM1LCAwLjc0MzQzNSwgMS4xMDk5OSwgMS40ODIwMiwgMS44MzYxNCwgMi4yMTg0IiwgXAotICAgICAgICAgICIwLjA4NDU5MiwgMC40NTE0MzcsIDAuNzM5MTU3LCAxLjEwOTQzLCAxLjQ4MjA0LCAxLjgzNDksIDIuMjE4NDEiLCBcCi0gICAgICAgICAgIjAuMDg0Nzc4LCAwLjQ0NzE3OCwgMC43NDU4NzgsIDEuMTEzOTUsIDEuNDgyMjQsIDEuODUwNDMsIDIuMjE4NTIiLCBcCi0gICAgICAgICAgIjAuMDg0Njk4LCAwLjQ1MTQwNCwgMC43NDU4MzgsIDEuMTEzNjgsIDEuNDgxMTIsIDEuODM3NjcsIDIuMjE4NTIiLCBcCi0gICAgICAgICAgIjAuMDg0NzUzLCAwLjQ1MTQwOSwgMC43NDU3OTgsIDEuMTA3OTUsIDEuNDgyMTEsIDEuODUwMywgMi4yMTg1MyIsIFwKLSAgICAgICAgICAiMC4wODQ2ODMsIDAuNDUxNDIyLCAwLjc0NTgxNiwgMS4xMDc4OSwgMS40ODIwNSwgMS44MzQ2NiwgMi4yMTg0MyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMzY3MjQsIDAuNDQzMzE4LCAwLjYwODQ1NiwgMC44MTU1MTgsIDEuMDI1NiwgMS4yMzA3MiwgMS40NDA3OSIsIFwKLSAgICAgICAgICAiMC4yNDgyMiwgMC40NTUwNjYsIDAuNjIwMTg1LCAwLjgyNjkxOSwgMS4wMzcyMSwgMS4yNDQ3MiwgMS40NTIwNSIsIFwKLSAgICAgICAgICAiMC4yNjEyMTksIDAuNDY4MTQyLCAwLjYzMzE4NSwgMC44Mzk4NjUsIDEuMDUwMjksIDEuMjU0NzYsIDEuNDY1NTMiLCBcCi0gICAgICAgICAgIjAuMjczODA3LCAwLjQ4MTA5MiwgMC42NDU3ODMsIDAuODUyNDk2LCAxLjA2MjgsIDEuMjcwMzEsIDEuNDc3NjQiLCBcCi0gICAgICAgICAgIjAuMjg2MTMsIDAuNDkyOTQ5LCAwLjY1ODA5NSwgMC44NjQ4MTcsIDEuMDc1MTIsIDEuMjgyNjIsIDEuNDg5OTIiLCBcCi0gICAgICAgICAgIjAuMzA1MzcxLCAwLjUxMjEyLCAwLjY3OTMxLCAwLjg4NDUxOSwgMS4wOTA4MywgMS4zMDE4NCwgMS41MDkzMyIsIFwKLSAgICAgICAgICAiMC4zMjE4NjgsIDAuNTI4Njg3LCAwLjY5MzgyNiwgMC45MDA1NjEsIDEuMTEwODUsIDEuMzE4MzUsIDEuNTI1NjgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk0Nzc3LCAwLjUwNjQxNCwgMC44MzMzODcsIDEuMjQ4NDgsIDEuNjU4LCAyLjA3NTMxLCAyLjQ3ODQiLCBcCi0gICAgICAgICAgIjAuMDk0NzAxLCAwLjUwNDYyLCAwLjgzNjAzNywgMS4yNDgwNCwgMS42NTgwMiwgMi4wNjcwMywgMi40Nzk2IiwgXAotICAgICAgICAgICIwLjA5NTA2OCwgMC41MDQyNjEsIDAuODMzNzI4LCAxLjI0NjQ5LCAxLjY1OTgsIDIuMDcxNjQsIDIuNDgwMTYiLCBcCi0gICAgICAgICAgIjAuMDk0NzY4LCAwLjUwNjUyMSwgMC44MzU5NTgsIDEuMjQ4MSwgMS42NTc5MywgMi4wNjcwNCwgMi40Nzk2MSIsIFwKLSAgICAgICAgICAiMC4wOTQ2ODMsIDAuNTA1ODYyLCAwLjgzNjAyNSwgMS4yNDgwOCwgMS42NTc5NywgMi4wNjcwNywgMi40Nzk3IiwgXAotICAgICAgICAgICIwLjA5NDYxMSwgMC41MDYxNjgsIDAuODM2NTcyLCAxLjI0NDMxLCAxLjY1OTU2LCAyLjA3MDQsIDIuNDgwOTYiLCBcCi0gICAgICAgICAgIjAuMDk0Njk3LCAwLjUwNTc1NSwgMC44MzYwNTksIDEuMjQ4MDYsIDEuNjU3ODYsIDIuMDY3MTEsIDIuNDc5NyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJHIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5vbl91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcmlzaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMxMDE0NSwgMC40ODk1MzcsIDAuNjMzNjE5LCAwLjgxMzkzNCwgMC45OTMxNDcsIDEuMTczMDgsIDEuMzUyMjQiLCBcCi0gICAgICAgICAgIjAuMzIxNzcsIDAuNTAxMzg1LCAwLjY0NTI0OCwgMC44MjUzMDIsIDEuMDA0NzUsIDEuMTg1MjcsIDEuMzY0MDIiLCBcCi0gICAgICAgICAgIjAuMzM3MjM2LCAwLjUxNjg3OSwgMC42NjA3MzUsIDAuODQwNjE0LCAxLjAyMDM4LCAxLjIwMDM2LCAxLjM3OTQ3IiwgXAotICAgICAgICAgICIwLjM1MjcxNiwgMC41MzIwNzUsIDAuNjc2MTI3LCAwLjg1NTk2NSwgMS4wMzU3NywgMS4yMTU2MiwgMS4zOTQ4NSIsIFwKLSAgICAgICAgICAiMC4zNjc5MTUsIDAuNTQ3NDg5LCAwLjY5MTQxNywgMC44NzIwNTEsIDEuMDQ5NDQsIDEuMjI5MjMsIDEuNDEwNDYiLCBcCi0gICAgICAgICAgIjAuMzkxOTY4LCAwLjU3MTQ2OCwgMC43MTU0MiwgMC44OTU3OTEsIDEuMDc0OTYsIDEuMjU0NjcsIDEuNDM1NzIiLCBcCi0gICAgICAgICAgIjAuNDExOTUxLCAwLjU5MTQ0NSwgMC43MzU0NjQsIDAuOTE1MzE2LCAxLjA5NTEsIDEuMjc1LCAxLjQ1NDE5Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4NDY5MiwgMC40NTEyNTEsIDAuNzQ1ODEyLCAxLjEwMzE3LCAxLjQ4MjExLCAxLjg1MDI3LCAyLjIxODU0IiwgXAotICAgICAgICAgICIwLjA4NDY4NiwgMC40NTEzODksIDAuNzQ1ODE2LCAxLjExMzY3LCAxLjQ3NDAxLCAxLjg1MDExLCAyLjIxODUiLCBcCi0gICAgICAgICAgIjAuMDg0NzMyLCAwLjQ1MTM4OCwgMC43NDU4MTcsIDEuMTEzODEsIDEuNDgyMDksIDEuODUwMjUsIDIuMjE4NSIsIFwKLSAgICAgICAgICAiMC4wODQ2NzUsIDAuNDUxMjkzLCAwLjc0NTgyMSwgMS4xMTM4NCwgMS40ODIwOSwgMS44NTAzMSwgMi4yMTg1IiwgXAotICAgICAgICAgICIwLjA4NDY4LCAwLjQ1MTQwMywgMC43NDU4MTEsIDEuMTEwNiwgMS40NzE0OCwgMS44Mzc2NywgMi4yMTg0NSIsIFwKLSAgICAgICAgICAiMC4wODQ2NTksIDAuNDUxNDA2LCAwLjc0NTc5OCwgMS4xMDQ1NywgMS40ODIxLCAxLjg1MDI4LCAyLjIwMTUyIiwgXAotICAgICAgICAgICIwLjA4NDczMSwgMC40NTE0LCAwLjc0NTgxNywgMS4xMTM4MywgMS40ODIwOSwgMS44NTAyOCwgMi4yMTg1MiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yNzk5MywgMC40ODY0MjIsIDAuNjUxODgxLCAwLjg1ODc1NSwgMS4wNjg4OSwgMS4yNzY0MiwgMS40ODM3IiwgXAotICAgICAgICAgICIwLjI5MTU5OCwgMC40OTkwNjYsIDAuNjYzNTY4LCAwLjg3MTcxNSwgMS4wODA1NiwgMS4yODgwMywgMS40OTA2MSIsIFwKLSAgICAgICAgICAiMC4zMDY4MTIsIDAuNTE0MjIzLCAwLjY3ODc1NywgMC44ODU5ODMsIDEuMDk1NzUsIDEuMzAzMzMsIDEuNTEwNjMiLCBcCi0gICAgICAgICAgIjAuMzIyMTUsIDAuNTI4NzM3LCAwLjY5NDE0MSwgMC45MDM5MTUsIDEuMTExMTgsIDEuMzE4NTcsIDEuNTI2MDQiLCBcCi0gICAgICAgICAgIjAuMzM3MjcyLCAwLjU0NDExLCAwLjcxMTI3LCAwLjkxNjgzNCwgMS4xMjQ1LCAxLjMzMzcsIDEuNTQxMzEiLCBcCi0gICAgICAgICAgIjAuMzYxMTc1LCAwLjU2NzkwMywgMC43MzMyMTksIDAuOTQwNTM1LCAxLjE1MDE1LCAxLjM1MzQ0LCAxLjU2NTM3IiwgXAotICAgICAgICAgICIwLjM4MTAyOCwgMC41ODg1NTIsIDAuNzUyOTY4LCAwLjk2MDEzLCAxLjE2OTk1LCAxLjM3NzU1LCAxLjU4MDUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk1Mzk5LCAwLjUwNTg2NSwgMC44MzYxMzQsIDEuMjQ1MjEsIDEuNjYwMjQsIDIuMDcwNDksIDIuNDgwNyIsIFwKLSAgICAgICAgICAiMC4wOTQ2MDEsIDAuNTA0OTI3LCAwLjgzNjExOCwgMS4yNTAzOSwgMS42NTc3NCwgMi4wNjcxNCwgMi40ODUzNSIsIFwKLSAgICAgICAgICAiMC4wOTUxMDEsIDAuNTA2MTMyLCAwLjgzMzg2NSwgMS4yNDU1NSwgMS42NTc5NSwgMi4wNjcxOSwgMi40NzkzOSIsIFwKLSAgICAgICAgICAiMC4wOTUwMjksIDAuNTA1NTMzLCAwLjgzNDI3NCwgMS4yNDg3NiwgMS42NTc4NSwgMi4wNjc0NCwgMi40Nzk3OSIsIFwKLSAgICAgICAgICAiMC4wOTUyODQsIDAuNTA3MTc3LCAwLjgzNjY2MSwgMS4yNDk0NSwgMS42NjMxOCwgMi4wNjcyMiwgMi40Nzg5IiwgXAotICAgICAgICAgICIwLjA5NTQzNiwgMC41MDU5MiwgMC44MzM4OTIsIDEuMjQ3NzUsIDEuNjU3NTMsIDIuMDcyODQsIDIuNDc4NTEiLCBcCi0gICAgICAgICAgIjAuMDk1MzcxLCAwLjUwNDczNCwgMC44MzQxMTEsIDEuMjQ1ODcsIDEuNjU3NDEsIDIuMDY3MDgsIDIuNDgzMzgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJEIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDM0NjcsIDAuMDAzNTA2LCAwLjAwMzUxLCAwLjAwMzUxMiwgMC4wMDM1MTYsIDAuMDAzNTE3LCAwLjAwMzUxNSIsIFwKLSAgICAgICAgICAiMC4wMDM0NjIsIDAuMDAzNTAxLCAwLjAwMzUwNSwgMC4wMDM1MDcsIDAuMDAzNTA4LCAwLjAwMzUwOSwgMC4wMDM1MSIsIFwKLSAgICAgICAgICAiMC4wMDM0NTgsIDAuMDAzNDk3LCAwLjAwMzUwMSwgMC4wMDM1MDQsIDAuMDAzNTA1LCAwLjAwMzUwNSwgMC4wMDM1MDYiLCBcCi0gICAgICAgICAgIjAuMDAzNDU1LCAwLjAwMzQ5NCwgMC4wMDM0OTksIDAuMDAzNTAxLCAwLjAwMzUwMiwgMC4wMDM1MDMsIDAuMDAzNTAzIiwgXAotICAgICAgICAgICIwLjAwMzQ1NCwgMC4wMDM0OTMsIDAuMDAzNDk2LCAwLjAwMzQ5OSwgMC4wMDM1MDEsIDAuMDAzNTAxLCAwLjAwMzUwMyIsIFwKLSAgICAgICAgICAiMC4wMDM0NTEsIDAuMDAzNDksIDAuMDAzNDk1LCAwLjAwMzQ5NywgMC4wMDM0OTgsIDAuMDAzNDk4LCAwLjAwMzQ5OSIsIFwKLSAgICAgICAgICAiMC4wMDM0NDgsIDAuMDAzNDg3LCAwLjAwMzQ5LCAwLjAwMzQ5NCwgMC4wMDM0OTUsIDAuMDAzNDk0LCAwLjAwMzQ5NiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzY1MiwgMC4wMDM2OSwgMC4wMDM2OTQsIDAuMDAzNjk2LCAwLjAwMzY5NiwgMC4wMDM2OTcsIDAuMDAzNjk4IiwgXAotICAgICAgICAgICIwLjAwMzY0OSwgMC4wMDM2ODcsIDAuMDAzNjkxLCAwLjAwMzY5MywgMC4wMDM2OTQsIDAuMDAzNjk0LCAwLjAwMzY5NSIsIFwKLSAgICAgICAgICAiMC4wMDM2NDcsIDAuMDAzNjg1LCAwLjAwMzY4OCwgMC4wMDM2OSwgMC4wMDM2OTMsIDAuMDAzNjkzLCAwLjAwMzY5MyIsIFwKLSAgICAgICAgICAiMC4wMDM2NDYsIDAuMDAzNjgzLCAwLjAwMzY4NywgMC4wMDM2ODksIDAuMDAzNjksIDAuMDAzNjksIDAuMDAzNjkxIiwgXAotICAgICAgICAgICIwLjAwMzY0NSwgMC4wMDM2ODIsIDAuMDAzNjg2LCAwLjAwMzY4OCwgMC4wMDM2ODksIDAuMDAzNjg5LCAwLjAwMzY4OSIsIFwKLSAgICAgICAgICAiMC4wMDM2NDEsIDAuMDAzNjc4LCAwLjAwMzY4MywgMC4wMDM2ODQsIDAuMDAzNjg2LCAwLjAwMzY4NiwgMC4wMDM2ODciLCBcCi0gICAgICAgICAgIjAuMDAzNjQsIDAuMDAzNjc3LCAwLjAwMzY4MSwgMC4wMDM2ODMsIDAuMDAzNjg0LCAwLjAwMzY4NSwgMC4wMDM2ODUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJHIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQxOTgsIDAuMDA0MjM3LCAwLjAwNDI0MSwgMC4wMDQyNDMsIDAuMDA0MjQ0LCAwLjAwNDI0NiwgMC4wMDQyNDUiLCBcCi0gICAgICAgICAgIjAuMDA0MTkxLCAwLjAwNDIzLCAwLjAwNDIzNCwgMC4wMDQyMzYsIDAuMDA0MjM3LCAwLjAwNDIzNywgMC4wMDQyMzgiLCBcCi0gICAgICAgICAgIjAuMDA0MTg2LCAwLjAwNDIyNCwgMC4wMDQyMjksIDAuMDA0MjMxLCAwLjAwNDIzMiwgMC4wMDQyMzIsIDAuMDA0MjMzIiwgXAotICAgICAgICAgICIwLjAwNDE4MywgMC4wMDQyMjEsIDAuMDA0MjI1LCAwLjAwNDIyOCwgMC4wMDQyMjgsIDAuMDA0MjI5LCAwLjAwNDIyOSIsIFwKLSAgICAgICAgICAiMC4wMDQxNzksIDAuMDA0MjE4LCAwLjAwNDIyMywgMC4wMDQyMjQsIDAuMDA0MjI1LCAwLjAwNDIyNiwgMC4wMDQyMjciLCBcCi0gICAgICAgICAgIjAuMDA0MTc3LCAwLjAwNDIxNiwgMC4wMDQyMTksIDAuMDA0MjIyLCAwLjAwNDIyNSwgMC4wMDQyMjQsIDAuMDA0MjI1IiwgXAotICAgICAgICAgICIwLjAwNDE3NiwgMC4wMDQyMTUsIDAuMDA0MjE5LCAwLjAwNDIyMSwgMC4wMDQyMjIsIDAuMDA0MjIzLCAwLjAwNDIyMyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDE3MiwgMC4wMDQyMDEsIDAuMDA0MiwgMC4wMDQxOTksIDAuMDA0MTk4LCAwLjAwNDE5NywgMC4wMDQxOTciLCBcCi0gICAgICAgICAgIjAuMDA0MTY2LCAwLjAwNDE5NCwgMC4wMDQxOTMsIDAuMDA0MTkyLCAwLjAwNDE5MSwgMC4wMDQxOSwgMC4wMDQxOSIsIFwKLSAgICAgICAgICAiMC4wMDQxNTgsIDAuMDA0MTg3LCAwLjAwNDE4NiwgMC4wMDQxODYsIDAuMDA0MTgzLCAwLjAwNDE4MywgMC4wMDQxODMiLCBcCi0gICAgICAgICAgIjAuMDA0MTU0LCAwLjAwNDE4MywgMC4wMDQxODIsIDAuMDA0MTgxLCAwLjAwNDE4LCAwLjAwNDE3OSwgMC4wMDQxNzkiLCBcCi0gICAgICAgICAgIjAuMDA0MTUsIDAuMDA0MTc4LCAwLjAwNDE3NywgMC4wMDQxNzYsIDAuMDA0MTc1LCAwLjAwNDE3NCwgMC4wMDQxNzQiLCBcCi0gICAgICAgICAgIjAuMDA0MTQ2LCAwLjAwNDE3NSwgMC4wMDQxNzQsIDAuMDA0MTczLCAwLjAwNDE3MiwgMC4wMDQxNzIsIDAuMDA0MTcxIiwgXAotICAgICAgICAgICIwLjAwNDE0MywgMC4wMDQxNzIsIDAuMDA0MTcyLCAwLjAwNDE3MSwgMC4wMDQxNjksIDAuMDA0MTY5LCAwLjAwNDE2OCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUU4pICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4yNjc1OTsKLSAgICBmdW5jdGlvbiA6ICJOMCI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjE2NjUxLCAwLjM5Nzc4NCwgMC41NDExNjUsIDAuNzIwMjMxLCAwLjg5OTI3LCAxLjA3ODI2LCAxLjI1NzMxIiwgXAotICAgICAgICAgICIwLjIyODE0NSwgMC40MDkyMTMsIDAuNTUyNTc3LCAwLjczMTYxNSwgMC45MTA3MDEsIDEuMDg5NzIsIDEuMjY4NzgiLCBcCi0gICAgICAgICAgIjAuMjQxMjU0LCAwLjQyMjMyMSwgMC41NjU2OTcsIDAuNzQ0ODAyLCAwLjkyMzgwNCwgMS4xMDI4LCAxLjI4MTg1IiwgXAotICAgICAgICAgICIwLjI1Mzc0LCAwLjQzNDgwOCwgMC41NzgxNzUsIDAuNzU3MjE1LCAwLjkzNjI5OSwgMS4xMTUzMiwgMS4yOTQzOCIsIFwKLSAgICAgICAgICAiMC4yNjYwNTUsIDAuNDQ3MTIyLCAwLjU5MDQ4NiwgMC43Njk1MjUsIDAuOTQ4NjEsIDEuMTI3NjMsIDEuMzA2NyIsIFwKLSAgICAgICAgICAiMC4yODUzMSwgMC40NjYzOCwgMC42MDk2ODYsIDAuNzg4Nzc1LCAwLjk2NzkyMywgMS4xNDY4OSwgMS4zMjU5NCIsIFwKLSAgICAgICAgICAiMC4zMDE3OTMsIDAuNDgyODY3LCAwLjYyNjIzMywgMC44MDUyNzEsIDAuOTg0MzU2LCAxLjE2MzM4LCAxLjM0MjQ0Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5NzY3NCwgMC40NTA1MjcsIDAuNzM5OTc3LCAxLjEwNDQyLCAxLjQ3MTk1LCAxLjgzNjM4LCAyLjIwMTYxIiwgXAotICAgICAgICAgICIwLjA5NzYxMSwgMC40NTA0NzksIDAuNzQwMDgzLCAxLjEwNDk3LCAxLjQ3MTk1LCAxLjgzNjc1LCAyLjIwMTc4IiwgXAotICAgICAgICAgICIwLjA5NzYyNSwgMC40NTA0ODgsIDAuNzQwMDA1LCAxLjEwMzgyLCAxLjQ3MTk1LCAxLjgzNjQ5LCAyLjIwMTYxIiwgXAotICAgICAgICAgICIwLjA5NzYxNSwgMC40NTExMDgsIDAuNzQwMDk1LCAxLjEwNDk4LCAxLjQ3MTk0LCAxLjgzNjc1LCAyLjIwMTc4IiwgXAotICAgICAgICAgICIwLjA5NzYwOSwgMC40NTA0OCwgMC43NDAwODUsIDEuMTA0OTgsIDEuNDcxOTUsIDEuODM2NzUsIDIuMjAxODIiLCBcCi0gICAgICAgICAgIjAuMDk3NjIyLCAwLjQ1MDQ5OSwgMC43NDIwOCwgMS4xMDYwNSwgMS40NjgwMywgMS44MzY3OCwgMi4yMDE3OCIsIFwKLSAgICAgICAgICAiMC4wOTc2MzcsIDAuNDUwNDgsIDAuNzQwMDc3LCAxLjEwNDk3LCAxLjQ3MTk0LCAxLjgzNjc0LCAyLjIwMTc3Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIyODE3MiwgMC40MzU5MjMsIDAuNjAwOTM0LCAwLjgwNzI0MywgMS4wMTMzMywgMS4yMTk0OSwgMS40MjU3MiIsIFwKLSAgICAgICAgICAiMC4yMzk5NjksIDAuNDQ3NzE5LCAwLjYxMjgxMSwgMC44MTkwNjQsIDEuMDI1MTUsIDEuMjMxMjgsIDEuNDM3NDgiLCBcCi0gICAgICAgICAgIjAuMjU0MDUsIDAuNDYxOCwgMC42MjY5MjcsIDAuODMzMTQxLCAxLjAzOTIzLCAxLjI0NTM3LCAxLjQ1MTU3IiwgXAotICAgICAgICAgICIwLjI2Nzg1MywgMC40NzU2MjQsIDAuNjQwNjEzLCAwLjg0NjgyMiwgMS4wNTMwMiwgMS4yNTkyLCAxLjQ2NTMxIiwgXAotICAgICAgICAgICIwLjI4MTUxOSwgMC40ODkyOTUsIDAuNjU0MjkyLCAwLjg2MDU0MSwgMS4wNjY3NSwgMS4yNzI5NywgMS40NzkiLCBcCi0gICAgICAgICAgIjAuMzAzNDI1LCAwLjUxMTE4OCwgMC42NzYyLCAwLjg4MjUxMSwgMS4wODg2LCAxLjI5NDc2LCAxLjUwMDk2IiwgXAotICAgICAgICAgICIwLjMyMjE0OSwgMC41Mjk4OTcsIDAuNjk0OTEsIDAuOTAxMjMyLCAxLjEwNzMzLCAxLjMxMzQ3LCAxLjUxOTY2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwNTAyNywgMC41MDY0OCwgMC44MzQyMDMsIDEuMjQzMjUsIDEuNjU1MjEsIDIuMDY1NzksIDIuNDc2NTEiLCBcCi0gICAgICAgICAgIjAuMTA0ODMyLCAwLjUwNjQ0MiwgMC44MzMxMzUsIDEuMjQzMjgsIDEuNjU1MzEsIDIuMDY0NTYsIDIuNDc2NDYiLCBcCi0gICAgICAgICAgIjAuMTA0ODMzLCAwLjUwNjQzOCwgMC44MzMxODcsIDEuMjQzMjksIDEuNjU1MjksIDIuMDY0NTQsIDIuNDc2NDciLCBcCi0gICAgICAgICAgIjAuMTA1MDE0LCAwLjUwNTc5LCAwLjgzNDE1MywgMS4yNDQ2NSwgMS42NTUxNiwgMi4wNjU3NiwgMi40NzYyOSIsIFwKLSAgICAgICAgICAiMC4xMDQ5NDgsIDAuNTA2NSwgMC44MzQxNzYsIDEuMjQ0ODUsIDEuNjUzNjMsIDIuMDYzMjksIDIuNDc2MzEiLCBcCi0gICAgICAgICAgIjAuMTA0OTc5LCAwLjUwNjQ3MywgMC44MzQyMDcsIDEuMjQzMjQsIDEuNjU1MjIsIDIuMDY1NjksIDIuNDc2MyIsIFwKLSAgICAgICAgICAiMC4xMDQ5NTcsIDAuNTA2NDQ3LCAwLjgzNDIsIDEuMjQzMjQsIDEuNjU1MjksIDIuMDY0NTQsIDIuNDc2NDMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBub25fdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJpc2luZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yNjAwMTgsIDAuNDQxMDAxLCAwLjU4NDMwNywgMC43NjMzLCAwLjk0MjM3MSwgMS4xMjEzOCwgMS4zMDA0NSIsIFwKLSAgICAgICAgICAiMC4yNzE2ODIsIDAuNDUyNjU4LCAwLjU5NTk3LCAwLjc3NDk0OSwgMC45NTQwMzIsIDEuMTMzMDUsIDEuMzEyMjIiLCBcCi0gICAgICAgICAgIjAuMjg2OTYxLCAwLjQ2NzkzMywgMC42MTEyNTgsIDAuNzkwMjM2LCAwLjk2OTMzMiwgMS4xNDgzMSwgMS4zMjczOSIsIFwKLSAgICAgICAgICAiMC4zMDIyODUsIDAuNDgzMjY5LCAwLjYyNjU5MiwgMC44MDU1NzUsIDAuOTg0NjUxLCAxLjE2MzY3LCAxLjM0MjY5IiwgXAotICAgICAgICAgICIwLjMxNzM2MywgMC40OTgzNSwgMC42NDE2LCAwLjgyMDY0MiwgMC45OTk2NjcsIDEuMTc4NzQsIDEuMzU3NzYiLCBcCi0gICAgICAgICAgIjAuMzQxMjg1LCAwLjUyMjI3MiwgMC42NjU1NjQsIDAuODQ0NTY1LCAxLjAyMzY0LCAxLjIwMjYzLCAxLjM4MTY2IiwgXAotICAgICAgICAgICIwLjM2MTE1MSwgMC41NDIxMzcsIDAuNjg1NDU4LCAwLjg2NDQzNiwgMS4wNDM1MiwgMS4yMjI1MSwgMS40MDE1MyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTc4OCwgMC40NTAzMDUsIDAuNzQwMDczLCAxLjEwNDkyLCAxLjQ3MjAxLCAxLjgzNjg0LCAyLjIwMjA3IiwgXAotICAgICAgICAgICIwLjA5NzgyNCwgMC40NTExNjYsIDAuNzQwMDc0LCAxLjEwNjU1LCAxLjQ3MTk2LCAxLjgzNjg1LCAyLjE5NjI5IiwgXAotICAgICAgICAgICIwLjA5NzkwNCwgMC40NTExNjEsIDAuNzQwMDE3LCAxLjEwNDc2LCAxLjQ3MjA2LCAxLjgzNjcyLCAyLjIwMTk2IiwgXAotICAgICAgICAgICIwLjA5Nzg3NSwgMC40NTA1MzYsIDAuNzQwMDQ5LCAxLjEwNjg4LCAxLjQ3MTk3LCAxLjgzNjg1LCAyLjIwMTcyIiwgXAotICAgICAgICAgICIwLjA5NzgzOSwgMC40NTA1NzYsIDAuNzQyMTA3LCAxLjEwNjYyLCAxLjQ3MTQ0LCAxLjgzNjg2LCAyLjIwMTcyIiwgXAotICAgICAgICAgICIwLjA5Nzg4MywgMC40NTAyNTQsIDAuNzQwMTQxLCAxLjEwNjUxLCAxLjQ3MTk1LCAxLjgzMzgzLCAyLjIwMTYyIiwgXAotICAgICAgICAgICIwLjA5NzkzMiwgMC40NTExNzUsIDAuNzQwMDM0LCAxLjEwNDc4LCAxLjQ3MiwgMS44MzY3MywgMi4xOTgwNSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMDAyMDQsIDAuNTA3OTQxLCAwLjY3Mjk3MSwgMC44NzkyNiwgMS4wODUzNywgMS4yOTE1NiwgMS40OTc2NyIsIFwKLSAgICAgICAgICAiMC4zMTE4NTEsIDAuNTE5NjEzLCAwLjY4NDYxMiwgMC44OTA4NTgsIDEuMDk3MDgsIDEuMzAzMjcsIDEuNTA5MzMiLCBcCi0gICAgICAgICAgIjAuMzI3MzQyLCAwLjUzNTEwNiwgMC43MDAxMDMsIDAuOTA2MzI1LCAxLjExMjUyLCAxLjMxODcxLCAxLjUyNDgxIiwgXAotICAgICAgICAgICIwLjM0Mjc0MiwgMC41NTA0NzgsIDAuNzE1NTAzLCAwLjkyMTcyLCAxLjEyNzkyLCAxLjMzNDEsIDEuNTQwMjEiLCBcCi0gICAgICAgICAgIjAuMzU4MDAzLCAwLjU2NTc2MiwgMC43MzA3NzIsIDAuOTM3MTEyLCAxLjE0MzE5LCAxLjM0OTMzLCAxLjU1NTUxIiwgXAotICAgICAgICAgICIwLjM4MTk4NCwgMC41ODk3MzgsIDAuNzU0NzUyLCAwLjk2MTA0OSwgMS4xNjcxNSwgMS4zNzMzMiwgMS41Nzk2MyIsIFwKLSAgICAgICAgICAiMC40MDIwNzMsIDAuNjA5ODExLCAwLjc3NDgzMiwgMC45ODEwNSwgMS4xODcyNCwgMS4zOTM0MywgMS41OTk1NCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDUwMDUsIDAuNTA2MjgzLCAwLjgzNDE5MSwgMS4yNDMxMiwgMS42NTUyMSwgMi4wNjU4NSwgMi40NzYyOCIsIFwKLSAgICAgICAgICAiMC4xMDUwMDMsIDAuNTA2NDksIDAuODM0MTU2LCAxLjI0NDgsIDEuNjUzNzQsIDIuMDY2LCAyLjQ3NjIxIiwgXAotICAgICAgICAgICIwLjEwNTAyNywgMC41MDY0OTMsIDAuODM0MTU0LCAxLjI0NDY5LCAxLjY1NTE3LCAyLjA2NTgsIDIuNDc2MiIsIFwKLSAgICAgICAgICAiMC4xMDQ5OCwgMC41MDYyOCwgMC44MzQxNTEsIDEuMjQ0NjYsIDEuNjU1MTcsIDIuMDY1NzQsIDIuNDc2MiIsIFwKLSAgICAgICAgICAiMC4xMDUwNCwgMC41MDY0NjMsIDAuODM0MjAzLCAxLjI0MzIsIDEuNjU0MDIsIDIuMDY0NTksIDIuNDc2NCIsIFwKLSAgICAgICAgICAiMC4xMDQ5NzcsIDAuNTA2NDQ3LCAwLjgzNDE3MSwgMS4yNDMyMywgMS42NTUxNSwgMi4wNjU3LCAyLjQ3MzUyIiwgXAotICAgICAgICAgICIwLjEwNTAyNywgMC41MDYzNTEsIDAuODM0MTU0LCAxLjI0NDY3LCAxLjY1NTE3LCAyLjA2NTc2LCAyLjQ3NjMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJEIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDM2NTIsIDAuMDAzNjksIDAuMDAzNjk0LCAwLjAwMzY5NiwgMC4wMDM2OTYsIDAuMDAzNjk3LCAwLjAwMzY5OCIsIFwKLSAgICAgICAgICAiMC4wMDM2NDksIDAuMDAzNjg3LCAwLjAwMzY5MSwgMC4wMDM2OTMsIDAuMDAzNjk0LCAwLjAwMzY5NCwgMC4wMDM2OTUiLCBcCi0gICAgICAgICAgIjAuMDAzNjQ3LCAwLjAwMzY4NSwgMC4wMDM2ODgsIDAuMDAzNjksIDAuMDAzNjkzLCAwLjAwMzY5MywgMC4wMDM2OTMiLCBcCi0gICAgICAgICAgIjAuMDAzNjQ2LCAwLjAwMzY4MywgMC4wMDM2ODcsIDAuMDAzNjg5LCAwLjAwMzY5LCAwLjAwMzY5LCAwLjAwMzY5MSIsIFwKLSAgICAgICAgICAiMC4wMDM2NDUsIDAuMDAzNjgyLCAwLjAwMzY4NiwgMC4wMDM2ODgsIDAuMDAzNjg5LCAwLjAwMzY4OSwgMC4wMDM2ODkiLCBcCi0gICAgICAgICAgIjAuMDAzNjQxLCAwLjAwMzY3OCwgMC4wMDM2ODMsIDAuMDAzNjg0LCAwLjAwMzY4NiwgMC4wMDM2ODYsIDAuMDAzNjg3IiwgXAotICAgICAgICAgICIwLjAwMzY0LCAwLjAwMzY3NywgMC4wMDM2ODEsIDAuMDAzNjgzLCAwLjAwMzY4NCwgMC4wMDM2ODUsIDAuMDAzNjg1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzNDY3LCAwLjAwMzUwNiwgMC4wMDM1MSwgMC4wMDM1MTIsIDAuMDAzNTE2LCAwLjAwMzUxNywgMC4wMDM1MTUiLCBcCi0gICAgICAgICAgIjAuMDAzNDYyLCAwLjAwMzUwMSwgMC4wMDM1MDUsIDAuMDAzNTA3LCAwLjAwMzUwOCwgMC4wMDM1MDksIDAuMDAzNTEiLCBcCi0gICAgICAgICAgIjAuMDAzNDU4LCAwLjAwMzQ5NywgMC4wMDM1MDEsIDAuMDAzNTA0LCAwLjAwMzUwNSwgMC4wMDM1MDUsIDAuMDAzNTA2IiwgXAotICAgICAgICAgICIwLjAwMzQ1NSwgMC4wMDM0OTQsIDAuMDAzNDk5LCAwLjAwMzUwMSwgMC4wMDM1MDIsIDAuMDAzNTAzLCAwLjAwMzUwMyIsIFwKLSAgICAgICAgICAiMC4wMDM0NTQsIDAuMDAzNDkzLCAwLjAwMzQ5NiwgMC4wMDM0OTksIDAuMDAzNTAxLCAwLjAwMzUwMSwgMC4wMDM1MDMiLCBcCi0gICAgICAgICAgIjAuMDAzNDUxLCAwLjAwMzQ5LCAwLjAwMzQ5NSwgMC4wMDM0OTcsIDAuMDAzNDk4LCAwLjAwMzQ5OCwgMC4wMDM0OTkiLCBcCi0gICAgICAgICAgIjAuMDAzNDQ4LCAwLjAwMzQ4NywgMC4wMDM0OSwgMC4wMDM0OTQsIDAuMDAzNDk1LCAwLjAwMzQ5NCwgMC4wMDM0OTYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJHIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQxNzIsIDAuMDA0MjAxLCAwLjAwNDIsIDAuMDA0MTk5LCAwLjAwNDE5OCwgMC4wMDQxOTcsIDAuMDA0MTk3IiwgXAotICAgICAgICAgICIwLjAwNDE2NiwgMC4wMDQxOTQsIDAuMDA0MTkzLCAwLjAwNDE5MiwgMC4wMDQxOTEsIDAuMDA0MTksIDAuMDA0MTkiLCBcCi0gICAgICAgICAgIjAuMDA0MTU4LCAwLjAwNDE4NywgMC4wMDQxODYsIDAuMDA0MTg2LCAwLjAwNDE4MywgMC4wMDQxODMsIDAuMDA0MTgzIiwgXAotICAgICAgICAgICIwLjAwNDE1NCwgMC4wMDQxODMsIDAuMDA0MTgyLCAwLjAwNDE4MSwgMC4wMDQxOCwgMC4wMDQxNzksIDAuMDA0MTc5IiwgXAotICAgICAgICAgICIwLjAwNDE1LCAwLjAwNDE3OCwgMC4wMDQxNzcsIDAuMDA0MTc2LCAwLjAwNDE3NSwgMC4wMDQxNzQsIDAuMDA0MTc0IiwgXAotICAgICAgICAgICIwLjAwNDE0NiwgMC4wMDQxNzUsIDAuMDA0MTc0LCAwLjAwNDE3MywgMC4wMDQxNzIsIDAuMDA0MTcyLCAwLjAwNDE3MSIsIFwKLSAgICAgICAgICAiMC4wMDQxNDMsIDAuMDA0MTcyLCAwLjAwNDE3MiwgMC4wMDQxNzEsIDAuMDA0MTY5LCAwLjAwNDE2OSwgMC4wMDQxNjgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQxOTgsIDAuMDA0MjM3LCAwLjAwNDI0MSwgMC4wMDQyNDMsIDAuMDA0MjQ0LCAwLjAwNDI0NiwgMC4wMDQyNDUiLCBcCi0gICAgICAgICAgIjAuMDA0MTkxLCAwLjAwNDIzLCAwLjAwNDIzNCwgMC4wMDQyMzYsIDAuMDA0MjM3LCAwLjAwNDIzNywgMC4wMDQyMzgiLCBcCi0gICAgICAgICAgIjAuMDA0MTg2LCAwLjAwNDIyNCwgMC4wMDQyMjksIDAuMDA0MjMxLCAwLjAwNDIzMiwgMC4wMDQyMzIsIDAuMDA0MjMzIiwgXAotICAgICAgICAgICIwLjAwNDE4MywgMC4wMDQyMjEsIDAuMDA0MjI1LCAwLjAwNDIyOCwgMC4wMDQyMjgsIDAuMDA0MjI5LCAwLjAwNDIyOSIsIFwKLSAgICAgICAgICAiMC4wMDQxNzksIDAuMDA0MjE4LCAwLjAwNDIyMywgMC4wMDQyMjQsIDAuMDA0MjI1LCAwLjAwNDIyNiwgMC4wMDQyMjciLCBcCi0gICAgICAgICAgIjAuMDA0MTc3LCAwLjAwNDIxNiwgMC4wMDQyMTksIDAuMDA0MjIyLCAwLjAwNDIyNSwgMC4wMDQyMjQsIDAuMDA0MjI1IiwgXAotICAgICAgICAgICIwLjAwNDE3NiwgMC4wMDQyMTUsIDAuMDA0MjE5LCAwLjAwNDIyMSwgMC4wMDQyMjIsIDAuMDA0MjIzLCAwLjAwNDIyMyIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogVExBVFhMICoKLSAqIC0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoVExBVFhMKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMTU0Nzc4OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIGxhdGNoIChRSU5ULE4wKSB7Ci0gICAgZGF0YV9pbiA6ICJEIjsKLSAgICBlbmFibGUgOiAiRyI7Ci0gIH0KLSAgcGluKEQpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDU4MDE4OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDU3ODY1NjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA1ODAxODsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxNTksIDAuMDAwMTYxLCAwLjAwMDE2MSwgMC4wMDAxNjEsIDAuMDAwMTYyLCAwLjAwMDE2MiwgMC4wMDAxNjIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiwgMC4wMDAxNjYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfZmFsbGluZzsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMzc1LCAtMC4wMiwgLTAuMDA3NSwgMC4wMDUsIDAuMDIzNzUsIDAuMDQ2MjUsIDAuMDYxMjUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wMzc1LCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAuMDEyNSwgMC4wMjg3NSwgMC4wNSIsIFwKLSAgICAgICAgICAiLTAuMDYxMjUsIC0wLjA1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLjAxNjI1LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjA3Mzc1LCAtMC4wNjI1LCAtMC4wNSwgLTAuMDMxMjUsIC0wLjAxODc1LCAwLjAwMzc1LCAwLjAxODc1IiwgXAotICAgICAgICAgICItMC4wODYyNSwgLTAuMDc1LCAtMC4wNjI1LCAtMC4wNDM3NSwgLTAuMDMxMjUsIC0wLjAwODc1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICItMC4xMDg3NSwgLTAuMDk3NSwgLTAuMDg1LCAtMC4wNjYyNSwgLTAuMDUzNzUsIC0wLjAzMTI1LCAtMC4wMTYyNSIsIFwKLSAgICAgICAgICAiLTAuMTMsIC0wLjExODc1LCAtMC4xLCAtMC4wODc1LCAtMC4wNzUsIC0wLjA1MjUsIC0wLjAzMTI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDYyNSwgLTAuMDUxMjUsIC0wLjA0NSwgLTAuMDMyNSwgLTAuMDI2MjUsIC0wLjAxNjI1LCAtMC4wMDc1IiwgXAotICAgICAgICAgICItMC4wNzM3NSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMjc1LCAtMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDg2MjUsIC0wLjA3NSwgLTAuMDY4NzUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDQsIC0wLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wOTg3NSwgLTAuMDg3NSwgLTAuMDgxMjUsIC0wLjA2ODc1LCAtMC4wNjI1LCAtMC4wNTI1LCAtMC4wNDM3NSIsIFwKLSAgICAgICAgICAiLTAuMTExMjUsIC0wLjEsIC0wLjA5Mzc1LCAtMC4wODEyNSwgLTAuMDc1LCAtMC4wNjUsIC0wLjA1NjI1IiwgXAotICAgICAgICAgICItMC4xMzM3NSwgLTAuMTIyNSwgLTAuMTEsIC0wLjEwMzc1LCAtMC4wOTEyNSwgLTAuMDgxMjUsIC0wLjA3MjUiLCBcCi0gICAgICAgICAgIi0wLjE0ODc1LCAtMC4xMzc1LCAtMC4xMjUsIC0wLjExODc1LCAtMC4xMDYyNSwgLTAuMDk2MjUsIC0wLjA4NzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX2ZhbGxpbmc7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDYyNSwgMC4wNDUsIDAuMDMyNSwgMC4wMTM3NSwgMC4wMDEyNSwgLTAuMDIxMjUsIC0wLjA0MjUiLCBcCi0gICAgICAgICAgIjAuMDczNzUsIDAuMDU2MjUsIDAuMDQzNzUsIDAuMDI1LCAwLjAxMjUsIC0wLjAxLCAtMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4wODYyNSwgMC4wNjg3NSwgMC4wNTYyNSwgMC4wMzc1LCAwLjAyNSwgMC4wMDI1LCAtMC4wMTI1IiwgXAotICAgICAgICAgICIwLjA5ODc1LCAwLjA4NzUsIDAuMDY4NzUsIDAuMDU2MjUsIDAuMDM3NSwgMC4wMTUsIDAiLCBcCi0gICAgICAgICAgIjAuMTExMjUsIDAuMSwgMC4wODEyNSwgMC4wNjg3NSwgMC4wNSwgMC4wMjc1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMTMzNzUsIDAuMTIyNSwgMC4xMDM3NSwgMC4wOTEyNSwgMC4wNzI1LCAwLjA1LCAwLjAzNSIsIFwKLSAgICAgICAgICAiMC4xNDg3NSwgMC4xMzc1LCAwLjEyNSwgMC4xMDYyNSwgMC4wOTM3NSwgMC4wNzEyNSwgMC4wNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4NzUsIDAuMDc2MjUsIDAuMDYzNzUsIDAuMDU3NSwgMC4wNTEyNSwgMC4wNDc1LCAwLjAzODc1IiwgXAotICAgICAgICAgICIwLjA5ODc1LCAwLjA4NzUsIDAuMDc1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDU4NzUsIDAuMDUiLCBcCi0gICAgICAgICAgIjAuMTExMjUsIDAuMSwgMC4wODc1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNzEyNSwgMC4wNjI1IiwgXAotICAgICAgICAgICIwLjEyMzc1LCAwLjExMjUsIDAuMSwgMC4wOTM3NSwgMC4wODc1LCAwLjA3NzUsIDAuMDc1IiwgXAotICAgICAgICAgICIwLjEzNjI1LCAwLjEyNSwgMC4xMTI1LCAwLjEwNjI1LCAwLjEsIDAuMDksIDAuMDg3NSIsIFwKLSAgICAgICAgICAiMC4xNTI1LCAwLjE0MTI1LCAwLjEzNSwgMC4xMjI1LCAwLjExNjI1LCAwLjEwNjI1LCAwLjEwMzc1IiwgXAotICAgICAgICAgICIwLjE3Mzc1LCAwLjE2MjUsIDAuMTUsIDAuMTM3NSwgMC4xMzEyNSwgMC4xMjEyNSwgMC4xMTg3NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRykgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjM3MjQxOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYzNjkyMzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2MzcyNDE7Ci0gICAgY2xvY2sgOiB0cnVlOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTUwNiwgMC4wMDE0OTMsIDAuMDAxNDgxLCAwLjAwMTQ3MiwgMC4wMDE0NjgsIDAuMDAxNDYzLCAwLjAwMTQ2MyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjUzMSwgMC4wMDI1MjIsIDAuMDAyNTEyLCAwLjAwMjUwNywgMC4wMDI1MDIsIDAuMDAyNDk5LCAwLjAwMjQ5NyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJHIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRCI7Ci0gICAgICBzZGZfY29uZCA6ICJEID09IDEnYjAiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMzc2NDY5LCAwLjM4ODM2NywgMC40MDM5MjYsIDAuNDE5MTcyLCAwLjQzNDA4OCwgMC40NTc1NTMsIDAuNDc3NTg1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihRKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMDc0ODcxNjsKLSAgICBmdW5jdGlvbiA6ICJRSU5UIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJEIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMTc2NDUsIDAuMzQzMDU5LCAwLjU3MDgxNCwgMC45NTA2MSwgMS4zMzE2NSwgMi4yMTgxNiwgMi43MjI5OCIsIFwKLSAgICAgICAgICAiMC4zMjk0MDgsIDAuMzU0ODE3LCAwLjU4Mjc4MywgMC45NjI0MTgsIDEuMzQyMSwgMi4yMzAwNywgMi43MzYwOCIsIFwKLSAgICAgICAgICAiMC4zNDM1ODEsIDAuMzY4Nzg4LCAwLjU5Nzk2NiwgMC45NzY0NTEsIDEuMzU2MDEsIDIuMjM5ODEsIDIuNzUwNDIiLCBcCi0gICAgICAgICAgIjAuMzU3Mjg2LCAwLjM4MjU2OSwgMC42MTA5MzUsIDAuOTkwMTE4LCAxLjM2OTgsIDIuMjU2MjQsIDIuNzYzNzIiLCBcCi0gICAgICAgICAgIjAuMzcwOTc1LCAwLjM5NjE5MiwgMC42MjUwMywgMS4wMDM4NiwgMS4zODM0MiwgMi4yNjYzMSwgMi43Nzc4NCIsIFwKLSAgICAgICAgICAiMC4zOTI4MjksIDAuNDE4MTY1LCAwLjY0NjE0OCwgMS4wMjU4NywgMS40MDQ1MiwgMi4yOTM1OCwgMi43OTYxNiIsIFwKLSAgICAgICAgICAiMC40MTE0NjUsIDAuNDM2Njg2LCAwLjY2NTAzOSwgMS4wNDQyNywgMS40MjM5NiwgMi4zMTAzMSwgMi44MTc4MyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yNjg2NDgsIDAuMzIyMTE4LCAwLjc4ODg3MSwgMS41NjUxMywgMi4zNDA5NCwgNC4xNTU5NiwgNS4xNzkzOSIsIFwKLSAgICAgICAgICAiMC4yNjk0NywgMC4zMjIwODQsIDAuNzg2OTIyLCAxLjU2NTM1LCAyLjM0MjY0LCA0LjE1NTUzLCA1LjE0MzQzIiwgXAotICAgICAgICAgICIwLjI2OTc0LCAwLjMyMDUyNSwgMC43ODc5OTQsIDEuNTY1MzMsIDIuMzQyMzcsIDQuMTEzODEsIDUuMTU2NjEiLCBcCi0gICAgICAgICAgIjAuMjY5ODc1LCAwLjMyMTQwNiwgMC43ODgxMDgsIDEuNTY1MzUsIDIuMzQyMjYsIDQuMTU2NTUsIDUuMTQ2OTQiLCBcCi0gICAgICAgICAgIjAuMjY4MjYyLCAwLjMyMDQ4MSwgMC43ODQyMjUsIDEuNTY1MzcsIDIuMzQyMzMsIDQuMTIzNTgsIDUuMTg4MTciLCBcCi0gICAgICAgICAgIjAuMjcwMDY0LCAwLjMyMTk4NiwgMC43ODY2MTQsIDEuNTY1NjUsIDIuMzE5MTcsIDQuMTU1NjQsIDUuMTc5MjIiLCBcCi0gICAgICAgICAgIjAuMjcwMTAxLCAwLjMyMDQwOSwgMC43ODgxNTIsIDEuNTY1MzYsIDIuMzQyMjgsIDQuMTU4ODgsIDUuMTQxOTIiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzM0MTA3LCAwLjM2NDA4OSwgMC42MzE0MDQsIDEuMDgwMjIsIDEuNTI3NTMsIDIuNTcwMzEsIDMuMTY1OTkiLCBcCi0gICAgICAgICAgIjAuMzQ1NTA3LCAwLjM3NTQ5NiwgMC42NDI3MzYsIDEuMDkxNDYsIDEuNTM4ODksIDIuNTgxNjIsIDMuMTc3MzciLCBcCi0gICAgICAgICAgIjAuMzU4NDE4LCAwLjM4ODUwOCwgMC42NTc2NDEsIDEuMTA0NzQsIDEuNTUyMDEsIDIuNTk1NTUsIDMuMTgwNCIsIFwKLSAgICAgICAgICAiMC4zNzA4NjksIDAuNDAxMTM0LCAwLjY2ODA1NywgMS4xMTcyLCAxLjU2MTAyLCAyLjYwNzE4LCAzLjIwNDUiLCBcCi0gICAgICAgICAgIjAuMzgzMTc2LCAwLjQxMzI0OCwgMC42ODA0NDksIDEuMTI5MjQsIDEuNTc2NjEsIDIuNjE5MywgMy4yMTUwOCIsIFwKLSAgICAgICAgICAiMC40MDI0NTUsIDAuNDMyNDU3LCAwLjcwMTUzOCwgMS4xNDg3MiwgMS41OTYwMywgMi42Mzk2OCwgMy4yMjQ5OCIsIFwKLSAgICAgICAgICAiMC40MTkwNjEsIDAuNDQ4ODU2LCAwLjcxNzg1MiwgMS4xNjUwNSwgMS42MTIzNywgMi42NDk2NCwgMy4yNDAwNSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMDk4NjEsIDAuMzY3OTk4LCAwLjg5Njg2MiwgMS43ODM3OCwgMi42NjU5MSwgNC43MTMyNCwgNS45MTkzOSIsIFwKLSAgICAgICAgICAiMC4zMDc1MDUsIDAuMzY4NTcsIDAuODk5NDk2LCAxLjc4NDAxLCAyLjY2NTg2LCA0LjcxMTk5LCA1LjkxOTc5IiwgXAotICAgICAgICAgICIwLjMwNzU5MSwgMC4zNjg1NDYsIDAuODk4MzM0LCAxLjc4MzY5LCAyLjY2NzM2LCA0LjcyNzIxLCA1Ljg4NjI1IiwgXAotICAgICAgICAgICIwLjMwODAwNiwgMC4zNjg5NSwgMC44OTY0MjcsIDEuNzgzODMsIDIuNjcyNTQsIDQuNzE0ODksIDUuOTE0OTUiLCBcCi0gICAgICAgICAgIjAuMzA3NzgsIDAuMzY4NTU5LCAwLjg5Nzg2MiwgMS43ODM4NiwgMi42NjU5MSwgNC43MTE5MiwgNS45MTk3OSIsIFwKLSAgICAgICAgICAiMC4zMDc0MDYsIDAuMzY4ODczLCAwLjg5OTY2OCwgMS43ODM4MiwgMi42NjYxNywgNC43MjI5NywgNS45MDg5IiwgXAotICAgICAgICAgICIwLjMwODQ0NywgMC4zNjg5NjgsIDAuODk5NjY4LCAxLjc4MzgsIDIuNjY2MTgsIDQuNzM5ODgsIDUuODkyNDgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBub25fdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJpc2luZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zODcwNjcsIDAuNDEyNDQ4LCAwLjY0MDkxMywgMS4wMjAwMywgMS4zOTk1OCwgMi4yODU2NSwgMi43OTY0NSIsIFwKLSAgICAgICAgICAiMC4zOTg5MjUsIDAuNDI0MzQsIDAuNjUyMzUsIDEuMDMxOCwgMS40MTE5OSwgMi4yOTgzNSwgMi44MDU0MSIsIFwKLSAgICAgICAgICAiMC40MTQzNDQsIDAuNDM5NzU4LCAwLjY2Nzc3OCwgMS4wNDcyNCwgMS40MjY0MSwgMi4zMTQ4MywgMi44MjA3MSIsIFwKLSAgICAgICAgICAiMC40Mjk3MzEsIDAuNDU1MTQ0LCAwLjY4MzE2NSwgMS4wNjI2MywgMS40NDIxMiwgMi4zMzAyLCAyLjgzNjEiLCBcCi0gICAgICAgICAgIjAuNDQ1MDAyLCAwLjQ3MDQxOCwgMC42OTg1NjcsIDEuMDc4MDEsIDEuNDU3MjEsIDIuMzQ1NTksIDIuODUwOTgiLCBcCi0gICAgICAgICAgIjAuNDY4OTIzLCAwLjQ5NDMzOCwgMC43MjIzNDgsIDEuMTAxNzksIDEuNDgyNDMsIDIuMzY4MjMsIDIuODc1NDUiLCBcCi0gICAgICAgICAgIjAuNDg4OTI1LCAwLjUxNDIwOSwgMC43NDI1MywgMS4xMjE3NSwgMS41MDE0MSwgMi4zODc3OSwgMi44OTU1Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI2OTg2LCAwLjMyMjE0OCwgMC43ODE5NDQsIDEuNTY1MzQsIDIuMzQyMzUsIDQuMTY5MzUsIDUuMTg2NDkiLCBcCi0gICAgICAgICAgIjAuMjY5MTExLCAwLjMyMjA5OCwgMC43ODU5NDYsIDEuNTY1MywgMi4zNDI5LCA0LjE0MTYxLCA1LjE0ODU3IiwgXAotICAgICAgICAgICIwLjI2OTM4NiwgMC4zMjIwOTUsIDAuNzg1NjcxLCAxLjU2NTM3LCAyLjMyMzM3LCA0LjE1NTYsIDUuMTU3ODYiLCBcCi0gICAgICAgICAgIjAuMjY5MTg0LCAwLjMyMjA5NCwgMC43ODU2NTcsIDEuNTY1MzYsIDIuMzQzNjgsIDQuMTU1NiwgNS4xNTc1MSIsIFwKLSAgICAgICAgICAiMC4yNjk3LCAwLjMyMjE3MiwgMC43ODE3NjgsIDEuNTY1MjQsIDIuMzQyNzEsIDQuMTU1NjMsIDUuMTc5NTYiLCBcCi0gICAgICAgICAgIjAuMjY5MTQxLCAwLjMyMjA5NiwgMC43ODU5NDIsIDEuNTY1MzksIDIuMzQyOTcsIDQuMTQ2MDksIDUuMTQ0NzMiLCBcCi0gICAgICAgICAgIjAuMjY5NDU1LCAwLjMyMTIxMywgMC43ODgxNTQsIDEuNTY1MzksIDIuMzQyMjMsIDQuMTU5NiwgNS4xMzU2NiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zNzY0NjksIDAuNDA2MjU0LCAwLjY3NTU2OSwgMS4xMjI2MiwgMS41NjU5MiwgMi42MTI1OSwgMy4xOTc5NCIsIFwKLSAgICAgICAgICAiMC4zODgzNjcsIDAuNDE4Mjk5LCAwLjY4NzI4OCwgMS4xMzQ0MSwgMS41ODE3NSwgMi42MjU0NiwgMy4yMTAyNiIsIFwKLSAgICAgICAgICAiMC40MDM5MjYsIDAuNDMzNjE4LCAwLjcwMjY2OSwgMS4xNDk4MSwgMS41OTcxNSwgMi42MzIxMywgMy4yMjY2MiIsIFwKLSAgICAgICAgICAiMC40MTkxNzIsIDAuNDQ4ODg1LCAwLjcxNzkyMSwgMS4xNjUwNiwgMS42MTI0MSwgMi42NDY4NSwgMy4yNDE5OSIsIFwKLSAgICAgICAgICAiMC40MzQwODgsIDAuNDYzNjE1LCAwLjczMjkyNCwgMS4xNzYzNiwgMS42MjcxNCwgMi42NjE1MiwgMy4yNTU3OSIsIFwKLSAgICAgICAgICAiMC40NTc1NTMsIDAuNDg3NzI0LCAwLjc1NDc3OSwgMS4yMDM1NSwgMS42NTA4OCwgMi42OTM1LCAzLjI4MDAyIiwgXAotICAgICAgICAgICIwLjQ3NzU4NSwgMC41MDc3OTYsIDAuNzc2Nzk4LCAxLjIyMzkyLCAxLjY3MTI1LCAyLjcwODUzLCAzLjMwMDMyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMwNzgxNywgMC4zNjU5MTQsIDAuODk4NDI2LCAxLjc4Mzg4LCAyLjY2NjI5LCA0LjcyMjI1LCA1Ljg5NTQ3IiwgXAotICAgICAgICAgICIwLjMwODYxNCwgMC4zNjY2MzMsIDAuODk5NjMyLCAxLjc4MzgxLCAyLjY2NjI4LCA0LjcyMzIxLCA1LjkwNzU2IiwgXAotICAgICAgICAgICIwLjMwNzE0NiwgMC4zNjg5MDcsIDAuODk5NjM4LCAxLjc4Mzc1LCAyLjY2NjE2LCA0LjcxMDgyLCA1Ljg5NDM0IiwgXAotICAgICAgICAgICIwLjMwNzM3MiwgMC4zNjg5MzcsIDAuODk5NjM1LCAxLjc4Mzc1LCAyLjY2NjE2LCA0LjcxNTI3LCA1Ljg4ODMiLCBcCi0gICAgICAgICAgIjAuMzA5NjkyLCAwLjM2NTkzMiwgMC44OTk2MjYsIDEuNzc2NDYsIDIuNjY1NzIsIDQuNzI5MzUsIDUuOTA0MzIiLCBcCi0gICAgICAgICAgIjAuMzA4MzU2LCAwLjM2NjcwNSwgMC45MDAwMjIsIDEuNzgzNTgsIDIuNjY1NzksIDQuNzEzMDIsIDUuOTA5NDYiLCBcCi0gICAgICAgICAgIjAuMzA3NTQ4LCAwLjM2ODkyOSwgMC44OTk2NDIsIDEuNzgzNzQsIDIuNjY2MDcsIDQuNzM5OTEsIDUuOTA5MjYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJEIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDE3ODYsIDAuMDAxNzg3LCAwLjAwMTc4OSwgMC4wMDE3OSwgMC4wMDE3OSwgMC4wMDE3OSwgMC4wMDE3OSIsIFwKLSAgICAgICAgICAiMC4wMDE3ODEsIDAuMDAxNzgxLCAwLjAwMTc4NCwgMC4wMDE3ODQsIDAuMDAxNzg0LCAwLjAwMTc4NSwgMC4wMDE3ODUiLCBcCi0gICAgICAgICAgIjAuMDAxNzc3LCAwLjAwMTc3OCwgMC4wMDE3OCwgMC4wMDE3ODEsIDAuMDAxNzgyLCAwLjAwMTc4MSwgMC4wMDE3ODEiLCBcCi0gICAgICAgICAgIjAuMDAxNzc1LCAwLjAwMTc3NiwgMC4wMDE3NzgsIDAuMDAxNzc4LCAwLjAwMTc3OSwgMC4wMDE3NzksIDAuMDAxNzc5IiwgXAotICAgICAgICAgICIwLjAwMTc3MywgMC4wMDE3NzQsIDAuMDAxNzc2LCAwLjAwMTc3NywgMC4wMDE3NzcsIDAuMDAxNzc3LCAwLjAwMTc3NyIsIFwKLSAgICAgICAgICAiMC4wMDE3NzEsIDAuMDAxNzcxLCAwLjAwMTc3MywgMC4wMDE3NzQsIDAuMDAxNzc0LCAwLjAwMTc3NCwgMC4wMDE3NzUiLCBcCi0gICAgICAgICAgIjAuMDAxNzY4LCAwLjAwMTc2OCwgMC4wMDE3NzEsIDAuMDAxNzcxLCAwLjAwMTc3MiwgMC4wMDE3NzIsIDAuMDAxNzcyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxOTg4LCAwLjAwMTk4OSwgMC4wMDE5OSwgMC4wMDE5OTIsIDAuMDAxOTkxLCAwLjAwMTk5MiwgMC4wMDE5OTIiLCBcCi0gICAgICAgICAgIjAuMDAxOTg1LCAwLjAwMTk4NiwgMC4wMDE5ODcsIDAuMDAxOTg4LCAwLjAwMTk4OCwgMC4wMDE5ODgsIDAuMDAxOTg4IiwgXAotICAgICAgICAgICIwLjAwMTk4MywgMC4wMDE5ODMsIDAuMDAxOTg1LCAwLjAwMTk4NiwgMC4wMDE5ODYsIDAuMDAxOTg2LCAwLjAwMTk4NiIsIFwKLSAgICAgICAgICAiMC4wMDE5ODIsIDAuMDAxOTgyLCAwLjAwMTk4NCwgMC4wMDE5ODUsIDAuMDAxOTg1LCAwLjAwMTk4NSwgMC4wMDE5ODUiLCBcCi0gICAgICAgICAgIjAuMDAxOTgsIDAuMDAxOTgxLCAwLjAwMTk4MywgMC4wMDE5ODMsIDAuMDAxOTgzLCAwLjAwMTk4MywgMC4wMDE5ODQiLCBcCi0gICAgICAgICAgIjAuMDAxOTc4LCAwLjAwMTk3OSwgMC4wMDE5ODEsIDAuMDAxOTgxLCAwLjAwMTk4MSwgMC4wMDE5ODIsIDAuMDAxOTgyIiwgXAotICAgICAgICAgICIwLjAwMTk3NywgMC4wMDE5NzcsIDAuMDAxOTc5LCAwLjAwMTk4LCAwLjAwMTk4LCAwLjAwMTk4LCAwLjAwMTk4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyNDgyLCAwLjAwMjQ4MywgMC4wMDI0ODUsIDAuMDAyNDg2LCAwLjAwMjQ4NiwgMC4wMDI0ODYsIDAuMDAyNDg2IiwgXAotICAgICAgICAgICIwLjAwMjQ3NiwgMC4wMDI0NzYsIDAuMDAyNDc4LCAwLjAwMjQ3OSwgMC4wMDI0OCwgMC4wMDI0OCwgMC4wMDI0OCIsIFwKLSAgICAgICAgICAiMC4wMDI0NywgMC4wMDI0NzEsIDAuMDAyNDczLCAwLjAwMjQ3NCwgMC4wMDI0NzQsIDAuMDAyNDc0LCAwLjAwMjQ3NCIsIFwKLSAgICAgICAgICAiMC4wMDI0NjcsIDAuMDAyNDY3LCAwLjAwMjQ3LCAwLjAwMjQ3LCAwLjAwMjQ3MSwgMC4wMDI0NzEsIDAuMDAyNDcxIiwgXAotICAgICAgICAgICIwLjAwMjQ2NCwgMC4wMDI0NjUsIDAuMDAyNDY3LCAwLjAwMjQ2OCwgMC4wMDI0NjgsIDAuMDAyNDY4LCAwLjAwMjQ2OCIsIFwKLSAgICAgICAgICAiMC4wMDI0NjIsIDAuMDAyNDYzLCAwLjAwMjQ2NSwgMC4wMDI0NjYsIDAuMDAyNDY2LCAwLjAwMjQ2NiwgMC4wMDI0NjYiLCBcCi0gICAgICAgICAgIjAuMDAyNDYxLCAwLjAwMjQ2MiwgMC4wMDI0NjQsIDAuMDAyNDY1LCAwLjAwMjQ2NSwgMC4wMDI0NjUsIDAuMDAyNDY2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyNDczLCAwLjAwMjQ3MywgMC4wMDI0NywgMC4wMDI0NjgsIDAuMDAyNDY3LCAwLjAwMjQ2NiwgMC4wMDI0NjYiLCBcCi0gICAgICAgICAgIjAuMDAyNDY2LCAwLjAwMjQ2NSwgMC4wMDI0NjMsIDAuMDAyNDYxLCAwLjAwMjQ2LCAwLjAwMjQ1OSwgMC4wMDI0NTgiLCBcCi0gICAgICAgICAgIjAuMDAyNDU5LCAwLjAwMjQ1OSwgMC4wMDI0NTYsIDAuMDAyNDU0LCAwLjAwMjQ1MywgMC4wMDI0NTIsIDAuMDAyNDUyIiwgXAotICAgICAgICAgICIwLjAwMjQ1NCwgMC4wMDI0NTQsIDAuMDAyNDUyLCAwLjAwMjQ1LCAwLjAwMjQ0OSwgMC4wMDI0NDgsIDAuMDAyNDQ4IiwgXAotICAgICAgICAgICIwLjAwMjQ0OSwgMC4wMDI0NDksIDAuMDAyNDQ3LCAwLjAwMjQ0NSwgMC4wMDI0NDQsIDAuMDAyNDQzLCAwLjAwMjQ0MiIsIFwKLSAgICAgICAgICAiMC4wMDI0NDYsIDAuMDAyNDQ2LCAwLjAwMjQ0MywgMC4wMDI0NDEsIDAuMDAyNDQsIDAuMDAyNDM5LCAwLjAwMjQzOSIsIFwKLSAgICAgICAgICAiMC4wMDI0NDUsIDAuMDAyNDQ1LCAwLjAwMjQ0MywgMC4wMDI0NDEsIDAuMDAyNDQsIDAuMDAyNDM5LCAwLjAwMjQzOCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUU4pICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4wNjgyMDU4OwotICAgIGZ1bmN0aW9uIDogIk4wIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJEIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yOTEwMSwgMC4zMTYyNiwgMC41NDM2MTgsIDAuOTIyMzEzLCAxLjMwMDk4LCAyLjE4NDc5LCAyLjY4OTc5IiwgXAotICAgICAgICAgICIwLjMwMjMzMSwgMC4zMjc1ODksIDAuNTU0OTY4LCAwLjkzMzY4NCwgMS4zMTIzMiwgMi4xOTYxMiwgMi43MDExMiIsIFwKLSAgICAgICAgICAiMC4zMTUzODUsIDAuMzQwNjYzLCAwLjU2NzkzNSwgMC45NDY2NjcsIDEuMzI1MzUsIDIuMjA4OTEsIDIuNzE0MjIiLCBcCi0gICAgICAgICAgIjAuMzI3NzY5LCAwLjM1MzAzNywgMC41ODA0MzgsIDAuOTU5MDQ4LCAxLjMzNzcsIDIuMjIxNSwgMi43MjYxOSIsIFwKLSAgICAgICAgICAiMC4zNDAwNDEsIDAuMzY1MywgMC41OTI2NjksIDAuOTcxMzcyLCAxLjM1MDAzLCAyLjIzMzgzLCAyLjczODg0IiwgXAotICAgICAgICAgICIwLjM1OTI0NiwgMC4zODQ1MTEsIDAuNjExNzg0LCAwLjk5MDUwNCwgMS4zNjkxOCwgMi4yNTI3NiwgMi43NTgxMSIsIFwKLSAgICAgICAgICAiMC4zNzU1NTYsIDAuNDAwODI0LCAwLjYyODEwNSwgMS4wMDY4MiwgMS4zODU1LCAyLjI2OTA3LCAyLjc3NDE5Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI3MzAxOCwgMC4zMjM3NDQsIDAuNzgyNjgxLCAxLjU1NDY2LCAyLjMyNDE4LCA0LjEyMDI1LCA1LjEzOTczIiwgXAotICAgICAgICAgICIwLjI3MzYyMywgMC4zMjM4NSwgMC43ODI1NzEsIDEuNTU0ODQsIDIuMzI0MTQsIDQuMTIwMTksIDUuMTM5NzUiLCBcCi0gICAgICAgICAgIjAuMjczNjE4LCAwLjMyNDQyNCwgMC43ODQ4MDcsIDEuNTU0NDQsIDIuMzI0MDYsIDQuMTE5NTcsIDUuMTMyNjciLCBcCi0gICAgICAgICAgIjAuMjczNjE0LCAwLjMyNDM3NiwgMC43ODMwNzUsIDEuNTU0NDEsIDIuMzIzNTksIDQuMTIwMTcsIDUuMTQwMjkiLCBcCi0gICAgICAgICAgIjAuMjczNjE5LCAwLjMyMzg2NCwgMC43ODI2NCwgMS41NTQ3LCAyLjMyNDE0LCA0LjEyMDE5LCA1LjEzOTc1IiwgXAotICAgICAgICAgICIwLjI3MzY0MywgMC4zMjQ0MDEsIDAuNzg0NzksIDEuNTU0MzUsIDIuMzIzOTQsIDQuMTE5NTQsIDUuMTM0MSIsIFwKLSAgICAgICAgICAiMC4yNzMzMDQsIDAuMzI0Mzg1LCAwLjc4NDgsIDEuNTU0MzQsIDIuMzIzODksIDQuMTE5MTMsIDUuMTM1NjEiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzE5MTI1LCAwLjM0ODg0OCwgMC42MTYyOTUsIDEuMDYxNzQsIDEuNTA3MzYsIDIuNTQ2ODcsIDMuMTQwNzciLCBcCi0gICAgICAgICAgIjAuMzMwODkyLCAwLjM2MDYxMSwgMC42MjgwNzQsIDEuMDczNTEsIDEuNTE5MDEsIDIuNTU4NjUsIDMuMTUyNTkiLCBcCi0gICAgICAgICAgIjAuMzQ0OTkzLCAwLjM3NDY4NiwgMC42NDIyNjIsIDEuMDg3NjIsIDEuNTMzMSwgMi41NzI1NSwgMy4xNjY3IiwgXAotICAgICAgICAgICIwLjM1ODY5MSwgMC4zODg0MTcsIDAuNjU1ODM5LCAxLjEwMTMxLCAxLjU0NjgxLCAyLjU4NjMyLCAzLjE4MDM2IiwgXAotICAgICAgICAgICIwLjM3MjM5OSwgMC40MDIwODgsIDAuNjY5NjA2LCAxLjExNTAyLCAxLjU2MDUxLCAyLjU5OTk0LCAzLjE5NDEiLCBcCi0gICAgICAgICAgIjAuMzk0MjQxLCAwLjQyMzk0OCwgMC42OTE0MTEsIDEuMTM2ODYsIDEuNTgyMzYsIDIuNjIyLCAzLjIxNTcxIiwgXAotICAgICAgICAgICIwLjQxMjg2NywgMC40NDI1ODYsIDAuNzA5OTk2LCAxLjE1NTQ3LCAxLjYwMDk3LCAyLjY0MDQ4LCAzLjIzNDUyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMxMTkzNCwgMC4zNzA2MTcsIDAuODk3ODkzLCAxLjc4MDY2LCAyLjY2MDU0LCA0LjcyMDc0LCA1Ljg5MzY2IiwgXAotICAgICAgICAgICIwLjMxMTkzNywgMC4zNzA1OTksIDAuODk4MDY0LCAxLjc4MDYzLCAyLjY2MjUxLCA0LjcyMDgxLCA1Ljg5MTEyIiwgXAotICAgICAgICAgICIwLjMxMjIwNiwgMC4zNzAwMDUsIDAuODk3NDM1LCAxLjc4MDYyLCAyLjY2MjQ5LCA0LjcxNzksIDUuODkwODIiLCBcCi0gICAgICAgICAgIjAuMzEyMjI2LCAwLjM3MDMwMywgMC44OTg5NTQsIDEuNzgwNjEsIDIuNjYyNTIsIDQuNzE3NTMsIDUuODkxOTkiLCBcCi0gICAgICAgICAgIjAuMzExMzY1LCAwLjM3MDAwMSwgMC44OTc5MjQsIDEuNzgwNjEsIDIuNjYyNSwgNC43MTgwOSwgNS44ODkwOCIsIFwKLSAgICAgICAgICAiMC4zMTIzMTcsIDAuMzcwNTQ0LCAwLjg5ODA2NiwgMS43ODA1MiwgMi42NjEwMiwgNC43MjA4NCwgNS44OTM0OCIsIFwKLSAgICAgICAgICAiMC4zMTIzMjcsIDAuMzcwMjA3LCAwLjg5ODkzLCAxLjc4MDYxLCAyLjY2MjUyLCA0LjcxNzUzLCA1Ljg5MTc0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkciOwotICAgICAgdGltaW5nX3NlbnNlIDogbm9uX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiByaXNpbmdfZWRnZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzMzMjUsIDAuMzU4NDczLCAwLjU4NTU5LCAwLjk2NDIxMywgMS4zNDI4NSwgMi4yMjY2LCAyLjczMTI4IiwgXAotICAgICAgICAgICIwLjM0NDk4NCwgMC4zNzAyMDQsIDAuNTk3MzE1LCAwLjk3NTkyOSwgMS4zNTQ1NiwgMi4yMzgwOCwgMi43NDMxNyIsIFwKLSAgICAgICAgICAiMC4zNjAzNjEsIDAuMzg1NTk3LCAwLjYxMjY5NiwgMC45OTEzMDUsIDEuMzY5OTMsIDIuMjUzNDcsIDIuNzU4NTMiLCBcCi0gICAgICAgICAgIjAuMzc1NjE3LCAwLjQwMDg1NCwgMC42Mjc5NTQsIDEuMDA2NTYsIDEuMzg1MTksIDIuMjY4NzQsIDIuNzczNzgiLCBcCi0gICAgICAgICAgIjAuMzkwNjMzLCAwLjQxNTg2NywgMC42NDI5NzQsIDEuMDIxNTgsIDEuNDAwMjUsIDIuMjg0MDgsIDIuNzg5MDYiLCBcCi0gICAgICAgICAgIjAuNDE0NDE1LCAwLjQzOTYzOCwgMC42NjY4NDMsIDEuMDQ1NDEsIDEuNDI0MDQsIDIuMzA3ODIsIDIuODEyODEiLCBcCi0gICAgICAgICAgIjAuNDM0NTA5LCAwLjQ1OTcyOSwgMC42ODY4NDEsIDEuMDY1NDUsIDEuNDQ0MDgsIDIuMzI3NiwgMi44MzI2NyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yNzM3MjEsIDAuMzI0Mzg0LCAwLjc4NDg1NSwgMS41NTQ1MiwgMi4zMjAyOCwgNC4xMjAyMywgNS4xMzgxIiwgXAotICAgICAgICAgICIwLjI3MzI2NywgMC4zMjM5NjgsIDAuNzg0ODE0LCAxLjU1NDM5LCAyLjMyMzk1LCA0LjExOTQ2LCA1LjEzNTU1IiwgXAotICAgICAgICAgICIwLjI3MzQwNSwgMC4zMjQ0NTQsIDAuNzg0ODEzLCAxLjU1NDM2LCAyLjMyMzkxLCA0LjExMzA0LCA1LjEzNTY0IiwgXAotICAgICAgICAgICIwLjI3MzQwMiwgMC4zMjQ0NTEsIDAuNzg0ODE1LCAxLjU1NDM2LCAyLjMyMzksIDQuMTEzMjgsIDUuMTM1NjkiLCBcCi0gICAgICAgICAgIjAuMjczMzY5LCAwLjMyMzg4MiwgMC43ODQ4MjEsIDEuNTUxODQsIDIuMzI0MTQsIDQuMTExMzcsIDUuMTM1MTQiLCBcCi0gICAgICAgICAgIjAuMjczMjEzLCAwLjMyMzk5LCAwLjc4MjU1MSwgMS41NTQ2NSwgMi4zMjQxOCwgNC4xMjAxOCwgNS4xMzM0OCIsIFwKLSAgICAgICAgICAiMC4yNzM3OTQsIDAuMzI0NDExLCAwLjc4NDgxMSwgMS41NTQzNywgMi4zMjM5MiwgNC4xMTkwNywgNS4xMzU1NiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zODg0NjYsIDAuNDE4MTk3LCAwLjY4NTY1NiwgMS4xMzExMSwgMS41NzY2LCAyLjYxNjEsIDMuMjEwNDYiLCBcCi0gICAgICAgICAgIjAuNDAwMzY4LCAwLjQzMDA5MSwgMC42OTc1NjEsIDEuMTQyOTksIDEuNTg4NTQsIDIuNjI4MDMsIDMuMjIyMDYiLCBcCi0gICAgICAgICAgIjAuNDE1NzgzLCAwLjQ0NTUwNSwgMC43MTI5NzUsIDEuMTU4NDEsIDEuNjAzOTUsIDIuNjQzNTUsIDMuMjM3NDYiLCBcCi0gICAgICAgICAgIjAuNDMxMTY5LCAwLjQ2MDg5MSwgMC43MjgzNjEsIDEuMTczOCwgMS42MTkzNCwgMi42NTg5MywgMy4yNTI4NSIsIFwKLSAgICAgICAgICAiMC40NDY0MTEsIDAuNDc2MTQ0LCAwLjc0MzYxNCwgMS4xODkwNSwgMS42MzQ1MiwgMi42NzQxOSwgMy4yNjgxNCIsIFwKLSAgICAgICAgICAiMC40NzAzNjcsIDAuNTAwMDksIDAuNzY3NTU4LCAxLjIxMjk5LCAxLjY1ODU5LCAyLjY5ODAzLCAzLjI5MjA2IiwgXAotICAgICAgICAgICIwLjQ5MDM0MiwgMC41MjAwNywgMC43ODc0ODcsIDEuMjMyOTcsIDEuNjc4NDcsIDIuNzE3OTksIDMuMzEyMDQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzEyMjIxLCAwLjM3MDYzNSwgMC44OTc3MTMsIDEuNzgwNjMsIDIuNjYyNTEsIDQuNzE5NjQsIDUuODg4NTEiLCBcCi0gICAgICAgICAgIjAuMzExOTQsIDAuMzcwNjA1LCAwLjg5ODA3MywgMS43ODA1NCwgMi42NjI0NCwgNC43MTc0OCwgNS44OTIwOSIsIFwKLSAgICAgICAgICAiMC4zMTE5NDUsIDAuMzcwNjAzLCAwLjg5ODA3MywgMS43ODA1MywgMi42NjA4OCwgNC43MjA1MiwgNS44OTIzMSIsIFwKLSAgICAgICAgICAiMC4zMTE5NDEsIDAuMzcwNjAzLCAwLjg5ODA3MywgMS43ODA1MywgMi42NTk3NCwgNC43MjA1MiwgNS44OTIzIiwgXAotICAgICAgICAgICIwLjMxMjAzMSwgMC4zNzA2NjQsIDAuODk4MDQxLCAxLjc4MDY2LCAyLjY2MjQxLCA0LjcyMDc5LCA1Ljg5MzczIiwgXAotICAgICAgICAgICIwLjMxMTk0MSwgMC4zNzA2MDUsIDAuODk4MDczLCAxLjc4MDUyLCAyLjY2MjU2LCA0LjcxNzUxLCA1Ljg5MTk4IiwgXAotICAgICAgICAgICIwLjMxMjAyMywgMC4zNzAxNTksIDAuODk4ODkzLCAxLjc4MDUyLCAyLjY2MjM5LCA0LjcxNzUyLCA1Ljg5MTc2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxOTg4LCAwLjAwMTk4OSwgMC4wMDE5OSwgMC4wMDE5OTIsIDAuMDAxOTkxLCAwLjAwMTk5MiwgMC4wMDE5OTIiLCBcCi0gICAgICAgICAgIjAuMDAxOTg1LCAwLjAwMTk4NiwgMC4wMDE5ODcsIDAuMDAxOTg4LCAwLjAwMTk4OCwgMC4wMDE5ODgsIDAuMDAxOTg4IiwgXAotICAgICAgICAgICIwLjAwMTk4MywgMC4wMDE5ODMsIDAuMDAxOTg1LCAwLjAwMTk4NiwgMC4wMDE5ODYsIDAuMDAxOTg2LCAwLjAwMTk4NiIsIFwKLSAgICAgICAgICAiMC4wMDE5ODIsIDAuMDAxOTgyLCAwLjAwMTk4NCwgMC4wMDE5ODUsIDAuMDAxOTg1LCAwLjAwMTk4NSwgMC4wMDE5ODUiLCBcCi0gICAgICAgICAgIjAuMDAxOTgsIDAuMDAxOTgxLCAwLjAwMTk4MywgMC4wMDE5ODMsIDAuMDAxOTgzLCAwLjAwMTk4MywgMC4wMDE5ODQiLCBcCi0gICAgICAgICAgIjAuMDAxOTc4LCAwLjAwMTk3OSwgMC4wMDE5ODEsIDAuMDAxOTgxLCAwLjAwMTk4MSwgMC4wMDE5ODIsIDAuMDAxOTgyIiwgXAotICAgICAgICAgICIwLjAwMTk3NywgMC4wMDE5NzcsIDAuMDAxOTc5LCAwLjAwMTk4LCAwLjAwMTk4LCAwLjAwMTk4LCAwLjAwMTk4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxNzg2LCAwLjAwMTc4NywgMC4wMDE3ODksIDAuMDAxNzksIDAuMDAxNzksIDAuMDAxNzksIDAuMDAxNzkiLCBcCi0gICAgICAgICAgIjAuMDAxNzgxLCAwLjAwMTc4MSwgMC4wMDE3ODQsIDAuMDAxNzg0LCAwLjAwMTc4NCwgMC4wMDE3ODUsIDAuMDAxNzg1IiwgXAotICAgICAgICAgICIwLjAwMTc3NywgMC4wMDE3NzgsIDAuMDAxNzgsIDAuMDAxNzgxLCAwLjAwMTc4MiwgMC4wMDE3ODEsIDAuMDAxNzgxIiwgXAotICAgICAgICAgICIwLjAwMTc3NSwgMC4wMDE3NzYsIDAuMDAxNzc4LCAwLjAwMTc3OCwgMC4wMDE3NzksIDAuMDAxNzc5LCAwLjAwMTc3OSIsIFwKLSAgICAgICAgICAiMC4wMDE3NzMsIDAuMDAxNzc0LCAwLjAwMTc3NiwgMC4wMDE3NzcsIDAuMDAxNzc3LCAwLjAwMTc3NywgMC4wMDE3NzciLCBcCi0gICAgICAgICAgIjAuMDAxNzcxLCAwLjAwMTc3MSwgMC4wMDE3NzMsIDAuMDAxNzc0LCAwLjAwMTc3NCwgMC4wMDE3NzQsIDAuMDAxNzc1IiwgXAotICAgICAgICAgICIwLjAwMTc2OCwgMC4wMDE3NjgsIDAuMDAxNzcxLCAwLjAwMTc3MSwgMC4wMDE3NzIsIDAuMDAxNzcyLCAwLjAwMTc3MiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkciOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjQ3MywgMC4wMDI0NzMsIDAuMDAyNDcsIDAuMDAyNDY4LCAwLjAwMjQ2NywgMC4wMDI0NjYsIDAuMDAyNDY2IiwgXAotICAgICAgICAgICIwLjAwMjQ2NiwgMC4wMDI0NjUsIDAuMDAyNDYzLCAwLjAwMjQ2MSwgMC4wMDI0NiwgMC4wMDI0NTksIDAuMDAyNDU4IiwgXAotICAgICAgICAgICIwLjAwMjQ1OSwgMC4wMDI0NTksIDAuMDAyNDU2LCAwLjAwMjQ1NCwgMC4wMDI0NTMsIDAuMDAyNDUyLCAwLjAwMjQ1MiIsIFwKLSAgICAgICAgICAiMC4wMDI0NTQsIDAuMDAyNDU0LCAwLjAwMjQ1MiwgMC4wMDI0NSwgMC4wMDI0NDksIDAuMDAyNDQ4LCAwLjAwMjQ0OCIsIFwKLSAgICAgICAgICAiMC4wMDI0NDksIDAuMDAyNDQ5LCAwLjAwMjQ0NywgMC4wMDI0NDUsIDAuMDAyNDQ0LCAwLjAwMjQ0MywgMC4wMDI0NDIiLCBcCi0gICAgICAgICAgIjAuMDAyNDQ2LCAwLjAwMjQ0NiwgMC4wMDI0NDMsIDAuMDAyNDQxLCAwLjAwMjQ0LCAwLjAwMjQzOSwgMC4wMDI0MzkiLCBcCi0gICAgICAgICAgIjAuMDAyNDQ1LCAwLjAwMjQ0NSwgMC4wMDI0NDMsIDAuMDAyNDQxLCAwLjAwMjQ0LCAwLjAwMjQzOSwgMC4wMDI0MzgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI0ODIsIDAuMDAyNDgzLCAwLjAwMjQ4NSwgMC4wMDI0ODYsIDAuMDAyNDg2LCAwLjAwMjQ4NiwgMC4wMDI0ODYiLCBcCi0gICAgICAgICAgIjAuMDAyNDc2LCAwLjAwMjQ3NiwgMC4wMDI0NzgsIDAuMDAyNDc5LCAwLjAwMjQ4LCAwLjAwMjQ4LCAwLjAwMjQ4IiwgXAotICAgICAgICAgICIwLjAwMjQ3LCAwLjAwMjQ3MSwgMC4wMDI0NzMsIDAuMDAyNDc0LCAwLjAwMjQ3NCwgMC4wMDI0NzQsIDAuMDAyNDc0IiwgXAotICAgICAgICAgICIwLjAwMjQ2NywgMC4wMDI0NjcsIDAuMDAyNDcsIDAuMDAyNDcsIDAuMDAyNDcxLCAwLjAwMjQ3MSwgMC4wMDI0NzEiLCBcCi0gICAgICAgICAgIjAuMDAyNDY0LCAwLjAwMjQ2NSwgMC4wMDI0NjcsIDAuMDAyNDY4LCAwLjAwMjQ2OCwgMC4wMDI0NjgsIDAuMDAyNDY4IiwgXAotICAgICAgICAgICIwLjAwMjQ2MiwgMC4wMDI0NjMsIDAuMDAyNDY1LCAwLjAwMjQ2NiwgMC4wMDI0NjYsIDAuMDAyNDY2LCAwLjAwMjQ2NiIsIFwKLSAgICAgICAgICAiMC4wMDI0NjEsIDAuMDAyNDYyLCAwLjAwMjQ2NCwgMC4wMDI0NjUsIDAuMDAyNDY1LCAwLjAwMjQ2NSwgMC4wMDI0NjYiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBYTk9SMlgxICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKFhOT1IyWDEpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4xMjU0NjU7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDU3Mjg5MzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA1NzI2NjI7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNTcyODkzOwotICB9Ci0gIHBpbihCKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDEwODA4OTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDEwODAzMjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDEwODA4OTsKLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjEyNTYyMjsKLSAgICBmdW5jdGlvbiA6ICIoIShBXkIpKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjExMzAzLCAwLjI1NTM1LCAwLjUwMDE2MywgMC43MTU5MzYsIDEuMDAzODIsIDEuNTc5NjIsIDEuOTM4OSIsIFwKLSAgICAgICAgICAiMC4yMjMyMDEsIDAuMjY3MjU2LCAwLjUxMjA0OSwgMC43Mjc4MjksIDEuMDE1OTUsIDEuNTkxMywgMS45NTA4IiwgXAotICAgICAgICAgICIwLjIzODIxNCwgMC4yODIxNTMsIDAuNTI3MDAxLCAwLjc0MjgwMywgMS4wMzA1NywgMS42MDYzNSwgMS45NjYwNiIsIFwKLSAgICAgICAgICAiMC4yNTMzNDEsIDAuMjk3NDAzLCAwLjU0MjIwOSwgMC43NTc5OTMsIDEuMDQ2MTEsIDEuNjIxNDYsIDEuOTgwOTYiLCBcCi0gICAgICAgICAgIjAuMjY4NDQ0LCAwLjMxMjM5MywgMC41NTcyOTEsIDAuNzczMDgyLCAxLjA2MTAyLCAxLjYzNjI4LCAxLjk5NjA2IiwgXAotICAgICAgICAgICIwLjI5MjY4OSwgMC4zMzY3NDcsIDAuNTgxNTk5LCAwLjc5NzM4NiwgMS4wODUyNSwgMS42NjA4MSwgMi4wMjA0MyIsIFwKLSAgICAgICAgICAiMC4zMTM4MjcsIDAuMzU3Nzc5LCAwLjYwMjY3LCAwLjgxODQ4NCwgMS4xMDYyNiwgMS42ODIxNSwgMi4wNDEyNyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNzIwMzMsIDAuMjU2MDc2LCAwLjc0NTkxNiwgMS4xODYxNiwgMS43NjY2NiwgMi45MzU5OSwgMy42NjU1IiwgXAotICAgICAgICAgICIwLjE3MjA2OCwgMC4yNTYwMzUsIDAuNzQ2NTc5LCAxLjE4NjE0LCAxLjc2NzM5LCAyLjkzNjU2LCAzLjY2NTYiLCBcCi0gICAgICAgICAgIjAuMTcyMDczLCAwLjI1NjA5NCwgMC43NDc2NywgMS4xODYxOCwgMS43NzIwOCwgMi45MzYxNiwgMy42NjY2IiwgXAotICAgICAgICAgICIwLjE3MjA4NywgMC4yNTYwNjIsIDAuNzQ2NTQ5LCAxLjE4NjEzLCAxLjc2NzM4LCAyLjkzNjU2LCAzLjY2NTYxIiwgXAotICAgICAgICAgICIwLjE3MjExMSwgMC4yNTYwMTMsIDAuNzQ2NDQyLCAxLjE4NjEzLCAxLjc2OTIsIDIuOTQyODIsIDMuNjc1MTgiLCBcCi0gICAgICAgICAgIjAuMTcyMDE0LCAwLjI1NjA0MywgMC43NDY2NTEsIDEuMTg2MTIsIDEuNzY2ODUsIDIuOTM0NjMsIDMuNjY1MjEiLCBcCi0gICAgICAgICAgIjAuMTcyMTA3LCAwLjI1NjEwNSwgMC43NDY0NDksIDEuMTg2MTYsIDEuNzcyMDQsIDIuOTM2MDUsIDMuNjc2MTgiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjExODYsIDAuMjYxOTgxLCAwLjU0MjEwMywgMC43ODkwMDIsIDEuMTE4MjEsIDEuNzc3MTMsIDIuMTg4MjQiLCBcCi0gICAgICAgICAgIjAuMjIzMTk1LCAwLjI3MzMzNSwgMC41NTM0NTgsIDAuODAwMzUxLCAxLjEzMDEzLCAxLjc4ODA1LCAyLjE5OTYyIiwgXAotICAgICAgICAgICIwLjIzNzc3MSwgMC4yODc4OTYsIDAuNTY4MDE4LCAwLjgxNDg5NiwgMS4xNDQxNiwgMS44MDI4LCAyLjIxNDUiLCBcCi0gICAgICAgICAgIjAuMjUyMTk3LCAwLjMwMjM0NywgMC41ODI0OTUsIDAuODI5Mzk4LCAxLjE1OTE2LCAxLjgxNzA4LCAyLjIyODY5IiwgXAotICAgICAgICAgICIwLjI2Njc0MSwgMC4zMTY4NTcsIDAuNTk3MDE3LCAwLjg0Mzk0MiwgMS4xNzMyNSwgMS44MzE3NCwgMi4yNDMzNiIsIFwKLSAgICAgICAgICAiMC4yODkzNDcsIDAuMzM5NTEzLCAwLjYxOTY5OSwgMC44NjY2MDgsIDEuMTk1OTYsIDEuODU0NDgsIDIuMjY1OTciLCBcCi0gICAgICAgICAgIjAuMzA4NDQ4LCAwLjM1ODYwOSwgMC42Mzg4MzYsIDAuODg1NzM2LCAxLjIxNTI4LCAxLjg3MzU2LCAyLjI4NTEyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE4OTQyNCwgMC4yODQzMDQsIDAuODM2MDcsIDEuMzI1OTEsIDEuOTgyNTcsIDMuMjg2MywgNC4wOTg1MiIsIFwKLSAgICAgICAgICAiMC4xODkyNTMsIDAuMjgzODY5LCAwLjgzNjA4NiwgMS4zMjM3NiwgMS45NzcyOCwgMy4yODc0NiwgNC4wOTg1NCIsIFwKLSAgICAgICAgICAiMC4xODk0MjIsIDAuMjgzOTcsIDAuODM2MDc2LCAxLjMyNjk1LCAxLjk3NzIxLCAzLjI4MjgzLCA0LjEwNTc4IiwgXAotICAgICAgICAgICIwLjE4OTI2MywgMC4yODQwMDIsIDAuODM2MDg0LCAxLjMyMzUsIDEuOTc1NTYsIDMuMjkxODUsIDQuMDk4MzUiLCBcCi0gICAgICAgICAgIjAuMTg5NDE5LCAwLjI4MzgyLCAwLjgzNjA4MSwgMS4zMjM4MywgMS45ODA3OCwgMy4yODE0NCwgNC4xMDAwOCIsIFwKLSAgICAgICAgICAiMC4xODkyOTgsIDAuMjg0MDM4LCAwLjgzNjA4NywgMS4zMjM3MywgMS45ODAwMSwgMy4yODI0NSwgNC4wOTc4MyIsIFwKLSAgICAgICAgICAiMC4xODkzMTYsIDAuMjgzODE4LCAwLjgzNjA4NiwgMS4zMjQ3NywgMS45Nzg3NywgMy4yODExNSwgNC4xMDg4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI0MTY0NiwgMC4yODU2MDcsIDAuNTMxMTg5LCAwLjc0NzIzNCwgMS4wMzUyMiwgMS42MTA3LCAxLjk3MDQiLCBcCi0gICAgICAgICAgIjAuMjUzMDY2LCAwLjI5NzA2NywgMC41NDI2NDEsIDAuNzU4NzMzLCAxLjA0NjU0LCAxLjYyMjE0LCAxLjk4MTc5IiwgXAotICAgICAgICAgICIwLjI2Nzg5OSwgMC4zMTE5MjgsIDAuNTU3NTAzLCAwLjc3MzU0OSwgMS4wNjE0MSwgMS42MzcwMSwgMS45OTY2NSIsIFwKLSAgICAgICAgICAiMC4yODI0NTksIDAuMzI2NDA5LCAwLjU3MTk4MiwgMC43ODgwMzEsIDEuMDc1OTUsIDEuNjUxNSwgMi4wMTExOSIsIFwKLSAgICAgICAgICAiMC4yOTYzNTMsIDAuMzQwMzg4LCAwLjU4NTk1NywgMC44MDE5OTQsIDEuMDg5ODUsIDEuNjY1NDgsIDIuMDI1MTEiLCBcCi0gICAgICAgICAgIjAuMzE2NTUsIDAuMzYwNTYsIDAuNjA2MTM1LCAwLjgyMjIyLCAxLjExMDA0LCAxLjY4NTY0LCAyLjA0NTI4IiwgXAotICAgICAgICAgICIwLjMzMjQxLCAwLjM3NjQ2NiwgMC42MjE5NjcsIDAuODM4MDYsIDEuMTI1OTUsIDEuNzAxNTQsIDIuMDYxMyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNzEyMDUsIDAuMjU1NjI4LCAwLjc0NzE2OSwgMS4xODczNiwgMS43NzI3OCwgMi45NDM4LCAzLjY3MDE0IiwgXAotICAgICAgICAgICIwLjE3MTE4MSwgMC4yNTU2NjIsIDAuNzQ3LCAxLjE4NDA4LCAxLjc3MDA1LCAyLjkzOTMzLCAzLjY3MDQ2IiwgXAotICAgICAgICAgICIwLjE3MTE4NSwgMC4yNTU2NjMsIDAuNzQ2OTg5LCAxLjE4NTA1LCAxLjc3MDA1LCAyLjkzOTI3LCAzLjY3MDQ0IiwgXAotICAgICAgICAgICIwLjE3MTI0NiwgMC4yNTU2MTksIDAuNzQ3MTk0LCAxLjE4NzM2LCAxLjc3MjksIDIuOTQzODMsIDMuNjcwMTMiLCBcCi0gICAgICAgICAgIjAuMTcxMTgyLCAwLjI1NTY1MiwgMC43NDY5MTksIDEuMTg3NCwgMS43Njk5MSwgMi45NDAxMywgMy42NzA2MSIsIFwKLSAgICAgICAgICAiMC4xNzExNywgMC4yNTU2MjcsIDAuNzQ3MDE5LCAxLjE4NzMsIDEuNzY5OTksIDIuOTM5MzQsIDMuNjcwMDYiLCBcCi0gICAgICAgICAgIjAuMTcxMjE4LCAwLjI1NTY0MiwgMC43NDg2MDksIDEuMTg3MzUsIDEuNzcwMTcsIDIuOTM5MywgMy42NzYyNSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yNDQ3OTQsIDAuMjk0ODQsIDAuNTc1MjUyLCAwLjgyMjI1OSwgMS4xNTE1MywgMS44MDk5OCwgMi4yMjEzNSIsIFwKLSAgICAgICAgICAiMC4yNTY2NTQsIDAuMzA2Njg4LCAwLjU4NzEzNCwgMC44MzQwODgsIDEuMTYzNDksIDEuODIxNzQsIDIuMjMzMiIsIFwKLSAgICAgICAgICAiMC4yNzE4NzQsIDAuMzIxOTE1LCAwLjYwMjM2NywgMC44NDkzNTgsIDEuMTc4NjEsIDEuODM2OTgsIDIuMjQ4MzgiLCBcCi0gICAgICAgICAgIjAuMjg3MTEzLCAwLjMzNzE2MSwgMC42MTc2LCAwLjg2NDU1OSwgMS4xOTM4MywgMS44NTIyMiwgMi4yNjM2NiIsIFwKLSAgICAgICAgICAiMC4zMDIyMjUsIDAuMzUyMjgyLCAwLjYzMjczMiwgMC44Nzk2ODMsIDEuMjA4OTUsIDEuODY3NTMsIDIuMjc4NzgiLCBcCi0gICAgICAgICAgIjAuMzI1MTY1LCAwLjM3NTIyLCAwLjY1NTY3MSwgMC45MDI2MjEsIDEuMjMxODcsIDEuODkwMjQsIDIuMzAxNzEiLCBcCi0gICAgICAgICAgIjAuMzQzNzA4LCAwLjM5Mzc2MSwgMC42NzQyMTIsIDAuOTIxMTYzLCAxLjI1MDQyLCAxLjkwODc4LCAyLjMyMDI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE4Nzg2NiwgMC4yODMwNCwgMC44MzQ5NDMsIDEuMzI2OTIsIDEuOTc4NDksIDMuMjg3MzEsIDQuMTA4MDYiLCBcCi0gICAgICAgICAgIjAuMTg3ODM2LCAwLjI4MzM1NiwgMC44MzU4OTMsIDEuMzI2OTYsIDEuOTc5ODUsIDMuMjkxNjUsIDQuMTA3NjYiLCBcCi0gICAgICAgICAgIjAuMTg3ODU4LCAwLjI4MzAzNSwgMC44MzU5NCwgMS4zMjQyOSwgMS45ODExNCwgMy4yODk3NywgNC4xMDgzIiwgXAotICAgICAgICAgICIwLjE4Nzg0MiwgMC4yODMzMzYsIDAuODM1ODU3LCAxLjMyNjkzLCAxLjk4MTQxLCAzLjI5MDUzLCA0LjEwODA0IiwgXAotICAgICAgICAgICIwLjE4NzkwMSwgMC4yODMyMTEsIDAuODM0MTc2LCAxLjMyNjc3LCAxLjk4MTU2LCAzLjI4MTU1LCA0LjEwODAxIiwgXAotICAgICAgICAgICIwLjE4NzkwMSwgMC4yODMyMDIsIDAuODM0MDc5LCAxLjMyNjgyLCAxLjk4MTg1LCAzLjI5MjQ1LCA0LjEwODA4IiwgXAotICAgICAgICAgICIwLjE4Nzg5MywgMC4yODMxOTgsIDAuODM0MDY0LCAxLjMyNjgsIDEuOTgwNDMsIDMuMjg2NDYsIDQuMTA3MDUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTc0NjA2LCAwLjIxODU2NSwgMC40NjM0MDcsIDAuNjc5MjEsIDAuOTY2OTc5LCAxLjU0MjY2LCAxLjkwMiIsIFwKLSAgICAgICAgICAiMC4xODU0MDksIDAuMjI5MzY2LCAwLjQ3NDIxOCwgMC42OTAwMSwgMC45Nzc3NzUsIDEuNTUzODcsIDEuOTEyODkiLCBcCi0gICAgICAgICAgIjAuMTk5MzM4LCAwLjI0MzI5NiwgMC40ODgxNDYsIDAuNzAzOTUzLCAwLjk5MTcyNCwgMS41NjcxNSwgMS45MjY3IiwgXAotICAgICAgICAgICIwLjIxMzAxMywgMC4yNTcwMiwgMC41MDE4OTUsIDAuNzE3NzAzLCAxLjAwNTQ4LCAxLjU4MTA2LCAxLjk0MDg2IiwgXAotICAgICAgICAgICIwLjIyNjg2NiwgMC4yNzA4NDYsIDAuNTE1NzAzLCAwLjczMTUyLCAxLjAxOTI5LCAxLjU5NTA5LCAxLjk1NDk3IiwgXAotICAgICAgICAgICIwLjI0OTE4OSwgMC4yOTMxNTYsIDAuNTM4MDYsIDAuNzUzODQzLCAxLjA0MTYsIDEuNjE3MjksIDEuOTc2NzgiLCBcCi0gICAgICAgICAgIjAuMjY4NDA4LCAwLjMxMjQ0OSwgMC41NTczMzksIDAuNzczMTMxLCAxLjA2MDk5LCAxLjYzNjU1LCAxLjk5NjE5Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE3MTc5NSwgMC4yNTU5MTIsIDAuNzQ2NDcxLCAxLjE4NjIxLCAxLjc3MjE2LCAyLjkzNjU0LCAzLjY2ODU0IiwgXAotICAgICAgICAgICIwLjE3MTc2NCwgMC4yNTU4ODEsIDAuNzQ3NzU1LCAxLjE4NjE5LCAxLjc3MjA5LCAyLjkzNTQsIDMuNjY1NzciLCBcCi0gICAgICAgICAgIjAuMTcxNzc3LCAwLjI1NTgxLCAwLjc0NjM2NCwgMS4xODYxNywgMS43NzIwNywgMi45MzU1OCwgMy42NzQ5NSIsIFwKLSAgICAgICAgICAiMC4xNzE3MTYsIDAuMjU1ODcyLCAwLjc0NjA3OCwgMS4xODQwOSwgMS43NjcwNywgMi45MzQ5NywgMy42NjcwOSIsIFwKLSAgICAgICAgICAiMC4xNzE3MzksIDAuMjU1ODcxLCAwLjc0NzU5LCAxLjE4NjE3LCAxLjc3MjA3LCAyLjkzNjE1LCAzLjY2NjUxIiwgXAotICAgICAgICAgICIwLjE3MTYzLCAwLjI1NTcyOCwgMC43NDYxMTMsIDEuMTg2MTEsIDEuNzcxOSwgMi45Mzg0NSwgMy42NjU5IiwgXAotICAgICAgICAgICIwLjE3MTgwMiwgMC4yNTU3NywgMC43NDU5NTIsIDEuMTg2MTEsIDEuNzY2ODksIDIuOTM0NzEsIDMuNjY1MiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xODU5MDgsIDAuMjM1OTQyLCAwLjUxNjM2NSwgMC43NjMzMTksIDEuMDkyNTYsIDEuNzUwOTYsIDIuMTYyMzkiLCBcCi0gICAgICAgICAgIjAuMTk2Mzg3LCAwLjI0NjQxNywgMC41MjY4NDgsIDAuNzczNzk4LCAxLjEwMzA2LCAxLjc2MTQyLCAyLjE3Mjg3IiwgXAotICAgICAgICAgICIwLjIwOTUxOSwgMC4yNTk1NDgsIDAuNTM5OTk1LCAwLjc4NzA0MywgMS4xMTYyMSwgMS43NzQ1OCwgMi4xODYxOCIsIFwKLSAgICAgICAgICAiMC4yMjI1NzUsIDAuMjcyNjU1LCAwLjU1MzA3NiwgMC44MDAwODQsIDEuMTI5MzIsIDEuNzg3ODYsIDIuMTk5MTMiLCBcCi0gICAgICAgICAgIjAuMjM1NzM2LCAwLjI4NTgwNSwgMC41NjYyODIsIDAuODEzMjgsIDEuMTQyNTIsIDEuODAwOTYsIDIuMjEyMzMiLCBcCi0gICAgICAgICAgIjAuMjU2NzIxLCAwLjMwNjgxOCwgMC41ODcyOTcsIDAuODM0MzE2LCAxLjE2MzU2LCAxLjgyMjA3LCAyLjIzMzM4IiwgXAotICAgICAgICAgICIwLjI3NDYxOSwgMC4zMjQ3MjgsIDAuNjA1MTk2LCAwLjg1MjI2MiwgMS4xODE1LCAxLjgzOTg3LCAyLjI1MTMxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE4Nzk2NCwgMC4yODMzOTEsIDAuODM1NjU2LCAxLjMyNjcyLCAxLjk3ODUyLCAzLjI5MTEyLCA0LjEwNTAxIiwgXAotICAgICAgICAgICIwLjE4Nzk1LCAwLjI4MzM5MSwgMC44MzU2MDMsIDEuMzI2NTksIDEuOTc4OTEsIDMuMjg3NjMsIDQuMTA2ODQiLCBcCi0gICAgICAgICAgIjAuMTg4MDUxLCAwLjI4MzEwOSwgMC44MzU2NDQsIDEuMzI1NjQsIDEuOTc4NDQsIDMuMjg3MzUsIDQuMTA3NjkiLCBcCi0gICAgICAgICAgIjAuMTg3OTM4LCAwLjI4MzM3NCwgMC44MzU1MSwgMS4zMjYyOCwgMS45Nzg4MiwgMy4yODk3NSwgNC4xMDQwOSIsIFwKLSAgICAgICAgICAiMC4xODc5NzIsIDAuMjgzNDE2LCAwLjgzNTYzOCwgMS4zMjYyOCwgMS45Nzg4NCwgMy4yOTA2NywgNC4xMDM3MyIsIFwKLSAgICAgICAgICAiMC4xODgwNzIsIDAuMjgzMzE0LCAwLjgzNDk2OSwgMS4zMjYzOCwgMS45Nzg3MywgMy4yODk2MiwgNC4xMDM5MyIsIFwKLSAgICAgICAgICAiMC4xODgzMTUsIDAuMjgzMjUsIDAuODM0NzQzLCAxLjMyNjIyLCAxLjk3ODg4LCAzLjI4NjY0LCA0LjEwNDA1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIyMzY1NiwgMC4yNjc2MDksIDAuNTEzMTgyLCAwLjcyOTIzOCwgMS4wMTcxMywgMS41OTI2OSwgMS45NTI0MSIsIFwKLSAgICAgICAgICAiMC4yMzU3NzEsIDAuMjc5NzE5LCAwLjUyNTI4NiwgMC43NDEzNDYsIDEuMDI5MjQsIDEuNjA0ODIsIDEuOTY0NSIsIFwKLSAgICAgICAgICAiMC4yNTA2MDQsIDAuMjk0NjY4LCAwLjU0MDE4LCAwLjc1NjIyOCwgMS4wNDQyMiwgMS42MTk3NCwgMS45NzkzOCIsIFwKLSAgICAgICAgICAiMC4yNjUwNTksIDAuMzA5MDA3LCAwLjU1NDUxNywgMC43NzA2NCwgMS4wNTg1MSwgMS42MzQwOSwgMS45OTM5IiwgXAotICAgICAgICAgICIwLjI3ODA1NiwgMC4zMjIwOSwgMC41Njc2MjUsIDAuNzgzNzIyLCAxLjA3MTU2LCAxLjY0NzE4LCAyLjAwNjgyIiwgXAotICAgICAgICAgICIwLjI5NjgzNCwgMC4zNDA3ODQsIDAuNTg2MzEsIDAuODAyNDA5LCAxLjA5MDMsIDEuNjY1ODYsIDIuMDI1NTMiLCBcCi0gICAgICAgICAgIjAuMzExNSwgMC4zNTU0NDYsIDAuNjAwOTg3LCAwLjgxNzA3LCAxLjEwNDk1LCAxLjY4MDUzLCAyLjA0MDE3Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE3MTI1NiwgMC4yNTU1NTcsIDAuNzQ4ODgsIDEuMTg3NDEsIDEuNzY5OTUsIDIuOTM5NjIsIDMuNjc2MDgiLCBcCi0gICAgICAgICAgIjAuMTcxMjgzLCAwLjI1NTYzMSwgMC43NDcwMTQsIDEuMTg3MzUsIDEuNzcwMTUsIDIuOTM5NDYsIDMuNjcwMzIiLCBcCi0gICAgICAgICAgIjAuMTcxMjA1LCAwLjI1NTY0NCwgMC43NDcxNjYsIDEuMTg3MywgMS43NzI3MiwgMi45Mzk2MywgMy42NzAzNyIsIFwKLSAgICAgICAgICAiMC4xNzEyMzgsIDAuMjU1NTA4LCAwLjc0ODU3OSwgMS4xODczOSwgMS43NzAxNSwgMi45Mzk0LCAzLjY3NTk3IiwgXAotICAgICAgICAgICIwLjE3MTE1LCAwLjI1NTYyNiwgMC43NDcyMjUsIDEuMTg3MzQsIDEuNzY5ODgsIDIuOTM5NjEsIDMuNjcwNDIiLCBcCi0gICAgICAgICAgIjAuMTcxMjUyLCAwLjI1NTY3OSwgMC43NDg2MDIsIDEuMTg3MzksIDEuNzY5OTcsIDIuOTM5NDksIDMuNjcwMjMiLCBcCi0gICAgICAgICAgIjAuMTcxMTQ1LCAwLjI1NTU4LCAwLjc0ODczOSwgMS4xODc0LCAxLjc3MDAxLCAyLjkzOTYyLCAzLjY3NTQzIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE5ODQ0NCwgMC4yNDg2MDYsIDAuNTI4NzU3LCAwLjc3NTY1LCAxLjEwNTI4LCAxLjc2MzMxLCAyLjE3NDk1IiwgXAotICAgICAgICAgICIwLjIxMDY3NiwgMC4yNjA4MDgsIDAuNTQwOTg2LCAwLjc4Nzg5OSwgMS4xMTcxMywgMS43NzYxMywgMi4xODcxNCIsIFwKLSAgICAgICAgICAiMC4yMjY0NjUsIDAuMjc2NjA0LCAwLjU1Njc0NCwgMC44MDM2ODEsIDEuMTMyOTIsIDEuNzkxODQsIDIuMjAyODYiLCBcCi0gICAgICAgICAgIjAuMjQyMjE4LCAwLjI5MjM1MywgMC41NzI1MzcsIDAuODE5NDQxLCAxLjE0ODY4LCAxLjgwNzI4LCAyLjIxODg5IiwgXAotICAgICAgICAgICIwLjI1NzY5NiwgMC4zMDc4NDYsIDAuNTg4MDM0LCAwLjgzNDkyOSwgMS4xNjQyMywgMS44MjI4MiwgMi4yMzQzMSIsIFwKLSAgICAgICAgICAiMC4yODA5NCwgMC4zMzEwNzcsIDAuNjExMjY0LCAwLjg1ODE1NSwgMS4xODc0NSwgMS44NDYwMywgMi4yNTc3MiIsIFwKLSAgICAgICAgICAiMC4yOTkyNTIsIDAuMzQ5NDExLCAwLjYyOTYxNywgMC44NzY0OTcsIDEuMjA1OSwgMS44NjQ0MiwgMi4yNzYwMSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xODkwOTgsIDAuMjgzNTYyLCAwLjgzNjA0NiwgMS4zMjU5MSwgMS45NzY0MiwgMy4yODMxNSwgNC4wOTg1OSIsIFwKLSAgICAgICAgICAiMC4xODkyMzksIDAuMjg0MDgsIDAuODM2MDcxLCAxLjMyNjk4LCAxLjk4MjYsIDMuMjg0MzksIDQuMTAzNzciLCBcCi0gICAgICAgICAgIjAuMTg5MDk5LCAwLjI4NDA0NCwgMC44MzQxODYsIDEuMzI2MDUsIDEuOTgyNTgsIDMuMjg3MTEsIDQuMDk5OTkiLCBcCi0gICAgICAgICAgIjAuMTg5MjA2LCAwLjI4NDA3MywgMC44MzYwODMsIDEuMzIzOTQsIDEuOTgyNjEsIDMuMjgxMzcsIDQuMTAwMTQiLCBcCi0gICAgICAgICAgIjAuMTg5MDY3LCAwLjI4NDA3MiwgMC44MzM4NDIsIDEuMzI0ODEsIDEuOTgxNzEsIDMuMjgyNTEsIDQuMDk3NzkiLCBcCi0gICAgICAgICAgIjAuMTg5MjIxLCAwLjI4NDA3NywgMC44MzYwODIsIDEuMzI2OTYsIDEuOTc2NDgsIDMuMjgxMjQsIDQuMTAzMjEiLCBcCi0gICAgICAgICAgIjAuMTg5MTc0LCAwLjI4NDEzNiwgMC44MzI5NDMsIDEuMzI1MjYsIDEuOTc1NjIsIDMuMjg2NTYsIDQuMTA2MDEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDMyMTUsIDAuMDAzMjIyLCAwLjAwMzIzLCAwLjAwMzIzMiwgMC4wMDMyMzQsIDAuMDAzMjM1LCAwLjAwMzIzNSIsIFwKLSAgICAgICAgICAiMC4wMDMyMDMsIDAuMDAzMjEsIDAuMDAzMjE5LCAwLjAwMzIyMSwgMC4wMDMyMjIsIDAuMDAzMjIzLCAwLjAwMzIyMyIsIFwKLSAgICAgICAgICAiMC4wMDMxOTQsIDAuMDAzMiwgMC4wMDMyMSwgMC4wMDMyMTIsIDAuMDAzMjEzLCAwLjAwMzIxNCwgMC4wMDMyMTQiLCBcCi0gICAgICAgICAgIjAuMDAzMTg4LCAwLjAwMzE5NSwgMC4wMDMyMDQsIDAuMDAzMjA2LCAwLjAwMzIwNywgMC4wMDMyMDgsIDAuMDAzMjA5IiwgXAotICAgICAgICAgICIwLjAwMzE4MywgMC4wMDMxOSwgMC4wMDMyLCAwLjAwMzIwMSwgMC4wMDMyMDMsIDAuMDAzMjAzLCAwLjAwMzIwNCIsIFwKLSAgICAgICAgICAiMC4wMDMxOCwgMC4wMDMxODcsIDAuMDAzMTk2LCAwLjAwMzE5OSwgMC4wMDMxOTksIDAuMDAzMiwgMC4wMDMyIiwgXAotICAgICAgICAgICIwLjAwMzE3OSwgMC4wMDMxODUsIDAuMDAzMTk0LCAwLjAwMzE5NiwgMC4wMDMxOTgsIDAuMDAzMTk5LCAwLjAwMzE5OSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjYzNiwgMC4wMDI2NDMsIDAuMDAyNjU0LCAwLjAwMjY1NywgMC4wMDI2NTgsIDAuMDAyNjU5LCAwLjAwMjY1OSIsIFwKLSAgICAgICAgICAiMC4wMDI2MiwgMC4wMDI2MjcsIDAuMDAyNjM5LCAwLjAwMjY0MSwgMC4wMDI2NDIsIDAuMDAyNjQzLCAwLjAwMjY0NCIsIFwKLSAgICAgICAgICAiMC4wMDI2MDksIDAuMDAyNjE2LCAwLjAwMjYyOCwgMC4wMDI2MywgMC4wMDI2MzEsIDAuMDAyNjMyLCAwLjAwMjYzMyIsIFwKLSAgICAgICAgICAiMC4wMDI2MDIsIDAuMDAyNjEsIDAuMDAyNjIxLCAwLjAwMjYyNCwgMC4wMDI2MjUsIDAuMDAyNjI2LCAwLjAwMjYyNiIsIFwKLSAgICAgICAgICAiMC4wMDI1OTksIDAuMDAyNjA3LCAwLjAwMjYxOCwgMC4wMDI2MiwgMC4wMDI2MjEsIDAuMDAyNjIzLCAwLjAwMjYyMyIsIFwKLSAgICAgICAgICAiMC4wMDI1OTcsIDAuMDAyNjA0LCAwLjAwMjYxNSwgMC4wMDI2MTgsIDAuMDAyNjE5LCAwLjAwMjYyMSwgMC4wMDI2MjEiLCBcCi0gICAgICAgICAgIjAuMDAyNTk2LCAwLjAwMjYwNCwgMC4wMDI2MTUsIDAuMDAyNjE3LCAwLjAwMjYxOSwgMC4wMDI2MiwgMC4wMDI2MiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzE0NiwgMC4wMDMxNTIsIDAuMDAzMTYyLCAwLjAwMzE2NCwgMC4wMDMxNjQsIDAuMDAzMTY3LCAwLjAwMzE2NiIsIFwKLSAgICAgICAgICAiMC4wMDMxNDQsIDAuMDAzMTUsIDAuMDAzMTYsIDAuMDAzMTYyLCAwLjAwMzE2MywgMC4wMDMxNjQsIDAuMDAzMTY1IiwgXAotICAgICAgICAgICIwLjAwMzE0MSwgMC4wMDMxNDcsIDAuMDAzMTU3LCAwLjAwMzE1OSwgMC4wMDMxNjEsIDAuMDAzMTYxLCAwLjAwMzE2MiIsIFwKLSAgICAgICAgICAiMC4wMDMxMzksIDAuMDAzMTQ1LCAwLjAwMzE1NCwgMC4wMDMxNTYsIDAuMDAzMTU4LCAwLjAwMzE1OSwgMC4wMDMxNTgiLCBcCi0gICAgICAgICAgIjAuMDAzMTM2LCAwLjAwMzE0MywgMC4wMDMxNTIsIDAuMDAzMTU0LCAwLjAwMzE1NSwgMC4wMDMxNTcsIDAuMDAzMTU3IiwgXAotICAgICAgICAgICIwLjAwMzEzNCwgMC4wMDMxNDEsIDAuMDAzMTUsIDAuMDAzMTUyLCAwLjAwMzE1MywgMC4wMDMxNTQsIDAuMDAzMTU0IiwgXAotICAgICAgICAgICIwLjAwMzEzMywgMC4wMDMxMzksIDAuMDAzMTQ4LCAwLjAwMzE1LCAwLjAwMzE1MSwgMC4wMDMxNTMsIDAuMDAzMTUzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyMTI1LCAwLjAwMjEzMywgMC4wMDIxNDUsIDAuMDAyMTQ4LCAwLjAwMjE0OSwgMC4wMDIxNTEsIDAuMDAyMTUxIiwgXAotICAgICAgICAgICIwLjAwMjEyOSwgMC4wMDIxMzcsIDAuMDAyMTQ5LCAwLjAwMjE1MiwgMC4wMDIxNTQsIDAuMDAyMTU1LCAwLjAwMjE1NSIsIFwKLSAgICAgICAgICAiMC4wMDIxNDUsIDAuMDAyMTUzLCAwLjAwMjE2NSwgMC4wMDIxNjgsIDAuMDAyMTY5LCAwLjAwMjE3MSwgMC4wMDIxNzEiLCBcCi0gICAgICAgICAgIjAuMDAyMTYxLCAwLjAwMjE2OSwgMC4wMDIxODEsIDAuMDAyMTg0LCAwLjAwMjE4NSwgMC4wMDIxODcsIDAuMDAyMTg3IiwgXAotICAgICAgICAgICIwLjAwMjE3NCwgMC4wMDIxODEsIDAuMDAyMTkzLCAwLjAwMjE5NiwgMC4wMDIxOTgsIDAuMDAyMTk5LCAwLjAwMjIiLCBcCi0gICAgICAgICAgIjAuMDAyMTk3LCAwLjAwMjIwNSwgMC4wMDIyMTcsIDAuMDAyMjIsIDAuMDAyMjIyLCAwLjAwMjIyNCwgMC4wMDIyMjQiLCBcCi0gICAgICAgICAgIjAuMDAyMjE0LCAwLjAwMjIyMSwgMC4wMDIyMzQsIDAuMDAyMjM4LCAwLjAwMjI0LCAwLjAwMjI0MSwgMC4wMDIyNDIiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBYTk9SMlgyICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKFhOT1IyWDIpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4xNTg2ODg7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDUyNDc3ODsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA1MjQ1MzU7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNTI0Nzc4OwotICB9Ci0gIHBpbihCKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDExNTA5MjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDExNTAyOTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDExNTA5MjsKLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjI2NDAzOTsKLSAgICBmdW5jdGlvbiA6ICIoIShBXkIpKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTkzODM4LCAwLjM4MTU1MSwgMC41MjU5MjgsIDAuNzA2MzYsIDAuODg2NTkzLCAxLjA2Njk1LCAxLjI0NzI3IiwgXAotICAgICAgICAgICIwLjIwNTczNiwgMC4zOTM0NDcsIDAuNTM3ODE3LCAwLjcxODI1OSwgMC44OTg0ODcsIDEuMDc4OTgsIDEuMjU5MTciLCBcCi0gICAgICAgICAgIjAuMjIwNjEzLCAwLjQwODM5OCwgMC41NTI3NDIsIDAuNzMzMTc0LCAwLjkxMzQwOCwgMS4wOTQwOSwgMS4yNzQyOSIsIFwKLSAgICAgICAgICAiMC4yMzU4NSwgMC40MjM1NzYsIDAuNTY3OTUxLCAwLjc0ODM5NiwgMC45Mjg2MjYsIDEuMTA5MTIsIDEuMjg5MzEiLCBcCi0gICAgICAgICAgIjAuMjUwODUzLCAwLjQzODYyOCwgMC41ODI5ODUsIDAuNzYzNDIzLCAwLjk0MzY1NywgMS4xMjQzNSwgMS4zMDQzNCIsIFwKLSAgICAgICAgICAiMC4yNzQ5ODgsIDAuNDYyNjA5LCAwLjYwNjk4NywgMC43ODczMDksIDAuOTY3NjQ0LCAxLjE0Nzk0LCAxLjMyODMyIiwgXAotICAgICAgICAgICIwLjI5NTkxNSwgMC40ODM2NTMsIDAuNjI4MDI2LCAwLjgwODM4NCwgMC45ODg3NzUsIDEuMTY5MzUsIDEuMzQ5NDUiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTEwOTk1LCAwLjQ2MzcxMiwgMC43NTM1MjQsIDEuMTE5OTIsIDEuNDkxMSwgMS44NTY2NywgMi4yMjkxMiIsIFwKLSAgICAgICAgICAiMC4xMTA5ODcsIDAuNDYzNjcxLCAwLjc1NDIxLCAxLjExOTkyLCAxLjQ5MTA3LCAxLjg1NTg5LCAyLjIyOTA5IiwgXAotICAgICAgICAgICIwLjExMDk2NywgMC40NjMwNTksIDAuNzU0MTUxLCAxLjExOTkxLCAxLjQ5MTAzLCAxLjg1NTExLCAyLjIyMzgiLCBcCi0gICAgICAgICAgIjAuMTExMDA1LCAwLjQ2MzYyOSwgMC43NTQxODIsIDEuMTE5OTEsIDEuNDkxMDQsIDEuODU2MDEsIDIuMjI5MDQiLCBcCi0gICAgICAgICAgIjAuMTEwOTk5LCAwLjQ2MzEyNSwgMC43NTQxOTMsIDEuMTE5OTEsIDEuNDkxMDQsIDEuODU1ODEsIDIuMjI5MDUiLCBcCi0gICAgICAgICAgIjAuMTExMTQsIDAuNDYzNjQ0LCAwLjc1NDEwMiwgMS4xMjIyNywgMS40OTA5OSwgMS44NTkxNCwgMi4yMjgxOSIsIFwKLSAgICAgICAgICAiMC4xMTEwODYsIDAuNDYzNjU4LCAwLjc1NDEwNCwgMS4xMjA4LCAxLjQ4NzkzLCAxLjg1NTQ5LCAyLjIyMzE5Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE4ODc0MywgMC40MDEyNjgsIDAuNTY2MjcsIDAuNzcyNDQ1LCAwLjk3ODYzOSwgMS4xODQ4NSwgMS4zOTE1MyIsIFwKLSAgICAgICAgICAiMC4yMDAwOTYsIDAuNDEyNjIzLCAwLjU3NzY1OSwgMC43ODM4MDEsIDAuOTg5OTgsIDEuMTk2MjMsIDEuNDAyMjciLCBcCi0gICAgICAgICAgIjAuMjE0NjU2LCAwLjQyNzEwNywgMC41OTIxNDIsIDAuNzk4Mjg5LCAxLjAwNDQ2LCAxLjIxMDczLCAxLjQxNjc4IiwgXAotICAgICAgICAgICIwLjIyOTAzLCAwLjQ0MTM4MiwgMC42MDY0MTUsIDAuODEyNTc1LCAxLjAxODc5LCAxLjIyNDk4LCAxLjQzMTA5IiwgXAotICAgICAgICAgICIwLjI0MzM5NSwgMC40NTU4MDEsIDAuNjIwODcsIDAuODI2OTk1LCAxLjAzMzM5LCAxLjIzOTUzLCAxLjQ0NTUxIiwgXAotICAgICAgICAgICIwLjI2NTgzOCwgMC40Nzg0MTgsIDAuNjQzNDc1LCAwLjg0OTYzMywgMS4wNTU4MSwgMS4yNjIwOCwgMS40NjgxMyIsIFwKLSAgICAgICAgICAiMC4yODUwNDksIDAuNDk3NTgzLCAwLjY2MjU5MywgMC44Njg4MTMsIDEuMDc0OTksIDEuMjgxMjYsIDEuNDg3NCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTc4NiwgMC41MTQ0NjcsIDAuODQxMzY4LCAxLjI1MTQ4LCAxLjY1OTA2LCAyLjA2NjMzLCAyLjQ3NzIyIiwgXAotICAgICAgICAgICIwLjExNzkwOCwgMC41MTQ0NDEsIDAuODQxMjM4LCAxLjI1MTQ4LCAxLjY1ODc2LCAyLjA2NzEyLCAyLjQ4NTAzIiwgXAotICAgICAgICAgICIwLjExNzk0LCAwLjUxNDQwOSwgMC44NDEyMzEsIDEuMjUxNDksIDEuNjU4NTQsIDIuMDY3NDUsIDIuNDg0NjMiLCBcCi0gICAgICAgICAgIjAuMTE4MDMsIDAuNTE0NDc2LCAwLjgzOTU0MiwgMS4yNTE0NywgMS42NTk0NywgMi4wNjY1MiwgMi40ODUzIiwgXAotICAgICAgICAgICIwLjExODA1MiwgMC41MTQ0NjcsIDAuODM4MzAxLCAxLjI0OTY3LCAxLjY1OTU1LCAyLjA2OTU2LCAyLjQ4NTA5IiwgXAotICAgICAgICAgICIwLjExNzk3MywgMC41MTQzMzIsIDAuODQxMjQxLCAxLjI1MTQ4LCAxLjY1ODU4LCAyLjA2NzI4LCAyLjQ4NDkiLCBcCi0gICAgICAgICAgIjAuMTE3OTY0LCAwLjUxNDM1MywgMC44NDA5OTIsIDEuMjUxNDgsIDEuNjU4NjgsIDIuMDY3MTQsIDIuNDc2NjciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjI4NTc5LCAwLjQxNTc4NSwgMC41NjA0MDUsIDAuNzQxMDQ2LCAwLjkyMTQyNywgMS4xMDE3NywgMS4yODIxNCIsIFwKLSAgICAgICAgICAiMC4yMzk5LCAwLjQyNzM0NSwgMC41NzE5NDUsIDAuNzUyNTg1LCAwLjkzMjk2NiwgMS4xMTMzMSwgMS4yOTM2OCIsIFwKLSAgICAgICAgICAiMC4yNTQ2NTgsIDAuNDQyMDQzLCAwLjU4NjY4LCAwLjc2NzMyNiwgMC45NDc3MDcsIDEuMTI4MDQsIDEuMzA4NDIiLCBcCi0gICAgICAgICAgIjAuMjY5MjY4LCAwLjQ1NjU4OCwgMC42MDEyMDgsIDAuNzgxODYzLCAwLjk2MjIwNiwgMS4xNDI1NywgMS4zMjI5NCIsIFwKLSAgICAgICAgICAiMC4yODI5MjIsIDAuNDcwMzA2LCAwLjYxNDkzMiwgMC43OTU1ODQsIDAuOTc1OTYzLCAxLjE1NjMsIDEuMzM2NjciLCBcCi0gICAgICAgICAgIjAuMzAyOTQ3LCAwLjQ5MDE1NCwgMC42MzQ3ODYsIDAuODE1MzI2LCAwLjk5NTc4MywgMS4xNzYyLCAxLjM1NjU1IiwgXAotICAgICAgICAgICIwLjMxODM5MSwgMC41MDU4MzgsIDAuNjUwNDYxLCAwLjgzMTEwNywgMS4wMTE0OSwgMS4xOTE4MywgMS4zNzIyIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExMDY2MSwgMC40NjMxOTUsIDAuNzU0NzMyLCAxLjEyMzg2LCAxLjQ5MTk5LCAxLjg2MDM3LCAyLjIyNjA4IiwgXAotICAgICAgICAgICIwLjExMDUxOCwgMC40NjM3NzUsIDAuNzU0NzM1LCAxLjEyMzg2LCAxLjQ5MTk5LCAxLjg2MDM2LCAyLjIyNjEyIiwgXAotICAgICAgICAgICIwLjExMDQ4MiwgMC40NjM4NDMsIDAuNzU0NzI2LCAxLjEyMzg4LCAxLjQ5MjAyLCAxLjg2MDM5LCAyLjIyNTk5IiwgXAotICAgICAgICAgICIwLjExMDUxNCwgMC40NjM4MDcsIDAuNzU0NzE3LCAxLjEyMDg5LCAxLjQ4OTY5LCAxLjg2MDQ5LCAyLjIyNjE2IiwgXAotICAgICAgICAgICIwLjExMDQ3OSwgMC40NjM3NTIsIDAuNzU0NjY1LCAxLjEyMDg5LCAxLjQ5MiwgMS44NjA0NywgMi4yMjU5NCIsIFwKLSAgICAgICAgICAiMC4xMTA2NDIsIDAuNDYzNzQyLCAwLjc1NDcyMiwgMS4xMjM0MiwgMS40OTE5MiwgMS44NjA3MSwgMi4yMjYyNCIsIFwKLSAgICAgICAgICAiMC4xMTA0NzYsIDAuNDYzMiwgMC43NTQ2NzcsIDEuMTIzODYsIDEuNDkxOTksIDEuODYwMjIsIDIuMjI1ODkiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjI0NTk2LCAwLjQzNjQ5NiwgMC42MDE2NjEsIDAuODA3OTgzLCAxLjAxNDEzLCAxLjIyMDMyLCAxLjQyNjYiLCBcCi0gICAgICAgICAgIjAuMjM2NDI2LCAwLjQ0ODMwNiwgMC42MTM0ODMsIDAuODE5Nzk1LCAxLjAyNTk1LCAxLjIzMjEyLCAxLjQzODI4IiwgXAotICAgICAgICAgICIwLjI1MTcyMiwgMC40NjM2MjYsIDAuNjI4ODE2LCAwLjgzNTE4NiwgMS4wNDEyNiwgMS4yNDc0MiwgMS40NTM1OSIsIFwKLSAgICAgICAgICAiMC4yNjY4MiwgMC40Nzg4OTcsIDAuNjQ0MDgzLCAwLjg1MDM4NywgMS4wNTY1NSwgMS4yNjI2OCwgMS40Njg4NCIsIFwKLSAgICAgICAgICAiMC4yODE5ODMsIDAuNDkzODc1LCAwLjY1OTA2MSwgMC44NjUzNTgsIDEuMDcxNTEsIDEuMjc3NjgsIDEuNDgzODQiLCBcCi0gICAgICAgICAgIjAuMzA0NTI4LCAwLjUxNjU5MiwgMC42ODE3NzQsIDAuODg4MDgyLCAxLjA5NDI0LCAxLjMwMDM4LCAxLjUwNjUzIiwgXAotICAgICAgICAgICIwLjMyMjg0LCAwLjUzNDc2LCAwLjY5OTk1NCwgMC45MDYyMjksIDEuMTEyNDQsIDEuMzE4NjksIDEuNTI0NjkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTE2NTY0LCAwLjUxNDI3MywgMC44NDEzMDUsIDEuMjUxMzYsIDEuNjYyOSwgMi4wNzE0NiwgMi40Nzk3MSIsIFwKLSAgICAgICAgICAiMC4xMTY2MDEsIDAuNTE0MjU3LCAwLjg0MDUwOCwgMS4yNTEyNCwgMS42NjI3MiwgMi4wNzA1NSwgMi40ODQ0NyIsIFwKLSAgICAgICAgICAiMC4xMTY2NiwgMC41MTQyODcsIDAuODM4NzI2LCAxLjI0NzM1LCAxLjY2Mjc4LCAyLjA3Mzg5LCAyLjQ4NDIiLCBcCi0gICAgICAgICAgIjAuMTE2NTc3LCAwLjUxNDIyOCwgMC44NDAxNDcsIDEuMjUwOTUsIDEuNjU5NDUsIDIuMDcwNjgsIDIuNDg0MTEiLCBcCi0gICAgICAgICAgIjAuMTE2NzAzLCAwLjUxNDI2NSwgMC44MzkyOTMsIDEuMjUxMTksIDEuNjYyNjYsIDIuMDcwMzMsIDIuNDg0MzIiLCBcCi0gICAgICAgICAgIjAuMTE2NjA3LCAwLjUxNDEyMywgMC44NDAyODgsIDEuMjUxMDEsIDEuNjYyMywgMi4wNzA5MiwgMi40ODQwMSIsIFwKLSAgICAgICAgICAiMC4xMTY2NzEsIDAuNTE0MTc1LCAwLjgzODgzMywgMS4yNDkwOCwgMS42NjIxNiwgMi4wNzE5OCwgMi40ODA3NyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNjI1NjIsIDAuMzUwMzc3LCAwLjQ5NDcyNywgMC42NzUxMjYsIDAuODU1MzY2LCAxLjAzNjAyLCAxLjIxNjAxIiwgXAotICAgICAgICAgICIwLjE3MzU3OCwgMC4zNjEyNzYsIDAuNTA1NjM2LCAwLjY4NjA1NywgMC44NjYyOTUsIDEuMDQ2OTUsIDEuMjI3MSIsIFwKLSAgICAgICAgICAiMC4xODc2NTMsIDAuMzc1MzEsIDAuNTE5NjcsIDAuNzAwMDA4LCAwLjg4MDM4MSwgMS4wNjA3NCwgMS4yNDEwNiIsIFwKLSAgICAgICAgICAiMC4yMDEzMjIsIDAuMzg5MDYyLCAwLjUzMzQ1NiwgMC43MTM4MzEsIDAuODk0MDY4LCAxLjA3NDczLCAxLjI1NDgyIiwgXAotICAgICAgICAgICIwLjIxNTE1OCwgMC40MDI4MjMsIDAuNTQ3MTg4LCAwLjcyNzUwMSwgMC45MDc4OTMsIDEuMDg4MTUsIDEuMjY4NjIiLCBcCi0gICAgICAgICAgIjAuMjM3MzIzLCAwLjQyNTAzNywgMC41Njk0MDMsIDAuNzQ5Nzk3LCAwLjkzMDI0NiwgMS4xMTA2MiwgMS4yOTA4MyIsIFwKLSAgICAgICAgICAiMC4yNTY3OTQsIDAuNDQ0NDYxLCAwLjU4ODgwNywgMC43NjkyNTMsIDAuOTQ5NDkzLCAxLjEzMDE5LCAxLjMxMDM3Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExMDYzLCAwLjQ2MzQ2MSwgMC43NTUyODUsIDEuMTIyOTUsIDEuNDkxMDksIDEuODU1MTYsIDIuMjI5MDQiLCBcCi0gICAgICAgICAgIjAuMTEwNjYzLCAwLjQ2MzUxOCwgMC43NTQwMzksIDEuMTI0NzQsIDEuNDkxMDQsIDEuODU1NTIsIDIuMjIyOCIsIFwKLSAgICAgICAgICAiMC4xMTA2OTYsIDAuNDYzNjAxLCAwLjc1NDEyMywgMS4xMjA2NywgMS40ODc0NSwgMS44NTY2OCwgMi4yMjMxOCIsIFwKLSAgICAgICAgICAiMC4xMTA2MDQsIDAuNDYzNTY3LCAwLjc1MzcsIDEuMTI0ODQsIDEuNDkxMDIsIDEuODU1NSwgMi4yMjQ4NSIsIFwKLSAgICAgICAgICAiMC4xMTA2OCwgMC40NjM1NDcsIDAuNzU0MDE3LCAxLjEyMjEsIDEuNDkxMTksIDEuODU5NzcsIDIuMjIyOTkiLCBcCi0gICAgICAgICAgIjAuMTEwNzAyLCAwLjQ2MzU4MywgMC43NTQwOCwgMS4xMjI3OCwgMS40ODY5OSwgMS44NTU3NCwgMi4yMjMxOSIsIFwKLSAgICAgICAgICAiMC4xMTA3MDMsIDAuNDYzNTMyLCAwLjc1NDIzLCAxLjExOTkxLCAxLjQ5MTAyLCAxLjg1NDg0LCAyLjIyMzg1Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE2OTA4NiwgMC4zODExMjIsIDAuNTQ2Mjk3LCAwLjc1MjYwNSwgMC45NTg3NTYsIDEuMTY0OTIsIDEuMzcxMDUiLCBcCi0gICAgICAgICAgIjAuMTc5NjE4LCAwLjM5MTYyMiwgMC41NTY3NzQsIDAuNzYzMTA1LCAwLjk2OTI1OCwgMS4xNzU0MSwgMS4zODE1NSIsIFwKLSAgICAgICAgICAiMC4xOTI3NjUsIDAuNDA0ODMyLCAwLjU3MDAwNSwgMC43NzYzMiwgMC45ODI0NzMsIDEuMTg4NjMsIDEuMzk0NzYiLCBcCi0gICAgICAgICAgIjAuMjA1ODk4LCAwLjQxNzg3NiwgMC41ODMwODYsIDAuNzg5MzU5LCAwLjk5NTYwMywgMS4yMDE3MSwgMS40MDc4MiIsIFwKLSAgICAgICAgICAiMC4yMTg5NzQsIDAuNDMxMDU4LCAwLjU5NjIzLCAwLjgwMjU2NiwgMS4wMDg3MiwgMS4yMTQ4OCwgMS40MjEwMSIsIFwKLSAgICAgICAgICAiMC4yNDAxNjUsIDAuNDUyMjUxLCAwLjYxNzQ0NywgMC44MjM3NzksIDEuMDI5OTQsIDEuMjM2MSwgMS40NDIyMyIsIFwKLSAgICAgICAgICAiMC4yNTg2NzEsIDAuNDcwNzI3LCAwLjYzNTk1MywgMC44NDIyNjcsIDEuMDQ4NDMsIDEuMjU0NiwgMS40NjA3OSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTYzNjUsIDAuNTE0MjM3LCAwLjg0MTQ1NiwgMS4yNTEwMSwgMS42NjI0MiwgMi4wNzAxNywgMi40ODIyOSIsIFwKLSAgICAgICAgICAiMC4xMTY0MDgsIDAuNTE0MjI5LCAwLjg0MTE2NSwgMS4yNTA5NywgMS42NjIzNCwgMi4wNjk5OSwgMi40ODMwNiIsIFwKLSAgICAgICAgICAiMC4xMTYzODQsIDAuNTE0MjQxLCAwLjg0MTM5LCAxLjI1MDk4LCAxLjY2MjM2LCAyLjA3MDA4LCAyLjQ4MjIzIiwgXAotICAgICAgICAgICIwLjExNjUyOCwgMC41MTQyNzEsIDAuODM5NjMsIDEuMjUxMjQsIDEuNjYxMzcsIDIuMDcwMjcsIDIuNDgwOTMiLCBcCi0gICAgICAgICAgIjAuMTE2NTI3LCAwLjUxNDI0MywgMC44NDEyMzksIDEuMjUwOTIsIDEuNjYyMjksIDIuMDY5OTMsIDIuNDgyMTIiLCBcCi0gICAgICAgICAgIjAuMTE2NTQsIDAuNTE0MjQ1LCAwLjg0MTM5LCAxLjI1MDk0LCAxLjY2MjMzLCAyLjA3LCAyLjQ4MTg3IiwgXAotICAgICAgICAgICIwLjExNjc1OCwgMC41MTQxNjksIDAuODM5MTAyLCAxLjI1MTA4LCAxLjY2MjYyLCAyLjA3MDA3LCAyLjQ4MzU3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIxMTkyNiwgMC4zOTkyOCwgMC41NDM5MDgsIDAuNzI0NTE1LCAwLjkwNDk4NSwgMS4wODU0LCAxLjI2NTYzIiwgXAotICAgICAgICAgICIwLjIyNDAwNSwgMC40MTEzNzgsIDAuNTU2MDEyLCAwLjczNjU1LCAwLjkxNzAxMywgMS4wOTc0MSwgMS4yNzc4NCIsIFwKLSAgICAgICAgICAiMC4yMzkwMzMsIDAuNDI2NDU1LCAwLjU3MTA5OSwgMC43NTE3MDUsIDAuOTMyMDg0LCAxLjExMjQzLCAxLjI5MjgiLCBcCi0gICAgICAgICAgIjAuMjUzNzI4LCAwLjQ0MDkxNCwgMC41ODU1NDQsIDAuNzY2MDc4LCAwLjk0NjU0OCwgMS4xMjY5NCwgMS4zMDc0IiwgXAotICAgICAgICAgICIwLjI2NjkwNSwgMC40NTQyNTMsIDAuNTk4ODgyLCAwLjc3OTQ1MywgMC45NTk5MzYsIDEuMTQwMzQsIDEuMzIwNiIsIFwKLSAgICAgICAgICAiMC4yODU4NjcsIDAuNDczMzI5LCAwLjYxNzkzMSwgMC43OTg1ODQsIDAuOTc4OTYzLCAxLjE1OTMsIDEuMzM5NjgiLCBcCi0gICAgICAgICAgIjAuMzAwNzA3LCAwLjQ4ODA3NCwgMC42MzI3LCAwLjgxMzI1MywgMC45OTM3MDIsIDEuMTc0MDYsIDEuMzU0NDYiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTEwMzg4LCAwLjQ2MzczOSwgMC43NTQ3NTksIDEuMTIzNjgsIDEuNDkyMTcsIDEuODYwOTIsIDIuMjI1OTciLCBcCi0gICAgICAgICAgIjAuMTEwNDkyLCAwLjQ2Mzc0MiwgMC43NTQ3MzksIDEuMTIzMjQsIDEuNDkxOTEsIDEuODYwNTksIDIuMjI5NzYiLCBcCi0gICAgICAgICAgIjAuMTEwNTI5LCAwLjQ2MzcwNCwgMC43NTYwMiwgMS4xMjM4NiwgMS40OTE5NiwgMS44NjAzLCAyLjIyOTI1IiwgXAotICAgICAgICAgICIwLjExMDYwMSwgMC40NjM3MzcsIDAuNzU0NzYxLCAxLjEyMzMzLCAxLjQ5MTkxLCAxLjg2MDYsIDIuMjI5NjciLCBcCi0gICAgICAgICAgIjAuMTEwMzgxLCAwLjQ2MzczNSwgMC43NTQ3NTcsIDEuMTIzNTEsIDEuNDkyMTQsIDEuODYwOSwgMi4yMjU5MyIsIFwKLSAgICAgICAgICAiMC4xMTA0NDMsIDAuNDYzNjg3LCAwLjc1NDY1LCAxLjEyMDg5LCAxLjQ5MTk1LCAxLjg2MDM5LCAyLjIyNjA4IiwgXAotICAgICAgICAgICIwLjExMDQyNSwgMC40NjM2NjIsIDAuNzU0Njk1LCAxLjEyMTY5LCAxLjQ5MTg5LCAxLjg2MDI1LCAyLjIyOTQzIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE3NjIwNywgMC4zODg3MzYsIDAuNTUzNzI0LCAwLjc1OTkzNywgMC45NjYwOTQsIDEuMTcyMzksIDEuMzc4ODIiLCBcCi0gICAgICAgICAgIjAuMTg4NDk3LCAwLjQwMDg5MywgMC41NjU5MjUsIDAuNzcyMDg5LCAwLjk3ODI0MiwgMS4xODQ2NSwgMS4zOTA1IiwgXAotICAgICAgICAgICIwLjIwNDQ2MiwgMC40MTY5NjgsIDAuNTgxOTc5LCAwLjc4ODE3OSwgMC45OTQyODksIDEuMjAwNjcsIDEuNDA2NjEiLCBcCi0gICAgICAgICAgIjAuMjIwMTgzLCAwLjQzMjcwMywgMC41OTc3MzIsIDAuODAzOTEsIDEuMDEwMDksIDEuMjE2NTQsIDEuNDIzMDkiLCBcCi0gICAgICAgICAgIjAuMjM1ODM2LCAwLjQ0ODMzLCAwLjYxMzMyNCwgMC44MTk1NDMsIDEuMDI1NywgMS4yMzIsIDEuNDM3OTkiLCBcCi0gICAgICAgICAgIjAuMjU5Nzg4LCAwLjQ3MjE2LCAwLjYzNzE5MiwgMC44NDMzMzEsIDEuMDQ5NTIsIDEuMjU1NzEsIDEuNDYxODIiLCBcCi0gICAgICAgICAgIjAuMjc4Njk0LCAwLjQ5MTE3MiwgMC42NTYyMTEsIDAuODYyNDI2LCAxLjA2ODU0LCAxLjI3NDkzLCAxLjQ4MDg3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExNzc2OSwgMC41MTQzNTQsIDAuODQwOTYsIDEuMjUxNSwgMS42NTg4MSwgMi4wNjc3MywgMi40Nzg0MyIsIFwKLSAgICAgICAgICAiMC4xMTc4NzksIDAuNTE0MzQyLCAwLjgzODM4OSwgMS4yNTE0NiwgMS42NTkwNSwgMi4wNzA0OSwgMi40ODYwNiIsIFwKLSAgICAgICAgICAiMC4xMTc4NjMsIDAuNTE0MjczLCAwLjgzOTk3NiwgMS4yNTE1MiwgMS42NjEwNCwgMi4wNjkzNSwgMi40ODUxOSIsIFwKLSAgICAgICAgICAiMC4xMTc2OTIsIDAuNTE0MzAzLCAwLjgzODczOSwgMS4yNTE0OSwgMS42NTg3OCwgMi4wNzAxMywgMi40Nzk3OSIsIFwKLSAgICAgICAgICAiMC4xMTc3NzksIDAuNTE0MjA5LCAwLjg0MDgyNywgMS4yNTE1LCAxLjY1OTA4LCAyLjA2Nzc4LCAyLjQ4NTA0IiwgXAotICAgICAgICAgICIwLjExNzkxOCwgMC41MTQyMjMsIDAuODM4NDYyLCAxLjI1MTU0LCAxLjY2MjczLCAyLjA2ODQ2LCAyLjQ3OTI3IiwgXAotICAgICAgICAgICIwLjExNzg2LCAwLjUxNDI1OCwgMC44MzkyODQsIDEuMjUxNTIsIDEuNjYxMDQsIDIuMDY5NzksIDIuNDg0OTIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDM2NzksIDAuMDAzNzMyLCAwLjAwMzczOSwgMC4wMDM3NDMsIDAuMDAzNzQ1LCAwLjAwMzc0NiwgMC4wMDM3NDciLCBcCi0gICAgICAgICAgIjAuMDAzNjY3LCAwLjAwMzcyLCAwLjAwMzcyNywgMC4wMDM3MzEsIDAuMDAzNzMzLCAwLjAwMzczNSwgMC4wMDM3MzYiLCBcCi0gICAgICAgICAgIjAuMDAzNjU4LCAwLjAwMzcxLCAwLjAwMzcxOCwgMC4wMDM3MjIsIDAuMDAzNzI0LCAwLjAwMzcyNiwgMC4wMDM3MjYiLCBcCi0gICAgICAgICAgIjAuMDAzNjUyLCAwLjAwMzcwNSwgMC4wMDM3MTMsIDAuMDAzNzE3LCAwLjAwMzcxOSwgMC4wMDM3MiwgMC4wMDM3MjEiLCBcCi0gICAgICAgICAgIjAuMDAzNjQ5LCAwLjAwMzcwMSwgMC4wMDM3MDgsIDAuMDAzNzEzLCAwLjAwMzcxNSwgMC4wMDM3MTYsIDAuMDAzNzE3IiwgXAotICAgICAgICAgICIwLjAwMzY0NCwgMC4wMDM2OTcsIDAuMDAzNzA0LCAwLjAwMzcwOCwgMC4wMDM3MSwgMC4wMDM3MTIsIDAuMDAzNzEyIiwgXAotICAgICAgICAgICIwLjAwMzY0MywgMC4wMDM2OTYsIDAuMDAzNzA0LCAwLjAwMzcwNywgMC4wMDM3MSwgMC4wMDM3MTEsIDAuMDAzNzEyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzNDE3LCAwLjAwMzQ4NCwgMC4wMDM0OTMsIDAuMDAzNDk4LCAwLjAwMzUwMSwgMC4wMDM1MDIsIDAuMDAzNTAzIiwgXAotICAgICAgICAgICIwLjAwMzQwMSwgMC4wMDM0NjgsIDAuMDAzNDc3LCAwLjAwMzQ4MiwgMC4wMDM0ODUsIDAuMDAzNDg2LCAwLjAwMzQ4NyIsIFwKLSAgICAgICAgICAiMC4wMDMzOSwgMC4wMDM0NTcsIDAuMDAzNDY3LCAwLjAwMzQ3MSwgMC4wMDM0NzQsIDAuMDAzNDc1LCAwLjAwMzQ3NyIsIFwKLSAgICAgICAgICAiMC4wMDMzODQsIDAuMDAzNDUxLCAwLjAwMzQ2LCAwLjAwMzQ2NSwgMC4wMDM0NjgsIDAuMDAzNDY5LCAwLjAwMzQ3IiwgXAotICAgICAgICAgICIwLjAwMzM4MSwgMC4wMDM0NDgsIDAuMDAzNDU3LCAwLjAwMzQ2MiwgMC4wMDM0NjQsIDAuMDAzNDY2LCAwLjAwMzQ2NyIsIFwKLSAgICAgICAgICAiMC4wMDMzNzksIDAuMDAzNDQ2LCAwLjAwMzQ1NSwgMC4wMDM0NiwgMC4wMDM0NjMsIDAuMDAzNDY0LCAwLjAwMzQ2NSIsIFwKLSAgICAgICAgICAiMC4wMDMzNzgsIDAuMDAzNDQ1LCAwLjAwMzQ1NCwgMC4wMDM0NTksIDAuMDAzNDYyLCAwLjAwMzQ2MywgMC4wMDM0NjQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDM4MTYsIDAuMDAzODY4LCAwLjAwMzg3NiwgMC4wMDM4OCwgMC4wMDM4ODIsIDAuMDAzODg0LCAwLjAwMzg4NiIsIFwKLSAgICAgICAgICAiMC4wMDM4MTYsIDAuMDAzODY3LCAwLjAwMzg3NSwgMC4wMDM4OCwgMC4wMDM4ODEsIDAuMDAzODgzLCAwLjAwMzg4NSIsIFwKLSAgICAgICAgICAiMC4wMDM4MTUsIDAuMDAzODY2LCAwLjAwMzg3NCwgMC4wMDM4NzgsIDAuMDAzODgsIDAuMDAzODgyLCAwLjAwMzg4MyIsIFwKLSAgICAgICAgICAiMC4wMDM4MTQsIDAuMDAzODY1LCAwLjAwMzg3MiwgMC4wMDM4NzcsIDAuMDAzODc5LCAwLjAwMzg4MSwgMC4wMDM4ODEiLCBcCi0gICAgICAgICAgIjAuMDAzODEyLCAwLjAwMzg2NCwgMC4wMDM4NzEsIDAuMDAzODc2LCAwLjAwMzg3NywgMC4wMDM4NzksIDAuMDAzODgxIiwgXAotICAgICAgICAgICIwLjAwMzgxMSwgMC4wMDM4NjIsIDAuMDAzODcsIDAuMDAzODc0LCAwLjAwMzg3NywgMC4wMDM4NzksIDAuMDAzODc5IiwgXAotICAgICAgICAgICIwLjAwMzgwOSwgMC4wMDM4NjMsIDAuMDAzODY5LCAwLjAwMzg3NCwgMC4wMDM4NzUsIDAuMDAzODc3LCAwLjAwMzg3NyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjgwMywgMC4wMDI4NjksIDAuMDAyODc4LCAwLjAwMjg4MywgMC4wMDI4ODYsIDAuMDAyODg3LCAwLjAwMjg4OSIsIFwKLSAgICAgICAgICAiMC4wMDI4MDYsIDAuMDAyODcxLCAwLjAwMjg4MSwgMC4wMDI4ODYsIDAuMDAyODg4LCAwLjAwMjg5LCAwLjAwMjg5MSIsIFwKLSAgICAgICAgICAiMC4wMDI4MjEsIDAuMDAyODg1LCAwLjAwMjg5NSwgMC4wMDI5LCAwLjAwMjkwMywgMC4wMDI5MDQsIDAuMDAyOTA2IiwgXAotICAgICAgICAgICIwLjAwMjgzNSwgMC4wMDI4OTcsIDAuMDAyOTA3LCAwLjAwMjkxMywgMC4wMDI5MTYsIDAuMDAyOTE3LCAwLjAwMjkxOCIsIFwKLSAgICAgICAgICAiMC4wMDI4NSwgMC4wMDI5MTIsIDAuMDAyOTIyLCAwLjAwMjkyOCwgMC4wMDI5MzEsIDAuMDAyOTMzLCAwLjAwMjkzNCIsIFwKLSAgICAgICAgICAiMC4wMDI4NzQsIDAuMDAyOTM1LCAwLjAwMjk0NiwgMC4wMDI5NTIsIDAuMDAyOTU1LCAwLjAwMjk1NywgMC4wMDI5NTgiLCBcCi0gICAgICAgICAgIjAuMDAyODksIDAuMDAyOTUxLCAwLjAwMjk2MiwgMC4wMDI5NjgsIDAuMDAyOTcxLCAwLjAwMjk3MywgMC4wMDI5NzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBYTk9SMlg0ICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKFhOT1IyWDQpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4yNzA1MjE7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDU4MjExOTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA1ODE4MjU7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNTgyMTE5OwotICB9Ci0gIHBpbihCKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE1MDE5MTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE1MDE0MTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE1MDE5MTsKLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjQ4OTI4MjsKLSAgICBmdW5jdGlvbiA6ICIoIShBXkIpKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMjA1NSwgMC4zNzA0MzEsIDAuNDk4NTYsIDAuNTg5MzAxLCAwLjczNDIwNSwgMC44NjA5NjIsIDEuMDQyMTYiLCBcCi0gICAgICAgICAgIjAuMjMyMzg5LCAwLjM4MjE1OSwgMC41MTAzNTcsIDAuNjAxMTA5LCAwLjc0NjAwNCwgMC44NzI3OCwgMS4wNTM4NiIsIFwKLSAgICAgICAgICAiMC4yNDc0MTYsIDAuMzk3MTg5LCAwLjUyNTQwNSwgMC42MTYxODksIDAuNzYxMDc1LCAwLjg4Nzg0OSwgMS4wNjkwMyIsIFwKLSAgICAgICAgICAiMC4yNjI3MTIsIDAuNDEyNDUsIDAuNTQwNjcxLCAwLjYzMTQ1MiwgMC43NzYzNCwgMC45MDMxMTUsIDEuMDg0MyIsIFwKLSAgICAgICAgICAiMC4yNzc4MzksIDAuNDI3NTQ4LCAwLjU1NTc2NSwgMC42NDY0NTMsIDAuNzkxMzkyLCAwLjkxODE2NCwgMS4wOTkzOCIsIFwKLSAgICAgICAgICAiMC4zMDIzMTMsIDAuNDUyMDQ4LCAwLjU4MDI1OCwgMC42NzEwMzUsIDAuODE1OTI3LCAwLjk0MjcwNSwgMS4xMjM5IiwgXAotICAgICAgICAgICIwLjMyMzU1MiwgMC40NzMyNDQsIDAuNjAxNDg0LCAwLjY5MjE3MSwgMC44MzcxMDEsIDAuOTYzOTAxLCAxLjE0NTEiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTExMjksIDAuMzMzMjk4LCAwLjU4MzEyMSwgMC43NjQ3NDUsIDEuMDU0NzMsIDEuMzE0MzEsIDEuNjgzNTIiLCBcCi0gICAgICAgICAgIjAuMDkxMDU1LCAwLjMzMzI4MSwgMC41ODMxNDQsIDAuNzY0NzI1LCAxLjA1NTY0LCAxLjMxMjUxLCAxLjY4MDQ0IiwgXAotICAgICAgICAgICIwLjA5MTE4OSwgMC4zMzMzMjQsIDAuNTgzMTM1LCAwLjc2NDY5OSwgMS4wNTU1OSwgMS4zMTI1MiwgMS42ODYxOCIsIFwKLSAgICAgICAgICAiMC4wOTA5ODgsIDAuMzMzMjM5LCAwLjU4MzEzMywgMC43NjQ1OTIsIDEuMDU1NiwgMS4zMTI0OSwgMS42ODYxNyIsIFwKLSAgICAgICAgICAiMC4wOTEyODMsIDAuMzMzMzQsIDAuNTgzMTY3LCAwLjc2MzQxMywgMS4wNTcyMiwgMS4zMTIzNSwgMS42Nzg5NyIsIFwKLSAgICAgICAgICAiMC4wOTA5OCwgMC4zMzMyNDgsIDAuNTgzMTU4LCAwLjc2NDY5OSwgMS4wNTU2MSwgMS4zMTI0NCwgMS42ODYxOCIsIFwKLSAgICAgICAgICAiMC4wOTEyOTcsIDAuMzMzMzU5LCAwLjU4MzE0MSwgMC43NjMyNjcsIDEuMDU2ODIsIDEuMzEyNDIsIDEuNjg2NTgiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMDk3MzEsIDAuMzc1ODM0LCAwLjUyMjU4NiwgMC42MjY3MDksIDAuNzkzMTg1LCAwLjkzODc2MSwgMS4xNDY4MyIsIFwKLSAgICAgICAgICAiMC4yMjA5NTgsIDAuMzg3MjQ0LCAwLjUzMzk4MywgMC42MzgxMTIsIDAuODA0NTg4LCAwLjk1MDA3OSwgMS4xNTgxIiwgXAotICAgICAgICAgICIwLjIzNTgzOSwgMC40MDE5MzQsIDAuNTQ4NjkxLCAwLjY1MjgxMywgMC44MTkyOTIsIDAuOTY0ODY5LCAxLjE3MjkiLCBcCi0gICAgICAgICAgIjAuMjQ5Njg4LCAwLjQxNTk1OCwgMC41NjI2ODQsIDAuNjY2ODQsIDAuODMzMjc1LCAwLjk3ODg5OSwgMS4xODY3OSIsIFwKLSAgICAgICAgICAiMC4yNjQ4MDMsIDAuNDMwODksIDAuNTc3NjM2LCAwLjY4MTc3MiwgMC44NDgyNTIsIDAuOTkzODE3LCAxLjIwMTc3IiwgXAotICAgICAgICAgICIwLjI4ODA4NywgMC40NTQxNTUsIDAuNjAwOTI4LCAwLjcwNTA0MSwgMC44NzE1MjgsIDEuMDE3MTcsIDEuMjI1MDYiLCBcCi0gICAgICAgICAgIjAuMzA4NSwgMC40NzQ1NzksIDAuNjIxMzUzLCAwLjcyNTQ5LCAwLjg5MTk3NywgMS4wMzc1MSwgMS4yNDU1MyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5MzgsIDAuMzY3NjQ0LCAwLjY1MDM4MywgMC44NTU3MjgsIDEuMTgwNzksIDEuNDc0NzMsIDEuODgxOTUiLCBcCi0gICAgICAgICAgIjAuMDkzNjE1LCAwLjM2NzYzNCwgMC42NTA0MzUsIDAuODU1NzQzLCAxLjE4NTM2LCAxLjQ3NDg4LCAxLjg4ODkzIiwgXAotICAgICAgICAgICIwLjA5MzgsIDAuMzY3NjQ2LCAwLjY1MDM4MiwgMC44NTU3MzMsIDEuMTgwNzQsIDEuNDc0NzMsIDEuODgyMzEiLCBcCi0gICAgICAgICAgIjAuMDkzNjIzLCAwLjM2NzY0MiwgMC42NDk5NjQsIDAuODU1NzM1LCAxLjE4MjM3LCAxLjQ3NDczLCAxLjg4ODkyIiwgXAotICAgICAgICAgICIwLjA5MzY3OSwgMC4zNjc2MzYsIDAuNjUwNDMsIDAuODU1NzMzLCAxLjE4NTM1LCAxLjQ3MTIyLCAxLjg4ODkzIiwgXAotICAgICAgICAgICIwLjA5Mzc2NSwgMC4zNjc2OTksIDAuNjUwMjQ3LCAwLjg1NTQwNSwgMS4xODM1NiwgMS40NzQ3NCwgMS44ODg5MiIsIFwKLSAgICAgICAgICAiMC4wOTM4MzYsIDAuMzY3NjY5LCAwLjY1MDM5NCwgMC44NTU3MjgsIDEuMTgwOSwgMS40NzMzNiwgMS44ODM4NiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIwNzE4NSwgMC4zNDUxOTYsIDAuNDcyNDk5LCAwLjU2MzE2NSwgMC43MDgyMzksIDAuODM1MDU1LCAxLjAxNjA5IiwgXAotICAgICAgICAgICIwLjIxODg3OCwgMC4zNTY3NiwgMC40ODQwNTMsIDAuNTc0NzgsIDAuNzE5NzUyLCAwLjg0NjU0OSwgMS4wMjc3OSIsIFwKLSAgICAgICAgICAiMC4yMzMzMTcsIDAuMzcxMzU4LCAwLjQ5ODY0OCwgMC41ODkzMTYsIDAuNzM0MzkzLCAwLjg2MTE1OSwgMS4wNDIyNSIsIFwKLSAgICAgICAgICAiMC4yNDgwODksIDAuMzg2MTIxLCAwLjUxMzQxMywgMC42MDQwODEsIDAuNzQ5MTU4LCAwLjg3NTkyNCwgMS4wNTcwMSIsIFwKLSAgICAgICAgICAiMC4yNjI2NDksIDAuNDAwNzU1LCAwLjUyODAyMywgMC42MTg2OTksIDAuNzYzNzk1LCAwLjg5MDU1MiwgMS4wNzE2MiIsIFwKLSAgICAgICAgICAiMC4yODQ2NDgsIDAuNDIyODAzLCAwLjU1MDA0NywgMC42NDA3MjIsIDAuNzg1ODI1LCAwLjkxMjU3OCwgMS4wOTM2NSIsIFwKLSAgICAgICAgICAiMC4zMDI1MjIsIDAuNDQwNDQxLCAwLjU2NzcyNiwgMC42NTg0MTYsIDAuODAzNDM5LCAwLjkzMDI0MSwgMS4xMTE0Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc1NjA2LCAwLjMxOTY4MywgMC41NzMzMSwgMC43NTY1NDUsIDEuMDUyNzcsIDEuMzExMTIsIDEuNjc5ODkiLCBcCi0gICAgICAgICAgIjAuMDc1ODgxLCAwLjMxOTYwOCwgMC41NzMyMjksIDAuNzU3OTE4LCAxLjA1MDc0LCAxLjMxMDU5LCAxLjY4MDQ4IiwgXAotICAgICAgICAgICIwLjA3NTY1MSwgMC4zMTk1ODQsIDAuNTczMjQ2LCAwLjc1NjUzMywgMS4wNTI3OSwgMS4zMTA4OCwgMS42Nzk4NCIsIFwKLSAgICAgICAgICAiMC4wNzU2NDMsIDAuMzE5NTg4LCAwLjU3MzI1LCAwLjc1NjUzMywgMS4wNTI3OCwgMS4zMTA4NywgMS42Nzk4NCIsIFwKLSAgICAgICAgICAiMC4wNzU3NiwgMC4zMTk0MiwgMC41NzQyNjQsIDAuNzU2NTQ4LCAxLjA0OTk0LCAxLjMxMDkzLCAxLjY3OTk4IiwgXAotICAgICAgICAgICIwLjA3NTcxNSwgMC4zMTk2MDEsIDAuNTc0Mjg2LCAwLjc1NjU0NiwgMS4wNDk5NCwgMS4zMTA5MiwgMS42Nzk5NyIsIFwKLSAgICAgICAgICAiMC4wNzU4NCwgMC4zMTk2MDMsIDAuNTczMjA4LCAwLjc1Nzc1MywgMS4wNTA4OSwgMS4zMDg2MiwgMS42ODAzNSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIwODg2LCAwLjM2NDUzMiwgMC41MTA1NDIsIDAuNjE0NjM1LCAwLjc4MTExNCwgMC45MjY3ODEsIDEuMTM0NzQiLCBcCi0gICAgICAgICAgIjAuMjIwNTEzLCAwLjM3NjE4NSwgMC41MjIxOTQsIDAuNjI2Mjg5LCAwLjc5Mjc2OSwgMC45Mzg0MjEsIDEuMTQ2MzQiLCBcCi0gICAgICAgICAgIjAuMjM1OTMsIDAuMzkxNjA5LCAwLjUzNzYyLCAwLjY0MTcyMywgMC44MDgyODgsIDAuOTUzNzk1LCAxLjE2MTc4IiwgXAotICAgICAgICAgICIwLjI1MTI2MywgMC40MDY5MzcsIDAuNTUyOTQ0LCAwLjY1NzAyNCwgMC44MjM1MTksIDAuOTY5MDg2LCAxLjE3NzA0IiwgXAotICAgICAgICAgICIwLjI2NjQ1LCAwLjQyMjEyMiwgMC41NjgxMzUsIDAuNjcyMjMzLCAwLjgzODcwOSwgMC45ODQzNzIsIDEuMTkyMjkiLCBcCi0gICAgICAgICAgIjAuMjkwNjI3LCAwLjQ0NjI4NiwgMC41OTIzMzQsIDAuNjk2NDUyLCAwLjg2MjkyNSwgMS4wMDg0OSwgMS4yMTY0MyIsIFwKLSAgICAgICAgICAiMC4zMTA2OTcsIDAuNDY2NDM1LCAwLjYxMjQ3NCwgMC43MTY1OTMsIDAuODgzMDY4LCAxLjAyODYzLCAxLjIzNjU3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc4ODk1LCAwLjM1NTc2NCwgMC42NDA2NTUsIDAuODQ5NTY1LCAxLjE4MDQxLCAxLjQ2OTc2LCAxLjg4NDM4IiwgXAotICAgICAgICAgICIwLjA3ODg2NywgMC4zNTU3NDgsIDAuNjQyMDg0LCAwLjg0OTUyMywgMS4xODAzMywgMS40Njk3OCwgMS44ODQ3MSIsIFwKLSAgICAgICAgICAiMC4wNzg4NCwgMC4zNTU3MjgsIDAuNjQyODYzLCAwLjg0OTU1MywgMS4xNzgxNiwgMS40Njk1NCwgMS44ODAzMSIsIFwKLSAgICAgICAgICAiMC4wNzg4OTEsIDAuMzU1NzE2LCAwLjY0MTcxNCwgMC44NDgxMjksIDEuMTgwMjUsIDEuNDcwNjIsIDEuODgxNDIiLCBcCi0gICAgICAgICAgIjAuMDc4ODYyLCAwLjM1NTczMiwgMC42NDE5OTUsIDAuODQ5NTcsIDEuMTgwMjcsIDEuNDY5NjQsIDEuODg0NDkiLCBcCi0gICAgICAgICAgIjAuMDc4OTI5LCAwLjM1NTU5MywgMC42NDEwOTcsIDAuODQ4MjA1LCAxLjE4MDE2LCAxLjQ3MDQ5LCAxLjg4MjA1IiwgXAotICAgICAgICAgICIwLjA3ODc5NCwgMC4zNTU1NywgMC42NDA5MjEsIDAuODQ3ODQ4LCAxLjE4MDEsIDEuNDcwNDksIDEuODgyNTgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNzA3MjQsIDAuMzIwNDMxLCAwLjQ0ODY0NiwgMC41MzkzNSwgMC42ODQyNTUsIDAuODExMDA2LCAwLjk5MjE5IiwgXAotICAgICAgICAgICIwLjE4MDgzNSwgMC4zMzA1NjgsIDAuNDU4NzY0LCAwLjU0OTQ3OCwgMC42OTQzNzQsIDAuODIxMTI4LCAxLjAwMjIzIiwgXAotICAgICAgICAgICIwLjE5MzY3MSwgMC4zNDM0NzcsIDAuNDcxNzEsIDAuNTYyNDI1LCAwLjcwNzMxOSwgMC44MzQwNzYsIDEuMDE1MTciLCBcCi0gICAgICAgICAgIjAuMjA2MTk1LCAwLjM1NjEyNSwgMC40ODQyMzksIDAuNTc0OTU4LCAwLjcxOTg1OCwgMC44NDY2MjEsIDEuMDI3OCIsIFwKLSAgICAgICAgICAiMC4yMTg3NTcsIDAuMzY4NTk3LCAwLjQ5Njc4MSwgMC41ODc0OTcsIDAuNzMyMzkxLCAwLjg1OTE2NiwgMS4wNDAzOSIsIFwKLSAgICAgICAgICAiMC4yMzg4NjUsIDAuMzg4NTY3LCAwLjUxNjgwOCwgMC42MDc1NzgsIDAuNzUyNDY5LCAwLjg3OTI0NSwgMS4wNjA0MyIsIFwKLSAgICAgICAgICAiMC4yNTY1ODIsIDAuNDA2MjQ1LCAwLjUzNDUwOSwgMC42MjUyNTYsIDAuNzcwMTU4LCAwLjg5NjkzNCwgMS4wNzgwMiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5MDc0LCAwLjMzMzE4LCAwLjU4MjQyNSwgMC43NjQ3MDQsIDEuMDU0OTIsIDEuMzE0MzgsIDEuNjgzNTgiLCBcCi0gICAgICAgICAgIjAuMDkwNzAyLCAwLjMzMzE3NCwgMC41ODI2MDksIDAuNzY0Njg3LCAxLjA1NTc1LCAxLjMxNDMsIDEuNjgzMTQiLCBcCi0gICAgICAgICAgIjAuMDkwMzcyLCAwLjMzMzEyNywgMC41ODI1MywgMC43NjQ2NiwgMS4wNTU2OCwgMS4zMTQzLCAxLjY4MzEiLCBcCi0gICAgICAgICAgIjAuMDkwNDkxLCAwLjMzMjk5OCwgMC41ODI1MDUsIDAuNzY0Njg2LCAxLjA1NTc1LCAxLjMxNDM2LCAxLjY4MzQ5IiwgXAotICAgICAgICAgICIwLjA5MDQ5MiwgMC4zMzMxNDEsIDAuNTgzMDU4LCAwLjc2NDY5MiwgMS4wNTU3NywgMS4zMTIzMiwgMS42Nzg5NiIsIFwKLSAgICAgICAgICAiMC4wOTA2LCAwLjMzMzA3NywgMC41ODMwNDksIDAuNzY0NjU5LCAxLjA1NTU4LCAxLjMxMjUxLCAxLjY4NjA2IiwgXAotICAgICAgICAgICIwLjA5MDM2OSwgMC4zMzMwNDgsIDAuNTgyOTY5LCAwLjc2NDU3LCAxLjA1NTY0LCAxLjMxMjQ3LCAxLjY4MDM4Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTQwOTg5LCAwLjI5NjY2NiwgMC40NDI2NjcsIDAuNTQ2NzgsIDAuNzEzMzIxLCAwLjg1ODgzOCwgMS4wNjY4MiIsIFwKLSAgICAgICAgICAiMC4xNTE2OTQsIDAuMzA3MzQ1LCAwLjQ1MzM3MSwgMC41NTc1MTgsIDAuNzIzOTQyLCAwLjg2OTUwNSwgMS4wNzc0NiIsIFwKLSAgICAgICAgICAiMC4xNjQ4NDIsIDAuMzIwNTI1LCAwLjQ2NjUzNywgMC41NzA2MTEsIDAuNzM3MTA2LCAwLjg4MjcyLCAxLjA5MDY0IiwgXAotICAgICAgICAgICIwLjE3NzkxOSwgMC4zMzM2MzQsIDAuNDc5Njg3LCAwLjU4MzgwNiwgMC43NTAyNzQsIDAuODk1ODM4LCAxLjEwMzc4IiwgXAotICAgICAgICAgICIwLjE5MTA4NywgMC4zNDY4NDIsIDAuNDkyODg0LCAwLjU5NzAwMSwgMC43NjM0NDIsIDAuOTA5MDU5LCAxLjExNjk4IiwgXAotICAgICAgICAgICIwLjIxMjM5OSwgMC4zNjgwODksIDAuNTE0MTE5LCAwLjYxODI4NCwgMC43ODQ3MjMsIDAuOTMwMjk0LCAxLjEzODI2IiwgXAotICAgICAgICAgICIwLjIzMDg0OSwgMC4zODY1MzQsIDAuNTMyNjA2LCAwLjYzNjczMywgMC44MDMyMzIsIDAuOTQ4ODA3LCAxLjE1NjczIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc4NjM3LCAwLjM1NTcwMiwgMC42NDI4NDYsIDAuODQ3MzQ1LCAxLjE3NzY5LCAxLjQ2OTU3LCAxLjg4MDEzIiwgXAotICAgICAgICAgICIwLjA3ODYwOCwgMC4zNTU2MDEsIDAuNjQyMDE4LCAwLjg0NjE0OSwgMS4xODAxNCwgMS40NzA1NCwgMS44ODE2NiIsIFwKLSAgICAgICAgICAiMC4wNzg2MjQsIDAuMzU1Njg0LCAwLjY0MjIwOCwgMC44NDkyOTIsIDEuMTgwMTksIDEuNDY5OSwgMS44ODUxMSIsIFwKLSAgICAgICAgICAiMC4wNzg2MjgsIDAuMzU1NTc1LCAwLjY0MTI5NSwgMC44NDc0NzIsIDEuMTgwMDcsIDEuNDcwNCwgMS44ODE4NyIsIFwKLSAgICAgICAgICAiMC4wNzg2NjEsIDAuMzU1NzMzLCAwLjY0MTg4OSwgMC44NDcwMiwgMS4xODA0NiwgMS40NzAxOCwgMS44ODU1OCIsIFwKLSAgICAgICAgICAiMC4wNzg3OCwgMC4zNTU2OTQsIDAuNjQxODk1LCAwLjg0Njg5NiwgMS4xODAxMiwgMS40NzA1MywgMS44ODE1NCIsIFwKLSAgICAgICAgICAiMC4wNzkwNjQsIDAuMzU1NzY2LCAwLjY0MTM2OCwgMC44NDY5OTgsIDEuMTc4OTUsIDEuNDcwMTgsIDEuODg1NzIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNzg1NjUsIDAuMzE2NjAyLCAwLjQ0Mzg5NCwgMC41MzQ1NjUsIDAuNjc5NjUzLCAwLjgwNjQxNSwgMC45ODc0OTUiLCBcCi0gICAgICAgICAgIjAuMTkwNjksIDAuMzI4NjcxLCAwLjQ1NTk2NiwgMC41NDY2NDEsIDAuNjkxNzE3LCAwLjgxODU4MiwgMC45OTk2MDkiLCBcCi0gICAgICAgICAgIjAuMjA1NjQ5LCAwLjM0MzYzMywgMC40NzA5NDEsIDAuNTYxNjE5LCAwLjcwNjY5OCwgMC44MzM0ODUsIDEuMDE0NTkiLCBcCi0gICAgICAgICAgIjAuMjIwMDQyLCAwLjM1ODAyMiwgMC40ODUzMjIsIDAuNTc1OTg5LCAwLjcyMTA3MiwgMC44NDc4OSwgMS4wMjg5MiIsIFwKLSAgICAgICAgICAiMC4yMzM0NzIsIDAuMzcxNDUyLCAwLjQ5ODc1MywgMC41ODk0MiwgMC43MzQ0OTgsIDAuODYxMzE4LCAxLjA0MjM2IiwgXAotICAgICAgICAgICIwLjI1MjM2OSwgMC4zOTAzNTcsIDAuNTE3NjU0LCAwLjYwODMyMSwgMC43NTM0LCAwLjg4MDE2NiwgMS4wNjEyNSIsIFwKLSAgICAgICAgICAiMC4yNjczNDgsIDAuNDA1MTk0LCAwLjUzMjQ1MSwgMC42MjMxNDcsIDAuNzY4MiwgMC44OTUwMTEsIDEuMDc2MjMiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzU3NDgsIDAuMzE5NTksIDAuNTczMTg3LCAwLjc1NjUyOSwgMS4wNTI4LCAxLjMxMDg5LCAxLjY3OTc2IiwgXAotICAgICAgICAgICIwLjA3NTYwMiwgMC4zMTk3MTYsIDAuNTczMTk0LCAwLjc1NzYwNiwgMS4wNTI3NSwgMS4zMDc3NCwgMS42ODAxNCIsIFwKLSAgICAgICAgICAiMC4wNzU2MzUsIDAuMzE5NjA4LCAwLjU3MzE5OSwgMC43NTc2MjcsIDEuMDUyNzksIDEuMzA4MTIsIDEuNjgwMTkiLCBcCi0gICAgICAgICAgIjAuMDc1NTUxLCAwLjMxOTY5MSwgMC41NzMxOTcsIDAuNzU2NTMxLCAxLjA1Mjc4LCAxLjMxMTEzLCAxLjY3OTg2IiwgXAotICAgICAgICAgICIwLjA3NTU1MywgMC4zMTk2ODIsIDAuNTczMjMzLCAwLjc1NjUyNSwgMS4wNTI3NiwgMS4zMTExLCAxLjY3OTc4IiwgXAotICAgICAgICAgICIwLjA3NTU3MywgMC4zMTk2ODksIDAuNTczMTk5LCAwLjc1NjUyLCAxLjA1Mjc2LCAxLjMxMDg0LCAxLjY3OTc5IiwgXAotICAgICAgICAgICIwLjA3NTY4NCwgMC4zMTk1MDMsIDAuNTczNTUsIDAuNzU3NjE4LCAxLjA1MjYzLCAxLjMxMDkxLCAxLjY3NjI5Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTc4OTc0LCAwLjM0NTA1OCwgMC40OTE3NjgsIDAuNTk1OTIyLCAwLjc2MjMyOSwgMC45MDc5ODMsIDEuMTE1ODYiLCBcCi0gICAgICAgICAgIjAuMTkxMTUzLCAwLjM1NzI5NSwgMC41MDM5OTcsIDAuNjA4MSwgMC43NzQ1NTMsIDAuOTIwMjMzLCAxLjEyODEiLCBcCi0gICAgICAgICAgIjAuMjA3MSwgMC4zNzMxNTUsIDAuNTE5ODcsIDAuNjI0MDI4LCAwLjc5MDQzMywgMC45MzYwOTMsIDEuMTQzOTciLCBcCi0gICAgICAgICAgIjAuMjIyNDMsIDAuMzg4NjE1LCAwLjUzNTM2NywgMC42Mzk1MDcsIDAuODA1OTIzLCAwLjk1MTYxNCwgMS4xNTk0OCIsIFwKLSAgICAgICAgICAiMC4yMzc2MDksIDAuNDAzNjQyLCAwLjU1MDM5OCwgMC42NTQ1MjMsIDAuODIwOTI4LCAwLjk2NjU5NywgMS4xNzQ0NyIsIFwKLSAgICAgICAgICAiMC4yNjA2NTcsIDAuNDI2ODI1LCAwLjU3MzUyNiwgMC42Nzc2NSwgMC44NDQwNzQsIDAuOTg5Nzc5LCAxLjE5NzY1IiwgXAotICAgICAgICAgICIwLjI3OTQ5LCAwLjQ0NTUxMywgMC41OTIyNjYsIDAuNjk2NDAxLCAwLjg2MjgxLCAxLjAwODQ4LCAxLjIxNjU3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDkzNTU3LCAwLjM2NzU3MSwgMC42NDk4NzgsIDAuODU1NTkzLCAxLjE3ODI5LCAxLjQ3NDc3LCAxLjg4ODk2IiwgXAotICAgICAgICAgICIwLjA5MzU3NiwgMC4zNjc2ODQsIDAuNjQ5ODQxLCAwLjg1NTIxMywgMS4xODE3NSwgMS40NzAxOCwgMS44ODg5NSIsIFwKLSAgICAgICAgICAiMC4wOTM1NDEsIDAuMzY3NTk0LCAwLjY0OTcxNiwgMC44NTU0NDMsIDEuMTgxNDgsIDEuNDczMjksIDEuODg4OTMiLCBcCi0gICAgICAgICAgIjAuMDkzMzk4LCAwLjM2NzQ4OSwgMC42NDk4MTIsIDAuODU1MzUxLCAxLjE4MzY2LCAxLjQ2OTQ5LCAxLjg4ODk2IiwgXAotICAgICAgICAgICIwLjA5MzUwMywgMC4zNjc1OTEsIDAuNjQ5OTQ5LCAwLjg1MzYyMiwgMS4xODExMSwgMS40NzA4OSwgMS44ODg5MyIsIFwKLSAgICAgICAgICAiMC4wOTM0MjYsIDAuMzY3NTY1LCAwLjY0OTg3MSwgMC44NTUyNjMsIDEuMTgzODksIDEuNDY5NDIsIDEuODg4OTUiLCBcCi0gICAgICAgICAgIjAuMDkzNDQ1LCAwLjM2NzU5MSwgMC42NDk5NjUsIDAuODU1NDEsIDEuMTgxMiwgMS40NzMyMiwgMS44ODM3MyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0NDM4LCAwLjAwNDU1NywgMC4wMDQ1ODIsIDAuMDA0NTksIDAuMDA0NTk4LCAwLjAwNDYwMSwgMC4wMDQ2MDUiLCBcCi0gICAgICAgICAgIjAuMDA0NDMxLCAwLjAwNDU0OSwgMC4wMDQ1NzYsIDAuMDA0NTgyLCAwLjAwNDU5LCAwLjAwNDU5NCwgMC4wMDQ1OTgiLCBcCi0gICAgICAgICAgIjAuMDA0NDI2LCAwLjAwNDU0NCwgMC4wMDQ1NjksIDAuMDA0NTc4LCAwLjAwNDU4NSwgMC4wMDQ1ODksIDAuMDA0NTkzIiwgXAotICAgICAgICAgICIwLjAwNDQyMSwgMC4wMDQ1MzgsIDAuMDA0NTY0LCAwLjAwNDU3NSwgMC4wMDQ1ODEsIDAuMDA0NTg1LCAwLjAwNDU4OSIsIFwKLSAgICAgICAgICAiMC4wMDQ0MTgsIDAuMDA0NTMyLCAwLjAwNDU2MSwgMC4wMDQ1NjksIDAuMDA0NTc3LCAwLjAwNDU4MiwgMC4wMDQ1ODYiLCBcCi0gICAgICAgICAgIjAuMDA0NDEyLCAwLjAwNDUyNSwgMC4wMDQ1NTMsIDAuMDA0NTYzLCAwLjAwNDU3MiwgMC4wMDQ1NzcsIDAuMDA0NTgxIiwgXAotICAgICAgICAgICIwLjAwNDQwOCwgMC4wMDQ1MTgsIDAuMDA0NTQ4LCAwLjAwNDU1OSwgMC4wMDQ1NjgsIDAuMDA0NTc0LCAwLjAwNDU3OCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2MzUyLCAwLjAwNjUxNCwgMC4wMDY1NSwgMC4wMDY1NjIsIDAuMDA2NTczLCAwLjAwNjU3OSwgMC4wMDY1ODQiLCBcCi0gICAgICAgICAgIjAuMDA2MzQ3LCAwLjAwNjUwOSwgMC4wMDY1NDUsIDAuMDA2NTU3LCAwLjAwNjU2OCwgMC4wMDY1NzQsIDAuMDA2NTc5IiwgXAotICAgICAgICAgICIwLjAwNjM0MywgMC4wMDY1MDQsIDAuMDA2NTQxLCAwLjAwNjU1MywgMC4wMDY1NjQsIDAuMDA2NTcsIDAuMDA2NTc2IiwgXAotICAgICAgICAgICIwLjAwNjMzOSwgMC4wMDY0OTcsIDAuMDA2NTM1LCAwLjAwNjU0OCwgMC4wMDY1NiwgMC4wMDY1NjYsIDAuMDA2NTcyIiwgXAotICAgICAgICAgICIwLjAwNjMzNiwgMC4wMDY0OTIsIDAuMDA2NTMxLCAwLjAwNjU0NCwgMC4wMDY1NTcsIDAuMDA2NTYzLCAwLjAwNjU2OSIsIFwKLSAgICAgICAgICAiMC4wMDYzMzEsIDAuMDA2NDgyLCAwLjAwNjUyMywgMC4wMDY1MzgsIDAuMDA2NTUyLCAwLjAwNjU1OSwgMC4wMDY1NjYiLCBcCi0gICAgICAgICAgIjAuMDA2MzI2LCAwLjAwNjQ3NCwgMC4wMDY1MTcsIDAuMDA2NTMzLCAwLjAwNjU0NywgMC4wMDY1NTUsIDAuMDA2NTYzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDU3MTgsIDAuMDA1ODQ4LCAwLjAwNTg3MSwgMC4wMDU4NzgsIDAuMDA1ODg1LCAwLjAwNTg5LCAwLjAwNTg5MiIsIFwKLSAgICAgICAgICAiMC4wMDU3MjQsIDAuMDA1ODUzLCAwLjAwNTg3NywgMC4wMDU4ODMsIDAuMDA1ODkxLCAwLjAwNTg5NCwgMC4wMDU4OTgiLCBcCi0gICAgICAgICAgIjAuMDA1NzI5LCAwLjAwNTg1OCwgMC4wMDU4ODEsIDAuMDA1ODg5LCAwLjAwNTg5NSwgMC4wMDU5LCAwLjAwNTkwMyIsIFwKLSAgICAgICAgICAiMC4wMDU3MzEsIDAuMDA1ODYsIDAuMDA1ODgzLCAwLjAwNTg5LCAwLjAwNTg5NywgMC4wMDU5MDIsIDAuMDA1OTAzIiwgXAotICAgICAgICAgICIwLjAwNTczMiwgMC4wMDU4NjIsIDAuMDA1ODg0LCAwLjAwNTg5MiwgMC4wMDU4OTksIDAuMDA1OTAyLCAwLjAwNTkwNyIsIFwKLSAgICAgICAgICAiMC4wMDU3MzIsIDAuMDA1ODYzLCAwLjAwNTg4NiwgMC4wMDU4OTMsIDAuMDA1OSwgMC4wMDU5MDMsIDAuMDA1OTA3IiwgXAotICAgICAgICAgICIwLjAwNTczMiwgMC4wMDU4NjMsIDAuMDA1ODg1LCAwLjAwNTg5MiwgMC4wMDU5LCAwLjAwNTkwMywgMC4wMDU5MDUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDgzMiwgMC4wMDUwMTIsIDAuMDA1MDQ3LCAwLjAwNTA1OSwgMC4wMDUwNjksIDAuMDA1MDc1LCAwLjAwNTA4IiwgXAotICAgICAgICAgICIwLjAwNDg1NCwgMC4wMDUwMzEsIDAuMDA1MDY3LCAwLjAwNTA3OCwgMC4wMDUwODksIDAuMDA1MDk0LCAwLjAwNTEiLCBcCi0gICAgICAgICAgIjAuMDA0ODk2LCAwLjAwNTA2OSwgMC4wMDUxMDUsIDAuMDA1MTE3LCAwLjAwNTEyNywgMC4wMDUxMzMsIDAuMDA1MTM4IiwgXAotICAgICAgICAgICIwLjAwNDkzNSwgMC4wMDUxMDQsIDAuMDA1MTQsIDAuMDA1MTUyLCAwLjAwNTE2MywgMC4wMDUxNjksIDAuMDA1MTc1IiwgXAotICAgICAgICAgICIwLjAwNDk2NSwgMC4wMDUxMzEsIDAuMDA1MTY3LCAwLjAwNTE3OSwgMC4wMDUxOSwgMC4wMDUxOTcsIDAuMDA1MjAyIiwgXAotICAgICAgICAgICIwLjAwNTAxNiwgMC4wMDUxNzcsIDAuMDA1MjEzLCAwLjAwNTIyNiwgMC4wMDUyMzgsIDAuMDA1MjQ0LCAwLjAwNTI1IiwgXAotICAgICAgICAgICIwLjAwNTA1MSwgMC4wMDUyMDgsIDAuMDA1MjQ1LCAwLjAwNTI1OCwgMC4wMDUyNywgMC4wMDUyNzcsIDAuMDA1MjgzIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogWE5PUjJYTCAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChYTk9SMlhMKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMTExNDcyOwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA1NTAzNjU7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNTUwMDc3OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDU1MDM2NTsKLSAgfQotICBwaW4oQikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxMDg4MTk7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxMDg3NjU7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxMDg4MTk7Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4wNjgzOTU3OwotICAgIGZ1bmN0aW9uIDogIighKEFeQikpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yNTA5NjcsIDAuMjc2MjU5LCAwLjUwMzU2OSwgMC44ODIyNTcsIDEuMjYxMDcsIDIuMTQ1NCwgMi42NDk2NyIsIFwKLSAgICAgICAgICAiMC4yNjI4NzgsIDAuMjg4MTg3LCAwLjUxNTQ4OSwgMC44OTQzNzgsIDEuMjczMjgsIDIuMTU2NzgsIDIuNjYxNDkiLCBcCi0gICAgICAgICAgIjAuMjc3ODM4LCAwLjMwMzE1MSwgMC41MzA0NjcsIDAuOTA5MTkxLCAxLjI4ODI2LCAyLjE3MTc0LCAyLjY3NzIzIiwgXAotICAgICAgICAgICIwLjI5MzA0MiwgMC4zMTgzNjEsIDAuNTQ1NjE1LCAwLjkyNDQzNiwgMS4zMDM1MiwgMi4xODcxOCwgMi42OTIyNiIsIFwKLSAgICAgICAgICAiMC4zMDgxNzksIDAuMzMzNDg2LCAwLjU2MDgwMywgMC45Mzk2NjEsIDEuMzE4NTMsIDIuMjAyMTksIDIuNzA3NjIiLCBcCi0gICAgICAgICAgIjAuMzMyNDM4LCAwLjM1Nzc1MiwgMC41ODUwNzUsIDAuOTYzODUzLCAxLjM0MjgyLCAyLjIyNjQ5LCAyLjczMTgzIiwgXAotICAgICAgICAgICIwLjM1MzM2MSwgMC4zNzg2NzEsIDAuNjA2MDA3LCAwLjk4NDc0NiwgMS4zNjM3NSwgMi4yNDczOCwgMi43NTI5Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI3NzI1NSwgMC4zMjcyMjUsIDAuNzg2MjgyLCAxLjU1NTQ2LCAyLjMyMTA0LCA0LjEwOTU5LCA1LjEzMzk4IiwgXAotICAgICAgICAgICIwLjI3NzIzNCwgMC4zMjc0OTQsIDAuNzg3MTg2LCAxLjU1MTgyLCAyLjMxOTQ0LCA0LjExMDEsIDUuMTM2MiIsIFwKLSAgICAgICAgICAiMC4yNzcyMjMsIDAuMzI3NDIsIDAuNzg3MTE1LCAxLjU1NTUyLCAyLjMxOTQxLCA0LjExMDAzLCA1LjEzNjc2IiwgXAotICAgICAgICAgICIwLjI3NzIwOSwgMC4zMjc1MzQsIDAuNzg1OTUsIDEuNTUxMjEsIDIuMzE5MzYsIDQuMTExNTgsIDUuMTM3OTIiLCBcCi0gICAgICAgICAgIjAuMjc3MjAyLCAwLjMyNzUzNywgMC43ODYyNTYsIDEuNTUxNzUsIDIuMzE5NjEsIDQuMTA5NCwgNS4xMzc3OCIsIFwKLSAgICAgICAgICAiMC4yNzcyMTEsIDAuMzI3NTM2LCAwLjc4NjI0NCwgMS41NTQ5MiwgMi4zMTk1OSwgNC4xMDkyLCA1LjEzODAxIiwgXAotICAgICAgICAgICIwLjI3NzIzNCwgMC4zMjc1MDQsIDAuNzg3MTY3LCAxLjU1NTQ5LCAyLjMxOTU1LCA0LjEwOTU1LCA1LjEzNTU2Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI2NjA5NywgMC4yOTU4MzUsIDAuNTYzMTk2LCAxLjAwODgxLCAxLjQ1NDY1LCAyLjQ5NDEyLCAzLjA4ODIxIiwgXAotICAgICAgICAgICIwLjI3NzQ2MywgMC4zMDcyMDIsIDAuNTc0NTM2LCAxLjAyMDE4LCAxLjQ2NTk0LCAyLjUwNTQ3LCAzLjA5OTI5IiwgXAotICAgICAgICAgICIwLjI5MjAwNiwgMC4zMjE3NDMsIDAuNTg5MTE5LCAxLjAzNDc0LCAxLjQ4MDQ3LCAyLjUxOTk0LCAzLjExMzgiLCBcCi0gICAgICAgICAgIjAuMzA2NTM4LCAwLjMzNjI5NCwgMC42MDM2NjMsIDEuMDQ5MjgsIDEuNDk0OTUsIDIuNTM0NTEsIDMuMTI4NTkiLCBcCi0gICAgICAgICAgIjAuMzIxMDE5LCAwLjM1MDc2NiwgMC42MTgxOTgsIDEuMDYzNzEsIDEuNTA5NzUsIDIuNTQ5OTIsIDMuMTQyOTMiLCBcCi0gICAgICAgICAgIjAuMzQzNDE0LCAwLjM3MzE4LCAwLjY0MDU3OSwgMS4wODYyLCAxLjUzMTkyLCAyLjU3MTM5LCAzLjE2NTQyIiwgXAotICAgICAgICAgICIwLjM2MjEyOCwgMC4zOTE4OTIsIDAuNjU5MzA1LCAxLjEwNTM3LCAxLjU1MDY1LCAyLjU5MDQxLCAzLjE4NDE0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMxNjYwNCwgMC4zNzQ3NzQsIDAuOTAyODU3LCAxLjc4NTczLCAyLjY2Mzk5LCA0LjcyMjk1LCA1Ljg5MTAyIiwgXAotICAgICAgICAgICIwLjMxNjYwOSwgMC4zNzQ3NzUsIDAuOTAxODYzLCAxLjc4NTc2LCAyLjY2ODMzLCA0LjcyMjgxLCA1Ljg5MjMzIiwgXAotICAgICAgICAgICIwLjMxNjYxOSwgMC4zNzQyMzcsIDAuOTAyODU2LCAxLjc4NTM5LCAyLjY2NTMyLCA0LjcyNDQ2LCA1Ljg5MzYzIiwgXAotICAgICAgICAgICIwLjMxNjYyOCwgMC4zNzQ3NTEsIDAuOTAyODU1LCAxLjc4NTgxLCAyLjY2MjUsIDQuNzE4MTQsIDUuODkzNjEiLCBcCi0gICAgICAgICAgIjAuMzE2NjM3LCAwLjM3NDc3MiwgMC45MDAzLCAxLjc4NzIxLCAyLjY2MzkyLCA0LjcyNDM1LCA1Ljg5MjQ2IiwgXAotICAgICAgICAgICIwLjMxNjU4NywgMC4zNzQ2NzYsIDAuOTAyODU0LCAxLjc4NTkyLCAyLjY2MzYxLCA0LjcxODc0LCA1Ljg5MzMiLCBcCi0gICAgICAgICAgIjAuMzE2NjA5LCAwLjM3NDc3MiwgMC45MDI4NTksIDEuNzgwOTcsIDIuNjYzMjQsIDQuNzI0ODUsIDUuODkzNzYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjgwNzU1LCAwLjMwNjE2NiwgMC41MzQwMjgsIDAuOTEzMDkyLCAxLjI5MTk2LCAyLjE3NTcyLCAyLjY4MDY1IiwgXAotICAgICAgICAgICIwLjI5MjI1NCwgMC4zMTc2NjEsIDAuNTQ1NTU5LCAwLjkyNDU5NiwgMS4zMDM0NiwgMi4xODczLCAyLjY5MjE0IiwgXAotICAgICAgICAgICIwLjMwNjk1MywgMC4zMzIzNzMsIDAuNTYwMjYyLCAwLjkzOTMsIDEuMzE4MTksIDIuMjAxOTMsIDIuNzA3MDgiLCBcCi0gICAgICAgICAgIjAuMzIxNDEsIDAuMzQ2ODIsIDAuNTc0NzEzLCAwLjk1Mzc4MiwgMS4zMzI2MywgMi4yMTY0MiwgMi43MjEzIiwgXAotICAgICAgICAgICIwLjMzNDk4OSwgMC4zNjAzOTYsIDAuNTg4MjY5LCAwLjk2NzM0NywgMS4zNDYyLCAyLjIzMDA1LCAyLjczNDg5IiwgXAotICAgICAgICAgICIwLjM1NDU2NywgMC4zNzk5ODUsIDAuNjA3ODM5LCAwLjk4NjkxNCwgMS4zNjU3NywgMi4yNDk1NSwgMi43NTQ0NyIsIFwKLSAgICAgICAgICAiMC4zNzAwMTEsIDAuMzk1NDA3LCAwLjYyMzMyMSwgMS4wMDIzNiwgMS4zODEyMywgMi4yNjQ5OCwgMi43Njk5NiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yNzczNzksIDAuMzI3ODY1LCAwLjc4NjczNSwgMS41NTM4MiwgMi4zMjIzMiwgNC4xMTQ5NywgNS4xMzgxNCIsIFwKLSAgICAgICAgICAiMC4yNzczNjMsIDAuMzI3ODcsIDAuNzg1NywgMS41NTM5LCAyLjMyMjE4LCA0LjEyMTY0LCA1LjEzNzc0IiwgXAotICAgICAgICAgICIwLjI3NzM0NywgMC4zMjc4NTYsIDAuNzg3NDE0LCAxLjU1Mzk2LCAyLjMyMjYzLCA0LjExNTIsIDUuMTQwODMiLCBcCi0gICAgICAgICAgIjAuMjc3MzUsIDAuMzI3ODY5LCAwLjc4NzM3NSwgMS41NTQzMSwgMi4zMjIxOSwgNC4xMjEzOSwgNS4xMzc2MiIsIFwKLSAgICAgICAgICAiMC4yNzczMzUsIDAuMzI3ODE5LCAwLjc4NTkyNywgMS41NTM4MSwgMi4zMjIyNiwgNC4xMTI5NSwgNS4xMzc2MyIsIFwKLSAgICAgICAgICAiMC4yNzczMzgsIDAuMzI3ODM0LCAwLjc4NzE3MSwgMS41NTM3MSwgMi4zMjIyLCA0LjEyMTA0LCA1LjEzNzc4IiwgXAotICAgICAgICAgICIwLjI3NzMyNiwgMC4zMjc3NywgMC43ODc0MDMsIDEuNTUzOTMsIDIuMzIyMTgsIDQuMTE0OTYsIDUuMTQxMTQiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjk3NzE0LCAwLjMyNzUxNywgMC41OTUyMjYsIDEuMDQwOSwgMS40ODY0NSwgMi41MjU4OCwgMy4xMTk4MiIsIFwKLSAgICAgICAgICAiMC4zMDk1MzksIDAuMzM5MzUxLCAwLjYwNzA0OCwgMS4wNTI3NiwgMS40OTgyNiwgMi41Mzc3MywgMy4xMzE1OSIsIFwKLSAgICAgICAgICAiMC4zMjQ4MjQsIDAuMzU0NjQxLCAwLjYyMjMzOSwgMS4wNjgwMSwgMS41MTM1NSwgMi41NTI5OCwgMy4xNDY5IiwgXAotICAgICAgICAgICIwLjM0MDA0NywgMC4zNjk4NDksIDAuNjM3NTkzLCAxLjA4MzIxLCAxLjUyODc0LCAyLjU2ODE3LCAzLjE2MjExIiwgXAotICAgICAgICAgICIwLjM1NDk2NiwgMC4zODQ3NjgsIDAuNjUyNDg2LCAxLjA5ODE1LCAxLjU0MzgzLCAyLjU4MzExLCAzLjE3NzA1IiwgXAotICAgICAgICAgICIwLjM3NzQ3NSwgMC40MDcyODYsIDAuNjc0OTg3LCAxLjEyMDc0LCAxLjU2NjIsIDIuNjA1NjMsIDMuMTk5NTMiLCBcCi0gICAgICAgICAgIjAuMzk1NDM1LCAwLjQyNTIzMywgMC42OTI5NTIsIDEuMTM4NjEsIDEuNTg0MTUsIDIuNjIzNTgsIDMuMjE3NTEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzE2MzYyLCAwLjM3NDcwNiwgMC45MDI4MjgsIDEuNzgxMTksIDIuNjYyNTUsIDQuNzI0NDcsIDUuODk0MzUiLCBcCi0gICAgICAgICAgIjAuMzE2MzI3LCAwLjM3NDcyOCwgMC45MDI4NzEsIDEuNzg1NywgMi42NzAyMywgNC43MjM2OCwgNS44OTM4NyIsIFwKLSAgICAgICAgICAiMC4zMTYzNDMsIDAuMzc0NzAxLCAwLjkwMjcwNCwgMS43ODQzNiwgMi42NjcxNywgNC43MjQ4NCwgNS44OTQzMiIsIFwKLSAgICAgICAgICAiMC4zMTYyOCwgMC4zNzQ3MSwgMC45MDI0OCwgMS43ODM5OCwgMi42NzAzMywgNC43MjQxNiwgNS44OTM1OSIsIFwKLSAgICAgICAgICAiMC4zMTYzMTQsIDAuMzc0MjM1LCAwLjkwMjYyLCAxLjc4NjIzLCAyLjY2ODMsIDQuNzI0NjksIDUuODkzNTUiLCBcCi0gICAgICAgICAgIjAuMzE2MjY0LCAwLjM3NDYyNCwgMC45MDI3OTgsIDEuNzg0OTksIDIuNjY5NSwgNC43MjM1MSwgNS44OTM3IiwgXAotICAgICAgICAgICIwLjMxNjI1MiwgMC4zNzQ2NDUsIDAuOTAyNjk3LCAxLjc4NjMyLCAyLjY2NjY5LCA0LjcyNDUzLCA1Ljg5MzMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjE2MDEyLCAwLjI0MTMwMywgMC40Njg2MDcsIDAuODQ3MzM1LCAxLjIyNjI1LCAyLjExMDEyLCAyLjYxNDUyIiwgXAotICAgICAgICAgICIwLjIyNjkxNywgMC4yNTIyMDMsIDAuNDc5NDU4LCAwLjg1ODI0OSwgMS4yMzcxMSwgMi4xMjA3LCAyLjYyNTcyIiwgXAotICAgICAgICAgICIwLjI0MDYyOSwgMC4yNjU5MTIsIDAuNDkzMjQsIDAuODcxOTU3LCAxLjI1MDkzLCAyLjEzNTI5LCAyLjYzOTQ3IiwgXAotICAgICAgICAgICIwLjI1NDM0NCwgMC4yNzk2NDQsIDAuNTA2OSwgMC44ODU3MjEsIDEuMjY0ODMsIDIuMTQ4OTUsIDIuNjUzNDQiLCBcCi0gICAgICAgICAgIjAuMjY4MjE2LCAwLjI5MzUwNSwgMC41MjA4MTgsIDAuODk5NTgyLCAxLjI3ODU0LCAyLjE2MzU5LCAyLjY2NzA2IiwgXAotICAgICAgICAgICIwLjI5MDMyNSwgMC4zMTU2MzcsIDAuNTQyOTc0LCAwLjkyMTcwMSwgMS4zMDA1NSwgMi4xODQ0NSwgMi42ODk3IiwgXAotICAgICAgICAgICIwLjMwOTI4NywgMC4zMzQ1ODcsIDAuNTYxODcsIDAuOTQwNywgMS4zMTk4MiwgMi4yMDM4MiwgMi43MDg0NSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yNzY5MzQsIDAuMzI2OTQxLCAwLjc4NjI4MywgMS41NTU2MywgMi4zMTk1MywgNC4xMTE4MSwgNS4xNDA4MyIsIFwKLSAgICAgICAgICAiMC4yNzcwMTIsIDAuMzI3NDYyLCAwLjc4NjAwMiwgMS41NTU2MiwgMi4zMTk1NCwgNC4xMjAzNiwgNS4xMzM5MiIsIFwKLSAgICAgICAgICAiMC4yNzcwODksIDAuMzI3NDUzLCAwLjc4NzQzNSwgMS41NTU1NSwgMi4zMjEzMSwgNC4xMTYwMiwgNS4xMzM3MyIsIFwKLSAgICAgICAgICAiMC4yNzY4NjMsIDAuMzI3Mzk5LCAwLjc4NTg5NCwgMS41NTEyMiwgMi4zMTkzNywgNC4xMTEwOCwgNS4xMzcwNiIsIFwKLSAgICAgICAgICAiMC4yNzcwNSwgMC4zMjczODUsIDAuNzg2MTUsIDEuNTU1NTYsIDIuMzE5NjYsIDQuMTEyOTksIDUuMTMzOTEiLCBcCi0gICAgICAgICAgIjAuMjc3MDg2LCAwLjMyNjgxNSwgMC43ODcyNDcsIDEuNTU1NSwgMi4zMjEwMSwgNC4xMjAzMywgNS4xMzc0NyIsIFwKLSAgICAgICAgICAiMC4yNzcxNjIsIDAuMzI3NTI2LCAwLjc4NTk3NiwgMS41NTEyMSwgMi4zMTkzNSwgNC4xMTEwNCwgNS4xMzY4Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI0MjMxMywgMC4yNzIxMjcsIDAuNTM5ODE3LCAwLjk4NTU0LCAxLjQzMSwgMi40NzA0MiwgMy4wNjQzNSIsIFwKLSAgICAgICAgICAiMC4yNTI2NzQsIDAuMjgyNDg4LCAwLjU1MDE4LCAwLjk5NTgxMywgMS40NDEzNiwgMi40ODA3OSwgMy4wNzQ5NyIsIFwKLSAgICAgICAgICAiMC4yNjU4MzksIDAuMjk1NjM2LCAwLjU2MzM3NCwgMS4wMDg5OCwgMS40NTQ1MSwgMi40OTM5NiwgMy4wODc4NiIsIFwKLSAgICAgICAgICAiMC4yNzg4NjMsIDAuMzA4Njg3LCAwLjU3NjQxMiwgMS4wMjIwNSwgMS40Njc2LCAyLjUwNzAzLCAzLjEwMTE2IiwgXAotICAgICAgICAgICIwLjI5MjAxMywgMC4zMjE4MjgsIDAuNTg5NTUyLCAxLjAzNTIzLCAxLjQ4MDgzLCAyLjUyMDIsIDMuMTE0MTQiLCBcCi0gICAgICAgICAgIjAuMzEyNzIxLCAwLjM0MjU1MywgMC42MTAzMTcsIDEuMDU1OTksIDEuNTAxNTIsIDIuNTQxLCAzLjEzNTI5IiwgXAotICAgICAgICAgICIwLjMyOTkzMSwgMC4zNTk3NTUsIDAuNjI3NTc0LCAxLjA3MzIxLCAxLjUxODc0LCAyLjU1ODQ5LCAzLjE1MjA2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMxNjQxNCwgMC4zNzQ3NzksIDAuOTAyNDE4LCAxLjc4NTAyLCAyLjY2NjYxLCA0LjcyNDUxLCA1Ljg5Mzk0IiwgXAotICAgICAgICAgICIwLjMxNjQzMywgMC4zNzQ3ODUsIDAuOTAyMzY3LCAxLjc4MzYsIDIuNjY3MDksIDQuNzI0NTUsIDUuODk0NTYiLCBcCi0gICAgICAgICAgIjAuMzE2MzQzLCAwLjM3NDgxNSwgMC45MDIxNDgsIDEuNzgzNjksIDIuNjY1NjMsIDQuNzI0NDIsIDUuODkzOTYiLCBcCi0gICAgICAgICAgIjAuMzE2NDc2LCAwLjM3NDgxNSwgMC45MDIyODYsIDEuNzgzMDgsIDIuNjY2NywgNC43MjQ0OCwgNS44OTQxMiIsIFwKLSAgICAgICAgICAiMC4zMTY1MDQsIDAuMzc0ODMxLCAwLjkwMjY3NSwgMS43ODM3NCwgMi42Njg5MywgNC43MjMwNCwgNS44OTM1IiwgXAotICAgICAgICAgICIwLjMxNjU1MSwgMC4zNzQ4MjEsIDAuOTAyMTg1LCAxLjc4MzgxLCAyLjY2NTU1LCA0LjcyMzQyLCA1Ljg5MjcxIiwgXAotICAgICAgICAgICIwLjMxNjY4MywgMC4zNzQ5NTcsIDAuOTAwMzg4LCAxLjc4MzgxLCAyLjY2NTY5LCA0LjcxOTg1LCA1Ljg5Mzg0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI2NTUyMiwgMC4yOTA5MzMsIDAuNTE4ODEzLCAwLjg5NzkyNiwgMS4yNzY3NCwgMi4xNjA3NCwgMi42NjU0MiIsIFwKLSAgICAgICAgICAiMC4yNzc2NDksIDAuMzAzMDU1LCAwLjUzMDk0OCwgMC45MTAwMDQsIDEuMjg4ODYsIDIuMTcyNzQsIDIuNjc3NTEiLCBcCi0gICAgICAgICAgIjAuMjkyNTQyLCAwLjMxNzkzMiwgMC41NDU4NTksIDAuOTI0ODcyLCAxLjMwMzc5LCAyLjE4NzQ4LCAyLjY5MjQzIiwgXAotICAgICAgICAgICIwLjMwNjkwNywgMC4zMzIzMTEsIDAuNTYwMjA2LCAwLjkzOTI0NSwgMS4zMTgxMSwgMi4yMDE5NiwgMi43MDY3NyIsIFwKLSAgICAgICAgICAiMC4zMjAwMTgsIDAuMzQ1NDIsIDAuNTczMzMyLCAwLjk1MjM2NiwgMS4zMzEyMywgMi4yMTQ5OCwgMi43MTk5MSIsIFwKLSAgICAgICAgICAiMC4zMzg5MjYsIDAuMzY0MzM0LCAwLjU5MjIyOSwgMC45NzEyOTcsIDEuMzUwMTQsIDIuMjMzOTMsIDIuNzM4NzkiLCBcCi0gICAgICAgICAgIjAuMzUzNjYxLCAwLjM3OTA2OCwgMC42MDY5NjgsIDAuOTg2MDMyLCAxLjM2NDg3LCAyLjI0ODY2LCAyLjc1MzU0Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI3NzM1NSwgMC4zMjc4NTIsIDAuNzg1OTU5LCAxLjU1MzI0LCAyLjMyMjMyLCA0LjEyMTEyLCA1LjEzNzc0IiwgXAotICAgICAgICAgICIwLjI3NzM1MiwgMC4zMjc4NTQsIDAuNzg1NDgsIDEuNTU2MjgsIDIuMzIyMjQsIDQuMTIxNDUsIDUuMTQwOTkiLCBcCi0gICAgICAgICAgIjAuMjc3MzI4LCAwLjMyNzE5OCwgMC43ODczNTEsIDEuNTUzOTgsIDIuMzI1ODQsIDQuMTIwMDEsIDUuMTM4MzUiLCBcCi0gICAgICAgICAgIjAuMjc3MzQzLCAwLjMyNzg1MiwgMC43ODU2MzYsIDEuNTU1ODIsIDIuMzIyMjEsIDQuMTIxNDUsIDUuMTQxMDUiLCBcCi0gICAgICAgICAgIjAuMjc3MzMzLCAwLjMyNzgwOCwgMC43ODczNjQsIDEuNTUzOTIsIDIuMzIyMTMsIDQuMTE0NzIsIDUuMTM4NjEiLCBcCi0gICAgICAgICAgIjAuMjc3MzA0LCAwLjMyNzg0NiwgMC43ODczNiwgMS41NTQyNCwgMi4zMjIxNSwgNC4xMjExMiwgNS4xNDA4NiIsIFwKLSAgICAgICAgICAiMC4yNzczMjksIDAuMzI3ODQzLCAwLjc4NzM2OCwgMS41NTQxOSwgMi4zMjIyMSwgNC4xMjEwNiwgNS4xNDEyMiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yNTcwNTQsIDAuMjg2ODExLCAwLjU1NDIwMiwgMC45OTk3NzYsIDEuNDQ1NjMsIDIuNDg1NSwgMy4wNzg4MyIsIFwKLSAgICAgICAgICAiMC4yNjkyNTUsIDAuMjk5MDEsIDAuNTY2NDEzLCAxLjAxMjAyLCAxLjQ1Nzg1LCAyLjQ5NzIsIDMuMDkxMTIiLCBcCi0gICAgICAgICAgIjAuMjg0OTYsIDAuMzE0NzA4LCAwLjU4MjEyNCwgMS4wMjc3MiwgMS40NzMyNywgMi41MTMyOSwgMy4xMDY4MyIsIFwKLSAgICAgICAgICAiMC4zMDA3OTksIDAuMzMwNTUxLCAwLjU5Nzk2NCwgMS4wNDM1NywgMS40ODkwMywgMi41Mjg4NywgMy4xMjI5NiIsIFwKLSAgICAgICAgICAiMC4zMTYyNDksIDAuMzQ2LCAwLjYxMzQyMSwgMS4wNTkwMiwgMS41MDQ1MiwgMi41NDQ2NSwgMy4xMzgxMiIsIFwKLSAgICAgICAgICAiMC4zMzk1NzYsIDAuMzY5MzM0LCAwLjYzNjczOCwgMS4wODIzMywgMS41MjgwNiwgMi41Njc2MSwgMy4xNjE3MyIsIFwKLSAgICAgICAgICAiMC4zNTc4NzQsIDAuMzg3NjIzLCAwLjY1NTAyMSwgMS4xMDA2MSwgMS41NDYyMywgMi41ODY3OSwgMy4xNzk4NyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMTY0NzIsIDAuMzc0Njg2LCAwLjkwMjg1MiwgMS43ODMxMiwgMi42NjYwNywgNC43MjI4MywgNS44OTE3OSIsIFwKLSAgICAgICAgICAiMC4zMTY1LCAwLjM3NDQzNCwgMC45MDI4NiwgMS43ODU5LCAyLjY2ODE1LCA0LjcxODkxLCA1Ljg5MjIxIiwgXAotICAgICAgICAgICIwLjMxNjQ5MSwgMC4zNzQzMTcsIDAuOTAyODY3LCAxLjc4NTkyLCAyLjY2MjQ5LCA0LjcyMzg0LCA1Ljg5NDI3IiwgXAotICAgICAgICAgICIwLjMxNjQ4OCwgMC4zNzQ2NDQsIDAuOTAyODY3LCAxLjc4NTc3LCAyLjY2NDc5LCA0LjcyMzM3LCA1Ljg5Mjk1IiwgXAotICAgICAgICAgICIwLjMxNjQ1MywgMC4zNzQ1NjgsIDAuOTAyODY1LCAxLjc4NTkxLCAyLjY2Mzc3LCA0LjcyMzY2LCA1Ljg5Mzg5IiwgXAotICAgICAgICAgICIwLjMxNjQ0NywgMC4zNzQ1NTMsIDAuOTAyODU2LCAxLjc4NjI2LCAyLjY2Mjc5LCA0LjcxODIxLCA1Ljg5MzU4IiwgXAotICAgICAgICAgICIwLjMxNjQ1LCAwLjM3NDU5NSwgMC45MDA3OTQsIDEuNzg3MiwgMi42NjIzNywgNC43MjE5OSwgNS44OTIzOSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjcxLCAwLjAwMjcxMSwgMC4wMDI3MTQsIDAuMDAyNzE1LCAwLjAwMjcxNSwgMC4wMDI3MTYsIDAuMDAyNzE2IiwgXAotICAgICAgICAgICIwLjAwMjY5OCwgMC4wMDI2OTksIDAuMDAyNzAyLCAwLjAwMjcwMywgMC4wMDI3MDMsIDAuMDAyNzAzLCAwLjAwMjcwNCIsIFwKLSAgICAgICAgICAiMC4wMDI2ODgsIDAuMDAyNjg5LCAwLjAwMjY5MiwgMC4wMDI2OTMsIDAuMDAyNjk0LCAwLjAwMjY5NCwgMC4wMDI2OTUiLCBcCi0gICAgICAgICAgIjAuMDAyNjgzLCAwLjAwMjY4NCwgMC4wMDI2ODcsIDAuMDAyNjg4LCAwLjAwMjY4OSwgMC4wMDI2ODgsIDAuMDAyNjg5IiwgXAotICAgICAgICAgICIwLjAwMjY3OCwgMC4wMDI2NzksIDAuMDAyNjgyLCAwLjAwMjY4MywgMC4wMDI2ODQsIDAuMDAyNjg0LCAwLjAwMjY4NCIsIFwKLSAgICAgICAgICAiMC4wMDI2NzUsIDAuMDAyNjc2LCAwLjAwMjY3OSwgMC4wMDI2OCwgMC4wMDI2OCwgMC4wMDI2ODEsIDAuMDAyNjgxIiwgXAotICAgICAgICAgICIwLjAwMjY3MywgMC4wMDI2NzQsIDAuMDAyNjc3LCAwLjAwMjY3OCwgMC4wMDI2NzksIDAuMDAyNjc5LCAwLjAwMjY3OSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjMzNSwgMC4wMDIzMzYsIDAuMDAyMzM5LCAwLjAwMjM0MSwgMC4wMDIzNDEsIDAuMDAyMzQyLCAwLjAwMjM0MiIsIFwKLSAgICAgICAgICAiMC4wMDIzMTgsIDAuMDAyMzE5LCAwLjAwMjMyMywgMC4wMDIzMjQsIDAuMDAyMzI1LCAwLjAwMjMyNSwgMC4wMDIzMjUiLCBcCi0gICAgICAgICAgIjAuMDAyMzA3LCAwLjAwMjMwOCwgMC4wMDIzMTIsIDAuMDAyMzEzLCAwLjAwMjMxNCwgMC4wMDIzMTQsIDAuMDAyMzE0IiwgXAotICAgICAgICAgICIwLjAwMjMsIDAuMDAyMzAyLCAwLjAwMjMwNSwgMC4wMDIzMDcsIDAuMDAyMzA3LCAwLjAwMjMwOCwgMC4wMDIzMDgiLCBcCi0gICAgICAgICAgIjAuMDAyMjk3LCAwLjAwMjI5OCwgMC4wMDIzMDIsIDAuMDAyMzAzLCAwLjAwMjMwNCwgMC4wMDIzMDUsIDAuMDAyMzA1IiwgXAotICAgICAgICAgICIwLjAwMjI5NSwgMC4wMDIyOTcsIDAuMDAyMywgMC4wMDIzMDIsIDAuMDAyMzAyLCAwLjAwMjMwMywgMC4wMDIzMDMiLCBcCi0gICAgICAgICAgIjAuMDAyMjk1LCAwLjAwMjI5NiwgMC4wMDIzLCAwLjAwMjMwMSwgMC4wMDIzMDIsIDAuMDAyMzAyLCAwLjAwMjMwMiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjgxMiwgMC4wMDI4MTMsIDAuMDAyODE3LCAwLjAwMjgxOCwgMC4wMDI4MTksIDAuMDAyODE5LCAwLjAwMjgxOSIsIFwKLSAgICAgICAgICAiMC4wMDI4MTEsIDAuMDAyODExLCAwLjAwMjgxNSwgMC4wMDI4MTUsIDAuMDAyODE2LCAwLjAwMjgxNiwgMC4wMDI4MTciLCBcCi0gICAgICAgICAgIjAuMDAyODA3LCAwLjAwMjgwOCwgMC4wMDI4MTEsIDAuMDAyODEyLCAwLjAwMjgxMywgMC4wMDI4MTMsIDAuMDAyODEzIiwgXAotICAgICAgICAgICIwLjAwMjgwNCwgMC4wMDI4MDQsIDAuMDAyODA4LCAwLjAwMjgwOSwgMC4wMDI4MDksIDAuMDAyODEsIDAuMDAyODEiLCBcCi0gICAgICAgICAgIjAuMDAyODAxLCAwLjAwMjgwMSwgMC4wMDI4MDUsIDAuMDAyODA2LCAwLjAwMjgwNiwgMC4wMDI4MDcsIDAuMDAyODA3IiwgXAotICAgICAgICAgICIwLjAwMjc5OCwgMC4wMDI3OTksIDAuMDAyODAyLCAwLjAwMjgwMywgMC4wMDI4MDMsIDAuMDAyODA0LCAwLjAwMjgwNCIsIFwKLSAgICAgICAgICAiMC4wMDI3OTYsIDAuMDAyNzk2LCAwLjAwMjgsIDAuMDAyODAxLCAwLjAwMjgwMSwgMC4wMDI4MDIsIDAuMDAyODAyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxODMsIDAuMDAxODMyLCAwLjAwMTgzNiwgMC4wMDE4MzgsIDAuMDAxODM4LCAwLjAwMTgzOSwgMC4wMDE4MzkiLCBcCi0gICAgICAgICAgIjAuMDAxODM2LCAwLjAwMTgzNywgMC4wMDE4NDIsIDAuMDAxODQ0LCAwLjAwMTg0NCwgMC4wMDE4NDUsIDAuMDAxODQ1IiwgXAotICAgICAgICAgICIwLjAwMTg1MywgMC4wMDE4NTQsIDAuMDAxODU5LCAwLjAwMTg2LCAwLjAwMTg2MSwgMC4wMDE4NjIsIDAuMDAxODYyIiwgXAotICAgICAgICAgICIwLjAwMTg3LCAwLjAwMTg3MSwgMC4wMDE4NzYsIDAuMDAxODc4LCAwLjAwMTg3OCwgMC4wMDE4NzksIDAuMDAxODc5IiwgXAotICAgICAgICAgICIwLjAwMTg4MywgMC4wMDE4ODQsIDAuMDAxODg5LCAwLjAwMTg5MSwgMC4wMDE4OTIsIDAuMDAxODkyLCAwLjAwMTg5MyIsIFwKLSAgICAgICAgICAiMC4wMDE5MDcsIDAuMDAxOTA5LCAwLjAwMTkxNCwgMC4wMDE5MTYsIDAuMDAxOTE3LCAwLjAwMTkxNywgMC4wMDE5MTciLCBcCi0gICAgICAgICAgIjAuMDAxOTI1LCAwLjAwMTkyNiwgMC4wMDE5MzIsIDAuMDAxOTM0LCAwLjAwMTkzNSwgMC4wMDE5MzUsIDAuMDAxOTM2Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBYT1IyWDEgKgotICogLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChYT1IyWDEpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4xMjU4MzI7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYwMDgzMTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MDA1Njc7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjAwODMxOwotICB9Ci0gIHBpbihCKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDEyMzIxOTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDEyMzEzMTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDEyMzIxOTsKLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjExODE4OTsKLSAgICBmdW5jdGlvbiA6ICIoQV5CKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjE1NjgxLCAwLjI1OTgyNCwgMC41MDQ2NjIsIDAuNzIwNTU4LCAxLjAwODMyLCAxLjU4NDE2LCAxLjk0MzMyIiwgXAotICAgICAgICAgICIwLjIyNzY2NiwgMC4yNzE3OTQsIDAuNTE2NjI3LCAwLjczMjQ3OSwgMS4wMjAzLCAxLjU5NTg3LCAxLjk1NTQ2IiwgXAotICAgICAgICAgICIwLjI0MjUyNywgMC4yODY2NDQsIDAuNTMxNTA0LCAwLjc0NzMwNCwgMS4wMzUxNiwgMS42MTA2NywgMS45NzA0MyIsIFwKLSAgICAgICAgICAiMC4yNTc3NTYsIDAuMzAxNzkzLCAwLjU0NjcxMywgMC43NjI1MDMsIDEuMDUwNDUsIDEuNjI1NjIsIDEuOTg1NDMiLCBcCi0gICAgICAgICAgIjAuMjcyNzA1LCAwLjMxNjc3MiwgMC41NjE2OTgsIDAuNzc3NDksIDEuMDY1MzksIDEuNjQwOTksIDIuMDAwNTIiLCBcCi0gICAgICAgICAgIjAuMjk2OTc5LCAwLjM0MTA0OSwgMC41ODU5ODksIDAuODAxNzg0LCAxLjA4OTY5LCAxLjY2NTI5LCAyLjAyNDgxIiwgXAotICAgICAgICAgICIwLjMxODAzNSwgMC4zNjIwNzksIDAuNjA3MDQxLCAwLjgyMjg0LCAxLjExMDYxLCAxLjY4NjM4LCAyLjA0NTgzIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE3Mjc4MywgMC4yNTY2NzksIDAuNzQ2MTA1LCAxLjE4MzA1LCAxLjc2NjczLCAyLjkzNjc1LCAzLjY2OTMzIiwgXAotICAgICAgICAgICIwLjE3MjgyLCAwLjI1NjY0MiwgMC43NDY3OTUsIDEuMTg4MjksIDEuNzY2NjEsIDIuOTM2NjcsIDMuNjY1MDUiLCBcCi0gICAgICAgICAgIjAuMTcyNzY5LCAwLjI1NjY1NiwgMC43NDY4NDYsIDEuMTg0MTIsIDEuNzY2NzgsIDIuOTM0OTIsIDMuNjY3MzIiLCBcCi0gICAgICAgICAgIjAuMTcyODUzLCAwLjI1NjY3OCwgMC43NDY2NDksIDEuMTg2MjQsIDEuNzY3NjgsIDIuOTQzNywgMy42NjU5MiIsIFwKLSAgICAgICAgICAiMC4xNzI4MDMsIDAuMjU2NzA5LCAwLjc0NjcyNywgMS4xODYyNCwgMS43Njc3MiwgMi45MzYzNywgMy42NjUyOCIsIFwKLSAgICAgICAgICAiMC4xNzI3OTUsIDAuMjU2NzA4LCAwLjc0NjcyNCwgMS4xODYyNCwgMS43Njc3MSwgMi45MzYzNSwgMy42NjUzNyIsIFwKLSAgICAgICAgICAiMC4xNzI4NTQsIDAuMjU2NjM3LCAwLjc0NjY0NiwgMS4xODYyMywgMS43NzE0NCwgMi45MzYyNiwgMy42NjU1MyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMTQwNzYsIDAuMjY0Mjc3LCAwLjU0NDQwNywgMC43OTEyOTksIDEuMTIwNjgsIDEuNzc5MTMsIDIuMTkwNzEiLCBcCi0gICAgICAgICAgIjAuMjI1NTg5LCAwLjI3NTc3MiwgMC41NTU5MjgsIDAuODAyODA2LCAxLjEzMjA5LCAxLjc5MDcsIDIuMjAyMTIiLCBcCi0gICAgICAgICAgIjAuMjM5OTY0LCAwLjI5MDE4LCAwLjU3MDMyMywgMC44MTcyMTYsIDEuMTQ2NDksIDEuODA1MDQsIDIuMjE2NjciLCBcCi0gICAgICAgICAgIjAuMjU0NDQzLCAwLjMwNDY3MiwgMC41ODQ4MzgsIDAuODMxNzIxLCAxLjE2MTM3LCAxLjgxOTg0LCAyLjIzMDk4IiwgXAotICAgICAgICAgICIwLjI2OTAzMSwgMC4zMTkxODYsIDAuNTk5MzU3LCAwLjg0NjI2NiwgMS4xNzU1NCwgMS44MzQwOCwgMi4yNDU3MiIsIFwKLSAgICAgICAgICAiMC4yOTE3NDYsIDAuMzQxOTQ1LCAwLjYyMjExMSwgMC44NjkwNTYsIDEuMTk4MywgMS44NTY3NCwgMi4yNjg0OSIsIFwKLSAgICAgICAgICAiMC4zMTA5NSwgMC4zNjExODIsIDAuNjQxNDE4LCAwLjg4ODMxMiwgMS4yMTc3MiwgMS44NzYyNSwgMi4yODc2NiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xODk4MywgMC4yODQ2NzksIDAuODM2MjQyLCAxLjMyNDAxLCAxLjk3ODA5LCAzLjI4MTIxLCA0LjEwMDAxIiwgXAotICAgICAgICAgICIwLjE4OTgyMiwgMC4yODQ0NDYsIDAuODM2MjQ2LCAxLjMyNTEyLCAxLjk4MTk0LCAzLjI4MzM0LCA0LjA5ODEzIiwgXAotICAgICAgICAgICIwLjE4OTg0NiwgMC4yODQ3NDIsIDAuODM2MjQyLCAxLjMyNDE2LCAxLjk3NjA3LCAzLjI4MTMyLCA0LjEwMDc2IiwgXAotICAgICAgICAgICIwLjE4OTgzMiwgMC4yODQyNzUsIDAuODM2MjQyLCAxLjMyNTIzLCAxLjk3NjQyLCAzLjI4NjE0LCA0LjA5ODc3IiwgXAotICAgICAgICAgICIwLjE4OTkyNiwgMC4yODQ3MzEsIDAuODM2MjM5LCAxLjMyMzYxLCAxLjk3NjEzLCAzLjI4MTQ5LCA0LjEwMDg4IiwgXAotICAgICAgICAgICIwLjE4OTk4MiwgMC4yODQ3NTcsIDAuODM0Mzk0LCAxLjMyNjM1LCAxLjk4MjYzLCAzLjI4MzUzLCA0LjEwNzUzIiwgXAotICAgICAgICAgICIwLjE5MDAzMywgMC4yODQ2MDIsIDAuODM2MjQsIDEuMzI1NzUsIDEuOTc3ODIsIDMuMjgzNDIsIDQuMDk4MTYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjQwMDAyLCAwLjI4NCwgMC41MjkyNjUsIDAuNzQ1MjQ0LCAxLjAzMzAzLCAxLjYwODU4LCAxLjk2ODE1IiwgXAotICAgICAgICAgICIwLjI1MTUzNywgMC4yOTU1MiwgMC41NDA3OTUsIDAuNzU2Nzk0LCAxLjA0NDU2LCAxLjYyMDEsIDEuOTc5NjciLCBcCi0gICAgICAgICAgIjAuMjY2MjU3LCAwLjMxMDE0NSwgMC41NTU0NjcsIDAuNzcxNDIyLCAxLjA1OTI3LCAxLjYzNDc0LCAxLjk5NDM4IiwgXAotICAgICAgICAgICIwLjI4MDg3OCwgMC4zMjQ3NzcsIDAuNTcwMDY3LCAwLjc4NjAzOCwgMS4wNzM4NSwgMS42NDkzMiwgMi4wMDg5MyIsIFwKLSAgICAgICAgICAiMC4yOTQ3MTcsIDAuMzM4NzE2LCAwLjU4Mzk3MiwgMC43OTk5OTgsIDEuMDg3NzgsIDEuNjYzMjcsIDIuMDIyOTciLCBcCi0gICAgICAgICAgIjAuMzE1MDUyLCAwLjM1OTAwMiwgMC42MDQyODcsIDAuODIwMzAyLCAxLjEwODA1LCAxLjY4MzU4LCAyLjA0MzE3IiwgXAotICAgICAgICAgICIwLjMzMTA5MywgMC4zNzQ5ODcsIDAuNjIwMjc4LCAwLjgzNjI2MywgMS4xMjQwOCwgMS42OTk1NSwgMi4wNTkxOCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNzExODUsIDAuMjU1NDk1LCAwLjc0Njc1NywgMS4xODcwOCwgMS43Njk1OCwgMi45Mzc1NSwgMy42Njk2OSIsIFwKLSAgICAgICAgICAiMC4xNzExNzEsIDAuMjU1NDkzLCAwLjc0Njc1OCwgMS4xODcwNiwgMS43Njk2NSwgMi45MzczOCwgMy42Njk3MyIsIFwKLSAgICAgICAgICAiMC4xNzEyMTMsIDAuMjU1NDU2LCAwLjc0NjY1NiwgMS4xODY5MywgMS43NzI1NiwgMi45NDM2OCwgMy42NzAxOCIsIFwKLSAgICAgICAgICAiMC4xNzExODUsIDAuMjU1NDgsIDAuNzQ4NDAxLCAxLjE4Njk4LCAxLjc2OTU3LCAyLjkzODg0LCAzLjY3NTM0IiwgXAotICAgICAgICAgICIwLjE3MTExNSwgMC4yNTU0NzUsIDAuNzQ4MTcsIDEuMTg3MSwgMS43NjkzNywgMi45Mzg5LCAzLjY3NjA4IiwgXAotICAgICAgICAgICIwLjE3MTE1OSwgMC4yNTU0OTIsIDAuNzQ2NzYzLCAxLjE4NzAxLCAxLjc2OTY1LCAyLjkzNjg2LCAzLjY2OTcyIiwgXAotICAgICAgICAgICIwLjE3MTIxMSwgMC4yNTU1OTMsIDAuNzQ4MzIyLCAxLjE4Njk2LCAxLjc2OTQ4LCAyLjkzODg2LCAzLjY2OTcyIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI0NTA1NSwgMC4yOTUwOTcsIDAuNTc1NDc2LCAwLjgyMjQxMywgMS4xNTE2NiwgMS44MTAwNSwgMi4yMjE0NSIsIFwKLSAgICAgICAgICAiMC4yNTY5MjksIDAuMzA2OTY2LCAwLjU4NzM1OCwgMC44MzQ0MDMsIDEuMTYzNTUsIDEuODIxOSwgMi4yMzM1MSIsIFwKLSAgICAgICAgICAiMC4yNzIxMjMsIDAuMzIyMTY3LCAwLjYwMjU1NiwgMC44NDk0OTIsIDEuMTc4NzMsIDEuODM3MTIsIDIuMjQ4NTIiLCBcCi0gICAgICAgICAgIjAuMjg3MzYxLCAwLjMzNzM5MywgMC42MTc3ODUsIDAuODY0NzQ4LCAxLjE5Mzk5LCAxLjg1MjMzLCAyLjI2Mzc1IiwgXAotICAgICAgICAgICIwLjMwMjQ3MSwgMC4zNTI1MSwgMC42MzI4OTksIDAuODc5ODMzLCAxLjIwOTA5LCAxLjg2NzQ2LCAyLjI3ODg3IiwgXAotICAgICAgICAgICIwLjMyNTM3MywgMC4zNzU0MDQsIDAuNjU1NzczLCAwLjkwMjc4NywgMS4yMzIwMiwgMS44OTAzNSwgMi4zMDE3OCIsIFwKLSAgICAgICAgICAiMC4zNDM4NDgsIDAuMzkzODg2LCAwLjY3NDI2MywgMC45MjEzNDgsIDEuMjUwNDksIDEuOTA4ODIsIDIuMzIwMjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTg4MjUyLCAwLjI4MzMyMiwgMC44MzU5NjEsIDEuMzI3MTIsIDEuOTc4NDksIDMuMjgyMzMsIDQuMTA3NjgiLCBcCi0gICAgICAgICAgIjAuMTg4MjQsIDAuMjgzMiwgMC44MzU5NDEsIDEuMzI1ODEsIDEuOTc5NDUsIDMuMjkxMzIsIDQuMTA3NjkiLCBcCi0gICAgICAgICAgIjAuMTg4MjMsIDAuMjgzNDUzLCAwLjgzNTg2NiwgMS4zMjY5NCwgMS45NzgyOSwgMy4yOTA3NiwgNC4xMDYiLCBcCi0gICAgICAgICAgIjAuMTg4MjI5LCAwLjI4MzE5NSwgMC44MzM5MjcsIDEuMzI2NzgsIDEuOTgwNTEsIDMuMjg4NjksIDQuMTA4MjkiLCBcCi0gICAgICAgICAgIjAuMTg4MjIzLCAwLjI4MzQ4NiwgMC44MzU4MjMsIDEuMzI2ODUsIDEuOTc4NzQsIDMuMjkwMjksIDQuMTA3MTMiLCBcCi0gICAgICAgICAgIjAuMTg4MTI1LCAwLjI4MzE3NSwgMC44MzYyMTYsIDEuMzI2NDgsIDEuOTgwOTksIDMuMjg3MTIsIDQuMTA0NTEiLCBcCi0gICAgICAgICAgIjAuMTg4MTM0LCAwLjI4MzE2OCwgMC44MzQ1MjQsIDEuMzI1MzUsIDEuOTgwODMsIDMuMjg3MzQsIDQuMTA0MiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xODg5MjMsIDAuMjMyODkzLCAwLjQ3ODE5MiwgMC42OTQxNTMsIDAuOTgxOTE0LCAxLjU1NzQ3LCAxLjkxNzA0IiwgXAotICAgICAgICAgICIwLjE5OTg4NiwgMC4yNDM3NTcsIDAuNDg5MDcyLCAwLjcwNTAxNiwgMC45OTI4NTQsIDEuNTY4MzEsIDEuOTI3OTciLCBcCi0gICAgICAgICAgIjAuMjEzMzI3LCAwLjI1NzIxNywgMC41MDI1NDUsIDAuNzE4NDkyLCAxLjAwNjM2LCAxLjU4MTk1LCAxLjk0MTQ0IiwgXAotICAgICAgICAgICIwLjIyNjc4MiwgMC4yNzA3NjUsIDAuNTE2MDM5LCAwLjczMTk4NSwgMS4wMTk4NCwgMS41OTUzMiwgMS45NTQ5MiIsIFwKLSAgICAgICAgICAiMC4yNDA0MzUsIDAuMjg0MzQ2LCAwLjUyOTcwNiwgMC43NDU2NiwgMS4wMzM1MSwgMS42MDg5OCwgMS45Njg2MSIsIFwKLSAgICAgICAgICAiMC4yNjI0NjcsIDAuMzA2NDc0LCAwLjU1MTc3NywgMC43Njc3MzcsIDEuMDU1NjcsIDEuNjMxMDgsIDEuOTkwNjgiLCBcCi0gICAgICAgICAgIjAuMjgxNzc1LCAwLjMyNTY3OCwgMC41NzEwMTQsIDAuNzg3MDE2LCAxLjA3NDgyLCAxLjY1MDMxLCAyLjAwOTk1Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE3MTA0MiwgMC4yNTU0MjQsIDAuNzQ2NjY1LCAxLjE4NzE0LCAxLjc2OTc0LCAyLjkzNDk2LCAzLjY2ODkiLCBcCi0gICAgICAgICAgIjAuMTcxMDgxLCAwLjI1NTQ4NywgMC43NDY3NTgsIDEuMTg2OTUsIDEuNzcyNTUsIDIuOTQzNTgsIDMuNjcwMTYiLCBcCi0gICAgICAgICAgIjAuMTcxMDQ5LCAwLjI1NTUyLCAwLjc0Njc2MiwgMS4xODY5MywgMS43NzI1MiwgMi45NDM2MSwgMy42NyIsIFwKLSAgICAgICAgICAiMC4xNzExMDYsIDAuMjU1NDA5LCAwLjc0Njc1OSwgMS4xODY4OSwgMS43NzI1NiwgMi45Mzk2OSwgMy42Njk2NSIsIFwKLSAgICAgICAgICAiMC4xNzExMDksIDAuMjU1NTMxLCAwLjc0NjcxOSwgMS4xODY5LCAxLjc2ODYyLCAyLjkzOTAzLCAzLjY2OTczIiwgXAotICAgICAgICAgICIwLjE3MTExMywgMC4yNTU0NDMsIDAuNzQ2NzY5LCAxLjE4Njg4LCAxLjc3MjM0LCAyLjkzOTYyLCAzLjY2OTY1IiwgXAotICAgICAgICAgICIwLjE3MTI2NCwgMC4yNTU0NSwgMC43NDgzMzQsIDEuMTg2OTksIDEuNzY5NDgsIDIuOTM4ODIsIDMuNjY5NjEiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTgyNTE3LCAwLjIzMjY4MiwgMC41MTI4MjksIDAuNzU5NjkzLCAxLjA4OSwgMS43NDc1NiwgMi4xNTkxNCIsIFwKLSAgICAgICAgICAiMC4xOTMxODQsIDAuMjQzMzQ3LCAwLjUyMzQ5NSwgMC43NzAzNTcsIDEuMDk5NjQsIDEuNzU4MjMsIDIuMTY5NzkiLCBcCi0gICAgICAgICAgIjAuMjA2NTE4LCAwLjI1NjY3NiwgMC41MzY4NDMsIDAuNzgzNywgMS4xMTMwMSwgMS43NzE2MiwgMi4xODMwNCIsIFwKLSAgICAgICAgICAiMC4yMTk3NDYsIDAuMjY5OTQyLCAwLjU1MDA3NSwgMC43OTY5OTYsIDEuMTI2MjYsIDEuNzg1MTgsIDIuMTk2MTEiLCBcCi0gICAgICAgICAgIjAuMjMyOTE2LCAwLjI4MzExNSwgMC41NjMzMTcsIDAuODEwMiwgMS4xMzk1LCAxLjc5ODA1LCAyLjIwOTciLCBcCi0gICAgICAgICAgIjAuMjUzOTc5LCAwLjMwNDE5MywgMC41ODQ0MzgsIDAuODMxMzA4LCAxLjE2MTA4LCAxLjgxOTMyLCAyLjIzMDY4IiwgXAotICAgICAgICAgICIwLjI3MjE4LCAwLjMyMjQwMywgMC42MDI1ODYsIDAuODQ5NTEsIDEuMTc4NzksIDEuODM3NDEsIDIuMjQ5MDQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTg5NzE4LCAwLjI4NDIwMywgMC44MzYyNDUsIDEuMzI1NTMsIDEuOTc1NzEsIDMuMjgxMSwgNC4xMDAzIiwgXAotICAgICAgICAgICIwLjE4OTcxMiwgMC4yODQxOTYsIDAuODM2MjQ2LCAxLjMyNTU0LCAxLjk4MTcxLCAzLjI4MjQ5LCA0LjEwMDA0IiwgXAotICAgICAgICAgICIwLjE4OTYsIDAuMjg0MTMsIDAuODMzNDIyLCAxLjMyNTcyLCAxLjk4MTYyLCAzLjI4MzQ1LCA0LjA5ODA2IiwgXAotICAgICAgICAgICIwLjE4OTYxLCAwLjI4NDU4MiwgMC44MzQwMDQsIDEuMzI3MDEsIDEuOTgyNjYsIDMuMjg1OTMsIDQuMTAyMTIiLCBcCi0gICAgICAgICAgIjAuMTg5NzYsIDAuMjg0MjUyLCAwLjgzNjI0NSwgMS4zMjUzOSwgMS45NzU5NywgMy4yODEzNiwgNC4xMDEyNSIsIFwKLSAgICAgICAgICAiMC4xODk2NTQsIDAuMjg0NDI3LCAwLjgzMzQ2NSwgMS4zMjU4NCwgMS45NzU3OCwgMy4yODc5NCwgNC4xMDg0OSIsIFwKLSAgICAgICAgICAiMC4xODk4ODYsIDAuMjg0NzA3LCAwLjgzNTA2NSwgMS4zMjcwMSwgMS45ODI2NSwgMy4yODI3NCwgNC4xMDYxMiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xODY0OSwgMC4yMzA1NTcsIDAuNDc1NTAzLCAwLjY5MTM1OCwgMC45NzkxNzMsIDEuNTU0NzMsIDEuOTE0MzYiLCBcCi0gICAgICAgICAgIjAuMTk4NDY4LCAwLjI0MjYyMSwgMC40ODc1MTYsIDAuNzAzMjg3LCAwLjk5MTE3NCwgMS41NjY3NCwgMS45MjY1NyIsIFwKLSAgICAgICAgICAiMC4yMTM3NywgMC4yNTc4MDksIDAuNTAyNzEyLCAwLjcxODUzNiwgMS4wMDYzNCwgMS41ODIyNywgMS45NDE1NiIsIFwKLSAgICAgICAgICAiMC4yMjgyODcsIDAuMjcyNDA3LCAwLjUxNzMwNSwgMC43MzMxMzQsIDEuMDIwOTUsIDEuNTk2NjYsIDEuOTU2MDMiLCBcCi0gICAgICAgICAgIjAuMjQyMjI4LCAwLjI4NjMzNSwgMC41MzEyMzksIDAuNzQ3MDE0LCAxLjAzNDg5LCAxLjYxMDQ0LCAxLjk3MDI1IiwgXAotICAgICAgICAgICIwLjI2MjA4NCwgMC4zMDYxMDEsIDAuNTUxMDM2LCAwLjc2Njg0MiwgMS4wNTQ5LCAxLjYzMDQ1LCAxLjk4OTc1IiwgXAotICAgICAgICAgICIwLjI3NjcxNSwgMC4zMjA4MjksIDAuNTY1NzMxLCAwLjc4MTUzMywgMS4wNjkzOSwgMS42NDUwMiwgMi4wMDQ0NyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNzI1NTEsIDAuMjU2NTcxLCAwLjc0NjgxNywgMS4xODgxLCAxLjc2Njc1LCAyLjkzNjgzLCAzLjY2NTAyIiwgXAotICAgICAgICAgICIwLjE3MjU5NywgMC4yNTY1NTcsIDAuNzQ2Nzg5LCAxLjE4NjExLCAxLjc2Njg3LCAyLjkzNjkxLCAzLjY2NjY3IiwgXAotICAgICAgICAgICIwLjE3MjY1NywgMC4yNTY1NzQsIDAuNzQ3NzA0LCAxLjE4NjI3LCAxLjc2NzExLCAyLjkzNjExLCAzLjY2NDgxIiwgXAotICAgICAgICAgICIwLjE3MjU5LCAwLjI1NjU0MywgMC43NDc3MzgsIDEuMTg2MjgsIDEuNzY3MTIsIDIuOTM2MjksIDMuNjY1OTIiLCBcCi0gICAgICAgICAgIjAuMTcyNTkzLCAwLjI1NjU2MSwgMC43NDY3OTMsIDEuMTg2MTEsIDEuNzY2OTcsIDIuOTM0ODYsIDMuNjY2ODgiLCBcCi0gICAgICAgICAgIjAuMTcyNjQ0LCAwLjI1NjUzNCwgMC43NDY2MjUsIDEuMTg2MjUsIDEuNzY3NDQsIDIuOTM2MTIsIDMuNjY1OTIiLCBcCi0gICAgICAgICAgIjAuMTcyNjYyLCAwLjI1NjUxOCwgMC43NDY3NCwgMS4xODYyMywgMS43NjY5MiwgMi45Mzg5NiwgMy42NjU5MyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMjA1NiwgMC4yNzA2MTMsIDAuNTUxMDA4LCAwLjc5NzkzNywgMS4xMjcyMywgMS43ODU1MSwgMi4xOTY5OCIsIFwKLSAgICAgICAgICAiMC4yMzI5MjEsIDAuMjgyOTc1LCAwLjU2MzM3MiwgMC44MTAzMDMsIDEuMTM5NjEsIDEuNzk3OTIsIDIuMjA5MzYiLCBcCi0gICAgICAgICAgIjAuMjQ4MjEyLCAwLjI5ODI1MSwgMC41Nzg2NSwgMC44MjU1NzgsIDEuMTU0ODIsIDEuODEzMjcsIDIuMjI0NjIiLCBcCi0gICAgICAgICAgIjAuMjYzMjI5LCAwLjMxMzI4NCwgMC41OTM2ODEsIDAuODQwNjA4LCAxLjE2OTg3LCAxLjgyODI1LCAyLjIzOTY1IiwgXAotICAgICAgICAgICIwLjI3NzQxNSwgMC4zMjc0NTYsIDAuNjA3ODQ3LCAwLjg1NDc4LCAxLjE4NDAxLCAxLjg0MjQsIDIuMjUzODEiLCBcCi0gICAgICAgICAgIjAuMjk3ODc4LCAwLjM0NzkxMiwgMC42MjgzMDYsIDAuODc1MjM5LCAxLjIwNDU5LCAxLjg2Mjg2LCAyLjI3NDI3IiwgXAotICAgICAgICAgICIwLjMxNDA4NywgMC4zNjQxMTcsIDAuNjQ0NTE2LCAwLjg5MTU1NywgMS4yMjA3LCAxLjg3OTA1LCAyLjI5MDU4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE4ODE2MywgMC4yODI4ODYsIDAuODM0MTM5LCAxLjMyNzM0LCAxLjk4MTM2LCAzLjI4Mjk2LCA0LjA5MTMyIiwgXAotICAgICAgICAgICIwLjE4ODE2OCwgMC4yODM1MjksIDAuODM1OTA4LCAxLjMyNjk5LCAxLjk4MDgsIDMuMjkxMywgNC4xMDcyNiIsIFwKLSAgICAgICAgICAiMC4xODgxODMsIDAuMjgzNTI5LCAwLjgzNDAzLCAxLjMyNjc0LCAxLjk4MTQ4LCAzLjI5MDM1LCA0LjEwNzgxIiwgXAotICAgICAgICAgICIwLjE4ODE1OCwgMC4yODM1MjcsIDAuODM0MDUzLCAxLjMyNjc5LCAxLjk4MTM2LCAzLjI4NjE4LCA0LjEwNzg5IiwgXAotICAgICAgICAgICIwLjE4ODIyMSwgMC4yODM1MDUsIDAuODM1ODA2LCAxLjMyNjg5LCAxLjk3Nzk5LCAzLjI5MDc0LCA0LjEwNjM5IiwgXAotICAgICAgICAgICIwLjE4ODIwOSwgMC4yODM0NDksIDAuODM1NzksIDEuMzI2ODQsIDEuOTgwMjIsIDMuMjkwODYsIDQuMTA3ODciLCBcCi0gICAgICAgICAgIjAuMTg4MTg4LCAwLjI4MzEyMywgMC44MzU4MjMsIDEuMzI1NTQsIDEuOTc4NjIsIDMuMjg5OTEsIDQuMTA3ODkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDMwMDQsIDAuMDAzMDEsIDAuMDAzMDIsIDAuMDAzMDIxLCAwLjAwMzAyMiwgMC4wMDMwMjMsIDAuMDAzMDIzIiwgXAotICAgICAgICAgICIwLjAwMjk5MywgMC4wMDI5OTksIDAuMDAzMDA4LCAwLjAwMzAxLCAwLjAwMzAxMSwgMC4wMDMwMTIsIDAuMDAzMDEyIiwgXAotICAgICAgICAgICIwLjAwMjk4MywgMC4wMDI5OSwgMC4wMDI5OTksIDAuMDAzMDAxLCAwLjAwMzAwMiwgMC4wMDMwMDMsIDAuMDAzMDAzIiwgXAotICAgICAgICAgICIwLjAwMjk3OCwgMC4wMDI5ODQsIDAuMDAyOTkzLCAwLjAwMjk5NSwgMC4wMDI5OTYsIDAuMDAyOTk3LCAwLjAwMjk5OCIsIFwKLSAgICAgICAgICAiMC4wMDI5NzQsIDAuMDAyOTgsIDAuMDAyOTksIDAuMDAyOTkyLCAwLjAwMjk5MywgMC4wMDI5OTQsIDAuMDAyOTk0IiwgXAotICAgICAgICAgICIwLjAwMjk2OSwgMC4wMDI5NzUsIDAuMDAyOTg1LCAwLjAwMjk4NywgMC4wMDI5ODgsIDAuMDAyOTg5LCAwLjAwMjk4OSIsIFwKLSAgICAgICAgICAiMC4wMDI5NjgsIDAuMDAyOTc1LCAwLjAwMjk4NCwgMC4wMDI5ODYsIDAuMDAyOTg3LCAwLjAwMjk4OCwgMC4wMDI5ODgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI4LCAwLjAwMjgwOCwgMC4wMDI4MTksIDAuMDAyODIyLCAwLjAwMjgyMywgMC4wMDI4MjQsIDAuMDAyODI0IiwgXAotICAgICAgICAgICIwLjAwMjc4NCwgMC4wMDI3OTIsIDAuMDAyODA0LCAwLjAwMjgwNiwgMC4wMDI4MDgsIDAuMDAyODA5LCAwLjAwMjgwOSIsIFwKLSAgICAgICAgICAiMC4wMDI3NzMsIDAuMDAyNzgxLCAwLjAwMjc5MywgMC4wMDI3OTUsIDAuMDAyNzk2LCAwLjAwMjc5OCwgMC4wMDI3OTgiLCBcCi0gICAgICAgICAgIjAuMDAyNzY3LCAwLjAwMjc3NSwgMC4wMDI3ODYsIDAuMDAyNzg5LCAwLjAwMjc5LCAwLjAwMjc5MSwgMC4wMDI3OTIiLCBcCi0gICAgICAgICAgIjAuMDAyNzYzLCAwLjAwMjc3MSwgMC4wMDI3ODMsIDAuMDAyNzg1LCAwLjAwMjc4NywgMC4wMDI3ODgsIDAuMDAyNzg4IiwgXAotICAgICAgICAgICIwLjAwMjc2MSwgMC4wMDI3NjksIDAuMDAyNzgsIDAuMDAyNzgzLCAwLjAwMjc4NCwgMC4wMDI3ODYsIDAuMDAyNzg2IiwgXAotICAgICAgICAgICIwLjAwMjc2LCAwLjAwMjc2OCwgMC4wMDI3OCwgMC4wMDI3ODIsIDAuMDAyNzg0LCAwLjAwMjc4NSwgMC4wMDI3ODUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDE0NjksIDAuMDAxNDc0LCAwLjAwMTQ4MiwgMC4wMDE0ODMsIDAuMDAxNDg0LCAwLjAwMTQ4MywgMC4wMDE0ODUiLCBcCi0gICAgICAgICAgIjAuMDAxNDQyLCAwLjAwMTQ0NywgMC4wMDE0NTUsIDAuMDAxNDU2LCAwLjAwMTQ1NywgMC4wMDE0NTcsIDAuMDAxNDU3IiwgXAotICAgICAgICAgICIwLjAwMTQyMiwgMC4wMDE0MjgsIDAuMDAxNDM2LCAwLjAwMTQzOCwgMC4wMDE0MzksIDAuMDAxNDM5LCAwLjAwMTQzOSIsIFwKLSAgICAgICAgICAiMC4wMDE0MSwgMC4wMDE0MTcsIDAuMDAxNDI1LCAwLjAwMTQyNywgMC4wMDE0MjgsIDAuMDAxNDI5LCAwLjAwMTQzIiwgXAotICAgICAgICAgICIwLjAwMTQwMywgMC4wMDE0MSwgMC4wMDE0MiwgMC4wMDE0MjIsIDAuMDAxNDIzLCAwLjAwMTQyNCwgMC4wMDE0MjQiLCBcCi0gICAgICAgICAgIjAuMDAxMzk2LCAwLjAwMTQwMywgMC4wMDE0MTUsIDAuMDAxNDE4LCAwLjAwMTQyLCAwLjAwMTQyMSwgMC4wMDE0MjEiLCBcCi0gICAgICAgICAgIjAuMDAxMzk0LCAwLjAwMTQwMiwgMC4wMDE0MTUsIDAuMDAxNDE4LCAwLjAwMTQyLCAwLjAwMTQyMSwgMC4wMDE0MjIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDIyOTQsIDAuMDAyMzAyLCAwLjAwMjMxNCwgMC4wMDIzMTcsIDAuMDAyMzE4LCAwLjAwMjMyLCAwLjAwMjMyIiwgXAotICAgICAgICAgICIwLjAwMjI4NywgMC4wMDIyOTUsIDAuMDAyMzA3LCAwLjAwMjMxLCAwLjAwMjMxMSwgMC4wMDIzMTIsIDAuMDAyMzEzIiwgXAotICAgICAgICAgICIwLjAwMjI4MiwgMC4wMDIyOSwgMC4wMDIzMDIsIDAuMDAyMzA0LCAwLjAwMjMwNiwgMC4wMDIzMDcsIDAuMDAyMzA3IiwgXAotICAgICAgICAgICIwLjAwMjI3OSwgMC4wMDIyODcsIDAuMDAyMjk4LCAwLjAwMjMwMSwgMC4wMDIzMDIsIDAuMDAyMzA0LCAwLjAwMjMwNCIsIFwKLSAgICAgICAgICAiMC4wMDIyNzgsIDAuMDAyMjg2LCAwLjAwMjI5NywgMC4wMDIzLCAwLjAwMjMwMSwgMC4wMDIzMDIsIDAuMDAyMzAzIiwgXAotICAgICAgICAgICIwLjAwMjI3OCwgMC4wMDIyODUsIDAuMDAyMjk3LCAwLjAwMjI5OSwgMC4wMDIzMDEsIDAuMDAyMzAyLCAwLjAwMjMwMiIsIFwKLSAgICAgICAgICAiMC4wMDIyNzgsIDAuMDAyMjg2LCAwLjAwMjI5OCwgMC4wMDIzLCAwLjAwMjMwMiwgMC4wMDIzMDMsIDAuMDAyMzAzIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBYT1IyWDIgKgotICogLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChYT1IyWDIpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4xNTkwNjY7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDU4NTA0NjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA1ODQ3NTE7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNTg1MDQ2OwotICB9Ci0gIHBpbihCKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDEyMzc4NjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDEyMzY3NTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDEyMzc4NjsKLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjI2NTA1ODsKLSAgICBmdW5jdGlvbiA6ICIoQV5CKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTk4NDM1LCAwLjM4NTQ1MSwgMC41MjkwNjYsIDAuNzA4NTQ5LCAwLjg4NzgyNywgMS4wNjcyMiwgMS4yNDY2MiIsIFwKLSAgICAgICAgICAiMC4yMTAzOTYsIDAuMzk3Mzc5LCAwLjU0MDk4LCAwLjcyMDQwNywgMC44OTk3MzYsIDEuMDc5MjEsIDEuMjU4NTYiLCBcCi0gICAgICAgICAgIjAuMjI1MjU1LCAwLjQxMjI1NywgMC41NTU4ODYsIDAuNzM1MzcsIDAuOTE0NjUsIDEuMDk0MTQsIDEuMjczNDUiLCBcCi0gICAgICAgICAgIjAuMjQwMjAyLCAwLjQyNzI1OSwgMC41NzA4NjksIDAuNzUwMzMxLCAwLjkyOTYxNCwgMS4xMDkxMywgMS4yODg2MiIsIFwKLSAgICAgICAgICAiMC4yNTU1MjIsIDAuNDQyNDU3LCAwLjU4NjA3LCAwLjc2NTQ2OCwgMC45NDQ4NTksIDEuMTI0MjgsIDEuMzAzNyIsIFwKLSAgICAgICAgICAiMC4yNzk1NjQsIDAuNDY2NTAxLCAwLjYxMDEyLCAwLjc4OTU0LCAwLjk2ODkyOSwgMS4xNDgzOCwgMS4zMjc3NiIsIFwKLSAgICAgICAgICAiMC4zMDA0OTIsIDAuNDg3NTQxLCAwLjYzMTIsIDAuODEwNTY2LCAwLjk4OTk1MywgMS4xNjkyOSwgMS4zNDg3NCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTE2NTksIDAuNDYyMzE0LCAwLjc1MDU5NywgMS4xMTQ4MSwgMS40ODQyNCwgMS44NDgxLCAyLjIxMjU5IiwgXAotICAgICAgICAgICIwLjExMTU1NSwgMC40NjIyNzQsIDAuNzUxMTc3LCAxLjExNTMxLCAxLjQ4MTY1LCAxLjg0Nzg5LCAyLjIxMjYxIiwgXAotICAgICAgICAgICIwLjExMTU1MiwgMC40NjIyMzQsIDAuNzUxMjYsIDEuMTE0NzgsIDEuNDg0MiwgMS44NDgyOSwgMi4yMTI1OSIsIFwKLSAgICAgICAgICAiMC4xMTE2NjksIDAuNDYxNTUzLCAwLjc1MjI1NywgMS4xMTQ5OCwgMS40ODQxOCwgMS44NDY5LCAyLjIxMzUzIiwgXAotICAgICAgICAgICIwLjExMTY2NiwgMC40NjIyNjYsIDAuNzUxMDk4LCAxLjExNTk3LCAxLjQ4MTc2LCAxLjg0Nzk0LCAyLjIxMjI0IiwgXAotICAgICAgICAgICIwLjExMTcwNSwgMC40NjIyNjUsIDAuNzUxMDk4LCAxLjExNTMyLCAxLjQ4MDY4LCAxLjg0NzA1LCAyLjIxMjI4IiwgXAotICAgICAgICAgICIwLjExMTY3NSwgMC40NjIxNzksIDAuNzUxMDc0LCAxLjExNzMyLCAxLjQ4NDE0LCAxLjg1MDk2LCAyLjIxNzUxIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE5MTE0NSwgMC40MDM3MjcsIDAuNTY4NzExLCAwLjc3NDg5OCwgMC45ODEwNjcsIDEuMTg3MzIsIDEuMzkzNjkiLCBcCi0gICAgICAgICAgIjAuMjAyNjU2LCAwLjQxNTA5MywgMC41ODAwODQsIDAuNzg2MjYyLCAwLjk5MjQ2LCAxLjE5ODY4LCAxLjQwNTIiLCBcCi0gICAgICAgICAgIjAuMjE3MDM1LCAwLjQyOTYwNiwgMC41OTQ2MDMsIDAuODAwNzgzLCAxLjAwNjk3LCAxLjIxMzIsIDEuNDE5ODQiLCBcCi0gICAgICAgICAgIjAuMjMxMzg4LCAwLjQ0Mzk4OCwgMC42MDkwMjcsIDAuODE1MTcxLCAxLjAyMTM0LCAxLjIyNzYsIDEuNDMzNjEiLCBcCi0gICAgICAgICAgIjAuMjQ1OTQyLCAwLjQ1ODQzNCwgMC42MjM1MDQsIDAuODI5NjMzLCAxLjAzNTg0LCAxLjI0MjA3LCAxLjQ0ODA5IiwgXAotICAgICAgICAgICIwLjI2ODY0LCAwLjQ4MTI2NCwgMC42NDYyNzEsIDAuODUyNDcsIDEuMDU4NjcsIDEuMjY0OSwgMS40NzEwOSIsIFwKLSAgICAgICAgICAiMC4yODgwNDcsIDAuNTAwNjc4LCAwLjY2NTczNCwgMC44NzE4OTcsIDEuMDc4MDYsIDEuMjg0MzUsIDEuNDkwMzMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTE4NzksIDAuNTE1MjUzLCAwLjg0MTkwMiwgMS4yNTIxNCwgMS42NTkzNywgMi4wNjc2OSwgMi40ODExNyIsIFwKLSAgICAgICAgICAiMC4xMTg5MDYsIDAuNTE1MjkyLCAwLjg0MTk0NCwgMS4yNTIxMywgMS42NTk4MywgMi4wNjY4NiwgMi40Nzg1NSIsIFwKLSAgICAgICAgICAiMC4xMTg4MTUsIDAuNTE1MjY1LCAwLjg0MTk2LCAxLjI1MjE0LCAxLjY1OTU3LCAyLjA2Njg1LCAyLjQ3Nzk0IiwgXAotICAgICAgICAgICIwLjExODkxOCwgMC41MTUyMywgMC44NDE5NDksIDEuMjUyMTQsIDEuNjU5MjUsIDIuMDY3OTUsIDIuNDg2MzUiLCBcCi0gICAgICAgICAgIjAuMTE4OTQ0LCAwLjUxNTI2MSwgMC44Mzg5NTcsIDEuMjUyMTMsIDEuNjU3ODYsIDIuMDcwODgsIDIuNDg2NjciLCBcCi0gICAgICAgICAgIjAuMTE4Nzc3LCAwLjUxNTE4LCAwLjg0MTczMSwgMS4yNTIxMywgMS42NTk3NCwgMi4wNjY4NiwgMi40Nzg1MyIsIFwKLSAgICAgICAgICAiMC4xMTg5MzcsIDAuNTE1MTEsIDAuODQxOTQxLCAxLjI1MjE0LCAxLjY1OTIyLCAyLjA2ODM1LCAyLjQ4NjU3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIyNjQ1OSwgMC40MTI0MTQsIDAuNTU2MTgsIDAuNzM1Nzk3LCAwLjkxNTE4MywgMS4wOTQ1NiwgMS4yNzM5OSIsIFwKLSAgICAgICAgICAiMC4yMzgwNTUsIDAuNDIzOTk4LCAwLjU2Nzc3NSwgMC43NDczOTIsIDAuOTI2NzU0LCAxLjEwNjE3LCAxLjI4NTU0IiwgXAotICAgICAgICAgICIwLjI1Mjc0MywgMC40Mzg2ODQsIDAuNTgyNDYyLCAwLjc2MjA3LCAwLjk0MTQ0MiwgMS4xMjA4NSwgMS4zMDAyMiIsIFwKLSAgICAgICAgICAiMC4yNjcxNDcsIDAuNDUzMzA5LCAwLjU5NzA3MiwgMC43NzY2ODYsIDAuOTU2MDcxLCAxLjEzNTQ0LCAxLjMxNDgzIiwgXAotICAgICAgICAgICIwLjI4MTMzLCAwLjQ2NzI4LCAwLjYxMTA1MywgMC43OTA2OTcsIDAuOTcwMDUyLCAxLjE0OTU3LCAxLjMyODgyIiwgXAotICAgICAgICAgICIwLjMwMTcyNSwgMC40ODc2NjYsIDAuNjMxNDM4LCAwLjgxMTA4MiwgMC45OTA0NCwgMS4xNjk5NywgMS4zNDkyIiwgXAotICAgICAgICAgICIwLjMxNzcwOSwgMC41MDM3OTYsIDAuNjQ3NTcsIDAuODI3MjE0LCAxLjAwNjYzLCAxLjE4NTk0LCAxLjM2NTMzIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExMDM5NSwgMC40NjE2MzMsIDAuNzUxMTksIDEuMTE4NDMsIDEuNDg0NzEsIDEuODUwNzIsIDIuMjE4NjUiLCBcCi0gICAgICAgICAgIjAuMTEwMzE4LCAwLjQ2MTY3MywgMC43NTExNzksIDEuMTE4NDEsIDEuNDg0MjYsIDEuODUxNDksIDIuMjE1MzYiLCBcCi0gICAgICAgICAgIjAuMTEwMzEzLCAwLjQ2MTY1OCwgMC43NTExNzgsIDEuMTE4MzcsIDEuNDgyMjksIDEuODUxNDEsIDIuMjE1MzYiLCBcCi0gICAgICAgICAgIjAuMTEwMjM3LCAwLjQ2MTYwNywgMC43NTIyNiwgMS4xMTg0NCwgMS40ODQ3MywgMS44NTEyMiwgMi4yMTUwNSIsIFwKLSAgICAgICAgICAiMC4xMTAzMTYsIDAuNDYxNjg4LCAwLjc1MTExNywgMS4xMTU0OSwgMS40ODQ2NSwgMS44NTE4NiwgMi4yMTUxOCIsIFwKLSAgICAgICAgICAiMC4xMTAzMiwgMC40NjE2MzQsIDAuNzUxMTE5LCAxLjExNTQ5LCAxLjQ4NDY2LCAxLjg0NzMsIDIuMjE1MDMiLCBcCi0gICAgICAgICAgIjAuMTEwMjIzLCAwLjQ2MTY1NSwgMC43NTExNywgMS4xMTU0OSwgMS40ODQ5OCwgMS44NTEzNywgMi4yMTUiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjI1MzgzLCAwLjQzNzAyLCAwLjYwMjE2MiwgMC44MDgzNzgsIDEuMDE0NTYsIDEuMjIwNywgMS40MjY3NyIsIFwKLSAgICAgICAgICAiMC4yMzcyNDMsIDAuNDQ4ODcyLCAwLjYxNDAwOCwgMC44MjAyNjEsIDEuMDI2MzYsIDEuMjMyNTUsIDEuNDM4NjEiLCBcCi0gICAgICAgICAgIjAuMjUyMzQxLCAwLjQ2NDA5OSwgMC42MjkyMjMsIDAuODM1NDgsIDEuMDQxNjEsIDEuMjQ3NzEsIDEuNDUzODUiLCBcCi0gICAgICAgICAgIjAuMjY3Njc3LCAwLjQ3OTM0NywgMC42NDQ0OTMsIDAuODUwNzU5LCAxLjA1Njg3LCAxLjI2Mjk5LCAxLjQ2OTExIiwgXAotICAgICAgICAgICIwLjI4MjY0MSwgMC40OTQ0MjUsIDAuNjU5NTYyLCAwLjg2NTgwOCwgMS4wNzE5MywgMS4yNzgwNiwgMS40ODQxNyIsIFwKLSAgICAgICAgICAiMC4zMDU2NjcsIDAuNTE3NDU0LCAwLjY4MjU3NywgMC44ODg4MzcsIDEuMDk0OTYsIDEuMzAxMDgsIDEuNTA3MiIsIFwKLSAgICAgICAgICAiMC4zMjQyNDgsIDAuNTM2MDEyLCAwLjcwMTEwNiwgMC45MDczOTQsIDEuMTEzNTEsIDEuMzE5NjQsIDEuNTI1NzYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTE3MDY1LCAwLjUxNDcxMywgMC44MzkyMjksIDEuMjUwMDIsIDEuNjYyNzMsIDIuMDY5MzcsIDIuNDgxNzEiLCBcCi0gICAgICAgICAgIjAuMTE3MDUxLCAwLjUxNDY4LCAwLjgzOTQxMiwgMS4yNDg2OSwgMS42NjMzOCwgMi4wNzM2NCwgMi40ODEyMyIsIFwKLSAgICAgICAgICAiMC4xMTcxMDIsIDAuNTE0NTk3LCAwLjg0MDY3NywgMS4yNTE0NSwgMS42NjAxNywgMi4wNzExOSwgMi40ODQ1MSIsIFwKLSAgICAgICAgICAiMC4xMTcwNTQsIDAuNTEzNjY0LCAwLjg0MDM3MywgMS4yNTEzOCwgMS42NTk2OCwgMi4wNzEwOSwgMi40ODM5NCIsIFwKLSAgICAgICAgICAiMC4xMTcxNDgsIDAuNTE0NjA2LCAwLjg0MTkzNiwgMS4yNTE1MiwgMS42NjI5OCwgMi4wNzA2MywgMi40ODM2NyIsIFwKLSAgICAgICAgICAiMC4xMTcwODEsIDAuNTE0NDc5LCAwLjg0MDUzNSwgMS4yNTE0NCwgMS42NjI4NiwgMi4wNzAzNiwgMi40ODQxMyIsIFwKLSAgICAgICAgICAiMC4xMTcwODUsIDAuNTE0NDgzLCAwLjg0MTU1NSwgMS4yNTE0OCwgMS42NjI5NCwgMi4wNzAzLCAyLjQ4NDAzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE3NDkwOCwgMC4zNjA5NTYsIDAuNTA0NzY5LCAwLjY4NDMxMiwgMC44NjM3MTIsIDEuMDQzMSwgMS4yMjI1MiIsIFwKLSAgICAgICAgICAiMC4xODU5MSwgMC4zNzE5NDksIDAuNTE1NzQ4LCAwLjY5NTI5OSwgMC44NzQ3MDcsIDEuMDU0MDksIDEuMjMzNSIsIFwKLSAgICAgICAgICAiMC4xOTk0MTMsIDAuMzg1NDY0LCAwLjUyOTI0NCwgMC43MDg4NCwgMC44ODgyMjUsIDEuMDY3NiwgMS4yNDcwMyIsIFwKLSAgICAgICAgICAiMC4yMTI4OTksIDAuMzk4OTYsIDAuNTQyNzIyLCAwLjcyMjM0MSwgMC45MDE3MjYsIDEuMDgxMSwgMS4yNjA1NCIsIFwKLSAgICAgICAgICAiMC4yMjY1NDksIDAuNDEyNTkzLCAwLjU1NjM4MiwgMC43MzYwMiwgMC45MTU0MDQsIDEuMDk0NzUsIDEuMjc0MTUiLCBcCi0gICAgICAgICAgIjAuMjQ4NDcsIDAuNDM0NTYxLCAwLjU3ODM1MywgMC43NTc5MjEsIDAuOTM3MzUsIDEuMTE2NzMsIDEuMjk2MSIsIFwKLSAgICAgICAgICAiMC4yNjc5MDIsIDAuNDUzOTc3LCAwLjU5Nzc4OSwgMC43Nzc0MzIsIDAuOTU2ODIzLCAxLjEzNjE3LCAxLjMxNTU5Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwOTg2NCwgMC40NjE2NTYsIDAuNzUyNTMsIDEuMTE1NzEsIDEuNDg0OCwgMS44NDg3LCAyLjIxODgyIiwgXAotICAgICAgICAgICIwLjEwOTgyMiwgMC40NjE2MTksIDAuNzUyNDUsIDEuMTE1OCwgMS40ODQ3MywgMS44NTA2LCAyLjIxNTEzIiwgXAotICAgICAgICAgICIwLjEwOTg4OSwgMC40NjE2MTUsIDAuNzUyMjkzLCAxLjExODQsIDEuNDg0NywgMS44NTA2MSwgMi4yMTU2NCIsIFwKLSAgICAgICAgICAiMC4xMDk4MjcsIDAuNDYxNTQzLCAwLjc1MTA0MiwgMS4xMTg0MSwgMS40ODQ2OSwgMS44NTA4NywgMi4yMTg2NSIsIFwKLSAgICAgICAgICAiMC4xMDk5NzgsIDAuNDYxNjM3LCAwLjc1MTA4OCwgMS4xMTU0OSwgMS40ODQ3NSwgMS44NTEzMiwgMi4yMTUwNSIsIFwKLSAgICAgICAgICAiMC4xMDk5ODMsIDAuNDYxNTU5LCAwLjc1MTEyMywgMS4xMTYzMSwgMS40ODQ2NiwgMS44NTExNiwgMi4yMTgyIiwgXAotICAgICAgICAgICIwLjEwOTk3NiwgMC40NjE2NDUsIDAuNzUxMDkzLCAxLjExNTQ5LCAxLjQ4NDc0LCAxLjg1MTI2LCAyLjIxNDk2Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE2MTUxNSwgMC4zNzM5NTUsIDAuNTM4OTYyLCAwLjc0NTA5MiwgMC45NTEyNzYsIDEuMTU3NTEsIDEuMzYzNTQiLCBcCi0gICAgICAgICAgIjAuMTcyMTM4LCAwLjM4NDczNywgMC41NDk3MjEsIDAuNzU1OTE3LCAwLjk2MjAzOSwgMS4xNjgzNiwgMS4zNzQ1MSIsIFwKLSAgICAgICAgICAiMC4xODU2MzcsIDAuMzk4MTY1LCAwLjU2MzE5NSwgMC43NjkzODgsIDAuOTc1NDc1LCAxLjE4MTg5LCAxLjM4NzczIiwgXAotICAgICAgICAgICIwLjE5ODgzOSwgMC40MTE1MTYsIDAuNTc2NTI5LCAwLjc4MjcwOSwgMC45ODg4NTQsIDEuMTk1MDMsIDEuNDAxMTQiLCBcCi0gICAgICAgICAgIjAuMjExOTkzLCAwLjQyNDYzOCwgMC41ODk2NTMsIDAuNzk1ODQ0LCAxLjAwMTk2LCAxLjIwODMsIDEuNDE0NTkiLCBcCi0gICAgICAgICAgIjAuMjMzMjIxLCAwLjQ0NTgyNiwgMC42MTA4NzQsIDAuODE3MDk2LCAxLjAyMzE4LCAxLjIyOTY0LCAxLjQzNTQ2IiwgXAotICAgICAgICAgICIwLjI1MTYyNSwgMC40NjQyMzYsIDAuNjI5MjgyLCAwLjgzNTQ4NiwgMS4wNDE2NCwgMS4yNDc4NCwgMS40NTM5NCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTg2NDIsIDAuNTE1MDQxLCAwLjgzOTMyNywgMS4yNTIwOCwgMS42NjM0MSwgMi4wNjcyMywgMi40Nzk2NiIsIFwKLSAgICAgICAgICAiMC4xMTg1MTQsIDAuNTE1MDMsIDAuODQxNzA0LCAxLjI1MjE3LCAxLjY2MTA3LCAyLjA2ODk2LCAyLjQ3ODgiLCBcCi0gICAgICAgICAgIjAuMTE4NTQzLCAwLjUxNDk2NCwgMC44NDA1MTMsIDEuMjUyMTksIDEuNjYxOTIsIDIuMDcwOTcsIDIuNDg2NjUiLCBcCi0gICAgICAgICAgIjAuMTE4NTE5LCAwLjUxNTAzNCwgMC44MzkwOTgsIDEuMjQ5MzcsIDEuNjU5MjYsIDIuMDY5NjksIDIuNDc4NzQiLCBcCi0gICAgICAgICAgIjAuMTE4NTg4LCAwLjUxNTAxNSwgMC44NDE4NjQsIDEuMjUyMTcsIDEuNjYxMjgsIDIuMDY5MTQsIDIuNDgxOTkiLCBcCi0gICAgICAgICAgIjAuMTE4NTY4LCAwLjUxNDUwNCwgMC44MzkzOTYsIDEuMjUyMiwgMS42NjA0OCwgMi4wNzExMywgMi40ODY2NyIsIFwKLSAgICAgICAgICAiMC4xMTg3NDgsIDAuNTE1MDA3LCAwLjgzOTUwMywgMS4yNDg0OCwgMS42NTkyNiwgMi4wNzAyMiwgMi40Nzg2MiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNjgwMDYsIDAuMzU1MDgsIDAuNDk4Njk3LCAwLjY3ODExOSwgMC44NTc1MTMsIDEuMDM2OTMsIDEuMjE2MjkiLCBcCi0gICAgICAgICAgIjAuMTc5OTU2LCAwLjM2NzEzNSwgMC41MTA3NDcsIDAuNjkwMTcsIDAuODY5NDgxLCAxLjA0ODk3LCAxLjIyODM1IiwgXAotICAgICAgICAgICIwLjE5NTI3LCAwLjM4MjM3NSwgMC41MjYwMTksIDAuNzA1NDI3LCAwLjg4NDc0MSwgMS4wNjQxNywgMS4yNDM2MiIsIFwKLSAgICAgICAgICAiMC4yMTAwMiwgMC4zOTY5NzUsIDAuNTQwNTc4LCAwLjcyMDAxMywgMC44OTkzNTMsIDEuMDc4ODIsIDEuMjU4MTYiLCBcCi0gICAgICAgICAgIjAuMjI0MDc1LCAwLjQxMTAyMiwgMC41NTQ2MzksIDAuNzM0MDcsIDAuOTEzNDE0LCAxLjA5Mjg4LCAxLjI3MjIzIiwgXAotICAgICAgICAgICIwLjI0NDQ2NiwgMC40MzE0NCwgMC41NzUwNDgsIDAuNzU0NTQ4LCAwLjkzMzgyNiwgMS4xMTMzLCAxLjI5MjYzIiwgXAotICAgICAgICAgICIwLjI1OTg3OCwgMC40NDY4MTEsIDAuNTkwNDIxLCAwLjc2OTgzNSwgMC45NDkzNTIsIDEuMTI4NzYsIDEuMzA4MDciKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTExNCwgMC40NjIyMjksIDAuNzUxMTM5LCAxLjExNTM4LCAxLjQ4NDQxLCAxLjg0NzkyLCAyLjIxMjU0IiwgXAotICAgICAgICAgICIwLjExMTQwOCwgMC40NjIyNDksIDAuNzUxMTUzLCAxLjExNTI5LCAxLjQ4MTU1LCAxLjg0Nzk1LCAyLjIxMjQ3IiwgXAotICAgICAgICAgICIwLjExMTQ4OCwgMC40NjIyMjMsIDAuNzUxMTEsIDEuMTE3NzEsIDEuNDgzNjQsIDEuODUxMjMsIDIuMjEyNDciLCBcCi0gICAgICAgICAgIjAuMTExNTc2LCAwLjQ2MjIzMSwgMC43NTEyMTcsIDEuMTE1MzcsIDEuNDg0MjEsIDEuODQ3OTgsIDIuMjEyNiIsIFwKLSAgICAgICAgICAiMC4xMTE1NzgsIDAuNDYyMjMsIDAuNzUxMTc1LCAxLjExNTMxLCAxLjQ4NDIxLCAxLjg0Nzk0LCAyLjIxMjYxIiwgXAotICAgICAgICAgICIwLjExMTUzMiwgMC40NjIyMjgsIDAuNzUxMTk2LCAxLjExNDk4LCAxLjQ4NDIsIDEuODQ3OTksIDIuMjEyNiIsIFwKLSAgICAgICAgICAiMC4xMTEzOTIsIDAuNDYyMTY3LCAwLjc1MTA5MSwgMS4xMTc3MiwgMS40ODAxNiwgMS44NDcwNSwgMi4yMTIyNCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMDEwMSwgMC40MTI3NTgsIDAuNTc3OTIzLCAwLjc4NDE0MiwgMC45OTAyNjUsIDEuMTk2MzksIDEuNDAyNTQiLCBcCi0gICAgICAgICAgIjAuMjEzNTE1LCAwLjQyNTExNCwgMC41OTAyNDksIDAuNzk2NDk1LCAxLjAwMjYxLCAxLjIwODc2LCAxLjQxNDkxIiwgXAotICAgICAgICAgICIwLjIyODcyOSwgMC40NDA0OTksIDAuNjA1NjYsIDAuODExOTIxLCAxLjAxODAzLCAxLjIyNDE1LCAxLjQzMDI5IiwgXAotICAgICAgICAgICIwLjI0Mzk3LCAwLjQ1NTU2OCwgMC42MjA3LCAwLjgyNjk0OSwgMS4wMzMwNiwgMS4yMzkyMSwgMS40NDUzMSIsIFwKLSAgICAgICAgICAiMC4yNTgyNTYsIDAuNDY5ODczLCAwLjYzNTAwNywgMC44NDEyNTMsIDEuMDQ3MzcsIDEuMjUzNTIsIDEuNDU5NjIiLCBcCi0gICAgICAgICAgIjAuMjc4OTA2LCAwLjQ5MDUxNSwgMC42NTU2NTMsIDAuODYxOTAyLCAxLjA2ODAyLCAxLjI3NDE2LCAxLjQ4MDI3IiwgXAotICAgICAgICAgICIwLjI5NTIxNiwgMC41MDY4MzYsIDAuNjcxOTczLCAwLjg3ODI4NywgMS4wODQzMywgMS4yOTA0OCwgMS40OTY3NyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTcxNjQsIDAuNTE0NjczLCAwLjgzOTgxLCAxLjI1MTgxLCAxLjY2Mjk0LCAyLjA3MDEzLCAyLjQ3NzYzIiwgXAotICAgICAgICAgICIwLjExNzExNywgMC41MTQ2NzIsIDAuODM5MDM2LCAxLjI1MTc4LCAxLjY2MzI1LCAyLjA3MDc3LCAyLjQ4NDk3IiwgXAotICAgICAgICAgICIwLjExNzA3MywgMC41MTM4MiwgMC44NDA2NzUsIDEuMjUxNDEsIDEuNjYzMDksIDIuMDcxMzYsIDIuNDg0NDEiLCBcCi0gICAgICAgICAgIjAuMTE3MTA4LCAwLjUxNDUzNSwgMC44Mzk2ODgsIDEuMjUxNjQsIDEuNjYzMjMsIDIuMDcwNzYsIDIuNDgyMzgiLCBcCi0gICAgICAgICAgIjAuMTE3MDQ1LCAwLjUxNDUyOSwgMC44MzkyODgsIDEuMjUxNjIsIDEuNjYzMjcsIDIuMDcwNzYsIDIuNDg1NzciLCBcCi0gICAgICAgICAgIjAuMTE3MDQ3LCAwLjUxNDUyMiwgMC44Mzk3MDksIDEuMjUxNiwgMS42NjMyMSwgMi4wNzA3NywgMi40ODA5NyIsIFwKLSAgICAgICAgICAiMC4xMTY5NzcsIDAuNTE0NTE2LCAwLjgzODkzNCwgMS4yNDg2NSwgMS42NjMyNSwgMi4wNzA1NywgMi40Nzk0NCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzY2NSwgMC4wMDM3MTcsIDAuMDAzNzI0LCAwLjAwMzcyNywgMC4wMDM3MjksIDAuMDAzNzMxLCAwLjAwMzczMSIsIFwKLSAgICAgICAgICAiMC4wMDM2NTMsIDAuMDAzNzA2LCAwLjAwMzcxMywgMC4wMDM3MTYsIDAuMDAzNzE5LCAwLjAwMzcxOSwgMC4wMDM3MjEiLCBcCi0gICAgICAgICAgIjAuMDAzNjQ1LCAwLjAwMzY5NywgMC4wMDM3MDQsIDAuMDAzNzA3LCAwLjAwMzcwOSwgMC4wMDM3MTEsIDAuMDAzNzExIiwgXAotICAgICAgICAgICIwLjAwMzYzOSwgMC4wMDM2OTEsIDAuMDAzNjk4LCAwLjAwMzcwMiwgMC4wMDM3MDQsIDAuMDAzNzA2LCAwLjAwMzcwNyIsIFwKLSAgICAgICAgICAiMC4wMDM2MzYsIDAuMDAzNjg4LCAwLjAwMzY5NCwgMC4wMDM2OTksIDAuMDAzNzAxLCAwLjAwMzcwMiwgMC4wMDM3MDMiLCBcCi0gICAgICAgICAgIjAuMDAzNjMyLCAwLjAwMzY4NSwgMC4wMDM2OSwgMC4wMDM2OTUsIDAuMDAzNjk3LCAwLjAwMzY5OCwgMC4wMDM3IiwgXAotICAgICAgICAgICIwLjAwMzYzLCAwLjAwMzY4NCwgMC4wMDM2ODksIDAuMDAzNjkzLCAwLjAwMzY5NSwgMC4wMDM2OTcsIDAuMDAzNjk3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzNTI3LCAwLjAwMzU5MywgMC4wMDM2MDIsIDAuMDAzNjA3LCAwLjAwMzYxLCAwLjAwMzYxMSwgMC4wMDM2MTIiLCBcCi0gICAgICAgICAgIjAuMDAzNTExLCAwLjAwMzU3OCwgMC4wMDM1ODcsIDAuMDAzNTkyLCAwLjAwMzU5NCwgMC4wMDM1OTYsIDAuMDAzNTk3IiwgXAotICAgICAgICAgICIwLjAwMzUsIDAuMDAzNTY3LCAwLjAwMzU3NiwgMC4wMDM1ODEsIDAuMDAzNTg0LCAwLjAwMzU4NSwgMC4wMDM1ODYiLCBcCi0gICAgICAgICAgIjAuMDAzNDk0LCAwLjAwMzU2MSwgMC4wMDM1NywgMC4wMDM1NzUsIDAuMDAzNTc3LCAwLjAwMzU3OSwgMC4wMDM1OCIsIFwKLSAgICAgICAgICAiMC4wMDM0OSwgMC4wMDM1NTcsIDAuMDAzNTY2LCAwLjAwMzU3MSwgMC4wMDM1NzQsIDAuMDAzNTc1LCAwLjAwMzU3NiIsIFwKLSAgICAgICAgICAiMC4wMDM0ODcsIDAuMDAzNTU0LCAwLjAwMzU2MywgMC4wMDM1NjgsIDAuMDAzNTcxLCAwLjAwMzU3MiwgMC4wMDM1NzQiLCBcCi0gICAgICAgICAgIjAuMDAzNDg3LCAwLjAwMzU1NCwgMC4wMDM1NjMsIDAuMDAzNTY4LCAwLjAwMzU3MSwgMC4wMDM1NzIsIDAuMDAzNTczIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyMTEzLCAwLjAwMjE2MSwgMC4wMDIxNjgsIDAuMDAyMTcsIDAuMDAyMTc0LCAwLjAwMjE3MywgMC4wMDIxNzUiLCBcCi0gICAgICAgICAgIjAuMDAyMDg4LCAwLjAwMjEzOCwgMC4wMDIxNDQsIDAuMDAyMTQ3LCAwLjAwMjE0OCwgMC4wMDIxNSwgMC4wMDIxNSIsIFwKLSAgICAgICAgICAiMC4wMDIwNjksIDAuMDAyMTIsIDAuMDAyMTI2LCAwLjAwMjEyOSwgMC4wMDIxMzEsIDAuMDAyMTMyLCAwLjAwMjEzMyIsIFwKLSAgICAgICAgICAiMC4wMDIwNTcsIDAuMDAyMTA5LCAwLjAwMjExNSwgMC4wMDIxMTksIDAuMDAyMTIxLCAwLjAwMjEyMiwgMC4wMDIxMjMiLCBcCi0gICAgICAgICAgIjAuMDAyMDQ3LCAwLjAwMjEwMiwgMC4wMDIxMDcsIDAuMDAyMTEzLCAwLjAwMjExNCwgMC4wMDIxMTYsIDAuMDAyMTE2IiwgXAotICAgICAgICAgICIwLjAwMjAzNywgMC4wMDIwOTQsIDAuMDAyMTAxLCAwLjAwMjEwNywgMC4wMDIxMDksIDAuMDAyMTEsIDAuMDAyMTExIiwgXAotICAgICAgICAgICIwLjAwMjAzMywgMC4wMDIwOTEsIDAuMDAyMDk5LCAwLjAwMjEwNiwgMC4wMDIxMDgsIDAuMDAyMTEsIDAuMDAyMTExIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzMDEzLCAwLjAwMzA3OSwgMC4wMDMwODgsIDAuMDAzMDkzLCAwLjAwMzA5NiwgMC4wMDMwOTgsIDAuMDAzMDk5IiwgXAotICAgICAgICAgICIwLjAwMzAwNiwgMC4wMDMwNzEsIDAuMDAzMDgxLCAwLjAwMzA4NiwgMC4wMDMwODksIDAuMDAzMDksIDAuMDAzMDkxIiwgXAotICAgICAgICAgICIwLjAwMzAwMywgMC4wMDMwNjgsIDAuMDAzMDc4LCAwLjAwMzA4MywgMC4wMDMwODUsIDAuMDAzMDg3LCAwLjAwMzA4OCIsIFwKLSAgICAgICAgICAiMC4wMDMwMDEsIDAuMDAzMDY2LCAwLjAwMzA3NSwgMC4wMDMwODEsIDAuMDAzMDgzLCAwLjAwMzA4NSwgMC4wMDMwODYiLCBcCi0gICAgICAgICAgIjAuMDAzMDAxLCAwLjAwMzA2NiwgMC4wMDMwNzUsIDAuMDAzMDgsIDAuMDAzMDgzLCAwLjAwMzA4NSwgMC4wMDMwODYiLCBcCi0gICAgICAgICAgIjAuMDAzMDAxLCAwLjAwMzA2NiwgMC4wMDMwNzYsIDAuMDAzMDgxLCAwLjAwMzA4NCwgMC4wMDMwODUsIDAuMDAzMDg2IiwgXAotICAgICAgICAgICIwLjAwMzAwMiwgMC4wMDMwNjgsIDAuMDAzMDc3LCAwLjAwMzA4MiwgMC4wMDMwODUsIDAuMDAzMDg2LCAwLjAwMzA4OCIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogWE9SMlg0ICoKLSAqIC0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoWE9SMlg0KSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMjcwOTg7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDU5MTk3MzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA1OTE2MTM7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNTkxOTczOwotICB9Ci0gIHBpbihCKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDEzNzYzNDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDEzNzU1ODsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDEzNzYzNDsKLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjQ5MzAzOTsKLSAgICBmdW5jdGlvbiA6ICIoQV5CKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMjA5MjEsIDAuMzcwOTY3LCAwLjQ5OTE3NywgMC41ODk4OTEsIDAuNzM0NzgyLCAwLjg2MTU2OSwgMS4wNDI3OCIsIFwKLSAgICAgICAgICAiMC4yMzI3NjgsIDAuMzgyNzU4LCAwLjUxMDk1NCwgMC42MDE3MiwgMC43NDY2MTIsIDAuODczMzg3LCAxLjA1NDQ3IiwgXAotICAgICAgICAgICIwLjI0NzkyMSwgMC4zOTc3NjUsIDAuNTI1OTkyLCAwLjYxNjY5NywgMC43NjE2NCwgMC44ODg0MTEsIDEuMDY5NiIsIFwKLSAgICAgICAgICAiMC4yNjMwOTEsIDAuNDEzMDM3LCAwLjU0MTI4LCAwLjYzMTk3MywgMC43NzY5MTEsIDAuOTAzNjc3LCAxLjA4NDg4IiwgXAotICAgICAgICAgICIwLjI3ODA2OCwgMC40MjgwOTYsIDAuNTU2MzEsIDAuNjQ3MDI4LCAwLjc5MTkyMiwgMC45MTg3NjQsIDEuMDk5OTQiLCBcCi0gICAgICAgICAgIjAuMzAyNTg4LCAwLjQ1MjU4NiwgMC41ODA3OSwgMC42NzE1MywgMC44MTY0MzUsIDAuOTQzMjM1LCAxLjEyNDQ0IiwgXAotICAgICAgICAgICIwLjMyMzc3NCwgMC40NzM2NzYsIDAuNjAxODksIDAuNjkyNjU4LCAwLjgzNzU1NSwgMC45NjQzMzMsIDEuMTQ1NDIiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTEzMzIsIDAuMzMzNDU2LCAwLjU4MzI1NSwgMC43NjMxMzYsIDEuMDU0NzMsIDEuMzEyMzcsIDEuNjc4OTgiLCBcCi0gICAgICAgICAgIjAuMDkxMjg0LCAwLjMzMzQwOCwgMC41ODMyMTEsIDAuNzY0NzU5LCAxLjA1NTY2LCAxLjMxMjQ5LCAxLjY4MDM3IiwgXAotICAgICAgICAgICIwLjA5MTIyMSwgMC4zMzM0ODEsIDAuNTgzMjE2LCAwLjc2MzY4MiwgMS4wNTU2MywgMS4zMTI0NCwgMS42ODYzNyIsIFwKLSAgICAgICAgICAiMC4wOTE1NTUsIDAuMzMzNDQ3LCAwLjU4MzE0MiwgMC43NjQ1NzksIDEuMDU1NTMsIDEuMzEyNDMsIDEuNjc4OTciLCBcCi0gICAgICAgICAgIjAuMDkxMjk0LCAwLjMzMzQ0NiwgMC41ODMyNCwgMC43NjQ4OCwgMS4wNTU4LCAxLjMxNDgyLCAxLjY3ODk3IiwgXAotICAgICAgICAgICIwLjA5MTQwOSwgMC4zMzM0NTUsIDAuNTgzMTk5LCAwLjc2NDc2LCAxLjA1NzAyLCAxLjMxMjM3LCAxLjY3ODk3IiwgXAotICAgICAgICAgICIwLjA5MTI4MSwgMC4zMzM0MzUsIDAuNTgzMjI1LCAwLjc2NDc4MiwgMS4wNTU2NywgMS4zMTI0NywgMS42ODA0OSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIwNzgwMSwgMC4zNzM4NjcsIDAuNTIwNjA4LCAwLjYyNDczMiwgMC43OTEyMSwgMC45MzY3ODYsIDEuMTQ0ODgiLCBcCi0gICAgICAgICAgIjAuMjE5MTg3LCAwLjM4NTI4NSwgMC41MzIwMTMsIDAuNjM2MTQzLCAwLjgwMjYxOSwgMC45NDgwOTksIDEuMTU2MDYiLCBcCi0gICAgICAgICAgIjAuMjMzOTE3LCAwLjM5OTk3OSwgMC41NDY3MjQsIDAuNjUwODQ4LCAwLjgxNzMyOCwgMC45NjI5MDUsIDEuMTcwOTkiLCBcCi0gICAgICAgICAgIjAuMjQ3OTU4LCAwLjQxNDAwMywgMC41NjA3MzIsIDAuNjY0ODgxLCAwLjgzMTM2NSwgMC45NzY5NDMsIDEuMTg0OTQiLCBcCi0gICAgICAgICAgIjAuMjYyODIxLCAwLjQyODk4MywgMC41NzU3MTIsIDAuNjc5ODI3LCAwLjg0NjI4NSwgMC45OTE5NTgsIDEuMTk5ODQiLCBcCi0gICAgICAgICAgIjAuMjg2MjI4LCAwLjQ1MjI5LCAwLjU5OTAwNiwgMC43MDMxNzcsIDAuODY5NjA5LCAxLjAxNTI1LCAxLjIyMzE0IiwgXAotICAgICAgICAgICIwLjMwNjUyNywgMC40NzI3MjYsIDAuNjE5NDQ5LCAwLjcyMzU5LCAwLjg5MDAwMywgMS4wMzU3MiwgMS4yNDM2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDkzNzc3LCAwLjM2NzU2LCAwLjY1MDMzMSwgMC44NTU2NzQsIDEuMTgwNSwgMS40NzQ3LCAxLjg4MTY3IiwgXAotICAgICAgICAgICIwLjA5MzgyLCAwLjM2NzU2NCwgMC42NTAzNDcsIDAuODU1NjczLCAxLjE4MDczLCAxLjQ3NDc3LCAxLjg4ODgyIiwgXAotICAgICAgICAgICIwLjA5Mzc3NywgMC4zNjc1NjMsIDAuNjUwMzE3LCAwLjg1NTY3OCwgMS4xODA1NiwgMS40NzQ3LCAxLjg4MTc3IiwgXAotICAgICAgICAgICIwLjA5Mzc2NSwgMC4zNjc1NjMsIDAuNjQ5Njc2LCAwLjg1NTY4MywgMS4xODE3NywgMS40NzQ3LCAxLjg4MzMyIiwgXAotICAgICAgICAgICIwLjA5Mzc0MSwgMC4zNjc1NzUsIDAuNjUwMzcyLCAwLjg1NTQzNiwgMS4xODUxOCwgMS40NzA5MywgMS44ODg5IiwgXAotICAgICAgICAgICIwLjA5Mzc1MiwgMC4zNjc1NDcsIDAuNjUwMTY5LCAwLjg1NTY3NywgMS4xODM3MiwgMS40NzQ3MSwgMS44ODg5IiwgXAotICAgICAgICAgICIwLjA5MzY1OCwgMC4zNjc1NzIsIDAuNjUwMzY4LCAwLjg1NTY5OSwgMS4xODI0MSwgMS40NzAyMiwgMS44ODg5MSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIwNTgyMywgMC4zNDM5NzQsIDAuNDcxMjc4LCAwLjU2MTk0OSwgMC43MDcwNDEsIDAuODMzODA2LCAxLjAxNDg5IiwgXAotICAgICAgICAgICIwLjIxNzI4MSwgMC4zNTUzNTUsIDAuNDgyNjU2LCAwLjU3MzMyNywgMC43MTg0MTgsIDAuODQ1MTg1LCAxLjAyNjI3IiwgXAotICAgICAgICAgICIwLjIzMTk5NCwgMC4zNzAxMTcsIDAuNDk3NDE4LCAwLjU4ODA5MSwgMC43MzMxNzUsIDAuODU5OTQ1LCAxLjA0MTA0IiwgXAotICAgICAgICAgICIwLjI0Njc2OSwgMC4zODQ4OTIsIDAuNTEyMjA1LCAwLjYwMjg3NywgMC43NDc5NiwgMC44NzQ3OTQsIDEuMDU1ODUiLCBcCi0gICAgICAgICAgIjAuMjYxMjk2LCAwLjM5OTQ0OCwgMC41MjY3NTIsIDAuNjE3NDI2LCAwLjc2MjUxNiwgMC44ODkyODMsIDEuMDcwMzciLCBcCi0gICAgICAgICAgIjAuMjgzMTU0LCAwLjQyMTI3MSwgMC41NDg1NzMsIDAuNjM5MjQ1LCAwLjc4NDMzLCAwLjkxMTEsIDEuMDkyMTkiLCBcCi0gICAgICAgICAgIjAuMzAwNjM2LCAwLjQzODc4LCAwLjU2NjA4NSwgMC42NTY3NjgsIDAuODAxODQ3LCAwLjkyODYzMywgMS4xMDk3NiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3NTY5MiwgMC4zMTk2ODksIDAuNTczMjY2LCAwLjc1NjU2NSwgMS4wNTI4NywgMS4zMTA5NSwgMS42Nzk5NCIsIFwKLSAgICAgICAgICAiMC4wNzU4OTksIDAuMzE5Njg0LCAwLjU3MzI4NiwgMC43NTY1NzEsIDEuMDUyODUsIDEuMzEwOTUsIDEuNjc5OTEiLCBcCi0gICAgICAgICAgIjAuMDc1NjU2LCAwLjMxOTY0NiwgMC41NzMyNDgsIDAuNzU2NTIsIDEuMDUyODUsIDEuMzEwODgsIDEuNjgwMDYiLCBcCi0gICAgICAgICAgIjAuMDc1NjgyLCAwLjMxOTc2OCwgMC41NzI5MSwgMC43NTY1NzMsIDEuMDUyODIsIDEuMzExMjMsIDEuNjgwMTgiLCBcCi0gICAgICAgICAgIjAuMDc1NzExLCAwLjMxOTY3MywgMC41NzMyNzYsIDAuNzU2NTYyLCAxLjA1Mjg2LCAxLjMxMDk0LCAxLjY3OTk0IiwgXAotICAgICAgICAgICIwLjA3NTY2NCwgMC4zMTk2NDMsIDAuNTczMjk1LCAwLjc1NjU2OCwgMS4wNTI4MiwgMS4zMTA5MSwgMS42Nzk4OCIsIFwKLSAgICAgICAgICAiMC4wNzU3MjYsIDAuMzE5NjcsIDAuNTczMjQsIDAuNzU3Njg5LCAxLjA1MjgsIDEuMzA3OTMsIDEuNjgwMjkiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMTAxNTcsIDAuMzY2MTcyLCAwLjUxMjIyMiwgMC42MTYzMzgsIDAuNzgyODMxLCAwLjkyODM5MywgMS4xMzYzMSIsIFwKLSAgICAgICAgICAiMC4yMjE4NjgsIDAuMzc3ODE0LCAwLjUyMzg2LCAwLjYyODAyMSwgMC43OTQ0NTksIDAuOTQwMDI4LCAxLjE0Nzk4IiwgXAotICAgICAgICAgICIwLjIzNzI3MywgMC4zOTMyNjQsIDAuNTM5MzA4LCAwLjY0MzM5MSwgMC44MDk4ODgsIDAuOTU1NDYzLCAxLjE2MzQxIiwgXAotICAgICAgICAgICIwLjI1MjQ2NSwgMC40MDg2MDYsIDAuNTU0NjMxLCAwLjY1ODc1OCwgMC44MjUxOTgsIDAuOTcwODM4LCAxLjE3ODgxIiwgXAotICAgICAgICAgICIwLjI2NzY1NCwgMC40MjM3ODgsIDAuNTY5ODE0LCAwLjY3Mzk0MiwgMC44NDAzNjgsIDAuOTg2MDEzLCAxLjE5Mzk4IiwgXAotICAgICAgICAgICIwLjI5MTc0NSwgMC40NDc3OTYsIDAuNTkzODU5LCAwLjY5Nzk4MSwgMC44NjQ0NjksIDEuMDEwMDMsIDEuMjE3OTciLCBcCi0gICAgICAgICAgIjAuMzExNjU5LCAwLjQ2NzcxOCwgMC42MTM3ODIsIDAuNzE3OTA0LCAwLjg4NDM5MywgMS4wMjk5NiwgMS4yMzc5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc5NDA1LCAwLjM1NTk1MywgMC42NDE0MjUsIDAuODQ3MywgMS4xODAxNiwgMS40NzA0MiwgMS44ODU5NCIsIFwKLSAgICAgICAgICAiMC4wNzkyODksIDAuMzU1NzgxLCAwLjY0MTk5OCwgMC44NDgxMDUsIDEuMTgwMjEsIDEuNDcwNDgsIDEuODgxNDEiLCBcCi0gICAgICAgICAgIjAuMDc5MzcxLCAwLjM1NjE3MywgMC42NDMyMjEsIDAuODQ5NTAyLCAxLjE3OTY4LCAxLjQ3MDU2LCAxLjg4NTY1IiwgXAotICAgICAgICAgICIwLjA3OTI0OSwgMC4zNTYyMDcsIDAuNjQxNzMzLCAwLjg0Njc2OCwgMS4xNzg4NSwgMS40Njk0NiwgMS44ODE3NCIsIFwKLSAgICAgICAgICAiMC4wNzkyNSwgMC4zNTYxNjcsIDAuNjQxNjUyLCAwLjg0Njc3NywgMS4xODA3MSwgMS40Njk3MSwgMS44ODM4NiIsIFwKLSAgICAgICAgICAiMC4wNzkzOTQsIDAuMzU1ODg5LCAwLjY0MTI0MSwgMC44NDgzMTksIDEuMTgwMDcsIDEuNDcwMzMsIDEuODgyNTYiLCBcCi0gICAgICAgICAgIjAuMDc5Mzg3LCAwLjM1NTg0NSwgMC42NDExNDUsIDAuODQ4MzA4LCAxLjE4MDA3LCAxLjQ3MDM5LCAxLjg4MjcxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTQ0ODgyLCAwLjI4MjkyMSwgMC40MTAyMjksIDAuNTAwODg4LCAwLjY0NTk1OCwgMC43NzI3MywgMC45NTM4MjkiLCBcCi0gICAgICAgICAgIjAuMTU1ODgyLCAwLjI5Mzk2LCAwLjQyMTI3NywgMC41MTE5NiwgMC42NTY5NzcsIDAuNzgzODA5LCAwLjk2NDkxOSIsIFwKLSAgICAgICAgICAiMC4xNjkyMzMsIDAuMzA3Mjk2LCAwLjQzNDYyMSwgMC41MjUzMzEsIDAuNjcwMzA3LCAwLjc5NzE1OCwgMC45NzgyNjEiLCBcCi0gICAgICAgICAgIjAuMTgyNjg4LCAwLjMyMDc4NywgMC40NDgwNzUsIDAuNTM4ODA2LCAwLjY4Mzc3LCAwLjgxMDYwNSwgMC45OTE3MjciLCBcCi0gICAgICAgICAgIjAuMTk1OTEzLCAwLjMzNDA0NCwgMC40NjEzNywgMC41NTIwNTMsIDAuNjk3MTM3LCAwLjgyMzkzNCwgMS4wMDUwMyIsIFwKLSAgICAgICAgICAiMC4yMTc0NTIsIDAuMzU1NTg0LCAwLjQ4MjksIDAuNTczNTg2LCAwLjcxODY4NCwgMC44NDU0NTUsIDEuMDI2NTUiLCBcCi0gICAgICAgICAgIjAuMjM2Mzk4LCAwLjM3NDU3MiwgMC41MDE4NzQsIDAuNTkyNjE1LCAwLjczNzY0LCAwLjg2NDQ3MSwgMS4wNDU2OSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3NTM4NSwgMC4zMTk1NDUsIDAuNTczMDM5LCAwLjc1NTk4NSwgMS4wNTI4NSwgMS4zMTA5OCwgMS42NzkzNyIsIFwKLSAgICAgICAgICAiMC4wNzU0MTIsIDAuMzE5ODk2LCAwLjU3MzIxNSwgMC43NTY1NTMsIDEuMDUwODMsIDEuMzEwOSwgMS42Nzc3NyIsIFwKLSAgICAgICAgICAiMC4wNzU0NjIsIDAuMzE5OTA3LCAwLjU3MzIzNiwgMC43NTc4NjMsIDEuMDUyNDIsIDEuMzA4NjcsIDEuNjgwMDYiLCBcCi0gICAgICAgICAgIjAuMDc1NTExLCAwLjMxOTY2NSwgMC41NzMyMzYsIDAuNzU3OTI0LCAxLjA1MjQzLCAxLjMwODgxLCAxLjY4MDA5IiwgXAotICAgICAgICAgICIwLjA3NTUxMSwgMC4zMTk5MiwgMC41NzMyOTEsIDAuNzU3NjYyLCAxLjA1MjgxLCAxLjMwODE1LCAxLjY4MDE3IiwgXAotICAgICAgICAgICIwLjA3NTY3MSwgMC4zMTk3NTEsIDAuNTczMjcxLCAwLjc1NjYwNywgMS4wNTI4NCwgMS4zMTA5LCAxLjY3OTgzIiwgXAotICAgICAgICAgICIwLjA3NTg4MiwgMC4zMTk2MjgsIDAuNTczNjIsIDAuNzU3OTAzLCAxLjA1MjYzLCAxLjMxMDk2LCAxLjY3NjU1Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTY5NzEzLCAwLjMzNTc3NSwgMC40ODI0OTEsIDAuNTg2NTc5LCAwLjc1MzAxOSwgMC44OTg3MjIsIDEuMTA2NTkiLCBcCi0gICAgICAgICAgIjAuMTc5ODQ1LCAwLjM0NTkzNSwgMC40OTI2MjIsIDAuNTk2NzE3LCAwLjc2MzE4OSwgMC45MDg4NTEsIDEuMTE2NzEiLCBcCi0gICAgICAgICAgIjAuMTkyNDU3LCAwLjM1ODYzMSwgMC41MDUzMzcsIDAuNjA5NDM1LCAwLjc3NTg3MywgMC45MjE1ODUsIDEuMTI5NDUiLCBcCi0gICAgICAgICAgIjAuMjA0OTU0LCAwLjM3MTAyOCwgMC41MTc3MTcsIDAuNjIxODU2LCAwLjc4ODI2OSwgMC45MzM5NTQsIDEuMTQxODIiLCBcCi0gICAgICAgICAgIjAuMjE3MzQxLCAwLjM4MzUwNywgMC41MzAyMDUsIDAuNjM0MzQ0LCAwLjgwMDczLCAwLjk0NjQ3NywgMS4xNTQzNCIsIFwKLSAgICAgICAgICAiMC4yMzc0MDMsIDAuNDAzNDc1LCAwLjU1MDE4OSwgMC42NTQzNTksIDAuODIwNzU3LCAwLjk2NjQ0MywgMS4xNzQzMiIsIFwKLSAgICAgICAgICAiMC4yNTQ5NDcsIDAuNDIwOTU2LCAwLjU2NzY4LCAwLjY3MTgyNCwgMC44MzgyNTgsIDAuOTgzODM0LCAxLjE5MTg2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDkzMzkzLCAwLjM2NzQwOSwgMC42NDk4MjQsIDAuODU0OTU2LCAxLjE4NTEsIDEuNDY5MTUsIDEuODg4OTMiLCBcCi0gICAgICAgICAgIjAuMDkzMzMxLCAwLjM2NzQzOSwgMC42NDk4MzcsIDAuODU1MDkzLCAxLjE4NTIyLCAxLjQ2OTQyLCAxLjg4ODkzIiwgXAotICAgICAgICAgICIwLjA5MzI1OSwgMC4zNjc0NzgsIDAuNjUwMDM4LCAwLjg1NTExNCwgMS4xODUyMSwgMS40NzEzNywgMS44ODg5NSIsIFwKLSAgICAgICAgICAiMC4wOTMzMDEsIDAuMzY3NDIzLCAwLjY0OTc5OCwgMC44NTMxNTgsIDEuMTgzODIsIDEuNDcwMDcsIDEuODg4OTMiLCBcCi0gICAgICAgICAgIjAuMDkzMjI3LCAwLjM2NzQ3MSwgMC42NTAwODQsIDAuODUzNDQyLCAxLjE4NDc2LCAxLjQ3MDExLCAxLjg4ODk1IiwgXAotICAgICAgICAgICIwLjA5MzI5NiwgMC4zNjc0NDMsIDAuNjQ5NzY5LCAwLjg1MjMyNSwgMS4xODM0NCwgMS40NzAyMiwgMS44ODg5MiIsIFwKLSAgICAgICAgICAiMC4wOTMyMDUsIDAuMzY3NDg0LCAwLjY1MDA3MSwgMC44NTUzNDksIDEuMTgxNzcsIDEuNDc0NTksIDEuODg4OTYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNzk1NTksIDAuMzI5NTE2LCAwLjQ1Nzc3LCAwLjU0ODQ5NCwgMC42OTMzODMsIDAuODIwMTM1LCAxLjAwMTIxIiwgXAotICAgICAgICAgICIwLjE5MTc4MSwgMC4zNDE2ODQsIDAuNDY5ODY5LCAwLjU2MDU2MiwgMC43MDU0NzIsIDAuODMyMjU4LCAxLjAxMzQ4IiwgXAotICAgICAgICAgICIwLjIwNjU2OCwgMC4zNTYzMDYsIDAuNDg0NjI1LCAwLjU3NTM0NCwgMC43MjAyNDEsIDAuODQ3MDEsIDEuMDI4MiIsIFwKLSAgICAgICAgICAiMC4yMjExMzcsIDAuMzcxMDc1LCAwLjQ5OTI4MSwgMC41OTAwNzUsIDAuNzM0OTY2LCAwLjg2MTc0MSwgMS4wNDI4IiwgXAotICAgICAgICAgICIwLjIzNTExNSwgMC4zODUxNTEsIDAuNTEzMzc0LCAwLjYwNDA5NSwgMC43NDg5OTMsIDAuODc1NzgyLCAxLjA1NjkiLCBcCi0gICAgICAgICAgIjAuMjU2NzkzLCAwLjQwNjgwNCwgMC41MzQ5MjQsIDAuNjI1NjY1LCAwLjc3MDU2NiwgMC44OTczOTQsIDEuMDc4NDEiLCBcCi0gICAgICAgICAgIjAuMjc0MDE0LCAwLjQyMzk4NSwgMC41NTIxODQsIDAuNjQyODc4LCAwLjc4Nzg1OSwgMC45MTQ1OTEsIDEuMDk1OCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5MDkyNywgMC4zMzMzNDgsIDAuNTgyNjk3LCAwLjc2NDczMSwgMS4wNTU2MiwgMS4zMTQyMSwgMS42ODI4MSIsIFwKLSAgICAgICAgICAiMC4wOTEyNCwgMC4zMzMzOTIsIDAuNTgzMjQ1LCAwLjc2MzE2LCAxLjA1NTY3LCAxLjMxMjQxLCAxLjY3ODk4IiwgXAotICAgICAgICAgICIwLjA5MTI0MywgMC4zMzMzNzMsIDAuNTgyOTg2LCAwLjc2NDc2MSwgMS4wNTU3LCAxLjMxNDQxLCAxLjY4NTg1IiwgXAotICAgICAgICAgICIwLjA5MTEzNiwgMC4zMzMzNjUsIDAuNTgzMiwgMC43NjQ3NDEsIDEuMDU1NjQsIDEuMzEyNTEsIDEuNjgyMjkiLCBcCi0gICAgICAgICAgIjAuMDkxMDE0LCAwLjMzMzM4NSwgMC41ODIyNTUsIDAuNzY0NzIyLCAxLjA1NTY2LCAxLjMxNDU5LCAxLjY3OTYxIiwgXAotICAgICAgICAgICIwLjA5MTE4OSwgMC4zMzMzMTYsIDAuNTgyNjI2LCAwLjc2NDc1OSwgMS4wNTU3MSwgMS4zMTQ3OCwgMS42ODI5OCIsIFwKLSAgICAgICAgICAiMC4wOTA5MzEsIDAuMzMzMzQ3LCAwLjU4MzE1OCwgMC43NjMzNzMsIDEuMDU3NDgsIDEuMzEyMzYsIDEuNjc4OTciKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xODM3MywgMC4zMzk2NzksIDAuNDg1NzE4LCAwLjU4OTgyMSwgMC43NTYzOTUsIDAuOTAxODg3LCAxLjEwOTg1IiwgXAotICAgICAgICAgICIwLjE5NiwgMC4zNTE5OTgsIDAuNDk4MDU1LCAwLjYwMjE2MywgMC43Njg2NjIsIDAuOTE0MjMzLCAxLjEyMjE1IiwgXAotICAgICAgICAgICIwLjIxMTY0OSwgMC4zNjc1MTEsIDAuNTEzNTkzLCAwLjYxNzcxNSwgMC43ODQxOTksIDAuOTI5NzY5LCAxLjEzNzcyIiwgXAotICAgICAgICAgICIwLjIyNjYzOSwgMC4zODI2MjYsIDAuNTI4NjU4LCAwLjYzMjc4MywgMC43OTkyODcsIDAuOTQ0ODY2LCAxLjE1Mjc4IiwgXAotICAgICAgICAgICIwLjI0MTk5OCwgMC4zOTc5NTMsIDAuNTQzOTc3LCAwLjY0ODA5MiwgMC44MTQ1NzksIDAuOTYwMjU5LCAxLjE2ODE4IiwgXAotICAgICAgICAgICIwLjI2NDUxMywgMC40MjA0NzUsIDAuNTY2NDk1LCAwLjY3MDU4OSwgMC44MzcxLCAwLjk4MjY3LCAxLjE5MDYzIiwgXAotICAgICAgICAgICIwLjI4MjU3NiwgMC40Mzg1NSwgMC41ODQ1NzgsIDAuNjg4Njg3LCAwLjg1NTE3NywgMS4wMDA4NSwgMS4yMDg3OCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3OTM3NiwgMC4zNTYzMjMsIDAuNjQzMjc5LCAwLjg0Njk2MiwgMS4xNzg4NCwgMS40NjgxLCAxLjg4MjQxIiwgXAotICAgICAgICAgICIwLjA3OTQyNiwgMC4zNTYxNzksIDAuNjQzMjgxLCAwLjg0NzQ0NiwgMS4xNzc0NiwgMS40NzAyNCwgMS44ODU4NiIsIFwKLSAgICAgICAgICAiMC4wNzkyOTUsIDAuMzU1ODkyLCAwLjY0MTQyNSwgMC44NDgzODEsIDEuMTgwMTUsIDEuNDcwNDgsIDEuODgyMjEiLCBcCi0gICAgICAgICAgIjAuMDc5NDE2LCAwLjM1NjAwNCwgMC42NDIxNTIsIDAuODQ3MjEzLCAxLjE3OTA1LCAxLjQ3MDExLCAxLjg4NTQ1IiwgXAotICAgICAgICAgICIwLjA3OTM1NiwgMC4zNTYwOTcsIDAuNjQyMDg0LCAwLjg0OTY3NCwgMS4xODAyMywgMS40NjYyMiwgMS44ODQzOSIsIFwKLSAgICAgICAgICAiMC4wNzkzNTUsIDAuMzU2MTAzLCAwLjY0MTc1OCwgMC44NDc4OSwgMS4xODAxNCwgMS40NzA1LCAxLjg4MTkiLCBcCi0gICAgICAgICAgIjAuMDc5MzM3LCAwLjM1NjA5NywgMC42NDIzMDIsIDAuODQ5NjQxLCAxLjE4MDIxLCAxLjQ2OTU0LCAxLjg4NDM4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQ2NjEsIDAuMDA0Nzc5LCAwLjAwNDgwNCwgMC4wMDQ4MTIsIDAuMDA0ODIsIDAuMDA0ODIzLCAwLjAwNDgyOCIsIFwKLSAgICAgICAgICAiMC4wMDQ2NTMsIDAuMDA0NzcxLCAwLjAwNDc5OCwgMC4wMDQ4MDQsIDAuMDA0ODEzLCAwLjAwNDgxNSwgMC4wMDQ4MiIsIFwKLSAgICAgICAgICAiMC4wMDQ2NDgsIDAuMDA0NzY1LCAwLjAwNDc5MSwgMC4wMDQ3OTgsIDAuMDA0ODA2LCAwLjAwNDgxMiwgMC4wMDQ4MTUiLCBcCi0gICAgICAgICAgIjAuMDA0NjQ0LCAwLjAwNDc2LCAwLjAwNDc4NSwgMC4wMDQ3OTcsIDAuMDA0ODA1LCAwLjAwNDgwNywgMC4wMDQ4MTIiLCBcCi0gICAgICAgICAgIjAuMDA0NjQsIDAuMDA0NzUzLCAwLjAwNDc4MSwgMC4wMDQ3OTEsIDAuMDA0Nzk5LCAwLjAwNDgwMywgMC4wMDQ4MDciLCBcCi0gICAgICAgICAgIjAuMDA0NjM1LCAwLjAwNDc0NywgMC4wMDQ3NzYsIDAuMDA0Nzg1LCAwLjAwNDc5NCwgMC4wMDQ3OTksIDAuMDA0ODAzIiwgXAotICAgICAgICAgICIwLjAwNDYzMSwgMC4wMDQ3NCwgMC4wMDQ3NjksIDAuMDA0NzgxLCAwLjAwNDc5MSwgMC4wMDQ3OTYsIDAuMDA0OCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1OTU2LCAwLjAwNjEzNSwgMC4wMDYxNjUsIDAuMDA2MTc0LCAwLjAwNjE4MiwgMC4wMDYxODcsIDAuMDA2MTkiLCBcCi0gICAgICAgICAgIjAuMDA1OTQzLCAwLjAwNjEyMiwgMC4wMDYxNTEsIDAuMDA2MTYsIDAuMDA2MTY5LCAwLjAwNjE3MywgMC4wMDYxNzciLCBcCi0gICAgICAgICAgIjAuMDA1OTMyLCAwLjAwNjExMSwgMC4wMDYxNDEsIDAuMDA2MTUsIDAuMDA2MTU5LCAwLjAwNjE2MywgMC4wMDYxNjciLCBcCi0gICAgICAgICAgIjAuMDA1OTI1LCAwLjAwNjEwNCwgMC4wMDYxMzQsIDAuMDA2MTQzLCAwLjAwNjE1MSwgMC4wMDYxNTYsIDAuMDA2MTYiLCBcCi0gICAgICAgICAgIjAuMDA1OTE5LCAwLjAwNjA5OSwgMC4wMDYxMjgsIDAuMDA2MTM4LCAwLjAwNjE0NiwgMC4wMDYxNSwgMC4wMDYxNTQiLCBcCi0gICAgICAgICAgIjAuMDA1OTE0LCAwLjAwNjA5NCwgMC4wMDYxMjMsIDAuMDA2MTMzLCAwLjAwNjE0MSwgMC4wMDYxNDYsIDAuMDA2MTQ5IiwgXAotICAgICAgICAgICIwLjAwNTkxMywgMC4wMDYwOTIsIDAuMDA2MTIyLCAwLjAwNjEzMSwgMC4wMDYxNCwgMC4wMDYxNDQsIDAuMDA2MTQ4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDU2MDgsIDAuMDA1NzQzLCAwLjAwNTc2OSwgMC4wMDU3NzcsIDAuMDA1Nzg1LCAwLjAwNTc4NywgMC4wMDU3OTEiLCBcCi0gICAgICAgICAgIjAuMDA1NjM1LCAwLjAwNTc2OSwgMC4wMDU3OTMsIDAuMDA1ODAyLCAwLjAwNTgxMSwgMC4wMDU4MTMsIDAuMDA1ODE3IiwgXAotICAgICAgICAgICIwLjAwNTY3NSwgMC4wMDU4MDUsIDAuMDA1ODI5LCAwLjAwNTgzOCwgMC4wMDU4NDQsIDAuMDA1ODQ5LCAwLjAwNTg1MyIsIFwKLSAgICAgICAgICAiMC4wMDU3MTQsIDAuMDA1ODM4LCAwLjAwNTg2MywgMC4wMDU4NzEsIDAuMDA1ODgsIDAuMDA1ODg0LCAwLjAwNTg4OCIsIFwKLSAgICAgICAgICAiMC4wMDU3NDIsIDAuMDA1ODY0LCAwLjAwNTg4OCwgMC4wMDU4OTYsIDAuMDA1OTA0LCAwLjAwNTkwOSwgMC4wMDU5MTQiLCBcCi0gICAgICAgICAgIjAuMDA1Nzg4LCAwLjAwNTkwNCwgMC4wMDU5MjksIDAuMDA1OTM4LCAwLjAwNTk0NywgMC4wMDU5NTEsIDAuMDA1OTU1IiwgXAotICAgICAgICAgICIwLjAwNTgyLCAwLjAwNTkzMywgMC4wMDU5NTksIDAuMDA1OTY4LCAwLjAwNTk3NywgMC4wMDU5ODIsIDAuMDA1OTg3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDUxMDYsIDAuMDA1Mjc4LCAwLjAwNTMxLCAwLjAwNTMyLCAwLjAwNTMyOSwgMC4wMDUzMzQsIDAuMDA1MzM5IiwgXAotICAgICAgICAgICIwLjAwNTEwOCwgMC4wMDUyODEsIDAuMDA1MzEyLCAwLjAwNTMyMywgMC4wMDUzMzIsIDAuMDA1MzM3LCAwLjAwNTM0MSIsIFwKLSAgICAgICAgICAiMC4wMDUxMTMsIDAuMDA1Mjg1LCAwLjAwNTMxNiwgMC4wMDUzMjYsIDAuMDA1MzM1LCAwLjAwNTM0LCAwLjAwNTM0NSIsIFwKLSAgICAgICAgICAiMC4wMDUxMTQsIDAuMDA1Mjg3LCAwLjAwNTMxOCwgMC4wMDUzMjgsIDAuMDA1MzM3LCAwLjAwNTM0MiwgMC4wMDUzNDciLCBcCi0gICAgICAgICAgIjAuMDA1MTE1LCAwLjAwNTI4OSwgMC4wMDUzMTksIDAuMDA1MzI5LCAwLjAwNTMzOCwgMC4wMDUzNDMsIDAuMDA1MzQ3IiwgXAotICAgICAgICAgICIwLjAwNTExNiwgMC4wMDUyOSwgMC4wMDUzMjEsIDAuMDA1MzMxLCAwLjAwNTM0LCAwLjAwNTM0NSwgMC4wMDUzNDkiLCBcCi0gICAgICAgICAgIjAuMDA1MTE3LCAwLjAwNTI5MiwgMC4wMDUzMjIsIDAuMDA1MzMyLCAwLjAwNTM0MSwgMC4wMDUzNDYsIDAuMDA1MzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IFhPUjJYTCAqCi0gKiAtLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKFhPUjJYTCkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjExMTc3NjsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNTY2Mjk1OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDU2NjAxNzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA1NjYyOTU7Ci0gIH0KLSAgcGluKEIpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTIzMDQ0OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTIyOTgxOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTIzMDQ0OwotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMDY4MzI4NjsKLSAgICBmdW5jdGlvbiA6ICIoQV5CKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjYxNzMsIDAuMjg3MDA4LCAwLjUxNDM1OCwgMC44OTMxMzksIDEuMjcxNjIsIDIuMTU1NTIsIDIuNjYxMSIsIFwKLSAgICAgICAgICAiMC4yNzM1MjksIDAuMjk4ODM4LCAwLjUyNjEzNSwgMC45MDQ5ODEsIDEuMjgzNzUsIDIuMTY4MDEsIDIuNjcyMzciLCBcCi0gICAgICAgICAgIjAuMjg4NTc5LCAwLjMxMzg1OSwgMC41NDExNjksIDAuOTIwMDA3LCAxLjI5ODc2LCAyLjE4MzA3LCAyLjY4NzQ1IiwgXAotICAgICAgICAgICIwLjMwMzc3MywgMC4zMjkwNTQsIDAuNTU2MzcxLCAwLjkzNTIwOSwgMS4zMTQxMSwgMi4xOTgyLCAyLjcwMjY2IiwgXAotICAgICAgICAgICIwLjMxODc3MywgMC4zNDQxMTEsIDAuNTcxNDU1LCAwLjk1MDI3NCwgMS4zMjkzNSwgMi4yMTI4MiwgMi43MTgzNSIsIFwKLSAgICAgICAgICAiMC4zNDMwODgsIDAuMzY4Mzc1LCAwLjU5NTc2LCAwLjk3NDU1NSwgMS4zNTM4NSwgMi4yMzcyMiwgMi43NDIwNyIsIFwKLSAgICAgICAgICAiMC4zNjQwNDcsIDAuMzg5Mzc1LCAwLjYxNjY4NSwgMC45OTU2MjIsIDEuMzc0NjQsIDIuMjU3ODQsIDIuNzYzNCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yNzg0NywgMC4zMjg4MjUsIDAuNzg0ODI3LCAxLjU1MTQxLCAyLjMyNTM1LCA0LjExMDY5LCA1LjEzNTUxIiwgXAotICAgICAgICAgICIwLjI3ODQ3MSwgMC4zMjg3OTksIDAuNzg1MDA4LCAxLjU1MTIyLCAyLjMyMTYzLCA0LjExNTAxLCA1LjEzNDI5IiwgXAotICAgICAgICAgICIwLjI3ODQ2MiwgMC4zMjg4LCAwLjc4NTAyNywgMS41NTEyOSwgMi4zMTg4OCwgNC4xMTUsIDUuMTMzOTgiLCBcCi0gICAgICAgICAgIjAuMjc4NDYsIDAuMzI4Nzk1LCAwLjc4NTAyNywgMS41NTEzMiwgMi4zMTk5MywgNC4xMTUwNSwgNS4xMzQxMiIsIFwKLSAgICAgICAgICAiMC4yNzg0OTIsIDAuMzI4MzU0LCAwLjc4Nzk4NywgMS41NTMwNiwgMi4zMTk3NCwgNC4xMDk4NSwgNS4xMzcwNiIsIFwKLSAgICAgICAgICAiMC4yNzg0NywgMC4zMjg3OTcsIDAuNzg0Nzc4LCAxLjU1MTM4LCAyLjMxOTU4LCA0LjEyMDczLCA1LjEzMzc1IiwgXAotICAgICAgICAgICIwLjI3ODQxNSwgMC4zMjg3OTMsIDAuNzg2Njg0LCAxLjU1MjIxLCAyLjMxOTc0LCA0LjEyMTkzLCA1LjEzOTQzIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI3Mzk5MSwgMC4zMDM3NTMsIDAuNTcxMTA1LCAxLjAxNjY5LCAxLjQ2MjQ1LCAyLjUwMjA4LCAzLjA5NTg2IiwgXAotICAgICAgICAgICIwLjI4NTU5MSwgMC4zMTUzNDMsIDAuNTgyNzE5LCAxLjAyODI3LCAxLjQ3MzgyLCAyLjUxNDQxLCAzLjEwNzQ0IiwgXAotICAgICAgICAgICIwLjMwMDAyOCwgMC4zMjk3ODUsIDAuNTk3MTQ2LCAxLjA0MjkyLCAxLjQ4ODQ4LCAyLjUyOCwgMy4xMjIwMiIsIFwKLSAgICAgICAgICAiMC4zMTQ1MzEsIDAuMzQ0Mjc2LCAwLjYxMTYzMywgMS4wNTcyMiwgMS41MDI5NiwgMi41NDMzMiwgMy4xMzY0NSIsIFwKLSAgICAgICAgICAiMC4zMjkwODgsIDAuMzU4ODQ5LCAwLjYyNjIzMywgMS4wNzIwNCwgMS41MTc1OSwgMi41NTcxMSwgMy4xNTExMSIsIFwKLSAgICAgICAgICAiMC4zNTE4MTQsIDAuMzgxNTY5LCAwLjY0ODk5MiwgMS4wOTQ1NCwgMS41NDA1MSwgMi41Nzk4MywgMy4xNzM4NCIsIFwKLSAgICAgICAgICAiMC4zNzA5MSwgMC40MDA2NzMsIDAuNjY4MTA5LCAxLjExMzY2LCAxLjU1OTY0LCAyLjU5ODk4LCAzLjE5Mjg5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMxNzgwOSwgMC4zNzU4MzIsIDAuOTAzNDY2LCAxLjc4MjI0LCAyLjY2NTczLCA0LjcyNSwgNS44OTQ0MiIsIFwKLSAgICAgICAgICAiMC4zMTc1NjQsIDAuMzc1ODY1LCAwLjkwMDgzOSwgMS43ODMsIDIuNjYyOTksIDQuNzI0MjMsIDUuODkyNzkiLCBcCi0gICAgICAgICAgIjAuMzE3Njk5LCAwLjM3NTc5MywgMC45MDM0NjUsIDEuNzg0NDEsIDIuNjY1MzcsIDQuNzE4MjEsIDUuODk0MDQiLCBcCi0gICAgICAgICAgIjAuMzE3ODUsIDAuMzc1ODQzLCAwLjkwMTAzNiwgMS43ODc2NiwgMi42NjQ2MywgNC43MjI2MiwgNS44OTI3MSIsIFwKLSAgICAgICAgICAiMC4zMTc3MjUsIDAuMzc1Nzk5LCAwLjkwMzQ2OCwgMS43ODUxMSwgMi42NjU3NCwgNC43MTgxOCwgNS44OTQwNiIsIFwKLSAgICAgICAgICAiMC4zMTc2NDMsIDAuMzc1NzQ4LCAwLjkwMzQ3NywgMS43ODc2MiwgMi42NjU3OSwgNC43MjQ1LCA1Ljg5MjQ0IiwgXAotICAgICAgICAgICIwLjMxNzczNiwgMC4zNzU3NSwgMC45MDM0NzksIDEuNzg3NjIsIDIuNjY1NTgsIDQuNzIzODQsIDUuODkyNjYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjg0NjMxLCAwLjMxMDAyLCAwLjUzNzc2MywgMC45MTY2MzcsIDEuMjk1NDYsIDIuMTc5MDcsIDIuNjgzOTkiLCBcCi0gICAgICAgICAgIjAuMjk2MjIyLCAwLjMyMTU3NCwgMC41NDkzMTMsIDAuOTI4MTk3LCAxLjMwNzE1LCAyLjE5MDYzLCAyLjY5NTU1IiwgXAotICAgICAgICAgICIwLjMxMDg2NCwgMC4zMzYyNTUsIDAuNTYzOTk5LCAwLjk0Mjg3MywgMS4zMjE3LCAyLjIwNTMxLCAyLjcxMDIzIiwgXAotICAgICAgICAgICIwLjMyNTQ0LCAwLjM1MDgzLCAwLjU3ODU3NSwgMC45NTc0NDksIDEuMzM2MjcsIDIuMjE5ODgsIDIuNzI0ODEiLCBcCi0gICAgICAgICAgIjAuMzM5MzA1LCAwLjM2NDY3OCwgMC41OTIzNTYsIDAuOTcxMzQ3LCAxLjM1MDEsIDIuMjMzOTcsIDIuNzM4NjQiLCBcCi0gICAgICAgICAgIjAuMzU5NDc3LCAwLjM4NDg1NywgMC42MTI1MjksIDAuOTkxNDc4LCAxLjM3MDI2LCAyLjI1MzkxLCAyLjc1ODg0IiwgXAotICAgICAgICAgICIwLjM3NTQyLCAwLjQwMDc5NCwgMC42Mjg0OTUsIDEuMDA3NDIsIDEuMzg2MjIsIDIuMjY5OTMsIDIuNzc0NzUiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjc3NzgzLCAwLjMyODI0NCwgMC43ODUzMDcsIDEuNTUzODksIDIuMzI1OTYsIDQuMTE0NzgsIDUuMTM5NDMiLCBcCi0gICAgICAgICAgIjAuMjc3Nzc5LCAwLjMyODI3NywgMC43ODc1MzksIDEuNTUzODQsIDIuMzIwNjQsIDQuMTE1LCA1LjEzOTMzIiwgXAotICAgICAgICAgICIwLjI3Nzc3NSwgMC4zMjgyNDcsIDAuNzg1MzA3LCAxLjU1MzksIDIuMzI1OTgsIDQuMTE0NzgsIDUuMTM5NCIsIFwKLSAgICAgICAgICAiMC4yNzc3NzcsIDAuMzI4MjQ1LCAwLjc4NTMwNiwgMS41NTM5LCAyLjMyNTkzLCA0LjExNDMsIDUuMTM5NDIiLCBcCi0gICAgICAgICAgIjAuMjc3Nzk5LCAwLjMyODIwOCwgMC43ODU4ODUsIDEuNTUzMTYsIDIuMzIyMiwgNC4xMjE1NSwgNS4xMzg2MSIsIFwKLSAgICAgICAgICAiMC4yNzc3NjMsIDAuMzI4MTcsIDAuNzg3MTcxLCAxLjU1NCwgMi4zMjU2OCwgNC4xMTQwNywgNS4xMzkyMyIsIFwKLSAgICAgICAgICAiMC4yNzc3OTIsIDAuMzI4MTk4LCAwLjc4NjA0NSwgMS41NTYyOCwgMi4zMjIzMiwgNC4xMjE0NCwgNS4xMzgzMyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMDM2NzEsIDAuMzMzNDYxLCAwLjYwMTEzLCAxLjA0NjY2LCAxLjQ5MjE3LCAyLjUzMTU5LCAzLjEyNTQ2IiwgXAotICAgICAgICAgICIwLjMxNTQ4OCwgMC4zNDUyNjksIDAuNjEyOTA1LCAxLjA1ODUsIDEuNTA0MDEsIDIuNTQzMzgsIDMuMTM3MjgiLCBcCi0gICAgICAgICAgIjAuMzMwNzA0LCAwLjM2MDUwMywgMC42MjgxMTYsIDEuMDczNzEsIDEuNTE5MjUsIDIuNTU4NjEsIDMuMTUyNjMiLCBcCi0gICAgICAgICAgIjAuMzQ1OTc1LCAwLjM3NTc3MiwgMC42NDMzODksIDEuMDg5MDUsIDEuNTM0NDksIDIuNTczODEsIDMuMTY3OTYiLCBcCi0gICAgICAgICAgIjAuMzYxMDM0LCAwLjM5MDgzNiwgMC42NTg0NDksIDEuMTA0MDgsIDEuNTQ5NTQsIDIuNTg5MDgsIDMuMTgyODEiLCBcCi0gICAgICAgICAgIjAuMzgzODk4LCAwLjQxMzY5NSwgMC42ODEzMDgsIDEuMTI2OTcsIDEuNTcyNCwgMi42MTIwMSwgMy4yMDU2NyIsIFwKLSAgICAgICAgICAiMC40MDIyNSwgMC40MzIwMzksIDAuNjk5NjcyLCAxLjE0NTI2LCAxLjU5MDc3LCAyLjYzMDE0LCAzLjIyNDA0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMxNjkxOCwgMC4zNzUyNTgsIDAuOTAxMTU0LCAxLjc4NDEzLCAyLjY2ODI5LCA0LjcxNjcyLCA1Ljg5MzciLCBcCi0gICAgICAgICAgIjAuMzE2OTQyLCAwLjM3NTEyNiwgMC45MDMsIDEuNzg2NTcsIDIuNjcwMjMsIDQuNzI0NzMsIDUuODkzNiIsIFwKLSAgICAgICAgICAiMC4zMTY5NDUsIDAuMzc1MjAxLCAwLjkwMzA0NiwgMS43ODYxNCwgMi42NjM4NSwgNC43MjQxNiwgNS44OTM3MiIsIFwKLSAgICAgICAgICAiMC4zMTY5MjMsIDAuMzc1MjA1LCAwLjkwMzA0NywgMS43ODU2LCAyLjY3MDQ5LCA0LjcyNDA3LCA1Ljg5MTk1IiwgXAotICAgICAgICAgICIwLjMxNjY3MiwgMC4zNzUyMTcsIDAuOTAzMDgyLCAxLjc4NTg4LCAyLjY2ODY5LCA0LjcyMzc5LCA1Ljg5Mzk2IiwgXAotICAgICAgICAgICIwLjMxNjg4NSwgMC4zNzUxMzksIDAuOTAzMDk0LCAxLjc4NTMxLCAyLjY2ODIyLCA0LjcyMzIxLCA1Ljg5MzY2IiwgXAotICAgICAgICAgICIwLjMxNjg3NywgMC4zNzQ1MjMsIDAuOTAyOTAzLCAxLjc4NjQ2LCAyLjY2ODkyLCA0LjcyNDkzLCA1Ljg5MzQzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIzMzk2MiwgMC4yNTkzMTIsIDAuNDg3MDQyLCAwLjg2NTk0MywgMS4yNDQ3NSwgMi4xMjg0MSwgMi42MzMzMSIsIFwKLSAgICAgICAgICAiMC4yNDQ4MiwgMC4yNzAxOCwgMC40OTc5MSwgMC44NzY3ODYsIDEuMjU1NywgMi4xMzkyMiwgMi42NDQxNCIsIFwKLSAgICAgICAgICAiMC4yNTgyNjUsIDAuMjgzNjE4LCAwLjUxMTM1OCwgMC44OTAyNDIsIDEuMjY5MDUsIDIuMTUyNjcsIDIuNjU3NiIsIFwKLSAgICAgICAgICAiMC4yNzE3NDIsIDAuMjk3MTA2LCAwLjUyNDg1MiwgMC45MDM3MzgsIDEuMjgyNTQsIDIuMTY2MTksIDIuNjcxMTIiLCBcCi0gICAgICAgICAgIjAuMjg1NDAzLCAwLjMxMDc5NCwgMC41Mzg1MzMsIDAuOTE3NDIxLCAxLjI5NjIxLCAyLjE3OTg4LCAyLjY4NDc3IiwgXAotICAgICAgICAgICIwLjMwNzQ3LCAwLjMzMjg0MSwgMC41NjA2MTEsIDAuOTM5NTA0LCAxLjMxODI5LCAyLjIwMTk2LCAyLjcwNjg1IiwgXAotICAgICAgICAgICIwLjMyNjc1MiwgMC4zNTIxMDgsIDAuNTc5ODk2LCAwLjk1ODc4NSwgMS4zMzc2MywgMi4yMjEyMywgMi43MjYxNiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yNzc3OTcsIDAuMzI4Mjg4LCAwLjc4NzUyNCwgMS41NTM0NSwgMi4zMjAyNywgNC4xMTQ0NiwgNS4xNDE0NiIsIFwKLSAgICAgICAgICAiMC4yNzczODksIDAuMzI4MjA1LCAwLjc4NzUxLCAxLjU1MzksIDIuMzI1OCwgNC4xMTQ4LCA1LjEzOTQiLCBcCi0gICAgICAgICAgIjAuMjc3Nzc0LCAwLjMyODI2OSwgMC43ODc0OTMsIDEuNTUzODUsIDIuMzI1ODgsIDQuMTE0OTUsIDUuMTM5NDYiLCBcCi0gICAgICAgICAgIjAuMjc3ODA2LCAwLjMyNzgyMSwgMC43ODc0ODEsIDEuNTUzOTYsIDIuMzIyMTcsIDQuMTE0OSwgNS4xNDEwMyIsIFwKLSAgICAgICAgICAiMC4yNzc4MTYsIDAuMzI4MjA1LCAwLjc4NzQ1NiwgMS41NTM3MSwgMi4zMjIzNiwgNC4xMjA5NywgNS4xMzg0OCIsIFwKLSAgICAgICAgICAiMC4yNzc4MTMsIDAuMzI4MTg3LCAwLjc4NzQzNCwgMS41NTM5NCwgMi4zMjIxMSwgNC4xMTUsIDUuMTM4NjMiLCBcCi0gICAgICAgICAgIjAuMjc3Njk1LCAwLjMyODMzLCAwLjc4NzQ0NCwgMS41NTM3OCwgMi4zMjA3MiwgNC4xMTQzNywgNS4xMzkzNyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yNDE5NjEsIDAuMjcxNzA4LCAwLjUzOTA5MiwgMC45ODQ2MTIsIDEuNDMwNzgsIDIuNDcwMTcsIDMuMDYzNzIiLCBcCi0gICAgICAgICAgIjAuMjUyNTQ1LCAwLjI4MjI5MywgMC41NDk2NzUsIDAuOTk1MTk2LCAxLjQ0MDc3LCAyLjQ4MDk1LCAzLjA3NDUyIiwgXAotICAgICAgICAgICIwLjI2NTgzOCwgMC4yOTU1OSwgMC41NjI5ODMsIDEuMDA4NTEsIDEuNDU0MTgsIDIuNDk0MTksIDMuMDg3ODQiLCBcCi0gICAgICAgICAgIjAuMjc5MTQ1LCAwLjMwODg5MiwgMC41NzYyNTQsIDEuMDIxODYsIDEuNDY3OTIsIDIuNTA3NjUsIDMuMTAxMDEiLCBcCi0gICAgICAgICAgIjAuMjkyMzU1LCAwLjMyMjEyNSwgMC41ODk1MjksIDEuMDM1MzQsIDEuNDgwOTEsIDIuNTIwMzksIDMuMTE0NDMiLCBcCi0gICAgICAgICAgIjAuMzEzMDg2LCAwLjM0Mjg1NywgMC42MTAyOTYsIDEuMDU1ODUsIDEuNTAxODEsIDIuNTQxMDYsIDMuMTM1MTgiLCBcCi0gICAgICAgICAgIjAuMzMwNzQyLCAwLjM2MDUxNCwgMC42Mjc5NjQsIDEuMDczNTEsIDEuNTE5NTEsIDIuNTU4NzksIDMuMTUyNzgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzE3NjA3LCAwLjM3NTYxOSwgMC45MDM0OTIsIDEuNzg3NjUsIDIuNjYzMTQsIDQuNzIzODQsIDUuODk0MzQiLCBcCi0gICAgICAgICAgIjAuMzE3NjE3LCAwLjM3NTYzOCwgMC45MDM0OTIsIDEuNzg3NjYsIDIuNjYyOTMsIDQuNzI1MzksIDUuODkyMzciLCBcCi0gICAgICAgICAgIjAuMzE3NjEsIDAuMzc1NjI3LCAwLjkwMzQ5MiwgMS43ODc2NSwgMi42NjI4NCwgNC43MjUxMSwgNS44OTIzNyIsIFwKLSAgICAgICAgICAiMC4zMTczODYsIDAuMzc1NjM3LCAwLjkwMTMzNSwgMS43ODIyMSwgMi42NjM1MiwgNC43MjMwNiwgNS44OTI4OSIsIFwKLSAgICAgICAgICAiMC4zMTc2MDcsIDAuMzc1NjEyLCAwLjkwMzQ3OSwgMS43ODQ2MiwgMi42NjY5OSwgNC43MTgyOCwgNS44OTM4NCIsIFwKLSAgICAgICAgICAiMC4zMTc2NTEsIDAuMzc1MDAyLCAwLjkwMzQ4OCwgMS43ODc2NCwgMi42NjU3NywgNC43MTkzNywgNS44OTM0NyIsIFwKLSAgICAgICAgICAiMC4zMTc3NDEsIDAuMzc1Njk5LCAwLjkwMzUxNiwgMS43ODc2NCwgMi42NjUxMywgNC43MjQ1MywgNS44OTI1NCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMzMzNTYsIDAuMjU4Njc0LCAwLjQ4NTk5NSwgMC44NjQ4NTIsIDEuMjQzNjUsIDIuMTI3ODYsIDIuNjMyMjUiLCBcCi0gICAgICAgICAgIjAuMjQ1MzQyLCAwLjI3MDY3NywgMC40OTgwMzIsIDAuODc2ODU1LCAxLjI1NTk0LCAyLjEzOTQ1LCAyLjY0NDg3IiwgXAotICAgICAgICAgICIwLjI2MDUxNiwgMC4yODU4MzUsIDAuNTEzMTIxLCAwLjg5MjA3MSwgMS4yNzEwNiwgMi4xNTQ0NCwgMi42NTk5IiwgXAotICAgICAgICAgICIwLjI3NTA4MywgMC4zMDA0MDQsIDAuNTI3Njk3LCAwLjkwNjYzNiwgMS4yODU2NCwgMi4xNjg4OSwgMi42NzQ0NCIsIFwKLSAgICAgICAgICAiMC4yODg5NTgsIDAuMzE0Mjc0LCAwLjU0MTYwNiwgMC45MjA0NjEsIDEuMjk5MDcsIDIuMTgzNjYsIDIuNjg3ODkiLCBcCi0gICAgICAgICAgIjAuMzA4Mjc1LCAwLjMzMzU5OSwgMC41NjA5NDgsIDAuOTM5NzMxLCAxLjMxODg3LCAyLjIwMjMxLCAyLjcwNzMiLCBcCi0gICAgICAgICAgIjAuMzIyODEsIDAuMzQ4MTAzLCAwLjU3NTQ0MywgMC45NTQyOTIsIDEuMzMzMSwgMi4yMTczMywgMi43MjE3NiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yNzgyNTIsIDAuMzI4Njk4LCAwLjc4NDk5NywgMS41NTEyMSwgMi4zMjE2OCwgNC4xMTUsIDUuMTM0MyIsIFwKLSAgICAgICAgICAiMC4yNzgzNzIsIDAuMzI4NTQyLCAwLjc4NzkyLCAxLjU1MTM0LCAyLjMxOTcxLCA0LjEwOTQsIDUuMTM1MTEiLCBcCi0gICAgICAgICAgIjAuMjc4Mzc1LCAwLjMyODcwMywgMC43ODY0OTQsIDEuNTUyMjUsIDIuMzE5NzUsIDQuMTIwNTUsIDUuMTM5MjkiLCBcCi0gICAgICAgICAgIjAuMjc4MzgxLCAwLjMyODcwMiwgMC43ODY1NDgsIDEuNTUyMjgsIDIuMzE5NzUsIDQuMTIwNjMsIDUuMTM5MjEiLCBcCi0gICAgICAgICAgIjAuMjc4NDYxLCAwLjMyODcwMiwgMC43ODUwMTksIDEuNTUxMjYsIDIuMzI0ODcsIDQuMTE1ODksIDUuMTM0MTYiLCBcCi0gICAgICAgICAgIjAuMjc4MzYxLCAwLjMyODY4NiwgMC43ODgwNDgsIDEuNTUxNjEsIDIuMzE5NzQsIDQuMTEwMDUsIDUuMTMyOTgiLCBcCi0gICAgICAgICAgIjAuMjc4Mzk2LCAwLjMyODcwOCwgMC43ODUwNTYsIDEuNTUxMzMsIDIuMzIwMTksIDQuMTE0NjUsIDUuMTMzOTUiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjc5NTY3LCAwLjMwOTM2NiwgMC41NzY5ODQsIDEuMDIyNTgsIDEuNDY4MTEsIDIuNTA3NjUsIDMuMTAxMzgiLCBcCi0gICAgICAgICAgIjAuMjkxODU2LCAwLjMyMTYzNCwgMC41ODkzMTksIDEuMDM0ODUsIDEuNDgwMzUsIDIuNTE5ODUsIDMuMTEzNjUiLCBcCi0gICAgICAgICAgIjAuMzA3MDc3LCAwLjMzNjg3OCwgMC42MDQ1LCAxLjA1MDA4LCAxLjQ5NTYsIDIuNTM1MDgsIDMuMTI4ODYiLCBcCi0gICAgICAgICAgIjAuMzIyMDgzLCAwLjM1MTg2NiwgMC42MTk0ODEsIDEuMDY1MDcsIDEuNTEwNTgsIDIuNTQ5OTksIDMuMTQzODUiLCBcCi0gICAgICAgICAgIjAuMzM2MTc5LCAwLjM2NTk4LCAwLjYzMzU5NSwgMS4wNzkxOSwgMS41MjQ3MiwgMi41NjQwOCwgMy4xNTgwOSIsIFwKLSAgICAgICAgICAiMC4zNTY1NzcsIDAuMzg2MzY0LCAwLjY1NCwgMS4wOTk1OSwgMS41NDUxLCAyLjU4NDQ2LCAzLjE3ODM2IiwgXAotICAgICAgICAgICIwLjM3MjU5LCAwLjQwMjM3OCwgMC42NzAwMTgsIDEuMTE1NiwgMS41NjEwOCwgMi42MDA0NywgMy4xOTQzOSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMTY5OCwgMC4zNzUyNzcsIDAuOTAzMjE3LCAxLjc4NjY2LCAyLjY2NDg2LCA0LjcyMzksIDUuODkzNzkiLCBcCi0gICAgICAgICAgIjAuMzE2NzI1LCAwLjM3NTI1MSwgMC45MDIwMDksIDEuNzg0MTUsIDIuNjY3NjUsIDQuNzIyMTUsIDUuODkzNjIiLCBcCi0gICAgICAgICAgIjAuMzE2OTMsIDAuMzc1MjI2LCAwLjkwMzExOCwgMS43ODY5MywgMi42Njk2NiwgNC43MjM3MywgNS44OTM5MSIsIFwKLSAgICAgICAgICAiMC4zMTY3NTcsIDAuMzc1MTQ3LCAwLjkwMzEyNywgMS43ODMzOCwgMi42Njc4NCwgNC43MjM4MiwgNS44OTM2IiwgXAotICAgICAgICAgICIwLjMxNjg5MSwgMC4zNzUxMjcsIDAuOTAzMDEyLCAxLjc4NTU3LCAyLjY2NTMyLCA0LjcyNDM4LCA1Ljg5MzIzIiwgXAotICAgICAgICAgICIwLjMxNjg3OCwgMC4zNzUxMTUsIDAuOTAyOTA3LCAxLjc4NjQsIDIuNjY4MzQsIDQuNzI0MzUsIDUuODkzNDMiLCBcCi0gICAgICAgICAgIjAuMzE2OTAyLCAwLjM3NTE3OSwgMC45MDI3NTIsIDEuNzg1NCwgMi42NzA4MywgNC43MjQ3OCwgNS44OTM0MyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjY3NywgMC4wMDI2NzgsIDAuMDAyNjgxLCAwLjAwMjY4MiwgMC4wMDI2ODMsIDAuMDAyNjgzLCAwLjAwMjY4MyIsIFwKLSAgICAgICAgICAiMC4wMDI2NjUsIDAuMDAyNjY2LCAwLjAwMjY2OSwgMC4wMDI2NzEsIDAuMDAyNjcxLCAwLjAwMjY3MiwgMC4wMDI2NzEiLCBcCi0gICAgICAgICAgIjAuMDAyNjU2LCAwLjAwMjY1NywgMC4wMDI2NiwgMC4wMDI2NjEsIDAuMDAyNjYyLCAwLjAwMjY2MiwgMC4wMDI2NjIiLCBcCi0gICAgICAgICAgIjAuMDAyNjUxLCAwLjAwMjY1MiwgMC4wMDI2NTUsIDAuMDAyNjU2LCAwLjAwMjY1NiwgMC4wMDI2NTcsIDAuMDAyNjU3IiwgXAotICAgICAgICAgICIwLjAwMjY0NiwgMC4wMDI2NDcsIDAuMDAyNjUsIDAuMDAyNjUxLCAwLjAwMjY1MSwgMC4wMDI2NTIsIDAuMDAyNjUyIiwgXAotICAgICAgICAgICIwLjAwMjY0MywgMC4wMDI2NDQsIDAuMDAyNjQ3LCAwLjAwMjY0OCwgMC4wMDI2NDksIDAuMDAyNjQ5LCAwLjAwMjY0OSIsIFwKLSAgICAgICAgICAiMC4wMDI2NDEsIDAuMDAyNjQyLCAwLjAwMjY0NSwgMC4wMDI2NDYsIDAuMDAyNjQ3LCAwLjAwMjY0NywgMC4wMDI2NDgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI1MTMsIDAuMDAyNTE0LCAwLjAwMjUxNywgMC4wMDI1MTksIDAuMDAyNTIsIDAuMDAyNTIsIDAuMDAyNTIiLCBcCi0gICAgICAgICAgIjAuMDAyNDk2LCAwLjAwMjQ5OCwgMC4wMDI1MDIsIDAuMDAyNTAzLCAwLjAwMjUwNCwgMC4wMDI1MDQsIDAuMDAyNTA0IiwgXAotICAgICAgICAgICIwLjAwMjQ4NiwgMC4wMDI0ODcsIDAuMDAyNDkxLCAwLjAwMjQ5MiwgMC4wMDI0OTMsIDAuMDAyNDkzLCAwLjAwMjQ5MyIsIFwKLSAgICAgICAgICAiMC4wMDI0NzksIDAuMDAyNDgsIDAuMDAyNDg0LCAwLjAwMjQ4NiwgMC4wMDI0ODYsIDAuMDAyNDg3LCAwLjAwMjQ4NyIsIFwKLSAgICAgICAgICAiMC4wMDI0NzYsIDAuMDAyNDc3LCAwLjAwMjQ4MSwgMC4wMDI0ODIsIDAuMDAyNDgzLCAwLjAwMjQ4MywgMC4wMDI0ODMiLCBcCi0gICAgICAgICAgIjAuMDAyNDczLCAwLjAwMjQ3NSwgMC4wMDI0NzksIDAuMDAyNDgsIDAuMDAyNDgxLCAwLjAwMjQ4MSwgMC4wMDI0ODEiLCBcCi0gICAgICAgICAgIjAuMDAyNDczLCAwLjAwMjQ3NCwgMC4wMDI0NzgsIDAuMDAyNDgsIDAuMDAyNDgsIDAuMDAyNDgxLCAwLjAwMjQ4MSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTE0MiwgMC4wMDExNDIsIDAuMDAxMTQ0LCAwLjAwMTE0NiwgMC4wMDExNDcsIDAuMDAxMTQ2LCAwLjAwMTE0NiIsIFwKLSAgICAgICAgICAiMC4wMDExMTMsIDAuMDAxMTE0LCAwLjAwMTExNiwgMC4wMDExMTcsIDAuMDAxMTE3LCAwLjAwMTExNywgMC4wMDExMTciLCBcCi0gICAgICAgICAgIjAuMDAxMDk0LCAwLjAwMTA5NCwgMC4wMDEwOTcsIDAuMDAxMDk4LCAwLjAwMTA5OCwgMC4wMDEwOTksIDAuMDAxMDk5IiwgXAotICAgICAgICAgICIwLjAwMTA4MywgMC4wMDEwODQsIDAuMDAxMDg3LCAwLjAwMTA4OCwgMC4wMDEwODgsIDAuMDAxMDg5LCAwLjAwMTA4OCIsIFwKLSAgICAgICAgICAiMC4wMDEwNzcsIDAuMDAxMDc4LCAwLjAwMTA4MiwgMC4wMDEwODMsIDAuMDAxMDg0LCAwLjAwMTA4NCwgMC4wMDEwODQiLCBcCi0gICAgICAgICAgIjAuMDAxMDczLCAwLjAwMTA3NCwgMC4wMDEwNzksIDAuMDAxMDgsIDAuMDAxMDgxLCAwLjAwMTA4MSwgMC4wMDEwODIiLCBcCi0gICAgICAgICAgIjAuMDAxMDczLCAwLjAwMTA3NCwgMC4wMDEwNzksIDAuMDAxMDgxLCAwLjAwMTA4MSwgMC4wMDEwODIsIDAuMDAxMDgyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyMDM4LCAwLjAwMjA0LCAwLjAwMjA0NCwgMC4wMDIwNDUsIDAuMDAyMDQ2LCAwLjAwMjA0NiwgMC4wMDIwNDciLCBcCi0gICAgICAgICAgIjAuMDAyMDMsIDAuMDAyMDMxLCAwLjAwMjAzNSwgMC4wMDIwMzcsIDAuMDAyMDM4LCAwLjAwMjAzOCwgMC4wMDIwMzgiLCBcCi0gICAgICAgICAgIjAuMDAyMDI0LCAwLjAwMjAyNSwgMC4wMDIwMjksIDAuMDAyMDMxLCAwLjAwMjAzMiwgMC4wMDIwMzIsIDAuMDAyMDMyIiwgXAotICAgICAgICAgICIwLjAwMjAyLCAwLjAwMjAyMSwgMC4wMDIwMjYsIDAuMDAyMDI3LCAwLjAwMjAyOCwgMC4wMDIwMjgsIDAuMDAyMDI4IiwgXAotICAgICAgICAgICIwLjAwMjAxOSwgMC4wMDIwMjEsIDAuMDAyMDI1LCAwLjAwMjAyNiwgMC4wMDIwMjcsIDAuMDAyMDI3LCAwLjAwMjAyNyIsIFwKLSAgICAgICAgICAiMC4wMDIwMTgsIDAuMDAyMDE5LCAwLjAwMjAyMywgMC4wMDIwMjUsIDAuMDAyMDI1LCAwLjAwMjAyNiwgMC4wMDIwMjYiLCBcCi0gICAgICAgICAgIjAuMDAyMDE4LCAwLjAwMjAxOSwgMC4wMDIwMjMsIDAuMDAyMDI1LCAwLjAwMjAyNiwgMC4wMDIwMjYsIDAuMDAyMDI2Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IEFDSENPTlgyICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChBQ0hDT05YMikgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjYwMjQwNjsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxMzQ5NTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDEzNDgwNzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDEzNDk1OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwOTg5NiwgMC4wMDk4NTcsIDAuMDA5ODMsIDAuMDA5ODEyLCAwLjAwOTc5NywgMC4wMDk3OCwgMC4wMDk3NzIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMTEzODUsIDAuMDExMzYyLCAwLjAxMTM0NCwgMC4wMTEzMjcsIDAuMDExMzE4LCAwLjAxMTMwNSwgMC4wMTEzIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDQ5Mzg2MjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDQ5MzU0MTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDQ5Mzg2MjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDY4NTQsIDAuMDA2NzU4LCAwLjAwNjczMiwgMC4wMDY3NjUsIDAuMDA2ODIyLCAwLjAwNjg5MSwgMC4wMDY5NDEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMTE3NjcsIDAuMDExNzQ4LCAwLjAxMTc1NSwgMC4wMTE3NzcsIDAuMDExODAxLCAwLjAxMTgzNywgMC4wMTE4NjIiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKENJKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDEzMTQyODsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDEzMTI4NTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDEzMTQyODsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA3NzYsIDAuMDAwNzAxLCAwLjAwMDY3MSwgMC4wMDA2NjEsIDAuMDAwNjYsIDAuMDAwNjU1LCAwLjAwMDY1OSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjI1OSwgMC4wMDIyMTYsIDAuMDAyMTk2LCAwLjAwMjE4OCwgMC4wMDIxODIsIDAuMDAyMTgyLCAwLjAwMjE4NCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQ09OKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMTAxNTY5OwotICAgIGZ1bmN0aW9uIDogIighKCgoQSBCKSsoQiBDSSkpKyhDSSBBKSkpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yNTcwNTIsIDAuNTUzNDM2LCAwLjgwOTM2LCAxLjEzNDEsIDEuNDYwOCwgMS43ODkxNCwgMi4xMTczOCIsIFwKLSAgICAgICAgICAiMC4yNjg0OTYsIDAuNTY0ODY1LCAwLjgyMDc4NiwgMS4xNDU1MSwgMS40NzIyNSwgMS44MDA1NiwgMi4xMjg3OSIsIFwKLSAgICAgICAgICAiMC4yODMyMjMsIDAuNTc5NTUzLCAwLjgzNTQ3MSwgMS4xNjAyNSwgMS40ODczNCwgMS44MTUxLCAyLjE0MzkiLCBcCi0gICAgICAgICAgIjAuMjk4MDYxLCAwLjU5NDI3NSwgMC44NTAzOTIsIDEuMTc0NjUsIDEuNTAyMDEsIDEuODI5OTksIDIuMTU4MTciLCBcCi0gICAgICAgICAgIjAuMzEyNTQ1LCAwLjYwODc5NSwgMC44NjQ4NiwgMS4xODk0OCwgMS41MTY0OCwgMS44NDQ0NywgMi4xNzI2MiIsIFwKLSAgICAgICAgICAiMC4zMzUwMDEsIDAuNjMxMTAyLCAwLjg4Njk3MSwgMS4yMTE2NiwgMS41MzgzMiwgMS44NjY1OCwgMi4xOTQ5IiwgXAotICAgICAgICAgICIwLjM1MzQzMywgMC42NDk1ODUsIDAuOTA1NiwgMS4yMzA0MiwgMS41NTcxNiwgMS44ODUxNCwgMi4yMTMzMSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yNjY5NzIsIDAuOTMwNjY0LCAxLjQ5Mjk1LCAyLjIwODQ4LCAyLjkyODI1LCAzLjY0ODk4LCA0LjM2ODExIiwgXAotICAgICAgICAgICIwLjI2Njk5NywgMC45MzA2NzgsIDEuNDkyOTUsIDIuMjA4NDcsIDIuOTI4MTUsIDMuNjQ5LCA0LjM2ODEyIiwgXAotICAgICAgICAgICIwLjI2NzEyMywgMC45MzA3OCwgMS40OTI5NSwgMi4yMDk0NywgMi45MjkxLCAzLjY0ODI0LCA0LjM2NzY4IiwgXAotICAgICAgICAgICIwLjI2NzIzNiwgMC45MzExNjgsIDEuNDkzMTYsIDIuMjA4MiwgMi45MjgzMywgMy42NDkzMiwgNC4zNjg5NCIsIFwKLSAgICAgICAgICAiMC4yNjcyNDEsIDAuOTMxMTQ0LCAxLjQ5MzExLCAyLjIwOTI4LCAyLjkyODIyLCAzLjY0OTM1LCA0LjM2OTEzIiwgXAotICAgICAgICAgICIwLjI2NzM2NSwgMC45MzA5LCAxLjQ5MywgMi4yMDg1NSwgMi45Mjg4MiwgMy42NDg2NCwgNC4zNjc2NCIsIFwKLSAgICAgICAgICAiMC4yNjczMzUsIDAuOTMxMjAxLCAxLjQ5MzEzLCAyLjIwOTUsIDIuOTI4MTEsIDMuNjQ5MjUsIDQuMzY4ODkiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjc1MzUyLCAwLjY2OTY2MSwgMS4wMDU1NywgMS40Mjg3NiwgMS44NTMyNSwgMi4yNzc5NCwgMi43MDMwNyIsIFwKLSAgICAgICAgICAiMC4yODY4NCwgMC42ODExLCAxLjAxNjk5LCAxLjQ0MDE1LCAxLjg2NDczLCAyLjI4OTQ2LCAyLjcxNDY2IiwgXAotICAgICAgICAgICIwLjMwMTgxNywgMC42OTYwNTIsIDEuMDMxOTgsIDEuNDU1MTEsIDEuODc5MzgsIDIuMzA0MzYsIDIuNzI5MzQiLCBcCi0gICAgICAgICAgIjAuMzE2Nzk3LCAwLjcxMTAzNCwgMS4wNDcwNiwgMS40NzAxNiwgMS44OTQ1MSwgMi4zMTk0MSwgMi43NDQ1MSIsIFwKLSAgICAgICAgICAiMC4zMzIwMjcsIDAuNzI2MjY5LCAxLjA2MjE4LCAxLjQ4NTMyLCAxLjkwOTcsIDIuMzM0NTcsIDIuNzU5NjgiLCBcCi0gICAgICAgICAgIjAuMzU2MTA2LCAwLjc1MDMyNiwgMS4wODYyMSwgMS41MDkzNSwgMS45MzM2NSwgMi4zNTg1OCwgMi43ODM2OSIsIFwKLSAgICAgICAgICAiMC4zNzcwNSwgMC43NzEyNzUsIDEuMTA3MTUsIDEuNTMwMjgsIDEuOTU0NTgsIDIuMzc5NTEsIDIuODA0NjIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjk2NDg3LCAxLjIzODE3LCAyLjAxNzIzLCAyLjk5MTc3LCAzLjk2OTAxLCA0Ljk0NTUzLCA1LjkyMDI3IiwgXAotICAgICAgICAgICIwLjI5NjQ0MSwgMS4yMzg0NywgMi4wMTY5LCAyLjk5MjA4LCAzLjk2ODg5LCA0Ljk0NDg3LCA1LjkxOTg4IiwgXAotICAgICAgICAgICIwLjI5NjQ2NywgMS4yMzgsIDIuMDE3MDQsIDIuOTkxMDYsIDMuOTY4ODEsIDQuOTQ1ODIsIDUuOTIiLCBcCi0gICAgICAgICAgIjAuMjk2NDMxLCAxLjIzNzk2LCAyLjAxNzA3LCAyLjk5MzAzLCAzLjk2ODkyLCA0Ljk0NTIxLCA1LjkyMDciLCBcCi0gICAgICAgICAgIjAuMjk2NDYzLCAxLjIzODMxLCAyLjAxNzUzLCAyLjk5MjksIDMuOTY4NCwgNC45NDUxMywgNS45MjAzNSIsIFwKLSAgICAgICAgICAiMC4yOTY0NTMsIDEuMjM4LCAyLjAxNzM1LCAyLjk5Mzc1LCAzLjk2OTAyLCA0Ljk0NTIyLCA1LjkyMDIzIiwgXAotICAgICAgICAgICIwLjI5NjQ1MSwgMS4yMzc0NywgMi4wMTY0NiwgMi45OTI2OCwgMy45NjgzOSwgNC45NDUyMywgNS45MjAwOCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNzc2NjEsIDAuNDk0MTYsIDAuNzU1NzM1LCAxLjA4NTA2LCAxLjQxMzQ2LCAxLjc0Mzc3LCAyLjA3MjQ0IiwgXAotICAgICAgICAgICIwLjE4OTI4NywgMC41MDU0ODMsIDAuNzY1NjE1LCAxLjA5NDU4LCAxLjQyMzIzLCAxLjc1MzA4LCAyLjA4MTg0IiwgXAotICAgICAgICAgICIwLjIwMzE2OSwgMC41MTkzNywgMC43Nzk3OTYsIDEuMTA2NjIsIDEuNDM0MjksIDEuNzYzODYsIDIuMDkyNjIiLCBcCi0gICAgICAgICAgIjAuMjE2NjA5LCAwLjUzMjg4MywgMC43OTMwMzEsIDEuMTIwMjEsIDEuNDQ4NDIsIDEuNzc2MTksIDIuMTA0NCIsIFwKLSAgICAgICAgICAiMC4yMjk0MDIsIDAuNTQ1ODM1LCAwLjgwNjA0LCAxLjEzMzIxLCAxLjQ2MTI0LCAxLjc4OTIxLCAyLjExNzU4IiwgXAotICAgICAgICAgICIwLjI0ODQxMSwgMC41NjUxMTksIDAuODI1Mzk4LCAxLjE1MzA1LCAxLjQ4MDA1LCAxLjgwODU3LCAyLjEzNjkyIiwgXAotICAgICAgICAgICIwLjI2MzMzOSwgMC41ODA0MTEsIDAuODQwODM3LCAxLjE2ODE4LCAxLjQ5NTQ0LCAxLjgyMzk1LCAyLjE1MjMyIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIyMzEzNywgMC45MTQ5NTYsIDEuNDg3MzYsIDIuMjA3NDgsIDIuOTI2MzgsIDMuNjQ3MTIsIDQuMzY3NzIiLCBcCi0gICAgICAgICAgIjAuMjIzNzk1LCAwLjkxNTA4NSwgMS40ODcyMSwgMi4yMDc3MiwgMi45MjgwNSwgMy42NDcwMSwgNC4zNjc0OSIsIFwKLSAgICAgICAgICAiMC4yMjM4MTksIDAuOTE1MTU0LCAxLjQ4NzM1LCAyLjIwNzc1LCAyLjkyNzI1LCAzLjY0Njk1LCA0LjM2NzQzIiwgXAotICAgICAgICAgICIwLjIyMzQ2MywgMC45MTUwNDksIDEuNDg3OTcsIDIuMjA2NTgsIDIuOTI3ODgsIDMuNjQ2ODYsIDQuMzY2ODkiLCBcCi0gICAgICAgICAgIjAuMjQwNTcyLCAwLjkxNDk1NywgMS40ODc5MiwgMi4yMDY5LCAyLjkyNzY5LCAzLjY0Njg5LCA0LjM2NjkyIiwgXAotICAgICAgICAgICIwLjI1ODUxOCwgMC45MTQ3OTEsIDEuNDg3NjQsIDIuMjA3OTksIDIuOTI3NDMsIDMuNjQ2NzYsIDQuMzY4OTciLCBcCi0gICAgICAgICAgIjAuMjY1NjQyLCAwLjkxNDY1LCAxLjQ4Nzc1LCAyLjIwNjU0LCAyLjkyNjI4LCAzLjY0NjE4LCA0LjM2NzE2Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE5ODI0MSwgMC42MjI3NSwgMC45NjI0OTMsIDEuMzg2MTksIDEuODEwMjUsIDIuMjM1MjMsIDIuNjU5NzEiLCBcCi0gICAgICAgICAgIjAuMjA5NTIzLCAwLjYzMjY1OSwgMC45NzIzMzQsIDEuMzk1OTgsIDEuODIwMDQsIDIuMjQ0NzksIDIuNjY5ODMiLCBcCi0gICAgICAgICAgIjAuMjI0MDU2LCAwLjY0NDgxOCwgMC45ODQzMzMsIDEuNDA3OTUsIDEuODMyMDEsIDIuMjU2NjYsIDIuNjgxNDMiLCBcCi0gICAgICAgICAgIjAuMjM4NDIxLCAwLjY1Njc3NCwgMC45OTYyMjMsIDEuNDE5NzEsIDEuODQzNjksIDIuMjY4MDksIDIuNjkyOTQiLCBcCi0gICAgICAgICAgIjAuMjUyNTU3LCAwLjY2OTA2NiwgMS4wMDgzNCwgMS40MzE3OCwgMS44NTU2NywgMi4yNzk5MiwgMi43MDQ4NSIsIFwKLSAgICAgICAgICAiMC4yNzQ3ODIsIDAuNjg4MzA1LCAxLjAyNzQxLCAxLjQ1MSwgMS44NzQ3NSwgMi4yOTg4NSwgMi43MjM4NCIsIFwKLSAgICAgICAgICAiMC4yOTMwMDIsIDAuNzA1MDU4LCAxLjA0NDM2LCAxLjQ2NzcsIDEuODkxNDUsIDIuMzE2NDQsIDIuNzQyMjMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjc0NTg3LCAxLjIzNjA1LCAyLjAxNjcyLCAyLjk5MTg4LCAzLjk2ODgsIDQuOTQ1MzcsIDUuOTIwODEiLCBcCi0gICAgICAgICAgIjAuMjc1MDU0LCAxLjIzNTk5LCAyLjAxNjU4LCAyLjk5Mjg0LCAzLjk2ODk0LCA0Ljk0NDE0LCA1LjkyMTY4IiwgXAotICAgICAgICAgICIwLjI3NTUxNCwgMS4yMzYyLCAyLjAxNjk0LCAyLjk5MjU0LCAzLjk2OTAzLCA0Ljk0NDQxLCA1LjkxOTY5IiwgXAotICAgICAgICAgICIwLjI4MDcyMywgMS4yMzYwNywgMi4wMTU3NSwgMi45OTI1MywgMy45NjkyNCwgNC45NDQ0NywgNS45MTgyMyIsIFwKLSAgICAgICAgICAiMC4zMDc2OTUsIDEuMjM1OTIsIDIuMDE3MjYsIDIuOTk0MzgsIDMuOTY4MzMsIDQuOTQxMDMsIDUuOTE5MDMiLCBcCi0gICAgICAgICAgIjAuMzE2MTQ4LCAxLjIzNTg4LCAyLjAxNjU2LCAyLjk5MzUsIDMuOTY4MTYsIDQuOTQ2NzQsIDUuOTE4MjYiLCBcCi0gICAgICAgICAgIjAuMzIxMTI2LCAxLjIzNTg2LCAyLjAxNjUyLCAyLjk5MzY1LCAzLjk2OTE1LCA0Ljk0Njg0LCA1LjkxODI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNJIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDIzNTYsIDAuNDMxMTMsIDAuNjk0NzYsIDEuMDI0MjksIDEuMzUzOTEsIDEuNjg0MTEsIDIuMDEzMzYiLCBcCi0gICAgICAgICAgIjAuMTEzNjE0LCAwLjQ0MjQ0OCwgMC43MDU3MTQsIDEuMDM1MjYsIDEuMzY0OTYsIDEuNjk0NTksIDIuMDI0MTYiLCBcCi0gICAgICAgICAgIjAuMTI3MjU2LCAwLjQ1NTQ5NywgMC43MTg4NzUsIDEuMDQ4NCwgMS4zNzgwOSwgMS43MDc2OCwgMi4wMzc4NSIsIFwKLSAgICAgICAgICAiMC4xNDA5NDQsIDAuNDY4NzgsIDAuNzMyMjksIDEuMDYxNiwgMS4zOTE0NSwgMS43MjA4LCAyLjA1MDQiLCBcCi0gICAgICAgICAgIjAuMTU0Mzc5LCAwLjQ4MjQxLCAwLjc0NTQxOSwgMS4wNzUsIDEuNDA0MjUsIDEuNzMzOTEsIDIuMDYzNDUiLCBcCi0gICAgICAgICAgIjAuMTc1NDIzLCAwLjUwMzA3MywgMC43NjY0MzIsIDEuMDk1NTUsIDEuNDI1MDMsIDEuNzU1MTUsIDIuMDg0MzYiLCBcCi0gICAgICAgICAgIjAuMTkzMjQ5LCAwLjUyMTM0OCwgMC43ODQ2MDksIDEuMTE0MTgsIDEuNDQzMywgMS43NzI4MSwgMi4xMDI0NSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xOTMxNjQsIDAuOTEwODY4LCAxLjQ4Njc0LCAyLjIwODA0LCAyLjkyODA4LCAzLjY0NzY1LCA0LjM2NzU5IiwgXAotICAgICAgICAgICIwLjE5MzY3NywgMC45MTEzMTUsIDEuNDg3MSwgMi4yMDY0LCAyLjkyODM4LCAzLjY0NzM4LCA0LjM2NjgxIiwgXAotICAgICAgICAgICIwLjE5NTcyNiwgMC45MTA4NjksIDEuNDg3NDUsIDIuMjA3NjcsIDIuOTI3MDYsIDMuNjQ3NzUsIDQuMzY3OTYiLCBcCi0gICAgICAgICAgIjAuMTk5NDQ1LCAwLjkxMDk1NSwgMS40ODc1MywgMi4yMDc0NiwgMi45MjczNSwgMy42NDkwOSwgNC4zNjcxNiIsIFwKLSAgICAgICAgICAiMC4yMDQ0MzYsIDAuOTExNTA3LCAxLjQ4Njg0LCAyLjIwNzY1LCAyLjkyODAxLCAzLjY0ODE2LCA0LjM2OTA0IiwgXAotICAgICAgICAgICIwLjIxMzQwNiwgMC45MTE2OTYsIDEuNDg3MzQsIDIuMjA2NzQsIDIuOTI4MiwgMy42NDc3OSwgNC4zNjkwOSIsIFwKLSAgICAgICAgICAiMC4yMjIxODgsIDAuOTEyMjc0LCAxLjQ4Njk0LCAyLjIwODEsIDIuOTI3MzEsIDMuNjQ4NzgsIDQuMzY5MzkiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTM0Mzc4LCAwLjU1ODY4NiwgMC44OTkwMTEsIDEuMzI0NTYsIDEuNzQ5OTUsIDIuMTc1NjcsIDIuNjAxMTIiLCBcCi0gICAgICAgICAgIjAuMTQ1ODM3LCAwLjU3MDE4MywgMC45MTA1MjksIDEuMzM1ODksIDEuNzYxNTMsIDIuMTg2OTUsIDIuNjEyNjQiLCBcCi0gICAgICAgICAgIjAuMTYwNzAyLCAwLjU4NDc2OCwgMC45MjUxMjUsIDEuMzUwNDUsIDEuNzc2MDgsIDIuMjAxNDcsIDIuNjI3MjMiLCBcCi0gICAgICAgICAgIjAuMTc1Mjg5LCAwLjU5OTY5MSwgMC45NDAwMzksIDEuMzY1MzQsIDEuNzkxMDYsIDIuMjE2NDQsIDIuNjQyMTEiLCBcCi0gICAgICAgICAgIjAuMTg5OTAxLCAwLjYxNDM1LCAwLjk1NDYzNCwgMS4zODAyNywgMS44MDU4NywgMi4yMzEyLCAyLjY1NzExIiwgXAotICAgICAgICAgICIwLjIxMzUyOCwgMC42MzY4NjMsIDAuOTc4MTczLCAxLjQwMzYyLCAxLjgyOTMyLCAyLjI1NTEsIDIuNjgwMjUiLCBcCi0gICAgICAgICAgIjAuMjMzNzYyLCAwLjY1ODAyNiwgMC45OTg3MTksIDEuNDI0MDYsIDEuODQ5NjYsIDIuMjc1MjQsIDIuNzAwODYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjYyMTI5LCAxLjIzNTIsIDIuMDE1ODgsIDIuOTkxMzUsIDMuOTY3MTYsIDQuOTQzNjcsIDUuOTE5MSIsIFwKLSAgICAgICAgICAiMC4yNjIyMzYsIDEuMjM1MTEsIDIuMDE1NCwgMi45OTE2NSwgMy45Njc3OSwgNC45NDAzLCA1LjkxOTk1IiwgXAotICAgICAgICAgICIwLjI2MjY2NCwgMS4yMzUwMywgMi4wMTU0MiwgMi45OTE3NCwgMy45NjcxNSwgNC45NDA5MSwgNS45MjAwNyIsIFwKLSAgICAgICAgICAiMC4yNjQzMDEsIDEuMjM1MzUsIDIuMDE1NTEsIDIuOTg4NDksIDMuOTY3NjYsIDQuOTQzNDksIDUuOTE3OTIiLCBcCi0gICAgICAgICAgIjAuMjY3NTcsIDEuMjM0NCwgMi4wMTUxMSwgMi45OTE1NSwgMy45NjY0OCwgNC45NDIxNiwgNS45MTc0MiIsIFwKLSAgICAgICAgICAiMC4yNzQ2NzksIDEuMjM0OTksIDIuMDE1MTYsIDIuOTkyMDMsIDMuOTY3NDUsIDQuOTQzMzEsIDUuOTE0OTMiLCBcCi0gICAgICAgICAgIjAuMjgyMzE1LCAxLjIzNTIsIDIuMDE1NTksIDIuOTkxMTMsIDMuOTY2NzMsIDQuOTQzMzMsIDUuOTE2ODUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTM5NDUsIDAuMDEzNTMyLCAwLjAxMzQ0NSwgMC4wMTMzOTEsIDAuMDEzMzYsIDAuMDEzMzQsIDAuMDEzMzI3IiwgXAotICAgICAgICAgICIwLjAxMzkyMiwgMC4wMTM1MDksIDAuMDEzNDIxLCAwLjAxMzM2NywgMC4wMTMzMzYsIDAuMDEzMzE3LCAwLjAxMzMwMyIsIFwKLSAgICAgICAgICAiMC4wMTM5MDgsIDAuMDEzNDkyLCAwLjAxMzQwNCwgMC4wMTMzNDksIDAuMDEzMzIsIDAuMDEzMywgMC4wMTMyODMiLCBcCi0gICAgICAgICAgIjAuMDEzODk4LCAwLjAxMzQ4LCAwLjAxMzM5MSwgMC4wMTMzMzYsIDAuMDEzMzA1LCAwLjAxMzI4NSwgMC4wMTMyNzEiLCBcCi0gICAgICAgICAgIjAuMDEzODksIDAuMDEzNDcxLCAwLjAxMzM4MiwgMC4wMTMzMjQsIDAuMDEzMjk0LCAwLjAxMzI3MiwgMC4wMTMyNTgiLCBcCi0gICAgICAgICAgIjAuMDEzODg5LCAwLjAxMzQ2NSwgMC4wMTMzNzQsIDAuMDEzMzE4LCAwLjAxMzI4NSwgMC4wMTMyNjUsIDAuMDEzMjUyIiwgXAotICAgICAgICAgICIwLjAxMzg4OSwgMC4wMTM0NjQsIDAuMDEzMzcxLCAwLjAxMzMxMywgMC4wMTMyODEsIDAuMDEzMjYyLCAwLjAxMzI0NiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMTkwNywgMC4wMTE0NDgsIDAuMDExMzUxLCAwLjAxMTI5MiwgMC4wMTEyNTksIDAuMDExMjM4LCAwLjAxMTIyNCIsIFwKLSAgICAgICAgICAiMC4wMTE4NjQsIDAuMDExNDA1LCAwLjAxMTMwOSwgMC4wMTEyNTEsIDAuMDExMjE4LCAwLjAxMTE5NywgMC4wMTExODMiLCBcCi0gICAgICAgICAgIjAuMDExODQsIDAuMDExMzc5LCAwLjAxMTI4NCwgMC4wMTEyMjQsIDAuMDExMTkyLCAwLjAxMTE3MSwgMC4wMTExNTYiLCBcCi0gICAgICAgICAgIjAuMDExODE3LCAwLjAxMTM2MywgMC4wMTEyNjYsIDAuMDExMjA2LCAwLjAxMTE3MywgMC4wMTExNTIsIDAuMDExMTM4IiwgXAotICAgICAgICAgICIwLjAxMTgwOSwgMC4wMTEzNTMsIDAuMDExMjU1LCAwLjAxMTE5NSwgMC4wMTExNjIsIDAuMDExMTQxLCAwLjAxMTEyNiIsIFwKLSAgICAgICAgICAiMC4wMTE3OTMsIDAuMDExMzM1LCAwLjAxMTIzNywgMC4wMTExNzcsIDAuMDExMTQ0LCAwLjAxMTEyMywgMC4wMTExMDgiLCBcCi0gICAgICAgICAgIjAuMDExNzg5LCAwLjAxMTMzLCAwLjAxMTIzMSwgMC4wMTExNzEsIDAuMDExMTM3LCAwLjAxMTExNiwgMC4wMTExMDEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTM2OTQsIDAuMDEzNjU0LCAwLjAxMzY0OSwgMC4wMTM2NDUsIDAuMDEzNjQ0LCAwLjAxMzY0MiwgMC4wMTM2NDIiLCBcCi0gICAgICAgICAgIjAuMDEzNjc4LCAwLjAxMzYzNiwgMC4wMTM2MjgsIDAuMDEzNjI0LCAwLjAxMzYyMiwgMC4wMTM2MjEsIDAuMDEzNjIiLCBcCi0gICAgICAgICAgIjAuMDEzNjg4LCAwLjAxMzY0LCAwLjAxMzYzMywgMC4wMTM2MjksIDAuMDEzNjMsIDAuMDEzNjI2LCAwLjAxMzYyNSIsIFwKLSAgICAgICAgICAiMC4wMTM3MSwgMC4wMTM2NTYsIDAuMDEzNjQ2LCAwLjAxMzY0NSwgMC4wMTM2NDUsIDAuMDEzNjQ0LCAwLjAxMzYzNyIsIFwKLSAgICAgICAgICAiMC4wMTM3NDQsIDAuMDEzNjg0LCAwLjAxMzY3NiwgMC4wMTM2NzEsIDAuMDEzNjY3LCAwLjAxMzY2NywgMC4wMTM2NjciLCBcCi0gICAgICAgICAgIjAuMDEzNzg3LCAwLjAxMzcxNCwgMC4wMTM3MDQsIDAuMDEzNzA2LCAwLjAxMzcwMywgMC4wMTM3MDEsIDAuMDEzNyIsIFwKLSAgICAgICAgICAiMC4wMTM4NSwgMC4wMTM3NzIsIDAuMDEzNzYxLCAwLjAxMzc1NSwgMC4wMTM3NTIsIDAuMDEzNzQ5LCAwLjAxMzc0OCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNzI1MywgMC4wMDcyNTMsIDAuMDA3MjUyLCAwLjAwNzI1MiwgMC4wMDcyNTIsIDAuMDA3MjUyLCAwLjAwNzI1MiIsIFwKLSAgICAgICAgICAiMC4wMDcxNTgsIDAuMDA3MTY1LCAwLjAwNzE2NSwgMC4wMDcxNjUsIDAuMDA3MTY2LCAwLjAwNzE2NiwgMC4wMDcxNjYiLCBcCi0gICAgICAgICAgIjAuMDA3MTIzLCAwLjAwNzEzOSwgMC4wMDcxNDEsIDAuMDA3MTQyLCAwLjAwNzE0MywgMC4wMDcxNDMsIDAuMDA3MTQzIiwgXAotICAgICAgICAgICIwLjAwNzExNCwgMC4wMDcxNCwgMC4wMDcxNDMsIDAuMDA3MTQ1LCAwLjAwNzE0NiwgMC4wMDcxNDYsIDAuMDA3MTQ3IiwgXAotICAgICAgICAgICIwLjAwNzEyNCwgMC4wMDcxNTUsIDAuMDA3MTU5LCAwLjAwNzE2MSwgMC4wMDcxNjMsIDAuMDA3MTYzLCAwLjAwNzE2NCIsIFwKLSAgICAgICAgICAiMC4wMDcxNTUsIDAuMDA3MTk5LCAwLjAwNzIwNiwgMC4wMDcyMDksIDAuMDA3MjExLCAwLjAwNzIxMiwgMC4wMDcyMTIiLCBcCi0gICAgICAgICAgIjAuMDA3MTkzLCAwLjAwNzI0MSwgMC4wMDcyNSwgMC4wMDcyNTQsIDAuMDA3MjU2LCAwLjAwNzI1OCwgMC4wMDcyNTgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0MzQxLCAwLjAwNDM0MSwgMC4wMDQzNDEsIDAuMDA0MzQxLCAwLjAwNDM0MSwgMC4wMDQzNDEsIDAuMDA0MzQxIiwgXAotICAgICAgICAgICIwLjAwNDMxOSwgMC4wMDQzMjMsIDAuMDA0MzI2LCAwLjAwNDMyMiwgMC4wMDQzMjgsIDAuMDA0MzIyLCAwLjAwNDMyMiIsIFwKLSAgICAgICAgICAiMC4wMDQzMDksIDAuMDA0MzE2LCAwLjAwNDMxNiwgMC4wMDQzMTcsIDAuMDA0MzE3LCAwLjAwNDMyLCAwLjAwNDMxNyIsIFwKLSAgICAgICAgICAiMC4wMDQzMDUsIDAuMDA0MzE0LCAwLjAwNDMxNiwgMC4wMDQzMTYsIDAuMDA0MzE3LCAwLjAwNDMxNywgMC4wMDQzMTgiLCBcCi0gICAgICAgICAgIjAuMDA0MywgMC4wMDQzMTUsIDAuMDA0MzE2LCAwLjAwNDMxOCwgMC4wMDQzMTcsIDAuMDA0MzE4LCAwLjAwNDMxOCIsIFwKLSAgICAgICAgICAiMC4wMDQyOTYsIDAuMDA0MzE0LCAwLjAwNDMxNywgMC4wMDQzMTgsIDAuMDA0MzE5LCAwLjAwNDMxOSwgMC4wMDQzMTkiLCBcCi0gICAgICAgICAgIjAuMDA0MjkzLCAwLjAwNDMxMywgMC4wMDQzMTYsIDAuMDA0MzE4LCAwLjAwNDMxOSwgMC4wMDQzMiwgMC4wMDQzMiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTk3NywgMC4wMDE5NzcsIDAuMDAxOTc3LCAwLjAwMTk3NywgMC4wMDE5NzcsIDAuMDAxOTc3LCAwLjAwMTk3NyIsIFwKLSAgICAgICAgICAiMC4wMDE5MzksIDAuMDAxOTQ1LCAwLjAwMTk0NiwgMC4wMDE5NDYsIDAuMDAxOTQ2LCAwLjAwMTk0NiwgMC4wMDE5NDYiLCBcCi0gICAgICAgICAgIjAuMDAxOTIyLCAwLjAwMTkzNiwgMC4wMDE5MzgsIDAuMDAxOTM4LCAwLjAwMTkzOSwgMC4wMDE5MzksIDAuMDAxOTM5IiwgXAotICAgICAgICAgICIwLjAwMTkxMiwgMC4wMDE5MzIsIDAuMDAxOTM1LCAwLjAwMTkzNywgMC4wMDE5MzcsIDAuMDAxOTM4LCAwLjAwMTkzOCIsIFwKLSAgICAgICAgICAiMC4wMDE5MDQsIDAuMDAxOTMsIDAuMDAxOTM0LCAwLjAwMTkzNiwgMC4wMDE5MzcsIDAuMDAxOTM3LCAwLjAwMTkzOCIsIFwKLSAgICAgICAgICAiMC4wMDE4OTYsIDAuMDAxOTI2LCAwLjAwMTkzMiwgMC4wMDE5MzUsIDAuMDAxOTM2LCAwLjAwMTkzNywgMC4wMDE5MzgiLCBcCi0gICAgICAgICAgIjAuMDAxODkzLCAwLjAwMTkyNiwgMC4wMDE5MzIsIDAuMDAxOTM1LCAwLjAwMTkzNywgMC4wMDE5MzgsIDAuMDAxOTM5Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBBRERGWDIgKgotICogLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChBRERGWDIpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4yNjI1OTk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMjUyNzU1OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMjUyMzY5OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMjUyNzU1OwotICB9Ci0gIHBpbihCKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDI0MTU4NzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDI0MDYzNzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDI0MTU4NzsKLSAgfQotICBwaW4oQ0kpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTg5OTEyOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTg5MDM1OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTg5OTEyOwotICB9Ci0gIHBpbihDTykgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjI2MjIwMTsKLSAgICBmdW5jdGlvbiA6ICIoKChBIEIpKyhCIENJKSkrKENJIEEpKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjQ4NTU0LCAwLjQ0NDAyOSwgMC41ODg3OCwgMC43NjkxMTksIDAuOTUwMzgsIDEuMTI3NzYsIDEuMzExNTYiLCBcCi0gICAgICAgICAgIjAuMjYwMzIyLCAwLjQ1NTUwNiwgMC42MDAyOTUsIDAuNzgwNjcsIDAuOTYwNTU3LCAxLjE0MDMxLCAxLjMyMjg3IiwgXAotICAgICAgICAgICIwLjI3NDAyMiwgMC40Njk0NDMsIDAuNjE0MTk5LCAwLjc5Mzk0OSwgMC45NzM4OTMsIDEuMTU2NjUsIDEuMzM3NzIiLCBcCi0gICAgICAgICAgIjAuMjg4MzE1LCAwLjQ4MzQ2MiwgMC42Mjc5NjcsIDAuODA4Mjc2LCAwLjk4ODk5NSwgMS4xNzAzNywgMS4zNTA1MSIsIFwKLSAgICAgICAgICAiMC4zMDIzMiwgMC40OTc0NywgMC42NDE5NTQsIDAuODIxNTI5LCAxLjAwMTIzLCAxLjE4MzgxLCAxLjM2NDM1IiwgXAotICAgICAgICAgICIwLjMyNDUyNiwgMC41MTk2MDUsIDAuNjY0MTEsIDAuODQzOTI5LCAxLjAyMzM5LCAxLjIwMjg2LCAxLjM4NTk5IiwgXAotICAgICAgICAgICIwLjM0Mzg0MiwgMC41Mzg4NTUsIDAuNjgzMjQ4LCAwLjg2MzAwNiwgMS4wNDI1NiwgMS4yMjQ5NiwgMS40MDUzOSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMjY0ODksIDAuNDczNjk5LCAwLjc1NjAzMywgMS4xMjY5OSwgMS40OTgyNSwgMS44NTk5NCwgMi4yMjY1MSIsIFwKLSAgICAgICAgICAiMC4xMjY2MzUsIDAuNDczNTIzLCAwLjc2MTIzNiwgMS4xMzIyLCAxLjUwMDkzLCAxLjg2OTExLCAyLjIzNTg2IiwgXAotICAgICAgICAgICIwLjEyNjQ1MSwgMC40NzM4NjQsIDAuNzY1ODE5LCAxLjEyNzMsIDEuNDk4NTYsIDEuODYyNzEsIDIuMjM1OCIsIFwKLSAgICAgICAgICAiMC4xMjU1OTYsIDAuNDczODA3LCAwLjc2MzkwNiwgMS4xMjY3MywgMS40OTg2MywgMS44NjU3NiwgMi4yMzUyIiwgXAotICAgICAgICAgICIwLjEyNTI1MywgMC40NzM1NDMsIDAuNzU0MDM5LCAxLjEzMjQ5LCAxLjQ5ODIyLCAxLjg2ODk4LCAyLjIyMDg4IiwgXAotICAgICAgICAgICIwLjEyNTYxOSwgMC40NzM2NTYsIDAuNzY0ODU2LCAxLjEzMTg2LCAxLjQ5ODQ2LCAxLjg2ODUxLCAyLjIzMTI1IiwgXAotICAgICAgICAgICIwLjEyNjA0MywgMC40NzM1MTUsIDAuNzU1NzE1LCAxLjEyODI2LCAxLjQ5ODM3LCAxLjg2MjgxLCAyLjIzMDI5Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIzNTQ5LCAwLjQ1NDk4OCwgMC42MjA4NDUsIDAuODI3OTc5LCAxLjAzMzQzLCAxLjIzOTEzLCAxLjQ0NTc1IiwgXAotICAgICAgICAgICIwLjI0NzIzNSwgMC40NjY3MTIsIDAuNjMyNTc4LCAwLjgzOTcwMywgMS4wNDUxNiwgMS4yNTA4MSwgMS40NTgyOSIsIFwKLSAgICAgICAgICAiMC4yNjE3MywgMC40ODExNywgMC42NDcwNTQsIDAuODUzNjIzLCAxLjA1OTI4LCAxLjI2NTMsIDEuNDcyMTIiLCBcCi0gICAgICAgICAgIjAuMjc1MTg2LCAwLjQ5NDY0MywgMC42NjA1MzcsIDAuODY3MDYsIDEuMDczMjcsIDEuMjc4ODUsIDEuNDg2MjUiLCBcCi0gICAgICAgICAgIjAuMjg4Mzc3LCAwLjUwNzc3LCAwLjY3MzYyOSwgMC44ODAyNDQsIDEuMDg2MjMsIDEuMjkxODcsIDEuNDk4NTEiLCBcCi0gICAgICAgICAgIjAuMzA4NTE4LCAwLjUyNzk4OCwgMC42OTM4NjcsIDAuOTAxMDAzLCAxLjEwNjQ1LCAxLjMxMjExLCAxLjUxOTYiLCBcCi0gICAgICAgICAgIjAuMzI2MDYxLCAwLjU0NTQ4MywgMC43MTEzNSwgMC45MTgwMDYsIDEuMTIzOTUsIDEuMzI5NiwgMS41MzYyMiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMzA4MDMsIDAuNTI1MzkxLCAwLjg0NDgwMSwgMS4yNTE5NiwgMS42NjM0NiwgMi4wNzQxNCwgMi40ODEyMiIsIFwKLSAgICAgICAgICAiMC4xMzE0MTEsIDAuNTI1MzY1LCAwLjg0NDgwNywgMS4yNTE5NywgMS42NjM0OSwgMi4wNzQwOCwgMi40ODA3NSIsIFwKLSAgICAgICAgICAiMC4xMzE5MywgMC41MjUwNDcsIDAuODQ1MTY2LCAxLjI1MjE1LCAxLjY2MzQxLCAyLjA3Mzk0LCAyLjQ4NTAxIiwgXAotICAgICAgICAgICIwLjEzMTU4OSwgMC41MjUwNTYsIDAuODQ0NzgsIDEuMjUyMDQsIDEuNjYzNDYsIDIuMDc0MDksIDIuNDg1MSIsIFwKLSAgICAgICAgICAiMC4xMzEwODcsIDAuNTI1MTIxLCAwLjg0NDc4NCwgMS4yNTIxMiwgMS42NjE4NCwgMi4wNzM5NCwgMi40ODQwOCIsIFwKLSAgICAgICAgICAiMC4xMzAxMzMsIDAuNTI1MTkyLCAwLjg0NDczOCwgMS4yNTIxMywgMS42NjMxOCwgMi4wNzI0MiwgMi40ODM0NyIsIFwKLSAgICAgICAgICAiMC4xMzA4MzEsIDAuNTI1MzM2LCAwLjg0NDc4MSwgMS4yNTE5NCwgMS42NjM0NCwgMi4wNzQwOCwgMi40ODExMiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yNDc4NDksIDAuNDQzMTg4LCAwLjU4Nzk2OCwgMC43NjgxOTgsIDAuOTQ3ODE5LCAxLjEyNzQ2LCAxLjMxMDY4IiwgXAotICAgICAgICAgICIwLjI1ODg5NSwgMC40NTQyMDMsIDAuNTk5MDE3LCAwLjc3ODgyOCwgMC45NTg3NjksIDEuMTQxNjksIDEuMzIxNjgiLCBcCi0gICAgICAgICAgIjAuMjcxNjA3LCAwLjQ2NzA5NiwgMC42MTE4NTEsIDAuNzkxNjIsIDAuOTcxNTg5LCAxLjE1NDM0LCAxLjMzNTE2IiwgXAotICAgICAgICAgICIwLjI4NDkyMiwgMC40ODAzNjgsIDAuNjI1MTY3LCAwLjgwNDk0MSwgMC45ODY0MTYsIDEuMTY2MzQsIDEuMzQ3ODEiLCBcCi0gICAgICAgICAgIjAuMjk4MzI2LCAwLjQ5Mzc2OSwgMC42MzgyNTIsIDAuODE4MzM3LCAwLjk5ODMxOSwgMS4xNzczOSwgMS4zNTc2OCIsIFwKLSAgICAgICAgICAiMC4zMjAzMzksIDAuNTE1NTY2LCAwLjY2MDM0OSwgMC44NDAwNjUsIDEuMDIwMDgsIDEuMjAyNzcsIDEuMzgyMjEiLCBcCi0gICAgICAgICAgIjAuMzM5Mzc5LCAwLjUzNDU4LCAwLjY3OTM5MSwgMC44NTk3NTQsIDEuMDQwNzMsIDEuMjIyNzYsIDEuNDAxOTIiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTI2Mjc1LCAwLjQ3MzI4NiwgMC43NTkxNTEsIDEuMTI4MTIsIDEuNDk3MTcsIDEuODYxMTUsIDIuMjM2ODMiLCBcCi0gICAgICAgICAgIjAuMTI2NDMyLCAwLjQ3MzIzNCwgMC43NTUxMSwgMS4xMzM2NywgMS40OTcyMiwgMS44NTkzMiwgMi4yMzUwNSIsIFwKLSAgICAgICAgICAiMC4xMjU3ODEsIDAuNDczNzU2LCAwLjc2NzU4MywgMS4xMjYwNSwgMS40OTU5NSwgMS44Njc1NiwgMi4yMTIyNyIsIFwKLSAgICAgICAgICAiMC4xMjU4LCAwLjQ3MzU0OSwgMC43NTU5MjksIDEuMTI1OTEsIDEuNDk4ODMsIDEuODY4MDYsIDIuMjMwMDYiLCBcCi0gICAgICAgICAgIjAuMTI1OTMzLCAwLjQ3MzU4MywgMC43NjgwNzEsIDEuMTM0MTEsIDEuNDk4NDIsIDEuODY3NTEsIDIuMjI1NDEiLCBcCi0gICAgICAgICAgIjAuMTI2MDYzLCAwLjQ3MzE2NywgMC43NTQ0NDIsIDEuMTI2MDEsIDEuNDk3NDUsIDEuODY3MjksIDIuMjIzOSIsIFwKLSAgICAgICAgICAiMC4xMjY0MTcsIDAuNDczNTk4LCAwLjc2MTg1MiwgMS4xMjk0MywgMS40OTc5NywgMS44Njg0OCwgMi4yMzU1NyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMzA3MywgMC40NTMwMzksIDAuNjE5MDEsIDAuODI1NTgyLCAxLjAzMTI4LCAxLjIzNzE3LCAxLjQ0MzY5IiwgXAotICAgICAgICAgICIwLjI0MjQ2NiwgMC40NjQ4NDcsIDAuNjMwODE1LCAwLjgzNzQ1OCwgMS4wNDI4NiwgMS4yNDg5OSwgMS40NTU0NyIsIFwKLSAgICAgICAgICAiMC4yNTY3NDMsIDAuNDc5MDc3LCAwLjY0NTA0MywgMC44NTE3MjQsIDEuMDU3NzcsIDEuMjYzMjIsIDEuNDY5NjgiLCBcCi0gICAgICAgICAgIjAuMjcwMTU1LCAwLjQ5MjUxNCwgMC42NTg0NDcsIDAuODY1MTc4LCAxLjA3MTE3LCAxLjI3NjYyLCAxLjQ4MzA1IiwgXAotICAgICAgICAgICIwLjI4MzA5MSwgMC41MDU0NjQsIDAuNjcxMzQsIDAuODc4MTc4LCAxLjA4NDA0LCAxLjI4OTQ5LCAxLjQ5NTk2IiwgXAotICAgICAgICAgICIwLjMwMzI1NCwgMC41MjU2MzcsIDAuNjkxNTE5LCAwLjg5ODM0NiwgMS4xMDQyMiwgMS4zMDk2NywgMS41MTYxNCIsIFwKLSAgICAgICAgICAiMC4zMjA2MzEsIDAuNTQyOTA4LCAwLjcwODkwMywgMC45MTYxMjcsIDEuMTIxNTcsIDEuMzI3MDMsIDEuNTMzMzkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTM0NzQ0LCAwLjUyNjgyLCAwLjg0NTMwMywgMS4yNTMyNCwgMS42NjMzNCwgMi4wNzI5OCwgMi40ODQ3NCIsIFwKLSAgICAgICAgICAiMC4xMzYxNjUsIDAuNTI2Nzg4LCAwLjg0NTM4NiwgMS4yNTMyLCAxLjY2MzMzLCAyLjA3Mjc5LCAyLjQ4NDgyIiwgXAotICAgICAgICAgICIwLjEzNjE4NywgMC41MjY4MDQsIDAuODQ1NDMsIDEuMjUzNDEsIDEuNjYxNTMsIDIuMDcxNjEsIDIuNDgyMzkiLCBcCi0gICAgICAgICAgIjAuMTM2MDksIDAuNTI2ODg2LCAwLjg0NTM0OSwgMS4yNTIxNywgMS42NjE1OCwgMi4wNzI5MywgMi40ODI0NiIsIFwKLSAgICAgICAgICAiMC4xMzYxMTgsIDAuNTI3MTA4LCAwLjg0NTI1OCwgMS4yNTMyMywgMS42NjMzMywgMi4wNzExOSwgMi40ODE5NyIsIFwKLSAgICAgICAgICAiMC4xMzU5NTcsIDAuNTI3MTI5LCAwLjg0NTI1OCwgMS4yNTE5LCAxLjY2MzM4LCAyLjA3NDEyLCAyLjQ4MTg0IiwgXAotICAgICAgICAgICIwLjEzNTk5MiwgMC41MjY1MzcsIDAuODQ1NTA4LCAxLjI1MiwgMS42NjM0MiwgMi4wNzQxMiwgMi40ODAzNCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjMxNjQ5LCAwLjQyNjcyMywgMC41NzEyMTYsIDAuNzUwNzIxLCAwLjkzMDMzNiwgMS4xMDk3MywgMS4yOTEzNCIsIFwKLSAgICAgICAgICAiMC4yNDI1MjYsIDAuNDM3NjE3LCAwLjU4MjEyLCAwLjc2MTkzNCwgMC45NDI1ODMsIDEuMTIxMDksIDEuMzAyMDUiLCBcCi0gICAgICAgICAgIjAuMjU2NDE2LCAwLjQ1MTQ0MSwgMC41OTU5NzUsIDAuNzc1NDMxLCAwLjk1NTA4MSwgMS4xMzQ1LCAxLjMxNjEyIiwgXAotICAgICAgICAgICIwLjI2OTIxMSwgMC40NjQzNjksIDAuNjA4ODYzLCAwLjc4OTE3MSwgMC45Njc3ODYsIDEuMTQ3NTYsIDEuMzI4NyIsIFwKLSAgICAgICAgICAiMC4yODI4NjQsIDAuNDc3OTU4LCAwLjYyMjQ2NSwgMC44MDE4ODMsIDAuOTgyNDk4LCAxLjE2MDkzLCAxLjM0MjQ3IiwgXAotICAgICAgICAgICIwLjMwNDg5MiwgMC40OTk5NDQsIDAuNjQ0NDc1LCAwLjgyMzg1OSwgMS4wMDM1NSwgMS4xODI5NywgMS4zNjQ2MyIsIFwKLSAgICAgICAgICAiMC4zMjQzMzUsIDAuNTE5MzQxLCAwLjY2Mzg0NywgMC44NDM0MTEsIDEuMDIzMDEsIDEuMjAyNDUsIDEuMzgzOTkiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTI3MDM5LCAwLjQ3MzU0MywgMC43NjU5ODMsIDEuMTI3NzYsIDEuNDk4OSwgMS44Njg0MSwgMi4yMTAwMyIsIFwKLSAgICAgICAgICAiMC4xMjc2MjYsIDAuNDczNjkzLCAwLjc2MTk3MSwgMS4xMjcxLCAxLjQ5ODA5LCAxLjg2OTA5LCAyLjIxNTgzIiwgXAotICAgICAgICAgICIwLjEyNzYxOSwgMC40NzM1MDIsIDAuNzU4MzkzLCAxLjEzMDk4LCAxLjQ5ODgxLCAxLjg2ODU1LCAyLjIxMjQ1IiwgXAotICAgICAgICAgICIwLjEyNzYxNywgMC40NzMzOTUsIDAuNzU2MjE3LCAxLjEzMDk3LCAxLjQ5ODkzLCAxLjg2OTAxLCAyLjIyMDI5IiwgXAotICAgICAgICAgICIwLjEyNzIzNSwgMC40NzM1NzgsIDAuNzU3ODI4LCAxLjEyODE1LCAxLjQ5NzMsIDEuODY4ODEsIDIuMjEzOTgiLCBcCi0gICAgICAgICAgIjAuMTI3OTcyLCAwLjQ3MzQzMywgMC43NTYyMzEsIDEuMTMxMzgsIDEuNDk4OTMsIDEuODY4NTUsIDIuMjE1MDIiLCBcCi0gICAgICAgICAgIjAuMTI3OTc3LCAwLjQ3MzU0OSwgMC43NjIwMTcsIDEuMTMwOTYsIDEuNDk4NiwgMS44Njg1MSwgMi4yMTIwNSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMjE4MDIsIDAuNDQ0NzA0LCAwLjYxMDY3MSwgMC44MTc3NTgsIDEuMDIzMjYsIDEuMjI4NywgMS40MzU0IiwgXAotICAgICAgICAgICIwLjIzMjIwMiwgMC40NTUwODcsIDAuNjIwODE0LCAwLjgyNjg2NCwgMS4wMzM2OCwgMS4yMzkxMywgMS40NDU3NCIsIFwKLSAgICAgICAgICAiMC4yNDUyOTUsIDAuNDY4MjM2LCAwLjYzNDExOSwgMC44NDA4ODQsIDEuMDQ2NzcsIDEuMjUyMjEsIDEuNDU4NzQiLCBcCi0gICAgICAgICAgIjAuMjU4Mjc3LCAwLjQ4MTE3NSwgMC42NDcwNywgMC44NTQyNzIsIDEuMDU5NjksIDEuMjY1MTQsIDEuNDcxMjQiLCBcCi0gICAgICAgICAgIjAuMjcxODQsIDAuNDk0ODA1LCAwLjY2MDY5NSwgMC44Njc0NTYsIDEuMDczMzYsIDEuMjc4OCwgMS40ODUzMSIsIFwKLSAgICAgICAgICAiMC4yOTMwNjgsIDAuNTE1OTQxLCAwLjY4MTkyMiwgMC44ODkxMzksIDEuMDk0NTcsIDEuMzAwMDMsIDEuNTA2MzkiLCBcCi0gICAgICAgICAgIjAuMzExODA0LCAwLjUzNDY3NCwgMC43MDA2NTIsIDAuOTA3MjczLCAxLjExMzM0LCAxLjMxODc4LCAxLjUyNTM2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEzODkyLCAwLjUyNzQ5MiwgMC44NDU2NTMsIDEuMjUwNjksIDEuNjYxODEsIDIuMDcwOTMsIDIuNDgyNjEiLCBcCi0gICAgICAgICAgIjAuMTM4NDEsIDAuNTI3MjQxLCAwLjg0NjQ4OCwgMS4yNTEzOSwgMS42NjE4MiwgMi4wNzExNSwgMi40ODI0IiwgXAotICAgICAgICAgICIwLjEzOTAxMywgMC41Mjc3ODMsIDAuODQ1NTg4LCAxLjI1MTEzLCAxLjY2MTgzLCAyLjA3MTE4LCAyLjQ3OTg2IiwgXAotICAgICAgICAgICIwLjEzODE4OCwgMC41Mjc2OTIsIDAuODQ1NjQxLCAxLjI1MDg3LCAxLjY2MTczLCAyLjA3MTE3LCAyLjQ4MDAzIiwgXAotICAgICAgICAgICIwLjEzOTE4MSwgMC41Mjc4LCAwLjg0NTU5MiwgMS4yNTEwOSwgMS42NjIwNSwgMi4wNzE1NSwgMi40ODMzMSIsIFwKLSAgICAgICAgICAiMC4xMzkyMDUsIDAuNTI3MTg0LCAwLjg0NTkwNywgMS4yNTEwMSwgMS42NjE4LCAyLjA3MTE1LCAyLjQ4MDI1IiwgXAotICAgICAgICAgICIwLjEzOTI1NSwgMC41Mjc0NjQsIDAuODQ1ODIxLCAxLjI1MDkxLCAxLjY2MTc5LCAyLjA3MTI0LCAyLjQ4MjUxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyMzY4LCAwLjAwMjQzNCwgMC4wMDI0NDUsIDAuMDAyNDUxLCAwLjAwMjQ1NCwgMC4wMDI0NTYsIDAuMDAyNDU3IiwgXAotICAgICAgICAgICIwLjAwMjM1OSwgMC4wMDI0MjUsIDAuMDAyNDM2LCAwLjAwMjQ0MSwgMC4wMDI0NDUsIDAuMDAyNDQ3LCAwLjAwMjQ0OCIsIFwKLSAgICAgICAgICAiMC4wMDIzNTUsIDAuMDAyNDIxLCAwLjAwMjQzMiwgMC4wMDI0MzgsIDAuMDAyNDQxLCAwLjAwMjQ0MywgMC4wMDI0NDUiLCBcCi0gICAgICAgICAgIjAuMDAyMzUyLCAwLjAwMjQxOCwgMC4wMDI0MjksIDAuMDAyNDM1LCAwLjAwMjQzOCwgMC4wMDI0NCwgMC4wMDI0NDIiLCBcCi0gICAgICAgICAgIjAuMDAyMzUsIDAuMDAyNDE2LCAwLjAwMjQyNywgMC4wMDI0MzMsIDAuMDAyNDM2LCAwLjAwMjQzOSwgMC4wMDI0NCIsIFwKLSAgICAgICAgICAiMC4wMDIzNDcsIDAuMDAyNDEzLCAwLjAwMjQyNCwgMC4wMDI0MywgMC4wMDI0MzQsIDAuMDAyNDM1LCAwLjAwMjQzNyIsIFwKLSAgICAgICAgICAiMC4wMDIzNDQsIDAuMDAyNDExLCAwLjAwMjQyMiwgMC4wMDI0MjksIDAuMDAyNDMyLCAwLjAwMjQzNCwgMC4wMDI0MzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDM1MywgMC4wMDM1OTYsIDAuMDAzNjA3LCAwLjAwMzYxMiwgMC4wMDM2MTUsIDAuMDAzNjE3LCAwLjAwMzYxOSIsIFwKLSAgICAgICAgICAiMC4wMDM1MjgsIDAuMDAzNTk0LCAwLjAwMzYwNCwgMC4wMDM2MTEsIDAuMDAzNjE0LCAwLjAwMzYxNSwgMC4wMDM2MTciLCBcCi0gICAgICAgICAgIjAuMDAzNTI3LCAwLjAwMzU5MywgMC4wMDM2MDUsIDAuMDAzNjEsIDAuMDAzNjEzLCAwLjAwMzYxNCwgMC4wMDM2MTYiLCBcCi0gICAgICAgICAgIjAuMDAzNTI2LCAwLjAwMzU5MiwgMC4wMDM2MDMsIDAuMDAzNjA4LCAwLjAwMzYxMiwgMC4wMDM2MTQsIDAuMDAzNjE1IiwgXAotICAgICAgICAgICIwLjAwMzUyNCwgMC4wMDM1OTEsIDAuMDAzNjAyLCAwLjAwMzYwOCwgMC4wMDM2MSwgMC4wMDM2MTIsIDAuMDAzNjE0IiwgXAotICAgICAgICAgICIwLjAwMzUyMSwgMC4wMDM1ODgsIDAuMDAzNTk5LCAwLjAwMzYwNSwgMC4wMDM2MDgsIDAuMDAzNjEsIDAuMDAzNjExIiwgXAotICAgICAgICAgICIwLjAwMzUyLCAwLjAwMzU4OCwgMC4wMDM1OTgsIDAuMDAzNjA1LCAwLjAwMzYwOCwgMC4wMDM2MSwgMC4wMDM2MTEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI0NDMsIDAuMDAyNTA5LCAwLjAwMjUxOSwgMC4wMDI1MjYsIDAuMDAyNTI3LCAwLjAwMjUzLCAwLjAwMjUzMSIsIFwKLSAgICAgICAgICAiMC4wMDI0NCwgMC4wMDI1MDYsIDAuMDAyNTE3LCAwLjAwMjUyMiwgMC4wMDI1MjYsIDAuMDAyNTI4LCAwLjAwMjUyOSIsIFwKLSAgICAgICAgICAiMC4wMDI0MzQsIDAuMDAyNTAxLCAwLjAwMjUxMiwgMC4wMDI1MTcsIDAuMDAyNTIsIDAuMDAyNTIyLCAwLjAwMjUyMyIsIFwKLSAgICAgICAgICAiMC4wMDI0MjksIDAuMDAyNDk2LCAwLjAwMjUwNywgMC4wMDI1MTIsIDAuMDAyNTE1LCAwLjAwMjUxNywgMC4wMDI1MTkiLCBcCi0gICAgICAgICAgIjAuMDAyNDI1LCAwLjAwMjQ5MSwgMC4wMDI1MDIsIDAuMDAyNTA4LCAwLjAwMjUxMSwgMC4wMDI1MTMsIDAuMDAyNTE0IiwgXAotICAgICAgICAgICIwLjAwMjQxOCwgMC4wMDI0ODUsIDAuMDAyNDk2LCAwLjAwMjUwMiwgMC4wMDI1MDUsIDAuMDAyNTA3LCAwLjAwMjUwOSIsIFwKLSAgICAgICAgICAiMC4wMDI0MTQsIDAuMDAyNDgsIDAuMDAyNDkxLCAwLjAwMjQ5OCwgMC4wMDI1MDEsIDAuMDAyNTAzLCAwLjAwMjUwNSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzUyNCwgMC4wMDM1ODksIDAuMDAzNiwgMC4wMDM2MDUsIDAuMDAzNjA5LCAwLjAwMzYxMSwgMC4wMDM2MTIiLCBcCi0gICAgICAgICAgIjAuMDAzNTI0LCAwLjAwMzU5LCAwLjAwMzYsIDAuMDAzNjA2LCAwLjAwMzYwOSwgMC4wMDM2MTEsIDAuMDAzNjEyIiwgXAotICAgICAgICAgICIwLjAwMzUyMiwgMC4wMDM1ODgsIDAuMDAzNTk4LCAwLjAwMzYwNSwgMC4wMDM2MDgsIDAuMDAzNjA5LCAwLjAwMzYxIiwgXAotICAgICAgICAgICIwLjAwMzUxOSwgMC4wMDM1ODUsIDAuMDAzNTk2LCAwLjAwMzYwMiwgMC4wMDM2MDUsIDAuMDAzNjA3LCAwLjAwMzYwOCIsIFwKLSAgICAgICAgICAiMC4wMDM1MTYsIDAuMDAzNTgyLCAwLjAwMzU5MywgMC4wMDM1OTksIDAuMDAzNjAyLCAwLjAwMzYwNCwgMC4wMDM2MDUiLCBcCi0gICAgICAgICAgIjAuMDAzNTEsIDAuMDAzNTc3LCAwLjAwMzU4NywgMC4wMDM1OTQsIDAuMDAzNTk3LCAwLjAwMzU5OSwgMC4wMDM2IiwgXAotICAgICAgICAgICIwLjAwMzUwNCwgMC4wMDM1NzEsIDAuMDAzNTgzLCAwLjAwMzU4OSwgMC4wMDM1OTIsIDAuMDAzNTk0LCAwLjAwMzU5NiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNJIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI0MzUsIDAuMDAyNTAxLCAwLjAwMjUxMSwgMC4wMDI1MTcsIDAuMDAyNTIsIDAuMDAyNTIyLCAwLjAwMjUyNCIsIFwKLSAgICAgICAgICAiMC4wMDI0MzYsIDAuMDAyNTAxLCAwLjAwMjUxMiwgMC4wMDI1MTgsIDAuMDAyNTIsIDAuMDAyNTIzLCAwLjAwMjUyNCIsIFwKLSAgICAgICAgICAiMC4wMDI0MzMsIDAuMDAyNDk4LCAwLjAwMjUwOSwgMC4wMDI1MTUsIDAuMDAyNTE4LCAwLjAwMjUyLCAwLjAwMjUyMSIsIFwKLSAgICAgICAgICAiMC4wMDI0MjksIDAuMDAyNDk0LCAwLjAwMjUwNSwgMC4wMDI1MTEsIDAuMDAyNTE0LCAwLjAwMjUxNiwgMC4wMDI1MTciLCBcCi0gICAgICAgICAgIjAuMDAyNDI1LCAwLjAwMjQ5LCAwLjAwMjUwMSwgMC4wMDI1MDcsIDAuMDAyNTExLCAwLjAwMjUxMywgMC4wMDI1MTQiLCBcCi0gICAgICAgICAgIjAuMDAyNDE5LCAwLjAwMjQ4NCwgMC4wMDI0OTUsIDAuMDAyNTAyLCAwLjAwMjUwNSwgMC4wMDI1MDgsIDAuMDAyNTA5IiwgXAotICAgICAgICAgICIwLjAwMjQxNCwgMC4wMDI0NzksIDAuMDAyNDkxLCAwLjAwMjQ5NywgMC4wMDI1MDEsIDAuMDAyNTAzLCAwLjAwMjUwNSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzMwMSwgMC4wMDMzNjYsIDAuMDAzMzc3LCAwLjAwMzM4MywgMC4wMDMzODYsIDAuMDAzMzg4LCAwLjAwMzM4OSIsIFwKLSAgICAgICAgICAiMC4wMDMzMDIsIDAuMDAzMzY3LCAwLjAwMzM3OCwgMC4wMDMzODQsIDAuMDAzMzg3LCAwLjAwMzM4OSwgMC4wMDMzOTEiLCBcCi0gICAgICAgICAgIjAuMDAzMywgMC4wMDMzNjUsIDAuMDAzMzc2LCAwLjAwMzM4MiwgMC4wMDMzODUsIDAuMDAzMzg3LCAwLjAwMzM4OSIsIFwKLSAgICAgICAgICAiMC4wMDMyOTYsIDAuMDAzMzYyLCAwLjAwMzM3MiwgMC4wMDMzNzksIDAuMDAzMzgyLCAwLjAwMzM4NSwgMC4wMDMzODYiLCBcCi0gICAgICAgICAgIjAuMDAzMjk0LCAwLjAwMzM1OSwgMC4wMDMzNzEsIDAuMDAzMzc3LCAwLjAwMzM4MSwgMC4wMDMzODMsIDAuMDAzMzg0IiwgXAotICAgICAgICAgICIwLjAwMzI4OCwgMC4wMDMzNTQsIDAuMDAzMzY2LCAwLjAwMzM3MiwgMC4wMDMzNzYsIDAuMDAzMzc5LCAwLjAwMzM4IiwgXAotICAgICAgICAgICIwLjAwMzI4NSwgMC4wMDMzNSwgMC4wMDMzNjIsIDAuMDAzMzY5LCAwLjAwMzM3MywgMC4wMDMzNzUsIDAuMDAzMzc3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMjUxNjI4OwotICAgIGZ1bmN0aW9uIDogIigoQV5CKV5DSSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI5MzMwNSwgMC40OTE5MDEsIDAuNjM3MTg3LCAwLjgxNzc3MSwgMC45OTc5NzEsIDEuMTc4MTQsIDEuMzU3OTkiLCBcCi0gICAgICAgICAgIjAuMzA0NjA4LCAwLjUwMzMzOCwgMC42NDg2NDEsIDAuODI5MjE5LCAxLjAwOTUyLCAxLjE4OTYsIDEuMzY5NDYiLCBcCi0gICAgICAgICAgIjAuMzE3ODQzLCAwLjUxNjU0MSwgMC42NjE4NDcsIDAuODQyNDE1LCAxLjAyMjcyLCAxLjIwMjgxLCAxLjM4MjY2IiwgXAotICAgICAgICAgICIwLjMzMDM4MywgMC41Mjg4MjUsIDAuNjc0MTA1LCAwLjg1NDY4MSwgMS4wMzQ5NywgMS4yMTUwNCwgMS4zOTUwNSIsIFwKLSAgICAgICAgICAiMC4zNDI1ODUsIDAuNTQxMjExLCAwLjY4NjI1OSwgMC44NjY4MzEsIDEuMDQ3MTIsIDEuMjI3MTksIDEuNDA3MDYiLCBcCi0gICAgICAgICAgIjAuMzYxODU5LCAwLjU2MDM1OCwgMC43MDU2MzYsIDAuODg2MjE4LCAxLjA2NjQ1LCAxLjI0NjY0LCAxLjQyNjQ3IiwgXAotICAgICAgICAgICIwLjM3ODY2MiwgMC41NzcxMjQsIDAuNzIyNDE3LCAwLjkwMjk5MywgMS4wODMyOCwgMS4yNjMzNCwgMS40NDMyNyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMzI0MzcsIDAuNDc3Mzc5LCAwLjc2NTM5LCAxLjEyNjg1LCAxLjQ5NDYzLCAxLjg2MTgyLCAyLjIyODUiLCBcCi0gICAgICAgICAgIjAuMTMyNDUyLCAwLjQ3NzI0MiwgMC43NjUwMzksIDEuMTI4NzYsIDEuNDkxNzIsIDEuODYxNjEsIDIuMjI4MjgiLCBcCi0gICAgICAgICAgIjAuMTMyNDU2LCAwLjQ3NzIzNCwgMC43NjQyNzQsIDEuMTI4NjgsIDEuNDkxMzksIDEuODYxNTksIDIuMjI4MjMiLCBcCi0gICAgICAgICAgIjAuMTMyMjk1LCAwLjQ3NzIzOCwgMC43NjUxMjEsIDEuMTI3MzksIDEuNDkxNjksIDEuODYxNTMsIDIuMjI4NTgiLCBcCi0gICAgICAgICAgIjAuMTMyMjc5LCAwLjQ3NzI4NCwgMC43NjUxMDgsIDEuMTI3MzcsIDEuNDkxNjYsIDEuODYxNSwgMi4yMjgxMSIsIFwKLSAgICAgICAgICAiMC4xMzIxNzUsIDAuNDc3MjQ1LCAwLjc2NTEzMywgMS4xMjc1MywgMS40OTQ1MywgMS44NjE2NiwgMi4yMjgyMyIsIFwKLSAgICAgICAgICAiMC4xMzE5MzIsIDAuNDc3MjI2LCAwLjc2NDk4NywgMS4xMjczNCwgMS40OTE1NywgMS44NTg2NCwgMi4yMjgyNiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yNzExMjEsIDAuNDkzNjcxLCAwLjY1OTk0NiwgMC44NjY5NywgMS4wNzM3NiwgMS4yODA0OCwgMS40ODY5NiIsIFwKLSAgICAgICAgICAiMC4yODIyNjIsIDAuNTA0OTY3LCAwLjY3MTI3NCwgMC44NzgzMDEsIDEuMDg1MjMsIDEuMjkxNzYsIDEuNDk4MjQiLCBcCi0gICAgICAgICAgIjAuMjk1MDg0LCAwLjUxNzY4NywgMC42ODQwMSwgMC44OTEwMjcsIDEuMDk3ODIsIDEuMzA0NTMsIDEuNTExMDMiLCBcCi0gICAgICAgICAgIjAuMzA2NjgyLCAwLjUyOTM2OCwgMC42OTU3MjYsIDAuOTAyNzcsIDEuMTA5NjQsIDEuMzE2MTgsIDEuNTIyNzQiLCBcCi0gICAgICAgICAgIjAuMzE4MDY5LCAwLjU0MDY2OSwgMC43MDY5NTcsIDAuOTE0MDY1LCAxLjEyMDkzLCAxLjMyNzQ4LCAxLjUzMzk1IiwgXAotICAgICAgICAgICIwLjMzNTM0OSwgMC41NTc4OTUsIDAuNzI0MjYzLCAwLjkzMTMwOSwgMS4xMzgxOSwgMS4zNDQ3NSwgMS41NTEyMiIsIFwKLSAgICAgICAgICAiMC4zNTAxMTQsIDAuNTcyNzE5LCAwLjczOTA0MiwgMC45NDYxMjUsIDEuMTUyOTksIDEuMzU5NTMsIDEuNTY2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEzNzE0NSwgMC41Mjg0NzYsIDAuODUyMjI1LCAxLjI2MTAyLCAxLjY2Nzk3LCAyLjA4MTExLCAyLjQ5MjUiLCBcCi0gICAgICAgICAgIjAuMTM3MDE0LCAwLjUyODQ5NCwgMC44NTIyOSwgMS4yNTk5MSwgMS42NjY2MiwgMi4wODEwMywgMi40OTI3MSIsIFwKLSAgICAgICAgICAiMC4xMzc0MSwgMC41Mjc5MzgsIDAuODUyMjI5LCAxLjI2MTAxLCAxLjY2ODQzLCAyLjA4MTExLCAyLjQ5MjQ1IiwgXAotICAgICAgICAgICIwLjEzNzM1MiwgMC41Mjc5MjUsIDAuODUyMjg0LCAxLjI1NzUsIDEuNjcwOSwgMi4wNzg0MiwgMi40OTIzNCIsIFwKLSAgICAgICAgICAiMC4xMzczNTksIDAuNTI4NDQ3LCAwLjg1MjAzNCwgMS4yNjE3LCAxLjY2ODU4LCAyLjA4MDk5LCAyLjQ5MjY2IiwgXAotICAgICAgICAgICIwLjEzNzM3NywgMC41Mjc5NywgMC44NTIyOTQsIDEuMjU3NCwgMS42NzA5NCwgMi4wODEyOCwgMi40OTM0OCIsIFwKLSAgICAgICAgICAiMC4xMzcyMDMsIDAuNTI4NDkxLCAwLjg1MjA5MywgMS4yNTc0NywgMS42NjYxOSwgMi4wODExMSwgMi40OTI4OCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zNzEwNjIsIDAuNTU0NjI1LCAwLjY5ODA1MywgMC44Nzc2MTIsIDEuMDU3MDIsIDEuMjM2NDUsIDEuNDE1OTQiLCBcCi0gICAgICAgICAgIjAuMzgyODQ0LCAwLjU2NjQyMSwgMC43MDk4MDEsIDAuODg5MzU5LCAxLjA2ODc3LCAxLjI0ODIsIDEuNDI3NzQiLCBcCi0gICAgICAgICAgIjAuMzk3NDUxLCAwLjU4MDg3LCAwLjcyNDMwMSwgMC45MDM3NDQsIDEuMDgzMiwgMS4yNjI3MiwgMS40NDIxNyIsIFwKLSAgICAgICAgICAiMC40MTA5NTMsIDAuNTk0MzQ4LCAwLjczNzc3MiwgMC45MTcyMDcsIDEuMDk2NzksIDEuMjc2MjcsIDEuNDU1NjIiLCBcCi0gICAgICAgICAgIjAuNDIzODk0LCAwLjYwNzQyNSwgMC43NTA4MzQsIDAuOTMwMzI1LCAxLjEwOTgxLCAxLjI4OTI0LCAxLjQ2ODczIiwgXAotICAgICAgICAgICIwLjQ0NDA1OCwgMC42Mjc2NDMsIDAuNzcxMDQ1LCAwLjk1MDYwMywgMS4xMzAwMSwgMS4zMDk0NCwgMS40ODg5NSIsIFwKLSAgICAgICAgICAiMC40NjE1NjEsIDAuNjQ1MTA2LCAwLjc4ODUxNCwgMC45NjgwMDksIDEuMTQ3NDksIDEuMzI2OTIsIDEuNTA2NDEiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTE3NDQsIDAuNDYzNzY1LCAwLjc1MjIyNiwgMS4xMTY2NywgMS40ODU2MiwgMS44NTI0OCwgMi4yMTY2MSIsIFwKLSAgICAgICAgICAiMC4xMTc1MDksIDAuNDYzNzc2LCAwLjc1MjEzLCAxLjExNjcxLCAxLjQ4NTYxLCAxLjg1MjQ3LCAyLjIxOTgzIiwgXAotICAgICAgICAgICIwLjExNzQxOCwgMC40NjM3NDMsIDAuNzUyMTM1LCAxLjExODgyLCAxLjQ4NTQ0LCAxLjg1MjU0LCAyLjIxOTcyIiwgXAotICAgICAgICAgICIwLjExNzQwNiwgMC40NjM4MTgsIDAuNzUyMjAzLCAxLjExODc1LCAxLjQ4NTk2LCAxLjg1Mjk5LCAyLjIxOTc3IiwgXAotICAgICAgICAgICIwLjExNzQ1OSwgMC40NjMyNTUsIDAuNzUyMTI5LCAxLjExNjc3LCAxLjQ4NTY4LCAxLjg1MjQ3LCAyLjIxNjY1IiwgXAotICAgICAgICAgICIwLjExNzUxOSwgMC40NjMyNTIsIDAuNzUyMTU3LCAxLjExNjcyLCAxLjQ4NTYxLCAxLjg1MjQ4LCAyLjIxOTY4IiwgXAotICAgICAgICAgICIwLjExNzQxMywgMC40NjM3NjQsIDAuNzUyMjI0LCAxLjExNjY3LCAxLjQ4NTY4LCAxLjg1MjQ1LCAyLjIxNjczIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjM4NTA2MywgMC41OTY1MTQsIDAuNzYxMjMxLCAwLjk2NzMyNCwgMS4xNzM1MSwgMS4zNzk2OCwgMS41ODYwNiIsIFwKLSAgICAgICAgICAiMC4zOTY1ODQsIDAuNjA4MDcyLCAwLjc3Mjc4NywgMC45Nzg4NDYsIDEuMTg1MTUsIDEuMzkxMzMsIDEuNTk3NTciLCBcCi0gICAgICAgICAgIjAuNDEwNDY1LCAwLjYyMjAyNCwgMC43ODY3MTgsIDAuOTkyODUzLCAxLjE5OTAyLCAxLjQwNTI2LCAxLjYxMTcxIiwgXAotICAgICAgICAgICIwLjQyNDEzMSwgMC42MzU2OTksIDAuODAwNDA0LCAxLjAwNjQ3LCAxLjIxMjgzLCAxLjQxOTEsIDEuNjI1MTkiLCBcCi0gICAgICAgICAgIjAuNDM3OTYzLCAwLjY0OTM5NSwgMC44MTQxNiwgMS4wMjAyOCwgMS4yMjY0OCwgMS40MzI2OSwgMS42Mzg5OSIsIFwKLSAgICAgICAgICAiMC40NTk3NjMsIDAuNjcxMjE2LCAwLjgzNTkyNiwgMS4wNDE5OSwgMS4yNDgyMSwgMS40NTQ0NSwgMS42NjA3IiwgXAotICAgICAgICAgICIwLjQ3OTAxNSwgMC42OTA2OTksIDAuODU1MTI4LCAxLjA2MTI2LCAxLjI2NzQ1LCAxLjQ3MzY3LCAxLjY3OTk3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEyNzE5MiwgMC41MTcyNTUsIDAuODQwODY2LCAxLjI0ODk2LCAxLjY1ODg3LCAyLjA2OTYsIDIuNDc4NTUiLCBcCi0gICAgICAgICAgIjAuMTI3MjksIDAuNTE3MjIsIDAuODQwMjk4LCAxLjI0OTExLCAxLjY1ODY2LCAyLjA2OTcsIDIuNDc4ODkiLCBcCi0gICAgICAgICAgIjAuMTI3MzIyLCAwLjUxNzIzNywgMC44NDA3NTgsIDEuMjQ4ODcsIDEuNjU5MDgsIDIuMDY4OTgsIDIuNDc5MDQiLCBcCi0gICAgICAgICAgIjAuMTI3MzQxLCAwLjUxNzI3MSwgMC44NDA2MTYsIDEuMjQ4OCwgMS42NTgyOSwgMi4wNjksIDIuNDc4OTYiLCBcCi0gICAgICAgICAgIjAuMTI3MjE4LCAwLjUxNzI2OSwgMC44NDA1ODYsIDEuMjQ5MjcsIDEuNjU5MDUsIDIuMDY5MTIsIDIuNDc5MTYiLCBcCi0gICAgICAgICAgIjAuMTI3MjEzLCAwLjUxNzI3LCAwLjg0MDcxOSwgMS4yNDkxMywgMS42NTg2OCwgMi4wNjk1MywgMi40Nzg3MyIsIFwKLSAgICAgICAgICAiMC4xMjcyMDIsIDAuNTE3MjY0LCAwLjg0MDQyMywgMS4yNDg3MiwgMS42NTkwOSwgMi4wNjkwNiwgMi40Nzg2OCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yODgyNDgsIDAuNDg2OTY3LCAwLjYzMjMxOSwgMC44MTI5NDEsIDAuOTkzMjg0LCAxLjE3MzI2LCAxLjM1Mjg0IiwgXAotICAgICAgICAgICIwLjI5ODYwNywgMC40OTcxNzEsIDAuNjQyNTE5LCAwLjgyMzE1NSwgMS4wMDM1LCAxLjE4MzQ3LCAxLjM2MzQzIiwgXAotICAgICAgICAgICIwLjMxMTY1NiwgMC41MTAxNzIsIDAuNjU1NDM0LCAwLjgzNjAzOSwgMS4wMTYzOSwgMS4xOTYzNiwgMS4zNzYzOSIsIFwKLSAgICAgICAgICAiMC4zMjQ1NCwgMC41MjI5OTQsIDAuNjY4MjYxLCAwLjg0ODg2NiwgMS4wMjkyMSwgMS4yMDkxOSwgMS4zODkyNSIsIFwKLSAgICAgICAgICAiMC4zMzcyOTYsIDAuNTM1OTA2LCAwLjY4MTI0LCAwLjg2MTg1MywgMS4wNDIwOSwgMS4yMjIyLCAxLjQwMjA3IiwgXAotICAgICAgICAgICIwLjM1ODQyOSwgMC41NTY4ODIsIDAuNzAyMTc4LCAwLjg4Mjc4MSwgMS4wNjMsIDEuMjQzMSwgMS40MjMwMyIsIFwKLSAgICAgICAgICAiMC4zNzY2MTgsIDAuNTc0OTI5LCAwLjcyMDIwOSwgMC45MDA4MTUsIDEuMDgxMTYsIDEuMjYxMTUsIDEuNDQxMDkiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTMyNTc1LCAwLjQ3NzA2MiwgMC43NjUxNzIsIDEuMTI2OTksIDEuNDkwNjMsIDEuODYxNzQsIDIuMjI4NjIiLCBcCi0gICAgICAgICAgIjAuMTMyNzk1LCAwLjQ3NzI0OSwgMC43NjM4MzMsIDEuMTI2ODIsIDEuNDkwODIsIDEuODYxNzIsIDIuMjI4ODEiLCBcCi0gICAgICAgICAgIjAuMTMyMDc4LCAwLjQ3NzI1NywgMC43NjUyMzIsIDEuMTI2NzQsIDEuNDkxNiwgMS44NjE3MywgMi4yMjkxIiwgXAotICAgICAgICAgICIwLjEzMjAwNSwgMC40NzcyNTIsIDAuNzY1MTE3LCAxLjEyNjc1LCAxLjQ5MTcsIDEuODYxNzMsIDIuMjIzMDEiLCBcCi0gICAgICAgICAgIjAuMTMyMzQ2LCAwLjQ3NzQzMiwgMC43NjM2ODksIDEuMTI5MTgsIDEuNDkyNDYsIDEuODYxNzIsIDIuMjI4NDgiLCBcCi0gICAgICAgICAgIjAuMTMyMTczLCAwLjQ3NzMxNywgMC43NjUyNDUsIDEuMTI2OCwgMS40OTI1MiwgMS44NjE1NiwgMi4yMjg1OSIsIFwKLSAgICAgICAgICAiMC4xMzE3ODcsIDAuNDc3MjQ4LCAwLjc2NTIyNywgMS4xMjY3MSwgMS40OTA5NywgMS44NjE3NCwgMi4yMjM4NyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yNjQyOTYsIDAuNDg2OTMyLCAwLjY1MzIwMywgMC44NjAyODUsIDEuMDY3MDcsIDEuMjczNzEsIDEuNDgwMjciLCBcCi0gICAgICAgICAgIjAuMjc0NDU0LCAwLjQ5NzExMSwgMC42NjM0MzEsIDAuODcwNDY0LCAxLjA3NzQsIDEuMjgzOTMsIDEuNDkwNDIiLCBcCi0gICAgICAgICAgIjAuMjg2ODExLCAwLjUwOTQ2OCwgMC42NzU4NSwgMC44ODI4OTMsIDEuMDg5NzgsIDEuMjk2NDksIDEuNTAyODkiLCBcCi0gICAgICAgICAgIjAuMjk4NjQ0LCAwLjUyMTI1NiwgMC42ODc2MDMsIDAuODk0NjksIDEuMTAxNTEsIDEuMzA4MTIsIDEuNTE0NTkiLCBcCi0gICAgICAgICAgIjAuMzEwMjI2LCAwLjUzMjk1MiwgMC42OTkzMzEsIDAuOTA2Mzc3LCAxLjExMzI3LCAxLjMxOTgzLCAxLjUyNjM5IiwgXAotICAgICAgICAgICIwLjMyOTE2MywgMC41NTE4NzIsIDAuNzE4MjQ2LCAwLjkyNTI5NywgMS4xMzIyLCAxLjMzODc2LCAxLjU0NTI2IiwgXAotICAgICAgICAgICIwLjM0NTY3NCwgMC41NjgzMDgsIDAuNzM0NjM2LCAwLjk0MTY4MywgMS4xNDg2MSwgMS4zNTUxNiwgMS41NjE2NCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMzc3MTksIDAuNTI4NSwgMC44NTIyNjQsIDEuMjU3NzQsIDEuNjY4NjEsIDIuMDgxNjksIDIuNDkyNTMiLCBcCi0gICAgICAgICAgIjAuMTM3MTI1LCAwLjUyODUxMiwgMC44NTIzMTEsIDEuMjU5OTIsIDEuNjY2NjksIDIuMDgxMDgsIDIuNDkyODciLCBcCi0gICAgICAgICAgIjAuMTM3MzAxLCAwLjUyNzk3MiwgMC44NDk5NTgsIDEuMjU3NTEsIDEuNjcwOTQsIDIuMDc4NTMsIDIuNDkyMjEiLCBcCi0gICAgICAgICAgIjAuMTM3MDIxLCAwLjUyODA5NSwgMC44NTIyNTcsIDEuMjU3MDQsIDEuNjcwOTgsIDIuMDgxMDIsIDIuNDkyNiIsIFwKLSAgICAgICAgICAiMC4xMzczNzUsIDAuNTI3OTYzLCAwLjg1MDk3NCwgMS4yNTc5NSwgMS42NzA5MSwgMi4wODEzLCAyLjQ5MjI0IiwgXAotICAgICAgICAgICIwLjEzNzQzNiwgMC41Mjc5NDYsIDAuODUyMTYzLCAxLjI1ODE4LCAxLjY2Nzk4LCAyLjA4MTM4LCAyLjQ4ODc4IiwgXAotICAgICAgICAgICIwLjEzNzIzMiwgMC41Mjg1MTYsIDAuODUyMTM0LCAxLjI2MDE3LCAxLjY2NjkxLCAyLjA4MTI1LCAyLjQ5MzAyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjM3NzA0MiwgMC41NjExNCwgMC43MDQ4MTgsIDAuODg0NDg0LCAxLjA2NDA2LCAxLjI0MzY3LCAxLjQyMzIxIiwgXAotICAgICAgICAgICIwLjM4ODk5OCwgMC41NzMxMTcsIDAuNzE2Nzk3LCAwLjg5NjQ2OSwgMS4wNzYwNiwgMS4yNTU2NSwgMS40MzUxOSIsIFwKLSAgICAgICAgICAiMC40MDM0OTEsIDAuNTg3NDM4LCAwLjczMTExOCwgMC45MTA3OTQsIDEuMDkwNDMsIDEuMjY5OTcsIDEuNDQ5NTIiLCBcCi0gICAgICAgICAgIjAuNDE2NjgsIDAuNjAwODQzLCAwLjc0NDUxMywgMC45MjQyLCAxLjEwMzgzLCAxLjI4MzM3LCAxLjQ2MjkyIiwgXAotICAgICAgICAgICIwLjQyOTQ5NywgMC42MTM2NzgsIDAuNzU3MzQ3LCAwLjkzNzA0NywgMS4xMTY2NiwgMS4yOTYyLCAxLjQ3NTc2IiwgXAotICAgICAgICAgICIwLjQ0OTQ2OCwgMC42MzM2NTIsIDAuNzc3MzE5LCAwLjk1NzAyLCAxLjEzNjYzLCAxLjMxNjE3LCAxLjQ5NTc0IiwgXAotICAgICAgICAgICIwLjQ2NjY2MSwgMC42NTA4NDUsIDAuNzk0NDg3LCAwLjk3NDI0MywgMS4xNTM3OSwgMS4zMzMzMywgMS41MTI5MiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTY5MjgsIDAuNDYzOTk0LCAwLjc1MzEzNywgMS4xMTg0NSwgMS40ODYyNywgMS44NTM2NCwgMi4yMjAzMyIsIFwKLSAgICAgICAgICAiMC4xMTY4MiwgMC40NjQwMSwgMC43NTMxNjUsIDEuMTE4MjEsIDEuNDg1MzEsIDEuODUzNjMsIDIuMjIwNDMiLCBcCi0gICAgICAgICAgIjAuMTE2OTM3LCAwLjQ2Mzk5NCwgMC43NTMxNzIsIDEuMTE4NTEsIDEuNDg2NjMsIDEuODUzNjYsIDIuMjIwMjMiLCBcCi0gICAgICAgICAgIjAuMTE2OTgxLCAwLjQ2Mzk5NywgMC43NTMxNjksIDEuMTE3ODMsIDEuNDg2NjcsIDEuODUzNTksIDIuMjE3NDciLCBcCi0gICAgICAgICAgIjAuMTE2NzksIDAuNDY0MDM4LCAwLjc1MzE3MywgMS4xMTgxMSwgMS40ODY3MiwgMS44NTM1MiwgMi4yMTk5OCIsIFwKLSAgICAgICAgICAiMC4xMTcwMDUsIDAuNDY0MDQxLCAwLjc1MzE3MywgMS4xMTc3NiwgMS40ODY3MiwgMS44NTM1MiwgMi4yMTk5MyIsIFwKLSAgICAgICAgICAiMC4xMTY5MDQsIDAuNDYzOTY5LCAwLjc1MzE1OSwgMS4xMTc1NiwgMS40ODY3NywgMS44NTM0OSwgMi4yMTc4OSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zODIzNTYsIDAuNTkzNzgsIDAuNzU4NTAyLCAwLjk2NDU3NCwgMS4xNzA3NywgMS4zNzcwMiwgMS41ODMzMSIsIFwKLSAgICAgICAgICAiMC4zOTMzNjIsIDAuNjA0Nzc1LCAwLjc2OTQ3NiwgMC45NzU2NjMsIDEuMTgxNzgsIDEuMzg4MDcsIDEuNTk0MzMiLCBcCi0gICAgICAgICAgIjAuNDA2MTk0LCAwLjYxNzY2OSwgMC43ODIzNzMsIDAuOTg4NTYxLCAxLjE5NDY3LCAxLjQwMDkzLCAxLjYwNzM2IiwgXAotICAgICAgICAgICIwLjQxOTUwNCwgMC42MzA4NTMsIDAuNzk1NTcyLCAxLjAwMTY3LCAxLjIwNzgzLCAxLjQxNDIsIDEuNjIwNCIsIFwKLSAgICAgICAgICAiMC40MzI5MTIsIDAuNjQ0MjY2LCAwLjgwOTAwMSwgMS4wMTUxNSwgMS4yMjEyNiwgMS40Mjc0NSwgMS42MzM2OSIsIFwKLSAgICAgICAgICAiMC40NTQ3NzIsIDAuNjY2MTYzLCAwLjgzMDg2OSwgMS4wMzcwNywgMS4yNDMxNywgMS40NDk0MiwgMS42NTU2MSIsIFwKLSAgICAgICAgICAiMC40NzM3NTYsIDAuNjg1MTk3LCAwLjg0OTkwMywgMS4wNTU5OCwgMS4yNjIzNCwgMS40Njg2OCwgMS42NzQ2OSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMjYzOTksIDAuNTE3MDY1LCAwLjg0MDk0NywgMS4yNDk1MSwgMS42NTk1NiwgMi4wNywgMi40ODAxNCIsIFwKLSAgICAgICAgICAiMC4xMjYzNTIsIDAuNTE3MDczLCAwLjg0MDc5MywgMS4yNDk0MSwgMS42NTk0LCAyLjA2OTg2LCAyLjQ3OTE4IiwgXAotICAgICAgICAgICIwLjEyNjQ0NiwgMC41MTcwODYsIDAuODQxMDMsIDEuMjQ5MjIsIDEuNjU5NDksIDIuMDY5NzQsIDIuNDc5NTIiLCBcCi0gICAgICAgICAgIjAuMTI2MjksIDAuNTE3MTE5LCAwLjg0MDI3NiwgMS4yNDk0NSwgMS42NTk0MywgMi4wNjk3OCwgMi40Nzg4OCIsIFwKLSAgICAgICAgICAiMC4xMjYyNTYsIDAuNTE3MTE0LCAwLjg0MTEzOCwgMS4yNDk0NSwgMS42NTk0NCwgMi4wNjk3NCwgMi40Nzk5OSIsIFwKLSAgICAgICAgICAiMC4xMjYyODksIDAuNTE3MDczLCAwLjg0MDUxNCwgMS4yNDk0NSwgMS42NTk0NCwgMi4wNjk3MywgMi40NzkyNyIsIFwKLSAgICAgICAgICAiMC4xMjYxODEsIDAuNTE3MDc2LCAwLjg0MTEzNiwgMS4yNDk0NywgMS42NTk1MiwgMi4wNjk0OSwgMi40Nzk3NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjg1NTY4LCAwLjQ4NDIzOCwgMC42Mjk2MTUsIDAuODEwMjM0LCAwLjk5MDU3NywgMS4xNzA1NiwgMS4zNTA1NiIsIFwKLSAgICAgICAgICAiMC4yOTU1NCwgMC40OTQzMjUsIDAuNjM5NjQyLCAwLjgyMDI1NSwgMS4wMDA1LCAxLjE4MDYyLCAxLjM2MDQ3IiwgXAotICAgICAgICAgICIwLjMwNzQzNywgMC41MDU4MTYsIDAuNjUxMjEzLCAwLjgzMTc5OSwgMS4wMTIwNiwgMS4xOTIxNCwgMS4zNzIiLCBcCi0gICAgICAgICAgIjAuMzE5MjkyLCAwLjUxNzcxNiwgMC42NjMwMDMsIDAuODQzNTg5LCAxLjAyMzg3LCAxLjIwMzk0LCAxLjM4MzgzIiwgXAotICAgICAgICAgICIwLjMzMTMsIDAuNTI5ODUxLCAwLjY3NTEzNCwgMC44NTU3MywgMS4wMzYsIDEuMjE2MTQsIDEuMzk1OTgiLCBcCi0gICAgICAgICAgIjAuMzUwODc1LCAwLjU0OTE2NSwgMC42OTQ0NjIsIDAuODc1MDQ2LCAxLjA1NTMzLCAxLjIzNTM5LCAxLjQxNTMzIiwgXAotICAgICAgICAgICIwLjM2Nzk2LCAwLjU2NjM2LCAwLjcxMTY0OSwgMC44OTIyMzEsIDEuMDcyNTIsIDEuMjUyNiwgMS40MzI1Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEzMjg3MiwgMC40NzczMzIsIDAuNzY1MjY5LCAxLjEyNjgsIDEuNDkwNzEsIDEuODYxODEsIDIuMjI5MTMiLCBcCi0gICAgICAgICAgIjAuMTMyNDI4LCAwLjQ3NzMyNiwgMC43NjQyNDEsIDEuMTI5MTMsIDEuNDk0ODUsIDEuODYxNzIsIDIuMjI4NDMiLCBcCi0gICAgICAgICAgIjAuMTMyMDM0LCAwLjQ3NzIyNCwgMC43NjUxNjksIDEuMTI2NSwgMS40OTE0MiwgMS44NjE2NiwgMi4yMjgzMiIsIFwKLSAgICAgICAgICAiMC4xMzIwNTQsIDAuNDc3MjYzLCAwLjc2NTA1OSwgMS4xMjYzMywgMS40OTE3MywgMS44NjE2LCAyLjIyNDc5IiwgXAotICAgICAgICAgICIwLjEzMjAzMiwgMC40NzcyOTYsIDAuNzY1MTg4LCAxLjEyNzUsIDEuNDk0ODEsIDEuODYxNywgMi4yMjgzIiwgXAotICAgICAgICAgICIwLjEzMjI4MiwgMC40NzcyOTUsIDAuNzY1MTM4LCAxLjEyNzQ0LCAxLjQ5MTY0LCAxLjg1NjI3LCAyLjIyODM5IiwgXAotICAgICAgICAgICIwLjEzMTg2MywgMC40NzcyMjUsIDAuNzY1MTA4LCAxLjEyNzMzLCAxLjQ5MTU3LCAxLjg2MTYsIDIuMjIzMzEiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjU0NTI4LCAwLjQ3NzI5OCwgMC42NDM2NjEsIDAuODUwNzMxLCAxLjA1NzYyLCAxLjI2NDIsIDEuNDcwNzMiLCBcCi0gICAgICAgICAgIjAuMjY0MjA4LCAwLjQ4NjgxOCwgMC42NTMxMDgsIDAuODYwMTQ3LCAxLjA2NjkxLCAxLjI3MzYzLCAxLjQ4MDE0IiwgXAotICAgICAgICAgICIwLjI3NjA3MywgMC40OTg2ODQsIDAuNjY1MDE1LCAwLjg3MjA0NiwgMS4wNzg5OCwgMS4yODU1MiwgMS40OTIiLCBcCi0gICAgICAgICAgIjAuMjg3MzYyLCAwLjUxMDA4NywgMC42NzY0NzIsIDAuODgzNTExLCAxLjA5MDQxLCAxLjI5Njk2LCAxLjUwMzQ3IiwgXAotICAgICAgICAgICIwLjI5OTM1NSwgMC41MjE4MzMsIDAuNjg4MTQ0LCAwLjg5NTIxOCwgMS4xMDIxMSwgMS4zMDg2MywgMS41MTUyMSIsIFwKLSAgICAgICAgICAiMC4zMTk3MDgsIDAuNTQyMzM3LCAwLjcwODY3NywgMC45MTU3MTMsIDEuMTIyNTUsIDEuMzI5MTksIDEuNTM1NjciLCBcCi0gICAgICAgICAgIjAuMzM2NzM5LCAwLjU1OTQyOSwgMC43MjU3OTksIDAuOTMyODY2LCAxLjEzOTc1LCAxLjM0NjMxLCAxLjU1Mjg2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEzNzMzOCwgMC41Mjc5ODYsIDAuODUwMDU4LCAxLjI1NzUyLCAxLjY3MDk0LCAyLjA3NzM5LCAyLjQ5MjMxIiwgXAotICAgICAgICAgICIwLjEzNzE3NSwgMC41Mjg0NzIsIDAuODUwODAyLCAxLjI2MTE1LCAxLjY3MTY4LCAyLjA3NywgMi40OTI2NiIsIFwKLSAgICAgICAgICAiMC4xMzcxMjcsIDAuNTI4MTE3LCAwLjg1MjI3NiwgMS4yNTk5NiwgMS42NjYwNywgMi4wODEwOCwgMi40OTI3NiIsIFwKLSAgICAgICAgICAiMC4xMzczMzMsIDAuNTI3OTQ1LCAwLjg1MDM1OCwgMS4yNTgwNSwgMS42NjgwNCwgMi4wODEzMywgMi40OTI3MyIsIFwKLSAgICAgICAgICAiMC4xMzcwOTEsIDAuNTI3OTk4LCAwLjg1MTYxOSwgMS4yNTgxOSwgMS42NzA5MSwgMi4wNzgyMiwgMi40OTIzMSIsIFwKLSAgICAgICAgICAiMC4xMzczMDIsIDAuNTI4NDc0LCAwLjg1MjI1MywgMS4yNjE1NCwgMS42Njk1MiwgMi4wODA5NiwgMi40OTI3NiIsIFwKLSAgICAgICAgICAiMC4xMzY5MjIsIDAuNTI3ODk3LCAwLjg1MjMwNSwgMS4yNTc0NSwgMS42NzA5NCwgMi4wODA1OCwgMi40OTIzMSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzY2ODg1LCAwLjU1MDkzMiwgMC42OTQ2MDgsIDAuODc0MzMyLCAxLjA1Mzg5LCAxLjIzMzQ1LCAxLjQxMyIsIFwKLSAgICAgICAgICAiMC4zNzc0NjEsIDAuNTYxNTMsIDAuNzA1MTc5LCAwLjg4NDgwNywgMS4wNjQ0OCwgMS4yNDQwMSwgMS40MjM1OSIsIFwKLSAgICAgICAgICAiMC4zOTA1ODksIDAuNTc0NzA4LCAwLjcxODM3NiwgMC44OTgwNzQsIDEuMDc3NjksIDEuMjU3MjMsIDEuNDM2NzkiLCBcCi0gICAgICAgICAgIjAuNDAzNjI2LCAwLjU4NzY1OSwgMC43MzEzMTQsIDAuOTExMDY3LCAxLjA5MDYxLCAxLjI3MDE1LCAxLjQ0OTg5IiwgXAotICAgICAgICAgICIwLjQxNzE5OCwgMC42MDEyOTQsIDAuNzQ0OTUyLCAwLjkyNDY1LCAxLjEwNDI3LCAxLjI4MzgsIDEuNDYzMzciLCBcCi0gICAgICAgICAgIjAuNDM4MjkyLCAwLjYyMjM5OCwgMC43NjYwNDEsIDAuOTQ1Nzg1LCAxLjEyNTMzLCAxLjMwNDg3LCAxLjQ4NDQ3IiwgXAotICAgICAgICAgICIwLjQ1Njk3OSwgMC42NDA4OTksIDAuNzg0NTc5LCAwLjk2NDI1MSwgMS4xNDM4OSwgMS4zMjM0MywgMS41MDI5NyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTQ2MjUsIDAuNDY0MDI3LCAwLjc1MzE1NSwgMS4xMTcyOCwgMS40ODY3MSwgMS44NTI0NSwgMi4yMjA0MSIsIFwKLSAgICAgICAgICAiMC4xMTQ1NzUsIDAuNDYzOTg5LCAwLjc1NDE0NiwgMS4xMTgxNCwgMS40ODY3NywgMS44NTM1LCAyLjIyMDI0IiwgXAotICAgICAgICAgICIwLjExNDU0NiwgMC40NjQwNDcsIDAuNzUzMTc3LCAxLjExNzc1LCAxLjQ4NjcyLCAxLjg1MzUzLCAyLjIxNzQ3IiwgXAotICAgICAgICAgICIwLjExNDYzOSwgMC40NjQwMTMsIDAuNzUzMTU1LCAxLjExNzQ0LCAxLjQ4NjcyLCAxLjg1MzUsIDIuMjE2NTIiLCBcCi0gICAgICAgICAgIjAuMTE0NTc2LCAwLjQ2NDA0NywgMC43NTMxNzYsIDEuMTE3NzQsIDEuNDg2NjcsIDEuODUzNTksIDIuMjE4ODYiLCBcCi0gICAgICAgICAgIjAuMTE0NTgsIDAuNDYzOTgxLCAwLjc1MzE2OSwgMS4xMTc1MSwgMS40ODY3MywgMS44NTM0OSwgMi4yMTc0OSIsIFwKLSAgICAgICAgICAiMC4xMTQ3MzcsIDAuNDYzOTY2LCAwLjc1MzE3MiwgMS4xMTc2MiwgMS40ODY3LCAxLjg1MzYyLCAyLjIyMDQ4Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjM2MjgxMiwgMC41NzIxMzgsIDAuNzM2OTY1LCAwLjk0MzIxNSwgMS4xNDkzOSwgMS4zNTU1NywgMS41NjE4NCIsIFwKLSAgICAgICAgICAiMC4zNzM4NDYsIDAuNTgzMDc1LCAwLjc0Nzg5OCwgMC45NTQxMDMsIDEuMTYwMzEsIDEuMzY2NjMsIDEuNTcyNzYiLCBcCi0gICAgICAgICAgIjAuMzg3ODQ3LCAwLjU5Njk2MywgMC43NjE3OTMsIDAuOTY4MDQ4LCAxLjE3NDIyLCAxLjM4MDQsIDEuNTg2NjciLCBcCi0gICAgICAgICAgIjAuNDAwNTAxLCAwLjYwOTc3LCAwLjc3NDU4OSwgMC45ODA3NjMsIDEuMTg3MDUsIDEuMzkzMzIsIDEuNTk5NDUiLCBcCi0gICAgICAgICAgIjAuNDE0MDY2LCAwLjYyMzMwNSwgMC43ODgxMywgMC45OTQzODcsIDEuMjAwNTcsIDEuNDA2NzUsIDEuNjEzIiwgXAotICAgICAgICAgICIwLjQzNTkzNCwgMC42NDUyMjcsIDAuODEwMDM2LCAxLjAxNjMsIDEuMjIyNDcsIDEuNDI4NjUsIDEuNjM0OTEiLCBcCi0gICAgICAgICAgIjAuNDU1MTIxLCAwLjY2NDQ1OSwgMC44MjkyNjgsIDEuMDM1NTEsIDEuMjQxNjksIDEuNDQ3ODcsIDEuNjU0MTQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTIxMDc0LCAwLjUxNTU0NywgMC44NDEzNDgsIDEuMjQ5NjYsIDEuNjU5NjgsIDIuMDcwMDQsIDIuNDc5NjIiLCBcCi0gICAgICAgICAgIjAuMTIxMTAzLCAwLjUxNTU0OCwgMC44NDEwOTgsIDEuMjQ5NjYsIDEuNjU5NjksIDIuMDcwMDQsIDIuNDc5NDkiLCBcCi0gICAgICAgICAgIjAuMTIxMDE3LCAwLjUxNTc0OSwgMC44NDA2NTcsIDEuMjQ5NTcsIDEuNjU5NTMsIDIuMDY5ODEsIDIuNDc5NjMiLCBcCi0gICAgICAgICAgIjAuMTIwOTg5LCAwLjUxNTU5NywgMC44NDA2NTYsIDEuMjQ5NTYsIDEuNjU5NDksIDIuMDY5ODEsIDIuNDc5NTMiLCBcCi0gICAgICAgICAgIjAuMTIxMTAxLCAwLjUxNTU0OCwgMC44NDA3OTIsIDEuMjQ5NTEsIDEuNjU4NTgsIDIuMDY5ODEsIDIuNDc5NDUiLCBcCi0gICAgICAgICAgIjAuMTIxMDQsIDAuNTE1NTk1LCAwLjg0MDUzMSwgMS4yNDk2MiwgMS42NTk0MSwgMi4wNjk0OSwgMi40Nzk2IiwgXAotICAgICAgICAgICIwLjEyMTAzNywgMC41MTU1OTYsIDAuODQwNjI3LCAxLjI0OTU2LCAxLjY1OTUzLCAyLjA2OTgyLCAyLjQ3OTUxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzNTMsIDAuMDAzNTk2LCAwLjAwMzYwNywgMC4wMDM2MTIsIDAuMDAzNjE1LCAwLjAwMzYxNywgMC4wMDM2MTkiLCBcCi0gICAgICAgICAgIjAuMDAzNTI4LCAwLjAwMzU5NCwgMC4wMDM2MDQsIDAuMDAzNjExLCAwLjAwMzYxNCwgMC4wMDM2MTUsIDAuMDAzNjE3IiwgXAotICAgICAgICAgICIwLjAwMzUyNywgMC4wMDM1OTMsIDAuMDAzNjA1LCAwLjAwMzYxLCAwLjAwMzYxMywgMC4wMDM2MTQsIDAuMDAzNjE2IiwgXAotICAgICAgICAgICIwLjAwMzUyNiwgMC4wMDM1OTIsIDAuMDAzNjAzLCAwLjAwMzYwOCwgMC4wMDM2MTIsIDAuMDAzNjE0LCAwLjAwMzYxNSIsIFwKLSAgICAgICAgICAiMC4wMDM1MjQsIDAuMDAzNTkxLCAwLjAwMzYwMiwgMC4wMDM2MDgsIDAuMDAzNjEsIDAuMDAzNjEyLCAwLjAwMzYxNCIsIFwKLSAgICAgICAgICAiMC4wMDM1MjEsIDAuMDAzNTg4LCAwLjAwMzU5OSwgMC4wMDM2MDUsIDAuMDAzNjA4LCAwLjAwMzYxLCAwLjAwMzYxMSIsIFwKLSAgICAgICAgICAiMC4wMDM1MiwgMC4wMDM1ODgsIDAuMDAzNTk4LCAwLjAwMzYwNSwgMC4wMDM2MDgsIDAuMDAzNjEsIDAuMDAzNjExIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyMzY4LCAwLjAwMjQzNCwgMC4wMDI0NDUsIDAuMDAyNDUxLCAwLjAwMjQ1NCwgMC4wMDI0NTYsIDAuMDAyNDU3IiwgXAotICAgICAgICAgICIwLjAwMjM1OSwgMC4wMDI0MjUsIDAuMDAyNDM2LCAwLjAwMjQ0MSwgMC4wMDI0NDUsIDAuMDAyNDQ3LCAwLjAwMjQ0OCIsIFwKLSAgICAgICAgICAiMC4wMDIzNTUsIDAuMDAyNDIxLCAwLjAwMjQzMiwgMC4wMDI0MzgsIDAuMDAyNDQxLCAwLjAwMjQ0MywgMC4wMDI0NDUiLCBcCi0gICAgICAgICAgIjAuMDAyMzUyLCAwLjAwMjQxOCwgMC4wMDI0MjksIDAuMDAyNDM1LCAwLjAwMjQzOCwgMC4wMDI0NCwgMC4wMDI0NDIiLCBcCi0gICAgICAgICAgIjAuMDAyMzUsIDAuMDAyNDE2LCAwLjAwMjQyNywgMC4wMDI0MzMsIDAuMDAyNDM2LCAwLjAwMjQzOSwgMC4wMDI0NCIsIFwKLSAgICAgICAgICAiMC4wMDIzNDcsIDAuMDAyNDEzLCAwLjAwMjQyNCwgMC4wMDI0MywgMC4wMDI0MzQsIDAuMDAyNDM1LCAwLjAwMjQzNyIsIFwKLSAgICAgICAgICAiMC4wMDIzNDQsIDAuMDAyNDExLCAwLjAwMjQyMiwgMC4wMDI0MjksIDAuMDAyNDMyLCAwLjAwMjQzNCwgMC4wMDI0MzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDM1MjQsIDAuMDAzNTg5LCAwLjAwMzYsIDAuMDAzNjA1LCAwLjAwMzYwOSwgMC4wMDM2MTEsIDAuMDAzNjEyIiwgXAotICAgICAgICAgICIwLjAwMzUyNCwgMC4wMDM1OSwgMC4wMDM2LCAwLjAwMzYwNiwgMC4wMDM2MDksIDAuMDAzNjExLCAwLjAwMzYxMiIsIFwKLSAgICAgICAgICAiMC4wMDM1MjIsIDAuMDAzNTg4LCAwLjAwMzU5OCwgMC4wMDM2MDUsIDAuMDAzNjA4LCAwLjAwMzYwOSwgMC4wMDM2MSIsIFwKLSAgICAgICAgICAiMC4wMDM1MTksIDAuMDAzNTg1LCAwLjAwMzU5NiwgMC4wMDM2MDIsIDAuMDAzNjA1LCAwLjAwMzYwNywgMC4wMDM2MDgiLCBcCi0gICAgICAgICAgIjAuMDAzNTE2LCAwLjAwMzU4MiwgMC4wMDM1OTMsIDAuMDAzNTk5LCAwLjAwMzYwMiwgMC4wMDM2MDQsIDAuMDAzNjA1IiwgXAotICAgICAgICAgICIwLjAwMzUxLCAwLjAwMzU3NywgMC4wMDM1ODcsIDAuMDAzNTk0LCAwLjAwMzU5NywgMC4wMDM1OTksIDAuMDAzNiIsIFwKLSAgICAgICAgICAiMC4wMDM1MDQsIDAuMDAzNTcxLCAwLjAwMzU4MywgMC4wMDM1ODksIDAuMDAzNTkyLCAwLjAwMzU5NCwgMC4wMDM1OTYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI0NDMsIDAuMDAyNTA5LCAwLjAwMjUxOSwgMC4wMDI1MjYsIDAuMDAyNTI3LCAwLjAwMjUzLCAwLjAwMjUzMSIsIFwKLSAgICAgICAgICAiMC4wMDI0NCwgMC4wMDI1MDYsIDAuMDAyNTE3LCAwLjAwMjUyMiwgMC4wMDI1MjYsIDAuMDAyNTI4LCAwLjAwMjUyOSIsIFwKLSAgICAgICAgICAiMC4wMDI0MzQsIDAuMDAyNTAxLCAwLjAwMjUxMiwgMC4wMDI1MTcsIDAuMDAyNTIsIDAuMDAyNTIyLCAwLjAwMjUyMyIsIFwKLSAgICAgICAgICAiMC4wMDI0MjksIDAuMDAyNDk2LCAwLjAwMjUwNywgMC4wMDI1MTIsIDAuMDAyNTE1LCAwLjAwMjUxNywgMC4wMDI1MTkiLCBcCi0gICAgICAgICAgIjAuMDAyNDI1LCAwLjAwMjQ5MSwgMC4wMDI1MDIsIDAuMDAyNTA4LCAwLjAwMjUxMSwgMC4wMDI1MTMsIDAuMDAyNTE0IiwgXAotICAgICAgICAgICIwLjAwMjQxOCwgMC4wMDI0ODUsIDAuMDAyNDk2LCAwLjAwMjUwMiwgMC4wMDI1MDUsIDAuMDAyNTA3LCAwLjAwMjUwOSIsIFwKLSAgICAgICAgICAiMC4wMDI0MTQsIDAuMDAyNDgsIDAuMDAyNDkxLCAwLjAwMjQ5OCwgMC4wMDI1MDEsIDAuMDAyNTAzLCAwLjAwMjUwNSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNJIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDMzMDEsIDAuMDAzMzY2LCAwLjAwMzM3NywgMC4wMDMzODMsIDAuMDAzMzg2LCAwLjAwMzM4OCwgMC4wMDMzODkiLCBcCi0gICAgICAgICAgIjAuMDAzMzAyLCAwLjAwMzM2NywgMC4wMDMzNzgsIDAuMDAzMzg0LCAwLjAwMzM4NywgMC4wMDMzODksIDAuMDAzMzkxIiwgXAotICAgICAgICAgICIwLjAwMzMsIDAuMDAzMzY1LCAwLjAwMzM3NiwgMC4wMDMzODIsIDAuMDAzMzg1LCAwLjAwMzM4NywgMC4wMDMzODkiLCBcCi0gICAgICAgICAgIjAuMDAzMjk2LCAwLjAwMzM2MiwgMC4wMDMzNzIsIDAuMDAzMzc5LCAwLjAwMzM4MiwgMC4wMDMzODUsIDAuMDAzMzg2IiwgXAotICAgICAgICAgICIwLjAwMzI5NCwgMC4wMDMzNTksIDAuMDAzMzcxLCAwLjAwMzM3NywgMC4wMDMzODEsIDAuMDAzMzgzLCAwLjAwMzM4NCIsIFwKLSAgICAgICAgICAiMC4wMDMyODgsIDAuMDAzMzU0LCAwLjAwMzM2NiwgMC4wMDMzNzIsIDAuMDAzMzc2LCAwLjAwMzM3OSwgMC4wMDMzOCIsIFwKLSAgICAgICAgICAiMC4wMDMyODUsIDAuMDAzMzUsIDAuMDAzMzYyLCAwLjAwMzM2OSwgMC4wMDMzNzMsIDAuMDAzMzc1LCAwLjAwMzM3NyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjQzNSwgMC4wMDI1MDEsIDAuMDAyNTExLCAwLjAwMjUxNywgMC4wMDI1MiwgMC4wMDI1MjIsIDAuMDAyNTI0IiwgXAotICAgICAgICAgICIwLjAwMjQzNiwgMC4wMDI1MDEsIDAuMDAyNTEyLCAwLjAwMjUxOCwgMC4wMDI1MiwgMC4wMDI1MjMsIDAuMDAyNTI0IiwgXAotICAgICAgICAgICIwLjAwMjQzMywgMC4wMDI0OTgsIDAuMDAyNTA5LCAwLjAwMjUxNSwgMC4wMDI1MTgsIDAuMDAyNTIsIDAuMDAyNTIxIiwgXAotICAgICAgICAgICIwLjAwMjQyOSwgMC4wMDI0OTQsIDAuMDAyNTA1LCAwLjAwMjUxMSwgMC4wMDI1MTQsIDAuMDAyNTE2LCAwLjAwMjUxNyIsIFwKLSAgICAgICAgICAiMC4wMDI0MjUsIDAuMDAyNDksIDAuMDAyNTAxLCAwLjAwMjUwNywgMC4wMDI1MTEsIDAuMDAyNTEzLCAwLjAwMjUxNCIsIFwKLSAgICAgICAgICAiMC4wMDI0MTksIDAuMDAyNDg0LCAwLjAwMjQ5NSwgMC4wMDI1MDIsIDAuMDAyNTA1LCAwLjAwMjUwOCwgMC4wMDI1MDkiLCBcCi0gICAgICAgICAgIjAuMDAyNDE0LCAwLjAwMjQ3OSwgMC4wMDI0OTEsIDAuMDAyNDk3LCAwLjAwMjUwMSwgMC4wMDI1MDMsIDAuMDAyNTA1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBBRERGWDQgKgotICogLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChBRERGWDQpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC41MTQwOTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAzMzE0NDE7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAzMzA3MDY7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAzMzE0NDE7Ci0gIH0KLSAgcGluKEIpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMzE1ODU4OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMzEzOTQzOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMzE1ODU4OwotICB9Ci0gIHBpbihDSSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAyNTAzOTQ7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAyNDg2Nzc7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAyNTAzOTQ7Ci0gIH0KLSAgcGluKENPKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuNTI1MTYyOwotICAgIGZ1bmN0aW9uIDogIigoKEEgQikrKEIgQ0kpKSsoQ0kgQSkpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE5NDA2OSwgMC4zMzk3NiwgMC40Njg3MDEsIDAuNTU5ODI5LCAwLjcwNTE5MiwgMC44MzIwOTksIDEuMDE1NTciLCBcCi0gICAgICAgICAgIjAuMjA1NSwgMC4zNTE0MTIsIDAuNDgwMTIsIDAuNTcxMDAyLCAwLjcxNjU3OSwgMC44NDM5MTMsIDEuMDI1MDgiLCBcCi0gICAgICAgICAgIjAuMjIwMDEyLCAwLjM2NTcyOSwgMC40OTQ0MDEsIDAuNTg1NDM0LCAwLjczMDc3MSwgMC44NTc3MDgsIDEuMDQwNzMiLCBcCi0gICAgICAgICAgIjAuMjMzMzc3LCAwLjM3OTQ1MiwgMC41MDgxMDUsIDAuNTk5MDY3LCAwLjc0NDAzNywgMC44NzI0NCwgMS4wNTQxNiIsIFwKLSAgICAgICAgICAiMC4yNDY5LCAwLjM5Mjg4MiwgMC41MjE1ODksIDAuNjEyNjUsIDAuNzU3OTA0LCAwLjg4NTAwMywgMS4wNjc1MyIsIFwKLSAgICAgICAgICAiMC4yNjg2NTYsIDAuNDE0NDEzLCAwLjU0MzA3MiwgMC42MzM4MzEsIDAuNzc5NDk3LCAwLjkwNzMyLCAxLjA4ODkiLCBcCi0gICAgICAgICAgIjAuMjg3NDUyLCAwLjQzMzMwMSwgMC41NjIwMDcsIDAuNjUzMDgyLCAwLjc5ODIsIDAuOTI1NDA2LCAxLjEwNjYzIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg3NDE4LCAwLjMzMDM2OCwgMC41ODI1MTQsIDAuNzY5OTE5LCAxLjA2NzcsIDEuMzMwODcsIDEuNzAwNzYiLCBcCi0gICAgICAgICAgIjAuMDg2NDQ1LCAwLjMyOTU1MywgMC41ODI1MSwgMC43NjA3NDUsIDEuMDY3OSwgMS4zMjQ2OSwgMS43MDE1OSIsIFwKLSAgICAgICAgICAiMC4wODc0NzYsIDAuMzMwODEzLCAwLjU4MjQ0MywgMC43NjE4NiwgMS4wNjQ4NywgMS4zMjYxNiwgMS43MDA1NiIsIFwKLSAgICAgICAgICAiMC4wODY3ODMsIDAuMzMwMDg2LCAwLjU4MjY3MiwgMC43NjAxODksIDEuMDY3NTIsIDEuMzI4NjQsIDEuNjkwMzEiLCBcCi0gICAgICAgICAgIjAuMDg2MTgzLCAwLjMzMDAyLCAwLjU4MjMyNiwgMC43NzA3NCwgMS4wNjg2OSwgMS4zMjU4NiwgMS43MDA5MiIsIFwKLSAgICAgICAgICAiMC4wODYyNzcsIDAuMzMwMzcxLCAwLjU4OTM0NCwgMC43NjIwNzEsIDEuMDY2MTgsIDEuMzE4NDMsIDEuNzAwMzYiLCBcCi0gICAgICAgICAgIjAuMDg1OTgsIDAuMzI5MDkyLCAwLjU4OTk1MSwgMC43Njk2MjcsIDEuMDY1NjIsIDEuMzI2MDgsIDEuNzAwNDQiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xODgzNTUsIDAuMzUxMzQ5LCAwLjQ5ODQzNywgMC42MDMwNTYsIDAuNzcwMjQ1LCAwLjkxNTU0MSwgMS4xMjI4OSIsIFwKLSAgICAgICAgICAiMC4yMDAyMTMsIDAuMzYzMTQ2LCAwLjUxMDIxOCwgMC42MTQ4MDcsIDAuNzgxNjMzLCAwLjkyNzIyMiwgMS4xMzQ2MiIsIFwKLSAgICAgICAgICAiMC4yMTQyMTcsIDAuMzc3MjE2LCAwLjUyNDI5NCwgMC42Mjg5MjgsIDAuNzk1MDE2LCAwLjk0MTQwMywgMS4xNDg3NSIsIFwKLSAgICAgICAgICAiMC4yMjc0MjYsIDAuMzkwNDEzLCAwLjUzNzQ2MywgMC42NDIwODIsIDAuODA4MTA2LCAwLjk1Mzk5NiwgMS4xNjIiLCBcCi0gICAgICAgICAgIjAuMjQwMzE4LCAwLjQwMzIwMywgMC41NTAyODYsIDAuNjU0ODczLCAwLjgyMjExNywgMC45NjcyMzYsIDEuMTc0NjciLCBcCi0gICAgICAgICAgIjAuMjYwMTU1LCAwLjQyMzE1NywgMC41NzAyMiwgMC42NzQ4MzcsIDAuODQwOTQ4LCAwLjk4Njg0NCwgMS4xOTQ2NCIsIFwKLSAgICAgICAgICAiMC4yNzc2MjQsIDAuNDQwNTI4LCAwLjU4NzYyMSwgMC42OTIyMTcsIDAuODU5NDY4LCAxLjAwNDU5LCAxLjIxMjAyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg5MTQ1LCAwLjM2NTI4OSwgMC42NDY5NjgsIDAuODUyMTkyLCAxLjE4MTUyLCAxLjQ3MTc3LCAxLjg4NTA1IiwgXAotICAgICAgICAgICIwLjA4ODcxNiwgMC4zNjYxOTEsIDAuNjQ3ODUxLCAwLjg1MTcxOSwgMS4xODA5MiwgMS40NzA2MywgMS44ODU1OCIsIFwKLSAgICAgICAgICAiMC4wODkxMDYsIDAuMzY2NTI4LCAwLjY0NzAzNywgMC44NTE3ODIsIDEuMTgwNjcsIDEuNDcwNzUsIDEuODg2MTYiLCBcCi0gICAgICAgICAgIjAuMDg5Mjg3LCAwLjM2NjM4OCwgMC42NDc2ODksIDAuODUxNzgyLCAxLjE4MDczLCAxLjQ3MTk1LCAxLjg4NTM3IiwgXAotICAgICAgICAgICIwLjA4OTI0NiwgMC4zNjYwODMsIDAuNjQ4MywgMC44NTE3MTksIDEuMTgwNjQsIDEuNDcwNTIsIDEuODg1ODQiLCBcCi0gICAgICAgICAgIjAuMDg5MjY2LCAwLjM2NjU5NiwgMC42NDc3MzksIDAuODUxNjg4LCAxLjE4MDkzLCAxLjQ2OTA0LCAxLjg4NTUyIiwgXAotICAgICAgICAgICIwLjA4ODk4OCwgMC4zNjUyMTYsIDAuNjQ4MjY4LCAwLjg1MTY5OCwgMS4xODE4NCwgMS40NzA1MiwgMS44ODU1NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE5MzkyMywgMC4zMzk3NTEsIDAuNDY4NjY0LCAwLjU1OTc3NCwgMC43MDUyNzksIDAuODMzMTQ2LCAxLjAxNDE2IiwgXAotICAgICAgICAgICIwLjIwNDYxNSwgMC4zNTAyMzUsIDAuNDc5MTMyLCAwLjU3MDI2MiwgMC43MTU2OTQsIDAuODQ0MDE2LCAxLjAyNjU5IiwgXAotICAgICAgICAgICIwLjIxNzYxMywgMC4zNjMzMzEsIDAuNDkyMjU3LCAwLjU4MzM5MSwgMC43Mjg3NTUsIDAuODU1OTEsIDEuMDM3MDMiLCBcCi0gICAgICAgICAgIjAuMjMwMjI4LCAwLjM3NjA1OCwgMC41MDQ5OTUsIDAuNTk2MTMyLCAwLjc0MTQyNSwgMC44Njg1OCwgMS4wNTI0NCIsIFwKLSAgICAgICAgICAiMC4yNDM0MSwgMC4zODkyMDQsIDAuNTE4MTk2LCAwLjYwOTMzNiwgMC43NTQ2MDgsIDAuODgxNzM1LCAxLjA2NTUyIiwgXAotICAgICAgICAgICIwLjI2NTEyNiwgMC40MTA1NSwgMC41Mzk1NDIsIDAuNjMwNjg5LCAwLjc3NjAwMSwgMC45MDQxOTYsIDEuMDg0MTMiLCBcCi0gICAgICAgICAgIjAuMjgzODUxLCAwLjQyOTM1LCAwLjU1ODM0MiwgMC42NDk0OTMsIDAuNzk0NzE5LCAwLjkyMTg2MiwgMS4xMDU1MiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4NzM0OSwgMC4zMzE0NjgsIDAuNTgyNDc1LCAwLjc3MTAwNywgMS4wNjAwNywgMS4zMjQxOCwgMS42ODkxNyIsIFwKLSAgICAgICAgICAiMC4wODcyNTUsIDAuMzMwODYyLCAwLjU4MjQyNCwgMC43NjM1MTcsIDEuMDcwMzQsIDEuMzI0MjYsIDEuNjk4OSIsIFwKLSAgICAgICAgICAiMC4wODc2MDEsIDAuMzMwNTIsIDAuNTgyMjEyLCAwLjc3MjE4MywgMS4wNjEyOCwgMS4zMjUwMywgMS42OTk0NSIsIFwKLSAgICAgICAgICAiMC4wODY2MDEsIDAuMzMwNTI4LCAwLjU4MjM0NCwgMC43NjE4NiwgMS4wNjA4MSwgMS4zMjU1LCAxLjY5OTk3IiwgXAotICAgICAgICAgICIwLjA4NzIzLCAwLjMzMDUwNiwgMC41ODIyNDgsIDAuNzYwMTE5LCAxLjA2MTk3LCAxLjMyNDc1LCAxLjcwMDQ0IiwgXAotICAgICAgICAgICIwLjA4NjU5MywgMC4zMjk2MjYsIDAuNTgyMzE0LCAwLjc1OTc0MiwgMS4wNjkyMiwgMS4zMjQ1LCAxLjY5NjUxIiwgXAotICAgICAgICAgICIwLjA4NjExNSwgMC4zMzAxOCwgMC41ODIwMTgsIDAuNzcwMjg1LCAxLjA2NzYsIDEuMzI1NDgsIDEuNzAxMjMiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xODI5MzksIDAuMzQ5MjY0LCAwLjQ5NjYxNSwgMC42MDA2NTYsIDAuNzY4MjExLCAwLjkxMzY4OSwgMS4xMjA4OCIsIFwKLSAgICAgICAgICAiMC4xOTQ3NDUsIDAuMzYwOTk5LCAwLjUwODQxOCwgMC42MTI5NjMsIDAuNzc5ODA0LCAwLjkyNTM3NCwgMS4xMzI3NSIsIFwKLSAgICAgICAgICAiMC4yMDg4MTQsIDAuMzc1MDkxLCAwLjUyMjQ0MywgMC42MjY5NTksIDAuNzkzNDU4LCAwLjkzOTQ4NywgMS4xNDY4MyIsIFwKLSAgICAgICAgICAiMC4yMjE4MzgsIDAuMzg4MTE2LCAwLjUzNTQ4OCwgMC42NDAwNDQsIDAuODA2ODIyLCAwLjk1MjQ3OCwgMS4xNTk4NCIsIFwKLSAgICAgICAgICAiMC4yMzQ2MjUsIDAuNDAwNzcyLCAwLjU0ODA5NSwgMC42NTI3NDgsIDAuODE5NjU3LCAwLjk2NTE0NywgMS4xNzI1NCIsIFwKLSAgICAgICAgICAiMC4yNTQ1MTksIDAuNDIwNjkyLCAwLjU2ODAxMiwgMC42NzI2NzEsIDAuODM5NTI3LCAwLjk4NTA4LCAxLjE5MjQ3IiwgXAotICAgICAgICAgICIwLjI3MjY4NywgMC40Mzc4NDYsIDAuNTg1MjQ5LCAwLjY4OTc5NCwgMC44NTcwOTEsIDEuMDAyMTgsIDEuMjA5NTgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTMwNywgMC4zNjY1MzEsIDAuNjQ4MDQ0LCAwLjg1MzA5MywgMS4xODE3NywgMS40NzAzOSwgMS44ODU5MyIsIFwKLSAgICAgICAgICAiMC4wOTI1NDUsIDAuMzY2NDIyLCAwLjY1MDY5MiwgMC44NTI3NDIsIDEuMTgwOSwgMS40NzE2OSwgMS44ODQiLCBcCi0gICAgICAgICAgIjAuMDkyMzA2LCAwLjM2NjM3MywgMC42NDgwMjUsIDAuODUxNzYsIDEuMTgwNywgMS40NzE0OSwgMS44ODM0MSIsIFwKLSAgICAgICAgICAiMC4wOTI1MjYsIDAuMzY2NjUxLCAwLjY0NzEyNiwgMC44NTE5MywgMS4xODA2NiwgMS40NzAzMiwgMS44ODU4MSIsIFwKLSAgICAgICAgICAiMC4wOTIwNzIsIDAuMzY2MzA4LCAwLjY1MDUxMiwgMC44NTI1MzQsIDEuMTgxNzcsIDEuNDcwMzYsIDEuODg1NjQiLCBcCi0gICAgICAgICAgIjAuMDkxNTA0LCAwLjM2NjI0NywgMC42NTA0OSwgMC44NTE5NTcsIDEuMTgwOTIsIDEuNDcwMzQsIDEuODg1NTQiLCBcCi0gICAgICAgICAgIjAuMDkxNzc0LCAwLjM2Njc4LCAwLjY1MDQ4MywgMC44NTIwMDMsIDEuMTgwNjYsIDEuNDcxODcsIDEuODg1ODIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0kiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTgyMzE1LCAwLjMyODI5OSwgMC40NTY5OTksIDAuNTQ3ODgsIDAuNjkzMzYxLCAwLjgxOTgzMiwgMS4wMDExMyIsIFwKLSAgICAgICAgICAiMC4xOTI4OTcsIDAuMzM4ODcsIDAuNDY3NTU2LCAwLjU1ODYyNywgMC43MDM3NSwgMC44MzA5MzgsIDEuMDEyMTUiLCBcCi0gICAgICAgICAgIjAuMjA2MjMyLCAwLjM1MTk5NSwgMC40ODA2ODUsIDAuNTcxNTg3LCAwLjcxNzA1NCwgMC44NDM0MDMsIDEuMDI0ODciLCBcCi0gICAgICAgICAgIjAuMjE5Nzg0LCAwLjM2NTc4NywgMC40OTQ0NjIsIDAuNTg1NTQxLCAwLjczMDUzMSwgMC44NTc4MjUsIDEuMDM5MDMiLCBcCi0gICAgICAgICAgIjAuMjMyODI3LCAwLjM3ODc5NSwgMC41MDc0MTIsIDAuNTk4NDk0LCAwLjc0MzQ1OSwgMC44NzA3NjYsIDEuMDUxOTgiLCBcCi0gICAgICAgICAgIjAuMjU0MzkxLCAwLjQwMDEyOCwgMC41Mjg3ODEsIDAuNjE5NDY1LCAwLjc2NTEyNSwgMC44OTI4MzYsIDEuMDczNzgiLCBcCi0gICAgICAgICAgIjAuMjczMjE3LCAwLjQxOTExMiwgMC41NDc3NTksIDAuNjM4ODIzLCAwLjc4NDA1NCwgMC45MTEyNjYsIDEuMDkzNzYiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODczNjIsIDAuMzMxNjUyLCAwLjU5MDE0NywgMC43Njc5MjksIDEuMDYyOTEsIDEuMzI1NDMsIDEuNzAxMTYiLCBcCi0gICAgICAgICAgIjAuMDg4MDk1LCAwLjMzMTM5NywgMC41OTAwOSwgMC43NzI1OTIsIDEuMDYzMTMsIDEuMzI2NDgsIDEuNzAwMjgiLCBcCi0gICAgICAgICAgIjAuMDg3Nzc4LCAwLjMzMDU0NCwgMC41ODg2OSwgMC43NjExMTQsIDEuMDY2MjIsIDEuMzI3MywgMS43MDEyIiwgXAotICAgICAgICAgICIwLjA4NzY2OCwgMC4zMzA1LCAwLjU4MTc5NywgMC43NjEzNzIsIDEuMDY4MzUsIDEuMzI2MzcsIDEuNzAwNTIiLCBcCi0gICAgICAgICAgIjAuMDg3NDg0LCAwLjMyOTc2MywgMC41OTAxOTgsIDAuNzcxNTc3LCAxLjA2ODY0LCAxLjMyNjI3LCAxLjcwMDc1IiwgXAotICAgICAgICAgICIwLjA4NzQyLCAwLjMzMDkyNSwgMC41OTAwODcsIDAuNzcwNTYsIDEuMDYzMjMsIDEuMzI1NDUsIDEuNzAxMTMiLCBcCi0gICAgICAgICAgIjAuMDg4NTYxLCAwLjMzMDcsIDAuNTgyNzI5LCAwLjc3MTUyOSwgMS4wNjI4MSwgMS4zMjYwNSwgMS43MDAxNyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE3NTkzNiwgMC4zNDMwMTYsIDAuNDkwNDEsIDAuNTk0OTQ5LCAwLjc2MTcxNywgMC45MDczMjcsIDEuMTE0NjkiLCBcCi0gICAgICAgICAgIjAuMTg2NDE5LCAwLjM1MzQ2LCAwLjUwMDc5MSwgMC42MDUzODksIDAuNzcyMDE4LCAwLjkxNzgwNCwgMS4xMjUxNCIsIFwKLSAgICAgICAgICAiMC4xOTkyNTksIDAuMzY2MzE0LCAwLjUxMzY3OCwgMC42MTgzNDQsIDAuNzg0ODMzLCAwLjkzMDg0MiwgMS4xMzgwMSIsIFwKLSAgICAgICAgICAiMC4yMTI3ODMsIDAuMzc5ODA5LCAwLjUyNzA1NywgMC42MzE3OSwgMC43OTg2MzksIDAuOTQ0MTY5LCAxLjE1MTU0IiwgXAotICAgICAgICAgICIwLjIyNTk2NCwgMC4zOTI5NywgMC41NDAzNDUsIDAuNjQ0OTY1LCAwLjgxMTc5NSwgMC45NTczNSwgMS4xNjQ3MiIsIFwKLSAgICAgICAgICAiMC4yNDczNTgsIDAuNDE0MzY2LCAwLjU2MTgwMywgMC42NjYzNTMsIDAuODMzMTQ3LCAwLjk3ODU1MSwgMS4xODYiLCBcCi0gICAgICAgICAgIjAuMjY1OTI3LCAwLjQzMjk5OCwgMC41ODAzMzIsIDAuNjg1MDA2LCAwLjg1MTgyOSwgMC45OTc0LCAxLjIwNDc4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk1NjUzLCAwLjM2NzgzNiwgMC42NTA2NjMsIDAuODUyMTksIDEuMTgxMzQsIDEuNDcwNjcsIDEuODgzMjYiLCBcCi0gICAgICAgICAgIjAuMDk0ODk0LCAwLjM2NzIwNiwgMC42NDgwNjYsIDAuODUyMTE3LCAxLjE4MTQ4LCAxLjQ3MDY4LCAxLjg4MzMzIiwgXAotICAgICAgICAgICIwLjA5NTY1MSwgMC4zNjcxNDIsIDAuNjQ4ODIxLCAwLjg1MjIzMSwgMS4xODE0MywgMS40NjgyMiwgMS44ODMyNyIsIFwKLSAgICAgICAgICAiMC4wOTUyMzYsIDAuMzY3NTc1LCAwLjY1MDQ1MywgMC44NTIxODUsIDEuMTgwNzMsIDEuNDcwNjgsIDEuODgzMjYiLCBcCi0gICAgICAgICAgIjAuMDk1MzM2LCAwLjM2NzUyNSwgMC42NTAwOTMsIDAuODUyMTg0LCAxLjE3OTc4LCAxLjQ3MDU3LCAxLjg4MzI2IiwgXAotICAgICAgICAgICIwLjA5NTE3OCwgMC4zNjczMDEsIDAuNjUwNzcyLCAwLjg1MjE5MSwgMS4xNzk3MywgMS40NzA0NywgMS44ODI4NCIsIFwKLSAgICAgICAgICAiMC4wOTYxNzEsIDAuMzY3NzgxLCAwLjY1MDA2NSwgMC44NTIyMDMsIDEuMTc5NzksIDEuNDcwNDQsIDEuODgzMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDIxMSwgMC4wMDQzNzIsIDAuMDA0NDAzLCAwLjAwNDQxMywgMC4wMDQ0MjMsIDAuMDA0NDI4LCAwLjAwNDQzMiIsIFwKLSAgICAgICAgICAiMC4wMDQxOTMsIDAuMDA0MzU0LCAwLjAwNDM4NSwgMC4wMDQzOTYsIDAuMDA0NDA1LCAwLjAwNDQxLCAwLjAwNDQxNCIsIFwKLSAgICAgICAgICAiMC4wMDQxODUsIDAuMDA0MzQ2LCAwLjAwNDM3NywgMC4wMDQzODgsIDAuMDA0Mzk3LCAwLjAwNDQwMywgMC4wMDQ0MDYiLCBcCi0gICAgICAgICAgIjAuMDA0MTc5LCAwLjAwNDM0LCAwLjAwNDM3MiwgMC4wMDQzODIsIDAuMDA0MzkyLCAwLjAwNDM5NywgMC4wMDQ0IiwgXAotICAgICAgICAgICIwLjAwNDE3NCwgMC4wMDQzMzYsIDAuMDA0MzY3LCAwLjAwNDM3OCwgMC4wMDQzODgsIDAuMDA0MzkzLCAwLjAwNDM5NyIsIFwKLSAgICAgICAgICAiMC4wMDQxNjksIDAuMDA0MzI4LCAwLjAwNDM2MSwgMC4wMDQzNzIsIDAuMDA0MzgyLCAwLjAwNDM4NywgMC4wMDQzOTIiLCBcCi0gICAgICAgICAgIjAuMDA0MTY3LCAwLjAwNDMyNSwgMC4wMDQzNTksIDAuMDA0MzY5LCAwLjAwNDM3OSwgMC4wMDQzODQsIDAuMDA0MzkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjAxMiwgMC4wMDYxNzMsIDAuMDA2MjA0LCAwLjAwNjIxNCwgMC4wMDYyMjMsIDAuMDA2MjI3LCAwLjAwNjIzMiIsIFwKLSAgICAgICAgICAiMC4wMDYwMDksIDAuMDA2MTcsIDAuMDA2MiwgMC4wMDYyMSwgMC4wMDYyMTksIDAuMDA2MjIzLCAwLjAwNjIyOCIsIFwKLSAgICAgICAgICAiMC4wMDYwMDcsIDAuMDA2MTY4LCAwLjAwNjE5OCwgMC4wMDYyMDksIDAuMDA2MjE4LCAwLjAwNjIyMiwgMC4wMDYyMjYiLCBcCi0gICAgICAgICAgIjAuMDA2MDA0LCAwLjAwNjE2NSwgMC4wMDYxOTcsIDAuMDA2MjA2LCAwLjAwNjIxNSwgMC4wMDYyMjEsIDAuMDA2MjI1IiwgXAotICAgICAgICAgICIwLjAwNjAwMSwgMC4wMDYxNjIsIDAuMDA2MTk1LCAwLjAwNjIwNCwgMC4wMDYyMTIsIDAuMDA2MjE4LCAwLjAwNjIyIiwgXAotICAgICAgICAgICIwLjAwNTk5NiwgMC4wMDYxNTcsIDAuMDA2MTg5LCAwLjAwNjE5OSwgMC4wMDYyMDksIDAuMDA2MjE0LCAwLjAwNjIxOSIsIFwKLSAgICAgICAgICAiMC4wMDU5OTMsIDAuMDA2MTUzLCAwLjAwNjE4NiwgMC4wMDYxOTcsIDAuMDA2MjA2LCAwLjAwNjIxLCAwLjAwNjIxNiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0MzUyLCAwLjAwNDUxMywgMC4wMDQ1NDQsIDAuMDA0NTU0LCAwLjAwNDU2MywgMC4wMDQ1NjgsIDAuMDA0NTczIiwgXAotICAgICAgICAgICIwLjAwNDM0NSwgMC4wMDQ1MDYsIDAuMDA0NTM3LCAwLjAwNDU0NywgMC4wMDQ1NTUsIDAuMDA0NTYsIDAuMDA0NTY0IiwgXAotICAgICAgICAgICIwLjAwNDMzMSwgMC4wMDQ0OTQsIDAuMDA0NTI1LCAwLjAwNDUzNSwgMC4wMDQ1NDQsIDAuMDA0NTQ5LCAwLjAwNDU1NCIsIFwKLSAgICAgICAgICAiMC4wMDQzMjIsIDAuMDA0NDgzLCAwLjAwNDUxNSwgMC4wMDQ1MjYsIDAuMDA0NTM0LCAwLjAwNDUzOSwgMC4wMDQ1NDMiLCBcCi0gICAgICAgICAgIjAuMDA0MzEzLCAwLjAwNDQ3NCwgMC4wMDQ1MDYsIDAuMDA0NTE3LCAwLjAwNDUyNiwgMC4wMDQ1MzEsIDAuMDA0NTM2IiwgXAotICAgICAgICAgICIwLjAwNDMwMSwgMC4wMDQ0NiwgMC4wMDQ0OTMsIDAuMDA0NTA0LCAwLjAwNDUxMywgMC4wMDQ1MTksIDAuMDA0NTI0IiwgXAotICAgICAgICAgICIwLjAwNDI5MywgMC4wMDQ0NSwgMC4wMDQ0ODUsIDAuMDA0NDk2LCAwLjAwNDUwNiwgMC4wMDQ1MTIsIDAuMDA0NTE3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDU5ODMsIDAuMDA2MTQyLCAwLjAwNjE3MiwgMC4wMDYxODIsIDAuMDA2MTkyLCAwLjAwNjE5NiwgMC4wMDYyMDEiLCBcCi0gICAgICAgICAgIjAuMDA1OTgyLCAwLjAwNjE0MiwgMC4wMDYxNzMsIDAuMDA2MTgzLCAwLjAwNjE5MiwgMC4wMDYxOTcsIDAuMDA2MjAxIiwgXAotICAgICAgICAgICIwLjAwNTk4LCAwLjAwNjEzOSwgMC4wMDYxNywgMC4wMDYxNzksIDAuMDA2MTg4LCAwLjAwNjE5NCwgMC4wMDYxOTciLCBcCi0gICAgICAgICAgIjAuMDA1OTczLCAwLjAwNjEzMywgMC4wMDYxNjQsIDAuMDA2MTc0LCAwLjAwNjE4MiwgMC4wMDYxODcsIDAuMDA2MTkyIiwgXAotICAgICAgICAgICIwLjAwNTk2NywgMC4wMDYxMjYsIDAuMDA2MTU3LCAwLjAwNjE2NywgMC4wMDYxNzYsIDAuMDA2MTgxLCAwLjAwNjE4NiIsIFwKLSAgICAgICAgICAiMC4wMDU5NTUsIDAuMDA2MTE0LCAwLjAwNjE0NiwgMC4wMDYxNTcsIDAuMDA2MTY2LCAwLjAwNjE3MiwgMC4wMDYxNzYiLCBcCi0gICAgICAgICAgIjAuMDA1OTQ1LCAwLjAwNjEwMywgMC4wMDYxMzYsIDAuMDA2MTQ3LCAwLjAwNjE1NywgMC4wMDYxNjMsIDAuMDA2MTY3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0kiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0MzQ2LCAwLjAwNDUwNSwgMC4wMDQ1MzYsIDAuMDA0NTQ3LCAwLjAwNDU1NSwgMC4wMDQ1NjEsIDAuMDA0NTY1IiwgXAotICAgICAgICAgICIwLjAwNDM0NiwgMC4wMDQ1MDYsIDAuMDA0NTM3LCAwLjAwNDU1LCAwLjAwNDU1NiwgMC4wMDQ1NjEsIDAuMDA0NTY4IiwgXAotICAgICAgICAgICIwLjAwNDMzOSwgMC4wMDQ0OTksIDAuMDA0NTMsIDAuMDA0NTQsIDAuMDA0NTUsIDAuMDA0NTU0LCAwLjAwNDU1OCIsIFwKLSAgICAgICAgICAiMC4wMDQzMzIsIDAuMDA0NDkyLCAwLjAwNDUyMywgMC4wMDQ1MzQsIDAuMDA0NTQzLCAwLjAwNDU1LCAwLjAwNDU1MiIsIFwKLSAgICAgICAgICAiMC4wMDQzMjMsIDAuMDA0NDgxLCAwLjAwNDUxNCwgMC4wMDQ1MjQsIDAuMDA0NTM0LCAwLjAwNDUzOSwgMC4wMDQ1NDQiLCBcCi0gICAgICAgICAgIjAuMDA0MzEyLCAwLjAwNDQ2OCwgMC4wMDQ1MDEsIDAuMDA0NTEyLCAwLjAwNDUyMywgMC4wMDQ1MjgsIDAuMDA0NTM0IiwgXAotICAgICAgICAgICIwLjAwNDMwMiwgMC4wMDQ0NTcsIDAuMDA0NDkxLCAwLjAwNDUwMiwgMC4wMDQ1MTMsIDAuMDA0NTE5LCAwLjAwNDUyNiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1Njc4LCAwLjAwNTgzNCwgMC4wMDU4NjUsIDAuMDA1ODc1LCAwLjAwNTg4NSwgMC4wMDU4OSwgMC4wMDU4OTUiLCBcCi0gICAgICAgICAgIjAuMDA1NjgsIDAuMDA1ODM2LCAwLjAwNTg2NiwgMC4wMDU4NzcsIDAuMDA1ODg2LCAwLjAwNTg5MSwgMC4wMDU4OTYiLCBcCi0gICAgICAgICAgIjAuMDA1Njc1LCAwLjAwNTgzMSwgMC4wMDU4NjIsIDAuMDA1ODczLCAwLjAwNTg4MiwgMC4wMDU4ODcsIDAuMDA1ODkyIiwgXAotICAgICAgICAgICIwLjAwNTY3LCAwLjAwNTgyNSwgMC4wMDU4NTgsIDAuMDA1ODY4LCAwLjAwNTg3OCwgMC4wMDU4ODQsIDAuMDA1ODg4IiwgXAotICAgICAgICAgICIwLjAwNTY2NCwgMC4wMDU4MTgsIDAuMDA1ODUxLCAwLjAwNTg2MiwgMC4wMDU4NzIsIDAuMDA1ODc4LCAwLjAwNTg4MyIsIFwKLSAgICAgICAgICAiMC4wMDU2NTcsIDAuMDA1ODA3LCAwLjAwNTg0MSwgMC4wMDU4NTMsIDAuMDA1ODY0LCAwLjAwNTg3MSwgMC4wMDU4NzYiLCBcCi0gICAgICAgICAgIjAuMDA1NjUsIDAuMDA1Nzk4LCAwLjAwNTgzNCwgMC4wMDU4NDYsIDAuMDA1ODU4LCAwLjAwNTg2NCwgMC4wMDU4NyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUykgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjQ3Nzc3MzsKLSAgICBmdW5jdGlvbiA6ICIoKEFeQileQ0kpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI0MzcxMywgMC4zOTUxNDUsIDAuNTI0NDY5LCAwLjYxNTg1LCAwLjc2MTYyOCwgMC44ODkwNTksIDEuMDcwOTIiLCBcCi0gICAgICAgICAgIjAuMjU0Njc4LCAwLjQwNjE2MSwgMC41MzUzNDYsIDAuNjI2NzMzLCAwLjc3MjUwNiwgMC44OTk5MzEsIDEuMDgxODIiLCBcCi0gICAgICAgICAgIjAuMjY3NDU0LCAwLjQxODYxMiwgMC41NDc4NDMsIDAuNjM5MjAxLCAwLjc4NTA0LCAwLjkxMjQxOCwgMS4wOTQzMSIsIFwKLSAgICAgICAgICAiMC4yNzk0MzYsIDAuNDMwNjUxLCAwLjU1OTkyMywgMC42NTEzMzcsIDAuNzk3MTAxLCAwLjkyNDQ2NiwgMS4xMDYzMSIsIFwKLSAgICAgICAgICAiMC4yOTEyODYsIDAuNDQyMzk3LCAwLjU3MTYxOSwgMC42NjMwMDUsIDAuODA4Nzc0LCAwLjkzNjE5NSwgMS4xMTgxIiwgXAotICAgICAgICAgICIwLjMxMDEwNSwgMC40NjA5OTUsIDAuNTkwMjY0LCAwLjY4MTYxMSwgMC44Mjc0MDMsIDAuOTU0ODMsIDEuMTM2NzMiLCBcCi0gICAgICAgICAgIjAuMzI2MzE0LCAwLjQ3NzI2LCAwLjYwNjU2NSwgMC42OTc5NDksIDAuODQzNzMxLCAwLjk3MTE0MSwgMS4xNTMwNCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5NTc4NCwgMC4zMzYyODcsIDAuNTg3MTExLCAwLjc2OTA2MiwgMS4wNTk1OCwgMS4zMTYzNywgMS42ODgyMyIsIFwKLSAgICAgICAgICAiMC4wOTU2NzUsIDAuMzM2NTQ4LCAwLjU4NzAwNywgMC43Njg5ODUsIDEuMDU5MjUsIDEuMzE1OTcsIDEuNjg4MTUiLCBcCi0gICAgICAgICAgIjAuMDk1MTI4LCAwLjMzNjM4NiwgMC41ODcsIDAuNzY3MDQsIDEuMDYxOTYsIDEuMzE2MDksIDEuNjg4MTEiLCBcCi0gICAgICAgICAgIjAuMDk1NDM3LCAwLjMzNjQ1NywgMC41ODY5NzMsIDAuNzY4Nzk5LCAxLjA2MDI5LCAxLjMxODg0LCAxLjY4NzYyIiwgXAotICAgICAgICAgICIwLjA5NDc4MywgMC4zMzYzNjMsIDAuNTg2OTAxLCAwLjc2ODkzOSwgMS4wNjAxLCAxLjMxNjc3LCAxLjY4ODExIiwgXAotICAgICAgICAgICIwLjA5NDg4NSwgMC4zMzY0NzksIDAuNTg2OTc5LCAwLjc2NzQwNSwgMS4wNjE1LCAxLjMxNTg1LCAxLjY4ODEyIiwgXAotICAgICAgICAgICIwLjA5NDUzMiwgMC4zMzY0MDUsIDAuNTg2OTM1LCAwLjc2ODg3MywgMS4wNjAwNiwgMS4zMTYxMiwgMS42ODgwNiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIzMzIwNSwgMC40MDE4MDUsIDAuNTQ5NjUyLCAwLjY1NDM1MywgMC44MjE0NzYsIDAuOTY3NTY5LCAxLjE3NjIzIiwgXAotICAgICAgICAgICIwLjI0NDM2NSwgMC40MTMwMzUsIDAuNTYwODU5LCAwLjY2NTU2MiwgMC44MzI2OSwgMC45Nzg4MzgsIDEuMTg3NDIiLCBcCi0gICAgICAgICAgIjAuMjU3MDIsIDAuNDI1NjksIDAuNTczNDc4LCAwLjY3ODE1MiwgMC44NDUzNjEsIDAuOTkxNDc2LCAxLjIwMDExIiwgXAotICAgICAgICAgICIwLjI2ODgzOCwgMC40MzczNTEsIDAuNTg1MTg0LCAwLjY4OTg4NywgMC44NTcwMTMsIDEuMDAzMDksIDEuMjExNzEiLCBcCi0gICAgICAgICAgIjAuMjc5OTgxLCAwLjQ0ODU1MywgMC41OTY0MTIsIDAuNzAxMTExLCAwLjg2ODIzNywgMS4wMTQzMiwgMS4yMjI5MiIsIFwKLSAgICAgICAgICAiMC4yOTczMzQsIDAuNDY1ODg0LCAwLjYxMzcxNywgMC43MTg0MjQsIDAuODg1NTYyLCAxLjAzMTgsIDEuMjQwMzQiLCBcCi0gICAgICAgICAgIjAuMzEyMTQ0LCAwLjQ4MDc0NiwgMC42Mjg2MTYsIDAuNzMzMzQ5LCAwLjkwMDQ2NiwgMS4wNDY3LCAxLjI1NTI0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk4MDI5LCAwLjM3MjU3OSwgMC42NTU0NiwgMC44NjEwMzIsIDEuMTg3NjksIDEuNDgxMTcsIDEuODk1MDUiLCBcCi0gICAgICAgICAgIjAuMDk4MzE1LCAwLjM3MjUyMiwgMC42NTU0MTMsIDAuODYxMDA5LCAxLjE4NzY2LCAxLjQ3NzE3LCAxLjg5NTI5IiwgXAotICAgICAgICAgICIwLjA5NzkwNywgMC4zNzI2NSwgMC42NTU1NSwgMC44NjA5MzUsIDEuMTkxNzgsIDEuNDc4NjMsIDEuODk0OCIsIFwKLSAgICAgICAgICAiMC4wOTgwNDIsIDAuMzcyNTA0LCAwLjY1NTM3MSwgMC44NjEwMDcsIDEuMTg3NDksIDEuNDgwOTQsIDEuODk1ODQiLCBcCi0gICAgICAgICAgIjAuMDk3ODQ3LCAwLjM3MjU3MiwgMC42NTU0ODEsIDAuODYxMDM2LCAxLjE4NzY0LCAxLjQ3ODcyLCAxLjg5NTk1IiwgXAotICAgICAgICAgICIwLjA5ODIwNiwgMC4zNzI0OTQsIDAuNjU1MjM1LCAwLjg1ODQ4MiwgMS4xODk5LCAxLjQ3NzczLCAxLjg5NDg3IiwgXAotICAgICAgICAgICIwLjA5Nzk2MSwgMC4zNzIzODUsIDAuNjU1MjEzLCAwLjg1ODI3MiwgMS4xODk2NCwgMS40NzYyNSwgMS44OTQ4NyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMyMTY3NywgMC40NTUzMTQsIDAuNTgyMDI2LCAwLjY3MjY3MywgMC44MTc3NzIsIDAuOTQ0NzA1LCAxLjEyNjAyIiwgXAotICAgICAgICAgICIwLjMzMzI5NiwgMC40NjcxMjgsIDAuNTkzODExLCAwLjY4NDM3OCwgMC44Mjk0OCwgMC45NTY0MjksIDEuMTM3NzUiLCBcCi0gICAgICAgICAgIjAuMzQ3NTQxLCAwLjQ4MTE3NiwgMC42MDc4OTMsIDAuNjk4NTE1LCAwLjg0MzU1NiwgMC45NzA1NzQsIDEuMTUxODkiLCBcCi0gICAgICAgICAgIjAuMzYwNjgyLCAwLjQ5NDM2OSwgMC42MjEwNzYsIDAuNzExNjU2LCAwLjg1NjcxMSwgMC45ODM2NjMsIDEuMTY1MTQiLCBcCi0gICAgICAgICAgIjAuMzczNDM3LCAwLjUwNzE2NiwgMC42MzM4NzEsIDAuNzI0NDMsIDAuODY5NTgzLCAwLjk5NjQ3LCAxLjE3Nzc5IiwgXAotICAgICAgICAgICIwLjM5MzM4MywgMC41MjcwNjMsIDAuNjUzNzY4LCAwLjc0NDM1LCAwLjg4OTQwMiwgMS4wMTYzNSwgMS4xOTc3NyIsIFwKLSAgICAgICAgICAiMC40MTA3MDYsIDAuNTQ0NDQ4LCAwLjY3MTE1NiwgMC43NjE3MTgsIDAuOTA2ODcyLCAxLjAzMzc2LCAxLjIxNTA4Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDgzMzgzLCAwLjMyMzEyNywgMC41NzUxNTgsIDAuNzU4NzcxLCAxLjA1MzQxLCAxLjMxMTU0LCAxLjY4MDQ1IiwgXAotICAgICAgICAgICIwLjA4MzMwMiwgMC4zMjMxMzQsIDAuNTc1OTQzLCAwLjc1NzQzNCwgMS4wNTA4NiwgMS4zMTE0NSwgMS42ODAzNyIsIFwKLSAgICAgICAgICAiMC4wODMyNTksIDAuMzIzMjU0LCAwLjU3NDk2NiwgMC43NTc1MzUsIDEuMDUxMzUsIDEuMzExNTYsIDEuNjgwNDIiLCBcCi0gICAgICAgICAgIjAuMDgzMjU4LCAwLjMyMzI0NSwgMC41NzQ4NTUsIDAuNzU3NTIyLCAxLjA1MTM0LCAxLjMxMTExLCAxLjY4MDY3IiwgXAotICAgICAgICAgICIwLjA4MzI1OSwgMC4zMjMxMDgsIDAuNTc1NTkyLCAwLjc1NzQ2OCwgMS4wNTA4NCwgMS4zMTEzNywgMS42ODAzNSIsIFwKLSAgICAgICAgICAiMC4wODMyODksIDAuMzIzMTMyLCAwLjU3NTc4MiwgMC43NTc0MzMsIDEuMDUxMiwgMS4zMTEwMywgMS42Nzk5NSIsIFwKLSAgICAgICAgICAiMC4wODMzNjUsIDAuMzIzMTI1LCAwLjU3NTg0MywgMC43NTc0MDQsIDEuMDUyNDEsIDEuMzExMzcsIDEuNjgwMzUiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMjk1NTYsIDAuNDg0ODAxLCAwLjYzMDMzNywgMC43MzQyNzcsIDAuOTAwNzU3LCAxLjA0NjYxLCAxLjI1NDkiLCBcCi0gICAgICAgICAgIjAuMzQwNzgyLCAwLjQ5NjA1MSwgMC42NDE1ODcsIDAuNzQ1NTQ1LCAwLjkxMjAxOSwgMS4wNTc3OSwgMS4yNjYiLCBcCi0gICAgICAgICAgIjAuMzU0MjY2LCAwLjUwOTQ1OCwgMC42NTUwMTksIDAuNzU4OTY2LCAwLjkyNTQ4NCwgMS4wNzEyNCwgMS4yNzk0NSIsIFwKLSAgICAgICAgICAiMC4zNjc3NzEsIDAuNTIzMDAxLCAwLjY2ODU1NiwgMC43NzI0OTYsIDAuOTM5MDE5LCAxLjA4NDc4LCAxLjI5MyIsIFwKLSAgICAgICAgICAiMC4zODA5OTYsIDAuNTM2Mjc5LCAwLjY4MTgzLCAwLjc4NTc3NywgMC45NTIyODcsIDEuMDk4MDYsIDEuMzA2MjciLCBcCi0gICAgICAgICAgIjAuNDAyNjQ5LCAwLjU1NzgwOCwgMC43MDMzNDQsIDAuODA3MzA1LCAwLjk3MzgxNSwgMS4xMTk2LCAxLjMyNzc2IiwgXAotICAgICAgICAgICIwLjQyMTYwMiwgMC41NzY3ODgsIDAuNzIyMzI4LCAwLjgyNjI4OSwgMC45OTI3OTksIDEuMTM4NTgsIDEuMzQ2NzQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTA5NzgsIDAuMzYyMDksIDAuNjQ1NTIxLCAwLjg1MDI4MywgMS4xODAwMiwgMS40Njk1MSwgMS44ODMzOCIsIFwKLSAgICAgICAgICAiMC4wOTA5NzgsIDAuMzYyMTU1LCAwLjY0NTI5OCwgMC44NTAzLCAxLjE4MDAzLCAxLjQ2OTI2LCAxLjg4Mzc5IiwgXAotICAgICAgICAgICIwLjA5MDkzOSwgMC4zNjIwOSwgMC42NDU1MzMsIDAuODUwMDU3LCAxLjE3OTcsIDEuNDY5NywgMS44ODM1OCIsIFwKLSAgICAgICAgICAiMC4wOTA5MzMsIDAuMzYyMTI3LCAwLjY0NTI4NiwgMC44NTAwNjEsIDEuMTc5ODIsIDEuNDY5NDQsIDEuODgzNzciLCBcCi0gICAgICAgICAgIjAuMDkwOTA0LCAwLjM2MjExMiwgMC42NDUzNTksIDAuODQ5OTYsIDEuMTgwMjEsIDEuNDY5NjUsIDEuODgzMzQiLCBcCi0gICAgICAgICAgIjAuMDkwODg2LCAwLjM2MjE2NywgMC42NDU3MzcsIDAuODQ5ODMsIDEuMTgwMTQsIDEuNDY5NzEsIDEuODgzNDIiLCBcCi0gICAgICAgICAgIjAuMDkwOTI2LCAwLjM2MjE1OSwgMC42NDU5OCwgMC44NDk4MiwgMS4xODAwNywgMS40Njk3MSwgMS44ODMzNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIzOTY1OSwgMC4zOTA3NzksIDAuNTIwMDQ0LCAwLjYxMTQyLCAwLjc1NzI2MiwgMC44ODQ3MTEsIDEuMDY2NSIsIFwKLSAgICAgICAgICAiMC4yNDk3NDIsIDAuNDAwODksIDAuNTMwMTY5LCAwLjYyMTU0NSwgMC43NjczNTgsIDAuODk0ODMzLCAxLjA3NjYyIiwgXAotICAgICAgICAgICIwLjI2MjI2LCAwLjQxMzQ0LCAwLjU0Mjc2MiwgMC42MzQxNjYsIDAuNzc5OTQyLCAwLjkwNzQxNiwgMS4wODkyMSIsIFwKLSAgICAgICAgICAiMC4yNzQ5MDUsIDAuNDI2MTI3LCAwLjU1NTUwMiwgMC42NDY5MSwgMC43OTI2OTcsIDAuOTIwMTY4LCAxLjEwMiIsIFwKLSAgICAgICAgICAiMC4yODc4MSwgMC40Mzg4NjQsIDAuNTY4MTczLCAwLjY1OTU5NCwgMC44MDUzODUsIDAuOTMyNzUyLCAxLjExNDcyIiwgXAotICAgICAgICAgICIwLjMwODAyMywgMC40NTg5NDUsIDAuNTg4MjksIDAuNjc5NjksIDAuODI1NDY5LCAwLjk1Mjk0OCwgMS4xMzQ4OSIsIFwKLSAgICAgICAgICAiMC4zMjYwMDEsIDAuNDc3MDQ5LCAwLjYwNjMyOCwgMC42OTc3NTMsIDAuODQzNTUzLCAwLjk3MDkxLCAxLjE1MjgxIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk1NDA4LCAwLjMzNjU0OSwgMC41ODcxMDYsIDAuNzY5MTQ2LCAxLjA1ODg3LCAxLjMxNjMyLCAxLjY4ODIxIiwgXAotICAgICAgICAgICIwLjA5NTQ1NiwgMC4zMzY1MzEsIDAuNTg3MDc4LCAwLjc2ODk0LCAxLjA1OTQ0LCAxLjMxNTU3LCAxLjY4ODE5IiwgXAotICAgICAgICAgICIwLjA5NTUwMywgMC4zMzY0MTMsIDAuNTg3MDc0LCAwLjc2ODg0NywgMS4wNTk0OCwgMS4zMTU3MiwgMS42ODgxNyIsIFwKLSAgICAgICAgICAiMC4wOTU2MzMsIDAuMzM2NDg5LCAwLjU4NjExOSwgMC43Njg5OCwgMS4wNTk3OCwgMS4zMTYyMiwgMS42ODgyNSIsIFwKLSAgICAgICAgICAiMC4wOTQ5OCwgMC4zMzYzODUsIDAuNTg3MTE5LCAwLjc2ODg3NSwgMS4wNTk2LCAxLjMxOTEsIDEuNjg4NDMiLCBcCi0gICAgICAgICAgIjAuMDk0ODU4LCAwLjMzNjQxOSwgMC41ODcwNzcsIDAuNzY4ODQ4LCAxLjA1OTUsIDEuMzE1MzMsIDEuNjgzNTUiLCBcCi0gICAgICAgICAgIjAuMDk0ODYzLCAwLjMzNjQxNiwgMC41ODcwNjYsIDAuNzY4ODQ0LCAxLjA1OTcxLCAxLjMxOTAyLCAxLjY4ODA1Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjI3MDEyLCAwLjM5NTc0MywgMC41NDM1ODcsIDAuNjQ4MjYxLCAwLjgxNTQ0NCwgMC45NjE2MTcsIDEuMTcwMjYiLCBcCi0gICAgICAgICAgIjAuMjM3MjU3LCAwLjQwNjA0OCwgMC41NTM4NSwgMC42NTg1NTcsIDAuODI1NzExLCAwLjk3MTg4MywgMS4xODA1NCIsIFwKLSAgICAgICAgICAiMC4yNDk2NjYsIDAuNDE4NDgyLCAwLjU2NjM2LCAwLjY3MTA2OCwgMC44MzgyMDQsIDAuOTg0MzA1LCAxLjE5MjkxIiwgXAotICAgICAgICAgICIwLjI2MTYxMywgMC40MzAzMzgsIDAuNTc4MjA1LCAwLjY4MjkxMywgMC44NTAwNTEsIDAuOTk2MTU1LCAxLjIwNDgiLCBcCi0gICAgICAgICAgIjAuMjczNDQ3LCAwLjQ0MjExLCAwLjU4OTk1OSwgMC42OTQ2ODksIDAuODYxODMxLCAxLjAwODA1LCAxLjIxNjY0IiwgXAotICAgICAgICAgICIwLjI5MjQ0NCwgMC40NjEwNzYsIDAuNjA4OTYyLCAwLjcxMzY2NywgMC44ODA4MTMsIDEuMDI3MDMsIDEuMjM1NjIiLCBcCi0gICAgICAgICAgIjAuMzA4OTMyLCAwLjQ3NzUzLCAwLjYyNTM4MiwgMC43MzAxMiwgMC44OTcyNTcsIDEuMDQzNDksIDEuMjUyMDUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTgyNDYsIDAuMzcyNjAyLCAwLjY1NTI1MSwgMC44NTk3MTgsIDEuMTkwMjMsIDEuNDc5MTksIDEuODk0OTMiLCBcCi0gICAgICAgICAgIjAuMDk4MTk1LCAwLjM3MjU3NiwgMC42NTU0NTUsIDAuODYwOTIxLCAxLjE4OTY0LCAxLjQ3NzUyLCAxLjg5NDc4IiwgXAotICAgICAgICAgICIwLjA5ODE5MywgMC4zNzI1ODYsIDAuNjU1NDE2LCAwLjg1OTUxNSwgMS4xODgwOSwgMS40Nzg2MiwgMS44OTYwNCIsIFwKLSAgICAgICAgICAiMC4wOTgyNTMsIDAuMzcyNTE5LCAwLjY1NTQ3NCwgMC44NjEwNTEsIDEuMTg3NjgsIDEuNDc3ODIsIDEuODkxOTciLCBcCi0gICAgICAgICAgIjAuMDk4MTk1LCAwLjM3MjQ5MSwgMC42NTU4MTcsIDAuODYxMDQ0LCAxLjE4Nzk1LCAxLjQ3NzkzLCAxLjg5MzQ5IiwgXAotICAgICAgICAgICIwLjA5ODA1NSwgMC4zNzI0OTgsIDAuNjU1NDgyLCAwLjg2MTA1MywgMS4xODc3MiwgMS40ODA5OSwgMS44OTI4OSIsIFwKLSAgICAgICAgICAiMC4wOTc4ODIsIDAuMzcyNDc4LCAwLjY1NTI0LCAwLjg1ODUzOSwgMS4xODg3MywgMS40NzY1NywgMS44OTQ5OCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMyNTE2NywgMC40NTkxODksIDAuNTg2MTU2LCAwLjY3NjksIDAuODIyMTQxLCAwLjk0OTIwNCwgMS4xMzA1OSIsIFwKLSAgICAgICAgICAiMC4zMzcxMDMsIDAuNDcxMjc3LCAwLjU5ODIsIDAuNjg4ODk0LCAwLjgzNDE0LCAwLjk2MTE4NywgMS4xNDI2MSIsIFwKLSAgICAgICAgICAiMC4zNTEyMjUsIDAuNDg1MzY3LCAwLjYxMjMzNywgMC43MDMwNjgsIDAuODQ4Mjg1LCAwLjk3NTM4NCwgMS4xNTY4MSIsIFwKLSAgICAgICAgICAiMC4zNjQxMzUsIDAuNDk4MzQ4LCAwLjYyNTM4MSwgMC43MTYwNzUsIDAuODYxMzE0LCAwLjk4ODM3LCAxLjE2OTc5IiwgXAotICAgICAgICAgICIwLjM3Njg2NCwgMC41MTEwOTQsIDAuNjM3OTk3LCAwLjcyODcxOSwgMC44NzM5NzMsIDEuMDAxMDEsIDEuMTgyNDMiLCBcCi0gICAgICAgICAgIjAuMzk2NjAyLCAwLjUzMDgwOSwgMC42NTc3MDEsIDAuNzQ4NDI1LCAwLjg5MzY3MywgMS4wMjA3MiwgMS4yMDIxNCIsIFwKLSAgICAgICAgICAiMC40MTM0MTUsIDAuNTQ3NzA1LCAwLjY3NDY1NSwgMC43NjUzMzksIDAuOTEwNjQ2LCAxLjAzNzYzLCAxLjIxOTA1Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDgyNDQ0LCAwLjMyMzA4MiwgMC41NzUyMywgMC43NTk1MzYsIDEuMDU0MTksIDEuMzEyMTgsIDEuNjgwNTgiLCBcCi0gICAgICAgICAgIjAuMDgyNDM3LCAwLjMyMjk0NCwgMC41NzY0MSwgMC43NTg1MDUsIDEuMDUxNzgsIDEuMzEyMiwgMS42ODEyNyIsIFwKLSAgICAgICAgICAiMC4wODI1MzUsIDAuMzIzMDYsIDAuNTc1MjQxLCAwLjc1ODM1LCAxLjA1MjI1LCAxLjMxMjE4LCAxLjY4MTM0IiwgXAotICAgICAgICAgICIwLjA4MjQ0MiwgMC4zMjMxMTUsIDAuNTc0OTc0LCAwLjc1ODMzNCwgMS4wNTE4MSwgMS4zMTIxOCwgMS42ODEzMSIsIFwKLSAgICAgICAgICAiMC4wODI1MzgsIDAuMzIyOSwgMC41NzYyMjksIDAuNzU4NDA0LCAxLjA1MjM2LCAxLjMxMjIxLCAxLjY4MTI3IiwgXAotICAgICAgICAgICIwLjA4MjQ0OSwgMC4zMjMwMzEsIDAuNTc2MjI5LCAwLjc1ODMzMSwgMS4wNTE3OCwgMS4zMTIxOSwgMS42ODEyNyIsIFwKLSAgICAgICAgICAiMC4wODI0NCwgMC4zMjMwNjYsIDAuNTc2NDQ0LCAwLjc1ODMzMywgMS4wNTE1MywgMS4zMTIyMywgMS42ODEyMSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMyNzc0NSwgMC40ODI3NzcsIDAuNjI4MzIsIDAuNzMyMjkyLCAwLjg5ODg0MiwgMS4wNDQ2NywgMS4yNTI4MyIsIFwKLSAgICAgICAgICAiMC4zMzgzMzgsIDAuNDkzMjM5LCAwLjYzODc3NywgMC43NDI3MjgsIDAuOTA5MjksIDEuMDU0OTcsIDEuMjYzMzkiLCBcCi0gICAgICAgICAgIjAuMzUxMzM2LCAwLjUwNjMwMSwgMC42NTE4NTQsIDAuNzU1ODExLCAwLjkyMjM4NCwgMS4wNjgwOCwgMS4yNzYzIiwgXAotICAgICAgICAgICIwLjM2NDE0NCwgMC41MTg5NjUsIDAuNjY0NjA3LCAwLjc2ODU2MSwgMC45MzUwODYsIDEuMDgwODMsIDEuMjg5MDYiLCBcCi0gICAgICAgICAgIjAuMzc3Mjk3LCAwLjUzMjIyOSwgMC42Nzc3OTYsIDAuNzgxNzUsIDAuOTQ4Mjc0LCAxLjA5NDAzLCAxLjMwMjI1IiwgXAotICAgICAgICAgICIwLjM5ODY3NSwgMC41NTM1MTcsIDAuNjk5MTAzLCAwLjgwMzA1NCwgMC45Njk1NzQsIDEuMTE1NDUsIDEuMzIzNTciLCBcCi0gICAgICAgICAgIjAuNDE3NDIsIDAuNTcyMzMxLCAwLjcxNzkwNywgMC44MjE4NTYsIDAuOTg4Mzc4LCAxLjEzNDE0LCAxLjM0MjM1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg5NDEsIDAuMzYxNzI2LCAwLjY0NTM2MiwgMC44NTAyODQsIDEuMTgwMzUsIDEuNDY5ODEsIDEuODg0MjIiLCBcCi0gICAgICAgICAgIjAuMDg5MzcxLCAwLjM2MTY4MywgMC42NDUzOTMsIDAuODUwNDAyLCAxLjE4MDIsIDEuNDY5NjcsIDEuODgzODEiLCBcCi0gICAgICAgICAgIjAuMDg5NDE1LCAwLjM2MTgwNiwgMC42NDU0LCAwLjg1MDM5MSwgMS4xODAwMiwgMS40Njk3MSwgMS44ODM4OSIsIFwKLSAgICAgICAgICAiMC4wODk0LCAwLjM2MTk0NSwgMC42NDU0MDUsIDAuODUwMjYxLCAxLjE4MDAxLCAxLjQ2OTc3LCAxLjg4Mzk3IiwgXAotICAgICAgICAgICIwLjA4OTQwMSwgMC4zNjE5MTgsIDAuNjQ1NDE0LCAwLjg1MDExOSwgMS4xODAwMiwgMS40Njk2OSwgMS44ODM4MyIsIFwKLSAgICAgICAgICAiMC4wODk0LCAwLjM2MTksIDAuNjQ1NDE4LCAwLjg1MDA2NCwgMS4xODA1NywgMS40Njk2NSwgMS44ODM5NyIsIFwKLSAgICAgICAgICAiMC4wODk0MDIsIDAuMzYxNzc3LCAwLjY0NTQyOCwgMC44NTAwNjIsIDEuMTc5OTMsIDEuNDY5NzYsIDEuODg0MTIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0kiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjM3NjM5LCAwLjM4ODkxMiwgMC41MTgxNzQsIDAuNjA5NTk0LCAwLjc1NTM5MSwgMC44ODI3NywgMS4wNjQ2MyIsIFwKLSAgICAgICAgICAiMC4yNDcyMiwgMC4zOTg1MTIsIDAuNTI3ODY1LCAwLjYxOTI3NywgMC43NjUwNTQsIDAuODkyNDM3LCAxLjA3NDM4IiwgXAotICAgICAgICAgICIwLjI1ODYwNywgMC40MTAxNDEsIDAuNTM5MzM5LCAwLjYzMDczMSwgMC43NzY1MDksIDAuOTAzOTM2LCAxLjA4NTgzIiwgXAotICAgICAgICAgICIwLjI3MTA2OSwgMC40MjIzMzQsIDAuNTUxNjA4LCAwLjY0MzAxOSwgMC43ODg3OSwgMC45MTYxNSwgMS4wOTgiLCBcCi0gICAgICAgICAgIjAuMjgyMDc2LCAwLjQzMzI4NSwgMC41NjI1NjcsIDAuNjUzOTkxLCAwLjc5OTc2NCwgMC45MjcxMzUsIDEuMTA5IiwgXAotICAgICAgICAgICIwLjMwMTI0LCAwLjQ1MjI3NSwgMC41ODE2NTIsIDAuNjczMDI5LCAwLjgxODgwOSwgMC45NDYyMzMsIDEuMTI4MDMiLCBcCi0gICAgICAgICAgIjAuMzE5MTk3LCAwLjQ3MDIzLCAwLjU5OTQ5NywgMC42OTA5MTYsIDAuODM2Njg3LCAwLjk2NDA2MiwgMS4xNDU5MiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5NTUzOCwgMC4zMzY0NTEsIDAuNTg3MTMsIDAuNzY4OTM2LCAxLjA1OTksIDEuMzE5MjksIDEuNjg1IiwgXAotICAgICAgICAgICIwLjA5NTcxNCwgMC4zMzY1MzgsIDAuNTg2OTM3LCAwLjc2ODk1NCwgMS4wNTk1NywgMS4zMTY5NiwgMS42ODgyOSIsIFwKLSAgICAgICAgICAiMC4wOTU3NjgsIDAuMzM2NTQ2LCAwLjU4NzAxNSwgMC43Njg5ODgsIDEuMDU5MzIsIDEuMzE2MDMsIDEuNjg4MTciLCBcCi0gICAgICAgICAgIjAuMDk1NDUzLCAwLjMzNjM5MiwgMC41ODcwMDcsIDAuNzY4ODE4LCAxLjA2MDE3LCAxLjMxODg2LCAxLjY4NzY3IiwgXAotICAgICAgICAgICIwLjA5NTIzOCwgMC4zMzY0NDQsIDAuNTg2OTkyLCAwLjc2ODc4MSwgMS4wNjAxNSwgMS4zMTg4OSwgMS42ODc3NCIsIFwKLSAgICAgICAgICAiMC4wOTQ5NTEsIDAuMzM2MzkxLCAwLjU4NjczNCwgMC43Njg3NTUsIDEuMDU5MzIsIDEuMzE5MjcsIDEuNjg0ODEiLCBcCi0gICAgICAgICAgIjAuMDk0NzEzLCAwLjMzNjI5NSwgMC41ODY5MTIsIDAuNzY4NjI4LCAxLjA2MDI3LCAxLjMxNjU5LCAxLjY4NDY3Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjE2ODA0LCAwLjM4NTU5NiwgMC41MzM0MjUsIDAuNjM4MTMyLCAwLjgwNTMwNSwgMC45NTE0NTEsIDEuMTYwMTIiLCBcCi0gICAgICAgICAgIjAuMjI2MzI0LCAwLjM5NDk4OCwgMC41NDI4MjcsIDAuNjQ3NDk3LCAwLjgxNDcwMiwgMC45NjA4NDYsIDEuMTY5NDciLCBcCi0gICAgICAgICAgIjAuMjM3NzksIDAuNDA2NTY5LCAwLjU1NDQ1MywgMC42NTkxNTEsIDAuODI2MjgxLCAwLjk3MjUxMiwgMS4xODEwNCIsIFwKLSAgICAgICAgICAiMC4yNDk1NTQsIDAuNDE4MjAyLCAwLjU2NjA5MSwgMC42NzA3ODksIDAuODM3OTIzLCAwLjk4NDE0OSwgMS4xOTI2OCIsIFwKLSAgICAgICAgICAiMC4yNjE0NjIsIDAuNDMwMDcxLCAwLjU3NzkzNSwgMC42ODI2NDcsIDAuODQ5NzgxLCAwLjk5NjAwMywgMS4yMDQ2OCIsIFwKLSAgICAgICAgICAiMC4yODE5MiwgMC40NTA2MTQsIDAuNTk4NDgsIDAuNzAzMTYxLCAwLjg3MDM0NywgMS4wMTY1OSwgMS4yMjUxNCIsIFwKLSAgICAgICAgICAiMC4yOTk0MDUsIDAuNDY3OTU1LCAwLjYxNTgxMywgMC43MjA0ODksIDAuODg3NzEsIDEuMDMzOTMsIDEuMjQyNDgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTgyMTEsIDAuMzcyNTQ4LCAwLjY1NTQ0OCwgMC44NjA4OSwgMS4xOTE2MiwgMS40NzY5LCAxLjg5NDg0IiwgXAotICAgICAgICAgICIwLjA5Nzk3MywgMC4zNzI3MDksIDAuNjU1NDEzLCAwLjg1OTU5LCAxLjE5MTcyLCAxLjQ3OTA2LCAxLjg5NDg2IiwgXAotICAgICAgICAgICIwLjA5ODIwOCwgMC4zNzI1NTYsIDAuNjU1NDE3LCAwLjg1ODcwNiwgMS4xODgwOCwgMS40Nzc3NywgMS44OTIyMyIsIFwKLSAgICAgICAgICAiMC4wOTg1MTMsIDAuMzcyNTQ3LCAwLjY1NTQyNSwgMC44NTg4MDQsIDEuMTg4MTYsIDEuNDc2MjMsIDEuODkzMTkiLCBcCi0gICAgICAgICAgIjAuMDk4Mjk2LCAwLjM3MjQ5NiwgMC42NTUxMDksIDAuODU5MDM5LCAxLjE4ODA0LCAxLjQ3Njk2LCAxLjg5MTU5IiwgXAotICAgICAgICAgICIwLjA5ODA5OCwgMC4zNzI1OCwgMC42NTUyMjMsIDAuODYwNTkxLCAxLjE5MDA3LCAxLjQ3ODcsIDEuODk0ODUiLCBcCi0gICAgICAgICAgIjAuMDk3ODQ5LCAwLjM3MjUwOCwgMC42NTUzNzcsIDAuODYwNjEyLCAxLjE5MTYyLCAxLjQ3Nzk4LCAxLjg5NDgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0kiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzE2OTcyLCAwLjQ1MTA2MSwgMC41NzgwMTQsIDAuNjY4NjkzLCAwLjgxMzkzNywgMC45NDA5ODksIDEuMTIyNDEiLCBcCi0gICAgICAgICAgIjAuMzI3NTk5LCAwLjQ2MTYzNSwgMC41ODg2MDUsIDAuNjc5MzYsIDAuODI0NTU2LCAwLjk1MTY2MSwgMS4xMzMwOCIsIFwKLSAgICAgICAgICAiMC4zNDA2NCwgMC40NzQ2NDksIDAuNjAxNjExLCAwLjY5MjM4NywgMC44Mzc1MzEsIDAuOTY0Njk0LCAxLjE0NjA2IiwgXAotICAgICAgICAgICIwLjM1NDI5LCAwLjQ4ODMzNiwgMC42MTUyMjksIDAuNzA1OTU5LCAwLjg1MTIxLCAwLjk3ODI1LCAxLjE1OTY4IiwgXAotICAgICAgICAgICIwLjM2NzQxNiwgMC41MDE0NzksIDAuNjI4MzgsIDAuNzE5MTAxLCAwLjg2NDM0OSwgMC45OTEzOTMsIDEuMTcyODIiLCBcCi0gICAgICAgICAgIjAuMzg4NjcyLCAwLjUyMjY1MywgMC42NDk2MzIsIDAuNzQwMzQzLCAwLjg4NTU4NywgMS4wMTI1NiwgMS4xOTQwNSIsIFwKLSAgICAgICAgICAiMC40MDY5ODQsIDAuNTQxMTMsIDAuNjY4MDI5LCAwLjc1ODc1MiwgMC45MDM5OTksIDEuMDMxMDQsIDEuMjEyNDciKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzk2NDUsIDAuMzIyNTA4LCAwLjU3NjQ1NiwgMC43NTgzNDksIDEuMDUzMywgMS4zMTIyLCAxLjY4MTI4IiwgXAotICAgICAgICAgICIwLjA3OTc4LCAwLjMyMjQ1OCwgMC41NzUxODUsIDAuNzU4MzQ0LCAxLjA1MzkxLCAxLjMxMjE5LCAxLjY4MTMzIiwgXAotICAgICAgICAgICIwLjA3OTY4MiwgMC4zMjI0MzcsIDAuNTc1Mjg0LCAwLjc1Nzk4OCwgMS4wNTM4NywgMS4zMDkwNCwgMS42ODEyNSIsIFwKLSAgICAgICAgICAiMC4wNzk3OTksIDAuMzIyNTAxLCAwLjU3NjIxOCwgMC43NTgzNDIsIDEuMDUyNDEsIDEuMzEyMiwgMS42ODEyNSIsIFwKLSAgICAgICAgICAiMC4wNzk4MzUsIDAuMzIyNTAxLCAwLjU3NTU1NywgMC43NTgzNDEsIDEuMDUxNzcsIDEuMzEyMjEsIDEuNjgxMjYiLCBcCi0gICAgICAgICAgIjAuMDc5ODA2LCAwLjMyMjQ0MSwgMC41NzYyOSwgMC43NTgzMzUsIDEuMDUxOCwgMS4zMTIwNSwgMS42ODAzMiIsIFwKLSAgICAgICAgICAiMC4wNzk2OTUsIDAuMzIyNTAzLCAwLjU3NTU5NCwgMC43NTgzNDQsIDEuMDUxNzcsIDEuMzEyMjEsIDEuNjgxMjciKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMTM5MTQsIDAuNDY0ODc2LCAwLjYxMDQwMSwgMC43MTQzOTcsIDAuODgxMDI2LCAxLjAyNjg1LCAxLjIzNTA2IiwgXAotICAgICAgICAgICIwLjMyNDU4OCwgMC40NzU1MDgsIDAuNjIxMDM0LCAwLjcyNTA3NSwgMC44OTE2OTgsIDEuMDM3NDMsIDEuMjQ1NjUiLCBcCi0gICAgICAgICAgIjAuMzM3NzI3LCAwLjQ4ODYxLCAwLjYzNDEzMSwgMC43MzgxMjgsIDAuOTA0NzU2LCAxLjA1MDU3LCAxLjI1ODc5IiwgXAotICAgICAgICAgICIwLjM1MTQyNiwgMC41MDIzODYsIDAuNjQ3ODkyLCAwLjc1MTkyOSwgMC45MTg1NzIsIDEuMDY0MjksIDEuMjcyNTEiLCBcCi0gICAgICAgICAgIjAuMzY0MzM1LCAwLjUxNTIyOCwgMC42NjA3MjYsIDAuNzY0NzY0LCAwLjkzMTQxMSwgMS4wNzcxMywgMS4yODUzNSIsIFwKLSAgICAgICAgICAiMC4zODUzNjUsIDAuNTM2MzU4LCAwLjY4MTg0OCwgMC43ODU4ODcsIDAuOTUyNTAyLCAxLjA5ODI1LCAxLjMwNjYxIiwgXAotICAgICAgICAgICIwLjQwNDIwNSwgMC41NTUxMTksIDAuNzAwNjA3LCAwLjgwNDY2NywgMC45NzEyNDUsIDEuMTE2OTksIDEuMzI1MjciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODI5MjEsIDAuMzU4NzEyLCAwLjY0NDc4LCAwLjg1MDI2OCwgMS4xODAyNCwgMS40Njk5MiwgMS44ODQxNiIsIFwKLSAgICAgICAgICAiMC4wODI5MTEsIDAuMzU4NjUzLCAwLjY0NTM0MywgMC44NDk5NDcsIDEuMTgwMDUsIDEuNDY5MzcsIDEuODgzNTciLCBcCi0gICAgICAgICAgIjAuMDgyNzM1LCAwLjM1ODg3MSwgMC42NDUxODEsIDAuODQ5NjQ3LCAxLjE4MDE1LCAxLjQ2OTQ3LCAxLjg4MzciLCBcCi0gICAgICAgICAgIjAuMDgyNzYyLCAwLjM1ODY4OCwgMC42NDQwNjYsIDAuODQ5NDU4LCAxLjE4MDAzLCAxLjQ2OTUxLCAxLjg4MzU3IiwgXAotICAgICAgICAgICIwLjA4Mjk0MiwgMC4zNTg4OCwgMC42NDQ3MzQsIDAuODUwMzA1LCAxLjE4MDA3LCAxLjQ2OTczLCAxLjg4MzkyIiwgXAotICAgICAgICAgICIwLjA4Mjk0OCwgMC4zNTg4NzksIDAuNjQ1MjksIDAuODUwNSwgMS4xODAwOCwgMS40Njk3NCwgMS44ODM5MiIsIFwKLSAgICAgICAgICAiMC4wODI5NjcsIDAuMzU4NjkzLCAwLjY0NDM0MywgMC44NDk2MDYsIDEuMTgwMDksIDEuNDY5NzYsIDEuODgzOTciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjAxMiwgMC4wMDYxNzMsIDAuMDA2MjA0LCAwLjAwNjIxNCwgMC4wMDYyMjMsIDAuMDA2MjI3LCAwLjAwNjIzMiIsIFwKLSAgICAgICAgICAiMC4wMDYwMDksIDAuMDA2MTcsIDAuMDA2MiwgMC4wMDYyMSwgMC4wMDYyMTksIDAuMDA2MjIzLCAwLjAwNjIyOCIsIFwKLSAgICAgICAgICAiMC4wMDYwMDcsIDAuMDA2MTY4LCAwLjAwNjE5OCwgMC4wMDYyMDksIDAuMDA2MjE4LCAwLjAwNjIyMiwgMC4wMDYyMjYiLCBcCi0gICAgICAgICAgIjAuMDA2MDA0LCAwLjAwNjE2NSwgMC4wMDYxOTcsIDAuMDA2MjA2LCAwLjAwNjIxNSwgMC4wMDYyMjEsIDAuMDA2MjI1IiwgXAotICAgICAgICAgICIwLjAwNjAwMSwgMC4wMDYxNjIsIDAuMDA2MTk1LCAwLjAwNjIwNCwgMC4wMDYyMTIsIDAuMDA2MjE4LCAwLjAwNjIyIiwgXAotICAgICAgICAgICIwLjAwNTk5NiwgMC4wMDYxNTcsIDAuMDA2MTg5LCAwLjAwNjE5OSwgMC4wMDYyMDksIDAuMDA2MjE0LCAwLjAwNjIxOSIsIFwKLSAgICAgICAgICAiMC4wMDU5OTMsIDAuMDA2MTUzLCAwLjAwNjE4NiwgMC4wMDYxOTcsIDAuMDA2MjA2LCAwLjAwNjIxLCAwLjAwNjIxNiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0MjExLCAwLjAwNDM3MiwgMC4wMDQ0MDMsIDAuMDA0NDEzLCAwLjAwNDQyMywgMC4wMDQ0MjgsIDAuMDA0NDMyIiwgXAotICAgICAgICAgICIwLjAwNDE5MywgMC4wMDQzNTQsIDAuMDA0Mzg1LCAwLjAwNDM5NiwgMC4wMDQ0MDUsIDAuMDA0NDEsIDAuMDA0NDE0IiwgXAotICAgICAgICAgICIwLjAwNDE4NSwgMC4wMDQzNDYsIDAuMDA0Mzc3LCAwLjAwNDM4OCwgMC4wMDQzOTcsIDAuMDA0NDAzLCAwLjAwNDQwNiIsIFwKLSAgICAgICAgICAiMC4wMDQxNzksIDAuMDA0MzQsIDAuMDA0MzcyLCAwLjAwNDM4MiwgMC4wMDQzOTIsIDAuMDA0Mzk3LCAwLjAwNDQiLCBcCi0gICAgICAgICAgIjAuMDA0MTc0LCAwLjAwNDMzNiwgMC4wMDQzNjcsIDAuMDA0Mzc4LCAwLjAwNDM4OCwgMC4wMDQzOTMsIDAuMDA0Mzk3IiwgXAotICAgICAgICAgICIwLjAwNDE2OSwgMC4wMDQzMjgsIDAuMDA0MzYxLCAwLjAwNDM3MiwgMC4wMDQzODIsIDAuMDA0Mzg3LCAwLjAwNDM5MiIsIFwKLSAgICAgICAgICAiMC4wMDQxNjcsIDAuMDA0MzI1LCAwLjAwNDM1OSwgMC4wMDQzNjksIDAuMDA0Mzc5LCAwLjAwNDM4NCwgMC4wMDQzOSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1OTgzLCAwLjAwNjE0MiwgMC4wMDYxNzIsIDAuMDA2MTgyLCAwLjAwNjE5MiwgMC4wMDYxOTYsIDAuMDA2MjAxIiwgXAotICAgICAgICAgICIwLjAwNTk4MiwgMC4wMDYxNDIsIDAuMDA2MTczLCAwLjAwNjE4MywgMC4wMDYxOTIsIDAuMDA2MTk3LCAwLjAwNjIwMSIsIFwKLSAgICAgICAgICAiMC4wMDU5OCwgMC4wMDYxMzksIDAuMDA2MTcsIDAuMDA2MTc5LCAwLjAwNjE4OCwgMC4wMDYxOTQsIDAuMDA2MTk3IiwgXAotICAgICAgICAgICIwLjAwNTk3MywgMC4wMDYxMzMsIDAuMDA2MTY0LCAwLjAwNjE3NCwgMC4wMDYxODIsIDAuMDA2MTg3LCAwLjAwNjE5MiIsIFwKLSAgICAgICAgICAiMC4wMDU5NjcsIDAuMDA2MTI2LCAwLjAwNjE1NywgMC4wMDYxNjcsIDAuMDA2MTc2LCAwLjAwNjE4MSwgMC4wMDYxODYiLCBcCi0gICAgICAgICAgIjAuMDA1OTU1LCAwLjAwNjExNCwgMC4wMDYxNDYsIDAuMDA2MTU3LCAwLjAwNjE2NiwgMC4wMDYxNzIsIDAuMDA2MTc2IiwgXAotICAgICAgICAgICIwLjAwNTk0NSwgMC4wMDYxMDMsIDAuMDA2MTM2LCAwLjAwNjE0NywgMC4wMDYxNTcsIDAuMDA2MTYzLCAwLjAwNjE2NyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0MzUyLCAwLjAwNDUxMywgMC4wMDQ1NDQsIDAuMDA0NTU0LCAwLjAwNDU2MywgMC4wMDQ1NjgsIDAuMDA0NTczIiwgXAotICAgICAgICAgICIwLjAwNDM0NSwgMC4wMDQ1MDYsIDAuMDA0NTM3LCAwLjAwNDU0NywgMC4wMDQ1NTUsIDAuMDA0NTYsIDAuMDA0NTY0IiwgXAotICAgICAgICAgICIwLjAwNDMzMSwgMC4wMDQ0OTQsIDAuMDA0NTI1LCAwLjAwNDUzNSwgMC4wMDQ1NDQsIDAuMDA0NTQ5LCAwLjAwNDU1NCIsIFwKLSAgICAgICAgICAiMC4wMDQzMjIsIDAuMDA0NDgzLCAwLjAwNDUxNSwgMC4wMDQ1MjYsIDAuMDA0NTM0LCAwLjAwNDUzOSwgMC4wMDQ1NDMiLCBcCi0gICAgICAgICAgIjAuMDA0MzEzLCAwLjAwNDQ3NCwgMC4wMDQ1MDYsIDAuMDA0NTE3LCAwLjAwNDUyNiwgMC4wMDQ1MzEsIDAuMDA0NTM2IiwgXAotICAgICAgICAgICIwLjAwNDMwMSwgMC4wMDQ0NiwgMC4wMDQ0OTMsIDAuMDA0NTA0LCAwLjAwNDUxMywgMC4wMDQ1MTksIDAuMDA0NTI0IiwgXAotICAgICAgICAgICIwLjAwNDI5MywgMC4wMDQ0NSwgMC4wMDQ0ODUsIDAuMDA0NDk2LCAwLjAwNDUwNiwgMC4wMDQ1MTIsIDAuMDA0NTE3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0kiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1Njc4LCAwLjAwNTgzNCwgMC4wMDU4NjUsIDAuMDA1ODc1LCAwLjAwNTg4NSwgMC4wMDU4OSwgMC4wMDU4OTUiLCBcCi0gICAgICAgICAgIjAuMDA1NjgsIDAuMDA1ODM2LCAwLjAwNTg2NiwgMC4wMDU4NzcsIDAuMDA1ODg2LCAwLjAwNTg5MSwgMC4wMDU4OTYiLCBcCi0gICAgICAgICAgIjAuMDA1Njc1LCAwLjAwNTgzMSwgMC4wMDU4NjIsIDAuMDA1ODczLCAwLjAwNTg4MiwgMC4wMDU4ODcsIDAuMDA1ODkyIiwgXAotICAgICAgICAgICIwLjAwNTY3LCAwLjAwNTgyNSwgMC4wMDU4NTgsIDAuMDA1ODY4LCAwLjAwNTg3OCwgMC4wMDU4ODQsIDAuMDA1ODg4IiwgXAotICAgICAgICAgICIwLjAwNTY2NCwgMC4wMDU4MTgsIDAuMDA1ODUxLCAwLjAwNTg2MiwgMC4wMDU4NzIsIDAuMDA1ODc4LCAwLjAwNTg4MyIsIFwKLSAgICAgICAgICAiMC4wMDU2NTcsIDAuMDA1ODA3LCAwLjAwNTg0MSwgMC4wMDU4NTMsIDAuMDA1ODY0LCAwLjAwNTg3MSwgMC4wMDU4NzYiLCBcCi0gICAgICAgICAgIjAuMDA1NjUsIDAuMDA1Nzk4LCAwLjAwNTgzNCwgMC4wMDU4NDYsIDAuMDA1ODU4LCAwLjAwNTg2NCwgMC4wMDU4NyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0MzQ2LCAwLjAwNDUwNSwgMC4wMDQ1MzYsIDAuMDA0NTQ3LCAwLjAwNDU1NSwgMC4wMDQ1NjEsIDAuMDA0NTY1IiwgXAotICAgICAgICAgICIwLjAwNDM0NiwgMC4wMDQ1MDYsIDAuMDA0NTM3LCAwLjAwNDU1LCAwLjAwNDU1NiwgMC4wMDQ1NjEsIDAuMDA0NTY4IiwgXAotICAgICAgICAgICIwLjAwNDMzOSwgMC4wMDQ0OTksIDAuMDA0NTMsIDAuMDA0NTQsIDAuMDA0NTUsIDAuMDA0NTU0LCAwLjAwNDU1OCIsIFwKLSAgICAgICAgICAiMC4wMDQzMzIsIDAuMDA0NDkyLCAwLjAwNDUyMywgMC4wMDQ1MzQsIDAuMDA0NTQzLCAwLjAwNDU1LCAwLjAwNDU1MiIsIFwKLSAgICAgICAgICAiMC4wMDQzMjMsIDAuMDA0NDgxLCAwLjAwNDUxNCwgMC4wMDQ1MjQsIDAuMDA0NTM0LCAwLjAwNDUzOSwgMC4wMDQ1NDQiLCBcCi0gICAgICAgICAgIjAuMDA0MzEyLCAwLjAwNDQ2OCwgMC4wMDQ1MDEsIDAuMDA0NTEyLCAwLjAwNDUyMywgMC4wMDQ1MjgsIDAuMDA0NTM0IiwgXAotICAgICAgICAgICIwLjAwNDMwMiwgMC4wMDQ0NTcsIDAuMDA0NDkxLCAwLjAwNDUwMiwgMC4wMDQ1MTMsIDAuMDA0NTE5LCAwLjAwNDUyNiIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogQURESFgxICoKLSAqIC0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoQURESFgxKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMTgxMjE3OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDEyNzYxMzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDEyNzYxMzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDEyNzQzMjsKLSAgfQotICBwaW4oQikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNTc5ODsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE1NjczOTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE1Nzk4OwotICB9Ci0gIHBpbihDTykgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjEzMTcxOwotICAgIGZ1bmN0aW9uIDogIihBIEIpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNzkzNDIsIDAuMjIyOTU4LCAwLjQ2ODYxNywgMC42ODM1NDUsIDAuOTczMDExLCAxLjU1MDgxLCAxLjkwOTM2IiwgXAotICAgICAgICAgICIwLjE5MDg1LCAwLjIzNDQ1OSwgMC40NzkyMzEsIDAuNjk1NjU1LCAwLjk4NDYwNSwgMS41NjA2OCwgMS45MTk2OSIsIFwKLSAgICAgICAgICAiMC4yMDQ1OTYsIDAuMjQ4MTc0LCAwLjQ5MzkxMywgMC43MDk1MTUsIDAuOTk4MzkyLCAxLjU3Mzg4LCAxLjkzMzQiLCBcCi0gICAgICAgICAgIjAuMjE4MTcsIDAuMjYxNzk4LCAwLjUwNjUwOCwgMC43MjI4LCAxLjAxMTksIDEuNTg4MDUsIDEuOTQ4MDgiLCBcCi0gICAgICAgICAgIjAuMjMxNzQ0LCAwLjI3NTM1NiwgMC41MjA5NzMsIDAuNzM2MDIyLCAxLjAyNTU3LCAxLjYwMTk0LCAxLjk2MDg5IiwgXAotICAgICAgICAgICIwLjI1MzQ2MSwgMC4yOTY5ODgsIDAuNTQxNzg1LCAwLjc1NzYwNiwgMS4wNDcxNywgMS42MjQyNCwgMS45ODI3NyIsIFwKLSAgICAgICAgICAiMC4yNzIwMzYsIDAuMzE1NjE4LCAwLjU2MDM2LCAwLjc3NzEzOCwgMS4wNjU3LCAxLjY0MjA1LCAyLjAwNDQxIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE2OTMyMywgMC4yNTI2MSwgMC43NDcyNjksIDEuMTk5OTQsIDEuNzg2NDUsIDIuOTY4NTUsIDMuNzAyNjMiLCBcCi0gICAgICAgICAgIjAuMTY5MjMzLCAwLjI1MjY2NCwgMC43NTYyNDIsIDEuMiwgMS43ODcwNiwgMi45NTA0LCAzLjcxMTc4IiwgXAotICAgICAgICAgICIwLjE2ODkyNSwgMC4yNTIzNTcsIDAuNzU1MTEzLCAxLjE5OTY2LCAxLjc4NzU1LCAyLjk3MzIzLCAzLjY2NzA1IiwgXAotICAgICAgICAgICIwLjE2OTMzNiwgMC4yNTI1MjksIDAuNzU2MjU1LCAxLjIwMDE5LCAxLjc4NjM0LCAyLjk0OTAyLCAzLjY4MTk3IiwgXAotICAgICAgICAgICIwLjE2OTA1NCwgMC4yNTI4MjEsIDAuNzUyMjI1LCAxLjIwMDI0LCAxLjc4NzAxLCAyLjk3MjE0LCAzLjY2ODk5IiwgXAotICAgICAgICAgICIwLjE2OTEzMiwgMC4yNTI5MjYsIDAuNzU2MTEsIDEuMjAwMjgsIDEuNzc2NjIsIDIuOTU0MiwgMy42NzEyOSIsIFwKLSAgICAgICAgICAiMC4xNjk0NDcsIDAuMjUzMDA2LCAwLjc1NjE3NywgMS4xOTEyMiwgMS43NzE3NSwgMi45NTIwMSwgMy43MDQ3OCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMzg4NzksIDAuMTg4MzE4LCAwLjQ2OTMyMywgMC43MTU1MDUsIDEuMDQ0NjQsIDEuNzA2ODMsIDIuMTE1NTkiLCBcCi0gICAgICAgICAgIjAuMTUwNDY2LCAwLjIwMDAwOSwgMC40ODA4OTcsIDAuNzI3MDQ5LCAxLjA1NzI0LCAxLjcxNTA3LCAyLjEyNjciLCBcCi0gICAgICAgICAgIjAuMTY1MjIxLCAwLjIxNDc1NCwgMC40OTU2OTYsIDAuNzQxOTEyLCAxLjA3MTExLCAxLjczMzQyLCAyLjE0MTY3IiwgXAotICAgICAgICAgICIwLjE4MDAwNywgMC4yMjk0NjYsIDAuNTEwMTk0LCAwLjc1NjcxOSwgMS4wODU4NCwgMS43NDg0LCAyLjE1NzE4IiwgXAotICAgICAgICAgICIwLjE5NDM5NCwgMC4yNDM4NjIsIDAuNTI0OTIsIDAuNzcxMTEzLCAxLjEwMDMsIDEuNzU4NDUsIDIuMTcxMjciLCBcCi0gICAgICAgICAgIjAuMjE1ODA1LCAwLjI2NTI2NSwgMC41NDYzNDgsIDAuNzkyNTI5LCAxLjEyMTc1LCAxLjc4MzksIDIuMTkyODEiLCBcCi0gICAgICAgICAgIjAuMjMyOTA5LCAwLjI4MjQ1MiwgMC41NjMzNjMsIDAuODA5NjY2LCAxLjEzOTA3LCAxLjc5NzYxLCAyLjIxNDcxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE3ODI0MywgMC4yNzY1MTEsIDAuODI5NjE3LCAxLjMyMTg5LCAxLjk3NTM3LCAzLjI4NjM0LCA0LjA5ODE5IiwgXAotICAgICAgICAgICIwLjE3ODEzNSwgMC4yNzgyNDksIDAuODMxNDg5LCAxLjMyMDk1LCAxLjk3NDc5LCAzLjI4MzgxLCA0LjEwMzg3IiwgXAotICAgICAgICAgICIwLjE3ODcyNywgMC4yNzgwMzksIDAuODI5NjI0LCAxLjMyMTg2LCAxLjk3NDE5LCAzLjI4NzQzLCA0LjEwMzA4IiwgXAotICAgICAgICAgICIwLjE3ODkxMiwgMC4yNzY2MzEsIDAuODI5NzksIDEuMzIxOTIsIDEuOTczNzcsIDMuMjg3MTgsIDQuMDk5NDciLCBcCi0gICAgICAgICAgIjAuMTc4NzE1LCAwLjI3NjczOSwgMC44Mjk2MjQsIDEuMzIxODYsIDEuOTc1MDcsIDMuMjgzNjcsIDQuMDk3NDIiLCBcCi0gICAgICAgICAgIjAuMTc4Nzg5LCAwLjI3NzIwMywgMC44Mjk2MywgMS4zMjE4NiwgMS45NzUzOCwgMy4yODY0NSwgNC4wOTU0NiIsIFwKLSAgICAgICAgICAiMC4xNzkzODYsIDAuMjc4NjMzLCAwLjgzMTM5NSwgMS4zMjE5MSwgMS45NzUzMSwgMy4yODAxLCA0LjEwNjYxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE3Mzc5OCwgMC4yMTcyNzgsIDAuNDYyNDA0LCAwLjY3ODc2MSwgMC45Njc0MDksIDEuNTQzNzYsIDEuOTA0OTQiLCBcCi0gICAgICAgICAgIjAuMTg0MDUzLCAwLjIyNzYwNywgMC40NzMyNjYsIDAuNjg4NDA1LCAwLjk3NzU2OSwgMS41NTQ5LCAxLjkxMzY1IiwgXAotICAgICAgICAgICIwLjE5NzQ1NywgMC4yNDA5OTEsIDAuNDg1OTc4LCAwLjcwMjQ0MiwgMC45OTExMTksIDEuNTY3MDgsIDEuOTI2NzgiLCBcCi0gICAgICAgICAgIjAuMjExMTIsIDAuMjU0NzMxLCAwLjQ5OTgyNCwgMC43MTYxNDksIDEuMDA1MywgMS41ODEyNiwgMS45NDAxOSIsIFwKLSAgICAgICAgICAiMC4yMjQ4MzUsIDAuMjY4NDk5LCAwLjUxMzgxOSwgMC43MjkxOTYsIDEuMDE4NDEsIDEuNTk2NzUsIDEuOTU0NDEiLCBcCi0gICAgICAgICAgIjAuMjQ2OTUzLCAwLjI5MDYyLCAwLjUzNTk2OSwgMC43NTEzMzMsIDEuMDQwNTYsIDEuNjE2OTgsIDEuOTc2NjQiLCBcCi0gICAgICAgICAgIjAuMjY2Mjc4LCAwLjMwOTkyNywgMC41NTUyMjIsIDAuNzcwNTg2LCAxLjA2MDYyLCAxLjYzNjAyLCAxLjk5NjIyIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE2ODQyOSwgMC4yNTQ5NjgsIDAuNzU2MDY2LCAxLjE4Njc4LCAxLjc4NjYxLCAyLjk2NzE2LCAzLjY4MzE3IiwgXAotICAgICAgICAgICIwLjE2ODQzNywgMC4yNTQzMjksIDAuNzQ2MjY2LCAxLjE5OTUxLCAxLjc3NzA3LCAyLjk2ODg2LCAzLjY3ODkiLCBcCi0gICAgICAgICAgIjAuMTY4OTM2LCAwLjI1Mzk1OCwgMC43NTYxNTksIDEuMTk5MzksIDEuNzg2NjksIDIuOTQ3MDYsIDMuNzEwOTMiLCBcCi0gICAgICAgICAgIjAuMTY5MTQ3LCAwLjI1MzYwMiwgMC43NTYyMTIsIDEuMTg5LCAxLjc3MjksIDIuOTY3NDQsIDMuNzEwOTEiLCBcCi0gICAgICAgICAgIjAuMTY5MjQ3LCAwLjI1MzAyMiwgMC43NTYyNzYsIDEuMTk5NzMsIDEuNzcxMzYsIDIuOTY0NzksIDMuNjc2MTEiLCBcCi0gICAgICAgICAgIjAuMTY5MzM5LCAwLjI1MzA5MiwgMC43NTYyOTYsIDEuMTk5ODIsIDEuNzcxNjQsIDIuOTUzNDQsIDMuNjc3MjYiLCBcCi0gICAgICAgICAgIjAuMTY5MjQ3LCAwLjI1MzY1NiwgMC43NTYyODQsIDEuMTk5NjYsIDEuNzg2NzksIDIuOTQ1MSwgMy42ODQxIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEzNTc5NiwgMC4xODUyNDgsIDAuNDY1MTQsIDAuNzExOTE5LCAxLjA0NDM3LCAxLjY5OTY3LCAyLjExMTExIiwgXAotICAgICAgICAgICIwLjE0NzQ3OCwgMC4xOTY5MTMsIDAuNDc2ODI3LCAwLjcyNDk2MSwgMS4wNTYwNSwgMS43MTEzMywgMi4xMjI4NCIsIFwKLSAgICAgICAgICAiMC4xNjIyMzksIDAuMjExNzA1LCAwLjQ5MTY0OSwgMC43Mzg1NTcsIDEuMDcwODQsIDEuNzI2MTYsIDIuMTQ0NzMiLCBcCi0gICAgICAgICAgIjAuMTc2Nzc4LCAwLjIyNjI1LCAwLjUwNjEzNCwgMC43NTUxMTYsIDEuMDgyMjEsIDEuNzQwODgsIDIuMTU1NTMiLCBcCi0gICAgICAgICAgIjAuMTkwOTY0LCAwLjI0MDQzMSwgMC41MjAzOSwgMC43Njg1MDgsIDEuMDk4OTksIDEuNzU1MDUsIDIuMTc0ODEiLCBcCi0gICAgICAgICAgIjAuMjExNzU4LCAwLjI2MTI2MSwgMC41NDEzMjMsIDAuNzg4NjQ2LCAxLjEyMDQyLCAxLjc3NTc5LCAyLjE4NzQxIiwgXAotICAgICAgICAgICIwLjIyODM1NiwgMC4yNzc4NDYsIDAuNTU3OTE4LCAwLjgwNTE0NywgMS4xMzcsIDEuNzkyMywgMi4yMDM4MiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNzkwODUsIDAuMjc1NTY0LCAwLjgzMTIzNCwgMS4zMjAyNCwgMS45NzcwMSwgMy4yODgxNiwgNC4xMDUxNyIsIFwKLSAgICAgICAgICAiMC4xNzkzODQsIDAuMjc0OTAyLCAwLjgyOTcyMSwgMS4zMjIzMSwgMS45NzYyOCwgMy4yODIyLCA0LjEwMzU3IiwgXAotICAgICAgICAgICIwLjE3OTA0NywgMC4yNzQ3NTIsIDAuODMxMjMsIDEuMzIwNzEsIDEuOTc3MDQsIDMuMjg3MTksIDQuMTA2NzgiLCBcCi0gICAgICAgICAgIjAuMTc5MzA3LCAwLjI3NTQsIDAuODI5OTgsIDEuMzIxOTEsIDEuOTc1MTMsIDMuMjgzODQsIDQuMTA0MTIiLCBcCi0gICAgICAgICAgIjAuMTc4NzI5LCAwLjI3NTQxOSwgMC44MzA3OTYsIDEuMzIyNDksIDEuOTc3NCwgMy4yODUwMSwgNC4xMDA4NiIsIFwKLSAgICAgICAgICAiMC4xNzk1OTYsIDAuMjc1NDY5LCAwLjgyOTczNywgMS4zMjI1MiwgMS45NzcwOSwgMy4yODEwNCwgNC4xMDcwNyIsIFwKLSAgICAgICAgICAiMC4xODA1MTgsIDAuMjc2NDUyLCAwLjgzMTIzNiwgMS4zMTk3NSwgMS45NzcxMSwgMy4yODE5MywgNC4xMDE1MiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTc5LCAwLjAwMTc5NCwgMC4wMDE3OTksIDAuMDAxOCwgMC4wMDE4MDEsIDAuMDAxODAxLCAwLjAwMTgwMSIsIFwKLSAgICAgICAgICAiMC4wMDE3NzYsIDAuMDAxNzgsIDAuMDAxNzg1LCAwLjAwMTc4NiwgMC4wMDE3ODcsIDAuMDAxNzg2LCAwLjAwMTc4NiIsIFwKLSAgICAgICAgICAiMC4wMDE3NjUsIDAuMDAxNzcsIDAuMDAxNzc1LCAwLjAwMTc3NiwgMC4wMDE3NzYsIDAuMDAxNzc2LCAwLjAwMTc3NyIsIFwKLSAgICAgICAgICAiMC4wMDE3NTksIDAuMDAxNzYzLCAwLjAwMTc2OSwgMC4wMDE3NywgMC4wMDE3NywgMC4wMDE3NzEsIDAuMDAxNzcxIiwgXAotICAgICAgICAgICIwLjAwMTc1NSwgMC4wMDE3NTksIDAuMDAxNzY1LCAwLjAwMTc2NiwgMC4wMDE3NjcsIDAuMDAxNzY3LCAwLjAwMTc2NyIsIFwKLSAgICAgICAgICAiMC4wMDE3NSwgMC4wMDE3NTUsIDAuMDAxNzYyLCAwLjAwMTc2MywgMC4wMDE3NjQsIDAuMDAxNzY0LCAwLjAwMTc2NCIsIFwKLSAgICAgICAgICAiMC4wMDE3NDgsIDAuMDAxNzUzLCAwLjAwMTc2LCAwLjAwMTc2MiwgMC4wMDE3NjIsIDAuMDAxNzYzLCAwLjAwMTc2MyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjUyNywgMC4wMDI1MzEsIDAuMDAyNTM1LCAwLjAwMjUzNiwgMC4wMDI1MzYsIDAuMDAyNTM2LCAwLjAwMjUzNiIsIFwKLSAgICAgICAgICAiMC4wMDI1MTcsIDAuMDAyNTIxLCAwLjAwMjUyNiwgMC4wMDI1MjYsIDAuMDAyNTI2LCAwLjAwMjUyNywgMC4wMDI1MjciLCBcCi0gICAgICAgICAgIjAuMDAyNTA4LCAwLjAwMjUxMiwgMC4wMDI1MTcsIDAuMDAyNTE4LCAwLjAwMjUxOSwgMC4wMDI1MTksIDAuMDAyNTE5IiwgXAotICAgICAgICAgICIwLjAwMjUwMiwgMC4wMDI1MDYsIDAuMDAyNTEzLCAwLjAwMjUxMywgMC4wMDI1MTQsIDAuMDAyNTE1LCAwLjAwMjUxNSIsIFwKLSAgICAgICAgICAiMC4wMDI0OTgsIDAuMDAyNTAzLCAwLjAwMjUxLCAwLjAwMjUxMSwgMC4wMDI1MTIsIDAuMDAyNTEzLCAwLjAwMjUxMyIsIFwKLSAgICAgICAgICAiMC4wMDI0OTMsIDAuMDAyNDk4LCAwLjAwMjUwNiwgMC4wMDI1MDgsIDAuMDAyNTA5LCAwLjAwMjUxLCAwLjAwMjUwOSIsIFwKLSAgICAgICAgICAiMC4wMDI0ODksIDAuMDAyNDk1LCAwLjAwMjUwNCwgMC4wMDI1MDUsIDAuMDAyNTA3LCAwLjAwMjUwOCwgMC4wMDI1MDgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDE1OSwgMC4wMDE1OTUsIDAuMDAxNjAzLCAwLjAwMTYwNCwgMC4wMDE2MDUsIDAuMDAxNjA2LCAwLjAwMTYwNiIsIFwKLSAgICAgICAgICAiMC4wMDE1OCwgMC4wMDE1ODUsIDAuMDAxNTkyLCAwLjAwMTU5NCwgMC4wMDE1OTUsIDAuMDAxNTk2LCAwLjAwMTU5NiIsIFwKLSAgICAgICAgICAiMC4wMDE1NzEsIDAuMDAxNTc2LCAwLjAwMTU4NCwgMC4wMDE1ODYsIDAuMDAxNTg3LCAwLjAwMTU4NywgMC4wMDE1ODciLCBcCi0gICAgICAgICAgIjAuMDAxNTY1LCAwLjAwMTU3LCAwLjAwMTU3OSwgMC4wMDE1OCwgMC4wMDE1ODEsIDAuMDAxNTgyLCAwLjAwMTU4MiIsIFwKLSAgICAgICAgICAiMC4wMDE1NjEsIDAuMDAxNTY3LCAwLjAwMTU3NiwgMC4wMDE1NzgsIDAuMDAxNTc5LCAwLjAwMTU3OSwgMC4wMDE1OCIsIFwKLSAgICAgICAgICAiMC4wMDE1NTcsIDAuMDAxNTYzLCAwLjAwMTU3MywgMC4wMDE1NzUsIDAuMDAxNTc2LCAwLjAwMTU3NywgMC4wMDE1NzciLCBcCi0gICAgICAgICAgIjAuMDAxNTU1LCAwLjAwMTU2MiwgMC4wMDE1NzEsIDAuMDAxNTc0LCAwLjAwMTU3NSwgMC4wMDE1NzYsIDAuMDAxNTc2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyNDYsIDAuMDAyNDY1LCAwLjAwMjQ3MSwgMC4wMDI0NzIsIDAuMDAyNDczLCAwLjAwMjQ3NCwgMC4wMDI0NzQiLCBcCi0gICAgICAgICAgIjAuMDAyNDYyLCAwLjAwMjQ2NywgMC4wMDI0NzQsIDAuMDAyNDc2LCAwLjAwMjQ3NiwgMC4wMDI0NzcsIDAuMDAyNDc3IiwgXAotICAgICAgICAgICIwLjAwMjQ2NiwgMC4wMDI0NzIsIDAuMDAyNDgsIDAuMDAyNDgyLCAwLjAwMjQ4MiwgMC4wMDI0ODMsIDAuMDAyNDg0IiwgXAotICAgICAgICAgICIwLjAwMjQ3LCAwLjAwMjQ3NiwgMC4wMDI0ODYsIDAuMDAyNDg4LCAwLjAwMjQ4OSwgMC4wMDI0OSwgMC4wMDI0OSIsIFwKLSAgICAgICAgICAiMC4wMDI0NzYsIDAuMDAyNDgyLCAwLjAwMjQ5MywgMC4wMDI0OTUsIDAuMDAyNDk2LCAwLjAwMjQ5NywgMC4wMDI0OTgiLCBcCi0gICAgICAgICAgIjAuMDAyNDg0LCAwLjAwMjQ5MSwgMC4wMDI1MDMsIDAuMDAyNTA2LCAwLjAwMjUwOCwgMC4wMDI1MDksIDAuMDAyNTA5IiwgXAotICAgICAgICAgICIwLjAwMjQ5LCAwLjAwMjQ5OCwgMC4wMDI1MTEsIDAuMDAyNTE0LCAwLjAwMjUxNiwgMC4wMDI1MTcsIDAuMDAyNTE4Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMTI5NDI2OwotICAgIGZ1bmN0aW9uIDogIihBXkIpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMDEyNzgsIDAuMjQ1MTUyLCAwLjQ5MDA5OCwgMC43MDU5MjEsIDAuOTkzNzg0LCAxLjU2OTU0LCAxLjkyOTI4IiwgXAotICAgICAgICAgICIwLjIxMzIzNywgMC4yNTY5OSwgMC41MDE5MzYsIDAuNzE3ODA1LCAxLjAwNTY2LCAxLjU4MTg0LCAxLjk0MTQ2IiwgXAotICAgICAgICAgICIwLjIyODI4LCAwLjI3MjA1NSwgMC41MTY5NywgMC43MzI4NSwgMS4wMjA3MSwgMS41OTY2NywgMS45NTY0NyIsIFwKLSAgICAgICAgICAiMC4yNDM0NzYsIDAuMjg3MjMyLCAwLjUzMjE4NywgMC43NDgwNjEsIDEuMDM1OTIsIDEuNjExOTEsIDEuOTcxMjkiLCBcCi0gICAgICAgICAgIjAuMjU4NTY4LCAwLjMwMjQwMywgMC41NDczNDksIDAuNzYzMjMxLCAxLjA1MTA4LCAxLjYyNjc0LCAxLjk4NjcyIiwgXAotICAgICAgICAgICIwLjI4Mjc2NSwgMC4zMjY1NTEsIDAuNTcxNTA2LCAwLjc4NzM5LCAxLjA3NTI2LCAxLjY1MTI0LCAyLjAxMDY5IiwgXAotICAgICAgICAgICIwLjMwMzU5OSwgMC4zNDc0ODIsIDAuNTkyNDYxLCAwLjgwODMzLCAxLjA5NTkzLCAxLjY3MjExLCAyLjAzMTk1Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE2OTIyNCwgMC4yNTM2NzgsIDAuNzQ0OTk0LCAxLjE4NTMyLCAxLjc3MTY4LCAyLjkzNTE1LCAzLjY2NTgiLCBcCi0gICAgICAgICAgIjAuMTY5Mjg5LCAwLjI1MzY2OCwgMC43NDY2MjMsIDEuMTg1MTMsIDEuNzcwOTQsIDIuOTUzOCwgMy42NjY3OSIsIFwKLSAgICAgICAgICAiMC4xNjkzMDEsIDAuMjUzNjg2LCAwLjc0NjQ4MiwgMS4xODU0LCAxLjc3MDkzLCAyLjkzNjIxLCAzLjY3MDA4IiwgXAotICAgICAgICAgICIwLjE2OTMxMiwgMC4yNTM2OCwgMC43NDY1NDQsIDEuMTg1MzksIDEuNzcwOTIsIDIuOTM2MTMsIDMuNjc1MDUiLCBcCi0gICAgICAgICAgIjAuMTY5Mjk0LCAwLjI1Mzc4OSwgMC43NDY0OTEsIDEuMTg1MTEsIDEuNzcxNDgsIDIuOTM1NDcsIDMuNjc1NTMiLCBcCi0gICAgICAgICAgIjAuMTY5MzE4LCAwLjI1MzY4OSwgMC43NDY1MzQsIDEuMTg1MzgsIDEuNzcwOTEsIDIuOTM2MTQsIDMuNjc1MjkiLCBcCi0gICAgICAgICAgIjAuMTY5Mjg5LCAwLjI1MzcwNCwgMC43NDQ5NTEsIDEuMTgxOTQsIDEuNzcwMjQsIDIuOTM2MjksIDMuNjczNSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMDA5MzQsIDAuMjUwOTU3LCAwLjUzMTE0MSwgMC43NzgzNzMsIDEuMTA3NTEsIDEuNzY2MjEsIDIuMTc4IiwgXAotICAgICAgICAgICIwLjIxMjI3NSwgMC4yNjIyNzEsIDAuNTQyNTI3LCAwLjc4OTYwNSwgMS4xMTg5NCwgMS43Nzc0NSwgMi4xODkxNSIsIFwKLSAgICAgICAgICAiMC4yMjcwMDksIDAuMjc3MDM4LCAwLjU1NzI0NywgMC44MDQ0OTMsIDEuMTMzNTksIDEuNzkyMzYsIDIuMjA0MDUiLCBcCi0gICAgICAgICAgIjAuMjQxMzU1LCAwLjI5MTM5MywgMC41NzE2MjMsIDAuODE4NTk3LCAxLjE0ODEyLCAxLjgwNjg0LCAyLjIxODQ4IiwgXAotICAgICAgICAgICIwLjI1NTY4NiwgMC4zMDU3MDIsIDAuNTg1OTQ5LCAwLjgzMzEwNiwgMS4xNjI1NCwgMS44MjEyOCwgMi4yMzI2NSIsIFwKLSAgICAgICAgICAiMC4yNzgyLCAwLjMyODIzLCAwLjYwODUwNiwgMC44NTU1MzEsIDEuMTg1MDIsIDEuODQzNzgsIDIuMjU1OTkiLCBcCi0gICAgICAgICAgIjAuMjk3MDM3LCAwLjM0NzA3NiwgMC42MjczNzIsIDAuODc0NDA2LCAxLjIwMzkyLCAxLjg2MjY3LCAyLjI3NDkxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE4NjQzNSwgMC4yODE5OSwgMC44MzQ4NywgMS4zMjM3NywgMS45ODE3OSwgMy4yODE0NywgNC4xMDEwNSIsIFwKLSAgICAgICAgICAiMC4xODY0NjIsIDAuMjgxNjEyLCAwLjgzMjM2NCwgMS4zMjE4NCwgMS45Nzc1OSwgMy4yODIxMiwgNC4xMDcxNiIsIFwKLSAgICAgICAgICAiMC4xODY0MjcsIDAuMjgyMDE5LCAwLjgzNDg3NiwgMS4zMjI0OSwgMS45NzYwOSwgMy4yOTUyNiwgNC4wOTk1MyIsIFwKLSAgICAgICAgICAiMC4xODY0NzMsIDAuMjgxNzY3LCAwLjgzNDg2MiwgMS4zMjYxMywgMS45NzcxMSwgMy4yODM0OCwgNC4xMDE5OCIsIFwKLSAgICAgICAgICAiMC4xODY1MDIsIDAuMjgxNzgsIDAuODM0ODY4LCAxLjMyMjA3LCAxLjk3ODYsIDMuMjg3NjUsIDQuMDk4MzUiLCBcCi0gICAgICAgICAgIjAuMTg2NTMyLCAwLjI4MTgwNiwgMC44MzQ4NzIsIDEuMzI2MTksIDEuOTc3MDIsIDMuMjg0NTQsIDQuMDk5NzMiLCBcCi0gICAgICAgICAgIjAuMTg2NjE1LCAwLjI4MTc5NCwgMC44MzQ4NzUsIDEuMzI2MTksIDEuOTc3MzUsIDMuMjg0NTYsIDQuMDk5NjEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjI1ODEzLCAwLjI2OTU1LCAwLjUxNDk1NCwgMC43MzA5MjEsIDEuMDE4ODcsIDEuNTk0NywgMS45NTQzMiIsIFwKLSAgICAgICAgICAiMC4yMzczODEsIDAuMjgxMTQ5LCAwLjUyNjUxMiwgMC43NDI0OTMsIDEuMDMwNDcsIDEuNjA2MTUsIDEuOTY1OTEiLCBcCi0gICAgICAgICAgIjAuMjUyMDM0LCAwLjI5NTgwNiwgMC41NDExNjUsIDAuNzU3MTM2LCAxLjA0NTA4LCAxLjYyMDgyLCAxLjk4MDU1IiwgXAotICAgICAgICAgICIwLjI2NjU1NCwgMC4zMTAyODUsIDAuNTU1NjMxLCAwLjc3MTY0OSwgMS4wNTk2LCAxLjYzNTI3LCAxLjk5NTAzIiwgXAotICAgICAgICAgICIwLjI4MDIzMSwgMC4zMjM5NzYsIDAuNTY5Mzg0LCAwLjc4NTM1MiwgMS4wNzMzLCAxLjY0OTA0LCAyLjAwODc1IiwgXAotICAgICAgICAgICIwLjMwMDAzLCAwLjM0Mzc3OCwgMC41ODkxODYsIDAuODA1MTU2LCAxLjA5MzExLCAxLjY2ODk1LCAyLjAyODU1IiwgXAotICAgICAgICAgICIwLjMxNTY0NiwgMC4zNTkzNjIsIDAuNjA0NzI5LCAwLjgyMDczNSwgMS4xMDg2NiwgMS42ODQzNywgMi4wNDQxMyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNjgyNDQsIDAuMjUzMDU1LCAwLjc0NTQ1NywgMS4xODYxNywgMS43Njk0NSwgMi45NDM2NiwgMy42NzAxMyIsIFwKLSAgICAgICAgICAiMC4xNjgxOTMsIDAuMjUzMTEyLCAwLjc0NzYwMywgMS4xODYxLCAxLjc3MjIsIDIuOTM4OTIsIDMuNjY5OTkiLCBcCi0gICAgICAgICAgIjAuMTY4MTc1LCAwLjI1MzA4MSwgMC43NDU0NjUsIDEuMTg2MTQsIDEuNzY5MjQsIDIuOTQzOTMsIDMuNjY5OTYiLCBcCi0gICAgICAgICAgIjAuMTY4MjQsIDAuMjUzMDUsIDAuNzQ1NjY5LCAxLjE4NjIsIDEuNzY3NCwgMi45NDM0NSwgMy42NzAzMSIsIFwKLSAgICAgICAgICAiMC4xNjgxNzQsIDAuMjUzMDE2LCAwLjc0NTQ1NSwgMS4xODYxNiwgMS43NjkyNCwgMi45MzcyOSwgMy42Njk4NiIsIFwKLSAgICAgICAgICAiMC4xNjgxNzgsIDAuMjUzMDE2LCAwLjc0NTQ1MywgMS4xODYxNiwgMS43Njk0MiwgMi45NDM4MSwgMy42Njk5NSIsIFwKLSAgICAgICAgICAiMC4xNjgxMTUsIDAuMjUzMTM0LCAwLjc0NzU2LCAxLjE4NjI2LCAxLjc2OTE3LCAyLjkzOTA0LCAzLjY3NTgxIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIzMTQ5NiwgMC4yODEzOTEsIDAuNTYxODA5LCAwLjgwODg2OCwgMS4xMzgyMywgMS43OTY5NiwgMi4yMDgzOSIsIFwKLSAgICAgICAgICAiMC4yNDM0MDEsIDAuMjkzMjk4LCAwLjU3MzczOSwgMC44MjA4MjgsIDEuMTUwMTYsIDEuODA4NzIsIDIuMjIwMjQiLCBcCi0gICAgICAgICAgIjAuMjU4NjE5LCAwLjMwODUyNiwgMC41ODg5NTMsIDAuODM2MDUsIDEuMTY1MzcsIDEuODIzOTMsIDIuMjM1NDkiLCBcCi0gICAgICAgICAgIjAuMjczODU4LCAwLjMyMzc1NSwgMC42MDQxOTYsIDAuODUxMjc1LCAxLjE4MDYxLCAxLjgzOTE4LCAyLjI1MDc2IiwgXAotICAgICAgICAgICIwLjI4ODkzMiwgMC4zMzg4NCwgMC42MTkyNDgsIDAuODY2MzI0LCAxLjE5NTY4LCAxLjg1NDMyLCAyLjI2NTgxIiwgXAotICAgICAgICAgICIwLjMxMTU5MSwgMC4zNjE0ODUsIDAuNjQxOTA0LCAwLjg4ODk2OSwgMS4yMTgzMiwgMS44NzY5NSwgMi4yODg0NiIsIFwKLSAgICAgICAgICAiMC4zMjk3MTEsIDAuMzc5NjE3LCAwLjY2MDA2NCwgMC45MDcxMTYsIDEuMjM2NDYsIDEuODk1MDUsIDIuMzA2ODMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTg1MzUzLCAwLjI4MDgwMywgMC44MzIxMzIsIDEuMzIyMjMsIDEuOTc0MTIsIDMuMjgzMTgsIDQuMDk2NjQiLCBcCi0gICAgICAgICAgIjAuMTg1NCwgMC4yODA4NDUsIDAuODMyNDQyLCAxLjMyMjMzLCAxLjk3NDMzLCAzLjI4MTU3LCA0LjA5OTk5IiwgXAotICAgICAgICAgICIwLjE4NTQxLCAwLjI4MDc5NywgMC44MzIyNjYsIDEuMzIyMzIsIDEuOTc0NTEsIDMuMjgzMDYsIDQuMDk4OCIsIFwKLSAgICAgICAgICAiMC4xODUzODksIDAuMjgwODQxLCAwLjgzMjQ0NywgMS4zMjIzMSwgMS45NzQwOSwgMy4yODE2LCA0LjA5ODM1IiwgXAotICAgICAgICAgICIwLjE4NTMyOSwgMC4yODA4MDQsIDAuODMyMjgyLCAxLjMyMjI2LCAxLjk3NDI2LCAzLjI4MzE1LCA0LjA5ODc3IiwgXAotICAgICAgICAgICIwLjE4NTM0MSwgMC4yODA4MDEsIDAuODMyNDE2LCAxLjMyMjEsIDEuOTc0NzQsIDMuMjgxNjksIDQuMDk4NjgiLCBcCi0gICAgICAgICAgIjAuMTg1Mzg2LCAwLjI4MDgzNywgMC44MzIzNTIsIDEuMzIxODksIDEuOTc0ODcsIDMuMjgxMzUsIDQuMDk5NzMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTc1Nzg4LCAwLjIxOTU0NCwgMC40NjQ5MiwgMC42ODA5NDIsIDAuOTY4ODM1LCAxLjU0NDUzLCAxLjkwNDM1IiwgXAotICAgICAgICAgICIwLjE4NjU2MywgMC4yMzAzMTksIDAuNDc1Njc5LCAwLjY5MTcyMSwgMC45Nzk2MjYsIDEuNTU1MywgMS45MTUwNSIsIFwKLSAgICAgICAgICAiMC4xOTk5NTcsIDAuMjQzNzI0LCAwLjQ4OTEyMywgMC43MDUxNTUsIDAuOTkzMDMsIDEuNTY4NzIsIDEuOTI4NTgiLCBcCi0gICAgICAgICAgIjAuMjEzNTgyLCAwLjI1NzM0NiwgMC41MDI3MTgsIDAuNzE4NzU4LCAxLjAwNjY5LCAxLjU4MjM2LCAxLjk0MjE5IiwgXAotICAgICAgICAgICIwLjIyNzI5NSwgMC4yNzEwNzUsIDAuNTE2NTA1LCAwLjczMjQ5MSwgMS4wMjA0MiwgMS41OTYxLCAxLjk1NTg0IiwgXAotICAgICAgICAgICIwLjI0OTI5NywgMC4yOTMwODcsIDAuNTM4NTQsIDAuNzU0NTMxLCAxLjA0MjQ2LCAxLjYxODE0LCAxLjk3Nzg5IiwgXAotICAgICAgICAgICIwLjI2ODQ2NywgMC4zMTIzMzQsIDAuNTU3NzM3LCAwLjc3Mzc4LCAxLjA2MTY5LCAxLjYzNzM4LCAxLjk5NzEyIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE2ODI5NywgMC4yNTMwODUsIDAuNzQ3NTYyLCAxLjE4NjQxLCAxLjc2OTI5LCAyLjkzODk0LCAzLjY3NjM2IiwgXAotICAgICAgICAgICIwLjE2ODMxNSwgMC4yNTMyNTgsIDAuNzQ2MTY4LCAxLjE4NDQ0LCAxLjc2OTIsIDIuOTM5MDgsIDMuNjczNzgiLCBcCi0gICAgICAgICAgIjAuMTY4MzQzLCAwLjI1MzMwOSwgMC43NDc0OSwgMS4xODYyMSwgMS43NjkxMywgMi45MzkwOSwgMy42NzU5NiIsIFwKLSAgICAgICAgICAiMC4xNjg0MjcsIDAuMjUzNTA4LCAwLjc0NjA2NCwgMS4xODYxMSwgMS43NjkyOCwgMi45Mzg3OCwgMy42NzYwMiIsIFwKLSAgICAgICAgICAiMC4xNjg0NzQsIDAuMjUzNDM3LCAwLjc0NTQzMSwgMS4xODYxNiwgMS43NjkzLCAyLjkzOSwgMy42Njk3IiwgXAotICAgICAgICAgICIwLjE2ODU5LCAwLjI1MzUwMywgMC43NDU3MTIsIDEuMTg2MTcsIDEuNzY5MTcsIDIuOTM4ODIsIDMuNjY5NiIsIFwKLSAgICAgICAgICAiMC4xNjg4MTksIDAuMjUzNjMxLCAwLjc0NTc1NSwgMS4xODYyNCwgMS43Njg3NiwgMi45Mzg3MywgMy42NzUiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTcxMjAyLCAwLjIyMTE1NywgMC41MDEzMTMsIDAuNzQ4MzgzLCAxLjA3NzY3LCAxLjczNjIsIDIuMTQ4MDQiLCBcCi0gICAgICAgICAgIjAuMTgxNzgzLCAwLjIzMTczMSwgMC41MTE4NzgsIDAuNzU4OTEsIDEuMDg4MzIsIDEuNzQ3MTcsIDIuMTU5MzIiLCBcCi0gICAgICAgICAgIjAuMTk1MDAzLCAwLjI0NDk3NCwgMC41MjUxNDEsIDAuNzcyMjE3LCAxLjEwMTYsIDEuNzYwMTcsIDIuMTcxODciLCBcCi0gICAgICAgICAgIjAuMjA4Mjc0LCAwLjI1ODI1OCwgMC41Mzg0MzMsIDAuNzg1NjA4LCAxLjExNDg5LCAxLjc3MzY5LCAyLjE4NTE4IiwgXAotICAgICAgICAgICIwLjIyMTU2MSwgMC4yNzE1NDcsIDAuNTUxNzU3LCAwLjc5ODg4MywgMS4xMjgxMSwgMS43ODY4NiwgMi4xOTg2NiIsIFwKLSAgICAgICAgICAiMC4yNDIzMTEsIDAuMjkyMzEyLCAwLjU3MjUxOSwgMC44MTk2OTQsIDEuMTQ4OTQsIDEuODA4MjksIDIuMjE5MTEiLCBcCi0gICAgICAgICAgIjAuMjU5NTE4LCAwLjMwOTUzMSwgMC41ODk3MiwgMC44MzY4NiwgMS4xNjYyOCwgMS44MjU1NCwgMi4yMzY2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE4NjMyNywgMC4yODE3MjMsIDAuODM0OTAyLCAxLjMyMzAyLCAxLjk3NDg0LCAzLjI4Mjg2LCA0LjEwODAyIiwgXAotICAgICAgICAgICIwLjE4NjMzNSwgMC4yODE2MzIsIDAuODM0ODg2LCAxLjMyMTcyLCAxLjk3NzY0LCAzLjI4ODM5LCA0LjA5OTUzIiwgXAotICAgICAgICAgICIwLjE4NjM0MywgMC4yODE4NTcsIDAuODM0ODk5LCAxLjMyMjQ1LCAxLjk3NzQ1LCAzLjI4MTUsIDQuMDk3NjMiLCBcCi0gICAgICAgICAgIjAuMTg2MzI2LCAwLjI4MTY3MywgMC44MzQ4ODIsIDEuMzIzNTIsIDEuOTc3NDQsIDMuMjg2NjksIDQuMTAzMzMiLCBcCi0gICAgICAgICAgIjAuMTg2MzE4LCAwLjI4MTY0NywgMC44MzQ4ODQsIDEuMzIzNzIsIDEuOTgxMjUsIDMuMjgxMTMsIDQuMTAyNzgiLCBcCi0gICAgICAgICAgIjAuMTg2NDMzLCAwLjI4MTY4LCAwLjgzMzM2MywgMS4zMjI1OCwgMS45NzkyNSwgMy4yODU0NCwgNC4xMDA4MyIsIFwKLSAgICAgICAgICAiMC4xODY0NjEsIDAuMjgxNzIyLCAwLjgzNDcxNywgMS4zMjQ5MywgMS45NzczMywgMy4yODIyOCwgNC4xMDYzNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xODA1MiwgMC4yMjQzMjYsIDAuNDY5MjY5LCAwLjY4NTE4NCwgMC45NzI5NTksIDEuNTQ4NzksIDEuOTA4NzMiLCBcCi0gICAgICAgICAgIjAuMTkyNDE4LCAwLjIzNjI4NSwgMC40ODEyNDYsIDAuNjk3MDcyLCAwLjk4NDk1NiwgMS41NjA2NywgMS45MjA2NSIsIFwKLSAgICAgICAgICAiMC4yMDc3MjcsIDAuMjUxNTMzLCAwLjQ5NjQ4OCwgMC43MTIzODcsIDEuMDAwMTgsIDEuNTc2MDMsIDEuOTM1NTciLCBcCi0gICAgICAgICAgIjAuMjIyODk2LCAwLjI2NjcyOCwgMC41MTE2NTIsIDAuNzI3NjEsIDEuMDE1NSwgMS41OTE0NCwgMS45NTExOCIsIFwKLSAgICAgICAgICAiMC4yMzc3NDcsIDAuMjgxNTU1LCAwLjUyNjQ4LCAwLjc0MjM2MywgMS4wMzAyMywgMS42MDYyNCwgMS45NjU1NyIsIFwKLSAgICAgICAgICAiMC4yNTkzMTEsIDAuMzAzMTc2LCAwLjU0ODE2LCAwLjc2Mzk5OCwgMS4wNTE4OSwgMS42Mjc2MiwgMS45ODc0OSIsIFwKLSAgICAgICAgICAiMC4yNzU5MTEsIDAuMzE5NzM4LCAwLjU2NDcyMywgMC43ODA1NjUsIDEuMDY4NDMsIDEuNjQ0MzMsIDIuMDAzODciKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTY5MDk4LCAwLjI1MzYxMywgMC43NDc4NDgsIDEuMTgyMzYsIDEuNzcxNTgsIDIuOTM0ODgsIDMuNjY3MTEiLCBcCi0gICAgICAgICAgIjAuMTY5MTIzLCAwLjI1MzU3NiwgMC43NDQ3NjksIDEuMTg1NDYsIDEuNzcxNjYsIDIuOTM1NTgsIDMuNjY3NTIiLCBcCi0gICAgICAgICAgIjAuMTY5MTA4LCAwLjI1MzU3MSwgMC43NDc5LCAxLjE4MjY4LCAxLjc3MTU2LCAyLjkzNDc1LCAzLjY3NTI2IiwgXAotICAgICAgICAgICIwLjE2OTEsIDAuMjUzNzA3LCAwLjc0NjMwMywgMS4xODcyOCwgMS43NjY2NywgMi45MzYxMSwgMy42NzQzOCIsIFwKLSAgICAgICAgICAiMC4xNjkwNTUsIDAuMjUzNzEsIDAuNzQ2NTU5LCAxLjE4NTQyLCAxLjc3MDk2LCAyLjkzNjE3LCAzLjY3NjI2IiwgXAotICAgICAgICAgICIwLjE2OTEwNSwgMC4yNTM1NSwgMC43NDQ2NDYsIDEuMTg1MjIsIDEuNzcxNjgsIDIuOTM1NDksIDMuNjY1MzUiLCBcCi0gICAgICAgICAgIjAuMTY5MjA5LCAwLjI1MzcyMiwgMC43NDc5NDIsIDEuMTgzMTEsIDEuNzcxNTMsIDIuOTM2NywgMy42NjYwOSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMTc4NjUsIDAuMjY3Nzg1LCAwLjU0ODI3LCAwLjc5NTM0NCwgMS4xMjQ3MSwgMS43ODMzLCAyLjE5NDk0IiwgXAotICAgICAgICAgICIwLjIzMDIwMSwgMC4yODAxMTEsIDAuNTYwNTc5LCAwLjgwNzY1MiwgMS4xMzcwMiwgMS43OTU3MiwgMi4yMDcxOCIsIFwKLSAgICAgICAgICAiMC4yNDU2MjYsIDAuMjk1NTMxLCAwLjU3NjAxMSwgMC44MjMxMTgsIDEuMTUyNDQsIDEuODExMDIsIDIuMjIyNTciLCBcCi0gICAgICAgICAgIjAuMjYwNDY4LCAwLjMxMDM5NiwgMC41OTA4NzksIDAuODM3OTQxLCAxLjE2NzM0LCAxLjgyNTg5LCAyLjIzNzQxIiwgXAotICAgICAgICAgICIwLjI3NTY0NSwgMC4zMjU1NzgsIDAuNjA2MDY5LCAwLjg1MzEwNywgMS4xODI0NywgMS44NDEyNCwgMi4yNTI2MyIsIFwKLSAgICAgICAgICAiMC4yOTc4MDcsIDAuMzQ3NzI0LCAwLjYyODIyLCAwLjg3NTI1OCwgMS4yMDQ2MiwgMS44NjMyMiwgMi4yNzQ3OCIsIFwKLSAgICAgICAgICAiMC4zMTU1OTEsIDAuMzY1NTE2LCAwLjY0NjAwNywgMC44OTMwNDQsIDEuMjIyNDcsIDEuODgxLCAyLjI5MjU4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE4NTM3NSwgMC4yODA4MTQsIDAuODMyNDM0LCAxLjMyMTkzLCAxLjk3NDI5LCAzLjI4MDQ4LCA0LjA5ODQ3IiwgXAotICAgICAgICAgICIwLjE4NTM0MiwgMC4yODA3OTEsIDAuODMyMTEsIDEuMzIyMjQsIDEuOTc0NzUsIDMuMjgzMTQsIDQuMDk4NjYiLCBcCi0gICAgICAgICAgIjAuMTg1MzgxLCAwLjI4MDgzMywgMC44MzI0MzcsIDEuMzIyMzIsIDEuOTc0MjUsIDMuMjgxNzMsIDQuMTAwMDQiLCBcCi0gICAgICAgICAgIjAuMTg1MzY1LCAwLjI4MDc2MSwgMC44MzIzNTUsIDEuMzIxODYsIDEuOTc0ODUsIDMuMjgwMjcsIDQuMDk5NTYiLCBcCi0gICAgICAgICAgIjAuMTg1MzUyLCAwLjI4MDc0NCwgMC44MzIzNzQsIDEuMzIyMDgsIDEuOTc0OTMsIDMuMjgyNzEsIDQuMDk4NDgiLCBcCi0gICAgICAgICAgIjAuMTg1MzM2LCAwLjI4MDc0MSwgMC44MzIzNzcsIDEuMzIyMDksIDEuOTc0OTcsIDMuMjgxMzEsIDQuMDk4NiIsIFwKLSAgICAgICAgICAiMC4xODUzMjMsIDAuMjgwNzM5LCAwLjgzMjM3MywgMS4zMjIwOCwgMS45NzQzNiwgMy4yODE4MiwgNC4wOTgyMyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjUyNywgMC4wMDI1MzEsIDAuMDAyNTM1LCAwLjAwMjUzNiwgMC4wMDI1MzYsIDAuMDAyNTM2LCAwLjAwMjUzNiIsIFwKLSAgICAgICAgICAiMC4wMDI1MTcsIDAuMDAyNTIxLCAwLjAwMjUyNiwgMC4wMDI1MjYsIDAuMDAyNTI2LCAwLjAwMjUyNywgMC4wMDI1MjciLCBcCi0gICAgICAgICAgIjAuMDAyNTA4LCAwLjAwMjUxMiwgMC4wMDI1MTcsIDAuMDAyNTE4LCAwLjAwMjUxOSwgMC4wMDI1MTksIDAuMDAyNTE5IiwgXAotICAgICAgICAgICIwLjAwMjUwMiwgMC4wMDI1MDYsIDAuMDAyNTEzLCAwLjAwMjUxMywgMC4wMDI1MTQsIDAuMDAyNTE1LCAwLjAwMjUxNSIsIFwKLSAgICAgICAgICAiMC4wMDI0OTgsIDAuMDAyNTAzLCAwLjAwMjUxLCAwLjAwMjUxMSwgMC4wMDI1MTIsIDAuMDAyNTEzLCAwLjAwMjUxMyIsIFwKLSAgICAgICAgICAiMC4wMDI0OTMsIDAuMDAyNDk4LCAwLjAwMjUwNiwgMC4wMDI1MDgsIDAuMDAyNTA5LCAwLjAwMjUxLCAwLjAwMjUwOSIsIFwKLSAgICAgICAgICAiMC4wMDI0ODksIDAuMDAyNDk1LCAwLjAwMjUwNCwgMC4wMDI1MDUsIDAuMDAyNTA3LCAwLjAwMjUwOCwgMC4wMDI1MDgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDE3OSwgMC4wMDE3OTQsIDAuMDAxNzk5LCAwLjAwMTgsIDAuMDAxODAxLCAwLjAwMTgwMSwgMC4wMDE4MDEiLCBcCi0gICAgICAgICAgIjAuMDAxNzc2LCAwLjAwMTc4LCAwLjAwMTc4NSwgMC4wMDE3ODYsIDAuMDAxNzg3LCAwLjAwMTc4NiwgMC4wMDE3ODYiLCBcCi0gICAgICAgICAgIjAuMDAxNzY1LCAwLjAwMTc3LCAwLjAwMTc3NSwgMC4wMDE3NzYsIDAuMDAxNzc2LCAwLjAwMTc3NiwgMC4wMDE3NzciLCBcCi0gICAgICAgICAgIjAuMDAxNzU5LCAwLjAwMTc2MywgMC4wMDE3NjksIDAuMDAxNzcsIDAuMDAxNzcsIDAuMDAxNzcxLCAwLjAwMTc3MSIsIFwKLSAgICAgICAgICAiMC4wMDE3NTUsIDAuMDAxNzU5LCAwLjAwMTc2NSwgMC4wMDE3NjYsIDAuMDAxNzY3LCAwLjAwMTc2NywgMC4wMDE3NjciLCBcCi0gICAgICAgICAgIjAuMDAxNzUsIDAuMDAxNzU1LCAwLjAwMTc2MiwgMC4wMDE3NjMsIDAuMDAxNzY0LCAwLjAwMTc2NCwgMC4wMDE3NjQiLCBcCi0gICAgICAgICAgIjAuMDAxNzQ4LCAwLjAwMTc1MywgMC4wMDE3NiwgMC4wMDE3NjIsIDAuMDAxNzYyLCAwLjAwMTc2MywgMC4wMDE3NjMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI0NiwgMC4wMDI0NjUsIDAuMDAyNDcxLCAwLjAwMjQ3MiwgMC4wMDI0NzMsIDAuMDAyNDc0LCAwLjAwMjQ3NCIsIFwKLSAgICAgICAgICAiMC4wMDI0NjIsIDAuMDAyNDY3LCAwLjAwMjQ3NCwgMC4wMDI0NzYsIDAuMDAyNDc2LCAwLjAwMjQ3NywgMC4wMDI0NzciLCBcCi0gICAgICAgICAgIjAuMDAyNDY2LCAwLjAwMjQ3MiwgMC4wMDI0OCwgMC4wMDI0ODIsIDAuMDAyNDgyLCAwLjAwMjQ4MywgMC4wMDI0ODQiLCBcCi0gICAgICAgICAgIjAuMDAyNDcsIDAuMDAyNDc2LCAwLjAwMjQ4NiwgMC4wMDI0ODgsIDAuMDAyNDg5LCAwLjAwMjQ5LCAwLjAwMjQ5IiwgXAotICAgICAgICAgICIwLjAwMjQ3NiwgMC4wMDI0ODIsIDAuMDAyNDkzLCAwLjAwMjQ5NSwgMC4wMDI0OTYsIDAuMDAyNDk3LCAwLjAwMjQ5OCIsIFwKLSAgICAgICAgICAiMC4wMDI0ODQsIDAuMDAyNDkxLCAwLjAwMjUwMywgMC4wMDI1MDYsIDAuMDAyNTA4LCAwLjAwMjUwOSwgMC4wMDI1MDkiLCBcCi0gICAgICAgICAgIjAuMDAyNDksIDAuMDAyNDk4LCAwLjAwMjUxMSwgMC4wMDI1MTQsIDAuMDAyNTE2LCAwLjAwMjUxNywgMC4wMDI1MTgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDE1OSwgMC4wMDE1OTUsIDAuMDAxNjAzLCAwLjAwMTYwNCwgMC4wMDE2MDUsIDAuMDAxNjA2LCAwLjAwMTYwNiIsIFwKLSAgICAgICAgICAiMC4wMDE1OCwgMC4wMDE1ODUsIDAuMDAxNTkyLCAwLjAwMTU5NCwgMC4wMDE1OTUsIDAuMDAxNTk2LCAwLjAwMTU5NiIsIFwKLSAgICAgICAgICAiMC4wMDE1NzEsIDAuMDAxNTc2LCAwLjAwMTU4NCwgMC4wMDE1ODYsIDAuMDAxNTg3LCAwLjAwMTU4NywgMC4wMDE1ODciLCBcCi0gICAgICAgICAgIjAuMDAxNTY1LCAwLjAwMTU3LCAwLjAwMTU3OSwgMC4wMDE1OCwgMC4wMDE1ODEsIDAuMDAxNTgyLCAwLjAwMTU4MiIsIFwKLSAgICAgICAgICAiMC4wMDE1NjEsIDAuMDAxNTY3LCAwLjAwMTU3NiwgMC4wMDE1NzgsIDAuMDAxNTc5LCAwLjAwMTU3OSwgMC4wMDE1OCIsIFwKLSAgICAgICAgICAiMC4wMDE1NTcsIDAuMDAxNTYzLCAwLjAwMTU3MywgMC4wMDE1NzUsIDAuMDAxNTc2LCAwLjAwMTU3NywgMC4wMDE1NzciLCBcCi0gICAgICAgICAgIjAuMDAxNTU1LCAwLjAwMTU2MiwgMC4wMDE1NzEsIDAuMDAxNTc0LCAwLjAwMTU3NSwgMC4wMDE1NzYsIDAuMDAxNTc2Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBBTkQzWDQgKgotICogLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChBTkQzWDQpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4xODQ4MTk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDgyNzg2ODsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA4Mjc4Njg7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwODI1MDczOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDMwNiwgMC4wMDAzMDYsIDAuMDAwMzA2LCAwLjAwMDMwNSwgMC4wMDAzMDYsIDAuMDAwMzA2LCAwLjAwMDMwNiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDMwNiwgMC4wMDAzMDcsIDAuMDAwMzA3LCAwLjAwMDMwNywgMC4wMDAzMDcsIDAuMDAwMzA3LCAwLjAwMDMwNyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwODQ4Nzg3OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDg0ODc4NzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA4NDY3NTk7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzA2LCAwLjAwMDMwNiwgMC4wMDAzMDYsIDAuMDAwMzA2LCAwLjAwMDMwNiwgMC4wMDAzMDYsIDAuMDAwMzA2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzA4LCAwLjAwMDMwOCwgMC4wMDAzMDgsIDAuMDAwMzA4LCAwLjAwMDMwOCwgMC4wMDAzMDgsIDAuMDAwMzA4Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihDKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA4NDYwNDg7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwODQ1Mjg5OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDg0NjA0ODsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxNywgMC4wMDAxNywgMC4wMDAxNywgMC4wMDAxNywgMC4wMDAxNywgMC4wMDAxNywgMC4wMDAxNyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDM0NywgMC4wMDAzNDgsIDAuMDAwMzQ4LCAwLjAwMDM0OCwgMC4wMDAzNDgsIDAuMDAwMzQ4LCAwLjAwMDM0OCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjUxMjAwNzsKLSAgICBmdW5jdGlvbiA6ICIoKEEgQikgQykiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjEwNzM2LCAwLjM1ODQ4LCAwLjQ4NjQ1MiwgMC41NzcxMjUsIDAuNzIxOTAyLCAwLjg0ODU5MywgMS4wMjk3IiwgXAotICAgICAgICAgICIwLjIyMTk1LCAwLjM3MDAwNywgMC40OTc5MzgsIDAuNTg4NjI3LCAwLjczMzQyNiwgMC44NjAxMTEsIDEuMDQxMDkiLCBcCi0gICAgICAgICAgIjAuMjM0NTE0LCAwLjM4MjI2LCAwLjUxMDA5NSwgMC42MDA3NjcsIDAuNzQ1NTU4LCAwLjg3MjI4NywgMS4wNTMyMSIsIFwKLSAgICAgICAgICAiMC4yNDYzNzcsIDAuMzk0NDYyLCAwLjUyMjM2NSwgMC42MTI5NzEsIDAuNzU3ODM0LCAwLjg4NDUyOSwgMS4wNjU2MiIsIFwKLSAgICAgICAgICAiMC4yNTgyOTcsIDAuNDA2NDA1LCAwLjUzNDM2LCAwLjYyNDk3NiwgMC43Njk4MzIsIDAuODk2NTM2LCAxLjA3NzYxIiwgXAotICAgICAgICAgICIwLjI3NjkyLCAwLjQyNTEzMywgMC41NTMxMDQsIDAuNjQzNzEyLCAwLjc4ODYxOSwgMC45MTUyODUsIDEuMDk2MzYiLCBcCi0gICAgICAgICAgIjAuMjkzNDM2LCAwLjQ0MTYyNCwgMC41Njk1ODEsIDAuNjYwMjE0LCAwLjgwNTA1MSwgMC45MzE4MTIsIDEuMTEyODYiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTIwODQsIDAuMzMyNjYyLCAwLjU4MDUyMywgMC43NjEzODIsIDEuMDUzNTIsIDEuMzA5OTMsIDEuNjgwMjYiLCBcCi0gICAgICAgICAgIjAuMDkxNTI2LCAwLjMzMjE5NiwgMC41ODE2MTYsIDAuNzYzMTUxLCAxLjA1MzU3LCAxLjMxMTY3LCAxLjY3OTM1IiwgXAotICAgICAgICAgICIwLjA5MTI1MiwgMC4zMzI1NDksIDAuNTgxNjkzLCAwLjc2MTQ1MiwgMS4wNTM2NCwgMS4zMDg5LCAxLjY3OTM0IiwgXAotICAgICAgICAgICIwLjA5MTg1MiwgMC4zMzIyNzIsIDAuNTgxODc3LCAwLjc2MjA2NSwgMS4wNTM0NiwgMS4zMDk4MiwgMS42ODIzOCIsIFwKLSAgICAgICAgICAiMC4wOTEzOTksIDAuMzMyMjUxLCAwLjU4MTcyLCAwLjc2MTk5MSwgMS4wNTM1LCAxLjMwOTY5LCAxLjY4MjUzIiwgXAotICAgICAgICAgICIwLjA5MTcxMSwgMC4zMzIwODUsIDAuNTgxNjQsIDAuNzYxOTUyLCAxLjA1NTMsIDEuMzA5NjUsIDEuNjgyNTYiLCBcCi0gICAgICAgICAgIjAuMDkxMjk0LCAwLjMzMTk0OCwgMC41ODE2MDQsIDAuNzYxNTY4LCAxLjA1MzM0LCAxLjMxMjEyLCAxLjY3NTQiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTU2ODUsIDAuMjQ0MzU4LCAwLjM5MDIyLCAwLjQ5NDI3NywgMC42NjA3MzQsIDAuODA2MzU0LCAxLjAxNDM1IiwgXAotICAgICAgICAgICIwLjEwNzAzMywgMC4yNTU3ODcsIDAuNDAxNjQ5LCAwLjUwNTcwOSwgMC42NzIyMzQsIDAuODE3Nzc2LCAxLjAyNTc4IiwgXAotICAgICAgICAgICIwLjEyMTg2MiwgMC4yNzA1NjksIDAuNDE2NDQ1LCAwLjUyMDUwNywgMC42ODY5NTEsIDAuODMyNTgxLCAxLjA0MDU4IiwgXAotICAgICAgICAgICIwLjEzNjcwMywgMC4yODU0NTMsIDAuNDMxMzMxLCAwLjUzNTM4NSwgMC43MDE4NTEsIDAuODQ3NDY4LCAxLjA1NTUiLCBcCi0gICAgICAgICAgIjAuMTUxNTYsIDAuMzAwNDEzLCAwLjQ0NjMsIDAuNTUwMzcxLCAwLjcxNjg2NSwgMC44NjI0OTQsIDEuMDcwNDciLCBcCi0gICAgICAgICAgIjAuMTc0ODgxLCAwLjMyMzY4NiwgMC40Njk1ODgsIDAuNTczNjYyLCAwLjc0MDE2NSwgMC44ODU3NywgMS4wOTM3NiIsIFwKLSAgICAgICAgICAiMC4xOTQyMzUsIDAuMzQzMjcxLCAwLjQ4OTE4NCwgMC41OTMyNTYsIDAuNzU5NzM0LCAwLjkwNTM1MSwgMS4xMTMzNyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2NDM2LCAwLjM0ODAxNCwgMC42MzcwMTUsIDAuODQ0MjksIDEuMTc0ODYsIDEuNDY0ODEsIDEuODc5MjciLCBcCi0gICAgICAgICAgIjAuMDY0NDcyLCAwLjM0NzY2NiwgMC42MzcwNjEsIDAuODQ0MzU5LCAxLjE3NTM0LCAxLjQ2NDg3LCAxLjg3OTI3IiwgXAotICAgICAgICAgICIwLjA2NDQ4NywgMC4zNDgwMzQsIDAuNjM3MDc3LCAwLjg0NDMxMywgMS4xNzYzLCAxLjQ2NDg2LCAxLjg3OTI0IiwgXAotICAgICAgICAgICIwLjA2NDM3MywgMC4zNDczNTYsIDAuNjM2NDY3LCAwLjg0NDQ0NSwgMS4xNzQ3MywgMS40NjQ2NSwgMS44ODA2OSIsIFwKLSAgICAgICAgICAiMC4wNjQzNDIsIDAuMzQ3NzQ2LCAwLjYzNzA0NiwgMC44NDQyNjcsIDEuMTc1NTksIDEuNDY1NzYsIDEuODc5MTIiLCBcCi0gICAgICAgICAgIjAuMDY1MTU2LCAwLjM0NzMzNCwgMC42MzcwMTMsIDAuODQ0MjQ0LCAxLjE3NjA0LCAxLjQ2Njc0LCAxLjg3OTQ2IiwgXAotICAgICAgICAgICIwLjA2NTkzOSwgMC4zNDczMDgsIDAuNjM3MDY4LCAwLjg0NDI5NywgMS4xNzU4OCwgMS40NjUwMiwgMS44ODExNyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIwNjAzNSwgMC4zNTM5MjUsIDAuNDgxOTE2LCAwLjU3MjU4NywgMC43MTczNzcsIDAuODQ0MDc2LCAxLjAyNTA2IiwgXAotICAgICAgICAgICIwLjIxNjE2MSwgMC4zNjQxNTcsIDAuNDkyMTE0LCAwLjU4Mjc5NiwgMC43Mjc1OTIsIDAuODU0Mjc5LCAxLjAzNTI2IiwgXAotICAgICAgICAgICIwLjIyODU5NSwgMC4zNzYzNTQsIDAuNTA0MjkzLCAwLjU5NDk3MSwgMC43Mzk3NjgsIDAuODY2NDgsIDEuMDQ3NDciLCBcCi0gICAgICAgICAgIjAuMjQxMTc2LCAwLjM4ODkzNywgMC41MTY4OTcsIDAuNjA3NTk1LCAwLjc1MjM5MiwgMC44NzkwODYsIDEuMDYwMDQiLCBcCi0gICAgICAgICAgIjAuMjUzODQ1LCAwLjQwMTczMiwgMC41Mjk2NjEsIDAuNjIwMzUzLCAwLjc2NTE1MiwgMC44OTE4NjIsIDEuMDcyODYiLCBcCi0gICAgICAgICAgIjAuMjczODA1LCAwLjQyMjEzMSwgMC41NTAwNDUsIDAuNjQwNzQ4LCAwLjc4NTU1NCwgMC45MTIyNDMsIDEuMDkzMjQiLCBcCi0gICAgICAgICAgIjAuMjkyMDIsIDAuNDQwMjg4LCAwLjU2ODI4NiwgMC42NTg5NjIsIDAuODAzNzc2LCAwLjkzMDUwNywgMS4xMTE1MSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5MTM2OCwgMC4zMzIzOTcsIDAuNTgxNjgsIDAuNzYzMjc4LCAxLjA1MzU4LCAxLjMwOTc1LCAxLjY3Njk5IiwgXAotICAgICAgICAgICIwLjA5MTI0MSwgMC4zMzIyNjgsIDAuNTgxNjE1LCAwLjc2MzE5LCAxLjA1MzU4LCAxLjMxMTY4LCAxLjY3ODY2IiwgXAotICAgICAgICAgICIwLjA5MTM1MiwgMC4zMzI0NTgsIDAuNTgxNzksIDAuNzYzMjQ0LCAxLjA1MzU5LCAxLjMxMTksIDEuNjc5OCIsIFwKLSAgICAgICAgICAiMC4wOTE0NzYsIDAuMzMyMzE5LCAwLjU4MTYzLCAwLjc2MzE3OCwgMS4wNTM1LCAxLjMxMTcsIDEuNjc5NDQiLCBcCi0gICAgICAgICAgIjAuMDkxMTk1LCAwLjMzMjE4NiwgMC41ODE1OSwgMC43NjMxMzUsIDEuMDUzNDgsIDEuMzA5NzcsIDEuNjc2NjMiLCBcCi0gICAgICAgICAgIjAuMDkxMzc4LCAwLjMzMTk2NywgMC41ODE1MTcsIDAuNzYyOTI0LCAxLjA1MzQ0LCAxLjMxMTYsIDEuNjc2NzQiLCBcCi0gICAgICAgICAgIjAuMDkxMzcyLCAwLjMzMTg2NiwgMC41ODEwNTUsIDAuNzYzMDMyLCAxLjA1MzQ0LCAxLjMxMTk3LCAxLjY3OTg2Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDkzMDczLCAwLjI0MTQxNywgMC4zODcxNjUsIDAuNDkxMTczLCAwLjY1NzU4NSwgMC44MDMxODEsIDEuMDExMTQiLCBcCi0gICAgICAgICAgIjAuMTA0NjcsIDAuMjUzMDc5LCAwLjM5ODgxOCwgMC41MDI4NCwgMC42NjkyNDMsIDAuODE0ODg0LCAxLjAyMjgiLCBcCi0gICAgICAgICAgIjAuMTE5NzIyLCAwLjI2ODAzOSwgMC40MTM4MTEsIDAuNTE3ODQyLCAwLjY4NDIyMSwgMC44Mjk4MjYsIDEuMDM3ODEiLCBcCi0gICAgICAgICAgIjAuMTM0MjkyLCAwLjI4MjcwNCwgMC40Mjg0OTUsIDAuNTMyNDg5LCAwLjY5ODkwNywgMC44NDQ0OTcsIDEuMDUyNDYiLCBcCi0gICAgICAgICAgIjAuMTQ5MDc3LCAwLjI5NzU4NiwgMC40NDMzODEsIDAuNTQ3Mzg4LCAwLjcxMzgxOSwgMC44NTk0MSwgMS4wNjczOCIsIFwKLSAgICAgICAgICAiMC4xNzIxNzcsIDAuMzIwNjczLCAwLjQ2NjQ3OSwgMC41NzA0OTQsIDAuNzM2OTI2LCAwLjg4MjU1MywgMS4wOTA0NyIsIFwKLSAgICAgICAgICAiMC4xOTEyNjcsIDAuMzM5ODksIDAuNDg1Njk3LCAwLjU4OTc3MywgMC43NTYxNTEsIDAuOTAxNzQ1LCAxLjEwOTc0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDYzODkyLCAwLjM0NzIxOCwgMC42MzcwNzIsIDAuODQ0NTY1LCAxLjE3NDMxLCAxLjQ2NjI5LCAxLjg4IiwgXAotICAgICAgICAgICIwLjA2Mzg1MiwgMC4zNDY3NTksIDAuNjM2NjEsIDAuODQyOTg4LCAxLjE3NDczLCAxLjQ2NTk4LCAxLjg4MTQ1IiwgXAotICAgICAgICAgICIwLjA2MzkwNCwgMC4zNDY3NTMsIDAuNjM2OTE3LCAwLjg0NDU4NywgMS4xNzQ0NiwgMS40NjMxNCwgMS44Nzg2NiIsIFwKLSAgICAgICAgICAiMC4wNjM4OTIsIDAuMzQ3NzQ3LCAwLjYzNjg4NCwgMC44NDMzNDMsIDEuMTc0NzcsIDEuNDY1OTcsIDEuODc5MDIiLCBcCi0gICAgICAgICAgIjAuMDYzOTIsIDAuMzQ3MDIsIDAuNjM1Nzg3LCAwLjg0NDYzMywgMS4xNzQ5NSwgMS40NjU4MSwgMS44ODE4MSIsIFwKLSAgICAgICAgICAiMC4wNjQ1NDQsIDAuMzQ2NzAzLCAwLjYzNjkzMywgMC44NDQ2ODEsIDEuMTc0NzcsIDEuNDY2MzcsIDEuODgyMjciLCBcCi0gICAgICAgICAgIjAuMDY1NzI1LCAwLjM0NzU1NSwgMC42MzcwMDYsIDAuODQzNzk2LCAxLjE3NDczLCAxLjQ2NTAyLCAxLjg4MTYzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTk2ODQzLCAwLjM0NDg5NywgMC40NzI4MjcsIDAuNTYzNTMyLCAwLjcwODMzNiwgMC44MzUwMywgMS4wMTYiLCBcCi0gICAgICAgICAgIjAuMjA1NTM2LCAwLjM1MzYxOSwgMC40ODE1MzYsIDAuNTcyMTY2LCAwLjcxNzAzMiwgMC44NDM3MDYsIDEuMDI0OCIsIFwKLSAgICAgICAgICAiMC4yMTc0MDYsIDAuMzY1Mjg0LCAwLjQ5MzI1OSwgMC41ODM5MzksIDAuNzI4NzM0LCAwLjg1NTQ0LCAxLjAzNjUyIiwgXAotICAgICAgICAgICIwLjIyOTM4NywgMC4zNzczMjEsIDAuNTA1MzYzLCAwLjU5NjAwOCwgMC43NDA4NDYsIDAuODY3NTg4LCAxLjA0ODY2IiwgXAotICAgICAgICAgICIwLjI0MjEzMywgMC4zOTAzMjcsIDAuNTE4Mjk0LCAwLjYwODk4LCAwLjc1MzgwNywgMC44ODA1MTIsIDEuMDYxNDciLCBcCi0gICAgICAgICAgIjAuMjYyMTE2LCAwLjQxMDQzLCAwLjUzODQzMSwgMC42MjkwNjEsIDAuNzczOTIyLCAwLjkwMDYzMiwgMS4wODE3MSIsIFwKLSAgICAgICAgICAiMC4yODAwNTYsIDAuNDI4MjkzLCAwLjU1NjM2OSwgMC42NDcwMjIsIDAuNzkxODM4LCAwLjkxODU1OCwgMS4wOTk1OCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5MTUyNSwgMC4zMzIxMDksIDAuNTgxNzE2LCAwLjc2MzE2NywgMS4wNTM1MSwgMS4zMTE3NiwgMS42Nzk2NCIsIFwKLSAgICAgICAgICAiMC4wOTE3MjMsIDAuMzMyMjYyLCAwLjU4MTg3NSwgMC43NjEyODYsIDEuMDUyMzEsIDEuMzA5ODYsIDEuNjgwMjIiLCBcCi0gICAgICAgICAgIjAuMDkxNTI0LCAwLjMzMjI2MiwgMC41ODE2MDUsIDAuNzYzMTcsIDEuMDUzNTQsIDEuMzA5NywgMS42ODIzMiIsIFwKLSAgICAgICAgICAiMC4wOTE2MywgMC4zMzIxMzIsIDAuNTgwOTU1LCAwLjc2MTQ5LCAxLjA1MzUxLCAxLjMwOTEsIDEuNjc1NCIsIFwKLSAgICAgICAgICAiMC4wOTEzNjYsIDAuMzMyMDE1LCAwLjU4MTU3NCwgMC43NjE3NiwgMS4wNTMzNywgMS4zMDk1OCwgMS42Nzk1MyIsIFwKLSAgICAgICAgICAiMC4wOTEyNTksIDAuMzMyMDM1LCAwLjU4MTU2NywgMC43NjIwNDgsIDEuMDUzMzgsIDEuMzA5NjQsIDEuNjgyNDkiLCBcCi0gICAgICAgICAgIjAuMDkxNDQ2LCAwLjMzMTc4NCwgMC41ODE1OTksIDAuNzYzMDcxLCAxLjA1MzQyLCAxLjMxMTkxLCAxLjY3OTg4Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDkwNDE1LCAwLjIzODM4LCAwLjM4NDA1NSwgMC40ODgxMjEsIDAuNjU0NDY4LCAwLjgwMDUxNywgMS4wMDgxIiwgXAotICAgICAgICAgICIwLjEwMjAxNCwgMC4yNTAxMDEsIDAuMzk1NzY1LCAwLjQ5OTk0NCwgMC42NjYyMTgsIDAuODEyMTM1LCAxLjAyMDA1IiwgXAotICAgICAgICAgICIwLjExNjgxMiwgMC4yNjQ5MDksIDAuNDEwNTc0LCAwLjUxNDc0OSwgMC42ODEwNTcsIDAuODI2OTYzLCAxLjAzNSIsIFwKLSAgICAgICAgICAiMC4xMzE1NTgsIDAuMjc5NzkzLCAwLjQyNTQ4LCAwLjUyOTY2LCAwLjY5NTk2MiwgMC44NDE4MzQsIDEuMDQ5NzQiLCBcCi0gICAgICAgICAgIjAuMTQ2MDg5LCAwLjI5NDM0OCwgMC40NDAwNTQsIDAuNTQ0MjU3LCAwLjcxMDUyOSwgMC44NTY0NzUsIDEuMDY0MjciLCBcCi0gICAgICAgICAgIjAuMTY5MTIxLCAwLjMxNzUxNywgMC40NjMyNDksIDAuNTY3MzE2LCAwLjczMzc2OCwgMC44NzkzNzYsIDEuMDg3NiIsIFwKLSAgICAgICAgICAiMC4xODc3OTksIDAuMzM2MjQxLCAwLjQ4MTk3NiwgMC41ODYwNjQsIDAuNzUyNDc1LCAwLjg5ODQ5MiwgMS4xMDYxNiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2MzUyMywgMC4zNDY1OTIsIDAuNjM2NDY3LCAwLjg0MTkzLCAxLjE3NzA4LCAxLjQ2Mzc5LCAxLjg3Njc2IiwgXAotICAgICAgICAgICIwLjA2MzYxMiwgMC4zNDczMjksIDAuNjM3MjUxLCAwLjg0MzE1NywgMS4xNzY2MywgMS40NjI5MSwgMS44Nzk2OCIsIFwKLSAgICAgICAgICAiMC4wNjM1ODQsIDAuMzQ3NDQ4LCAwLjYzNzI1MiwgMC44NDMyMjUsIDEuMTc2MTksIDEuNDYyODcsIDEuODc3MDIiLCBcCi0gICAgICAgICAgIjAuMDYzNDk2LCAwLjM0NjkwMiwgMC42MzcyNDUsIDAuODQzMjE1LCAxLjE3NjY5LCAxLjQ2MzI0LCAxLjg3OTExIiwgXAotICAgICAgICAgICIwLjA2NDE5MSwgMC4zNDY0MDQsIDAuNjM3MjU5LCAwLjg0MjkwNiwgMS4xNzQwMywgMS40NjI4MSwgMS44NzcxMyIsIFwKLSAgICAgICAgICAiMC4wNjQ1ODEsIDAuMzQ2NjUsIDAuNjM2MzA4LCAwLjg0MTgwOCwgMS4xNzU2NywgMS40NjI0MiwgMS44Nzg5MiIsIFwKLSAgICAgICAgICAiMC4wNjYyMzcsIDAuMzQ3MjAyLCAwLjYzNzMyNywgMC44NDM5MDEsIDEuMTczMDcsIDEuNDYyNDcsIDEuODc2MDEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzg1NSwgMC4wMDM5NjcsIDAuMDAzOTg2LCAwLjAwMzk5MiwgMC4wMDM5OTMsIDAuMDA0LCAwLjAwNDAwMyIsIFwKLSAgICAgICAgICAiMC4wMDM4MzUsIDAuMDAzOTUxLCAwLjAwMzk3LCAwLjAwMzk3NywgMC4wMDM5ODEsIDAuMDAzOTgzLCAwLjAwMzk4NiIsIFwKLSAgICAgICAgICAiMC4wMDM4MTYsIDAuMDAzOTMxLCAwLjAwMzk1MywgMC4wMDM5NTksIDAuMDAzOTY1LCAwLjAwMzk2OCwgMC4wMDM5NjkiLCBcCi0gICAgICAgICAgIjAuMDAzODA2LCAwLjAwMzkyNSwgMC4wMDM5NDUsIDAuMDAzOTUxLCAwLjAwMzk1NywgMC4wMDM5NTksIDAuMDAzOTU5IiwgXAotICAgICAgICAgICIwLjAwMzc5NSwgMC4wMDM5MTYsIDAuMDAzOTM5LCAwLjAwMzk0NCwgMC4wMDM5NSwgMC4wMDM5NTQsIDAuMDAzOTU1IiwgXAotICAgICAgICAgICIwLjAwMzc4NCwgMC4wMDM5MDYsIDAuMDAzOTI5LCAwLjAwMzkzNywgMC4wMDM5NDIsIDAuMDAzOTQ1LCAwLjAwMzk0OCIsIFwKLSAgICAgICAgICAiMC4wMDM3NzksIDAuMDAzOSwgMC4wMDM5MjQsIDAuMDAzOTMyLCAwLjAwMzkzNywgMC4wMDM5NCwgMC4wMDM5NDMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNTYwNSwgMC4wMDU3MjksIDAuMDA1NzQ0LCAwLjAwNTc0OCwgMC4wMDU3NTIsIDAuMDA1NzU0LCAwLjAwNTc1NiIsIFwKLSAgICAgICAgICAiMC4wMDU1ODUsIDAuMDA1NzEzLCAwLjAwNTcyOSwgMC4wMDU3MzQsIDAuMDA1NzM4LCAwLjAwNTc0LCAwLjAwNTc0MiIsIFwKLSAgICAgICAgICAiMC4wMDU1NjYsIDAuMDA1NywgMC4wMDU3MTksIDAuMDA1NzI0LCAwLjAwNTcyOSwgMC4wMDU3MzIsIDAuMDA1NzM0IiwgXAotICAgICAgICAgICIwLjAwNTU0OSwgMC4wMDU2ODksIDAuMDA1NzEsIDAuMDA1NzE3LCAwLjAwNTcyMywgMC4wMDU3MjYsIDAuMDA1NzI4IiwgXAotICAgICAgICAgICIwLjAwNTUyOSwgMC4wMDU2NzYsIDAuMDA1NzAxLCAwLjAwNTcwOSwgMC4wMDU3MTYsIDAuMDA1NzIsIDAuMDA1NzIzIiwgXAotICAgICAgICAgICIwLjAwNTUxMiwgMC4wMDU2NjMsIDAuMDA1NjkyLCAwLjAwNTcwMSwgMC4wMDU3MSwgMC4wMDU3MTUsIDAuMDA1NzE5IiwgXAotICAgICAgICAgICIwLjAwNTQ5NiwgMC4wMDU2NTEsIDAuMDA1Njg0LCAwLjAwNTY5NSwgMC4wMDU3MDUsIDAuMDA1NzEsIDAuMDA1NzE1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDM4NDksIDAuMDAzOTcsIDAuMDAzOTk0LCAwLjAwMzk5OCwgMC4wMDQwMDYsIDAuMDA0MDA3LCAwLjAwNDAxIiwgXAotICAgICAgICAgICIwLjAwMzgzMiwgMC4wMDM5NTEsIDAuMDAzOTc1LCAwLjAwMzk4MiwgMC4wMDM5ODcsIDAuMDAzOTksIDAuMDAzOTkzIiwgXAotICAgICAgICAgICIwLjAwMzgxNSwgMC4wMDM5MzQsIDAuMDAzOTU3LCAwLjAwMzk2NSwgMC4wMDM5NzIsIDAuMDAzOTczLCAwLjAwMzk3NiIsIFwKLSAgICAgICAgICAiMC4wMDM4MDQsIDAuMDAzOTI2LCAwLjAwMzk0OCwgMC4wMDM5NTUsIDAuMDAzOTYzLCAwLjAwMzk2NSwgMC4wMDM5NjciLCBcCi0gICAgICAgICAgIjAuMDAzNzk1LCAwLjAwMzkxNiwgMC4wMDM5NCwgMC4wMDM5NDgsIDAuMDAzOTU2LCAwLjAwMzk1OCwgMC4wMDM5NjMiLCBcCi0gICAgICAgICAgIjAuMDAzNzg0LCAwLjAwMzkwNiwgMC4wMDM5MzEsIDAuMDAzOTQxLCAwLjAwMzk0NiwgMC4wMDM5NSwgMC4wMDM5NTUiLCBcCi0gICAgICAgICAgIjAuMDAzNzgxLCAwLjAwMzkwMSwgMC4wMDM5MjUsIDAuMDAzOTMzLCAwLjAwMzk0MiwgMC4wMDM5NDUsIDAuMDAzOTQ5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDUyOTksIDAuMDA1NDMyLCAwLjAwNTQ0OCwgMC4wMDU0NTIsIDAuMDA1NDU3LCAwLjAwNTQ1OSwgMC4wMDU0NjEiLCBcCi0gICAgICAgICAgIjAuMDA1Mjg2LCAwLjAwNTQyMywgMC4wMDU0MzksIDAuMDA1NDQ0LCAwLjAwNTQ0OCwgMC4wMDU0NSwgMC4wMDU0NTIiLCBcCi0gICAgICAgICAgIjAuMDA1MjY0LCAwLjAwNTQwOCwgMC4wMDU0MjgsIDAuMDA1NDM0LCAwLjAwNTQzOCwgMC4wMDU0NDEsIDAuMDA1NDQzIiwgXAotICAgICAgICAgICIwLjAwNTI0MSwgMC4wMDUzOTIsIDAuMDA1NDE1LCAwLjAwNTQyMiwgMC4wMDU0MjgsIDAuMDA1NDMxLCAwLjAwNTQzNCIsIFwKLSAgICAgICAgICAiMC4wMDUyMTYsIDAuMDA1Mzc3LCAwLjAwNTQwNCwgMC4wMDU0MTIsIDAuMDA1NDIsIDAuMDA1NDI0LCAwLjAwNTQyNyIsIFwKLSAgICAgICAgICAiMC4wMDUxODgsIDAuMDA1MzU5LCAwLjAwNTM5MSwgMC4wMDU0MDIsIDAuMDA1NDExLCAwLjAwNTQxNiwgMC4wMDU0MiIsIFwKLSAgICAgICAgICAiMC4wMDUxNzYsIDAuMDA1MzQ1LCAwLjAwNTM4LCAwLjAwNTM5MiwgMC4wMDU0MDMsIDAuMDA1NDA5LCAwLjAwNTQxNCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzODUxLCAwLjAwMzk3MiwgMC4wMDM5OTUsIDAuMDA0MDAyLCAwLjAwNDAwOSwgMC4wMDQwMTIsIDAuMDA0MDE1IiwgXAotICAgICAgICAgICIwLjAwMzgyNiwgMC4wMDM5NSwgMC4wMDM5NzMsIDAuMDAzOTc3LCAwLjAwMzk4NywgMC4wMDM5OTEsIDAuMDAzOTk3IiwgXAotICAgICAgICAgICIwLjAwMzgwNiwgMC4wMDM5MywgMC4wMDM5NTQsIDAuMDAzOTYyLCAwLjAwMzk3LCAwLjAwMzk3NCwgMC4wMDM5NzYiLCBcCi0gICAgICAgICAgIjAuMDAzNzk0LCAwLjAwMzkxNywgMC4wMDM5NDIsIDAuMDAzOTUxLCAwLjAwMzk1OCwgMC4wMDM5NjIsIDAuMDAzOTY2IiwgXAotICAgICAgICAgICIwLjAwMzc4NiwgMC4wMDM5MSwgMC4wMDM5MzQsIDAuMDAzOTQ0LCAwLjAwMzk1MywgMC4wMDM5NTQsIDAuMDAzOTU5IiwgXAotICAgICAgICAgICIwLjAwMzc3NywgMC4wMDM4OTksIDAuMDAzOTI1LCAwLjAwMzkzNCwgMC4wMDM5NDQsIDAuMDAzOTQ4LCAwLjAwMzk1MiIsIFwKLSAgICAgICAgICAiMC4wMDM3NzgsIDAuMDAzODkyLCAwLjAwMzkxOSwgMC4wMDM5MjksIDAuMDAzOTM5LCAwLjAwMzk0MywgMC4wMDM5NDgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDk5LCAwLjAwNTExNSwgMC4wMDUxMywgMC4wMDUxMzQsIDAuMDA1MTM4LCAwLjAwNTE0LCAwLjAwNTE0MSIsIFwKLSAgICAgICAgICAiMC4wMDQ5NzgsIDAuMDA1MTExLCAwLjAwNTEyNiwgMC4wMDUxMywgMC4wMDUxMzQsIDAuMDA1MTM2LCAwLjAwNTEzOCIsIFwKLSAgICAgICAgICAiMC4wMDQ5NTEsIDAuMDA1MDkzLCAwLjAwNTExMiwgMC4wMDUxMTcsIDAuMDA1MTIyLCAwLjAwNTEyNCwgMC4wMDUxMjYiLCBcCi0gICAgICAgICAgIjAuMDA0OTI0LCAwLjAwNTA3NiwgMC4wMDUwOTgsIDAuMDA1MTA1LCAwLjAwNTExMSwgMC4wMDUxMTQsIDAuMDA1MTE3IiwgXAotICAgICAgICAgICIwLjAwNDg5NCwgMC4wMDUwNTgsIDAuMDA1MDg1LCAwLjAwNTA5NCwgMC4wMDUxMDEsIDAuMDA1MTA1LCAwLjAwNTEwOCIsIFwKLSAgICAgICAgICAiMC4wMDQ4NzgsIDAuMDA1MDQxLCAwLjAwNTA3MiwgMC4wMDUwODIsIDAuMDA1MDkxLCAwLjAwNTA5NSwgMC4wMDUwOTkiLCBcCi0gICAgICAgICAgIjAuMDA0ODUzLCAwLjAwNTAyMywgMC4wMDUwNTgsIDAuMDA1MDcsIDAuMDA1MDgsIDAuMDA1MDg2LCAwLjAwNTA5MSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogQU5EM1g2ICoKLSAqIC0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoQU5EM1g2KSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMzMwNTAyOwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE3NzgyNDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE3NzgyNDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE3NzMwMzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA2MTIsIDAuMDAwNjEyLCAwLjAwMDYxMiwgMC4wMDA2MTEsIDAuMDAwNjExLCAwLjAwMDYxMSwgMC4wMDA2MTEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA2MTMsIDAuMDAwNjE0LCAwLjAwMDYxNCwgMC4wMDA2MTQsIDAuMDAwNjE0LCAwLjAwMDYxNCwgMC4wMDA2MTQiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTY3ODE4OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTY3ODE4OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTY3NDI1OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDYxMiwgMC4wMDA2MTIsIDAuMDAwNjEyLCAwLjAwMDYxMSwgMC4wMDA2MTEsIDAuMDAwNjExLCAwLjAwMDYxMSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDYxNSwgMC4wMDA2MTUsIDAuMDAwNjE1LCAwLjAwMDYxNSwgMC4wMDA2MTYsIDAuMDAwNjE2LCAwLjAwMDYxNiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQykgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNTQ5MTE7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNTQ3ODk7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNTQ5MTE7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzA4LCAwLjAwMDMwOCwgMC4wMDAzMDcsIDAuMDAwMzA4LCAwLjAwMDMwNywgMC4wMDAzMDgsIDAuMDAwMzA3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNjk1LCAwLjAwMDY5NiwgMC4wMDA2OTYsIDAuMDAwNjk2LCAwLjAwMDY5NiwgMC4wMDA2OTYsIDAuMDAwNjk2Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuNzY4MDU3OwotICAgIGZ1bmN0aW9uIDogIigoQSBCKSBDKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNzA1NjcsIDAuMjcyNzUxLCAwLjM1ODYxNCwgMC40MTkwOTYsIDAuNTE1NTMxLCAwLjU5OTg3MSwgMC43MjAzMjciLCBcCi0gICAgICAgICAgIjAuMTgxMzQyLCAwLjI4MzQ0NCwgMC4zNjkzMzIsIDAuNDI5ODAyLCAwLjUyNjIzNywgMC42MTA1NjYsIDAuNzMxMDI1IiwgXAotICAgICAgICAgICIwLjE5NDExMSwgMC4yOTYzNTMsIDAuMzgyMTg2LCAwLjQ0MjY2OCwgMC41MzkwODQsIDAuNjIzNDI5LCAwLjc0Mzg5OCIsIFwKLSAgICAgICAgICAiMC4yMDYxODYsIDAuMzA4MDgxLCAwLjM5MzkyMSwgMC40NTQzNjYsIDAuNTUwODMxLCAwLjYzNTE0MiwgMC43NTU1ODEiLCBcCi0gICAgICAgICAgIjAuMjE3NzQ2LCAwLjMyMDEyMSwgMC40MDU5NjEsIDAuNDY2NDIxLCAwLjU2Mjg4NiwgMC42NDcxOTksIDAuNzY3NjQxIiwgXAotICAgICAgICAgICIwLjIzNjU5NiwgMC4zMzg5ODUsIDAuNDI0ODczLCAwLjQ4NTMzOCwgMC41ODE3NzgsIDAuNjY2MTAyLCAwLjc4NjU1OSIsIFwKLSAgICAgICAgICAiMC4yNTI5MDMsIDAuMzU1MzQ5LCAwLjQ0MTIwMywgMC41MDE2MzMsIDAuNTk4MDkyLCAwLjY4MjQyOCwgMC44MDI5MTYiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjkyNjksIDAuMjMwMDM5LCAwLjM5NDM1MywgMC41MTQ2MSwgMC43MDU2MTgsIDAuODc3MTU3LCAxLjEyMDk0IiwgXAotICAgICAgICAgICIwLjA2OTg0OSwgMC4yMzAyNDQsIDAuMzk0NDUzLCAwLjUxNDY1OCwgMC43MDcxNDgsIDAuODc4NDQyLCAxLjEyMTAyIiwgXAotICAgICAgICAgICIwLjA2OTM1NSwgMC4yMjk4NjIsIDAuMzk0MTcxLCAwLjUxNDQ2MywgMC43MDcxNDUsIDAuODc3MjIzLCAxLjEyMTExIiwgXAotICAgICAgICAgICIwLjA2OTMzMiwgMC4yMzAyMTcsIDAuMzk0NDg0LCAwLjUxNDA0NSwgMC43MDY3MjEsIDAuODc3MjE5LCAxLjEyMjciLCBcCi0gICAgICAgICAgIjAuMDY5NDE0LCAwLjIyOTkyNiwgMC4zOTQzNTcsIDAuNTEzNjg3LCAwLjcwNjc4OCwgMC44NzcxNCwgMS4xMjIyNCIsIFwKLSAgICAgICAgICAiMC4wNjkwNTksIDAuMjI5NzU1LCAwLjM5NDMwNywgMC41MTQ0NCwgMC43MDY2NzcsIDAuODc3MTE2LCAxLjEyMjc3IiwgXAotICAgICAgICAgICIwLjA2OTI5MiwgMC4yMjk2MzgsIDAuMzk0MjQsIDAuNTE0NSwgMC43MDgwNzEsIDAuODc3MTA1LCAxLjEyMDQzIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc2NzcxLCAwLjE3OTIyNywgMC4yNzkwMDYsIDAuMzUwMTU0LCAwLjQ2MzkyNiwgMC41NjM0NDUsIDAuNzA1NjE4IiwgXAotICAgICAgICAgICIwLjA4ODQ0MiwgMC4xOTA4ODMsIDAuMjkwNjU3LCAwLjM2MTgwNCwgMC40NzU1NzIsIDAuNTc1MDk1LCAwLjcxNzIzOCIsIFwKLSAgICAgICAgICAiMC4xMDMxMywgMC4yMDU2MTEsIDAuMzA1NDAzLCAwLjM3NjU1NiwgMC40OTAzMjcsIDAuNTg5ODU4LCAwLjczMjAwMSIsIFwKLSAgICAgICAgICAiMC4xMTc5NzMsIDAuMjIwNDc0LCAwLjMyMDI3NywgMC4zOTE0MzMsIDAuNTA1MjQyLCAwLjYwNDcyNywgMC43NDY4ODYiLCBcCi0gICAgICAgICAgIjAuMTMyNjI5LCAwLjIzNTE0NiwgMC4zMzQ5NTksIDAuNDA2MTIxLCAwLjUxOTkxNSwgMC42MTk0MjIsIDAuNzYxNTgyIiwgXAotICAgICAgICAgICIwLjE1NTI3LCAwLjI1NzgyLCAwLjM1NzYzNiwgMC40Mjg4MjMsIDAuNTQyNjA3LCAwLjY0MjEzOCwgMC43ODQzMTgiLCBcCi0gICAgICAgICAgIjAuMTczMzM4LCAwLjI3NTk5LCAwLjM3NTg2OSwgMC40NDcwMjgsIDAuNTYwODM0LCAwLjY2MDMzMSwgMC44MDI0OTgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDg3NzksIDAuMjQxNTQsIDAuNDM4MDY5LCAwLjU3ODc5MywgMC44MDM2NTgsIDEuMDAwOTQsIDEuMjgzOTMiLCBcCi0gICAgICAgICAgIjAuMDQ4NzEsIDAuMjQxNTA1LCAwLjQzNzkzOSwgMC41Nzg3NiwgMC44MDQ1NDksIDEuMDAwOTUsIDEuMjgyODkiLCBcCi0gICAgICAgICAgIjAuMDQ4Nzg4LCAwLjI0MTUxNiwgMC40Mzc5NjIsIDAuNTc4ODQ0LCAwLjgwNDY1OSwgMS4wMDExMSwgMS4yODMwMiIsIFwKLSAgICAgICAgICAiMC4wNDg3MzYsIDAuMjQxNTAxLCAwLjQzNzk1NSwgMC41Nzg3NzIsIDAuODAzNjExLCAxLjAwMjI4LCAxLjI4Mjk1IiwgXAotICAgICAgICAgICIwLjA0OTA2NywgMC4yNDE1MTUsIDAuNDM3OTgzLCAwLjU3ODc4MywgMC44MDQ4NDUsIDEuMDAyMywgMS4yODI5OSIsIFwKLSAgICAgICAgICAiMC4wNDk4MDgsIDAuMjQxNTkyLCAwLjQzODE5NiwgMC41Nzg1NSwgMC44MDM3NTUsIDEuMDAxMTIsIDEuMjg0IiwgXAotICAgICAgICAgICIwLjA1MTUxMSwgMC4yNDE3NDIsIDAuNDM4MTgxLCAwLjU3ODgyMSwgMC44MDMyMTcsIDEuMDAyNDIsIDEuMjgzMjEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNjU5NjksIDAuMjY3NjA3LCAwLjM1MzYyOCwgMC40MTQwOTcsIDAuNTEwNTQzLCAwLjU5NDg1OCwgMC43MTUzMDYiLCBcCi0gICAgICAgICAgIjAuMTc2MDA4LCAwLjI3ODIyOCwgMC4zNjQxNDQsIDAuNDI0NTkzLCAwLjUyMTAyMywgMC42MDUzNjUsIDAuNzI1ODI5IiwgXAotICAgICAgICAgICIwLjE4ODMxMiwgMC4yOTA0OSwgMC4zNzYzOTMsIDAuNDM2ODU3LCAwLjUzMzI4MSwgMC42MTc2MjQsIDAuNzM4MDg1IiwgXAotICAgICAgICAgICIwLjIwMDkwOSwgMC4zMDMxMzEsIDAuMzg4OTcyLCAwLjQ0OTQxOCwgMC41NDU4ODksIDAuNjMwMjA3LCAwLjc1MDY2NCIsIFwKLSAgICAgICAgICAiMC4yMTM0MDcsIDAuMzE1OTUxLCAwLjQwMTgyNiwgMC40NjIyODcsIDAuNTU4NzMsIDAuNjQzMDU0LCAwLjc2MzU0MiIsIFwKLSAgICAgICAgICAiMC4yMzM4ODMsIDAuMzM2MzI3LCAwLjQyMjIxOSwgMC40ODI2NjIsIDAuNTc5MTQsIDAuNjYzNDYxLCAwLjc4Mzk1OSIsIFwKLSAgICAgICAgICAiMC4yNTE3NjksIDAuMzU0MTI1LCAwLjQ0MDAzLCAwLjUwMDUwMywgMC41OTY5NDcsIDAuNjgxMjk2LCAwLjgwMTc3OSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2OTIzOCwgMC4yMzA1MDEsIDAuMzk0NjQ0LCAwLjUxNDYxOSwgMC43MDczMjksIDAuODc1NTA2LCAxLjEyMjc1IiwgXAotICAgICAgICAgICIwLjA2OTE1LCAwLjIyOTk2NCwgMC4zOTQxODgsIDAuNTE0NTY4LCAwLjcwNzE0MSwgMC44NzcxODEsIDEuMTIwOTUiLCBcCi0gICAgICAgICAgIjAuMDY5NDUzLCAwLjIzMDA4NSwgMC4zOTQyNzksIDAuNTE0NDg4LCAwLjcwNTY5NiwgMC44NzUzODgsIDEuMTIwOTIiLCBcCi0gICAgICAgICAgIjAuMDY5Mzc1LCAwLjIzMDAyNCwgMC4zOTQzNzgsIDAuNTEzODk5LCAwLjcwNjc2NiwgMC44NzcxNDgsIDEuMTIyOCIsIFwKLSAgICAgICAgICAiMC4wNjkzMTEsIDAuMjI5ODQ3LCAwLjM5NDE1MiwgMC41MTQ0OSwgMC43MDY2NTQsIDAuODc3MTQxLCAxLjEyMDQ2IiwgXAotICAgICAgICAgICIwLjA2OTE4NywgMC4yMjk3NSwgMC4zOTQyNTMsIDAuNTEzODU2LCAwLjcwNjY2OCwgMC44NzcwMzksIDEuMTIwNTQiLCBcCi0gICAgICAgICAgIjAuMDY5MjA0LCAwLjIyOTYzMiwgMC4zOTQxNjksIDAuNTE0NDQsIDAuNzA3MTY0LCAwLjg3NzA4OSwgMS4xMjAyIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc0NjQzLCAwLjE3Njc0OSwgMC4yNzY0MDIsIDAuMzQ3NDk2LCAwLjQ2MTIwNywgMC41NjA3MDMsIDAuNzAyODE2IiwgXAotICAgICAgICAgICIwLjA4NjMwNCwgMC4xODgzNzIsIDAuMjg4MDQ4LCAwLjM1OTEzNCwgMC40NzI4NTcsIDAuNTcyMzUxLCAwLjcxNDQ1NCIsIFwKLSAgICAgICAgICAiMC4xMDEyNDQsIDAuMjAzMzk3LCAwLjMwMzA2NSwgMC4zNzQxNjgsIDAuNDg3ODg0LCAwLjU4NzM4NSwgMC43Mjk1MDIiLCBcCi0gICAgICAgICAgIjAuMTE1OTQsIDAuMjE4MTA0LCAwLjMxNzc5LCAwLjM4ODg5OCwgMC41MDI2NTQsIDAuNjAyMTIsIDAuNzQ0MjQ1IiwgXAotICAgICAgICAgICIwLjEzMDQyNSwgMC4yMzI2MzMsIDAuMzMyMzM2LCAwLjQwMzQ1MSwgMC41MTcxOTksIDAuNjE2NjgsIDAuNzU4ODA4IiwgXAotICAgICAgICAgICIwLjE1MjU5NiwgMC4yNTQ4OTgsIDAuMzU0NjI3LCAwLjQyNTc0LCAwLjUzOTQ4MywgMC42Mzg5NzEsIDAuNzgxMDk5IiwgXAotICAgICAgICAgICIwLjE3MDMxMiwgMC4yNzI4NDEsIDAuMzcyNTU1LCAwLjQ0MzcsIDAuNTU3NDIxLCAwLjY1NjkyNiwgMC43OTkwNDUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDgzMzYsIDAuMjQxMDQ2LCAwLjQzNzc4OCwgMC41Nzg3NDMsIDAuODA0NzMzLCAxLjAwMDg1LCAxLjI4NDA3IiwgXAotICAgICAgICAgICIwLjA0ODM4NCwgMC4yNDEwODEsIDAuNDM2ODQzLCAwLjU3ODc4MSwgMC44MDM0NDgsIDEuMDAxNTUsIDEuMjgzMDQiLCBcCi0gICAgICAgICAgIjAuMDQ4MzYxLCAwLjI0MTA2MiwgMC40Mzc3NzksIDAuNTc4NzksIDAuODA0NzcxLCAxLjAwMDkzLCAxLjI4NDMxIiwgXAotICAgICAgICAgICIwLjA0ODQyNSwgMC4yNDEwNDQsIDAuNDM3NzgzLCAwLjU3ODc2MywgMC44MDQyMTQsIDEuMDAwNzIsIDEuMjg0NDQiLCBcCi0gICAgICAgICAgIjAuMDQ4ODA4LCAwLjI0MTExOSwgMC40Mzc4MDMsIDAuNTc4NzQ5LCAwLjgwNDM5LCAxLjAwMDcsIDEuMjg0NDciLCBcCi0gICAgICAgICAgIjAuMDQ5ODQyLCAwLjI0MDY2OCwgMC40Mzc4MTksIDAuNTc4NjY3LCAwLjgwNDA1OCwgMS4wMDA2MiwgMS4yODQxOCIsIFwKLSAgICAgICAgICAiMC4wNTE1ODcsIDAuMjQxMzQyLCAwLjQzNzc2NCwgMC41NzgxMTEsIDAuODA0NzA0LCAxLjAwMDgyLCAxLjI4Mjg2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTU1ODA0LCAwLjI1ODE3NiwgMC4zNDQwNzMsIDAuNDA0NTUsIDAuNTAwOTg3LCAwLjU4NTMyOCwgMC43MDU3OCIsIFwKLSAgICAgICAgICAiMC4xNjQ5ODUsIDAuMjY3MTUsIDAuMzUzMDI3LCAwLjQxMzUxLCAwLjUwOTk1MiwgMC41OTQyOTgsIDAuNzE0Njg3IiwgXAotICAgICAgICAgICIwLjE3NjQwMywgMC4yNzg2ODMsIDAuMzY0NTIzLCAwLjQyNDk2MiwgMC41MjE0NDcsIDAuNjA1NzU5LCAwLjcyNjI0NCIsIFwKLSAgICAgICAgICAiMC4xODkxNDYsIDAuMjkxNDQ2LCAwLjM3NzM1NywgMC40Mzc4MjgsIDAuNTM0Mjc3LCAwLjYxODYzMSwgMC43MzkwNTEiLCBcCi0gICAgICAgICAgIjAuMjAxMzM1LCAwLjMwMzgzMiwgMC4zODk3MjMsIDAuNDUwMTgxLCAwLjU0NjYyNywgMC42MzA5NTQsIDAuNzUxNDA4IiwgXAotICAgICAgICAgICIwLjIyMTYyOCwgMC4zMjQxMTUsIDAuNDEwMDE0LCAwLjQ3MDQ1OCwgMC41NjY5MTcsIDAuNjUxMjY2LCAwLjc3MTc1OCIsIFwKLSAgICAgICAgICAiMC4yMzkxNzYsIDAuMzQxNzQzLCAwLjQyNzY0NiwgMC40ODgxNDMsIDAuNTg0NiwgMC42Njg5NTQsIDAuNzg5NDI2Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDcwMDU1LCAwLjIzMDEzLCAwLjM5NDM5MiwgMC41MTQ1OTUsIDAuNzA3MTQ2LCAwLjg3NzIxOCwgMS4xMjEiLCBcCi0gICAgICAgICAgIjAuMDY5MjQ3LCAwLjIyOTkyOCwgMC4zOTQyNTksIDAuNTE0NTU5LCAwLjcwNjk5NSwgMC44Nzg1MSwgMS4xMjI0MSIsIFwKLSAgICAgICAgICAiMC4wNjk1MDQsIDAuMjMwMDY0LCAwLjM5NDQwNywgMC41MTQ1NDMsIDAuNzA2NzAyLCAwLjg3NzE5NiwgMS4xMjA0NiIsIFwKLSAgICAgICAgICAiMC4wNjkyODQsIDAuMjI5ODAxLCAwLjM5NDE0OCwgMC41MTQ0ODcsIDAuNzA3MTc3LCAwLjg3ODY0MywgMS4xMjI1NyIsIFwKLSAgICAgICAgICAiMC4wNjkzNDYsIDAuMjI5NzcxLCAwLjM5NDA5OCwgMC41MTQ0NTEsIDAuNzA3MTgsIDAuODc3MTMyLCAxLjEyMDg5IiwgXAotICAgICAgICAgICIwLjA2OTM1OSwgMC4yMjk2MzgsIDAuMzk0MjMxLCAwLjUxNDUxLCAwLjcwNzExOSwgMC44NzcxMTMsIDEuMTIwNSIsIFwKLSAgICAgICAgICAiMC4wNzAxNSwgMC4yMjk3NDMsIDAuMzk0MTQzLCAwLjUxNDQ2MSwgMC43MDY2NDYsIDAuODc4NTA0LCAxLjEyMTA3Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDcyMDIxLCAwLjE3Mzc0NiwgMC4yNzMzMDgsIDAuMzQ0Mzc0LCAwLjQ1ODA4NSwgMC41NTc2MjYsIDAuNjk5ODkzIiwgXAotICAgICAgICAgICIwLjA4MzY3OCwgMC4xODU0ODQsIDAuMjg1MDYxLCAwLjM1NjEyOCwgMC40Njk5MDIsIDAuNTY5NDA0LCAwLjcxMTU1OCIsIFwKLSAgICAgICAgICAiMC4wOTg0OTYsIDAuMjAwMzM3LCAwLjI5OTkzMywgMC4zNzEwMDQsIDAuNDg0NzQ4LCAwLjU4NDUwNCwgMC43MjYzODEiLCBcCi0gICAgICAgICAgIjAuMTEyOTgzLCAwLjIxNDk2NCwgMC4zMTQ1NiwgMC4zODU2MjcsIDAuNDk5NTY5LCAwLjU5ODg5OCwgMC43NDEyMzgiLCBcCi0gICAgICAgICAgIjAuMTI3NTM1LCAwLjIyOTQwNiwgMC4zMjkwMDgsIDAuNDAwMTEsIDAuNTEzODc3LCAwLjYxMzU2NywgMC43NTU0OTciLCBcCi0gICAgICAgICAgIjAuMTQ5MDM1LCAwLjI1MTIxMSwgMC4zNTA4MjIsIDAuNDIxOTg1LCAwLjUzNTcyMiwgMC42MzUyNzIsIDAuNzc3NTk1IiwgXAotICAgICAgICAgICIwLjE2NjQwOCwgMC4yNjg2ODUsIDAuMzY4MjMzLCAwLjQzOTMwMSwgMC41NTMwNDYsIDAuNjUyODEyLCAwLjc5NDg5NCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0ODA1LCAwLjI0MDc1NCwgMC40Mzc4MjEsIDAuNTc4MzgxLCAwLjgwNTA4NywgMS4wMDE5NSwgMS4yODMzMiIsIFwKLSAgICAgICAgICAiMC4wNDgxMDMsIDAuMjQwMjY4LCAwLjQzNzc5MiwgMC41Nzg5NTQsIDAuODAyMDYyLCAxLjAwMDczLCAxLjI4MTY4IiwgXAotICAgICAgICAgICIwLjA0ODA5MSwgMC4yNDA1MzMsIDAuNDM3ODA5LCAwLjU3NzgzNywgMC44MDI2NjQsIDAuOTk5NDM0LCAxLjI4MTA0IiwgXAotICAgICAgICAgICIwLjA0ODM5OSwgMC4yNDA3ODcsIDAuNDM3ODI3LCAwLjU3ODk1NywgMC44MDIxMDgsIDAuOTk5NDYxLCAxLjI4MjA4IiwgXAotICAgICAgICAgICIwLjA0ODU3LCAwLjI0MDc1NiwgMC40Mzc3NDQsIDAuNTc4OTY1LCAwLjgwMjUzOSwgMC45OTk4MzMsIDEuMjg1MTMiLCBcCi0gICAgICAgICAgIjAuMDUwMzU1LCAwLjI0MTAzOSwgMC40Mzc4NTEsIDAuNTc2NzgyLCAwLjgwMTk5MSwgMS4wMDA3MSwgMS4yODEzOSIsIFwKLSAgICAgICAgICAiMC4wNTE2MDMsIDAuMjQxMjcyLCAwLjQzNzIyMSwgMC41NzgzMTgsIDAuODA1MDk4LCAwLjk5OTU0MiwgMS4yODIxOSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2MDMsIDAuMDA2MjIxLCAwLjAwNjI1NiwgMC4wMDYyNywgMC4wMDYyNzgsIDAuMDA2Mjg1LCAwLjAwNjI5IiwgXAotICAgICAgICAgICIwLjAwNTk5MywgMC4wMDYxODQsIDAuMDA2MjE4LCAwLjAwNjIyOSwgMC4wMDYyMzksIDAuMDA2MjQ0LCAwLjAwNjI0OSIsIFwKLSAgICAgICAgICAiMC4wMDU5NTcsIDAuMDA2MTQ4LCAwLjAwNjE4NiwgMC4wMDYxOTgsIDAuMDA2MjAzLCAwLjAwNjIxMywgMC4wMDYyMTgiLCBcCi0gICAgICAgICAgIjAuMDA1OTMzLCAwLjAwNjEyMiwgMC4wMDYxNjEsIDAuMDA2MTc2LCAwLjAwNjE4NywgMC4wMDYxOTMsIDAuMDA2MTk4IiwgXAotICAgICAgICAgICIwLjAwNTkxNywgMC4wMDYxMDksIDAuMDA2MTUxLCAwLjAwNjE2NCwgMC4wMDYxNzUsIDAuMDA2MTgxLCAwLjAwNjE4NSIsIFwKLSAgICAgICAgICAiMC4wMDU4OTcsIDAuMDA2MDksIDAuMDA2MTMzLCAwLjAwNjE0OCwgMC4wMDYxNTgsIDAuMDA2MTY1LCAwLjAwNjE3MSIsIFwKLSAgICAgICAgICAiMC4wMDU4ODgsIDAuMDA2MDc3LCAwLjAwNjEyMSwgMC4wMDYxMzYsIDAuMDA2MTQ5LCAwLjAwNjE1NSwgMC4wMDYxNiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA4OTcxLCAwLjAwOTE3MSwgMC4wMDkxOTcsIDAuMDA5MjA1LCAwLjAwOTIxMywgMC4wMDkyMTYsIDAuMDA5MjE5IiwgXAotICAgICAgICAgICIwLjAwODkzNiwgMC4wMDkxMzgsIDAuMDA5MTY3LCAwLjAwOTE3NSwgMC4wMDkxODMsIDAuMDA5MTg4LCAwLjAwOTE5MSIsIFwKLSAgICAgICAgICAiMC4wMDg4OTQsIDAuMDA5MTA3LCAwLjAwOTE0MiwgMC4wMDkxNTMsIDAuMDA5MTYzLCAwLjAwOTE2OCwgMC4wMDkxNzIiLCBcCi0gICAgICAgICAgIjAuMDA4ODU3LCAwLjAwOTA4LCAwLjAwOTEyMSwgMC4wMDkxMzUsIDAuMDA5MTQ3LCAwLjAwOTE1MywgMC4wMDkxNTkiLCBcCi0gICAgICAgICAgIjAuMDA4ODI1LCAwLjAwOTA1NiwgMC4wMDkxMDMsIDAuMDA5MTE5LCAwLjAwOTEzNCwgMC4wMDkxNDEsIDAuMDA5MTQ5IiwgXAotICAgICAgICAgICIwLjAwODgwNiwgMC4wMDkwMywgMC4wMDkwODQsIDAuMDA5MTAyLCAwLjAwOTExOSwgMC4wMDkxMjksIDAuMDA5MTM3IiwgXAotICAgICAgICAgICIwLjAwODc3NSwgMC4wMDkwMTEsIDAuMDA5MDY0LCAwLjAwOTA4NSwgMC4wMDkxMDQsIDAuMDA5MTE1LCAwLjAwOTEyNSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2MDMsIDAuMDA2MjE2LCAwLjAwNjI1OCwgMC4wMDYyNzIsIDAuMDA2Mjg0LCAwLjAwNjI5LCAwLjAwNjI5NiIsIFwKLSAgICAgICAgICAiMC4wMDU5ODksIDAuMDA2MTgxLCAwLjAwNjIyMywgMC4wMDYyMzUsIDAuMDA2MjQ3LCAwLjAwNjI1MywgMC4wMDYyNTgiLCBcCi0gICAgICAgICAgIjAuMDA1OTUyLCAwLjAwNjE0NiwgMC4wMDYxOSwgMC4wMDYyMDYsIDAuMDA2MjE2LCAwLjAwNjIyMywgMC4wMDYyMjciLCBcCi0gICAgICAgICAgIjAuMDA1OTMyLCAwLjAwNjEyNSwgMC4wMDYxNjUsIDAuMDA2MTgxLCAwLjAwNjE5MiwgMC4wMDYyMDMsIDAuMDA2MjA1IiwgXAotICAgICAgICAgICIwLjAwNTkxNCwgMC4wMDYxMDgsIDAuMDA2MTQ3LCAwLjAwNjE2NywgMC4wMDYxNzksIDAuMDA2MTg1LCAwLjAwNjE5MiIsIFwKLSAgICAgICAgICAiMC4wMDU4OTgsIDAuMDA2MDg3LCAwLjAwNjEzNCwgMC4wMDYxNTEsIDAuMDA2MTYyLCAwLjAwNjE3MiwgMC4wMDYxNzYiLCBcCi0gICAgICAgICAgIjAuMDA1ODk3LCAwLjAwNjA3MSwgMC4wMDYxMTgsIDAuMDA2MTM1LCAwLjAwNjE1LCAwLjAwNjE1OCwgMC4wMDYxNjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwODM2OCwgMC4wMDg1NzMsIDAuMDA4NTk5LCAwLjAwODYwNywgMC4wMDg2MTUsIDAuMDA4NjE4LCAwLjAwODYyMiIsIFwKLSAgICAgICAgICAiMC4wMDgzMzUsIDAuMDA4NTQ4LCAwLjAwODU3NywgMC4wMDg1ODYsIDAuMDA4NTk0LCAwLjAwODU5OCwgMC4wMDg2MDEiLCBcCi0gICAgICAgICAgIjAuMDA4MjksIDAuMDA4NTE1LCAwLjAwODU1LCAwLjAwODU2MSwgMC4wMDg1NzEsIDAuMDA4NTc2LCAwLjAwODU4IiwgXAotICAgICAgICAgICIwLjAwODI0MywgMC4wMDg0NzgsIDAuMDA4NTIyLCAwLjAwODUzNiwgMC4wMDg1NDgsIDAuMDA4NTU1LCAwLjAwODU2MSIsIFwKLSAgICAgICAgICAiMC4wMDgyMDcsIDAuMDA4NDUxLCAwLjAwODUwMSwgMC4wMDg1MTgsIDAuMDA4NTMzLCAwLjAwODU0MSwgMC4wMDg1NDciLCBcCi0gICAgICAgICAgIjAuMDA4MTY3LCAwLjAwODQxLCAwLjAwODQ2OSwgMC4wMDg0ODksIDAuMDA4NTA4LCAwLjAwODUxOCwgMC4wMDg1MjciLCBcCi0gICAgICAgICAgIjAuMDA4MTUzLCAwLjAwODM4OSwgMC4wMDg0NTIsIDAuMDA4NDc0LCAwLjAwODQ5NSwgMC4wMDg1MDYsIDAuMDA4NTE3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDYwMjcsIDAuMDA2MjI1LCAwLjAwNjI2MywgMC4wMDYyNzcsIDAuMDA2Mjg0LCAwLjAwNjI5NiwgMC4wMDYyOTYiLCBcCi0gICAgICAgICAgIjAuMDA1OTczLCAwLjAwNjE3MSwgMC4wMDYyMTMsIDAuMDA2MjI3LCAwLjAwNjI0NCwgMC4wMDYyNDIsIDAuMDA2MjU5IiwgXAotICAgICAgICAgICIwLjAwNTkzNSwgMC4wMDYxMjksIDAuMDA2MTcxLCAwLjAwNjE4OCwgMC4wMDYyMDIsIDAuMDA2MjEsIDAuMDA2MjEzIiwgXAotICAgICAgICAgICIwLjAwNTkxMSwgMC4wMDYxMDcsIDAuMDA2MTU0LCAwLjAwNjE2NiwgMC4wMDYxOCwgMC4wMDYxODcsIDAuMDA2MTkzIiwgXAotICAgICAgICAgICIwLjAwNTg5NiwgMC4wMDYwODUsIDAuMDA2MTMzLCAwLjAwNjE1LCAwLjAwNjE2NCwgMC4wMDYxNzMsIDAuMDA2MTgiLCBcCi0gICAgICAgICAgIjAuMDA1ODksIDAuMDA2MDY2LCAwLjAwNjExNCwgMC4wMDYxMzMsIDAuMDA2MTUsIDAuMDA2MTU5LCAwLjAwNjE2NyIsIFwKLSAgICAgICAgICAiMC4wMDU4NzksIDAuMDA2MDUxLCAwLjAwNjEwMywgMC4wMDYxMjQsIDAuMDA2MTQxLCAwLjAwNjE1MSwgMC4wMDYxNiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA3NzA4LCAwLjAwNzkwMSwgMC4wMDc5MjUsIDAuMDA3OTMyLCAwLjAwNzkzOSwgMC4wMDc5NDIsIDAuMDA3OTQ1IiwgXAotICAgICAgICAgICIwLjAwNzY3OSwgMC4wMDc4ODYsIDAuMDA3OTEyLCAwLjAwNzkyLCAwLjAwNzkyNiwgMC4wMDc5MywgMC4wMDc5MzMiLCBcCi0gICAgICAgICAgIjAuMDA3NjIzLCAwLjAwNzg0NiwgMC4wMDc4OCwgMC4wMDc4OSwgMC4wMDc4OTksIDAuMDA3OTAzLCAwLjAwNzkwNyIsIFwKLSAgICAgICAgICAiMC4wMDc1NjUsIDAuMDA3ODA0LCAwLjAwNzg0NywgMC4wMDc4NjEsIDAuMDA3ODczLCAwLjAwNzg3OSwgMC4wMDc4ODQiLCBcCi0gICAgICAgICAgIjAuMDA3NTM5LCAwLjAwNzc3OCwgMC4wMDc4MjcsIDAuMDA3ODQyLCAwLjAwNzg1NiwgMC4wMDc4NjMsIDAuMDA3ODciLCBcCi0gICAgICAgICAgIjAuMDA3NDgxLCAwLjAwNzczMiwgMC4wMDc3OTEsIDAuMDA3ODEsIDAuMDA3ODI4LCAwLjAwNzgzNywgMC4wMDc4NDYiLCBcCi0gICAgICAgICAgIjAuMDA3NDcsIDAuMDA3NzA2LCAwLjAwNzc2NSwgMC4wMDc3ODcsIDAuMDA3ODA4LCAwLjAwNzgxOCwgMC4wMDc4MjkiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IEFPMjJYNCAqCi0gKiAtLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKEFPMjJYNCkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjIyMTc5NzsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQTApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDgwNjc4MjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA4MDIzOTY7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwODA2NzgyOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDMwNiwgMC4wMDAzMDYsIDAuMDAwMzA2LCAwLjAwMDMwNiwgMC4wMDAzMDYsIDAuMDAwMzA2LCAwLjAwMDMwNiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDMxNSwgMC4wMDAzMDksIDAuMDAwMzA4LCAwLjAwMDMwOCwgMC4wMDAzMDgsIDAuMDAwMzA4LCAwLjAwMDMwNyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQTEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDg2MDE4MjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA4NTI4MjI7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwODYwMTgyOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDEzOSwgMC4wMDAxMzksIDAuMDAwMTM5LCAwLjAwMDEzOSwgMC4wMDAxMzksIDAuMDAwMTM5LCAwLjAwMDEzOSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDM0OCwgMC4wMDAzNDgsIDAuMDAwMzQ4LCAwLjAwMDM0OCwgMC4wMDAzNDgsIDAuMDAwMzQ4LCAwLjAwMDM0OCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQjApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDgxOTc0NjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA4MTk3NDY7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwODE3MzEyOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDMwNiwgMC4wMDAzMDYsIDAuMDAwMzA2LCAwLjAwMDMwNiwgMC4wMDAzMDYsIDAuMDAwMzA2LCAwLjAwMDMwNiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDMxNSwgMC4wMDAzMDksIDAuMDAwMzA4LCAwLjAwMDMwNywgMC4wMDAzMDcsIDAuMDAwMzA3LCAwLjAwMDMwNyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQjEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDg5MDgxNjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA4OTAzMTM7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwODkwODE2OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDEzMywgMC4wMDAxMzMsIDAuMDAwMTMzLCAwLjAwMDEzMywgMC4wMDAxMzMsIDAuMDAwMTMzLCAwLjAwMDEzMyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDM0NywgMC4wMDAzNDgsIDAuMDAwMzQ4LCAwLjAwMDM0OCwgMC4wMDAzNDgsIDAuMDAwMzQ4LCAwLjAwMDM0OCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjUwOTk3NzsKLSAgICBmdW5jdGlvbiA6ICIoKEEwIEExKSsoQjAgQjEpKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTAiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTcyOTM1LCAwLjMxNDI1NiwgMC40NDIwNTgsIDAuNTMyOTQxLCAwLjY3ODIxNiwgMC44MDUxNjUsIDAuOTg2NDU5IiwgXAotICAgICAgICAgICIwLjE4NDMxLCAwLjMyNTYwNywgMC40NTM0MDEsIDAuNTQ0MzI4LCAwLjY4OTUxNSwgMC44MTY1MDQsIDAuOTk3NzY4IiwgXAotICAgICAgICAgICIwLjE5NzgwMiwgMC4zMzkwODQsIDAuNDY2ODkyLCAwLjU1Nzc5MSwgMC43MDMwMjEsIDAuODMwMDQsIDEuMDExMjUiLCBcCi0gICAgICAgICAgIjAuMjExMjQ4LCAwLjM1MjUyNywgMC40ODAzMzksIDAuNTcxMjU4LCAwLjcxNjQ2LCAwLjg0MzQ3MiwgMS4wMjQ2OSIsIFwKLSAgICAgICAgICAiMC4yMjQ2LCAwLjM2NTg4NywgMC40OTM2ODUsIDAuNTg0NTg1LCAwLjcyOTg3NywgMC44NTY5LCAxLjAzODA2IiwgXAotICAgICAgICAgICIwLjI0NjAyNiwgMC4zODczMDksIDAuNTE1MTIzLCAwLjYwNjAwNiwgMC43NTEyOCwgMC44NzgyNzcsIDEuMDU5NDgiLCBcCi0gICAgICAgICAgIjAuMjY0NjI4LCAwLjQwNTg2OSwgMC41MzM3MTUsIDAuNjI0NjAzLCAwLjc2OTg2NywgMC44OTY4ODcsIDEuMDc4MDkiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODIwNjYsIDAuMzIzMjIxLCAwLjU3NTE5NSwgMC43NTc4OTQsIDEuMDUyNiwgMS4zMTAxMiwgMS42Nzg3NSIsIFwKLSAgICAgICAgICAiMC4wODE5MzUsIDAuMzIzMjEyLCAwLjU3NTU1OSwgMC43NTkxMTcsIDEuMDUyNTksIDEuMzEwMjMsIDEuNjc4MjkiLCBcCi0gICAgICAgICAgIjAuMDgxODUzLCAwLjMyMzExNywgMC41NzU1MDIsIDAuNzU3ODk2LCAxLjA1MjU3LCAxLjMxMDE0LCAxLjY3ODQ1IiwgXAotICAgICAgICAgICIwLjA4MTg1MywgMC4zMjMwNzMsIDAuNTc1NTA0LCAwLjc1NzQ3MywgMS4wNTI1NiwgMS4zMTAzNCwgMS42NzgwMiIsIFwKLSAgICAgICAgICAiMC4wODE5MTIsIDAuMzIzMjM0LCAwLjU3NTUyLCAwLjc1Nzc5NSwgMS4wNTI4NCwgMS4zMTA0NywgMS42NzgyNyIsIFwKLSAgICAgICAgICAiMC4wODE4NjIsIDAuMzIzMTk1LCAwLjU3NTEwNywgMC43NTc4MjQsIDEuMDUyMzksIDEuMzEwNDcsIDEuNjc4NTMiLCBcCi0gICAgICAgICAgIjAuMDgxODg5LCAwLjMyMzA1NCwgMC41NzU2NDgsIDAuNzU4MTU5LCAxLjA1MjUyLCAxLjMxMDUsIDEuNjc4NjIiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNjc3NTQsIDAuMzI0NDczLCAwLjQ3MDc5NSwgMC41NzUwMzIsIDAuNzQxNjk4LCAwLjg4NzM4MiwgMS4wOTU0NSIsIFwKLSAgICAgICAgICAiMC4xNzk1MTcsIDAuMzM2MjM3LCAwLjQ4MjU1NywgMC41ODY3OTMsIDAuNzUzNDYzLCAwLjg5OTE0NSwgMS4xMDcyMSIsIFwKLSAgICAgICAgICAiMC4xOTM4OTgsIDAuMzUwNjM5LCAwLjQ5NjkyNywgMC42MDExNjcsIDAuNzY3ODIyLCAwLjkxMzUwMywgMS4xMjE2MiIsIFwKLSAgICAgICAgICAiMC4yMDczOCwgMC4zNjQxMjcsIDAuNTEwNDU5LCAwLjYxNDcwMywgMC43ODEzNTEsIDAuOTI3MDQsIDEuMTM1MTQiLCBcCi0gICAgICAgICAgIjAuMjIwNDY2LCAwLjM3NzIsIDAuNTIzNDk4LCAwLjYyNzcwNiwgMC43OTQzODIsIDAuOTQwMTIxLCAxLjE0ODIiLCBcCi0gICAgICAgICAgIjAuMjQwNjg5LCAwLjM5NzQyNiwgMC41NDM3MywgMC42NDgwMDcsIDAuODE0NjE3LCAwLjk2MDM1NCwgMS4xNjg0MyIsIFwKLSAgICAgICAgICAiMC4yNTgwMjMsIDAuNDE0ODE1LCAwLjU2MTE0NywgMC42NjUzOSwgMC44MzIwNjcsIDAuOTc3NzUxLCAxLjE4NTgyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDgwMjkyLCAwLjM1NzM0NywgMC42NDMwNTIsIDAuODUwNTQxLCAxLjE4MTY5LCAxLjQ3MTg0LCAxLjg4NzQ3IiwgXAotICAgICAgICAgICIwLjA4MDI3OSwgMC4zNTczNCwgMC42NDM2NjEsIDAuODUwNTEsIDEuMTgxNzEsIDEuNDcxODUsIDEuODg3NDYiLCBcCi0gICAgICAgICAgIjAuMDgwMjMyLCAwLjM1NzU0NiwgMC42NDQ0NCwgMC44NDkxNTQsIDEuMTgwOTIsIDEuNDcxMjEsIDEuODgzNzUiLCBcCi0gICAgICAgICAgIjAuMDgwMDQsIDAuMzU3MzY5LCAwLjY0MzgzMiwgMC44NTAxMjUsIDEuMTgxNzYsIDEuNDcxOTYsIDEuODg2MDIiLCBcCi0gICAgICAgICAgIjAuMDgwMTk0LCAwLjM1NzUxOCwgMC42NDM0MjQsIDAuODQ5NTg5LCAxLjE4MTgsIDEuNDcxNTEsIDEuODg2ODIiLCBcCi0gICAgICAgICAgIjAuMDgwMTQ4LCAwLjM1NzUwNywgMC42NDI3OTUsIDAuODQ4MzU5LCAxLjE4MTc5LCAxLjQ3MTU3LCAxLjg4NjgiLCBcCi0gICAgICAgICAgIjAuMDc5OTgyLCAwLjM1NzMwNSwgMC42NDI4NDYsIDAuODQ5MTk4LCAxLjE4MTY3LCAxLjQ3MTg2LCAxLjg4NzQyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkExIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE2ODE0LCAwLjMwOTQxOSwgMC40MzcyMywgMC41MjgxMjgsIDAuNjczMzg1LCAwLjgwMDQxLCAwLjk4MTYwNiIsIFwKLSAgICAgICAgICAiMC4xNzgxNTMsIDAuMzE5NDQ5LCAwLjQ0NzI0MywgMC41MzgxOSwgMC42ODM0MiwgMC44MTA0NTMsIDAuOTkxNjA1IiwgXAotICAgICAgICAgICIwLjE5MTE0NCwgMC4zMzI0MiwgMC40NjAyNDMsIDAuNTUxMTMzLCAwLjY5NjM2MSwgMC44MjM0MywgMS4wMDQ2MiIsIFwKLSAgICAgICAgICAiMC4yMDQxNDIsIDAuMzQ1NDQxLCAwLjQ3MzI3LCAwLjU2NDE1LCAwLjcwOTQwOSwgMC44MzY0NDEsIDEuMDE3NjQiLCBcCi0gICAgICAgICAgIjAuMjE3NDkzLCAwLjM1ODczNiwgMC40ODY1ODIsIDAuNTc3NDY0LCAwLjcyMjczLCAwLjg0OTc0MSwgMS4wMzA5NSIsIFwKLSAgICAgICAgICAiMC4yMzk2OTIsIDAuMzgwOTMzLCAwLjUwODc3NSwgMC41OTk2NjQsIDAuNzQ0OTI4LCAwLjg3MTk1MSwgMS4wNTMxNSIsIFwKLSAgICAgICAgICAiMC4yNTg3ODMsIDAuNDAwMDM0LCAwLjUyNzg1OSwgMC42MTg3NDYsIDAuNzY0MDIyLCAwLjg5MTAzMSwgMS4wNzIyNCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4MjA1NywgMC4zMjMxMiwgMC41NzU1OTgsIDAuNzU3ODQ0LCAxLjA1MjYsIDEuMzEwNTIsIDEuNjc4NzMiLCBcCi0gICAgICAgICAgIjAuMDgyMDM0LCAwLjMyMzI0NSwgMC41NzU1MSwgMC43NTkxNTUsIDEuMDUyOCwgMS4zMTA0OSwgMS42NzgzMiIsIFwKLSAgICAgICAgICAiMC4wODE5OTYsIDAuMzIzMDg0LCAwLjU3NjI5NiwgMC43NTc3NTksIDEuMDUyNiwgMS4zMTA0NiwgMS42Nzg2OSIsIFwKLSAgICAgICAgICAiMC4wODIxNTMsIDAuMzIzMDg5LCAwLjU3NTYwOCwgMC43NTc4MDIsIDEuMDUyNDMsIDEuMzEwNDgsIDEuNjc4NjIiLCBcCi0gICAgICAgICAgIjAuMDgxODU5LCAwLjMyMzIxMywgMC41NzUyMiwgMC43NTc4NTEsIDEuMDUyNCwgMS4zMTA1LCAxLjY3ODY0IiwgXAotICAgICAgICAgICIwLjA4MTgzNiwgMC4zMjMxOSwgMC41NzU2MjUsIDAuNzU4MTkyLCAxLjA1MjM5LCAxLjMxMDQ5LCAxLjY3ODYxIiwgXAotICAgICAgICAgICIwLjA4MTgzMiwgMC4zMjMxODgsIDAuNTc1MTA2LCAwLjc1ODEyNiwgMS4wNTI0NSwgMS4zMTA0NywgMS42Nzg1MiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE2MTUsIDAuMzE3NjQ0LCAwLjQ2Mzc5NCwgMC41Njc5NTksIDAuNzM0NTE0LCAwLjg4MDE0NywgMS4wODgxOCIsIFwKLSAgICAgICAgICAiMC4xNzMyNjUsIDAuMzI5NTQ5LCAwLjQ3NTY5NSwgMC41Nzk4NiwgMC43NDY0MjUsIDAuODkyMDUyLCAxLjEwMDA2IiwgXAotICAgICAgICAgICIwLjE4NzY4MywgMC4zNDM4ODgsIDAuNDkwMDAzLCAwLjU5NDE1MywgMC43NjA3MTgsIDAuOTA2MzksIDEuMTE0NTEiLCBcCi0gICAgICAgICAgIjAuMjAxMTE5LCAwLjM1NzMzNSwgMC41MDM0NTEsIDAuNjA3NTk3LCAwLjc3NDE3NSwgMC45MTk3OSwgMS4xMjc4NiIsIFwKLSAgICAgICAgICAiMC4yMTQwOTIsIDAuMzcwMjYyLCAwLjUxNjM4NSwgMC42MjA1ODcsIDAuNzg3MTA3LCAwLjkzMjc0LCAxLjE0MDc4IiwgXAotICAgICAgICAgICIwLjIzNDIxMSwgMC4zOTA0NDMsIDAuNTM2NTkxLCAwLjY0MDc1NiwgMC44MDcyNjksIDAuOTUyOTY3LCAxLjE2MDk4IiwgXAotICAgICAgICAgICIwLjI1MTU4MywgMC40MDc3NzksIDAuNTUzOTIxLCAwLjY1ODEyNiwgMC44MjQ2NTIsIDAuOTcwMjksIDEuMTc4MzMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzk0NTQsIDAuMzU2NjcyLCAwLjY0MzA1NCwgMC44NDg2NjEsIDEuMTgxMSwgMS40NzEzMSwgMS44ODM3NSIsIFwKLSAgICAgICAgICAiMC4wNzk1OTQsIDAuMzU2NjM4LCAwLjY0MjE4MywgMC44NDk0MDgsIDEuMTgxMSwgMS40NzE0NywgMS44ODY4NCIsIFwKLSAgICAgICAgICAiMC4wNzk1NDgsIDAuMzU2NzgsIDAuNjQzMTMzLCAwLjg1MDUyMywgMS4xODEwOCwgMS40Njk2MSwgMS44ODUxNiIsIFwKLSAgICAgICAgICAiMC4wNzk1NjYsIDAuMzU2NzkyLCAwLjY0MzgzOCwgMC44NDkxNCwgMS4xODEwOCwgMS40NzE3NiwgMS44ODM1NiIsIFwKLSAgICAgICAgICAiMC4wNzk1NDIsIDAuMzU2NDgyLCAwLjY0MzA5NywgMC44NDg4NjMsIDEuMTgxMDksIDEuNDcxMzYsIDEuODg1MTMiLCBcCi0gICAgICAgICAgIjAuMDc5NDYzLCAwLjM1NjYxMSwgMC42NDIwMTgsIDAuODQ4MjA1LCAxLjE4MTQ5LCAxLjQ3MTEzLCAxLjg4NjU4IiwgXAotICAgICAgICAgICIwLjA3OTM5NCwgMC4zNTY0MzIsIDAuNjQzMTU4LCAwLjg0ODg5OSwgMS4xODEwMiwgMS40NzEzNCwgMS44ODM1NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNDc4NjQsIDAuMjg2NzU0LCAwLjQxMzc3MSwgMC41MDQyOTcsIDAuNjQ5MTUzLCAwLjc3NTg2NywgMC45NTY5MDIiLCBcCi0gICAgICAgICAgIjAuMTU5NDA5LCAwLjI5ODM0MywgMC40MjUzNDEsIDAuNTE1ODYyLCAwLjY2MDc0MiwgMC43ODc0MjUsIDAuOTY4NTA0IiwgXAotICAgICAgICAgICIwLjE3Mjg4NSwgMC4zMTE3OTcsIDAuNDM4ODEsIDAuNTI5MzMyLCAwLjY3NDE5MywgMC44MDA5MDUsIDAuOTgxOTQ4IiwgXAotICAgICAgICAgICIwLjE4NjE5MSwgMC4zMjUxMjMsIDAuNDUyMTMxLCAwLjU0MjY1NCwgMC42ODc1MjcsIDAuODE0MjI0LCAwLjk5NTI3NyIsIFwKLSAgICAgICAgICAiMC4xOTk0NjYsIDAuMzM4NDAxLCAwLjQ2NTQyNiwgMC41NTU5NTEsIDAuNzAwNzY2LCAwLjgyNzU0LCAxLjAwODU1IiwgXAotICAgICAgICAgICIwLjIyMDY2NiwgMC4zNTk2MTgsIDAuNDg2NjQsIDAuNTc3MTc3LCAwLjcyMjAwMywgMC44NDg3NzgsIDEuMDI5NzgiLCBcCi0gICAgICAgICAgIjAuMjM4OTE2LCAwLjM3NzkxMywgMC41MDQ5MzUsIDAuNTk1NDk4LCAwLjc0MDM1LCAwLjg2NzAyOSwgMS4wNDgwMiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3ODY5NSwgMC4zMjAwMzgsIDAuNTcyNDU0LCAwLjc1NTA1NSwgMS4wNTEyOCwgMS4zMDc2OCwgMS42NzIxMiIsIFwKLSAgICAgICAgICAiMC4wNzg4ODYsIDAuMzIwMDgzLCAwLjU3MjQ5OCwgMC43NTUwOSwgMS4wNDkyMywgMS4zMDc2LCAxLjY3NjEzIiwgXAotICAgICAgICAgICIwLjA3ODc5LCAwLjMyMDA1OSwgMC41NzI0MDgsIDAuNzU0NjYxLCAxLjA0NzU1LCAxLjMwNzY0LCAxLjY3NjE3IiwgXAotICAgICAgICAgICIwLjA3ODgxNywgMC4zMTk5MjMsIDAuNTcyNDU0LCAwLjc1NDY5NSwgMS4wNDk1OSwgMS4zMDc2LCAxLjY3Mjk0IiwgXAotICAgICAgICAgICIwLjA3ODgwMSwgMC4zMTk5MzksIDAuNTczMjEyLCAwLjc1NDY1LCAxLjA0OTU0LCAxLjMwNzY5LCAxLjY3MzExIiwgXAotICAgICAgICAgICIwLjA3ODk1NiwgMC4zMTk5NjMsIDAuNTcxOTg3LCAwLjc1NTUyOSwgMS4wNDc5MSwgMS4zMDc3MiwgMS42NzI4NSIsIFwKLSAgICAgICAgICAiMC4wNzkyMDIsIDAuMzE5OTkyLCAwLjU3MjM2OCwgMC43NTYwMjQsIDEuMDQ5NTUsIDEuMzA3NDYsIDEuNjc2MDUiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNDg4MDUsIDAuMzA1NTQ2LCAwLjQ1MTg0NiwgMC41NTYwNTEsIDAuNzIyNzE0LCAwLjg2ODQzMywgMS4wNzY1NCIsIFwKLSAgICAgICAgICAiMC4xNTkwMDUsIDAuMzE1NzI3LCAwLjQ2MjA0NywgMC41NjYyODUsIDAuNzMyOTUyLCAwLjg3ODYzNCwgMS4wODY3IiwgXAotICAgICAgICAgICIwLjE3MTk2NywgMC4zMjg2OTYsIDAuNDc0OTk0LCAwLjU3OTI3LCAwLjc0NTg4LCAwLjg5MTU3MiwgMS4wOTk2OSIsIFwKLSAgICAgICAgICAiMC4xODQ5MjQsIDAuMzQxNzQ0LCAwLjQ4ODA0NywgMC41OTIyOTMsIDAuNzU4OTIzLCAwLjkwNDY2MSwgMS4xMTI3NCIsIFwKLSAgICAgICAgICAiMC4xOTg3MDEsIDAuMzU1NTA2LCAwLjUwMTgzOCwgMC42MDYwOCwgMC43NzI3NTcsIDAuOTE4NDQyLCAxLjEyNjUyIiwgXAotICAgICAgICAgICIwLjIyMDE3NCwgMC4zNzY5NTEsIDAuNTIzMzE2LCAwLjYyNzYwNCwgMC43OTQyMjQsIDAuOTM5OTIxLCAxLjE0ODAzIiwgXAotICAgICAgICAgICIwLjIzODk5MSwgMC4zOTU2NzcsIDAuNTQyMDIyLCAwLjY0NjI3NCwgMC44MTI5MzUsIDAuOTU4NjYsIDEuMTY2NzQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODAyNTIsIDAuMzU3NTQ4LCAwLjY0NDYwNywgMC44NTA4NjksIDEuMTgwOTcsIDEuNDcxOTQsIDEuODg2ODEiLCBcCi0gICAgICAgICAgIjAuMDgwMjM1LCAwLjM1NzM1MiwgMC42NDMwODQsIDAuODUwMjg0LCAxLjE4MTY5LCAxLjQ3MTgzLCAxLjg4NzQ3IiwgXAotICAgICAgICAgICIwLjA4MDIxNSwgMC4zNTc1MTQsIDAuNjQzNjYsIDAuODUwNjM3LCAxLjE4MTc5LCAxLjQ3MjA0LCAxLjg4Njg5IiwgXAotICAgICAgICAgICIwLjA4MDE3OSwgMC4zNTc2MTksIDAuNjQ0NTQ3LCAwLjg0ODk1MSwgMS4xODE5MiwgMS40NzE3NSwgMS44ODcxNCIsIFwKLSAgICAgICAgICAiMC4wODAwNDEsIDAuMzU3MzE4LCAwLjY0Mjg2LCAwLjg0OTE3NSwgMS4xODE2NywgMS40NzE4NCwgMS44ODczNyIsIFwKLSAgICAgICAgICAiMC4wNzk5ODEsIDAuMzU3MzI4LCAwLjY0MzQwNywgMC44NTA1MzMsIDEuMTgxNzQsIDEuNDcyMDMsIDEuODg0MTciLCBcCi0gICAgICAgICAgIjAuMDgwMjIxLCAwLjM1Nzc1OCwgMC42NDQ2MzcsIDAuODQ5MjksIDEuMTgxODEsIDEuNDcxNzUsIDEuODg3MSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNDI3NjYsIDAuMjgxNjgzLCAwLjQwODcwMywgMC40OTkyMjgsIDAuNjQ0MDg1LCAwLjc3MDgwNSwgMC45NTE4MzYiLCBcCi0gICAgICAgICAgIjAuMTUzMTE2LCAwLjI5MjAzMywgMC40MTkwNDgsIDAuNTA5NTcyLCAwLjY1NDQzMywgMC43ODExNDksIDAuOTYyMTkyIiwgXAotICAgICAgICAgICIwLjE2NjQzNCwgMC4zMDUzODQsIDAuNDMyMzksIDAuNTIyOTM1LCAwLjY2Nzc0MiwgMC43OTQ0NjUsIDAuOTc1NTk0IiwgXAotICAgICAgICAgICIwLjE3OTU1LCAwLjMxODQ3OCwgMC40NDU0ODcsIDAuNTM2MDQ2LCAwLjY4MDksIDAuODA3NTU4LCAwLjk4ODU4IiwgXAotICAgICAgICAgICIwLjE5MjkxLCAwLjMzMTg1LCAwLjQ1ODg3MywgMC41NDk0MDUsIDAuNjk0Mjg2LCAwLjgyMTA5MiwgMS4wMDE5MyIsIFwKLSAgICAgICAgICAiMC4yMTQ1NjgsIDAuMzUzNTUxLCAwLjQ4MDU5LCAwLjU3MTEyMywgMC43MTU5NzgsIDAuODQyNzIsIDEuMDIzNzQiLCBcCi0gICAgICAgICAgIjAuMjMzNzIzLCAwLjM3MjcyLCAwLjQ5OTc2MywgMC41OTAzMTgsIDAuNzM1MTUyLCAwLjg2MTg0NiwgMS4wNDI4NyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3ODc1NywgMC4zMTk5ODIsIDAuNTcyNDQ5LCAwLjc1NTAwNSwgMS4wNDk2MSwgMS4zMDc2NywgMS42NzMzIiwgXAotICAgICAgICAgICIwLjA3ODcxOCwgMC4zMTk5MzgsIDAuNTcyMzg2LCAwLjc1NDczLCAxLjA1MDg4LCAxLjMwNzY1LCAxLjY3MzIzIiwgXAotICAgICAgICAgICIwLjA3ODg2OCwgMC4zMTk5NTEsIDAuNTcyNDM0LCAwLjc1NTAxMywgMS4wNDk1NywgMS4zMDc0MywgMS42NzE1NyIsIFwKLSAgICAgICAgICAiMC4wNzg2OTEsIDAuMzIwMDM1LCAwLjU3MjM4OSwgMC43NTYwMTcsIDEuMDQ5MzIsIDEuMzA3MjYsIDEuNjc2MTEiLCBcCi0gICAgICAgICAgIjAuMDc4NzkzLCAwLjMxOTkyOCwgMC41NzIzOTQsIDAuNzU0NzYxLCAxLjA0OTU1LCAxLjMwNjkyLCAxLjY3NTkyIiwgXAotICAgICAgICAgICIwLjA3OTE5NCwgMC4zMjAwMTQsIDAuNTcyMzg2LCAwLjc1NTIyOCwgMS4wNDgwMiwgMS4zMDc2NiwgMS42NzYwOSIsIFwKLSAgICAgICAgICAiMC4wNzkyNzIsIDAuMzIwMDQ4LCAwLjU3MzE5MiwgMC43NTQzODcsIDEuMDUwODksIDEuMzA2OSwgMS42NzUxNyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE0MjAwMSwgMC4yOTgyMzEsIDAuNDQ0MzY5LCAwLjU0ODUzNCwgMC43MTUwOTUsIDAuODYwNzIxLCAxLjA2ODc1IiwgXAotICAgICAgICAgICIwLjE1MjQ0NywgMC4zMDg1NjQsIDAuNDU0Njk4LCAwLjU1ODg1OCwgMC43MjU0MjUsIDAuODcxMDUsIDEuMDc5MDUiLCBcCi0gICAgICAgICAgIjAuMTY1MTgsIDAuMzIxNDUyLCAwLjQ2NzU2NiwgMC41NzE2ODgsIDAuNzM4Mjc4LCAwLjg4Mzk2NSwgMS4wOTE5OSIsIFwKLSAgICAgICAgICAiMC4xNzgyODgsIDAuMzM0NDY3LCAwLjQ4MDYwNywgMC41ODQ3NywgMC43NTEzNDUsIDAuODk2OTcyLCAxLjEwNDk4IiwgXAotICAgICAgICAgICIwLjE5MjAwOCwgMC4zNDgxNzcsIDAuNDk0MzI1LCAwLjU5ODQ5MSwgMC43NjUwNzIsIDAuOTEwNywgMS4xMTg3MSIsIFwKLSAgICAgICAgICAiMC4yMTM1LCAwLjM2OTYyNSwgMC41MTU3NjgsIDAuNjE5OTIsIDAuNzg2NDk5LCAwLjkzMjI2LCAxLjE0MDI5IiwgXAotICAgICAgICAgICIwLjIzMjExLCAwLjM4ODIxMSwgMC41MzQzODcsIDAuNjM4NTY0LCAwLjgwNTE0NCwgMC45NTA3NzksIDEuMTU4ODEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzk0NTcsIDAuMzU2NTI5LCAwLjY0MjAzMiwgMC44NDkyMDgsIDEuMTgxMSwgMS40NzE0NywgMS44ODQwNyIsIFwKLSAgICAgICAgICAiMC4wNzk0NjYsIDAuMzU2NTI5LCAwLjY0MjA4NSwgMC44NDkxMTMsIDEuMTgxMDMsIDEuNDcxNDgsIDEuODg2ODEiLCBcCi0gICAgICAgICAgIjAuMDc5MzgyLCAwLjM1NjY2MywgMC42NDMwNzMsIDAuODUwMTI1LCAxLjE4MTA2LCAxLjQ3MDcyLCAxLjg4Njc5IiwgXAotICAgICAgICAgICIwLjA3OTMzNCwgMC4zNTY1NTMsIDAuNjQyMjE5LCAwLjg0ODkxNiwgMS4xODEwNywgMS40NzExNCwgMS44ODY3MSIsIFwKLSAgICAgICAgICAiMC4wNzkyOTIsIDAuMzU2NTA3LCAwLjY0Mjk3MiwgMC44NDg2OTUsIDEuMTgxMDQsIDEuNDcxMSwgMS44ODY2IiwgXAotICAgICAgICAgICIwLjA3OTMwNywgMC4zNTY2NDksIDAuNjQyMzY0LCAwLjg1MDM3MSwgMS4xODEwNywgMS40NzE1NSwgMS44ODQ5OCIsIFwKLSAgICAgICAgICAiMC4wNzk0ODUsIDAuMzU2NjAxLCAwLjY0MjU2MSwgMC44NDkxODMsIDEuMTgwOTYsIDEuNDcxMjcsIDEuODg1NyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDI3NCwgMC4wMDQ0MDksIDAuMDA0NDM0LCAwLjAwNDQ0LCAwLjAwNDQ0OCwgMC4wMDQ0NSwgMC4wMDQ0NTMiLCBcCi0gICAgICAgICAgIjAuMDA0MjU4LCAwLjAwNDM5NCwgMC4wMDQ0MTgsIDAuMDA0NDI1LCAwLjAwNDQzMiwgMC4wMDQ0MzUsIDAuMDA0NDQiLCBcCi0gICAgICAgICAgIjAuMDA0MjQ2LCAwLjAwNDM4MywgMC4wMDQ0MDcsIDAuMDA0NDE0LCAwLjAwNDQyMiwgMC4wMDQ0MjUsIDAuMDA0NDI4IiwgXAotICAgICAgICAgICIwLjAwNDIzNiwgMC4wMDQzNzMsIDAuMDA0Mzk4LCAwLjAwNDQwNSwgMC4wMDQ0MTIsIDAuMDA0NDE2LCAwLjAwNDQyIiwgXAotICAgICAgICAgICIwLjAwNDIyNywgMC4wMDQzNjMsIDAuMDA0Mzg5LCAwLjAwNDM5NywgMC4wMDQ0MDUsIDAuMDA0NDA5LCAwLjAwNDQxMiIsIFwKLSAgICAgICAgICAiMC4wMDQyMTgsIDAuMDA0MzUyLCAwLjAwNDM3OCwgMC4wMDQzODgsIDAuMDA0Mzk2LCAwLjAwNDM5OSwgMC4wMDQ0MDQiLCBcCi0gICAgICAgICAgIjAuMDA0MjA5LCAwLjAwNDM0MSwgMC4wMDQzNywgMC4wMDQzNzksIDAuMDA0Mzg4LCAwLjAwNDM5MiwgMC4wMDQzOTYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjI0MSwgMC4wMDY0MjEsIDAuMDA2NDUsIDAuMDA2NDYsIDAuMDA2NDY4LCAwLjAwNjQ3MiwgMC4wMDY0NzYiLCBcCi0gICAgICAgICAgIjAuMDA2MjMzLCAwLjAwNjQxMiwgMC4wMDY0NDIsIDAuMDA2NDUxLCAwLjAwNjQ1OSwgMC4wMDY0NjMsIDAuMDA2NDY3IiwgXAotICAgICAgICAgICIwLjAwNjIyNiwgMC4wMDY0MDcsIDAuMDA2NDM2LCAwLjAwNjQ0NiwgMC4wMDY0NTQsIDAuMDA2NDU4LCAwLjAwNjQ2MiIsIFwKLSAgICAgICAgICAiMC4wMDYyMjMsIDAuMDA2NDAyLCAwLjAwNjQzMiwgMC4wMDY0NDIsIDAuMDA2NDUsIDAuMDA2NDU1LCAwLjAwNjQ1OSIsIFwKLSAgICAgICAgICAiMC4wMDYyMTcsIDAuMDA2Mzk3LCAwLjAwNjQyOSwgMC4wMDY0MzgsIDAuMDA2NDQ3LCAwLjAwNjQ1MiwgMC4wMDY0NTYiLCBcCi0gICAgICAgICAgIjAuMDA2MjA4LCAwLjAwNjM4OCwgMC4wMDY0MjEsIDAuMDA2NDMyLCAwLjAwNjQ0MSwgMC4wMDY0NDYsIDAuMDA2NDUiLCBcCi0gICAgICAgICAgIjAuMDA2MjAzLCAwLjAwNjM4MSwgMC4wMDY0MTYsIDAuMDA2NDI3LCAwLjAwNjQzNywgMC4wMDY0NDMsIDAuMDA2NDQ3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0MjcxLCAwLjAwNDQwOCwgMC4wMDQ0MzIsIDAuMDA0NDQsIDAuMDA0NDQ3LCAwLjAwNDQ1LCAwLjAwNDQ1MyIsIFwKLSAgICAgICAgICAiMC4wMDQyNTUsIDAuMDA0MzkxLCAwLjAwNDQxNSwgMC4wMDQ0MjIsIDAuMDA0NDMsIDAuMDA0NDMyLCAwLjAwNDQzNiIsIFwKLSAgICAgICAgICAiMC4wMDQyMzksIDAuMDA0Mzc0LCAwLjAwNDM5OSwgMC4wMDQ0MDcsIDAuMDA0NDE2LCAwLjAwNDQxOCwgMC4wMDQ0MjEiLCBcCi0gICAgICAgICAgIjAuMDA0MjI4LCAwLjAwNDM2MiwgMC4wMDQzODcsIDAuMDA0Mzk2LCAwLjAwNDQwNCwgMC4wMDQ0MDcsIDAuMDA0NDExIiwgXAotICAgICAgICAgICIwLjAwNDIxOCwgMC4wMDQzNSwgMC4wMDQzNzcsIDAuMDA0Mzg3LCAwLjAwNDM5NSwgMC4wMDQ0MDEsIDAuMDA0NDAyIiwgXAotICAgICAgICAgICIwLjAwNDIwOCwgMC4wMDQzMzcsIDAuMDA0MzY3LCAwLjAwNDM3NywgMC4wMDQzODYsIDAuMDA0MzkxLCAwLjAwNDM5NyIsIFwKLSAgICAgICAgICAiMC4wMDQyMDksIDAuMDA0MzI5LCAwLjAwNDM1OSwgMC4wMDQzNjksIDAuMDA0MzgsIDAuMDA0Mzg1LCAwLjAwNDM4OSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1OTE1LCAwLjAwNjA5MiwgMC4wMDYxMTksIDAuMDA2MTI4LCAwLjAwNjEzNSwgMC4wMDYxMzksIDAuMDA2MTQzIiwgXAotICAgICAgICAgICIwLjAwNTkxLCAwLjAwNjA4OSwgMC4wMDYxMTcsIDAuMDA2MTI1LCAwLjAwNjEzMiwgMC4wMDYxMzYsIDAuMDA2MTM5IiwgXAotICAgICAgICAgICIwLjAwNTkwMiwgMC4wMDYwODEsIDAuMDA2MTA4LCAwLjAwNjExNywgMC4wMDYxMjQsIDAuMDA2MTI4LCAwLjAwNjEzMSIsIFwKLSAgICAgICAgICAiMC4wMDU4OTMsIDAuMDA2MDcyLCAwLjAwNjEwMSwgMC4wMDYxMDksIDAuMDA2MTE3LCAwLjAwNjEyMSwgMC4wMDYxMjQiLCBcCi0gICAgICAgICAgIjAuMDA1ODg1LCAwLjAwNjA2NCwgMC4wMDYwOTMsIDAuMDA2MTAyLCAwLjAwNjExLCAwLjAwNjExNCwgMC4wMDYxMTgiLCBcCi0gICAgICAgICAgIjAuMDA1ODcyLCAwLjAwNjA1MiwgMC4wMDYwODMsIDAuMDA2MDkzLCAwLjAwNjEwMSwgMC4wMDYxMDYsIDAuMDA2MTEiLCBcCi0gICAgICAgICAgIjAuMDA1ODYyLCAwLjAwNjA0MSwgMC4wMDYwNzUsIDAuMDA2MDg1LCAwLjAwNjA5NCwgMC4wMDYwOTksIDAuMDA2MTA0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzNTkzLCAwLjAwMzcwMSwgMC4wMDM3MTYsIDAuMDAzNzE4LCAwLjAwMzcyMiwgMC4wMDM3MjMsIDAuMDAzNzI1IiwgXAotICAgICAgICAgICIwLjAwMzU4NiwgMC4wMDM2OTYsIDAuMDAzNzA5LCAwLjAwMzcxMywgMC4wMDM3MTgsIDAuMDAzNzIsIDAuMDAzNzIiLCBcCi0gICAgICAgICAgIjAuMDAzNTcsIDAuMDAzNjgzLCAwLjAwMzY5NiwgMC4wMDM3MDIsIDAuMDAzNzAzLCAwLjAwMzcwNSwgMC4wMDM3MDgiLCBcCi0gICAgICAgICAgIjAuMDAzNTU0LCAwLjAwMzY2OCwgMC4wMDM2ODMsIDAuMDAzNjg4LCAwLjAwMzY5MiwgMC4wMDM2OTMsIDAuMDAzNjk0IiwgXAotICAgICAgICAgICIwLjAwMzU0MSwgMC4wMDM2NTcsIDAuMDAzNjczLCAwLjAwMzY3OCwgMC4wMDM2ODIsIDAuMDAzNjg0LCAwLjAwMzY4NSIsIFwKLSAgICAgICAgICAiMC4wMDM1MjcsIDAuMDAzNjQsIDAuMDAzNjU4LCAwLjAwMzY2NCwgMC4wMDM2NjksIDAuMDAzNjcxLCAwLjAwMzY3MyIsIFwKLSAgICAgICAgICAiMC4wMDM1MDksIDAuMDAzNjI4LCAwLjAwMzY1MSwgMC4wMDM2NTYsIDAuMDAzNjYyLCAwLjAwMzY2NSwgMC4wMDM2NjciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNTQ0NiwgMC4wMDU2MjYsIDAuMDA1NjU1LCAwLjAwNTY2NSwgMC4wMDU2NzMsIDAuMDA1Njc3LCAwLjAwNTY4MSIsIFwKLSAgICAgICAgICAiMC4wMDU0MzMsIDAuMDA1NjEzLCAwLjAwNTY0MywgMC4wMDU2NTIsIDAuMDA1NjYsIDAuMDA1NjY0LCAwLjAwNTY2OCIsIFwKLSAgICAgICAgICAiMC4wMDU0MjIsIDAuMDA1NiwgMC4wMDU2MzEsIDAuMDA1NjQxLCAwLjAwNTY1LCAwLjAwNTY1NSwgMC4wMDU2NTkiLCBcCi0gICAgICAgICAgIjAuMDA1NDExLCAwLjAwNTU4OCwgMC4wMDU2MjEsIDAuMDA1NjMyLCAwLjAwNTY0MSwgMC4wMDU2NDcsIDAuMDA1NjUxIiwgXAotICAgICAgICAgICIwLjAwNTQwMywgMC4wMDU1NzgsIDAuMDA1NjEzLCAwLjAwNTYyNSwgMC4wMDU2MzUsIDAuMDA1NjQsIDAuMDA1NjQ1IiwgXAotICAgICAgICAgICIwLjAwNTM5LCAwLjAwNTU2MiwgMC4wMDU2MDEsIDAuMDA1NjE0LCAwLjAwNTYyNiwgMC4wMDU2MzIsIDAuMDA1NjM4IiwgXAotICAgICAgICAgICIwLjAwNTM4LCAwLjAwNTU1MSwgMC4wMDU1OTIsIDAuMDA1NjA2LCAwLjAwNTYyLCAwLjAwNTYyNywgMC4wMDU2MzMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDM1OTEsIDAuMDAzNzA0LCAwLjAwMzcxOSwgMC4wMDM3MjUsIDAuMDAzNzI5LCAwLjAwMzcyOSwgMC4wMDM3MzIiLCBcCi0gICAgICAgICAgIjAuMDAzNTgyLCAwLjAwMzY5NSwgMC4wMDM3MTIsIDAuMDAzNzE0LCAwLjAwMzcyMSwgMC4wMDM3MjEsIDAuMDAzNzIyIiwgXAotICAgICAgICAgICIwLjAwMzU2MSwgMC4wMDM2NzgsIDAuMDAzNjk1LCAwLjAwMzcsIDAuMDAzNzA1LCAwLjAwMzcwNiwgMC4wMDM3MDciLCBcCi0gICAgICAgICAgIjAuMDAzNTQ0LCAwLjAwMzY2MywgMC4wMDM2OCwgMC4wMDM2ODUsIDAuMDAzNjksIDAuMDAzNjkyLCAwLjAwMzY5NSIsIFwKLSAgICAgICAgICAiMC4wMDM1MywgMC4wMDM2NDcsIDAuMDAzNjY4LCAwLjAwMzY3NCwgMC4wMDM2OCwgMC4wMDM2ODIsIDAuMDAzNjg1IiwgXAotICAgICAgICAgICIwLjAwMzUxMywgMC4wMDM2MjgsIDAuMDAzNjUyLCAwLjAwMzY2LCAwLjAwMzY2OCwgMC4wMDM2NywgMC4wMDM2NzMiLCBcCi0gICAgICAgICAgIjAuMDAzNTAxLCAwLjAwMzYxOSwgMC4wMDM2NDUsIDAuMDAzNjUzLCAwLjAwMzY2MSwgMC4wMDM2NjUsIDAuMDAzNjY5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDUxMTIsIDAuMDA1Mjg5LCAwLjAwNTMxNiwgMC4wMDUzMjUsIDAuMDA1MzMzLCAwLjAwNTMzNiwgMC4wMDUzNCIsIFwKLSAgICAgICAgICAiMC4wMDUxMDQsIDAuMDA1MjgyLCAwLjAwNTMwOSwgMC4wMDUzMTcsIDAuMDA1MzI1LCAwLjAwNTMyOSwgMC4wMDUzMzIiLCBcCi0gICAgICAgICAgIjAuMDA1MDg4LCAwLjAwNTI2NiwgMC4wMDUyOTQsIDAuMDA1MzAzLCAwLjAwNTMxMSwgMC4wMDUzMTYsIDAuMDA1MzE5IiwgXAotICAgICAgICAgICIwLjAwNTA3NSwgMC4wMDUyNSwgMC4wMDUyODEsIDAuMDA1MjkxLCAwLjAwNTI5OSwgMC4wMDUzMDQsIDAuMDA1MzA4IiwgXAotICAgICAgICAgICIwLjAwNTA2MiwgMC4wMDUyMzYsIDAuMDA1MjcsIDAuMDA1MjgsIDAuMDA1MjksIDAuMDA1Mjk1LCAwLjAwNTMiLCBcCi0gICAgICAgICAgIjAuMDA1MDQ0LCAwLjAwNTIxNywgMC4wMDUyNTQsIDAuMDA1MjY3LCAwLjAwNTI3OCwgMC4wMDUyODQsIDAuMDA1Mjg5IiwgXAotICAgICAgICAgICIwLjAwNTAzNCwgMC4wMDUyMDUsIDAuMDA1MjQ1LCAwLjAwNTI1OCwgMC4wMDUyNzEsIDAuMDA1Mjc4LCAwLjAwNTI4NCIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IEFPSTIxWDQgKgotICogLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoQU9JMjFYNCkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjMyNjI5MTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQTApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMzE4MDQzOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMzE2NTM0OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMzE4MDQzOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTIyNSwgMC4wMDEyMjMsIDAuMDAxMjIzLCAwLjAwMTIyMywgMC4wMDEyMjMsIDAuMDAxMjIyLCAwLjAwMTIyMiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTI3MSwgMC4wMDEyMzgsIDAuMDAxMjM0LCAwLjAwMTIzMywgMC4wMDEyMzIsIDAuMDAxMjMxLCAwLjAwMTIzMSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQTEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMzA2MzA0OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMzAzNjY2OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMzA2MzA0OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDY2NywgMC4wMDA2NjYsIDAuMDAwNjY1LCAwLjAwMDY2NSwgMC4wMDA2NjUsIDAuMDAwNjY0LCAwLjAwMDY2MyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTM5LCAwLjAwMTM5MSwgMC4wMDEzOTEsIDAuMDAxMzkxLCAwLjAwMTM5MiwgMC4wMDEzOTMsIDAuMDAxMzkzIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAyODYxOTI7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAyODYxMTI7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAyODYxOTI7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzAyLCAwLjAwMDMwMiwgMC4wMDAzMDIsIDAuMDAwMzAyLCAwLjAwMDMwMiwgMC4wMDAzMDIsIDAuMDAwMzAyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyMDc2LCAwLjAwMjA3NywgMC4wMDIwNzcsIDAuMDAyMDc2LCAwLjAwMjA3NiwgMC4wMDIwNzUsIDAuMDAyMDc2Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMjYxMTExOwotICAgIGZ1bmN0aW9uIDogIighKChBMCBBMSkrQjApKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTAiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDcyNTUsIDAuMzM1MTEyLCAwLjU5NzAzLCAwLjc4NDE4NSwgMS4wODM0MSwgMS4zNDU0MiwgMS43MjAxNSIsIFwKLSAgICAgICAgICAiMC4wODQzMDEsIDAuMzQ2ODkzLCAwLjYwODg3LCAwLjc5NjMyNiwgMS4wOTU2NiwgMS4zNTc4OSwgMS43MzE2NiIsIFwKLSAgICAgICAgICAiMC4wOTgyNzksIDAuMzYwOTgzLCAwLjYyMzA3MiwgMC44MTAwNjcsIDEuMTA5NTYsIDEuMzcyMTcsIDEuNzQ1ODMiLCBcCi0gICAgICAgICAgIjAuMTExNDA1LCAwLjM3NDI4OCwgMC42MzYzNiwgMC44MjM1MjMsIDEuMTIzMjgsIDEuMzg0ODYsIDEuNzU4OSIsIFwKLSAgICAgICAgICAiMC4xMjQwNzQsIDAuMzg2OTIyLCAwLjY0OTE2LCAwLjgzNjEyNiwgMS4xMzU2OCwgMS4zOTc2NywgMS43NzE4OCIsIFwKLSAgICAgICAgICAiMC4xNDM4OTYsIDAuNDA2OTE4LCAwLjY2ODk0MywgMC44NTYwODEsIDEuMTU2MDIsIDEuNDE3NDMsIDEuNzkyNDkiLCBcCi0gICAgICAgICAgIjAuMTYwNDM1LCAwLjQyNDM1OSwgMC42ODY1NzcsIDAuODczNjY1LCAxLjE3MzYyLCAxLjQzNDg5LCAxLjgwOTU2Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTA2OTM0LCAwLjYyMDkxMSwgMS4xMzMzMywgMS41MDEwNywgMi4wODc3LCAyLjYwMTMsIDMuMzMzMjEiLCBcCi0gICAgICAgICAgIjAuMTA2ODY4LCAwLjYyMDE5OSwgMS4xMzQyNywgMS41MDAyLCAyLjA4NjYyLCAyLjYwMDEyLCAzLjMzMzM2IiwgXAotICAgICAgICAgICIwLjEwNzAxMywgMC42MjAyMTgsIDEuMTMzNjksIDEuNDk5OTgsIDIuMDg3MDUsIDIuNjAwNzQsIDMuMzMzMjUiLCBcCi0gICAgICAgICAgIjAuMTA3ODI1LCAwLjYyMDMyMiwgMS4xMzQzMSwgMS41MDAyNSwgMi4wODcwOSwgMi42MDAwNiwgMy4zMzMzNCIsIFwKLSAgICAgICAgICAiMC4xMDk4OCwgMC42MjAyMDUsIDEuMTMzOTIsIDEuNTAwMjYsIDIuMDg2NzgsIDIuNjAwNjMsIDMuMzMzMjQiLCBcCi0gICAgICAgICAgIjAuMTE0NzU5LCAwLjYyMTAwMSwgMS4xMzQyNCwgMS40OTk5OSwgMi4wODcwMSwgMi42MDAyLCAzLjMzNDE1IiwgXAotICAgICAgICAgICIwLjEyMDMwNCwgMC42MjEyMjEsIDEuMTMzNjQsIDEuNTAxMTMsIDIuMDg3MDEsIDIuNjAwMTEsIDMuMzMzMTIiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODE5NDYsIDAuMzcxNzMyLCAwLjY1ODkzNSwgMC44NjQzMzQsIDEuMTkxODksIDEuNDc5MjUsIDEuODg5NCIsIFwKLSAgICAgICAgICAiMC4wOTMxNTEsIDAuMzgzMDQxLCAwLjY3MDMwMiwgMC44NzUzNjMsIDEuMjAzNzcsIDEuNDkwMDUsIDEuOTAwODkiLCBcCi0gICAgICAgICAgIjAuMTA2NTA2LCAwLjM5NjYwNSwgMC42ODQwMTUsIDAuODg5MTYyLCAxLjIxNjk5LCAxLjUwNDE0LCAxLjkxNDE1IiwgXAotICAgICAgICAgICIwLjExOTg3NSwgMC40MTAxNTEsIDAuNjk3NTM3LCAwLjkwMjQ2NywgMS4yMzA0NiwgMS41MTcyLCAxLjkyNzU1IiwgXAotICAgICAgICAgICIwLjEzMzI3NywgMC40MjM1NDIsIDAuNzExMDI1LCAwLjkxNjM3LCAxLjI0NDQ5LCAxLjUzMTI0LCAxLjk0MTQiLCBcCi0gICAgICAgICAgIjAuMTU0NTQ2LCAwLjQ0NTE4NSwgMC43MzI4MSwgMC45Mzc3ODEsIDEuMjY1NzIsIDEuNTUzMDEsIDEuOTYyODciLCBcCi0gICAgICAgICAgIjAuMTczMTM5LCAwLjQ2MzAyNSwgMC43NTE1NjMsIDAuOTU2OTIxLCAxLjI4NDY5LCAxLjU3MTYzLCAxLjk4MTY0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTIzNTk2LCAwLjY3MzE2MSwgMS4yMjI0OSwgMS42MTM3MSwgMi4yNDAxMywgMi43ODg3LCAzLjU3MjA5IiwgXAotICAgICAgICAgICIwLjEyMzMxNSwgMC42NzMxNjksIDEuMjIyMiwgMS42MTM0MiwgMi4yNDAzNCwgMi43ODgyNywgMy41NzIwOSIsIFwKLSAgICAgICAgICAiMC4xMjMyOTksIDAuNjczNDQ0LCAxLjIyMTQ4LCAxLjYxNDA0LCAyLjIzOTYzLCAyLjc4OSwgMy41NzA5NiIsIFwKLSAgICAgICAgICAiMC4xMjQ1NDYsIDAuNjczNDE5LCAxLjIyMjE5LCAxLjYxMzQzLCAyLjIzOTg3LCAyLjc4ODMyLCAzLjU3MTc2IiwgXAotICAgICAgICAgICIwLjEyNzA3NCwgMC42NzMzOTgsIDEuMjIxNTEsIDEuNjEzNjIsIDIuMjQwMTEsIDIuNzg3ODcsIDMuNTcxNyIsIFwKLSAgICAgICAgICAiMC4xMzI5MjYsIDAuNjczMDM2LCAxLjIyMTQsIDEuNjEzMjksIDIuMjM5ODksIDIuNzg3ODEsIDMuNTcyNTUiLCBcCi0gICAgICAgICAgIjAuMTM5NjQ2LCAwLjY3Mjg5LCAxLjIyMTY4LCAxLjYxMzA4LCAyLjIzOTg4LCAyLjc4Nzg3LCAzLjU3MDciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY3ODU2LCAwLjMzMDYxNiwgMC41OTM2MjUsIDAuNzgwODM4LCAxLjA4MTIyLCAxLjM0MzU5LCAxLjcxOTY3IiwgXAotICAgICAgICAgICIwLjA3OTY0NiwgMC4zNDI2OTcsIDAuNjA1NTY1LCAwLjc5MzE4NCwgMS4wOTMzOSwgMS4zNTU2NywgMS43MzIwNCIsIFwKLSAgICAgICAgICAiMC4wOTM1MiwgMC4zNTY5NTksIDAuNjE5NTY5LCAwLjgwNzM1MSwgMS4xMDc0MywgMS4zNzA5MiwgMS43NDU1NCIsIFwKLSAgICAgICAgICAiMC4xMDYzOSwgMC4zNjk5NDIsIDAuNjMyNjE4LCAwLjgyMDI1OSwgMS4xMjA2OSwgMS4zODMwNSwgMS43NTk2NCIsIFwKLSAgICAgICAgICAiMC4xMTkxMjQsIDAuMzgyNzE5LCAwLjY0NTMzOSwgMC44MzI5OTksIDEuMTMzNDMsIDEuMzk2MTEsIDEuNzcxNTIiLCBcCi0gICAgICAgICAgIjAuMTM4NzkxLCAwLjQwMjY4OSwgMC42NjU1OTksIDAuODUzNTU3LCAxLjE1MzYyLCAxLjQxNiwgMS43OTI0NSIsIFwKLSAgICAgICAgICAiMC4xNTQ4MDMsIDAuNDE5ODU4LCAwLjY4MjgzOSwgMC44NzA0MTIsIDEuMTcxNDEsIDEuNDMzMzEsIDEuODA5MTUiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDE5OTEsIDAuNjE4NjQ3LCAxLjEzMjExLCAxLjUwNDQsIDIuMDk1MjMsIDIuNjA5MzksIDMuMzQwMDciLCBcCi0gICAgICAgICAgIjAuMTAxOTk5LCAwLjYxNzM1OSwgMS4xMzU4LCAxLjUwNDc5LCAyLjA5NTI0LCAyLjYxMTU4LCAzLjMzOTU5IiwgXAotICAgICAgICAgICIwLjEwMjExMiwgMC42MTY4MDYsIDEuMTM1NDQsIDEuNTAwMjMsIDIuMDk1MDIsIDIuNjA0MTMsIDMuMzYyOTkiLCBcCi0gICAgICAgICAgIjAuMTAzMTAzLCAwLjYxODY0NCwgMS4xMzQyOSwgMS41MDkzMywgMi4wOTUwNSwgMi42MDkwOCwgMy4zNDAxNCIsIFwKLSAgICAgICAgICAiMC4xMDUxOTksIDAuNjE2ODksIDEuMTM0NzcsIDEuNTA5MzEsIDIuMDk1MTEsIDIuNjA2NjIsIDMuMzYzIiwgXAotICAgICAgICAgICIwLjExMDMwNiwgMC42MTY4MzIsIDEuMTMyMDgsIDEuNDk5NzcsIDIuMDg5NDEsIDIuNjExMzQsIDMuMzM4NzMiLCBcCi0gICAgICAgICAgIjAuMTE2MDkzLCAwLjYxNzYxLCAxLjEzMjcxLCAxLjUwMzQ3LCAyLjA4ODQzLCAyLjYxMTQ3LCAzLjM2MzE3Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc3NTY2LCAwLjM2NzI5OCwgMC42NTQ2MDUsIDAuODU5ODg3LCAxLjE4NzQ4LCAxLjQ3NDc5LCAxLjg4Mzc0IiwgXAotICAgICAgICAgICIwLjA4NzU1MSwgMC4zNzczOTcsIDAuNjY0NzYxLCAwLjg2OTgwMSwgMS4xOTc4MSwgMS40ODQ3MywgMS44OTQxIiwgXAotICAgICAgICAgICIwLjEwMDQyMywgMC4zOTA1MTcsIDAuNjc3ODQ1LCAwLjg4MzA5OCwgMS4yMTExMywgMS40OTgyNCwgMS45MDc5NSIsIFwKLSAgICAgICAgICAiMC4xMTQxMDYsIDAuNDA0MjQ5LCAwLjY5MTY0MywgMC44OTYzOTksIDEuMjI0MzksIDEuNTExNzksIDEuOTIxMTkiLCBcCi0gICAgICAgICAgIjAuMTI3NDQsIDAuNDE2ODI4LCAwLjcwNDI5NiwgMC45MDkyNTIsIDEuMjM3NDgsIDEuNTI0ODMsIDEuOTMzODYiLCBcCi0gICAgICAgICAgIjAuMTQ5MTI4LCAwLjQzODAzNiwgMC43MjU1OCwgMC45MzA0NzcsIDEuMjU4NDEsIDEuNTQ1NTUsIDEuOTU2MTkiLCBcCi0gICAgICAgICAgIjAuMTY4MTYzLCAwLjQ1NjU0MiwgMC43NDQwMDcsIDAuOTQ4OTUsIDEuMjc3MjksIDEuNTY0MzIsIDEuOTc0MjMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMjM2NzQsIDAuNjczNTk1LCAxLjIyMTczLCAxLjYxMzE0LCAyLjI0MDA1LCAyLjc4Nzg4LCAzLjU3MjEzIiwgXAotICAgICAgICAgICIwLjEyMzI2MSwgMC42NzI5NTIsIDEuMjIxNjUsIDEuNjEzNDQsIDIuMjM5NzEsIDIuNzg5MTgsIDMuNTcxNDYiLCBcCi0gICAgICAgICAgIjAuMTIzNzk4LCAwLjY3MzM3NCwgMS4yMjI0NiwgMS42MTQwMywgMi4yMzk5NywgMi43ODgzMiwgMy41NzA4OCIsIFwKLSAgICAgICAgICAiMC4xMjY0NzMsIDAuNjczMzg1LCAxLjIyMTYzLCAxLjYxNDA3LCAyLjIzOTYsIDIuNzg5MDIsIDMuNTcxNzYiLCBcCi0gICAgICAgICAgIjAuMTMwOTk3LCAwLjY3MzM2NSwgMS4yMjIxNCwgMS42MTM0MywgMi4yNDA4NSwgMi43ODg3MiwgMy41NzA5NyIsIFwKLSAgICAgICAgICAiMC4xNDA0NTksIDAuNjczMDkxLCAxLjIyMTczLCAxLjYxMzM3LCAyLjI0MDA4LCAyLjc4NzcsIDMuNTcyNDkiLCBcCi0gICAgICAgICAgIjAuMTUwNDgyLCAwLjY3MzMzOCwgMS4yMjE2NiwgMS42MTM5NCwgMi4yMzk2MSwgMi43ODk0MiwgMy41NzE2MSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTg5MzksIDAuMzIxNTQ1LCAwLjU4MzUyOCwgMC43NzA3NjUsIDEuMDcwMiwgMS4zMzI1NSwgMS43MDY0NyIsIFwKLSAgICAgICAgICAiMC4wNjg5NywgMC4zMzE5ODcsIDAuNTk0MTA0LCAwLjc4MTAwOSwgMS4wODA1NiwgMS4zNDI4NSwgMS43MTY4NyIsIFwKLSAgICAgICAgICAiMC4wODE3NzgsIDAuMzQ0ODU5LCAwLjYwNjk5NSwgMC43OTQxMjMsIDEuMDkzOTcsIDEuMzU1MzQsIDEuNzMwMTUiLCBcCi0gICAgICAgICAgIjAuMDk1NDE4LCAwLjM1ODA5NCwgMC42MjAyMTEsIDAuODA3MDYsIDEuMTA2ODksIDEuMzY5MzYsIDEuNzQyNjUiLCBcCi0gICAgICAgICAgIjAuMTA4NzcsIDAuMzcxMTA5LCAwLjYzMzI1OCwgMC44MjA0MDYsIDEuMTIwMTYsIDEuMzgyMzMsIDEuNzU1NzciLCBcCi0gICAgICAgICAgIjAuMTMwMDE2LCAwLjM5MTk5NiwgMC42NTQxNjIsIDAuODQxNDUxLCAxLjE0MDczLCAxLjQwMzEyLCAxLjc3NjkiLCBcCi0gICAgICAgICAgIjAuMTQ2ODU5LCAwLjQxMDM1NCwgMC42NzI1NDMsIDAuODU5NTc0LCAxLjE1OTEsIDEuNDIxMDUsIDEuNzk1ODciKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDY3MDEsIDAuNjIwMzgyLCAxLjEzMzM0LCAxLjUwMDg3LCAyLjA5NDk2LCAyLjYwMjk5LCAzLjM2MzA2IiwgXAotICAgICAgICAgICIwLjEwNjM1MiwgMC42MjEwMDUsIDEuMTMzNTgsIDEuNDk5OTYsIDIuMDg5OTgsIDIuNjA0MDUsIDMuMzYzMDIiLCBcCi0gICAgICAgICAgIjAuMTA4MDM4LCAwLjYyMTA2OCwgMS4xMzUzMywgMS41MDkzNywgMi4wODg3OSwgMi42MDk5NSwgMy4zMzk4NiIsIFwKLSAgICAgICAgICAiMC4xMTI0LCAwLjYyMDkyMSwgMS4xMzUyOCwgMS41MDExNywgMi4wOTAyNiwgMi42MTM2NSwgMy4zNDYzOSIsIFwKLSAgICAgICAgICAiMC4xMTg2MzMsIDAuNjIxMDE1LCAxLjEzNTI3LCAxLjUwNDM5LCAyLjA4ODg2LCAyLjYwMzczLCAzLjM0NjYiLCBcCi0gICAgICAgICAgIjAuMTMwNjQyLCAwLjYyMDg0MiwgMS4xMzQ2NywgMS41MDQ2LCAyLjA5NDg3LCAyLjYwNDAyLCAzLjM0NjgiLCBcCi0gICAgICAgICAgIjAuMTQyNTY0LCAwLjYyMTU5NSwgMS4xMzUzNywgMS41MDA5NSwgMi4wOTMyOSwgMi42MTE0OSwgMy4zNDAxIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDMyODU1LCAwLjE3ODcxMywgMC4zMjQzOTksIDAuNDI4MzkyLCAwLjU5NDkyLCAwLjc0MDY0NCwgMC45NDg4MTgiLCBcCi0gICAgICAgICAgIjAuMDQ0NTIsIDAuMTkwNjAyLCAwLjMzNjI1NiwgMC40NDAyOSwgMC42MDY3MzEsIDAuNzUyNDEsIDAuOTYwNDg2IiwgXAotICAgICAgICAgICIwLjA1OTYzNiwgMC4yMDUyLCAwLjM1MDYyOSwgMC40NTQ3NTEsIDAuNjIxMDQ1LCAwLjc2NjgwNiwgMC45NzQ2MTciLCBcCi0gICAgICAgICAgIjAuMDc0NTc3LCAwLjIxOTk1NywgMC4zNjU2MzMsIDAuNDY5NjIxLCAwLjYzNjM4OCwgMC43ODE2MDMsIDAuOTg3MzM1IiwgXAotICAgICAgICAgICIwLjA4ODY1OSwgMC4yMzUwMTQsIDAuMzc5OTczLCAwLjQ4NDA4MywgMC42NTA2NjMsIDAuNzk2MjM4LCAxLjAwNDYxIiwgXAotICAgICAgICAgICIwLjEwODUyLCAwLjI1OTMzMiwgMC40MDQwNjYsIDAuNTA3ODE2LCAwLjY3NDI0OCwgMC44MTk5MjQsIDEuMDI3OTYiLCBcCi0gICAgICAgICAgIjAuMTI0MzkxLCAwLjI4MDE2NiwgMC40MjQ4NiwgMC41Mjg2MTYsIDAuNjk0ODc2LCAwLjg0MDQ3LCAxLjA0ODUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjA3MjQsIDAuMzQ5NDU2LCAwLjYzODcyLCAwLjg0NTMwNiwgMS4xNzYyMSwgMS40NjYzNywgMS44NzkzOSIsIFwKLSAgICAgICAgICAiMC4wNjExMjUsIDAuMzQ5NDc5LCAwLjYzODY0MywgMC44NDU0MDgsIDEuMTc2NTUsIDEuNDY1ODIsIDEuODc5NTEiLCBcCi0gICAgICAgICAgIjAuMDY1Mjc4LCAwLjM0OTQzLCAwLjYzODY1OSwgMC44NDU1MTgsIDEuMTc2MDQsIDEuNDY1NzIsIDEuODgwNjgiLCBcCi0gICAgICAgICAgIjAuMDcyMDA0LCAwLjM0OTQ0OSwgMC42Mzg3NDQsIDAuODQ1MjYxLCAxLjE3NTk1LCAxLjQ2NTg4LCAxLjg3ODYyIiwgXAotICAgICAgICAgICIwLjA4MDAzNiwgMC4zNDk3NjgsIDAuNjM4Njc0LCAwLjg0NTMwNiwgMS4xNzYwNSwgMS40Njc2NCwgMS44Nzk2NyIsIFwKLSAgICAgICAgICAiMC4wOTQ5MzMsIDAuMzUyNzQsIDAuNjM4NjUzLCAwLjg0NTM2OCwgMS4xNzYyMiwgMS40NjU4OSwgMS44Nzk5MSIsIFwKLSAgICAgICAgICAiMC4xMDg4OTgsIDAuMzU3NDk1LCAwLjYzOTA5NywgMC44NDU0MTgsIDEuMTc2MzEsIDEuNDY1ODUsIDEuODc5NTEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDc4NjgsIDAuMDA3ODY5LCAwLjAwNzg2NywgMC4wMDc4NjgsIDAuMDA3ODYzLCAwLjAwNzg2NywgMC4wMDc4NzEiLCBcCi0gICAgICAgICAgIjAuMDA3ODI5LCAwLjAwNzg0NywgMC4wMDc4NDgsIDAuMDA3ODQ4LCAwLjAwNzg0OSwgMC4wMDc4NDYsIDAuMDA3ODQ0IiwgXAotICAgICAgICAgICIwLjAwNzgwNiwgMC4wMDc4MzgsIDAuMDA3ODQxLCAwLjAwNzg0MSwgMC4wMDc4NDIsIDAuMDA3ODQxLCAwLjAwNzg0MSIsIFwKLSAgICAgICAgICAiMC4wMDc3OTEsIDAuMDA3ODI3LCAwLjAwNzgzMiwgMC4wMDc4MzQsIDAuMDA3ODMzLCAwLjAwNzgzNCwgMC4wMDc4MzQiLCBcCi0gICAgICAgICAgIjAuMDA3NzgsIDAuMDA3ODI4LCAwLjAwNzgzNiwgMC4wMDc4MzksIDAuMDA3ODM3LCAwLjAwNzgzOSwgMC4wMDc4NDEiLCBcCi0gICAgICAgICAgIjAuMDA3NzY1LCAwLjAwNzgyMiwgMC4wMDc4MzIsIDAuMDA3ODM1LCAwLjAwNzgzNCwgMC4wMDc4MzYsIDAuMDA3ODQxIiwgXAotICAgICAgICAgICIwLjAwNzc1OCwgMC4wMDc4MTcsIDAuMDA3ODI4LCAwLjAwNzgzMiwgMC4wMDc4MzUsIDAuMDA3ODM1LCAwLjAwNzgzNiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyMjkzLCAwLjAwMjI5NCwgMC4wMDIyOTMsIDAuMDAyMjkxLCAwLjAwMjI5LCAwLjAwMjI4OCwgMC4wMDIyODciLCBcCi0gICAgICAgICAgIjAuMDAyMjE3LCAwLjAwMjIzNSwgMC4wMDIyMzYsIDAuMDAyMjM2LCAwLjAwMjIzNCwgMC4wMDIyMywgMC4wMDIyMzIiLCBcCi0gICAgICAgICAgIjAuMDAyMTcsIDAuMDAyMjEzLCAwLjAwMjIxNywgMC4wMDIyMTgsIDAuMDAyMjE5LCAwLjAwMjIxNywgMC4wMDIyMTYiLCBcCi0gICAgICAgICAgIjAuMDAyMTM5LCAwLjAwMjE5OSwgMC4wMDIyMDUsIDAuMDAyMjA4LCAwLjAwMjIwOSwgMC4wMDIyMSwgMC4wMDIyMDYiLCBcCi0gICAgICAgICAgIjAuMDAyMTE4LCAwLjAwMjE4OSwgMC4wMDIyLCAwLjAwMjIwMSwgMC4wMDIyMDUsIDAuMDAyMjA2LCAwLjAwMjIwNSIsIFwKLSAgICAgICAgICAiMC4wMDIwOTEsIDAuMDAyMTc2LCAwLjAwMjE5MSwgMC4wMDIxOTQsIDAuMDAyMTk5LCAwLjAwMjE5OSwgMC4wMDIxOTgiLCBcCi0gICAgICAgICAgIjAuMDAyMDc2LCAwLjAwMjE1OCwgMC4wMDIxODMsIDAuMDAyMTg4LCAwLjAwMjE5MywgMC4wMDIxOTUsIDAuMDAyMTk2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2NjQ1LCAwLjAwNjY1NywgMC4wMDY2NTgsIDAuMDA2NjU4LCAwLjAwNjY1OCwgMC4wMDY2NjQsIDAuMDA2NjU4IiwgXAotICAgICAgICAgICIwLjAwNjYxOSwgMC4wMDY2NzIsIDAuMDA2NjcxLCAwLjAwNjY3NywgMC4wMDY2NzgsIDAuMDA2Njc5LCAwLjAwNjY3OSIsIFwKLSAgICAgICAgICAiMC4wMDY1NzgsIDAuMDA2NjYzLCAwLjAwNjY3MywgMC4wMDY2NzYsIDAuMDA2Njc5LCAwLjAwNjY4LCAwLjAwNjY4MSIsIFwKLSAgICAgICAgICAiMC4wMDY1NDgsIDAuMDA2NjUyLCAwLjAwNjY1OSwgMC4wMDY2NjQsIDAuMDA2NjY5LCAwLjAwNjY3LCAwLjAwNjY3MiIsIFwKLSAgICAgICAgICAiMC4wMDY1MjQsIDAuMDA2NjQyLCAwLjAwNjY2NSwgMC4wMDY2NjcsIDAuMDA2NjczLCAwLjAwNjY3MywgMC4wMDY2NzgiLCBcCi0gICAgICAgICAgIjAuMDA2NDk1LCAwLjAwNjYyOSwgMC4wMDY2NTMsIDAuMDA2NjYxLCAwLjAwNjY3LCAwLjAwNjY3MiwgMC4wMDY2NzQiLCBcCi0gICAgICAgICAgIjAuMDA2NDg0LCAwLjAwNjYxOCwgMC4wMDY2NDYsIDAuMDA2NjU1LCAwLjAwNjY2MywgMC4wMDY2NywgMC4wMDY2NzIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjI5MiwgMC4wMDIyOTIsIDAuMDAyMjksIDAuMDAyMjk2LCAwLjAwMjI5MywgMC4wMDIyNzksIDAuMDAyMjg3IiwgXAotICAgICAgICAgICIwLjAwMjIwNCwgMC4wMDIyMzEsIDAuMDAyMjMzLCAwLjAwMjIzNCwgMC4wMDIyMjcsIDAuMDAyMjMxLCAwLjAwMjIyNCIsIFwKLSAgICAgICAgICAiMC4wMDIxNDksIDAuMDAyMjA1LCAwLjAwMjIxMSwgMC4wMDIyMTMsIDAuMDAyMjEzLCAwLjAwMjIxMywgMC4wMDIyMTUiLCBcCi0gICAgICAgICAgIjAuMDAyMTE2LCAwLjAwMjE5MiwgMC4wMDIyMDEsIDAuMDAyMjAzLCAwLjAwMjIwNSwgMC4wMDIyMDQsIDAuMDAyMjAyIiwgXAotICAgICAgICAgICIwLjAwMjA5NCwgMC4wMDIxNzgsIDAuMDAyMTkyLCAwLjAwMjE5NiwgMC4wMDIxOTksIDAuMDAyMTk4LCAwLjAwMjE5NyIsIFwKLSAgICAgICAgICAiMC4wMDIwNzQsIDAuMDAyMTYzLCAwLjAwMjE4MSwgMC4wMDIxODYsIDAuMDAyMTkxLCAwLjAwMjE5MywgMC4wMDIxOTMiLCBcCi0gICAgICAgICAgIjAuMDAyMDY0LCAwLjAwMjE1MywgMC4wMDIxNzQsIDAuMDAyMTgsIDAuMDAyMTg2LCAwLjAwMjE4OCwgMC4wMDIxODkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDU1MDcsIDAuMDA1NTIzLCAwLjAwNTUyNCwgMC4wMDU1MjQsIDAuMDA1NTIzLCAwLjAwNTUyMiwgMC4wMDU1MjQiLCBcCi0gICAgICAgICAgIjAuMDA1NDM5LCAwLjAwNTUwOCwgMC4wMDU1MTYsIDAuMDA1NTE2LCAwLjAwNTUyLCAwLjAwNTUyLCAwLjAwNTUxOCIsIFwKLSAgICAgICAgICAiMC4wMDUzODcsIDAuMDA1NDksIDAuMDA1NTA0LCAwLjAwNTUxLCAwLjAwNTUxMiwgMC4wMDU1MTYsIDAuMDA1NTIiLCBcCi0gICAgICAgICAgIjAuMDA1MzU3LCAwLjAwNTQ3NSwgMC4wMDU0OTQsIDAuMDA1NTAxLCAwLjAwNTUwNywgMC4wMDU1MDgsIDAuMDA1NTExIiwgXAotICAgICAgICAgICIwLjAwNTMzNiwgMC4wMDU0NjMsIDAuMDA1NDg2LCAwLjAwNTQ5NiwgMC4wMDU1MDEsIDAuMDA1NTA1LCAwLjAwNTUwOCIsIFwKLSAgICAgICAgICAiMC4wMDUzMjMsIDAuMDA1NDQ0LCAwLjAwNTQ3NCwgMC4wMDU0ODQsIDAuMDA1NDk1LCAwLjAwNTQ5NywgMC4wMDU1MDEiLCBcCi0gICAgICAgICAgIjAuMDA1MzE4LCAwLjAwNTQzLCAwLjAwNTQ2NSwgMC4wMDU0NzYsIDAuMDA1NDg4LCAwLjAwNTQ5MywgMC4wMDU0OTciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDI2MywgMC4wMDAyOTEsIDAuMDAwMjk0LCAwLjAwMDI5NCwgMC4wMDAyOTUsIDAuMDAwMjk1LCAwLjAwMDI5NSIsIFwKLSAgICAgICAgICAiMC4wMDAyMTQsIDAuMDAwMzI2LCAwLjAwMDMzOCwgMC4wMDAzNDIsIDAuMDAwMzQ1LCAwLjAwMDM0NiwgMC4wMDAzNDgiLCBcCi0gICAgICAgICAgIjAuMDAwMTQ1LCAwLjAwMDMxOCwgMC4wMDAzNDEsIDAuMDAwMzQ4LCAwLjAwMDM1NCwgMC4wMDAzNTcsIDAuMDAwMzYiLCBcCi0gICAgICAgICAgIjAuMDAwMTAxLCAwLjAwMDMwMywgMC4wMDAzMzIsIDAuMDAwMzQyLCAwLjAwMDM1MiwgMC4wMDAzNTYsIDAuMDAwMzYyIiwgXAotICAgICAgICAgICIwLjAwMDA1NSwgMC4wMDAyODMsIDAuMDAwMzIxLCAwLjAwMDMzNCwgMC4wMDAzNDYsIDAuMDAwMzUyLCAwLjAwMDM1NyIsIFwKLSAgICAgICAgICAiMC4wMDAwMjcsIDAuMDAwMjYxLCAwLjAwMDMwOSwgMC4wMDAzMjQsIDAuMDAwMzM5LCAwLjAwMDM0NiwgMC4wMDAzNTMiLCBcCi0gICAgICAgICAgIjAuMDAwMDE1LCAwLjAwMDI0MiwgMC4wMDAyOTYsIDAuMDAwMzE1LCAwLjAwMDMzMSwgMC4wMDAzNDEsIDAuMDAwMzQ5Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IEFPSTIyMVgxICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChBT0kyMjFYMSkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjExODg0OTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQTApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDc5OTAwNzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA3OTM5NDI7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNzk5MDA3OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDMwNiwgMC4wMDAzMDYsIDAuMDAwMzA2LCAwLjAwMDMwNiwgMC4wMDAzMDYsIDAuMDAwMzA2LCAwLjAwMDMwNiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDMxNCwgMC4wMDAzMDksIDAuMDAwMzA4LCAwLjAwMDMwOCwgMC4wMDAzMDgsIDAuMDAwMzA3LCAwLjAwMDMwNyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQTEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDc3ODI0NDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA3NzAwODc7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNzc4MjQ0OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDEyMiwgMC4wMDAxMjIsIDAuMDAwMTIyLCAwLjAwMDEyMiwgMC4wMDAxMjIsIDAuMDAwMTIyLCAwLjAwMDEyMiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDM0NywgMC4wMDAzNDgsIDAuMDAwMzQ4LCAwLjAwMDM0OCwgMC4wMDAzNDgsIDAuMDAwMzQ4LCAwLjAwMDM0OCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQjApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDg5Njc0ODsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA4OTI5MjY7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwODk2NzQ4OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDMwNiwgMC4wMDAzMDYsIDAuMDAwMzA2LCAwLjAwMDMwNiwgMC4wMDAzMDYsIDAuMDAwMzA2LCAwLjAwMDMwNiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDMxNSwgMC4wMDAzMDksIDAuMDAwMzA4LCAwLjAwMDMwNywgMC4wMDAzMDcsIDAuMDAwMzA3LCAwLjAwMDMwNyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQjEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDg2OTAwMzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA4NjIzMzY7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwODY5MDAzOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDEzMSwgMC4wMDAxMywgMC4wMDAxMywgMC4wMDAxMywgMC4wMDAxMywgMC4wMDAxMywgMC4wMDAxMyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDM0NywgMC4wMDAzNDgsIDAuMDAwMzQ4LCAwLjAwMDM0OCwgMC4wMDAzNDgsIDAuMDAwMzQ4LCAwLjAwMDM0OCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQzApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDg2OTk3MTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA4Njk3NjM7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwODY5OTcxOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDA3NSwgMC4wMDAwNzUsIDAuMDAwMDc1LCAwLjAwMDA3NSwgMC4wMDAwNzUsIDAuMDAwMDc1LCAwLjAwMDA3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDUxOSwgMC4wMDA1MTksIDAuMDAwNTE5LCAwLjAwMDUxOSwgMC4wMDA1MTksIDAuMDAwNTE5LCAwLjAwMDUxOSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjA0ODQzODsKLSAgICBmdW5jdGlvbiA6ICIoISgoKEEwIEExKSsoQjAgQjEpKStDMCkpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzIyMzE0LCAwLjQ1OTE0NiwgMS4yMzM0NCwgMS45MTYyMiwgMi44MjgxNywgNC42NTU1LCA1Ljc5NzM4IiwgXAotICAgICAgICAgICIwLjMzNDA0NiwgMC40NzA5MDcsIDEuMjQ1MjQsIDEuOTI3NjMsIDIuODQwMzUsIDQuNjY3MTYsIDUuODA5MDMiLCBcCi0gICAgICAgICAgIjAuMzQ4MjcsIDAuNDg1MTg5LCAxLjI1OTY2LCAxLjk0MjE0LCAyLjg1NDUsIDQuNjgxNDQsIDUuODIzMzQiLCBcCi0gICAgICAgICAgIjAuMzYxNTE1LCAwLjQ5ODQyOSwgMS4yNzI5NiwgMS45NTYyLCAyLjg2NzI5LCA0LjY5NDg5LCA1LjgzNjUxIiwgXAotICAgICAgICAgICIwLjM3NDEzMywgMC41MTEwNjcsIDEuMjg1NjYsIDEuOTY4ODksIDIuODgwMDksIDQuNzA3NTYsIDUuODQ5MTYiLCBcCi0gICAgICAgICAgIjAuMzkzMjQ3LCAwLjUzMDI0NCwgMS4zMDQ1OCwgMS45ODczMSwgMi44OTk2OCwgNC43MjY3NywgNS44Njg0NSIsIFwKLSAgICAgICAgICAiMC40MDk2MywgMC41NDY1NDksIDEuMzIwODgsIDIuMDAzNjcsIDIuOTE1NjcsIDQuNzQzMjUsIDUuODg0ODQiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuNTI4OTU3LCAwLjc5MDg5NywgMi4yNzgzMSwgMy41OTYwOCwgNS4zNTQyNSwgOC44NjU4NiwgMTEuMDU3OCIsIFwKLSAgICAgICAgICAiMC41Mjg5NjMsIDAuNzkxNDk5LCAyLjI3ODI1LCAzLjU5NTkxLCA1LjM1MzAzLCA4Ljg2NDc4LCAxMS4wNTc3IiwgXAotICAgICAgICAgICIwLjUyODk0NiwgMC43OTA5NzksIDIuMjc4NSwgMy41OTYyMSwgNS4zNTQ2OCwgOC44NjU0LCAxMS4wNTc3IiwgXAotICAgICAgICAgICIwLjUyODk2MywgMC43OTA3NTIsIDIuMjc4NDksIDMuNTk2MDksIDUuMzU1MjYsIDguODY1OTMsIDExLjA1NzUiLCBcCi0gICAgICAgICAgIjAuNTI4OTY3LCAwLjc5MDk1NiwgMi4yNzg1LCAzLjU5NjEsIDUuMzU0NDUsIDguODY1NzgsIDExLjA1NzUiLCBcCi0gICAgICAgICAgIjAuNTI5MDM1LCAwLjc5MDk4NCwgMi4yNzk1MywgMy41OTYsIDUuMzU0MTUsIDguODY0NzksIDExLjA1NzUiLCBcCi0gICAgICAgICAgIjAuNTI4NTg3LCAwLjc5MTY3NywgMi4yNzc3NywgMy41OTc2MiwgNS4zNTQ0NywgOC44NjU4MywgMTEuMDU3NSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMzYwNzIsIDAuMzM1NzY4LCAwLjg5MzQ1LCAxLjM4MzU1LCAyLjAzNTIyLCAzLjMzODQ4LCA0LjE1MzQ5IiwgXAotICAgICAgICAgICIwLjI0NzUsIDAuMzQ3MTE2LCAwLjkwNTAxOSwgMS4zOTUxNywgMi4wNDc2MywgMy4zNTEzMSwgNC4xNjU2NiIsIFwKLSAgICAgICAgICAiMC4yNjEwNTEsIDAuMzYwNzY2LCAwLjkxODU5NSwgMS40MDg1OSwgMi4wNjE0LCAzLjM2NTQ1LCA0LjE3OTQiLCBcCi0gICAgICAgICAgIjAuMjc0NjE5LCAwLjM3NDI4OCwgMC45MzIyODcsIDEuNDIyMzcsIDIuMDc0NDEsIDMuMzc4OTEsIDQuMTkyOTIiLCBcCi0gICAgICAgICAgIjAuMjg4MDU2LCAwLjM4Nzc4OSwgMC45NDU3NjQsIDEuNDM1NzIsIDIuMDg4NTksIDMuMzkyNTMsIDQuMjA2MjgiLCBcCi0gICAgICAgICAgIjAuMzA5NDY2LCAwLjQwOTIyNywgMC45NjczOTEsIDEuNDU3NTUsIDIuMTA5NTEsIDMuNDEzNSwgNC4yMjgwMSIsIFwKLSAgICAgICAgICAiMC4zMjgyMjksIDAuNDI4MTY2LCAwLjk4NjI1MSwgMS40NzYzNywgMi4xMjg5LCAzLjQzMjU5LCA0LjI0NzE0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjQwNjIyNSwgMC41OTMwMjUsIDEuNjUxMjUsIDIuNTg1LCAzLjgyNTQsIDYuMzE1OTMsIDcuODcwMTUiLCBcCi0gICAgICAgICAgIjAuNDA2MTgsIDAuNTkzMDI1LCAxLjY1MTAxLCAyLjU4NTIxLCAzLjgyOTEyLCA2LjMxNjU0LCA3Ljg3MDI1IiwgXAotICAgICAgICAgICIwLjQwNjEzMiwgMC41OTI5ODIsIDEuNjUxNDgsIDIuNTg1MTQsIDMuODI5MjIsIDYuMzE2NDEsIDcuODY5MTUiLCBcCi0gICAgICAgICAgIjAuNDA2MDk1LCAwLjU5Mjk2LCAxLjY1MTg1LCAyLjU4NTA1LCAzLjgyODA4LCA2LjMxNjQxLCA3Ljg3MDM4IiwgXAotICAgICAgICAgICIwLjQwNjAwNywgMC41OTI5NTgsIDEuNjUxNTUsIDIuNTg1MzksIDMuODI3OTgsIDYuMzE2MzgsIDcuODY4OCIsIFwKLSAgICAgICAgICAiMC40MDYzNjgsIDAuNTkyODY5LCAxLjY1MTUzLCAyLjU4NTM3LCAzLjgyODYyLCA2LjMxNjU0LCA3Ljg2OTg2IiwgXAotICAgICAgICAgICIwLjQwODA1NiwgMC41OTMwNjEsIDEuNjUxNTIsIDIuNTg1NDIsIDMuODI3OTksIDYuMzE2NjMsIDcuODcwNzQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMxMzg0MywgMC40NTA5NTgsIDEuMjI3MDQsIDEuOTExNzEsIDIuODI2MDEsIDQuNjU4NDQsIDUuODAzNTQiLCBcCi0gICAgICAgICAgIjAuMzI1ODk2LCAwLjQ2MzA1MywgMS4yMzkyLCAxLjkyMzM0LCAyLjgzODU4LCA0LjY3MDUzLCA1LjgxNTYyIiwgXAotICAgICAgICAgICIwLjM0MDEwOSwgMC40NzcyOTgsIDEuMjUzNTYsIDEuOTM3NzYsIDIuODUzLCA0LjY4NDkxLCA1LjgzIiwgXAotICAgICAgICAgICIwLjM1MzI5MSwgMC40OTA1MDQsIDEuMjY3MDEsIDEuOTUyMTEsIDIuODY1NzcsIDQuNjk4MzYsIDUuODQzMjEiLCBcCi0gICAgICAgICAgIjAuMzY1ODE1LCAwLjUwMzA4NywgMS4yNzk2LCAxLjk2NDcyLCAyLjg3ODU4LCA0LjcxMTAxLCA1Ljg1NjA5IiwgXAotICAgICAgICAgICIwLjM4NDg0LCAwLjUyMjE3MywgMS4yOTg0OSwgMS45ODI5MiwgMi44OTgzNCwgNC43MzAxMiwgNS44NzUxNyIsIFwKLSAgICAgICAgICAiMC40MDA4MDQsIDAuNTM4NDc0LCAxLjMxNDg1LCAxLjk5OTUyLCAyLjkxMzg2LCA0Ljc0NjcxLCA1Ljg5MTUyIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjUxOTgyOSwgMC43ODM0NDMsIDIuMjgwMjMsIDMuNjA4MjQsIDUuMzY0MjQsIDguODc3MjEsIDExLjA3NjMiLCBcCi0gICAgICAgICAgIjAuNTE5ODM5LCAwLjc4MjYzOCwgMi4yODA2MSwgMy42MDc3NCwgNS4zNTc5LCA4Ljg3NzM1LCAxMS4wNzYyIiwgXAotICAgICAgICAgICIwLjUxOTgzOSwgMC43ODI2MzYsIDIuMjgwMzgsIDMuNjA3MDQsIDUuMzU4NCwgOC44NzczOSwgMTEuMDc2MiIsIFwKLSAgICAgICAgICAiMC41MTk4NCwgMC43ODI2MzMsIDIuMjgwOTcsIDMuNjA5NDgsIDUuMzYzMzQsIDguODc5NzQsIDExLjA3NTgiLCBcCi0gICAgICAgICAgIjAuNTIwMzQ1LCAwLjc4MjYyLCAyLjI4MDc3LCAzLjYwOTM2LCA1LjM2MDUsIDguODc5NzMsIDExLjA3NDgiLCBcCi0gICAgICAgICAgIjAuNTIwMzkxLCAwLjc4MjYyOCwgMi4yNzczNCwgMy42MDcxNywgNS4zNzA5OCwgOC44Nzc2NCwgMTEuMDc2MSIsIFwKLSAgICAgICAgICAiMC41MTk5NDQsIDAuNzgzMzU4LCAyLjI3OTQ3LCAzLjU5OTg2LCA1LjM2NDM4LCA4Ljg3OTUxLCAxMS4wNzYiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjMwOTEsIDAuMzMwNTQ3LCAwLjg4ODI0MiwgMS4zNzgyNSwgMi4wMzA0NiwgMy4zMzQ4NywgNC4xNDkxMyIsIFwKLSAgICAgICAgICAiMC4yNDEwMDQsIDAuMzQwNzAyLCAwLjg5ODQyOSwgMS4zODg0NCwgMi4wNDA4OCwgMy4zNDQ2NCwgNC4xNTkzNSIsIFwKLSAgICAgICAgICAiMC4yNTQ1MjMsIDAuMzU0MjMzLCAwLjkxMjI0LCAxLjQwMjI5LCAyLjA1NDE4LCAzLjM1ODQsIDQuMTcyNjUiLCBcCi0gICAgICAgICAgIjAuMjY3MTg3LCAwLjM2Njg4MSwgMC45MjQ4MDIsIDEuNDE0NzksIDIuMDY3NjEsIDMuMzcxNiwgNC4xODU2MiIsIFwKLSAgICAgICAgICAiMC4yODAzMTIsIDAuMzgwMDk5LCAwLjkzODAyNCwgMS40MjgxOSwgMi4wODAyMiwgMy4zODQxNywgNC4xOTg3MSIsIFwKLSAgICAgICAgICAiMC4zMDE1NzcsIDAuNDAwODg3LCAwLjk1OTIwMiwgMS40NDkxOCwgMi4xMDIyNywgMy40MDU3OSwgNC4yMTk3NSIsIFwKLSAgICAgICAgICAiMC4zMjAxODksIDAuNDE5ODk1LCAwLjk3NzgxMiwgMS40NjgwMywgMi4xMjA2NiwgMy40MjQzNywgNC4yMzg2MiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC40MDYyNjQsIDAuNTkzMTAyLCAxLjY1MTU2LCAyLjU4NTUyLCAzLjgyOTE2LCA2LjMxNjQ3LCA3Ljg3MDU0IiwgXAotICAgICAgICAgICIwLjQwNjIwNCwgMC41OTMwMDcsIDEuNjUxMywgMi41ODU0NywgMy44MjkwOSwgNi4zMTY3OSwgNy44Njg1NSIsIFwKLSAgICAgICAgICAiMC40MDYxMiwgMC41OTI5ODUsIDEuNjUxMjMsIDIuNTg0NywgMy44Mjg1OCwgNi4zMTY2NiwgNy44Njk5NyIsIFwKLSAgICAgICAgICAiMC40MDYwMTgsIDAuNTkzMDQ2LCAxLjY1MTg1LCAyLjU4NTA3LCAzLjgyOSwgNi4zMTYzOSwgNy44Njg1MyIsIFwKLSAgICAgICAgICAiMC40MDU4MSwgMC41OTI5MDYsIDEuNjUxNzEsIDIuNTg1MzIsIDMuODI4LCA2LjMxNDksIDcuODcwMTgiLCBcCi0gICAgICAgICAgIjAuNDA3MjIzLCAwLjU5Mjc1NSwgMS42NTE4MSwgMi41ODU0NCwgMy44Mjg1NiwgNi4zMTY3LCA3Ljg3MDQ5IiwgXAotICAgICAgICAgICIwLjQxMDU3NCwgMC41OTM1NjUsIDEuNjUxNzEsIDIuNTg1NCwgMy44MjgwNiwgNi4zMTYzNiwgNy44NzA2MSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzA1OTYsIDAuNDQyODI4LCAxLjIxNzQ2LCAxLjkwMDIzLCAyLjgwOTg4LCA0LjYzMDc1LCA1Ljc3MDUxIiwgXAotICAgICAgICAgICIwLjMxNjQ2MSwgMC40NTMzOSwgMS4yMjc0NiwgMS45MDk5NSwgMi44MTk4OSwgNC42NDA5NCwgNS43ODExMyIsIFwKLSAgICAgICAgICAiMC4zMjk4MDEsIDAuNDY2Njk5LCAxLjI0MTIyLCAxLjkyNDQ1LCAyLjgzMzM5LCA0LjY1NDcsIDUuNzk0MzMiLCBcCi0gICAgICAgICAgIjAuMzQyMzM3LCAwLjQ3OTIyMiwgMS4yNTM2MSwgMS45MzY0NiwgMi44NDYwOSwgNC42NjY5NSwgNS44MDcxIiwgXAotICAgICAgICAgICIwLjM1NDc5NiwgMC40OTE4MTIsIDEuMjY2MTcsIDEuOTQ4OTcsIDIuODU4NjcsIDQuNjc5ODYsIDUuODE5NDMiLCBcCi0gICAgICAgICAgIjAuMzc0MDY5LCAwLjUxMDk5MSwgMS4yODUxNSwgMS45Njg0LCAyLjg3ODE4LCA0LjY5ODk1LCA1LjgzODg3IiwgXAotICAgICAgICAgICIwLjM5MDU3NSwgMC41Mjc1NTksIDEuMzAxOTMsIDEuOTg0NiwgMi44OTQ5MywgNC43MTU4MiwgNS44NTU1NiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC41Mjg5NDksIDAuNzkwNzc1LCAyLjI3NzM1LCAzLjU4Nzk4LCA1LjM0NDk4LCA4Ljg0MjI3LCAxMS4wMjgzIiwgXAotICAgICAgICAgICIwLjUyODk0NiwgMC43OTA5ODcsIDIuMjc4MDgsIDMuNTg5NDgsIDUuMzM5NjUsIDguODQyNywgMTEuMDI5NyIsIFwKLSAgICAgICAgICAiMC41Mjg5NTksIDAuNzkwNzYyLCAyLjI3NzE2LCAzLjU4ODI2LCA1LjM0MDU1LCA4Ljg0MzQ0LCAxMS4wMjk1IiwgXAotICAgICAgICAgICIwLjUyODk0NCwgMC43OTA4OSwgMi4yNzcwMiwgMy41ODgxLCA1LjM0MDYyLCA4Ljg0MjksIDExLjAyOTciLCBcCi0gICAgICAgICAgIjAuNTI5MDI4LCAwLjc5MTUxNiwgMi4yNzcwMiwgMy41ODgxNCwgNS4zNDEwNywgOC44NDMyNCwgMTEuMDI5NCIsIFwKLSAgICAgICAgICAiMC41Mjg5ODEsIDAuNzkwOTEsIDIuMjc4MDMsIDMuNTg4NjksIDUuMzQwNTUsIDguODQzMSwgMTEuMDI5NiIsIFwKLSAgICAgICAgICAiMC41MjkyODMsIDAuNzkxNTk1LCAyLjI3NjQ3LCAzLjU4OTczLCA1LjM0MDQ5LCA4Ljg0MjMyLCAxMS4wMjk2Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIxNTA5NCwgMC4zMTM0ODUsIDAuODY4NjU1LCAxLjM1NzczLCAyLjAxMDE2LCAzLjMxMzQ2LCA0LjEyODE3IiwgXAotICAgICAgICAgICIwLjIyNjgzMiwgMC4zMjUyOTIsIDAuODgwNDUsIDEuMzY5NjMsIDIuMDIxNDQsIDMuMzI1MjUsIDQuMTM5OTUiLCBcCi0gICAgICAgICAgIjAuMjQwNjEsIDAuMzM5MDQxLCAwLjg5NDI0NywgMS4zODMzNSwgMi4wMzUyOCwgMy4zMzkzLCA0LjE1MzUxIiwgXAotICAgICAgICAgICIwLjI1NDAyOSwgMC4zNTI1MTgsIDAuOTA3ODM4LCAxLjM5Njg5LCAyLjA0OTE3LCAzLjM1MjYyLCA0LjE2NzQyIiwgXAotICAgICAgICAgICIwLjI2NzUzNiwgMC4zNjYxNjksIDAuOTIxMzY3LCAxLjQxMDUxLCAyLjA2MjQ3LCAzLjM2NjU4LCA0LjE4MTAyIiwgXAotICAgICAgICAgICIwLjI4ODg4LCAwLjM4NzU1OCwgMC45NDI5ODUsIDEuNDMyMTcsIDIuMDg0NDMsIDMuMzg3NzUsIDQuMjAyNjMiLCBcCi0gICAgICAgICAgIjAuMzA3NzAzLCAwLjQwNjMxMywgMC45NjIwMjYsIDEuNDUxMywgMi4xMDMzMywgMy40MDY5NywgNC4yMjE3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjM4NDc3NywgMC41NzEzOTUsIDEuNjI5MDcsIDIuNTYxNDgsIDMuODA1MzgsIDYuMjkxMSwgNy44NDQxOSIsIFwKLSAgICAgICAgICAiMC4zODQ3NCwgMC41NzE0MiwgMS42Mjg3OSwgMi41NjE5NCwgMy44MDUxOSwgNi4yOTE1NSwgNy44NDUwNyIsIFwKLSAgICAgICAgICAiMC4zODQ3NjIsIDAuNTcxNDIxLCAxLjYyODc0LCAyLjU2MTc4LCAzLjgwNCwgNi4yOTE4NywgNy44NDM4NyIsIFwKLSAgICAgICAgICAiMC4zODQ3NjIsIDAuNTcxMzc3LCAxLjYyODY4LCAyLjU2MTg3LCAzLjgwNDg2LCA2LjI5MTYyLCA3Ljg0NDI0IiwgXAotICAgICAgICAgICIwLjM4NDczOSwgMC41NzE0MjcsIDEuNjI5MTEsIDIuNTYxNTcsIDMuODA0MDEsIDYuMjkxMjUsIDcuODQzOTciLCBcCi0gICAgICAgICAgIjAuMzg1NzE3LCAwLjU3MTM1NiwgMS42Mjg2OSwgMi41NjE5NSwgMy44MDUwNiwgNi4yOTE0OCwgNy44NDQyMiIsIFwKLSAgICAgICAgICAiMC4zODgwNDEsIDAuNTcxOTM2LCAxLjYyODY0LCAyLjU2MTgyLCAzLjgwNDg3LCA2LjI5MDUsIDcuODQ0NDUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI5ODAyNywgMC40MzUzNzYsIDEuMjEzMjYsIDEuODk5MTMsIDIuODEyOSwgNC42NDIwMiwgNS43ODcwNiIsIFwKLSAgICAgICAgICAiMC4zMDg5MjQsIDAuNDQ2MzAxLCAxLjIyMzkyLCAxLjkwOTY5LCAyLjgyMzMsIDQuNjUyNzMsIDUuNzk4MDIiLCBcCi0gICAgICAgICAgIjAuMzIyMjA5LCAwLjQ1OTYzNSwgMS4yMzc1NCwgMS45MjMxOCwgMi44MzcwMSwgNC42NjYxNywgNS44MTE1MyIsIFwKLSAgICAgICAgICAiMC4zMzQ2NjgsIDAuNDcyMTAzLCAxLjI0OTYyLCAxLjkzNTcsIDIuODQ5NjMsIDQuNjc5MDUsIDUuODI0MTMiLCBcCi0gICAgICAgICAgIjAuMzQ2NzM4LCAwLjQ4NDI4OSwgMS4yNjI2OSwgMS45NDg3OCwgMi44NjIwNSwgNC42OTE2MSwgNS44MzY0MyIsIFwKLSAgICAgICAgICAiMC4zNjYxNDIsIDAuNTAzNjYsIDEuMjgxNzMsIDEuOTY3NTUsIDIuODgxNCwgNC43MTA3MiwgNS44NTU5MyIsIFwKLSAgICAgICAgICAiMC4zODI2MTIsIDAuNTIwMTM4LCAxLjI5Nzk5LCAxLjk4Mzc5LCAyLjg5ODMsIDQuNzI3NDgsIDUuODcyNDYiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuNTIxNzU2LCAwLjc4NDczLCAyLjI4MTYyLCAzLjU5NzI0LCA1LjM3MDgxLCA4Ljg3NzE3LCAxMS4wNzYzIiwgXAotICAgICAgICAgICIwLjUyMTE3MywgMC43ODQ3MzUsIDIuMjc4NzIsIDMuNTk3MjYsIDUuMzY0MjcsIDguODc4NywgMTEuMDc2MiIsIFwKLSAgICAgICAgICAiMC41MjEyNywgMC43ODQ3NTYsIDIuMjgxMTcsIDMuNTk3MzEsIDUuMzY0NTksIDguODc4NzMsIDExLjA3NDgiLCBcCi0gICAgICAgICAgIjAuNTIxMjc0LCAwLjc4NDg2NSwgMi4yNzk2NSwgMy42MDgwOCwgNS4zNjQ0OSwgOC44Nzk3NCwgMTEuMDc2MyIsIFwKLSAgICAgICAgICAiMC41MjEyNzksIDAuNzg0NzQyLCAyLjI4MTUxLCAzLjU5NjQ4LCA1LjM3MDI0LCA4Ljg3OTQ3LCAxMS4wNzYiLCBcCi0gICAgICAgICAgIjAuNTIxMzQyLCAwLjc4NDg0OCwgMi4yODA3NywgMy42MDgyNywgNS4zNjQyLCA4Ljg3OTMxLCAxMS4wNzYyIiwgXAotICAgICAgICAgICIwLjUyMTg3MywgMC43ODQ4NjcsIDIuMjc5NTgsIDMuNTk5OTcsIDUuMzcwOCwgOC44NzczLCAxMS4wNzYxIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIxLCAwLjMwODM2MywgMC44NjM4OTQsIDEuMzUyNzcsIDIuMDA0NzUsIDMuMzA4MzUsIDQuMTIyNjQiLCBcCi0gICAgICAgICAgIjAuMjIwNTA1LCAwLjMxODkxLCAwLjg3NDE2MSwgMS4zNjMzLCAyLjAxNTA2LCAzLjMxODc5LCA0LjEzMzU4IiwgXAotICAgICAgICAgICIwLjIzMzYwNiwgMC4zMzIxNDksIDAuODg3NzUxLCAxLjM3NjUsIDIuMDI4NjEsIDMuMzMyMDIsIDQuMTQ2ODkiLCBcCi0gICAgICAgICAgIjAuMjQ2ODQsIDAuMzQ1MzQsIDAuOTAwNTU0LCAxLjM4OTc3LCAyLjA0MTk1LCAzLjM0NTc0LCA0LjE2MDE5IiwgXAotICAgICAgICAgICIwLjI1OTk1LCAwLjM1ODUwMywgMC45MTM2OTMsIDEuNDAyOTEsIDIuMDU0OSwgMy4zNTgzLCA0LjE3MzM1IiwgXAotICAgICAgICAgICIwLjI4MTAxNywgMC4zNzk2NDksIDAuOTM1NTc5LCAxLjQyNTQ3LCAyLjA3NjgyLCAzLjM4MDcyLCA0LjE5NTE2IiwgXAotICAgICAgICAgICIwLjI5OTU2OCwgMC4zOTgwOTEsIDAuOTUzNTUsIDEuNDQyNzQsIDIuMDk0NDgsIDMuMzk4MDUsIDQuMjEzMDgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzg0NzQ2LCAwLjU3MTQ0MiwgMS42Mjg4NywgMi41NjE5NiwgMy44MDQ0OCwgNi4yOTA1NiwgNy44NDQ0MSIsIFwKLSAgICAgICAgICAiMC4zODQ3MjUsIDAuNTcxNDMsIDEuNjI4OTMsIDIuNTYxNDUsIDMuODA0NzcsIDYuMjkwNzIsIDcuODQ0NTIiLCBcCi0gICAgICAgICAgIjAuMzg0NzgxLCAwLjU3MTQzOSwgMS42MjkwMSwgMi41NjE5NSwgMy44MDUwOSwgNi4yOTE0MSwgNy44NDQyMSIsIFwKLSAgICAgICAgICAiMC4zODQ3OSwgMC41NzEzNzIsIDEuNjI5MTIsIDIuNTYxNzIsIDMuODA1LCA2LjI5MTc5LCA3Ljg0NDY2IiwgXAotICAgICAgICAgICIwLjM4NDc5OCwgMC41NzEzNTYsIDEuNjI5LCAyLjU2MTczLCAzLjgwNTUyLCA2LjI5MDMxLCA3Ljg0NTk0IiwgXAotICAgICAgICAgICIwLjM4NzE2NSwgMC41NzE0MTMsIDEuNjI4NjYsIDIuNTYyMjYsIDMuODA0NjUsIDYuMjkwNjcsIDcuODQ1NSIsIFwKLSAgICAgICAgICAiMC4zOTE0MzMsIDAuNTcyODAzLCAxLjYyOTEyLCAyLjU2MTk3LCAzLjgwNDExLCA2LjI5MTI3LCA3Ljg0NDE5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yNzYzNzQsIDAuNDEzMTY3LCAxLjE4NzUsIDEuODcwMTgsIDIuNzgyODgsIDQuNjExNjQsIDUuNzU2NTEiLCBcCi0gICAgICAgICAgIjAuMjg2MTMzLCAwLjQyMzA4NSwgMS4xOTc0MiwgMS44Nzk5NywgMi43OTIyMywgNC42MjEyMywgNS43NjY2NiIsIFwKLSAgICAgICAgICAiMC4yOTgzNTgsIDAuNDM1NDA0LCAxLjIwOTcxLCAxLjg5MjQ5LCAyLjgwNTA4LCA0LjYzNDA1LCA1Ljc3ODkxIiwgXAotICAgICAgICAgICIwLjMxMDQ4NSwgMC40NDc1OTcsIDEuMjIyMDQsIDEuOTA0NywgMi44MTc1LCA0LjY0NjMsIDUuNzkxMjkiLCBcCi0gICAgICAgICAgIjAuMzIxOTQxLCAwLjQ1OTczNiwgMS4yMzQyNywgMS45MTc0LCAyLjgyOTIyLCA0LjY1ODQzLCA1LjgwMzY1IiwgXAotICAgICAgICAgICIwLjM0MjAyMywgMC40NzkyMjIsIDEuMjUzODUsIDEuOTM3MDEsIDIuODQ5MjIsIDQuNjc4MjUsIDUuODIzMDciLCBcCi0gICAgICAgICAgIjAuMzU5MjA3LCAwLjQ5NjI0MiwgMS4yNzEzMSwgMS45NTM2LCAyLjg2NTk4LCA0LjY5NTM5LCA1Ljg0MDUzIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjUyOTAxNCwgMC43OTE3ODcsIDIuMjc4MTksIDMuNjA3MzEsIDUuMzU3OTUsIDguODc3MiwgMTEuMDc1OCIsIFwKLSAgICAgICAgICAiMC41Mjg0OSwgMC43OTA4NjksIDIuMjc5OSwgMy42MDcyNCwgNS4zNzA0NiwgOC44NzgzMSwgMTEuMDc0OCIsIFwKLSAgICAgICAgICAiMC41Mjg4MiwgMC43OTE1ODgsIDIuMjc5NDMsIDMuNTk3MzUsIDUuMzcwOTMsIDguODc3NDEsIDExLjA3NiIsIFwKLSAgICAgICAgICAiMC41Mjg2ODMsIDAuNzkwOTM0LCAyLjI3OTM4LCAzLjYwNzMxLCA1LjM3MTEsIDguODc3NiwgMTEuMDc2MiIsIFwKLSAgICAgICAgICAiMC41MjcyODIsIDAuNzkwNzA5LCAyLjI3ODI5LCAzLjU5NzUxLCA1LjM2MzQ0LCA4Ljg3ODY2LCAxMS4wNzYyIiwgXAotICAgICAgICAgICIwLjUyNzk2NywgMC43OTA0MDEsIDIuMjgwNTgsIDMuNTk3MzcsIDUuMzcwODQsIDguODc3MjMsIDExLjA3NiIsIFwKLSAgICAgICAgICAiMC41Mjk4NzMsIDAuNzkwNDYsIDIuMjgxMDcsIDMuNjA3MTQsIDUuMzY0NTEsIDguODc3MiwgMTEuMDc2MyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTg0NDIsIDAuMTQ3ODk5LCAwLjQyNzg3OSwgMC42NzQ4NzgsIDEuMDA0MjMsIDEuNjYzNDEsIDIuMDc0NjMiLCBcCi0gICAgICAgICAgIjAuMTEwMDAxLCAwLjE1OTQ2MSwgMC40Mzk0ODMsIDAuNjg2NTAxLCAxLjAxNjEyLCAxLjY3NDMxLCAyLjA4NjAxIiwgXAotICAgICAgICAgICIwLjEyNTA3MiwgMC4xNzQ1MTYsIDAuNDUzOTkxLCAwLjY5ODY2NSwgMS4wMjgyOCwgMS42ODY1MiwgMi4wOTgzMSIsIFwKLSAgICAgICAgICAiMC4xNDAzOSwgMC4xODkzODMsIDAuNDY5MjUsIDAuNzEzMjQ1LCAxLjA0MjYyLCAxLjcwMTU1LCAyLjExMjU2IiwgXAotICAgICAgICAgICIwLjE1NTMzNSwgMC4yMDQ4MTMsIDAuNDgzOTU4LCAwLjczMTAwNSwgMS4wNTY5NywgMS43MTU1MywgMi4xMjY5OSIsIFwKLSAgICAgICAgICAiMC4xNzkzMzEsIDAuMjI4NzY3LCAwLjUwNzcyLCAwLjc1NDU0NywgMS4wODQ3NiwgMS43NDI5MiwgMi4xNTUzMSIsIFwKLSAgICAgICAgICAiMC4yMDA3NjEsIDAuMjQ5NzczLCAwLjUyODMzMSwgMC43NzUwNjYsIDEuMTA0NSwgMS43NTgxNCwgMi4xNzAxNCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xOTc4MTEsIDAuMjk1NDI2LCAwLjg0OTM5MiwgMS4zMzkwOSwgMS45OTE4NiwgMy4yOTg4OSwgNC4xMTM4MyIsIFwKLSAgICAgICAgICAiMC4xOTc4MTIsIDAuMjk1NDE4LCAwLjg0OTUyNywgMS4zMzg4MiwgMS45OTE2NSwgMy4yOTc2OSwgNC4xMTE4NCIsIFwKLSAgICAgICAgICAiMC4xOTc4MzIsIDAuMjk1NDE4LCAwLjg0OTUyNSwgMS4zMzg3NCwgMS45OTE1NiwgMy4yOTY5NiwgNC4xMTIyNiIsIFwKLSAgICAgICAgICAiMC4xOTkyNDksIDAuMjk1NDU4LCAwLjg0OTUzOSwgMS4zMzg2NiwgMS45OTE4OCwgMy4yOTY2NSwgNC4xMTQ2NCIsIFwKLSAgICAgICAgICAiMC4yMDI1MDcsIDAuMjk2NTk4LCAwLjg0OTQwOSwgMS4zMzg5NSwgMS45OTE4NSwgMy4zMDA0MSwgNC4xMTM2MSIsIFwKLSAgICAgICAgICAiMC4yMTAwODksIDAuMzAxMTA3LCAwLjg0OTU2LCAxLjMzODc4LCAxLjk5MDcyLCAzLjI5NTg5LCA0LjExNDYxIiwgXAotICAgICAgICAgICIwLjIxODExNCwgMC4zMDY4OTEsIDAuODQ5NDgxLCAxLjMzODc3LCAxLjk5MDk1LCAzLjI5Njk0LCA0LjExMzU1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzU5NCwgMC4wMDM1OTQsIDAuMDAzNTk0LCAwLjAwMzU4OSwgMC4wMDM1OTEsIDAuMDAzNTg1LCAwLjAwMzU4MSIsIFwKLSAgICAgICAgICAiMC4wMDM1ODcsIDAuMDAzNTg4LCAwLjAwMzU4NiwgMC4wMDM1ODcsIDAuMDAzNTg0LCAwLjAwMzU4MSwgMC4wMDM1NzciLCBcCi0gICAgICAgICAgIjAuMDAzNTg1LCAwLjAwMzU4NSwgMC4wMDM1ODUsIDAuMDAzNTg1LCAwLjAwMzU4MiwgMC4wMDM1NzgsIDAuMDAzNTc1IiwgXAotICAgICAgICAgICIwLjAwMzU4MywgMC4wMDM1ODQsIDAuMDAzNTg2LCAwLjAwMzU4NCwgMC4wMDM1ODIsIDAuMDAzNTc4LCAwLjAwMzU3NCIsIFwKLSAgICAgICAgICAiMC4wMDM1ODEsIDAuMDAzNTgyLCAwLjAwMzU4NCwgMC4wMDM1ODMsIDAuMDAzNTgyLCAwLjAwMzU3OCwgMC4wMDM1NzUiLCBcCi0gICAgICAgICAgIjAuMDAzNTc4LCAwLjAwMzU4LCAwLjAwMzU4MywgMC4wMDM1ODMsIDAuMDAzNTgxLCAwLjAwMzU3NiwgMC4wMDM1NzQiLCBcCi0gICAgICAgICAgIjAuMDAzNTc2LCAwLjAwMzU3OSwgMC4wMDM1ODIsIDAuMDAzNTgyLCAwLjAwMzU4MSwgMC4wMDM1NzYsIDAuMDAzNTcyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxMjQ1LCAwLjAwMTI0NCwgMC4wMDEyNDMsIDAuMDAxMjQxLCAwLjAwMTI0LCAwLjAwMTIzNywgMC4wMDEyMzQiLCBcCi0gICAgICAgICAgIjAuMDAxMjMsIDAuMDAxMjMsIDAuMDAxMjI4LCAwLjAwMTIyNywgMC4wMDEyMjUsIDAuMDAxMjIxLCAwLjAwMTIxOSIsIFwKLSAgICAgICAgICAiMC4wMDEyMjEsIDAuMDAxMjIxLCAwLjAwMTIyLCAwLjAwMTIxOSwgMC4wMDEyMTksIDAuMDAxMjE0LCAwLjAwMTIxIiwgXAotICAgICAgICAgICIwLjAwMTIxNiwgMC4wMDEyMTcsIDAuMDAxMjE4LCAwLjAwMTIxNiwgMC4wMDEyMTQsIDAuMDAxMjExLCAwLjAwMTIwOCIsIFwKLSAgICAgICAgICAiMC4wMDEyMTIsIDAuMDAxMjE0LCAwLjAwMTIxNSwgMC4wMDEyMTQsIDAuMDAxMjEzLCAwLjAwMTIwOSwgMC4wMDEyMDciLCBcCi0gICAgICAgICAgIjAuMDAxMjA4LCAwLjAwMTIxLCAwLjAwMTIxMywgMC4wMDEyMTMsIDAuMDAxMjExLCAwLjAwMTIwOCwgMC4wMDEyMDUiLCBcCi0gICAgICAgICAgIjAuMDAxMjA1LCAwLjAwMTIwNywgMC4wMDEyMTEsIDAuMDAxMjExLCAwLjAwMTIwOSwgMC4wMDEyMDcsIDAuMDAxMjA0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzI0MiwgMC4wMDMyNDIsIDAuMDAzMjQxLCAwLjAwMzI0MiwgMC4wMDMyNCwgMC4wMDMyMzgsIDAuMDAzMjM2IiwgXAotICAgICAgICAgICIwLjAwMzI0MywgMC4wMDMyNDUsIDAuMDAzMjQ3LCAwLjAwMzI0NSwgMC4wMDMyNDYsIDAuMDAzMjQzLCAwLjAwMzI0MSIsIFwKLSAgICAgICAgICAiMC4wMDMyNCwgMC4wMDMyNDMsIDAuMDAzMjQ2LCAwLjAwMzI0NywgMC4wMDMyNDYsIDAuMDAzMjQ0LCAwLjAwMzI0MyIsIFwKLSAgICAgICAgICAiMC4wMDMyMzcsIDAuMDAzMjQxLCAwLjAwMzI0NiwgMC4wMDMyNDYsIDAuMDAzMjQ2LCAwLjAwMzI0NiwgMC4wMDMyNDIiLCBcCi0gICAgICAgICAgIjAuMDAzMjMzLCAwLjAwMzIzOCwgMC4wMDMyNDUsIDAuMDAzMjQ3LCAwLjAwMzI0NiwgMC4wMDMyNDQsIDAuMDAzMjQzIiwgXAotICAgICAgICAgICIwLjAwMzIyNywgMC4wMDMyMzMsIDAuMDAzMjQzLCAwLjAwMzI0NCwgMC4wMDMyNDQsIDAuMDAzMjQ0LCAwLjAwMzI0MiIsIFwKLSAgICAgICAgICAiMC4wMDMyMjMsIDAuMDAzMjMsIDAuMDAzMjQxLCAwLjAwMzI0MywgMC4wMDMyNDQsIDAuMDAzMjQzLCAwLjAwMzI0MSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTI0NiwgMC4wMDEyNDUsIDAuMDAxMjQ0LCAwLjAwMTI0MiwgMC4wMDEyNCwgMC4wMDEyMzcsIDAuMDAxMjM0IiwgXAotICAgICAgICAgICIwLjAwMTIyOSwgMC4wMDEyMjksIDAuMDAxMjI4LCAwLjAwMTIyNywgMC4wMDEyMjcsIDAuMDAxMjE4LCAwLjAwMTIxNCIsIFwKLSAgICAgICAgICAiMC4wMDEyMiwgMC4wMDEyMiwgMC4wMDEyMjEsIDAuMDAxMjIsIDAuMDAxMjE3LCAwLjAwMTIxNCwgMC4wMDEyMTIiLCBcCi0gICAgICAgICAgIjAuMDAxMjE0LCAwLjAwMTIxNiwgMC4wMDEyMTYsIDAuMDAxMjE1LCAwLjAwMTIxNCwgMC4wMDEyMTEsIDAuMDAxMjA5IiwgXAotICAgICAgICAgICIwLjAwMTIwOSwgMC4wMDEyMTIsIDAuMDAxMjE0LCAwLjAwMTIxMywgMC4wMDEyMTIsIDAuMDAxMjA4LCAwLjAwMTIwNyIsIFwKLSAgICAgICAgICAiMC4wMDEyMDQsIDAuMDAxMjA3LCAwLjAwMTIxMSwgMC4wMDEyMTIsIDAuMDAxMjEsIDAuMDAxMjA3LCAwLjAwMTIwNSIsIFwKLSAgICAgICAgICAiMC4wMDEyMDEsIDAuMDAxMjA0LCAwLjAwMTIxLCAwLjAwMTIxLCAwLjAwMTIwOSwgMC4wMDEyMDUsIDAuMDAxMjAzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjk3MywgMC4wMDI5NzIsIDAuMDAyOTcxLCAwLjAwMjk2OSwgMC4wMDI5NjgsIDAuMDAyOTYyLCAwLjAwMjk1OSIsIFwKLSAgICAgICAgICAiMC4wMDI5NjYsIDAuMDAyOTY2LCAwLjAwMjk2NSwgMC4wMDI5NjQsIDAuMDAyOTYyLCAwLjAwMjk2LCAwLjAwMjk1MyIsIFwKLSAgICAgICAgICAiMC4wMDI5NjMsIDAuMDAyOTYzLCAwLjAwMjk2NCwgMC4wMDI5NjIsIDAuMDAyOTYxLCAwLjAwMjk1NywgMC4wMDI5NTMiLCBcCi0gICAgICAgICAgIjAuMDAyOTYxLCAwLjAwMjk2MiwgMC4wMDI5NjMsIDAuMDAyOTYyLCAwLjAwMjk2LCAwLjAwMjk1NiwgMC4wMDI5NTIiLCBcCi0gICAgICAgICAgIjAuMDAyOTU5LCAwLjAwMjk2MSwgMC4wMDI5NjIsIDAuMDAyOTYxLCAwLjAwMjk1OSwgMC4wMDI5NTYsIDAuMDAyOTUzIiwgXAotICAgICAgICAgICIwLjAwMjk1NywgMC4wMDI5NTksIDAuMDAyOTYxLCAwLjAwMjk2MSwgMC4wMDI5NiwgMC4wMDI5NTUsIDAuMDAyOTUyIiwgXAotICAgICAgICAgICIwLjAwMjk1NCwgMC4wMDI5NTcsIDAuMDAyOTYxLCAwLjAwMjk2LCAwLjAwMjk1OSwgMC4wMDI5NTUsIDAuMDAyOTUxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwNTg5LCAwLjAwMDU4OSwgMC4wMDA1ODgsIDAuMDAwNTg5LCAwLjAwMDU4NywgMC4wMDA1ODUsIDAuMDAwNTg0IiwgXAotICAgICAgICAgICIwLjAwMDU4NywgMC4wMDA1ODgsIDAuMDAwNTg4LCAwLjAwMDU4OCwgMC4wMDA1ODcsIDAuMDAwNTg1LCAwLjAwMDU4NCIsIFwKLSAgICAgICAgICAiMC4wMDA1ODMsIDAuMDAwNTg1LCAwLjAwMDU4NywgMC4wMDA1ODcsIDAuMDAwNTg3LCAwLjAwMDU4NiwgMC4wMDA1ODUiLCBcCi0gICAgICAgICAgIjAuMDAwNTc5LCAwLjAwMDU4MiwgMC4wMDA1ODcsIDAuMDAwNTg3LCAwLjAwMDU4NywgMC4wMDA1ODYsIDAuMDAwNTg1IiwgXAotICAgICAgICAgICIwLjAwMDU3NCwgMC4wMDA1NzksIDAuMDAwNTg1LCAwLjAwMDU4NywgMC4wMDA1ODYsIDAuMDAwNTg2LCAwLjAwMDU4NSIsIFwKLSAgICAgICAgICAiMC4wMDA1NjgsIDAuMDAwNTc0LCAwLjAwMDU4MywgMC4wMDA1ODUsIDAuMDAwNTg1LCAwLjAwMDU4NSwgMC4wMDA1ODQiLCBcCi0gICAgICAgICAgIjAuMDAwNTYzLCAwLjAwMDU3LCAwLjAwMDU4MiwgMC4wMDA1ODQsIDAuMDAwNTg1LCAwLjAwMDU4NSwgMC4wMDA1ODQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyNjI5LCAwLjAwMjYyOSwgMC4wMDI2MjksIDAuMDAyNjI4LCAwLjAwMjYyNywgMC4wMDI2MjUsIDAuMDAyNjIyIiwgXAotICAgICAgICAgICIwLjAwMjYzLCAwLjAwMjYzMiwgMC4wMDI2MzMsIDAuMDAyNjMzLCAwLjAwMjYzMiwgMC4wMDI2MywgMC4wMDI2MjciLCBcCi0gICAgICAgICAgIjAuMDAyNjI3LCAwLjAwMjYzLCAwLjAwMjYzMiwgMC4wMDI2MzIsIDAuMDAyNjMyLCAwLjAwMjYzMiwgMC4wMDI2MjkiLCBcCi0gICAgICAgICAgIjAuMDAyNjIzLCAwLjAwMjYyNywgMC4wMDI2MzIsIDAuMDAyNjMzLCAwLjAwMjYzNCwgMC4wMDI2MzEsIDAuMDAyNjI5IiwgXAotICAgICAgICAgICIwLjAwMjYxOCwgMC4wMDI2MjMsIDAuMDAyNjMxLCAwLjAwMjYzMiwgMC4wMDI2MzIsIDAuMDAyNjMsIDAuMDAyNjI4IiwgXAotICAgICAgICAgICIwLjAwMjYxNCwgMC4wMDI2MiwgMC4wMDI2MywgMC4wMDI2MzIsIDAuMDAyNjMxLCAwLjAwMjYyOSwgMC4wMDI2MjgiLCBcCi0gICAgICAgICAgIjAuMDAyNjEsIDAuMDAyNjE3LCAwLjAwMjYyOCwgMC4wMDI2MywgMC4wMDI2MywgMC4wMDI2MjksIDAuMDAyNjI4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwNTg4LCAwLjAwMDU4OCwgMC4wMDA1ODgsIDAuMDAwNTg3LCAwLjAwMDU4NiwgMC4wMDA1ODUsIDAuMDAwNTgzIiwgXAotICAgICAgICAgICIwLjAwMDU4NSwgMC4wMDA1ODcsIDAuMDAwNTg4LCAwLjAwMDU4NywgMC4wMDA1ODcsIDAuMDAwNTg1LCAwLjAwMDU4NCIsIFwKLSAgICAgICAgICAiMC4wMDA1ODEsIDAuMDAwNTgzLCAwLjAwMDU4NywgMC4wMDA1ODcsIDAuMDAwNTg3LCAwLjAwMDU4NSwgMC4wMDA1ODQiLCBcCi0gICAgICAgICAgIjAuMDAwNTc2LCAwLjAwMDU4LCAwLjAwMDU4NSwgMC4wMDA1ODYsIDAuMDAwNTg2LCAwLjAwMDU4NSwgMC4wMDA1ODQiLCBcCi0gICAgICAgICAgIjAuMDAwNTcyLCAwLjAwMDU3NywgMC4wMDA1ODQsIDAuMDAwNTg1LCAwLjAwMDU4NiwgMC4wMDA1ODUsIDAuMDAwNTg0IiwgXAotICAgICAgICAgICIwLjAwMDU2NiwgMC4wMDA1NzMsIDAuMDAwNTgzLCAwLjAwMDU4NSwgMC4wMDA1ODUsIDAuMDAwNTg0LCAwLjAwMDU4NCIsIFwKLSAgICAgICAgICAiMC4wMDA1NjEsIDAuMDAwNTY5LCAwLjAwMDU4MSwgMC4wMDA1ODMsIDAuMDAwNTg0LCAwLjAwMDU4NCwgMC4wMDA1ODMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDMCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyMzc0LCAwLjAwMjM3NSwgMC4wMDIzNzQsIDAuMDAyMzc0LCAwLjAwMjM3NSwgMC4wMDIzNjcsIDAuMDAyMzYzIiwgXAotICAgICAgICAgICIwLjAwMjM2OCwgMC4wMDIzNzEsIDAuMDAyMzc0LCAwLjAwMjM3LCAwLjAwMjM2NywgMC4wMDIzNjcsIDAuMDAyMzYyIiwgXAotICAgICAgICAgICIwLjAwMjM2MSwgMC4wMDIzNjUsIDAuMDAyMzcsIDAuMDAyMzcsIDAuMDAyMzcsIDAuMDAyMzY0LCAwLjAwMjM2MSIsIFwKLSAgICAgICAgICAiMC4wMDIzNTYsIDAuMDAyMzYxLCAwLjAwMjM2OCwgMC4wMDIzNjgsIDAuMDAyMzY4LCAwLjAwMjM2NSwgMC4wMDIzNjEiLCBcCi0gICAgICAgICAgIjAuMDAyMzQ5LCAwLjAwMjM1NywgMC4wMDIzNjcsIDAuMDAyMzY4LCAwLjAwMjM2NywgMC4wMDIzNjQsIDAuMDAyMzYiLCBcCi0gICAgICAgICAgIjAuMDAyMzQ1LCAwLjAwMjM1MiwgMC4wMDIzNjQsIDAuMDAyMzY2LCAwLjAwMjM2NSwgMC4wMDIzNjQsIDAuMDAyMzYiLCBcCi0gICAgICAgICAgIjAuMDAyMzQxLCAwLjAwMjM0OCwgMC4wMDIzNjIsIDAuMDAyMzY0LCAwLjAwMjM2NSwgMC4wMDIzNjIsIDAuMDAyMzYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDAwNzgsIDAuMDAwMDc5LCAwLjAwMDA4LCAwLjAwMDA4LCAwLjAwMDA4MSwgMC4wMDAwODEsIDAuMDAwMDgxIiwgXAotICAgICAgICAgICIwLjAwMDA4OCwgMC4wMDAwOTIsIDAuMDAwMDk3LCAwLjAwMDA5OSwgMC4wMDAwOTksIDAuMDAwMDk5LCAwLjAwMDEiLCBcCi0gICAgICAgICAgIjAuMDAwMDg2LCAwLjAwMDA5MywgMC4wMDAxMDMsIDAuMDAwMTA1LCAwLjAwMDEwNiwgMC4wMDAxMDcsIDAuMDAwMTA3IiwgXAotICAgICAgICAgICIwLjAwMDA4MiwgMC4wMDAwOSwgMC4wMDAxMDMsIDAuMDAwMTA3LCAwLjAwMDEwOCwgMC4wMDAxMSwgMC4wMDAxMSIsIFwKLSAgICAgICAgICAiMC4wMDAwNzcsIDAuMDAwMDg3LCAwLjAwMDEwMywgMC4wMDAxMDYsIDAuMDAwMTA5LCAwLjAwMDExMSwgMC4wMDAxMTEiLCBcCi0gICAgICAgICAgIjAuMDAwMDY5LCAwLjAwMDA4MSwgMC4wMDAxMDEsIDAuMDAwMTA1LCAwLjAwMDEwOSwgMC4wMDAxMTEsIDAuMDAwMTEyIiwgXAotICAgICAgICAgICIwLjAwMDA2MywgMC4wMDAwNzcsIDAuMDAwMDk5LCAwLjAwMDEwNCwgMC4wMDAxMDgsIDAuMDAwMTExLCAwLjAwMDExMiIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBBT0kyMjJYMiAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoQU9JMjIyWDIpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4yNTQwMDk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE2NTA5NzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE2Mzk3NDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE2NTA5NzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA2MTIsIDAuMDAwNjEyLCAwLjAwMDYxMiwgMC4wMDA2MTIsIDAuMDAwNjExLCAwLjAwMDYxMSwgMC4wMDA2MTEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA2MzIsIDAuMDAwNjE4LCAwLjAwMDYxNiwgMC4wMDA2MTYsIDAuMDAwNjE1LCAwLjAwMDYxNSwgMC4wMDA2MTUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEExKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE1MTM5MTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE0OTY4NzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE1MTM5MTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyODcsIDAuMDAwMjg3LCAwLjAwMDI4NywgMC4wMDAyODcsIDAuMDAwMjg3LCAwLjAwMDI4NywgMC4wMDAyODciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA2OTUsIDAuMDAwNjk1LCAwLjAwMDY5NiwgMC4wMDA2OTYsIDAuMDAwNjk2LCAwLjAwMDY5NiwgMC4wMDA2OTYiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE1NzAwNzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE1NjMxMTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE1NzAwNzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA2MTMsIDAuMDAwNjEyLCAwLjAwMDYxMiwgMC4wMDA2MTIsIDAuMDAwNjEyLCAwLjAwMDYxMiwgMC4wMDA2MTIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA2MjgsIDAuMDAwNjE3LCAwLjAwMDYxNSwgMC4wMDA2MTUsIDAuMDAwNjE1LCAwLjAwMDYxNCwgMC4wMDA2MTQiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIxKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE1MjYyODsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE1MTIxOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTUyNjI4OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDI0LCAwLjAwMDIzOSwgMC4wMDAyMzksIDAuMDAwMjQsIDAuMDAwMjM5LCAwLjAwMDIzOSwgMC4wMDAyMzkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA2OTUsIDAuMDAwNjk1LCAwLjAwMDY5NiwgMC4wMDA2OTYsIDAuMDAwNjk2LCAwLjAwMDY5NSwgMC4wMDA2OTUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEMwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE2MjQ0ODsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE2MjQ0ODsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE2MTk4OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDYxMiwgMC4wMDA2MTIsIDAuMDAwNjEyLCAwLjAwMDYxMiwgMC4wMDA2MTIsIDAuMDAwNjEyLCAwLjAwMDYxMiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDYzMywgMC4wMDA2MTgsIDAuMDAwNjE2LCAwLjAwMDYxNSwgMC4wMDA2MTUsIDAuMDAwNjE1LCAwLjAwMDYxNCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQzEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTQ3NTQzOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTQ3NDQ2OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTQ3NTQzOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDMwNSwgMC4wMDAzMDYsIDAuMDAwMzA1LCAwLjAwMDMwNiwgMC4wMDAzMDUsIDAuMDAwMzA2LCAwLjAwMDMwNiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDY5NSwgMC4wMDA2OTUsIDAuMDAwNjk1LCAwLjAwMDY5NSwgMC4wMDA2OTUsIDAuMDAwNjk1LCAwLjAwMDY5NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjA5ODM2ODc7Ci0gICAgZnVuY3Rpb24gOiAiKCEoKChDMCBDMSkrKEEwIEExKSkrKEIwIEIxKSkpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjI2NzMzLCAwLjc5NzQ5NSwgMS4yNTI5OSwgMS44MjUzNCwgMi4zOTc3OCwgMi45NzA5LCAzLjU0MzMiLCBcCi0gICAgICAgICAgIjAuMjM4Mzk5LCAwLjgwOTQ2MiwgMS4yNjQ4OSwgMS44MzczOSwgMi40MTAzOSwgMi45ODI0MSwgMy41NTUxNyIsIFwKLSAgICAgICAgICAiMC4yNTI3NjQsIDAuODIzNjI5LCAxLjI3OTM4LCAxLjg1MTk5LCAyLjQyNDI5LCAyLjk5Njg1LCAzLjU2OTUiLCBcCi0gICAgICAgICAgIjAuMjY2MDk0LCAwLjgzNjk0NSwgMS4yOTI3LCAxLjg2NTEzLCAyLjQzNzQ2LCAzLjAxMDI3LCAzLjU4Mjk3IiwgXAotICAgICAgICAgICIwLjI3ODg0NCwgMC44NDk4NjksIDEuMzA1NDIsIDEuODc3NSwgMi40NTEwNSwgMy4wMjM2MSwgMy41OTU2NSIsIFwKLSAgICAgICAgICAiMC4yOTgzMjQsIDAuODY5NDU1LCAxLjMyNTE3LCAxLjg5NzA5LCAyLjQ3MDU1LCAzLjA0MzI2LCAzLjYxNTEyIiwgXAotICAgICAgICAgICIwLjMxNDYzMywgMC44ODU3NTIsIDEuMzQxMjMsIDEuOTEzMDcsIDIuNDg3MTMsIDMuMDU5NDYsIDMuNjMxNzQiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzMwMDgsIDEuNDI2NjQsIDIuMzA5MTIsIDMuNDEyODgsIDQuNTE5NTEsIDUuNjI3MjksIDYuNzMyNzEiLCBcCi0gICAgICAgICAgIjAuMzMwMDUyLCAxLjQyNjkxLCAyLjMwOTE2LCAzLjQxMjg5LCA0LjUxOTQ4LCA1LjYyNjI5LCA2LjczMzY3IiwgXAotICAgICAgICAgICIwLjMzMDEzNSwgMS40Mjc1NiwgMi4zMDkyMiwgMy40MTI4OSwgNC41MTk5MiwgNS42Mjc2LCA2LjczMzM2IiwgXAotICAgICAgICAgICIwLjMzMDA0NywgMS40MjY2OCwgMi4zMDkxNiwgMy40MTI4NywgNC41MjAwNywgNS42MjcyMSwgNi43MzMwMSIsIFwKLSAgICAgICAgICAiMC4zMzAwNTQsIDEuNDI2NzQsIDIuMzEwNDMsIDMuNDEyNzcsIDQuNTE5OSwgNS42MjcwMiwgNi43MzMyOSIsIFwKLSAgICAgICAgICAiMC4zMjk4MzYsIDEuNDI2NjMsIDIuMzA5MjcsIDMuNDEyOCwgNC41MjAxNSwgNS42MjY5LCA2LjczMzgzIiwgXAotICAgICAgICAgICIwLjMzMDUwMSwgMS40MjY3MSwgMi4zMDg2NSwgMy40MTQxLCA0LjUxOTQxLCA1LjYzMDcyLCA2LjczNzQxIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE2NjEyOSwgMC41ODA1MDUsIDAuOTA3ODc3LCAxLjMxNjc3LCAxLjcyNDQzLCAyLjEzMzA0LCAyLjUzOTg4IiwgXAotICAgICAgICAgICIwLjE3NzYwMywgMC41OTE4NDQsIDAuOTE5MjYyLCAxLjMyODIyLCAxLjczNTgxLCAyLjE0NDUzLCAyLjU1MjQ3IiwgXAotICAgICAgICAgICIwLjE5MTExNCwgMC42MDU0NzcsIDAuOTMzMTY0LCAxLjM0MTgsIDEuNzQ5NDgsIDIuMTU4MTUsIDIuNTY1NDgiLCBcCi0gICAgICAgICAgIjAuMjA0NTc2LCAwLjYxOTAyNSwgMC45NDY3MjQsIDEuMzU0OTcsIDEuNzYzNjgsIDIuMTcwODUsIDIuNTc5OSIsIFwKLSAgICAgICAgICAiMC4yMTc5NTMsIDAuNjMyNTExLCAwLjk2MDE2NywgMS4zNjg5LCAxLjc3NjU3LCAyLjE4NTMxLCAyLjU5MjY0IiwgXAotICAgICAgICAgICIwLjIzOTM2MiwgMC42NTQwMTEsIDAuOTgxNjI2LCAxLjM5MDA2LCAxLjc5ODc3LCAyLjIwNzAxLCAyLjYxMzg0IiwgXAotICAgICAgICAgICIwLjI1ODA3NCwgMC42NzMwMzMsIDEuMDAwNjksIDEuNDA5NDksIDEuODE3NzksIDIuMjI1MzgsIDIuNjM0MTIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjc0Nzg0LCAxLjA1NDg5LCAxLjY3ODY4LCAyLjQ1ODg2LCAzLjIzNzcsIDQuMDE3NzIsIDQuNzk3MTUiLCBcCi0gICAgICAgICAgIjAuMjc0NjU4LCAxLjA1NDg1LCAxLjY3ODczLCAyLjQ1ODY1LCAzLjIzODU1LCA0LjAxNzkxLCA0Ljc5NjQ4IiwgXAotICAgICAgICAgICIwLjI3NDUxMiwgMS4wNTQ0NiwgMS42Nzg4MSwgMi40NTc5LCAzLjIzNzk0LCA0LjAxNzkyLCA0Ljc5NzE4IiwgXAotICAgICAgICAgICIwLjI3NDIyOCwgMS4wNTQ0NywgMS42Nzg2NiwgMi40NTg0NSwgMy4yMzg0OCwgNC4wMTc1NiwgNC43OTcyMiIsIFwKLSAgICAgICAgICAiMC4yNzQ0NDUsIDEuMDU0NDgsIDEuNjc4ODEsIDIuNDU4MzEsIDMuMjM3NTEsIDQuMDE3NjIsIDQuNzk2ODMiLCBcCi0gICAgICAgICAgIjAuMjc2NTU2LCAxLjA1NDg0LCAxLjY3ODY0LCAyLjQ1ODU3LCAzLjIzODI3LCA0LjAxNzg5LCA0Ljc5Njk0IiwgXAotICAgICAgICAgICIwLjI4MDA5MiwgMS4wNTQ0NCwgMS42Nzg3OSwgMi40NTg3NywgMy4yMzgxMiwgNC4wMTc3LCA0Ljc5NzIzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkExIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMTk5OSwgMC43OTQ2MDQsIDEuMjUzNSwgMS44Mjk5MywgMi40MDY0NywgMi45ODM3MSwgMy41NjA3MiIsIFwKLSAgICAgICAgICAiMC4yMzE4NzUsIDAuODA2NTU2LCAxLjI2NTcsIDEuODQyMTYsIDIuNDE4NDgsIDIuOTk1NzksIDMuNTcyOCIsIFwKLSAgICAgICAgICAiMC4yNDYxOCwgMC44MjEwNDIsIDEuMjgwMTgsIDEuODU2OTEsIDIuNDMzNDcsIDMuMDEwMzIsIDMuNTg3MjciLCBcCi0gICAgICAgICAgIjAuMjU5NDQ2LCAwLjgzNDUxOSwgMS4yOTM1MywgMS44Njk4MywgMi40NDc0NSwgMy4wMjM4NSwgMy42MDA4NiIsIFwKLSAgICAgICAgICAiMC4yNzIwNzYsIDAuODQ3Mjk0LCAxLjMwNjMsIDEuODgyMDksIDIuNDYwNDMsIDMuMDM3MDIsIDMuNjEzNDEiLCBcCi0gICAgICAgICAgIjAuMjkxNDE3LCAwLjg2NjkxNCwgMS4zMjU1MiwgMS45MDIxLCAyLjQ3OTMzLCAzLjA1NjIxLCAzLjYzMzA1IiwgXAotICAgICAgICAgICIwLjMwNzY0NiwgMC44ODM0MzMsIDEuMzQyMjIsIDEuOTE4NjksIDIuNDk2LCAzLjA3Mjc5LCAzLjY0OTc0Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMyMjk5LCAxLjQyNzU4LCAyLjMxOTM2LCAzLjQzODY4LCA0LjU0ODA1LCA1LjY2NDAyLCA2Ljc3NDk4IiwgXAotICAgICAgICAgICIwLjMyMzMxMywgMS40MjgwNSwgMi4zMTk4MiwgMy40Mjk2NSwgNC41NTY1NCwgNS42NjM1NSwgNi43NzQ1IiwgXAotICAgICAgICAgICIwLjMyMzMyOCwgMS40MjgwNSwgMi4zMTk3NCwgMy40NDAwNywgNC41NTc5NCwgNS42NjM0NywgNi43NzY1OSIsIFwKLSAgICAgICAgICAiMC4zMjMzMjUsIDEuNDI3MDEsIDIuMzE2NzUsIDMuNDM4MSwgNC41NTg4OCwgNS42NjQ2OSwgNi43NzQ5OSIsIFwKLSAgICAgICAgICAiMC4zMjMzMjIsIDEuNDI4MTQsIDIuMzE2NiwgMy40MzI0NSwgNC41NDQyMiwgNS42NjUwNCwgNi43NzQwNiIsIFwKLSAgICAgICAgICAiMC4zMjMxMTYsIDEuNDI3NDgsIDIuMzIwNTcsIDMuNDI5NzksIDQuNTU4MTUsIDUuNjU3NiwgNi43NzgyOCIsIFwKLSAgICAgICAgICAiMC4zMjM4MjksIDEuNDI3MDIsIDIuMzE4NjEsIDMuNDMyNzMsIDQuNTU4MTEsIDUuNjYzNTksIDYuNzc3MjQiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTYxNDM0LCAwLjU3NTY4NSwgMC45MDM0NDksIDEuMzExNTcsIDEuNzE5NTYsIDIuMTI3NTQsIDIuNTM2MiIsIFwKLSAgICAgICAgICAiMC4xNzE2MTYsIDAuNTg1ODI4LCAwLjkxMzM0NywgMS4zMjE5MiwgMS43MzA1LCAyLjEzNzcsIDIuNTQ1NjMiLCBcCi0gICAgICAgICAgIjAuMTg0NjQyLCAwLjU5ODk1LCAwLjkyNjY0LCAxLjMzNTE2LCAxLjc0MjkzLCAyLjE1MTU4LCAyLjU1OTcxIiwgXAotICAgICAgICAgICIwLjE5NzgxMiwgMC42MTIxODcsIDAuOTQwMDI1LCAxLjM0ODE5LCAxLjc1Njc1LCAyLjE2NDIsIDIuNTcyOTUiLCBcCi0gICAgICAgICAgIjAuMjEwOTExLCAwLjYyNTM5NSwgMC45NTMxMTksIDEuMzYxMzIsIDEuNzY5NzksIDIuMTc3MzYsIDIuNTg2MTkiLCBcCi0gICAgICAgICAgIjAuMjMyMTEzLCAwLjY0NjY1NywgMC45NzQyNjIsIDEuMzgyNjYsIDEuNzkwNzUsIDIuMTk5MzcsIDIuNjA3NDMiLCBcCi0gICAgICAgICAgIjAuMjUwOTE2LCAwLjY2NTE5MSwgMC45OTI4MTQsIDEuNDAxNSwgMS44MDk3MiwgMi4yMTgxOCwgMi42MjYwNSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yNzQ5MzMsIDEuMDU0OTIsIDEuNjc4NjUsIDIuNDU4ODMsIDMuMjM3OTIsIDQuMDE3ODksIDQuNzk3MzkiLCBcCi0gICAgICAgICAgIjAuMjc0NjYzLCAxLjA1NDQ4LCAxLjY3ODUsIDIuNDU4OTUsIDMuMjM3MzUsIDQuMDE1OTgsIDQuNzk1MTIiLCBcCi0gICAgICAgICAgIjAuMjc0MzQxLCAxLjA1NDQ4LCAxLjY3ODc4LCAyLjQ1ODg4LCAzLjIzODM4LCA0LjAxNzY3LCA0Ljc5NzI2IiwgXAotICAgICAgICAgICIwLjI3Mzg5MiwgMS4wNTQ0OCwgMS42NzgyNiwgMi40NTc4NCwgMy4yMzc5MywgNC4wMTc3OSwgNC43OTc1IiwgXAotICAgICAgICAgICIwLjI3NDg5NCwgMS4wNTQ0OCwgMS42NzgyOCwgMi40NTc5MSwgMy4yMzgwOCwgNC4wMTc3NCwgNC43OTY5MyIsIFwKLSAgICAgICAgICAiMC4yNzkzMzIsIDEuMDU0NDcsIDEuNjc4NywgMi40NTg4NCwgMy4yMzg0NiwgNC4wMTgyNSwgNC43OTY5MiIsIFwKLSAgICAgICAgICAiMC4yODUxOTUsIDEuMDU0NzksIDEuNjc4NDksIDIuNDU4ODcsIDMuMjM3NjEsIDQuMDE3NTYsIDQuNzk1ODQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjAiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIwODk2MywgMC43Nzk3NzEsIDEuMjM1MTYsIDEuODEwODcsIDIuMzg4NDYsIDIuOTY0OCwgMy41NDE4MSIsIFwKLSAgICAgICAgICAiMC4yMTk0NjYsIDAuNzkwMzMsIDEuMjQ1NjUsIDEuODIxMzksIDIuMzk4OTYsIDIuOTc1MzksIDMuNTUyMzkiLCBcCi0gICAgICAgICAgIjAuMjMyODA4LCAwLjgwMzY2LCAxLjI1OTQ2LCAxLjgzNTA1LCAyLjQxMjM4LCAyLjk4OTE3LCAzLjU2NTk5IiwgXAotICAgICAgICAgICIwLjI0NTY5NiwgMC44MTY1NDgsIDEuMjcyMjgsIDEuODQ4MTMsIDIuNDI0ODUsIDMuMDAxNjYsIDMuNTc4NTciLCBcCi0gICAgICAgICAgIjAuMjU4MTExLCAwLjgyOTE4LCAxLjI4NDczLCAxLjg2MDMyLCAyLjQzNzg4LCAzLjAxNDY0LCAzLjU5MTA0IiwgXAotICAgICAgICAgICIwLjI3NzM3MywgMC44NDg1MTgsIDEuMzA0LCAxLjg3OTcyLCAyLjQ1NjI1LCAzLjAzMzQ2LCAzLjYxMDQ2IiwgXAotICAgICAgICAgICIwLjI5NDA2MSwgMC44NjUzOTcsIDEuMzIwNzMsIDEuODk2NDQsIDIuNDczNjIsIDMuMDUwNjksIDMuNjI3MTkiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzMwMTEzLCAxLjQyNjk5LCAyLjMxNTY2LCAzLjQyNjc4LCA0LjUzNzk2LCA1LjY0OTM0LCA2Ljc1OTkxIiwgXAotICAgICAgICAgICIwLjMzMDA0LCAxLjQyNjk4LCAyLjMxNTU1LCAzLjQyNjc2LCA0LjUzNzUzLCA1LjY0ODUzLCA2Ljc1OTkxIiwgXAotICAgICAgICAgICIwLjMzMDA0NCwgMS40Mjc0NCwgMi4zMTYyOSwgMy40MjY4MywgNC41Mzc1MSwgNS42NDkzNSwgNi43NTk2MiIsIFwKLSAgICAgICAgICAiMC4zMzAwNDksIDEuNDI4LCAyLjMxNTM2LCAzLjQyNzAzLCA0LjUzNzgyLCA1LjY1MDI5LCA2Ljc2MDgxIiwgXAotICAgICAgICAgICIwLjMyOTg2OCwgMS40MjcsIDIuMzE2OTUsIDMuNDI2ODEsIDQuNTM3MTQsIDUuNjQ5MzUsIDYuNzYxNjQiLCBcCi0gICAgICAgICAgIjAuMzMwNTAzLCAxLjQyODAzLCAyLjMxNjA1LCAzLjQyNzA3LCA0LjU0MTAyLCA1LjY1MDE1LCA2Ljc1ODkiLCBcCi0gICAgICAgICAgIjAuMzMxNzQ5LCAxLjQyNzUxLCAyLjMxNjA2LCAzLjQyNzA0LCA0LjUzODU2LCA1LjY0ODkyLCA2Ljc2MzkiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTQ0NTUyLCAwLjU1NDU4NCwgMC44ODExMDksIDEuMjg5MTUsIDEuNjk3MTMsIDIuMTA1MzEsIDIuNTEyNTQiLCBcCi0gICAgICAgICAgIjAuMTU2NDQ1LCAwLjU2NjU4NCwgMC44OTMwODcsIDEuMzAxMTYsIDEuNzA4NzksIDIuMTE2ODQsIDIuNTI0MjkiLCBcCi0gICAgICAgICAgIjAuMTcwMDU2LCAwLjU4MDM4NiwgMC45MDY5NzEsIDEuMzE0ODcsIDEuNzIzMzQsIDIuMTMwNjgsIDIuNTM3OTgiLCBcCi0gICAgICAgICAgIjAuMTgzNTc1LCAwLjU5Mzk4OSwgMC45MjA2MDMsIDEuMzI4NjksIDEuNzM2NTgsIDIuMTQ0MjEsIDIuNTUyMTIiLCBcCi0gICAgICAgICAgIjAuMTk2OTA1LCAwLjYwNzgyMywgMC45MzQxNDIsIDEuMzQyMTYsIDEuNzUwMTQsIDIuMTU4MiwgMi41NjU5IiwgXAotICAgICAgICAgICIwLjIxODQ3OSwgMC42MjkyMjMsIDAuOTU2MDE0LCAxLjM2NDA2LCAxLjc3MTcsIDIuMTgsIDIuNTg3MTciLCBcCi0gICAgICAgICAgIjAuMjM2NzQyLCAwLjY0ODEyNCwgMC45NzQ4MzgsIDEuMzgyODMsIDEuNzkwOSwgMi4xOTg2OCwgMi42MDY0NCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yNTA1NDIsIDEuMDMwMDksIDEuNjUzMDYsIDIuNDMzMDIsIDMuMjExNzgsIDMuOTkxMTQsIDQuNzcwNjYiLCBcCi0gICAgICAgICAgIjAuMjUwNTQ2LCAxLjAyOTk5LCAxLjY1Mjg4LCAyLjQzMzA4LCAzLjIxMTE5LCAzLjk5MDkxLCA0Ljc3MDMzIiwgXAotICAgICAgICAgICIwLjI1MDUxOSwgMS4wMzAwMiwgMS42NTM2NywgMi40MzIzLCAzLjIxMTIsIDMuOTkwOTYsIDQuNzcwMDciLCBcCi0gICAgICAgICAgIjAuMjUwNDc5LCAxLjAyOTk4LCAxLjY1MzY1LCAyLjQzMzAzLCAzLjIxMjAzLCAzLjk4OTk2LCA0Ljc2OTc2IiwgXAotICAgICAgICAgICIwLjI1MTE4LCAxLjAyOTk4LCAxLjY1MzI5LCAyLjQzMjk5LCAzLjIxMjI3LCAzLjk5MTQsIDQuNzcwMzciLCBcCi0gICAgICAgICAgIjAuMjU0MjIxLCAxLjAzMDE1LCAxLjY1Mzc0LCAyLjQzMjMzLCAzLjIxMTMsIDMuOTkxMjEsIDQuNzcwMTYiLCBcCi0gICAgICAgICAgIjAuMjU4NjA1LCAxLjAyOTgsIDEuNjUzMjEsIDIuNDMyMzMsIDMuMjExNjMsIDMuOTkwOTksIDQuNzcwMTciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIwMDgyLCAwLjc3NDQ0NiwgMS4yMzMwNCwgMS44MDg4MSwgMi4zODU2NCwgMi45NjMzNCwgMy41NDIwOCIsIFwKLSAgICAgICAgICAiMC4yMTE1ODgsIDAuNzg1NTc2LCAxLjI0Mzg5LCAxLjgxOTg3LCAyLjM5NjY0LCAyLjk3NDgyLCAzLjU1MzI3IiwgXAotICAgICAgICAgICIwLjIyNDk0MSwgMC43OTg5ODMsIDEuMjU3MTYsIDEuODMzMjksIDIuNDEwMTcsIDIuOTg4MDgsIDMuNTY2NzciLCBcCi0gICAgICAgICAgIjAuMjM3NjQ0LCAwLjgxMTczMywgMS4yNzA0NSwgMS44NDYyMywgMi40MjI3MywgMy4wMDA3NywgMy41Nzk0NiIsIFwKLSAgICAgICAgICAiMC4yNDk5NjgsIDAuODI0MjU0LCAxLjI4MjU1LCAxLjg1ODI0LCAyLjQzNTY5LCAzLjAxMzg2LCAzLjU5MTg0IiwgXAotICAgICAgICAgICIwLjI2OTA0MiwgMC44NDM1ODYsIDEuMzAyMTMsIDEuODc4MDEsIDIuNDU0NDQsIDMuMDMyNTEsIDMuNjExMjciLCBcCi0gICAgICAgICAgIjAuMjg1NTczLCAwLjg2MDI4MiwgMS4zMTg4NCwgMS44OTQ2NSwgMi40NzE4NywgMy4wNDk2MywgMy42Mjg0MSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMjIyOTQsIDEuNDI1MDYsIDIuMzEzODUsIDMuNDM3NjcsIDQuNTU4NzUsIDUuNjY0NDksIDYuNzc4MDYiLCBcCi0gICAgICAgICAgIjAuMzIyMzAxLCAxLjQyNTQ1LCAyLjMxNDgzLCAzLjQzNzc0LCA0LjU1ODcyLCA1LjY1NzQyLCA2Ljc3Mzc0IiwgXAotICAgICAgICAgICIwLjMyMjMwMSwgMS40MjUwNywgMi4zMTk2NiwgMy40Mzc4NCwgNC41NTgzNiwgNS42NjExNCwgNi43NzQyOSIsIFwKLSAgICAgICAgICAiMC4zMjIyOTUsIDEuNDI2MTEsIDIuMzE5NzEsIDMuNDI4MTgsIDQuNTU4MTQsIDUuNjYzNTIsIDYuNzc2NTgiLCBcCi0gICAgICAgICAgIjAuMzIyMDU2LCAxLjQyNTEyLCAyLjMxNjI5LCAzLjQzODAyLCA0LjU0MzQ1LCA1LjY2NTA3LCA2Ljc3ODIzIiwgXAotICAgICAgICAgICIwLjMyMjU1MiwgMS40MjU2LCAyLjMyMDI4LCAzLjQyOTI5LCA0LjU1NjU5LCA1LjY2MzIzLCA2Ljc3NDQyIiwgXAotICAgICAgICAgICIwLjMyNDQ5MywgMS40MjQ5OCwgMi4zMTY0LCAzLjQzODg3LCA0LjU1ODU3LCA1LjY2MzQsIDYuNzc4MzgiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTM5Mjg1LCAwLjU0OTMyMiwgMC44NzYzMzEsIDEuMjgzOTksIDEuNjkxODgsIDIuMDk5NzIsIDIuNTA3MjgiLCBcCi0gICAgICAgICAgIjAuMTQ5ODU5LCAwLjU2MDA2NiwgMC44ODY3MjIsIDEuMjk0NjMsIDEuNzAyMzIsIDIuMTEwMTMsIDIuNTE3NTciLCBcCi0gICAgICAgICAgIjAuMTYyOTMzLCAwLjU3MzMwMywgMC44OTk4NzMsIDEuMzA3NzgsIDEuNzE1OTYsIDIuMTIzMzYsIDIuNTMxMzIiLCBcCi0gICAgICAgICAgIjAuMTc2MTM2LCAwLjU4NjY1MywgMC45MTMzNzIsIDEuMzIxMzMsIDEuNzI5MDMsIDIuMTM3MzgsIDIuNTQ0NzIiLCBcCi0gICAgICAgICAgIjAuMTg5MTYyLCAwLjYwMDAxMywgMC45MjYzNiwgMS4zMzQ1MywgMS43NDIyNCwgMi4xNTA0MywgMi41NTc5NSIsIFwKLSAgICAgICAgICAiMC4yMTAzMjcsIDAuNjIwODg0LCAwLjk0NzY0MywgMS4zNTU2NCwgMS43NjMzMiwgMi4xNzEyNCwgMi41Nzg4MSIsIFwKLSAgICAgICAgICAiMC4yMzAxMTcsIDAuNjM5NDc1LCAwLjk2NjE3MywgMS4zNzQyMSwgMS43ODIwNSwgMi4xODk1NiwgMi41OTc4OCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yNTA1NDEsIDEuMDI5OSwgMS42NTMxNCwgMi40MzIzOCwgMy4yMTE3MiwgMy45OTExNSwgNC43NzA1NyIsIFwKLSAgICAgICAgICAiMC4yNTA1MTcsIDEuMDI5OTgsIDEuNjUzMDEsIDIuNDMzMDUsIDMuMjExNTgsIDMuOTkwODIsIDQuNzY5NDciLCBcCi0gICAgICAgICAgIjAuMjUwNTAxLCAxLjAzMDE5LCAxLjY1MzY1LCAyLjQzMjM2LCAzLjIxMTI1LCAzLjk5MTEsIDQuNzcwMjciLCBcCi0gICAgICAgICAgIjAuMjUwNjgsIDEuMDI5OTUsIDEuNjUzMjYsIDIuNDMzMSwgMy4yMTIzMiwgMy45OTAwMSwgNC43NzAxMiIsIFwKLSAgICAgICAgICAiMC4yNTI1NjUsIDEuMDMwMDEsIDEuNjUzMTgsIDIuNDMyMjksIDMuMjEyMDcsIDMuOTkwODEsIDQuNzY5OSIsIFwKLSAgICAgICAgICAiMC4yNTg0MDQsIDEuMDMwMDgsIDEuNjUzNzgsIDIuNDMzMDgsIDMuMjEyMjUsIDMuOTkxMzcsIDQuNzcwMTEiLCBcCi0gICAgICAgICAgIjAuMjY0ODM3LCAxLjAyOTgyLCAxLjY1Mjk2LCAyLjQzMzE1LCAzLjIxMTI3LCAzLjk5MDkzLCA0Ljc3MDQ0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNzE5ODEsIDAuNzQyODA4LCAxLjE5ODE0LCAxLjc3MDU4LCAyLjM0NzQyLCAyLjkyMzkyLCAzLjQ5OTQ5IiwgXAotICAgICAgICAgICIwLjE4MTczNSwgMC43NTI2NjcsIDEuMjA4MTMsIDEuNzgwMjEsIDIuMzU2NzksIDIuOTMzMjUsIDMuNTA5NjUiLCBcCi0gICAgICAgICAgIjAuMTkzOTQsIDAuNzY1MDA4LCAxLjIyMDQ2LCAxLjc5Mjc4LCAyLjM3MDA0LCAyLjk0NTUxLCAzLjUyMjA3IiwgXAotICAgICAgICAgICIwLjIwNjEyMywgMC43NzcxMjYsIDEuMjMyNzYsIDEuODA0ODUsIDIuMzgxODIsIDIuOTU3OTIsIDMuNTM0MjQiLCBcCi0gICAgICAgICAgIjAuMjE4Mzc4LCAwLjc4OTU1LCAxLjI0NDkzLCAxLjgxNzEyLCAyLjM5NDIsIDIuOTcwMjIsIDMuNTQ2NTUiLCBcCi0gICAgICAgICAgIjAuMjM3OTg5LCAwLjgwOTIxNSwgMS4yNjQ5MywgMS44MzY3OCwgMi40MTM5OSwgMi45ODk4OCwgMy41NjYxOSIsIFwKLSAgICAgICAgICAiMC4yNTYxNzYsIDAuODI2MjU3LCAxLjI4MjIxLCAxLjg1Mzg3LCAyLjQzMDQ3LCAzLjAwNzA2LCAzLjU4MzUyIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMyOTQ4OSwgMS40MjU4OCwgMi4zMTE3MywgMy40MjE4NiwgNC41MzI4NSwgNS42NDAzOSwgNi43NTA5NCIsIFwKLSAgICAgICAgICAiMC4zMjkxNTQsIDEuNDI2NDMsIDIuMzEyMjIsIDMuNDIxNjQsIDQuNTMyNDQsIDUuNjQyOTcsIDYuNzUxMTEiLCBcCi0gICAgICAgICAgIjAuMzI4MjMsIDEuNDI1ODgsIDIuMzExOTUsIDMuNDIwODIsIDQuNTMxNDQsIDUuNjQ1MDksIDYuNzU1MDkiLCBcCi0gICAgICAgICAgIjAuMzI2OTEsIDEuNDI2MzMsIDIuMzExNzksIDMuNDIzMzksIDQuNTMxODIsIDUuNjQzMiwgNi43NTIzMiIsIFwKLSAgICAgICAgICAiMC4zMjc1NSwgMS40MjU1LCAyLjMxMzI3LCAzLjQyMzQ2LCA0LjUzMTczLCA1LjY0NDg5LCA2Ljc1MjkxIiwgXAotICAgICAgICAgICIwLjMzMTI2OCwgMS40MjU5LCAyLjMxMjMzLCAzLjQyMTksIDQuNTMxNTUsIDUuNjQ0ODksIDYuNzUyMzgiLCBcCi0gICAgICAgICAgIjAuMzM2NzI3LCAxLjQyNTgxLCAyLjMxMjQ5LCAzLjQyMTAyLCA0LjUzMjkxLCA1LjY0MjMxLCA2Ljc1MDc4Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExODM1MywgMC41MjY0NDEsIDAuODUyODI2LCAxLjI2MDU3LCAxLjY2ODQxLCAyLjA3NjAxLCAyLjQ4NDAxIiwgXAotICAgICAgICAgICIwLjEzMDI3NCwgMC41Mzg1NTMsIDAuODY0Nzk1LCAxLjI3MjYxLCAxLjY4MDY2LCAyLjA4ODQ0LCAyLjQ5NjM0IiwgXAotICAgICAgICAgICIwLjE0MzkwNywgMC41NTI2OTIsIDAuODc4ODg2LCAxLjI4NjY1LCAxLjY5NDYzLCAyLjEwMjE2LCAyLjUxMDI2IiwgXAotICAgICAgICAgICIwLjE1NzI4MywgMC41NjYwMTcsIDAuODkyNDgyLCAxLjMwMDI4LCAxLjcwOCwgMi4xMTYwNCwgMi41MjM3NSIsIFwKLSAgICAgICAgICAiMC4xNzA1ODIsIDAuNTc5NjIsIDAuOTA2NjU4LCAxLjMxMzc4LCAxLjcyMTYsIDIuMTI5NjUsIDIuNTM3NjkiLCBcCi0gICAgICAgICAgIjAuMTkxOTE3LCAwLjYwMTQyNSwgMC45Mjc5MDksIDEuMzM1NjIsIDEuNzQzNywgMi4xNTE1LCAyLjU1OTE5IiwgXAotICAgICAgICAgICIwLjIxMDczOSwgMC42MjAyNDYsIDAuOTQ2NjI4LCAxLjM1NDUxLCAxLjc2MjM2LCAyLjE3MDQxLCAyLjU3ODIxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIyODI1OSwgMS4wMDYwNSwgMS42Mjg4LCAyLjQwNzIyLCAzLjE4NjIxLCAzLjk2NTk2LCA0Ljc0NTMzIiwgXAotICAgICAgICAgICIwLjIyODI2MywgMS4wMDU4MywgMS42Mjg0NCwgMi40MDY5NCwgMy4xODYyNywgMy45NjU3MywgNC43NDU3MSIsIFwKLSAgICAgICAgICAiMC4yMjgyNiwgMS4wMDYxMywgMS42Mjg4LCAyLjQwNzA5LCAzLjE4NzQzLCAzLjk2NTk4LCA0Ljc0NjE3IiwgXAotICAgICAgICAgICIwLjIyODUxNCwgMS4wMDYwMiwgMS42Mjg4OCwgMi40MDgxMiwgMy4xODcxOCwgMy45NjU5OCwgNC43NDU5NCIsIFwKLSAgICAgICAgICAiMC4yMzAwMDMsIDEuMDA2MDIsIDEuNjI5MjcsIDIuNDA2OTksIDMuMTg2MDksIDMuOTY2NTEsIDQuNzQ2MjkiLCBcCi0gICAgICAgICAgIjAuMjM0MzU5LCAxLjAwNTksIDEuNjI4OTMsIDIuNDA3NjEsIDMuMTg2MjQsIDMuOTY1OSwgNC43NDU3NiIsIFwKLSAgICAgICAgICAiMC4yMzk4OSwgMS4wMDU5NywgMS42Mjg3NSwgMi40MDc4NiwgMy4xODY5LCAzLjk2NjA4LCA0Ljc0NjQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQzEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE2NDk5MSwgMC43Mzk0MiwgMS4xOTc5NywgMS43NzQzLCAyLjM1MTUxLCAyLjkyODc4LCAzLjUwNTE4IiwgXAotICAgICAgICAgICIwLjE3NDk5MywgMC43NDk1MjcsIDEuMjA4MTYsIDEuNzg0NzgsIDIuMzYyMzIsIDIuOTM4NTEsIDMuNTE1NiIsIFwKLSAgICAgICAgICAiMC4xODc2NzcsIDAuNzYyNTkyLCAxLjIyMTY1LCAxLjc5NzkxLCAyLjM3NTI3LCAyLjk1MTY0LCAzLjUyODY1IiwgXAotICAgICAgICAgICIwLjE5OTE5MiwgMC43NzQxMTEsIDEuMjMyOTMsIDEuODA4OTYsIDIuMzg2NTcsIDIuOTYzMjksIDMuNTQwMiIsIFwKLSAgICAgICAgICAiMC4yMTEzMzMsIDAuNzg2NDc3LCAxLjI0NTEyLCAxLjgyMTE5LCAyLjM5ODkxLCAyLjk3NTU4LCAzLjU1MjUiLCBcCi0gICAgICAgICAgIjAuMjMwODc5LCAwLjgwNjExMywgMS4yNjUwOCwgMS44NDA4MiwgMi40MTg2OCwgMi45OTUyMywgMy41NzIxNCIsIFwKLSAgICAgICAgICAiMC4yNDg5MjEsIDAuODIzMTE3LCAxLjI4MjMyLCAxLjg1NzkyLCAyLjQzNTQ1LCAzLjAxMjM5LCAzLjU4OTQ2Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMyMjU3OSwgMS40MjcwMiwgMi4zMTY1MSwgMy40Mzc3NywgNC41NTgyMSwgNS42NTY2NCwgNi43NzgiLCBcCi0gICAgICAgICAgIjAuMzIyNDcsIDEuNDI3NTIsIDIuMzIwNzUsIDMuNDI5ODUsIDQuNTU5MjksIDUuNjYzMzgsIDYuNzc4MTEiLCBcCi0gICAgICAgICAgIjAuMzIxNTM1LCAxLjQyNzAyLCAyLjMyMDM5LCAzLjQzOTI1LCA0LjU1OTA2LCA1LjY2NDQ4LCA2Ljc3NTE1IiwgXAotICAgICAgICAgICIwLjMxOTg4OSwgMS40Mjc5MywgMi4zMTg1NCwgMy40MzIxMSwgNC41NTgyNSwgNS42NjM5OSwgNi43NzgwOCIsIFwKLSAgICAgICAgICAiMC4zMjA5OTQsIDEuNDI3MzQsIDIuMzIxLCAzLjQzMzMzLCA0LjU1ODMyLCA1LjY2NDEzLCA2Ljc3ODI1IiwgXAotICAgICAgICAgICIwLjMyNTQ3OSwgMS40Mjc2MSwgMi4zMTk1NywgMy40MzU4LCA0LjU1ODY5LCA1LjY2NDY4LCA2Ljc3ODI5IiwgXAotICAgICAgICAgICIwLjMzMDc5NiwgMS40MjY5OSwgMi4zMTk5NywgMy40MzIzNywgNC41NDg1OSwgNS42NjM0NywgNi43NzUwOSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTM3MiwgMC41MjE4NTksIDAuODQ4MjA0LCAxLjI1NjYxLCAxLjY2Mzc5LCAyLjA3MTQ5LCAyLjQ3OTM0IiwgXAotICAgICAgICAgICIwLjEyNDQwMywgMC41MzI4LCAwLjg1OTE5OCwgMS4yNjY5OSwgMS42NzQ3NSwgMi4wODI0OSwgMi40OTAzOCIsIFwKLSAgICAgICAgICAiMC4xMzc0OTEsIDAuNTQ2MTE2LCAwLjg3MjU4MywgMS4yODAyNiwgMS42ODgyNSwgMi4wOTU5LCAyLjUwMzg5IiwgXAotICAgICAgICAgICIwLjE1MDY1OSwgMC41NTk0NTEsIDAuODg2MzQxLCAxLjI5Mzc0LCAxLjcwMTYzLCAyLjEwOTIzLCAyLjUxNzI5IiwgXAotICAgICAgICAgICIwLjE2MzgyMiwgMC41NzI3MjMsIDAuODk5MTY4LCAxLjMwNjg5LCAxLjcxNDgxLCAyLjEyMjc2LCAyLjUzMDQ4IiwgXAotICAgICAgICAgICIwLjE4NTk2NiwgMC41OTM5MDksIDAuOTIwMzM1LCAxLjMyODI2LCAxLjczNjAxLCAyLjE0Mzc3LCAyLjU1MTU4IiwgXAotICAgICAgICAgICIwLjIwNDkxLCAwLjYxMjQzLCAwLjkzODk4MiwgMS4zNDY5NSwgMS43NTQ1OSwgMi4xNjI0NSwgMi41NzA1NyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMjgyNDYsIDEuMDA2MDYsIDEuNjI4NzcsIDIuNDA4MjksIDMuMTg2NDUsIDMuOTY2MzcsIDQuNzQ1MjQiLCBcCi0gICAgICAgICAgIjAuMjI4MjQ3LCAxLjAwNjAxLCAxLjYyODQ4LCAyLjQwODE0LCAzLjE4Njg2LCAzLjk2NjUsIDQuNzQ0OTMiLCBcCi0gICAgICAgICAgIjAuMjI4MjM2LCAxLjAwNjAxLCAxLjYyODksIDIuNDA3MDQsIDMuMTg2MTksIDMuOTY2NDQsIDQuNzQ1ODgiLCBcCi0gICAgICAgICAgIjAuMjI5MywgMS4wMDYwMiwgMS42MjkyNSwgMi40MDczLCAzLjE4NjQyLCAzLjk2NDU5LCA0Ljc0NTQ2IiwgXAotICAgICAgICAgICIwLjIzMjM0NCwgMS4wMDU4MywgMS42Mjg4LCAyLjQwNzU4LCAzLjE4NjM0LCAzLjk2NjEzLCA0Ljc0NTU5IiwgXAotICAgICAgICAgICIwLjIzOTM5NSwgMS4wMDU4MiwgMS42MjgzOSwgMi40MDgxMiwgMy4xODcxNSwgMy45NjYyMywgNC43NDQ2MSIsIFwKLSAgICAgICAgICAiMC4yNDc1ODMsIDEuMDA1NzcsIDEuNjI4NTEsIDIuNDA3OTEsIDMuMTg2MzIsIDMuOTY2MzEsIDQuNzQ1MTgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA4MjM3LCAwLjAwODIzNCwgMC4wMDgyMzIsIDAuMDA4MjIyLCAwLjAwODIyNSwgMC4wMDgyMjEsIDAuMDA4MjE4IiwgXAotICAgICAgICAgICIwLjAwODIyMSwgMC4wMDgyMjEsIDAuMDA4MjIxLCAwLjAwODIxNSwgMC4wMDgyMTIsIDAuMDA4MjE0LCAwLjAwODIwNiIsIFwKLSAgICAgICAgICAiMC4wMDgyMTMsIDAuMDA4MjE5LCAwLjAwODIxNiwgMC4wMDgyMTYsIDAuMDA4MjEzLCAwLjAwODIwNywgMC4wMDgyMDMiLCBcCi0gICAgICAgICAgIjAuMDA4MjA3LCAwLjAwODIxNiwgMC4wMDgyMTYsIDAuMDA4MjEyLCAwLjAwODIwOSwgMC4wMDgyMDUsIDAuMDA4MjAyIiwgXAotICAgICAgICAgICIwLjAwODIwNCwgMC4wMDgyMTUsIDAuMDA4MjE0LCAwLjAwODIxMiwgMC4wMDgyMTEsIDAuMDA4MjA4LCAwLjAwODIwMSIsIFwKLSAgICAgICAgICAiMC4wMDgxOTcsIDAuMDA4MjEyLCAwLjAwODIxMiwgMC4wMDgyMTIsIDAuMDA4MjA3LCAwLjAwODIwNCwgMC4wMDgyMDMiLCBcCi0gICAgICAgICAgIjAuMDA4MTk0LCAwLjAwODIxLCAwLjAwODIxLCAwLjAwODIwOSwgMC4wMDgyMDcsIDAuMDA4MjA0LCAwLjAwODIwMSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzMxMSwgMC4wMDMzMDcsIDAuMDAzMzA2LCAwLjAwMzMwNCwgMC4wMDMzMDEsIDAuMDAzMjk4LCAwLjAwMzI5NiIsIFwKLSAgICAgICAgICAiMC4wMDMyODEsIDAuMDAzMjgxLCAwLjAwMzI3OCwgMC4wMDMyNzksIDAuMDAzMjc1LCAwLjAwMzI2OCwgMC4wMDMyNjkiLCBcCi0gICAgICAgICAgIjAuMDAzMjY2LCAwLjAwMzI2OSwgMC4wMDMyNjgsIDAuMDAzMjY4LCAwLjAwMzI2NiwgMC4wMDMyNjEsIDAuMDAzMjYxIiwgXAotICAgICAgICAgICIwLjAwMzI1NCwgMC4wMDMyNjIsIDAuMDAzMjYyLCAwLjAwMzI2MSwgMC4wMDMyNTgsIDAuMDAzMjU3LCAwLjAwMzI1MyIsIFwKLSAgICAgICAgICAiMC4wMDMyNDQsIDAuMDAzMjU4LCAwLjAwMzI1OSwgMC4wMDMyNTksIDAuMDAzMjU2LCAwLjAwMzI1MywgMC4wMDMyNTIiLCBcCi0gICAgICAgICAgIjAuMDAzMjMzLCAwLjAwMzI1MiwgMC4wMDMyNTQsIDAuMDAzMjU0LCAwLjAwMzI1MiwgMC4wMDMyNTEsIDAuMDAzMjUiLCBcCi0gICAgICAgICAgIjAuMDAzMjI0LCAwLjAwMzI0NywgMC4wMDMyNSwgMC4wMDMyNTIsIDAuMDAzMjUxLCAwLjAwMzI0OCwgMC4wMDMyNDciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA3NTc3LCAwLjAwNzU3NywgMC4wMDc1NzYsIDAuMDA3NTcyLCAwLjAwNzU3MiwgMC4wMDc1NjcsIDAuMDA3NTY2IiwgXAotICAgICAgICAgICIwLjAwNzU3NiwgMC4wMDc1ODYsIDAuMDA3NTg3LCAwLjAwNzU4OCwgMC4wMDc1OCwgMC4wMDc1ODMsIDAuMDA3NTgiLCBcCi0gICAgICAgICAgIjAuMDA3NTY1LCAwLjAwNzU4NCwgMC4wMDc1ODQsIDAuMDA3NTg2LCAwLjAwNzU4MywgMC4wMDc1ODEsIDAuMDA3NTc5IiwgXAotICAgICAgICAgICIwLjAwNzU1NSwgMC4wMDc1ODEsIDAuMDA3NTgzLCAwLjAwNzU4NSwgMC4wMDc1ODUsIDAuMDA3NTgyLCAwLjAwNzU3OCIsIFwKLSAgICAgICAgICAiMC4wMDc1NDYsIDAuMDA3NTc5LCAwLjAwNzU4MywgMC4wMDc1ODQsIDAuMDA3NTgzLCAwLjAwNzU4MiwgMC4wMDc1NzkiLCBcCi0gICAgICAgICAgIjAuMDA3NTMzLCAwLjAwNzU3MywgMC4wMDc1NzgsIDAuMDA3NTgsIDAuMDA3NTc5LCAwLjAwNzU3OSwgMC4wMDc1NzYiLCBcCi0gICAgICAgICAgIjAuMDA3NTIzLCAwLjAwNzU2OSwgMC4wMDc1NzQsIDAuMDA3NTc3LCAwLjAwNzU3OCwgMC4wMDc1NzcsIDAuMDA3NTc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzMzExLCAwLjAwMzMxMSwgMC4wMDMzMDksIDAuMDAzMzA0LCAwLjAwMzMwMiwgMC4wMDMzMDMsIDAuMDAzMzAzIiwgXAotICAgICAgICAgICIwLjAwMzI4MSwgMC4wMDMyODIsIDAuMDAzMjgxLCAwLjAwMzI3NiwgMC4wMDMyNzcsIDAuMDAzMjcsIDAuMDAzMjc0IiwgXAotICAgICAgICAgICIwLjAwMzI2MiwgMC4wMDMyNjgsIDAuMDAzMjY5LCAwLjAwMzI2NywgMC4wMDMyNjMsIDAuMDAzMjYzLCAwLjAwMzI1OCIsIFwKLSAgICAgICAgICAiMC4wMDMyNDcsIDAuMDAzMjYxLCAwLjAwMzI2MiwgMC4wMDMyNjEsIDAuMDAzMjYsIDAuMDAzMjU2LCAwLjAwMzI1NiIsIFwKLSAgICAgICAgICAiMC4wMDMyMzksIDAuMDAzMjU2LCAwLjAwMzI1OCwgMC4wMDMyNTcsIDAuMDAzMjU2LCAwLjAwMzI1NCwgMC4wMDMyNSIsIFwKLSAgICAgICAgICAiMC4wMDMyMjQsIDAuMDAzMjUsIDAuMDAzMjU0LCAwLjAwMzI1MywgMC4wMDMyNTIsIDAuMDAzMjUxLCAwLjAwMzI0OCIsIFwKLSAgICAgICAgICAiMC4wMDMyMTYsIDAuMDAzMjQ1LCAwLjAwMzI0OSwgMC4wMDMyNSwgMC4wMDMyNSwgMC4wMDMyNDgsIDAuMDAzMjQ2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjc1NywgMC4wMDY3NTUsIDAuMDA2NzUzLCAwLjAwNjc0OCwgMC4wMDY3NDYsIDAuMDA2NzQyLCAwLjAwNjc0IiwgXAotICAgICAgICAgICIwLjAwNjc0MiwgMC4wMDY3NDEsIDAuMDA2NzM5LCAwLjAwNjczNiwgMC4wMDY3MzIsIDAuMDA2NzMsIDAuMDA2NzI3IiwgXAotICAgICAgICAgICIwLjAwNjczMSwgMC4wMDY3MzYsIDAuMDA2NzM0LCAwLjAwNjczMiwgMC4wMDY3MjksIDAuMDA2NzI4LCAwLjAwNjcyMiIsIFwKLSAgICAgICAgICAiMC4wMDY3MjgsIDAuMDA2NzM2LCAwLjAwNjczNSwgMC4wMDY3MzIsIDAuMDA2NzMxLCAwLjAwNjcyOSwgMC4wMDY3MjMiLCBcCi0gICAgICAgICAgIjAuMDA2NzIyLCAwLjAwNjczMywgMC4wMDY3MzMsIDAuMDA2NzMxLCAwLjAwNjcyOSwgMC4wMDY3MjYsIDAuMDA2NzIzIiwgXAotICAgICAgICAgICIwLjAwNjcxNywgMC4wMDY3MzEsIDAuMDA2NzMyLCAwLjAwNjczLCAwLjAwNjcyOCwgMC4wMDY3MjUsIDAuMDA2NzIxIiwgXAotICAgICAgICAgICIwLjAwNjcxMiwgMC4wMDY3MywgMC4wMDY3MywgMC4wMDY3MywgMC4wMDY3MjcsIDAuMDA2NzIzLCAwLjAwNjcyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyMDE0LCAwLjAwMjAxNCwgMC4wMDIwMTMsIDAuMDAyMDEzLCAwLjAwMjAxMSwgMC4wMDIwMSwgMC4wMDIwMDciLCBcCi0gICAgICAgICAgIjAuMDAyMDE3LCAwLjAwMjAyNCwgMC4wMDIwMjQsIDAuMDAyMDIzLCAwLjAwMjAyMiwgMC4wMDIwMjEsIDAuMDAyMDI0IiwgXAotICAgICAgICAgICIwLjAwMjAwNSwgMC4wMDIwMjQsIDAuMDAyMDI2LCAwLjAwMjAyNiwgMC4wMDIwMjYsIDAuMDAyMDI0LCAwLjAwMjAyNCIsIFwKLSAgICAgICAgICAiMC4wMDE5OTEsIDAuMDAyMDIyLCAwLjAwMjAyNSwgMC4wMDIwMjYsIDAuMDAyMDI2LCAwLjAwMjAyNSwgMC4wMDIwMjQiLCBcCi0gICAgICAgICAgIjAuMDAxOTc5LCAwLjAwMjAxOCwgMC4wMDIwMjMsIDAuMDAyMDI1LCAwLjAwMjAyNiwgMC4wMDIwMjUsIDAuMDAyMDI0IiwgXAotICAgICAgICAgICIwLjAwMTk2MSwgMC4wMDIwMTEsIDAuMDAyMDE5LCAwLjAwMjAyMywgMC4wMDIwMjQsIDAuMDAyMDI0LCAwLjAwMjAyNCIsIFwKLSAgICAgICAgICAiMC4wMDE5NDgsIDAuMDAyMDA1LCAwLjAwMjAxNiwgMC4wMDIwMiwgMC4wMDIwMjIsIDAuMDAyMDIyLCAwLjAwMjAyMiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIxIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDYwNDQsIDAuMDA2MDQ1LCAwLjAwNjA0NCwgMC4wMDYwNDMsIDAuMDA2MDM5LCAwLjAwNjAzOCwgMC4wMDYwMzUiLCBcCi0gICAgICAgICAgIjAuMDA2MDQzLCAwLjAwNjA1MywgMC4wMDYwNTMsIDAuMDA2MDUyLCAwLjAwNjA1LCAwLjAwNjA0OCwgMC4wMDYwNDUiLCBcCi0gICAgICAgICAgIjAuMDA2MDMzLCAwLjAwNjA1MywgMC4wMDYwNTMsIDAuMDA2MDUsIDAuMDA2MDUsIDAuMDA2MDQ5LCAwLjAwNjA0OSIsIFwKLSAgICAgICAgICAiMC4wMDYwMjMsIDAuMDA2MDQ5LCAwLjAwNjA1MywgMC4wMDYwNTIsIDAuMDA2MDUxLCAwLjAwNjA0OSwgMC4wMDYwNDciLCBcCi0gICAgICAgICAgIjAuMDA2MDEyLCAwLjAwNjA0NSwgMC4wMDYwNDksIDAuMDA2MDUsIDAuMDA2MDQ4LCAwLjAwNjA0OCwgMC4wMDYwNDYiLCBcCi0gICAgICAgICAgIjAuMDA1OTk5LCAwLjAwNjA0LCAwLjAwNjA0NiwgMC4wMDYwNDgsIDAuMDA2MDQ4LCAwLjAwNjA0NSwgMC4wMDYwNDUiLCBcCi0gICAgICAgICAgIjAuMDA1OTkxLCAwLjAwNjAzNCwgMC4wMDYwNDMsIDAuMDA2MDQ1LCAwLjAwNjA0NSwgMC4wMDYwNDUsIDAuMDA2MDQyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyMDEyLCAwLjAwMjAxMiwgMC4wMDIwMTIsIDAuMDAyMDEsIDAuMDAyMDA5LCAwLjAwMjAwNywgMC4wMDIwMDkiLCBcCi0gICAgICAgICAgIjAuMDAyMDEzLCAwLjAwMjAyMSwgMC4wMDIwMjMsIDAuMDAyMDIsIDAuMDAyMDIxLCAwLjAwMjAyMywgMC4wMDIwMTkiLCBcCi0gICAgICAgICAgIjAuMDAxOTk5LCAwLjAwMjAyMywgMC4wMDIwMjUsIDAuMDAyMDI0LCAwLjAwMjAyNiwgMC4wMDIwMjMsIDAuMDAyMDIzIiwgXAotICAgICAgICAgICIwLjAwMTk4MywgMC4wMDIwMTksIDAuMDAyMDIzLCAwLjAwMjAyNCwgMC4wMDIwMjQsIDAuMDAyMDIzLCAwLjAwMjAyNCIsIFwKLSAgICAgICAgICAiMC4wMDE5NzIsIDAuMDAyMDE2LCAwLjAwMjAyMSwgMC4wMDIwMjMsIDAuMDAyMDI0LCAwLjAwMjAyNCwgMC4wMDIwMjMiLCBcCi0gICAgICAgICAgIjAuMDAxOTUzLCAwLjAwMjAwOSwgMC4wMDIwMTcsIDAuMDAyMDIsIDAuMDAyMDIyLCAwLjAwMjAyMywgMC4wMDIwMjMiLCBcCi0gICAgICAgICAgIjAuMDAxOTQzLCAwLjAwMjAwMywgMC4wMDIwMTMsIDAuMDAyMDE4LCAwLjAwMjAyLCAwLjAwMjAyMSwgMC4wMDIwMjEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDMCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1MzkzLCAwLjAwNTM5MSwgMC4wMDUzODgsIDAuMDA1Mzg2LCAwLjAwNTM4MiwgMC4wMDUzNzksIDAuMDA1Mzc2IiwgXAotICAgICAgICAgICIwLjAwNTM3MywgMC4wMDUzNzcsIDAuMDA1Mzc5LCAwLjAwNTM3LCAwLjAwNTM3MSwgMC4wMDUzNjYsIDAuMDA1MzY0IiwgXAotICAgICAgICAgICIwLjAwNTM1OSwgMC4wMDUzNzIsIDAuMDA1Mzc0LCAwLjAwNTM2OSwgMC4wMDUzNjYsIDAuMDA1MzY3LCAwLjAwNTM2IiwgXAotICAgICAgICAgICIwLjAwNTM1LCAwLjAwNTM2OCwgMC4wMDUzNywgMC4wMDUzNjgsIDAuMDA1MzY0LCAwLjAwNTM2NSwgMC4wMDUzNTgiLCBcCi0gICAgICAgICAgIjAuMDA1MzQyLCAwLjAwNTM2NiwgMC4wMDUzNjcsIDAuMDA1MzY1LCAwLjAwNTM2NiwgMC4wMDUzNjMsIDAuMDA1MzU3IiwgXAotICAgICAgICAgICIwLjAwNTMzNCwgMC4wMDUzNjEsIDAuMDA1MzY0LCAwLjAwNTM2NCwgMC4wMDUzNjEsIDAuMDA1MzYsIDAuMDA1MzU2IiwgXAotICAgICAgICAgICIwLjAwNTMyOCwgMC4wMDUzNTgsIDAuMDA1MzYyLCAwLjAwNTM2MSwgMC4wMDUzNjEsIDAuMDA1MzU3LCAwLjAwNTM1NSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDU5MSwgMC4wMDA1OTYsIDAuMDAwNTk3LCAwLjAwMDU5NywgMC4wMDA1OTgsIDAuMDAwNTk4LCAwLjAwMDU5OCIsIFwKLSAgICAgICAgICAiMC4wMDA2MDEsIDAuMDAwNjI3LCAwLjAwMDYzLCAwLjAwMDYzMSwgMC4wMDA2MzIsIDAuMDAwNjMzLCAwLjAwMDYzMyIsIFwKLSAgICAgICAgICAiMC4wMDA1OTIsIDAuMDAwNjM2LCAwLjAwMDY0MSwgMC4wMDA2NDQsIDAuMDAwNjQ2LCAwLjAwMDY0NiwgMC4wMDA2NDciLCBcCi0gICAgICAgICAgIjAuMDAwNTc4LCAwLjAwMDYzNiwgMC4wMDA2NDUsIDAuMDAwNjQ5LCAwLjAwMDY1MSwgMC4wMDA2NTIsIDAuMDAwNjUzIiwgXAotICAgICAgICAgICIwLjAwMDU2NCwgMC4wMDA2MzQsIDAuMDAwNjQ0LCAwLjAwMDY0OSwgMC4wMDA2NTIsIDAuMDAwNjUzLCAwLjAwMDY1NSIsIFwKLSAgICAgICAgICAiMC4wMDA1NDMsIDAuMDAwNjI5LCAwLjAwMDY0MSwgMC4wMDA2NDgsIDAuMDAwNjUyLCAwLjAwMDY1NCwgMC4wMDA2NTYiLCBcCi0gICAgICAgICAgIjAuMDAwNTI3LCAwLjAwMDYyMywgMC4wMDA2MzgsIDAuMDAwNjQ2LCAwLjAwMDY1MSwgMC4wMDA2NTQsIDAuMDAwNjU1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQzEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDc1MywgMC4wMDQ3NTUsIDAuMDA0NzU0LCAwLjAwNDc1MSwgMC4wMDQ3NDksIDAuMDA0NzQ3LCAwLjAwNDc0NSIsIFwKLSAgICAgICAgICAiMC4wMDQ3NDYsIDAuMDA0NzYyLCAwLjAwNDc2MSwgMC4wMDQ3NjEsIDAuMDA0NzYyLCAwLjAwNDc1OCwgMC4wMDQ3NTUiLCBcCi0gICAgICAgICAgIjAuMDA0NzMxLCAwLjAwNDc1OCwgMC4wMDQ3NTgsIDAuMDA0NzYyLCAwLjAwNDc1OCwgMC4wMDQ3NTcsIDAuMDA0NzU2IiwgXAotICAgICAgICAgICIwLjAwNDcxNiwgMC4wMDQ3NTMsIDAuMDA0NzU3LCAwLjAwNDc1OCwgMC4wMDQ3NTYsIDAuMDA0NzU0LCAwLjAwNDc1NCIsIFwKLSAgICAgICAgICAiMC4wMDQ3MDMsIDAuMDA0NzQ4LCAwLjAwNDc1NCwgMC4wMDQ3NTcsIDAuMDA0NzU3LCAwLjAwNDc1NCwgMC4wMDQ3NTIiLCBcCi0gICAgICAgICAgIjAuMDA0Njg4LCAwLjAwNDc0MSwgMC4wMDQ3NDksIDAuMDA0NzUzLCAwLjAwNDc1MiwgMC4wMDQ3NTEsIDAuMDA0NzUiLCBcCi0gICAgICAgICAgIjAuMDA0Njc5LCAwLjAwNDczNiwgMC4wMDQ3NDYsIDAuMDA0NzQ5LCAwLjAwNDc1LCAwLjAwNDc1MSwgMC4wMDQ3NDkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDA1OTEsIDAuMDAwNTk3LCAwLjAwMDU5OSwgMC4wMDA1OTksIDAuMDAwNTk5LCAwLjAwMDU5OSwgMC4wMDA1OTkiLCBcCi0gICAgICAgICAgIjAuMDAwNTk4LCAwLjAwMDYyOCwgMC4wMDA2MzEsIDAuMDAwNjMzLCAwLjAwMDYzNCwgMC4wMDA2MzQsIDAuMDAwNjM0IiwgXAotICAgICAgICAgICIwLjAwMDU4NywgMC4wMDA2MzcsIDAuMDAwNjQzLCAwLjAwMDY0NiwgMC4wMDA2NDcsIDAuMDAwNjQ4LCAwLjAwMDY0OSIsIFwKLSAgICAgICAgICAiMC4wMDA1NzEsIDAuMDAwNjM3LCAwLjAwMDY0NSwgMC4wMDA2NSwgMC4wMDA2NTIsIDAuMDAwNjUzLCAwLjAwMDY1NSIsIFwKLSAgICAgICAgICAiMC4wMDA1NTYsIDAuMDAwNjM0LCAwLjAwMDY0NSwgMC4wMDA2NTEsIDAuMDAwNjU0LCAwLjAwMDY1NSwgMC4wMDA2NTciLCBcCi0gICAgICAgICAgIjAuMDAwNTM5LCAwLjAwMDYyOCwgMC4wMDA2NDIsIDAuMDAwNjUsIDAuMDAwNjU0LCAwLjAwMDY1NiwgMC4wMDA2NTgiLCBcCi0gICAgICAgICAgIjAuMDAwNTI2LCAwLjAwMDYyMiwgMC4wMDA2MzksIDAuMDAwNjQ4LCAwLjAwMDY1MiwgMC4wMDA2NTUsIDAuMDAwNjU3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBBT0kyQkIyWDEgKgotICogLS0tLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChBT0kyQkIyWDEpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4xMzQ5Mzc7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEwTikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNTY4NTg1OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDU2ODMyMTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA1Njg1ODU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzc0LCAwLjAwMDM1NywgMC4wMDAzNDYsIDAuMDAwMzQyLCAwLjAwMDM0LCAwLjAwMDMzOCwgMC4wMDAzMzgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDEyMTIsIDAuMDAxMTk5LCAwLjAwMTE4OSwgMC4wMDExODUsIDAuMDAxMTgxLCAwLjAwMTE3OCwgMC4wMDExNzgiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEExTikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNTcyNTg4OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDU3MjE4OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDU3MjU4ODsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAzOCwgMC4wMDAzNjQsIDAuMDAwMzU0LCAwLjAwMDM0OSwgMC4wMDAzNDcsIDAuMDAwMzQ1LCAwLjAwMDM0NSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTQwMywgMC4wMDEzOTEsIDAuMDAxMzgxLCAwLjAwMTM3NiwgMC4wMDEzNzMsIDAuMDAxMzcsIDAuMDAxMzY4Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwODI4ODQ5OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDgyODg0OTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA4MjYzMzI7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMDgxLCAwLjAwMDA4MSwgMC4wMDAwODEsIDAuMDAwMDgxLCAwLjAwMDA4MSwgMC4wMDAwODEsIDAuMDAwMDgxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMDgxLCAwLjAwMDA4MSwgMC4wMDAwODEsIDAuMDAwMDgxLCAwLjAwMDA4MSwgMC4wMDAwODEsIDAuMDAwMDgxIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCMSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwODY1MDg7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwODY0NTczOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDg2NTA4OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDA4MSwgMC4wMDAwODEsIDAuMDAwMDgxLCAwLjAwMDA4MSwgMC4wMDAwODEsIDAuMDAwMDgxLCAwLjAwMDA4MSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDA4MSwgMC4wMDAwODEsIDAuMDAwMDgxLCAwLjAwMDA4MSwgMC4wMDAwODEsIDAuMDAwMDgxLCAwLjAwMDA4MSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjA2MjEwMTY7Ci0gICAgZnVuY3Rpb24gOiAiKCEoKEIwIEIxKSsoIShBME4rQTFOKSkpKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTBOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMzc5MDYsIDAuMzI3NTY5LCAwLjgzNDQ2NiwgMS4yODE0MywgMS44NzcyMSwgMy4wNjg3LCAzLjgxMzAzIiwgXAotICAgICAgICAgICIwLjI0OTczMywgMC4zMzk0MDcsIDAuODQ2MTg2LCAxLjI5MzgzLCAxLjg4OTc0LCAzLjA4MDYzLCAzLjgyNDkyIiwgXAotICAgICAgICAgICIwLjI2NTAzNiwgMC4zNTQ3NSwgMC44NjE4NDcsIDEuMzA4NjUsIDEuOTA0OCwgMy4wOTY2NSwgMy44NDAwMyIsIFwKLSAgICAgICAgICAiMC4yODAxMzksIDAuMzY5NzgzLCAwLjg3NjY4NywgMS4zMjQyMSwgMS45MjAyOCwgMy4xMTExNCwgMy44NTUzNiIsIFwKLSAgICAgICAgICAiMC4yOTQ4NDcsIDAuMzg0NTE3LCAwLjg5MTUxNywgMS4zMzg4NywgMS45MzQ2MSwgMy4xMjU4OSwgMy44NzAxNCIsIFwKLSAgICAgICAgICAiMC4zMTY2NTksIDAuNDA2MzcyLCAwLjkxMzQwNywgMS4zNjA1MywgMS45NTY5MSwgMy4xNDc3MSwgMy44OTIwMSIsIFwKLSAgICAgICAgICAiMC4zMzM5NzYsIDAuNDIzNjUxLCAwLjkzMDY4MiwgMS4zNzc5NiwgMS45NzM5NSwgMy4xNjUwOCwgMy45MDkyNyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zNDU3OCwgMC41MjAzMjIsIDEuNTEyMTYsIDIuMzg2NTgsIDMuNTUyNzQsIDUuODg1NSwgNy4zNDA2OCIsIFwKLSAgICAgICAgICAiMC4zNDU3ODQsIDAuNTIwOTU3LCAxLjUxMjAxLCAyLjM4NTMyLCAzLjU1MTg4LCA1Ljg4Mjg2LCA3LjM0MDY5IiwgXAotICAgICAgICAgICIwLjM0NTc3NiwgMC41MjA1MTEsIDEuNTExMjYsIDIuMzg2NjUsIDMuNTUwNywgNS44ODM5NiwgNy4zNDA0NCIsIFwKLSAgICAgICAgICAiMC4zNDU3NjIsIDAuNTIwNDMsIDEuNTEyMDYsIDIuMzg1MjYsIDMuNTUyMTQsIDUuODgzNzMsIDcuMzQwNjciLCBcCi0gICAgICAgICAgIjAuMzQ1Nzc5LCAwLjUyMDQwNiwgMS41MTIyLCAyLjM4NTE4LCAzLjU1MDgyLCA1Ljg4NTk2LCA3LjM0MDc4IiwgXAotICAgICAgICAgICIwLjM0NTQxOCwgMC41MjA1MDgsIDEuNTEyMjMsIDIuMzg1ODYsIDMuNTUwNjksIDUuODg1ODMsIDcuMzQwNzIiLCBcCi0gICAgICAgICAgIjAuMzQ1NTE5LCAwLjUyMDM2OSwgMS41MTEzOCwgMi4zODUxNywgMy41NTA2NiwgNS44ODI4NiwgNy4zMzg3MSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yNTYwNywgMC4zNTQ2MTMsIDAuOTEwMjEsIDEuMzk5NjEsIDIuMDUxNzgsIDMuMzU0NDIsIDQuMTY4NDUiLCBcCi0gICAgICAgICAgIjAuMjY3NjMzLCAwLjM2NjE2OCwgMC45MjE1MTQsIDEuNDExMjEsIDIuMDYzNjEsIDMuMzY1ODMsIDQuMTgwMDkiLCBcCi0gICAgICAgICAgIjAuMjgyMzE0LCAwLjM4MDg3OSwgMC45MzY2MDEsIDEuNDI1OTUsIDIuMDc3NDMsIDMuMzgxMjgsIDQuMTk1MDEiLCBcCi0gICAgICAgICAgIjAuMjk2NTQ2LCAwLjM5NTEyMiwgMC45NTA0NjQsIDEuNDQwNDUsIDIuMDkyMTYsIDMuMzk0ODIsIDQuMjA5MjkiLCBcCi0gICAgICAgICAgIjAuMzA5NTc2LCAwLjQwODE2MywgMC45NjM1MjgsIDEuNDUzNjQsIDIuMTA1MzIsIDMuNDA4MjcsIDQuMjIyMzciLCBcCi0gICAgICAgICAgIjAuMzI4MTE0LCAwLjQyNjc2LCAwLjk4MjI4MywgMS40NzIwNSwgMi4xMjM4MywgMy40MjcxMywgNC4yNDA3MiIsIFwKLSAgICAgICAgICAiMC4zNDI3MTYsIDAuNDQxMzQ2LCAwLjk5Njc5NCwgMS40ODY1NSwgMi4xMzg2NywgMy40NDE1NSwgNC4yNTUyMSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zODg0NSwgMC41NzUzMjksIDEuNjMzMjMsIDIuNTY2MjYsIDMuODEwNSwgNi4yOTc0LCA3Ljg0OTc5IiwgXAotICAgICAgICAgICIwLjM4ODQ2NSwgMC41NzUzMjgsIDEuNjMzNDEsIDIuNTY1NjYsIDMuODEwNDUsIDYuMjk3NSwgNy44NDk0MyIsIFwKLSAgICAgICAgICAiMC4zODg0NSwgMC41NzUyNDMsIDEuNjMzMzIsIDIuNTY2NjQsIDMuODA4OTYsIDYuMjk1NzYsIDcuODUxMjEiLCBcCi0gICAgICAgICAgIjAuMzg4NDUxLCAwLjU3NTIzNywgMS42MzM0NSwgMi41NjY1MywgMy44MDk1MiwgNi4yOTcyLCA3Ljg1MTMiLCBcCi0gICAgICAgICAgIjAuMzg4NDYyLCAwLjU3NTIzNywgMS42MzM0NiwgMi41NjY1LCAzLjgwOTYyLCA2LjI5NTk0LCA3Ljg0OTU4IiwgXAotICAgICAgICAgICIwLjM4ODQ5NSwgMC41NzUzMDIsIDEuNjMzNTcsIDIuNTY2NSwgMy44MDk3MywgNi4yOTcwMywgNy44NDk1NSIsIFwKLSAgICAgICAgICAiMC4zODg1MjgsIDAuNTc1MzE1LCAxLjYzMzQ2LCAyLjU2NjU4LCAzLjgwOTU3LCA2LjI5NTMsIDcuODUwMDEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTFOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMzcwMjgsIDAuMzI2NjYzLCAwLjgzMzMzMiwgMS4yODAxMywgMS44NzU3MSwgMy4wNjc0NywgMy44MTE3OSIsIFwKLSAgICAgICAgICAiMC4yNDg2MjgsIDAuMzM4MjA2LCAwLjg0NDc5MiwgMS4yOTIxOCwgMS44ODgyOSwgMy4wNzg4NCwgMy44MjMxMSIsIFwKLSAgICAgICAgICAiMC4yNjQxNDksIDAuMzUzNjA4LCAwLjg2MDQxMywgMS4zMDczNSwgMS45MDI5OCwgMy4wOTQ0LCAzLjgzODczIiwgXAotICAgICAgICAgICIwLjI3OTMzOCwgMC4zNjg5NDEsIDAuODc1NjQzLCAxLjMyMjcxLCAxLjkxOTA5LCAzLjEwOTU3LCAzLjg1Mzk4IiwgXAotICAgICAgICAgICIwLjI5NDI5NiwgMC4zODM5MTEsIDAuODkwNTU0LCAxLjMzNzkzLCAxLjkzNDE0LCAzLjEyNDY0LCAzLjg2ODkiLCBcCi0gICAgICAgICAgIjAuMzE2ODIsIDAuNDA2NDQ0LCAwLjkxMzI3NSwgMS4zNjAzNSwgMS45NTY2NiwgMy4xNDcyNCwgMy44OTE1IiwgXAotICAgICAgICAgICIwLjMzNTAwMywgMC40MjQ2MDksIDAuOTMxNDI5LCAxLjM3ODQ5LCAxLjk3NDg2LCAzLjE2NTM2LCAzLjkwOTg0Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMzOTA4NCwgMC41MTQyNTIsIDEuNTA0NjgsIDIuMzc4NTEsIDMuNTQ1MDksIDUuODc1MDEsIDcuMzMzNyIsIFwKLSAgICAgICAgICAiMC4zMzkyNDksIDAuNTE0NDYyLCAxLjUwNTQxLCAyLjM3ODM5LCAzLjU0NDg2LCA1Ljg3Njg3LCA3LjMzMjk3IiwgXAotICAgICAgICAgICIwLjMzOTQ1MSwgMC41MTQyOTEsIDEuNTA0NjQsIDIuMzc5ODIsIDMuNTQ0MDgsIDUuODc1ODEsIDcuMzMzMzEiLCBcCi0gICAgICAgICAgIjAuMzM5MjQ3LCAwLjUxNDI5LCAxLjUwNTQ2LCAyLjM3ODksIDMuNTQzNjYsIDUuODc2NzEsIDcuMzMzMzIiLCBcCi0gICAgICAgICAgIjAuMzM5MjQ3LCAwLjUxNDUzMywgMS41MDUzOCwgMi4zNzgzNSwgMy41NDQxNSwgNS44NzY2NSwgNy4zMzI2OCIsIFwKLSAgICAgICAgICAiMC4zMzkyMzQsIDAuNTE0Mjc3LCAxLjUwNDYxLCAyLjM3ODM0LCAzLjU0MzcyLCA1Ljg3NTk5LCA3LjMzMjI2IiwgXAotICAgICAgICAgICIwLjMzOTUxLCAwLjUxNDE2NywgMS41MDU1LCAyLjM3OTYyLCAzLjU0MzY0LCA1Ljg3NjY5LCA3LjMzMzI4Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI1MzI1NywgMC4zNTE4MDMsIDAuOTA3MjEsIDEuMzk2MzUsIDIuMDQ5MTcsIDMuMzUxODcsIDQuMTY1NDkiLCBcCi0gICAgICAgICAgIjAuMjY0OTIyLCAwLjM2MzQ5MiwgMC45MTg4MzgsIDEuNDA4MjEsIDIuMDYwMDIsIDMuMzYzMTcsIDQuMTc3NTUiLCBcCi0gICAgICAgICAgIjAuMjc5NjE0LCAwLjM3ODE4NiwgMC45MzM3MjEsIDEuNDIyNzUsIDIuMDc1NSwgMy4zNzgwNywgNC4xOTIxMSIsIFwKLSAgICAgICAgICAiMC4yOTM4ODIsIDAuMzkyNDkxLCAwLjk0Nzg5OSwgMS40Mzc1NSwgMi4wOTAyMywgMy4zOTIzNywgNC4yMDY0OCIsIFwKLSAgICAgICAgICAiMC4zMDczOTcsIDAuNDA2MDEyLCAwLjk2MTg2MSwgMS40NTA2MywgMi4xMDMzLCAzLjQwNTg3LCA0LjIyMDIxIiwgXAotICAgICAgICAgICIwLjMyNjUxNiwgMC40MjUxMzQsIDAuOTgwNywgMS40Njk5OSwgMi4xMjIyMiwgMy40MjU2MSwgNC4yMzkxNSIsIFwKLSAgICAgICAgICAiMC4zNDE2NDMsIDAuNDQwMjUzLCAwLjk5NTkwNCwgMS40ODUxNSwgMi4xMzc1NSwgMy40NDAzNywgNC4yNTQ2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjM4ODQ3OSwgMC41NzUyMTYsIDEuNjMzMDksIDIuNTY2NjcsIDMuODEwMzIsIDYuMjk3MDQsIDcuODUwODIiLCBcCi0gICAgICAgICAgIjAuMzg4NDgsIDAuNTc1MjMxLCAxLjYzMzQsIDIuNTY2NjMsIDMuODEwNCwgNi4yOTY3OSwgNy44NTEyMiIsIFwKLSAgICAgICAgICAiMC4zODg0NTksIDAuNTc1MjEyLCAxLjYzMzExLCAyLjU2Njc0LCAzLjgwODk1LCA2LjI5NzQsIDcuODQ5MyIsIFwKLSAgICAgICAgICAiMC4zODg0OTcsIDAuNTc1Mjk2LCAxLjYzMzI3LCAyLjU2NjYzLCAzLjgwOTczLCA2LjI5NzI1LCA3Ljg0OTYyIiwgXAotICAgICAgICAgICIwLjM4ODQ5NCwgMC41NzUyMTMsIDEuNjMzMzUsIDIuNTY2NTcsIDMuODEwMzcsIDYuMjk2NTgsIDcuODUwOTQiLCBcCi0gICAgICAgICAgIjAuMzg4NTEsIDAuNTc1MjI0LCAxLjYzMzYyLCAyLjU2NzI1LCAzLjgwOTU5LCA2LjI5NTcsIDcuODUwODgiLCBcCi0gICAgICAgICAgIjAuMzg4NTczLCAwLjU3NTIzMiwgMS42MzMxNywgMi41NjcwNywgMy44MTAwNywgNi4yOTc3NCwgNy44NTExMiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTgyMDc2LCAwLjI3MTc2MSwgMC43Nzg1NjUsIDEuMjI1ODQsIDEuODIyNDIsIDMuMDEyODksIDMuNzU3MTkiLCBcCi0gICAgICAgICAgIjAuMTkyMzU4LCAwLjI4MTk4MywgMC43ODkyNDIsIDEuMjM2NSwgMS44MzE4MSwgMy4wMjMyMiwgMy43Njc1NCIsIFwKLSAgICAgICAgICAiMC4yMDUzODksIDAuMjk1MDkzLCAwLjgwMjM3NiwgMS4yNDk0NSwgMS44NDU0NSwgMy4wMzYyNSwgMy43ODA3OCIsIFwKLSAgICAgICAgICAiMC4yMTgzOSwgMC4zMDgxNjEsIDAuODE1MjUzLCAxLjI2MjY4LCAxLjg1ODg1LCAzLjA0OTQ4LCAzLjc5Mzc5IiwgXAotICAgICAgICAgICIwLjIzMTU1NSwgMC4zMjEyNTgsIDAuODI4NTg2LCAxLjI3NTY1LCAxLjg3MTMxLCAzLjA2MzM2LCAzLjgwNzExIiwgXAotICAgICAgICAgICIwLjI1MjU1NCwgMC4zNDIyNywgMC44NDkyMjQsIDEuMjk2MzYsIDEuODkyNDEsIDMuMDgzNjIsIDMuODI3OTUiLCBcCi0gICAgICAgICAgIjAuMjcxMTE1LCAwLjM2MDY2MSwgMC44Njc5NTUsIDEuMzE0ODIsIDEuOTExMDcsIDMuMTAyOCwgMy44NDY1OSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zNDU0MzgsIDAuNTIwNTA4LCAxLjUxMTAxLCAyLjM4NTM2LCAzLjU1MTA5LCA1Ljg4Mzc1LCA3LjM0MDA0IiwgXAotICAgICAgICAgICIwLjM0NTczNywgMC41MjA0MTYsIDEuNTExNjQsIDIuMzg1MzQsIDMuNTUyNCwgNS44ODM4OSwgNy4zNDAwNSIsIFwKLSAgICAgICAgICAiMC4zNDUzODksIDAuNTIwMzExLCAxLjUxMTc1LCAyLjM4NjAzLCAzLjU1MDUyLCA1Ljg4NDY5LCA3LjM0MDc1IiwgXAotICAgICAgICAgICIwLjM0NDkxMiwgMC41MjAzMTgsIDEuNTEyMiwgMi4zODYsIDMuNTUwNzYsIDUuODgzNDYsIDcuMzM5NzIiLCBcCi0gICAgICAgICAgIjAuMzQ1NTEyLCAwLjUyMDI2MywgMS41MTE3NCwgMi4zODUxOCwgMy41NTA4MSwgNS44ODgwOSwgNy4zNDA5MyIsIFwKLSAgICAgICAgICAiMC4zNDk2ODgsIDAuNTIxMDUzLCAxLjUxMjAxLCAyLjM4NTQ4LCAzLjU1MjQ0LCA1Ljg4NDA2LCA3LjMzOTkyIiwgXAotICAgICAgICAgICIwLjM1NDkyLCAwLjUyMzEzOCwgMS41MTE2NiwgMi4zODU0MywgMy41NTE2MSwgNS44ODQwNiwgNy4zNDA4NyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xOTU2MDUsIDAuMjkzNDE5LCAwLjg0NzI0NCwgMS4zMzU5OSwgMS45ODc3MSwgMy4yOTA4LCA0LjEwNTIzIiwgXAotICAgICAgICAgICIwLjIwNzQ5NywgMC4zMDU0MjgsIDAuODU5NDM2LCAxLjM0ODQ3LCAyLjAwMDM4LCAzLjMwMzQyLCA0LjExODA0IiwgXAotICAgICAgICAgICIwLjIyMTE5MSwgMC4zMTkxMDEsIDAuODczMjg5LCAxLjM2MTk5LCAyLjAxNDQyLCAzLjMxNzIsIDQuMTMxNzYiLCBcCi0gICAgICAgICAgIjAuMjM0NjMzLCAwLjMzMjU4NiwgMC44ODY4MTYsIDEuMzc1NzYsIDIuMDI4MjksIDMuMzMxMTcsIDQuMTQ1MjkiLCBcCi0gICAgICAgICAgIjAuMjQ3NDMxLCAwLjM0NjExNSwgMC45MDA4NDUsIDEuMzg5NjgsIDIuMDQxMTYsIDMuMzQ0ODUsIDQuMTU5MjEiLCBcCi0gICAgICAgICAgIjAuMjY5MTg1LCAwLjM2NzAzOCwgMC45MjIxNzYsIDEuNDExNTUsIDIuMDY0MDEsIDMuMzY2MDQsIDQuMTgwOTUiLCBcCi0gICAgICAgICAgIjAuMjg4MjIzLCAwLjM4NjIxNSwgMC45NDEwMTEsIDEuNDI5OTYsIDIuMDgxNzksIDMuMzg1MjQsIDQuMTk5ODkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzYxNDQ3LCAwLjU0NzcxOSwgMS42MDUzLCAyLjUzOTg1LCAzLjc5MDE3LCA2LjI2Mzg3LCA3LjgxMTQ3IiwgXAotICAgICAgICAgICIwLjM2MTQxNywgMC41NDc2MjksIDEuNjA0NjUsIDIuNTQ0NjQsIDMuNzg3OTksIDYuMjY3OTcsIDcuODE4NTQiLCBcCi0gICAgICAgICAgIjAuMzYxNCwgMC41NDc1OTQsIDEuNjAzNjksIDIuNTQ0NjEsIDMuNzkxMzIsIDYuMjY1MzUsIDcuODE5MDYiLCBcCi0gICAgICAgICAgIjAuMzYxMzM3LCAwLjU0NzU0NCwgMS42MDQxNSwgMi41NDUyLCAzLjc5MTE1LCA2LjI2ODk5LCA3LjgxOTA4IiwgXAotICAgICAgICAgICIwLjM2MTQyMiwgMC41NDc1ODgsIDEuNjA0MjgsIDIuNTM4NjksIDMuNzkwNzQsIDYuMjY4ODYsIDcuODE5MTgiLCBcCi0gICAgICAgICAgIjAuMzYyOTkzLCAwLjU0NzU2LCAxLjYwMzYxLCAyLjUzOTY2LCAzLjc3OTA1LCA2LjI2Nzk4LCA3LjgxNzkzIiwgXAotICAgICAgICAgICIwLjM2NjIxLCAwLjU0ODQ1NiwgMS42MDQyNSwgMi41NDAwNywgMy43OTA3NSwgNi4yNjcyLCA3LjgxOTE2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIxIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNzYzODcsIDAuMjY1OTM4LCAwLjc3Mjc3NywgMS4yMTk3NiwgMS44MTUxLCAzLjAwNzI2LCAzLjc1MDg3IiwgXAotICAgICAgICAgICIwLjE4Njg5NiwgMC4yNzY1MDEsIDAuNzgzMDkxLCAxLjIzMDI2LCAxLjgyNjU1LCAzLjAxNzE5LCAzLjc2MTQ0IiwgXAotICAgICAgICAgICIwLjE5OTkxMiwgMC4yODk1MjQsIDAuNzk2NDYyLCAxLjI0MzUsIDEuODM5MTYsIDMuMDMxMDMsIDMuNzc0NTkiLCBcCi0gICAgICAgICAgIjAuMjEyOTI4LCAwLjMwMjU3OCwgMC44MDk0NzksIDEuMjU2NjMsIDEuODUyOTYsIDMuMDQzNDcsIDMuNzg3NzQiLCBcCi0gICAgICAgICAgIjAuMjI1OTc1LCAwLjMxNTY1MiwgMC44MjI2NTIsIDEuMjY5NDEsIDEuODY1NTUsIDMuMDU3MzYsIDMuODAxMDYiLCBcCi0gICAgICAgICAgIjAuMjQ2OTQ4LCAwLjMzNjU5NywgMC44NDM3MDUsIDEuMjkwNjksIDEuODg2NDcsIDMuMDc3NjEsIDMuODIxODkiLCBcCi0gICAgICAgICAgIjAuMjY1Mzg1LCAwLjM1NDk3NCwgMC44NjIwNTIsIDEuMzA5MDQsIDEuOTA1MDUsIDMuMDk2NjUsIDMuODQwNTMiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzM5NjE2LCAwLjUxNDE1MywgMS41MDQ3NCwgMi4zNzg5NywgMy41NDM5MSwgNS44ODA1OSwgNy4zMzI1OSIsIFwKLSAgICAgICAgICAiMC4zMzkzMDUsIDAuNTE0MTE1LCAxLjUwNDMyLCAyLjM3ODQ2LCAzLjU0MzY1LCA1Ljg3NTgxLCA3LjMzMjMxIiwgXAotICAgICAgICAgICIwLjMzOTMxNywgMC41MTQxNjIsIDEuNTA0OTcsIDIuMzc4ODMsIDMuNTQ0NjUsIDUuODc1NjMsIDcuMzMyNSIsIFwKLSAgICAgICAgICAiMC4zMzg4OSwgMC41MTQxMzUsIDEuNTA1NTEsIDIuMzc4MzIsIDMuNTQzNywgNS44NzYwOCwgNy4zMzIyNCIsIFwKLSAgICAgICAgICAiMC4zMzk3NjYsIDAuNTE0MDE2LCAxLjUwNDU2LCAyLjM3ODQ3LCAzLjU0MzU2LCA1Ljg4MDY5LCA3LjMzMzQ4IiwgXAotICAgICAgICAgICIwLjM0MzY2MiwgMC41MTQ3NTEsIDEuNTA0NTIsIDIuMzc4OTUsIDMuNTQ1NDEsIDUuODc2NzIsIDcuMzMyNDUiLCBcCi0gICAgICAgICAgIjAuMzQ5NTM4LCAwLjUxNzY2MSwgMS41MDQ3NCwgMi4zNzg0MiwgMy41NDQ2OSwgNS44NzQ1NiwgNy4zMzM0MiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xOTA3NjksIDAuMjg4NTg3LCAwLjg0MjgyOSwgMS4zMzEyMiwgMS45ODM0MiwgMy4yODYzNywgNC4xMDA4NyIsIFwKLSAgICAgICAgICAiMC4yMDE0NDUsIDAuMjk5MzYzLCAwLjg1MzU2MSwgMS4zNDIxNCwgMS45OTQsIDMuMjk3MzEsIDQuMTEyMDMiLCBcCi0gICAgICAgICAgIjAuMjE0NTQ1LCAwLjMxMjU4MSwgMC44NjY2MzksIDEuMzU1NSwgMi4wMDc2LCAzLjMxMDU3LCA0LjEyNTQ1IiwgXAotICAgICAgICAgICIwLjIyNzc1MywgMC4zMjU3NzksIDAuODgwMzk5LCAxLjM2OTEyLCAyLjAyMDgsIDMuMzI0MTYsIDQuMTM4NTEiLCBcCi0gICAgICAgICAgIjAuMjQwODM4LCAwLjMzODgzLCAwLjg5MzU2NiwgMS4zODI3MiwgMi4wMzM5NCwgMy4zMzczNSwgNC4xNTIiLCBcCi0gICAgICAgICAgIjAuMjYxOTY2LCAwLjM1OTk5OSwgMC45MTQ3MzIsIDEuNDAzNDUsIDIuMDU1NjIsIDMuMzU4NDUsIDQuMTczMzMiLCBcCi0gICAgICAgICAgIjAuMjgwNDM1LCAwLjM3ODU1NiwgMC45MzMwMzksIDEuNDIyLCAyLjA3MzYxLCAzLjM3Njg4LCA0LjE5MTg4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjM2MTM3LCAwLjU0NzYxMywgMS42MDM4OSwgMi41NDA2MywgMy43OTE0MiwgNi4yNjUyNiwgNy44MTg0MSIsIFwKLSAgICAgICAgICAiMC4zNjEzNTcsIDAuNTQ3NTQxLCAxLjYwMzQ1LCAyLjUzOTk4LCAzLjc4MDY2LCA2LjI2ODkxLCA3LjgxNzM0IiwgXAotICAgICAgICAgICIwLjM2MTM3MSwgMC41NDc2MjksIDEuNjA1MzIsIDIuNTQwMDIsIDMuNzkwOSwgNi4yNjg0NCwgNy44MTkxNSIsIFwKLSAgICAgICAgICAiMC4zNjE0MDcsIDAuNTQ3NjE3LCAxLjYwNDQ4LCAyLjUzNjU5LCAzLjc5MTMsIDYuMjY4MDgsIDcuODE4MjYiLCBcCi0gICAgICAgICAgIjAuMzYxNzM4LCAwLjU0NzUxNSwgMS42MDQwNSwgMi41MzY4LCAzLjc4MjA5LCA2LjI2NzE3LCA3LjgxNzc2IiwgXAotICAgICAgICAgICIwLjM2NTEwMSwgMC41NDc3MzUsIDEuNjA0MDQsIDIuNTQyODQsIDMuNzc5MTQsIDYuMjY4NjcsIDcuODE3MTEiLCBcCi0gICAgICAgICAgIjAuMzcwMTk4LCAwLjU0OTgyNiwgMS42MDQxLCAyLjU0MDQ3LCAzLjc5MTI4LCA2LjI2NzYzLCA3LjgyMTQ3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTBOIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI2MjYsIDAuMDAyNjI2LCAwLjAwMjYyNiwgMC4wMDI2MjUsIDAuMDAyNjI0LCAwLjAwMjYyMywgMC4wMDI2MTkiLCBcCi0gICAgICAgICAgIjAuMDAyNjA4LCAwLjAwMjYwOCwgMC4wMDI2MDgsIDAuMDAyNjA2LCAwLjAwMjYwNiwgMC4wMDI2MDQsIDAuMDAyNjAzIiwgXAotICAgICAgICAgICIwLjAwMjU5NywgMC4wMDI1OTcsIDAuMDAyNTk3LCAwLjAwMjU5NywgMC4wMDI1OTksIDAuMDAyNTkyLCAwLjAwMjU5MiIsIFwKLSAgICAgICAgICAiMC4wMDI1OSwgMC4wMDI1OTEsIDAuMDAyNTkyLCAwLjAwMjU5MSwgMC4wMDI1OSwgMC4wMDI1ODgsIDAuMDAyNTg2IiwgXAotICAgICAgICAgICIwLjAwMjU4OCwgMC4wMDI1ODksIDAuMDAyNTksIDAuMDAyNTksIDAuMDAyNTg4LCAwLjAwMjU4NiwgMC4wMDI1ODUiLCBcCi0gICAgICAgICAgIjAuMDAyNTg5LCAwLjAwMjU5LCAwLjAwMjU5MSwgMC4wMDI1OTIsIDAuMDAyNTkxLCAwLjAwMjU4OCwgMC4wMDI1ODciLCBcCi0gICAgICAgICAgIjAuMDAyNTg4LCAwLjAwMjU4OSwgMC4wMDI1OTEsIDAuMDAyNTksIDAuMDAyNTg5LCAwLjAwMjU4NywgMC4wMDI1ODYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI3OTYsIDAuMDAyNzk3LCAwLjAwMjc5NiwgMC4wMDI3OTYsIDAuMDAyNzk0LCAwLjAwMjc5MSwgMC4wMDI3OSIsIFwKLSAgICAgICAgICAiMC4wMDI3ODMsIDAuMDAyNzgzLCAwLjAwMjc4NCwgMC4wMDI3ODIsIDAuMDAyNzgxLCAwLjAwMjc3OSwgMC4wMDI3NzciLCBcCi0gICAgICAgICAgIjAuMDAyNzczLCAwLjAwMjc3MywgMC4wMDI3NzQsIDAuMDAyNzczLCAwLjAwMjc3MiwgMC4wMDI3NywgMC4wMDI3NjgiLCBcCi0gICAgICAgICAgIjAuMDAyNzY3LCAwLjAwMjc2OSwgMC4wMDI3NywgMC4wMDI3NywgMC4wMDI3NjgsIDAuMDAyNzY3LCAwLjAwMjc2NCIsIFwKLSAgICAgICAgICAiMC4wMDI3NjMsIDAuMDAyNzY1LCAwLjAwMjc2NywgMC4wMDI3NjcsIDAuMDAyNzY2LCAwLjAwMjc2NCwgMC4wMDI3NjIiLCBcCi0gICAgICAgICAgIjAuMDAyNzU4LCAwLjAwMjc2MSwgMC4wMDI3NjUsIDAuMDAyNzY1LCAwLjAwMjc2NCwgMC4wMDI3NjEsIDAuMDAyNzYiLCBcCi0gICAgICAgICAgIjAuMDAyNzU3LCAwLjAwMjc2LCAwLjAwMjc2NCwgMC4wMDI3NjQsIDAuMDAyNzY0LCAwLjAwMjc2MSwgMC4wMDI3NTkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMU4iOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjQ1NCwgMC4wMDI0NTUsIDAuMDAyNDU3LCAwLjAwMjQ1NSwgMC4wMDI0NTUsIDAuMDAyNDUyLCAwLjAwMjQ1NCIsIFwKLSAgICAgICAgICAiMC4wMDI0MzYsIDAuMDAyNDM4LCAwLjAwMjQzOSwgMC4wMDI0MzksIDAuMDAyNDM5LCAwLjAwMjQzOCwgMC4wMDI0MzciLCBcCi0gICAgICAgICAgIjAuMDAyNDI1LCAwLjAwMjQyNywgMC4wMDI0MjksIDAuMDAyNDMsIDAuMDAyNDI5LCAwLjAwMjQyOCwgMC4wMDI0MjciLCBcCi0gICAgICAgICAgIjAuMDAyNDE4LCAwLjAwMjQyLCAwLjAwMjQyMywgMC4wMDI0MjMsIDAuMDAyNDI0LCAwLjAwMjQyMywgMC4wMDI0MjIiLCBcCi0gICAgICAgICAgIjAuMDAyNDE0LCAwLjAwMjQxNywgMC4wMDI0MjEsIDAuMDAyNDIxLCAwLjAwMjQyMSwgMC4wMDI0MiwgMC4wMDI0MiIsIFwKLSAgICAgICAgICAiMC4wMDI0MTQsIDAuMDAyNDE4LCAwLjAwMjQyNCwgMC4wMDI0MjUsIDAuMDAyNDI0LCAwLjAwMjQyNCwgMC4wMDI0MjMiLCBcCi0gICAgICAgICAgIjAuMDAyNDExLCAwLjAwMjQxNSwgMC4wMDI0MjEsIDAuMDAyNDIyLCAwLjAwMjQyMiwgMC4wMDI0MjIsIDAuMDAyNDIxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyODQ2LCAwLjAwMjg0NiwgMC4wMDI4NDgsIDAuMDAyODQ1LCAwLjAwMjg0NCwgMC4wMDI4NDIsIDAuMDAyODQiLCBcCi0gICAgICAgICAgIjAuMDAyODM0LCAwLjAwMjgzNCwgMC4wMDI4MzQsIDAuMDAyODM0LCAwLjAwMjgzMywgMC4wMDI4MywgMC4wMDI4MjgiLCBcCi0gICAgICAgICAgIjAuMDAyODIzLCAwLjAwMjgyNSwgMC4wMDI4MjYsIDAuMDAyODI1LCAwLjAwMjgyNCwgMC4wMDI4MjIsIDAuMDAyODIiLCBcCi0gICAgICAgICAgIjAuMDAyODE3LCAwLjAwMjgxOSwgMC4wMDI4MjIsIDAuMDAyODIxLCAwLjAwMjgyMSwgMC4wMDI4MTgsIDAuMDAyODE2IiwgXAotICAgICAgICAgICIwLjAwMjgxMiwgMC4wMDI4MTQsIDAuMDAyODE4LCAwLjAwMjgxOCwgMC4wMDI4MTcsIDAuMDAyODE0LCAwLjAwMjgxNCIsIFwKLSAgICAgICAgICAiMC4wMDI4MDYsIDAuMDAyODEsIDAuMDAyODE1LCAwLjAwMjgxNSwgMC4wMDI4MTQsIDAuMDAyODEyLCAwLjAwMjgxIiwgXAotICAgICAgICAgICIwLjAwMjgwMywgMC4wMDI4MDcsIDAuMDAyODE0LCAwLjAwMjgxNCwgMC4wMDI4MTQsIDAuMDAyODExLCAwLjAwMjgxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTg2MSwgMC4wMDE4NjEsIDAuMDAxODYsIDAuMDAxODYsIDAuMDAxODU4LCAwLjAwMTg1NywgMC4wMDE4NTUiLCBcCi0gICAgICAgICAgIjAuMDAxODUyLCAwLjAwMTg1MywgMC4wMDE4NTQsIDAuMDAxODUzLCAwLjAwMTg1MiwgMC4wMDE4NSwgMC4wMDE4NSIsIFwKLSAgICAgICAgICAiMC4wMDE4NDcsIDAuMDAxODQ5LCAwLjAwMTg1MiwgMC4wMDE4NTEsIDAuMDAxODUsIDAuMDAxODQ5LCAwLjAwMTg0OCIsIFwKLSAgICAgICAgICAiMC4wMDE4NDIsIDAuMDAxODQ3LCAwLjAwMTg1MSwgMC4wMDE4NTEsIDAuMDAxODQ5LCAwLjAwMTg0OCwgMC4wMDE4NDciLCBcCi0gICAgICAgICAgIjAuMDAxODQsIDAuMDAxODQ0LCAwLjAwMTg0OSwgMC4wMDE4NSwgMC4wMDE4NDksIDAuMDAxODQ4LCAwLjAwMTg0NiIsIFwKLSAgICAgICAgICAiMC4wMDE4MzYsIDAuMDAxODQxLCAwLjAwMTg0NywgMC4wMDE4NDksIDAuMDAxODQ5LCAwLjAwMTg0NywgMC4wMDE4NDYiLCBcCi0gICAgICAgICAgIjAuMDAxODM0LCAwLjAwMTgzOCwgMC4wMDE4NDYsIDAuMDAxODQ4LCAwLjAwMTg0OCwgMC4wMDE4NDYsIDAuMDAxODQ2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwNDU3LCAwLjAwMDQ1OCwgMC4wMDA0NTksIDAuMDAwNDU5LCAwLjAwMDQ1OSwgMC4wMDA0NTksIDAuMDAwNDU5IiwgXAotICAgICAgICAgICIwLjAwMDQ2MywgMC4wMDA0NjYsIDAuMDAwNDcxLCAwLjAwMDQ3MiwgMC4wMDA0NzIsIDAuMDAwNDczLCAwLjAwMDQ3MiIsIFwKLSAgICAgICAgICAiMC4wMDA0NTksIDAuMDAwNDY1LCAwLjAwMDQ3MywgMC4wMDA0NzUsIDAuMDAwNDc2LCAwLjAwMDQ3NiwgMC4wMDA0NzciLCBcCi0gICAgICAgICAgIjAuMDAwNDUzLCAwLjAwMDQ2LCAwLjAwMDQ3MiwgMC4wMDA0NzUsIDAuMDAwNDc2LCAwLjAwMDQ3NywgMC4wMDA0NzgiLCBcCi0gICAgICAgICAgIjAuMDAwNDQ1LCAwLjAwMDQ1NiwgMC4wMDA0NzEsIDAuMDAwNDc0LCAwLjAwMDQ3NiwgMC4wMDA0NzcsIDAuMDAwNDc4IiwgXAotICAgICAgICAgICIwLjAwMDQzNywgMC4wMDA0NDksIDAuMDAwNDY4LCAwLjAwMDQ3MywgMC4wMDA0NzUsIDAuMDAwNDc3LCAwLjAwMDQ3OCIsIFwKLSAgICAgICAgICAiMC4wMDA0MywgMC4wMDA0NDMsIDAuMDAwNDY2LCAwLjAwMDQ3MSwgMC4wMDA0NzQsIDAuMDAwNDc3LCAwLjAwMDQ3OCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIxIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDE1MzQsIDAuMDAxNTM0LCAwLjAwMTUzNCwgMC4wMDE1MzQsIDAuMDAxNTMzLCAwLjAwMTUzMiwgMC4wMDE1MzIiLCBcCi0gICAgICAgICAgIjAuMDAxNTMzLCAwLjAwMTUzNSwgMC4wMDE1MzgsIDAuMDAxNTM4LCAwLjAwMTU0MSwgMC4wMDE1MzcsIDAuMDAxNTM3IiwgXAotICAgICAgICAgICIwLjAwMTUyNywgMC4wMDE1MzIsIDAuMDAxNTM4LCAwLjAwMTUzOSwgMC4wMDE1MzksIDAuMDAxNTM4LCAwLjAwMTUzNyIsIFwKLSAgICAgICAgICAiMC4wMDE1MjIsIDAuMDAxNTI4LCAwLjAwMTUzNiwgMC4wMDE1MzgsIDAuMDAxNTM3LCAwLjAwMTUzNywgMC4wMDE1MzciLCBcCi0gICAgICAgICAgIjAuMDAxNTE3LCAwLjAwMTUyNCwgMC4wMDE1MzQsIDAuMDAxNTM2LCAwLjAwMTUzNywgMC4wMDE1MzcsIDAuMDAxNTM3IiwgXAotICAgICAgICAgICIwLjAwMTUwOSwgMC4wMDE1MTksIDAuMDAxNTMyLCAwLjAwMTUzNSwgMC4wMDE1MzYsIDAuMDAxNTM2LCAwLjAwMTUzNiIsIFwKLSAgICAgICAgICAiMC4wMDE1MDUsIDAuMDAxNTE1LCAwLjAwMTUzLCAwLjAwMTUzMywgMC4wMDE1MzUsIDAuMDAxNTM2LCAwLjAwMTUzNiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDQ1NywgMC4wMDA0NTgsIDAuMDAwNDU4LCAwLjAwMDQ1OSwgMC4wMDA0NTgsIDAuMDAwNDU5LCAwLjAwMDQ1OCIsIFwKLSAgICAgICAgICAiMC4wMDA0NjIsIDAuMDAwNDY2LCAwLjAwMDQ3MSwgMC4wMDA0NzIsIDAuMDAwNDczLCAwLjAwMDQ3MywgMC4wMDA0NzMiLCBcCi0gICAgICAgICAgIjAuMDAwNDU2LCAwLjAwMDQ2MywgMC4wMDA0NzMsIDAuMDAwNDc1LCAwLjAwMDQ3NiwgMC4wMDA0NzcsIDAuMDAwNDc3IiwgXAotICAgICAgICAgICIwLjAwMDQ0OSwgMC4wMDA0NTksIDAuMDAwNDcyLCAwLjAwMDQ3NSwgMC4wMDA0NzYsIDAuMDAwNDc4LCAwLjAwMDQ3OCIsIFwKLSAgICAgICAgICAiMC4wMDA0NDIsIDAuMDAwNDU0LCAwLjAwMDQ3MSwgMC4wMDA0NzQsIDAuMDAwNDc2LCAwLjAwMDQ3OCwgMC4wMDA0NzgiLCBcCi0gICAgICAgICAgIjAuMDAwNDMzLCAwLjAwMDQ0NiwgMC4wMDA0NjgsIDAuMDAwNDcyLCAwLjAwMDQ3NSwgMC4wMDA0NzgsIDAuMDAwNDc4IiwgXAotICAgICAgICAgICIwLjAwMDQyNiwgMC4wMDA0NDEsIDAuMDAwNDY1LCAwLjAwMDQ3MSwgMC4wMDA0NzQsIDAuMDAwNDc3LCAwLjAwMDQ3OCIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogQU9JMkJCMlg0ICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoQU9JMkJCMlg0KSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuNDUyNTEyOwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBME4pICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDg0MTMzODsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA4NDA4ODI7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwODQxMzM4OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTM4NywgMC4wMDEzNjMsIDAuMDAxMzQ2LCAwLjAwMTMzNSwgMC4wMDEzMjgsIDAuMDAxMzI1LCAwLjAwMTMyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzIxOCwgMC4wMDMyLCAwLjAwMzE4MSwgMC4wMDMxNzIsIDAuMDAzMTYsIDAuMDAzMTUyLCAwLjAwMzE0OCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQTFOKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA4NzE4OTM7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwODcxNTIxOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDg3MTg5MzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDEzODgsIDAuMDAxMzY2LCAwLjAwMTM0OSwgMC4wMDEzMzcsIDAuMDAxMzMyLCAwLjAwMTMyNywgMC4wMDEzMjciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDMzNTIsIDAuMDAzMzM0LCAwLjAwMzMxNywgMC4wMDMzMDgsIDAuMDAzMjk2LCAwLjAwMzI4NywgMC4wMDMyODIiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDMyMjM4MzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDMyMjM4MzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDMyMTM5NjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAzMjgsIDAuMDAwMzI4LCAwLjAwMDMyOCwgMC4wMDAzMjgsIDAuMDAwMzI5LCAwLjAwMDMyOCwgMC4wMDAzMjkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAzMjcsIDAuMDAwMzI3LCAwLjAwMDMyNywgMC4wMDAzMjcsIDAuMDAwMzI3LCAwLjAwMDMyNywgMC4wMDAzMjciKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIxKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDI5NzY5MjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDI5NzQ3ODsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDI5NzY5MjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAzMjgsIDAuMDAwMzI4LCAwLjAwMDMyOSwgMC4wMDAzMjksIDAuMDAwMzI5LCAwLjAwMDMyOSwgMC4wMDAzMjkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAzMjcsIDAuMDAwMzI3LCAwLjAwMDMyNywgMC4wMDAzMjcsIDAuMDAwMzI3LCAwLjAwMDMyNywgMC4wMDAzMjciKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4yNzEyNDQ7Ci0gICAgZnVuY3Rpb24gOiAiKCEoKEIwIEIxKSsoIShBME4rQTFOKSkpKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTBOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE0NDc0NywgMC40MDc5NjIsIDAuNjY5NzYzLCAwLjg1NzA5MSwgMS4xNTYzNCwgMS40MTk3LCAxLjc5NTc1IiwgXAotICAgICAgICAgICIwLjE1NjQyMywgMC40MTk2NDksIDAuNjgxNjY1LCAwLjg2ODgwNiwgMS4xNjgzNywgMS40MzEwMSwgMS44MDc4NSIsIFwKLSAgICAgICAgICAiMC4xNzEyMTMsIDAuNDM0NDkyLCAwLjY5NjUxOCwgMC44ODM2NjIsIDEuMTgzMzUsIDEuNDQ1ODUsIDEuODIyNzIiLCBcCi0gICAgICAgICAgIjAuMTg2NDQyLCAwLjQ0OTcwNywgMC43MTE1MjEsIDAuODk4ODczLCAxLjE5ODEzLCAxLjQ2MTA3LCAxLjgzNzQ3IiwgXAotICAgICAgICAgICIwLjIwMTQsIDAuNDY0NTgxLCAwLjcyNjgxNCwgMC45MTM5MTMsIDEuMjEzMTcsIDEuNDc2NzksIDEuODUyMjciLCBcCi0gICAgICAgICAgIjAuMjI0OTg3LCAwLjQ4ODMyOSwgMC43NTA0NTMsIDAuOTM3NDgxLCAxLjIzNjc0LCAxLjQ5OTcxLCAxLjg3NjIzIiwgXAotICAgICAgICAgICIwLjI0NDU0MywgMC41MDc4NTYsIDAuNzY5OTM4LCAwLjk1NzA5NCwgMS4yNTYyNiwgMS41MTkyOSwgMS44OTYiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMjU5MzIsIDAuNjM3NzE3LCAxLjE1MDQ2LCAxLjUxODQ1LCAyLjEwNzMyLCAyLjYyMzAzLCAzLjM1OTQ1IiwgXAotICAgICAgICAgICIwLjEyNjAxNCwgMC42Mzc3MzksIDEuMTUwNDYsIDEuNTE5MzIsIDIuMTA3OSwgMi42MjI2MiwgMy4zNTg2IiwgXAotICAgICAgICAgICIwLjEyNTk1MiwgMC42Mzc2MzgsIDEuMTUwMzksIDEuNTE5MzIsIDIuMTA3ODYsIDIuNjIyNjIsIDMuMzU4NTkiLCBcCi0gICAgICAgICAgIjAuMTI1OTI5LCAwLjYzNzU3LCAxLjE1MDQxLCAxLjUxODQ2LCAyLjEwNzM5LCAyLjYyMjU3LCAzLjM2MDMyIiwgXAotICAgICAgICAgICIwLjEyNTk1NiwgMC42Mzc5MTgsIDEuMTUwNDYsIDEuNTE4NTIsIDIuMTA3MzksIDIuNjIyNjgsIDMuMzYwNDgiLCBcCi0gICAgICAgICAgIjAuMTI1OTY1LCAwLjYzNzc2OCwgMS4xNTA0LCAxLjUxODQxLCAyLjEwNzMyLCAyLjYyMzgsIDMuMzU5NjQiLCBcCi0gICAgICAgICAgIjAuMTI2MTA0LCAwLjYzNzYwMiwgMS4xNTEwNSwgMS41MTg1NCwgMi4xMDgyNywgMi42MjI2MiwgMy4zNTg0OCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE1MTA4LCAwLjQ0MTcwMiwgMC43Mjk0NjMsIDAuOTM0NzY5LCAxLjI2MjQzLCAxLjU0OTUzLCAxLjk2MDE0IiwgXAotICAgICAgICAgICIwLjE2MjQ0NSwgMC40NTMxNDQsIDAuNzQwNzg1LCAwLjk0NjA4NiwgMS4yNzQ1NywgMS41NjE2MywgMS45NzE4MiIsIFwKLSAgICAgICAgICAiMC4xNzc0NDMsIDAuNDY4MTM1LCAwLjc1NTgyNywgMC45NjExNjUsIDEuMjg5MzMsIDEuNTc1OSwgMS45ODcxMyIsIFwKLSAgICAgICAgICAiMC4xOTIxMiwgMC40ODI4OTMsIDAuNzcwNjA1LCAwLjk3NTcyOCwgMS4zMDM3NCwgMS41OTA3NCwgMi4wMDEzMiIsIFwKLSAgICAgICAgICAiMC4yMDY3MDgsIDAuNDk3NTE4LCAwLjc4NTI4OSwgMC45OTA0OTQsIDEuMzE4MzksIDEuNjA2MTYsIDIuMDE1MiIsIFwKLSAgICAgICAgICAiMC4yMjg5MTksIDAuNTE5ODE3LCAwLjgwNzM5NCwgMS4wMTI4NCwgMS4zNDEyLCAxLjYyODA3LCAyLjAzODY4IiwgXAotICAgICAgICAgICIwLjI0NjgxMywgMC41Mzc3NCwgMC44MjU1MjEsIDEuMDMwNzEsIDEuMzU4NzgsIDEuNjQ2NDksIDIuMDU1NzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNTYxNzksIDAuNzAzNzYyLCAxLjI1MjQ4LCAxLjY0NDM2LCAyLjI3MDIzLCAyLjgxOTQ0LCAzLjYwMjk5IiwgXAotICAgICAgICAgICIwLjE1NjE4MiwgMC43MDM3NTksIDEuMjUyNDgsIDEuNjQ0ODEsIDIuMjcxLCAyLjgxOTA1LCAzLjYwMTU5IiwgXAotICAgICAgICAgICIwLjE1NjE5LCAwLjcwMzg4MywgMS4yNTI1MSwgMS42NDQzMSwgMi4yNzAyNCwgMi44MTk1NSwgMy42MDI5IiwgXAotICAgICAgICAgICIwLjE1NjE5NSwgMC43MDM3NjQsIDEuMjUyMjYsIDEuNjQ0MTksIDIuMjcwMywgMi44MTk1NSwgMy42MDI5MSIsIFwKLSAgICAgICAgICAiMC4xNTYyMTIsIDAuNzAzNjk5LCAxLjI1MjQ4LCAxLjY0NDAxLCAyLjI3MDgyLCAyLjgxOTM4LCAzLjYwMjYyIiwgXAotICAgICAgICAgICIwLjE1NjMwNywgMC43MDM3NzEsIDEuMjUyNSwgMS42NDQ4MSwgMi4yNzEyLCAyLjgxOTIsIDMuNjAxNiIsIFwKLSAgICAgICAgICAiMC4xNTY1LCAwLjcwMzc2NywgMS4yNTI1NiwgMS42NDQwMywgMi4yNzEwNywgMi44MTk0NywgMy42MDI3MSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMU4iOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTQxNjE3LCAwLjQwNDc0OCwgMC42NjY3MDgsIDAuODU0MTk1LCAxLjE1MzcsIDEuNDE1OTYsIDEuNzkxOTUiLCBcCi0gICAgICAgICAgIjAuMTUzMjY4LCAwLjQxNjQzOCwgMC42Nzg3NywgMC44NjU4NTUsIDEuMTY1NDcsIDEuNDI3NTUsIDEuODA0NDUiLCBcCi0gICAgICAgICAgIjAuMTY4MDksIDAuNDMxMjk2LCAwLjY5MzQzMiwgMC44ODA5NjIsIDEuMTgwMTksIDEuNDQyMzQsIDEuODE4MjciLCBcCi0gICAgICAgICAgIjAuMTgzMjIsIDAuNDQ2NDcsIDAuNzA4NDUxLCAwLjg5NTk2NiwgMS4xOTU0NywgMS40NTc1OCwgMS44MzM5IiwgXAotICAgICAgICAgICIwLjE5ODE1NCwgMC40NjE0NTIsIDAuNzIzNzY1LCAwLjkxMDk5NSwgMS4yMTA1MiwgMS40NzMwNywgMS44NDk2NiIsIFwKLSAgICAgICAgICAiMC4yMjE3NywgMC40ODUxMTgsIDAuNzQ3NDgyLCAwLjkzNDY3NiwgMS4yMzQzLCAxLjQ5NjI0LCAxLjg3MzM2IiwgXAotICAgICAgICAgICIwLjI0MTQ2OSwgMC41MDQ4ODksIDAuNzY3MjYzLCAwLjk1NDQzMSwgMS4yNTM5OSwgMS41MTU5OCwgMS44OTMyNiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEyMDY5LCAwLjYzMjQ0LCAxLjE0NDgyLCAxLjUxODI5LCAyLjExNjM2LCAyLjYyMDkzLCAzLjM1ODEyIiwgXAotICAgICAgICAgICIwLjEyMDY4OCwgMC42MzI0MzMsIDEuMTQ5MDQsIDEuNTE4MjMsIDIuMTA3NDIsIDIuNjI2NSwgMy4zNTUwOSIsIFwKLSAgICAgICAgICAiMC4xMjA2MzMsIDAuNjMyNDQsIDEuMTQ5MTgsIDEuNTE4NTgsIDIuMTA5MTIsIDIuNjIzOTIsIDMuMzU3OCIsIFwKLSAgICAgICAgICAiMC4xMjA2NTMsIDAuNjMyNDM5LCAxLjE0ODg2LCAxLjUxODIxLCAyLjExNjQzLCAyLjYyMTI0LCAzLjM1ODk1IiwgXAotICAgICAgICAgICIwLjEyMDY4OCwgMC42MzI0NDEsIDEuMTQ5LCAxLjUxODI2LCAyLjEwOTMxLCAyLjYxODgsIDMuMzU0OSIsIFwKLSAgICAgICAgICAiMC4xMjA3NzMsIDAuNjMyNDM0LCAxLjE0ODk4LCAxLjUxNywgMi4xMDc2MSwgMi42MjQ2OCwgMy4zNTQ4NSIsIFwKLSAgICAgICAgICAiMC4xMjA4OSwgMC42MzIyOTgsIDEuMTQ4OTEsIDEuNTIyODIsIDIuMTA3NzUsIDIuNjM0MzgsIDMuMzU0NjMiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNDQ0MTMsIDAuNDM1MDEzLCAwLjcyMjc5MywgMC45Mjc5MzIsIDEuMjU1OTUsIDEuNTQzMzEsIDEuOTUyNTkiLCBcCi0gICAgICAgICAgIjAuMTU1ODU0LCAwLjQ0NjUwOCwgMC43MzQyNzMsIDAuOTM5NDk5LCAxLjI2NzUzLCAxLjU1NDI0LCAxLjk2NDU3IiwgXAotICAgICAgICAgICIwLjE3MDg5MywgMC40NjE1ODcsIDAuNzQ5MjkzLCAwLjk1NDQ3NCwgMS4yODI1MywgMS41NzAyMiwgMS45Nzk1IiwgXAotICAgICAgICAgICIwLjE4NTU0LCAwLjQ3NjMyOSwgMC43NjM4NTIsIDAuOTY5MzU5LCAxLjI5NzY4LCAxLjU4NDMyLCAxLjk5NTIyIiwgXAotICAgICAgICAgICIwLjE5OTYwMiwgMC40OTA0MzksIDAuNzc4MDA4LCAwLjk4MzQxNywgMS4zMTEzMiwgMS41OTgzMiwgMi4wMDg5MyIsIFwKLSAgICAgICAgICAiMC4yMjIzNTcsIDAuNTEzMjIzLCAwLjgwMDk3NCwgMS4wMDYyNCwgMS4zMzQxNSwgMS42MjExNiwgMi4wMzE5IiwgXAotICAgICAgICAgICIwLjIzOTkzMywgMC41MzA4MywgMC44MTg0MjgsIDEuMDIzODIsIDEuMzUxNzgsIDEuNjM4NzksIDIuMDQ5NTIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNTYyNDksIDAuNzAzODIzLCAxLjI1MjUxLCAxLjY0Mzg1LCAyLjI3MTMyLCAyLjgxOTA1LCAzLjYwMTY2IiwgXAotICAgICAgICAgICIwLjE1NjI1MiwgMC43MDM3MjIsIDEuMjUyNCwgMS42NDM5NiwgMi4yNzEwMiwgMi44MTg5MSwgMy42MDEyNSIsIFwKLSAgICAgICAgICAiMC4xNTYyMzgsIDAuNzAzODExLCAxLjI1MjQ5LCAxLjY0NDQ5LCAyLjI3MTE1LCAyLjgxOTUyLCAzLjYwMjYzIiwgXAotICAgICAgICAgICIwLjE1NjIzOCwgMC43MDM4NSwgMS4yNTIzOCwgMS42NDQyNywgMi4yNzA4MSwgMi44MTk0NSwgMy42MDI4NyIsIFwKLSAgICAgICAgICAiMC4xNTY0MTMsIDAuNzAzNzYsIDEuMjUyMiwgMS42NDQxOSwgMi4yNzEwNiwgMi44MTk1NiwgMy42MDI5IiwgXAotICAgICAgICAgICIwLjE1NjUyNCwgMC43MDM4MzUsIDEuMjUyMTUsIDEuNjQ0ODEsIDIuMjcwMzYsIDIuODE5NTksIDMuNjAyOTIiLCBcCi0gICAgICAgICAgIjAuMTU2OTU2LCAwLjcwMzczMiwgMS4yNTIyNywgMS42NDQyOCwgMi4yNzAzNywgMi44MTk1OSwgMy42MDI4OSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjg1MzMsIDAuMzMxNjEyLCAwLjU5MzcyNiwgMC43ODA3NTYsIDEuMDgwMjQsIDEuMzQxOTcsIDEuNzE2MjUiLCBcCi0gICAgICAgICAgIjAuMDc4NzM2LCAwLjM0MTk3MSwgMC42MDQwOTcsIDAuNzkxMTg4LCAxLjA5MDM3LCAxLjM1MjM2LCAxLjcyNjg3IiwgXAotICAgICAgICAgICIwLjA5MTY5NiwgMC4zNTUwNjcsIDAuNjE3MjEsIDAuODA0MjcxLCAxLjEwMzU2LCAxLjM2NTgzLCAxLjczOTI5IiwgXAotICAgICAgICAgICIwLjEwNTM4NSwgMC4zNjgzNzcsIDAuNjMwNDkyLCAwLjgxNzYxLCAxLjExNzA5LCAxLjM3ODg0LCAxLjc1MzQ4IiwgXAotICAgICAgICAgICIwLjExODU1NCwgMC4zODEyNzIsIDAuNjQzNDY2LCAwLjgzMDQ5NCwgMS4xMjk3NiwgMS4zOTE1OCwgMS43NjYxOCIsIFwKLSAgICAgICAgICAiMC4xMzk5NTEsIDAuNDAyMjg2LCAwLjY2NDM5LCAwLjg1MTc1OSwgMS4xNTA3OSwgMS40MTI2NSwgMS43ODY4MiIsIFwKLSAgICAgICAgICAiMC4xNTgyNjUsIDAuNDIwNjU1LCAwLjY4MjkxOCwgMC44Njk3ODUsIDEuMTY5MjMsIDEuNDMxMDgsIDEuODA1NjkiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMjQzMSwgMC42MzgyMzcsIDEuMTQ5OTksIDEuNTE1ODEsIDIuMTAxMjIsIDIuNjE0NzMsIDMuMzQ1MDIiLCBcCi0gICAgICAgICAgIjAuMTIzODcyLCAwLjYzODE4MSwgMS4xNDk5OSwgMS41MTY2NywgMi4xMDExNSwgMi42MTQ3NSwgMy4zNDQ4MyIsIFwKLSAgICAgICAgICAiMC4xMjQ0NTcsIDAuNjM3NTY3LCAxLjE1MDAyLCAxLjUxNTg0LCAyLjEwMTIsIDIuNjEzNTgsIDMuMzQ1MjEiLCBcCi0gICAgICAgICAgIjAuMTI3OTYxLCAwLjYzNzcwMSwgMS4xNTAwMiwgMS41MTY3NCwgMi4xMDE0OCwgMi42MTM2NCwgMy4zNDUxNSIsIFwKLSAgICAgICAgICAiMC4xMzM0NjUsIDAuNjM3NjI4LCAxLjE1MDA2LCAxLjUxNTg3LCAyLjEwMTIxLCAyLjYxMzQsIDMuMzQ0OCIsIFwKLSAgICAgICAgICAiMC4xNDM5NzksIDAuNjM3MjEsIDEuMTQ5OTYsIDEuNTE1ODIsIDIuMTAxMTksIDIuNjE0NzMsIDMuMzQ2NzMiLCBcCi0gICAgICAgICAgIjAuMTU1MTY2LCAwLjYzODE4OSwgMS4xNTAwMiwgMS41MTU1MywgMi4xMDIzMiwgMi42MTM1LCAzLjM0NDg0Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDcyNDU1LCAwLjM1OTU1OCwgMC42NDY3NjYsIDAuODUxNjI4LCAxLjE3OTMxLCAxLjQ2NjA1LCAxLjg3NjM2IiwgXAotICAgICAgICAgICIwLjA4NDA3MSwgMC4zNzE2OCwgMC42NTg2MTQsIDAuODYzNzMyLCAxLjE5MTMyLCAxLjQ3ODk4LCAxLjg4ODcxIiwgXAotICAgICAgICAgICIwLjA5NzQyMSwgMC4zODUzNTgsIDAuNjcyNDE3LCAwLjg3NzM5NSwgMS4yMDUyMSwgMS40OTIyOSwgMS45MDE4NyIsIFwKLSAgICAgICAgICAiMC4xMTA2NTEsIDAuMzk5MDM3LCAwLjY4NTk2NiwgMC44OTA5ODksIDEuMjE4ODIsIDEuNTA1OTMsIDEuOTE1OCIsIFwKLSAgICAgICAgICAiMC4xMjM5OTYsIDAuNDEyNTAzLCAwLjY5OTc2LCAwLjkwNDQ1LCAxLjIzMjYzLCAxLjUxOTkxLCAxLjkzMDI3IiwgXAotICAgICAgICAgICIwLjE0NTA5NSwgMC40MzQwMjUsIDAuNzIxMjQyLCAwLjkyNjI3NiwgMS4yNTQxOSwgMS41NDExLCAxLjk1MDgiLCBcCi0gICAgICAgICAgIjAuMTYzMTAxLCAwLjQ1MTkzOCwgMC43NDAyNjUsIDAuOTQ1MDczLCAxLjI3MzYsIDEuNTYwMDcsIDEuOTY5NjgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMjcwNzYsIDAuNjc0MTQyLCAxLjIyMjI4LCAxLjYxMzQ3LCAyLjI0NTQ4LCAyLjc5MzE5LCAzLjU4MjA3IiwgXAotICAgICAgICAgICIwLjEyNzA4LCAwLjY3NDIxLCAxLjIyMTc1LCAxLjYxMjg5LCAyLjI0NjgxLCAyLjc5MzQsIDMuNTgyMDYiLCBcCi0gICAgICAgICAgIjAuMTI3MjE5LCAwLjY3NDA5NywgMS4yMjIxLCAxLjYxMjk0LCAyLjIzOTc2LCAyLjc4ODU5LCAzLjU4MTA3IiwgXAotICAgICAgICAgICIwLjEyODk3OSwgMC42NzQxNjgsIDEuMjIxODIsIDEuNjEzMjksIDIuMjQwMTIsIDIuNzg5MDQsIDMuNTgyIiwgXAotICAgICAgICAgICIwLjEzMjIyNCwgMC42NzQxNzksIDEuMjIyMTksIDEuNjE0NCwgMi4yMzk0MiwgMi43OTczLCAzLjU4MTkxIiwgXAotICAgICAgICAgICIwLjEzOTE2MywgMC42NzQxMSwgMS4yMjIxNywgMS42MTM0NywgMi4yNDMwNCwgMi43OTM4LCAzLjU4MTAyIiwgXAotICAgICAgICAgICIwLjE0NjY5OSwgMC42NzQxNTYsIDEuMjIyMTEsIDEuNjE0NDUsIDIuMjQ1MzcsIDIuNzk1MjQsIDMuNTgxNDUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDYzNTgyLCAwLjMyNzYyMiwgMC41OTExNDIsIDAuNzc5MjQ4LCAxLjA4MDY4LCAxLjM0MzU1LCAxLjcyMDIyIiwgXAotICAgICAgICAgICIwLjA3Mzg4OSwgMC4zMzgyNDcsIDAuNjAxNzk4LCAwLjc4OTU3NCwgMS4wOTEzNSwgMS4zNTQyMywgMS43MzA4NyIsIFwKLSAgICAgICAgICAiMC4wODY3ODYsIDAuMzUxMzY4LCAwLjYxNDk0LCAwLjgwMzA1MywgMS4xMDQwNCwgMS4zNjc4OSwgMS43NDM0NCIsIFwKLSAgICAgICAgICAiMC4xMDA0NDcsIDAuMzY1MDMyLCAwLjYyODYwNSwgMC44MTY4NzYsIDEuMTE3NzUsIDEuMzgxMjksIDEuNzU3ODciLCBcCi0gICAgICAgICAgIjAuMTEzNTEyLCAwLjM3NzUxNSwgMC42NDEwNTksIDAuODI5MzYxLCAxLjEzMDE5LCAxLjM5NDEsIDEuNzcwNDMiLCBcCi0gICAgICAgICAgIjAuMTM1MTk0LCAwLjM5ODQ1OSwgMC42NjIwNjEsIDAuODUwMTMxLCAxLjE1MTM0LCAxLjQxNDU2LCAxLjc5MTU5IiwgXAotICAgICAgICAgICIwLjE1MjcyNSwgMC40MTY4MjIsIDAuNjgwNDQyLCAwLjg2ODUwOCwgMS4xNjk2NiwgMS40MzMwMywgMS44MDk4MyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExOTA1LCAwLjYzNTgsIDEuMTUwNDMsIDEuNTE4NDUsIDIuMTA3MjYsIDIuNjI1MzIsIDMuMzc4MjIiLCBcCi0gICAgICAgICAgIjAuMTE4NDc5LCAwLjYzNTcyOCwgMS4xNTA0MywgMS41MTk0NywgMi4xMDcyNiwgMi42MjUyLCAzLjM3ODE5IiwgXAotICAgICAgICAgICIwLjExOTU3OCwgMC42MzQ5MzgsIDEuMTUwNDMsIDEuNTIyNzcsIDIuMTA5MiwgMi42MjI1OSwgMy4zNjUzNCIsIFwKLSAgICAgICAgICAiMC4xMjM0MiwgMC42MzUxMDQsIDEuMTUwNSwgMS41MTg4MSwgMi4xMDg0NCwgMi42MjcyOCwgMy4zNTk5IiwgXAotICAgICAgICAgICIwLjEyOTMxOSwgMC42MzUxNDUsIDEuMTUwNCwgMS41MTg0NCwgMi4xMDkwNywgMi42MjI1LCAzLjM1ODU1IiwgXAotICAgICAgICAgICIwLjE0MDY4OCwgMC42MzQ3NzgsIDEuMTUwNCwgMS41MTkxMywgMi4xMDg0NywgMi42MzUxMiwgMy4zNTg4MiIsIFwKLSAgICAgICAgICAiMC4xNTIyMTMsIDAuNjM1ODQ1LCAxLjE1MTAxLCAxLjUxODA4LCAyLjEwODQ0LCAyLjYyNjM3LCAzLjM1ODU0Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY3NTgzLCAwLjM1NDg4NSwgMC42NDE2NjIsIDAuODQ2NjQyLCAxLjE3NDc3LCAxLjQ2MTI4LCAxLjg3MjMiLCBcCi0gICAgICAgICAgIjAuMDc3ODgzLCAwLjM2NTY2MSwgMC42NTI0OCwgMC44NTc1MTIsIDEuMTg1MzcsIDEuNDcyMjEsIDEuODgyMTQiLCBcCi0gICAgICAgICAgIjAuMDkwNzMsIDAuMzc4ODk4LCAwLjY2NTgxOSwgMC44NzA5NjksIDEuMTk4NjksIDEuNDg1ODUsIDEuODk1NDMiLCBcCi0gICAgICAgICAgIjAuMTA0NDc0LCAwLjM5MjcyMiwgMC42Nzk3MDIsIDAuODg0Njg3LCAxLjIxMzEzLCAxLjQ5OTU2LCAxLjkwOTM5IiwgXAotICAgICAgICAgICIwLjExNzY2NiwgMC40MDUyNjIsIDAuNjkyMzQ4LCAwLjg5NzI0MywgMS4yMjU2OCwgMS41MTIxNywgMS45MjMyMSIsIFwKLSAgICAgICAgICAiMC4xMzk0NjksIDAuNDI2MzU3LCAwLjcxMzUwMywgMC45MTgzOTEsIDEuMjQ2ODUsIDEuNTMzMywgMS45NDM5NCIsIFwKLSAgICAgICAgICAiMC4xNTc1NzksIDAuNDQ0NzM2LCAwLjczMTk3OCwgMC45MzY5NzYsIDEuMjY1LCAxLjU1MjU5LCAxLjk2MjIyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTI3MDcxLCAwLjY3NDE3OCwgMS4yMjIxNSwgMS42MTM1OSwgMi4yNDU3NywgMi43OTM1NCwgMy41NzE3NiIsIFwKLSAgICAgICAgICAiMC4xMjcwNjEsIDAuNjc0MTgsIDEuMjIxOTMsIDEuNjEyOTIsIDIuMjQyNDMsIDIuNzkzNjUsIDMuNTgxMzgiLCBcCi0gICAgICAgICAgIjAuMTI4MDQ3LCAwLjY3NDE5MiwgMS4yMjIxNSwgMS42MTI4OCwgMi4yNDI3LCAyLjc4NzM1LCAzLjU4MTE4IiwgXAotICAgICAgICAgICIwLjEzMTYxNCwgMC42NzQyNjMsIDEuMjIxNzYsIDEuNjEyOTUsIDIuMjM5MSwgMi43ODgwOCwgMy41NzI1NSIsIFwKLSAgICAgICAgICAiMC4xMzczMDIsIDAuNjc0MjA0LCAxLjIyMTkxLCAxLjYxNCwgMi4yMzk3MywgMi43OTcxOSwgMy41NzE3MyIsIFwKLSAgICAgICAgICAiMC4xNDg1MTcsIDAuNjc0MjI0LCAxLjIyMTg2LCAxLjYxNDMsIDIuMjM5NzMsIDIuNzg5MDksIDMuNTcyMSIsIFwKLSAgICAgICAgICAiMC4xNTk0MzcsIDAuNjc0NTQ5LCAxLjIyMTcyLCAxLjYxMzQ2LCAyLjI0NTYxLCAyLjc4NzMyLCAzLjU3MjA2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTBOIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwOTg5MywgMC4wMDk5MDcsIDAuMDA5OTA3LCAwLjAwOTkwOSwgMC4wMDk5MDIsIDAuMDA5ODk4LCAwLjAwOTkwNyIsIFwKLSAgICAgICAgICAiMC4wMDk4NjcsIDAuMDA5ODgzLCAwLjAwOTg4MiwgMC4wMDk4ODIsIDAuMDA5ODg0LCAwLjAwOTg4LCAwLjAwOTg4IiwgXAotICAgICAgICAgICIwLjAwOTg0MywgMC4wMDk4NjIsIDAuMDA5ODY0LCAwLjAwOTg2NiwgMC4wMDk4NjEsIDAuMDA5ODYxLCAwLjAwOTg1OCIsIFwKLSAgICAgICAgICAiMC4wMDk4MjcsIDAuMDA5ODUsIDAuMDA5ODUyLCAwLjAwOTg1MywgMC4wMDk4NDgsIDAuMDA5ODUxLCAwLjAwOTg0NiIsIFwKLSAgICAgICAgICAiMC4wMDk4MTMsIDAuMDA5ODQsIDAuMDA5ODQxLCAwLjAwOTg0NCwgMC4wMDk4MzcsIDAuMDA5ODQsIDAuMDA5ODQ1IiwgXAotICAgICAgICAgICIwLjAwOTgwMiwgMC4wMDk4MzMsIDAuMDA5ODM2LCAwLjAwOTgzNywgMC4wMDk4MzcsIDAuMDA5ODM2LCAwLjAwOTgzMiIsIFwKLSAgICAgICAgICAiMC4wMDk4LCAwLjAwOTgzNSwgMC4wMDk4NCwgMC4wMDk4NDEsIDAuMDA5ODQsIDAuMDA5ODQyLCAwLjAwOTgzOCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA5NDEzLCAwLjAwOTQzNCwgMC4wMDk0MzQsIDAuMDA5NDM1LCAwLjAwOTQzMiwgMC4wMDk0MjksIDAuMDA5NDI4IiwgXAotICAgICAgICAgICIwLjAwOTM4OCwgMC4wMDk0MTIsIDAuMDA5NDEzLCAwLjAwOTQxNSwgMC4wMDk0MTMsIDAuMDA5NDExLCAwLjAwOTQwOSIsIFwKLSAgICAgICAgICAiMC4wMDkzNjUsIDAuMDA5Mzk2LCAwLjAwOTM5OSwgMC4wMDk0LCAwLjAwOTQsIDAuMDA5Mzk3LCAwLjAwOTM5NCIsIFwKLSAgICAgICAgICAiMC4wMDkzNDIsIDAuMDA5MzgzLCAwLjAwOTM4NSwgMC4wMDkzODgsIDAuMDA5Mzg1LCAwLjAwOTM4NywgMC4wMDkzODMiLCBcCi0gICAgICAgICAgIjAuMDA5MzI0LCAwLjAwOTM3MSwgMC4wMDkzNzgsIDAuMDA5Mzc5LCAwLjAwOTM4LCAwLjAwOTM3OCwgMC4wMDkzNzgiLCBcCi0gICAgICAgICAgIjAuMDA5MzAxLCAwLjAwOTM2MSwgMC4wMDkzNywgMC4wMDkzNzEsIDAuMDA5MzcyLCAwLjAwOTM3NSwgMC4wMDkzNzIiLCBcCi0gICAgICAgICAgIjAuMDA5MjkyLCAwLjAwOTM1MywgMC4wMDkzNjUsIDAuMDA5MzY5LCAwLjAwOTM3LCAwLjAwOTM2OSwgMC4wMDkzNjYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMU4iOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA5MjI4LCAwLjAwOTI3MywgMC4wMDkyNzcsIDAuMDA5MjgxLCAwLjAwOTI3NSwgMC4wMDkyODEsIDAuMDA5Mjc3IiwgXAotICAgICAgICAgICIwLjAwOTIwMiwgMC4wMDkyNDksIDAuMDA5MjU0LCAwLjAwOTI1NSwgMC4wMDkyNTcsIDAuMDA5MjU1LCAwLjAwOTI1MyIsIFwKLSAgICAgICAgICAiMC4wMDkxNzIsIDAuMDA5MjI5LCAwLjAwOTIzNCwgMC4wMDkyNCwgMC4wMDkyMzksIDAuMDA5MjM3LCAwLjAwOTI0MyIsIFwKLSAgICAgICAgICAiMC4wMDkxNDksIDAuMDA5MjE0LCAwLjAwOTIyMSwgMC4wMDkyMjQsIDAuMDA5MjIxLCAwLjAwOTIyNCwgMC4wMDkyMjIiLCBcCi0gICAgICAgICAgIjAuMDA5MTI4LCAwLjAwOTE5OSwgMC4wMDkyMDksIDAuMDA5MjEzLCAwLjAwOTIxMywgMC4wMDkyMTYsIDAuMDA5MjE0IiwgXAotICAgICAgICAgICIwLjAwOTEwOSwgMC4wMDkxODksIDAuMDA5MjAxLCAwLjAwOTIwMywgMC4wMDkyMDcsIDAuMDA5MjA4LCAwLjAwOTIwOCIsIFwKLSAgICAgICAgICAiMC4wMDkxMDcsIDAuMDA5MjAyLCAwLjAwOTIxOCwgMC4wMDkyMjIsIDAuMDA5MjI2LCAwLjAwOTIyOCwgMC4wMDkyMjgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwODk3MiwgMC4wMDkwMDEsIDAuMDA5MDA2LCAwLjAwOTAwMiwgMC4wMDkwMDYsIDAuMDA5MDAzLCAwLjAwODk5NCIsIFwKLSAgICAgICAgICAiMC4wMDg5NDksIDAuMDA4OTgzLCAwLjAwODk4NiwgMC4wMDg5ODcsIDAuMDA4OTg1LCAwLjAwODk4MiwgMC4wMDg5ODEiLCBcCi0gICAgICAgICAgIjAuMDA4OTI2LCAwLjAwODk2OSwgMC4wMDg5NzEsIDAuMDA4OTc1LCAwLjAwODk3MSwgMC4wMDg5NywgMC4wMDg5NjgiLCBcCi0gICAgICAgICAgIjAuMDA4ODk5LCAwLjAwODk1MiwgMC4wMDg5NTksIDAuMDA4OTYxLCAwLjAwODk2MSwgMC4wMDg5NjEsIDAuMDA4OTU3IiwgXAotICAgICAgICAgICIwLjAwODg3MywgMC4wMDg5MzYsIDAuMDA4OTQ5LCAwLjAwODk1LCAwLjAwODk0OSwgMC4wMDg5NTIsIDAuMDA4OTQ5IiwgXAotICAgICAgICAgICIwLjAwODg1NywgMC4wMDg5MjksIDAuMDA4OTQsIDAuMDA4OTQzLCAwLjAwODk0NiwgMC4wMDg5NDYsIDAuMDA4OTQ1IiwgXAotICAgICAgICAgICIwLjAwODgzNiwgMC4wMDg5MTQsIDAuMDA4OTI4LCAwLjAwODkzNCwgMC4wMDg5MzQsIDAuMDA4OTM2LCAwLjAwODkzNSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNzEwMSwgMC4wMDcxMDMsIDAuMDA3MTAzLCAwLjAwNzEwMiwgMC4wMDcxLCAwLjAwNzA5OCwgMC4wMDcwOTciLCBcCi0gICAgICAgICAgIjAuMDA3MDQ1LCAwLjAwNzA3NCwgMC4wMDcwNzYsIDAuMDA3MDc1LCAwLjAwNzA3NSwgMC4wMDcwNzUsIDAuMDA3MDcyIiwgXAotICAgICAgICAgICIwLjAwNzAwOSwgMC4wMDcwNiwgMC4wMDcwNjQsIDAuMDA3MDY4LCAwLjAwNzA2NCwgMC4wMDcwNywgMC4wMDcwNyIsIFwKLSAgICAgICAgICAiMC4wMDY5ODYsIDAuMDA3MDUsIDAuMDA3MDYsIDAuMDA3MDYyLCAwLjAwNzA2MywgMC4wMDcwNjMsIDAuMDA3MDYxIiwgXAotICAgICAgICAgICIwLjAwNjk3MiwgMC4wMDcwNDMsIDAuMDA3MDU0LCAwLjAwNzA1NywgMC4wMDcwNTksIDAuMDA3MDU4LCAwLjAwNzA2IiwgXAotICAgICAgICAgICIwLjAwNjk1NCwgMC4wMDcwMzIsIDAuMDA3MDQ3LCAwLjAwNzA1MSwgMC4wMDcwNTUsIDAuMDA3MDU1LCAwLjAwNzA1NyIsIFwKLSAgICAgICAgICAiMC4wMDY5NDcsIDAuMDA3MDIzLCAwLjAwNzA0MiwgMC4wMDcwNDYsIDAuMDA3MDUyLCAwLjAwNzA1MiwgMC4wMDcwNTEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTc2MywgMC4wMDE3ODMsIDAuMDAxNzg1LCAwLjAwMTc4NiwgMC4wMDE3ODYsIDAuMDAxNzg2LCAwLjAwMTc4NyIsIFwKLSAgICAgICAgICAiMC4wMDE3MzYsIDAuMDAxODIsIDAuMDAxODMsIDAuMDAxODMzLCAwLjAwMTgzNiwgMC4wMDE4MzgsIDAuMDAxODM5IiwgXAotICAgICAgICAgICIwLjAwMTY3NiwgMC4wMDE4MTYsIDAuMDAxODM1LCAwLjAwMTg0MSwgMC4wMDE4NDYsIDAuMDAxODQ4LCAwLjAwMTg1MSIsIFwKLSAgICAgICAgICAiMC4wMDE2MjYsIDAuMDAxODAzLCAwLjAwMTgyOSwgMC4wMDE4MzgsIDAuMDAxODQ2LCAwLjAwMTg1LCAwLjAwMTg1MyIsIFwKLSAgICAgICAgICAiMC4wMDE1OSwgMC4wMDE3ODgsIDAuMDAxODIyLCAwLjAwMTgzMywgMC4wMDE4NDIsIDAuMDAxODQ3LCAwLjAwMTg1MiIsIFwKLSAgICAgICAgICAiMC4wMDE1NDUsIDAuMDAxNzY0LCAwLjAwMTgwOCwgMC4wMDE4MjIsIDAuMDAxODM1LCAwLjAwMTg0MiwgMC4wMDE4NDgiLCBcCi0gICAgICAgICAgIjAuMDAxNTE4LCAwLjAwMTc0MSwgMC4wMDE3OTUsIDAuMDAxODEyLCAwLjAwMTgyOCwgMC4wMDE4MzYsIDAuMDAxODQ0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1NzY4LCAwLjAwNTc4MSwgMC4wMDU3ODMsIDAuMDA1NzgyLCAwLjAwNTc4MSwgMC4wMDU3ODEsIDAuMDA1NzgiLCBcCi0gICAgICAgICAgIjAuMDA1NzMsIDAuMDA1NzksIDAuMDA1Nzk3LCAwLjAwNTc5OCwgMC4wMDU3OTksIDAuMDA1OCwgMC4wMDU4IiwgXAotICAgICAgICAgICIwLjAwNTY3OCwgMC4wMDU3NzksIDAuMDA1NzkxLCAwLjAwNTc5NywgMC4wMDU3OTUsIDAuMDA1OCwgMC4wMDU4MDQiLCBcCi0gICAgICAgICAgIjAuMDA1NjQsIDAuMDA1NzY1LCAwLjAwNTc4MywgMC4wMDU3ODksIDAuMDA1Nzk1LCAwLjAwNTc5OSwgMC4wMDU3OTYiLCBcCi0gICAgICAgICAgIjAuMDA1NjE3LCAwLjAwNTc1NCwgMC4wMDU3NzcsIDAuMDA1Nzg1LCAwLjAwNTc5MSwgMC4wMDU3OTMsIDAuMDA1Nzk2IiwgXAotICAgICAgICAgICIwLjAwNTU4OCwgMC4wMDU3MzUsIDAuMDA1NzY1LCAwLjAwNTc3NSwgMC4wMDU3ODMsIDAuMDA1Nzg4LCAwLjAwNTc5MSIsIFwKLSAgICAgICAgICAiMC4wMDU1NzUsIDAuMDA1NzIxLCAwLjAwNTc1NiwgMC4wMDU3NjcsIDAuMDA1Nzc4LCAwLjAwNTc4MywgMC4wMDU3ODUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTc2LCAwLjAwMTc4NSwgMC4wMDE3ODgsIDAuMDAxNzg4LCAwLjAwMTc4OSwgMC4wMDE3ODksIDAuMDAxNzg3IiwgXAotICAgICAgICAgICIwLjAwMTcxOSwgMC4wMDE4MiwgMC4wMDE4MzIsIDAuMDAxODM0LCAwLjAwMTgzOCwgMC4wMDE4NCwgMC4wMDE4NDIiLCBcCi0gICAgICAgICAgIjAuMDAxNjUzLCAwLjAwMTgxNCwgMC4wMDE4MzYsIDAuMDAxODQyLCAwLjAwMTg0OCwgMC4wMDE4NTEsIDAuMDAxODU0IiwgXAotICAgICAgICAgICIwLjAwMTYwOCwgMC4wMDE3OTksIDAuMDAxODI5LCAwLjAwMTgzOCwgMC4wMDE4NDYsIDAuMDAxODUsIDAuMDAxODU0IiwgXAotICAgICAgICAgICIwLjAwMTU3LCAwLjAwMTc4MSwgMC4wMDE4MiwgMC4wMDE4MzIsIDAuMDAxODQzLCAwLjAwMTg0OSwgMC4wMDE4NTQiLCBcCi0gICAgICAgICAgIjAuMDAxNTMzLCAwLjAwMTc1NywgMC4wMDE4MDUsIDAuMDAxODIxLCAwLjAwMTgzNiwgMC4wMDE4NDMsIDAuMDAxODUiLCBcCi0gICAgICAgICAgIjAuMDAxNTE2LCAwLjAwMTczNywgMC4wMDE3OTIsIDAuMDAxODExLCAwLjAwMTgyOCwgMC4wMDE4MzcsIDAuMDAxODQ2Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogQU9JMzFYMSAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChBT0kzMVgxKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMDkwMjc4NzsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQTApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDg2NTU0NzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA4NjIxOTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA4NjU1NDc7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzA2LCAwLjAwMDMwNiwgMC4wMDAzMDYsIDAuMDAwMzA2LCAwLjAwMDMwNiwgMC4wMDAzMDYsIDAuMDAwMzA2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzA3LCAwLjAwMDMwNywgMC4wMDAzMDcsIDAuMDAwMzA3LCAwLjAwMDMwNywgMC4wMDAzMDcsIDAuMDAwMzA3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihBMSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwODg4Njk1OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDg4NDUxNDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA4ODg2OTU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzA2LCAwLjAwMDMwNiwgMC4wMDAzMDYsIDAuMDAwMzA2LCAwLjAwMDMwNiwgMC4wMDAzMDYsIDAuMDAwMzA2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzA4LCAwLjAwMDMwOCwgMC4wMDAzMDgsIDAuMDAwMzA4LCAwLjAwMDMwOCwgMC4wMDAzMDksIDAuMDAwMzA5Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihBMikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwODgzMjM4OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDg3NjMzMjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA4ODMyMzg7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMTcsIDAuMDAwMTcsIDAuMDAwMTcsIDAuMDAwMTcsIDAuMDAwMTcsIDAuMDAwMTY5LCAwLjAwMDE3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzQ3LCAwLjAwMDM0OCwgMC4wMDAzNDgsIDAuMDAwMzQ4LCAwLjAwMDM0OCwgMC4wMDAzNDgsIDAuMDAwMzQ4Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwODc5MTgxOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDg3ODk5NzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA4NzkxODE7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMDc3LCAwLjAwMDA3NywgMC4wMDAwNzcsIDAuMDAwMDc3LCAwLjAwMDA3NywgMC4wMDAwNzcsIDAuMDAwMDc3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNjkzLCAwLjAwMDY5NCwgMC4wMDA2OTQsIDAuMDAwNjk0LCAwLjAwMDY5MywgMC4wMDA2OTMsIDAuMDAwNjkzIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMDQ0NTA1ODsKLSAgICBmdW5jdGlvbiA6ICIoISgoKEEwIEExKSBBMikrQjApKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTAiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE5Mzc3NSwgMC4yODI4ODIsIDAuNzg2OTQ0LCAxLjIzMTU0LCAxLjgyMzMxLCAzLjAwNzg0LCAzLjc0NzY2IiwgXAotICAgICAgICAgICIwLjIwNTU1MiwgMC4yOTQ3MTcsIDAuNzk4NzY2LCAxLjI0MzI0LCAxLjgzNTA1LCAzLjAxOTk3LCAzLjc1OTM5IiwgXAotICAgICAgICAgICIwLjIxOTg3MiwgMC4zMDkwNDIsIDAuODEzMDIxLCAxLjI1NzM2LCAxLjg1LCAzLjAzNDA1LCAzLjc3MzgyIiwgXAotICAgICAgICAgICIwLjIzMzM5NywgMC4zMjI1NjcsIDAuODI2NTExLCAxLjI3MDc5LCAxLjg2MzA5LCAzLjA0ODAzLCAzLjc4NzM2IiwgXAotICAgICAgICAgICIwLjI0NjM1LCAwLjMzNTU3NywgMC44Mzk0OTgsIDEuMjg0MDIsIDEuODc2NjMsIDMuMDYwNjMsIDMuODAwMzciLCBcCi0gICAgICAgICAgIjAuMjY2ODU0LCAwLjM1NjA0OSwgMC44NjAxOSwgMS4zMDQzMywgMS44OTcxMiwgMy4wODE1MSwgMy44MjA4NiIsIFwKLSAgICAgICAgICAiMC4yODQzMTIsIDAuMzczNTc3LCAwLjg3Nzc4NiwgMS4zMjIwMiwgMS45MTQzOSwgMy4wOTg2LCAzLjgzODUxIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMzMzMzNCwgMC41MDcwNTQsIDEuNDkwNzMsIDIuMzU4MzgsIDMuNTE0ODMsIDUuODMyMDEsIDcuMjc4MTYiLCBcCi0gICAgICAgICAgIjAuMzMzMzE2LCAwLjUwNzM5NCwgMS40OTA1NywgMi4zNTgyOCwgMy41MTQ3OSwgNS44Mjk3MiwgNy4yNzgyMSIsIFwKLSAgICAgICAgICAiMC4zMzMzNDIsIDAuNTA3MzczLCAxLjQ5MDY5LCAyLjM1OTc3LCAzLjUxNTQsIDUuODI5OTEsIDcuMjc2MDgiLCBcCi0gICAgICAgICAgIjAuMzMzMjgsIDAuNTA2ODc3LCAxLjQ5MDI5LCAyLjM1ODA4LCAzLjUxNTQ5LCA1LjgyOTc5LCA3LjI3NjY3IiwgXAotICAgICAgICAgICIwLjMzMzM0MSwgMC41MDY4MjUsIDEuNDkwMjksIDIuMzU4NDYsIDMuNTE1MjYsIDUuODI5NjcsIDcuMjc1OTYiLCBcCi0gICAgICAgICAgIjAuMzM0NDQyLCAwLjUwNzI2NSwgMS40OTE3NiwgMi4zNTgwOSwgMy41MTU5NywgNS44Mjk3LCA3LjI3ODIiLCBcCi0gICAgICAgICAgIjAuMzM2NTQxLCAwLjUwNzc1OCwgMS40OTA5NywgMi4zNTg1NCwgMy41MTczMywgNS44MzE0LCA3LjI3ODUzIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMyNDQ3OSwgMC40NzI0MDYsIDEuMzA1NzgsIDIuMDQwODEsIDMuMDE5NTUsIDQuOTc0NTQsIDYuMTk2NzUiLCBcCi0gICAgICAgICAgIjAuMzM1NDg2LCAwLjQ4MzM4NywgMS4zMTY4NiwgMi4wNTE2MywgMy4wMzAyMSwgNC45ODU2LCA2LjIwNzc4IiwgXAotICAgICAgICAgICIwLjM0ODI1NCwgMC40OTYxOTksIDEuMzI5NzQsIDIuMDY0NDcsIDMuMDQzMjQsIDQuOTk4NSwgNi4yMjA3NCIsIFwKLSAgICAgICAgICAiMC4zNjAzNDgsIDAuNTA4MywgMS4zNDIzMywgMi4wNzYxNSwgMy4wNTQ5LCA1LjAxMDg2LCA2LjIzMjgyIiwgXAotICAgICAgICAgICIwLjM3MjIyNywgMC41MjAyMjIsIDEuMzUzOSwgMi4wODgxOCwgMy4wNjcxMSwgNS4wMjI4NSwgNi4yNDQ4OCIsIFwKLSAgICAgICAgICAiMC4zOTA5MjUsIDAuNTM4OTU5LCAxLjM3MzMxLCAyLjEwODAzLCAzLjA4NjAyLCA1LjA0MTYzLCA2LjI2MzcyIiwgXAotICAgICAgICAgICIwLjQwNzI2MywgMC41NTUzNjUsIDEuMzg5NTIsIDIuMTI0MjgsIDMuMTAyMzEsIDUuMDU4MjYsIDYuMjgwMTkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuNTQ0OTU3LCAwLjgyMDY0NiwgMi4zODM3NSwgMy43NjIxOCwgNS41OTk2NywgOS4yNzExNywgMTEuNTYwNSIsIFwKLSAgICAgICAgICAiMC41NDQ1MDEsIDAuODIwNjk1LCAyLjM4MzYxLCAzLjc2Mjg2LCA1LjYwMTgsIDkuMjcwOTEsIDExLjU2MDEiLCBcCi0gICAgICAgICAgIjAuNTQ0OTg2LCAwLjgyMTQ3MSwgMi4zODM1OSwgMy43NjI5NCwgNS42MDAyOCwgOS4yNzA5NywgMTEuNTU5OSIsIFwKLSAgICAgICAgICAiMC41NDQ2MzEsIDAuODIxMDc3LCAyLjM4NDM2LCAzLjc2NjU2LCA1LjYwMDU2LCA5LjI3MTMyLCAxMS41NjA4IiwgXAotICAgICAgICAgICIwLjU0NDMxNSwgMC44MjA1NDksIDIuMzg1MTIsIDMuNzYxMzMsIDUuNjAxNTYsIDkuMjcwMjgsIDExLjU2IiwgXAotICAgICAgICAgICIwLjU0NDMzOSwgMC44MjExOTUsIDIuMzg0MDksIDMuNzYyMjMsIDUuNjAxMzksIDkuMjcxMDIsIDExLjU2MDIiLCBcCi0gICAgICAgICAgIjAuNTQ0NzA2LCAwLjgyMTUwNCwgMi4zODUxNCwgMy43NjQxMSwgNS42MDA1MSwgOS4yNzExNSwgMTEuNTYwOSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTkwNDE4LCAwLjI3OTg0OSwgMC43ODYzMzYsIDEuMjMzMTksIDEuODI5NDUsIDMuMDE5ODEsIDMuNzYzNDIiLCBcCi0gICAgICAgICAgIjAuMjAyMzM3LCAwLjI5MTgwOCwgMC43OTgyMTgsIDEuMjQ0ODYsIDEuODQwNjUsIDMuMDMxNTMsIDMuNzc1NTkiLCBcCi0gICAgICAgICAgIjAuMjE2NzU4LCAwLjMwNjI1MywgMC44MTMwMTMsIDEuMjU5NTMsIDEuODU1MjUsIDMuMDQ2MzYsIDMuNzg5OTgiLCBcCi0gICAgICAgICAgIjAuMjMwMjg4LCAwLjMxOTg1OSwgMC44MjY0ODcsIDEuMjczMzksIDEuODY5NSwgMy4wNTk0NSwgMy44MDM1MiIsIFwKLSAgICAgICAgICAiMC4yNDMyMzQsIDAuMzMyNzc3LCAwLjgzOTMyMSwgMS4yODU5NiwgMS44ODE5NSwgMy4wNzI1MywgMy44MTY1MSIsIFwKLSAgICAgICAgICAiMC4yNjM0NjMsIDAuMzUzMDY5LCAwLjg1OTg3LCAxLjMwNjg2LCAxLjkwMjU5LCAzLjA5Mjg1LCAzLjgzNjg1IiwgXAotICAgICAgICAgICIwLjI4MDk0LCAwLjM3MDU2MiwgMC44NzczMDcsIDEuMzIzOTYsIDEuOTE5OTMsIDMuMTExMTcsIDMuODU0MyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMzAwNTMsIDAuNTA0NjEsIDEuNDkzNTYsIDIuMzY2MDIsIDMuNTI5ODgsIDUuODYxODEsIDcuMzEyOCIsIFwKLSAgICAgICAgICAiMC4zMzAwNTUsIDAuNTA0NjE1LCAxLjQ5NDMyLCAyLjM2NjE2LCAzLjUyODc4LCA1Ljg1NjI4LCA3LjMxMzIyIiwgXAotICAgICAgICAgICIwLjMzMDAxNywgMC41MDQ2MjMsIDEuNDkzOTksIDIuMzY2MDcsIDMuNTI5NTIsIDUuODYwMDksIDcuMzExNjEiLCBcCi0gICAgICAgICAgIjAuMzMwMDE2LCAwLjUwNDYyNSwgMS40OTM0MywgMi4zNjU4OSwgMy41Mjk5NiwgNS44NTY0OSwgNy4zMTI5OSIsIFwKLSAgICAgICAgICAiMC4zMzAwMzIsIDAuNTA0NjE1LCAxLjQ5MzU0LCAyLjM2NjA2LCAzLjUyOTQsIDUuODU3ODcsIDcuMzEyMSIsIFwKLSAgICAgICAgICAiMC4zMzEzNzUsIDAuNTA0Njc0LCAxLjQ5Mzc4LCAyLjM2NjAzLCAzLjUzMDg3LCA1Ljg1ODg2LCA3LjMxMjM3IiwgXAotICAgICAgICAgICIwLjMzMzE3NiwgMC41MDU0NzcsIDEuNDk0NDEsIDIuMzY2MDYsIDMuNTI5MzUsIDUuODU2ODEsIDcuMzEyNzEiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzIwNDYyLCAwLjQ2ODMxNiwgMS4zMDE3NywgMi4wMzY4MSwgMy4wMTU0OCwgNC45NzA1LCA2LjE5MjcxIiwgXAotICAgICAgICAgICIwLjMzMDY3MSwgMC40Nzg1NjIsIDEuMzEyMjcsIDIuMDQ2NDcsIDMuMDI1NDksIDQuOTgwODcsIDYuMjAyOTEiLCBcCi0gICAgICAgICAgIjAuMzQzNDYzLCAwLjQ5MTQwMywgMS4zMjUwMSwgMi4wNTk3NiwgMy4wMzgyMSwgNC45OTM4LCA2LjIxNTgzIiwgXAotICAgICAgICAgICIwLjM1NjA3MSwgMC41MDQwMTYsIDEuMzM3NjUsIDIuMDcyMzYsIDMuMDUxMzQsIDUuMDA2NDksIDYuMjI4NjgiLCBcCi0gICAgICAgICAgIjAuMzY4ODgsIDAuNTE2OTAxLCAxLjM1MTAyLCAyLjA4NTg3LCAzLjA2Mzg2LCA1LjAxOTQ5LCA2LjI0MTU1IiwgXAotICAgICAgICAgICIwLjM4OTI5NCwgMC41MzczNjMsIDEuMzcxMSwgMi4xMDY0MywgMy4wODQzOSwgNS4wNDAwNywgNi4yNjIxMyIsIFwKLSAgICAgICAgICAiMC40MDcxMzIsIDAuNTU1MjA4LCAxLjM4OTU0LCAyLjEyMzgsIDMuMTAyOTIsIDUuMDU4MjEsIDYuMjgwNDIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuNTQ0NTEzLCAwLjgyMTM3MiwgMi4zODM1NiwgMy43NjIxOSwgNS42MDA5OSwgOS4yNzExMiwgMTEuNTYwNSIsIFwKLSAgICAgICAgICAiMC41NDQ3NTcsIDAuODIxNjYyLCAyLjM4NTA4LCAzLjc2MzYsIDUuNjAwMTQsIDkuMjcxNjksIDExLjU2MDMiLCBcCi0gICAgICAgICAgIjAuNTQ0NjQ2LCAwLjgyMTY3OSwgMi4zODQxMiwgMy43NjI3MywgNS42MDE3LCA5LjI2OTkzLCAxMS41NjA2IiwgXAotICAgICAgICAgICIwLjU0NDM1OSwgMC44MjA4MDEsIDIuMzgzNjMsIDMuNzYyNywgNS41OTk5NiwgOS4yNzE2NSwgMTEuNTYwNSIsIFwKLSAgICAgICAgICAiMC41NDQ5LCAwLjgyMTY3NiwgMi4zODQ0OSwgMy43NjIyMywgNS42MDEzOSwgOS4yNzEzOCwgMTEuNTYwMSIsIFwKLSAgICAgICAgICAiMC41NDQ5NDUsIDAuODIxNjQ3LCAyLjM4NTE0LCAzLjc2MjI0LCA1LjYwMTM5LCA5LjI2OTU4LCAxMS41NjA1IiwgXAotICAgICAgICAgICIwLjU0NDc2MiwgMC44MjA0ODIsIDIuMzg0NDEsIDMuNzYzNjMsIDUuNjAwNTgsIDkuMjcxMzUsIDExLjU2MDUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTIiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE4Mzg3OCwgMC4yNzI3MTcsIDAuNzc1NzYyLCAxLjIyMDU5LCAxLjgxMjIzLCAyLjk5NjA2LCAzLjczNTc2IiwgXAotICAgICAgICAgICIwLjE5NjAzNiwgMC4yODQ4NTYsIDAuNzg4MTkyLCAxLjIzMjE5LCAxLjgyNDE2LCAzLjAwODQsIDMuNzQ4MDEiLCBcCi0gICAgICAgICAgIjAuMjEwNDQ3LCAwLjI5OTQyMiwgMC44MDI4OCwgMS4yNDcwNCwgMS44MzkxNCwgMy4wMjMxMiwgMy43NjI1MSIsIFwKLSAgICAgICAgICAiMC4yMjM5MSwgMC4zMTI4MjIsIDAuODE2NDE2LCAxLjI2MDcxLCAxLjg1MzY5LCAzLjAzNjI4LCAzLjc3NTk2IiwgXAotICAgICAgICAgICIwLjIzNjc4OCwgMC4zMjU3ODcsIDAuODI5Njk5LCAxLjI3NDAxLCAxLjg2NTgxLCAzLjA0OTI0LCAzLjc4OTAzIiwgXAotICAgICAgICAgICIwLjI1NzIyOSwgMC4zNDYzNSwgMC44NDk3NDksIDEuMjkzODcsIDEuODg2MzEsIDMuMDcwNTksIDMuODA5NjciLCBcCi0gICAgICAgICAgIjAuMjc0NjY1LCAwLjM2MzcyNCwgMC44NjczMTMsIDEuMzExNDMsIDEuOTAzNTgsIDMuMDg3NTQsIDMuODI3MjkiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzIzMTA4LCAwLjQ5NzQyNSwgMS40ODI4NywgMi4zNDc0MywgMy41MjQ4LCA1LjgyMTc5LCA3LjI2Mjk0IiwgXAotICAgICAgICAgICIwLjMyMzQwNSwgMC40OTc0NywgMS40ODA2LCAyLjM1MjM4LCAzLjUxMTgsIDUuODE5MTksIDcuMjYzMTEiLCBcCi0gICAgICAgICAgIjAuMzIzNDE5LCAwLjQ5NjA0NCwgMS40ODA1LCAyLjM1NTA0LCAzLjUyNSwgNS44MTkyLCA3LjI2MjYyIiwgXAotICAgICAgICAgICIwLjMyMzQ3LCAwLjQ5NzUyNSwgMS40ODQ1NCwgMi4zNTU0MSwgMy41MDQwMywgNS44MjI3NSwgNy4yNjI2NyIsIFwKLSAgICAgICAgICAiMC4zMjMzNDcsIDAuNDk3NDksIDEuNDc5MywgMi4zNDcxLCAzLjUwNjkyLCA1LjgyMTM3LCA3LjI2Mjk5IiwgXAotICAgICAgICAgICIwLjMyMzgzNCwgMC40OTYwOTgsIDEuNDg0MDQsIDIuMzQ5MDYsIDMuNTI1MDQsIDUuODE1NzYsIDcuMjYzMDYiLCBcCi0gICAgICAgICAgIjAuMzI2NzI0LCAwLjQ5ODMyOSwgMS40ODMwOCwgMi4zNjIyNCwgMy41MDcwNywgNS44MjE4NSwgNy4yNjI3OCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMTEyNzcsIDAuNDU5MTAzLCAxLjI5MzA2LCAyLjAyNzQyLCAzLjAwNTkzLCA0Ljk2MTQ1LCA2LjE4MzQiLCBcCi0gICAgICAgICAgIjAuMzIwNDY2LCAwLjQ2ODMwNCwgMS4zMDIyNiwgMi4wMzY3NCwgMy4wMTQ3MSwgNC45NzA1OSwgNi4xOTI3NyIsIFwKLSAgICAgICAgICAiMC4zMzIzOTEsIDAuNDgwMzMxLCAxLjMxNDUzLCAyLjA0ODMyLCAzLjAyNzUzLCA0Ljk4MjczLCA2LjIwNDk1IiwgXAotICAgICAgICAgICIwLjM0NDcyNCwgMC40OTI3NzksIDEuMzI2NjcsIDIuMDYxMzIsIDMuMDM5NjgsIDQuOTk1MjksIDYuMjE3MzMiLCBcCi0gICAgICAgICAgIjAuMzU2NzQsIDAuNTA0NzE1LCAxLjMzODc4LCAyLjA3MzQzLCAzLjA1MjEzLCA1LjAwNzM2LCA2LjIyOTM0IiwgXAotICAgICAgICAgICIwLjM3NjI5NiwgMC41MjQzNDUsIDEuMzU4NDgsIDIuMDkzNDYsIDMuMDcxMzksIDUuMDI2ODMsIDYuMjQ5MTEiLCBcCi0gICAgICAgICAgIjAuMzkzNDAzLCAwLjU0MTU0NiwgMS4zNzU3LCAyLjExMDM5LCAzLjA4ODg2LCA1LjA0NDI0LCA2LjI2NjQ4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjU0NDk1NSwgMC44MjA4MDcsIDIuMzg0ODIsIDMuNzY0MDUsIDUuNTk5OSwgOS4yNzAyMywgMTEuNTYwOSIsIFwKLSAgICAgICAgICAiMC41NDQ5NDcsIDAuODIwNjE1LCAyLjM4NDc3LCAzLjc2MjQ5LCA1LjU5OTc1LCA5LjI3MDY3LCAxMS41NjA4IiwgXAotICAgICAgICAgICIwLjU0NDI2LCAwLjgyMTQ4LCAyLjM4NDc4LCAzLjc2Mjc0LCA1LjYwMDc2LCA5LjI3MTAyLCAxMS41NjA1IiwgXAotICAgICAgICAgICIwLjU0NDMzNiwgMC44MjE2NzUsIDIuMzg1MTQsIDMuNzYyNTksIDUuNjAxNCwgOS4yNzA3NiwgMTEuNTYwMyIsIFwKLSAgICAgICAgICAiMC41NDQ5NDQsIDAuODIxNTE4LCAyLjM4NTE2LCAzLjc2NDA3LCA1LjYsIDkuMjcxMDksIDExLjU2IiwgXAotICAgICAgICAgICIwLjU0NDk1LCAwLjgyMTI5NywgMi4zODUxNiwgMy43NjI3MSwgNS42MDQ0MSwgOS4yNzA0OCwgMTEuNTYwMSIsIFwKLSAgICAgICAgICAiMC41NDU5NjEsIDAuODIxNjMxLCAyLjM4MzkzLCAzLjc2MjI3LCA1LjYwMDMsIDkuMjcxLCAxMS41NjA1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNzYyNCwgMC4yNjUzNTcsIDAuNzY5NDU4LCAxLjIxNTQ5LCAxLjgxMTE4LCAzLjAwMTQzLCAzLjc0NTIiLCBcCi0gICAgICAgICAgIjAuMTg2NjE2LCAwLjI3NTgyNCwgMC43Nzk4NjcsIDEuMjI1NzIsIDEuODIxMiwgMy4wMTI2MiwgMy43NTU5OSIsIFwKLSAgICAgICAgICAiMC4xOTk2NjEsIDAuMjg4OTQzLCAwLjc5MzE1NiwgMS4yMzg3OSwgMS44MzQwOCwgMy4wMjU4MywgMy43NjkyMyIsIFwKLSAgICAgICAgICAiMC4yMTI2OTksIDAuMzAyMDEzLCAwLjgwNjI0MiwgMS4yNTIxNSwgMS44NDc1NywgMy4wMzg5LCAzLjc4MjQ1IiwgXAotICAgICAgICAgICIwLjIyNTc1NywgMC4zMTUwODYsIDAuODE5MzM5LCAxLjI2NTQsIDEuODYwNzIsIDMuMDUxMzEsIDMuNzk1MzIiLCBcCi0gICAgICAgICAgIjAuMjQ2NzA4LCAwLjMzNTk5NCwgMC44NDAzODUsIDEuMjg1ODEsIDEuODgyLCAzLjA3MjMxLCAzLjgxNjMzIiwgXAotICAgICAgICAgICIwLjI2NTE4NywgMC4zNTQzODcsIDAuODU4NzM3LCAxLjMwNDE1LCAxLjg5OTY0LCAzLjA5MDk0LCAzLjgzNDg1Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMzMzQ4NywgMC41MDY5OTgsIDEuNDkzNDIsIDIuMzY2MDgsIDMuNTI5NDQsIDUuODU3NTksIDcuMzEyNjciLCBcCi0gICAgICAgICAgIjAuMzMzMjcxLCAwLjUwNzEwMywgMS40OTM4MywgMi4zNjY0NSwgMy41Mjk1NCwgNS44NTc0MSwgNy4zMTMxNSIsIFwKLSAgICAgICAgICAiMC4zMzMyODEsIDAuNTA2ODcsIDEuNDk0NDEsIDIuMzY2NTYsIDMuNTMxMDEsIDUuODYyODIsIDcuMzEzMjIiLCBcCi0gICAgICAgICAgIjAuMzMyODM4LCAwLjUwNjk5NiwgMS40OTM1OSwgMi4zNjU5MSwgMy41Mjk0OSwgNS44NTY3OCwgNy4zMTM0IiwgXAotICAgICAgICAgICIwLjMzMzc1MSwgMC41MDY3MzQsIDEuNDkzNTQsIDIuMzY2MTYsIDMuNTMwNSwgNS44NTkwNywgNy4zMTI4IiwgXAotICAgICAgICAgICIwLjMzNzcxMiwgMC41MDc1NTUsIDEuNDkzMzgsIDIuMzY2MTUsIDMuNTMwNjEsIDUuODU4NzYsIDcuMzEyMDYiLCBcCi0gICAgICAgICAgIjAuMzQzNDQyLCAwLjUxMDQ0OCwgMS40OTQyMSwgMi4zNjcxNiwgMy41Mjk5MywgNS44NjEyNSwgNy4zMTMxMiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTU2MTIsIDAuMTQ1MDQ0LCAwLjQyNDk2LCAwLjY3MjAxMiwgMS4wMDEyOCwgMS42NTk4NywgMi4wNzE5MSIsIFwKLSAgICAgICAgICAiMC4xMDcxMzUsIDAuMTU2NTczLCAwLjQzNjU5NiwgMC42ODM2MTIsIDEuMDEyNjksIDEuNjcxMDUsIDIuMDgyNjMiLCBcCi0gICAgICAgICAgIjAuMTIyMTU2LCAwLjE3MTUyOSwgMC40NTE2NjUsIDAuNjk1NjkxLCAxLjAyNTEyLCAxLjY4Mzg4LCAyLjA5NjA2IiwgXAotICAgICAgICAgICIwLjEzNzQyNSwgMC4xODY0MDcsIDAuNDY0MzkxLCAwLjcxMTYwNywgMS4wNDA5NiwgMS42OTk2OSwgMi4xMTExNCIsIFwKLSAgICAgICAgICAiMC4xNTIzMTgsIDAuMjAxNzg2LCAwLjQ4MDkwNiwgMC43Mjc5ODIsIDEuMDU0NjIsIDEuNzEzMjQsIDIuMTI0ODMiLCBcCi0gICAgICAgICAgIjAuMTc2MzExLCAwLjIyNTcyNywgMC41MDQ0NywgMC43NTEzNjIsIDEuMDc3MzEsIDEuNzM1ODQsIDIuMTQ3NjkiLCBcCi0gICAgICAgICAgIjAuMTk3ODU5LCAwLjI0Njc1MiwgMC41MjUyNTksIDAuNzcyMTcsIDEuMDk2NjgsIDEuNzU1NDIsIDIuMTY3MTMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTkwNjEyLCAwLjI4ODA1NCwgMC44NDE1OTcsIDEuMzMwNjMsIDEuOTgyNzEsIDMuMjg4OTksIDQuMTA0ODIiLCBcCi0gICAgICAgICAgIjAuMTkwNjAzLCAwLjI4ODA0MSwgMC44NDE3LCAxLjMzMDY2LCAxLjk4MjY3LCAzLjI5NDM4LCA0LjEwNDkzIiwgXAotICAgICAgICAgICIwLjE5MDY1LCAwLjI4ODA1OCwgMC44NDE3ODgsIDEuMzMwNDYsIDEuOTgyNzEsIDMuMjg3NjUsIDQuMTA3MzMiLCBcCi0gICAgICAgICAgIjAuMTkyMjM1LCAwLjI4ODEzMywgMC44NDE3MjEsIDEuMzMwNTcsIDEuOTgyOTYsIDMuMjkxMDksIDQuMTAyOTIiLCBcCi0gICAgICAgICAgIjAuMTk1NzE2LCAwLjI4OTM3OCwgMC44NDE2NTIsIDEuMzMwNjEsIDEuOTgzLCAzLjI4NzA5LCA0LjEwNzkxIiwgXAotICAgICAgICAgICIwLjIwMzYxNiwgMC4yOTQxMiwgMC44NDE1OTcsIDEuMzMwNjgsIDEuOTgyODYsIDMuMjg4NDQsIDQuMTA4MSIsIFwKLSAgICAgICAgICAiMC4yMTE5MTIsIDAuMzAwMDcyLCAwLjg0MTYwMiwgMS4zMzA2MSwgMS45ODMwNCwgMy4yOTEwOCwgNC4xMDU4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjU0LCAwLjAwMjU0LCAwLjAwMjUzOSwgMC4wMDI1MzgsIDAuMDAyNTM3LCAwLjAwMjUzNSwgMC4wMDI1MzUiLCBcCi0gICAgICAgICAgIjAuMDAyNTMsIDAuMDAyNTMsIDAuMDAyNTMsIDAuMDAyNTI5LCAwLjAwMjUyOCwgMC4wMDI1MjgsIDAuMDAyNTI1IiwgXAotICAgICAgICAgICIwLjAwMjUyNywgMC4wMDI1MjgsIDAuMDAyNTI4LCAwLjAwMjUyNywgMC4wMDI1MjcsIDAuMDAyNTI0LCAwLjAwMjUyMyIsIFwKLSAgICAgICAgICAiMC4wMDI1MjUsIDAuMDAyNTI2LCAwLjAwMjUyNywgMC4wMDI1MjYsIDAuMDAyNTI1LCAwLjAwMjUyMiwgMC4wMDI1MjIiLCBcCi0gICAgICAgICAgIjAuMDAyNTI0LCAwLjAwMjUyNSwgMC4wMDI1MjYsIDAuMDAyNTI2LCAwLjAwMjUyNSwgMC4wMDI1MjMsIDAuMDAyNTIxIiwgXAotICAgICAgICAgICIwLjAwMjUyMiwgMC4wMDI1MjQsIDAuMDAyNTI2LCAwLjAwMjUyNiwgMC4wMDI1MjUsIDAuMDAyNTIzLCAwLjAwMjUyMiIsIFwKLSAgICAgICAgICAiMC4wMDI1MjEsIDAuMDAyNTIzLCAwLjAwMjUyNSwgMC4wMDI1MjUsIDAuMDAyNTI0LCAwLjAwMjUyMywgMC4wMDI1MjIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDA3NywgMC4wMDA3NjksIDAuMDAwNzY4LCAwLjAwMDc2OCwgMC4wMDA3NjcsIDAuMDAwNzYyLCAwLjAwMDc1OCIsIFwKLSAgICAgICAgICAiMC4wMDA3NTQsIDAuMDAwNzU1LCAwLjAwMDc1NCwgMC4wMDA3NTIsIDAuMDAwNzUyLCAwLjAwMDc0NywgMC4wMDA3NDUiLCBcCi0gICAgICAgICAgIjAuMDAwNzQ3LCAwLjAwMDc0OCwgMC4wMDA3NDksIDAuMDAwNzQ4LCAwLjAwMDc0NywgMC4wMDA3NDMsIDAuMDAwNzQiLCBcCi0gICAgICAgICAgIjAuMDAwNzQyLCAwLjAwMDc0NCwgMC4wMDA3NDYsIDAuMDAwNzQ2LCAwLjAwMDc0NSwgMC4wMDA3NDIsIDAuMDAwNzM5IiwgXAotICAgICAgICAgICIwLjAwMDczOCwgMC4wMDA3NDEsIDAuMDAwNzQ1LCAwLjAwMDc0NSwgMC4wMDA3NDQsIDAuMDAwNzQxLCAwLjAwMDczOSIsIFwKLSAgICAgICAgICAiMC4wMDA3MzMsIDAuMDAwNzM3LCAwLjAwMDc0MywgMC4wMDA3NDMsIDAuMDAwNzQzLCAwLjAwMDc0LCAwLjAwMDczNyIsIFwKLSAgICAgICAgICAiMC4wMDA3MjksIDAuMDAwNzM0LCAwLjAwMDc0MSwgMC4wMDA3NDIsIDAuMDAwNzQyLCAwLjAwMDczOSwgMC4wMDA3MzciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyMjU5LCAwLjAwMjI1OSwgMC4wMDIyNTgsIDAuMDAyMjU4LCAwLjAwMjI1OCwgMC4wMDIyNTcsIDAuMDAyMjU2IiwgXAotICAgICAgICAgICIwLjAwMjI1NywgMC4wMDIyNTgsIDAuMDAyMjU5LCAwLjAwMjI1OSwgMC4wMDIyNiwgMC4wMDIyNTksIDAuMDAyMjU2IiwgXAotICAgICAgICAgICIwLjAwMjI1NSwgMC4wMDIyNTYsIDAuMDAyMjU4LCAwLjAwMjI1OCwgMC4wMDIyNTgsIDAuMDAyMjU3LCAwLjAwMjI1NiIsIFwKLSAgICAgICAgICAiMC4wMDIyNTIsIDAuMDAyMjU0LCAwLjAwMjI1OCwgMC4wMDIyNTcsIDAuMDAyMjU4LCAwLjAwMjI1OCwgMC4wMDIyNTciLCBcCi0gICAgICAgICAgIjAuMDAyMjQ5LCAwLjAwMjI1MiwgMC4wMDIyNTcsIDAuMDAyMjU3LCAwLjAwMjI1NywgMC4wMDIyNTcsIDAuMDAyMjU2IiwgXAotICAgICAgICAgICIwLjAwMjI0NiwgMC4wMDIyNSwgMC4wMDIyNTYsIDAuMDAyMjU2LCAwLjAwMjI1NywgMC4wMDIyNTYsIDAuMDAyMjU2IiwgXAotICAgICAgICAgICIwLjAwMjI0MywgMC4wMDIyNDgsIDAuMDAyMjU1LCAwLjAwMjI1NiwgMC4wMDIyNTcsIDAuMDAyMjU1LCAwLjAwMjI1NSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDc3LCAwLjAwMDc3LCAwLjAwMDc2OSwgMC4wMDA3NjcsIDAuMDAwNzY1LCAwLjAwMDc2MiwgMC4wMDA3NiIsIFwKLSAgICAgICAgICAiMC4wMDA3NTUsIDAuMDAwNzU1LCAwLjAwMDc1NSwgMC4wMDA3NTQsIDAuMDAwNzUyLCAwLjAwMDc0OCwgMC4wMDA3NDYiLCBcCi0gICAgICAgICAgIjAuMDAwNzQ3LCAwLjAwMDc0OSwgMC4wMDA3NDksIDAuMDAwNzQ4LCAwLjAwMDc0NywgMC4wMDA3NDMsIDAuMDAwNzQxIiwgXAotICAgICAgICAgICIwLjAwMDc0MiwgMC4wMDA3NDQsIDAuMDAwNzQ3LCAwLjAwMDc0NiwgMC4wMDA3NDYsIDAuMDAwNzQyLCAwLjAwMDczOSIsIFwKLSAgICAgICAgICAiMC4wMDA3MzgsIDAuMDAwNzQyLCAwLjAwMDc0NiwgMC4wMDA3NDUsIDAuMDAwNzQ0LCAwLjAwMDc0MSwgMC4wMDA3MzgiLCBcCi0gICAgICAgICAgIjAuMDAwNzMzLCAwLjAwMDczOCwgMC4wMDA3NDMsIDAuMDAwNzQ0LCAwLjAwMDc0MywgMC4wMDA3NCwgMC4wMDA3MzciLCBcCi0gICAgICAgICAgIjAuMDAwNzI5LCAwLjAwMDczNCwgMC4wMDA3NDIsIDAuMDAwNzQzLCAwLjAwMDc0MiwgMC4wMDA3MzksIDAuMDAwNzM3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTIiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTk0MSwgMC4wMDE5NDIsIDAuMDAxOTQyLCAwLjAwMTk0MiwgMC4wMDE5NDIsIDAuMDAxOTQyLCAwLjAwMTk0MiIsIFwKLSAgICAgICAgICAiMC4wMDE5NDcsIDAuMDAxOTQ5LCAwLjAwMTk1MSwgMC4wMDE5NDksIDAuMDAxOTUzLCAwLjAwMTk1MiwgMC4wMDE5NTIiLCBcCi0gICAgICAgICAgIjAuMDAxOTQ0LCAwLjAwMTk0OCwgMC4wMDE5NTEsIDAuMDAxOTUyLCAwLjAwMTk1NCwgMC4wMDE5NTMsIDAuMDAxOTUzIiwgXAotICAgICAgICAgICIwLjAwMTk0MSwgMC4wMDE5NDYsIDAuMDAxOTUxLCAwLjAwMTk1MiwgMC4wMDE5NTQsIDAuMDAxOTU0LCAwLjAwMTk1NSIsIFwKLSAgICAgICAgICAiMC4wMDE5MzgsIDAuMDAxOTQzLCAwLjAwMTk1MSwgMC4wMDE5NTIsIDAuMDAxOTU1LCAwLjAwMTk1NCwgMC4wMDE5NTUiLCBcCi0gICAgICAgICAgIjAuMDAxOTMyLCAwLjAwMTkzOSwgMC4wMDE5NDgsIDAuMDAxOTUyLCAwLjAwMTk1MiwgMC4wMDE5NTQsIDAuMDAxOTU0IiwgXAotICAgICAgICAgICIwLjAwMTkyOCwgMC4wMDE5MzYsIDAuMDAxOTQ3LCAwLjAwMTk1LCAwLjAwMTk1MSwgMC4wMDE5NTMsIDAuMDAxOTU0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwNzcsIDAuMDAwNzcsIDAuMDAwNzY4LCAwLjAwMDc2OCwgMC4wMDA3NjYsIDAuMDAwNzYyLCAwLjAwMDc1OSIsIFwKLSAgICAgICAgICAiMC4wMDA3NTQsIDAuMDAwNzU0LCAwLjAwMDc1NSwgMC4wMDA3NTQsIDAuMDAwNzUsIDAuMDAwNzQ4LCAwLjAwMDc0NiIsIFwKLSAgICAgICAgICAiMC4wMDA3NDUsIDAuMDAwNzQ3LCAwLjAwMDc0OSwgMC4wMDA3NDksIDAuMDAwNzQ3LCAwLjAwMDc0NCwgMC4wMDA3NDIiLCBcCi0gICAgICAgICAgIjAuMDAwNzM5LCAwLjAwMDc0MywgMC4wMDA3NDYsIDAuMDAwNzQ2LCAwLjAwMDc0NSwgMC4wMDA3NDIsIDAuMDAwNzM5IiwgXAotICAgICAgICAgICIwLjAwMDczNSwgMC4wMDA3MzksIDAuMDAwNzQ0LCAwLjAwMDc0NCwgMC4wMDA3NDMsIDAuMDAwNzQsIDAuMDAwNzM4IiwgXAotICAgICAgICAgICIwLjAwMDcyOSwgMC4wMDA3MzUsIDAuMDAwNzQyLCAwLjAwMDc0MywgMC4wMDA3NDIsIDAuMDAwNzQsIDAuMDAwNzM3IiwgXAotICAgICAgICAgICIwLjAwMDcyNiwgMC4wMDA3MzEsIDAuMDAwNzQsIDAuMDAwNzQxLCAwLjAwMDc0MSwgMC4wMDA3MzgsIDAuMDAwNzM2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTg0MSwgMC4wMDE4NDEsIDAuMDAxODQxLCAwLjAwMTg0MSwgMC4wMDE4MzksIDAuMDAxODM4LCAwLjAwMTgzNiIsIFwKLSAgICAgICAgICAiMC4wMDE4MzQsIDAuMDAxODM2LCAwLjAwMTgzOSwgMC4wMDE4MzksIDAuMDAxODM5LCAwLjAwMTgzOSwgMC4wMDE4MzUiLCBcCi0gICAgICAgICAgIjAuMDAxODI3LCAwLjAwMTgzMSwgMC4wMDE4MzcsIDAuMDAxODM4LCAwLjAwMTgzNywgMC4wMDE4MzQsIDAuMDAxODMzIiwgXAotICAgICAgICAgICIwLjAwMTgyMSwgMC4wMDE4MjcsIDAuMDAxODM1LCAwLjAwMTgzNywgMC4wMDE4MzYsIDAuMDAxODM2LCAwLjAwMTgzNCIsIFwKLSAgICAgICAgICAiMC4wMDE4MTcsIDAuMDAxODIzLCAwLjAwMTgzNCwgMC4wMDE4MzUsIDAuMDAxODM2LCAwLjAwMTgzNSwgMC4wMDE4MzQiLCBcCi0gICAgICAgICAgIjAuMDAxODEsIDAuMDAxODE4LCAwLjAwMTgzMSwgMC4wMDE4MzQsIDAuMDAxODM1LCAwLjAwMTgzNSwgMC4wMDE4MzQiLCBcCi0gICAgICAgICAgIjAuMDAxODA2LCAwLjAwMTgxNCwgMC4wMDE4MjgsIDAuMDAxODMyLCAwLjAwMTgzNCwgMC4wMDE4MzMsIDAuMDAxODMzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwMDksIDAuMDAwMDkxLCAwLjAwMDA5MiwgMC4wMDAwOTIsIDAuMDAwMDkzLCAwLjAwMDA5MywgMC4wMDAwOTIiLCBcCi0gICAgICAgICAgIjAuMDAwMDk0LCAwLjAwMDA5OSwgMC4wMDAxMDQsIDAuMDAwMTA1LCAwLjAwMDEwNiwgMC4wMDAxMDYsIDAuMDAwMTA3IiwgXAotICAgICAgICAgICIwLjAwMDA4OSwgMC4wMDAwOTYsIDAuMDAwMTA2LCAwLjAwMDEwOSwgMC4wMDAxMSwgMC4wMDAxMTEsIDAuMDAwMTExIiwgXAotICAgICAgICAgICIwLjAwMDA4MiwgMC4wMDAwOTEsIDAuMDAwMTA1LCAwLjAwMDEwOCwgMC4wMDAxMSwgMC4wMDAxMTEsIDAuMDAwMTEyIiwgXAotICAgICAgICAgICIwLjAwMDA3NSwgMC4wMDAwODcsIDAuMDAwMTA0LCAwLjAwMDEwNywgMC4wMDAxMSwgMC4wMDAxMTIsIDAuMDAwMTEyIiwgXAotICAgICAgICAgICIwLjAwMDA2NiwgMC4wMDAwNzksIDAuMDAwMTAxLCAwLjAwMDEwNiwgMC4wMDAxMDksIDAuMDAwMTExLCAwLjAwMDExMiIsIFwKLSAgICAgICAgICAiMC4wMDAwNiwgMC4wMDAwNzQsIDAuMDAwMDk4LCAwLjAwMDEwNCwgMC4wMDAxMDgsIDAuMDAwMTExLCAwLjAwMDExMiIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IEFPSTMyWDEgKgotICogLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoQU9JMzJYMSkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjExMTc0NDsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQTApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDgyNjA2NTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA4MjMxMDE7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwODI2MDY1OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDMwNiwgMC4wMDAzMDYsIDAuMDAwMzA2LCAwLjAwMDMwNiwgMC4wMDAzMDYsIDAuMDAwMzA2LCAwLjAwMDMwNiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDMwNiwgMC4wMDAzMDcsIDAuMDAwMzA3LCAwLjAwMDMwNywgMC4wMDAzMDcsIDAuMDAwMzA3LCAwLjAwMDMwNyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQTEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDg0MzYzMzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA4Mzk4Njg7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwODQzNjMzOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDMwNiwgMC4wMDAzMDYsIDAuMDAwMzA2LCAwLjAwMDMwNiwgMC4wMDAzMDYsIDAuMDAwMzA2LCAwLjAwMDMwNiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDMwNywgMC4wMDAzMDcsIDAuMDAwMzA3LCAwLjAwMDMwOCwgMC4wMDAzMDgsIDAuMDAwMzA4LCAwLjAwMDMwOCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQTIpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDg1Njk1OTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA4NTAyMDc7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwODU2OTU5OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDE0NCwgMC4wMDAxNDQsIDAuMDAwMTQ0LCAwLjAwMDE0NCwgMC4wMDAxNDQsIDAuMDAwMTQ0LCAwLjAwMDE0NCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDM0NywgMC4wMDAzNDgsIDAuMDAwMzQ4LCAwLjAwMDM0OCwgMC4wMDAzNDgsIDAuMDAwMzQ4LCAwLjAwMDM0OCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQjApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDgzMjQyNzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA4MzI0Mjc7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwODMwMDY5OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDMwNiwgMC4wMDAzMDYsIDAuMDAwMzA2LCAwLjAwMDMwNiwgMC4wMDAzMDYsIDAuMDAwMzA2LCAwLjAwMDMwNiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDMxNSwgMC4wMDAzMDksIDAuMDAwMzA4LCAwLjAwMDMwOCwgMC4wMDAzMDcsIDAuMDAwMzA3LCAwLjAwMDMwNyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQjEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDgyMDE2NzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA4MTk0MjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA4MjAxNjc7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMTM4LCAwLjAwMDEzOCwgMC4wMDAxMzgsIDAuMDAwMTM4LCAwLjAwMDEzOCwgMC4wMDAxMzgsIDAuMDAwMTM4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzQ3LCAwLjAwMDM0OCwgMC4wMDAzNDgsIDAuMDAwMzQ4LCAwLjAwMDM0NywgMC4wMDAzNDgsIDAuMDAwMzQ4Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMDQ2MDYyNDsKLSAgICBmdW5jdGlvbiA6ICIoISgoQjAgQjEpKygoQTAgQTEpIEEyKSkpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjA4Njk3LCAwLjI5ODE0MywgMC44MDI4ODYsIDEuMjQ3NjMsIDEuODQwODEsIDMuMDI2MTYsIDMuNzY2MDYiLCBcCi0gICAgICAgICAgIjAuMjIwMzY0LCAwLjMwOTc3NSwgMC44MTQ0NDksIDEuMjU5NTMsIDEuODUyMDUsIDMuMDM3MzksIDMuNzc3ODUiLCBcCi0gICAgICAgICAgIjAuMjM1MDQzLCAwLjMyNDQ2MSwgMC44MjkyNzIsIDEuMjczOTIsIDEuODY3MzYsIDMuMDUyMjYsIDMuNzkyNjEiLCBcCi0gICAgICAgICAgIjAuMjQ5MDMxLCAwLjMzODQ3NywgMC44NDMxNjMsIDEuMjg4MjYsIDEuODgxMzEsIDMuMDY2MiwgMy44MDY2MSIsIFwKLSAgICAgICAgICAiMC4yNjIzMjIsIDAuMzUxNzYyLCAwLjg1NjQ4MiwgMS4zMDEyMSwgMS44OTQ1OCwgMy4wNzk0MSwgMy44MjAwMyIsIFwKLSAgICAgICAgICAiMC4yODI5ODEsIDAuMzcyNDIyLCAwLjg3NzI1NiwgMS4zMjE4NCwgMS45MTUyLCAzLjEwMDg5LCAzLjg0MDU3IiwgXAotICAgICAgICAgICIwLjMwMDY1MiwgMC4zOTAxMjgsIDAuODk1MDMyLCAxLjMzOTc0LCAxLjkzMjY2LCAzLjExNzg1LCAzLjg1ODQ2Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjM0OTU0NCwgMC41MjM2MTUsIDEuNTEwNDgsIDIuMzgwMywgMy41Mzg4NywgNS44NTc5NSwgNy4zMDg1MSIsIFwKLSAgICAgICAgICAiMC4zNDk1OTEsIDAuNTIzODgyLCAxLjUwOTEzLCAyLjM3OTc4LCAzLjU0MDEsIDUuODU5NTQsIDcuMzA4NDUiLCBcCi0gICAgICAgICAgIjAuMzQ5NjA4LCAwLjUyMzc5OCwgMS41MDk4NSwgMi4zODAyLCAzLjUzODkxLCA1Ljg1NzU4LCA3LjMwNzEyIiwgXAotICAgICAgICAgICIwLjM0OTY2OSwgMC41MjM0NzQsIDEuNTA5MjMsIDIuMzc5MzYsIDMuNTM4NzcsIDUuODU4MDYsIDcuMzA2ODMiLCBcCi0gICAgICAgICAgIjAuMzQ5NTM3LCAwLjUyNDA0OCwgMS41MDkyMSwgMi4zNzg3NiwgMy41Mzg3NiwgNS44NTkxLCA3LjMwODg4IiwgXAotICAgICAgICAgICIwLjM0OTc0MywgMC41MjM4MjcsIDEuNTEwNDIsIDIuMzc4NzYsIDMuNTM4ODUsIDUuODU3NTYsIDcuMzA0OTkiLCBcCi0gICAgICAgICAgIjAuMzUxNjIsIDAuNTIzODQ0LCAxLjUwOTg0LCAyLjM3OTIsIDMuNTQwMjQsIDUuODU5MzksIDcuMzA4OTEiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzQ4MDA0LCAwLjQ5NTkzLCAxLjMyOTUsIDIuMDYzNDksIDMuMDQxNzQsIDQuOTk3NzYsIDYuMjIwMzciLCBcCi0gICAgICAgICAgIjAuMzU5Mjc4LCAwLjUwNzI0MSwgMS4zNDE0OCwgMi4wNzY3LCAzLjA1NDE1LCA1LjAxMDE1LCA2LjIzMjA2IiwgXAotICAgICAgICAgICIwLjM3MjIwOSwgMC41MjAyMTEsIDEuMzU0MTMsIDIuMDg4OTgsIDMuMDY3NjgsIDUuMDIzMDYsIDYuMjQ1MjciLCBcCi0gICAgICAgICAgIjAuMzg0NDIsIDAuNTMyNDg3LCAxLjM2NjQ5LCAyLjEwMDkxLCAzLjA4MDQ2LCA1LjAzNTQ2LCA2LjI1NzcxIiwgXAotICAgICAgICAgICIwLjM5NjI4NiwgMC41NDQ0MTcsIDEuMzc4ODYsIDIuMTEzOTMsIDMuMDkxODUsIDUuMDQ3NTUsIDYuMjY5NTUiLCBcCi0gICAgICAgICAgIjAuNDE1MDI0LCAwLjU2MzI0OSwgMS4zOTc4MywgMi4xMzI3LCAzLjExMDczLCA1LjA2NjMyLCA2LjI4ODUyIiwgXAotICAgICAgICAgICIwLjQzMTM4NCwgMC41Nzk2NDEsIDEuNDE0MTIsIDIuMTQ4OTcsIDMuMTI3MjMsIDUuMDgzMDYsIDYuMzA1MDkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuNTgxOTU5LCAwLjg1ODEzNSwgMi40MjEyMywgMy43OTcxMiwgNS42MzA1OCwgOS4yOTk2NSwgMTEuNTkzIiwgXAotICAgICAgICAgICIwLjU4MTk2MiwgMC44NTgwNSwgMi40MjE3NywgMy43OTk4NCwgNS42MzcyMSwgOS4zMDkxNywgMTEuNTk5OSIsIFwKLSAgICAgICAgICAiMC41ODE5NDQsIDAuODU4Mjk1LCAyLjQyMTUzLCAzLjc5OTk2LCA1LjYzNTQyLCA5LjMwNzg2LCAxMS41OTk4IiwgXAotICAgICAgICAgICIwLjU4MTkzNywgMC44NTgxMzYsIDIuNDIxNDYsIDMuNzk5MTEsIDUuNjM2NSwgOS4zMDgxMiwgMTEuNTk5NiIsIFwKLSAgICAgICAgICAiMC41ODE5MTgsIDAuODU3OTgzLCAyLjQyMTIyLCAzLjgwMDEyLCA1LjYzNiwgOS4zMDc4NywgMTEuNTk5NiIsIFwKLSAgICAgICAgICAiMC41ODE4ODQsIDAuODU4MDE3LCAyLjQyMTkxLCAzLjc5OTk4LCA1LjYzNjg2LCA5LjMwNzgxLCAxMS41OTk1IiwgXAotICAgICAgICAgICIwLjU4MjE0NywgMC44NTgyOTYsIDIuNDIyMSwgMy43OTg3MSwgNS42MzYyMSwgOS4zMDcxNywgMTEuNiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjA0NzI1LCAwLjI5NDMxLCAwLjgwMDc2MywgMS4yNDc0NCwgMS44NDM0MywgMy4wMzI3MSwgMy43NzYyNyIsIFwKLSAgICAgICAgICAiMC4yMTY2MiwgMC4zMDYxNDcsIDAuODEyNzc2LCAxLjI1OTI3LCAxLjg1NDI5LCAzLjA0NDU5LCAzLjc4ODE1IiwgXAotICAgICAgICAgICIwLjIzMTM1OSwgMC4zMjA5NjYsIDAuODI3MzA0LCAxLjI3MzgzLCAxLjg2OTc1LCAzLjA1OTUsIDMuODAzMDUiLCBcCi0gICAgICAgICAgIjAuMjQ1MTk3LCAwLjMzNDg0MywgMC44NDE2ODcsIDEuMjg4MTYsIDEuODgzNDQsIDMuMDczNDMsIDMuODE2OTkiLCBcCi0gICAgICAgICAgIjAuMjU4NDgxLCAwLjM0ODEyMiwgMC44NTQ2MDUsIDEuMzAxMzksIDEuODk3MDcsIDMuMDg2NzMsIDMuODMwMjgiLCBcCi0gICAgICAgICAgIjAuMjc5MzEyLCAwLjM2ODk2NCwgMC44NzU0MTgsIDEuMzIyMjUsIDEuOTE3ODIsIDMuMTA3OTIsIDMuODUxMjMiLCBcCi0gICAgICAgICAgIjAuMjk2OTY0LCAwLjM4NjY1NiwgMC44OTMzNjcsIDEuMzQwMjgsIDEuOTM1NjEsIDMuMTI1NzYsIDMuODY5MTciKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzQ1NDcyLCAwLjUyMDY3LCAxLjUxMDE2LCAyLjM4MzIzLCAzLjU0NzY1LCA1Ljg3Nzg3LCA3LjMzMjkiLCBcCi0gICAgICAgICAgIjAuMzQ1NDYsIDAuNTIwNzgsIDEuNTEwMzEsIDIuMzgzNTIsIDMuNTQ4OTcsIDUuODc4ODksIDcuMzMzMDIiLCBcCi0gICAgICAgICAgIjAuMzQ1NTUsIDAuNTIwMTQ0LCAxLjUxMDg0LCAyLjM4MzA1LCAzLjU0Nzk1LCA1Ljg3NzM1LCA3LjMzMTE5IiwgXAotICAgICAgICAgICIwLjM0NTc1NiwgMC41MjAzMTYsIDEuNTEwNTMsIDIuMzgzMTEsIDMuNTQ3NDQsIDUuODc3ODIsIDcuMzMyODkiLCBcCi0gICAgICAgICAgIjAuMzQ1NzA5LCAwLjUyMDE1NiwgMS41MTAwNSwgMi4zODMyNCwgMy41NDcyLCA1Ljg3NzM4LCA3LjMzMjE5IiwgXAotICAgICAgICAgICIwLjM0NTg1OCwgMC41MjAyMDMsIDEuNTEwODIsIDIuMzgzMjEsIDMuNTQ3MiwgNS44Nzg5MSwgNy4zMzMxNyIsIFwKLSAgICAgICAgICAiMC4zNDc3OTUsIDAuNTIwNjQxLCAxLjUxMTAxLCAyLjM4MzAyLCAzLjU0NzE2LCA1Ljg3OTg1LCA3LjMzMjU2Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjM0MzYyNCwgMC40OTE1MzQsIDEuMzI1MzMsIDIuMDU5MjYsIDMuMDM3NDcsIDQuOTkzMjQsIDYuMjE2MzMiLCBcCi0gICAgICAgICAgIjAuMzU0MDIyLCAwLjUwMTk5MywgMS4zMzYzMywgMi4wNzA5NCwgMy4wNDk1OCwgNS4wMDQ4LCA2LjIyNjc0IiwgXAotICAgICAgICAgICIwLjM2NjkwNSwgMC41MTQ5OTYsIDEuMzQ5MjcsIDIuMDgzNjUsIDMuMDYyNDksIDUuMDE3NzMsIDYuMjM5OTkiLCBcCi0gICAgICAgICAgIjAuMzc5NjU3LCAwLjUyNzYyNiwgMS4zNjIyNywgMi4wOTYxNywgMy4wNzUzOCwgNS4wMzA2OCwgNi4yNTI2NyIsIFwKLSAgICAgICAgICAiMC4zOTI0MDYsIDAuNTQwNTQ2LCAxLjM3NDk3LCAyLjExMDI2LCAzLjA4NzgsIDUuMDQzNjcsIDYuMjY1NTEiLCBcCi0gICAgICAgICAgIjAuNDEyNjQ1LCAwLjU2MDgzMiwgMS4zOTUwMywgMi4xMzA3MywgMy4xMDgzNiwgNS4wNjQyMywgNi4yODYxNCIsIFwKLSAgICAgICAgICAiMC40MzAzOTksIDAuNTc4Njk4LCAxLjQxMzIzLCAyLjE0ODA3LCAzLjEyNjM0LCA1LjA4MjIxLCA2LjMwNDI0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjU4MjA1OSwgMC44NTgxNCwgMi40MjExOSwgMy43OTg3NSwgNS42MzcxNSwgOS4zMDEzNCwgMTEuNTk5NCIsIFwKLSAgICAgICAgICAiMC41ODE5MDksIDAuODU4MTU3LCAyLjQyMTYsIDMuNzk4ODYsIDUuNjM2MjIsIDkuMzA4NzIsIDExLjYwMDEiLCBcCi0gICAgICAgICAgIjAuNTgxOTQ2LCAwLjg1ODI5MSwgMi40MjA5OCwgMy43OTk2NiwgNS42MzY0OCwgOS4zMDgzNiwgMTEuNjAwMSIsIFwKLSAgICAgICAgICAiMC41ODE5MDIsIDAuODU4Mjk4LCAyLjQyMTc0LCAzLjgwMDM5LCA1LjYzNjUyLCA5LjMwOTI2LCAxMS41OTk4IiwgXAotICAgICAgICAgICIwLjU4MTg3OCwgMC44NTc5OCwgMi40MjE1NiwgMy43OTk2OCwgNS42MzY4NiwgOS4zMDgxMSwgMTEuNiIsIFwKLSAgICAgICAgICAiMC41ODE5MDMsIDAuODU4MDg4LCAyLjQyMTcyLCAzLjc5OTk5LCA1LjYzNjk4LCA5LjMwNzg4LCAxMS41OTk0IiwgXAotICAgICAgICAgICIwLjU4MjE4MiwgMC44NTgyMTUsIDIuNDIxNzQsIDMuNzk4NjcsIDUuNjM2ODEsIDkuMzA3MjQsIDExLjU5OTUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTIiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE5ODcxMywgMC4yODgxNDgsIDAuNzk0MzMyLCAxLjI0MDgsIDEuODM2MzksIDMuMDI2MDcsIDMuNzY5NTUiLCBcCi0gICAgICAgICAgIjAuMjEwNzk5LCAwLjMwMDI4NywgMC44MDY2MDcsIDEuMjUzMTcsIDEuODQ3OTUsIDMuMDM4MTYsIDMuNzgxNjYiLCBcCi0gICAgICAgICAgIjAuMjI1NTQ2LCAwLjMxNTA0NywgMC44MjExNDMsIDEuMjY4MDcsIDEuODYzMzcsIDMuMDUzMjEsIDMuNzk2NTYiLCBcCi0gICAgICAgICAgIjAuMjM5NDMyLCAwLjMyODk3OCwgMC44MzUyODYsIDEuMjgxOTgsIDEuODc3ODUsIDMuMDY3LCAzLjgxMDUxIiwgXAotICAgICAgICAgICIwLjI1MjY5OCwgMC4zNDIyNzUsIDAuODQ4NjgzLCAxLjI5NTI4LCAxLjg5MDA4LCAzLjA4MTA4LCAzLjgyMzk3IiwgXAotICAgICAgICAgICIwLjI3MzI2OCwgMC4zNjI4NTgsIDAuODY5MTc2LCAxLjMxNjA4LCAxLjkxMTIxLCAzLjEwMTc0LCAzLjg0NDU3IiwgXAotICAgICAgICAgICIwLjI5MDg2NSwgMC4zODA0NzYsIDAuODg3MTM4LCAxLjMzMzM4LCAxLjkyODY1LCAzLjExODcxLCAzLjg2MjQiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzM5MDksIDAuNTEzNzk0LCAxLjUwNDA3LCAyLjM3NjE5LCAzLjUzOTg5LCA1Ljg2ODExLCA3LjMyNDUxIiwgXAotICAgICAgICAgICIwLjMzOTEzOCwgMC41MTM4NDksIDEuNTAzNTEsIDIuMzc2NjgsIDMuNTQxNjcsIDUuODcwNzIsIDcuMzI1MjYiLCBcCi0gICAgICAgICAgIjAuMzM5MzYxLCAwLjUxMzc5NSwgMS41MDM5NCwgMi4zNzU4OSwgMy41NDA2MiwgNS44Njk1NSwgNy4zMjQ1NiIsIFwKLSAgICAgICAgICAiMC4zMzk0MDEsIDAuNTEzNzg0LCAxLjUwNDEsIDIuMzc1ODcsIDMuNTQwNDYsIDUuODcwMywgNy4zMjUxNSIsIFwKLSAgICAgICAgICAiMC4zMzk0NDYsIDAuNTE0MTI0LCAxLjUwMzg5LCAyLjM3NjUzLCAzLjU0MDI3LCA1Ljg3NDQ5LCA3LjMyNTA4IiwgXAotICAgICAgICAgICIwLjMzOTk0NiwgMC41MTM4MiwgMS41MDMxNSwgMi4zNzYyMSwgMy41NDAwOSwgNS44NjgzMiwgNy4zMjU0IiwgXAotICAgICAgICAgICIwLjM0MTY3NSwgMC41MTQwOTUsIDEuNTAzMDYsIDIuMzc2MTMsIDMuNTQxODksIDUuODcwMzEsIDcuMzI1NTQiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzMzNDQ5LCAwLjQ4MTQ0OCwgMS4zMTUzNSwgMi4wNTAxLCAzLjAyODQ5LCA0Ljk4NDAxLCA2LjIwNjIzIiwgXAotICAgICAgICAgICIwLjM0Mjc1OCwgMC40OTA4ODYsIDEuMzI0NywgMi4wNTk3OCwgMy4wMzc4NiwgNC45OTM1LCA2LjIxNTcxIiwgXAotICAgICAgICAgICIwLjM1NDc1MSwgMC41MDI4MDMsIDEuMzM2NzQsIDIuMDcxNTYsIDMuMDUwNTgsIDUuMDA1NzIsIDYuMjI3OTUiLCBcCi0gICAgICAgICAgIjAuMzY2OTUzLCAwLjUxNTA3NywgMS4zNDkxMiwgMi4wODQwMywgMy4wNjI0OSwgNS4wMTgxNCwgNi4yNDAyMiIsIFwKLSAgICAgICAgICAiMC4zNzkxNDUsIDAuNTI3MzMxLCAxLjM2MTg5LCAyLjA5NjYyLCAzLjA3NDY1LCA1LjAzMDUsIDYuMjUyNTQiLCBcCi0gICAgICAgICAgIjAuMzk3ODg3LCAwLjU0Njc5MiwgMS4zODE3OCwgMi4xMTY3NSwgMy4wOTQ0NCwgNS4wNTAyMSwgNi4yNzIyNiIsIFwKLSAgICAgICAgICAiMC40MTU3NDEsIDAuNTYzOTEzLCAxLjM5ODEzLCAyLjEzMzM3LCAzLjExMjExLCA1LjA2NzM4LCA2LjI4OTYyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjU4MTk2NSwgMC44NTgxOTIsIDIuNDIxNjMsIDMuNzk5NTUsIDUuNjM3MDQsIDkuMzA4MSwgMTEuNTkxOCIsIFwKLSAgICAgICAgICAiMC41ODE5NTQsIDAuODU4MTQ1LCAyLjQyMTY2LCAzLjc5OTY5LCA1LjYzNzA4LCA5LjMwNzk1LCAxMS41OTkyIiwgXAotICAgICAgICAgICIwLjU4MjAyNiwgMC44NTgxODksIDIuNDIxNTUsIDMuODAwNDQsIDUuNjM3NDEsIDkuMzA3MTEsIDExLjU5OTEiLCBcCi0gICAgICAgICAgIjAuNTgxOTQ5LCAwLjg1ODE1LCAyLjQyMTkyLCAzLjc5OTkzLCA1LjYzNjg5LCA5LjMwODcxLCAxMS41OTg5IiwgXAotICAgICAgICAgICIwLjU4MjAxNSwgMC44NTgyMzYsIDIuNDIxMjYsIDMuNzk4NjQsIDUuNjM2ODksIDkuMzA4NDEsIDExLjU5OTQiLCBcCi0gICAgICAgICAgIjAuNTgxOTA1LCAwLjg1ODIxNiwgMi40MjEyMywgMy43OTg4OSwgNS42MzY4NCwgOS4zMDkxNSwgMTEuNTk5MiIsIFwKLSAgICAgICAgICAiMC41ODI5MiwgMC44NTgyNDEsIDIuNDIxMjIsIDMuNzk4NDcsIDUuNjM3MiwgOS4zMDgxLCAxMS41OTk2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xODU0MTQsIDAuMjc0ODA5LCAwLjc3OTQ4NCwgMS4yMjQyLCAxLjgxODg5LCAzLjAwOTU0LCAzLjc1MjQ1IiwgXAotICAgICAgICAgICIwLjE5NTcxOCwgMC4yODUxMjIsIDAuNzg5OTUsIDEuMjM0NTUsIDEuODI5NDUsIDMuMDIwMDgsIDMuNzYzMTciLCBcCi0gICAgICAgICAgIjAuMjA5MjY5LCAwLjI5ODcyOSwgMC44MDM0NzUsIDEuMjQ4MTcsIDEuODQzMjksIDMuMDMzMTgsIDMuNzc2NzQiLCBcCi0gICAgICAgICAgIjAuMjIxNzk5LCAwLjMxMTMyNywgMC44MTYyNCwgMS4yNjA4NSwgMS44NTU3LCAzLjA0NTczLCAzLjc4OTIiLCBcCi0gICAgICAgICAgIjAuMjM0OTk4LCAwLjMyNDQ0NywgMC44MjkzNjIsIDEuMjc0MDksIDEuODY5MDgsIDMuMDU4OTcsIDMuODAyNDUiLCBcCi0gICAgICAgICAgIjAuMjU2MDI2LCAwLjM0NTQ4OSwgMC44NTA0LCAxLjI5NTA3LCAxLjg5MDA2LCAzLjA3OTc5LCAzLjgyMzM3IiwgXAotICAgICAgICAgICIwLjI3NDUwMiwgMC4zNjM5MTUsIDAuODY4Njk0LCAxLjMxMzUsIDEuOTA3ODksIDMuMDk4MTgsIDMuODQxOTMiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzQ5MzcxLCAwLjUyMzYwOSwgMS41MTAzMiwgMi4zODM3NCwgMy41NDczOCwgNS44NzU5NiwgNy4zMzExOSIsIFwKLSAgICAgICAgICAiMC4zNDk1MjksIDAuNTIzNTU0LCAxLjUxMDEyLCAyLjM4NDIzLCAzLjU0NzM5LCA1Ljg3NzA3LCA3LjMzMzUzIiwgXAotICAgICAgICAgICIwLjM0OTM5OSwgMC41MjQwNDUsIDEuNTA5NzIsIDIuMzgzMjEsIDMuNTQ4NDYsIDUuODc5MTYsIDcuMzMyNTEiLCBcCi0gICAgICAgICAgIjAuMzQ4OTA5LCAwLjUyMzg3MiwgMS41MTA5NiwgMi4zODMzMiwgMy41NDgyNywgNS44NzY1NywgNy4zMzExOSIsIFwKLSAgICAgICAgICAiMC4zNDk0MDIsIDAuNTIzNzgzLCAxLjUxMDEyLCAyLjM4NDUzLCAzLjU0NzUyLCA1Ljg4MDIxLCA3LjMzMzM3IiwgXAotICAgICAgICAgICIwLjM1MjgsIDAuNTIzNTA5LCAxLjUxMDEsIDIuMzgzNywgMy41NDg0LCA1Ljg3Nzk2LCA3LjMzMjIzIiwgXAotICAgICAgICAgICIwLjM1ODAxMSwgMC41MjU2OTgsIDEuNTEwMzEsIDIuMzgzNTUsIDMuNTQ4OTMsIDUuODc5MDQsIDcuMzMzMyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xOTUyMTQsIDAuMjkzMDQ2LCAwLjg0NzE1OCwgMS4zMzYyMywgMS45ODc3MSwgMy4yOTExOCwgNC4xMDU0MyIsIFwKLSAgICAgICAgICAiMC4yMDcxODYsIDAuMzA1MDcxLCAwLjg1OTEwNCwgMS4zNDc5NCwgMi4wMDAxMiwgMy4zMDMyNywgNC4xMTc2MSIsIFwKLSAgICAgICAgICAiMC4yMjA4NzUsIDAuMzE4ODU2LCAwLjg3Mjg4MywgMS4zNjE5MywgMi4wMTQ1MiwgMy4zMTY5NiwgNC4xMzE1NyIsIFwKLSAgICAgICAgICAiMC4yMzQyODMsIDAuMzMyMjgzLCAwLjg4NjU0NywgMS4zNzUyNSwgMi4wMjcyOCwgMy4zMzA3NiwgNC4xNDUwMSIsIFwKLSAgICAgICAgICAiMC4yNDc0MDksIDAuMzQ1ODQ2LCAwLjkwMDU2NCwgMS4zODg5LCAyLjA0MDgsIDMuMzQ0NDYsIDQuMTU4NjEiLCBcCi0gICAgICAgICAgIjAuMjY4OTIzLCAwLjM2NjExNCwgMC45MjE4ODcsIDEuNDExMjQsIDIuMDYzNjksIDMuMzY1NzcsIDQuMTgwNjIiLCBcCi0gICAgICAgICAgIjAuMjg3NTc5LCAwLjM4NTg5OCwgMC45NDA1MiwgMS40Mjk1MiwgMi4wODEzNiwgMy4zODQ1NiwgNC4xOTkzOSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zNzI5MDEsIDAuNTU4NzQ0LCAxLjYxMzYyLCAyLjU0NTgsIDMuNzkwNDksIDYuMjc2MDksIDcuODI3MzkiLCBcCi0gICAgICAgICAgIjAuMzcyOTE1LCAwLjU1ODc5NiwgMS42MTM2MywgMi41NDUzMiwgMy43ODc5MiwgNi4yNzM5NywgNy44Mjc0NCIsIFwKLSAgICAgICAgICAiMC4zNzI5MDYsIDAuNTU4ODE0LCAxLjYxMzc4LCAyLjU0NTUsIDMuNzkwMjQsIDYuMjc0NTIsIDcuODI5MDUiLCBcCi0gICAgICAgICAgIjAuMzcyODg2LCAwLjU1ODc0LCAxLjYxMzY1LCAyLjU0NTI2LCAzLjc5MDUxLCA2LjI3NDk2LCA3LjgyNiIsIFwKLSAgICAgICAgICAiMC4zNzI5NSwgMC41NTg3MzgsIDEuNjEzOTQsIDIuNTQ1MjYsIDMuNzkwNDgsIDYuMjc2MzUsIDcuODI3NTUiLCBcCi0gICAgICAgICAgIjAuMzc0NTE3LCAwLjU1ODcxNywgMS42MTM3NywgMi41NDU1OSwgMy43ODg0NywgNi4yNzUwNCwgNy44MjYzMiIsIFwKLSAgICAgICAgICAiMC4zNzczOSwgMC41NTk2MjQsIDEuNjEzNTcsIDIuNTQ1MTgsIDMuNzkwMjUsIDYuMjc1MTQsIDcuODI3NzEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE3OTc3MiwgMC4yNjkxNDQsIDAuNzc0MTMxLCAxLjIxOTE0LCAxLjgxNDQxLCAzLjAwNTQ5LCAzLjc0OTYiLCBcCi0gICAgICAgICAgIjAuMTkwMzMyLCAwLjI3OTc3NywgMC43ODQ3NDIsIDEuMjMwMTMsIDEuODI0NjMsIDMuMDE2NjMsIDMuNzYwNDQiLCBcCi0gICAgICAgICAgIjAuMjAzMzc1LCAwLjI5Mjg0NiwgMC43OTc4NTEsIDEuMjQyOSwgMS44Mzg0LCAzLjAyOTQ3LCAzLjc3MzU5IiwgXAotICAgICAgICAgICIwLjIxNjQ0NiwgMC4zMDU5MiwgMC44MTA5NzIsIDEuMjU2MTEsIDEuODUxOCwgMy4wNDIzNywgMy43ODY2IiwgXAotICAgICAgICAgICIwLjIyOTUwMSwgMC4zMTkwMDgsIDAuODI0MjI3LCAxLjI2OTM3LCAxLjg2NDk1LCAzLjA1NTk1LCAzLjc5OTg1IiwgXAotICAgICAgICAgICIwLjI1MDQ4NCwgMC4zMzk5OTIsIDAuODQ1MjU0LCAxLjI5MDI4LCAxLjg4NTg0LCAzLjA3NjUzLCAzLjgyMDc4IiwgXAotICAgICAgICAgICIwLjI2OTAyNCwgMC4zNTgzNTYsIDAuODYzNjgxLCAxLjMwODY5LCAxLjkwMzU5LCAzLjA5NDg5LCAzLjgzOTMzIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjM0MzQ0NSwgMC41MTc3OCwgMS41MDU2NCwgMi4zNzg1NywgMy41NDM2MywgNS44NzUzMiwgNy4zMzExIiwgXAotICAgICAgICAgICIwLjM0MzU5MywgMC41MTc2MTEsIDEuNTA0NzYsIDIuMzc5MTEsIDMuNTQzOTUsIDUuODc0MzgsIDcuMzMzMjEiLCBcCi0gICAgICAgICAgIjAuMzQzNTE2LCAwLjUxNzczNCwgMS41MDQ0NywgMi4zNzg2MiwgMy41NDM2MSwgNS44NzY3OCwgNy4zMzMyNyIsIFwKLSAgICAgICAgICAiMC4zNDMwOTksIDAuNTE4MTA0LCAxLjUwNDc4LCAyLjM3OTAzLCAzLjU0MzYsIDUuODc1NywgNy4zMzEiLCBcCi0gICAgICAgICAgIjAuMzQzNDI1LCAwLjUxNzUyNSwgMS41MDQ0MiwgMi4zNzk5LCAzLjU0NDQ3LCA1Ljg3NTYsIDcuMzMzMTciLCBcCi0gICAgICAgICAgIjAuMzQ3MjMxLCAwLjUxNzc4MiwgMS41MDQ4MiwgMi4zNzkxOSwgMy41NDQ3OSwgNS44NzYzOSwgNy4zMzIiLCBcCi0gICAgICAgICAgIjAuMzUyNTUyLCAwLjUyMDQwNywgMS41MDUyLCAyLjM3ODUxLCAzLjU0NTMxLCA1Ljg3Njc2LCA3LjMzMzA5Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE5MDI5MywgMC4yODgxMDUsIDAuODQyMDY4LCAxLjMzMDg3LCAxLjk4MjgxLCAzLjI4NTkzLCA0LjEwMDYyIiwgXAotICAgICAgICAgICIwLjIwMDk0MiwgMC4yOTg4NzYsIDAuODUyOTg3LCAxLjM0MTczLCAxLjk5Mzg1LCAzLjI5Njc5LCA0LjExMTQ2IiwgXAotICAgICAgICAgICIwLjIxNDUzNywgMC4zMTI1NjgsIDAuODY2NzI5LCAxLjM1NTg1LCAyLjAwODMzLCAzLjMxMDc5LCA0LjEyNTMzIiwgXAotICAgICAgICAgICIwLjIyNzI1LCAwLjMyNTM0MywgMC44Nzk5MzEsIDEuMzY4MzQsIDIuMDIwMjksIDMuMzIzNzcsIDQuMTM4MDgiLCBcCi0gICAgICAgICAgIjAuMjQwMzc0LCAwLjMzODM2NSwgMC44OTMwNTYsIDEuMzgyMTQsIDIuMDMzNDksIDMuMzM2NzcsIDQuMTUxNDgiLCBcCi0gICAgICAgICAgIjAuMjYxNDk0LCAwLjM1OTY1NywgMC45MTQyNjksIDEuNDAyOCwgMi4wNTUwMiwgMy4zNTgsIDQuMTcyOCIsIFwKLSAgICAgICAgICAiMC4yNzk5ODYsIDAuMzc4MDkyLCAwLjkzMjU3LCAxLjQyMjE3LCAyLjA3MzEyLCAzLjM3NjU1LCA0LjE5MTQxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjM3MjksIDAuNTU4NzQ3LCAxLjYxMzYsIDIuNTQ1MDksIDMuNzkwMDYsIDYuMjczNjcsIDcuODI3NjgiLCBcCi0gICAgICAgICAgIjAuMzcyODksIDAuNTU4NzIyLCAxLjYxMzYzLCAyLjU0NTMzLCAzLjc4ODIzLCA2LjI3NTAxLCA3LjgyNzM2IiwgXAotICAgICAgICAgICIwLjM3Mjg4OCwgMC41NTg3NDgsIDEuNjEzODksIDIuNTQ1NDYsIDMuNzg4ODQsIDYuMjc1MDIsIDcuODI5MDYiLCBcCi0gICAgICAgICAgIjAuMzcyOTAxLCAwLjU1ODgxLCAxLjYxMzkzLCAyLjU0NTM3LCAzLjc5MDU4LCA2LjI3NDgyLCA3LjgyOTAxIiwgXAotICAgICAgICAgICIwLjM3MzI1MiwgMC41NTg2OTUsIDEuNjEzNTYsIDIuNTQ1NTksIDMuNzg5MTIsIDYuMjc1MzEsIDcuODI4NDMiLCBcCi0gICAgICAgICAgIjAuMzc2Njc1LCAwLjU1OTAxNywgMS42MTM1NywgMi41NDU1NywgMy43ODkxOSwgNi4yNzUyOSwgNy44MjcxMiIsIFwKLSAgICAgICAgICAiMC4zODE3NzYsIDAuNTYwOTYyLCAxLjYxMzU5LCAyLjU0NjA5LCAzLjc5MDMzLCA2LjI3NDc2LCA3LjgyNzgxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzI2MiwgMC4wMDMyNjIsIDAuMDAzMjYxLCAwLjAwMzI2LCAwLjAwMzI1NywgMC4wMDMyNTYsIDAuMDAzMjUzIiwgXAotICAgICAgICAgICIwLjAwMzI1MywgMC4wMDMyNTMsIDAuMDAzMjUxLCAwLjAwMzI1LCAwLjAwMzI0OSwgMC4wMDMyNDUsIDAuMDAzMjM5IiwgXAotICAgICAgICAgICIwLjAwMzI1LCAwLjAwMzI1LCAwLjAwMzI1LCAwLjAwMzI0OSwgMC4wMDMyNDcsIDAuMDAzMjQ0LCAwLjAwMzI0MSIsIFwKLSAgICAgICAgICAiMC4wMDMyNDgsIDAuMDAzMjQ5LCAwLjAwMzI0OCwgMC4wMDMyNDcsIDAuMDAzMjQ2LCAwLjAwMzI0MiwgMC4wMDMyMzkiLCBcCi0gICAgICAgICAgIjAuMDAzMjQ2LCAwLjAwMzI0NywgMC4wMDMyNDgsIDAuMDAzMjQ2LCAwLjAwMzI0NSwgMC4wMDMyNDIsIDAuMDAzMjQiLCBcCi0gICAgICAgICAgIjAuMDAzMjQ0LCAwLjAwMzI0NiwgMC4wMDMyNDYsIDAuMDAzMjQ2LCAwLjAwMzI0NSwgMC4wMDMyNDEsIDAuMDAzMjM5IiwgXAotICAgICAgICAgICIwLjAwMzI0MiwgMC4wMDMyNDQsIDAuMDAzMjQ2LCAwLjAwMzI0NiwgMC4wMDMyNDUsIDAuMDAzMjQxLCAwLjAwMzI0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxMTY1LCAwLjAwMTE2NiwgMC4wMDExNjQsIDAuMDAxMTYzLCAwLjAwMTE2LCAwLjAwMTE1NiwgMC4wMDExNTMiLCBcCi0gICAgICAgICAgIjAuMDAxMTU0LCAwLjAwMTE1NSwgMC4wMDExNTQsIDAuMDAxMTU1LCAwLjAwMTE1LCAwLjAwMTE0NywgMC4wMDExNDQiLCBcCi0gICAgICAgICAgIjAuMDAxMTQ3LCAwLjAwMTE1LCAwLjAwMTE1MSwgMC4wMDExNSwgMC4wMDExNDksIDAuMDAxMTQ0LCAwLjAwMTE0MSIsIFwKLSAgICAgICAgICAiMC4wMDExNDIsIDAuMDAxMTQ1LCAwLjAwMTE0OSwgMC4wMDExNDgsIDAuMDAxMTQ3LCAwLjAwMTE0MywgMC4wMDExNDEiLCBcCi0gICAgICAgICAgIjAuMDAxMTM5LCAwLjAwMTE0MywgMC4wMDExNDgsIDAuMDAxMTQ3LCAwLjAwMTE0NiwgMC4wMDExNDMsIDAuMDAxMTM5IiwgXAotICAgICAgICAgICIwLjAwMTEzMywgMC4wMDExMzcsIDAuMDAxMTQ1LCAwLjAwMTE0NiwgMC4wMDExNDUsIDAuMDAxMTQxLCAwLjAwMTEzOSIsIFwKLSAgICAgICAgICAiMC4wMDExMjgsIDAuMDAxMTM0LCAwLjAwMTE0MywgMC4wMDExNDUsIDAuMDAxMTQ0LCAwLjAwMTE0LCAwLjAwMTEzOCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkExIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI5NiwgMC4wMDI5NiwgMC4wMDI5NTksIDAuMDAyOTU5LCAwLjAwMjk1NywgMC4wMDI5NTUsIDAuMDAyOTUzIiwgXAotICAgICAgICAgICIwLjAwMjk1OSwgMC4wMDI5NTksIDAuMDAyOTU5LCAwLjAwMjk1OSwgMC4wMDI5NTgsIDAuMDAyOTUzLCAwLjAwMjk1MyIsIFwKLSAgICAgICAgICAiMC4wMDI5NTcsIDAuMDAyOTU4LCAwLjAwMjk1OSwgMC4wMDI5NTgsIDAuMDAyOTYsIDAuMDAyOTU1LCAwLjAwMjk1MiIsIFwKLSAgICAgICAgICAiMC4wMDI5NTQsIDAuMDAyOTU2LCAwLjAwMjk1OCwgMC4wMDI5NTgsIDAuMDAyOTU3LCAwLjAwMjk1NSwgMC4wMDI5NTMiLCBcCi0gICAgICAgICAgIjAuMDAyOTUxLCAwLjAwMjk1NCwgMC4wMDI5NTcsIDAuMDAyOTU3LCAwLjAwMjk1NywgMC4wMDI5NTUsIDAuMDAyOTUyIiwgXAotICAgICAgICAgICIwLjAwMjk0NywgMC4wMDI5NTEsIDAuMDAyOTU2LCAwLjAwMjk1NywgMC4wMDI5NTYsIDAuMDAyOTU0LCAwLjAwMjk1MyIsIFwKLSAgICAgICAgICAiMC4wMDI5NDUsIDAuMDAyOTQ5LCAwLjAwMjk1NSwgMC4wMDI5NTYsIDAuMDAyOTU3LCAwLjAwMjk1NCwgMC4wMDI5NTMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDExNjYsIDAuMDAxMTY2LCAwLjAwMTE2NSwgMC4wMDExNjMsIDAuMDAxMTYxLCAwLjAwMTE1NiwgMC4wMDExNTMiLCBcCi0gICAgICAgICAgIjAuMDAxMTU1LCAwLjAwMTE1NiwgMC4wMDExNTUsIDAuMDAxMTUyLCAwLjAwMTE1MiwgMC4wMDExNDgsIDAuMDAxMTQ0IiwgXAotICAgICAgICAgICIwLjAwMTE0OCwgMC4wMDExNSwgMC4wMDExNTIsIDAuMDAxMTUxLCAwLjAwMTE0OSwgMC4wMDExNDQsIDAuMDAxMTQxIiwgXAotICAgICAgICAgICIwLjAwMTE0MywgMC4wMDExNDYsIDAuMDAxMTQ5LCAwLjAwMTE0OSwgMC4wMDExNDgsIDAuMDAxMTQ0LCAwLjAwMTE0IiwgXAotICAgICAgICAgICIwLjAwMTEzOCwgMC4wMDExNDIsIDAuMDAxMTQ4LCAwLjAwMTE0NywgMC4wMDExNDYsIDAuMDAxMTQzLCAwLjAwMTEzOSIsIFwKLSAgICAgICAgICAiMC4wMDExMzMsIDAuMDAxMTM4LCAwLjAwMTE0NSwgMC4wMDExNDYsIDAuMDAxMTQ1LCAwLjAwMTE0MiwgMC4wMDExMzkiLCBcCi0gICAgICAgICAgIjAuMDAxMTI4LCAwLjAwMTEzNCwgMC4wMDExNDQsIDAuMDAxMTQ1LCAwLjAwMTE0NCwgMC4wMDExNDEsIDAuMDAxMTM4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTIiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjYxMywgMC4wMDI2MTMsIDAuMDAyNjE0LCAwLjAwMjYxMiwgMC4wMDI2MTIsIDAuMDAyNjExLCAwLjAwMjYxMSIsIFwKLSAgICAgICAgICAiMC4wMDI2MTksIDAuMDAyNjIxLCAwLjAwMjYyMiwgMC4wMDI2MjIsIDAuMDAyNjIyLCAwLjAwMjYyMSwgMC4wMDI2MiIsIFwKLSAgICAgICAgICAiMC4wMDI2MTcsIDAuMDAyNjIsIDAuMDAyNjI0LCAwLjAwMjYyNiwgMC4wMDI2MjYsIDAuMDAyNjIxLCAwLjAwMjYyMiIsIFwKLSAgICAgICAgICAiMC4wMDI2MTQsIDAuMDAyNjE4LCAwLjAwMjYyMywgMC4wMDI2MjQsIDAuMDAyNjI0LCAwLjAwMjYyMywgMC4wMDI2MjMiLCBcCi0gICAgICAgICAgIjAuMDAyNjExLCAwLjAwMjYxNSwgMC4wMDI2MjIsIDAuMDAyNjIzLCAwLjAwMjYyMywgMC4wMDI2MjMsIDAuMDAyNjIzIiwgXAotICAgICAgICAgICIwLjAwMjYwNiwgMC4wMDI2MTIsIDAuMDAyNjIxLCAwLjAwMjYyMywgMC4wMDI2MjMsIDAuMDAyNjIzLCAwLjAwMjYyMyIsIFwKLSAgICAgICAgICAiMC4wMDI2MDIsIDAuMDAyNjA5LCAwLjAwMjYyLCAwLjAwMjYyMiwgMC4wMDI2MjMsIDAuMDAyNjIzLCAwLjAwMjYyMiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTE2NiwgMC4wMDExNjYsIDAuMDAxMTY1LCAwLjAwMTE2MywgMC4wMDExNjEsIDAuMDAxMTU2LCAwLjAwMTE1MyIsIFwKLSAgICAgICAgICAiMC4wMDExNTQsIDAuMDAxMTU1LCAwLjAwMTE1NSwgMC4wMDExNTQsIDAuMDAxMTUyLCAwLjAwMTE0OCwgMC4wMDExNDQiLCBcCi0gICAgICAgICAgIjAuMDAxMTQ2LCAwLjAwMTE0OCwgMC4wMDExNTEsIDAuMDAxMTUsIDAuMDAxMTQ5LCAwLjAwMTE0NCwgMC4wMDExNDEiLCBcCi0gICAgICAgICAgIjAuMDAxMTM5LCAwLjAwMTE0NCwgMC4wMDExNDgsIDAuMDAxMTQ4LCAwLjAwMTE0NywgMC4wMDExNDMsIDAuMDAxMTQiLCBcCi0gICAgICAgICAgIjAuMDAxMTM1LCAwLjAwMTE0LCAwLjAwMTE0NiwgMC4wMDExNDcsIDAuMDAxMTQ2LCAwLjAwMTE0MiwgMC4wMDExNCIsIFwKLSAgICAgICAgICAiMC4wMDExMjYsIDAuMDAxMTM0LCAwLjAwMTE0NCwgMC4wMDExNDUsIDAuMDAxMTQ0LCAwLjAwMTE0MSwgMC4wMDExMzgiLCBcCi0gICAgICAgICAgIjAuMDAxMTI0LCAwLjAwMTEzLCAwLjAwMTE0MSwgMC4wMDExNDQsIDAuMDAxMTQ0LCAwLjAwMTE0LCAwLjAwMTEzOCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDIzMTYsIDAuMDAyMzE2LCAwLjAwMjMxNSwgMC4wMDIzMTUsIDAuMDAyMzEyLCAwLjAwMjMxLCAwLjAwMjMwNiIsIFwKLSAgICAgICAgICAiMC4wMDIzMDgsIDAuMDAyMzA5LCAwLjAwMjMwOSwgMC4wMDIzMDksIDAuMDAyMzA4LCAwLjAwMjMwMywgMC4wMDIzMDMiLCBcCi0gICAgICAgICAgIjAuMDAyMzAzLCAwLjAwMjMwNSwgMC4wMDIzMDcsIDAuMDAyMzA2LCAwLjAwMjMwNiwgMC4wMDIzMDIsIDAuMDAyMyIsIFwKLSAgICAgICAgICAiMC4wMDIyOTgsIDAuMDAyMzAyLCAwLjAwMjMwNSwgMC4wMDIzMDUsIDAuMDAyMzA0LCAwLjAwMjMwMSwgMC4wMDIyOTkiLCBcCi0gICAgICAgICAgIjAuMDAyMjk2LCAwLjAwMjMsIDAuMDAyMzA0LCAwLjAwMjMwNCwgMC4wMDIzMDQsIDAuMDAyMywgMC4wMDIyOTgiLCBcCi0gICAgICAgICAgIjAuMDAyMjkyLCAwLjAwMjI5NiwgMC4wMDIzMDIsIDAuMDAyMzAzLCAwLjAwMjMwMiwgMC4wMDIyOTksIDAuMDAyMjk4IiwgXAotICAgICAgICAgICIwLjAwMjI4OSwgMC4wMDIyOTQsIDAuMDAyMzAxLCAwLjAwMjMwMywgMC4wMDIzMDIsIDAuMDAyMjk5LCAwLjAwMjI5NyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDI5NywgMC4wMDAyOTgsIDAuMDAwMjk5LCAwLjAwMDI5OSwgMC4wMDAyOTksIDAuMDAwMjk5LCAwLjAwMDI5OSIsIFwKLSAgICAgICAgICAiMC4wMDAzMDMsIDAuMDAwMzA2LCAwLjAwMDMxMSwgMC4wMDAzMTIsIDAuMDAwMzEyLCAwLjAwMDMxMywgMC4wMDAzMTQiLCBcCi0gICAgICAgICAgIjAuMDAwMjk5LCAwLjAwMDMwNSwgMC4wMDAzMTMsIDAuMDAwMzE1LCAwLjAwMDMxNiwgMC4wMDAzMTcsIDAuMDAwMzE3IiwgXAotICAgICAgICAgICIwLjAwMDI5MywgMC4wMDAzMDEsIDAuMDAwMzEzLCAwLjAwMDMxNiwgMC4wMDAzMTcsIDAuMDAwMzE4LCAwLjAwMDMxOSIsIFwKLSAgICAgICAgICAiMC4wMDAyODYsIDAuMDAwMjk3LCAwLjAwMDMxMiwgMC4wMDAzMTUsIDAuMDAwMzE3LCAwLjAwMDMxOSwgMC4wMDAzMTkiLCBcCi0gICAgICAgICAgIjAuMDAwMjc4LCAwLjAwMDI4OSwgMC4wMDAzMDksIDAuMDAwMzE0LCAwLjAwMDMxNiwgMC4wMDAzMTgsIDAuMDAwMzE5IiwgXAotICAgICAgICAgICIwLjAwMDI3MSwgMC4wMDAyODQsIDAuMDAwMzA3LCAwLjAwMDMxMiwgMC4wMDAzMTUsIDAuMDAwMzE4LCAwLjAwMDMxOSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIxIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDE5ODEsIDAuMDAxOTgxLCAwLjAwMTk4MSwgMC4wMDE5OCwgMC4wMDE5OCwgMC4wMDE5NzcsIDAuMDAxOTc1IiwgXAotICAgICAgICAgICIwLjAwMTk4MSwgMC4wMDE5ODMsIDAuMDAxOTg1LCAwLjAwMTk4NSwgMC4wMDE5ODYsIDAuMDAxOTg2LCAwLjAwMTk4MyIsIFwKLSAgICAgICAgICAiMC4wMDE5NzUsIDAuMDAxOTc5LCAwLjAwMTk4NCwgMC4wMDE5ODUsIDAuMDAxOTg0LCAwLjAwMTk4MywgMC4wMDE5ODEiLCBcCi0gICAgICAgICAgIjAuMDAxOTcsIDAuMDAxOTc1LCAwLjAwMTk4MywgMC4wMDE5ODQsIDAuMDAxOTg0LCAwLjAwMTk4MywgMC4wMDE5ODEiLCBcCi0gICAgICAgICAgIjAuMDAxOTY1LCAwLjAwMTk3MiwgMC4wMDE5ODEsIDAuMDAxOTgzLCAwLjAwMTk4MywgMC4wMDE5ODIsIDAuMDAxOTc5IiwgXAotICAgICAgICAgICIwLjAwMTk1OCwgMC4wMDE5NjYsIDAuMDAxOTc5LCAwLjAwMTk4MSwgMC4wMDE5ODIsIDAuMDAxOTgxLCAwLjAwMTk4IiwgXAotICAgICAgICAgICIwLjAwMTk1NCwgMC4wMDE5NjIsIDAuMDAxOTc3LCAwLjAwMTk3OSwgMC4wMDE5ODEsIDAuMDAxOTgsIDAuMDAxOTgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDAyOTcsIDAuMDAwMjk4LCAwLjAwMDI5OSwgMC4wMDAzLCAwLjAwMDI5OSwgMC4wMDAyOTksIDAuMDAwMyIsIFwKLSAgICAgICAgICAiMC4wMDAzMDIsIDAuMDAwMzA2LCAwLjAwMDMxMSwgMC4wMDAzMTIsIDAuMDAwMzEyLCAwLjAwMDMxMywgMC4wMDAzMTMiLCBcCi0gICAgICAgICAgIjAuMDAwMjk3LCAwLjAwMDMwNCwgMC4wMDAzMTMsIDAuMDAwMzE1LCAwLjAwMDMxNiwgMC4wMDAzMTcsIDAuMDAwMzE3IiwgXAotICAgICAgICAgICIwLjAwMDI5LCAwLjAwMDI5OSwgMC4wMDAzMTMsIDAuMDAwMzE2LCAwLjAwMDMxNywgMC4wMDAzMTksIDAuMDAwMzE5IiwgXAotICAgICAgICAgICIwLjAwMDI4MywgMC4wMDAyOTUsIDAuMDAwMzExLCAwLjAwMDMxNSwgMC4wMDAzMTcsIDAuMDAwMzE5LCAwLjAwMDMxOSIsIFwKLSAgICAgICAgICAiMC4wMDAyNzQsIDAuMDAwMjg3LCAwLjAwMDMwOSwgMC4wMDAzMTQsIDAuMDAwMzE2LCAwLjAwMDMxOSwgMC4wMDAzMTkiLCBcCi0gICAgICAgICAgIjAuMDAwMjY3LCAwLjAwMDI4MiwgMC4wMDAzMDYsIDAuMDAwMzEyLCAwLjAwMDMxNSwgMC4wMDAzMTgsIDAuMDAwMzE5Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBCTVhJWDIgKgotICogLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChCTVhJWDIpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4yNTAwNzk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDk1ODA3MTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA5NTQ1OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDk1ODA3MTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAzMTksIDAuMDAwMzIyLCAwLjAwMDMyMywgMC4wMDAzMjQsIDAuMDAwMzI0LCAwLjAwMDMyNCwgMC4wMDAzMjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAzMzUsIDAuMDAwMzMyLCAwLjAwMDMzMiwgMC4wMDAzMzIsIDAuMDAwMzMyLCAwLjAwMDMzMiwgMC4wMDAzMzIiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKE0wKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDExMjg3MzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDExMjgyNDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDExMjg3MzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxODUsIDAuMDAwMTY3LCAwLjAwMDE1NywgMC4wMDAxNTMsIDAuMDAwMTUxLCAwLjAwMDE1LCAwLjAwMDE1MSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTY4OSwgMC4wMDE2NzcsIDAuMDAxNjY5LCAwLjAwMTY2NywgMC4wMDE2NjUsIDAuMDAxNjYzLCAwLjAwMTY2MiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oTTEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTA1NzA0OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTA1NjQ4OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTA1NzA0OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDMwMiwgMC4wMDAyODUsIDAuMDAwMjc1LCAwLjAwMDI3LCAwLjAwMDI2OSwgMC4wMDAyNjYsIDAuMDAwMjY2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxNTgzLCAwLjAwMTU3MSwgMC4wMDE1NjQsIDAuMDAxNTYxLCAwLjAwMTU1OSwgMC4wMDE1NTgsIDAuMDAxNTU3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihQUE4pICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4yNDExMzc7Ci0gICAgZnVuY3Rpb24gOiAiKChYMiAoKE0wIEEpICsgKCFNMCBTKSkpICsgKCFYMiAoKE0xIEEpICsgKCFNMSBTKSkpKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzI3NzQ1LCAwLjUyODg2NCwgMC42NzM0NTUsIDAuODUyOTkxLCAxLjAzMjMxLCAxLjIxMTczLCAxLjM5MDg4IiwgXAotICAgICAgICAgICIwLjMzOTQ2MSwgMC41NDA1NzUsIDAuNjg1MTgsIDAuODY0NzA1LCAxLjA0NDAxLCAxLjIyMzM3LCAxLjQwMjYxIiwgXAotICAgICAgICAgICIwLjM1MzY1NCwgMC41NTQ2NDgsIDAuNjk5MzIyLCAwLjg3ODg2NSwgMS4wNTgxOCwgMS4yMzc0NiwgMS40MTY3OCIsIFwKLSAgICAgICAgICAiMC4zNjc0ODUsIDAuNTY4NDQsIDAuNzEzMTE4LCAwLjg5MjY2NywgMS4wNzE5OCwgMS4yNTEyNywgMS40MzA1OSIsIFwKLSAgICAgICAgICAiMC4zODExMzIsIDAuNTgyMjUzLCAwLjcyNjg3NiwgMC45MDY0MTYsIDEuMDg1NzIsIDEuMjY1MTIsIDEuNDQ0MzMiLCBcCi0gICAgICAgICAgIjAuNDAyOTg2LCAwLjYwNDA5MywgMC43NDg3MDUsIDAuOTI4MjI4LCAxLjEwNzU1LCAxLjI4Njg5LCAxLjQ2NjE1IiwgXAotICAgICAgICAgICIwLjQyMjAyLCAwLjYyMzI0NywgMC43Njc4MjMsIDAuOTQ3MzQyLCAxLjEyNjY4LCAxLjMwNjEsIDEuNDg1MjgiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTMzNzQxLCAwLjQ3NzUwNiwgMC43NjE2MjQsIDEuMTIxNjksIDEuNDg0MzQsIDEuODQ4MTEsIDIuMjEyMjkiLCBcCi0gICAgICAgICAgIjAuMTMzNzY5LCAwLjQ3NzQ0MywgMC43NjE0MzgsIDEuMTIxNjYsIDEuNDgzNTMsIDEuODQ4MDYsIDIuMjEyMTQiLCBcCi0gICAgICAgICAgIjAuMTMzNjg2LCAwLjQ3NzUxMywgMC43NjE0NDgsIDEuMTIxNjQsIDEuNDgxMDcsIDEuODQ4MDEsIDIuMjEyMTciLCBcCi0gICAgICAgICAgIjAuMTMzNzY1LCAwLjQ3NzQ1OSwgMC43NjE0NjEsIDEuMTIxNjQsIDEuNDgwODIsIDEuODQ3NjcsIDIuMjEyMTgiLCBcCi0gICAgICAgICAgIjAuMTMzNTkxLCAwLjQ3NzQzMiwgMC43NjE0MDgsIDEuMTIxMjcsIDEuNDgyNiwgMS44NDgsIDIuMjEyMzIiLCBcCi0gICAgICAgICAgIjAuMTMzNjMsIDAuNDc3NDU2LCAwLjc2MTQ4NCwgMS4xMjExNiwgMS40ODQwMiwgMS44NDY4OCwgMi4yMTIwOSIsIFwKLSAgICAgICAgICAiMC4xMzM2MDIsIDAuNDc3NDM4LCAwLjc2MTM4OSwgMS4xMTk1NiwgMS40ODExMiwgMS44NDcwNywgMi4yMTIxMSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMDgxMjYsIDAuNTM0ODIyLCAwLjcwMDg3NSwgMC45MDc0NjYsIDEuMTEzOSwgMS4zMjAzNCwgMS41MjY1NSIsIFwKLSAgICAgICAgICAiMC4zMTk3MzUsIDAuNTQ2MzA5LCAwLjcxMjMzMiwgMC45MTg5MjEsIDEuMTI1MzUsIDEuMzMxODQsIDEuNTM4MDgiLCBcCi0gICAgICAgICAgIjAuMzMyNzQ2LCAwLjU1OTM2NiwgMC43MjU0MjYsIDAuOTMyMDI2LCAxLjEzODQ3LCAxLjM0NDg4LCAxLjU1MTIxIiwgXAotICAgICAgICAgICIwLjM0NTM2OCwgMC41NzE5ODIsIDAuNzM4MDM1LCAwLjk0NDYzMSwgMS4xNTEwNywgMS4zNTc0OSwgMS41NjM3MiIsIFwKLSAgICAgICAgICAiMC4zNTc3MTIsIDAuNTg0MzE5LCAwLjc1MDM2OCwgMC45NTY5NjYsIDEuMTYzNDEsIDEuMzY5ODMsIDEuNTc2MDUiLCBcCi0gICAgICAgICAgIjAuMzc3MjQyLCAwLjYwMzgzMSwgMC43Njk4ODgsIDAuOTc2NDg2LCAxLjE4MjkyLCAxLjM4OTM1LCAxLjU5NTU5IiwgXAotICAgICAgICAgICIwLjM5NDMxOCwgMC42MjA3NTgsIDAuNzg2ODQyLCAwLjk5MzQ0NywgMS4xOTk5NiwgMS40MDYyLCAxLjYxMjYyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE0MjI4LCAwLjUzMjUyMiwgMC44NTM2MjUsIDEuMjYwMzMsIDEuNjY5MSwgMi4wODI1LCAyLjQ5MzU0IiwgXAotICAgICAgICAgICIwLjE0MjMwMywgMC41MzIxMzMsIDAuODU0MDc0LCAxLjI2MTcsIDEuNjcxMzgsIDIuMDgyNDQsIDIuNDkzNTgiLCBcCi0gICAgICAgICAgIjAuMTQyMjk4LCAwLjUzMjEyNCwgMC44NTM3NTEsIDEuMjYwNCwgMS42Njg5MSwgMi4wODI1NSwgMi40OTM1OCIsIFwKLSAgICAgICAgICAiMC4xNDIzMDgsIDAuNTMyMTM0LCAwLjg1MzY2MSwgMS4yNTk5MiwgMS42Njg4MiwgMi4wODI0MiwgMi40OTM4MyIsIFwKLSAgICAgICAgICAiMC4xNDIyNjksIDAuNTMyNDEyLCAwLjg1Mzc0NiwgMS4yNjAzNywgMS42Njg5LCAyLjA4MjQzLCAyLjQ5MzQ4IiwgXAotICAgICAgICAgICIwLjE0MjI4NywgMC41MzI1MTksIDAuODUzNjUxLCAxLjI1OTg5LCAxLjY2ODQ1LCAyLjA4MjQzLCAyLjQ5MzYxIiwgXAotICAgICAgICAgICIwLjE0MjI3OCwgMC41MzI1NCwgMC44NTM1NzUsIDEuMjYwOTcsIDEuNjY4ODIsIDIuMDgyNSwgMi40OTM0OCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJNMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjk3OTMsIDAuNDk3OTQ4LCAwLjY0MjM5MiwgMC44MjE4ODUsIDEuMDAxMTgsIDEuMTgwNTcsIDEuMzU5NzQiLCBcCi0gICAgICAgICAgIjAuMzA4OTg4LCAwLjUwODc4OCwgMC42NTMyNjIsIDAuODMyNzQ3LCAxLjAxMjA1LCAxLjE5MTI2LCAxLjM3MDYyIiwgXAotICAgICAgICAgICIwLjMyMjU5LCAwLjUyMjM4MiwgMC42NjY4NiwgMC44NDYzNDIsIDEuMDI1NjQsIDEuMjA0ODUsIDEuMzg0MjMiLCBcCi0gICAgICAgICAgIjAuMzM2MTY0LCAwLjUzNTg3LCAwLjY4MDM1MywgMC44NTk4MzUsIDEuMDM5MTQsIDEuMjE4MzUsIDEuMzk3NzMiLCBcCi0gICAgICAgICAgIjAuMzQ5NTc4LCAwLjU0OTQ3NSwgMC42OTM5NDksIDAuODczNDIzLCAxLjA1MjcxLCAxLjIzMjExLCAxLjQxMTI4IiwgXAotICAgICAgICAgICIwLjM3MTc1MSwgMC41NzEzNTksIDAuNzE1ODY4LCAwLjg5NTM0NSwgMS4wNzQ2NSwgMS4yNTQwMywgMS40MzMxIiwgXAotICAgICAgICAgICIwLjM5MDc3MSwgMC41OTA1NDIsIDAuNzM1MDI4LCAwLjkxNDUwNywgMS4wOTM4MSwgMS4yNzMyLCAxLjQ1MjI5Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEzMTY0OSwgMC40NzU5MzcsIDAuNzYwMzM1LCAxLjExNzg4LCAxLjQ3OTcsIDEuODQyNTUsIDIuMjExNzgiLCBcCi0gICAgICAgICAgIjAuMTMyMDU3LCAwLjQ3NTkyMSwgMC43NjAyNiwgMS4xMTg0LCAxLjQ3OTc5LCAxLjg0NjU3LCAyLjIxMTcyIiwgXAotICAgICAgICAgICIwLjEzMjA1MiwgMC40NzU5MjgsIDAuNzYwMjQxLCAxLjExODM1LCAxLjQ3OTYsIDEuODQ2NDQsIDIuMjExNzEiLCBcCi0gICAgICAgICAgIjAuMTMyMDI3LCAwLjQ3NTg4MywgMC43NjAyMjYsIDEuMTE4MzgsIDEuNDgxMDcsIDEuODQ2NDQsIDIuMjExNyIsIFwKLSAgICAgICAgICAiMC4xMzIwNTIsIDAuNDc1ODM5LCAwLjc2MDE0OCwgMS4xMTc5NywgMS40ODA1NSwgMS44NDIyNiwgMi4yMDYxOSIsIFwKLSAgICAgICAgICAiMC4xMzIzMjUsIDAuNDc1ODc5LCAwLjc2MDEzOSwgMS4xMTgxNiwgMS40ODA4NCwgMS44NDc0MywgMi4yMTEwNCIsIFwKLSAgICAgICAgICAiMC4xMzE5NDgsIDAuNDc1ODc1LCAwLjc2MDE1NiwgMS4xMTgwNiwgMS40ODA3OCwgMS44NDc0NSwgMi4yMTExOSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yODEyMywgMC41MDYyOTUsIDAuNjcyMjU0LCAwLjg3ODc4MywgMS4wODUxMywgMS4yOTE1MywgMS40OTc4NiIsIFwKLSAgICAgICAgICAiMC4yOTEyNDMsIDAuNTE2Njg0LCAwLjY4MjU5NywgMC44ODkxMjUsIDEuMDk1NjIsIDEuMzAxOTIsIDEuNTA4MTMiLCBcCi0gICAgICAgICAgIjAuMzA0Njc4LCAwLjUyOTg4LCAwLjY5NTc2MywgMC45MDIzMDUsIDEuMTA4NjUsIDEuMzE1MSwgMS41MjEzMyIsIFwKLSAgICAgICAgICAiMC4zMTc2MzgsIDAuNTQyODYyLCAwLjcwODc3MywgMC45MTUzMDUsIDEuMTIxOCwgMS4zMjgxLCAxLjUzNDUzIiwgXAotICAgICAgICAgICIwLjMzMDkwOCwgMC41NTU5NTYsIDAuNzIxODc0LCAwLjkyODQwOSwgMS4xMzQ5MSwgMS4zNDEyLCAxLjU0NzUxIiwgXAotICAgICAgICAgICIwLjM1MTg4MywgMC41NzY5MzcsIDAuNzQyODYsIDAuOTQ5NDAyLCAxLjE1NTksIDEuMzYyMjEsIDEuNTY4NTEiLCBcCi0gICAgICAgICAgIjAuMzcwMjk1LCAwLjU5NTM2MiwgMC43NjEyNjEsIDAuOTY3Nzk4LCAxLjE3NDIzLCAxLjM4MDYxLCAxLjU4NjkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTQwNjMzLCAwLjUzMDQ0MSwgMC44NTI0ODIsIDEuMjU5MzQsIDEuNjY3NjMsIDIuMDc5MzIsIDIuNDkzMyIsIFwKLSAgICAgICAgICAiMC4xNDAzNzksIDAuNTMwNDUsIDAuODUyNzIxLCAxLjI1ODY1LCAxLjY2NzcsIDIuMDgxODUsIDIuNDkzIiwgXAotICAgICAgICAgICIwLjE0MDQ2MSwgMC41MzA1MzksIDAuODUyNTI1LCAxLjI2MTMsIDEuNjY4OTUsIDIuMDgyMDYsIDIuNDkzMiIsIFwKLSAgICAgICAgICAiMC4xNDA1MzYsIDAuNTMwNjIsIDAuODUyNjQyLCAxLjI1NzksIDEuNjY3NTUsIDIuMDgxODQsIDIuNDg0NDIiLCBcCi0gICAgICAgICAgIjAuMTQwNjUxLCAwLjUzMDQ0OCwgMC44NTI2NDUsIDEuMjU4MjYsIDEuNjY3OCwgMi4wODE4MSwgMi40OTMwNyIsIFwKLSAgICAgICAgICAiMC4xNDA2NDksIDAuNTMwNDM5LCAwLjg1MjY0NCwgMS4yNTg0NCwgMS42Njc4NiwgMi4wNzYwNiwgMi40OTMwNiIsIFwKLSAgICAgICAgICAiMC4xNDA3MTcsIDAuNTMwNTkzLCAwLjg1MjY2NSwgMS4yNTczNywgMS42Njg1NiwgMi4wODE5MiwgMi40ODk1MyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJNMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzMzNTMsIDAuNTMzMjksIDAuNjc3NjczLCAwLjg1NzE0NCwgMS4wMzY0NCwgMS4yMTU2NiwgMS4zOTQ5OCIsIFwKLSAgICAgICAgICAiMC4zNDU0MTgsIDAuNTQ1MTY1LCAwLjY4OTU4LCAwLjg2OTA0NywgMS4wNDgzNCwgMS4yMjc3NiwgMS40MDY4OCIsIFwKLSAgICAgICAgICAiMC4zNjAyNDUsIDAuNTYwMTExLCAwLjcwNDU1LCAwLjg4NDAxNiwgMS4wNjMzMSwgMS4yNDI1MSwgMS40MjE4OCIsIFwKLSAgICAgICAgICAiMC4zNzQ3NzcsIDAuNTc0NDg0LCAwLjcxODkxOSwgMC44OTgzODMsIDEuMDc3NjcsIDEuMjU2ODksIDEuNDM2MjQiLCBcCi0gICAgICAgICAgIjAuMzg4MzY2LCAwLjU4ODA3OSwgMC43MzI1MywgMC45MTE5OTQsIDEuMDkxMjgsIDEuMjcwNDgsIDEuNDQ5ODYiLCBcCi0gICAgICAgICAgIjAuNDA3NTQ2LCAwLjYwNzI1OCwgMC43NTE2OTksIDAuOTMxMTY4LCAxLjExMDQ2LCAxLjI4OTY3LCAxLjQ2OTA0IiwgXAotICAgICAgICAgICIwLjQyMjcyMSwgMC42MjIyNzYsIDAuNzY2NzU3LCAwLjk0NjIwOSwgMS4xMjU1LCAxLjMwNDg3LCAxLjQ4Mzk5Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEzMjAwNiwgMC40NzU4MjgsIDAuNzYwMTYxLCAxLjExODI1LCAxLjQ4MSwgMS44NDY0NSwgMi4yMTE1MiIsIFwKLSAgICAgICAgICAiMC4xMzIxNTQsIDAuNDc1NzQ1LCAwLjc2MDE1OSwgMS4xMjAyOCwgMS40ODI4MiwgMS44NDIzMywgMi4yMTE0OSIsIFwKLSAgICAgICAgICAiMC4xMzE4OTcsIDAuNDc1ODI1LCAwLjc2MDEzLCAxLjExODI1LCAxLjQ4MDk0LCAxLjg0NjM1LCAyLjIxMTU5IiwgXAotICAgICAgICAgICIwLjEzMjA3NywgMC40NzU4MiwgMC43NjAxMjcsIDEuMTE4MjQsIDEuNDgwOCwgMS44NDY0MiwgMi4yMTE1OCIsIFwKLSAgICAgICAgICAiMC4xMzE5ODgsIDAuNDc1NzY5LCAwLjc2MDA0NiwgMS4xMTgyMSwgMS40ODA4MiwgMS44NDYyNywgMi4yMTE1NiIsIFwKLSAgICAgICAgICAiMC4xMzIwOCwgMC40NzU3ODUsIDAuNzYwMTIxLCAxLjExODIyLCAxLjQ4MDc5LCAxLjg0NjA4LCAyLjIxMTU5IiwgXAotICAgICAgICAgICIwLjEzMjI2NSwgMC40NzU3NjYsIDAuNzYwMTAyLCAxLjExNzkzLCAxLjQ4MDgsIDEuODQ3MzMsIDIuMjA3NDkiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzIxOTI2LCAwLjU0NzI2NCwgMC43MTMxNDYsIDAuOTE5NzI3LCAxLjEyNjE4LCAxLjMzMjU4LCAxLjUzODgzIiwgXAotICAgICAgICAgICIwLjMzNDA4MywgMC41NTk0MjIsIDAuNzI1MzUsIDAuOTMxODYyLCAxLjEzODI2LCAxLjM0NDc1LCAxLjU1MDk5IiwgXAotICAgICAgICAgICIwLjM0OTU4MSwgMC41NzQ4MDYsIDAuNzQwNzcxLCAwLjk0NzMzNSwgMS4xNTM4MywgMS4zNjAxOSwgMS41NjY0NiIsIFwKLSAgICAgICAgICAiMC4zNjQxMTgsIDAuNTg5NTc1LCAwLjc1NTUwMiwgMC45NjIwNTksIDEuMTY4NSwgMS4zNzQ5LCAxLjU4MTI2IiwgXAotICAgICAgICAgICIwLjM3OTUwNCwgMC42MDQ4MzcsIDAuNzcwNzM3LCAwLjk3NzI2NCwgMS4xODM4LCAxLjM5MDE3LCAxLjU5NjQxIiwgXAotICAgICAgICAgICIwLjQwMTU2MiwgMC42MjY3OTIsIDAuNzkyNzU2LCAwLjk5OTMxNywgMS4yMDU4MiwgMS40MTIxMiwgMS42MTg0NSIsIFwKLSAgICAgICAgICAiMC40MTkzNjYsIDAuNjQ0NTY2LCAwLjgxMDUyNiwgMS4wMTcwOSwgMS4yMjM2LCAxLjQyOTgyLCAxLjYzNjIzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE0MDg2MSwgMC41MzA3NTMsIDAuODUzMDM5LCAxLjI2MTQ0LCAxLjY3MTA0LCAyLjA4MjE4LCAyLjQ5MzA5IiwgXAotICAgICAgICAgICIwLjE0MDg0OCwgMC41MzA3NjMsIDAuODUyMzQ4LCAxLjI2MTA1LCAxLjY2NzI2LCAyLjA4MjI4LCAyLjQ5MzI4IiwgXAotICAgICAgICAgICIwLjE0MDg1MiwgMC41MzA4NSwgMC44NTI4MDgsIDEuMjU4OCwgMS42NzExNywgMi4wODIyMSwgMi40OTM1MSIsIFwKLSAgICAgICAgICAiMC4xNDA2MjIsIDAuNTMwNzg4LCAwLjg1Mjg3MywgMS4yNTc2NywgMS42NjgyNSwgMi4wODIxMSwgMi40ODc2NCIsIFwKLSAgICAgICAgICAiMC4xNDA4MTIsIDAuNTMwNzY1LCAwLjg1MjY3OSwgMS4yNjA2NywgMS42NjYzNSwgMi4wNzY2NywgMi40OTM0NyIsIFwKLSAgICAgICAgICAiMC4xNDA4MSwgMC41MzA4NjIsIDAuODUyNzg3LCAxLjI1OTE4LCAxLjY2NDg2LCAyLjA4MTg2LCAyLjQ5MzM5IiwgXAotICAgICAgICAgICIwLjE0MDgyNCwgMC41MzA1OTEsIDAuODUyODAxLCAxLjI1ODk3LCAxLjY2NjQzLCAyLjA3ODMxLCAyLjQ5MzM1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIk0xIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMTIwMDYsIDAuNTEzMTM4LCAwLjY1NzgyLCAwLjgzNzMxNCwgMS4wMTY2NCwgMS4xOTYwNSwgMS4zNzUyIiwgXAotICAgICAgICAgICIwLjMyMzA1NSwgMC41MjQxNDcsIDAuNjY4NzkyLCAwLjg0ODM2MywgMS4wMjc2NCwgMS4yMDY5MywgMS4zODYyNCIsIFwKLSAgICAgICAgICAiMC4zMzY2MzcsIDAuNTM3Njg0LCAwLjY4MjI5NywgMC44NjE4MzUsIDEuMDQxMTQsIDEuMjIwNDMsIDEuMzk5NzUiLCBcCi0gICAgICAgICAgIjAuMzUwMTQ1LCAwLjU1MTI0MywgMC42OTU5MSwgMC44NzU0NCwgMS4wNTQ3NSwgMS4yMzQwMSwgMS40MTMzNyIsIFwKLSAgICAgICAgICAiMC4zNjM3ODQsIDAuNTY0ODU1LCAwLjcwOTQ3NSwgMC44ODkwMTMsIDEuMDY4MzEsIDEuMjQ3NjgsIDEuNDI2OTMiLCBcCi0gICAgICAgICAgIjAuMzg1NTc4LCAwLjU4NjY4MiwgMC43MzEzNTgsIDAuOTEwODg0LCAxLjA5MDE5LCAxLjI2OTQ0LCAxLjQ0ODgyIiwgXAotICAgICAgICAgICIwLjQwNDc5NCwgMC42MDU5MjQsIDAuNzUwNTYsIDAuOTMwMDk5LCAxLjEwOTQsIDEuMjg4NzIsIDEuNDY4MDMiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTMzNjIzLCAwLjQ3NzM0OSwgMC43NjA1MTMsIDEuMTE5MDYsIDEuNDc5NzgsIDEuODQxOTksIDIuMjEyMDciLCBcCi0gICAgICAgICAgIjAuMTMzNjAzLCAwLjQ3NzQ3MywgMC43NjEzOTIsIDEuMTE4NiwgMS40ODA1MywgMS44NDc0OSwgMi4yMTIxMSIsIFwKLSAgICAgICAgICAiMC4xMzMzMjksIDAuNDc3NDc1LCAwLjc2MTM5MSwgMS4xMTk0MiwgMS40ODAzMSwgMS44NDI5OSwgMi4yMTIwNyIsIFwKLSAgICAgICAgICAiMC4xMzM1NjMsIDAuNDc3NDMxLCAwLjc2MTM1MywgMS4xMTkyNiwgMS40ODAyLCAxLjg0NzI4LCAyLjIxMjA5IiwgXAotICAgICAgICAgICIwLjEzMzM4MywgMC40Nzc0MzgsIDAuNzYxMzIsIDEuMTE5NTYsIDEuNDgxNjgsIDEuODQ3NjksIDIuMjEyMDUiLCBcCi0gICAgICAgICAgIjAuMTMzNjg3LCAwLjQ3NzQ2NCwgMC43NjEzNjMsIDEuMTE5MjEsIDEuNDgxNjIsIDEuODQ3MDIsIDIuMjEyMSIsIFwKLSAgICAgICAgICAiMC4xMzM1MjIsIDAuNDc3NDQ0LCAwLjc2MTMxNSwgMS4xMTk0NCwgMS40ODE2NywgMS44NDc0NywgMi4yMTIwNSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yOTI1MDIsIDAuNTE4ODU2LCAwLjY4NDksIDAuODkxNDc2LCAxLjA5NzksIDEuMzA0MiwgMS41MTA2MSIsIFwKLSAgICAgICAgICAiMC4zMDI4MzcsIDAuNTI5MzM5LCAwLjY5NTM2NCwgMC45MDE5MjgsIDEuMTA4MjYsIDEuMzE0NzgsIDEuNTIxMDIiLCBcCi0gICAgICAgICAgIjAuMzE1OTg1LCAwLjU0MjM2NCwgMC43MDg0MTUsIDAuOTE0OTksIDEuMTIxNDksIDEuMzI3ODUsIDEuNTM0MTEiLCBcCi0gICAgICAgICAgIjAuMzI4OTg3LCAwLjU1NTU3OCwgMC43MjE1OTksIDAuOTI4MTc0LCAxLjEzNDYsIDEuMzQxMDEsIDEuNTQ3MjYiLCBcCi0gICAgICAgICAgIjAuMzQyMTI4LCAwLjU2ODY0LCAwLjczNDY2MSwgMC45NDEyMzQsIDEuMTQ3NjYsIDEuMzU0MDcsIDEuNTYwNDEiLCBcCi0gICAgICAgICAgIjAuMzYzMTYxLCAwLjU4OTcyNiwgMC43NTU3NTYsIDAuOTYyMzM2LCAxLjE2ODc2LCAxLjM3NTE4LCAxLjU4MTQ0IiwgXAotICAgICAgICAgICIwLjM4MTc3OCwgMC42MDgxMTUsIDAuNzc0MTUsIDAuOTgwNzMzLCAxLjE4NzE3LCAxLjM5MzU5LCAxLjU5OTgxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE0MjEzOSwgMC41MzIzNTMsIDAuODUzNDU2LCAxLjI1OSwgMS42Njc0MiwgMi4wNzY3LCAyLjQ5MzUzIiwgXAotICAgICAgICAgICIwLjE0MjAxNSwgMC41MzE5NzEsIDAuODUzMzc2LCAxLjI2MTgyLCAxLjY3MDYsIDIuMDgyNDMsIDIuNDkzNDUiLCBcCi0gICAgICAgICAgIjAuMTQyMTU2LCAwLjUzMjMzLCAwLjg1MzM3MiwgMS4yNTgyNCwgMS42Njc0MywgMi4wODI1LCAyLjQ5MzU2IiwgXAotICAgICAgICAgICIwLjE0MTk4OSwgMC41MzE5NDQsIDAuODUzNDc5LCAxLjI1OTgyLCAxLjY2NzM3LCAyLjA4MjI4LCAyLjQ4NzMyIiwgXAotICAgICAgICAgICIwLjE0MTk0LCAwLjUzMjAxMiwgMC44NTM1NjksIDEuMjU5NywgMS42Njg3MiwgMi4wODIzLCAyLjQ5MzQ5IiwgXAotICAgICAgICAgICIwLjE0MjAyMywgMC41MzE5NTksIDAuODUzNDY0LCAxLjI1OTU5LCAxLjY2NzA1LCAyLjA4MjM0LCAyLjQ4Nzk1IiwgXAotICAgICAgICAgICIwLjE0MjIzMiwgMC41MzIwMTUsIDAuODUzNDMxLCAxLjI1OTI1LCAxLjY2ODMsIDIuMDgyMzEsIDIuNDkzMzQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiTTEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjM0NzY2OCwgMC41NDg4MzMsIDAuNjkzNTAyLCAwLjg3MzAxMSwgMS4wNTIzMiwgMS4yMzE3NSwgMS40MTA4NiIsIFwKLSAgICAgICAgICAiMC4zNTk2ODUsIDAuNTYwODExLCAwLjcwNTM5NSwgMC44ODQ5MywgMS4wNjQyNywgMS4yNDM1OCwgMS40MjI4NiIsIFwKLSAgICAgICAgICAiMC4zNzQ0ODQsIDAuNTc1Njg5LCAwLjcyMDMwOCwgMC44OTk4NTMsIDEuMDc5MTUsIDEuMjU4NDgsIDEuNDM3NzMiLCBcCi0gICAgICAgICAgIjAuMzg5MDcyLCAwLjU5MDE4OCwgMC43MzQ3ODEsIDAuOTE0MzE1LCAxLjA5MzY3LCAxLjI3Mjk2LCAxLjQ1MjI0IiwgXAotICAgICAgICAgICIwLjQwMjQwOCwgMC42MDM1MTUsIDAuNzQ4MTE5LCAwLjkyNzY0NywgMS4xMDY5NiwgMS4yODYzMSwgMS40NjU1NyIsIFwKLSAgICAgICAgICAiMC40MjE1MzYsIDAuNjIyNjQsIDAuNzY3MjUxLCAwLjk0Njc3OCwgMS4xMjYxMSwgMS4zMDU0MywgMS40ODQ3IiwgXAotICAgICAgICAgICIwLjQzNjQ0NiwgMC42Mzc0MTMsIDAuNzgyMDAxLCAwLjk2MTU0LCAxLjE0MDg1LCAxLjMyMDE4LCAxLjQ5OTQ3Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEzMzQ2NiwgMC40NzczODEsIDAuNzYxMzU2LCAxLjEyMTI5LCAxLjQ4MTI1LCAxLjg0Mjc4LCAyLjIwOCIsIFwKLSAgICAgICAgICAiMC4xMzM1NDcsIDAuNDc3NDk2LCAwLjc2MTQzNCwgMS4xMTkyNiwgMS40ODM3NCwgMS44NDM0LCAyLjIxMjA2IiwgXAotICAgICAgICAgICIwLjEzMzU4NiwgMC40Nzc1MjcsIDAuNzYxMjQyLCAxLjEyMTQsIDEuNDgxMjMsIDEuODQzNSwgMi4yMTIiLCBcCi0gICAgICAgICAgIjAuMTMzNTM5LCAwLjQ3NzQ5MiwgMC43NjEzOTUsIDEuMTE5MjksIDEuNDgzODEsIDEuODQzNDMsIDIuMjEyMDIiLCBcCi0gICAgICAgICAgIjAuMTMzNTQ2LCAwLjQ3NzQ0OSwgMC43NjEzODIsIDEuMTE5MDEsIDEuNDgxMTUsIDEuODQzMzUsIDIuMjEyIiwgXAotICAgICAgICAgICIwLjEzMzU2MSwgMC40Nzc0NTMsIDAuNzYxMywgMS4xMjEsIDEuNDgzNDgsIDEuODQzMjUsIDIuMjExOTgiLCBcCi0gICAgICAgICAgIjAuMTMzNzE0LCAwLjQ3NzQ0OCwgMC43NjEzNDQsIDEuMTE5MTYsIDEuNDgxNjgsIDEuODQ3NTEsIDIuMjEyMDMiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzMxNzAxLCAwLjU1ODM2NywgMC43MjQ0MjMsIDAuOTMxMDY3LCAxLjEzNzU0LCAxLjM0Mzg3LCAxLjU1MDIyIiwgXAotICAgICAgICAgICIwLjM0Mzc1OCwgMC41NzAzNzgsIDAuNzM2NDI4LCAwLjk0MzAzMiwgMS4xNDk0OCwgMS4zNTU4OSwgMS41NjIxIiwgXAotICAgICAgICAgICIwLjM1OTU4MSwgMC41ODYwMzIsIDAuNzUyMTA4LCAwLjk1ODcwOCwgMS4xNjUyMiwgMS4zNzE0NSwgMS41Nzc4OCIsIFwKLSAgICAgICAgICAiMC4zNzQzMDEsIDAuNjAwNzYxLCAwLjc2NjgwNywgMC45NzM0MDMsIDEuMTc5ODUsIDEuMzg2MjcsIDEuNTkyNjQiLCBcCi0gICAgICAgICAgIjAuMzg5MjcyLCAwLjYxNTg3NiwgMC43ODE5MywgMC45ODg1MjYsIDEuMTk0OTcsIDEuNDAxNCwgMS42MDc3MiIsIFwKLSAgICAgICAgICAiMC40MTExMjgsIDAuNjM3ODA5LCAwLjgwMzg2MywgMS4wMTA0NiwgMS4yMTY4OSwgMS40MjMzMywgMS42Mjk2MyIsIFwKLSAgICAgICAgICAiMC40Mjg4OTcsIDAuNjU1NTU3LCAwLjgyMTYxMiwgMS4wMjgyMSwgMS4yMzQ2NCwgMS40NDEwOCwgMS42NDc0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE0MjIxNSwgMC41MzIxMzEsIDAuODUzODk0LCAxLjI1NzkyLCAxLjY2NjQsIDIuMDgyMzIsIDIuNDk0MDQiLCBcCi0gICAgICAgICAgIjAuMTQyMTk4LCAwLjUzMjEwOCwgMC44NTM3MjIsIDEuMjU5MDYsIDEuNjY4MjEsIDIuMDgyNDEsIDIuNDkzNSIsIFwKLSAgICAgICAgICAiMC4xNDIyODQsIDAuNTMyNDMyLCAwLjg1MzYxNCwgMS4yNTc0OSwgMS42NjgyNSwgMi4wNzc2NiwgMi40OTM3MiIsIFwKLSAgICAgICAgICAiMC4xNDIzMDcsIDAuNTMyMTQ0LCAwLjg1MzczNywgMS4yNjAxOSwgMS42NjkwOSwgMi4wODIzOSwgMi40OTM1OCIsIFwKLSAgICAgICAgICAiMC4xNDIwOTUsIDAuNTMyMTI2LCAwLjg1MzYwNywgMS4yNTkyOSwgMS42NjcsIDIuMDgyNDcsIDIuNDg5ODMiLCBcCi0gICAgICAgICAgIjAuMTQyMTYzLCAwLjUzMjA5NCwgMC44NTM1ODUsIDEuMjU5OTYsIDEuNjY3MTMsIDIuMDgyNDgsIDIuNDkwNTQiLCBcCi0gICAgICAgICAgIjAuMTQyMjE4LCAwLjUzMjEwNywgMC44NTM1NzgsIDEuMjU5NTMsIDEuNjY2ODIsIDIuMDgyNDksIDIuNDg4MzMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzI3NDA0LCAwLjUyODQ0MywgMC42NzMwMjksIDAuODUyNTcsIDEuMDMxOTQsIDEuMjExMjIsIDEuMzkwNDgiLCBcCi0gICAgICAgICAgIjAuMzM5MDE0LCAwLjU0MDA1OSwgMC42ODQ3MDQsIDAuODY0Mjg3LCAxLjA0MzY0LCAxLjIyMjg2LCAxLjQwMjE2IiwgXAotICAgICAgICAgICIwLjM1Mjk0NywgMC41NTM5MTEsIDAuNjk4NTY0LCAwLjg3ODEwNiwgMS4wNTc0MiwgMS4yMzY3NywgMS40MTYwMyIsIFwKLSAgICAgICAgICAiMC4zNjY0ODcsIDAuNTY3NjgsIDAuNzEyMzAyLCAwLjg5MTg3NCwgMS4wNzExNiwgMS4yNTA1MiwgMS40Mjk3MyIsIFwKLSAgICAgICAgICAiMC4zODAyMjksIDAuNTgxMzY1LCAwLjcyNTk4OCwgMC45MDU1MjUsIDEuMDg0ODQsIDEuMjY0MjEsIDEuNDQzNDYiLCBcCi0gICAgICAgICAgIjAuNDAyMjgxLCAwLjYwMzIzNywgMC43NDc4NjEsIDAuOTI3Mzc5LCAxLjEwNjc0LCAxLjI4NjEyLCAxLjQ2NTMyIiwgXAotICAgICAgICAgICIwLjQyMTE4OSwgMC42MjIyOCwgMC43NjY5MzQsIDAuOTQ2NDc0LCAxLjEyNTc4LCAxLjMwNTA3LCAxLjQ4NDQxIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEzMzk1NSwgMC40Nzc1NjEsIDAuNzYxNjYxLCAxLjEyMTQ5LCAxLjQ4NCwgMS44NDgxNywgMi4yMTIyMiIsIFwKLSAgICAgICAgICAiMC4xMzM5NjEsIDAuNDc3NTA2LCAwLjc2MTU3MywgMS4xMjE4LCAxLjQ4NDEzLCAxLjg0ODEzLCAyLjIxMjE5IiwgXAotICAgICAgICAgICIwLjEzMzg0MywgMC40Nzc0NjcsIDAuNzYxNTM0LCAxLjExOTUxLCAxLjQ4NDExLCAxLjg0ODEsIDIuMjEyMTUiLCBcCi0gICAgICAgICAgIjAuMTMzODc2LCAwLjQ3NzQ4MywgMC43NjE0OTIsIDEuMTIxNjYsIDEuNDgwOTEsIDEuODQ4MDIsIDIuMjEyMiIsIFwKLSAgICAgICAgICAiMC4xMzM2MDgsIDAuNDc3NTI4LCAwLjc2MTQ1MywgMS4xMjE0MywgMS40ODI5OSwgMS44NDgwNCwgMi4yMTIxMSIsIFwKLSAgICAgICAgICAiMC4xMzM3ODUsIDAuNDc3NDYsIDAuNzYxNTA3LCAxLjExOTYyLCAxLjQ4Mzk2LCAxLjg0ODAxLCAyLjIxMjEyIiwgXAotICAgICAgICAgICIwLjEzMzY0OCwgMC40Nzc0NjQsIDAuNzYxNDA1LCAxLjEyMTY3LCAxLjQ4MTU3LCAxLjg0NzQyLCAyLjIxMjE1Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMwNTYzLCAwLjUzMjE4MywgMC42OTgxODksIDAuOTA0NzU4LCAxLjExMTE4LCAxLjMxNzYxLCAxLjUyMzg5IiwgXAotICAgICAgICAgICIwLjMxNzMyNSwgMC41NDM3NjcsIDAuNzA5NzkzLCAwLjkxNjM4MywgMS4xMjI3NiwgMS4zMjkyMSwgMS41MzU0NSIsIFwKLSAgICAgICAgICAiMC4zMzA0NDcsIDAuNTU3MDYxLCAwLjcyMzA4MSwgMC45Mjk2NDksIDEuMTM2MDcsIDEuMzQyNDksIDEuNTQ4ODQiLCBcCi0gICAgICAgICAgIjAuMzQzMjI0LCAwLjU2OTcwNCwgMC43MzU3MjIsIDAuOTQyMjk2LCAxLjE0ODczLCAxLjM1NTEzLCAxLjU2MTM2IiwgXAotICAgICAgICAgICIwLjM1NTc1MSwgMC41ODIxMDgsIDAuNzQ4MTUsIDAuOTU0NzI4LCAxLjE2MTE1LCAxLjM2NzUyLCAxLjU3Mzg4IiwgXAotICAgICAgICAgICIwLjM3NTQ3NywgMC42MDE4NjksIDAuNzY3ODk5LCAwLjk3NDQ1OCwgMS4xODA4OSwgMS4zODczMiwgMS41OTM2IiwgXAotICAgICAgICAgICIwLjM5MjQ0MSwgMC42MTg5NzcsIDAuNzg1MDA3LCAwLjk5MTU4NCwgMS4xOTgwMSwgMS40MDQ0MywgMS42MTA3MSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNDIwNjEsIDAuNTMxOTY0LCAwLjg1MzQzNiwgMS4yNjE0NiwgMS42NzA5NCwgMi4wODIzLCAyLjQ5MzQzIiwgXAotICAgICAgICAgICIwLjE0MjE1MywgMC41MzIzNDIsIDAuODUzNjQxLCAxLjI2MDEyLCAxLjY3MDUzLCAyLjA4MjQ3LCAyLjQ5MzU4IiwgXAotICAgICAgICAgICIwLjE0MjAwOCwgMC41MzE5MzgsIDAuODUzNjI5LCAxLjI2MDc4LCAxLjY2ODQzLCAyLjA4MjI4LCAyLjQ5MzU0IiwgXAotICAgICAgICAgICIwLjE0MjE2MywgMC41MzIzMSwgMC44NTM1MDgsIDEuMjYwMDMsIDEuNjY4MzksIDIuMDgyMjMsIDIuNDkzNTciLCBcCi0gICAgICAgICAgIjAuMTQyMTUzLCAwLjUzMjMyNSwgMC44NTM2MDIsIDEuMjYwMjQsIDEuNjY4NzQsIDIuMDgxOTEsIDIuNDkzNSIsIFwKLSAgICAgICAgICAiMC4xNDIxNTcsIDAuNTMyMzc2LCAwLjg1MzUwMywgMS4yNTk2MSwgMS42Njc4MSwgMi4wODI0MywgMi40OTM1MiIsIFwKLSAgICAgICAgICAiMC4xNDIwODksIDAuNTMxOTcxLCAwLjg1MzQ2NCwgMS4yNjE4LCAxLjY2ODIsIDIuMDgyNDMsIDIuNDkzNDMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiWDIiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIwMzAxNCwgMC40MDIyMDYsIDAuNTQ2NDE5LCAwLjcyNTc1MiwgMC45MDQ5NzcsIDEuMDg0MjMsIDEuMjYzMjgiLCBcCi0gICAgICAgICAgIjAuMjEzOTY0LCAwLjQxMzEyMiwgMC41NTczNzksIDAuNzM2NjY1LCAwLjkxNTgzNSwgMS4wOTUwNSwgMS4yNzQyMiIsIFwKLSAgICAgICAgICAiMC4yMjc0NzgsIDAuNDI2NjQsIDAuNTcwODc2LCAwLjc1MDIsIDAuOTI5MzU4LCAxLjEwODcsIDEuMjg3NzUiLCBcCi0gICAgICAgICAgIjAuMjQwODIzLCAwLjQzOTg5OSwgMC41ODQxNjksIDAuNzYzNDg1LCAwLjk0MjY2NCwgMS4xMjE4OCwgMS4zMDEwNCIsIFwKLSAgICAgICAgICAiMC4yNTM5NDQsIDAuNDUyOTU4LCAwLjU5NzE0MiwgMC43NzY0NDEsIDAuOTU1NjY5LCAxLjEzNDk1LCAxLjMxMzk5IiwgXAotICAgICAgICAgICIwLjI3NDU5MiwgMC40NzM4MDEsIDAuNjE4MDI2LCAwLjc5NzMyMywgMC45NzY0ODcsIDEuMTU1NzgsIDEuMzM0NzQiLCBcCi0gICAgICAgICAgIjAuMjkyNzY5LCAwLjQ5MTg4NSwgMC42MzYxMDIsIDAuODE1NDA3LCAwLjk5NDU3NSwgMS4xNzM4NiwgMS4zNTI5MyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMzA4NTUsIDAuNDc0OTk0LCAwLjc1OTQwMywgMS4xMTcwOSwgMS40ODI0NiwgMS44NDEyOCwgMi4yMTA3IiwgXAotICAgICAgICAgICIwLjEzMDcxNCwgMC40NzQ5MjMsIDAuNzU5MjI3LCAxLjExNzIzLCAxLjQ3ODU5LCAxLjg0ODgxLCAyLjIxMDc4IiwgXAotICAgICAgICAgICIwLjEzMDc0NywgMC40NzQ5MywgMC43NTkzMDUsIDEuMTE3MDIsIDEuNDgxODQsIDEuODQxNDksIDIuMjEwNjUiLCBcCi0gICAgICAgICAgIjAuMTMwNzQ1LCAwLjQ3NDk2MSwgMC43NTkyNjQsIDEuMTE3MjEsIDEuNDc4ODIsIDEuODQ2MjIsIDIuMjEwNjkiLCBcCi0gICAgICAgICAgIjAuMTMwODEyLCAwLjQ3NDc2LCAwLjc1OTI0NCwgMS4xMTgxOCwgMS40ODIzMSwgMS44NDE1NSwgMi4yMTA2IiwgXAotICAgICAgICAgICIwLjEzMDYxMiwgMC40NzQ4MTQsIDAuNzU5MjMxLCAxLjExNzI0LCAxLjQ3OTcxLCAxLjg0OTU0LCAyLjIwOTcyIiwgXAotICAgICAgICAgICIwLjEzMDM2NiwgMC40NzQ3OSwgMC43NTkyMzEsIDEuMTE3MzMsIDEuNDc5ODMsIDEuODQ5MzQsIDIuMjA3MDUiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjAwMzMxLCAwLjQyNjE2MiwgMC41OTE5ODUsIDAuNzk4MzQ5LCAxLjAwNDcxLCAxLjIxMTA4LCAxLjQxNzI2IiwgXAotICAgICAgICAgICIwLjIxMDgwMiwgMC40MzY3MjIsIDAuNjAyNTQ1LCAwLjgwODk2MiwgMS4wMTUyOSwgMS4yMjE2NCwgMS40Mjc4MyIsIFwKLSAgICAgICAgICAiMC4yMjM5OTIsIDAuNDQ5NzAyLCAwLjYxNTU0OCwgMC44MjE5NjgsIDEuMDI4MzcsIDEuMjM0NDksIDEuNDQwODciLCBcCi0gICAgICAgICAgIjAuMjM2NjUzLCAwLjQ2MjU3LCAwLjYyODM4NiwgMC44MzQ4MDksIDEuMDQxMTQsIDEuMjQ3NDgsIDEuNDUzODMiLCBcCi0gICAgICAgICAgIjAuMjQ5MDEsIDAuNDc0OTU4LCAwLjY0MDgxNSwgMC44NDcyNDYsIDEuMDUzNjQsIDEuMjU5OTIsIDEuNDY2MTQiLCBcCi0gICAgICAgICAgIjAuMjY5MDQyLCAwLjQ5NDkxNiwgMC42NjA3NTUsIDAuODY3MTU2LCAxLjA3MzUxLCAxLjI3OTg4LCAxLjQ4NjA3IiwgXAotICAgICAgICAgICIwLjI4NjYxNCwgMC41MTIzLCAwLjY3ODE3LCAwLjg4NDYxNiwgMS4wOTA5LCAxLjI5NzE5LCAxLjUwMzUzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE0MDk0LCAwLjUzMTI1MywgMC44NTI3MjMsIDEuMjYwMzcsIDEuNjY1MTgsIDIuMDgxMzgsIDIuNDkyNDkiLCBcCi0gICAgICAgICAgIjAuMTQwNzMxLCAwLjUzMTI3MywgMC44NTI4NjYsIDEuMjU4MDUsIDEuNjY2ODYsIDIuMDgxMzgsIDIuNDg3MiIsIFwKLSAgICAgICAgICAiMC4xNDA5MDMsIDAuNTMxNjI4LCAwLjg1Mjc2MiwgMS4yNTgwMiwgMS42Njc0NSwgMi4wODA5NywgMi40OTI1MSIsIFwKLSAgICAgICAgICAiMC4xNDA3NTYsIDAuNTMxMjc5LCAwLjg1MjkxMSwgMS4yNTkwNSwgMS42NjgxMywgMi4wODEzNywgMi40ODQ2NiIsIFwKLSAgICAgICAgICAiMC4xNDA2MTEsIDAuNTMxMzc0LCAwLjg1MjY5OSwgMS4yNTc1NSwgMS42NjcyNiwgMi4wODEzNCwgMi40OTI1IiwgXAotICAgICAgICAgICIwLjE0MDM3MSwgMC41MzExODcsIDAuODUyNzU0LCAxLjI2MDc4LCAxLjY2NTI4LCAyLjA4MTM4LCAyLjQ5MjQ5IiwgXAotICAgICAgICAgICIwLjE0MDExMiwgMC41MzE0NTYsIDAuODUyNjg1LCAxLjI1NzA3LCAxLjY2NzMsIDIuMDc2NTQsIDIuNDkyNDkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiWDIiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIwODY1MSwgMC40MDkwOTQsIDAuNTUzNDU4LCAwLjczMjc4NSwgMC45MTE5NSwgMS4wOTEwNywgMS4yNzAzOSIsIFwKLSAgICAgICAgICAiMC4yMjA2MjEsIDAuNDIxMjYyLCAwLjU2NTYzNSwgMC43NDQ5NTgsIDAuOTI0MTIsIDEuMTAzNDIsIDEuMjgyNTciLCBcCi0gICAgICAgICAgIjAuMjM2MDY1LCAwLjQzNjM2MywgMC41ODA3NjIsIDAuNzYwMTMxLCAwLjkzOTMxNSwgMS4xMTg1MywgMS4yOTc3MiIsIFwKLSAgICAgICAgICAiMC4yNDk4ODksIDAuNDUwMzI5LCAwLjU5NDcxNiwgMC43NzQwNDYsIDAuOTUzMjEzLCAxLjEzMjUxLCAxLjMxMTUiLCBcCi0gICAgICAgICAgIjAuMjYzNzAxLCAwLjQ2Mzk4NSwgMC42MDgzODMsIDAuNzg3NzY1LCAwLjk2Njk2NSwgMS4xNDYxNywgMS4zMjUzNSIsIFwKLSAgICAgICAgICAiMC4yODM4MjMsIDAuNDg0MjUxLCAwLjYyODU2MiwgMC44MDc5MDUsIDAuOTg3MTc2LCAxLjE2NjMxLCAxLjM0NTUiLCBcCi0gICAgICAgICAgIjAuMjk5NzUsIDAuNTAwMTU3LCAwLjY0NDU1LCAwLjgyMzg3OSwgMS4wMDMwNSwgMS4xODIzNSwgMS4zNjEzNCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMzE5OTgsIDAuNDc2MzMsIDAuNzYwMzAxLCAxLjExODE4LCAxLjQ4MDQ2LCAxLjg0NTc2LCAyLjIxNDMyIiwgXAotICAgICAgICAgICIwLjEzMTczOCwgMC40NzYzNjgsIDAuNzYwMzE1LCAxLjExOCwgMS40ODAyNCwgMS44NDE4OSwgMi4yMTQ0OSIsIFwKLSAgICAgICAgICAiMC4xMzIxNDcsIDAuNDc2Mzk2LCAwLjc2MDMyMSwgMS4xMTc3MSwgMS40ODI2NCwgMS44NDIxMiwgMi4yMTA5MyIsIFwKLSAgICAgICAgICAiMC4xMzIwMjIsIDAuNDc2MzY2LCAwLjc2MDI4NCwgMS4xMTgxMywgMS40ODAzNSwgMS44NDIwNCwgMi4yMTAzIiwgXAotICAgICAgICAgICIwLjEzMjA2NCwgMC40NzYzMzcsIDAuNzYwMjgxLCAxLjExODcxLCAxLjQ4MjY5LCAxLjg0MjIxLCAyLjIxMDkyIiwgXAotICAgICAgICAgICIwLjEzMTkxNSwgMC40NzYzMDYsIDAuNzYwMjgzLCAxLjExODg0LCAxLjQ4MjkzLCAxLjg0MjIzLCAyLjIxMDkxIiwgXAotICAgICAgICAgICIwLjEzMTYxOSwgMC40NzYyMTIsIDAuNzYwMjI1LCAxLjExODExLCAxLjQ4MDI1LCAxLjg0MjA5LCAyLjIxMDQxIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIxNDgwOCwgMC40Mzk0MywgMC42MDUxOTQsIDAuODExNjIyLCAxLjAxNzkyLCAxLjIyNDMzLCAxLjQzMDUiLCBcCi0gICAgICAgICAgIjAuMjI3MDg3LCAwLjQ1MTg2LCAwLjYxNzYxNywgMC44MjQwNDEsIDEuMDMwNDUsIDEuMjM2NjksIDEuNDQyOTYiLCBcCi0gICAgICAgICAgIjAuMjQyODI5LCAwLjQ2NzY5MywgMC42MzM0MjUsIDAuODM5ODQ0LCAxLjA0NjIsIDEuMjUyNTEsIDEuNDU4NzEiLCBcCi0gICAgICAgICAgIjAuMjU4MDU0LCAwLjQ4MjgwMywgMC42NDg1NDEsIDAuODU0OTU5LCAxLjA2MTMxLCAxLjI2NzYzLCAxLjQ3NDE2IiwgXAotICAgICAgICAgICIwLjI3MzA1MSwgMC40OTc2NjUsIDAuNjYzNDQ3LCAwLjg2OTg3MiwgMS4wNzYxNSwgMS4yODI1LCAxLjQ4ODc4IiwgXAotICAgICAgICAgICIwLjI5NTQ3MSwgMC41MjAyMDEsIDAuNjg1OTksIDAuODkyNDE4LCAxLjA5ODY5LCAxLjMwNTE0LCAxLjUxMTMzIiwgXAotICAgICAgICAgICIwLjMxMzQ4NywgMC41MzgxNjYsIDAuNzAzOTIsIDAuOTEwMzM1LCAxLjExNjY4LCAxLjMyMzAzLCAxLjUyOTIyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEzOTk1MywgMC41MzA0ODYsIDAuODUyMjI4LCAxLjI2MDE1LCAxLjY3MDU0LCAyLjA4MTE1LCAyLjQ5MjM2IiwgXAotICAgICAgICAgICIwLjEzOTg3NCwgMC41MzAxMzUsIDAuODUyMjkxLCAxLjI1NTc1LCAxLjY2NDEyLCAyLjA4MTEyLCAyLjQ4OTIiLCBcCi0gICAgICAgICAgIjAuMTM5NzU5LCAwLjUzMDA4MywgMC44NTIyMjEsIDEuMjU4MzQsIDEuNjY0LCAyLjA4MTE0LCAyLjQ4OTk2IiwgXAotICAgICAgICAgICIwLjEzOTkxNywgMC41MzAwNywgMC44NTIxODQsIDEuMjU3MDMsIDEuNjY4MDcsIDIuMDgxMTQsIDIuNDg4MDkiLCBcCi0gICAgICAgICAgIjAuMTM5ODgyLCAwLjUzMDQ2OSwgMC44NTE5MzYsIDEuMjU4NDksIDEuNjY3MjksIDIuMDc4MzEsIDIuNDkyMzYiLCBcCi0gICAgICAgICAgIjAuMTM5Nzg0LCAwLjUyOTk4LCAwLjg1MTkwNiwgMS4yNTg4MywgMS42NzAwMywgMi4wODA5MiwgMi40OTIzNiIsIFwKLSAgICAgICAgICAiMC4xMzk4MDksIDAuNTMwMDU0LCAwLjg1MjA5OCwgMS4yNjA2NCwgMS42NjUwNywgMi4wODExNSwgMi40OTIzNSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzI4LCAwLjAwMzM0NSwgMC4wMDMzNTcsIDAuMDAzMzY1LCAwLjAwMzM2OSwgMC4wMDMzNzEsIDAuMDAzMzc0IiwgXAotICAgICAgICAgICIwLjAwMzI1OSwgMC4wMDMzMjMsIDAuMDAzMzM2LCAwLjAwMzM0NCwgMC4wMDMzNDgsIDAuMDAzMzUyLCAwLjAwMzM1MiIsIFwKLSAgICAgICAgICAiMC4wMDMyNDksIDAuMDAzMzEzLCAwLjAwMzMyNiwgMC4wMDMzMzQsIDAuMDAzMzM3LCAwLjAwMzM0LCAwLjAwMzM0MiIsIFwKLSAgICAgICAgICAiMC4wMDMyNDIsIDAuMDAzMzA2LCAwLjAwMzMxOSwgMC4wMDMzMjcsIDAuMDAzMzMxLCAwLjAwMzMzMywgMC4wMDMzMzUiLCBcCi0gICAgICAgICAgIjAuMDAzMjM2LCAwLjAwMzMsIDAuMDAzMzEzLCAwLjAwMzMyMSwgMC4wMDMzMjUsIDAuMDAzMzI4LCAwLjAwMzMzIiwgXAotICAgICAgICAgICIwLjAwMzIzLCAwLjAwMzI5MiwgMC4wMDMzMDYsIDAuMDAzMzE0LCAwLjAwMzMxOSwgMC4wMDMzMjIsIDAuMDAzMzIzIiwgXAotICAgICAgICAgICIwLjAwMzIyNiwgMC4wMDMyODgsIDAuMDAzMzAyLCAwLjAwMzMxLCAwLjAwMzMxNSwgMC4wMDMzMTcsIDAuMDAzMzIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDcwODEsIDAuMDA3MTY0LCAwLjAwNzE4MSwgMC4wMDcxOTEsIDAuMDA3MTk2LCAwLjAwNzE5OSwgMC4wMDcyMDEiLCBcCi0gICAgICAgICAgIjAuMDA3MDcxLCAwLjAwNzE1NCwgMC4wMDcxNzEsIDAuMDA3MTgsIDAuMDA3MTg2LCAwLjAwNzE4OSwgMC4wMDcxOTEiLCBcCi0gICAgICAgICAgIjAuMDA3MDY1LCAwLjAwNzE0OCwgMC4wMDcxNjUsIDAuMDA3MTc1LCAwLjAwNzE4LCAwLjAwNzE4NCwgMC4wMDcxODUiLCBcCi0gICAgICAgICAgIjAuMDA3MDYxLCAwLjAwNzE0NCwgMC4wMDcxNjIsIDAuMDA3MTcxLCAwLjAwNzE3NywgMC4wMDcxOCwgMC4wMDcxODIiLCBcCi0gICAgICAgICAgIjAuMDA3MDU5LCAwLjAwNzE0MSwgMC4wMDcxNTgsIDAuMDA3MTY4LCAwLjAwNzE3NCwgMC4wMDcxNzcsIDAuMDA3MTc5IiwgXAotICAgICAgICAgICIwLjAwNzA1NSwgMC4wMDcxMzYsIDAuMDA3MTU0LCAwLjAwNzE2NCwgMC4wMDcxNywgMC4wMDcxNzMsIDAuMDA3MTc1IiwgXAotICAgICAgICAgICIwLjAwNzA1MiwgMC4wMDcxMzMsIDAuMDA3MTUxLCAwLjAwNzE2MSwgMC4wMDcxNjcsIDAuMDA3MTcxLCAwLjAwNzE3MyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIk0wIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQyNzQsIDAuMDA0MzM4LCAwLjAwNDM1MSwgMC4wMDQzNTksIDAuMDA0MzYzLCAwLjAwNDM2NiwgMC4wMDQzNjciLCBcCi0gICAgICAgICAgIjAuMDA0MjY5LCAwLjAwNDMzMywgMC4wMDQzNDYsIDAuMDA0MzU0LCAwLjAwNDM1OCwgMC4wMDQzNiwgMC4wMDQzNjMiLCBcCi0gICAgICAgICAgIjAuMDA0MjY2LCAwLjAwNDMzLCAwLjAwNDM0MywgMC4wMDQzNSwgMC4wMDQzNTUsIDAuMDA0MzU3LCAwLjAwNDM1OSIsIFwKLSAgICAgICAgICAiMC4wMDQyNjUsIDAuMDA0MzI4LCAwLjAwNDM0MiwgMC4wMDQzNSwgMC4wMDQzNTMsIDAuMDA0MzU1LCAwLjAwNDM1NyIsIFwKLSAgICAgICAgICAiMC4wMDQyNjQsIDAuMDA0MzI4LCAwLjAwNDM0LCAwLjAwNDM0OSwgMC4wMDQzNTIsIDAuMDA0MzU0LCAwLjAwNDM1NiIsIFwKLSAgICAgICAgICAiMC4wMDQyNjMsIDAuMDA0MzI3LCAwLjAwNDMzOSwgMC4wMDQzNDgsIDAuMDA0MzUxLCAwLjAwNDM1MywgMC4wMDQzNTYiLCBcCi0gICAgICAgICAgIjAuMDA0MjYzLCAwLjAwNDMyNiwgMC4wMDQzMzksIDAuMDA0MzQ3LCAwLjAwNDM1MSwgMC4wMDQzNTMsIDAuMDA0MzU1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0NDQ1LCAwLjAwNDUyNywgMC4wMDQ1NDUsIDAuMDA0NTU1LCAwLjAwNDU2LCAwLjAwNDU2MywgMC4wMDQ1NjYiLCBcCi0gICAgICAgICAgIjAuMDA0NDM1LCAwLjAwNDUxNywgMC4wMDQ1MzQsIDAuMDA0NTQ0LCAwLjAwNDU1LCAwLjAwNDU1MywgMC4wMDQ1NTYiLCBcCi0gICAgICAgICAgIjAuMDA0NDI4LCAwLjAwNDUxLCAwLjAwNDUyOCwgMC4wMDQ1MzgsIDAuMDA0NTQzLCAwLjAwNDU0NiwgMC4wMDQ1NDkiLCBcCi0gICAgICAgICAgIjAuMDA0NDI1LCAwLjAwNDUwNywgMC4wMDQ1MjQsIDAuMDA0NTM0LCAwLjAwNDUzOSwgMC4wMDQ1NDMsIDAuMDA0NTQ1IiwgXAotICAgICAgICAgICIwLjAwNDQyMywgMC4wMDQ1MDUsIDAuMDA0NTIzLCAwLjAwNDUzMywgMC4wMDQ1MzgsIDAuMDA0NTQxLCAwLjAwNDU0NCIsIFwKLSAgICAgICAgICAiMC4wMDQ0MjQsIDAuMDA0NTA1LCAwLjAwNDUyMywgMC4wMDQ1MzMsIDAuMDA0NTM4LCAwLjAwNDU0MiwgMC4wMDQ1NDQiLCBcCi0gICAgICAgICAgIjAuMDA0NDI0LCAwLjAwNDUwNiwgMC4wMDQ1MjMsIDAuMDA0NTMzLCAwLjAwNDUzOSwgMC4wMDQ1NDIsIDAuMDA0NTQ1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiTTEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDI3OSwgMC4wMDQzNDEsIDAuMDA0MzU1LCAwLjAwNDM2MywgMC4wMDQzNjcsIDAuMDA0MzY5LCAwLjAwNDM3MSIsIFwKLSAgICAgICAgICAiMC4wMDQyNzQsIDAuMDA0MzM2LCAwLjAwNDM1LCAwLjAwNDM1NywgMC4wMDQzNjIsIDAuMDA0MzY1LCAwLjAwNDM2NyIsIFwKLSAgICAgICAgICAiMC4wMDQyNzEsIDAuMDA0MzMzLCAwLjAwNDM0NiwgMC4wMDQzNTQsIDAuMDA0MzU5LCAwLjAwNDM2MSwgMC4wMDQzNjMiLCBcCi0gICAgICAgICAgIjAuMDA0MjY5LCAwLjAwNDMzMSwgMC4wMDQzNDUsIDAuMDA0MzUzLCAwLjAwNDM1NywgMC4wMDQzNiwgMC4wMDQzNjIiLCBcCi0gICAgICAgICAgIjAuMDA0MjY5LCAwLjAwNDMzMSwgMC4wMDQzNDQsIDAuMDA0MzUyLCAwLjAwNDM1NiwgMC4wMDQzNTksIDAuMDA0MzYxIiwgXAotICAgICAgICAgICIwLjAwNDI2OCwgMC4wMDQzMzEsIDAuMDA0MzQ0LCAwLjAwNDM1MSwgMC4wMDQzNTYsIDAuMDA0MzU5LCAwLjAwNDM2IiwgXAotICAgICAgICAgICIwLjAwNDI2OCwgMC4wMDQzMzEsIDAuMDA0MzQ0LCAwLjAwNDM1MiwgMC4wMDQzNTcsIDAuMDA0MzU5LCAwLjAwNDM2MSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDc1NCwgMC4wMDQ4MzcsIDAuMDA0ODU1LCAwLjAwNDg2NiwgMC4wMDQ4NzEsIDAuMDA0ODc1LCAwLjAwNDg3OCIsIFwKLSAgICAgICAgICAiMC4wMDQ3NDMsIDAuMDA0ODI2LCAwLjAwNDg0NCwgMC4wMDQ4NTQsIDAuMDA0ODYsIDAuMDA0ODY0LCAwLjAwNDg2NiIsIFwKLSAgICAgICAgICAiMC4wMDQ3MzcsIDAuMDA0ODIsIDAuMDA0ODM4LCAwLjAwNDg0OSwgMC4wMDQ4NTUsIDAuMDA0ODU4LCAwLjAwNDg2MSIsIFwKLSAgICAgICAgICAiMC4wMDQ3MzQsIDAuMDA0ODE3LCAwLjAwNDgzNSwgMC4wMDQ4NDYsIDAuMDA0ODUxLCAwLjAwNDg1NSwgMC4wMDQ4NTgiLCBcCi0gICAgICAgICAgIjAuMDA0NzMzLCAwLjAwNDgxNiwgMC4wMDQ4MzQsIDAuMDA0ODQ1LCAwLjAwNDg1LCAwLjAwNDg1NCwgMC4wMDQ4NTYiLCBcCi0gICAgICAgICAgIjAuMDA0NzM0LCAwLjAwNDgxNywgMC4wMDQ4MzUsIDAuMDA0ODQ1LCAwLjAwNDg1MSwgMC4wMDQ4NTUsIDAuMDA0ODU3IiwgXAotICAgICAgICAgICIwLjAwNDczNSwgMC4wMDQ4MTcsIDAuMDA0ODM1LCAwLjAwNDg0NiwgMC4wMDQ4NTIsIDAuMDA0ODU1LCAwLjAwNDg1OCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlMiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzQ5NywgMC4wMDM1NiwgMC4wMDM1NzMsIDAuMDAzNTgxLCAwLjAwMzU4NSwgMC4wMDM1ODksIDAuMDAzNTg5IiwgXAotICAgICAgICAgICIwLjAwMzQ3NiwgMC4wMDM1NCwgMC4wMDM1NTMsIDAuMDAzNTYxLCAwLjAwMzU2NSwgMC4wMDM1NjcsIDAuMDAzNTciLCBcCi0gICAgICAgICAgIjAuMDAzNDY2LCAwLjAwMzUyOSwgMC4wMDM1NDIsIDAuMDAzNTUsIDAuMDAzNTU0LCAwLjAwMzU1NywgMC4wMDM1NTkiLCBcCi0gICAgICAgICAgIjAuMDAzNDU5LCAwLjAwMzUyMywgMC4wMDM1MzUsIDAuMDAzNTQzLCAwLjAwMzU0NywgMC4wMDM1NSwgMC4wMDM1NTIiLCBcCi0gICAgICAgICAgIjAuMDAzNDU0LCAwLjAwMzUxNywgMC4wMDM1MywgMC4wMDM1MzgsIDAuMDAzNTQyLCAwLjAwMzU0NSwgMC4wMDM1NDciLCBcCi0gICAgICAgICAgIjAuMDAzNDQ3LCAwLjAwMzUwOSwgMC4wMDM1MjMsIDAuMDAzNTMyLCAwLjAwMzUzNiwgMC4wMDM1MzgsIDAuMDAzNTQiLCBcCi0gICAgICAgICAgIjAuMDAzNDQyLCAwLjAwMzUwNCwgMC4wMDM1MTgsIDAuMDAzNTI3LCAwLjAwMzUzMSwgMC4wMDM1MzQsIDAuMDAzNTM2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2Nzc3LCAwLjAwNjg2LCAwLjAwNjg3NiwgMC4wMDY4ODYsIDAuMDA2ODkxLCAwLjAwNjg5NCwgMC4wMDY4OTciLCBcCi0gICAgICAgICAgIjAuMDA2NzY3LCAwLjAwNjg1LCAwLjAwNjg2NywgMC4wMDY4NzYsIDAuMDA2ODgxLCAwLjAwNjg4NCwgMC4wMDY4ODciLCBcCi0gICAgICAgICAgIjAuMDA2NzYxLCAwLjAwNjg0NSwgMC4wMDY4NjEsIDAuMDA2ODcxLCAwLjAwNjg3NiwgMC4wMDY4OCwgMC4wMDY4ODIiLCBcCi0gICAgICAgICAgIjAuMDA2NzU4LCAwLjAwNjg0MSwgMC4wMDY4NTgsIDAuMDA2ODY3LCAwLjAwNjg3MiwgMC4wMDY4NzYsIDAuMDA2ODc4IiwgXAotICAgICAgICAgICIwLjAwNjc1NSwgMC4wMDY4MzcsIDAuMDA2ODU0LCAwLjAwNjg2NCwgMC4wMDY4NywgMC4wMDY4NzMsIDAuMDA2ODc1IiwgXAotICAgICAgICAgICIwLjAwNjc1MSwgMC4wMDY4MzIsIDAuMDA2ODUsIDAuMDA2ODYsIDAuMDA2ODY1LCAwLjAwNjg2OSwgMC4wMDY4NzEiLCBcCi0gICAgICAgICAgIjAuMDA2NzQ4LCAwLjAwNjgyOSwgMC4wMDY4NDcsIDAuMDA2ODU3LCAwLjAwNjg2MywgMC4wMDY4NjcsIDAuMDA2ODY5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiWDIiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzUzNiwgMC4wMDM1OTEsIDAuMDAzNTk5LCAwLjAwMzYwMywgMC4wMDM2MDUsIDAuMDAzNjA2LCAwLjAwMzYwNyIsIFwKLSAgICAgICAgICAiMC4wMDM1MzksIDAuMDAzNTk0LCAwLjAwMzYwMywgMC4wMDM2MDcsIDAuMDAzNjEsIDAuMDAzNjEsIDAuMDAzNjExIiwgXAotICAgICAgICAgICIwLjAwMzU1OSwgMC4wMDM2MTMsIDAuMDAzNjIyLCAwLjAwMzYyNiwgMC4wMDM2MywgMC4wMDM2MywgMC4wMDM2MzIiLCBcCi0gICAgICAgICAgIjAuMDAzNTY4LCAwLjAwMzYyMiwgMC4wMDM2MywgMC4wMDM2MzUsIDAuMDAzNjM4LCAwLjAwMzYzOSwgMC4wMDM2NCIsIFwKLSAgICAgICAgICAiMC4wMDM1ODMsIDAuMDAzNjM2LCAwLjAwMzY0NCwgMC4wMDM2NDksIDAuMDAzNjUyLCAwLjAwMzY1NCwgMC4wMDM2NTUiLCBcCi0gICAgICAgICAgIjAuMDAzNjAyLCAwLjAwMzY1NCwgMC4wMDM2NjMsIDAuMDAzNjY5LCAwLjAwMzY3MiwgMC4wMDM2NzQsIDAuMDAzNjc1IiwgXAotICAgICAgICAgICIwLjAwMzYxNywgMC4wMDM2NjgsIDAuMDAzNjc4LCAwLjAwMzY4NCwgMC4wMDM2ODcsIDAuMDAzNjg5LCAwLjAwMzY5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyODA4LCAwLjAwMjg4NSwgMC4wMDI4OTcsIDAuMDAyOTAzLCAwLjAwMjkwNiwgMC4wMDI5MDgsIDAuMDAyOTEiLCBcCi0gICAgICAgICAgIjAuMDAyODA0LCAwLjAwMjg4LCAwLjAwMjg5MiwgMC4wMDI4OTgsIDAuMDAyOTAyLCAwLjAwMjkwNCwgMC4wMDI5MDUiLCBcCi0gICAgICAgICAgIjAuMDAyODE3LCAwLjAwMjg5MywgMC4wMDI5MDUsIDAuMDAyOTEyLCAwLjAwMjkxNSwgMC4wMDI5MTcsIDAuMDAyOTE5IiwgXAotICAgICAgICAgICIwLjAwMjgyNywgMC4wMDI5MDEsIDAuMDAyOTEzLCAwLjAwMjkyMSwgMC4wMDI5MjQsIDAuMDAyOTI3LCAwLjAwMjkyOCIsIFwKLSAgICAgICAgICAiMC4wMDI4NDIsIDAuMDAyOTE0LCAwLjAwMjkyNywgMC4wMDI5MzUsIDAuMDAyOTM4LCAwLjAwMjk0MSwgMC4wMDI5NDMiLCBcCi0gICAgICAgICAgIjAuMDAyODYyLCAwLjAwMjkzMywgMC4wMDI5NDYsIDAuMDAyOTU0LCAwLjAwMjk1OCwgMC4wMDI5NjEsIDAuMDAyOTYzIiwgXAotICAgICAgICAgICIwLjAwMjg3NiwgMC4wMDI5NDcsIDAuMDAyOTYxLCAwLjAwMjk2OSwgMC4wMDI5NzMsIDAuMDAyOTc2LCAwLjAwMjk3OCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUykgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxMzQxMDc7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxMzM3MjI7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxMzQxMDc7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNTY3LCAwLjAwMDU1NCwgMC4wMDA1NDYsIDAuMDAwNTQyLCAwLjAwMDUzOCwgMC4wMDA1MzQsIDAuMDAwNTMyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyMDE5LCAwLjAwMjAxMiwgMC4wMDIwMDcsIDAuMDAyMDA2LCAwLjAwMjAwNSwgMC4wMDIwMDMsIDAuMDAyMDAzIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihYMikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxMDY5MTI7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxMDY4NTk7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxMDY5MTI7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMDY2LCAwLjAwMDA0NywgMC4wMDAwMzcsIDAuMDAwMDMzLCAwLjAwMDAzMiwgMC4wMDAwMywgMC4wMDAwMyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTQwOSwgMC4wMDEzOTcsIDAuMDAxMzksIDAuMDAxMzg3LCAwLjAwMTM4NSwgMC4wMDEzODMsIDAuMDAxMzgzIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IEJVRlg4ICoKLSAqIC0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChCVUZYOCkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjMzNTc2NDsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNTM0NTc7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNTMzNTU7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNTM0NTc7Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMS4wMzEzNDsKLSAgICBmdW5jdGlvbiA6ICJBIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2NjA1LCAwLjEzMjQ1MywgMC4xOTU4ODMsIDAuMjQxMTY5LCAwLjMxMzUyLCAwLjM3Njk2NiwgMC40Njc0IiwgXAotICAgICAgICAgICIwLjA3NzYzOSwgMC4xNDQwOTksIDAuMjA3NTQ0LCAwLjI1MjgyOSwgMC4zMjUyMSwgMC4zODg1MTgsIDAuNDc4ODc4IiwgXAotICAgICAgICAgICIwLjA5Mjc3NSwgMC4xNTkyODksIDAuMjIyNzU4LCAwLjI2ODAyLCAwLjM0MDM5NywgMC40MDM4MzIsIDAuNDk0MjA4IiwgXAotICAgICAgICAgICIwLjEwNzY1NCwgMC4xNzQxOTgsIDAuMjM3NjcyLCAwLjI4Mjk1NSwgMC4zNTUzMiwgMC40MTg3NDksIDAuNTA5MTM3IiwgXAotICAgICAgICAgICIwLjEyMjY0OSwgMC4xODkxNDcsIDAuMjUyNjE3LCAwLjI5NzkxNCwgMC4zNzAyNzcsIDAuNDMzNzE2LCAwLjUyNDA5MiIsIFwKLSAgICAgICAgICAiMC4xNDUyMTksIDAuMjEyMDM2LCAwLjI3NTQ3MywgMC4zMjA3NDcsIDAuMzkzMTQ1LCAwLjQ1NjUyMiwgMC41NDY5NjIiLCBcCi0gICAgICAgICAgIjAuMTYzODI5LCAwLjIzMDY1NCwgMC4yOTQxMTEsIDAuMzM5MzU1LCAwLjQxMTc3NSwgMC40NzUwOCwgMC41NjU1OTIiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzkwMTQsIDAuMTYyNDQ5LCAwLjI4OTQyOCwgMC4zODEzNDQsIDAuNTI5MTk3LCAwLjY1NjY2MSwgMC44NDA2ODkiLCBcCi0gICAgICAgICAgIjAuMDM4OTk1LCAwLjE2MjM5LCAwLjI4OTU0LCAwLjM4MTA0OCwgMC41Mjc4NDEsIDAuNjU3MTA3LCAwLjg0MjIxOSIsIFwKLSAgICAgICAgICAiMC4wMzg5NjksIDAuMTYyMDg3LCAwLjI4OTQ1MywgMC4zODE5MTMsIDAuNTI5MTg0LCAwLjY1NjY3NywgMC44NDI2OTMiLCBcCi0gICAgICAgICAgIjAuMDM5MTAxLCAwLjE2MjI2NSwgMC4yODk0OTEsIDAuMzgyNjIzLCAwLjUyOTE4OCwgMC42NTY3MTQsIDAuODQyNDE4IiwgXAotICAgICAgICAgICIwLjAzOTQ3LCAwLjE2MjQ3MywgMC4yODk2OTcsIDAuMzgyNTgzLCAwLjUyOTE4OSwgMC42NTY2NjksIDAuODQyNjczIiwgXAotICAgICAgICAgICIwLjA0MTYyNywgMC4xNjI4OTcsIDAuMjg5ODAxLCAwLjM4MTQzNiwgMC41MjkyNTgsIDAuNjU3MTEzLCAwLjg0MjcwMSIsIFwKLSAgICAgICAgICAiMC4wNDM3MDksIDAuMTYzNzI4LCAwLjI5MDUwNiwgMC4zODE0LCAwLjUzMDA3OSwgMC42NTc5ODUsIDAuODQwMzkyIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY1MTg4LCAwLjE0MjEzMywgMC4yMTY1ODksIDAuMjY5NzU2LCAwLjM1NDc4MywgMC40MjkxMzgsIDAuNTM1NDQ0IiwgXAotICAgICAgICAgICIwLjA3NjY2LCAwLjE1MzYxNCwgMC4yMjgxMTcsIDAuMjgxMjQ4LCAwLjM2NjI0MSwgMC40NDA3NjUsIDAuNTQ2ODI1IiwgXAotICAgICAgICAgICIwLjA5MTYzNCwgMC4xNjg1ODIsIDAuMjQzMDk0LCAwLjI5NjI1NSwgMC4zODEzNTEsIDAuNDU1NjMxLCAwLjU2MTk3OCIsIFwKLSAgICAgICAgICAiMC4xMDYzMDEsIDAuMTgzMzQsIDAuMjU3ODM2LCAwLjMxMTAyMSwgMC4zOTYxMjcsIDAuNDcwNDc3LCAwLjU3Njc0OCIsIFwKLSAgICAgICAgICAiMC4xMjA3MiwgMC4xOTc3MjEsIDAuMjcyMjc4LCAwLjMyNTQyNSwgMC40MTA0NTIsIDAuNDg0OTIxLCAwLjU5MTE0OCIsIFwKLSAgICAgICAgICAiMC4xNDIwNzMsIDAuMjE5MDU4LCAwLjI5MzU5OCwgMC4zNDY3NjcsIDAuNDMxODAyLCAwLjUwNjIxOSwgMC42MTI1NjEiLCBcCi0gICAgICAgICAgIjAuMTU4OTA3LCAwLjIzNjQ4MywgMC4zMTA5OTEsIDAuMzY0MTQ3LCAwLjQ0OTIwMSwgMC41MjM1NzIsIDAuNjI5ODA4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQxMDA5LCAwLjE4NDg3LCAwLjMzMjM1LCAwLjQzNjk2NCwgMC42MDYyNjUsIDAuNzUzNzM0LCAwLjk2NjkzMyIsIFwKLSAgICAgICAgICAiMC4wNDA4NzEsIDAuMTg0NjE0LCAwLjMzMjU0NywgMC40MzgzNTgsIDAuNjA3OTU1LCAwLjc1NDUyMywgMC45Njg2NDUiLCBcCi0gICAgICAgICAgIjAuMDQwOTA4LCAwLjE4NDg2NiwgMC4zMzI1MzgsIDAuNDM4Mzg3LCAwLjYwNjgzMiwgMC43NTY0OTUsIDAuOTY2ODQ4IiwgXAotICAgICAgICAgICIwLjA0MTA3NiwgMC4xODQ1MTksIDAuMzMyNDQyLCAwLjQzNzM1LCAwLjYwNjgwOSwgMC43NTQzNjYsIDAuOTY2ODc5IiwgXAotICAgICAgICAgICIwLjA0MTQ1OCwgMC4xODQ5NjMsIDAuMzMyNTg0LCAwLjQzODM3NCwgMC42MDc5ODQsIDAuNzU1NjQ5LCAwLjk2NjM0MyIsIFwKLSAgICAgICAgICAiMC4wNDMxNDksIDAuMTg1MjIzLCAwLjMzMjE1LCAwLjQzODQzOSwgMC42MDY0NjksIDAuNzUzNTM4LCAwLjk2NzczOSIsIFwKLSAgICAgICAgICAiMC4wNDUxNTgsIDAuMTg1NzA5LCAwLjMzMjc5MywgMC40Mzc0MTQsIDAuNjA1OTUsIDAuNzU2NTEsIDAuOTY1OTc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDY2NjksIDAuMDA2ODY2LCAwLjAwNjg5MSwgMC4wMDY4OTksIDAuMDA2OTA2LCAwLjAwNjkwOSwgMC4wMDY5MTIiLCBcCi0gICAgICAgICAgIjAuMDA2NTk5LCAwLjAwNjgxMSwgMC4wMDY4MzYsIDAuMDA2ODQ1LCAwLjAwNjg1MiwgMC4wMDY4NjQsIDAuMDA2ODYiLCBcCi0gICAgICAgICAgIjAuMDA2NTM5LCAwLjAwNjc0OCwgMC4wMDY3OTYsIDAuMDA2ODA1LCAwLjAwNjgxMywgMC4wMDY4MTgsIDAuMDA2ODIzIiwgXAotICAgICAgICAgICIwLjAwNjQ4MSwgMC4wMDY3MDksIDAuMDA2NzU4LCAwLjAwNjc3MywgMC4wMDY3ODYsIDAuMDA2NzkzLCAwLjAwNjc5NyIsIFwKLSAgICAgICAgICAiMC4wMDY0NDcsIDAuMDA2NjgyLCAwLjAwNjczMSwgMC4wMDY3NTEsIDAuMDA2NzY3LCAwLjAwNjc3NCwgMC4wMDY3ODIiLCBcCi0gICAgICAgICAgIjAuMDA2NDEsIDAuMDA2NjQ5LCAwLjAwNjcxMywgMC4wMDY3MywgMC4wMDY3NTEsIDAuMDA2NzU5LCAwLjAwNjc3MSIsIFwKLSAgICAgICAgICAiMC4wMDY0MTksIDAuMDA2NjI2LCAwLjAwNjY5MiwgMC4wMDY3MTUsIDAuMDA2NzM4LCAwLjAwNjc1MSwgMC4wMDY3NjQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwODQxNSwgMC4wMDg2OTIsIDAuMDA4NzI5LCAwLjAwODc0LCAwLjAwODc1LCAwLjAwODc1NSwgMC4wMDg3NiIsIFwKLSAgICAgICAgICAiMC4wMDgzNTgsIDAuMDA4NjQxLCAwLjAwODY4NSwgMC4wMDg2OTgsIDAuMDA4NzEsIDAuMDA4NzE2LCAwLjAwODcyMSIsIFwKLSAgICAgICAgICAiMC4wMDgyOTcsIDAuMDA4NTksIDAuMDA4NjQ0LCAwLjAwODY2MSwgMC4wMDg2NzYsIDAuMDA4NjgzLCAwLjAwODY5IiwgXAotICAgICAgICAgICIwLjAwODIyOSwgMC4wMDg1NDEsIDAuMDA4NjA4LCAwLjAwODYzLCAwLjAwODY0OSwgMC4wMDg2NiwgMC4wMDg2NjkiLCBcCi0gICAgICAgICAgIjAuMDA4MTk2LCAwLjAwODUwOSwgMC4wMDg1ODMsIDAuMDA4NjA4LCAwLjAwODYzMSwgMC4wMDg2NDQsIDAuMDA4NjU1IiwgXAotICAgICAgICAgICIwLjAwODE1MywgMC4wMDg0NTIsIDAuMDA4NTQ3LCAwLjAwODU3OSwgMC4wMDg2MDYsIDAuMDA4NjIxLCAwLjAwODYzNiIsIFwKLSAgICAgICAgICAiMC4wMDgxNCwgMC4wMDg0MzEsIDAuMDA4NTE4LCAwLjAwODU1NCwgMC4wMDg1ODcsIDAuMDA4NjA0LCAwLjAwODYyMSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IENMS0FORDJYMTIgKgotICogLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoQ0xLQU5EMlgxMikgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjYzNzYzNTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAzMjc3MTg7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAzMjc3MTg7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAzMjU5NTI7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwOTA4LCAwLjAwMDkwNywgMC4wMDA5MDcsIDAuMDAwOTA3LCAwLjAwMDkwNywgMC4wMDA5MDcsIDAuMDAwOTA3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwOTcsIDAuMDAwOTI0LCAwLjAwMDkxOCwgMC4wMDA5MTcsIDAuMDAwOTE1LCAwLjAwMDkxNSwgMC4wMDA5MTQiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMzMxNjY7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAzMzE2NjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDMzMTU2NjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAwMDQsIDAuMDAwMDAzLCAwLjAwMDAwMiwgMC4wMDAwMDQsIDAuMDAwMDAyLCAwLjAwMDAwMywgMC4wMDAwMDMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDExNTUsIDAuMDAxMTU2LCAwLjAwMTE1NSwgMC4wMDExNTcsIDAuMDAxMTU2LCAwLjAwMTE1NiwgMC4wMDExNTYiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMS41Mjk2MTsKLSAgICBmdW5jdGlvbiA6ICIoQSBCKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc3OTQsIDAuMDgzMDI3LCAwLjEwNzIxNywgMC4xMjYyMTUsIDAuMTUwNjg0LCAwLjE5OTE1NCwgMC4yMjkzMzQiLCBcCi0gICAgICAgICAgIjAuMDg5NTQ5LCAwLjA5NDcwNCwgMC4xMTg1NzYsIDAuMTM3NTk1LCAwLjE2MjExOCwgMC4yMTA1NiwgMC4yNDA3NDUiLCBcCi0gICAgICAgICAgIjAuMTAzMDYsIDAuMTA4MjM4LCAwLjEzMjM2LCAwLjE1MTI4OSwgMC4xNzU4NDIsIDAuMjI0Mjc2LCAwLjI1NDQ4NCIsIFwKLSAgICAgICAgICAiMC4xMTY0NDEsIDAuMTIxNjA1LCAwLjE0NTY5OCwgMC4xNjQ2OTYsIDAuMTg5MjM3LCAwLjIzNzY4NSwgMC4yNjc4NzIiLCBcCi0gICAgICAgICAgIjAuMTI5NTU3LCAwLjEzNDczLCAwLjE1ODg1OCwgMC4xNzc4LCAwLjIwMjMzOSwgMC4yNTA3OTQsIDAuMjgwOTg0IiwgXAotICAgICAgICAgICIwLjE1MDAwOCwgMC4xNTUyMjksIDAuMTc5NDc1LCAwLjE5ODQ2NSwgMC4yMjI5NzQsIDAuMjcxNDMxLCAwLjMwMTY0IiwgXAotICAgICAgICAgICIwLjE2NjcxOSwgMC4xNzIwNjksIDAuMTk2MzkyLCAwLjIxNTUxMywgMC4yNDAwNjgsIDAuMjg4NTEzLCAwLjMxODcxMiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzYyODgsIDAuMDQzNDE3LCAwLjA4MjI2OCwgMC4xMTcxNDQsIDAuMTY0NTE4LCAwLjI2MTE4NywgMC4zMjA3NjUiLCBcCi0gICAgICAgICAgIjAuMDM2MDY0LCAwLjA0MzE1LCAwLjA4MjQwNiwgMC4xMTcyMywgMC4xNjQ0NzQsIDAuMjYxMTkzLCAwLjMyMTQ3IiwgXAotICAgICAgICAgICIwLjAzNjA5OSwgMC4wNDMyMiwgMC4wODIyMjEsIDAuMTE3MTA4LCAwLjE2NDM4MiwgMC4yNjExNjgsIDAuMzIxMjk1IiwgXAotICAgICAgICAgICIwLjAzNjAzMSwgMC4wNDMxNTQsIDAuMDgyMTAzLCAwLjExNzAzNywgMC4xNjQzNDcsIDAuMjYxMTMxLCAwLjMyMTUxIiwgXAotICAgICAgICAgICIwLjAzNjM4OSwgMC4wNDMzNzgsIDAuMDgyMjY3LCAwLjExNzEwNywgMC4xNjQzNiwgMC4yNjExNjUsIDAuMzIxMzQyIiwgXAotICAgICAgICAgICIwLjAzNzA3OCwgMC4wNDM5NTMsIDAuMDgyNjEzLCAwLjExNzQzNiwgMC4xNjQ3MTYsIDAuMjYxMjE5LCAwLjMyMjA2NCIsIFwKLSAgICAgICAgICAiMC4wMzg1MjYsIDAuMDQ1MjEsIDAuMDgzODMsIDAuMTE4MjU1LCAwLjE2NTIzOSwgMC4yNjE0NDgsIDAuMzIyMTMzIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3NjQ0LCAwLjA4MjAzNywgMC4xMDkxMTUsIDAuMTMxMTgsIDAuMTU5OTU1LCAwLjIxNzE4LCAwLjI1Mjg2NSIsIFwKLSAgICAgICAgICAiMC4wODc2OCwgMC4wOTMyNzQsIDAuMTIwMzY1LCAwLjE0MjQxOCwgMC4xNzEyMTEsIDAuMjI4NDUyLCAwLjI2NDEzNiIsIFwKLSAgICAgICAgICAiMC4xMDIzMjMsIDAuMTA3ODgzLCAwLjEzNTA1NCwgMC4xNTcwMzksIDAuMTg1ODc3LCAwLjI0MzEyMywgMC4yNzg4MjQiLCBcCi0gICAgICAgICAgIjAuMTE3MTQzLCAwLjEyMjY5OSwgMC4xNDk3NDEsIDAuMTcxODEzLCAwLjIwMDY1NywgMC4yNTc5MTcsIDAuMjkzNjIzIiwgXAotICAgICAgICAgICIwLjEzMTc5OSwgMC4xMzc0MSwgMC4xNjQ0NDksIDAuMTg2NDcxLCAwLjIxNTMzMiwgMC4yNzI2MTIsIDAuMzA4MzAyIiwgXAotICAgICAgICAgICIwLjE1NDc1NiwgMC4xNjAyMzMsIDAuMTg3NDYyLCAwLjIwOTUxNCwgMC4yMzgzNTcsIDAuMjk1NjMxLCAwLjMzMTMyNSIsIFwKLSAgICAgICAgICAiMC4xNzM2MzIsIDAuMTc5MjU4LCAwLjIwNjUwNiwgMC4yMjg2MTEsIDAuMjU3NDcyLCAwLjMxNDczMiwgMC4zNTA0MjYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM3NTIzLCAwLjA0NTU1MSwgMC4wOTA4OTEsIDAuMTMxNzgzLCAwLjE4Njk1NywgMC4yOTg3NCwgMC4zNjg4MDMiLCBcCi0gICAgICAgICAgIjAuMDM3NTQzLCAwLjA0NTU3MywgMC4wOTA4OTQsIDAuMTMxNjgyLCAwLjE4NzA2MSwgMC4yOTgyNTYsIDAuMzY5Nzg2IiwgXAotICAgICAgICAgICIwLjAzNzUwNywgMC4wNDU1MzIsIDAuMDkwOTg4LCAwLjEzMTY4MywgMC4xODY5NzYsIDAuMjk4NTkyLCAwLjM2ODczIiwgXAotICAgICAgICAgICIwLjAzNzUwMSwgMC4wNDU1MzcsIDAuMDkwODc2LCAwLjEzMTY3NiwgMC4xODY5OTMsIDAuMjk4OTAxLCAwLjM2ODUyNiIsIFwKLSAgICAgICAgICAiMC4wMzc2NjMsIDAuMDQ1NzIzLCAwLjA5MDk2LCAwLjEzMTgxNywgMC4xODY5MzksIDAuMjk5MzQsIDAuMzY5NzczIiwgXAotICAgICAgICAgICIwLjAzODUzMiwgMC4wNDY2NjUsIDAuMDkxMzYzLCAwLjEzMjA3NCwgMC4xODcyMDUsIDAuMjk4MjQzLCAwLjM2ODYwNSIsIFwKLSAgICAgICAgICAiMC4wNDAzMjksIDAuMDQ3ODk4LCAwLjA5MjAyNiwgMC4xMzI0MDksIDAuMTg3NDk0LCAwLjI5OTU1NSwgMC4zNjg2MTciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDczMjU4LCAwLjA3ODQxNSwgMC4xMDI0NTYsIDAuMTIxNDgxLCAwLjE0NTk0OSwgMC4xOTQ0MjEsIDAuMjI0NjA2IiwgXAotICAgICAgICAgICIwLjA4MzQwNiwgMC4wODg2MSwgMC4xMTI3MTMsIDAuMTMxNzQ3LCAwLjE1NjIyMywgMC4yMDQ2NywgMC4yMzQ4NjUiLCBcCi0gICAgICAgICAgIjAuMDk2ODU4LCAwLjEwMTk4MiwgMC4xMjYwODUsIDAuMTQ1MTAxLCAwLjE2OTY0NCwgMC4yMTgwOTYsIDAuMjQ4MjkiLCBcCi0gICAgICAgICAgIjAuMTEwMzg2LCAwLjExNTUzNSwgMC4xMzk2ODIsIDAuMTU4NzA4LCAwLjE4MzIwOCwgMC4yMzE2NiwgMC4yNjE4NTMiLCBcCi0gICAgICAgICAgIjAuMTIzOTc4LCAwLjEyOTExNywgMC4xNTI4NDQsIDAuMTcxODI1LCAwLjE5NjM1OCwgMC4yNDQ3OTIsIDAuMjc1MDAyIiwgXAotICAgICAgICAgICIwLjE0NDQ5NSwgMC4xNDk2NzUsIDAuMTc0MDI1LCAwLjE5MzA3NywgMC4yMTczNDMsIDAuMjY1NzkzLCAwLjI5NjAwMyIsIFwKLSAgICAgICAgICAiMC4xNjEyMDUsIDAuMTY2MjAyLCAwLjE5MDg0OSwgMC4yMTAwMTUsIDAuMjM0NTQyLCAwLjI4MzAzOSwgMC4zMTMyNTQiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM2MDU5LCAwLjA0MzE0LCAwLjA4MjIyMiwgMC4xMTcwOCwgMC4xNjQ0ODcsIDAuMjYxMTUzLCAwLjMyMTMxNyIsIFwKLSAgICAgICAgICAiMC4wMzYxODUsIDAuMDQzMjYsIDAuMDgyMjE2LCAwLjExNzEzMywgMC4xNjQ0MywgMC4yNjA1OTMsIDAuMzIxMDcyIiwgXAotICAgICAgICAgICIwLjAzNjEyNSwgMC4wNDMxODYsIDAuMDgyMTQ1LCAwLjExNzA2LCAwLjE2NDQ0OCwgMC4yNjExMjQsIDAuMzIxOTEiLCBcCi0gICAgICAgICAgIjAuMDM2MzA0LCAwLjA0MzMxMiwgMC4wODIyMzMsIDAuMTE3MDg5LCAwLjE2NDM5LCAwLjI2MTE1MywgMC4zMjE4OSIsIFwKLSAgICAgICAgICAiMC4wMzY0MjEsIDAuMDQzNDI5LCAwLjA4MjgxMiwgMC4xMTc0ODYsIDAuMTY0NjY4LCAwLjI2MTE1NywgMC4zMjEzMDUiLCBcCi0gICAgICAgICAgIjAuMDM4NTc3LCAwLjA0NTE4OCwgMC4wODMxOTksIDAuMTE3Nzc2LCAwLjE2NDk5NSwgMC4yNjA5MjQsIDAuMzIxNjE0IiwgXAotICAgICAgICAgICIwLjA0MDIwNywgMC4wNDc4NzQsIDAuMDg0NzMxLCAwLjExODg3NywgMC4xNjU2MSwgMC4yNjExNTUsIDAuMzIyMjYyIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3MTE0LCAwLjA3NjY0NiwgMC4xMDM0MzYsIDAuMTI1MzY1LCAwLjE1NDA0NiwgMC4yMTExNDMsIDAuMjQ2NzY3IiwgXAotICAgICAgICAgICIwLjA4MjUzMiwgMC4wODgwNTIsIDAuMTE0ODU2LCAwLjEzNjc5OSwgMC4xNjU1MiwgMC4yMjI1OTksIDAuMjU4MjQ1IiwgXAotICAgICAgICAgICIwLjA5NzAyNywgMC4xMDI1MjksIDAuMTI5NDMsIDAuMTUxMjk1LCAwLjE4MDAyMSwgMC4yMzcxNDgsIDAuMjcyNzY0IiwgXAotICAgICAgICAgICIwLjExMTcyNSwgMC4xMTcyNTEsIDAuMTQ0MDU3LCAwLjE2NjAwNiwgMC4xOTQ3MjgsIDAuMjUxODUyLCAwLjI4NzQ5OCIsIFwKLSAgICAgICAgICAiMC4xMjYxNzgsIDAuMTMxNjg0LCAwLjE1ODI2NiwgMC4xODAxNzcsIDAuMjA4OTMxLCAwLjI2NjA2NSwgMC4zMDE3MDciLCBcCi0gICAgICAgICAgIjAuMTQ4NTExLCAwLjE1NDA1LCAwLjE4MTA0OSwgMC4yMDI5ODgsIDAuMjMxNzI3LCAwLjI4ODg0OCwgMC4zMjQ0ODgiLCBcCi0gICAgICAgICAgIjAuMTY2NTc5LCAwLjE3MjQwNSwgMC4xOTk0MDQsIDAuMjIxMjIyLCAwLjI1MDAwNSwgMC4zMDcxMiwgMC4zNDI3NiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzY3NzUsIDAuMDQ0ODE2LCAwLjA5MDIzNSwgMC4xMzEwMDEsIDAuMTg2MzU1LCAwLjI5ODU4MSwgMC4zNjgyNTIiLCBcCi0gICAgICAgICAgIjAuMDM2ODUxLCAwLjA0NDg5NSwgMC4wOTAxOTQsIDAuMTMwOTcsIDAuMTg2Mzc3LCAwLjI5ODUyMywgMC4zNjkxMTIiLCBcCi0gICAgICAgICAgIjAuMDM2ODYxLCAwLjA0NDg0OSwgMC4wOTAyOCwgMC4xMzExMDEsIDAuMTg2Mzg2LCAwLjI5NzQ4NiwgMC4zNjc3OSIsIFwKLSAgICAgICAgICAiMC4wMzY4OTYsIDAuMDQ0OTQ3LCAwLjA5MDIzNCwgMC4xMzA5NzcsIDAuMTg2MzUxLCAwLjI5ODU2MiwgMC4zNjg0MjIiLCBcCi0gICAgICAgICAgIjAuMDM3MTg1LCAwLjA0NTE3NSwgMC4wOTA3NDMsIDAuMTMxMzA2LCAwLjE4NjQwOCwgMC4yOTg2NzQsIDAuMzY3OTg4IiwgXAotICAgICAgICAgICIwLjAzODUzOCwgMC4wNDYzMDYsIDAuMDkwOTg1LCAwLjEzMTUxMiwgMC4xODY1NzYsIDAuMjk4MTgsIDAuMzY5MTM4IiwgXAotICAgICAgICAgICIwLjA0MDQ5NywgMC4wNDgxNTcsIDAuMDkyMzkyLCAwLjEzMjQ2MiwgMC4xODcwNjMsIDAuMjk4ODQ1LCAwLjM2ODkwMSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMTQ0NSwgMC4wMTE1MTcsIDAuMDExNzMyLCAwLjAxMTgwNSwgMC4wMTE4NTMsIDAuMDExODk2LCAwLjAxMTkwNSIsIFwKLSAgICAgICAgICAiMC4wMTEzOTIsIDAuMDExNDY4LCAwLjAxMTY3LCAwLjAxMTc0NywgMC4wMTE3OTgsIDAuMDExODQyLCAwLjAxMTg1MSIsIFwKLSAgICAgICAgICAiMC4wMTEzMjcsIDAuMDExNCwgMC4wMTE2MTMsIDAuMDExNjkxLCAwLjAxMTc0NCwgMC4wMTE3OTEsIDAuMDExODA2IiwgXAotICAgICAgICAgICIwLjAxMTI3OCwgMC4wMTEzNDcsIDAuMDExNTU3LCAwLjAxMTYzOCwgMC4wMTE2OTYsIDAuMDExNzUsIDAuMDExNzY3IiwgXAotICAgICAgICAgICIwLjAxMTIyNCwgMC4wMTEyOTEsIDAuMDExNTAxLCAwLjAxMTU4OCwgMC4wMTE2NTIsIDAuMDExNzExLCAwLjAxMTczNSIsIFwKLSAgICAgICAgICAiMC4wMTExODksIDAuMDExMjUyLCAwLjAxMTQ1LCAwLjAxMTUzNSwgMC4wMTE2MDQsIDAuMDExNjczLCAwLjAxMTY5NyIsIFwKLSAgICAgICAgICAiMC4wMTExNzcsIDAuMDExMjE3LCAwLjAxMTM5NCwgMC4wMTE0ODcsIDAuMDExNTYyLCAwLjAxMTY0LCAwLjAxMTY2NyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxNjMyMSwgMC4wMTY0MTcsIDAuMDE2Njk2LCAwLjAxNjc5NywgMC4wMTY4NjcsIDAuMDE2OTMyLCAwLjAxNjk1NCIsIFwKLSAgICAgICAgICAiMC4wMTYyMTQsIDAuMDE2MzA3LCAwLjAxNjU4NSwgMC4wMTY2OSwgMC4wMTY3NjUsIDAuMDE2ODMzLCAwLjAxNjg1NiIsIFwKLSAgICAgICAgICAiMC4wMTYxMzQsIDAuMDE2MjE5LCAwLjAxNjQ4NSwgMC4wMTY1OTUsIDAuMDE2Njc1LCAwLjAxNjc1NSwgMC4wMTY3ODIiLCBcCi0gICAgICAgICAgIjAuMDE2MDY2LCAwLjAxNjE0NCwgMC4wMTYzOTksIDAuMDE2NTE0LCAwLjAxNjYwMywgMC4wMTY2OTMsIDAuMDE2NzIzIiwgXAotICAgICAgICAgICIwLjAxNjAxLCAwLjAxNjA4MiwgMC4wMTYzMzIsIDAuMDE2NDQ5LCAwLjAxNjU0NCwgMC4wMTY2NDUsIDAuMDE2NjgxIiwgXAotICAgICAgICAgICIwLjAxNTk0NCwgMC4wMTYwMTMsIDAuMDE2MjU4LCAwLjAxNjM3OCwgMC4wMTY0NzksIDAuMDE2NTkxLCAwLjAxNjYzMyIsIFwKLSAgICAgICAgICAiMC4wMTU5MjEsIDAuMDE1OTgxLCAwLjAxNjIxMywgMC4wMTYzMzIsIDAuMDE2NDM2LCAwLjAxNjU1MywgMC4wMTY1OTgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTE0NDcsIDAuMDExNTI0LCAwLjAxMTczMywgMC4wMTE4MDYsIDAuMDExODUxLCAwLjAxMTg5OSwgMC4wMTE5MTYiLCBcCi0gICAgICAgICAgIjAuMDExMzQ4LCAwLjAxMTQyMywgMC4wMTE2MzgsIDAuMDExNzEyLCAwLjAxMTc2NywgMC4wMTE4MTUsIDAuMDExODI5IiwgXAotICAgICAgICAgICIwLjAxMTI2OCwgMC4wMTEzMzYsIDAuMDExNTQyLCAwLjAxMTYyNCwgMC4wMTE2ODMsIDAuMDExNzQsIDAuMDExNzU4IiwgXAotICAgICAgICAgICIwLjAxMTIwOCwgMC4wMTEyNjksIDAuMDExNDY1LCAwLjAxMTU1LCAwLjAxMTYxNSwgMC4wMTE2ODEsIDAuMDExNzA0IiwgXAotICAgICAgICAgICIwLjAxMTE1MywgMC4wMTEyMTIsIDAuMDExMzk3LCAwLjAxMTQ4OSwgMC4wMTE1NjMsIDAuMDExNjMzLCAwLjAxMTY2NCIsIFwKLSAgICAgICAgICAiMC4wMTExMTksIDAuMDExMTY5LCAwLjAxMTM1MSwgMC4wMTE0NDMsIDAuMDExNTExLCAwLjAxMTU5OSwgMC4wMTE2MjMiLCBcCi0gICAgICAgICAgIjAuMDExMTE3LCAwLjAxMTE1MSwgMC4wMTEzMTksIDAuMDExNDEsIDAuMDExNDkxLCAwLjAxMTU3NSwgMC4wMTE2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE0NDU3LCAwLjAxNDU1NywgMC4wMTQ4MzIsIDAuMDE0OTI2LCAwLjAxNDk5LCAwLjAxNTA0OSwgMC4wMTUwNjciLCBcCi0gICAgICAgICAgIjAuMDE0MzQzLCAwLjAxNDQ0LCAwLjAxNDcyMiwgMC4wMTQ4MjQsIDAuMDE0ODk0LCAwLjAxNDk1NiwgMC4wMTQ5NzYiLCBcCi0gICAgICAgICAgIjAuMDE0MjE2LCAwLjAxNDMwNSwgMC4wMTQ1NzksIDAuMDE0Njg5LCAwLjAxNDc2OCwgMC4wMTQ4NDQsIDAuMDE0ODY5IiwgXAotICAgICAgICAgICIwLjAxNDEyMywgMC4wMTQyMDMsIDAuMDE0NDY1LCAwLjAxNDU4LCAwLjAxNDY2OCwgMC4wMTQ3NTcsIDAuMDE0Nzg3IiwgXAotICAgICAgICAgICIwLjAxNDA0OSwgMC4wMTQxMjUsIDAuMDE0MzYxLCAwLjAxNDQ4NiwgMC4wMTQ1ODUsIDAuMDE0NjksIDAuMDE0NzI3IiwgXAotICAgICAgICAgICIwLjAxNDAxMywgMC4wMTQwNzcsIDAuMDE0MywgMC4wMTQ0MjgsIDAuMDE0NTI4LCAwLjAxNDYzOCwgMC4wMTQ2NzkiLCBcCi0gICAgICAgICAgIjAuMDEzOTYyLCAwLjAxNDAzNCwgMC4wMTQyNDYsIDAuMDE0MzcxLCAwLjAxNDQ3NiwgMC4wMTQ1ODQsIDAuMDE0NjMiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IENMS0FORDJYMyAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKENMS0FORDJYMykgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjE3MjI2ODsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxMjQ3MjE7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxMjQ3MjE7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxMjQxNDM7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjk4LCAwLjAwMDI5OCwgMC4wMDAyOTgsIDAuMDAwMjk4LCAwLjAwMDI5OCwgMC4wMDAyOTcsIDAuMDAwMjk4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzIsIDAuMDAwMzA0LCAwLjAwMDMwMiwgMC4wMDAzMDEsIDAuMDAwMzAxLCAwLjAwMDMwMSwgMC4wMDAzIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDExNjE0OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTE2MTQ7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxMTYxMzI7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMDA4LCAwLjAwMDAwOCwgMC4wMDAwMDgsIDAuMDAwMDA4LCAwLjAwMDAwOCwgMC4wMDAwMDgsIDAuMDAwMDA4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzgxLCAwLjAwMDM4MSwgMC4wMDAzODEsIDAuMDAwMzgxLCAwLjAwMDM4MSwgMC4wMDAzODEsIDAuMDAwMzgxIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMzg1OTM5OwotICAgIGZ1bmN0aW9uIDogIihBIEIpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5MDgzLCAwLjI2MTg2NywgMC40MzE3MywgMC41NTMwNDIsIDAuNzQ3MTI5LCAwLjkxNjY1MywgMS4xNTkyMSIsIFwKLSAgICAgICAgICAiMC4xMDIzNDIsIDAuMjczNDA2LCAwLjQ0MzA2MSwgMC41NjQ0LCAwLjc1ODU2LCAwLjkyODEyMiwgMS4xNzA4MiIsIFwKLSAgICAgICAgICAiMC4xMTU4OTQsIDAuMjg2OTY1LCAwLjQ1NjgzNiwgMC41Nzc5NzcsIDAuNzcyMTM4LCAwLjk0MTc5NSwgMS4xODQzMSIsIFwKLSAgICAgICAgICAiMC4xMjkzODMsIDAuMzAwNDY1LCAwLjQ3MDM0NSwgMC41OTE0NjYsIDAuNzg1NjI2LCAwLjk1NTIyOSwgMS4xOTc3MSIsIFwKLSAgICAgICAgICAiMC4xNDIyNjYsIDAuMzEzMzcxLCAwLjQ4MzExMSwgMC42MDQ0MDUsIDAuNzk4NTA1LCAwLjk2ODA5OSwgMS4yMTEwMSIsIFwKLSAgICAgICAgICAiMC4xNjIxOTcsIDAuMzMzNDc3LCAwLjUwMzM4NywgMC42MjQ1MjcsIDAuODE4NjgxLCAwLjk4ODMwMiwgMS4yMzA4MyIsIFwKLSAgICAgICAgICAiMC4xNzg3MDUsIDAuMzUwMDAyLCAwLjUxOTgxLCAwLjY0MTA0NCwgMC44MzUwNzEsIDEuMDA0OCwgMS4yNDczMyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2ODIwNCwgMC40MDY3MTEsIDAuNzUxMDExLCAwLjk5NzcwMiwgMS4zOTE3NCwgMS43MzYyOCwgMi4yMzQ3IiwgXAotICAgICAgICAgICIwLjA2ODE2MiwgMC40MDcwMjcsIDAuNzUwMzcyLCAxLjAwMDIyLCAxLjM5MTgzLCAxLjc0MDYxLCAyLjIzMzIxIiwgXAotICAgICAgICAgICIwLjA2ODExOSwgMC40MDc5NDMsIDAuNzUxNDEzLCAwLjk5OTg4OSwgMS4zOTE3OSwgMS43MzU5NywgMi4yMjgyMiIsIFwKLSAgICAgICAgICAiMC4wNjgxMzUsIDAuNDA4MDMzLCAwLjc1MTM3NiwgMS4wMDAyNCwgMS4zOTE3NywgMS43MzYyOCwgMi4yMjg4MyIsIFwKLSAgICAgICAgICAiMC4wNjgzMjMsIDAuNDA2OTQ5LCAwLjc1MzIyNywgMC45OTc0NjksIDEuMzkxOTEsIDEuNzM2MjYsIDIuMjMxNDMiLCBcCi0gICAgICAgICAgIjAuMDY5MjI2LCAwLjQwNzk2NiwgMC43NTEzODQsIDAuOTk5NzQzLCAxLjM5MTc3LCAxLjczNjE4LCAyLjIyODQiLCBcCi0gICAgICAgICAgIjAuMDcwMDMyLCAwLjQwNzM2LCAwLjc1MTgzNSwgMS4wMDAyMywgMS4zOTE0OCwgMS43NDA3NiwgMi4yMjg1OCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5MTczMywgMC4yODc3NSwgMC40ODI0MTQsIDAuNjIxNDExLCAwLjg0MzgwMywgMS4wMzgzMSwgMS4zMTYyMSIsIFwKLSAgICAgICAgICAiMC4xMDMyNDcsIDAuMjk5Mjc1LCAwLjQ5Mzk2MiwgMC42MzI5NTIsIDAuODU1MzEyLCAxLjA0OTg0LCAxLjMyNzczIiwgXAotICAgICAgICAgICIwLjExNzg2NiwgMC4zMTM5MjQsIDAuNTA4NjA5LCAwLjY0NzY3NCwgMC44Njk5NTQsIDEuMDY0NDksIDEuMzQyMzkiLCBcCi0gICAgICAgICAgIjAuMTMyNTk1LCAwLjMyODcwNSwgMC41MjM0MTIsIDAuNjYyNCwgMC44ODQ3NTYsIDEuMDc5MjgsIDEuMzU3MTkiLCBcCi0gICAgICAgICAgIjAuMTQ3MTI1LCAwLjM0MzI2MSwgMC41Mzc5NzcsIDAuNjc2OTg1LCAwLjg5OTM0OCwgMS4wOTM5MiwgMS4zNzE3NyIsIFwKLSAgICAgICAgICAiMC4xNjk2OTksIDAuMzY1OTE2LCAwLjU2MDYyMiwgMC42OTk2MzUsIDAuOTIyMDA2LCAxLjExNjU1LCAxLjM5NDQzIiwgXAotICAgICAgICAgICIwLjE4Nzg3NSwgMC4zODQwNzksIDAuNTc4Nzc4LCAwLjcxNzc4LCAwLjk0MDE1LCAxLjEzNDcsIDEuNDEyNTkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzM3MzYsIDAuNDU3MTM2LCAwLjg0MzUwMywgMS4xMTk5MiwgMS41NjM5MiwgMS45NDk3OSwgMi41MDMwNSIsIFwKLSAgICAgICAgICAiMC4wNzM3MzMsIDAuNDU3MTYyLCAwLjg0NDM5NiwgMS4xMjAxNCwgMS41NjQzOSwgMS45NDkzOSwgMi41MDI1MSIsIFwKLSAgICAgICAgICAiMC4wNzM3NDQsIDAuNDU3MTI3LCAwLjg0MzU0OSwgMS4xMTgzNywgMS41NjIzMywgMS45NDkyMywgMi41MDI0NiIsIFwKLSAgICAgICAgICAiMC4wNzM3NjMsIDAuNDU3MTMxLCAwLjg0NDM3MSwgMS4xMjE1LCAxLjU2MjU4LCAxLjk1Mjg5LCAyLjUwMjE4IiwgXAotICAgICAgICAgICIwLjA3Mzk2NCwgMC40NTY1ODEsIDAuODQzNTQ3LCAxLjEyMTAzLCAxLjU2MzMxLCAxLjk1MTkyLCAyLjUwMzEyIiwgXAotICAgICAgICAgICIwLjA3NDUzNCwgMC40NTY4NjksIDAuODQzMzA2LCAxLjEyMDk2LCAxLjU2Mzc1LCAxLjk1MTIxLCAyLjUwNzEiLCBcCi0gICAgICAgICAgIjAuMDc1NzM4LCAwLjQ1NjQyLCAwLjg0NDU5MywgMS4xMjAwNiwgMS41NjI2NCwgMS45NTI1MiwgMi41MDM0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg2Mzc1LCAwLjI1NzQxLCAwLjQyNzIwMSwgMC41NDg0MjQsIDAuNzQyNzQ5LCAwLjkxMjE1OCwgMS4xNTQ2NiIsIFwKLSAgICAgICAgICAiMC4wOTY2NDksIDAuMjY3NzI1LCAwLjQzNzU5OCwgMC41NTg3MzgsIDAuNzUyNTAxLCAwLjkyMjc5NSwgMS4xNjUxMyIsIFwKLSAgICAgICAgICAiMC4xMTAyNiwgMC4yODE0MTcsIDAuNDUxMDczLCAwLjU3MjQzOCwgMC43NjY2NTIsIDAuOTM2MjQ5LCAxLjE3ODgzIiwgXAotICAgICAgICAgICIwLjEyMzU4NCwgMC4yOTQ3NjEsIDAuNDY0NjQ2LCAwLjU4NTc3LCAwLjc3OTU5MSwgMC45NDk1NDksIDEuMTkyMDciLCBcCi0gICAgICAgICAgIjAuMTM2OTc2LCAwLjMwODE0MSwgMC40NzgwMzUsIDAuNTk5MTU5LCAwLjc5MzM2MiwgMC45NjI5MjgsIDEuMjA1NDIiLCBcCi0gICAgICAgICAgIjAuMTU2OTgsIDAuMzI4MjA4LCAwLjQ5ODA0MiwgMC42MTkzMDMsIDAuODEzNDc2LCAwLjk4MzMwOCwgMS4yMjU3OSIsIFwKLSAgICAgICAgICAiMC4xNzI4MTIsIDAuMzQ0MjQyLCAwLjUxMzk5NywgMC42MzUyODYsIDAuODI5NTY4LCAwLjk5OTQyMywgMS4yNDE3NCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2ODI1LCAwLjQwNzAzLCAwLjc1MDQxMSwgMS4wMDAyNywgMS4zOTE3MiwgMS43MzYyNywgMi4yMzQ1IiwgXAotICAgICAgICAgICIwLjA2ODE2OCwgMC40MDc4MTIsIDAuNzUxNDkzLCAwLjk5OTg4MywgMS4zOTM2MywgMS43MzY1OCwgMi4yMjk1IiwgXAotICAgICAgICAgICIwLjA2ODA3MSwgMC40MDc5MDIsIDAuNzUwMTgsIDEuMDAwMiwgMS4zOTE3MywgMS43MzYwNiwgMi4yMjk1NSIsIFwKLSAgICAgICAgICAiMC4wNjgzNjUsIDAuNDA2ODE3LCAwLjc1MTM4MSwgMS4wMDAyMSwgMS4zOTQ3NCwgMS43NDA2NywgMi4yMjg1NiIsIFwKLSAgICAgICAgICAiMC4wNjg1MTIsIDAuNDA2ODcyLCAwLjc1MTM3MywgMS4wMDAyMiwgMS4zOTE3MiwgMS43MzYyOCwgMi4yMjg4MyIsIFwKLSAgICAgICAgICAiMC4wNjk5NTksIDAuNDA3MzU1LCAwLjc1MTgyOSwgMC45OTkzMDIsIDEuMzkxNzIsIDEuNzM2NTcsIDIuMjMwOTMiLCBcCi0gICAgICAgICAgIjAuMDcxMjkxLCAwLjQwNzI4NCwgMC43NTI5MzYsIDAuOTk5ODIzLCAxLjM5MTc3LCAxLjczNjQ2LCAyLjIzMDk1Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg2ODQxLCAwLjI4MjM3NCwgMC40NzY5NTgsIDAuNjE2MTM3LCAwLjgzODQxMSwgMS4wMzMwMiwgMS4zMTEzNCIsIFwKLSAgICAgICAgICAiMC4wOTgyMjksIDAuMjkzNjgyLCAwLjQ4ODQ0NSwgMC42MjczMTUsIDAuODQ5ODU0LCAxLjA0NDI2LCAxLjMyMjEyIiwgXAotICAgICAgICAgICIwLjExMjgxNywgMC4zMDgzOTksIDAuNTAzMDQxLCAwLjY0MjI2NSwgMC44NjQzMjEsIDEuMDU5MzQsIDEuMzM2ODciLCBcCi0gICAgICAgICAgIjAuMTI3NDA0LCAwLjMyMzExMSwgMC41MTc3MDUsIDAuNjU2OTI1LCAwLjg3OTA2NywgMS4wNzM5OCwgMS4zNTE1OCIsIFwKLSAgICAgICAgICAiMC4xNDE4LCAwLjMzNzQ3LCAwLjUzMjA4OCwgMC42NzEyNjgsIDAuODkzNTUxLCAxLjA4OCwgMS4zNjY5OSIsIFwKLSAgICAgICAgICAiMC4xNjM0NzEsIDAuMzU5MTEyLCAwLjU1Mzc1NywgMC42OTMwMTksIDAuOTE1MTU5LCAxLjEwOTc2LCAxLjM4NzU4IiwgXAotICAgICAgICAgICIwLjE4MDkyNSwgMC4zNzU5OTgsIDAuNTcwNjY3LCAwLjcwOTk0NSwgMC45MzIwMzYsIDEuMTI2NjcsIDEuNDA0OCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3MzE0NiwgMC40NTY5NTMsIDAuODQ0OTAyLCAxLjExODk3LCAxLjU2MDgzLCAxLjk1MDUxLCAyLjUwNTA0IiwgXAotICAgICAgICAgICIwLjA3MzE2NCwgMC40NTY5NzIsIDAuODQyMjY4LCAxLjExOTY2LCAxLjU2MTEsIDEuOTQ4MDIsIDIuNTA2OCIsIFwKLSAgICAgICAgICAiMC4wNzMxNCwgMC40NTY5NDQsIDAuODQ0MTU3LCAxLjExODE5LCAxLjU2MDg4LCAxLjk1MjI0LCAyLjQ5ODk2IiwgXAotICAgICAgICAgICIwLjA3MzE4NSwgMC40NTU3MTUsIDAuODQ0OTA5LCAxLjExODQxLCAxLjU1OTk0LCAxLjk1MTY4LCAyLjQ5ODkiLCBcCi0gICAgICAgICAgIjAuMDczNDM5LCAwLjQ1NjQ2NiwgMC44NDQ5MDIsIDEuMTE5MzYsIDEuNTYwNTksIDEuOTQ2ODksIDIuNTA0ODgiLCBcCi0gICAgICAgICAgIjAuMDc0NzE0LCAwLjQ1NjUwMSwgMC44NDI2MDcsIDEuMTE4MTksIDEuNTU5OCwgMS45NDYxMiwgMi40OTk0IiwgXAotICAgICAgICAgICIwLjA3NTc1LCAwLjQ1NjU5NywgMC44NDE2NjksIDEuMTE4MDIsIDEuNTU5OCwgMS45NDc3MiwgMi41MDIwOSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzMTAxLCAwLjAwMzE0OCwgMC4wMDMxNDksIDAuMDAzMTUxLCAwLjAwMzE1MiwgMC4wMDMxNTMsIDAuMDAzMTQ2IiwgXAotICAgICAgICAgICIwLjAwMzA4LCAwLjAwMzEyMywgMC4wMDMxMjksIDAuMDAzMTMsIDAuMDAzMTMxLCAwLjAwMzEzMiwgMC4wMDMxMzUiLCBcCi0gICAgICAgICAgIjAuMDAzMDU5LCAwLjAwMzExMSwgMC4wMDMxMTQsIDAuMDAzMTE2LCAwLjAwMzExNiwgMC4wMDMxMTYsIDAuMDAzMTE3IiwgXAotICAgICAgICAgICIwLjAwMzA0MiwgMC4wMDMxLCAwLjAwMzEwNCwgMC4wMDMxMDUsIDAuMDAzMTA3LCAwLjAwMzEwNywgMC4wMDMxMDciLCBcCi0gICAgICAgICAgIjAuMDAzMDI2LCAwLjAwMzA5MSwgMC4wMDMwOTcsIDAuMDAzMDk5LCAwLjAwMzEwMSwgMC4wMDMxMDIsIDAuMDAzMTAzIiwgXAotICAgICAgICAgICIwLjAwMzAwOCwgMC4wMDMwODEsIDAuMDAzMDksIDAuMDAzMDkzLCAwLjAwMzA5NSwgMC4wMDMwOTYsIDAuMDAzMDk3IiwgXAotICAgICAgICAgICIwLjAwMjk5OCwgMC4wMDMwNzUsIDAuMDAzMDg0LCAwLjAwMzA4NywgMC4wMDMwOSwgMC4wMDMwOTEsIDAuMDAzMDkyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQ3MDQsIDAuMDA0Nzc2LCAwLjAwNDc4MywgMC4wMDQ3ODUsIDAuMDA0Nzg3LCAwLjAwNDc4OCwgMC4wMDQ3ODkiLCBcCi0gICAgICAgICAgIjAuMDA0NjY3LCAwLjAwNDc0NCwgMC4wMDQ3NTIsIDAuMDA0NzU0LCAwLjAwNDc1NiwgMC4wMDQ3NTcsIDAuMDA0NzU4IiwgXAotICAgICAgICAgICIwLjAwNDYzNiwgMC4wMDQ3MjIsIDAuMDA0NzMyLCAwLjAwNDczNCwgMC4wMDQ3MzcsIDAuMDA0NzM4LCAwLjAwNDczOSIsIFwKLSAgICAgICAgICAiMC4wMDQ2MSwgMC4wMDQ3MDYsIDAuMDA0NzE4LCAwLjAwNDcyMiwgMC4wMDQ3MjUsIDAuMDA0NzI3LCAwLjAwNDcyOCIsIFwKLSAgICAgICAgICAiMC4wMDQ1OTEsIDAuMDA0Njk1LCAwLjAwNDcxLCAwLjAwNDcxNCwgMC4wMDQ3MTgsIDAuMDA0NzIsIDAuMDA0NzIyIiwgXAotICAgICAgICAgICIwLjAwNDU3MiwgMC4wMDQ2ODUsIDAuMDA0NzAyLCAwLjAwNDcwOCwgMC4wMDQ3MTMsIDAuMDA0NzE1LCAwLjAwNDcxNyIsIFwKLSAgICAgICAgICAiMC4wMDQ1NjQsIDAuMDA0Njc3LCAwLjAwNDY5NywgMC4wMDQ3MDMsIDAuMDA0NzA5LCAwLjAwNDcxMiwgMC4wMDQ3MTUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzA5OSwgMC4wMDMxNDksIDAuMDAzMTU3LCAwLjAwMzE1NCwgMC4wMDMxNTcsIDAuMDAzMTU3LCAwLjAwMzE1OCIsIFwKLSAgICAgICAgICAiMC4wMDMwNjcsIDAuMDAzMTIsIDAuMDAzMTI0LCAwLjAwMzEyNiwgMC4wMDMxMjcsIDAuMDAzMTI3LCAwLjAwMzEyOCIsIFwKLSAgICAgICAgICAiMC4wMDMwMzcsIDAuMDAzMDk3LCAwLjAwMzEwNiwgMC4wMDMxMDksIDAuMDAzMTA3LCAwLjAwMzEwNywgMC4wMDMxMDkiLCBcCi0gICAgICAgICAgIjAuMDAzMDEsIDAuMDAzMDgyLCAwLjAwMzA5MSwgMC4wMDMwOTIsIDAuMDAzMDk3LCAwLjAwMzA5NywgMC4wMDMwOTciLCBcCi0gICAgICAgICAgIjAuMDAyOTk5LCAwLjAwMzA3NiwgMC4wMDMwODUsIDAuMDAzMDg4LCAwLjAwMzA5MSwgMC4wMDMwOTIsIDAuMDAzMDk0IiwgXAotICAgICAgICAgICIwLjAwMjk4NSwgMC4wMDMwNjgsIDAuMDAzMDc5LCAwLjAwMzA4NCwgMC4wMDMwODcsIDAuMDAzMDksIDAuMDAzMDkxIiwgXAotICAgICAgICAgICIwLjAwMjk4MSwgMC4wMDMwNjUsIDAuMDAzMDgsIDAuMDAzMDgzLCAwLjAwMzA4NywgMC4wMDMwODksIDAuMDAzMDkxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQwOTQsIDAuMDA0MTYyLCAwLjAwNDE2OCwgMC4wMDQxNywgMC4wMDQxNzIsIDAuMDA0MTczLCAwLjAwNDE3MyIsIFwKLSAgICAgICAgICAiMC4wMDQwNTIsIDAuMDA0MTI2LCAwLjAwNDEzMywgMC4wMDQxMzUsIDAuMDA0MTM2LCAwLjAwNDEzNywgMC4wMDQxMzgiLCBcCi0gICAgICAgICAgIjAuMDA0MDA3LCAwLjAwNDA5MywgMC4wMDQxMDIsIDAuMDA0MTA0LCAwLjAwNDEwNiwgMC4wMDQxMDcsIDAuMDA0MTA4IiwgXAotICAgICAgICAgICIwLjAwMzk3MSwgMC4wMDQwNzEsIDAuMDA0MDgzLCAwLjAwNDA4NywgMC4wMDQwODksIDAuMDA0MDkxLCAwLjAwNDA5MiIsIFwKLSAgICAgICAgICAiMC4wMDM5NTEsIDAuMDA0MDU4LCAwLjAwNDA3MiwgMC4wMDQwNzcsIDAuMDA0MDgsIDAuMDA0MDgyLCAwLjAwNDA4NCIsIFwKLSAgICAgICAgICAiMC4wMDM5MjYsIDAuMDA0MDQ0LCAwLjAwNDA2MiwgMC4wMDQwNjcsIDAuMDA0MDcyLCAwLjAwNDA3NSwgMC4wMDQwNzciLCBcCi0gICAgICAgICAgIjAuMDAzOTIsIDAuMDA0MDM2LCAwLjAwNDA1NywgMC4wMDQwNjQsIDAuMDA0MDY5LCAwLjAwNDA3MiwgMC4wMDQwNzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogQ0xLQlVGWDMgKgotICogLS0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKENMS0JVRlgzKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMTM2NTExOwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA4ODc1NDk7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwODg3MTM0OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDg4NzU0OTsKLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjM5MDM5NjsKLSAgICBmdW5jdGlvbiA6ICJBIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3NjcyMSwgMC4yNDcwOTksIDAuNDE2Nzk2LCAwLjUzODA1OCwgMC43MzIwMzcsIDAuOTAxNjE3LCAxLjE0NDA2IiwgXAotICAgICAgICAgICIwLjA4ODIyNywgMC4yNTg2NTUsIDAuNDI4Mjc4LCAwLjU0OTgyOCwgMC43NDM2OCwgMC45MTM0MjIsIDEuMTU1NTkiLCBcCi0gICAgICAgICAgIjAuMTAzMzAxLCAwLjI3MzcyOSwgMC40NDM0NTEsIDAuNTY0ODU5LCAwLjc1ODY0NSwgMC45Mjg0MywgMS4xNzEwNSIsIFwKLSAgICAgICAgICAiMC4xMTgwOCwgMC4yODg1NzMsIDAuNDU4MjY3LCAwLjU3OTY1NiwgMC43NzM0NTEsIDAuOTQyODQyLCAxLjE4NTQ5IiwgXAotICAgICAgICAgICIwLjEzMzA0NiwgMC4zMDM0ODMsIDAuNDczMjQ2LCAwLjU5NDYxNCwgMC43ODg0NywgMC45NTgyMjcsIDEuMjAwNTgiLCBcCi0gICAgICAgICAgIjAuMTU0OTk1LCAwLjMyNTY3MiwgMC40OTU0MjUsIDAuNjE2ODQ3LCAwLjgxMDU1MSwgMC45ODAzMDksIDEuMjIzMzMiLCBcCi0gICAgICAgICAgIjAuMTczMDczLCAwLjM0MzYxOSwgMC41MTMzNzgsIDAuNjM0ODczLCAwLjgyODUwNSwgMC45OTgyMzEsIDEuMjQwNjgiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjU5MzEsIDAuNDA3NTY0LCAwLjc1MzA4MywgMC45OTgwOSwgMS4zOTE3MywgMS43MzU4NCwgMi4yMzQwMiIsIFwKLSAgICAgICAgICAiMC4wNjU4MjUsIDAuNDA3NTAyLCAwLjc1MjcyMywgMC45OTcyNCwgMS4zOTEzNiwgMS43MzYwNywgMi4yMzM3NCIsIFwKLSAgICAgICAgICAiMC4wNjU4OTIsIDAuNDA3NDM1LCAwLjc1MzAxLCAwLjk5NzMyNCwgMS4zOTEwOCwgMS43MzYzOCwgMi4yMzA1NyIsIFwKLSAgICAgICAgICAiMC4wNjYyMDIsIDAuNDA2NDIsIDAuNzUzMDI1LCAwLjk5NzMxNywgMS4zOTQ3LCAxLjczOTM0LCAyLjIzNDQ0IiwgXAotICAgICAgICAgICIwLjA2NjMzNCwgMC40MDc1MDYsIDAuNzUwOTYxLCAwLjk5NzMyMSwgMS4zOTE2NCwgMS43MzYxMywgMi4yMzM4MyIsIFwKLSAgICAgICAgICAiMC4wNjgwMDEsIDAuNDA3MzY4LCAwLjc1MzA1LCAwLjk5NzM0LCAxLjM5NDkyLCAxLjc0MDA3LCAyLjIyODkxIiwgXAotICAgICAgICAgICIwLjA2OTIyNSwgMC40MDc1NDIsIDAuNzUwOTU2LCAwLjk5NzQ1LCAxLjM5MTA2LCAxLjc0MDExLCAyLjIyNzk1Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc4MTg1LCAwLjI3MzMzLCAwLjQ2Nzg3MSwgMC42MDY5NTcsIDAuODI5MzY5LCAxLjAyMzYyLCAxLjMwMTUyIiwgXAotICAgICAgICAgICIwLjA4OTU1OCwgMC4yODQ3OTUsIDAuNDc5Mzg3LCAwLjYxODQxNiwgMC44NDA2MDcsIDEuMDM1MjEsIDEuMzEyOTciLCBcCi0gICAgICAgICAgIjAuMTA0NTE2LCAwLjI5OTgyLCAwLjQ5NDY0OSwgMC42MzM1NDUsIDAuODU1Nzg5LCAxLjA1MDIyLCAxLjMyODEiLCBcCi0gICAgICAgICAgIjAuMTE5MTA4LCAwLjMxNDI0LCAwLjUwODg3NywgMC42NDc3ODEsIDAuODcwMTIzLCAxLjA2NDY5LCAxLjM0Mjc0IiwgXAotICAgICAgICAgICIwLjEzMzE2LCAwLjMyODUyLCAwLjUyMzE0MywgMC42NjIwNywgMC44ODQ4NjgsIDEuMDc5MSwgMS4zNTcwNiIsIFwKLSAgICAgICAgICAiMC4xNTM2NjEsIDAuMzQ4ODEzLCAwLjU0MzUwOSwgMC42ODI1NTYsIDAuOTA0NzkzLCAxLjA5OTM3LCAxLjM3NzY4IiwgXAotICAgICAgICAgICIwLjE2OTg0MywgMC4zNjUxMzEsIDAuNTU5OTM1LCAwLjY5ODc0OSwgMC45MjEyMTEsIDEuMTE1NzMsIDEuMzkzOCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3MTc2NSwgMC40NTU3NTIsIDAuODQ0ODI3LCAxLjExODQsIDEuNTYxOTUsIDEuOTQ3NzEsIDIuNTAwMTkiLCBcCi0gICAgICAgICAgIjAuMDcxNzQ5LCAwLjQ1NjA0MywgMC44NDI5ODUsIDEuMTIwMDMsIDEuNTYwNzMsIDEuOTQ1OTUsIDIuNTAxNzgiLCBcCi0gICAgICAgICAgIjAuMDcxODAzLCAwLjQ1NTgzMywgMC44NDMyMjYsIDEuMTE4ODQsIDEuNTYxOCwgMS45NDkxNiwgMi41MDc5MSIsIFwKLSAgICAgICAgICAiMC4wNzE5MDEsIDAuNDU2MzQzLCAwLjg0MzYwOCwgMS4xMTg2MSwgMS41NjM4NCwgMS45NDYzLCAyLjUwMzY1IiwgXAotICAgICAgICAgICIwLjA3MjIzNiwgMC40NTY4MTksIDAuODQxOTE2LCAxLjExOTIsIDEuNTYyNzgsIDEuOTUyLCAyLjUwMjg2IiwgXAotICAgICAgICAgICIwLjA3MzQ2NSwgMC40NTY4ODIsIDAuODQzNDM5LCAxLjExODksIDEuNTYwMzksIDEuOTQ5MzEsIDIuNTA1OSIsIFwKLSAgICAgICAgICAiMC4wNzQ3NzEsIDAuNDU2OTQxLCAwLjg0MTk3OSwgMS4xMTc3OSwgMS41NjI2NiwgMS45NTE1NywgMi41MDI0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI2NTUsIDAuMDAyNjg2LCAwLjAwMjY5NCwgMC4wMDI2OTUsIDAuMDAyNjk2LCAwLjAwMjY5NiwgMC4wMDI2ODkiLCBcCi0gICAgICAgICAgIjAuMDAyNjIsIDAuMDAyNjY0LCAwLjAwMjY2NiwgMC4wMDI2NjgsIDAuMDAyNjY3LCAwLjAwMjY2OCwgMC4wMDI2NzEiLCBcCi0gICAgICAgICAgIjAuMDAyNTg4LCAwLjAwMjY0MiwgMC4wMDI2NDgsIDAuMDAyNjQ4LCAwLjAwMjY1LCAwLjAwMjY1MSwgMC4wMDI2NDgiLCBcCi0gICAgICAgICAgIjAuMDAyNTYzLCAwLjAwMjYzLCAwLjAwMjYzNiwgMC4wMDI2MzksIDAuMDAyNjQyLCAwLjAwMjY0MSwgMC4wMDI2NDMiLCBcCi0gICAgICAgICAgIjAuMDAyNTUzLCAwLjAwMjYyMywgMC4wMDI2MzIsIDAuMDAyNjM0LCAwLjAwMjYzNiwgMC4wMDI2MzcsIDAuMDAyNjM4IiwgXAotICAgICAgICAgICIwLjAwMjUzOCwgMC4wMDI2MTcsIDAuMDAyNjI3LCAwLjAwMjYyOSwgMC4wMDI2MzMsIDAuMDAyNjM1LCAwLjAwMjYzNiIsIFwKLSAgICAgICAgICAiMC4wMDI1MzQsIDAuMDAyNjEyLCAwLjAwMjYyNSwgMC4wMDI2MjksIDAuMDAyNjMyLCAwLjAwMjYzNSwgMC4wMDI2MzYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzY0NiwgMC4wMDM2OTcsIDAuMDAzNzAxLCAwLjAwMzcwMywgMC4wMDM3MDMsIDAuMDAzNzA0LCAwLjAwMzcwNSIsIFwKLSAgICAgICAgICAiMC4wMDM2MTMsIDAuMDAzNjc1LCAwLjAwMzY4MSwgMC4wMDM2ODIsIDAuMDAzNjg0LCAwLjAwMzY4NCwgMC4wMDM2ODUiLCBcCi0gICAgICAgICAgIjAuMDAzNTgyLCAwLjAwMzY1OSwgMC4wMDM2NjYsIDAuMDAzNjY5LCAwLjAwMzY3LCAwLjAwMzY3MSwgMC4wMDM2NzIiLCBcCi0gICAgICAgICAgIjAuMDAzNTU5LCAwLjAwMzY0NiwgMC4wMDM2NTcsIDAuMDAzNjYsIDAuMDAzNjYzLCAwLjAwMzY2NCwgMC4wMDM2NjUiLCBcCi0gICAgICAgICAgIjAuMDAzNTQsIDAuMDAzNjM5LCAwLjAwMzY1MSwgMC4wMDM2NTUsIDAuMDAzNjU4LCAwLjAwMzY2LCAwLjAwMzY2MSIsIFwKLSAgICAgICAgICAiMC4wMDM1MjIsIDAuMDAzNjI3LCAwLjAwMzY0MywgMC4wMDM2NDgsIDAuMDAzNjUyLCAwLjAwMzY1NSwgMC4wMDM2NTciLCBcCi0gICAgICAgICAgIjAuMDAzNTExLCAwLjAwMzYyLCAwLjAwMzYzOSwgMC4wMDM2NDUsIDAuMDAzNjUsIDAuMDAzNjUzLCAwLjAwMzY1NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBDTEtJTlZYOCAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoQ0xLSU5WWDgpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4yNjIxNjQ7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwNTQzNzA5OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwNTQzMjU4OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwNTQzNzA5OwotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDEuMDI3OTI7Ci0gICAgZnVuY3Rpb24gOiAiKCFBKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTgxLCAwLjA4MjU3NCwgMC4xNDY5MDQsIDAuMTkyODYsIDAuMjY2Mjc3LCAwLjMzMDc3NCwgMC40MjI2NzUiLCBcCi0gICAgICAgICAgIjAuMDI5NzQ1LCAwLjA5NDI3NCwgMC4xNTg3MzgsIDAuMjA0NiwgMC4yNzgyNDMsIDAuMzQyNDA4LCAwLjQzNDU2MiIsIFwKLSAgICAgICAgICAiMC4wNDM4OSwgMC4xMDg1OTQsIDAuMTcyOTI2LCAwLjIxODg0OCwgMC4yOTIzNiwgMC4zNTY2NTUsIDAuNDQ4NjA4IiwgXAotICAgICAgICAgICIwLjA1NTYyMiwgMC4xMjM2ODksIDAuMTg3MTgxLCAwLjIzMzU3NiwgMC4zMDY4MiwgMC4zNzEyMiwgMC40NjExNzciLCBcCi0gICAgICAgICAgIjAuMDY1NTc3LCAwLjEzODM4OCwgMC4yMDIzMTUsIDAuMjQ4MTAyLCAwLjMyMTQzOCwgMC4zODU4NSwgMC40Nzc1MDUiLCBcCi0gICAgICAgICAgIjAuMDgwMjgxLCAwLjE2MjE1MSwgMC4yMjYzOSwgMC4yNzIyOTksIDAuMzQ1NTY1LCAwLjQwOTcyMiwgMC41MDE0NDciLCBcCi0gICAgICAgICAgIjAuMDkwOTk1LCAwLjE4MzI3MiwgMC4yNDYwODMsIDAuMjkzMDMxLCAwLjM2NTg0OCwgMC40Mjk5MywgMC41MjE1NzEiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjc1ODgsIDAuMTU4NDU0LCAwLjI4OTIwMSwgMC4zODI2NjIsIDAuNTMyMTA5LCAwLjY2Mjg4OCwgMC44NDk4NCIsIFwKLSAgICAgICAgICAiMC4wMjk4NzUsIDAuMTU4NzE5LCAwLjI4OTMzNCwgMC4zODM1NTcsIDAuNTMyMDc4LCAwLjY2NDQxMywgMC44NTAyODYiLCBcCi0gICAgICAgICAgIjAuMDM3NDU5LCAwLjE1ODc5OSwgMC4yODkyMzMsIDAuMzgyNzM4LCAwLjUzMjI5MiwgMC42NjQ1OTYsIDAuODQ5OTM2IiwgXAotICAgICAgICAgICIwLjA0Njk1NSwgMC4xNjE4MzEsIDAuMjg5MzIyLCAwLjM4MjcxLCAwLjUzMzU1NCwgMC42NjMwMTUsIDAuODUxNjIiLCBcCi0gICAgICAgICAgIjAuMDU2NjM4LCAwLjE2NjMxNywgMC4yOTIwMzcsIDAuMzgzNzgyLCAwLjUzMzMzOSwgMC42NjMxNjIsIDAuODQ5NjY3IiwgXAotICAgICAgICAgICIwLjA3MDAxMSwgMC4xNzU3MjksIDAuMjk1ODMsIDAuMzg1NTM1LCAwLjUzMjU2MywgMC42NjI5MDYsIDAuODQ5Nzg4IiwgXAotICAgICAgICAgICIwLjA4MjI3LCAwLjE4NDk5NiwgMC4zMDMyNTcsIDAuMzkwMjI5LCAwLjUzNDU1NiwgMC42NjUxOCwgMC44NTA1MTciKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjA5MDYsIDAuMDk1NDg1LCAwLjE2OTg0MSwgMC4yMjI5MjksIDAuMzA3OTU1LCAwLjM4MjI4OSwgMC40ODgzMjkiLCBcCi0gICAgICAgICAgIjAuMDMyNTAxLCAwLjEwNzIxMiwgMC4xODE1OSwgMC4yMzQ2OSwgMC4zMTk3MDUsIDAuMzk0MDc2LCAwLjUwMDE3MiIsIFwKLSAgICAgICAgICAiMC4wNDcxNzcsIDAuMTIxNjMyLCAwLjE5NTk2NywgMC4yNDkyMSwgMC4zMzQwNjksIDAuNDA4NDY2LCAwLjUxNDcxMiIsIFwKLSAgICAgICAgICAiMC4wNjAxNzcsIDAuMTM2ODIzLCAwLjIxMDkwOCwgMC4yNjM4NDcsIDAuMzQ3NDg0LCAwLjQyMTgxNywgMC41MjgxNjEiLCBcCi0gICAgICAgICAgIjAuMDcxNDQzLCAwLjE1MTY4MSwgMC4yMjU2NjgsIDAuMjc4NzU2LCAwLjM2MzU2NSwgMC40Mzc3NDQsIDAuNTQ0MDIxIiwgXAotICAgICAgICAgICIwLjA4NzQ4NCwgMC4xNzU1MjYsIDAuMjQ5ODQ4LCAwLjMwMjI3MSwgMC4zODY5NDMsIDAuNDYxMjc0LCAwLjU2NzMyOSIsIFwKLSAgICAgICAgICAiMC4wOTk3NDgsIDAuMTk2ODMzLCAwLjI3MDkxNCwgMC4zMjM5MzUsIDAuNDA4MzAzLCAwLjQ4MjI4OSwgMC41ODgyNzIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzA4MjQsIDAuMTc4ODgzLCAwLjMyNjkyNiwgMC40MzMxOCwgMC42MDE3NjUsIDAuNzUwNDM5LCAwLjk2MTc2OCIsIFwKLSAgICAgICAgICAiMC4wMzIzNjQsIDAuMTc5Mzg4LCAwLjMyNzA3MSwgMC40MzM2MDksIDAuNjAxNDQ5LCAwLjc0OTg0MSwgMC45NjM1MzYiLCBcCi0gICAgICAgICAgIjAuMDM4OTk4LCAwLjE3ODc1MiwgMC4zMjc4NzcsIDAuNDMyNTMxLCAwLjYwMjk2OSwgMC43NDk5MDUsIDAuOTYxNzczIiwgXAotICAgICAgICAgICIwLjA0Nzk3NSwgMC4xODExOTYsIDAuMzI3MTg4LCAwLjQzMzE0NSwgMC42MDE1MDksIDAuNzUwMjg2LCAwLjk2MjQwNiIsIFwKLSAgICAgICAgICAiMC4wNTc3NzgsIDAuMTg0NDM1LCAwLjMyODQ5MiwgMC40MzI4MTcsIDAuNjAxOTU0LCAwLjc1MDU1OCwgMC45NjIzODYiLCBcCi0gICAgICAgICAgIjAuMDcyMjM1LCAwLjE5Mjg4MywgMC4zMzIwMDQsIDAuNDMzODY5LCAwLjYwMzE4NiwgMC43NTA4MDIsIDAuOTYwODYxIiwgXAotICAgICAgICAgICIwLjA4NDExMSwgMC4yMDEwNzQsIDAuMzM3MTM1LCAwLjQzODM0MywgMC42MDM0MzQsIDAuNzUwMTE5LCAwLjk2MjM2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDY0MzYsIDAuMDA2NTAyLCAwLjAwNjUwOCwgMC4wMDY1MTEsIDAuMDA2NTEzLCAwLjAwNjUxNCwgMC4wMDY1MTMiLCBcCi0gICAgICAgICAgIjAuMDA2MjM1LCAwLjAwNjQ1MywgMC4wMDY0NzksIDAuMDA2NDg4LCAwLjAwNjQ5NywgMC4wMDY1MDEsIDAuMDA2NTA1IiwgXAotICAgICAgICAgICIwLjAwNjEyMywgMC4wMDYzOSwgMC4wMDY0NDIsIDAuMDA2NDYsIDAuMDA2NDc2LCAwLjAwNjQ4MywgMC4wMDY0OTEiLCBcCi0gICAgICAgICAgIjAuMDA2MDc0LCAwLjAwNjM0NiwgMC4wMDY0MDUsIDAuMDA2NDM0LCAwLjAwNjQ1NiwgMC4wMDY0NjgsIDAuMDA2NDg0IiwgXAotICAgICAgICAgICIwLjAwNjA2NSwgMC4wMDYzMDUsIDAuMDA2Mzg2LCAwLjAwNjQxMiwgMC4wMDY0MzksIDAuMDA2NDUzLCAwLjAwNjQ2NyIsIFwKLSAgICAgICAgICAiMC4wMDYwNDYsIDAuMDA2MjU5LCAwLjAwNjM0NywgMC4wMDYzODQsIDAuMDA2NDE1LCAwLjAwNjQzMywgMC4wMDY0NTMiLCBcCi0gICAgICAgICAgIjAuMDA2MDc0LCAwLjAwNjIzMSwgMC4wMDYzMjEsIDAuMDA2MzU2LCAwLjAwNjM5NCwgMC4wMDY0MTEsIDAuMDA2NDM1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDAzNjMsIDAuMDAwNDU5LCAwLjAwMDQ2OCwgMC4wMDA0NzEsIDAuMDAwNDc0LCAwLjAwMDQ3NSwgMC4wMDA0NzYiLCBcCi0gICAgICAgICAgIjAuMDAwMDg5LCAwLjAwMDM4LCAwLjAwMDQyNCwgMC4wMDA0MzgsIDAuMDAwNDUsIDAuMDAwNDU2LCAwLjAwMDQ2MSIsIFwKLSAgICAgICAgICAiMC4wMDAwNjIsIDAuMDAwMjkxLCAwLjAwMDM2OSwgMC4wMDAzOTUsIDAuMDAwNDE4LCAwLjAwMDQzLCAwLjAwMDQ0MSIsIFwKLSAgICAgICAgICAiMC4wMDAxMjIsIDAuMDAwMjI3LCAwLjAwMDMyMywgMC4wMDAzNTcsIDAuMDAwMzg3LCAwLjAwMDQwNSwgMC4wMDA0MjEiLCBcCi0gICAgICAgICAgIjAuMDAwMTQsIDAuMDAwMTc0LCAwLjAwMDI4NSwgMC4wMDAzMjUsIDAuMDAwMzYzLCAwLjAwMDM4NSwgMC4wMDA0MDUiLCBcCi0gICAgICAgICAgIjAuMDAwMTMxLCAwLjAwMDExOSwgMC4wMDAyMzYsIDAuMDAwMjgzLCAwLjAwMDMzNCwgMC4wMDAzNTUsIDAuMDAwMzgxIiwgXAotICAgICAgICAgICIwLjAwMDEzNSwgMC4wMDAwNywgMC4wMDAxOTIsIDAuMDAwMjQ1LCAwLjAwMDI5OCwgMC4wMDAzMzIsIDAuMDAwMzU2Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IENMS01YMlg2ICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChDTEtNWDJYNikgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjI4MDI2NTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNzUyNDE7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNzQ5MTY0OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDc1MjQxOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDIyNSwgMC4wMDAyMywgMC4wMDAyMzIsIDAuMDAwMjMyLCAwLjAwMDIzMywgMC4wMDAyMzMsIDAuMDAwMjM0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjUsIDAuMDAwMjQ1LCAwLjAwMDI0NCwgMC4wMDAyNDQsIDAuMDAwMjQ0LCAwLjAwMDI0NCwgMC4wMDAyNDQiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDcwNTc7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNzAyOTM2OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDcwNTc7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjMzLCAwLjAwMDIzNiwgMC4wMDAyMzcsIDAuMDAwMjM3LCAwLjAwMDIzNywgMC4wMDAyMzcsIDAuMDAwMjM4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjQ3LCAwLjAwMDI0NCwgMC4wMDAyNDQsIDAuMDAwMjQ0LCAwLjAwMDI0NCwgMC4wMDAyNDQsIDAuMDAwMjQzIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxMzI5ODQ7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxMzI5MTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDEzMjk4NDsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyOTEsIDAuMDAwMjczLCAwLjAwMDI2NCwgMC4wMDAyNTksIDAuMDAwMjU3LCAwLjAwMDI1NiwgMC4wMDAyNTUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDE2NjMsIDAuMDAxNjUxLCAwLjAwMTY0MywgMC4wMDE2NDEsIDAuMDAxNjM3LCAwLjAwMTYzNiwgMC4wMDE2MzYiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC44MjI5NjsKLSAgICBmdW5jdGlvbiA6ICIoKFMwIEIpICsgKCFTMCBBKSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIwMTI1MywgMC4yODM3ODgsIDAuMzM1MzgzLCAwLjM5Njk2MiwgMC40NTc0LCAwLjUxNzYyMywgMC41Nzc3MDIiLCBcCi0gICAgICAgICAgIjAuMjEyNTI0LCAwLjI5NTA3MywgMC4zNDY2ODYsIDAuNDA4MTEsIDAuNDY4Njc1LCAwLjUyODg5OSwgMC41ODg5NDQiLCBcCi0gICAgICAgICAgIjAuMjI2MDAxLCAwLjMwODI1NywgMC4zNjAxODEsIDAuNDIxNjA3LCAwLjQ4MjEzNCwgMC41NDIzMDMsIDAuNjAyNDUzIiwgXAotICAgICAgICAgICIwLjIzOTQ3MiwgMC4zMjE5MTYsIDAuMzczNTA1LCAwLjQzNTA4OSwgMC40OTU1MSwgMC41NTU3NDMsIDAuNjE1Nzg3IiwgXAotICAgICAgICAgICIwLjI1Mjg4NCwgMC4zMzUwNzksIDAuMzg2OTY5LCAwLjQ0ODU2MywgMC41MDkwMTksIDAuNTY5MjY1LCAwLjYyOTM5OCIsIFwKLSAgICAgICAgICAiMC4yNzQ0MiwgMC4zNTY0NDQsIDAuNDA4Mjg5LCAwLjQ2OTg4NywgMC41MzAzNDYsIDAuNTkwNTkxLCAwLjY1MDcyNiIsIFwKLSAgICAgICAgICAiMC4yOTMzODEsIDAuMzc1NTQ5LCAwLjQyNzQzNywgMC40ODg4NjIsIDAuNTQ5Mzk4LCAwLjYwOTYzOCwgMC42Njk2OTkiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDgzMzc3LCAwLjE5Njg0NywgMC4yODc0NzQsIDAuNDAzNTY0LCAwLjUyMjA3OSwgMC42NDE2NDMsIDAuNzYwOTQ3IiwgXAotICAgICAgICAgICIwLjA4MzQ5OCwgMC4xOTY4MDUsIDAuMjg3NDE4LCAwLjQwMzYyMiwgMC41MjE2NzYsIDAuNjQxNTY0LCAwLjc2MDQ0IiwgXAotICAgICAgICAgICIwLjA4MzE5OSwgMC4xOTY2MDcsIDAuMjg3NDcsIDAuNDAzNTMzLCAwLjUyMTU4MSwgMC42NDE2MDIsIDAuNzYxNzc5IiwgXAotICAgICAgICAgICIwLjA4MzEzNywgMC4xOTY4MTYsIDAuMjg3MzU0LCAwLjQwMzUyNSwgMC41MjIwNTYsIDAuNjQxNTY0LCAwLjc2MDM5OSIsIFwKLSAgICAgICAgICAiMC4wODMzMjksIDAuMTk2NTE3LCAwLjI4NzMzLCAwLjQwMzUxMywgMC41MjE5NjMsIDAuNjQxNTY3LCAwLjc2MTg2NSIsIFwKLSAgICAgICAgICAiMC4wODI5NjEsIDAuMTk2NTI1LCAwLjI4NzMxNywgMC40MDM1MDUsIDAuNTIxOTE0LCAwLjY0MTQ4NCwgMC43NjE3MTgiLCBcCi0gICAgICAgICAgIjAuMDgyOTIyLCAwLjE5NjMyMiwgMC4yODczOCwgMC40MDM0ODIsIDAuNTIxNjIxLCAwLjY0MTQ2MywgMC43NjAzNjEiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTkyNDgyLCAwLjI4MjM1LCAwLjM0MTM4NywgMC40MTI2MzEsIDAuNDgzMTE2LCAwLjU1MzM0NiwgMC42MjM0NTkiLCBcCi0gICAgICAgICAgIjAuMjA0MDEsIDAuMjkzNjksIDAuMzUyODI0LCAwLjQyNDE0MywgMC40OTQ1NDksIDAuNTY0ODA3LCAwLjYzNDg5NiIsIFwKLSAgICAgICAgICAiMC4yMTcxMjYsIDAuMzA2OTE3LCAwLjM2NTk1NCwgMC40MzcxOTMsIDAuNTA3NjgxLCAwLjU3NzkwNywgMC42NDgwMjMiLCBcCi0gICAgICAgICAgIjAuMjI5NTg0LCAwLjMxOTIyOSwgMC4zNzg0MTEsIDAuNDQ5NzIzLCAwLjUyMDEzNSwgMC41OTAzODksIDAuNjYwNDg3IiwgXAotICAgICAgICAgICIwLjI0MTg3MiwgMC4zMzE3MTUsIDAuMzkwNzQ1LCAwLjQ2MTk4NCwgMC41MzI0ODYsIDAuNjAyNzIsIDAuNjcyODQxIiwgXAotICAgICAgICAgICIwLjI2MTY0NiwgMC4zNTEzNjQsIDAuNDEwNDA5LCAwLjQ4MTY1OSwgMC41NTIxNTYsIDAuNjIyMzg2LCAwLjY5MjUwOCIsIFwKLSAgICAgICAgICAiMC4yNzg4OTUsIDAuMzY4NTk3LCAwLjQyNzc3LCAwLjQ5OTAyNSwgMC41Njk1MjIsIDAuNjM5NzUyLCAwLjcwOTg3NyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODMxNDMsIDAuMjE0MjI2LCAwLjMxOTQxNCwgMC40NTMxMDQsIDAuNTg5NDg3LCAwLjcyNzIxMywgMC44NjI5NzYiLCBcCi0gICAgICAgICAgIjAuMDgzMDU4LCAwLjIxMzk2NywgMC4zMTkxMiwgMC40NTI4NiwgMC41ODkzNzIsIDAuNzI3MTYsIDAuODY1MDQiLCBcCi0gICAgICAgICAgIjAuMDgzMTYzLCAwLjIxNDI1OCwgMC4zMTk0MiwgMC40NTMwOTQsIDAuNTg5NDg0LCAwLjcyNzE4OSwgMC44NjI5MDIiLCBcCi0gICAgICAgICAgIjAuMDgyOTg4LCAwLjIxMzkyOSwgMC4zMTkwNjcsIDAuNDUzMTI3LCAwLjU4OTMzNywgMC43MjcxNDIsIDAuODY1MDQiLCBcCi0gICAgICAgICAgIjAuMDgzMDA0LCAwLjIxNDEyOSwgMC4zMTkzNjksIDAuNDUzMDgyLCAwLjU4OTU0OSwgMC43MjcxNzQsIDAuODYyNzkiLCBcCi0gICAgICAgICAgIjAuMDgyOTUzLCAwLjIxNDE5MSwgMC4zMTkzODIsIDAuNDUzMDg2LCAwLjU4OTUyNSwgMC43MjcxODksIDAuODYyNzEyIiwgXAotICAgICAgICAgICIwLjA4MjYwNSwgMC4yMTM3MzcsIDAuMzE5MjU0LCAwLjQ1MzAyLCAwLjU4OTQ4OSwgMC43MjcxNTYsIDAuODYyNjQ3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIwMTQzLCAwLjI4MzY4OCwgMC4zMzU2MDgsIDAuMzk3MDM2LCAwLjQ1NzU3MiwgMC41MTc3NDEsIDAuNTc3ODg3IiwgXAotICAgICAgICAgICIwLjIxMjg1OCwgMC4yOTUwNzksIDAuMzQ2OTQ1LCAwLjQwODU1MywgMC40NjkwMTMsIDAuNTI5MjI5LCAwLjU4OTMwNiIsIFwKLSAgICAgICAgICAiMC4yMjY2MzUsIDAuMzA5MTQ2LCAwLjM2MDc1NiwgMC40MjIzNSwgMC40ODI3NzYsIDAuNTQzMDA2LCAwLjYwMzA1NCIsIFwKLSAgICAgICAgICAiMC4yNDAyOTMsIDAuMzIyMzUyLCAwLjM3NDIyNSwgMC40MzU4MDQsIDAuNDk2MjcyLCAwLjU1NjQ5MSwgMC42MTY1NzMiLCBcCi0gICAgICAgICAgIjAuMjUzNzYyLCAwLjMzNTk0OCwgMC4zODc4MjIsIDAuNDQ5NDA1LCAwLjUwOTg2OSwgMC41NzAwODksIDAuNjMwMTk5IiwgXAotICAgICAgICAgICIwLjI3NTU0MSwgMC4zNTc2NjEsIDAuNDA5NTgyLCAwLjQ3MTA1MywgMC41MzE1NDIsIDAuNTkxNzY4LCAwLjY1MTg1OCIsIFwKLSAgICAgICAgICAiMC4yOTQyNjgsIDAuMzc2MzI4LCAwLjQyODIyMSwgMC40ODk2NywgMC41NTAyMDEsIDAuNjEwMzgzLCAwLjY3MDUyMyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODMyMDgsIDAuMTk2NjU1LCAwLjI4NzUyOCwgMC40MDM2LCAwLjUyMTcwNiwgMC42NDE3NzksIDAuNzYxOTg3IiwgXAotICAgICAgICAgICIwLjA4MzM5LCAwLjE5NjY3NiwgMC4yODc0MzMsIDAuNDAzNjA1LCAwLjUyMjAwMywgMC42NDE2NTIsIDAuNzYwNzg4IiwgXAotICAgICAgICAgICIwLjA4MzMyLCAwLjE5NjgyNSwgMC4yODczODEsIDAuNDAzNTc1LCAwLjUyMTc1NiwgMC42NDE2MjUsIDAuNzYwNTY5IiwgXAotICAgICAgICAgICIwLjA4MzExNiwgMC4xOTY2MjIsIDAuMjg3NDcxLCAwLjQwMzU3NSwgMC41MjE5NzIsIDAuNjQxNjI5LCAwLjc2MDkwNCIsIFwKLSAgICAgICAgICAiMC4wODMxNDcsIDAuMTk2NTgsIDAuMjg3NDE3LCAwLjQwMzU1OCwgMC41MjE5OSwgMC42NDE2MTksIDAuNzYyMDMzIiwgXAotICAgICAgICAgICIwLjA4MzEwOCwgMC4xOTY1NjIsIDAuMjg3NDcxLCAwLjQwMzUzNCwgMC41MjE2NTgsIDAuNjQxNDQ1LCAwLjc2MDU5MyIsIFwKLSAgICAgICAgICAiMC4wODI2ODEsIDAuMTk2NTI5LCAwLjI4NzQsIDAuNDAzNDk0LCAwLjUyMTY1LCAwLjY0MTcyMiwgMC43NjE5NiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xOTU2NywgMC4yODU3MjMsIDAuMzQ0NzgyLCAwLjQxNjEzNSwgMC40ODY1NiwgMC41NTY4MjgsIDAuNjI2OTU5IiwgXAotICAgICAgICAgICIwLjIwNzA0NSwgMC4yOTcwNzUsIDAuMzU2MTc1LCAwLjQyNzQyMywgMC40OTc5NTcsIDAuNTY4MTg2LCAwLjYzODMzMiIsIFwKLSAgICAgICAgICAiMC4yMjAxMTksIDAuMzA5OTQ4LCAwLjM2OTE0NywgMC40NDA0NDYsIDAuNTEwODczLCAwLjU4MTEyOSwgMC42NTEyNCIsIFwKLSAgICAgICAgICAiMC4yMzI0OTgsIDAuMzIyMjQ4LCAwLjM4MTQ4NSwgMC40NTI4MzgsIDAuNTIzMjYxLCAwLjU5MzUzNywgMC42NjM2NDQiLCBcCi0gICAgICAgICAgIjAuMjQ0NjQxLCAwLjMzNDUzOSwgMC4zOTM3NjksIDAuNDY1MDQxLCAwLjUzNTU1NywgMC42MDU4MDMsIDAuNjc1OTMxIiwgXAotICAgICAgICAgICIwLjI2NDI4OCwgMC4zNTM5ODEsIDAuNDEzMTU4LCAwLjQ4NDUxMSwgMC41NTQ5MywgMC42MjUyMDUsIDAuNjk1MzIiLCBcCi0gICAgICAgICAgIjAuMjgxMzY3LCAwLjM3MTE5MiwgMC40MzA0MTMsIDAuNTAxNzAxLCAwLjU3MjIxNCwgMC42NDI0NTgsIDAuNzEyNTkzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4MzQ1LCAwLjIxNDYyMSwgMC4zMTk0NzQsIDAuNDUzNDg2LCAwLjU4OTU3NSwgMC43Mjc0MDksIDAuODY0NTA4IiwgXAotICAgICAgICAgICIwLjA4MzU0MywgMC4yMTQ1NDksIDAuMzE5NzU4LCAwLjQ1MzQwNSwgMC41ODk4MjgsIDAuNzI3MzczLCAwLjg2MzI4NSIsIFwKLSAgICAgICAgICAiMC4wODM2MTcsIDAuMjE0NDcyLCAwLjMxOTY5NCwgMC40NTMyNiwgMC41ODk3NjIsIDAuNzI3NDEyLCAwLjg2NTIwNSIsIFwKLSAgICAgICAgICAiMC4wODM0NjQsIDAuMjE0MzgzLCAwLjMxOTMxMiwgMC40NTM0NjMsIDAuNTg5NTkzLCAwLjcyNzM4MSwgMC44NjUzMzIiLCBcCi0gICAgICAgICAgIjAuMDgzNDE4LCAwLjIxNDI3LCAwLjMxOTcyNywgMC40NTM0MDgsIDAuNTg5ODA3LCAwLjcyNzQyMSwgMC44NjI5OTQiLCBcCi0gICAgICAgICAgIjAuMDgzMjc0LCAwLjIxNDQyNCwgMC4zMTk1NjMsIDAuNDUzNTUsIDAuNTg5NTg4LCAwLjcyNzM5LCAwLjg2NDc2OCIsIFwKLSAgICAgICAgICAiMC4wODMwNDYsIDAuMjE0MjA1LCAwLjMxOTU3NywgMC40NTMzMzMsIDAuNTg5NzczLCAwLjcyNzM5NiwgMC44NjI5MjQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUzAiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE4NzY4MiwgMC4yNjk3NzUsIDAuMzIxNjU1LCAwLjM4MzA4MywgMC40NDM2MTksIDAuNTAzODM2LCAwLjU2MzkxOSIsIFwKLSAgICAgICAgICAiMC4xOTgxMDMsIDAuMjgwMjk3LCAwLjMzMjA3NiwgMC4zOTM2NywgMC40NTQxNjMsIDAuNTE0Mzk5LCAwLjU3NDUxOCIsIFwKLSAgICAgICAgICAiMC4yMTE2ODYsIDAuMjk0MDU2LCAwLjM0NTY3NSwgMC40MDcyNTIsIDAuNDY3NzEsIDAuNTI3OTgxLCAwLjU4ODEwMyIsIFwKLSAgICAgICAgICAiMC4yMjUwNTIsIDAuMzA3MTgxLCAwLjM1OTEyNSwgMC40MjA1ODgsIDAuNDgxMTAzLCAwLjU0MTMyOSwgMC42MDE0MTkiLCBcCi0gICAgICAgICAgIjAuMjM4Mzk4LCAwLjMyMDUwOCwgMC4zNzI0NDcsIDAuNDMzOTEyLCAwLjQ5NDQyNywgMC41NTQ2NTksIDAuNjE0NzQ3IiwgXAotICAgICAgICAgICIwLjI2MDA4LCAwLjM0MjEyNiwgMC4zOTQwNzYsIDAuNDU1NTM1LCAwLjUxNjA1MiwgMC41NzYzMDIsIDAuNjM2Mzc1IiwgXAotICAgICAgICAgICIwLjI3OTE0MSwgMC4zNjEyNjUsIDAuNDEzMDA0LCAwLjQ3NDU4MSwgMC41MzUxNjYsIDAuNTk1MzQxLCAwLjY1NTQ1MyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODI2NjUsIDAuMTk2Mzk3LCAwLjI4NzQyNSwgMC40MDM1NTYsIDAuNTIxNjgyLCAwLjY0MDg1NywgMC43NjAxMzgiLCBcCi0gICAgICAgICAgIjAuMDgyNjUxLCAwLjE5NjQxMSwgMC4yODcyMzIsIDAuNDAzNTAxLCAwLjUyMTg5NSwgMC42NDE2OTQsIDAuNzYxOTYiLCBcCi0gICAgICAgICAgIjAuMDgyNzc3LCAwLjE5NjM3OSwgMC4yODcyMjksIDAuNDAzNDc2LCAwLjUyMTkxNCwgMC42NDE1OTIsIDAuNzYxOTEzIiwgXAotICAgICAgICAgICIwLjA4MjYzOSwgMC4xOTYzMzcsIDAuMjg3MzY5LCAwLjQwMzM2MiwgMC41MjE2MjksIDAuNjQxNDQ4LCAwLjc2MDQ5OCIsIFwKLSAgICAgICAgICAiMC4wODI2NzQsIDAuMTk2MzM1LCAwLjI4NzMzNSwgMC40MDMzMjYsIDAuNTIxNjIzLCAwLjY0MTQ0NywgMC43NjA0NzMiLCBcCi0gICAgICAgICAgIjAuMDgyNTc2LCAwLjE5NjMyMywgMC4yODczMzcsIDAuNDAzMzUxLCAwLjUyMTYyMiwgMC42NDE1ODcsIDAuNzYwNDE4IiwgXAotICAgICAgICAgICIwLjA4MjQ3NiwgMC4xOTY0MzUsIDAuMjg3MjE3LCAwLjQwMzQzNiwgMC41MjE1MzQsIDAuNjQxNjI3LCAwLjc2MTkxMiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xODA1MiwgMC4yNzAxMDgsIDAuMzI5MjQyLCAwLjQwMDU2MiwgMC40NzA5NjksIDAuNTQxMjIyLCAwLjYxMTMzIiwgXAotICAgICAgICAgICIwLjE5MDkyMSwgMC4yODA0ODUsIDAuMzM5NjcyLCAwLjQxMDkyNCwgMC40ODE0MDQsIDAuNTUxNjMzLCAwLjYyMTc0OSIsIFwKLSAgICAgICAgICAiMC4yMDQwNTYsIDAuMjkzNjMxLCAwLjM1Mjc3OSwgMC40MjQwOTIsIDAuNDk0NTAzLCAwLjU2NDc1NSwgMC42MzQ4NTMiLCBcCi0gICAgICAgICAgIjAuMjE3MTM0LCAwLjMwNjY5MSwgMC4zNjU4NDYsIDAuNDM3MDk0LCAwLjUwNzU4OSwgMC41Nzc4MiwgMC42NDc5NDEiLCBcCi0gICAgICAgICAgIjAuMjMwMjMyLCAwLjMxOTg5NiwgMC4zNzg5NzEsIDAuNDUwMiwgMC41MjA3MSwgMC41OTA5MzYsIDAuNjYxMDczIiwgXAotICAgICAgICAgICIwLjI1MTM4NiwgMC4zNDEwNDMsIDAuNDAwMTIyLCAwLjQ3MTM1MSwgMC41NDE4NjcsIDAuNjEyMTA3LCAwLjY4MjIzOCIsIFwKLSAgICAgICAgICAiMC4yNzAwNzEsIDAuMzU5NjEsIDAuNDE4NzgyLCAwLjQ5MDAyOCwgMC41NjA1MzYsIDAuNjMwNzc5LCAwLjcwMDkxMSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODI4NDksIDAuMjEzODA1LCAwLjMxOTAyLCAwLjQ1MzEwNCwgMC41ODkyOTIsIDAuNzI3MTMyLCAwLjg2NTI2NiIsIFwKLSAgICAgICAgICAiMC4wODI4MzQsIDAuMjEzNzI4LCAwLjMxOTIzNSwgMC40NTMzMzEsIDAuNTg5NDkyLCAwLjcyNzE1MSwgMC44NjI3NzkiLCBcCi0gICAgICAgICAgIjAuMDgyODg0LCAwLjIxMzgwNiwgMC4zMTkwMDksIDAuNDUzMDkyLCAwLjU4OTMyNiwgMC43MjcxMywgMC44NjUwOTMiLCBcCi0gICAgICAgICAgIjAuMDgyNzgxLCAwLjIxMzcwNiwgMC4zMTkyNDgsIDAuNDUzMDEzLCAwLjU4OTUwNiwgMC43MjcxNTcsIDAuODYyODc2IiwgXAotICAgICAgICAgICIwLjA4Mjc2MSwgMC4yMTM5NjUsIDAuMzE5MjMyLCAwLjQ1MzA1NCwgMC41ODk1MzUsIDAuNzI3MDksIDAuODYzNTEzIiwgXAotICAgICAgICAgICIwLjA4MjgzMiwgMC4yMTM5OTYsIDAuMzE5Mjk3LCAwLjQ1MzA2NywgMC41ODk1MzQsIDAuNzI1Mjg0LCAwLjg2MzE4MSIsIFwKLSAgICAgICAgICAiMC4wODI3MTYsIDAuMjEzNzczLCAwLjMxOTI2OCwgMC40NTMwNSwgMC41ODk1MTMsIDAuNzI3MTUsIDAuODYyOTUxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlMwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMjMyOTMsIDAuMzA1NTEsIDAuMzU3MzYzLCAwLjQxODk0NCwgMC40Nzk0MDUsIDAuNTM5NjIyLCAwLjU5OTcwMyIsIFwKLSAgICAgICAgICAiMC4yMzUzNDgsIDAuMzE3NiwgMC4zNjk1MjksIDAuNDMwOTcsIDAuNDkxNDg3LCAwLjU1MTY2MiwgMC42MTE4MTciLCBcCi0gICAgICAgICAgIjAuMjUwNDI3LCAwLjMzMjYxMiwgMC4zODQ1MTQsIDAuNDQ2MDgzLCAwLjUwNjUzNCwgMC41NjY3OTQsIDAuNjI2OTE3IiwgXAotICAgICAgICAgICIwLjI2NDkxNSwgMC4zNDcxODcsIDAuMzk4ODkyLCAwLjQ2MDQ2NywgMC41MjA5NjQsIDAuNTgxMTkzLCAwLjY0MTMwNCIsIFwKLSAgICAgICAgICAiMC4yNzg0MzcsIDAuMzYwOTY4LCAwLjQxMjUzMiwgMC40NzM5NjMsIDAuNTM0NTE4LCAwLjU5NDc1LCAwLjY1NDc5MyIsIFwKLSAgICAgICAgICAiMC4yOTc2MDMsIDAuMzc5ODMsIDAuNDMxNjg2LCAwLjQ5MzI2MSwgMC41NTM3MjIsIDAuNjEzOTUyLCAwLjY3NDAyMSIsIFwKLSAgICAgICAgICAiMC4zMTI1ODIsIDAuMzk0NzQsIDAuNDQ2NzAxLCAwLjUwODEzOCwgMC41Njg2NDcsIDAuNjI4ODY0LCAwLjY4ODk1MSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODMxOTIsIDAuMTk2NTExLCAwLjI4NzM0NCwgMC40MDM0OTksIDAuNTIxOTM2LCAwLjY0MTU2MywgMC43NjAzMTIiLCBcCi0gICAgICAgICAgIjAuMDgzMzA5LCAwLjE5NjU4NSwgMC4yODc0NTUsIDAuNDAzNTIyLCAwLjUyMTYyNywgMC42NDE2OTUsIDAuNzYxOTYxIiwgXAotICAgICAgICAgICIwLjA4MzI5LCAwLjE5NjUwMiwgMC4yODczMjUsIDAuNDAzNTE3LCAwLjUyMTk0NiwgMC42NDE1NjcsIDAuNzYxODgyIiwgXAotICAgICAgICAgICIwLjA4MzAzMSwgMC4xOTY2MjgsIDAuMjg3MTUzLCAwLjQwMzUyOCwgMC41MjE4MzUsIDAuNjQxNjQ1LCAwLjc2MTkwOSIsIFwKLSAgICAgICAgICAiMC4wODMxOSwgMC4xOTY3NywgMC4yODc0NDIsIDAuNDAzNTI3LCAwLjUyMTYwOCwgMC42NDE1MjksIDAuNzYwNDQ1IiwgXAotICAgICAgICAgICIwLjA4MzI0OCwgMC4xOTY1MDIsIDAuMjg3MzY2LCAwLjQwMzQ1LCAwLjUyMTkxOCwgMC42NDE1NTIsIDAuNzYxNjg0IiwgXAotICAgICAgICAgICIwLjA4MzE3OCwgMC4xOTY1MDEsIDAuMjg3NDIzLCAwLjQwMzQwOCwgMC41MjE2NCwgMC42NDEzNDQsIDAuNzYwNDQ1Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIyMDg4NiwgMC4zMTA4MzIsIDAuMzY5OTI3LCAwLjQ0MTE3NSwgMC41MTE3MTgsIDAuNTgxOTY5LCAwLjY1MjExIiwgXAotICAgICAgICAgICIwLjIzMjg4NCwgMC4zMjI5MTQsIDAuMzgyMDA0LCAwLjQ1MzI3MywgMC41MjM3OTQsIDAuNTk0MDQzLCAwLjY2NDE4MSIsIFwKLSAgICAgICAgICAiMC4yNDg2NTksIDAuMzM4NjAxLCAwLjM5NzY5NCwgMC40Njg5NTUsIDAuNTM5NDg4LCAwLjYwOTc0MiwgMC42Nzk4NzciLCBcCi0gICAgICAgICAgIjAuMjYzNDg4LCAwLjM1MzMxNCwgMC40MTI1MDksIDAuNDgzODc4LCAwLjU1NDMxOSwgMC42MjQ1OTcsIDAuNjk0NzA1IiwgXAotICAgICAgICAgICIwLjI3ODY0NywgMC4zNjg1MTksIDAuNDI3NzM0LCAwLjQ5OTA0OSwgMC41Njk1MDcsIDAuNjM5Nzc4LCAwLjcwOTg4NCIsIFwKLSAgICAgICAgICAiMC4zMDA3NjYsIDAuMzkwNjQsIDAuNDQ5NzEyLCAwLjUyMTA4OSwgMC41OTE1MzYsIDAuNjYxODE2LCAwLjczMTkxNSIsIFwKLSAgICAgICAgICAiMC4zMTg1MDUsIDAuNDA4NDE2LCAwLjQ2NzQ5NywgMC41Mzg4MywgMC42MDkzMDQsIDAuNjc5NTM4LCAwLjc0OTY5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4MzY4NSwgMC4yMTQ1NjMsIDAuMzE5NzQxLCAwLjQ1MzQxOSwgMC41ODk5NjUsIDAuNzI3NDgxLCAwLjg2MjY5IiwgXAotICAgICAgICAgICIwLjA4MzQ5MiwgMC4yMTQ1NTksIDAuMzE5NzQsIDAuNDUzNDY4LCAwLjU4OTg5OCwgMC43Mjc0ODgsIDAuODYzOTA5IiwgXAotICAgICAgICAgICIwLjA4MzY0MiwgMC4yMTQ1NDcsIDAuMzE5NzM4LCAwLjQ1MzQ4NCwgMC41ODk4NzQsIDAuNzI1MzAyLCAwLjg2NDA0OSIsIFwKLSAgICAgICAgICAiMC4wODMzMjYsIDAuMjE0NTM1LCAwLjMxOTQxMywgMC40NTM5MSwgMC41ODk4NjIsIDAuNzI3Mzc3LCAwLjg2NDUxNyIsIFwKLSAgICAgICAgICAiMC4wODM1NjUsIDAuMjE0NDYzLCAwLjMxOTUxMiwgMC40NTM2NzMsIDAuNTg5NjQ0LCAwLjcyNzM4NywgMC44NjQzNzUiLCBcCi0gICAgICAgICAgIjAuMDgzNTcxLCAwLjIxNDU4NCwgMC4zMTk0NjQsIDAuNDUzNzkyLCAwLjU4OTcyOSwgMC43MjczNSwgMC44NjM5MjciLCBcCi0gICAgICAgICAgIjAuMDgzMjA1LCAwLjIxNDUwNywgMC4zMTk2NzUsIDAuNDUzMzMxLCAwLjU4OTc3NSwgMC43MjczNDEsIDAuODYzODU5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1Njc3LCAwLjAwNTg0NSwgMC4wMDU4OTYsIDAuMDA1OTI4LCAwLjAwNTk0NiwgMC4wMDU5NTgsIDAuMDA1OTY3IiwgXAotICAgICAgICAgICIwLjAwNTY2NSwgMC4wMDU4MzMsIDAuMDA1ODgzLCAwLjAwNTkxNiwgMC4wMDU5MzQsIDAuMDA1OTQ2LCAwLjAwNTk1MyIsIFwKLSAgICAgICAgICAiMC4wMDU2NTksIDAuMDA1ODI2LCAwLjAwNTg3OCwgMC4wMDU5MSwgMC4wMDU5MjksIDAuMDA1OTM5LCAwLjAwNTk0NyIsIFwKLSAgICAgICAgICAiMC4wMDU2NSwgMC4wMDU4MTgsIDAuMDA1ODY4LCAwLjAwNTkwMiwgMC4wMDU5MiwgMC4wMDU5MzMsIDAuMDA1OTQiLCBcCi0gICAgICAgICAgIjAuMDA1NjQ0LCAwLjAwNTgxLCAwLjAwNTg2MSwgMC4wMDU4OTUsIDAuMDA1OTE2LCAwLjAwNTkyOCwgMC4wMDU5MzYiLCBcCi0gICAgICAgICAgIjAuMDA1NjM1LCAwLjAwNTc5NiwgMC4wMDU4NDgsIDAuMDA1ODg0LCAwLjAwNTkwMywgMC4wMDU5MTQsIDAuMDA1OTI2IiwgXAotICAgICAgICAgICIwLjAwNTYzMywgMC4wMDU3ODksIDAuMDA1ODQxLCAwLjAwNTg3NywgMC4wMDU4OTgsIDAuMDA1OTA4LCAwLjAwNTkyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2MzUxLCAwLjAwNjU3NywgMC4wMDY2NDQsIDAuMDA2Njg3LCAwLjAwNjcxMiwgMC4wMDY3MjcsIDAuMDA2NzM4IiwgXAotICAgICAgICAgICIwLjAwNjM0OCwgMC4wMDY1NzIsIDAuMDA2NjM5LCAwLjAwNjY4MiwgMC4wMDY3MDcsIDAuMDA2NzIyLCAwLjAwNjczMyIsIFwKLSAgICAgICAgICAiMC4wMDYzMzksIDAuMDA2NTY1LCAwLjAwNjYzMywgMC4wMDY2NzYsIDAuMDA2NzAyLCAwLjAwNjcxNywgMC4wMDY3MjkiLCBcCi0gICAgICAgICAgIjAuMDA2MzMzLCAwLjAwNjU1OCwgMC4wMDY2MjcsIDAuMDA2NjcxLCAwLjAwNjY5NywgMC4wMDY3MTMsIDAuMDA2NzI0IiwgXAotICAgICAgICAgICIwLjAwNjMyOCwgMC4wMDY1NTEsIDAuMDA2NjIsIDAuMDA2NjY1LCAwLjAwNjY5MSwgMC4wMDY3MDgsIDAuMDA2NzIiLCBcCi0gICAgICAgICAgIjAuMDA2MzIxLCAwLjAwNjUzOSwgMC4wMDY2MDksIDAuMDA2NjU2LCAwLjAwNjY4MywgMC4wMDY3MDEsIDAuMDA2NzEzIiwgXAotICAgICAgICAgICIwLjAwNjMyMSwgMC4wMDY1MzIsIDAuMDA2NjAyLCAwLjAwNjY0OSwgMC4wMDY2NzcsIDAuMDA2Njk1LCAwLjAwNjcwOCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNTUxNywgMC4wMDU2NjksIDAuMDA1NzE0LCAwLjAwNTc0LCAwLjAwNTc1MywgMC4wMDU3NjQsIDAuMDA1NzciLCBcCi0gICAgICAgICAgIjAuMDA1NTA1LCAwLjAwNTY1NSwgMC4wMDU3LCAwLjAwNTcyNiwgMC4wMDU3NDEsIDAuMDA1NzUxLCAwLjAwNTc1OCIsIFwKLSAgICAgICAgICAiMC4wMDU0OTgsIDAuMDA1NjQ4LCAwLjAwNTY5MiwgMC4wMDU3MTksIDAuMDA1NzM1LCAwLjAwNTc0NSwgMC4wMDU3NTEiLCBcCi0gICAgICAgICAgIjAuMDA1NDg5LCAwLjAwNTY0MSwgMC4wMDU2ODYsIDAuMDA1NzE0LCAwLjAwNTcyOSwgMC4wMDU3MzksIDAuMDA1NzQ2IiwgXAotICAgICAgICAgICIwLjAwNTQ4MywgMC4wMDU2MzQsIDAuMDA1Njc5LCAwLjAwNTcwOCwgMC4wMDU3MjUsIDAuMDA1NzM1LCAwLjAwNTc0MSIsIFwKLSAgICAgICAgICAiMC4wMDU0NzUsIDAuMDA1NjIzLCAwLjAwNTY2OSwgMC4wMDU2OTksIDAuMDA1NzE2LCAwLjAwNTcyNywgMC4wMDU3MzQiLCBcCi0gICAgICAgICAgIjAuMDA1NDcsIDAuMDA1NjEzLCAwLjAwNTY1OSwgMC4wMDU2OTIsIDAuMDA1NzA4LCAwLjAwNTcyLCAwLjAwNTcyOCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjU2NywgMC4wMDY3NzcsIDAuMDA2ODM4LCAwLjAwNjg3NywgMC4wMDY5LCAwLjAwNjkxNCwgMC4wMDY5MjQiLCBcCi0gICAgICAgICAgIjAuMDA2NTU5LCAwLjAwNjc3MSwgMC4wMDY4MzIsIDAuMDA2ODcxLCAwLjAwNjg5NCwgMC4wMDY5MDgsIDAuMDA2OTE4IiwgXAotICAgICAgICAgICIwLjAwNjU1OSwgMC4wMDY3NjgsIDAuMDA2ODI5LCAwLjAwNjg2OSwgMC4wMDY4OTEsIDAuMDA2OTA1LCAwLjAwNjkxNSIsIFwKLSAgICAgICAgICAiMC4wMDY1NTMsIDAuMDA2NzYyLCAwLjAwNjgyNCwgMC4wMDY4NjQsIDAuMDA2ODg3LCAwLjAwNjkwMSwgMC4wMDY5MTIiLCBcCi0gICAgICAgICAgIjAuMDA2NTQ5LCAwLjAwNjc1NiwgMC4wMDY4MTksIDAuMDA2ODU5LCAwLjAwNjg4MywgMC4wMDY4OTgsIDAuMDA2OTA4IiwgXAotICAgICAgICAgICIwLjAwNjU0MiwgMC4wMDY3NDMsIDAuMDA2ODA3LCAwLjAwNjg1LCAwLjAwNjg3NCwgMC4wMDY4OSwgMC4wMDY5MDEiLCBcCi0gICAgICAgICAgIjAuMDA2NTQxLCAwLjAwNjczOCwgMC4wMDY4MDIsIDAuMDA2ODQ1LCAwLjAwNjg3LCAwLjAwNjg4NywgMC4wMDY4OTgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTMCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA3MjcyLCAwLjAwNzQzNywgMC4wMDc0ODgsIDAuMDA3NTIxLCAwLjAwNzU0MSwgMC4wMDc1NTMsIDAuMDA3NTYyIiwgXAotICAgICAgICAgICIwLjAwNzI3NSwgMC4wMDc0NCwgMC4wMDc0OTIsIDAuMDA3NTIzLCAwLjAwNzU0MywgMC4wMDc1NTgsIDAuMDA3NTY3IiwgXAotICAgICAgICAgICIwLjAwNzI3NiwgMC4wMDc0NDIsIDAuMDA3NDkyLCAwLjAwNzUyNiwgMC4wMDc1NDYsIDAuMDA3NTU2LCAwLjAwNzU2NyIsIFwKLSAgICAgICAgICAiMC4wMDcyNzcsIDAuMDA3NDQzLCAwLjAwNzQ5NCwgMC4wMDc1MjYsIDAuMDA3NTQ0LCAwLjAwNzU1NywgMC4wMDc1NjYiLCBcCi0gICAgICAgICAgIjAuMDA3Mjc3LCAwLjAwNzQ0MywgMC4wMDc0OTMsIDAuMDA3NTI2LCAwLjAwNzU0NywgMC4wMDc1NTcsIDAuMDA3NTY2IiwgXAotICAgICAgICAgICIwLjAwNzI3NSwgMC4wMDc0NDMsIDAuMDA3NDkzLCAwLjAwNzUyOCwgMC4wMDc1NDYsIDAuMDA3NTU3LCAwLjAwNzU2NiIsIFwKLSAgICAgICAgICAiMC4wMDcyNzQsIDAuMDA3NDQyLCAwLjAwNzQ5MSwgMC4wMDc1MjUsIDAuMDA3NTQ1LCAwLjAwNzU1NiwgMC4wMDc1NjYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDYyNDMsIDAuMDA2NDUyLCAwLjAwNjUxNiwgMC4wMDY1NTgsIDAuMDA2NTgyLCAwLjAwNjU5OCwgMC4wMDY2MDkiLCBcCi0gICAgICAgICAgIjAuMDA2MjM5LCAwLjAwNjQ0OCwgMC4wMDY1MTEsIDAuMDA2NTUzLCAwLjAwNjU3NywgMC4wMDY1OTMsIDAuMDA2NjA1IiwgXAotICAgICAgICAgICIwLjAwNjIzOCwgMC4wMDY0NDcsIDAuMDA2NTExLCAwLjAwNjU1MiwgMC4wMDY1NzYsIDAuMDA2NTkyLCAwLjAwNjYwMyIsIFwKLSAgICAgICAgICAiMC4wMDYyMzgsIDAuMDA2NDQ2LCAwLjAwNjUxLCAwLjAwNjU1MiwgMC4wMDY1NzYsIDAuMDA2NTkxLCAwLjAwNjYwMiIsIFwKLSAgICAgICAgICAiMC4wMDYyMzcsIDAuMDA2NDQ3LCAwLjAwNjUxLCAwLjAwNjU1MiwgMC4wMDY1NzYsIDAuMDA2NTkxLCAwLjAwNjYwMyIsIFwKLSAgICAgICAgICAiMC4wMDYyMzYsIDAuMDA2NDQ1LCAwLjAwNjUwOSwgMC4wMDY1NTEsIDAuMDA2NTc1LCAwLjAwNjU5MSwgMC4wMDY2MDIiLCBcCi0gICAgICAgICAgIjAuMDA2MjM4LCAwLjAwNjQ0NiwgMC4wMDY1MSwgMC4wMDY1NTIsIDAuMDA2NTc2LCAwLjAwNjU5MSwgMC4wMDY2MDIiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IENMS1hPUjJYMiAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKENMS1hPUjJYMikgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjE1OTA2NjsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNTg1MDQ2OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDU4NDc1MTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA1ODUwNDY7Ci0gIH0KLSAgcGluKEIpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTIzNzg2OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTIzNjc1OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTIzNzg2OwotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMjY1MDU4OwotICAgIGZ1bmN0aW9uIDogIihBXkIpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xOTg0MzUsIDAuMzg1NDUxLCAwLjUyOTA2NiwgMC43MDg1NDksIDAuODg3ODI3LCAxLjA2NzIyLCAxLjI0NjYyIiwgXAotICAgICAgICAgICIwLjIxMDM5NiwgMC4zOTczNzksIDAuNTQwOTgsIDAuNzIwNDA3LCAwLjg5OTczNiwgMS4wNzkyMSwgMS4yNTg1NiIsIFwKLSAgICAgICAgICAiMC4yMjUyNTUsIDAuNDEyMjU3LCAwLjU1NTg4NiwgMC43MzUzNywgMC45MTQ2NSwgMS4wOTQxNCwgMS4yNzM0NSIsIFwKLSAgICAgICAgICAiMC4yNDAyMDIsIDAuNDI3MjU5LCAwLjU3MDg2OSwgMC43NTAzMzEsIDAuOTI5NjE0LCAxLjEwOTEzLCAxLjI4ODYyIiwgXAotICAgICAgICAgICIwLjI1NTUyMiwgMC40NDI0NTcsIDAuNTg2MDcsIDAuNzY1NDY4LCAwLjk0NDg1OSwgMS4xMjQyOCwgMS4zMDM3IiwgXAotICAgICAgICAgICIwLjI3OTU2NCwgMC40NjY1MDEsIDAuNjEwMTIsIDAuNzg5NTQsIDAuOTY4OTI5LCAxLjE0ODM4LCAxLjMyNzc2IiwgXAotICAgICAgICAgICIwLjMwMDQ5MiwgMC40ODc1NDEsIDAuNjMxMiwgMC44MTA1NjYsIDAuOTg5OTUzLCAxLjE2OTI5LCAxLjM0ODc0Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExMTY1OSwgMC40NjIzMTQsIDAuNzUwNTk3LCAxLjExNDgxLCAxLjQ4NDI0LCAxLjg0ODEsIDIuMjEyNTkiLCBcCi0gICAgICAgICAgIjAuMTExNTU1LCAwLjQ2MjI3NCwgMC43NTExNzcsIDEuMTE1MzEsIDEuNDgxNjUsIDEuODQ3ODksIDIuMjEyNjEiLCBcCi0gICAgICAgICAgIjAuMTExNTUyLCAwLjQ2MjIzNCwgMC43NTEyNiwgMS4xMTQ3OCwgMS40ODQyLCAxLjg0ODI5LCAyLjIxMjU5IiwgXAotICAgICAgICAgICIwLjExMTY2OSwgMC40NjE1NTMsIDAuNzUyMjU3LCAxLjExNDk4LCAxLjQ4NDE4LCAxLjg0NjksIDIuMjEzNTMiLCBcCi0gICAgICAgICAgIjAuMTExNjY2LCAwLjQ2MjI2NiwgMC43NTEwOTgsIDEuMTE1OTcsIDEuNDgxNzYsIDEuODQ3OTQsIDIuMjEyMjQiLCBcCi0gICAgICAgICAgIjAuMTExNzA1LCAwLjQ2MjI2NSwgMC43NTEwOTgsIDEuMTE1MzIsIDEuNDgwNjgsIDEuODQ3MDUsIDIuMjEyMjgiLCBcCi0gICAgICAgICAgIjAuMTExNjc1LCAwLjQ2MjE3OSwgMC43NTEwNzQsIDEuMTE3MzIsIDEuNDg0MTQsIDEuODUwOTYsIDIuMjE3NTEiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTkxMTQ1LCAwLjQwMzcyNywgMC41Njg3MTEsIDAuNzc0ODk4LCAwLjk4MTA2NywgMS4xODczMiwgMS4zOTM2OSIsIFwKLSAgICAgICAgICAiMC4yMDI2NTYsIDAuNDE1MDkzLCAwLjU4MDA4NCwgMC43ODYyNjIsIDAuOTkyNDYsIDEuMTk4NjgsIDEuNDA1MiIsIFwKLSAgICAgICAgICAiMC4yMTcwMzUsIDAuNDI5NjA2LCAwLjU5NDYwMywgMC44MDA3ODMsIDEuMDA2OTcsIDEuMjEzMiwgMS40MTk4NCIsIFwKLSAgICAgICAgICAiMC4yMzEzODgsIDAuNDQzOTg4LCAwLjYwOTAyNywgMC44MTUxNzEsIDEuMDIxMzQsIDEuMjI3NiwgMS40MzM2MSIsIFwKLSAgICAgICAgICAiMC4yNDU5NDIsIDAuNDU4NDM0LCAwLjYyMzUwNCwgMC44Mjk2MzMsIDEuMDM1ODQsIDEuMjQyMDcsIDEuNDQ4MDkiLCBcCi0gICAgICAgICAgIjAuMjY4NjQsIDAuNDgxMjY0LCAwLjY0NjI3MSwgMC44NTI0NywgMS4wNTg2NywgMS4yNjQ5LCAxLjQ3MTA5IiwgXAotICAgICAgICAgICIwLjI4ODA0NywgMC41MDA2NzgsIDAuNjY1NzM0LCAwLjg3MTg5NywgMS4wNzgwNiwgMS4yODQzNSwgMS40OTAzMyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTg3OSwgMC41MTUyNTMsIDAuODQxOTAyLCAxLjI1MjE0LCAxLjY1OTM3LCAyLjA2NzY5LCAyLjQ4MTE3IiwgXAotICAgICAgICAgICIwLjExODkwNiwgMC41MTUyOTIsIDAuODQxOTQ0LCAxLjI1MjEzLCAxLjY1OTgzLCAyLjA2Njg2LCAyLjQ3ODU1IiwgXAotICAgICAgICAgICIwLjExODgxNSwgMC41MTUyNjUsIDAuODQxOTYsIDEuMjUyMTQsIDEuNjU5NTcsIDIuMDY2ODUsIDIuNDc3OTQiLCBcCi0gICAgICAgICAgIjAuMTE4OTE4LCAwLjUxNTIzLCAwLjg0MTk0OSwgMS4yNTIxNCwgMS42NTkyNSwgMi4wNjc5NSwgMi40ODYzNSIsIFwKLSAgICAgICAgICAiMC4xMTg5NDQsIDAuNTE1MjYxLCAwLjgzODk1NywgMS4yNTIxMywgMS42NTc4NiwgMi4wNzA4OCwgMi40ODY2NyIsIFwKLSAgICAgICAgICAiMC4xMTg3NzcsIDAuNTE1MTgsIDAuODQxNzMxLCAxLjI1MjEzLCAxLjY1OTc0LCAyLjA2Njg2LCAyLjQ3ODUzIiwgXAotICAgICAgICAgICIwLjExODkzNywgMC41MTUxMSwgMC44NDE5NDEsIDEuMjUyMTQsIDEuNjU5MjIsIDIuMDY4MzUsIDIuNDg2NTciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjI2NDU5LCAwLjQxMjQxNCwgMC41NTYxOCwgMC43MzU3OTcsIDAuOTE1MTgzLCAxLjA5NDU2LCAxLjI3Mzk5IiwgXAotICAgICAgICAgICIwLjIzODA1NSwgMC40MjM5OTgsIDAuNTY3Nzc1LCAwLjc0NzM5MiwgMC45MjY3NTQsIDEuMTA2MTcsIDEuMjg1NTQiLCBcCi0gICAgICAgICAgIjAuMjUyNzQzLCAwLjQzODY4NCwgMC41ODI0NjIsIDAuNzYyMDcsIDAuOTQxNDQyLCAxLjEyMDg1LCAxLjMwMDIyIiwgXAotICAgICAgICAgICIwLjI2NzE0NywgMC40NTMzMDksIDAuNTk3MDcyLCAwLjc3NjY4NiwgMC45NTYwNzEsIDEuMTM1NDQsIDEuMzE0ODMiLCBcCi0gICAgICAgICAgIjAuMjgxMzMsIDAuNDY3MjgsIDAuNjExMDUzLCAwLjc5MDY5NywgMC45NzAwNTIsIDEuMTQ5NTcsIDEuMzI4ODIiLCBcCi0gICAgICAgICAgIjAuMzAxNzI1LCAwLjQ4NzY2NiwgMC42MzE0MzgsIDAuODExMDgyLCAwLjk5MDQ0LCAxLjE2OTk3LCAxLjM0OTIiLCBcCi0gICAgICAgICAgIjAuMzE3NzA5LCAwLjUwMzc5NiwgMC42NDc1NywgMC44MjcyMTQsIDEuMDA2NjMsIDEuMTg1OTQsIDEuMzY1MzMiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTEwMzk1LCAwLjQ2MTYzMywgMC43NTExOSwgMS4xMTg0MywgMS40ODQ3MSwgMS44NTA3MiwgMi4yMTg2NSIsIFwKLSAgICAgICAgICAiMC4xMTAzMTgsIDAuNDYxNjczLCAwLjc1MTE3OSwgMS4xMTg0MSwgMS40ODQyNiwgMS44NTE0OSwgMi4yMTUzNiIsIFwKLSAgICAgICAgICAiMC4xMTAzMTMsIDAuNDYxNjU4LCAwLjc1MTE3OCwgMS4xMTgzNywgMS40ODIyOSwgMS44NTE0MSwgMi4yMTUzNiIsIFwKLSAgICAgICAgICAiMC4xMTAyMzcsIDAuNDYxNjA3LCAwLjc1MjI2LCAxLjExODQ0LCAxLjQ4NDczLCAxLjg1MTIyLCAyLjIxNTA1IiwgXAotICAgICAgICAgICIwLjExMDMxNiwgMC40NjE2ODgsIDAuNzUxMTE3LCAxLjExNTQ5LCAxLjQ4NDY1LCAxLjg1MTg2LCAyLjIxNTE4IiwgXAotICAgICAgICAgICIwLjExMDMyLCAwLjQ2MTYzNCwgMC43NTExMTksIDEuMTE1NDksIDEuNDg0NjYsIDEuODQ3MywgMi4yMTUwMyIsIFwKLSAgICAgICAgICAiMC4xMTAyMjMsIDAuNDYxNjU1LCAwLjc1MTE3LCAxLjExNTQ5LCAxLjQ4NDk4LCAxLjg1MTM3LCAyLjIxNSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMjUzODMsIDAuNDM3MDIsIDAuNjAyMTYyLCAwLjgwODM3OCwgMS4wMTQ1NiwgMS4yMjA3LCAxLjQyNjc3IiwgXAotICAgICAgICAgICIwLjIzNzI0MywgMC40NDg4NzIsIDAuNjE0MDA4LCAwLjgyMDI2MSwgMS4wMjYzNiwgMS4yMzI1NSwgMS40Mzg2MSIsIFwKLSAgICAgICAgICAiMC4yNTIzNDEsIDAuNDY0MDk5LCAwLjYyOTIyMywgMC44MzU0OCwgMS4wNDE2MSwgMS4yNDc3MSwgMS40NTM4NSIsIFwKLSAgICAgICAgICAiMC4yNjc2NzcsIDAuNDc5MzQ3LCAwLjY0NDQ5MywgMC44NTA3NTksIDEuMDU2ODcsIDEuMjYyOTksIDEuNDY5MTEiLCBcCi0gICAgICAgICAgIjAuMjgyNjQxLCAwLjQ5NDQyNSwgMC42NTk1NjIsIDAuODY1ODA4LCAxLjA3MTkzLCAxLjI3ODA2LCAxLjQ4NDE3IiwgXAotICAgICAgICAgICIwLjMwNTY2NywgMC41MTc0NTQsIDAuNjgyNTc3LCAwLjg4ODgzNywgMS4wOTQ5NiwgMS4zMDEwOCwgMS41MDcyIiwgXAotICAgICAgICAgICIwLjMyNDI0OCwgMC41MzYwMTIsIDAuNzAxMTA2LCAwLjkwNzM5NCwgMS4xMTM1MSwgMS4zMTk2NCwgMS41MjU3NiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTcwNjUsIDAuNTE0NzEzLCAwLjgzOTIyOSwgMS4yNTAwMiwgMS42NjI3MywgMi4wNjkzNywgMi40ODE3MSIsIFwKLSAgICAgICAgICAiMC4xMTcwNTEsIDAuNTE0NjgsIDAuODM5NDEyLCAxLjI0ODY5LCAxLjY2MzM4LCAyLjA3MzY0LCAyLjQ4MTIzIiwgXAotICAgICAgICAgICIwLjExNzEwMiwgMC41MTQ1OTcsIDAuODQwNjc3LCAxLjI1MTQ1LCAxLjY2MDE3LCAyLjA3MTE5LCAyLjQ4NDUxIiwgXAotICAgICAgICAgICIwLjExNzA1NCwgMC41MTM2NjQsIDAuODQwMzczLCAxLjI1MTM4LCAxLjY1OTY4LCAyLjA3MTA5LCAyLjQ4Mzk0IiwgXAotICAgICAgICAgICIwLjExNzE0OCwgMC41MTQ2MDYsIDAuODQxOTM2LCAxLjI1MTUyLCAxLjY2Mjk4LCAyLjA3MDYzLCAyLjQ4MzY3IiwgXAotICAgICAgICAgICIwLjExNzA4MSwgMC41MTQ0NzksIDAuODQwNTM1LCAxLjI1MTQ0LCAxLjY2Mjg2LCAyLjA3MDM2LCAyLjQ4NDEzIiwgXAotICAgICAgICAgICIwLjExNzA4NSwgMC41MTQ0ODMsIDAuODQxNTU1LCAxLjI1MTQ4LCAxLjY2Mjk0LCAyLjA3MDMsIDIuNDg0MDMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTc0OTA4LCAwLjM2MDk1NiwgMC41MDQ3NjksIDAuNjg0MzEyLCAwLjg2MzcxMiwgMS4wNDMxLCAxLjIyMjUyIiwgXAotICAgICAgICAgICIwLjE4NTkxLCAwLjM3MTk0OSwgMC41MTU3NDgsIDAuNjk1Mjk5LCAwLjg3NDcwNywgMS4wNTQwOSwgMS4yMzM1IiwgXAotICAgICAgICAgICIwLjE5OTQxMywgMC4zODU0NjQsIDAuNTI5MjQ0LCAwLjcwODg0LCAwLjg4ODIyNSwgMS4wNjc2LCAxLjI0NzAzIiwgXAotICAgICAgICAgICIwLjIxMjg5OSwgMC4zOTg5NiwgMC41NDI3MjIsIDAuNzIyMzQxLCAwLjkwMTcyNiwgMS4wODExLCAxLjI2MDU0IiwgXAotICAgICAgICAgICIwLjIyNjU0OSwgMC40MTI1OTMsIDAuNTU2MzgyLCAwLjczNjAyLCAwLjkxNTQwNCwgMS4wOTQ3NSwgMS4yNzQxNSIsIFwKLSAgICAgICAgICAiMC4yNDg0NywgMC40MzQ1NjEsIDAuNTc4MzUzLCAwLjc1NzkyMSwgMC45MzczNSwgMS4xMTY3MywgMS4yOTYxIiwgXAotICAgICAgICAgICIwLjI2NzkwMiwgMC40NTM5NzcsIDAuNTk3Nzg5LCAwLjc3NzQzMiwgMC45NTY4MjMsIDEuMTM2MTcsIDEuMzE1NTkiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTA5ODY0LCAwLjQ2MTY1NiwgMC43NTI1MywgMS4xMTU3MSwgMS40ODQ4LCAxLjg0ODcsIDIuMjE4ODIiLCBcCi0gICAgICAgICAgIjAuMTA5ODIyLCAwLjQ2MTYxOSwgMC43NTI0NSwgMS4xMTU4LCAxLjQ4NDczLCAxLjg1MDYsIDIuMjE1MTMiLCBcCi0gICAgICAgICAgIjAuMTA5ODg5LCAwLjQ2MTYxNSwgMC43NTIyOTMsIDEuMTE4NCwgMS40ODQ3LCAxLjg1MDYxLCAyLjIxNTY0IiwgXAotICAgICAgICAgICIwLjEwOTgyNywgMC40NjE1NDMsIDAuNzUxMDQyLCAxLjExODQxLCAxLjQ4NDY5LCAxLjg1MDg3LCAyLjIxODY1IiwgXAotICAgICAgICAgICIwLjEwOTk3OCwgMC40NjE2MzcsIDAuNzUxMDg4LCAxLjExNTQ5LCAxLjQ4NDc1LCAxLjg1MTMyLCAyLjIxNTA1IiwgXAotICAgICAgICAgICIwLjEwOTk4MywgMC40NjE1NTksIDAuNzUxMTIzLCAxLjExNjMxLCAxLjQ4NDY2LCAxLjg1MTE2LCAyLjIxODIiLCBcCi0gICAgICAgICAgIjAuMTA5OTc2LCAwLjQ2MTY0NSwgMC43NTEwOTMsIDEuMTE1NDksIDEuNDg0NzQsIDEuODUxMjYsIDIuMjE0OTYiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTYxNTE1LCAwLjM3Mzk1NSwgMC41Mzg5NjIsIDAuNzQ1MDkyLCAwLjk1MTI3NiwgMS4xNTc1MSwgMS4zNjM1NCIsIFwKLSAgICAgICAgICAiMC4xNzIxMzgsIDAuMzg0NzM3LCAwLjU0OTcyMSwgMC43NTU5MTcsIDAuOTYyMDM5LCAxLjE2ODM2LCAxLjM3NDUxIiwgXAotICAgICAgICAgICIwLjE4NTYzNywgMC4zOTgxNjUsIDAuNTYzMTk1LCAwLjc2OTM4OCwgMC45NzU0NzUsIDEuMTgxODksIDEuMzg3NzMiLCBcCi0gICAgICAgICAgIjAuMTk4ODM5LCAwLjQxMTUxNiwgMC41NzY1MjksIDAuNzgyNzA5LCAwLjk4ODg1NCwgMS4xOTUwMywgMS40MDExNCIsIFwKLSAgICAgICAgICAiMC4yMTE5OTMsIDAuNDI0NjM4LCAwLjU4OTY1MywgMC43OTU4NDQsIDEuMDAxOTYsIDEuMjA4MywgMS40MTQ1OSIsIFwKLSAgICAgICAgICAiMC4yMzMyMjEsIDAuNDQ1ODI2LCAwLjYxMDg3NCwgMC44MTcwOTYsIDEuMDIzMTgsIDEuMjI5NjQsIDEuNDM1NDYiLCBcCi0gICAgICAgICAgIjAuMjUxNjI1LCAwLjQ2NDIzNiwgMC42MjkyODIsIDAuODM1NDg2LCAxLjA0MTY0LCAxLjI0Nzg0LCAxLjQ1Mzk0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExODY0MiwgMC41MTUwNDEsIDAuODM5MzI3LCAxLjI1MjA4LCAxLjY2MzQxLCAyLjA2NzIzLCAyLjQ3OTY2IiwgXAotICAgICAgICAgICIwLjExODUxNCwgMC41MTUwMywgMC44NDE3MDQsIDEuMjUyMTcsIDEuNjYxMDcsIDIuMDY4OTYsIDIuNDc4OCIsIFwKLSAgICAgICAgICAiMC4xMTg1NDMsIDAuNTE0OTY0LCAwLjg0MDUxMywgMS4yNTIxOSwgMS42NjE5MiwgMi4wNzA5NywgMi40ODY2NSIsIFwKLSAgICAgICAgICAiMC4xMTg1MTksIDAuNTE1MDM0LCAwLjgzOTA5OCwgMS4yNDkzNywgMS42NTkyNiwgMi4wNjk2OSwgMi40Nzg3NCIsIFwKLSAgICAgICAgICAiMC4xMTg1ODgsIDAuNTE1MDE1LCAwLjg0MTg2NCwgMS4yNTIxNywgMS42NjEyOCwgMi4wNjkxNCwgMi40ODE5OSIsIFwKLSAgICAgICAgICAiMC4xMTg1NjgsIDAuNTE0NTA0LCAwLjgzOTM5NiwgMS4yNTIyLCAxLjY2MDQ4LCAyLjA3MTEzLCAyLjQ4NjY3IiwgXAotICAgICAgICAgICIwLjExODc0OCwgMC41MTUwMDcsIDAuODM5NTAzLCAxLjI0ODQ4LCAxLjY1OTI2LCAyLjA3MDIyLCAyLjQ3ODYyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE2ODAwNiwgMC4zNTUwOCwgMC40OTg2OTcsIDAuNjc4MTE5LCAwLjg1NzUxMywgMS4wMzY5MywgMS4yMTYyOSIsIFwKLSAgICAgICAgICAiMC4xNzk5NTYsIDAuMzY3MTM1LCAwLjUxMDc0NywgMC42OTAxNywgMC44Njk0ODEsIDEuMDQ4OTcsIDEuMjI4MzUiLCBcCi0gICAgICAgICAgIjAuMTk1MjcsIDAuMzgyMzc1LCAwLjUyNjAxOSwgMC43MDU0MjcsIDAuODg0NzQxLCAxLjA2NDE3LCAxLjI0MzYyIiwgXAotICAgICAgICAgICIwLjIxMDAyLCAwLjM5Njk3NSwgMC41NDA1NzgsIDAuNzIwMDEzLCAwLjg5OTM1MywgMS4wNzg4MiwgMS4yNTgxNiIsIFwKLSAgICAgICAgICAiMC4yMjQwNzUsIDAuNDExMDIyLCAwLjU1NDYzOSwgMC43MzQwNywgMC45MTM0MTQsIDEuMDkyODgsIDEuMjcyMjMiLCBcCi0gICAgICAgICAgIjAuMjQ0NDY2LCAwLjQzMTQ0LCAwLjU3NTA0OCwgMC43NTQ1NDgsIDAuOTMzODI2LCAxLjExMzMsIDEuMjkyNjMiLCBcCi0gICAgICAgICAgIjAuMjU5ODc4LCAwLjQ0NjgxMSwgMC41OTA0MjEsIDAuNzY5ODM1LCAwLjk0OTM1MiwgMS4xMjg3NiwgMS4zMDgwNyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTE0LCAwLjQ2MjIyOSwgMC43NTExMzksIDEuMTE1MzgsIDEuNDg0NDEsIDEuODQ3OTIsIDIuMjEyNTQiLCBcCi0gICAgICAgICAgIjAuMTExNDA4LCAwLjQ2MjI0OSwgMC43NTExNTMsIDEuMTE1MjksIDEuNDgxNTUsIDEuODQ3OTUsIDIuMjEyNDciLCBcCi0gICAgICAgICAgIjAuMTExNDg4LCAwLjQ2MjIyMywgMC43NTExMSwgMS4xMTc3MSwgMS40ODM2NCwgMS44NTEyMywgMi4yMTI0NyIsIFwKLSAgICAgICAgICAiMC4xMTE1NzYsIDAuNDYyMjMxLCAwLjc1MTIxNywgMS4xMTUzNywgMS40ODQyMSwgMS44NDc5OCwgMi4yMTI2IiwgXAotICAgICAgICAgICIwLjExMTU3OCwgMC40NjIyMywgMC43NTExNzUsIDEuMTE1MzEsIDEuNDg0MjEsIDEuODQ3OTQsIDIuMjEyNjEiLCBcCi0gICAgICAgICAgIjAuMTExNTMyLCAwLjQ2MjIyOCwgMC43NTExOTYsIDEuMTE0OTgsIDEuNDg0MiwgMS44NDc5OSwgMi4yMTI2IiwgXAotICAgICAgICAgICIwLjExMTM5MiwgMC40NjIxNjcsIDAuNzUxMDkxLCAxLjExNzcyLCAxLjQ4MDE2LCAxLjg0NzA1LCAyLjIxMjI0Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIwMTAxLCAwLjQxMjc1OCwgMC41Nzc5MjMsIDAuNzg0MTQyLCAwLjk5MDI2NSwgMS4xOTYzOSwgMS40MDI1NCIsIFwKLSAgICAgICAgICAiMC4yMTM1MTUsIDAuNDI1MTE0LCAwLjU5MDI0OSwgMC43OTY0OTUsIDEuMDAyNjEsIDEuMjA4NzYsIDEuNDE0OTEiLCBcCi0gICAgICAgICAgIjAuMjI4NzI5LCAwLjQ0MDQ5OSwgMC42MDU2NiwgMC44MTE5MjEsIDEuMDE4MDMsIDEuMjI0MTUsIDEuNDMwMjkiLCBcCi0gICAgICAgICAgIjAuMjQzOTcsIDAuNDU1NTY4LCAwLjYyMDcsIDAuODI2OTQ5LCAxLjAzMzA2LCAxLjIzOTIxLCAxLjQ0NTMxIiwgXAotICAgICAgICAgICIwLjI1ODI1NiwgMC40Njk4NzMsIDAuNjM1MDA3LCAwLjg0MTI1MywgMS4wNDczNywgMS4yNTM1MiwgMS40NTk2MiIsIFwKLSAgICAgICAgICAiMC4yNzg5MDYsIDAuNDkwNTE1LCAwLjY1NTY1MywgMC44NjE5MDIsIDEuMDY4MDIsIDEuMjc0MTYsIDEuNDgwMjciLCBcCi0gICAgICAgICAgIjAuMjk1MjE2LCAwLjUwNjgzNiwgMC42NzE5NzMsIDAuODc4Mjg3LCAxLjA4NDMzLCAxLjI5MDQ4LCAxLjQ5Njc3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExNzE2NCwgMC41MTQ2NzMsIDAuODM5ODEsIDEuMjUxODEsIDEuNjYyOTQsIDIuMDcwMTMsIDIuNDc3NjMiLCBcCi0gICAgICAgICAgIjAuMTE3MTE3LCAwLjUxNDY3MiwgMC44MzkwMzYsIDEuMjUxNzgsIDEuNjYzMjUsIDIuMDcwNzcsIDIuNDg0OTciLCBcCi0gICAgICAgICAgIjAuMTE3MDczLCAwLjUxMzgyLCAwLjg0MDY3NSwgMS4yNTE0MSwgMS42NjMwOSwgMi4wNzEzNiwgMi40ODQ0MSIsIFwKLSAgICAgICAgICAiMC4xMTcxMDgsIDAuNTE0NTM1LCAwLjgzOTY4OCwgMS4yNTE2NCwgMS42NjMyMywgMi4wNzA3NiwgMi40ODIzOCIsIFwKLSAgICAgICAgICAiMC4xMTcwNDUsIDAuNTE0NTI5LCAwLjgzOTI4OCwgMS4yNTE2MiwgMS42NjMyNywgMi4wNzA3NiwgMi40ODU3NyIsIFwKLSAgICAgICAgICAiMC4xMTcwNDcsIDAuNTE0NTIyLCAwLjgzOTcwOSwgMS4yNTE2LCAxLjY2MzIxLCAyLjA3MDc3LCAyLjQ4MDk3IiwgXAotICAgICAgICAgICIwLjExNjk3NywgMC41MTQ1MTYsIDAuODM4OTM0LCAxLjI0ODY1LCAxLjY2MzI1LCAyLjA3MDU3LCAyLjQ3OTQ0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzNjY1LCAwLjAwMzcxNywgMC4wMDM3MjQsIDAuMDAzNzI3LCAwLjAwMzcyOSwgMC4wMDM3MzEsIDAuMDAzNzMxIiwgXAotICAgICAgICAgICIwLjAwMzY1MywgMC4wMDM3MDYsIDAuMDAzNzEzLCAwLjAwMzcxNiwgMC4wMDM3MTksIDAuMDAzNzE5LCAwLjAwMzcyMSIsIFwKLSAgICAgICAgICAiMC4wMDM2NDUsIDAuMDAzNjk3LCAwLjAwMzcwNCwgMC4wMDM3MDcsIDAuMDAzNzA5LCAwLjAwMzcxMSwgMC4wMDM3MTEiLCBcCi0gICAgICAgICAgIjAuMDAzNjM5LCAwLjAwMzY5MSwgMC4wMDM2OTgsIDAuMDAzNzAyLCAwLjAwMzcwNCwgMC4wMDM3MDYsIDAuMDAzNzA3IiwgXAotICAgICAgICAgICIwLjAwMzYzNiwgMC4wMDM2ODgsIDAuMDAzNjk0LCAwLjAwMzY5OSwgMC4wMDM3MDEsIDAuMDAzNzAyLCAwLjAwMzcwMyIsIFwKLSAgICAgICAgICAiMC4wMDM2MzIsIDAuMDAzNjg1LCAwLjAwMzY5LCAwLjAwMzY5NSwgMC4wMDM2OTcsIDAuMDAzNjk4LCAwLjAwMzciLCBcCi0gICAgICAgICAgIjAuMDAzNjMsIDAuMDAzNjg0LCAwLjAwMzY4OSwgMC4wMDM2OTMsIDAuMDAzNjk1LCAwLjAwMzY5NywgMC4wMDM2OTciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDM1MjcsIDAuMDAzNTkzLCAwLjAwMzYwMiwgMC4wMDM2MDcsIDAuMDAzNjEsIDAuMDAzNjExLCAwLjAwMzYxMiIsIFwKLSAgICAgICAgICAiMC4wMDM1MTEsIDAuMDAzNTc4LCAwLjAwMzU4NywgMC4wMDM1OTIsIDAuMDAzNTk0LCAwLjAwMzU5NiwgMC4wMDM1OTciLCBcCi0gICAgICAgICAgIjAuMDAzNSwgMC4wMDM1NjcsIDAuMDAzNTc2LCAwLjAwMzU4MSwgMC4wMDM1ODQsIDAuMDAzNTg1LCAwLjAwMzU4NiIsIFwKLSAgICAgICAgICAiMC4wMDM0OTQsIDAuMDAzNTYxLCAwLjAwMzU3LCAwLjAwMzU3NSwgMC4wMDM1NzcsIDAuMDAzNTc5LCAwLjAwMzU4IiwgXAotICAgICAgICAgICIwLjAwMzQ5LCAwLjAwMzU1NywgMC4wMDM1NjYsIDAuMDAzNTcxLCAwLjAwMzU3NCwgMC4wMDM1NzUsIDAuMDAzNTc2IiwgXAotICAgICAgICAgICIwLjAwMzQ4NywgMC4wMDM1NTQsIDAuMDAzNTYzLCAwLjAwMzU2OCwgMC4wMDM1NzEsIDAuMDAzNTcyLCAwLjAwMzU3NCIsIFwKLSAgICAgICAgICAiMC4wMDM0ODcsIDAuMDAzNTU0LCAwLjAwMzU2MywgMC4wMDM1NjgsIDAuMDAzNTcxLCAwLjAwMzU3MiwgMC4wMDM1NzMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDIxMTMsIDAuMDAyMTYxLCAwLjAwMjE2OCwgMC4wMDIxNywgMC4wMDIxNzQsIDAuMDAyMTczLCAwLjAwMjE3NSIsIFwKLSAgICAgICAgICAiMC4wMDIwODgsIDAuMDAyMTM4LCAwLjAwMjE0NCwgMC4wMDIxNDcsIDAuMDAyMTQ4LCAwLjAwMjE1LCAwLjAwMjE1IiwgXAotICAgICAgICAgICIwLjAwMjA2OSwgMC4wMDIxMiwgMC4wMDIxMjYsIDAuMDAyMTI5LCAwLjAwMjEzMSwgMC4wMDIxMzIsIDAuMDAyMTMzIiwgXAotICAgICAgICAgICIwLjAwMjA1NywgMC4wMDIxMDksIDAuMDAyMTE1LCAwLjAwMjExOSwgMC4wMDIxMjEsIDAuMDAyMTIyLCAwLjAwMjEyMyIsIFwKLSAgICAgICAgICAiMC4wMDIwNDcsIDAuMDAyMTAyLCAwLjAwMjEwNywgMC4wMDIxMTMsIDAuMDAyMTE0LCAwLjAwMjExNiwgMC4wMDIxMTYiLCBcCi0gICAgICAgICAgIjAuMDAyMDM3LCAwLjAwMjA5NCwgMC4wMDIxMDEsIDAuMDAyMTA3LCAwLjAwMjEwOSwgMC4wMDIxMSwgMC4wMDIxMTEiLCBcCi0gICAgICAgICAgIjAuMDAyMDMzLCAwLjAwMjA5MSwgMC4wMDIwOTksIDAuMDAyMTA2LCAwLjAwMjEwOCwgMC4wMDIxMSwgMC4wMDIxMTEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDMwMTMsIDAuMDAzMDc5LCAwLjAwMzA4OCwgMC4wMDMwOTMsIDAuMDAzMDk2LCAwLjAwMzA5OCwgMC4wMDMwOTkiLCBcCi0gICAgICAgICAgIjAuMDAzMDA2LCAwLjAwMzA3MSwgMC4wMDMwODEsIDAuMDAzMDg2LCAwLjAwMzA4OSwgMC4wMDMwOSwgMC4wMDMwOTEiLCBcCi0gICAgICAgICAgIjAuMDAzMDAzLCAwLjAwMzA2OCwgMC4wMDMwNzgsIDAuMDAzMDgzLCAwLjAwMzA4NSwgMC4wMDMwODcsIDAuMDAzMDg4IiwgXAotICAgICAgICAgICIwLjAwMzAwMSwgMC4wMDMwNjYsIDAuMDAzMDc1LCAwLjAwMzA4MSwgMC4wMDMwODMsIDAuMDAzMDg1LCAwLjAwMzA4NiIsIFwKLSAgICAgICAgICAiMC4wMDMwMDEsIDAuMDAzMDY2LCAwLjAwMzA3NSwgMC4wMDMwOCwgMC4wMDMwODMsIDAuMDAzMDg1LCAwLjAwMzA4NiIsIFwKLSAgICAgICAgICAiMC4wMDMwMDEsIDAuMDAzMDY2LCAwLjAwMzA3NiwgMC4wMDMwODEsIDAuMDAzMDg0LCAwLjAwMzA4NSwgMC4wMDMwODYiLCBcCi0gICAgICAgICAgIjAuMDAzMDAyLCAwLjAwMzA2OCwgMC4wMDMwNzcsIDAuMDAzMDgyLCAwLjAwMzA4NSwgMC4wMDMwODYsIDAuMDAzMDg4Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IERGRk5TUlgxICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChERkZOU1JYMSkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjMxMTUzMjsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBmZiAoTjM1LFFCSU5UKSB7Ci0gICAgbmV4dF9zdGF0ZSA6ICJEIjsKLSAgICBjbG9ja2VkX29uIDogIighQ0tOKSI7Ci0gICAgY2xlYXIgOiAiKCFSTikiOwotICAgIHByZXNldCA6ICIoIVNOKSI7Ci0gICAgY2xlYXJfcHJlc2V0X3ZhcjEgOiBIOwotICAgIGNsZWFyX3ByZXNldF92YXIyIDogTDsKLSAgfQotICBwaW4oQ0tOKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA1ODYwNzY7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNTg1ODAyOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDU4NjA3NjsKLSAgICBjbG9jayA6IHRydWU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA1NDExLCAwLjAwNTM5OCwgMC4wMDUzODYsIDAuMDA1Mzc5LCAwLjAwNTM3NCwgMC4wMDUzNjcsIDAuMDA1MzY1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyNzkxLCAwLjAwMjc4MSwgMC4wMDI3NzMsIDAuMDAyNzY2LCAwLjAwMjc2MSwgMC4wMDI3NTcsIDAuMDAyNzU0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQmUk4mU04iOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1JOX0VRXzFfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjI1NDE1OSwgMC4yNjYwODQsIDAuMjgxMDE4LCAwLjI5NjA1NiwgMC4zMTIwNDksIDAuMzM2MjIyLCAwLjM1Njg4MSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMzQzMTAzLCAwLjM1NDU4MiwgMC4zNjk0NDQsIDAuMzg0MjExLCAwLjM5ODI1NywgMC40MjExMjIsIDAuNDM5MTM5Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihEKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA1OTcyMzY7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNTk1NTI3OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDU5NzIzNjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDIyNTgsIDAuMDAyMjQ3LCAwLjAwMjI0LCAwLjAwMjIzNCwgMC4wMDIyMywgMC4wMDIyMjUsIDAuMDAyMjIxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyNDA4LCAwLjAwMjQwMiwgMC4wMDIzOTgsIDAuMDAyMzk1LCAwLjAwMjM5MiwgMC4wMDIzODgsIDAuMDAyMzg1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfZmFsbGluZzsKLSAgICAgIHdoZW4gOiAiUk4mU04iOwotICAgICAgc2RmX2NvbmQgOiAiUk5fRVFfMV9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDUsIDAuMDYxMjUsIDAuMDczNzUsIDAuMDg2MjUsIDAuMDk4NzUsIDAuMTIxMjUsIDAuMTQyNSIsIFwKLSAgICAgICAgICAiMC4wMzI1LCAwLjA0Mzc1LCAwLjA1NjI1LCAwLjA3NSwgMC4wODc1LCAwLjExLCAwLjEzMTI1IiwgXAotICAgICAgICAgICIwLjAyLCAwLjAzMTI1LCAwLjA0Mzc1LCAwLjA1NjI1LCAwLjA3NSwgMC4wOTc1LCAwLjExMjUiLCBcCi0gICAgICAgICAgIjAuMDA3NSwgMC4wMTg3NSwgMC4wMzEyNSwgMC4wNDM3NSwgMC4wNjI1LCAwLjA4NSwgMC4xIiwgXAotICAgICAgICAgICItMC4wMDUsIDAuMDA2MjUsIDAuMDE4NzUsIDAuMDM3NSwgMC4wNSwgMC4wNzI1LCAwLjA4NzUiLCBcCi0gICAgICAgICAgIi0wLjAyMTI1LCAtMC4wMSwgMC4wMDI1LCAwLjAxNSwgMC4wMzM3NSwgMC4wNTYyNSwgMC4wNzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAyNSwgLTAuMDEyNSwgMC4wMDYyNSwgMC4wMTg3NSwgMC4wNDEyNSwgMC4wNTYyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjA0Mzc1LCAtMC4wMzI1LCAtMC4wMiwgLTAuMDEzNzUsIC0wLjAwNzUsIDAuMDA4NzUsIDAuMDE3NSIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNDM3NSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAwMjUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA2NzUsIC0wLjA1NjI1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAxNSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA4LCAtMC4wNjg3NSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDI3NSwgLTAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjA5MjUsIC0wLjA4MTI1LCAtMC4wNjg3NSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA0LCAtMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMTA4NzUsIC0wLjA5NzUsIC0wLjA5MTI1LCAtMC4wNzg3NSwgLTAuMDcyNSwgLTAuMDYyNSwgLTAuMDQ3NSIsIFwKLSAgICAgICAgICAiLTAuMTIzNzUsIC0wLjExMjUsIC0wLjEwNjI1LCAtMC4wOTM3NSwgLTAuMDg3NSwgLTAuMDcxMjUsIC0wLjA2MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0tOIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfZmFsbGluZzsKLSAgICAgIHdoZW4gOiAiUk4mU04iOwotICAgICAgc2RmX2NvbmQgOiAiUk5fRVFfMV9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwNjI1LCAwLjA5NSwgMC4wODI1LCAwLjA2Mzc1LCAwLjA1MTI1LCAwLjAyMjUsIDAuMDA3NSIsIFwKLSAgICAgICAgICAiMC4xMTc1LCAwLjEwNjI1LCAwLjA5Mzc1LCAwLjA3NSwgMC4wNjI1LCAwLjAzMzc1LCAwLjAxODc1IiwgXAotICAgICAgICAgICIwLjEzNjI1LCAwLjExODc1LCAwLjEwNjI1LCAwLjA4NzUsIDAuMDc1LCAwLjA1MjUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMTQ4NzUsIDAuMTM3NSwgMC4xMTg3NSwgMC4xMDYyNSwgMC4wODc1LCAwLjA2NSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4xNjEyNSwgMC4xNSwgMC4xMzEyNSwgMC4xMTg3NSwgMC4xLCAwLjA3NzUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIjAuMTgzNzUsIDAuMTcyNSwgMC4xNTM3NSwgMC4xNDEyNSwgMC4xMjI1LCAwLjEsIDAuMDc4NzUiLCBcCi0gICAgICAgICAgIjAuMTk4NzUsIDAuMTg3NSwgMC4xNzUsIDAuMTU2MjUsIDAuMTQzNzUsIDAuMTE1LCAwLjA5Mzc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTYyNSwgMC4xNTEyNSwgMC4xMzI1LCAwLjEyLCAwLjEwMTI1LCAwLjA3ODc1LCAwLjA2Mzc1IiwgXAotICAgICAgICAgICIwLjE3Mzc1LCAwLjE2MjUsIDAuMTQzNzUsIDAuMTMxMjUsIDAuMTEyNSwgMC4wOSwgMC4wNzUiLCBcCi0gICAgICAgICAgIjAuMTg2MjUsIDAuMTc1LCAwLjE1NjI1LCAwLjE0Mzc1LCAwLjEyNSwgMC4xMDI1LCAwLjA4NzUiLCBcCi0gICAgICAgICAgIjAuMTk4NzUsIDAuMTg3NSwgMC4xNjg3NSwgMC4xNTYyNSwgMC4xMzc1LCAwLjExNSwgMC4xIiwgXAotICAgICAgICAgICIwLjIxMTI1LCAwLjIsIDAuMTgxMjUsIDAuMTY4NzUsIDAuMTUsIDAuMTI3NSwgMC4xMTI1IiwgXAotICAgICAgICAgICIwLjIzMzc1LCAwLjIyMjUsIDAuMjAzNzUsIDAuMTg1LCAwLjE3MjUsIDAuMTUsIDAuMTI4NzUiLCBcCi0gICAgICAgICAgIjAuMjQ4NzUsIDAuMjM3NSwgMC4yMTg3NSwgMC4yLCAwLjE4NzUsIDAuMTY1LCAwLjE1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihRKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMTM0Mjc3OwotICAgIGZ1bmN0aW9uIDogIk4zNSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0tOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5vbl91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogZmFsbGluZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zNTY0MTUsIDAuMzk5OTMsIDAuNjQ1NjUyLCAwLjg2MzA0NiwgMS4xNTA0LCAxLjcyNzY1LCAyLjA4NzcxIiwgXAotICAgICAgICAgICIwLjM2ODA5NywgMC40MTE2NTIsIDAuNjU3MTU2LCAwLjg3MzQ3MiwgMS4xNjIwNSwgMS43Mzc3NywgMi4wOTk0OSIsIFwKLSAgICAgICAgICAiMC4zODI3OTUsIDAuNDI2MywgMC42NzIyNjgsIDAuODg4OTk1LCAxLjE3NjksIDEuNzUzNTgsIDIuMTEzOTUiLCBcCi0gICAgICAgICAgIjAuMzk3NTgzLCAwLjQ0MTEsIDAuNjg2NzUxLCAwLjkwMzUwMiwgMS4xOTE1MywgMS43NjgwOSwgMi4xMjg5MiIsIFwKLSAgICAgICAgICAiMC40MTIyOTEsIDAuNDU1ODkxLCAwLjcwMTI0MywgMC45MTc0MTEsIDEuMjA2MTksIDEuNzgwOTksIDIuMTQzODIiLCBcCi0gICAgICAgICAgIjAuNDM0ODg0LCAwLjQ3ODQ1OSwgMC43MjM4NzEsIDAuOTQwMTYyLCAxLjIyODc5LCAxLjgwMjA1LCAyLjE2NjM5IiwgXAotICAgICAgICAgICIwLjQ1MzE0MSwgMC40OTY2NjEsIDAuNzQyMTk5LCAwLjk1ODc0MywgMS4yNDcwNiwgMS44MjMxNywgMi4xODQ2Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE2ODAzMSwgMC4yNTU4MSwgMC43NTA4OTYsIDEuMTkzODMsIDEuNzg0NjgsIDIuOTY2MTMsIDMuNzAzOTYiLCBcCi0gICAgICAgICAgIjAuMTY3NzUyLCAwLjI1NDI5NCwgMC43NTEwMTUsIDEuMTkzNTksIDEuNzg0NjgsIDIuOTY2MjcsIDMuNzAzOTEiLCBcCi0gICAgICAgICAgIjAuMTY3Nzc5LCAwLjI1NTczNSwgMC43NDQyNDksIDEuMTk0ODQsIDEuNzg0NjgsIDIuOTY1OTQsIDMuNzA0MDciLCBcCi0gICAgICAgICAgIjAuMTY4MDc5LCAwLjI1NTgyNSwgMC43NTA5NiwgMS4xOTMzNiwgMS43ODQ3MiwgMi45NjYyNCwgMy43MDM5NyIsIFwKLSAgICAgICAgICAiMC4xNjc4MDEsIDAuMjU1ODgzLCAwLjc1MTEyMSwgMS4xOTM4NSwgMS43ODQ3NCwgMi45Mzc1LCAzLjcwMzk1IiwgXAotICAgICAgICAgICIwLjE2Nzk5LCAwLjI1NTg5OSwgMC43NTExMSwgMS4xOTM3MywgMS43ODQ3NywgMi45NDQ5NSwgMy43MDM5OSIsIFwKLSAgICAgICAgICAiMC4xNjgwMzcsIDAuMjU1Nzk1LCAwLjc1MTA2NiwgMS4xOTM0OCwgMS43ODQ3OCwgMi45NzA4NSwgMy43MDQwMiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMjI4OTcsIDAuMzcyNjM1LCAwLjY1MjQ2NSwgMC45MDE3NDEsIDEuMjMyNTgsIDEuODkzNTYsIDIuMzA2NjQiLCBcCi0gICAgICAgICAgIjAuMzM0MzU1LCAwLjM4NDA3NiwgMC42NjUwMDYsIDAuOTEzMjU1LCAxLjI0MTMxLCAxLjkwNTAyLCAyLjMxMDExIiwgXAotICAgICAgICAgICIwLjM0OTI1NywgMC4zOTg5NzUsIDAuNjc5ODQ4LCAwLjkyODEwNiwgMS4yNTg5NSwgMS45MTk3OSwgMi4zMzMxMyIsIFwKLSAgICAgICAgICAiMC4zNjQwMTEsIDAuNDEzNzM3LCAwLjY5NDYwNSwgMC45NDI4NiwgMS4yNzM3LCAxLjkzNDU1LCAyLjM0NzkyIiwgXAotICAgICAgICAgICIwLjM3ODA1NSwgMC40Mjc3ODIsIDAuNzA4NjU1LCAwLjk1NjkwNiwgMS4yODc3NSwgMS45NDg2LCAyLjM2MTk2IiwgXAotICAgICAgICAgICIwLjQwMDkxOSwgMC40NTA2MjgsIDAuNzMxNTA2LCAwLjk3OTc2NywgMS4zMTA2MSwgMS45NzE1LCAyLjM4NDc1IiwgXAotICAgICAgICAgICIwLjQxODkzNiwgMC40Njg2NjgsIDAuNzQ5NTM4LCAwLjk5Nzc4NywgMS4zMjg2MywgMS45ODk0NiwgMi40MDI4MSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xODM3MzMsIDAuMjc5MDk1LCAwLjgzMjAyMSwgMS4zMjMzNCwgMS45NzY4LCAzLjI4NjY2LCA0LjEwNDE5IiwgXAotICAgICAgICAgICIwLjE4MzYyNywgMC4yNzk0NzcsIDAuODMzMDczLCAxLjMyMzMsIDEuOTc4MDQsIDMuMjg2LCA0LjEwNjA1IiwgXAotICAgICAgICAgICIwLjE4Mzc5MywgMC4yNzg3NTksIDAuODMzMTQ0LCAxLjMyMzMsIDEuOTc2NzcsIDMuMjg2NDMsIDQuMTA0MDEiLCBcCi0gICAgICAgICAgIjAuMTgzNzcyLCAwLjI3OTA5NiwgMC44MzMxMjMsIDEuMzIzMjksIDEuOTc2NzYsIDMuMjg2MzksIDQuMTAzOTQiLCBcCi0gICAgICAgICAgIjAuMTgzNzg5LCAwLjI3OTA4OSwgMC44MzMxMDMsIDEuMzIzMjgsIDEuOTc2NzQsIDMuMjg2NCwgNC4xMDM5OCIsIFwKLSAgICAgICAgICAiMC4xODM2OTIsIDAuMjc4NjkyLCAwLjgzMzE1NywgMS4zMjMzMSwgMS45NzY3OCwgMy4yODY3NCwgNC4xMDQxIiwgXAotICAgICAgICAgICIwLjE4Mzc4OCwgMC4yNzkwOTIsIDAuODMzMDk2LCAxLjMyMzI5LCAxLjk3NjcyLCAzLjI4NjUsIDQuMTAzOTkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUk4iOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGNsZWFyOwotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC40NDI1NjYsIDAuNDkyMzI5LCAwLjc3MjUwMywgMS4wMjEyMywgMS4zNTE4MiwgMi4wMDcwNCwgMi40MjU3NyIsIFwKLSAgICAgICAgICAiMC40NTQyMDQsIDAuNTA0MDA4LCAwLjc4Mzc4NiwgMS4wMzI4LCAxLjM2MzQsIDIuMDE4MzYsIDIuNDM3MzIiLCBcCi0gICAgICAgICAgIjAuNDY5MDYzLCAwLjUxODc4LCAwLjc5OTU1NiwgMS4wNDc3LCAxLjM3ODI1LCAyLjAzOTE5LCAyLjQ1MjI2IiwgXAotICAgICAgICAgICIwLjQ4MzYxNywgMC41MzMzOTEsIDAuODE0MDgsIDEuMDYyMjIsIDEuMzkyODEsIDIuMDQ3OSwgMi40NjY3IiwgXAotICAgICAgICAgICIwLjQ5ODExNSwgMC41NDc3NjEsIDAuODI4NTgzLCAxLjA3NjczLCAxLjQwNzI3LCAyLjA2ODI0LCAyLjQ4MTI1IiwgXAotICAgICAgICAgICIwLjUxOTcxMiwgMC41Njk1OTQsIDAuODUwMjE5LCAxLjA5ODM3LCAxLjQyODk1LCAyLjA4OTkzLCAyLjUwMjkzIiwgXAotICAgICAgICAgICIwLjUzNjg0MSwgMC41ODY2MDYsIDAuODY3MzYzLCAxLjExNTUsIDEuNDQ2MDUsIDIuMTA2OTcsIDIuNTIwMDUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTgzNjU0LCAwLjI3OTMyOCwgMC44MzMxMDYsIDEuMzIzODcsIDEuOTc5NjIsIDMuMjg5NzgsIDQuMTA5NTkiLCBcCi0gICAgICAgICAgIjAuMTgzNjQ3LCAwLjI3OTI4NywgMC44MzMwOTEsIDEuMzIzODUsIDEuOTc5MTIsIDMuMjkyNzEsIDQuMTA5NjUiLCBcCi0gICAgICAgICAgIjAuMTgzNTkzLCAwLjI3ODkxNiwgMC44MzMxMDMsIDEuMzIzOCwgMS45NzkxNCwgMy4yODk2OSwgNC4xMDk2OCIsIFwKLSAgICAgICAgICAiMC4xODM2NjYsIDAuMjc5MzU3LCAwLjgzMzEwNCwgMS4zMjM4OCwgMS45NzkxNSwgMy4yODk4MiwgNC4xMDk2NSIsIFwKLSAgICAgICAgICAiMC4xODM2NTIsIDAuMjc5MTkxLCAwLjgzMzEwOCwgMS4zMjM4OCwgMS45NzkxNSwgMy4yODk4NiwgNC4xMDk2MSIsIFwKLSAgICAgICAgICAiMC4xODM2OSwgMC4yNzg5NiwgMC44MzMwOTgsIDEuMzIzNTMsIDEuOTc5MTYsIDMuMjg5NzQsIDQuMTA5NzciLCBcCi0gICAgICAgICAgIjAuMTgzNTYxLCAwLjI3ODg5OCwgMC44MzMwOSwgMS4zMjM4NywgMS45NzkxNiwgMy4yODk4NCwgNC4xMDk3MSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcHJlc2V0OwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yODg3MDEsIDAuMzMyMjY1LCAwLjU3NzY3MywgMC43OTM3OTUsIDEuMDgyNywgMS42NjAyNSwgMi4wMjE3OCIsIFwKLSAgICAgICAgICAiMC4zMDA0MDUsIDAuMzQzOTM1LCAwLjU4OTk1MiwgMC44MDUyNjQsIDEuMDkzNTksIDEuNjcxMzQsIDIuMDMzNjkiLCBcCi0gICAgICAgICAgIjAuMzE0ODc5LCAwLjM1ODQ0MywgMC42MDM4MDgsIDAuODIwNDY1LCAxLjEwODYyLCAxLjY4NjI2LCAyLjA0NjY3IiwgXAotICAgICAgICAgICIwLjMyODQ1MywgMC4zNzE5ODYsIDAuNjE3MjEyLCAwLjgzMzMyLCAxLjEyMTY0LCAxLjY5OTI0LCAyLjA2MTc1IiwgXAotICAgICAgICAgICIwLjM0MTQzOCwgMC4zODUwMzEsIDAuNjMwMzgyLCAwLjg0NzMxNiwgMS4xMzUzOSwgMS43MTI4NiwgMi4wNzE4OCIsIFwKLSAgICAgICAgICAiMC4zNjMzMjUsIDAuNDA2ODc3LCAwLjY1MjE3NSwgMC44Njg0OTIsIDEuMTU3MjUsIDEuNzM0OTQsIDIuMDkzMzQiLCBcCi0gICAgICAgICAgIjAuMzgzNTE0LCAwLjQyNzA1NSwgMC42NzIzNjEsIDAuODg4NzcxLCAxLjE3NzM3LCAxLjc1NTE0LCAyLjExMzYiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTY4NzYzLCAwLjI1NDIzOSwgMC43NTM5OTgsIDEuMTk4NSwgMS43ODkzMiwgMi45NzAyNiwgMy43MDQzNyIsIFwKLSAgICAgICAgICAiMC4xNjc3MzgsIDAuMjU0MjMzLCAwLjc1MzEwMSwgMS4xOTg1LCAxLjc4OTQ0LCAyLjk3MDYzLCAzLjcwOTY3IiwgXAotICAgICAgICAgICIwLjE2Njg1OSwgMC4yNTQxNDEsIDAuNzUyODIxLCAxLjE5ODQ3LCAxLjc4OTQ1LCAyLjk2NjIzLCAzLjcwNDI0IiwgXAotICAgICAgICAgICIwLjE2ODMyOSwgMC4yNTQyMSwgMC43NTA3NTksIDEuMTk4NSwgMS43ODkzMSwgMi45NjYzMSwgMy43MDQzNCIsIFwKLSAgICAgICAgICAiMC4xNjkzMTIsIDAuMjU0MTU1LCAwLjc1MDg3MywgMS4xOTg1MSwgMS43ODkzMywgMi45NjYyOCwgMy43MDk3MSIsIFwKLSAgICAgICAgICAiMC4xNjY3NjMsIDAuMjU0MjkyLCAwLjc1MzMxMSwgMS4xOTg1LCAxLjc4OTQzLCAyLjk3MTAyLCAzLjcwNDIzIiwgXAotICAgICAgICAgICIwLjE2ODY0OSwgMC4yNTQxNDYsIDAuNzUzMDU3LCAxLjE5ODUsIDEuNzg5NDMsIDIuOTcxMDYsIDMuNzA4NjIiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuNDE1MTIxLCAwLjQ2NDgwNiwgMC43NDU3MzcsIDAuOTkzOTYxLCAxLjMyNDYxLCAxLjk4NTEyLCAyLjM5ODc2IiwgXAotICAgICAgICAgICIwLjQyNzExMiwgMC40NzY3MDIsIDAuNzU3NzYyLCAxLjAwNTk5LCAxLjMzNjYyLCAxLjk5NzYzLCAyLjQxMDc0IiwgXAotICAgICAgICAgICIwLjQ0MjAwNSwgMC40OTE4OTUsIDAuNzcyNjQ1LCAxLjAyMDg4LCAxLjM1MTUzLCAyLjAxMjUyLCAyLjQyNTYyIiwgXAotICAgICAgICAgICIwLjQ1NjQwNSwgMC41MDYyMzIsIDAuNzg3MDAzLCAxLjAzNTI0LCAxLjM2NTgzLCAyLjAyNjksIDIuNDM5ODciLCBcCi0gICAgICAgICAgIjAuNDcwMjk0LCAwLjUyMDA2NCwgMC44MDAyMzUsIDEuMDQ5MTcsIDEuMzc5ODIsIDIuMDM0OSwgMi40NTM4NCIsIFwKLSAgICAgICAgICAiMC40OTI0MDQsIDAuNTQyMTI3LCAwLjgyMzA0OCwgMS4wNzEyNywgMS40MDE4OSwgMi4wNjI4OCwgMi40NzU5OCIsIFwKLSAgICAgICAgICAiMC41MTE1MDksIDAuNTYxMTA3LCAwLjg0MTE0MywgMS4wOTAzOSwgMS40MjEwMSwgMi4wNzgxNiwgMi40OTUxMSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xODM3MTUsIDAuMjc5MTUxLCAwLjgzMjY5NCwgMS4zMjI0MywgMS45Nzg0NiwgMy4yODYzOSwgNC4xMDU3NiIsIFwKLSAgICAgICAgICAiMC4xODM2MzIsIDAuMjc5MTAxLCAwLjgzMzA5OCwgMS4zMjM4MywgMS45NzkwOSwgMy4yODk2NiwgNC4xMDk2IiwgXAotICAgICAgICAgICIwLjE4MzY1NiwgMC4yNzg5LCAwLjgzMzEwMSwgMS4zMjM4NiwgMS45NzkxMywgMy4yODk4LCA0LjEwOTcxIiwgXAotICAgICAgICAgICIwLjE4MzU5NiwgMC4yNzk0MjQsIDAuODMzMTAxLCAxLjMyMzg2LCAxLjk3OTg3LCAzLjI4OTg1LCA0LjEwOTg4IiwgXAotICAgICAgICAgICIwLjE4MzYzMiwgMC4yNzg4OTUsIDAuODMzMTA1LCAxLjMyMzg4LCAxLjk3OTE3LCAzLjI4OTg4LCA0LjEwOTcxIiwgXAotICAgICAgICAgICIwLjE4MzYxLCAwLjI3OTI5NywgMC44MzMxMDUsIDEuMzI0NzMsIDEuOTc5ODYsIDMuMjg5OCwgNC4xMDk3MyIsIFwKLSAgICAgICAgICAiMC4xODM1ODQsIDAuMjc4ODg2LCAwLjgzMzExLCAxLjMyMzk1LCAxLjk3OTE3LCAzLjI4OTkzLCA0LjEwOTY3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0tOIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDM5MjIsIDAuMDAzOTI4LCAwLjAwMzkzNSwgMC4wMDM5MzcsIDAuMDAzOTM4LCAwLjAwMzkzOSwgMC4wMDM5MzkiLCBcCi0gICAgICAgICAgIjAuMDAzOTE3LCAwLjAwMzkyMywgMC4wMDM5MzEsIDAuMDAzOTMyLCAwLjAwMzkzMywgMC4wMDM5MzQsIDAuMDAzOTM0IiwgXAotICAgICAgICAgICIwLjAwMzkxMywgMC4wMDM5MTgsIDAuMDAzOTI2LCAwLjAwMzkyNywgMC4wMDM5MjgsIDAuMDAzOTI5LCAwLjAwMzkyOSIsIFwKLSAgICAgICAgICAiMC4wMDM5MDksIDAuMDAzOTE1LCAwLjAwMzkyMiwgMC4wMDM5MjQsIDAuMDAzOTI1LCAwLjAwMzkyNiwgMC4wMDM5MjYiLCBcCi0gICAgICAgICAgIjAuMDAzOTA4LCAwLjAwMzkxNCwgMC4wMDM5MjIsIDAuMDAzOTIzLCAwLjAwMzkyNCwgMC4wMDM5MjUsIDAuMDAzOTI1IiwgXAotICAgICAgICAgICIwLjAwMzkxLCAwLjAwMzkxNSwgMC4wMDM5MjMsIDAuMDAzOTI1LCAwLjAwMzkyNSwgMC4wMDM5MjYsIDAuMDAzOTI2IiwgXAotICAgICAgICAgICIwLjAwMzkwOSwgMC4wMDM5MTUsIDAuMDAzOTIyLCAwLjAwMzkyNCwgMC4wMDM5MjUsIDAuMDAzOTI1LCAwLjAwMzkyNiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzQ5NSwgMC4wMDM1MDEsIDAuMDAzNTA4LCAwLjAwMzUxLCAwLjAwMzUxMSwgMC4wMDM1MTEsIDAuMDAzNTEyIiwgXAotICAgICAgICAgICIwLjAwMzQ4OSwgMC4wMDM0OTUsIDAuMDAzNTAzLCAwLjAwMzUwNSwgMC4wMDM1MDYsIDAuMDAzNTA3LCAwLjAwMzUwNiIsIFwKLSAgICAgICAgICAiMC4wMDM0ODQsIDAuMDAzNDksIDAuMDAzNDk4LCAwLjAwMzQ5OSwgMC4wMDM1LCAwLjAwMzUwMSwgMC4wMDM1MDEiLCBcCi0gICAgICAgICAgIjAuMDAzNDc5LCAwLjAwMzQ4NSwgMC4wMDM0OTMsIDAuMDAzNDk1LCAwLjAwMzQ5NSwgMC4wMDM0OTcsIDAuMDAzNDk3IiwgXAotICAgICAgICAgICIwLjAwMzQ3NSwgMC4wMDM0ODEsIDAuMDAzNDg5LCAwLjAwMzQ5LCAwLjAwMzQ5MSwgMC4wMDM0OTIsIDAuMDAzNDkyIiwgXAotICAgICAgICAgICIwLjAwMzQ3MywgMC4wMDM0NzgsIDAuMDAzNDg2LCAwLjAwMzQ4OSwgMC4wMDM0ODksIDAuMDAzNDg5LCAwLjAwMzQ4OSIsIFwKLSAgICAgICAgICAiMC4wMDM0NjksIDAuMDAzNDc0LCAwLjAwMzQ4MiwgMC4wMDM0ODQsIDAuMDAzNDg1LCAwLjAwMzQ4NSwgMC4wMDM0ODUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0MzQ2LCAwLjAwNDM1MSwgMC4wMDQzNTUsIDAuMDA0MzU0LCAwLjAwNDM1MiwgMC4wMDQzNSwgMC4wMDQzNDkiLCBcCi0gICAgICAgICAgIjAuMDA0MzQyLCAwLjAwNDM0NywgMC4wMDQzNTEsIDAuMDA0MzQ5LCAwLjAwNDM0NywgMC4wMDQzNDUsIDAuMDA0MzQ1IiwgXAotICAgICAgICAgICIwLjAwNDMzNywgMC4wMDQzNDMsIDAuMDA0MzQ2LCAwLjAwNDM0NSwgMC4wMDQzNDMsIDAuMDA0MzQxLCAwLjAwNDM0IiwgXAotICAgICAgICAgICIwLjAwNDMzNCwgMC4wMDQzMzksIDAuMDA0MzQzLCAwLjAwNDM0MSwgMC4wMDQzMzksIDAuMDA0MzM3LCAwLjAwNDMzNyIsIFwKLSAgICAgICAgICAiMC4wMDQzMzIsIDAuMDA0MzM4LCAwLjAwNDM0MSwgMC4wMDQzNCwgMC4wMDQzMzcsIDAuMDA0MzM2LCAwLjAwNDMzNSIsIFwKLSAgICAgICAgICAiMC4wMDQzMjksIDAuMDA0MzM1LCAwLjAwNDMzOSwgMC4wMDQzMzYsIDAuMDA0MzM1LCAwLjAwNDMzMywgMC4wMDQzMzMiLCBcCi0gICAgICAgICAgIjAuMDA0MzI3LCAwLjAwNDMzMywgMC4wMDQzMzcsIDAuMDA0MzM1LCAwLjAwNDMzMywgMC4wMDQzMzEsIDAuMDA0MzMiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfcG93ZXIoc2NhbGFyKSB7Ci0gICAgICAgIHZhbHVlcygiMCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQxODYsIDAuMDA0MTkyLCAwLjAwNDE5OCwgMC4wMDQxOTksIDAuMDA0MiwgMC4wMDQyLCAwLjAwNDIiLCBcCi0gICAgICAgICAgIjAuMDA0MTgsIDAuMDA0MTg1LCAwLjAwNDE5MiwgMC4wMDQxOTMsIDAuMDA0MTk0LCAwLjAwNDE5NCwgMC4wMDQxOTUiLCBcCi0gICAgICAgICAgIjAuMDA0MTc1LCAwLjAwNDE4MSwgMC4wMDQxODcsIDAuMDA0MTg4LCAwLjAwNDE4OSwgMC4wMDQxODksIDAuMDA0MTkiLCBcCi0gICAgICAgICAgIjAuMDA0MTczLCAwLjAwNDE3NywgMC4wMDQxODUsIDAuMDA0MTg2LCAwLjAwNDE4NiwgMC4wMDQxODcsIDAuMDA0MTg3IiwgXAotICAgICAgICAgICIwLjAwNDE2OSwgMC4wMDQxNzUsIDAuMDA0MTgyLCAwLjAwNDE4MywgMC4wMDQxODMsIDAuMDA0MTgzLCAwLjAwNDE4NCIsIFwKLSAgICAgICAgICAiMC4wMDQxNjcsIDAuMDA0MTcyLCAwLjAwNDE3OSwgMC4wMDQxODEsIDAuMDA0MTgxLCAwLjAwNDE4MSwgMC4wMDQxODIiLCBcCi0gICAgICAgICAgIjAuMDA0MTY1LCAwLjAwNDE2OSwgMC4wMDQxNzcsIDAuMDA0MTc3LCAwLjAwNDE3OSwgMC4wMDQxNzksIDAuMDA0MTc5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzMjcyLCAwLjAwMzI3OCwgMC4wMDMyODYsIDAuMDAzMjg3LCAwLjAwMzI4OCwgMC4wMDMyOTEsIDAuMDAzMjkiLCBcCi0gICAgICAgICAgIjAuMDAzMjY2LCAwLjAwMzI3MSwgMC4wMDMyOCwgMC4wMDMyODEsIDAuMDAzMjgyLCAwLjAwMzI4MywgMC4wMDMyODMiLCBcCi0gICAgICAgICAgIjAuMDAzMjYxLCAwLjAwMzI2NywgMC4wMDMyNzUsIDAuMDAzMjc3LCAwLjAwMzI3NywgMC4wMDMyNzgsIDAuMDAzMjc3IiwgXAotICAgICAgICAgICIwLjAwMzI1OCwgMC4wMDMyNjQsIDAuMDAzMjcyLCAwLjAwMzI3NCwgMC4wMDMyNzQsIDAuMDAzMjc1LCAwLjAwMzI3NiIsIFwKLSAgICAgICAgICAiMC4wMDMyNTUsIDAuMDAzMjYxLCAwLjAwMzI2OSwgMC4wMDMyNzEsIDAuMDAzMjcyLCAwLjAwMzI3MywgMC4wMDMyNzIiLCBcCi0gICAgICAgICAgIjAuMDAzMjUyLCAwLjAwMzI1OCwgMC4wMDMyNjYsIDAuMDAzMjY4LCAwLjAwMzI2OSwgMC4wMDMyNywgMC4wMDMyNjkiLCBcCi0gICAgICAgICAgIjAuMDAzMjUsIDAuMDAzMjU2LCAwLjAwMzI2NCwgMC4wMDMyNjYsIDAuMDAzMjY2LCAwLjAwMzI2NywgMC4wMDMyNjciKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFFOKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMTMzNzQ1OwotICAgIGZ1bmN0aW9uIDogIlFCSU5UIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDS04iOwotICAgICAgdGltaW5nX3NlbnNlIDogbm9uX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiBmYWxsaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjM0MzEwMywgMC4zODYxNzYsIDAuNjMwNjMxLCAwLjg0NjM3MSwgMS4xMzQwNiwgMS43MDkzOCwgMi4wNjkwMyIsIFwKLSAgICAgICAgICAiMC4zNTQ1ODIsIDAuMzk3NjY1LCAwLjY0MjEzNSwgMC44NTc4NjksIDEuMTQ1NTgsIDEuNzIwOTEsIDIuMDgwNTMiLCBcCi0gICAgICAgICAgIjAuMzY5NDQ0LCAwLjQxMjUyNiwgMC42NTY5OTgsIDAuODcyNzI3LCAxLjE2MDQxLCAxLjczNTgsIDIuMDk1MzUiLCBcCi0gICAgICAgICAgIjAuMzg0MjExLCAwLjQyNzI5NCwgMC42NzE3NiwgMC44ODc0OTIsIDEuMTc1MTgsIDEuNzUwNTYsIDIuMTEwMTEiLCBcCi0gICAgICAgICAgIjAuMzk4MjU3LCAwLjQ0MTMzOCwgMC42ODU4MDIsIDAuOTAxNTQsIDEuMTg5MjMsIDEuNzY0NiwgMi4xMjQxNSIsIFwKLSAgICAgICAgICAiMC40MjExMjIsIDAuNDY0MiwgMC43MDg2NzQsIDAuOTI0Mzk5LCAxLjIxMjA5LCAxLjc4NzQxLCAyLjE0NzAzIiwgXAotICAgICAgICAgICIwLjQzOTEzOSwgMC40ODIyMiwgMC43MjY2ODMsIDAuOTQyNDIyLCAxLjIzMDExLCAxLjgwNTQ5LCAyLjE2NTA0Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE1OTU5MSwgMC4yNDYyOTUsIDAuNzQyNzUyLCAxLjE4Mzg5LCAxLjc2OTc5LCAyLjk0MTAyLCAzLjY3MzY4IiwgXAotICAgICAgICAgICIwLjE1OTMxOCwgMC4yNDY3OTMsIDAuNzQ0NTY0LCAxLjE4MzkxLCAxLjc2NjQ1LCAyLjk0MTI1LCAzLjY2NzI3IiwgXAotICAgICAgICAgICIwLjE1OTYwNiwgMC4yNDU5OTYsIDAuNzQ0NjE1LCAxLjE4MzkyLCAxLjc2OTgzLCAyLjk0MTQ4LCAzLjY3MzQ4IiwgXAotICAgICAgICAgICIwLjE1OTYwNywgMC4yNDYyOTYsIDAuNzQ0NTk1LCAxLjE4MzkyLCAxLjc2OTg0LCAyLjk0MTQ4LCAzLjY3MzQ1IiwgXAotICAgICAgICAgICIwLjE1OTYwOSwgMC4yNDYzLCAwLjc0NDU4MSwgMS4xODM5NCwgMS43Njk4MywgMi45NDE0NiwgMy42NzM0MyIsIFwKLSAgICAgICAgICAiMC4xNTk1OTksIDAuMjQ1OTcyLCAwLjc0NDYyMywgMS4xODM5MSwgMS43Njk4MiwgMi45NDExMiwgMy42NzM1MyIsIFwKLSAgICAgICAgICAiMC4xNTk2MDcsIDAuMjQ2MzE2LCAwLjc0NDU3NCwgMS4xODM5MywgMS43Njk4NCwgMi45NDE0NCwgMy42NzM0NyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zOTM3ODMsIDAuNDQzMTA0LCAwLjcyMjg3NCwgMC45Njk4MywgMS4yOTg4OSwgMS45NTcyMywgMi4zNjg2MiIsIFwKLSAgICAgICAgICAiMC40MDU1MTUsIDAuNDU0ODM3LCAwLjczNDYwMiwgMC45ODE0NiwgMS4zMTA2MiwgMS45Njg4MiwgMi4zODAzNiIsIFwKLSAgICAgICAgICAiMC40MjAyNzYsIDAuNDY5NTkzLCAwLjc0OTM1NywgMC45OTYyNTQsIDEuMzI1MzgsIDEuOTgzNjcsIDIuMzk1MDkiLCBcCi0gICAgICAgICAgIjAuNDM0OTQ2LCAwLjQ4NDI2OCwgMC43NjQwMzYsIDEuMDEwOTMsIDEuMzQwMDUsIDEuOTk4MzMsIDIuNDA5NzgiLCBcCi0gICAgICAgICAgIjAuNDQ5NzIzLCAwLjQ5OTA1MywgMC43Nzg4MDUsIDEuMDI1NjQsIDEuMzU0ODIsIDIuMDEzMDYsIDIuNDI0NTgiLCBcCi0gICAgICAgICAgIjAuNDcyMzEsIDAuNTIxNjM0LCAwLjgwMTM5LCAxLjA0ODI0LCAxLjM3NzQxLCAyLjAzNTYyLCAyLjQ0NzE2IiwgXAotICAgICAgICAgICIwLjQ5MDU2OSwgMC41Mzk4OTEsIDAuODE5NjUxLCAxLjA2NjUzLCAxLjM5NTY2LCAyLjA1MzksIDIuNDY1NDEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTc3MTc1LCAwLjI3NDc0NSwgMC44MzAyMTYsIDEuMzE5MzcsIDEuOTc0MTcsIDMuMjgxNTQsIDQuMDk4NTYiLCBcCi0gICAgICAgICAgIjAuMTc3MjA0LCAwLjI3NDU1NCwgMC44MzAxNzksIDEuMzIwNDYsIDEuOTc0MTYsIDMuMjgxMTQsIDQuMDk4NTkiLCBcCi0gICAgICAgICAgIjAuMTc3MTY1LCAwLjI3NDc1MiwgMC44MjkzNDksIDEuMzE5MjksIDEuOTc0MiwgMy4yODE0NiwgNC4wOTg1MiIsIFwKLSAgICAgICAgICAiMC4xNzcxNzYsIDAuMjc0NzQ2LCAwLjgzMDE5OSwgMS4zMjA2NCwgMS45NzQxNSwgMy4yODEzMywgNC4wOTg1NiIsIFwKLSAgICAgICAgICAiMC4xNzcxOTgsIDAuMjc0NzQ4LCAwLjgzMDExNywgMS4zMjAzNywgMS45NzQwNCwgMy4yNzk0NiwgNC4wOTg2IiwgXAotICAgICAgICAgICIwLjE3NzE3LCAwLjI3NDcyOCwgMC44MzAxNTgsIDEuMzIwNDcsIDEuOTc0MTMsIDMuMjc5NzksIDQuMDk4NTgiLCBcCi0gICAgICAgICAgIjAuMTc3MTYsIDAuMjc0NzQ0LCAwLjgzMDE3MSwgMS4zMjA1NiwgMS45NzQxMywgMy4yODA0NCwgNC4wOTg1NiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcHJlc2V0OwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC40NjMwMTIsIDAuNTA2MDk0LCAwLjc1MDU3NywgMC45NjYzMjcsIDEuMjU0MDEsIDEuODI5MzcsIDIuMTg5MDMiLCBcCi0gICAgICAgICAgIjAuNDc0NjUxLCAwLjUxNzczOSwgMC43NjIxNjksIDAuOTc3OTA3LCAxLjI2NTYsIDEuODQwOTksIDIuMjAwNjIiLCBcCi0gICAgICAgICAgIjAuNDg5NTE3LCAwLjUzMjU5NywgMC43NzcwNSwgMC45OTI3ODEsIDEuMjgwNDUsIDEuODU1ODUsIDIuMjE1NDUiLCBcCi0gICAgICAgICAgIjAuNTA0MDU5LCAwLjU0NzE0MywgMC43OTE1ODcsIDEuMDA3MzIsIDEuMjk1MDEsIDEuODcwNDMsIDIuMjMwMDMiLCBcCi0gICAgICAgICAgIjAuNTE4NTU3LCAwLjU2MTYyMiwgMC44MDYwNzksIDEuMDIxODIsIDEuMzA5NDksIDEuODg0ODcsIDIuMjQ0NDkiLCBcCi0gICAgICAgICAgIjAuNTQwMSwgMC41ODMyMTYsIDAuODI3NjI5LCAxLjA0MzM3LCAxLjMzMTA2LCAxLjkwNjM4LCAyLjI2NjA2IiwgXAotICAgICAgICAgICIwLjU1NzMwMywgMC42MDAzOTUsIDAuODQ0ODQ3LCAxLjA2MDU4LCAxLjM0ODI0LCAxLjkyMzY1LCAyLjI4MzI0Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE1OTYxOSwgMC4yNDY5MTksIDAuNzQ0NTk1LCAxLjE4NCwgMS43NzAwMSwgMi45NDE2NCwgMy42NzQ0OSIsIFwKLSAgICAgICAgICAiMC4xNTk2MjEsIDAuMjQ2Nzg1LCAwLjc0NDU2MywgMS4xODQwMiwgMS43Njk5OCwgMi45NDEzNiwgMy42NzQ1NyIsIFwKLSAgICAgICAgICAiMC4xNTk2MzgsIDAuMjQ2MzIxLCAwLjc0NDY4NywgMS4xODQxLCAxLjc2OTkxLCAyLjk0MiwgMy42NzQzNSIsIFwKLSAgICAgICAgICAiMC4xNTk2MTgsIDAuMjQ2OTI1LCAwLjc0NDY0MSwgMS4xODQwMSwgMS43Njk5OCwgMi45NDEyOSwgMy42NzQ2MSIsIFwKLSAgICAgICAgICAiMC4xNTk2MTMsIDAuMjQ2ODI2LCAwLjc0NDY1OCwgMS4xODQwNywgMS43Njk5MSwgMi45NDE4OSwgMy42NzQzOSIsIFwKLSAgICAgICAgICAiMC4xNTk1OTgsIDAuMjQ2MzU3LCAwLjc0NDU1MywgMS4xODQwMSwgMS43Njk4MSwgMi45NDE1NCwgMy42NzQxMiIsIFwKLSAgICAgICAgICAiMC4xNTkyNzMsIDAuMjQ2MjksIDAuNzQ0Njg5LCAxLjE4NDA2LCAxLjc2OTg5LCAyLjk0MiwgMy42NzQzMSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogY2xlYXI7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjQzNTUyOSwgMC40Nzg2MTQsIDAuNzIzMDc4LCAwLjkzODgwMiwgMS4yMjY0NywgMS44MDE5OSwgMi4xNjE0NiIsIFwKLSAgICAgICAgICAiMC40NDc1NywgMC40OTA2NDgsIDAuNzM1MTE1LCAwLjk1MDg0NSwgMS4yMzg1MSwgMS44MTM5MiwgMi4xNzM1MSIsIFwKLSAgICAgICAgICAiMC40NjIzOTIsIDAuNTA1NTA4LCAwLjc0OTkyNiwgMC45NjU2NywgMS4yNTMzNSwgMS44Mjg2OSwgMi4xODgzNSIsIFwKLSAgICAgICAgICAiMC40NzY4NDgsIDAuNTE5OTQyLCAwLjc2NDM4MiwgMC45ODAxMjksIDEuMjY3OCwgMS44NDMxNywgMi4yMDI4MSIsIFwKLSAgICAgICAgICAiMC40OTA2NzIsIDAuNTMzNzY4LCAwLjc3ODE5OSwgMC45OTM5NDcsIDEuMjgxNjMsIDEuODU2OTksIDIuMjE2NjUiLCBcCi0gICAgICAgICAgIjAuNTEyODczLCAwLjU1NTk1LCAwLjgwMDQwNywgMS4wMTYxNCwgMS4zMDM4MSwgMS44NzkyMSwgMi4yMzg4IiwgXAotICAgICAgICAgICIwLjUzMTk2NywgMC41NzUwNDUsIDAuODE5NDE0LCAxLjAzNTI0LCAxLjMyMjkxLCAxLjg5ODI0LCAyLjI1NzkiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTU5NTk0LCAwLjI0NjcxMiwgMC43NDQ2ODksIDEuMTg0MDEsIDEuNzY5OTUsIDIuOTQyNDMsIDMuNjc0NDEiLCBcCi0gICAgICAgICAgIjAuMTU5NjE0LCAwLjI0Njg2OSwgMC43NDQ2OTUsIDEuMTg0MDcsIDEuNzY5OTEsIDIuOTQyMDMsIDMuNjc0MzUiLCBcCi0gICAgICAgICAgIjAuMTU5NjE2LCAwLjI0NjMxMSwgMC43NDQ1NjksIDEuMTg0MDIsIDEuNzY5ODEsIDIuOTQxNjQsIDMuNjc0MTIiLCBcCi0gICAgICAgICAgIjAuMTU5NjE5LCAwLjI0Njk2MiwgMC43NDQ2MzIsIDEuMTg0MDcsIDEuNzY5OTIsIDIuOTQxOCwgMy42NzQ0MyIsIFwKLSAgICAgICAgICAiMC4xNTk2MDUsIDAuMjQ2MzA0LCAwLjc0NDU1NSwgMS4xODQsIDEuNzY5ODUsIDIuOTQxMTUsIDMuNjc0MjUiLCBcCi0gICAgICAgICAgIjAuMTU5NjQ5LCAwLjI0Njc3MSwgMC43NDQ2ODQsIDEuMTg0MDYsIDEuNzY5ODgsIDIuOTQxOTgsIDMuNjc0MyIsIFwKLSAgICAgICAgICAiMC4xNTk2MDEsIDAuMjQ2NDE2LCAwLjc0NDU2LCAxLjE4NDA1LCAxLjc2OTg2LCAyLjk0MTE2LCAzLjY3NDI2Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMyNjk4NSwgMC4zNzYzMywgMC42NTYwNzQsIDAuOTAyOTA4LCAxLjIzMjEsIDEuODkwNDMsIDIuMzAxOTEiLCBcCi0gICAgICAgICAgIjAuMzM4Njg3LCAwLjM4ODAzLCAwLjY2Nzc4MiwgMC45MTQ2LCAxLjI0MzczLCAxLjkwMjA4LCAyLjMxMzY3IiwgXAotICAgICAgICAgICIwLjM1MzEyNiwgMC40MDI0NjYsIDAuNjgyMjI0LCAwLjkyOTEwNSwgMS4yNTgyLCAxLjkxNjU2LCAyLjMyNzk2IiwgXAotICAgICAgICAgICIwLjM2Njc0MSwgMC40MTYwODcsIDAuNjk1ODIzLCAwLjk0MjY1NywgMS4yNzE3OSwgMS45MzAxNCwgMi4zNDE3MyIsIFwKLSAgICAgICAgICAiMC4zNzk3MTEsIDAuNDI5MDQ2LCAwLjcwODgwNSwgMC45NTU2OTQsIDEuMjg0OCwgMS45NDMxNCwgMi4zNTQ0NyIsIFwKLSAgICAgICAgICAiMC40MDE3ODksIDAuNDUxMTI5LCAwLjczMDg4MywgMC45Nzc3MzksIDEuMzA2ODgsIDEuOTY1MjUsIDIuMzc2NTIiLCBcCi0gICAgICAgICAgIjAuNDIxOTczLCAwLjQ3MTMxMiwgMC43NTEwNjcsIDAuOTk3OTMsIDEuMzI3MDYsIDEuOTg1NDQsIDIuMzk2NzEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTc3MzQ3LCAwLjI3NDcwMiwgMC44MzAyMzQsIDEuMzIwNDIsIDEuOTc0MTcsIDMuMjgxODQsIDQuMDk5MTMiLCBcCi0gICAgICAgICAgIjAuMTc3MjksIDAuMjc0NjkzLCAwLjgzMDE5OSwgMS4zMjAzNCwgMS45NzM5NCwgMy4yODE3NCwgNC4wOTkyOSIsIFwKLSAgICAgICAgICAiMC4xNzcyMDQsIDAuMjc0Njg4LCAwLjgzMDI0NCwgMS4zMjA0OSwgMS45NzQwMiwgMy4yODE3NywgNC4wOTg1IiwgXAotICAgICAgICAgICIwLjE3NzIxMiwgMC4yNzQ2OSwgMC44MzAxOTcsIDEuMzIwMzEsIDEuOTczOTQsIDMuMjgxNzEsIDQuMDk5MTEiLCBcCi0gICAgICAgICAgIjAuMTc3MjUyLCAwLjI3NDY5NiwgMC44MzAyMjQsIDEuMzIwMzIsIDEuOTc0LCAzLjI4MTc1LCA0LjA5OTE5IiwgXAotICAgICAgICAgICIwLjE3NzIyMiwgMC4yNzQ3MDIsIDAuODMwMjMxLCAxLjMyMDU3LCAxLjk3NDAzLCAzLjI4MTc0LCA0LjA5ODQ4IiwgXAotICAgICAgICAgICIwLjE3NzE4OCwgMC4yNzQ2OTMsIDAuODMwMjE5LCAxLjMyMDQ5LCAxLjk3Mzk0LCAzLjI4MTgxLCA0LjA5OTE3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0tOIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDM0OTUsIDAuMDAzNTAxLCAwLjAwMzUwOCwgMC4wMDM1MSwgMC4wMDM1MTEsIDAuMDAzNTExLCAwLjAwMzUxMiIsIFwKLSAgICAgICAgICAiMC4wMDM0ODksIDAuMDAzNDk1LCAwLjAwMzUwMywgMC4wMDM1MDUsIDAuMDAzNTA2LCAwLjAwMzUwNywgMC4wMDM1MDYiLCBcCi0gICAgICAgICAgIjAuMDAzNDg0LCAwLjAwMzQ5LCAwLjAwMzQ5OCwgMC4wMDM0OTksIDAuMDAzNSwgMC4wMDM1MDEsIDAuMDAzNTAxIiwgXAotICAgICAgICAgICIwLjAwMzQ3OSwgMC4wMDM0ODUsIDAuMDAzNDkzLCAwLjAwMzQ5NSwgMC4wMDM0OTUsIDAuMDAzNDk3LCAwLjAwMzQ5NyIsIFwKLSAgICAgICAgICAiMC4wMDM0NzUsIDAuMDAzNDgxLCAwLjAwMzQ4OSwgMC4wMDM0OSwgMC4wMDM0OTEsIDAuMDAzNDkyLCAwLjAwMzQ5MiIsIFwKLSAgICAgICAgICAiMC4wMDM0NzMsIDAuMDAzNDc4LCAwLjAwMzQ4NiwgMC4wMDM0ODksIDAuMDAzNDg5LCAwLjAwMzQ4OSwgMC4wMDM0ODkiLCBcCi0gICAgICAgICAgIjAuMDAzNDY5LCAwLjAwMzQ3NCwgMC4wMDM0ODIsIDAuMDAzNDg0LCAwLjAwMzQ4NSwgMC4wMDM0ODUsIDAuMDAzNDg1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzOTIyLCAwLjAwMzkyOCwgMC4wMDM5MzUsIDAuMDAzOTM3LCAwLjAwMzkzOCwgMC4wMDM5MzksIDAuMDAzOTM5IiwgXAotICAgICAgICAgICIwLjAwMzkxNywgMC4wMDM5MjMsIDAuMDAzOTMxLCAwLjAwMzkzMiwgMC4wMDM5MzMsIDAuMDAzOTM0LCAwLjAwMzkzNCIsIFwKLSAgICAgICAgICAiMC4wMDM5MTMsIDAuMDAzOTE4LCAwLjAwMzkyNiwgMC4wMDM5MjcsIDAuMDAzOTI4LCAwLjAwMzkyOSwgMC4wMDM5MjkiLCBcCi0gICAgICAgICAgIjAuMDAzOTA5LCAwLjAwMzkxNSwgMC4wMDM5MjIsIDAuMDAzOTI0LCAwLjAwMzkyNSwgMC4wMDM5MjYsIDAuMDAzOTI2IiwgXAotICAgICAgICAgICIwLjAwMzkwOCwgMC4wMDM5MTQsIDAuMDAzOTIyLCAwLjAwMzkyMywgMC4wMDM5MjQsIDAuMDAzOTI1LCAwLjAwMzkyNSIsIFwKLSAgICAgICAgICAiMC4wMDM5MSwgMC4wMDM5MTUsIDAuMDAzOTIzLCAwLjAwMzkyNSwgMC4wMDM5MjUsIDAuMDAzOTI2LCAwLjAwMzkyNiIsIFwKLSAgICAgICAgICAiMC4wMDM5MDksIDAuMDAzOTE1LCAwLjAwMzkyMiwgMC4wMDM5MjQsIDAuMDAzOTI1LCAwLjAwMzkyNSwgMC4wMDM5MjYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0MzQ2LCAwLjAwNDM1MSwgMC4wMDQzNTUsIDAuMDA0MzU0LCAwLjAwNDM1MiwgMC4wMDQzNSwgMC4wMDQzNDkiLCBcCi0gICAgICAgICAgIjAuMDA0MzQyLCAwLjAwNDM0NywgMC4wMDQzNTEsIDAuMDA0MzQ5LCAwLjAwNDM0NywgMC4wMDQzNDUsIDAuMDA0MzQ1IiwgXAotICAgICAgICAgICIwLjAwNDMzNywgMC4wMDQzNDMsIDAuMDA0MzQ2LCAwLjAwNDM0NSwgMC4wMDQzNDMsIDAuMDA0MzQxLCAwLjAwNDM0IiwgXAotICAgICAgICAgICIwLjAwNDMzNCwgMC4wMDQzMzksIDAuMDA0MzQzLCAwLjAwNDM0MSwgMC4wMDQzMzksIDAuMDA0MzM3LCAwLjAwNDMzNyIsIFwKLSAgICAgICAgICAiMC4wMDQzMzIsIDAuMDA0MzM4LCAwLjAwNDM0MSwgMC4wMDQzNCwgMC4wMDQzMzcsIDAuMDA0MzM2LCAwLjAwNDMzNSIsIFwKLSAgICAgICAgICAiMC4wMDQzMjksIDAuMDA0MzM1LCAwLjAwNDMzOSwgMC4wMDQzMzYsIDAuMDA0MzM1LCAwLjAwNDMzMywgMC4wMDQzMzMiLCBcCi0gICAgICAgICAgIjAuMDA0MzI3LCAwLjAwNDMzMywgMC4wMDQzMzcsIDAuMDA0MzM1LCAwLjAwNDMzMywgMC4wMDQzMzEsIDAuMDA0MzMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoc2NhbGFyKSB7Ci0gICAgICAgIHZhbHVlcygiMCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDMyNzIsIDAuMDAzMjc4LCAwLjAwMzI4NiwgMC4wMDMyODcsIDAuMDAzMjg4LCAwLjAwMzI5MSwgMC4wMDMyOSIsIFwKLSAgICAgICAgICAiMC4wMDMyNjYsIDAuMDAzMjcxLCAwLjAwMzI4LCAwLjAwMzI4MSwgMC4wMDMyODIsIDAuMDAzMjgzLCAwLjAwMzI4MyIsIFwKLSAgICAgICAgICAiMC4wMDMyNjEsIDAuMDAzMjY3LCAwLjAwMzI3NSwgMC4wMDMyNzcsIDAuMDAzMjc3LCAwLjAwMzI3OCwgMC4wMDMyNzciLCBcCi0gICAgICAgICAgIjAuMDAzMjU4LCAwLjAwMzI2NCwgMC4wMDMyNzIsIDAuMDAzMjc0LCAwLjAwMzI3NCwgMC4wMDMyNzUsIDAuMDAzMjc2IiwgXAotICAgICAgICAgICIwLjAwMzI1NSwgMC4wMDMyNjEsIDAuMDAzMjY5LCAwLjAwMzI3MSwgMC4wMDMyNzIsIDAuMDAzMjczLCAwLjAwMzI3MiIsIFwKLSAgICAgICAgICAiMC4wMDMyNTIsIDAuMDAzMjU4LCAwLjAwMzI2NiwgMC4wMDMyNjgsIDAuMDAzMjY5LCAwLjAwMzI3LCAwLjAwMzI2OSIsIFwKLSAgICAgICAgICAiMC4wMDMyNSwgMC4wMDMyNTYsIDAuMDAzMjY0LCAwLjAwMzI2NiwgMC4wMDMyNjYsIDAuMDAzMjY3LCAwLjAwMzI2NyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDE4NiwgMC4wMDQxOTIsIDAuMDA0MTk4LCAwLjAwNDE5OSwgMC4wMDQyLCAwLjAwNDIsIDAuMDA0MiIsIFwKLSAgICAgICAgICAiMC4wMDQxOCwgMC4wMDQxODUsIDAuMDA0MTkyLCAwLjAwNDE5MywgMC4wMDQxOTQsIDAuMDA0MTk0LCAwLjAwNDE5NSIsIFwKLSAgICAgICAgICAiMC4wMDQxNzUsIDAuMDA0MTgxLCAwLjAwNDE4NywgMC4wMDQxODgsIDAuMDA0MTg5LCAwLjAwNDE4OSwgMC4wMDQxOSIsIFwKLSAgICAgICAgICAiMC4wMDQxNzMsIDAuMDA0MTc3LCAwLjAwNDE4NSwgMC4wMDQxODYsIDAuMDA0MTg2LCAwLjAwNDE4NywgMC4wMDQxODciLCBcCi0gICAgICAgICAgIjAuMDA0MTY5LCAwLjAwNDE3NSwgMC4wMDQxODIsIDAuMDA0MTgzLCAwLjAwNDE4MywgMC4wMDQxODMsIDAuMDA0MTg0IiwgXAotICAgICAgICAgICIwLjAwNDE2NywgMC4wMDQxNzIsIDAuMDA0MTc5LCAwLjAwNDE4MSwgMC4wMDQxODEsIDAuMDA0MTgxLCAwLjAwNDE4MiIsIFwKLSAgICAgICAgICAiMC4wMDQxNjUsIDAuMDA0MTY5LCAwLjAwNDE3NywgMC4wMDQxNzcsIDAuMDA0MTc5LCAwLjAwNDE3OSwgMC4wMDQxNzkiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFJOKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA1ODk3MjY7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNTg5NDY3OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDU4OTcyNjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA0MzMsIDAuMDAwNDIsIDAuMDAwNDA5LCAwLjAwMDQwMywgMC4wMDA0MDEsIDAuMDAwMzk4LCAwLjAwMDM5OCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTkxNSwgMC4wMDE5MDUsIDAuMDAxODk5LCAwLjAwMTg5NSwgMC4wMDE4OTQsIDAuMDAxODkyLCAwLjAwMTg5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRCZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjQ2MzAxMiwgMC40NzQ2NTEsIDAuNDg5NTE3LCAwLjUwNDA1OSwgMC41MTg1NTcsIDAuNTQwMSwgMC41NTczMDMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0tOIjsKLSAgICAgIHRpbWluZ190eXBlIDogcmVjb3ZlcnlfZmFsbGluZzsKLSAgICAgIHdoZW4gOiAiRCZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzFfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChyZWNvdmVyeV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzUsIDAuMDYzNzUsIDAuMDUxMjUsIDAuMDMyNSwgMC4wMiwgLTAuMDA4NzUsIC0wLjAyMzc1IiwgXAotICAgICAgICAgICIwLjA5MjUsIDAuMDc1LCAwLjA2MjUsIDAuMDQzNzUsIDAuMDMxMjUsIDAuMDA4NzUsIC0wLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMTA1LCAwLjA5Mzc1LCAwLjA3NSwgMC4wNjI1LCAwLjA0Mzc1LCAwLjAyMTI1LCAwIiwgXAotICAgICAgICAgICIwLjExNzUsIDAuMTA2MjUsIDAuMDkzNzUsIDAuMDc1LCAwLjA2MjUsIDAuMDMzNzUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4xMzYyNSwgMC4xMjUsIDAuMTA2MjUsIDAuMDkzNzUsIDAuMDc1LCAwLjA1MjUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMTU4NzUsIDAuMTQ3NSwgMC4xMjg3NSwgMC4xMTYyNSwgMC4wOTc1LCAwLjA3NSwgMC4wNTM3NSIsIFwKLSAgICAgICAgICAiMC4xOCwgMC4xNjg3NSwgMC4xNSwgMC4xMzc1LCAwLjExODc1LCAwLjA5NjI1LCAwLjA3NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJlY292ZXJ5X3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUQiOwotICAgICAgc2RmX2NvbmQgOiAiRCA9PSAxJ2IwIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChyZWNvdmVyeV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xOTM3NSwgMC4yMDUsIDAuMjE3NSwgMC4yMywgMC4yNDg3NSwgMC4yNjUsIDAuMjg2MjUiLCBcCi0gICAgICAgICAgIjAuMTgyNSwgMC4xOTM3NSwgMC4yMDYyNSwgMC4yMTg3NSwgMC4yMzc1LCAwLjI1Mzc1LCAwLjI3NSIsIFwKLSAgICAgICAgICAiMC4xNywgMC4xODEyNSwgMC4xOTM3NSwgMC4yMDYyNSwgMC4yMTg3NSwgMC4yNDEyNSwgMC4yNjI1IiwgXAotICAgICAgICAgICIwLjE1NzUsIDAuMTY4NzUsIDAuMTgxMjUsIDAuMTkzNzUsIDAuMjEyNSwgMC4yMjg3NSwgMC4yNSIsIFwKLSAgICAgICAgICAiMC4xNDUsIDAuMTU2MjUsIDAuMTY4NzUsIDAuMTg3NSwgMC4yLCAwLjIyMjUsIDAuMjM3NSIsIFwKLSAgICAgICAgICAiMC4xMjg3NSwgMC4xNCwgMC4xNTg3NSwgMC4xNzEyNSwgMC4xODM3NSwgMC4yMDYyNSwgMC4yMjEyNSIsIFwKLSAgICAgICAgICAiMC4xMiwgMC4xMzEyNSwgMC4xNSwgMC4xNjI1LCAwLjE3NSwgMC4xOTc1LCAwLjIxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0tOIjsKLSAgICAgIHRpbWluZ190eXBlIDogcmVtb3ZhbF9mYWxsaW5nOwotICAgICAgd2hlbiA6ICJEJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMV9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHJlbW92YWxfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2MjUsIDAuMDE3NSwgMC4wMzYyNSwgMC4wNDg3NSwgMC4wNjEyNSwgMC4wODM3NSwgMC4xMDUiLCBcCi0gICAgICAgICAgIi0wLjAwNSwgMC4wMDYyNSwgMC4wMjUsIDAuMDM3NSwgMC4wNSwgMC4wNzI1LCAwLjA5Mzc1IiwgXAotICAgICAgICAgICItMC4wMTc1LCAtMC4wMDYyNSwgMC4wMDYyNSwgMC4wMjUsIDAuMDM3NSwgMC4wNiwgMC4wODEyNSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAyNSwgLTAuMDA2MjUsIDAuMDA2MjUsIDAuMDI1LCAwLjA0NzUsIDAuMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjAzNzUsIC0wLjAyNSwgLTAuMDA2MjUsIDAuMDA2MjUsIDAuMDI4NzUsIDAuMDUiLCBcCi0gICAgICAgICAgIi0wLjA3MTI1LCAtMC4wNiwgLTAuMDQ3NSwgLTAuMDI4NzUsIC0wLjAxNjI1LCAwLjAwNjI1LCAwLjAyMTI1IiwgXAotICAgICAgICAgICItMC4wOTI1LCAtMC4wODEyNSwgLTAuMDY4NzUsIC0wLjA1LCAtMC4wMzc1LCAtMC4wMTUsIDAuMDA2MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFNOKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE1NDA4NzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE1NDAzOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTU0MDg3OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDMzMSwgMC4wMDAzMywgMC4wMDAzMywgMC4wMDAzMywgMC4wMDAzMywgMC4wMDAzMywgMC4wMDAzMyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDMzMSwgMC4wMDAzMzIsIDAuMDAwMzMxLCAwLjAwMDMzMSwgMC4wMDAzMzIsIDAuMDAwMzMyLCAwLjAwMDMzMiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQmIVJOIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9STl9FUV8wID09IDEnYjEiOwotICAgICAgZmFsbF9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMzI2OTQ2LCAwLjMzODY0MSwgMC4zNTMxMDksIDAuMzY2NzA5LCAwLjM3OTY4NCwgMC40MDE3ODksIDAuNDIxOTczIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJlY292ZXJ5X2ZhbGxpbmc7Ci0gICAgICB3aGVuIDogIiFEJlJOIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9STl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHJlY292ZXJ5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEsIDAuMDg4NzUsIDAuMDcsIDAuMDUxMjUsIDAuMDM4NzUsIDAuMDE2MjUsIC0wLjAwNSIsIFwKLSAgICAgICAgICAiMC4xMTEyNSwgMC4xLCAwLjA4MTI1LCAwLjA2MjUsIDAuMDUsIDAuMDI3NSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiMC4xMjM3NSwgMC4xMTI1LCAwLjA5Mzc1LCAwLjA4MTI1LCAwLjA2MjUsIDAuMDQsIDAuMDI1IiwgXAotICAgICAgICAgICIwLjE0MjUsIDAuMTI1LCAwLjExMjUsIDAuMDkzNzUsIDAuMDgxMjUsIDAuMDU4NzUsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiMC4xNTUsIDAuMTQzNzUsIDAuMTI1LCAwLjEwNjI1LCAwLjA5Mzc1LCAwLjA3MTI1LCAwLjA1IiwgXAotICAgICAgICAgICIwLjE3NzUsIDAuMTY2MjUsIDAuMTQ3NSwgMC4xMjg3NSwgMC4xMTYyNSwgMC4wOTM3NSwgMC4wNzI1IiwgXAotICAgICAgICAgICIwLjE5MjUsIDAuMTgxMjUsIDAuMTY4NzUsIDAuMTUsIDAuMTM3NSwgMC4xMDg3NSwgMC4wOTM3NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDS04iOwotICAgICAgdGltaW5nX3R5cGUgOiByZW1vdmFsX2ZhbGxpbmc7Ci0gICAgICB3aGVuIDogIiFEJlJOIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9STl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHJlbW92YWxfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEyNSwgMC4wMjM3NSwgMC4wMzYyNSwgMC4wNTUsIDAuMDY3NSwgMC4wOSwgMC4xMDUiLCBcCi0gICAgICAgICAgIjAuMDAxMjUsIDAuMDEyNSwgMC4wMjUsIDAuMDQzNzUsIDAuMDU2MjUsIDAuMDc4NzUsIDAuMDkzNzUiLCBcCi0gICAgICAgICAgIi0wLjAxMTI1LCAwLCAwLjAxMjUsIDAuMDI1LCAwLjA0Mzc1LCAwLjA2LCAwLjA4MTI1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDE4NzUsIDAsIDAuMDEyNSwgMC4wMjUsIDAuMDQ3NSwgMC4wNjI1IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIDAsIDAuMDEyNSwgMC4wMzUsIDAuMDUiLCBcCi0gICAgICAgICAgIi0wLjA2NSwgLTAuMDUzNzUsIC0wLjAzNSwgLTAuMDIyNSwgLTAuMDEsIDAuMDEyNSwgMC4wMzM3NSIsIFwKLSAgICAgICAgICAiLTAuMDgsIC0wLjA2ODc1LCAtMC4wNTYyNSwgLTAuMDM3NSwgLTAuMDI1LCAtMC4wMDI1LCAwLjAxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogREZGTlNSWEwgKgotICogLS0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKERGRk5TUlhMKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMjgwMDUxOwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIGZmIChOMzUsUUJJTlQpIHsKLSAgICBuZXh0X3N0YXRlIDogIkQiOwotICAgIGNsb2NrZWRfb24gOiAiKCFDS04pIjsKLSAgICBjbGVhciA6ICIoIVJOKSI7Ci0gICAgcHJlc2V0IDogIighU04pIjsKLSAgICBjbGVhcl9wcmVzZXRfdmFyMSA6IEg7Ci0gICAgY2xlYXJfcHJlc2V0X3ZhcjIgOiBMOwotICB9Ci0gIHBpbihDS04pICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDUyNjI5NzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA1MjU5ODI7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNTI2Mjk3OwotICAgIGNsb2NrIDogdHJ1ZTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDUzMzksIDAuMDA1MzI0LCAwLjAwNTMxMywgMC4wMDUzMDcsIDAuMDA1MywgMC4wMDUyOTUsIDAuMDA1MjkzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyNzI1LCAwLjAwMjcxNSwgMC4wMDI3MDcsIDAuMDAyNywgMC4wMDI2OTYsIDAuMDAyNjkxLCAwLjAwMjY4OCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDS04iOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFEJlJOJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9STl9FUV8xX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4yNTQxNTgsIDAuMjY1NjE2LCAwLjI4MDg2MywgMC4yOTY3MDcsIDAuMzExOTU2LCAwLjMzNjE5MywgMC4zNTY2NTgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjM3NzQyMiwgMC4zODg5NTUsIDAuNDAzNywgMC40MTg1MzEsIDAuNDMyOTkyLCAwLjQ1NTE5OSwgMC40NzMxMDIiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEQpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDU5MTE2ODsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA1ODk0NjM7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNTkxMTY4OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjI0MSwgMC4wMDIyMywgMC4wMDIyMjMsIDAuMDAyMjE4LCAwLjAwMjIxNCwgMC4wMDIyMDgsIDAuMDAyMjA0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyNDcxLCAwLjAwMjQ2NSwgMC4wMDI0NjIsIDAuMDAyNDU4LCAwLjAwMjQ1NSwgMC4wMDI0NTEsIDAuMDAyNDQ5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfZmFsbGluZzsKLSAgICAgIHdoZW4gOiAiUk4mU04iOwotICAgICAgc2RmX2NvbmQgOiAiUk5fRVFfMV9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQzNzUsIDAuMDU1LCAwLjA2NzUsIDAuMDg2MjUsIDAuMDk4NzUsIDAuMTIxMjUsIDAuMTM2MjUiLCBcCi0gICAgICAgICAgIjAuMDMyNSwgMC4wNDM3NSwgMC4wNTYyNSwgMC4wNjg3NSwgMC4wODEyNSwgMC4xMDM3NSwgMC4xMjUiLCBcCi0gICAgICAgICAgIjAuMDEzNzUsIDAuMDI1LCAwLjAzNzUsIDAuMDU2MjUsIDAuMDY4NzUsIDAuMDkxMjUsIDAuMTA2MjUiLCBcCi0gICAgICAgICAgIjAuMDAxMjUsIDAuMDEyNSwgMC4wMjUsIDAuMDQzNzUsIDAuMDU2MjUsIDAuMDc4NzUsIDAuMDkzNzUiLCBcCi0gICAgICAgICAgIi0wLjAxMTI1LCAwLCAwLjAxMjUsIDAuMDMxMjUsIDAuMDQzNzUsIDAuMDY2MjUsIDAuMDgxMjUiLCBcCi0gICAgICAgICAgIi0wLjAyNzUsIC0wLjAxNjI1LCAtMC4wMDM3NSwgMC4wMTUsIDAuMDI3NSwgMC4wNSwgMC4wNjUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzMTI1LCAtMC4wMTI1LCAwLCAwLjAxMjUsIDAuMDM1LCAwLjA1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDQzNzUsIC0wLjAzMjUsIC0wLjAyNjI1LCAtMC4wMTM3NSwgLTAuMDA3NSwgMC4wMDI1LCAwLjAxMTI1IiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMDg3NSwgMCIsIFwKLSAgICAgICAgICAiLTAuMDY3NSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDIxMjUsIC0wLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjA4LCAtMC4wNjg3NSwgLTAuMDYyNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wMzM3NSwgLTAuMDI1IiwgXAotICAgICAgICAgICItMC4wOTI1LCAtMC4wODEyNSwgLTAuMDc1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDQ2MjUsIC0wLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjEwODc1LCAtMC4xMDM3NSwgLTAuMDkxMjUsIC0wLjA4NSwgLTAuMDcyNSwgLTAuMDYyNSwgLTAuMDUzNzUiLCBcCi0gICAgICAgICAgIi0wLjEyMzc1LCAtMC4xMTg3NSwgLTAuMTA2MjUsIC0wLjEsIC0wLjA4NzUsIC0wLjA3NzUsIC0wLjA2ODc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX2ZhbGxpbmc7Ci0gICAgICB3aGVuIDogIlJOJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIlJOX0VRXzFfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDYyNSwgMC4wOTUsIDAuMDgyNSwgMC4wNjM3NSwgMC4wNTEyNSwgMC4wMjI1LCAwLjAwNzUiLCBcCi0gICAgICAgICAgIjAuMTE3NSwgMC4xMDYyNSwgMC4wOTM3NSwgMC4wNzUsIDAuMDYyNSwgMC4wMzM3NSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4xMzYyNSwgMC4xMjUsIDAuMTA2MjUsIDAuMDg3NSwgMC4wNzUsIDAuMDUyNSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4xNDg3NSwgMC4xMzc1LCAwLjExODc1LCAwLjEwNjI1LCAwLjA4NzUsIDAuMDY1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjE2MTI1LCAwLjE1LCAwLjEzMTI1LCAwLjExODc1LCAwLjEsIDAuMDc3NSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiMC4xODM3NSwgMC4xNzI1LCAwLjE1Mzc1LCAwLjE0MTI1LCAwLjEyMjUsIDAuMSwgMC4wNzg3NSIsIFwKLSAgICAgICAgICAiMC4xOTg3NSwgMC4xODc1LCAwLjE3NSwgMC4xNTYyNSwgMC4xNDM3NSwgMC4xMTUsIDAuMSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE2MjUsIDAuMTUxMjUsIDAuMTMyNSwgMC4xMTM3NSwgMC4xMDEyNSwgMC4wNzg3NSwgMC4wNjM3NSIsIFwKLSAgICAgICAgICAiMC4xNzM3NSwgMC4xNjI1LCAwLjE0Mzc1LCAwLjEyNSwgMC4xMTI1LCAwLjA5LCAwLjA3NSIsIFwKLSAgICAgICAgICAiMC4xODYyNSwgMC4xNzUsIDAuMTU2MjUsIDAuMTQzNzUsIDAuMTI1LCAwLjEwMjUsIDAuMDg3NSIsIFwKLSAgICAgICAgICAiMC4xOTg3NSwgMC4xODc1LCAwLjE2ODc1LCAwLjE1LCAwLjEzNzUsIDAuMTE1LCAwLjEiLCBcCi0gICAgICAgICAgIjAuMjExMjUsIDAuMiwgMC4xODEyNSwgMC4xNjI1LCAwLjE1LCAwLjEyNzUsIDAuMTEyNSIsIFwKLSAgICAgICAgICAiMC4yMjc1LCAwLjIxNjI1LCAwLjE5NzUsIDAuMTg1LCAwLjE2NjI1LCAwLjE1LCAwLjEyODc1IiwgXAotICAgICAgICAgICIwLjI0MjUsIDAuMjMxMjUsIDAuMjE4NzUsIDAuMiwgMC4xODc1LCAwLjE2NSwgMC4xNDM3NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjA3NDAxMTU7Ci0gICAgZnVuY3Rpb24gOiAiTjM1IjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDS04iOwotICAgICAgdGltaW5nX3NlbnNlIDogbm9uX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiBmYWxsaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjM5NzcyNCwgMC40MjMwOTQsIDAuNjUxMTgxLCAxLjAzMTE4LCAxLjQxMDYzLCAyLjI5Nzc0LCAyLjgwNjA0IiwgXAotICAgICAgICAgICIwLjQwOTM4MSwgMC40MzQ2NjYsIDAuNjYzMTAyLCAxLjA0MzQxLCAxLjQyMjI5LCAyLjMwNTk5LCAyLjgxNzM0IiwgXAotICAgICAgICAgICIwLjQyNDIxNiwgMC40NDkzNywgMC42Nzc0MDEsIDEuMDU3ODQsIDEuNDM2ODUsIDIuMzI0MzQsIDIuODMwNTMiLCBcCi0gICAgICAgICAgIjAuNDM4ODcsIDAuNDY0MzA0LCAwLjY5MjA2OSwgMS4wNzMxOSwgMS40NTE2NywgMi4zMzQ0OCwgMi44NDU1OSIsIFwKLSAgICAgICAgICAiMC40NTM2NDEsIDAuNDc4OTgsIDAuNzA2NzI0LCAxLjA4NjMzLCAxLjQ2NjQzLCAyLjM1MDI1LCAyLjg2MjM5IiwgXAotICAgICAgICAgICIwLjQ3NjA4NSwgMC41MDE0NjksIDAuNzI5NjQxLCAxLjEwOTc5LCAxLjQ4OTA2LCAyLjM3NTE1LCAyLjg4NDQxIiwgXAotICAgICAgICAgICIwLjQ5NDIyNiwgMC41MTk1NjcsIDAuNzQ3MjkyLCAxLjEyNzI1LCAxLjUwNzExLCAyLjM5NTgxLCAyLjkwMjY1Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI3ODAxNiwgMC4zMjk4MTUsIDAuNzg5NTA5LCAxLjU3NTU2LCAyLjM1NDQyLCA0LjEwNTkzLCA1LjE4MjI2IiwgXAotICAgICAgICAgICIwLjI3ODY1NSwgMC4zMjk4MTcsIDAuNzg5NDY2LCAxLjU2MjIyLCAyLjM1NDIsIDQuMTc0MDEsIDUuMTg2ODYiLCBcCi0gICAgICAgICAgIjAuMjc4NTg0LCAwLjMyOTY3OSwgMC43ODk2ODEsIDEuNTc1NSwgMi4zNTQwNSwgNC4xNjk0MiwgNS4xODkyMyIsIFwKLSAgICAgICAgICAiMC4yNzYzOTQsIDAuMzI5NzY0LCAwLjc4OTg2MiwgMS41NTczNSwgMi4zNTQ1NSwgNC4xMzU0NywgNS4xOTU5OCIsIFwKLSAgICAgICAgICAiMC4yNzcxNSwgMC4zMjk3ODIsIDAuNzg5ODg0LCAxLjU1OTc4LCAyLjM1NDM5LCA0LjE3NDA3LCA1LjE4NDU1IiwgXAotICAgICAgICAgICIwLjI3NjAyMywgMC4zMjk4MDIsIDAuNzg5NDg3LCAxLjU3NTYxLCAyLjM1NDA1LCA0LjE2NDc4LCA1LjE4Mjg3IiwgXAotICAgICAgICAgICIwLjI3ODU5NSwgMC4zMjk4LCAwLjc4OTkyOCwgMS41NzU0OCwgMi4zNTQxMiwgNC4xNjA3MiwgNS4xOTE5NyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zNzc0MjIsIDAuNDA3MTc0LCAwLjY3NjMzOSwgMS4xMjQwNSwgMS41NzExLCAyLjYxNDM1LCAzLjIxMDU4IiwgXAotICAgICAgICAgICIwLjM4ODk1NSwgMC40MTg2NjgsIDAuNjg1OTg4LCAxLjEzMTU4LCAxLjU4MjYxLCAyLjYxNzgsIDMuMjIxODIiLCBcCi0gICAgICAgICAgIjAuNDAzNywgMC40MzM3MjQsIDAuNzAxMTYsIDEuMTQ2NjIsIDEuNTk3MzUsIDIuNjQwOTEsIDMuMjM2NzEiLCBcCi0gICAgICAgICAgIjAuNDE4NTMxLCAwLjQ0ODU1NCwgMC43MTU5ODgsIDEuMTYxNTcsIDEuNjEyMTgsIDIuNjU1NjksIDMuMjUxNTUiLCBcCi0gICAgICAgICAgIjAuNDMyOTkyLCAwLjQ2MzAxNiwgMC43MzA0NjQsIDEuMTc1OCwgMS42MjY2NCwgMi42NzAzLCAzLjI2NTk5IiwgXAotICAgICAgICAgICIwLjQ1NTE5OSwgMC40ODQ5MSwgMC43NTI3MTEsIDEuMTk3OCwgMS42NDg4NCwgMi42ODUyLCAzLjI4ODEyIiwgXAotICAgICAgICAgICIwLjQ3MzEwMiwgMC41MDI4MzgsIDAuNzcxODg4LCAxLjIxOTY3LCAxLjY2NjczLCAyLjcwOTk2LCAzLjMwNTcxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMxMjg4NCwgMC4zNzA5OTksIDAuODk4NzU4LCAxLjc4NTg3LCAyLjY2ODA0LCA0LjcyMzczLCA1LjkxNjkiLCBcCi0gICAgICAgICAgIjAuMzEzMDE0LCAwLjM3MTgyMSwgMC45MDA4MzQsIDEuNzgzOTIsIDIuNjY3NTYsIDQuNzE5MywgNS45MTc2NiIsIFwKLSAgICAgICAgICAiMC4zMTMxMzIsIDAuMzcxNTY0LCAwLjg5OTczNywgMS43ODM0NCwgMi42Njc1MiwgNC43MjQ4OSwgNS45MTcxOSIsIFwKLSAgICAgICAgICAiMC4zMTMxMzgsIDAuMzcxNTY1LCAwLjg5OTc1MywgMS43ODI0MywgMi42Njc1MywgNC43MjQ3NiwgNS45MTcxNyIsIFwKLSAgICAgICAgICAiMC4zMTMxMTgsIDAuMzcxNTY0LCAwLjg5OTY2NiwgMS43ODQ3LCAyLjY2NzQ4LCA0LjcyNTE1LCA1LjkxNzI3IiwgXAotICAgICAgICAgICIwLjMxMzA2NywgMC4zNzEyMTcsIDAuODk5NDE5LCAxLjc4MzM5LCAyLjY2NzM4LCA0LjcyODg1LCA1LjkxNzQ5IiwgXAotICAgICAgICAgICIwLjMxMjg2MywgMC4zNzExOTgsIDAuODk4MDU4LCAxLjc4NTgsIDIuNjY3NjYsIDQuNzIyOTEsIDUuOTE4MzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUk4iOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGNsZWFyOwotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC40OTg2MDUsIDAuNTI4NTQzLCAwLjc5NzMyNiwgMS4yNDQ1NCwgMS42OTEzMiwgMi43MzQ0NSwgMy4zMjM2OCIsIFwKLSAgICAgICAgICAiMC41MTAxODgsIDAuNTM5OTg4LCAwLjgwODk2MiwgMS4yNTYxNywgMS43MDMwMiwgMi43NDYyNiwgMy4zNDE3OSIsIFwKLSAgICAgICAgICAiMC41MjQ5NjcsIDAuNTU0OTE2LCAwLjgyMzY5MSwgMS4yNzA5LCAxLjcxNzcsIDIuNzYwNzksIDMuMzU3NjIiLCBcCi0gICAgICAgICAgIjAuNTM5NjIyLCAwLjU2OTU2MSwgMC44MzgzNDcsIDEuMjg1NTYsIDEuNzMyMzQsIDIuNzc1NDUsIDMuMzY0ODYiLCBcCi0gICAgICAgICAgIjAuNTU0MTI0LCAwLjU4Mzg1MSwgMC44NTI4NTEsIDEuMzAwMDEsIDEuNzQ2OTcsIDIuNzg5NzUsIDMuMzc1NzMiLCBcCi0gICAgICAgICAgIjAuNTc1OTYxLCAwLjYwNTkwMiwgMC44NzQ2OSwgMS4zMjE5LCAxLjc2ODY3LCAyLjgxMTc5LCAzLjQwMDQzIiwgXAotICAgICAgICAgICIwLjU5MzE3NiwgMC42MjMxMTgsIDAuODkxOTA4LCAxLjMzOTExLCAxLjc4NTg4LCAyLjgyOSwgMy40MTc3NCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMTMyNjIsIDAuMzcxNTc3LCAwLjkwMDcxNywgMS43ODQ5MSwgMi42NzEwOCwgNC43MTk2MiwgNS44OTkxOCIsIFwKLSAgICAgICAgICAiMC4zMTMyNTEsIDAuMzcxNDY0LCAwLjkwMDcwOSwgMS43ODUxMywgMi42NjY2MiwgNC43MjA5MiwgNS45MTkxNyIsIFwKLSAgICAgICAgICAiMC4zMTMyMjIsIDAuMzcxNDYzLCAwLjkwMDcsIDEuNzg0ODUsIDIuNjY3OTMsIDQuNzI3NzYsIDUuOTE5MjkiLCBcCi0gICAgICAgICAgIjAuMzEzMjI5LCAwLjM3MTQ5OCwgMC45MDA2NDIsIDEuNzg0ODYsIDIuNjY3OTEsIDQuNzE3NDQsIDUuOTE4MDgiLCBcCi0gICAgICAgICAgIjAuMzEzMjI2LCAwLjM3MTIxLCAwLjkwMDkwMSwgMS43ODQ3OSwgMi42NjcxNSwgNC43Mjk4OSwgNS45MTgyMiIsIFwKLSAgICAgICAgICAiMC4zMTMyNDcsIDAuMzcxNDgxLCAwLjkwMDYwNiwgMS43ODUzMywgMi42Njc4NCwgNC43Mjg1MSwgNS45MTkzOSIsIFwKLSAgICAgICAgICAiMC4zMTMxNzQsIDAuMzcxNTQ0LCAwLjkwMDU5OSwgMS43ODQ3OSwgMi42Njc3NywgNC43Mjg2MSwgNS45MTk0MiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcHJlc2V0OwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMzI0MzYsIDAuMzU3Njk5LCAwLjU4NjEwNiwgMC45NjU5NiwgMS4zNDQ4OSwgMi4yMzA5LCAyLjczNjMzIiwgXAotICAgICAgICAgICIwLjM0NDExNywgMC4zNjkzOTgsIDAuNTk3NjM5LCAwLjk3NzEwNiwgMS4zNTY3LCAyLjI0MjgzLCAyLjc0Njc1IiwgXAotICAgICAgICAgICIwLjM1ODUzOCwgMC4zODM4MDIsIDAuNjExOTkzLCAwLjk5MjE4NiwgMS4zNzE1NCwgMi4yNTY5OCwgMi43NjA1NiIsIFwKLSAgICAgICAgICAiMC4zNzIwNTksIDAuMzk3MjQxLCAwLjYyNTMyNCwgMS4wMDQzNywgMS4zODQyNywgMi4yNzAwOCwgMi43NzU5NCIsIFwKLSAgICAgICAgICAiMC4zODQ5NDgsIDAuNDEwMjE3LCAwLjYzOTIxNSwgMS4wMTc2OCwgMS4zOTg1MiwgMi4yODM3MiwgMi43ODk3NSIsIFwKLSAgICAgICAgICAiMC40MDc5OTYsIDAuNDMzMjUzLCAwLjY2MjA3MiwgMS4wNDEsIDEuNDIxMjgsIDIuMzA1MzEsIDIuODExODMiLCBcCi0gICAgICAgICAgIjAuNDI4MTUzLCAwLjQ1MzQyNCwgMC42ODIxNzYsIDEuMDYwNzEsIDEuNDM5MDUsIDIuMzI1OTEsIDIuODMyMyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yNzczODIsIDAuMzI4NzQyLCAwLjc5NTU4MSwgMS41NzU0OCwgMi4zNTQ1MywgNC4xNzM1MywgNS4xOTgxNSIsIFwKLSAgICAgICAgICAiMC4yNzcyNTQsIDAuMzI4NzgsIDAuNzk1NTk3LCAxLjU3NTU2LCAyLjM1NTA2LCA0LjE2NTI1LCA1LjE5ODQiLCBcCi0gICAgICAgICAgIjAuMjc3MTc0LCAwLjMyODgxNywgMC43OTU1OCwgMS41NzU1MywgMi4zNTM2NywgNC4xNzQwOSwgNS4xODY0MSIsIFwKLSAgICAgICAgICAiMC4yNzczOTYsIDAuMzI4Njg1LCAwLjc5NTcxOCwgMS41NzU1NywgMi4zNTUwNywgNC4xNjgyMiwgNS4xOTgyMiIsIFwKLSAgICAgICAgICAiMC4yNzcxNzgsIDAuMzI4ODY2LCAwLjc5NDAwMSwgMS41NzU1NiwgMi4zNTUyNywgNC4xNzQwNSwgNS4xOTg3MSIsIFwKLSAgICAgICAgICAiMC4yNzcyNjQsIDAuMzI4NjksIDAuNzk1Nzg3LCAxLjU3NTQ3LCAyLjM1NTE2LCA0LjE2MzU3LCA1LjE5MzQ0IiwgXAotICAgICAgICAgICIwLjI3NzIyNywgMC4zMjg3OTQsIDAuNzk1Nzg2LCAxLjU3NTU2LCAyLjM1NTIzLCA0LjE2NTM4LCA1LjE5Njg3Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjQ2OTgzNywgMC40OTk3ODcsIDAuNzY4NzAzLCAxLjIxNjA3LCAxLjY2Mjk0LCAyLjcwNjE2LCAzLjI5NjE0IiwgXAotICAgICAgICAgICIwLjQ4MTc4OCwgMC41MTE3OTYsIDAuNzgwNzAzLCAxLjIyODA1LCAxLjY3NDk0LCAyLjcxODA2LCAzLjMxNDk3IiwgXAotICAgICAgICAgICIwLjQ5NjgsIDAuNTI2NDc5LCAwLjc5NTY3MiwgMS4yNDI5NywgMS42ODk5OCwgMi43MzI4NiwgMy4zMjgzMyIsIFwKLSAgICAgICAgICAiMC41MTExNDQsIDAuNTQwODI4LCAwLjgxMDAxMSwgMS4yNTczLCAxLjcwNDMxLCAyLjc0NzE3LCAzLjM0Mjc2IiwgXAotICAgICAgICAgICIwLjUyNTA2NSwgMC41NTQ3NDIsIDAuODIzOTMyLCAxLjI3MTIyLCAxLjcxODIyLCAyLjc2MTA5LCAzLjM1NzA4IiwgXAotICAgICAgICAgICIwLjU0NzA5MywgMC41NzcwNDcsIDAuODQ1OTU5LCAxLjI5MzI5LCAxLjc0MDExLCAyLjc4MzMsIDMuMzcxNDIiLCBcCi0gICAgICAgICAgIjAuNTY2MjEzLCAwLjU5NjE2NCwgMC44NjUwNzgsIDEuMzEyNCwgMS43NTkyMywgMi44MDI0LCAzLjM5MDk1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMxMzExMiwgMC4zNzEzMzEsIDAuOTAwNjkzLCAxLjc4NTA4LCAyLjY2OTI0LCA0LjcyNDEyLCA1LjkwNjk4IiwgXAotICAgICAgICAgICIwLjMxMzIxMiwgMC4zNzE1MzUsIDAuOTAwNzc2LCAxLjc4NDkzLCAyLjY2ODAzLCA0LjczMDU1LCA1LjkxODU1IiwgXAotICAgICAgICAgICIwLjMxMzE0NCwgMC4zNzE1NCwgMC45MDA4OTIsIDEuNzg0ODIsIDIuNjY3NDEsIDQuNzMyMjUsIDUuOTE5NTYiLCBcCi0gICAgICAgICAgIjAuMzEzMTUsIDAuMzcxNTQyLCAwLjkwMDg4NCwgMS43ODQ3NSwgMi42NjcxOSwgNC43MzA3OSwgNS45MTk1MyIsIFwKLSAgICAgICAgICAiMC4zMTMxNSwgMC4zNzE3NjUsIDAuOTAwODc0LCAxLjc4NDcsIDIuNjY3MTEsIDQuNzM2ODQsIDUuOTE5MjIiLCBcCi0gICAgICAgICAgIjAuMzEzMjYyLCAwLjM3MTUyNSwgMC45MDA1OTIsIDEuNzg0NzQsIDIuNjY3NiwgNC43MzA3NCwgNS45MTkyMyIsIFwKLSAgICAgICAgICAiMC4zMTMyMTIsIDAuMzcxNTcxLCAwLjkwMDU4OSwgMS43ODQ2OSwgMi42Njc1NywgNC43MTYyNiwgNS45MTgxOCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzNDg3LCAwLjAwMzQ4NywgMC4wMDM0OSwgMC4wMDM0OTEsIDAuMDAzNDkxLCAwLjAwMzQ5MSwgMC4wMDM0OTEiLCBcCi0gICAgICAgICAgIjAuMDAzNDgyLCAwLjAwMzQ4MywgMC4wMDM0ODUsIDAuMDAzNDg2LCAwLjAwMzQ4NiwgMC4wMDM0ODcsIDAuMDAzNDg2IiwgXAotICAgICAgICAgICIwLjAwMzQ3NywgMC4wMDM0NzgsIDAuMDAzNDgsIDAuMDAzNDgxLCAwLjAwMzQ4MSwgMC4wMDM0ODIsIDAuMDAzNDgyIiwgXAotICAgICAgICAgICIwLjAwMzQ3NCwgMC4wMDM0NzUsIDAuMDAzNDc3LCAwLjAwMzQ3OCwgMC4wMDM0NzksIDAuMDAzNDc5LCAwLjAwMzQ3OSIsIFwKLSAgICAgICAgICAiMC4wMDM0NzMsIDAuMDAzNDc0LCAwLjAwMzQ3NiwgMC4wMDM0NzcsIDAuMDAzNDc4LCAwLjAwMzQ3OCwgMC4wMDM0NzgiLCBcCi0gICAgICAgICAgIjAuMDAzNDc1LCAwLjAwMzQ3NSwgMC4wMDM0NzgsIDAuMDAzNDc5LCAwLjAwMzQ3OSwgMC4wMDM0NzksIDAuMDAzNDc5IiwgXAotICAgICAgICAgICIwLjAwMzQ3NCwgMC4wMDM0NzUsIDAuMDAzNDc3LCAwLjAwMzQ3OCwgMC4wMDM0NzgsIDAuMDAzNDc5LCAwLjAwMzQ3OSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzEwMywgMC4wMDMxMDQsIDAuMDAzMTA3LCAwLjAwMzEwOCwgMC4wMDMxMDgsIDAuMDAzMTA5LCAwLjAwMzEwOCIsIFwKLSAgICAgICAgICAiMC4wMDMwOTksIDAuMDAzMDk5LCAwLjAwMzEwMiwgMC4wMDMxMDMsIDAuMDAzMTAzLCAwLjAwMzEwMywgMC4wMDMxMDMiLCBcCi0gICAgICAgICAgIjAuMDAzMDkyLCAwLjAwMzA5MywgMC4wMDMwOTYsIDAuMDAzMDk3LCAwLjAwMzA5NywgMC4wMDMwOTgsIDAuMDAzMDk4IiwgXAotICAgICAgICAgICIwLjAwMzA4OCwgMC4wMDMwODksIDAuMDAzMDkxLCAwLjAwMzA5MiwgMC4wMDMwOTMsIDAuMDAzMDkzLCAwLjAwMzA5MyIsIFwKLSAgICAgICAgICAiMC4wMDMwODQsIDAuMDAzMDg1LCAwLjAwMzA4OCwgMC4wMDMwODksIDAuMDAzMDg5LCAwLjAwMzA4OSwgMC4wMDMwODkiLCBcCi0gICAgICAgICAgIjAuMDAzMDgxLCAwLjAwMzA4MSwgMC4wMDMwODQsIDAuMDAzMDg1LCAwLjAwMzA4NSwgMC4wMDMwODYsIDAuMDAzMDg2IiwgXAotICAgICAgICAgICIwLjAwMzA3NywgMC4wMDMwNzgsIDAuMDAzMDgsIDAuMDAzMDgxLCAwLjAwMzA4MiwgMC4wMDMwODIsIDAuMDAzMDgyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUk4iOwotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDA2OCwgMC4wMDQwNjgsIDAuMDA0MDY4LCAwLjAwNDA2NiwgMC4wMDQwNjUsIDAuMDA0MDY0LCAwLjAwNDA2NCIsIFwKLSAgICAgICAgICAiMC4wMDQwNjMsIDAuMDA0MDY0LCAwLjAwNDA2NCwgMC4wMDQwNjIsIDAuMDA0MDYxLCAwLjAwNDA1OSwgMC4wMDQwNTkiLCBcCi0gICAgICAgICAgIjAuMDA0MDU5LCAwLjAwNDA1OSwgMC4wMDQwNTksIDAuMDA0MDU3LCAwLjAwNDA1NiwgMC4wMDQwNTUsIDAuMDA0MDU1IiwgXAotICAgICAgICAgICIwLjAwNDA1NSwgMC4wMDQwNTYsIDAuMDA0MDU2LCAwLjAwNDA1NCwgMC4wMDQwNTMsIDAuMDA0MDUyLCAwLjAwNDA1MiIsIFwKLSAgICAgICAgICAiMC4wMDQwNTQsIDAuMDA0MDU0LCAwLjAwNDA1NCwgMC4wMDQwNTMsIDAuMDA0MDUyLCAwLjAwNDA1LCAwLjAwNDA1IiwgXAotICAgICAgICAgICIwLjAwNDA1MSwgMC4wMDQwNTIsIDAuMDA0MDUyLCAwLjAwNDA1LCAwLjAwNDA0OSwgMC4wMDQwNDgsIDAuMDA0MDQ4IiwgXAotICAgICAgICAgICIwLjAwNDA0OCwgMC4wMDQwNDksIDAuMDA0MDQ5LCAwLjAwNDA0NywgMC4wMDQwNDcsIDAuMDA0MDQ1LCAwLjAwNDA0NCIpOwotICAgICAgfQotICAgICAgcmlzZV9wb3dlcihzY2FsYXIpIHsKLSAgICAgICAgdmFsdWVzKCIwIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiU04iOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzc4OSwgMC4wMDM3OSwgMC4wMDM3OTIsIDAuMDAzNzkzLCAwLjAwMzc5MywgMC4wMDM3OTMsIDAuMDAzNzkzIiwgXAotICAgICAgICAgICIwLjAwMzc4MywgMC4wMDM3ODQsIDAuMDAzNzg1LCAwLjAwMzc4NiwgMC4wMDM3ODcsIDAuMDAzNzg3LCAwLjAwMzc4NyIsIFwKLSAgICAgICAgICAiMC4wMDM3NzksIDAuMDAzNzc5LCAwLjAwMzc4MiwgMC4wMDM3ODIsIDAuMDAzNzgyLCAwLjAwMzc4MywgMC4wMDM3ODMiLCBcCi0gICAgICAgICAgIjAuMDAzNzc1LCAwLjAwMzc3NywgMC4wMDM3NzgsIDAuMDAzNzc5LCAwLjAwMzc3OSwgMC4wMDM3NzksIDAuMDAzNzc5IiwgXAotICAgICAgICAgICIwLjAwMzc3NCwgMC4wMDM3NzQsIDAuMDAzNzc2LCAwLjAwMzc3NywgMC4wMDM3NzcsIDAuMDAzNzc3LCAwLjAwMzc3NyIsIFwKLSAgICAgICAgICAiMC4wMDM3NzEsIDAuMDAzNzcyLCAwLjAwMzc3NCwgMC4wMDM3NzQsIDAuMDAzNzc0LCAwLjAwMzc3NCwgMC4wMDM3NzQiLCBcCi0gICAgICAgICAgIjAuMDAzNzY3LCAwLjAwMzc2NywgMC4wMDM3NjksIDAuMDAzNzcsIDAuMDAzNzcsIDAuMDAzNzcxLCAwLjAwMzc3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyOTQzLCAwLjAwMjk0NCwgMC4wMDI5NDYsIDAuMDAyOTQ3LCAwLjAwMjk0OCwgMC4wMDI5NDgsIDAuMDAyOTQ4IiwgXAotICAgICAgICAgICIwLjAwMjkzNiwgMC4wMDI5MzcsIDAuMDAyOTQsIDAuMDAyOTQxLCAwLjAwMjk0MSwgMC4wMDI5NDEsIDAuMDAyOTQxIiwgXAotICAgICAgICAgICIwLjAwMjkzMSwgMC4wMDI5MzIsIDAuMDAyOTM1LCAwLjAwMjkzNiwgMC4wMDI5MzYsIDAuMDAyOTM2LCAwLjAwMjkzNyIsIFwKLSAgICAgICAgICAiMC4wMDI5MjgsIDAuMDAyOTI5LCAwLjAwMjkzMiwgMC4wMDI5MzMsIDAuMDAyOTMzLCAwLjAwMjkzMywgMC4wMDI5MzMiLCBcCi0gICAgICAgICAgIjAuMDAyOTI1LCAwLjAwMjkyNiwgMC4wMDI5MjksIDAuMDAyOTMsIDAuMDAyOTMsIDAuMDAyOTMxLCAwLjAwMjkzMSIsIFwKLSAgICAgICAgICAiMC4wMDI5MjIsIDAuMDAyOTIzLCAwLjAwMjkyNiwgMC4wMDI5MjcsIDAuMDAyOTI3LCAwLjAwMjkyNywgMC4wMDI5MjciLCBcCi0gICAgICAgICAgIjAuMDAyOTIsIDAuMDAyOTIxLCAwLjAwMjkyNCwgMC4wMDI5MjUsIDAuMDAyOTI1LCAwLjAwMjkyNSwgMC4wMDI5MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFFOKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMDcxNjMxOTsKLSAgICBmdW5jdGlvbiA6ICJRQklOVCI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0tOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5vbl91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogZmFsbGluZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zNzYwNiwgMC40MDEzMjMsIDAuNjI4NTAzLCAxLjAwNzI1LCAxLjM4NTkxLCAyLjI2OTQzLCAyLjc3NDI2IiwgXAotICAgICAgICAgICIwLjM4NzU4NCwgMC40MTI4NDYsIDAuNjQwMDE3LCAxLjAxODc4LCAxLjM5NzQsIDIuMjgwOTEsIDIuNzg1OSIsIFwKLSAgICAgICAgICAiMC40MDIzMDgsIDAuNDI3NTY5LCAwLjY1NDcyNiwgMS4wMzM0MiwgMS40MTIxMiwgMi4yOTU1NiwgMi44MDA1OCIsIFwKLSAgICAgICAgICAiMC40MTcxMzgsIDAuNDQyMzk4LCAwLjY2OTU1NiwgMS4wNDgyNCwgMS40MjY5NSwgMi4zMTA0LCAyLjgxNTQxIiwgXAotICAgICAgICAgICIwLjQzMTU5OCwgMC40NTY4NTksIDAuNjg0MDE2LCAxLjA2MjcxLCAxLjQ0MTQxLCAyLjMyNDg0LCAyLjgyOTg4IiwgXAotICAgICAgICAgICIwLjQ1MzgwNSwgMC40NzkwNjcsIDAuNzA2MjIyLCAxLjA4NTAxLCAxLjQ2MzYyLCAyLjM0NzA2LCAyLjg1MjEiLCBcCi0gICAgICAgICAgIjAuNDcxNzQ0LCAwLjQ5Njk4NiwgMC43MjQxOCwgMS4xMDI5MiwgMS40ODE1NywgMi4zNjUxLCAyLjg3MDAyIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI2OTIxNywgMC4zMjAyMDksIDAuNzgyNjY3LCAxLjU1Mjg3LCAyLjMyMjQ4LCA0LjExODE2LCA1LjEzODAyIiwgXAotICAgICAgICAgICIwLjI2OTE5MSwgMC4zMjAwMDYsIDAuNzgxNTM2LCAxLjU0ODQ5LCAyLjMyMjM1LCA0LjExMTI0LCA1LjEzNzk1IiwgXAotICAgICAgICAgICIwLjI2OTE4MywgMC4zMjA5NzIsIDAuNzgxMzMxLCAxLjU0OTkxLCAyLjMyMjM2LCA0LjExNzc2LCA1LjEzNzg1IiwgXAotICAgICAgICAgICIwLjI2OTE4MiwgMC4zMjA5NzEsIDAuNzgxMzM0LCAxLjU0OTg2LCAyLjMyMjM2LCA0LjExNzgsIDUuMTM3ODYiLCBcCi0gICAgICAgICAgIjAuMjY5MTg1LCAwLjMyMDk3MywgMC43ODEzMjQsIDEuNTQ5ODQsIDIuMzIyMzUsIDQuMTE3NjcsIDUuMTM4IiwgXAotICAgICAgICAgICIwLjI2OTE4OSwgMC4zMjAwNjksIDAuNzgxMjk1LCAxLjU0ODQ4LCAyLjMyMjM0LCA0LjExNTgsIDUuMTM3OTciLCBcCi0gICAgICAgICAgIjAuMjY4NzcxLCAwLjMyMDIxNCwgMC43ODI3MDYsIDEuNTUyODgsIDIuMzIyNDYsIDQuMTE4MTUsIDUuMTM3NzgiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuNDQwMDIxLCAwLjQ2OTcxMywgMC43MzcwMDgsIDEuMTgyNDcsIDEuNjI3ODcsIDIuNjY3MTgsIDMuMjYxMjgiLCBcCi0gICAgICAgICAgIjAuNDUxNTY0LCAwLjQ4MTI1NywgMC43NDg1NzYsIDEuMTk0MDMsIDEuNjM5NDIsIDIuNjc4NTYsIDMuMjcyOCIsIFwKLSAgICAgICAgICAiMC40NjY0NiwgMC40OTYxNjYsIDAuNzYzNDQsIDEuMjA4OTEsIDEuNjU0MywgMi42OTM2OSwgMy4yODc0OSIsIFwKLSAgICAgICAgICAiMC40ODEyMTYsIDAuNTEwOTEzLCAwLjc3ODE4OSwgMS4yMjM3MiwgMS42NjkwNiwgMi43MDgyMSwgMy4zMDIyNyIsIFwKLSAgICAgICAgICAiMC40OTU5MDYsIDAuNTI1NjA1LCAwLjc5Mjg3OCwgMS4yMzgzMSwgMS42ODM3NiwgMi43MjI5LCAzLjMxNzIxIiwgXAotICAgICAgICAgICIwLjUxODQxLCAwLjU0ODEwNywgMC44MTU0MDYsIDEuMjYwODgsIDEuNzA2MjcsIDIuNzQ1NSwgMy4zMzk2NyIsIFwKLSAgICAgICAgICAiMC41MzY0OTksIDAuNTY2MTg0LCAwLjgzMzQ1NywgMS4yNzg5LCAxLjcyNDM0LCAyLjc2Mzg1LCAzLjM1Nzc2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMwODMyNCwgMC4zNjcxMjksIDAuODk2MjY2LCAxLjc3Nzc2LCAyLjY1OTQ0LCA0LjcxMzE1LCA1Ljg4ODY4IiwgXAotICAgICAgICAgICIwLjMwODQzMSwgMC4zNjcxMzEsIDAuODk2MzExLCAxLjc3Njc5LCAyLjY1OTQzLCA0LjcxNjUxLCA1Ljg5MDcyIiwgXAotICAgICAgICAgICIwLjMwODQyNSwgMC4zNjcxMjgsIDAuODk2MTkxLCAxLjc3Nzc2LCAyLjY1OTQxLCA0LjcxNjUzLCA1Ljg4NTg0IiwgXAotICAgICAgICAgICIwLjMwODE2NiwgMC4zNjcxMjMsIDAuODk2MTYsIDEuNzc2NDEsIDIuNjU5NDMsIDQuNzE0OTUsIDUuODg3NTMiLCBcCi0gICAgICAgICAgIjAuMzA4MjU4LCAwLjM2NzEyNiwgMC44OTYxOTcsIDEuNzc3MSwgMi42NTk0MywgNC43MTY0OCwgNS44ODQ4OCIsIFwKLSAgICAgICAgICAiMC4zMDgyMjEsIDAuMzY3MTI5LCAwLjg5NjI3NSwgMS43Nzc4LCAyLjY1OTQxLCA0LjcxNDE1LCA1Ljg4ODY1IiwgXAotICAgICAgICAgICIwLjMwODQxMSwgMC4zNjcxMjgsIDAuODk2MTkxLCAxLjc3NzcxLCAyLjY1OTQxLCA0LjcxMjg4LCA1Ljg4NzgzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiBwcmVzZXQ7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjQ5NzU0MSwgMC41MjI3NzIsIDAuNzQ5OTgyLCAxLjEyODY2LCAxLjUwNzM3LCAyLjM5MDk4LCAyLjg5NTYxIiwgXAotICAgICAgICAgICIwLjUwOTA4MSwgMC41MzQzMDgsIDAuNzYxNTUxLCAxLjE0MDI0LCAxLjUxODg4LCAyLjQwMjUxLCAyLjkwNzU2IiwgXAotICAgICAgICAgICIwLjUyMzkwMywgMC41NDkxNDcsIDAuNzc2MzQ3LCAxLjE1NTAyLCAxLjUzMzczLCAyLjQxNzM0LCAyLjkyMTk2IiwgXAotICAgICAgICAgICIwLjUzODU1OCwgMC41NjM3ODksIDAuNzkwOTk5LCAxLjE2OTY3LCAxLjU0ODM5LCAyLjQzMTk5LCAyLjkzNjYyIiwgXAotICAgICAgICAgICIwLjU1Mjk5NSwgMC41NzgxOTIsIDAuODA1NDQxLCAxLjE4NDExLCAxLjU2Mjc3LCAyLjQ0NjQ3LCAyLjk1MTQ5IiwgXAotICAgICAgICAgICIwLjU3NDg5NSwgMC42MDAxMjYsIDAuODI3MzM1LCAxLjIwNjAxLCAxLjU4NDczLCAyLjQ2ODMzLCAyLjk3Mjk2IiwgXAotICAgICAgICAgICIwLjU5MjExLCAwLjYxNzM0MSwgMC44NDQ1NSwgMS4yMjMyMywgMS42MDE5NCwgMi40ODU1NSwgMi45OTAxNyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yNjk3MTQsIDAuMzIwOTU3LCAwLjc4Mjk1OCwgMS41NTI4NiwgMi4zMjMxMywgNC4xMTgwMSwgNS4xMzQwNCIsIFwKLSAgICAgICAgICAiMC4yNjk2OTYsIDAuMzIwOTI2LCAwLjc4Mjk0MSwgMS41NTI5MiwgMi4zMjI3NiwgNC4xMTgwOCwgNS4xMzc2MyIsIFwKLSAgICAgICAgICAiMC4yNjk3MTUsIDAuMzIwOTkxLCAwLjc4Mjk0MiwgMS41NTI4NSwgMi4zMjMwOCwgNC4xMTgsIDUuMTM3OTUiLCBcCi0gICAgICAgICAgIjAuMjY5NzEzLCAwLjMyMDkzLCAwLjc4MjkyNywgMS41NTI4NiwgMi4zMjMxMiwgNC4xMTgsIDUuMTM3NTciLCBcCi0gICAgICAgICAgIjAuMjY5NzE0LCAwLjMyMDgwNCwgMC43ODMsIDEuNTUyOTEsIDIuMzIyNzgsIDQuMTE4MDQsIDUuMTM3NDciLCBcCi0gICAgICAgICAgIjAuMjY5NzExLCAwLjMyMDkzMiwgMC43ODI5MTksIDEuNTUyODYsIDIuMzIzMTIsIDQuMTE4LCA1LjEzNzI3IiwgXAotICAgICAgICAgICIwLjI2OTcxMiwgMC4zMjA5MzIsIDAuNzgyOTE4LCAxLjU1Mjg1LCAyLjMyMzEyLCA0LjExOCwgNS4xMzcxMiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogY2xlYXI7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjQ2ODc1OSwgMC40OTM5ODksIDAuNzIxMjAxLCAxLjA5OTg3LCAxLjQ3ODU4LCAyLjM2MjE5LCAyLjg2NjgyIiwgXAotICAgICAgICAgICIwLjQ4MDc1NSwgMC41MDYwMDYsIDAuNzMzMjAzLCAxLjExMTg3LCAxLjQ5MDU3LCAyLjM3NDIsIDIuODc4ODgiLCBcCi0gICAgICAgICAgIjAuNDk1NjU3LCAwLjUyMDg2OSwgMC43NDgxMTQsIDEuMTI2NzgsIDEuNTA1NDUsIDIuMzg5MTQsIDIuODk0MTIiLCBcCi0gICAgICAgICAgIjAuNTEwMDA2LCAwLjUzNTIxMSwgMC43NjI0NTIsIDEuMTQxMTIsIDEuNTE5NzksIDIuNDAzNDgsIDIuOTA4NDQiLCBcCi0gICAgICAgICAgIjAuNTIzOTI3LCAwLjU0OTEyOSwgMC43NzYzNzMsIDEuMTU1MDQsIDEuNTMzNzEsIDIuNDE3NCwgMi45MjIyNiIsIFwKLSAgICAgICAgICAiMC41NDYwMTIsIDAuNTcxMjQzLCAwLjc5ODQ1MywgMS4xNzcxMywgMS41NTU4NSwgMi40Mzk0NSwgMi45NDQwOCIsIFwKLSAgICAgICAgICAiMC41NjUxMjksIDAuNTkwMzYsIDAuODE3NTcsIDEuMTk2MjUsIDEuNTc0OTYsIDIuNDU4NTcsIDIuOTYzMTkiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjY5NzE3LCAwLjMyMDkzNSwgMC43ODI5NDQsIDEuNTUyOSwgMi4zMjMxNSwgNC4xMTgwNywgNS4xMzQyMyIsIFwKLSAgICAgICAgICAiMC4yNjk2NzYsIDAuMzIxMDI2LCAwLjc4Mjk1OCwgMS41NTI4NiwgMi4zMjMwMywgNC4xMTgsIDUuMTM4MDIiLCBcCi0gICAgICAgICAgIjAuMjY5NzEsIDAuMzIwOTAzLCAwLjc4Mjk5MywgMS41NTI4OSwgMi4zMjI4MiwgNC4xMTgwNCwgNS4xMzc0MyIsIFwKLSAgICAgICAgICAiMC4yNjk3MTIsIDAuMzIwOTA1LCAwLjc4Mjk5MiwgMS41NTI4OSwgMi4zMjI4MSwgNC4xMTgwNCwgNS4xMzc0NCIsIFwKLSAgICAgICAgICAiMC4yNjk3MTIsIDAuMzIwODk2LCAwLjc4Mjk5LCAxLjU1Mjg4LCAyLjMyMjgxLCA0LjExODA0LCA1LjEzNzY1IiwgXAotICAgICAgICAgICIwLjI2OTcxMiwgMC4zMjA5MzYsIDAuNzgyOTE0LCAxLjU1Mjg1LCAyLjMyMzEzLCA0LjExNzk5LCA1LjEzNzM0IiwgXAotICAgICAgICAgICIwLjI2OTcxLCAwLjMyMDk2NSwgMC43ODI5MTQsIDEuNTUyODQsIDIuMzIzMTIsIDQuMTE3OTksIDUuMTM3NjQiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzc1NTYsIDAuNDA1MjUxLCAwLjY3MjU1MywgMS4xMTc5NSwgMS41NjMzNiwgMi42MDI1NiwgMy4xOTYzNiIsIFwKLSAgICAgICAgICAiMC4zODcyNzQsIDAuNDE2OTUxLCAwLjY4NDI1NywgMS4xMjk2MywgMS41NzUwNywgMi42MTQyNiwgMy4yMDgwNiIsIFwKLSAgICAgICAgICAiMC40MDE2NzEsIDAuNDMxMzYxLCAwLjY5ODY1NCwgMS4xNDQwNywgMS41ODk0NiwgMi42Mjg2NiwgMy4yMjI0MSIsIFwKLSAgICAgICAgICAiMC40MTUxMTEsIDAuNDQ0ODA1LCAwLjcxMjEsIDEuMTU3NDcsIDEuNjAyODQsIDIuNjQyMDksIDMuMjM1OTQiLCBcCi0gICAgICAgICAgIjAuNDI4MTEsIDAuNDU3Nzk5LCAwLjcyNTEzNiwgMS4xNzA1MSwgMS42MTU5MywgMi42NTUxLCAzLjI0OTA2IiwgXAotICAgICAgICAgICIwLjQ1MTM1MiwgMC40ODEwNDMsIDAuNzQ4Mzg2LCAxLjE5Mzc1LCAxLjYzOTE0LCAyLjY3ODMyLCAzLjI3MjE5IiwgXAotICAgICAgICAgICIwLjQ3MTU0NCwgMC41MDEyNDIsIDAuNzY4NTgxLCAxLjIxMzkyLCAxLjY1OTI1LCAyLjY5ODUzLCAzLjI5MjQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzA4NDEzLCAwLjM2NzEwMiwgMC44OTYyODksIDEuNzc3NzcsIDIuNjU5NDQsIDQuNzE2NTgsIDUuODkwMjEiLCBcCi0gICAgICAgICAgIjAuMzA4MzkzLCAwLjM2NzEwMSwgMC44OTYyOTksIDEuNzc3OCwgMi42NTk0NSwgNC43MTQyNSwgNS44OTAzMSIsIFwKLSAgICAgICAgICAiMC4zMDgzODEsIDAuMzY3MTE5LCAwLjg5NjI4OSwgMS43Nzc3OCwgMi42NTk0NCwgNC43MTY2OSwgNS44OTA0MyIsIFwKLSAgICAgICAgICAiMC4zMDg0MTMsIDAuMzY3MDk4LCAwLjg5NjI2MiwgMS43Nzc4MiwgMi42NTk0NCwgNC43MTY1NCwgNS44OTAyMSIsIFwKLSAgICAgICAgICAiMC4zMDgzODQsIDAuMzY3MTA1LCAwLjg5NjI2MiwgMS43Nzc4MSwgMi42NTk1MiwgNC43MTY0MywgNS44OTA0NyIsIFwKLSAgICAgICAgICAiMC4zMDgzOTcsIDAuMzY3MDk5LCAwLjg5NjMwNCwgMS43Nzc4LCAyLjY1OTUzLCA0LjcxNDkzLCA1Ljg5MDMxIiwgXAotICAgICAgICAgICIwLjMwODM4NSwgMC4zNjcxLCAwLjg5NjI2OSwgMS43Nzc4LCAyLjY1OTUxLCA0LjcxNDkxLCA1Ljg5MDM2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0tOIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDMxMDMsIDAuMDAzMTA0LCAwLjAwMzEwNywgMC4wMDMxMDgsIDAuMDAzMTA4LCAwLjAwMzEwOSwgMC4wMDMxMDgiLCBcCi0gICAgICAgICAgIjAuMDAzMDk5LCAwLjAwMzA5OSwgMC4wMDMxMDIsIDAuMDAzMTAzLCAwLjAwMzEwMywgMC4wMDMxMDMsIDAuMDAzMTAzIiwgXAotICAgICAgICAgICIwLjAwMzA5MiwgMC4wMDMwOTMsIDAuMDAzMDk2LCAwLjAwMzA5NywgMC4wMDMwOTcsIDAuMDAzMDk4LCAwLjAwMzA5OCIsIFwKLSAgICAgICAgICAiMC4wMDMwODgsIDAuMDAzMDg5LCAwLjAwMzA5MSwgMC4wMDMwOTIsIDAuMDAzMDkzLCAwLjAwMzA5MywgMC4wMDMwOTMiLCBcCi0gICAgICAgICAgIjAuMDAzMDg0LCAwLjAwMzA4NSwgMC4wMDMwODgsIDAuMDAzMDg5LCAwLjAwMzA4OSwgMC4wMDMwODksIDAuMDAzMDg5IiwgXAotICAgICAgICAgICIwLjAwMzA4MSwgMC4wMDMwODEsIDAuMDAzMDg0LCAwLjAwMzA4NSwgMC4wMDMwODUsIDAuMDAzMDg2LCAwLjAwMzA4NiIsIFwKLSAgICAgICAgICAiMC4wMDMwNzcsIDAuMDAzMDc4LCAwLjAwMzA4LCAwLjAwMzA4MSwgMC4wMDMwODIsIDAuMDAzMDgyLCAwLjAwMzA4MiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzQ4NywgMC4wMDM0ODcsIDAuMDAzNDksIDAuMDAzNDkxLCAwLjAwMzQ5MSwgMC4wMDM0OTEsIDAuMDAzNDkxIiwgXAotICAgICAgICAgICIwLjAwMzQ4MiwgMC4wMDM0ODMsIDAuMDAzNDg1LCAwLjAwMzQ4NiwgMC4wMDM0ODYsIDAuMDAzNDg3LCAwLjAwMzQ4NiIsIFwKLSAgICAgICAgICAiMC4wMDM0NzcsIDAuMDAzNDc4LCAwLjAwMzQ4LCAwLjAwMzQ4MSwgMC4wMDM0ODEsIDAuMDAzNDgyLCAwLjAwMzQ4MiIsIFwKLSAgICAgICAgICAiMC4wMDM0NzQsIDAuMDAzNDc1LCAwLjAwMzQ3NywgMC4wMDM0NzgsIDAuMDAzNDc5LCAwLjAwMzQ3OSwgMC4wMDM0NzkiLCBcCi0gICAgICAgICAgIjAuMDAzNDczLCAwLjAwMzQ3NCwgMC4wMDM0NzYsIDAuMDAzNDc3LCAwLjAwMzQ3OCwgMC4wMDM0NzgsIDAuMDAzNDc4IiwgXAotICAgICAgICAgICIwLjAwMzQ3NSwgMC4wMDM0NzUsIDAuMDAzNDc4LCAwLjAwMzQ3OSwgMC4wMDM0NzksIDAuMDAzNDc5LCAwLjAwMzQ3OSIsIFwKLSAgICAgICAgICAiMC4wMDM0NzQsIDAuMDAzNDc1LCAwLjAwMzQ3NywgMC4wMDM0NzgsIDAuMDAzNDc4LCAwLjAwMzQ3OSwgMC4wMDM0NzkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0MDY4LCAwLjAwNDA2OCwgMC4wMDQwNjgsIDAuMDA0MDY2LCAwLjAwNDA2NSwgMC4wMDQwNjQsIDAuMDA0MDY0IiwgXAotICAgICAgICAgICIwLjAwNDA2MywgMC4wMDQwNjQsIDAuMDA0MDY0LCAwLjAwNDA2MiwgMC4wMDQwNjEsIDAuMDA0MDU5LCAwLjAwNDA1OSIsIFwKLSAgICAgICAgICAiMC4wMDQwNTksIDAuMDA0MDU5LCAwLjAwNDA1OSwgMC4wMDQwNTcsIDAuMDA0MDU2LCAwLjAwNDA1NSwgMC4wMDQwNTUiLCBcCi0gICAgICAgICAgIjAuMDA0MDU1LCAwLjAwNDA1NiwgMC4wMDQwNTYsIDAuMDA0MDU0LCAwLjAwNDA1MywgMC4wMDQwNTIsIDAuMDA0MDUyIiwgXAotICAgICAgICAgICIwLjAwNDA1NCwgMC4wMDQwNTQsIDAuMDA0MDU0LCAwLjAwNDA1MywgMC4wMDQwNTIsIDAuMDA0MDUsIDAuMDA0MDUiLCBcCi0gICAgICAgICAgIjAuMDA0MDUxLCAwLjAwNDA1MiwgMC4wMDQwNTIsIDAuMDA0MDUsIDAuMDA0MDQ5LCAwLjAwNDA0OCwgMC4wMDQwNDgiLCBcCi0gICAgICAgICAgIjAuMDA0MDQ4LCAwLjAwNDA0OSwgMC4wMDQwNDksIDAuMDA0MDQ3LCAwLjAwNDA0NywgMC4wMDQwNDUsIDAuMDA0MDQ0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHNjYWxhcikgewotICAgICAgICB2YWx1ZXMoIjAiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyOTQzLCAwLjAwMjk0NCwgMC4wMDI5NDYsIDAuMDAyOTQ3LCAwLjAwMjk0OCwgMC4wMDI5NDgsIDAuMDAyOTQ4IiwgXAotICAgICAgICAgICIwLjAwMjkzNiwgMC4wMDI5MzcsIDAuMDAyOTQsIDAuMDAyOTQxLCAwLjAwMjk0MSwgMC4wMDI5NDEsIDAuMDAyOTQxIiwgXAotICAgICAgICAgICIwLjAwMjkzMSwgMC4wMDI5MzIsIDAuMDAyOTM1LCAwLjAwMjkzNiwgMC4wMDI5MzYsIDAuMDAyOTM2LCAwLjAwMjkzNyIsIFwKLSAgICAgICAgICAiMC4wMDI5MjgsIDAuMDAyOTI5LCAwLjAwMjkzMiwgMC4wMDI5MzMsIDAuMDAyOTMzLCAwLjAwMjkzMywgMC4wMDI5MzMiLCBcCi0gICAgICAgICAgIjAuMDAyOTI1LCAwLjAwMjkyNiwgMC4wMDI5MjksIDAuMDAyOTMsIDAuMDAyOTMsIDAuMDAyOTMxLCAwLjAwMjkzMSIsIFwKLSAgICAgICAgICAiMC4wMDI5MjIsIDAuMDAyOTIzLCAwLjAwMjkyNiwgMC4wMDI5MjcsIDAuMDAyOTI3LCAwLjAwMjkyNywgMC4wMDI5MjciLCBcCi0gICAgICAgICAgIjAuMDAyOTIsIDAuMDAyOTIxLCAwLjAwMjkyNCwgMC4wMDI5MjUsIDAuMDAyOTI1LCAwLjAwMjkyNSwgMC4wMDI5MjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDM3ODksIDAuMDAzNzksIDAuMDAzNzkyLCAwLjAwMzc5MywgMC4wMDM3OTMsIDAuMDAzNzkzLCAwLjAwMzc5MyIsIFwKLSAgICAgICAgICAiMC4wMDM3ODMsIDAuMDAzNzg0LCAwLjAwMzc4NSwgMC4wMDM3ODYsIDAuMDAzNzg3LCAwLjAwMzc4NywgMC4wMDM3ODciLCBcCi0gICAgICAgICAgIjAuMDAzNzc5LCAwLjAwMzc3OSwgMC4wMDM3ODIsIDAuMDAzNzgyLCAwLjAwMzc4MiwgMC4wMDM3ODMsIDAuMDAzNzgzIiwgXAotICAgICAgICAgICIwLjAwMzc3NSwgMC4wMDM3NzcsIDAuMDAzNzc4LCAwLjAwMzc3OSwgMC4wMDM3NzksIDAuMDAzNzc5LCAwLjAwMzc3OSIsIFwKLSAgICAgICAgICAiMC4wMDM3NzQsIDAuMDAzNzc0LCAwLjAwMzc3NiwgMC4wMDM3NzcsIDAuMDAzNzc3LCAwLjAwMzc3NywgMC4wMDM3NzciLCBcCi0gICAgICAgICAgIjAuMDAzNzcxLCAwLjAwMzc3MiwgMC4wMDM3NzQsIDAuMDAzNzc0LCAwLjAwMzc3NCwgMC4wMDM3NzQsIDAuMDAzNzc0IiwgXAotICAgICAgICAgICIwLjAwMzc2NywgMC4wMDM3NjcsIDAuMDAzNzY5LCAwLjAwMzc3LCAwLjAwMzc3LCAwLjAwMzc3MSwgMC4wMDM3NyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUk4pICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDU5OTU5MzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA1OTkyODk7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNTk5NTkzOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDM5MiwgMC4wMDAzNzgsIDAuMDAwMzY4LCAwLjAwMDM2MywgMC4wMDAzNTksIDAuMDAwMzU3LCAwLjAwMDM1NiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjAxNywgMC4wMDIwMDgsIDAuMDAyMDAyLCAwLjAwMTk5OCwgMC4wMDE5OTYsIDAuMDAxOTk0LCAwLjAwMTk5MyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQmU04iOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC40OTg2MDUsIDAuNTEwMTg4LCAwLjUyNDk2NywgMC41Mzk2MjIsIDAuNTU0MTI0LCAwLjU3NTk2MSwgMC41OTMxNzYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0tOIjsKLSAgICAgIHRpbWluZ190eXBlIDogcmVjb3ZlcnlfZmFsbGluZzsKLSAgICAgIHdoZW4gOiAiRCZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzFfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChyZWNvdmVyeV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzUsIDAuMDYzNzUsIDAuMDQ1LCAwLjAzMjUsIDAuMDEzNzUsIC0wLjAwODc1LCAtMC4wMyIsIFwKLSAgICAgICAgICAiMC4wODYyNSwgMC4wNzUsIDAuMDU2MjUsIDAuMDQzNzUsIDAuMDI1LCAwLjAwMjUsIC0wLjAxODc1IiwgXAotICAgICAgICAgICIwLjEwNSwgMC4wODc1LCAwLjA3NSwgMC4wNTYyNSwgMC4wNDM3NSwgMC4wMjEyNSwgMCIsIFwKLSAgICAgICAgICAiMC4xMTc1LCAwLjEwNjI1LCAwLjA4NzUsIDAuMDc1LCAwLjA1NjI1LCAwLjAzMzc1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMTMsIDAuMTE4NzUsIDAuMTA2MjUsIDAuMDg3NSwgMC4wNzUsIDAuMDUyNSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4xNTg3NSwgMC4xNDc1LCAwLjEyODc1LCAwLjExLCAwLjA5NzUsIDAuMDc1LCAwLjA1Mzc1IiwgXAotICAgICAgICAgICIwLjE4LCAwLjE2MjUsIDAuMTUsIDAuMTMxMjUsIDAuMTE4NzUsIDAuMDksIDAuMDc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIHRpbWluZ190eXBlIDogcmVjb3ZlcnlfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRCI7Ci0gICAgICBzZGZfY29uZCA6ICJEID09IDEnYjAiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHJlY292ZXJ5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE4MTI1LCAwLjE5MjUsIDAuMjExMjUsIDAuMjIzNzUsIDAuMjM2MjUsIDAuMjU4NzUsIDAuMjczNzUiLCBcCi0gICAgICAgICAgIjAuMTcsIDAuMTgxMjUsIDAuMiwgMC4yMTI1LCAwLjIyNSwgMC4yNDc1LCAwLjI2MjUiLCBcCi0gICAgICAgICAgIjAuMTU3NSwgMC4xNjg3NSwgMC4xODc1LCAwLjIsIDAuMjEyNSwgMC4yMzUsIDAuMjUiLCBcCi0gICAgICAgICAgIjAuMTQ1LCAwLjE1NjI1LCAwLjE3NSwgMC4xODc1LCAwLjIsIDAuMjIyNSwgMC4yMzc1IiwgXAotICAgICAgICAgICIwLjEzODc1LCAwLjE1LCAwLjE2MjUsIDAuMTc1LCAwLjE4NzUsIDAuMjEsIDAuMjMxMjUiLCBcCi0gICAgICAgICAgIjAuMTIyNSwgMC4xMzM3NSwgMC4xNDYyNSwgMC4xNjUsIDAuMTc3NSwgMC4yLCAwLjIxNSIsIFwKLSAgICAgICAgICAiMC4xMTM3NSwgMC4xMjUsIDAuMTM3NSwgMC4xNSwgMC4xNjg3NSwgMC4xODUsIDAuMjA2MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0tOIjsKLSAgICAgIHRpbWluZ190eXBlIDogcmVtb3ZhbF9mYWxsaW5nOwotICAgICAgd2hlbiA6ICJEJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMV9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHJlbW92YWxfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2MjUsIDAuMDE3NSwgMC4wMzYyNSwgMC4wNDg3NSwgMC4wNjEyNSwgMC4wODM3NSwgMC4xMDUiLCBcCi0gICAgICAgICAgIi0wLjAwNSwgMC4wMDYyNSwgMC4wMjUsIDAuMDM3NSwgMC4wNSwgMC4wNzI1LCAwLjA5Mzc1IiwgXAotICAgICAgICAgICItMC4wMTc1LCAtMC4wMDYyNSwgMC4wMDYyNSwgMC4wMjUsIDAuMDM3NSwgMC4wNiwgMC4wNzUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMjUsIC0wLjAwNjI1LCAwLjAwNjI1LCAwLjAyNSwgMC4wNDc1LCAwLjA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAwNjI1LCAwLjAwNjI1LCAwLjAyODc1LCAwLjA1IiwgXAotICAgICAgICAgICItMC4wNzEyNSwgLTAuMDYsIC0wLjA0NzUsIC0wLjAyODc1LCAtMC4wMTYyNSwgMC4wMDYyNSwgMC4wMjEyNSIsIFwKLSAgICAgICAgICAiLTAuMDkyNSwgLTAuMDgxMjUsIC0wLjA2ODc1LCAtMC4wNSwgLTAuMDM3NSwgLTAuMDE1LCAwLjAwNjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTTikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNTY2NDE7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNTY1OTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE1NjY0MTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAzMzEsIDAuMDAwMzMsIDAuMDAwMzMsIDAuMDAwMzMsIDAuMDAwMzMsIDAuMDAwMzMsIDAuMDAwMzMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAzMzEsIDAuMDAwMzMyLCAwLjAwMDMzMSwgMC4wMDAzMzEsIDAuMDAwMzMyLCAwLjAwMDMzMiwgMC4wMDAzMzIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiU04iOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFEJiFSTiI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fUk5fRVFfMCA9PSAxJ2IxIjsKLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjM3NTU2LCAwLjM4NzIyMywgMC40MDE2NjEsIDAuNDE1MTExLCAwLjQyODExLCAwLjQ1MTM1MiwgMC40NzE1NDQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0tOIjsKLSAgICAgIHRpbWluZ190eXBlIDogcmVjb3ZlcnlfZmFsbGluZzsKLSAgICAgIHdoZW4gOiAiIUQmUk4iOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1JOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQocmVjb3ZlcnlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDkzNzUsIDAuMDgyNSwgMC4wNjM3NSwgMC4wNTEyNSwgMC4wMzI1LCAwLjAxLCAtMC4wMDUiLCBcCi0gICAgICAgICAgIjAuMTA1LCAwLjA5Mzc1LCAwLjA3NSwgMC4wNjI1LCAwLjA0Mzc1LCAwLjAyMTI1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICIwLjExNzUsIDAuMTA2MjUsIDAuMDkzNzUsIDAuMDc1LCAwLjA2MjUsIDAuMDQsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMTM2MjUsIDAuMTE4NzUsIDAuMTA2MjUsIDAuMDg3NSwgMC4wNzUsIDAuMDUyNSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4xNDg3NSwgMC4xMzc1LCAwLjExODc1LCAwLjEwNjI1LCAwLjA4NzUsIDAuMDY1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjE3MTI1LCAwLjE2LCAwLjE0MTI1LCAwLjEyODc1LCAwLjExLCAwLjA4NzUsIDAuMDY2MjUiLCBcCi0gICAgICAgICAgIjAuMTkyNSwgMC4xNzUsIDAuMTYyNSwgMC4xNDM3NSwgMC4xMzEyNSwgMC4xMDg3NSwgMC4wODc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJlbW92YWxfZmFsbGluZzsKLSAgICAgIHdoZW4gOiAiIUQmUk4iOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1JOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQocmVtb3ZhbF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTI1LCAwLjAyMzc1LCAwLjAzNjI1LCAwLjA1NSwgMC4wNjc1LCAwLjA5LCAwLjEwNSIsIFwKLSAgICAgICAgICAiMC4wMDEyNSwgMC4wMTI1LCAwLjAyNSwgMC4wNDM3NSwgMC4wNTYyNSwgMC4wNzg3NSwgMC4wOTM3NSIsIFwKLSAgICAgICAgICAiLTAuMDExMjUsIDAsIDAuMDEyNSwgMC4wMjUsIDAuMDQzNzUsIDAuMDYsIDAuMDgxMjUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMTg3NSwgMCwgMC4wMTI1LCAwLjAyNSwgMC4wNDc1LCAwLjA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgMCwgMC4wMTI1LCAwLjAzNSwgMC4wNSIsIFwKLSAgICAgICAgICAiLTAuMDY1LCAtMC4wNTM3NSwgLTAuMDM1LCAtMC4wMjI1LCAtMC4wMSwgMC4wMTI1LCAwLjAyNzUiLCBcCi0gICAgICAgICAgIi0wLjA4LCAtMC4wNjg3NSwgLTAuMDU2MjUsIC0wLjAzNzUsIC0wLjAyNSwgLTAuMDAyNSwgMC4wMTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IERGRlJIUVgxICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChERkZSSFFYMSkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjI5MjE4NDsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBmZiAoTjMwLFFCSU5UKSB7Ci0gICAgbmV4dF9zdGF0ZSA6ICJEIjsKLSAgICBjbG9ja2VkX29uIDogIkNLIjsKLSAgICBjbGVhciA6ICIoIVJOKSI7Ci0gIH0KLSAgcGluKENLKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA1NzAxMjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA1Njk4NzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA1NzAxMjsKLSAgICBjbG9jayA6IHRydWU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyNjE4LCAwLjAwMjYwNywgMC4wMDI1OTgsIDAuMDAyNTkxLCAwLjAwMjU4NywgMC4wMDI1OCwgMC4wMDI1NzYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDY5NDEsIDAuMDA2OTM1LCAwLjAwNjkyOCwgMC4wMDY5MjMsIDAuMDA2OTIsIDAuMDA2OTEyLCAwLjAwNjkxMiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQmUk4iOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1JOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4zMjY5MDgsIDAuMzM4NjkyLCAwLjM1Mzg0LCAwLjM2OTMxNCwgMC4zODQ3ODIsIDAuNDA5MDQyLCAwLjQzMDYxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4yMzEyNTIsIDAuMjQyNzQ3LCAwLjI1NzYyNCwgMC4yNzI1NDcsIDAuMjg3MzU0LCAwLjMxMDUyMSwgMC4zMzA5MjQiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEQpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDc4ODE2NjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA3ODQ5MjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA3ODgxNjY7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyNDg1LCAwLjAwMjQ2OCwgMC4wMDI0NTgsIDAuMDAyNDUxLCAwLjAwMjQ0NiwgMC4wMDI0MzgsIDAuMDAyNDM1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzMDU4LCAwLjAwMzA0OSwgMC4wMDMwNDMsIDAuMDAzMDM5LCAwLjAwMzAzNSwgMC4wMDMwMywgMC4wMDMwMjciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiUk4iOwotICAgICAgc2RmX2NvbmQgOiAiUk4gPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDQzNzUsIC0wLjAzMjUsIC0wLjAyLCAtMC4wMDc1LCAwLjAwNSwgMC4wMjEyNSwgMC4wMyIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNDM3NSwgLTAuMDMxMjUsIC0wLjAxODc1LCAtMC4wMDYyNSwgMC4wMSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDY3NSwgLTAuMDU2MjUsIC0wLjA0Mzc1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIC0wLjAwMjUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA4LCAtMC4wNjg3NSwgLTAuMDU2MjUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMjEyNSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA5MjUsIC0wLjA4MTI1LCAtMC4wNjg3NSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wMzM3NSwgLTAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjExNSwgLTAuMTAzNzUsIC0wLjA5MTI1LCAtMC4wNzg3NSwgLTAuMDY2MjUsIC0wLjA1LCAtMC4wNDEyNSIsIFwKLSAgICAgICAgICAiLTAuMTMsIC0wLjExODc1LCAtMC4xMDYyNSwgLTAuMDkzNzUsIC0wLjA4NzUsIC0wLjA3MTI1LCAtMC4wNTYyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY4NzUsIDAuMDgsIDAuMDk4NzUsIDAuMTExMjUsIDAuMTMsIDAuMTUyNSwgMC4xNzM3NSIsIFwKLSAgICAgICAgICAiMC4wNTc1LCAwLjA2ODc1LCAwLjA4NzUsIDAuMSwgMC4xMTI1LCAwLjE0MTI1LCAwLjE2MjUiLCBcCi0gICAgICAgICAgIjAuMDQ1LCAwLjA1NjI1LCAwLjA2ODc1LCAwLjA4NzUsIDAuMSwgMC4xMjI1LCAwLjE0Mzc1IiwgXAotICAgICAgICAgICIwLjAzMjUsIDAuMDQzNzUsIDAuMDYyNSwgMC4wNzUsIDAuMDg3NSwgMC4xMTYyNSwgMC4xMzc1IiwgXAotICAgICAgICAgICIwLjAyNjI1LCAwLjAzNzUsIDAuMDUsIDAuMDYyNSwgMC4wODEyNSwgMC4xMDM3NSwgMC4xMjUiLCBcCi0gICAgICAgICAgIjAuMDEsIDAuMDIxMjUsIDAuMDMzNzUsIDAuMDUyNSwgMC4wNjUsIDAuMDg3NSwgMC4xMDg3NSIsIFwKLSAgICAgICAgICAiMC4wMDEyNSwgMC4wMTI1LCAwLjAyNSwgMC4wNDM3NSwgMC4wNTYyNSwgMC4wNzg3NSwgMC4xIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJSTiI7Ci0gICAgICBzZGZfY29uZCA6ICJSTiA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTM3NSwgMC4wODI1LCAwLjA3LCAwLjA1MTI1LCAwLjA0NSwgMC4wMjg3NSwgMC4wMTM3NSIsIFwKLSAgICAgICAgICAiMC4xMDUsIDAuMDkzNzUsIDAuMDgxMjUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNCwgMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMTE3NSwgMC4xMDYyNSwgMC4wOTM3NSwgMC4wODEyNSwgMC4wNjg3NSwgMC4wNTI1LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIjAuMTMsIDAuMTE4NzUsIDAuMTA2MjUsIDAuMDkzNzUsIDAuMDgxMjUsIDAuMDY1LCAwLjA1IiwgXAotICAgICAgICAgICIwLjE0MjUsIDAuMTMxMjUsIDAuMTE4NzUsIDAuMTA2MjUsIDAuMDkzNzUsIDAuMDc3NSwgMC4wNjI1IiwgXAotICAgICAgICAgICIwLjE2NSwgMC4xNTM3NSwgMC4xNDEyNSwgMC4xMjg3NSwgMC4xMTYyNSwgMC4xLCAwLjA4NSIsIFwKLSAgICAgICAgICAiMC4xODYyNSwgMC4xNzUsIDAuMTU2MjUsIDAuMTQzNzUsIDAuMTMxMjUsIDAuMTE1LCAwLjEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTI1LCAtMC4wMDUsIC0wLjAxNzUsIC0wLjAzNjI1LCAtMC4wNDg3NSwgLTAuMDc3NSwgLTAuMDk4NzUiLCBcCi0gICAgICAgICAgIjAuMDIzNzUsIDAuMDA2MjUsIC0wLjAwNjI1LCAtMC4wMjUsIC0wLjAzNzUsIC0wLjA2NjI1LCAtMC4wODc1IiwgXAotICAgICAgICAgICIwLjAzNjI1LCAwLjAxODc1LCAwLjAwNjI1LCAtMC4wMTI1LCAtMC4wMjUsIC0wLjA1Mzc1LCAtMC4wNzUiLCBcCi0gICAgICAgICAgIjAuMDQ4NzUsIDAuMDMxMjUsIDAuMDE4NzUsIDAsIC0wLjAxMjUsIC0wLjA0MTI1LCAtMC4wNjI1IiwgXAotICAgICAgICAgICIwLjA2MTI1LCAwLjA0Mzc1LCAwLjAzMTI1LCAwLjAxMjUsIDAsIC0wLjAyODc1LCAtMC4wNSIsIFwKLSAgICAgICAgICAiMC4wNzc1LCAwLjA2NjI1LCAwLjA0NzUsIDAuMDM1LCAwLjAxNjI1LCAtMC4wMDYyNSwgLTAuMDI3NSIsIFwKLSAgICAgICAgICAiMC4wOTI1LCAwLjA4MTI1LCAwLjA2ODc1LCAwLjA1LCAwLjAzMTI1LCAwLjAwODc1LCAtMC4wMTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihRKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMTI5ODU4OwotICAgIGZ1bmN0aW9uIDogIk4zMCI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3NlbnNlIDogbm9uX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiByaXNpbmdfZWRnZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzI5Njg3LCAwLjM3MzI4NiwgMC42MTc2OTgsIDAuODMzMzU5LCAxLjEyMTA2LCAxLjY5NjE5LCAyLjA1NTg2IiwgXAotICAgICAgICAgICIwLjM0MTUyOSwgMC4zODUxMywgMC42Mjk1MjYsIDAuODQ1MTg5LCAxLjEzMjg0LCAxLjcwODA5LCAyLjA2NzciLCBcCi0gICAgICAgICAgIjAuMzU2NTU0LCAwLjQwMDE0NCwgMC42NDQ1NTUsIDAuODYwMjE2LCAxLjE0Nzg2LCAxLjcyMzA4LCAyLjA4MjYyIiwgXAotICAgICAgICAgICIwLjM3MjA3NSwgMC40MTU2NjgsIDAuNjYwMDg4LCAwLjg3NTc0NiwgMS4xNjMzOSwgMS43Mzg1MywgMi4wOTgxNyIsIFwKLSAgICAgICAgICAiMC4zODc1NCwgMC40MzExNDgsIDAuNjc1NTcyLCAwLjg5MTIzMSwgMS4xNzg4NywgMS43NTQwMiwgMi4xMTM2NSIsIFwKLSAgICAgICAgICAiMC40MTE2NDcsIDAuNDU1MjQxLCAwLjY5OTY2OSwgMC45MTUzMjcsIDEuMjAyOTcsIDEuNzc4MTEsIDIuMTM3NzQiLCBcCi0gICAgICAgICAgIjAuNDMzMjE4LCAwLjQ3NjgyNiwgMC43MjEyNTMsIDAuOTM2OTIzLCAxLjIyNDYxLCAxLjc5OTc1LCAyLjE1OTQyIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE2ODgzMywgMC4yNTMwODEsIDAuNzQ0MjU1LCAxLjE4NDc1LCAxLjc2NTc2LCAyLjk0MTcsIDMuNjc0MTMiLCBcCi0gICAgICAgICAgIjAuMTY4Nzc0LCAwLjI1MzA5MywgMC43NDU5NDksIDEuMTg0NjksIDEuNzcwNTcsIDIuOTQyMDIsIDMuNjczOSIsIFwKLSAgICAgICAgICAiMC4xNjg4NjMsIDAuMjUzMDkzLCAwLjc0NDgyNCwgMS4xODQ0NCwgMS43NzA1NywgMi45NDE4NywgMy42NzM5NiIsIFwKLSAgICAgICAgICAiMC4xNjg4MzksIDAuMjUzMDcsIDAuNzQ0Nzk4LCAxLjE4NDQzLCAxLjc3MDU0LCAyLjkzOTUyLCAzLjY3NDA4IiwgXAotICAgICAgICAgICIwLjE2ODgyNCwgMC4yNTMwNjcsIDAuNzQ0ODAyLCAxLjE4NDQzLCAxLjc3MDUzLCAyLjkzNjQ0LCAzLjY3NDA3IiwgXAotICAgICAgICAgICIwLjE2ODgzOSwgMC4yNTMwNjcsIDAuNzQ0OCwgMS4xODQ0MywgMS43NzA1MywgMi45MzY0NywgMy42NzQxIiwgXAotICAgICAgICAgICIwLjE2ODgzMywgMC4yNTMwOCwgMC43NDQzMjcsIDEuMTg0NzgsIDEuNzY1NzcsIDIuOTQxNzUsIDMuNjc0MDciKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzI2OTA4LCAwLjM3NjM3OSwgMC42NTYzMiwgMC45MDMxMTQsIDEuMjMyMjgsIDEuODkwNjYsIDIuMzAyMTMiLCBcCi0gICAgICAgICAgIjAuMzM4NjkyLCAwLjM4ODE0NywgMC42NjgwNTEsIDAuOTE0OTIyLCAxLjI0NDAxLCAxLjkwMjQsIDIuMzEzNzgiLCBcCi0gICAgICAgICAgIjAuMzUzODQsIDAuNDAzMjk3LCAwLjY4MzIwNywgMC45MzAxMDcsIDEuMjU5MTcsIDEuOTE3NTYsIDIuMzI4OSIsIFwKLSAgICAgICAgICAiMC4zNjkzMTQsIDAuNDE4NzcsIDAuNjk4Njc4LCAwLjk0NTU0LCAxLjI3NDY1LCAxLjkzMzAyLCAyLjM0NDMxIiwgXAotICAgICAgICAgICIwLjM4NDc4MiwgMC40MzQyMzgsIDAuNzE0MTMsIDAuOTYxMDE2LCAxLjI5MDA5LCAxLjk0ODUsIDIuMzU5OTMiLCBcCi0gICAgICAgICAgIjAuNDA5MDQyLCAwLjQ1ODUxNCwgMC43Mzg0NTEsIDAuOTg1MjY2LCAxLjMxNDQzLCAxLjk3Mjc5LCAyLjM4NCIsIFwKLSAgICAgICAgICAiMC40MzA2MSwgMC40ODAwNjksIDAuNzYwMDU0LCAxLjAwNjgzLCAxLjMzNTkxLCAxLjk5NDM0LCAyLjQwNTY0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE3ODQzMiwgMC4yNzYyNTUsIDAuODI5NTg0LCAxLjMyMjIyLCAxLjk3OTI1LCAzLjI4OTAyLCA0LjA5OTQzIiwgXAotICAgICAgICAgICIwLjE3ODU3NywgMC4yNzUzNTYsIDAuODMwNTA0LCAxLjMyNDIsIDEuOTc2ODMsIDMuMjg5MjgsIDQuMTA1MTMiLCBcCi0gICAgICAgICAgIjAuMTc4NTk5LCAwLjI3NTQ5MSwgMC44MzA2NzQsIDEuMzIyNzksIDEuOTc2MjMsIDMuMjg5MjksIDQuMTA1MjUiLCBcCi0gICAgICAgICAgIjAuMTc4NTcxLCAwLjI3NTQ3OCwgMC44MzA3NTMsIDEuMzI0MTksIDEuOTc1NDksIDMuMjg5MzIsIDQuMTA1NDgiLCBcCi0gICAgICAgICAgIjAuMTc4NjczLCAwLjI3NjE3NywgMC44MzI2MzksIDEuMzI0MjEsIDEuOTgwNDksIDMuMjg5MzQsIDQuMTA1MDMiLCBcCi0gICAgICAgICAgIjAuMTc4MzA0LCAwLjI3NTMyMywgMC44Mjk2NDUsIDEuMzI0MjMsIDEuOTc5MTYsIDMuMjg5MTQsIDQuMTAyMzMiLCBcCi0gICAgICAgICAgIjAuMTc4MzU5LCAwLjI3NjE5NywgMC44MzAxMTQsIDEuMzI0MzcsIDEuOTgwMzQsIDMuMjg5MDksIDQuMDk3NDgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUk4iOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGNsZWFyOwotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNDM2OCwgMC4xOTMzNywgMC40NzMwOTUsIDAuNzE5OTIzLCAxLjA0OTAxLCAxLjcwNzQsIDIuMTE4NzUiLCBcCi0gICAgICAgICAgIjAuMTU1MTM0LCAwLjIwNDgzMSwgMC40ODQ1NDksIDAuNzMxMzc4LCAxLjA2MDQ3LCAxLjcxODc1LCAyLjEzMDI2IiwgXAotICAgICAgICAgICIwLjE2OTg3MSwgMC4yMTk1NzcsIDAuNDk5MzUzLCAwLjc0NjE2NywgMS4wNzUyNSwgMS43MzM1NiwgMi4xNDUwNCIsIFwKLSAgICAgICAgICAiMC4xODQ2OCwgMC4yMzQzOTgsIDAuNTE0MTc3LCAwLjc2MTAzMywgMS4wOTAxMSwgMS43NDg1LCAyLjE1OTg1IiwgXAotICAgICAgICAgICIwLjE5OTI5LCAwLjI0OTAxLCAwLjUyODgwNCwgMC43NzU2NDEsIDEuMTA0NzUsIDEuNzYzMTYsIDIuMTc0NDkiLCBcCi0gICAgICAgICAgIjAuMjIxMTMzLCAwLjI3MDg1NywgMC41NTA2NjIsIDAuNzk3NTA3LCAxLjEyNjYzLCAxLjc4NDksIDIuMTk2MjIiLCBcCi0gICAgICAgICAgIjAuMjM4ODQ5LCAwLjI4ODU2MywgMC41Njg0MDIsIDAuODE1MjQyLCAxLjE0NDM1LCAxLjgwMjc2LCAyLjIxNDEyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE3OTAwMywgMC4yNzU3OTQsIDAuODMxMzQsIDEuMzIyNzgsIDEuOTc0OCwgMy4yODQyMiwgNC4xMDM2OCIsIFwKLSAgICAgICAgICAiMC4xNzkwMjcsIDAuMjc1Nzg3LCAwLjgzMDc4MiwgMS4zMjA0NiwgMS45NzU2MiwgMy4yODM2MiwgNC4xMDM5NiIsIFwKLSAgICAgICAgICAiMC4xNzkwMDQsIDAuMjc1Nzg3LCAwLjgzMDcwMiwgMS4zMjA0LCAxLjk3NDQ3LCAzLjI4NzMsIDQuMTAyOTkiLCBcCi0gICAgICAgICAgIjAuMTc5MDI5LCAwLjI3NTc4NywgMC44MzExMTgsIDEuMzIxNjgsIDEuOTc1MDQsIDMuMjg0MTgsIDQuMTAzNzQiLCBcCi0gICAgICAgICAgIjAuMTc5MDQ3LCAwLjI3NTgwNSwgMC44MzE1MDgsIDEuMzIxNzYsIDEuOTc1MTgsIDMuMjg1NDEsIDQuMTAzMjgiLCBcCi0gICAgICAgICAgIjAuMTc5Mjk5LCAwLjI3NTkwMywgMC44MzA2MjksIDEuMzIwNSwgMS45NzUzNiwgMy4yODM3LCA0LjEwMjk3IiwgXAotICAgICAgICAgICIwLjE3OTcyLCAwLjI3NjA5OCwgMC44MzE0NTcsIDEuMzIwMjYsIDEuOTc1MTIsIDMuMjgzOTgsIDQuMTAyNTMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2MTk2LCAwLjAwNjE5NSwgMC4wMDYxNzUsIDAuMDA2MTY2LCAwLjAwNjE1OSwgMC4wMDYxNTMsIDAuMDA2MTUxIiwgXAotICAgICAgICAgICIwLjAwNjE4NiwgMC4wMDYxODQsIDAuMDA2MTY0LCAwLjAwNjE1NSwgMC4wMDYxNDgsIDAuMDA2MTQyLCAwLjAwNjE0IiwgXAotICAgICAgICAgICIwLjAwNjE3NCwgMC4wMDYxNzMsIDAuMDA2MTUyLCAwLjAwNjE0NCwgMC4wMDYxMzcsIDAuMDA2MTMsIDAuMDA2MTI5IiwgXAotICAgICAgICAgICIwLjAwNjE2NiwgMC4wMDYxNjUsIDAuMDA2MTQ1LCAwLjAwNjEzNiwgMC4wMDYxMjksIDAuMDA2MTIyLCAwLjAwNjEyIiwgXAotICAgICAgICAgICIwLjAwNjE1OCwgMC4wMDYxNTgsIDAuMDA2MTM4LCAwLjAwNjEyOSwgMC4wMDYxMjIsIDAuMDA2MTE1LCAwLjAwNjExNCIsIFwKLSAgICAgICAgICAiMC4wMDYxNDcsIDAuMDA2MTQ2LCAwLjAwNjEyNywgMC4wMDYxMTgsIDAuMDA2MTExLCAwLjAwNjEwNSwgMC4wMDYxMDIiLCBcCi0gICAgICAgICAgIjAuMDA2MTQxLCAwLjAwNjE0MSwgMC4wMDYxMjIsIDAuMDA2MTEyLCAwLjAwNjEwNiwgMC4wMDYxLCAwLjAwNjA5NiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjIwOCwgMC4wMDYyMTQsIDAuMDA2MjIzLCAwLjAwNjIyNSwgMC4wMDYyMjYsIDAuMDA2MjI2LCAwLjAwNjIyNiIsIFwKLSAgICAgICAgICAiMC4wMDYyLCAwLjAwNjIwNiwgMC4wMDYyMTQsIDAuMDA2MjE2LCAwLjAwNjIxNywgMC4wMDYyMTgsIDAuMDA2MjE4IiwgXAotICAgICAgICAgICIwLjAwNjE5LCAwLjAwNjE5NiwgMC4wMDYyMDQsIDAuMDA2MjA2LCAwLjAwNjIwNywgMC4wMDYyMDgsIDAuMDA2MjA4IiwgXAotICAgICAgICAgICIwLjAwNjE4MiwgMC4wMDYxODgsIDAuMDA2MTk2LCAwLjAwNjE5OCwgMC4wMDYxOTksIDAuMDA2MiwgMC4wMDYyIiwgXAotICAgICAgICAgICIwLjAwNjE3NiwgMC4wMDYxODIsIDAuMDA2MTksIDAuMDA2MTkyLCAwLjAwNjE5MywgMC4wMDYxOTQsIDAuMDA2MTk0IiwgXAotICAgICAgICAgICIwLjAwNjE3OCwgMC4wMDYxODQsIDAuMDA2MTkyLCAwLjAwNjE5NCwgMC4wMDYxOTUsIDAuMDA2MTk2LCAwLjAwNjE5NiIsIFwKLSAgICAgICAgICAiMC4wMDYxNzUsIDAuMDA2MTgyLCAwLjAwNjE5LCAwLjAwNjE5MiwgMC4wMDYxOTMsIDAuMDA2MTk0LCAwLjAwNjE5NCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDcxMiwgMC4wMDcxMjUsIDAuMDA3MTMsIDAuMDA3MTMxLCAwLjAwNzEzMiwgMC4wMDcxMzIsIDAuMDA3MTMyIiwgXAotICAgICAgICAgICIwLjAwNzA5OCwgMC4wMDcxMDMsIDAuMDA3MTA5LCAwLjAwNzExLCAwLjAwNzExLCAwLjAwNzExMSwgMC4wMDcxMTEiLCBcCi0gICAgICAgICAgIjAuMDA3MDgsIDAuMDA3MDg2LCAwLjAwNzA5MywgMC4wMDcwOTUsIDAuMDA3MDk1LCAwLjAwNzA5NiwgMC4wMDcwOTYiLCBcCi0gICAgICAgICAgIjAuMDA3MDY1LCAwLjAwNzA3MiwgMC4wMDcwODEsIDAuMDA3MDgzLCAwLjAwNzA4NCwgMC4wMDcwODUsIDAuMDA3MDg1IiwgXAotICAgICAgICAgICIwLjAwNzA1MywgMC4wMDcwNjEsIDAuMDA3MDcyLCAwLjAwNzA3NSwgMC4wMDcwNzYsIDAuMDA3MDc3LCAwLjAwNzA3NyIsIFwKLSAgICAgICAgICAiMC4wMDcwMzYsIDAuMDA3MDQ1LCAwLjAwNzA1OSwgMC4wMDcwNjIsIDAuMDA3MDY0LCAwLjAwNzA2NSwgMC4wMDcwNjUiLCBcCi0gICAgICAgICAgIjAuMDA3MDIyLCAwLjAwNzAzMiwgMC4wMDcwNDgsIDAuMDA3MDUxLCAwLjAwNzA1MywgMC4wMDcwNTUsIDAuMDA3MDU1Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3Bvd2VyKHNjYWxhcikgewotICAgICAgICB2YWx1ZXMoIjAiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFJOKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE1MjY2MjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE0MTMyNTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE1MjY2MjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA0ODUsIDAuMDAwNDg0LCAwLjAwMDQ4NCwgMC4wMDA0ODQsIDAuMDAwNDg0LCAwLjAwMDQ4NCwgMC4wMDA0ODQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA0OSwgMC4wMDA0ODcsIDAuMDAwNDg3LCAwLjAwMDQ4NywgMC4wMDA0ODYsIDAuMDAwNDg2LCAwLjAwMDQ4NyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQiOwotICAgICAgc2RmX2NvbmQgOiAiRCA9PSAxJ2IwIjsKLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjE3MjQxOCwgMC4xODM5NzcsIDAuMTk4MDk4LCAwLjIxMTI3MiwgMC4yMjM4OSwgMC4yNDMzMDUsIDAuMjYwMDM5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogcmVjb3ZlcnlfcmlzaW5nOwotICAgICAgd2hlbiA6ICJEIjsKLSAgICAgIHNkZl9jb25kIDogIkQgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQocmVjb3ZlcnlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjA4MTI1LCAtMC4wOTI1LCAtMC4xMTEyNSwgLTAuMTIzNzUsIC0wLjE0MjUsIC0wLjE2NSwgLTAuMTg2MjUiLCBcCi0gICAgICAgICAgIi0wLjA4ODc1LCAtMC4xLCAtMC4xMTg3NSwgLTAuMTMxMjUsIC0wLjE1LCAtMC4xNzI1LCAtMC4xOTM3NSIsIFwKLSAgICAgICAgICAiLTAuMDk1LCAtMC4xMTI1LCAtMC4xMjUsIC0wLjE0Mzc1LCAtMC4xNTYyNSwgLTAuMTg1LCAtMC4yMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMTAxMjUsIC0wLjExMjUsIC0wLjEyNSwgLTAuMTQzNzUsIC0wLjE2MjUsIC0wLjE4NSwgLTAuMjA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA5NSwgLTAuMTA2MjUsIC0wLjExODc1LCAtMC4xMzc1LCAtMC4xNTYyNSwgLTAuMTc4NzUsIC0wLjIiLCBcCi0gICAgICAgICAgIi0wLjA3MjUsIC0wLjA4Mzc1LCAtMC4xMDI1LCAtMC4xMjEyNSwgLTAuMTMzNzUsIC0wLjE2MjUsIC0wLjE4Mzc1IiwgXAotICAgICAgICAgICItMC4wNTEyNSwgLTAuMDYyNSwgLTAuMDgxMjUsIC0wLjEsIC0wLjExMjUsIC0wLjE0MTI1LCAtMC4xNjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogcmVtb3ZhbF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIkQiOwotICAgICAgc2RmX2NvbmQgOiAiRCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChyZW1vdmFsX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEyNSwgMC4xMzYyNSwgMC4xNTUsIDAuMTY3NSwgMC4xODYyNSwgMC4yMDg3NSwgMC4yMyIsIFwKLSAgICAgICAgICAiMC4xMzI1LCAwLjE1LCAwLjE2MjUsIDAuMTc1LCAwLjE5Mzc1LCAwLjIxNjI1LCAwLjIzNzUiLCBcCi0gICAgICAgICAgIjAuMTQ1LCAwLjE1NjI1LCAwLjE3NSwgMC4xODc1LCAwLjIwNjI1LCAwLjIyODc1LCAwLjI1IiwgXAotICAgICAgICAgICIwLjE1NzUsIDAuMTY4NzUsIDAuMTgxMjUsIDAuMiwgMC4yMTI1LCAwLjI0MTI1LCAwLjI2MjUiLCBcCi0gICAgICAgICAgIjAuMTYzNzUsIDAuMTgxMjUsIDAuMTkzNzUsIDAuMjA2MjUsIDAuMjI1LCAwLjI0NzUsIDAuMjY4NzUiLCBcCi0gICAgICAgICAgIjAuMTg1LCAwLjE5NjI1LCAwLjIwODc1LCAwLjIyNzUsIDAuMjQsIDAuMjYyNSwgMC4yODM3NSIsIFwKLSAgICAgICAgICAiMC4xOTUsIDAuMjA2MjUsIDAuMjE4NzUsIDAuMjM3NSwgMC4yNSwgMC4yNzg3NSwgMC4yOTM3NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBERkZSSFFYNCAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoREZGUkhRWDQpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC40NDkxODI7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgZmYgKE4zMCxRQklOVCkgewotICAgIG5leHRfc3RhdGUgOiAiRCI7Ci0gICAgY2xvY2tlZF9vbiA6ICJDSyI7Ci0gICAgY2xlYXIgOiAiKCFSTikiOwotICB9Ci0gIHBpbihDSykgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjE3NTY3OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYxNzM0NzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2MTc1Njc7Ci0gICAgY2xvY2sgOiB0cnVlOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjg4OSwgMC4wMDI4NzgsIDAuMDAyODY4LCAwLjAwMjg2MiwgMC4wMDI4NTYsIDAuMDAyODQ5LCAwLjAwMjg0NiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNjY2MiwgMC4wMDY2NTUsIDAuMDA2NjQ5LCAwLjAwNjY0MywgMC4wMDY2MzksIDAuMDA2NjMyLCAwLjAwNjYzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRCZSTiI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fUk5fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjI3MzU0MiwgMC4yODUzOTIsIDAuMzAwNzUxLCAwLjMxNjE1MywgMC4zMzE2MiwgMC4zNTYwNTEsIDAuMzc3Mjg4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4yMjc1NjQsIDAuMjM5MTU2LCAwLjI1NDAxNywgMC4yNjg4MDMsIDAuMjgzNzAyLCAwLjMwNjYyMywgMC4zMjYyNTUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEQpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDczMTk5MjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA3Mjk3Mzg7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNzMxOTkyOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjM0NiwgMC4wMDIzMjksIDAuMDAyMzE4LCAwLjAwMjMxMSwgMC4wMDIzMDYsIDAuMDAyMjk4LCAwLjAwMjI5MiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzA5LCAwLjAwMzA4MSwgMC4wMDMwNzUsIDAuMDAzMDY5LCAwLjAwMzA2NiwgMC4wMDMwNjEsIDAuMDAzMDU3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlJOIjsKLSAgICAgIHNkZl9jb25kIDogIlJOID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAzNzUsIC0wLjAzMjUsIC0wLjAyLCAtMC4wMDc1LCAwLjAwNSwgMC4wMjEyNSwgMC4wMyIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjA0Mzc1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLjAxLCAwLjAxODc1IiwgXAotICAgICAgICAgICItMC4wNjc1LCAtMC4wNTYyNSwgLTAuMDQzNzUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgLTAuMDAyNSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDgsIC0wLjA2ODc1LCAtMC4wNTYyNSwgLTAuMDQzNzUsIC0wLjAzMTI1LCAtMC4wMTUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wOTI1LCAtMC4wODEyNSwgLTAuMDY4NzUsIC0wLjA1NjI1LCAtMC4wNDM3NSwgLTAuMDMzNzUsIC0wLjAxODc1IiwgXAotICAgICAgICAgICItMC4xMTUsIC0wLjEwMzc1LCAtMC4wOTEyNSwgLTAuMDc4NzUsIC0wLjA2NjI1LCAtMC4wNSwgLTAuMDQxMjUiLCBcCi0gICAgICAgICAgIi0wLjEzLCAtMC4xMTg3NSwgLTAuMTA2MjUsIC0wLjA5Mzc1LCAtMC4wODEyNSwgLTAuMDY1LCAtMC4wNTYyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc1LCAwLjA4NjI1LCAwLjA5ODc1LCAwLjExNzUsIDAuMTMsIDAuMTUyNSwgMC4xNzM3NSIsIFwKLSAgICAgICAgICAiMC4wNjM3NSwgMC4wNzUsIDAuMDg3NSwgMC4xMDYyNSwgMC4xMTg3NSwgMC4xNDEyNSwgMC4xNjI1IiwgXAotICAgICAgICAgICIwLjA1MTI1LCAwLjA2MjUsIDAuMDc1LCAwLjA4NzUsIDAuMTA2MjUsIDAuMTI4NzUsIDAuMTUiLCBcCi0gICAgICAgICAgIjAuMDM4NzUsIDAuMDUsIDAuMDYyNSwgMC4wODEyNSwgMC4wOTM3NSwgMC4xMTYyNSwgMC4xMzc1IiwgXAotICAgICAgICAgICIwLjAyNjI1LCAwLjA0Mzc1LCAwLjA1NjI1LCAwLjA2ODc1LCAwLjA4NzUsIDAuMTEsIDAuMTMxMjUiLCBcCi0gICAgICAgICAgIjAuMDE2MjUsIDAuMDI3NSwgMC4wNCwgMC4wNTg3NSwgMC4wNzEyNSwgMC4wOTM3NSwgMC4xMjEyNSIsIFwKLSAgICAgICAgICAiMC4wMDc1LCAwLjAxODc1LCAwLjAzMTI1LCAwLjA1LCAwLjA2MjUsIDAuMDg1LCAwLjEwNjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJSTiI7Ci0gICAgICBzZGZfY29uZCA6ICJSTiA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xLCAwLjA4MjUsIDAuMDcsIDAuMDU3NSwgMC4wNDUsIDAuMDI4NzUsIDAuMDEzNzUiLCBcCi0gICAgICAgICAgIjAuMTExMjUsIDAuMDkzNzUsIDAuMDgxMjUsIDAuMDY4NzUsIDAuMDU2MjUsIDAuMDQsIDAuMDI1IiwgXAotICAgICAgICAgICIwLjEyMzc1LCAwLjExMjUsIDAuMDkzNzUsIDAuMDgxMjUsIDAuMDY4NzUsIDAuMDUyNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4xMzYyNSwgMC4xMjUsIDAuMTA2MjUsIDAuMDkzNzUsIDAuMDgxMjUsIDAuMDY1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICIwLjE0ODc1LCAwLjEzNzUsIDAuMTI1LCAwLjEwNjI1LCAwLjEsIDAuMDc3NSwgMC4wNjg3NSIsIFwKLSAgICAgICAgICAiMC4xNzEyNSwgMC4xNiwgMC4xNDEyNSwgMC4xMjg3NSwgMC4xMTYyNSwgMC4xLCAwLjA5MTI1IiwgXAotICAgICAgICAgICIwLjE4NjI1LCAwLjE3NSwgMC4xNjI1LCAwLjE1LCAwLjEzNzUsIDAuMTIxMjUsIDAuMTA2MjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTI1LCAwLjAwMTI1LCAtMC4wMTc1LCAtMC4wMywgLTAuMDQ4NzUsIC0wLjA3MTI1LCAtMC4wOTI1IiwgXAotICAgICAgICAgICIwLjAyMzc1LCAwLjAxMjUsIC0wLjAwNjI1LCAtMC4wMTg3NSwgLTAuMDM3NSwgLTAuMDYsIC0wLjA4MTI1IiwgXAotICAgICAgICAgICIwLjAzNjI1LCAwLjAyNSwgMC4wMDYyNSwgLTAuMDA2MjUsIC0wLjAyNSwgLTAuMDQ3NSwgLTAuMDY4NzUiLCBcCi0gICAgICAgICAgIjAuMDQ4NzUsIDAuMDM3NSwgMC4wMTg3NSwgMC4wMDYyNSwgLTAuMDEyNSwgLTAuMDM1LCAtMC4wNTYyNSIsIFwKLSAgICAgICAgICAiMC4wNjEyNSwgMC4wNSwgMC4wMzEyNSwgMC4wMTg3NSwgMCwgLTAuMDIyNSwgLTAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMDc3NSwgMC4wNjYyNSwgMC4wNTM3NSwgMC4wMzUsIDAuMDIyNSwgLTAuMDA2MjUsIC0wLjAyNzUiLCBcCi0gICAgICAgICAgIjAuMDk4NzUsIDAuMDgxMjUsIDAuMDY4NzUsIDAuMDUsIDAuMDM3NSwgMC4wMDg3NSwgLTAuMDEyNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjUxODUxOTsKLSAgICBmdW5jdGlvbiA6ICJOMzAiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5vbl91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcmlzaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjgwODcyLCAwLjQxNDc0NCwgMC41NDIwMzEsIDAuNjMyOTc5LCAwLjc3ODMyNCwgMC45MDU1NzQsIDEuMDg3MzIiLCBcCi0gICAgICAgICAgIjAuMjkyNzA3LCAwLjQyNjU2NiwgMC41NTM4NTksIDAuNjQ0NzQ0LCAwLjc5MDE1NSwgMC45MTc0MTgsIDEuMDk5MTYiLCBcCi0gICAgICAgICAgIjAuMzA4MDcyLCAwLjQ0MTkzMywgMC41NjkyMjgsIDAuNjYwMTc5LCAwLjgwNTUyNCwgMC45MzI3NywgMS4xMTQ1MiIsIFwKLSAgICAgICAgICAiMC4zMjM2MTUsIDAuNDU3NDc0LCAwLjU4NDc2NywgMC42NzU2NDYsIDAuODIxMDYzLCAwLjk0ODMxOSwgMS4xMzAwNiIsIFwKLSAgICAgICAgICAiMC4zMzkxNDgsIDAuNDczMDIyLCAwLjYwMDMxNSwgMC42OTEyNjksIDAuODM2NjE1LCAwLjk2Mzg1NCwgMS4xNDU2MiIsIFwKLSAgICAgICAgICAiMC4zNjM0MjcsIDAuNDk3MjkzLCAwLjYyNDU5LCAwLjcxNTU0MSwgMC44NjA4ODQsIDAuOTg4MTMzLCAxLjE2OTg4IiwgXAotICAgICAgICAgICIwLjM4NDUzMiwgMC41MTgzODksIDAuNjQ1NzIsIDAuNzM2NjAyLCAwLjg4MjAwOCwgMS4wMDkyMywgMS4xOTEwNSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2NzM4NywgMC4zMTQzOTMsIDAuNTcxNDY1LCAwLjc1NTcxNCwgMS4wNTQ1NywgMS4zMTI0NCwgMS42ODY2MyIsIFwKLSAgICAgICAgICAiMC4wNjczOTQsIDAuMzE0OTQ4LCAwLjU3MTUxMSwgMC43NTc0NCwgMS4wNTQ1NSwgMS4zMTI1OCwgMS42ODY1OCIsIFwKLSAgICAgICAgICAiMC4wNjczNjksIDAuMzE0NTc5LCAwLjU3MTQ0NCwgMC43NTU3MTIsIDEuMDU0NTcsIDEuMzEyNDMsIDEuNjg2NiIsIFwKLSAgICAgICAgICAiMC4wNjczNSwgMC4zMTQ1MjYsIDAuNTcxNDMsIDAuNzU3MTI3LCAxLjA1NDU2LCAxLjMxMjQ4LCAxLjY4NjU3IiwgXAotICAgICAgICAgICIwLjA2NzQwMiwgMC4zMTQ0OTUsIDAuNTcxNDIsIDAuNzU1NzEsIDEuMDU0NTgsIDEuMzEyNDYsIDEuNjg2NjgiLCBcCi0gICAgICAgICAgIjAuMDY3Mzk3LCAwLjMxNDU3MywgMC41NzE0NSwgMC43NTU3MTIsIDEuMDU0NTcsIDEuMzEyNDIsIDEuNjg2NTkiLCBcCi0gICAgICAgICAgIjAuMDY3NDA1LCAwLjMxNDkxMSwgMC41NzI0NDEsIDAuNzU1ODIxLCAxLjA1NDU5LCAxLjMxMjYyLCAxLjY4MjMzIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjczNTQyLCAwLjQyMDgsIDAuNTY2MzczLCAwLjY3MDQsIDAuODM2NzY4LCAwLjk4MjI3NSwgMS4xOTAxNCIsIFwKLSAgICAgICAgICAiMC4yODUzOTIsIDAuNDMyNjMsIDAuNTc4MjM4LCAwLjY4MjIxNywgMC44NDg2OTUsIDAuOTk0MTk2LCAxLjIwMjA2IiwgXAotICAgICAgICAgICIwLjMwMDc1MSwgMC40NDgwMDMsIDAuNTkzNTg3LCAwLjY5NzU2LCAwLjg2Mzk2OSwgMS4wMDk1NCwgMS4yMTc0MyIsIFwKLSAgICAgICAgICAiMC4zMTYxNTMsIDAuNDYzNDEsIDAuNjA5MDA5LCAwLjcxMjk2MywgMC44NzkzNzUsIDEuMDI0OTMsIDEuMjMyODkiLCBcCi0gICAgICAgICAgIjAuMzMxNjIsIDAuNDc4ODczLCAwLjYyNDQ2NiwgMC43Mjg0MjUsIDAuODk0OTA5LCAxLjA0MDQyLCAxLjI0ODI1IiwgXAotICAgICAgICAgICIwLjM1NjA1MSwgMC41MDMzMDgsIDAuNjQ4OTA3LCAwLjc1Mjg4MiwgMC45MTkyNywgMS4wNjQ5MiwgMS4yNzI3OCIsIFwKLSAgICAgICAgICAiMC4zNzcyODgsIDAuNTI0NTQ1LCAwLjY3MDEyNiwgMC43NzQxMTUsIDAuOTQwNTE0LCAxLjA4NjAyLCAxLjI5NDAzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU5ODUzLCAwLjM0NDYxMiwgMC42MzUwNDIsIDAuODQyNTQ4LCAxLjE3MTgyLCAxLjQ2MjE5LCAxLjg4MTE2IiwgXAotICAgICAgICAgICIwLjA1OTg1MiwgMC4zNDM5ODIsIDAuNjM0OTA4LCAwLjg0MDM5OSwgMS4xNzEyLCAxLjQ2NDg2LCAxLjg3OTE4IiwgXAotICAgICAgICAgICIwLjA1OTg2MSwgMC4zNDM3NTgsIDAuNjM0OTEyLCAwLjg0MTA4OCwgMS4xNzE2OSwgMS40NjQ5MSwgMS44Nzk5NSIsIFwKLSAgICAgICAgICAiMC4wNTk4NTQsIDAuMzQ0NjU2LCAwLjYzNDkyNiwgMC44NDI2MTksIDEuMTcxMDUsIDEuNDY0OTMsIDEuODc5NjkiLCBcCi0gICAgICAgICAgIjAuMDU5ODQ0LCAwLjM0NDY1NiwgMC42MzQ5MTUsIDAuODQyNjU2LCAxLjE3MjQzLCAxLjQ2MTY3LCAxLjg3NTk0IiwgXAotICAgICAgICAgICIwLjA1OTg1MywgMC4zNDQ2MzcsIDAuNjM0OTI1LCAwLjg0MjQ4OSwgMS4xNzExNCwgMS40NjEwNSwgMS44Nzk3OSIsIFwKLSAgICAgICAgICAiMC4wNTk4NTQsIDAuMzQ0NjU2LCAwLjYzMzMyNiwgMC44NDA1NCwgMS4xNzEyOSwgMS40NjU1NCwgMS44NzYwNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogY2xlYXI7Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc3NDY5LCAwLjIyNTQ0MSwgMC4zNzA4NDEsIDAuNDc0NzQsIDAuNjQxMDY2LCAwLjc4NjU3NiwgMC45OTQ0OTkiLCBcCi0gICAgICAgICAgIjAuMDg5MDY3LCAwLjIzNzA2MiwgMC4zODI0NjUsIDAuNDg2MzkyLCAwLjY1MjY2LCAwLjc5ODIsIDEuMDA2MTIiLCBcCi0gICAgICAgICAgIjAuMTAzODc5LCAwLjI1MTkwOSwgMC4zOTczMjQsIDAuNTAxMjI1LCAwLjY2NzU2MSwgMC44MTMwNywgMS4wMjA5OSIsIFwKLSAgICAgICAgICAiMC4xMTgzOCwgMC4yNjY0NiwgMC40MTE4ODksIDAuNTE1OCwgMC42ODIxNDksIDAuODI3NjM0LCAxLjAzNTU1IiwgXAotICAgICAgICAgICIwLjEzMjgwMywgMC4yODA5MDEsIDAuNDI2MzQ2LCAwLjUzMDI1NiwgMC42OTY2MiwgMC44NDIxMiwgMS4wNTAwMSIsIFwKLSAgICAgICAgICAiMC4xNTQzMzMsIDAuMzAyNDksIDAuNDQ3OTUzLCAwLjU1MTg1OCwgMC43MTgxOTIsIDAuODYzNzQ4LCAxLjA3MTYiLCBcCi0gICAgICAgICAgIjAuMTcxNjMyLCAwLjMxOTg5NiwgMC40NjU0NjEsIDAuNTY5MzUsIDAuNzM1NjE3LCAwLjg4MTE5NywgMS4wODkwMiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1ODk0MywgMC4zNDM0NTEsIDAuNjMzMjAxLCAwLjg0MDU3MSwgMS4xNzA4NywgMS40NjEyOCwgMS44NzQ3NCIsIFwKLSAgICAgICAgICAiMC4wNTg5NTEsIDAuMzQzNDQ5LCAwLjYzMzIwNCwgMC44NDAxODYsIDEuMTcwOTUsIDEuNDYyMjgsIDEuODc0NzQiLCBcCi0gICAgICAgICAgIjAuMDU4OTYsIDAuMzQzNDQ1LCAwLjYzMzE5LCAwLjg0MDk3NiwgMS4xNzA4NCwgMS40NjI5NiwgMS44NzQ3OCIsIFwKLSAgICAgICAgICAiMC4wNTkwNjksIDAuMzQzNDQ5LCAwLjYzMzY3NSwgMC44NDAzOTEsIDEuMTcyNDUsIDEuNDYxOTYsIDEuODc2MDgiLCBcCi0gICAgICAgICAgIjAuMDU5MjkzLCAwLjM0MzQ1NiwgMC42MzM3MDEsIDAuODQwMjkxLCAxLjE3MzI4LCAxLjQ2MjQ4LCAxLjg3NTQ5IiwgXAotICAgICAgICAgICIwLjA2MDI4MSwgMC4zNDM0NywgMC42MzMxNTQsIDAuODQwNjAzLCAxLjE3MDc0LCAxLjQ2Mjg0LCAxLjg3NTQ4IiwgXAotICAgICAgICAgICIwLjA2MTU3MywgMC4zNDM2NDIsIDAuNjMzMTgsIDAuODQwOTUyLCAxLjE3MTE2LCAxLjQ2MDQ0LCAxLjg3NDg4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA5NTIyLCAwLjAwOTYyOSwgMC4wMDk2MzIsIDAuMDA5NjMzLCAwLjAwOTYyNywgMC4wMDk2MjYsIDAuMDA5NjIzIiwgXAotICAgICAgICAgICIwLjAwOTUxLCAwLjAwOTYxNywgMC4wMDk2MiwgMC4wMDk2MTgsIDAuMDA5NjE1LCAwLjAwOTYxMiwgMC4wMDk2MTEiLCBcCi0gICAgICAgICAgIjAuMDA5NDk5LCAwLjAwOTYwNSwgMC4wMDk2MDksIDAuMDA5NjA4LCAwLjAwOTYwNSwgMC4wMDk2MDMsIDAuMDA5NiIsIFwKLSAgICAgICAgICAiMC4wMDk0OSwgMC4wMDk1OTYsIDAuMDA5NiwgMC4wMDk1OTgsIDAuMDA5NTk2LCAwLjAwOTU5MywgMC4wMDk1OTEiLCBcCi0gICAgICAgICAgIjAuMDA5NDgzLCAwLjAwOTU5LCAwLjAwOTU5MywgMC4wMDk1OTIsIDAuMDA5NTg4LCAwLjAwOTU4OCwgMC4wMDk1ODQiLCBcCi0gICAgICAgICAgIjAuMDA5NDcsIDAuMDA5NTc4LCAwLjAwOTU4MSwgMC4wMDk1OCwgMC4wMDk1NzYsIDAuMDA5NTc1LCAwLjAwOTU3MiIsIFwKLSAgICAgICAgICAiMC4wMDk0NjUsIDAuMDA5NTcyLCAwLjAwOTU3NiwgMC4wMDk1NzUsIDAuMDA5NTczLCAwLjAwOTU2OCwgMC4wMDk1NjciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwOTM2OCwgMC4wMDk1MTIsIDAuMDA5NTMxLCAwLjAwOTUzNywgMC4wMDk1NDIsIDAuMDA5NTQ0LCAwLjAwOTU0NiIsIFwKLSAgICAgICAgICAiMC4wMDkzNTQsIDAuMDA5NSwgMC4wMDk1MTgsIDAuMDA5NTI0LCAwLjAwOTUyOSwgMC4wMDk1MzIsIDAuMDA5NTM0IiwgXAotICAgICAgICAgICIwLjAwOTM0OCwgMC4wMDk0OSwgMC4wMDk1MDgsIDAuMDA5NTE0LCAwLjAwOTUxOSwgMC4wMDk1MjEsIDAuMDA5NTI0IiwgXAotICAgICAgICAgICIwLjAwOTMzNCwgMC4wMDk0OCwgMC4wMDk0OTgsIDAuMDA5NTA0LCAwLjAwOTUwOSwgMC4wMDk1MTIsIDAuMDA5NTE0IiwgXAotICAgICAgICAgICIwLjAwOTMzMiwgMC4wMDk0NzcsIDAuMDA5NDk1LCAwLjAwOTUwMSwgMC4wMDk1MDYsIDAuMDA5NTA4LCAwLjAwOTUxMSIsIFwKLSAgICAgICAgICAiMC4wMDkzMjgsIDAuMDA5NDczLCAwLjAwOTQ5MiwgMC4wMDk0OTcsIDAuMDA5NTAyLCAwLjAwOTUwNCwgMC4wMDk1MDciLCBcCi0gICAgICAgICAgIjAuMDA5MzMsIDAuMDA5NDc2LCAwLjAwOTQ5NSwgMC4wMDk1LCAwLjAwOTUwNSwgMC4wMDk1MDgsIDAuMDA5NTEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTA1MjQsIDAuMDEwNjI0LCAwLjAxMDYzNSwgMC4wMTA2MzgsIDAuMDEwNjQxLCAwLjAxMDY0MiwgMC4wMTA2NDMiLCBcCi0gICAgICAgICAgIjAuMDEwNDgxLCAwLjAxMDU4OSwgMC4wMTA2LCAwLjAxMDYwNCwgMC4wMTA2MDcsIDAuMDEwNjA3LCAwLjAxMDYwOSIsIFwKLSAgICAgICAgICAiMC4wMTA0MzMsIDAuMDEwNTU3LCAwLjAxMDU3MiwgMC4wMTA1NzYsIDAuMDEwNTgsIDAuMDEwNTgyLCAwLjAxMDU4NCIsIFwKLSAgICAgICAgICAiMC4wMTAzODksIDAuMDEwNTI4LCAwLjAxMDU0NywgMC4wMTA1NTQsIDAuMDEwNTU5LCAwLjAxMDU2MSwgMC4wMTA1NjQiLCBcCi0gICAgICAgICAgIjAuMDEwMzU3LCAwLjAxMDUwNiwgMC4wMTA1MjgsIDAuMDEwNTM2LCAwLjAxMDU0MiwgMC4wMTA1NDYsIDAuMDEwNTQ5IiwgXAotICAgICAgICAgICIwLjAxMDMxNywgMC4wMTA0NzIsIDAuMDEwNTAxLCAwLjAxMDUxLCAwLjAxMDUxOCwgMC4wMTA1MjIsIDAuMDEwNTI2IiwgXAotICAgICAgICAgICIwLjAxMDI4NywgMC4wMTA0NDIsIDAuMDEwNDc2LCAwLjAxMDQ4NiwgMC4wMTA0OTYsIDAuMDEwNSwgMC4wMTA1MDUiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfcG93ZXIoc2NhbGFyKSB7Ci0gICAgICAgIHZhbHVlcygiMCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUk4pICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMjM5NDE7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAyMjE4Mjk7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAyMzk0MTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA3MjcsIDAuMDAwNzI2LCAwLjAwMDcyNiwgMC4wMDA3MjYsIDAuMDAwNzI2LCAwLjAwMDcyNiwgMC4wMDA3MjYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA3NCwgMC4wMDA3MzIsIDAuMDAwNzMxLCAwLjAwMDczLCAwLjAwMDczLCAwLjAwMDczLCAwLjAwMDczIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRCI7Ci0gICAgICBzZGZfY29uZCA6ICJEID09IDEnYjAiOwotICAgICAgZmFsbF9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMTc5NTA0LCAwLjE5MTExMiwgMC4yMDUxMzcsIDAuMjE4MzAzLCAwLjIzMDkwOCwgMC4yNTA0NzksIDAuMjY3MyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJlY292ZXJ5X3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiRCI7Ci0gICAgICBzZGZfY29uZCA6ICJEID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHJlY292ZXJ5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wNjg3NSwgLTAuMDgsIC0wLjA5ODc1LCAtMC4xMTEyNSwgLTAuMTMsIC0wLjE1MjUsIC0wLjE3Mzc1IiwgXAotICAgICAgICAgICItMC4wNzYyNSwgLTAuMDg3NSwgLTAuMTA2MjUsIC0wLjExODc1LCAtMC4xMzc1LCAtMC4xNiwgLTAuMTgxMjUiLCBcCi0gICAgICAgICAgIi0wLjA4MjUsIC0wLjA5Mzc1LCAtMC4xMTI1LCAtMC4xMzEyNSwgLTAuMTQzNzUsIC0wLjE3MjUsIC0wLjE4NzUiLCBcCi0gICAgICAgICAgIi0wLjA4ODc1LCAtMC4xLCAtMC4xMTg3NSwgLTAuMTMxMjUsIC0wLjE1LCAtMC4xNzI1LCAtMC4xOTM3NSIsIFwKLSAgICAgICAgICAiLTAuMDg4NzUsIC0wLjEsIC0wLjExODc1LCAtMC4xMzEyNSwgLTAuMTUsIC0wLjE3MjUsIC0wLjE5Mzc1IiwgXAotICAgICAgICAgICItMC4wNzg3NSwgLTAuMDksIC0wLjEwMjUsIC0wLjEyMTI1LCAtMC4xNCwgLTAuMTYyNSwgLTAuMTkiLCBcCi0gICAgICAgICAgIi0wLjA1NzUsIC0wLjA2ODc1LCAtMC4wODc1LCAtMC4xMDYyNSwgLTAuMTI1LCAtMC4xNDc1LCAtMC4xNjg3NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJlbW92YWxfcmlzaW5nOwotICAgICAgd2hlbiA6ICJEIjsKLSAgICAgIHNkZl9jb25kIDogIkQgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQocmVtb3ZhbF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTI1LCAwLjEyMzc1LCAwLjE0MjUsIDAuMTU1LCAwLjE3Mzc1LCAwLjE5NjI1LCAwLjIxNzUiLCBcCi0gICAgICAgICAgIjAuMTIsIDAuMTMxMjUsIDAuMTUsIDAuMTYyNSwgMC4xODEyNSwgMC4yMDM3NSwgMC4yMjUiLCBcCi0gICAgICAgICAgIjAuMTMyNSwgMC4xNDM3NSwgMC4xNjI1LCAwLjE3NSwgMC4xOTM3NSwgMC4yMTYyNSwgMC4yMzc1IiwgXAotICAgICAgICAgICIwLjE0NSwgMC4xNTYyNSwgMC4xNjg3NSwgMC4xODc1LCAwLjIsIDAuMjIyNSwgMC4yNDM3NSIsIFwKLSAgICAgICAgICAiMC4xNTEyNSwgMC4xNjI1LCAwLjE4MTI1LCAwLjE5Mzc1LCAwLjIxMjUsIDAuMjM1LCAwLjI1NjI1IiwgXAotICAgICAgICAgICIwLjE2NjI1LCAwLjE3NzUsIDAuMTksIDAuMjA4NzUsIDAuMjIxMjUsIDAuMjUsIDAuMjcxMjUiLCBcCi0gICAgICAgICAgIjAuMTc2MjUsIDAuMTg3NSwgMC4yMDYyNSwgMC4yMTg3NSwgMC4yMzc1LCAwLjI2LCAwLjI4MTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBERkZSWDIgKgotICogLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChERkZSWDIpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4zNTYwNTI7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgZmYgKE4zMCxRQklOVCkgewotICAgIG5leHRfc3RhdGUgOiAiRCI7Ci0gICAgY2xvY2tlZF9vbiA6ICJDSyI7Ci0gICAgY2xlYXIgOiAiKCFSTikiOwotICB9Ci0gIHBpbihDSykgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNTc4OTMxOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDU3ODY7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNTc4OTMxOwotICAgIGNsb2NrIDogdHJ1ZTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDI0NzYsIDAuMDAyNDYyLCAwLjAwMjQ1MiwgMC4wMDI0NDUsIDAuMDAyNDM5LCAwLjAwMjQzMiwgMC4wMDI0MzIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDUzMSwgMC4wMDUzMDEsIDAuMDA1MjkzLCAwLjAwNTI4OCwgMC4wMDUyODIsIDAuMDA1Mjc3LCAwLjAwNTI3NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQmUk4iOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1JOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4zMzc3MjcsIDAuMzQ5NDc4LCAwLjM2NDgwOSwgMC4zODAzNTQsIDAuMzk1NTg3LCAwLjQxOTkyNSwgMC40NDA3ODciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjIxNDU3OCwgMC4yMjYwODMsIDAuMjQxMDIyLCAwLjI1NTg4LCAwLjI3MDQ3OSwgMC4yOTMwNTgsIDAuMzEyMTc5Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihEKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2MzI3ODI7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjMwODUyOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDYzMjc4MjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDE5MTQsIDAuMDAxOTAzLCAwLjAwMTg5NSwgMC4wMDE4OSwgMC4wMDE4ODcsIDAuMDAxODgxLCAwLjAwMTg3NyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjIyOCwgMC4wMDIyMjIsIDAuMDAyMjE4LCAwLjAwMjIxNCwgMC4wMDIyMTIsIDAuMDAyMjA5LCAwLjAwMjIwNiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJSTiI7Ci0gICAgICBzZGZfY29uZCA6ICJSTiA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wNDM3NSwgLTAuMDMyNSwgLTAuMDIsIC0wLjAxMzc1LCAtMC4wMDEyNSwgMC4wMDg3NSwgMC4wMjM3NSIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNDM3NSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDEyNSwgLTAuMDAyNSwgMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wNjc1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjAzNzUsIC0wLjAyNSwgLTAuMDE1LCAwIiwgXAotICAgICAgICAgICItMC4wODYyNSwgLTAuMDc1LCAtMC4wNjI1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjAyNzUsIC0wLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjA5ODc1LCAtMC4wODc1LCAtMC4wNzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNCwgLTAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjEyMTI1LCAtMC4xMSwgLTAuMDk3NSwgLTAuMDg1LCAtMC4wNzI1LCAtMC4wNjI1LCAtMC4wNDc1IiwgXAotICAgICAgICAgICItMC4xMzYyNSwgLTAuMTI1LCAtMC4xMTI1LCAtMC4xMDYyNSwgLTAuMDkzNzUsIC0wLjA3NzUsIC0wLjA2ODc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTYyNSwgMC4wNjc1LCAwLjA4NjI1LCAwLjA5ODc1LCAwLjExNzUsIDAuMTQsIDAuMTYxMjUiLCBcCi0gICAgICAgICAgIjAuMDQ1LCAwLjA1NjI1LCAwLjA2ODc1LCAwLjA4NzUsIDAuMSwgMC4xMjg3NSwgMC4xNDM3NSIsIFwKLSAgICAgICAgICAiMC4wMzI1LCAwLjA0Mzc1LCAwLjA1NjI1LCAwLjA3NSwgMC4wODc1LCAwLjExLCAwLjEzMTI1IiwgXAotICAgICAgICAgICIwLjAyLCAwLjAzMTI1LCAwLjA1LCAwLjA2MjUsIDAuMDc1LCAwLjEwMzc1LCAwLjEyNSIsIFwKLSAgICAgICAgICAiMC4wMTM3NSwgMC4wMjUsIDAuMDM3NSwgMC4wNSwgMC4wNjg3NSwgMC4wOTEyNSwgMC4xMTI1IiwgXAotICAgICAgICAgICItMC4wMDI1LCAwLjAwODc1LCAwLjAyNzUsIDAuMDQsIDAuMDUyNSwgMC4wODEyNSwgMC4wOTYyNSIsIFwKLSAgICAgICAgICAiLTAuMDExMjUsIDAsIDAuMDEyNSwgMC4wMzEyNSwgMC4wNDM3NSwgMC4wNjYyNSwgMC4wODc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJSTiI7Ci0gICAgICBzZGZfY29uZCA6ICJSTiA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDYyNSwgMC4wOTUsIDAuMDc2MjUsIDAuMDYzNzUsIDAuMDU3NSwgMC4wNDEyNSwgMC4wMjYyNSIsIFwKLSAgICAgICAgICAiMC4xMTc1LCAwLjEwNjI1LCAwLjA5Mzc1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNTI1LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIjAuMTMsIDAuMTE4NzUsIDAuMTA2MjUsIDAuMDkzNzUsIDAuMDgxMjUsIDAuMDY1LCAwLjA1IiwgXAotICAgICAgICAgICIwLjE0MjUsIDAuMTMxMjUsIDAuMTE4NzUsIDAuMTA2MjUsIDAuMDkzNzUsIDAuMDc3NSwgMC4wNjg3NSIsIFwKLSAgICAgICAgICAiMC4xNjEyNSwgMC4xNDM3NSwgMC4xMzEyNSwgMC4xMTg3NSwgMC4xMDYyNSwgMC4wOSwgMC4wODEyNSIsIFwKLSAgICAgICAgICAiMC4xNzc1LCAwLjE2NjI1LCAwLjE1Mzc1LCAwLjE0MTI1LCAwLjEyODc1LCAwLjExMjUsIDAuMTAzNzUiLCBcCi0gICAgICAgICAgIjAuMTk4NzUsIDAuMTg3NSwgMC4xNjg3NSwgMC4xNTYyNSwgMC4xNSwgMC4xMzM3NSwgMC4xMTg3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzNzUsIDAuMDI2MjUsIDAuMDA3NSwgLTAuMDA1LCAtMC4wMjM3NSwgLTAuMDUyNSwgLTAuMDczNzUiLCBcCi0gICAgICAgICAgIjAuMDQ4NzUsIDAuMDM3NSwgMC4wMTg3NSwgMC4wMDYyNSwgLTAuMDEyNSwgLTAuMDQxMjUsIC0wLjA2MjUiLCBcCi0gICAgICAgICAgIjAuMDYxMjUsIDAuMDUsIDAuMDMxMjUsIDAuMDE4NzUsIDAsIC0wLjAyMjUsIC0wLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjA3Mzc1LCAwLjA2MjUsIDAuMDQzNzUsIDAuMDMxMjUsIDAuMDEyNSwgLTAuMDEsIC0wLjAzMTI1IiwgXAotICAgICAgICAgICIwLjA4NjI1LCAwLjA3NSwgMC4wNTYyNSwgMC4wNDM3NSwgMC4wMjUsIC0wLjAwMzc1LCAtMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMTAyNSwgMC4wOTEyNSwgMC4wNzg3NSwgMC4wNiwgMC4wNDEyNSwgMC4wMTg3NSwgLTAuMDAyNSIsIFwKLSAgICAgICAgICAiMC4xMjM3NSwgMC4xMTI1LCAwLjA5Mzc1LCAwLjA3NSwgMC4wNjI1LCAwLjAzMzc1LCAwLjAxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFEpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4yNjUyNzsKLSAgICBmdW5jdGlvbiA6ICJOMzAiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5vbl91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcmlzaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMyMjM4MiwgMC41MDkyODMsIDAuNjUzMjkyLCAwLjgzNDUwNSwgMS4wMTMxOSwgMS4xOTE5LCAxLjM3MjI4IiwgXAotICAgICAgICAgICIwLjMzNDQwNCwgMC41MjEyODQsIDAuNjY1MzIxLCAwLjg0NjYzNiwgMS4wMjUyOCwgMS4yMDQsIDEuMzg0NzEiLCBcCi0gICAgICAgICAgIjAuMzQ5Njc3LCAwLjUzNjYzOCwgMC42ODAxMTIsIDAuODYxNjIzLCAxLjA0MDM0LCAxLjIxOTEzLCAxLjM5OTQ5IiwgXAotICAgICAgICAgICIwLjM2NTI1MywgMC41NTIxMjMsIDAuNjk2MTY1LCAwLjg3NjIwOCwgMS4wNTYxNiwgMS4yMzQ4OCwgMS40MTYyNSIsIFwKLSAgICAgICAgICAiMC4zODA0NjcsIDAuNTY3MzM3LCAwLjcxMTM3OCwgMC44OTEyNDksIDEuMDcxMzcsIDEuMjUwMSwgMS40MzI2MSIsIFwKLSAgICAgICAgICAiMC40MDQ3MDEsIDAuNTkxNTc0LCAwLjczNTYxNywgMC45MTUzNDgsIDEuMDk1NjIsIDEuMjc0MzQsIDEuNDU2ODYiLCBcCi0gICAgICAgICAgIjAuNDI1MjM2LCAwLjYxMjE0OCwgMC43NTU0NzgsIDAuOTM3MzU5LCAxLjExNjAyLCAxLjI5NDczLCAxLjQ3NTEzIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExMTUwNCwgMC40NjQ4MTUsIDAuNzUzMTAxLCAxLjEyMjEsIDEuNDg1NDUsIDEuODU0NTMsIDIuMjIyODgiLCBcCi0gICAgICAgICAgIjAuMTExMzg0LCAwLjQ2NDg2NiwgMC43NTMwMjYsIDEuMTIxNzcsIDEuNDY5NDIsIDEuODU0NjcsIDIuMjI3MTUiLCBcCi0gICAgICAgICAgIjAuMTEyMTgxLCAwLjQ2NDY0MSwgMC43NTE4MiwgMS4xMjI2MSwgMS40ODU3MywgMS44NTQ4MSwgMi4yMjM0NSIsIFwKLSAgICAgICAgICAiMC4xMTEzOTQsIDAuNDY0ODc0LCAwLjc1MzEzNiwgMS4xMTgwNCwgMS40NzA1OSwgMS44NTQ3MSwgMi4yMjQ2OSIsIFwKLSAgICAgICAgICAiMC4xMTE0MjIsIDAuNDY0ODc1LCAwLjc1MzE2LCAxLjExODE3LCAxLjQ3MDcxLCAxLjg1NDc0LCAyLjIxNDI5IiwgXAotICAgICAgICAgICIwLjExMTQyNywgMC40NjQ4NzQsIDAuNzUzMTEyLCAxLjExODI5LCAxLjQ3MDgsIDEuODU0NzMsIDIuMjE1MTIiLCBcCi0gICAgICAgICAgIjAuMTExNzYsIDAuNDY0ODA1LCAwLjc1NzI5NiwgMS4xMjIxNSwgMS40ODU2MywgMS44NTQ4MiwgMi4yMjM2MSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yOTM0MTMsIDAuNTAxNTU5LCAwLjY2NjM0MywgMC44NzMwOTcsIDEuMDc5MTcsIDEuMjg1NTQsIDEuNDk2NSIsIFwKLSAgICAgICAgICAiMC4zMDUxMjMsIDAuNTEzMzAzLCAwLjY3ODQ1NywgMC44ODQ4NTcsIDEuMDkzNjQsIDEuMjk3MjgsIDEuNTAzNTQiLCBcCi0gICAgICAgICAgIjAuMzIwNDk3LCAwLjUyODY0NywgMC42OTM0MjgsIDAuODk5OTY3LCAxLjEwODk5LCAxLjMxMjQ5LCAxLjUyMTUiLCBcCi0gICAgICAgICAgIjAuMzM2LCAwLjU0NDE0NywgMC43MDg5MjksIDAuOTE1NjEzLCAxLjEyMzQ1LCAxLjMyNzk3LCAxLjUzNzAxIiwgXAotICAgICAgICAgICIwLjM1MTMwMSwgMC41NTk0MjMsIDAuNzI0MjI2LCAwLjkzMjMyLCAxLjEzNzAxLCAxLjM0NTA2LCAxLjU0OTgzIiwgXAotICAgICAgICAgICIwLjM3NTYzNCwgMC41ODM2NTUsIDAuNzQ4NjY3LCAwLjk1NDczMiwgMS4xNjEzMywgMS4zNjg4NCwgMS41NzM5NyIsIFwKLSAgICAgICAgICAiMC4zOTY1MDEsIDAuNjA0Njg3LCAwLjc2OTY0LCAwLjk3NTk0NiwgMS4xODIyMywgMS4zOTIyNiwgMS41OTUyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwMzI3MSwgMC41MDc2NDMsIDAuODM0NzQzLCAxLjI0NjAyLCAxLjY1NzU5LCAyLjA2NjQ0LCAyLjQ3ODYxIiwgXAotICAgICAgICAgICIwLjEwMzIyOCwgMC41MDc2NDgsIDAuODM2NDY0LCAxLjI0Njc0LCAxLjY1ODMyLCAyLjA2Njg5LCAyLjQ4MDc2IiwgXAotICAgICAgICAgICIwLjEwMzE4MSwgMC41MDc2NTIsIDAuODM0NTM0LCAxLjI0Njc4LCAxLjY1ODM0LCAyLjA2NTk3LCAyLjQ3OTAxIiwgXAotICAgICAgICAgICIwLjEwMzEzOCwgMC41MDc2NDcsIDAuODM0NzA0LCAxLjI0NDk4LCAxLjY1Njc0LCAyLjA2NjcsIDIuNDc5MDkiLCBcCi0gICAgICAgICAgIjAuMTAzMTQ1LCAwLjUwNzYyOCwgMC44MzQ3MjksIDEuMjQ3NTMsIDEuNjU5NDEsIDIuMDY2OTcsIDIuNDc5MTkiLCBcCi0gICAgICAgICAgIjAuMTAzNzAzLCAwLjUwNzQ4MywgMC44MzQ3NjgsIDEuMjQ1NDIsIDEuNjU5NTQsIDIuMDcwMywgMi40NzgxIiwgXAotICAgICAgICAgICIwLjEwMzA5MiwgMC41MDc1MTMsIDAuODM1MDgsIDEuMjQzOTksIDEuNjU2OSwgMi4wNjkzNywgMi40ODIzOSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogY2xlYXI7Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExOTU5NiwgMC4zMjgwMDgsIDAuNDkzMTU3LCAwLjcwMDQ1MSwgMC45MDc2MzYsIDEuMTE0NzksIDEuMzIxNTMiLCBcCi0gICAgICAgICAgIjAuMTMxMzM0LCAwLjMzOTcxMiwgMC41MDQ4NjYsIDAuNzEyMTk5LCAwLjkxOTAxLCAxLjEyNjUzLCAxLjMzMzUyIiwgXAotICAgICAgICAgICIwLjE0NTcyNCwgMC4zNTQyNzcsIDAuNTE5Mzc4LCAwLjcyNjcwNSwgMC45MzM3NjEsIDEuMTQwODQsIDEuMzQ4MSIsIFwKLSAgICAgICAgICAiMC4xNjA3MzEsIDAuMzY5MjE5LCAwLjUzNDM3NywgMC43NDE2NjUsIDAuOTQ4NTQxLCAxLjE1NTk2LCAxLjM2MzA5IiwgXAotICAgICAgICAgICIwLjE3NTM4MSwgMC4zODM5MTQsIDAuNTQ5MDc3LCAwLjc1NjI2NSwgMC45NjMzNTUsIDEuMTcwNjgsIDEuMzc3ODIiLCBcCi0gICAgICAgICAgIjAuMTk4NzE0LCAwLjQwNzI1NCwgMC41NzI0MzYsIDAuNzc5NzM5LCAwLjk4NjYyNywgMS4xOTQxLCAxLjQwMDYxIiwgXAotICAgICAgICAgICIwLjIxODE0NiwgMC40MjY3MjMsIDAuNTkxOTA1LCAwLjc5ODI0NSwgMS4wMDUyMSwgMS4yMTM1MSwgMS40MjA1OCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDM1NTYsIDAuNTA2ODk0LCAwLjgzNTE1LCAxLjI0NTQxLCAxLjY1NzU2LCAyLjA3MDI4LCAyLjQ4MTkiLCBcCi0gICAgICAgICAgIjAuMTA0MDM0LCAwLjUwNjc3MiwgMC44MzUzMTIsIDEuMjQ1NSwgMS42NTczMiwgMi4wNzAxNiwgMi40ODIxOCIsIFwKLSAgICAgICAgICAiMC4xMDM1NTMsIDAuNTA2Nzc3LCAwLjgzNTg4OCwgMS4yNDUyLCAxLjY1ODQ2LCAyLjA3MDc4LCAyLjQ4Mjg1IiwgXAotICAgICAgICAgICIwLjEwMzU5MiwgMC41MDY3NzMsIDAuODM1OTA3LCAxLjI0NTU0LCAxLjY1ODQ3LCAyLjA2OTQ0LCAyLjQ4MjQ5IiwgXAotICAgICAgICAgICIwLjEwMzY1OSwgMC41MDY3NjYsIDAuODM1MjE2LCAxLjI0NTY2LCAxLjY1ODc5LCAyLjA2OTY0LCAyLjQ4MjgyIiwgXAotICAgICAgICAgICIwLjEwNDM5MSwgMC41MDY4MjQsIDAuODM1ODI0LCAxLjI0NTE2LCAxLjY1ODQ5LCAyLjA3MDIzLCAyLjQ3OTk1IiwgXAotICAgICAgICAgICIwLjEwNDQ1MSwgMC41MDcwMTcsIDAuODM1MTc1LCAxLjI0NjM5LCAxLjY1NzQzLCAyLjA2OTQsIDIuNDgyNyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQzOTYsIDAuMDA0NDM3LCAwLjAwNDQzOCwgMC4wMDQ0MzgsIDAuMDA0NDM3LCAwLjAwNDQzNywgMC4wMDQ0MzYiLCBcCi0gICAgICAgICAgIjAuMDA0MzksIDAuMDA0NDMxLCAwLjAwNDQzMiwgMC4wMDQ0MzIsIDAuMDA0NDMxLCAwLjAwNDQzMSwgMC4wMDQ0MyIsIFwKLSAgICAgICAgICAiMC4wMDQzODQsIDAuMDA0NDI1LCAwLjAwNDQyNiwgMC4wMDQ0MjYsIDAuMDA0NDI1LCAwLjAwNDQyNCwgMC4wMDQ0MjQiLCBcCi0gICAgICAgICAgIjAuMDA0Mzc5LCAwLjAwNDQyLCAwLjAwNDQyMiwgMC4wMDQ0MjEsIDAuMDA0NDIsIDAuMDA0NDIsIDAuMDA0NDE5IiwgXAotICAgICAgICAgICIwLjAwNDM3NSwgMC4wMDQ0MTcsIDAuMDA0NDE4LCAwLjAwNDQxNywgMC4wMDQ0MTcsIDAuMDA0NDE2LCAwLjAwNDQxNiIsIFwKLSAgICAgICAgICAiMC4wMDQzNywgMC4wMDQ0MTIsIDAuMDA0NDEzLCAwLjAwNDQxMiwgMC4wMDQ0MTIsIDAuMDA0NDExLCAwLjAwNDQxIiwgXAotICAgICAgICAgICIwLjAwNDM2OCwgMC4wMDQ0MSwgMC4wMDQ0MTIsIDAuMDA0NDExLCAwLjAwNDQxLCAwLjAwNDQwOSwgMC4wMDQ0MDkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQ1MDEsIDAuMDA0NTM5LCAwLjAwNDU0NCwgMC4wMDQ1NDUsIDAuMDA0NTQ3LCAwLjAwNDU0OCwgMC4wMDQ1NDgiLCBcCi0gICAgICAgICAgIjAuMDA0NDkzLCAwLjAwNDUzMiwgMC4wMDQ1MzYsIDAuMDA0NTM5LCAwLjAwNDU0LCAwLjAwNDU0LCAwLjAwNDU0MSIsIFwKLSAgICAgICAgICAiMC4wMDQ0ODgsIDAuMDA0NTI3LCAwLjAwNDUzMSwgMC4wMDQ1MzQsIDAuMDA0NTMzLCAwLjAwNDUzNSwgMC4wMDQ1MzUiLCBcCi0gICAgICAgICAgIjAuMDA0NDg0LCAwLjAwNDUyMywgMC4wMDQ1MjcsIDAuMDA0NTI5LCAwLjAwNDUzMSwgMC4wMDQ1MywgMC4wMDQ1MzIiLCBcCi0gICAgICAgICAgIjAuMDA0NDgzLCAwLjAwNDUyMSwgMC4wMDQ1MjYsIDAuMDA0NTI4LCAwLjAwNDUyOSwgMC4wMDQ1MywgMC4wMDQ1MyIsIFwKLSAgICAgICAgICAiMC4wMDQ0ODIsIDAuMDA0NTIsIDAuMDA0NTI1LCAwLjAwNDUyNywgMC4wMDQ1MjgsIDAuMDA0NTI4LCAwLjAwNDUyOSIsIFwKLSAgICAgICAgICAiMC4wMDQ0ODQsIDAuMDA0NTIzLCAwLjAwNDUyNywgMC4wMDQ1MjksIDAuMDA0NTMsIDAuMDA0NTMsIDAuMDA0NTMxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUk4iOwotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDY1OCwgMC4wMDQ2OTEsIDAuMDA0Njk0LCAwLjAwNDY5NiwgMC4wMDQ2OTYsIDAuMDA0Njk3LCAwLjAwNDY5OCIsIFwKLSAgICAgICAgICAiMC4wMDQ2NDksIDAuMDA0NjgyLCAwLjAwNDY4NSwgMC4wMDQ2ODcsIDAuMDA0Njg4LCAwLjAwNDY4OCwgMC4wMDQ2ODkiLCBcCi0gICAgICAgICAgIjAuMDA0NjM4LCAwLjAwNDY3NCwgMC4wMDQ2NzgsIDAuMDA0NjgsIDAuMDA0NjgxLCAwLjAwNDY4MSwgMC4wMDQ2ODIiLCBcCi0gICAgICAgICAgIjAuMDA0NjI4LCAwLjAwNDY2NywgMC4wMDQ2NzEsIDAuMDA0Njc0LCAwLjAwNDY3NSwgMC4wMDQ2NzYsIDAuMDA0Njc2IiwgXAotICAgICAgICAgICIwLjAwNDYxOSwgMC4wMDQ2NiwgMC4wMDQ2NjUsIDAuMDA0NjY4LCAwLjAwNDY2OSwgMC4wMDQ2NywgMC4wMDQ2NyIsIFwKLSAgICAgICAgICAiMC4wMDQ2MDYsIDAuMDA0NjUxLCAwLjAwNDY1NywgMC4wMDQ2NiwgMC4wMDQ2NjIsIDAuMDA0NjYzLCAwLjAwNDY2MyIsIFwKLSAgICAgICAgICAiMC4wMDQ1OTgsIDAuMDA0NjQ1LCAwLjAwNDY1MSwgMC4wMDQ2NTUsIDAuMDA0NjU3LCAwLjAwNDY1OSwgMC4wMDQ2NiIpOwotICAgICAgfQotICAgICAgcmlzZV9wb3dlcihzY2FsYXIpIHsKLSAgICAgICAgdmFsdWVzKCIwIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihRTikgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjI2NTU5NTsKLSAgICBmdW5jdGlvbiA6ICJRQklOVCI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3NlbnNlIDogbm9uX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiByaXNpbmdfZWRnZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzM3NzI3LCAwLjUxNjUwOCwgMC42NTk4NDQsIDAuODM4ODI3LCAxLjAxODM3LCAxLjE5NzQzLCAxLjM3NjYyIiwgXAotICAgICAgICAgICIwLjM0OTQ3OCwgMC41MjgyNDYsIDAuNjcxNTczLCAwLjg1MDc4NSwgMS4wMjk5MiwgMS4yMDkzMSwgMS4zODg1MyIsIFwKLSAgICAgICAgICAiMC4zNjQ4MDksIDAuNTQzNTg4LCAwLjY4NjkyNSwgMC44NjU5MiwgMS4wNDUyNiwgMS4yMjQ1MiwgMS40MDM2NSIsIFwKLSAgICAgICAgICAiMC4zODAzNTQsIDAuNTU5MDg3LCAwLjcwMjQyMiwgMC44ODE0MTgsIDEuMDYwNzcsIDEuMjQwMDMsIDEuNDE5MTUiLCBcCi0gICAgICAgICAgIjAuMzk1NTg3LCAwLjU3NDM4NywgMC43MTc3MjYsIDAuODk2OTE5LCAxLjA3NjIzLCAxLjI1NTA1LCAxLjQzNDciLCBcCi0gICAgICAgICAgIjAuNDE5OTI1LCAwLjU5ODcwNywgMC43NDIyLCAwLjkyMTAzNCwgMS4xMDA1NywgMS4yNzk2LCAxLjQ1ODg0IiwgXAotICAgICAgICAgICIwLjQ0MDc4NywgMC42MTk2MTQsIDAuNzYyOTIxLCAwLjk0MjE2NSwgMS4xMjEzNSwgMS4zMDA1NSwgMS40Nzk2OSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTA5OTUsIDAuNDUxNzY5LCAwLjc0MTgxOCwgMS4xMDcwMSwgMS40NzA2NSwgMS44MzYyOCwgMi4yMDUzOCIsIFwKLSAgICAgICAgICAiMC4wOTEwNTgsIDAuNDUxNzc3LCAwLjc0Mzk1NCwgMS4xMDcxOSwgMS40NzQ1NiwgMS44MzUxLCAyLjE5OTc3IiwgXAotICAgICAgICAgICIwLjA5MTAwMSwgMC40NTE3NzUsIDAuNzQxODEyLCAxLjEwNjk3LCAxLjQ3NDU0LCAxLjgzNTE5LCAyLjIwNDc4IiwgXAotICAgICAgICAgICIwLjA5MTA1NSwgMC40NTE3NzMsIDAuNzQxODE2LCAxLjEwNzA4LCAxLjQ3NDI2LCAxLjgzNTI4LCAyLjIwNDc5IiwgXAotICAgICAgICAgICIwLjA5MDk5NCwgMC40NTE3NTksIDAuNzQxODE4LCAxLjEwOTM4LCAxLjQ3MDE0LCAxLjgzOTAzLCAyLjE5OTQyIiwgXAotICAgICAgICAgICIwLjA5MTAxNiwgMC40NTE2NDIsIDAuNzQxOTUzLCAxLjEwNTQ1LCAxLjQ3MDE2LCAxLjgzNjQxLCAyLjIwMTkxIiwgXAotICAgICAgICAgICIwLjA5MDk4NywgMC40NTI0NjQsIDAuNzQzNzY4LCAxLjEwNjM0LCAxLjQ3MDksIDEuODQwMiwgMi4yMDEyMiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zNzMxNjIsIDAuNTc4NDk5LCAwLjc0MzQ2NSwgMC45NDk5NjEsIDEuMTU2MjUsIDEuMzYyNTQsIDEuNTY4OTYiLCBcCi0gICAgICAgICAgIjAuMzg1MTg3LCAwLjU5MDUyNCwgMC43NTU0ODgsIDAuOTYxOTk2LCAxLjE2ODI4LCAxLjM3NDU3LCAxLjU4MTAyIiwgXAotICAgICAgICAgICIwLjQwMDQ0MywgMC42MDU3ODYsIDAuNzcwNzg0LCAwLjk3NzIzNiwgMS4xODM1MywgMS4zODk4MywgMS41OTYyNSIsIFwKLSAgICAgICAgICAiMC40MTYwMzYsIDAuNjIxMzcyLCAwLjc4NjMzNSwgMC45OTI3MzgsIDEuMTk5MTMsIDEuNDA1NDEsIDEuNjExOTIiLCBcCi0gICAgICAgICAgIjAuNDMxMjUsIDAuNjM2NTg1LCAwLjgwMTU0NywgMS4wMDc5NCwgMS4yMTQzNCwgMS40MjA2MywgMS42MjcyOCIsIFwKLSAgICAgICAgICAiMC40NTU0ODUsIDAuNjYwODE5LCAwLjgyNTc4MiwgMS4wMzIxNywgMS4yMzg1OCwgMS40NDQ4NiwgMS42NTE1MSIsIFwKLSAgICAgICAgICAiMC40NzYwMTEsIDAuNjgxMzUxLCAwLjg0NjMwOCwgMS4wNTI4MSwgMS4yNTkxLCAxLjQ2NTM5LCAxLjY3MTgyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwMDg5OCwgMC41MDcxMiwgMC44MzU0NDEsIDEuMjQ1NjYsIDEuNjU4MDcsIDIuMDY4OCwgMi40Nzk5IiwgXAotICAgICAgICAgICIwLjEwMDg2NSwgMC41MDcxMjUsIDAuODM1NDMzLCAxLjI0NTU3LCAxLjY1NjAzLCAyLjA2ODY5LCAyLjQ3NzkzIiwgXAotICAgICAgICAgICIwLjEwMDkxNSwgMC41MDcwNDMsIDAuODM1NzU5LCAxLjI0NTg0LCAxLjY1NzkzLCAyLjA2ODY1LCAyLjQ3OTY4IiwgXAotICAgICAgICAgICIwLjEwMDg4OSwgMC41MDcxMjQsIDAuODM1NDM1LCAxLjI0NjksIDEuNjU2MDYsIDIuMDY4NjksIDIuNDc2ODUiLCBcCi0gICAgICAgICAgIjAuMTAwODkyLCAwLjUwNzEyNSwgMC44MzU0MzUsIDEuMjQ2ODYsIDEuNjU2MDYsIDIuMDY4NjgsIDIuNDc3NzQiLCBcCi0gICAgICAgICAgIjAuMTAwODkzLCAwLjUwNzEyNSwgMC44MzU0MzQsIDEuMjQ2ODMsIDEuNjU2MDYsIDIuMDY4NjksIDIuNDc3NzUiLCBcCi0gICAgICAgICAgIjAuMTAwOTE0LCAwLjUwNzExNywgMC44MzU1NDMsIDEuMjQ1NjgsIDEuNjU3OTYsIDIuMDY4NjUsIDIuNDc5NjgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUk4iOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHByZXNldDsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTYzOTIyLCAwLjM0MjYzNCwgMC40ODU5MzgsIDAuNjY1MTQ2LCAwLjg0NDI2NCwgMS4wMjM0OSwgMS4yMDI2OCIsIFwKLSAgICAgICAgICAiMC4xNzU1ODcsIDAuMzU0MzgsIDAuNDk3NjYyLCAwLjY3Njg0OCwgMC44NTYwNDcsIDEuMDM1MjIsIDEuMjE0NDMiLCBcCi0gICAgICAgICAgIjAuMTg5OTc5LCAwLjM2ODczNiwgMC41MTIwMTEsIDAuNjkxMTgyLCAwLjg3MDQwMSwgMS4wNDk1NywgMS4yMjg3NCIsIFwKLSAgICAgICAgICAiMC4yMDUwNjYsIDAuMzgzNzg4LCAwLjUyNzA5OSwgMC43MDYyNjIsIDAuODg1NDE3LCAxLjA2NDY3LCAxLjI0MzgzIiwgXAotICAgICAgICAgICIwLjIxOTcyNCwgMC4zOTg0NTEsIDAuNTQxNzYsIDAuNzIwOTEyLCAwLjkwMDA4MywgMS4wNzkzNywgMS4yNTg0NyIsIFwKLSAgICAgICAgICAiMC4yNDMwNzIsIDAuNDIxODE5LCAwLjU2NTEyMywgMC43NDQyODksIDAuOTIzNDU1LCAxLjEwMjY1LCAxLjI4MTg3IiwgXAotICAgICAgICAgICIwLjI2MjU3OCwgMC40NDEyODUsIDAuNTg0NTkzLCAwLjc2Mzc0NywgMC45NDI5MTYsIDEuMTIyMTQsIDEuMzAxMzUiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDkxMTYxLCAwLjQ1MDkyMiwgMC43NDMxMTYsIDEuMTA4MzQsIDEuNDczNzUsIDEuODM5LCAyLjIwMzk1IiwgXAotICAgICAgICAgICIwLjA5MTE1NywgMC40NTA4ODEsIDAuNzQzMTA3LCAxLjEwODE5LCAxLjQ3MjksIDEuODM4OTYsIDIuMjA0MDIiLCBcCi0gICAgICAgICAgIjAuMDkxMTY5LCAwLjQ1MDc3MSwgMC43NDMxMDQsIDEuMTA4MDgsIDEuNDcyOTMsIDEuODM5MTIsIDIuMjA0MzEiLCBcCi0gICAgICAgICAgIjAuMDkxMTYsIDAuNDUwNzczLCAwLjc0MzEwNywgMS4xMDgwNCwgMS40NzMwNCwgMS44Mzg3OCwgMi4yMDQxMSIsIFwKLSAgICAgICAgICAiMC4wOTExNjYsIDAuNDUwNzcxLCAwLjc0MzEwNSwgMS4xMDc5OSwgMS40NzMxNywgMS44Mzg4MiwgMi4yMDQyMyIsIFwKLSAgICAgICAgICAiMC4wOTExNTEsIDAuNDUwOTExLCAwLjc0MzA4NywgMS4xMDgxNywgMS40NzMzOSwgMS44Mzg5NiwgMi4yMDM2MiIsIFwKLSAgICAgICAgICAiMC4wOTExODUsIDAuNDUwNzY4LCAwLjc0MzA5LCAxLjEwNzA0LCAxLjQ3MTgyLCAxLjgzODc0LCAyLjIwNDMxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDUwMSwgMC4wMDQ1MzksIDAuMDA0NTQ0LCAwLjAwNDU0NSwgMC4wMDQ1NDcsIDAuMDA0NTQ4LCAwLjAwNDU0OCIsIFwKLSAgICAgICAgICAiMC4wMDQ0OTMsIDAuMDA0NTMyLCAwLjAwNDUzNiwgMC4wMDQ1MzksIDAuMDA0NTQsIDAuMDA0NTQsIDAuMDA0NTQxIiwgXAotICAgICAgICAgICIwLjAwNDQ4OCwgMC4wMDQ1MjcsIDAuMDA0NTMxLCAwLjAwNDUzNCwgMC4wMDQ1MzMsIDAuMDA0NTM1LCAwLjAwNDUzNSIsIFwKLSAgICAgICAgICAiMC4wMDQ0ODQsIDAuMDA0NTIzLCAwLjAwNDUyNywgMC4wMDQ1MjksIDAuMDA0NTMxLCAwLjAwNDUzLCAwLjAwNDUzMiIsIFwKLSAgICAgICAgICAiMC4wMDQ0ODMsIDAuMDA0NTIxLCAwLjAwNDUyNiwgMC4wMDQ1MjgsIDAuMDA0NTI5LCAwLjAwNDUzLCAwLjAwNDUzIiwgXAotICAgICAgICAgICIwLjAwNDQ4MiwgMC4wMDQ1MiwgMC4wMDQ1MjUsIDAuMDA0NTI3LCAwLjAwNDUyOCwgMC4wMDQ1MjgsIDAuMDA0NTI5IiwgXAotICAgICAgICAgICIwLjAwNDQ4NCwgMC4wMDQ1MjMsIDAuMDA0NTI3LCAwLjAwNDUyOSwgMC4wMDQ1MywgMC4wMDQ1MywgMC4wMDQ1MzEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQzOTYsIDAuMDA0NDM3LCAwLjAwNDQzOCwgMC4wMDQ0MzgsIDAuMDA0NDM3LCAwLjAwNDQzNywgMC4wMDQ0MzYiLCBcCi0gICAgICAgICAgIjAuMDA0MzksIDAuMDA0NDMxLCAwLjAwNDQzMiwgMC4wMDQ0MzIsIDAuMDA0NDMxLCAwLjAwNDQzMSwgMC4wMDQ0MyIsIFwKLSAgICAgICAgICAiMC4wMDQzODQsIDAuMDA0NDI1LCAwLjAwNDQyNiwgMC4wMDQ0MjYsIDAuMDA0NDI1LCAwLjAwNDQyNCwgMC4wMDQ0MjQiLCBcCi0gICAgICAgICAgIjAuMDA0Mzc5LCAwLjAwNDQyLCAwLjAwNDQyMiwgMC4wMDQ0MjEsIDAuMDA0NDIsIDAuMDA0NDIsIDAuMDA0NDE5IiwgXAotICAgICAgICAgICIwLjAwNDM3NSwgMC4wMDQ0MTcsIDAuMDA0NDE4LCAwLjAwNDQxNywgMC4wMDQ0MTcsIDAuMDA0NDE2LCAwLjAwNDQxNiIsIFwKLSAgICAgICAgICAiMC4wMDQzNywgMC4wMDQ0MTIsIDAuMDA0NDEzLCAwLjAwNDQxMiwgMC4wMDQ0MTIsIDAuMDA0NDExLCAwLjAwNDQxIiwgXAotICAgICAgICAgICIwLjAwNDM2OCwgMC4wMDQ0MSwgMC4wMDQ0MTIsIDAuMDA0NDExLCAwLjAwNDQxLCAwLjAwNDQwOSwgMC4wMDQ0MDkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0NjU4LCAwLjAwNDY5MSwgMC4wMDQ2OTQsIDAuMDA0Njk2LCAwLjAwNDY5NiwgMC4wMDQ2OTcsIDAuMDA0Njk4IiwgXAotICAgICAgICAgICIwLjAwNDY0OSwgMC4wMDQ2ODIsIDAuMDA0Njg1LCAwLjAwNDY4NywgMC4wMDQ2ODgsIDAuMDA0Njg4LCAwLjAwNDY4OSIsIFwKLSAgICAgICAgICAiMC4wMDQ2MzgsIDAuMDA0Njc0LCAwLjAwNDY3OCwgMC4wMDQ2OCwgMC4wMDQ2ODEsIDAuMDA0NjgxLCAwLjAwNDY4MiIsIFwKLSAgICAgICAgICAiMC4wMDQ2MjgsIDAuMDA0NjY3LCAwLjAwNDY3MSwgMC4wMDQ2NzQsIDAuMDA0Njc1LCAwLjAwNDY3NiwgMC4wMDQ2NzYiLCBcCi0gICAgICAgICAgIjAuMDA0NjE5LCAwLjAwNDY2LCAwLjAwNDY2NSwgMC4wMDQ2NjgsIDAuMDA0NjY5LCAwLjAwNDY3LCAwLjAwNDY3IiwgXAotICAgICAgICAgICIwLjAwNDYwNiwgMC4wMDQ2NTEsIDAuMDA0NjU3LCAwLjAwNDY2LCAwLjAwNDY2MiwgMC4wMDQ2NjMsIDAuMDA0NjYzIiwgXAotICAgICAgICAgICIwLjAwNDU5OCwgMC4wMDQ2NDUsIDAuMDA0NjUxLCAwLjAwNDY1NSwgMC4wMDQ2NTcsIDAuMDA0NjU5LCAwLjAwNDY2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHNjYWxhcikgewotICAgICAgICB2YWx1ZXMoIjAiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFJOKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDEzMzYxMTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDEyMzk1NDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDEzMzYxMTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA0MDgsIDAuMDAwNDA4LCAwLjAwMDQwNywgMC4wMDA0MDcsIDAuMDAwNDA3LCAwLjAwMDQwNywgMC4wMDA0MDciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA0MTYsIDAuMDAwNDEsIDAuMDAwNDEsIDAuMDAwNDA5LCAwLjAwMDQwOSwgMC4wMDA0MDksIDAuMDAwNDA5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRCI7Ci0gICAgICBzZGZfY29uZCA6ICJEID09IDEnYjAiOwotICAgICAgZmFsbF9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMTgzNTE0LCAwLjE5NTE2NiwgMC4yMDk0NTYsIDAuMjIyODU1LCAwLjIzNTU0MiwgMC4yNTU0NzYsIDAuMjcyNDgzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogcmVjb3ZlcnlfcmlzaW5nOwotICAgICAgd2hlbiA6ICJEIjsKLSAgICAgIHNkZl9jb25kIDogIkQgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQocmVjb3ZlcnlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjA2MjUsIC0wLjA3Mzc1LCAtMC4wOTI1LCAtMC4xMDUsIC0wLjEyMzc1LCAtMC4xNDYyNSwgLTAuMTY3NSIsIFwKLSAgICAgICAgICAiLTAuMDcsIC0wLjA4MTI1LCAtMC4xLCAtMC4xMTI1LCAtMC4xMzEyNSwgLTAuMTUzNzUsIC0wLjE3NSIsIFwKLSAgICAgICAgICAiLTAuMDc2MjUsIC0wLjA5Mzc1LCAtMC4xMDYyNSwgLTAuMTI1LCAtMC4xMzc1LCAtMC4xNiwgLTAuMTgxMjUiLCBcCi0gICAgICAgICAgIi0wLjA4MjUsIC0wLjA5Mzc1LCAtMC4xMTI1LCAtMC4xMjUsIC0wLjE0Mzc1LCAtMC4xNjYyNSwgLTAuMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDc2MjUsIC0wLjA5Mzc1LCAtMC4xMDYyNSwgLTAuMTI1LCAtMC4xMzc1LCAtMC4xNjYyNSwgLTAuMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDY2MjUsIC0wLjA3NzUsIC0wLjA5LCAtMC4xMDg3NSwgLTAuMTI3NSwgLTAuMTUsIC0wLjE3MTI1IiwgXAotICAgICAgICAgICItMC4wNDUsIC0wLjA1NjI1LCAtMC4wNzUsIC0wLjA4NzUsIC0wLjEwNjI1LCAtMC4xMzUsIC0wLjE1NjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogcmVtb3ZhbF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIkQiOwotICAgICAgc2RmX2NvbmQgOiAiRCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChyZW1vdmFsX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwNjI1LCAwLjExNzUsIDAuMTMsIDAuMTQ4NzUsIDAuMTYxMjUsIDAuMTksIDAuMjA1IiwgXAotICAgICAgICAgICIwLjExMzc1LCAwLjEyNSwgMC4xNDM3NSwgMC4xNTYyNSwgMC4xNzUsIDAuMTk3NSwgMC4yMTg3NSIsIFwKLSAgICAgICAgICAiMC4xMjYyNSwgMC4xMzc1LCAwLjE1LCAwLjE2ODc1LCAwLjE4MTI1LCAwLjIwMzc1LCAwLjIyNSIsIFwKLSAgICAgICAgICAiMC4xMzI1LCAwLjE0Mzc1LCAwLjE2MjUsIDAuMTc1LCAwLjE5Mzc1LCAwLjIxNjI1LCAwLjIzNzUiLCBcCi0gICAgICAgICAgIjAuMTQ1LCAwLjE1NjI1LCAwLjE3NSwgMC4xODc1LCAwLjIsIDAuMjI4NzUsIDAuMjQzNzUiLCBcCi0gICAgICAgICAgIjAuMTYsIDAuMTcxMjUsIDAuMTgzNzUsIDAuMjAyNSwgMC4yMTUsIDAuMjQzNzUsIDAuMjU4NzUiLCBcCi0gICAgICAgICAgIjAuMTcsIDAuMTgxMjUsIDAuMiwgMC4yMTI1LCAwLjIzMTI1LCAwLjI1Mzc1LCAwLjI3NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogREZGU1JIUVg0ICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoREZGU1JIUVg0KSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuNDY5Mzk3OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIGZmIChOMzUsUUJJTlQpIHsKLSAgICBuZXh0X3N0YXRlIDogIkQiOwotICAgIGNsb2NrZWRfb24gOiAiQ0siOwotICAgIGNsZWFyIDogIighUk4pIjsKLSAgICBwcmVzZXQgOiAiKCFTTikiOwotICAgIGNsZWFyX3ByZXNldF92YXIxIDogSDsKLSAgfQotICBwaW4oQ0spICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDUzNjg2MjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA1MzY1OTk7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNTM2ODYyOwotICAgIGNsb2NrIDogdHJ1ZTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDI3ODEsIDAuMDAyNzcxLCAwLjAwMjc2MiwgMC4wMDI3NTUsIDAuMDAyNzUxLCAwLjAwMjc0NCwgMC4wMDI3NCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNzUxNSwgMC4wMDc1MDUsIDAuMDA3NDk2LCAwLjAwNzQ4OCwgMC4wMDc0ODIsIDAuMDA3NDcxLCAwLjAwNzQ2NiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQmUk4mU04iOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1JOX0VRXzFfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjMxNzM2NSwgMC4zMjk0MzIsIDAuMzQ0MzY1LCAwLjM1OTc2LCAwLjM3NTE3NSwgMC4zOTk2MTIsIDAuNDIxMjE0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4yNjg2NTQsIDAuMjc5OTY2LCAwLjI5NDkyLCAwLjMwOTYxOCwgMC4zMjQ2NTMsIDAuMzQ4MjAyLCAwLjM2NzkxOSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNzM4NTUzOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDczNTcwNzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA3Mzg1NTM7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzMjUyLCAwLjAwMzIzNiwgMC4wMDMyMjQsIDAuMDAzMjE3LCAwLjAwMzIxLCAwLjAwMzIwMiwgMC4wMDMxOTciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDMwNDQsIDAuMDAzMDM2LCAwLjAwMzAyOSwgMC4wMDMwMjQsIDAuMDAzMDIsIDAuMDAzMDE0LCAwLjAwMzAwOSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJSTiZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJSTl9FUV8xX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDM3NSwgLTAuMDI2MjUsIC0wLjAxMzc1LCAtMC4wMDEyNSwgMC4wMDUsIDAuMDIxMjUsIDAuMDM2MjUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLjAxLCAwLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDYxMjUsIC0wLjA1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIC0wLjAwMjUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDczNzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNDM3NSwgLTAuMDMxMjUsIC0wLjAxNSwgMCIsIFwKLSAgICAgICAgICAiLTAuMDg2MjUsIC0wLjA4MTI1LCAtMC4wNjg3NSwgLTAuMDU2MjUsIC0wLjA0Mzc1LCAtMC4wMjc1LCAtMC4wMTI1IiwgXAotICAgICAgICAgICItMC4xMDg3NSwgLTAuMDk3NSwgLTAuMDg1LCAtMC4wNzI1LCAtMC4wNjYyNSwgLTAuMDUsIC0wLjAzNSIsIFwKLSAgICAgICAgICAiLTAuMTIzNzUsIC0wLjExODc1LCAtMC4xMDYyNSwgLTAuMDkzNzUsIC0wLjA4MTI1LCAtMC4wNjUsIC0wLjA1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzUsIDAuMDg2MjUsIDAuMDk4NzUsIDAuMTExMjUsIDAuMTMsIDAuMTUyNSwgMC4xNzM3NSIsIFwKLSAgICAgICAgICAiMC4wNjM3NSwgMC4wNzUsIDAuMDg3NSwgMC4xLCAwLjExODc1LCAwLjE0MTI1LCAwLjE2MjUiLCBcCi0gICAgICAgICAgIjAuMDQ1LCAwLjA2MjUsIDAuMDc1LCAwLjA4NzUsIDAuMTA2MjUsIDAuMTI4NzUsIDAuMTUiLCBcCi0gICAgICAgICAgIjAuMDMyNSwgMC4wNSwgMC4wNjI1LCAwLjA3NSwgMC4wOTM3NSwgMC4xMTYyNSwgMC4xMzc1IiwgXAotICAgICAgICAgICIwLjAyNjI1LCAwLjAzNzUsIDAuMDUsIDAuMDY4NzUsIDAuMDgxMjUsIDAuMTAzNzUsIDAuMTI1IiwgXAotICAgICAgICAgICIwLjAxLCAwLjAyMTI1LCAwLjA0LCAwLjA1MjUsIDAuMDY1LCAwLjA5Mzc1LCAwLjExNSIsIFwKLSAgICAgICAgICAiMC4wMDEyNSwgMC4wMTI1LCAwLjAyNSwgMC4wNDM3NSwgMC4wNTYyNSwgMC4wNzg3NSwgMC4xIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJSTiZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJSTl9FUV8xX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTM3NSwgMC4xMjYyNSwgMC4xMDc1LCAwLjA4ODc1LCAwLjA3NjI1LCAwLjA1Mzc1LCAwLjAzMjUiLCBcCi0gICAgICAgICAgIjAuMTQ4NzUsIDAuMTM3NSwgMC4xMTg3NSwgMC4xLCAwLjA4NzUsIDAuMDY1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjE2NzUsIDAuMTUsIDAuMTMxMjUsIDAuMTE4NzUsIDAuMSwgMC4wNzc1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICIwLjE4LCAwLjE2MjUsIDAuMTQzNzUsIDAuMTMxMjUsIDAuMTEyNSwgMC4wOSwgMC4wNjg3NSIsIFwKLSAgICAgICAgICAiMC4xOTI1LCAwLjE3NSwgMC4xNjI1LCAwLjE0Mzc1LCAwLjEyNSwgMC4xMDI1LCAwLjA4MTI1IiwgXAotICAgICAgICAgICIwLjIxNSwgMC4xOTc1LCAwLjE3ODc1LCAwLjE2NjI1LCAwLjE0NzUsIDAuMTI1LCAwLjEwMzc1IiwgXAotICAgICAgICAgICIwLjIzLCAwLjIxODc1LCAwLjIsIDAuMTgxMjUsIDAuMTYyNSwgMC4xNCwgMC4xMjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODEyNSwgMC4wNywgMC4wNTc1LCAwLjAzODc1LCAwLjAyLCAtMC4wMDI1LCAtMC4wMyIsIFwKLSAgICAgICAgICAiMC4wOTI1LCAwLjA4MTI1LCAwLjA2ODc1LCAwLjA1LCAwLjAzMTI1LCAwLjAwODc1LCAtMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4xMDUsIDAuMDkzNzUsIDAuMDgxMjUsIDAuMDYyNSwgMC4wNDM3NSwgMC4wMjEyNSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMTE3NSwgMC4xMDYyNSwgMC4wOTM3NSwgMC4wNzUsIDAuMDU2MjUsIDAuMDMzNzUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMTMsIDAuMTE4NzUsIDAuMTA2MjUsIDAuMDg3NSwgMC4wNjg3NSwgMC4wNDYyNSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4xNDYyNSwgMC4xMzUsIDAuMTIyNSwgMC4xMDM3NSwgMC4wOTEyNSwgMC4wNjI1LCAwLjA0MTI1IiwgXAotICAgICAgICAgICIwLjE2NzUsIDAuMTUsIDAuMTM3NSwgMC4xMTg3NSwgMC4xMDYyNSwgMC4wNzc1LCAwLjA1NjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihRKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuNTIzMzM4OwotICAgIGZ1bmN0aW9uIDogIk4zNSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3NlbnNlIDogbm9uX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiByaXNpbmdfZWRnZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yODcwNTEsIDAuNDE0NTksIDAuNTM5NjM5LCAwLjYyODk0MSwgMC43NzE4NDQsIDAuODk2ODM4LCAxLjA3NTUzIiwgXAotICAgICAgICAgICIwLjI5ODg2OCwgMC40MjYzMzUsIDAuNTUxMzgyLCAwLjY0MDY3MSwgMC43ODM1NiwgMC45MDg2MjIsIDEuMDg3MjkiLCBcCi0gICAgICAgICAgIjAuMzEzNzg0LCAwLjQ0MTM2MiwgMC41NjY0MDksIDAuNjU1Njk4LCAwLjc5ODU5LCAwLjkyMzU5MSwgMS4xMDIyNyIsIFwKLSAgICAgICAgICAiMC4zMjkzMzgsIDAuNDU2ODgyLCAwLjU4MTkzMiwgMC42NzEyMzEsIDAuODE0MTA0LCAwLjkzOTEzLCAxLjExNzgxIiwgXAotICAgICAgICAgICIwLjM0NDcyMSwgMC40NzIyNTgsIDAuNTk3MzA3LCAwLjY4NjYwOCwgMC44Mjk1MTIsIDAuOTU0NTAzLCAxLjEzMzIiLCBcCi0gICAgICAgICAgIjAuMzY4OTk1LCAwLjQ5NjU3NCwgMC42MjE2MiwgMC43MTA5MSwgMC44NTM3OTksIDAuOTc4ODMyLCAxLjE1NzQyIiwgXAotICAgICAgICAgICIwLjM5MDI4OCwgMC41MTc3MzMsIDAuNjQyNzY5LCAwLjczMjA3NiwgMC44NzQ5MzcsIDAuOTk5OTc0LCAxLjE3ODY1Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU4NjY5LCAwLjMwNDE1OSwgMC41NTczNywgMC43MzgyNzcsIDEuMDMxMjYsIDEuMjgyNzEsIDEuNjUwNTMiLCBcCi0gICAgICAgICAgIjAuMDU4ODQ0LCAwLjMwNDE3NCwgMC41NTczNjksIDAuNzM5NDIsIDEuMDMwOTgsIDEuMjg2MTgsIDEuNjUwNjEiLCBcCi0gICAgICAgICAgIjAuMDU5MDA3LCAwLjMwNDE4NywgMC41NTY5NTcsIDAuNzM5NzMxLCAxLjAyODk5LCAxLjI4NDI2LCAxLjY1MDQ1IiwgXAotICAgICAgICAgICIwLjA1ODY2OCwgMC4zMDQxNSwgMC41NTY4OTQsIDAuNzM4MzE3LCAxLjAzMDk0LCAxLjI4NDEsIDEuNjUwNDciLCBcCi0gICAgICAgICAgIjAuMDU4Nzk0LCAwLjMwNDE3OCwgMC41NTY5NTQsIDAuNzM3MDk3LCAxLjAzMTI2LCAxLjI4Mzg5LCAxLjY1MDUzIiwgXAotICAgICAgICAgICIwLjA1ODk5MiwgMC4zMDQxODgsIDAuNTU2OTU3LCAwLjczOTcxNywgMS4wMjkwMywgMS4yODMzNSwgMS42NDkxNyIsIFwKLSAgICAgICAgICAiMC4wNTkwOTksIDAuMzA0MTc4LCAwLjU1NzQxOCwgMC43MzgyNTgsIDEuMDMwOSwgMS4yODQxNCwgMS42NTA0MiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMxNzM2NSwgMC40NjQ5MDYsIDAuNjEwNDY4LCAwLjcxNDQwMywgMC44ODA3MjQsIDEuMDI2MjgsIDEuMjM0MTciLCBcCi0gICAgICAgICAgIjAuMzI5NDMyLCAwLjQ3NjkxNSwgMC42MjI0NjYsIDAuNzI2NDExLCAwLjg5Mjc2MiwgMS4wMzgzLCAxLjI0NjE2IiwgXAotICAgICAgICAgICIwLjM0NDM2NSwgMC40OTE4OTcsIDAuNjM3NDY2LCAwLjc0MTQzMSwgMC45MDc3MzEsIDEuMDUzMzIsIDEuMjYxMjMiLCBcCi0gICAgICAgICAgIjAuMzU5NzYsIDAuNTA3MzIsIDAuNjUyODcsIDAuNzU2ODAzLCAwLjkyMzE3MiwgMS4wNjg3MiwgMS4yNzY1NyIsIFwKLSAgICAgICAgICAiMC4zNzUxNzUsIDAuNTIyNzE3LCAwLjY2ODI3OCwgMC43NzIyMTEsIDAuOTM4NTI2LCAxLjA4NDEsIDEuMjkxOTkiLCBcCi0gICAgICAgICAgIjAuMzk5NjEyLCAwLjU0NzE0NiwgMC42OTI3MTYsIDAuNzk2NjcyLCAwLjk2Mjk4LCAxLjEwODU3LCAxLjMxNjQ4IiwgXAotICAgICAgICAgICIwLjQyMTIxNCwgMC41Njg3MDgsIDAuNzE0MjY0LCAwLjgxODIwMSwgMC45ODQ0ODksIDEuMTMwMDgsIDEuMzM3OTciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjE3NiwgMC4zNDQ0NTksIDAuNjMzNzQ3LCAwLjg0MTc0MSwgMS4xNzUxNSwgMS40NjU3NiwgMS44ODA2NiIsIFwKLSAgICAgICAgICAiMC4wNjE3OTgsIDAuMzQ0NDc5LCAwLjYzMzcxNSwgMC44NDA4NTcsIDEuMTc1MzUsIDEuNDY1OTgsIDEuODgwNzgiLCBcCi0gICAgICAgICAgIjAuMDYxNzU3LCAwLjM0NDgzOSwgMC42MzM2OCwgMC44NDIyNDksIDEuMTcyMjIsIDEuNDY2MDgsIDEuODc3NTUiLCBcCi0gICAgICAgICAgIjAuMDYxNzYxLCAwLjM0NDM3MywgMC42MzM2ODgsIDAuODQxOTY1LCAxLjE3MDcsIDEuNDY2MDMsIDEuODgwNzIiLCBcCi0gICAgICAgICAgIjAuMDYxNzQ3LCAwLjM0NDQ2NCwgMC42MzQ4NTYsIDAuODQxNDE1LCAxLjE3MjA0LCAxLjQ2NTg0LCAxLjg4MDY0IiwgXAotICAgICAgICAgICIwLjA2MTc0MiwgMC4zNDUwMTEsIDAuNjMzNjY1LCAwLjg0MjQzNywgMS4xNzM0NSwgMS40NjYxNCwgMS44NzgwOSIsIFwKLSAgICAgICAgICAiMC4wNjE3NjgsIDAuMzQ0NDU5LCAwLjYzMzg1MywgMC44NDE4MzQsIDEuMTc0NTYsIDEuNDY1NzUsIDEuODgwNjgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUk4iOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGNsZWFyOwotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjM3NTEwNCwgMC41MjI1NzMsIDAuNjY4MTU4LCAwLjc3MjA3MywgMC45Mzg0MzMsIDEuMDg0MDUsIDEuMjkxODciLCBcCi0gICAgICAgICAgIjAuMzg2NjI1LCAwLjUzNDA1LCAwLjY3OTYyNywgMC43ODM1NzksIDAuOTQ5OTAyLCAxLjA5NTQyLCAxLjMwMzI5IiwgXAotICAgICAgICAgICIwLjQwMTUxLCAwLjU0ODk3OSwgMC42OTQ1NDksIDAuNzk4NDc2LCAwLjk2NDg0NCwgMS4xMTA0OCwgMS4zMTgzNCIsIFwKLSAgICAgICAgICAiMC40MTYzNjYsIDAuNTYzODUzLCAwLjcwOTQxNiwgMC44MTMzOTQsIDAuOTc5NzA1LCAxLjEyNTIzLCAxLjMzMzE3IiwgXAotICAgICAgICAgICIwLjQzMDM4NywgMC41Nzc4NTcsIDAuNzIzMzk5LCAwLjgyNzM4NiwgMC45OTM2OTcsIDEuMTM5MjIsIDEuMzQ3MjIiLCBcCi0gICAgICAgICAgIjAuNDUzMTEsIDAuNjAwNTg2LCAwLjc0NjE1LCAwLjg1MDEyNywgMS4wMTY0NCwgMS4xNjE5NiwgMS4zNjk4OSIsIFwKLSAgICAgICAgICAiMC40NzA4MjgsIDAuNjE4MjYzLCAwLjc2Mzg1NSwgMC44Njc4MDcsIDEuMDM0MTMsIDEuMTc5NjQsIDEuMzg3NTIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjIzMzcsIDAuMzQ0OTksIDAuNjM1MTk3LCAwLjg0MjY0NSwgMS4xNzUyLCAxLjQ2NDEsIDEuODgwMDkiLCBcCi0gICAgICAgICAgIjAuMDYyMDcsIDAuMzQ1MDUxLCAwLjYzNDA3MiwgMC44NDM0MTEsIDEuMTc1MjMsIDEuNDY1NjYsIDEuODgwODMiLCBcCi0gICAgICAgICAgIjAuMDYyMDkxLCAwLjM0NTA0OSwgMC42MzQzNDIsIDAuODQyOTkzLCAxLjE3NTIxLCAxLjQ2NDEzLCAxLjg3OTYxIiwgXAotICAgICAgICAgICIwLjA2MjAzOSwgMC4zNDQ4NTUsIDAuNjM0NjcxLCAwLjg0MzQ1NiwgMS4xNzUwOSwgMS40NjU2NywgMS44Nzk5NCIsIFwKLSAgICAgICAgICAiMC4wNjIwNDMsIDAuMzQ0OTg2LCAwLjYzNTM5NSwgMC44NDM0MDMsIDEuMTc1MTQsIDEuNDY1NjIsIDEuODc4ODQiLCBcCi0gICAgICAgICAgIjAuMDYyMDUsIDAuMzQ0OTcyLCAwLjYzNDk1NywgMC44NDM0MzksIDEuMTc1MDksIDEuNDY1NjEsIDEuODc5ODQiLCBcCi0gICAgICAgICAgIjAuMDYyMDM2LCAwLjM0NTE3OSwgMC42MzQwMDgsIDAuODQzNDAyLCAxLjE3NTIyLCAxLjQ2NTYzLCAxLjg4MDc5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiBwcmVzZXQ7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjE2ODUzLCAwLjM0Mzk2MiwgMC40NjkwMjUsIDAuNTU4MzQ5LCAwLjcwMTI0NSwgMC44MjYzMzMsIDEuMDA0OTIiLCBcCi0gICAgICAgICAgIjAuMjI4NSwgMC4zNTU1OCwgMC40ODA2NDIsIDAuNTY5OTY1LCAwLjcxMjg2MiwgMC44Mzc5NDksIDEuMDE2NTMiLCBcCi0gICAgICAgICAgIjAuMjQyNTI3LCAwLjM2OTYwNiwgMC40OTQ2NjksIDAuNTgzOTkzLCAwLjcyNjg5LCAwLjg1MTk3NiwgMS4wMzA1NSIsIFwKLSAgICAgICAgICAiMC4yNTU1MiwgMC4zODI1ODksIDAuNTA3NjU5LCAwLjU5Njk5MywgMC43Mzk5MTIsIDAuODY0OTA4LCAxLjA0MzUyIiwgXAotICAgICAgICAgICIwLjI2ODQ4NiwgMC4zOTUzODgsIDAuNTIwNDQ2LCAwLjYwOTc5LCAwLjc1MjY4NSwgMC44Nzc3MjIsIDEuMDU2MjgiLCBcCi0gICAgICAgICAgIjAuMjkxNTksIDAuNDE4NTI0LCAwLjU0MzYyMSwgMC42MzI5MDEsIDAuNzc1ODA0LCAwLjkwMDgyNCwgMS4wNzk0NCIsIFwKLSAgICAgICAgICAiMC4zMTE2ODIsIDAuNDM4NTQ1LCAwLjU2MzU5MSwgMC42NTI5LCAwLjc5NTgwNSwgMC45MjA4MzIsIDEuMDk5NSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1Njg0NCwgMC4zMDM1OTgsIDAuNTU3OTQ5LCAwLjc0MDAzNSwgMS4wMzEyNywgMS4yODYwNywgMS42NTAyOSIsIFwKLSAgICAgICAgICAiMC4wNTY4NTcsIDAuMzAzNjI5LCAwLjU1Nzg5MiwgMC43NDAxMDcsIDEuMDMxMjgsIDEuMjg2MDcsIDEuNjUwMjkiLCBcCi0gICAgICAgICAgIjAuMDU2ODc3LCAwLjMwMzYzMSwgMC41NTc4NzIsIDAuNzM5OTQ5LCAxLjAzMTMzLCAxLjI4NjA3LCAxLjY1MDI5IiwgXAotICAgICAgICAgICIwLjA1NjkxNiwgMC4zMDM2MDMsIDAuNTU3ODMxLCAwLjc0MDA5NCwgMS4wMzE0MiwgMS4yODYyLCAxLjY1MDA3IiwgXAotICAgICAgICAgICIwLjA1NjgwMywgMC4zMDM2MjEsIDAuNTU3OTU1LCAwLjc0MDA0MSwgMS4wMzEyNSwgMS4yODYxOCwgMS42NTAwNCIsIFwKLSAgICAgICAgICAiMC4wNTY4NSwgMC4zMDM2MjEsIDAuNTU3Nzg5LCAwLjc0MDEwNSwgMS4wMzEyNiwgMS4yODYwNiwgMS42NTA0NCIsIFwKLSAgICAgICAgICAiMC4wNTY4NzEsIDAuMzAzNTg5LCAwLjU1NzY1MywgMC43NDAwNTIsIDEuMDMxMzQsIDEuMjg2MDIsIDEuNjUwMTQiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMzcyNTksIDAuNDg0NzgxLCAwLjYzMDMyMSwgMC43MzQzLCAwLjkwMDYxNiwgMS4wNDYxNCwgMS4yNTQwOCIsIFwKLSAgICAgICAgICAiMC4zNDkxMDQsIDAuNDk2NTg1LCAwLjY0MjEzOSwgMC43NDYxMTUsIDAuOTEyNDI2LCAxLjA1Nzk1LCAxLjI2NTgyIiwgXAotICAgICAgICAgICIwLjM2MzQwMywgMC41MTA4MjksIDAuNjU2NDA2LCAwLjc2MDM1OCwgMC45MjY2ODEsIDEuMDcyMTksIDEuMjgwMDciLCBcCi0gICAgICAgICAgIjAuMzc2OTg5LCAwLjUyNDQ4MywgMC42NzAwMzEsIDAuNzczOTcxLCAwLjk0MDMzLCAxLjA4NTg1LCAxLjI5MzcxIiwgXAotICAgICAgICAgICIwLjM5MDQ2LCAwLjUzNzk0NCwgMC42ODM0OTcsIDAuNzg3NDc0LCAwLjk1Mzc4NywgMS4wOTkzMSwgMS4zMDcxNiIsIFwKLSAgICAgICAgICAiMC40MTE5NDIsIDAuNTU5NDE1LCAwLjcwNDk3OSwgMC44MDg5MTksIDAuOTc1Mjg0LCAxLjEyMDgzLCAxLjMyODY5IiwgXAotICAgICAgICAgICIwLjQzMDY2NywgMC41NzgxNTIsIDAuNzIzNzE1LCAwLjgyNzY5MywgMC45OTQwMDYsIDEuMTM5NTMsIDEuMzQ3NDYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjIwMDksIDAuMzQ0Njk4LCAwLjYzNTEyNCwgMC44NDM0OTQsIDEuMTc1MTIsIDEuNDY1NzMsIDEuODc4NjgiLCBcCi0gICAgICAgICAgIjAuMDYyMTUzLCAwLjM0NTAyNywgMC42MzQ4ODcsIDAuODQzNDE3LCAxLjE3NTE3LCAxLjQ2NTYyLCAxLjg3OTI0IiwgXAotICAgICAgICAgICIwLjA2MjM5NCwgMC4zNDQ5OTEsIDAuNjM1MTU4LCAwLjg0MzQwNCwgMS4xNzUyMywgMS40NjU2NSwgMS44ODA4MSIsIFwKLSAgICAgICAgICAiMC4wNjIzNzEsIDAuMzQ0Njc0LCAwLjYzNTI1MywgMC44NDE2MTgsIDEuMTc1MjEsIDEuNDY1NTcsIDEuODgxMSIsIFwKLSAgICAgICAgICAiMC4wNjIyNjIsIDAuMzQ0OTE4LCAwLjYzNTE4LCAwLjg0MzM4OSwgMS4xNzUxOSwgMS40NjU1NSwgMS44ODExNyIsIFwKLSAgICAgICAgICAiMC4wNjIwMzksIDAuMzQ1MTg2LCAwLjYzNDg2MiwgMC44NDMwNTEsIDEuMTc1MjYsIDEuNDY0MiwgMS44NzgyOSIsIFwKLSAgICAgICAgICAiMC4wNjE5NywgMC4zNDQ2NzUsIDAuNjM1MTcyLCAwLjg0MzQwOSwgMS4xNzUxMywgMS40NjU2LCAxLjg3OTkxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA5NjEzLCAwLjAwOTcyNiwgMC4wMDk3NDIsIDAuMDA5NzQ3LCAwLjAwOTc1LCAwLjAwOTc1MywgMC4wMDk3NTUiLCBcCi0gICAgICAgICAgIjAuMDA5NjAyLCAwLjAwOTcxNSwgMC4wMDk3MzEsIDAuMDA5NzM2LCAwLjAwOTczOSwgMC4wMDk3NDMsIDAuMDA5NzQzIiwgXAotICAgICAgICAgICIwLjAwOTU4OCwgMC4wMDk3MDQsIDAuMDA5NzIsIDAuMDA5NzI1LCAwLjAwOTcyOCwgMC4wMDk3MywgMC4wMDk3MzYiLCBcCi0gICAgICAgICAgIjAuMDA5NTgyLCAwLjAwOTY5NiwgMC4wMDk3MTIsIDAuMDA5NzE4LCAwLjAwOTcyMiwgMC4wMDk3MjQsIDAuMDA5NzI1IiwgXAotICAgICAgICAgICIwLjAwOTU3NSwgMC4wMDk2ODgsIDAuMDA5NzA1LCAwLjAwOTcwOSwgMC4wMDk3MTIsIDAuMDA5NzE4LCAwLjAwOTcxNSIsIFwKLSAgICAgICAgICAiMC4wMDk1NjMsIDAuMDA5Njc4LCAwLjAwOTY5NiwgMC4wMDk3MDIsIDAuMDA5NzAzLCAwLjAwOTcwOCwgMC4wMDk3MDciLCBcCi0gICAgICAgICAgIjAuMDA5NTU1LCAwLjAwOTY3LCAwLjAwOTY4NywgMC4wMDk2OTIsIDAuMDA5Njk2LCAwLjAwOTY5OSwgMC4wMDk3MDEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwOTIzOSwgMC4wMDkzOTUsIDAuMDA5NDE5LCAwLjAwOTQyNywgMC4wMDk0MzMsIDAuMDA5NDM3LCAwLjAwOTQ0IiwgXAotICAgICAgICAgICIwLjAwOTI0LCAwLjAwOTM4OCwgMC4wMDk0MTEsIDAuMDA5NDE4LCAwLjAwOTQyNCwgMC4wMDk0MjcsIDAuMDA5NDMiLCBcCi0gICAgICAgICAgIjAuMDA5MjI2LCAwLjAwOTM3NywgMC4wMDk0LCAwLjAwOTQwOCwgMC4wMDk0MTQsIDAuMDA5NDE3LCAwLjAwOTQyIiwgXAotICAgICAgICAgICIwLjAwOTIxNCwgMC4wMDkzNjgsIDAuMDA5MzkzLCAwLjAwOTQsIDAuMDA5NDA2LCAwLjAwOTQxLCAwLjAwOTQxMyIsIFwKLSAgICAgICAgICAiMC4wMDkyMDUsIDAuMDA5MzYxLCAwLjAwOTM4NSwgMC4wMDkzOTIsIDAuMDA5Mzk5LCAwLjAwOTQwMiwgMC4wMDk0MDUiLCBcCi0gICAgICAgICAgIjAuMDA5MjA3LCAwLjAwOTM2MiwgMC4wMDkzODUsIDAuMDA5MzkzLCAwLjAwOTM5OSwgMC4wMDk0MDMsIDAuMDA5NDA2IiwgXAotICAgICAgICAgICIwLjAwOTIxMywgMC4wMDkzNjMsIDAuMDA5Mzg2LCAwLjAwOTM5MywgMC4wMDkzOTksIDAuMDA5NDAyLCAwLjAwOTQwNSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMTMyNCwgMC4wMTE0ODMsIDAuMDExNTEsIDAuMDExNTE4LCAwLjAxMTUyNiwgMC4wMTE1MjksIDAuMDExNTMzIiwgXAotICAgICAgICAgICIwLjAxMTMxNSwgMC4wMTE0NzUsIDAuMDExNTAxLCAwLjAxMTUxLCAwLjAxMTUxNywgMC4wMTE1MjEsIDAuMDExNTI0IiwgXAotICAgICAgICAgICIwLjAxMTMwNywgMC4wMTE0NjYsIDAuMDExNDkzLCAwLjAxMTUwMSwgMC4wMTE1MDksIDAuMDExNTEyLCAwLjAxMTUxNSIsIFwKLSAgICAgICAgICAiMC4wMTEzLCAwLjAxMTQ1OSwgMC4wMTE0ODUsIDAuMDExNDk0LCAwLjAxMTUwMSwgMC4wMTE1MDUsIDAuMDExNTA4IiwgXAotICAgICAgICAgICIwLjAxMTI5MiwgMC4wMTE0NTIsIDAuMDExNDc5LCAwLjAxMTQ4NywgMC4wMTE0OTQsIDAuMDExNDk4LCAwLjAxMTUwMSIsIFwKLSAgICAgICAgICAiMC4wMTEyOSwgMC4wMTE0NDgsIDAuMDExNDc1LCAwLjAxMTQ4MywgMC4wMTE0OTEsIDAuMDExNDk0LCAwLjAxMTQ5OCIsIFwKLSAgICAgICAgICAiMC4wMTEyODMsIDAuMDExNDQzLCAwLjAxMTQ3LCAwLjAxMTQ3OCwgMC4wMTE0ODYsIDAuMDExNDg5LCAwLjAxMTQ5MyIpOwotICAgICAgfQotICAgICAgcmlzZV9wb3dlcihzY2FsYXIpIHsKLSAgICAgICAgdmFsdWVzKCIwIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiU04iOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDExMzgxLCAwLjAxMTQ4NywgMC4wMTE0OTksIDAuMDExNTAzLCAwLjAxMTUwNiwgMC4wMTE1MDgsIDAuMDExNTA4IiwgXAotICAgICAgICAgICIwLjAxMTM2MSwgMC4wMTE0NjcsIDAuMDExNDgxLCAwLjAxMTQ4NSwgMC4wMTE0ODcsIDAuMDExNDksIDAuMDExNDg5IiwgXAotICAgICAgICAgICIwLjAxMTM0OSwgMC4wMTE0NTUsIDAuMDExNDY5LCAwLjAxMTQ3MSwgMC4wMTE0NzUsIDAuMDExNDc4LCAwLjAxMTQ3OSIsIFwKLSAgICAgICAgICAiMC4wMTEzNCwgMC4wMTE0NDYsIDAuMDExNDYsIDAuMDExNDY0LCAwLjAxMTQ2NywgMC4wMTE0NjksIDAuMDExNDY5IiwgXAotICAgICAgICAgICIwLjAxMTMzNCwgMC4wMTE0NDEsIDAuMDExNDUzLCAwLjAxMTQ1OSwgMC4wMTE0NiwgMC4wMTE0NjIsIDAuMDExNDY0IiwgXAotICAgICAgICAgICIwLjAxMTMyNywgMC4wMTE0MzMsIDAuMDExNDQ3LCAwLjAxMTQ1LCAwLjAxMTQ1MywgMC4wMTE0NTUsIDAuMDExNDU2IiwgXAotICAgICAgICAgICIwLjAxMTMxOSwgMC4wMTE0MjYsIDAuMDExNDM5LCAwLjAxMTQ0NCwgMC4wMTE0NSwgMC4wMTE0NDgsIDAuMDExNDUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwODkzMywgMC4wMDkwOTIsIDAuMDA5MTE5LCAwLjAwOTEyNywgMC4wMDkxMzUsIDAuMDA5MTM5LCAwLjAwOTE0MiIsIFwKLSAgICAgICAgICAiMC4wMDg5MTMsIDAuMDA5MDczLCAwLjAwOTA5OSwgMC4wMDkxMDgsIDAuMDA5MTE1LCAwLjAwOTExOSwgMC4wMDkxMjIiLCBcCi0gICAgICAgICAgIjAuMDA4ODk5LCAwLjAwOTA1OSwgMC4wMDkwODYsIDAuMDA5MDk0LCAwLjAwOTEwMiwgMC4wMDkxMDUsIDAuMDA5MTA5IiwgXAotICAgICAgICAgICIwLjAwODg5LCAwLjAwOTA1LCAwLjAwOTA3NiwgMC4wMDkwODUsIDAuMDA5MDkyLCAwLjAwOTA5NiwgMC4wMDkwOTkiLCBcCi0gICAgICAgICAgIjAuMDA4ODgzLCAwLjAwOTA0MywgMC4wMDkwNjksIDAuMDA5MDc4LCAwLjAwOTA4NSwgMC4wMDkwODksIDAuMDA5MDkyIiwgXAotICAgICAgICAgICIwLjAwODg3NSwgMC4wMDkwMzQsIDAuMDA5MDYxLCAwLjAwOTA2OSwgMC4wMDkwNzYsIDAuMDA5MDgsIDAuMDA5MDg0IiwgXAotICAgICAgICAgICIwLjAwODg2OSwgMC4wMDkwMjgsIDAuMDA5MDU0LCAwLjAwOTA2MywgMC4wMDkwNywgMC4wMDkwNzQsIDAuMDA5MDc3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihSTikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNTQwOTg3OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDU0MDY0NDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA1NDA5ODc7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNTk0LCAwLjAwMDU4LCAwLjAwMDU3LCAwLjAwMDU2NSwgMC4wMDA1NjIsIDAuMDAwNTU5LCAwLjAwMDU1OCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjA0OCwgMC4wMDIwNCwgMC4wMDIwMzQsIDAuMDAyMDMsIDAuMDAyMDI4LCAwLjAwMjAyNywgMC4wMDIwMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUk4iOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFEJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgZmFsbF9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMzc1MTA0LCAwLjM4NjYyNSwgMC40MDE1MSwgMC40MTYzNjYsIDAuNDMwMzg3LCAwLjQ1MzExLCAwLjQ3MDgyOCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJlY292ZXJ5X3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiRCZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzFfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChyZWNvdmVyeV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMjUsIDAuMTA3NSwgMC4wOTUsIDAuMDc2MjUsIDAuMDU3NSwgMC4wMzUsIDAuMDEzNzUiLCBcCi0gICAgICAgICAgIjAuMTM2MjUsIDAuMTE4NzUsIDAuMTA2MjUsIDAuMDg3NSwgMC4wNjg3NSwgMC4wNDYyNSwgMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMTQ4NzUsIDAuMTM3NSwgMC4xMTg3NSwgMC4xMDYyNSwgMC4wODc1LCAwLjA1ODc1LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIjAuMTY3NSwgMC4xNSwgMC4xMzc1LCAwLjExODc1LCAwLjEsIDAuMDc3NSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiMC4xOCwgMC4xNjg3NSwgMC4xNSwgMC4xMzEyNSwgMC4xMTg3NSwgMC4wOSwgMC4wNjg3NSIsIFwKLSAgICAgICAgICAiMC4yMDI1LCAwLjE5MTI1LCAwLjE3ODc1LCAwLjE2LCAwLjE0MTI1LCAwLjExMjUsIDAuMDkxMjUiLCBcCi0gICAgICAgICAgIjAuMjIzNzUsIDAuMjEyNSwgMC4xOTM3NSwgMC4xNzUsIDAuMTYyNSwgMC4xMzM3NSwgMC4xMTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIHRpbWluZ190eXBlIDogcmVjb3ZlcnlfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRCI7Ci0gICAgICBzZGZfY29uZCA6ICJEID09IDEnYjAiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHJlY292ZXJ5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE4NzUsIDAuMTk4NzUsIDAuMjExMjUsIDAuMjMsIDAuMjQyNSwgMC4yNTg3NSwgMC4yOCIsIFwKLSAgICAgICAgICAiMC4xNzYyNSwgMC4xODc1LCAwLjIsIDAuMjE4NzUsIDAuMjMxMjUsIDAuMjQ3NSwgMC4yNjg3NSIsIFwKLSAgICAgICAgICAiMC4xNjM3NSwgMC4xNzUsIDAuMTg3NSwgMC4yMDYyNSwgMC4yMTg3NSwgMC4yMzUsIDAuMjU2MjUiLCBcCi0gICAgICAgICAgIjAuMTUxMjUsIDAuMTYyNSwgMC4xNzUsIDAuMTkzNzUsIDAuMjA2MjUsIDAuMjIyNSwgMC4yNDM3NSIsIFwKLSAgICAgICAgICAiMC4xMzg3NSwgMC4xNSwgMC4xNjg3NSwgMC4xODEyNSwgMC4xOTM3NSwgMC4yMTYyNSwgMC4yMzEyNSIsIFwKLSAgICAgICAgICAiMC4xMjg3NSwgMC4xNCwgMC4xNTI1LCAwLjE2NSwgMC4xNzc1LCAwLjIsIDAuMjE1IiwgXAotICAgICAgICAgICIwLjEyLCAwLjEzMTI1LCAwLjE0Mzc1LCAwLjE1NjI1LCAwLjE2ODc1LCAwLjE5MTI1LCAwLjIwNjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogcmVtb3ZhbF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIkQmU04iOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8xX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQocmVtb3ZhbF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDI1LCAtMC4wMTM3NSwgMC4wMDUsIDAuMDE3NSwgMC4wMywgMC4wNTg3NSwgMC4wOCIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAyNSwgLTAuMDA2MjUsIDAuMDA2MjUsIDAuMDE4NzUsIDAuMDQ3NSwgMC4wNjI1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDM3NSwgLTAuMDI1LCAtMC4wMDYyNSwgMC4wMDYyNSwgMC4wMjg3NSwgMC4wNSIsIFwKLSAgICAgICAgICAiLTAuMDY3NSwgLTAuMDU2MjUsIC0wLjAzNzUsIC0wLjAyNSwgLTAuMDEyNSwgMC4wMTYyNSwgMC4wMzc1IiwgXAotICAgICAgICAgICItMC4wOCwgLTAuMDY4NzUsIC0wLjA1NjI1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAwMjUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjEwODc1LCAtMC4wOTEyNSwgLTAuMDc4NzUsIC0wLjA2NjI1LCAtMC4wNDc1LCAtMC4wMjUsIC0wLjAwMzc1IiwgXAotICAgICAgICAgICItMC4xMjM3NSwgLTAuMTEyNSwgLTAuMSwgLTAuMDg3NSwgLTAuMDY4NzUsIC0wLjA0NjI1LCAtMC4wMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFNOKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE3NjU1MzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE3NjU1MzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE3NjQ3OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDQ4NSwgMC4wMDA0ODUsIDAuMDAwNDg0LCAwLjAwMDQ4NCwgMC4wMDA0ODQsIDAuMDAwNDg0LCAwLjAwMDQ4NCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDQ4NiwgMC4wMDA0ODYsIDAuMDAwNDg2LCAwLjAwMDQ4NiwgMC4wMDA0ODYsIDAuMDAwNDg3LCAwLjAwMDQ4NyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQmIVJOIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9STl9FUV8wID09IDEnYjEiOwotICAgICAgZmFsbF9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMjE2ODM2LCAwLjIyODQzNywgMC4yNDI0NzcsIDAuMjU1NDY1LCAwLjI2ODQ4NiwgMC4yOTE1OSwgMC4zMTE2ODIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiByZWNvdmVyeV9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEJlJOIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9STl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHJlY292ZXJ5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxODc1LCAwLjAwNzUsIC0wLjAxMTI1LCAtMC4wMywgLTAuMDQyNSwgLTAuMDcxMjUsIC0wLjA5MjUiLCBcCi0gICAgICAgICAgIjAuMDMsIDAuMDE4NzUsIDAsIC0wLjAxODc1LCAtMC4wMzEyNSwgLTAuMDYsIC0wLjA4MTI1IiwgXAotICAgICAgICAgICIwLjA0MjUsIDAuMDMxMjUsIDAuMDEyNSwgMCwgLTAuMDE4NzUsIC0wLjA0NzUsIC0wLjA2ODc1IiwgXAotICAgICAgICAgICIwLjA1NSwgMC4wNDM3NSwgMC4wMjUsIDAuMDEyNSwgLTAuMDA2MjUsIC0wLjAzNSwgLTAuMDU2MjUiLCBcCi0gICAgICAgICAgIjAuMDY3NSwgMC4wNTYyNSwgMC4wNDM3NSwgMC4wMjUsIDAuMDA2MjUsIC0wLjAxNjI1LCAtMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4wOSwgMC4wNzg3NSwgMC4wNiwgMC4wNDc1LCAwLjAyODc1LCAwLCAtMC4wMjEyNSIsIFwKLSAgICAgICAgICAiMC4xMTEyNSwgMC4xLCAwLjA4MTI1LCAwLjA2MjUsIDAuMDUsIDAuMDIxMjUsIDAiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiByZW1vdmFsX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUQmUk4iOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1JOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQocmVtb3ZhbF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODc1LCAwLjA5ODc1LCAwLjExMTI1LCAwLjEzLCAwLjE0MjUsIDAuMTY1LCAwLjE5MjUiLCBcCi0gICAgICAgICAgIjAuMDc2MjUsIDAuMDg3NSwgMC4xLCAwLjExODc1LCAwLjEzMTI1LCAwLjE2LCAwLjE4MTI1IiwgXAotICAgICAgICAgICIwLjA2Mzc1LCAwLjA3NSwgMC4wODc1LCAwLjEwNjI1LCAwLjExODc1LCAwLjE0MTI1LCAwLjE2MjUiLCBcCi0gICAgICAgICAgIjAuMDUxMjUsIDAuMDYyNSwgMC4wNzUsIDAuMDkzNzUsIDAuMTA2MjUsIDAuMTI4NzUsIDAuMTUiLCBcCi0gICAgICAgICAgIjAuMDMyNSwgMC4wNSwgMC4wNjI1LCAwLjA3NSwgMC4wOTM3NSwgMC4xMTYyNSwgMC4xMzc1IiwgXAotICAgICAgICAgICIwLjAxNjI1LCAwLjAyNzUsIDAuMDQsIDAuMDUyNSwgMC4wNzEyNSwgMC4wOTM3NSwgMC4xMTUiLCBcCi0gICAgICAgICAgIi0wLjAwNSwgMC4wMDYyNSwgMC4wMjUsIDAuMDM3NSwgMC4wNSwgMC4wNzg3NSwgMC4xIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogREZGU1JYMiAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChERkZTUlgyKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMzg1OTc4OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIGZmIChOMzUsUUJJTlQpIHsKLSAgICBuZXh0X3N0YXRlIDogIkQiOwotICAgIGNsb2NrZWRfb24gOiAiQ0siOwotICAgIGNsZWFyIDogIighUk4pIjsKLSAgICBwcmVzZXQgOiAiKCFTTikiOwotICAgIGNsZWFyX3ByZXNldF92YXIxIDogSDsKLSAgICBjbGVhcl9wcmVzZXRfdmFyMiA6IEw7Ci0gIH0KLSAgcGluKENLKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA1MTk3MDI7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNTE5NDI4OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDUxOTcwMjsKLSAgICBjbG9jayA6IHRydWU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyMjkxLCAwLjAwMjI4LCAwLjAwMjI3MSwgMC4wMDIyNjQsIDAuMDAyMjU5LCAwLjAwMjI1MywgMC4wMDIyNDgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDYzMjMsIDAuMDA2MzE1LCAwLjAwNjMwNSwgMC4wMDYyOTgsIDAuMDA2MjkxLCAwLjAwNjI4MywgMC4wMDYyODIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFEJlJOJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9STl9FUV8xX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4zODk0MzIsIDAuNDAxMzM4LCAwLjQxNjQ0MSwgMC40MzE4NzcsIDAuNDQ3MzQ1LCAwLjQ3MTc5NiwgMC40OTMxNjYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjI2NjY5OSwgMC4yNzgyMTEsIDAuMjkzMDk5LCAwLjMwNzk5LCAwLjMyMjg0NSwgMC4zNDYwMiwgMC4zNjYwMiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNTg0NTc7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNTgyOTU4OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDU4NDU3OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjQyNSwgMC4wMDI0MTMsIDAuMDAyNDA2LCAwLjAwMjQwMSwgMC4wMDIzOTcsIDAuMDAyMzkyLCAwLjAwMjM4OCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjUxNywgMC4wMDI1MTIsIDAuMDAyNTA4LCAwLjAwMjUwNCwgMC4wMDI1MDIsIDAuMDAyNDk3LCAwLjAwMjQ5NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJSTiZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJSTl9FUV8xX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDQzNzUsIC0wLjAzMjUsIC0wLjAyLCAtMC4wMTM3NSwgLTAuMDAxMjUsIDAuMDE1LCAwLjAzIiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA0Mzc1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMTI1LCAwLjAwMzc1LCAwLjAxODc1IiwgXAotICAgICAgICAgICItMC4wNjc1LCAtMC4wNjI1LCAtMC4wNSwgLTAuMDM3NSwgLTAuMDI1LCAtMC4wMDg3NSwgMCIsIFwKLSAgICAgICAgICAiLTAuMDg2MjUsIC0wLjA3NSwgLTAuMDYyNSwgLTAuMDUsIC0wLjAzNzUsIC0wLjAyMTI1LCAtMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wOTg3NSwgLTAuMDg3NSwgLTAuMDc1LCAtMC4wNjI1LCAtMC4wNSwgLTAuMDMzNzUsIC0wLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMTIxMjUsIC0wLjExLCAtMC4wOTc1LCAtMC4wODUsIC0wLjA3MjUsIC0wLjA1NjI1LCAtMC4wNDc1IiwgXAotICAgICAgICAgICItMC4xMzYyNSwgLTAuMTI1LCAtMC4xMTI1LCAtMC4xLCAtMC4wOTM3NSwgLTAuMDc3NSwgLTAuMDYyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDYyNSwgMC4wNzM3NSwgMC4wODYyNSwgMC4wOTg3NSwgMC4xMTc1LCAwLjE0LCAwLjE2MTI1IiwgXAotICAgICAgICAgICIwLjA0NSwgMC4wNjI1LCAwLjA3NSwgMC4wODc1LCAwLjEwNjI1LCAwLjEyODc1LCAwLjE1IiwgXAotICAgICAgICAgICIwLjAzMjUsIDAuMDQzNzUsIDAuMDYyNSwgMC4wNzUsIDAuMDg3NSwgMC4xMTYyNSwgMC4xMzc1IiwgXAotICAgICAgICAgICIwLjAyLCAwLjAzMTI1LCAwLjA1LCAwLjA2MjUsIDAuMDgxMjUsIDAuMTAzNzUsIDAuMTI1IiwgXAotICAgICAgICAgICIwLjAxMzc1LCAwLjAyNSwgMC4wMzc1LCAwLjA1LCAwLjA2ODc1LCAwLjA5MTI1LCAwLjExMjUiLCBcCi0gICAgICAgICAgIi0wLjAwMjUsIDAuMDA4NzUsIDAuMDIxMjUsIDAuMDQsIDAuMDUyNSwgMC4wNzUsIDAuMDk2MjUiLCBcCi0gICAgICAgICAgIi0wLjAxMTI1LCAwLCAwLjAxMjUsIDAuMDI1LCAwLjA0Mzc1LCAwLjA2NjI1LCAwLjA4NzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlJOJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIlJOX0VRXzFfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNTYyNSwgMC4xNDUsIDAuMTI2MjUsIDAuMTEzNzUsIDAuMDk1LCAwLjA3MjUsIDAuMDUxMjUiLCBcCi0gICAgICAgICAgIjAuMTczNzUsIDAuMTU2MjUsIDAuMTM3NSwgMC4xMjUsIDAuMTA2MjUsIDAuMDgzNzUsIDAuMDYyNSIsIFwKLSAgICAgICAgICAiMC4xODYyNSwgMC4xNzUsIDAuMTU2MjUsIDAuMTM3NSwgMC4xMTg3NSwgMC4wOTYyNSwgMC4wNzUiLCBcCi0gICAgICAgICAgIjAuMTk4NzUsIDAuMTg3NSwgMC4xNjg3NSwgMC4xNSwgMC4xMzEyNSwgMC4xMDg3NSwgMC4wOTM3NSIsIFwKLSAgICAgICAgICAiMC4yMTEyNSwgMC4yLCAwLjE4MTI1LCAwLjE2MjUsIDAuMTUsIDAuMTIxMjUsIDAuMTA2MjUiLCBcCi0gICAgICAgICAgIjAuMjMzNzUsIDAuMjIyNSwgMC4yMDM3NSwgMC4xODUsIDAuMTcyNSwgMC4xNDM3NSwgMC4xMjg3NSIsIFwKLSAgICAgICAgICAiMC4yNTUsIDAuMjM3NSwgMC4yMTg3NSwgMC4yMDYyNSwgMC4xODc1LCAwLjE2NSwgMC4xNDM3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExMjUsIDAuMTAxMjUsIDAuMDgyNSwgMC4wNywgMC4wNTEyNSwgMC4wMjI1LCAwLjAwMTI1IiwgXAotICAgICAgICAgICIwLjEyMzc1LCAwLjExMjUsIDAuMDkzNzUsIDAuMDgxMjUsIDAuMDYyNSwgMC4wMzM3NSwgMC4wMTI1IiwgXAotICAgICAgICAgICIwLjEzNjI1LCAwLjEyNSwgMC4xMDYyNSwgMC4wOTM3NSwgMC4wNzUsIDAuMDQ2MjUsIDAuMDI1IiwgXAotICAgICAgICAgICIwLjE0ODc1LCAwLjEzNzUsIDAuMTE4NzUsIDAuMTA2MjUsIDAuMDg3NSwgMC4wNTg3NSwgMC4wMzc1IiwgXAotICAgICAgICAgICIwLjE2MTI1LCAwLjE1LCAwLjEzMTI1LCAwLjExODc1LCAwLjEsIDAuMDcxMjUsIDAuMDUiLCBcCi0gICAgICAgICAgIjAuMTc3NSwgMC4xNjYyNSwgMC4xNTM3NSwgMC4xMzUsIDAuMTE2MjUsIDAuMDkzNzUsIDAuMDcyNSIsIFwKLSAgICAgICAgICAiMC4xOTg3NSwgMC4xODc1LCAwLjE2ODc1LCAwLjE1LCAwLjEzNzUsIDAuMTA4NzUsIDAuMDg3NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjI2NDg1OTsKLSAgICBmdW5jdGlvbiA6ICJOMzUiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5vbl91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcmlzaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMxNTA2MSwgMC40OTY4NDcsIDAuNjQxMjU1LCAwLjgyMTQzOSwgMS4wMDExOCwgMS4xODA0NywgMS4zNjEzNCIsIFwKLSAgICAgICAgICAiMC4zMjY5OTMsIDAuNTA4NTA2LCAwLjY1MjA3NCwgMC44MzEyNTcsIDEuMDEyNzUsIDEuMTkyMzksIDEuMzcxODEiLCBcCi0gICAgICAgICAgIjAuMzQyMDYyLCAwLjUyMzU5NCwgMC42NjcxNjIsIDAuODQ3Mjg0LCAxLjAyNzM5LCAxLjIwNzExLCAxLjM4NzA2IiwgXAotICAgICAgICAgICIwLjM1NzQxNSwgMC41MzkwMDcsIDAuNjgyNTIsIDAuODYzNzkxLCAxLjA0MzQxLCAxLjIyMjg5LCAxLjQwMjk5IiwgXAotICAgICAgICAgICIwLjM3MjgwOCwgMC41NTQ2NzUsIDAuNjk5MDc5LCAwLjg3OTE0NCwgMS4wNTkwNiwgMS4yMzgyMywgMS40MTczMSIsIFwKLSAgICAgICAgICAiMC4zOTcwMzUsIDAuNTc4ODI5LCAwLjcyMjE2MywgMC45MDM1NDksIDEuMDgyODksIDEuMjYyNjcsIDEuNDQyMDEiLCBcCi0gICAgICAgICAgIjAuNDE4MDk0LCAwLjU5OTcyOSwgMC43NDMyNjksIDAuOTI0MDY4LCAxLjEwMzk1LCAxLjI4Mjk3LCAxLjQ2Mjk0Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5Nzg2NiwgMC40NTY3NjQsIDAuNzQ4Njg1LCAxLjExNjksIDEuNDg0MTEsIDEuODU0MDcsIDIuMjE1MDgiLCBcCi0gICAgICAgICAgIjAuMDk4MzUzLCAwLjQ1ODI0NSwgMC43NTMxNTYsIDEuMTIzMjIsIDEuNDg0MzUsIDEuODU0NjUsIDIuMjIzNzgiLCBcCi0gICAgICAgICAgIjAuMDk4MzE4LCAwLjQ1NTA2MywgMC43NTMxNDgsIDEuMTE2MTEsIDEuNDc4MDcsIDEuODQxMDMsIDIuMjIzODkiLCBcCi0gICAgICAgICAgIjAuMDk3OTExLCAwLjQ1NTA2OSwgMC43NTMxMjEsIDEuMTE2MzIsIDEuNDg0MjksIDEuODU0MjcsIDIuMjI1NjUiLCBcCi0gICAgICAgICAgIjAuMDk3ODY2LCAwLjQ1Njc4NSwgMC43NTAwMjksIDEuMTIwMzUsIDEuNDcxOCwgMS44NTQyNSwgMi4yMzE5MSIsIFwKLSAgICAgICAgICAiMC4wOTgxNywgMC40NTc0MDEsIDAuNzUzMTQxLCAxLjEwNTQ2LCAxLjQ4NDM5LCAxLjg1NDMsIDIuMjIzNyIsIFwKLSAgICAgICAgICAiMC4wOTgwMTcsIDAuNDU4MDczLCAwLjc1MzE1OCwgMS4xMDk1NCwgMS40ODQ0LCAxLjg1NDc1LCAyLjIyMzg1Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjM0NDMxMywgMC41NTI5NTQsIDAuNzE3Nzg0LCAwLjkyNTk2NCwgMS4xMzM2MywgMS4zNDEyNCwgMS41NDQwNCIsIFwKLSAgICAgICAgICAiMC4zNTYyNzUsIDAuNTY0ODI3LCAwLjcyOTczOSwgMC45MzY2NTEsIDEuMTQ0MjksIDEuMzUzMiwgMS41NTcyNyIsIFwKLSAgICAgICAgICAiMC4zNzEzMjIsIDAuNTc5NTY1LCAwLjc0NDkyOCwgMC45NTI5OTEsIDEuMTYwNjYsIDEuMzY4MjgsIDEuNTc1ODUiLCBcCi0gICAgICAgICAgIjAuMzg2ODIxLCAwLjU5NTE5MiwgMC43NjA1NDcsIDAuOTY4NDQsIDEuMTc2MTEsIDEuMzgzNzMsIDEuNTkxMyIsIFwKLSAgICAgICAgICAiMC40MDIyMjMsIDAuNjEwNDgxLCAwLjc3NTY5MSwgMC45ODM4ODksIDEuMTkxNTcsIDEuMzk1MzQsIDEuNjA2NzQiLCBcCi0gICAgICAgICAgIjAuNDI2NzMyLCAwLjYzNTI4LCAwLjgwMDIwOSwgMS4wMDgzOSwgMS4yMTYwNSwgMS40MjM2NiwgMS42MjY0MyIsIFwKLSAgICAgICAgICAiMC40NDgwNDEsIDAuNjU2MjU1LCAwLjgyMTYyNSwgMS4wMjk3LCAxLjIzNzM3LCAxLjQ0NDk5LCAxLjY1MjU1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwNDg2NSwgMC41MDcxNTIsIDAuODM0ODExLCAxLjI0NzQsIDEuNjU3ODgsIDIuMDY5NTYsIDIuNDc4NTUiLCBcCi0gICAgICAgICAgIjAuMTA1MzU4LCAwLjUwODI0LCAwLjgzNTcxMiwgMS4yNDY1MywgMS42NTc2NCwgMi4wNzA2NCwgMi40ODM2OSIsIFwKLSAgICAgICAgICAiMC4xMDQ5ODgsIDAuNTA3NDQ2LCAwLjgzNjg1NywgMS4yNDg1MSwgMS42NTk3NCwgMi4wNzA1MiwgMi40ODEyOSIsIFwKLSAgICAgICAgICAiMC4xMDU1MTQsIDAuNTA3OTY5LCAwLjgzNjYyOCwgMS4yNDg1MSwgMS42NTk3MywgMi4wNzA1MiwgMi40ODEzMiIsIFwKLSAgICAgICAgICAiMC4xMDUwOTQsIDAuNTA3NDIyLCAwLjgzNTI2NiwgMS4yNDg1MiwgMS42NTk2OCwgMi4wNzM1OCwgMi40ODE0MiIsIFwKLSAgICAgICAgICAiMC4xMDQ4NDIsIDAuNTA4MjQxLCAwLjgzNTU0MSwgMS4yNDg1LCAxLjY1OTY5LCAyLjA3MDUzLCAyLjQ4MDQ3IiwgXAotICAgICAgICAgICIwLjEwNDk1MSwgMC41MDc0OCwgMC44MzY3OTUsIDEuMjQ4NTEsIDEuNjU5NzUsIDIuMDcwNTQsIDIuNDgxMyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogY2xlYXI7Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjQzMjc4OSwgMC42NDExODUsIDAuODA2MTE3LCAxLjAxNDExLCAxLjIyMTc1LCAxLjQyNTgsIDEuNjM2NjUiLCBcCi0gICAgICAgICAgIjAuNDQ0MTg4LCAwLjY1MjQyNiwgMC44MTc0ODcsIDEuMDI1NTEsIDEuMjMzMTUsIDEuNDM2OTUsIDEuNjQ4MDUiLCBcCi0gICAgICAgICAgIjAuNDU5MTQzLCAwLjY2NzQ3NSwgMC44MzIzNjksIDEuMDQwNDgsIDEuMjQ4MTIsIDEuNDU1NjgsIDEuNjYyOTYiLCBcCi0gICAgICAgICAgIjAuNDc0MDU0LCAwLjY4MjQxNSwgMC44NDc1NzgsIDEuMDU1MzksIDEuMjYzMDMsIDEuNDY4NjksIDEuNjc3OSIsIFwKLSAgICAgICAgICAiMC40ODgzODksIDAuNjk2NDksIDAuODYxNjQ0LCAxLjA2OTcyLCAxLjI3NzM2LCAxLjQ4MTE4LCAxLjY5MjI1IiwgXAotICAgICAgICAgICIwLjUxMTMyMywgMC43MTk0MjMsIDAuODg0ODM3LCAxLjA5MjY3LCAxLjMwMDMsIDEuNTA3NzYsIDEuNzE1MTgiLCBcCi0gICAgICAgICAgIjAuNTMwNDk5LCAwLjczODcyNywgMC45MDM3NTYsIDEuMTExODQsIDEuMzE5NDgsIDEuNTI2ODEsIDEuNzM0MzIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTA1MTcxLCAwLjUwNzI1NSwgMC44MzY4MjEsIDEuMjQ5MzYsIDEuNjU5ODUsIDIuMDcyNTEsIDIuNDgzNjIiLCBcCi0gICAgICAgICAgIjAuMTA1MTc1LCAwLjUwODAwOCwgMC44MzU1MDksIDEuMjQ5MjksIDEuNjU5ODUsIDIuMDcyNTEsIDIuNDg0MzkiLCBcCi0gICAgICAgICAgIjAuMTA1MDQ3LCAwLjUwODI0LCAwLjgzNjAxMiwgMS4yNDg1NiwgMS42NjAxOCwgMi4wNzI0NywgMi40ODIzMSIsIFwKLSAgICAgICAgICAiMC4xMDU1ODEsIDAuNTA4MjM3LCAwLjgzNzA0NCwgMS4yNDg2MiwgMS42NjAyLCAyLjA3MjYyLCAyLjQ4MzY2IiwgXAotICAgICAgICAgICIwLjEwNTY4MiwgMC41MDgyMzYsIDAuODM2NzEzLCAxLjI0ODYyLCAxLjY2MDIsIDIuMDcyNjEsIDIuNDg1MDEiLCBcCi0gICAgICAgICAgIjAuMTA1NDQyLCAwLjUwODIxOCwgMC44MzcxMTQsIDEuMjQ4NjIsIDEuNjYwNTgsIDIuMDcyNSwgMi40ODU3NyIsIFwKLSAgICAgICAgICAiMC4xMDUzNTgsIDAuNTA4MjMzLCAwLjgzNjcyOCwgMS4yNDg2MSwgMS42NjA0OSwgMi4wNzIzOSwgMi40ODU1NiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcHJlc2V0OwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yNjM1NTgsIDAuNDQ0OTY0LCAwLjU4OTg2NSwgMC43NjkyNjYsIDAuOTQ4Mzg0LCAxLjEyODEzLCAxLjMwNzQiLCBcCi0gICAgICAgICAgIjAuMjc1MTg1LCAwLjQ1NjU4MSwgMC42MDA0MzIsIDAuNzgwNTcxLCAwLjk2MTA3LCAxLjEzODg2LCAxLjMxOTc4IiwgXAotICAgICAgICAgICIwLjI4OTgzOSwgMC40NzEyNDQsIDAuNjE2MTQ0LCAwLjc5NTQxMiwgMC45NzQ2OTQsIDEuMTU0NTEsIDEuMzMzNzEiLCBcCi0gICAgICAgICAgIjAuMzAzODM0LCAwLjQ4NTIzNiwgMC42MzAyMDEsIDAuODA4OTMxLCAwLjk4Nzk0NiwgMS4xNjgxLCAxLjM0Nzc1IiwgXAotICAgICAgICAgICIwLjMxNzI0NCwgMC40OTg5MjQsIDAuNjQzMTc0LCAwLjgyMjM3LCAxLjAwMTM2LCAxLjE4MTE4LCAxLjM2MTAyIiwgXAotICAgICAgICAgICIwLjMzNzY2MiwgMC41MTkzNDEsIDAuNjYzNjYzLCAwLjg0MzY2NCwgMS4wMjE4NywgMS4yMDE3MSwgMS4zODE4IiwgXAotICAgICAgICAgICIwLjM1NTQyMywgMC41MzcwMzEsIDAuNjgxMTE1LCAwLjg2MDQ3MiwgMS4wNDAwNSwgMS4yMTk0LCAxLjM5OTE4Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5NjM3OSwgMC40NTU4NywgMC43NTIxMDUsIDEuMTIxMzUsIDEuNDkzMDksIDEuODYyNDcsIDIuMjMxNzYiLCBcCi0gICAgICAgICAgIjAuMDk2MzUyLCAwLjQ1NTg2NywgMC43NTIxOSwgMS4xMjEyMywgMS40OTMxMiwgMS44NjI0OCwgMi4yMzE4IiwgXAotICAgICAgICAgICIwLjA5NjM0NywgMC40NTU5NDMsIDAuNzUyMjE2LCAxLjEyMzI5LCAxLjQ5MzEsIDEuODYyNDksIDIuMjMxNjciLCBcCi0gICAgICAgICAgIjAuMDk2MzcsIDAuNDU3ODM4LCAwLjc1MzE4LCAxLjEyMDIsIDEuNDkzMDcsIDEuODYyNDgsIDIuMjMxODQiLCBcCi0gICAgICAgICAgIjAuMDk2MzIsIDAuNDU3ODc3LCAwLjc1Mjk4MiwgMS4xMjMzNiwgMS40OTMwNSwgMS44NjI0OSwgMi4yMzE4NiIsIFwKLSAgICAgICAgICAiMC4wOTYzMjMsIDAuNDU3NzgzLCAwLjc1MTczLCAxLjEyMzI3LCAxLjQ5MzA0LCAxLjg2MjQ5LCAyLjIzMTg4IiwgXAotICAgICAgICAgICIwLjA5NjI5LCAwLjQ1Nzg5MiwgMC43NTI2MDYsIDEuMTE5MjIsIDEuNDkzMDQsIDEuODYyNDcsIDIuMjMxODgiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzg4NjEyLCAwLjU5Njk3MiwgMC43NjE5MjUsIDAuOTcwMDkyLCAxLjE3Nzc3LCAxLjM4NTM2LCAxLjU5MjY2IiwgXAotICAgICAgICAgICIwLjQwMDY1MywgMC42MDkwMTgsIDAuNzczOTcxLCAwLjk4MjEyNywgMS4xODc4NywgMS4zOTc0MSwgMS42MDQ2OSIsIFwKLSAgICAgICAgICAiMC40MTU0NzIsIDAuNjIzNjk0LCAwLjc4ODc1MSwgMC45OTY5MzUsIDEuMjA0NiwgMS40MTIxMSwgMS42MTk1NCIsIFwKLSAgICAgICAgICAiMC40Mjk2MzYsIDAuNjM3OTA4LCAwLjgwMywgMS4wMTExMSwgMS4yMTg3OSwgMS40MjI1NSwgMS42MzM3MiIsIFwKLSAgICAgICAgICAiMC40NDM1MTEsIDAuNjUxOTAyLCAwLjgxNjgwNCwgMS4wMjQ5OSwgMS4yMzI2NSwgMS40NDAxNiwgMS42NDc1OSIsIFwKLSAgICAgICAgICAiMC40NjUzMzksIDAuNjczNDM3LCAwLjgzODkzNSwgMS4wNDY4MiwgMS4yNTQ0OSwgMS40NjE5OCwgMS42Njk0MiIsIFwKLSAgICAgICAgICAiMC40ODQ1NiwgMC42OTI5NDUsIDAuODU3ODU2LCAxLjA2NjA3LCAxLjI3MDk1LCAxLjQ4MTI4LCAxLjY4NTU1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwNTU5NywgMC41MDgxMTksIDAuODM1NTQ1LCAxLjI0ODQ0LCAxLjY2MDE4LCAyLjA3MTkyLCAyLjQ4NCIsIFwKLSAgICAgICAgICAiMC4xMDU4MjksIDAuNTA4MSwgMC44MzU2NzcsIDEuMjQ4NjEsIDEuNjYwNTQsIDIuMDcyNDMsIDIuNDg0NCIsIFwKLSAgICAgICAgICAiMC4xMDUxNjcsIDAuNTA4MDY3LCAwLjgzNTQwMywgMS4yNDg2LCAxLjY2MDU2LCAyLjA3MjUyLCAyLjQ4MzU1IiwgXAotICAgICAgICAgICIwLjEwNTQ1OSwgMC41MDgwMDIsIDAuODM2Mzk3LCAxLjI0ODYxLCAxLjY2MjQ3LCAyLjA3MjQ1LCAyLjQ4NTU2IiwgXAotICAgICAgICAgICIwLjEwNTE3NiwgMC41MDgxNzMsIDAuODM1NTQyLCAxLjI0ODYsIDEuNjYwNjksIDIuMDcyNDksIDIuNDgyMjUiLCBcCi0gICAgICAgICAgIjAuMTA1ODAxLCAwLjUwNzY3MiwgMC44MzY4MjYsIDEuMjQ4NjIsIDEuNjYwNjMsIDIuMDcyNTMsIDIuNDg0MTMiLCBcCi0gICAgICAgICAgIjAuMTA2MDYsIDAuNTA4MTMsIDAuODM2NDkyLCAxLjI0ODYxLCAxLjY2MTIxLCAyLjA3MjQ4LCAyLjQ4NDUzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDU2OCwgMC4wMDQ2MTMsIDAuMDA0NjE5LCAwLjAwNDYyMSwgMC4wMDQ2MjMsIDAuMDA0NjI0LCAwLjAwNDYyNiIsIFwKLSAgICAgICAgICAiMC4wMDQ1NjMsIDAuMDA0NjA4LCAwLjAwNDYxNCwgMC4wMDQ2MTYsIDAuMDA0NjE4LCAwLjAwNDYxOSwgMC4wMDQ2MTkiLCBcCi0gICAgICAgICAgIjAuMDA0NTU4LCAwLjAwNDYwMywgMC4wMDQ2MDgsIDAuMDA0NjEyLCAwLjAwNDYxMiwgMC4wMDQ2MTQsIDAuMDA0NjE0IiwgXAotICAgICAgICAgICIwLjAwNDU1MywgMC4wMDQ1OTgsIDAuMDA0NjA0LCAwLjAwNDYwNywgMC4wMDQ2MDgsIDAuMDA0NjA5LCAwLjAwNDYxIiwgXAotICAgICAgICAgICIwLjAwNDU1LCAwLjAwNDU5NSwgMC4wMDQ2MDEsIDAuMDA0NjAzLCAwLjAwNDYwNSwgMC4wMDQ2MDYsIDAuMDA0NjA3IiwgXAotICAgICAgICAgICIwLjAwNDU0NiwgMC4wMDQ1OSwgMC4wMDQ1OTYsIDAuMDA0NTk5LCAwLjAwNDYsIDAuMDA0NjAxLCAwLjAwNDYwMSIsIFwKLSAgICAgICAgICAiMC4wMDQ1NDMsIDAuMDA0NTg4LCAwLjAwNDU5MywgMC4wMDQ1OTYsIDAuMDA0NTk3LCAwLjAwNDU5OCwgMC4wMDQ1OTgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQzNzksIDAuMDA0NDIyLCAwLjAwNDQyNiwgMC4wMDQ0MjgsIDAuMDA0NDMxLCAwLjAwNDQzMiwgMC4wMDQ0MzIiLCBcCi0gICAgICAgICAgIjAuMDA0Mzc1LCAwLjAwNDQxNywgMC4wMDQ0MjMsIDAuMDA0NDI1LCAwLjAwNDQyNiwgMC4wMDQ0MjcsIDAuMDA0NDI4IiwgXAotICAgICAgICAgICIwLjAwNDM3LCAwLjAwNDQxMiwgMC4wMDQ0MTcsIDAuMDA0NDIsIDAuMDA0NDIxLCAwLjAwNDQyMiwgMC4wMDQ0MjIiLCBcCi0gICAgICAgICAgIjAuMDA0MzY2LCAwLjAwNDQwOCwgMC4wMDQ0MTQsIDAuMDA0NDE2LCAwLjAwNDQxNywgMC4wMDQ0MTksIDAuMDA0NDE5IiwgXAotICAgICAgICAgICIwLjAwNDM2MywgMC4wMDQ0MDYsIDAuMDA0NDExLCAwLjAwNDQxMywgMC4wMDQ0MTQsIDAuMDA0NDE2LCAwLjAwNDQxNiIsIFwKLSAgICAgICAgICAiMC4wMDQzNiwgMC4wMDQ0MDMsIDAuMDA0NDA4LCAwLjAwNDQxMiwgMC4wMDQ0MTMsIDAuMDA0NDEzLCAwLjAwNDQxNCIsIFwKLSAgICAgICAgICAiMC4wMDQzNjMsIDAuMDA0NDA1LCAwLjAwNDQxLCAwLjAwNDQxMiwgMC4wMDQ0MTQsIDAuMDA0NDE2LCAwLjAwNDQxNSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDU3MjYsIDAuMDA1NzY3LCAwLjAwNTc2OSwgMC4wMDU3NjksIDAuMDA1NzY4LCAwLjAwNTc2NSwgMC4wMDU3NjQiLCBcCi0gICAgICAgICAgIjAuMDA1NzIyLCAwLjAwNTc2MywgMC4wMDU3NjYsIDAuMDA1NzYzLCAwLjAwNTc2MiwgMC4wMDU3NjEsIDAuMDA1NzYxIiwgXAotICAgICAgICAgICIwLjAwNTcxOCwgMC4wMDU3NTksIDAuMDA1NzYyLCAwLjAwNTc2LCAwLjAwNTc1OSwgMC4wMDU3NTgsIDAuMDA1NzU1IiwgXAotICAgICAgICAgICIwLjAwNTcxNiwgMC4wMDU3NTcsIDAuMDA1NzU5LCAwLjAwNTc1OCwgMC4wMDU3NTgsIDAuMDA1NzU1LCAwLjAwNTc1NSIsIFwKLSAgICAgICAgICAiMC4wMDU3MTMsIDAuMDA1NzU0LCAwLjAwNTc1NywgMC4wMDU3NTYsIDAuMDA1NzUzLCAwLjAwNTc1MiwgMC4wMDU3NTIiLCBcCi0gICAgICAgICAgIjAuMDA1NzExLCAwLjAwNTc1MywgMC4wMDU3NTQsIDAuMDA1NzUzLCAwLjAwNTc1MiwgMC4wMDU3NTEsIDAuMDA1NzUxIiwgXAotICAgICAgICAgICIwLjAwNTcxLCAwLjAwNTc1MSwgMC4wMDU3NTMsIDAuMDA1NzU0LCAwLjAwNTc1MSwgMC4wMDU3NTEsIDAuMDA1NzQ4Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3Bvd2VyKHNjYWxhcikgewotICAgICAgICB2YWx1ZXMoIjAiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1MTk2LCAwLjAwNTIzOCwgMC4wMDUyNDEsIDAuMDA1MjQ0LCAwLjAwNTI0NSwgMC4wMDUyNDUsIDAuMDA1MjQ2IiwgXAotICAgICAgICAgICIwLjAwNTE5LCAwLjAwNTIzMSwgMC4wMDUyMzUsIDAuMDA1MjM3LCAwLjAwNTIzOCwgMC4wMDUyMzksIDAuMDA1MjM5IiwgXAotICAgICAgICAgICIwLjAwNTE4NiwgMC4wMDUyMjcsIDAuMDA1MjMxLCAwLjAwNTIzNCwgMC4wMDUyMzQsIDAuMDA1MjM1LCAwLjAwNTIzNSIsIFwKLSAgICAgICAgICAiMC4wMDUxODMsIDAuMDA1MjI0LCAwLjAwNTIyOCwgMC4wMDUyMzEsIDAuMDA1MjMxLCAwLjAwNTIzMiwgMC4wMDUyMzQiLCBcCi0gICAgICAgICAgIjAuMDA1MTgxLCAwLjAwNTIyMiwgMC4wMDUyMjcsIDAuMDA1MjI5LCAwLjAwNTIyOSwgMC4wMDUyMywgMC4wMDUyMzIiLCBcCi0gICAgICAgICAgIjAuMDA1MTc4LCAwLjAwNTIyLCAwLjAwNTIyNCwgMC4wMDUyMjYsIDAuMDA1MjI3LCAwLjAwNTIyNywgMC4wMDUyMjkiLCBcCi0gICAgICAgICAgIjAuMDA1MTc2LCAwLjAwNTIxNywgMC4wMDUyMjEsIDAuMDA1MjIzLCAwLjAwNTIyNSwgMC4wMDUyMjUsIDAuMDA1MjI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0Mjk4LCAwLjAwNDM0MiwgMC4wMDQzNDcsIDAuMDA0MzUsIDAuMDA0MzUxLCAwLjAwNDM1NCwgMC4wMDQzNTIiLCBcCi0gICAgICAgICAgIjAuMDA0MjkyLCAwLjAwNDMzNiwgMC4wMDQzNDEsIDAuMDA0MzQ1LCAwLjAwNDM0NSwgMC4wMDQzNDYsIDAuMDA0MzQ2IiwgXAotICAgICAgICAgICIwLjAwNDI4OCwgMC4wMDQzMzEsIDAuMDA0MzM3LCAwLjAwNDM0MSwgMC4wMDQzNDEsIDAuMDA0MzQyLCAwLjAwNDM0NCIsIFwKLSAgICAgICAgICAiMC4wMDQyODQsIDAuMDA0MzI4LCAwLjAwNDMzMywgMC4wMDQzMzgsIDAuMDA0MzM4LCAwLjAwNDMzOCwgMC4wMDQzMzkiLCBcCi0gICAgICAgICAgIjAuMDA0MjgxLCAwLjAwNDMyNSwgMC4wMDQzMjksIDAuMDA0MzM1LCAwLjAwNDMzNywgMC4wMDQzMzYsIDAuMDA0MzM3IiwgXAotICAgICAgICAgICIwLjAwNDI3OSwgMC4wMDQzMjIsIDAuMDA0MzI4LCAwLjAwNDMzMiwgMC4wMDQzMzIsIDAuMDA0MzMzLCAwLjAwNDMzNSIsIFwKLSAgICAgICAgICAiMC4wMDQyNzcsIDAuMDA0MzIsIDAuMDA0MzI2LCAwLjAwNDMyOSwgMC4wMDQzMywgMC4wMDQzMzEsIDAuMDA0MzMxIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihRTikgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjI1NjU3MTsKLSAgICBmdW5jdGlvbiA6ICJRQklOVCI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3NlbnNlIDogbm9uX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiByaXNpbmdfZWRnZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzg5NDMyLCAwLjU2ODIzNywgMC43MTE2MjksIDAuODkwOTg3LCAxLjA3MDMyLCAxLjI0OTcxLCAxLjQyOTMyIiwgXAotICAgICAgICAgICIwLjQwMTMzOCwgMC41ODAxNzcsIDAuNzIzNjA0LCAwLjkwMjkxMywgMS4wODIyNiwgMS4yNjE2NiwgMS40NDEwNCIsIFwKLSAgICAgICAgICAiMC40MTY0NDEsIDAuNTk1MjE2LCAwLjczODYzNCwgMC45MTgwMDEsIDEuMDk3MzQsIDEuMjc2NzQsIDEuNDU2MTEiLCBcCi0gICAgICAgICAgIjAuNDMxODc3LCAwLjYxMDY1NSwgMC43NTQwOCwgMC45MzM0NDYsIDEuMTEyNzksIDEuMjkyMTksIDEuNDcxNTYiLCBcCi0gICAgICAgICAgIjAuNDQ3MzQ1LCAwLjYyNjEyNywgMC43Njk1OTcsIDAuOTQ4ODksIDEuMTI4MjYsIDEuMzA3ODEsIDEuNDg3IiwgXAotICAgICAgICAgICIwLjQ3MTc5NiwgMC42NTA2MywgMC43OTQwNDksIDAuOTczNDE0LCAxLjE1Mjc1LCAxLjMzMjEzLCAxLjUxMTczIiwgXAotICAgICAgICAgICIwLjQ5MzE2NiwgMC42NzE5NDQsIDAuODE1MzYxLCAwLjk5NDcyNSwgMS4xNzQwNiwgMS4zNTM0NiwgMS41MzI4NCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTEyMTQsIDAuNDUwNzM4LCAwLjc0MjM4MywgMS4xMTAwMSwgMS40NzU1NCwgMS44NDEyNiwgMi4yMDEwNSIsIFwKLSAgICAgICAgICAiMC4wOTExMzgsIDAuNDUyMDMyLCAwLjc0MjU4NiwgMS4xMDc5NCwgMS40NzUxOCwgMS44NDExNywgMi4yMDI3NyIsIFwKLSAgICAgICAgICAiMC4wOTEyMDUsIDAuNDUxMTQ0LCAwLjc0NDExMywgMS4xMDk5NSwgMS40NzU0OSwgMS44NDEyNywgMi4yMDY5MSIsIFwKLSAgICAgICAgICAiMC4wOTExNTksIDAuNDUxODQsIDAuNzQ0MTcxLCAxLjEwOTkzLCAxLjQ3NTUsIDEuODQxMjcsIDIuMjA2OSIsIFwKLSAgICAgICAgICAiMC4wOTEyMTEsIDAuNDUxMTk2LCAwLjc0MjMwMSwgMS4xMDk4OCwgMS40NzU1NiwgMS44MzYwMywgMi4yMDY4NCIsIFwKLSAgICAgICAgICAiMC4wOTExNzgsIDAuNDUyMDI5LCAwLjc0MjQxLCAxLjExMDAzLCAxLjQ3NTU1LCAxLjg0MTI1LCAyLjIwMTE5IiwgXAotICAgICAgICAgICIwLjA5MTIwMiwgMC40NTExNjMsIDAuNzQzNzY0LCAxLjEwOTk0LCAxLjQ3NTQ4LCAxLjg0MTI1LCAyLjIwNjkiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzY3MDA4LCAwLjU3MzA4NSwgMC43MzgyOCwgMC45NDQ4NTQsIDEuMTUxNDUsIDEuMzU3OTgsIDEuNTY0NTkiLCBcCi0gICAgICAgICAgIjAuMzc4OTU2LCAwLjU4NDk5LCAwLjc1MDE4MSwgMC45NTY2MjIsIDEuMTYzMzQsIDEuMzY5ODksIDEuNTc2NDEiLCBcCi0gICAgICAgICAgIjAuMzk0MDIzLCAwLjYwMDA2MywgMC43NjUyNDksIDAuOTcxODEzLCAxLjE3ODM2LCAxLjM4NDk1LCAxLjU5MTUiLCBcCi0gICAgICAgICAgIjAuNDA5MzkxLCAwLjYxNTQxOCwgMC43ODA2MSwgMC45ODcxOTQsIDEuMTkzNzgsIDEuNDAwMzIsIDEuNjA2ODkiLCBcCi0gICAgICAgICAgIjAuNDI0NzU4LCAwLjYzMDgxOCwgMC43OTYwNSwgMS4wMDI2LCAxLjIwOTIsIDEuNDE1NzMsIDEuNjIyMjQiLCBcCi0gICAgICAgICAgIjAuNDQ5MDA1LCAwLjY1NTA0LCAwLjgyMDMzNSwgMS4wMjY5MywgMS4yMzM0OCwgMS40NDAwNSwgMS42NDY1NyIsIFwKLSAgICAgICAgICAiMC40NzAwNjQsIDAuNjc2MjE0LCAwLjg0MTQwNiwgMS4wNDc5NSwgMS4yNTQ1NiwgMS40NjEwNiwgMS42Njc2MyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTk5OTYsIDAuNTA3MjcsIDAuODM1ODgzLCAxLjI0Njc0LCAxLjY1OTEyLCAyLjA3MDI0LCAyLjQ3OTY0IiwgXAotICAgICAgICAgICIwLjEwMDAxLCAwLjUwNzMwMywgMC44MzYwMTgsIDEuMjQ3MDksIDEuNjU5MDQsIDIuMDcwMTgsIDIuNDgxMzUiLCBcCi0gICAgICAgICAgIjAuMSwgMC41MDY5MzksIDAuODM2MDE2LCAxLjI0NzU3LCAxLjY1Nzk2LCAyLjA2OTAyLCAyLjQ4MTM3IiwgXAotICAgICAgICAgICIwLjA5OTk2NSwgMC41MDcwMjQsIDAuODM2MDE1LCAxLjI0NjczLCAxLjY1OSwgMi4wNzAxMywgMi40Nzg4MSIsIFwKLSAgICAgICAgICAiMC4wOTk5OTIsIDAuNTA3MjU1LCAwLjgzNTc5NiwgMS4yNDY4NCwgMS42NTcyMiwgMi4wNzAyMiwgMi40ODA2MyIsIFwKLSAgICAgICAgICAiMC4wOTk5ODQsIDAuNTA3Mjc0LCAwLjgzNjAxOCwgMS4yNDY0NiwgMS42NTg5NiwgMi4wNzAyNCwgMi40ODEzNyIsIFwKLSAgICAgICAgICAiMC4wOTk5ODMsIDAuNTA3MzA2LCAwLjgzNjAyLCAxLjI0Njc5LCAxLjY1OTAzLCAyLjA3MDA1LCAyLjQ4MTMyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiBwcmVzZXQ7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjQ3NzczNSwgMC42NTY2NDMsIDAuODAwMDI5LCAwLjk3OTM3NywgMS4xNTg3MywgMS4zMzgxNCwgMS41MTc0MyIsIFwKLSAgICAgICAgICAiMC40ODkxMzYsIDAuNjY4MDA4LCAwLjgxMTQzMiwgMC45OTA3NzYsIDEuMTcwMTMsIDEuMzQ5NTUsIDEuNTI4ODMiLCBcCi0gICAgICAgICAgIjAuNTA0MTU4LCAwLjY4Mjk1NiwgMC44MjYzODQsIDEuMDA1NzEsIDEuMTg1MDcsIDEuMzY0NDgsIDEuNTQzNzgiLCBcCi0gICAgICAgICAgIjAuNTE4OTk1LCAwLjY5NzkwMywgMC44NDEzMzEsIDEuMDIwNjUsIDEuMiwgMS4zNzkzNiwgMS41NTg3MSIsIFwKLSAgICAgICAgICAiMC41MzMzMzksIDAuNzEyMTcxLCAwLjg1NTY1LCAxLjAzNDk4LCAxLjIxNDMzLCAxLjM5Mzg5LCAxLjU3MzA0IiwgXAotICAgICAgICAgICIwLjU1NjI4OCwgMC43MzUxMTQsIDAuODc4NTgxLCAxLjA1NzkyLCAxLjIzNzI2LCAxLjQxNjY0LCAxLjU5NTk4IiwgXAotICAgICAgICAgICIwLjU3NTQ0OCwgMC43NTQzMjgsIDAuODk3NzcsIDEuMDc3MSwgMS4yNTY0NSwgMS40MzU4NCwgMS42MTUxNiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTEyNzQsIDAuNDUwOTgxLCAwLjc0NDI5MiwgMS4xMDk5OSwgMS40NzU2OCwgMS44NDExLCAyLjIwNjY1IiwgXAotICAgICAgICAgICIwLjA5MTI3NCwgMC40NTE5NjUsIDAuNzQyODk2LCAxLjEwOTk5LCAxLjQ3NTY4LCAxLjg0MTA5LCAyLjIwNjY1IiwgXAotICAgICAgICAgICIwLjA5MTI2MiwgMC40NTIwNjksIDAuNzQzMDE2LCAxLjExMDA3LCAxLjQ3NTY5LCAxLjg0MTYsIDIuMjA2ODUiLCBcCi0gICAgICAgICAgIjAuMDkxMjU1LCAwLjQ1MjA4MSwgMC43NDQ0NDEsIDEuMTA5OTksIDEuNDc1NjksIDEuODQxMTYsIDIuMjA2NjgiLCBcCi0gICAgICAgICAgIjAuMDkxMjYsIDAuNDUyMDY3LCAwLjc0NDE0LCAxLjEwOTk4LCAxLjQ3NTY4LCAxLjg0MDc1LCAyLjIwNjY1IiwgXAotICAgICAgICAgICIwLjA5MTI2OCwgMC40NTIwNjEsIDAuNzQ0NDM1LCAxLjEwOTk4LCAxLjQ3NTYzLCAxLjg0MTIzLCAyLjIwNjg4IiwgXAotICAgICAgICAgICIwLjA5MTI2MSwgMC40NTIwNjYsIDAuNzQ0MTM0LCAxLjEwOTk5LCAxLjQ3NTY5LCAxLjg0MTQsIDIuMjA2ODgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiU04iOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGNsZWFyOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC40MzM2MzcsIDAuNjEyNDI2LCAwLjc1NTg2LCAwLjkzNTE5MSwgMS4xMTQ1NCwgMS4yOTM4OCwgMS40NzMyNSIsIFwKLSAgICAgICAgICAiMC40NDU2MzgsIDAuNjI0NDcxLCAwLjc2NzkxMiwgMC45NDcyMDcsIDEuMTI2NjEsIDEuMzA1OTIsIDEuNDg1MzEiLCBcCi0gICAgICAgICAgIjAuNDYwNDM1LCAwLjYzOTI5OSwgMC43ODI3NzYsIDAuOTYyMDU0LCAxLjE0MTM5LCAxLjMyMDc2LCAxLjUwMDEyIiwgXAotICAgICAgICAgICIwLjQ3NDU4MywgMC42NTM0NTcsIDAuNzk2ODkxLCAwLjk3NjIyOSwgMS4xNTU1OCwgMS4zMzUwMiwgMS41MTQyOSIsIFwKLSAgICAgICAgICAiMC40ODg1MzEsIDAuNjY3MzU2LCAwLjgxMDc3LCAwLjk5MDA5NSwgMS4xNjk0MywgMS4zNDg4LCAxLjUyODE3IiwgXAotICAgICAgICAgICIwLjUxMDMwNSwgMC42ODkxMjksIDAuODMyNTk1LCAxLjAxMTk0LCAxLjE5MTI4LCAxLjM3MDY2LCAxLjU1MDAxIiwgXAotICAgICAgICAgICIwLjUyOTU2LCAwLjcwODM5NiwgMC44NTE4NjUsIDEuMDMxMTksIDEuMjEwNjcsIDEuMzg5ODUsIDEuNTY5MjMiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDkxMjgyLCAwLjQ1MjA3LCAwLjc0MjUxOCwgMS4xMTAxMSwgMS40NzU3MiwgMS44NDEyNSwgMi4yMDY5IiwgXAotICAgICAgICAgICIwLjA5MTIyNSwgMC40NTIwNjMsIDAuNzQyNjA3LCAxLjEwOTkxLCAxLjQ3NTU1LCAxLjg0MTIsIDIuMjA2OSIsIFwKLSAgICAgICAgICAiMC4wOTEyNjQsIDAuNDUyMDQxLCAwLjc0MjYxNywgMS4xMTAwMywgMS40NzU2MiwgMS44NDEyMSwgMi4yMDY4MSIsIFwKLSAgICAgICAgICAiMC4wOTEyMjYsIDAuNDUxOTYyLCAwLjc0MzA0NywgMS4xMDk5OCwgMS40NzU2OCwgMS44NDA3OCwgMi4yMDY5IiwgXAotICAgICAgICAgICIwLjA5MTI0NSwgMC40NTIwNzksIDAuNzQyNTk1LCAxLjExMDA0LCAxLjQ3NTgxLCAxLjg0MTIxLCAyLjIwNjgyIiwgXAotICAgICAgICAgICIwLjA5MTIyNiwgMC40NTE4MzMsIDAuNzQ0MzAyLCAxLjEwOTk5LCAxLjQ3NTY3LCAxLjg0MTIxLCAyLjIwNjcxIiwgXAotICAgICAgICAgICIwLjA5MTI0OSwgMC40NTIwNzEsIDAuNzQzMTQ0LCAxLjExMDE0LCAxLjQ3NTIsIDEuODQxMTYsIDIuMjA2NTUiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzE1NTY0LCAwLjUyMTY3MSwgMC42ODY5NTQsIDAuODkzNDI0LCAxLjA5OTk0LCAxLjMwNjUzLCAxLjUxMzA0IiwgXAotICAgICAgICAgICIwLjMyNzE3LCAwLjUzMzI2MiwgMC42OTg1MDYsIDAuOTA1MDI3LCAxLjExMTYsIDEuMzE4MDYsIDEuNTI0NjkiLCBcCi0gICAgICAgICAgIjAuMzQxODQ3LCAwLjU0Nzk2NiwgMC43MTMyNTMsIDAuOTE5NzMsIDEuMTI2MjQsIDEuMzMyODQsIDEuNTM5MzUiLCBcCi0gICAgICAgICAgIjAuMzU1ODQ3LCAwLjU2MTk0NCwgMC43MjcyNzIsIDAuOTMzNzAzLCAxLjE0MDIyLCAxLjM0Njc4LCAxLjU1MzMyIiwgXAotICAgICAgICAgICIwLjM2OTI2NSwgMC41NzUzNzcsIDAuNzQwNjcxLCAwLjk0NzEzNSwgMS4xNTM2NSwgMS4zNjAxOSwgMS41NjY3NSIsIFwKLSAgICAgICAgICAiMC4zODk2NzQsIDAuNTk1Nzk1LCAwLjc2MTA5NCwgMC45Njc1NTQsIDEuMTc0MDcsIDEuMzgwNjIsIDEuNTg3MTciLCBcCi0gICAgICAgICAgIjAuNDA3MzkxLCAwLjYxMzQ5NiwgMC43Nzg3NjYsIDAuOTg1MjU0LCAxLjE5MTc4LCAxLjM5ODMyLCAxLjYwNDg3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5OTk2MiwgMC41MDcyNjQsIDAuODM2NDI4LCAxLjI0NzE0LCAxLjY1ODQxLCAyLjA2OTYsIDIuNDgwNjkiLCBcCi0gICAgICAgICAgIjAuMDk5OTQsIDAuNTA3MjY0LCAwLjgzNjQyOCwgMS4yNDc2MiwgMS42NTg0NCwgMi4wNjk0NiwgMi40ODA4MyIsIFwKLSAgICAgICAgICAiMC4wOTk5NDEsIDAuNTA3MjY0LCAwLjgzNjQyNSwgMS4yNDcxNywgMS42NTg0MywgMi4wNjk2MiwgMi40ODA2OSIsIFwKLSAgICAgICAgICAiMC4wOTk5NjcsIDAuNTA3NDAxLCAwLjgzNjA2OCwgMS4yNDcyMywgMS42NTgzOCwgMi4wNjk1NywgMi40ODA3MiIsIFwKLSAgICAgICAgICAiMC4wOTk5MDcsIDAuNTA3MzY5LCAwLjgzNjM5MiwgMS4yNDcyLCAxLjY1ODMyLCAyLjA2OTUyLCAyLjQ4MDcyIiwgXAotICAgICAgICAgICIwLjA5OTk0NCwgMC41MDczMzEsIDAuODM2NDAzLCAxLjI0NzYyLCAxLjY1ODM1LCAyLjA2OTU0LCAyLjQ4MDgiLCBcCi0gICAgICAgICAgIjAuMDk5OTQsIDAuNTA3MzI4LCAwLjgzNjM5NCwgMS4yNDcxOSwgMS42NTgzMiwgMi4wNjk1MSwgMi40ODA2OSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQzNzksIDAuMDA0NDIyLCAwLjAwNDQyNiwgMC4wMDQ0MjgsIDAuMDA0NDMxLCAwLjAwNDQzMiwgMC4wMDQ0MzIiLCBcCi0gICAgICAgICAgIjAuMDA0Mzc1LCAwLjAwNDQxNywgMC4wMDQ0MjMsIDAuMDA0NDI1LCAwLjAwNDQyNiwgMC4wMDQ0MjcsIDAuMDA0NDI4IiwgXAotICAgICAgICAgICIwLjAwNDM3LCAwLjAwNDQxMiwgMC4wMDQ0MTcsIDAuMDA0NDIsIDAuMDA0NDIxLCAwLjAwNDQyMiwgMC4wMDQ0MjIiLCBcCi0gICAgICAgICAgIjAuMDA0MzY2LCAwLjAwNDQwOCwgMC4wMDQ0MTQsIDAuMDA0NDE2LCAwLjAwNDQxNywgMC4wMDQ0MTksIDAuMDA0NDE5IiwgXAotICAgICAgICAgICIwLjAwNDM2MywgMC4wMDQ0MDYsIDAuMDA0NDExLCAwLjAwNDQxMywgMC4wMDQ0MTQsIDAuMDA0NDE2LCAwLjAwNDQxNiIsIFwKLSAgICAgICAgICAiMC4wMDQzNiwgMC4wMDQ0MDMsIDAuMDA0NDA4LCAwLjAwNDQxMiwgMC4wMDQ0MTMsIDAuMDA0NDEzLCAwLjAwNDQxNCIsIFwKLSAgICAgICAgICAiMC4wMDQzNjMsIDAuMDA0NDA1LCAwLjAwNDQxLCAwLjAwNDQxMiwgMC4wMDQ0MTQsIDAuMDA0NDE2LCAwLjAwNDQxNSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDU2OCwgMC4wMDQ2MTMsIDAuMDA0NjE5LCAwLjAwNDYyMSwgMC4wMDQ2MjMsIDAuMDA0NjI0LCAwLjAwNDYyNiIsIFwKLSAgICAgICAgICAiMC4wMDQ1NjMsIDAuMDA0NjA4LCAwLjAwNDYxNCwgMC4wMDQ2MTYsIDAuMDA0NjE4LCAwLjAwNDYxOSwgMC4wMDQ2MTkiLCBcCi0gICAgICAgICAgIjAuMDA0NTU4LCAwLjAwNDYwMywgMC4wMDQ2MDgsIDAuMDA0NjEyLCAwLjAwNDYxMiwgMC4wMDQ2MTQsIDAuMDA0NjE0IiwgXAotICAgICAgICAgICIwLjAwNDU1MywgMC4wMDQ1OTgsIDAuMDA0NjA0LCAwLjAwNDYwNywgMC4wMDQ2MDgsIDAuMDA0NjA5LCAwLjAwNDYxIiwgXAotICAgICAgICAgICIwLjAwNDU1LCAwLjAwNDU5NSwgMC4wMDQ2MDEsIDAuMDA0NjAzLCAwLjAwNDYwNSwgMC4wMDQ2MDYsIDAuMDA0NjA3IiwgXAotICAgICAgICAgICIwLjAwNDU0NiwgMC4wMDQ1OSwgMC4wMDQ1OTYsIDAuMDA0NTk5LCAwLjAwNDYsIDAuMDA0NjAxLCAwLjAwNDYwMSIsIFwKLSAgICAgICAgICAiMC4wMDQ1NDMsIDAuMDA0NTg4LCAwLjAwNDU5MywgMC4wMDQ1OTYsIDAuMDA0NTk3LCAwLjAwNDU5OCwgMC4wMDQ1OTgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1NzI2LCAwLjAwNTc2NywgMC4wMDU3NjksIDAuMDA1NzY5LCAwLjAwNTc2OCwgMC4wMDU3NjUsIDAuMDA1NzY0IiwgXAotICAgICAgICAgICIwLjAwNTcyMiwgMC4wMDU3NjMsIDAuMDA1NzY2LCAwLjAwNTc2MywgMC4wMDU3NjIsIDAuMDA1NzYxLCAwLjAwNTc2MSIsIFwKLSAgICAgICAgICAiMC4wMDU3MTgsIDAuMDA1NzU5LCAwLjAwNTc2MiwgMC4wMDU3NiwgMC4wMDU3NTksIDAuMDA1NzU4LCAwLjAwNTc1NSIsIFwKLSAgICAgICAgICAiMC4wMDU3MTYsIDAuMDA1NzU3LCAwLjAwNTc1OSwgMC4wMDU3NTgsIDAuMDA1NzU4LCAwLjAwNTc1NSwgMC4wMDU3NTUiLCBcCi0gICAgICAgICAgIjAuMDA1NzEzLCAwLjAwNTc1NCwgMC4wMDU3NTcsIDAuMDA1NzU2LCAwLjAwNTc1MywgMC4wMDU3NTIsIDAuMDA1NzUyIiwgXAotICAgICAgICAgICIwLjAwNTcxMSwgMC4wMDU3NTMsIDAuMDA1NzU0LCAwLjAwNTc1MywgMC4wMDU3NTIsIDAuMDA1NzUxLCAwLjAwNTc1MSIsIFwKLSAgICAgICAgICAiMC4wMDU3MSwgMC4wMDU3NTEsIDAuMDA1NzUzLCAwLjAwNTc1NCwgMC4wMDU3NTEsIDAuMDA1NzUxLCAwLjAwNTc0OCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihzY2FsYXIpIHsKLSAgICAgICAgdmFsdWVzKCIwIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiU04iOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDI5OCwgMC4wMDQzNDIsIDAuMDA0MzQ3LCAwLjAwNDM1LCAwLjAwNDM1MSwgMC4wMDQzNTQsIDAuMDA0MzUyIiwgXAotICAgICAgICAgICIwLjAwNDI5MiwgMC4wMDQzMzYsIDAuMDA0MzQxLCAwLjAwNDM0NSwgMC4wMDQzNDUsIDAuMDA0MzQ2LCAwLjAwNDM0NiIsIFwKLSAgICAgICAgICAiMC4wMDQyODgsIDAuMDA0MzMxLCAwLjAwNDMzNywgMC4wMDQzNDEsIDAuMDA0MzQxLCAwLjAwNDM0MiwgMC4wMDQzNDQiLCBcCi0gICAgICAgICAgIjAuMDA0Mjg0LCAwLjAwNDMyOCwgMC4wMDQzMzMsIDAuMDA0MzM4LCAwLjAwNDMzOCwgMC4wMDQzMzgsIDAuMDA0MzM5IiwgXAotICAgICAgICAgICIwLjAwNDI4MSwgMC4wMDQzMjUsIDAuMDA0MzI5LCAwLjAwNDMzNSwgMC4wMDQzMzcsIDAuMDA0MzM2LCAwLjAwNDMzNyIsIFwKLSAgICAgICAgICAiMC4wMDQyNzksIDAuMDA0MzIyLCAwLjAwNDMyOCwgMC4wMDQzMzIsIDAuMDA0MzMyLCAwLjAwNDMzMywgMC4wMDQzMzUiLCBcCi0gICAgICAgICAgIjAuMDA0Mjc3LCAwLjAwNDMyLCAwLjAwNDMyNiwgMC4wMDQzMjksIDAuMDA0MzMsIDAuMDA0MzMxLCAwLjAwNDMzMSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNTE5NiwgMC4wMDUyMzgsIDAuMDA1MjQxLCAwLjAwNTI0NCwgMC4wMDUyNDUsIDAuMDA1MjQ1LCAwLjAwNTI0NiIsIFwKLSAgICAgICAgICAiMC4wMDUxOSwgMC4wMDUyMzEsIDAuMDA1MjM1LCAwLjAwNTIzNywgMC4wMDUyMzgsIDAuMDA1MjM5LCAwLjAwNTIzOSIsIFwKLSAgICAgICAgICAiMC4wMDUxODYsIDAuMDA1MjI3LCAwLjAwNTIzMSwgMC4wMDUyMzQsIDAuMDA1MjM0LCAwLjAwNTIzNSwgMC4wMDUyMzUiLCBcCi0gICAgICAgICAgIjAuMDA1MTgzLCAwLjAwNTIyNCwgMC4wMDUyMjgsIDAuMDA1MjMxLCAwLjAwNTIzMSwgMC4wMDUyMzIsIDAuMDA1MjM0IiwgXAotICAgICAgICAgICIwLjAwNTE4MSwgMC4wMDUyMjIsIDAuMDA1MjI3LCAwLjAwNTIyOSwgMC4wMDUyMjksIDAuMDA1MjMsIDAuMDA1MjMyIiwgXAotICAgICAgICAgICIwLjAwNTE3OCwgMC4wMDUyMiwgMC4wMDUyMjQsIDAuMDA1MjI2LCAwLjAwNTIyNywgMC4wMDUyMjcsIDAuMDA1MjI5IiwgXAotICAgICAgICAgICIwLjAwNTE3NiwgMC4wMDUyMTcsIDAuMDA1MjIxLCAwLjAwNTIyMywgMC4wMDUyMjUsIDAuMDA1MjI1LCAwLjAwNTIyNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUk4pICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDU5NDkyNzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA1OTQ1ODM7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNTk0OTI3OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDQxNywgMC4wMDA0MDYsIDAuMDAwMzk2LCAwLjAwMDM5MSwgMC4wMDAzODcsIDAuMDAwMzg0LCAwLjAwMDM4MyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjYyNCwgMC4wMDI2MTYsIDAuMDAyNjExLCAwLjAwMjYwNywgMC4wMDI2MDUsIDAuMDAyNjAzLCAwLjAwMjYwMiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQmU04iOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC40Nzc3MzUsIDAuNDg5MTM2LCAwLjUwNDE1OCwgMC41MTg5OTUsIDAuNTMzMzM5LCAwLjU1NjI4OCwgMC41NzU0NDgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiByZWNvdmVyeV9yaXNpbmc7Ci0gICAgICB3aGVuIDogIkQmU04iOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8xX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQocmVjb3ZlcnlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTM3NSwgMC4xMjYyNSwgMC4xMDc1LCAwLjA4ODc1LCAwLjA3NjI1LCAwLjA0NzUsIDAuMDI2MjUiLCBcCi0gICAgICAgICAgIjAuMTQ4NzUsIDAuMTM3NSwgMC4xMTg3NSwgMC4xLCAwLjA4NzUsIDAuMDU4NzUsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiMC4xNjEyNSwgMC4xNSwgMC4xMzEyNSwgMC4xMTg3NSwgMC4xLCAwLjA3NzUsIDAuMDUiLCBcCi0gICAgICAgICAgIjAuMTgsIDAuMTY4NzUsIDAuMTUsIDAuMTMxMjUsIDAuMTE4NzUsIDAuMDksIDAuMDY4NzUiLCBcCi0gICAgICAgICAgIjAuMTkyNSwgMC4xODEyNSwgMC4xNjI1LCAwLjE1LCAwLjEzMTI1LCAwLjEwMjUsIDAuMDgxMjUiLCBcCi0gICAgICAgICAgIjAuMjIxMjUsIDAuMjAzNzUsIDAuMTkxMjUsIDAuMTcyNSwgMC4xNTM3NSwgMC4xMzEyNSwgMC4xMSIsIFwKLSAgICAgICAgICAiMC4yNDI1LCAwLjIyNSwgMC4yMTI1LCAwLjE5Mzc1LCAwLjE3NSwgMC4xNTI1LCAwLjEzMTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIHRpbWluZ190eXBlIDogcmVjb3ZlcnlfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRCI7Ci0gICAgICBzZGZfY29uZCA6ICJEID09IDEnYjAiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHJlY292ZXJ5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIxMjUsIDAuMjIzNzUsIDAuMjM2MjUsIDAuMjQ4NzUsIDAuMjYxMjUsIDAuMjgzNzUsIDAuMzA1IiwgXAotICAgICAgICAgICIwLjIwMTI1LCAwLjIxMjUsIDAuMjI1LCAwLjIzNzUsIDAuMjUsIDAuMjcyNSwgMC4yOTM3NSIsIFwKLSAgICAgICAgICAiMC4xODI1LCAwLjIsIDAuMjEyNSwgMC4yMjUsIDAuMjM3NSwgMC4yNiwgMC4yODEyNSIsIFwKLSAgICAgICAgICAiMC4xNywgMC4xODc1LCAwLjIsIDAuMjEyNSwgMC4yMjUsIDAuMjQ3NSwgMC4yNjg3NSIsIFwKLSAgICAgICAgICAiMC4xNjM3NSwgMC4xNzUsIDAuMTg3NSwgMC4yLCAwLjIxMjUsIDAuMjM1LCAwLjI1NjI1IiwgXAotICAgICAgICAgICIwLjE0NzUsIDAuMTU4NzUsIDAuMTcxMjUsIDAuMTgzNzUsIDAuMTk2MjUsIDAuMjE4NzUsIDAuMjQiLCBcCi0gICAgICAgICAgIjAuMTMyNSwgMC4xNDM3NSwgMC4xNjI1LCAwLjE3NSwgMC4xODc1LCAwLjIxLCAwLjIyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJlbW92YWxfcmlzaW5nOwotICAgICAgd2hlbiA6ICJEJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMV9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHJlbW92YWxfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAzNzUsIC0wLjAyNjI1LCAtMC4wMDc1LCAwLjAwNSwgMC4wMjM3NSwgMC4wNDYyNSwgMC4wNjc1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDM3NSwgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLjAxMjUsIDAuMDM1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICItMC4wNjEyNSwgLTAuMDUsIC0wLjAzNzUsIC0wLjAxODc1LCAtMC4wMDYyNSwgMC4wMTYyNSwgMC4wMzc1IiwgXAotICAgICAgICAgICItMC4wOCwgLTAuMDY4NzUsIC0wLjA1LCAtMC4wMzc1LCAtMC4wMTg3NSwgMC4wMDM3NSwgMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjA5MjUsIC0wLjA4MTI1LCAtMC4wNjg3NSwgLTAuMDUsIC0wLjAzNzUsIC0wLjAwODc1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICItMC4xMTUsIC0wLjEwMzc1LCAtMC4wOTEyNSwgLTAuMDc4NzUsIC0wLjA2LCAtMC4wMzc1LCAtMC4wMTYyNSIsIFwKLSAgICAgICAgICAiLTAuMTM2MjUsIC0wLjEyNSwgLTAuMTEyNSwgLTAuMDkzNzUsIC0wLjA4MTI1LCAtMC4wNTg3NSwgLTAuMDM3NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oU04pICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTgyNjI4OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTgyNjA5OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTgyNjI4OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDMzMSwgMC4wMDAzMzEsIDAuMDAwMzMxLCAwLjAwMDMzLCAwLjAwMDMzLCAwLjAwMDMzLCAwLjAwMDMzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzMxLCAwLjAwMDMzMSwgMC4wMDAzMzIsIDAuMDAwMzMyLCAwLjAwMDMzMiwgMC4wMDAzMzIsIDAuMDAwMzMxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRCYhUk4iOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1JOX0VRXzAgPT0gMSdiMSI7Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4zMTU0MTYsIDAuMzI3MDg4LCAwLjM0MTc0OSwgMC4zNTU2OTEsIDAuMzY5MjIsIDAuMzg5NTg3LCAwLjQwNzM3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogcmVjb3ZlcnlfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRCZSTiI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fUk5fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChyZWNvdmVyeV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzc1LCAwLjAyNjI1LCAwLjAxMzc1LCAtMC4wMDUsIC0wLjAyMzc1LCAtMC4wNDYyNSwgLTAuMDczNzUiLCBcCi0gICAgICAgICAgIjAuMDU1LCAwLjAzNzUsIDAuMDI1LCAwLjAwNjI1LCAtMC4wMTI1LCAtMC4wMzUsIC0wLjA1NjI1IiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDU2MjUsIDAuMDM3NSwgMC4wMTg3NSwgMC4wMDYyNSwgLTAuMDIyNSwgLTAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMDgsIDAuMDY4NzUsIDAuMDUsIDAuMDM3NSwgMC4wMTg3NSwgLTAuMDEsIC0wLjAzMTI1IiwgXAotICAgICAgICAgICIwLjA5MjUsIDAuMDgxMjUsIDAuMDYyNSwgMC4wNSwgMC4wMzEyNSwgMC4wMDg3NSwgLTAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMTE1LCAwLjEwMzc1LCAwLjA4NSwgMC4wNzI1LCAwLjA1Mzc1LCAwLjAyNSwgMC4wMDM3NSIsIFwKLSAgICAgICAgICAiMC4xMzYyNSwgMC4xMjUsIDAuMTA2MjUsIDAuMDg3NSwgMC4wNzUsIDAuMDQ2MjUsIDAuMDI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogcmVtb3ZhbF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEJlJOIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9STl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHJlbW92YWxfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY4NzUsIDAuMDgsIDAuMDk4NzUsIDAuMTExMjUsIDAuMTMsIDAuMTUyNSwgMC4xNzM3NSIsIFwKLSAgICAgICAgICAiMC4wNTc1LCAwLjA2ODc1LCAwLjA4NzUsIDAuMSwgMC4xMTg3NSwgMC4xNDEyNSwgMC4xNjI1IiwgXAotICAgICAgICAgICIwLjA0NSwgMC4wNTYyNSwgMC4wNzUsIDAuMDg3NSwgMC4xMDYyNSwgMC4xMjg3NSwgMC4xNSIsIFwKLSAgICAgICAgICAiMC4wMzI1LCAwLjA0Mzc1LCAwLjA1NjI1LCAwLjA3NSwgMC4wODc1LCAwLjExNjI1LCAwLjEzNzUiLCBcCi0gICAgICAgICAgIjAuMDIsIDAuMDMxMjUsIDAuMDQzNzUsIDAuMDYyNSwgMC4wNzUsIDAuMTAzNzUsIDAuMTE4NzUiLCBcCi0gICAgICAgICAgIi0wLjAwMjUsIDAuMDA4NzUsIDAuMDIxMjUsIDAuMDQsIDAuMDUyNSwgMC4wODEyNSwgMC4xMDI1IiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDEyNSwgMC4wMDYyNSwgMC4wMTg3NSwgMC4wMzc1LCAwLjA2LCAwLjA4MTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBERkZTWDQgKgotICogLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChERkZTWDQpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC41MzQ4Nzg7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgZmYgKE4zNSxRQklOVCkgewotICAgIG5leHRfc3RhdGUgOiAiRCI7Ci0gICAgY2xvY2tlZF9vbiA6ICJDSyI7Ci0gICAgcHJlc2V0IDogIighU04pIjsKLSAgfQotICBwaW4oQ0spICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDU5MzYzNTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA1OTMyODk7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNTkzNjM1OwotICAgIGNsb2NrIDogdHJ1ZTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDIxMjYsIDAuMDAyMTEzLCAwLjAwMjEwMSwgMC4wMDIwOTUsIDAuMDAyMDksIDAuMDAyMDgzLCAwLjAwMjA4MiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNTQwOCwgMC4wMDUzOTcsIDAuMDA1Mzg2LCAwLjAwNTM3NywgMC4wMDUzNjksIDAuMDA1MzYxLCAwLjAwNTM1NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQmU04iOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4zNTgzMTgsIDAuMzcwMTA1LCAwLjM4NTM5MiwgMC40MDA5MzYsIDAuNDE2MjQ2LCAwLjQ0MDQ2MywgMC40NjE1MjIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjIzODE3MSwgMC4yNDk3MzQsIDAuMjY0NjQsIDAuMjc5NTQ5LCAwLjI5NDA2MywgMC4zMTY4NTQsIDAuMzM1NjcxIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihEKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA1OTgxMDc7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNTk2MTA4OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDU5ODEwNzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDIxNzgsIDAuMDAyMTY2LCAwLjAwMjE1OSwgMC4wMDIxNTMsIDAuMDAyMTQ5LCAwLjAwMjE0NCwgMC4wMDIxMzgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDIzNzQsIDAuMDAyMzY5LCAwLjAwMjM2NCwgMC4wMDIzNjEsIDAuMDAyMzU4LCAwLjAwMjM1NCwgMC4wMDIzNTIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiU04iOwotICAgICAgc2RmX2NvbmQgOiAiU04gPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDM3NSwgLTAuMDI2MjUsIC0wLjAyLCAtMC4wMDc1LCAwLjAwNSwgMC4wMTUsIDAuMDMiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLjAwMzc1LCAwLjAxODc1IiwgXAotICAgICAgICAgICItMC4wNjEyNSwgLTAuMDU2MjUsIC0wLjA0Mzc1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMDg3NSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDgsIC0wLjA2ODc1LCAtMC4wNTYyNSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAyMTI1LCAtMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wOTI1LCAtMC4wODEyNSwgLTAuMDY4NzUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDMzNzUsIC0wLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMTE1LCAtMC4xMDM3NSwgLTAuMDkxMjUsIC0wLjA3ODc1LCAtMC4wNzI1LCAtMC4wNTYyNSwgLTAuMDQxMjUiLCBcCi0gICAgICAgICAgIi0wLjEzLCAtMC4xMTg3NSwgLTAuMTA2MjUsIC0wLjEsIC0wLjA4NzUsIC0wLjA3MTI1LCAtMC4wNjI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNSwgMC4wNjEyNSwgMC4wOCwgMC4wOTI1LCAwLjEwNSwgMC4xMzM3NSwgMC4xNDg3NSIsIFwKLSAgICAgICAgICAiMC4wMzg3NSwgMC4wNSwgMC4wNjI1LCAwLjA4MTI1LCAwLjA5Mzc1LCAwLjExNjI1LCAwLjEzNzUiLCBcCi0gICAgICAgICAgIjAuMDI2MjUsIDAuMDM3NSwgMC4wNSwgMC4wNjg3NSwgMC4wODEyNSwgMC4xMDM3NSwgMC4xMjUiLCBcCi0gICAgICAgICAgIjAuMDEzNzUsIDAuMDI1LCAwLjAzNzUsIDAuMDU2MjUsIDAuMDY4NzUsIDAuMDkxMjUsIDAuMTEyNSIsIFwKLSAgICAgICAgICAiMC4wMDc1LCAwLjAxMjUsIDAuMDMxMjUsIDAuMDQzNzUsIDAuMDU2MjUsIDAuMDg1LCAwLjEiLCBcCi0gICAgICAgICAgIi0wLjAwODc1LCAwLjAwMjUsIDAuMDE1LCAwLjAzMzc1LCAwLjA0NjI1LCAwLjA2ODc1LCAwLjA5IiwgXAotICAgICAgICAgICItMC4wMTc1LCAtMC4wMDYyNSwgMC4wMDYyNSwgMC4wMTg3NSwgMC4wMzc1LCAwLjA2LCAwLjA3NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiU04iOwotICAgICAgc2RmX2NvbmQgOiAiU04gPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTA2MjUsIDAuMDk1LCAwLjA3NjI1LCAwLjA2Mzc1LCAwLjA1MTI1LCAwLjAzNSwgMC4wMjYyNSIsIFwKLSAgICAgICAgICAiMC4xMTc1LCAwLjEwNjI1LCAwLjA4NzUsIDAuMDc1LCAwLjA2MjUsIDAuMDQ2MjUsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiMC4xMywgMC4xMTg3NSwgMC4xLCAwLjA4NzUsIDAuMDc1LCAwLjA1ODc1LCAwLjA1IiwgXAotICAgICAgICAgICIwLjE0MjUsIDAuMTMxMjUsIDAuMTE4NzUsIDAuMSwgMC4wOTM3NSwgMC4wNzc1LCAwLjA2MjUiLCBcCi0gICAgICAgICAgIjAuMTYxMjUsIDAuMTQzNzUsIDAuMTMxMjUsIDAuMTE4NzUsIDAuMTA2MjUsIDAuMDksIDAuMDc1IiwgXAotICAgICAgICAgICIwLjE3NzUsIDAuMTY2MjUsIDAuMTUzNzUsIDAuMTQxMjUsIDAuMTI4NzUsIDAuMTEyNSwgMC4wOTc1IiwgXAotICAgICAgICAgICIwLjE5ODc1LCAwLjE4NzUsIDAuMTY4NzUsIDAuMTU2MjUsIDAuMTQzNzUsIDAuMTI3NSwgMC4xMTI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTE4NzUsIDAuMTAxMjUsIDAuMDg4NzUsIDAuMDcsIDAuMDU3NSwgMC4wMjg3NSwgMC4wMDc1IiwgXAotICAgICAgICAgICIwLjEzLCAwLjExMjUsIDAuMSwgMC4wODEyNSwgMC4wNjg3NSwgMC4wNCwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4xNDI1LCAwLjEyNSwgMC4xMTI1LCAwLjA5Mzc1LCAwLjA4MTI1LCAwLjA1MjUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMTU1LCAwLjEzNzUsIDAuMTI1LCAwLjEwNjI1LCAwLjA5Mzc1LCAwLjA2NSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4xNjc1LCAwLjE1LCAwLjEzNzUsIDAuMTE4NzUsIDAuMTA2MjUsIDAuMDc3NSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiMC4xODM3NSwgMC4xNzI1LCAwLjE1Mzc1LCAwLjE0MTI1LCAwLjEyMjUsIDAuMDkzNzUsIDAuMDcyNSIsIFwKLSAgICAgICAgICAiMC4xOTg3NSwgMC4xODc1LCAwLjE3NSwgMC4xNTYyNSwgMC4xMzc1LCAwLjExNSwgMC4wOTM3NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjUyNTQ0NDsKLSAgICBmdW5jdGlvbiA6ICJOMzUiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5vbl91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcmlzaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjUwNjc5LCAwLjM4MDM0MSwgMC41MDY4ODEsIDAuNTk3MjEyLCAwLjc0MjY1MiwgMC44NzE0MDgsIDEuMDUxODQiLCBcCi0gICAgICAgICAgIjAuMjYyMzU5LCAwLjM5MjAxMSwgMC41MTg3NTIsIDAuNjA5NjM4LCAwLjc1NDE4NiwgMC44ODI0NzEsIDEuMDYzMjQiLCBcCi0gICAgICAgICAgIjAuMjc3NjE3LCAwLjQwNzI4MSwgMC41MzM5OTMsIDAuNjI0MjI1LCAwLjc2OTUyNywgMC44OTY4MTgsIDEuMDc4NjQiLCBcCi0gICAgICAgICAgIjAuMjkzMDQyLCAwLjQyMjUzMywgMC41NTAyMzksIDAuNjM5NjU4LCAwLjc4NDg0OSwgMC45MTI2MzcsIDEuMDk1MjUiLCBcCi0gICAgICAgICAgIjAuMzA4Mjk5LCAwLjQzNzk2NCwgMC41NjU1MjcsIDAuNjU2MDcxLCAwLjgwMTI0NSwgMC45Mjc5NjEsIDEuMTA4OTkiLCBcCi0gICAgICAgICAgIjAuMzMyNTE2LCAwLjQ2MjE4NSwgMC41ODk3MzcsIDAuNjgwNzEsIDAuODI2MzE2LCAwLjk1MTk4NSwgMS4xMzM1NyIsIFwKLSAgICAgICAgICAiMC4zNTMxNzcsIDAuNDgyODI0LCAwLjYxMDM4NywgMC43MDA4NDksIDAuODQ0NDE0LCAwLjk3MjkwNSwgMS4xNTM3OCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1OTgyOSwgMC4zMDgyNiwgMC41NzE0NjIsIDAuNzU0NDg3LCAxLjA1MDQxLCAxLjMxNjIyLCAxLjY2Njc1IiwgXAotICAgICAgICAgICIwLjA2MDAwMSwgMC4zMDgyOTMsIDAuNTcxMzU0LCAwLjc1MTYxNywgMS4wNTc5LCAxLjMwNTIsIDEuNjczOCIsIFwKLSAgICAgICAgICAiMC4wNTk3ODIsIDAuMzA4MjQxLCAwLjU3MTM1NywgMC43NDkyMTUsIDEuMDUwNiwgMS4zMTA5OSwgMS42Njk4NiIsIFwKLSAgICAgICAgICAiMC4wNjAwMzEsIDAuMzA3OTQyLCAwLjU2NDg2NywgMC43NTIzODMsIDEuMDU3OSwgMS4zMDk4MSwgMS42ODEwOCIsIFwKLSAgICAgICAgICAiMC4wNjAwMDIsIDAuMzA4MjIyLCAwLjU2NzczOSwgMC43NTg2MDQsIDEuMDUxNCwgMS4zMDg5NSwgMS42NzUxMiIsIFwKLSAgICAgICAgICAiMC4wNTk5ODIsIDAuMzA4MjQ5LCAwLjU2ODc5MiwgMC43NTY4MzQsIDEuMDU1NDMsIDEuMzExMzgsIDEuNjY5MSIsIFwKLSAgICAgICAgICAiMC4wNTk5NDYsIDAuMzA4MjMxLCAwLjU2NzIxMywgMC43NTgxNjIsIDEuMDQyNTksIDEuMzA4MDgsIDEuNjc1OCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMwOTcxLCAwLjQ1ODYyNywgMC42MDQ3NjgsIDAuNzA4OTMzLCAwLjg3NTk3MywgMS4wMjIxOCwgMS4yMzA4OCIsIFwKLSAgICAgICAgICAiMC4zMjE1MDYsIDAuNDcwMzEzLCAwLjYxNjMzMywgMC43MjA3MDksIDAuODg3Njc0LCAxLjAzNDA1LCAxLjI0NTIiLCBcCi0gICAgICAgICAgIjAuMzM2NzUyLCAwLjQ4NTc5MSwgMC42MzE3MjgsIDAuNzM1OTg0LCAwLjkwNDAzNiwgMS4wNTA0NSwgMS4yNTcxMiIsIFwKLSAgICAgICAgICAiMC4zNTIzMjUsIDAuNTAxMzcyLCAwLjY0NzI4MSwgMC43NTE1MjIsIDAuOTE4NzMsIDEuMDY0NTIsIDEuMjczMTYiLCBcCi0gICAgICAgICAgIjAuMzY3NTUxLCAwLjUxNjYyMywgMC42NjI1MzUsIDAuNzY2Nzc4LCAwLjkzMzk3NCwgMS4wNzk3OCwgMS4yODgzOSIsIFwKLSAgICAgICAgICAiMC4zOTE4NTQsIDAuNTQwODE5LCAwLjY4NjkxNSwgMC43OTEwNzksIDAuOTU4MTIxLCAxLjEwNDM1LCAxLjMxMzA3IiwgXAotICAgICAgICAgICIwLjQxMjgyOSwgMC41NjE4ODksIDAuNzA3Nzk3LCAwLjgxMjAzNywgMC45NzkyMjQsIDEuMTI0OTksIDEuMzMzNTUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjUwNjMsIDAuMzQ3MDU5LCAwLjYzNjMwMywgMC44NDQxODgsIDEuMTc0MTksIDEuNDY1OTQsIDEuODgxODIiLCBcCi0gICAgICAgICAgIjAuMDY1MDgyLCAwLjM0NzA0NCwgMC42MzU0MzEsIDAuODQ0MTM5LCAxLjE3NTg1LCAxLjQ2NjIzLCAxLjg4MjY2IiwgXAotICAgICAgICAgICIwLjA2NTMwNCwgMC4zNDcxMzYsIDAuNjM2NDM0LCAwLjg0NDIyMywgMS4xNzY4MywgMS40Njc5MSwgMS44ODAxMyIsIFwKLSAgICAgICAgICAiMC4wNjQ5MjYsIDAuMzQ2MzExLCAwLjYzNjQzMSwgMC44NDQyNDUsIDEuMTc3MzksIDEuNDY2NzQsIDEuODgyMjQiLCBcCi0gICAgICAgICAgIjAuMDY1MjE4LCAwLjM0NjMwOCwgMC42MzY0MTIsIDAuODQ0MjQ0LCAxLjE3NTM1LCAxLjQ2NjczLCAxLjg4MTk0IiwgXAotICAgICAgICAgICIwLjA2NTA4MiwgMC4zNDcwNzUsIDAuNjM2MjgxLCAwLjg0NDE4OSwgMS4xNzQ1NiwgMS40NjU2NSwgMS44ODE4NyIsIFwKLSAgICAgICAgICAiMC4wNjUyMTQsIDAuMzQ2MzA3LCAwLjYzNjQzOCwgMC44NDQyNDcsIDEuMTc1MjgsIDEuNDY2OTcsIDEuODgyOTEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiU04iOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHByZXNldDsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMjU2ODYsIDAuMzU0OTk3LCAwLjQ4MjgsIDAuNTcyNzc2LCAwLjcxNzQ3NywgMC44NDQ0MjcsIDEuMDI1MzIiLCBcCi0gICAgICAgICAgIjAuMjM3MTcsIDAuMzY2NDk5LCAwLjQ5MzI1MSwgMC41ODM0NjgsIDAuNzI4MDUzLCAwLjg1NjA5LCAxLjAzNjQ2IiwgXAotICAgICAgICAgICIwLjI1MTc2LCAwLjM4MTA3MiwgMC41MDg4NjksIDAuNTk4ODQ2LCAwLjc0MzczLCAwLjg3MDUwMSwgMS4wNTE0MSIsIFwKLSAgICAgICAgICAiMC4yNjYxNjIsIDAuMzk1NDgsIDAuNTIzMDEyLCAwLjYxMzE5NSwgMC43NTc1OTgsIDAuODg1OTEzLCAxLjA2NTQ2IiwgXAotICAgICAgICAgICIwLjI4MDYyMywgMC40MDk5NTksIDAuNTM2NywgMC42MjY5NDEsIDAuNzcxNTQ4LCAwLjg5OTY5OSwgMS4wNzk5IiwgXAotICAgICAgICAgICIwLjMwMzgwNSwgMC40MzMxMjIsIDAuNTYwOTE2LCAwLjY1MDg3NCwgMC43OTY1OTQsIDAuOTIyNTc1LCAxLjEwMzU1IiwgXAotICAgICAgICAgICIwLjMyMzc4NiwgMC40NTMwOTksIDAuNTgwODczLCAwLjY3MDk2MSwgMC44MTY1NDksIDAuOTQxOTQ0LCAxLjEyMzI4Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDYwMjEzLCAwLjMwODI3NCwgMC41NzI1NzksIDAuNzU2Njg4LCAxLjA1ODExLCAxLjMxOTIzLCAxLjY5MjA4IiwgXAotICAgICAgICAgICIwLjA2MDAzNywgMC4zMDgyNywgMC41NzI5NjgsIDAuNzU5NjM2LCAxLjA1ODA0LCAxLjMxOTM2LCAxLjY5MjA3IiwgXAotICAgICAgICAgICIwLjA2MDIyNSwgMC4zMDgyNzYsIDAuNTcyNjQyLCAwLjc1NjU4OSwgMS4wNTgxNSwgMS4zMTkyNCwgMS42OTIwOCIsIFwKLSAgICAgICAgICAiMC4wNjAxMSwgMC4zMDkzNSwgMC41NzI2MTgsIDAuNzU1NTA5LCAxLjA1ODEzLCAxLjMxOTE5LCAxLjY5MjEiLCBcCi0gICAgICAgICAgIjAuMDYwMDY5LCAwLjMxMjc1NCwgMC41NzI5MjMsIDAuNzU5NDEsIDEuMDU4MDksIDEuMzE5MzksIDEuNjkyMDciLCBcCi0gICAgICAgICAgIjAuMDYwNDgxLCAwLjMxMTc5MywgMC41NzE0MTMsIDAuNzU2MTQ4LCAxLjA1ODA5LCAxLjMxOTI3LCAxLjY5MjA5IiwgXAotICAgICAgICAgICIwLjA2MDIwNywgMC4zMDgyMTEsIDAuNTcyNjg3LCAwLjc1Nzc2NiwgMS4wNTgwNCwgMS4zMTkyMiwgMS42OTIwOCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjQwOSwgMC4wMDY1MjMsIDAuMDA2NTM3LCAwLjAwNjU0MSwgMC4wMDY1NDUsIDAuMDA2NTQ1LCAwLjAwNjU0OCIsIFwKLSAgICAgICAgICAiMC4wMDY0MDEsIDAuMDA2NTE1LCAwLjAwNjUyOSwgMC4wMDY1MzMsIDAuMDA2NTM2LCAwLjAwNjUzOSwgMC4wMDY1NCIsIFwKLSAgICAgICAgICAiMC4wMDYzOTYsIDAuMDA2NTEsIDAuMDA2NTIzLCAwLjAwNjUyNywgMC4wMDY1MzEsIDAuMDA2NTMzLCAwLjAwNjUzMyIsIFwKLSAgICAgICAgICAiMC4wMDYzOSwgMC4wMDY1MDUsIDAuMDA2NTIsIDAuMDA2NTIyLCAwLjAwNjUyNiwgMC4wMDY1MjgsIDAuMDA2NTMiLCBcCi0gICAgICAgICAgIjAuMDA2Mzg2LCAwLjAwNjUwMSwgMC4wMDY1MTUsIDAuMDA2NTIsIDAuMDA2NTIyLCAwLjAwNjUyNCwgMC4wMDY1MjYiLCBcCi0gICAgICAgICAgIjAuMDA2MzgxLCAwLjAwNjQ5NiwgMC4wMDY1MSwgMC4wMDY1MTQsIDAuMDA2NTE4LCAwLjAwNjUyLCAwLjAwNjUyMSIsIFwKLSAgICAgICAgICAiMC4wMDYzNzksIDAuMDA2NDk0LCAwLjAwNjUwNiwgMC4wMDY1MTIsIDAuMDA2NTE3LCAwLjAwNjUxOCwgMC4wMDY1MTkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjI3OCwgMC4wMDYzOTksIDAuMDA2NDE3LCAwLjAwNjQyMiwgMC4wMDY0MjcsIDAuMDA2NDMsIDAuMDA2NDMyIiwgXAotICAgICAgICAgICIwLjAwNjI3MiwgMC4wMDYzOTMsIDAuMDA2NDExLCAwLjAwNjQxNiwgMC4wMDY0MjEsIDAuMDA2NDIzLCAwLjAwNjQyNSIsIFwKLSAgICAgICAgICAiMC4wMDYyNjcsIDAuMDA2Mzg4LCAwLjAwNjQwNSwgMC4wMDY0MSwgMC4wMDY0MTUsIDAuMDA2NDE3LCAwLjAwNjQxOSIsIFwKLSAgICAgICAgICAiMC4wMDYyNjYsIDAuMDA2Mzg2LCAwLjAwNjQwMywgMC4wMDY0MDgsIDAuMDA2NDEyLCAwLjAwNjQxNSwgMC4wMDY0MTYiLCBcCi0gICAgICAgICAgIjAuMDA2MjYxLCAwLjAwNjM4MiwgMC4wMDY0LCAwLjAwNjQwNSwgMC4wMDY0MSwgMC4wMDY0MTIsIDAuMDA2NDE0IiwgXAotICAgICAgICAgICIwLjAwNjI1OSwgMC4wMDYzODEsIDAuMDA2Mzk5LCAwLjAwNjQwNCwgMC4wMDY0MDksIDAuMDA2NDExLCAwLjAwNjQxMyIsIFwKLSAgICAgICAgICAiMC4wMDYyNjcsIDAuMDA2Mzg3LCAwLjAwNjQwMywgMC4wMDY0MDgsIDAuMDA2NDEzLCAwLjAwNjQxNSwgMC4wMDY0MTgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDY2MjMsIDAuMDA2NzM2LCAwLjAwNjc1LCAwLjAwNjc1NCwgMC4wMDY3NTksIDAuMDA2NzU5LCAwLjAwNjc2MSIsIFwKLSAgICAgICAgICAiMC4wMDY2MTYsIDAuMDA2NzI5LCAwLjAwNjc0MywgMC4wMDY3NSwgMC4wMDY3NTEsIDAuMDA2NzU2LCAwLjAwNjc1NCIsIFwKLSAgICAgICAgICAiMC4wMDY2MTEsIDAuMDA2NzI0LCAwLjAwNjczOCwgMC4wMDY3NDMsIDAuMDA2NzQ4LCAwLjAwNjc0OCwgMC4wMDY3NDkiLCBcCi0gICAgICAgICAgIjAuMDA2NjA3LCAwLjAwNjcyLCAwLjAwNjczNCwgMC4wMDY3MzgsIDAuMDA2NzQyLCAwLjAwNjc0NCwgMC4wMDY3NDMiLCBcCi0gICAgICAgICAgIjAuMDA2NjAzLCAwLjAwNjcxNiwgMC4wMDY3MzEsIDAuMDA2NzM3LCAwLjAwNjczOCwgMC4wMDY3NCwgMC4wMDY3NDIiLCBcCi0gICAgICAgICAgIjAuMDA2NTk3LCAwLjAwNjcxLCAwLjAwNjcyNCwgMC4wMDY3MjgsIDAuMDA2NzMyLCAwLjAwNjczMiwgMC4wMDY3MzUiLCBcCi0gICAgICAgICAgIjAuMDA2NTkzLCAwLjAwNjcwNiwgMC4wMDY3MiwgMC4wMDY3MjQsIDAuMDA2NzMsIDAuMDA2NzMyLCAwLjAwNjczIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHNjYWxhcikgewotICAgICAgICB2YWx1ZXMoIjAiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFFOKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuNTI2NzQ3OwotICAgIGZ1bmN0aW9uIDogIlFCSU5UIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBub25fdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJpc2luZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjM1ODMxOCwgMC40ODUyNjgsIDAuNjEyMjEsIDAuNzAyODY1LCAwLjg0ODAwOSwgMC45NzUwMjgsIDEuMTU2NTIiLCBcCi0gICAgICAgICAgIjAuMzcwMTA1LCAwLjQ5NzAzMSwgMC42MjM5NiwgMC43MTQ2MzQsIDAuODU5NzgxLCAwLjk4Njc5MywgMS4xNjgzIiwgXAotICAgICAgICAgICIwLjM4NTM5MiwgMC41MTIzMDIsIDAuNjM5MTk4LCAwLjcyOTg4LCAwLjg3NTA0NCwgMS4wMDIwMywgMS4xODM1OSIsIFwKLSAgICAgICAgICAiMC40MDA5MzYsIDAuNTI3ODQ1LCAwLjY1NDc2NywgMC43NDU0NDksIDAuODkwNTg4LCAxLjAxNzYyLCAxLjE5OTEyIiwgXAotICAgICAgICAgICIwLjQxNjI0NiwgMC41NDMwODQsIDAuNjcwMDA2LCAwLjc2MDY4OCwgMC45MDU4MjgsIDEuMDMyODYsIDEuMjE0MzYiLCBcCi0gICAgICAgICAgIjAuNDQwNDYzLCAwLjU2NzQxNSwgMC42OTQzNTUsIDAuNzg1MDA4LCAwLjkzMDE1MywgMS4wNTcxNywgMS4yMzg2NiIsIFwKLSAgICAgICAgICAiMC40NjE1MjIsIDAuNTg4MzU3LCAwLjcxNTI4MSwgMC44MDU5NjMsIDAuOTUxMTAzLCAxLjA3ODE0LCAxLjI1OTY0Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU3NzYxLCAwLjMwOTcxMSwgMC41Njc2NjEsIDAuNzUyMzI1LCAxLjA0Njc2LCAxLjMwNTA5LCAxLjY3NDI3IiwgXAotICAgICAgICAgICIwLjA1Nzc2MywgMC4zMDk2NjMsIDAuNTY2Njg2LCAwLjc1MjIyNCwgMS4wNDY2MywgMS4zMDQ5OSwgMS42NzcwNiIsIFwKLSAgICAgICAgICAiMC4wNTc3NzksIDAuMzA5NzgxLCAwLjU2NzgwNywgMC43NTI1NTYsIDEuMDQ4NDYsIDEuMzA2OTYsIDEuNjczIiwgXAotICAgICAgICAgICIwLjA1Nzc1OCwgMC4zMDkwMDQsIDAuNTY3OCwgMC43NTI1NjQsIDEuMDQ3NzIsIDEuMzA1LCAxLjY3MTg3IiwgXAotICAgICAgICAgICIwLjA1NzgxMiwgMC4zMDkwMDIsIDAuNTY3Nzc2LCAwLjc1MjU2MiwgMS4wNDY1MywgMS4zMDUsIDEuNjc0MTQiLCBcCi0gICAgICAgICAgIjAuMDU3NzU4LCAwLjMwOTczOSwgMC41Njc2MzgsIDAuNzUyMzQzLCAxLjA0Njc3LCAxLjMwNTA2LCAxLjY3NDIyIiwgXAotICAgICAgICAgICIwLjA1NzgxMiwgMC4zMDkwMDEsIDAuNTY3ODE1LCAwLjc1MjU3NCwgMS4wNDY1NSwgMS4zMDQ5OSwgMS42NzQxNiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMwMzY0NiwgMC40NDk0MjUsIDAuNTk1Mzg3LCAwLjY5OTUxNCwgMC44NjY1MDgsIDEuMDEyNjEsIDEuMjIxMTQiLCBcCi0gICAgICAgICAgIjAuMzE1MzM2LCAwLjQ2MTA4NSwgMC42MDcwMTQsIDAuNzExMzMxLCAwLjg3ODE1MywgMS4wMjQyNywgMS4yMzI4IiwgXAotICAgICAgICAgICIwLjMzMDU4NCwgMC40NzYzNjUsIDAuNjIyMjk3LCAwLjcyNjQ1MSwgMC44OTM0NDIsIDEuMDM5NDcsIDEuMjQ4MDgiLCBcCi0gICAgICAgICAgIjAuMzQ2MDA3LCAwLjQ5MTc3MiwgMC42Mzc3NTIsIDAuNzQxOTAzLCAwLjkwODg2NSwgMS4wNTQ5MiwgMS4yNjM2NCIsIFwKLSAgICAgICAgICAiMC4zNjEyNjgsIDAuNTA3MDM0LCAwLjY1Mjk4LCAwLjc1NzMxNSwgMC45MjQxNTMsIDEuMDcwMTYsIDEuMjc4NzQiLCBcCi0gICAgICAgICAgIjAuMzg1NDkxLCAwLjUzMTI2LCAwLjY3NzIwMywgMC43ODE1MjQsIDAuOTQ4NDc1LCAxLjA5NDM5LCAxLjMwMjk3IiwgXAotICAgICAgICAgICIwLjQwNjE0NiwgMC41NTE4OTgsIDAuNjk3ODQ2LCAwLjgwMjE3NCwgMC45Njg4MTEsIDEuMTE1MDMsIDEuMzIzNjEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjE0ODMsIDAuMzQ2NTk3LCAwLjYzNjY0LCAwLjg0MzY0MSwgMS4xNzY0NCwgMS40NjU5NywgMS44ODEwOCIsIFwKLSAgICAgICAgICAiMC4wNjE0ODIsIDAuMzQ2NjAxLCAwLjYzNjYxNCwgMC44NDQzNTEsIDEuMTc2MDYsIDEuNDY1NzgsIDEuODgxMjMiLCBcCi0gICAgICAgICAgIjAuMDYxNDgyLCAwLjM0NjYsIDAuNjM2NjEyLCAwLjg0MzU4MSwgMS4xNzY0MSwgMS40NjcxMSwgMS44ODExNCIsIFwKLSAgICAgICAgICAiMC4wNjE0NjcsIDAuMzQ2NTc0LCAwLjYzNTQxMywgMC44NDI5MjYsIDEuMTc2MDYsIDEuNDY2NCwgMS44ODA3OSIsIFwKLSAgICAgICAgICAiMC4wNjE1LCAwLjM0NjU5NSwgMC42MzYzNzcsIDAuODQzOTMyLCAxLjE3NTk0LCAxLjQ2NjM2LCAxLjg4MTI0IiwgXAotICAgICAgICAgICIwLjA2MTQ4MiwgMC4zNDY1OTQsIDAuNjM2NDA3LCAwLjg0Mzg5NSwgMS4xNzU1MSwgMS40NjY0NSwgMS44ODEwOSIsIFwKLSAgICAgICAgICAiMC4wNjE0NjcsIDAuMzQ2NTk3LCAwLjYzNjM3LCAwLjg0MzkxNiwgMS4xNzU0NCwgMS40NjYzNSwgMS44ODEyNCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogY2xlYXI7Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjc4NDQyLCAwLjQyNDE4LCAwLjU3MDE1LCAwLjY3NDQ1MiwgMC44NDEyNzUsIDAuOTg3MjYxLCAxLjE5NTg0IiwgXAotICAgICAgICAgICIwLjI4OTg4OSwgMC40MzU2ODEsIDAuNTgxNjE4LCAwLjY4NTc5MSwgMC44NTI1ODksIDAuOTk4Nzk3LCAxLjIwNzMyIiwgXAotICAgICAgICAgICIwLjMwNDUxNSwgMC40NTAyNTUsIDAuNTk2MjI0LCAwLjcwMDUyNywgMC44NjczNjIsIDEuMDEzMzQsIDEuMjIxOTIiLCBcCi0gICAgICAgICAgIjAuMzE4ODcyLCAwLjQ2NDY2MiwgMC42MTA2NzcsIDAuNzE0OTI4LCAwLjg4MTc0MSwgMS4wMjc4MywgMS4yMzYzIiwgXAotICAgICAgICAgICIwLjMzMzM1NSwgMC40NzkxNDIsIDAuNjI1MDgsIDAuNzI5MjU3LCAwLjg5NjA0OCwgMS4wNDIyNywgMS4yNTA3OCIsIFwKLSAgICAgICAgICAiMC4zNTY1NjMsIDAuNTAyMzA0LCAwLjY0ODI3MywgMC43NTI1NzQsIDAuOTE5NDY5LCAxLjA2NTM4LCAxLjI3Mzk3IiwgXAotICAgICAgICAgICIwLjM3NjU0OSwgMC41MjIyOCwgMC42NjgyNDMsIDAuNzcyNTU3LCAwLjkzOTM4MiwgMS4wODUzNSwgMS4yOTM5MyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2MTU1LCAwLjM0NjYwNywgMC42MzY2NTQsIDAuODQzODM0LCAxLjE3NjEsIDEuNDY2NTcsIDEuODgxNjgiLCBcCi0gICAgICAgICAgIjAuMDYxNTU2LCAwLjM0NjYwOCwgMC42MzY3MDYsIDAuODQ0MDk2LCAxLjE3NjA3LCAxLjQ2NjY2LCAxLjg4MTY0IiwgXAotICAgICAgICAgICIwLjA2MTU1NywgMC4zNDY2MDgsIDAuNjM2NjYsIDAuODQ0NCwgMS4xNzYxMSwgMS40NjY1NywgMS44ODE2NCIsIFwKLSAgICAgICAgICAiMC4wNjE1NjQsIDAuMzQ2NjMxLCAwLjYzNjY3MSwgMC44NDM3NywgMS4xNzYxLCAxLjQ2NjU1LCAxLjg4MTY0IiwgXAotICAgICAgICAgICIwLjA2MTU5LCAwLjM0NjY0MiwgMC42MzY3LCAwLjg0NDA0OSwgMS4xNzYwOSwgMS40NjY2OCwgMS44ODE3NCIsIFwKLSAgICAgICAgICAiMC4wNjE1ODgsIDAuMzQ2ODA4LCAwLjYzNjQyMywgMC44NDM4MDEsIDEuMTc2MDgsIDEuNDY2NjEsIDEuODgxNjUiLCBcCi0gICAgICAgICAgIjAuMDYxNjE4LCAwLjM0NjYwOSwgMC42MzY2NzUsIDAuODQzOTI5LCAxLjE3NjA3LCAxLjQ2NjU3LCAxLjg4MTY4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2Mjc4LCAwLjAwNjM5OSwgMC4wMDY0MTcsIDAuMDA2NDIyLCAwLjAwNjQyNywgMC4wMDY0MywgMC4wMDY0MzIiLCBcCi0gICAgICAgICAgIjAuMDA2MjcyLCAwLjAwNjM5MywgMC4wMDY0MTEsIDAuMDA2NDE2LCAwLjAwNjQyMSwgMC4wMDY0MjMsIDAuMDA2NDI1IiwgXAotICAgICAgICAgICIwLjAwNjI2NywgMC4wMDYzODgsIDAuMDA2NDA1LCAwLjAwNjQxLCAwLjAwNjQxNSwgMC4wMDY0MTcsIDAuMDA2NDE5IiwgXAotICAgICAgICAgICIwLjAwNjI2NiwgMC4wMDYzODYsIDAuMDA2NDAzLCAwLjAwNjQwOCwgMC4wMDY0MTIsIDAuMDA2NDE1LCAwLjAwNjQxNiIsIFwKLSAgICAgICAgICAiMC4wMDYyNjEsIDAuMDA2MzgyLCAwLjAwNjQsIDAuMDA2NDA1LCAwLjAwNjQxLCAwLjAwNjQxMiwgMC4wMDY0MTQiLCBcCi0gICAgICAgICAgIjAuMDA2MjU5LCAwLjAwNjM4MSwgMC4wMDYzOTksIDAuMDA2NDA0LCAwLjAwNjQwOSwgMC4wMDY0MTEsIDAuMDA2NDEzIiwgXAotICAgICAgICAgICIwLjAwNjI2NywgMC4wMDYzODcsIDAuMDA2NDAzLCAwLjAwNjQwOCwgMC4wMDY0MTMsIDAuMDA2NDE1LCAwLjAwNjQxOCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2NDA5LCAwLjAwNjUyMywgMC4wMDY1MzcsIDAuMDA2NTQxLCAwLjAwNjU0NSwgMC4wMDY1NDUsIDAuMDA2NTQ4IiwgXAotICAgICAgICAgICIwLjAwNjQwMSwgMC4wMDY1MTUsIDAuMDA2NTI5LCAwLjAwNjUzMywgMC4wMDY1MzYsIDAuMDA2NTM5LCAwLjAwNjU0IiwgXAotICAgICAgICAgICIwLjAwNjM5NiwgMC4wMDY1MSwgMC4wMDY1MjMsIDAuMDA2NTI3LCAwLjAwNjUzMSwgMC4wMDY1MzMsIDAuMDA2NTMzIiwgXAotICAgICAgICAgICIwLjAwNjM5LCAwLjAwNjUwNSwgMC4wMDY1MiwgMC4wMDY1MjIsIDAuMDA2NTI2LCAwLjAwNjUyOCwgMC4wMDY1MyIsIFwKLSAgICAgICAgICAiMC4wMDYzODYsIDAuMDA2NTAxLCAwLjAwNjUxNSwgMC4wMDY1MiwgMC4wMDY1MjIsIDAuMDA2NTI0LCAwLjAwNjUyNiIsIFwKLSAgICAgICAgICAiMC4wMDYzODEsIDAuMDA2NDk2LCAwLjAwNjUxLCAwLjAwNjUxNCwgMC4wMDY1MTgsIDAuMDA2NTIsIDAuMDA2NTIxIiwgXAotICAgICAgICAgICIwLjAwNjM3OSwgMC4wMDY0OTQsIDAuMDA2NTA2LCAwLjAwNjUxMiwgMC4wMDY1MTcsIDAuMDA2NTE4LCAwLjAwNjUxOSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjYyMywgMC4wMDY3MzYsIDAuMDA2NzUsIDAuMDA2NzU0LCAwLjAwNjc1OSwgMC4wMDY3NTksIDAuMDA2NzYxIiwgXAotICAgICAgICAgICIwLjAwNjYxNiwgMC4wMDY3MjksIDAuMDA2NzQzLCAwLjAwNjc1LCAwLjAwNjc1MSwgMC4wMDY3NTYsIDAuMDA2NzU0IiwgXAotICAgICAgICAgICIwLjAwNjYxMSwgMC4wMDY3MjQsIDAuMDA2NzM4LCAwLjAwNjc0MywgMC4wMDY3NDgsIDAuMDA2NzQ4LCAwLjAwNjc0OSIsIFwKLSAgICAgICAgICAiMC4wMDY2MDcsIDAuMDA2NzIsIDAuMDA2NzM0LCAwLjAwNjczOCwgMC4wMDY3NDIsIDAuMDA2NzQ0LCAwLjAwNjc0MyIsIFwKLSAgICAgICAgICAiMC4wMDY2MDMsIDAuMDA2NzE2LCAwLjAwNjczMSwgMC4wMDY3MzcsIDAuMDA2NzM4LCAwLjAwNjc0LCAwLjAwNjc0MiIsIFwKLSAgICAgICAgICAiMC4wMDY1OTcsIDAuMDA2NzEsIDAuMDA2NzI0LCAwLjAwNjcyOCwgMC4wMDY3MzIsIDAuMDA2NzMyLCAwLjAwNjczNSIsIFwKLSAgICAgICAgICAiMC4wMDY1OTMsIDAuMDA2NzA2LCAwLjAwNjcyLCAwLjAwNjcyNCwgMC4wMDY3MywgMC4wMDY3MzIsIDAuMDA2NzMiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfcG93ZXIoc2NhbGFyKSB7Ci0gICAgICAgIHZhbHVlcygiMCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oU04pICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTMzMDA0OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTI0NjcyOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTMzMDA0OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDMzMSwgMC4wMDAzMywgMC4wMDAzMywgMC4wMDAzMywgMC4wMDAzMywgMC4wMDAzMywgMC4wMDAzMyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDMzMiwgMC4wMDAzMzIsIDAuMDAwMzMyLCAwLjAwMDMzMiwgMC4wMDAzMzIsIDAuMDAwMzMyLCAwLjAwMDMzMiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQiOwotICAgICAgc2RmX2NvbmQgOiAiRCA9PSAxJ2IwIjsKLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjI3ODQ0MiwgMC4yODk4ODksIDAuMzA0NTE1LCAwLjMxODg3MiwgMC4zMzMzNTUsIDAuMzU2NTYzLCAwLjM3NjU0OSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJlY292ZXJ5X3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUQiOwotICAgICAgc2RmX2NvbmQgOiAiRCA9PSAxJ2IwIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChyZWNvdmVyeV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDM3NSwgMC4wMzI1LCAwLjAxMzc1LCAwLjAwMTI1LCAtMC4wMTc1LCAtMC4wNCwgLTAuMDYxMjUiLCBcCi0gICAgICAgICAgIjAuMDU1LCAwLjA0Mzc1LCAwLjAzMTI1LCAwLjAxMjUsIC0wLjAwNjI1LCAtMC4wMjg3NSwgLTAuMDUiLCBcCi0gICAgICAgICAgIjAuMDczNzUsIDAuMDU2MjUsIDAuMDQzNzUsIDAuMDI1LCAwLjAwNjI1LCAtMC4wMTYyNSwgLTAuMDM3NSIsIFwKLSAgICAgICAgICAiMC4wODYyNSwgMC4wNjg3NSwgMC4wNTYyNSwgMC4wMzc1LCAwLjAyNSwgLTAuMDAzNzUsIC0wLjAyNSIsIFwKLSAgICAgICAgICAiMC4wOTg3NSwgMC4wODc1LCAwLjA2ODc1LCAwLjA1LCAwLjAzNzUsIDAuMDA4NzUsIC0wLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMTIxMjUsIDAuMTAzNzUsIDAuMDkxMjUsIDAuMDcyNSwgMC4wNiwgMC4wMzEyNSwgMC4wMSIsIFwKLSAgICAgICAgICAiMC4xMzYyNSwgMC4xMjUsIDAuMTEyNSwgMC4wOTM3NSwgMC4wNzUsIDAuMDUyNSwgMC4wMzEyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJlbW92YWxfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRCI7Ci0gICAgICBzZGZfY29uZCA6ICJEID09IDEnYjAiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHJlbW92YWxfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU2MjUsIDAuMDY3NSwgMC4wOCwgMC4wOTg3NSwgMC4xMTEyNSwgMC4xMzM3NSwgMC4xNTUiLCBcCi0gICAgICAgICAgIjAuMDQ1LCAwLjA1NjI1LCAwLjA2ODc1LCAwLjA4NzUsIDAuMSwgMC4xMjg3NSwgMC4xNDM3NSIsIFwKLSAgICAgICAgICAiMC4wMzI1LCAwLjA0Mzc1LCAwLjA1NjI1LCAwLjA3NSwgMC4wODc1LCAwLjExLCAwLjEzMTI1IiwgXAotICAgICAgICAgICIwLjAyLCAwLjAzMTI1LCAwLjA0Mzc1LCAwLjA2MjUsIDAuMDc1LCAwLjA5NzUsIDAuMTE4NzUiLCBcCi0gICAgICAgICAgIjAuMDAxMjUsIDAuMDEyNSwgMC4wMzEyNSwgMC4wNDM3NSwgMC4wNjI1LCAwLjA4NSwgMC4xMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDIxMjUsIC0wLjAxLCAwLjAwODc1LCAwLjAyMTI1LCAwLjA0LCAwLjA2MjUsIDAuMDgzNzUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMjUsIC0wLjAxMjUsIDAuMDA2MjUsIDAuMDE4NzUsIDAuMDQ3NSwgMC4wNjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBERkZTWEwgKgotICogLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChERkZTWEwpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4yNDE2NjI7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgZmYgKE4zNSxRQklOVCkgewotICAgIG5leHRfc3RhdGUgOiAiRCI7Ci0gICAgY2xvY2tlZF9vbiA6ICJDSyI7Ci0gICAgcHJlc2V0IDogIighU04pIjsKLSAgfQotICBwaW4oQ0spICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDU5NDU4OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDU5NDMwNzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA1OTQ1ODsKLSAgICBjbG9jayA6IHRydWU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxOTc3LCAwLjAwMTk2NSwgMC4wMDE5NTMsIDAuMDAxOTQ4LCAwLjAwMTk0MiwgMC4wMDE5MzYsIDAuMDAxOTM0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA1OTMyLCAwLjAwNTkyNSwgMC4wMDU5MTcsIDAuMDA1OTExLCAwLjAwNTkwNiwgMC4wMDU5MDEsIDAuMDA1ODk4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRCZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjQyMDY2NywgMC40MzI1MDEsIDAuNDQ3NDY1LCAwLjQ2MzA4OSwgMC40NzgzMTcsIDAuNTAyNywgMC41MjM1ODIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjI1Mzk0MiwgMC4yNjU0NjIsIDAuMjgwNDM0LCAwLjI5NTM4NiwgMC4zMDk5MzUsIDAuMzMyNTg3LCAwLjM1MTgxNiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjA5MDcxOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYwNzU3NjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2MDkwNzE7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyMzc5LCAwLjAwMjM2OSwgMC4wMDIzNjEsIDAuMDAyMzU3LCAwLjAwMjM1MywgMC4wMDIzNDgsIDAuMDAyMzQzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyNjI4LCAwLjAwMjYyMiwgMC4wMDI2MTgsIDAuMDAyNjE1LCAwLjAwMjYxMywgMC4wMDI2MDksIDAuMDAyNjA4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlNOIjsKLSAgICAgIHNkZl9jb25kIDogIlNOID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjA0Mzc1LCAtMC4wMzg3NSwgLTAuMDI2MjUsIC0wLjAxMzc1LCAtMC4wMDEyNSwgMC4wMDg3NSwgMC4wMjM3NSIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNSwgLTAuMDM3NSwgLTAuMDI1LCAtMC4wMTI1LCAtMC4wMDI1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjA3Mzc1LCAtMC4wNjI1LCAtMC4wNSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAxNSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA4NjI1LCAtMC4wNzUsIC0wLjA2MjUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDI3NSwgLTAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjA5ODc1LCAtMC4wODc1LCAtMC4wNzUsIC0wLjA2ODc1LCAtMC4wNTYyNSwgLTAuMDQsIC0wLjAzMTI1IiwgXAotICAgICAgICAgICItMC4xMjEyNSwgLTAuMTEsIC0wLjA5NzUsIC0wLjA4NSwgLTAuMDc4NzUsIC0wLjA2MjUsIC0wLjA1Mzc1IiwgXAotICAgICAgICAgICItMC4xMzYyNSwgLTAuMTI1LCAtMC4xMTI1LCAtMC4xMDYyNSwgLTAuMDkzNzUsIC0wLjA3NzUsIC0wLjA2ODc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDM3NSwgMC4wNTUsIDAuMDczNzUsIDAuMDg2MjUsIDAuMTA1LCAwLjEyNzUsIDAuMTQyNSIsIFwKLSAgICAgICAgICAiMC4wMzI1LCAwLjA0Mzc1LCAwLjA2MjUsIDAuMDc1LCAwLjA4NzUsIDAuMTEsIDAuMTMxMjUiLCBcCi0gICAgICAgICAgIjAuMDIsIDAuMDMxMjUsIDAuMDUsIDAuMDYyNSwgMC4wNzUsIDAuMDk3NSwgMC4xMTg3NSIsIFwKLSAgICAgICAgICAiMC4wMDc1LCAwLjAxODc1LCAwLjAzNzUsIDAuMDUsIDAuMDYyNSwgMC4wOTEyNSwgMC4xMDYyNSIsIFwKLSAgICAgICAgICAiMC4wMDEyNSwgMC4wMTI1LCAwLjAyNSwgMC4wMzc1LCAwLjA1NjI1LCAwLjA3ODc1LCAwLjEiLCBcCi0gICAgICAgICAgIi0wLjAxNSwgLTAuMDAzNzUsIDAuMDA4NzUsIDAuMDI3NSwgMC4wNCwgMC4wNjI1LCAwLjA4Mzc1IiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDEyNSwgMCwgMC4wMTI1LCAwLjAzMTI1LCAwLjA1Mzc1LCAwLjA2ODc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJTTiA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTI1LCAwLjEwMTI1LCAwLjA4ODc1LCAwLjA3NjI1LCAwLjA2Mzc1LCAwLjA0NzUsIDAuMDMyNSIsIFwKLSAgICAgICAgICAiMC4xMywgMC4xMTI1LCAwLjEsIDAuMDg3NSwgMC4wNzUsIDAuMDU4NzUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMTQyNSwgMC4xMzEyNSwgMC4xMTI1LCAwLjEsIDAuMDg3NSwgMC4wNzEyNSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiMC4xNTUsIDAuMTQzNzUsIDAuMTI1LCAwLjExMjUsIDAuMSwgMC4wODM3NSwgMC4wNzUiLCBcCi0gICAgICAgICAgIjAuMTY3NSwgMC4xNTYyNSwgMC4xNDM3NSwgMC4xMjUsIDAuMTEyNSwgMC4wOTYyNSwgMC4wODc1IiwgXAotICAgICAgICAgICIwLjE5LCAwLjE3ODc1LCAwLjE2LCAwLjE0NzUsIDAuMTM1LCAwLjExODc1LCAwLjExIiwgXAotICAgICAgICAgICIwLjIxMTI1LCAwLjE5Mzc1LCAwLjE4MTI1LCAwLjE2ODc1LCAwLjE1NjI1LCAwLjE0LCAwLjEyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEzMTI1LCAwLjExMzc1LCAwLjEwMTI1LCAwLjA4MjUsIDAuMDYzNzUsIDAuMDQxMjUsIDAuMDIiLCBcCi0gICAgICAgICAgIjAuMTM2MjUsIDAuMTI1LCAwLjExMjUsIDAuMDkzNzUsIDAuMDc1LCAwLjA1MjUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMTU1LCAwLjEzNzUsIDAuMTI1LCAwLjEwNjI1LCAwLjA4NzUsIDAuMDY1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjE2NzUsIDAuMTUsIDAuMTM3NSwgMC4xMTg3NSwgMC4xLCAwLjA3NzUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIjAuMTczNzUsIDAuMTYyNSwgMC4xNSwgMC4xMzEyNSwgMC4xMTI1LCAwLjA5LCAwLjA2ODc1IiwgXAotICAgICAgICAgICIwLjE5NjI1LCAwLjE4NSwgMC4xNjYyNSwgMC4xNDc1LCAwLjEzNSwgMC4xMDYyNSwgMC4wODUiLCBcCi0gICAgICAgICAgIjAuMjExMjUsIDAuMiwgMC4xODEyNSwgMC4xNjg3NSwgMC4xNSwgMC4xMjc1LCAwLjEiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFEpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4wNzM0MzQzOwotICAgIGZ1bmN0aW9uIDogIk4zNSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3NlbnNlIDogbm9uX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiByaXNpbmdfZWRnZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzQ3NTM2LCAwLjM3MzA1NywgMC42MDA1OSwgMC45Nzk2MjksIDEuMzU5NjEsIDIuMjQ3NDcsIDIuNzUwNzYiLCBcCi0gICAgICAgICAgIjAuMzU5NzUyLCAwLjM4NDg5MiwgMC42MTI2OTUsIDAuOTkxODg1LCAxLjM3MTcsIDIuMjYwOTQsIDIuNzY3OSIsIFwKLSAgICAgICAgICAiMC4zNzQ2OTEsIDAuMzk5OTI3LCAwLjYyNzAwOCwgMS4wMDc2OSwgMS4zODY5NiwgMi4yNzQ2NiwgMi43Nzc2MiIsIFwKLSAgICAgICAgICAiMC4zOTAwMTQsIDAuNDE1NzE0LCAwLjY0MzIxMSwgMS4wMjIyNCwgMS40MDIyMSwgMi4yOTAzNCwgMi43OTU4MSIsIFwKLSAgICAgICAgICAiMC40MDU0NjksIDAuNDMwOTksIDAuNjU4NTQxLCAxLjAzNzYsIDEuNDE4LCAyLjMwNTQ3LCAyLjgwOTM5IiwgXAotICAgICAgICAgICIwLjQyOTcxNCwgMC40NTQ4NjksIDAuNjgyNjU3LCAxLjA2MTg1LCAxLjQ0MTY3LCAyLjMzMDk5LCAyLjgzNzk1IiwgXAotICAgICAgICAgICIwLjQ1MDUzOSwgMC40NzU2ODgsIDAuNzAzMjEzLCAxLjA4NDg5LCAxLjQ2MzQ3LCAyLjM1MDQ1LCAyLjg1NDM2Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI3NjYxNSwgMC4zMjg2NjEsIDAuNzg5NjEsIDEuNTc1OTMsIDIuMzU1NzEsIDQuMTcwNzMsIDUuMTg2ODciLCBcCi0gICAgICAgICAgIjAuMjc2NjI2LCAwLjMyODI0OSwgMC43ODk4MDEsIDEuNTc1ODcsIDIuMzU1NjYsIDQuMTI1MzMsIDUuMTgwNzUiLCBcCi0gICAgICAgICAgIjAuMjc2OTU0LCAwLjMyODI2OSwgMC43ODc3MDMsIDEuNTc2MSwgMi4zNTU2MSwgNC4xNzAxLCA1LjE4Njg2IiwgXAotICAgICAgICAgICIwLjI3NzA4OSwgMC4zMjg1NTUsIDAuNzg5NzI3LCAxLjU3NTkzLCAyLjM1NTYxLCA0LjE2OTY0LCA1LjE4MjY1IiwgXAotICAgICAgICAgICIwLjI3NjY3NSwgMC4zMjg2OTYsIDAuNzg5NTQzLCAxLjU3NTg3LCAyLjM1NDc3LCA0LjE2OTk1LCA1LjE1NTY1IiwgXAotICAgICAgICAgICIwLjI3NjYzNCwgMC4zMjgyNDMsIDAuNzg5ODI2LCAxLjU3NTg3LCAyLjM1NTY2LCA0LjE0OTE5LCA1LjE4OTEiLCBcCi0gICAgICAgICAgIjAuMjc1ODE0LCAwLjMyODI4NiwgMC43ODMxMzIsIDEuNTY2ODgsIDIuMzUzOSwgNC4xNjk5NywgNS4xODciKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuNDIwNjY3LCAwLjQ1MDU5LCAwLjcxOTI1NCwgMS4xNjcxOCwgMS42MDg3MSwgMi42NDkxLCAzLjI1MzMzIiwgXAotICAgICAgICAgICIwLjQzMjUwMSwgMC40NjI0MjIsIDAuNzI5NTksIDEuMTc1NTEsIDEuNjIxNCwgMi42Njg2MiwgMy4yNjQ3OCIsIFwKLSAgICAgICAgICAiMC40NDc0NjUsIDAuNDc3MjYyLCAwLjc0NjA0OSwgMS4xOTA2NSwgMS42MzU2NSwgMi42ODM5NywgMy4yODA1MSIsIFwKLSAgICAgICAgICAiMC40NjMwODksIDAuNDkyODc1LCAwLjc2MTY3MywgMS4yMDYyNiwgMS42NTEwOSwgMi42OTk2NCwgMy4yOTUyMyIsIFwKLSAgICAgICAgICAiMC40NzgzMTcsIDAuNTA4MjM5LCAwLjc3NjY3OCwgMS4yMjE0LCAxLjY2NzI3LCAyLjcxNDM5LCAzLjMxMDYiLCBcCi0gICAgICAgICAgIjAuNTAyNywgMC41MzI2MjEsIDAuODAxNDE3LCAxLjI0NTI0LCAxLjY5MDg1LCAyLjczOTE1LCAzLjMzNTE1IiwgXAotICAgICAgICAgICIwLjUyMzU4MiwgMC41NTM1MDMsIDAuODIwNjQ2LCAxLjI2NjU3LCAxLjcxMjQ4LCAyLjc1OTcxLCAzLjM1NTg2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMxMzUxMywgMC4zNzE4MDYsIDAuODk5MTA3LCAxLjc4NTAxLCAyLjY2MTIxLCA0LjcxNjEsIDUuOTExMDkiLCBcCi0gICAgICAgICAgIjAuMzEzMzM1LCAwLjM3MTg2OSwgMC45MDExNywgMS43ODM0NSwgMi42NjQ5MiwgNC43MTY1OCwgNS45MTg5MiIsIFwKLSAgICAgICAgICAiMC4zMTMyMjEsIDAuMzcxMzksIDAuODk5OTEyLCAxLjc4MjIxLCAyLjY2MjUxLCA0LjcxODk4LCA1LjkxNzAxIiwgXAotICAgICAgICAgICIwLjMxMzIwOCwgMC4zNzE0MDIsIDAuODk5OTI5LCAxLjc4MjMyLCAyLjY1OTU0LCA0LjcyMDAyLCA1LjkxOTI0IiwgXAotICAgICAgICAgICIwLjMxMzM0LCAwLjM3MTg3NCwgMC45MDA0NDcsIDEuNzgwNzQsIDIuNjY4MywgNC43MTY5NywgNS45MTg4OSIsIFwKLSAgICAgICAgICAiMC4zMTMzMzEsIDAuMzcxODY1LCAwLjg5OTcxNSwgMS43Nzg5NiwgMi42Njk1MiwgNC43MTcwNywgNS45MTg3OSIsIFwKLSAgICAgICAgICAiMC4zMTMzMzUsIDAuMzcxODY4LCAwLjkwMDMxMSwgMS43ODQyMywgMi42NjQzLCA0LjcxNjUxLCA1LjkxODkyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiBwcmVzZXQ7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMyNzcyNywgMC4zNTI5ODgsIDAuNTgwNTEzLCAwLjk1OTY4OSwgMS4zNDA5MiwgMi4yMjU2OSwgMi43MzE0NSIsIFwKLSAgICAgICAgICAiMC4zMzkxNzQsIDAuMzY0NjMzLCAwLjU5MjQwNywgMC45NzI2ODIsIDEuMzUyNjQsIDIuMjM4OCwgMi43NDM4OCIsIFwKLSAgICAgICAgICAiMC4zNTM4MjQsIDAuMzc5MDg5LCAwLjYwNjc5NCwgMC45ODU5OCwgMS4zNjY5NCwgMi4yNTI0MiwgMi43NTgzNCIsIFwKLSAgICAgICAgICAiMC4zNjgzMDgsIDAuMzkzNTUxLCAwLjYyMjEwOCwgMS4wMDE4NCwgMS4zODAzMiwgMi4yNjYyLCAyLjc3MTc0IiwgXAotICAgICAgICAgICIwLjM4Mjg0NywgMC40MDgwNDMsIDAuNjM1NjY5LCAxLjAxNjksIDEuMzk2MTQsIDIuMjgwODMsIDIuNzg1NDUiLCBcCi0gICAgICAgICAgIjAuNDA2MjY5LCAwLjQzMTQxNiwgMC42NTkwMTUsIDEuMDM5NjgsIDEuNDE5NTcsIDIuMzA0MzUsIDIuODEzMzciLCBcCi0gICAgICAgICAgIjAuNDI2NDMxLCAwLjQ1MTcyLCAwLjY3OTQ0NiwgMS4wNTk3MSwgMS40Mzc3NSwgMi4zMjMyNCwgMi44Mjk2MiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yNzYxNzMsIDAuMzI4Nzk5LCAwLjc5NTkzNiwgMS41NzYsIDIuMzU1ODEsIDQuMTc0NjEsIDUuMTU4ODMiLCBcCi0gICAgICAgICAgIjAuMjc3MjQ3LCAwLjMyODc4LCAwLjc5NTk2MSwgMS41NzYwMiwgMi4zNTU4MSwgNC4xNzE3MywgNS4xOTMyMiIsIFwKLSAgICAgICAgICAiMC4yNzcwODYsIDAuMzI4NzA5LCAwLjc5NTkzMiwgMS41NzYwMSwgMi4zNTU4MywgNC4xNzQ2MiwgNS4xNzA2NyIsIFwKLSAgICAgICAgICAiMC4yNzcwOTMsIDAuMzI4NzgzLCAwLjc5MzI1MSwgMS41NzYwMywgMi4zNTU4MSwgNC4xNzQ2OSwgNS4xOTI1NyIsIFwKLSAgICAgICAgICAiMC4yNzcxNzEsIDAuMzI4NDk1LCAwLjc5NTk5NywgMS41NzU5OCwgMi4zNTU4MiwgNC4xNTk0MSwgNS4xODY4OCIsIFwKLSAgICAgICAgICAiMC4yNzcxMTMsIDAuMzI4NzcxLCAwLjc5NTk3OSwgMS41NzYwNCwgMi4zNTU2MiwgNC4xNzIxLCA1LjE4ODg2IiwgXAotICAgICAgICAgICIwLjI3NzA5OSwgMC4zMjg1MTQsIDAuNzk0Nzc1LCAxLjU3NjAyLCAyLjM1NTYsIDQuMTcwOTksIDUuMTg3MDQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzMTQxLCAwLjAwMzE0MiwgMC4wMDMxNDMsIDAuMDAzMTQ0LCAwLjAwMzE0NCwgMC4wMDMxNDQsIDAuMDAzMTQ0IiwgXAotICAgICAgICAgICIwLjAwMzEzNSwgMC4wMDMxMzYsIDAuMDAzMTM4LCAwLjAwMzEzOCwgMC4wMDMxMzgsIDAuMDAzMTM5LCAwLjAwMzEzOSIsIFwKLSAgICAgICAgICAiMC4wMDMxMjksIDAuMDAzMTMsIDAuMDAzMTMxLCAwLjAwMzEzMiwgMC4wMDMxMzIsIDAuMDAzMTMyLCAwLjAwMzEzMiIsIFwKLSAgICAgICAgICAiMC4wMDMxMjUsIDAuMDAzMTI1LCAwLjAwMzEyNywgMC4wMDMxMjcsIDAuMDAzMTI4LCAwLjAwMzEyOCwgMC4wMDMxMjgiLCBcCi0gICAgICAgICAgIjAuMDAzMTIxLCAwLjAwMzEyMiwgMC4wMDMxMjMsIDAuMDAzMTI0LCAwLjAwMzEyNCwgMC4wMDMxMjQsIDAuMDAzMTI0IiwgXAotICAgICAgICAgICIwLjAwMzExNiwgMC4wMDMxMTcsIDAuMDAzMTE4LCAwLjAwMzExOSwgMC4wMDMxMTksIDAuMDAzMTE5LCAwLjAwMzExOSIsIFwKLSAgICAgICAgICAiMC4wMDMxMTQsIDAuMDAzMTE1LCAwLjAwMzExNiwgMC4wMDMxMTcsIDAuMDAzMTE3LCAwLjAwMzExNywgMC4wMDMxMTciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI3MDEsIDAuMDAyNzAxLCAwLjAwMjcwMywgMC4wMDI3MDQsIDAuMDAyNzA0LCAwLjAwMjcwNSwgMC4wMDI3MDUiLCBcCi0gICAgICAgICAgIjAuMDAyNjkzLCAwLjAwMjY5NCwgMC4wMDI2OTYsIDAuMDAyNjk3LCAwLjAwMjY5NywgMC4wMDI2OTcsIDAuMDAyNjk3IiwgXAotICAgICAgICAgICIwLjAwMjY4NiwgMC4wMDI2ODcsIDAuMDAyNjg5LCAwLjAwMjY5LCAwLjAwMjY5LCAwLjAwMjY5LCAwLjAwMjY5IiwgXAotICAgICAgICAgICIwLjAwMjY4NCwgMC4wMDI2ODUsIDAuMDAyNjg3LCAwLjAwMjY4OCwgMC4wMDI2ODgsIDAuMDAyNjg5LCAwLjAwMjY4OCIsIFwKLSAgICAgICAgICAiMC4wMDI2ODEsIDAuMDAyNjgyLCAwLjAwMjY4NCwgMC4wMDI2ODUsIDAuMDAyNjg1LCAwLjAwMjY4NSwgMC4wMDI2ODUiLCBcCi0gICAgICAgICAgIjAuMDAyNjgsIDAuMDAyNjgxLCAwLjAwMjY4NCwgMC4wMDI2ODUsIDAuMDAyNjg1LCAwLjAwMjY4NiwgMC4wMDI2ODYiLCBcCi0gICAgICAgICAgIjAuMDAyNjgyLCAwLjAwMjY4MywgMC4wMDI2ODUsIDAuMDAyNjg2LCAwLjAwMjY4NiwgMC4wMDI2ODcsIDAuMDAyNjg3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiU04iOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzYxMSwgMC4wMDM2MTEsIDAuMDAzNjEzLCAwLjAwMzYxNCwgMC4wMDM2MTQsIDAuMDAzNjE0LCAwLjAwMzYxNCIsIFwKLSAgICAgICAgICAiMC4wMDM2MDQsIDAuMDAzNjA1LCAwLjAwMzYwNywgMC4wMDM2MDcsIDAuMDAzNjA3LCAwLjAwMzYwNywgMC4wMDM2MDciLCBcCi0gICAgICAgICAgIjAuMDAzNjAxLCAwLjAwMzYwMSwgMC4wMDM2MDMsIDAuMDAzNjAzLCAwLjAwMzYwMywgMC4wMDM2MDMsIDAuMDAzNjAzIiwgXAotICAgICAgICAgICIwLjAwMzU5OCwgMC4wMDM1OTgsIDAuMDAzNiwgMC4wMDM2LCAwLjAwMzYsIDAuMDAzNjAxLCAwLjAwMzYwMSIsIFwKLSAgICAgICAgICAiMC4wMDM1OTYsIDAuMDAzNTk3LCAwLjAwMzU5OCwgMC4wMDM1OTksIDAuMDAzNTk5LCAwLjAwMzU5OSwgMC4wMDM1OTkiLCBcCi0gICAgICAgICAgIjAuMDAzNTkzLCAwLjAwMzU5NCwgMC4wMDM1OTUsIDAuMDAzNTk2LCAwLjAwMzU5NiwgMC4wMDM1OTYsIDAuMDAzNTk2IiwgXAotICAgICAgICAgICIwLjAwMzU5MiwgMC4wMDM1OTMsIDAuMDAzNTk0LCAwLjAwMzU5NCwgMC4wMDM1OTQsIDAuMDAzNTk1LCAwLjAwMzU5NSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihzY2FsYXIpIHsKLSAgICAgICAgdmFsdWVzKCIwIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihRTikgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjA3MDk4NDQ7Ci0gICAgZnVuY3Rpb24gOiAiUUJJTlQiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5vbl91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcmlzaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjQyMDM1MywgMC40NDU1NzcsIDAuNjcyNzM5LCAxLjA1MTQsIDEuNDMwMjYsIDIuMzEzNTYsIDIuODE4NDciLCBcCi0gICAgICAgICAgIjAuNDMyMTQxLCAwLjQ1NzM3NCwgMC42ODQ1OTIsIDEuMDYzMjcsIDEuNDQxOTUsIDIuMzI1NTcsIDIuODMwNDQiLCBcCi0gICAgICAgICAgIjAuNDQ3MTIsIDAuNDcyMzU1LCAwLjY5OTUyMywgMS4wNzgxNiwgMS40NTcwNywgMi4zNDA0NywgMi44NDUyMSIsIFwKLSAgICAgICAgICAiMC40NjI3NTEsIDAuNDg3OTY2LCAwLjcxNTE1MywgMS4wOTM4LCAxLjQ3MjY4LCAyLjM1NjA5LCAyLjg2MTAyIiwgXAotICAgICAgICAgICIwLjQ3Nzk1OCwgMC41MDMxOTEsIDAuNzMwNDAxLCAxLjEwOTA3LCAxLjQ4Nzc2LCAyLjM3MTQsIDIuODc2MjUiLCBcCi0gICAgICAgICAgIjAuNTAyMzM2LCAwLjUyNzU2OSwgMC43NTQ4ODksIDEuMTMzNTYsIDEuNTEyMjUsIDIuMzk1ODIsIDIuOTAwOCIsIFwKLSAgICAgICAgICAiMC41MjMyMjIsIDAuNTQ4NDU1LCAwLjc3NTY3NCwgMS4xNTQzNSwgMS41MzMwMywgMi40MTY2NSwgMi45MjE1MiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yNzAzNjIsIDAuMzIxNTMyLCAwLjc4MzE2LCAxLjU1MzExLCAyLjMxNjg5LCA0LjExMTc3LCA1LjEzODQ0IiwgXAotICAgICAgICAgICIwLjI3MDI3OSwgMC4zMjE1MTIsIDAuNzgxNjI2LCAxLjU0OTc1LCAyLjMxNzU3LCA0LjExODY5LCA1LjEzODMzIiwgXAotICAgICAgICAgICIwLjI3MDI3MywgMC4zMjA2OTUsIDAuNzgzMTksIDEuNTUwMzUsIDIuMzE2MDcsIDQuMTE4NzMsIDUuMTM4NjMiLCBcCi0gICAgICAgICAgIjAuMjcwMjcxLCAwLjMyMTAyMiwgMC43ODMxNzEsIDEuNTUwMzYsIDIuMzE2ODgsIDQuMTE4NzQsIDUuMTM4MjQiLCBcCi0gICAgICAgICAgIjAuMjcwMjgsIDAuMzIxNTE0LCAwLjc4MzU2NCwgMS41NDk1OSwgMi4zMTczMiwgNC4xMTg2NCwgNS4xMzgzMyIsIFwKLSAgICAgICAgICAiMC4yNzAyNzksIDAuMzIxNTExLCAwLjc4MzE2OSwgMS41NTA0NiwgMi4zMTg5MiwgNC4xMTg2NywgNS4xMzgzOCIsIFwKLSAgICAgICAgICAiMC4yNzAyNzksIDAuMzIxNTEyLCAwLjc4MTU1NywgMS41NDk3NCwgMi4zMTc2LCA0LjExODY0LCA1LjEzODMzIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjM5MjIzMiwgMC40MjE5MjYsIDAuNjg5MjA1LCAxLjEzNDU5LCAxLjU4MDAyLCAyLjYxOTQ1LCAzLjIxMzE0IiwgXAotICAgICAgICAgICIwLjQwNDQ0LCAwLjQzNDE0OSwgMC43MDE0MSwgMS4xNDY4LCAxLjU5MjIzLCAyLjYzMTc2LCAzLjIyNTciLCBcCi0gICAgICAgICAgIjAuNDE5MzcxLCAwLjQ0OTA1NywgMC43MTYyMDcsIDEuMTYxNzksIDEuNjA3MTcsIDIuNjQ2NTksIDMuMjQwMjYiLCBcCi0gICAgICAgICAgIjAuNDM0OTA3LCAwLjQ2NDU3OSwgMC43MzE4NTYsIDEuMTc3MjQsIDEuNjIyNjcsIDIuNjYyMTIsIDMuMjU1ODUiLCBcCi0gICAgICAgICAgIjAuNDUwMTY1LCAwLjQ3OTg2MywgMC43NDcxNDMsIDEuMTkyNTMsIDEuNjM4LCAyLjY3NzM5LCAzLjI3MTA4IiwgXAotICAgICAgICAgICIwLjQ3NDM5OSwgMC41MDQxMDYsIDAuNzcxMzY3LCAxLjIxNjc2LCAxLjY2MjE4LCAyLjcwMTczLCAzLjI5NTY3IiwgXAotICAgICAgICAgICIwLjQ5NTEyNiwgMC41MjQ4MTgsIDAuNzkxOTg2LCAxLjIzNzY2LCAxLjY4Mjk5LCAyLjcyMjM1LCAzLjMxNjEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzA5MTgsIDAuMzY3ODg4LCAwLjg5NzAwOSwgMS43Nzg0NSwgMi42NjAxNiwgNC43MTc0LCA1Ljg5MTIiLCBcCi0gICAgICAgICAgIjAuMzA5MTc4LCAwLjM2NzkxNSwgMC44OTY5OCwgMS43Nzg0NSwgMi42NjAxNywgNC43MTM4NiwgNS44ODk1IiwgXAotICAgICAgICAgICIwLjMwOTE1OSwgMC4zNjc5LCAwLjg5NjM3MSwgMS43Nzg1OSwgMi42NjAyNiwgNC43MTczNiwgNS44OTExOSIsIFwKLSAgICAgICAgICAiMC4zMDkxNTIsIDAuMzY3ODc0LCAwLjg5Njk5NCwgMS43Nzg0NSwgMi42NjAxNSwgNC43MTczNCwgNS44OSIsIFwKLSAgICAgICAgICAiMC4zMDkxNDMsIDAuMzY3ODksIDAuODk2OTc3LCAxLjc3ODQ0LCAyLjY2MDI0LCA0LjcxNzM0LCA1Ljg4OTI5IiwgXAotICAgICAgICAgICIwLjMwOTE3OCwgMC4zNjc4NzUsIDAuODk2OTc4LCAxLjc3ODQ1LCAyLjY2MDE3LCA0LjcxNDY4LCA1Ljg4OTE0IiwgXAotICAgICAgICAgICIwLjMwOTAzOSwgMC4zNjc5LCAwLjg5NjI0NywgMS43Nzc2MiwgMi42NjAyMiwgNC43MTczNSwgNS44OTEyNyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogY2xlYXI7Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjM3MjkyOSwgMC40MDI2MiwgMC42Njk4NjMsIDEuMTE1MjYsIDEuNTYwNywgMi41OTk4OCwgMy4xOTM3MiIsIFwKLSAgICAgICAgICAiMC4zODQ0MTIsIDAuNDE0MTE3LCAwLjY4MTM2LCAxLjEyNjgxLCAxLjU3MjIyLCAyLjYxMTQyLCAzLjIwNTI4IiwgXAotICAgICAgICAgICIwLjM5OTAzMSwgMC40Mjg3MjEsIDAuNjk1OTY1LCAxLjE0MTM3LCAxLjU4NjgsIDIuNjI2MDEsIDMuMjE5ODMiLCBcCi0gICAgICAgICAgIjAuNDEzNTMyLCAwLjQ0MzIzNywgMC43MTA0ODUsIDEuMTU1OSwgMS42MDEyOCwgMi42NDA1LCAzLjIzNDM0IiwgXAotICAgICAgICAgICIwLjQyNzk4NCwgMC40NTc2ODcsIDAuNzI0OTQ0LCAxLjE3MDQ2LCAxLjYxNTc4LCAyLjY1NDk5LCAzLjI0ODg1IiwgXAotICAgICAgICAgICIwLjQ1MTQwNiwgMC40ODExMDcsIDAuNzQ4MzUzLCAxLjE5MzgsIDEuNjM5MiwgMi42Nzg0LCAzLjI3MjU4IiwgXAotICAgICAgICAgICIwLjQ3MTU5NywgMC41MDEyNzksIDAuNzY4NTQsIDEuMjEzOTYsIDEuNjU5MzIsIDIuNjk4NTUsIDMuMjkyNDIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzA5MTcyLCAwLjM2Nzk1OCwgMC44OTY4MzIsIDEuNzc4NTEsIDIuNjYwMzEsIDQuNzE3MzYsIDUuODkwNjMiLCBcCi0gICAgICAgICAgIjAuMzA5MjIzLCAwLjM2Nzk1NCwgMC44OTY4MywgMS43Nzg1MiwgMi42NjAyOCwgNC43MTczNCwgNS44ODk0MSIsIFwKLSAgICAgICAgICAiMC4zMDkxOTQsIDAuMzY3OTQ1LCAwLjg5NjgyMiwgMS43Nzg1NSwgMi42NjAyOSwgNC43MTc0MSwgNS44OTA1NiIsIFwKLSAgICAgICAgICAiMC4zMDkxNzEsIDAuMzY3OTU0LCAwLjg5NjcyNCwgMS43Nzg1MiwgMi42NjAzMSwgNC43MTcyOSwgNS44ODk2MSIsIFwKLSAgICAgICAgICAiMC4zMDkyMjMsIDAuMzY3ODgxLCAwLjg5Njg0LCAxLjc3ODQ2LCAyLjY2MDMzLCA0LjcxNTY1LCA1Ljg5MTE1IiwgXAotICAgICAgICAgICIwLjMwOTIwOSwgMC4zNjc5NDgsIDAuODk2ODM1LCAxLjc3ODUyLCAyLjY2MDMzLCA0LjcxNzM1LCA1Ljg5MTQ4IiwgXAotICAgICAgICAgICIwLjMwOTIwMSwgMC4zNjc5MTgsIDAuODk2ODY5LCAxLjc3ODUyLCAyLjY2MDMzLCA0LjcxNzMyLCA1Ljg5MTE3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjcwMSwgMC4wMDI3MDEsIDAuMDAyNzAzLCAwLjAwMjcwNCwgMC4wMDI3MDQsIDAuMDAyNzA1LCAwLjAwMjcwNSIsIFwKLSAgICAgICAgICAiMC4wMDI2OTMsIDAuMDAyNjk0LCAwLjAwMjY5NiwgMC4wMDI2OTcsIDAuMDAyNjk3LCAwLjAwMjY5NywgMC4wMDI2OTciLCBcCi0gICAgICAgICAgIjAuMDAyNjg2LCAwLjAwMjY4NywgMC4wMDI2ODksIDAuMDAyNjksIDAuMDAyNjksIDAuMDAyNjksIDAuMDAyNjkiLCBcCi0gICAgICAgICAgIjAuMDAyNjg0LCAwLjAwMjY4NSwgMC4wMDI2ODcsIDAuMDAyNjg4LCAwLjAwMjY4OCwgMC4wMDI2ODksIDAuMDAyNjg4IiwgXAotICAgICAgICAgICIwLjAwMjY4MSwgMC4wMDI2ODIsIDAuMDAyNjg0LCAwLjAwMjY4NSwgMC4wMDI2ODUsIDAuMDAyNjg1LCAwLjAwMjY4NSIsIFwKLSAgICAgICAgICAiMC4wMDI2OCwgMC4wMDI2ODEsIDAuMDAyNjg0LCAwLjAwMjY4NSwgMC4wMDI2ODUsIDAuMDAyNjg2LCAwLjAwMjY4NiIsIFwKLSAgICAgICAgICAiMC4wMDI2ODIsIDAuMDAyNjgzLCAwLjAwMjY4NSwgMC4wMDI2ODYsIDAuMDAyNjg2LCAwLjAwMjY4NywgMC4wMDI2ODciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDMxNDEsIDAuMDAzMTQyLCAwLjAwMzE0MywgMC4wMDMxNDQsIDAuMDAzMTQ0LCAwLjAwMzE0NCwgMC4wMDMxNDQiLCBcCi0gICAgICAgICAgIjAuMDAzMTM1LCAwLjAwMzEzNiwgMC4wMDMxMzgsIDAuMDAzMTM4LCAwLjAwMzEzOCwgMC4wMDMxMzksIDAuMDAzMTM5IiwgXAotICAgICAgICAgICIwLjAwMzEyOSwgMC4wMDMxMywgMC4wMDMxMzEsIDAuMDAzMTMyLCAwLjAwMzEzMiwgMC4wMDMxMzIsIDAuMDAzMTMyIiwgXAotICAgICAgICAgICIwLjAwMzEyNSwgMC4wMDMxMjUsIDAuMDAzMTI3LCAwLjAwMzEyNywgMC4wMDMxMjgsIDAuMDAzMTI4LCAwLjAwMzEyOCIsIFwKLSAgICAgICAgICAiMC4wMDMxMjEsIDAuMDAzMTIyLCAwLjAwMzEyMywgMC4wMDMxMjQsIDAuMDAzMTI0LCAwLjAwMzEyNCwgMC4wMDMxMjQiLCBcCi0gICAgICAgICAgIjAuMDAzMTE2LCAwLjAwMzExNywgMC4wMDMxMTgsIDAuMDAzMTE5LCAwLjAwMzExOSwgMC4wMDMxMTksIDAuMDAzMTE5IiwgXAotICAgICAgICAgICIwLjAwMzExNCwgMC4wMDMxMTUsIDAuMDAzMTE2LCAwLjAwMzExNywgMC4wMDMxMTcsIDAuMDAzMTE3LCAwLjAwMzExNyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDM2MTEsIDAuMDAzNjExLCAwLjAwMzYxMywgMC4wMDM2MTQsIDAuMDAzNjE0LCAwLjAwMzYxNCwgMC4wMDM2MTQiLCBcCi0gICAgICAgICAgIjAuMDAzNjA0LCAwLjAwMzYwNSwgMC4wMDM2MDcsIDAuMDAzNjA3LCAwLjAwMzYwNywgMC4wMDM2MDcsIDAuMDAzNjA3IiwgXAotICAgICAgICAgICIwLjAwMzYwMSwgMC4wMDM2MDEsIDAuMDAzNjAzLCAwLjAwMzYwMywgMC4wMDM2MDMsIDAuMDAzNjAzLCAwLjAwMzYwMyIsIFwKLSAgICAgICAgICAiMC4wMDM1OTgsIDAuMDAzNTk4LCAwLjAwMzYsIDAuMDAzNiwgMC4wMDM2LCAwLjAwMzYwMSwgMC4wMDM2MDEiLCBcCi0gICAgICAgICAgIjAuMDAzNTk2LCAwLjAwMzU5NywgMC4wMDM1OTgsIDAuMDAzNTk5LCAwLjAwMzU5OSwgMC4wMDM1OTksIDAuMDAzNTk5IiwgXAotICAgICAgICAgICIwLjAwMzU5MywgMC4wMDM1OTQsIDAuMDAzNTk1LCAwLjAwMzU5NiwgMC4wMDM1OTYsIDAuMDAzNTk2LCAwLjAwMzU5NiIsIFwKLSAgICAgICAgICAiMC4wMDM1OTIsIDAuMDAzNTkzLCAwLjAwMzU5NCwgMC4wMDM1OTQsIDAuMDAzNTk0LCAwLjAwMzU5NSwgMC4wMDM1OTUiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfcG93ZXIoc2NhbGFyKSB7Ci0gICAgICAgIHZhbHVlcygiMCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oU04pICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDk0Mzk3NDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA4NjExNjY7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwOTQzOTc0OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDMzMSwgMC4wMDAzMywgMC4wMDAzMywgMC4wMDAzMywgMC4wMDAzMywgMC4wMDAzMywgMC4wMDAzMyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDMzMiwgMC4wMDAzMzIsIDAuMDAwMzMyLCAwLjAwMDMzMiwgMC4wMDAzMzIsIDAuMDAwMzMyLCAwLjAwMDMzMiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQiOwotICAgICAgc2RmX2NvbmQgOiAiRCA9PSAxJ2IwIjsKLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjM3MjkyOCwgMC4zODQ0MTIsIDAuMzk5MDMsIDAuNDEzNTMyLCAwLjQyNzk4NCwgMC40NTE0MDYsIDAuNDcxNTk3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogcmVjb3ZlcnlfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRCI7Ci0gICAgICBzZGZfY29uZCA6ICJEID09IDEnYjAiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHJlY292ZXJ5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0Mzc1LCAwLjAzMjUsIDAuMDIsIDAuMDAxMjUsIC0wLjAxNzUsIC0wLjA0LCAtMC4wNjEyNSIsIFwKLSAgICAgICAgICAiMC4wNTUsIDAuMDQzNzUsIDAuMDMxMjUsIDAuMDEyNSwgLTAuMDA2MjUsIC0wLjAyODc1LCAtMC4wNSIsIFwKLSAgICAgICAgICAiMC4wNzM3NSwgMC4wNTYyNSwgMC4wNDM3NSwgMC4wMjUsIDAuMDA2MjUsIC0wLjAxNjI1LCAtMC4wMzc1IiwgXAotICAgICAgICAgICIwLjA4NjI1LCAwLjA3NSwgMC4wNTYyNSwgMC4wMzc1LCAwLjAyNSwgLTAuMDAzNzUsIC0wLjAyNSIsIFwKLSAgICAgICAgICAiMC4wOTg3NSwgMC4wODc1LCAwLjA2ODc1LCAwLjA1LCAwLjAzNzUsIDAuMDA4NzUsIC0wLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMTIxMjUsIDAuMTEsIDAuMDkxMjUsIDAuMDcyNSwgMC4wNiwgMC4wMzEyNSwgMC4wMSIsIFwKLSAgICAgICAgICAiMC4xMzYyNSwgMC4xMjUsIDAuMTEyNSwgMC4wOTM3NSwgMC4wNzUsIDAuMDUyNSwgMC4wMzEyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJlbW92YWxfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRCI7Ci0gICAgICBzZGZfY29uZCA6ICJEID09IDEnYjAiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHJlbW92YWxfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDYyNSwgMC4wNzM3NSwgMC4wODYyNSwgMC4xMDUsIDAuMTE3NSwgMC4xNCwgMC4xNjEyNSIsIFwKLSAgICAgICAgICAiMC4wNTEyNSwgMC4wNjI1LCAwLjA3NSwgMC4wOTM3NSwgMC4xMDYyNSwgMC4xMzUsIDAuMTU2MjUiLCBcCi0gICAgICAgICAgIjAuMDM4NzUsIDAuMDUsIDAuMDYyNSwgMC4wODEyNSwgMC4wOTM3NSwgMC4xMTYyNSwgMC4xMzc1IiwgXAotICAgICAgICAgICIwLjAyNjI1LCAwLjAzNzUsIDAuMDUsIDAuMDY4NzUsIDAuMDgxMjUsIDAuMTAzNzUsIDAuMTI1IiwgXAotICAgICAgICAgICIwLjAwNzUsIDAuMDE4NzUsIDAuMDM3NSwgMC4wNSwgMC4wNjg3NSwgMC4wOTEyNSwgMC4xMTI1IiwgXAotICAgICAgICAgICItMC4wMTUsIDAuMDAyNSwgMC4wMTUsIDAuMDI3NSwgMC4wNDYyNSwgMC4wNjg3NSwgMC4wOSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAxODc1LCAtMC4wMDYyNSwgMC4wMTI1LCAwLjAyNSwgMC4wNTM3NSwgMC4wNzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBERkZUUlgxICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKERGRlRSWDEpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4yNzI5OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIGZmIChOMzAsUUJJTlQpIHsKLSAgICBuZXh0X3N0YXRlIDogIihEIFJOKSI7Ci0gICAgY2xvY2tlZF9vbiA6ICJDSyI7Ci0gIH0KLSAgcGluKENLKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA1NDUzNjI7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNTQ1MTY7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNTQ1MzYyOwotICAgIGNsb2NrIDogdHJ1ZTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDI0NjIsIDAuMDAyNDQ4LCAwLjAwMjQzNywgMC4wMDI0MywgMC4wMDI0MjMsIDAuMDAyNDE3LCAwLjAwMjQxNiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNDY2NSwgMC4wMDQ2NTUsIDAuMDA0NjQ2LCAwLjAwNDY0MSwgMC4wMDQ2MzksIDAuMDA0NjQxLCAwLjAwNDY0MiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQmIVJOIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9STl9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMzM3MDg3LCAwLjM0ODc2NCwgMC4zNjQyNCwgMC4zNzk2NDEsIDAuMzk0NzE0LCAwLjQxOTAxMSwgMC40Mzk1OTQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjE3NTg5OSwgMC4xODcyNzIsIDAuMjAyNDA0LCAwLjIxNzIwMiwgMC4yMzE3NTYsIDAuMjU0MjgzLCAwLjI3Mjc2Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihEKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA1NjU4Njc7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNTY1MzYyOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDU2NTg2NzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDE5ODksIDAuMDAxOTc4LCAwLjAwMTk2OSwgMC4wMDE5NjUsIDAuMDAxOTYyLCAwLjAwMTk1OCwgMC4wMDE5NTciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDMwNCwgMC4wMDMwMzYsIDAuMDAzMDI5LCAwLjAwMzAyNCwgMC4wMDMwMiwgMC4wMDMwMTQsIDAuMDAzMDExIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlJOIjsKLSAgICAgIHNkZl9jb25kIDogIlJOID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjEwNjI1LCAtMC4xMDEyNSwgLTAuMDg4NzUsIC0wLjA3NjI1LCAtMC4wNywgLTAuMDUzNzUsIC0wLjAzODc1IiwgXAotICAgICAgICAgICItMC4xMTc1LCAtMC4xMDYyNSwgLTAuMSwgLTAuMDg3NSwgLTAuMDc1LCAtMC4wNjUsIC0wLjA1IiwgXAotICAgICAgICAgICItMC4xMywgLTAuMTI1LCAtMC4xMTI1LCAtMC4xLCAtMC4wOTM3NSwgLTAuMDc3NSwgLTAuMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMTQ4NzUsIC0wLjEzNzUsIC0wLjEyNSwgLTAuMTEyNSwgLTAuMTA2MjUsIC0wLjA5LCAtMC4wODEyNSIsIFwKLSAgICAgICAgICAiLTAuMTYxMjUsIC0wLjE1LCAtMC4xMzc1LCAtMC4xMjUsIC0wLjExODc1LCAtMC4xMDI1LCAtMC4wOTM3NSIsIFwKLSAgICAgICAgICAiLTAuMTgzNzUsIC0wLjE3MjUsIC0wLjE2LCAtMC4xNDc1LCAtMC4xNDEyNSwgLTAuMTI1LCAtMC4xMTYyNSIsIFwKLSAgICAgICAgICAiLTAuMTk4NzUsIC0wLjE5Mzc1LCAtMC4xODEyNSwgLTAuMTY4NzUsIC0wLjE2MjUsIC0wLjE0NjI1LCAtMC4xMzEyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE4NzUsIDAuMDMsIDAuMDQ4NzUsIDAuMDYxMjUsIDAuMDczNzUsIDAuMTAyNSwgMC4xMTc1IiwgXAotICAgICAgICAgICIwLjAwNzUsIDAuMDE4NzUsIDAuMDM3NSwgMC4wNSwgMC4wNjI1LCAwLjA4NSwgMC4xMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDA1LCAwLjAwNjI1LCAwLjAxODc1LCAwLjAzNzUsIDAuMDUsIDAuMDcyNSwgMC4wOTM3NSIsIFwKLSAgICAgICAgICAiLTAuMDE3NSwgLTAuMDA2MjUsIDAuMDA2MjUsIDAuMDI1LCAwLjAzNzUsIDAuMDYsIDAuMDgxMjUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAuMDEyNSwgMC4wMjUsIDAuMDQ3NSwgMC4wNjg3NSIsIFwKLSAgICAgICAgICAiLTAuMDUyNSwgLTAuMDM1LCAtMC4wMjI1LCAtMC4wMSwgMC4wMDI1LCAwLjAyNSwgMC4wNDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDYxMjUsIC0wLjA1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAxMjUsIDAuMDEsIDAuMDMxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlJOIjsKLSAgICAgIHNkZl9jb25kIDogIlJOID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE4MTI1LCAwLjE3LCAwLjE1NzUsIDAuMTM4NzUsIDAuMTMyNSwgMC4xMSwgMC4xMDEyNSIsIFwKLSAgICAgICAgICAiMC4xOTI1LCAwLjE4MTI1LCAwLjE2MjUsIDAuMTUsIDAuMTM3NSwgMC4xMjEyNSwgMC4xMTI1IiwgXAotICAgICAgICAgICIwLjIwNSwgMC4xOTM3NSwgMC4xODEyNSwgMC4xNjI1LCAwLjE1LCAwLjE0LCAwLjEyNSIsIFwKLSAgICAgICAgICAiMC4yMTc1LCAwLjIwNjI1LCAwLjE5Mzc1LCAwLjE4MTI1LCAwLjE2ODc1LCAwLjE1MjUsIDAuMTM3NSIsIFwKLSAgICAgICAgICAiMC4yMzYyNSwgMC4yMTg3NSwgMC4yMDYyNSwgMC4xOTM3NSwgMC4xODEyNSwgMC4xNjUsIDAuMTUiLCBcCi0gICAgICAgICAgIjAuMjU4NzUsIDAuMjQxMjUsIDAuMjI4NzUsIDAuMjE2MjUsIDAuMjAzNzUsIDAuMTg3NSwgMC4xNzI1IiwgXAotICAgICAgICAgICIwLjI3Mzc1LCAwLjI2MjUsIDAuMjUsIDAuMjMxMjUsIDAuMjI1LCAwLjIwODc1LCAwLjE5Mzc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDUsIDAuMDM4NzUsIDAuMDIsIDAuMDA3NSwgLTAuMDExMjUsIC0wLjAzMzc1LCAtMC4wNDg3NSIsIFwKLSAgICAgICAgICAiMC4wNjEyNSwgMC4wNSwgMC4wMzc1LCAwLjAxODc1LCAwLjAwNjI1LCAtMC4wMjI1LCAtMC4wMzc1IiwgXAotICAgICAgICAgICIwLjA3Mzc1LCAwLjA2MjUsIDAuMDUsIDAuMDMxMjUsIDAuMDE4NzUsIC0wLjAwMzc1LCAtMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMDkyNSwgMC4wODEyNSwgMC4wNjI1LCAwLjA1LCAwLjAzMTI1LCAwLjAwODc1LCAtMC4wMTI1IiwgXAotICAgICAgICAgICIwLjEwNSwgMC4wOTM3NSwgMC4wODEyNSwgMC4wNjI1LCAwLjA0Mzc1LCAwLjAyMTI1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICIwLjEyNzUsIDAuMTE2MjUsIDAuMTAzNzUsIDAuMDg1LCAwLjA2NjI1LCAwLjA0Mzc1LCAwLjAyMjUiLCBcCi0gICAgICAgICAgIjAuMTQ4NzUsIDAuMTMxMjUsIDAuMTE4NzUsIDAuMTA2MjUsIDAuMDg3NSwgMC4wNjUsIDAuMDQzNzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFEpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4xMzQwMjQ7Ci0gICAgZnVuY3Rpb24gOiAiTjMwIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBub25fdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJpc2luZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yNzgwOTIsIDAuMzIxNDkxLCAwLjU2NjY4MiwgMC43ODI3NDUsIDEuMDY5NjYsIDEuNjQ3NCwgMi4wMTEzMiIsIFwKLSAgICAgICAgICAiMC4yODk2MjksIDAuMzMzMDE2LCAwLjU3NzQ1NywgMC43OTQ4NDYsIDEuMDgxNDcsIDEuNjU5MjMsIDIuMDIwOTQiLCBcCi0gICAgICAgICAgIjAuMzA1MDE3LCAwLjM0ODI5NiwgMC41OTM4MDUsIDAuODEwMTcyLCAxLjA5NzMxLCAxLjY3NDEyLCAyLjAzNTY4IiwgXAotICAgICAgICAgICIwLjMyMDU5MSwgMC4zNjM5NTksIDAuNjA5MjM1LCAwLjgyNTczOSwgMS4xMTE5NywgMS42OTAwMiwgMi4wNTA0MSIsIFwKLSAgICAgICAgICAiMC4zMzU0NTksIDAuMzc4ODQ0LCAwLjYyNDA5MiwgMC44NDA2NzQsIDEuMTI2OCwgMS43MDQ5OCwgMi4wNjE5NiIsIFwKLSAgICAgICAgICAiMC4zNTk2NjgsIDAuNDAzMDY3LCAwLjY0ODExMiwgMC44NjQ1NzEsIDEuMTUxMjMsIDEuNzI5MTUsIDIuMDg4NjMiLCBcCi0gICAgICAgICAgIjAuMzc5ODkxLCAwLjQyMzI4NCwgMC42Njk1ODUsIDAuODg0OTYxLCAxLjE3MTQ5LCAxLjc0OTQ5LCAyLjEwOTcxIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE2NzY3MywgMC4yNTMyMjcsIDAuNzUwMzQ5LCAxLjE4MzA5LCAxLjc3NDc1LCAyLjk2NjQzLCAzLjcwMTU3IiwgXAotICAgICAgICAgICIwLjE2NTMyNywgMC4yNTMyODMsIDAuNzU1MzI3LCAxLjE5NjEzLCAxLjc3MTYzLCAyLjk2NjM0LCAzLjcwMjgxIiwgXAotICAgICAgICAgICIwLjE2NTM0NSwgMC4yNTE5NDYsIDAuNzQ4NzUzLCAxLjE5NTc5LCAxLjc2NjMxLCAyLjk3MTU0LCAzLjcwNDQ2IiwgXAotICAgICAgICAgICIwLjE2NTI0LCAwLjI1MzIzNSwgMC43NDk0OTcsIDEuMTk0MjQsIDEuNzc2MTMsIDIuOTY2MTIsIDMuNzA0NDgiLCBcCi0gICAgICAgICAgIjAuMTY3NzQ3LCAwLjI1MzI1OSwgMC43NDk4MzEsIDEuMTk0MjcsIDEuNzc2NjgsIDIuOTY2NiwgMy42NzIxMiIsIFwKLSAgICAgICAgICAiMC4xNjUzMzQsIDAuMjUzMjczLCAwLjc1MTY2LCAxLjE4MzYyLCAxLjc3NDY3LCAyLjk2NjQ5LCAzLjcxMDUxIiwgXAotICAgICAgICAgICIwLjE2NTMyOCwgMC4yNTMyOTMsIDAuNzUyNiwgMS4xODgzNSwgMS43NzQyOCwgMi45NjY0MywgMy43MDQ1NiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMTYwNTQsIDAuMzY1ODU0LCAwLjY0NjA5NywgMC44OTMyMzksIDEuMjIyNzksIDEuODg2NjQsIDIuMjk5NyIsIFwKLSAgICAgICAgICAiMC4zMjc3ODEsIDAuMzc3NTQ2LCAwLjY1NzcwOCwgMC45MDUzOTQsIDEuMjM2OTUsIDEuODk4MzEsIDIuMzExMzgiLCBcCi0gICAgICAgICAgIjAuMzQzMjU2LCAwLjM5MzAyMSwgMC42NzMyNzYsIDAuOTIxOTk2LCAxLjI0OTgxLCAxLjkxMzgyLCAyLjMyMDciLCBcCi0gICAgICAgICAgIjAuMzU4NjEzLCAwLjQwODQxMywgMC42ODg2MjksIDAuOTM1MDkxLCAxLjI2NTM0LCAxLjkyOTE5LCAyLjM0MjI1IiwgXAotICAgICAgICAgICIwLjM3MzcyNywgMC40MjMyOTMsIDAuNzAzNjAzLCAwLjk1MjE5OSwgMS4yODI5NywgMS45NDM2OCwgMi4zNTczMiIsIFwKLSAgICAgICAgICAiMC4zOTgwMjQsIDAuNDQ3Nzg5LCAwLjcyODA2NCwgMC45NzYzNjcsIDEuMzA0NTQsIDEuOTY4NjIsIDIuMzgwNzkiLCBcCi0gICAgICAgICAgIjAuNDE4NjExLCAwLjQ2ODM3NSwgMC43NDg1MjksIDAuOTk2Mjc2LCAxLjMyNzgxLCAxLjk4OTE0LCAyLjQwMjIxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE4MjQ1NywgMC4yNzg3NjQsIDAuODMyNzkxLCAxLjMyMjgxLCAxLjk3NjUzLCAzLjI4Mjk5LCA0LjA5OTU3IiwgXAotICAgICAgICAgICIwLjE4MjQ0MSwgMC4yNzgxNiwgMC44MzMyNCwgMS4zMjE1NSwgMS45NzgzNCwgMy4yODYzMSwgNC4xMDM4OCIsIFwKLSAgICAgICAgICAiMC4xODI0MzEsIDAuMjc4MTU4LCAwLjgzMjc1NiwgMS4zMjMzNywgMS45Nzg1NywgMy4yODYyMywgNC4xMDc3NyIsIFwKLSAgICAgICAgICAiMC4xODI0NTgsIDAuMjc4NzY2LCAwLjgzMjkzMywgMS4zMjM2NywgMS45Nzg0NywgMy4yODYzMSwgNC4xMDM4NiIsIFwKLSAgICAgICAgICAiMC4xODI0NjQsIDAuMjc4MzE0LCAwLjgzMjM5NCwgMS4zMjQyNywgMS45Nzc5OSwgMy4yODc5NywgNC4xMDQwNyIsIFwKLSAgICAgICAgICAiMC4xODI0MjgsIDAuMjc4MTU2LCAwLjgzMjYyMSwgMS4zMjQ0NSwgMS45Nzg1NiwgMy4yODYxNSwgNC4xMDY0MSIsIFwKLSAgICAgICAgICAiMC4xODI0NDMsIDAuMjc4MTU3LCAwLjgzMzQ2LCAxLjMyMjI4LCAxLjk3ODM0LCAzLjI4NjI4LCA0LjEwMzg0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzM2MiwgMC4wMDMzNjQsIDAuMDAzMzU5LCAwLjAwMzM1NiwgMC4wMDMzNTUsIDAuMDAzMzUzLCAwLjAwMzM1MiIsIFwKLSAgICAgICAgICAiMC4wMDMzNTQsIDAuMDAzMzU2LCAwLjAwMzM1MSwgMC4wMDMzNDksIDAuMDAzMzQ3LCAwLjAwMzM0NSwgMC4wMDMzNDUiLCBcCi0gICAgICAgICAgIjAuMDAzMzQ4LCAwLjAwMzM1LCAwLjAwMzM0NSwgMC4wMDMzNDMsIDAuMDAzMzQxLCAwLjAwMzMzOSwgMC4wMDMzMzkiLCBcCi0gICAgICAgICAgIjAuMDAzMzQzLCAwLjAwMzM0NSwgMC4wMDMzNDEsIDAuMDAzMzM5LCAwLjAwMzMzNywgMC4wMDMzMzUsIDAuMDAzMzM0IiwgXAotICAgICAgICAgICIwLjAwMzMzOCwgMC4wMDMzNCwgMC4wMDMzMzYsIDAuMDAzMzMzLCAwLjAwMzMzMSwgMC4wMDMzMywgMC4wMDMzMjkiLCBcCi0gICAgICAgICAgIjAuMDAzMzM0LCAwLjAwMzMzNiwgMC4wMDMzMzIsIDAuMDAzMzI5LCAwLjAwMzMyNywgMC4wMDMzMjUsIDAuMDAzMzI1IiwgXAotICAgICAgICAgICIwLjAwMzMzMiwgMC4wMDMzMzQsIDAuMDAzMzMsIDAuMDAzMzI3LCAwLjAwMzMyNSwgMC4wMDMzMjQsIDAuMDAzMzIzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzMzg4LCAwLjAwMzM5MiwgMC4wMDMzOTksIDAuMDAzNCwgMC4wMDM0MDEsIDAuMDAzNDAxLCAwLjAwMzQwMiIsIFwKLSAgICAgICAgICAiMC4wMDMzODEsIDAuMDAzMzg2LCAwLjAwMzM5MiwgMC4wMDMzOTQsIDAuMDAzMzk0LCAwLjAwMzM5NSwgMC4wMDMzOTUiLCBcCi0gICAgICAgICAgIjAuMDAzMzc1LCAwLjAwMzM4LCAwLjAwMzM4NywgMC4wMDMzODgsIDAuMDAzMzg5LCAwLjAwMzM4OSwgMC4wMDMzOSIsIFwKLSAgICAgICAgICAiMC4wMDMzNzIsIDAuMDAzMzc2LCAwLjAwMzM4MywgMC4wMDMzODQsIDAuMDAzMzg1LCAwLjAwMzM4NiwgMC4wMDMzODYiLCBcCi0gICAgICAgICAgIjAuMDAzMzcsIDAuMDAzMzc1LCAwLjAwMzM4MSwgMC4wMDMzODMsIDAuMDAzMzg0LCAwLjAwMzM4NCwgMC4wMDMzODQiLCBcCi0gICAgICAgICAgIjAuMDAzMzcsIDAuMDAzMzc0LCAwLjAwMzM4MSwgMC4wMDMzODIsIDAuMDAzMzgzLCAwLjAwMzM4NCwgMC4wMDMzODQiLCBcCi0gICAgICAgICAgIjAuMDAzMzcyLCAwLjAwMzM3NywgMC4wMDMzODMsIDAuMDAzMzg1LCAwLjAwMzM4NSwgMC4wMDMzODYsIDAuMDAzMzg2Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihRTikgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjEzMzIzOTsKLSAgICBmdW5jdGlvbiA6ICJRQklOVCI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3NlbnNlIDogbm9uX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiByaXNpbmdfZWRnZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzM3MDg3LCAwLjM4MDE4NSwgMC42MjQ2NTMsIDAuODQwNDA0LCAxLjEyODA2LCAxLjcwMzM5LCAyLjA2MzA1IiwgXAotICAgICAgICAgICIwLjM0ODc2NCwgMC4zOTE4NywgMC42MzYzNDYsIDAuODUxOTQxLCAxLjEzOTgsIDEuNzE1MDgsIDIuMDc0NzMiLCBcCi0gICAgICAgICAgIjAuMzY0MjQsIDAuNDA3MzQ5LCAwLjY1MTgxOCwgMC44Njc1ODgsIDEuMTU1MjMsIDEuNzMwNTUsIDIuMDkwMjQiLCBcCi0gICAgICAgICAgIjAuMzc5NjQxLCAwLjQyMjczOSwgMC42NjcyMDksIDAuODgyNzY2LCAxLjE3MDYxLCAxLjc0NTk0LCAyLjEwNTYxIiwgXAotICAgICAgICAgICIwLjM5NDcxNCwgMC40Mzc4MDcsIDAuNjgyMzAyLCAwLjg5Nzk1MywgMS4xODU4NCwgMS43NjEyMiwgMi4xMjA2NiIsIFwKLSAgICAgICAgICAiMC40MTkwMTEsIDAuNDYyMTIsIDAuNzA2NTg2LCAwLjkyMjIyLCAxLjIwOTk5LCAxLjc4NTMxLCAyLjE0NTExIiwgXAotICAgICAgICAgICIwLjQzOTYwMSwgMC40ODI3LCAwLjcyNzE3NywgMC45NDI3NjcsIDEuMjMwNjIsIDEuODA1OTEsIDIuMTY1NTciKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTU5NjAyLCAwLjI0NjkzNywgMC43NDQ1MDYsIDEuMTgxNzIsIDEuNzY2NDksIDIuOTQxMjksIDMuNjczOTgiLCBcCi0gICAgICAgICAgIjAuMTU5NTY0LCAwLjI0NjIyLCAwLjc0NDQwNiwgMS4xODM0NSwgMS43NzAwMSwgMi45NDEyNiwgMy42NzM4OSIsIFwKLSAgICAgICAgICAiMC4xNTk1NjMsIDAuMjQ2MjE3LCAwLjc0NDUxMywgMS4xODQxNiwgMS43NjY2MiwgMi45NDEyNCwgMy42Njc4NCIsIFwKLSAgICAgICAgICAiMC4xNTk1OTgsIDAuMjQ2OTM5LCAwLjc0NDUxMiwgMS4xODE2NSwgMS43NjY1MSwgMi45NDEyNCwgMy42NzM5MyIsIFwKLSAgICAgICAgICAiMC4xNTk1NzQsIDAuMjQ2NDMsIDAuNzQzMTMsIDEuMTgzNjMsIDEuNzcwMTQsIDIuOTQyNTUsIDMuNjczNzgiLCBcCi0gICAgICAgICAgIjAuMTU5NTYzLCAwLjI0NjIxLCAwLjc0NDUwMSwgMS4xODM1NiwgMS43NjY2NSwgMi45NDEyMSwgMy42NzQ4NyIsIFwKLSAgICAgICAgICAiMC4xNTk1NjUsIDAuMjQ2MjE3LCAwLjc0NDM0LCAxLjE4MzQyLCAxLjc3MDAyLCAyLjk0MTI4LCAzLjY3MzkyIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMxNzIyMywgMC4zNjY1NjQsIDAuNjQ2MzM4LCAwLjg5MzE1OSwgMS4yMjIyNCwgMS44ODA0NiwgMi4yOTIxOCIsIFwKLSAgICAgICAgICAiMC4zMjg3NzMsIDAuMzc4MTEzLCAwLjY1Nzg4MywgMC45MDQ3MjgsIDEuMjMzNzgsIDEuODkyMDMsIDIuMzAzNTEiLCBcCi0gICAgICAgICAgIjAuMzQ0MTg2LCAwLjM5MzUxNiwgMC42NzMzLCAwLjkyMDEzLCAxLjI0OTE5LCAxLjkwNzQsIDIuMzE4ODkiLCBcCi0gICAgICAgICAgIjAuMzU5Njg1LCAwLjQwOTAyNiwgMC42ODg4MDIsIDAuOTM1NjUyLCAxLjI2NDcsIDEuOTIyOTQsIDIuMzM0MzciLCBcCi0gICAgICAgICAgIjAuMzc0NTY1LCAwLjQyMzkwOCwgMC43MDM2ODMsIDAuOTUwNTM4LCAxLjI3OTU4LCAxLjkzNzgzLCAyLjM0OTE4IiwgXAotICAgICAgICAgICIwLjM5ODc5NywgMC40NDgxMzYsIDAuNzI3OTA3LCAwLjk3NDczOCwgMS4zMDM4MSwgMS45NjIwNCwgMi4zNzMzNyIsIFwKLSAgICAgICAgICAiMC40MTkwMiwgMC40NjgzNTksIDAuNzQ4MjA5LCAwLjk5NDk2NCwgMS4zMjQwMywgMS45ODIyNywgMi4zOTM2NyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNzcxNzUsIDAuMjc0NjgsIDAuODI5NzU4LCAxLjMxOTU5LCAxLjk3MzAyLCAzLjI4MTExLCA0LjA5Mjk3IiwgXAotICAgICAgICAgICIwLjE3NzE4OCwgMC4yNzQ2ODEsIDAuODI5OTI0LCAxLjMxOTA1LCAxLjk3MjkyLCAzLjI4MDk5LCA0LjA5MzU5IiwgXAotICAgICAgICAgICIwLjE3NzE4LCAwLjI3NDUwNSwgMC44Mjk3MSwgMS4zMTg4NCwgMS45NzI4LCAzLjI3OTgyLCA0LjA5ODA5IiwgXAotICAgICAgICAgICIwLjE3NzE2LCAwLjI3NDY0NywgMC44Mjk2NzgsIDEuMzIwNDIsIDEuOTcyOSwgMy4yODA4MiwgNC4wOTQxIiwgXAotICAgICAgICAgICIwLjE3NzE5OCwgMC4yNzQ2NDYsIDAuODI5NzM0LCAxLjMyMDQyLCAxLjk3MjkxLCAzLjI4MDkzLCA0LjA5NjEzIiwgXAotICAgICAgICAgICIwLjE3NzE4NywgMC4yNzQ2NDcsIDAuODI5ODE4LCAxLjMxOTUyLCAxLjk3Mjk5LCAzLjI4MDkzLCA0LjA5NjkxIiwgXAotICAgICAgICAgICIwLjE3NzE4NywgMC4yNzQ2NzksIDAuODI5MTM0LCAxLjMxOTMxLCAxLjk3Mjk3LCAzLjI4MDk3LCA0LjA5NDI2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzM4OCwgMC4wMDMzOTIsIDAuMDAzMzk5LCAwLjAwMzQsIDAuMDAzNDAxLCAwLjAwMzQwMSwgMC4wMDM0MDIiLCBcCi0gICAgICAgICAgIjAuMDAzMzgxLCAwLjAwMzM4NiwgMC4wMDMzOTIsIDAuMDAzMzk0LCAwLjAwMzM5NCwgMC4wMDMzOTUsIDAuMDAzMzk1IiwgXAotICAgICAgICAgICIwLjAwMzM3NSwgMC4wMDMzOCwgMC4wMDMzODcsIDAuMDAzMzg4LCAwLjAwMzM4OSwgMC4wMDMzODksIDAuMDAzMzkiLCBcCi0gICAgICAgICAgIjAuMDAzMzcyLCAwLjAwMzM3NiwgMC4wMDMzODMsIDAuMDAzMzg0LCAwLjAwMzM4NSwgMC4wMDMzODYsIDAuMDAzMzg2IiwgXAotICAgICAgICAgICIwLjAwMzM3LCAwLjAwMzM3NSwgMC4wMDMzODEsIDAuMDAzMzgzLCAwLjAwMzM4NCwgMC4wMDMzODQsIDAuMDAzMzg0IiwgXAotICAgICAgICAgICIwLjAwMzM3LCAwLjAwMzM3NCwgMC4wMDMzODEsIDAuMDAzMzgyLCAwLjAwMzM4MywgMC4wMDMzODQsIDAuMDAzMzg0IiwgXAotICAgICAgICAgICIwLjAwMzM3MiwgMC4wMDMzNzcsIDAuMDAzMzgzLCAwLjAwMzM4NSwgMC4wMDMzODUsIDAuMDAzMzg2LCAwLjAwMzM4NiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzM2MiwgMC4wMDMzNjQsIDAuMDAzMzU5LCAwLjAwMzM1NiwgMC4wMDMzNTUsIDAuMDAzMzUzLCAwLjAwMzM1MiIsIFwKLSAgICAgICAgICAiMC4wMDMzNTQsIDAuMDAzMzU2LCAwLjAwMzM1MSwgMC4wMDMzNDksIDAuMDAzMzQ3LCAwLjAwMzM0NSwgMC4wMDMzNDUiLCBcCi0gICAgICAgICAgIjAuMDAzMzQ4LCAwLjAwMzM1LCAwLjAwMzM0NSwgMC4wMDMzNDMsIDAuMDAzMzQxLCAwLjAwMzMzOSwgMC4wMDMzMzkiLCBcCi0gICAgICAgICAgIjAuMDAzMzQzLCAwLjAwMzM0NSwgMC4wMDMzNDEsIDAuMDAzMzM5LCAwLjAwMzMzNywgMC4wMDMzMzUsIDAuMDAzMzM0IiwgXAotICAgICAgICAgICIwLjAwMzMzOCwgMC4wMDMzNCwgMC4wMDMzMzYsIDAuMDAzMzMzLCAwLjAwMzMzMSwgMC4wMDMzMywgMC4wMDMzMjkiLCBcCi0gICAgICAgICAgIjAuMDAzMzM0LCAwLjAwMzMzNiwgMC4wMDMzMzIsIDAuMDAzMzI5LCAwLjAwMzMyNywgMC4wMDMzMjUsIDAuMDAzMzI1IiwgXAotICAgICAgICAgICIwLjAwMzMzMiwgMC4wMDMzMzQsIDAuMDAzMzMsIDAuMDAzMzI3LCAwLjAwMzMyNSwgMC4wMDMzMjQsIDAuMDAzMzIzIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihSTikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNTI2ODEyOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDUyNjgxMjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA1MjU0Njc7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxOTksIDAuMDAxOTgxLCAwLjAwMTk3NCwgMC4wMDE5NjksIDAuMDAxOTY1LCAwLjAwMTk2MSwgMC4wMDE5NTkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDMyNDYsIDAuMDAzMjM5LCAwLjAwMzIzMywgMC4wMDMyMzEsIDAuMDAzMjI4LCAwLjAwMzIyNCwgMC4wMDMyMjEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiRCI7Ci0gICAgICBzZGZfY29uZCA6ICJEID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjExMjUsIC0wLjEwNzUsIC0wLjA5NSwgLTAuMDgyNSwgLTAuMDc2MjUsIC0wLjA2LCAtMC4wNDUiLCBcCi0gICAgICAgICAgIi0wLjEyMzc1LCAtMC4xMTg3NSwgLTAuMTA2MjUsIC0wLjA5Mzc1LCAtMC4wODc1LCAtMC4wNzEyNSwgLTAuMDU2MjUiLCBcCi0gICAgICAgICAgIi0wLjE0MjUsIC0wLjEzMTI1LCAtMC4xMTg3NSwgLTAuMTA2MjUsIC0wLjEsIC0wLjA4Mzc1LCAtMC4wNzUiLCBcCi0gICAgICAgICAgIi0wLjE1NSwgLTAuMTQzNzUsIC0wLjEzMTI1LCAtMC4xMjUsIC0wLjExMjUsIC0wLjA5NjI1LCAtMC4wODc1IiwgXAotICAgICAgICAgICItMC4xNjc1LCAtMC4xNTYyNSwgLTAuMTQzNzUsIC0wLjEzNzUsIC0wLjEyNSwgLTAuMTA4NzUsIC0wLjEiLCBcCi0gICAgICAgICAgIi0wLjE5LCAtMC4xNzg3NSwgLTAuMTY2MjUsIC0wLjE2LCAtMC4xNDc1LCAtMC4xMzEyNSwgLTAuMTIyNSIsIFwKLSAgICAgICAgICAiLTAuMjA1LCAtMC4yLCAtMC4xODc1LCAtMC4xNzUsIC0wLjE2ODc1LCAtMC4xNTI1LCAtMC4xNDM3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE4NzUsIDAuMDMsIDAuMDQyNSwgMC4wNjEyNSwgMC4wNzM3NSwgMC4wOTYyNSwgMC4xMTc1IiwgXAotICAgICAgICAgICIwLjAwNzUsIDAuMDE4NzUsIDAuMDMxMjUsIDAuMDUsIDAuMDYyNSwgMC4wODUsIDAuMTA2MjUiLCBcCi0gICAgICAgICAgIi0wLjAwNSwgMC4wMDYyNSwgMC4wMTg3NSwgMC4wMzEyNSwgMC4wNSwgMC4wNzI1LCAwLjA5Mzc1IiwgXAotICAgICAgICAgICItMC4wMTc1LCAtMC4wMDYyNSwgMC4wMDYyNSwgMC4wMTg3NSwgMC4wMzc1LCAwLjA2LCAwLjA3NSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAyNSwgLTAuMDA2MjUsIDAuMDA2MjUsIDAuMDE4NzUsIDAuMDQxMjUsIDAuMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDUyNSwgLTAuMDQxMjUsIC0wLjAyODc1LCAtMC4wMTYyNSwgMC4wMDI1LCAwLjAyNSwgMC4wNCIsIFwKLSAgICAgICAgICAiLTAuMDY3NSwgLTAuMDU2MjUsIC0wLjA0Mzc1LCAtMC4wMzEyNSwgLTAuMDEyNSwgMC4wMSwgMC4wMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIkQiOwotICAgICAgc2RmX2NvbmQgOiAiRCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xODc1LCAwLjE3NjI1LCAwLjE2Mzc1LCAwLjE0NSwgMC4xMzI1LCAwLjExNjI1LCAwLjEwNzUiLCBcCi0gICAgICAgICAgIjAuMTk4NzUsIDAuMTg3NSwgMC4xNzUsIDAuMTU2MjUsIDAuMTUsIDAuMTI3NSwgMC4xMTg3NSIsIFwKLSAgICAgICAgICAiMC4yMTc1LCAwLjIsIDAuMTg3NSwgMC4xNzUsIDAuMTYyNSwgMC4xNDYyNSwgMC4xMzEyNSIsIFwKLSAgICAgICAgICAiMC4yMywgMC4yMTg3NSwgMC4yLCAwLjE4NzUsIDAuMTc1LCAwLjE1ODc1LCAwLjE0Mzc1IiwgXAotICAgICAgICAgICIwLjI0MjUsIDAuMjMxMjUsIDAuMjEyNSwgMC4yLCAwLjE4NzUsIDAuMTcxMjUsIDAuMTU2MjUiLCBcCi0gICAgICAgICAgIjAuMjY1LCAwLjI1Mzc1LCAwLjIzNSwgMC4yMjI1LCAwLjIxLCAwLjE5Mzc1LCAwLjE3ODc1IiwgXAotICAgICAgICAgICIwLjI4LCAwLjI2ODc1LCAwLjI1NjI1LCAwLjI0Mzc1LCAwLjIzMTI1LCAwLjIxNSwgMC4yIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU2MjUsIDAuMDM4NzUsIDAuMDI2MjUsIDAuMDA3NSwgLTAuMDA1LCAtMC4wMjc1LCAtMC4wNDg3NSIsIFwKLSAgICAgICAgICAiMC4wNjc1LCAwLjA1NjI1LCAwLjAzNzUsIDAuMDE4NzUsIDAuMDA2MjUsIC0wLjAxNjI1LCAtMC4wMzc1IiwgXAotICAgICAgICAgICIwLjA4LCAwLjA2ODc1LCAwLjA1LCAwLjAzNzUsIDAuMDE4NzUsIC0wLjAwMzc1LCAtMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMDkyNSwgMC4wODEyNSwgMC4wNjg3NSwgMC4wNSwgMC4wMzc1LCAwLjAxNSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMTExMjUsIDAuMSwgMC4wODEyNSwgMC4wNjg3NSwgMC4wNSwgMC4wMjc1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICIwLjEzMzc1LCAwLjEyMjUsIDAuMTAzNzUsIDAuMDkxMjUsIDAuMDcyNSwgMC4wNSwgMC4wMjg3NSIsIFwKLSAgICAgICAgICAiMC4xNDg3NSwgMC4xMzc1LCAwLjEyNSwgMC4xMDYyNSwgMC4wOTM3NSwgMC4wNjUsIDAuMDUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBERkZUUlg0ICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKERGRlRSWDQpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC41MzM4OTQ7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgZmYgKE4zMCxRQklOVCkgewotICAgIG5leHRfc3RhdGUgOiAiKEQgUk4pIjsKLSAgICBjbG9ja2VkX29uIDogIkNLIjsKLSAgfQotICBwaW4oQ0spICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYwNzc1MTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MDc0NDg7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjA3NzUxOwotICAgIGNsb2NrIDogdHJ1ZTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDI0MzIsIDAuMDAyNDE4LCAwLjAwMjQwNywgMC4wMDI0MDIsIDAuMDAyMzk1LCAwLjAwMjM5MSwgMC4wMDIzODkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDQ1NDgsIDAuMDA0NTM5LCAwLjAwNDUyOSwgMC4wMDQ1MjUsIDAuMDA0NTIzLCAwLjAwNDUyNiwgMC4wMDQ1MjciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFEJiFSTiI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fUk5fRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjMxNTQxOSwgMC4zMjcyNjMsIDAuMzQyNjIzLCAwLjM1ODEyNiwgMC4zNzMwMzEsIDAuMzk3MzU4LCAwLjQxNzk5MiIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMTc0MjkzLCAwLjE4NTc3NiwgMC4yMDA3MiwgMC4yMTU1NDksIDAuMjI5OTk2LCAwLjI1MjU1NywgMC4yNzA5ODIiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEQpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYwNTMzMjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MDQ4NDk7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjA1MzMyOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjAxLCAwLjAwMTk5OSwgMC4wMDE5OSwgMC4wMDE5ODYsIDAuMDAxOTgyLCAwLjAwMTk3OSwgMC4wMDE5NzciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDMwODksIDAuMDAzMDg1LCAwLjAwMzA3OSwgMC4wMDMwNzMsIDAuMDAzMDY5LCAwLjAwMzA2NSwgMC4wMDMwNiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJSTiI7Ci0gICAgICBzZGZfY29uZCA6ICJSTiA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4xMDYyNSwgLTAuMDk1LCAtMC4wODI1LCAtMC4wNzYyNSwgLTAuMDYzNzUsIC0wLjA0NzUsIC0wLjAzODc1IiwgXAotICAgICAgICAgICItMC4xMTc1LCAtMC4xMDYyNSwgLTAuMDkzNzUsIC0wLjA4NzUsIC0wLjA3NSwgLTAuMDU4NzUsIC0wLjA1IiwgXAotICAgICAgICAgICItMC4xMywgLTAuMTE4NzUsIC0wLjEwNjI1LCAtMC4xLCAtMC4wODc1LCAtMC4wNzEyNSwgLTAuMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMTQyNSwgLTAuMTMxMjUsIC0wLjEyNSwgLTAuMTEyNSwgLTAuMSwgLTAuMDksIC0wLjA3NSIsIFwKLSAgICAgICAgICAiLTAuMTU1LCAtMC4xNDM3NSwgLTAuMTM3NSwgLTAuMTI1LCAtMC4xMTI1LCAtMC4xMDI1LCAtMC4wODc1IiwgXAotICAgICAgICAgICItMC4xNzc1LCAtMC4xNjYyNSwgLTAuMTYsIC0wLjE0NzUsIC0wLjEzNSwgLTAuMTI1LCAtMC4xMSIsIFwKLSAgICAgICAgICAiLTAuMTk4NzUsIC0wLjE4NzUsIC0wLjE3NSwgLTAuMTY4NzUsIC0wLjE1NjI1LCAtMC4xNDYyNSwgLTAuMTMxMjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxODc1LCAwLjAzLCAwLjA0ODc1LCAwLjA2MTI1LCAwLjA3Mzc1LCAwLjA5NjI1LCAwLjExNzUiLCBcCi0gICAgICAgICAgIjAuMDA3NSwgMC4wMTg3NSwgMC4wMzc1LCAwLjA1LCAwLjA2MjUsIDAuMDg1LCAwLjEwNjI1IiwgXAotICAgICAgICAgICItMC4wMDUsIDAuMDA2MjUsIDAuMDE4NzUsIDAuMDM3NSwgMC4wNSwgMC4wNzI1LCAwLjA5Mzc1IiwgXAotICAgICAgICAgICItMC4wMTc1LCAtMC4wMDYyNSwgMC4wMDYyNSwgMC4wMjUsIDAuMDM3NSwgMC4wNiwgMC4wODEyNSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAxODc1LCAtMC4wMDYyNSwgMC4wMDYyNSwgMC4wMjUsIDAuMDQ3NSwgMC4wNjI1IiwgXAotICAgICAgICAgICItMC4wNDYyNSwgLTAuMDM1LCAtMC4wMjI1LCAtMC4wMSwgMC4wMDI1LCAwLjAyNSwgMC4wNDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDYxMjUsIC0wLjA1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAxMjUsIDAuMDEsIDAuMDMxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlJOIjsKLSAgICAgIHNkZl9jb25kIDogIlJOID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE5Mzc1LCAwLjE3NjI1LCAwLjE2Mzc1LCAwLjE1MTI1LCAwLjEzODc1LCAwLjExNjI1LCAwLjEwNzUiLCBcCi0gICAgICAgICAgIjAuMTk4NzUsIDAuMTg3NSwgMC4xNzUsIDAuMTU2MjUsIDAuMTQzNzUsIDAuMTI3NSwgMC4xMTg3NSIsIFwKLSAgICAgICAgICAiMC4yMTEyNSwgMC4yLCAwLjE4NzUsIDAuMTY4NzUsIDAuMTU2MjUsIDAuMTQ2MjUsIDAuMTMxMjUiLCBcCi0gICAgICAgICAgIjAuMjMsIDAuMjEyNSwgMC4yLCAwLjE4NzUsIDAuMTc1LCAwLjE1ODc1LCAwLjE0Mzc1IiwgXAotICAgICAgICAgICIwLjI0MjUsIDAuMjMxMjUsIDAuMjEyNSwgMC4yLCAwLjE4NzUsIDAuMTcxMjUsIDAuMTU2MjUiLCBcCi0gICAgICAgICAgIjAuMjY1LCAwLjI1Mzc1LCAwLjIzNSwgMC4yMjI1LCAwLjIxLCAwLjE5Mzc1LCAwLjE3ODc1IiwgXAotICAgICAgICAgICIwLjI4NjI1LCAwLjI2ODc1LCAwLjI1NjI1LCAwLjI0Mzc1LCAwLjIzMTI1LCAwLjIxNSwgMC4yIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU2MjUsIDAuMDQ1LCAwLjAzMjUsIDAuMDEzNzUsIDAuMDAxMjUsIC0wLjAyNzUsIC0wLjA0MjUiLCBcCi0gICAgICAgICAgIjAuMDY3NSwgMC4wNTYyNSwgMC4wNDM3NSwgMC4wMjUsIDAuMDEyNSwgLTAuMDE2MjUsIC0wLjAzMTI1IiwgXAotICAgICAgICAgICIwLjA4NjI1LCAwLjA2ODc1LCAwLjA1NjI1LCAwLjAzNzUsIDAuMDI1LCAwLjAwMjUsIC0wLjAxODc1IiwgXAotICAgICAgICAgICIwLjA5ODc1LCAwLjA4NzUsIDAuMDY4NzUsIDAuMDU2MjUsIDAuMDM3NSwgMC4wMTUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICIwLjExMTI1LCAwLjEsIDAuMDg3NSwgMC4wNjg3NSwgMC4wNTYyNSwgMC4wMjc1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICIwLjEzMzc1LCAwLjEyMjUsIDAuMTEsIDAuMDkxMjUsIDAuMDc4NzUsIDAuMDUsIDAuMDM1IiwgXAotICAgICAgICAgICIwLjE1NSwgMC4xNDM3NSwgMC4xMjUsIDAuMTEyNSwgMC4wOTM3NSwgMC4wNzEyNSwgMC4wNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjUyNjMyNjsKLSAgICBmdW5jdGlvbiA6ICJOMzAiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5vbl91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcmlzaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjQwNDg1LCAwLjM3MDEzNiwgMC40OTczMTIsIDAuNTg4NjI0LCAwLjczMzkzLCAwLjg2MDYyNiwgMS4wNDIyNyIsIFwKLSAgICAgICAgICAiMC4yNTIzNzIsIDAuMzgyMDIxLCAwLjUwOTgsIDAuNTk5NTUsIDAuNzQ1OTM2LCAwLjg3Mjc3LCAxLjA1NDc5IiwgXAotICAgICAgICAgICIwLjI2NzU2NiwgMC4zOTcxOTksIDAuNTI0OTY1LCAwLjYxNDUzMiwgMC43NTk0MDIsIDAuODg3NjIyLCAxLjA2OTIzIiwgXAotICAgICAgICAgICIwLjI4MjkxLCAwLjQxMjU2MiwgMC41MzkyOTIsIDAuNjMxNzIsIDAuNzc2NDQ2LCAwLjkwNDE3NywgMS4wODQ2IiwgXAotICAgICAgICAgICIwLjI5Nzg4NywgMC40Mjc1MzQsIDAuNTU0MzE0LCAwLjY0NTEwNSwgMC43OTA5NTMsIDAuOTE4MjUzLCAxLjA5OTcxIiwgXAotICAgICAgICAgICIwLjMyMjEzLCAwLjQ1MTc3NiwgMC41Nzg4ODksIDAuNjY5Nzk4LCAwLjgxNTExMSwgMC45NDM1MDUsIDEuMTIzODkiLCBcCi0gICAgICAgICAgIjAuMzQyMjgsIDAuNDcxOTMyLCAwLjU5ODY0MiwgMC42OTA3NDQsIDAuODM1NzM5LCAwLjk2MzcwMiwgMS4xNDM4OSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1OTIxOSwgMC4zMDgzNjgsIDAuNTcxNzg0LCAwLjc1NTgzNiwgMS4wNDk3LCAxLjMwNzc2LCAxLjY3Mjk5IiwgXAotICAgICAgICAgICIwLjA1OTI1OCwgMC4zMDc4MjcsIDAuNTcyMTU0LCAwLjc1MjI3NiwgMS4wNDc1LCAxLjMwMjYxLCAxLjY4NDE1IiwgXAotICAgICAgICAgICIwLjA1OTUyMiwgMC4zMDgzMDcsIDAuNTY3NjAyLCAwLjc1OTMwNCwgMS4wNTQ3MiwgMS4zMTEyMSwgMS42Njk0MiIsIFwKLSAgICAgICAgICAiMC4wNTk0MDQsIDAuMzA4MzI2LCAwLjU3MTY5NywgMC43NTg2MzIsIDEuMDQ3NzYsIDEuMzE2OTYsIDEuNjY5OTMiLCBcCi0gICAgICAgICAgIjAuMDU5NDYzLCAwLjMwODMsIDAuNTcxNjk0LCAwLjc1MjI2NiwgMS4wNTMsIDEuMzA0NzksIDEuNjg2NDYiLCBcCi0gICAgICAgICAgIjAuMDU5NDQ4LCAwLjMwODMsIDAuNTcxOTkyLCAwLjc1NDc0MiwgMS4wNTM3MiwgMS4zMTY1NywgMS42NzI2IiwgXAotICAgICAgICAgICIwLjA1OTQ3LCAwLjMwODMyNiwgMC41NzE3MzIsIDAuNzUwNTcyLCAxLjA0ODg2LCAxLjMxNjQ5LCAxLjY2ODE1Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjY2Nzc1LCAwLjQxNTI5NCwgMC41NjExMywgMC42NjUzMTIsIDAuODMyNjMyLCAwLjk3ODY3NywgMS4xODcxMyIsIFwKLSAgICAgICAgICAiMC4yNzg3MDcsIDAuNDI3MjI3LCAwLjU3MzA2MSwgMC42NzcyNDUsIDAuODQ0MDQ5LCAwLjk5MDYxMiwgMS4xOTkwNyIsIFwKLSAgICAgICAgICAiMC4yOTM5NzksIDAuNDQyNDk2LCAwLjU4ODMzOSwgMC42OTI1MjUsIDAuODU5OTgsIDEuMDA2MzQsIDEuMjE0NzIiLCBcCi0gICAgICAgICAgIjAuMzA5NDk2LCAwLjQ1Nzk5OSwgMC42MDM4MzQsIDAuNzA4MDE3LCAwLjg3NTI5MiwgMS4wMjEzNiwgMS4yMzAyOCIsIFwKLSAgICAgICAgICAiMC4zMjQ0ODIsIDAuNDcyOTk4LCAwLjYxODg3MywgMC43MjMwMSwgMC44OTEyNTcsIDEuMDM2MzQsIDEuMjQ1MDkiLCBcCi0gICAgICAgICAgIjAuMzQ4ODE5LCAwLjQ5NzMyMywgMC42NDMxNjYsIDAuNzQ3MzUzLCAwLjkxNTU1NCwgMS4wNjA2MSwgMS4yNjkzMyIsIFwKLSAgICAgICAgICAiMC4zNjk0MjMsIDAuNTE3OTUsIDAuNjYzOTIsIDAuNzY4MjQ1LCAwLjkzNjE1NywgMS4wODMsIDEuMjkyNTgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjI4NywgMC4zNDU5OTMsIDAuNjM2MjI3LCAwLjg0MzI5MiwgMS4xNzY4NiwgMS40NjU5OSwgMS44ODIwNiIsIFwKLSAgICAgICAgICAiMC4wNjI0MzksIDAuMzQ1OTI4LCAwLjYzNjIxMiwgMC44NDI3NzMsIDEuMTc0NTgsIDEuNDY1NTYsIDEuODgwMjgiLCBcCi0gICAgICAgICAgIjAuMDYyODY5LCAwLjM0NTkyOSwgMC42MzYyMzYsIDAuODQzNDA3LCAxLjE3NTk1LCAxLjQ2NTksIDEuODgyMzUiLCBcCi0gICAgICAgICAgIjAuMDYyODYxLCAwLjM0NTk3MywgMC42MzYyMzMsIDAuODQzMzg3LCAxLjE3NTU4LCAxLjQ2NTQsIDEuODgzNjciLCBcCi0gICAgICAgICAgIjAuMDYyNTUsIDAuMzQ1ODksIDAuNjM2MTcxLCAwLjg0MzU0MSwgMS4xNzY3MiwgMS40NjUxNSwgMS44ODIyOSIsIFwKLSAgICAgICAgICAiMC4wNjI2ODksIDAuMzQ1ODQ3LCAwLjYzNjIxMiwgMC44NDMzOTIsIDEuMTc2NzIsIDEuNDY1NDcsIDEuODgxNjYiLCBcCi0gICAgICAgICAgIjAuMDYyODQ5LCAwLjM0NTkxMSwgMC42MzYxNTIsIDAuODQ0MTU3LCAxLjE3NjcxLCAxLjQ2NzAyLCAxLjg4NTE2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2MzQsIDAuMDA2NDU2LCAwLjAwNjQ3LCAwLjAwNjQ3NCwgMC4wMDY0NzksIDAuMDA2NDc5LCAwLjAwNjQ4IiwgXAotICAgICAgICAgICIwLjAwNjMzMywgMC4wMDY0NDksIDAuMDA2NDYzLCAwLjAwNjQ2NywgMC4wMDY0NywgMC4wMDY0NzIsIDAuMDA2NDczIiwgXAotICAgICAgICAgICIwLjAwNjMyNywgMC4wMDY0NDMsIDAuMDA2NDU3LCAwLjAwNjQ2LCAwLjAwNjQ2NCwgMC4wMDY0NjUsIDAuMDA2NDY2IiwgXAotICAgICAgICAgICIwLjAwNjMyMiwgMC4wMDY0MzgsIDAuMDA2NDUyLCAwLjAwNjQ1NiwgMC4wMDY0NTksIDAuMDA2NDYxLCAwLjAwNjQ2MiIsIFwKLSAgICAgICAgICAiMC4wMDYzMTcsIDAuMDA2NDMzLCAwLjAwNjQ0NywgMC4wMDY0NTEsIDAuMDA2NDU0LCAwLjAwNjQ1NiwgMC4wMDY0NTgiLCBcCi0gICAgICAgICAgIjAuMDA2MzEzLCAwLjAwNjQyOSwgMC4wMDY0NDMsIDAuMDA2NDQ3LCAwLjAwNjQ1LCAwLjAwNjQ1MiwgMC4wMDY0NTQiLCBcCi0gICAgICAgICAgIjAuMDA2MzExLCAwLjAwNjQyNywgMC4wMDY0NDEsIDAuMDA2NDQ0LCAwLjAwNjQ0OCwgMC4wMDY0NDksIDAuMDA2NDUyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDY1MTksIDAuMDA2NjMzLCAwLjAwNjY0NywgMC4wMDY2NTEsIDAuMDA2NjU0LCAwLjAwNjY1NiwgMC4wMDY2NTgiLCBcCi0gICAgICAgICAgIjAuMDA2NTEyLCAwLjAwNjYyNiwgMC4wMDY2NCwgMC4wMDY2NDQsIDAuMDA2NjQ3LCAwLjAwNjY1LCAwLjAwNjY1MSIsIFwKLSAgICAgICAgICAiMC4wMDY1MDcsIDAuMDA2NjIxLCAwLjAwNjYzNiwgMC4wMDY2MzksIDAuMDA2NjQyLCAwLjAwNjY0NSwgMC4wMDY2NDYiLCBcCi0gICAgICAgICAgIjAuMDA2NTA5LCAwLjAwNjYxOSwgMC4wMDY2MzMsIDAuMDA2NjM3LCAwLjAwNjY0MSwgMC4wMDY2NDIsIDAuMDA2NjQ0IiwgXAotICAgICAgICAgICIwLjAwNjUwMywgMC4wMDY2MTYsIDAuMDA2NjMsIDAuMDA2NjM0LCAwLjAwNjYzOSwgMC4wMDY2NDEsIDAuMDA2NjQxIiwgXAotICAgICAgICAgICIwLjAwNjUwNCwgMC4wMDY2MTcsIDAuMDA2NjMyLCAwLjAwNjYzNCwgMC4wMDY2MzksIDAuMDA2NjQsIDAuMDA2NjQxIiwgXAotICAgICAgICAgICIwLjAwNjUwNywgMC4wMDY2MiwgMC4wMDY2MzQsIDAuMDA2NjM4LCAwLjAwNjY0MSwgMC4wMDY2NDQsIDAuMDA2NjQ1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihRTikgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjUyMTc1NjsKLSAgICBmdW5jdGlvbiA6ICJRQklOVCI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3NlbnNlIDogbm9uX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiByaXNpbmdfZWRnZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMTU0MTksIDAuNDQyMjU3LCAwLjU2ODkyMSwgMC42NTk1MTQsIDAuODA0NDI4LCAwLjkzMTExNywgMS4xMTIyIiwgXAotICAgICAgICAgICIwLjMyNzI2MywgMC40NTQxODYsIDAuNTgwODUzLCAwLjY3MTQ0NiwgMC44MTYzMTgsIDAuOTQzMDQ4LCAxLjEyNDE0IiwgXAotICAgICAgICAgICIwLjM0MjYyMywgMC40Njk0NTYsIDAuNTk2MTMxLCAwLjY4NjcyOSwgMC44MzE1NTEsIDAuOTU4MzE4LCAxLjEzOTQxIiwgXAotICAgICAgICAgICIwLjM1ODEzOCwgMC40ODQ5ODQsIDAuNjExNjQ4LCAwLjcwMjI0NiwgMC44NDcyMjIsIDAuOTczODQ1LCAxLjE1NDkyIiwgXAotICAgICAgICAgICIwLjM3MzAzMSwgMC40OTk5NTgsIDAuNjI2NjI5LCAwLjcxNzIxNiwgMC44NjIwNzcsIDAuOTg4ODI0LCAxLjE2OTkxIiwgXAotICAgICAgICAgICIwLjM5NzM1OCwgMC41MjQyODksIDAuNjUwOTY1LCAwLjc0MTU2MiwgMC44ODYzNjMsIDEuMDEzMTcsIDEuMTk0MjQiLCBcCi0gICAgICAgICAgIjAuNDE4MDA2LCAwLjU0NDkxMywgMC42NzE2MDksIDAuNzYyMTAxLCAwLjkwNjk2LCAxLjAzMzgyLCAxLjIxNDk4Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU3NzMzLCAwLjMwODU0MiwgMC41NjY3OTIsIDAuNzQ5MjgsIDEuMDQ0NjUsIDEuMzAyNjQsIDEuNjcwOTEiLCBcCi0gICAgICAgICAgIjAuMDU3NjY5LCAwLjMwODUyNCwgMC41NjY3OTUsIDAuNzQ5MjU1LCAxLjA0Mzc1LCAxLjMwMjY0LCAxLjY3MDkyIiwgXAotICAgICAgICAgICIwLjA1NzcyNywgMC4zMDg1MywgMC41NjY4LCAwLjc0OTI1LCAxLjA0NjA4LCAxLjMwNDI3LCAxLjY3MTA1IiwgXAotICAgICAgICAgICIwLjA1NzczLCAwLjMwODUzNSwgMC41NjY3OTYsIDAuNzQ5MjUxLCAxLjA0NCwgMS4zMDI2NiwgMS42NzI0MiIsIFwKLSAgICAgICAgICAiMC4wNTc2ODQsIDAuMzA4NTIzLCAwLjU2Njg3NywgMC43NDkzMTIsIDEuMDQ2OCwgMS4zMDI2OCwgMS42NzA5OCIsIFwKLSAgICAgICAgICAiMC4wNTc2NTQsIDAuMzA4NTMyLCAwLjU2NjgwMSwgMC43NDkyNSwgMS4wNDY2LCAxLjMwMjU4LCAxLjY3MTA4IiwgXAotICAgICAgICAgICIwLjA1NzY5MywgMC4zMDg1MiwgMC41NjY5MywgMC43NTEzMzgsIDEuMDQ2NTMsIDEuMzA1MiwgMS42NzQyNyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI5MzQ2NiwgMC40MzkyNiwgMC41ODUyMzgsIDAuNjg5NDc3LCAwLjg1NjM2NSwgMS4wMDIzNSwgMS4yMTA5MiIsIFwKLSAgICAgICAgICAiMC4zMDUzNDQsIDAuNDUxMTUsIDAuNTk3MTM1LCAwLjcwMTM4OCwgMC44NjgyNzUsIDEuMDE0MjcsIDEuMjIyODgiLCBcCi0gICAgICAgICAgIjAuMzIwNTYzLCAwLjQ2NjMyMiwgMC42MTIyNzEsIDAuNzE2NTM2LCAwLjg4MzIzLCAxLjAyOTQzLCAxLjIzNzk4IiwgXAotICAgICAgICAgICIwLjMzNTksIDAuNDgxNjg1LCAwLjYyNzYyLCAwLjczMjAxOSwgMC44OTg3OTIsIDEuMDQ0OSwgMS4yNTMzNCIsIFwKLSAgICAgICAgICAiMC4zNTA4NzUsIDAuNDk2NjY5LCAwLjY0MjYwMiwgMC43NDY4OTYsIDAuOTEzNzU5LCAxLjA1OTgxLCAxLjI2ODMzIiwgXAotICAgICAgICAgICIwLjM3NTExNywgMC41MjA5MTMsIDAuNjY2ODkxLCAwLjc3MTA2MywgMC45MzgwMDEsIDEuMDg0MTUsIDEuMjkyNTgiLCBcCi0gICAgICAgICAgIjAuMzk1Mjc2LCAwLjU0MTA1NywgMC42ODY5OTQsIDAuNzkxMzIsIDAuOTU4MTU4LCAxLjEwNDI5LCAxLjMxMjcxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDYxNTM2LCAwLjM0NjYxLCAwLjYzNjQzNiwgMC44NDM5NTgsIDEuMTc1ODgsIDEuNDY2MzEsIDEuODgwODIiLCBcCi0gICAgICAgICAgIjAuMDYxNTAxLCAwLjM0NjUxNCwgMC42MzY1NjMsIDAuODQ0MzAzLCAxLjE3NTc5LCAxLjQ2NjE2LCAxLjg4MTA2IiwgXAotICAgICAgICAgICIwLjA2MTU3OCwgMC4zNDY2MTMsIDAuNjM2MzcxLCAwLjg0NDA2OSwgMS4xNzU4OCwgMS40NjcyLCAxLjg4MDkyIiwgXAotICAgICAgICAgICIwLjA2MTUxNCwgMC4zNDY2MSwgMC42MzY2MTcsIDAuODQzODU2LCAxLjE3NTgsIDEuNDY1OTMsIDEuODgwODciLCBcCi0gICAgICAgICAgIjAuMDYxNTI0LCAwLjM0NjYwNSwgMC42MzY2MTMsIDAuODQ0MzUxLCAxLjE3NTk2LCAxLjQ2NTcsIDEuODgwMDYiLCBcCi0gICAgICAgICAgIjAuMDYxNTI0LCAwLjM0NjYwNCwgMC42MzY0NjUsIDAuODQzODI4LCAxLjE3NTk4LCAxLjQ2NTgxLCAxLjg4MDgzIiwgXAotICAgICAgICAgICIwLjA2MTUwNCwgMC4zNDY2MTIsIDAuNjM2NjI0LCAwLjg0MzQ5NCwgMS4xNzU4NCwgMS40NjU3OSwgMS44ODA5NCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjUxOSwgMC4wMDY2MzMsIDAuMDA2NjQ3LCAwLjAwNjY1MSwgMC4wMDY2NTQsIDAuMDA2NjU2LCAwLjAwNjY1OCIsIFwKLSAgICAgICAgICAiMC4wMDY1MTIsIDAuMDA2NjI2LCAwLjAwNjY0LCAwLjAwNjY0NCwgMC4wMDY2NDcsIDAuMDA2NjUsIDAuMDA2NjUxIiwgXAotICAgICAgICAgICIwLjAwNjUwNywgMC4wMDY2MjEsIDAuMDA2NjM2LCAwLjAwNjYzOSwgMC4wMDY2NDIsIDAuMDA2NjQ1LCAwLjAwNjY0NiIsIFwKLSAgICAgICAgICAiMC4wMDY1MDksIDAuMDA2NjE5LCAwLjAwNjYzMywgMC4wMDY2MzcsIDAuMDA2NjQxLCAwLjAwNjY0MiwgMC4wMDY2NDQiLCBcCi0gICAgICAgICAgIjAuMDA2NTAzLCAwLjAwNjYxNiwgMC4wMDY2MywgMC4wMDY2MzQsIDAuMDA2NjM5LCAwLjAwNjY0MSwgMC4wMDY2NDEiLCBcCi0gICAgICAgICAgIjAuMDA2NTA0LCAwLjAwNjYxNywgMC4wMDY2MzIsIDAuMDA2NjM0LCAwLjAwNjYzOSwgMC4wMDY2NCwgMC4wMDY2NDEiLCBcCi0gICAgICAgICAgIjAuMDA2NTA3LCAwLjAwNjYyLCAwLjAwNjYzNCwgMC4wMDY2MzgsIDAuMDA2NjQxLCAwLjAwNjY0NCwgMC4wMDY2NDUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjM0LCAwLjAwNjQ1NiwgMC4wMDY0NywgMC4wMDY0NzQsIDAuMDA2NDc5LCAwLjAwNjQ3OSwgMC4wMDY0OCIsIFwKLSAgICAgICAgICAiMC4wMDYzMzMsIDAuMDA2NDQ5LCAwLjAwNjQ2MywgMC4wMDY0NjcsIDAuMDA2NDcsIDAuMDA2NDcyLCAwLjAwNjQ3MyIsIFwKLSAgICAgICAgICAiMC4wMDYzMjcsIDAuMDA2NDQzLCAwLjAwNjQ1NywgMC4wMDY0NiwgMC4wMDY0NjQsIDAuMDA2NDY1LCAwLjAwNjQ2NiIsIFwKLSAgICAgICAgICAiMC4wMDYzMjIsIDAuMDA2NDM4LCAwLjAwNjQ1MiwgMC4wMDY0NTYsIDAuMDA2NDU5LCAwLjAwNjQ2MSwgMC4wMDY0NjIiLCBcCi0gICAgICAgICAgIjAuMDA2MzE3LCAwLjAwNjQzMywgMC4wMDY0NDcsIDAuMDA2NDUxLCAwLjAwNjQ1NCwgMC4wMDY0NTYsIDAuMDA2NDU4IiwgXAotICAgICAgICAgICIwLjAwNjMxMywgMC4wMDY0MjksIDAuMDA2NDQzLCAwLjAwNjQ0NywgMC4wMDY0NSwgMC4wMDY0NTIsIDAuMDA2NDU0IiwgXAotICAgICAgICAgICIwLjAwNjMxMSwgMC4wMDY0MjcsIDAuMDA2NDQxLCAwLjAwNjQ0NCwgMC4wMDY0NDgsIDAuMDA2NDQ5LCAwLjAwNjQ1MiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUk4pICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDU2NjA0NzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA1NjYwNDc7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNTY0NTkyOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjAxMSwgMC4wMDIwMDEsIDAuMDAxOTk1LCAwLjAwMTk5LCAwLjAwMTk4NywgMC4wMDE5ODIsIDAuMDAxOTc5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzMjY0LCAwLjAwMzI1NywgMC4wMDMyNTIsIDAuMDAzMjQ5LCAwLjAwMzI0NSwgMC4wMDMyNDMsIDAuMDAzMjM5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIkQiOwotICAgICAgc2RmX2NvbmQgOiAiRCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4xMTI1LCAtMC4xMDEyNSwgLTAuMDg4NzUsIC0wLjA3NjI1LCAtMC4wNywgLTAuMDUzNzUsIC0wLjA0NSIsIFwKLSAgICAgICAgICAiLTAuMTIzNzUsIC0wLjExMjUsIC0wLjEsIC0wLjA5Mzc1LCAtMC4wODEyNSwgLTAuMDY1LCAtMC4wNTYyNSIsIFwKLSAgICAgICAgICAiLTAuMTM2MjUsIC0wLjEyNSwgLTAuMTEyNSwgLTAuMTA2MjUsIC0wLjA5Mzc1LCAtMC4wODM3NSwgLTAuMDY4NzUiLCBcCi0gICAgICAgICAgIi0wLjE0ODc1LCAtMC4xMzc1LCAtMC4xMzEyNSwgLTAuMTE4NzUsIC0wLjEwNjI1LCAtMC4wOTYyNSwgLTAuMDgxMjUiLCBcCi0gICAgICAgICAgIi0wLjE2MTI1LCAtMC4xNSwgLTAuMTQzNzUsIC0wLjEzMTI1LCAtMC4xMjUsIC0wLjEwODc1LCAtMC4wOTM3NSIsIFwKLSAgICAgICAgICAiLTAuMTgzNzUsIC0wLjE3MjUsIC0wLjE2NjI1LCAtMC4xNTM3NSwgLTAuMTQxMjUsIC0wLjEzMTI1LCAtMC4xMTYyNSIsIFwKLSAgICAgICAgICAiLTAuMjA1LCAtMC4xOTM3NSwgLTAuMTgxMjUsIC0wLjE2ODc1LCAtMC4xNjI1LCAtMC4xNDYyNSwgLTAuMTM3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE4NzUsIDAuMDMsIDAuMDQyNSwgMC4wNjEyNSwgMC4wNzM3NSwgMC4wOTYyNSwgMC4xMTc1IiwgXAotICAgICAgICAgICIwLjAwNzUsIDAuMDE4NzUsIDAuMDMxMjUsIDAuMDUsIDAuMDYyNSwgMC4wODUsIDAuMTA2MjUiLCBcCi0gICAgICAgICAgIi0wLjAwNSwgMC4wMDYyNSwgMC4wMTg3NSwgMC4wMzEyNSwgMC4wNSwgMC4wNzI1LCAwLjA4NzUiLCBcCi0gICAgICAgICAgIi0wLjAxNzUsIC0wLjAwNjI1LCAwLjAwNjI1LCAwLjAxODc1LCAwLjAzNzUsIDAuMDYsIDAuMDc1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLjAwNjI1LCAwLjAxODc1LCAwLjA0MTI1LCAwLjA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA1MjUsIC0wLjA0MTI1LCAtMC4wMjg3NSwgLTAuMDE2MjUsIDAuMDAyNSwgMC4wMjUsIDAuMDQiLCBcCi0gICAgICAgICAgIi0wLjA2NzUsIC0wLjA1NjI1LCAtMC4wNDM3NSwgLTAuMDMxMjUsIC0wLjAxMjUsIDAuMDEsIDAuMDI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJEIjsKLSAgICAgIHNkZl9jb25kIDogIkQgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTkzNzUsIDAuMTgyNSwgMC4xNywgMC4xNTEyNSwgMC4xMzg3NSwgMC4xMjI1LCAwLjExMzc1IiwgXAotICAgICAgICAgICIwLjIwNSwgMC4xOTM3NSwgMC4xODEyNSwgMC4xNjI1LCAwLjE1LCAwLjEzMzc1LCAwLjEyNSIsIFwKLSAgICAgICAgICAiMC4yMjM3NSwgMC4yMDYyNSwgMC4xOTM3NSwgMC4xNzUsIDAuMTY4NzUsIDAuMTQ2MjUsIDAuMTM3NSIsIFwKLSAgICAgICAgICAiMC4yMzYyNSwgMC4yMjUsIDAuMjA2MjUsIDAuMTkzNzUsIDAuMTgxMjUsIDAuMTY1LCAwLjE1IiwgXAotICAgICAgICAgICIwLjI0ODc1LCAwLjIzNzUsIDAuMjE4NzUsIDAuMjA2MjUsIDAuMTkzNzUsIDAuMTc3NSwgMC4xNjI1IiwgXAotICAgICAgICAgICIwLjI3MTI1LCAwLjI2LCAwLjI0MTI1LCAwLjIyODc1LCAwLjIxNjI1LCAwLjIsIDAuMTg1IiwgXAotICAgICAgICAgICIwLjI5MjUsIDAuMjc1LCAwLjI2MjUsIDAuMjQzNzUsIDAuMjMxMjUsIDAuMjE1LCAwLjIwNjI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDYyNSwgMC4wNTEyNSwgMC4wMzI1LCAwLjAxMzc1LCAwLjAwMTI1LCAtMC4wMjEyNSwgLTAuMDQyNSIsIFwKLSAgICAgICAgICAiMC4wNzM3NSwgMC4wNjI1LCAwLjA0Mzc1LCAwLjAyNSwgMC4wMTI1LCAtMC4wMSwgLTAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMDg2MjUsIDAuMDc1LCAwLjA1NjI1LCAwLjA0Mzc1LCAwLjAyNSwgMC4wMDI1LCAtMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4wOTg3NSwgMC4wODc1LCAwLjA3NSwgMC4wNTYyNSwgMC4wNDM3NSwgMC4wMTUsIDAiLCBcCi0gICAgICAgICAgIjAuMTE3NSwgMC4xMDYyNSwgMC4wODc1LCAwLjA3NSwgMC4wNTYyNSwgMC4wMzM3NSwgMC4wMTI1IiwgXAotICAgICAgICAgICIwLjE0LCAwLjEyODc1LCAwLjExLCAwLjA5MTI1LCAwLjA3ODc1LCAwLjA1NjI1LCAwLjAzNSIsIFwKLSAgICAgICAgICAiMC4xNTUsIDAuMTQzNzUsIDAuMTMxMjUsIDAuMTEyNSwgMC4xLCAwLjA3MTI1LCAwLjA1NjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IERGRlg0ICoKLSAqIC0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChERkZYNCkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjUxNjgyOTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBmZiAoTjMwLFFCSU5UKSB7Ci0gICAgbmV4dF9zdGF0ZSA6ICJEIjsKLSAgICBjbG9ja2VkX29uIDogIkNLIjsKLSAgfQotICBwaW4oQ0spICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDU1MDMyOTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA1NTAyMjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA1NTAzMjk7Ci0gICAgY2xvY2sgOiB0cnVlOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjM1NywgMC4wMDIzNDUsIDAuMDAyMzMzLCAwLjAwMjMyNywgMC4wMDIzMjIsIDAuMDAyMzE1LCAwLjAwMjMxMyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNTExNCwgMC4wMDUxMDUsIDAuMDA1MDk4LCAwLjAwNTA5MiwgMC4wMDUwODUsIDAuMDA1MDgxLCAwLjAwNTA3OCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQiOwotICAgICAgc2RmX2NvbmQgOiAiRCA9PSAxJ2IwIjsKLSAgICAgIHJpc2VfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjMyMjExNywgMC4zMzQwNTMsIDAuMzQ5MDA5LCAwLjM2NDQ5NywgMC4zNzk5OTgsIDAuNDA0Mjc5LCAwLjQyNTMxNCIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMjEyODk4LCAwLjIyNDIwNSwgMC4yMzkzMDYsIDAuMjU0MTYxLCAwLjI2ODc1OSwgMC4yOTE3MTIsIDAuMzEwODE0Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihEKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA1Njg4OTg7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNTY3MzkzOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDU2ODg5ODsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDE4MzcsIDAuMDAxODI1LCAwLjAwMTgxOCwgMC4wMDE4MTQsIDAuMDAxODEsIDAuMDAxODA1LCAwLjAwMTgwMSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjIyNSwgMC4wMDIyMTksIDAuMDAyMjE1LCAwLjAwMjIxMiwgMC4wMDIyMDksIDAuMDAyMjA2LCAwLjAwMjIwMyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjA0Mzc1LCAtMC4wMzI1LCAtMC4wMiwgLTAuMDA3NSwgMC4wMDUsIDAuMDE1LCAwLjAzIiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA0Mzc1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLjAwMzc1LCAwLjAxODc1IiwgXAotICAgICAgICAgICItMC4wNjc1LCAtMC4wNTYyNSwgLTAuMDQzNzUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAwODc1LCAwIiwgXAotICAgICAgICAgICItMC4wOCwgLTAuMDY4NzUsIC0wLjA1NjI1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDIxMjUsIC0wLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjA5MjUsIC0wLjA4MTI1LCAtMC4wNjg3NSwgLTAuMDYyNSwgLTAuMDUsIC0wLjAzMzc1LCAtMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjExNSwgLTAuMTAzNzUsIC0wLjA5MTI1LCAtMC4wNzg3NSwgLTAuMDcyNSwgLTAuMDU2MjUsIC0wLjA0MTI1IiwgXAotICAgICAgICAgICItMC4xMywgLTAuMTE4NzUsIC0wLjEwNjI1LCAtMC4xLCAtMC4wODc1LCAtMC4wNzEyNSwgLTAuMDYyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU2MjUsIDAuMDY3NSwgMC4wOCwgMC4wOTg3NSwgMC4xMTEyNSwgMC4xMzM3NSwgMC4xNTUiLCBcCi0gICAgICAgICAgIjAuMDQ1LCAwLjA1NjI1LCAwLjA2ODc1LCAwLjA4NzUsIDAuMSwgMC4xMjI1LCAwLjE0Mzc1IiwgXAotICAgICAgICAgICIwLjAzMjUsIDAuMDQzNzUsIDAuMDU2MjUsIDAuMDc1LCAwLjA4NzUsIDAuMTEsIDAuMTMxMjUiLCBcCi0gICAgICAgICAgIjAuMDIsIDAuMDMxMjUsIDAuMDQzNzUsIDAuMDYyNSwgMC4wNzUsIDAuMDk3NSwgMC4xMTg3NSIsIFwKLSAgICAgICAgICAiMC4wMTM3NSwgMC4wMjUsIDAuMDM3NSwgMC4wNSwgMC4wNjg3NSwgMC4wOTEyNSwgMC4xMTI1IiwgXAotICAgICAgICAgICItMC4wMDI1LCAwLjAwODc1LCAwLjAyMTI1LCAwLjA0LCAwLjA1MjUsIDAuMDc1LCAwLjA5NjI1IiwgXAotICAgICAgICAgICItMC4wMTEyNSwgMCwgMC4wMTI1LCAwLjAyNSwgMC4wNDM3NSwgMC4wNjYyNSwgMC4wODc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEsIDAuMDg4NzUsIDAuMDcsIDAuMDU3NSwgMC4wNDUsIDAuMDI4NzUsIDAuMDIiLCBcCi0gICAgICAgICAgIjAuMTExMjUsIDAuMSwgMC4wODEyNSwgMC4wNjg3NSwgMC4wNTYyNSwgMC4wNDYyNSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4xMjM3NSwgMC4xMTI1LCAwLjEsIDAuMDgxMjUsIDAuMDc1LCAwLjA1ODc1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjEzNjI1LCAwLjEyNSwgMC4xMTI1LCAwLjEsIDAuMDg3NSwgMC4wNzEyNSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiMC4xNTUsIDAuMTM3NSwgMC4xMjUsIDAuMTEyNSwgMC4xLCAwLjA4Mzc1LCAwLjA2ODc1IiwgXAotICAgICAgICAgICIwLjE3MTI1LCAwLjE2LCAwLjE0NzUsIDAuMTM1LCAwLjEyMjUsIDAuMTA2MjUsIDAuMDkxMjUiLCBcCi0gICAgICAgICAgIjAuMTkyNSwgMC4xODEyNSwgMC4xNjI1LCAwLjE1LCAwLjEzNzUsIDAuMTIxMjUsIDAuMTEyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzNzUsIDAuMDI2MjUsIDAuMDA3NSwgLTAuMDA1LCAtMC4wMjM3NSwgLTAuMDQ2MjUsIC0wLjA3Mzc1IiwgXAotICAgICAgICAgICIwLjA0ODc1LCAwLjAzNzUsIDAuMDE4NzUsIDAuMDA2MjUsIC0wLjAxMjUsIC0wLjAzNSwgLTAuMDU2MjUiLCBcCi0gICAgICAgICAgIjAuMDYxMjUsIDAuMDUsIDAuMDMxMjUsIDAuMDE4NzUsIDAsIC0wLjAyMjUsIC0wLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjA3Mzc1LCAwLjA2MjUsIDAuMDQzNzUsIDAuMDMxMjUsIDAuMDEyNSwgLTAuMDEsIC0wLjAzMTI1IiwgXAotICAgICAgICAgICIwLjA4NjI1LCAwLjA3NSwgMC4wNTYyNSwgMC4wNDM3NSwgMC4wMjUsIDAuMDAyNSwgLTAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMTA4NzUsIDAuMDkxMjUsIDAuMDc4NzUsIDAuMDYsIDAuMDQ3NSwgMC4wMTg3NSwgLTAuMDAyNSIsIFwKLSAgICAgICAgICAiMC4xMjM3NSwgMC4xMTI1LCAwLjA5Mzc1LCAwLjA3NSwgMC4wNjI1LCAwLjAzMzc1LCAwLjAxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFEpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC41MjI4MTI7Ci0gICAgZnVuY3Rpb24gOiAiTjMwIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBub25fdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJpc2luZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI0NjgzNCwgMC4zNzY0MTQsIDAuNTAzMDkzLCAwLjU5NTMyNCwgMC43NDAxNzMsIDAuODY1ODA1LCAxLjA0ODA1IiwgXAotICAgICAgICAgICIwLjI1ODc4NywgMC4zODgzNjMsIDAuNTE2MTAyLCAwLjYwNjkxOCwgMC43NTIzNzgsIDAuODc4MDk2LCAxLjA1OTk2IiwgXAotICAgICAgICAgICIwLjI3MzcxNywgMC40MDMzMDEsIDAuNTMwNjQ2LCAwLjYyMTg2MywgMC43NjY4OTksIDAuODk0MTEzLCAxLjA3NDk4IiwgXAotICAgICAgICAgICIwLjI4OTI3NiwgMC40MTg4NTksIDAuNTQ1NzksIDAuNjM3NTEyLCAwLjc4MjQ4OCwgMC45MDk5MSwgMS4wOTA0OSIsIFwKLSAgICAgICAgICAiMC4zMDQ1NzksIDAuNDM0MTcxLCAwLjU2MTM4MywgMC42NTIxNTgsIDAuNzk3NTAyLCAwLjkyNTc1NiwgMS4xMDU4NCIsIFwKLSAgICAgICAgICAiMC4zMjg4NjksIDAuNDU4NDUzLCAwLjU4NjIwNSwgMC42NzY5NTUsIDAuODIyMDM4LCAwLjk0OTI5MiwgMS4xMzAxMiIsIFwKLSAgICAgICAgICAiMC4zNDk1NjgsIDAuNDc5MTQ5LCAwLjYwNjg5NSwgMC42OTY2ODIsIDAuODQzODg5LCAwLjk2OTU5NywgMS4xNTA2MiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1OTQxNSwgMC4zMDg0MTMsIDAuNTcxNTU2LCAwLjc1NDg4OCwgMS4wNDUyNCwgMS4zMTExLCAxLjY3MDUxIiwgXAotICAgICAgICAgICIwLjA1OTcwMywgMC4zMDgzNzgsIDAuNTY3NTEsIDAuNzUyMjUsIDEuMDU1NjUsIDEuMzEwOTcsIDEuNjY5NTUiLCBcCi0gICAgICAgICAgIjAuMDU5Nzc0LCAwLjMwODQwMywgMC41NzA0MzksIDAuNzQ5NTk5LCAxLjA0ODI4LCAxLjMxNTg1LCAxLjY3NDMzIiwgXAotICAgICAgICAgICIwLjA1OTczNiwgMC4zMDg0MDEsIDAuNTcyMjUyLCAwLjc0OTMwNiwgMS4wNDc3LCAxLjMwNTIzLCAxLjY3MTI2IiwgXAotICAgICAgICAgICIwLjA1OTU0NCwgMC4zMDgzNjIsIDAuNTcxMDE1LCAwLjc1ODYzNSwgMS4wNTIyNCwgMS4zMTQ5MiwgMS42NzI1MyIsIFwKLSAgICAgICAgICAiMC4wNTk1NDQsIDAuMzA4NDAxLCAwLjU3MjEwMSwgMC43NTE4MDMsIDEuMDQ4NTIsIDEuMzE2MjgsIDEuNjczNjMiLCBcCi0gICAgICAgICAgIjAuMDU5NjUzLCAwLjMwODM4NSwgMC41NjgwMjgsIDAuNzUxODc5LCAxLjA1MzQyLCAxLjI5OTc0LCAxLjY2NjEzIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjczMjIzLCAwLjQyMTQ3NSwgMC41Njc0NTYsIDAuNjcxNDk5LCAwLjgzODQ0MiwgMC45ODUzLCAxLjE5MzgyIiwgXAotICAgICAgICAgICIwLjI4NTA4OSwgMC40MzMyNSwgMC41NzkzNzEsIDAuNjgzMzY2LCAwLjg1MDE1MSwgMC45OTY5MzMsIDEuMjA1MzkiLCBcCi0gICAgICAgICAgIjAuMzAwMTIyLCAwLjQ0ODU0NiwgMC41OTQzNDUsIDAuNjk4NDAyLCAwLjg2NjQ2MywgMS4wMTE4NiwgMS4yMjAwOCIsIFwKLSAgICAgICAgICAiMC4zMTU2MywgMC40NjQwMzMsIDAuNjA5Nzc4LCAwLjcxMzg4NiwgMC44ODE5NDgsIDEuMDI3MjksIDEuMjM1NTkiLCBcCi0gICAgICAgICAgIjAuMzMxMDM4LCAwLjQ3OTQ1OCwgMC42MjUyNTMsIDAuNzI5MzA2LCAwLjg5NzM4NSwgMS4wNDIyMywgMS4yNTA2OCIsIFwKLSAgICAgICAgICAiMC4zNTUzOTYsIDAuNTAzODA3LCAwLjY0OTYwNCwgMC43NTM2NTgsIDAuOTIxNzIyLCAxLjA2NjU3LCAxLjI3NDk5IiwgXAotICAgICAgICAgICIwLjM3NjQyNCwgMC41MjQ4NTgsIDAuNjcwNzQ4LCAwLjc3NDY5MSwgMC45NDIyMDUsIDEuMDg3OTYsIDEuMjk1NjEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjI5ODgsIDAuMzQ2NTI5LCAwLjYzNTk2NCwgMC44NDMyMjksIDEuMTcyODEsIDEuNDY0MDksIDEuODgwMjgiLCBcCi0gICAgICAgICAgIjAuMDYzMDU0LCAwLjM0NjUwMywgMC42MzYwMzcsIDAuODQzMDIzLCAxLjE3NTI1LCAxLjQ2NTM3LCAxLjg4MTYxIiwgXAotICAgICAgICAgICIwLjA2MjgyLCAwLjM0NTkxNCwgMC42MzU5MzcsIDAuODQzMTkyLCAxLjE3NjIsIDEuNDY1ODksIDEuODgxMSIsIFwKLSAgICAgICAgICAiMC4wNjI3NzcsIDAuMzQ1OTIxLCAwLjYzNjA0MSwgMC44NDMxMjYsIDEuMTc2MiwgMS40NjYyMiwgMS44ODEyMyIsIFwKLSAgICAgICAgICAiMC4wNjMwNTQsIDAuMzQ2MDEyLCAwLjYzNTk0MiwgMC44NDMxMTMsIDEuMTc2MiwgMS40NjcxNywgMS44ODAxNiIsIFwKLSAgICAgICAgICAiMC4wNjMwMTgsIDAuMzQ2MDEzLCAwLjYzNTk0MiwgMC44NDMxOTksIDEuMTc2MiwgMS40NjczMSwgMS44Nzg2MiIsIFwKLSAgICAgICAgICAiMC4wNjI4OTQsIDAuMzQ1OTQyLCAwLjYzNTEwMSwgMC44NDIzODEsIDEuMTc1MDMsIDEuNDY1NzgsIDEuODc4NzEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDYyOTcsIDAuMDA2NDE0LCAwLjAwNjQyOCwgMC4wMDY0MzMsIDAuMDA2NDM3LCAwLjAwNjQzOCwgMC4wMDY0MzgiLCBcCi0gICAgICAgICAgIjAuMDA2MjkxLCAwLjAwNjQwOCwgMC4wMDY0MjMsIDAuMDA2NDI3LCAwLjAwNjQzLCAwLjAwNjQzMiwgMC4wMDY0MzQiLCBcCi0gICAgICAgICAgIjAuMDA2Mjg0LCAwLjAwNjQwMSwgMC4wMDY0MTUsIDAuMDA2NDIsIDAuMDA2NDIzLCAwLjAwNjQyNSwgMC4wMDY0MjciLCBcCi0gICAgICAgICAgIjAuMDA2MjgsIDAuMDA2Mzk3LCAwLjAwNjQxMSwgMC4wMDY0MTYsIDAuMDA2NDE5LCAwLjAwNjQyMSwgMC4wMDY0MjIiLCBcCi0gICAgICAgICAgIjAuMDA2Mjc2LCAwLjAwNjM5MywgMC4wMDY0MDgsIDAuMDA2NDEzLCAwLjAwNjQxNiwgMC4wMDY0MTcsIDAuMDA2NDE5IiwgXAotICAgICAgICAgICIwLjAwNjI3MSwgMC4wMDYzODgsIDAuMDA2NDAyLCAwLjAwNjQwNywgMC4wMDY0MSwgMC4wMDY0MTIsIDAuMDA2NDE0IiwgXAotICAgICAgICAgICIwLjAwNjI2OCwgMC4wMDYzODUsIDAuMDA2Mzk5LCAwLjAwNjQwNCwgMC4wMDY0MDgsIDAuMDA2NDEsIDAuMDA2NDEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjU0MSwgMC4wMDY2NTIsIDAuMDA2NjY3LCAwLjAwNjY3LCAwLjAwNjY3NCwgMC4wMDY2NzUsIDAuMDA2Njc5IiwgXAotICAgICAgICAgICIwLjAwNjUzLCAwLjAwNjY0MywgMC4wMDY2NTcsIDAuMDA2NjYxLCAwLjAwNjY2NSwgMC4wMDY2NjcsIDAuMDA2NjciLCBcCi0gICAgICAgICAgIjAuMDA2NTI2LCAwLjAwNjYzOSwgMC4wMDY2NTMsIDAuMDA2NjU3LCAwLjAwNjY2LCAwLjAwNjY2MiwgMC4wMDY2NjMiLCBcCi0gICAgICAgICAgIjAuMDA2NTI1LCAwLjAwNjYzNiwgMC4wMDY2NSwgMC4wMDY2NTQsIDAuMDA2NjU5LCAwLjAwNjY1OSwgMC4wMDY2NTkiLCBcCi0gICAgICAgICAgIjAuMDA2NTI0LCAwLjAwNjYzNCwgMC4wMDY2NDgsIDAuMDA2NjUyLCAwLjAwNjY1NiwgMC4wMDY2NTgsIDAuMDA2NjU5IiwgXAotICAgICAgICAgICIwLjAwNjUyMSwgMC4wMDY2MzIsIDAuMDA2NjQ2LCAwLjAwNjY1LCAwLjAwNjY1NCwgMC4wMDY2NTYsIDAuMDA2NjU3IiwgXAotICAgICAgICAgICIwLjAwNjUyMiwgMC4wMDY2MzQsIDAuMDA2NjQ4LCAwLjAwNjY1MiwgMC4wMDY2NTYsIDAuMDA2NjU5LCAwLjAwNjY1OSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUU4pICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC41MjcwNjc7Ci0gICAgZnVuY3Rpb24gOiAiUUJJTlQiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5vbl91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcmlzaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzIyMTE3LCAwLjQ0OTAwNiwgMC41NzU1ODYsIDAuNjY2MTIzLCAwLjgxMDY5NywgMC45MzczNDYsIDEuMTE4NDYiLCBcCi0gICAgICAgICAgIjAuMzM0MDUzLCAwLjQ2MDg0MSwgMC41ODc0NDksIDAuNjc3OTYsIDAuODIyNjU0LCAwLjk0OTE4MSwgMS4xMzAzMSIsIFwKLSAgICAgICAgICAiMC4zNDkwMDksIDAuNDc1ODc0LCAwLjYwMjQ1NywgMC42OTMsIDAuODM3Njk0LCAwLjk2NDIxMiwgMS4xNDUzNiIsIFwKLSAgICAgICAgICAiMC4zNjQ0OTcsIDAuNDkxMzcsIDAuNjE3OTU4LCAwLjcwODQ5NiwgMC44NTMxOTIsIDAuOTc5NzEsIDEuMTYwODYiLCBcCi0gICAgICAgICAgIjAuMzc5OTk4LCAwLjUwNjgwMSwgMC42MzMzNzQsIDAuNzIzOTE0LCAwLjg2ODYzNCwgMC45OTUzMzgsIDEuMTc2MDIiLCBcCi0gICAgICAgICAgIjAuNDA0Mjc5LCAwLjUzMTE0NSwgMC42NTc3MiwgMC43NDgyNjIsIDAuODkyOTYxLCAxLjAxOTY4LCAxLjIwMDM2IiwgXAotICAgICAgICAgICIwLjQyNTMxNCwgMC41NTIxOSwgMC42Nzg4MDMsIDAuNzY5Mjg2LCAwLjkxMzk5NiwgMS4wNDA3LCAxLjIyMTc4Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU3NzI0LCAwLjMwOTAwOCwgMC41NjY1NzYsIDAuNzQ4NzYyLCAxLjA0MjgzLCAxLjMwMzUyLCAxLjY3Mjc5IiwgXAotICAgICAgICAgICIwLjA1NzgxNCwgMC4zMDg5NzIsIDAuNTY2NjY4LCAwLjc0ODgyOSwgMS4wNDQyNiwgMS4zMDM1MiwgMS42Njk3IiwgXAotICAgICAgICAgICIwLjA1Nzc2MywgMC4zMDgzODMsIDAuNTY2NTUzLCAwLjc0ODc3NiwgMS4wNDU5OSwgMS4zMDM0NiwgMS42NzAwMiIsIFwKLSAgICAgICAgICAiMC4wNTc3NjYsIDAuMzA4MzgxLCAwLjU2NjQ3OCwgMC43NDg3OTksIDEuMDQ1OTgsIDEuMzAzNTMsIDEuNjciLCBcCi0gICAgICAgICAgIjAuMDU3ODE0LCAwLjMwODQsIDAuNTY2NTU3LCAwLjc0ODgwMywgMS4wNDYwOCwgMS4zMDAxNCwgMS42Njk4MiIsIFwKLSAgICAgICAgICAiMC4wNTc3MzcsIDAuMzA4NDAzLCAwLjU2NjU1OCwgMC43NDg3NzQsIDEuMDQ2MDEsIDEuMzAwMTcsIDEuNjY5NzciLCBcCi0gICAgICAgICAgIjAuMDU3NzY1LCAwLjMwODM3MywgMC41NjUwNjMsIDAuNzQ4ODc4LCAxLjA0NTc2LCAxLjMwMTc0LCAxLjY2ODQyIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzAwMDg3LCAwLjQ0NTgyOSwgMC41OTE2NjUsIDAuNjk1OTkxLCAwLjg2MjY2OCwgMS4wMDg0OSwgMS4yMTY5OCIsIFwKLSAgICAgICAgICAiMC4zMTIwNjUsIDAuNDU3NzkxLCAwLjYwMzY1LCAwLjcwNzg2MywgMC44NzQ3MDUsIDEuMDIwNSwgMS4yMjg5NCIsIFwKLSAgICAgICAgICAiMC4zMjcwMDEsIDAuNDcyNzAyLCAwLjYxODYsIDAuNzIyNzc2LCAwLjg4OTUzNywgMS4wMzU0NiwgMS4yNDM4NSIsIFwKLSAgICAgICAgICAiMC4zNDI1OTEsIDAuNDg4MjY1LCAwLjYzNDEzOCwgMC43MzgzNTEsIDAuOTA1MSwgMS4wNTEwNSwgMS4yNTk0MSIsIFwKLSAgICAgICAgICAiMC4zNTc4NDQsIDAuNTAzNTk0LCAwLjY0OTQ4OCwgMC43NTM2OTYsIDAuOTIwNDU2LCAxLjA2NjQ3LCAxLjI3NDc1IiwgXAotICAgICAgICAgICIwLjM4MjEyNCwgMC41Mjc4NTMsIDAuNjczNzgxLCAwLjc3NzkyMywgMC45NDQ2ODksIDEuMDkwNjIsIDEuMjk5IiwgXAotICAgICAgICAgICIwLjQwMjgzNywgMC41NDg1NzEsIDAuNjk0NDM0LCAwLjc5ODY0MiwgMC45NjU1NTIsIDEuMTExMywgMS4zMTk3MiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2MTYxNywgMC4zNDY0NTYsIDAuNjM2Mjg2LCAwLjg0Mjg5MiwgMS4xNzUxMSwgMS40NjYyMywgMS44Nzk4NCIsIFwKLSAgICAgICAgICAiMC4wNjE2MDksIDAuMzQ2NDUyLCAwLjYzNTgwNiwgMC44NDMzNzMsIDEuMTc0ODYsIDEuNDY2MjQsIDEuODc5ODQiLCBcCi0gICAgICAgICAgIjAuMDYxNjY5LCAwLjM0NjQ2MiwgMC42MzU5NTMsIDAuODQzMywgMS4xNzUyLCAxLjQ2NDk4LCAxLjg3OTY4IiwgXAotICAgICAgICAgICIwLjA2MTYzMiwgMC4zNDY0NjIsIDAuNjM2MTk3LCAwLjg0MjI5NywgMS4xNzUxNywgMS40NjUxNCwgMS44Nzk4IiwgXAotICAgICAgICAgICIwLjA2MTYwOCwgMC4zNDY0NTEsIDAuNjM2MDIsIDAuODQzNDczLCAxLjE3NDk1LCAxLjQ2NDcyLCAxLjg3OTcxIiwgXAotICAgICAgICAgICIwLjA2MTU3NSwgMC4zNDY0NTksIDAuNjM2MjE0LCAwLjg0MzM0NCwgMS4xNzUxOSwgMS40NjUwOSwgMS44Nzk2NiIsIFwKLSAgICAgICAgICAiMC4wNjE2MTEsIDAuMzQ2NDUyLCAwLjYzNTgzNCwgMC44NDM5MTYsIDEuMTc1MSwgMS40NjUyNywgMS44Nzk5MiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjU0MSwgMC4wMDY2NTIsIDAuMDA2NjY3LCAwLjAwNjY3LCAwLjAwNjY3NCwgMC4wMDY2NzUsIDAuMDA2Njc5IiwgXAotICAgICAgICAgICIwLjAwNjUzLCAwLjAwNjY0MywgMC4wMDY2NTcsIDAuMDA2NjYxLCAwLjAwNjY2NSwgMC4wMDY2NjcsIDAuMDA2NjciLCBcCi0gICAgICAgICAgIjAuMDA2NTI2LCAwLjAwNjYzOSwgMC4wMDY2NTMsIDAuMDA2NjU3LCAwLjAwNjY2LCAwLjAwNjY2MiwgMC4wMDY2NjMiLCBcCi0gICAgICAgICAgIjAuMDA2NTI1LCAwLjAwNjYzNiwgMC4wMDY2NSwgMC4wMDY2NTQsIDAuMDA2NjU5LCAwLjAwNjY1OSwgMC4wMDY2NTkiLCBcCi0gICAgICAgICAgIjAuMDA2NTI0LCAwLjAwNjYzNCwgMC4wMDY2NDgsIDAuMDA2NjUyLCAwLjAwNjY1NiwgMC4wMDY2NTgsIDAuMDA2NjU5IiwgXAotICAgICAgICAgICIwLjAwNjUyMSwgMC4wMDY2MzIsIDAuMDA2NjQ2LCAwLjAwNjY1LCAwLjAwNjY1NCwgMC4wMDY2NTYsIDAuMDA2NjU3IiwgXAotICAgICAgICAgICIwLjAwNjUyMiwgMC4wMDY2MzQsIDAuMDA2NjQ4LCAwLjAwNjY1MiwgMC4wMDY2NTYsIDAuMDA2NjU5LCAwLjAwNjY1OSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2Mjk3LCAwLjAwNjQxNCwgMC4wMDY0MjgsIDAuMDA2NDMzLCAwLjAwNjQzNywgMC4wMDY0MzgsIDAuMDA2NDM4IiwgXAotICAgICAgICAgICIwLjAwNjI5MSwgMC4wMDY0MDgsIDAuMDA2NDIzLCAwLjAwNjQyNywgMC4wMDY0MywgMC4wMDY0MzIsIDAuMDA2NDM0IiwgXAotICAgICAgICAgICIwLjAwNjI4NCwgMC4wMDY0MDEsIDAuMDA2NDE1LCAwLjAwNjQyLCAwLjAwNjQyMywgMC4wMDY0MjUsIDAuMDA2NDI3IiwgXAotICAgICAgICAgICIwLjAwNjI4LCAwLjAwNjM5NywgMC4wMDY0MTEsIDAuMDA2NDE2LCAwLjAwNjQxOSwgMC4wMDY0MjEsIDAuMDA2NDIyIiwgXAotICAgICAgICAgICIwLjAwNjI3NiwgMC4wMDYzOTMsIDAuMDA2NDA4LCAwLjAwNjQxMywgMC4wMDY0MTYsIDAuMDA2NDE3LCAwLjAwNjQxOSIsIFwKLSAgICAgICAgICAiMC4wMDYyNzEsIDAuMDA2Mzg4LCAwLjAwNjQwMiwgMC4wMDY0MDcsIDAuMDA2NDEsIDAuMDA2NDEyLCAwLjAwNjQxNCIsIFwKLSAgICAgICAgICAiMC4wMDYyNjgsIDAuMDA2Mzg1LCAwLjAwNjM5OSwgMC4wMDY0MDQsIDAuMDA2NDA4LCAwLjAwNjQxLCAwLjAwNjQxIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBETFkxWDEgKgotICogLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChETFkxWDEpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4wOTQ2MDE0OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2MDYyNzI7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjA2MTY3OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDYwNjI3MjsKLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjEyOTI3OTsKLSAgICBmdW5jdGlvbiA6ICJBIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMTc1MjEsIDAuMjYwNzE2LCAwLjUwNTM5MSwgMC43MjExNTMsIDEuMDA4ODYsIDEuNTg0MzcsIDEuOTQzOTciLCBcCi0gICAgICAgICAgIjAuMjI5MjcxLCAwLjI3MjQ4NCwgMC41MTcxMSwgMC43MzI4NywgMS4wMjA2MywgMS41OTYxMSwgMS45NTU1OSIsIFwKLSAgICAgICAgICAiMC4yNDQ1MzgsIDAuMjg3NzM0LCAwLjUzMjM2LCAwLjc0ODEwNywgMS4wMzU4NSwgMS42MTEzNiwgMS45NzA3NSIsIFwKLSAgICAgICAgICAiMC4yNTkzNDgsIDAuMzAyNTQ2LCAwLjU0NzE3MiwgMC43NjI5NDksIDEuMDUwNjYsIDEuNjI2MTgsIDEuOTg1NTkiLCBcCi0gICAgICAgICAgIjAuMjczMDk5LCAwLjMxNjI5NywgMC41NjA5MjQsIDAuNzc2Njg4LCAxLjA2NDQsIDEuNjM5OTUsIDEuOTk5NjIiLCBcCi0gICAgICAgICAgIjAuMjkyODE0LCAwLjMzNTk5OCwgMC41ODA2MjgsIDAuNzk2MzgzLCAxLjA4NDA5LCAxLjY1OTUyLCAyLjAxOTE2IiwgXAotICAgICAgICAgICIwLjMwODI0MiwgMC4zNTE0NSwgMC41OTU5NTUsIDAuODExODQzLCAxLjA5OTU2LCAxLjY3NDg4LCAyLjAzNDU5Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE1OTU5MSwgMC4yNDY0MTQsIDAuNzQ0NDk1LCAxLjE4Mzc3LCAxLjc2NjQ5LCAyLjk0MTg4LCAzLjY3NDA4IiwgXAotICAgICAgICAgICIwLjE1OTI5OCwgMC4yNDY3MywgMC43NDQ0NjMsIDEuMTgzNjksIDEuNzY5ODMsIDIuOTQxNjUsIDMuNjY3OCIsIFwKLSAgICAgICAgICAiMC4xNTk2MDUsIDAuMjQ2NDIsIDAuNzQ0NDQxLCAxLjE4MzUyLCAxLjc2OTY2LCAyLjk0MTYzLCAzLjY3MjU5IiwgXAotICAgICAgICAgICIwLjE1OTU5NCwgMC4yNDU5OTgsIDAuNzQ0NDQ0LCAxLjE4MTcxLCAxLjc2OTY0LCAyLjk0MTYxLCAzLjY2NzIiLCBcCi0gICAgICAgICAgIjAuMTU5NTgzLCAwLjI0NjQyOSwgMC43NDQ0NTgsIDEuMTgzNywgMS43Njk2MSwgMi45MzQ2NCwgMy42NjUwNSIsIFwKLSAgICAgICAgICAiMC4xNTk1NzYsIDAuMjQ2MzE3LCAwLjc0NDQ4NywgMS4xODM3LCAxLjc2OTU0LCAyLjkzNDgxLCAzLjY2NTcxIiwgXAotICAgICAgICAgICIwLjE1OTI5NiwgMC4yNDYyMTQsIDAuNzQzLCAxLjE4MzY0LCAxLjc2OTU2LCAyLjk0MDY0LCAzLjY2NDk2Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIzMDE0LCAwLjI3OTYsIDAuNTU5NTAxLCAwLjgwNjM1LCAxLjEzNTU0LCAxLjc5Mzg5LCAyLjIwNTI3IiwgXAotICAgICAgICAgICIwLjI0MTY2NywgMC4yOTExMjYsIDAuNTcxMDI2LCAwLjgxNzg3NywgMS4xNDcwNywgMS44MDU0MSwgMi4yMTY4IiwgXAotICAgICAgICAgICIwLjI1NjA5OCwgMC4zMDU1NTMsIDAuNTg1NDU0LCAwLjgzMjMyMiwgMS4xNjE1MywgMS44MTk4LCAyLjIzMTI1IiwgXAotICAgICAgICAgICIwLjI2OTUsIDAuMzE4OTU5LCAwLjU5ODg1MywgMC44NDU3MTYsIDEuMTc0OTUsIDEuODMzMjMsIDIuMjQ0NjYiLCBcCi0gICAgICAgICAgIjAuMjgxMzc1LCAwLjMzMDgzMywgMC42MTA3MjgsIDAuODU3NTkyLCAxLjE4Njc5LCAxLjg0NTExLCAyLjI1NjUxIiwgXAotICAgICAgICAgICIwLjI5ODIzNiwgMC4zNDc2OTUsIDAuNjI3NjA0LCAwLjg3NDQ0OSwgMS4yMDM2MywgMS44NjE4OSwgMi4yNzMzNiIsIFwKLSAgICAgICAgICAiMC4zMTExNTUsIDAuMzYwNjEzLCAwLjY0MDU0MSwgMC44ODczNzIsIDEuMjE2NTYsIDEuODc0OCwgMi4yODYyOSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNzcxMzgsIDAuMjc0NTYzLCAwLjgzMjI1NiwgMS4zMjM4MSwgMS45Nzg0MywgMy4yODQ1MywgNC4wOTY1MSIsIFwKLSAgICAgICAgICAiMC4xNzcxNiwgMC4yNzQ2NzEsIDAuODMyMjU2LCAxLjMyMzc5LCAxLjk3ODQ1LCAzLjI4Mzk0LCA0LjEwMzgxIiwgXAotICAgICAgICAgICIwLjE3NzcwNywgMC4yNzU1NjUsIDAuODMyMzcyLCAxLjMyMzYyLCAxLjk3ODE2LCAzLjI4NTMzLCA0LjEwMTE0IiwgXAotICAgICAgICAgICIwLjE3NzYzMSwgMC4yNzU1NjEsIDAuODMyNDM4LCAxLjMyMTU2LCAxLjk3OCwgMy4yODEzOCwgNC4xMDA3IiwgXAotICAgICAgICAgICIwLjE3NzY3OCwgMC4yNzU1NjMsIDAuODMxNjE4LCAxLjMyMzY3LCAxLjk3ODI3LCAzLjI4ODAyLCA0LjEwNDQxIiwgXAotICAgICAgICAgICIwLjE3NzY3OSwgMC4yNzU1NjYsIDAuODMyMTQ1LCAxLjMyMzY2LCAxLjk3ODMzLCAzLjI4MzUxLCA0LjEwNDc2IiwgXAotICAgICAgICAgICIwLjE3NzY4MywgMC4yNzU1NjIsIDAuODI5OTg3LCAxLjMyMzY4LCAxLjk3ODE3LCAzLjI4NDYsIDQuMTA0NzEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI2MzYsIDAuMDAyNjM5LCAwLjAwMjY0MiwgMC4wMDI2NDEsIDAuMDAyNjQyLCAwLjAwMjY0MywgMC4wMDI2NDMiLCBcCi0gICAgICAgICAgIjAuMDAyNjE1LCAwLjAwMjYxOCwgMC4wMDI2MjEsIDAuMDAyNjIyLCAwLjAwMjYyMywgMC4wMDI2MjMsIDAuMDAyNjIzIiwgXAotICAgICAgICAgICIwLjAwMjYwNSwgMC4wMDI2MDcsIDAuMDAyNjExLCAwLjAwMjYxMywgMC4wMDI2MTMsIDAuMDAyNjExLCAwLjAwMjYwOSIsIFwKLSAgICAgICAgICAiMC4wMDI2LCAwLjAwMjYwMiwgMC4wMDI2MDYsIDAuMDAyNjA0LCAwLjAwMjYwOCwgMC4wMDI2MDcsIDAuMDAyNjA4IiwgXAotICAgICAgICAgICIwLjAwMjU5OSwgMC4wMDI2MDEsIDAuMDAyNjA0LCAwLjAwMjYwNSwgMC4wMDI2MDUsIDAuMDAyNjA2LCAwLjAwMjYwNSIsIFwKLSAgICAgICAgICAiMC4wMDI1OTgsIDAuMDAyNjAxLCAwLjAwMjYwNCwgMC4wMDI2MDUsIDAuMDAyNjA1LCAwLjAwMjYwNSwgMC4wMDI2MDYiLCBcCi0gICAgICAgICAgIjAuMDAyNTk4LCAwLjAwMjYwMSwgMC4wMDI2MDQsIDAuMDAyNjA1LCAwLjAwMjYwNSwgMC4wMDI2MDQsIDAuMDAyNjA1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzMTU3LCAwLjAwMzE2MSwgMC4wMDMxNjcsIDAuMDAzMTY4LCAwLjAwMzE2OCwgMC4wMDMxNjksIDAuMDAzMTY5IiwgXAotICAgICAgICAgICIwLjAwMzE0MSwgMC4wMDMxNDYsIDAuMDAzMTUxLCAwLjAwMzE1MiwgMC4wMDMxNTMsIDAuMDAzMTUzLCAwLjAwMzE1MyIsIFwKLSAgICAgICAgICAiMC4wMDMxMzIsIDAuMDAzMTM2LCAwLjAwMzE0MSwgMC4wMDMxNDIsIDAuMDAzMTQzLCAwLjAwMzE0MywgMC4wMDMxNDMiLCBcCi0gICAgICAgICAgIjAuMDAzMTI2LCAwLjAwMzEzLCAwLjAwMzEzNiwgMC4wMDMxMzcsIDAuMDAzMTM3LCAwLjAwMzEzOCwgMC4wMDMxMzgiLCBcCi0gICAgICAgICAgIjAuMDAzMTIyLCAwLjAwMzEyNywgMC4wMDMxMzIsIDAuMDAzMTMzLCAwLjAwMzEzMywgMC4wMDMxMzQsIDAuMDAzMTM0IiwgXAotICAgICAgICAgICIwLjAwMzEyMSwgMC4wMDMxMjUsIDAuMDAzMTMsIDAuMDAzMTMxLCAwLjAwMzEzMSwgMC4wMDMxMzIsIDAuMDAzMTMyIiwgXAotICAgICAgICAgICIwLjAwMzExOSwgMC4wMDMxMjMsIDAuMDAzMTI5LCAwLjAwMzEyOSwgMC4wMDMxMywgMC4wMDMxMywgMC4wMDMxMzEiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IERMWTRYMSAqCi0gKiAtLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKERMWTRYMSkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjI0OTEzNjsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjUxMzc2OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDY1MTM3NjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2NTEzNDI7Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4xMzExNjc7Ci0gICAgZnVuY3Rpb24gOiAiQSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuNzAyNzkzLCAwLjc0NTU0LCAwLjk4NzU0NSwgMS4yMDEsIDEuNDg1NjMsIDIuMDU0ODEsIDIuNDEwNjkiLCBcCi0gICAgICAgICAgIjAuNzE0NTk5LCAwLjc1NzM0NSwgMC45OTkzOCwgMS4yMTI4MSwgMS40OTc0MiwgMi4wNjY3OCwgMi40MjI0MyIsIFwKLSAgICAgICAgICAiMC43Mjk5MTcsIDAuNzcyNjYzLCAxLjAxNDcsIDEuMjI4MTQsIDEuNTEyNzUsIDIuMDgyMSwgMi40Mzc3MyIsIFwKLSAgICAgICAgICAiMC43NDQ5MTUsIDAuNzg3NjYsIDEuMDI5NywgMS4yNDMxNSwgMS41Mjc3NiwgMi4wOTcxLCAyLjQ1MjcxIiwgXAotICAgICAgICAgICIwLjc1OTAxOCwgMC44MDE3NTYsIDEuMDQzNjcsIDEuMjU3MjIsIDEuNTQxODYsIDIuMTExMDQsIDIuNDY2ODgiLCBcCi0gICAgICAgICAgIjAuNzc5NTcxLCAwLjgyMjMxMywgMS4wNjQzNSwgMS4yNzc4LCAxLjU2MjQ4LCAyLjEzMTc2LCAyLjQ4NzU4IiwgXAotICAgICAgICAgICIwLjc5NTY5NCwgMC44Mzg0MzgsIDEuMDgwNDcsIDEuMjkzOTMsIDEuNTc4NTcsIDIuMTQ3ODgsIDIuNTAzNTgiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTU5MjIzLCAwLjI0NDg0NCwgMC43Mzc3NTYsIDEuMTcyNDYsIDEuNzUyMzYsIDIuOTEwNTIsIDMuNjI5MDIiLCBcCi0gICAgICAgICAgIjAuMTU5MjIzLCAwLjI0NTA0NiwgMC43Mzc3OTYsIDEuMTcyMjcsIDEuNzUyMDcsIDIuOTEyMzcsIDMuNjMwMjMiLCBcCi0gICAgICAgICAgIjAuMTU5MjMyLCAwLjI0NTAzNSwgMC43Mzc3OTksIDEuMTcyNDMsIDEuNzUyMTUsIDIuOTEyMzYsIDMuNjMwNyIsIFwKLSAgICAgICAgICAiMC4xNTkyMjUsIDAuMjQ1MDQ2LCAwLjczNzc5LCAxLjE3MjUsIDEuNzUyMTksIDIuOTEyMzUsIDMuNjMzOSIsIFwKLSAgICAgICAgICAiMC4xNTkyMSwgMC4yNDQ3NTgsIDAuNzM3MzY4LCAxLjE3MjQzLCAxLjc1MjMxLCAyLjkwNzA1LCAzLjYyODY0IiwgXAotICAgICAgICAgICIwLjE1OTI1LCAwLjI0NTAwNywgMC43Mzc3OTYsIDEuMTcyNDcsIDEuNzUyNiwgMi45MTIzNCwgMy42MzY3NCIsIFwKLSAgICAgICAgICAiMC4xNTkyNDMsIDAuMjQ0OTc1LCAwLjczNzc5NCwgMS4xNzA0NCwgMS43NTI0NiwgMi45MTIzNSwgMy42MzY4NCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC43MTc1NjgsIDAuNzY3MDMyLCAxLjA0NjkxLCAxLjI5Mzc0LCAxLjYyMjksIDIuMjgxMSwgMi42OTI0OSIsIFwKLSAgICAgICAgICAiMC43MjkxMTIsIDAuNzc4NTc3LCAxLjA1ODQ1LCAxLjMwNTI5LCAxLjYzNDQ0LCAyLjI5MjY0LCAyLjcwNDAzIiwgXAotICAgICAgICAgICIwLjc0MzYwMywgMC43OTMwNjYsIDEuMDcyOTQsIDEuMzE5NzgsIDEuNjQ4OTMsIDIuMzA3MTQsIDIuNzE4NTIiLCBcCi0gICAgICAgICAgIjAuNzU3NDE5LCAwLjgwNjg4NCwgMS4wODY3NiwgMS4zMzM1OSwgMS42NjI3NSwgMi4zMjA5NSwgMi43MzIzMyIsIFwKLSAgICAgICAgICAiMC43Njk4NDIsIDAuODE5MzA3LCAxLjA5OTE4LCAxLjM0NjAxLCAxLjY3NTE3LCAyLjMzMzM3LCAyLjc0NDc1IiwgXAotICAgICAgICAgICIwLjc4NzQyNywgMC44MzY4OTIsIDEuMTE2NzYsIDEuMzYzNiwgMS42OTI3NywgMi4zNTA5NywgMi43NjIyMyIsIFwKLSAgICAgICAgICAiMC44MDExODksIDAuODUwNjUyLCAxLjEzMDUzLCAxLjM3NzM2LCAxLjcwNjUyLCAyLjM2NDcxLCAyLjc3NjEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTc4OTM1LCAwLjI3Njc0NywgMC44MzM1MDMsIDEuMzI0NjUsIDEuOTc5MDcsIDMuMjgyNDMsIDQuMDk5MDUiLCBcCi0gICAgICAgICAgIjAuMTc4OTM0LCAwLjI3Njc0NywgMC44MzM0OTksIDEuMzI0NjUsIDEuOTc5MDMsIDMuMjgyMzcsIDQuMDk4OTgiLCBcCi0gICAgICAgICAgIjAuMTc4OTQ1LCAwLjI3Njc0NiwgMC44MzM1MTgsIDEuMzI0NjIsIDEuOTc5MDIsIDMuMjgyNjIsIDQuMDk4OSIsIFwKLSAgICAgICAgICAiMC4xNzg5MywgMC4yNzY3NDcsIDAuODMzNDY4LCAxLjMyNDYzLCAxLjk3OSwgMy4yODE5OCwgNC4wOTg2IiwgXAotICAgICAgICAgICIwLjE3ODkyOSwgMC4yNzY3NDgsIDAuODMzNDU0LCAxLjMyNDYyLCAxLjk3OTAxLCAzLjI4MTgsIDQuMDk4NDIiLCBcCi0gICAgICAgICAgIjAuMTc4OTUxLCAwLjI3Njc0NSwgMC44MzM1NDQsIDEuMzIzMTQsIDEuOTc4ODcsIDMuMjg0NTIsIDQuMTAyNiIsIFwKLSAgICAgICAgICAiMC4xNzg5NCwgMC4yNzY3NDYsIDAuODMzNDY4LCAxLjMyNDU5LCAxLjk3ODk4LCAzLjI4MTk0LCA0LjA5ODU5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA5NDI3LCAwLjAwOTQzLCAwLjAwOTQzNSwgMC4wMDk0MzcsIDAuMDA5NDM2LCAwLjAwOTQzNywgMC4wMDk0MzciLCBcCi0gICAgICAgICAgIjAuMDA5NDA3LCAwLjAwOTQxMiwgMC4wMDk0MTYsIDAuMDA5NDE3LCAwLjAwOTQxNywgMC4wMDk0MTgsIDAuMDA5NDE5IiwgXAotICAgICAgICAgICIwLjAwOTM5NiwgMC4wMDk0LCAwLjAwOTQwNSwgMC4wMDk0MDYsIDAuMDA5NDA2LCAwLjAwOTQwNywgMC4wMDk0MDciLCBcCi0gICAgICAgICAgIjAuMDA5MzkyLCAwLjAwOTM5NiwgMC4wMDkzOTksIDAuMDA5NCwgMC4wMDk0MDEsIDAuMDA5NDAyLCAwLjAwOTQwMiIsIFwKLSAgICAgICAgICAiMC4wMDkzOSwgMC4wMDkzOTIsIDAuMDA5Mzk3LCAwLjAwOTM5OSwgMC4wMDkzOTgsIDAuMDA5Mzk5LCAwLjAwOTM5OSIsIFwKLSAgICAgICAgICAiMC4wMDkzODksIDAuMDA5MzkzLCAwLjAwOTM5NywgMC4wMDkzOTgsIDAuMDA5Mzk4LCAwLjAwOTM5OSwgMC4wMDkzOTgiLCBcCi0gICAgICAgICAgIjAuMDA5MzksIDAuMDA5MzkzLCAwLjAwOTM5OCwgMC4wMDkzOTksIDAuMDA5Mzk5LCAwLjAwOTQsIDAuMDA5Mzk5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA5NDY5LCAwLjAwOTQ3NCwgMC4wMDk0OCwgMC4wMDk0ODEsIDAuMDA5NDgzLCAwLjAwOTQ4MywgMC4wMDk0ODMiLCBcCi0gICAgICAgICAgIjAuMDA5NDU0LCAwLjAwOTQ1OSwgMC4wMDk0NjYsIDAuMDA5NDY3LCAwLjAwOTQ2OCwgMC4wMDk0NjksIDAuMDA5NDY5IiwgXAotICAgICAgICAgICIwLjAwOTQ0NSwgMC4wMDk0NDksIDAuMDA5NDU2LCAwLjAwOTQ1OCwgMC4wMDk0NTcsIDAuMDA5NDU4LCAwLjAwOTQ1OSIsIFwKLSAgICAgICAgICAiMC4wMDk0MzksIDAuMDA5NDQ0LCAwLjAwOTQ1LCAwLjAwOTQ1MSwgMC4wMDk0NTMsIDAuMDA5NDUzLCAwLjAwOTQ1NCIsIFwKLSAgICAgICAgICAiMC4wMDk0MzQsIDAuMDA5NDQxLCAwLjAwOTQ0NywgMC4wMDk0NDgsIDAuMDA5NDQ5LCAwLjAwOTQ1LCAwLjAwOTQ0OSIsIFwKLSAgICAgICAgICAiMC4wMDk0MzIsIDAuMDA5NDM3LCAwLjAwOTQ0NCwgMC4wMDk0NDYsIDAuMDA5NDQ2LCAwLjAwOTQ0NywgMC4wMDk0NDYiLCBcCi0gICAgICAgICAgIjAuMDA5NDMxLCAwLjAwOTQzNiwgMC4wMDk0NDMsIDAuMDA5NDQ0LCAwLjAwOTQ0NCwgMC4wMDk0NDUsIDAuMDA5NDQ1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IEVERkZIUVgxICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChFREZGSFFYMSkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjM0NzQyOwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIGZmIChOMzAsUUJJTlQpIHsKLSAgICBuZXh0X3N0YXRlIDogIigoRSBEKSArICghRSAoISghTjMwKSkpKSI7Ci0gICAgY2xvY2tlZF9vbiA6ICJDSyI7Ci0gIH0KLSAgcGluKENLKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2NDEyODk7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjQwOTY7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjQxMjg5OwotICAgIGNsb2NrIDogdHJ1ZTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDI4NzgsIDAuMDAyODY1LCAwLjAwMjg1NCwgMC4wMDI4NDgsIDAuMDAyODQyLCAwLjAwMjgzNiwgMC4wMDI4MzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDU1MywgMC4wMDU1MjIsIDAuMDA1NTEyLCAwLjAwNTUwNywgMC4wMDU1MDgsIDAuMDA1NTEzLCAwLjAwNTUxNiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQmRSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fRV9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMzA0NjM4LCAwLjMxNjU3OSwgMC4zMzE4MjYsIDAuMzQ3MjE3LCAwLjM2MjI5OCwgMC4zODY2MjMsIDAuNDA3Mjk1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4xODYwODgsIDAuMTk3NzYyLCAwLjIxMjYxMywgMC4yMjc1NTMsIDAuMjQxOTc0LCAwLjI2NDc5NCwgMC4yODMxODYiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEQpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDg2NDkwMjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA4NjExMDc7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwODY0OTAyOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjg5OCwgMC4wMDI4NzksIDAuMDAyODY5LCAwLjAwMjg2MywgMC4wMDI4NTgsIDAuMDAyODUyLCAwLjAwMjg0OCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNTQyNiwgMC4wMDU0MTcsIDAuMDA1NDExLCAwLjAwNTQwOCwgMC4wMDU0MDUsIDAuMDA1NDAyLCAwLjAwNTQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiRSI7Ci0gICAgICBzZGZfY29uZCA6ICJFID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjExMjUsIC0wLjEwMTI1LCAtMC4wOTUsIC0wLjA4MjUsIC0wLjA3LCAtMC4wNiwgLTAuMDQ1IiwgXAotICAgICAgICAgICItMC4xMjM3NSwgLTAuMTEyNSwgLTAuMTA2MjUsIC0wLjA5Mzc1LCAtMC4wODEyNSwgLTAuMDcxMjUsIC0wLjA1NjI1IiwgXAotICAgICAgICAgICItMC4xMzYyNSwgLTAuMTMxMjUsIC0wLjExODc1LCAtMC4xMDYyNSwgLTAuMSwgLTAuMDgzNzUsIC0wLjA2ODc1IiwgXAotICAgICAgICAgICItMC4xNDg3NSwgLTAuMTQzNzUsIC0wLjEzMTI1LCAtMC4xMTg3NSwgLTAuMTEyNSwgLTAuMDk2MjUsIC0wLjA4MTI1IiwgXAotICAgICAgICAgICItMC4xNjc1LCAtMC4xNTYyNSwgLTAuMTQzNzUsIC0wLjEzMTI1LCAtMC4xMjUsIC0wLjEwODc1LCAtMC4xIiwgXAotICAgICAgICAgICItMC4xODM3NSwgLTAuMTc4NzUsIC0wLjE2NjI1LCAtMC4xNTM3NSwgLTAuMTQ3NSwgLTAuMTMxMjUsIC0wLjExNjI1IiwgXAotICAgICAgICAgICItMC4yMDUsIC0wLjE5Mzc1LCAtMC4xODEyNSwgLTAuMTc1LCAtMC4xNjI1LCAtMC4xNTI1LCAtMC4xMzc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDE4NzUsIC0wLjAwNzUsIDAuMDExMjUsIDAuMDIzNzUsIDAuMDM2MjUsIDAuMDU4NzUsIDAuMDczNzUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMTg3NSwgMCwgMC4wMTI1LCAwLjAyNSwgMC4wNDc1LCAwLjA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzMTI1LCAtMC4wMTI1LCAwLCAwLjAxMjUsIDAuMDM1LCAwLjA1IiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA0Mzc1LCAtMC4wMjUsIC0wLjAxMjUsIDAsIDAuMDIyNSwgMC4wMzc1IiwgXAotICAgICAgICAgICItMC4wNjc1LCAtMC4wNSwgLTAuMDM3NSwgLTAuMDI1LCAtMC4wMTI1LCAwLjAxLCAwLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDgzNzUsIC0wLjA3MjUsIC0wLjA1Mzc1LCAtMC4wNDEyNSwgLTAuMDI4NzUsIC0wLjAwNjI1LCAwLjAwODc1IiwgXAotICAgICAgICAgICItMC4wOTg3NSwgLTAuMDg3NSwgLTAuMDY4NzUsIC0wLjA1NjI1LCAtMC4wNDM3NSwgLTAuMDIxMjUsIC0wLjAwNjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJFIjsKLSAgICAgIHNkZl9jb25kIDogIkUgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTc1LCAwLjE2Mzc1LCAwLjE1MTI1LCAwLjEzODc1LCAwLjEyNjI1LCAwLjExLCAwLjEwMTI1IiwgXAotICAgICAgICAgICIwLjE4NjI1LCAwLjE3NSwgMC4xNjI1LCAwLjE1LCAwLjEzNzUsIDAuMTIxMjUsIDAuMTEyNSIsIFwKLSAgICAgICAgICAiMC4yMDUsIDAuMTg3NSwgMC4xNzUsIDAuMTYyNSwgMC4xNSwgMC4xMzM3NSwgMC4xMjUiLCBcCi0gICAgICAgICAgIjAuMjE3NSwgMC4yMDYyNSwgMC4xODc1LCAwLjE3NSwgMC4xNjI1LCAwLjE0NjI1LCAwLjEzNzUiLCBcCi0gICAgICAgICAgIjAuMjMsIDAuMjE4NzUsIDAuMiwgMC4xODc1LCAwLjE3NSwgMC4xNTg3NSwgMC4xNSIsIFwKLSAgICAgICAgICAiMC4yNTI1LCAwLjI0MTI1LCAwLjIyMjUsIDAuMjEsIDAuMTk3NSwgMC4xODEyNSwgMC4xNzI1IiwgXAotICAgICAgICAgICIwLjI2NzUsIDAuMjU2MjUsIDAuMjQzNzUsIDAuMjMxMjUsIDAuMjE4NzUsIDAuMjAyNSwgMC4xODc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTEyNSwgMC4xMDEyNSwgMC4wODI1LCAwLjA2Mzc1LCAwLjA1MTI1LCAwLjAyODc1LCAwLjAwNzUiLCBcCi0gICAgICAgICAgIjAuMTIzNzUsIDAuMTEyNSwgMC4wOTM3NSwgMC4wNzUsIDAuMDYyNSwgMC4wNCwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4xMzYyNSwgMC4xMjUsIDAuMTA2MjUsIDAuMDkzNzUsIDAuMDc1LCAwLjA1MjUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMTQ4NzUsIDAuMTM3NSwgMC4xMTg3NSwgMC4xLCAwLjA4NzUsIDAuMDY1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjE2MTI1LCAwLjE1LCAwLjEzMTI1LCAwLjExMjUsIDAuMSwgMC4wNzc1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICIwLjE3NzUsIDAuMTY2MjUsIDAuMTUzNzUsIDAuMTM1LCAwLjExNjI1LCAwLjA5Mzc1LCAwLjA3MjUiLCBcCi0gICAgICAgICAgIjAuMTk4NzUsIDAuMTgxMjUsIDAuMTY4NzUsIDAuMTUsIDAuMTM3NSwgMC4xMTUsIDAuMDkzNzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEUpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTcxMDE0OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTcwOTM5OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTcxMDE0OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNTA0LCAwLjAwNTA0LCAwLjAwNTAzOSwgMC4wMDUwMzgsIDAuMDA1MDM4LCAwLjAwNTAzNiwgMC4wMDUwMzYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDU4NTksIDAuMDA1ODM1LCAwLjAwNTgxNiwgMC4wMDU4MDUsIDAuMDA1Nzk2LCAwLjAwNTc4NywgMC4wMDU3ODMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUQiOwotICAgICAgc2RmX2NvbmQgOiAiRCA9PSAxJ2IwIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4xLCAtMC4wODg3NSwgLTAuMDc2MjUsIC0wLjA1NzUsIC0wLjA0NSwgLTAuMDIyNSwgLTAuMDAxMjUiLCBcCi0gICAgICAgICAgIi0wLjExNzUsIC0wLjEsIC0wLjA4NzUsIC0wLjA3NSwgLTAuMDU2MjUsIC0wLjAzMzc1LCAtMC4wMTI1IiwgXAotICAgICAgICAgICItMC4xMywgLTAuMTE4NzUsIC0wLjEsIC0wLjA4NzUsIC0wLjA3NSwgLTAuMDUyNSwgLTAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjE0ODc1LCAtMC4xMzEyNSwgLTAuMTE4NzUsIC0wLjEsIC0wLjA4NzUsIC0wLjA2NSwgLTAuMDQzNzUiLCBcCi0gICAgICAgICAgIi0wLjE2MTI1LCAtMC4xNSwgLTAuMTMxMjUsIC0wLjExODc1LCAtMC4xLCAtMC4wNzc1LCAtMC4wNjI1IiwgXAotICAgICAgICAgICItMC4xODM3NSwgLTAuMTcyNSwgLTAuMTUzNzUsIC0wLjE0MTI1LCAtMC4xMjI1LCAtMC4xLCAtMC4wODUiLCBcCi0gICAgICAgICAgIi0wLjE5ODc1LCAtMC4xODc1LCAtMC4xNjg3NSwgLTAuMTU2MjUsIC0wLjE0Mzc1LCAtMC4xMjEyNSwgLTAuMSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEyNSwgMC4wMjM3NSwgMC4wMzYyNSwgMC4wNDg3NSwgMC4wNjEyNSwgMC4wODM3NSwgMC4wOTg3NSIsIFwKLSAgICAgICAgICAiMC4wMDEyNSwgMC4wMTI1LCAwLjAyNSwgMC4wMzc1LCAwLjA1LCAwLjA3MjUsIDAuMDkzNzUiLCBcCi0gICAgICAgICAgIi0wLjAxMTI1LCAwLCAwLjAxMjUsIDAuMDI1LCAwLjAzNzUsIDAuMDYsIDAuMDc1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLjAxMjUsIDAuMDI1LCAwLjA0NzUsIDAuMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDMxMjUsIC0wLjAxODc1LCAtMC4wMDYyNSwgMC4wMDYyNSwgMC4wMjg3NSwgMC4wNSIsIFwKLSAgICAgICAgICAiLTAuMDU4NzUsIC0wLjA0NzUsIC0wLjAzNSwgLTAuMDIyNSwgLTAuMDEsIDAuMDEyNSwgMC4wMjc1IiwgXAotICAgICAgICAgICItMC4wOCwgLTAuMDY4NzUsIC0wLjA1NjI1LCAtMC4wNDM3NSwgLTAuMDMxMjUsIC0wLjAwODc1LCAwLjAxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiRCI7Ci0gICAgICBzZGZfY29uZCA6ICJEID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjEyNSwgLTAuMTEzNzUsIC0wLjEwMTI1LCAtMC4wODg3NSwgLTAuMDgyNSwgLTAuMDY2MjUsIC0wLjA1NzUiLCBcCi0gICAgICAgICAgIi0wLjEzNjI1LCAtMC4xMjUsIC0wLjExMjUsIC0wLjEsIC0wLjA5Mzc1LCAtMC4wNzc1LCAtMC4wNjg3NSIsIFwKLSAgICAgICAgICAiLTAuMTQ4NzUsIC0wLjEzNzUsIC0wLjEyNSwgLTAuMTEyNSwgLTAuMTA2MjUsIC0wLjA5LCAtMC4wODEyNSIsIFwKLSAgICAgICAgICAiLTAuMTYxMjUsIC0wLjE1LCAtMC4xMzc1LCAtMC4xMzEyNSwgLTAuMTE4NzUsIC0wLjEwMjUsIC0wLjA5Mzc1IiwgXAotICAgICAgICAgICItMC4xNzM3NSwgLTAuMTYyNSwgLTAuMTUsIC0wLjE0Mzc1LCAtMC4xMzEyNSwgLTAuMTE1LCAtMC4xMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMTk2MjUsIC0wLjE4NSwgLTAuMTcyNSwgLTAuMTY2MjUsIC0wLjE1Mzc1LCAtMC4xMzc1LCAtMC4xMjg3NSIsIFwKLSAgICAgICAgICAiLTAuMjE3NSwgLTAuMjA2MjUsIC0wLjE5Mzc1LCAtMC4xODEyNSwgLTAuMTc1LCAtMC4xNTg3NSwgLTAuMTQzNzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzNzUsIDAuMDQ4NzUsIDAuMDY3NSwgMC4wOCwgMC4wOTI1LCAwLjExNSwgMC4xMzYyNSIsIFwKLSAgICAgICAgICAiMC4wMjYyNSwgMC4wNDM3NSwgMC4wNTYyNSwgMC4wNjg3NSwgMC4wODEyNSwgMC4xMDM3NSwgMC4xMTg3NSIsIFwKLSAgICAgICAgICAiMC4wMTM3NSwgMC4wMjUsIDAuMDQzNzUsIDAuMDU2MjUsIDAuMDY4NzUsIDAuMDkxMjUsIDAuMTEyNSIsIFwKLSAgICAgICAgICAiMC4wMDEyNSwgMC4wMTI1LCAwLjAzMTI1LCAwLjA0Mzc1LCAwLjA1NjI1LCAwLjA3ODc1LCAwLjEiLCBcCi0gICAgICAgICAgIi0wLjAwNSwgMC4wMDYyNSwgMC4wMTg3NSwgMC4wMzEyNSwgMC4wNDM3NSwgMC4wNjYyNSwgMC4wODc1IiwgXAotICAgICAgICAgICItMC4wMjEyNSwgLTAuMDEsIDAuMDAyNSwgMC4wMTUsIDAuMDI3NSwgMC4wNSwgMC4wNzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAxODc1LCAtMC4wMDYyNSwgMC4wMDYyNSwgMC4wMTg3NSwgMC4wNDEyNSwgMC4wNTYyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUQiOwotICAgICAgc2RmX2NvbmQgOiAiRCA9PSAxJ2IwIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMzc1LCAwLjEyNjI1LCAwLjEwNzUsIDAuMDg4NzUsIDAuMDc2MjUsIDAuMDUzNzUsIDAuMDMyNSIsIFwKLSAgICAgICAgICAiMC4xNDg3NSwgMC4xMzc1LCAwLjExODc1LCAwLjEwNjI1LCAwLjA4NzUsIDAuMDY1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjE2MTI1LCAwLjE1LCAwLjEzNzUsIDAuMTE4NzUsIDAuMTA2MjUsIDAuMDc3NSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiMC4xOCwgMC4xNjg3NSwgMC4xNSwgMC4xMzEyNSwgMC4xMTg3NSwgMC4wOTYyNSwgMC4wNzUiLCBcCi0gICAgICAgICAgIjAuMTkyNSwgMC4xODEyNSwgMC4xNjI1LCAwLjE1LCAwLjEzMTI1LCAwLjEwODc1LCAwLjA4NzUiLCBcCi0gICAgICAgICAgIjAuMjE1LCAwLjIwMzc1LCAwLjE4NSwgMC4xNzI1LCAwLjE1Mzc1LCAwLjEzMTI1LCAwLjExIiwgXAotICAgICAgICAgICIwLjIzLCAwLjIxODc1LCAwLjIwNjI1LCAwLjE4NzUsIDAuMTc1LCAwLjE0NjI1LCAwLjEzMTI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTI1LCAwLjExMzc1LCAwLjEwMTI1LCAwLjA5NSwgMC4wODI1LCAwLjA3MjUsIDAuMDU3NSIsIFwKLSAgICAgICAgICAiMC4xMzYyNSwgMC4xMjUsIDAuMTE4NzUsIDAuMTA2MjUsIDAuMSwgMC4wODM3NSwgMC4wNjg3NSIsIFwKLSAgICAgICAgICAiMC4xNTUsIDAuMTQzNzUsIDAuMTMxMjUsIDAuMTE4NzUsIDAuMTEyNSwgMC4wOTYyNSwgMC4wODc1IiwgXAotICAgICAgICAgICIwLjE2NzUsIDAuMTU2MjUsIDAuMTQzNzUsIDAuMTM3NSwgMC4xMjUsIDAuMTE1LCAwLjEiLCBcCi0gICAgICAgICAgIjAuMTgsIDAuMTY4NzUsIDAuMTYyNSwgMC4xNSwgMC4xNDM3NSwgMC4xMjc1LCAwLjExMjUiLCBcCi0gICAgICAgICAgIjAuMjAyNSwgMC4xOTEyNSwgMC4xODUsIDAuMTcyNSwgMC4xNiwgMC4xNSwgMC4xMzUiLCBcCi0gICAgICAgICAgIjAuMjE3NSwgMC4yMTI1LCAwLjIsIDAuMTg3NSwgMC4xODEyNSwgMC4xNjUsIDAuMTU2MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIkQiOwotICAgICAgc2RmX2NvbmQgOiAiRCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNjI1LCAwLjE1MTI1LCAwLjEzODc1LCAwLjEyNjI1LCAwLjExMzc1LCAwLjA5NzUsIDAuMDg4NzUiLCBcCi0gICAgICAgICAgIjAuMTczNzUsIDAuMTYyNSwgMC4xNSwgMC4xMzc1LCAwLjEyNSwgMC4xMDg3NSwgMC4wOTM3NSIsIFwKLSAgICAgICAgICAiMC4xOTI1LCAwLjE3NSwgMC4xNjI1LCAwLjE1LCAwLjEzNzUsIDAuMTIxMjUsIDAuMTA2MjUiLCBcCi0gICAgICAgICAgIjAuMjA1LCAwLjE4NzUsIDAuMTc1LCAwLjE2MjUsIDAuMTUsIDAuMTMzNzUsIDAuMTI1IiwgXAotICAgICAgICAgICIwLjIxNzUsIDAuMjA2MjUsIDAuMTg3NSwgMC4xNzUsIDAuMTYyNSwgMC4xNDYyNSwgMC4xMzc1IiwgXAotICAgICAgICAgICIwLjI0LCAwLjIyMjUsIDAuMjEsIDAuMTk3NSwgMC4xODUsIDAuMTY4NzUsIDAuMTYiLCBcCi0gICAgICAgICAgIjAuMjU1LCAwLjI0Mzc1LCAwLjIzMTI1LCAwLjIxODc1LCAwLjIwNjI1LCAwLjE5LCAwLjE3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1LCAwLjAzODc1LCAwLjAyNjI1LCAwLjAwNzUsIC0wLjAwNSwgLTAuMDI3NSwgLTAuMDQ4NzUiLCBcCi0gICAgICAgICAgIjAuMDYxMjUsIDAuMDUsIDAuMDMxMjUsIDAuMDE4NzUsIDAuMDA2MjUsIC0wLjAxNjI1LCAtMC4wMzc1IiwgXAotICAgICAgICAgICIwLjA3Mzc1LCAwLjA2MjUsIDAuMDUsIDAuMDMxMjUsIDAuMDE4NzUsIC0wLjAwMzc1LCAtMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMDg2MjUsIDAuMDc1LCAwLjA2MjUsIDAuMDQzNzUsIDAuMDMxMjUsIDAuMDA4NzUsIC0wLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMDk4NzUsIDAuMDg3NSwgMC4wNzUsIDAuMDU2MjUsIDAuMDQzNzUsIDAuMDIxMjUsIDAiLCBcCi0gICAgICAgICAgIjAuMTIxMjUsIDAuMTEsIDAuMDkxMjUsIDAuMDc4NzUsIDAuMDY2MjUsIDAuMDQzNzUsIDAuMDIyNSIsIFwKLSAgICAgICAgICAiMC4xNDI1LCAwLjEyNSwgMC4xMTI1LCAwLjEsIDAuMDgxMjUsIDAuMDU4NzUsIDAuMDQzNzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFEpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4xMzMwNDI7Ci0gICAgZnVuY3Rpb24gOiAiTjMwIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBub25fdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJpc2luZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yNjE5NjQsIDAuMzA1MjMsIDAuNTUwMTU5LCAwLjc2NjIyMiwgMS4wNTQyNywgMS42MzA0NSwgMS45OTA0IiwgXAotICAgICAgICAgICIwLjI3Mzg3LCAwLjMxNzE0LCAwLjU2MjA4NCwgMC43NzgxNDMsIDEuMDY2MTcsIDEuNjQyMzYsIDIuMDAyNDciLCBcCi0gICAgICAgICAgIjAuMjg4ODg4LCAwLjMzMjE1NCwgMC41NzcwOCwgMC43OTMxNDgsIDEuMDgxMTUsIDEuNjU3MzcsIDIuMDE3MjYiLCBcCi0gICAgICAgICAgIjAuMzA0Mzg1LCAwLjM0NzY1NSwgMC41OTI1OTcsIDAuODA4NjU2LCAxLjA5NjY4LCAxLjY3Mjc2LCAyLjAzMjk5IiwgXAotICAgICAgICAgICIwLjMxOTQ2NywgMC4zNjI3MzMsIDAuNjA3NjU5LCAwLjgyMzcyOCwgMS4xMTE3NSwgMS42ODc5NSwgMi4wNDc4MSIsIFwKLSAgICAgICAgICAiMC4zNDM2NiwgMC4zODY5MzEsIDAuNjMxODc0LCAwLjg0Nzg5MiwgMS4xMzU5NiwgMS43MTIxNCwgMi4wNzIyNiIsIFwKLSAgICAgICAgICAiMC4zNjQxMDIsIDAuNDA3MzczLCAwLjY1MjMxNSwgMC44NjgzNzUsIDEuMTU2NCwgMS43MzI2MSwgMi4wOTI3MSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNjEyNDQsIDAuMjQ4MDU4LCAwLjc0NTIyOSwgMS4xODczMiwgMS43NzUsIDIuOTUwODQsIDMuNjc2NzEiLCBcCi0gICAgICAgICAgIjAuMTYxMjI0LCAwLjI0NzcyNCwgMC43NDUyOCwgMS4xODczNiwgMS43NzQ5MSwgMi45NTA3OSwgMy42NzU4NyIsIFwKLSAgICAgICAgICAiMC4xNjEyMjcsIDAuMjQ4MDUzLCAwLjc0NTk4NiwgMS4xODczMSwgMS43NzQ2MSwgMi45NTA3NywgMy42ODQ1MSIsIFwKLSAgICAgICAgICAiMC4xNjEwOTUsIDAuMjQ3NzgsIDAuNzQ1MjU1LCAxLjE4NzM1LCAxLjc3NDg3LCAyLjk1MDIxLCAzLjY3NTgzIiwgXAotICAgICAgICAgICIwLjE2MTIzNCwgMC4yNDgwNTMsIDAuNzQ2MDgsIDEuMTg3MzEsIDEuNzcxOTEsIDIuOTUwNzcsIDMuNjc4NDQiLCBcCi0gICAgICAgICAgIjAuMTYxMjE0LCAwLjI0ODExMiwgMC43NDUzLCAxLjE4NjkyLCAxLjc3NDkyLCAyLjk1MDgsIDMuNjc1MyIsIFwKLSAgICAgICAgICAiMC4xNjExMDgsIDAuMjQ3NzY3LCAwLjc0NTI1OSwgMS4xODczNSwgMS43NzQ4OSwgMi45NTA0NCwgMy42NzUyMiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMDQ2MzgsIDAuMzU0MTE2LCAwLjYzNDExNywgMC44ODA5ODcsIDEuMjEwMiwgMS44Njg3OCwgMi4yODAzMyIsIFwKLSAgICAgICAgICAiMC4zMTY1NzksIDAuMzY2MDYxLCAwLjY0NjA2NiwgMC44OTI5MjksIDEuMjIyMTQsIDEuODgwNzQsIDIuMjkyMjkiLCBcCi0gICAgICAgICAgIjAuMzMxODI2LCAwLjM4MTMwMSwgMC42NjEyMzcsIDAuOTA4MTU5LCAxLjIzNzM5LCAxLjg5NTk0LCAyLjMwNzMzIiwgXAotICAgICAgICAgICIwLjM0NzIxNywgMC4zOTY2ODksIDAuNjc2Njk2LCAwLjkyMzU1NiwgMS4yNTI3NiwgMS45MTExNywgMi4zMjI5MiIsIFwKLSAgICAgICAgICAiMC4zNjIyOTgsIDAuNDExNzc3LCAwLjY5MTc4LCAwLjkzODY1MSwgMS4yNjc4NiwgMS45MjY0NCwgMi4zMzc5OSIsIFwKLSAgICAgICAgICAiMC4zODY2MjMsIDAuNDM2MTAyLCAwLjcxNjEsIDAuOTYyOTcsIDEuMjkyMTksIDEuOTUwNzYsIDIuMzYyMzIiLCBcCi0gICAgICAgICAgIjAuNDA3Mjk1LCAwLjQ1Njc3MiwgMC43MzY3NywgMC45ODM2NDEsIDEuMzEyODYsIDEuOTcxNDMsIDIuMzgyOTkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTc4MTA5LCAwLjI3NjA0NiwgMC44Mjk1MTcsIDEuMzI0MjksIDEuOTc5NTYsIDMuMjgwMTgsIDQuMDk3MTMiLCBcCi0gICAgICAgICAgIjAuMTc4NDc3LCAwLjI3NjA0LCAwLjgyOTQ3MywgMS4zMjQzMiwgMS45Nzk3MiwgMy4yODQ5LCA0LjA5ODY5IiwgXAotICAgICAgICAgICIwLjE3ODQzMSwgMC4yNzYxMDQsIDAuODMxODcxLCAxLjMyNDQ2LCAxLjk3OTU4LCAzLjI4OTUzLCA0LjA5ODczIiwgXAotICAgICAgICAgICIwLjE3ODQzNiwgMC4yNzYwNDMsIDAuODI5NDUsIDEuMzI0MzIsIDEuOTc5NzYsIDMuMjkwNiwgNC4xMDAwOSIsIFwKLSAgICAgICAgICAiMC4xNzg0NzYsIDAuMjc2MDYxLCAwLjgyOTQ5NSwgMS4zMjQyMiwgMS45Nzk1NiwgMy4yNzk4OSwgNC4wOTcwNSIsIFwKLSAgICAgICAgICAiMC4xNzg0NzMsIDAuMjc2MDMyLCAwLjgyOTU0MSwgMS4zMjQzLCAxLjk3OTU2LCAzLjI3OTkxLCA0LjA5Njg2IiwgXAotICAgICAgICAgICIwLjE3ODQ3MiwgMC4yNzYwMjgsIDAuODI5NTQ2LCAxLjMyNDE5LCAxLjk3OTQ0LCAzLjI3OTg1LCA0LjA5NzE2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjE3MywgMC4wMDYxNzgsIDAuMDA2MTg0LCAwLjAwNjE4NiwgMC4wMDYxODYsIDAuMDA2MTg3LCAwLjAwNjE4NyIsIFwKLSAgICAgICAgICAiMC4wMDYxNiwgMC4wMDYxNjQsIDAuMDA2MTcxLCAwLjAwNjE3MiwgMC4wMDYxNzMsIDAuMDA2MTczLCAwLjAwNjE3MyIsIFwKLSAgICAgICAgICAiMC4wMDYxNDYsIDAuMDA2MTUxLCAwLjAwNjE1NywgMC4wMDYxNTksIDAuMDA2MTU5LCAwLjAwNjE2LCAwLjAwNjE2IiwgXAotICAgICAgICAgICIwLjAwNjEzNiwgMC4wMDYxNDEsIDAuMDA2MTQ3LCAwLjAwNjE0OCwgMC4wMDYxNDksIDAuMDA2MTUsIDAuMDA2MTUiLCBcCi0gICAgICAgICAgIjAuMDA2MTI2LCAwLjAwNjEzMSwgMC4wMDYxMzcsIDAuMDA2MTM4LCAwLjAwNjEzOSwgMC4wMDYxNCwgMC4wMDYxMzkiLCBcCi0gICAgICAgICAgIjAuMDA2MTE3LCAwLjAwNjEyMSwgMC4wMDYxMjgsIDAuMDA2MTI5LCAwLjAwNjEzMSwgMC4wMDYxMzEsIDAuMDA2MTMxIiwgXAotICAgICAgICAgICIwLjAwNjExMiwgMC4wMDYxMTYsIDAuMDA2MTIyLCAwLjAwNjEyNCwgMC4wMDYxMjUsIDAuMDA2MTI1LCAwLjAwNjEyNiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjI0LCAwLjAwNjI0NiwgMC4wMDYyNTIsIDAuMDA2MjUzLCAwLjAwNjI1MywgMC4wMDYyNTQsIDAuMDA2MjU0IiwgXAotICAgICAgICAgICIwLjAwNjIyOCwgMC4wMDYyMzQsIDAuMDA2MjQsIDAuMDA2MjQxLCAwLjAwNjI0MSwgMC4wMDYyNDIsIDAuMDA2MjQxIiwgXAotICAgICAgICAgICIwLjAwNjIxNiwgMC4wMDYyMjIsIDAuMDA2MjI4LCAwLjAwNjIyOSwgMC4wMDYyMywgMC4wMDYyMywgMC4wMDYyMyIsIFwKLSAgICAgICAgICAiMC4wMDYyMSwgMC4wMDYyMTUsIDAuMDA2MjIyLCAwLjAwNjIyMiwgMC4wMDYyMjMsIDAuMDA2MjIzLCAwLjAwNjIyMyIsIFwKLSAgICAgICAgICAiMC4wMDYyMDksIDAuMDA2MjE0LCAwLjAwNjIyLCAwLjAwNjIyMSwgMC4wMDYyMjIsIDAuMDA2MjIyLCAwLjAwNjIyMiIsIFwKLSAgICAgICAgICAiMC4wMDYyMSwgMC4wMDYyMTUsIDAuMDA2MjIxLCAwLjAwNjIyMiwgMC4wMDYyMjIsIDAuMDA2MjIyLCAwLjAwNjIyMyIsIFwKLSAgICAgICAgICAiMC4wMDYyMTksIDAuMDA2MjI0LCAwLjAwNjIzLCAwLjAwNjIzMiwgMC4wMDYyMzIsIDAuMDA2MjMyLCAwLjAwNjIzMiIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogRURGRlgyICoKLSAqIC0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoRURGRlgyKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMzkwMzkxOwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIGZmIChOMzAsUUJJTlQpIHsKLSAgICBuZXh0X3N0YXRlIDogIigoRSBEKSArICghRSAoISghTjMwKSkpKSI7Ci0gICAgY2xvY2tlZF9vbiA6ICJDSyI7Ci0gIH0KLSAgcGluKENLKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2NDA0NTI7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjQwMTQ4OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDY0MDQ1MjsKLSAgICBjbG9jayA6IHRydWU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyNTg4LCAwLjAwMjU3NSwgMC4wMDI1NjMsIDAuMDAyNTU3LCAwLjAwMjU1MSwgMC4wMDI1NDYsIDAuMDAyNTQ1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA0NiwgMC4wMDQ1OSwgMC4wMDQ1NzksIDAuMDA0NTc2LCAwLjAwNDU3NCwgMC4wMDQ1NzUsIDAuMDA0NTc2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRCZFIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9FX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4zMjIwOTEsIDAuMzM0MDY4LCAwLjM0OTI2MiwgMC4zNjQ2NDcsIDAuMzc5NjI2LCAwLjQwMzkyOCwgMC40MjQzNDgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjE5MTE1MSwgMC4yMDI2NTMsIDAuMjE3MDg3LCAwLjIzMjM1MywgMC4yNDY5NDYsIDAuMjY5MzM4LCAwLjI4NzQzNCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjQzNzU3OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDY0MjM2NDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2NDM3NTc7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyMTE4LCAwLjAwMjEwOSwgMC4wMDIxMDQsIDAuMDAyMTAxLCAwLjAwMjA5OCwgMC4wMDIwOTUsIDAuMDAyMDkzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzOTAxLCAwLjAwMzg5NiwgMC4wMDM4OTQsIDAuMDAzODkyLCAwLjAwMzg5MSwgMC4wMDM4ODksIDAuMDAzODg3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIkUiOwotICAgICAgc2RmX2NvbmQgOiAiRSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4xMzc1LCAtMC4xMzI1LCAtMC4xMiwgLTAuMTA3NSwgLTAuMTAxMjUsIC0wLjA5MTI1LCAtMC4wNzYyNSIsIFwKLSAgICAgICAgICAiLTAuMTQ4NzUsIC0wLjE0Mzc1LCAtMC4xMzEyNSwgLTAuMTI1LCAtMC4xMTI1LCAtMC4xMDI1LCAtMC4wODc1IiwgXAotICAgICAgICAgICItMC4xNjc1LCAtMC4xNTYyNSwgLTAuMTQzNzUsIC0wLjEzNzUsIC0wLjEyNSwgLTAuMTE1LCAtMC4xMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMTgsIC0wLjE2ODc1LCAtMC4xNjI1LCAtMC4xNSwgLTAuMTQzNzUsIC0wLjEyNzUsIC0wLjExODc1IiwgXAotICAgICAgICAgICItMC4xOTI1LCAtMC4xODEyNSwgLTAuMTc1LCAtMC4xNjI1LCAtMC4xNTYyNSwgLTAuMTQsIC0wLjEzMTI1IiwgXAotICAgICAgICAgICItMC4yMTUsIC0wLjIwMzc1LCAtMC4xOTc1LCAtMC4xODUsIC0wLjE3ODc1LCAtMC4xNjI1LCAtMC4xNTM3NSIsIFwKLSAgICAgICAgICAiLTAuMjM2MjUsIC0wLjIyNSwgLTAuMjEyNSwgLTAuMjA2MjUsIC0wLjE5Mzc1LCAtMC4xODM3NSwgLTAuMTY4NzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMjUsIC0wLjAxMzc1LCAtMC4wMDEyNSwgMC4wMTEyNSwgMC4wMjM3NSwgMC4wNCwgMC4wNTUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMjUsIC0wLjAxMjUsIDAsIDAuMDEyNSwgMC4wMjg3NSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjAzNzUsIC0wLjAyNSwgLTAuMDEyNSwgMCwgMC4wMTYyNSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDYxMjUsIC0wLjA1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAxMjUsIDAuMDAzNzUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjA3Mzc1LCAtMC4wNjI1LCAtMC4wNSwgLTAuMDM3NSwgLTAuMDI1LCAtMC4wMDg3NSwgMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wOSwgLTAuMDc4NzUsIC0wLjA2NjI1LCAtMC4wNTM3NSwgLTAuMDQxMjUsIC0wLjAyNSwgLTAuMDEiLCBcCi0gICAgICAgICAgIi0wLjEwNSwgLTAuMDkzNzUsIC0wLjA4MTI1LCAtMC4wNjg3NSwgLTAuMDYyNSwgLTAuMDQsIC0wLjAyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiRSI7Ci0gICAgICBzZGZfY29uZCA6ICJFID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIzMTI1LCAwLjIyLCAwLjIwMTI1LCAwLjE4ODc1LCAwLjE3NjI1LCAwLjE2LCAwLjE0NSIsIFwKLSAgICAgICAgICAiMC4yNDI1LCAwLjIzMTI1LCAwLjIxMjUsIDAuMiwgMC4xODc1LCAwLjE3MTI1LCAwLjE1NjI1IiwgXAotICAgICAgICAgICIwLjI1NSwgMC4yNDM3NSwgMC4yMjUsIDAuMjEyNSwgMC4yLCAwLjE4Mzc1LCAwLjE2ODc1IiwgXAotICAgICAgICAgICIwLjI2NzUsIDAuMjU2MjUsIDAuMjQzNzUsIDAuMjI1LCAwLjIxMjUsIDAuMTk2MjUsIDAuMTgxMjUiLCBcCi0gICAgICAgICAgIjAuMjgsIDAuMjY4NzUsIDAuMjU2MjUsIDAuMjM3NSwgMC4yMjUsIDAuMjA4NzUsIDAuMiIsIFwKLSAgICAgICAgICAiMC4zMDI1LCAwLjI5MTI1LCAwLjI3ODc1LCAwLjI2LCAwLjI0NzUsIDAuMjMxMjUsIDAuMjIyNSIsIFwKLSAgICAgICAgICAiMC4zMjM3NSwgMC4zMTI1LCAwLjI5Mzc1LCAwLjI4MTI1LCAwLjI2ODc1LCAwLjI1MjUsIDAuMjM3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE1NjI1LCAwLjE0NSwgMC4xMjYyNSwgMC4xMTM3NSwgMC4wOTUsIDAuMDcyNSwgMC4wNTEyNSIsIFwKLSAgICAgICAgICAiMC4xNjc1LCAwLjE1NjI1LCAwLjEzNzUsIDAuMTI1LCAwLjEwNjI1LCAwLjA4Mzc1LCAwLjA2MjUiLCBcCi0gICAgICAgICAgIjAuMTgsIDAuMTY4NzUsIDAuMTUsIDAuMTM3NSwgMC4xMTg3NSwgMC4wOTYyNSwgMC4wNzUiLCBcCi0gICAgICAgICAgIjAuMTkyNSwgMC4xODEyNSwgMC4xNjI1LCAwLjE1LCAwLjEzMTI1LCAwLjEwODc1LCAwLjA4NzUiLCBcCi0gICAgICAgICAgIjAuMjA1LCAwLjE5Mzc1LCAwLjE3NSwgMC4xNjI1LCAwLjE0Mzc1LCAwLjEyMTI1LCAwLjEiLCBcCi0gICAgICAgICAgIjAuMjI3NSwgMC4yMSwgMC4xOTc1LCAwLjE3ODc1LCAwLjE2NjI1LCAwLjEzNzUsIDAuMTE2MjUiLCBcCi0gICAgICAgICAgIjAuMjQyNSwgMC4yMzEyNSwgMC4yMTI1LCAwLjIsIDAuMTgxMjUsIDAuMTU4NzUsIDAuMTM3NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxMzk0MzE7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxMzkzNjk7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxMzk0MzE7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzNzU0LCAwLjAwMzc0NCwgMC4wMDM3MzgsIDAuMDAzNzM0LCAwLjAwMzczMywgMC4wMDM3MzEsIDAuMDAzNzMxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA0NzQ3LCAwLjAwNDczLCAwLjAwNDcxOCwgMC4wMDQ3MTEsIDAuMDA0NzA1LCAwLjAwNDY5OSwgMC4wMDQ2OTYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUQiOwotICAgICAgc2RmX2NvbmQgOiAiRCA9PSAxJ2IwIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4xMzc1LCAtMC4xMjYyNSwgLTAuMTEzNzUsIC0wLjA5NSwgLTAuMDgyNSwgLTAuMDYsIC0wLjAzODc1IiwgXAotICAgICAgICAgICItMC4xNDg3NSwgLTAuMTM3NSwgLTAuMTI1LCAtMC4xMDYyNSwgLTAuMDkzNzUsIC0wLjA3MTI1LCAtMC4wNSIsIFwKLSAgICAgICAgICAiLTAuMTY3NSwgLTAuMTU2MjUsIC0wLjEzNzUsIC0wLjEyNSwgLTAuMTA2MjUsIC0wLjA4Mzc1LCAtMC4wNjg3NSIsIFwKLSAgICAgICAgICAiLTAuMTgsIC0wLjE2ODc1LCAtMC4xNTYyNSwgLTAuMTM3NSwgLTAuMTI1LCAtMC4xMDI1LCAtMC4wODEyNSIsIFwKLSAgICAgICAgICAiLTAuMTk4NzUsIC0wLjE4MTI1LCAtMC4xNjg3NSwgLTAuMTUsIC0wLjEzNzUsIC0wLjExNSwgLTAuMDkzNzUiLCBcCi0gICAgICAgICAgIi0wLjIxNSwgLTAuMjAzNzUsIC0wLjE5MTI1LCAtMC4xNzI1LCAtMC4xNiwgLTAuMTM3NSwgLTAuMTE2MjUiLCBcCi0gICAgICAgICAgIi0wLjIzNjI1LCAtMC4yMjUsIC0wLjIwNjI1LCAtMC4xOTM3NSwgLTAuMTc1LCAtMC4xNTI1LCAtMC4xMzc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDA2MjUsIDAuMDA1LCAwLjAxNzUsIDAuMDMsIDAuMDM2MjUsIDAuMDU4NzUsIDAuMDY3NSIsIFwKLSAgICAgICAgICAiLTAuMDE3NSwgLTAuMDA2MjUsIDAuMDA2MjUsIDAuMDE4NzUsIDAuMDI1LCAwLjA0NzUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMjUsIC0wLjAxMjUsIDAsIDAuMDEyNSwgMC4wMjg3NSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjAzNzUsIC0wLjAyNSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAuMDE2MjUsIDAuMDI1IiwgXAotICAgICAgICAgICItMC4wNjEyNSwgLTAuMDU2MjUsIC0wLjA0Mzc1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIC0wLjAwMjUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDgzNzUsIC0wLjA3ODc1LCAtMC4wNjYyNSwgLTAuMDUzNzUsIC0wLjA0MTI1LCAtMC4wMTg3NSwgLTAuMDEiLCBcCi0gICAgICAgICAgIi0wLjEwNSwgLTAuMDkzNzUsIC0wLjA4MTI1LCAtMC4wNjg3NSwgLTAuMDU2MjUsIC0wLjA0LCAtMC4wMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiRCI7Ci0gICAgICBzZGZfY29uZCA6ICJEID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjE2MjUsIC0wLjE1MTI1LCAtMC4xMzg3NSwgLTAuMTI2MjUsIC0wLjEyLCAtMC4xMDM3NSwgLTAuMDk1IiwgXAotICAgICAgICAgICItMC4xNzM3NSwgLTAuMTYyNSwgLTAuMTUsIC0wLjEzNzUsIC0wLjEzMTI1LCAtMC4xMTUsIC0wLjEwNjI1IiwgXAotICAgICAgICAgICItMC4xODYyNSwgLTAuMTc1LCAtMC4xNjI1LCAtMC4xNSwgLTAuMTQzNzUsIC0wLjEyNzUsIC0wLjExODc1IiwgXAotICAgICAgICAgICItMC4xOTg3NSwgLTAuMTg3NSwgLTAuMTc1LCAtMC4xNjg3NSwgLTAuMTU2MjUsIC0wLjE0LCAtMC4xMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMjExMjUsIC0wLjIsIC0wLjE5Mzc1LCAtMC4xODEyNSwgLTAuMTY4NzUsIC0wLjE1ODc1LCAtMC4xNDM3NSIsIFwKLSAgICAgICAgICAiLTAuMjMzNzUsIC0wLjIyMjUsIC0wLjIxLCAtMC4yMDM3NSwgLTAuMTkxMjUsIC0wLjE4MTI1LCAtMC4xNjYyNSIsIFwKLSAgICAgICAgICAiLTAuMjU1LCAtMC4yNDM3NSwgLTAuMjMxMjUsIC0wLjIxODc1LCAtMC4yMTI1LCAtMC4xOTYyNSwgLTAuMTg3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE4NzUsIDAuMDMsIDAuMDQyNSwgMC4wNTUsIDAuMDY3NSwgMC4wOSwgMC4xMDUiLCBcCi0gICAgICAgICAgIjAuMDA3NSwgMC4wMTg3NSwgMC4wMzEyNSwgMC4wNDM3NSwgMC4wNTYyNSwgMC4wNzg3NSwgMC4wOTM3NSIsIFwKLSAgICAgICAgICAiLTAuMDA1LCAwLjAwNjI1LCAwLjAxODc1LCAwLjAzMTI1LCAwLjA0Mzc1LCAwLjA2NjI1LCAwLjA4MTI1IiwgXAotICAgICAgICAgICItMC4wMTc1LCAtMC4wMDYyNSwgMC4wMDYyNSwgMC4wMTg3NSwgMC4wMzEyNSwgMC4wNTM3NSwgMC4wNjg3NSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAxODc1LCAtMC4wMDYyNSwgMC4wMDYyNSwgMC4wMTg3NSwgMC4wNDEyNSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiLTAuMDQ2MjUsIC0wLjAzNSwgLTAuMDIyNSwgLTAuMDEsIDAuMDAyNSwgMC4wMjUsIDAuMDQiLCBcCi0gICAgICAgICAgIi0wLjA2MTI1LCAtMC4wNSwgLTAuMDM3NSwgLTAuMDI1LCAtMC4wMTI1LCAwLjAxLCAwLjAyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUQiOwotICAgICAgc2RmX2NvbmQgOiAiRCA9PSAxJ2IwIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xODEyNSwgMC4xNywgMC4xNTEyNSwgMC4xMzg3NSwgMC4xMiwgMC4wOTc1LCAwLjA3NjI1IiwgXAotICAgICAgICAgICIwLjE5MjUsIDAuMTgxMjUsIDAuMTYyNSwgMC4xNSwgMC4xMzEyNSwgMC4xMDg3NSwgMC4wODc1IiwgXAotICAgICAgICAgICIwLjIxMTI1LCAwLjE5Mzc1LCAwLjE4MTI1LCAwLjE2MjUsIDAuMTUsIDAuMTIxMjUsIDAuMSIsIFwKLSAgICAgICAgICAiMC4yMjM3NSwgMC4yMTI1LCAwLjE5Mzc1LCAwLjE4MTI1LCAwLjE2MjUsIDAuMTQsIDAuMTE4NzUiLCBcCi0gICAgICAgICAgIjAuMjM2MjUsIDAuMjI1LCAwLjIxMjUsIDAuMTkzNzUsIDAuMTc1LCAwLjE1MjUsIDAuMTMxMjUiLCBcCi0gICAgICAgICAgIjAuMjU4NzUsIDAuMjQ3NSwgMC4yMjg3NSwgMC4yMTYyNSwgMC4xOTc1LCAwLjE3NSwgMC4xNTM3NSIsIFwKLSAgICAgICAgICAiMC4yOCwgMC4yNjI1LCAwLjI1LCAwLjIzMTI1LCAwLjIxODc1LCAwLjE5LCAwLjE3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExODc1LCAwLjEwNzUsIDAuMDk1LCAwLjA4ODc1LCAwLjA3NjI1LCAwLjA2NjI1LCAwLjA1MTI1IiwgXAotICAgICAgICAgICIwLjEzLCAwLjExODc1LCAwLjEwNjI1LCAwLjEsIDAuMDg3NSwgMC4wNzc1LCAwLjA2MjUiLCBcCi0gICAgICAgICAgIjAuMTQyNSwgMC4xMzc1LCAwLjEyNSwgMC4xMTI1LCAwLjEwNjI1LCAwLjA5LCAwLjA4MTI1IiwgXAotICAgICAgICAgICIwLjE2MTI1LCAwLjE1LCAwLjEzNzUsIDAuMTMxMjUsIDAuMTE4NzUsIDAuMTAyNSwgMC4wOTM3NSIsIFwKLSAgICAgICAgICAiMC4xNzM3NSwgMC4xNjI1LCAwLjE1NjI1LCAwLjE0Mzc1LCAwLjEzMTI1LCAwLjEyMTI1LCAwLjEwNjI1IiwgXAotICAgICAgICAgICIwLjE5NjI1LCAwLjE4NSwgMC4xNzI1LCAwLjE2NjI1LCAwLjE1Mzc1LCAwLjE0Mzc1LCAwLjEyODc1IiwgXAotICAgICAgICAgICIwLjIxMTI1LCAwLjIwNjI1LCAwLjE5Mzc1LCAwLjE4MTI1LCAwLjE3NSwgMC4xNTg3NSwgMC4xNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiRCI7Ci0gICAgICBzZGZfY29uZCA6ICJEID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIxMjUsIDAuMjAxMjUsIDAuMTg4NzUsIDAuMTcsIDAuMTU3NSwgMC4xNDEyNSwgMC4xMzI1IiwgXAotICAgICAgICAgICIwLjIyMzc1LCAwLjIxMjUsIDAuMiwgMC4xODEyNSwgMC4xNjg3NSwgMC4xNTI1LCAwLjE0Mzc1IiwgXAotICAgICAgICAgICIwLjI0MjUsIDAuMjI1LCAwLjIxMjUsIDAuMTkzNzUsIDAuMTgxMjUsIDAuMTY1LCAwLjE1NjI1IiwgXAotICAgICAgICAgICIwLjI1NSwgMC4yMzc1LCAwLjIyNSwgMC4yMTI1LCAwLjIsIDAuMTgzNzUsIDAuMTY4NzUiLCBcCi0gICAgICAgICAgIjAuMjY3NSwgMC4yNTYyNSwgMC4yMzc1LCAwLjIyNSwgMC4yMTI1LCAwLjE5NjI1LCAwLjE4MTI1IiwgXAotICAgICAgICAgICIwLjI5LCAwLjI3ODc1LCAwLjI2LCAwLjI0NzUsIDAuMjM1LCAwLjIxODc1LCAwLjIwMzc1IiwgXAotICAgICAgICAgICIwLjMxMTI1LCAwLjI5Mzc1LCAwLjI4MTI1LCAwLjI2MjUsIDAuMjUsIDAuMjMzNzUsIDAuMjI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQzNzUsIDAuMDMyNSwgMC4wMTM3NSwgMC4wMDEyNSwgLTAuMDExMjUsIC0wLjAzMzc1LCAtMC4wNTUiLCBcCi0gICAgICAgICAgIjAuMDU1LCAwLjA0Mzc1LCAwLjAyNSwgMC4wMTI1LCAwLCAtMC4wMjI1LCAtMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4wNjc1LCAwLjA1NjI1LCAwLjA0Mzc1LCAwLjAyNSwgMC4wMTI1LCAtMC4wMSwgLTAuMDI1IiwgXAotICAgICAgICAgICIwLjA4LCAwLjA2ODc1LCAwLjA1NjI1LCAwLjA0Mzc1LCAwLjAyNSwgMC4wMDI1LCAtMC4wMTI1IiwgXAotICAgICAgICAgICIwLjA5ODc1LCAwLjA4NzUsIDAuMDY4NzUsIDAuMDU2MjUsIDAuMDM3NSwgMC4wMTUsIDAiLCBcCi0gICAgICAgICAgIjAuMTIxMjUsIDAuMTAzNzUsIDAuMDkxMjUsIDAuMDc4NzUsIDAuMDYsIDAuMDM3NSwgMC4wMjI1IiwgXAotICAgICAgICAgICIwLjEzNjI1LCAwLjEyNSwgMC4xMTI1LCAwLjA5Mzc1LCAwLjA4MTI1LCAwLjA1ODc1LCAwLjAzNzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFEpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4yNjIwMzY7Ci0gICAgZnVuY3Rpb24gOiAiTjMwIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBub25fdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJpc2luZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yNDI1OCwgMC40MjI5MTUsIDAuNTY1Nzg5LCAwLjc0NTU3MywgMC45MjM2MzIsIDEuMTAzNDIsIDEuMjgwMzgiLCBcCi0gICAgICAgICAgIjAuMjU0NDU5LCAwLjQzNDg1OSwgMC41NzczMTYsIDAuNzU3ODIxLCAwLjkzNjY0OCwgMS4xMTM0OSwgMS4yOTI3MyIsIFwKLSAgICAgICAgICAiMC4yNjk2NDcsIDAuNDQ5NTIzLCAwLjU5MzY5NiwgMC43NzI5NzUsIDAuOTUxMDkxLCAxLjEyOTUsIDEuMzA3MzUiLCBcCi0gICAgICAgICAgIjAuMjg0OTkyLCAwLjQ2NTM3NSwgMC42MDc4NDMsIDAuNzg4MzMxLCAwLjk2NzE0MSwgMS4xNDUyOCwgMS4zMjI3MiIsIFwKLSAgICAgICAgICAiMC4yOTk4MDksIDAuNDc5ODYzLCAwLjYyMjgwMiwgMC44MDMwMDksIDAuOTgwODg0LCAxLjE2MDYsIDEuMzM3NjQiLCBcCi0gICAgICAgICAgIjAuMzI0MDI5LCAwLjUwMzgsIDAuNjQ4MjM4LCAwLjgyNzM0NSwgMS4wMDU0NSwgMS4xODM4OSwgMS4zNjE3NSIsIFwKLSAgICAgICAgICAiMC4zNDM5ODEsIDAuNTI0MDIsIDAuNjY4NjUxLCAwLjg0NzE2LCAxLjAyNTA3LCAxLjIwNDY2LCAxLjM4MTgiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDkyNzU5LCAwLjQ1NDgzNiwgMC43NDY2NjgsIDEuMTA0NCwgMS40NzQ5MywgMS44NTA2MywgMi4yMjI3MSIsIFwKLSAgICAgICAgICAiMC4wOTI3NTksIDAuNDU0NzcyLCAwLjc0MTcyOCwgMS4xMTQ4OSwgMS40ODIwNSwgMS44NDM4OSwgMi4xOTg3NCIsIFwKLSAgICAgICAgICAiMC4wOTI2MDUsIDAuNDUyMTIsIDAuNzQ4MTgzLCAxLjExNjEsIDEuNDY5MzUsIDEuODU0NzMsIDIuMjIyNjEiLCBcCi0gICAgICAgICAgIjAuMDkyNTc0LCAwLjQ1NDc0MSwgMC43NDE3NTcsIDEuMTE1MzEsIDEuNDgyNzgsIDEuODI1NTIsIDIuMjA1NjIiLCBcCi0gICAgICAgICAgIjAuMDkyODI1LCAwLjQ1MjM5NiwgMC43NDE1MDksIDEuMTEzMzYsIDEuNDc0NTcsIDEuODUwNzMsIDIuMjIyNjciLCBcCi0gICAgICAgICAgIjAuMDkyNTgsIDAuNDUyNjcsIDAuNzQ3MDM0LCAxLjExNjM0LCAxLjQ2OTcyLCAxLjg1NDczLCAyLjIyMjY4IiwgXAotICAgICAgICAgICIwLjA5Mjc3MSwgMC40NTI0NjEsIDAuNzQ1NDk5LCAxLjExMzU0LCAxLjQ3NDEzLCAxLjg0OTYzLCAyLjIyMjU3Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI3NjE3MiwgMC40ODM5OTIsIDAuNjQ4OTk3LCAwLjg1NjE1NSwgMS4wNjE4MSwgMS4yNjkxNiwgMS40NzUwMSIsIFwKLSAgICAgICAgICAiMC4yODgxNDUsIDAuNDk1OTIzLCAwLjY2MDY1NSwgMC44NjczMjQsIDEuMDc0NDUsIDEuMjc5ODYsIDEuNDg4NzMiLCBcCi0gICAgICAgICAgIjAuMzAzMzIyLCAwLjUxMTEwOSwgMC42NzU4NDQsIDAuODgzMDIzLCAxLjA4ODQ5LCAxLjI5NTE5LCAxLjUwNTg0IiwgXAotICAgICAgICAgICIwLjMxODcyOSwgMC41MjYxNTgsIDAuNjkxMjc2LCAwLjg5NzM5OCwgMS4xMDQyNywgMS4zMTAzNCwgMS41MTczNCIsIFwKLSAgICAgICAgICAiMC4zMzM3MTksIDAuNTQxNTI4LCAwLjcwNjI1NSwgMC45MTMyMTIsIDEuMTE5MDIsIDEuMzI2MTEsIDEuNTMzOTkiLCBcCi0gICAgICAgICAgIjAuMzU4MDEsIDAuNTY1ODMxLCAwLjczMDY1LCAwLjkzNzIxLCAxLjE0MzY0LCAxLjM0OTg2LCAxLjU1NjgyIiwgXAotICAgICAgICAgICIwLjM3ODQxMywgMC41ODYyMDEsIDAuNzUwOTMxLCAwLjk1NzMzOSwgMS4xNjM5NiwgMS4zNjk4OSwgMS41Nzc1NSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDE4MjEsIDAuNTA2ODg2LCAwLjgzNTgyNCwgMS4yNDQ2NiwgMS42NTcyMSwgMi4wNjk1LCAyLjQ4MDgyIiwgXAotICAgICAgICAgICIwLjEwMTYyOSwgMC41MDcwNDYsIDAuODM0NDYxLCAxLjI0NTI4LCAxLjY1NzAzLCAyLjA2OTM1LCAyLjQ4MDgiLCBcCi0gICAgICAgICAgIjAuMTAxNjM4LCAwLjUwNzA0MSwgMC44MzQ0NjgsIDEuMjQ2NTYsIDEuNjU3NzIsIDIuMDcwNDIsIDIuNDc5OTIiLCBcCi0gICAgICAgICAgIjAuMTAyMDEyLCAwLjUwNjE3NiwgMC44MzQ1NjIsIDEuMjQ2MjgsIDEuNjU4NjgsIDIuMDcyMjUsIDIuNDc4ODMiLCBcCi0gICAgICAgICAgIjAuMTAxNTI1LCAwLjUwNzA2LCAwLjgzNTI5NywgMS4yNDYzMywgMS42NTcyOSwgMi4wNjk4NiwgMi40Nzc0NyIsIFwKLSAgICAgICAgICAiMC4xMDE4MDksIDAuNTA2ODg2LCAwLjgzNDExNiwgMS4yNDY2OSwgMS42NTgyNywgMi4wNzA2NiwgMi40ODE3NiIsIFwKLSAgICAgICAgICAiMC4xMDE2NDMsIDAuNTA3MDQzLCAwLjgzNDQzMSwgMS4yNDM4MiwgMS42NTU1MSwgMi4wNjUxNCwgMi40ODE2NiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQzNjgsIDAuMDA0NDA4LCAwLjAwNDQxMiwgMC4wMDQ0MTQsIDAuMDA0NDE1LCAwLjAwNDQxNiwgMC4wMDQ0MTYiLCBcCi0gICAgICAgICAgIjAuMDA0MzYsIDAuMDA0NDAxLCAwLjAwNDQwNSwgMC4wMDQ0MDcsIDAuMDA0NDA4LCAwLjAwNDQwOSwgMC4wMDQ0MDkiLCBcCi0gICAgICAgICAgIjAuMDA0MzU0LCAwLjAwNDM5NCwgMC4wMDQzOTgsIDAuMDA0NCwgMC4wMDQ0MDIsIDAuMDA0NDAyLCAwLjAwNDQwMyIsIFwKLSAgICAgICAgICAiMC4wMDQzNDksIDAuMDA0Mzg5LCAwLjAwNDM5NCwgMC4wMDQzOTYsIDAuMDA0Mzk3LCAwLjAwNDM5OCwgMC4wMDQzOTgiLCBcCi0gICAgICAgICAgIjAuMDA0MzQzLCAwLjAwNDM4NCwgMC4wMDQzODksIDAuMDA0MzksIDAuMDA0MzkxLCAwLjAwNDM5MiwgMC4wMDQzOTIiLCBcCi0gICAgICAgICAgIjAuMDA0MzQsIDAuMDA0MzgsIDAuMDA0Mzg1LCAwLjAwNDM4NywgMC4wMDQzODgsIDAuMDA0Mzg5LCAwLjAwNDM4OSIsIFwKLSAgICAgICAgICAiMC4wMDQzMzgsIDAuMDA0Mzc4LCAwLjAwNDM4MywgMC4wMDQzODQsIDAuMDA0Mzg1LCAwLjAwNDM4NiwgMC4wMDQzODYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQ3MDYsIDAuMDA0NzQyLCAwLjAwNDc0NiwgMC4wMDQ3NDgsIDAuMDA0NzQ5LCAwLjAwNDc1LCAwLjAwNDc1IiwgXAotICAgICAgICAgICIwLjAwNDY5OSwgMC4wMDQ3MzYsIDAuMDA0NzM5LCAwLjAwNDc0MiwgMC4wMDQ3NDMsIDAuMDA0NzQzLCAwLjAwNDc0NCIsIFwKLSAgICAgICAgICAiMC4wMDQ2OTMsIDAuMDA0NzMsIDAuMDA0NzMzLCAwLjAwNDczNiwgMC4wMDQ3MzcsIDAuMDA0NzM3LCAwLjAwNDczOCIsIFwKLSAgICAgICAgICAiMC4wMDQ2ODksIDAuMDA0NzI2LCAwLjAwNDczLCAwLjAwNDczMywgMC4wMDQ3MzQsIDAuMDA0NzM0LCAwLjAwNDczNCIsIFwKLSAgICAgICAgICAiMC4wMDQ2ODksIDAuMDA0NzI2LCAwLjAwNDcyOSwgMC4wMDQ3MzIsIDAuMDA0NzMzLCAwLjAwNDczMywgMC4wMDQ3MzQiLCBcCi0gICAgICAgICAgIjAuMDA0Njg5LCAwLjAwNDcyNiwgMC4wMDQ3MywgMC4wMDQ3MzIsIDAuMDA0NzM0LCAwLjAwNDczMywgMC4wMDQ3MzQiLCBcCi0gICAgICAgICAgIjAuMDA0NjkxLCAwLjAwNDcyOCwgMC4wMDQ3MzMsIDAuMDA0NzM0LCAwLjAwNDczNiwgMC4wMDQ3MzYsIDAuMDA0NzM3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihRTikgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjI2NDczMjsKLSAgICBmdW5jdGlvbiA6ICJRQklOVCI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3NlbnNlIDogbm9uX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiByaXNpbmdfZWRnZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzIyMDkxLCAwLjUwMDQzOSwgMC42NDMyMDksIDAuODIxNjI4LCAxLjAwMDI2LCAxLjE3ODczLCAxLjM1NzI1IiwgXAotICAgICAgICAgICIwLjMzNDA2OCwgMC41MTIzNjYsIDAuNjU1MTgzLCAwLjgzMzcwNCwgMS4wMTE5NiwgMS4xOTA3MSwgMS4zNjkxNyIsIFwKLSAgICAgICAgICAiMC4zNDkyNjIsIDAuNTI3NTUxLCAwLjY3MDM3LCAwLjg0ODg1MywgMS4wMjc0MSwgMS4yMDU4OSwgMS4zODQzNyIsIFwKLSAgICAgICAgICAiMC4zNjQ2NDcsIDAuNTQyOTU0LCAwLjY4NTgyNCwgMC44NjQwNzEsIDEuMDQyOCwgMS4yMjE0NCwgMS4zOTk3OSIsIFwKLSAgICAgICAgICAiMC4zNzk2MjYsIDAuNTU3OTc5LCAwLjcwMDc4MiwgMC44NzkyNjQsIDEuMDU3OTIsIDEuMjM2MjgsIDEuNDE0NzciLCBcCi0gICAgICAgICAgIjAuNDAzOTI4LCAwLjU4MjI3NSwgMC43MjUxMTUsIDAuOTAzNTk4LCAxLjA4MjEsIDEuMjYwNjIsIDEuNDM5MDkiLCBcCi0gICAgICAgICAgIjAuNDI0MzQ4LCAwLjYwMjYzNSwgMC43NDU0NSwgMC45MjQwNDQsIDEuMTAyMjEsIDEuMjgxLCAxLjQ1OTQ3Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5MDgzMywgMC40NTA1OTgsIDAuNzQxMTA5LCAxLjEwNDYxLCAxLjQ2NjQyLCAxLjgzMjA1LCAyLjE5MzMxIiwgXAotICAgICAgICAgICIwLjA5MDgwNSwgMC40NTAwODMsIDAuNzM4OTg5LCAxLjEwMDc2LCAxLjQ2ODQ0LCAxLjgzMDA3LCAyLjE5NjciLCBcCi0gICAgICAgICAgIjAuMDkwODM3LCAwLjQ1MDA3OSwgMC43Mzg5ODEsIDEuMTA0OTcsIDEuNDY1NzksIDEuODI5ODgsIDIuMTk2OTUiLCBcCi0gICAgICAgICAgIjAuMDkwODE1LCAwLjQ0OTE3NCwgMC43MzkzNTcsIDEuMTAyMzYsIDEuNDY2NDQsIDEuODI4MDEsIDIuMTkzMjUiLCBcCi0gICAgICAgICAgIjAuMDkwODA5LCAwLjQ1MDA3MywgMC43Mzg5MywgMS4xMDI5OSwgMS40NjUyNCwgMS44Mjk5MiwgMi4xOTY2NyIsIFwKLSAgICAgICAgICAiMC4wOTA4MzMsIDAuNDUwNjAzLCAwLjczOTgyOSwgMS4xMDMxMSwgMS40NjY0MiwgMS44Mjk4NCwgMi4xOTMzMyIsIFwKLSAgICAgICAgICAiMC4wOTA4MzYsIDAuNDUwMDgyLCAwLjczOTAxMywgMS4xMDI1NywgMS40NjYyMSwgMS44Mjg0NCwgMi4xOTMwOCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yOTU3NTEsIDAuNTAxOTY1LCAwLjY2NzEyMSwgMC44NzM1MTksIDEuMDc5ODgsIDEuMjg2MjksIDEuNDkyNjEiLCBcCi0gICAgICAgICAgIjAuMzA3NjQxLCAwLjUxMzg2NiwgMC42Nzg5OTcsIDAuODg1NDU1LCAxLjA5MTgzLCAxLjI5ODE1LCAxLjUwNDUyIiwgXAotICAgICAgICAgICIwLjMyMjgzMSwgMC41MjkwOCwgMC42OTQyMDcsIDAuOTAwNjE0LCAxLjEwNjk1LCAxLjMxMzM0LCAxLjUxOTY2IiwgXAotICAgICAgICAgICIwLjMzODE5MywgMC41NDQzOCwgMC43MDk1MTMsIDAuOTE1OTY5LCAxLjEyMjM0LCAxLjMyODY3LCAxLjUzNTA0IiwgXAotICAgICAgICAgICIwLjM1Mjk5LCAwLjU1OTIyNywgMC43MjQzNjEsIDAuOTMwNzkzLCAxLjEzNzEzLCAxLjM0MzU0LCAxLjU0OTg2IiwgXAotICAgICAgICAgICIwLjM3NzIyNiwgMC41ODM0NjQsIDAuNzQ4NTk3LCAwLjk1NDk5OCwgMS4xNjEzMywgMS4zNjc3MywgMS41NzQwNSIsIFwKLSAgICAgICAgICAiMC4zOTcxNDgsIDAuNjAzMzU3LCAwLjc2ODU2NiwgMC45NzQ5MjYsIDEuMTgxMjcsIDEuMzg3NjcsIDEuNTk0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5OTczOCwgMC41MDY5ODksIDAuODM1MjExLCAxLjI0NiwgMS42NTY5NCwgMi4wNjczOSwgMi40Nzg4NiIsIFwKLSAgICAgICAgICAiMC4wOTk3MjQsIDAuNTA3MDUxLCAwLjgzNTcwOSwgMS4yNDYxMSwgMS42NTY3NiwgMi4wNjc4MSwgMi40NzgzMyIsIFwKLSAgICAgICAgICAiMC4wOTk3MDIsIDAuNTA2NzE3LCAwLjgzNTUzNywgMS4yNDYwOSwgMS42NTY3OSwgMi4wNjgxMSwgMi40Nzg4NCIsIFwKLSAgICAgICAgICAiMC4wOTk3MjUsIDAuNTA3MDUsIDAuODM1NzA3LCAxLjI0NjEsIDEuNjU2NzQsIDIuMDY3MzcsIDIuNDc4NTEiLCBcCi0gICAgICAgICAgIjAuMDk5NzE1LCAwLjUwNjkyMiwgMC44MzU3MzgsIDEuMjQ1NDgsIDEuNjU2OTEsIDIuMDY3MiwgMi40Nzg2IiwgXAotICAgICAgICAgICIwLjA5OTcyNiwgMC41MDY3NjgsIDAuODM1NDg1LCAxLjI0NjA4LCAxLjY1NjgsIDIuMDY4MTIsIDIuNDc4ODUiLCBcCi0gICAgICAgICAgIjAuMDk5NzM5LCAwLjUwNjg2NSwgMC44MzQ5OTIsIDEuMjQ1NSwgMS42NTY5LCAyLjA2NjgsIDIuNDc4ODYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0NzA2LCAwLjAwNDc0MiwgMC4wMDQ3NDYsIDAuMDA0NzQ4LCAwLjAwNDc0OSwgMC4wMDQ3NSwgMC4wMDQ3NSIsIFwKLSAgICAgICAgICAiMC4wMDQ2OTksIDAuMDA0NzM2LCAwLjAwNDczOSwgMC4wMDQ3NDIsIDAuMDA0NzQzLCAwLjAwNDc0MywgMC4wMDQ3NDQiLCBcCi0gICAgICAgICAgIjAuMDA0NjkzLCAwLjAwNDczLCAwLjAwNDczMywgMC4wMDQ3MzYsIDAuMDA0NzM3LCAwLjAwNDczNywgMC4wMDQ3MzgiLCBcCi0gICAgICAgICAgIjAuMDA0Njg5LCAwLjAwNDcyNiwgMC4wMDQ3MywgMC4wMDQ3MzMsIDAuMDA0NzM0LCAwLjAwNDczNCwgMC4wMDQ3MzQiLCBcCi0gICAgICAgICAgIjAuMDA0Njg5LCAwLjAwNDcyNiwgMC4wMDQ3MjksIDAuMDA0NzMyLCAwLjAwNDczMywgMC4wMDQ3MzMsIDAuMDA0NzM0IiwgXAotICAgICAgICAgICIwLjAwNDY4OSwgMC4wMDQ3MjYsIDAuMDA0NzMsIDAuMDA0NzMyLCAwLjAwNDczNCwgMC4wMDQ3MzMsIDAuMDA0NzM0IiwgXAotICAgICAgICAgICIwLjAwNDY5MSwgMC4wMDQ3MjgsIDAuMDA0NzMzLCAwLjAwNDczNCwgMC4wMDQ3MzYsIDAuMDA0NzM2LCAwLjAwNDczNyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDM2OCwgMC4wMDQ0MDgsIDAuMDA0NDEyLCAwLjAwNDQxNCwgMC4wMDQ0MTUsIDAuMDA0NDE2LCAwLjAwNDQxNiIsIFwKLSAgICAgICAgICAiMC4wMDQzNiwgMC4wMDQ0MDEsIDAuMDA0NDA1LCAwLjAwNDQwNywgMC4wMDQ0MDgsIDAuMDA0NDA5LCAwLjAwNDQwOSIsIFwKLSAgICAgICAgICAiMC4wMDQzNTQsIDAuMDA0Mzk0LCAwLjAwNDM5OCwgMC4wMDQ0LCAwLjAwNDQwMiwgMC4wMDQ0MDIsIDAuMDA0NDAzIiwgXAotICAgICAgICAgICIwLjAwNDM0OSwgMC4wMDQzODksIDAuMDA0Mzk0LCAwLjAwNDM5NiwgMC4wMDQzOTcsIDAuMDA0Mzk4LCAwLjAwNDM5OCIsIFwKLSAgICAgICAgICAiMC4wMDQzNDMsIDAuMDA0Mzg0LCAwLjAwNDM4OSwgMC4wMDQzOSwgMC4wMDQzOTEsIDAuMDA0MzkyLCAwLjAwNDM5MiIsIFwKLSAgICAgICAgICAiMC4wMDQzNCwgMC4wMDQzOCwgMC4wMDQzODUsIDAuMDA0Mzg3LCAwLjAwNDM4OCwgMC4wMDQzODksIDAuMDA0Mzg5IiwgXAotICAgICAgICAgICIwLjAwNDMzOCwgMC4wMDQzNzgsIDAuMDA0MzgzLCAwLjAwNDM4NCwgMC4wMDQzODUsIDAuMDA0Mzg2LCAwLjAwNDM4NiIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogRURGRlhMICoKLSAqIC0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoRURGRlhMKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMjc0NzE4OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIGZmIChOMzAsUUJJTlQpIHsKLSAgICBuZXh0X3N0YXRlIDogIigoRSBEKSArICghRSAoISghTjMwKSkpKSI7Ci0gICAgY2xvY2tlZF9vbiA6ICJDSyI7Ci0gIH0KLSAgcGluKENLKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2MzQxNjk7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjMzOTAyOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDYzNDE2OTsKLSAgICBjbG9jayA6IHRydWU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyNTgxLCAwLjAwMjU2OSwgMC4wMDI1NTgsIDAuMDAyNTUsIDAuMDAyNTQ1LCAwLjAwMjUzOSwgMC4wMDI1MzgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDQ4NDMsIDAuMDA0ODM1LCAwLjAwNDgyNiwgMC4wMDQ4MjEsIDAuMDA0ODIsIDAuMDA0ODIxLCAwLjAwNDgyMiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQmRSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fRV9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMzg5NjYzLCAwLjQwMTM5MiwgMC40MTY4NzMsIDAuNDMyMjYyLCAwLjQ0NzQ0NSwgMC40NzE3MTQsIDAuNDkyNDQ0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4xOTg4OTksIDAuMjEwMzQ5LCAwLjIyNTIzOCwgMC4yNDAxMywgMC4yNTQ2OTUsIDAuMjc3MzUyLCAwLjI5NTkxMiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNTY1OTAzOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDU2Mzk1NTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA1NjU5MDM7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyMzU2LCAwLjAwMjM0NiwgMC4wMDIzNDEsIDAuMDAyMzM4LCAwLjAwMjMzNiwgMC4wMDIzMzIsIDAuMDAyMzMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDQxMTcsIDAuMDA0MTEyLCAwLjAwNDExLCAwLjAwNDEwOCwgMC4wMDQxMDcsIDAuMDA0MTA1LCAwLjAwNDEwNCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJFIjsKLSAgICAgIHNkZl9jb25kIDogIkUgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMTU2MjUsIC0wLjE0NSwgLTAuMTMyNSwgLTAuMTI2MjUsIC0wLjExMzc1LCAtMC4xMDM3NSwgLTAuMDg4NzUiLCBcCi0gICAgICAgICAgIi0wLjE2NzUsIC0wLjE1NjI1LCAtMC4xNDM3NSwgLTAuMTM3NSwgLTAuMTI1LCAtMC4xMTUsIC0wLjEiLCBcCi0gICAgICAgICAgIi0wLjE4LCAtMC4xNjg3NSwgLTAuMTYyNSwgLTAuMTUsIC0wLjE0Mzc1LCAtMC4xMjc1LCAtMC4xMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMTkyNSwgLTAuMTg3NSwgLTAuMTc1LCAtMC4xNjI1LCAtMC4xNTYyNSwgLTAuMTQsIC0wLjEzMTI1IiwgXAotICAgICAgICAgICItMC4yMTEyNSwgLTAuMiwgLTAuMTg3NSwgLTAuMTgxMjUsIC0wLjE2ODc1LCAtMC4xNTI1LCAtMC4xNDM3NSIsIFwKLSAgICAgICAgICAiLTAuMjMzNzUsIC0wLjIyMjUsIC0wLjIxLCAtMC4xOTc1LCAtMC4xOTEyNSwgLTAuMTc1LCAtMC4xNjYyNSIsIFwKLSAgICAgICAgICAiLTAuMjQ4NzUsIC0wLjIzNzUsIC0wLjIzMTI1LCAtMC4yMTg3NSwgLTAuMjEyNSwgLTAuMTk2MjUsIC0wLjE4NzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMzc1LCAtMC4wMjYyNSwgLTAuMDEzNzUsIC0wLjAwMTI1LCAwLjAxMTI1LCAwLjAzMzc1LCAwLjA0ODc1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDM3NSwgLTAuMDI1LCAtMC4wMTI1LCAwLCAwLjAyMjUsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDYxMjUsIC0wLjA1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAxMjUsIDAuMDEsIDAuMDI1IiwgXAotICAgICAgICAgICItMC4wNzM3NSwgLTAuMDYyNSwgLTAuMDUsIC0wLjAzNzUsIC0wLjAyNSwgLTAuMDAyNSwgMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wODYyNSwgLTAuMDc1LCAtMC4wNjI1LCAtMC4wNSwgLTAuMDM3NSwgLTAuMDE1LCAwIiwgXAotICAgICAgICAgICItMC4xMDg3NSwgLTAuMDkxMjUsIC0wLjA3ODc1LCAtMC4wNjYyNSwgLTAuMDUzNzUsIC0wLjAzNzUsIC0wLjAxNjI1IiwgXAotICAgICAgICAgICItMC4xMjM3NSwgLTAuMTEyNSwgLTAuMDkzNzUsIC0wLjA4MTI1LCAtMC4wNjg3NSwgLTAuMDUyNSwgLTAuMDMxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIkUiOwotICAgICAgc2RmX2NvbmQgOiAiRSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMzc1LCAwLjIyLCAwLjIwNzUsIDAuMTk1LCAwLjE4MjUsIDAuMTY2MjUsIDAuMTUxMjUiLCBcCi0gICAgICAgICAgIjAuMjQ4NzUsIDAuMjMxMjUsIDAuMjE4NzUsIDAuMjA2MjUsIDAuMTkzNzUsIDAuMTc3NSwgMC4xNjI1IiwgXAotICAgICAgICAgICIwLjI2MTI1LCAwLjI1LCAwLjIzMTI1LCAwLjIxODc1LCAwLjIwNjI1LCAwLjE5LCAwLjE3NSIsIFwKLSAgICAgICAgICAiMC4yNzM3NSwgMC4yNjI1LCAwLjI1LCAwLjIzMTI1LCAwLjIxODc1LCAwLjIwMjUsIDAuMTkzNzUiLCBcCi0gICAgICAgICAgIjAuMjg2MjUsIDAuMjc1LCAwLjI2MjUsIDAuMjUsIDAuMjM3NSwgMC4yMTUsIDAuMjA2MjUiLCBcCi0gICAgICAgICAgIjAuMzA4NzUsIDAuMjk3NSwgMC4yODUsIDAuMjY2MjUsIDAuMjUzNzUsIDAuMjM3NSwgMC4yMjg3NSIsIFwKLSAgICAgICAgICAiMC4zMywgMC4zMTg3NSwgMC4zLCAwLjI4NzUsIDAuMjc1LCAwLjI1ODc1LCAwLjI0Mzc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTYyNSwgMC4xNTEyNSwgMC4xMzI1LCAwLjExMzc1LCAwLjEwMTI1LCAwLjA3ODc1LCAwLjA1NzUiLCBcCi0gICAgICAgICAgIjAuMTczNzUsIDAuMTYyNSwgMC4xNDM3NSwgMC4xMzEyNSwgMC4xMTI1LCAwLjA5LCAwLjA2ODc1IiwgXAotICAgICAgICAgICIwLjE4NjI1LCAwLjE3NSwgMC4xNTYyNSwgMC4xNDM3NSwgMC4xMjUsIDAuMTAyNSwgMC4wODEyNSIsIFwKLSAgICAgICAgICAiMC4xOTg3NSwgMC4xODc1LCAwLjE2ODc1LCAwLjE1NjI1LCAwLjEzNzUsIDAuMTE1LCAwLjA5Mzc1IiwgXAotICAgICAgICAgICIwLjIxMTI1LCAwLjIsIDAuMTgxMjUsIDAuMTY4NzUsIDAuMTUsIDAuMTI3NSwgMC4xMDYyNSIsIFwKLSAgICAgICAgICAiMC4yMzM3NSwgMC4yMTYyNSwgMC4yMDM3NSwgMC4xODUsIDAuMTcyNSwgMC4xNDM3NSwgMC4xMjI1IiwgXAotICAgICAgICAgICIwLjI0ODc1LCAwLjIzNzUsIDAuMjE4NzUsIDAuMjA2MjUsIDAuMTg3NSwgMC4xNjUsIDAuMTQzNzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEUpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTM1MDk0OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTM0OTg3OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTM1MDk0OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzk0OSwgMC4wMDM5MzksIDAuMDAzOTM0LCAwLjAwMzkzMiwgMC4wMDM5MzIsIDAuMDAzOTMxLCAwLjAwMzkzMiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNDgzLCAwLjAwNDgxNCwgMC4wMDQ4MDIsIDAuMDA0Nzk1LCAwLjAwNDc4OSwgMC4wMDQ3ODQsIDAuMDA0NzgxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEIjsKLSAgICAgIHNkZl9jb25kIDogIkQgPT0gMSdiMCI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMTM3NSwgLTAuMTI2MjUsIC0wLjExMzc1LCAtMC4wOTUsIC0wLjA4MjUsIC0wLjA2LCAtMC4wMzg3NSIsIFwKLSAgICAgICAgICAiLTAuMTU1LCAtMC4xMzc1LCAtMC4xMjUsIC0wLjEwNjI1LCAtMC4wOTM3NSwgLTAuMDcxMjUsIC0wLjA1IiwgXAotICAgICAgICAgICItMC4xNjc1LCAtMC4xNTYyNSwgLTAuMTM3NSwgLTAuMTI1LCAtMC4xMTI1LCAtMC4wODM3NSwgLTAuMDY4NzUiLCBcCi0gICAgICAgICAgIi0wLjE4LCAtMC4xNjg3NSwgLTAuMTU2MjUsIC0wLjEzNzUsIC0wLjEyNSwgLTAuMTAyNSwgLTAuMDgxMjUiLCBcCi0gICAgICAgICAgIi0wLjE5ODc1LCAtMC4xODc1LCAtMC4xNjg3NSwgLTAuMTU2MjUsIC0wLjEzNzUsIC0wLjExNSwgLTAuMDkzNzUiLCBcCi0gICAgICAgICAgIi0wLjIyMTI1LCAtMC4yMDM3NSwgLTAuMTkxMjUsIC0wLjE3ODc1LCAtMC4xNiwgLTAuMTM3NSwgLTAuMTE2MjUiLCBcCi0gICAgICAgICAgIi0wLjIzNjI1LCAtMC4yMjUsIC0wLjIwNjI1LCAtMC4xOTM3NSwgLTAuMTc1LCAtMC4xNTI1LCAtMC4xMzc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMCwgMC4wMTEyNSwgMC4wMjM3NSwgMC4wMzYyNSwgMC4wNDg3NSwgMC4wNzEyNSwgMC4wODYyNSIsIFwKLSAgICAgICAgICAiLTAuMDExMjUsIDAsIDAuMDEyNSwgMC4wMjUsIDAuMDM3NSwgMC4wNiwgMC4wNzUiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTg3NSwgMCwgMC4wMTI1LCAwLjAyNSwgMC4wNDc1LCAwLjA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgMCwgMC4wMDYyNSwgMC4wMjg3NSwgMC4wNSIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNDM3NSwgLTAuMDMxMjUsIC0wLjAxODc1LCAtMC4wMDYyNSwgMC4wMTYyNSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDc3NSwgLTAuMDY2MjUsIC0wLjA1Mzc1LCAtMC4wNDEyNSwgLTAuMDI4NzUsIC0wLjAwNjI1LCAwLjAwODc1IiwgXAotICAgICAgICAgICItMC4wOTI1LCAtMC4wODEyNSwgLTAuMDY4NzUsIC0wLjA1NjI1LCAtMC4wNDM3NSwgLTAuMDIxMjUsIC0wLjAwNjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIkQiOwotICAgICAgc2RmX2NvbmQgOiAiRCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4xNzUsIC0wLjE2Mzc1LCAtMC4xNTEyNSwgLTAuMTM4NzUsIC0wLjEyNjI1LCAtMC4xMTYyNSwgLTAuMTAxMjUiLCBcCi0gICAgICAgICAgIi0wLjE4NjI1LCAtMC4xNzUsIC0wLjE2MjUsIC0wLjE1LCAtMC4xMzc1LCAtMC4xMjc1LCAtMC4xMTI1IiwgXAotICAgICAgICAgICItMC4xOTg3NSwgLTAuMTg3NSwgLTAuMTc1LCAtMC4xNjI1LCAtMC4xNTYyNSwgLTAuMTQsIC0wLjEyNSIsIFwKLSAgICAgICAgICAiLTAuMjExMjUsIC0wLjIsIC0wLjE4NzUsIC0wLjE3NSwgLTAuMTY4NzUsIC0wLjE1MjUsIC0wLjE0Mzc1IiwgXAotICAgICAgICAgICItMC4yMjM3NSwgLTAuMjEyNSwgLTAuMiwgLTAuMTg3NSwgLTAuMTgxMjUsIC0wLjE2NSwgLTAuMTU2MjUiLCBcCi0gICAgICAgICAgIi0wLjI0NjI1LCAtMC4yMzUsIC0wLjIyMjUsIC0wLjIxLCAtMC4yMDM3NSwgLTAuMTg3NSwgLTAuMTc4NzUiLCBcCi0gICAgICAgICAgIi0wLjI2NzUsIC0wLjI1NjI1LCAtMC4yNDM3NSwgLTAuMjMxMjUsIC0wLjIyNSwgLTAuMjA4NzUsIC0wLjE5Mzc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjUsIDAuMDQyNSwgMC4wNTUsIDAuMDY3NSwgMC4wOCwgMC4xMDI1LCAwLjEyMzc1IiwgXAotICAgICAgICAgICIwLjAxMzc1LCAwLjAyNSwgMC4wNDM3NSwgMC4wNTYyNSwgMC4wNjg3NSwgMC4wOTEyNSwgMC4xMDYyNSIsIFwKLSAgICAgICAgICAiMC4wMDEyNSwgMC4wMTI1LCAwLjAzMTI1LCAwLjA0Mzc1LCAwLjA1NjI1LCAwLjA3ODc1LCAwLjA5Mzc1IiwgXAotICAgICAgICAgICItMC4wMTEyNSwgMCwgMC4wMTg3NSwgMC4wMzEyNSwgMC4wNDM3NSwgMC4wNjYyNSwgMC4wODEyNSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxMjUsIDAuMDA2MjUsIDAuMDE4NzUsIDAuMDMxMjUsIDAuMDUzNzUsIDAuMDY4NzUiLCBcCi0gICAgICAgICAgIi0wLjA0LCAtMC4wMjg3NSwgLTAuMDE2MjUsIDAuMDAyNSwgMC4wMTUsIDAuMDMxMjUsIDAuMDUyNSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjAzNzUsIC0wLjAyNSwgLTAuMDEyNSwgMCwgMC4wMjI1LCAwLjAzNzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEIjsKLSAgICAgIHNkZl9jb25kIDogIkQgPT0gMSdiMCI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTgxMjUsIDAuMTcsIDAuMTUxMjUsIDAuMTM4NzUsIDAuMTIsIDAuMDk3NSwgMC4wNzYyNSIsIFwKLSAgICAgICAgICAiMC4xOTI1LCAwLjE4MTI1LCAwLjE2MjUsIDAuMTUsIDAuMTMxMjUsIDAuMTA4NzUsIDAuMDg3NSIsIFwKLSAgICAgICAgICAiMC4yMTEyNSwgMC4xOTM3NSwgMC4xODEyNSwgMC4xNjI1LCAwLjE1LCAwLjEyMTI1LCAwLjEwNjI1IiwgXAotICAgICAgICAgICIwLjIyMzc1LCAwLjIxMjUsIDAuMTkzNzUsIDAuMTgxMjUsIDAuMTYyNSwgMC4xNCwgMC4xMTg3NSIsIFwKLSAgICAgICAgICAiMC4yMzYyNSwgMC4yMjUsIDAuMjEyNSwgMC4xOTM3NSwgMC4xODEyNSwgMC4xNTI1LCAwLjEzMTI1IiwgXAotICAgICAgICAgICIwLjI1ODc1LCAwLjI0NzUsIDAuMjM1LCAwLjIxNjI1LCAwLjE5NzUsIDAuMTc1LCAwLjE1Mzc1IiwgXAotICAgICAgICAgICIwLjI4LCAwLjI2MjUsIDAuMjUsIDAuMjMxMjUsIDAuMjE4NzUsIDAuMTk2MjUsIDAuMTc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTUsIDAuMTM4NzUsIDAuMTI2MjUsIDAuMTEzNzUsIDAuMTA3NSwgMC4wOTEyNSwgMC4wODI1IiwgXAotICAgICAgICAgICIwLjE2MTI1LCAwLjE1LCAwLjEzNzUsIDAuMTI1LCAwLjExODc1LCAwLjEwMjUsIDAuMDkzNzUiLCBcCi0gICAgICAgICAgIjAuMTczNzUsIDAuMTYyNSwgMC4xNSwgMC4xNDM3NSwgMC4xMzEyNSwgMC4xMjEyNSwgMC4xMDYyNSIsIFwKLSAgICAgICAgICAiMC4xODYyNSwgMC4xODEyNSwgMC4xNjg3NSwgMC4xNTYyNSwgMC4xNSwgMC4xMzM3NSwgMC4xMjUiLCBcCi0gICAgICAgICAgIjAuMjA1LCAwLjE5Mzc1LCAwLjE4MTI1LCAwLjE2ODc1LCAwLjE2MjUsIDAuMTQ2MjUsIDAuMTM3NSIsIFwKLSAgICAgICAgICAiMC4yMjc1LCAwLjIxNjI1LCAwLjIwMzc1LCAwLjE5MTI1LCAwLjE4NSwgMC4xNjg3NSwgMC4xNiIsIFwKLSAgICAgICAgICAiMC4yNDI1LCAwLjIzMTI1LCAwLjIxODc1LCAwLjIwNjI1LCAwLjIsIDAuMTgzNzUsIDAuMTc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJEIjsKLSAgICAgIHNkZl9jb25kIDogIkQgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjE4NzUsIDAuMjA3NSwgMC4xODg3NSwgMC4xNzYyNSwgMC4xNjM3NSwgMC4xNDc1LCAwLjEzODc1IiwgXAotICAgICAgICAgICIwLjIzLCAwLjIxODc1LCAwLjIsIDAuMTg3NSwgMC4xNzUsIDAuMTU4NzUsIDAuMTQzNzUiLCBcCi0gICAgICAgICAgIjAuMjQyNSwgMC4yMzEyNSwgMC4yMTg3NSwgMC4yLCAwLjE4NzUsIDAuMTcxMjUsIDAuMTYyNSIsIFwKLSAgICAgICAgICAiMC4yNTUsIDAuMjQzNzUsIDAuMjMxMjUsIDAuMjE4NzUsIDAuMjA2MjUsIDAuMTgzNzUsIDAuMTc1IiwgXAotICAgICAgICAgICIwLjI3Mzc1LCAwLjI1NjI1LCAwLjI0Mzc1LCAwLjIzMTI1LCAwLjIxODc1LCAwLjIwMjUsIDAuMTg3NSIsIFwKLSAgICAgICAgICAiMC4yOTYyNSwgMC4yNzg3NSwgMC4yNjYyNSwgMC4yNTM3NSwgMC4yNDEyNSwgMC4yMjUsIDAuMjEiLCBcCi0gICAgICAgICAgIjAuMzExMjUsIDAuMywgMC4yODc1LCAwLjI2ODc1LCAwLjI1NjI1LCAwLjI0LCAwLjIzMTI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY4NzUsIDAuMDU3NSwgMC4wMzg3NSwgMC4wMjYyNSwgMC4wMDc1LCAtMC4wMDg3NSwgLTAuMDMiLCBcCi0gICAgICAgICAgIjAuMDgsIDAuMDY4NzUsIDAuMDUsIDAuMDM3NSwgMC4wMTg3NSwgLTAuMDAzNzUsIC0wLjAxODc1IiwgXAotICAgICAgICAgICIwLjA5MjUsIDAuMDgxMjUsIDAuMDYyNSwgMC4wNSwgMC4wMzc1LCAwLjAxNSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMTA1LCAwLjA5Mzc1LCAwLjA3NSwgMC4wNjI1LCAwLjA1LCAwLjAyNzUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMTE3NSwgMC4xMDYyNSwgMC4wOTM3NSwgMC4wNzUsIDAuMDYyNSwgMC4wNCwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4xNCwgMC4xMjg3NSwgMC4xMSwgMC4wOTc1LCAwLjA4NSwgMC4wNjI1LCAwLjA0MTI1IiwgXAotICAgICAgICAgICIwLjE2MTI1LCAwLjE0Mzc1LCAwLjEzMTI1LCAwLjExODc1LCAwLjEsIDAuMDc3NSwgMC4wNjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihRKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMDczNDA5OTsKLSAgICBmdW5jdGlvbiA6ICJOMzAiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5vbl91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcmlzaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjM0MTU4MiwgMC4zNjY4NTUsIDAuNTk0NTM0LCAwLjk3NDYyNCwgMS4zNTMzMSwgMi4yNDEzMywgMi43NDkwMSIsIFwKLSAgICAgICAgICAiMC4zNTMxOTgsIDAuMzc4NDYzLCAwLjYwNzMyNCwgMC45ODU0NzUsIDEuMzY1NDksIDIuMjU0NSwgMi43NjIxMyIsIFwKLSAgICAgICAgICAiMC4zNjg0NjIsIDAuMzkzNzM0LCAwLjYyMTgxMywgMS4wMDEzNSwgMS4zODIwNywgMi4yNjg2OSwgMi43NzU1NyIsIFwKLSAgICAgICAgICAiMC4zODM4ODUsIDAuNDA5MTcsIDAuNjM3MzQ4LCAxLjAxNjc0LCAxLjM5NjQ0LCAyLjI4NDUsIDIuNzg5MTMiLCBcCi0gICAgICAgICAgIjAuMzk5MDQyLCAwLjQyNDMxNiwgMC42NTIyNDMsIDEuMDMyMTUsIDEuNDEwNjUsIDIuMjk3MDcsIDIuODA2NzEiLCBcCi0gICAgICAgICAgIjAuNDIzMjA1LCAwLjQ0ODQ3OCwgMC42NzY1NTEsIDEuMDU2MDcsIDEuNDM2NDcsIDIuMzIzNDEsIDIuODMwMjYiLCBcCi0gICAgICAgICAgIjAuNDQzNDUsIDAuNDY4ODE0LCAwLjY5NzM1OCwgMS4wNzc4OCwgMS40NTYwMiwgMi4zNDQ1OSwgMi44NDY1NyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yNzYzNTUsIDAuMzI3OTQsIDAuNzk1MDk1LCAxLjU2MDY0LCAyLjM1NjI2LCA0LjE2Njk5LCA1LjEzNDg3IiwgXAotICAgICAgICAgICIwLjI3NjM5MywgMC4zMjc3NzUsIDAuNzkzMTMzLCAxLjU3NTc2LCAyLjM1NjM2LCA0LjE3MjY1LCA1LjE5MTUyIiwgXAotICAgICAgICAgICIwLjI3NjM2LCAwLjMyNzg3MywgMC43ODgzODIsIDEuNTYyMTgsIDIuMzQ3OTcsIDQuMTUyNzUsIDUuMTczNCIsIFwKLSAgICAgICAgICAiMC4yNzY1ODksIDAuMzI3Nzk5LCAwLjc4ODI3OSwgMS41NzU5NCwgMi4zMjk5LCA0LjE3MzM1LCA1LjE1MTc1IiwgXAotICAgICAgICAgICIwLjI3NjM4NiwgMC4zMjgwNzQsIDAuNzkzNzQ2LCAxLjU1ODc5LCAyLjM1NjI3LCA0LjE3NzEyLCA1LjE5NzM0IiwgXAotICAgICAgICAgICIwLjI3NjM1OCwgMC4zMjc4OTEsIDAuNzg4MzksIDEuNTYyMzMsIDIuMzIwODksIDQuMTU0MDcsIDUuMTc3MTkiLCBcCi0gICAgICAgICAgIjAuMjc2NDM1LCAwLjMyNzgsIDAuNzg4OTEsIDEuNTY3NTYsIDIuMzU2NDIsIDQuMTcyNTgsIDUuMTkwNjIiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzg5MzcxLCAwLjQxOTMxNiwgMC42ODY2MDcsIDEuMTM1NzksIDEuNTgzNDksIDIuNjI3LCAzLjIxMzgxIiwgXAotICAgICAgICAgICIwLjQwMTExMSwgMC40MzEwNTksIDAuNzAwMDUsIDEuMTQzOTcsIDEuNTkyMTQsIDIuNjMyNiwgMy4yMzQ2MiIsIFwKLSAgICAgICAgICAiMC40MTY1OTQsIDAuNDQ2NTIzLCAwLjcxNTUzNCwgMS4xNTk4MiwgMS42MTA3NCwgMi42NTQxMiwgMy4yNTAxNyIsIFwKLSAgICAgICAgICAiMC40MzE5ODUsIDAuNDYxOTA0LCAwLjczMDkyNCwgMS4xNzUyMSwgMS42MjYxNCwgMi42Njk1LCAzLjI2NTU2IiwgXAotICAgICAgICAgICIwLjQ0NzE1NiwgMC40NzcwODQsIDAuNzQ2MDg0LCAxLjE5MSwgMS42NDEyNywgMi42ODQ3MiwgMy4yODA3NyIsIFwKLSAgICAgICAgICAiMC40NzE0MjgsIDAuNTAxMzcsIDAuNzcwMzY4LCAxLjIxNDg1LCAxLjY2NTU5LCAyLjcwODk2LCAzLjMwNTA0IiwgXAotICAgICAgICAgICIwLjQ5MjE1OSwgMC41MjE4OTQsIDAuNzkxMDk3LCAxLjIzNTc4LCAxLjY4NjIzLCAyLjcyOTczLCAzLjMyNTgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzEyMTE0LCAwLjM3MDcyLCAwLjg5ODUxNywgMS43ODMzMywgMi42NjYyNCwgNC43MjA3MywgNS44OTE1IiwgXAotICAgICAgICAgICIwLjMxMjQxNCwgMC4zNzA3NDUsIDAuODk4Nzk1LCAxLjc3ODkzLCAyLjY3MTIyLCA0LjczMjgzLCA1LjkxNzU5IiwgXAotICAgICAgICAgICIwLjMxMjQyMywgMC4zNzA3NTIsIDAuODk4ODY2LCAxLjc4MzYxLCAyLjY2NTI4LCA0LjcxNTcxLCA1LjkxNzQ4IiwgXAotICAgICAgICAgICIwLjMxMjQyOSwgMC4zNzA3NTgsIDAuODk4ODM0LCAxLjc4MzY1LCAyLjY2NTQyLCA0LjcxNTgzLCA1LjkxNzUyIiwgXAotICAgICAgICAgICIwLjMxMjQ4NywgMC4zNzA3NDksIDAuODk4OTA5LCAxLjc3ODc4LCAyLjY2NTM0LCA0LjcxNjgsIDUuOTE3NDciLCBcCi0gICAgICAgICAgIjAuMzEyNDIsIDAuMzcwNzUzLCAwLjg5ODg4OSwgMS43ODIwNCwgMi42NjU0MywgNC43MTU4MSwgNS45MTc0NCIsIFwKLSAgICAgICAgICAiMC4zMTI0MjgsIDAuMzcwODg3LCAwLjg5ODkwMiwgMS43ODA2MSwgMi42NjQ3OSwgNC43MTY2NywgNS45MTc0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzA3MywgMC4wMDMwNzQsIDAuMDAzMDc2LCAwLjAwMzA3NywgMC4wMDMwNzcsIDAuMDAzMDc4LCAwLjAwMzA3OCIsIFwKLSAgICAgICAgICAiMC4wMDMwNjYsIDAuMDAzMDY3LCAwLjAwMzA2OSwgMC4wMDMwNywgMC4wMDMwNywgMC4wMDMwNywgMC4wMDMwNzEiLCBcCi0gICAgICAgICAgIjAuMDAzMDYsIDAuMDAzMDYxLCAwLjAwMzA2MywgMC4wMDMwNjQsIDAuMDAzMDY0LCAwLjAwMzA2NSwgMC4wMDMwNjUiLCBcCi0gICAgICAgICAgIjAuMDAzMDU2LCAwLjAwMzA1NiwgMC4wMDMwNTksIDAuMDAzMDYsIDAuMDAzMDYsIDAuMDAzMDYsIDAuMDAzMDYiLCBcCi0gICAgICAgICAgIjAuMDAzMDUxLCAwLjAwMzA1MiwgMC4wMDMwNTQsIDAuMDAzMDU1LCAwLjAwMzA1NSwgMC4wMDMwNTYsIDAuMDAzMDU2IiwgXAotICAgICAgICAgICIwLjAwMzA0NywgMC4wMDMwNDgsIDAuMDAzMDUsIDAuMDAzMDUxLCAwLjAwMzA1MSwgMC4wMDMwNTEsIDAuMDAzMDUyIiwgXAotICAgICAgICAgICIwLjAwMzA0NCwgMC4wMDMwNDUsIDAuMDAzMDQ3LCAwLjAwMzA0OCwgMC4wMDMwNDgsIDAuMDAzMDQ4LCAwLjAwMzA0OCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzE0MiwgMC4wMDMxNDMsIDAuMDAzMTQ1LCAwLjAwMzE0NiwgMC4wMDMxNDYsIDAuMDAzMTQ2LCAwLjAwMzE0NiIsIFwKLSAgICAgICAgICAiMC4wMDMxMzUsIDAuMDAzMTM2LCAwLjAwMzEzOSwgMC4wMDMxMzksIDAuMDAzMTQsIDAuMDAzMTQsIDAuMDAzMTQiLCBcCi0gICAgICAgICAgIjAuMDAzMTMsIDAuMDAzMTMxLCAwLjAwMzEzMywgMC4wMDMxMzQsIDAuMDAzMTM0LCAwLjAwMzEzNSwgMC4wMDMxMzUiLCBcCi0gICAgICAgICAgIjAuMDAzMTI3LCAwLjAwMzEyNywgMC4wMDMxMywgMC4wMDMxMzEsIDAuMDAzMTMxLCAwLjAwMzEzMSwgMC4wMDMxMzEiLCBcCi0gICAgICAgICAgIjAuMDAzMTI1LCAwLjAwMzEyNiwgMC4wMDMxMjgsIDAuMDAzMTI5LCAwLjAwMzEyOSwgMC4wMDMxMywgMC4wMDMxMyIsIFwKLSAgICAgICAgICAiMC4wMDMxMjUsIDAuMDAzMTI2LCAwLjAwMzEyOCwgMC4wMDMxMjksIDAuMDAzMTI5LCAwLjAwMzEyOSwgMC4wMDMxMjkiLCBcCi0gICAgICAgICAgIjAuMDAzMTI4LCAwLjAwMzEyOCwgMC4wMDMxMzEsIDAuMDAzMTMyLCAwLjAwMzEzMiwgMC4wMDMxMzIsIDAuMDAzMTMyIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihRTikgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjA3MjQ3NTU7Ci0gICAgZnVuY3Rpb24gOiAiUUJJTlQiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5vbl91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcmlzaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjM4OTY2MywgMC40MTUxMDMsIDAuNjQ0MTUyLCAxLjAyNTgsIDEuNDA3MzMsIDIuMjk3ODcsIDIuODA2NjgiLCBcCi0gICAgICAgICAgIjAuNDAxMzkyLCAwLjQyNjgzOSwgMC42NTU4MTksIDEuMDM3NDgsIDEuNDE5MDQsIDIuMzA5NDksIDIuODE4NTQiLCBcCi0gICAgICAgICAgIjAuNDE2ODczLCAwLjQ0MjMwNSwgMC42NzEzMDMsIDEuMDUyOTUsIDEuNDM0NTMsIDIuMzI1MTIsIDIuODM0IiwgXAotICAgICAgICAgICIwLjQzMjI2MiwgMC40NTc2OTIsIDAuNjg2NjkxLCAxLjA2ODM0LCAxLjQ0OTkxLCAyLjM0MDUyLCAyLjg0OTM5IiwgXAotICAgICAgICAgICIwLjQ0NzQ0NSwgMC40NzI4NjgsIDAuNzAxODYxLCAxLjA4MzQ5LCAxLjQ2NTA5LCAyLjM1NTY1LCAyLjg2NDU1IiwgXAotICAgICAgICAgICIwLjQ3MTcxNCwgMC40OTcxNTQsIDAuNzI2MTQ0LCAxLjEwNzc5LCAxLjQ4OTM3LCAyLjM3OTk2LCAyLjg4ODgzIiwgXAotICAgICAgICAgICIwLjQ5MjQ0NCwgMC41MTc5MDUsIDAuNzQ2ODY3LCAxLjEyODUsIDEuNTEwMDksIDIuNDAwNjcsIDIuOTA5NTUiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjcwMzcxLCAwLjMyMjQyOCwgMC43ODUwNTIsIDEuNTYyMDYsIDIuMzM2MDcsIDQuMTQzMDcsIDUuMTYyMjYiLCBcCi0gICAgICAgICAgIjAuMjcwODY0LCAwLjMyMjQ4MiwgMC43ODcxOTEsIDEuNTU5LCAyLjMzNTc4LCA0LjE0MTk1LCA1LjE2ODk5IiwgXAotICAgICAgICAgICIwLjI3MDg2NSwgMC4zMjIzOTIsIDAuNzg3MiwgMS41NTkwNiwgMi4zMzYsIDQuMTQzMDIsIDUuMTY4ODQiLCBcCi0gICAgICAgICAgIjAuMjcwODYzLCAwLjMyMjM3NCwgMC43ODcxOTcsIDEuNTU5MDYsIDIuMzM2LCA0LjE0MzAyLCA1LjE2OTAxIiwgXAotICAgICAgICAgICIwLjI3MDkyLCAwLjMyMjQzMiwgMC43ODcyMDcsIDEuNTU4NzIsIDIuMzM2MDMsIDQuMTQzMDIsIDUuMTY5MDMiLCBcCi0gICAgICAgICAgIjAuMjcwODYsIDAuMzIyNDQsIDAuNzg3MjA0LCAxLjU1ODk5LCAyLjMzNjAxLCA0LjE0MzAyLCA1LjE2ODg2IiwgXAotICAgICAgICAgICIwLjI3MDg2NSwgMC4zMjE1MTQsIDAuNzg3MjA2LCAxLjU1ODg2LCAyLjMzNjAyLCA0LjE0MzAyLCA1LjE2ODg3Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjM4NTk4OSwgMC40MTU5MTUsIDAuNjg1MzQ4LCAxLjEzNDI1LCAxLjU4MzEzLCAyLjYzMDY2LCAzLjIyOTMiLCBcCi0gICAgICAgICAgIjAuMzk3NTkyLCAwLjQyNzUyNywgMC42OTcwMTgsIDEuMTQ1ODMsIDEuNTk0NzgsIDIuNjQyNDYsIDMuMjQxMTIiLCBcCi0gICAgICAgICAgIjAuNDEyODcsIDAuNDQyNzk2LCAwLjcxMjIxNSwgMS4xNjExMywgMS42MTAwOCwgMi42NTc1NiwgMy4yNTYxNSIsIFwKLSAgICAgICAgICAiMC40MjgyODksIDAuNDU4MjI1LCAwLjcyNzY0OSwgMS4xNzY1NywgMS42MjU0NywgMi42NzMxMSwgMy4yNzE1IiwgXAotICAgICAgICAgICIwLjQ0MzQ0MywgMC40NzMzNywgMC43NDI4MDMsIDEuMTkxNzEsIDEuNjQwNTgsIDIuNjg4MSwgMy4yODY3OCIsIFwKLSAgICAgICAgICAiMC40Njc2MDQsIDAuNDk3NTMsIDAuNzY2OTQ4LCAxLjIxNTg2LCAxLjY2NDgsIDIuNzEyMywgMy4zMTA4OCIsIFwKLSAgICAgICAgICAiMC40ODc5NTMsIDAuNTE3ODcxLCAwLjc4NzMyNywgMS4yMzYyOCwgMS42ODUxMywgMi43MzI3OCwgMy4zMzEwOCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMDk1NzMsIDAuMzY4NjMyLCAwLjkwMDY4NiwgMS43ODY2OCwgMi42NzM5NSwgNC43NDA2MSwgNS45MjA5NyIsIFwKLSAgICAgICAgICAiMC4zMDk1NzIsIDAuMzY4NTg3LCAwLjkwMDMwMiwgMS43ODcwNywgMi42NzM3NCwgNC43NDI1OCwgNS45MjM0NyIsIFwKLSAgICAgICAgICAiMC4zMDk1MzYsIDAuMzY4NTg3LCAwLjkwMDgxOSwgMS43ODY3MSwgMi42NzIxNSwgNC43NDA4NSwgNS45MjE5MSIsIFwKLSAgICAgICAgICAiMC4zMDk1NCwgMC4zNjg1ODYsIDAuOTAwNzk1LCAxLjc4NzE1LCAyLjY3Mjg0LCA0Ljc0MjU2LCA1LjkyMTU0IiwgXAotICAgICAgICAgICIwLjMwOTUzMywgMC4zNjg1OTIsIDAuOTAwNTksIDEuNzg2NiwgMi42NzM2NiwgNC43NDMxNSwgNS45MjA0MiIsIFwKLSAgICAgICAgICAiMC4zMDk1MzQsIDAuMzY4NTg2LCAwLjkwMDc3NCwgMS43ODY2MywgMi42NzI1MiwgNC43NDA4OCwgNS45MjIwNCIsIFwKLSAgICAgICAgICAiMC4zMDk1NDgsIDAuMzY4NTgzLCAwLjkwMDA0NSwgMS43ODU2NCwgMi42NzQwNywgNC43NDI1NSwgNS45MjMwNiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDMxNDIsIDAuMDAzMTQzLCAwLjAwMzE0NSwgMC4wMDMxNDYsIDAuMDAzMTQ2LCAwLjAwMzE0NiwgMC4wMDMxNDYiLCBcCi0gICAgICAgICAgIjAuMDAzMTM1LCAwLjAwMzEzNiwgMC4wMDMxMzksIDAuMDAzMTM5LCAwLjAwMzE0LCAwLjAwMzE0LCAwLjAwMzE0IiwgXAotICAgICAgICAgICIwLjAwMzEzLCAwLjAwMzEzMSwgMC4wMDMxMzMsIDAuMDAzMTM0LCAwLjAwMzEzNCwgMC4wMDMxMzUsIDAuMDAzMTM1IiwgXAotICAgICAgICAgICIwLjAwMzEyNywgMC4wMDMxMjcsIDAuMDAzMTMsIDAuMDAzMTMxLCAwLjAwMzEzMSwgMC4wMDMxMzEsIDAuMDAzMTMxIiwgXAotICAgICAgICAgICIwLjAwMzEyNSwgMC4wMDMxMjYsIDAuMDAzMTI4LCAwLjAwMzEyOSwgMC4wMDMxMjksIDAuMDAzMTMsIDAuMDAzMTMiLCBcCi0gICAgICAgICAgIjAuMDAzMTI1LCAwLjAwMzEyNiwgMC4wMDMxMjgsIDAuMDAzMTI5LCAwLjAwMzEyOSwgMC4wMDMxMjksIDAuMDAzMTI5IiwgXAotICAgICAgICAgICIwLjAwMzEyOCwgMC4wMDMxMjgsIDAuMDAzMTMxLCAwLjAwMzEzMiwgMC4wMDMxMzIsIDAuMDAzMTMyLCAwLjAwMzEzMiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzA3MywgMC4wMDMwNzQsIDAuMDAzMDc2LCAwLjAwMzA3NywgMC4wMDMwNzcsIDAuMDAzMDc4LCAwLjAwMzA3OCIsIFwKLSAgICAgICAgICAiMC4wMDMwNjYsIDAuMDAzMDY3LCAwLjAwMzA2OSwgMC4wMDMwNywgMC4wMDMwNywgMC4wMDMwNywgMC4wMDMwNzEiLCBcCi0gICAgICAgICAgIjAuMDAzMDYsIDAuMDAzMDYxLCAwLjAwMzA2MywgMC4wMDMwNjQsIDAuMDAzMDY0LCAwLjAwMzA2NSwgMC4wMDMwNjUiLCBcCi0gICAgICAgICAgIjAuMDAzMDU2LCAwLjAwMzA1NiwgMC4wMDMwNTksIDAuMDAzMDYsIDAuMDAzMDYsIDAuMDAzMDYsIDAuMDAzMDYiLCBcCi0gICAgICAgICAgIjAuMDAzMDUxLCAwLjAwMzA1MiwgMC4wMDMwNTQsIDAuMDAzMDU1LCAwLjAwMzA1NSwgMC4wMDMwNTYsIDAuMDAzMDU2IiwgXAotICAgICAgICAgICIwLjAwMzA0NywgMC4wMDMwNDgsIDAuMDAzMDUsIDAuMDAzMDUxLCAwLjAwMzA1MSwgMC4wMDMwNTEsIDAuMDAzMDUyIiwgXAotICAgICAgICAgICIwLjAwMzA0NCwgMC4wMDMwNDUsIDAuMDAzMDQ3LCAwLjAwMzA0OCwgMC4wMDMwNDgsIDAuMDAzMDQ4LCAwLjAwMzA0OCIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogSU5WWDIwICoKLSAqIC0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoSU5WWDIwKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuNjU2ODUxOwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMTQxNjIzOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAxNDE1Mzg7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDE0MTYyMzsKLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAyLjU3MTc4OwotICAgIGZ1bmN0aW9uIDogIighQSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMjkyOSwgMC4wMzE1MDEsIDAuMDQ2MjY0LCAwLjA2NDY3NiwgMC4wODMxNjcsIDAuMTAxNTcyLCAwLjExOTk4NyIsIFwKLSAgICAgICAgICAiMC4wMjQ0ODcsIDAuMDQzMTY3LCAwLjA1Nzk5MSwgMC4wNzY0NDksIDAuMDk0ODk5LCAwLjExMzM3NCwgMC4xMzE3OTkiLCBcCi0gICAgICAgICAgIjAuMDM2MzM2LCAwLjA1Nzg2NywgMC4wNzI2MSwgMC4wOTA3MzgsIDAuMTA5MTksIDAuMTI3NjE4LCAwLjE0NjA0IiwgXAotICAgICAgICAgICIwLjA0NTk5OSwgMC4wNzI1ODEsIDAuMDg3MzUxLCAwLjEwNTc4MiwgMC4xMjQyODEsIDAuMTQyNDk1LCAwLjE2MDg5OCIsIFwKLSAgICAgICAgICAiMC4wNTQxMDgsIDAuMDg2MTA0LCAwLjEwMjM0NiwgMC4xMjA1MjMsIDAuMTM4NDE0LCAwLjE1NzQzOSwgMC4xNzU1NTMiLCBcCi0gICAgICAgICAgIjAuMDY1NzMsIDAuMTA0OTk4LCAwLjEyNDg5OSwgMC4xNDQ2NjgsIDAuMTYzMDQxLCAwLjE4MTM1MSwgMC4xOTk3NDciLCBcCi0gICAgICAgICAgIjAuMDc0MTA2LCAwLjEyMDA4NSwgMC4xNDI4MjIsIDAuMTY0ODQzLCAwLjE4MzU5NywgMC4yMDE5OSwgMC4yMjAzMzUiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE3MTAxLCAwLjA1NDU5NSwgMC4wODQ2MjQsIDAuMTIyMDE3LCAwLjE1OTU4NSwgMC4xOTcwMTQsIDAuMjM1MDEiLCBcCi0gICAgICAgICAgIjAuMDIwNzY4LCAwLjA1NTM0NSwgMC4wODQ2MTUsIDAuMTIyMDM5LCAwLjE1OTY0LCAwLjE5NywgMC4yMzQ2MzEiLCBcCi0gICAgICAgICAgIjAuMDI5ODY3LCAwLjA2MDIxMiwgMC4wODc3OTIsIDAuMTIzNzIyLCAwLjE1OTg4NCwgMC4xOTcyMTIsIDAuMjM0NjMyIiwgXAotICAgICAgICAgICIwLjAzODY3NSwgMC4wNjc0NTcsIDAuMDkzMzA1LCAwLjEyNzMwNSwgMC4xNjI5MDcsIDAuMTk5MTIxLCAwLjIzNTg0MyIsIFwKLSAgICAgICAgICAiMC4wNDczNjIsIDAuMDc2MDIyLCAwLjEwMDE4NiwgMC4xMzMwODksIDAuMTY3ODI3LCAwLjIwMjUwNiwgMC4yMzg0ODEiLCBcCi0gICAgICAgICAgIjAuMDU5MDI0LCAwLjA5MTUyLCAwLjExMzE5MywgMC4xNDM2MjMsIDAuMTc2Mjc0LCAwLjIxMDIwOSwgMC4yNDQ3NjEiLCBcCi0gICAgICAgICAgIjAuMDcwNDY1LCAwLjEwNDcxNSwgMC4xMjU5MTQsIDAuMTU0NzI2LCAwLjE4NjIwNywgMC4yMTg5MTUsIDAuMjUyMjY0Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxNDgxNywgMC4wMzYyODgsIDAuMDUzMjY2LCAwLjA3NDUxLCAwLjA5NTc5NywgMC4xMTcwMiwgMC4xMzgyOTEiLCBcCi0gICAgICAgICAgIjAuMDI2Mzg4LCAwLjA0Nzk3MiwgMC4wNjUwODYsIDAuMDg2MzM4LCAwLjEwNzYyMywgMC4xMjg4NiwgMC4xNTAxMTUiLCBcCi0gICAgICAgICAgIjAuMDM5NjM4LCAwLjA2MjY3NCwgMC4wNzk0MjYsIDAuMTAwNzIzLCAwLjEyMjAxNiwgMC4xNDMyNTEsIDAuMTY0NDg2IiwgXAotICAgICAgICAgICIwLjA1MDI3OCwgMC4wNzc3NzgsIDAuMDk0NjI2LCAwLjExNTkxMywgMC4xMzcxODgsIDAuMTU4MjQyLCAwLjE3OTQzMiIsIFwKLSAgICAgICAgICAiMC4wNTk2NTEsIDAuMDkyMTg0LCAwLjEwOTczLCAwLjEzMDc4NSwgMC4xNTIwNTksIDAuMTczMzExLCAwLjE5NDIzMyIsIFwKLSAgICAgICAgICAiMC4wNzI4MTIsIDAuMTEzMjE3LCAwLjEzMzM4LCAwLjE1NDc2NCwgMC4xNzU5MDcsIDAuMTk3MTQ1LCAwLjIxODM1OSIsIFwKLSAgICAgICAgICAiMC4wODI5OTksIDAuMTI5NTk4LCAwLjE1MzA2MiwgMC4xNzU1NDYsIDAuMTk3MTkxLCAwLjIxODI0OCwgMC4yMzk0MDciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE4ODc4LCAwLjA2MTA1NiwgMC4wOTQ3ODksIDAuMTM3Mjc0LCAwLjE3OTE3MSwgMC4yMjE3NzQsIDAuMjYzNTk5IiwgXAotICAgICAgICAgICIwLjAyMTYyNywgMC4wNjE0MDMsIDAuMDk1MDE5LCAwLjEzNzQ3LCAwLjE3OTIxLCAwLjIyMTM4OSwgMC4yNjQwMyIsIFwKLSAgICAgICAgICAiMC4wMzAwNDMsIDAuMDY1Mzg5LCAwLjA5NjkyLCAwLjEzNzc2MSwgMC4xNzkyOTUsIDAuMjIyMTY5LCAwLjI2Mzk3OCIsIFwKLSAgICAgICAgICAiMC4wMzkyMjcsIDAuMDcxNjE4LCAwLjEwMTYxNSwgMC4xNDA5ODQsIDAuMTgxNDk3LCAwLjIyMjkxNywgMC4yNjQ2ODUiLCBcCi0gICAgICAgICAgIjAuMDQ4MTg2LCAwLjA3OTUsIDAuMTA3ODIxLCAwLjE0NTQ4LCAwLjE4NDgwNywgMC4yMjUwMzMsIDAuMjY2MzU5IiwgXAotICAgICAgICAgICIwLjA2MTI0MiwgMC4wOTQyMDksIDAuMTE5ODQyLCAwLjE1NTg4NSwgMC4xOTMyMiwgMC4yMzE3MzksIDAuMjcwOTYxIiwgXAotICAgICAgICAgICIwLjA3MTk3OCwgMC4xMDc1NzcsIDAuMTMxMjU4LCAwLjE2NDA5LCAwLjIwMTQxNiwgMC4yMzkxMzksIDAuMjc3NjYxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE3MDU0LCAwLjAxNzI2NiwgMC4wMTczMDQsIDAuMDE3MzIzLCAwLjAxNzMzNSwgMC4wMTczNDQsIDAuMDE3MzQ3IiwgXAotICAgICAgICAgICIwLjAxNjQ0MSwgMC4wMTY5MjgsIDAuMDE3MDYyLCAwLjAxNzE1NiwgMC4wMTcxOTgsIDAuMDE3MjM0LCAwLjAxNzI1MSIsIFwKLSAgICAgICAgICAiMC4wMTYxNzMsIDAuMDE2NjU4LCAwLjAxNjgzOCwgMC4wMTY5NjQsIDAuMDE3MDQzLCAwLjAxNzEwMiwgMC4wMTcxMjgiLCBcCi0gICAgICAgICAgIjAuMDE2MTI4LCAwLjAxNjQ5OSwgMC4wMTY2NzEsIDAuMDE2ODI5LCAwLjAxNjkyNywgMC4wMTcwMTIsIDAuMDE3MDUyIiwgXAotICAgICAgICAgICIwLjAxNjEzNywgMC4wMTY0MSwgMC4wMTY1NzYsIDAuMDE2NzI1LCAwLjAxNjgyNSwgMC4wMTY4ODYsIDAuMDE2OTY1IiwgXAotICAgICAgICAgICIwLjAxNjE2NiwgMC4wMTYzNDEsIDAuMDE2NDg0LCAwLjAxNjYxOSwgMC4wMTY3MTEsIDAuMDE2ODA1LCAwLjAxNjg4MSIsIFwKLSAgICAgICAgICAiMC4wMTYyMjksIDAuMDE2MzEyLCAwLjAxNjM4MiwgMC4wMTY1NCwgMC4wMTY2NDEsIDAuMDE2NzIyLCAwLjAxNjc5MSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDc5NCwgMC4wMDEwODksIDAuMDAxMTQsIDAuMDAxMTcyLCAwLjAwMTE4OSwgMC4wMDExOTksIDAuMDAxMjA3IiwgXAotICAgICAgICAgICIwLjAwMDAxMSwgMC4wMDA2MiwgMC4wMDA4MDQsIDAuMDAwOTI0LCAwLjAwMDk5MywgMC4wMDEwMzgsIDAuMDAxMDY5IiwgXAotICAgICAgICAgICIwLjAwMDMyOSwgMC4wMDAyNDYsIDAuMDAwNDc1LCAwLjAwMDY1OCwgMC4wMDA3NywgMC4wMDA4NDgsIDAuMDAwOTA0IiwgXAotICAgICAgICAgICIwLjAwMDQyNCwgMC4wMDAwMzUsIDAuMDAwMjc0LCAwLjAwMDQ3NSwgMC4wMDA2MDksIDAuMDAwNzAzLCAwLjAwMDc3MyIsIFwKLSAgICAgICAgICAiMC4wMDA0MjMsIDAuMDAwMDgyLCAwLjAwMDEzMiwgMC4wMDAzMywgMC4wMDA0NzQsIDAuMDAwNTgsIDAuMDAwNjYiLCBcCi0gICAgICAgICAgIjAuMDAwMzExLCAwLjAwMDE0LCAwLjAwMDAxNiwgMC4wMDAxODksIDAuMDAwMzI5LCAwLjAwMDQzNiwgMC4wMDA1MjMiLCBcCi0gICAgICAgICAgIjAuMDAwMzI3LCAwLjAwMDIxMSwgMC4wMDAwODEsIDAuMDAwMDcyLCAwLjAwMDIxLCAwLjAwMDMxOCwgMC4wMDA0MDkiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogSU5WWDQgKgotICogLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKElOVlg0KSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMTMyODU3OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDI4NDYzOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMjg0NDc1OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMjg0NjM7Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC41MzA0NTsKLSAgICBmdW5jdGlvbiA6ICIoIUEpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyNzA3OSwgMC4xNTM1MTksIDAuMjc5OTkzLCAwLjM3MDE0NSwgMC41MTQ4MDEsIDAuNjQwOTksIDAuODIxMzE5IiwgXAotICAgICAgICAgICIwLjAzODY4MSwgMC4xNjUwODMsIDAuMjkxNTM4LCAwLjM4MTgxNiwgMC41MjYzNTksIDAuNjUyNTUzLCAwLjgzMzU1MSIsIFwKLSAgICAgICAgICAiMC4wNTM0NTIsIDAuMTc5NDk2LCAwLjMwNTksIDAuMzk0Mzk1LCAwLjUzOTAwMywgMC42NjU0MDksIDAuODQ1NTk4IiwgXAotICAgICAgICAgICIwLjA2NzY1MSwgMC4xOTQxNzEsIDAuMzIwNjksIDAuNDEwODM1LCAwLjU1NTExNiwgMC42ODExNjgsIDAuODYyMDQ2IiwgXAotICAgICAgICAgICIwLjA4MDM0NSwgMC4yMDkwMDQsIDAuMzM0OTk2LCAwLjQyNTA1NiwgMC41NjcxNzksIDAuNjkzNTUzLCAwLjg3Mzk1MiIsIFwKLSAgICAgICAgICAiMC4wOTc5MzQsIDAuMjMzMDQsIDAuMzU4NjA0LCAwLjQ0ODY0NCwgMC41OTI3MTEsIDAuNzE1OTI3LCAwLjg5NjM0IiwgXAotICAgICAgICAgICIwLjExMTUyNSwgMC4yNTM2ODksIDAuMzc5Mjg5LCAwLjQ2OTE3NiwgMC42MTMzNDcsIDAuNzM5NTY2LCAwLjkxNjE4MiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0NTkyLCAwLjMwMzAwMywgMC41NjAzOTQsIDAuNzQzODY2LCAxLjAzODA4LCAxLjI5NDc3LCAxLjY2MzEiLCBcCi0gICAgICAgICAgIjAuMDQ2OTY2LCAwLjMwMjkxLCAwLjU2MDY3LCAwLjc0Mzc5OSwgMS4wMzc0NiwgMS4yOTQ4NywgMS42NjI0NCIsIFwKLSAgICAgICAgICAiMC4wNTI2MTUsIDAuMzAyOTQzLCAwLjU2MDEyMiwgMC43NDM2MTUsIDEuMDM3NiwgMS4yOTQ2OSwgMS42NjE4IiwgXAotICAgICAgICAgICIwLjA2MDYxOSwgMC4zMDMwMDIsIDAuNTYwMTI4LCAwLjc0NDMyNywgMS4wNDAwMiwgMS4yOTI4LCAxLjY2NTMyIiwgXAotICAgICAgICAgICIwLjA2OTc2NywgMC4zMDQyNTEsIDAuNTYwMTIyLCAwLjc0NTQwNywgMS4wMzk5NywgMS4yOTQzLCAxLjY2NTc2IiwgXAotICAgICAgICAgICIwLjA4NTM0MSwgMC4zMDg5MTcsIDAuNTYwMzUxLCAwLjc0MzcyMSwgMS4wMzcyNSwgMS4yOTQ3NiwgMS42NjI0MyIsIFwKLSAgICAgICAgICAiMC4wOTg1OTMsIDAuMzE1NTY3LCAwLjU2MTk0LCAwLjc0NTY4MSwgMS4wMzgwNSwgMS4yOTQ4LCAxLjY2MTQxIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDMxMjE3LCAwLjE3NjkxMywgMC4zMjI2MDcsIDAuNDI2NjEzLCAwLjU5MzAyLCAwLjczODc4MiwgMC45NDY1NTUiLCBcCi0gICAgICAgICAgIjAuMDQyNywgMC4xODg2MTksIDAuMzM0MjY3LCAwLjQzODE5LCAwLjYwNDUxLCAwLjc1MDEwNCwgMC45NTgyODEiLCBcCi0gICAgICAgICAgIjAuMDU3NjkzLCAwLjIwMzE2OSwgMC4zNDc3MDUsIDAuNDUxNzMsIDAuNjE3OTk5LCAwLjc2MzUwOCwgMC45NzEzOTUiLCBcCi0gICAgICAgICAgIjAuMDcyNjIxLCAwLjIxNzk4OSwgMC4zNjM0NzMsIDAuNDY3Mzc5LCAwLjYzMzkwMywgMC43NzkzMjMsIDAuOTgzMTI5IiwgXAotICAgICAgICAgICIwLjA4NjU0NiwgMC4yMzI2NjYsIDAuMzc4MjA0LCAwLjQ4MjE2NSwgMC42NDg1MjcsIDAuNzk0MTA1LCAxLjAwMTk2IiwgXAotICAgICAgICAgICIwLjEwNTk5NCwgMC4yNTY3NywgMC40MDE5NDYsIDAuNTA1NjQ2LCAwLjY3MTkzNywgMC44MTQxMTUsIDEuMDIxOTgiLCBcCi0gICAgICAgICAgIjAuMTIxNDc2LCAwLjI3ODE3OSwgMC40MjI4NTYsIDAuNTI2NjIxLCAwLjY5Mjc5NCwgMC44MzgwODYsIDEuMDQyMTMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTEyOTQsIDAuMzQxNDM5LCAwLjYzMTY5MiwgMC44Mzc1NjQsIDEuMTY4NjUsIDEuNDU5NSwgMS44NzM1NCIsIFwKLSAgICAgICAgICAiMC4wNTIwNSwgMC4zNDE3MjIsIDAuNjMxNzU2LCAwLjgzNzI5LCAxLjE2ODY5LCAxLjQ1ODE1LCAxLjg3MzI3IiwgXAotICAgICAgICAgICIwLjA1NjY3NiwgMC4zNDExNTksIDAuNjMxNTk0LCAwLjgzODUwNiwgMS4xNjgyMSwgMS40NTk2MiwgMS44Nzg3NyIsIFwKLSAgICAgICAgICAiMC4wNjM3NDIsIDAuMzQxMDEyLCAwLjYzMTcwMywgMC44Mzg0NTgsIDEuMTcxMjMsIDEuNDU4MDIsIDEuODc3OCIsIFwKLSAgICAgICAgICAiMC4wNzE4ODYsIDAuMzQxODk4LCAwLjYzMTAxMywgMC44Mzg1NTUsIDEuMTY4NzMsIDEuNDYzNTEsIDEuODc4MjciLCBcCi0gICAgICAgICAgIjAuMDg3NDA3LCAwLjM0NTI1NiwgMC42MzA5NjYsIDAuODM3NjE0LCAxLjE2ODQ3LCAxLjQ1OTExLCAxLjg3MTcyIiwgXAotICAgICAgICAgICIwLjEwMTI3LCAwLjM1MDU3LCAwLjYzMzM4MywgMC44Mzg3NTIsIDEuMTY4NzUsIDEuNDU4MDUsIDEuODcyOTkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzMzNiwgMC4wMDMzNTcsIDAuMDAzMzU4LCAwLjAwMzM1OCwgMC4wMDMzNTksIDAuMDAzMzU4LCAwLjAwMzM1OSIsIFwKLSAgICAgICAgICAiMC4wMDMyNiwgMC4wMDMzNDEsIDAuMDAzMzUsIDAuMDAzMzUyLCAwLjAwMzM1NSwgMC4wMDMzNTYsIDAuMDAzMzU3IiwgXAotICAgICAgICAgICIwLjAwMzIwNiwgMC4wMDMzMjMsIDAuMDAzMzM5LCAwLjAwMzMzOCwgMC4wMDMzNDIsIDAuMDAzMzQ1LCAwLjAwMzM1MyIsIFwKLSAgICAgICAgICAiMC4wMDMxNzcsIDAuMDAzMzA3LCAwLjAwMzMzMSwgMC4wMDMzMzcsIDAuMDAzMzQ0LCAwLjAwMzM0OCwgMC4wMDMzNDciLCBcCi0gICAgICAgICAgIjAuMDAzMTYxLCAwLjAwMzI5NywgMC4wMDMzMjMsIDAuMDAzMzMyLCAwLjAwMzM0LCAwLjAwMzM0NCwgMC4wMDMzNDUiLCBcCi0gICAgICAgICAgIjAuMDAzMTQ4LCAwLjAwMzI4LCAwLjAwMzMxMSwgMC4wMDMzMjIsIDAuMDAzMzMyLCAwLjAwMzMzNywgMC4wMDMzNDIiLCBcCi0gICAgICAgICAgIjAuMDAzMTQ5LCAwLjAwMzI2NiwgMC4wMDMzMDIsIDAuMDAzMzE0LCAwLjAwMzMyNiwgMC4wMDMzMzQsIDAuMDAzMzM4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDAyNDQsIDAuMDAwMjc1LCAwLjAwMDI3NywgMC4wMDAyNzgsIDAuMDAwMjc5LCAwLjAwMDI3OSwgMC4wMDAyNzkiLCBcCi0gICAgICAgICAgIjAuMDAwMTM2LCAwLjAwMDI1MiwgMC4wMDAyNjUsIDAuMDAwMjY5LCAwLjAwMDI3MiwgMC4wMDAyNzQsIDAuMDAwMjc1IiwgXAotICAgICAgICAgICIwLjAwMDA2NSwgMC4wMDAyMjgsIDAuMDAwMjUsIDAuMDAwMjU4LCAwLjAwMDI2NCwgMC4wMDAyNjgsIDAuMDAwMjcxIiwgXAotICAgICAgICAgICIwLjAwMDAyOSwgMC4wMDAyMDcsIDAuMDAwMjM4LCAwLjAwMDI0OCwgMC4wMDAyNTcsIDAuMDAwMjYyLCAwLjAwMDI2NyIsIFwKLSAgICAgICAgICAiMC4wMDAwMDIsIDAuMDAwMTg1LCAwLjAwMDIyNCwgMC4wMDAyMzcsIDAuMDAwMjQ5LCAwLjAwMDI1NSwgMC4wMDAyNjEiLCBcCi0gICAgICAgICAgIjAuMDAwMDA2LCAwLjAwMDE2MywgMC4wMDAyMDksIDAuMDAwMjI0LCAwLjAwMDIzOSwgMC4wMDAyNDYsIDAuMDAwMjUzIiwgXAotICAgICAgICAgICIwLjAwMDAwNywgMC4wMDAxNDUsIDAuMDAwMTk1LCAwLjAwMDIxMywgMC4wMDAyMywgMC4wMDAyMzksIDAuMDAwMjQ3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IE1ERkZIUVgxICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChNREZGSFFYMSkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjMzMDIxODsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBmZiAoTjMwLFFCSU5UKSB7Ci0gICAgbmV4dF9zdGF0ZSA6ICIoKFMwIEQxKSArICghUzAgRDApKSI7Ci0gICAgY2xvY2tlZF9vbiA6ICJDSyI7Ci0gIH0KLSAgcGluKENLKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA1ODcwNDg7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNTg2NzY1OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDU4NzA0ODsKLSAgICBjbG9jayA6IHRydWU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyNzQyLCAwLjAwMjczLCAwLjAwMjcxOSwgMC4wMDI3MTMsIDAuMDAyNzA4LCAwLjAwMjcwMSwgMC4wMDI2OTgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDU5MSwgMC4wMDU5LCAwLjAwNTg5MiwgMC4wMDU4ODYsIDAuMDA1ODg1LCAwLjAwNTg5MSwgMC4wMDU4OTMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFEMCYhRDEmIVMwIjsKLSAgICAgIHNkZl9jb25kIDogIkQwX0VRXzBfQU5fRDFfRVFfMF9BTl9TMF9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMzA0NjYyLCAwLjMxNjQ4OCwgMC4zMzE3NTYsIDAuMzQ3MjI1LCAwLjM2MjU5NSwgMC4zODY5MzcsIDAuNDA3OTY5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4xOTU4NTYsIDAuMjA3MjM4LCAwLjIyMjM0MSwgMC4yMzcxODksIDAuMjUxOTM2LCAwLjI3NDg2MywgMC4yOTQwNTEiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEQwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA4NDE0NzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA4MzgyNzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA4NDE0NzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDMxODUsIDAuMDAzMTY2LCAwLjAwMzE1NiwgMC4wMDMxNDksIDAuMDAzMTQ0LCAwLjAwMzEzOCwgMC4wMDMxMzQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDQ3NzYsIDAuMDA0NzY2LCAwLjAwNDc2LCAwLjAwNDc1NiwgMC4wMDQ3NTQsIDAuMDA0NzUsIDAuMDA0NzQ4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFTMCI7Ci0gICAgICBzZGZfY29uZCA6ICJTMCA9PSAxJ2IwIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4xMDYyNSwgLTAuMDk1LCAtMC4wODI1LCAtMC4wNywgLTAuMDU3NSwgLTAuMDQ3NSwgLTAuMDMyNSIsIFwKLSAgICAgICAgICAiLTAuMTE3NSwgLTAuMTA2MjUsIC0wLjA5Mzc1LCAtMC4wODEyNSwgLTAuMDY4NzUsIC0wLjA1ODc1LCAtMC4wNDM3NSIsIFwKLSAgICAgICAgICAiLTAuMTMsIC0wLjExODc1LCAtMC4xMDYyNSwgLTAuMDkzNzUsIC0wLjA4NzUsIC0wLjA3MTI1LCAtMC4wNTYyNSIsIFwKLSAgICAgICAgICAiLTAuMTQyNSwgLTAuMTMxMjUsIC0wLjExODc1LCAtMC4xMDYyNSwgLTAuMSwgLTAuMDgzNzUsIC0wLjA2ODc1IiwgXAotICAgICAgICAgICItMC4xNTUsIC0wLjE0Mzc1LCAtMC4xMzEyNSwgLTAuMTI1LCAtMC4xMTI1LCAtMC4wOTYyNSwgLTAuMDgxMjUiLCBcCi0gICAgICAgICAgIi0wLjE3NzUsIC0wLjE2NjI1LCAtMC4xNTM3NSwgLTAuMTQxMjUsIC0wLjEzNSwgLTAuMTE4NzUsIC0wLjEwMzc1IiwgXAotICAgICAgICAgICItMC4xOTI1LCAtMC4xODc1LCAtMC4xNzUsIC0wLjE2MjUsIC0wLjE1LCAtMC4xMzM3NSwgLTAuMTI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMCwgMC4wMTEyNSwgMC4wMjM3NSwgMC4wMzYyNSwgMC4wNDg3NSwgMC4wNzEyNSwgMC4wOTI1IiwgXAotICAgICAgICAgICItMC4wMTEyNSwgMCwgMC4wMTI1LCAwLjAyNSwgMC4wMzc1LCAwLjA2LCAwLjA4MTI1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDEyNSwgMCwgMC4wMTI1LCAwLjAyNSwgMC4wNDc1LCAwLjA2ODc1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDI1LCAtMC4wMTI1LCAwLCAwLjAxMjUsIDAuMDM1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDM3NSwgLTAuMDI1LCAtMC4wMTI1LCAwLjAwNjI1LCAwLjAyODc1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICItMC4wNzEyNSwgLTAuMDYsIC0wLjA0MTI1LCAtMC4wMjg3NSwgLTAuMDE2MjUsIDAuMDA2MjUsIDAuMDI3NSIsIFwKLSAgICAgICAgICAiLTAuMDg2MjUsIC0wLjA2ODc1LCAtMC4wNTYyNSwgLTAuMDQzNzUsIC0wLjAzMTI1LCAtMC4wMDg3NSwgMC4wMTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhUzAiOwotICAgICAgc2RmX2NvbmQgOiAiUzAgPT0gMSdiMCI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTYyNSwgMC4xNTEyNSwgMC4xMzg3NSwgMC4xMjYyNSwgMC4xMTM3NSwgMC4wOTc1LCAwLjA4MjUiLCBcCi0gICAgICAgICAgIjAuMTczNzUsIDAuMTYyNSwgMC4xNSwgMC4xMzc1LCAwLjEyNSwgMC4xMDg3NSwgMC4wOTM3NSIsIFwKLSAgICAgICAgICAiMC4xOTI1LCAwLjE3NSwgMC4xNjI1LCAwLjE1LCAwLjEzNzUsIDAuMTIxMjUsIDAuMTA2MjUiLCBcCi0gICAgICAgICAgIjAuMjA1LCAwLjE5Mzc1LCAwLjE3NSwgMC4xNjI1LCAwLjE1LCAwLjEzMzc1LCAwLjExODc1IiwgXAotICAgICAgICAgICIwLjIxNzUsIDAuMjA2MjUsIDAuMTg3NSwgMC4xNzUsIDAuMTYyNSwgMC4xNDYyNSwgMC4xMzEyNSIsIFwKLSAgICAgICAgICAiMC4yNCwgMC4yMjI1LCAwLjIxLCAwLjE5NzUsIDAuMTg1LCAwLjE2ODc1LCAwLjE1Mzc1IiwgXAotICAgICAgICAgICIwLjI1NSwgMC4yNDM3NSwgMC4yMzEyNSwgMC4yMTI1LCAwLjIwNjI1LCAwLjE5LCAwLjE3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5Mzc1LCAwLjA3NjI1LCAwLjA2Mzc1LCAwLjA0NSwgMC4wMzI1LCAwLjAxLCAtMC4wMTEyNSIsIFwKLSAgICAgICAgICAiMC4xMDUsIDAuMDg3NSwgMC4wNzUsIDAuMDU2MjUsIDAuMDQzNzUsIDAuMDIxMjUsIDAiLCBcCi0gICAgICAgICAgIjAuMTE3NSwgMC4xLCAwLjA4NzUsIDAuMDY4NzUsIDAuMDU2MjUsIDAuMDMzNzUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4xMywgMC4xMTI1LCAwLjEsIDAuMDgxMjUsIDAuMDY4NzUsIDAuMDQ2MjUsIDAuMDI1IiwgXAotICAgICAgICAgICIwLjE0MjUsIDAuMTI1LCAwLjExMjUsIDAuMDkzNzUsIDAuMDgxMjUsIDAuMDU4NzUsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiMC4xNTg3NSwgMC4xNDc1LCAwLjEzNSwgMC4xMTYyNSwgMC4wOTc1LCAwLjA3NSwgMC4wNTM3NSIsIFwKLSAgICAgICAgICAiMC4xNzM3NSwgMC4xNjI1LCAwLjE1LCAwLjEzMTI1LCAwLjExODc1LCAwLjA5LCAwLjA3NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRDEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDg0OTQwNDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA4NDU0OTg7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwODQ5NDA0OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzAzNCwgMC4wMDMwMTUsIDAuMDAzMDA1LCAwLjAwMjk5OCwgMC4wMDI5OTIsIDAuMDAyOTg2LCAwLjAwMjk4MiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNDk0LCAwLjAwNDkzLCAwLjAwNDkyNSwgMC4wMDQ5MjEsIDAuMDA0OTE4LCAwLjAwNDkxNSwgMC4wMDQ5MTIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiUzAiOwotICAgICAgc2RmX2NvbmQgOiAiUzAgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMSwgLTAuMDk1LCAtMC4wODI1LCAtMC4wNywgLTAuMDU3NSwgLTAuMDQxMjUsIC0wLjAzMjUiLCBcCi0gICAgICAgICAgIi0wLjExMTI1LCAtMC4xMDYyNSwgLTAuMDkzNzUsIC0wLjA4MTI1LCAtMC4wNjg3NSwgLTAuMDUyNSwgLTAuMDQzNzUiLCBcCi0gICAgICAgICAgIi0wLjEzLCAtMC4xMTg3NSwgLTAuMTA2MjUsIC0wLjA5Mzc1LCAtMC4wODEyNSwgLTAuMDY1LCAtMC4wNTYyNSIsIFwKLSAgICAgICAgICAiLTAuMTQyNSwgLTAuMTMxMjUsIC0wLjExODc1LCAtMC4xMDYyNSwgLTAuMDkzNzUsIC0wLjA4Mzc1LCAtMC4wNjg3NSIsIFwKLSAgICAgICAgICAiLTAuMTU1LCAtMC4xNDM3NSwgLTAuMTMxMjUsIC0wLjExODc1LCAtMC4xMTI1LCAtMC4wOTYyNSwgLTAuMDgxMjUiLCBcCi0gICAgICAgICAgIi0wLjE3NzUsIC0wLjE2NjI1LCAtMC4xNTM3NSwgLTAuMTQxMjUsIC0wLjEyODc1LCAtMC4xMTg3NSwgLTAuMTAzNzUiLCBcCi0gICAgICAgICAgIi0wLjE5MjUsIC0wLjE4MTI1LCAtMC4xNjg3NSwgLTAuMTYyNSwgLTAuMTUsIC0wLjEzMzc1LCAtMC4xMTg3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAwNjI1LCAwLjAwNSwgMC4wMjM3NSwgMC4wMzYyNSwgMC4wNDg3NSwgMC4wNzEyNSwgMC4wOTI1IiwgXAotICAgICAgICAgICItMC4wMTc1LCAtMC4wMDYyNSwgMC4wMTI1LCAwLjAyNSwgMC4wMzc1LCAwLjA2LCAwLjA4MTI1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDE4NzUsIDAsIDAuMDEyNSwgMC4wMjUsIDAuMDQ3NSwgMC4wNjg3NSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDMxMjUsIC0wLjAxMjUsIDAsIDAuMDEyNSwgMC4wMzUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIi0wLjA1NSwgLTAuMDQzNzUsIC0wLjAyNSwgLTAuMDEyNSwgMCwgMC4wMjI1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICItMC4wNzEyNSwgLTAuMDYsIC0wLjA0NzUsIC0wLjAyODc1LCAtMC4wMTYyNSwgMC4wMDYyNSwgMC4wMjEyNSIsIFwKLSAgICAgICAgICAiLTAuMDg2MjUsIC0wLjA3NSwgLTAuMDU2MjUsIC0wLjA0Mzc1LCAtMC4wMzEyNSwgLTAuMDA4NzUsIDAuMDA2MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlMwIjsKLSAgICAgIHNkZl9jb25kIDogIlMwID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE2MjUsIDAuMTUxMjUsIDAuMTM4NzUsIDAuMTIsIDAuMTEzNzUsIDAuMDk3NSwgMC4wODI1IiwgXAotICAgICAgICAgICIwLjE3Mzc1LCAwLjE2MjUsIDAuMTUsIDAuMTMxMjUsIDAuMTI1LCAwLjEwODc1LCAwLjA5Mzc1IiwgXAotICAgICAgICAgICIwLjE4NjI1LCAwLjE3NSwgMC4xNjI1LCAwLjE1LCAwLjEzNzUsIDAuMTIxMjUsIDAuMTA2MjUiLCBcCi0gICAgICAgICAgIjAuMjA1LCAwLjE4NzUsIDAuMTc1LCAwLjE2MjUsIDAuMTUsIDAuMTMzNzUsIDAuMTE4NzUiLCBcCi0gICAgICAgICAgIjAuMjE3NSwgMC4yLCAwLjE4NzUsIDAuMTc1LCAwLjE2MjUsIDAuMTQ2MjUsIDAuMTMxMjUiLCBcCi0gICAgICAgICAgIjAuMjMzNzUsIDAuMjIyNSwgMC4yMSwgMC4xOTc1LCAwLjE4NSwgMC4xNjg3NSwgMC4xNTM3NSIsIFwKLSAgICAgICAgICAiMC4yNTUsIDAuMjQzNzUsIDAuMjI1LCAwLjIxMjUsIDAuMiwgMC4xODM3NSwgMC4xNzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTM3NSwgMC4wODI1LCAwLjA2Mzc1LCAwLjA1MTI1LCAwLjAzMjUsIDAuMDEsIC0wLjAxMTI1IiwgXAotICAgICAgICAgICIwLjEwNSwgMC4wOTM3NSwgMC4wNzUsIDAuMDYyNSwgMC4wNDM3NSwgMC4wMjEyNSwgMCIsIFwKLSAgICAgICAgICAiMC4xMTc1LCAwLjEwNjI1LCAwLjA4NzUsIDAuMDc1LCAwLjA1NjI1LCAwLjAzMzc1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMTMsIDAuMTE4NzUsIDAuMSwgMC4wODc1LCAwLjA2ODc1LCAwLjA0NjI1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiMC4xNDI1LCAwLjEzMTI1LCAwLjExMjUsIDAuMSwgMC4wODEyNSwgMC4wNTg3NSwgMC4wMzc1IiwgXAotICAgICAgICAgICIwLjE2NSwgMC4xNDc1LCAwLjEzNSwgMC4xMTYyNSwgMC4xMDM3NSwgMC4wNzUsIDAuMDYiLCBcCi0gICAgICAgICAgIjAuMTgsIDAuMTY4NzUsIDAuMTUsIDAuMTM3NSwgMC4xMTg3NSwgMC4wOTYyNSwgMC4wNzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFEpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4xMjg2MDg7Ci0gICAgZnVuY3Rpb24gOiAiTjMwIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBub25fdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJpc2luZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yNTkxNzEsIDAuMzAyMjc3LCAwLjU0NjU4MywgMC43NjIyODIsIDEuMDQ5ODYsIDEuNjI1MTEsIDEuOTg0NjIiLCBcCi0gICAgICAgICAgIjAuMjcxMTk1LCAwLjMxNDMyNSwgMC41NTg2NTIsIDAuNzc0MzE0LCAxLjA2MTg0LCAxLjYzNzI4LCAxLjk5Njc0IiwgXAotICAgICAgICAgICIwLjI4NjI3NiwgMC4zMjkzOTMsIDAuNTczNjkzLCAwLjc4OTM5MSwgMS4wNzY5NiwgMS42NTIyNywgMi4wMTE3MyIsIFwKLSAgICAgICAgICAiMC4zMDE4MzYsIDAuMzQ0OTQ4LCAwLjU4OTI1OCwgMC44MDQ5NTcsIDEuMDkyNTQsIDEuNjY3NzMsIDIuMDI3MjkiLCBcCi0gICAgICAgICAgIjAuMzE3MTg4LCAwLjM2MDMwMSwgMC42MDQ2MTUsIDAuODIwMzE4LCAxLjEwNzg2LCAxLjY4MzI4LCAyLjA0MjY4IiwgXAotICAgICAgICAgICIwLjM0MTQwMSwgMC4zODQ1MTksIDAuNjI4ODIyLCAwLjg0NDUxLCAxLjEzMjE0LCAxLjcwNzM1LCAyLjA2Njc5IiwgXAotICAgICAgICAgICIwLjM2MjE4LCAwLjQwNTMsIDAuNjQ5NjEsIDAuODY1MywgMS4xNTI5MiwgMS43MjgxMiwgMi4wODc2Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE2MDE1NiwgMC4yNDY4ODUsIDAuNzQyNjY5LCAxLjE4MzQ3LCAxLjc2OTE2LCAyLjk0MDU4LCAzLjY2MzU4IiwgXAotICAgICAgICAgICIwLjE1OTkxMywgMC4yNDY4OTIsIDAuNzQyMzM3LCAxLjE4MzQxLCAxLjc2ODY5LCAyLjkzMzUxLCAzLjY3MjcxIiwgXAotICAgICAgICAgICIwLjE1OTg5OSwgMC4yNDY5NTYsIDAuNzQyNjY3LCAxLjE4MzQ1LCAxLjc2OTA5LCAyLjk0MDQ0LCAzLjY2MzY4IiwgXAotICAgICAgICAgICIwLjE2MDEzMywgMC4yNDY1NDIsIDAuNzQyNjczLCAxLjE4MzQ2LCAxLjc2OTE2LCAyLjk0MDIzLCAzLjY2NzM1IiwgXAotICAgICAgICAgICIwLjE1OTkxNSwgMC4yNDY4OTYsIDAuNzQ0MDAyLCAxLjE4MzQzLCAxLjc2NjEzLCAyLjkzMzc5LCAzLjY3MjY1IiwgXAotICAgICAgICAgICIwLjE2MDE0OSwgMC4yNDY5LCAwLjc0MjU5OSwgMS4xODMzOCwgMS43NjkxNSwgMi45MzQzMywgMy42NzE1NyIsIFwKLSAgICAgICAgICAiMC4xNjAxNTksIDAuMjQ2ODkzLCAwLjc0MjY2MiwgMS4xODM0MiwgMS43NjkxMiwgMi45MzM5NywgMy42NjYyNSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMDQ2NjIsIDAuMzU0MTI2LCAwLjYzNDA2NywgMC44ODA4OTMsIDEuMjEwMDMsIDEuODY4MjgsIDIuMjc5NzIiLCBcCi0gICAgICAgICAgIjAuMzE2NDg5LCAwLjM2NTk1OCwgMC42NDU4NDcsIDAuODkyNzEsIDEuMjIxODYsIDEuODgwMjUsIDIuMjkxMzkiLCBcCi0gICAgICAgICAgIjAuMzMxNzU3LCAwLjM4MTIyMSwgMC42NjExMjUsIDAuOTA3OTc2LCAxLjIzNzE1LCAxLjg5NTUyLCAyLjMwNjc4IiwgXAotICAgICAgICAgICIwLjM0NzIyNiwgMC4zOTY2NzgsIDAuNjc2NjI2LCAwLjkyMzQ1MiwgMS4yNTI2LCAxLjkxMDg1LCAyLjMyMjI4IiwgXAotICAgICAgICAgICIwLjM2MjU5NiwgMC40MTIwNzYsIDAuNjkxOTk2LCAwLjkzODgxNywgMS4yNjgsIDEuOTI2MzksIDIuMzM3NjYiLCBcCi0gICAgICAgICAgIjAuMzg2OTQsIDAuNDM2NDA2LCAwLjcxNjM0OSwgMC45NjMxOTEsIDEuMjkyMywgMS45NTA3MSwgMi4zNjE5NyIsIFwKLSAgICAgICAgICAiMC40MDc5NzEsIDAuNDU3NDM1LCAwLjczNzM3NSwgMC45ODQxOTYsIDEuMzEzMzQsIDEuOTcxNTksIDIuMzgzMDMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTc3NDgyLCAwLjI3NTcwMywgMC44MjkyNDIsIDEuMzIzNDQsIDEuOTc4NiwgMy4yODQ0NywgNC4xMDI0MiIsIFwKLSAgICAgICAgICAiMC4xNzc1MDksIDAuMjc1MTMsIDAuODMyMzYsIDEuMzIzNTgsIDEuOTc4MzQsIDMuMjc4ODgsIDQuMTA1MzgiLCBcCi0gICAgICAgICAgIjAuMTc3NTI0LCAwLjI3NTc0NCwgMC44MzIyNjQsIDEuMzIzNiwgMS45Nzg1LCAzLjI3OTQ1LCA0LjEwNDg5IiwgXAotICAgICAgICAgICIwLjE3NzYwNiwgMC4yNzUzMywgMC44MjkyNjYsIDEuMzIzNDUsIDEuOTc4NTksIDMuMjgzOTIsIDQuMTA0MTEiLCBcCi0gICAgICAgICAgIjAuMTc3NTIzLCAwLjI3NTc0LCAwLjgyOTQ3NiwgMS4zMjM3MSwgMS45Nzg0NiwgMy4yODQzNCwgNC4xMDQxNyIsIFwKLSAgICAgICAgICAiMC4xNzc2OTUsIDAuMjc1NzQ1LCAwLjgzMDE3NywgMS4zMjM1MSwgMS45Nzg2OSwgMy4yNzk4NywgNC4xMDA5OSIsIFwKLSAgICAgICAgICAiMC4xNzc3NTIsIDAuMjc1NzA5LCAwLjgyOTIyOSwgMS4zMjM0OCwgMS45Nzg2NCwgMy4yODMyMywgNC4xMDQxNiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDU4NSwgMC4wMDU4NDYsIDAuMDA1ODI4LCAwLjAwNTgyMSwgMC4wMDU4MTYsIDAuMDA1ODEyLCAwLjAwNTgxMSIsIFwKLSAgICAgICAgICAiMC4wMDU4MzksIDAuMDA1ODM2LCAwLjAwNTgxNywgMC4wMDU4MSwgMC4wMDU4MDUsIDAuMDA1ODAxLCAwLjAwNTc5OSIsIFwKLSAgICAgICAgICAiMC4wMDU4MjYsIDAuMDA1ODIzLCAwLjAwNTgwNCwgMC4wMDU3OTcsIDAuMDA1NzkyLCAwLjAwNTc4OCwgMC4wMDU3ODYiLCBcCi0gICAgICAgICAgIjAuMDA1ODE2LCAwLjAwNTgxMywgMC4wMDU3OTUsIDAuMDA1Nzg3LCAwLjAwNTc4MywgMC4wMDU3NzksIDAuMDA1Nzc3IiwgXAotICAgICAgICAgICIwLjAwNTgxLCAwLjAwNTgwNiwgMC4wMDU3ODgsIDAuMDA1NzgxLCAwLjAwNTc3NiwgMC4wMDU3NzEsIDAuMDA1NzciLCBcCi0gICAgICAgICAgIjAuMDA1Nzk3LCAwLjAwNTc5NCwgMC4wMDU3NzYsIDAuMDA1NzY5LCAwLjAwNTc2NCwgMC4wMDU3NTksIDAuMDA1NzU3IiwgXAotICAgICAgICAgICIwLjAwNTc5MSwgMC4wMDU3ODgsIDAuMDA1NzcxLCAwLjAwNTc2MywgMC4wMDU3NTksIDAuMDA1NzU0LCAwLjAwNTc1MSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjE2MiwgMC4wMDYxNjgsIDAuMDA2MTc2LCAwLjAwNjE3OCwgMC4wMDYxNzksIDAuMDA2MTc5LCAwLjAwNjE4IiwgXAotICAgICAgICAgICIwLjAwNjE0OCwgMC4wMDYxNTQsIDAuMDA2MTYyLCAwLjAwNjE2MywgMC4wMDYxNjQsIDAuMDA2MTY1LCAwLjAwNjE2NSIsIFwKLSAgICAgICAgICAiMC4wMDYxMzcsIDAuMDA2MTQzLCAwLjAwNjE1MSwgMC4wMDYxNTMsIDAuMDA2MTU0LCAwLjAwNjE1NCwgMC4wMDYxNTUiLCBcCi0gICAgICAgICAgIjAuMDA2MTI5LCAwLjAwNjEzNCwgMC4wMDYxNDIsIDAuMDA2MTQ0LCAwLjAwNjE0NSwgMC4wMDYxNDYsIDAuMDA2MTQ3IiwgXAotICAgICAgICAgICIwLjAwNjEyNywgMC4wMDYxMzMsIDAuMDA2MTQxLCAwLjAwNjE0MiwgMC4wMDYxNDMsIDAuMDA2MTQ0LCAwLjAwNjE0NSIsIFwKLSAgICAgICAgICAiMC4wMDYxMjUsIDAuMDA2MTMxLCAwLjAwNjEzOSwgMC4wMDYxNCwgMC4wMDYxNDEsIDAuMDA2MTQyLCAwLjAwNjE0MyIsIFwKLSAgICAgICAgICAiMC4wMDYxMzIsIDAuMDA2MTM4LCAwLjAwNjE0NSwgMC4wMDYxNDcsIDAuMDA2MTQ4LCAwLjAwNjE0OSwgMC4wMDYxNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUzApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTUzMjYyOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTUzMTI2OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTUzMjYyOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNDU0OSwgMC4wMDQ1NDcsIDAuMDA0NTQxLCAwLjAwNDUzNSwgMC4wMDQ1MywgMC4wMDQ1MjUsIDAuMDA0NTIyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA1NjM5LCAwLjAwNTYxNCwgMC4wMDU1OTUsIDAuMDA1NTgzLCAwLjAwNTU3NCwgMC4wMDU1NjUsIDAuMDA1NTYxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEMCZEMSI7Ci0gICAgICBzZGZfY29uZCA6ICJEMF9FUV8wX0FOX0QxX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDg3NSwgLTAuMDgyNSwgLTAuMDcsIC0wLjA1NzUsIC0wLjA0NSwgLTAuMDI4NzUsIC0wLjAyIiwgXAotICAgICAgICAgICItMC4wOTg3NSwgLTAuMDg3NSwgLTAuMDc1LCAtMC4wNjg3NSwgLTAuMDU2MjUsIC0wLjA0LCAtMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjExMTI1LCAtMC4xMDYyNSwgLTAuMDkzNzUsIC0wLjA4MTI1LCAtMC4wNjg3NSwgLTAuMDUyNSwgLTAuMDQzNzUiLCBcCi0gICAgICAgICAgIi0wLjEyMzc1LCAtMC4xMTg3NSwgLTAuMTA2MjUsIC0wLjA5Mzc1LCAtMC4wODEyNSwgLTAuMDY1LCAtMC4wNTYyNSIsIFwKLSAgICAgICAgICAiLTAuMTQyNSwgLTAuMTMxMjUsIC0wLjExODc1LCAtMC4xMDYyNSwgLTAuMDkzNzUsIC0wLjA3NzUsIC0wLjA2ODc1IiwgXAotICAgICAgICAgICItMC4xNTg3NSwgLTAuMTUzNzUsIC0wLjE0MTI1LCAtMC4xMjg3NSwgLTAuMTE2MjUsIC0wLjEsIC0wLjA5MTI1IiwgXAotICAgICAgICAgICItMC4xOCwgLTAuMTY4NzUsIC0wLjE1NjI1LCAtMC4xNDM3NSwgLTAuMTM3NSwgLTAuMTIxMjUsIC0wLjEwNjI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDYyNSwgMC4wMTc1LCAwLjAzNjI1LCAwLjA0ODc1LCAwLjA2MTI1LCAwLjA4Mzc1LCAwLjEwNSIsIFwKLSAgICAgICAgICAiLTAuMDA1LCAwLjAwNjI1LCAwLjAyNSwgMC4wMzc1LCAwLjA1LCAwLjA3MjUsIDAuMDkzNzUiLCBcCi0gICAgICAgICAgIi0wLjAxMTI1LCAwLCAwLjAxMjUsIDAuMDI1LCAwLjAzNzUsIDAuMDYsIDAuMDgxMjUiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTI1LCAwLCAwLjAxMjUsIDAuMDI1LCAwLjA0NzUsIDAuMDY4NzUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMjUsIC0wLjAxMjUsIDAsIDAuMDEyNSwgMC4wNDEyNSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiLTAuMDU4NzUsIC0wLjA0MTI1LCAtMC4wMjg3NSwgLTAuMDE2MjUsIC0wLjAwMzc1LCAwLjAxODc1LCAwLjA0IiwgXAotICAgICAgICAgICItMC4wNjc1LCAtMC4wNTYyNSwgLTAuMDQzNzUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgMC4wMDM3NSwgMC4wMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiRDAmIUQxIjsKLSAgICAgIHNkZl9jb25kIDogIkQwX0VRXzFfQU5fRDFfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMzEyNSwgLTAuMDIsIC0wLjAwMTI1LCAwLjAxMTI1LCAwLjAyMzc1LCAwLjA0NjI1LCAwLjA2NzUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzMTI1LCAtMC4wMTI1LCAwLCAwLjAxMjUsIDAuMDM1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA0Mzc1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIDAsIDAuMDIyNSwgMC4wMzc1IiwgXAotICAgICAgICAgICItMC4wNzM3NSwgLTAuMDYyNSwgLTAuMDQzNzUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgMC4wMDM3NSwgMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjA4NjI1LCAtMC4wNzUsIC0wLjA2MjUsIC0wLjA1LCAtMC4wMzEyNSwgLTAuMDA4NzUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMTA4NzUsIC0wLjA5NzUsIC0wLjA4NSwgLTAuMDcyNSwgLTAuMDUzNzUsIC0wLjAzMTI1LCAtMC4wMSIsIFwKLSAgICAgICAgICAiLTAuMTIzNzUsIC0wLjExMjUsIC0wLjEsIC0wLjA4NzUsIC0wLjA3NSwgLTAuMDQ2MjUsIC0wLjAzMTI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMTI1LCAtMC4xMTM3NSwgLTAuMTAxMjUsIC0wLjA4ODc1LCAtMC4wODI1LCAtMC4wNjYyNSwgLTAuMDUxMjUiLCBcCi0gICAgICAgICAgIi0wLjEzNjI1LCAtMC4xMjUsIC0wLjExMjUsIC0wLjEwNjI1LCAtMC4wOTM3NSwgLTAuMDc3NSwgLTAuMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMTQ4NzUsIC0wLjE0Mzc1LCAtMC4xMzEyNSwgLTAuMTE4NzUsIC0wLjEwNjI1LCAtMC4wOSwgLTAuMDgxMjUiLCBcCi0gICAgICAgICAgIi0wLjE2NzUsIC0wLjE1NjI1LCAtMC4xNDM3NSwgLTAuMTMxMjUsIC0wLjExODc1LCAtMC4xMDg3NSwgLTAuMDkzNzUiLCBcCi0gICAgICAgICAgIi0wLjE4LCAtMC4xNjg3NSwgLTAuMTU2MjUsIC0wLjE0Mzc1LCAtMC4xMzc1LCAtMC4xMjEyNSwgLTAuMTA2MjUiLCBcCi0gICAgICAgICAgIi0wLjE5NjI1LCAtMC4xOTEyNSwgLTAuMTc4NzUsIC0wLjE2NjI1LCAtMC4xNTM3NSwgLTAuMTM3NSwgLTAuMTIyNSIsIFwKLSAgICAgICAgICAiLTAuMjExMjUsIC0wLjIwNjI1LCAtMC4xOTM3NSwgLTAuMTgxMjUsIC0wLjE2ODc1LCAtMC4xNTI1LCAtMC4xMzc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRDAmRDEiOwotICAgICAgc2RmX2NvbmQgOiAiRDBfRVFfMF9BTl9EMV9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE1LCAwLjEzODc1LCAwLjEyNjI1LCAwLjEwNzUsIDAuMTAxMjUsIDAuMDg1LCAwLjA3IiwgXAotICAgICAgICAgICIwLjE2MTI1LCAwLjE1LCAwLjEzNzUsIDAuMTE4NzUsIDAuMTA2MjUsIDAuMDksIDAuMDgxMjUiLCBcCi0gICAgICAgICAgIjAuMTczNzUsIDAuMTYyNSwgMC4xNSwgMC4xMzEyNSwgMC4xMjUsIDAuMTA4NzUsIDAuMDkzNzUiLCBcCi0gICAgICAgICAgIjAuMTg2MjUsIDAuMTc1LCAwLjE2MjUsIDAuMTUsIDAuMTM3NSwgMC4xMjEyNSwgMC4xMDYyNSIsIFwKLSAgICAgICAgICAiMC4xOTg3NSwgMC4xODc1LCAwLjE3NSwgMC4xNjI1LCAwLjE1LCAwLjEzMzc1LCAwLjExODc1IiwgXAotICAgICAgICAgICIwLjIyMTI1LCAwLjIxLCAwLjE5NzUsIDAuMTc4NzUsIDAuMTcyNSwgMC4xNTYyNSwgMC4xNDEyNSIsIFwKLSAgICAgICAgICAiMC4yNDI1LCAwLjIzMTI1LCAwLjIxMjUsIDAuMiwgMC4xODc1LCAwLjE3MTI1LCAwLjE2MjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODEyNSwgMC4wNjM3NSwgMC4wNTEyNSwgMC4wMzI1LCAwLjAyLCAtMC4wMDI1LCAtMC4wMjM3NSIsIFwKLSAgICAgICAgICAiMC4wOTI1LCAwLjA3NSwgMC4wNjI1LCAwLjA0Mzc1LCAwLjAzMTI1LCAwLjAwMjUsIC0wLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMTA1LCAwLjA4NzUsIDAuMDc1LCAwLjA1NjI1LCAwLjA0Mzc1LCAwLjAyMTI1LCAwIiwgXAotICAgICAgICAgICIwLjExNzUsIDAuMTA2MjUsIDAuMDg3NSwgMC4wNjg3NSwgMC4wNTYyNSwgMC4wMzM3NSwgMC4wMTI1IiwgXAotICAgICAgICAgICIwLjEzLCAwLjExODc1LCAwLjEsIDAuMDg3NSwgMC4wNjg3NSwgMC4wNDYyNSwgMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMTUyNSwgMC4xMzUsIDAuMTIyNSwgMC4xMDM3NSwgMC4wOTEyNSwgMC4wNjg3NSwgMC4wNDc1IiwgXAotICAgICAgICAgICIwLjE2NzUsIDAuMTU2MjUsIDAuMTM3NSwgMC4xMjUsIDAuMTA2MjUsIDAuMDgzNzUsIDAuMDYyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiRDAmIUQxIjsKLSAgICAgIHNkZl9jb25kIDogIkQwX0VRXzFfQU5fRDFfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTg3NSwgMC4xMDc1LCAwLjA4ODc1LCAwLjA3NjI1LCAwLjA1NzUsIDAuMDM1LCAwLjAxMzc1IiwgXAotICAgICAgICAgICIwLjEzLCAwLjExODc1LCAwLjEsIDAuMDg3NSwgMC4wNjg3NSwgMC4wNDYyNSwgMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMTQ4NzUsIDAuMTMxMjUsIDAuMTE4NzUsIDAuMSwgMC4wODc1LCAwLjA2NSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4xNjEyNSwgMC4xNSwgMC4xMzEyNSwgMC4xMTg3NSwgMC4xLCAwLjA3NzUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIjAuMTczNzUsIDAuMTYyNSwgMC4xNSwgMC4xMzEyNSwgMC4xMTg3NSwgMC4wOSwgMC4wNjg3NSIsIFwKLSAgICAgICAgICAiMC4xOTYyNSwgMC4xODUsIDAuMTcyNSwgMC4xNTM3NSwgMC4xNDEyNSwgMC4xMTI1LCAwLjA5MTI1IiwgXAotICAgICAgICAgICIwLjIxNzUsIDAuMiwgMC4xODc1LCAwLjE2ODc1LCAwLjE1NjI1LCAwLjEzMzc1LCAwLjExMjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xODc1LCAwLjE3NjI1LCAwLjE1NzUsIDAuMTQ1LCAwLjEzMjUsIDAuMTE2MjUsIDAuMTAxMjUiLCBcCi0gICAgICAgICAgIjAuMTk4NzUsIDAuMTg3NSwgMC4xNjg3NSwgMC4xNTYyNSwgMC4xNDM3NSwgMC4xMjc1LCAwLjExMjUiLCBcCi0gICAgICAgICAgIjAuMjExMjUsIDAuMiwgMC4xODc1LCAwLjE2ODc1LCAwLjE2MjUsIDAuMTQ2MjUsIDAuMTMxMjUiLCBcCi0gICAgICAgICAgIjAuMjMsIDAuMjEyNSwgMC4yLCAwLjE4NzUsIDAuMTc1LCAwLjE1ODc1LCAwLjE0Mzc1IiwgXAotICAgICAgICAgICIwLjI0MjUsIDAuMjI1LCAwLjIxMjUsIDAuMiwgMC4xODc1LCAwLjE3MTI1LCAwLjE1NjI1IiwgXAotICAgICAgICAgICIwLjI1ODc1LCAwLjI0NzUsIDAuMjM1LCAwLjIxNjI1LCAwLjIwMzc1LCAwLjE5Mzc1LCAwLjE3ODc1IiwgXAotICAgICAgICAgICIwLjI3Mzc1LCAwLjI2MjUsIDAuMjUsIDAuMjMxMjUsIDAuMjE4NzUsIDAuMjA4NzUsIDAuMTkzNzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogTURGRkhRWDIgKgotICogLS0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKE1ERkZIUVgyKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMzY2NzkzOwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIGZmIChOMzAsUUJJTlQpIHsKLSAgICBuZXh0X3N0YXRlIDogIigoUzAgRDEpICsgKCFTMCBEMCkpIjsKLSAgICBjbG9ja2VkX29uIDogIkNLIjsKLSAgfQotICBwaW4oQ0spICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDU5MTUwNTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA1OTEyMTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA1OTE1MDU7Ci0gICAgY2xvY2sgOiB0cnVlOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjczNCwgMC4wMDI3MjIsIDAuMDAyNzEsIDAuMDAyNzA1LCAwLjAwMjcsIDAuMDAyNjkyLCAwLjAwMjY5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA1OTM2LCAwLjAwNTkyNiwgMC4wMDU5MTcsIDAuMDA1OTExLCAwLjAwNTkxMSwgMC4wMDU5MTYsIDAuMDA1OTE4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRDAmIUQxJiFTMCI7Ci0gICAgICBzZGZfY29uZCA6ICJEMF9FUV8wX0FOX0QxX0VRXzBfQU5fUzBfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjI3NDUxMiwgMC4yODY0NTcsIDAuMzAxNjA0LCAwLjMxNzA4NCwgMC4zMzI0NTMsIDAuMzU2NzgyLCAwLjM3NzgwNiIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMTk1MTI1LCAwLjIwNjQ4MywgMC4yMjE1MzQsIDAuMjM2Mzk4LCAwLjI1MTA0MiwgMC4yNzQwMTksIDAuMjkzMjM4Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihEMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwODI2NTcxOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDgyMjkyNTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA4MjY1NzE7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzMTQ0LCAwLjAwMzEyNCwgMC4wMDMxMTQsIDAuMDAzMTA4LCAwLjAwMzEwMiwgMC4wMDMwOTcsIDAuMDAzMDkyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA0ODEyLCAwLjAwNDgwMSwgMC4wMDQ3OTYsIDAuMDA0NzkyLCAwLjAwNDc4OSwgMC4wMDQ3ODYsIDAuMDA0Nzg0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFTMCI7Ci0gICAgICBzZGZfY29uZCA6ICJTMCA9PSAxJ2IwIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4xMDYyNSwgLTAuMDk1LCAtMC4wODI1LCAtMC4wNywgLTAuMDU3NSwgLTAuMDQ3NSwgLTAuMDMyNSIsIFwKLSAgICAgICAgICAiLTAuMTE3NSwgLTAuMTA2MjUsIC0wLjA5Mzc1LCAtMC4wODEyNSwgLTAuMDY4NzUsIC0wLjA1ODc1LCAtMC4wNDM3NSIsIFwKLSAgICAgICAgICAiLTAuMTMsIC0wLjExODc1LCAtMC4xMDYyNSwgLTAuMDkzNzUsIC0wLjA4NzUsIC0wLjA3MTI1LCAtMC4wNTYyNSIsIFwKLSAgICAgICAgICAiLTAuMTQyNSwgLTAuMTMxMjUsIC0wLjExODc1LCAtMC4xMDYyNSwgLTAuMSwgLTAuMDgzNzUsIC0wLjA2ODc1IiwgXAotICAgICAgICAgICItMC4xNTUsIC0wLjE0Mzc1LCAtMC4xMzEyNSwgLTAuMTI1LCAtMC4xMTI1LCAtMC4wOTYyNSwgLTAuMDgxMjUiLCBcCi0gICAgICAgICAgIi0wLjE3NzUsIC0wLjE2NjI1LCAtMC4xNTM3NSwgLTAuMTQxMjUsIC0wLjEzNSwgLTAuMTE4NzUsIC0wLjEwMzc1IiwgXAotICAgICAgICAgICItMC4xOTI1LCAtMC4xODc1LCAtMC4xNzUsIC0wLjE2MjUsIC0wLjE1LCAtMC4xMzM3NSwgLTAuMTI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMCwgMC4wMTEyNSwgMC4wMjM3NSwgMC4wMzYyNSwgMC4wNDg3NSwgMC4wNzEyNSwgMC4wOTI1IiwgXAotICAgICAgICAgICItMC4wMTEyNSwgMCwgMC4wMTI1LCAwLjAyNSwgMC4wMzc1LCAwLjA2LCAwLjA4MTI1IiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDEyNSwgMCwgMC4wMTI1LCAwLjAyNSwgMC4wNDc1LCAwLjA2ODc1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDI1LCAtMC4wMTI1LCAwLCAwLjAxMjUsIDAuMDM1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDM3NSwgLTAuMDI1LCAtMC4wMTI1LCAwLjAwNjI1LCAwLjAyODc1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICItMC4wNjUsIC0wLjA1Mzc1LCAtMC4wNDEyNSwgLTAuMDI4NzUsIC0wLjAxNjI1LCAwLjAwNjI1LCAwLjAyNzUiLCBcCi0gICAgICAgICAgIi0wLjA4LCAtMC4wNjg3NSwgLTAuMDU2MjUsIC0wLjA0Mzc1LCAtMC4wMzEyNSwgLTAuMDA4NzUsIDAuMDEyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIVMwIjsKLSAgICAgIHNkZl9jb25kIDogIlMwID09IDEnYjAiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE2ODc1LCAwLjE1NzUsIDAuMTM4NzUsIDAuMTI2MjUsIDAuMTEzNzUsIDAuMDk3NSwgMC4wODI1IiwgXAotICAgICAgICAgICIwLjE4LCAwLjE2ODc1LCAwLjE1LCAwLjEzNzUsIDAuMTI1LCAwLjEwODc1LCAwLjA5Mzc1IiwgXAotICAgICAgICAgICIwLjE5MjUsIDAuMTgxMjUsIDAuMTYyNSwgMC4xNSwgMC4xMzc1LCAwLjEyMTI1LCAwLjExMjUiLCBcCi0gICAgICAgICAgIjAuMjA1LCAwLjE5Mzc1LCAwLjE3NSwgMC4xNjI1LCAwLjE1LCAwLjEzMzc1LCAwLjEyNSIsIFwKLSAgICAgICAgICAiMC4yMTc1LCAwLjIwNjI1LCAwLjE5Mzc1LCAwLjE3NSwgMC4xNjg3NSwgMC4xNDYyNSwgMC4xMzc1IiwgXAotICAgICAgICAgICIwLjI0LCAwLjIyODc1LCAwLjIxLCAwLjE5NzUsIDAuMTg1LCAwLjE2ODc1LCAwLjE2IiwgXAotICAgICAgICAgICIwLjI2MTI1LCAwLjI0Mzc1LCAwLjIzMTI1LCAwLjIxODc1LCAwLjIwNjI1LCAwLjE5LCAwLjE3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5Mzc1LCAwLjA4MjUsIDAuMDYzNzUsIDAuMDQ1LCAwLjAzMjUsIDAuMDEsIC0wLjAxMTI1IiwgXAotICAgICAgICAgICIwLjEwNSwgMC4wOTM3NSwgMC4wNzUsIDAuMDYyNSwgMC4wNDM3NSwgMC4wMjEyNSwgMCIsIFwKLSAgICAgICAgICAiMC4xMTc1LCAwLjEwNjI1LCAwLjA4NzUsIDAuMDc1LCAwLjA1NjI1LCAwLjAzMzc1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMTMsIDAuMTE4NzUsIDAuMSwgMC4wODc1LCAwLjA2ODc1LCAwLjA0NjI1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiMC4xNDI1LCAwLjEzMTI1LCAwLjExMjUsIDAuMSwgMC4wODEyNSwgMC4wNTg3NSwgMC4wMzc1IiwgXAotICAgICAgICAgICIwLjE1ODc1LCAwLjE0NzUsIDAuMTM1LCAwLjExNjI1LCAwLjEwMzc1LCAwLjA3NSwgMC4wNTM3NSIsIFwKLSAgICAgICAgICAiMC4xOCwgMC4xNjg3NSwgMC4xNSwgMC4xMzEyNSwgMC4xMTg3NSwgMC4wOTYyNSwgMC4wNzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEQxKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA4NDI1MTk7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwODM4NzM5OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDg0MjUxOTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDI5NDcsIDAuMDAyOTI4LCAwLjAwMjkxOCwgMC4wMDI5MTEsIDAuMDAyOTA1LCAwLjAwMjksIDAuMDAyODk2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA0OTgzLCAwLjAwNDk3MywgMC4wMDQ5NjcsIDAuMDA0OTYzLCAwLjAwNDk2LCAwLjAwNDk1NywgMC4wMDQ5NTUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiUzAiOwotICAgICAgc2RmX2NvbmQgOiAiUzAgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMSwgLTAuMDk1LCAtMC4wODI1LCAtMC4wNywgLTAuMDU3NSwgLTAuMDQxMjUsIC0wLjAyNjI1IiwgXAotICAgICAgICAgICItMC4xMTEyNSwgLTAuMSwgLTAuMDkzNzUsIC0wLjA4MTI1LCAtMC4wNjg3NSwgLTAuMDUyNSwgLTAuMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMTIzNzUsIC0wLjExODc1LCAtMC4xMDYyNSwgLTAuMDkzNzUsIC0wLjA4MTI1LCAtMC4wNjUsIC0wLjA1NjI1IiwgXAotICAgICAgICAgICItMC4xNDI1LCAtMC4xMzEyNSwgLTAuMTE4NzUsIC0wLjEwNjI1LCAtMC4wOTM3NSwgLTAuMDc3NSwgLTAuMDY4NzUiLCBcCi0gICAgICAgICAgIi0wLjE1NSwgLTAuMTQzNzUsIC0wLjEzMTI1LCAtMC4xMTg3NSwgLTAuMTA2MjUsIC0wLjA5NjI1LCAtMC4wODEyNSIsIFwKLSAgICAgICAgICAiLTAuMTc3NSwgLTAuMTY2MjUsIC0wLjE1Mzc1LCAtMC4xNDEyNSwgLTAuMTI4NzUsIC0wLjExMjUsIC0wLjEwMzc1IiwgXAotICAgICAgICAgICItMC4xOTI1LCAtMC4xODEyNSwgLTAuMTY4NzUsIC0wLjE2MjUsIC0wLjE1LCAtMC4xMzM3NSwgLTAuMTE4NzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMDYyNSwgMC4wMDUsIDAuMDIzNzUsIDAuMDM2MjUsIDAuMDQ4NzUsIDAuMDcxMjUsIDAuMDkyNSIsIFwKLSAgICAgICAgICAiLTAuMDE3NSwgLTAuMDA2MjUsIDAuMDEyNSwgMC4wMjUsIDAuMDM3NSwgMC4wNiwgMC4wODEyNSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAxODc1LCAwLCAwLjAxMjUsIDAuMDI1LCAwLjA0NzUsIDAuMDY4NzUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzMTI1LCAtMC4wMTI1LCAwLCAwLjAxMjUsIDAuMDM1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDM3NSwgLTAuMDI1LCAtMC4wMTI1LCAwLCAwLjAyMjUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIi0wLjA3MTI1LCAtMC4wNiwgLTAuMDQxMjUsIC0wLjAyODc1LCAtMC4wMTYyNSwgMC4wMDYyNSwgMC4wMjc1IiwgXAotICAgICAgICAgICItMC4wODYyNSwgLTAuMDc1LCAtMC4wNTYyNSwgLTAuMDQzNzUsIC0wLjAzMTI1LCAtMC4wMDg3NSwgMC4wMTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJTMCI7Ci0gICAgICBzZGZfY29uZCA6ICJTMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNjg3NSwgMC4xNTEyNSwgMC4xMzg3NSwgMC4xMjYyNSwgMC4xMTM3NSwgMC4wOTc1LCAwLjA4MjUiLCBcCi0gICAgICAgICAgIjAuMTgsIDAuMTYyNSwgMC4xNSwgMC4xMzc1LCAwLjEyNSwgMC4xMDg3NSwgMC4wOTM3NSIsIFwKLSAgICAgICAgICAiMC4xOTI1LCAwLjE4MTI1LCAwLjE2MjUsIDAuMTUsIDAuMTM3NSwgMC4xMjEyNSwgMC4xMDYyNSIsIFwKLSAgICAgICAgICAiMC4yMDUsIDAuMTkzNzUsIDAuMTc1LCAwLjE2MjUsIDAuMTUsIDAuMTMzNzUsIDAuMTE4NzUiLCBcCi0gICAgICAgICAgIjAuMjE3NSwgMC4yMDYyNSwgMC4xODc1LCAwLjE3NSwgMC4xNjI1LCAwLjE0NjI1LCAwLjEzMTI1IiwgXAotICAgICAgICAgICIwLjI0LCAwLjIyODc1LCAwLjIxLCAwLjE5NzUsIDAuMTg1LCAwLjE2ODc1LCAwLjE1Mzc1IiwgXAotICAgICAgICAgICIwLjI1NSwgMC4yNDM3NSwgMC4yMzEyNSwgMC4yMTI1LCAwLjIwNjI1LCAwLjE5LCAwLjE3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5Mzc1LCAwLjA4MjUsIDAuMDYzNzUsIDAuMDUxMjUsIDAuMDMyNSwgMC4wMSwgLTAuMDExMjUiLCBcCi0gICAgICAgICAgIjAuMTA1LCAwLjA5Mzc1LCAwLjA4MTI1LCAwLjA2MjUsIDAuMDQzNzUsIDAuMDIxMjUsIDAiLCBcCi0gICAgICAgICAgIjAuMTE3NSwgMC4xMDYyNSwgMC4wOTM3NSwgMC4wNzUsIDAuMDU2MjUsIDAuMDMzNzUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4xMywgMC4xMTg3NSwgMC4xMDYyNSwgMC4wODc1LCAwLjA2ODc1LCAwLjA0NjI1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiMC4xNDI1LCAwLjEzMTI1LCAwLjExMjUsIDAuMSwgMC4wODEyNSwgMC4wNTg3NSwgMC4wMzc1IiwgXAotICAgICAgICAgICIwLjE2NSwgMC4xNDc1LCAwLjEzNSwgMC4xMTYyNSwgMC4xMDM3NSwgMC4wODEyNSwgMC4wNiIsIFwKLSAgICAgICAgICAiMC4xOCwgMC4xNjg3NSwgMC4xNSwgMC4xMzc1LCAwLjExODc1LCAwLjA5NjI1LCAwLjA3NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjI2MjI4NDsKLSAgICBmdW5jdGlvbiA6ICJOMzAiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5vbl91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcmlzaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIzNTA0NiwgMC40MTQ3NTYsIDAuNTU4MDQ0LCAwLjczNzIxOCwgMC45MTYzNDMsIDEuMDk1NTEsIDEuMjc0NjYiLCBcCi0gICAgICAgICAgIjAuMjQ3MTc1LCAwLjQyNjkwOCwgMC41NzAxNywgMC43NDkzNDEsIDAuOTI4NDc1LCAxLjEwNzYsIDEuMjg2NzgiLCBcCi0gICAgICAgICAgIjAuMjYyMjE2LCAwLjQ0MTkxNSwgMC41ODUyMDcsIDAuNzY0Mzc5LCAwLjk0MzUwNSwgMS4xMjI2NywgMS4zMDE4MiIsIFwKLSAgICAgICAgICAiMC4yNzc2ODYsIDAuNDU3NDIyLCAwLjYwMDY4NSwgMC43Nzk4NTksIDAuOTU4OTkzLCAxLjEzODIxLCAxLjMxNzMxIiwgXAotICAgICAgICAgICIwLjI5MzA3LCAwLjQ3Mjc1NSwgMC42MTYxMjMsIDAuNzk1MjM4LCAwLjk3NDM1OCwgMS4xNTM1MywgMS4zMzI2OCIsIFwKLSAgICAgICAgICAiMC4zMTczMTcsIDAuNDk3MDU5LCAwLjY0MDMxNiwgMC44MTk0ODcsIDAuOTk4NjEzLCAxLjE3Nzc4LCAxLjM1NjkzIiwgXAotICAgICAgICAgICIwLjMzODA4NiwgMC41MTc3OCwgMC42NjEwODgsIDAuODQwMjYsIDEuMDE5MzgsIDEuMTk4NTUsIDEuMzc3NyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTA1OTcsIDAuNDUwMTAzLCAwLjc0MTc2LCAxLjEwNzI1LCAxLjQ3MjM3LCAxLjgzNzcxLCAyLjIwMjk0IiwgXAotICAgICAgICAgICIwLjA5MDU0MiwgMC40NDg4MDksIDAuNzQxNzk0LCAxLjEwNzI0LCAxLjQ3MjM5LCAxLjgzNzQ0LCAyLjIwMjg0IiwgXAotICAgICAgICAgICIwLjA5MDU2MSwgMC40NTAwODEsIDAuNzQxNzQzLCAxLjEwNzIzLCAxLjQ3MjM1LCAxLjgzNzY2LCAyLjIwMjg2IiwgXAotICAgICAgICAgICIwLjA5MDYyMiwgMC40NDg4MDQsIDAuNzQxNzk1LCAxLjEwNzI1LCAxLjQ3MjQxLCAxLjgzNzg0LCAyLjIwMjk0IiwgXAotICAgICAgICAgICIwLjA5MDU3OCwgMC40NDkyODUsIDAuNzQwMDI3LCAxLjEwNzI0LCAxLjQ3MjMxLCAxLjgzNzY1LCAyLjIwMjg5IiwgXAotICAgICAgICAgICIwLjA5MDU2MywgMC40NDg5NDUsIDAuNzQxNzQyLCAxLjEwNzIzLCAxLjQ3MjM2LCAxLjgzNzY3LCAyLjIwMjg2IiwgXAotICAgICAgICAgICIwLjA5MDU2NiwgMC40NDk5OTksIDAuNzQxNzM5LCAxLjEwNzIzLCAxLjQ3MjM2LCAxLjgzNzY3LCAyLjIwMjg4Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI3NDUxMywgMC40ODEyNjIsIDAuNjQ2MTgyLCAwLjg1MjI2LCAxLjA1ODMxLCAxLjI2NDQyLCAxLjQ3MDQ2IiwgXAotICAgICAgICAgICIwLjI4NjQ1OCwgMC40OTMyMjcsIDAuNjU4MTI0LCAwLjg2NDIwMSwgMS4wNzAyNSwgMS4yNzYzNiwgMS40ODI0IiwgXAotICAgICAgICAgICIwLjMwMTYwNSwgMC41MDgzNDQsIDAuNjczMzI4LCAwLjg3OTQ1NSwgMS4wODU0LCAxLjI5MTQ5LCAxLjQ5NzUyIiwgXAotICAgICAgICAgICIwLjMxNzA4NSwgMC41MjM4MzIsIDAuNjg4NzY0LCAwLjg5NDgyOSwgMS4xMDA4OCwgMS4zMDY5OSwgMS41MTMwNCIsIFwKLSAgICAgICAgICAiMC4zMzI0NTQsIDAuNTM5MjI1LCAwLjcwNDEyMSwgMC45MTAxOTcsIDEuMTE2MjUsIDEuMzIyMzYsIDEuNTI4NCIsIFwKLSAgICAgICAgICAiMC4zNTY3ODMsIDAuNTYzNTU1LCAwLjcyODQ0NywgMC45MzQ1MjQsIDEuMTQwNTgsIDEuMzQ2NjksIDEuNTUyNzMiLCBcCi0gICAgICAgICAgIjAuMzc3ODA4LCAwLjU4NDU1MywgMC43NDk0OCwgMC45NTU1NTEsIDEuMTYxNiwgMS4zNjc3MSwgMS41NzM3NiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTg4NjcsIDAuNTA2NDI2LCAwLjgzMzUyLCAxLjI0NzQ2LCAxLjY1OTIsIDIuMDY5ODMsIDIuNDgxNDciLCBcCi0gICAgICAgICAgIjAuMDk4ODUxLCAwLjUwNjQ2MywgMC44MzM1ODQsIDEuMjQ3NDksIDEuNjU5MTIsIDIuMDY5ODIsIDIuNDgxNTEiLCBcCi0gICAgICAgICAgIjAuMDk4Nzk4LCAwLjUwNjQyNiwgMC44MzIzOTMsIDEuMjQzMTksIDEuNjU5LCAyLjA2OTk3LCAyLjQ3NjkzIiwgXAotICAgICAgICAgICIwLjA5ODg1MywgMC41MDY0MjQsIDAuODMzOTk3LCAxLjI0NzQsIDEuNjU5MSwgMi4wNjk4MiwgMi40ODE0NiIsIFwKLSAgICAgICAgICAiMC4wOTg4NTIsIDAuNTA2NDY0LCAwLjgzNDMwMiwgMS4yNDc0MywgMS42NTkwOCwgMi4wNjk3OSwgMi40ODE1MSIsIFwKLSAgICAgICAgICAiMC4wOTg4NTIsIDAuNTA1MTI5LCAwLjgzNDcxNiwgMS4yNDc0NSwgMS42NTg5OCwgMi4wNjk3OCwgMi40ODE1MyIsIFwKLSAgICAgICAgICAiMC4wOTg4NTEsIDAuNTA2NDI1LCAwLjgzMzc2MiwgMS4yNDc0NywgMS42NTkyLCAyLjA2OTg0LCAyLjQ4MTQ4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjU2NSwgMC4wMDY1NzYsIDAuMDA2NTY5LCAwLjAwNjU2NCwgMC4wMDY1NjEsIDAuMDA2NTYsIDAuMDA2NTU3IiwgXAotICAgICAgICAgICIwLjAwNjU1NSwgMC4wMDY1NjUsIDAuMDA2NTU5LCAwLjAwNjU1NCwgMC4wMDY1NSwgMC4wMDY1NDksIDAuMDA2NTQ3IiwgXAotICAgICAgICAgICIwLjAwNjU0MiwgMC4wMDY1NTIsIDAuMDA2NTQ1LCAwLjAwNjU0LCAwLjAwNjUzOCwgMC4wMDY1MzUsIDAuMDA2NTMzIiwgXAotICAgICAgICAgICIwLjAwNjUzMSwgMC4wMDY1NDIsIDAuMDA2NTM2LCAwLjAwNjUzMSwgMC4wMDY1MjgsIDAuMDA2NTI2LCAwLjAwNjUyNCIsIFwKLSAgICAgICAgICAiMC4wMDY1MjQsIDAuMDA2NTM1LCAwLjAwNjUyOSwgMC4wMDY1MjQsIDAuMDA2NTIxLCAwLjAwNjUxOSwgMC4wMDY1MTciLCBcCi0gICAgICAgICAgIjAuMDA2NTEyLCAwLjAwNjUyNCwgMC4wMDY1MTcsIDAuMDA2NTEyLCAwLjAwNjUwOSwgMC4wMDY1MDcsIDAuMDA2NTA1IiwgXAotICAgICAgICAgICIwLjAwNjUwNiwgMC4wMDY1MTgsIDAuMDA2NTEyLCAwLjAwNjUwNywgMC4wMDY1MDMsIDAuMDA2NTAxLCAwLjAwNjQ5OSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjk3LCAwLjAwNzAyLCAwLjAwNzAyNiwgMC4wMDcwMjksIDAuMDA3MDMxLCAwLjAwNzAzMiwgMC4wMDcwMzIiLCBcCi0gICAgICAgICAgIjAuMDA2OTU3LCAwLjAwNzAwNiwgMC4wMDcwMTIsIDAuMDA3MDE1LCAwLjAwNzAxNywgMC4wMDcwMTgsIDAuMDA3MDE4IiwgXAotICAgICAgICAgICIwLjAwNjk0NiwgMC4wMDY5OTUsIDAuMDA3MDAxLCAwLjAwNzAwNCwgMC4wMDcwMDYsIDAuMDA3MDA3LCAwLjAwNzAwOCIsIFwKLSAgICAgICAgICAiMC4wMDY5MzgsIDAuMDA2OTg3LCAwLjAwNjk5MywgMC4wMDY5OTcsIDAuMDA2OTk4LCAwLjAwNjk5OSwgMC4wMDciLCBcCi0gICAgICAgICAgIjAuMDA2OTM2LCAwLjAwNjk4NSwgMC4wMDY5OTEsIDAuMDA2OTk1LCAwLjAwNjk5NiwgMC4wMDY5OTcsIDAuMDA2OTk4IiwgXAotICAgICAgICAgICIwLjAwNjkzNCwgMC4wMDY5ODMsIDAuMDA2OTg5LCAwLjAwNjk5MywgMC4wMDY5OTQsIDAuMDA2OTk1LCAwLjAwNjk5NiIsIFwKLSAgICAgICAgICAiMC4wMDY5NDEsIDAuMDA2OTksIDAuMDA2OTk2LCAwLjAwNjk5OSwgMC4wMDcwMDEsIDAuMDA3MDAyLCAwLjAwNzAwMiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUzApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTU1NTk7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNTU1MTg7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNTU1OTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDQ2MTUsIDAuMDA0NjE0LCAwLjAwNDYwNywgMC4wMDQ2LCAwLjAwNDU5NywgMC4wMDQ1OTEsIDAuMDA0NTg4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA1Njk4LCAwLjAwNTY3NSwgMC4wMDU2NTUsIDAuMDA1NjQzLCAwLjAwNTYzNCwgMC4wMDU2MjUsIDAuMDA1NjIxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEMCZEMSI7Ci0gICAgICBzZGZfY29uZCA6ICJEMF9FUV8wX0FOX0QxX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDg3NSwgLTAuMDc2MjUsIC0wLjA2Mzc1LCAtMC4wNTc1LCAtMC4wNDUsIC0wLjAyODc1LCAtMC4wMTM3NSIsIFwKLSAgICAgICAgICAiLTAuMDk4NzUsIC0wLjA4NzUsIC0wLjA3NSwgLTAuMDY4NzUsIC0wLjA1NjI1LCAtMC4wNCwgLTAuMDI1IiwgXAotICAgICAgICAgICItMC4xMTEyNSwgLTAuMSwgLTAuMDg3NSwgLTAuMDgxMjUsIC0wLjA2ODc1LCAtMC4wNTI1LCAtMC4wMzc1IiwgXAotICAgICAgICAgICItMC4xMjM3NSwgLTAuMTE4NzUsIC0wLjEwNjI1LCAtMC4wOTM3NSwgLTAuMDgxMjUsIC0wLjA2NSwgLTAuMDU2MjUiLCBcCi0gICAgICAgICAgIi0wLjEzNjI1LCAtMC4xMzEyNSwgLTAuMTE4NzUsIC0wLjEwNjI1LCAtMC4wOTM3NSwgLTAuMDc3NSwgLTAuMDY4NzUiLCBcCi0gICAgICAgICAgIi0wLjE1ODc1LCAtMC4xNDc1LCAtMC4xNDEyNSwgLTAuMTI4NzUsIC0wLjExNjI1LCAtMC4xLCAtMC4wODUiLCBcCi0gICAgICAgICAgIi0wLjE4LCAtMC4xNjg3NSwgLTAuMTU2MjUsIC0wLjE0Mzc1LCAtMC4xMzc1LCAtMC4xMjEyNSwgLTAuMTA2MjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjI1LCAwLjAxNzUsIDAuMDM2MjUsIDAuMDQ4NzUsIDAuMDYxMjUsIDAuMDgzNzUsIDAuMTA1IiwgXAotICAgICAgICAgICIwLjAwMTI1LCAwLjAxMjUsIDAuMDI1LCAwLjAzNzUsIDAuMDU2MjUsIDAuMDc4NzUsIDAuMDkzNzUiLCBcCi0gICAgICAgICAgIi0wLjAxMTI1LCAwLCAwLjAxMjUsIDAuMDI1LCAwLjA0Mzc1LCAwLjA2NjI1LCAwLjA4MTI1IiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDEyNSwgMCwgMC4wMTI1LCAwLjAzMTI1LCAwLjA1Mzc1LCAwLjA2ODc1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDI1LCAtMC4wMTI1LCAwLCAwLjAxODc1LCAwLjA0MTI1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICItMC4wNTI1LCAtMC4wNDEyNSwgLTAuMDI4NzUsIC0wLjAxNjI1LCAtMC4wMDM3NSwgMC4wMTg3NSwgMC4wNCIsIFwKLSAgICAgICAgICAiLTAuMDY3NSwgLTAuMDU2MjUsIC0wLjA0Mzc1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIDAuMDAzNzUsIDAuMDI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIkQwJiFEMSI7Ci0gICAgICBzZGZfY29uZCA6ICJEMF9FUV8xX0FOX0QxX0VRXzAgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDMxMjUsIC0wLjAyLCAtMC4wMDEyNSwgMC4wMTEyNSwgMC4wMjM3NSwgMC4wNDYyNSwgMC4wNjc1IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzEyNSwgLTAuMDEyNSwgMCwgMC4wMTI1LCAwLjAzNSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNDM3NSwgLTAuMDMxMjUsIC0wLjAxODc1LCAtMC4wMDYyNSwgMC4wMjI1LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjA3Mzc1LCAtMC4wNjI1LCAtMC4wNDM3NSwgLTAuMDMxMjUsIC0wLjAxODc1LCAwLjAwMzc1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDg2MjUsIC0wLjA3NSwgLTAuMDYyNSwgLTAuMDUsIC0wLjAzMTI1LCAtMC4wMDg3NSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMTA4NzUsIC0wLjA5NzUsIC0wLjA4NSwgLTAuMDcyNSwgLTAuMDUzNzUsIC0wLjAzMTI1LCAtMC4wMTYyNSIsIFwKLSAgICAgICAgICAiLTAuMTIzNzUsIC0wLjExMjUsIC0wLjEsIC0wLjA4NzUsIC0wLjA3NSwgLTAuMDUyNSwgLTAuMDMxMjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4xMjUsIC0wLjExMzc1LCAtMC4xMDEyNSwgLTAuMDk1LCAtMC4wODI1LCAtMC4wNjYyNSwgLTAuMDUxMjUiLCBcCi0gICAgICAgICAgIi0wLjEzNjI1LCAtMC4xMjUsIC0wLjExODc1LCAtMC4xMDYyNSwgLTAuMDkzNzUsIC0wLjA3NzUsIC0wLjA2MjUiLCBcCi0gICAgICAgICAgIi0wLjE1NSwgLTAuMTQzNzUsIC0wLjEzMTI1LCAtMC4xMTg3NSwgLTAuMTA2MjUsIC0wLjA5LCAtMC4wODEyNSIsIFwKLSAgICAgICAgICAiLTAuMTY3NSwgLTAuMTU2MjUsIC0wLjE0Mzc1LCAtMC4xMzEyNSwgLTAuMTI1LCAtMC4xMDg3NSwgLTAuMDkzNzUiLCBcCi0gICAgICAgICAgIi0wLjE4LCAtMC4xNjg3NSwgLTAuMTU2MjUsIC0wLjE1LCAtMC4xMzc1LCAtMC4xMjEyNSwgLTAuMTA2MjUiLCBcCi0gICAgICAgICAgIi0wLjIwMjUsIC0wLjE5MTI1LCAtMC4xNzg3NSwgLTAuMTY2MjUsIC0wLjE1Mzc1LCAtMC4xMzc1LCAtMC4xMjg3NSIsIFwKLSAgICAgICAgICAiLTAuMjE3NSwgLTAuMjA2MjUsIC0wLjE5Mzc1LCAtMC4xODEyNSwgLTAuMTY4NzUsIC0wLjE1ODc1LCAtMC4xNDM3NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUQwJkQxIjsKLSAgICAgIHNkZl9jb25kIDogIkQwX0VRXzBfQU5fRDFfRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNTYyNSwgMC4xMzg3NSwgMC4xMjYyNSwgMC4xMTM3NSwgMC4xMDEyNSwgMC4wODUsIDAuMDciLCBcCi0gICAgICAgICAgIjAuMTYxMjUsIDAuMTUsIDAuMTM3NSwgMC4xMjUsIDAuMTEyNSwgMC4wOTYyNSwgMC4wODEyNSIsIFwKLSAgICAgICAgICAiMC4xNzM3NSwgMC4xNjI1LCAwLjE1LCAwLjEzNzUsIDAuMTI1LCAwLjEwODc1LCAwLjA5Mzc1IiwgXAotICAgICAgICAgICIwLjE5MjUsIDAuMTc1LCAwLjE2MjUsIDAuMTUsIDAuMTM3NSwgMC4xMjEyNSwgMC4xMDYyNSIsIFwKLSAgICAgICAgICAiMC4yMDUsIDAuMTkzNzUsIDAuMTc1LCAwLjE2MjUsIDAuMTUsIDAuMTMzNzUsIDAuMTE4NzUiLCBcCi0gICAgICAgICAgIjAuMjI3NSwgMC4yMSwgMC4xOTc1LCAwLjE4NSwgMC4xNzI1LCAwLjE1NjI1LCAwLjE0MTI1IiwgXAotICAgICAgICAgICIwLjI0MjUsIDAuMjMxMjUsIDAuMjE4NzUsIDAuMiwgMC4xODc1LCAwLjE3MTI1LCAwLjE2MjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODEyNSwgMC4wNywgMC4wNTEyNSwgMC4wMzg3NSwgMC4wMiwgLTAuMDAyNSwgLTAuMDIzNzUiLCBcCi0gICAgICAgICAgIjAuMDkyNSwgMC4wNzUsIDAuMDYyNSwgMC4wNDM3NSwgMC4wMzEyNSwgMC4wMDg3NSwgLTAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4xMDUsIDAuMDkzNzUsIDAuMDc1LCAwLjA1NjI1LCAwLjA0Mzc1LCAwLjAyMTI1LCAwIiwgXAotICAgICAgICAgICIwLjExNzUsIDAuMTA2MjUsIDAuMDg3NSwgMC4wNzUsIDAuMDU2MjUsIDAuMDMzNzUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4xMywgMC4xMTg3NSwgMC4xLCAwLjA4NzUsIDAuMDY4NzUsIDAuMDQ2MjUsIDAuMDI1IiwgXAotICAgICAgICAgICIwLjE1MjUsIDAuMTQxMjUsIDAuMTIyNSwgMC4xMDM3NSwgMC4wOTEyNSwgMC4wNjg3NSwgMC4wNDc1IiwgXAotICAgICAgICAgICIwLjE2NzUsIDAuMTU2MjUsIDAuMTQzNzUsIDAuMTI1LCAwLjEwNjI1LCAwLjA4Mzc1LCAwLjA2MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIkQwJiFEMSI7Ci0gICAgICBzZGZfY29uZCA6ICJEMF9FUV8xX0FOX0QxX0VRXzAgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTE4NzUsIDAuMTA3NSwgMC4wOTUsIDAuMDc2MjUsIDAuMDYzNzUsIDAuMDM1LCAwLjAxMzc1IiwgXAotICAgICAgICAgICIwLjEzNjI1LCAwLjExODc1LCAwLjEwNjI1LCAwLjA4NzUsIDAuMDc1LCAwLjA0NjI1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICIwLjE0ODc1LCAwLjEzNzUsIDAuMTE4NzUsIDAuMTA2MjUsIDAuMDg3NSwgMC4wNjUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMTYxMjUsIDAuMTUsIDAuMTM3NSwgMC4xMTg3NSwgMC4xMDYyNSwgMC4wNzc1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICIwLjE4LCAwLjE2ODc1LCAwLjE1LCAwLjEzMTI1LCAwLjExODc1LCAwLjA5NjI1LCAwLjA3NSIsIFwKLSAgICAgICAgICAiMC4yMDI1LCAwLjE4NSwgMC4xNzI1LCAwLjE1Mzc1LCAwLjE0MTI1LCAwLjExODc1LCAwLjA5NzUiLCBcCi0gICAgICAgICAgIjAuMjE3NSwgMC4yMDYyNSwgMC4xODc1LCAwLjE3NSwgMC4xNTYyNSwgMC4xMzM3NSwgMC4xMTI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTg3NSwgMC4xNzYyNSwgMC4xNjM3NSwgMC4xNTEyNSwgMC4xMzg3NSwgMC4xMjI1LCAwLjEwNzUiLCBcCi0gICAgICAgICAgIjAuMjA1LCAwLjE4NzUsIDAuMTc1LCAwLjE2MjUsIDAuMTUsIDAuMTMzNzUsIDAuMTE4NzUiLCBcCi0gICAgICAgICAgIjAuMjE3NSwgMC4yMDYyNSwgMC4xODc1LCAwLjE3NSwgMC4xNjI1LCAwLjE0NjI1LCAwLjEzMTI1IiwgXAotICAgICAgICAgICIwLjIzLCAwLjIxODc1LCAwLjIsIDAuMTg3NSwgMC4xNzUsIDAuMTU4NzUsIDAuMTUiLCBcCi0gICAgICAgICAgIjAuMjQyNSwgMC4yMzEyNSwgMC4yMTg3NSwgMC4yLCAwLjE5Mzc1LCAwLjE3NzUsIDAuMTYyNSIsIFwKLSAgICAgICAgICAiMC4yNjUsIDAuMjUzNzUsIDAuMjM1LCAwLjIyMjUsIDAuMjEsIDAuMTkzNzUsIDAuMTc4NzUiLCBcCi0gICAgICAgICAgIjAuMjgsIDAuMjY4NzUsIDAuMjUsIDAuMjM3NSwgMC4yMjUsIDAuMjA4NzUsIDAuMTkzNzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogTURGRkhRWDQgKgotICogLS0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKE1ERkZIUVg0KSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuNDY2NjcyOwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIGZmIChOMzAsUUJJTlQpIHsKLSAgICBuZXh0X3N0YXRlIDogIigoUzAgRDEpICsgKCFTMCBEMCkpIjsKLSAgICBjbG9ja2VkX29uIDogIkNLIjsKLSAgfQotICBwaW4oQ0spICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDU4MzY2NjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA1ODMzODU7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNTgzNjY2OwotICAgIGNsb2NrIDogdHJ1ZTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDI3OTEsIDAuMDAyNzgsIDAuMDAyNzY4LCAwLjAwMjc2MiwgMC4wMDI3NTcsIDAuMDAyNzUsIDAuMDAyNzQ3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA2MDIyLCAwLjAwNjAxMiwgMC4wMDYwMDQsIDAuMDA1OTk4LCAwLjAwNTk5OCwgMC4wMDYwMDMsIDAuMDA2MDA2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRDAmIUQxJiFTMCI7Ci0gICAgICBzZGZfY29uZCA6ICJEMF9FUV8wX0FOX0QxX0VRXzBfQU5fUzBfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjI1NDUsIDAuMjY2NTA5LCAwLjI4MTU5NiwgMC4yOTcwMTgsIDAuMzEyNDM5LCAwLjMzNjgwMywgMC4zNTc4OTQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjE5ODA4NCwgMC4yMDk0MTcsIDAuMjI0NDk1LCAwLjIzOTQyMiwgMC4yNTQxMjksIDAuMjc3MjAzLCAwLjI5NjY5MiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRDApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDg0ODMxOTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA4NDUwODsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA4NDgzMTk7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzMDg3LCAwLjAwMzA2NywgMC4wMDMwNTcsIDAuMDAzMDUsIDAuMDAzMDQ0LCAwLjAwMzAzOSwgMC4wMDMwMzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDQ3MywgMC4wMDQ3MiwgMC4wMDQ3MTQsIDAuMDA0NzExLCAwLjAwNDcwOCwgMC4wMDQ3MDQsIDAuMDA0NzAyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFTMCI7Ci0gICAgICBzZGZfY29uZCA6ICJTMCA9PSAxJ2IwIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4xLCAtMC4wODg3NSwgLTAuMDc2MjUsIC0wLjA2Mzc1LCAtMC4wNTc1LCAtMC4wNDEyNSwgLTAuMDI2MjUiLCBcCi0gICAgICAgICAgIi0wLjExMTI1LCAtMC4xLCAtMC4wODc1LCAtMC4wNzUsIC0wLjA2MjUsIC0wLjA0NjI1LCAtMC4wMzc1IiwgXAotICAgICAgICAgICItMC4xMjM3NSwgLTAuMTEyNSwgLTAuMSwgLTAuMDg3NSwgLTAuMDgxMjUsIC0wLjA2NSwgLTAuMDUiLCBcCi0gICAgICAgICAgIi0wLjEzNjI1LCAtMC4xMjUsIC0wLjExMjUsIC0wLjEwNjI1LCAtMC4wOTM3NSwgLTAuMDc3NSwgLTAuMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMTQ4NzUsIC0wLjEzNzUsIC0wLjEyNSwgLTAuMTE4NzUsIC0wLjEwNjI1LCAtMC4wOSwgLTAuMDc1IiwgXAotICAgICAgICAgICItMC4xNzEyNSwgLTAuMTYsIC0wLjE0NzUsIC0wLjEzNSwgLTAuMTI4NzUsIC0wLjExMjUsIC0wLjA5NzUiLCBcCi0gICAgICAgICAgIi0wLjE5MjUsIC0wLjE4MTI1LCAtMC4xNjg3NSwgLTAuMTU2MjUsIC0wLjE0Mzc1LCAtMC4xMjc1LCAtMC4xMTg3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2MjUsIDAuMDE3NSwgMC4wMywgMC4wNDI1LCAwLjA1NSwgMC4wNzc1LCAwLjA5ODc1IiwgXAotICAgICAgICAgICItMC4wMTEyNSwgMC4wMDYyNSwgMC4wMTg3NSwgMC4wMzEyNSwgMC4wNDM3NSwgMC4wNzI1LCAwLjA4NzUiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMDYyNSwgMC4wMDYyNSwgMC4wMTg3NSwgMC4wMzEyNSwgMC4wNTM3NSwgMC4wNzUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAuMDA2MjUsIDAuMDI1LCAwLjA0NzUsIDAuMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDMxMjUsIC0wLjAxODc1LCAtMC4wMDYyNSwgMC4wMTI1LCAwLjAzNSwgMC4wNSIsIFwKLSAgICAgICAgICAiLTAuMDU4NzUsIC0wLjA0NzUsIC0wLjAzNSwgLTAuMDIyNSwgLTAuMDEsIDAuMDEyNSwgMC4wMzM3NSIsIFwKLSAgICAgICAgICAiLTAuMDczNzUsIC0wLjA2MjUsIC0wLjA1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAwMjUsIDAuMDE4NzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFTMCI7Ci0gICAgICBzZGZfY29uZCA6ICJTMCA9PSAxJ2IwIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNjI1LCAwLjE1MTI1LCAwLjEzODc1LCAwLjEyLCAwLjEwNzUsIDAuMDkxMjUsIDAuMDgyNSIsIFwKLSAgICAgICAgICAiMC4xNzM3NSwgMC4xNjI1LCAwLjE1LCAwLjEzMTI1LCAwLjExODc1LCAwLjEwMjUsIDAuMDkzNzUiLCBcCi0gICAgICAgICAgIjAuMTkyNSwgMC4xNzUsIDAuMTYyNSwgMC4xNSwgMC4xMzc1LCAwLjExNSwgMC4xMDYyNSIsIFwKLSAgICAgICAgICAiMC4yMDUsIDAuMTg3NSwgMC4xNzUsIDAuMTYyNSwgMC4xNSwgMC4xMzM3NSwgMC4xMTg3NSIsIFwKLSAgICAgICAgICAiMC4yMTc1LCAwLjIwNjI1LCAwLjE4NzUsIDAuMTc1LCAwLjE2MjUsIDAuMTQ2MjUsIDAuMTMxMjUiLCBcCi0gICAgICAgICAgIjAuMjQsIDAuMjIyNSwgMC4yMSwgMC4xOTc1LCAwLjE4NSwgMC4xNjI1LCAwLjE1Mzc1IiwgXAotICAgICAgICAgICIwLjI1NSwgMC4yNDM3NSwgMC4yMjUsIDAuMjEyNSwgMC4yLCAwLjE4Mzc1LCAwLjE2ODc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg3NSwgMC4wNzYyNSwgMC4wNTc1LCAwLjA0NSwgMC4wMjYyNSwgMC4wMDM3NSwgLTAuMDE3NSIsIFwKLSAgICAgICAgICAiMC4wOTg3NSwgMC4wODc1LCAwLjA2ODc1LCAwLjA1NjI1LCAwLjAzNzUsIDAuMDE1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiMC4xMTEyNSwgMC4xLCAwLjA4MTI1LCAwLjA2ODc1LCAwLjA1LCAwLjAyNzUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMTIzNzUsIDAuMTEyNSwgMC4wOTM3NSwgMC4wODEyNSwgMC4wNjI1LCAwLjA0LCAwLjAxODc1IiwgXAotICAgICAgICAgICIwLjEzNjI1LCAwLjEyNSwgMC4xMDYyNSwgMC4wOTM3NSwgMC4wNzUsIDAuMDUyNSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4xNTg3NSwgMC4xNDEyNSwgMC4xMjg3NSwgMC4xMSwgMC4wOTc1LCAwLjA3NSwgMC4wNTM3NSIsIFwKLSAgICAgICAgICAiMC4xNzM3NSwgMC4xNjI1LCAwLjE0Mzc1LCAwLjEzMTI1LCAwLjExMjUsIDAuMDksIDAuMDY4NzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEQxKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA4NDA0Njg7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwODM2OTI2OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDg0MDQ2ODsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDI5MTEsIDAuMDAyODkzLCAwLjAwMjg4MiwgMC4wMDI4NzYsIDAuMDAyODcsIDAuMDAyODY0LCAwLjAwMjg2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA0ODkyLCAwLjAwNDg4MSwgMC4wMDQ4NzYsIDAuMDA0ODcyLCAwLjAwNDg2OCwgMC4wMDQ4NjYsIDAuMDA0ODY0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlMwIjsKLSAgICAgIHNkZl9jb25kIDogIlMwID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjEsIC0wLjA4ODc1LCAtMC4wNzYyNSwgLTAuMDYzNzUsIC0wLjA1MTI1LCAtMC4wMzUsIC0wLjAyIiwgXAotICAgICAgICAgICItMC4xMTEyNSwgLTAuMSwgLTAuMDg3NSwgLTAuMDc1LCAtMC4wNjI1LCAtMC4wNDYyNSwgLTAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjEyMzc1LCAtMC4xMTI1LCAtMC4xLCAtMC4wODc1LCAtMC4wNzUsIC0wLjA1ODc1LCAtMC4wNSIsIFwKLSAgICAgICAgICAiLTAuMTM2MjUsIC0wLjEyNSwgLTAuMTEyNSwgLTAuMSwgLTAuMDg3NSwgLTAuMDcxMjUsIC0wLjA2MjUiLCBcCi0gICAgICAgICAgIi0wLjE0ODc1LCAtMC4xMzc1LCAtMC4xMjUsIC0wLjExMjUsIC0wLjEwNjI1LCAtMC4wOSwgLTAuMDc1IiwgXAotICAgICAgICAgICItMC4xNzEyNSwgLTAuMTYsIC0wLjE0NzUsIC0wLjEzNSwgLTAuMTIyNSwgLTAuMTA2MjUsIC0wLjA5NzUiLCBcCi0gICAgICAgICAgIi0wLjE4NjI1LCAtMC4xNzUsIC0wLjE2MjUsIC0wLjE1NjI1LCAtMC4xNDM3NSwgLTAuMTI3NSwgLTAuMTEyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAsIDAuMDExMjUsIDAuMDMsIDAuMDQyNSwgMC4wNTUsIDAuMDc3NSwgMC4wOTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDExMjUsIDAsIDAuMDE4NzUsIDAuMDMxMjUsIDAuMDQzNzUsIDAuMDY2MjUsIDAuMDg3NSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxMjUsIDAuMDA2MjUsIDAuMDE4NzUsIDAuMDMxMjUsIDAuMDUzNzUsIDAuMDc1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDI1LCAtMC4wMDYyNSwgMC4wMDYyNSwgMC4wMTg3NSwgMC4wNDEyNSwgMC4wNjI1IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLjAwNjI1LCAwLjAyODc1LCAwLjA1IiwgXAotICAgICAgICAgICItMC4wNjUsIC0wLjA1Mzc1LCAtMC4wMzUsIC0wLjAyMjUsIC0wLjAxLCAwLjAxMjUsIDAuMDMzNzUiLCBcCi0gICAgICAgICAgIi0wLjA4LCAtMC4wNjI1LCAtMC4wNSwgLTAuMDM3NSwgLTAuMDI1LCAtMC4wMDI1LCAwLjAxODc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJTMCI7Ci0gICAgICBzZGZfY29uZCA6ICJTMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNjI1LCAwLjE1MTI1LCAwLjEzMjUsIDAuMTIsIDAuMTA3NSwgMC4wOTEyNSwgMC4wNzYyNSIsIFwKLSAgICAgICAgICAiMC4xNzM3NSwgMC4xNjI1LCAwLjE0Mzc1LCAwLjEzMTI1LCAwLjExODc1LCAwLjEwMjUsIDAuMDg3NSIsIFwKLSAgICAgICAgICAiMC4xODYyNSwgMC4xNzUsIDAuMTU2MjUsIDAuMTQzNzUsIDAuMTMxMjUsIDAuMTE1LCAwLjEiLCBcCi0gICAgICAgICAgIjAuMTk4NzUsIDAuMTg3NSwgMC4xNzUsIDAuMTU2MjUsIDAuMTQzNzUsIDAuMTI3NSwgMC4xMTI1IiwgXAotICAgICAgICAgICIwLjIxNzUsIDAuMiwgMC4xODc1LCAwLjE2ODc1LCAwLjE2MjUsIDAuMTQsIDAuMTMxMjUiLCBcCi0gICAgICAgICAgIjAuMjMzNzUsIDAuMjIyNSwgMC4yMSwgMC4xOTEyNSwgMC4xNzg3NSwgMC4xNjI1LCAwLjE0NzUiLCBcCi0gICAgICAgICAgIjAuMjU1LCAwLjI0Mzc1LCAwLjIyNSwgMC4yMTI1LCAwLjIsIDAuMTgzNzUsIDAuMTY4NzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODc1LCAwLjA3NjI1LCAwLjA2Mzc1LCAwLjA0NSwgMC4wMzI1LCAwLjAwMzc1LCAtMC4wMTc1IiwgXAotICAgICAgICAgICIwLjA5ODc1LCAwLjA4NzUsIDAuMDc1LCAwLjA1NjI1LCAwLjA0Mzc1LCAwLjAxNSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMTExMjUsIDAuMSwgMC4wODc1LCAwLjA2ODc1LCAwLjA1NjI1LCAwLjAyNzUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMTIzNzUsIDAuMTEyNSwgMC4xLCAwLjA4MTI1LCAwLjA2ODc1LCAwLjA0LCAwLjAxODc1IiwgXAotICAgICAgICAgICIwLjEzNjI1LCAwLjEyNSwgMC4xMTI1LCAwLjA5Mzc1LCAwLjA4MTI1LCAwLjA1MjUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMTU4NzUsIDAuMTQ3NSwgMC4xMjg3NSwgMC4xMTYyNSwgMC4wOTc1LCAwLjA3NSwgMC4wNTM3NSIsIFwKLSAgICAgICAgICAiMC4xNzM3NSwgMC4xNjI1LCAwLjE0Mzc1LCAwLjEzMTI1LCAwLjExMjUsIDAuMDksIDAuMDY4NzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFEpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC41MjQ2NTQ7Ci0gICAgZnVuY3Rpb24gOiAiTjMwIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBub25fdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJpc2luZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIxODg4MywgMC4zNDcyOTEsIDAuNDc0NSwgMC41NjUzMTksIDAuNzEwNjgzLCAwLjgzNzg4NiwgMS4wMTk1NCIsIFwKLSAgICAgICAgICAiMC4yMzA4ODEsIDAuMzU5MjkzLCAwLjQ4NjQ3NywgMC41NzczLCAwLjcyMjY5LCAwLjg0OTk2LCAxLjAzMTYzIiwgXAotICAgICAgICAgICIwLjI0NTc5NywgMC4zNzQyMSwgMC41MDEzOTYsIDAuNTkyMjIxLCAwLjczNzYwNCwgMC44NjQ4NzksIDEuMDQ2NTQiLCBcCi0gICAgICAgICAgIjAuMjYxMjc3LCAwLjM4OTcxMSwgMC41MTY4ODMsIDAuNjA3NzA4LCAwLjc1MzA5MiwgMC44ODAzNjMsIDEuMDYyMDMiLCBcCi0gICAgICAgICAgIjAuMjc2Njk5LCAwLjQwNTExLCAwLjUzMjI5OSwgMC42MjMxNjQsIDAuNzY4NTAzLCAwLjg5NTcwNiwgMS4wNzcxNiIsIFwKLSAgICAgICAgICAiMC4zMDA5OSwgMC40Mjk0MDMsIDAuNTU2NjEyLCAwLjY0NzQxMiwgMC43OTI4MDQsIDAuOTIwMDc0LCAxLjEwMTc0IiwgXAotICAgICAgICAgICIwLjMyMjAxMywgMC40NTA0MzIsIDAuNTc3NjM4LCAwLjY2ODQ0MiwgMC44MTM4MzIsIDAuOTQxMDk5LCAxLjEyMjciKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTUwMTcsIDAuMzA4NzA3LCAwLjU2NzU0OCwgMC43NTMwMjIsIDEuMDUwNDMsIDEuMzA5NTgsIDEuNjg0IiwgXAotICAgICAgICAgICIwLjA1NTAzNSwgMC4zMDg2OTksIDAuNTY4OTQ1LCAwLjc1NDYyNCwgMS4wNTA0MSwgMS4zMDk1MywgMS42ODQ0NiIsIFwKLSAgICAgICAgICAiMC4wNTQ5OTcsIDAuMzA5MTExLCAwLjU2ODk0MiwgMC43NTQ2NTgsIDEuMDUwNDIsIDEuMzA5NTMsIDEuNjg0NDkiLCBcCi0gICAgICAgICAgIjAuMDU1MDQxLCAwLjMwOTIxOCwgMC41Njg5NDksIDAuNzU0NjQ1LCAxLjA1MDM4LCAxLjMwOTAyLCAxLjY4NDQ1IiwgXAotICAgICAgICAgICIwLjA1NTAyOCwgMC4zMDg3MDMsIDAuNTY4OTY5LCAwLjc1NDkwMSwgMS4wNTA0MiwgMS4zMDgxNSwgMS42NzkzNyIsIFwKLSAgICAgICAgICAiMC4wNTUwMTYsIDAuMzA4NzAxLCAwLjU2NzU1LCAwLjc1NDYyOSwgMS4wNDg5NywgMS4zMDkzNywgMS42ODQ1MSIsIFwKLSAgICAgICAgICAiMC4wNTUwMTYsIDAuMzA4NzE2LCAwLjU2ODc1MSwgMC43NTQ2NCwgMS4wNTA1MSwgMS4zMDkzMywgMS42ODQwNCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI1NDUwMiwgMC40MDEyODEsIDAuNTQ2ODU1LCAwLjY1MDgzNiwgMC44MTcyMDUsIDAuOTYyODA3LCAxLjE3MDY3IiwgXAotICAgICAgICAgICIwLjI2NjUxMSwgMC40MTMyODIsIDAuNTU4ODU1LCAwLjY2MjgyOCwgMC44MjkxOTcsIDAuOTc0ODEzLCAxLjE4MjY3IiwgXAotICAgICAgICAgICIwLjI4MTU5OSwgMC40MjgzNjgsIDAuNTczOTQxLCAwLjY3NzkxLCAwLjg0NDI3MSwgMC45ODk4NDUsIDEuMTk3NzciLCBcCi0gICAgICAgICAgIjAuMjk3MDIsIDAuNDQzNzksIDAuNTg5MzcyLCAwLjY5MzM0OSwgMC44NTk3MywgMS4wMDUzMSwgMS4yMTMxMSIsIFwKLSAgICAgICAgICAiMC4zMTI0NCwgMC40NTkyMTQsIDAuNjA0NzkxLCAwLjcwODc1NywgMC44NzUyMTIsIDEuMDIwNjksIDEuMjI4NjMiLCBcCi0gICAgICAgICAgIjAuMzM2ODExLCAwLjQ4MzU3OSwgMC42MjkxNTMsIDAuNzMzMTIxLCAwLjg5OTQ4NiwgMS4wNDUwNSwgMS4yNTI5OSIsIFwKLSAgICAgICAgICAiMC4zNTc4OTgsIDAuNTA0NjcsIDAuNjUwMjQ1LCAwLjc1NDIxNSwgMC45MjA1NjcsIDEuMDY2MTUsIDEuMjc0MDgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTg0MjYsIDAuMzQ0NDM2LCAwLjYzNDkxNywgMC44NDAzNSwgMS4xNzA5OSwgMS40NjA3OCwgMS44Nzk2IiwgXAotICAgICAgICAgICIwLjA1ODM5OSwgMC4zNDQzNjgsIDAuNjM0ODcyLCAwLjg0MDkyNywgMS4xNzMxNywgMS40NjA0NiwgMS44Nzk2NCIsIFwKLSAgICAgICAgICAiMC4wNTg0MDksIDAuMzQ0MzYyLCAwLjYzNDg3NCwgMC44NDE0OTEsIDEuMTc0NzUsIDEuNDYyODMsIDEuODc5NTUiLCBcCi0gICAgICAgICAgIjAuMDU4Mzc3LCAwLjM0NDU4NSwgMC42MzQ5NzUsIDAuODQwNiwgMS4xNzEwOSwgMS40NjEyMSwgMS44NzY2OSIsIFwKLSAgICAgICAgICAiMC4wNTgzOTEsIDAuMzQ0Mzc4LCAwLjYzNDg3NCwgMC44NDE1OTQsIDEuMTcxMjQsIDEuNDYyMzksIDEuODc5NDUiLCBcCi0gICAgICAgICAgIjAuMDU4NDA1LCAwLjM0NDM4NywgMC42MzQ4NzIsIDAuODQxNDk1LCAxLjE3MjM3LCAxLjQ2MzU0LCAxLjg3OTQ4IiwgXAotICAgICAgICAgICIwLjA1ODQxMSwgMC4zNDQ0MjEsIDAuNjM0ODcxLCAwLjg0MTMwNiwgMS4xNzMxNCwgMS40NjMxOCwgMS44Nzk1MyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwODU1MSwgMC4wMDg2MywgMC4wMDg2MjYsIDAuMDA4NjIzLCAwLjAwODYxOSwgMC4wMDg2MTcsIDAuMDA4NjE1IiwgXAotICAgICAgICAgICIwLjAwODU0MSwgMC4wMDg2MTksIDAuMDA4NjE2LCAwLjAwODYxMiwgMC4wMDg2MDgsIDAuMDA4NjA3LCAwLjAwODYwMyIsIFwKLSAgICAgICAgICAiMC4wMDg1MjYsIDAuMDA4NjA1LCAwLjAwODYwMiwgMC4wMDg1OTksIDAuMDA4NTk1LCAwLjAwODU5MywgMC4wMDg1OTEiLCBcCi0gICAgICAgICAgIjAuMDA4NTE1LCAwLjAwODU5NSwgMC4wMDg1OTMsIDAuMDA4NTg5LCAwLjAwODU4NSwgMC4wMDg1ODQsIDAuMDA4NTgiLCBcCi0gICAgICAgICAgIjAuMDA4NTA5LCAwLjAwODU4OSwgMC4wMDg1ODYsIDAuMDA4NTgzLCAwLjAwODU3OSwgMC4wMDg1NzgsIDAuMDA4NTczIiwgXAotICAgICAgICAgICIwLjAwODQ5NiwgMC4wMDg1NzYsIDAuMDA4NTc1LCAwLjAwODU3LCAwLjAwODU2OCwgMC4wMDg1NjQsIDAuMDA4NTYxIiwgXAotICAgICAgICAgICIwLjAwODQ5NCwgMC4wMDg1NzUsIDAuMDA4NTc0LCAwLjAwODU3MSwgMC4wMDg1NjYsIDAuMDA4NTY1LCAwLjAwODU2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDg4NzEsIDAuMDA5MDAzLCAwLjAwOTAxOSwgMC4wMDkwMjQsIDAuMDA5MDI5LCAwLjAwOTAzMSwgMC4wMDkwMzMiLCBcCi0gICAgICAgICAgIjAuMDA4ODYyLCAwLjAwODk5LCAwLjAwOTAwNiwgMC4wMDkwMTEsIDAuMDA5MDE1LCAwLjAwOTAxNiwgMC4wMDkwMTkiLCBcCi0gICAgICAgICAgIjAuMDA4ODUyLCAwLjAwODk3OSwgMC4wMDg5OTYsIDAuMDA5LCAwLjAwOTAwNSwgMC4wMDkwMDcsIDAuMDA5MDA5IiwgXAotICAgICAgICAgICIwLjAwODgzOSwgMC4wMDg5NywgMC4wMDg5ODYsIDAuMDA4OTkxLCAwLjAwODk5NSwgMC4wMDg5OTcsIDAuMDA5IiwgXAotICAgICAgICAgICIwLjAwODgzNiwgMC4wMDg5NjcsIDAuMDA4OTg0LCAwLjAwODk4OCwgMC4wMDg5OTMsIDAuMDA4OTk1LCAwLjAwODk5NyIsIFwKLSAgICAgICAgICAiMC4wMDg4MzQsIDAuMDA4OTY1LCAwLjAwODk4MiwgMC4wMDg5ODcsIDAuMDA4OTkxLCAwLjAwODk5MywgMC4wMDg5OTUiLCBcCi0gICAgICAgICAgIjAuMDA4ODM5LCAwLjAwODk3LCAwLjAwODk4NywgMC4wMDg5OTIsIDAuMDA4OTk2LCAwLjAwODk5OCwgMC4wMDkiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFMwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE1MTgxNTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE1MTc1MTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE1MTgxNTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDQ0OTEsIDAuMDA0NDg5LCAwLjAwNDQ4MiwgMC4wMDQ0NzYsIDAuMDA0NDcyLCAwLjAwNDQ2NiwgMC4wMDQ0NjMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDU1NDIsIDAuMDA1NTE3LCAwLjAwNTQ5NywgMC4wMDU0ODYsIDAuMDA1NDc2LCAwLjAwNTQ2NywgMC4wMDU0NjQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUQwJkQxIjsKLSAgICAgIHNkZl9jb25kIDogIkQwX0VRXzBfQU5fRDFfRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wODc1LCAtMC4wNzYyNSwgLTAuMDYzNzUsIC0wLjA1MTI1LCAtMC4wMzg3NSwgLTAuMDIyNSwgLTAuMDA3NSIsIFwKLSAgICAgICAgICAiLTAuMDkyNSwgLTAuMDg3NSwgLTAuMDc1LCAtMC4wNjI1LCAtMC4wNSwgLTAuMDMzNzUsIC0wLjAxODc1IiwgXAotICAgICAgICAgICItMC4xMTEyNSwgLTAuMSwgLTAuMDg3NSwgLTAuMDc1LCAtMC4wNjI1LCAtMC4wNDYyNSwgLTAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjEyMzc1LCAtMC4xMTI1LCAtMC4xLCAtMC4wODc1LCAtMC4wNzUsIC0wLjA1ODc1LCAtMC4wNSIsIFwKLSAgICAgICAgICAiLTAuMTM2MjUsIC0wLjEyNSwgLTAuMTEyNSwgLTAuMSwgLTAuMDg3NSwgLTAuMDcxMjUsIC0wLjA2MjUiLCBcCi0gICAgICAgICAgIi0wLjE1ODc1LCAtMC4xNDc1LCAtMC4xMzUsIC0wLjEyMjUsIC0wLjExLCAtMC4wOTM3NSwgLTAuMDc4NzUiLCBcCi0gICAgICAgICAgIi0wLjE3Mzc1LCAtMC4xNjI1LCAtMC4xNSwgLTAuMTQzNzUsIC0wLjEzMTI1LCAtMC4xMTUsIC0wLjEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMjUsIDAuMDIzNzUsIDAuMDQyNSwgMC4wNTUsIDAuMDY3NSwgMC4wOSwgMC4xMTEyNSIsIFwKLSAgICAgICAgICAiMC4wMDEyNSwgMC4wMTI1LCAwLjAzMTI1LCAwLjA0Mzc1LCAwLjA1NjI1LCAwLjA3ODc1LCAwLjEiLCBcCi0gICAgICAgICAgIi0wLjAwNSwgMC4wMDYyNSwgMC4wMTg3NSwgMC4wMzEyNSwgMC4wNDM3NSwgMC4wNzI1LCAwLjA4NzUiLCBcCi0gICAgICAgICAgIi0wLjAxNzUsIC0wLjAwNjI1LCAwLjAwNjI1LCAwLjAxODc1LCAwLjAzMTI1LCAwLjA2LCAwLjA3NSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAxODc1LCAtMC4wMDYyNSwgMC4wMDYyNSwgMC4wMjUsIDAuMDQ3NSwgMC4wNjI1IiwgXAotICAgICAgICAgICItMC4wNDYyNSwgLTAuMDM1LCAtMC4wMjI1LCAtMC4wMSwgMC4wMDI1LCAwLjAyNSwgMC4wNDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDYxMjUsIC0wLjA1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAxMjUsIDAuMDEsIDAuMDMxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiRDAmIUQxIjsKLSAgICAgIHNkZl9jb25kIDogIkQwX0VRXzFfQU5fRDFfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMjUsIC0wLjAwNzUsIDAuMDA1LCAwLjAxNzUsIDAuMDMsIDAuMDU4NzUsIDAuMDczNzUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMjUsIC0wLjAwNjI1LCAwLjAwNjI1LCAwLjAxODc1LCAwLjA0MTI1LCAwLjA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAwNjI1LCAwLjAwNjI1LCAwLjAyODc1LCAwLjA1IiwgXAotICAgICAgICAgICItMC4wNjEyNSwgLTAuMDUsIC0wLjAzNzUsIC0wLjAyNSwgLTAuMDEyNSwgMC4wMTYyNSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDgsIC0wLjA2ODc1LCAtMC4wNSwgLTAuMDM3NSwgLTAuMDI1LCAtMC4wMDI1LCAwLjAxODc1IiwgXAotICAgICAgICAgICItMC4xMDI1LCAtMC4wOTEyNSwgLTAuMDcyNSwgLTAuMDYsIC0wLjA0NzUsIC0wLjAyNSwgLTAuMDAzNzUiLCBcCi0gICAgICAgICAgIi0wLjExNzUsIC0wLjEwNjI1LCAtMC4wOTM3NSwgLTAuMDc1LCAtMC4wNjI1LCAtMC4wNCwgLTAuMDE4NzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4xMTg3NSwgLTAuMTA3NSwgLTAuMDk1LCAtMC4wODI1LCAtMC4wNzYyNSwgLTAuMDYsIC0wLjA0NSIsIFwKLSAgICAgICAgICAiLTAuMTMsIC0wLjExODc1LCAtMC4xMDYyNSwgLTAuMSwgLTAuMDg3NSwgLTAuMDcxMjUsIC0wLjA1NjI1IiwgXAotICAgICAgICAgICItMC4xNDI1LCAtMC4xMzc1LCAtMC4xMjUsIC0wLjExMjUsIC0wLjEsIC0wLjA4Mzc1LCAtMC4wNjg3NSIsIFwKLSAgICAgICAgICAiLTAuMTYxMjUsIC0wLjE1LCAtMC4xMzc1LCAtMC4xMjUsIC0wLjExMjUsIC0wLjA5NjI1LCAtMC4wODc1IiwgXAotICAgICAgICAgICItMC4xNzM3NSwgLTAuMTYyNSwgLTAuMTUsIC0wLjEzNzUsIC0wLjEyNSwgLTAuMTA4NzUsIC0wLjEiLCBcCi0gICAgICAgICAgIi0wLjE5LCAtMC4xODUsIC0wLjE3MjUsIC0wLjE2LCAtMC4xNDc1LCAtMC4xMzEyNSwgLTAuMTE2MjUiLCBcCi0gICAgICAgICAgIi0wLjIwNSwgLTAuMTkzNzUsIC0wLjE4MTI1LCAtMC4xNzUsIC0wLjE2MjUsIC0wLjE0NjI1LCAtMC4xMzEyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUQwJkQxIjsKLSAgICAgIHNkZl9jb25kIDogIkQwX0VRXzBfQU5fRDFfRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNSwgMC4xMzg3NSwgMC4xMiwgMC4xMDc1LCAwLjA5NSwgMC4wNzg3NSwgMC4wNjM3NSIsIFwKLSAgICAgICAgICAiMC4xNjEyNSwgMC4xNSwgMC4xMzEyNSwgMC4xMTg3NSwgMC4xMDYyNSwgMC4wOSwgMC4wNzUiLCBcCi0gICAgICAgICAgIjAuMTczNzUsIDAuMTYyNSwgMC4xNDM3NSwgMC4xMzEyNSwgMC4xMTg3NSwgMC4xMDI1LCAwLjA4NzUiLCBcCi0gICAgICAgICAgIjAuMTg2MjUsIDAuMTc1LCAwLjE1NjI1LCAwLjE0Mzc1LCAwLjEzMTI1LCAwLjExNSwgMC4xIiwgXAotICAgICAgICAgICIwLjE5ODc1LCAwLjE4NzUsIDAuMTc1LCAwLjE1NjI1LCAwLjE0Mzc1LCAwLjEyNzUsIDAuMTEyNSIsIFwKLSAgICAgICAgICAiMC4yMjEyNSwgMC4yMSwgMC4xOTEyNSwgMC4xNzg3NSwgMC4xNjYyNSwgMC4xNSwgMC4xMzUiLCBcCi0gICAgICAgICAgIjAuMjQyNSwgMC4yMzEyNSwgMC4yMTI1LCAwLjIsIDAuMTg3NSwgMC4xNzEyNSwgMC4xNTYyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3NSwgMC4wNjM3NSwgMC4wNTEyNSwgMC4wMzI1LCAwLjAxMzc1LCAtMC4wMDg3NSwgLTAuMDMiLCBcCi0gICAgICAgICAgIjAuMDg2MjUsIDAuMDc1LCAwLjA1NjI1LCAwLjA0Mzc1LCAwLjAyNSwgMC4wMDI1LCAtMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4wOTg3NSwgMC4wODc1LCAwLjA2ODc1LCAwLjA1NjI1LCAwLjAzNzUsIDAuMDE1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiMC4xMTEyNSwgMC4xLCAwLjA4NzUsIDAuMDY4NzUsIDAuMDUsIDAuMDI3NSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiMC4xMjM3NSwgMC4xMTI1LCAwLjEsIDAuMDgxMjUsIDAuMDY4NzUsIDAuMDQsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMTQ2MjUsIDAuMTM1LCAwLjExNjI1LCAwLjEwMzc1LCAwLjA4NSwgMC4wNjI1LCAwLjA0MTI1IiwgXAotICAgICAgICAgICIwLjE2NzUsIDAuMTUsIDAuMTM3NSwgMC4xMTg3NSwgMC4xMDYyNSwgMC4wNzc1LCAwLjA2MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIkQwJiFEMSI7Ci0gICAgICBzZGZfY29uZCA6ICJEMF9FUV8xX0FOX0QxX0VRXzAgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTEyNSwgMC4xMDEyNSwgMC4wODg3NSwgMC4wNywgMC4wNTEyNSwgMC4wMjg3NSwgMC4wMDc1IiwgXAotICAgICAgICAgICIwLjEyMzc1LCAwLjExMjUsIDAuMSwgMC4wODEyNSwgMC4wNjg3NSwgMC4wNCwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4xNDI1LCAwLjEzMTI1LCAwLjExMjUsIDAuMDkzNzUsIDAuMDgxMjUsIDAuMDU4NzUsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiMC4xNTUsIDAuMTQzNzUsIDAuMTMxMjUsIDAuMTEyNSwgMC4wOTM3NSwgMC4wNzEyNSwgMC4wNSIsIFwKLSAgICAgICAgICAiMC4xNzM3NSwgMC4xNTYyNSwgMC4xNDM3NSwgMC4xMjUsIDAuMTEyNSwgMC4wODM3NSwgMC4wNjg3NSIsIFwKLSAgICAgICAgICAiMC4xOSwgMC4xNzg3NSwgMC4xNjYyNSwgMC4xNDc1LCAwLjEzNSwgMC4xMDYyNSwgMC4wODUiLCBcCi0gICAgICAgICAgIjAuMjExMjUsIDAuMiwgMC4xODEyNSwgMC4xNjI1LCAwLjE1LCAwLjEyNzUsIDAuMTA2MjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xODc1LCAwLjE3LCAwLjE1NzUsIDAuMTQ1LCAwLjEzMjUsIDAuMTEsIDAuMTAxMjUiLCBcCi0gICAgICAgICAgIjAuMTk4NzUsIDAuMTgxMjUsIDAuMTY4NzUsIDAuMTU2MjUsIDAuMTQzNzUsIDAuMTI3NSwgMC4xMTI1IiwgXAotICAgICAgICAgICIwLjIxMTI1LCAwLjIsIDAuMTgxMjUsIDAuMTY4NzUsIDAuMTU2MjUsIDAuMTQsIDAuMTI1IiwgXAotICAgICAgICAgICIwLjIyMzc1LCAwLjIxMjUsIDAuMiwgMC4xODEyNSwgMC4xNjg3NSwgMC4xNTI1LCAwLjEzNzUiLCBcCi0gICAgICAgICAgIjAuMjM2MjUsIDAuMjI1LCAwLjIxMjUsIDAuMTkzNzUsIDAuMTgxMjUsIDAuMTY1LCAwLjE1NjI1IiwgXAotICAgICAgICAgICIwLjI1ODc1LCAwLjI0NzUsIDAuMjI4NzUsIDAuMjE2MjUsIDAuMjAzNzUsIDAuMTg3NSwgMC4xNzI1IiwgXAotICAgICAgICAgICIwLjI3Mzc1LCAwLjI2MjUsIDAuMjQzNzUsIDAuMjMxMjUsIDAuMjE4NzUsIDAuMjAyNSwgMC4xODc1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IE1YNFgxICoKLSAqIC0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChNWDRYMSkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjE5Nzk3NjsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNTkzNTAyOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDU5MTc2MTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA1OTM1MDI7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNzE1LCAwLjAwMDcwNCwgMC4wMDA2OTgsIDAuMDAwNjk0LCAwLjAwMDY5MSwgMC4wMDA2ODcsIDAuMDAwNjg1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxOTQ3LCAwLjAwMTk0MSwgMC4wMDE5MzgsIDAuMDAxOTM2LCAwLjAwMTkzNCwgMC4wMDE5MzMsIDAuMDAxOTMyIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA1NTk4NzE7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNTU3ODY1OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDU1OTg3MTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxNTksIDAuMDAwMTYxLCAwLjAwMDE2MSwgMC4wMDAxNjIsIDAuMDAwMTYyLCAwLjAwMDE2MiwgMC4wMDAxNjIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxNjgsIDAuMDAwMTY2LCAwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiwgMC4wMDAxNjYiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEMpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDU4Mjg1OTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA1ODA3MDg7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNTgyODU5OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDc2MywgMC4wMDA3NTIsIDAuMDAwNzQ1LCAwLjAwMDc0MSwgMC4wMDA3MzgsIDAuMDAwNzM1LCAwLjAwMDczMiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTcxNCwgMC4wMDE3MDgsIDAuMDAxNzA1LCAwLjAwMTcwMywgMC4wMDE3MDEsIDAuMDAxNywgMC4wMDE2OTkiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEQpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYxOTkwOTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MTgwNjU7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjE5OTA5OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDE1OSwgMC4wMDAxNjEsIDAuMDAwMTYxLCAwLjAwMDE2MiwgMC4wMDAxNjIsIDAuMDAwMTYyLCAwLjAwMDE2MiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDE2OSwgMC4wMDAxNjcsIDAuMDAwMTY2LCAwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUzApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTg5ODQ2OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTg5NzYyOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTg5ODQ2OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDI5NSwgMC4wMDAyODEsIDAuMDAwMjcxLCAwLjAwMDI2NSwgMC4wMDAyNjMsIDAuMDAwMjYxLCAwLjAwMDI2MiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjUyLCAwLjAwMjUxMSwgMC4wMDI1MDMsIDAuMDAyNSwgMC4wMDI0OTgsIDAuMDAyNDk2LCAwLjAwMjQ5NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUzEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTA2NTQyOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTA2NTAxOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTA2NTQyOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDA5NCwgMC4wMDAwNzUsIDAuMDAwMDY2LCAwLjAwMDA2MiwgMC4wMDAwNiwgMC4wMDAwNiwgMC4wMDAwNTgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDE1OCwgMC4wMDE1NjksIDAuMDAxNTYyLCAwLjAwMTU1OCwgMC4wMDE1NTYsIDAuMDAxNTU0LCAwLjAwMTU1NCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjExOTU5OwotICAgIGZ1bmN0aW9uIDogIigoUzEgKChTMCBEKSArICghUzAgQykpKSArICghUzEgKChTMCBCKSArICghUzAgQSkpKSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMzOTM0NywgMC4zODY3ODgsIDAuNjMzMTM1LCAwLjg0NzQ2MSwgMS4xMzMxOCwgMS43MDQxMiwgMi4wNjA4OSIsIFwKLSAgICAgICAgICAiMC4zNTEwMzIsIDAuMzk4Mjk1LCAwLjY0NDc5NiwgMC44NTkxMywgMS4xNDQ4NywgMS43MTU3NSwgMi4wNzI3MSIsIFwKLSAgICAgICAgICAiMC4zNjQ5MzYsIDAuNDEyMzIsIDAuNjU4Njc0LCAwLjg3Mjk4NiwgMS4xNTg3MiwgMS43Mjk2MiwgMi4wODY1OCIsIFwKLSAgICAgICAgICAiMC4zNzg1OTIsIDAuNDI1OTk3LCAwLjY3MjM1MSwgMC44ODY2NjgsIDEuMTcyNCwgMS43NDMzLCAyLjEwMDI2IiwgXAotICAgICAgICAgICIwLjM5MjM0LCAwLjQzOTYwNCwgMC42ODYwMTksIDAuOTAwMzU1LCAxLjE4NjAxLCAxLjc1NzEyLCAyLjExMzg0IiwgXAotICAgICAgICAgICIwLjQxNDE2NSwgMC40NjE0NjcsIDAuNzA3ODA0LCAwLjkyMjE0MSwgMS4yMDc3NSwgMS43Nzg4MSwgMi4xMzU3NyIsIFwKLSAgICAgICAgICAiMC40MzM0MDQsIDAuNDgwODQxLCAwLjcyNzIwMywgMC45NDE1MTcsIDEuMjI3MjYsIDEuNzk4MTYsIDIuMTU1MSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xOTE4ODgsIDAuMjczMzQyLCAwLjc1MTQxLCAxLjE4MDE1LCAxLjc2MjQsIDIuOTE4NDgsIDMuNjQ5MzkiLCBcCi0gICAgICAgICAgIjAuMTkxODkyLCAwLjI3MzIyMiwgMC43NTEzODksIDEuMTgwNDMsIDEuNzYyNCwgMi45MjI3MywgMy42NDE5NCIsIFwKLSAgICAgICAgICAiMC4xOTE4MDcsIDAuMjczMzc0LCAwLjc1MTM1NCwgMS4xODI3MSwgMS43NjIzNiwgMi45MTc5NiwgMy42NDIyNyIsIFwKLSAgICAgICAgICAiMC4xOTE5MjIsIDAuMjczMzUzLCAwLjc1MTM1NSwgMS4xODI3NCwgMS43NjIzNSwgMi45MTc5NywgMy42NDIxNiIsIFwKLSAgICAgICAgICAiMC4xOTE5MzUsIDAuMjczMjgzLCAwLjc1MTMzNSwgMS4xODExOCwgMS43NjE5OCwgMi45MTY4NywgMy42NDMxNCIsIFwKLSAgICAgICAgICAiMC4xOTE5NDksIDAuMjczMzAzLCAwLjc1MTI4MywgMS4xODA5MSwgMS43NTg4LCAyLjkyMzIsIDMuNjUwNTUiLCBcCi0gICAgICAgICAgIjAuMTkxOTMzLCAwLjI3MzM3MiwgMC43NTEyODEsIDEuMTgyNDcsIDEuNzYyMzQsIDIuOTIxMjMsIDMuNjQxOTciKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzI0NjY2LCAwLjM3ODUyNSwgMC42NjE2MywgMC45MDg3MzMsIDEuMjM4MTIsIDEuODk2NDYsIDIuMzA4MDIiLCBcCi0gICAgICAgICAgIjAuMzM2Mzc4LCAwLjM4OTk4LCAwLjY3MzA2NywgMC45MjAxODksIDEuMjQ5NTcsIDEuOTA3OTIsIDIuMzE5NDkiLCBcCi0gICAgICAgICAgIjAuMzQ5NTQ5LCAwLjQwMzE1LCAwLjY4NjI3MiwgMC45MzMzNywgMS4yNjI3MiwgMS45MjExMiwgMi4zMzI2NiIsIFwKLSAgICAgICAgICAiMC4zNjIwNzcsIDAuNDE1NjM5LCAwLjY5ODgwMywgMC45NDU4NTgsIDEuMjc1MjUsIDEuOTMzNjUsIDIuMzQ1MDIiLCBcCi0gICAgICAgICAgIjAuMzc0NTA5LCAwLjQyODA2NywgMC43MTExOTEsIDAuOTU4MywgMS4yODc2OCwgMS45NDYwMiwgMi4zNTc1OSIsIFwKLSAgICAgICAgICAiMC4zOTQxMDIsIDAuNDQ3NzAzLCAwLjczMDgyNSwgMC45Nzc4NjQsIDEuMzA3MjgsIDEuOTY1NjYsIDIuMzc3MjMiLCBcCi0gICAgICAgICAgIjAuNDExMTE1LCAwLjQ2NDcwNiwgMC43NDc4NDYsIDAuOTk0OTMzLCAxLjMyNDMxLCAxLjk4MjY4LCAyLjM5NDI2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIxMDQ0MSwgMC4zMDI2ODIsIDAuODQzOTc0LCAxLjMyOTg3LCAxLjk4NjIsIDMuMjg3NTgsIDQuMTAyODciLCBcCi0gICAgICAgICAgIjAuMjEwNjAxLCAwLjMwMjcxOCwgMC44NDMxMjYsIDEuMzMwMzUsIDEuOTg2MTgsIDMuMjg3OTcsIDQuMTA1NTkiLCBcCi0gICAgICAgICAgIjAuMjEwNTUsIDAuMzAyODksIDAuODQzOTc3LCAxLjMyOTI5LCAxLjk4NjAyLCAzLjI4OTk2LCA0LjEwNTM1IiwgXAotICAgICAgICAgICIwLjIxMDU1LCAwLjMwMjY5MSwgMC44NDM5ODIsIDEuMzMxOTMsIDEuOTg2LCAzLjI5MDgzLCA0LjExMDEzIiwgXAotICAgICAgICAgICIwLjIxMDYwNywgMC4zMDI3MTMsIDAuODQzOTY3LCAxLjMzMDE0LCAxLjk4NjI2LCAzLjI4NzQ1LCA0LjEwMzIxIiwgXAotICAgICAgICAgICIwLjIxMDU1NywgMC4zMDI4MjYsIDAuODQzOTU3LCAxLjMzMTcsIDEuOTg2MTMsIDMuMjg4NjQsIDQuMTA4OSIsIFwKLSAgICAgICAgICAiMC4yMTA1NTksIDAuMzAyODI3LCAwLjg0Mzk1NSwgMS4zMzAzOSwgMS45ODYxNiwgMy4yODgzNiwgNC4xMDg5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjM0MDA1LCAwLjM4NzM3LCAwLjYzMzg5OSwgMC44NDgyOTUsIDEuMTM0MDYsIDEuNzA1MDEsIDIuMDYyMTciLCBcCi0gICAgICAgICAgIjAuMzUxNzMyLCAwLjM5OTE0OSwgMC42NDU1NzksIDAuODU5OTQxLCAxLjE0NTcxLCAxLjcxNjY3LCAyLjA3MzgxIiwgXAotICAgICAgICAgICIwLjM2NTU0MywgMC40MTMwMTQsIDAuNjU5NDQ1LCAwLjg3Mzc4OSwgMS4xNTk1OCwgMS43MzA1MiwgMi4wODc2OCIsIFwKLSAgICAgICAgICAiMC4zNzkzNzcsIDAuNDI2NzY5LCAwLjY3MzIwMywgMC44ODc1NjMsIDEuMTczMzMsIDEuNzQ0MjgsIDIuMTAxMjYiLCBcCi0gICAgICAgICAgIjAuMzkzMjEsIDAuNDQwNTIsIDAuNjg2OTQyLCAwLjkwMTMyLCAxLjE4Njk3LCAxLjc1ODA2LCAyLjExNTAxIiwgXAotICAgICAgICAgICIwLjQxNTE3NywgMC40NjI0NDgsIDAuNzA4OTE3LCAwLjkyMzI5NSwgMS4yMDg5MiwgMS43ODAxMiwgMi4xMzY4OCIsIFwKLSAgICAgICAgICAiMC40MzQyMDksIDAuNDgxNjYzLCAwLjcyODE4NCwgMC45NDI1MzcsIDEuMjI4MzIsIDEuNzk5MjcsIDIuMTU2MjQiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTkxOTkyLCAwLjI3MzQxMywgMC43NTE1NjEsIDEuMTgwNjcsIDEuNzYyNjYsIDIuOTIxOTksIDMuNjQxMTEiLCBcCi0gICAgICAgICAgIjAuMTkxODU4LCAwLjI3MzQ1NSwgMC43NTE1MjIsIDEuMTgyOTUsIDEuNzYyNTcsIDIuOTE4MzEsIDMuNjQwOTEiLCBcCi0gICAgICAgICAgIjAuMTkyMDM1LCAwLjI3MzQ4OSwgMC43NTE1MzQsIDEuMTgyODMsIDEuNzYyNTcsIDIuOTIxMTgsIDMuNjQwODkiLCBcCi0gICAgICAgICAgIjAuMTkyMDcsIDAuMjczNDcsIDAuNzUxNTExLCAxLjE4MjkyLCAxLjc2MjU2LCAyLjkxODE5LCAzLjY0MjQ0IiwgXAotICAgICAgICAgICIwLjE5MjAyMSwgMC4yNzM0MTksIDAuNzUxNDQ5LCAxLjE4MTE4LCAxLjc1ODk4LCAyLjkyMzM0LCAzLjY1MDM3IiwgXAotICAgICAgICAgICIwLjE5MjAzMiwgMC4yNzMzMTksIDAuNzUxNDQ4LCAxLjE4MTE0LCAxLjc2MTY5LCAyLjkyMzgsIDMuNjQzOCIsIFwKLSAgICAgICAgICAiMC4xOTIwMjIsIDAuMjczNTA3LCAwLjc1MTQ0NywgMS4xODI2NSwgMS43NjI1NiwgMi45MjE0MSwgMy42NDIyNyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMjczNTIsIDAuMzgwOTg4LCAwLjY2NDEyOSwgMC45MTEyMDksIDEuMjQwNiwgMS44OTg5MywgMi4zMTA1IiwgXAotICAgICAgICAgICIwLjMzODkzOCwgMC4zOTI1MywgMC42NzU2NiwgMC45MjI3NjQsIDEuMjUyMTQsIDEuOTEwNDcsIDIuMzIyMDMiLCBcCi0gICAgICAgICAgIjAuMzUyMTYzLCAwLjQwNTc4MywgMC42ODg5MzksIDAuOTM2MDIyLCAxLjI2NTM2LCAxLjkyMzc1LCAyLjMzNTI4IiwgXAotICAgICAgICAgICIwLjM2NDcyOSwgMC40MTgzNjQsIDAuNzAxNTE5LCAwLjk0ODU4OCwgMS4yNzc5NiwgMS45MzYzLCAyLjM0Nzg2IiwgXAotICAgICAgICAgICIwLjM3NzA4OCwgMC40MzA2NDYsIDAuNzEzODM1LCAwLjk2MDkzMywgMS4yOTAzMSwgMS45NDg2NCwgMi4zNjAyIiwgXAotICAgICAgICAgICIwLjM5NjcsIDAuNDUwMzE2LCAwLjczMzQ2NywgMC45ODA1MjQsIDEuMzA5OTEsIDEuOTY4MjgsIDIuMzc5ODQiLCBcCi0gICAgICAgICAgIjAuNDEzNTY1LCAwLjQ2NzE4NywgMC43NTAzNzgsIDAuOTk3NDY2LCAxLjMyNjg2LCAxLjk4NTM5LCAyLjM5NjgxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIxMDc4OCwgMC4zMDI4MjksIDAuODQ0MDM2LCAxLjMzMDIsIDEuOTg2MTQsIDMuMjk1ODIsIDQuMTA0MDkiLCBcCi0gICAgICAgICAgIjAuMjEwNjQsIDAuMzAyODQ4LCAwLjg0NDAyMywgMS4zMzAwMiwgMS45ODYyNywgMy4yODc4MSwgNC4xMDMwNiIsIFwKLSAgICAgICAgICAiMC4yMTA2OTYsIDAuMzAzMDE5LCAwLjg0NDAxNywgMS4zMjg2MiwgMS45ODU5NSwgMy4yODk1MiwgNC4xMDk3MSIsIFwKLSAgICAgICAgICAiMC4yMTA3NDgsIDAuMzAyODAxLCAwLjg0MjAzOCwgMS4zMzAzMSwgMS45ODYxOSwgMy4yODc2NywgNC4xMDM3NSIsIFwKLSAgICAgICAgICAiMC4yMTA3MjYsIDAuMzAyODE3LCAwLjg0Mzk4MywgMS4zMzAyMywgMS45ODYyNCwgMy4yODc0LCA0LjEwMzEyIiwgXAotICAgICAgICAgICIwLjIxMDY5NiwgMC4zMDI5MzEsIDAuODQzOTkyLCAxLjMzMjEsIDEuOTg2MDYsIDMuMjg4NzcsIDQuMTA3ODMiLCBcCi0gICAgICAgICAgIjAuMjEwNzIzLCAwLjMwMzA1OCwgMC44NDQwMzUsIDEuMzI4MzQsIDEuOTg2MzgsIDMuMjk1ODcsIDQuMTA5NiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMzA1MzEsIDAuMzc3NTM1LCAwLjYyMzcwMiwgMC44MzgwNzcsIDEuMTIzODQsIDEuNjk0OTYsIDIuMDUxNjgiLCBcCi0gICAgICAgICAgIjAuMzQxOTc2LCAwLjM4ODk4NCwgMC42MzUxNzksIDAuODQ5NTQ4LCAxLjEzNTM0LCAxLjcwNjMxLCAyLjA2MzIiLCBcCi0gICAgICAgICAgIjAuMzU1NTgzLCAwLjQwMjYyOSwgMC42NDg5MDgsIDAuODYzMjg5LCAxLjE0OTA2LCAxLjcyMDAxLCAyLjA3NzE1IiwgXAotICAgICAgICAgICIwLjM2OTI4LCAwLjQxNjM0MiwgMC42NjI0NjMsIDAuODc2ODY3LCAxLjE2MjU4LCAxLjczMzU3LCAyLjA5MDM3IiwgXAotICAgICAgICAgICIwLjM4Mjc0LCAwLjQyOTgwNywgMC42NzYwNjcsIDAuODkwNDM1LCAxLjE3NjIzLCAxLjc0NzE0LCAyLjEwNDA4IiwgXAotICAgICAgICAgICIwLjQwNDU4MSwgMC40NTE3NzYsIDAuNjk3OTExLCAwLjkxMjI1NywgMS4xOTgwNCwgMS43NjksIDIuMTI2MTIiLCBcCi0gICAgICAgICAgIjAuNDIzODIzLCAwLjQ3MTAxNywgMC43MTcxNTcsIDAuOTMxNTAyLCAxLjIxNzI4LCAxLjc4ODI1LCAyLjE0NTM3Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE5MDk2MiwgMC4yNzIzMDUsIDAuNzUxMDc1LCAxLjE3OTkyLCAxLjc2MjQ5LCAyLjkyNDQ2LCAzLjY0OTY3IiwgXAotICAgICAgICAgICIwLjE5MDk0NiwgMC4yNzIzMDksIDAuNzUxMDU2LCAxLjE4MTA4LCAxLjc2MTU0LCAyLjkyMzQ4LCAzLjY0Mzg1IiwgXAotICAgICAgICAgICIwLjE5MDkxNiwgMC4yNzIyNTUsIDAuNzQ5NzE4LCAxLjE4MDA3LCAxLjc2MjM5LCAyLjkxODI1LCAzLjY0MTA4IiwgXAotICAgICAgICAgICIwLjE5MDk5LCAwLjI3MjMyOCwgMC43NTA5NTYsIDEuMTgyODgsIDEuNzYyMzIsIDIuOTE4NzEsIDMuNjQ5MSIsIFwKLSAgICAgICAgICAiMC4xOTA5ODYsIDAuMjcyMjk3LCAwLjc1MTA2NywgMS4xODExNCwgMS43NTc0MywgMi45MjI4NSwgMy42NDEzMiIsIFwKLSAgICAgICAgICAiMC4xOTA4NTYsIDAuMjcyMzIzLCAwLjc1MDg0OCwgMS4xODIyNywgMS43NjIzMywgMi45MTgyOSwgMy42NDE2MyIsIFwKLSAgICAgICAgICAiMC4xOTA5MDYsIDAuMjcyMzU1LCAwLjc1MDk0NywgMS4xODIyNywgMS43NjIzNCwgMi45MTgyMiwgMy42NDIwMiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMTc4MTYsIDAuMzcxMTEsIDAuNjU0MDE2LCAwLjkwMTA2OCwgMS4yMzA0MywgMS44ODg3MiwgMi4zMDAyNSIsIFwKLSAgICAgICAgICAiMC4zMjk0MSwgMC4zODI3MDksIDAuNjY1NjEzLCAwLjkxMjY2NywgMS4yNDIwMiwgMS45MDAzMSwgMi4zMTE4NiIsIFwKLSAgICAgICAgICAiMC4zNDI3NzQsIDAuMzk2MTIxLCAwLjY3ODkzNiwgMC45MjU5MzcsIDEuMjU1MywgMS45MTM2NywgMi4zMjU0IiwgXAotICAgICAgICAgICIwLjM1NTQ2OCwgMC40MDg3ODMsIDAuNjkxNjMzLCAwLjkzODcxOSwgMS4yNjgwNiwgMS45MjYzNywgMi4zMzc5MiIsIFwKLSAgICAgICAgICAiMC4zNjc4NzIsIDAuNDIxMTc0LCAwLjcwNDAzLCAwLjk1MTExNSwgMS4yODA0NiwgMS45Mzg3NywgMi4zNTAzMyIsIFwKLSAgICAgICAgICAiMC4zODc1NTEsIDAuNDQwODgzLCAwLjcyMzc0MSwgMC45NzA3NTYsIDEuMzAwMTEsIDEuOTU4NTEsIDIuMzcwMDQiLCBcCi0gICAgICAgICAgIjAuNDA0NTI5LCAwLjQ1Nzg0MiwgMC43NDA3MzQsIDAuOTg3Nzk2LCAxLjMxNzI3LCAxLjk3NTQ0LCAyLjM4NzIyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIwOTQwNiwgMC4zMDE1MjcsIDAuODQzNDc5LCAxLjMyODQ0LCAxLjk4NTg4LCAzLjI4ODcxLCA0LjEwMzE3IiwgXAotICAgICAgICAgICIwLjIwOTQxLCAwLjMwMTUzLCAwLjg0MzQ4LCAxLjMyOTE0LCAxLjk4NTk4LCAzLjI4ODIsIDQuMTAyMjkiLCBcCi0gICAgICAgICAgIjAuMjA5NDAyLCAwLjMwMTY3MSwgMC44NDM0NCwgMS4zMzE0OCwgMS45ODU2OCwgMy4yOTA2NywgNC4xMDg0OSIsIFwKLSAgICAgICAgICAiMC4yMDk0MDQsIDAuMzAxNjksIDAuODQzNDQ3LCAxLjMyOTcyLCAxLjk4NTg3LCAzLjI4NzUsIDQuMTAzMzUiLCBcCi0gICAgICAgICAgIjAuMjA5NDA4LCAwLjMwMTczNywgMC44NDM0MzgsIDEuMzI5NzUsIDEuOTg1ODksIDMuMjg3NDYsIDQuMTAzNTYiLCBcCi0gICAgICAgICAgIjAuMjA5NDIyLCAwLjMwMTU5NSwgMC44NDM0NTgsIDEuMzI4NDIsIDEuOTg1NjUsIDMuMjkyNzQsIDQuMTA4NjkiLCBcCi0gICAgICAgICAgIjAuMjA5NDMzLCAwLjMwMTYyMywgMC44NDM0NTQsIDEuMzI3NjQsIDEuOTc4MTQsIDMuMjk2MjUsIDQuMTAwMTMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzI3MjM1LCAwLjM3NDQwNywgMC42MjA0MSwgMC44MzQ2OTEsIDEuMTIwNDIsIDEuNjkxMzQsIDIuMDQ4NDIiLCBcCi0gICAgICAgICAgIjAuMzM4ODUsIDAuMzg2MDMyLCAwLjYzMjAyOSwgMC44NDYzNjksIDEuMTMyMDUsIDEuNzAyOTcsIDIuMDYwMDQiLCBcCi0gICAgICAgICAgIjAuMzUyODQzLCAwLjM5OTg1NiwgMC42NDU4NDksIDAuODYwMTY2LCAxLjE0NTg2LCAxLjcxNjgsIDIuMDczNTkiLCBcCi0gICAgICAgICAgIjAuMzY2NTM1LCAwLjQxMzU0NywgMC42NTk1NDQsIDAuODczODYyLCAxLjE1OTUsIDEuNzMwNDYsIDIuMDg3MzciLCBcCi0gICAgICAgICAgIjAuMzgwMzc2LCAwLjQyNzM1OSwgMC42NzMzODYsIDAuODg3NzA0LCAxLjE3MzMxLCAxLjc0NDMzLCAyLjEwMTMiLCBcCi0gICAgICAgICAgIjAuNDAyMDEyLCAwLjQ0OTEyNywgMC42OTUxNDIsIDAuOTA5NDI4LCAxLjE5NTE3LCAxLjc2NjA4LCAyLjEyMzE0IiwgXAotICAgICAgICAgICIwLjQyMTAxMiwgMC40NjgwMzMsIDAuNzE0MTgyLCAwLjkyODQ5OSwgMS4yMTQyNSwgMS43ODUxMiwgMi4xNDIwMyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xOTA2ODksIDAuMjcyMTQ5LCAwLjc1MDc2LCAxLjE4MjI3LCAxLjc2MjE4LCAyLjkxODMsIDMuNjUxMTQiLCBcCi0gICAgICAgICAgIjAuMTkwNjE3LCAwLjI3MjA4MywgMC43NTA3LCAxLjE4MjYyLCAxLjc2MjA5LCAyLjkxODQ4LCAzLjY1MDg4IiwgXAotICAgICAgICAgICIwLjE5MDc4NCwgMC4yNzIwOTksIDAuNzUwNjk3LCAxLjE4MDQ5LCAxLjc2MjA3LCAyLjkxODQxLCAzLjY0OTMzIiwgXAotICAgICAgICAgICIwLjE5MDgwNCwgMC4yNzIxMSwgMC43NTA2OTgsIDEuMTgwNSwgMS43NTg2OSwgMi45MjI4NSwgMy42NDk3NiIsIFwKLSAgICAgICAgICAiMC4xOTA3MiwgMC4yNzE4NTQsIDAuNzUwNTg3LCAxLjE4MDQzLCAxLjc1ODYzLCAyLjkyMywgMy42NTAzOCIsIFwKLSAgICAgICAgICAiMC4xOTA2MjUsIDAuMjcyMDkxLCAwLjc1MDU5LCAxLjE4MTk4LCAxLjc2MjA3LCAyLjkxODA2LCAzLjY1MDYxIiwgXAotICAgICAgICAgICIwLjE5MDc0LCAwLjI3MjA0OCwgMC43NTA3MTUsIDEuMTgwODIsIDEuNzU3MTYsIDIuOTIyNjgsIDMuNjQxNTYiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzE3NjEzLCAwLjM3MDk2NiwgMC42NTM3NjksIDAuOTAwNzY5LCAxLjIzMDE2LCAxLjg4ODUxLCAyLjMwMDI3IiwgXAotICAgICAgICAgICIwLjMyOTA0OCwgMC4zODIzNTIsIDAuNjY1MTk5LCAwLjkxMjI5NSwgMS4yNDE2NSwgMS44OTk5NiwgMi4zMTE0OSIsIFwKLSAgICAgICAgICAiMC4zNDIsIDAuMzk1MzM3LCAwLjY3ODE1MiwgMC45MjUxNiwgMS4yNTQ1NCwgMS45MTI5LCAyLjMyNDQ2IiwgXAotICAgICAgICAgICIwLjM1NDM3MiwgMC40MDc3MDcsIDAuNjkwNTI3LCAwLjkzNzU3MywgMS4yNjY5MiwgMS45MjUyNiwgMi4zMzY4MyIsIFwKLSAgICAgICAgICAiMC4zNjY1NzMsIDAuNDE5ODg5LCAwLjcwMjc0NywgMC45NDk3NzcsIDEuMjc5MTMsIDEuOTM3NTMsIDIuMzQ5MDQiLCBcCi0gICAgICAgICAgIjAuMzg2MTI5LCAwLjQzOTQ1MSwgMC43MjIzMDcsIDAuOTY5MzQ3LCAxLjI5ODcsIDEuOTU3MDksIDIuMzY4NjIiLCBcCi0gICAgICAgICAgIjAuNDAzMjAxLCAwLjQ1NjUwMSwgMC43MzkzOTgsIDAuOTg2NDY2LCAxLjMxNTk2LCAxLjk3NDEzLCAyLjM4NTkyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIwOTM2NCwgMC4zMDE1ODksIDAuODQzNDQ2LCAxLjMzMTMxLCAxLjk4NTg5LCAzLjI4ODg5LCA0LjEwNjU2IiwgXAotICAgICAgICAgICIwLjIwOTM3LCAwLjMwMTY4NiwgMC44NDMzODQsIDEuMzI5MzcsIDEuOTg1ODksIDMuMjg4MjIsIDQuMTAxNDciLCBcCi0gICAgICAgICAgIjAuMjA5MzY0LCAwLjMwMTY1LCAwLjg0MzQzMywgMS4zMzE0NCwgMS45ODU4MSwgMy4yODk0NiwgNC4xMDg0OCIsIFwKLSAgICAgICAgICAiMC4yMDkzNDcsIDAuMzAxNTYyLCAwLjg0MzQxNiwgMS4zMjk5MywgMS45ODU5MiwgMy4yODgzLCA0LjEwODc5IiwgXAotICAgICAgICAgICIwLjIwOTM4NiwgMC4zMDE1NTcsIDAuODQzNDU2LCAxLjMzMTYyLCAxLjk4NTcyLCAzLjI5MjY1LCA0LjEwNzI3IiwgXAotICAgICAgICAgICIwLjIwOTM5LCAwLjMwMTU2LCAwLjg0MzQ1NCwgMS4zMzA0NSwgMS45ODU4LCAzLjI5MTg3LCA0LjEwODc3IiwgXAotICAgICAgICAgICIwLjIwOTM5NiwgMC4zMDE1ODcsIDAuODQzNDUzLCAxLjMyNzgsIDEuOTc4NzgsIDMuMjk2MDcsIDQuMTA4NjQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUzAiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMyNjQyNCwgMC4zNzM4MzEsIDAuNjIwMjU4LCAwLjgzNDY2MSwgMS4xMjAzOCwgMS42OTEzNSwgMi4wNDg0OSIsIFwKLSAgICAgICAgICAiMC4zMzcwNDgsIDAuMzg0NTExLCAwLjYzMDkzOCwgMC44NDUyOTEsIDEuMTMxMDUsIDEuNzAyMDIsIDIuMDU5MTYiLCBcCi0gICAgICAgICAgIjAuMzUwODE4LCAwLjM5ODA4NywgMC42NDQ1NSwgMC44NTg5MywgMS4xNDQ1OCwgMS43MTU3OCwgMi4wNzI1OCIsIFwKLSAgICAgICAgICAiMC4zNjQ0MTEsIDAuNDExNzI1LCAwLjY1ODE0NSwgMC44NzI1MjQsIDEuMTU4MTksIDEuNzI5MjUsIDIuMDg2MjQiLCBcCi0gICAgICAgICAgIjAuMzc3ODQ5LCAwLjQyNTMxNywgMC42NzE3NTUsIDAuODg2MTYzLCAxLjE3MTg5LCAxLjc0Mjg0LCAyLjA5OTgiLCBcCi0gICAgICAgICAgIjAuMzk5NzYxLCAwLjQ0NzE4OCwgMC42OTM2MzYsIDAuOTA3OTk4LCAxLjE5Mzc3LCAxLjc2NDczLCAyLjEyMTY5IiwgXAotICAgICAgICAgICIwLjQxOTA2OCwgMC40NjY1LCAwLjcxMjk1OCwgMC45MjczNzQsIDEuMjEzMTEsIDEuNzg0MDYsIDIuMTQxMDIiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTkxOTk4LCAwLjI3MzUwMiwgMC43NTE2MiwgMS4xODMzMSwgMS43NjI2NCwgMi45MjM3NCwgMy42NTAzOCIsIFwKLSAgICAgICAgICAiMC4xOTIxMiwgMC4yNzM0ODQsIDAuNzUxNjc0LCAxLjE4MjkzLCAxLjc2MjcsIDIuOTIzMTEsIDMuNjUwOTIiLCBcCi0gICAgICAgICAgIjAuMTkyMTI2LCAwLjI3MzQ4NCwgMC43NTE2NzQsIDEuMTgyMjMsIDEuNzYyMTQsIDIuOTIzMywgMy42NTA4MSIsIFwKLSAgICAgICAgICAiMC4xOTIwNTMsIDAuMjczNTY0LCAwLjc1MTU2MiwgMS4xODI5MiwgMS43NjI2MywgMi45MjM0NCwgMy42NTA4MyIsIFwKLSAgICAgICAgICAiMC4xOTIxNTEsIDAuMjczNDc4LCAwLjc1MTU3LCAxLjE4MzI3LCAxLjc2MjU4LCAyLjkyMzM1LCAzLjY1MDMzIiwgXAotICAgICAgICAgICIwLjE5MjE1OSwgMC4yNzM0OTUsIDAuNzUxNjk4LCAxLjE4MjkyLCAxLjc2MjY0LCAyLjkyNDE1LCAzLjY0OTQ2IiwgXAotICAgICAgICAgICIwLjE5MjE4MiwgMC4yNzM1NDYsIDAuNzUxNjI4LCAxLjE4MzI4LCAxLjc2MjU2LCAyLjkyMzY3LCAzLjY0OTczIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMxMzAwNSwgMC4zNjY1NjUsIDAuNjQ5Njk4LCAwLjg5Njc4MywgMS4yMjYxNSwgMS44ODQ3MiwgMi4yOTYwNiIsIFwKLSAgICAgICAgICAiMC4zMjMxODcsIDAuMzc2NzQ0LCAwLjY1OTgzOCwgMC45MDY5NjEsIDEuMjM2NDEsIDEuODk0NjcsIDIuMzA2MzQiLCBcCi0gICAgICAgICAgIjAuMzM2Mzk2LCAwLjM4OTk4NiwgMC42NzMxMjksIDAuOTIwMjIxLCAxLjI0OTYsIDEuOTA3OTQsIDIuMzE5NDkiLCBcCi0gICAgICAgICAgIjAuMzQ5NTQ3LCAwLjQwMzA5OSwgMC42ODYyMjQsIDAuOTMzMzIyLCAxLjI2MjcsIDEuOTIxMTEsIDIuMzMyNTkiLCBcCi0gICAgICAgICAgIjAuMzYyNjU3LCAwLjQxNjE4NCwgMC42OTkzNzQsIDAuOTQ2NDI2LCAxLjI3NTgzLCAxLjkzNDM4LCAyLjM0NTgxIiwgXAotICAgICAgICAgICIwLjM4MzY5NywgMC40MzcyMzIsIDAuNzIwNDMzLCAwLjk2NzQ4NSwgMS4yOTY5LCAxLjk1NTI2LCAyLjM2Njc5IiwgXAotICAgICAgICAgICIwLjQwMjA2NSwgMC40NTU2NiwgMC43Mzg4MDMsIDAuOTg1OTE2LCAxLjMxNTI4LCAxLjk3Mzg4LCAyLjM4NTE4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIxMDYwMiwgMC4zMDI5MTIsIDAuODQ0MDM2LCAxLjMzMTYsIDEuOTg2MjIsIDMuMjk0MzcsIDQuMTA4ODgiLCBcCi0gICAgICAgICAgIjAuMjEwNjM4LCAwLjMwMjkyNCwgMC44NDQxMiwgMS4zMzE4MiwgMS45ODYyNCwgMy4yOTYxNCwgNC4xMDkxNyIsIFwKLSAgICAgICAgICAiMC4yMTA1NzMsIDAuMzAyOTM0LCAwLjg0Mzk5NywgMS4zMzIyMywgMS45ODYxOSwgMy4yODg5OSwgNC4xMDkzMSIsIFwKLSAgICAgICAgICAiMC4yMTA2MzksIDAuMzAyOTI5LCAwLjg0NDA0MiwgMS4zMzIyNywgMS45ODYxNSwgMy4yOTQ5MywgNC4xMDkwOSIsIFwKLSAgICAgICAgICAiMC4yMTA2MzksIDAuMzAyODA4LCAwLjg0NDAyLCAxLjMzMjExLCAxLjk4NjIxLCAzLjI5NjA1LCA0LjEwODk1IiwgXAotICAgICAgICAgICIwLjIxMDYzOCwgMC4zMDI4NzEsIDAuODQzOTQ4LCAxLjMzMTg5LCAxLjk4NjE3LCAzLjI5NTUyLCA0LjEwOTUxIiwgXAotICAgICAgICAgICIwLjIxMDY2NywgMC4zMDI5NzgsIDAuODQ0MDQ2LCAxLjMyODY4LCAxLjk4NjEzLCAzLjI5NjA1LCA0LjEwOTgxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlMwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zNzY4NDIsIDAuNDI0MDcyLCAwLjY3MDQ3OSwgMC44ODQ4MTIsIDEuMTcwNTIsIDEuNzQxNDksIDIuMDk4MzUiLCBcCi0gICAgICAgICAgIjAuMzg4NTg2LCAwLjQzNTk4LCAwLjY4MjMzNywgMC44OTY2ODIsIDEuMTgyMzksIDEuNzUzMywgMi4xMTAyMyIsIFwKLSAgICAgICAgICAiMC40MDM2NDIsIDAuNDUwOTEsIDAuNjk3Mzk3LCAwLjkxMTc0LCAxLjE5NzQ5LCAxLjc2ODM3LCAyLjEyNTMiLCBcCi0gICAgICAgICAgIjAuNDE4NjcxLCAwLjQ2NTkxNiwgMC43MTIzMDIsIDAuOTI2NjM4LCAxLjIxMjIzLCAxLjc4MzQsIDIuMTQwMDkiLCBcCi0gICAgICAgICAgIjAuNDMzMTUyLCAwLjQ4MDQ0MywgMC43MjY3ODQsIDAuOTQxMTIsIDEuMjI2NzQsIDEuNzk3NzcsIDIuMTU0NjkiLCBcCi0gICAgICAgICAgIjAuNDU0OTgsIDAuNTAyMzExLCAwLjc0ODcyNCwgMC45NjMwNjEsIDEuMjQ4NjksIDEuODE5NjcsIDIuMTc2NTYiLCBcCi0gICAgICAgICAgIjAuNDcyNjQ1LCAwLjUxOTg5MiwgMC43NjYzODgsIDAuOTgwNzQzLCAxLjI2NjQ5LCAxLjgzNzM4LCAyLjE5NDMzIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE5MjAxMiwgMC4yNzMzNTYsIDAuNzUxNDEsIDEuMTgyOTksIDEuNzYyMzUsIDIuOTIzNSwgMy42NTA1NyIsIFwKLSAgICAgICAgICAiMC4xOTE5NzQsIDAuMjczNDA4LCAwLjc1MTM5MywgMS4xODI5OCwgMS43NjIzNywgMi45MjMzNiwgMy42NTAyMSIsIFwKLSAgICAgICAgICAiMC4xOTIwMDYsIDAuMjczMzY1LCAwLjc1MTM3MiwgMS4xODI3MSwgMS43NjIzNiwgMi45MjQxLCAzLjY0OTY0IiwgXAotICAgICAgICAgICIwLjE5MTk5NywgMC4yNzMzOCwgMC43NTE0NDYsIDEuMTgzMDUsIDEuNzYyMzYsIDIuOTIzNzIsIDMuNjQ2ODUiLCBcCi0gICAgICAgICAgIjAuMTkyMDI1LCAwLjI3MzMzOSwgMC43NTE0MTMsIDEuMTgyOSwgMS43NjIzNiwgMi45MjMyNywgMy42NTAyOCIsIFwKLSAgICAgICAgICAiMC4xOTE5NDYsIDAuMjczMzU3LCAwLjc1MTQzNCwgMS4xODMwMSwgMS43NjIzNiwgMi45MjM1MywgMy42NDk0MSIsIFwKLSAgICAgICAgICAiMC4xOTE5OTgsIDAuMjczMzQ1LCAwLjc1MTM2NSwgMS4xODI3NywgMS43NjIzNywgMi45MjI2OSwgMy42NDkwMSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zNjk0MjQsIDAuNDIzMDU2LCAwLjcwNjIwNywgMC45NTMzNDIsIDEuMjgyNjUsIDEuOTQxMDIsIDIuMzUyNjEiLCBcCi0gICAgICAgICAgIjAuMzgxMzMsIDAuNDM0OTU0LCAwLjcxODA5NCwgMC45NjUyMjYsIDEuMjk0NTMsIDEuOTUyOSwgMi4zNjQ2NyIsIFwKLSAgICAgICAgICAiMC4zOTY4MjUsIDAuNDUwNDA5LCAwLjczMzU5NiwgMC45ODA2ODYsIDEuMzEwMDMsIDEuOTY4NDMsIDIuMzc5ODQiLCBcCi0gICAgICAgICAgIjAuNDEyMzYxLCAwLjQ2NTk3NSwgMC43NDkxMjMsIDAuOTk2MTk5LCAxLjMyNTU2LCAxLjk4MzkzLCAyLjM5NTUiLCBcCi0gICAgICAgICAgIjAuNDI3MTg0LCAwLjQ4MDc5OCwgMC43NjM5NjUsIDEuMDExMDUsIDEuMzQwNDYsIDEuOTk4NzcsIDIuNDEwMzQiLCBcCi0gICAgICAgICAgIjAuNDUxNDIzLCAwLjUwNTA5NSwgMC43ODgyMDQsIDEuMDM1MywgMS4zNjQ1OCwgMi4wMjMxMywgMi40MzQ1IiwgXAotICAgICAgICAgICIwLjQ3MTMxNSwgMC41MjQ5MzQsIDAuODA4MDc2LCAxLjA1NTEzLCAxLjM4NDUyLCAyLjA0MjksIDIuNDU0NDYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjEwODExLCAwLjMwMjk5NCwgMC44NDQxMjUsIDEuMzMxNTMsIDEuOTg2MDcsIDMuMjk0MywgNC4xMDk3MSIsIFwKLSAgICAgICAgICAiMC4yMTA3OTMsIDAuMzAzMDAxLCAwLjg0NDA2OSwgMS4zMjkzNSwgMS45ODYyMywgMy4yOTUyMywgNC4xMDk0OCIsIFwKLSAgICAgICAgICAiMC4yMTA3NDUsIDAuMzAyODM0LCAwLjg0NDA5OCwgMS4zMzIyMywgMS45ODYyNCwgMy4yOTQ3OSwgNC4xMTAxNyIsIFwKLSAgICAgICAgICAiMC4yMTA3MDYsIDAuMzAyOTU3LCAwLjg0NDA5OSwgMS4zMzE3NywgMS45ODYyLCAzLjI5NjQzLCA0LjEwODgyIiwgXAotICAgICAgICAgICIwLjIxMDcxNywgMC4zMDMwMzUsIDAuODQ0MDM1LCAxLjMzMDYyLCAxLjk4NjE0LCAzLjI5NjE5LCA0LjEwOTQ2IiwgXAotICAgICAgICAgICIwLjIxMDcwNiwgMC4zMDMwMzIsIDAuODQ0MDY4LCAxLjMzLCAxLjk4NjI3LCAzLjI5NjIyLCA0LjEwOTk3IiwgXAotICAgICAgICAgICIwLjIxMDcxNywgMC4zMDI4NzQsIDAuODQ0MDE0LCAxLjMzMjA5LCAxLjk4NjE2LCAzLjI5Mjg5LCA0LjExMDA5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlMxIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMjY1MjgsIDAuMjczNDE1LCAwLjUxODkyNSwgMC43MzMwMzMsIDEuMDE4NDQsIDEuNTg5MzksIDEuOTQ2MjUiLCBcCi0gICAgICAgICAgIjAuMjM3MzI0LCAwLjI4NDIwOSwgMC41Mjk3MzcsIDAuNzQzODQxLCAxLjAyOTM0LCAxLjYwMDI1LCAxLjk1NzA0IiwgXAotICAgICAgICAgICIwLjI1MDUzMiwgMC4yOTc0MTksIDAuNTQyOTQ3LCAwLjc1NzA0OCwgMS4wNDI0NCwgMS42MTM0LCAxLjk3MDI2IiwgXAotICAgICAgICAgICIwLjI2MzY5MywgMC4zMTA0MTMsIDAuNTU2MDA4LCAwLjc3MDEzMSwgMS4wNTU2OCwgMS42MjY5MSwgMS45ODMzNSIsIFwKLSAgICAgICAgICAiMC4yNzY3OTgsIDAuMzIzNjYsIDAuNTY5MTIxLCAwLjc4MzIzMywgMS4wNjg3OCwgMS42Mzk5OCwgMS45OTY0NyIsIFwKLSAgICAgICAgICAiMC4yOTc0NjQsIDAuMzQ0NDIsIDAuNTg5ODYsIDAuODAzOTcxLCAxLjA4OTU0LCAxLjY2MDgxLCAyLjAxNzE3IiwgXAotICAgICAgICAgICIwLjMxNTgzMiwgMC4zNjI3MSwgMC42MDgxNzcsIDAuODIyMjk1LCAxLjEwNzczLCAxLjY3ODY3LCAyLjAzNTUzIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE4OTYwOCwgMC4yNzEwMjUsIDAuNzQ5OTM0LCAxLjE3ODc5LCAxLjc1OTg0LCAyLjkyMzA0LCAzLjY1MDEiLCBcCi0gICAgICAgICAgIjAuMTg5NjU0LCAwLjI3MDkyMSwgMC43NDk4MTEsIDEuMTc5NzgsIDEuNzYxMDgsIDIuOTIzMTMsIDMuNjQ5OTEiLCBcCi0gICAgICAgICAgIjAuMTg5NDg1LCAwLjI3MDk3NiwgMC43NDk4OTcsIDEuMTc4NjMsIDEuNzYwNDgsIDIuOTIyOCwgMy42NDk5MiIsIFwKLSAgICAgICAgICAiMC4xODk2NjMsIDAuMjcxMDM3LCAwLjc0OTYzNCwgMS4xNzg3NiwgMS43NjM2NywgMi45MTU2MywgMy42NDg2MiIsIFwKLSAgICAgICAgICAiMC4xODk1ODIsIDAuMjcxMDYxLCAwLjc0OTcwOSwgMS4xNzk4MSwgMS43NjMyNywgMi45MTU3NSwgMy42NDg2NCIsIFwKLSAgICAgICAgICAiMC4xODk0NTIsIDAuMjcwOTU0LCAwLjc0OTc4MywgMS4xNzk5MSwgMS43NTYyNCwgMi45MTU1MSwgMy42NDk3MyIsIFwKLSAgICAgICAgICAiMC4xODkyOTEsIDAuMjcwNzM0LCAwLjc0OTcxNywgMS4xNzk3MiwgMS43NjA2NCwgMi45MjE5OCwgMy42NDk4Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIyOTU5MywgMC4yODI5ODksIDAuNTY1NjM5LCAwLjgxMjU1NCwgMS4xNDE5LCAxLjgwMDc4LCAyLjIxMjU2IiwgXAotICAgICAgICAgICIwLjI0MDA0LCAwLjI5MzQyMiwgMC41NzYwNywgMC44MjI5ODMsIDEuMTUyMjEsIDEuODExMjcsIDIuMjIxOTkiLCBcCi0gICAgICAgICAgIjAuMjUyOTUxLCAwLjMwNjMwNywgMC41ODg5MTYsIDAuODM1ODMzLCAxLjE2NDk4LCAxLjgyMzcxLCAyLjIzNTQ4IiwgXAotICAgICAgICAgICIwLjI2NTU1LCAwLjMxODk0OSwgMC42MDE2MDcsIDAuODQ4NTEsIDEuMTc3NzQsIDEuODM2MzgsIDIuMjQ3ODciLCBcCi0gICAgICAgICAgIjAuMjc4MDI4LCAwLjMzMTQyNiwgMC42MTQwOTgsIDAuODYxLCAxLjE5MDI0LCAxLjg0ODksIDIuMjYwMzgiLCBcCi0gICAgICAgICAgIjAuMjk4MTU2LCAwLjM1MTQ3NSwgMC42MzQxNywgMC44ODExMDYsIDEuMjEwMzIsIDEuODY4OTgsIDIuMjgxMjMiLCBcCi0gICAgICAgICAgIjAuMzE1Njc3LCAwLjM2OTAyOCwgMC42NTE2NywgMC44OTg2NTUsIDEuMjI3ODksIDEuODg2NTgsIDIuMjk4MDYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjA5NjUyLCAwLjMwMjEzNSwgMC44NDMzMzUsIDEuMzI3NzMsIDEuOTg1MDUsIDMuMjg2NzcsIDQuMTAzODUiLCBcCi0gICAgICAgICAgIjAuMjA5NjQsIDAuMzAyMTUxLCAwLjg0MzM0MSwgMS4zMjY5NiwgMS45ODUwMiwgMy4yODU3NywgNC4xMTA3MSIsIFwKLSAgICAgICAgICAiMC4yMDk2NTYsIDAuMzAxOTQ2LCAwLjg0MzM0NywgMS4zMjc5LCAxLjk4NDkzLCAzLjI4ODM3LCA0LjEwODExIiwgXAotICAgICAgICAgICIwLjIwOTU4OCwgMC4zMDIxMDksIDAuODQzMzIyLCAxLjMyOTA0LCAxLjk4NTA1LCAzLjI4NDMzLCA0LjEwNjA5IiwgXAotICAgICAgICAgICIwLjIwOTUyNSwgMC4zMDIwNywgMC44NDMzMDMsIDEuMzMxNTUsIDEuOTg1MDYsIDMuMjg1MDIsIDQuMTA2MSIsIFwKLSAgICAgICAgICAiMC4yMDkyNDksIDAuMzAxOTUsIDAuODQzMjc4LCAxLjMyNzYxLCAxLjk4NTA0LCAzLjI4NDY3LCA0LjEwMTUyIiwgXAotICAgICAgICAgICIwLjIwOTAzNiwgMC4zMDE2NTcsIDAuODQzMTA4LCAxLjMyODEyLCAxLjk4NTA0LCAzLjI4NTcyLCA0LjEwNTc0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlMxIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMzY1MjYsIDAuMjgzNTIzLCAwLjUyOTQxNCwgMC43NDM1MzYsIDEuMDI5MTMsIDEuNjAwNTMsIDEuOTU2NzgiLCBcCi0gICAgICAgICAgIjAuMjQ4NTE5LCAwLjI5NTc3NywgMC41NDE2MDYsIDAuNzU1NzM0LCAxLjA0MTI3LCAxLjYxMjUyLCAxLjk2ODkxIiwgXAotICAgICAgICAgICIwLjI2MzYyOSwgMC4zMTA2NTMsIDAuNTU2NTE2LCAwLjc3MDYzOSwgMS4wNTYwNywgMS42MjcxMiwgMS45ODQ2MyIsIFwKLSAgICAgICAgICAiMC4yNzgxNDgsIDAuMzI1MTg5LCAwLjU3MTE4OSwgMC43ODUyODgsIDEuMDcwODYsIDEuNjQyMTQsIDEuOTk4NDgiLCBcCi0gICAgICAgICAgIjAuMjkyMTg1LCAwLjMzOTE0MywgMC41ODUwOTIsIDAuNzk5MjIxLCAxLjA4NDgxLCAxLjY1NjE2LCAyLjAxMjQ2IiwgXAotICAgICAgICAgICIwLjMxMzA3MiwgMC4zNjAyNzEsIDAuNjA2MTY3LCAwLjgyMDI3MywgMS4xMDU4NSwgMS42NzcxMywgMi4wMzM0OCIsIFwKLSAgICAgICAgICAiMC4zMjk3ODksIDAuMzc2OTQsIDAuNjIyODAzLCAwLjgzNjkyNywgMS4xMjI0OSwgMS42OTM3NiwgMi4wNTAxNCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xOTA3MjksIDAuMjcyMTU1LCAwLjc1MDQ5MSwgMS4xODAzMSwgMS43NTY0MiwgMi45MzE1NywgMy42NDk4NiIsIFwKLSAgICAgICAgICAiMC4xOTA3MTIsIDAuMjcyMjczLCAwLjc1MDM5NywgMS4xODAyMiwgMS43NjM2NywgMi45MTU2NiwgMy42NDk2OCIsIFwKLSAgICAgICAgICAiMC4xOTA2MiwgMC4yNzIwNzQsIDAuNzUwNDM4LCAxLjE4MDA4LCAxLjc2MDg0LCAyLjkyMywgMy42NDg2NCIsIFwKLSAgICAgICAgICAiMC4xOTA3NzQsIDAuMjcyMTgyLCAwLjc1MDM3LCAxLjE4MTY1LCAxLjc2Mzg3LCAyLjkxNTU4LCAzLjY0OTU5IiwgXAotICAgICAgICAgICIwLjE5MDc0NywgMC4yNzIxMTgsIDAuNzUwNDg4LCAxLjE4MDI5LCAxLjc1NjQyLCAyLjkxNTQ3LCAzLjY0OTc3IiwgXAotICAgICAgICAgICIwLjE5MDY0NSwgMC4yNzIxNzgsIDAuNzUwMzc2LCAxLjE4MTczLCAxLjc2Mzg0LCAyLjkxNTYxLCAzLjY0OTYxIiwgXAotICAgICAgICAgICIwLjE5MDU2MSwgMC4yNzIxMDYsIDAuNzUwMjc5LCAxLjE4MTg1LCAxLjc2MzY2LCAyLjkxNTYzLCAzLjY0OTYyIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI0Nzc2OCwgMC4zMDA5ODksIDAuNTgzNDQ3LCAwLjgzMDM5NSwgMS4xNTk2MywgMS44MTgzMywgMi4yMjk2NCIsIFwKLSAgICAgICAgICAiMC4yNTk5NzYsIDAuMzEzMTgzLCAwLjU5NTcxNywgMC44NDI2NTcsIDEuMTcxODUsIDEuODMwNzksIDIuMjQyNDciLCBcCi0gICAgICAgICAgIjAuMjc1OTM2LCAwLjMyOTEyMywgMC42MTE2NzEsIDAuODU4NjEsIDEuMTg3OTgsIDEuODQ2NTIsIDIuMjU3OTQiLCBcCi0gICAgICAgICAgIjAuMjkxMzgxLCAwLjM0NDU4OSwgMC42MjcxMzMsIDAuODc0MDcsIDEuMjAzNCwgMS44NjIyMSwgMi4yNzQ1MyIsIFwKLSAgICAgICAgICAiMC4zMDY1LCAwLjM1OTY2NywgMC42NDIyMTUsIDAuODg5MTYsIDEuMjE4NTQsIDEuODc3NTEsIDIuMjg4NDIiLCBcCi0gICAgICAgICAgIjAuMzI5ODE5LCAwLjM4MzEwMiwgMC42NjU1ODQsIDAuOTEyNTI3LCAxLjI0MTc5LCAxLjkwMDUsIDIuMzExODMiLCBcCi0gICAgICAgICAgIjAuMzQ4NTkzLCAwLjQwMTc3OCwgMC42ODQzMTYsIDAuOTMxMjM0LCAxLjI2MDQ4LCAxLjkxOTA4LCAyLjMzMDgxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIwODcyOCwgMC4zMDA5NjUsIDAuODQzMDcyLCAxLjMyNjM5LCAxLjk4NDk2LCAzLjI4ODQxLCA0LjEwNzMiLCBcCi0gICAgICAgICAgIjAuMjA4NjQyLCAwLjMwMDkxNSwgMC44NDI5OTEsIDEuMzI3MTYsIDEuOTg0OSwgMy4yOTAxNCwgNC4xMDM1MSIsIFwKLSAgICAgICAgICAiMC4yMDg2NTcsIDAuMzAwOTQxLCAwLjg0Mjk1OCwgMS4zMjcwNSwgMS45Nzc2MywgMy4yODg3MywgNC4wOTk2NCIsIFwKLSAgICAgICAgICAiMC4yMDg2NTksIDAuMzAwOTMzLCAwLjg0Mjk1MSwgMS4zMjY5NCwgMS45Nzc5NywgMy4yODk5LCA0LjEwNDE2IiwgXAotICAgICAgICAgICIwLjIwODY0MywgMC4zMDA5NDgsIDAuODQyOTMsIDEuMzI2OTQsIDEuOTc3NTMsIDMuMjg1NjgsIDQuMTA3ODQiLCBcCi0gICAgICAgICAgIjAuMjA4NTg3LCAwLjMwMDk1MywgMC44NDI4MjEsIDEuMzI4NjcsIDEuOTg0OTcsIDMuMjg2NjEsIDQuMTA2NzQiLCBcCi0gICAgICAgICAgIjAuMjA4NjAzLCAwLjMwMDkwOCwgMC44NDI3NzgsIDEuMzI5OTYsIDEuOTg0OTIsIDMuMjgzMTYsIDQuMTA2MzMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDIwODksIDAuMDAyMDk4LCAwLjAwMjExNSwgMC4wMDIxMiwgMC4wMDIxMjIsIDAuMDAyMTI0LCAwLjAwMjEyNCIsIFwKLSAgICAgICAgICAiMC4wMDIwOCwgMC4wMDIwODksIDAuMDAyMTA2LCAwLjAwMjExLCAwLjAwMjExMiwgMC4wMDIxMTQsIDAuMDAyMTE1IiwgXAotICAgICAgICAgICIwLjAwMjA3NSwgMC4wMDIwODQsIDAuMDAyMTAxLCAwLjAwMjEwNSwgMC4wMDIxMDcsIDAuMDAyMTA5LCAwLjAwMjExIiwgXAotICAgICAgICAgICIwLjAwMjA3MiwgMC4wMDIwODEsIDAuMDAyMDk4LCAwLjAwMjEwMiwgMC4wMDIxMDQsIDAuMDAyMTA2LCAwLjAwMjEwNyIsIFwKLSAgICAgICAgICAiMC4wMDIwNjksIDAuMDAyMDc5LCAwLjAwMjA5NSwgMC4wMDIxLCAwLjAwMjEwMiwgMC4wMDIxMDQsIDAuMDAyMTA1IiwgXAotICAgICAgICAgICIwLjAwMjA2NiwgMC4wMDIwNzUsIDAuMDAyMDkyLCAwLjAwMjA5NiwgMC4wMDIwOTksIDAuMDAyMTAxLCAwLjAwMjEwMiIsIFwKLSAgICAgICAgICAiMC4wMDIwNjMsIDAuMDAyMDcyLCAwLjAwMjA5LCAwLjAwMjA5NCwgMC4wMDIwOTcsIDAuMDAyMDk5LCAwLjAwMjEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDM5OTIsIDAuMDA0MDA0LCAwLjAwNDAyNiwgMC4wMDQwMzEsIDAuMDA0MDM1LCAwLjAwNDAzNywgMC4wMDQwMzgiLCBcCi0gICAgICAgICAgIjAuMDAzOTg4LCAwLjAwNCwgMC4wMDQwMjEsIDAuMDA0MDI3LCAwLjAwNDAzLCAwLjAwNDAzMiwgMC4wMDQwMzMiLCBcCi0gICAgICAgICAgIjAuMDAzOTg1LCAwLjAwMzk5NywgMC4wMDQwMTksIDAuMDA0MDI0LCAwLjAwNDAyOCwgMC4wMDQwMywgMC4wMDQwMzEiLCBcCi0gICAgICAgICAgIjAuMDAzOTg0LCAwLjAwMzk5NiwgMC4wMDQwMTgsIDAuMDA0MDIzLCAwLjAwNDAyNiwgMC4wMDQwMjksIDAuMDA0MDI5IiwgXAotICAgICAgICAgICIwLjAwMzk4MiwgMC4wMDM5OTQsIDAuMDA0MDE2LCAwLjAwNDAyMSwgMC4wMDQwMjUsIDAuMDA0MDI3LCAwLjAwNDAyOCIsIFwKLSAgICAgICAgICAiMC4wMDM5NzksIDAuMDAzOTkxLCAwLjAwNDAxNCwgMC4wMDQwMTksIDAuMDA0MDIzLCAwLjAwNDAyNSwgMC4wMDQwMjYiLCBcCi0gICAgICAgICAgIjAuMDAzOTc3LCAwLjAwMzk4OSwgMC4wMDQwMTIsIDAuMDA0MDE4LCAwLjAwNDAyMSwgMC4wMDQwMjQsIDAuMDA0MDI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyMDI1LCAwLjAwMjAzNCwgMC4wMDIwNTEsIDAuMDAyMDU1LCAwLjAwMjA1NywgMC4wMDIwNiwgMC4wMDIwNiIsIFwKLSAgICAgICAgICAiMC4wMDIwMTUsIDAuMDAyMDI0LCAwLjAwMjA0MSwgMC4wMDIwNDUsIDAuMDAyMDQ4LCAwLjAwMjA1LCAwLjAwMjA1IiwgXAotICAgICAgICAgICIwLjAwMjAxLCAwLjAwMjAyLCAwLjAwMjAzNywgMC4wMDIwNDEsIDAuMDAyMDQzLCAwLjAwMjA0NSwgMC4wMDIwNDYiLCBcCi0gICAgICAgICAgIjAuMDAyMDA3LCAwLjAwMjAxNiwgMC4wMDIwMzMsIDAuMDAyMDM4LCAwLjAwMjA0LCAwLjAwMjA0MiwgMC4wMDIwNDMiLCBcCi0gICAgICAgICAgIjAuMDAyMDA1LCAwLjAwMjAxNCwgMC4wMDIwMzEsIDAuMDAyMDM1LCAwLjAwMjAzOCwgMC4wMDIwNCwgMC4wMDIwNCIsIFwKLSAgICAgICAgICAiMC4wMDIwMDEsIDAuMDAyMDEsIDAuMDAyMDI3LCAwLjAwMjAzMiwgMC4wMDIwMzQsIDAuMDAyMDM3LCAwLjAwMjAzNyIsIFwKLSAgICAgICAgICAiMC4wMDE5OTksIDAuMDAyMDA3LCAwLjAwMjAyNSwgMC4wMDIwMjksIDAuMDAyMDMyLCAwLjAwMjAzNCwgMC4wMDIwMzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQxMDEsIDAuMDA0MTEzLCAwLjAwNDEzNSwgMC4wMDQxNCwgMC4wMDQxNDMsIDAuMDA0MTQ2LCAwLjAwNDE0NyIsIFwKLSAgICAgICAgICAiMC4wMDQwOTYsIDAuMDA0MTA4LCAwLjAwNDEzLCAwLjAwNDEzNSwgMC4wMDQxMzgsIDAuMDA0MTQxLCAwLjAwNDE0MiIsIFwKLSAgICAgICAgICAiMC4wMDQwOTQsIDAuMDA0MTA2LCAwLjAwNDEyOCwgMC4wMDQxMzMsIDAuMDA0MTM2LCAwLjAwNDEzOSwgMC4wMDQxNCIsIFwKLSAgICAgICAgICAiMC4wMDQwOTIsIDAuMDA0MTA0LCAwLjAwNDEyNiwgMC4wMDQxMzEsIDAuMDA0MTM1LCAwLjAwNDEzNywgMC4wMDQxMzgiLCBcCi0gICAgICAgICAgIjAuMDA0MDkxLCAwLjAwNDEwMiwgMC4wMDQxMjUsIDAuMDA0MTMsIDAuMDA0MTMzLCAwLjAwNDEzNiwgMC4wMDQxMzciLCBcCi0gICAgICAgICAgIjAuMDA0MDg4LCAwLjAwNDEsIDAuMDA0MTIyLCAwLjAwNDEyOCwgMC4wMDQxMzEsIDAuMDA0MTM0LCAwLjAwNDEzNSIsIFwKLSAgICAgICAgICAiMC4wMDQwODYsIDAuMDA0MDk4LCAwLjAwNDEyMSwgMC4wMDQxMjYsIDAuMDA0MTMsIDAuMDA0MTMzLCAwLjAwNDEzNCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTk3MywgMC4wMDE5ODIsIDAuMDAxOTk5LCAwLjAwMjAwMywgMC4wMDIwMDUsIDAuMDAyMDA3LCAwLjAwMjAwOCIsIFwKLSAgICAgICAgICAiMC4wMDE5NjMsIDAuMDAxOTczLCAwLjAwMTk4OSwgMC4wMDE5OTMsIDAuMDAxOTk2LCAwLjAwMTk5OCwgMC4wMDE5OTgiLCBcCi0gICAgICAgICAgIjAuMDAxOTU4LCAwLjAwMTk2OCwgMC4wMDE5ODQsIDAuMDAxOTg4LCAwLjAwMTk5MSwgMC4wMDE5OTMsIDAuMDAxOTkzIiwgXAotICAgICAgICAgICIwLjAwMTk1NSwgMC4wMDE5NjQsIDAuMDAxOTgxLCAwLjAwMTk4NSwgMC4wMDE5ODgsIDAuMDAxOTksIDAuMDAxOTkiLCBcCi0gICAgICAgICAgIjAuMDAxOTUyLCAwLjAwMTk2MSwgMC4wMDE5NzksIDAuMDAxOTgzLCAwLjAwMTk4NSwgMC4wMDE5ODcsIDAuMDAxOTg4IiwgXAotICAgICAgICAgICIwLjAwMTk0OSwgMC4wMDE5NTgsIDAuMDAxOTc1LCAwLjAwMTk3OSwgMC4wMDE5ODIsIDAuMDAxOTg0LCAwLjAwMTk4NSIsIFwKLSAgICAgICAgICAiMC4wMDE5NDYsIDAuMDAxOTU1LCAwLjAwMTk3MiwgMC4wMDE5NzcsIDAuMDAxOTgsIDAuMDAxOTgyLCAwLjAwMTk4MyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzkyNywgMC4wMDM5MzgsIDAuMDAzOTU5LCAwLjAwMzk2NCwgMC4wMDM5NjcsIDAuMDAzOTcsIDAuMDAzOTcxIiwgXAotICAgICAgICAgICIwLjAwMzkyMiwgMC4wMDM5MzQsIDAuMDAzOTU1LCAwLjAwMzk2LCAwLjAwMzk2MywgMC4wMDM5NjUsIDAuMDAzOTY2IiwgXAotICAgICAgICAgICIwLjAwMzkyLCAwLjAwMzkzMSwgMC4wMDM5NTMsIDAuMDAzOTU4LCAwLjAwMzk2MSwgMC4wMDM5NjMsIDAuMDAzOTY0IiwgXAotICAgICAgICAgICIwLjAwMzkxOCwgMC4wMDM5MywgMC4wMDM5NTEsIDAuMDAzOTU2LCAwLjAwMzk1OSwgMC4wMDM5NjEsIDAuMDAzOTYyIiwgXAotICAgICAgICAgICIwLjAwMzkxNiwgMC4wMDM5MjgsIDAuMDAzOTQ5LCAwLjAwMzk1NSwgMC4wMDM5NTgsIDAuMDAzOTYsIDAuMDAzOTYxIiwgXAotICAgICAgICAgICIwLjAwMzkxNCwgMC4wMDM5MjUsIDAuMDAzOTQ3LCAwLjAwMzk1MiwgMC4wMDM5NTYsIDAuMDAzOTU5LCAwLjAwMzk1OSIsIFwKLSAgICAgICAgICAiMC4wMDM5MTIsIDAuMDAzOTIzLCAwLjAwMzk0NiwgMC4wMDM5NTEsIDAuMDAzOTU0LCAwLjAwMzk1NywgMC4wMDM5NTgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJEIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDE3OTEsIDAuMDAxODAxLCAwLjAwMTgxNywgMC4wMDE4MjEsIDAuMDAxODI0LCAwLjAwMTgyNiwgMC4wMDE4MjYiLCBcCi0gICAgICAgICAgIjAuMDAxNzgyLCAwLjAwMTc5MSwgMC4wMDE4MDgsIDAuMDAxODEyLCAwLjAwMTgxNCwgMC4wMDE4MTYsIDAuMDAxODE3IiwgXAotICAgICAgICAgICIwLjAwMTc3NywgMC4wMDE3ODYsIDAuMDAxODAzLCAwLjAwMTgwNywgMC4wMDE4MDksIDAuMDAxODExLCAwLjAwMTgxMiIsIFwKLSAgICAgICAgICAiMC4wMDE3NzQsIDAuMDAxNzgzLCAwLjAwMTgsIDAuMDAxODA0LCAwLjAwMTgwNiwgMC4wMDE4MDgsIDAuMDAxODA5IiwgXAotICAgICAgICAgICIwLjAwMTc3MSwgMC4wMDE3OCwgMC4wMDE3OTcsIDAuMDAxODAxLCAwLjAwMTgwNCwgMC4wMDE4MDYsIDAuMDAxODA3IiwgXAotICAgICAgICAgICIwLjAwMTc2NywgMC4wMDE3NzcsIDAuMDAxNzk0LCAwLjAwMTc5OCwgMC4wMDE4MDEsIDAuMDAxODAzLCAwLjAwMTgwMyIsIFwKLSAgICAgICAgICAiMC4wMDE3NjUsIDAuMDAxNzc0LCAwLjAwMTc5MSwgMC4wMDE3OTYsIDAuMDAxNzk4LCAwLjAwMTgsIDAuMDAxODAxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0MDQ4LCAwLjAwNDA2LCAwLjAwNDA4MSwgMC4wMDQwODYsIDAuMDA0MDg5LCAwLjAwNDA5MSwgMC4wMDQwOTIiLCBcCi0gICAgICAgICAgIjAuMDA0MDQzLCAwLjAwNDA1NSwgMC4wMDQwNzYsIDAuMDA0MDgxLCAwLjAwNDA4NCwgMC4wMDQwODcsIDAuMDA0MDg3IiwgXAotICAgICAgICAgICIwLjAwNDA0MSwgMC4wMDQwNTMsIDAuMDA0MDc0LCAwLjAwNDA3OSwgMC4wMDQwODIsIDAuMDA0MDg0LCAwLjAwNDA4NSIsIFwKLSAgICAgICAgICAiMC4wMDQwMzksIDAuMDA0MDUxLCAwLjAwNDA3MiwgMC4wMDQwNzcsIDAuMDA0MDgsIDAuMDA0MDgzLCAwLjAwNDA4NCIsIFwKLSAgICAgICAgICAiMC4wMDQwMzgsIDAuMDA0MDQ5LCAwLjAwNDA3MSwgMC4wMDQwNzYsIDAuMDA0MDc5LCAwLjAwNDA4MiwgMC4wMDQwODIiLCBcCi0gICAgICAgICAgIjAuMDA0MDM1LCAwLjAwNDA0NiwgMC4wMDQwNjgsIDAuMDA0MDc0LCAwLjAwNDA3NywgMC4wMDQwOCwgMC4wMDQwODEiLCBcCi0gICAgICAgICAgIjAuMDA0MDMzLCAwLjAwNDA0NCwgMC4wMDQwNjcsIDAuMDA0MDcyLCAwLjAwNDA3NiwgMC4wMDQwNzksIDAuMDA0MDgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTMCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1OTI2LCAwLjAwNTkzNSwgMC4wMDU5NTIsIDAuMDA1OTU2LCAwLjAwNTk1OCwgMC4wMDU5NjEsIDAuMDA1OTYxIiwgXAotICAgICAgICAgICIwLjAwNTkxNiwgMC4wMDU5MjUsIDAuMDA1OTQyLCAwLjAwNTk0NiwgMC4wMDU5NSwgMC4wMDU5NTEsIDAuMDA1OTUxIiwgXAotICAgICAgICAgICIwLjAwNTkwNiwgMC4wMDU5MTQsIDAuMDA1OTMxLCAwLjAwNTkzNSwgMC4wMDU5MzgsIDAuMDA1OTQsIDAuMDA1OTQiLCBcCi0gICAgICAgICAgIjAuMDA1ODk5LCAwLjAwNTkwOCwgMC4wMDU5MjQsIDAuMDA1OTI5LCAwLjAwNTkzMSwgMC4wMDU5MzMsIDAuMDA1OTM0IiwgXAotICAgICAgICAgICIwLjAwNTg5NCwgMC4wMDU5MDMsIDAuMDA1OTE5LCAwLjAwNTkyMywgMC4wMDU5MjYsIDAuMDA1OTI4LCAwLjAwNTkyOCIsIFwKLSAgICAgICAgICAiMC4wMDU4ODksIDAuMDA1ODk5LCAwLjAwNTkxNSwgMC4wMDU5MTksIDAuMDA1OTIyLCAwLjAwNTkyNCwgMC4wMDU5MjUiLCBcCi0gICAgICAgICAgIjAuMDA1ODg3LCAwLjAwNTg5NiwgMC4wMDU5MTMsIDAuMDA1OTE3LCAwLjAwNTkxOSwgMC4wMDU5MjEsIDAuMDA1OTIyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1NjIsIDAuMDA1NjMxLCAwLjAwNTY1MywgMC4wMDU2NTgsIDAuMDA1NjYxLCAwLjAwNTY2NCwgMC4wMDU2NjUiLCBcCi0gICAgICAgICAgIjAuMDA1NjIxLCAwLjAwNTYzMiwgMC4wMDU2NTQsIDAuMDA1NjU5LCAwLjAwNTY2MiwgMC4wMDU2NjUsIDAuMDA1NjY2IiwgXAotICAgICAgICAgICIwLjAwNTYxNiwgMC4wMDU2MjgsIDAuMDA1NjQ5LCAwLjAwNTY1NCwgMC4wMDU2NTgsIDAuMDA1NjYsIDAuMDA1NjYxIiwgXAotICAgICAgICAgICIwLjAwNTYxLCAwLjAwNTYyMiwgMC4wMDU2NDQsIDAuMDA1NjQ5LCAwLjAwNTY1MiwgMC4wMDU2NTUsIDAuMDA1NjU2IiwgXAotICAgICAgICAgICIwLjAwNTYwNSwgMC4wMDU2MTYsIDAuMDA1NjM4LCAwLjAwNTY0MywgMC4wMDU2NDYsIDAuMDA1NjQ5LCAwLjAwNTY1IiwgXAotICAgICAgICAgICIwLjAwNTU5OCwgMC4wMDU2MDksIDAuMDA1NjMxLCAwLjAwNTYzNiwgMC4wMDU2NCwgMC4wMDU2NDIsIDAuMDA1NjQzIiwgXAotICAgICAgICAgICIwLjAwNTU5NSwgMC4wMDU2MDYsIDAuMDA1NjI4LCAwLjAwNTYzMywgMC4wMDU2MzYsIDAuMDA1NjM5LCAwLjAwNTY0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUzEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzAxMiwgMC4wMDMwMTksIDAuMDAzMDMsIDAuMDAzMDMyLCAwLjAwMzAzNCwgMC4wMDMwMzUsIDAuMDAzMDM1IiwgXAotICAgICAgICAgICIwLjAwMzAxNywgMC4wMDMwMjQsIDAuMDAzMDM2LCAwLjAwMzAzOSwgMC4wMDMwMzksIDAuMDAzMDQxLCAwLjAwMzA0MiIsIFwKLSAgICAgICAgICAiMC4wMDMwMzQsIDAuMDAzMDQxLCAwLjAwMzA1MywgMC4wMDMwNTUsIDAuMDAzMDU3LCAwLjAwMzA1OCwgMC4wMDMwNTkiLCBcCi0gICAgICAgICAgIjAuMDAzMDQ5LCAwLjAwMzA1NywgMC4wMDMwNjksIDAuMDAzMDcyLCAwLjAwMzA3NCwgMC4wMDMwNzUsIDAuMDAzMDc2IiwgXAotICAgICAgICAgICIwLjAwMzA2NCwgMC4wMDMwNzEsIDAuMDAzMDgzLCAwLjAwMzA4NiwgMC4wMDMwODgsIDAuMDAzMDg5LCAwLjAwMzA5IiwgXAotICAgICAgICAgICIwLjAwMzA4NSwgMC4wMDMwOTIsIDAuMDAzMTA1LCAwLjAwMzEwOCwgMC4wMDMxMSwgMC4wMDMxMTIsIDAuMDAzMTEyIiwgXAotICAgICAgICAgICIwLjAwMzEwMSwgMC4wMDMxMDgsIDAuMDAzMTIxLCAwLjAwMzEyNCwgMC4wMDMxMjYsIDAuMDAzMTI4LCAwLjAwMzEyOSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjM3OSwgMC4wMDIzODksIDAuMDAyNDA1LCAwLjAwMjQwOCwgMC4wMDI0MSwgMC4wMDI0MTIsIDAuMDAyNDEyIiwgXAotICAgICAgICAgICIwLjAwMjM3NiwgMC4wMDIzODYsIDAuMDAyNDAyLCAwLjAwMjQwNiwgMC4wMDI0MDgsIDAuMDAyNDEsIDAuMDAyNDEiLCBcCi0gICAgICAgICAgIjAuMDAyMzksIDAuMDAyMzk5LCAwLjAwMjQxNiwgMC4wMDI0MTksIDAuMDAyNDIxLCAwLjAwMjQyMywgMC4wMDI0MjQiLCBcCi0gICAgICAgICAgIjAuMDAyNDA0LCAwLjAwMjQxNCwgMC4wMDI0MywgMC4wMDI0MzQsIDAuMDAyNDM2LCAwLjAwMjQzOCwgMC4wMDI0MzkiLCBcCi0gICAgICAgICAgIjAuMDAyNDE2LCAwLjAwMjQyNiwgMC4wMDI0NDIsIDAuMDAyNDQ2LCAwLjAwMjQ0OSwgMC4wMDI0NTEsIDAuMDAyNDUyIiwgXAotICAgICAgICAgICIwLjAwMjQzOCwgMC4wMDI0NDcsIDAuMDAyNDY0LCAwLjAwMjQ2OSwgMC4wMDI0NzEsIDAuMDAyNDc0LCAwLjAwMjQ3NCIsIFwKLSAgICAgICAgICAiMC4wMDI0NTQsIDAuMDAyNDYzLCAwLjAwMjQ4LCAwLjAwMjQ4NSwgMC4wMDI0ODcsIDAuMDAyNDksIDAuMDAyNDkxIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IE1YNFgyICoKLSAqIC0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChNWDRYMikgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjIzMTUyODsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNTE2ODE3OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDUxNDgxNTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA1MTY4MTc7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNzcyLCAwLjAwMDc2MSwgMC4wMDA3NTUsIDAuMDAwNzUxLCAwLjAwMDc0OCwgMC4wMDA3NDUsIDAuMDAwNzQyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyMTYzLCAwLjAwMjE1OCwgMC4wMDIxNTUsIDAuMDAyMTUzLCAwLjAwMjE1MSwgMC4wMDIxNDksIDAuMDAyMTQ4Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA1ODEzMzQ7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNTc5MjMzOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDU4MTMzNDsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxNTksIDAuMDAwMTYxLCAwLjAwMDE2MSwgMC4wMDAxNjIsIDAuMDAwMTYyLCAwLjAwMDE2MiwgMC4wMDAxNjIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxNjgsIDAuMDAwMTY2LCAwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiwgMC4wMDAxNjYiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEMpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDUyMTA2ODsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA1MTkxMzg7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNTIxMDY4OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDg5MywgMC4wMDA4ODMsIDAuMDAwODc3LCAwLjAwMDg3MywgMC4wMDA4NywgMC4wMDA4NjcsIDAuMDAwODY0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyMzcyLCAwLjAwMjM2NiwgMC4wMDIzNjQsIDAuMDAyMzYxLCAwLjAwMjM2LCAwLjAwMjM1OCwgMC4wMDIzNTciKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEQpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYxNTk0MjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MTQxNTk7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjE1OTQyOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDE2LCAwLjAwMDE2MSwgMC4wMDAxNjIsIDAuMDAwMTYyLCAwLjAwMDE2MiwgMC4wMDAxNjIsIDAuMDAwMTYzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMTY4LCAwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY2Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAyMDIyOTk7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAyMDIyMzg7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAyMDIyOTk7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzY4LCAwLjAwMDM1NCwgMC4wMDAzNDQsIDAuMDAwMzM4LCAwLjAwMDMzNSwgMC4wMDAzMzUsIDAuMDAwMzM1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyNzUsIDAuMDAyNzQxLCAwLjAwMjczMywgMC4wMDI3MywgMC4wMDI3MjksIDAuMDAyNzI4LCAwLjAwMjcyNyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUzEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTA1MTExOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTA1MDEzOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTA1MTExOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDEzNSwgMC4wMDAxMTgsIDAuMDAwMTA4LCAwLjAwMDEwMywgMC4wMDAxMDEsIDAuMDAwMTAxLCAwLjAwMDA5OSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTY4NCwgMC4wMDE2NzMsIDAuMDAxNjY2LCAwLjAwMTY2MiwgMC4wMDE2NjEsIDAuMDAxNjU4LCAwLjAwMTY1OCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjIzODE5NDsKLSAgICBmdW5jdGlvbiA6ICIoKFMxICgoUzAgRCkgKyAoIVMwIEMpKSkgKyAoIVMxICgoUzAgQikgKyAoIVMwIEEpKSkpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMjQ1MDcsIDAuNTI2MTY2LCAwLjY3MTY0MywgMC44NTIzNDcsIDEuMDMyOSwgMS4yMTM1MywgMS4zOTM4OSIsIFwKLSAgICAgICAgICAiMC4zMzY3MDMsIDAuNTM4MDI5LCAwLjY4MzUwMiwgMC44NjQyNDYsIDEuMDQ0NzksIDEuMjI1MjQsIDEuNDA1ODMiLCBcCi0gICAgICAgICAgIjAuMzUwOTA5LCAwLjU1MjI4OSwgMC42OTc3NzIsIDAuODc4NTA4LCAxLjA1OTA1LCAxLjIzOTY2LCAxLjQyMDEiLCBcCi0gICAgICAgICAgIjAuMzY0NzkxLCAwLjU2NjE0NywgMC43MTE3MDcsIDAuODkyNDMsIDEuMDcyOTcsIDEuMjUzNTksIDEuNDMzODYiLCBcCi0gICAgICAgICAgIjAuMzc4MzUsIDAuNTc5ODk1LCAwLjcyNTM2OSwgMC45MDYxMDgsIDEuMDg2NjMsIDEuMjY3MTMsIDEuNDQ3NyIsIFwKLSAgICAgICAgICAiMC40MDAyNTYsIDAuNjAxODA2LCAwLjc0NzI4OSwgMC45MjgwMzMsIDEuMTA4NTYsIDEuMjg5MTYsIDEuNDY5NjMiLCBcCi0gICAgICAgICAgIjAuNDE5NTk3LCAwLjYyMTE0MywgMC43NjY2MywgMC45NDczNjcsIDEuMTI3OSwgMS4zMDg0NywgMS40ODg5NiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMzQyMjQsIDAuNDgxOTQ1LCAwLjc2ODA2NCwgMS4xMzExMSwgMS40OTc0NywgMS44NjI5MywgMi4yMzU5OSIsIFwKLSAgICAgICAgICAiMC4xMzQyNzQsIDAuNDgxOTg5LCAwLjc2OTMyMSwgMS4xMzEyNCwgMS40OTc3NiwgMS44NjY4NywgMi4yMzU5NSIsIFwKLSAgICAgICAgICAiMC4xMzQ0OTIsIDAuNDgxOTg5LCAwLjc2OTMxLCAxLjEzMzE4LCAxLjQ5OTU1LCAxLjg2NjksIDIuMjM2MDQiLCBcCi0gICAgICAgICAgIjAuMTM0NDg2LCAwLjQ4MiwgMC43NjkyNzEsIDEuMTMxMjIsIDEuNDk3NjIsIDEuODY3OSwgMi4yMzQ4OCIsIFwKLSAgICAgICAgICAiMC4xMzQyMDEsIDAuNDgyMDE2LCAwLjc2OTMxLCAxLjEzMTI5LCAxLjQ5OTM5LCAxLjg2NDUyLCAyLjIzNTk2IiwgXAotICAgICAgICAgICIwLjEzNDI0OCwgMC40ODE5ODcsIDAuNzY5MjQyLCAxLjEzMTI0LCAxLjQ5OTMyLCAxLjg2Nzc1LCAyLjIzNTk1IiwgXAotICAgICAgICAgICIwLjEzNDIzNywgMC40ODIwMTksIDAuNzY5MjQ2LCAxLjEzMTI2LCAxLjQ5OTE3LCAxLjg2MzQ5LCAyLjIzNTk0Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMwMzU2MywgMC41MjkxNSwgMC42OTUxMTUsIDAuOTAxNjE2LCAxLjEwNzk4LCAxLjMxNDIxLCAxLjUyMDUxIiwgXAotICAgICAgICAgICIwLjMxNDk1OCwgMC41NDA3MywgMC43MDY2NzksIDAuOTEzMTgyLCAxLjExOTU1LCAxLjMyNTg2LCAxLjUzMTk4IiwgXAotICAgICAgICAgICIwLjMyODQ4LCAwLjU1NDA2MywgMC43MjAwMjUsIDAuOTI2NTI4LCAxLjEzMjk2LCAxLjMzOTA5LCAxLjU0NTQyIiwgXAotICAgICAgICAgICIwLjM0MTMzNCwgMC41NjY5MzQsIDAuNzMyODYsIDAuOTM5MzU3LCAxLjE0NTcyLCAxLjM1MjA0LCAxLjU1ODE0IiwgXAotICAgICAgICAgICIwLjM1MzcwMiwgMC41NzkyODUsIDAuNzQ1MjQ4LCAwLjk1MTc1MywgMS4xNTgxOCwgMS4zNjQzLCAxLjU3MDY0IiwgXAotICAgICAgICAgICIwLjM3MzUwOSwgMC41OTkwOTYsIDAuNzY1MDU3LCAwLjk3MTU2NCwgMS4xNzgsIDEuMzg0MTksIDEuNTkwNDYiLCBcCi0gICAgICAgICAgIjAuMzkwNDg0LCAwLjYxNjI2NiwgMC43ODIyLCAwLjk4ODcwMywgMS4xOTUwNiwgMS40MDE0LCAxLjYwNzgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTQyMDI0LCAwLjUzMTcxMSwgMC44NTMzMzQsIDEuMjYsIDEuNjY2MjQsIDIuMDgxNTQsIDIuNDkyOCIsIFwKLSAgICAgICAgICAiMC4xNDE4OSwgMC41MzIxODgsIDAuODUzNTk2LCAxLjI1OTU2LCAxLjY2ODE1LCAyLjA4MTk3LCAyLjQ5Mjc0IiwgXAotICAgICAgICAgICIwLjE0MjAwOSwgMC41MzE4NDcsIDAuODUzNDYyLCAxLjI1OTk4LCAxLjY2ODIyLCAyLjA3ODkzLCAyLjQ5Mjc0IiwgXAotICAgICAgICAgICIwLjE0MjAzNywgMC41MzE4ODEsIDAuODUzNTc0LCAxLjI1ODM5LCAxLjY2ODU5LCAyLjA4MjAzLCAyLjQ5MjYzIiwgXAotICAgICAgICAgICIwLjE0MjAxNiwgMC41MzE4NTcsIDAuODUzNDY4LCAxLjI2MDE1LCAxLjY2NzMsIDIuMDgxMzMsIDIuNDkyNzUiLCBcCi0gICAgICAgICAgIjAuMTQyMDEsIDAuNTMxOTk2LCAwLjg1MzUzOCwgMS4yNjAwNywgMS42Njc5OSwgMi4wNzkzMSwgMi40OTI2NiIsIFwKLSAgICAgICAgICAiMC4xNDE5MzgsIDAuNTMxODU5LCAwLjg1MzQxOCwgMS4yNTc5MiwgMS42NjY0NywgMi4wODIxLCAyLjQ4NzgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzIwNjUzLCAwLjUyMTksIDAuNjY3MzY3LCAwLjg0ODEzMSwgMS4wMjg2NSwgMS4yMDkzNSwgMS4zODk3MSIsIFwKLSAgICAgICAgICAiMC4zMzIyODQsIDAuNTMzNTM5LCAwLjY3OTEwMywgMC44NTk4NDYsIDEuMDQwNCwgMS4yMjEwMiwgMS40MDEzNCIsIFwKLSAgICAgICAgICAiMC4zNDU5OTcsIDAuNTQ3NDQyLCAwLjY5MjkyLCAwLjg3MzY3NiwgMS4wNTQyNiwgMS4yMzQ5LCAxLjQxNTI3IiwgXAotICAgICAgICAgICIwLjM1OTcyNiwgMC41NjExNjEsIDAuNzA2NjQxLCAwLjg4NzM5NiwgMS4wNjc5MywgMS4yNDg1MiwgMS40MjkiLCBcCi0gICAgICAgICAgIjAuMzczNDAzLCAwLjU3NDg4NCwgMC43MjAzODcsIDAuOTAxMTQ1LCAxLjA4MTY5LCAxLjI2MjI3LCAxLjQ0Mjc2IiwgXAotICAgICAgICAgICIwLjM5NTQsIDAuNTk2ODk0LCAwLjc0MjM2NiwgMC45MjMxMTQsIDEuMTAzNjYsIDEuMjg0MzUsIDEuNDY0NzEiLCBcCi0gICAgICAgICAgIjAuNDE0NzMsIDAuNjE2MTQ4LCAwLjc2MTY4MiwgMC45NDI0MzMsIDEuMTIyOTgsIDEuMzAzNDMsIDEuNDg0MDciKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTM0MDY1LCAwLjQ4MTc2MywgMC43NjkyMDcsIDEuMTMxMzQsIDEuNDk5MzksIDEuODYzMDMsIDIuMjM2MDIiLCBcCi0gICAgICAgICAgIjAuMTM0MDg2LCAwLjQ4MTc0LCAwLjc2OTA3MywgMS4xMzExNiwgMS40OTc1MiwgMS44Njc4NSwgMi4yMzU1MyIsIFwKLSAgICAgICAgICAiMC4xMzM4OTEsIDAuNDgxNjIzLCAwLjc2ODk4NiwgMS4xMzI4OCwgMS40OTk3MiwgMS44NjI5MiwgMi4yMzU4OSIsIFwKLSAgICAgICAgICAiMC4xMzM4NDQsIDAuNDgxNzE0LCAwLjc2OTEzMSwgMS4xMzExNiwgMS40OTkyOSwgMS44NjQyMywgMi4yMzU5MSIsIFwKLSAgICAgICAgICAiMC4xMzM3NjYsIDAuNDgxNzEsIDAuNzY5MTEzLCAxLjEzMTEzLCAxLjQ5NzY3LCAxLjg2NzYyLCAyLjIzNTkxIiwgXAotICAgICAgICAgICIwLjEzNDExNSwgMC40ODE2ODMsIDAuNzY5MTM4LCAxLjEzMzA0LCAxLjQ5OTA5LCAxLjg2Mjg3LCAyLjIzNTkiLCBcCi0gICAgICAgICAgIjAuMTM0MDIxLCAwLjQ4MTczOSwgMC43NjkwMjYsIDEuMTMxMDcsIDEuNDk3MzcsIDEuODY2NDQsIDIuMjM1OTciKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzAxNDU0LCAwLjUyNzAwMywgMC42OTI4NjUsIDAuODk5Mjk3LCAxLjEwNTY2LCAxLjMxMTkxLCAxLjUxODIxIiwgXAotICAgICAgICAgICIwLjMxMzA0NCwgMC41Mzg1MzgsIDAuNzA0MzkxLCAwLjkxMDgyOCwgMS4xMTcxNSwgMS4zMjM0MywgMS41Mjk1NCIsIFwKLSAgICAgICAgICAiMC4zMjYyNjksIDAuNTUxOTM3LCAwLjcxNzc5OCwgMC45MjQyMzYsIDEuMTMwNTQsIDEuMzM2ODQsIDEuNTQzMTYiLCBcCi0gICAgICAgICAgIjAuMzM4ODIxLCAwLjU2NDQ2MiwgMC43MzAzNDMsIDAuOTM2NzgyLCAxLjE0MzEsIDEuMzQ5MzcsIDEuNTU1NTciLCBcCi0gICAgICAgICAgIjAuMzUxMzIyLCAwLjU3Njc4OSwgMC43NDI2NzMsIDAuOTQ5MTE5LCAxLjE1NTQ0LCAxLjM2MTY5LCAxLjU2NzkiLCBcCi0gICAgICAgICAgIjAuMzcwOTg4LCAwLjU5NjQ5MSwgMC43NjIzODgsIDAuOTY4ODM0LCAxLjE3NTA3LCAxLjM4MTMxLCAxLjU4NzYiLCBcCi0gICAgICAgICAgIjAuMzg4MDg0LCAwLjYxMzU1MiwgMC43Nzk0MiwgMC45ODU4NjEsIDEuMTkyMTgsIDEuMzk4NDcsIDEuNjA0NTciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTQxNzMyLCAwLjUzMTQyMSwgMC44NTI5NzcsIDEuMjU4OTMsIDEuNjY3NzMsIDIuMDgxNiwgMi40OTI0OSIsIFwKLSAgICAgICAgICAiMC4xNDE3NzEsIDAuNTMxNDY4LCAwLjg1MzEzNiwgMS4yNTgwNywgMS42NjgyNiwgMi4wODE0MiwgMi40OTIzNCIsIFwKLSAgICAgICAgICAiMC4xNDE1OTMsIDAuNTMxNDE1LCAwLjg1MzA0NywgMS4yNTc2NCwgMS42NjYxOSwgMi4wODE1NCwgMi40ODM0MiIsIFwKLSAgICAgICAgICAiMC4xNDE2MDMsIDAuNTMxODQ1LCAwLjg1MzE2NCwgMS4yNTkyMywgMS42NjczOSwgMi4wODE0NiwgMi40OTI0NCIsIFwKLSAgICAgICAgICAiMC4xNDE3MiwgMC41MzE3NDMsIDAuODUzMTYxLCAxLjI1OTQzLCAxLjY2NjUyLCAyLjA3NDQ0LCAyLjQ5MjQyIiwgXAotICAgICAgICAgICIwLjE0MTczNywgMC41MzE4NzUsIDAuODUyOTUyLCAxLjI1ODQ4LCAxLjY3MDA0LCAyLjA4MDg2LCAyLjQ5MjYiLCBcCi0gICAgICAgICAgIjAuMTQxNzU5LCAwLjUzMTQ1NiwgMC44NTMwMywgMS4yNTc3NywgMS42Njc4NywgMi4wODE1MSwgMi40ODg5NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMzg4NTEsIDAuNTQxNjUyLCAwLjY4NzQyMSwgMC44NjgyOCwgMS4wNDg4NCwgMS4yMjkzNywgMS40MDk5MiIsIFwKLSAgICAgICAgICAiMC4zNTA1NDksIDAuNTUzNTM3LCAwLjY5OTIwNCwgMC44ODAwMTUsIDEuMDYwNTcsIDEuMjQxMTMsIDEuNDIxNjciLCBcCi0gICAgICAgICAgIjAuMzY0ODEsIDAuNTY3NTk2LCAwLjcxMzM2OCwgMC44OTQyMDEsIDEuMDc0NzYsIDEuMjU1MjgsIDEuNDM1ODYiLCBcCi0gICAgICAgICAgIjAuMzc4NTI1LCAwLjU4MTQsIDAuNzI3MTQsIDAuOTA4LCAxLjA4ODUyLCAxLjI2OTEyLCAxLjQ0OTYyIiwgXAotICAgICAgICAgICIwLjM5MjIyNiwgMC41OTUxODgsIDAuNzQwODk0LCAwLjkyMTY5LCAxLjEwMjIzLCAxLjI4MjgsIDEuNDYzMTciLCBcCi0gICAgICAgICAgIjAuNDE0MTM4LCAwLjYxNzE3MywgMC43NjI4NjUsIDAuOTQzNjYzLCAxLjEyNDI0LCAxLjMwNDc5LCAxLjQ4NTMzIiwgXAotICAgICAgICAgICIwLjQzMzE5NSwgMC42MzYxMjUsIDAuNzgxODI1LCAwLjk2MjYyMiwgMS4xNDMyNCwgMS4zMjM3NiwgMS41MDQyOCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMzUzODgsIDAuNDgzNDksIDAuNzcwMzk1LCAxLjEzMjA4LCAxLjQ5NzExLCAxLjg2NzQxLCAyLjIzNjQzIiwgXAotICAgICAgICAgICIwLjEzNTY1MywgMC40ODM0ODUsIDAuNzcwNDA2LCAxLjEzMjA2LCAxLjQ5OTk5LCAxLjg2MzksIDIuMjM2MyIsIFwKLSAgICAgICAgICAiMC4xMzUzMDEsIDAuNDgzNDM5LCAwLjc3MDMxMiwgMS4xMzIzMywgMS40OTcyNiwgMS44Njc4NCwgMi4yMzYzMSIsIFwKLSAgICAgICAgICAiMC4xMzUyOTIsIDAuNDgzNDUzLCAwLjc3MDI4MywgMS4xMzEzNSwgMS40OTY5NywgMS44NjgxMSwgMi4yMzYyNyIsIFwKLSAgICAgICAgICAiMC4xMzUyMDksIDAuNDgzNDE3LCAwLjc3MDMzOSwgMS4xMzE5OSwgMS40OTc5MywgMS44NjQwNSwgMi4yMzQ2OCIsIFwKLSAgICAgICAgICAiMC4xMzU1MDIsIDAuNDgzNTEsIDAuNzcwMzk2LCAxLjEzMTk2LCAxLjQ5Nzk2LCAxLjg2Mzg4LCAyLjIzNjI4IiwgXAotICAgICAgICAgICIwLjEzNTUxMywgMC40ODMzNzYsIDAuNzcwMjY0LCAxLjEzMzc1LCAxLjUwMDQyLCAxLjg2MzgxLCAyLjIzNjI0Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMxNjcwNywgMC41NDM4ODQsIDAuNzA5OTQ1LCAwLjkxNjQ2NSwgMS4xMjI4LCAxLjMyOTE1LCAxLjUzNTM3IiwgXAotICAgICAgICAgICIwLjMyODIzMSwgMC41NTU0OTYsIDAuNzIxNTY2LCAwLjkyODA4NSwgMS4xMzQ0MiwgMS4zNDA3NiwgMS41NDY4NyIsIFwKLSAgICAgICAgICAiMC4zNDE4MzYsIDAuNTY5MDA0LCAwLjczNTAzOCwgMC45NDE1NzksIDEuMTQ3OTEsIDEuMzU0MjgsIDEuNTYwNDMiLCBcCi0gICAgICAgICAgIjAuMzU0NTE4LCAwLjU4MTg0OSwgMC43NDc5MTYsIDAuOTU0NDM5LCAxLjE2MDc3LCAxLjM2NzEyLCAxLjU3MzIxIiwgXAotICAgICAgICAgICIwLjM2NzE2OCwgMC41OTQyNTUsIDAuNzYwMzU2LCAwLjk2Njg3NiwgMS4xNzMxNywgMS4zNzk2MiwgMS41ODU3NSIsIFwKLSAgICAgICAgICAiMC4zODY5MDcsIDAuNjE0MTIyLCAwLjc4MDE2NSwgMC45ODY3MDMsIDEuMTkzMDQsIDEuMzk5NDEsIDEuNjA1NTUiLCBcCi0gICAgICAgICAgIjAuNDA0MDg1LCAwLjYzMTI2MywgMC43OTczMDQsIDEuMDAzOCwgMS4yMTAxNSwgMS40MTY1NywgMS42MjI3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE0MzYyNywgMC41MzM0MiwgMC44NTQzNjUsIDEuMjU3NzQsIDEuNjY4MzksIDIuMDgyMzMsIDIuNDkzMzIiLCBcCi0gICAgICAgICAgIjAuMTQzNTU0LCAwLjUzMzM3NCwgMC44NTQ0LCAxLjI2MDY2LCAxLjY2NzQ4LCAyLjA4MjIzLCAyLjQ5MjgxIiwgXAotICAgICAgICAgICIwLjE0MzYxNCwgMC41MzM0MTgsIDAuODU0NTI3LCAxLjI2MjI0LCAxLjY2OTA0LCAyLjA3OTUsIDIuNDkzMTMiLCBcCi0gICAgICAgICAgIjAuMTQzNDIxLCAwLjUzMzM1OSwgMC44NTQzNjEsIDEuMjYwNjksIDEuNjY3MzksIDIuMDgyMTgsIDIuNDkyODYiLCBcCi0gICAgICAgICAgIjAuMTQzNjAzLCAwLjUzMzI4OSwgMC44NTQxOCwgMS4yNTkyMiwgMS42NzEyNSwgMi4wNzUyNywgMi40OTMxMiIsIFwKLSAgICAgICAgICAiMC4xNDM1OCwgMC41MzMzNTYsIDAuODU0NTA0LCAxLjI2MjI2LCAxLjY2NTg5LCAyLjA3NjczLCAyLjQ5MzA0IiwgXAotICAgICAgICAgICIwLjE0MzU2OCwgMC41MzMzNTUsIDAuODU0NTQzLCAxLjI2MTY3LCAxLjY2OTYyLCAyLjA3NTg0LCAyLjQ5MzA2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkQiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMzMzc3OSwgMC41MzY0OCwgMC42ODIxNTYsIDAuODYyOTM3LCAxLjA0MzQ3LCAxLjIyMzk0LCAxLjQwNDUxIiwgXAotICAgICAgICAgICIwLjM0NTQ1OCwgMC41NDgxOTgsIDAuNjkzODIsIDAuODc0NTg5LCAxLjA1NTEyLCAxLjIzNTY5LCAxLjQxNjE3IiwgXAotICAgICAgICAgICIwLjM1OTYxNSwgMC41NjIyMjYsIDAuNzA3OTI1LCAwLjg4ODY4NiwgMS4wNjkyMiwgMS4yNDk2NSwgMS40MzAyOSIsIFwKLSAgICAgICAgICAiMC4zNzMxNjMsIDAuNTc1OTUzLCAwLjcyMTYyOCwgMC45MDI0MDIsIDEuMDgyOTMsIDEuMjYzNDYsIDEuNDQzOTkiLCBcCi0gICAgICAgICAgIjAuMzg3MTIxLCAwLjU4OTcyNSwgMC43MzUzOTQsIDAuOTE2MTQ1LCAxLjA5NjY3LCAxLjI3NzMsIDEuNDU3NyIsIFwKLSAgICAgICAgICAiMC40MDg5NjcsIDAuNjExNjk5LCAwLjc1NzM1MywgMC45MzgxMDgsIDEuMTE4NjMsIDEuMjk5MjcsIDEuNDc5NTIiLCBcCi0gICAgICAgICAgIjAuNDI4NDE0LCAwLjYzMTAyNSwgMC43NzY2MzIsIDAuOTU3NDAxLCAxLjEzNzkyLCAxLjMxODQ2LCAxLjQ5ODk5Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEzNTMwNCwgMC40ODMxNjgsIDAuNzcwMDgzLCAxLjEzMTI3LCAxLjQ5NzA1LCAxLjg2NDM0LCAyLjIzNjE3IiwgXAotICAgICAgICAgICIwLjEzNTI0NSwgMC40ODMxODQsIDAuNzcwMDg4LCAxLjEzMTg5LCAxLjQ5Njc0LCAxLjg2NzgxLCAyLjIzNjA4IiwgXAotICAgICAgICAgICIwLjEzNTM1MywgMC40ODMwOTksIDAuNzcwMDA0LCAxLjEzMTc3LCAxLjQ5Njc1LCAxLjg2NjQ0LCAyLjIzNjEyIiwgXAotICAgICAgICAgICIwLjEzNTUwMSwgMC40ODMxMjMsIDAuNzcwMDQyLCAxLjEzMTE4LCAxLjQ5NjY1LCAxLjg2NzY2LCAyLjIzNjA1IiwgXAotICAgICAgICAgICIwLjEzNTMzLCAwLjQ4MzExNywgMC43NzAwMDgsIDEuMTMxNjksIDEuNDk3NzgsIDEuODYzMTgsIDIuMjM2MDkiLCBcCi0gICAgICAgICAgIjAuMTM1MDYzLCAwLjQ4MzA4OSwgMC43NzAwMjYsIDEuMTMxNywgMS40OTc2OCwgMS44NjMwOCwgMi4yMzUyNiIsIFwKLSAgICAgICAgICAiMC4xMzUzNzEsIDAuNDgzMTUyLCAwLjc3MDAxOSwgMS4xMzE2OCwgMS40OTkzOSwgMS44NjMyLCAyLjIzNjAyIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMxNDUsIDAuNTQxNjM2LCAwLjcwNzY0NiwgMC45MTQxMTgsIDEuMTIwNDEsIDEuMzI2NzYsIDEuNTMyOTgiLCBcCi0gICAgICAgICAgIjAuMzI2MDMsIDAuNTUzMTY2LCAwLjcxOTE3OSwgMC45MjU2NTQsIDEuMTMxOTYsIDEuMzM4MjgsIDEuNTQ0NTIiLCBcCi0gICAgICAgICAgIjAuMzM5MjA1LCAwLjU2NjM0NywgMC43MzIzNTUsIDAuOTM4ODMxLCAxLjE0NTEzLCAxLjM1MTQ2LCAxLjU1NzYzIiwgXAotICAgICAgICAgICIwLjM1MTgwNSwgMC41Nzg4MjMsIDAuNzQ0ODAyLCAwLjk1MTI1MSwgMS4xNTc1NiwgMS4zNjM5NywgMS41NzAwOCIsIFwKLSAgICAgICAgICAiMC4zNjQwMzYsIDAuNTkxMTM2LCAwLjc1NzEyOCwgMC45NjM2MTQsIDEuMTY5OTMsIDEuMzc2MjQsIDEuNTgyNDUiLCBcCi0gICAgICAgICAgIjAuMzgzODE1LCAwLjYxMDcwOCwgMC43NzY3NDMsIDAuOTgzMjY4LCAxLjE4OTU0LCAxLjM5NTczLCAxLjYwMjA1IiwgXAotICAgICAgICAgICIwLjQwMDgyNCwgMC42Mjc4NTcsIDAuNzkzODUsIDEuMDAwMzMsIDEuMjA2NzEsIDEuNDEzMDEsIDEuNjE5MTMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTQzMjc3LCAwLjUzMzA2OCwgMC44NTM4OTcsIDEuMjYwMTQsIDEuNjY1NzIsIDIuMDgyMTUsIDIuNDg4NzciLCBcCi0gICAgICAgICAgIjAuMTQzMjg1LCAwLjUzMzA2NCwgMC44NTQwNDgsIDEuMjYwMjksIDEuNjY2MjIsIDIuMDgyMDMsIDIuNDg4OSIsIFwKLSAgICAgICAgICAiMC4xNDMyNzUsIDAuNTMzMDU5LCAwLjg1NDA1NSwgMS4yNjAzNCwgMS42NjYzMSwgMi4wODE5NiwgMi40ODk4MiIsIFwKLSAgICAgICAgICAiMC4xNDMyOTIsIDAuNTMzMDkxLCAwLjg1NDI1MiwgMS4yNjE0MywgMS42NjkzNiwgMi4wNzU0NSwgMi40OTI4NCIsIFwKLSAgICAgICAgICAiMC4xNDMzMTQsIDAuNTMzMTM4LCAwLjg1NDE5NSwgMS4yNjAzNiwgMS42Njg0OSwgMi4wODE5MSwgMi40OTI4NiIsIFwKLSAgICAgICAgICAiMC4xNDM0MjgsIDAuNTMyNzU1LCAwLjg1NDAyMiwgMS4yNTgxNCwgMS42Njg5MywgMi4wODE1MiwgMi40OTI4NiIsIFwKLSAgICAgICAgICAiMC4xNDM0MjIsIDAuNTMzMDk0LCAwLjg1NDE4MywgMS4yNjE5LCAxLjY3MTM1LCAyLjA3NTgxLCAyLjQ5Mjc5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlMwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMjAzNzYsIDAuNTIzMDg4LCAwLjY2ODc0MSwgMC44NDk1MjIsIDEuMDMwMDYsIDEuMjEwNTgsIDEuMzkxMDkiLCBcCi0gICAgICAgICAgIjAuMzMxMDE2LCAwLjUzMzc3MiwgMC42NzkzODMsIDAuODYwMTUxLCAxLjA0MDY5LCAxLjIyMTIzLCAxLjQwMTczIiwgXAotICAgICAgICAgICIwLjM0NDc1MywgMC41NDc0MjYsIDAuNjkzMDk3LCAwLjg3Mzg3NiwgMS4wNTQ0MSwgMS4yMzQ4NywgMS40MTU0NiIsIFwKLSAgICAgICAgICAiMC4zNTg1MTgsIDAuNTYxMDksIDAuNzA2NzEzLCAwLjg4NzQ4NCwgMS4wNjgsIDEuMjQ4NTYsIDEuNDI5MDciLCBcCi0gICAgICAgICAgIjAuMzcxOTMzLCAwLjU3NDY3OSwgMC43MjAzMzQsIDAuOTAxMTE1LCAxLjA4MTY1LCAxLjI2MjEsIDEuNDQyNyIsIFwKLSAgICAgICAgICAiMC4zOTM4NjgsIDAuNTk2NjIxLCAwLjc0MjIzOSwgMC45MjMwMDgsIDEuMTAzNTUsIDEuMjg0MDgsIDEuNDY0NiIsIFwKLSAgICAgICAgICAiMC40MTMyMjksIDAuNjE1ODUxLCAwLjc2MTUyNCwgMC45NDIyODksIDEuMTIyODIsIDEuMzAzNDUsIDEuNDgzODIiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTM1NTY3LCAwLjQ4MzIxNSwgMC43NzAxNTEsIDEuMTMyMzEsIDEuNDk5NCwgMS44Njc4NywgMi4yMzYxNiIsIFwKLSAgICAgICAgICAiMC4xMzU0NTYsIDAuNDgzMjIzLCAwLjc3MDExMSwgMS4xMzE3NSwgMS41MDAyOSwgMS44Njc5LCAyLjIzNjA5IiwgXAotICAgICAgICAgICIwLjEzNTU2MSwgMC40ODMxOTUsIDAuNzcwMTAyLCAxLjEzMzU3LCAxLjQ5OTY0LCAxLjg2Nzg3LCAyLjIzNjEyIiwgXAotICAgICAgICAgICIwLjEzNTU1MywgMC40ODMyMiwgMC43NzAxMjQsIDEuMTMxNzUsIDEuNTAwMzUsIDEuODY3NjcsIDIuMjM2MDkiLCBcCi0gICAgICAgICAgIjAuMTM1NTMsIDAuNDgzMjE0LCAwLjc3MDExMiwgMS4xMzE5OSwgMS41MDAwMSwgMS44Njc4NywgMi4yMzYxIiwgXAotICAgICAgICAgICIwLjEzNTM5LCAwLjQ4MzE5NSwgMC43NzAwNCwgMS4xMzE3NCwgMS40OTk5MywgMS44Njc4MywgMi4yMzYwOCIsIFwKLSAgICAgICAgICAiMC4xMzU0NjksIDAuNDgzMTk5LCAwLjc3MDA3OCwgMS4xMzM4MywgMS40OTk1LCAxLjg2Nzg0LCAyLjIzNjA5Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMwMTY1NiwgMC41Mjg3MzMsIDAuNjk0Nzk1LCAwLjkwMTMxNSwgMS4xMDc2NSwgMS4zMTM5OSwgMS41MjAyNCIsIFwKLSAgICAgICAgICAiMC4zMTIwMDQsIDAuNTM5MDksIDAuNzA1MTU3LCAwLjkxMTY4LCAxLjExNzk0LCAxLjMyNDM4LCAxLjUzMDUyIiwgXAotICAgICAgICAgICIwLjMyNTI5MiwgMC41NTI0NDQsIDAuNzE4NTA4LCAwLjkyNTAzMiwgMS4xMzEzNywgMS4zMzc3LCAxLjU0MzkxIiwgXAotICAgICAgICAgICIwLjMzODU2MiwgMC41NjU2NDQsIDAuNzMxNzA4LCAwLjkzODIzLCAxLjE0NDU3LCAxLjM1MDkxLCAxLjU1NzIiLCBcCi0gICAgICAgICAgIjAuMzUxNTg5LCAwLjU3ODc1NiwgMC43NDQ4MzUsIDAuOTUxMzI4LCAxLjE1NzY4LCAxLjM2NDA1LCAxLjU3MDIiLCBcCi0gICAgICAgICAgIjAuMzcyODgxLCAwLjU5OTk1NCwgMC43NjYwMjQsIDAuOTcyNTUzLCAxLjE3ODksIDEuMzg1MjMsIDEuNTkxNDgiLCBcCi0gICAgICAgICAgIjAuMzkxMzA4LCAwLjYxODQ0MSwgMC43ODQ1MiwgMC45OTEwNTMsIDEuMTk3NCwgMS40MDM3NSwgMS42MDk5NSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNDM2NTksIDAuNTMzNCwgMC44NTQ0NDQsIDEuMjYxNzgsIDEuNjcxMTYsIDIuMDgyMjgsIDIuNDkzMTgiLCBcCi0gICAgICAgICAgIjAuMTQzNjU1LCAwLjUzMzQ2LCAwLjg1NDUwNSwgMS4yNjIyNiwgMS42NzEwNiwgMi4wODI0LCAyLjQ5MzE5IiwgXAotICAgICAgICAgICIwLjE0MzYzOSwgMC41MzM0NDEsIDAuODU0NTM3LCAxLjI2MTM0LCAxLjY3MDc5LCAyLjA4MjMsIDIuNDkzMiIsIFwKLSAgICAgICAgICAiMC4xNDM2NzIsIDAuNTMzNDYyLCAwLjg1NDQyNywgMS4yNjEyNywgMS42NjkwMiwgMi4wODIzMSwgMi40OTMyOCIsIFwKLSAgICAgICAgICAiMC4xNDM2NDcsIDAuNTMzNzU1LCAwLjg1NDQ1NiwgMS4yNjA0NiwgMS42NzE1NSwgMi4wODI0MSwgMi40OTMxNCIsIFwKLSAgICAgICAgICAiMC4xNDM2OTUsIDAuNTMzNDUsIDAuODU0NDg1LCAxLjI2MDY5LCAxLjY2ODksIDIuMDgyMzYsIDIuNDkzMjciLCBcCi0gICAgICAgICAgIjAuMTQzNjkzLCAwLjUzMzQ2MSwgMC44NTQ0MTEsIDEuMjYyMjIsIDEuNjY5MTEsIDIuMDgyNTQsIDIuNDkzMDYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUzAiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjM3NTQ3MiwgMC41Nzg0MzMsIDAuNzI0MTUzLCAwLjkwNDkzNCwgMS4wODU0NywgMS4yNjYwMiwgMS40NDY1NCIsIFwKLSAgICAgICAgICAiMC4zODczMjQsIDAuNTkwMjExLCAwLjczNTg4MSwgMC45MTY2NjUsIDEuMDk3MjEsIDEuMjc3NzgsIDEuNDU4MzIiLCBcCi0gICAgICAgICAgIjAuNDAyNTE1LCAwLjYwNTQyNCwgMC43NTEwNzgsIDAuOTMxODcxLCAxLjExMjQzLCAxLjI5Mjk3LCAxLjQ3MzUyIiwgXAotICAgICAgICAgICIwLjQxNzQyNywgMC42MjAzMjgsIDAuNzY1OTksIDAuOTQ2NzgsIDEuMTI3NCwgMS4zMDc4OSwgMS40ODg0MyIsIFwKLSAgICAgICAgICAiMC40MzE3MzksIDAuNjM0NTA0LCAwLjc4MDE1MiwgMC45NjA5NDgsIDEuMTQxNDksIDEuMzIyMDUsIDEuNTAyNiIsIFwKLSAgICAgICAgICAiMC40NTQyMzgsIDAuNjU2OTk5LCAwLjgwMjczOCwgMC45ODM1MjMsIDEuMTY0MDcsIDEuMzQ0NzIsIDEuNTI1MjEiLCBcCi0gICAgICAgICAgIjAuNDcyMjk1LCAwLjY3NTA2LCAwLjgyMDc5NywgMS4wMDE1OCwgMS4xODIxMywgMS4zNjI3OCwgMS41NDMyNyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMzU1OTIsIDAuNDgzNTUzLCAwLjc3MDQwNywgMS4xMzQxNCwgMS40OTkzNywgMS44Njc5MSwgMi4yMzYzNCIsIFwKLSAgICAgICAgICAiMC4xMzU2NDMsIDAuNDgzNTkzLCAwLjc3MDQyMiwgMS4xMzM5NywgMS40OTk4NiwgMS44NjY4LCAyLjIzNjI4IiwgXAotICAgICAgICAgICIwLjEzNTYxNSwgMC40ODM1ODQsIDAuNzcwNDI0LCAxLjEzMzkzLCAxLjUwMDM2LCAxLjg2NzI1LCAyLjIzNjI5IiwgXAotICAgICAgICAgICIwLjEzNTgzNywgMC40ODM1ODgsIDAuNzcwNDI4LCAxLjEzMzEzLCAxLjUwMDQ4LCAxLjg2Njg5LCAyLjIzNjMyIiwgXAotICAgICAgICAgICIwLjEzNTcxMiwgMC40ODM1ODEsIDAuNzcwNDI1LCAxLjEzMzkzLCAxLjUwMDQ0LCAxLjg2NzE2LCAyLjIzNjI5IiwgXAotICAgICAgICAgICIwLjEzNTc1NiwgMC40ODM1MTUsIDAuNzcwMzY2LCAxLjEzMzkyLCAxLjUwMDQ4LCAxLjg2NzY1LCAyLjIzNjI1IiwgXAotICAgICAgICAgICIwLjEzNTc1OCwgMC40ODM1MSwgMC43NzA0MDgsIDEuMTMyMDksIDEuNTAwNDQsIDEuODY3NDYsIDIuMjM2MyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zNTk0ODcsIDAuNTg2Mzk5LCAwLjc1MjQwNSwgMC45NTg5MjMsIDEuMTY1MjcsIDEuMzcxMzcsIDEuNTc3NyIsIFwKLSAgICAgICAgICAiMC4zNzEyMjQsIDAuNTk4MzQ0LCAwLjc2NDM2LCAwLjk3MDg0NSwgMS4xNzcxNSwgMS4zODM0NiwgMS41ODk1NyIsIFwKLSAgICAgICAgICAiMC4zODcwMTcsIDAuNjEzODg0LCAwLjc3OTg5NCwgMC45ODYzODEsIDEuMTkyNjksIDEuMzk5LCAxLjYwNTI1IiwgXAotICAgICAgICAgICIwLjQwMjM5MiwgMC42Mjk0LCAwLjc5NTM4OCwgMS4wMDE4NywgMS4yMDgxOCwgMS40MTQ1NCwgMS42MjA2NyIsIFwKLSAgICAgICAgICAiMC40MTcyMjMsIDAuNjQ0MzA4LCAwLjgxMDMxNSwgMS4wMTY4LCAxLjIyMzExLCAxLjQyOTQyLCAxLjYzNTYyIiwgXAotICAgICAgICAgICIwLjQ0MTUyOCwgMC42Njg1OTEsIDAuODM0NjAyLCAxLjA0MTA5LCAxLjI0NzM5LCAxLjQ1MzcxLCAxLjY1OTg1IiwgXAotICAgICAgICAgICIwLjQ2MTY3MywgMC42ODg3MzQsIDAuODU0NzMxLCAxLjA2MTIxLCAxLjI2NzUzLCAxLjQ3Mzg0LCAxLjY3OTkzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE0MzU2NiwgMC41MzMxNDgsIDAuODU0MzE3LCAxLjI2MjI1LCAxLjY2ODQ1LCAyLjA4MTcsIDIuNDkzMDMiLCBcCi0gICAgICAgICAgIjAuMTQzNDYsIDAuNTMzNTY4LCAwLjg1NDE0NywgMS4yNjE3LCAxLjY3MTIyLCAyLjA4MTk0LCAyLjQ5Mjg2IiwgXAotICAgICAgICAgICIwLjE0MzQ2OSwgMC41MzMxNTEsIDAuODU0MjcsIDEuMjU5MTcsIDEuNjcwNDMsIDIuMDgxODgsIDIuNDkzMTQiLCBcCi0gICAgICAgICAgIjAuMTQzNDM4LCAwLjUzMzA5MywgMC44NTQ2MTgsIDEuMjYyMjEsIDEuNjcwNzUsIDIuMDgxOTUsIDIuNDkyNzciLCBcCi0gICAgICAgICAgIjAuMTQzNTIxLCAwLjUzMzM2MiwgMC44NTQyODcsIDEuMjYxNTEsIDEuNjcwNjEsIDIuMDgxOTEsIDIuNDkzMTgiLCBcCi0gICAgICAgICAgIjAuMTQzNDY2LCAwLjUzMzQxNCwgMC44NTQwNTMsIDEuMjYwOCwgMS42NzA4MywgMi4wODIwMiwgMi40OTI4MiIsIFwKLSAgICAgICAgICAiMC4xNDM0NjIsIDAuNTMzMTMzLCAwLjg1NDIwMSwgMS4yNjAzNywgMS42Njg3NSwgMi4wODE5NSwgMi40OTMwMiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTMSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjAwNDUzLCAwLjQwMjE2NCwgMC41NDc1MzIsIDAuNzI4MTI4LCAwLjkwODQ4NiwgMS4wODg4NiwgMS4yNjkzMSIsIFwKLSAgICAgICAgICAiMC4yMTExNjIsIDAuNDEyOTYzLCAwLjU1ODM2NywgMC43Mzg5NTQsIDAuOTE5MzA4LCAxLjA5OTYzLCAxLjI4MDE2IiwgXAotICAgICAgICAgICIwLjIyNDg1OSwgMC40MjY3NDgsIDAuNTcyMDc0LCAwLjc1MjYzMiwgMC45MzI5OTMsIDEuMTEzNDUsIDEuMjkzODUiLCBcCi0gICAgICAgICAgIjAuMjM4MTY0LCAwLjQzOTg1NywgMC41ODUyNDMsIDAuNzY1ODM1LCAwLjk0NjE4MSwgMS4xMjY1MSwgMS4zMDcwNSIsIFwKLSAgICAgICAgICAiMC4yNTE0MzgsIDAuNDUzMTU2LCAwLjU5ODUxOSwgMC43NzkxMTEsIDAuOTU5NDYyLCAxLjEzOTksIDEuMzIwMzEiLCBcCi0gICAgICAgICAgIjAuMjcyMjQ3LCAwLjQ3NDAxNCwgMC42MTk0MSwgMC43OTk5ODMsIDAuOTgwMzY2LCAxLjE2MDg5LCAxLjM0MTI3IiwgXAotICAgICAgICAgICIwLjI5MDczNiwgMC40OTI0MzQsIDAuNjM3Nzg3LCAwLjgxODM4OSwgMC45OTg3NDUsIDEuMTc5MTQsIDEuMzU5NjEiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTMzNDMxLCAwLjQ4MjA4NSwgMC43NjkxMDcsIDEuMTMwMjYsIDEuNDk1ODEsIDEuODY2NzYsIDIuMjM1MDkiLCBcCi0gICAgICAgICAgIjAuMTMzMzA1LCAwLjQ4MjAzNSwgMC43Njg5NTksIDEuMTMwMywgMS40OTU4NywgMS44NjU5LCAyLjIzODE5IiwgXAotICAgICAgICAgICIwLjEzMzEyNiwgMC40ODIwNjEsIDAuNzY5MDQ4LCAxLjEzMDg3LCAxLjQ5ODU5LCAxLjg2MjY0LCAyLjIzNTAyIiwgXAotICAgICAgICAgICIwLjEzMzIxNCwgMC40ODIwMDUsIDAuNzY4OTQxLCAxLjEzMDA5LCAxLjQ5NTU4LCAxLjg2NTg2LCAyLjIzODQ4IiwgXAotICAgICAgICAgICIwLjEzMjg3MiwgMC40ODE5NzEsIDAuNzY4OTQyLCAxLjEzMjg2LCAxLjQ5NTY0LCAxLjg2NjgyLCAyLjIzNTAxIiwgXAotICAgICAgICAgICIwLjEzMjgyNiwgMC40ODE4MzgsIDAuNzY4MjYzLCAxLjEzMjgxLCAxLjQ5NjQ4LCAxLjg2MjA1LCAyLjIzNDg4IiwgXAotICAgICAgICAgICIwLjEzMjE4LCAwLjQ4MTgzLCAwLjc2ODg2NCwgMS4xMzI4NywgMS40OTU2MSwgMS44NjY0NSwgMi4yMzUwMyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMDEwNzMsIDAuNDI1OTkxLCAwLjU5MTYyMiwgMC43OTc5NDQsIDEuMDA0MTIsIDEuMjEwNDEsIDEuNDE2NDciLCBcCi0gICAgICAgICAgIjAuMjExNTc5LCAwLjQzNjQ4OSwgMC42MDIxMTcsIDAuODA4NDQsIDEuMDE0NjUsIDEuMjIwOTEsIDEuNDI2OTciLCBcCi0gICAgICAgICAgIjAuMjI0NDY2LCAwLjQ0OTM5NiwgMC42MTUwMzMsIDAuODIxMzczLCAxLjAyNzU5LCAxLjIzMzgyLCAxLjQzOTg4IiwgXAotICAgICAgICAgICIwLjIzNzE1NiwgMC40NjIxMDYsIDAuNjI3NzczLCAwLjgzNDA0OSwgMS4wNDAyLCAxLjI0NjU0LCAxLjQ1MjYiLCBcCi0gICAgICAgICAgIjAuMjQ5Njk1LCAwLjQ3NDcwOCwgMC42NDAzOSwgMC44NDY2OTMsIDEuMDUyOTIsIDEuMjU5MTQsIDEuNDY1MiIsIFwKLSAgICAgICAgICAiMC4yNjk3MTgsIDAuNDk0NzA0LCAwLjY2MDQzNiwgMC44NjY3NTIsIDEuMDcyOTEsIDEuMjc5MTgsIDEuNDg1MzEiLCBcCi0gICAgICAgICAgIjAuMjg3NDUzLCAwLjUxMjMwNywgMC42NzgwNTEsIDAuODg0MzgsIDEuMDkwNjcsIDEuMjk2ODgsIDEuNTAyOTUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTQwNTUsIDAuNTMwNzQzLCAwLjg1MjgsIDEuMjYwNjMsIDEuNjcsIDIuMDc1MzcsIDIuNDkxNTciLCBcCi0gICAgICAgICAgIjAuMTQwNTA2LCAwLjUzMDc0LCAwLjg1MTk0OCwgMS4yNjA2NCwgMS42NywgMi4wNzUzOSwgMi40OTE1NyIsIFwKLSAgICAgICAgICAiMC4xNDAzNzEsIDAuNTMwNzM0LCAwLjg1MTg2OCwgMS4yNjA3MiwgMS42NzAwNSwgMi4wNzUzOSwgMi40OTE1NyIsIFwKLSAgICAgICAgICAiMC4xNDAzOTIsIDAuNTMwNzI3LCAwLjg1MjA4NywgMS4yNjAzNSwgMS42NjkzMywgMi4wNzUyOCwgMi40OTE1NyIsIFwKLSAgICAgICAgICAiMC4xNDAzMywgMC41MzA3MywgMC44NTI1MDYsIDEuMjU3MiwgMS42Njc2NSwgMi4wODA2MSwgMi40OTE0OSIsIFwKLSAgICAgICAgICAiMC4xNDAwNzUsIDAuNTMxMDc4LCAwLjg1MjI3NiwgMS4yNTgzMiwgMS42Njk1OSwgMi4wODA1MywgMi40OTE1NyIsIFwKLSAgICAgICAgICAiMC4xMzk4NzcsIDAuNTMwNTU2LCAwLjg1MjM3OSwgMS4yNTg4NiwgMS42Njk5NywgMi4wODA0MiwgMi40OTE1NyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTMSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjEyNTczLCAwLjQxMzI2OCwgMC41NTg1MjcsIDAuNzM5MDcxLCAwLjkxOTQ3MSwgMS4wOTk5LCAxLjI4MDMxIiwgXAotICAgICAgICAgICIwLjIyNDY2NywgMC40MjUzNywgMC41NzA2MjgsIDAuNzUxMTQ1LCAwLjkzMTUzNCwgMS4xMTIwNiwgMS4yOTIzMyIsIFwKLSAgICAgICAgICAiMC4yMzk4NSwgMC40NDAzMTQsIDAuNTg1NTE3LCAwLjc2NjA0OSwgMC45NDY0NjIsIDEuMTI2OSwgMS4zMDcyOSIsIFwKLSAgICAgICAgICAiMC4yNTQ1NSwgMC40NTUyMTgsIDAuNjAwNDU1LCAwLjc4MDk4MiwgMC45NjE0NjUsIDEuMTQxOTIsIDEuMzIyMiIsIFwKLSAgICAgICAgICAiMC4yNjg0MzMsIDAuNDY5MTUxLCAwLjYxNDQwMywgMC43OTQ5MjYsIDAuOTc1MzE0LCAxLjE1NTg0LCAxLjMzNjA5IiwgXAotICAgICAgICAgICIwLjI5MDIyOCwgMC40OTA3NDksIDAuNjM2MDEzLCAwLjgxNjUzNCwgMC45OTcwMjUsIDEuMTc3NDgsIDEuMzU3NzYiLCBcCi0gICAgICAgICAgIjAuMzA3NTAxLCAwLjUwODE0NiwgMC42NTMzODcsIDAuODMzOTI5LCAxLjAxNDMyLCAxLjE5NDgsIDEuMzc1MTgiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTMyNTI2LCAwLjQ4MDc2MiwgMC43NjgwNTcsIDEuMTI5ODUsIDEuNDk2MzksIDEuODYyMzYsIDIuMjM0NzkiLCBcCi0gICAgICAgICAgIjAuMTMyNDkyLCAwLjQ4MDc0NywgMC43NjgwNDksIDEuMTI5NzUsIDEuNDk1OSwgMS44NjE2OSwgMi4yMzQ1NyIsIFwKLSAgICAgICAgICAiMC4xMzI3MjcsIDAuNDgwNzg3LCAwLjc2ODExMywgMS4xMjk2NiwgMS40OTg2NCwgMS44NjIxNywgMi4yMzQ3NSIsIFwKLSAgICAgICAgICAiMC4xMzI3MDQsIDAuNDgwNzg4LCAwLjc2ODExNSwgMS4xMzE5MSwgMS40OTg3OCwgMS44NjIyNywgMi4yMzQ3MyIsIFwKLSAgICAgICAgICAiMC4xMzI0MjcsIDAuNDgwNjkzLCAwLjc2ODAxNCwgMS4xMjk5MiwgMS40OTYxMiwgMS44NjE2OCwgMi4yMzQ1OSIsIFwKLSAgICAgICAgICAiMC4xMzI1OCwgMC40ODAzNjIsIDAuNzY3OTgxLCAxLjEzMTk2LCAxLjQ5ODc1LCAxLjg2MTc1LCAyLjIzNDcxIiwgXAotICAgICAgICAgICIwLjEzMjM1MiwgMC40ODA2ODEsIDAuNzY4MDM4LCAxLjEzMDAzLCAxLjQ5NjM2LCAxLjg2OTksIDIuMjM0NzgiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjE3NDQ0LCAwLjQ0MzkzOCwgMC42MDk4MDksIDAuODE2MTgxLCAxLjAyMjMyLCAxLjIyODY0LCAxLjQzNDcxIiwgXAotICAgICAgICAgICIwLjIyOTY3NiwgMC40NTYyMDksIDAuNjIyMDE2LCAwLjgyODM5MiwgMS4wMzQ2NCwgMS4yNDA3LCAxLjQ0Njk0IiwgXAotICAgICAgICAgICIwLjI0NTU0OSwgMC40NzIxMTEsIDAuNjM3OTIyLCAwLjg0NDI5MywgMS4wNTA1NCwgMS4yNTY1NywgMS40NjI4NCIsIFwKLSAgICAgICAgICAiMC4yNjE1MzgsIDAuNDg3OTAzLCAwLjY1Mzc0MSwgMC44NjAwODQsIDEuMDY2MzEsIDEuMjcyNTMsIDEuNDc4NjQiLCBcCi0gICAgICAgICAgIjAuMjc2Mzg3LCAwLjUwMjgzNywgMC42Njg2ODEsIDAuODc1MDY0LCAxLjA4MTI0LCAxLjI4NzM3LCAxLjQ5MzYzIiwgXAotICAgICAgICAgICIwLjMwMDE5LCAwLjUyNjU3MiwgMC42OTIzNjYsIDAuODk4Njk5LCAxLjEwNDkxLCAxLjMxMTI0LCAxLjUxNzMiLCBcCi0gICAgICAgICAgIjAuMzE5MzI1LCAwLjU0NTY4NiwgMC43MTE1MzksIDAuOTE3ODgzLCAxLjEyNDEsIDEuMzMwMzYsIDEuNTM2NyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNDE5MTUsIDAuNTMyMTgzLCAwLjg1MzM2OCwgMS4yNjE3LCAxLjY3MDY3LCAyLjA3NTA3LCAyLjQ5MTgzIiwgXAotICAgICAgICAgICIwLjE0MTg0MywgMC41MzIzNDMsIDAuODUzNTM2LCAxLjI1Nzc0LCAxLjY2NTE5LCAyLjA3NTg5LCAyLjQ5MTg2IiwgXAotICAgICAgICAgICIwLjE0MTg3NSwgMC41MzE5ODUsIDAuODUzMzczLCAxLjI1NzMzLCAxLjY2NzE3LCAyLjA4MDgsIDIuNDkxODciLCBcCi0gICAgICAgICAgIjAuMTQxOTQ4LCAwLjUzMjMxOSwgMC44NTM1NTIsIDEuMjU5MjUsIDEuNjY4MSwgMi4wODA5OSwgMi40OTE4OSIsIFwKLSAgICAgICAgICAiMC4xNDE4NTksIDAuNTMyMTQxLCAwLjg1MzM4OSwgMS4yNTc1NywgMS42NjgxNiwgMi4wNzU4OCwgMi40OTE4OCIsIFwKLSAgICAgICAgICAiMC4xNDE5MTgsIDAuNTMyMjg3LCAwLjg1MzU2NiwgMS4yNjA3NiwgMS42Njg2OCwgMi4wNzQ3MywgMi40OTE4MiIsIFwKLSAgICAgICAgICAiMC4xNDE4MTksIDAuNTMyMjgxLCAwLjg1MzQzMywgMS4yNTg3NSwgMS42NjY2MSwgMi4wODEsIDIuNDkxODUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI3NzYsIDAuMDAyODIsIDAuMDAyODI4LCAwLjAwMjgzMiwgMC4wMDI4MzQsIDAuMDAyODM1LCAwLjAwMjgzNiIsIFwKLSAgICAgICAgICAiMC4wMDI3NjcsIDAuMDAyODEsIDAuMDAyODE4LCAwLjAwMjgyMiwgMC4wMDI4MjQsIDAuMDAyODI2LCAwLjAwMjgyNiIsIFwKLSAgICAgICAgICAiMC4wMDI3NjMsIDAuMDAyODA2LCAwLjAwMjgxNSwgMC4wMDI4MTksIDAuMDAyODIxLCAwLjAwMjgyMiwgMC4wMDI4MjMiLCBcCi0gICAgICAgICAgIjAuMDAyNzU5LCAwLjAwMjgwMywgMC4wMDI4MTEsIDAuMDAyODE1LCAwLjAwMjgxOCwgMC4wMDI4MTgsIDAuMDAyODIiLCBcCi0gICAgICAgICAgIjAuMDAyNzU3LCAwLjAwMjgwMSwgMC4wMDI4MDgsIDAuMDAyODEzLCAwLjAwMjgxNSwgMC4wMDI4MTcsIDAuMDAyODE3IiwgXAotICAgICAgICAgICIwLjAwMjc1NCwgMC4wMDI3OTcsIDAuMDAyODA2LCAwLjAwMjgxMSwgMC4wMDI4MTMsIDAuMDAyODE0LCAwLjAwMjgxNSIsIFwKLSAgICAgICAgICAiMC4wMDI3NTEsIDAuMDAyNzk1LCAwLjAwMjgwNCwgMC4wMDI4MDksIDAuMDAyODEzLCAwLjAwMjgxMiwgMC4wMDI4MTMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQ3ODIsIDAuMDA0ODQ3LCAwLjAwNDg1OSwgMC4wMDQ4NjYsIDAuMDA0ODY5LCAwLjAwNDg3MiwgMC4wMDQ4NzMiLCBcCi0gICAgICAgICAgIjAuMDA0Nzc3LCAwLjAwNDg0MiwgMC4wMDQ4NTQsIDAuMDA0ODYxLCAwLjAwNDg2NSwgMC4wMDQ4NjcsIDAuMDA0ODY5IiwgXAotICAgICAgICAgICIwLjAwNDc3NSwgMC4wMDQ4NCwgMC4wMDQ4NTIsIDAuMDA0ODU5LCAwLjAwNDg2MiwgMC4wMDQ4NjUsIDAuMDA0ODY2IiwgXAotICAgICAgICAgICIwLjAwNDc3NCwgMC4wMDQ4MzgsIDAuMDA0ODUxLCAwLjAwNDg1OCwgMC4wMDQ4NjEsIDAuMDA0ODY0LCAwLjAwNDg2NSIsIFwKLSAgICAgICAgICAiMC4wMDQ3NzIsIDAuMDA0ODM2LCAwLjAwNDg0OSwgMC4wMDQ4NTYsIDAuMDA0ODYsIDAuMDA0ODYyLCAwLjAwNDg2NCIsIFwKLSAgICAgICAgICAiMC4wMDQ3NywgMC4wMDQ4MzQsIDAuMDA0ODQ3LCAwLjAwNDg1NSwgMC4wMDQ4NTgsIDAuMDA0ODYxLCAwLjAwNDg2MiIsIFwKLSAgICAgICAgICAiMC4wMDQ3NjgsIDAuMDA0ODMyLCAwLjAwNDg0NiwgMC4wMDQ4NTMsIDAuMDA0ODU3LCAwLjAwNDg2LCAwLjAwNDg2MSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjY2NywgMC4wMDI3MzEsIDAuMDAyNzQzLCAwLjAwMjc1MSwgMC4wMDI3NTYsIDAuMDAyNzU3LCAwLjAwMjc2IiwgXAotICAgICAgICAgICIwLjAwMjY1NywgMC4wMDI3MjEsIDAuMDAyNzM0LCAwLjAwMjc0MSwgMC4wMDI3NDYsIDAuMDAyNzQ3LCAwLjAwMjc0OSIsIFwKLSAgICAgICAgICAiMC4wMDI2NTMsIDAuMDAyNzE2LCAwLjAwMjczLCAwLjAwMjczNiwgMC4wMDI3NCwgMC4wMDI3NDMsIDAuMDAyNzQ1IiwgXAotICAgICAgICAgICIwLjAwMjY0OSwgMC4wMDI3MTMsIDAuMDAyNzI2LCAwLjAwMjczMywgMC4wMDI3MzcsIDAuMDAyNzQsIDAuMDAyNzQyIiwgXAotICAgICAgICAgICIwLjAwMjY0NywgMC4wMDI3MSwgMC4wMDI3MjMsIDAuMDAyNzMxLCAwLjAwMjczNiwgMC4wMDI3MzgsIDAuMDAyNzM5IiwgXAotICAgICAgICAgICIwLjAwMjY0MywgMC4wMDI3MDYsIDAuMDAyNzIsIDAuMDAyNzI3LCAwLjAwMjczNCwgMC4wMDI3MzQsIDAuMDAyNzM2IiwgXAotICAgICAgICAgICIwLjAwMjY0MSwgMC4wMDI3MDMsIDAuMDAyNzE4LCAwLjAwMjcyNiwgMC4wMDI3MjksIDAuMDAyNzMyLCAwLjAwMjczNCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDc5NSwgMC4wMDQ4NzgsIDAuMDA0ODk1LCAwLjAwNDkwNCwgMC4wMDQ5MSwgMC4wMDQ5MTMsIDAuMDA0OTE1IiwgXAotICAgICAgICAgICIwLjAwNDc5LCAwLjAwNDg3MywgMC4wMDQ4OSwgMC4wMDQ5LCAwLjAwNDkwNSwgMC4wMDQ5MDgsIDAuMDA0OTEiLCBcCi0gICAgICAgICAgIjAuMDA0Nzg4LCAwLjAwNDg3MSwgMC4wMDQ4ODgsIDAuMDA0ODk4LCAwLjAwNDkwMywgMC4wMDQ5MDYsIDAuMDA0OTA4IiwgXAotICAgICAgICAgICIwLjAwNDc4NiwgMC4wMDQ4NjksIDAuMDA0ODg2LCAwLjAwNDg5NiwgMC4wMDQ5MDEsIDAuMDA0OTA1LCAwLjAwNDkwNyIsIFwKLSAgICAgICAgICAiMC4wMDQ3ODUsIDAuMDA0ODY3LCAwLjAwNDg4NSwgMC4wMDQ4OTQsIDAuMDA0OSwgMC4wMDQ5MDMsIDAuMDA0OTA1IiwgXAotICAgICAgICAgICIwLjAwNDc4MywgMC4wMDQ4NjUsIDAuMDA0ODgyLCAwLjAwNDg5MiwgMC4wMDQ4OTgsIDAuMDA0OTAxLCAwLjAwNDkwNCIsIFwKLSAgICAgICAgICAiMC4wMDQ3ODEsIDAuMDA0ODYyLCAwLjAwNDg4LCAwLjAwNDg5LCAwLjAwNDg5NiwgMC4wMDQ5LCAwLjAwNDkwMiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjczOCwgMC4wMDI4MDQsIDAuMDAyODE1LCAwLjAwMjgyNCwgMC4wMDI4MywgMC4wMDI4MzEsIDAuMDAyODMzIiwgXAotICAgICAgICAgICIwLjAwMjcyOSwgMC4wMDI3OTIsIDAuMDAyODA2LCAwLjAwMjgxNCwgMC4wMDI4MTgsIDAuMDAyODIxLCAwLjAwMjgyMyIsIFwKLSAgICAgICAgICAiMC4wMDI3MjQsIDAuMDAyNzg4LCAwLjAwMjgwMiwgMC4wMDI4MTEsIDAuMDAyODE0LCAwLjAwMjgxNywgMC4wMDI4MTkiLCBcCi0gICAgICAgICAgIjAuMDAyNzIxLCAwLjAwMjc4NSwgMC4wMDI3OTksIDAuMDAyODA3LCAwLjAwMjgxMSwgMC4wMDI4MTUsIDAuMDAyODE2IiwgXAotICAgICAgICAgICIwLjAwMjcxOSwgMC4wMDI3ODIsIDAuMDAyNzk2LCAwLjAwMjgwNCwgMC4wMDI4MDksIDAuMDAyODExLCAwLjAwMjgxNCIsIFwKLSAgICAgICAgICAiMC4wMDI3MTYsIDAuMDAyNzc4LCAwLjAwMjc5MywgMC4wMDI4MDEsIDAuMDAyODA1LCAwLjAwMjgwOSwgMC4wMDI4MSIsIFwKLSAgICAgICAgICAiMC4wMDI3MTMsIDAuMDAyNzc1LCAwLjAwMjc5LCAwLjAwMjc5OCwgMC4wMDI4MDMsIDAuMDAyODA2LCAwLjAwMjgwOCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNTE2LCAwLjAwNTI0MywgMC4wMDUyNjEsIDAuMDA1MjcxLCAwLjAwNTI3NywgMC4wMDUyOCwgMC4wMDUyODIiLCBcCi0gICAgICAgICAgIjAuMDA1MTU1LCAwLjAwNTIzOCwgMC4wMDUyNTYsIDAuMDA1MjY2LCAwLjAwNTI3MiwgMC4wMDUyNzUsIDAuMDA1Mjc4IiwgXAotICAgICAgICAgICIwLjAwNTE1MywgMC4wMDUyMzYsIDAuMDA1MjU0LCAwLjAwNTI2NCwgMC4wMDUyNywgMC4wMDUyNzMsIDAuMDA1Mjc1IiwgXAotICAgICAgICAgICIwLjAwNTE1MiwgMC4wMDUyMzQsIDAuMDA1MjUyLCAwLjAwNTI2MywgMC4wMDUyNjgsIDAuMDA1MjcyLCAwLjAwNTI3NCIsIFwKLSAgICAgICAgICAiMC4wMDUxNSwgMC4wMDUyMzIsIDAuMDA1MjUsIDAuMDA1MjYxLCAwLjAwNTI2NywgMC4wMDUyNywgMC4wMDUyNzMiLCBcCi0gICAgICAgICAgIjAuMDA1MTQ4LCAwLjAwNTIzLCAwLjAwNTI0OCwgMC4wMDUyNTksIDAuMDA1MjY1LCAwLjAwNTI2OCwgMC4wMDUyNzEiLCBcCi0gICAgICAgICAgIjAuMDA1MTQ3LCAwLjAwNTIyNywgMC4wMDUyNDYsIDAuMDA1MjU3LCAwLjAwNTI2MywgMC4wMDUyNjcsIDAuMDA1MjY5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyNTYyLCAwLjAwMjYyNywgMC4wMDI2MzksIDAuMDAyNjQ3LCAwLjAwMjY1MiwgMC4wMDI2NTUsIDAuMDAyNjU3IiwgXAotICAgICAgICAgICIwLjAwMjU1MiwgMC4wMDI2MTYsIDAuMDAyNjMsIDAuMDAyNjM5LCAwLjAwMjY0MiwgMC4wMDI2NDUsIDAuMDAyNjQ3IiwgXAotICAgICAgICAgICIwLjAwMjU0OCwgMC4wMDI2MTIsIDAuMDAyNjI2LCAwLjAwMjYzNCwgMC4wMDI2MzgsIDAuMDAyNjQxLCAwLjAwMjY0MiIsIFwKLSAgICAgICAgICAiMC4wMDI1NDUsIDAuMDAyNjA5LCAwLjAwMjYyMywgMC4wMDI2MzEsIDAuMDAyNjM1LCAwLjAwMjYzOCwgMC4wMDI2MzkiLCBcCi0gICAgICAgICAgIjAuMDAyNTQzLCAwLjAwMjYwNiwgMC4wMDI2MjEsIDAuMDAyNjI4LCAwLjAwMjYzMywgMC4wMDI2MzUsIDAuMDAyNjM3IiwgXAotICAgICAgICAgICIwLjAwMjU0LCAwLjAwMjYwMiwgMC4wMDI2MTYsIDAuMDAyNjI1LCAwLjAwMjYyOSwgMC4wMDI2MzIsIDAuMDAyNjM0IiwgXAotICAgICAgICAgICIwLjAwMjUzNywgMC4wMDI2LCAwLjAwMjYxNSwgMC4wMDI2MjIsIDAuMDAyNjI3LCAwLjAwMjYzLCAwLjAwMjYzMiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNTIxNCwgMC4wMDUyOTcsIDAuMDA1MzE1LCAwLjAwNTMyNSwgMC4wMDUzMzEsIDAuMDA1MzM0LCAwLjAwNTMzNiIsIFwKLSAgICAgICAgICAiMC4wMDUyMSwgMC4wMDUyOTMsIDAuMDA1MzEsIDAuMDA1MzIxLCAwLjAwNTMyNiwgMC4wMDUzMywgMC4wMDUzMzIiLCBcCi0gICAgICAgICAgIjAuMDA1MjA4LCAwLjAwNTI5LCAwLjAwNTMwOCwgMC4wMDUzMTgsIDAuMDA1MzI0LCAwLjAwNTMyOCwgMC4wMDUzMyIsIFwKLSAgICAgICAgICAiMC4wMDUyMDYsIDAuMDA1Mjg4LCAwLjAwNTMwNiwgMC4wMDUzMTcsIDAuMDA1MzIyLCAwLjAwNTMyNiwgMC4wMDUzMjgiLCBcCi0gICAgICAgICAgIjAuMDA1MjA1LCAwLjAwNTI4NywgMC4wMDUzMDUsIDAuMDA1MzE1LCAwLjAwNTMyMSwgMC4wMDUzMjUsIDAuMDA1MzI3IiwgXAotICAgICAgICAgICIwLjAwNTIwMywgMC4wMDUyODQsIDAuMDA1MzAyLCAwLjAwNTMxMywgMC4wMDUzMTksIDAuMDA1MzIzLCAwLjAwNTMyNSIsIFwKLSAgICAgICAgICAiMC4wMDUyMDEsIDAuMDA1MjgyLCAwLjAwNTMsIDAuMDA1MzExLCAwLjAwNTMxNywgMC4wMDUzMjEsIDAuMDA1MzI0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUzAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNzE5OCwgMC4wMDcyNDQsIDAuMDA3MjU0LCAwLjAwNzI1OSwgMC4wMDcyNjMsIDAuMDA3MjY1LCAwLjAwNzI2NiIsIFwKLSAgICAgICAgICAiMC4wMDcxOSwgMC4wMDcyMzUsIDAuMDA3MjQ3LCAwLjAwNzI1MSwgMC4wMDcyNTQsIDAuMDA3MjU2LCAwLjAwNzI1NyIsIFwKLSAgICAgICAgICAiMC4wMDcxNzksIDAuMDA3MjI2LCAwLjAwNzIzNSwgMC4wMDcyNDEsIDAuMDA3MjQ0LCAwLjAwNzI0NiwgMC4wMDcyNDciLCBcCi0gICAgICAgICAgIjAuMDA3MTczLCAwLjAwNzIxOSwgMC4wMDcyMjksIDAuMDA3MjM0LCAwLjAwNzIzNywgMC4wMDcyMzksIDAuMDA3MjQxIiwgXAotICAgICAgICAgICIwLjAwNzE2OCwgMC4wMDcyMTQsIDAuMDA3MjI0LCAwLjAwNzIyOSwgMC4wMDcyMzIsIDAuMDA3MjM2LCAwLjAwNzIzNSIsIFwKLSAgICAgICAgICAiMC4wMDcxNjUsIDAuMDA3MjExLCAwLjAwNzIyLCAwLjAwNzIyNywgMC4wMDcyMjksIDAuMDA3MjMxLCAwLjAwNzIzMyIsIFwKLSAgICAgICAgICAiMC4wMDcxNiwgMC4wMDcyMDcsIDAuMDA3MjE2LCAwLjAwNzIyMiwgMC4wMDcyMjYsIDAuMDA3MjI3LCAwLjAwNzIyOCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjkzNywgMC4wMDcwMTgsIDAuMDA3MDM2LCAwLjAwNzA0NywgMC4wMDcwNTMsIDAuMDA3MDU2LCAwLjAwNzA1OSIsIFwKLSAgICAgICAgICAiMC4wMDY5MzgsIDAuMDA3MDE4LCAwLjAwNzAzNywgMC4wMDcwNDcsIDAuMDA3MDUzLCAwLjAwNzA1NywgMC4wMDcwNTkiLCBcCi0gICAgICAgICAgIjAuMDA2OTM0LCAwLjAwNzAxNSwgMC4wMDcwMzMsIDAuMDA3MDQzLCAwLjAwNzA0OSwgMC4wMDcwNTMsIDAuMDA3MDU1IiwgXAotICAgICAgICAgICIwLjAwNjkyOSwgMC4wMDcwMSwgMC4wMDcwMjgsIDAuMDA3MDM5LCAwLjAwNzA0NCwgMC4wMDcwNDgsIDAuMDA3MDUxIiwgXAotICAgICAgICAgICIwLjAwNjkyNCwgMC4wMDcwMDUsIDAuMDA3MDIzLCAwLjAwNzAzNCwgMC4wMDcwNCwgMC4wMDcwNDMsIDAuMDA3MDQ2IiwgXAotICAgICAgICAgICIwLjAwNjkxNywgMC4wMDY5OTgsIDAuMDA3MDE2LCAwLjAwNzAyNywgMC4wMDcwMzMsIDAuMDA3MDM2LCAwLjAwNzAzOSIsIFwKLSAgICAgICAgICAiMC4wMDY5MTUsIDAuMDA2OTk1LCAwLjAwNzAxNCwgMC4wMDcwMjQsIDAuMDA3MDMsIDAuMDA3MDM0LCAwLjAwNzAzNiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlMxIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDM3NzIsIDAuMDAzODI4LCAwLjAwMzgzNywgMC4wMDM4NDEsIDAuMDAzODQzLCAwLjAwMzg0NSwgMC4wMDM4NDUiLCBcCi0gICAgICAgICAgIjAuMDAzNzc2LCAwLjAwMzgzMywgMC4wMDM4NDIsIDAuMDAzODQ0LCAwLjAwMzg1LCAwLjAwMzg1LCAwLjAwMzg1IiwgXAotICAgICAgICAgICIwLjAwMzc5NCwgMC4wMDM4NDksIDAuMDAzODU4LCAwLjAwMzg2MywgMC4wMDM4NjUsIDAuMDAzODY3LCAwLjAwMzg2OCIsIFwKLSAgICAgICAgICAiMC4wMDM4MTEsIDAuMDAzODY1LCAwLjAwMzg3NCwgMC4wMDM4NzksIDAuMDAzODgyLCAwLjAwMzg4NCwgMC4wMDM4ODUiLCBcCi0gICAgICAgICAgIjAuMDAzODI0LCAwLjAwMzg3OCwgMC4wMDM4ODcsIDAuMDAzODkzLCAwLjAwMzg5NiwgMC4wMDM4OTcsIDAuMDAzODk5IiwgXAotICAgICAgICAgICIwLjAwMzg0NiwgMC4wMDM4OTgsIDAuMDAzOTA4LCAwLjAwMzkxNCwgMC4wMDM5MTcsIDAuMDAzOTE5LCAwLjAwMzkyMSIsIFwKLSAgICAgICAgICAiMC4wMDM4NjMsIDAuMDAzOTE1LCAwLjAwMzkyNSwgMC4wMDM5MzEsIDAuMDAzOTM1LCAwLjAwMzkzNywgMC4wMDM5MzgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDMwMTMsIDAuMDAzMDg5LCAwLjAwMzEwMSwgMC4wMDMxMDcsIDAuMDAzMTExLCAwLjAwMzExMywgMC4wMDMxMTQiLCBcCi0gICAgICAgICAgIjAuMDAzMDEsIDAuMDAzMDg2LCAwLjAwMzA5OCwgMC4wMDMxMDQsIDAuMDAzMTA4LCAwLjAwMzExLCAwLjAwMzExMSIsIFwKLSAgICAgICAgICAiMC4wMDMwMjMsIDAuMDAzMDk3LCAwLjAwMzEwOSwgMC4wMDMxMTYsIDAuMDAzMTIsIDAuMDAzMTIyLCAwLjAwMzEyMyIsIFwKLSAgICAgICAgICAiMC4wMDMwNDEsIDAuMDAzMTE0LCAwLjAwMzEyNiwgMC4wMDMxMzQsIDAuMDAzMTM3LCAwLjAwMzE0LCAwLjAwMzE0MSIsIFwKLSAgICAgICAgICAiMC4wMDMwNTIsIDAuMDAzMTI0LCAwLjAwMzEzNywgMC4wMDMxNDQsIDAuMDAzMTQ4LCAwLjAwMzE1LCAwLjAwMzE1MiIsIFwKLSAgICAgICAgICAiMC4wMDMwNzQsIDAuMDAzMTQ1LCAwLjAwMzE1OCwgMC4wMDMxNjYsIDAuMDAzMTcsIDAuMDAzMTczLCAwLjAwMzE3NCIsIFwKLSAgICAgICAgICAiMC4wMDMwOTIsIDAuMDAzMTYxLCAwLjAwMzE3NSwgMC4wMDMxODMsIDAuMDAzMTg3LCAwLjAwMzE5LCAwLjAwMzE5MiIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBNWDRYTCAqCi0gKiAtLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoTVg0WEwpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4xODM5OTg7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYzNjAzNzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MzQwOTU7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjM2MDM3OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDczMiwgMC4wMDA3MjEsIDAuMDAwNzE1LCAwLjAwMDcxMSwgMC4wMDA3MDgsIDAuMDAwNzA0LCAwLjAwMDcwMyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTg5LCAwLjAwMTg4NSwgMC4wMDE4ODIsIDAuMDAxODc5LCAwLjAwMTg3OCwgMC4wMDE4NzYsIDAuMDAxODc0Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA1NTYwNzU7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNTU0MTcxOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDU1NjA3NTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxNTksIDAuMDAwMTYxLCAwLjAwMDE2MSwgMC4wMDAxNjIsIDAuMDAwMTYyLCAwLjAwMDE2MiwgMC4wMDAxNjIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxNjgsIDAuMDAwMTY2LCAwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiwgMC4wMDAxNjYiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEMpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDU4ODA2OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDU4NTk0NTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA1ODgwNjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA3NDQsIDAuMDAwNzMzLCAwLjAwMDcyNiwgMC4wMDA3MjIsIDAuMDAwNzE5LCAwLjAwMDcxNSwgMC4wMDA3MTQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDE3MjEsIDAuMDAxNzE1LCAwLjAwMTcxMiwgMC4wMDE3MSwgMC4wMDE3MDgsIDAuMDAxNzA3LCAwLjAwMTcwNiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNTg5NzA2OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDU4NzkyMTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA1ODk3MDY7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMTU5LCAwLjAwMDE2MSwgMC4wMDAxNjEsIDAuMDAwMTYyLCAwLjAwMDE2MiwgMC4wMDAxNjIsIDAuMDAwMTYyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMTY5LCAwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY2Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxODk1MTI7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxODk0Mjg7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxODk1MTI7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzI3LCAwLjAwMDMxMiwgMC4wMDAzMDMsIDAuMDAwMjk4LCAwLjAwMDI5NCwgMC4wMDAyOTMsIDAuMDAwMjkzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyNTMsIDAuMDAyNTIxLCAwLjAwMjUxNCwgMC4wMDI1MDksIDAuMDAyNTA5LCAwLjAwMjUwNywgMC4wMDI1MDQiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFMxKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDEwNTQxMjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDEwNTMyMzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDEwNTQxMjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAwOTUsIDAuMDAwMDc2LCAwLjAwMDA2NywgMC4wMDAwNjIsIDAuMDAwMDYxLCAwLjAwMDA2MSwgMC4wMDAwNTkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDE1OSwgMC4wMDE1NzksIDAuMDAxNTcyLCAwLjAwMTU2OCwgMC4wMDE1NjYsIDAuMDAxNTY0LCAwLjAwMTU2NCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjA2Nzc1MzM7Ci0gICAgZnVuY3Rpb24gOiAiKChTMSAoKFMwIEQpICsgKCFTMCBDKSkpICsgKCFTMSAoKFMwIEIpICsgKCFTMCBBKSkpKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzc4NTgzLCAwLjQwNDYxNiwgMC42MzMzMTQsIDEuMDEyNDMsIDEuMzkxMjEsIDIuMjc0OTQsIDIuNzc5OTMiLCBcCi0gICAgICAgICAgIjAuMzkwMTkyLCAwLjQxNjE3NCwgMC42NDQ4MTMsIDEuMDIzODgsIDEuNDAyNzQsIDIuMjg2ODEsIDIuNzkxNzEiLCBcCi0gICAgICAgICAgIjAuNDAzODk1LCAwLjQyOTkxMiwgMC42NTg2MjQsIDEuMDM3NzcsIDEuNDE2NzcsIDIuMzAwMjYsIDIuODA1MiIsIFwKLSAgICAgICAgICAiMC40MTc2MDksIDAuNDQzNTcxLCAwLjY3MjIwOCwgMS4wNTEzNiwgMS40MzAxNywgMi4zMTM4MywgMi44MTg3NyIsIFwKLSAgICAgICAgICAiMC40MzEzMDEsIDAuNDU3MzMsIDAuNjg2MDYzLCAxLjA2NTIxLCAxLjQ0NCwgMi4zMjc2OCwgMi44MzI2NSIsIFwKLSAgICAgICAgICAiMC40NTMyMzEsIDAuNDc5MjE1LCAwLjcwNzg1NSwgMS4wODcwMiwgMS40NjU4LCAyLjM0OTczLCAyLjg1NDc5IiwgXAotICAgICAgICAgICIwLjQ3MjI4MiwgMC40OTgyOTgsIDAuNzI2OTg4LCAxLjEwNTk3LCAxLjQ4NDg2LCAyLjM2ODk1LCAyLjg3Mzg1Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI5MjM0NiwgMC4zNDEyMTYsIDAuNzkwNjcsIDEuNTU4MzUsIDIuMzI2MTIsIDQuMTIxNzUsIDUuMTQxNTYiLCBcCi0gICAgICAgICAgIjAuMjkyMzkyLCAwLjM0MTIxMywgMC43OTI0NiwgMS41NTUyMywgMi4zMjY0OCwgNC4xMTE3NCwgNS4xNDE2MSIsIFwKLSAgICAgICAgICAiMC4yOTIzNzYsIDAuMzQxMjQ2LCAwLjc5MTE1OCwgMS41NTgyOSwgMi4zMjE2NSwgNC4xMjA4OSwgNS4xMzg5MiIsIFwKLSAgICAgICAgICAiMC4yOTIzNDEsIDAuMzQxMTk0LCAwLjc5MTI4MiwgMS41NTgyOCwgMi4zMjY0OCwgNC4xMjEzMSwgNS4xNDE0MiIsIFwKLSAgICAgICAgICAiMC4yOTIzMDYsIDAuMzQxMTgyLCAwLjc5MTA2NSwgMS41NTgyNiwgMi4zMjI1NywgNC4xMjEyOSwgNS4xNDEzOSIsIFwKLSAgICAgICAgICAiMC4yOTI0MywgMC4zNDEyNTQsIDAuNzkyMzI4LCAxLjU1ODI1LCAyLjMyNjQ1LCA0LjEyMTk5LCA1LjE0MDkiLCBcCi0gICAgICAgICAgIjAuMjkyNDY1LCAwLjM0MTE5NywgMC43OTI1MzgsIDEuNTU3MTQsIDIuMzI2MzcsIDQuMTEyMzEsIDUuMTQwOTciKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzc4Njc5LCAwLjQwOTA5MywgMC42Nzc1MTMsIDEuMTIzMjQsIDEuNTY4NywgMi42MDgzNCwgMy4yMDIxMyIsIFwKLSAgICAgICAgICAiMC4zOTAyNjUsIDAuNDIwNjY5LCAwLjY4OTA3NywgMS4xMzQ3OCwgMS41ODAzNSwgMi42MTk3OSwgMy4yMTM1MyIsIFwKLSAgICAgICAgICAiMC40MDM1MzEsIDAuNDMzOTQ2LCAwLjcwMjM2MiwgMS4xNDgwOSwgMS41OTM1NSwgMi42MzMyMSwgMy4yMjY5OCIsIFwKLSAgICAgICAgICAiMC40MTYyMTcsIDAuNDQ2NTY0LCAwLjcxNDk3NiwgMS4xNjA2OSwgMS42MDYxNywgMi42NDU4NSwgMy4yMzkzOCIsIFwKLSAgICAgICAgICAiMC40Mjg1NTUsIDAuNDU4OTUzLCAwLjcyNzM2NiwgMS4xNzMwOCwgMS42MTg2NCwgMi42NTgyNywgMy4yNTIxNCIsIFwKLSAgICAgICAgICAiMC40NDgxODIsIDAuNDc4NTk3LCAwLjc0NzAyNiwgMS4xOTI3NiwgMS42MzgyMiwgMi42Nzc4OCwgMy4yNzE2NCIsIFwKLSAgICAgICAgICAiMC40NjUzMjQsIDAuNDk1NjY1LCAwLjc2NDA5NCwgMS4yMDk4MiwgMS42NTUzLCAyLjY5NDk3LCAzLjI4ODcxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMzMTQyNiwgMC4zODc4MTMsIDAuOTA4NDY5LCAxLjc4OTU2LCAyLjY2Njk1LCA0LjcyMzgyLCA1Ljg5MDU1IiwgXAotICAgICAgICAgICIwLjMzMTM4NCwgMC4zODc4NDYsIDAuOTA4NDkyLCAxLjc4OTM3LCAyLjY2NjkxLCA0LjcyMjM3LCA1Ljg5NDA4IiwgXAotICAgICAgICAgICIwLjMzMTQzMiwgMC4zODc4MjUsIDAuOTA4NDcyLCAxLjc4OTYsIDIuNjY2MzgsIDQuNzIzNjgsIDUuODkyNzEiLCBcCi0gICAgICAgICAgIjAuMzMxMzg0LCAwLjM4Nzg0LCAwLjkwODQ3OCwgMS43ODk1LCAyLjY2NTkxLCA0LjcyMjEzLCA1Ljg5Mzk2IiwgXAotICAgICAgICAgICIwLjMzMTMyOSwgMC4zODc3ODcsIDAuOTA4NDczLCAxLjc4OTQyLCAyLjY3MTU0LCA0LjcyMjE5LCA1Ljg5NDM0IiwgXAotICAgICAgICAgICIwLjMzMTM5NywgMC4zODc3NzQsIDAuOTA4NDcsIDEuNzg5NiwgMi42NjY0MiwgNC43MjM0MSwgNS44OTI3IiwgXAotICAgICAgICAgICIwLjMzMTQ1NiwgMC4zODc4NDEsIDAuOTA4NDczLCAxLjc4OTU4LCAyLjY2NTg2LCA0LjcyMzY1LCA1Ljg5MzY1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjM3ODkwNiwgMC40MDQ5NDgsIDAuNjMzNjg3LCAxLjAxMjgyLCAxLjM5MTY0LCAyLjI3NTU3LCAyLjc4MDUiLCBcCi0gICAgICAgICAgIjAuMzkwNjEsIDAuNDE2NjI1LCAwLjY0NTMwOCwgMS4wMjQ0NCwgMS40MDMxOSwgMi4yODcyOCwgMi43OTIxNCIsIFwKLSAgICAgICAgICAiMC40MDQ1NzgsIDAuNDMwNiwgMC42NTkzMTcsIDEuMDM4NDgsIDEuNDE3MzIsIDIuMzAxMjgsIDIuODA2MDQiLCBcCi0gICAgICAgICAgIjAuNDE4Mjg2LCAwLjQ0NDMxNiwgMC42NzMwMSwgMS4wNTIxOCwgMS40MzA5NCwgMi4zMTQ5NSwgMi44MTk5MSIsIFwKLSAgICAgICAgICAiMC40MzIxMjEsIDAuNDU4MTQsIDAuNjg2ODc0LCAxLjA2NjAzLCAxLjQ0NDgzLCAyLjMyODc2LCAyLjgzMzgzIiwgXAotICAgICAgICAgICIwLjQ1NDAyNywgMC40ODAwMTksIDAuNzA4Njc0LCAxLjA4Nzg1LCAxLjQ2NjYzLCAyLjM1MDU4LCAyLjg1NTYzIiwgXAotICAgICAgICAgICIwLjQ3MzM4NywgMC40OTk0MTMsIDAuNzI4MTEyLCAxLjEwNzE1LCAxLjQ4NiwgMi4zNjk4OCwgMi44NzQ5MyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yOTIzOCwgMC4zNDEyNiwgMC43OTI3NzcsIDEuNTU4MzksIDIuMzIyODUsIDQuMTIyMjIsIDUuMTQxNjkiLCBcCi0gICAgICAgICAgIjAuMjkyNTA5LCAwLjM0MTI1NiwgMC43OTI3MjMsIDEuNTU4MzcsIDIuMzI2NDgsIDQuMTEyNTgsIDUuMTQxNDkiLCBcCi0gICAgICAgICAgIjAuMjkyNDE0LCAwLjM0MTI4OSwgMC43OTEyNjIsIDEuNTU4MzMsIDIuMzI2NzksIDQuMTExNzcsIDUuMTM0OTgiLCBcCi0gICAgICAgICAgIjAuMjkyNDM0LCAwLjM0MTMwMSwgMC43OTE0NTYsIDEuNTU4MzQsIDIuMzI1OTQsIDQuMTIyMDcsIDUuMTQwOTMiLCBcCi0gICAgICAgICAgIjAuMjkyNDE3LCAwLjM0MTIyLCAwLjc5MjY3MiwgMS41NTgzNiwgMi4zMjY2OSwgNC4xMjIwMywgNS4xMzcwNyIsIFwKLSAgICAgICAgICAiMC4yOTI0NzYsIDAuMzQxMjY4LCAwLjc5MjM2OSwgMS41NTgyOSwgMi4zMjY1LCA0LjEyMjA0LCA1LjE0MDk2IiwgXAotICAgICAgICAgICIwLjI5MjQ5NSwgMC4zNDEyMjYsIDAuNzkwODUsIDEuNTU3OSwgMi4zMjY0MywgNC4xMTMzNSwgNS4xNDExMSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zODEyNjgsIDAuNDExNywgMC42ODAxNzcsIDEuMTI1OTQsIDEuNTcxNDIsIDIuNjExMTEsIDMuMjA0ODkiLCBcCi0gICAgICAgICAgIjAuMzkyNzg4LCAwLjQyMzIwNiwgMC42OTE2NzMsIDEuMTM3NDIsIDEuNTgzMDQsIDIuNjIyNDgsIDMuMjE2MyIsIFwKLSAgICAgICAgICAiMC40MDU5NzUsIDAuNDM2NDAyLCAwLjcwNDg4MSwgMS4xNTA2NSwgMS41OTYxMywgMi42MzU4MiwgMy4yMjk1OSIsIFwKLSAgICAgICAgICAiMC40MTg1MTIsIDAuNDQ4OTU0LCAwLjcxNzQsIDEuMTYzMTQsIDEuNjA4NzEsIDIuNjQ4MjIsIDMuMjQyNDEiLCBcCi0gICAgICAgICAgIjAuNDMwODU4LCAwLjQ2MTI0MywgMC43Mjk3MTksIDEuMTc1NDcsIDEuNjIwOTksIDIuNjYwNzEsIDMuMjU0MyIsIFwKLSAgICAgICAgICAiMC40NTA0MjMsIDAuNDgwODMzLCAwLjc0OTMyOSwgMS4xOTUwNiwgMS42NDA1NywgMi42ODAzLCAzLjI3NDA4IiwgXAotICAgICAgICAgICIwLjQ2NzM3NCwgMC40OTc3NTIsIDAuNzY2MjM4LCAxLjIxMjExLCAxLjY1NzUsIDIuNjk3MjksIDMuMjkxMjEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzMxNjA0LCAwLjM4Nzk4OSwgMC45MDg2MjIsIDEuNzg5ODIsIDIuNjY3NSwgNC43MjM5NiwgNS44OTMxNSIsIFwKLSAgICAgICAgICAiMC4zMzE1NjMsIDAuMzg4MDMsIDAuOTA4NjM1LCAxLjc4OTU5LCAyLjY2OTgxLCA0LjcyMjkzLCA1Ljg5MzY0IiwgXAotICAgICAgICAgICIwLjMzMTYxNSwgMC4zODgwMDEsIDAuOTA4NjIsIDEuNzg5OCwgMi42NjcwMywgNC43MjM3NywgNS44OTMyIiwgXAotICAgICAgICAgICIwLjMzMTUyMSwgMC4zODc5NjIsIDAuOTA4NjUxLCAxLjc4OTU0LCAyLjY3MzQzLCA0LjcyNDE1LCA1Ljg5MjU5IiwgXAotICAgICAgICAgICIwLjMzMTUyNCwgMC4zODc5NjEsIDAuOTA4NjI1LCAxLjc4OTY2LCAyLjY3MjcsIDQuNzIxNTcsIDUuODk0MTYiLCBcCi0gICAgICAgICAgIjAuMzMxNTI4LCAwLjM4NzkyLCAwLjkwODYsIDEuNzg5NjYsIDIuNjY3OTQsIDQuNzE5NzksIDUuODkxOCIsIFwKLSAgICAgICAgICAiMC4zMzE3MTcsIDAuMzg4MDAyLCAwLjkwODY1NywgMS43ODk3NiwgMi42NzMzNiwgNC43MjM4NSwgNS44OTQ1MiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zNzA0MDgsIDAuMzk2MzQ1LCAwLjYyNDkxMywgMS4wMDM5OSwgMS4zODI4NywgMi4yNjY2OCwgMi43NzE4NSIsIFwKLSAgICAgICAgICAiMC4zODE5OTYsIDAuNDA3OTUzLCAwLjYzNjU2NCwgMS4wMTU3NSwgMS4zOTQ0NywgMi4yNzg1MywgMi43ODM1NSIsIFwKLSAgICAgICAgICAiMC4zOTU2NzcsIDAuNDIxNjMzLCAwLjY1MDI4OCwgMS4wMjk0NiwgMS40MDgzMiwgMi4yOTIyNiwgMi43OTcxNiIsIFwKLSAgICAgICAgICAiMC40MDkzMTQsIDAuNDM1Mjg1LCAwLjY2Mzg1OCwgMS4wNDI5MiwgMS40MjE3OSwgMi4zMDU2OSwgMi44MTA3NyIsIFwKLSAgICAgICAgICAiMC40MjMwNiwgMC40NDg5OTEsIDAuNjc3NTY4LCAxLjA1NjY5LCAxLjQzNTU0LCAyLjMxOTU2LCAyLjgyNDU4IiwgXAotICAgICAgICAgICIwLjQ0NDcyNSwgMC40NzA2NDksIDAuNjk5MjA5LCAxLjA3ODQsIDEuNDU3MTksIDIuMzQxMjMsIDIuODQ2MjQiLCBcCi0gICAgICAgICAgIjAuNDY0MDI3LCAwLjQ4OTk5NiwgMC43MTg1NDksIDEuMDk3NjYsIDEuNDc2NTMsIDIuMzYwNTYsIDIuODY1NTciKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjkxNjMsIDAuMzQwNDgzLCAwLjc5MDkyNCwgMS41NTUyOCwgMi4zMjY2MSwgNC4xMjIyLCA1LjE0MTgiLCBcCi0gICAgICAgICAgIjAuMjkxNTk0LCAwLjM0MDM2OCwgMC43OTIxMSwgMS41NTU0OSwgMi4zMjY0NywgNC4xMjIxNCwgNS4xNDE0NiIsIFwKLSAgICAgICAgICAiMC4yOTE1NTIsIDAuMzQwMzgxLCAwLjc5MjE1OSwgMS41NTgyMiwgMi4zMjY3MiwgNC4xMjIxLCA1LjE0MTU2IiwgXAotICAgICAgICAgICIwLjI5MTU3MiwgMC4zNDAzNjEsIDAuNzkwOTI2LCAxLjU1Nzc0LCAyLjMyNjM4LCA0LjExMzQ1LCA1LjE0MTEzIiwgXAotICAgICAgICAgICIwLjI5MTU0NywgMC4zNDA0MDEsIDAuNzkxOTgxLCAxLjU1NTMxLCAyLjMyNjQyLCA0LjEyMjA0LCA1LjE0MTA3IiwgXAotICAgICAgICAgICIwLjI5MTU3MywgMC4zNDA0MjIsIDAuNzkwODUxLCAxLjU1ODIsIDIuMzI1OTYsIDQuMTExODQsIDUuMTQwODIiLCBcCi0gICAgICAgICAgIjAuMjkxNTc3LCAwLjM0MDM0OCwgMC43OTIwMTgsIDEuNTU1MjksIDIuMzI2NDEsIDQuMTIyMDIsIDUuMTQxMDgiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzcyNDUsIDAuNDAyODA3LCAwLjY3MTExMSwgMS4xMTY4MSwgMS41NjIyOCwgMi42MDE5MiwgMy4xOTU3IiwgXAotICAgICAgICAgICIwLjM4NDA0NCwgMC40MTQzOTcsIDAuNjgyNzA4LCAxLjEyODQxLCAxLjU3Mzg4LCAyLjYxMzUsIDMuMjA3MyIsIFwKLSAgICAgICAgICAiMC4zOTc0NzYsIDAuNDI3ODA3LCAwLjY5NjEzLCAxLjE0MTgsIDEuNTg3MjksIDIuNjI2NjcsIDMuMjIwOTUiLCBcCi0gICAgICAgICAgIjAuNDEwMTY5LCAwLjQ0MDQ2MiwgMC43MDg3NjMsIDEuMTU0NDUsIDEuNTk5OTQsIDIuNjM5NTksIDMuMjMzMTEiLCBcCi0gICAgICAgICAgIjAuNDIyNTE5LCAwLjQ1Mjg2NCwgMC43MjExMzgsIDEuMTY2ODUsIDEuNjEyNDcsIDIuNjUxODUsIDMuMjQ1OTgiLCBcCi0gICAgICAgICAgIjAuNDQyMjYxLCAwLjQ3MjU4NywgMC43NDA4OTgsIDEuMTg2NiwgMS42MzIwOSwgMi42NzE3MywgMy4yNjU0NyIsIFwKLSAgICAgICAgICAiMC40NTkyNCwgMC40ODk1OTIsIDAuNzU3OTA3LCAxLjIwMzYsIDEuNjQ5MTcsIDIuNjg4OCwgMy4yODI1NyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMzA1MTUsIDAuMzg2OTgsIDAuOTA4MTc3LCAxLjc4OTMsIDIuNjY2NTYsIDQuNzIzODEsIDUuODkyNTMiLCBcCi0gICAgICAgICAgIjAuMzMwNTA5LCAwLjM4Njk2NiwgMC45MDgxNzUsIDEuNzg5NDEsIDIuNjY2NTgsIDQuNzIzOTEsIDUuODkwNTMiLCBcCi0gICAgICAgICAgIjAuMzMwNDMsIDAuMzg3MjQ2LCAwLjkwODIwNywgMS43ODkxMiwgMi42NzMxOCwgNC43MjQwNCwgNS44OTMxIiwgXAotICAgICAgICAgICIwLjMzMDUxMywgMC4zODY5ODcsIDAuOTA4MTcyLCAxLjc4OTI3LCAyLjY2Njg1LCA0LjcyMzY1LCA1Ljg5MzkzIiwgXAotICAgICAgICAgICIwLjMzMDQ3NiwgMC4zODY4MzksIDAuOTA2MjcyLCAxLjc4OTA5LCAyLjY2OTQ2LCA0LjcyMzgyLCA1Ljg5NDc3IiwgXAotICAgICAgICAgICIwLjMzMDQ0NywgMC4zODY5NDIsIDAuOTA4MTcyLCAxLjc4OTMyLCAyLjY2Njg2LCA0LjcyMzM5LCA1Ljg5MzQxIiwgXAotICAgICAgICAgICIwLjMzMDQ5MSwgMC4zODcwMjMsIDAuOTA4MTgzLCAxLjc4OTIsIDIuNjcxNywgNC43MjIzNCwgNS44OTEyNiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJEIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zNjc1ODksIDAuMzkzNTQ3LCAwLjYyMjA1NCwgMS4wMDExMywgMS4zNzk5MiwgMi4yNjM4MiwgMi43Njg3NyIsIFwKLSAgICAgICAgICAiMC4zNzkzMjgsIDAuNDA1Mjc0LCAwLjYzMzc4NCwgMS4wMTI3MywgMS4zOTE1OSwgMi4yNzU1OCwgMi43ODA1MSIsIFwKLSAgICAgICAgICAiMC4zOTMxNiwgMC40MTkxMTQsIDAuNjQ3NjExLCAxLjAyNjcyLCAxLjQwNTU4LCAyLjI4OTM3LCAyLjc5NDExIiwgXAotICAgICAgICAgICIwLjQwNjkwMiwgMC40MzI4NTIsIDAuNjYxMzM3LCAxLjA0MDQ3LCAxLjQxOTE1LCAyLjMwMzE4LCAyLjgwODA3IiwgXAotICAgICAgICAgICIwLjQyMDc2LCAwLjQ0NjcxMSwgMC42NzUxNjMsIDEuMDU0MiwgMS40MzMwMSwgMi4zMTY5OSwgMi44MjE5NCIsIFwKLSAgICAgICAgICAiMC40NDI2MjQsIDAuNDY4NTg4LCAwLjY5NzAzMSwgMS4wNzYwMiwgMS40NTQ4OSwgMi4zMzg2NiwgMi44NDM3OSIsIFwKLSAgICAgICAgICAiMC40NjE4MTcsIDAuNDg3NzUsIDAuNzE2MjQ1LCAxLjA5NTI2LCAxLjQ3NDA5LCAyLjM1ODE2LCAyLjg2MzAxIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI5MTMzMSwgMC4zNDAyMzgsIDAuNzkwMTg5LCAxLjU1ODA1LCAyLjMyMjYxLCA0LjEyMTk4LCA1LjE0MTQ2IiwgXAotICAgICAgICAgICIwLjI5MTM1MSwgMC4zNDAxMzcsIDAuNzkwMTI2LCAxLjU1Njk3LCAyLjMyNTc1LCA0LjEyMTg5LCA1LjE0MTQ5IiwgXAotICAgICAgICAgICIwLjI5MTI2MiwgMC4zNDAxOCwgMC43OTA3OTQsIDEuNTU3OTgsIDIuMzI2OCwgNC4xMjE5MywgNS4xNDE3MiIsIFwKLSAgICAgICAgICAiMC4yOTEzNTMsIDAuMzQwMTM3LCAwLjc5MDA0LCAxLjU1NDE0LCAyLjMyNjEzLCA0LjExMDkxLCA1LjE0MDkyIiwgXAotICAgICAgICAgICIwLjI5MTMyNywgMC4zNDAwNzgsIDAuNzkxNzgxLCAxLjU1NTA5LCAyLjMyNjE5LCA0LjEyMTgsIDUuMTQwOTEiLCBcCi0gICAgICAgICAgIjAuMjkxMzYxLCAwLjM0MDE1NywgMC43OTE3MjMsIDEuNTU3MTcsIDIuMzI2MTUsIDQuMTIxNjIsIDUuMTQwOTQiLCBcCi0gICAgICAgICAgIjAuMjkxMzU4LCAwLjM0MDEzLCAwLjc5MTg1MywgMS41NTQ3OSwgMi4zMjYxNywgNC4xMTI0MywgNS4xNDA5MyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zNzI1MzgsIDAuNDAyODg2LCAwLjY3MTIyNSwgMS4xMTY5MywgMS41NjI0MiwgMi42MDIwOSwgMy4xOTU4NiIsIFwKLSAgICAgICAgICAiMC4zODM5ODksIDAuNDE0MzMxLCAwLjY4MjY0OSwgMS4xMjgzNiwgMS41NzM4NiwgMi42MTM1NSwgMy4yMDcwOSIsIFwKLSAgICAgICAgICAiMC4zOTY5ODMsIDAuNDI3MzM4LCAwLjY5NTY3NCwgMS4xNDE1LCAxLjU4Njg2LCAyLjYyNjUzLCAzLjIyMDMxIiwgXAotICAgICAgICAgICIwLjQwOTM2OSwgMC40Mzk3MTksIDAuNzA4MDU5LCAxLjE1Mzc4LCAxLjU5OTI2LCAyLjYzODksIDMuMjMyNjkiLCBcCi0gICAgICAgICAgIjAuNDIxNjM3LCAwLjQ1MjAwMywgMC43MjAzMjEsIDEuMTY2MDEsIDEuNjExNjEsIDIuNjUwOTcsIDMuMjQ1MjEiLCBcCi0gICAgICAgICAgIjAuNDQxMTM2LCAwLjQ3MTQ5NiwgMC43Mzk4MjYsIDEuMTg1NTUsIDEuNjMxMDQsIDIuNjcwNzIsIDMuMjY0NDMiLCBcCi0gICAgICAgICAgIjAuNDU4MDkyLCAwLjQ4ODQ0NiwgMC43NTY3OCwgMS4yMDI1LCAxLjY0ODA2LCAyLjY4NzUzLCAzLjI4MTY4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMzMDUwNywgMC4zODY5NjgsIDAuOTA4MTk0LCAxLjc4NTQ0LCAyLjY2NjM0LCA0LjcyMzg0LCA1Ljg5MTQzIiwgXAotICAgICAgICAgICIwLjMzMDQ0MiwgMC4zODY5OTIsIDAuOTA4MTkxLCAxLjc4OTM5LCAyLjY2Njc0LCA0LjcyMDM3LCA1Ljg5NDA3IiwgXAotICAgICAgICAgICIwLjMzMDQ4LCAwLjM4NjkzOSwgMC45MDgxODYsIDEuNzg2OTMsIDIuNjY2MjcsIDQuNzIzNywgNS44OTEwOSIsIFwKLSAgICAgICAgICAiMC4zMzA0NDgsIDAuMzg2OTAxLCAwLjkwODE5NCwgMS43ODk0OSwgMi42NjY0MiwgNC43MjM3LCA1Ljg5MjYyIiwgXAotICAgICAgICAgICIwLjMzMDQ3MiwgMC4zODY5NywgMC45MDU0NjIsIDEuNzg5MjYsIDIuNjcxMjQsIDQuNzIzOTksIDUuODkyMjciLCBcCi0gICAgICAgICAgIjAuMzMwNDEsIDAuMzg2OTQzLCAwLjkwODE5NiwgMS43ODk0NSwgMi42NjYzOCwgNC43MTk2NCwgNS44OTMzNyIsIFwKLSAgICAgICAgICAiMC4zMzA0ODMsIDAuMzg2OTcsIDAuOTA4MjA5LCAxLjc4OTM2LCAyLjY3MTc2LCA0LjcyMjM5LCA1Ljg5MjczIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlMwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zNjQ3NTEsIDAuMzkwNzE3LCAwLjYxOTM5NiwgMC45OTg1MTksIDEuMzc3MzYsIDIuMjYxMjksIDIuNzY2MjIiLCBcCi0gICAgICAgICAgIjAuMzc1MzIyLCAwLjQwMTM0OCwgMC42MzAwOTEsIDEuMDA5MjQsIDEuMzg4MDMsIDIuMjcxODYsIDIuNzc2ODciLCBcCi0gICAgICAgICAgIjAuMzg5MDIsIDAuNDE1MDY3LCAwLjY0MzgwNywgMS4wMjI5NCwgMS40MDE4NSwgMi4yODU2OCwgMi43OTA1NCIsIFwKLSAgICAgICAgICAiMC40MDI2MjcsIDAuNDI4NjA5LCAwLjY1NzI2NCwgMS4wMzY0MywgMS40MTUyMiwgMi4yOTksIDIuODA0MjciLCBcCi0gICAgICAgICAgIjAuNDE2MTYyLCAwLjQ0MjE3MiwgMC42NzA4NjEsIDEuMDUwMDMsIDEuNDI4ODksIDIuMzEyODMsIDIuODE3ODUiLCBcCi0gICAgICAgICAgIjAuNDM4MDgxLCAwLjQ2NDA5NywgMC42OTI4MTYsIDEuMDcxOTksIDEuNDUwNzEsIDIuMzM0NzcsIDIuODM5NzQiLCBcCi0gICAgICAgICAgIjAuNDU3MzIyLCAwLjQ4MzM1OSwgMC43MTIwNywgMS4wOTEyNSwgMS40NzAwNSwgMi4zNTQwNywgMi44NTg5OSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yOTI0NzEsIDAuMzQxMzM2LCAwLjc5MjgyNywgMS41NTg0MSwgMi4zMjY2OCwgNC4xMjIxOCwgNS4xNDIwMSIsIFwKLSAgICAgICAgICAiMC4yOTI1MTcsIDAuMzQxMzE3LCAwLjc5Mjc0NSwgMS41NTgzNywgMi4zMjY2MiwgNC4xMjIwOSwgNS4xNDE0OCIsIFwKLSAgICAgICAgICAiMC4yOTI0ODYsIDAuMzQxMzA0LCAwLjc5Mjc0LCAxLjU1ODQxLCAyLjMyNzIsIDQuMTIyMDYsIDUuMTQxNjYiLCBcCi0gICAgICAgICAgIjAuMjkyNDkxLCAwLjM0MTM2LCAwLjc5MjcyMywgMS41NTgzOSwgMi4zMjY2OSwgNC4xMjIwNiwgNS4xNDE2OCIsIFwKLSAgICAgICAgICAiMC4yOTI1MSwgMC4zNDEzNjksIDAuNzkyNzY3LCAxLjU1ODM3LCAyLjMyNjkxLCA0LjEyMTksIDUuMTQxNyIsIFwKLSAgICAgICAgICAiMC4yOTI1NzcsIDAuMzQxMzQ1LCAwLjc5MjYyOCwgMS41NTgzMywgMi4zMjY2NSwgNC4xMjIwNCwgNS4xNDE2NiIsIFwKLSAgICAgICAgICAiMC4yOTI1MjQsIDAuMzQxMzY4LCAwLjc5MjYzOCwgMS41NTgzNSwgMi4zMjY5NiwgNC4xMjIsIDUuMTQxNDQiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzY1ODQ0LCAwLjM5NjI0OCwgMC42NjQ2NTEsIDEuMTEwMzgsIDEuNTU1ODIsIDIuNTk1NSwgMy4xODk0NyIsIFwKLSAgICAgICAgICAiMC4zNzYwNDEsIDAuNDA2NDYzLCAwLjY3NDg2MywgMS4xMjA1OCwgMS41NjYwNSwgMi42MDU3NCwgMy4xOTk2OCIsIFwKLSAgICAgICAgICAiMC4zODkzMzksIDAuNDE5NzQyLCAwLjY4ODE3NywgMS4xMzM4MywgMS41NzkzOCwgMi42MTg5OSwgMy4yMTMwMSIsIFwKLSAgICAgICAgICAiMC40MDI0MTcsIDAuNDMyODE5LCAwLjcwMTI0LCAxLjE0Njk3LCAxLjU5MjQ4LCAyLjYzMjExLCAzLjIyNTg0IiwgXAotICAgICAgICAgICIwLjQxNTU0MSwgMC40NDU5MjYsIDAuNzE0MzU0LCAxLjE2MDA5LCAxLjYwNTU0LCAyLjY0NTIzLCAzLjIzODk0IiwgXAotICAgICAgICAgICIwLjQzNjYwOCwgMC40NjY5OTEsIDAuNzM1NDMzLCAxLjE4MTE4LCAxLjYyNjY2LCAyLjY2NjMzLCAzLjI2MDAxIiwgXAotICAgICAgICAgICIwLjQ1NDk3MSwgMC40ODUzNTcsIDAuNzUzODE5LCAxLjE5OTU3LCAxLjY0NTA1LCAyLjY4NDY1LCAzLjI3ODM1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMzMTQzNCwgMC4zODc5MDEsIDAuOTA4NTI5LCAxLjc4OTY0LCAyLjY3MzIxLCA0LjcyNDA5LCA1Ljg5NDM4IiwgXAotICAgICAgICAgICIwLjMzMTQ1NywgMC4zODc4ODEsIDAuOTA4NTMyLCAxLjc4OTU4LCAyLjY3Mjg0LCA0LjcyNDQ3LCA1Ljg5NDc4IiwgXAotICAgICAgICAgICIwLjMzMTQ2MiwgMC4zODc4OTQsIDAuOTA4NTMsIDEuNzg5NiwgMi42NzMwNSwgNC43MjM5NSwgNS44OTQ3MyIsIFwKLSAgICAgICAgICAiMC4zMzE0NDcsIDAuMzg3OTA5LCAwLjkwODU0NiwgMS43ODk1NCwgMi42NzE1NywgNC43MjM4NiwgNS44OTM2OCIsIFwKLSAgICAgICAgICAiMC4zMzE0MywgMC4zODc5NjYsIDAuOTA4NTI0LCAxLjc4OTU3LCAyLjY3MzA0LCA0LjcyMzI4LCA1Ljg5NDA0IiwgXAotICAgICAgICAgICIwLjMzMTQ1OCwgMC4zODgwOTMsIDAuOTA4NTI3LCAxLjc4OTU3LCAyLjY3MTMyLCA0LjcyMzUzLCA1Ljg5NDQiLCBcCi0gICAgICAgICAgIjAuMzMxNjA0LCAwLjM4ODAzMywgMC45MDg1MjUsIDEuNzg5NTYsIDIuNjcyOTksIDQuNzIyODEsIDUuODk0MTIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUzAiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjQxNzQxOCwgMC40NDM0MzcsIDAuNjcyMTE1LCAxLjA1MTE4LCAxLjQyOTk5LCAyLjMxMzg2LCAyLjgxODkyIiwgXAotICAgICAgICAgICIwLjQyOTQ1LCAwLjQ1NTQyNCwgMC42ODQwNjMsIDEuMDYzMjMsIDEuNDQyMDEsIDIuMzI1NjgsIDIuODMwNjQiLCBcCi0gICAgICAgICAgIjAuNDQ0Mzk5LCAwLjQ3MDQwOCwgMC42OTkwOTMsIDEuMDc4MTIsIDEuNDU2OTcsIDIuMzQxMDQsIDIuODQ1OTciLCBcCi0gICAgICAgICAgIjAuNDU5MjI4LCAwLjQ4NTI1NywgMC43MTM5MzYsIDEuMDkzMSwgMS40NzE4NywgMi4zNTU4OCwgMi44NjA5NCIsIFwKLSAgICAgICAgICAiMC40NzM3MzUsIDAuNDk5NzY1LCAwLjcyODQ0MiwgMS4xMDc2LCAxLjQ4NjM4LCAyLjM3MDM4LCAyLjg3NTQzIiwgXAotICAgICAgICAgICIwLjQ5NTgzMSwgMC41MjE4NTQsIDAuNzUwNTQ0LCAxLjEyOTcxLCAxLjUwODQ4LCAyLjM5MjQ5LCAyLjg5NzU1IiwgXAotICAgICAgICAgICIwLjUxMzQ4MywgMC41Mzk0NjQsIDAuNzY4MDk4LCAxLjE0NzI2LCAxLjUyNjA0LCAyLjQwOTgzLCAyLjkxNTEyIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI5MjQzOSwgMC4zNDEyNTcsIDAuNzkyNjQ2LCAxLjU1ODM0LCAyLjMyNzA3LCA0LjEyMjA2LCA1LjE0MTgzIiwgXAotICAgICAgICAgICIwLjI5MjQxNywgMC4zNDEyNDksIDAuNzkyMDksIDEuNTU4MzEsIDIuMzI2OTksIDQuMTIyMTEsIDUuMTQxOTEiLCBcCi0gICAgICAgICAgIjAuMjkyNDU2LCAwLjM0MTIyOSwgMC43OTI2NzEsIDEuNTU4MjgsIDIuMzI2NjIsIDQuMTIyMTMsIDUuMTQxNTgiLCBcCi0gICAgICAgICAgIjAuMjkyNDUsIDAuMzQxMjM5LCAwLjc5MjY2NCwgMS41NTgyOSwgMi4zMjY0NSwgNC4xMjIxNCwgNS4xNDE2MyIsIFwKLSAgICAgICAgICAiMC4yOTI0MywgMC4zNDEyMzYsIDAuNzkyNjcxLCAxLjU1ODMyLCAyLjMyNjg2LCA0LjEyMjA3LCA1LjE0MTU1IiwgXAotICAgICAgICAgICIwLjI5MjQ1MywgMC4zNDEyMjIsIDAuNzkxOTc1LCAxLjU1ODI4LCAyLjMyNjQyLCA0LjEyMjEsIDUuMTQxMjQiLCBcCi0gICAgICAgICAgIjAuMjkyNDU3LCAwLjM0MTIxOCwgMC43OTI1MzQsIDEuNTU4MjYsIDIuMzI2OTIsIDQuMTIyMSwgNS4xNDE3NyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC40MjQ0NjEsIDAuNDU0OTMzLCAwLjcyMzM5MywgMS4xNjkxNSwgMS42MTQ2NiwgMi42NTQzNiwgMy4yNDgxMiIsIFwKLSAgICAgICAgICAiMC40MzY0MjQsIDAuNDY2ODM3LCAwLjczNTMxMSwgMS4xODEwNiwgMS42MjY2NywgMi42NjYxNSwgMy4yNTk4MyIsIFwKLSAgICAgICAgICAiMC40NTE4ODgsIDAuNDgyMzI0LCAwLjc1MDgsIDEuMTk2NTcsIDEuNjQyMDYsIDIuNjgxNzcsIDMuMjc1NTIiLCBcCi0gICAgICAgICAgIjAuNDY3NDMxLCAwLjQ5Nzg5NCwgMC43NjYzNjEsIDEuMjEyMTMsIDEuNjU3NjIsIDIuNjk3MzMsIDMuMjkxMDgiLCBcCi0gICAgICAgICAgIjAuNDgyMzA0LCAwLjUxMjcwOSwgMC43ODExODUsIDEuMjI2OTQsIDEuNjcyNDMsIDIuNzEyMTgsIDMuMzA1NzMiLCBcCi0gICAgICAgICAgIjAuNTA2NTA5LCAwLjUzNjkxOCwgMC44MDUzOTQsIDEuMjUxMTUsIDEuNjk2NjQsIDIuNzM2MzgsIDMuMzI5OTMiLCBcCi0gICAgICAgICAgIjAuNTI2NDg2LCAwLjU1NjkyMSwgMC44MjU0MDIsIDEuMjcxMTcsIDEuNzE2NjYsIDIuNzU2MzYsIDMuMzUwMTIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzMxNzE4LCAwLjM4ODAzNCwgMC45MDg4MjcsIDEuNzg5NjEsIDIuNjczNTMsIDQuNzI0NTQsIDUuODk0ODQiLCBcCi0gICAgICAgICAgIjAuMzMxNzQ0LCAwLjM4ODAxNiwgMC45MDg3NjQsIDEuNzg5NzYsIDIuNjcyMzMsIDQuNzIzOTMsIDUuODk0ODciLCBcCi0gICAgICAgICAgIjAuMzMxNjg2LCAwLjM4ODAxOCwgMC45MDg3NDIsIDEuNzg5NzQsIDIuNjcyODIsIDQuNzI0NDEsIDUuODk0NzYiLCBcCi0gICAgICAgICAgIjAuMzMxNjM5LCAwLjM4ODAzMiwgMC45MDg3MDMsIDEuNzg5NzQsIDIuNjcyNDcsIDQuNzI0MjksIDUuODk0NzciLCBcCi0gICAgICAgICAgIjAuMzMxNzYyLCAwLjM4ODAyOSwgMC45MDg2NTksIDEuNzg5OCwgMi42NzM2MiwgNC43MjM3OCwgNS44OTQ1NCIsIFwKLSAgICAgICAgICAiMC4zMzE3MzksIDAuMzg3OTg0LCAwLjkwODY1NSwgMS43ODk3OSwgMi42NzMyNiwgNC43MjM4LCA1Ljg5NDMyIiwgXAotICAgICAgICAgICIwLjMzMTY5NywgMC4zODc5NzQsIDAuOTA4NjU2LCAxLjc4OTc4LCAyLjY3MzI3LCA0LjcyMzgsIDUuODk0ODIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUzEiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI2NTA1OSwgMC4yOTA5MTcsIDAuNTE4OTQ1LCAwLjg5NzY5MywgMS4yNzY1MywgMi4xNjAxNywgMi42NjQ5NSIsIFwKLSAgICAgICAgICAiMC4yNzU2MzYsIDAuMzAxNTAyLCAwLjUyOTU0OSwgMC45MDgzMTEsIDEuMjg3MTMsIDIuMTcxMjIsIDIuNjc2MjIiLCBcCi0gICAgICAgICAgIjAuMjg4ODE0LCAwLjMxNDY4NywgMC41NDI3MywgMC45MjE0LCAxLjMwMDI2LCAyLjE4NDM1LCAyLjY4OTExIiwgXAotICAgICAgICAgICIwLjMwMTg0NSwgMC4zMjc3MDMsIDAuNTU1NzYsIDAuOTM0NTE2LCAxLjMxMzMsIDIuMTk3ODgsIDIuNzAxOTkiLCBcCi0gICAgICAgICAgIjAuMzE0OTY2LCAwLjM0MDgzMiwgMC41Njg4OTgsIDAuOTQ3Njg1LCAxLjMyNjQ2LCAyLjIxMDkyLCAyLjcxNTUzIiwgXAotICAgICAgICAgICIwLjMzNTg1OSwgMC4zNjE3MTEsIDAuNTg5NzE3LCAwLjk2ODQwMywgMS4zNDczMiwgMi4yMzE0MSwgMi43MzYxMyIsIFwKLSAgICAgICAgICAiMC4zNTQyMDgsIDAuMzgwMDk1LCAwLjYwODEzOSwgMC45ODY5MDksIDEuMzY1NywgMi4yNDk1LCAyLjc1NDk1Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI5MDI0LCAwLjMzOTE3NywgMC43OTEyMTMsIDEuNTU3MDYsIDIuMzIxNzMsIDQuMTE5MTksIDUuMTQxMzUiLCBcCi0gICAgICAgICAgIjAuMjkwMTg5LCAwLjMzOTEzOCwgMC43OTExLCAxLjU1ODc1LCAyLjMyNDk5LCA0LjExMjQ3LCA1LjEzNjA0IiwgXAotICAgICAgICAgICIwLjI5MDI3MiwgMC4zMzkwNDcsIDAuNzg5MiwgMS41NTY2LCAyLjMyMTY1LCA0LjExMTg5LCA1LjEzNDA4IiwgXAotICAgICAgICAgICIwLjI5MDA5LCAwLjMzOTA5OCwgMC43ODkxMTQsIDEuNTU3LCAyLjMyMTc1LCA0LjExMTYsIDUuMTM3NjMiLCBcCi0gICAgICAgICAgIjAuMjkwMDksIDAuMzM5MDU2LCAwLjc5MDk2NSwgMS41NTI3LCAyLjMyMTk1LCA0LjExMTU2LCA1LjEzNjQyIiwgXAotICAgICAgICAgICIwLjI5MDA2NiwgMC4zMzg5NDIsIDAuNzkwNjgzLCAxLjU1NjIzLCAyLjMyMTY0LCA0LjExNTY3LCA1LjEzNDEzIiwgXAotICAgICAgICAgICIwLjI4OTgxOSwgMC4zMzg3MzUsIDAuNzg5MDc0LCAxLjU1Njk1LCAyLjMxOTU2LCA0LjExMDY5LCA1LjEzNTY3Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI4MzAzNSwgMC4zMTMzNTQsIDAuNTgxMzksIDEuMDI2ODYsIDEuNDcyMzMsIDIuNTEyNiwgMy4xMDYxMyIsIFwKLSAgICAgICAgICAiMC4yOTMzODIsIDAuMzIzNzAzLCAwLjU5MTczNywgMS4wMzcyMSwgMS40ODI3MywgMi41MjI4NywgMy4xMTYxMyIsIFwKLSAgICAgICAgICAiMC4zMDYxNjQsIDAuMzM2NDU3LCAwLjYwNDQ5OSwgMS4wNSwgMS40OTU4MSwgMi41MzQ5MSwgMy4xMjkzNyIsIFwKLSAgICAgICAgICAiMC4zMTg4ODgsIDAuMzQ5MTk4LCAwLjYxNzIzMywgMS4wNjI3MSwgMS41MDg3OSwgMi41NDgxMiwgMy4xNDIiLCBcCi0gICAgICAgICAgIjAuMzMxNDM5LCAwLjM2MTcwMywgMC42Mjk3NzQsIDEuMDc1MjcsIDEuNTIxMTcsIDIuNTYwOTgsIDMuMTU0MjkiLCBcCi0gICAgICAgICAgIjAuMzUxNDUsIDAuMzgxNzg2LCAwLjY0OTg2NCwgMS4wOTUzNiwgMS41NDA4NiwgMi41ODEzNSwgMy4xNzQ0NyIsIFwKLSAgICAgICAgICAiMC4zNjg2OSwgMC4zOTkwMTksIDAuNjY3MTA5LCAxLjExMjYyLCAxLjU1ODEsIDIuNTk4NDEsIDMuMTkyMTEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzMwNjAxLCAwLjM4NzA4OSwgMC45MDc4NTIsIDEuNzg4NTksIDIuNjY4MTYsIDQuNzIzMDEsIDUuODkyNjUiLCBcCi0gICAgICAgICAgIjAuMzMwNjQxLCAwLjM4NzEzMiwgMC45MDc4NjMsIDEuNzg4NTgsIDIuNjcyNTYsIDQuNzIyMTEsIDUuODkxOSIsIFwKLSAgICAgICAgICAiMC4zMzA2MywgMC4zODcwNDYsIDAuOTA1OTYzLCAxLjc4ODU3LCAyLjY2NzcxLCA0LjcyNDc0LCA1Ljg5MjExIiwgXAotICAgICAgICAgICIwLjMzMDczLCAwLjM4Njk3NiwgMC45MDc3ODEsIDEuNzg4NTUsIDIuNjYzNzIsIDQuNzIyMzksIDUuODkyNTMiLCBcCi0gICAgICAgICAgIjAuMzMwNjQ3LCAwLjM4Njk0MywgMC45MDc4MjgsIDEuNzg4NTgsIDIuNjY4NTIsIDQuNzIzLCA1Ljg5MjIiLCBcCi0gICAgICAgICAgIjAuMzMwMjYyLCAwLjM4NjgwNiwgMC45MDc3OSwgMS43ODg1NSwgMi42NzI0OCwgNC43MjE1OCwgNS44OTM4NCIsIFwKLSAgICAgICAgICAiMC4zMzAwOTEsIDAuMzg2NjU5LCAwLjkwNzc1NCwgMS43ODg1NCwgMi42Njg4MywgNC43MjMxNiwgNS44OTEzNCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTMSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjc4NDI4LCAwLjMwNDMzMiwgMC41MzI1MzYsIDAuOTExMzI0LCAxLjI5MDIyLCAyLjE3NDU2LCAyLjY3OTM1IiwgXAotICAgICAgICAgICIwLjI5MDUyMywgMC4zMTY0NDcsIDAuNTQ0NjI5LCAwLjkyMzMyOCwgMS4zMDIxMiwgMi4xODU5NiwgMi42OTExNCIsIFwKLSAgICAgICAgICAiMC4zMDU1MTEsIDAuMzMxNDE3LCAwLjU1OTU5MiwgMC45Mzg0MSwgMS4zMTcwNiwgMi4yMDE1MSwgMi43MDU3MyIsIFwKLSAgICAgICAgICAiMC4zMjAzMTUsIDAuMzQ2MjQ0LCAwLjU3NDQ5MiwgMC45NTMyMTgsIDEuMzMxOTUsIDIuMjE2OTMsIDIuNzIwOTMiLCBcCi0gICAgICAgICAgIjAuMzM0MTc5LCAwLjM2MDA4NywgMC41ODgyNjksIDAuOTY3MDg4LCAxLjM0NTksIDIuMjI5NjIsIDIuNzM0NDkiLCBcCi0gICAgICAgICAgIjAuMzU1MTQyLCAwLjM4MTA3NSwgMC42MDkzMTgsIDAuOTg4MTM0LCAxLjM2Njg1LCAyLjI1MTQ2LCAyLjc1NjI3IiwgXAotICAgICAgICAgICIwLjM3MTYyNSwgMC4zOTc1OTcsIDAuNjI1Nzg4LCAxLjAwNDUsIDEuMzgzMzEsIDIuMjY4MTIsIDIuNzcyMzIiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjkxMTQ3LCAwLjM0MDAwMiwgMC43OTAwMjcsIDEuNTU5MjYsIDIuMzI0OTUsIDQuMTExNjcsIDUuMTQxMTgiLCBcCi0gICAgICAgICAgIjAuMjkxMTY4LCAwLjMzOTkxMywgMC43OTEzMDQsIDEuNTU2NjQsIDIuMzI0MzUsIDQuMTE5OSwgNS4xMzM3OCIsIFwKLSAgICAgICAgICAiMC4yOTExNTgsIDAuMzQwMDEsIDAuNzkwMDc0LCAxLjU1OTA5LCAyLjMyNTAzLCA0LjExMTYyLCA1LjEzODM1IiwgXAotICAgICAgICAgICIwLjI5MTE2OCwgMC4zMzk5MjIsIDAuNzg5Njg1LCAxLjU1Njk1LCAyLjMyMTQ2LCA0LjExMTA0LCA1LjEzMzg5IiwgXAotICAgICAgICAgICIwLjI5MTExNSwgMC4zMzk5NjEsIDAuNzkwMTA2LCAxLjU1OTAyLCAyLjMxOTU5LCA0LjExMDc2LCA1LjEzNDQ0IiwgXAotICAgICAgICAgICIwLjI5MTAwNiwgMC4zMzk5NTgsIDAuNzkxNTAxLCAxLjU1OTYzLCAyLjMyMTc5LCA0LjExMTU5LCA1LjEzNTYiLCBcCi0gICAgICAgICAgIjAuMjkxMDE3LCAwLjMzOTgzNSwgMC43OTEzNjUsIDEuNTU2NDYsIDIuMzIzODQsIDQuMTE0MzUsIDUuMTMzNzIiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzAzOTg1LCAwLjMzNDI4NywgMC42MDIyOTIsIDEuMDQ3NzcsIDEuNDkzMzEsIDIuNTMzNTksIDMuMTI3MTYiLCBcCi0gICAgICAgICAgIjAuMzE2MTk5LCAwLjM0NjQ5MSwgMC42MTQ1MDcsIDEuMDYsIDEuNTA1NTEsIDIuNTQ1NDcsIDMuMTM4ODkiLCBcCi0gICAgICAgICAgIjAuMzMyMDU5LCAwLjM2MjM1MiwgMC42MzAzNzQsIDEuMDc1ODcsIDEuNTIxMzgsIDIuNTYxNzQsIDMuMTU1MTIiLCBcCi0gICAgICAgICAgIjAuMzQ3NzUyLCAwLjM3ODA0NCwgMC42NDYwNjksIDEuMDkxNTcsIDEuNTM3MzYsIDIuNTc3MywgMy4xNzA4NCIsIFwKLSAgICAgICAgICAiMC4zNjI2OTcsIDAuMzkyOTg3LCAwLjY2MTAxOCwgMS4xMDY1MywgMS41NTI0LCAyLjU5MjIsIDMuMTg1NjUiLCBcCi0gICAgICAgICAgIjAuMzg2MDA3LCAwLjQxNjMwMywgMC42ODQzMzcsIDEuMTI5ODUsIDEuNTc1MywgMi42MTU4LCAzLjIwOTAyIiwgXAotICAgICAgICAgICIwLjQwNDY1NSwgMC40MzQ5MjcsIDAuNzAyOTk3LCAxLjE0ODQ5LCAxLjU5NDQyLCAyLjYzNDI5LCAzLjIyODEyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMyOTcyMywgMC4zODYyNjMsIDAuOTA3NzUzLCAxLjc4ODQzLCAyLjY3MjQ3LCA0LjcyNDgxLCA1Ljg5MjIzIiwgXAotICAgICAgICAgICIwLjMyOTcwNCwgMC4zODYyNjksIDAuOTA3NjcxLCAxLjc4ODQ0LCAyLjY2ODk1LCA0LjcyMjg4LCA1Ljg5Mzk2IiwgXAotICAgICAgICAgICIwLjMyOTcyNCwgMC4zODYyODcsIDAuOTA3NjQyLCAxLjc4ODQ0LCAyLjY2OTAyLCA0LjcyMzEzLCA1Ljg5MzIzIiwgXAotICAgICAgICAgICIwLjMyOTY3NCwgMC4zODYyODIsIDAuOTA3NjE3LCAxLjc4ODQ1LCAyLjY3MDEyLCA0LjcyMywgNS44OTI2MiIsIFwKLSAgICAgICAgICAiMC4zMjk2NzIsIDAuMzg2MjI1LCAwLjkwNzU4OSwgMS43ODg0NSwgMi42NjczNSwgNC43MjI5MSwgNS44OTI4NSIsIFwKLSAgICAgICAgICAiMC4zMjk2NjgsIDAuMzg2MjI3LCAwLjkwNzU5MSwgMS43ODg0MywgMi42NzIzNiwgNC43MjI3NywgNS44OTM3OSIsIFwKLSAgICAgICAgICAiMC4zMjk2ODgsIDAuMzg2MTc1LCAwLjkwNzU3NCwgMS43ODY4LCAyLjY2ODY2LCA0LjcyMzAxLCA1Ljg5MTI4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxNzc2LCAwLjAwMTc3NywgMC4wMDE3ODMsIDAuMDAxNzg2LCAwLjAwMTc4NywgMC4wMDE3ODgsIDAuMDAxNzg4IiwgXAotICAgICAgICAgICIwLjAwMTc2NiwgMC4wMDE3NjgsIDAuMDAxNzc0LCAwLjAwMTc3NiwgMC4wMDE3NzgsIDAuMDAxNzc4LCAwLjAwMTc3OCIsIFwKLSAgICAgICAgICAiMC4wMDE3NjEsIDAuMDAxNzYzLCAwLjAwMTc2OSwgMC4wMDE3NzIsIDAuMDAxNzcyLCAwLjAwMTc3MywgMC4wMDE3NzQiLCBcCi0gICAgICAgICAgIjAuMDAxNzU4LCAwLjAwMTc1OSwgMC4wMDE3NjYsIDAuMDAxNzY4LCAwLjAwMTc2OSwgMC4wMDE3NywgMC4wMDE3NyIsIFwKLSAgICAgICAgICAiMC4wMDE3NTUsIDAuMDAxNzU3LCAwLjAwMTc2MywgMC4wMDE3NjYsIDAuMDAxNzY3LCAwLjAwMTc2NywgMC4wMDE3NjgiLCBcCi0gICAgICAgICAgIjAuMDAxNzUyLCAwLjAwMTc1NCwgMC4wMDE3NiwgMC4wMDE3NjMsIDAuMDAxNzY0LCAwLjAwMTc2NSwgMC4wMDE3NjUiLCBcCi0gICAgICAgICAgIjAuMDAxNzQ5LCAwLjAwMTc1MSwgMC4wMDE3NTgsIDAuMDAxNzYxLCAwLjAwMTc2MiwgMC4wMDE3NjIsIDAuMDAxNzYzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzNTk0LCAwLjAwMzU5NiwgMC4wMDM2MDQsIDAuMDAzNjA4LCAwLjAwMzYwOSwgMC4wMDM2MSwgMC4wMDM2MSIsIFwKLSAgICAgICAgICAiMC4wMDM1ODksIDAuMDAzNTkxLCAwLjAwMzU5OSwgMC4wMDM2MDMsIDAuMDAzNjA0LCAwLjAwMzYwNSwgMC4wMDM2MDYiLCBcCi0gICAgICAgICAgIjAuMDAzNTg3LCAwLjAwMzU4OSwgMC4wMDM1OTcsIDAuMDAzNjAxLCAwLjAwMzYwMiwgMC4wMDM2MDMsIDAuMDAzNjA0IiwgXAotICAgICAgICAgICIwLjAwMzU4NSwgMC4wMDM1ODcsIDAuMDAzNTk2LCAwLjAwMzU5OSwgMC4wMDM2LCAwLjAwMzYwMSwgMC4wMDM2MDIiLCBcCi0gICAgICAgICAgIjAuMDAzNTgzLCAwLjAwMzU4NiwgMC4wMDM1OTQsIDAuMDAzNTk4LCAwLjAwMzU5OSwgMC4wMDM2LCAwLjAwMzYwMSIsIFwKLSAgICAgICAgICAiMC4wMDM1ODEsIDAuMDAzNTg0LCAwLjAwMzU5MiwgMC4wMDM1OTYsIDAuMDAzNTk3LCAwLjAwMzU5OSwgMC4wMDM1OTkiLCBcCi0gICAgICAgICAgIjAuMDAzNTgsIDAuMDAzNTgyLCAwLjAwMzU5MSwgMC4wMDM1OTUsIDAuMDAzNTk2LCAwLjAwMzU5OCwgMC4wMDM1OTgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDE2NzUsIDAuMDAxNjc3LCAwLjAwMTY4MywgMC4wMDE2ODYsIDAuMDAxNjg2LCAwLjAwMTY4OCwgMC4wMDE2ODciLCBcCi0gICAgICAgICAgIjAuMDAxNjY1LCAwLjAwMTY2NywgMC4wMDE2NzMsIDAuMDAxNjc2LCAwLjAwMTY3NywgMC4wMDE2NzcsIDAuMDAxNjc3IiwgXAotICAgICAgICAgICIwLjAwMTY2MSwgMC4wMDE2NjIsIDAuMDAxNjY4LCAwLjAwMTY3MSwgMC4wMDE2NzIsIDAuMDAxNjczLCAwLjAwMTY3MyIsIFwKLSAgICAgICAgICAiMC4wMDE2NTcsIDAuMDAxNjU5LCAwLjAwMTY2NSwgMC4wMDE2NjgsIDAuMDAxNjY5LCAwLjAwMTY2OSwgMC4wMDE2NyIsIFwKLSAgICAgICAgICAiMC4wMDE2NTUsIDAuMDAxNjU2LCAwLjAwMTY2MiwgMC4wMDE2NjUsIDAuMDAxNjY2LCAwLjAwMTY2NywgMC4wMDE2NjciLCBcCi0gICAgICAgICAgIjAuMDAxNjUxLCAwLjAwMTY1MywgMC4wMDE2NTksIDAuMDAxNjYyLCAwLjAwMTY2MywgMC4wMDE2NjQsIDAuMDAxNjY0IiwgXAotICAgICAgICAgICIwLjAwMTY0OSwgMC4wMDE2NTEsIDAuMDAxNjU3LCAwLjAwMTY2LCAwLjAwMTY2MSwgMC4wMDE2NjIsIDAuMDAxNjYyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzNzMyLCAwLjAwMzczNCwgMC4wMDM3NDIsIDAuMDAzNzQ2LCAwLjAwMzc0NywgMC4wMDM3NDgsIDAuMDAzNzQ5IiwgXAotICAgICAgICAgICIwLjAwMzcyNywgMC4wMDM3MjksIDAuMDAzNzM3LCAwLjAwMzc0MSwgMC4wMDM3NDIsIDAuMDAzNzQzLCAwLjAwMzc0MyIsIFwKLSAgICAgICAgICAiMC4wMDM3MjQsIDAuMDAzNzI3LCAwLjAwMzczNSwgMC4wMDM3MzksIDAuMDAzNzQsIDAuMDAzNzQxLCAwLjAwMzc0MSIsIFwKLSAgICAgICAgICAiMC4wMDM3MjMsIDAuMDAzNzI1LCAwLjAwMzczMywgMC4wMDM3MzcsIDAuMDAzNzM4LCAwLjAwMzczOSwgMC4wMDM3NCIsIFwKLSAgICAgICAgICAiMC4wMDM3MjEsIDAuMDAzNzIzLCAwLjAwMzczMiwgMC4wMDM3MzYsIDAuMDAzNzM3LCAwLjAwMzczOCwgMC4wMDM3MzgiLCBcCi0gICAgICAgICAgIjAuMDAzNzE5LCAwLjAwMzcyMSwgMC4wMDM3MywgMC4wMDM3MzQsIDAuMDAzNzM1LCAwLjAwMzczNiwgMC4wMDM3MzciLCBcCi0gICAgICAgICAgIjAuMDAzNzE3LCAwLjAwMzcyLCAwLjAwMzcyOSwgMC4wMDM3MzMsIDAuMDAzNzM0LCAwLjAwMzczNSwgMC4wMDM3MzYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDE2MjMsIDAuMDAxNjI0LCAwLjAwMTYzLCAwLjAwMTYzMywgMC4wMDE2MzQsIDAuMDAxNjM1LCAwLjAwMTYzNSIsIFwKLSAgICAgICAgICAiMC4wMDE2MTMsIDAuMDAxNjE0LCAwLjAwMTYyMSwgMC4wMDE2MjMsIDAuMDAxNjI0LCAwLjAwMTYyNSwgMC4wMDE2MjUiLCBcCi0gICAgICAgICAgIjAuMDAxNjA4LCAwLjAwMTYxLCAwLjAwMTYxNiwgMC4wMDE2MTgsIDAuMDAxNjE5LCAwLjAwMTYyLCAwLjAwMTYyIiwgXAotICAgICAgICAgICIwLjAwMTYwNSwgMC4wMDE2MDYsIDAuMDAxNjEyLCAwLjAwMTYxNSwgMC4wMDE2MTYsIDAuMDAxNjE3LCAwLjAwMTYxNyIsIFwKLSAgICAgICAgICAiMC4wMDE2MDIsIDAuMDAxNjAzLCAwLjAwMTYxLCAwLjAwMTYxMiwgMC4wMDE2MTMsIDAuMDAxNjE0LCAwLjAwMTYxNCIsIFwKLSAgICAgICAgICAiMC4wMDE1OTgsIDAuMDAxNiwgMC4wMDE2MDYsIDAuMDAxNjA5LCAwLjAwMTYxLCAwLjAwMTYxMSwgMC4wMDE2MTEiLCBcCi0gICAgICAgICAgIjAuMDAxNTk2LCAwLjAwMTU5OCwgMC4wMDE2MDQsIDAuMDAxNjA3LCAwLjAwMTYwOCwgMC4wMDE2MDksIDAuMDAxNjA5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzNTkxLCAwLjAwMzU5MywgMC4wMDM2MDEsIDAuMDAzNjA0LCAwLjAwMzYwNSwgMC4wMDM2MDYsIDAuMDAzNjA3IiwgXAotICAgICAgICAgICIwLjAwMzU4NiwgMC4wMDM1ODgsIDAuMDAzNTk2LCAwLjAwMzU5OSwgMC4wMDM2LCAwLjAwMzYwMSwgMC4wMDM2MDIiLCBcCi0gICAgICAgICAgIjAuMDAzNTgzLCAwLjAwMzU4NiwgMC4wMDM1OTQsIDAuMDAzNTk3LCAwLjAwMzU5OCwgMC4wMDM1OTksIDAuMDAzNTk5IiwgXAotICAgICAgICAgICIwLjAwMzU4MiwgMC4wMDM1ODQsIDAuMDAzNTkyLCAwLjAwMzU5NSwgMC4wMDM1OTYsIDAuMDAzNTk4LCAwLjAwMzU5OCIsIFwKLSAgICAgICAgICAiMC4wMDM1OCwgMC4wMDM1ODIsIDAuMDAzNTkxLCAwLjAwMzU5NCwgMC4wMDM1OTUsIDAuMDAzNTk2LCAwLjAwMzU5NyIsIFwKLSAgICAgICAgICAiMC4wMDM1NzgsIDAuMDAzNTgsIDAuMDAzNTg5LCAwLjAwMzU5MiwgMC4wMDM1OTMsIDAuMDAzNTk1LCAwLjAwMzU5NSIsIFwKLSAgICAgICAgICAiMC4wMDM1NzcsIDAuMDAzNTc5LCAwLjAwMzU4NywgMC4wMDM1OTEsIDAuMDAzNTkzLCAwLjAwMzU5NCwgMC4wMDM1OTQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJEIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDE0NDgsIDAuMDAxNDQ5LCAwLjAwMTQ1NSwgMC4wMDE0NTgsIDAuMDAxNDU4LCAwLjAwMTQ2LCAwLjAwMTQ1OSIsIFwKLSAgICAgICAgICAiMC4wMDE0MzgsIDAuMDAxNDQsIDAuMDAxNDQ1LCAwLjAwMTQ0OCwgMC4wMDE0NDksIDAuMDAxNDUsIDAuMDAxNDUiLCBcCi0gICAgICAgICAgIjAuMDAxNDMzLCAwLjAwMTQzNSwgMC4wMDE0NDEsIDAuMDAxNDQzLCAwLjAwMTQ0NCwgMC4wMDE0NDUsIDAuMDAxNDQ1IiwgXAotICAgICAgICAgICIwLjAwMTQzLCAwLjAwMTQzMSwgMC4wMDE0MzcsIDAuMDAxNDQsIDAuMDAxNDQxLCAwLjAwMTQ0MSwgMC4wMDE0NDIiLCBcCi0gICAgICAgICAgIjAuMDAxNDI3LCAwLjAwMTQyOSwgMC4wMDE0MzUsIDAuMDAxNDM3LCAwLjAwMTQzOCwgMC4wMDE0MzksIDAuMDAxNDM5IiwgXAotICAgICAgICAgICIwLjAwMTQyNCwgMC4wMDE0MjUsIDAuMDAxNDMyLCAwLjAwMTQzNCwgMC4wMDE0MzUsIDAuMDAxNDM2LCAwLjAwMTQzNiIsIFwKLSAgICAgICAgICAiMC4wMDE0MjEsIDAuMDAxNDIzLCAwLjAwMTQyOSwgMC4wMDE0MzIsIDAuMDAxNDMzLCAwLjAwMTQzNCwgMC4wMDE0MzQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDM3MTUsIDAuMDAzNzE3LCAwLjAwMzcyNSwgMC4wMDM3MjksIDAuMDAzNzMsIDAuMDAzNzMxLCAwLjAwMzczMSIsIFwKLSAgICAgICAgICAiMC4wMDM3MSwgMC4wMDM3MTIsIDAuMDAzNzIsIDAuMDAzNzI0LCAwLjAwMzcyNSwgMC4wMDM3MjYsIDAuMDAzNzI2IiwgXAotICAgICAgICAgICIwLjAwMzcwOCwgMC4wMDM3MSwgMC4wMDM3MTgsIDAuMDAzNzIxLCAwLjAwMzcyMywgMC4wMDM3MjQsIDAuMDAzNzI0IiwgXAotICAgICAgICAgICIwLjAwMzcwNiwgMC4wMDM3MDgsIDAuMDAzNzE2LCAwLjAwMzcyLCAwLjAwMzcyMSwgMC4wMDM3MjIsIDAuMDAzNzIyIiwgXAotICAgICAgICAgICIwLjAwMzcwNCwgMC4wMDM3MDcsIDAuMDAzNzE1LCAwLjAwMzcxOCwgMC4wMDM3MiwgMC4wMDM3MjEsIDAuMDAzNzIxIiwgXAotICAgICAgICAgICIwLjAwMzcwMiwgMC4wMDM3MDQsIDAuMDAzNzEzLCAwLjAwMzcxNywgMC4wMDM3MTgsIDAuMDAzNzE5LCAwLjAwMzcxOSIsIFwKLSAgICAgICAgICAiMC4wMDM3MDEsIDAuMDAzNzAzLCAwLjAwMzcxMiwgMC4wMDM3MTUsIDAuMDAzNzE3LCAwLjAwMzcxOCwgMC4wMDM3MTgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTMCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1NTM4LCAwLjAwNTUzOSwgMC4wMDU1NDUsIDAuMDA1NTQ4LCAwLjAwNTU0OSwgMC4wMDU1NDksIDAuMDA1NTUiLCBcCi0gICAgICAgICAgIjAuMDA1NTI4LCAwLjAwNTUyOSwgMC4wMDU1MzUsIDAuMDA1NTM4LCAwLjAwNTUzOSwgMC4wMDU1NCwgMC4wMDU1NCIsIFwKLSAgICAgICAgICAiMC4wMDU1MTcsIDAuMDA1NTE5LCAwLjAwNTUyNSwgMC4wMDU1MjgsIDAuMDA1NTI4LCAwLjAwNTUyOSwgMC4wMDU1MyIsIFwKLSAgICAgICAgICAiMC4wMDU1MSwgMC4wMDU1MTIsIDAuMDA1NTE4LCAwLjAwNTUyMSwgMC4wMDU1MjIsIDAuMDA1NTIyLCAwLjAwNTUyMiIsIFwKLSAgICAgICAgICAiMC4wMDU1MDUsIDAuMDA1NTA3LCAwLjAwNTUxMywgMC4wMDU1MTUsIDAuMDA1NTE3LCAwLjAwNTUxNywgMC4wMDU1MTciLCBcCi0gICAgICAgICAgIjAuMDA1NTAxLCAwLjAwNTUwMywgMC4wMDU1MDksIDAuMDA1NTExLCAwLjAwNTUxMiwgMC4wMDU1MTMsIDAuMDA1NTEzIiwgXAotICAgICAgICAgICIwLjAwNTQ5OCwgMC4wMDU1LCAwLjAwNTUwNiwgMC4wMDU1MDgsIDAuMDA1NTEsIDAuMDA1NTEsIDAuMDA1NTEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDUyNzEsIDAuMDA1MjczLCAwLjAwNTI4MSwgMC4wMDUyODUsIDAuMDA1Mjg2LCAwLjAwNTI4NywgMC4wMDUyODgiLCBcCi0gICAgICAgICAgIjAuMDA1MjcxLCAwLjAwNTI3MywgMC4wMDUyODIsIDAuMDA1Mjg1LCAwLjAwNTI4NywgMC4wMDUyODgsIDAuMDA1Mjg4IiwgXAotICAgICAgICAgICIwLjAwNTI2NywgMC4wMDUyNjksIDAuMDA1Mjc4LCAwLjAwNTI4MSwgMC4wMDUyODMsIDAuMDA1Mjg0LCAwLjAwNTI4NCIsIFwKLSAgICAgICAgICAiMC4wMDUyNjIsIDAuMDA1MjY0LCAwLjAwNTI3MiwgMC4wMDUyNzYsIDAuMDA1Mjc3LCAwLjAwNTI3OCwgMC4wMDUyNzkiLCBcCi0gICAgICAgICAgIjAuMDA1MjU2LCAwLjAwNTI1OCwgMC4wMDUyNjYsIDAuMDA1MjcsIDAuMDA1MjcxLCAwLjAwNTI3MiwgMC4wMDUyNzMiLCBcCi0gICAgICAgICAgIjAuMDA1MjQ4LCAwLjAwNTI1MSwgMC4wMDUyNTksIDAuMDA1MjYyLCAwLjAwNTI2NCwgMC4wMDUyNjUsIDAuMDA1MjY1IiwgXAotICAgICAgICAgICIwLjAwNTI0NSwgMC4wMDUyNDcsIDAuMDA1MjU1LCAwLjAwNTI1OSwgMC4wMDUyNiwgMC4wMDUyNjEsIDAuMDA1MjYyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUzEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjY5MiwgMC4wMDI2OTMsIDAuMDAyNjk3LCAwLjAwMjY5OCwgMC4wMDI2OTksIDAuMDAyNjk5LCAwLjAwMjY5OSIsIFwKLSAgICAgICAgICAiMC4wMDI2OTgsIDAuMDAyNjk5LCAwLjAwMjcwMywgMC4wMDI3MDUsIDAuMDAyNzA2LCAwLjAwMjcwNSwgMC4wMDI3MDUiLCBcCi0gICAgICAgICAgIjAuMDAyNzE1LCAwLjAwMjcxNiwgMC4wMDI3MiwgMC4wMDI3MjIsIDAuMDAyNzIyLCAwLjAwMjcyMywgMC4wMDI3MjMiLCBcCi0gICAgICAgICAgIjAuMDAyNzMyLCAwLjAwMjczMywgMC4wMDI3MzcsIDAuMDAyNzM5LCAwLjAwMjc0LCAwLjAwMjc0LCAwLjAwMjc0MSIsIFwKLSAgICAgICAgICAiMC4wMDI3NDYsIDAuMDAyNzQ3LCAwLjAwMjc1MiwgMC4wMDI3NTQsIDAuMDAyNzU1LCAwLjAwMjc1NSwgMC4wMDI3NTUiLCBcCi0gICAgICAgICAgIjAuMDAyNzY3LCAwLjAwMjc2OCwgMC4wMDI3NzMsIDAuMDAyNzc1LCAwLjAwMjc3NiwgMC4wMDI3NzcsIDAuMDAyNzc3IiwgXAotICAgICAgICAgICIwLjAwMjc4NCwgMC4wMDI3ODUsIDAuMDAyNzksIDAuMDAyNzkzLCAwLjAwMjc5NCwgMC4wMDI3OTQsIDAuMDAyNzk1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyMDM5LCAwLjAwMjA0LCAwLjAwMjA0NiwgMC4wMDIwNDgsIDAuMDAyMDQ5LCAwLjAwMjA1LCAwLjAwMjA1IiwgXAotICAgICAgICAgICIwLjAwMjAzNywgMC4wMDIwMzgsIDAuMDAyMDQ0LCAwLjAwMjA0NywgMC4wMDIwNDgsIDAuMDAyMDQ4LCAwLjAwMjA0OSIsIFwKLSAgICAgICAgICAiMC4wMDIwNSwgMC4wMDIwNTIsIDAuMDAyMDU4LCAwLjAwMjA2LCAwLjAwMjA2MSwgMC4wMDIwNjIsIDAuMDAyMDYyIiwgXAotICAgICAgICAgICIwLjAwMjA2NSwgMC4wMDIwNjcsIDAuMDAyMDc0LCAwLjAwMjA3NiwgMC4wMDIwNzcsIDAuMDAyMDc4LCAwLjAwMjA3OCIsIFwKLSAgICAgICAgICAiMC4wMDIwNzgsIDAuMDAyMDgsIDAuMDAyMDg2LCAwLjAwMjA4OSwgMC4wMDIwOSwgMC4wMDIwOTEsIDAuMDAyMDkxIiwgXAotICAgICAgICAgICIwLjAwMjEsIDAuMDAyMTAyLCAwLjAwMjEwOSwgMC4wMDIxMTIsIDAuMDAyMTEzLCAwLjAwMjExNCwgMC4wMDIxMTUiLCBcCi0gICAgICAgICAgIjAuMDAyMTE2LCAwLjAwMjExOCwgMC4wMDIxMjUsIDAuMDAyMTI4LCAwLjAwMjEyOSwgMC4wMDIxMzEsIDAuMDAyMTMxIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBNWEkyWDIgKgotICogLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChNWEkyWDIpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4xNTUxOTM7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDU4NTE1ODsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA1ODMxODE7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNTg1MTU4OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDE1NCwgMC4wMDAxNTcsIDAuMDAwMTU5LCAwLjAwMDE1OSwgMC4wMDAxNTksIDAuMDAwMTYsIDAuMDAwMTYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxNjcsIDAuMDAwMTY2LCAwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiwgMC4wMDAxNjYiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDU2MDU5NTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA1NTg1Njk7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNTYwNTk1OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDE1OSwgMC4wMDAxNiwgMC4wMDAxNjEsIDAuMDAwMTYxLCAwLjAwMDE2MiwgMC4wMDAxNjIsIDAuMDAwMTYyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMTY4LCAwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY2Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxMjk2OTU7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxMjk2MzQ7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxMjk2OTU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjMsIDAuMDAwMjExLCAwLjAwMDIwMSwgMC4wMDAxOTcsIDAuMDAwMTk2LCAwLjAwMDE5NiwgMC4wMDAxOTgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDE0NDksIDAuMDAxNDM2LCAwLjAwMTQyOSwgMC4wMDE0MjYsIDAuMDAxNDI0LCAwLjAwMTQyMiwgMC4wMDE0MjMiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4yNjA4ODk7Ci0gICAgZnVuY3Rpb24gOiAiKCEoKFMwIEIpICsgKCFTMCBBKSkpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xOTEyODksIDAuMzcxODQ5LCAwLjUxNTgyMiwgMC42OTU3OTMsIDAuODc1NzM5LCAxLjA1NTY3LCAxLjIzNTY0IiwgXAotICAgICAgICAgICIwLjIwMjc3NiwgMC4zODMyNDksIDAuNTI3MiwgMC43MDcyNTksIDAuODg3MjA1LCAxLjA2NzE1LCAxLjI0NzEiLCBcCi0gICAgICAgICAgIjAuMjE1ODYzLCAwLjM5NjM2OSwgMC41NDA0MTEsIDAuNzIwMzQzLCAwLjkwMDI5NSwgMS4wODAyNCwgMS4yNjAyNCIsIFwKLSAgICAgICAgICAiMC4yMjgzOTUsIDAuNDA4ODkyLCAwLjU1MjkxNywgMC43MzI4NzYsIDAuOTEyODIzLCAxLjA5Mjc1LCAxLjI3Mjc0IiwgXAotICAgICAgICAgICIwLjI0MDc3MywgMC40MjEzMTksIDAuNTY1MzUsIDAuNzQ1MzU2LCAwLjkyNTIzMiwgMS4xMDUxOCwgMS4yODUxOCIsIFwKLSAgICAgICAgICAiMC4yNjAwNjMsIDAuNDQwNjM5LCAwLjU4NDYzMSwgMC43NjQ2MTksIDAuOTQ0NTQ3LCAxLjEyNDUxLCAxLjMwNDQ3IiwgXAotICAgICAgICAgICIwLjI3NjY0NCwgMC40NTcyMDIsIDAuNjAxMjMsIDAuNzgxMTc1LCAwLjk2MTExNSwgMS4xNDEwNiwgMS4zMjEwNCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTEzOTYsIDAuNDUyMDU0LCAwLjc0NTE3OSwgMS4xMTMyOCwgMS40Nzk5NSwgMS44NDY1NSwgMi4yMTM0OSIsIFwKLSAgICAgICAgICAiMC4wOTE0MTgsIDAuNDUxODUsIDAuNzQ2MDYzLCAxLjExMzI3LCAxLjQ3OTk2LCAxLjg0MzgxLCAyLjIxMzQzIiwgXAotICAgICAgICAgICIwLjA5MTM5MSwgMC40NTMxMjcsIDAuNzQ0NzU5LCAxLjExMzE4LCAxLjQ3OTkxLCAxLjg0NjYxLCAyLjIwODc3IiwgXAotICAgICAgICAgICIwLjA5MTM5NywgMC40NTMwMDksIDAuNzQ1MjI4LCAxLjExMzI5LCAxLjQ3OTk2LCAxLjg0NjQ4LCAyLjIxMzU3IiwgXAotICAgICAgICAgICIwLjA5MTM2NiwgMC40NTE0MjcsIDAuNzQ0ODM3LCAxLjExMDQsIDEuNDc5OTcsIDEuODQ2NjIsIDIuMjEzNjgiLCBcCi0gICAgICAgICAgIjAuMDkxMzk2LCAwLjQ1MzIxMiwgMC43NDY0NDUsIDEuMTEzMjksIDEuNDc5OSwgMS44NDY2OSwgMi4yMTM1MSIsIFwKLSAgICAgICAgICAiMC4wOTEzNTQsIDAuNDUxNDYxLCAwLjc0NDgzMiwgMS4xMTMyOSwgMS40Nzk5NiwgMS44NDY2MiwgMi4yMTM1MyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMDQ2MzYsIDAuNDExMzgxLCAwLjU3NjQwMSwgMC43ODI1NDEsIDAuOTg4NzA2LCAxLjE5NDc0LCAxLjQwMDg4IiwgXAotICAgICAgICAgICIwLjIxNjIxLCAwLjQyMjk2NSwgMC41ODc5NzYsIDAuNzk0MTY1LCAxLjAwMDE5LCAxLjIwNjMzLCAxLjQxMjM5IiwgXAotICAgICAgICAgICIwLjIzMDA1NCwgMC40MzY4MzEsIDAuNjAxODI0LCAwLjgwNzkyNywgMS4wMTQwNSwgMS4yMjAxMiwgMS40MjYzMyIsIFwKLSAgICAgICAgICAiMC4yNDM3MjQsIDAuNDUwNDYxLCAwLjYxNTQ5NywgMC44MjE1NTgsIDEuMDI3NjgsIDEuMjMzOCwgMS40Mzk5MiIsIFwKLSAgICAgICAgICAiMC4yNTczMzgsIDAuNDY0MDgsIDAuNjI5MTAzLCAwLjgzNTE2OSwgMS4wNDEzNCwgMS4yNDc0MiwgMS40NTM1MiIsIFwKLSAgICAgICAgICAiMC4yNzkxMzMsIDAuNDg1ODcxLCAwLjY1MDg5OCwgMC44NTY5NiwgMS4wNjMxNCwgMS4yNjkyMSwgMS40NzUzMSIsIFwKLSAgICAgICAgICAiMC4yOTc5NzIsIDAuNTA0NzE1LCAwLjY2OTcxMiwgMC44NzU4MTUsIDEuMDgxOTQsIDEuMjg4MDQsIDEuNDk0MjIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk5ODAxLCAwLjUwNzkwOCwgMC44MzQxNjUsIDEuMjQ2OTIsIDEuNjU1OTgsIDIuMDcyMDIsIDIuNDgyODUiLCBcCi0gICAgICAgICAgIjAuMDk5NzEsIDAuNTA3OTA2LCAwLjgzNDI4NCwgMS4yNDQ1OCwgMS42NjAzOSwgMi4wNzE1NywgMi40ODM2NSIsIFwKLSAgICAgICAgICAiMC4wOTk2NjYsIDAuNTA3OTI0LCAwLjgzNTUwNywgMS4yNDkwMSwgMS42NjAyMiwgMi4wNzIzMiwgMi40ODI1NCIsIFwKLSAgICAgICAgICAiMC4wOTk3NjYsIDAuNTA3OTEyLCAwLjgzNDMxNywgMS4yNDU4NSwgMS42NjAyNiwgMi4wNzE2NSwgMi40ODExIiwgXAotICAgICAgICAgICIwLjA5OTc3NCwgMC41MDc5MDcsIDAuODM0MTIyLCAxLjI0OTEzLCAxLjY1NjM2LCAyLjA3MTcsIDIuNDc5OTUiLCBcCi0gICAgICAgICAgIjAuMDk5NjgyLCAwLjUwNzkxNiwgMC44MzQwNTMsIDEuMjQ5MTYsIDEuNjU5NTUsIDIuMDcxNjYsIDIuNDc4NDIiLCBcCi0gICAgICAgICAgIjAuMDk5NzQ3LCAwLjUwNzkyLCAwLjgzNTUzMiwgMS4yNDg5MiwgMS42NjAyNCwgMi4wNzE2OCwgMi40ODIzNyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xOTQwOTcsIDAuMzc0NjU2LCAwLjUxODc1NCwgMC42OTg2NSwgMC44Nzg1NzgsIDEuMDU4NTMsIDEuMjM4NTMiLCBcCi0gICAgICAgICAgIjAuMjA1NjQsIDAuMzg2MjM2LCAwLjUzMDI3LCAwLjcxMDE1OSwgMC44OTAxMTEsIDEuMDcwMDksIDEuMjUwMDMiLCBcCi0gICAgICAgICAgIjAuMjE4ODk1LCAwLjM5OTQ3MiwgMC41NDM0NiwgMC43MjM0MTEsIDAuOTAzMzYxLCAxLjA4MzMsIDEuMjYzMjYiLCBcCi0gICAgICAgICAgIjAuMjMxNDIxLCAwLjQxMTk5NSwgMC41NTYsIDAuNzM1OTM4LCAwLjkxNTg5LCAxLjA5NTk1LCAxLjI3NTgxIiwgXAotICAgICAgICAgICIwLjI0MzgyNiwgMC40MjQzOSwgMC41Njg0LCAwLjc0ODMzMywgMC45MjgyODEsIDEuMTA4MjgsIDEuMjg4MiIsIFwKLSAgICAgICAgICAiMC4yNjMyMzIsIDAuNDQzNzk5LCAwLjU4Nzg1NSwgMC43Njc3OTcsIDAuOTQ3NzI2LCAxLjEyNzY5LCAxLjMwNzYxIiwgXAotICAgICAgICAgICIwLjI3OTY3NiwgMC40NjAyNTcsIDAuNjA0MjU0LCAwLjc4NDIwMiwgMC45NjQxNTMsIDEuMTQ0MTMsIDEuMzI0MDciKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDkxNDQyLCAwLjQ1MTgyNiwgMC43NDQ2NDcsIDEuMTEzMzQsIDEuNDgwMDEsIDEuODQ2NjQsIDIuMjEzNjgiLCBcCi0gICAgICAgICAgIjAuMDkxNDcsIDAuNDUyMDg4LCAwLjc0NDM5MiwgMS4xMTMyOCwgMS40Nzk5OCwgMS44NDIyNCwgMi4yMTM1OSIsIFwKLSAgICAgICAgICAiMC4wOTE0NjEsIDAuNDUyMDksIDAuNzQ1MTk3LCAxLjExMzI1LCAxLjQ3OTk3LCAxLjg0MzYyLCAyLjIxMzQ1IiwgXAotICAgICAgICAgICIwLjA5MTQ2OCwgMC40NTIwOTEsIDAuNzQ0NjkzLCAxLjExMzI2LCAxLjQ3OTk1LCAxLjg0NzMzLCAyLjIxMzU4IiwgXAotICAgICAgICAgICIwLjA5MTQ5LCAwLjQ1MjA3OCwgMC43NDQ5MDgsIDEuMTEzMjcsIDEuNDc5OTksIDEuODQ3MDcsIDIuMjEzNTYiLCBcCi0gICAgICAgICAgIjAuMDkxNDY1LCAwLjQ1MzE1NywgMC43NDQ4MTksIDEuMTEzMzIsIDEuNDc5OTcsIDEuODQ2NjksIDIuMjEzMzUiLCBcCi0gICAgICAgICAgIjAuMDkxNDY3LCAwLjQ1MjA5MSwgMC43NDUyNzgsIDEuMTEzMjYsIDEuNDc5OTYsIDEuODQ2ODgsIDIuMjEzNTMiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjA1NjAyLCAwLjQxMjQxOCwgMC41Nzc0MjUsIDAuNzgzNTM3LCAwLjk4OTY0MiwgMS4xOTU3OSwgMS40MDE5MiIsIFwKLSAgICAgICAgICAiMC4yMTczMDIsIDAuNDI0MDc3LCAwLjU4OTA4NCwgMC43OTUxOSwgMS4wMDEzLCAxLjIwNzQ2LCAxLjQxMzU3IiwgXAotICAgICAgICAgICIwLjIzMTIyNCwgMC40MzgwMjQsIDAuNjAzMDg2LCAwLjgwOTEyMSwgMS4wMTUyNSwgMS4yMjEzNiwgMS40Mjc1MyIsIFwKLSAgICAgICAgICAiMC4yNDQ5OTEsIDAuNDUxNzQ4LCAwLjYxNjgwMSwgMC44MjI4NSwgMS4wMjg5OSwgMS4yMzUxLCAxLjQ0MTI2IiwgXAotICAgICAgICAgICIwLjI1ODY1NywgMC40NjU0MDksIDAuNjMwNDQ1LCAwLjgzNjUyOSwgMS4wNDI2MiwgMS4yNDg3NiwgMS40NTQ5IiwgXAotICAgICAgICAgICIwLjI4MDU0NCwgMC40ODcyOTcsIDAuNjUyMzExLCAwLjg1ODM5OSwgMS4wNjQ1NywgMS4yNzA2NSwgMS40NzY3NSIsIFwKLSAgICAgICAgICAiMC4yOTk0NjgsIDAuNTA2MjM1LCAwLjY3MTI2LCAwLjg3NzM1NSwgMS4wODM0NiwgMS4yODk2LCAxLjQ5NTc5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5OTcxNSwgMC41MDc5NDIsIDAuODM0NjI3LCAxLjI0OTMxLCAxLjY2MDc5LCAyLjA3MTkyLCAyLjQ4MzIiLCBcCi0gICAgICAgICAgIjAuMDk5NzQ3LCAwLjUwNzkzOSwgMC44MzQ3MTYsIDEuMjQ5MjQsIDEuNjYwNjksIDIuMDcxNTEsIDIuNDgyOTgiLCBcCi0gICAgICAgICAgIjAuMDk5NzIyLCAwLjUwNzk2MiwgMC44MzQxOTgsIDEuMjQ5MTksIDEuNjYwMzIsIDIuMDY3NDgsIDIuNDgyNTMiLCBcCi0gICAgICAgICAgIjAuMDk5NzkzLCAwLjUwNzk1NywgMC44MzQ3MjYsIDEuMjQ5MTYsIDEuNjYwMiwgMi4wNzE2MywgMi40ODI0MSIsIFwKLSAgICAgICAgICAiMC4wOTk4LCAwLjUwNzk0OSwgMC44MzQwMTksIDEuMjQ2NTcsIDEuNjYwNTksIDIuMDcxNzgsIDIuNDc5NTEiLCBcCi0gICAgICAgICAgIjAuMDk5ODIzLCAwLjUwNzk0NCwgMC44MzQzMDcsIDEuMjQ5MDcsIDEuNjU2NTYsIDIuMDcxNjksIDIuNDgzMTgiLCBcCi0gICAgICAgICAgIjAuMDk5NzU4LCAwLjUwNzk1NSwgMC44MzQxNDgsIDEuMjQ4ODksIDEuNjYwNTIsIDIuMDcxMzksIDIuNDgxNjkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUzAiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIxMzMwMSwgMC4zOTM4NTMsIDAuNTM3OTM4LCAwLjcxNzg2NywgMC44OTc3OTksIDEuMDc3NzcsIDEuMjU3NzIiLCBcCi0gICAgICAgICAgIjAuMjI1NjEsIDAuNDA2MTY0LCAwLjU1MDI0NywgMC43MzAxNDUsIDAuOTEwMDczLCAxLjA5MDAzLCAxLjI3MDExIiwgXAotICAgICAgICAgICIwLjI0MDg5LCAwLjQyMTQ3MSwgMC41NjU1NSwgMC43NDU0MTksIDAuOTI1NDA5LCAxLjEwNTMyLCAxLjI4NTI4IiwgXAotICAgICAgICAgICIwLjI1NTg0NiwgMC40MzYzNjcsIDAuNTgwNDczLCAwLjc2MDM4OCwgMC45NDAzNDQsIDEuMTIwMjMsIDEuMzAwMiIsIFwKLSAgICAgICAgICAiMC4yNzAxMDEsIDAuNDUwNjczLCAwLjU5NDczOCwgMC43NzQ2MzIsIDAuOTU0NTY1LCAxLjEzNDUyLCAxLjMxNDQ2IiwgXAotICAgICAgICAgICIwLjI5MDkzLCAwLjQ3MTU0NSwgMC42MTU0NDYsIDAuNzk1NTA3LCAwLjk3NTQ0OSwgMS4xNTU0MiwgMS4zMzUzNiIsIFwKLSAgICAgICAgICAiMC4zMDc1NDEsIDAuNDg4MDgzLCAwLjYzMjA1LCAwLjgxMjA0NywgMC45OTE5NzQsIDEuMTcxOTQsIDEuMzUxOSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTE0NzcsIDAuNDUyMzU0LCAwLjc0NDU2OCwgMS4xMTMzNSwgMS40ODAwNiwgMS44NDY4NCwgMi4yMTM2MSIsIFwKLSAgICAgICAgICAiMC4wOTE0NDUsIDAuNDUxNTI0LCAwLjc0NDg4MSwgMS4xMTMzNiwgMS40ODAwMiwgMS44NDY3LCAyLjIxNDI0IiwgXAotICAgICAgICAgICIwLjA5MTQzNSwgMC40NTE1NSwgMC43NDQ4NjgsIDEuMTEzMDIsIDEuNDgwMTIsIDEuODQ2NjQsIDIuMjEzMzkiLCBcCi0gICAgICAgICAgIjAuMDkxNDY4LCAwLjQ1MzEyNSwgMC43NDQ2ODQsIDEuMTEzNDQsIDEuNDgwMjMsIDEuODQ2NTksIDIuMjA5NzkiLCBcCi0gICAgICAgICAgIjAuMDkxNDAzLCAwLjQ1MTcyMSwgMC43NDQzNDIsIDEuMTExNDYsIDEuNDc5ODgsIDEuODQ2NjMsIDIuMjEzMzMiLCBcCi0gICAgICAgICAgIjAuMDkxNDEyLCAwLjQ1MzI4NywgMC43NDYxNjUsIDEuMTEzMjYsIDEuNDc5OTcsIDEuODQ2NzYsIDIuMjEzNDciLCBcCi0gICAgICAgICAgIjAuMDkxNDc0LCAwLjQ1MzM3NCwgMC43NDY0NSwgMS4xMTMzMiwgMS40Nzk5MywgMS44NDY3NSwgMi4yMTM1NiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMjEwMjgsIDAuNDI3Nzg2LCAwLjU5MjgxLCAwLjc5ODkwMSwgMS4wMDUwMSwgMS4yMTExNiwgMS40MTcyOCIsIFwKLSAgICAgICAgICAiMC4yMzMxNywgMC40Mzk5MywgMC42MDQ5NTMsIDAuODExMDM4LCAxLjAxNzE0LCAxLjIyMzMxLCAxLjQyOTQyIiwgXAotICAgICAgICAgICIwLjI0NzgyNCwgMC40NTQ1ODEsIDAuNjE5NTk0LCAwLjgyNTY5OCwgMS4wMzE4MSwgMS4yMzc5NSwgMS40NDQwOSIsIFwKLSAgICAgICAgICAiMC4yNjE5NzMsIDAuNDY4NzE0LCAwLjYzMzczOSwgMC44Mzk3OTQsIDEuMDQ2MDEsIDEuMjUyMDYsIDEuNDU4MTYiLCBcCi0gICAgICAgICAgIjAuMjc0NDE5LCAwLjQ4MTE2NSwgMC42NDYxOTYsIDAuODUyMjQzLCAxLjA1ODQyLCAxLjI2NDUxLCAxLjQ3MDYxIiwgXAotICAgICAgICAgICIwLjI5MjI1OCwgMC40OTkwNDcsIDAuNjY0MDExLCAwLjg3MDEyOSwgMS4wNzYyNSwgMS4yODI0LCAxLjQ4ODUzIiwgXAotICAgICAgICAgICIwLjMwNjMzMywgMC41MTMwNzQsIDAuNjc4MDY3LCAwLjg4NDE3NSwgMS4wOTAzLCAxLjI5NjQzLCAxLjUwMjU5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5OTY4NiwgMC41MDc5MDMsIDAuODM0MTYxLCAxLjI0ODg2LCAxLjY2MDQzLCAyLjA3MTIxLCAyLjQ4MjU1IiwgXAotICAgICAgICAgICIwLjA5OTY4NiwgMC41MDc5MDMsIDAuODM0MTU1LCAxLjI0ODksIDEuNjYwNjcsIDIuMDcxMTcsIDIuNDgyNjIiLCBcCi0gICAgICAgICAgIjAuMDk5Njg4LCAwLjUwNzkwNSwgMC44MzQyNjEsIDEuMjQ4ODQsIDEuNjYwMjksIDIuMDcxMywgMi40ODI1MiIsIFwKLSAgICAgICAgICAiMC4wOTk3NzYsIDAuNTA3OTEsIDAuODM0MDg4LCAxLjI0OTAyLCAxLjY1OTQsIDIuMDcxNjIsIDIuNDc4MiIsIFwKLSAgICAgICAgICAiMC4wOTk2OCwgMC41MDc5MTYsIDAuODM0MDEyLCAxLjI0OTExLCAxLjY1OTc2LCAyLjA3MTU4LCAyLjQ3ODUzIiwgXAotICAgICAgICAgICIwLjA5OTY2MywgMC41MDc5NDYsIDAuODM1ODQzLCAxLjI0ODkzLCAxLjY2MDE4LCAyLjA2NTExLCAyLjQ4MjM4IiwgXAotICAgICAgICAgICIwLjA5OTc1NCwgMC41MDc5MjMsIDAuODM1NDc5LCAxLjI0ODc5LCAxLjY1OTk5LCAyLjA3MTI4LCAyLjQ4MjIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUzAiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE3ODk2NSwgMC4zNTk1MTcsIDAuNTAzMzYzLCAwLjY4MzQ1NSwgMC44NjMzODQsIDEuMDQzMzUsIDEuMjIzMzEiLCBcCi0gICAgICAgICAgIjAuMTg5MTI0LCAwLjM2OTU5OSwgMC41MTM1MzMsIDAuNjkzNjEsIDAuODczNTU5LCAxLjA1MzQ3LCAxLjIzMzQ2IiwgXAotICAgICAgICAgICIwLjIwMjA3NiwgMC4zODI2MzIsIDAuNTI2NjY5LCAwLjcwNjYyOSwgMC44ODY1NTksIDEuMDY2NTIsIDEuMjQ2NDQiLCBcCi0gICAgICAgICAgIjAuMjE1MjMxLCAwLjM5NTc0MSwgMC41Mzk3NjksIDAuNzE5Njk3LCAwLjg5OTY0MywgMS4wNzk2MSwgMS4yNTk2IiwgXAotICAgICAgICAgICIwLjIyODMsIDAuNDA4ODQ3LCAwLjU1Mjg3NywgMC43MzI4NTEsIDAuOTEyNzY4LCAxLjA5MjcyLCAxLjI3MjciLCBcCi0gICAgICAgICAgIjAuMjQ5MTI2LCAwLjQyOTcsIDAuNTczNjIsIDAuNzUzNjQ4LCAwLjkzMzYxNSwgMS4xMTM1NiwgMS4yOTM1MSIsIFwKLSAgICAgICAgICAiMC4yNjY2NTUsIDAuNDQ3MjE5LCAwLjU5MTI0OSwgMC43NzEwOCwgMC45NTA5OTQsIDEuMTMxMDgsIDEuMzExMDciKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDkxNDIsIDAuNDUyMDQ0LCAwLjc0MzQzNywgMS4xMTMzMSwgMS40Nzk5MSwgMS44NDY3NSwgMi4yMTM2IiwgXAotICAgICAgICAgICIwLjA5MTQyMywgMC40NTE4NTEsIDAuNzQ1MDM0LCAxLjExMzI2LCAxLjQ3OTk2LCAxLjg0NjUzLCAyLjIxMzUxIiwgXAotICAgICAgICAgICIwLjA5MTM5LCAwLjQ1MTg5MywgMC43NDQ2NywgMS4xMTMzMSwgMS40Nzk5OCwgMS44NDY2OSwgMi4yMTMzIiwgXAotICAgICAgICAgICIwLjA5MTQxMiwgMC40NTMyMDksIDAuNzQ0NjM2LCAxLjExMjk2LCAxLjQ3OTY5LCAxLjg0NjY3LCAyLjIxMzY4IiwgXAotICAgICAgICAgICIwLjA5MTM4MSwgMC40NTE1MTcsIDAuNzQ0ODQ1LCAxLjExMzQyLCAxLjQ4MDAxLCAxLjg0NjY0LCAyLjIxMzU2IiwgXAotICAgICAgICAgICIwLjA5MTM3LCAwLjQ1MjIyMiwgMC43NDYxNTQsIDEuMTEyNTcsIDEuNDc5OTQsIDEuODQ2NjQsIDIuMjEzMzgiLCBcCi0gICAgICAgICAgIjAuMDkxMzcsIDAuNDUyMjE4LCAwLjc0NDgyMSwgMS4xMTI3MSwgMS40NzczNCwgMS44NDY2NSwgMi4yMTM1OCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xOTEyNzQsIDAuMzk4MDg0LCAwLjU2MzAwNCwgMC43NjkxNDUsIDAuOTc1MjcsIDEuMTgxMzcsIDEuMzg3NTMiLCBcCi0gICAgICAgICAgIjAuMjAxODEzLCAwLjQwODU3MiwgMC41NzM1ODEsIDAuNzc5NzE1LCAwLjk4NTg0MSwgMS4xOTE5MywgMS4zOTgxNSIsIFwKLSAgICAgICAgICAiMC4yMTUxNDcsIDAuNDIxODk5LCAwLjU4Njk1LCAwLjc5Mjk5NiwgMC45OTkxMzEsIDEuMjA1MjUsIDEuNDExNDIiLCBcCi0gICAgICAgICAgIjAuMjI4NjM3LCAwLjQzNTM4NywgMC42MDA0LCAwLjgwNjQ5NCwgMS4wMTI2MiwgMS4yMTg3NCwgMS40MjQ4NSIsIFwKLSAgICAgICAgICAiMC4yNDIxNiwgMC40NDg5NTgsIDAuNjEzOTQxLCAwLjgyMDA1MiwgMS4wMjYxOCwgMS4yMzIyOCwgMS40Mzg0NyIsIFwKLSAgICAgICAgICAiMC4yNjQzODMsIDAuNDcxMTM3LCAwLjYzNjE3OCwgMC44NDIyNDgsIDEuMDQ4MzMsIDEuMjU0NDksIDEuNDYwNjgiLCBcCi0gICAgICAgICAgIjAuMjgzNTU3LCAwLjQ5MDMxNywgMC42NTUzNjQsIDAuODYxNDI1LCAxLjA2NzU2LCAxLjI3MzY4LCAxLjQ3OTg1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5OTc0MSwgMC41MDYzMTYsIDAuODM3MjQ3LCAxLjI0OTM5LCAxLjY2MDc0LCAyLjA2OTI1LCAyLjQ4MzI0IiwgXAotICAgICAgICAgICIwLjA5OTczOSwgMC41MDc5NDcsIDAuODM0Mzc5LCAxLjI0NDksIDEuNjU5NjcsIDIuMDcxNjUsIDIuNDgxNzgiLCBcCi0gICAgICAgICAgIjAuMDk5ODA3LCAwLjUwNzk1OSwgMC44MzQ0NCwgMS4yNDg5NCwgMS42NjAwNSwgMi4wNzE0NSwgMi40ODIyNCIsIFwKLSAgICAgICAgICAiMC4wOTk4MzksIDAuNTA3OTQ0LCAwLjgzNDMwNSwgMS4yNDg4MSwgMS42NTczNSwgMi4wNzEzOSwgMi40ODI3MSIsIFwKLSAgICAgICAgICAiMC4wOTk3NDEsIDAuNTA3OTY3LCAwLjgzNDk2NiwgMS4yNDg3NywgMS42NTk5MiwgMi4wNjc0NSwgMi40ODIwNyIsIFwKLSAgICAgICAgICAiMC4wOTk4MiwgMC41MDc5NTIsIDAuODM0Mzg5LCAxLjI0NzM2LCAxLjY2MDUzLCAyLjA3MTIsIDIuNDgxODQiLCBcCi0gICAgICAgICAgIjAuMDk5NzksIDAuNTA3OTUsIDAuODM1NjE1LCAxLjI0ODczLCAxLjY1OTg1LCAyLjA3MTA3LCAyLjQ4MTkzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzNzM5LCAwLjAwMzc3MSwgMC4wMDM3NzQsIDAuMDAzNzc2LCAwLjAwMzc3NywgMC4wMDM3NzcsIDAuMDAzNzc4IiwgXAotICAgICAgICAgICIwLjAwMzczNCwgMC4wMDM3NjUsIDAuMDAzNzY5LCAwLjAwMzc3MywgMC4wMDM3NzEsIDAuMDAzNzc0LCAwLjAwMzc3NCIsIFwKLSAgICAgICAgICAiMC4wMDM3MywgMC4wMDM3NjIsIDAuMDAzNzY1LCAwLjAwMzc2NywgMC4wMDM3NjgsIDAuMDAzNzY4LCAwLjAwMzc2OCIsIFwKLSAgICAgICAgICAiMC4wMDM3MjcsIDAuMDAzNzU5LCAwLjAwMzc2NCwgMC4wMDM3NjIsIDAuMDAzNzY2LCAwLjAwMzc2NSwgMC4wMDM3NjQiLCBcCi0gICAgICAgICAgIjAuMDAzNzI1LCAwLjAwMzc1NywgMC4wMDM3NjMsIDAuMDAzNzYyLCAwLjAwMzc2MiwgMC4wMDM3NjMsIDAuMDAzNzY2IiwgXAotICAgICAgICAgICIwLjAwMzcyMSwgMC4wMDM3NTMsIDAuMDAzNzU2LCAwLjAwMzc2MSwgMC4wMDM3NTgsIDAuMDAzNzU2LCAwLjAwMzc2MiIsIFwKLSAgICAgICAgICAiMC4wMDM3MTcsIDAuMDAzNzUsIDAuMDAzNzUzLCAwLjAwMzc1NSwgMC4wMDM3NTYsIDAuMDAzNzU3LCAwLjAwMzc1OSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjkxLCAwLjAwMjk1NiwgMC4wMDI5NjIsIDAuMDAyOTY0LCAwLjAwMjk2NiwgMC4wMDI5NjYsIDAuMDAyOTY3IiwgXAotICAgICAgICAgICIwLjAwMjg5OCwgMC4wMDI5NDUsIDAuMDAyOTUsIDAuMDAyOTUzLCAwLjAwMjk1NSwgMC4wMDI5NTUsIDAuMDAyOTU2IiwgXAotICAgICAgICAgICIwLjAwMjg5MywgMC4wMDI5MzksIDAuMDAyOTQ0LCAwLjAwMjk0NywgMC4wMDI5NDgsIDAuMDAyOTQ5LCAwLjAwMjk1IiwgXAotICAgICAgICAgICIwLjAwMjg4NywgMC4wMDI5MzQsIDAuMDAyOTM5LCAwLjAwMjk0MiwgMC4wMDI5NDMsIDAuMDAyOTQ0LCAwLjAwMjk0NSIsIFwKLSAgICAgICAgICAiMC4wMDI4ODQsIDAuMDAyOTMsIDAuMDAyOTM2LCAwLjAwMjkzOCwgMC4wMDI5NCwgMC4wMDI5NDEsIDAuMDAyOTQxIiwgXAotICAgICAgICAgICIwLjAwMjg4MSwgMC4wMDI5MjcsIDAuMDAyOTMyLCAwLjAwMjkzNSwgMC4wMDI5MzYsIDAuMDAyOTM3LCAwLjAwMjkzNyIsIFwKLSAgICAgICAgICAiMC4wMDI4NzUsIDAuMDAyOTIxLCAwLjAwMjkyNywgMC4wMDI5MjksIDAuMDAyOTMxLCAwLjAwMjkzMiwgMC4wMDI5MzIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDM4NjUsIDAuMDAzODk1LCAwLjAwMzkwMSwgMC4wMDM5MDMsIDAuMDAzOTA0LCAwLjAwMzkwNSwgMC4wMDM5MDciLCBcCi0gICAgICAgICAgIjAuMDAzODYsIDAuMDAzODkyLCAwLjAwMzg5NiwgMC4wMDM4OTcsIDAuMDAzODk4LCAwLjAwMzg5OSwgMC4wMDM4OTkiLCBcCi0gICAgICAgICAgIjAuMDAzODU2LCAwLjAwMzg4OCwgMC4wMDM4OTIsIDAuMDAzODk0LCAwLjAwMzg5NSwgMC4wMDM4OTUsIDAuMDAzODk2IiwgXAotICAgICAgICAgICIwLjAwMzg1MywgMC4wMDM4ODUsIDAuMDAzODg5LCAwLjAwMzg5MSwgMC4wMDM4OTIsIDAuMDAzODkyLCAwLjAwMzg5MiIsIFwKLSAgICAgICAgICAiMC4wMDM4NTEsIDAuMDAzODgzLCAwLjAwMzg4NywgMC4wMDM4OTEsIDAuMDAzODksIDAuMDAzODkyLCAwLjAwMzg5MyIsIFwKLSAgICAgICAgICAiMC4wMDM4NDcsIDAuMDAzODgsIDAuMDAzODgsIDAuMDAzODg5LCAwLjAwMzg4NiwgMC4wMDM4ODYsIDAuMDAzODg3IiwgXAotICAgICAgICAgICIwLjAwMzg0MywgMC4wMDM4NzYsIDAuMDAzODgsIDAuMDAzODgxLCAwLjAwMzg4NCwgMC4wMDM4ODMsIDAuMDAzODg0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyODQzLCAwLjAwMjg5LCAwLjAwMjg5NiwgMC4wMDI4OTksIDAuMDAyOSwgMC4wMDI5MDEsIDAuMDAyOTAyIiwgXAotICAgICAgICAgICIwLjAwMjgzMiwgMC4wMDI4NzksIDAuMDAyODg1LCAwLjAwMjg4OCwgMC4wMDI4ODksIDAuMDAyODksIDAuMDAyODkxIiwgXAotICAgICAgICAgICIwLjAwMjgyNiwgMC4wMDI4NzMsIDAuMDAyODc4LCAwLjAwMjg4MSwgMC4wMDI4ODMsIDAuMDAyODg0LCAwLjAwMjg4NCIsIFwKLSAgICAgICAgICAiMC4wMDI4MjEsIDAuMDAyODY4LCAwLjAwMjg3MywgMC4wMDI4NzYsIDAuMDAyODc4LCAwLjAwMjg3OSwgMC4wMDI4OCIsIFwKLSAgICAgICAgICAiMC4wMDI4MTcsIDAuMDAyODY0LCAwLjAwMjg2OSwgMC4wMDI4NzMsIDAuMDAyODc0LCAwLjAwMjg3NSwgMC4wMDI4NzYiLCBcCi0gICAgICAgICAgIjAuMDAyODEzLCAwLjAwMjg2LCAwLjAwMjg2NSwgMC4wMDI4NjgsIDAuMDAyODcsIDAuMDAyODcxLCAwLjAwMjg3MiIsIFwKLSAgICAgICAgICAiMC4wMDI4MSwgMC4wMDI4NTYsIDAuMDAyODYxLCAwLjAwMjg2NCwgMC4wMDI4NjYsIDAuMDAyODY3LCAwLjAwMjg2OCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlMwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDM2NjQsIDAuMDAzNjk2LCAwLjAwMzY5OSwgMC4wMDM3MDUsIDAuMDAzNzAyLCAwLjAwMzcwOCwgMC4wMDM3MDIiLCBcCi0gICAgICAgICAgIjAuMDAzNjU1LCAwLjAwMzY4NywgMC4wMDM2OTEsIDAuMDAzNjk2LCAwLjAwMzY5MywgMC4wMDM2OSwgMC4wMDM2OTgiLCBcCi0gICAgICAgICAgIjAuMDAzNjQ3LCAwLjAwMzY3OSwgMC4wMDM2ODMsIDAuMDAzNjg0LCAwLjAwMzY4NSwgMC4wMDM2ODYsIDAuMDAzNjg4IiwgXAotICAgICAgICAgICIwLjAwMzY0MiwgMC4wMDM2NzQsIDAuMDAzNjc3LCAwLjAwMzY3OCwgMC4wMDM2NzksIDAuMDAzNjgsIDAuMDAzNjgiLCBcCi0gICAgICAgICAgIjAuMDAzNjM5LCAwLjAwMzY3MSwgMC4wMDM2NzQsIDAuMDAzNjc3LCAwLjAwMzY3OCwgMC4wMDM2NzcsIDAuMDAzNjc3IiwgXAotICAgICAgICAgICIwLjAwMzYzNiwgMC4wMDM2NywgMC4wMDM2NzIsIDAuMDAzNjczLCAwLjAwMzY3NCwgMC4wMDM2NzUsIDAuMDAzNjc4IiwgXAotICAgICAgICAgICIwLjAwMzYzNywgMC4wMDM2NjgsIDAuMDAzNjcyLCAwLjAwMzY3MiwgMC4wMDM2NzMsIDAuMDAzNjczLCAwLjAwMzY3NyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDI3NiwgMC4wMDQzMjMsIDAuMDA0MzI4LCAwLjAwNDMzMSwgMC4wMDQzMzIsIDAuMDA0MzMzLCAwLjAwNDMzNCIsIFwKLSAgICAgICAgICAiMC4wMDQyNzQsIDAuMDA0MzIsIDAuMDA0MzI2LCAwLjAwNDMyOCwgMC4wMDQzMywgMC4wMDQzMzEsIDAuMDA0MzMxIiwgXAotICAgICAgICAgICIwLjAwNDI3LCAwLjAwNDMxNiwgMC4wMDQzMjEsIDAuMDA0MzI0LCAwLjAwNDMyNiwgMC4wMDQzMjYsIDAuMDA0MzI3IiwgXAotICAgICAgICAgICIwLjAwNDI2NSwgMC4wMDQzMTIsIDAuMDA0MzE3LCAwLjAwNDMyLCAwLjAwNDMyMSwgMC4wMDQzMjIsIDAuMDA0MzIzIiwgXAotICAgICAgICAgICIwLjAwNDI2MywgMC4wMDQzMDksIDAuMDA0MzE1LCAwLjAwNDMxNywgMC4wMDQzMTksIDAuMDA0MzE5LCAwLjAwNDMyIiwgXAotICAgICAgICAgICIwLjAwNDI2LCAwLjAwNDMwNiwgMC4wMDQzMTEsIDAuMDA0MzE0LCAwLjAwNDMxNSwgMC4wMDQzMTYsIDAuMDA0MzE3IiwgXAotICAgICAgICAgICIwLjAwNDI1OCwgMC4wMDQzMDQsIDAuMDA0MzA5LCAwLjAwNDMxMiwgMC4wMDQzMTMsIDAuMDA0MzE0LCAwLjAwNDMxNCIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogTVhJM1gyICoKLSAqIC0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoTVhJM1gyKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMjI0ODk5OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2MTk4NzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MTgyNTc7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjE5ODc7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNywgMC4wMDA2ODksIDAuMDAwNjgyLCAwLjAwMDY3OCwgMC4wMDA2NzUsIDAuMDAwNjcxLCAwLjAwMDY2OSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTc2MywgMC4wMDE3NTgsIDAuMDAxNzU1LCAwLjAwMTc1MiwgMC4wMDE3NTEsIDAuMDAxNzQ5LCAwLjAwMTc0OCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjE5NTY3OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYxNzgyMzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2MTk1Njc7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMTU4LCAwLjAwMDE2LCAwLjAwMDE2MSwgMC4wMDAxNjEsIDAuMDAwMTYxLCAwLjAwMDE2MiwgMC4wMDAxNjIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxNjksIDAuMDAwMTY3LCAwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiwgMC4wMDAxNjYiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEMpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDU1NTM1OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDU1NTE4NjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA1NTUzNTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyMDMsIDAuMDAwMTg0LCAwLjAwMDE3NCwgMC4wMDAxNzEsIDAuMDAwMTcsIDAuMDAwMTY4LCAwLjAwMDE2OSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTA3OSwgMC4wMDEwNjYsIDAuMDAxMDU5LCAwLjAwMTA1NiwgMC4wMDEwNTMsIDAuMDAxMDUyLCAwLjAwMTA1MyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUzApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTMyNzU5OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTMyNzQ3OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTMyNzU5OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDE1NiwgMC4wMDAxMzYsIDAuMDAwMTI3LCAwLjAwMDEyMywgMC4wMDAxMjEsIDAuMDAwMTIyLCAwLjAwMDEyMyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTQ3MiwgMC4wMDE0NTksIDAuMDAxNDUyLCAwLjAwMTQ0OSwgMC4wMDE0NDgsIDAuMDAxNDQ2LCAwLjAwMTQ0NyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUzEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTIzMzc7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxMjMzMTc7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxMjMzNzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAzNDcsIDAuMDAwMzI5LCAwLjAwMDMxOSwgMC4wMDAzMTUsIDAuMDAwMzEzLCAwLjAwMDMxMSwgMC4wMDAzMTIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDE1MzIsIDAuMDAxNTE5LCAwLjAwMTUxMiwgMC4wMDE1MDksIDAuMDAxNTA3LCAwLjAwMTUwNSwgMC4wMDE1MDYiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4yMzcyMDg7Ci0gICAgZnVuY3Rpb24gOiAiKCEoKFMxIEMpICsgKCFTMSAoKFMwIEIpICsgKCFTMCBBKSkpKSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI3NDk3MSwgMC40NTk4NTYsIDAuNjAzMDYyLCAwLjc4MTg4MSwgMC45NjA2MjksIDEuMTM5MjQsIDEuMzE3ODUiLCBcCi0gICAgICAgICAgIjAuMjg2NTg5LCAwLjQ3MTMyNywgMC42MTQ1NDMsIDAuNzkzMzQ1LCAwLjk3MjA5MywgMS4xNTA3NSwgMS4zMjkzMyIsIFwKLSAgICAgICAgICAiMC4yOTk1NTIsIDAuNDg0NDE4LCAwLjYyNzYzMiwgMC44MDY1MzMsIDAuOTg1MTQ2LCAxLjE2MzkzLCAxLjM0MjQzIiwgXAotICAgICAgICAgICIwLjMxMjE5MiwgMC40OTY5NCwgMC42NDAxNSwgMC44MTg5NzEsIDAuOTk3NzE2LCAxLjE3NjM4LCAxLjM1NDk0IiwgXAotICAgICAgICAgICIwLjMyNDQyMSwgMC41MDkzMiwgMC42NTI1MjMsIDAuODMxMzQ0LCAxLjAxMDA2LCAxLjE4ODY4LCAxLjM2NzMyIiwgXAotICAgICAgICAgICIwLjM0Mzg3MSwgMC41Mjg2MTUsIDAuNjcxODI4LCAwLjg1MDYzMywgMS4wMjkzOCwgMS4yMDgwNCwgMS4zODY2MSIsIFwKLSAgICAgICAgICAiMC4zNjA0MDcsIDAuNTQ1MTUxLCAwLjY4ODM2NCwgMC44NjcxNjgsIDEuMDQ1OTIsIDEuMjI0NTcsIDEuNDAzMTUiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTA5MjcyLCAwLjQ1ODUyMiwgMC43NDU3NTQsIDEuMTA4MSwgMS40NzA0OSwgMS44MzQ0NSwgMi4xOTc2OSIsIFwKLSAgICAgICAgICAiMC4xMDkzNzUsIDAuNDU4NDU1LCAwLjc0NTc1MiwgMS4xMDk3MSwgMS40NzM1MiwgMS44MzczNiwgMi4xOTc0OCIsIFwKLSAgICAgICAgICAiMC4xMDkxMjQsIDAuNDU4NTUzLCAwLjc0NTczOCwgMS4xMTAxMywgMS40NzMyOSwgMS44MzcyNCwgMi4xOTc4MSIsIFwKLSAgICAgICAgICAiMC4xMDkzNjQsIDAuNDU4NDUyLCAwLjc0NTY4OCwgMS4xMDk3NywgMS40NzM1NSwgMS44Mzc0MywgMi4xOTczNSIsIFwKLSAgICAgICAgICAiMC4xMDkyNTQsIDAuNDU4NTM3LCAwLjc0NTY4MiwgMS4xMDk3OSwgMS40NzExMSwgMS44MzY5MywgMi4xOTc2MSIsIFwKLSAgICAgICAgICAiMC4xMDkzNjcsIDAuNDU4Mzk0LCAwLjc0NTc1NSwgMS4xMDk3MiwgMS40NzM1MiwgMS44MzczOCwgMi4xOTcyOCIsIFwKLSAgICAgICAgICAiMC4xMDkzNjgsIDAuNDU4Mzk0LCAwLjc0NTc1NywgMS4xMDk3MiwgMS40NzM1MiwgMS44MzczNywgMi4xOTcyNyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yNzkwNzksIDAuNDkwNDYsIDAuNjU1NzU5LCAwLjg2MjEzMSwgMS4wNjgzMSwgMS4yNzQ1NSwgMS40ODA3NCIsIFwKLSAgICAgICAgICAiMC4yOTA3MjQsIDAuNTAyMDk0LCAwLjY2NzM0MywgMC44NzM3LCAxLjA3OTkyLCAxLjI4NjE3LCAxLjQ5MjM2IiwgXAotICAgICAgICAgICIwLjMwNDY1NSwgMC41MTYwNzQsIDAuNjgxMzczLCAwLjg4NzY2OCwgMS4wOTM5NCwgMS4zMDAyMSwgMS41MDYzNSIsIFwKLSAgICAgICAgICAiMC4zMTgzODUsIDAuNTI5NzY3LCAwLjY5NTA1MywgMC45MDEzNzUsIDEuMTA3NiwgMS4zMTM4NCwgMS41MjAwNSIsIFwKLSAgICAgICAgICAiMC4zMzIwNjksIDAuNTQzNDUxLCAwLjcwODcyMywgMC45MTUwNTksIDEuMTIxMjgsIDEuMzI3NTMsIDEuNTMzNzMiLCBcCi0gICAgICAgICAgIjAuMzUzODYzLCAwLjU2NTI0OSwgMC43MzA0ODgsIDAuOTM2ODU2LCAxLjE0MzA4LCAxLjM0OTMyLCAxLjU1NTU0IiwgXAotICAgICAgICAgICIwLjM3MjM1NSwgMC41ODM4NjcsIDAuNzQ5MTYzLCAwLjk1NTQ5MywgMS4xNjE3MywgMS4zNjc5NiwgMS41NzQxNSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTY3NjUsIDAuNTE1NTQ1LCAwLjgzOTU2OCwgMS4yNTI3NSwgMS42NjE5NiwgMi4wNzU2NywgMi40ODM5MSIsIFwKLSAgICAgICAgICAiMC4xMTY3NTMsIDAuNTE1NDkyLCAwLjg0MzAwMiwgMS4yNTI5MywgMS42NjQ2NSwgMi4wNzI5NCwgMi40ODcxOCIsIFwKLSAgICAgICAgICAiMC4xMTY0MjQsIDAuNTE1NDk4LCAwLjg0MDk1MiwgMS4yNTA5NiwgMS42NjQwOSwgMi4wNzM3OCwgMi40ODQ0IiwgXAotICAgICAgICAgICIwLjExNjcwNywgMC41MTU0NjEsIDAuODM5OTUsIDEuMjUyODUsIDEuNjY0NTUsIDIuMDcyOCwgMi40ODY3OCIsIFwKLSAgICAgICAgICAiMC4xMTY3MTIsIDAuNTE1NDU1LCAwLjg0Mjg3OSwgMS4yNTI4MywgMS42NjQ1MiwgMi4wNzI2MiwgMi40ODY3NSIsIFwKLSAgICAgICAgICAiMC4xMTY2NjMsIDAuNTE1NDYyLCAwLjg0MDQ2OCwgMS4yNTI4NSwgMS42NjQ1NCwgMi4wNzI4LCAyLjQ4NjYyIiwgXAotICAgICAgICAgICIwLjExNjcwNiwgMC41MTUzMzEsIDAuODQwOTQ2LCAxLjI1MjYxLCAxLjY2MjgzLCAyLjA3MzM2LCAyLjQ4NjE5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI3NDQzNywgMC40NTkzNjQsIDAuNjAyNTc2LCAwLjc4MTM4OSwgMC45NjAwODcsIDEuMTM4NzUsIDEuMzE3NDYiLCBcCi0gICAgICAgICAgIjAuMjg1ODA0LCAwLjQ3MDcyMywgMC42MTM5MzYsIDAuNzkyNzMzLCAwLjk3MTQ0NywgMS4xNTAxMywgMS4zMjg3MiIsIFwKLSAgICAgICAgICAiMC4yOTg4NzEsIDAuNDgzNzQ1LCAwLjYyNjk1NywgMC44MDU3ODUsIDAuOTg0NDcsIDEuMTYzMTEsIDEuMzQxNzYiLCBcCi0gICAgICAgICAgIjAuMzExNDI1LCAwLjQ5NjE0NSwgMC42MzkzNTIsIDAuODE4MTczLCAwLjk5NjkxNywgMS4xNzU1OSwgMS4zNTQxNCIsIFwKLSAgICAgICAgICAiMC4zMjM1OTUsIDAuNTA4NDMyLCAwLjY1MTY0NCwgMC44MzA1NDMsIDEuMDA5MTUsIDEuMTg3OTEsIDEuMzY2NDMiLCBcCi0gICAgICAgICAgIjAuMzQyNzEyLCAwLjUyNzU4OCwgMC42NzA4LCAwLjg0OTY2NSwgMS4wMjgzMiwgMS4yMDY5NiwgMS4zODU3NSIsIFwKLSAgICAgICAgICAiMC4zNTkxMzIsIDAuNTQ0MDA1LCAwLjY4NzIyLCAwLjg2NjA1MSwgMS4wNDQ3MywgMS4yMjMzNywgMS40MDE5OSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDkxODksIDAuNDU4NDM3LCAwLjc0NTczMSwgMS4xMDc5OCwgMS40NzMzNCwgMS44MzcxOCwgMi4yMDExNyIsIFwKLSAgICAgICAgICAiMC4xMDkxODUsIDAuNDU4NDIsIDAuNzQ1NzI2LCAxLjEwOTY3LCAxLjQ3MzMyLCAxLjgzNzI5LCAyLjE5OTc1IiwgXAotICAgICAgICAgICIwLjEwOTE3NiwgMC40NTg0MjgsIDAuNzQ1NzI0LCAxLjEwNzkxLCAxLjQ3MzM0LCAxLjgzNTkzLCAyLjIwMTA4IiwgXAotICAgICAgICAgICIwLjEwOTMyNSwgMC40NTg0MTcsIDAuNzQ1NzIyLCAxLjEwOTc4LCAxLjQ3MzQ3LCAxLjgzNzIyLCAyLjE5NzMyIiwgXAotICAgICAgICAgICIwLjEwOTIyNiwgMC40NTg1MTUsIDAuNzQ1NzExLCAxLjExMDEsIDEuNDczMjMsIDEuODM3MjMsIDIuMTk3ODUiLCBcCi0gICAgICAgICAgIjAuMTA5MTYsIDAuNDU4NDIzLCAwLjc0NTY2NSwgMS4xMTAwNiwgMS40NzMzNiwgMS44MzQxMiwgMi4xOTY0IiwgXAotICAgICAgICAgICIwLjEwOTIxNCwgMC40NTg0MjQsIDAuNzQ1NzM1LCAxLjEwODA0LCAxLjQ3MzMzLCAxLjgzMzg3LCAyLjIwMDg0Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI3NjEwNiwgMC40ODc0NDIsIDAuNjUyNzA4LCAwLjg1OTA0NCwgMS4wNjUyOCwgMS4yNzE1MiwgMS40Nzc3MyIsIFwKLSAgICAgICAgICAiMC4yODc2MjUsIDAuNDk4OTY4LCAwLjY2NDIxMSwgMC44NzA1NjcsIDEuMDc2NzksIDEuMjgzMDQsIDEuNDg5MjYiLCBcCi0gICAgICAgICAgIjAuMzAxNDQyLCAwLjUxMjc4OCwgMC42NzgwMjksIDAuODg0MzkyLCAxLjA5MDYxLCAxLjI5Njg2LCAxLjUwMzEyIiwgXAotICAgICAgICAgICIwLjMxNTExNiwgMC41MjY0NTEsIDAuNjkxNjY1LCAwLjg5ODA1MSwgMS4xMDQyNywgMS4zMTA1MSwgMS41MTY3MSIsIFwKLSAgICAgICAgICAiMC4zMjg4MDcsIDAuNTQwMTYsIDAuNzA1MzczLCAwLjkxMTc1OCwgMS4xMTc5OCwgMS4zMjQyMiwgMS41MzA0NiIsIFwKLSAgICAgICAgICAiMC4zNTA1OTUsIDAuNTYxOTQzLCAwLjcyNzIsIDAuOTMzNTQ0LCAxLjEzOTc2LCAxLjM0NiwgMS41NTIyIiwgXAotICAgICAgICAgICIwLjM2OTI2NSwgMC41ODA2MTMsIDAuNzQ1ODI3LCAwLjk1MjIxNCwgMS4xNTg0MywgMS4zNjQ2OCwgMS41NzA5MiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTY3MSwgMC41MTU0NjQsIDAuODQxNjg0LCAxLjI1MzA5LCAxLjY2MjE2LCAyLjA3NDMyLCAyLjQ4NTQ3IiwgXAotICAgICAgICAgICIwLjExNjY2MSwgMC41MTU0MzQsIDAuODQyODg0LCAxLjI1Mjg3LCAxLjY2NDYxLCAyLjA3MzQyLCAyLjQ4NjQyIiwgXAotICAgICAgICAgICIwLjExNjYzNywgMC41MTU0MiwgMC44NDAxOTYsIDEuMjUyODMsIDEuNjY0NTcsIDIuMDczNCwgMi40ODU5MyIsIFwKLSAgICAgICAgICAiMC4xMTY3NDEsIDAuNTE1NDIsIDAuODQyNzUzLCAxLjI1Mjc4LCAxLjY2NDQxLCAyLjA3MjM2LCAyLjQ4NTg0IiwgXAotICAgICAgICAgICIwLjExNjQ0NywgMC41MTU0MTksIDAuODQwNzYzLCAxLjI1MjgxLCAxLjY2NDUxLCAyLjA3Mjk3LCAyLjQ4NjE4IiwgXAotICAgICAgICAgICIwLjExNjY3NiwgMC41MTU0MDIsIDAuODQyODM2LCAxLjI1Mjc1LCAxLjY2NDQyLCAyLjA3MjUyLCAyLjQ4Njg3IiwgXAotICAgICAgICAgICIwLjExNjY1MiwgMC41MTUzOTksIDAuODQwNjk0LCAxLjI1Mjc2LCAxLjY2NDQ2LCAyLjA3Mjg1LCAyLjQ4NTk0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIxMjg3NSwgMC4zOTc3NzYsIDAuNTQxMDIxLCAwLjcxOTkyMywgMC44OTg1ODYsIDEuMDc3MiwgMS4yNTU4NyIsIFwKLSAgICAgICAgICAiMC4yMjQzNDEsIDAuNDA5MjU5LCAwLjU1MjUwNCwgMC43MzE0MDYsIDAuOTEwMDQ5LCAxLjA4ODY5LCAxLjI2NzM1IiwgXAotICAgICAgICAgICIwLjIzODg2NywgMC40MjM4NDEsIDAuNTY3MDc1LCAwLjc0NTg5NSwgMC45MjQ2MTUsIDEuMTAzMzIsIDEuMjgxOSIsIFwKLSAgICAgICAgICAiMC4yNTI3MTgsIDAuNDM3NTQ3LCAwLjU4MDc3MywgMC43NTk2MzMsIDAuOTM4NDE2LCAxLjExNzAxLCAxLjI5NTYxIiwgXAotICAgICAgICAgICIwLjI2NDg0NSwgMC40NDk3NTYsIDAuNTkyOTg1LCAwLjc3MTg5OCwgMC45NTA1MjgsIDEuMTI5MiwgMS4zMDc4MiIsIFwKLSAgICAgICAgICAiMC4yODIyNDUsIDAuNDY3MTQ5LCAwLjYxMDM4NiwgMC43ODkyNDUsIDAuOTY3OTIzLCAxLjE0NjU3LCAxLjMyNTIzIiwgXAotICAgICAgICAgICIwLjI5NjAwNCwgMC40ODA3MjQsIDAuNjIzOTg2LCAwLjgwMjgzMSwgMC45ODE0OTUsIDEuMTYwMTQsIDEuMzM4NzgiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTA5MDI2LCAwLjQ1ODUzMSwgMC43NDU3NzEsIDEuMTEwMjIsIDEuNDczNTMsIDEuODM3MDUsIDIuMTk3NjQiLCBcCi0gICAgICAgICAgIjAuMTA5MDE1LCAwLjQ1ODUyOCwgMC43NDU3NjksIDEuMTEwMjIsIDEuNDcxMDcsIDEuODM3MDYsIDIuMTk3NiIsIFwKLSAgICAgICAgICAiMC4xMDkwMTcsIDAuNDU4NDM0LCAwLjc0NTc1OCwgMS4xMDk3OCwgMS40NzM0MSwgMS44Mzc0NSwgMi4xOTc2MiIsIFwKLSAgICAgICAgICAiMC4xMDkwNjcsIDAuNDU4NCwgMC43NDU3NDMsIDEuMTA4MTIsIDEuNDczNDMsIDEuODM0NCwgMi4xOTc3IiwgXAotICAgICAgICAgICIwLjEwOTAyLCAwLjQ1ODUwNCwgMC43NDU3NDQsIDEuMTEwMTksIDEuNDcxMTUsIDEuODM3MywgMi4xOTc4IiwgXAotICAgICAgICAgICIwLjEwOTAzNCwgMC40NTg0MTcsIDAuNzQ1NzQ1LCAxLjEwNzQsIDEuNDczNCwgMS44MzQyMiwgMi4xOTc2OSIsIFwKLSAgICAgICAgICAiMC4xMDkwNDYsIDAuNDU4MzIyLCAwLjc0NzEwMSwgMS4xMTAxMywgMS40NzM0MywgMS44MzQxNCwgMi4xOTc2NCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMTAyMTQsIDAuNDIxNzA1LCAwLjU4Njk5NywgMC43OTMzNDEsIDAuOTk5NTc2LCAxLjIwNTgxLCAxLjQxMjA0IiwgXAotICAgICAgICAgICIwLjIyMTc4NCwgMC40MzMzMDksIDAuNTk4NjQ3LCAwLjgwNDk3MywgMS4wMTEyNiwgMS4yMTc1OCwgMS40MjM2NiIsIFwKLSAgICAgICAgICAiMC4yMzcxMTksIDAuNDQ4NzM2LCAwLjYxNDAzMSwgMC44MjAzNzQsIDEuMDI2NjEsIDEuMjMyODMsIDEuNDM5MDUiLCBcCi0gICAgICAgICAgIjAuMjUyMDc4LCAwLjQ2MzczMywgMC42MjkwNTIsIDAuODM1Mzc5LCAxLjA0MTY2LCAxLjI0Nzk1LCAxLjQ1NDA2IiwgXAotICAgICAgICAgICIwLjI2NjI3MywgMC40Nzc3NTQsIDAuNjQzMDM4LCAwLjg0OTM4OSwgMS4wNTU2MiwgMS4yNjE4NiwgMS40NjgyMyIsIFwKLSAgICAgICAgICAiMC4yODY1MTQsIDAuNDk3OTksIDAuNjYzMjE4LCAwLjg2OTYyNywgMS4wNzU4NSwgMS4yODIxLCAxLjQ4ODM3IiwgXAotICAgICAgICAgICIwLjMwMjQ0NywgMC41MTM5NDMsIDAuNjc5MTcyLCAwLjg4NTU4MiwgMS4wOTE4MiwgMS4yOTgwNCwgMS41MDQyNSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTY5NDMsIDAuNTE1NTk5LCAwLjg0MjkyOCwgMS4yNTI5MywgMS42NjQ1MywgMi4wNzIwOSwgMi40ODIzNyIsIFwKLSAgICAgICAgICAiMC4xMTY4NjYsIDAuNTE1MzcxLCAwLjgzOTg4NywgMS4yNTI1NywgMS42NjA3NywgMi4wNzQyNSwgMi40ODYxOSIsIFwKLSAgICAgICAgICAiMC4xMTY5MTUsIDAuNTE1NTE3LCAwLjgzOTY5LCAxLjI1MjY2LCAxLjY2NDE3LCAyLjA3MTk4LCAyLjQ4NjE5IiwgXAotICAgICAgICAgICIwLjExNjg0LCAwLjUxNTQ3MSwgMC44NDEzNzMsIDEuMjUxOSwgMS42NTk5NiwgMi4wNzQyNywgMi40ODUwMSIsIFwKLSAgICAgICAgICAiMC4xMTY4NDMsIDAuNTE1NTMyLCAwLjg0Mjc4MSwgMS4yNTI3NywgMS42NjQ0NywgMi4wNzI0NSwgMi40ODM5MiIsIFwKLSAgICAgICAgICAiMC4xMTY4NTUsIDAuNTE1NTIzLCAwLjg0MjY5OSwgMS4yNTI3NSwgMS42NjQ0MywgMi4wNzI0MSwgMi40ODU1MSIsIFwKLSAgICAgICAgICAiMC4xMTY4MzksIDAuNTE1NTE2LCAwLjg0MTQ5NiwgMS4yNTI2NywgMS42NjQyMywgMi4wNzE5MSwgMi40ODU1OCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjk0MzksIDAuNDc5MTA1LCAwLjYyMjMyMSwgMC44MDExOTQsIDAuOTc5OTE2LCAxLjE1ODUsIDEuMzM3MTEiLCBcCi0gICAgICAgICAgIjAuMzA2NzIyLCAwLjQ5MTQ0MSwgMC42MzQ2NTEsIDAuODEzNDY5LCAwLjk5MjIxMSwgMS4xNzA4OCwgMS4zNDk0MyIsIFwKLSAgICAgICAgICAiMC4zMjE3MTgsIDAuNTA2NjM3LCAwLjY0OTg0OSwgMC44Mjg2NDgsIDEuMDA3MzksIDEuMTg2MDUsIDEuMzY0NjMiLCBcCi0gICAgICAgICAgIjAuMzM2NTk0LCAwLjUyMTQ2NiwgMC42NjQ2NzcsIDAuODQzNTA1LCAxLjAyMjE5LCAxLjIwMDgzLCAxLjM3OTQ4IiwgXAotICAgICAgICAgICIwLjM1MDk3MywgMC41MzU2OSwgMC42Nzg4OTUsIDAuODU3NzI0LCAxLjAzNjQ2LCAxLjIxNTE1LCAxLjM5MzY4IiwgXAotICAgICAgICAgICIwLjM3MTQ0MywgMC41NTYyODYsIDAuNjk5NDk2LCAwLjg3ODM5NCwgMS4wNTY5OSwgMS4yMzU3MywgMS40MTQyOSIsIFwKLSAgICAgICAgICAiMC4zODc2MDUsIDAuNTcyNDg3LCAwLjcxNTY5MSwgMC44OTQ1NjIsIDEuMDczMjEsIDEuMjUxODUsIDEuNDMwNTgiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTA5MzUxLCAwLjQ1ODQ2NywgMC43NDU3NTMsIDEuMTEwMiwgMS40NzM1OCwgMS44MzQyOSwgMi4xOTc4NSIsIFwKLSAgICAgICAgICAiMC4xMDkzMjgsIDAuNDU4NDI5LCAwLjc0NTcwOSwgMS4xMDk3OSwgMS40NzM1MywgMS44MzcyOCwgMi4xOTc2MiIsIFwKLSAgICAgICAgICAiMC4xMDkxODYsIDAuNDU4NDIzLCAwLjc0NTcyMSwgMS4xMDk2OSwgMS40NzM1MSwgMS44MzczNCwgMi4xOTc0NyIsIFwKLSAgICAgICAgICAiMC4xMDkxNzksIDAuNDU4NDI4LCAwLjc0NTcyOCwgMS4xMDc5MSwgMS40NzMzNCwgMS44MzU5MywgMi4yMDEwNiIsIFwKLSAgICAgICAgICAiMC4xMDkzMjQsIDAuNDU4MzU2LCAwLjc0NTY1NiwgMS4xMDk4MSwgMS40NzM1MSwgMS44MzcyOCwgMi4xOTc1NSIsIFwKLSAgICAgICAgICAiMC4xMDkyMjEsIDAuNDU4NTEyLCAwLjc0NTY1MiwgMS4xMTAxMywgMS40NzMxOCwgMS44MzczLCAyLjE5NzYzIiwgXAotICAgICAgICAgICIwLjEwOTIyLCAwLjQ1ODQxOSwgMC43NDU3NzIsIDEuMTEwMDcsIDEuNDczMzcsIDEuODM0MTUsIDIuMjAxMDYiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjkzNTg3LCAwLjUwNDk2OSwgMC42NzAyMjIsIDAuODc2NTczLCAxLjA4Mjc5LCAxLjI4OTAzLCAxLjQ5NTIzIiwgXAotICAgICAgICAgICIwLjMwNTcyLCAwLjUxNzEwMiwgMC42ODIzNzEsIDAuODg4NzA1LCAxLjA5NDkyLCAxLjMwMTE3LCAxLjUwNzM3IiwgXAotICAgICAgICAgICIwLjMyMDM1LCAwLjUzMTc0MSwgMC42OTY5OTMsIDAuOTAzMzQzLCAxLjEwOTU2LCAxLjMxNTgxLCAxLjUyMjAzIiwgXAotICAgICAgICAgICIwLjMzNDQwMiwgMC41NDU3OTMsIDAuNzExMDQ4LCAwLjkxNzM5MywgMS4xMjM2MywgMS4zMjk4NiwgMS41MzYxMyIsIFwKLSAgICAgICAgICAiMC4zNDY3MDgsIDAuNTU4MDg3LCAwLjcyMzM0NCwgMC45Mjk2OTMsIDEuMTM1OTEsIDEuMzQyMTUsIDEuNTQ4MzUiLCBcCi0gICAgICAgICAgIjAuMzY0MzUzLCAwLjU3NTczOSwgMC43NDA5NTYsIDAuOTQ3MzQzLCAxLjE1MzU2LCAxLjM1OTgxLCAxLjU2NjA0IiwgXAotICAgICAgICAgICIwLjM3Nzg1MywgMC41ODkyMjMsIDAuNzU0NDUyLCAwLjk2MDgyOCwgMS4xNjcwNSwgMS4zNzMyOSwgMS41Nzk0OSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTY3MjksIDAuNTE1NDQ2LCAwLjg0MjkwOSwgMS4yNTI4LCAxLjY2NDQ1LCAyLjA3MjUyLCAyLjQ4Njk2IiwgXAotICAgICAgICAgICIwLjExNjc0MiwgMC41MTU0NTksIDAuODQyODY1LCAxLjI1MjgxLCAxLjY2NDQ4LCAyLjA3MjU4LCAyLjQ4NjgzIiwgXAotICAgICAgICAgICIwLjExNjY4LCAwLjUxNTQ0MywgMC44NDAzNTIsIDEuMjUyODUsIDEuNjY0NTgsIDIuMDcyODIsIDIuNDg2MzkiLCBcCi0gICAgICAgICAgIjAuMTE2NjkzLCAwLjUxNTQ2LCAwLjg0MDg2LCAxLjI1Mjg5LCAxLjY2MjEyLCAyLjA3MjUxLCAyLjQ4NTc2IiwgXAotICAgICAgICAgICIwLjExNjcyNSwgMC41MTU0NDQsIDAuODQyOTAxLCAxLjI1MjczLCAxLjY2NDQ0LCAyLjA3MjUyLCAyLjQ4Njk5IiwgXAotICAgICAgICAgICIwLjExNjUwMSwgMC41MTU0NTQsIDAuODQwOTA5LCAxLjI1MjgzLCAxLjY2NDUxLCAyLjA3MjgyLCAyLjQ4NjI3IiwgXAotICAgICAgICAgICIwLjExNjc4NywgMC41MTU0MzgsIDAuODQyODkxLCAxLjI1Mjc2LCAxLjY2NDMyLCAyLjA3MjM5LCAyLjQ4NTg4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlMwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yNjIyODgsIDAuNDQ3MjM4LCAwLjU5MDQ0OSwgMC43NjkyNTEsIDAuOTQ3OTk5LCAxLjEyNjY1LCAxLjMwNTIzIiwgXAotICAgICAgICAgICIwLjI3MjY1OSwgMC40NTc0MDEsIDAuNjAwNjE0LCAwLjc3OTQxOSwgMC45NTgxNjcsIDEuMTM2ODIsIDEuMzE1NCIsIFwKLSAgICAgICAgICAiMC4yODU0MjUsIDAuNDcwMzgyLCAwLjYxMzU5NiwgMC43OTI0MTksIDAuOTcxMTEsIDEuMTQ5NzUsIDEuMzI4NDMiLCBcCi0gICAgICAgICAgIjAuMjk4NTk3LCAwLjQ4MzUyOSwgMC42MjY3NDgsIDAuODA1NjQ1LCAwLjk4NDM0NywgMS4xNjI5LCAxLjM0MTU1IiwgXAotICAgICAgICAgICIwLjMxMTc1NCwgMC40OTY2NTYsIDAuNjM5ODcsIDAuODE4NzA0LCAwLjk5NzM4NywgMS4xNzYwMywgMS4zNTQ2NSIsIFwKLSAgICAgICAgICAiMC4zMzI0OSwgMC41MTczOSwgMC42NjA2MDUsIDAuODM5NDQsIDEuMDE4MTIsIDEuMTk2NzYsIDEuMzc1MzkiLCBcCi0gICAgICAgICAgIjAuMzQ5NzYsIDAuNTM0NjM1LCAwLjY3Nzg0OSwgMC44NTY3NSwgMS4wMzUzOCwgMS4yMTQwNiwgMS4zOTI2NSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDkyMzMsIDAuNDU4NDYsIDAuNzQ1NzYsIDEuMTA5NzEsIDEuNDczNTMsIDEuODM3MzQsIDIuMTk3NDYiLCBcCi0gICAgICAgICAgIjAuMTA5MzczLCAwLjQ1ODQ1NywgMC43NDU3NTQsIDEuMTA5NzMsIDEuNDczNTYsIDEuODM3MzYsIDIuMTk3NDkiLCBcCi0gICAgICAgICAgIjAuMTA5MjM4LCAwLjQ1ODQ2LCAwLjc0NTc1OCwgMS4xMDgsIDEuNDczMzUsIDEuODM2MDIsIDIuMjAxMjkiLCBcCi0gICAgICAgICAgIjAuMTA5MjI1LCAwLjQ1ODU1OSwgMC43NDU3MjEsIDEuMTEwMTUsIDEuNDczMzUsIDEuODM3MDUsIDIuMTk3NjUiLCBcCi0gICAgICAgICAgIjAuMTA5MjYzLCAwLjQ1ODQ2NCwgMC43NDU3NiwgMS4xMDgwOCwgMS40NzMzNywgMS44MzQwNywgMi4yMDA5MSIsIFwKLSAgICAgICAgICAiMC4xMDkyNiwgMC40NTg0NjMsIDAuNzQ1NzY1LCAxLjEwODA1LCAxLjQ3MzM3LCAxLjgzNDA2LCAyLjIwMDc3IiwgXAotICAgICAgICAgICIwLjEwOTE4LCAwLjQ1ODU1NiwgMC43NDU3MzcsIDEuMTEwMTMsIDEuNDczMzgsIDEuODM0NjUsIDIuMTk3NzkiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjYzMjcsIDAuNDc0NjEsIDAuNjM5ODc1LCAwLjg0NjIwNywgMS4wNTI0NSwgMS4yNTg2OSwgMS40NjQ4NiIsIFwKLSAgICAgICAgICAiMC4yNzM2NzMsIDAuNDg1MDIyLCAwLjY1MDI4LCAwLjg1NjYxOCwgMS4wNjI4NiwgMS4yNjkwOSwgMS40NzUyOCIsIFwKLSAgICAgICAgICAiMC4yODY5NjQsIDAuNDk4MzE3LCAwLjY2MzU0OCwgMC44Njk5MTYsIDEuMDc2MTMsIDEuMjgyMzksIDEuNDg4NzIiLCBcCi0gICAgICAgICAgIjAuMzAwNDc1LCAwLjUxMTgyNCwgMC42NzcwNDgsIDAuODgzNDI1LCAxLjA4OTY0LCAxLjI5NTksIDEuNTAyMjEiLCBcCi0gICAgICAgICAgIjAuMzE0MDMsIDAuNTI1MzgxLCAwLjY5MDYyMywgMC44OTY5ODIsIDEuMTAzMiwgMS4zMDk0NSwgMS41MTU3OCIsIFwKLSAgICAgICAgICAiMC4zMzYxNTUsIDAuNTQ3NTA4LCAwLjcxMjcyNiwgMC45MTkxMDksIDEuMTI1MzMsIDEuMzMxNTgsIDEuNTM3ODYiLCBcCi0gICAgICAgICAgIjAuMzU1MzM2LCAwLjU2NjY4NywgMC43MzE5MzUsIDAuOTM4Mjg5LCAxLjE0NDUxLCAxLjM1MDc1LCAxLjU1Njk0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExNjcxNiwgMC41MTU1MDMsIDAuODM5NTg1LCAxLjI1MzE2LCAxLjY2MjEzLCAyLjA3NDcyLCAyLjQ4NDMxIiwgXAotICAgICAgICAgICIwLjExNjY4MywgMC41MTU0NTEsIDAuODQxNTc3LCAxLjI1Mjk5LCAxLjY2MjE1LCAyLjA3MzUxLCAyLjQ4MjU0IiwgXAotICAgICAgICAgICIwLjExNjYyNCwgMC41MTU0NDMsIDAuODQyOTUxLCAxLjI1MjkxLCAxLjY2NDY3LCAyLjA3MzY1LCAyLjQ4NTU1IiwgXAotICAgICAgICAgICIwLjExNjYyMSwgMC41MTUzOTUsIDAuODQyNzc0LCAxLjI1Mjg0LCAxLjY2NDU4LCAyLjA3MzQzLCAyLjQ4NTU1IiwgXAotICAgICAgICAgICIwLjExNjYzLCAwLjUxNTQwOCwgMC44NDI4NiwgMS4yNTI3NiwgMS42NjQ1NCwgMi4wNzMzNSwgMi40ODQ5NiIsIFwKLSAgICAgICAgICAiMC4xMTY2NDYsIDAuNTE1NDAyLCAwLjg0MjcyNSwgMS4yNTI3OCwgMS42NjQ0OSwgMi4wNzMxOCwgMi40ODU2NCIsIFwKLSAgICAgICAgICAiMC4xMTY2MTUsIDAuNTE1NDA4LCAwLjg0Mjg0OSwgMS4yNTI3NSwgMS42NjQzOCwgMi4wNzI0NiwgMi40ODY5NyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTMSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTcxMjA5LCAwLjM1NjEyNCwgMC40OTkzMzcsIDAuNjc4MjIsIDAuODU2ODg4LCAxLjAzNTU0LCAxLjIxNDI2IiwgXAotICAgICAgICAgICIwLjE4MTczOSwgMC4zNjY2MiwgMC41MDk4NTcsIDAuNjg4NzQ0LCAwLjg2NzQxLCAxLjA0NjA0LCAxLjIyNDciLCBcCi0gICAgICAgICAgIjAuMTk1MzkxLCAwLjM4MDI3NywgMC41MjM0ODcsIDAuNzAyMzc4LCAwLjg4MTA0MiwgMS4wNTk2OCwgMS4yMzgzMyIsIFwKLSAgICAgICAgICAiMC4yMDg4NjQsIDAuMzkzNzI2LCAwLjUzNjk2OSwgMC43MTU4NjksIDAuODk0NTM0LCAxLjA3MzE2LCAxLjI1MTgxIiwgXAotICAgICAgICAgICIwLjIyMjQ1MSwgMC40MDczMzgsIDAuNTUwNTc1LCAwLjcyOTQwOCwgMC45MDgxMTksIDEuMDg2NzksIDEuMjY1NDUiLCBcCi0gICAgICAgICAgIjAuMjQ0NDE2LCAwLjQyOTMyMywgMC41NzI1NjgsIDAuNzUxMzksIDAuOTMwMTU4LCAxLjEwODgyLCAxLjI4NzQxIiwgXAotICAgICAgICAgICIwLjI2Mzc1NiwgMC40NDg3MTksIDAuNTkxOTg3LCAwLjc3MDkwOCwgMC45NDk1OTEsIDEuMTI4MiwgMS4zMDY4NSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDg3NDYsIDAuNDU4NDEyLCAwLjc0NTgwMiwgMS4xMTAxNywgMS40NzM1MywgMS44MzQzOCwgMi4yMDE1NCIsIFwKLSAgICAgICAgICAiMC4xMDg3MTgsIDAuNDU4MzEyLCAwLjc0NTgzOSwgMS4xMTAxNiwgMS40NzM1LCAxLjgzNjg5LCAyLjE5NzYzIiwgXAotICAgICAgICAgICIwLjEwODcyNSwgMC40NTgzNTksIDAuNzQ2ODQ5LCAxLjExMDE2LCAxLjQ3MzQ2LCAxLjgzNjU5LCAyLjE5NzYyIiwgXAotICAgICAgICAgICIwLjEwODc5NywgMC40NTc3OTgsIDAuNzQ1NzY5LCAxLjExMDE1LCAxLjQ3MzQ4LCAxLjgzNjc2LCAyLjE5NzQyIiwgXAotICAgICAgICAgICIwLjEwODgyMywgMC40NTgzMzUsIDAuNzQ1NzQ1LCAxLjEwNzksIDEuNDczMzYsIDEuODM3MTksIDIuMTk3OTYiLCBcCi0gICAgICAgICAgIjAuMTA4ODg1LCAwLjQ1ODQwMiwgMC43NDU2ODgsIDEuMTA5NzEsIDEuNDczNTYsIDEuODM3MzUsIDIuMTk3NDYiLCBcCi0gICAgICAgICAgIjAuMTA4ODcyLCAwLjQ1ODQ4NiwgMC43NDU2ODksIDEuMTEwMTcsIDEuNDcwNDQsIDEuODM3MDMsIDIuMTk3NjYiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTY0Mjg2LCAwLjM3NTczMiwgMC41NDEwMzIsIDAuNzQ3MzU5LCAwLjk1MzYyOSwgMS4xNTk3OSwgMS4zNjYwMiIsIFwKLSAgICAgICAgICAiMC4xNzQ2NzgsIDAuMzg2MTM3LCAwLjU1MTQxNCwgMC43NTc3MzksIDAuOTY0MDE3LCAxLjE3MDE3LCAxLjM3NjQiLCBcCi0gICAgICAgICAgIjAuMTg3NzUxLCAwLjM5OTIzNSwgMC41NjQ0NTYsIDAuNzcwODQsIDAuOTc3MDYzLCAxLjE4MzI5LCAxLjM4OTQ5IiwgXAotICAgICAgICAgICIwLjIwMDk5MSwgMC40MTIzNDgsIDAuNTc3NTY3LCAwLjc4Mzk2MywgMC45OTAxOSwgMS4xOTY0MiwgMS40MDI2MiIsIFwKLSAgICAgICAgICAiMC4yMTQwMTksIDAuNDI1NTE5LCAwLjU5MDg1MSwgMC43OTcxODgsIDEuMDAzNDEsIDEuMjA5NjIsIDEuNDE1ODUiLCBcCi0gICAgICAgICAgIjAuMjM1MjI4LCAwLjQ0Njc5OCwgMC42MTIwODIsIDAuODE4NDMyLCAxLjAyNDc1LCAxLjIzMDkxLCAxLjQzNzExIiwgXAotICAgICAgICAgICIwLjI1MzY5NCwgMC40NjUyNDcsIDAuNjMwNDkyLCAwLjgzNjkwNywgMS4wNDMxNCwgMS4yNDkzOCwgMS40NTU2MyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTYzOTYsIDAuNTE1MzIxLCAwLjgzOTYyMywgMS4yNTI1NywgMS42NjMzOCwgMi4wNzI1NCwgMi40ODYyMiIsIFwKLSAgICAgICAgICAiMC4xMTYzOTMsIDAuNTE1MzcxLCAwLjg0MDIsIDEuMjUyNTcsIDEuNjYwNjcsIDIuMDcyMzUsIDIuNDg2MjYiLCBcCi0gICAgICAgICAgIjAuMTE2NDExLCAwLjUxNTQsIDAuODQyNzgzLCAxLjI1MjY4LCAxLjY2NDI2LCAyLjA3MjI0LCAyLjQ4NTE3IiwgXAotICAgICAgICAgICIwLjExNjU1OSwgMC41MTUzOTgsIDAuODQxMzM4LCAxLjI1MjY3LCAxLjY2NDMsIDIuMDcyMDQsIDIuNDg1NzUiLCBcCi0gICAgICAgICAgIjAuMTE2NDkxLCAwLjUxNTIxNywgMC44NDA0OTcsIDEuMjUyNDgsIDEuNjYxMDksIDIuMDcyNTksIDIuNDg2MTQiLCBcCi0gICAgICAgICAgIjAuMTE2NTMzLCAwLjUxNTM2NywgMC44NDA5OTksIDEuMjUyODgsIDEuNjYzMDYsIDIuMDcxOTIsIDIuNDgzNzYiLCBcCi0gICAgICAgICAgIjAuMTE2NzQzLCAwLjUxNTQyLCAwLjg0MjU5MSwgMS4yNTI3NiwgMS42NjQ0OCwgMi4wNzI1MSwgMi40ODYzMSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTMSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjAyOTQ5LCAwLjM4NzY4NCwgMC41MzA5LCAwLjcwOTcxOCwgMC44ODg0NjksIDEuMDY3MTMsIDEuMjQ1NyIsIFwKLSAgICAgICAgICAiMC4yMTQ4MzQsIDAuMzk5NzcxLCAwLjU0Mjk4OCwgMC43MjE4OTgsIDAuOTAwNTA1LCAxLjA3OTIsIDEuMjU3NzkiLCBcCi0gICAgICAgICAgIjAuMjI5ODk3LCAwLjQxNDYzMSwgMC41NTc4NDYsIDAuNzM2NjU5LCAwLjkxNTQxMSwgMS4wOTQwNywgMS4yNzI2NCIsIFwKLSAgICAgICAgICAiMC4yNDQwMjMsIDAuNDI4ODk3LCAwLjU3MjEyLCAwLjc1MTAyNywgMC45Mjk2NjcsIDEuMTA4MywgMS4yODY5MyIsIFwKLSAgICAgICAgICAiMC4yNTY3NDcsIDAuNDQxNjI1LCAwLjU4NDg0NSwgMC43NjM2ODksIDAuOTQyMzY3LCAxLjEyMTAxLCAxLjI5OTY0IiwgXAotICAgICAgICAgICIwLjI3NTA0NSwgMC40NTk3MzEsIDAuNjAyOTU3LCAwLjc4MTgzOSwgMC45NjA0OTQsIDEuMTM5MTIsIDEuMzE3NzYiLCBcCi0gICAgICAgICAgIjAuMjg5NjE1LCAwLjQ3NDMxOSwgMC42MTc1MzQsIDAuNzk2MzY5LCAwLjk3NTA1NiwgMS4xNTM3LCAxLjMzMjM3Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwOTI2MiwgMC40NTg0MTgsIDAuNzQ1NzU5LCAxLjEwOTc0LCAxLjQ3MzU2LCAxLjgzNzM3LCAyLjE5NzQ3IiwgXAotICAgICAgICAgICIwLjEwOTAzOSwgMC40NTg1MzMsIDAuNzQ1NzMxLCAxLjEwNzA3LCAxLjQ3MzAyLCAxLjgzNzM2LCAyLjE5Nzc2IiwgXAotICAgICAgICAgICIwLjEwOTI2MSwgMC40NTg0MTcsIDAuNzQ1NzU2LCAxLjEwOTcxLCAxLjQ3MzU0LCAxLjgzNzM5LCAyLjE5NzQ3IiwgXAotICAgICAgICAgICIwLjEwOTEwNiwgMC40NTg1MjQsIDAuNzQ1NzA2LCAxLjExMDEsIDEuNDczNCwgMS44MzQzOCwgMi4xOTc4IiwgXAotICAgICAgICAgICIwLjEwOTA3OSwgMC40NTg0MTMsIDAuNzQ1NjgxLCAxLjEwODE5LCAxLjQ3MzMzLCAxLjgzMzkxLCAyLjE5NzQ0IiwgXAotICAgICAgICAgICIwLjEwOTI4NywgMC40NTc3ODMsIDAuNzQ2ODIyLCAxLjExMDEyLCAxLjQ3MzM4LCAxLjgzNjkzLCAyLjE5NzYiLCBcCi0gICAgICAgICAgIjAuMTA5MTM1LCAwLjQ1ODMzMiwgMC43NDU3NDksIDEuMTA3OTMsIDEuNDczMywgMS44MzYyLCAyLjIwMTIxIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIwMDUyMiwgMC40MTIwNjgsIDAuNTc3Mzk3LCAwLjc4MzcwNSwgMC45ODk5NzksIDEuMTk2MiwgMS40MDI0MiIsIFwKLSAgICAgICAgICAiMC4yMTI2NDgsIDAuNDI0MTQ3LCAwLjU4OTQzNCwgMC43OTU3ODEsIDEuMDAyMDYsIDEuMjA4NCwgMS40MTQ0NyIsIFwKLSAgICAgICAgICAiMC4yMjgzMzUsIDAuNDM5ODIyLCAwLjYwNTA2NiwgMC44MTE0NjUsIDEuMDE3NywgMS4yMjM5NSwgMS40MzAyOCIsIFwKLSAgICAgICAgICAiMC4yNDMzMTEsIDAuNDU0NzE4LCAwLjYyMDAxNywgMC44MjYzNjIsIDEuMDMyNiwgMS4yMzg4MiwgMS40NDUwNCIsIFwKLSAgICAgICAgICAiMC4yNTc2MzMsIDAuNDY5MjQ1LCAwLjYzNDU0NiwgMC44NDA4OSwgMS4wNDcxMywgMS4yNTMzNSwgMS40NTk1NyIsIFwKLSAgICAgICAgICAiMC4yNzg5MDEsIDAuNDkwNDk5LCAwLjY1NTc5OCwgMC44NjIxNDQsIDEuMDY4MzgsIDEuMjc0NiwgMS40ODA4MiIsIFwKLSAgICAgICAgICAiMC4yOTU3MzUsIDAuNTA3MjA2LCAwLjY3MjQzOSwgMC44Nzg4NSwgMS4wODUwOSwgMS4yOTEzMSwgMS40OTc1MiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTY4NzEsIDAuNTE0MzcsIDAuODQwNjE1LCAxLjI1MTcsIDEuNjYwMzYsIDIuMDczMywgMi40Nzg3MSIsIFwKLSAgICAgICAgICAiMC4xMTY5MDIsIDAuNTE0NjE5LCAwLjg0MDg5OSwgMS4yNTEsIDEuNjY0MDUsIDIuMDc0MjksIDIuNDgzMjkiLCBcCi0gICAgICAgICAgIjAuMTE2ODI3LCAwLjUxNTU1NywgMC44NDI4NzEsIDEuMjUyODEsIDEuNjY0NSwgMi4wNzI2NywgMi40ODU0NSIsIFwKLSAgICAgICAgICAiMC4xMTY4NSwgMC41MTU0OTksIDAuODQwNzEzLCAxLjI1MjU3LCAxLjY2NDEzLCAyLjA3MTc0LCAyLjQ4NTk4IiwgXAotICAgICAgICAgICIwLjExNjkzMywgMC41MTU0OTUsIDAuODQwODQsIDEuMjUyNTQsIDEuNjY0MDcsIDIuMDcyMDcsIDIuNDg2MDQiLCBcCi0gICAgICAgICAgIjAuMTE2OCwgMC41MTU1MDEsIDAuODM5NzIxLCAxLjI1MjY0LCAxLjY2NDE5LCAyLjA3MTc4LCAyLjQ4NTk4IiwgXAotICAgICAgICAgICIwLjExNjc2OSwgMC41MTU1MDYsIDAuODQxNDc4LCAxLjI1MjY3LCAxLjY2NDI0LCAyLjA3MTk2LCAyLjQ4NTE2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0MzIsIDAuMDA0MzYyLCAwLjAwNDM2NywgMC4wMDQzNywgMC4wMDQzNzIsIDAuMDA0MzcyLCAwLjAwNDM3MyIsIFwKLSAgICAgICAgICAiMC4wMDQzMTQsIDAuMDA0MzU2LCAwLjAwNDM2MiwgMC4wMDQzNjUsIDAuMDA0MzY2LCAwLjAwNDM2NywgMC4wMDQzNjgiLCBcCi0gICAgICAgICAgIjAuMDA0MzExLCAwLjAwNDM1MiwgMC4wMDQzNTgsIDAuMDA0MzYxLCAwLjAwNDM2MiwgMC4wMDQzNjMsIDAuMDA0MzY0IiwgXAotICAgICAgICAgICIwLjAwNDMwOCwgMC4wMDQzNSwgMC4wMDQzNTUsIDAuMDA0MzU5LCAwLjAwNDM1OSwgMC4wMDQzNjEsIDAuMDA0MzYxIiwgXAotICAgICAgICAgICIwLjAwNDMwNiwgMC4wMDQzNDcsIDAuMDA0MzUzLCAwLjAwNDM1NiwgMC4wMDQzNTcsIDAuMDA0MzU4LCAwLjAwNDM1OSIsIFwKLSAgICAgICAgICAiMC4wMDQzMDMsIDAuMDA0MzQ1LCAwLjAwNDM1LCAwLjAwNDM1MywgMC4wMDQzNTQsIDAuMDA0MzU2LCAwLjAwNDM1NiIsIFwKLSAgICAgICAgICAiMC4wMDQzLCAwLjAwNDM0MiwgMC4wMDQzNDcsIDAuMDA0MzUsIDAuMDA0MzUyLCAwLjAwNDM1MywgMC4wMDQzNTMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDM0NjYsIDAuMDAzNTI5LCAwLjAwMzUzNywgMC4wMDM1NDIsIDAuMDAzNTQ0LCAwLjAwMzU0NSwgMC4wMDM1NDYiLCBcCi0gICAgICAgICAgIjAuMDAzNDU1LCAwLjAwMzUxOCwgMC4wMDM1MjYsIDAuMDAzNTMsIDAuMDAzNTMyLCAwLjAwMzUzNCwgMC4wMDM1MzUiLCBcCi0gICAgICAgICAgIjAuMDAzNDQ4LCAwLjAwMzUxMSwgMC4wMDM1MTksIDAuMDAzNTI0LCAwLjAwMzUyNiwgMC4wMDM1MjgsIDAuMDAzNTI4IiwgXAotICAgICAgICAgICIwLjAwMzQ0NCwgMC4wMDM1MDYsIDAuMDAzNTE1LCAwLjAwMzUxOSwgMC4wMDM1MjIsIDAuMDAzNTIzLCAwLjAwMzUyNCIsIFwKLSAgICAgICAgICAiMC4wMDM0NCwgMC4wMDM1MDMsIDAuMDAzNTEyLCAwLjAwMzUxNiwgMC4wMDM1MTgsIDAuMDAzNTIsIDAuMDAzNTIxIiwgXAotICAgICAgICAgICIwLjAwMzQzNywgMC4wMDM0OTksIDAuMDAzNTA3LCAwLjAwMzUxMiwgMC4wMDM1MTQsIDAuMDAzNTE2LCAwLjAwMzUxNyIsIFwKLSAgICAgICAgICAiMC4wMDM0MzQsIDAuMDAzNDk2LCAwLjAwMzUwNCwgMC4wMDM1MDksIDAuMDAzNTExLCAwLjAwMzUxMywgMC4wMDM1MTQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQzNzMsIDAuMDA0NDE0LCAwLjAwNDQyLCAwLjAwNDQyMywgMC4wMDQ0MjQsIDAuMDA0NDI0LCAwLjAwNDQyNiIsIFwKLSAgICAgICAgICAiMC4wMDQzNjcsIDAuMDA0NDA5LCAwLjAwNDQxNCwgMC4wMDQ0MTcsIDAuMDA0NDE4LCAwLjAwNDQxOSwgMC4wMDQ0MTkiLCBcCi0gICAgICAgICAgIjAuMDA0MzY0LCAwLjAwNDQwNSwgMC4wMDQ0MSwgMC4wMDQ0MTMsIDAuMDA0NDE0LCAwLjAwNDQxNSwgMC4wMDQ0MTYiLCBcCi0gICAgICAgICAgIjAuMDA0MzYxLCAwLjAwNDQwMiwgMC4wMDQ0MDgsIDAuMDA0NDExLCAwLjAwNDQxMiwgMC4wMDQ0MTIsIDAuMDA0NDEzIiwgXAotICAgICAgICAgICIwLjAwNDM1OSwgMC4wMDQ0MDEsIDAuMDA0NDA2LCAwLjAwNDQwOSwgMC4wMDQ0MSwgMC4wMDQ0MTEsIDAuMDA0NDExIiwgXAotICAgICAgICAgICIwLjAwNDM1NiwgMC4wMDQzOTgsIDAuMDA0NDAzLCAwLjAwNDQwNSwgMC4wMDQ0MDcsIDAuMDA0NDA4LCAwLjAwNDQwOCIsIFwKLSAgICAgICAgICAiMC4wMDQzNTMsIDAuMDA0Mzk1LCAwLjAwNDQsIDAuMDA0NDAzLCAwLjAwNDQwNCwgMC4wMDQ0MDYsIDAuMDA0NDA2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzMzQ3LCAwLjAwMzQxLCAwLjAwMzQxOCwgMC4wMDM0MjIsIDAuMDAzNDI0LCAwLjAwMzQyNiwgMC4wMDM0MjciLCBcCi0gICAgICAgICAgIjAuMDAzMzM2LCAwLjAwMzM5OCwgMC4wMDM0MDcsIDAuMDAzNDExLCAwLjAwMzQxMywgMC4wMDM0MTUsIDAuMDAzNDE2IiwgXAotICAgICAgICAgICIwLjAwMzMyOSwgMC4wMDMzOTIsIDAuMDAzNCwgMC4wMDM0MDQsIDAuMDAzNDA3LCAwLjAwMzQwOCwgMC4wMDM0MDkiLCBcCi0gICAgICAgICAgIjAuMDAzMzI1LCAwLjAwMzM4NywgMC4wMDMzOTUsIDAuMDAzNCwgMC4wMDM0MDIsIDAuMDAzNDAzLCAwLjAwMzQwNCIsIFwKLSAgICAgICAgICAiMC4wMDMzMjIsIDAuMDAzMzg0LCAwLjAwMzM5MiwgMC4wMDMzOTcsIDAuMDAzMzk5LCAwLjAwMzQsIDAuMDAzNDAxIiwgXAotICAgICAgICAgICIwLjAwMzMxNywgMC4wMDMzOCwgMC4wMDMzODgsIDAuMDAzMzkyLCAwLjAwMzM5NSwgMC4wMDMzOTYsIDAuMDAzMzk3IiwgXAotICAgICAgICAgICIwLjAwMzMxNSwgMC4wMDMzNzcsIDAuMDAzMzg1LCAwLjAwMzM5LCAwLjAwMzM5MiwgMC4wMDMzOTMsIDAuMDAzMzk0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzNTUzLCAwLjAwMzYwMywgMC4wMDM2MSwgMC4wMDM2MTQsIDAuMDAzNjE2LCAwLjAwMzYxNywgMC4wMDM2MTciLCBcCi0gICAgICAgICAgIjAuMDAzNTM4LCAwLjAwMzU4OCwgMC4wMDM1OTUsIDAuMDAzNTk5LCAwLjAwMzYsIDAuMDAzNjAyLCAwLjAwMzYwMiIsIFwKLSAgICAgICAgICAiMC4wMDM1MjksIDAuMDAzNTc5LCAwLjAwMzU4NiwgMC4wMDM1ODksIDAuMDAzNTkxLCAwLjAwMzU5MiwgMC4wMDM1OTMiLCBcCi0gICAgICAgICAgIjAuMDAzNTIyLCAwLjAwMzU3NCwgMC4wMDM1OCwgMC4wMDM1ODQsIDAuMDAzNTg1LCAwLjAwMzU4NiwgMC4wMDM1ODciLCBcCi0gICAgICAgICAgIjAuMDAzNTIsIDAuMDAzNTcsIDAuMDAzNTc3LCAwLjAwMzU4MSwgMC4wMDM1ODMsIDAuMDAzNTg0LCAwLjAwMzU4NCIsIFwKLSAgICAgICAgICAiMC4wMDM1MTcsIDAuMDAzNTY3LCAwLjAwMzU3NCwgMC4wMDM1NzgsIDAuMDAzNTc5LCAwLjAwMzU4MSwgMC4wMDM1ODEiLCBcCi0gICAgICAgICAgIjAuMDAzNTE2LCAwLjAwMzU2OCwgMC4wMDM1NzQsIDAuMDAzNTc4LCAwLjAwMzU4LCAwLjAwMzU4MSwgMC4wMDM1ODIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDMxMTYsIDAuMDAzMTgyLCAwLjAwMzE5LCAwLjAwMzE5NSwgMC4wMDMxOTcsIDAuMDAzMTk5LCAwLjAwMzIiLCBcCi0gICAgICAgICAgIjAuMDAzMDk2LCAwLjAwMzE2MSwgMC4wMDMxNywgMC4wMDMxNzUsIDAuMDAzMTc3LCAwLjAwMzE3OSwgMC4wMDMxOCIsIFwKLSAgICAgICAgICAiMC4wMDMwODUsIDAuMDAzMTUxLCAwLjAwMzE1OSwgMC4wMDMxNjQsIDAuMDAzMTY2LCAwLjAwMzE2OCwgMC4wMDMxNjkiLCBcCi0gICAgICAgICAgIjAuMDAzMDgsIDAuMDAzMTQ2LCAwLjAwMzE1NSwgMC4wMDMxNTksIDAuMDAzMTYyLCAwLjAwMzE2MywgMC4wMDMxNjQiLCBcCi0gICAgICAgICAgIjAuMDAzMDc4LCAwLjAwMzE0NCwgMC4wMDMxNTIsIDAuMDAzMTU3LCAwLjAwMzE1OSwgMC4wMDMxNjEsIDAuMDAzMTYyIiwgXAotICAgICAgICAgICIwLjAwMzA3NywgMC4wMDMxNDMsIDAuMDAzMTUyLCAwLjAwMzE1NywgMC4wMDMxNTksIDAuMDAzMTYxLCAwLjAwMzE2MiIsIFwKLSAgICAgICAgICAiMC4wMDMwNzcsIDAuMDAzMTQ0LCAwLjAwMzE1MywgMC4wMDMxNTgsIDAuMDAzMTYsIDAuMDAzMTYyLCAwLjAwMzE2MyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlMwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQxMzcsIDAuMDA0MTc4LCAwLjAwNDE4MywgMC4wMDQxODYsIDAuMDA0MTg3LCAwLjAwNDE4OCwgMC4wMDQxODgiLCBcCi0gICAgICAgICAgIjAuMDA0MTI4LCAwLjAwNDE2OSwgMC4wMDQxNzQsIDAuMDA0MTc2LCAwLjAwNDE3OCwgMC4wMDQxNzksIDAuMDA0MTc5IiwgXAotICAgICAgICAgICIwLjAwNDExOSwgMC4wMDQxNiwgMC4wMDQxNjUsIDAuMDA0MTY4LCAwLjAwNDE2OSwgMC4wMDQxNywgMC4wMDQxNyIsIFwKLSAgICAgICAgICAiMC4wMDQxMTQsIDAuMDA0MTU1LCAwLjAwNDE2LCAwLjAwNDE2MiwgMC4wMDQxNjQsIDAuMDA0MTY0LCAwLjAwNDE2NSIsIFwKLSAgICAgICAgICAiMC4wMDQxMTEsIDAuMDA0MTUzLCAwLjAwNDE1NywgMC4wMDQxNiwgMC4wMDQxNjEsIDAuMDA0MTYyLCAwLjAwNDE2MiIsIFwKLSAgICAgICAgICAiMC4wMDQxMDksIDAuMDA0MTUsIDAuMDA0MTU1LCAwLjAwNDE1OCwgMC4wMDQxNTksIDAuMDA0MTYsIDAuMDA0MTYiLCBcCi0gICAgICAgICAgIjAuMDA0MTA4LCAwLjAwNDE1LCAwLjAwNDE1NSwgMC4wMDQxNTcsIDAuMDA0MTU5LCAwLjAwNDE1OSwgMC4wMDQxNTkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQ4MjYsIDAuMDA0ODg4LCAwLjAwNDg5NiwgMC4wMDQ5LCAwLjAwNDkwMywgMC4wMDQ5MDQsIDAuMDA0OTA1IiwgXAotICAgICAgICAgICIwLjAwNDgyMywgMC4wMDQ4ODYsIDAuMDA0ODkzLCAwLjAwNDg5OCwgMC4wMDQ5LCAwLjAwNDkwMSwgMC4wMDQ5MDIiLCBcCi0gICAgICAgICAgIjAuMDA0ODE5LCAwLjAwNDg4MiwgMC4wMDQ4OSwgMC4wMDQ4OTQsIDAuMDA0ODk2LCAwLjAwNDg5NywgMC4wMDQ4OTgiLCBcCi0gICAgICAgICAgIjAuMDA0ODE1LCAwLjAwNDg3NywgMC4wMDQ4ODUsIDAuMDA0ODksIDAuMDA0ODkyLCAwLjAwNDg5MywgMC4wMDQ4OTQiLCBcCi0gICAgICAgICAgIjAuMDA0ODExLCAwLjAwNDg3NCwgMC4wMDQ4ODIsIDAuMDA0ODg2LCAwLjAwNDg4OCwgMC4wMDQ4ODksIDAuMDA0ODkiLCBcCi0gICAgICAgICAgIjAuMDA0ODA5LCAwLjAwNDg3MSwgMC4wMDQ4NzksIDAuMDA0ODg0LCAwLjAwNDg4NiwgMC4wMDQ4ODcsIDAuMDA0ODg4IiwgXAotICAgICAgICAgICIwLjAwNDgwNywgMC4wMDQ4NjksIDAuMDA0ODc3LCAwLjAwNDg4MSwgMC4wMDQ4ODQsIDAuMDA0ODg1LCAwLjAwNDg4NiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlMxIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDM3NzQsIDAuMDAzODE4LCAwLjAwMzgyNSwgMC4wMDM4MjgsIDAuMDAzODMsIDAuMDAzODMyLCAwLjAwMzgzMiIsIFwKLSAgICAgICAgICAiMC4wMDM3NzIsIDAuMDAzODE2LCAwLjAwMzgyMiwgMC4wMDM4MjcsIDAuMDAzODI5LCAwLjAwMzgyOSwgMC4wMDM4MyIsIFwKLSAgICAgICAgICAiMC4wMDM3NywgMC4wMDM4MTQsIDAuMDAzODIsIDAuMDAzODI0LCAwLjAwMzgyNiwgMC4wMDM4MjcsIDAuMDAzODI4IiwgXAotICAgICAgICAgICIwLjAwMzc2NywgMC4wMDM4MTIsIDAuMDAzODE4LCAwLjAwMzgyMiwgMC4wMDM4MjMsIDAuMDAzODI0LCAwLjAwMzgyNSIsIFwKLSAgICAgICAgICAiMC4wMDM3NjYsIDAuMDAzODEsIDAuMDAzODE2LCAwLjAwMzgyLCAwLjAwMzgyMiwgMC4wMDM4MjQsIDAuMDAzODI0IiwgXAotICAgICAgICAgICIwLjAwMzc2NCwgMC4wMDM4MDksIDAuMDAzODE1LCAwLjAwMzgxOCwgMC4wMDM4MiwgMC4wMDM4MjEsIDAuMDAzODIyIiwgXAotICAgICAgICAgICIwLjAwMzc2MywgMC4wMDM4MDcsIDAuMDAzODE0LCAwLjAwMzgxNywgMC4wMDM4MTksIDAuMDAzODIsIDAuMDAzODIxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyOTA0LCAwLjAwMjk3LCAwLjAwMjk4LCAwLjAwMjk4NSwgMC4wMDI5ODgsIDAuMDAyOTg5LCAwLjAwMjk5MSIsIFwKLSAgICAgICAgICAiMC4wMDI4OTUsIDAuMDAyOTYxLCAwLjAwMjk3MSwgMC4wMDI5NzYsIDAuMDAyOTc5LCAwLjAwMjk4LCAwLjAwMjk4MSIsIFwKLSAgICAgICAgICAiMC4wMDI4OTEsIDAuMDAyOTU2LCAwLjAwMjk2NiwgMC4wMDI5NzEsIDAuMDAyOTczLCAwLjAwMjk3NSwgMC4wMDI5NzYiLCBcCi0gICAgICAgICAgIjAuMDAyODg3LCAwLjAwMjk1MiwgMC4wMDI5NjEsIDAuMDAyOTY3LCAwLjAwMjk2OSwgMC4wMDI5NzEsIDAuMDAyOTcyIiwgXAotICAgICAgICAgICIwLjAwMjg4NCwgMC4wMDI5NSwgMC4wMDI5NiwgMC4wMDI5NjUsIDAuMDAyOTY4LCAwLjAwMjk2OSwgMC4wMDI5NyIsIFwKLSAgICAgICAgICAiMC4wMDI4ODMsIDAuMDAyOTQ5LCAwLjAwMjk1OSwgMC4wMDI5NjQsIDAuMDAyOTY2LCAwLjAwMjk2OCwgMC4wMDI5NjkiLCBcCi0gICAgICAgICAgIjAuMDAyODgzLCAwLjAwMjk0OSwgMC4wMDI5NTksIDAuMDAyOTY0LCAwLjAwMjk2NywgMC4wMDI5NjgsIDAuMDAyOTY5Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBNWEkzWEwgKgotICogLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChNWEkzWEwpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4xNjk2Mjc7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY0NTUwMTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2NDM2MjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2NDU1MDE7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNzA0LCAwLjAwMDY5MiwgMC4wMDA2ODYsIDAuMDAwNjgxLCAwLjAwMDY3OCwgMC4wMDA2NzUsIDAuMDAwNjczIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxNjE2LCAwLjAwMTYxMSwgMC4wMDE2MDgsIDAuMDAxNjA1LCAwLjAwMTYwNCwgMC4wMDE2MDIsIDAuMDAxNjAyIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA1ODkwMzM7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNTg3MjcyOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDU4OTAzMzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxNTksIDAuMDAwMTYsIDAuMDAwMTYxLCAwLjAwMDE2MSwgMC4wMDAxNjIsIDAuMDAwMTYyLCAwLjAwMDE2MiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDE2NywgMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQykgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNTcxMjg2OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDU3MTA2NTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA1NzEyODY7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjY4LCAwLjAwMDI1LCAwLjAwMDI0LCAwLjAwMDIzNiwgMC4wMDAyMzQsIDAuMDAwMjMyLCAwLjAwMDIzMyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTA3OSwgMC4wMDEwNjYsIDAuMDAxMDU5LCAwLjAwMTA1NSwgMC4wMDEwNTMsIDAuMDAxMDUyLCAwLjAwMTA1MiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUzApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTE1MzA5OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTE1MjI4OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTE1MzA5OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDE5OCwgMC4wMDAxNzksIDAuMDAwMTY5LCAwLjAwMDE2NSwgMC4wMDAxNjQsIDAuMDAwMTYzLCAwLjAwMDE2NSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTU0NCwgMC4wMDE1MzIsIDAuMDAxNTI1LCAwLjAwMTUyMiwgMC4wMDE1MiwgMC4wMDE1MTksIDAuMDAxNTE4Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTMSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxMTg1MjY7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxMTg0NTM7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxMTg1MjY7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzEzLCAwLjAwMDI5NywgMC4wMDAyODYsIDAuMDAwMjgyLCAwLjAwMDI3OSwgMC4wMDAyNzcsIDAuMDAwMjc4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxNzI4LCAwLjAwMTcxNiwgMC4wMDE3MDgsIDAuMDAxNzA1LCAwLjAwMTcwNCwgMC4wMDE3MDIsIDAuMDAxNzAxIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMDY0OTEwMzsKLSAgICBmdW5jdGlvbiA6ICIoISgoUzEgQykgKyAoIVMxICgoUzAgQikgKyAoIVMwIEEpKSkpKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzI4NDkxLCAwLjM1Mzg0NywgMC41ODE2MiwgMC45NjA1NTgsIDEuMzM5NDIsIDIuMjIzMjIsIDIuNzI4MjMiLCBcCi0gICAgICAgICAgIjAuMzM5OTM2LCAwLjM2NTI5MiwgMC41OTMwNjQsIDAuOTcyMDA1LCAxLjM1MDg1LCAyLjIzNDY3LCAyLjczOTY4IiwgXAotICAgICAgICAgICIwLjM1MzA1MiwgMC4zNzg0MDcsIDAuNjA2MTc5LCAwLjk4NTExOCwgMS4zNjM5OCwgMi4yNDc3OCwgMi43NTI3OSIsIFwKLSAgICAgICAgICAiMC4zNjU1NDUsIDAuMzkwOSwgMC42MTg2NzIsIDAuOTk3NjEzLCAxLjM3NjQ4LCAyLjI2MDI4LCAyLjc2NTI5IiwgXAotICAgICAgICAgICIwLjM3Nzg5MSwgMC40MDMyNjMsIDAuNjMxMDMyLCAxLjAwOTk3LCAxLjM4ODksIDIuMjcyNjMsIDIuNzc3NjQiLCBcCi0gICAgICAgICAgIjAuMzk3MTE5LCAwLjQyMjQ5NSwgMC42NTAyNSwgMS4wMjkyLCAxLjQwODA2LCAyLjI5MTg3LCAyLjc5Njg3IiwgXAotICAgICAgICAgICIwLjQxMzQ2LCAwLjQzODgzNSwgMC42NjY2MDUsIDEuMDQ1NTQsIDEuNDI0NDQsIDIuMzA4MTksIDIuODEzMjIiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjc1ODkyLCAwLjMyNjQwNiwgMC43ODU2OTQsIDEuNTUyMjksIDIuMzIwNjYsIDQuMTEzNjEsIDUuMTM4MyIsIFwKLSAgICAgICAgICAiMC4yNzU4ODEsIDAuMzI2Mzk2LCAwLjc4NTY5MSwgMS41NTIyNywgMi4zMjA1NSwgNC4xMTM2NiwgNS4xMzgzNSIsIFwKLSAgICAgICAgICAiMC4yNzU4NzgsIDAuMzI2MzkxLCAwLjc4NTY5MiwgMS41NTIyOCwgMi4zMjA2MSwgNC4xMTM1OSwgNS4xMzgzMSIsIFwKLSAgICAgICAgICAiMC4yNzU4NzgsIDAuMzI2MzksIDAuNzg1NzAyLCAxLjU1MjI2LCAyLjMyMDY1LCA0LjExMzU5LCA1LjEzODMiLCBcCi0gICAgICAgICAgIjAuMjc1NjU0LCAwLjMyNjM4MywgMC43ODU2OTcsIDEuNTUyMzUsIDIuMzI0NDUsIDQuMTEzMzcsIDUuMTM4MTQiLCBcCi0gICAgICAgICAgIjAuMjc1ODg3LCAwLjMyNjMzNSwgMC43ODU2OTUsIDEuNTUyMjYsIDIuMzIwNiwgNC4xMTQwNSwgNS4xMzgzMyIsIFwKLSAgICAgICAgICAiMC4yNzU0MywgMC4zMjYzODIsIDAuNzgzNTUzLCAxLjU1MjI2LCAyLjMyNDQ5LCA0LjExMjg4LCA1LjEzODE3Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjM1MjE2NiwgMC4zODE5NjQsIDAuNjQ5NjY0LCAxLjA5NTM3LCAxLjU0MDk2LCAyLjU4MDU0LCAzLjE3NDU5IiwgXAotICAgICAgICAgICIwLjM2MzU0OSwgMC4zOTMzNjIsIDAuNjYxMDQ5LCAxLjEwNjc1LCAxLjU1MjM3LCAyLjU5MTkzLCAzLjE4NjAzIiwgXAotICAgICAgICAgICIwLjM3NzIyNiwgMC40MDcwMzQsIDAuNjc0NzIxLCAxLjEyMDQsIDEuNTY2MDQsIDIuNjA1NjEsIDMuMTk5NTkiLCBcCi0gICAgICAgICAgIjAuMzkwNzYxLCAwLjQyMDU2OSwgMC42ODgyNTYsIDEuMTMzOTUsIDEuNTc5NTgsIDIuNjE5MTQsIDMuMjEzMyIsIFwKLSAgICAgICAgICAiMC40MDQ1NTYsIDAuNDM0MzUyLCAwLjcwMjA0NywgMS4xNDc3NCwgMS41OTM0LCAyLjYzMjksIDMuMjI2OTQiLCBcCi0gICAgICAgICAgIjAuNDI1OTk3LCAwLjQ1NTgwNSwgMC43MjM1LCAxLjE2OTIsIDEuNjE0NzksIDIuNjU0MzYsIDMuMjQ4MzgiLCBcCi0gICAgICAgICAgIjAuNDQ0Njc3LCAwLjQ3NDQ5MywgMC43NDIxOCwgMS4xODc4OCwgMS42MzM0OSwgMi42NzMwNCwgMy4yNjcxMyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMTQ4MTksIDAuMzczMTg0LCAwLjkwMTI3LCAxLjc4NDksIDIuNjY3MjIsIDQuNzIzNzEsIDUuODkyNDEiLCBcCi0gICAgICAgICAgIjAuMzE0Nzk4LCAwLjM3MzA5MiwgMC45MDExOCwgMS43ODQ3NiwgMi42NjMwMiwgNC43MjMwNSwgNS44OTM1NiIsIFwKLSAgICAgICAgICAiMC4zMTQ3NzgsIDAuMzczMTA1LCAwLjkwMTE5MywgMS43ODUwOSwgMi42NjM1NCwgNC43MjMwNCwgNS44OTMxNCIsIFwKLSAgICAgICAgICAiMC4zMTQ3ODgsIDAuMzczMSwgMC45MDExNywgMS43ODQ4NCwgMi42NjI0NywgNC43MjMsIDUuODkxNTIiLCBcCi0gICAgICAgICAgIjAuMzE0NzU3LCAwLjM3MzExMSwgMC45MDExMTYsIDEuNzg0NTQsIDIuNjY3OTMsIDQuNzIzNTYsIDUuODkyNDEiLCBcCi0gICAgICAgICAgIjAuMzE0NzgyLCAwLjM3MzA2NCwgMC45MDEwNjcsIDEuNzg0NzYsIDIuNjY4NjIsIDQuNzIzODUsIDUuODkyNjkiLCBcCi0gICAgICAgICAgIjAuMzE0NzM4LCAwLjM3Mjk5OCwgMC45MDEwNzcsIDEuNzg0NzYsIDIuNjY1NTMsIDQuNzIzNjMsIDUuODkzMTYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzMwOTUsIDAuMzU2MzA1LCAwLjU4NDA3NiwgMC45NjMwMDksIDEuMzQxOTgsIDIuMjI1NjcsIDIuNzMwNjgiLCBcCi0gICAgICAgICAgIjAuMzQyMzMzLCAwLjM2NzY4NywgMC41OTU0NTksIDAuOTc0Mzk1LCAxLjM1MzM5LCAyLjIzNzA1LCAyLjc0MjA3IiwgXAotICAgICAgICAgICIwLjM1NTI0LCAwLjM4MDU5NiwgMC42MDgzNjksIDAuOTg3MzEyLCAxLjM2NjE1LCAyLjI0OTk4LCAyLjc1NDk5IiwgXAotICAgICAgICAgICIwLjM2NzU5MiwgMC4zOTI5NzUsIDAuNjIwNzI0LCAwLjk5OTc5NCwgMS4zNzg1NSwgMi4yNjIzNiwgMi43Njc2OCIsIFwKLSAgICAgICAgICAiMC4zNzk4ODMsIDAuNDA1MjQsIDAuNjMzMDE1LCAxLjAxMTk2LCAxLjM5MDg0LCAyLjI3NDYzLCAyLjc3OTY0IiwgXAotICAgICAgICAgICIwLjM5OTA0MiwgMC40MjQ0MTYsIDAuNjUyMTg3LCAxLjAzMTEyLCAxLjQxMDA1LCAyLjI5Mzc5LCAyLjc5ODc5IiwgXAotICAgICAgICAgICIwLjQxNTMyMywgMC40NDA2NzcsIDAuNjY4NDUyLCAxLjA0NzM5LCAxLjQyNjM5LCAyLjMxMDA0LCAyLjgxNTA2Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI3NTg5LCAwLjMyNjQwNSwgMC43ODU2OTMsIDEuNTUyMzYsIDIuMzI0MjgsIDQuMTEzMzksIDUuMTM4MTYiLCBcCi0gICAgICAgICAgIjAuMjc1ODU2LCAwLjMyNjM5MywgMC43ODU3MTYsIDEuNTUyMzIsIDIuMzI0MywgNC4xMTMwMywgNS4xMzc3OSIsIFwKLSAgICAgICAgICAiMC4yNzU4ODksIDAuMzI2NDAxLCAwLjc4NTY5MiwgMS41NTIyNCwgMi4zMjM2NCwgNC4xMTM2OSwgNS4xMzgzNiIsIFwKLSAgICAgICAgICAiMC4yNzU5MSwgMC4zMjYzMjMsIDAuNzg1NjgxLCAxLjU1MTUzLCAyLjMyMDc2LCA0LjExNDA5LCA1LjEzOTc1IiwgXAotICAgICAgICAgICIwLjI3NTg5MywgMC4zMjY0MDUsIDAuNzg1NjkzLCAxLjU1MjI0LCAyLjMyNDQzLCA0LjExMzgxLCA1LjEzODQzIiwgXAotICAgICAgICAgICIwLjI3NTYzOSwgMC4zMjYzODksIDAuNzg1NzEsIDEuNTUyMjMsIDIuMzI0NSwgNC4xMTM0MiwgNS4xMzgwMiIsIFwKLSAgICAgICAgICAiMC4yNzU4ODEsIDAuMzI2MzkzLCAwLjc4NTcsIDEuNTUyMzMsIDIuMzI0MjcsIDQuMTEyOTYsIDUuMTM4MTgiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzUyNzA5LCAwLjM4MjUyMSwgMC42NTAyMDcsIDEuMDk1OTIsIDEuNTQxNTUsIDIuNTgxMTIsIDMuMTc1MzEiLCBcCi0gICAgICAgICAgIjAuMzY0NDIxLCAwLjM5NDIyOSwgMC42NjE5MTYsIDEuMTA3NjIsIDEuNTUzMjQsIDIuNTkyODEsIDMuMTg2OCIsIFwKLSAgICAgICAgICAiMC4zNzgzNjgsIDAuNDA4MTc5LCAwLjY3NTg2NiwgMS4xMjE1NywgMS41NjcxOSwgMi42MDY3NiwgMy4yMDExMiIsIFwKLSAgICAgICAgICAiMC4zOTIwOTQsIDAuNDIxOTAyLCAwLjY4OTU4OCwgMS4xMzUzMSwgMS41ODA4OCwgMi42MjA3NSwgMy4yMTQ0NiIsIFwKLSAgICAgICAgICAiMC40MDU3ODYsIDAuNDM1NTk0LCAwLjcwMzI4MiwgMS4xNDg5OCwgMS41OTQ2MSwgMi42MzQxNywgMy4yMjgyNSIsIFwKLSAgICAgICAgICAiMC40Mjc2MTksIDAuNDU3NDE3LCAwLjcyNTA5MiwgMS4xNzA4MSwgMS42MTY1LCAyLjY1NTk2LCAzLjI0OTk5IiwgXAotICAgICAgICAgICIwLjQ0NjQ0NSwgMC40NzYyNDIsIDAuNzQzOTI4LCAxLjE4OTczLCAxLjYzNTIyLCAyLjY3NDg5LCAzLjI2ODgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzE0ODM3LCAwLjM3MzEzMywgMC45MDEzNCwgMS43ODI5NiwgMi42NjM0MSwgNC43MjIxOSwgNS44OTM2OSIsIFwKLSAgICAgICAgICAiMC4zMTQ3ODgsIDAuMzczMTEzLCAwLjkwMTIzNCwgMS43ODQ4MywgMi42NjI0NiwgNC43MjI3NiwgNS44OTI4IiwgXAotICAgICAgICAgICIwLjMxNDc4OCwgMC4zNzMwOTUsIDAuOTAxMTc4LCAxLjc4NDgzLCAyLjY2MjU0LCA0LjcyMjg4LCA1Ljg5MTczIiwgXAotICAgICAgICAgICIwLjMxNDI5OSwgMC4zNzMxMjEsIDAuOTAxMjYxLCAxLjc4NDM2LCAyLjY2ODQ4LCA0LjcyMjM2LCA1Ljg5Mjg5IiwgXAotICAgICAgICAgICIwLjMxNDc3OSwgMC4zNzMwOTIsIDAuOTAxMTUyLCAxLjc4NDgzLCAyLjY2MjYsIDQuNzIyOTQsIDUuODkyMDIiLCBcCi0gICAgICAgICAgIjAuMzE0NzU0LCAwLjM3MzEwNywgMC45MDE0MjgsIDEuNzg0MDYsIDIuNjY3MDMsIDQuNzIyODQsIDUuODkyNDMiLCBcCi0gICAgICAgICAgIjAuMzE0NzE1LCAwLjM3MzEwMiwgMC45MDEyMjYsIDEuNzgzNTgsIDIuNjY3NDksIDQuNzIwMTEsIDUuODkyODIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjc0NDc5LCAwLjI5OTg2MSwgMC41Mjc3MTYsIDAuOTA2NzQ1LCAxLjI4NTY1LCAyLjE2OTUzLCAyLjY3NDUyIiwgXAotICAgICAgICAgICIwLjI4NjA2LCAwLjMxMTQ1NiwgMC41MzkzMTgsIDAuOTE4MzIzLCAxLjI5NzI1LCAyLjE4MTA4LCAyLjY4NjExIiwgXAotICAgICAgICAgICIwLjMwMDY1NywgMC4zMjYwMzUsIDAuNTUzODk5LCAwLjkzMjkyOCwgMS4zMTE4MiwgMi4xOTU3LCAyLjcwMDcyIiwgXAotICAgICAgICAgICIwLjMxNDQ2MSwgMC4zMzk4NTUsIDAuNTY3NjgyLCAwLjk0Njc1NSwgMS4zMjU2NCwgMi4yMDk2MSwgMi43MTQ1IiwgXAotICAgICAgICAgICIwLjMyNjk0MiwgMC4zNTIzNDYsIDAuNTgwMTQ2LCAwLjk1OTIxOSwgMS4zMzgxMiwgMi4yMjE5NywgMi43MjcwMSIsIFwKLSAgICAgICAgICAiMC4zNDQ1OTIsIDAuMzY5OTg4LCAwLjU5NzgyMiwgMC45NzY4NjcsIDEuMzU1NzcsIDIuMjM5NjUsIDIuNzQ0NjMiLCBcCi0gICAgICAgICAgIjAuMzU4NTI1LCAwLjM4MzkzNiwgMC42MTE3NzEsIDAuOTkwNzk4LCAxLjM2OTczLCAyLjI1MzU4LCAyLjc1ODc1Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI3NjEsIDAuMzI2MTU0LCAwLjc4NTk2NywgMS41NTI1MSwgMi4zMjExNiwgNC4xMTM5OCwgNS4xNDA3NCIsIFwKLSAgICAgICAgICAiMC4yNzYwODgsIDAuMzI2NjEsIDAuNzgzODAyLCAxLjU1MjU2LCAyLjMyNDc1LCA0LjExMzc4LCA1LjEzODUiLCBcCi0gICAgICAgICAgIjAuMjc2MDk4LCAwLjMyNjYyLCAwLjc4NTk3LCAxLjU1MjQ5LCAyLjMyMDk1LCA0LjExNDMxLCA1LjEzODc4IiwgXAotICAgICAgICAgICIwLjI3NjExNSwgMC4zMjY1NDUsIDAuNzg0NTcyLCAxLjU1NTA2LCAyLjMyMSwgNC4xMjA3NiwgNS4xMzc2MiIsIFwKLSAgICAgICAgICAiMC4yNzYxMDMsIDAuMzI2NTYsIDAuNzg1NjgyLCAxLjU1MjY1LCAyLjMyNDUxLCA0LjExMzU2LCA1LjEzODM0IiwgXAotICAgICAgICAgICIwLjI3NjExNiwgMC4zMjY1NDQsIDAuNzg0MTA4LCAxLjU1MjU4LCAyLjMyMTEyLCA0LjEyMDMsIDUuMTM3MzYiLCBcCi0gICAgICAgICAgIjAuMjc2MDQ2LCAwLjMyNjQ1MiwgMC43ODU5MTgsIDEuNTU0ODYsIDIuMzE5MywgNC4xMTQsIDUuMTM2MiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yOTE5MTMsIDAuMzIxNzM0LCAwLjU4OTQ4MSwgMS4wMzUyMiwgMS40ODA4NSwgMi41MjA0OCwgMy4xMTQ0NiIsIFwKLSAgICAgICAgICAiMC4zMDM2NjIsIDAuMzMzNDgzLCAwLjYwMTIzMywgMS4wNDcwMiwgMS40OTI1OSwgMi41MzIxNSwgMy4xMjY1NCIsIFwKLSAgICAgICAgICAiMC4zMTg5MjIsIDAuMzQ4NzQ0LCAwLjYxNjQ5NCwgMS4wNjIyNiwgMS41MDc4NSwgMi41NDc0NiwgMy4xNDE1MiIsIFwKLSAgICAgICAgICAiMC4zMzM5NTUsIDAuMzYzNzc2LCAwLjYzMTUyOCwgMS4wNzcyOCwgMS41MjI4OSwgMi41NjI1LCAzLjE1NjQ3IiwgXAotICAgICAgICAgICIwLjM0ODE3MSwgMC4zNzc5OTQsIDAuNjQ1NzQ2LCAxLjA5MTUsIDEuNTM3MTEsIDIuNTc2NzEsIDMuMTcwNjkiLCBcCi0gICAgICAgICAgIjAuMzY4NzUsIDAuMzk4NTYsIDAuNjY2Mjk1LCAxLjExMjA1LCAxLjU1Nzc2LCAyLjU5NzI3LCAzLjE5MTMxIiwgXAotICAgICAgICAgICIwLjM4NTA4NCwgMC40MTQ5MDcsIDAuNjgyNjU3LCAxLjEyODM5LCAxLjU3NDAzLCAyLjYxMzYyLCAzLjIwODAyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMxNTA5NywgMC4zNzMzOTYsIDAuOTAxNDY3LCAxLjc4MjQ1LCAyLjY2NTgyLCA0LjcyMzAxLCA1Ljg5MzEiLCBcCi0gICAgICAgICAgIjAuMzE1MDY2LCAwLjM3MzM1MywgMC45MDEzMiwgMS43ODQxNiwgMi42Njg5MywgNC43MjMxNywgNS44OTM5MiIsIFwKLSAgICAgICAgICAiMC4zMTUwNTEsIDAuMzczMzQ4LCAwLjkwMTI1NywgMS43ODQzOSwgMi42NjksIDQuNzIzOTYsIDUuODkzNjMiLCBcCi0gICAgICAgICAgIjAuMzE1MDM5LCAwLjM3MzMzMywgMC45MDEyMDMsIDEuNzg0NTQsIDIuNjY4OTUsIDQuNzIzOTUsIDUuODkzNTQiLCBcCi0gICAgICAgICAgIjAuMzE0OTkxLCAwLjM3MzI1NywgMC45MDEyMTgsIDEuNzg0MzQsIDIuNjY5LCA0LjcyMzMzLCA1Ljg5MzE2IiwgXAotICAgICAgICAgICIwLjMxNDk3OCwgMC4zNzMzNCwgMC45MDE1MDMsIDEuNzgyNjQsIDIuNjY3NDksIDQuNzIzNDUsIDUuODkyODQiLCBcCi0gICAgICAgICAgIjAuMzE0OTY3LCAwLjM3MzIzMywgMC45MDExOCwgMS43ODM0NywgMi42NjgzNywgNC43MjMzNiwgNS44OTE1MiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzU0NzAyLCAwLjM4MDA1NywgMC42MDc4MjQsIDAuOTg2NzgyLCAxLjM2NTY5LCAyLjI0OTQ2LCAyLjc1NDQ3IiwgXAotICAgICAgICAgICIwLjM2Njg3OSwgMC4zOTIyNTQsIDAuNjE5OTk4LCAwLjk5ODk1OCwgMS4zNzc4MSwgMi4yNjE4MSwgMi43NjY2NCIsIFwKLSAgICAgICAgICAiMC4zODIyMjksIDAuNDA3NjAzLCAwLjYzNTM3LCAxLjAxNDMsIDEuMzkzMTYsIDIuMjc3MDIsIDIuNzgxOTgiLCBcCi0gICAgICAgICAgIjAuMzk3MTg0LCAwLjQyMjUzOSwgMC42NTAzMTEsIDEuMDI5MjUsIDEuNDA4MTQsIDIuMjkxOTEsIDIuNzk2OTIiLCBcCi0gICAgICAgICAgIjAuNDExNzMzLCAwLjQzNzA5LCAwLjY2NDg2MiwgMS4wNDM4MSwgMS40MjI2NCwgMi4zMDY0NywgMi44MTE0OCIsIFwKLSAgICAgICAgICAiMC40MzMxMjgsIDAuNDU4NDg0LCAwLjY4NjI1NywgMS4wNjUyLCAxLjQ0NDAzLCAyLjMyNzg2LCAyLjgzMjg4IiwgXAotICAgICAgICAgICIwLjQ1MDEyNiwgMC40NzU0ODksIDAuNzAzMjU3LCAxLjA4MjIxLCAxLjQ2MTA3LCAyLjM0NDg5LCAyLjg0OTg2Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI3NTkwNiwgMC4zMjY0MTcsIDAuNzg1NzYxLCAxLjU1MjMzLCAyLjMyNDYyLCA0LjExNDIyLCA1LjEzNzgiLCBcCi0gICAgICAgICAgIjAuMjc1OTExLCAwLjMyNjM0NSwgMC43ODM4NzMsIDEuNTUyMjgsIDIuMzIwNzEsIDQuMTIwNDYsIDUuMTM3OTgiLCBcCi0gICAgICAgICAgIjAuMjc1ODksIDAuMzI2MzQxLCAwLjc4NTcyNywgMS41NTIyMSwgMi4zMjA3MiwgNC4xMjAxMiwgNS4xMzc3OCIsIFwKLSAgICAgICAgICAiMC4yNzU4ODEsIDAuMzI2Mzk2LCAwLjc4NTcwMiwgMS41NTIyOSwgMi4zMTk0LCA0LjExMzUyLCA1LjEzODI0IiwgXAotICAgICAgICAgICIwLjI3NTg4OSwgMC4zMjY0MDIsIDAuNzg1Njk1LCAxLjU1MjI2LCAyLjMyMzc4LCA0LjExMzcsIDUuMTM4MzkiLCBcCi0gICAgICAgICAgIjAuMjc1ODg5LCAwLjMyNjM5OSwgMC43ODU2OTMsIDEuNTUyMjYsIDIuMzIzNzgsIDQuMTEzNjgsIDUuMTM4MzciLCBcCi0gICAgICAgICAgIjAuMjc1ODk3LCAwLjMyNjI3NCwgMC43ODU3LCAxLjU1MjI3LCAyLjMyMDY0LCA0LjExMzk5LCA1LjE0MDQxIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjM3Mjc2OCwgMC40MDI1NjcsIDAuNjcwMjcsIDEuMTE1OTYsIDEuNTYxNTMsIDIuNjAxMTIsIDMuMTk1MTYiLCBcCi0gICAgICAgICAgIjAuMzg0ODA5LCAwLjQxNDYxNiwgMC42ODIzMTEsIDEuMTI4LCAxLjU3MzYzLCAyLjYxMzE3LCAzLjIwNzIiLCBcCi0gICAgICAgICAgIjAuMzk5NjE0LCAwLjQyOTQyLCAwLjY5NzExOCwgMS4xNDI4MSwgMS41ODg0MSwgMi42Mjc5NywgMy4yMjIiLCBcCi0gICAgICAgICAgIjAuNDEzODIzLCAwLjQ0MzYxNSwgMC43MTEzMjcsIDEuMTU3MDIsIDEuNjAyNjEsIDIuNjQyMTksIDMuMjM2MjEiLCBcCi0gICAgICAgICAgIjAuNDI2NjYxLCAwLjQ1NjQ1NCwgMC43MjQxNjQsIDEuMTY5ODYsIDEuNjE1NDksIDIuNjU1MDMsIDMuMjQ5MDUiLCBcCi0gICAgICAgICAgIjAuNDQ1MjI0LCAwLjQ3NTAyMywgMC43NDI2ODksIDEuMTg4NDEsIDEuNjM0MDgsIDIuNjczNTYsIDMuMjY3NiIsIFwKLSAgICAgICAgICAiMC40NTk2NjYsIDAuNDg5NDU2LCAwLjc1NzE4MiwgMS4yMDI4MywgMS42NDg0MywgMi42ODgsIDMuMjgyMDIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzE0NzYyLCAwLjM3MzA2NiwgMC45MDEwMTQsIDEuNzg0OCwgMi42Njg5OSwgNC43MjM3LCA1Ljg5MjU0IiwgXAotICAgICAgICAgICIwLjMxNDc3MywgMC4zNzMwNzEsIDAuOTAxMDI0LCAxLjc4NDc1LCAyLjY2OCwgNC43MjM3NCwgNS44OTI2NCIsIFwKLSAgICAgICAgICAiMC4zMTQ3NjEsIDAuMzczMDY4LCAwLjkwMTAxNywgMS43ODQ3NiwgMi42NjgzNiwgNC43MjM3MiwgNS44OTI1NSIsIFwKLSAgICAgICAgICAiMC4zMTQ3NjUsIDAuMzcyOTgxLCAwLjkwMTAzMiwgMS43ODQ2MiwgMi42NjU1NiwgNC43MjM4MSwgNS44OTI0MSIsIFwKLSAgICAgICAgICAiMC4zMTQ3NjQsIDAuMzcyNTg4LCAwLjkwMTAyNiwgMS43ODQ2NiwgMi42NjI4MiwgNC43MjM3OSwgNS44OTI1NyIsIFwKLSAgICAgICAgICAiMC4zMTQ3NTMsIDAuMzczMTA2LCAwLjkwMTUxOSwgMS43ODM3MSwgMi42Njc1NiwgNC43MjM0NiwgNS44OTI2IiwgXAotICAgICAgICAgICIwLjMxNDYwMywgMC4zNzMxMDMsIDAuOTAwOTUxLCAxLjc4MjI5LCAyLjY2NjQsIDQuNzIyNzIsIDUuODkyNzMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUzAiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMxNjAzMywgMC4zNDEzODgsIDAuNTY5MTU4LCAwLjk0ODA5MiwgMS4zMjcwOCwgMi4yMTA3NSwgMi43MTU3NyIsIFwKLSAgICAgICAgICAiMC4zMjYxNjgsIDAuMzUxNTQzLCAwLjU3OTMxMSwgMC45NTgyNDQsIDEuMzM3MTgsIDIuMjIwOTEsIDIuNzI1OTIiLCBcCi0gICAgICAgICAgIjAuMzM5MTU2LCAwLjM2NDU0NiwgMC41OTIyODgsIDAuOTcxMjM1LCAxLjM1MDEyLCAyLjIzMzkzLCAyLjczOTA2IiwgXAotICAgICAgICAgICIwLjM1MjIxMSwgMC4zNzc1NjUsIDAuNjA1MzM4LCAwLjk4NDI3NywgMS4zNjMxNSwgMi4yNDY5MywgMi43NTE5NiIsIFwKLSAgICAgICAgICAiMC4zNjUyNjEsIDAuMzkwNjM5LCAwLjYxODM3MSwgMC45OTczNDMsIDEuMzc2MjEsIDIuMjYwMDYsIDIuNzY1IiwgXAotICAgICAgICAgICIwLjM4NTc4NSwgMC40MTExNzMsIDAuNjM4OTE5LCAxLjAxNzg5LCAxLjM5Njc2LCAyLjI4MDU2LCAyLjc4NTU5IiwgXAotICAgICAgICAgICIwLjQwMjUwMiwgMC40Mjc4OCwgMC42NTU2MTMsIDEuMDM0NTksIDEuNDEzNDUsIDIuMjk3MjksIDIuODAyMjQiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjc1ODc1LCAwLjMyNjM5MSwgMC43ODU2OTMsIDEuNTUyMzQsIDIuMzI0MjYsIDQuMTEzNDYsIDUuMTM4MiIsIFwKLSAgICAgICAgICAiMC4yNzU2MzQsIDAuMzI2Mzg3LCAwLjc4NTY5LCAxLjU1MjM3LCAyLjMyNDM5LCA0LjExMzQsIDUuMTM4MTYiLCBcCi0gICAgICAgICAgIjAuMjc1OTAyLCAwLjMyNjMwNywgMC43ODU3MDQsIDEuNTUyMzQsIDIuMzIxMiwgNC4xMTM3OSwgNS4xNDAwNiIsIFwKLSAgICAgICAgICAiMC4yNzU4OCwgMC4zMjYzOTIsIDAuNzg1NzAxLCAxLjU1MjI4LCAyLjMyMDc5LCA0LjExMzExLCA1LjEzNzkxIiwgXAotICAgICAgICAgICIwLjI3NTkwNywgMC4zMjYzMjMsIDAuNzg0MzY2LCAxLjU1MjE2LCAyLjMyMDY3LCA0LjEyMDE0LCA1LjEzNzA0IiwgXAotICAgICAgICAgICIwLjI3NTg5NywgMC4zMjYzMDUsIDAuNzg1Njk4LCAxLjU1NDc0LCAyLjMyMTA2LCA0LjExMzc5LCA1LjEzNzI5IiwgXAotICAgICAgICAgICIwLjI3NTkwOCwgMC4zMjYzMjQsIDAuNzg0MzU0LCAxLjU1MjI4LCAyLjMyMDY2LCA0LjEyMDA1LCA1LjEzNjk5Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMzNzg3MSwgMC4zNjc2ODEsIDAuNjM1MzY3LCAxLjA4MTA4LCAxLjUyNjcyLCAyLjU2NjI4LCAzLjE2MDMiLCBcCi0gICAgICAgICAgIjAuMzQ4Mzc3LCAwLjM3ODE5LCAwLjY0NTg3NiwgMS4wOTE1OCwgMS41MzcyLCAyLjU3Njc3LCAzLjE3MDg1IiwgXAotICAgICAgICAgICIwLjM2MTY2MSwgMC4zOTE0NjQsIDAuNjU5MTY1LCAxLjEwNDg3LCAxLjU1MDQ4LCAyLjU5MDA0LCAzLjE4NDA2IiwgXAotICAgICAgICAgICIwLjM3NTA5OCwgMC40MDQ5MDIsIDAuNjcyNjAyLCAxLjExODMsIDEuNTYzOTEsIDIuNjAzNDgsIDMuMTk3NSIsIFwKLSAgICAgICAgICAiMC4zODg3MDQsIDAuNDE4NTEyLCAwLjY4NjIsIDEuMTMxOSwgMS41Nzc1MiwgMi42MTcwOCwgMy4yMTEyMiIsIFwKLSAgICAgICAgICAiMC40MTA4MjUsIDAuNDQwNjIxLCAwLjcwODMwNSwgMS4xNTQwMSwgMS41OTk2MywgMi42MzkxNiwgMy4yMzMyIiwgXAotICAgICAgICAgICIwLjQyOTg0MSwgMC40NTk2MzMsIDAuNzI3MzQ4LCAxLjE3MzA1LCAxLjYxODY0LCAyLjY1ODIxLCAzLjI1MjE3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMxNDg1LCAwLjM3MzE0MSwgMC45MDEzNjIsIDEuNzgwOSwgMi42NjcxOSwgNC43MjE5NiwgNS44OTI3IiwgXAotICAgICAgICAgICIwLjMxNDgyMSwgMC4zNzMxMTIsIDAuOTAxMjIzLCAxLjc4NDc4LCAyLjY2MjMzLCA0LjcyMjg2LCA1Ljg5MzU1IiwgXAotICAgICAgICAgICIwLjMxNDc4NywgMC4zNzI5NywgMC45MDExMSwgMS43ODQwNCwgMi42NjUyLCA0LjcyMzYxLCA1Ljg5MjU1IiwgXAotICAgICAgICAgICIwLjMxNDc4MywgMC4zNzI5NDIsIDAuOTAxMDcsIDEuNzg0NzYsIDIuNjY2MDYsIDQuNzIzNCwgNS44OTMxIiwgXAotICAgICAgICAgICIwLjMxNDc4NSwgMC4zNzMwOTksIDAuOTAxMTU2LCAxLjc4NDgyLCAyLjY2MjQxLCA0LjcyMzA2LCA1Ljg5Mjc4IiwgXAotICAgICAgICAgICIwLjMxNDc1NSwgMC4zNzMxMTEsIDAuODk5Nzg2LCAxLjc4MzE4LCAyLjY2ODI2LCA0LjcyMzQxLCA1Ljg5MjYyIiwgXAotICAgICAgICAgICIwLjMxNDc3MywgMC4zNzI5NDIsIDAuOTAxMDEsIDEuNzg0NjYsIDIuNjY4NTQsIDQuNzIzMjIsIDUuODkzMDMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUzEiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIzMjkzMywgMC4yNTgzMDQsIDAuNDg2MTcyLCAwLjg2NTE4MywgMS4yNDQwOSwgMi4xMjc5NSwgMi42MzI5OCIsIFwKLSAgICAgICAgICAiMC4yNDMyMzEsIDAuMjY4NjA0LCAwLjQ5NjQ3NCwgMC44NzU0NzYsIDEuMjU0NDYsIDIuMTM4MjQsIDIuNjQzMjYiLCBcCi0gICAgICAgICAgIjAuMjU2Njk3LCAwLjI4MjA5NiwgMC41MDk5NDUsIDAuODg5MDE0LCAxLjI2Nzg2LCAyLjE1MTczLCAyLjY1NjcxIiwgXAotICAgICAgICAgICIwLjI3MDE1NiwgMC4yOTU1NjIsIDAuNTIzMzg0LCAwLjkwMjQ3NywgMS4yODEzMywgMi4xNjUzMiwgMi42NzAyIiwgXAotICAgICAgICAgICIwLjI4Mzc0MSwgMC4zMDkxNSwgMC41MzY5OTIsIDAuOTE2MDU4LCAxLjI5NDk0LCAyLjE3ODg1LCAyLjY4Mzk0IiwgXAotICAgICAgICAgICIwLjMwNTc0NywgMC4zMzExNCwgMC41NTkwNTgsIDAuOTM4MDY1LCAxLjMxNjk2LCAyLjIwMDg0LCAyLjcwNTg1IiwgXAotICAgICAgICAgICIwLjMyNTA1NSwgMC4zNTA0NzIsIDAuNTc4MzgyLCAwLjk1NzUwNCwgMS4zMzYzLCAyLjIyMDE3LCAyLjcyNTM1Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI3NjAxNSwgMC4zMjY3MzUsIDAuNzg1OTM4LCAxLjU1MjcsIDIuMzI0NywgNC4xMTM5NSwgNS4xMzg1MyIsIFwKLSAgICAgICAgICAiMC4yNzYyNTEsIDAuMzI2Njk1LCAwLjc4NTg1OCwgMS41NTI2MSwgMi4zMjQzNSwgNC4xMTM1OCwgNS4xMzgxNCIsIFwKLSAgICAgICAgICAiMC4yNzYwNjcsIDAuMzI2NzA4LCAwLjc4NTg0MSwgMS41NTIyOSwgMi4zMjA5NywgNC4xMTM5OSwgNS4xNDAzNyIsIFwKLSAgICAgICAgICAiMC4yNzYzNCwgMC4zMjY3NDgsIDAuNzg0NTUsIDEuNTUyODEsIDIuMzIwOTIsIDQuMTIwNjcsIDUuMTQwNDYiLCBcCi0gICAgICAgICAgIjAuMjc2MzYxLCAwLjMyNjc0MiwgMC43ODQ1MzUsIDEuNTU0ODQsIDIuMzIwODgsIDQuMTIwMTYsIDUuMTM3MTgiLCBcCi0gICAgICAgICAgIjAuMjc2MjM4LCAwLjMyNjgwNCwgMC43ODM2MjYsIDEuNTU0NDksIDIuMzIwODYsIDQuMTE4NCwgNS4xMzcwMSIsIFwKLSAgICAgICAgICAiMC4yNzY1NDgsIDAuMzI2ODc4LCAwLjc4MzgwOCwgMS41NTQ0NSwgMi4zMjA4NiwgNC4xMTMwNSwgNS4xMzYyIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI0NDgwMiwgMC4yNzQ2LCAwLjU0MjI3NCwgMC45ODc5NzEsIDEuNDMzNTMsIDIuNDczNDQsIDMuMDY3MTEiLCBcCi0gICAgICAgICAgIjAuMjU1MDI1LCAwLjI4NDgxMywgMC41NTI1MTMsIDAuOTk4MTgsIDEuNDQzNzcsIDIuNDgzMzQsIDMuMDc3MzUiLCBcCi0gICAgICAgICAgIjAuMjY4MDYyLCAwLjI5Nzg3MiwgMC41NjU1NiwgMS4wMTEyNCwgMS40NTY4MiwgMi40OTY0OSwgMy4wOTAzNSIsIFwKLSAgICAgICAgICAiMC4yODExNzksIDAuMzEwOTk1LCAwLjU3ODcwMiwgMS4wMjQzOSwgMS40Njk5NywgMi41MDk1OSwgMy4xMDM1MSIsIFwKLSAgICAgICAgICAiMC4yOTQzNTgsIDAuMzI0MTgsIDAuNTkxOTA2LCAxLjAzNzYzLCAxLjQ4MzE5LCAyLjUyMjc3LCAzLjExNjg2IiwgXAotICAgICAgICAgICIwLjMxNTI0NywgMC4zNDUwNDgsIDAuNjEyODM5LCAxLjA1ODQ4LCAxLjUwNDA4LCAyLjU0Mzc5LCAzLjEzNzY4IiwgXAotICAgICAgICAgICIwLjMzMjYzOSwgMC4zNjI0NjUsIDAuNjMwMjI5LCAxLjA3NTk2LCAxLjUyMTUzLCAyLjU2MTExLCAzLjE1NTE0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMxNDMxNSwgMC4zNzMxMjIsIDAuOTAwODY2LCAxLjc4NDY5LCAyLjY2NDk1LCA0LjcyMTM5LCA1Ljg5MzEyIiwgXAotICAgICAgICAgICIwLjMxNDgyMiwgMC4zNzI5OTEsIDAuOTAwNjgzLCAxLjc4MjgsIDIuNjY1NCwgNC43MjM0NywgNS44OTI4IiwgXAotICAgICAgICAgICIwLjMxNDgwMSwgMC4zNzMxNDEsIDAuOTAwNzg3LCAxLjc4NDY3LCAyLjY2NDk3LCA0LjcyMjQ5LCA1Ljg5MzM1IiwgXAotICAgICAgICAgICIwLjMxNDg0MiwgMC4zNzMxNTIsIDAuOTAwNzM1LCAxLjc4MTk4LCAyLjY2NDk4LCA0LjcyMjYzLCA1Ljg5Mjk5IiwgXAotICAgICAgICAgICIwLjMxNDg2NiwgMC4zNzMxNjcsIDAuOTAwNjQ4LCAxLjc4MDM1LCAyLjY2NTA1LCA0LjcyMjgsIDUuODkzMTQiLCBcCi0gICAgICAgICAgIjAuMzE0NzExLCAwLjM3MzIyMSwgMC45MDAzMTYsIDEuNzg0OTQsIDIuNjYzODQsIDQuNzIwNjksIDUuODkyODMiLCBcCi0gICAgICAgICAgIjAuMzE1MDkxLCAwLjM3MzI4OSwgMC45MDA1MjEsIDEuNzg0NzEsIDIuNjY0NDMsIDQuNzIyNzUsIDUuODkzMDUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUzEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI2ODYzOSwgMC4yOTM5OTgsIDAuNTIxNzc4LCAwLjkwMDcyMiwgMS4yNzk1NiwgMi4xNjMzOSwgMi42Njg0IiwgXAotICAgICAgICAgICIwLjI4MDc1NCwgMC4zMDYxNDMsIDAuNTMzODQ1LCAwLjkxMjg1MiwgMS4yOTE3LCAyLjE3NTUsIDIuNjgwNTMiLCBcCi0gICAgICAgICAgIjAuMjk1NzAyLCAwLjMyMTA2MSwgMC41NDg4MzksIDAuOTI3Nzg1LCAxLjMwNjYyLCAyLjE5MDQ0LCAyLjY5NTQ2IiwgXAotICAgICAgICAgICIwLjMwOTk2LCAwLjMzNTMzMywgMC41NjMwNDQsIDAuOTQyMTUzLCAxLjMyMDksIDIuMjA0ODcsIDIuNzA5NyIsIFwKLSAgICAgICAgICAiMC4zMjM1MjQsIDAuMzQ4OTEzLCAwLjU3NjYyNCwgMC45NTU2MTMsIDEuMzM0NDcsIDIuMjE4NTIsIDIuNzIzMjkiLCBcCi0gICAgICAgICAgIjAuMzQyNzcyLCAwLjM2ODE1NSwgMC41OTU5MDIsIDAuOTc0OTE4LCAxLjM1MzczLCAyLjIzNzU0LCAyLjc0MjU1IiwgXAotICAgICAgICAgICIwLjM1Nzg0OSwgMC4zODMyMjcsIDAuNjEwOTg1LCAwLjk4OTkzNywgMS4zNjg4MSwgMi4yNTI2MiwgMi43NTc2NiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yNzU4NTMsIDAuMzI2Mzc0LCAwLjc4NTY2NCwgMS41NTIyNywgMi4zMjM0NSwgNC4xMTM1NSwgNS4xMzgyIiwgXAotICAgICAgICAgICIwLjI3NTg1NiwgMC4zMjYzMjIsIDAuNzg1Mzk4LCAxLjU1MjI4LCAyLjMyMDg4LCA0LjExOTQ4LCA1LjEzNzkyIiwgXAotICAgICAgICAgICIwLjI3NTg1MiwgMC4zMjU2NiwgMC43ODU2ODcsIDEuNTUyMjMsIDIuMzIzOSwgNC4xMTM1LCA1LjEzODMiLCBcCi0gICAgICAgICAgIjAuMjc1ODU2LCAwLjMyNjI4OSwgMC43ODQxNTMsIDEuNTU0NjIsIDIuMzIwNTksIDQuMTIwNDcsIDUuMTM3MTMiLCBcCi0gICAgICAgICAgIjAuMjc1ODMyLCAwLjMyNjMwOSwgMC43ODQxOTYsIDEuNTUyMTksIDIuMzIwODIsIDQuMTIwMDgsIDUuMTM3NzEiLCBcCi0gICAgICAgICAgIjAuMjc1ODUzLCAwLjMyNjIzOCwgMC43ODU2NSwgMS41NTQ3MywgMi4zMjA4NCwgNC4xMTQwOSwgNS4xNDAwMSIsIFwKLSAgICAgICAgICAiMC4yNzU4MTYsIDAuMzI2MjI3LCAwLjc4NTY1OCwgMS41NTIyOSwgMi4zMjA2NiwgNC4xMTQwNywgNS4xNDAyMyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yODc0NSwgMC4zMTcyNzgsIDAuNTg1MDM0LCAxLjAzMDc4LCAxLjQ3NjQyLCAyLjUxNjAyLCAzLjExMDM2IiwgXAotICAgICAgICAgICIwLjI5OTUyNSwgMC4zMjkzMzQsIDAuNTk3MDk2LCAxLjA0MjgzLCAxLjQ4ODQ2LCAyLjUyODA0LCAzLjEyMjEiLCBcCi0gICAgICAgICAgIjAuMzE1MTQ2LCAwLjM0NDk3LCAwLjYxMjcyNiwgMS4wNTg1NywgMS41MDQwOSwgMi41NDM2NywgMy4xMzc3OSIsIFwKLSAgICAgICAgICAiMC4zMjk4MTYsIDAuMzU5NjQyLCAwLjYyNzM5NiwgMS4wNzMxMywgMS41MTg3NywgMi41NTgzNywgMy4xNTI1NyIsIFwKLSAgICAgICAgICAiMC4zNDQ5MzgsIDAuMzc0NzQ2LCAwLjY0MjQ5MywgMS4wODgyMywgMS41MzM4OSwgMi41NzM0NSwgMy4xNjc0OSIsIFwKLSAgICAgICAgICAiMC4zNjcwMzcsIDAuMzk2ODQ2LCAwLjY2NDYwMSwgMS4xMTAzNCwgMS41NTU5OCwgMi41OTU1NSwgMy4xODk1OSIsIFwKLSAgICAgICAgICAiMC4zODQ4NDgsIDAuNDE0NjU4LCAwLjY4MjQzNSwgMS4xMjgxNywgMS41NzM3OSwgMi42MTMzOSwgMy4yMDc0MiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMTUwODcsIDAuMzczMzUsIDAuOTAxMzcxLCAxLjc4Mjg2LCAyLjY2MTUyLCA0LjcyMzUzLCA1Ljg5Mzk1IiwgXAotICAgICAgICAgICIwLjMxNTAyNiwgMC4zNzMzNjMsIDAuODk5NzUsIDEuNzgyNTQsIDIuNjY4NzUsIDQuNzIzMzcsIDUuODkyODIiLCBcCi0gICAgICAgICAgIjAuMzE1MDM0LCAwLjM3MzM0MywgMC45MDEyMjYsIDEuNzgzNzMsIDIuNjY4NSwgNC43MjI4MiwgNS44OTAyMyIsIFwKLSAgICAgICAgICAiMC4zMTUwNDQsIDAuMzczMzE5LCAwLjkwMTEzOCwgMS43ODQxNywgMi42Njg2MiwgNC43MjM5NywgNS44OTM0IiwgXAotICAgICAgICAgICIwLjMxNDk2OSwgMC4zNzMyNjgsIDAuOTAwMDE1LCAxLjc4MjUsIDIuNjY3OTQsIDQuNzIyNjQsIDUuODkyNjgiLCBcCi0gICAgICAgICAgIjAuMzE0OTcxLCAwLjM3MzMyOSwgMC45MDA4ODYsIDEuNzgyNSwgMi42NjgxMSwgNC43MjI1NywgNS44OTI2OSIsIFwKLSAgICAgICAgICAiMC4zMTQ5ODQsIDAuMzczMjkzLCAwLjkwMDg2OSwgMS43ODQ3NCwgMi42NjcxNywgNC43MjM3NSwgNS44OTI3NyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjg4NiwgMC4wMDI4ODYsIDAuMDAyODg5LCAwLjAwMjg5LCAwLjAwMjg5MSwgMC4wMDI4OTEsIDAuMDAyODkyIiwgXAotICAgICAgICAgICIwLjAwMjg4LCAwLjAwMjg4MSwgMC4wMDI4ODQsIDAuMDAyODg1LCAwLjAwMjg4NSwgMC4wMDI4ODUsIDAuMDAyODg2IiwgXAotICAgICAgICAgICIwLjAwMjg3NiwgMC4wMDI4NzcsIDAuMDAyODgsIDAuMDAyODgxLCAwLjAwMjg4MiwgMC4wMDI4ODIsIDAuMDAyODgyIiwgXAotICAgICAgICAgICIwLjAwMjg3MywgMC4wMDI4NzQsIDAuMDAyODc3LCAwLjAwMjg3OCwgMC4wMDI4NzksIDAuMDAyODc5LCAwLjAwMjg3OSIsIFwKLSAgICAgICAgICAiMC4wMDI4NzEsIDAuMDAyODcyLCAwLjAwMjg3NSwgMC4wMDI4NzYsIDAuMDAyODc2LCAwLjAwMjg3NywgMC4wMDI4NzciLCBcCi0gICAgICAgICAgIjAuMDAyODY4LCAwLjAwMjg2OSwgMC4wMDI4NzIsIDAuMDAyODczLCAwLjAwMjg3NCwgMC4wMDI4NzQsIDAuMDAyODc0IiwgXAotICAgICAgICAgICIwLjAwMjg2NiwgMC4wMDI4NjcsIDAuMDAyODcsIDAuMDAyODcxLCAwLjAwMjg3MiwgMC4wMDI4NzIsIDAuMDAyODcyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyNjEsIDAuMDAyNjExLCAwLjAwMjYxNSwgMC4wMDI2MTYsIDAuMDAyNjE2LCAwLjAwMjYxNywgMC4wMDI2MTciLCBcCi0gICAgICAgICAgIjAuMDAyNTk4LCAwLjAwMjU5OSwgMC4wMDI2MDMsIDAuMDAyNjA1LCAwLjAwMjYwNSwgMC4wMDI2MDYsIDAuMDAyNjA2IiwgXAotICAgICAgICAgICIwLjAwMjU5MSwgMC4wMDI1OTMsIDAuMDAyNTk2LCAwLjAwMjU5OCwgMC4wMDI1OTksIDAuMDAyNTk5LCAwLjAwMjU5OSIsIFwKLSAgICAgICAgICAiMC4wMDI1ODcsIDAuMDAyNTg4LCAwLjAwMjU5MiwgMC4wMDI1OTQsIDAuMDAyNTk0LCAwLjAwMjU5NSwgMC4wMDI1OTUiLCBcCi0gICAgICAgICAgIjAuMDAyNTg0LCAwLjAwMjU4NSwgMC4wMDI1ODksIDAuMDAyNTksIDAuMDAyNTkxLCAwLjAwMjU5MSwgMC4wMDI1OTEiLCBcCi0gICAgICAgICAgIjAuMDAyNTgsIDAuMDAyNTgxLCAwLjAwMjU4NSwgMC4wMDI1ODYsIDAuMDAyNTg3LCAwLjAwMjU4NywgMC4wMDI1ODciLCBcCi0gICAgICAgICAgIjAuMDAyNTc3LCAwLjAwMjU3OCwgMC4wMDI1ODIsIDAuMDAyNTg0LCAwLjAwMjU4NCwgMC4wMDI1ODUsIDAuMDAyNTg1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzMDU5LCAwLjAwMzA1OSwgMC4wMDMwNjIsIDAuMDAzMDY0LCAwLjAwMzA2NSwgMC4wMDMwNjQsIDAuMDAzMDY1IiwgXAotICAgICAgICAgICIwLjAwMzA1MiwgMC4wMDMwNTQsIDAuMDAzMDU3LCAwLjAwMzA1OCwgMC4wMDMwNTgsIDAuMDAzMDU4LCAwLjAwMzA1OSIsIFwKLSAgICAgICAgICAiMC4wMDMwNDksIDAuMDAzMDUsIDAuMDAzMDUzLCAwLjAwMzA1NCwgMC4wMDMwNTUsIDAuMDAzMDU1LCAwLjAwMzA1NSIsIFwKLSAgICAgICAgICAiMC4wMDMwNDYsIDAuMDAzMDQ3LCAwLjAwMzA1LCAwLjAwMzA1MiwgMC4wMDMwNTIsIDAuMDAzMDUyLCAwLjAwMzA1MiIsIFwKLSAgICAgICAgICAiMC4wMDMwNDQsIDAuMDAzMDQ1LCAwLjAwMzA0OCwgMC4wMDMwNDksIDAuMDAzMDUsIDAuMDAzMDUsIDAuMDAzMDUiLCBcCi0gICAgICAgICAgIjAuMDAzMDQxLCAwLjAwMzA0MiwgMC4wMDMwNDUsIDAuMDAzMDQ2LCAwLjAwMzA0NywgMC4wMDMwNDcsIDAuMDAzMDQ3IiwgXAotICAgICAgICAgICIwLjAwMzA0LCAwLjAwMzA0MSwgMC4wMDMwNDQsIDAuMDAzMDQ1LCAwLjAwMzA0NSwgMC4wMDMwNDYsIDAuMDAzMDQ2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyNDgxLCAwLjAwMjQ4MiwgMC4wMDI0ODYsIDAuMDAyNDg3LCAwLjAwMjQ4OCwgMC4wMDI0ODgsIDAuMDAyNDg4IiwgXAotICAgICAgICAgICIwLjAwMjQ3LCAwLjAwMjQ3MSwgMC4wMDI0NzUsIDAuMDAyNDc2LCAwLjAwMjQ3NywgMC4wMDI0NzcsIDAuMDAyNDc3IiwgXAotICAgICAgICAgICIwLjAwMjQ2MywgMC4wMDI0NjQsIDAuMDAyNDY4LCAwLjAwMjQ2OSwgMC4wMDI0NywgMC4wMDI0NywgMC4wMDI0NyIsIFwKLSAgICAgICAgICAiMC4wMDI0NTgsIDAuMDAyNDYsIDAuMDAyNDY0LCAwLjAwMjQ2NSwgMC4wMDI0NjYsIDAuMDAyNDY2LCAwLjAwMjQ2NiIsIFwKLSAgICAgICAgICAiMC4wMDI0NTUsIDAuMDAyNDU3LCAwLjAwMjQ2LCAwLjAwMjQ2MiwgMC4wMDI0NjIsIDAuMDAyNDYzLCAwLjAwMjQ2MyIsIFwKLSAgICAgICAgICAiMC4wMDI0NTEsIDAuMDAyNDUyLCAwLjAwMjQ1NiwgMC4wMDI0NTgsIDAuMDAyNDU4LCAwLjAwMjQ1OSwgMC4wMDI0NTkiLCBcCi0gICAgICAgICAgIjAuMDAyNDQ5LCAwLjAwMjQ1LCAwLjAwMjQ1NCwgMC4wMDI0NTYsIDAuMDAyNDU2LCAwLjAwMjQ1NywgMC4wMDI0NTciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDIyOTMsIDAuMDAyMjk0LCAwLjAwMjI5NywgMC4wMDIyOTgsIDAuMDAyMjk5LCAwLjAwMjI5OSwgMC4wMDIyOTkiLCBcCi0gICAgICAgICAgIjAuMDAyMjc5LCAwLjAwMjI4LCAwLjAwMjI4MywgMC4wMDIyODQsIDAuMDAyMjg1LCAwLjAwMjI4NSwgMC4wMDIyODUiLCBcCi0gICAgICAgICAgIjAuMDAyMjY5LCAwLjAwMjI3LCAwLjAwMjI3MywgMC4wMDIyNzQsIDAuMDAyMjc1LCAwLjAwMjI3NSwgMC4wMDIyNzUiLCBcCi0gICAgICAgICAgIjAuMDAyMjYzLCAwLjAwMjI2NCwgMC4wMDIyNjcsIDAuMDAyMjY4LCAwLjAwMjI2OCwgMC4wMDIyNjksIDAuMDAyMjY5IiwgXAotICAgICAgICAgICIwLjAwMjI1OSwgMC4wMDIyNiwgMC4wMDIyNjMsIDAuMDAyMjY1LCAwLjAwMjI2NSwgMC4wMDIyNjUsIDAuMDAyMjY2IiwgXAotICAgICAgICAgICIwLjAwMjI1NywgMC4wMDIyNTgsIDAuMDAyMjYxLCAwLjAwMjI2MiwgMC4wMDIyNjMsIDAuMDAyMjYzLCAwLjAwMjI2NCIsIFwKLSAgICAgICAgICAiMC4wMDIyNTYsIDAuMDAyMjU3LCAwLjAwMjI2LCAwLjAwMjI2MiwgMC4wMDIyNjIsIDAuMDAyMjYyLCAwLjAwMjI2MiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjMzNSwgMC4wMDIzMzYsIDAuMDAyMzQsIDAuMDAyMzQyLCAwLjAwMjM0MiwgMC4wMDIzNDMsIDAuMDAyMzQzIiwgXAotICAgICAgICAgICIwLjAwMjMxNiwgMC4wMDIzMTcsIDAuMDAyMzIxLCAwLjAwMjMyMywgMC4wMDIzMjMsIDAuMDAyMzI0LCAwLjAwMjMyNCIsIFwKLSAgICAgICAgICAiMC4wMDIzMDUsIDAuMDAyMzA2LCAwLjAwMjMxLCAwLjAwMjMxMSwgMC4wMDIzMTIsIDAuMDAyMzEyLCAwLjAwMjMxMiIsIFwKLSAgICAgICAgICAiMC4wMDIyOTksIDAuMDAyMzAxLCAwLjAwMjMwNSwgMC4wMDIzMDYsIDAuMDAyMzA3LCAwLjAwMjMwNywgMC4wMDIzMDciLCBcCi0gICAgICAgICAgIjAuMDAyMjk3LCAwLjAwMjI5OSwgMC4wMDIzMDIsIDAuMDAyMzA0LCAwLjAwMjMwNSwgMC4wMDIzMDUsIDAuMDAyMzA1IiwgXAotICAgICAgICAgICIwLjAwMjI5NiwgMC4wMDIyOTcsIDAuMDAyMzAxLCAwLjAwMjMwMywgMC4wMDIzMDMsIDAuMDAyMzA0LCAwLjAwMjMwNCIsIFwKLSAgICAgICAgICAiMC4wMDIyOTcsIDAuMDAyMjk4LCAwLjAwMjMwMiwgMC4wMDIzMDQsIDAuMDAyMzA0LCAwLjAwMjMwNSwgMC4wMDIzMDUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTMCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyODI5LCAwLjAwMjgzLCAwLjAwMjgzMywgMC4wMDI4MzUsIDAuMDAyODM0LCAwLjAwMjgzNSwgMC4wMDI4MzUiLCBcCi0gICAgICAgICAgIjAuMDAyODIsIDAuMDAyODIxLCAwLjAwMjgyNSwgMC4wMDI4MjYsIDAuMDAyODI2LCAwLjAwMjgyNiwgMC4wMDI4MjYiLCBcCi0gICAgICAgICAgIjAuMDAyODEyLCAwLjAwMjgxMywgMC4wMDI4MTYsIDAuMDAyODE3LCAwLjAwMjgxOCwgMC4wMDI4MTgsIDAuMDAyODE4IiwgXAotICAgICAgICAgICIwLjAwMjgwNSwgMC4wMDI4MDYsIDAuMDAyODA5LCAwLjAwMjgxLCAwLjAwMjgxMSwgMC4wMDI4MTEsIDAuMDAyODExIiwgXAotICAgICAgICAgICIwLjAwMjgwMiwgMC4wMDI4MDMsIDAuMDAyODA2LCAwLjAwMjgwNywgMC4wMDI4MDgsIDAuMDAyODA4LCAwLjAwMjgwOCIsIFwKLSAgICAgICAgICAiMC4wMDI3OTksIDAuMDAyODAxLCAwLjAwMjgwNCwgMC4wMDI4MDQsIDAuMDAyODA1LCAwLjAwMjgwNiwgMC4wMDI4MDUiLCBcCi0gICAgICAgICAgIjAuMDAyNzk5LCAwLjAwMjgsIDAuMDAyODAzLCAwLjAwMjgwNCwgMC4wMDI4MDQsIDAuMDAyODA1LCAwLjAwMjgwNSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDEyNywgMC4wMDQxMjgsIDAuMDA0MTMyLCAwLjAwNDEzMywgMC4wMDQxMzQsIDAuMDA0MTM0LCAwLjAwNDEzNCIsIFwKLSAgICAgICAgICAiMC4wMDQxMjQsIDAuMDA0MTI2LCAwLjAwNDEzLCAwLjAwNDEzMSwgMC4wMDQxMzIsIDAuMDA0MTMyLCAwLjAwNDEzMiIsIFwKLSAgICAgICAgICAiMC4wMDQxMiwgMC4wMDQxMjEsIDAuMDA0MTI1LCAwLjAwNDEyNiwgMC4wMDQxMjcsIDAuMDA0MTI3LCAwLjAwNDEyNyIsIFwKLSAgICAgICAgICAiMC4wMDQxMTUsIDAuMDA0MTE2LCAwLjAwNDEyLCAwLjAwNDEyMiwgMC4wMDQxMjIsIDAuMDA0MTIyLCAwLjAwNDEyMiIsIFwKLSAgICAgICAgICAiMC4wMDQxMTIsIDAuMDA0MTEzLCAwLjAwNDExNywgMC4wMDQxMTgsIDAuMDA0MTE5LCAwLjAwNDExOSwgMC4wMDQxMTkiLCBcCi0gICAgICAgICAgIjAuMDA0MTA4LCAwLjAwNDEwOSwgMC4wMDQxMTMsIDAuMDA0MTE0LCAwLjAwNDExNSwgMC4wMDQxMTUsIDAuMDA0MTE1IiwgXAotICAgICAgICAgICIwLjAwNDEwNSwgMC4wMDQxMDYsIDAuMDA0MTEsIDAuMDA0MTExLCAwLjAwNDExMiwgMC4wMDQxMTIsIDAuMDA0MTEyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUzEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjc1MiwgMC4wMDI3NTMsIDAuMDAyNzU2LCAwLjAwMjc1OCwgMC4wMDI3NTgsIDAuMDAyNzYsIDAuMDAyNzU5IiwgXAotICAgICAgICAgICIwLjAwMjc1MSwgMC4wMDI3NTIsIDAuMDAyNzU1LCAwLjAwMjc1NywgMC4wMDI3NTgsIDAuMDAyNzU5LCAwLjAwMjc1OSIsIFwKLSAgICAgICAgICAiMC4wMDI3NDcsIDAuMDAyNzQ4LCAwLjAwMjc1MSwgMC4wMDI3NTIsIDAuMDAyNzUzLCAwLjAwMjc1MywgMC4wMDI3NTQiLCBcCi0gICAgICAgICAgIjAuMDAyNzQzLCAwLjAwMjc0NCwgMC4wMDI3NDcsIDAuMDAyNzQ4LCAwLjAwMjc0OSwgMC4wMDI3NDksIDAuMDAyNzQ5IiwgXAotICAgICAgICAgICIwLjAwMjczOSwgMC4wMDI3NDEsIDAuMDAyNzQ0LCAwLjAwMjc0NSwgMC4wMDI3NDYsIDAuMDAyNzQ2LCAwLjAwMjc0NiIsIFwKLSAgICAgICAgICAiMC4wMDI3MzUsIDAuMDAyNzM2LCAwLjAwMjczOSwgMC4wMDI3NDEsIDAuMDAyNzQxLCAwLjAwMjc0MSwgMC4wMDI3NDEiLCBcCi0gICAgICAgICAgIjAuMDAyNzMzLCAwLjAwMjczMywgMC4wMDI3MzYsIDAuMDAyNzM4LCAwLjAwMjczOCwgMC4wMDI3MzksIDAuMDAyNzM5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyMDYsIDAuMDAyMDYxLCAwLjAwMjA2NSwgMC4wMDIwNjcsIDAuMDAyMDY4LCAwLjAwMjA2OCwgMC4wMDIwNjgiLCBcCi0gICAgICAgICAgIjAuMDAyMDUxLCAwLjAwMjA1MywgMC4wMDIwNTcsIDAuMDAyMDU5LCAwLjAwMjA1OSwgMC4wMDIwNiwgMC4wMDIwNiIsIFwKLSAgICAgICAgICAiMC4wMDIwNDQsIDAuMDAyMDQ1LCAwLjAwMjA0OSwgMC4wMDIwNTEsIDAuMDAyMDUyLCAwLjAwMjA1MiwgMC4wMDIwNTIiLCBcCi0gICAgICAgICAgIjAuMDAyMDM3LCAwLjAwMjAzOSwgMC4wMDIwNDMsIDAuMDAyMDQ0LCAwLjAwMjA0NSwgMC4wMDIwNDUsIDAuMDAyMDQ2IiwgXAotICAgICAgICAgICIwLjAwMjAzMywgMC4wMDIwMzQsIDAuMDAyMDM4LCAwLjAwMjA0LCAwLjAwMjA0LCAwLjAwMjA0MSwgMC4wMDIwNDEiLCBcCi0gICAgICAgICAgIjAuMDAyMDMsIDAuMDAyMDMxLCAwLjAwMjAzNSwgMC4wMDIwMzcsIDAuMDAyMDM3LCAwLjAwMjAzOCwgMC4wMDIwMzgiLCBcCi0gICAgICAgICAgIjAuMDAyMDI4LCAwLjAwMjAzLCAwLjAwMjAzNCwgMC4wMDIwMzYsIDAuMDAyMDM2LCAwLjAwMjAzNywgMC4wMDIwMzciKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IE1YSTRYNCAqCi0gKiAtLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKE1YSTRYNCkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjMzODY5MzsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNTkyMDExOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDU5MDA0OTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA1OTIwMTE7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwODg2LCAwLjAwMDg3NiwgMC4wMDA4NywgMC4wMDA4NjUsIDAuMDAwODYyLCAwLjAwMDg1OSwgMC4wMDA4NTciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDIxMDgsIDAuMDAyMTAzLCAwLjAwMjA5OSwgMC4wMDIwOTcsIDAuMDAyMDk2LCAwLjAwMjA5NCwgMC4wMDIwOTMiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYwMDM4OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDU5ODczMzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2MDAzODsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxNTksIDAuMDAwMTYxLCAwLjAwMDE2MSwgMC4wMDAxNjIsIDAuMDAwMTYyLCAwLjAwMDE2MiwgMC4wMDAxNjIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxNjcsIDAuMDAwMTY2LCAwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiwgMC4wMDAxNjYiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEMpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYzMTU2OTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2Mjk4NDQ7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjMxNTY5OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDc4MSwgMC4wMDA3NzEsIDAuMDAwNzY1LCAwLjAwMDc2LCAwLjAwMDc1NywgMC4wMDA3NTQsIDAuMDAwNzUyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxOTUzLCAwLjAwMTk0NywgMC4wMDE5NDQsIDAuMDAxOTQyLCAwLjAwMTk0MSwgMC4wMDE5MzksIDAuMDAxOTM4Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihEKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA1Nzg2ODI7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNTc2OTUxOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDU3ODY4MjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxNTgsIDAuMDAwMTYsIDAuMDAwMTYxLCAwLjAwMDE2MSwgMC4wMDAxNjEsIDAuMDAwMTYyLCAwLjAwMDE2MiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDE2NywgMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUzApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMjA1MDk2OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMjA1MDc7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAyMDUwOTY7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzgsIDAuMDAwMzY1LCAwLjAwMDM1NCwgMC4wMDAzNDgsIDAuMDAwMzQ2LCAwLjAwMDM0NSwgMC4wMDAzNDUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDI0OSwgMC4wMDI0OCwgMC4wMDI0NzMsIDAuMDAyNDcsIDAuMDAyNDY4LCAwLjAwMjQ2NywgMC4wMDI0NjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFMxKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE2Nzk4OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTY3OTE0OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTY3OTg7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNTA5LCAwLjAwMDQ5NSwgMC4wMDA0ODUsIDAuMDAwNDc4LCAwLjAwMDQ3NiwgMC4wMDA0NzQsIDAuMDAwNDczIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyMzc0LCAwLjAwMjM2NCwgMC4wMDIzNTcsIDAuMDAyMzUzLCAwLjAwMjM1MSwgMC4wMDIzNDcsIDAuMDAyMzQ4Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuNTA3NTYyOwotICAgIGZ1bmN0aW9uIDogIighKChTMSAoKFMwIEQpICsgKCFTMCBDKSkpICsgKCFTMSAoKFMwIEIpICsgKCFTMCBBKSkpKSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjk1NDQyLCAwLjQzODg5OSwgMC41NjcyNzEsIDAuNjU4NDkzLCAwLjgwNDM5OCwgMC45MzIwNjgsIDEuMTE0MTUiLCBcCi0gICAgICAgICAgIjAuMzA2OTgsIDAuNDUwNDQ5LCAwLjU3ODgxOSwgMC42NzAwNDksIDAuODE1OTE1LCAwLjk0MzYwNiwgMS4xMjU2OSIsIFwKLSAgICAgICAgICAiMC4zMjAzMTQsIDAuNDYzNzcxLCAwLjU5MjE0OSwgMC42ODMzODIsIDAuODI5MzI0LCAwLjk1NjkzNCwgMS4xMzkwMiIsIFwKLSAgICAgICAgICAiMC4zMzI5MywgMC40NzY0MzYsIDAuNjA0Nzc4LCAwLjY5NjA1LCAwLjg0MTkwMywgMC45Njk1NzQsIDEuMTUxNjYiLCBcCi0gICAgICAgICAgIjAuMzQ1NDE3LCAwLjQ4ODg0LCAwLjYxNzIxNCwgMC43MDg0MzcsIDAuODU0Mzk3LCAwLjk4MjAxNCwgMS4xNjQwOSIsIFwKLSAgICAgICAgICAiMC4zNjUwNTYsIDAuNTA4NTE4LCAwLjYzNjg5MSwgMC43MjgxMTcsIDAuODczOTgsIDEuMDAxNjgsIDEuMTgzNzYiLCBcCi0gICAgICAgICAgIjAuMzgxOTY3LCAwLjUyNTM0OSwgMC42NTM3MDksIDAuNzQ0OTQ1LCAwLjg5MDgwNCwgMS4wMTg0MiwgMS4yMDA2MSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4NjA0MSwgMC4zMjk1OTQsIDAuNTg0MjI0LCAwLjc2NzE1OCwgMS4wNjIxMiwgMS4zMjEyNiwgMS42OTYzIiwgXAotICAgICAgICAgICIwLjA4NjA4NCwgMC4zMjk1ODcsIDAuNTgzMDE0LCAwLjc2ODA5MSwgMS4wNjQyNCwgMS4zMjEyNiwgMS42OTYyOCIsIFwKLSAgICAgICAgICAiMC4wODYwNjEsIDAuMzI5NTUxLCAwLjU4MzAwNywgMC43NjcxMDksIDEuMDY0NjksIDEuMzIxMjYsIDEuNjk2MjgiLCBcCi0gICAgICAgICAgIjAuMDg1OTY1LCAwLjMyOTU2LCAwLjU4MzAwMiwgMC43NjcyMjYsIDEuMDYyNzYsIDEuMzIxMjYsIDEuNjk2MjUiLCBcCi0gICAgICAgICAgIjAuMDg1OTgzLCAwLjMyOTU2MSwgMC41ODQyMDIsIDAuNzY3MDg5LCAxLjA2NDY5LCAxLjMyMTI0LCAxLjY5NjMiLCBcCi0gICAgICAgICAgIjAuMDg2MDY1LCAwLjMyOTU1MiwgMC41ODMwMSwgMC43NjgwNjIsIDEuMDY0MTMsIDEuMzIxMjYsIDEuNjk2MjciLCBcCi0gICAgICAgICAgIjAuMDg1Nzg2LCAwLjMyOTU5MywgMC41ODQwOTIsIDAuNzY3Mjc3LCAxLjA2NDIxLCAxLjMyMTQ0LCAxLjY5NjM4Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzAxODQxLCAwLjQ2MTYxNCwgMC42MDgxMzEsIDAuNzEyNDA4LCAwLjg3OTI1LCAxLjAyNTA1LCAxLjIzMzMxIiwgXAotICAgICAgICAgICIwLjMxMzU1OSwgMC40NzMyMywgMC42MTk3OCwgMC43MjQwNTcsIDAuODkwODkyLCAxLjAzNjcsIDEuMjQ1MTIiLCBcCi0gICAgICAgICAgIjAuMzI3MTk1LCAwLjQ4Njk4OSwgMC42MzM1MjEsIDAuNzM3Nzk4LCAwLjkwNDY0NSwgMS4wNTA0NSwgMS4yNTg3IiwgXAotICAgICAgICAgICIwLjM0MDc3LCAwLjUwMDYwOSwgMC42NDcxNDQsIDAuNzUxNDIsIDAuOTE4MjY5LCAxLjA2NDA3LCAxLjI3MjMzIiwgXAotICAgICAgICAgICIwLjM1NDQyNSwgMC41MTQyOTUsIDAuNjYwODAzLCAwLjc2NTA3NiwgMC45MzE5MjksIDEuMDc3NzMsIDEuMjg1OTkiLCBcCi0gICAgICAgICAgIjAuMzc2MjUzLCAwLjUzNTk3NiwgMC42ODI1MzUsIDAuNzg2ODQyLCAwLjk1MzU3NiwgMS4wOTk1MSwgMS4zMDc3OSIsIFwKLSAgICAgICAgICAiMC4zOTUzMTEsIDAuNTU1MTUyLCAwLjcwMTY4NiwgMC44MDU5NjEsIDAuOTcyODEyLCAxLjExODYxLCAxLjMyNjg3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg3NTg0LCAwLjM2Mjg0LCAwLjY0OTA0MywgMC44NTI2ODIsIDEuMTgzMywgMS40NzY1MiwgMS44OTIyMyIsIFwKLSAgICAgICAgICAiMC4wODc4MjMsIDAuMzYzMDkyLCAwLjY0ODk5OCwgMC44NTI3OTQsIDEuMTg2NDIsIDEuNDc1NDQsIDEuODg2OSIsIFwKLSAgICAgICAgICAiMC4wODc3OTksIDAuMzYzMjQzLCAwLjY0ODk3NiwgMC44NTI5OTIsIDEuMTgzMzUsIDEuNDc2MzMsIDEuODkxOTkiLCBcCi0gICAgICAgICAgIjAuMDg3NjcsIDAuMzYzMjU2LCAwLjY0ODk3MSwgMC44NTMwMTQsIDEuMTgzMzUsIDEuNDc2MzIsIDEuODkxOTIiLCBcCi0gICAgICAgICAgIjAuMDg3NzAzLCAwLjM2Mjg4LCAwLjY0Njg4NiwgMC44NTMzMTcsIDEuMTgyOTQsIDEuNDc2MTgsIDEuODkxODYiLCBcCi0gICAgICAgICAgIjAuMDg3NDE0LCAwLjM2MzA0NSwgMC42NDg5NzUsIDAuODU1NDAyLCAxLjE4MzY0LCAxLjQ3NjA3LCAxLjg5MDk4IiwgXAotICAgICAgICAgICIwLjA4NzY3NCwgMC4zNjMyNSwgMC42NDcxNjgsIDAuODUzMjE5LCAxLjE4MzExLCAxLjQ3NjI3LCAxLjg5MTg4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjk3MjI2LCAwLjQ0MDY5NiwgMC41NjkwNzQsIDAuNjYwMzA5LCAwLjgwNjI1MywgMC45MzM4NTksIDEuMTE1OTQiLCBcCi0gICAgICAgICAgIjAuMzA4NzQxLCAwLjQ1MjE5OCwgMC41ODA1NzYsIDAuNjcxODMsIDAuODE3NjY0LCAwLjk0NTM2OSwgMS4xMjc0NSIsIFwKLSAgICAgICAgICAiMC4zMjE4ODUsIDAuNDY1MzMyLCAwLjU5MzY5MiwgMC42ODQ5MjYsIDAuODMwNzk3LCAwLjk1ODM3NywgMS4xNDA1MiIsIFwKLSAgICAgICAgICAiMC4zMzQzMzEsIDAuNDc3Nzg0LCAwLjYwNjE2NCwgMC42OTc0MTUsIDAuODQzMjUzLCAwLjk3MDk2MywgMS4xNTMwNCIsIFwKLSAgICAgICAgICAiMC4zNDY2MTQsIDAuNDkwMDY4LCAwLjYxODQ0NiwgMC43MDk2OTMsIDAuODU1NTU3LCAwLjk4MzI0OCwgMS4xNjUzMyIsIFwKLSAgICAgICAgICAiMC4zNjYxMjEsIDAuNTA5NTQyLCAwLjYzNzksIDAuNzI5MTg4LCAwLjg3NTAzLCAxLjAwMjY5LCAxLjE4NDc4IiwgXAotICAgICAgICAgICIwLjM4Mjg5OCwgMC41MjYzNTcsIDAuNjU0NzMxLCAwLjc0NTk5MywgMC44OTE4NDcsIDEuMDE5NTMsIDEuMjAxNjEiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODYwODMsIDAuMzI5NTk3LCAwLjU4MzAxNiwgMC43NjcxOCwgMS4wNjQ3LCAxLjMyMTI2LCAxLjY5NjI5IiwgXAotICAgICAgICAgICIwLjA4NjA2LCAwLjMyOTYwMSwgMC41ODQyNjcsIDAuNzY4MzU0LCAxLjA2NDE2LCAxLjMyMTI3LCAxLjY5NjMiLCBcCi0gICAgICAgICAgIjAuMDg1OTU4LCAwLjMyOTYwOCwgMC41ODQxODEsIDAuNzY3MjI2LCAxLjA2NDI5LCAxLjMyNDM0LCAxLjY5NTgiLCBcCi0gICAgICAgICAgIjAuMDg2MDQ3LCAwLjMyOTU2MiwgMC41ODQyNTksIDAuNzY4MzU1LCAxLjA2NDE3LCAxLjMyMTI2LCAxLjY5NjMiLCBcCi0gICAgICAgICAgIjAuMDg2MDQzLCAwLjMyOTU2MywgMC41ODQyNDEsIDAuNzY4MjA1LCAxLjA2MjczLCAxLjMyMTI2LCAxLjY5NjMiLCBcCi0gICAgICAgICAgIjAuMDg1OTE5LCAwLjMyOTU2MywgMC41ODMwMjUsIDAuNzY4MzQxLCAxLjA2NDQ4LCAxLjMyMTI2LCAxLjY5NjI2IiwgXAotICAgICAgICAgICIwLjA4NjA0MiwgMC4zMjk1NjIsIDAuNTg0MjM5LCAwLjc2ODIyNSwgMS4wNjI3NywgMS4zMjEyNiwgMS42OTYzIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzAxNDMsIDAuNDYxMjI4LCAwLjYwNzc1MSwgMC43MTIwMzIsIDAuODc4ODY3LCAxLjAyNDY3LCAxLjIzMjkzIiwgXAotICAgICAgICAgICIwLjMxMzIxNiwgMC40NzMwMzUsIDAuNjE5NTQ5LCAwLjcyMzgyNiwgMC44OTA2NjksIDEuMDM2NTYsIDEuMjQ0NzkiLCBcCi0gICAgICAgICAgIjAuMzI3MjY0LCAwLjQ4NzA2OCwgMC42MzM1OSwgMC43Mzc4NjMsIDAuOTA0NzE1LCAxLjA1MDUxLCAxLjI1ODc3IiwgXAotICAgICAgICAgICIwLjM0MTAxMywgMC41MDA4MzUsIDAuNjQ3MzQyLCAwLjc1MTYxNSwgMC45MTg0NjksIDEuMDY0MjcsIDEuMjcyNTIiLCBcCi0gICAgICAgICAgIjAuMzU0ODk4LCAwLjUxNDYzNywgMC42NjEwOTgsIDAuNzY1NDExLCAwLjkzMjE2NCwgMS4wNzgwNywgMS4yODYzMyIsIFwKLSAgICAgICAgICAiMC4zNzY2NywgMC41MzY1NDQsIDAuNjgzMDYyLCAwLjc4NzMzMiwgMC45NTQxOTIsIDEuMDk5OTgsIDEuMzA4MjQiLCBcCi0gICAgICAgICAgIjAuMzk1NTMxLCAwLjU1NTQwMywgMC43MDE4OTcsIDAuODA2MTg4LCAwLjk3MzA0NiwgMS4xMTg4NCwgMS4zMjcxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg3ODA1LCAwLjM2MzI1MywgMC42NDkwNTgsIDAuODUyODQxLCAxLjE4NjU0LCAxLjQ3NjU4LCAxLjg5MjM0IiwgXAotICAgICAgICAgICIwLjA4NzgxOCwgMC4zNjMyNDcsIDAuNjQ4OTk5LCAwLjg1Mjg1NiwgMS4xODM1NSwgMS40NzYzNSwgMS44OTIwMSIsIFwKLSAgICAgICAgICAiMC4wODc4MDYsIDAuMzYyOTM3LCAwLjY0NzE1MiwgMC44NTMxMTMsIDEuMTgzMDMsIDEuNDc2MywgMS44OTE5NCIsIFwKLSAgICAgICAgICAiMC4wODc4MTIsIDAuMzYyODksIDAuNjQ2OTg0LCAwLjg1MzI3OCwgMS4xODI5NywgMS40NzYyNywgMS44OTE4OSIsIFwKLSAgICAgICAgICAiMC4wODc2NjYsIDAuMzYyODA2LCAwLjY0ODg2LCAwLjg1NDQzOCwgMS4xODQxMiwgMS40NzYxMywgMS44OTE2NSIsIFwKLSAgICAgICAgICAiMC4wODc3MjQsIDAuMzYyODU4LCAwLjY0NjczMSwgMC44NTM1ODQsIDEuMTgyNzEsIDEuNDc2MiwgMS44OTE4MSIsIFwKLSAgICAgICAgICAiMC4wODc3MTcsIDAuMzYyODYsIDAuNjQ2OTIsIDAuODUzNTcyLCAxLjE4MjczLCAxLjQ3NjE0LCAxLjg5MTc4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjg3NzYxLCAwLjQzMTE2OSwgMC41NTk1NjEsIDAuNjUwODMsIDAuNzk2NjcxLCAwLjkyNDM4LCAxLjEwNjQ3IiwgXAotICAgICAgICAgICIwLjI5OTQxMywgMC40NDI2OTIsIDAuNTcxMDQ3LCAwLjY2MjI5MSwgMC44MDgxNzMsIDAuOTM1NzcxLCAxLjExNzk5IiwgXAotICAgICAgICAgICIwLjMxMjM0LCAwLjQ1NTczMSwgMC41ODQxMjMsIDAuNjc1Mzg5LCAwLjgyMTIzLCAwLjk0ODk1LCAxLjEzMTA0IiwgXAotICAgICAgICAgICIwLjMyNDg4MywgMC40NjgyMjMsIDAuNTk2NTk3LCAwLjY4Nzg0LCAwLjgzMzcxNSwgMC45NjEzMjMsIDEuMTQzNTgiLCBcCi0gICAgICAgICAgIjAuMzM3MjA1LCAwLjQ4MDU0NSwgMC42MDg5MTYsIDAuNzAwMjIxLCAwLjg0NjA5NCwgMC45NzM3NjgsIDEuMTU1ODciLCBcCi0gICAgICAgICAgIjAuMzU2NzUyLCAwLjUwMDA1MywgMC42Mjg0MDksIDAuNzE5NjU2LCAwLjg2NTU4NiwgMC45OTMyMTgsIDEuMTc1MzkiLCBcCi0gICAgICAgICAgIjAuMzczNDU2LCAwLjUxNjc5NSwgMC42NDUxNDQsIDAuNzM2MzgzLCAwLjg4MjI2NCwgMS4wMDk5MiwgMS4xOTIwMiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4NTk2NiwgMC4zMjk1OTIsIDAuNTg0MzM4LCAwLjc2ODQxMSwgMS4wNjQzLCAxLjMyMTM0LCAxLjY5NjM4IiwgXAotICAgICAgICAgICIwLjA4NTc3NiwgMC4zMjk2MDIsIDAuNTg0MjIsIDAuNzY3MzM1LCAxLjA2MjgsIDEuMzIyMzEsIDEuNjk2NTMiLCBcCi0gICAgICAgICAgIjAuMDg1OTQ3LCAwLjMyOTU4OCwgMC41ODQzMTcsIDAuNzY4NDA2LCAxLjA2NDIyLCAxLjMyMTMzLCAxLjY5NjM4IiwgXAotICAgICAgICAgICIwLjA4NTcxNSwgMC4zMjk2MDMsIDAuNTg0MjE3LCAwLjc2NzMxMywgMS4wNjQzLCAxLjMyMjMzLCAxLjY5NjcxIiwgXAotICAgICAgICAgICIwLjA4NTkxNSwgMC4zMjk1MjIsIDAuNTgyOTQ4LCAwLjc2NzMxNSwgMS4wNjI3NiwgMS4zMjQ5LCAxLjY5NjI5IiwgXAotICAgICAgICAgICIwLjA4NTgyNywgMC4zMjk2MDgsIDAuNTg0MjI0LCAwLjc2ODI3MSwgMS4wNjQ2OSwgMS4zMjQ1NiwgMS42OTY3NCIsIFwKLSAgICAgICAgICAiMC4wODYwMTcsIDAuMzI5NTkyLCAwLjU4NDIwNiwgMC43NjczMiwgMS4wNjI3OSwgMS4zMjQ4MSwgMS42OTYyOSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI5NTE2MiwgMC40NTUyNjUsIDAuNjAxODQ0LCAwLjcwNjE0NSwgMC44NzI5ODksIDEuMDE4OCwgMS4yMjcxNyIsIFwKLSAgICAgICAgICAiMC4zMDY5NjMsIDAuNDY2OTA0LCAwLjYxMzQ4OSwgMC43MTc3ODQsIDAuODg0NjM4LCAxLjAzMDQ1LCAxLjIzODg4IiwgXAotICAgICAgICAgICIwLjMyMDY5OCwgMC40ODA2MzEsIDAuNjI3MjQ1LCAwLjczMTUyNSwgMC44OTgzOTQsIDEuMDQ0MTgsIDEuMjUyNTQiLCBcCi0gICAgICAgICAgIjAuMzM0MjU0LCAwLjQ5NDMzMiwgMC42NDA5MDIsIDAuNzQ1MTkzLCAwLjkxMjA2MywgMS4wNTc4NywgMS4yNjYxNSIsIFwKLSAgICAgICAgICAiMC4zNDgwNTcsIDAuNTA4MDAxLCAwLjY1NDU4NywgMC43NTg4NzgsIDAuOTI1NzM5LCAxLjA3MTU2LCAxLjI3OTk1IiwgXAotICAgICAgICAgICIwLjM2OTYwMSwgMC41Mjk2NzgsIDAuNjc2MjU4LCAwLjc4MDU0NywgMC45NDc0MTYsIDEuMDkzMjUsIDEuMzAxNTYiLCBcCi0gICAgICAgICAgIjAuMzg4NjA3LCAwLjU0ODY4MiwgMC42OTUyNjEsIDAuNzk5NTUxLCAwLjk2NjQyLCAxLjExMjIzLCAxLjMyMDU2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg4MjA1LCAwLjM2MzU2MywgMC42NDkzNzgsIDAuODUzNTQ4LCAxLjE4NjY0LCAxLjQ3NDUxLCAxLjg5MDUyIiwgXAotICAgICAgICAgICIwLjA4ODI5MywgMC4zNjM1MzcsIDAuNjQ5MzEsIDAuODUzMDQzLCAxLjE4NjQ4LCAxLjQ3NTkzLCAxLjg5MDU2IiwgXAotICAgICAgICAgICIwLjA4ODMwMSwgMC4zNjMyMzIsIDAuNjQ5MzE1LCAwLjg1NTM4MiwgMS4xODY0NywgMS40NzQxOCwgMS44OTA5IiwgXAotICAgICAgICAgICIwLjA4ODI2LCAwLjM2MzIxMSwgMC42NDkyODEsIDAuODUzMzYyLCAxLjE4MzM2LCAxLjQ3NjMxLCAxLjg5MTg2IiwgXAotICAgICAgICAgICIwLjA4ODI4MiwgMC4zNjM1MTQsIDAuNjQ5Mjc4LCAwLjg1Mjg1NCwgMS4xODM3NywgMS40NzM2NiwgMS44OTA2IiwgXAotICAgICAgICAgICIwLjA4ODI0MSwgMC4zNjM2ODMsIDAuNjQ5Mjg1LCAwLjg1MzM4MywgMS4xODM1OCwgMS40NzUwNywgMS44OTEiLCBcCi0gICAgICAgICAgIjAuMDg4MjQ0LCAwLjM2MzY4NiwgMC42NDkyNzEsIDAuODUzNDYsIDEuMTgzMzYsIDEuNDc2MjcsIDEuODkxMDIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yOTE2NDUsIDAuNDM0ODgxLCAwLjU2MzMxOCwgMC42NTQ1ODIsIDAuODAwNDU3LCAwLjkyODEyOCwgMS4xMTAyMyIsIFwKLSAgICAgICAgICAiMC4zMDMxNzcsIDAuNDQ2NDEzLCAwLjU3NDg0NCwgMC42NjYxMTYsIDAuODExOTkzLCAwLjkzOTY1OSwgMS4xMjE3NiIsIFwKLSAgICAgICAgICAiMC4zMTY0MTIsIDAuNDU5ODA3LCAwLjU4ODIwMywgMC42Nzk0NTgsIDAuODI1MzIxLCAwLjk1MzAyOCwgMS4xMzUxMiIsIFwKLSAgICAgICAgICAiMC4zMjkxMDUsIDAuNDcyNTA5LCAwLjYwMDg5OSwgMC42OTIxNDUsIDAuODM4MDYsIDAuOTY1NzE3LCAxLjE0NzgxIiwgXAotICAgICAgICAgICIwLjM0MTQ3OSwgMC40ODQ4MzksIDAuNjEzMjEsIDAuNzA0NTEsIDAuODUwMzgxLCAwLjk3ODA1NywgMS4xNjAxNiIsIFwKLSAgICAgICAgICAiMC4zNjEwNTUsIDAuNTA0NDM1LCAwLjYzMjgwOCwgMC43MjQwNzgsIDAuODY5OTM5LCAwLjk5NzYyLCAxLjE3OTcyIiwgXAotICAgICAgICAgICIwLjM3NzczLCAwLjUyMTEyNSwgMC42NDk1LCAwLjc0MDc0LCAwLjg4NjYzNiwgMS4wMTQzNSwgMS4xOTY0MyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4NjA1NywgMC4zMjk1NDgsIDAuNTgzNDc5LCAwLjc2NzI5NSwgMS4wNjI3OSwgMS4zMjQ4NiwgMS42OTYzNSIsIFwKLSAgICAgICAgICAiMC4wODYwNTMsIDAuMzI5NTQ5LCAwLjU4NDA4NCwgMC43NjczMTYsIDEuMDYyNzcsIDEuMzI0ODQsIDEuNjk2MzIiLCBcCi0gICAgICAgICAgIjAuMDg1OTU2LCAwLjMyOTU5NSwgMC41ODQzMDMsIDAuNzY4Mzc2LCAxLjA2MjkyLCAxLjMyMTM0LCAxLjY5NjM5IiwgXAotICAgICAgICAgICIwLjA4NTk4LCAwLjMyOTU2LCAwLjU4MzA1MywgMC43NjcyNTksIDEuMDY0NjQsIDEuMzIxMzMsIDEuNjk2MzYiLCBcCi0gICAgICAgICAgIjAuMDg1OTM1LCAwLjMyOTYzMiwgMC41ODMwMTQsIDAuNzY3MzE3LCAxLjA2Mjc4LCAxLjMyNDksIDEuNjk2MyIsIFwKLSAgICAgICAgICAiMC4wODU4MzMsIDAuMzI5NjExLCAwLjU4NDIyMywgMC43NjgzOSwgMS4wNjQ0LCAxLjMyNDU4LCAxLjY5NjM1IiwgXAotICAgICAgICAgICIwLjA4NTg0MiwgMC4zMjk1NzgsIDAuNTg0MjIzLCAwLjc2NzIyMiwgMS4wNjQ0OSwgMS4zMjEzOSwgMS42OTY0Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjk3NDkzLCAwLjQ1NzU2OSwgMC42MDQxNzQsIDAuNzA4NDkzLCAwLjg3NTI0NywgMS4wMjEyNSwgMS4yMjk1NyIsIFwKLSAgICAgICAgICAiMC4zMDkxNjYsIDAuNDY5MjUyLCAwLjYxNTgzLCAwLjcyMDEyMywgMC44ODY5ODUsIDEuMDMyODIsIDEuMjQxMTQiLCBcCi0gICAgICAgICAgIjAuMzIzMDMzLCAwLjQ4MzA3OSwgMC42Mjk3MDksIDAuNzM0MDE1LCAwLjkwMDc4MSwgMS4wNDY3LCAxLjI1NDk5IiwgXAotICAgICAgICAgICIwLjMzNjc4NCwgMC40OTY4NCwgMC42NDM0NjgsIDAuNzQ3NzYyLCAwLjkxNDU0NCwgMS4wNjA0MiwgMS4yNjg3MSIsIFwKLSAgICAgICAgICAiMC4zNTA2NDYsIDAuNTEwNjE1LCAwLjY1NzIxMSwgMC43NjE0ODgsIDAuOTI4MzYyLCAxLjA3NDE1LCAxLjI4MjUyIiwgXAotICAgICAgICAgICIwLjM3MjM2LCAwLjUzMjQzMSwgMC42NzkwNDUsIDAuNzgzMzM5LCAwLjk1MDEyMiwgMS4wOTU5OSwgMS4zMDQyOCIsIFwKLSAgICAgICAgICAiMC4zOTEzODUsIDAuNTUxNDUxLCAwLjY5ODAxNCwgMC44MDIzLCAwLjk2OTE3NywgMS4xMTQ5OCwgMS4zMjMyNiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4ODIwNCwgMC4zNjM3MzIsIDAuNjQ5Mzk5LCAwLjg1NTcyMSwgMS4xODM5OCwgMS40NzM3NCwgMS44ODc4IiwgXAotICAgICAgICAgICIwLjA4ODI2NSwgMC4zNjM2NzEsIDAuNjQ5MzE1LCAwLjg1MjkwNiwgMS4xODM3OSwgMS40NzQ5NiwgMS44OTA5OCIsIFwKLSAgICAgICAgICAiMC4wODgyMSwgMC4zNjMyNDIsIDAuNjQ5MzMzLCAwLjg1NTY5LCAxLjE4NDA4LCAxLjQ3NjI3LCAxLjg5MTU2IiwgXAotICAgICAgICAgICIwLjA4ODE4OSwgMC4zNjMyNDEsIDAuNjQ5MzIyLCAwLjg1NTU1MywgMS4xODQzNiwgMS40NzY1OCwgMS44OTIxMSIsIFwKLSAgICAgICAgICAiMC4wODgzMTYsIDAuMzYzNTU1LCAwLjY0OTI5MywgMC44NTUyODgsIDEuMTg2NDIsIDEuNDczNzUsIDEuODg2OTkiLCBcCi0gICAgICAgICAgIjAuMDg4MTY2LCAwLjM2MzI2LCAwLjY0OTMxMSwgMC44NTU1NDMsIDEuMTg0NDQsIDEuNDc2NjQsIDEuODkyMjEiLCBcCi0gICAgICAgICAgIjAuMDg4MDkyLCAwLjM2MzMxNywgMC42NDcyNiwgMC44NTM5MTYsIDEuMTgzLCAxLjQ3NjIsIDEuODkxNjEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUzAiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzM3OTUyLCAwLjQ4MTQzNSwgMC42MDk3NzUsIDAuNzAxMDE5LCAwLjg0Njg3MiwgMC45NzQ0NjgsIDEuMTU2NjIiLCBcCi0gICAgICAgICAgIjAuMzUwMDk2LCAwLjQ5MzU2MSwgMC42MjE4OSwgMC43MTMxMzgsIDAuODU5MDE1LCAwLjk4NjYwMiwgMS4xNjg3MSIsIFwKLSAgICAgICAgICAiMC4zNjU2NTcsIDAuNTA4OTc0LCAwLjYzNzM1NywgMC43Mjg2NDUsIDAuODc0NTEyLCAxLjAwMjE0LCAxLjE4NDI0IiwgXAotICAgICAgICAgICIwLjM4MTAxOCwgMC41MjQ0NjIsIDAuNjUyNzk3LCAwLjc0NDA0NSwgMC44ODk4OTMsIDEuMDE3NTgsIDEuMTk5NjciLCBcCi0gICAgICAgICAgIjAuMzk1NzkxLCAwLjUzOTE0OSwgMC42Njc0NjYsIDAuNzU4NzE3LCAwLjkwNDU4OCwgMS4wMzIxMywgMS4yMTQzNiIsIFwKLSAgICAgICAgICAiMC40MTk4NTUsIDAuNTYzMjYxLCAwLjY5MTU3NywgMC43ODI4MjYsIDAuOTI4Njk3LCAxLjA1NjI2LCAxLjIzODUzIiwgXAotICAgICAgICAgICIwLjQzOTU2MiwgMC41ODI4NzgsIDAuNzExMjk0LCAwLjgwMjU1LCAwLjk0ODQxNywgMS4wNzYwNCwgMS4yNTgxNCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4NjA4MywgMC4zMjk3MjgsIDAuNTg0NDM4LCAwLjc2NjgyMSwgMS4wNjQzLCAxLjMyNDkxLCAxLjY5NjQ5IiwgXAotICAgICAgICAgICIwLjA4NjE2MiwgMC4zMjk3NDEsIDAuNTg0MzA1LCAwLjc2NzQwNiwgMS4wNjQ1NiwgMS4zMjQ4OSwgMS42OTY0NyIsIFwKLSAgICAgICAgICAiMC4wODYxOTcsIDAuMzI5NzI5LCAwLjU4NDQxMSwgMC43NjczMjQsIDEuMDYyOTEsIDEuMzI0ODYsIDEuNjk2NzMiLCBcCi0gICAgICAgICAgIjAuMDg2MTQsIDAuMzI5NzI5LCAwLjU4NDM2NSwgMC43NjgzODQsIDEuMDY0NTEsIDEuMzI0ODYsIDEuNjk2NDYiLCBcCi0gICAgICAgICAgIjAuMDg2MTQ5LCAwLjMyOTc0MiwgMC41ODQyOCwgMC43NjczNzksIDEuMDY0NTcsIDEuMzI0ODcsIDEuNjk2MzMiLCBcCi0gICAgICAgICAgIjAuMDg2MTYyLCAwLjMyOTc0NiwgMC41ODQyOCwgMC43NjgzNDMsIDEuMDY0NjcsIDEuMzI0ODMsIDEuNjk2ODUiLCBcCi0gICAgICAgICAgIjAuMDg2MTk1LCAwLjMyOTYxNiwgMC41ODQ0NDgsIDAuNzY4MTE3LCAxLjA2NDQ2LCAxLjMyNDkxLCAxLjY5NjY0Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzM3NzU3LCAwLjQ5NzQyMiwgMC42NDM5NTcsIDAuNzQ4MjI5LCAwLjkxNTA3OSwgMS4wNjA4OCwgMS4yNjkxNCIsIFwKLSAgICAgICAgICAiMC4zNDk4OCwgMC41MDk1NTMsIDAuNjU2MDksIDAuNzYwMzY1LCAwLjkyNzIxMiwgMS4wNzMwNCwgMS4yODEzMyIsIFwKLSAgICAgICAgICAiMC4zNjQ2NzMsIDAuNTI0NDgsIDAuNjcxMDEzLCAwLjc3NTI4OSwgMC45NDIxMzgsIDEuMDg3OTQsIDEuMjk2MiIsIFwKLSAgICAgICAgICAiMC4zNzkzNTYsIDAuNTM5MDMsIDAuNjg1NTY4LCAwLjc4OTg0MiwgMC45NTY2OSwgMS4xMDI1MiwgMS4zMTA4MSIsIFwKLSAgICAgICAgICAiMC4zOTM2MzcsIDAuNTUzNDg2LCAwLjcwMDAwNiwgMC44MDQyNzcsIDAuOTcxMTMyLCAxLjExNjkzLCAxLjMyNTE5IiwgXAotICAgICAgICAgICIwLjQxNTM1NCwgMC41NzUxOSwgMC43MjE3MjQsIDAuODI1OTk1LCAwLjk5Mjg0NywgMS4xMzg2NCwgMS4zNDY5IiwgXAotICAgICAgICAgICIwLjQzMjkwMywgMC41OTI2MzQsIDAuNzM5MDgxLCAwLjg0MzQwNiwgMS4wMTAyLCAxLjE1NjA3LCAxLjM2NDMzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg4MzM3LCAwLjM2MzcwMSwgMC42NDk0MzgsIDAuODU1NTM1LCAxLjE4NjgsIDEuNDc3NDYsIDEuODkyNiIsIFwKLSAgICAgICAgICAiMC4wODgzMzYsIDAuMzYzNzAzLCAwLjY0OTQ0MywgMC44NTU1MjksIDEuMTg2OCwgMS40Nzc0OCwgMS44OTE4MyIsIFwKLSAgICAgICAgICAiMC4wODgyODYsIDAuMzYzNzYsIDAuNjQ5NDYxLCAwLjg1NTY4MywgMS4xODM5OCwgMS40NzYyOCwgMS44OTE4NyIsIFwKLSAgICAgICAgICAiMC4wODgyODgsIDAuMzYzNjgyLCAwLjY0OTQzOSwgMC44NTU0OTYsIDEuMTg2NzksIDEuNDc2MjcsIDEuODkxODYiLCBcCi0gICAgICAgICAgIjAuMDg4MzM0LCAwLjM2MzY4NywgMC42NDk0MzgsIDAuODU1NTE5LCAxLjE4Njc4LCAxLjQ3NzM3LCAxLjg5MTg3IiwgXAotICAgICAgICAgICIwLjA4ODMyOCwgMC4zNjM2ODQsIDAuNjQ5NDM0LCAwLjg1NTQ2MiwgMS4xODY3NywgMS40NzYyOSwgMS44OTE4OSIsIFwKLSAgICAgICAgICAiMC4wODgyOSwgMC4zNjM2MDQsIDAuNjQ5NDI1LCAwLjg1NTMyLCAxLjE4Njc2LCAxLjQ3NjI2LCAxLjg5MTg3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlMwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI4MTgxNSwgMC40MjUxNSwgMC41NTM1MjYsIDAuNjQ0NzkxLCAwLjc5MDY1NiwgMC45MTgzMTEsIDEuMTAwMzkiLCBcCi0gICAgICAgICAgIjAuMjkxOTMsIDAuNDM1MjQ2LCAwLjU2MzYzOCwgMC42NTQ5LCAwLjgwMDc3MiwgMC45Mjg0MDIsIDEuMTEwNDkiLCBcCi0gICAgICAgICAgIjAuMzA1MDY4LCAwLjQ0ODQ5NSwgMC41NzY4NzEsIDAuNjY4MTAxLCAwLjgxNDAyOCwgMC45NDE2MzUsIDEuMTIzNzMiLCBcCi0gICAgICAgICAgIjAuMzE4Mjg5LCAwLjQ2MTYxNSwgMC41OTAwMDUsIDAuNjgxMjc5LCAwLjgyNzE0OSwgMC45NTQ3ODMsIDEuMTM2ODciLCBcCi0gICAgICAgICAgIjAuMzMxMjcxLCAwLjQ3NDY4LCAwLjYwMzA2MSwgMC42OTQzNDQsIDAuODQwMjA4LCAwLjk2Nzg0NywgMS4xNDk5NCIsIFwKLSAgICAgICAgICAiMC4zNTI0MjMsIDAuNDk1NzQ4LCAwLjYyNDEyNywgMC43MTUzNzcsIDAuODYxMjI0LCAwLjk4ODkyNywgMS4xNzEwMSIsIFwKLSAgICAgICAgICAiMC4zNzA3MzUsIDAuNTE0MTQyLCAwLjY0MjQ2OSwgMC43MzM3MTgsIDAuODc5NTkzLCAxLjAwNzIsIDEuMTg5MjkiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODYwOTIsIDAuMzI5NzMxLCAwLjU4NDQxMSwgMC43Njg0MzQsIDEuMDY0MzUsIDEuMzI0ODMsIDEuNjk2MzgiLCBcCi0gICAgICAgICAgIjAuMDg2MTksIDAuMzI5NjY2LCAwLjU4NDIwOCwgMC43NjgyODksIDEuMDY0MTksIDEuMzI0OSwgMS42OTY0NiIsIFwKLSAgICAgICAgICAiMC4wODYxMTEsIDAuMzI5NjAxLCAwLjU4NDQ0MiwgMC43NjgxMDksIDEuMDY0NywgMS4zMjQ5LCAxLjY5NjQ3IiwgXAotICAgICAgICAgICIwLjA4NjE4NCwgMC4zMjk3MjQsIDAuNTg0MzE5LCAwLjc2ODM1NiwgMS4wNjQ1NiwgMS4zMjQ4NCwgMS42OTYzNSIsIFwKLSAgICAgICAgICAiMC4wODYwODQsIDAuMzI5NzIsIDAuNTg0Mzk4LCAwLjc2ODM4OCwgMS4wNjQ1NSwgMS4zMjQ4OCwgMS42OTY5NCIsIFwKLSAgICAgICAgICAiMC4wODYxODMsIDAuMzI5NjY1LCAwLjU4NDI3NywgMC43NjgzNjUsIDEuMDY0NSwgMS4zMjQ5NCwgMS42OTY1MSIsIFwKLSAgICAgICAgICAiMC4wODYxMjcsIDAuMzI5NzMxLCAwLjU4NDMxLCAwLjc2ODMyMiwgMS4wNjQ1OSwgMS4zMjQ5NSwgMS42OTY1MSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI4NTkxMywgMC40NDU3OTksIDAuNTkyMzE0LCAwLjY5NjYwMiwgMC44NjM0MjgsIDEuMDA5MjMsIDEuMjE3NDkiLCBcCi0gICAgICAgICAgIjAuMjk2Mzc4LCAwLjQ1NjIwNiwgMC42MDI3MTgsIDAuNzA3MDA2LCAwLjg3MzgzMywgMS4wMTk2NCwgMS4yMjc5IiwgXAotICAgICAgICAgICIwLjMwOTg4OCwgMC40Njk2MjgsIDAuNjE2MTAyLCAwLjcyMDQyNSwgMC44ODcyNjQsIDEuMDMzMDYsIDEuMjQxMzIiLCBcCi0gICAgICAgICAgIjAuMzIzNDQ4LCAwLjQ4MzE4OSwgMC42Mjk2OTEsIDAuNzMzOTg3LCAwLjkwMDgyNSwgMS4wNDY2MiwgMS4yNTQ4OSIsIFwKLSAgICAgICAgICAiMC4zMzY5MTEsIDAuNDk2Nzc4LCAwLjY0MzI1NywgMC43NDc1NjcsIDAuOTE0Mjk5LCAxLjA2MDIxLCAxLjI2ODQ3IiwgXAotICAgICAgICAgICIwLjM1OTAyMywgMC41MTg3NjEsIDAuNjY1MjMxLCAwLjc2OTU1OCwgMC45MzYzOTksIDEuMDgyMiwgMS4yOTA0NiIsIFwKLSAgICAgICAgICAiMC4zNzgyMzQsIDAuNTM3OTgxLCAwLjY4NDQ1MywgMC43ODg3NzMsIDAuOTU1NTc0LCAxLjEwMTQyLCAxLjMwOTY4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg4Mzc4LCAwLjM2MzY2NiwgMC42NDk0MTMsIDAuODU1NTc0LCAxLjE4NjkzLCAxLjQ3Njc0LCAxLjg5MjU1IiwgXAotICAgICAgICAgICIwLjA4ODM3OCwgMC4zNjM1NzIsIDAuNjQ5Mzg2LCAwLjg1MzcyMSwgMS4xODY4NCwgMS40NzY3NSwgMS44OTI1NiIsIFwKLSAgICAgICAgICAiMC4wODgyODMsIDAuMzYzNTg2LCAwLjY0OTM2OCwgMC44NTQ1MjMsIDEuMTg2NDUsIDEuNDc2NjYsIDEuODkyNDUiLCBcCi0gICAgICAgICAgIjAuMDg4Mjk3LCAwLjM2Mzc3MSwgMC42NDk0OCwgMC44NTU4MDgsIDEuMTg2NjYsIDEuNDc2NjcsIDEuODkyNDUiLCBcCi0gICAgICAgICAgIjAuMDg4MzI3LCAwLjM2MzY2NCwgMC42NDk0ODIsIDAuODU1NjY0LCAxLjE4NywgMS40NzY3MiwgMS44OTIzNCIsIFwKLSAgICAgICAgICAiMC4wODgyMjcsIDAuMzYzNzE1LCAwLjY0OTQ1NCwgMC44NTUzNzgsIDEuMTg2NzgsIDEuNDc2NjUsIDEuODkyNDIiLCBcCi0gICAgICAgICAgIjAuMDg4MzY4LCAwLjM2MzcxLCAwLjY0OTQ1MywgMC44NTM3OTEsIDEuMTg2NzcsIDEuNDc2NiwgMS44OTIzNiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTMSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNzM1OCwgMC4zMTY4LCAwLjQ0NTE3OSwgMC41MzY0MTYsIDAuNjgyMzI2LCAwLjgwOTk5NCwgMC45OTIwOTMiLCBcCi0gICAgICAgICAgIjAuMTgzOTY5LCAwLjMyNzI5NSwgMC40NTU2NjYsIDAuNTQ2OTEyLCAwLjY5Mjc5NywgMC44MjAzNjIsIDEuMDAyNTMiLCBcCi0gICAgICAgICAgIjAuMTk3Mzc5LCAwLjM0MDY1MSwgMC40NjkwMjksIDAuNTYwMzI0LCAwLjcwNjIwNCwgMC44MzM4NjUsIDEuMDE1OTciLCBcCi0gICAgICAgICAgIjAuMjEwNzg2LCAwLjM1NDA0NSwgMC40ODI0MjIsIDAuNTczNzIxLCAwLjcxOTYwNSwgMC44NDcyNjksIDEuMDI5MzciLCBcCi0gICAgICAgICAgIjAuMjI0MTM4LCAwLjM2NzQyNiwgMC40OTU4MDYsIDAuNTg3MSwgMC43MzI5NzcsIDAuODYwNjUzLCAxLjA0Mjc1IiwgXAotICAgICAgICAgICIwLjI0NTgwMSwgMC4zODkxMDQsIDAuNTE3NDk5LCAwLjYwODc0NSwgMC43NTQ2NDEsIDAuODgyMjA2LCAxLjA2NDQyIiwgXAotICAgICAgICAgICIwLjI2NDgxLCAwLjQwODE2LCAwLjUzNjUzMiwgMC42Mjc4MzgsIDAuNzczNzI0LCAwLjkwMTQwNiwgMS4wODM1MSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4NTYyOCwgMC4zMjk1MzQsIDAuNTg0Mjc4LCAwLjc2NzI2LCAxLjA2MjE4LCAxLjMyMTM1LCAxLjY5NjQ3IiwgXAotICAgICAgICAgICIwLjA4NTQyMywgMC4zMjk1MDEsIDAuNTg0MjE3LCAwLjc2NjY5OCwgMS4wNjIwMiwgMS4zMjQ0MiwgMS42OTU5IiwgXAotICAgICAgICAgICIwLjA4NTQ3NSwgMC4zMjk0NjcsIDAuNTgzMzQxLCAwLjc2NzMxNiwgMS4wNjI4MywgMS4zMjQ4NywgMS42OTYzNCIsIFwKLSAgICAgICAgICAiMC4wODU1MzcsIDAuMzI5MzMsIDAuNTgzMzA5LCAwLjc2NzI5MywgMS4wNjI4MiwgMS4zMjQ4NywgMS42OTYzNCIsIFwKLSAgICAgICAgICAiMC4wODU1OTIsIDAuMzI5MzcsIDAuNTgzMDU5LCAwLjc2NzI2NywgMS4wNjI4MiwgMS4zMjEzNiwgMS42OTYzNSIsIFwKLSAgICAgICAgICAiMC4wODU4OTYsIDAuMzI5NjMxLCAwLjU4NDE4MSwgMC43NjczNCwgMS4wNjI5MiwgMS4zMjM5NSwgMS42OTI0OSIsIFwKLSAgICAgICAgICAiMC4wODU5NTgsIDAuMzI5NjczLCAwLjU4MzA4NCwgMC43NjcyODUsIDEuMDYyODQsIDEuMzIxMzgsIDEuNjk2MzUiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNjQyMzYsIDAuMzIzODYxLCAwLjQ3MDMwMiwgMC41NzQ2MTQsIDAuNzQxNDc3LCAwLjg4NzI2LCAxLjA5NTUyIiwgXAotICAgICAgICAgICIwLjE3NDY5NywgMC4zMzQzMzksIDAuNDgwNzkxLCAwLjU4NTA1OSwgMC43NTE4MTgsIDAuODk3NzM4LCAxLjEwNTk5IiwgXAotICAgICAgICAgICIwLjE4Nzg1MSwgMC4zNDc1MDIsIDAuNDkzOTU0LCAwLjU5ODIyOSwgMC43NjQ5NzIsIDAuOTEwODUsIDEuMTE5MTciLCBcCi0gICAgICAgICAgIjAuMjAwOTM4LCAwLjM2MDUxNiwgMC41MDcwNDcsIDAuNjExMzI1LCAwLjc3ODE1OSwgMC45MjQwNDIsIDEuMTMyMjciLCBcCi0gICAgICAgICAgIjAuMjE0MTE2LCAwLjM3Mzc1MiwgMC41MjAyMSwgMC42MjQ1MjQsIDAuNzkxMzIyLCAwLjkzNzE4OSwgMS4xNDU0NSIsIFwKLSAgICAgICAgICAiMC4yMzUyMywgMC4zOTQ5NDIsIDAuNTQxNDgxLCAwLjY0NTc2MywgMC44MTI2MTQsIDAuOTU4NDE4LCAxLjE2NjY4IiwgXAotICAgICAgICAgICIwLjI1Mzg3MiwgMC40MTM1NTYsIDAuNTYwMTEzLCAwLjY2NDQwMiwgMC44MzEyNTYsIDAuOTc3MDYzLCAxLjE4NTMzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg3MzY1LCAwLjM2Mjc0MSwgMC42NDg2MzQsIDAuODU0MzYzLCAxLjE4MjQ0LCAxLjQ3NTk0LCAxLjg5MTQ2IiwgXAotICAgICAgICAgICIwLjA4NzM2OSwgMC4zNjI3MTcsIDAuNjQ4OTU4LCAwLjg1NTAzLCAxLjE4NjUzLCAxLjQ3NTg3LCAxLjg5MTI0IiwgXAotICAgICAgICAgICIwLjA4NzM3LCAwLjM2MjcyMywgMC42NDg5NTQsIDAuODU0MzE3LCAxLjE4NjQsIDEuNDczNjEsIDEuODg5NjMiLCBcCi0gICAgICAgICAgIjAuMDg3NDU4LCAwLjM2MzAyMSwgMC42NDg5MzksIDAuODUyNzAyLCAxLjE4NjA4LCAxLjQ3MjU4LCAxLjg5MTA0IiwgXAotICAgICAgICAgICIwLjA4NzQzNywgMC4zNjI3NDYsIDAuNjQ4NzcsIDAuODU0NDE0LCAxLjE4NDI5LCAxLjQ3NTgsIDEuODkxMjciLCBcCi0gICAgICAgICAgIjAuMDg3NDQ3LCAwLjM2MjU3MywgMC42NDc0OTYsIDAuODUyNTI4LCAxLjE4MzM2LCAxLjQ3NTk1LCAxLjg5MTUzIiwgXAotICAgICAgICAgICIwLjA4NzU0NSwgMC4zNjI4MDcsIDAuNjQ4OTQ2LCAwLjg1MjQ2MiwgMS4xODM1LCAxLjQ3NTkyLCAxLjg5MTY3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlMxIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIyMTUwMywgMC4zNjQ3ODIsIDAuNDkzMjEyLCAwLjU4NDQ1NCwgMC43MzAzMTksIDAuODU3OTc1LCAxLjA0MDA3IiwgXAotICAgICAgICAgICIwLjIzMzU5NCwgMC4zNzY5NiwgMC41MDUzMSwgMC41OTY1NDIsIDAuNzQyNDE1LCAwLjg3MDAwMiwgMS4wNTIyMiIsIFwKLSAgICAgICAgICAiMC4yNDg2MTUsIDAuMzkxOTEsIDAuNTIwMzIxLCAwLjYxMTU4OCwgMC43NTc0NTcsIDAuODg1MTA3LCAxLjA2NzIiLCBcCi0gICAgICAgICAgIjAuMjYzMjg0LCAwLjQwNjY2NywgMC41MzUwMjYsIDAuNjI2MjY0LCAwLjc3MjEzNSwgMC44OTk3MDcsIDEuMDgxODUiLCBcCi0gICAgICAgICAgIjAuMjc3NzksIDAuNDIxMTQxLCAwLjU0OTUsIDAuNjQwNzM3LCAwLjc4NjYwOSwgMC45MTQxOTgsIDEuMDk2MzIiLCBcCi0gICAgICAgICAgIjAuMjk5MzM2LCAwLjQ0MjYyNCwgMC41NzEwNDMsIDAuNjYyMywgMC44MDgxNjksIDAuOTM1ODE5LCAxLjExNzkxIiwgXAotICAgICAgICAgICIwLjMxNjQ1MSwgMC40NTk3ODgsIDAuNTg4MTQzLCAwLjY3OTM3NiwgMC44MjUyNDksIDAuOTUyODE0LCAxLjEzNTEiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODU3OSwgMC4zMjk0NjYsIDAuNTg0MjE1LCAwLjc2NzE5NSwgMS4wNjI2OCwgMS4zMjQ3NSwgMS42OTYyMSIsIFwKLSAgICAgICAgICAiMC4wODU3MDcsIDAuMzI5NTM0LCAwLjU4NDE0MSwgMC43NjcyMjMsIDEuMDYyNzQsIDEuMzIyMTcsIDEuNjk2NSIsIFwKLSAgICAgICAgICAiMC4wODU2NjEsIDAuMzI5NjA5LCAwLjU4NDAxNSwgMC43NjcyMzgsIDEuMDYyNzIsIDEuMzI0NzIsIDEuNjk2MTkiLCBcCi0gICAgICAgICAgIjAuMDg1NzM4LCAwLjMyOTU0LCAwLjU4NDE0LCAwLjc2NzI0OCwgMS4wNjI3NiwgMS4zMjQzMiwgMS42OTU4NSIsIFwKLSAgICAgICAgICAiMC4wODU3OTIsIDAuMzI5NTQyLCAwLjU4NDEzOSwgMC43NjcyMjIsIDEuMDYyOCwgMS4zMjQzOSwgMS42OTU5NSIsIFwKLSAgICAgICAgICAiMC4wODU2NTgsIDAuMzI5NTQ2LCAwLjU4NDA1OCwgMC43NjcxNzQsIDEuMDYyNzEsIDEuMzI0NzIsIDEuNjk2MTkiLCBcCi0gICAgICAgICAgIjAuMDg1NzQ0LCAwLjMyOTQ5NSwgMC41ODQxMzYsIDAuNzY3MTU0LCAxLjA2Mjc3LCAxLjMyMjMzLCAxLjY5MTk3Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjE5NDY4LCAwLjM3OTQwNCwgMC41MjU5NzYsIDAuNjMwMjY3LCAwLjc5NzE0MywgMC45NDI5NTIsIDEuMTUxMjMiLCBcCi0gICAgICAgICAgIjAuMjMxNDk4LCAwLjM5MTU3NSwgMC41MzgxNTksIDAuNjQyNDYxLCAwLjgwOTMyNiwgMC45NTUyMzMsIDEuMTYzNDciLCBcCi0gICAgICAgICAgIjAuMjQ3MzI1LCAwLjQwNzI1MSwgMC41NTM4MjcsIDAuNjU4MTIzLCAwLjgyNDk5OSwgMC45NzA4MSwgMS4xNzkwOSIsIFwKLSAgICAgICAgICAiMC4yNjI1OTIsIDAuNDIyNTM1LCAwLjU2OTEzMywgMC42NzM0MzEsIDAuODQwMjg4LCAwLjk4NjExMiwgMS4xOTQ1MSIsIFwKLSAgICAgICAgICAiMC4yNzczMjgsIDAuNDM3MjU2LCAwLjU4MzgxOSwgMC42ODgxMTEsIDAuODU0OTg3LCAxLjAwMDgsIDEuMjA5MDgiLCBcCi0gICAgICAgICAgIjAuMzAxNDU3LCAwLjQ2MTM3NywgMC42MDc5NTQsIDAuNzEyMjQ1LCAwLjg3OTExOSwgMS4wMjQ5MywgMS4yMzMyMSIsIFwKLSAgICAgICAgICAiMC4zMjExNDYsIDAuNDgxMDg0LCAwLjYyNzY1MSwgMC43MzE5NDIsIDAuODk4ODIyLCAxLjA0NDYzLCAxLjI1MjkxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg4MjI4LCAwLjM2MzI2NSwgMC42NDkyNTUsIDAuODUyNzAxLCAxLjE4MzExLCAxLjQ3NjM0LCAxLjg5MTk0IiwgXAotICAgICAgICAgICIwLjA4Nzk5NCwgMC4zNjM2MDYsIDAuNjQ5MjgsIDAuODUzMTk5LCAxLjE4Mzg1LCAxLjQ3NDIzLCAxLjg5MTMyIiwgXAotICAgICAgICAgICIwLjA4ODExNCwgMC4zNjM1NjIsIDAuNjQ5MjQ5LCAwLjg1MjY4NSwgMS4xODMyOSwgMS40NzYzMywgMS44OTE2NSIsIFwKLSAgICAgICAgICAiMC4wODgxNzIsIDAuMzYzNDg4LCAwLjY0OTI3LCAwLjg1MzE1OSwgMS4xODY0MSwgMS40NzU2NCwgMS44OTA2NCIsIFwKLSAgICAgICAgICAiMC4wODgxMzcsIDAuMzYzMjg1LCAwLjY0NzM4OCwgMC44NTM0MzksIDEuMTgzMjIsIDEuNDc2MiwgMS44OTE3OSIsIFwKLSAgICAgICAgICAiMC4wODgwOTYsIDAuMzYzMDA5LCAwLjY0NzU1NCwgMC44NTM0LCAxLjE4MzMsIDEuNDc2MjksIDEuODkxODUiLCBcCi0gICAgICAgICAgIjAuMDg4MTEyLCAwLjM2MzI1NywgMC42NDcxNzksIDAuODUzNjgsIDEuMTgzMDMsIDEuNDc2MjUsIDEuODkxNzQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjU1OSwgMC4wMDY2OTQsIDAuMDA2NzIxLCAwLjAwNjcyOSwgMC4wMDY3MzcsIDAuMDA2NzQsIDAuMDA2NzQ0IiwgXAotICAgICAgICAgICIwLjAwNjU1MywgMC4wMDY2ODksIDAuMDA2NzE1LCAwLjAwNjcyNCwgMC4wMDY3MzEsIDAuMDA2NzM1LCAwLjAwNjczOSIsIFwKLSAgICAgICAgICAiMC4wMDY1NSwgMC4wMDY2ODUsIDAuMDA2NzE0LCAwLjAwNjcyMSwgMC4wMDY3MjgsIDAuMDA2NzMyLCAwLjAwNjczNSIsIFwKLSAgICAgICAgICAiMC4wMDY1NDcsIDAuMDA2NjgzLCAwLjAwNjcwOSwgMC4wMDY3MTgsIDAuMDA2NzI2LCAwLjAwNjcyOSwgMC4wMDY3MzMiLCBcCi0gICAgICAgICAgIjAuMDA2NTQ1LCAwLjAwNjY4MSwgMC4wMDY3MDgsIDAuMDA2NzE2LCAwLjAwNjcyNCwgMC4wMDY3MjksIDAuMDA2NzMxIiwgXAotICAgICAgICAgICIwLjAwNjU0MiwgMC4wMDY2NzgsIDAuMDA2NzA2LCAwLjAwNjcxMywgMC4wMDY3MiwgMC4wMDY3MjQsIDAuMDA2NzI4IiwgXAotICAgICAgICAgICIwLjAwNjU0LCAwLjAwNjY3NSwgMC4wMDY3MDEsIDAuMDA2NzEsIDAuMDA2NzE4LCAwLjAwNjcyMiwgMC4wMDY3MjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjAzOCwgMC4wMDYyMTgsIDAuMDA2MjUyLCAwLjAwNjI2MywgMC4wMDYyNzIsIDAuMDA2Mjc3LCAwLjAwNjI4MiIsIFwKLSAgICAgICAgICAiMC4wMDYwMjcsIDAuMDA2MjA3LCAwLjAwNjI0MSwgMC4wMDYyNTIsIDAuMDA2MjYyLCAwLjAwNjI2NywgMC4wMDYyNzEiLCBcCi0gICAgICAgICAgIjAuMDA2MDIxLCAwLjAwNjIwMSwgMC4wMDYyMzUsIDAuMDA2MjQ1LCAwLjAwNjI1NSwgMC4wMDYyNjEsIDAuMDA2MjY1IiwgXAotICAgICAgICAgICIwLjAwNjAxNywgMC4wMDYxOTcsIDAuMDA2MjMsIDAuMDA2MjQxLCAwLjAwNjI1MSwgMC4wMDYyNTYsIDAuMDA2MjYiLCBcCi0gICAgICAgICAgIjAuMDA2MDEzLCAwLjAwNjE5MywgMC4wMDYyMjcsIDAuMDA2MjM4LCAwLjAwNjI0OCwgMC4wMDYyNTMsIDAuMDA2MjU3IiwgXAotICAgICAgICAgICIwLjAwNjAwOCwgMC4wMDYxODksIDAuMDA2MjIzLCAwLjAwNjIzNCwgMC4wMDYyNDQsIDAuMDA2MjQ5LCAwLjAwNjI1MyIsIFwKLSAgICAgICAgICAiMC4wMDYwMDcsIDAuMDA2MTg2LCAwLjAwNjIyLCAwLjAwNjIzMSwgMC4wMDYyNDEsIDAuMDA2MjQ2LCAwLjAwNjI1MSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2NzA1LCAwLjAwNjg0LCAwLjAwNjg2OCwgMC4wMDY4NzUsIDAuMDA2ODgzLCAwLjAwNjg4NiwgMC4wMDY4OSIsIFwKLSAgICAgICAgICAiMC4wMDY2OTksIDAuMDA2ODM1LCAwLjAwNjg2MSwgMC4wMDY4NywgMC4wMDY4OCwgMC4wMDY4ODMsIDAuMDA2ODg1IiwgXAotICAgICAgICAgICIwLjAwNjY5NiwgMC4wMDY4MzIsIDAuMDA2ODU5LCAwLjAwNjg2NiwgMC4wMDY4NzQsIDAuMDA2ODc4LCAwLjAwNjg4MSIsIFwKLSAgICAgICAgICAiMC4wMDY2OTQsIDAuMDA2ODI5LCAwLjAwNjg1NiwgMC4wMDY4NjQsIDAuMDA2ODc0LCAwLjAwNjg3NSwgMC4wMDY4NzkiLCBcCi0gICAgICAgICAgIjAuMDA2NjkxLCAwLjAwNjgyNywgMC4wMDY4NTQsIDAuMDA2ODYyLCAwLjAwNjg3LCAwLjAwNjg3MywgMC4wMDY4NzciLCBcCi0gICAgICAgICAgIjAuMDA2Njg4LCAwLjAwNjgyMywgMC4wMDY4NTIsIDAuMDA2ODU4LCAwLjAwNjg2OSwgMC4wMDY4NywgMC4wMDY4NzMiLCBcCi0gICAgICAgICAgIjAuMDA2Njg1LCAwLjAwNjgyMywgMC4wMDY4NDgsIDAuMDA2ODU2LCAwLjAwNjg2NSwgMC4wMDY4NjcsIDAuMDA2ODcxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDU5MDcsIDAuMDA2MDg3LCAwLjAwNjEyMSwgMC4wMDYxMzIsIDAuMDA2MTQyLCAwLjAwNjE0NywgMC4wMDYxNTEiLCBcCi0gICAgICAgICAgIjAuMDA1ODk3LCAwLjAwNjA3NywgMC4wMDYxMTEsIDAuMDA2MTIyLCAwLjAwNjEzMSwgMC4wMDYxMzYsIDAuMDA2MTQxIiwgXAotICAgICAgICAgICIwLjAwNTg5MSwgMC4wMDYwNzEsIDAuMDA2MTA0LCAwLjAwNjExNSwgMC4wMDYxMjUsIDAuMDA2MTMxLCAwLjAwNjEzNSIsIFwKLSAgICAgICAgICAiMC4wMDU4ODYsIDAuMDA2MDY2LCAwLjAwNjEsIDAuMDA2MTExLCAwLjAwNjEyMSwgMC4wMDYxMjYsIDAuMDA2MTMxIiwgXAotICAgICAgICAgICIwLjAwNTg4MywgMC4wMDYwNjMsIDAuMDA2MDk3LCAwLjAwNjEwOCwgMC4wMDYxMTgsIDAuMDA2MTIzLCAwLjAwNjEyOCIsIFwKLSAgICAgICAgICAiMC4wMDU4NzksIDAuMDA2MDU5LCAwLjAwNjA5MywgMC4wMDYxMDQsIDAuMDA2MTE0LCAwLjAwNjExOSwgMC4wMDYxMjMiLCBcCi0gICAgICAgICAgIjAuMDA1ODc2LCAwLjAwNjA1NiwgMC4wMDYwOSwgMC4wMDYxMDEsIDAuMDA2MTExLCAwLjAwNjExNiwgMC4wMDYxMiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2MjgyLCAwLjAwNjQwMSwgMC4wMDY0MjMsIDAuMDA2NDI5LCAwLjAwNjQzNSwgMC4wMDY0MzgsIDAuMDA2NDQxIiwgXAotICAgICAgICAgICIwLjAwNjI3NywgMC4wMDYzOTYsIDAuMDA2NDE4LCAwLjAwNjQyNCwgMC4wMDY0MywgMC4wMDY0MzMsIDAuMDA2NDM2IiwgXAotICAgICAgICAgICIwLjAwNjI3NCwgMC4wMDYzOTMsIDAuMDA2NDE1LCAwLjAwNjQyMSwgMC4wMDY0MjgsIDAuMDA2NDMsIDAuMDA2NDMyIiwgXAotICAgICAgICAgICIwLjAwNjI3MSwgMC4wMDYzOSwgMC4wMDY0MTIsIDAuMDA2NDE4LCAwLjAwNjQyNCwgMC4wMDY0MjcsIDAuMDA2NDMiLCBcCi0gICAgICAgICAgIjAuMDA2MjY4LCAwLjAwNjM4OCwgMC4wMDY0MTEsIDAuMDA2NDE2LCAwLjAwNjQyNiwgMC4wMDY0MjgsIDAuMDA2NDI3IiwgXAotICAgICAgICAgICIwLjAwNjI2NSwgMC4wMDYzODQsIDAuMDA2NDA2LCAwLjAwNjQxMiwgMC4wMDY0MTgsIDAuMDA2NDIxLCAwLjAwNjQyNCIsIFwKLSAgICAgICAgICAiMC4wMDYyNjIsIDAuMDA2MzgxLCAwLjAwNjQwMywgMC4wMDY0MDksIDAuMDA2NDE1LCAwLjAwNjQxOSwgMC4wMDY0MjEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjE0MywgMC4wMDYzMDYsIDAuMDA2MzM1LCAwLjAwNjM0NCwgMC4wMDYzNTMsIDAuMDA2MzU3LCAwLjAwNjM2MSIsIFwKLSAgICAgICAgICAiMC4wMDYxMzIsIDAuMDA2Mjk1LCAwLjAwNjMyNSwgMC4wMDYzMzQsIDAuMDA2MzQyLCAwLjAwNjM0NiwgMC4wMDYzNSIsIFwKLSAgICAgICAgICAiMC4wMDYxMjYsIDAuMDA2Mjg5LCAwLjAwNjMxOCwgMC4wMDYzMjcsIDAuMDA2MzM1LCAwLjAwNjM0LCAwLjAwNjM0NCIsIFwKLSAgICAgICAgICAiMC4wMDYxMjIsIDAuMDA2Mjg0LCAwLjAwNjMxNCwgMC4wMDYzMjMsIDAuMDA2MzMxLCAwLjAwNjMzNSwgMC4wMDYzMzkiLCBcCi0gICAgICAgICAgIjAuMDA2MTE4LCAwLjAwNjI4MSwgMC4wMDYzMSwgMC4wMDYzMiwgMC4wMDYzMjgsIDAuMDA2MzMyLCAwLjAwNjMzNiIsIFwKLSAgICAgICAgICAiMC4wMDYxMTQsIDAuMDA2Mjc3LCAwLjAwNjMwNywgMC4wMDYzMTUsIDAuMDA2MzI0LCAwLjAwNjMyOCwgMC4wMDYzMzIiLCBcCi0gICAgICAgICAgIjAuMDA2MTExLCAwLjAwNjI3NCwgMC4wMDYzMDMsIDAuMDA2MzEyLCAwLjAwNjMyMSwgMC4wMDYzMjUsIDAuMDA2MzI5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDY0MjEsIDAuMDA2NTM5LCAwLjAwNjU2MSwgMC4wMDY1NjgsIDAuMDA2NTc1LCAwLjAwNjU3NywgMC4wMDY1NzkiLCBcCi0gICAgICAgICAgIjAuMDA2NDE1LCAwLjAwNjUzNCwgMC4wMDY1NTYsIDAuMDA2NTYyLCAwLjAwNjU2OCwgMC4wMDY1NzIsIDAuMDA2NTc0IiwgXAotICAgICAgICAgICIwLjAwNjQxMiwgMC4wMDY1MzEsIDAuMDA2NTUzLCAwLjAwNjU1OSwgMC4wMDY1NjUsIDAuMDA2NTY4LCAwLjAwNjU3MSIsIFwKLSAgICAgICAgICAiMC4wMDY0MDksIDAuMDA2NTI4LCAwLjAwNjU0OSwgMC4wMDY1NTYsIDAuMDA2NTYyLCAwLjAwNjU2NSwgMC4wMDY1NjgiLCBcCi0gICAgICAgICAgIjAuMDA2NDA3LCAwLjAwNjUyNiwgMC4wMDY1NDgsIDAuMDA2NTU0LCAwLjAwNjU2NCwgMC4wMDY1NjcsIDAuMDA2NTY2IiwgXAotICAgICAgICAgICIwLjAwNjQwMywgMC4wMDY1MjIsIDAuMDA2NTQzLCAwLjAwNjU1LCAwLjAwNjU1OSwgMC4wMDY1NTksIDAuMDA2NTYyIiwgXAotICAgICAgICAgICIwLjAwNjQwMSwgMC4wMDY1MjEsIDAuMDA2NTQzLCAwLjAwNjU0OSwgMC4wMDY1NTUsIDAuMDA2NTU5LCAwLjAwNjU2MSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2MTA1LCAwLjAwNjI2OCwgMC4wMDYyOTgsIDAuMDA2MzA3LCAwLjAwNjMxNSwgMC4wMDYzMTksIDAuMDA2MzIzIiwgXAotICAgICAgICAgICIwLjAwNjA5NSwgMC4wMDYyNTgsIDAuMDA2Mjg3LCAwLjAwNjI5NiwgMC4wMDYzMDQsIDAuMDA2MzA4LCAwLjAwNjMxMiIsIFwKLSAgICAgICAgICAiMC4wMDYwODgsIDAuMDA2MjUxLCAwLjAwNjI4LCAwLjAwNjI5LCAwLjAwNjI5NywgMC4wMDYzMDIsIDAuMDA2MzA2IiwgXAotICAgICAgICAgICIwLjAwNjA4MywgMC4wMDYyNDcsIDAuMDA2Mjc2LCAwLjAwNjI4NSwgMC4wMDYyOTMsIDAuMDA2Mjk3LCAwLjAwNjMwMSIsIFwKLSAgICAgICAgICAiMC4wMDYwOCwgMC4wMDYyNDMsIDAuMDA2MjcyLCAwLjAwNjI4MiwgMC4wMDYyOSwgMC4wMDYyOTQsIDAuMDA2Mjk4IiwgXAotICAgICAgICAgICIwLjAwNjA3NiwgMC4wMDYyMzksIDAuMDA2MjY5LCAwLjAwNjI3NywgMC4wMDYyODYsIDAuMDA2MjksIDAuMDA2Mjk0IiwgXAotICAgICAgICAgICIwLjAwNjA3NCwgMC4wMDYyMzYsIDAuMDA2MjY1LCAwLjAwNjI3NCwgMC4wMDYyODIsIDAuMDA2Mjg3LCAwLjAwNjI5MSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlMwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwODI5OCwgMC4wMDg0MzIsIDAuMDA4NDU4LCAwLjAwODQ2NiwgMC4wMDg0NzMsIDAuMDA4NDc3LCAwLjAwODQ4IiwgXAotICAgICAgICAgICIwLjAwODMsIDAuMDA4NDM1LCAwLjAwODQ2LCAwLjAwODQ2OSwgMC4wMDg0NzUsIDAuMDA4NDc5LCAwLjAwODQ4NCIsIFwKLSAgICAgICAgICAiMC4wMDgyOTYsIDAuMDA4NDMsIDAuMDA4NDU1LCAwLjAwODQ2NCwgMC4wMDg0NjksIDAuMDA4NDc5LCAwLjAwODQ3NiIsIFwKLSAgICAgICAgICAiMC4wMDgyOSwgMC4wMDg0MjQsIDAuMDA4NDQ5LCAwLjAwODQ1NywgMC4wMDg0NjQsIDAuMDA4NDY3LCAwLjAwODQ3MiIsIFwKLSAgICAgICAgICAiMC4wMDgyODMsIDAuMDA4NDE3LCAwLjAwODQ0MywgMC4wMDg0NSwgMC4wMDg0NTgsIDAuMDA4NDYyLCAwLjAwODQ2NSIsIFwKLSAgICAgICAgICAiMC4wMDgyNzQsIDAuMDA4NDA5LCAwLjAwODQzNSwgMC4wMDg0NDIsIDAuMDA4NDUsIDAuMDA4NDU0LCAwLjAwODQ1OCIsIFwKLSAgICAgICAgICAiMC4wMDgyNjksIDAuMDA4NDAzLCAwLjAwODQzLCAwLjAwODQzOCwgMC4wMDg0NDUsIDAuMDA4NDQ3LCAwLjAwODQ1MiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEwMTgzLCAwLjAxMDM0NywgMC4wMTAzNzUsIDAuMDEwMzg1LCAwLjAxMDM5MywgMC4wMTAzOTcsIDAuMDEwNDAxIiwgXAotICAgICAgICAgICIwLjAxMDE3NywgMC4wMTAzNCwgMC4wMTAzNjksIDAuMDEwMzc4LCAwLjAxMDM4NywgMC4wMTAzOSwgMC4wMTAzOTQiLCBcCi0gICAgICAgICAgIjAuMDEwMTY2LCAwLjAxMDMyOCwgMC4wMTAzNTgsIDAuMDEwMzY3LCAwLjAxMDM3NSwgMC4wMTAzNzksIDAuMDEwMzgzIiwgXAotICAgICAgICAgICIwLjAxMDE1NiwgMC4wMTAzMTksIDAuMDEwMzQ4LCAwLjAxMDM1NywgMC4wMTAzNjUsIDAuMDEwMzY5LCAwLjAxMDM3MyIsIFwKLSAgICAgICAgICAiMC4wMTAxNSwgMC4wMTAzMTMsIDAuMDEwMzQxLCAwLjAxMDM1MSwgMC4wMTAzNTksIDAuMDEwMzYzLCAwLjAxMDM2NyIsIFwKLSAgICAgICAgICAiMC4wMTAxNDMsIDAuMDEwMzA2LCAwLjAxMDMzNSwgMC4wMTAzNDUsIDAuMDEwMzUyLCAwLjAxMDM1NiwgMC4wMTAzNiIsIFwKLSAgICAgICAgICAiMC4wMTAxMzcsIDAuMDEwMjk5LCAwLjAxMDMyOCwgMC4wMTAzMzcsIDAuMDEwMzQ1LCAwLjAxMDM1LCAwLjAxMDM1MyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlMxIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjM5MywgMC4wMDY1MjUsIDAuMDA2NTUyLCAwLjAwNjU2MSwgMC4wMDY1NzEsIDAuMDA2NTc0LCAwLjAwNjU3NyIsIFwKLSAgICAgICAgICAiMC4wMDYzOTgsIDAuMDA2NTMsIDAuMDA2NTU3LCAwLjAwNjU2NiwgMC4wMDY1NzQsIDAuMDA2NTc5LCAwLjAwNjU4MiIsIFwKLSAgICAgICAgICAiMC4wMDYzOTgsIDAuMDA2NTMsIDAuMDA2NTU2LCAwLjAwNjU2NiwgMC4wMDY1NzQsIDAuMDA2NTc4LCAwLjAwNjU4MyIsIFwKLSAgICAgICAgICAiMC4wMDYzOTcsIDAuMDA2NTMsIDAuMDA2NTU2LCAwLjAwNjU2NSwgMC4wMDY1NzMsIDAuMDA2NTc4LCAwLjAwNjU4MiIsIFwKLSAgICAgICAgICAiMC4wMDYzOTUsIDAuMDA2NTI4LCAwLjAwNjU1NSwgMC4wMDY1NjMsIDAuMDA2NTcxLCAwLjAwNjU3NywgMC4wMDY1NzkiLCBcCi0gICAgICAgICAgIjAuMDA2MzkyLCAwLjAwNjUyNSwgMC4wMDY1NTIsIDAuMDA2NTYsIDAuMDA2NTY5LCAwLjAwNjU3MywgMC4wMDY1NzciLCBcCi0gICAgICAgICAgIjAuMDA2Mzg4LCAwLjAwNjUyMSwgMC4wMDY1NDcsIDAuMDA2NTU2LCAwLjAwNjU2NSwgMC4wMDY1NjgsIDAuMDA2NTcyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDUzNTUsIDAuMDA1NTIsIDAuMDA1NTUyLCAwLjAwNTU2MywgMC4wMDU1NzMsIDAuMDA1NTc4LCAwLjAwNTU4MyIsIFwKLSAgICAgICAgICAiMC4wMDUzNTMsIDAuMDA1NTE4LCAwLjAwNTU1LCAwLjAwNTU2MSwgMC4wMDU1NzEsIDAuMDA1NTc2LCAwLjAwNTU4MSIsIFwKLSAgICAgICAgICAiMC4wMDUzNTEsIDAuMDA1NTE1LCAwLjAwNTU0OCwgMC4wMDU1NTksIDAuMDA1NTY4LCAwLjAwNTU3MywgMC4wMDU1NzgiLCBcCi0gICAgICAgICAgIjAuMDA1MzQ2LCAwLjAwNTUxMiwgMC4wMDU1NDQsIDAuMDA1NTU1LCAwLjAwNTU2NCwgMC4wMDU1NywgMC4wMDU1NzQiLCBcCi0gICAgICAgICAgIjAuMDA1MzQzLCAwLjAwNTUwOCwgMC4wMDU1NDEsIDAuMDA1NTUxLCAwLjAwNTU2MSwgMC4wMDU1NjcsIDAuMDA1NTcxIiwgXAotICAgICAgICAgICIwLjAwNTMzOSwgMC4wMDU1MDUsIDAuMDA1NTM3LCAwLjAwNTU0NywgMC4wMDU1NTcsIDAuMDA1NTYyLCAwLjAwNTU2NyIsIFwKLSAgICAgICAgICAiMC4wMDUzMzgsIDAuMDA1NTAzLCAwLjAwNTUzNiwgMC4wMDU1NDcsIDAuMDA1NTU2LCAwLjAwNTU2MiwgMC4wMDU1NjciKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogTkFORDJCWDQgKgotICogLS0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKE5BTkQyQlg0KSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMzAwNjc1OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBTikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwOTA2MzE0OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDkwNTc4NjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA5MDYzMTQ7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxMjg0LCAwLjAwMTI2MSwgMC4wMDEyNDUsIDAuMDAxMjMzLCAwLjAwMTIyNiwgMC4wMDEyMjEsIDAuMDAxMjE5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzMTkzLCAwLjAwMzE3OCwgMC4wMDMxNjQsIDAuMDAzMTU4LCAwLjAwMzE1NCwgMC4wMDMxNTMsIDAuMDAzMTQ5Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDMwOTY0MTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDMwOTM2MzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDMwOTY0MTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA2NTUsIDAuMDAwNjUzLCAwLjAwMDY1MywgMC4wMDA2NTMsIDAuMDAwNjUzLCAwLjAwMDY1MiwgMC4wMDA2NTMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDEzOSwgMC4wMDEzOTEsIDAuMDAxMzkxLCAwLjAwMTM5MSwgMC4wMDEzOTMsIDAuMDAxMzkzLCAwLjAwMTM5MyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjI2NDIzNjsKLSAgICBmdW5jdGlvbiA6ICIoISgoIUFOKSBCKSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkFOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5MTAxNiwgMC4yMTk3NDgsIDAuMzQ2NzkxLCAwLjQzNzUxMywgMC41ODI1ODYsIDAuNzA5NTI5LCAwLjg5MDkxMiIsIFwKLSAgICAgICAgICAiMC4xMDI2ODQsIDAuMjMxNjMyLCAwLjM1ODY4NiwgMC40NDkzNjIsIDAuNTk0NDc3LCAwLjcyMTUzOCwgMC45MDI3NzEiLCBcCi0gICAgICAgICAgIjAuMTE3Njg4LCAwLjI0NjY4NCwgMC4zNzM3MzksIDAuNDY0NDk3LCAwLjYwOTU4NSwgMC43MzY1MjYsIDAuOTE3ODM5IiwgXAotICAgICAgICAgICIwLjEzMjg1NiwgMC4yNjE4ODMsIDAuMzg4OTI3LCAwLjQ3OTYzNSwgMC42MjQ3NTgsIDAuNzUxODMyLCAwLjkzMzAyNyIsIFwKLSAgICAgICAgICAiMC4xNDc1NzcsIDAuMjc2NDQ4LCAwLjQwMzUwOCwgMC40OTQyNzUsIDAuNjM5MzIyLCAwLjc2NjQwMywgMC45NDc0NTciLCBcCi0gICAgICAgICAgIjAuMTcxMzg2LCAwLjMwMDMwNywgMC40MjczNzQsIDAuNTE4MSwgMC42NjMyNSwgMC43OTAzMTYsIDAuOTcxNjMxIiwgXAotICAgICAgICAgICIwLjE5MDg3LCAwLjMyMDA1NywgMC40NDcxMjgsIDAuNTM3ODM5LCAwLjY4Mjk0NiwgMC44MTAwNjMsIDAuOTkxMjEiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjUyOTEsIDAuMzE2MjQ0LCAwLjU3MzIxOSwgMC43NTY4NTcsIDEuMDUxMTcsIDEuMzA5MzMsIDEuNjc2NjMiLCBcCi0gICAgICAgICAgIjAuMDY1MjgsIDAuMzE2NTg2LCAwLjU3MzA1MiwgMC43NTY4NzksIDEuMDUxNzQsIDEuMzA5MDQsIDEuNjc2NjciLCBcCi0gICAgICAgICAgIjAuMDY1MTk1LCAwLjMxNjUxMSwgMC41NzMwMjksIDAuNzU3MDM5LCAxLjA1MTc3LCAxLjMwODc5LCAxLjY3NjM5IiwgXAotICAgICAgICAgICIwLjA2NTI1OSwgMC4zMTYzNzEsIDAuNTczMDI3LCAwLjc1NzE3NSwgMS4wNTE3NCwgMS4zMDg5NywgMS42NzYzOSIsIFwKLSAgICAgICAgICAiMC4wNjU3ODksIDAuMzE2NTQ1LCAwLjU3MzA3MywgMC43NTcwNjYsIDEuMDUxNzEsIDEuMzA4OTUsIDEuNjc2NDUiLCBcCi0gICAgICAgICAgIjAuMDY2MDgzLCAwLjMxNjU4OSwgMC41NzMwMzksIDAuNzU2ODQ5LCAxLjA1MTQ1LCAxLjMwODk3LCAxLjY3Njg2IiwgXAotICAgICAgICAgICIwLjA2NzcyLCAwLjMxNjgwOSwgMC41NzMyMTQsIDAuNzU3MzM5LCAxLjA1MTczLCAxLjMwODk4LCAxLjY3NjM5Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTIxMjE3LCAwLjQwODczMSwgMC42OTU2MTYsIDAuOTAwMzAyLCAxLjIyNzk1LCAxLjUxNDg0LCAxLjkyNTk0IiwgXAotICAgICAgICAgICIwLjEzMjYxNSwgMC40MjAwNTcsIDAuNzA2ODY0LCAwLjkxMTcwMiwgMS4yMzk1LCAxLjUyNjU2LCAxLjkzNTYzIiwgXAotICAgICAgICAgICIwLjE0NzUzNSwgMC40MzUxNDksIDAuNzIyMDUsIDAuOTI2NzU1LCAxLjI1NDQyLCAxLjU0MTU1LCAxLjk1MTU3IiwgXAotICAgICAgICAgICIwLjE2MjIwMywgMC40NDk4OTYsIDAuNzM2ODE0LCAwLjk0MTUzNywgMS4yNjkyLCAxLjU1NjU4LCAxLjk2NTc0IiwgXAotICAgICAgICAgICIwLjE3Njg0NiwgMC40NjQ1ODcsIDAuNzUxNTE4LCAwLjk1NjI2NiwgMS4yODM5NCwgMS41NzA2MiwgMS45ODA1OSIsIFwKLSAgICAgICAgICAiMC4xOTkyMDksIDAuNDg3MDUxLCAwLjc3MzkwNywgMC45Nzg3MDIsIDEuMzA3MzMsIDEuNTkzMTIsIDIuMDAzNDEiLCBcCi0gICAgICAgICAgIjAuMjE3MzU4LCAwLjUwNTA2NywgMC43OTIxOTksIDAuOTk2OTM3LCAxLjMyNDYyLCAxLjYxMTI0LCAyLjAyMTQxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTE0Njc2LCAwLjY2NDA4NywgMS4yMTY0OSwgMS42MDk1NiwgMi4yMzg4NiwgMi43OTMyNCwgMy41NjYwNCIsIFwKLSAgICAgICAgICAiMC4xMTQ2MjUsIDAuNjYzOTAxLCAxLjIxNDk5LCAxLjYwODg1LCAyLjIzOTk0LCAyLjc4MjM2LCAzLjU3NjAxIiwgXAotICAgICAgICAgICIwLjExNDY4OCwgMC42NjQyNzcsIDEuMjE1NzgsIDEuNjA5NjgsIDIuMjM5MDYsIDIuNzc4NDksIDMuNTcxODYiLCBcCi0gICAgICAgICAgIjAuMTE0NzAyLCAwLjY2NDI5MSwgMS4yMTU3LCAxLjYwOTgyLCAyLjIzOTEzLCAyLjc3NzcyLCAzLjU3NzE1IiwgXAotICAgICAgICAgICIwLjExNDcxNywgMC42NjQyNjEsIDEuMjE2MiwgMS42MTAxMiwgMi4yMzk0OSwgMi43ODg0NSwgMy41NzA1MSIsIFwKLSAgICAgICAgICAiMC4xMTQ4ODcsIDAuNjYxNDA2LCAxLjIxNjI2LCAxLjYwOTU4LCAyLjIzMTcyLCAyLjc5MDMxLCAzLjU2MjcxIiwgXAotICAgICAgICAgICIwLjExNTIxMSwgMC42NjM5MjUsIDEuMjEwMjcsIDEuNjEwODksIDIuMjM5ODksIDIuNzg5MzgsIDMuNTY2NzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzAzMTUsIDAuMTU4MjgyLCAwLjI4NjI5OCwgMC4zNzc3MzksIDAuNTIzOTMsIDAuNjUyMDgyLCAwLjgzNDYzOSIsIFwKLSAgICAgICAgICAiMC4wNDE5NzUsIDAuMTY5NTk5LCAwLjI5NzYzOSwgMC4zODg5MDgsIDAuNTM1MDU5LCAwLjY2MjkyNiwgMC44NDU3NDQiLCBcCi0gICAgICAgICAgIjAuMDU2NzE4LCAwLjE4NDMzMiwgMC4zMTIyMzEsIDAuNDAzNTk5LCAwLjU0NzQ4NiwgMC42NzUxNzMsIDAuODU4MTk2IiwgXAotICAgICAgICAgICIwLjA3MTIxNSwgMC4xOTg3NDgsIDAuMzI2NzI5LCAwLjQxODA3OSwgMC41NjQyMDcsIDAuNjg4NTE1LCAwLjg3MTU2NyIsIFwKLSAgICAgICAgICAiMC4wODQ1MiwgMC4yMTM2MzYsIDAuMzQxMjM4LCAwLjQzMjY5OSwgMC41Nzg5MDIsIDAuNzA2ODE1LCAwLjg4NDYyNyIsIFwKLSAgICAgICAgICAiMC4xMDMyNTQsIDAuMjM3NzMsIDAuMzY0ODEzLCAwLjQ1NTk1LCAwLjYwMTk1OCwgMC43Mjk4OCwgMC45MTI2NjYiLCBcCi0gICAgICAgICAgIjAuMTE3NjU1LCAwLjI1ODQxMywgMC4zODU0NywgMC40NzYyNjIsIDAuNjIyNDA0LCAwLjc1MDI3MSwgMC45MzI4OTUiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTI1MDcsIDAuMzEyOSwgMC41NzE4OCwgMC43NTczOTcsIDEuMDU0MTYsIDEuMzEzNTksIDEuNjg1IiwgXAotICAgICAgICAgICIwLjA1MzMxMywgMC4zMTIxOTQsIDAuNTcxODQyLCAwLjc1NzAyNiwgMS4wNTY1NywgMS4zMTcxNCwgMS42ODg2NiIsIFwKLSAgICAgICAgICAiMC4wNTgyOTMsIDAuMzEyOTI2LCAwLjU3MTc4MywgMC43NTkzNjksIDEuMDU0MDksIDEuMzE2ODgsIDEuNjg0ODYiLCBcCi0gICAgICAgICAgIjAuMDY1NzQxLCAwLjMxMjQzNiwgMC41NzIyNDgsIDAuNzU5MTI5LCAxLjA1ODI0LCAxLjMxNDIsIDEuNjg0NDYiLCBcCi0gICAgICAgICAgIjAuMDc0Mzk3LCAwLjMxMzQzMywgMC41NzE3ODQsIDAuNzU3Mzc0LCAxLjA1NDE2LCAxLjMxMzg2LCAxLjY4NDg1IiwgXAotICAgICAgICAgICIwLjA5MDE3NCwgMC4zMTc5MjIsIDAuNTcyMDgxLCAwLjc1NzM3MSwgMS4wNTM5MSwgMS4zMTM1NiwgMS42ODQyNCIsIFwKLSAgICAgICAgICAiMC4xMDM1MDUsIDAuMzI0MDg5LCAwLjU3MzQxMiwgMC43NTkzOSwgMS4wNTM3NSwgMS4zMTM5NCwgMS42ODQ1NiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2NTU2MywgMC4zNTI3NTksIDAuNjM5NDM1LCAwLjg0NDEzNSwgMS4xNzI0MiwgMS40NTkyMSwgMS44NjkxOSIsIFwKLSAgICAgICAgICAiMC4wNzU1MDksIDAuMzYzMDc4LCAwLjY0OTc2MiwgMC44NTQ2MjcsIDEuMTgyMzcsIDEuNDY5MTMsIDEuODc4NjMiLCBcCi0gICAgICAgICAgIjAuMDg4MzEyLCAwLjM3NjIwNywgMC42NjMyMTksIDAuODY4MDYzLCAxLjE5NTU3LCAxLjQ4MzAzLCAxLjg5MiIsIFwKLSAgICAgICAgICAiMC4xMDIxMDgsIDAuMzg5OTg1LCAwLjY3NjkwOCwgMC44ODE4MTgsIDEuMjEwMTksIDEuNDk2NCwgMS45MDYwNyIsIFwKLSAgICAgICAgICAiMC4xMTUzNzIsIDAuNDAyNTA1LCAwLjY4OTQ3OCwgMC44OTQ2MjksIDEuMjIyNDQsIDEuNTA4ODksIDEuOTIwMTEiLCBcCi0gICAgICAgICAgIjAuMTM2OTA1LCAwLjQyMzY5MSwgMC43MTA2NzgsIDAuOTE1ODE0LCAxLjI0NDIsIDEuNTMwMDQsIDEuOTQwNjMiLCBcCi0gICAgICAgICAgIjAuMTU0OTE1LCAwLjQ0MjEzNSwgMC43MjkxNTUsIDAuOTM0Mzc3LCAxLjI2MTk1LCAxLjU0OTY4LCAxLjk1ODM2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTEyNDgzLCAwLjY2MTM3NywgMS4yMTUxOCwgMS42MDg5NSwgMi4yMjg4NSwgMi43Nzc2NSwgMy41NjU1MiIsIFwKLSAgICAgICAgICAiMC4xMTI3MjQsIDAuNjYzOTg0LCAxLjIxNDc0LCAxLjYwODU4LCAyLjIzODg3LCAyLjc4OTI3LCAzLjU3NjczIiwgXAotICAgICAgICAgICIwLjExNDAxNSwgMC42NjQzNTMsIDEuMjE2MTUsIDEuNjAzOTMsIDIuMjM4MzgsIDIuNzc3NzgsIDMuNTc2NjMiLCBcCi0gICAgICAgICAgIjAuMTE3NjI5LCAwLjY2NDQ0NiwgMS4yMTUsIDEuNjAzODcsIDIuMjMyMDcsIDIuNzg5MTksIDMuNTc3MTUiLCBcCi0gICAgICAgICAgIjAuMTIzNDg4LCAwLjY2MzgzOSwgMS4yMTUwOCwgMS42MDQ1OCwgMi4yMzI0NCwgMi43OTE1NiwgMy41NjE5NyIsIFwKLSAgICAgICAgICAiMC4xMzQ4NzIsIDAuNjY0MzE0LCAxLjIxNjU3LCAxLjYwMjMzLCAyLjI0MTY4LCAyLjc5MDA0LCAzLjU2MTI2IiwgXAotICAgICAgICAgICIwLjE0NTY2MSwgMC42NjQ4OTksIDEuMjE0OTgsIDEuNjAyMzQsIDIuMjQxMiwgMi43ODE2NywgMy41NzY4NyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkFOIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNTYyNSwgMC4wMDU2NTcsIDAuMDA1NjYsIDAuMDA1NjUyLCAwLjAwNTY1NCwgMC4wMDU2NTMsIDAuMDA1NjUxIiwgXAotICAgICAgICAgICIwLjAwNTU5NywgMC4wMDU2MzQsIDAuMDA1NjM4LCAwLjAwNTYzOSwgMC4wMDU2NDMsIDAuMDA1NjM5LCAwLjAwNTYzNyIsIFwKLSAgICAgICAgICAiMC4wMDU1NzMsIDAuMDA1NjE3LCAwLjAwNTYyMSwgMC4wMDU2MjQsIDAuMDA1NjIzLCAwLjAwNTYyMywgMC4wMDU2MjMiLCBcCi0gICAgICAgICAgIjAuMDA1NTUzLCAwLjAwNTYwMywgMC4wMDU2MDksIDAuMDA1NjExLCAwLjAwNTYxMSwgMC4wMDU2MTMsIDAuMDA1NjEyIiwgXAotICAgICAgICAgICIwLjAwNTUyNiwgMC4wMDU1ODksIDAuMDA1NTk3LCAwLjAwNTU5OSwgMC4wMDU2LCAwLjAwNTYwMiwgMC4wMDU2MDEiLCBcCi0gICAgICAgICAgIjAuMDA1NTIsIDAuMDA1NTgzLCAwLjAwNTU5MywgMC4wMDU1OTcsIDAuMDA1NiwgMC4wMDU2LCAwLjAwNTYwMiIsIFwKLSAgICAgICAgICAiMC4wMDU1MDcsIDAuMDA1NTc3LCAwLjAwNTU4OCwgMC4wMDU1OTMsIDAuMDA1NTk1LCAwLjAwNTU5NywgMC4wMDU1OTgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNTg5NCwgMC4wMDU5NzMsIDAuMDA1OTgyLCAwLjAwNTk4NSwgMC4wMDU5ODcsIDAuMDA1OTg4LCAwLjAwNTk5IiwgXAotICAgICAgICAgICIwLjAwNTg2OSwgMC4wMDU5NTUsIDAuMDA1OTY1LCAwLjAwNTk2OCwgMC4wMDU5NzEsIDAuMDA1OTcyLCAwLjAwNTk3MyIsIFwKLSAgICAgICAgICAiMC4wMDU4NDQsIDAuMDA1OTM5LCAwLjAwNTk1MSwgMC4wMDU5NTUsIDAuMDA1OTU4LCAwLjAwNTk2LCAwLjAwNTk2MSIsIFwKLSAgICAgICAgICAiMC4wMDU4MTcsIDAuMDA1OTIzLCAwLjAwNTkzOSwgMC4wMDU5NDQsIDAuMDA1OTQ4LCAwLjAwNTk1LCAwLjAwNTk1MiIsIFwKLSAgICAgICAgICAiMC4wMDU3OTksIDAuMDA1OTEyLCAwLjAwNTkzMSwgMC4wMDU5MzcsIDAuMDA1OTQyLCAwLjAwNTk0NSwgMC4wMDU5NDciLCBcCi0gICAgICAgICAgIjAuMDA1Nzc1LCAwLjAwNTg5OCwgMC4wMDU5MjIsIDAuMDA1OTI5LCAwLjAwNTkzNiwgMC4wMDU5NCwgMC4wMDU5NDMiLCBcCi0gICAgICAgICAgIjAuMDA1NzYxLCAwLjAwNTg4OSwgMC4wMDU5MTUsIDAuMDA1OTIzLCAwLjAwNTkzMSwgMC4wMDU5MzUsIDAuMDA1OTM5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQxMDUsIDAuMDA0MTIyLCAwLjAwNDEyMiwgMC4wMDQxMjUsIDAuMDA0MTI1LCAwLjAwNDEyNCwgMC4wMDQxMjQiLCBcCi0gICAgICAgICAgIjAuMDA0MDU5LCAwLjAwNDEzLCAwLjAwNDEzOSwgMC4wMDQxMzksIDAuMDA0MTQyLCAwLjAwNDE1MiwgMC4wMDQxNDQiLCBcCi0gICAgICAgICAgIjAuMDA0MDA2LCAwLjAwNDExOSwgMC4wMDQxMzIsIDAuMDA0MTM5LCAwLjAwNDE0MiwgMC4wMDQxNDgsIDAuMDA0MTQ2IiwgXAotICAgICAgICAgICIwLjAwMzk2OCwgMC4wMDQxLCAwLjAwNDEyNywgMC4wMDQxMzMsIDAuMDA0MTM5LCAwLjAwNDEzOCwgMC4wMDQxNDMiLCBcCi0gICAgICAgICAgIjAuMDAzOTQyLCAwLjAwNDA5NSwgMC4wMDQxMiwgMC4wMDQxMjgsIDAuMDA0MTM1LCAwLjAwNDEzOCwgMC4wMDQxNCIsIFwKLSAgICAgICAgICAiMC4wMDM5MTcsIDAuMDA0MDc2LCAwLjAwNDEwOCwgMC4wMDQxMTksIDAuMDA0MTI4LCAwLjAwNDEzMywgMC4wMDQxMzciLCBcCi0gICAgICAgICAgIjAuMDAzOTA4LCAwLjAwNDA2NSwgMC4wMDQxLCAwLjAwNDExLCAwLjAwNDEyMiwgMC4wMDQxMjgsIDAuMDA0MTM1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDE0NDMsIDAuMDAxNDY4LCAwLjAwMTQ3MSwgMC4wMDE0NzIsIDAuMDAxNDczLCAwLjAwMTQ3MywgMC4wMDE0NzMiLCBcCi0gICAgICAgICAgIjAuMDAxMzQzLCAwLjAwMTQ0NywgMC4wMDE0NTksIDAuMDAxNDYzLCAwLjAwMTQ2NiwgMC4wMDE0NjgsIDAuMDAxNDY5IiwgXAotICAgICAgICAgICIwLjAwMTI2OCwgMC4wMDE0MjIsIDAuMDAxNDQ1LCAwLjAwMTQ1MiwgMC4wMDE0NTgsIDAuMDAxNDYyLCAwLjAwMTQ2NCIsIFwKLSAgICAgICAgICAiMC4wMDEyMzIsIDAuMDAxNDAyLCAwLjAwMTQzMywgMC4wMDE0NDIsIDAuMDAxNDUxLCAwLjAwMTQ1NiwgMC4wMDE0NiIsIFwKLSAgICAgICAgICAiMC4wMDEyMDUsIDAuMDAxMzgxLCAwLjAwMTQxOSwgMC4wMDE0MzIsIDAuMDAxNDQzLCAwLjAwMTQ0OSwgMC4wMDE0NTQiLCBcCi0gICAgICAgICAgIjAuMDAxMTg3LCAwLjAwMTM1NCwgMC4wMDE0MDEsIDAuMDAxNDE3LCAwLjAwMTQzMiwgMC4wMDE0NCwgMC4wMDE0NDciLCBcCi0gICAgICAgICAgIjAuMDAxMTgyLCAwLjAwMTMzNSwgMC4wMDEzODcsIDAuMDAxNDA1LCAwLjAwMTQyMywgMC4wMDE0MzIsIDAuMDAxNDQxIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogTkFORDJYNCAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChOQU5EMlg0KSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMjYzOTM7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMzIzNzQ0OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMzIzNzQ0OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMzIyODk3OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTIyNSwgMC4wMDEyMjMsIDAuMDAxMjIzLCAwLjAwMTIyMywgMC4wMDEyMjMsIDAuMDAxMjIyLCAwLjAwMTIyMiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTI3MSwgMC4wMDEyMzksIDAuMDAxMjM0LCAwLjAwMTIzMywgMC4wMDEyMzIsIDAuMDAxMjMxLCAwLjAwMTIzMSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAzMDc1Mzk7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAzMDcyNzM7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAzMDc1Mzk7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNjcsIDAuMDAwNjY5LCAwLjAwMDY2OCwgMC4wMDA2NjgsIDAuMDAwNjY4LCAwLjAwMDY2OCwgMC4wMDA2NjgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDEzOSwgMC4wMDEzOTEsIDAuMDAxMzkxLCAwLjAwMTM5MSwgMC4wMDEzOTMsIDAuMDAxMzkzLCAwLjAwMTM5MyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjI2MTY1ODsKLSAgICBmdW5jdGlvbiA6ICIoIShBIEIpKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzE5MTYsIDAuMTU4OTI0LCAwLjI4NTY0MywgMC4zNzYwMTUsIDAuNTIwODQ0LCAwLjY0NzQxNCwgMC44Mjg0NyIsIFwKLSAgICAgICAgICAiMC4wNDM1NywgMC4xNzAxMTgsIDAuMjk2NzUzLCAwLjM4NzI0MywgMC41MzE5NCwgMC42NTg3NDYsIDAuODM5NzEzIiwgXAotICAgICAgICAgICIwLjA1ODI1MiwgMC4xODQ4NjEsIDAuMzExNTQxLCAwLjQwMTkzNiwgMC41NDQwNTEsIDAuNjcwNjg0LCAwLjg1MTgyNiIsIFwKLSAgICAgICAgICAiMC4wNzMxMTcsIDAuMTk5MzMzLCAwLjMyNjA0NSwgMC40MTY0NzksIDAuNTYxMTA4LCAwLjY4Mzg1OCwgMC44NjQ3MTEiLCBcCi0gICAgICAgICAgIjAuMDg2NzQxLCAwLjIxNDIwOCwgMC4zNDA1NjYsIDAuNDMwOTU1LCAwLjU3NTYsIDAuNzAyMjY4LCAwLjg4MjE2NCIsIFwKLSAgICAgICAgICAiMC4xMDU5MDYsIDAuMjM3OTMyLCAwLjM2NDEzOCwgMC40NTQyMjgsIDAuNTk4ODk3LCAwLjcyNTQ5LCAwLjkwNjM3OSIsIFwKLSAgICAgICAgICAiMC4xMjEwODMsIDAuMjU5MDkzLCAwLjM4NDg1NiwgMC40NzQ3NTgsIDAuNjE5NCwgMC43NDU5MjIsIDAuOTI2NjU0Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU0MDY1LCAwLjMxMTI4NiwgMC41NjgzNywgMC43NTE3MjcsIDEuMDQ1NzYsIDEuMzAyNzIsIDEuNjcwMTUiLCBcCi0gICAgICAgICAgIjAuMDU0NjE4LCAwLjMxMTI1OSwgMC41NjgzOTgsIDAuNzUyMjUsIDEuMDQ1NjIsIDEuMzAyOSwgMS42NzAyIiwgXAotICAgICAgICAgICIwLjA1OTQ0NywgMC4zMTE0MywgMC41NjgzODgsIDAuNzUxNzI3LCAxLjA0NjE3LCAxLjMwMjQ3LCAxLjY3MDE3IiwgXAotICAgICAgICAgICIwLjA2NjQwMSwgMC4zMTE0NTksIDAuNTY4MzYsIDAuNzUyMzY3LCAxLjA0NTU1LCAxLjMwMjQ2LCAxLjY3MDUiLCBcCi0gICAgICAgICAgIjAuMDc0NzE4LCAwLjMxMjQ3NSwgMC41NjgzMTUsIDAuNzUyMzI1LCAxLjA0NTU0LCAxLjMwMjQ4LCAxLjY3MDE1IiwgXAotICAgICAgICAgICIwLjA4OTgxMiwgMC4zMTY5MTYsIDAuNTY4NDczLCAwLjc1MjAyOCwgMS4wNDU2NiwgMS4zMDI0OCwgMS42Njk5MiIsIFwKLSAgICAgICAgICAiMC4xMDI4OTMsIDAuMzIyNTYzLCAwLjU2OTkzNSwgMC43NTIwNDUsIDEuMDQ1NzMsIDEuMzAyODIsIDEuNjY5NjEiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjkwOTcsIDAuMzU1OTgxLCAwLjY0Mjk5MiwgMC44NDc4MSwgMS4xNzUwNywgMS40NjI3NywgMS44NzE3NyIsIFwKLSAgICAgICAgICAiMC4wODAyNywgMC4zNjc1NTMsIDAuNjU0NDI4LCAwLjg1OTA0NywgMS4xODc1MiwgMS40NzM5NSwgMS44ODMyOSIsIFwKLSAgICAgICAgICAiMC4wOTM1MjMsIDAuMzgxMTM5LCAwLjY2ODI5NiwgMC44NzI4MDMsIDEuMjAwNzUsIDEuNDg3MzQsIDEuODk3NDEiLCBcCi0gICAgICAgICAgIjAuMTA2NzkzLCAwLjM5NDY0NywgMC42ODE2OTcsIDAuODg2NTkzLCAxLjIxNDMsIDEuNTAxOTksIDEuOTEwNzciLCBcCi0gICAgICAgICAgIjAuMTIwMDQ3LCAwLjQwODE5LCAwLjY5NTI2MiwgMC44OTk5MjEsIDEuMjI4MTYsIDEuNTE1MzMsIDEuOTIzOTIiLCBcCi0gICAgICAgICAgIjAuMTQxMzIzLCAwLjQyOTU3OSwgMC43MTY3NjIsIDAuOTIxNDkyLCAxLjI0OTIxLCAxLjUzNjAzLCAxLjk0NTc4IiwgXAotICAgICAgICAgICIwLjE1OTA2MiwgMC40NDc0NDMsIDAuNzM1NDg1LCAwLjk0MDY4NywgMS4yNjgxNywgMS41NTQ5OSwgMS45NjUwMiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExMDY3NiwgMC42NjIyOTgsIDEuMjA4NzMsIDEuNTk5NTcsIDIuMjM3MjMsIDIuNzc5NSwgMy41NzQ4NiIsIFwKLSAgICAgICAgICAiMC4xMTA2NTYsIDAuNjYxNDY0LCAxLjIwOTYyLCAxLjYwNjQ1LCAyLjIyNzcsIDIuNzkyLCAzLjU2NDExIiwgXAotICAgICAgICAgICIwLjExMDg2OSwgMC42NjE1MTcsIDEuMjA4NTgsIDEuNjA2MDIsIDIuMjI3MTQsIDIuNzc4ODksIDMuNTYwMTgiLCBcCi0gICAgICAgICAgIjAuMTEyOTEyLCAwLjY2MjMyOCwgMS4yMDc5NiwgMS42MDIzMywgMi4yMjcxNiwgMi43NzU3MSwgMy41NzQ3NyIsIFwKLSAgICAgICAgICAiMC4xMTYxOTMsIDAuNjYwNTM3LCAxLjIwOTk0LCAxLjYwNjMxLCAyLjIyNjQxLCAyLjc3OTQ2LCAzLjU3NDI0IiwgXAotICAgICAgICAgICIwLjEyMzMzLCAwLjY2MDU3NCwgMS4yMDc5MiwgMS42MDczNywgMi4yMzY4NywgMi43Nzg5MiwgMy41NzM2NCIsIFwKLSAgICAgICAgICAiMC4xMzEwNzUsIDAuNjYyMjA0LCAxLjIxMjYsIDEuNTk5OTcsIDIuMjM2MiwgMi43ODk1NywgMy41NjE0OCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzMDAzOSwgMC4xNTgwMzQsIDAuMjg2MDcyLCAwLjM3NzU0MiwgMC41MjM3NiwgMC42NTE3MjUsIDAuODM0NzMyIiwgXAotICAgICAgICAgICIwLjA0MTcwNiwgMC4xNjkyODMsIDAuMjk3MzI0LCAwLjM4ODY0MywgMC41MzQ4NTQsIDAuNjYyODE1LCAwLjg0NTU5MiIsIFwKLSAgICAgICAgICAiMC4wNTY0NDksIDAuMTg0NzI0LCAwLjMxMjQ1MywgMC40MDQwMTIsIDAuNTUwNDY5LCAwLjY3ODI0NSwgMC44NjEyNTUiLCBcCi0gICAgICAgICAgIjAuMDcwOTI4LCAwLjE5ODU4NCwgMC4zMjY1NjEsIDAuNDE3OTEsIDAuNTY0MTcxLCAwLjY4ODIxOCwgMC44NzE1NTQiLCBcCi0gICAgICAgICAgIjAuMDg0MTc0LCAwLjIxMzM5OCwgMC4zNDEwMjYsIDAuNDMyNDM4LCAwLjU3ODU4MywgMC43MDY1NzIsIDAuODg4MDM0IiwgXAotICAgICAgICAgICIwLjEwMjcwMiwgMC4yMzc1MDIsIDAuMzY0NjE2LCAwLjQ1NTY3MSwgMC42MDE4MDgsIDAuNzI5NzU3LCAwLjkxMjU4OSIsIFwKLSAgICAgICAgICAiMC4xMTcxNjIsIDAuMjU4MTY1LCAwLjM4NTI2NSwgMC40NzYxMTcsIDAuNjIyMjUyLCAwLjc1MDE0OCwgMC45MzI4MTciKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTIwNTksIDAuMzEyNjM4LCAwLjU3MTcxOCwgMC43NTczNjUsIDEuMDU0NDEsIDEuMzE0MzUsIDEuNjg1OSIsIFwKLSAgICAgICAgICAiMC4wNTI3ODgsIDAuMzEyMDk1LCAwLjU3MTcxNywgMC43NTcyMSwgMS4wNTcwNywgMS4zMTc3LCAxLjY4OTIzIiwgXAotICAgICAgICAgICIwLjA1NzgzMiwgMC4zMTE4ODksIDAuNTczMiwgMC43NTcyMiwgMS4wNTQzOSwgMS4zMTcyNywgMS42ODU1IiwgXAotICAgICAgICAgICIwLjA2NTI4MywgMC4zMTE5MzUsIDAuNTcxNzIsIDAuNzU5MDE0LCAxLjA1Mzg4LCAxLjMxNzI0LCAxLjY4NjI2IiwgXAotICAgICAgICAgICIwLjA3Mzk4NiwgMC4zMTI4NzYsIDAuNTcxNjIyLCAwLjc1NzkzLCAxLjA1NjYxLCAxLjMxMzkzLCAxLjY4OTMxIiwgXAotICAgICAgICAgICIwLjA4OTUyOSwgMC4zMTg2ODMsIDAuNTcxOTc4LCAwLjc1OTAzMiwgMS4wNTQwOSwgMS4zMTM5MywgMS42ODQ4OSIsIFwKLSAgICAgICAgICAiMC4xMDI4ODEsIDAuMzIzNzU4LCAwLjU3MzI1NCwgMC43NTg2OTYsIDEuMDUzOTIsIDEuMzE0MzEsIDEuNjg1MjEiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjQ3MjIsIDAuMzUxNjQ3LCAwLjYzODI1NCwgMC44NDM2MjksIDEuMTcwOTMsIDEuNDU3NTEsIDEuODY3NzEiLCBcCi0gICAgICAgICAgIjAuMDc0NTg0LCAwLjM2MTk3MywgMC42NDg3NzUsIDAuODUzNTIxLCAxLjE4MTExLCAxLjQ2Nzg0LCAxLjg3NzgiLCBcCi0gICAgICAgICAgIjAuMDg3Mzg3LCAwLjM3NTA2NCwgMC42NjIyMSwgMC44NjY4MTEsIDEuMTk0NzMsIDEuNDgxNCwgMS44OTE0OCIsIFwKLSAgICAgICAgICAiMC4xMDEwOTcsIDAuMzg4OSwgMC42NzU3NzUsIDAuODgwOTc2LCAxLjIwODc0LCAxLjQ5NTQ4LCAxLjkwNTI5IiwgXAotICAgICAgICAgICIwLjExNDUzMywgMC40MDEzNywgMC42ODgzMjcsIDAuODkzNzYzLCAxLjIyMTE1LCAxLjUwODE0LCAxLjkxNzY5IiwgXAotICAgICAgICAgICIwLjEzNjAyNywgMC40MjI1NDMsIDAuNzA5NTEsIDAuOTE0NjEyLCAxLjI0Mjk1LCAxLjUyOTE3LCAxLjkzOTY2IiwgXAotICAgICAgICAgICIwLjE1NDAzNCwgMC40NDEwMjUsIDAuNzI3OTkyLCAwLjkzMzE5MSwgMS4yNjA3MywgMS41NDg0NSwgMS45NTcxMSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExMDI0LCAwLjY2MjY0LCAxLjIxMjY2LCAxLjYwMjEzLCAyLjI0MDA5LCAyLjc5MDgsIDMuNTU5OTIiLCBcCi0gICAgICAgICAgIjAuMTEwNTUxLCAwLjY2MTY0NiwgMS4yMTI1MiwgMS42MDYyNSwgMi4yMzU5MSwgMi43ODcsIDMuNTc0NjUiLCBcCi0gICAgICAgICAgIjAuMTExOTA4LCAwLjY2MTc2MSwgMS4yMDc2NiwgMS42MDYsIDIuMjM5OCwgMi43ODI2NywgMy41NTk4NCIsIFwKLSAgICAgICAgICAiMC4xMTU4NDIsIDAuNjYyNDI4LCAxLjIxMzI5LCAxLjU5OTczLCAyLjIzMDU2LCAyLjc3NjE3LCAzLjU1OTkiLCBcCi0gICAgICAgICAgIjAuMTIxNzI1LCAwLjY2MTYwMSwgMS4yMTMxLCAxLjYwMjAzLCAyLjIzNDUxLCAyLjc3NjE0LCAzLjU2MDE2IiwgXAotICAgICAgICAgICIwLjEzMzE2NiwgMC42NjIxMjUsIDEuMjE0MjIsIDEuNTk5OTYsIDIuMjI5NjYsIDIuNzgxMSwgMy41NjQ5NCIsIFwKLSAgICAgICAgICAiMC4xNDQxMDQsIDAuNjYyNjA3LCAxLjIxMjYzLCAxLjU5OTk3LCAyLjIzODc2LCAyLjc3OTI1LCAzLjU3NDM5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDU0NjQsIDAuMDA1NDY4LCAwLjAwNTQ2OCwgMC4wMDU0NjksIDAuMDA1NDY5LCAwLjAwNTQ2OCwgMC4wMDU0NjciLCBcCi0gICAgICAgICAgIjAuMDA1NDA2LCAwLjAwNTQzOSwgMC4wMDU0NDMsIDAuMDA1NDQ0LCAwLjAwNTQ0NCwgMC4wMDU0NDQsIDAuMDA1NDQ1IiwgXAotICAgICAgICAgICIwLjAwNTM2OSwgMC4wMDU0MjcsIDAuMDA1NDM0LCAwLjAwNTQzNiwgMC4wMDU0MzYsIDAuMDA1NDM0LCAwLjAwNTQzNyIsIFwKLSAgICAgICAgICAiMC4wMDUzNDUsIDAuMDA1NDEzLCAwLjAwNTQyOSwgMC4wMDU0MzEsIDAuMDA1NDM0LCAwLjAwNTQzMSwgMC4wMDU0MzIiLCBcCi0gICAgICAgICAgIjAuMDA1MzI5LCAwLjAwNTQxMSwgMC4wMDU0MjQsIDAuMDA1NDI5LCAwLjAwNTQzMiwgMC4wMDU0MzMsIDAuMDA1NDM0IiwgXAotICAgICAgICAgICIwLjAwNTMxNiwgMC4wMDU0MDEsIDAuMDA1NDE3LCAwLjAwNTQyMywgMC4wMDU0MjksIDAuMDA1NDMxLCAwLjAwNTQzMyIsIFwKLSAgICAgICAgICAiMC4wMDUzMSwgMC4wMDUzOTQsIDAuMDA1NDEzLCAwLjAwNTQxMywgMC4wMDU0MjQsIDAuMDA1NDI3LCAwLjAwNTQyOSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxMTMzLCAwLjAwMTE1NCwgMC4wMDExNTYsIDAuMDAxMTU3LCAwLjAwMTE1NywgMC4wMDExNTgsIDAuMDAxMTU4IiwgXAotICAgICAgICAgICIwLjAwMTA1MSwgMC4wMDExMzYsIDAuMDAxMTQ3LCAwLjAwMTE1LCAwLjAwMTE1MywgMC4wMDExNTQsIDAuMDAxMTU1IiwgXAotICAgICAgICAgICIwLjAwMDk4NiwgMC4wMDExMTUsIDAuMDAxMTM0LCAwLjAwMTE0LCAwLjAwMTE0NiwgMC4wMDExNDgsIDAuMDAxMTUxIiwgXAotICAgICAgICAgICIwLjAwMDk0NSwgMC4wMDEwOTYsIDAuMDAxMTIyLCAwLjAwMTEzMSwgMC4wMDExMzksIDAuMDAxMTQzLCAwLjAwMTE0NiIsIFwKLSAgICAgICAgICAiMC4wMDA5MTksIDAuMDAxMDgsIDAuMDAxMTEzLCAwLjAwMTEyMywgMC4wMDExMzMsIDAuMDAxMTM4LCAwLjAwMTE0MyIsIFwKLSAgICAgICAgICAiMC4wMDA4OTIsIDAuMDAxMDU1LCAwLjAwMTA5NiwgMC4wMDExMSwgMC4wMDExMjMsIDAuMDAxMTMsIDAuMDAxMTM2IiwgXAotICAgICAgICAgICIwLjAwMDg3NSwgMC4wMDEwMzQsIDAuMDAxMDgzLCAwLjAwMTA5OSwgMC4wMDExMTUsIDAuMDAxMTIzLCAwLjAwMTEzMSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0MjQxLCAwLjAwNDI1OCwgMC4wMDQyNiwgMC4wMDQyNTksIDAuMDA0MjYsIDAuMDA0MjYsIDAuMDA0MjYiLCBcCi0gICAgICAgICAgIjAuMDA0MTk0LCAwLjAwNDI2NywgMC4wMDQyNzUsIDAuMDA0Mjc3LCAwLjAwNDI2OSwgMC4wMDQyNzksIDAuMDA0MjcxIiwgXAotICAgICAgICAgICIwLjAwNDE0MiwgMC4wMDQyNTUsIDAuMDA0MjY5LCAwLjAwNDI3MywgMC4wMDQyNzcsIDAuMDA0Mjc5LCAwLjAwNDI4MSIsIFwKLSAgICAgICAgICAiMC4wMDQxMDMsIDAuMDA0MjM3LCAwLjAwNDI2MywgMC4wMDQyNjksIDAuMDA0Mjc1LCAwLjAwNDI3MywgMC4wMDQyNzkiLCBcCi0gICAgICAgICAgIjAuMDA0MDc3LCAwLjAwNDIzMSwgMC4wMDQyNTQsIDAuMDA0MjY0LCAwLjAwNDI2OSwgMC4wMDQyNzUsIDAuMDA0Mjc4IiwgXAotICAgICAgICAgICIwLjAwNDA0NiwgMC4wMDQyMTMsIDAuMDA0MjQxLCAwLjAwNDI1MywgMC4wMDQyNjMsIDAuMDA0MjY5LCAwLjAwNDI3MyIsIFwKLSAgICAgICAgICAiMC4wMDQwNDMsIDAuMDA0MjAxLCAwLjAwNDIzNiwgMC4wMDQyMzksIDAuMDA0MjU5LCAwLjAwNDI2NCwgMC4wMDQyNzEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTEzLCAwLjAwMTE1NiwgMC4wMDExNTgsIDAuMDAxMTU5LCAwLjAwMTE2LCAwLjAwMTE2LCAwLjAwMTE2MSIsIFwKLSAgICAgICAgICAiMC4wMDEwMjksIDAuMDAxMTM0LCAwLjAwMTE0NiwgMC4wMDExNSwgMC4wMDExNTMsIDAuMDAxMTU1LCAwLjAwMTE1NiIsIFwKLSAgICAgICAgICAiMC4wMDA5NTUsIDAuMDAxMTA5LCAwLjAwMTEzMiwgMC4wMDExMzksIDAuMDAxMTQ1LCAwLjAwMTE0OSwgMC4wMDExNTIiLCBcCi0gICAgICAgICAgIjAuMDAwOTE2LCAwLjAwMTA4OSwgMC4wMDExMTksIDAuMDAxMTI5LCAwLjAwMTEzOCwgMC4wMDExNDMsIDAuMDAxMTQ3IiwgXAotICAgICAgICAgICIwLjAwMDg5MiwgMC4wMDEwNjgsIDAuMDAxMTA2LCAwLjAwMTExOSwgMC4wMDExMywgMC4wMDExMzYsIDAuMDAxMTQyIiwgXAotICAgICAgICAgICIwLjAwMDg3MywgMC4wMDEwNDEsIDAuMDAxMDg4LCAwLjAwMTEwNCwgMC4wMDExMTksIDAuMDAxMTI3LCAwLjAwMTEzNCIsIFwKLSAgICAgICAgICAiMC4wMDA4NjksIDAuMDAxMDIyLCAwLjAwMTA3NCwgMC4wMDEwOTIsIDAuMDAxMTEsIDAuMDAxMTE5LCAwLjAwMTEyOCIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IE5BTkQyWEwgKgotICogLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoTkFORDJYTCkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjAzODE1NjI7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDU0NDU5NjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA1NDQ1OTY7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNTQzMzM3OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDE2NSwgMC4wMDAxNjUsIDAuMDAwMTY1LCAwLjAwMDE2NSwgMC4wMDAxNjUsIDAuMDAwMTY1LCAwLjAwMDE2NSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDE3LCAwLjAwMDE2NywgMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY2Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2MDkwMzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MDg2NjY7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjA5MDM7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMDc3LCAwLjAwMDA3NywgMC4wMDAwNzcsIDAuMDAwMDc3LCAwLjAwMDA3NywgMC4wMDAwNzcsIDAuMDAwMDc3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMTg4LCAwLjAwMDE4OCwgMC4wMDAxODgsIDAuMDAwMTg4LCAwLjAwMDE4OCwgMC4wMDAxODgsIDAuMDAwMTg4Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMDM2MTg0OTsKLSAgICBmdW5jdGlvbiA6ICIoIShBIEIpKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTQyNzk1LCAwLjE2ODA3OCwgMC4zOTUzNzIsIDAuNzc0MTQ4LCAxLjE1Mjg4LCAyLjAzNjg5LCAyLjU0MjIzIiwgXAotICAgICAgICAgICIwLjE1Mzk5MSwgMC4xNzkyODIsIDAuNDA2NzIxLCAwLjc4NTY0OCwgMS4xNjQ2NiwgMi4wNDg3LCAyLjU1MzQzIiwgXAotICAgICAgICAgICIwLjE2ODY5OSwgMC4xOTM5NzYsIDAuNDIwNzA1LCAwLjc5NzYzNCwgMS4xNzY0NSwgMi4wNjAzNSwgMi41NjQ4NiIsIFwKLSAgICAgICAgICAiMC4xODMzMzYsIDAuMjA3NzYxLCAwLjQzNTc4MSwgMC44MTA3MTUsIDEuMTg5NDUsIDIuMDcyOTYsIDIuNTc4NjYiLCBcCi0gICAgICAgICAgIjAuMTk4MDYyLCAwLjIyMzI0NiwgMC40NTAxNjIsIDAuODI0NDA0LCAxLjIwMzE0LCAyLjA4NzA4LCAyLjU5MjQ4IiwgXAotICAgICAgICAgICIwLjIyMjA3NSwgMC4yNDY4OTcsIDAuNDczNDg5LCAwLjg0NzU2LCAxLjIyNjYzLCAyLjEwOTc5LCAyLjYxNTQyIiwgXAotICAgICAgICAgICIwLjI0MTczNCwgMC4yNjc5OTgsIDAuNDkyNjgyLCAwLjg3MjYyOCwgMS4yNDY1NCwgMi4xMzEzMSwgMi42MzUwOSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yNzgzMTYsIDAuMzI5NjA2LCAwLjc4OTYzNSwgMS41NTc2NCwgMi4zMjQwOCwgNC4xMTU1MywgNS4xMzk2OCIsIFwKLSAgICAgICAgICAiMC4yNzgzNSwgMC4zMjk0OTEsIDAuNzg5OTk0LCAxLjU1NzMxLCAyLjMyNDc2LCA0LjExNTUzLCA1LjEzOTQ0IiwgXAotICAgICAgICAgICIwLjI3ODI4MiwgMC4zMjk2MjUsIDAuNzg5OTk4LCAxLjU1NzE2LCAyLjMyNDU1LCA0LjExNTU1LCA1LjEzODY3IiwgXAotICAgICAgICAgICIwLjI3ODQ2NSwgMC4zMjk2MiwgMC43ODk4ODEsIDEuNTU3NzQsIDIuMzI1MTcsIDQuMTE0MTcsIDUuMTM5NjMiLCBcCi0gICAgICAgICAgIjAuMjgwMTM2LCAwLjMzMDI1NCwgMC43ODk2MzgsIDEuNTU3NjcsIDIuMzI1MjMsIDQuMTE1NDQsIDUuMTM5NTEiLCBcCi0gICAgICAgICAgIjAuMjg1NDMsIDAuMzM0NDU4LCAwLjc4OTY3MSwgMS41NTY4MSwgMi4zMjQ3LCA0LjExNDA1LCA1LjEzODg0IiwgXAotICAgICAgICAgICIwLjI5Mjg0OCwgMC4zMzk3MzQsIDAuNzg5ODI3LCAxLjU1NzMxLCAyLjMyNDM4LCA0LjExNTU3LCA1LjEzODYxIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMyOTY1LCAwLjM4ODc3OCwgMC45MTk4MzEsIDEuODA0ODQsIDIuNjg5MzUsIDQuNzUxNjQsIDUuOTMwMzEiLCBcCi0gICAgICAgICAgIjAuMzQxNzA5LCAwLjQwMDY0NywgMC45MzIxNDUsIDEuODE3MiwgMi43MDA1NiwgNC43NjM4MiwgNS45NDIzIiwgXAotICAgICAgICAgICIwLjM1NTQ3NCwgMC40MTQ3ODQsIDAuOTQ1NzMyLCAxLjgzMTYsIDIuNzE1MjgsIDQuNzc3ODQsIDUuOTU2MzIiLCBcCi0gICAgICAgICAgIjAuMzY5MjQ0LCAwLjQyODQ3MiwgMC45NjAxMSwgMS44NDQ0LCAyLjcyOTA2LCA0Ljc5MTY0LCA1Ljk3MDI5IiwgXAotICAgICAgICAgICIwLjM4MzAxNSwgMC40NDIxMjEsIDAuOTczOSwgMS44NTgzNSwgMi43NDI5NiwgNC44MDU0NSwgNS45ODQxOCIsIFwKLSAgICAgICAgICAiMC40MDUwMDMsIDAuNDY0MDU4LCAwLjk5NTUyNSwgMS44ODAxMSwgMi43NjUxOCwgNC44Mjc3LCA2LjAwNjM1IiwgXAotICAgICAgICAgICIwLjQyNDA2MywgMC40ODMyODEsIDEuMDE0OTcsIDEuODk5ODIsIDIuNzg0NTgsIDQuODQ3MDksIDYuMDI1NjMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuNjA4MzQyLCAwLjcxOTkxMSwgMS43MzAyMywgMy40MTY1OCwgNS4xMDI4NCwgOS4wMjEyNiwgMTEuMjU5NSIsIFwKLSAgICAgICAgICAiMC42MDU5MDksIDAuNzIyMTA1LCAxLjczMjUzLCAzLjQyMDQ2LCA1LjEwODIsIDkuMDE5MDIsIDExLjI1ODUiLCBcCi0gICAgICAgICAgIjAuNjA4NDY3LCAwLjcxOTQ1NywgMS43MzMxMSwgMy40MjA3NywgNS4xMDg4NCwgOS4wMjAwNCwgMTEuMjU4NyIsIFwKLSAgICAgICAgICAiMC42MDgzMTEsIDAuNzIwMDgyLCAxLjczMjMzLCAzLjQyOTY0LCA1LjEwNzA2LCA5LjAxODg1LCAxMS4yNTk0IiwgXAotICAgICAgICAgICIwLjYwODkyMiwgMC43MjE4NTgsIDEuNzMzMDYsIDMuNDI5NzYsIDUuMTA3ODMsIDkuMDIwNzcsIDExLjI1OTUiLCBcCi0gICAgICAgICAgIjAuNjA4NjczLCAwLjcyMTIzNCwgMS43MzMxLCAzLjQzMTIsIDUuMTAzMjUsIDkuMDE5ODMsIDExLjI1OTQiLCBcCi0gICAgICAgICAgIjAuNjA2Nzg2LCAwLjcyMTI0NywgMS43Mjk3LCAzLjQxNzI2LCA1LjEwNjEyLCA5LjAxOTU4LCAxMS4yNTkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTQwMjg1LCAwLjE2NTU1NCwgMC4zOTMwNTEsIDAuNzcyMDExLCAxLjE1MDI0LCAyLjAzNDI4LCAyLjUzOTQ2IiwgXAotICAgICAgICAgICIwLjE1MTg5NCwgMC4xNzcxNzMsIDAuNDA0NTc5LCAwLjc4MzMzMSwgMS4xNjI2NSwgMi4wNDcwNSwgMi41NTEyMyIsIFwKLSAgICAgICAgICAiMC4xNjYyNjYsIDAuMTkxNTQ0LCAwLjQxODM2OSwgMC43OTUwMDEsIDEuMTczOTQsIDIuMDU3OTMsIDIuNTYyMzgiLCBcCi0gICAgICAgICAgIjAuMTgwODg3LCAwLjIwNTgwMSwgMC40MzMzMSwgMC44MDgxMDUsIDEuMTg2OCwgMi4wNzA0NSwgMi41NzYwMyIsIFwKLSAgICAgICAgICAiMC4xOTU5OTEsIDAuMjIwODA1LCAwLjQ0NzYzMywgMC44MjE5MzgsIDEuMjAwNTUsIDIuMDg0NTUsIDIuNTg5ODYiLCBcCi0gICAgICAgICAgIjAuMjE5NjA2LCAwLjI0NDg5NCwgMC40NzA5NCwgMC44NDUwNzIsIDEuMjI0MiwgMi4xMDcyOCwgMi42MTI3OSIsIFwKLSAgICAgICAgICAiMC4yNDAyODYsIDAuMjY1NTAxLCAwLjQ5MDg3NSwgMC44NzAxMzIsIDEuMjQ0LCAyLjEyOTE2LCAyLjYzMjQ2Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI3NTg5MSwgMC4zMjY4MjYsIDAuNzg3OTA0LCAxLjU2NDUsIDIuMzI4NTUsIDQuMTE2MTQsIDUuMTQxOTUiLCBcCi0gICAgICAgICAgIjAuMjc1NTc3LCAwLjMyNzU2NiwgMC43ODc1NzcsIDEuNTU1NjQsIDIuMzI0NjIsIDQuMTE3MiwgNS4xMzkzOSIsIFwKLSAgICAgICAgICAiMC4yNzU1NjksIDAuMzI3MDc2LCAwLjc4NzUzMywgMS41NTY3LCAyLjMyMzU0LCA0LjExNTI5LCA1LjEzNzcyIiwgXAotICAgICAgICAgICIwLjI3NjUzMSwgMC4zMjY3MDcsIDAuNzg3NTU3LCAxLjU1ODk3LCAyLjMyODU1LCA0LjExNDM0LCA1LjE0MjIiLCBcCi0gICAgICAgICAgIjAuMjc4MjQ0LCAwLjMyNzgxMSwgMC43ODc0MTEsIDEuNTU1NjcsIDIuMzI4NjUsIDQuMTE1NDksIDUuMTQwNzIiLCBcCi0gICAgICAgICAgIjAuMjgzMDU4LCAwLjMzMTg2MiwgMC43ODczNzYsIDEuNTU1NzQsIDIuMzIzMywgNC4xMTQzNCwgNS4xNDI1MSIsIFwKLSAgICAgICAgICAiMC4yODk2OSwgMC4zMzc4NywgMC43ODgxNjEsIDEuNTU1NDYsIDIuMzIyNjcsIDQuMTE2OTgsIDUuMTM4MDIiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzI0ODgyLCAwLjM4MzkzOCwgMC45MTQ2NzgsIDEuNzk5MTEsIDIuNjg0MjQsIDQuNzQ2OTIsIDUuOTI1NDgiLCBcCi0gICAgICAgICAgIjAuMzM1NTMzLCAwLjM5NDcyNSwgMC45MjUzOTYsIDEuODEwODUsIDIuNjk1MzQsIDQuNzU3NywgNS45MzYyOSIsIFwKLSAgICAgICAgICAiMC4zNDg4NjUsIDAuNDA3OTA3LCAwLjkzODk0MSwgMS44MjM1OCwgMi43MDg5MywgNC43NzEyMSwgNS45NDk4NCIsIFwKLSAgICAgICAgICAiMC4zNjIyODIsIDAuNDIxMzkzLCAwLjk1MjU0NCwgMS44Mzg0LCAyLjcyMjIyLCA0Ljc4NDcyLCA1Ljk2MzM2IiwgXAotICAgICAgICAgICIwLjM3NTY4NiwgMC40MzQ4MzIsIDAuOTY2MjM5LCAxLjg1MDQ3LCAyLjczNjAxLCA0Ljc5ODI5LCA1Ljk3Njg5IiwgXAotICAgICAgICAgICIwLjM5NjkyNywgMC40NTYyNjcsIDAuOTg3NDQ1LCAxLjg3MjgyLCAyLjc1NzQ0LCA0LjgxOTY2LCA1Ljk5ODUyIiwgXAotICAgICAgICAgICIwLjQxNjA0MSwgMC40NzUxNDQsIDEuMDA2MzcsIDEuODkxMTcsIDIuNzc2NjUsIDQuODM4OTEsIDYuMDE3NDUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuNjA4MjgsIDAuNzE5MzYyLCAxLjczNjY0LCAzLjQzMDUzLCA1LjEwNzQ2LCA5LjAyMDc5LCAxMS4yNTg5IiwgXAotICAgICAgICAgICIwLjYwODI4MywgMC43MTg4MTUsIDEuNzM3MTcsIDMuNDE1OTQsIDUuMTA5MDEsIDkuMDE5ODMsIDExLjI1OTUiLCBcCi0gICAgICAgICAgIjAuNjA4MjE0LCAwLjcyMTI2MywgMS43MzIzLCAzLjQzMDc1LCA1LjEwOTA1LCA5LjAxOTEzLCAxMS4yNTk0IiwgXAotICAgICAgICAgICIwLjYwODMyLCAwLjcyMTg5NCwgMS43MzU0NiwgMy40MjE3NiwgNS4xMDE4OSwgOS4wMTkzNSwgMTEuMjU4NyIsIFwKLSAgICAgICAgICAiMC42MDgyMTYsIDAuNzE5NTc3LCAxLjczMDA0LCAzLjQzMDU1LCA1LjEwOTA5LCA5LjAxOTU0LCAxMS4yNTk0IiwgXAotICAgICAgICAgICIwLjYwNTg2MiwgMC43MjEwNjQsIDEuNzM5MTksIDMuNDIyNzMsIDUuMTA1NTUsIDkuMDE5ODMsIDExLjI1ODgiLCBcCi0gICAgICAgICAgIjAuNjA5MjcxLCAwLjcyMTMyNCwgMS43Mzg2NCwgMy40MzA3NSwgNS4xMDQ0MywgOS4wMjA3OCwgMTEuMjU4OCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDkzOCwgMC4wMDA5MzgsIDAuMDAwOTM4LCAwLjAwMDkzOCwgMC4wMDA5MzcsIDAuMDAwOTM3LCAwLjAwMDkzNyIsIFwKLSAgICAgICAgICAiMC4wMDA5MzQsIDAuMDAwOTM0LCAwLjAwMDkzNSwgMC4wMDA5MzUsIDAuMDAwOTM1LCAwLjAwMDkzNCwgMC4wMDA5MzQiLCBcCi0gICAgICAgICAgIjAuMDAwOTMyLCAwLjAwMDkzMywgMC4wMDA5MzQsIDAuMDAwOTM0LCAwLjAwMDkzNCwgMC4wMDA5MzMsIDAuMDAwOTMzIiwgXAotICAgICAgICAgICIwLjAwMDkzMSwgMC4wMDA5MjgsIDAuMDAwOTMzLCAwLjAwMDkzNCwgMC4wMDA5MzMsIDAuMDAwOTMzLCAwLjAwMDkzMyIsIFwKLSAgICAgICAgICAiMC4wMDA5MywgMC4wMDA5MzEsIDAuMDAwOTMzLCAwLjAwMDkzMywgMC4wMDA5MzMsIDAuMDAwOTMzLCAwLjAwMDkzMyIsIFwKLSAgICAgICAgICAiMC4wMDA5MjksIDAuMDAwOTI5LCAwLjAwMDkzMiwgMC4wMDA5MzMsIDAuMDAwOTMzLCAwLjAwMDkzMywgMC4wMDA5MzMiLCBcCi0gICAgICAgICAgIjAuMDAwOTI3LCAwLjAwMDkyOSwgMC4wMDA5MjksIDAuMDAwOTMzLCAwLjAwMDkzMywgMC4wMDA5MzMsIDAuMDAwOTMyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwMjQxLCAwLjAwMDI0MSwgMC4wMDAyNDEsIDAuMDAwMjQxLCAwLjAwMDI0MSwgMC4wMDAyNDEsIDAuMDAwMjQxIiwgXAotICAgICAgICAgICIwLjAwMDIzOCwgMC4wMDAyMzksIDAuMDAwMjQsIDAuMDAwMjQxLCAwLjAwMDI0MSwgMC4wMDAyNDEsIDAuMDAwMjQxIiwgXAotICAgICAgICAgICIwLjAwMDIzNSwgMC4wMDAyMzYsIDAuMDAwMjM5LCAwLjAwMDI0LCAwLjAwMDI0MSwgMC4wMDAyNDEsIDAuMDAwMjQxIiwgXAotICAgICAgICAgICIwLjAwMDIzMiwgMC4wMDAyMzMsIDAuMDAwMjM4LCAwLjAwMDI0LCAwLjAwMDI0LCAwLjAwMDI0MSwgMC4wMDAyNDEiLCBcCi0gICAgICAgICAgIjAuMDAwMjMsIDAuMDAwMjMxLCAwLjAwMDIzNywgMC4wMDAyMzksIDAuMDAwMjQsIDAuMDAwMjQsIDAuMDAwMjQxIiwgXAotICAgICAgICAgICIwLjAwMDIyNiwgMC4wMDAyMjgsIDAuMDAwMjM1LCAwLjAwMDIzOCwgMC4wMDAyMzksIDAuMDAwMjQsIDAuMDAwMjQiLCBcCi0gICAgICAgICAgIjAuMDAwMjIzLCAwLjAwMDIyNSwgMC4wMDAyMzQsIDAuMDAwMjM3LCAwLjAwMDIzOSwgMC4wMDAyNCwgMC4wMDAyNCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDc1OSwgMC4wMDA3NTksIDAuMDAwNzU5LCAwLjAwMDc1OSwgMC4wMDA3NTksIDAuMDAwNzU5LCAwLjAwMDc1OSIsIFwKLSAgICAgICAgICAiMC4wMDA3NiwgMC4wMDA3NiwgMC4wMDA3NjEsIDAuMDAwNzYyLCAwLjAwMDc2MiwgMC4wMDA3NjIsIDAuMDAwNzYyIiwgXAotICAgICAgICAgICIwLjAwMDc1OCwgMC4wMDA3NTksIDAuMDAwNzYxLCAwLjAwMDc2MiwgMC4wMDA3NjIsIDAuMDAwNzYyLCAwLjAwMDc2MiIsIFwKLSAgICAgICAgICAiMC4wMDA3NTYsIDAuMDAwNzU2LCAwLjAwMDc2LCAwLjAwMDc2MSwgMC4wMDA3NjIsIDAuMDAwNzYyLCAwLjAwMDc2MiIsIFwKLSAgICAgICAgICAiMC4wMDA3NTUsIDAuMDAwNzU2LCAwLjAwMDc2LCAwLjAwMDc2MSwgMC4wMDA3NjIsIDAuMDAwNzYyLCAwLjAwMDc2MyIsIFwKLSAgICAgICAgICAiMC4wMDA3NTIsIDAuMDAwNzUzLCAwLjAwMDc1OSwgMC4wMDA3NjEsIDAuMDAwNzYxLCAwLjAwMDc2MiwgMC4wMDA3NjIiLCBcCi0gICAgICAgICAgIjAuMDAwNzUsIDAuMDAwNzUyLCAwLjAwMDc1NiwgMC4wMDA3NiwgMC4wMDA3NjEsIDAuMDAwNzYyLCAwLjAwMDc2MiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDI0MSwgMC4wMDAyNDEsIDAuMDAwMjQxLCAwLjAwMDI0MSwgMC4wMDAyNDEsIDAuMDAwMjQxLCAwLjAwMDI0MSIsIFwKLSAgICAgICAgICAiMC4wMDAyMzcsIDAuMDAwMjM4LCAwLjAwMDI0LCAwLjAwMDI0MSwgMC4wMDAyNDEsIDAuMDAwMjQxLCAwLjAwMDI0MSIsIFwKLSAgICAgICAgICAiMC4wMDAyMzQsIDAuMDAwMjM1LCAwLjAwMDIzOCwgMC4wMDAyNCwgMC4wMDAyNCwgMC4wMDAyNDEsIDAuMDAwMjQxIiwgXAotICAgICAgICAgICIwLjAwMDIzLCAwLjAwMDIzMiwgMC4wMDAyMzcsIDAuMDAwMjM5LCAwLjAwMDI0LCAwLjAwMDI0MSwgMC4wMDAyNDEiLCBcCi0gICAgICAgICAgIjAuMDAwMjI3LCAwLjAwMDIyOSwgMC4wMDAyMzYsIDAuMDAwMjM5LCAwLjAwMDIzOSwgMC4wMDAyNCwgMC4wMDAyNCIsIFwKLSAgICAgICAgICAiMC4wMDAyMjQsIDAuMDAwMjI2LCAwLjAwMDIzNCwgMC4wMDAyMzcsIDAuMDAwMjM5LCAwLjAwMDI0LCAwLjAwMDI0IiwgXAotICAgICAgICAgICIwLjAwMDIyMSwgMC4wMDAyMjMsIDAuMDAwMjMyLCAwLjAwMDIzNywgMC4wMDAyMzgsIDAuMDAwMjM5LCAwLjAwMDI0Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogTkFORDNYMiAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChOQU5EM1gyKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMTk2NTQzOwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE3MzQxMjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE3MzQxMjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE3MjgzMzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA2MTIsIDAuMDAwNjEyLCAwLjAwMDYxMSwgMC4wMDA2MTEsIDAuMDAwNjExLCAwLjAwMDYxMSwgMC4wMDA2MTEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA2MTMsIDAuMDAwNjE0LCAwLjAwMDYxNCwgMC4wMDA2MTQsIDAuMDAwNjE0LCAwLjAwMDYxNCwgMC4wMDA2MTQiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTY1NjY7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNjU2NjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE2NTI2MjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA2MTIsIDAuMDAwNjEyLCAwLjAwMDYxMSwgMC4wMDA2MTIsIDAuMDAwNjExLCAwLjAwMDYxMSwgMC4wMDA2MTEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA2MTUsIDAuMDAwNjE2LCAwLjAwMDYxNSwgMC4wMDA2MTYsIDAuMDAwNjE2LCAwLjAwMDYxNiwgMC4wMDA2MTYiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEMpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTUxOTM7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNTE3NzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE1MTkzOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDMxMSwgMC4wMDAzMSwgMC4wMDAzMSwgMC4wMDAzMSwgMC4wMDAzMSwgMC4wMDAzMSwgMC4wMDAzMSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDY5NSwgMC4wMDA2OTYsIDAuMDAwNjk3LCAwLjAwMDY5NiwgMC4wMDA2OTYsIDAuMDAwNjk2LCAwLjAwMDY5NiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjA3Njg3NTI7Ci0gICAgZnVuY3Rpb24gOiAiKCEoKEEgQikgQykpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTQ1MTIsIDAuMjM0Mjk5LCAwLjM3NzY0MSwgMC41NTY3NDMsIDAuNzM1NzU2LCAwLjkxNDU4OCwgMS4wOTM1OSIsIFwKLSAgICAgICAgICAiMC4wNjYwMiwgMC4yNDU4MzUsIDAuMzg5MDcyLCAwLjU2ODI3NSwgMC43NDczNTksIDAuOTI2MTM5LCAxLjEwNTUxIiwgXAotICAgICAgICAgICIwLjA4MDg4OSwgMC4yNjAyMDksIDAuNDAyOTg3LCAwLjU4MDA0MywgMC43NTkwMjQsIDAuOTM4MTY3LCAxLjExNjc3IiwgXAotICAgICAgICAgICIwLjA5NTY2NiwgMC4yNzQ3NjUsIDAuNDE4MDUyLCAwLjU5NzEzMiwgMC43NzIxNjgsIDAuOTUxMDY4LCAxLjEzMDE4IiwgXAotICAgICAgICAgICIwLjExMDUxMSwgMC4yODkzODcsIDAuNDMyNTQ2LCAwLjYxMTU3OCwgMC43OTA1MTQsIDAuOTY0Mzc2LCAxLjE0MzUiLCBcCi0gICAgICAgICAgIjAuMTM0NDY2LCAwLjMxMzAxOCwgMC40NTU4NzYsIDAuNjM0ODEyLCAwLjgxMzgwMSwgMC45OTI3NzksIDEuMTY1NDkiLCBcCi0gICAgICAgICAgIjAuMTUzNiwgMC4zMzM3NDgsIDAuNDc2MjE5LCAwLjY1NTIzOSwgMC44MzQxODIsIDEuMDEzMDEsIDEuMTkyMDkiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk4NzcsIDAuNDYyNDA4LCAwLjc1MzUxNCwgMS4xMTY1OCwgMS40Nzk4NywgMS44NDQ1NSwgMi4yMDY0OCIsIFwKLSAgICAgICAgICAiMC4wOTg2NSwgMC40NjIzMjksIDAuNzUzMTI4LCAxLjExNzUyLCAxLjQ4MDI3LCAxLjg0MzA5LCAyLjIwNzE4IiwgXAotICAgICAgICAgICIwLjEwMDU5MSwgMC40NjIzNDcsIDAuNzUzNDU3LCAxLjExNjk3LCAxLjQ4MDkxLCAxLjg0Mzc1LCAyLjIwNjc4IiwgXAotICAgICAgICAgICIwLjEwNTMxOCwgMC40NjIzNjEsIDAuNzUzNjgyLCAxLjExNjYyLCAxLjQ3OTc2LCAxLjg0NDYzLCAyLjIwNzkiLCBcCi0gICAgICAgICAgIjAuMTExNjE5LCAwLjQ2MjI3LCAwLjc1MzY4OCwgMS4xMTY0MywgMS40Nzk3MiwgMS44NDQzNSwgMi4yMDc5OSIsIFwKLSAgICAgICAgICAiMC4xMjI5ODgsIDAuNDYzNTUyLCAwLjc1MzA5MiwgMS4xMTY5MywgMS40ODEwMywgMS44NDMxNSwgMi4yMDY3NSIsIFwKLSAgICAgICAgICAiMC4xMzQ3MzMsIDAuNDY2ODU4LCAwLjc1MzIyLCAxLjExNjU4LCAxLjQ4MDk5LCAxLjg0MzIzLCAyLjIwNjU1Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE3OTcwMSwgMC43OTExNDUsIDEuMjgwMTEsIDEuODkxNTMsIDIuNTAyNTgsIDMuMTEzODgsIDMuNzI1MTUiLCBcCi0gICAgICAgICAgIjAuMTkwODYyLCAwLjgwMzMzMywgMS4yOTI0OSwgMS45MDQ3NCwgMi41MTU4OSwgMy4xMjY4OCwgMy43MzgxMiIsIFwKLSAgICAgICAgICAiMC4yMDM1MjEsIDAuODE2NTkyLCAxLjMwNTYxLCAxLjkxNzM2LCAyLjUyOSwgMy4xNDAxNCwgMy43NTEzMyIsIFwKLSAgICAgICAgICAiMC4yMTU1ODcsIDAuODI4NzY4LCAxLjMxODY1LCAxLjkyOTQ1LCAyLjU0MTc4LCAzLjE1MzA0LCAzLjc2MzY4IiwgXAotICAgICAgICAgICIwLjIyNjk5NCwgMC44NDA0MTIsIDEuMzMwNTUsIDEuOTQxNTgsIDIuNTUzNjgsIDMuMTY0MzcsIDMuNzc1NTgiLCBcCi0gICAgICAgICAgIjAuMjQ1ODYyLCAwLjg1ODk0NywgMS4zNDksIDEuOTYwNTUsIDIuNTcyMjksIDMuMTgzMjQsIDMuNzk0NTQiLCBcCi0gICAgICAgICAgIjAuMjYyMTE3LCAwLjg3NTUzNCwgMS4zNjQ5LCAxLjk3NzY3LCAyLjU4OTM2LCAzLjE5OTk3LCAzLjgxMTA4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI5OTUxNiwgMS40NDczOSwgMi4zNzk0MywgMy41MzU5NSwgNC42NzQwNywgNS44MjM4OCwgNi45NjY1NyIsIFwKLSAgICAgICAgICAiMC4yOTkxMTcsIDEuNDU5NTIsIDIuMzgwNTcsIDMuNTM3NTQsIDQuNjg0NTgsIDUuODI1MTQsIDYuOTcxIiwgXAotICAgICAgICAgICIwLjI5OTA5NCwgMS40NDg3MSwgMi4zNzE5OCwgMy41MzY5MywgNC42ODQ1NiwgNS44MjY3NywgNi45NjgxNSIsIFwKLSAgICAgICAgICAiMC4yOTkxMTMsIDEuNDYwMTUsIDIuMzY5MDcsIDMuNTM2NTQsIDQuNjczMDQsIDUuODIxMzIsIDYuOTcxMSIsIFwKLSAgICAgICAgICAiMC4yOTk1MzMsIDEuNDUwOTEsIDIuMzY5ODMsIDMuNTM2NzYsIDQuNjg0OCwgNS44MjQyMSwgNi45NzEwMyIsIFwKLSAgICAgICAgICAiMC4zMDA3NjYsIDEuNDU4NDMsIDIuMzc0NjksIDMuNTIzNDYsIDQuNjg0NTIsIDUuODI0MDEsIDYuOTcwOTEiLCBcCi0gICAgICAgICAgIjAuMzAyMTE1LCAxLjQ1OTQxLCAyLjM4MzA2LCAzLjUzNzYsIDQuNjg1MDUsIDUuODI0NTMsIDYuOTcxMDciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDUyNzk3LCAwLjIzMzA1NiwgMC4zNzY5NDgsIDAuNTU2OTY0LCAwLjczNzAxNywgMC45MTY3OTksIDEuMDk2NjUiLCBcCi0gICAgICAgICAgIjAuMDY0NDYzLCAwLjI0NDczNSwgMC4zODg3NzEsIDAuNTY4NjQyLCAwLjc0ODQ4NywgMC45Mjg2MTgsIDEuMTA4NTQiLCBcCi0gICAgICAgICAgIjAuMDc5NDE0LCAwLjI1OTU3MSwgMC40MDM0MzQsIDAuNTgzNjUxLCAwLjc2MzU2LCAwLjk0MzU5OCwgMS4xMjM0MiIsIFwKLSAgICAgICAgICAiMC4wOTQwNDQsIDAuMjczNjM3LCAwLjQxNzUxNywgMC41OTY2MTcsIDAuNzczNDg5LCAwLjk1Mzc0NywgMS4xMzM0NCIsIFwKLSAgICAgICAgICAiMC4xMDg4MDYsIDAuMjg4MjA4LCAwLjQzMjA5LCAwLjYxMTk5NiwgMC43OTExNjMsIDAuOTY2NjMyLCAxLjE0NjciLCBcCi0gICAgICAgICAgIjAuMTMyNTY5LCAwLjMxMTc1OSwgMC40NTUzOTgsIDAuNjM1MTc0LCAwLjgxNTEzLCAwLjk5NDk3MSwgMS4xNzM3NCIsIFwKLSAgICAgICAgICAiMC4xNTE0MDYsIDAuMzMzMTIyLCAwLjQ3NTQxOSwgMC42NTU1MSwgMC44MzU1ODIsIDEuMDE1MjIsIDEuMTk1MTgiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk2NTY4LCAwLjQ2MjAzLCAwLjc1NDIwOSwgMS4xMTk1OSwgMS40ODUwNywgMS44NTA0MiwgMi4yMTUwNyIsIFwKLSAgICAgICAgICAiMC4wOTY1ODgsIDAuNDYyMTMsIDAuNzU0ODI0LCAxLjExOTM0LCAxLjQ4NDY5LCAxLjg1MDI3LCAyLjIxNTUxIiwgXAotICAgICAgICAgICIwLjA5ODY0MywgMC40NjIwMjQsIDAuNzU0MzIyLCAxLjExOTcxLCAxLjQ4NTE5LCAxLjg1MDQ0LCAyLjIxNTYxIiwgXAotICAgICAgICAgICIwLjEwMzYyMiwgMC40NjIwMjYsIDAuNzU0MDc4LCAxLjExOTM4LCAxLjQ4NDU3LCAxLjg1MDQ1LCAyLjIxNTY2IiwgXAotICAgICAgICAgICIwLjExMDExNSwgMC40NjIwMTcsIDAuNzU0ODA0LCAxLjExOTU2LCAxLjQ4NTI1LCAxLjg1MDc5LCAyLjIxNTk3IiwgXAotICAgICAgICAgICIwLjEyMTk5NCwgMC40NjMxODIsIDAuNzU0MzQ0LCAxLjEyMDAxLCAxLjQ4NDg5LCAxLjg0OTgxLCAyLjIxNTgzIiwgXAotICAgICAgICAgICIwLjEzNDA1NCwgMC40NjYwNDEsIDAuNzU0MTA0LCAxLjEyMDAxLCAxLjQ4NTEzLCAxLjg1MDc5LCAyLjIxNTA5Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE3NTI0OSwgMC43ODcwNzQsIDEuMjc2ODksIDEuODg3NzYsIDIuNTAwMTksIDMuMTExMzUsIDMuNzIyMSIsIFwKLSAgICAgICAgICAiMC4xODU1NTIsIDAuNzk3ODQ1LCAxLjI4NzEzLCAxLjg5ODMzLCAyLjUxMDkyLCAzLjEyMjA4LCAzLjczMjY2IiwgXAotICAgICAgICAgICIwLjE5ODE0NiwgMC44MTEyMDksIDEuMzAwMzgsIDEuOTExOTUsIDIuNTIzNDYsIDMuMTM0NzUsIDMuNzQ1OTIiLCBcCi0gICAgICAgICAgIjAuMjEwNzQsIDAuODIzNDgsIDEuMzEzMDMsIDEuOTI0OCwgMi41MzY3NSwgMy4xNDc5LCAzLjc1ODg2IiwgXAotICAgICAgICAgICIwLjIyMzI3NCwgMC44MzYyNzEsIDEuMzI2MDYsIDEuOTM3NDcsIDIuNTQ5NzcsIDMuMTYxMDcsIDMuNzcxNDgiLCBcCi0gICAgICAgICAgIjAuMjQzMzc5LCAwLjg1Njc2NywgMS4zNDYyNSwgMS45NTgwNiwgMi41NzAxOCwgMy4xODEzMSwgMy43OTIyMSIsIFwKLSAgICAgICAgICAiMC4yNjExNTQsIDAuODc0OTAyLCAxLjM2NDczLCAxLjk3Njg3LCAyLjU4ODA1LCAzLjE5OTU2LCAzLjgxMDM4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI5OTU5LCAxLjQ1NTYsIDIuMzg4ODksIDMuNTM2NiwgNC42Njk5NSwgNS44MjA1LCA2Ljk2OTk1IiwgXAotICAgICAgICAgICIwLjI5ODE0LCAxLjQ1MDg1LCAyLjM3MjAyLCAzLjUzNjIyLCA0LjY3MjMyLCA1LjgyMTI5LCA2Ljk3MTE0IiwgXAotICAgICAgICAgICIwLjI5OTU2NywgMS40NDg1NiwgMi4zODc4NywgMy41MzY4MSwgNC42ODQ0MywgNS44MjY2OSwgNi45NjgxOCIsIFwKLSAgICAgICAgICAiMC4yOTk0NzgsIDEuNDQ5NjUsIDIuMzg4MzUsIDMuNTM2NzksIDQuNjc3NTgsIDUuODIzMDcsIDYuOTY4NTkiLCBcCi0gICAgICAgICAgIjAuMjk5NDAyLCAxLjQ0OTQsIDIuMzcyMDcsIDMuNTM2NTUsIDQuNjcyODQsIDUuODIwNzUsIDYuOTcwODciLCBcCi0gICAgICAgICAgIjAuMzAxMDEzLCAxLjQ1NTQ1LCAyLjM3MDM0LCAzLjUyMTc0LCA0LjY4NDY1LCA1LjgxOTQ2LCA2Ljk3MDk4IiwgXAotICAgICAgICAgICIwLjMwNTU3OCwgMS40NTk0NywgMi4zNzU0MSwgMy41Mzc0MywgNC42NzQ2NCwgNS44MjMzNCwgNi45NzEwMyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTA0MSwgMC4yMzA1MDUsIDAuMzc0NTQsIDAuNTU0NzY0LCAwLjczNDcwMSwgMC45MTUwMjEsIDEuMDk0ODkiLCBcCi0gICAgICAgICAgIjAuMDYxOTA0LCAwLjI0MTg5OCwgMC4zODU5MTcsIDAuNTY1OTg3LCAwLjc0NjQ4OSwgMC45MjU5OTQsIDEuMTA2MzUiLCBcCi0gICAgICAgICAgIjAuMDc2OTEsIDAuMjU2NjM4LCAwLjM5ODc1OCwgMC41Nzg3MjEsIDAuNzU5MjExLCAwLjkzODc0OSwgMS4xMTg5IiwgXAotICAgICAgICAgICIwLjA5MTY4LCAwLjI3MTE2NywgMC40MTM5NjMsIDAuNTk0MzgsIDAuNzc0MDg3LCAwLjk1NDM5MywgMS4xMzQ0NyIsIFwKLSAgICAgICAgICAiMC4xMDY0MDQsIDAuMjg1NzcyLCAwLjQyOTY0NiwgMC42MDk2MzMsIDAuNzkwMDA0LCAwLjk2NDU3OSwgMS4xNDQ3NyIsIFwKLSAgICAgICAgICAiMC4xMjk3MiwgMC4zMDk0MTksIDAuNDUzMDc5LCAwLjYzMzA3NSwgMC44MTMxNzcsIDAuOTkyOTQ2LCAxLjE3MzU5IiwgXAotICAgICAgICAgICIwLjE0ODM0NCwgMC4zMzA2NTYsIDAuNDczNDM5LCAwLjY1MzQwMSwgMC44MzMzOSwgMS4wMTM5NCwgMS4xOTMzMyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTQxODMsIDAuNDYwNDMsIDAuNzU0MTU5LCAxLjEyMDA5LCAxLjQ4OTU0LCAxLjg1MjkyLCAyLjIxOTU5IiwgXAotICAgICAgICAgICIwLjA5Mzk1MSwgMC40NjE0NzYsIDAuNzU1NTA1LCAxLjExOTg0LCAxLjQ4NzE2LCAxLjg1NjY0LCAyLjIyMTI0IiwgXAotICAgICAgICAgICIwLjA5NjU5NywgMC40NjA0ODcsIDAuNzUzNzA5LCAxLjEyMjQ4LCAxLjQ4NzI0LCAxLjg1NzA2LCAyLjIyNDQyIiwgXAotICAgICAgICAgICIwLjEwMTU2OCwgMC40NjE1ODIsIDAuNzU1MzY0LCAxLjEyMDUzLCAxLjQ4OTkxLCAxLjg1Mjk4LCAyLjIxOTQxIiwgXAotICAgICAgICAgICIwLjEwODM1NiwgMC40NjAzNTQsIDAuNzU1NDkzLCAxLjExOTg2LCAxLjQ4Njk1LCAxLjg1NzE1LCAyLjIyMzQiLCBcCi0gICAgICAgICAgIjAuMTIwNTAyLCAwLjQ2MTgsIDAuNzUzNTkxLCAxLjEyMDA2LCAxLjQ4NjU1LCAxLjg1MjY3LCAyLjIxODk0IiwgXAotICAgICAgICAgICIwLjEzMjc2MiwgMC40NjU3OTEsIDAuNzUzNDk1LCAxLjEyMDk5LCAxLjQ4ODA2LCAxLjg1MzQ2LCAyLjIxODc1Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE2NTQ1OCwgMC43Nzc1MTksIDEuMjY2NywgMS44NzkyMSwgMi40OTAwNCwgMy4xMDA2OSwgMy43MTIyIiwgXAotICAgICAgICAgICIwLjE3NDY1LCAwLjc4Njc1NSwgMS4yNzYwMiwgMS44ODc1LCAyLjQ5OTA5LCAzLjExMDM5LCAzLjcyMjIzIiwgXAotICAgICAgICAgICIwLjE4Njk1NSwgMC43OTk5ODQsIDEuMjg5ODcsIDEuOTAxMzUsIDIuNTEzMDUsIDMuMTIzNTEsIDMuNzM0NzYiLCBcCi0gICAgICAgICAgIjAuMTk4NDA2LCAwLjgxMTE5NSwgMS4zMDA4MiwgMS45MTI5LCAyLjUyNDY2LCAzLjEzNTUxLCAzLjc0Njc0IiwgXAotICAgICAgICAgICIwLjIxMDQzNSwgMC44MjM1MDQsIDEuMzEzMDYsIDEuOTI0NiwgMi41MzcxMywgMy4xNDgzOCwgMy43NTg5NSIsIFwKLSAgICAgICAgICAiMC4yMjk5NjYsIDAuODQzMzkyLCAxLjMzMjcxLCAxLjk0NDUzLCAyLjU1NTc5LCAzLjE2NzM5LCAzLjc3ODciLCBcCi0gICAgICAgICAgIjAuMjQ4MzQ5LCAwLjg2MDExOSwgMS4zNDk5OSwgMS45NjIzLCAyLjU3MzY0LCAzLjE4NTEzLCAzLjc5NTkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjk5NTg1LCAxLjQ1OTM0LCAyLjM4MDYxLCAzLjUxOTkyLCA0LjY4NDU5LCA1LjgyNDA2LCA2Ljk3MTI1IiwgXAotICAgICAgICAgICIwLjI5OTE0OSwgMS40NTUyNSwgMi4zNzAxNSwgMy41MzYxMSwgNC42ODM4MywgNS44MjM4MSwgNi45NjY4IiwgXAotICAgICAgICAgICIwLjI5OTA4OCwgMS40NDc4OCwgMi4zNjk1MSwgMy41MTc5MywgNC42ODUwNiwgNS44MjQyOSwgNi45NzEyNSIsIFwKLSAgICAgICAgICAiMC4yOTc4ODksIDEuNDU1MjcsIDIuMzg3NzcsIDMuNTM3MDMsIDQuNjg0ODEsIDUuODI2ODUsIDYuOTY4MDgiLCBcCi0gICAgICAgICAgIjAuMzAwMiwgMS40NTg5MSwgMi4zNzA1MiwgMy41MzYzNCwgNC42NzIzMywgNS44MTcyNiwgNi45NjgzNyIsIFwKLSAgICAgICAgICAiMC4zMDQ5MjUsIDEuNDU5NTYsIDIuMzcwNzMsIDMuNTIyMjMsIDQuNjgzODksIDUuODIzOTEsIDYuOTcwODIiLCBcCi0gICAgICAgICAgIjAuMzEwOTM2LCAxLjQ1NTI2LCAyLjM2OTYxLCAzLjUzNzMzLCA0LjY3NTE4LCA1LjgyMTkyLCA2Ljk3MTAzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzOTE1LCAwLjAwMzkxNCwgMC4wMDM5MTQsIDAuMDAzOTEzLCAwLjAwMzkxMiwgMC4wMDM5MTIsIDAuMDAzOTExIiwgXAotICAgICAgICAgICIwLjAwMzg4OSwgMC4wMDM4OTQsIDAuMDAzODk1LCAwLjAwMzg5NSwgMC4wMDM4OTMsIDAuMDAzODkyLCAwLjAwMzg5MyIsIFwKLSAgICAgICAgICAiMC4wMDM4NzksIDAuMDAzODg4LCAwLjAwMzg4OSwgMC4wMDM4ODcsIDAuMDAzODg2LCAwLjAwMzg4NywgMC4wMDM4ODQiLCBcCi0gICAgICAgICAgIjAuMDAzODcsIDAuMDAzODg1LCAwLjAwMzg4NywgMC4wMDM4ODcsIDAuMDAzODg0LCAwLjAwMzg4NSwgMC4wMDM4ODQiLCBcCi0gICAgICAgICAgIjAuMDAzODYxLCAwLjAwMzg4MiwgMC4wMDM4ODUsIDAuMDAzODg2LCAwLjAwMzg4NSwgMC4wMDM4ODQsIDAuMDAzODgzIiwgXAotICAgICAgICAgICIwLjAwMzg1NiwgMC4wMDM4OCwgMC4wMDM4ODMsIDAuMDAzODgzLCAwLjAwMzg4NCwgMC4wMDM4ODMsIDAuMDAzODgxIiwgXAotICAgICAgICAgICIwLjAwMzg1LCAwLjAwMzg3OCwgMC4wMDM4NzksIDAuMDAzODgzLCAwLjAwMzg4MywgMC4wMDM4ODQsIDAuMDAzODg0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxMDIxLCAwLjAwMTAyNywgMC4wMDEwMjcsIDAuMDAxMDI3LCAwLjAwMTAyOCwgMC4wMDEwMjgsIDAuMDAxMDI4IiwgXAotICAgICAgICAgICIwLjAwMDk5NSwgMC4wMDEwMjEsIDAuMDAxMDIzLCAwLjAwMTAyNSwgMC4wMDEwMjYsIDAuMDAxMDI2LCAwLjAwMTAyNyIsIFwKLSAgICAgICAgICAiMC4wMDA5NywgMC4wMDEwMTMsIDAuMDAxMDE5LCAwLjAwMTAyMiwgMC4wMDEwMjMsIDAuMDAxMDI0LCAwLjAwMTAyNSIsIFwKLSAgICAgICAgICAiMC4wMDA5NTMsIDAuMDAxMDA3LCAwLjAwMTAxNCwgMC4wMDEwMTksIDAuMDAxMDIxLCAwLjAwMTAyMywgMC4wMDEwMjMiLCBcCi0gICAgICAgICAgIjAuMDAwOTM3LCAwLjAwMSwgMC4wMDEwMSwgMC4wMDEwMTYsIDAuMDAxMDE5LCAwLjAwMTAyLCAwLjAwMTAyMiIsIFwKLSAgICAgICAgICAiMC4wMDA5MjEsIDAuMDAwOTkxLCAwLjAwMTAwNCwgMC4wMDEwMTEsIDAuMDAxMDE1LCAwLjAwMTAxOCwgMC4wMDEwMTkiLCBcCi0gICAgICAgICAgIjAuMDAwOTExLCAwLjAwMDk4MywgMC4wMDA5OTgsIDAuMDAxMDA3LCAwLjAwMTAxMiwgMC4wMDEwMTUsIDAuMDAxMDE3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzMzA1LCAwLjAwMzMwNiwgMC4wMDMzMDYsIDAuMDAzMzA2LCAwLjAwMzMwNiwgMC4wMDMzMDUsIDAuMDAzMzA1IiwgXAotICAgICAgICAgICIwLjAwMzI5NCwgMC4wMDMzMDQsIDAuMDAzMzA0LCAwLjAwMzMwNSwgMC4wMDMzMDUsIDAuMDAzMzA0LCAwLjAwMzMwNCIsIFwKLSAgICAgICAgICAiMC4wMDMyODEsIDAuMDAzMzAxLCAwLjAwMzMwMywgMC4wMDMzMDYsIDAuMDAzMzA2LCAwLjAwMzMwNCwgMC4wMDMzMDYiLCBcCi0gICAgICAgICAgIjAuMDAzMjcxLCAwLjAwMzI5OCwgMC4wMDMzMDEsIDAuMDAzMzAyLCAwLjAwMzMwMiwgMC4wMDMzMDIsIDAuMDAzMzAzIiwgXAotICAgICAgICAgICIwLjAwMzI2MiwgMC4wMDMyOTQsIDAuMDAzMjk5LCAwLjAwMzMwMSwgMC4wMDMzMDMsIDAuMDAzMzAxLCAwLjAwMzMwMSIsIFwKLSAgICAgICAgICAiMC4wMDMyNTEsIDAuMDAzMjkxLCAwLjAwMzI5NiwgMC4wMDMyOTksIDAuMDAzMzAxLCAwLjAwMzMwMSwgMC4wMDMzMDEiLCBcCi0gICAgICAgICAgIjAuMDAzMjQ1LCAwLjAwMzI4NywgMC4wMDMyOTIsIDAuMDAzMjk3LCAwLjAwMzI5OSwgMC4wMDMzLCAwLjAwMzMwMSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTAyMSwgMC4wMDEwMjcsIDAuMDAxMDI4LCAwLjAwMTAyOCwgMC4wMDEwMjgsIDAuMDAxMDMsIDAuMDAxMDI4IiwgXAotICAgICAgICAgICIwLjAwMDk5NSwgMC4wMDEwMjEsIDAuMDAxMDI0LCAwLjAwMTAyNiwgMC4wMDEwMjYsIDAuMDAxMDI3LCAwLjAwMTAyNyIsIFwKLSAgICAgICAgICAiMC4wMDA5NzEsIDAuMDAxMDE0LCAwLjAwMTAyLCAwLjAwMTAyMywgMC4wMDEwMjQsIDAuMDAxMDI1LCAwLjAwMTAyNiIsIFwKLSAgICAgICAgICAiMC4wMDA5NTMsIDAuMDAxMDA3LCAwLjAwMTAxNSwgMC4wMDEwMTksIDAuMDAxMDIyLCAwLjAwMTAyMywgMC4wMDEwMjQiLCBcCi0gICAgICAgICAgIjAuMDAwOTM4LCAwLjAwMTAwMSwgMC4wMDEwMTEsIDAuMDAxMDE2LCAwLjAwMTAxOSwgMC4wMDEwMjEsIDAuMDAxMDIyIiwgXAotICAgICAgICAgICIwLjAwMDkyMiwgMC4wMDA5OTEsIDAuMDAxMDA0LCAwLjAwMTAxMiwgMC4wMDEwMTYsIDAuMDAxMDE4LCAwLjAwMTAyIiwgXAotICAgICAgICAgICIwLjAwMDkxMSwgMC4wMDA5ODQsIDAuMDAwOTk5LCAwLjAwMTAwOCwgMC4wMDEwMTMsIDAuMDAxMDE2LCAwLjAwMTAxOCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjYzMywgMC4wMDI2MzcsIDAuMDAyNjM5LCAwLjAwMjYzOCwgMC4wMDI2MzgsIDAuMDAyNjM4LCAwLjAwMjYzOCIsIFwKLSAgICAgICAgICAiMC4wMDI2MjYsIDAuMDAyNjU0LCAwLjAwMjY1MSwgMC4wMDI2NTYsIDAuMDAyNjU3LCAwLjAwMjY1NiwgMC4wMDI2NTciLCBcCi0gICAgICAgICAgIjAuMDAyNjIsIDAuMDAyNjUzLCAwLjAwMjY1NywgMC4wMDI2NTksIDAuMDAyNjYsIDAuMDAyNjU4LCAwLjAwMjY2MSIsIFwKLSAgICAgICAgICAiMC4wMDI2MDYsIDAuMDAyNjUsIDAuMDAyNjU1LCAwLjAwMjY1OCwgMC4wMDI2NiwgMC4wMDI2NiwgMC4wMDI2NjEiLCBcCi0gICAgICAgICAgIjAuMDAyNTk1LCAwLjAwMjY0NiwgMC4wMDI2NTQsIDAuMDAyNjU3LCAwLjAwMjY1OSwgMC4wMDI2NTksIDAuMDAyNjYiLCBcCi0gICAgICAgICAgIjAuMDAyNTgsIDAuMDAyNjQyLCAwLjAwMjY1LCAwLjAwMjY1NSwgMC4wMDI2NTcsIDAuMDAyNjU5LCAwLjAwMjY2IiwgXAotICAgICAgICAgICIwLjAwMjU3MSwgMC4wMDI2MzYsIDAuMDAyNjQ2LCAwLjAwMjY1NCwgMC4wMDI2NTYsIDAuMDAyNjU4LCAwLjAwMjY1OSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTAxOSwgMC4wMDEwMjYsIDAuMDAxMDI3LCAwLjAwMTAyNywgMC4wMDEwMjcsIDAuMDAxMDI3LCAwLjAwMTAyNyIsIFwKLSAgICAgICAgICAiMC4wMDA5ODgsIDAuMDAxMDE5LCAwLjAwMTAyMiwgMC4wMDEwMjQsIDAuMDAxMDI1LCAwLjAwMTAyNSwgMC4wMDEwMjYiLCBcCi0gICAgICAgICAgIjAuMDAwOTYxLCAwLjAwMTAxLCAwLjAwMTAxNywgMC4wMDEwMjEsIDAuMDAxMDIyLCAwLjAwMTAyMywgMC4wMDEwMjQiLCBcCi0gICAgICAgICAgIjAuMDAwOTM5LCAwLjAwMTAwMiwgMC4wMDEwMTIsIDAuMDAxMDE3LCAwLjAwMTAxOSwgMC4wMDEwMjEsIDAuMDAxMDIyIiwgXAotICAgICAgICAgICIwLjAwMDkyNCwgMC4wMDA5OTUsIDAuMDAxMDA3LCAwLjAwMTAxMywgMC4wMDEwMTcsIDAuMDAxMDE5LCAwLjAwMTAyIiwgXAotICAgICAgICAgICIwLjAwMDkwOCwgMC4wMDA5ODUsIDAuMDAxLCAwLjAwMTAwOCwgMC4wMDEwMTMsIDAuMDAxMDE2LCAwLjAwMTAxOCIsIFwKLSAgICAgICAgICAiMC4wMDA5MDIsIDAuMDAwOTc3LCAwLjAwMDk5NCwgMC4wMDEwMDQsIDAuMDAxMDA5LCAwLjAwMTAxMywgMC4wMDEwMTUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IE5BTkQ0QkJYNCAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKE5BTkQ0QkJYNCkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjU4OTY1MzsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQU4pICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDg1NTE4MzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA4NTQ3NTY7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwODU1MTgzOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTMyLCAwLjAwMTI5NCwgMC4wMDEyNzgsIDAuMDAxMjY1LCAwLjAwMTI1NywgMC4wMDEyNTQsIDAuMDAxMjUxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyNzkxLCAwLjAwMjc3NCwgMC4wMDI3NTksIDAuMDAyNzU0LCAwLjAwMjc1LCAwLjAwMjc0NiwgMC4wMDI3NDYiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEJOKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA4Nzc1MTU7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwODc3MDcxOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDg3NzUxNTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDEyNzQsIDAuMDAxMjUxLCAwLjAwMTIzNCwgMC4wMDEyMjMsIDAuMDAxMjE3LCAwLjAwMTIxMywgMC4wMDEyMTIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDI5OTgsIDAuMDAyOTgyLCAwLjAwMjk2OCwgMC4wMDI5NjIsIDAuMDAyOTU4LCAwLjAwMjk1NiwgMC4wMDI5NTQiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEMpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMjg0MDI0OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMjg0MDI0OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMjgyOTc7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxMjI1LCAwLjAwMTIyNCwgMC4wMDEyMjMsIDAuMDAxMjIzLCAwLjAwMTIyMywgMC4wMDEyMjMsIDAuMDAxMjIzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxMjUxLCAwLjAwMTIzNSwgMC4wMDEyMzEsIDAuMDAxMjMsIDAuMDAxMjI5LCAwLjAwMTIyOSwgMC4wMDEyMjkiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEQpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMjkyNjg3OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMjkyNDQ4OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMjkyNjg3OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDEyMywgMC4wMDAxMjIsIDAuMDAwMTIyLCAwLjAwMDEyLCAwLjAwMDEyMSwgMC4wMDAxMjEsIDAuMDAwMTIxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxMzksIDAuMDAxMzkxLCAwLjAwMTM5MSwgMC4wMDEzOTIsIDAuMDAxMzkxLCAwLjAwMTM5MywgMC4wMDEzOTMiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4xMjAxMTsKLSAgICBmdW5jdGlvbiA6ICIoISgoKCghQk4pICghQU4pKSBDKSBEKSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkFOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5NDIyOCwgMC4yMjQ1MDQsIDAuMzUxOTI4LCAwLjQ0MjgzOCwgMC41ODc5NTgsIDAuNzE0OTAyLCAwLjg5NjEzMiIsIFwKLSAgICAgICAgICAiMC4xMDYwMDYsIDAuMjM2MjM1LCAwLjM2Mzc2NiwgMC40NTQ0NTUsIDAuNTk5NzAzLCAwLjcyNjYyOCwgMC45MDc4ODkiLCBcCi0gICAgICAgICAgIjAuMTIwODE2LCAwLjI1MTE4MiwgMC4zNzg3LCAwLjQ2OTUzMywgMC42MTQ2NSwgMC43NDEzMzUsIDAuOTIyODM1IiwgXAotICAgICAgICAgICIwLjEzNTk4MSwgMC4yNjYzNDIsIDAuMzkzODUxLCAwLjQ4NDY5MywgMC42Mjk4MSwgMC43NTY3NSwgMC45Mzc4NTciLCBcCi0gICAgICAgICAgIjAuMTUwODgzLCAwLjI4MTE1OCwgMC40MDg2NjMsIDAuNDk5NDg4LCAwLjY0NDYyMSwgMC43NzE1MzcsIDAuOTUyNzI0IiwgXAotICAgICAgICAgICIwLjE3NDE3LCAwLjMwNDM3OCwgMC40MzE5MTksIDAuNTIyNzIyLCAwLjY2Nzg4OCwgMC43OTQ4MjUsIDAuOTc2MDUxIiwgXAotICAgICAgICAgICIwLjE5MzA0LCAwLjMyMzUyOSwgMC40NTEwMzEsIDAuNTQxODEsIDAuNjg2OTYsIDAuODEzODY5LCAwLjk5NTEzNiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4MDE2NywgMC4zMzQyOTYsIDAuNTkwODkxLCAwLjc3NTU5NSwgMS4wNzAxNCwgMS4zMjc2NywgMS42OTUyOSIsIFwKLSAgICAgICAgICAiMC4wODAxNzMsIDAuMzM0MjI4LCAwLjU5MTY3OCwgMC43NzUyMTEsIDEuMDY5NjYsIDEuMzI3NjksIDEuNjk0OTkiLCBcCi0gICAgICAgICAgIjAuMDgwMTA3LCAwLjMzNDE2NSwgMC41OTE2NTUsIDAuNzc1NDE4LCAxLjA3MDIxLCAxLjMyNzAxLCAxLjY5NDk5IiwgXAotICAgICAgICAgICIwLjA4MDE3LCAwLjMzNDI5LCAwLjU5MTYyNywgMC43NzU1ODcsIDEuMDcwMTUsIDEuMzI3MjgsIDEuNjk1NjUiLCBcCi0gICAgICAgICAgIjAuMDgwMjAzLCAwLjMzNDI4NywgMC41OTE2MSwgMC43NzUzMjYsIDEuMDcwMTUsIDEuMzI3OCwgMS42OTYxNiIsIFwKLSAgICAgICAgICAiMC4wODA4NTMsIDAuMzM0MzEzLCAwLjU5MTcwNSwgMC43NzU1NywgMS4wNjk5NCwgMS4zMjc0NSwgMS42OTU0NiIsIFwKLSAgICAgICAgICAiMC4wODIzNjYsIDAuMzM0NjU5LCAwLjU5MTY0MiwgMC43NzU1NTEsIDEuMDcwMDcsIDEuMzI3MjMsIDEuNjk1NDMiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMzkyMTksIDAuODMzNDM2LCAxLjQyNjQ2LCAxLjg1MDMyLCAyLjUyODI2LCAzLjEyMTAxLCAzLjk2Njc1IiwgXAotICAgICAgICAgICIwLjI1MDUyNSwgMC44NDUyNDIsIDEuNDM4NDYsIDEuODYyMDIsIDIuNTM5NjMsIDMuMTMyMDksIDMuOTc4MTEiLCBcCi0gICAgICAgICAgIjAuMjY1MzEzLCAwLjg1OTY5MSwgMS40NTI5MiwgMS44NzY2NywgMi41NTQ3MywgMy4xNDc0OSwgMy45OTMzOSIsIFwKLSAgICAgICAgICAiMC4yNzk4MDcsIDAuODc0MzkxLCAxLjQ2NzY1LCAxLjg5MTQyLCAyLjU2OTQ5LCAzLjE2MjI0LCA0LjAwODMxIiwgXAotICAgICAgICAgICIwLjI5NDE2OSwgMC44ODg3NzUsIDEuNDgyMTYsIDEuOTA1OTEsIDIuNTg0MDQsIDMuMTc2NzUsIDQuMDIyODMiLCBcCi0gICAgICAgICAgIjAuMzE1NTExLCAwLjkxMDMwOCwgMS41MDM2NywgMS45Mjc0OCwgMi42MDU1OCwgMy4xOTgzNywgNC4wNDQyOCIsIFwKLSAgICAgICAgICAiMC4zMzI0MTgsIDAuOTI3NzEyLCAxLjUyMTEyLCAxLjk0NTM2LCAyLjYyMTg3LCAzLjIxNDgsIDQuMDYxNDEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yNzc0NzQsIDEuMzkwMSwgMi40OTE5MSwgMy4zMDQ3LCA0LjU0NjgxLCA1LjY1MDgxLCA3LjIzMTcyIiwgXAotICAgICAgICAgICIwLjI3NzQ4MiwgMS4zODMyOCwgMi41MDM1NywgMy4zMDQ5NSwgNC41NTE4OSwgNS42NTMyMiwgNy4yMzE2MyIsIFwKLSAgICAgICAgICAiMC4yNzY3MTIsIDEuMzg5OTQsIDIuNDkxNTksIDMuMzA0NjMsIDQuNTQ2OTYsIDUuNjU3MzQsIDcuMjMyNjYiLCBcCi0gICAgICAgICAgIjAuMjc3NDE2LCAxLjM4OTk1LCAyLjQ5MTYxLCAzLjMwNDYzLCA0LjU0NzAxLCA1LjY1NzMzLCA3LjIzMjE3IiwgXAotICAgICAgICAgICIwLjI3NzQzOSwgMS4zOTM0NCwgMi40OTE0OCwgMy4zMDQ2MiwgNC41NDc5NiwgNS42NTczMSwgNy4yMzIxNiIsIFwKLSAgICAgICAgICAiMC4yNzc0NzksIDEuMzg5ODgsIDIuNDkxNjMsIDMuMzA0NjQsIDQuNTQ2ODUsIDUuNjU3MzYsIDcuMjMyMzQiLCBcCi0gICAgICAgICAgIjAuMjc3NDc5LCAxLjM5NjM3LCAyLjQ5MDY3LCAzLjMwNTQ1LCA0LjU2MDg5LCA1LjY1NzIsIDcuMjMyMTMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQk4iOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk2ODM4LCAwLjIyNjM3NywgMC4zNTM5NjMsIDAuNDQ0OTM0LCAwLjU5MDQ1NiwgMC43MTc3MDYsIDAuODk5NDY2IiwgXAotICAgICAgICAgICIwLjEwODQ3LCAwLjIzODA1NSwgMC4zNjU1NTEsIDAuNDU2NjA4LCAwLjYwMjEwOSwgMC43MjkzNTcsIDAuOTExMDg5IiwgXAotICAgICAgICAgICIwLjEyMzUyNiwgMC4yNTMwNywgMC4zODA2NTQsIDAuNDcxNjMsIDAuNjE3MTM0LCAwLjc0NDQxNywgMC45MjU5NDEiLCBcCi0gICAgICAgICAgIjAuMTM4Njg0LCAwLjI2ODMxNSwgMC4zOTU5MTEsIDAuNDg2ODgsIDAuNjMyMzk5LCAwLjc1OTY2NCwgMC45NDE0NjYiLCBcCi0gICAgICAgICAgIjAuMTUzMzI5LCAwLjI4MjgxMywgMC40MTA0MTMsIDAuNTAxMzczLCAwLjY0Njg5LCAwLjc3NDE1MiwgMC45NTU1NDYiLCBcCi0gICAgICAgICAgIjAuMTc3MTA5LCAwLjMwNjU1MiwgMC40MzQxNTMsIDAuNTI1MTIsIDAuNjcwNjI4LCAwLjc5Nzg2NiwgMC45Nzk2MjEiLCBcCi0gICAgICAgICAgIjAuMTk2NDY2LCAwLjMyNjI1NCwgMC40NTM2NjYsIDAuNTQ0NjM0LCAwLjY5MDE2LCAwLjgxNzQxMiwgMC45OTkxNjQiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzgwNjcsIDAuMzMyMDg3LCAwLjU5MDM0NSwgMC43NzQ4NzEsIDEuMDcwOTIsIDEuMzI4NDQsIDEuNjk3NzQiLCBcCi0gICAgICAgICAgIjAuMDc4MDk4LCAwLjMzMjA0MiwgMC41ODk2NzUsIDAuNzc0NTcxLCAxLjA3MDkyLCAxLjMyOTA2LCAxLjY5ODU0IiwgXAotICAgICAgICAgICIwLjA3ODAzOSwgMC4zMzIwNTksIDAuNTkwMzQxLCAwLjc3NDgzNiwgMS4wNzA5MiwgMS4zMjg4NywgMS42OTg0MSIsIFwKLSAgICAgICAgICAiMC4wNzgwNDQsIDAuMzMyMDc1LCAwLjU5MDM5MSwgMC43NzQ4OTUsIDEuMDcwOTMsIDEuMzI4NzEsIDEuNjk4MTMiLCBcCi0gICAgICAgICAgIjAuMDc4NTA1LCAwLjMzMjEwNiwgMC41OTA0MTIsIDAuNzc0OTAzLCAxLjA3MDI2LCAxLjMyODc3LCAxLjY5Nzc1IiwgXAotICAgICAgICAgICIwLjA3ODYwNiwgMC4zMzIxMzgsIDAuNTg5OTcsIDAuNzc0OTAxLCAxLjA3MDkyLCAxLjMyOTM1LCAxLjY5ODUiLCBcCi0gICAgICAgICAgIjAuMDgwMTczLCAwLjMzMjIzNywgMC41OTAxNjYsIDAuNzc0OTk0LCAxLjA3MDI4LCAxLjMyOTExLCAxLjY5Nzc2Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjMxOTA5LCAwLjgyNjA2NCwgMS40MTk5NywgMS44NDI5MiwgMi41MjEwNCwgMy4xMTMxNSwgMy45NTk3NCIsIFwKLSAgICAgICAgICAiMC4yNDMyMjIsIDAuODM3NDMsIDEuNDMwOTUsIDEuODU0MTgsIDIuNTMyNzUsIDMuMTI0MzYsIDMuOTcxMjEiLCBcCi0gICAgICAgICAgIjAuMjU4MDE1LCAwLjg1MjQ0MiwgMS40NDYwMSwgMS44NjkxLCAyLjU0Nzc0LCAzLjEzOTM3LCAzLjk4NjI0IiwgXAotICAgICAgICAgICIwLjI3MjUxNywgMC44NjcwNjIsIDEuNDYwNjUsIDEuODgzOSwgMi41NjI0OSwgMy4xNTQyLCA0LjAwMDk3IiwgXAotICAgICAgICAgICIwLjI4Njg4NiwgMC44ODE3MTgsIDEuNDc0NzUsIDEuODk4ODIsIDIuNTc2NjksIDMuMTY5NDEsIDQuMDE1MjkiLCBcCi0gICAgICAgICAgIjAuMzA4NTEyLCAwLjkwMzI3MSwgMS40OTcyOCwgMS45MjA3LCAyLjU5ODQ2LCAzLjE5MDY4LCA0LjAzNzMyIiwgXAotICAgICAgICAgICIwLjMyNTg0LCAwLjkyMDc5MywgMS41MTM5MywgMS45Mzg1NiwgMi42MTU4NywgMy4yMDgzNiwgNC4wNTQ4OCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI3NzQ0MiwgMS4zODk2NiwgMi41MDM3OCwgMy4yODQ3NCwgNC41NjM5NCwgNS42NTY2LCA3LjIzMTk1IiwgXAotICAgICAgICAgICIwLjI3NjY2MywgMS4zODQxOSwgMi40OTA5NiwgMy4zMDQzOCwgNC41NjQyLCA1LjY1NjMyLCA3LjIzMjEiLCBcCi0gICAgICAgICAgIjAuMjc3NDI5LCAxLjM4Mzk1LCAyLjQ5MDc4LCAzLjMwNDMsIDQuNTY0MTcsIDUuNjU2MzEsIDcuMjMyMSIsIFwKLSAgICAgICAgICAiMC4yNzc0NzksIDEuMzg0MTIsIDIuNDkwODIsIDMuMzA0NCwgNC41NjQwMiwgNS42NTY0MiwgNy4yMzE5OCIsIFwKLSAgICAgICAgICAiMC4yNzY2MTQsIDEuMzg0OTIsIDIuNTAxMTYsIDMuMzA0NzgsIDQuNTQ3MDEsIDUuNjUxODYsIDcuMjMxNzUiLCBcCi0gICAgICAgICAgIjAuMjc2NTUyLCAxLjM5MzU1LCAyLjUxMzUzLCAzLjMwNDgzLCA0LjU2MzYyLCA1LjY1NzI1LCA3LjIzMTkxIiwgXAotICAgICAgICAgICIwLjI3NzQ0OCwgMS4zODQwNSwgMi41MDcwNywgMy4zMDUyMSwgNC41NjM1NiwgNS42NTkyOCwgNy4yMzIyNyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzNzczLCAwLjE2NTUyOCwgMC4yOTI4OTUsIDAuMzgzNzc2LCAwLjUyOTE5NSwgMC42NTYzNSwgMC44MzgxODUiLCBcCi0gICAgICAgICAgIjAuMDQ5NDc5LCAwLjE3Njg1MSwgMC4zMDQyNjgsIDAuMzk1MTgxLCAwLjU0MDY1LCAwLjY2Nzk4MSwgMC44NDk3NTIiLCBcCi0gICAgICAgICAgIjAuMDY0MzIyLCAwLjE5MTcyLCAwLjMxOTA5OSwgMC40MDk5NjEsIDAuNTU1MzU2LCAwLjY4MjY0OSwgMC44NjQyNzYiLCBcCi0gICAgICAgICAgIjAuMDc5MTUyLCAwLjIwNjQ3NSwgMC4zMzIxNTMsIDAuNDIzMSwgMC41Njg1ODEsIDAuNjk1NjQ5LCAwLjg3NzQwOSIsIFwKLSAgICAgICAgICAiMC4wOTM4MzQsIDAuMjIxMTQ5LCAwLjM0ODEzNCwgMC40Mzg5ODgsIDAuNTg0MzE5LCAwLjcwODA4NiwgMC44ODk3ODgiLCBcCi0gICAgICAgICAgIjAuMTE0NjQ2LCAwLjI0NTQ3MywgMC4zNzE3NTEsIDAuNDYzNTM1LCAwLjYwODg2NywgMC43MzYwOSwgMC45MTc3MTEiLCBcCi0gICAgICAgICAgIjAuMTMwODEyLCAwLjI2NTk3LCAwLjM5MjU1MSwgMC40ODI4MDksIDAuNjI1OTE1LCAwLjc1MzA4NywgMC45MzQ4NjEiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjYwMTEsIDAuMzI0OTIyLCAwLjU4MzczOSwgMC43Njg0MDgsIDEuMDYzNzgsIDEuMzIyNTYsIDEuNjkyODciLCBcCi0gICAgICAgICAgIjAuMDY2MjYyLCAwLjMyNDk0MywgMC41ODQwMDksIDAuNzY4NDMzLCAxLjA2NDY5LCAxLjMyMjgxLCAxLjY5MjUiLCBcCi0gICAgICAgICAgIjAuMDY5ODg2LCAwLjMyNDk5LCAwLjU4MzUzMiwgMC43NjgxOTksIDEuMDYzNzMsIDEuMzIzMzIsIDEuNjkxOTkiLCBcCi0gICAgICAgICAgIjAuMDc2MTg5LCAwLjMyNDc4OSwgMC41ODM2MzcsIDAuNzY4NjEyLCAxLjA2NDc4LCAxLjMyMjM0LCAxLjY5MTc4IiwgXAotICAgICAgICAgICIwLjA4MzUyMSwgMC4zMjU2NDMsIDAuNTgzNTc1LCAwLjc2ODM1NSwgMS4wNjQ2NiwgMS4zMjI2OSwgMS42OTE4MiIsIFwKLSAgICAgICAgICAiMC4wOTc0NiwgMC4zMjk1NDUsIDAuNTgzNjczLCAwLjc2ODM3MywgMS4wNjQwNSwgMS4zMjMzNywgMS42OTI5NCIsIFwKLSAgICAgICAgICAiMC4xMTA3MDYsIDAuMzM1MDY5LCAwLjU4NTM4OCwgMC43NjgzNDksIDEuMDY0NzIsIDEuMzIyMzcsIDEuNjkyOTEiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNzE0ODEsIDAuNzY1MTY0LCAxLjM1ODQ2LCAxLjc4MTUsIDIuNDU5NzYsIDMuMDUyMzQsIDMuODk4MTgiLCBcCi0gICAgICAgICAgIjAuMTgwODE1LCAwLjc3NTAyOCwgMS4zNjgzLCAxLjc5MjEyLCAyLjQ3MDEsIDMuMDYyMSwgMy45MDg2MiIsIFwKLSAgICAgICAgICAiMC4xOTI3ODIsIDAuNzg3NDA2LCAxLjM4MDQ3LCAxLjgwMzk4LCAyLjQ4MTgzLCAzLjA3NDczLCAzLjkyMTQxIiwgXAotICAgICAgICAgICIwLjIwNDQ4MiwgMC43OTk1NzUsIDEuMzkyNzksIDEuODE2MjUsIDIuNDk1LCAzLjA4NzQsIDMuOTMzNjYiLCBcCi0gICAgICAgICAgIjAuMjE2MzA5LCAwLjgxMTYyNywgMS40MDQ5NCwgMS44Mjk0LCAyLjUwNjQ1LCAzLjA5OTU1LCAzLjk0NjEiLCBcCi0gICAgICAgICAgIjAuMjM1NjE3LCAwLjgzMTAwNCwgMS40MjQ5NywgMS44NDkyOSwgMi41MjY5LCAzLjExOSwgMy45NjU2MSIsIFwKLSAgICAgICAgICAiMC4yNTIzOTcsIDAuODQ3OTIzLCAxLjQ0MjAxLCAxLjg2NTI3LCAyLjU0MzYxLCAzLjEzNTk5LCAzLjk4MjU5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjc3NTQ0LCAxLjM5MDYxLCAyLjUwMzYyLCAzLjMwNDU0LCA0LjU0NjExLCA1LjY1NzM4LCA3LjIzMTk3IiwgXAotICAgICAgICAgICIwLjI3NzI4NSwgMS4zODQ5OSwgMi41MDI5NiwgMy4zMDQ4NiwgNC41NjM5MywgNS42NTg1OSwgNy4yMzIxOSIsIFwKLSAgICAgICAgICAiMC4yNzczMjEsIDEuMzkyODMsIDIuNTAwNTIsIDMuMjgyODksIDQuNTQ4NzEsIDUuNjU2NjEsIDcuMjMyMDEiLCBcCi0gICAgICAgICAgIjAuMjc3MTcyLCAxLjM4MzQzLCAyLjQ5MTkyLCAzLjI5NDg3LCA0LjU0NzUzLCA1LjY1MTMxLCA3LjIzMiIsIFwKLSAgICAgICAgICAiMC4yNzcyMDEsIDEuMzg0MjYsIDIuNTA2MjMsIDMuMzA1MDMsIDQuNTQ4MzksIDUuNjUzNDMsIDcuMjMyMTIiLCBcCi0gICAgICAgICAgIjAuMjc5MjU5LCAxLjM4NDIsIDIuNDkxMDMsIDMuMjgyNDgsIDQuNTQ0OCwgNS42NTg5MywgNy4yMzE5OCIsIFwKLSAgICAgICAgICAiMC4yODI1NDQsIDEuMzkzMzksIDIuNDkxMTIsIDMuMjk0OTksIDQuNTYzNiwgNS42NTYzNCwgNy4yMzE4NiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJEIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzNDUwMywgMC4xNjE0NTMsIDAuMjg4NDI2LCAwLjM3OTEwNywgMC41MjQxMDEsIDAuNjUxMDEzLCAwLjgzMjI3MyIsIFwKLSAgICAgICAgICAiMC4wNDYyMDIsIDAuMTczMzIsIDAuMzAwMjQ5LCAwLjM5MDg2OSwgMC41MzU5MTQsIDAuNjYzMDcsIDAuODQ0MTMxIiwgXAotICAgICAgICAgICIwLjA2MTE0NiwgMC4xODc3NjIsIDAuMzE0Njg1LCAwLjQwNTM1NCwgMC41NTA0NDYsIDAuNjc3MzIsIDAuODU4OTIiLCBcCi0gICAgICAgICAgIjAuMDc2MTk0LCAwLjIwMjMwMiwgMC4zMjgzMzEsIDAuNDE5MDA3LCAwLjU2NDA0MSwgMC42OTA5NTIsIDAuODcyNDEzIiwgXAotICAgICAgICAgICIwLjA5MDA4MywgMC4yMTczMDUsIDAuMzQzNzk5LCAwLjQzNDM5MywgMC41NzcwOTksIDAuNzA0MTg0LCAwLjg4NTcxMSIsIFwKLSAgICAgICAgICAiMC4xMDk4MTksIDAuMjQwNzg0LCAwLjM2NzI3NCwgMC40NTc2NiwgMC42MDI3MTMsIDAuNzI5NDEyLCAwLjkxMDcxNiIsIFwKLSAgICAgICAgICAiMC4xMjUyODcsIDAuMjYwODU3LCAwLjM4NzU0LCAwLjQ3ODA2OCwgMC42MjI5MzQsIDAuNzQ5ODkxLCAwLjkzMTE5NyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2MjIyMywgMC4zMjExMTEsIDAuNTc5MTE1LCAwLjc2MzIzNCwgMS4wNjA4MiwgMS4zMTYzNiwgMS42ODU0OCIsIFwKLSAgICAgICAgICAiMC4wNjI1NDYsIDAuMzIwMjk4LCAwLjU3ODc4MSwgMC43NjMwODksIDEuMDU4MjUsIDEuMzE4MTgsIDEuNjg5NTIiLCBcCi0gICAgICAgICAgIjAuMDY2ODU0LCAwLjMyMTE4OSwgMC41Nzk5NTUsIDAuNzYzMDgzLCAxLjA2MDg3LCAxLjMxNjM2LCAxLjY4NzU1IiwgXAotICAgICAgICAgICIwLjA3MzQwMywgMC4zMjExNTksIDAuNTc4NjAyLCAwLjc2Mjk5NSwgMS4wNjA3OSwgMS4zMTY0NSwgMS42ODU3NSIsIFwKLSAgICAgICAgICAiMC4wODEzOTMsIDAuMzIxMzAxLCAwLjU3OTAxMywgMC43NjM3ODMsIDEuMDU4MjYsIDEuMzE2NzMsIDEuNjg1NTciLCBcCi0gICAgICAgICAgIjAuMDk2NjY4LCAwLjMyNTkxMSwgMC41ODAyMjksIDAuNzY1MDc3LCAxLjA1ODQxLCAxLjMxNjUzLCAxLjY4NTM5IiwgXAotICAgICAgICAgICIwLjEwOTg0NywgMC4zMzE5OTIsIDAuNTgxNTM1LCAwLjc2NDgzNSwgMS4wNjEwOSwgMS4zMTYyNiwgMS42ODk1NyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE0OTA0MywgMC43NDI1MTUsIDEuMzM1MzksIDEuNzYwMjIsIDIuNDM2ODIsIDMuMDI5NCwgMy44NzU5NiIsIFwKLSAgICAgICAgICAiMC4xNTc0NiwgMC43NTE3NzgsIDEuMzQ1NDcsIDEuNzY4NDcsIDIuNDQ2NTUsIDMuMDM4OTUsIDMuODg1NTMiLCBcCi0gICAgICAgICAgIjAuMTY4NTAyLCAwLjc2MzQ4NCwgMS4zNTY1OCwgMS43ODAzLCAyLjQ1ODI2LCAzLjA1MDQxLCAzLjg5NzUxIiwgXAotICAgICAgICAgICIwLjE3OTc2LCAwLjc3NTI1OSwgMS4zNjg2NywgMS43OTIwOCwgMi40Njk2NywgMy4wNjI5NiwgMy45MDk1MyIsIFwKLSAgICAgICAgICAiMC4xOTExODIsIDAuNzg2NzMsIDEuMzgwMTgsIDEuODAzNTcsIDIuNDgxNDEsIDMuMDc0MTIsIDMuOTIxMDMiLCBcCi0gICAgICAgICAgIjAuMjA5MzEsIDAuODA0NjQsIDEuMzk4NDMsIDEuODIyMjksIDIuNDk5NjEsIDMuMDkyODQsIDMuOTM5NTYiLCBcCi0gICAgICAgICAgIjAuMjI2NDI3LCAwLjgyMTU5OSwgMS40MTUyNSwgMS44Mzk1MywgMi41MTc3NCwgMy4xMDk2MywgMy45NTYzMyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI3NzE0MiwgMS4zODQyNywgMi40OTE2OCwgMy4yODA2NiwgNC41NTEzMywgNS42NTcxMSwgNy4yMzIyNyIsIFwKLSAgICAgICAgICAiMC4yNzY4OTEsIDEuMzkyNCwgMi41MDMzNCwgMy4yODI5NywgNC41NjM0NywgNS42NTY2MiwgNy4yMzE5MyIsIFwKLSAgICAgICAgICAiMC4yNzYwNDMsIDEuMzg0OTUsIDIuNDkwNDQsIDMuMzAyNDMsIDQuNTYzNDQsIDUuNjU3MTYsIDcuMjMwMTUiLCBcCi0gICAgICAgICAgIjAuMjc1MjY3LCAxLjM5NDU1LCAyLjUwMjU1LCAzLjI3ODk4LCA0LjU2MzA3LCA1LjY1NjkyLCA3LjIzMjEiLCBcCi0gICAgICAgICAgIjAuMjc2ODY4LCAxLjM5MDA3LCAyLjUwMjU5LCAzLjMwMzg1LCA0LjU0ODg3LCA1LjY1NjE3LCA3LjIzMTk2IiwgXAotICAgICAgICAgICIwLjI4MTM2NiwgMS4zODkxOCwgMi41MDI1MSwgMy4yODQxNywgNC41NjMwNiwgNS42NTkyMSwgNy4yMzIxMSIsIFwKLSAgICAgICAgICAiMC4yODc4ODcsIDEuMzgzNDEsIDIuNTAyNTUsIDMuMzA0OTEsIDQuNTQ0ODksIDUuNjU3OTgsIDcuMjMxODkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTAwNzYsIDAuMDEwMDc4LCAwLjAxMDA3OCwgMC4wMTAwNzcsIDAuMDEwMDc1LCAwLjAxMDA3NSwgMC4wMTAwNzEiLCBcCi0gICAgICAgICAgIjAuMDEwMDQ4LCAwLjAxMDA1MiwgMC4wMTAwNTIsIDAuMDEwMDUyLCAwLjAxMDA0NywgMC4wMTAwNDcsIDAuMDEwMDQ1IiwgXAotICAgICAgICAgICIwLjAxMDAyNCwgMC4wMTAwMywgMC4wMTAwMywgMC4wMTAwMjcsIDAuMDEwMDI1LCAwLjAxMDAyNywgMC4wMTAwMjEiLCBcCi0gICAgICAgICAgIjAuMDEsIDAuMDEwMDEyLCAwLjAxMDAxMywgMC4wMTAwMTMsIDAuMDEwMDExLCAwLjAxMDAwOSwgMC4wMTAwMDYiLCBcCi0gICAgICAgICAgIjAuMDA5OTg1LCAwLjAxMDAwNiwgMC4wMTAwMDQsIDAuMDEwMDA0LCAwLjAxMDAwMiwgMC4wMTAwMDQsIDAuMDEwMDAyIiwgXAotICAgICAgICAgICIwLjAwOTk2NywgMC4wMDk5OTQsIDAuMDA5OTk1LCAwLjAwOTk5NiwgMC4wMDk5OTUsIDAuMDA5OTk2LCAwLjAwOTk5MiIsIFwKLSAgICAgICAgICAiMC4wMDk5NjYsIDAuMDA5OTg5LCAwLjAwOTk5MywgMC4wMDk5OTMsIDAuMDA5OTksIDAuMDA5OTksIDAuMDA5OTkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwODEwNSwgMC4wMDgxNywgMC4wMDgxNzgsIDAuMDA4MTgxLCAwLjAwODE4MywgMC4wMDgxODcsIDAuMDA4MTg0IiwgXAotICAgICAgICAgICIwLjAwODA3NiwgMC4wMDgxNDksIDAuMDA4MTU5LCAwLjAwODE2MiwgMC4wMDgxNjQsIDAuMDA4MTY1LCAwLjAwODE2NiIsIFwKLSAgICAgICAgICAiMC4wMDgwNDcsIDAuMDA4MTMsIDAuMDA4MTQzLCAwLjAwODE0NywgMC4wMDgxNSwgMC4wMDgxNTEsIDAuMDA4MTUzIiwgXAotICAgICAgICAgICIwLjAwODAxOCwgMC4wMDgxMTQsIDAuMDA4MTMsIDAuMDA4MTM1LCAwLjAwODEzOSwgMC4wMDgxNDIsIDAuMDA4MTQzIiwgXAotICAgICAgICAgICIwLjAwODAwMSwgMC4wMDgxMDMsIDAuMDA4MTIyLCAwLjAwODEyOCwgMC4wMDgxMzMsIDAuMDA4MTM1LCAwLjAwODEzOCIsIFwKLSAgICAgICAgICAiMC4wMDc5NzMsIDAuMDA4MDg2LCAwLjAwODEwOSwgMC4wMDgxMTcsIDAuMDA4MTIzLCAwLjAwODEyNywgMC4wMDgxMyIsIFwKLSAgICAgICAgICAiMC4wMDc5NTksIDAuMDA4MDc2LCAwLjAwODEwMiwgMC4wMDgxMTEsIDAuMDA4MTE5LCAwLjAwODEyMywgMC4wMDgxMjciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDg5MiwgMC4wMDg5MzIsIDAuMDA4OTM0LCAwLjAwODkzMywgMC4wMDg5MzEsIDAuMDA4OTMsIDAuMDA4OTI4IiwgXAotICAgICAgICAgICIwLjAwODg5NCwgMC4wMDg5MDcsIDAuMDA4OTA4LCAwLjAwODkwOSwgMC4wMDg5MDgsIDAuMDA4OTA3LCAwLjAwODkwNSIsIFwKLSAgICAgICAgICAiMC4wMDg4NjksIDAuMDA4ODg4LCAwLjAwODg4OCwgMC4wMDg4ODgsIDAuMDA4ODg2LCAwLjAwODg4NywgMC4wMDg4ODkiLCBcCi0gICAgICAgICAgIjAuMDA4ODQ5LCAwLjAwODg3MywgMC4wMDg4NzUsIDAuMDA4ODc1LCAwLjAwODg3MywgMC4wMDg4NzUsIDAuMDA4ODcyIiwgXAotICAgICAgICAgICIwLjAwODgyNCwgMC4wMDg4NiwgMC4wMDg4NjQsIDAuMDA4ODY2LCAwLjAwODg2NCwgMC4wMDg4NjYsIDAuMDA4ODY0IiwgXAotICAgICAgICAgICIwLjAwODgxNSwgMC4wMDg4NTQsIDAuMDA4ODYsIDAuMDA4ODYyLCAwLjAwODg2MiwgMC4wMDg4NjUsIDAuMDA4ODYiLCBcCi0gICAgICAgICAgIjAuMDA4ODAyLCAwLjAwODg0OSwgMC4wMDg4NTUsIDAuMDA4ODU1LCAwLjAwODg1NywgMC4wMDg4NTgsIDAuMDA4ODU2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDc4NTUsIDAuMDA3OTI0LCAwLjAwNzkzMywgMC4wMDc5MzUsIDAuMDA3OTM4LCAwLjAwNzkzOSwgMC4wMDc5NCIsIFwKLSAgICAgICAgICAiMC4wMDc4MjgsIDAuMDA3OTA0LCAwLjAwNzkxNCwgMC4wMDc5MTcsIDAuMDA3OTIsIDAuMDA3OTIxLCAwLjAwNzkyMiIsIFwKLSAgICAgICAgICAiMC4wMDc3OTksIDAuMDA3ODg1LCAwLjAwNzg5OCwgMC4wMDc5MDIsIDAuMDA3OTA2LCAwLjAwNzkwNywgMC4wMDc5MDkiLCBcCi0gICAgICAgICAgIjAuMDA3NzczLCAwLjAwNzg3LCAwLjAwNzg4NiwgMC4wMDc4OTEsIDAuMDA3ODk2LCAwLjAwNzg5OCwgMC4wMDc5IiwgXAotICAgICAgICAgICIwLjAwNzc1NCwgMC4wMDc4NTgsIDAuMDA3ODc4LCAwLjAwNzg4NCwgMC4wMDc4ODksIDAuMDA3ODkyLCAwLjAwNzg5NCIsIFwKLSAgICAgICAgICAiMC4wMDc3MywgMC4wMDc4NDMsIDAuMDA3ODY2LCAwLjAwNzg3NCwgMC4wMDc4OCwgMC4wMDc4ODQsIDAuMDA3ODg3IiwgXAotICAgICAgICAgICIwLjAwNzcxNCwgMC4wMDc4MzMsIDAuMDA3ODU5LCAwLjAwNzg2OCwgMC4wMDc4NzYsIDAuMDA3ODgsIDAuMDA3ODg0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDY5MjMsIDAuMDA2OTI2LCAwLjAwNjkyNSwgMC4wMDY5MjUsIDAuMDA2OTI1LCAwLjAwNjkyMywgMC4wMDY5MjQiLCBcCi0gICAgICAgICAgIjAuMDA2OTE1LCAwLjAwNjk0MiwgMC4wMDY5NDQsIDAuMDA2OTQ0LCAwLjAwNjk0NSwgMC4wMDY5NDMsIDAuMDA2OTQ0IiwgXAotICAgICAgICAgICIwLjAwNjg4NywgMC4wMDY5MzgsIDAuMDA2OTQ1LCAwLjAwNjk0NiwgMC4wMDY5NDksIDAuMDA2OTQ4LCAwLjAwNjk0OCIsIFwKLSAgICAgICAgICAiMC4wMDY4NjIsIDAuMDA2OTI3LCAwLjAwNjk0NCwgMC4wMDY5NDYsIDAuMDA2OTQ4LCAwLjAwNjk1LCAwLjAwNjk1IiwgXAotICAgICAgICAgICIwLjAwNjg0MSwgMC4wMDY5MjgsIDAuMDA2OTM1LCAwLjAwNjk0NiwgMC4wMDY5NDcsIDAuMDA2OTQ4LCAwLjAwNjk0NyIsIFwKLSAgICAgICAgICAiMC4wMDY4MiwgMC4wMDY5MTksIDAuMDA2OTIzLCAwLjAwNjk0LCAwLjAwNjk0NSwgMC4wMDY5NDgsIDAuMDA2OTQ3IiwgXAotICAgICAgICAgICIwLjAwNjc5OCwgMC4wMDY5MDgsIDAuMDA2OTI5LCAwLjAwNjkzMSwgMC4wMDY5NCwgMC4wMDY5NDMsIDAuMDA2OTQ2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDM1NzIsIDAuMDAzNTg5LCAwLjAwMzU5MSwgMC4wMDM1OTEsIDAuMDAzNTkxLCAwLjAwMzU5MSwgMC4wMDM1OTEiLCBcCi0gICAgICAgICAgIjAuMDAzNTAyLCAwLjAwMzU3MiwgMC4wMDM1ODEsIDAuMDAzNTg0LCAwLjAwMzU4NywgMC4wMDM1ODgsIDAuMDAzNTg5IiwgXAotICAgICAgICAgICIwLjAwMzQ0MywgMC4wMDM1NTEsIDAuMDAzNTY5LCAwLjAwMzU3NSwgMC4wMDM1OCwgMC4wMDM1ODIsIDAuMDAzNTg1IiwgXAotICAgICAgICAgICIwLjAwMzQwMiwgMC4wMDM1MzMsIDAuMDAzNTU4LCAwLjAwMzU2NiwgMC4wMDM1NzMsIDAuMDAzNTc3LCAwLjAwMzU4IiwgXAotICAgICAgICAgICIwLjAwMzM3MiwgMC4wMDM1MTYsIDAuMDAzNTQ3LCAwLjAwMzU1NywgMC4wMDM1NjcsIDAuMDAzNTcyLCAwLjAwMzU3NiIsIFwKLSAgICAgICAgICAiMC4wMDMzNDIsIDAuMDAzNDkyLCAwLjAwMzUzLCAwLjAwMzU0NCwgMC4wMDM1NTcsIDAuMDAzNTYzLCAwLjAwMzU2OSIsIFwKLSAgICAgICAgICAiMC4wMDMzMjQsIDAuMDAzNDc0LCAwLjAwMzUxOCwgMC4wMDM1MzQsIDAuMDAzNTQ4LCAwLjAwMzU1NiwgMC4wMDM1NjQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJEIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNTA2MSwgMC4wMDUwNzYsIDAuMDA1MDc3LCAwLjAwNTA3OCwgMC4wMDUwNzgsIDAuMDA1MDc5LCAwLjAwNTA3NyIsIFwKLSAgICAgICAgICAiMC4wMDUwNTksIDAuMDA1MTE0LCAwLjAwNTEyLCAwLjAwNTEyMiwgMC4wMDUxMjQsIDAuMDA1MTI1LCAwLjAwNTEyNSIsIFwKLSAgICAgICAgICAiMC4wMDUwMjgsIDAuMDA1MTE3LCAwLjAwNTEyOCwgMC4wMDUxMzIsIDAuMDA1MTM1LCAwLjAwNTEzNiwgMC4wMDUxMzgiLCBcCi0gICAgICAgICAgIjAuMDA1LCAwLjAwNTEwMywgMC4wMDUxMjcsIDAuMDA1MTM0LCAwLjAwNTEzOCwgMC4wMDUxNDEsIDAuMDA1MTQzIiwgXAotICAgICAgICAgICIwLjAwNDk3NywgMC4wMDUxMDYsIDAuMDA1MTI1LCAwLjAwNTEzMiwgMC4wMDUxMzksIDAuMDA1MTQyLCAwLjAwNTE0NCIsIFwKLSAgICAgICAgICAiMC4wMDQ5NTUsIDAuMDA1MDk0LCAwLjAwNTEyMSwgMC4wMDUxMjgsIDAuMDA1MTM3LCAwLjAwNTE0LCAwLjAwNTE0MyIsIFwKLSAgICAgICAgICAiMC4wMDQ5MywgMC4wMDUwODEsIDAuMDA1MTE3LCAwLjAwNTExOCwgMC4wMDUxMzEsIDAuMDA1MTM1LCAwLjAwNTE0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDM1NjcsIDAuMDAzNTg3LCAwLjAwMzU4OSwgMC4wMDM1OSwgMC4wMDM1OSwgMC4wMDM1OTEsIDAuMDAzNTkxIiwgXAotICAgICAgICAgICIwLjAwMzQ4MywgMC4wMDM1NjcsIDAuMDAzNTc4LCAwLjAwMzU4MSwgMC4wMDM1ODQsIDAuMDAzNTg2LCAwLjAwMzU4NyIsIFwKLSAgICAgICAgICAiMC4wMDM0MTMsIDAuMDAzNTQyLCAwLjAwMzU2NCwgMC4wMDM1NzEsIDAuMDAzNTc2LCAwLjAwMzU3OSwgMC4wMDM1ODIiLCBcCi0gICAgICAgICAgIjAuMDAzMzY5LCAwLjAwMzUyMSwgMC4wMDM1NSwgMC4wMDM1NiwgMC4wMDM1NjgsIDAuMDAzNTczLCAwLjAwMzU3NyIsIFwKLSAgICAgICAgICAiMC4wMDMzNCwgMC4wMDM1MDEsIDAuMDAzNTM4LCAwLjAwMzU1LCAwLjAwMzU2MSwgMC4wMDM1NjcsIDAuMDAzNTcyIiwgXAotICAgICAgICAgICIwLjAwMzMxOCwgMC4wMDM0NzYsIDAuMDAzNTIsIDAuMDAzNTM2LCAwLjAwMzU1LCAwLjAwMzU1OCwgMC4wMDM1NjUiLCBcCi0gICAgICAgICAgIjAuMDAzMzAyLCAwLjAwMzQ1NiwgMC4wMDM1MDYsIDAuMDAzNTI0LCAwLjAwMzU0MSwgMC4wMDM1NSwgMC4wMDM1NTgiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogTkFORDRCWDQgKgotICogLS0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKE5BTkQ0Qlg0KSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuNTUyNzg3OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBTikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwODM0NjAxOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDgzNDE1OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDgzNDYwMTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDEyNjgsIDAuMDAxMjQyLCAwLjAwMTIyNiwgMC4wMDEyMTUsIDAuMDAxMjEsIDAuMDAxMjA3LCAwLjAwMTIwNCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjczMywgMC4wMDI3MTYsIDAuMDAyNzAyLCAwLjAwMjY5NywgMC4wMDI2OTMsIDAuMDAyNjg5LCAwLjAwMjY4OSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAyOTE1ODQ7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAyOTE1ODQ7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAyOTAzMDk7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxMjI1LCAwLjAwMTIyNCwgMC4wMDEyMjMsIDAuMDAxMjIzLCAwLjAwMTIyMywgMC4wMDEyMjMsIDAuMDAxMjIzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxMjI2LCAwLjAwMTIyNywgMC4wMDEyMjcsIDAuMDAxMjI4LCAwLjAwMTIyOCwgMC4wMDEyMjgsIDAuMDAxMjI4Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihDKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDMwNjc2ODsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDMwNjc2ODsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDMwNTcyMzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDEyMjUsIDAuMDAxMjI0LCAwLjAwMTIyMywgMC4wMDEyMjMsIDAuMDAxMjIzLCAwLjAwMTIyMywgMC4wMDEyMjIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDEyMjYsIDAuMDAxMjI4LCAwLjAwMTIyNywgMC4wMDEyMjcsIDAuMDAxMjI4LCAwLjAwMTIyOSwgMC4wMDEyMjkiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEQpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMjk3MjIzOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMjk2OTU1OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMjk3MjIzOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDA2NCwgMC4wMDAwNjMsIDAuMDAwMDYyLCAwLjAwMDA2MiwgMC4wMDAwNjMsIDAuMDAwMDYyLCAwLjAwMDA2MyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTM5LCAwLjAwMTM5MSwgMC4wMDEzOTQsIDAuMDAxMzkyLCAwLjAwMTM5MiwgMC4wMDEzOTIsIDAuMDAxMzkyIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMTE5ODc0OwotICAgIGZ1bmN0aW9uIDogIighKCgoKCFBTikgQikgQykgRCkpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTYyOTEsIDAuMjI2NDIxLCAwLjM1MzkwNCwgMC40NDQ2OTUsIDAuNTg5NjAyLCAwLjcxNjY0LCAwLjg5Nzc2OCIsIFwKLSAgICAgICAgICAiMC4xMDc3ODcsIDAuMjM3OTMyLCAwLjM2NTQxNSwgMC40NTYyNDEsIDAuNjAxMjg2LCAwLjcyODE0NSwgMC45MDkyNjkiLCBcCi0gICAgICAgICAgIjAuMTIyODg2LCAwLjI1MzA3MywgMC4zODA1NzcsIDAuNDcxMzMzLCAwLjYxNjQxOCwgMC43NDMyOTgsIDAuOTI0NDYyIiwgXAotICAgICAgICAgICIwLjEzODAzOSwgMC4yNjgyNiwgMC4zOTU3NDMsIDAuNDg2NTYsIDAuNjMxNjEyLCAwLjc1ODQ5NywgMC45Mzk2MjIiLCBcCi0gICAgICAgICAgIjAuMTUyOTQzLCAwLjI4MzA5MywgMC40MTA1NjksIDAuNTAxMzU0LCAwLjY0NjQyMiwgMC43NzMyODMsIDAuOTU0MzkzIiwgXAotICAgICAgICAgICIwLjE3NjI0OSwgMC4zMDYzMzIsIDAuNDMzODMyLCAwLjUyNDYwNSwgMC42Njk2NzMsIDAuNzk2NTk0LCAwLjk3NzczOCIsIFwKLSAgICAgICAgICAiMC4xOTUxOTcsIDAuMzI1NTExLCAwLjQ1Mjk4NiwgMC41NDM3MzMsIDAuNjg4ODI1LCAwLjgxNTY5MywgMC45OTY4NjUiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODMzNjQsIDAuMzM3NDM3LCAwLjU5NDU5OCwgMC43NzgxMTksIDEuMDcyMzQsIDEuMzI5NTcsIDEuNjk3MTYiLCBcCi0gICAgICAgICAgIjAuMDgzNDA3LCAwLjMzNzQzOCwgMC41OTQ1MjYsIDAuNzc4MjQ2LCAxLjA3MjY1LCAxLjMyOTk3LCAxLjY5NzgzIiwgXAotICAgICAgICAgICIwLjA4MzM4NCwgMC4zMzc0MDgsIDAuNTk0NTU4LCAwLjc3ODM1NywgMS4wNzIxNiwgMS4zMjk4MywgMS42OTc0MyIsIFwKLSAgICAgICAgICAiMC4wODMzMjIsIDAuMzM3NDU1LCAwLjU5NDU1LCAwLjc3ODQzLCAxLjA3MjY0LCAxLjMyOTU2LCAxLjY5NjU1IiwgXAotICAgICAgICAgICIwLjA4MzQxMywgMC4zMzc0MjQsIDAuNTk0NTg5LCAwLjc3ODE0OSwgMS4wNzI2NCwgMS4zMzAwNywgMS42OTgxNSIsIFwKLSAgICAgICAgICAiMC4wODQwNDMsIDAuMzM3NDQyLCAwLjU5NDYxOSwgMC43NzgzNDksIDEuMDcyNjEsIDEuMzI5NzQsIDEuNjk3NDIiLCBcCi0gICAgICAgICAgIjAuMDg1NDA5LCAwLjMzNzg1NSwgMC41OTQ1NzUsIDAuNzc4MzExLCAxLjA3MjE5LCAxLjMyOTM5LCAxLjY5NzM5Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjQ2NDY1LCAwLjg0MDg0MiwgMS40MzM3MiwgMS44NTc3MSwgMi41MzQ5LCAzLjEyNzQ1LCAzLjk3NCIsIFwKLSAgICAgICAgICAiMC4yNTc3NDgsIDAuODUyMTQyLCAxLjQ0NTMzLCAxLjg2OTU2LCAyLjU0NTk2LCAzLjEzODg5LCAzLjk4NTQzIiwgXAotICAgICAgICAgICIwLjI3MjUyNywgMC44NjY5MDIsIDEuNDYwNDcsIDEuODg0MzQsIDIuNTYxNzIsIDMuMTU0MDgsIDQuMDAwNDYiLCBcCi0gICAgICAgICAgIjAuMjg3MDU1LCAwLjg4MTU3NiwgMS40NzUyMywgMS44OTkwNiwgMi41NzY0OCwgMy4xNjg3MSwgNC4wMTUyNCIsIFwKLSAgICAgICAgICAiMC4zMDE0NTYsIDAuODk2MDM4LCAxLjQ4OTg0LCAxLjkxMjYyLCAyLjU5MTIsIDMuMTgzMTIsIDQuMDI5ODIiLCBcCi0gICAgICAgICAgIjAuMzIyOSwgMC45MTc2MTksIDEuNTExNDEsIDEuOTM0NzcsIDIuNjEyNzcsIDMuMjA1MTgsIDQuMDUxNTIiLCBcCi0gICAgICAgICAgIjAuMzM5OTQ2LCAwLjkzNDYsIDEuNTI4MjQsIDEuOTUxODMsIDIuNjMwMDQsIDMuMjIyNzIsIDQuMDY4OCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI4OTYwOSwgMS40MDg0OSwgMi41MTYxNywgMy4yOTUzNiwgNC41NjAyNiwgNS42Njk2NiwgNy4yNDQ3MSIsIFwKLSAgICAgICAgICAiMC4yOTA0NzMsIDEuNDA4NjYsIDIuNTI0NzMsIDMuMzE4MTUsIDQuNTc1OTMsIDUuNjcwMTYsIDcuMjQ0ODYiLCBcCi0gICAgICAgICAgIjAuMjkwNDA5LCAxLjM5Nzg3LCAyLjUxNjQsIDMuMjkzNTgsIDQuNTc2NTEsIDUuNjY5NzEsIDcuMjQ0NzIiLCBcCi0gICAgICAgICAgIjAuMjkwNDEsIDEuMzk3MDMsIDIuNTE2NTQsIDMuMzE3OSwgNC41NzY2OCwgNS42Njk1MywgNy4yNDQ4NSIsIFwKLSAgICAgICAgICAiMC4yOTA0MjEsIDEuMzk3MDcsIDIuNTE2NjQsIDMuMjk2MDMsIDQuNTc2ODUsIDUuNjY5MDYsIDcuMjQ0ODciLCBcCi0gICAgICAgICAgIjAuMjkwNDI0LCAxLjM5NzExLCAyLjUxNjU1LCAzLjI5NDM5LCA0LjU3NjcyLCA1LjY2NDEyLCA3LjI0NDcyIiwgXAotICAgICAgICAgICIwLjI5MDQ4OCwgMS40MDU0OSwgMi41MDY1OSwgMy4zMTczMywgNC41NjIxNCwgNS42NzAxNiwgNy4yNDQ4MSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0MTYwOCwgMC4xNzAzMDIsIDAuMjk3NzY0LCAwLjM4ODY2NywgMC41MzM5ODgsIDAuNjYxMjAzLCAwLjg0MjkxMSIsIFwKLSAgICAgICAgICAiMC4wNTMyMTksIDAuMTgxNTE1LCAwLjMwODkzLCAwLjM5OTgxOSwgMC41NDUyLCAwLjY3MjMsIDAuODUzOTQ0IiwgXAotICAgICAgICAgICIwLjA2Nzk4OCwgMC4xOTYyNDQsIDAuMzIzNjU0LCAwLjQxNDU0OCwgMC41NTczNCwgMC42ODQ1MDUsIDAuODY2MTQxIiwgXAotICAgICAgICAgICIwLjA4Mjc4OSwgMC4yMTE0NTUsIDAuMzM4Nzg2LCAwLjQyOTY0NywgMC41NzUwMTIsIDAuNzAyMTQ5LCAwLjg4MzgzNiIsIFwKLSAgICAgICAgICAiMC4wOTc4MjYsIDAuMjI1NDQ0LCAwLjM1MjYyNSwgMC40NDM0NDYsIDAuNTg4Nzg4LCAwLjcxNTk2LCAwLjg5MjQzNSIsIFwKLSAgICAgICAgICAiMC4xMTk3NjEsIDAuMjQ5NjQxLCAwLjM3NTc4MiwgMC40NjY3MjQsIDAuNjExOTg4LCAwLjczOTEzNSwgMC45MjA3NDUiLCBcCi0gICAgICAgICAgIjAuMTM3MDAyLCAwLjI3MDQ4NiwgMC4zOTY2NjcsIDAuNDg2NjUyLCAwLjYzMjQyNSwgMC43NTk0NDYsIDAuOTQxMDQ5Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDczMDgxLCAwLjMzMTMyLCAwLjU4OTM3NiwgMC43NzM5MDIsIDEuMDY4OTIsIDEuMzI3MTksIDEuNjk1NDgiLCBcCi0gICAgICAgICAgIjAuMDcyOTA1LCAwLjMzMTIxMywgMC41ODk1NDgsIDAuNzczNjc3LCAxLjA2ODU5LCAxLjMyNjcxLCAxLjY5NTg0IiwgXAotICAgICAgICAgICIwLjA3NTk4NSwgMC4zMzEzMzUsIDAuNTg5NTA2LCAwLjc3Mzg3MiwgMS4wNjkyOSwgMS4zMjcyLCAxLjY5NTQ5IiwgXAotICAgICAgICAgICIwLjA4MTc3NSwgMC4zMzEyNjUsIDAuNTg5NTY5LCAwLjc3NDI3NywgMS4wNjg4MiwgMS4zMjY4NywgMS42OTU1OCIsIFwKLSAgICAgICAgICAiMC4wODg1NSwgMC4zMzE5NjksIDAuNTg5MzEyLCAwLjc3MzYyOSwgMS4wNjg1NiwgMS4zMjY4OSwgMS42OTY2NiIsIFwKLSAgICAgICAgICAiMC4xMDE2NDcsIDAuMzM1NTk2LCAwLjU4OTQ0MSwgMC43NzM5MTYsIDEuMDY5MDksIDEuMzI2ODksIDEuNjk1NTEiLCBcCi0gICAgICAgICAgIjAuMTE0NDg4LCAwLjM0MDc1LCAwLjU5MDgwMiwgMC43NzQxMjUsIDEuMDY4NTEsIDEuMzI2ODUsIDEuNjk2NTciKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xOTQzMjgsIDAuNzg3NzUzLCAxLjM4MDc3LCAxLjgwMzU3LCAyLjQ4MDg2LCAzLjA3MzMyLCAzLjkyMDAyIiwgXAotICAgICAgICAgICIwLjIwNDM4MSwgMC43OTg1NDEsIDEuMzkxNjYsIDEuODE0ODMsIDIuNDkzNDQsIDMuMDg1OTcsIDMuOTMxODUiLCBcCi0gICAgICAgICAgIjAuMjE2NzYxLCAwLjgxMTM0OSwgMS40MDQ1OSwgMS44MjkxNSwgMi41MDYwMywgMy4wOTg1NywgMy45NDQ5NyIsIFwKLSAgICAgICAgICAiMC4yMjg4NjcsIDAuODI0MTUzLCAxLjQxNzY3LCAxLjg0MDc5LCAyLjUxOTExLCAzLjExMTcyLCAzLjk1NzQ0IiwgXAotICAgICAgICAgICIwLjI0MDM5MiwgMC44MzU3NTgsIDEuNDI5MDgsIDEuODUyNzIsIDIuNTMwNjYsIDMuMTIzMTcsIDMuOTY5NiIsIFwKLSAgICAgICAgICAiMC4yNTg5LCAwLjg1NDA0NCwgMS40NDc3MSwgMS44NzE1MSwgMi41NDk2NSwgMy4xNDI0NiwgMy45ODgzMiIsIFwKLSAgICAgICAgICAiMC4yNzQ2NzcsIDAuODcwMDA4LCAxLjQ2NDIzLCAxLjg4Nzc2LCAyLjU2NTU1LCAzLjE1Nzc3LCA0LjAwNDQ2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjkwMzQxLCAxLjQwMzQ0LCAyLjUxNjA2LCAzLjMwNTgyLCA0LjU3MzI5LCA1LjY2OTY4LCA3LjI0MzkiLCBcCi0gICAgICAgICAgIjAuMjg5NzEyLCAxLjQwMzM0LCAyLjUxNjA4LCAzLjMxNDkyLCA0LjU1OTQzLCA1LjY3MDE3LCA3LjI0NDkxIiwgXAotICAgICAgICAgICIwLjI5MDU5LCAxLjQwMzE4LCAyLjUxNTgxLCAzLjI5NDUsIDQuNTc2NDIsIDUuNjY1OTQsIDcuMjQ0NjUiLCBcCi0gICAgICAgICAgIjAuMjkwNDM1LCAxLjQwOTMxLCAyLjUxNjUzLCAzLjMxNzI4LCA0LjU1ODY2LCA1LjY3MDE4LCA3LjI0NDQ2IiwgXAotICAgICAgICAgICIwLjI5MDMwNiwgMS40MDM1MiwgMi41MTYxMywgMy4zMTczNCwgNC41NzYzNywgNS42Njk2NiwgNy4yNDQ3MSIsIFwKLSAgICAgICAgICAiMC4yOTA5NTksIDEuMzk3MDUsIDIuNTA0NCwgMy4zMTczNywgNC41NTk2OCwgNS42NjU2NywgNy4yNDQ1OCIsIFwKLSAgICAgICAgICAiMC4yOTE2NDUsIDEuNDAzMTUsIDIuNTE2NjQsIDMuMzE3NjYsIDQuNTc2NDYsIDUuNjY5OTUsIDcuMjQ0NjkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzkzMjQsIDAuMTY3MDMzLCAwLjI5NDI5NywgMC4zODUxNDcsIDAuNTMwNDY0LCAwLjY1NzcxNywgMC44MzkxMjgiLCBcCi0gICAgICAgICAgIjAuMDUwOTUzLCAwLjE3ODczNiwgMC4zMDU5ODQsIDAuMzk2ODk2LCAwLjU0MjEzMywgMC42NjkyMDYsIDAuODUwOTM0IiwgXAotICAgICAgICAgICIwLjA2NTU0MywgMC4xOTMxNywgMC4zMjA0MTEsIDAuNDExMiwgMC41NTQyNzQsIDAuNjgxNDEyLCAwLjg2Mjc3MyIsIFwKLSAgICAgICAgICAiMC4wODA3MTMsIDAuMjA3OTA3LCAwLjMzNDE3OSwgMC40MjUwMjEsIDAuNTcwNDI0LCAwLjY5NzQ1NSwgMC44Nzg5OCIsIFwKLSAgICAgICAgICAiMC4wOTU0MzcsIDAuMjIyNDAzLCAwLjM0OTM3MiwgMC40NDAxNDEsIDAuNTg1NDYxLCAwLjcxMjU3MywgMC44ODg5MjgiLCBcCi0gICAgICAgICAgIjAuMTE2NjIzLCAwLjI0NjU5MiwgMC4zNzI4MTIsIDAuNDYzNDU2LCAwLjYwODc0MywgMC43MzU3NDgsIDAuOTE3MzY0IiwgXAotICAgICAgICAgICIwLjEzMzExMywgMC4yNjcyNDgsIDAuMzkzNDQ4LCAwLjQ4MzUzNiwgMC42MjkwNzUsIDAuNzU2MTIxLCAwLjkzNzY2Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY5MjExLCAwLjMyNzYyOCwgMC41ODU4NTgsIDAuNzcwMjc4LCAxLjA2NTMzLCAxLjMyNDA1LCAxLjY5MjkzIiwgXAotICAgICAgICAgICIwLjA2OTM0MSwgMC4zMjc1ODMsIDAuNTg1ODM5LCAwLjc3MDQ1MiwgMS4wNjUwNSwgMS4zMjM3MiwgMS42OTMwMSIsIFwKLSAgICAgICAgICAiMC4wNzMxMTQsIDAuMzI3NjcsIDAuNTg1NywgMC43NzAwNTcsIDEuMDY1NCwgMS4zMjQyMywgMS42OTIwNyIsIFwKLSAgICAgICAgICAiMC4wNzg4MjgsIDAuMzI3NTEzLCAwLjU4NTk3MSwgMC43NzAyNTMsIDEuMDY2MSwgMS4zMjMxNiwgMS42OTMxMyIsIFwKLSAgICAgICAgICAiMC4wODYyLCAwLjMyODQyNywgMC41ODU4MTcsIDAuNzcwMDM4LCAxLjA2NTMxLCAxLjMyMzQyLCAxLjY5MzA0IiwgXAotICAgICAgICAgICIwLjA5OTg0NiwgMC4zMzIyNDUsIDAuNTg1ODQ2LCAwLjc3MDEzMywgMS4wNjU3MSwgMS4zMjMxNiwgMS42OTIyMiIsIFwKLSAgICAgICAgICAiMC4xMTMyMTMsIDAuMzM3NjY3LCAwLjU4NzE5NSwgMC43NzAxMjksIDEuMDY1MjksIDEuMzIzNSwgMS42OTMwNCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE3OTQyNiwgMC43NzI5MTUsIDEuMzY1NjQsIDEuNzg5NjcsIDIuNDY2ODksIDMuMDU5ODEsIDMuOTA2MjEiLCBcCi0gICAgICAgICAgIjAuMTg4ODQyLCAwLjc4Mjg5MywgMS4zNzYxNiwgMS43OTk4LCAyLjQ3NzUxLCAzLjA3MDEzLCAzLjkxNjQxIiwgXAotICAgICAgICAgICIwLjIwMDY2NiwgMC43OTUzODQsIDEuMzg4NjgsIDEuODExOTYsIDIuNDkwMjEsIDMuMDgyNTYsIDMuOTI4ODkiLCBcCi0gICAgICAgICAgIjAuMjEyNTg5LCAwLjgwNzkwNiwgMS40MDE0NSwgMS44MjQ1MywgMi41MDI3OSwgMy4wOTU0NSwgMy45NDExOCIsIFwKLSAgICAgICAgICAiMC4yMjQzMzQsIDAuODE5NDMyLCAxLjQxMzY2LCAxLjgzNjY0LCAyLjUxNDgyLCAzLjEwNzU0LCAzLjk1MzciLCBcCi0gICAgICAgICAgIjAuMjQzNjA1LCAwLjgzODgwMSwgMS40MzI3NywgMS44NTYyNywgMi41MzQyMiwgMy4xMjY2MywgMy45NzMyMiIsIFwKLSAgICAgICAgICAiMC4yNjA0NDEsIDAuODU1OTgxLCAxLjQ0OTY4LCAxLjg3MzQ0LCAyLjU1MTQ5LCAzLjE0NDM3LCAzLjk5MDM1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjkwMzY2LCAxLjQwNzYzLCAyLjUwNDg5LCAzLjMxNzU1LCA0LjU2MzE1LCA1LjY2NjIxLCA3LjI0NDk3IiwgXAotICAgICAgICAgICIwLjI5MDM0OCwgMS4zOTcwNCwgMi41MDU4NiwgMy4zMTc0MSwgNC41NjQ1MSwgNS42NjYwMSwgNy4yNDQ4MiIsIFwKLSAgICAgICAgICAiMC4yODk3MjQsIDEuNDAzNDEsIDIuNTE2MjYsIDMuMjk1MzEsIDQuNTc2NjcsIDUuNjYzNiwgNy4yNDQ2MyIsIFwKLSAgICAgICAgICAiMC4yOTA0ODksIDEuMzk2NTEsIDIuNTE2NjEsIDMuMzE3MywgNC41NTk0OSwgNS42NzAyLCA3LjI0NDQ5IiwgXAotICAgICAgICAgICIwLjI4OTM2OSwgMS4zOTcxMywgMi41MDMwMSwgMy4zMTczMywgNC41NjA3NCwgNS42Njc1MSwgNy4yNDQ4IiwgXAotICAgICAgICAgICIwLjI5MTIxNSwgMS40MDU2LCAyLjUxNjM1LCAzLjI5NTQxLCA0LjU3NjMyLCA1LjY3MjExLCA3LjI0NDY3IiwgXAotICAgICAgICAgICIwLjI5NDk2NywgMS4zOTY2MiwgMi41MTYyNiwgMy4zMTc0NiwgNC41NTk2NiwgNS42NjM0NSwgNy4yNDU1MSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJEIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzNTg4NiwgMC4xNjI3NDMsIDAuMjg5NiwgMC4zODAyMjYsIDAuNTI1MDk5LCAwLjY1MTg3NSwgMC44MzM2NDIiLCBcCi0gICAgICAgICAgIjAuMDQ3NzE5LCAwLjE3NDEyOCwgMC4zMDA5OTIsIDAuMzkxNTQ1LCAwLjUzNjQ4NywgMC42NjMyODIsIDAuODQ0MzkyIiwgXAotICAgICAgICAgICIwLjA2MjU5NSwgMC4xODg5NzEsIDAuMzE1NzQsIDAuNDA2MzM2LCAwLjU0ODY5NSwgMC42NzU0OTIsIDAuODU2Nzc1IiwgXAotICAgICAgICAgICIwLjA3NzM4NiwgMC4yMDM0NjMsIDAuMzMwMzY0LCAwLjQyMDg1OCwgMC41NjU4NzksIDAuNjg5MzU4LCAwLjg3MDUwNCIsIFwKLSAgICAgICAgICAiMC4wOTE2MTMsIDAuMjE4NDE1LCAwLjM0NDg0LCAwLjQzNTQwOSwgMC41ODA1MDcsIDAuNzA3MTA3LCAwLjg4NDM0MyIsIFwKLSAgICAgICAgICAiMC4xMTE5NzUsIDAuMjQyNDY4LCAwLjM2ODM5NiwgMC40NTg2ODIsIDAuNjAzNDgxLCAwLjczMDMxMSwgMC45MTE1MDMiLCBcCi0gICAgICAgICAgIjAuMTI3Nzc5LCAwLjI2MzEzNiwgMC4zODkxMDEsIDAuNDc5MTk1LCAwLjYyMzk1NCwgMC43NTA3LCAwLjkzMTczNiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2NTEzNCwgMC4zMjM1NTcsIDAuNTgxMDU1LCAwLjc2NDg4OCwgMS4wNTkzNSwgMS4zMjAzLCAxLjY4NjQxIiwgXAotICAgICAgICAgICIwLjA2NTMyNywgMC4zMjI4ODMsIDAuNTgwNzMyLCAwLjc2NDY5OCwgMS4wNjE3NSwgMS4zMTcxNSwgMS42OTAwOCIsIFwKLSAgICAgICAgICAiMC4wNjkzMTMsIDAuMzIyNjg5LCAwLjU4MTk0NCwgMC43NjQ3MTUsIDEuMDYxOTIsIDEuMzIwMTYsIDEuNjg4OTUiLCBcCi0gICAgICAgICAgIjAuMDc1OTM2LCAwLjMyMzA4LCAwLjU4MDY2NCwgMC43NjQ2OTEsIDEuMDU5NTQsIDEuMzIwNDIsIDEuNjg5NTIiLCBcCi0gICAgICAgICAgIjAuMDgzNzQ5LCAwLjMyMzgxMSwgMC41ODIxNDcsIDAuNzY0OTE3LCAxLjA1OTk1LCAxLjMxNzAzLCAxLjY4Njc3IiwgXAotICAgICAgICAgICIwLjA5ODQyMiwgMC4zMjg1MzcsIDAuNTgyMTE1LCAwLjc2NjczLCAxLjA1OTM0LCAxLjMxNzAzLCAxLjY4NTA2IiwgXAotICAgICAgICAgICIwLjExMjAzNSwgMC4zMzM5NjMsIDAuNTgyMTE0LCAwLjc2NTU0MywgMS4wNTkxOSwgMS4zMTc0NCwgMS42ODU0NCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE1NTMwMywgMC43NDg1ODMsIDEuMzQyMTcsIDEuNzY1NzEsIDIuNDQzMzgsIDMuMDM1MzksIDMuODgxOTciLCBcCi0gICAgICAgICAgIjAuMTYzNzQ1LCAwLjc1NzkxNywgMS4zNTEwMSwgMS43NzQzOSwgMi40NTIxMSwgMy4wNDUwMSwgMy44OTE3NSIsIFwKLSAgICAgICAgICAiMC4xNzQ1NywgMC43Njk0OSwgMS4zNjI2MiwgMS43ODYwNSwgMi40NjQ4MSwgMy4wNTY3NCwgMy45MDM0MSIsIFwKLSAgICAgICAgICAiMC4xODYwNDUsIDAuNzgxMjk2LCAxLjM3NDU5LCAxLjc5OTI0LCAyLjQ3NjgxLCAzLjA2ODg1LCAzLjkxNTQxIiwgXAotICAgICAgICAgICIwLjE5NzIwNCwgMC43OTI1NTIsIDEuMzg1OTcsIDEuODEwNjMsIDIuNDg3ODcsIDMuMDgwMzMsIDMuOTI2OTMiLCBcCi0gICAgICAgICAgIjAuMjE1NjQ0LCAwLjgxMTA2MSwgMS40MDQ4NiwgMS44MjkzMywgMi41MDYyMiwgMy4wOTkyLCAzLjk0NTM2IiwgXAotICAgICAgICAgICIwLjIzMjkyMywgMC44MjcxNDQsIDEuNDIwODIsIDEuODQ0MzYsIDIuNTIzMTksIDMuMTE1MTEsIDMuOTYxNzYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yOTAzNDUsIDEuMzk3MTYsIDIuNTE2NTMsIDMuMzE3NjgsIDQuNTc2NzYsIDUuNjcxMDMsIDcuMjQ0ODEiLCBcCi0gICAgICAgICAgIjAuMjg5MTc1LCAxLjQwMjM0LCAyLjUxNDY1LCAzLjMwNzUzLCA0LjU3NTkyLCA1LjY2OTIsIDcuMjQ0MjUiLCBcCi0gICAgICAgICAgIjAuMjg5MjIyLCAxLjQwMjk2LCAyLjUwNDc1LCAzLjMwNzgyLCA0LjU1ODg5LCA1LjY2OTQ3LCA3LjI0NDc5IiwgXAotICAgICAgICAgICIwLjI4NzUxNiwgMS4zOTcyMywgMi41MTQ3OCwgMy4zMTgwMywgNC41NTkxNSwgNS42NzA5NCwgNy4yNDQ5NSIsIFwKLSAgICAgICAgICAiMC4yODk1MTUsIDEuNDAyODUsIDIuNTE1MTQsIDMuMzE4MDUsIDQuNTc2NCwgNS42NzIxNiwgNy4yNDM4OSIsIFwKLSAgICAgICAgICAiMC4yOTM3NTksIDEuMzk2NTcsIDIuNTE2MTQsIDMuMzE4MTcsIDQuNTYxNTYsIDUuNjY3NDksIDcuMjQ0NTgiLCBcCi0gICAgICAgICAgIjAuMjk5NzA4LCAxLjQwMjkzLCAyLjUxNTY2LCAzLjMxNjA2LCA0LjU3Njc4LCA1LjY2OTM1LCA3LjI0NDYzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQU4iOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDExOTY1LCAwLjAxMTk3LCAwLjAxMTk2NSwgMC4wMTE5NjgsIDAuMDExOTY2LCAwLjAxMTk2NCwgMC4wMTE5NjIiLCBcCi0gICAgICAgICAgIjAuMDExOTM2LCAwLjAxMTkzOSwgMC4wMTE5MzksIDAuMDExOTM4LCAwLjAxMTkzNiwgMC4wMTE5MzYsIDAuMDExOTMiLCBcCi0gICAgICAgICAgIjAuMDExOTE0LCAwLjAxMTkyMiwgMC4wMTE5MjEsIDAuMDExOTE5LCAwLjAxMTkxNywgMC4wMTE5MTYsIDAuMDExOTExIiwgXAotICAgICAgICAgICIwLjAxMTg5MywgMC4wMTE5MDIsIDAuMDExOTAzLCAwLjAxMTkwNSwgMC4wMTE5LCAwLjAxMTg5OSwgMC4wMTE4OTgiLCBcCi0gICAgICAgICAgIjAuMDExODc3LCAwLjAxMTg5NiwgMC4wMTE4OTQsIDAuMDExODk0LCAwLjAxMTg5MywgMC4wMTE4OTQsIDAuMDExODk0IiwgXAotICAgICAgICAgICIwLjAxMTg1OCwgMC4wMTE4ODQsIDAuMDExODg1LCAwLjAxMTg4NiwgMC4wMTE4ODYsIDAuMDExODg1LCAwLjAxMTg4MSIsIFwKLSAgICAgICAgICAiMC4wMTE4NTQsIDAuMDExODc3LCAwLjAxMTg4MiwgMC4wMTE4ODIsIDAuMDExODgxLCAwLjAxMTg3OSwgMC4wMTE4OCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA3Mzg0LCAwLjAwNzQ0NiwgMC4wMDc0NTQsIDAuMDA3NDU3LCAwLjAwNzQ1OSwgMC4wMDc0NiwgMC4wMDc0NjEiLCBcCi0gICAgICAgICAgIjAuMDA3MzU1LCAwLjAwNzQyNSwgMC4wMDc0MzUsIDAuMDA3NDM4LCAwLjAwNzQ0LCAwLjAwNzQ0MiwgMC4wMDc0NDMiLCBcCi0gICAgICAgICAgIjAuMDA3MzI1LCAwLjAwNzQwNiwgMC4wMDc0MTksIDAuMDA3NDIzLCAwLjAwNzQyNiwgMC4wMDc0MjgsIDAuMDA3NDI5IiwgXAotICAgICAgICAgICIwLjAwNzI5NywgMC4wMDczOSwgMC4wMDc0MDYsIDAuMDA3NDExLCAwLjAwNzQxNiwgMC4wMDc0MTgsIDAuMDA3NDIiLCBcCi0gICAgICAgICAgIjAuMDA3MjgxLCAwLjAwNzM4LCAwLjAwNzM5OSwgMC4wMDc0MDUsIDAuMDA3NDEsIDAuMDA3NDEzLCAwLjAwNzQxNSIsIFwKLSAgICAgICAgICAiMC4wMDcyNTMsIDAuMDA3MzYyLCAwLjAwNzM4NSwgMC4wMDczOTMsIDAuMDA3NCwgMC4wMDc0MDMsIDAuMDA3NDA2IiwgXAotICAgICAgICAgICIwLjAwNzIzOCwgMC4wMDczNTMsIDAuMDA3Mzc4LCAwLjAwNzM4NywgMC4wMDczOTUsIDAuMDA3Mzk5LCAwLjAwNzQwMyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEwMDI5LCAwLjAxMDAyOSwgMC4wMTAwMjcsIDAuMDEwMDI1LCAwLjAxMDAyNSwgMC4wMTAwMjYsIDAuMDEwMDIyIiwgXAotICAgICAgICAgICIwLjAwOTk5NiwgMC4wMTAwMDQsIDAuMDEwMDA1LCAwLjAxMDAwNSwgMC4wMTAwMDMsIDAuMDEwMDAyLCAwLjAxMDAwOCIsIFwKLSAgICAgICAgICAiMC4wMDk5NjcsIDAuMDA5OTksIDAuMDA5OTk0LCAwLjAwOTk5NCwgMC4wMDk5OTgsIDAuMDA5OTkxLCAwLjAwOTk5MyIsIFwKLSAgICAgICAgICAiMC4wMDk5NDcsIDAuMDA5OTgzLCAwLjAwOTk5LCAwLjAwOTk5MSwgMC4wMDk5ODgsIDAuMDA5OTg5LCAwLjAwOTk4NiIsIFwKLSAgICAgICAgICAiMC4wMDk5MywgMC4wMDk5NzgsIDAuMDA5OTgzLCAwLjAwOTk4NSwgMC4wMDk5ODYsIDAuMDA5OTg3LCAwLjAwOTk4IiwgXAotICAgICAgICAgICIwLjAwOTkxMSwgMC4wMDk5NjcsIDAuMDA5OTcsIDAuMDA5OTc4LCAwLjAwOTk4MiwgMC4wMDk5ODIsIDAuMDA5OTgxIiwgXAotICAgICAgICAgICIwLjAwOTksIDAuMDA5OTYzLCAwLjAwOTk3MywgMC4wMDk5NjQsIDAuMDA5OTc2LCAwLjAwOTk4LCAwLjAwOTk4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDMzNiwgMC4wMDMzNzYsIDAuMDAzMzc4LCAwLjAwMzM3OCwgMC4wMDMzNzksIDAuMDAzMzc5LCAwLjAwMzM3OSIsIFwKLSAgICAgICAgICAiMC4wMDMyOTIsIDAuMDAzMzU5LCAwLjAwMzM2OSwgMC4wMDMzNzEsIDAuMDAzMzc0LCAwLjAwMzM3NSwgMC4wMDMzNzYiLCBcCi0gICAgICAgICAgIjAuMDAzMjMzLCAwLjAwMzMzOSwgMC4wMDMzNTcsIDAuMDAzMzYyLCAwLjAwMzM2NywgMC4wMDMzNywgMC4wMDMzNzIiLCBcCi0gICAgICAgICAgIjAuMDAzMTk0LCAwLjAwMzMyMSwgMC4wMDMzNDYsIDAuMDAzMzU0LCAwLjAwMzM2MSwgMC4wMDMzNjUsIDAuMDAzMzY4IiwgXAotICAgICAgICAgICIwLjAwMzE2NSwgMC4wMDMzMDUsIDAuMDAzMzM1LCAwLjAwMzM0NSwgMC4wMDMzNTUsIDAuMDAzMzU5LCAwLjAwMzM2NCIsIFwKLSAgICAgICAgICAiMC4wMDMxMzMsIDAuMDAzMjgxLCAwLjAwMzMxOSwgMC4wMDMzMzIsIDAuMDAzMzQ1LCAwLjAwMzM1MSwgMC4wMDMzNTciLCBcCi0gICAgICAgICAgIjAuMDAzMTEzLCAwLjAwMzI2MiwgMC4wMDMzMDYsIDAuMDAzMzIxLCAwLjAwMzMzNiwgMC4wMDMzNDQsIDAuMDAzMzUyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDgyMjgsIDAuMDA4MjMsIDAuMDA4MjI5LCAwLjAwODIyOSwgMC4wMDgyMjksIDAuMDA4MjI5LCAwLjAwODIyNyIsIFwKLSAgICAgICAgICAiMC4wMDgyMiwgMC4wMDgyNDUsIDAuMDA4MjQ3LCAwLjAwODI0OCwgMC4wMDgyNDgsIDAuMDA4MjQ3LCAwLjAwODI0NiIsIFwKLSAgICAgICAgICAiMC4wMDgxOTUsIDAuMDA4MjQ1LCAwLjAwODI1LCAwLjAwODI1MiwgMC4wMDgyNTMsIDAuMDA4MjU1LCAwLjAwODI1NCIsIFwKLSAgICAgICAgICAiMC4wMDgxNywgMC4wMDgyMzIsIDAuMDA4MjQ5LCAwLjAwODI1MSwgMC4wMDgyNTIsIDAuMDA4MjU0LCAwLjAwODI2IiwgXAotICAgICAgICAgICIwLjAwODE1NCwgMC4wMDgyMzUsIDAuMDA4MjQ2LCAwLjAwODI1LCAwLjAwODI1MiwgMC4wMDgyNTMsIDAuMDA4MjU1IiwgXAotICAgICAgICAgICIwLjAwODEzMSwgMC4wMDgyMjUsIDAuMDA4MjQsIDAuMDA4MjQ2LCAwLjAwODI0OSwgMC4wMDgyNTIsIDAuMDA4MjU1IiwgXAotICAgICAgICAgICIwLjAwODExLCAwLjAwODIxOCwgMC4wMDgyMzYsIDAuMDA4MjMxLCAwLjAwODI0NiwgMC4wMDgyNSwgMC4wMDgyNTEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzM2LCAwLjAwMzM3NiwgMC4wMDMzNzgsIDAuMDAzMzc4LCAwLjAwMzM3OSwgMC4wMDMzNzksIDAuMDAzMzc5IiwgXAotICAgICAgICAgICIwLjAwMzI5MiwgMC4wMDMzNTksIDAuMDAzMzY5LCAwLjAwMzM3MSwgMC4wMDMzNzQsIDAuMDAzMzc1LCAwLjAwMzM3NiIsIFwKLSAgICAgICAgICAiMC4wMDMyMzQsIDAuMDAzMzM5LCAwLjAwMzM1NywgMC4wMDMzNjIsIDAuMDAzMzY3LCAwLjAwMzM3LCAwLjAwMzM3MiIsIFwKLSAgICAgICAgICAiMC4wMDMxOTMsIDAuMDAzMzIsIDAuMDAzMzQ1LCAwLjAwMzM1MywgMC4wMDMzNjEsIDAuMDAzMzY0LCAwLjAwMzM2OCIsIFwKLSAgICAgICAgICAiMC4wMDMxNjYsIDAuMDAzMzA1LCAwLjAwMzMzNSwgMC4wMDMzNDUsIDAuMDAzMzU1LCAwLjAwMzM1OCwgMC4wMDMzNjYiLCBcCi0gICAgICAgICAgIjAuMDAzMTMzLCAwLjAwMzI4MSwgMC4wMDMzMTksIDAuMDAzMzMyLCAwLjAwMzM0NCwgMC4wMDMzNTEsIDAuMDAzMzU3IiwgXAotICAgICAgICAgICIwLjAwMzExNCwgMC4wMDMyNjMsIDAuMDAzMzA3LCAwLjAwMzMyMSwgMC4wMDMzMzYsIDAuMDAzMzQ0LCAwLjAwMzM1MSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkQiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2MjM4LCAwLjAwNjI1MSwgMC4wMDYyNTMsIDAuMDA2MjUyLCAwLjAwNjI1MiwgMC4wMDYyNTMsIDAuMDA2MjUzIiwgXAotICAgICAgICAgICIwLjAwNjIzNywgMC4wMDYyOTEsIDAuMDA2Mjk4LCAwLjAwNjI5OSwgMC4wMDYzMDEsIDAuMDA2MzAzLCAwLjAwNjMwMyIsIFwKLSAgICAgICAgICAiMC4wMDYyMTIsIDAuMDA2Mjk2LCAwLjAwNjMwNywgMC4wMDYzMTEsIDAuMDA2MzE1LCAwLjAwNjMxNiwgMC4wMDYzMTgiLCBcCi0gICAgICAgICAgIjAuMDA2MTg0LCAwLjAwNjI4MSwgMC4wMDYzMDcsIDAuMDA2MzEyLCAwLjAwNjMxNiwgMC4wMDYzMTksIDAuMDA2MzI2IiwgXAotICAgICAgICAgICIwLjAwNjE2MiwgMC4wMDYyODUsIDAuMDA2MzAzLCAwLjAwNjMwOSwgMC4wMDYzMTUsIDAuMDA2MzE5LCAwLjAwNjMyNCIsIFwKLSAgICAgICAgICAiMC4wMDYxMzYsIDAuMDA2MjcyLCAwLjAwNjI5OSwgMC4wMDYzMDYsIDAuMDA2MzEzLCAwLjAwNjMxOCwgMC4wMDYzMjEiLCBcCi0gICAgICAgICAgIjAuMDA2MTExLCAwLjAwNjI2MSwgMC4wMDYyOTMsIDAuMDA2Mjk1LCAwLjAwNjMxLCAwLjAwNjMxNSwgMC4wMDYzMTgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzM1NiwgMC4wMDMzNzUsIDAuMDAzMzc3LCAwLjAwMzM3OCwgMC4wMDMzNzgsIDAuMDAzMzc4LCAwLjAwMzM3OCIsIFwKLSAgICAgICAgICAiMC4wMDMyNzMsIDAuMDAzMzU0LCAwLjAwMzM2NSwgMC4wMDMzNjgsIDAuMDAzMzcyLCAwLjAwMzM3MywgMC4wMDMzNzQiLCBcCi0gICAgICAgICAgIjAuMDAzMjA2LCAwLjAwMzMzLCAwLjAwMzM1MSwgMC4wMDMzNTgsIDAuMDAzMzY0LCAwLjAwMzM2NywgMC4wMDMzNjkiLCBcCi0gICAgICAgICAgIjAuMDAzMTYxLCAwLjAwMzMwOSwgMC4wMDMzMzgsIDAuMDAzMzQ3LCAwLjAwMzM1OCwgMC4wMDMzNjEsIDAuMDAzMzY1IiwgXAotICAgICAgICAgICIwLjAwMzEzMywgMC4wMDMyOTEsIDAuMDAzMzI2LCAwLjAwMzMzOCwgMC4wMDMzNDksIDAuMDAzMzU1LCAwLjAwMzM2IiwgXAotICAgICAgICAgICIwLjAwMzEwNiwgMC4wMDMyNjUsIDAuMDAzMzA4LCAwLjAwMzMyNCwgMC4wMDMzMzgsIDAuMDAzMzQ2LCAwLjAwMzM1MyIsIFwKLSAgICAgICAgICAiMC4wMDMwOTksIDAuMDAzMjQ1LCAwLjAwMzI5NCwgMC4wMDMzMTIsIDAuMDAzMzI5LCAwLjAwMzMzOCwgMC4wMDMzNDciKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBOQU5ENFg0ICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKE5BTkQ0WDQpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC41MTU4ODE7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMjkxMDE3OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMjkxMDE3OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMjg5NTA3OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTIyNSwgMC4wMDEyMjQsIDAuMDAxMjIzLCAwLjAwMTIyMywgMC4wMDEyMjMsIDAuMDAxMjIzLCAwLjAwMTIyMyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTIyNiwgMC4wMDEyMjcsIDAuMDAxMjI4LCAwLjAwMTIyOCwgMC4wMDEyMjcsIDAuMDAxMjI3LCAwLjAwMTIyOCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAyOTM0NjY7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAyOTM0NjY7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAyOTIyMjY7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxMjI1LCAwLjAwMTIyNCwgMC4wMDEyMjMsIDAuMDAxMjIzLCAwLjAwMTIyMiwgMC4wMDEyMjIsIDAuMDAxMjIyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxMjI2LCAwLjAwMTIyNywgMC4wMDEyMjcsIDAuMDAxMjI3LCAwLjAwMTIyNywgMC4wMDEyMjksIDAuMDAxMjI5Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihDKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDMwNDc5NjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDMwNDc5NjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDMwMzczNzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDEyMjUsIDAuMDAxMjI0LCAwLjAwMTIyMywgMC4wMDEyMjMsIDAuMDAxMjIzLCAwLjAwMTIyMiwgMC4wMDEyMjIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDEyMjYsIDAuMDAxMjI3LCAwLjAwMTIyNywgMC4wMDEyMjksIDAuMDAxMjI5LCAwLjAwMTIyOSwgMC4wMDEyMjkiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEQpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMjkzNjE0OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMjkzNDExOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMjkzNjE0OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDA5OSwgMC4wMDAwOTcsIDAuMDAwMDk2LCAwLjAwMDA5NiwgMC4wMDAwOTYsIDAuMDAwMDk3LCAwLjAwMDA5NiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTM5LCAwLjAwMTM5MSwgMC4wMDEzOTIsIDAuMDAxMzkyLCAwLjAwMTM5MiwgMC4wMDEzOTIsIDAuMDAxMzkyIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMTE5NDYyOwotICAgIGZ1bmN0aW9uIDogIighKCgoQSBCKSBDKSBEKSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQyNzg2LCAwLjE3MjQ4NywgMC4yOTk4OTIsIDAuMzkwNjU5LCAwLjUzNTY2NiwgMC42NjI0MzksIDAuODQzNTcxIiwgXAotICAgICAgICAgICIwLjA1NDI4OSwgMC4xODM5NzgsIDAuMzExMzQzLCAwLjQwMjA4OCwgMC41NDcxNjYsIDAuNjczOTQ2LCAwLjg1NTA3MiIsIFwKLSAgICAgICAgICAiMC4wNjg5MjQsIDAuMTk4MzUyLCAwLjMyNTY5NiwgMC40MTQ1NzIsIDAuNTU5NjA3LCAwLjY4NjM5MSwgMC44Njc1MDMiLCBcCi0gICAgICAgICAgIjAuMDg0MjA1LCAwLjIxMzI5NiwgMC4zNDA0NjcsIDAuNDMxMDM2LCAwLjU3NTk2LCAwLjcwMjg2MywgMC44ODM4NzkiLCBcCi0gICAgICAgICAgIjAuMDk5NDczLCAwLjIyNzY5MywgMC4zNTQ3NTksIDAuNDQ1NDA3LCAwLjU5MDQ0MSwgMC43MTcyMzMsIDAuODk0MDIyIiwgXAotICAgICAgICAgICIwLjEyMTk0LCAwLjI1MTg1OSwgMC4zNzgxMjksIDAuNDY4NzE0LCAwLjYxMzU5MSwgMC43NDA0NDMsIDAuOTIxNDQzIiwgXAotICAgICAgICAgICIwLjEzOTc1OCwgMC4yNzI1MTcsIDAuMzk4OTI0LCAwLjQ4ODE5NywgMC42MzQwNTcsIDAuNzYwNzEzLCAwLjk0MTgxMiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3NjMzNCwgMC4zMzQxNzksIDAuNTkxNjA2LCAwLjc3NTc1LCAxLjA2OTU0LCAxLjMyNjM1LCAxLjY5NDYxIiwgXAotICAgICAgICAgICIwLjA3NTk4NiwgMC4zMzQyMzYsIDAuNTkxNTg3LCAwLjc3NTQxMywgMS4wNjk2NSwgMS4zMjY3OSwgMS42OTQ3OSIsIFwKLSAgICAgICAgICAiMC4wNzkwNzEsIDAuMzM0MDMzLCAwLjU5MTU4MiwgMC43NzU0MiwgMS4wNjk1MiwgMS4zMjYzNiwgMS42OTUyNCIsIFwKLSAgICAgICAgICAiMC4wODQzMDQsIDAuMzM0MDYyLCAwLjU5MTc1NiwgMC43NzU0MTksIDEuMDY5NzYsIDEuMzI2NzQsIDEuNjkzODIiLCBcCi0gICAgICAgICAgIjAuMDkwNzc4LCAwLjMzNDUwNiwgMC41OTE3MjQsIDAuNzc1NDUxLCAxLjA2OTIxLCAxLjMyNjgxLCAxLjY5NDIyIiwgXAotICAgICAgICAgICIwLjEwMzUzOSwgMC4zMzc5NTksIDAuNTkxNjU1LCAwLjc3NTU4NCwgMS4wNjk1OCwgMS4zMjY3NSwgMS42OTUwMyIsIFwKLSAgICAgICAgICAiMC4xMTYyMTEsIDAuMzQzMjYxLCAwLjU5MjcyMiwgMC43NzUzNjUsIDEuMDY5MjgsIDEuMzI2NzMsIDEuNjk0MDUiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMDE0NDYsIDAuNzk0ODMzLCAxLjM4NzgyLCAxLjgxMTUsIDIuNDg5MTYsIDMuMDgxMjcsIDMuOTI3ODciLCBcCi0gICAgICAgICAgIjAuMjEyNTA4LCAwLjgwNjcyOSwgMS40LCAxLjgyMjg3LCAyLjUwMTUxLCAzLjA5MzksIDMuOTM5ODIiLCBcCi0gICAgICAgICAgIjAuMjI1MzkxLCAwLjgxOTk5MiwgMS40MTM4MiwgMS44MzY3OCwgMi41MTUwMSwgMy4xMDc1NiwgMy45NTM0NiIsIFwKLSAgICAgICAgICAiMC4yMzc2MzgsIDAuODMyNTU5LCAxLjQyNjYxLCAxLjg0OTU2LCAyLjUyNzU5LCAzLjExOTk2LCAzLjk2NjMiLCBcCi0gICAgICAgICAgIjAuMjQ5NTEsIDAuODQ0NTU2LCAxLjQzNzkyLCAxLjg2MTUsIDIuNTM5ODMsIDMuMTMyMzQsIDMuOTc4NDEiLCBcCi0gICAgICAgICAgIjAuMjY3NzExLCAwLjg2Mjc1NSwgMS40NTY1NywgMS44ODAxNiwgMi41NTgzMywgMy4xNTEwOSwgMy45OTY4NCIsIFwKLSAgICAgICAgICAiMC4yODMwNzUsIDAuODc4MTA0LCAxLjQ3MTg1LCAxLjg5NTY4LCAyLjU3Mzg3LCAzLjE2NjY1LCA0LjAxMjYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yOTA0NSwgMS40MDM1NywgMi41MTYzLCAzLjMxNzU0LCA0LjU3NjU4LCA1LjY2OTQ3LCA3LjI0NDcxIiwgXAotICAgICAgICAgICIwLjI4OTcwNCwgMS40MDM2NCwgMi41MTY0NSwgMy4yOTYsIDQuNTU4MTYsIDUuNjcwMDYsIDcuMjQ1NDkiLCBcCi0gICAgICAgICAgIjAuMjkwNTAxLCAxLjQwMzMyLCAyLjUxNjc2LCAzLjMxNzM0LCA0LjU1ODY2LCA1LjY3MDA5LCA3LjI0NTM4IiwgXAotICAgICAgICAgICIwLjI5MDUwOSwgMS4zOTgxOCwgMi41MDQ2OSwgMy4zMTc0MywgNC41NTk1OCwgNS42NjYwMiwgNy4yNDUwMiIsIFwKLSAgICAgICAgICAiMC4yOTA2NjUsIDEuNDAzNDgsIDIuNTE2MDEsIDMuMzE3MjcsIDQuNTc2NjYsIDUuNjY5OTYsIDcuMjQ0NTkiLCBcCi0gICAgICAgICAgIjAuMjkwNjA1LCAxLjQwNjI1LCAyLjUwNDEyLCAzLjMxNzQsIDQuNTYwNDUsIDUuNjYzMzUsIDcuMjQ0NCIsIFwKLSAgICAgICAgICAiMC4yOTE0MTEsIDEuNDAyMzcsIDIuNTA0NSwgMy4zMTc0MSwgNC41NjAwNywgNS42NzAxNCwgNy4yNDU2OCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0MTY5NywgMC4xNzAzNzYsIDAuMjk3NzkzLCAwLjM4ODY3NywgMC41MzM5NzEsIDAuNjYxMTU4LCAwLjg0MjY0MSIsIFwKLSAgICAgICAgICAiMC4wNTMyMDIsIDAuMTgxOTA4LCAwLjMwOTMxOCwgMC40MDAyMywgMC41NDU1MjcsIDAuNjcyNzAzLCAwLjg1NDIxNiIsIFwKLSAgICAgICAgICAiMC4wNjc3NCwgMC4xOTYzMTEsIDAuMzIzNjk5LCAwLjQxMjM4NiwgMC41NTc3MTMsIDAuNjg0ODU0LCAwLjg2NjMwNSIsIFwKLSAgICAgICAgICAiMC4wODMwMjcsIDAuMjEwODYxLCAwLjMzODIyNCwgMC40MjkxMzgsIDAuNTc0NDY2LCAwLjcwMTU3NiwgMC44ODMyMTUiLCBcCi0gICAgICAgICAgIjAuMDk3OTEyLCAwLjIyNTUwMiwgMC4zNTI2NTgsIDAuNDQzNDYxLCAwLjU4ODc3NCwgMC43MTU5MiwgMC44OTIyMTQiLCBcCi0gICAgICAgICAgIjAuMTE5ODY1LCAwLjI0OTY5NywgMC4zNzU4MTIsIDAuNDY2NzM3LCAwLjYxMTk3NCwgMC43MzkwOTUsIDAuOTIwNjY5IiwgXAotICAgICAgICAgICIwLjEzNzEyMywgMC4yNzA1NDcsIDAuMzk2NzAzLCAwLjQ4NjY3NSwgMC42MzI0MTMsIDAuNzU5NDE0LCAwLjk0MDk3NiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3MzIyNCwgMC4zMzE0MDksIDAuNTg5NTY1LCAwLjc3MzkyOCwgMS4wNjg2NSwgMS4zMjcxLCAxLjY5NTY1IiwgXAotICAgICAgICAgICIwLjA3MzA0MywgMC4zMzE0MTQsIDAuNTg5NTQxLCAwLjc3NDMwMywgMS4wNjkyNCwgMS4zMjcsIDEuNjk1NTciLCBcCi0gICAgICAgICAgIjAuMDc2MzUsIDAuMzMxNDQzLCAwLjU4OTQxMSwgMC43NzQwNjQsIDEuMDY4NzUsIDEuMzI2NDMsIDEuNjk1MTIiLCBcCi0gICAgICAgICAgIjAuMDgxNjQ2LCAwLjMzMTM4NywgMC41ODk2NjQsIDAuNzc0MzAzLCAxLjA2ODgyLCAxLjMyNjc5LCAxLjY5NTYiLCBcCi0gICAgICAgICAgIjAuMDg4Njc5LCAwLjMzMjA3NSwgMC41ODkzNzMsIDAuNzczNjU1LCAxLjA2ODUzLCAxLjMyNjgsIDEuNjk0ODUiLCBcCi0gICAgICAgICAgIjAuMTAxNzYyLCAwLjMzNTY5OSwgMC41ODk0OSwgMC43NzM5NDQsIDEuMDY5MDYsIDEuMzI2ODIsIDEuNjk1MzciLCBcCi0gICAgICAgICAgIjAuMTE0NTkxLCAwLjM0MDg2LCAwLjU5MDg1OSwgMC43NzQwMDEsIDEuMDY4NDgsIDEuMzI2NzcsIDEuNjk2NDMiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xOTQ2NzEsIDAuNzg4MDA0LCAxLjM4MDk5LCAxLjgwMzc4LCAyLjQ4MjI1LCAzLjA3Mzg0LCAzLjkyMDEyIiwgXAotICAgICAgICAgICIwLjIwNDczMywgMC43OTg3NDMsIDEuMzkxODMsIDEuODE1MiwgMi40OTMxNiwgMy4wODU0NywgMy45MzE5OCIsIFwKLSAgICAgICAgICAiMC4yMTY5NzcsIDAuODExNTc1LCAxLjQwNDgsIDEuODI5MjYsIDIuNTA2MTMsIDMuMDk4NTUsIDMuOTQ0OTkiLCBcCi0gICAgICAgICAgIjAuMjI5MTYzLCAwLjgyNDMzOCwgMS40MTc3OCwgMS44NDA5NiwgMi41MTkyNiwgMy4xMTE4LCAzLjk1NzciLCBcCi0gICAgICAgICAgIjAuMjQwNjg5LCAwLjgzNTYsIDEuNDI5NDUsIDEuODUzMTcsIDIuNTMwNSwgMy4xMjMzNiwgMy45Njk3MSIsIFwKLSAgICAgICAgICAiMC4yNTkxODMsIDAuODU0MjczLCAxLjQ0NzkxLCAxLjg3MTY4LCAyLjU0OTc5LCAzLjE0MjU3LCAzLjk4ODM4IiwgXAotICAgICAgICAgICIwLjI3NDk5LCAwLjg3MDI1NCwgMS40NjQ0OSwgMS44ODgyLCAyLjU2NTc1LCAzLjE1Nzg3LCA0LjAwNDU2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjkwNDYsIDEuNDAzNDMsIDIuNTE2MDgsIDMuMzA1ODIsIDQuNTc2NDYsIDUuNjY4NTMsIDcuMjQzNzciLCBcCi0gICAgICAgICAgIjAuMjkwNzI3LCAxLjQwMzQyLCAyLjUxNjA4LCAzLjMxNzE5LCA0LjU3NjQ4LCA1LjY2OTQsIDcuMjQ0NTciLCBcCi0gICAgICAgICAgIjAuMjkwNTE4LCAxLjQwMzMzLCAyLjUxNjAxLCAzLjI5NDI1LCA0LjU3NjM5LCA1LjY2OTM1LCA3LjI0NDQ4IiwgXAotICAgICAgICAgICIwLjI5MDU3NiwgMS40MDk1MSwgMi41MTY1MywgMy4zMTczMywgNC41NTkwNCwgNS42NzAwOSwgNy4yNDQ5OCIsIFwKLSAgICAgICAgICAiMC4yOTA0NDMsIDEuNDA1NCwgMi41MDQwNiwgMy4zMTc2NywgNC41NzYwOCwgNS42NjU4MywgNy4yNDQ2MyIsIFwKLSAgICAgICAgICAiMC4yOTAxNTEsIDEuMzk3MTgsIDIuNTA0NDcsIDMuMzE3NDIsIDQuNTU5NjgsIDUuNjY1OTMsIDcuMjQ0NDUiLCBcCi0gICAgICAgICAgIjAuMjkxNzE4LCAxLjQwMzMxLCAyLjUxNjgsIDMuMjk0OTUsIDQuNTc2NTIsIDUuNjY5MDcsIDcuMjQ0NTkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzkzOTEsIDAuMTY3MDY0LCAwLjI5NDMwMywgMC4zODUxMzYsIDAuNTMwMzkzLCAwLjY1NzQ1LCAwLjgzODkxNCIsIFwKLSAgICAgICAgICAiMC4wNTEwMjMsIDAuMTc4NDU5LCAwLjMwNTY3NCwgMC4zOTY1NzksIDAuNTQxODQ1LCAwLjY2OTA1NiwgMC44NTA2MjQiLCBcCi0gICAgICAgICAgIjAuMDY1NjA4LCAwLjE5MzIsIDAuMzIwNDE3LCAwLjQxMTIyMiwgMC41NTM5ODYsIDAuNjgxMTc1LCAwLjg2Mjc0NSIsIFwKLSAgICAgICAgICAiMC4wODA3MzMsIDAuMjA3OTIxLCAwLjMzMzc0LCAwLjQyNDU2NiwgMC41Njk5MjYsIDAuNjk2OTQ3LCAwLjg3ODQzOCIsIFwKLSAgICAgICAgICAiMC4wOTU1MDksIDAuMjIyNDM5LCAwLjM0OTM4MiwgMC40NDAxMzQsIDAuNTg1NDI4LCAwLjcxMjUxNiwgMC44ODg4MzYiLCBcCi0gICAgICAgICAgIjAuMTE2NzEsIDAuMjQ2NjI4LCAwLjM3MjgyNCwgMC40NjM0NDgsIDAuNjA4NzExLCAwLjczNTY5MSwgMC45MTcyNzQiLCBcCi0gICAgICAgICAgIjAuMTMzMjEyLCAwLjI2NzI4NSwgMC4zOTM0NjIsIDAuNDgzNTM5LCAwLjYyOTA0MywgMC43NTYwNjMsIDAuOTM3NTcyIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY5MzQsIDAuMzI3NzAxLCAwLjU4NTg5NSwgMC43NzAyODQsIDEuMDY1MDEsIDEuMzIzMDQsIDEuNjkxOTIiLCBcCi0gICAgICAgICAgIjAuMDY5NTA4LCAwLjMyNzU5MiwgMC41ODU4NjMsIDAuNzcwNDE4LCAxLjA2NTk0LCAxLjMyMzUsIDEuNjkyMyIsIFwKLSAgICAgICAgICAiMC4wNzMyMzQsIDAuMzI3NzQ4LCAwLjU4NTczOCwgMC43NzAyNzYsIDEuMDY1MDIsIDEuMzI0MDksIDEuNjkyODYiLCBcCi0gICAgICAgICAgIjAuMDc4OTQyLCAwLjMyNzY4MSwgMC41ODU3NjUsIDAuNzcwMjYyLCAxLjA2NjAyLCAxLjMyMzA4LCAxLjY5MjkyIiwgXAotICAgICAgICAgICIwLjA4NjMwNywgMC4zMjg1MjEsIDAuNTg1ODU0LCAwLjc3MDA0NSwgMS4wNjUyNywgMS4zMjMzMywgMS42OTI5MSIsIFwKLSAgICAgICAgICAiMC4xLCAwLjMzMjMyNCwgMC41ODU4ODQsIDAuNzcwMSwgMS4wNjU2NiwgMS4zMjMwOCwgMS42OTIwNyIsIFwKLSAgICAgICAgICAiMC4xMTMzMTQsIDAuMzM3NzQ1LCAwLjU4NzI0MywgMC43NzAxNDcsIDEuMDY1MjQsIDEuMzIzNDEsIDEuNjkyODgiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNzk2MDEsIDAuNzcyODkxLCAxLjM2NjA5LCAxLjc4OTUxLCAyLjQ2NzQ4LCAzLjA1OTk5LCAzLjkwNjA2IiwgXAotICAgICAgICAgICIwLjE4ODk1OSwgMC43ODI5MzEsIDEuMzc2MTcsIDEuNzk5NzcsIDIuNDc3NDYsIDMuMDcwMDYsIDMuOTE2MTYiLCBcCi0gICAgICAgICAgIjAuMjAwODM1LCAwLjc5NTMxOSwgMS4zODgyNCwgMS44MTI2OSwgMi40ODk0NCwgMy4wODIzOCwgMy45Mjg4NSIsIFwKLSAgICAgICAgICAiMC4yMTI2OTksIDAuODA3Nzc3LCAxLjQwMDg5LCAxLjgyNTUsIDIuNTAyMzcsIDMuMDk0NjYsIDMuOTQxMjYiLCBcCi0gICAgICAgICAgIjAuMjI0NDIyLCAwLjgxOTQ2NCwgMS40MTM2NCwgMS44MzY2LCAyLjUxNDc3LCAzLjEwNzQ3LCAzLjk1MzUyIiwgXAotICAgICAgICAgICIwLjI0MzcyNSwgMC44Mzg4MzEsIDEuNDMyNzYsIDEuODU2MjUsIDIuNTM0MTYsIDMuMTI2NTUsIDMuOTczMDkiLCBcCi0gICAgICAgICAgIjAuMjYwNTcxLCAwLjg1NTczNywgMS40NDkyNSwgMS44NzM5NiwgMi41NTE0MiwgMy4xNDQyOCwgMy45OTAyMSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI5MDUxMywgMS4zOTcxMywgMi41MDM3NiwgMy4zMTc0MSwgNC41NiwgNS42NjUxNywgNy4yNDQwMiIsIFwKLSAgICAgICAgICAiMC4yOTA0ODcsIDEuMzk3MjEsIDIuNTA1ODMsIDMuMzE3NDUsIDQuNTY0MTksIDUuNjY2MDQsIDcuMjQ0NTciLCBcCi0gICAgICAgICAgIjAuMjkwNzE1LCAxLjQwMzIyLCAyLjUxNDI5LCAzLjMxNzg3LCA0LjU3NTkzLCA1LjY3MDg3LCA3LjI0NDcxIiwgXAotICAgICAgICAgICIwLjI5MDYwOSwgMS40MDM2NywgMi41MTYsIDMuMjk0MTEsIDQuNTc2MjksIDUuNjY5MjksIDcuMjQ0NTYiLCBcCi0gICAgICAgICAgIjAuMjkwNDY4LCAxLjM5NzIzLCAyLjUwMjk3LCAzLjMxNzM4LCA0LjU2MDk5LCA1LjY2NzMzLCA3LjI0NDI5IiwgXAotICAgICAgICAgICIwLjI5MTQsIDEuNDA1NjcsIDIuNTE2NDMsIDMuMjk1NDcsIDQuNTc2MzIsIDUuNjcyLCA3LjI0NDU0IiwgXAotICAgICAgICAgICIwLjI5NTEzMiwgMS40MDU0MiwgMi41MjA5MiwgMy4zMTgwNCwgNC41NTk2NSwgNS42NjMzNCwgNy4yNDU0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkQiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM1OTc5LCAwLjE2Mjc4NCwgMC4yODk2MTksIDAuMzgwMjM1LCAwLjUyNTA4MiwgMC42NTE4MzYsIDAuODMzNTc3IiwgXAotICAgICAgICAgICIwLjA0Nzc5MywgMC4xNzQyMjEsIDAuMzAxMDYyLCAwLjM5MTYsIDAuNTM2NTE3LCAwLjY2MzI5MywgMC44NDQ0MDIiLCBcCi0gICAgICAgICAgIjAuMDYyNDczLCAwLjE4OTAyLCAwLjMxNTc2OSwgMC40MDYzNSwgMC41NDg2ODMsIDAuNjc1NDQ0LCAwLjg1NjcwOSIsIFwKLSAgICAgICAgICAiMC4wNzc0NTgsIDAuMjAzMzQ2LCAwLjMzMDM3NCwgMC40MjA4NjQsIDAuNTY1ODU4LCAwLjY4OTMwNywgMC44NzA0MiIsIFwKLSAgICAgICAgICAiMC4wOTE2OTIsIDAuMjE4NDU4LCAwLjM0NDg2MSwgMC40MzU0MTUsIDAuNTgwNDksIDAuNzA3MDY5LCAwLjg4NDI2NiIsIFwKLSAgICAgICAgICAiMC4xMTIwNzcsIDAuMjQyNTExLCAwLjM2ODQxOCwgMC40NTg2OSwgMC42MDM0NjUsIDAuNzMwMjc0LCAwLjkxMTQzNiIsIFwKLSAgICAgICAgICAiMC4xMjc4OTIsIDAuMjYzMjE2LCAwLjM4OTEyNCwgMC40NzkxOTgsIDAuNjIzOTM4LCAwLjc1MDY2MywgMC45MzE2NyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2NTI3MSwgMC4zMjM2NCwgMC41ODExMzIsIDAuNzY0OTA1LCAxLjA1OTMzLCAxLjMyMDIxLCAxLjY4NjI5IiwgXAotICAgICAgICAgICIwLjA2NTQ1MSwgMC4zMjI5NzUsIDAuNTgwNzg0LCAwLjc2NDcyLCAxLjA2MTcyLCAxLjMxNzA5LCAxLjY4NTMiLCBcCi0gICAgICAgICAgIjAuMDY5NjQ5LCAwLjMyMjc5MSwgMC41ODIwMDgsIDAuNzY0NzQxLCAxLjA2MTksIDEuMzIwMjYsIDEuNjg5MTEiLCBcCi0gICAgICAgICAgIjAuMDc2MDUzLCAwLjMyMjk2NywgMC41ODA3MTMsIDAuNzY0NzE4LCAxLjA1OTUzLCAxLjMyMDM2LCAxLjY4OTQiLCBcCi0gICAgICAgICAgIjAuMDgzODYzLCAwLjMyMzkwMiwgMC41ODIxOTksIDAuNzY0OTQzLCAxLjA1OTksIDEuMzE2OTYsIDEuNjg2NjUiLCBcCi0gICAgICAgICAgIjAuMDk4NTE0LCAwLjMyODYyNiwgMC41ODIxNjksIDAuNzY2NzU3LCAxLjA1OTMyLCAxLjMxNjk2LCAxLjY4NDk0IiwgXAotICAgICAgICAgICIwLjExMjEyMSwgMC4zMzQwODYsIDAuNTgyMTYyLCAwLjc2NTUyNCwgMS4wNTkxNywgMS4zMTczOCwgMS42ODUzMiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE1NTQ3NywgMC43NDg2OTIsIDEuMzQyMjMsIDEuNzY1NywgMi40NDMzOCwgMy4wMzUzOCwgMy44ODE4OSIsIFwKLSAgICAgICAgICAiMC4xNjM5NDUsIDAuNzU4MDE4LCAxLjM1MDk0LCAxLjc3NDQ0LCAyLjQ1MjEsIDMuMDQ0NiwgMy44OTE3MyIsIFwKLSAgICAgICAgICAiMC4xNzQ3NjcsIDAuNzY5NTksIDEuMzYyNjcsIDEuNzg2MjYsIDIuNDY0ODgsIDMuMDU2NjksIDMuOTAzMzIiLCBcCi0gICAgICAgICAgIjAuMTg2MjQ2LCAwLjc4MTQxMiwgMS4zNzQ1OSwgMS43OTkyMywgMi40NzY3MywgMy4wNjg4NiwgMy45MTUzNSIsIFwKLSAgICAgICAgICAiMC4xOTc0MDgsIDAuNzkyNjQsIDEuMzg1OTYsIDEuODEwNjMsIDIuNDg3NzYsIDMuMDgwMzIsIDMuOTI2OCIsIFwKLSAgICAgICAgICAiMC4yMTU4NTcsIDAuODExMTg5LCAxLjQwNDk2LCAxLjgyOTM3LCAyLjUwNjIxLCAzLjA5OTE1LCAzLjk0NTE4IiwgXAotICAgICAgICAgICIwLjIzMzE0NCwgMC44MjcyMzUsIDEuNDIwODcsIDEuODQ0NDEsIDIuNTIzMiwgMy4xMTUwOCwgMy45NjE2OSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI5MDUxMSwgMS4zOTczMiwgMi41MTY2MSwgMy4zMTc2OCwgNC41NzY3NSwgNS42NzEzNywgNy4yNDQ2NyIsIFwKLSAgICAgICAgICAiMC4yOTAzMzEsIDEuNDA1MjgsIDIuNTEzNzksIDMuMzA3NjYsIDQuNTc1OSwgNS42Njg4OSwgNy4yNDQ2OSIsIFwKLSAgICAgICAgICAiMC4yODg0MjYsIDEuNDAzMDksIDIuNTA0ODIsIDMuMjk3OTksIDQuNTU4NjksIDUuNjcxNTksIDcuMjQ0NjUiLCBcCi0gICAgICAgICAgIjAuMjg3NjMyLCAxLjM5NzQxLCAyLjUyMDE2LCAzLjMxODAyLCA0LjU3NjgxLCA1LjY3MTQ2LCA3LjI0NDg2IiwgXAotICAgICAgICAgICIwLjI4OTY5NSwgMS40MDI5MiwgMi41MjE2NiwgMy4zMTgwNywgNC41NzYyOCwgNS42NzIwMiwgNy4yNDQ2MiIsIFwKLSAgICAgICAgICAiMC4yOTM5MzMsIDEuMzk3MjUsIDIuNTE2MzMsIDMuMzE4MjMsIDQuNTYxNiwgNS42NjcyMSwgNy4yNDQzNSIsIFwKLSAgICAgICAgICAiMC4yOTk4NjMsIDEuNDAzMDQsIDIuNTE1NzUsIDMuMzE2OTIsIDQuNTc2NzksIDUuNjY5MywgNy4yNDQ1MSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDExOTY1LCAwLjAxMTk2NSwgMC4wMTE5NjIsIDAuMDExOTYsIDAuMDExOTU5LCAwLjAxMTk1NywgMC4wMTE5NTgiLCBcCi0gICAgICAgICAgIjAuMDExOTExLCAwLjAxMTkxNSwgMC4wMTE5MTIsIDAuMDExOTEyLCAwLjAxMTkwOSwgMC4wMTE5MSwgMC4wMTE5MDUiLCBcCi0gICAgICAgICAgIjAuMDExODgxLCAwLjAxMTg5NywgMC4wMTE4OTUsIDAuMDExODg5LCAwLjAxMTg5MywgMC4wMTE4OSwgMC4wMTE4ODkiLCBcCi0gICAgICAgICAgIjAuMDExODYzLCAwLjAxMTg4NywgMC4wMTE4OSwgMC4wMTE4ODgsIDAuMDExODg0LCAwLjAxMTg4NywgMC4wMTE4ODMiLCBcCi0gICAgICAgICAgIjAuMDExODUyLCAwLjAxMTg3NiwgMC4wMTE4ODEsIDAuMDExODgzLCAwLjAxMTg3OCwgMC4wMTE4NzgsIDAuMDExODcyIiwgXAotICAgICAgICAgICIwLjAxMTgzNywgMC4wMTE4NzEsIDAuMDExODcyLCAwLjAxMTg3OSwgMC4wMTE4NzMsIDAuMDExODczLCAwLjAxMTg3MiIsIFwKLSAgICAgICAgICAiMC4wMTE4MzUsIDAuMDExODY0LCAwLjAxMTg2OSwgMC4wMTE4NDgsIDAuMDExODc0LCAwLjAxMTg3MSwgMC4wMTE4NjkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzExMywgMC4wMDMxMjksIDAuMDAzMTMxLCAwLjAwMzEzMiwgMC4wMDMxMzIsIDAuMDAzMTMyLCAwLjAwMzEzMiIsIFwKLSAgICAgICAgICAiMC4wMDMwNDYsIDAuMDAzMTEzLCAwLjAwMzEyMiwgMC4wMDMxMjUsIDAuMDAzMTI5LCAwLjAwMzEyOCwgMC4wMDMxMjkiLCBcCi0gICAgICAgICAgIjAuMDAyOTg3LCAwLjAwMzA5MiwgMC4wMDMxMSwgMC4wMDMxMTYsIDAuMDAzMTIxLCAwLjAwMzEyMywgMC4wMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMDAyOTQ2LCAwLjAwMzA3NCwgMC4wMDMwOTgsIDAuMDAzMTA3LCAwLjAwMzExNCwgMC4wMDMxMTgsIDAuMDAzMTIxIiwgXAotICAgICAgICAgICIwLjAwMjkyLCAwLjAwMzA1OCwgMC4wMDMwODgsIDAuMDAzMDk4LCAwLjAwMzEwOCwgMC4wMDMxMTMsIDAuMDAzMTE3IiwgXAotICAgICAgICAgICIwLjAwMjg4OCwgMC4wMDMwMzUsIDAuMDAzMDczLCAwLjAwMzA4NiwgMC4wMDMwOTgsIDAuMDAzMTA1LCAwLjAwMzExMSIsIFwKLSAgICAgICAgICAiMC4wMDI4NjcsIDAuMDAzMDE1LCAwLjAwMzA1OCwgMC4wMDMwNzQsIDAuMDAzMDg5LCAwLjAwMzA5NywgMC4wMDMxMDUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMDMzMywgMC4wMTAzMzQsIDAuMDEwMzMsIDAuMDEwMzMsIDAuMDEwMzMsIDAuMDEwMzI3LCAwLjAxMDMyNSIsIFwKLSAgICAgICAgICAiMC4wMTAyOTksIDAuMDEwMzEsIDAuMDEwMzEsIDAuMDEwMzEsIDAuMDEwMzA4LCAwLjAxMDMwNiwgMC4wMTAzMDciLCBcCi0gICAgICAgICAgIjAuMDEwMjY5LCAwLjAxMDI5NSwgMC4wMTAzLCAwLjAxMDI5NywgMC4wMTAyOTcsIDAuMDEwMjk3LCAwLjAxMDI4OSIsIFwKLSAgICAgICAgICAiMC4wMTAyNDgsIDAuMDEwMjg2LCAwLjAxMDI5MywgMC4wMTAyOTQsIDAuMDEwMjk1LCAwLjAxMDI5MywgMC4wMTAyOTMiLCBcCi0gICAgICAgICAgIjAuMDEwMjM1LCAwLjAxMDI4MywgMC4wMTAyODgsIDAuMDEwMjg5LCAwLjAxMDI5LCAwLjAxMDI4OSwgMC4wMTAyODQiLCBcCi0gICAgICAgICAgIjAuMDEwMjE2LCAwLjAxMDI3MSwgMC4wMTAyNzQsIDAuMDEwMjg2LCAwLjAxMDI4NywgMC4wMTAyODYsIDAuMDEwMjg2IiwgXAotICAgICAgICAgICIwLjAxMDIwNSwgMC4wMTAyNjcsIDAuMDEwMjc4LCAwLjAxMDI2NCwgMC4wMTAyODEsIDAuMDEwMjg0LCAwLjAxMDI4NCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzMTE1LCAwLjAwMzEzLCAwLjAwMzEzMiwgMC4wMDMxMzMsIDAuMDAzMTMzLCAwLjAwMzEzMywgMC4wMDMxMzMiLCBcCi0gICAgICAgICAgIjAuMDAzMDQ3LCAwLjAwMzExMywgMC4wMDMxMjMsIDAuMDAzMTI2LCAwLjAwMzEyOCwgMC4wMDMxMjksIDAuMDAzMTMiLCBcCi0gICAgICAgICAgIjAuMDAyOTg4LCAwLjAwMzA5MywgMC4wMDMxMTEsIDAuMDAzMTE2LCAwLjAwMzEyMSwgMC4wMDMxMjQsIDAuMDAzMTI2IiwgXAotICAgICAgICAgICIwLjAwMjk0OSwgMC4wMDMwNzUsIDAuMDAzMSwgMC4wMDMxMDgsIDAuMDAzMTE1LCAwLjAwMzExOSwgMC4wMDMxMjIiLCBcCi0gICAgICAgICAgIjAuMDAyOTIsIDAuMDAzMDYsIDAuMDAzMDksIDAuMDAzMSwgMC4wMDMxMSwgMC4wMDMxMTUsIDAuMDAzMTE5IiwgXAotICAgICAgICAgICIwLjAwMjg4NywgMC4wMDMwMzUsIDAuMDAzMDczLCAwLjAwMzA4NywgMC4wMDMwOTksIDAuMDAzMTA1LCAwLjAwMzExMiIsIFwKLSAgICAgICAgICAiMC4wMDI4NjgsIDAuMDAzMDE2LCAwLjAwMzA2LCAwLjAwMzA3NiwgMC4wMDMwOTEsIDAuMDAzMDk4LCAwLjAwMzEwNiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA4NTE2LCAwLjAwODUxNywgMC4wMDg1MTcsIDAuMDA4NTE3LCAwLjAwODUxNywgMC4wMDg1MTYsIDAuMDA4NTEzIiwgXAotICAgICAgICAgICIwLjAwODUwOCwgMC4wMDg1MzMsIDAuMDA4NTM1LCAwLjAwODUzNiwgMC4wMDg1MzcsIDAuMDA4NTM1LCAwLjAwODUzNiIsIFwKLSAgICAgICAgICAiMC4wMDg0ODQsIDAuMDA4NTMzLCAwLjAwODUzOSwgMC4wMDg1NDEsIDAuMDA4NTQyLCAwLjAwODU0MywgMC4wMDg1NDgiLCBcCi0gICAgICAgICAgIjAuMDA4NDYsIDAuMDA4NTIxLCAwLjAwODUzNywgMC4wMDg1MzksIDAuMDA4NTQxLCAwLjAwODU0MywgMC4wMDg1NDMiLCBcCi0gICAgICAgICAgIjAuMDA4NDQzLCAwLjAwODUyMywgMC4wMDg1MzUsIDAuMDA4NTM5LCAwLjAwODU0MiwgMC4wMDg1NDMsIDAuMDA4NTQzIiwgXAotICAgICAgICAgICIwLjAwODQyLCAwLjAwODUxMywgMC4wMDg1MjgsIDAuMDA4NTM0LCAwLjAwODUzOSwgMC4wMDg1NCwgMC4wMDg1NDQiLCBcCi0gICAgICAgICAgIjAuMDA4Mzk4LCAwLjAwODUwNiwgMC4wMDg1MjUsIDAuMDA4NTIxLCAwLjAwODUzNiwgMC4wMDg1MzgsIDAuMDA4NTQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzExNSwgMC4wMDMxMywgMC4wMDMxMzIsIDAuMDAzMTMzLCAwLjAwMzEzMywgMC4wMDMxMzMsIDAuMDAzMTMzIiwgXAotICAgICAgICAgICIwLjAwMzA0NywgMC4wMDMxMTMsIDAuMDAzMTIzLCAwLjAwMzEyNiwgMC4wMDMxMjgsIDAuMDAzMTI5LCAwLjAwMzEzIiwgXAotICAgICAgICAgICIwLjAwMjk4OSwgMC4wMDMwOTMsIDAuMDAzMTExLCAwLjAwMzExNiwgMC4wMDMxMjEsIDAuMDAzMTI0LCAwLjAwMzEyNiIsIFwKLSAgICAgICAgICAiMC4wMDI5NDcsIDAuMDAzMDc0LCAwLjAwMzA5OSwgMC4wMDMxMDcsIDAuMDAzMTE1LCAwLjAwMzExOCwgMC4wMDMxMjIiLCBcCi0gICAgICAgICAgIjAuMDAyOTIsIDAuMDAzMDU5LCAwLjAwMzA4OSwgMC4wMDMxLCAwLjAwMzEwOSwgMC4wMDMxMTMsIDAuMDAzMTE4IiwgXAotICAgICAgICAgICIwLjAwMjg4OCwgMC4wMDMwMzUsIDAuMDAzMDczLCAwLjAwMzA4NiwgMC4wMDMwOTksIDAuMDAzMTA1LCAwLjAwMzExMSIsIFwKLSAgICAgICAgICAiMC4wMDI4NjgsIDAuMDAzMDE4LCAwLjAwMzA2LCAwLjAwMzA3NiwgMC4wMDMwOSwgMC4wMDMwOTgsIDAuMDAzMTA2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDY1MywgMC4wMDY1NDMsIDAuMDA2NTQ1LCAwLjAwNjU0NSwgMC4wMDY1NDQsIDAuMDA2NTQ1LCAwLjAwNjU0NSIsIFwKLSAgICAgICAgICAiMC4wMDY1MjksIDAuMDA2NTgzLCAwLjAwNjU4OSwgMC4wMDY1OTIsIDAuMDA2NTkzLCAwLjAwNjU5NCwgMC4wMDY1OTQiLCBcCi0gICAgICAgICAgIjAuMDA2NTA1LCAwLjAwNjU4NywgMC4wMDY1OTksIDAuMDA2NjAyLCAwLjAwNjYwNywgMC4wMDY2MDgsIDAuMDA2NjEiLCBcCi0gICAgICAgICAgIjAuMDA2NDc3LCAwLjAwNjU3NCwgMC4wMDY1OTksIDAuMDA2NjA0LCAwLjAwNjYwOCwgMC4wMDY2MTEsIDAuMDA2NjEzIiwgXAotICAgICAgICAgICIwLjAwNjQ1NCwgMC4wMDY1NzYsIDAuMDA2NTk1LCAwLjAwNjYwMiwgMC4wMDY2MDcsIDAuMDA2NjExLCAwLjAwNjYxNCIsIFwKLSAgICAgICAgICAiMC4wMDY0MjgsIDAuMDA2NTY2LCAwLjAwNjU5LCAwLjAwNjYsIDAuMDA2NjA1LCAwLjAwNjYxLCAwLjAwNjYxMyIsIFwKLSAgICAgICAgICAiMC4wMDY0MDMsIDAuMDA2NTUzLCAwLjAwNjU4NSwgMC4wMDY1ODgsIDAuMDA2NjAyLCAwLjAwNjYwNywgMC4wMDY2MTIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzExLCAwLjAwMzEyOSwgMC4wMDMxMzEsIDAuMDAzMTMyLCAwLjAwMzEzMiwgMC4wMDMxMzIsIDAuMDAzMTMyIiwgXAotICAgICAgICAgICIwLjAwMzAyNywgMC4wMDMxMDcsIDAuMDAzMTE5LCAwLjAwMzEyMywgMC4wMDMxMjYsIDAuMDAzMTI3LCAwLjAwMzExNiIsIFwKLSAgICAgICAgICAiMC4wMDI5NiwgMC4wMDMwODQsIDAuMDAzMTA1LCAwLjAwMzExMiwgMC4wMDMxMjMsIDAuMDAzMTIxLCAwLjAwMzEyMyIsIFwKLSAgICAgICAgICAiMC4wMDI5MTUsIDAuMDAzMDYzLCAwLjAwMzA5MiwgMC4wMDMxMDIsIDAuMDAzMTEsIDAuMDAzMTE1LCAwLjAwMzExOSIsIFwKLSAgICAgICAgICAiMC4wMDI4ODcsIDAuMDAzMDQ1LCAwLjAwMzA4LCAwLjAwMzA5MiwgMC4wMDMxMDMsIDAuMDAzMTA5LCAwLjAwMzExNCIsIFwKLSAgICAgICAgICAiMC4wMDI4NiwgMC4wMDMwMTksIDAuMDAzMDYzLCAwLjAwMzA3OCwgMC4wMDMwOTIsIDAuMDAzMSwgMC4wMDMxMDciLCBcCi0gICAgICAgICAgIjAuMDAyODUzLCAwLjAwMjk5OSwgMC4wMDMwNDgsIDAuMDAzMDY2LCAwLjAwMzA4MywgMC4wMDMwOTIsIDAuMDAzMTAxIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogTkFORDRYOCAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChOQU5ENFg4KSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDEuMDA1Mzg7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwNTQzODE7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDA1NDM4MTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDU0MDkwNTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDI0NSwgMC4wMDI0NDcsIDAuMDAyNDQ2LCAwLjAwMjQ0NywgMC4wMDI0NDUsIDAuMDAyNDQ1LCAwLjAwMjQ0NCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjQ1MiwgMC4wMDI0NTQsIDAuMDAyNDU1LCAwLjAwMjQ1NiwgMC4wMDI0NTYsIDAuMDAyNDU2LCAwLjAwMjQ1NiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDA1NDM1NjY7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDA1NDM1NjY7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDA1NDEwMTE7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyNDUsIDAuMDAyNDQ4LCAwLjAwMjQ0NywgMC4wMDI0NDcsIDAuMDAyNDQ2LCAwLjAwMjQ0NCwgMC4wMDI0NDUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDI0NTIsIDAuMDAyNDU0LCAwLjAwMjQ1NSwgMC4wMDI0NTYsIDAuMDAyNDU1LCAwLjAwMjQ1NSwgMC4wMDI0NTUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEMpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwNTQzODg5OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwNTQzODg5OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwNTQxODk1OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjQ1LCAwLjAwMjQ0OCwgMC4wMDI0NDcsIDAuMDAyNDQ3LCAwLjAwMjQ0NSwgMC4wMDI0NDUsIDAuMDAyNDQ1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyNDUyLCAwLjAwMjQ1NSwgMC4wMDI0NTUsIDAuMDAyNDU2LCAwLjAwMjQ1NSwgMC4wMDI0NTUsIDAuMDAyNDU5Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihEKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDU1MDg1OTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDU1MDMxNTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDU1MDg1OTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA2OTMsIDAuMDAwNjksIDAuMDAwNjg4LCAwLjAwMDY4OCwgMC4wMDA2ODgsIDAuMDAwNjg4LCAwLjAwMDY4NyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjc3OSwgMC4wMDI3ODEsIDAuMDAyNzgyLCAwLjAwMjc4MiwgMC4wMDI3ODEsIDAuMDAyNzg1LCAwLjAwMjc4NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjI0MDM2NTsKLSAgICBmdW5jdGlvbiA6ICIoISgoKEEgQikgQykgRCkpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzMTE4MiwgMC4wOTgxOSwgMC4xNjMyOTgsIDAuMjA5NTc5LCAwLjI4MzQyMiwgMC4zNDc5NzMsIDAuNDQwMDM4IiwgXAotICAgICAgICAgICIwLjA0Mjk4MSwgMC4xMDk4NDIsIDAuMTc0OTQ5LCAwLjIyMTIwMywgMC4yOTUwNzIsIDAuMzU5NjE2LCAwLjQ1MTcwNiIsIFwKLSAgICAgICAgICAiMC4wNTc5NDgsIDAuMTI0MTc1LCAwLjE4OTIwNSwgMC4yMzU0NjEsIDAuMzA5MzIyLCAwLjM3Mzg1MSwgMC40NjU5NTEiLCBcCi0gICAgICAgICAgIjAuMDczMjExLCAwLjEzOTI3OSwgMC4yMDM3NDMsIDAuMjUwMDY4LCAwLjMyMzgxOSwgMC4zODY4MDgsIDAuNDc4OTMxIiwgXAotICAgICAgICAgICIwLjA4NzEzNCwgMC4xNTQwNDYsIDAuMjE4NjYyLCAwLjI2NDc4OSwgMC4zMzg0MTUsIDAuNDAyODM3LCAwLjQ5NDg4NyIsIFwKLSAgICAgICAgICAiMC4xMDcwNjQsIDAuMTc4MDM1LCAwLjI0Mjc5MiwgMC4yODg5NjIsIDAuMzYxODE2LCAwLjQyNzIxMiwgMC41MTkzMjkiLCBcCi0gICAgICAgICAgIjAuMTIyNzIzLCAwLjE5ODc0LCAwLjI2MzU2NywgMC4zMDk3ODUsIDAuMzgyOTE3LCAwLjQ0NzE4LCAwLjUzODg5MiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1Mzk5NiwgMC4xODUzNjEsIDAuMzE2MjkyLCAwLjQwOTgxOCwgMC41NTk0LCAwLjY5MDQ4MiwgMC44NzcxNjUiLCBcCi0gICAgICAgICAgIjAuMDU0MTIsIDAuMTg1MjQ0LCAwLjMxNjI0NywgMC40MDk3MTcsIDAuNTU5MzM3LCAwLjY5MDI2NywgMC44NzcxIiwgXAotICAgICAgICAgICIwLjA1ODM0MywgMC4xODUxMzQsIDAuMzE2MjM1LCAwLjQwOTc2NCwgMC41NTkxNjksIDAuNjkwMDM1LCAwLjg3NzE0OCIsIFwKLSAgICAgICAgICAiMC4wNjQ2NDYsIDAuMTg2ODEyLCAwLjMxNjE1NSwgMC40MDk2NDksIDAuNTU5MzcyLCAwLjY5MDI4OSwgMC44NzcxNTYiLCBcCi0gICAgICAgICAgIjAuMDcyNjQyLCAwLjE5MDE5NiwgMC4zMTcwMjUsIDAuNDA5Njk4LCAwLjU1OTMxOSwgMC42OTAxNzgsIDAuODc2OTAyIiwgXAotICAgICAgICAgICIwLjA4NjY3OSwgMC4xOTc4NDIsIDAuMzIxMDIsIDAuNDExNTI1LCAwLjU1OTQxOSwgMC42OTAxNzUsIDAuODc2ODg4IiwgXAotICAgICAgICAgICIwLjA5OTI1LCAwLjIwNjY5NSwgMC4zMjYyNTUsIDAuNDE1MjY5LCAwLjU2MDk1LCAwLjY5MDQ2MSwgMC44NzcxNyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE0ODY3NywgMC40NTIwNzUsIDAuNzU1MDQsIDAuOTcxOTM4LCAxLjMxNzY2LCAxLjYyMTUsIDIuMDUzNjgiLCBcCi0gICAgICAgICAgIjAuMTU5MzE1LCAwLjQ2MzQyNiwgMC43NjY2ODYsIDAuOTgzNTg2LCAxLjMyOTI5LCAxLjYzMzE3LCAyLjA2NTI2IiwgXAotICAgICAgICAgICIwLjE3MTgyNywgMC40NzY1OCwgMC43Nzk4NjgsIDAuOTk2NTQzLCAxLjM0Mjc1LCAxLjY0NTY4LCAyLjA3OTI5IiwgXAotICAgICAgICAgICIwLjE4Mzc3LCAwLjQ4ODY2LCAwLjc5MjI4LCAxLjAwODQzLCAxLjM1NTMxLCAxLjY1ODA2LCAyLjA5MTkyIiwgXAotICAgICAgICAgICIwLjE5NTMxNSwgMC41MDA0MjIsIDAuODAzNzA0LCAxLjAyMDQzLCAxLjM2NjU1LCAxLjY2OTk3LCAyLjEwMjk0IiwgXAotICAgICAgICAgICIwLjIxMzE2OSwgMC41MTgwOTEsIDAuODIxNTg4LCAxLjAzODI2LCAxLjM4NTIyLCAxLjY4ODA1LCAyLjEyMTkzIiwgXAotICAgICAgICAgICIwLjIyODI2NCwgMC41MzMwNDEsIDAuODM2NzEyLCAxLjA1MzYxLCAxLjQwMDM4LCAxLjcwMzQ4LCAyLjEzNjY0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTk5NTYxLCAwLjc2ODY2NCwgMS4zMzcyNiwgMS43MzU3NSwgMi4zOTM1OCwgMi45NDcwOSwgMy43NzU0MiIsIFwKLSAgICAgICAgICAiMC4xOTk1NTYsIDAuNzY1MjgxLCAxLjMzNzI4LCAxLjc0NDIzLCAyLjM4NDQxLCAyLjk2MzQ2LCAzLjc3NDUxIiwgXAotICAgICAgICAgICIwLjE5OTU2MywgMC43NzExODcsIDEuMzM3MjgsIDEuNzM1MjQsIDIuMzkzNjUsIDIuOTUxMjcsIDMuNzc1ODQiLCBcCi0gICAgICAgICAgIjAuMTk5NjQ2LCAwLjc2NTA2OSwgMS4zMzc2LCAxLjc0MjIyLCAyLjM5NDAyLCAyLjk2MjAzLCAzLjc3NjA5IiwgXAotICAgICAgICAgICIwLjE5OTU3NiwgMC43NjQ3ODMsIDEuMzM2ODksIDEuNzM3MDksIDIuMzgyOTQsIDIuOTUxMTEsIDMuNzc0NDciLCBcCi0gICAgICAgICAgIjAuMjAwMzY1LCAwLjc3MDY0MywgMS4zMzY1OCwgMS43NDMxNSwgMi4zOTQwNywgMi45NjIyMiwgMy43NTUzNSIsIFwKLSAgICAgICAgICAiMC4yMDIwNDEsIDAuNzcwNzQ1LCAxLjMzNzA4LCAxLjc0Mzc0LCAyLjM5NDEsIDIuOTYyODEsIDMuNzc1NjMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzA0NjIsIDAuMDk2NDM0LCAwLjE2MTM1NCwgMC4yMDc2MDYsIDAuMjgxNDk5LCAwLjM0NjEyNCwgMC40Mzg0IiwgXAotICAgICAgICAgICIwLjA0MjIxOSwgMC4xMDgxNTQsIDAuMTczMDc5LCAwLjIxOTM0LCAwLjI5MzI0OCwgMC4zNTc4OCwgMC40NTAxNjUiLCBcCi0gICAgICAgICAgIjAuMDU3MDIzLCAwLjEyMjQ0OSwgMC4xODczMzMsIDAuMjMzNTcxLCAwLjMwNzQ3MiwgMC4zNzIxMDEsIDAuNDY0MzY2IiwgXAotICAgICAgICAgICIwLjA3MjAxMiwgMC4xMzczNjcsIDAuMjAxOTUzLCAwLjI0ODE4NywgMC4zMjE5NDksIDAuMzg0ODIsIDAuNDc3MTEiLCBcCi0gICAgICAgICAgIjAuMDg1NTIxLCAwLjE1MjI5OCwgMC4yMTY3NDIsIDAuMjYyODM0LCAwLjMzNjU0MSwgMC40MDEwODksIDAuNDkzMzUzIiwgXAotICAgICAgICAgICIwLjEwNDgyMSwgMC4xNzYxNzMsIDAuMjQwOTY1LCAwLjI4NzExNywgMC4zNTk3OTcsIDAuNDI1MTkyLCAwLjUxNzMwOSIsIFwKLSAgICAgICAgICAiMC4xMTk3MDYsIDAuMTk2ODc0LCAwLjI2MTYwNywgMC4zMDc3OTgsIDAuMzgwOTQ4LCAwLjQ0NTM0NiwgMC41MzczMTgiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTExNzQsIDAuMTgyMzQyLCAwLjMxMzcyLCAwLjQwNzUwOSwgMC41NTcyODUsIDAuNjg4Nzg4LCAwLjg3NjE0MyIsIFwKLSAgICAgICAgICAiMC4wNTE0NTYsIDAuMTgyNDU3LCAwLjMxMzYyOSwgMC40MDczNjgsIDAuNTU3MTU1LCAwLjY4ODUzMiwgMC44NzU4OTYiLCBcCi0gICAgICAgICAgIjAuMDU1OTE4LCAwLjE4MjQ5LCAwLjMxMzcwMywgMC40MDcyNTcsIDAuNTU3MSwgMC42ODg0MzQsIDAuODc1NjgxIiwgXAotICAgICAgICAgICIwLjA2MjQ5MiwgMC4xODQxNDQsIDAuMzEzNTg0LCAwLjQwNzMzMSwgMC41NTczODgsIDAuNjg4NTc3LCAwLjg3NTUzNyIsIFwKLSAgICAgICAgICAiMC4wNzA4MjcsIDAuMTg3NjMyLCAwLjMxNDUzOSwgMC40MDczNDksIDAuNTU3MTA0LCAwLjY4ODYyMSwgMC44NzU5MDkiLCBcCi0gICAgICAgICAgIjAuMDg1MTgzLCAwLjE5NTY5NSwgMC4zMTg1NTMsIDAuNDA5MzAzLCAwLjU1NzM1NCwgMC42ODg1MjEsIDAuODc1NzU2IiwgXAotICAgICAgICAgICIwLjA5Nzc4NCwgMC4yMDQ2OTIsIDAuMzI0MjEzLCAwLjQxMzE2OSwgMC41NTkwNjQsIDAuNjg4NzcsIDAuODc1NTkyIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTQyNTQ4LCAwLjQ0NTgzNCwgMC43NDg3ODEsIDAuOTY1NjQ5LCAxLjMxMTMzLCAxLjYxMzg2LCAyLjA0NzMxIiwgXAotICAgICAgICAgICIwLjE1MjI2MywgMC40NTY0OTcsIDAuNzU5NjM2LCAwLjk3NjE2LCAxLjMyMjM5LCAxLjYyNTM4LCAyLjA1ODYxIiwgXAotICAgICAgICAgICIwLjE2NDMxMywgMC40NjkwODIsIDAuNzcyMzQ1LCAwLjk4OTM2OCwgMS4zMzUxOSwgMS42MzkwNSwgMi4wNzExOCIsIFwKLSAgICAgICAgICAiMC4xNzYwNjksIDAuNDgxLCAwLjc4NDYyNSwgMS4wMDA5MSwgMS4zNDc0OSwgMS42NTAzMywgMi4wODM1MiIsIFwKLSAgICAgICAgICAiMC4xODc2NjEsIDAuNDkyNDk0LCAwLjc5NjI3NSwgMS4wMTI3MywgMS4zNTkwNiwgMS42NjI0NCwgMi4wOTUyOCIsIFwKLSAgICAgICAgICAiMC4yMDU4MjEsIDAuNTEwNjk4LCAwLjgxNDI1NSwgMS4wMzA4NywgMS4zNzc4NywgMS42ODAzNywgMi4xMTQ0NiIsIFwKLSAgICAgICAgICAiMC4yMjE0NDMsIDAuNTI2MjY1LCAwLjgzMDA3NiwgMS4wNDcxOCwgMS4zOTMzMywgMS42OTYwMywgMi4xMjk1OSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE5OTU4OCwgMC43Njk4NTYsIDEuMzMxNTQsIDEuNzQ0MDksIDIuMzk5MDEsIDIuOTQ0NjEsIDMuNzc0MzYiLCBcCi0gICAgICAgICAgIjAuMTk5NTU2LCAwLjc2ODYyNiwgMS4zMzcyOCwgMS43MzU1MiwgMi4zOTM1OCwgMi45NjIyMiwgMy43NzU2OCIsIFwKLSAgICAgICAgICAiMC4xOTk1NzUsIDAuNzcxMDA5LCAxLjMzNzI2LCAxLjczNTA1LCAyLjM5MzQxLCAyLjk2MzQsIDMuNzc0NDciLCBcCi0gICAgICAgICAgIjAuMTk5NTc0LCAwLjc2NTMxNCwgMS4zMzc2LCAxLjczNTYzLCAyLjM5MzQ1LCAyLjk1MDYzLCAzLjc3NTE0IiwgXAotICAgICAgICAgICIwLjE5OTM0NiwgMC43NjgxMDQsIDEuMzM3NTEsIDEuNzM1NjksIDIuMzkyOTksIDIuOTQ4MDcsIDMuNzc0NSIsIFwKLSAgICAgICAgICAiMC4yMDE1MSwgMC43Njg0OTYsIDEuMzQwMzcsIDEuNzQ2OTcsIDIuMzk0MDQsIDIuOTQ5MjMsIDMuNzc1OTkiLCBcCi0gICAgICAgICAgIjAuMjA0MTk3LCAwLjc3MDc0OSwgMS4zMzczOSwgMS43NDQxOSwgMi4zODQ2OSwgMi45NjY4NSwgMy43NTY4MSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyODYzMywgMC4wOTM3MzcsIDAuMTU4NDUzLCAwLjIwNDY2MSwgMC4yNzg1MjcsIDAuMzQzMTQxLCAwLjQzNTM2NyIsIFwKLSAgICAgICAgICAiMC4wNDA0MzcsIDAuMTA1NTc5LCAwLjE3MDMxNSwgMC4yMTY1MTgsIDAuMjkwNDAyLCAwLjM1NDk4NSwgMC40NDczNDciLCBcCi0gICAgICAgICAgIjAuMDU1MTgxLCAwLjExOTc1OSwgMC4xODQwMjcsIDAuMjMwMjExLCAwLjMwNDA4NywgMC4zNjg3NDMsIDAuNDYwOTQ0IiwgXAotICAgICAgICAgICIwLjA2OTg3MiwgMC4xMzQ4MTEsIDAuMTk5MjgxLCAwLjI0NTM5MywgMC4zMTkxNjUsIDAuMzgzNzY2LCAwLjQ3MzgzIiwgXAotICAgICAgICAgICIwLjA4Mjg4MiwgMC4xNDk3NDYsIDAuMjEzOTY3LCAwLjI2MDAxMiwgMC4zMzM2ODksIDAuMzk4MzA4LCAwLjQ5MDQ4NyIsIFwKLSAgICAgICAgICAiMC4xMDEyOTQsIDAuMTczNTgyLCAwLjIzODIxOSwgMC4yODM5MzksIDAuMzU3NTExLCAwLjQyMTg2NSwgMC41MTIzODIiLCBcCi0gICAgICAgICAgIjAuMTE1Mjc1LCAwLjE5NDIzNiwgMC4yNTg3OTUsIDAuMzA0MzUsIDAuMzc3OTEzLCAwLjQ0MjMzMywgMC41MzQzMzgiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDc2NTcsIDAuMTc5MDM2LCAwLjMxMDMwNCwgMC40MDM5NjksIDAuNTUzOTQxLCAwLjY4NTEyMywgMC44NzI0NDMiLCBcCi0gICAgICAgICAgIjAuMDQ4MzQyLCAwLjE3ODk5OSwgMC4zMTAxNjcsIDAuNDAzOTg3LCAwLjU1NDI3NSwgMC42ODUyNDIsIDAuODczMTM5IiwgXAotICAgICAgICAgICIwLjA1MzMwNiwgMC4xNzkxMTQsIDAuMzEwMjQzLCAwLjQwNDE0OCwgMC41NTQxNTksIDAuNjg1MjkxLCAwLjg3MjI2OCIsIFwKLSAgICAgICAgICAiMC4wNjA0MzYsIDAuMTgxMTY0LCAwLjMxMDIyOSwgMC40MDQxMzUsIDAuNTU0MDE2LCAwLjY4NTMzMywgMC44NzI1MTciLCBcCi0gICAgICAgICAgIjAuMDY5MDUsIDAuMTg0ODg4LCAwLjMxMTQ3NywgMC40MDQwMjIsIDAuNTUzOTg5LCAwLjY4NTA2NCwgMC44NzI0NzgiLCBcCi0gICAgICAgICAgIjAuMDgzODYsIDAuMTkzMDkyLCAwLjMxNTQ4NiwgMC40MDYxMjgsIDAuNTU0MTY1LCAwLjY4NTA0NywgMC44NzIyNjIiLCBcCi0gICAgICAgICAgIjAuMDk3MjI5LCAwLjIwMjQ2NiwgMC4zMjEyMTMsIDAuNDEwNjA5LCAwLjU1NjA5MiwgMC42ODUyMjEsIDAuODcyNDcxIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTI5NDMzLCAwLjQzMjcwNiwgMC43MzU2NTQsIDAuOTUyNTM0LCAxLjI5ODI5LCAxLjYwMDk4LCAyLjAzMzE5IiwgXAotICAgICAgICAgICIwLjEzODUwNywgMC40NDI4MzgsIDAuNzQ1OTksIDAuOTYyMjIzLCAxLjMwODgxLCAxLjYxMTI2LCAyLjA0NTMyIiwgXAotICAgICAgICAgICIwLjE1MDEzOCwgMC40NTQ2NzUsIDAuNzU3OTA3LCAwLjk3NDQxNywgMS4zMjA4LCAxLjYyMzY3LCAyLjA1NjE4IiwgXAotICAgICAgICAgICIwLjE2MTY3NiwgMC40NjY2NTUsIDAuNzcwMDg3LCAwLjk4NjUxNCwgMS4zMzMwNCwgMS42MzU5NiwgMi4wNjkwOCIsIFwKLSAgICAgICAgICAiMC4xNzM2MDIsIDAuNDc4NTI0LCAwLjc4MTk5OCwgMC45OTg3MTIsIDEuMzQ1NywgMS42NDgwMiwgMi4wODExNCIsIFwKLSAgICAgICAgICAiMC4xOTI3NzQsIDAuNDk3NjE5LCAwLjgwMTI2NiwgMS4wMTc5MSwgMS4zNjQ3MSwgMS42Njc2MiwgMi4xMDA4NCIsIFwKLSAgICAgICAgICAiMC4yMDk1MzQsIDAuNTE0NDQ2LCAwLjgxODQwOSwgMS4wMzUwNiwgMS4zODIwMywgMS42ODUyNSwgMi4xMTgzNCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE5OTU5NCwgMC43NjgxMzcsIDEuMzMxNiwgMS43NDQwOSwgMi4zOTMxMSwgMi45NjYzNiwgMy43Njk3NiIsIFwKLSAgICAgICAgICAiMC4xOTkxLCAwLjc3MTAwOCwgMS4zMzc1MSwgMS43MzU2LCAyLjM5Mzk4LCAyLjk2Njc1LCAzLjc3NjA2IiwgXAotICAgICAgICAgICIwLjE5OTY1NSwgMC43NjgwNzcsIDEuMzMxMjgsIDEuNzQyMjYsIDIuMzkyNTMsIDIuOTQ5MTksIDMuNzcwNTciLCBcCi0gICAgICAgICAgIjAuMTk5Njc1LCAwLjc3MDk0NCwgMS4zMzc0NiwgMS43MzU2OSwgMi4zOTM3NSwgMi45NTA3NSwgMy43NzQ4MiIsIFwKLSAgICAgICAgICAiMC4yMDA0MTMsIDAuNzY4NDA1LCAxLjMzNjM2LCAxLjczNTU0LCAyLjM4MTU1LCAyLjk2MTA4LCAzLjc1OTc2IiwgXAotICAgICAgICAgICIwLjIwMzk3NSwgMC43NjUzNTYsIDEuMzQwMzUsIDEuNzQ3NjMsIDIuMzkzODcsIDIuOTQ4ODEsIDMuNzc0OTgiLCBcCi0gICAgICAgICAgIjAuMjA4NTcxLCAwLjc2ODA1NywgMS4zMzc0NywgMS43MzU1OSwgMi4zOTQxOCwgMi45NjMwOSwgMy43NzU3NyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJEIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyNTc1MywgMC4wOTAzMzgsIDAuMTU0ODU5LCAwLjIwMDk3NiwgMC4yNzQ3NjksIDAuMzM5MjQsIDAuNDMxNDE5IiwgXAotICAgICAgICAgICIwLjAzNzU4NSwgMC4xMDIyODUsIDAuMTY2ODQ5LCAwLjIxMjkyOSwgMC4yODY3MTgsIDAuMzUxMjUsIDAuNDQzNDI4IiwgXAotICAgICAgICAgICIwLjA1MjM4NywgMC4xMTY2MTksIDAuMTgxMDk0LCAwLjIyNzI1LCAwLjMwMTA5OCwgMC4zNjU1MDYsIDAuNDU3Njk2IiwgXAotICAgICAgICAgICIwLjA2NjQwNSwgMC4xMzE3MDIsIDAuMTk1ODk3LCAwLjI0MTgxOSwgMC4zMTU0NDUsIDAuMzc4NzU2LCAwLjQ3MDgwNiIsIFwKLSAgICAgICAgICAiMC4wNzg1NzEsIDAuMTQ2NDc0LCAwLjIxMDU4NSwgMC4yNTY1NjEsIDAuMzMwMDU2LCAwLjM5NDYwNywgMC40ODY3MDEiLCBcCi0gICAgICAgICAgIjAuMDk1ODQxLCAwLjE3MDQxMywgMC4yMzQ4NTUsIDAuMjgwODUxLCAwLjM1NDU0NSwgMC40MTkxMDQsIDAuNTExMjA0IiwgXAotICAgICAgICAgICIwLjEwODk0OSwgMC4xOTExMzgsIDAuMjU0MjI4LCAwLjMwMTQ5NywgMC4zNzQ1OTEsIDAuNDM4OTAyLCAwLjUzMDY3NiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0NDE1NSwgMC4xNzUzMzMsIDAuMzA3MDQ0LCAwLjQwMDI1OSwgMC41NTAwMjksIDAuNjgyNDgzLCAwLjg2ODEyMyIsIFwKLSAgICAgICAgICAiMC4wNDUxNTEsIDAuMTc1NjUxLCAwLjMwNjQwOCwgMC40MDA4NTcsIDAuNTQ5NjU2LCAwLjY4MDc1LCAwLjg3MDI1NiIsIFwKLSAgICAgICAgICAiMC4wNTA3NzgsIDAuMTc1Mzk2LCAwLjMwNzA5LCAwLjM5OTk5OCwgMC41NDk5MzksIDAuNjgwODE1LCAwLjg2ODA1MiIsIFwKLSAgICAgICAgICAiMC4wNTg2NTIsIDAuMTc3OTE2LCAwLjMwNjU0OSwgMC40MDA5NTgsIDAuNTUxMiwgMC42ODA5ODUsIDAuODY4MTMiLCBcCi0gICAgICAgICAgIjAuMDY4MTc0LCAwLjE4MTg4MywgMC4zMDgyODIsIDAuNDAwMDE2LCAwLjU1MTA0MiwgMC42ODExMjUsIDAuODY3ODYyIiwgXAotICAgICAgICAgICIwLjA4MzUwNCwgMC4xOTAyODIsIDAuMzEyNTA3LCAwLjQwMzI1NywgMC41NTExODcsIDAuNjgxMDcyLCAwLjg2Nzk3NiIsIFwKLSAgICAgICAgICAiMC4wOTYzOTEsIDAuMTk5NTY4LCAwLjMxOTM2LCAwLjQwNzM0NywgMC41NTE4NDEsIDAuNjgxNDE1LCAwLjg2Nzk1OCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwODg0MywgMC40MTIyMTIsIDAuNzE1MjQyLCAwLjkzMTc1NiwgMS4yNzc0NCwgMS41ODA5NSwgMi4wMTM4NCIsIFwKLSAgICAgICAgICAiMC4xMTcxNjgsIDAuNDIxNTQzLCAwLjcyNDY4MiwgMC45NDA4NDcsIDEuMjg2OTcsIDEuNTg5OTMsIDIuMDIyNTgiLCBcCi0gICAgICAgICAgIjAuMTI3NzU3LCAwLjQzMjY1NSwgMC43MzU5ODUsIDAuOTUyMzk3LCAxLjI5ODg4LCAxLjYwMjIsIDIuMDM0NTQiLCBcCi0gICAgICAgICAgIjAuMTM5MDYxLCAwLjQ0NDA0LCAwLjc0NzY4LCAwLjk2NDM3NiwgMS4zMTA0MSwgMS42MTM0MiwgMi4wNDY1MiIsIFwKLSAgICAgICAgICAiMC4xNTAyOTUsIDAuNDU1MzEyLCAwLjc1OTIwOSwgMC45NzU4MDgsIDEuMzIyMzQsIDEuNjI0OTMsIDIuMDU3OTQiLCBcCi0gICAgICAgICAgIjAuMTY5Mzg1LCAwLjQ3MzE3MywgMC43NzY5MjMsIDAuOTkzNTU5LCAxLjM0MDQ0LCAxLjY0MzE3LCAyLjA3Njk2IiwgXAotICAgICAgICAgICIwLjE4NjQ2NiwgMC40ODk5NjksIDAuNzkzNzYsIDEuMDEwNSwgMS4zNTcyMywgMS42NjEyNSwgMi4wOTI5NiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE5ODg3NywgMC43Njk5MTQsIDEuMzMxNjMsIDEuNzQzNTcsIDIuMzgyMDcsIDIuOTYyNCwgMy43NzQ4OSIsIFwKLSAgICAgICAgICAiMC4xOTg1MDcsIDAuNzY4MjM2LCAxLjMzOTM2LCAxLjczNTgzLCAyLjM5MTYyLCAyLjk2MDQ1LCAzLjc3MTQ1IiwgXAotICAgICAgICAgICIwLjE5NzU5MywgMC43Njc5ODQsIDEuMzMxNDgsIDEuNzQxNDksIDIuMzk3OTQsIDIuOTY4MzMsIDMuNzcxOTkiLCBcCi0gICAgICAgICAgIjAuMTk4Njc1LCAwLjc2ODAyNCwgMS4zMzcwOSwgMS43NDM1NCwgMi4zOTE1OSwgMi45NTk5NCwgMy43NzM0OSIsIFwKLSAgICAgICAgICAiMC4yMDEzNzQsIDAuNzY1MTg1LCAxLjMzMDU2LCAxLjc0MzYsIDIuMzgxMTMsIDIuOTYsIDMuNzczMTQiLCBcCi0gICAgICAgICAgIjAuMjA4OTk1LCAwLjc2NTEwMiwgMS4zMzYyNywgMS43NDIxLCAyLjM4MjU0LCAyLjk2NzE5LCAzLjc3NTYyIiwgXAotICAgICAgICAgICIwLjIxNjkxNSwgMC43NjczNzMsIDEuMzM5MzgsIDEuNzM1ODMsIDIuMzkzNTMsIDIuOTQ3MjUsIDMuNzcyMDgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyMDg2MiwgMC4wMjA4NTQsIDAuMDIwODU3LCAwLjAyMDg1NywgMC4wMjA4NTEsIDAuMDIwODUyLCAwLjAyMDg0NyIsIFwKLSAgICAgICAgICAiMC4wMjA3NDgsIDAuMDIwNzU5LCAwLjAyMDc2MSwgMC4wMjA3NjIsIDAuMDIwNzU5LCAwLjAyMDc1OSwgMC4wMjA3NTgiLCBcCi0gICAgICAgICAgIjAuMDIwNjc4LCAwLjAyMDcxNywgMC4wMjA3MTgsIDAuMDIwNzI1LCAwLjAyMDcyMiwgMC4wMjA3MjEsIDAuMDIwNzE5IiwgXAotICAgICAgICAgICIwLjAyMDYzNiwgMC4wMjA2ODksIDAuMDIwNjc0LCAwLjAyMDcsIDAuMDIwNzA1LCAwLjAyMDcwMSwgMC4wMjA2OTkiLCBcCi0gICAgICAgICAgIjAuMDIwNjExLCAwLjAyMDY3MSwgMC4wMjA2ODQsIDAuMDIwNjg5LCAwLjAyMDY5MywgMC4wMjA2OTUsIDAuMDIwNjkzIiwgXAotICAgICAgICAgICIwLjAyMDU4NSwgMC4wMjA2NjIsIDAuMDIwNjgsIDAuMDIwNjg1LCAwLjAyMDY0MiwgMC4wMjA2ODUsIDAuMDIwNjg4IiwgXAotICAgICAgICAgICIwLjAyMDU1NSwgMC4wMjA2NCwgMC4wMjA2NjEsIDAuMDIwNjcyLCAwLjAyMDY3OSwgMC4wMjA2ODEsIDAuMDIwNjgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNTgxMiwgMC4wMDU4NTMsIDAuMDA1ODU5LCAwLjAwNTg2MSwgMC4wMDU4NjMsIDAuMDA1ODY1LCAwLjAwNTg2NSIsIFwKLSAgICAgICAgICAiMC4wMDU2MzksIDAuMDA1NzkzLCAwLjAwNTgyNCwgMC4wMDU4MzQsIDAuMDA1ODQzLCAwLjAwNTg0OCwgMC4wMDU4NTIiLCBcCi0gICAgICAgICAgIjAuMDA1NTA1LCAwLjAwNTcyNywgMC4wMDU3ODIsIDAuMDA1OCwgMC4wMDU4MTgsIDAuMDA1ODI3LCAwLjAwNTgzNiIsIFwKLSAgICAgICAgICAiMC4wMDU0MjEsIDAuMDA1NjcsIDAuMDA1NzQyLCAwLjAwNTc2OSwgMC4wMDU3OTQsIDAuMDA1ODA3LCAwLjAwNTgyIiwgXAotICAgICAgICAgICIwLjAwNTM2OSwgMC4wMDU2MjIsIDAuMDA1NzA4LCAwLjAwNTc0LCAwLjAwNTc3MSwgMC4wMDU3ODgsIDAuMDA1ODA1IiwgXAotICAgICAgICAgICIwLjAwNTMxMywgMC4wMDU1NTgsIDAuMDA1NjU3LCAwLjAwNTY5NywgMC4wMDU3MzcsIDAuMDA1NzU5LCAwLjAwNTc4IiwgXAotICAgICAgICAgICIwLjAwNTI4MSwgMC4wMDU1MTUsIDAuMDA1NjIxLCAwLjAwNTY2NSwgMC4wMDU3MSwgMC4wMDU3MzYsIDAuMDA1NzYxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTc5MSwgMC4wMTc5MSwgMC4wMTc5MTEsIDAuMDE3OTA3LCAwLjAxNzkwOSwgMC4wMTc5MDgsIDAuMDE3OTA0IiwgXAotICAgICAgICAgICIwLjAxNzgyOSwgMC4wMTc4NTksIDAuMDE3ODYyLCAwLjAxNzg2NSwgMC4wMTc4NjQsIDAuMDE3ODY1LCAwLjAxNzg2NiIsIFwKLSAgICAgICAgICAiMC4wMTc3NDYsIDAuMDE3ODIsIDAuMDE3ODM2LCAwLjAxNzgzOCwgMC4wMTc4NDQsIDAuMDE3ODQ0LCAwLjAxNzg0MiIsIFwKLSAgICAgICAgICAiMC4wMTc3MDEsIDAuMDE3OCwgMC4wMTc4LCAwLjAxNzgyNiwgMC4wMTc4MzEsIDAuMDE3ODI4LCAwLjAxNzgzMiIsIFwKLSAgICAgICAgICAiMC4wMTc2NjcsIDAuMDE3NzgxLCAwLjAxNzgwNCwgMC4wMTc4MTQsIDAuMDE3ODIxLCAwLjAxNzgyMSwgMC4wMTc4MjgiLCBcCi0gICAgICAgICAgIjAuMDE3NjAxLCAwLjAxNzc1MSwgMC4wMTc3ODcsIDAuMDE3Nzk5LCAwLjAxNzc3LCAwLjAxNzgxNSwgMC4wMTc4MTYiLCBcCi0gICAgICAgICAgIjAuMDE3NTk1LCAwLjAxNzczNSwgMC4wMTc3NjksIDAuMDE3Nzg3LCAwLjAxNzc5NCwgMC4wMTc4MDQsIDAuMDE3ODExIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDU4MTMsIDAuMDA1ODU1LCAwLjAwNTg2MSwgMC4wMDU4NjMsIDAuMDA1ODY1LCAwLjAwNTg2NiwgMC4wMDU4NjciLCBcCi0gICAgICAgICAgIjAuMDA1NjQsIDAuMDA1Nzk1LCAwLjAwNTgyNiwgMC4wMDU4MzYsIDAuMDA1ODQ1LCAwLjAwNTg1LCAwLjAwNTg1NCIsIFwKLSAgICAgICAgICAiMC4wMDU1MDQsIDAuMDA1NzI4LCAwLjAwNTc4MywgMC4wMDU4MDIsIDAuMDA1ODIsIDAuMDA1ODI5LCAwLjAwNTgzOCIsIFwKLSAgICAgICAgICAiMC4wMDU0MjMsIDAuMDA1NjcxLCAwLjAwNTc0NCwgMC4wMDU3NywgMC4wMDU3OTUsIDAuMDA1ODA5LCAwLjAwNTgyMiIsIFwKLSAgICAgICAgICAiMC4wMDUzNjksIDAuMDA1NjIzLCAwLjAwNTcwOSwgMC4wMDU3NDEsIDAuMDA1NzczLCAwLjAwNTc5LCAwLjAwNTgwNiIsIFwKLSAgICAgICAgICAiMC4wMDUzMTMsIDAuMDA1NTU5LCAwLjAwNTY1OSwgMC4wMDU2OTksIDAuMDA1NzM5LCAwLjAwNTc2MSwgMC4wMDU3ODIiLCBcCi0gICAgICAgICAgIjAuMDA1MjgsIDAuMDA1NTE2LCAwLjAwNTYyMiwgMC4wMDU2NjYsIDAuMDA1NzEyLCAwLjAwNTczOCwgMC4wMDU3NjMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxNDcyLCAwLjAxNDcyOSwgMC4wMTQ3MywgMC4wMTQ3MywgMC4wMTQ3MjksIDAuMDE0NzI5LCAwLjAxNDcyOSIsIFwKLSAgICAgICAgICAiMC4wMTQ2ODYsIDAuMDE0NzUxLCAwLjAxNDc2MSwgMC4wMTQ3NjMsIDAuMDE0NzY2LCAwLjAxNDc2NiwgMC4wMTQ3NjciLCBcCi0gICAgICAgICAgIjAuMDE0NjEzLCAwLjAxNDcwNywgMC4wMTQ3NTcsIDAuMDE0NzY1LCAwLjAxNDc3MiwgMC4wMTQ3NzQsIDAuMDE0Nzc4IiwgXAotICAgICAgICAgICIwLjAxNDU1NiwgMC4wMTQ3MTUsIDAuMDE0NzM0LCAwLjAxNDc1NywgMC4wMTQ3NjcsIDAuMDE0NzcxLCAwLjAxNDc3NiIsIFwKLSAgICAgICAgICAiMC4wMTQ1MjIsIDAuMDE0Njk2LCAwLjAxNDczNiwgMC4wMTQ3NSwgMC4wMTQ3NiwgMC4wMTQ3NjYsIDAuMDE0Nzc0IiwgXAotICAgICAgICAgICIwLjAxNDQ1MSwgMC4wMTQ2NTYsIDAuMDE0NzEsIDAuMDE0NzI4LCAwLjAxNDc0NywgMC4wMTQ3NTQsIDAuMDE0NzY0IiwgXAotICAgICAgICAgICIwLjAxNDQ0MiwgMC4wMTQ2NDIsIDAuMDE0Njk4LCAwLjAxNDcyNSwgMC4wMTQ3NCwgMC4wMTQ3NSwgMC4wMTQ3NjMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNTgxNCwgMC4wMDU4NTYsIDAuMDA1ODYzLCAwLjAwNTg2NSwgMC4wMDU4NjcsIDAuMDA1ODY4LCAwLjAwNTg2OCIsIFwKLSAgICAgICAgICAiMC4wMDU2NCwgMC4wMDU3OTYsIDAuMDA1ODI3LCAwLjAwNTgzNywgMC4wMDU4NDcsIDAuMDA1ODUyLCAwLjAwNTg1NiIsIFwKLSAgICAgICAgICAiMC4wMDU1MDUsIDAuMDA1NzI5LCAwLjAwNTc4NCwgMC4wMDU4MDMsIDAuMDA1ODIxLCAwLjAwNTgzMSwgMC4wMDU4MzkiLCBcCi0gICAgICAgICAgIjAuMDA1NDIyLCAwLjAwNTY3MSwgMC4wMDU3NDUsIDAuMDA1NzcxLCAwLjAwNTc5NywgMC4wMDU4MSwgMC4wMDU4MjMiLCBcCi0gICAgICAgICAgIjAuMDA1MzY5LCAwLjAwNTYyNCwgMC4wMDU3MSwgMC4wMDU3NDIsIDAuMDA1Nzc0LCAwLjAwNTc5MSwgMC4wMDU4MDgiLCBcCi0gICAgICAgICAgIjAuMDA1MzE0LCAwLjAwNTU2LCAwLjAwNTY2LCAwLjAwNTcsIDAuMDA1NzQsIDAuMDA1NzYyLCAwLjAwNTc4NCIsIFwKLSAgICAgICAgICAiMC4wMDUyODMsIDAuMDA1NTE3LCAwLjAwNTYyMywgMC4wMDU2NjgsIDAuMDA1NzE0LCAwLjAwNTc0LCAwLjAwNTc2NSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkQiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDExMzI4LCAwLjAxMTM2NSwgMC4wMTEzNzEsIDAuMDExMzcxLCAwLjAxMTM3MywgMC4wMTEzNzQsIDAuMDExMzc0IiwgXAotICAgICAgICAgICIwLjAxMTI5LCAwLjAxMTQyMiwgMC4wMTE0NDcsIDAuMDExNDU0LCAwLjAxMTQ1NywgMC4wMTE0NTksIDAuMDExNDYzIiwgXAotICAgICAgICAgICIwLjAxMTIwNiwgMC4wMTE0MTIsIDAuMDExNDUxLCAwLjAxMTQ2MywgMC4wMTE0NzQsIDAuMDExNDgsIDAuMDExNDg1IiwgXAotICAgICAgICAgICIwLjAxMTE0MSwgMC4wMTEzOTMsIDAuMDExNDQ2LCAwLjAxMTQ1NiwgMC4wMTE0NzEsIDAuMDExNDgxLCAwLjAxMTQ5MSIsIFwKLSAgICAgICAgICAiMC4wMTEwOTksIDAuMDExMzYxLCAwLjAxMTQyMSwgMC4wMTE0NDgsIDAuMDExNDY4LCAwLjAxMTQ4MSwgMC4wMTE0ODgiLCBcCi0gICAgICAgICAgIjAuMDExMDQ3LCAwLjAxMTMzMSwgMC4wMTE0LCAwLjAxMTQzMSwgMC4wMTE0NTUsIDAuMDExNDY2LCAwLjAxMTQ4MSIsIFwKLSAgICAgICAgICAiMC4wMTEwMDMsIDAuMDExMjg3LCAwLjAxMTM4MywgMC4wMTE0MTIsIDAuMDExNDQxLCAwLjAxMTQ1NCwgMC4wMTE0NzIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNTgwMSwgMC4wMDU4NTMsIDAuMDA1ODYxLCAwLjAwNTg2NCwgMC4wMDU4NjYsIDAuMDA1ODY3LCAwLjAwNTg2OCIsIFwKLSAgICAgICAgICAiMC4wMDU1OTcsIDAuMDA1NzgyLCAwLjAwNTgxOSwgMC4wMDU4MzEsIDAuMDA1ODQyLCAwLjAwNTg0OCwgMC4wMDU4NTMiLCBcCi0gICAgICAgICAgIjAuMDA1NDM2LCAwLjAwNTcsIDAuMDA1NzY3LCAwLjAwNTc5LCAwLjAwNTgxMSwgMC4wMDU4MjMsIDAuMDA1ODMzIiwgXAotICAgICAgICAgICIwLjAwNTM0OSwgMC4wMDU2MzUsIDAuMDA1NzIyLCAwLjAwNTc1MywgMC4wMDU3ODMsIDAuMDA1Nzk5LCAwLjAwNTgxNCIsIFwKLSAgICAgICAgICAiMC4wMDUzMDEsIDAuMDA1NTgyLCAwLjAwNTY4MSwgMC4wMDU3MiwgMC4wMDU3NTcsIDAuMDA1Nzc3LCAwLjAwNTc5NiIsIFwKLSAgICAgICAgICAiMC4wMDUyODcsIDAuMDA1NTE5LCAwLjAwNTYyOSwgMC4wMDU2NzQsIDAuMDA1NzIsIDAuMDA1NzQ1LCAwLjAwNTc3IiwgXAotICAgICAgICAgICIwLjAwNTI1OCwgMC4wMDU0NzIsIDAuMDA1NTg3LCAwLjAwNTYzNywgMC4wMDU2ODksIDAuMDA1NzE5LCAwLjAwNTc0OCIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogTk9SM1g2ICoKLSAqIC0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoTk9SM1g2KSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMzgzNTQ7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwNTAwOTg5OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwNDk2NTY1OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwNTAwOTg5OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTU5MywgMC4wMDE2NTMsIDAuMDAxNjgyLCAwLjAwMTY5OCwgMC4wMDE3MDgsIDAuMDAxNzE5LCAwLjAwMTcyNiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjMzOCwgMC4wMDIzNCwgMC4wMDIzNDEsIDAuMDAyMzQxLCAwLjAwMjM0MSwgMC4wMDIzNDIsIDAuMDAyMzQyIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDUwODc1MTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDUwNTAzMzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDUwODc1MTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDE1OTcsIDAuMDAxNjk5LCAwLjAwMTczNiwgMC4wMDE3NSwgMC4wMDE3NTcsIDAuMDAxNzY0LCAwLjAwMTc2OSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTg4MSwgMC4wMDE4ODIsIDAuMDAxODgzLCAwLjAwMTg4MywgMC4wMDE4ODQsIDAuMDAxODg0LCAwLjAwMTg4NCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQykgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDA0NzY5NTg7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDA0NzY4Mjc7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDA0NzY5NTg7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNTQ3LCAwLjAwMDU0NywgMC4wMDA1NDcsIDAuMDAwNTQ3LCAwLjAwMDU0OCwgMC4wMDA1NDcsIDAuMDAwNTQ3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyMTY1LCAwLjAwMjE2NiwgMC4wMDIxNjYsIDAuMDAyMTY2LCAwLjAwMjE2NywgMC4wMDIxNjUsIDAuMDAyMTY2Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMjkzMTI4OwotICAgIGZ1bmN0aW9uIDogIighKChBK0IpK0MpKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTA0NzUsIDAuMzU1NDM2LCAwLjYyMDI4NywgMC44MDk0NjEsIDEuMTExNzcsIDEuMzc3NDcsIDEuNzU1MDgiLCBcCi0gICAgICAgICAgIjAuMTAxNjUxLCAwLjM2NjkyNSwgMC42MzE3OTUsIDAuODIxMDA1LCAxLjEyNDA2LCAxLjM4ODQsIDEuNzY3NTgiLCBcCi0gICAgICAgICAgIjAuMTE0Mjk1LCAwLjM3OTk1MSwgMC42NDQ2NzgsIDAuODMzOTc3LCAxLjEzNzE0LCAxLjQwMTQxLCAxLjc4MDAyIiwgXAotICAgICAgICAgICIwLjEyNTk5NiwgMC4zOTE2LCAwLjY1NjUwMiwgMC44NDU1OTgsIDEuMTQ4ODIsIDEuNDEzMjQsIDEuNzkyMzkiLCBcCi0gICAgICAgICAgIjAuMTM3Mjg3LCAwLjQwMzAwMywgMC42Njc4OTgsIDAuODU3MDQyLCAxLjE1OTkyLCAxLjQyNDUzLCAxLjgwMzIzIiwgXAotICAgICAgICAgICIwLjE1NDYwMiwgMC40MjAyMzUsIDAuNjg1NDM0LCAwLjg3NDU2MSwgMS4xNzc1NSwgMS40NDE5MiwgMS44MjA0MSIsIFwKLSAgICAgICAgICAiMC4xNjkxNTYsIDAuNDM1MTMzLCAwLjcwMDE4NiwgMC44ODk2OTgsIDEuMTkyMDcsIDEuNDU2NjcsIDEuODM1MjYiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMzI5NjQsIDAuNjQyODA4LCAxLjE1NDQyLCAxLjUxNjExLCAyLjEwNDA2LCAyLjYwNzA1LCAzLjM0MzYzIiwgXAotICAgICAgICAgICIwLjEzMjk1NywgMC42NDM5NzEsIDEuMTUyODYsIDEuNTE5MTMsIDIuMTA0MTQsIDIuNjEzNDYsIDMuMzM2MTEiLCBcCi0gICAgICAgICAgIjAuMTMyNzU4LCAwLjY0MjE4LCAxLjE1MjcxLCAxLjUxOTE3LCAyLjA5ODUsIDIuNjEzNDksIDMuMzQ0NjciLCBcCi0gICAgICAgICAgIjAuMTMzMjQ2LCAwLjY0MzQxNiwgMS4xNTI4MSwgMS41MTcsIDIuMTAzOTQsIDIuNjEzMjcsIDMuMzM1NTUiLCBcCi0gICAgICAgICAgIjAuMTM0MzMyLCAwLjY0MzYzOCwgMS4xNTI3OCwgMS41MTg2NywgMi4xMDI5NSwgMi42MTAyMywgMy4zNDQ1OSIsIFwKLSAgICAgICAgICAiMC4xMzcyOTksIDAuNjQyNjYxLCAxLjE1NDU1LCAxLjUxODk2LCAyLjEwMzQ0LCAyLjYwOTg4LCAzLjM0MzM2IiwgXAotICAgICAgICAgICIwLjE0MDg0OSwgMC42NDI1MjYsIDEuMTUzMDMsIDEuNTE5NTcsIDIuMTAyMjUsIDIuNjEwMDEsIDMuMzM5NSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzNzM0MiwgMC4xMzkxNzQsIDAuMjM5MDM0LCAwLjMxMDEzNSwgMC40MjM3OTQsIDAuNTIzMjY4LCAwLjY2NTE0NSIsIFwKLSAgICAgICAgICAiMC4wNDg4MTEsIDAuMTUwNjY0LCAwLjI1MDUwMiwgMC4zMjE2MzEsIDAuNDM1MywgMC41MzQ3MjIsIDAuNjc2NjgiLCBcCi0gICAgICAgICAgIjAuMDYzODg2LCAwLjE2NTI0MywgMC4yNjUwMDgsIDAuMzM2MTQ5LCAwLjQ0ODA3NSwgMC41NDc0MywgMC42ODk0MjciLCBcCi0gICAgICAgICAgIjAuMDc5MTczLCAwLjE4MDUxMywgMC4yODAzNDIsIDAuMzUwODAzLCAwLjQ2MjE5NywgMC41NjE2MDEsIDAuNzAzNTEyIiwgXAotICAgICAgICAgICIwLjA5NDIwNywgMC4xOTUwMywgMC4yOTQ1OTcsIDAuMzY1NTYzLCAwLjQ3OTE3MSwgMC41Nzg2NDgsIDAuNzE3NDc2IiwgXAotICAgICAgICAgICIwLjExNTk5NiwgMC4yMTk0MTEsIDAuMzE5MTkyLCAwLjM5MDMxMiwgMC41MDI2NjMsIDAuNjAyMDgzLCAwLjc0Mzk2MyIsIFwKLSAgICAgICAgICAiMC4xMzMwODYsIDAuMjQwNzc5LCAwLjMzOTk4NCwgMC40MTEwNTksIDAuNTIzMzAxLCAwLjYyMjYyOSwgMC43NjQ1OTUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTkxMTEsIDAuMjU1NzkyLCAwLjQ1MjYxMywgMC41OTMyMjksIDAuODE3NjA3LCAxLjAxNDkzLCAxLjI5NTEzIiwgXAotICAgICAgICAgICIwLjA1ODc5MiwgMC4yNTU3NTEsIDAuNDUyNjU4LCAwLjU5MzIxNywgMC44MTgxNDksIDEuMDE0NTUsIDEuMjk1NDQiLCBcCi0gICAgICAgICAgIjAuMDYxODUxLCAwLjI1NTg0OSwgMC40NTI1OTMsIDAuNTkzMTQzLCAwLjgxODA0MywgMS4wMTQ3OCwgMS4yOTUzIiwgXAotICAgICAgICAgICIwLjA2NzMxNCwgMC4yNTU3NTMsIDAuNDUyNjIyLCAwLjU5Mjk1NywgMC44MTc2MjIsIDEuMDE0NTIsIDEuMjk1NDEiLCBcCi0gICAgICAgICAgIjAuMDc0MzA2LCAwLjI1NzQ1NSwgMC40NTIzODEsIDAuNTkyOTEzLCAwLjgxODA5NywgMS4wMTQ3OSwgMS4yOTU1NCIsIFwKLSAgICAgICAgICAiMC4wODc1MDksIDAuMjYyMTcxLCAwLjQ1MzE4OCwgMC41OTMwNjYsIDAuODE3ODQsIDEuMDE0NjYsIDEuMjk1MzUiLCBcCi0gICAgICAgICAgIjAuMTAwMTg0LCAwLjI2ODA5NCwgMC40NTU3MzYsIDAuNTkzNzk2LCAwLjgxNzY4NSwgMS4wMTQ1MSwgMS4yOTU4NCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4MzgzOSwgMC4zNDg3MDEsIDAuNjEzNzY0LCAwLjgwMjkyMiwgMS4xMDU3LCAxLjM3MDEzLCAxLjc0OTI1IiwgXAotICAgICAgICAgICIwLjA5NDA1NSwgMC4zNTkzMywgMC42MjQzNjgsIDAuODEzMjkxLCAxLjExNTczLCAxLjM4MDczLCAxLjc1OTE0IiwgXAotICAgICAgICAgICIwLjEwNjQzOSwgMC4zNzE5ODIsIDAuNjM3MSwgMC44MjYyNDMsIDEuMTI4NywgMS4zOTM3MiwgMS43NzE0NiIsIFwKLSAgICAgICAgICAiMC4xMTgzMDgsIDAuMzgzOTEyLCAwLjY0ODgxOSwgMC44MzgxNjEsIDEuMTQxMywgMS40MDU1NywgMS43ODQxIiwgXAotICAgICAgICAgICIwLjEzMDA3NCwgMC4zOTU3NjUsIDAuNjYwNzc0LCAwLjg1MDE4NiwgMS4xNTMyMiwgMS40MTczNywgMS43OTYwMyIsIFwKLSAgICAgICAgICAiMC4xNDg4MDgsIDAuNDE0NzcyLCAwLjY3OTcyNSwgMC44NjkyMTcsIDEuMTcyMDEsIDEuNDM2MjMsIDEuODE1MDkiLCBcCi0gICAgICAgICAgIjAuMTY0NTgzLCAwLjQzMTAxMywgMC42OTYxMDcsIDAuODg1NTk2LCAxLjE4ODAyLCAxLjQ1MzQ2LCAxLjgzMDk1Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTMyOTM4LCAwLjY0Mzc3NiwgMS4xNTQ3NiwgMS41MTc1NywgMi4xMDM4MiwgMi42MTMzNiwgMy4zNDYyOSIsIFwKLSAgICAgICAgICAiMC4xMzI5NTgsIDAuNjQyNzMzLCAxLjE1NDcxLCAxLjUxNzE5LCAyLjEwMzg5LCAyLjYxMDczLCAzLjM0MzY5IiwgXAotICAgICAgICAgICIwLjEzMjc0OSwgMC42NDI5NTIsIDEuMTUxNzMsIDEuNTE5NjIsIDIuMTAwNjksIDIuNjE0MjQsIDMuMzM5MTEiLCBcCi0gICAgICAgICAgIjAuMTM0MjA0LCAwLjY0MzM5NiwgMS4xNTMsIDEuNTE5MzMsIDIuMDk4MjMsIDIuNjEzMzYsIDMuMzM2NjgiLCBcCi0gICAgICAgICAgIjAuMTM2MzI2LCAwLjY0Mjc2OSwgMS4xNTQxOSwgMS41MTk2MSwgMi4wOTgxLCAyLjYxMjk0LCAzLjMzNjYiLCBcCi0gICAgICAgICAgIjAuMTQxODMyLCAwLjY0Mzc2MSwgMS4xNTQxMiwgMS41MTU4NiwgMi4xMDM4NSwgMi42MTA4LCAzLjM0NDYiLCBcCi0gICAgICAgICAgIjAuMTQ4MzMzLCAwLjY0MzMxMiwgMS4xNTM5MiwgMS41MTk2MywgMi4xMDIyOSwgMi42MTQ5OSwgMy4zMzkxNSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzMzgzOSwgMC4xMzI2MzMsIDAuMjMwNzA2LCAwLjMwMDczOSwgMC40MTI2NDYsIDAuNTEwNTMsIDAuNjUwNDU3IiwgXAotICAgICAgICAgICIwLjA0NTU3OCwgMC4xNDQzNzgsIDAuMjQyNTExLCAwLjMxMjQ4OSwgMC40MjQzODYsIDAuNTIyMzg5LCAwLjY2MjUxNiIsIFwKLSAgICAgICAgICAiMC4wNjA1MTUsIDAuMTU5MjQ0LCAwLjI1NzIxLCAwLjMyNzE0NiwgMC40Mzg5NjYsIDAuNTM2OTkyLCAwLjY3Njc2MyIsIFwKLSAgICAgICAgICAiMC4wNzU2NywgMC4xNzQzNDYsIDAuMjcyMTIxLCAwLjM0MjA0MywgMC40NTM4NTUsIDAuNTQ5Mzc0LCAwLjY4OTQ1OCIsIFwKLSAgICAgICAgICAiMC4wODk4ODYsIDAuMTg5MjcsIDAuMjg2NzE3LCAwLjM1NjUzMiwgMC40NjgzOTcsIDAuNTY2MzgzLCAwLjcwMzE5OSIsIFwKLSAgICAgICAgICAiMC4xMTA0NjIsIDAuMjEzMjcsIDAuMzExMzM2LCAwLjM4MTIzOCwgMC40OTMyNDYsIDAuNTkxMzM1LCAwLjcyOTU3NiIsIFwKLSAgICAgICAgICAiMC4xMjY2MjEsIDAuMjM0MTQ0LCAwLjMzMjA4MiwgMC40MDI2NiwgMC41MTQ2NywgMC42MTA0MjIsIDAuNzUwNDY5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDUyNjE2LCAwLjI0Njc1OSwgMC40NDA3NjQsIDAuNTc5NjAxLCAwLjgwMDksIDAuOTk0OTU3LCAxLjI3MjE3IiwgXAotICAgICAgICAgICIwLjA1Mjc5LCAwLjI0Njc4OCwgMC40NDA5NjMsIDAuNTc5MjM4LCAwLjgwMDk5NCwgMC45OTUzLCAxLjI3MjMyIiwgXAotICAgICAgICAgICIwLjA1NjQ3MywgMC4yNDY2OTksIDAuNDQwODY5LCAwLjU3OTU2LCAwLjgwMTA4NiwgMC45OTUzNywgMS4yNzIxMiIsIFwKLSAgICAgICAgICAiMC4wNjI2MDMsIDAuMjQ2OTQ0LCAwLjQ0MDk1LCAwLjU3OTQ2MywgMC44MDEzNjUsIDAuOTk1MTEyLCAxLjI3MjIzIiwgXAotICAgICAgICAgICIwLjA3MDM1NSwgMC4yNDg2MTgsIDAuNDQwOTQ0LCAwLjU3OTM4MywgMC44MDA4NjIsIDAuOTk1MDcsIDEuMjcyNDYiLCBcCi0gICAgICAgICAgIjAuMDg0ODY1LCAwLjI1NDAyMiwgMC40NDE3MzIsIDAuNTc5NTcsIDAuODAxMDY5LCAwLjk5NTA4NywgMS4yNzIzNSIsIFwKLSAgICAgICAgICAiMC4wOTc4MTUsIDAuMjYwNjc1LCAwLjQ0NDQ4MiwgMC41ODAzNDgsIDAuODAxMDgsIDAuOTk1Mjc3LCAxLjI3MjEyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY4NDUxLCAwLjMzMzQ3MSwgMC41OTgzOTcsIDAuNzg3NDQyLCAxLjA4OTg3LCAxLjM1NTU3LCAxLjczMzE2IiwgXAotICAgICAgICAgICIwLjA3NzM2MywgMC4zNDMwNzgsIDAuNjA3OTk2LCAwLjc5NzI1OCwgMS4wOTk4MywgMS4zNjQ1LCAxLjc0MjczIiwgXAotICAgICAgICAgICIwLjA4OTE4MSwgMC4zNTQ5ODMsIDAuNjE5OTMzLCAwLjgwOTExMiwgMS4xMTI0NywgMS4zNzY1OSwgMS43NTUxOCIsIFwKLSAgICAgICAgICAiMC4xMDE3MzksIDAuMzY3NTg0LCAwLjYzMjc0NywgMC44MjIzMDgsIDEuMTI0NDYsIDEuMzg5NjMsIDEuNzY3NjEiLCBcCi0gICAgICAgICAgIjAuMTE0MDE4LCAwLjM3OTQ1MywgMC42NDQ0MjksIDAuODMzNjI1LCAxLjEzNjI3LCAxLjQwMDk2LCAxLjc3OTU1IiwgXAotICAgICAgICAgICIwLjEzMzg3MiwgMC4zOTgzMDgsIDAuNjYzNDA0LCAwLjg1MzAxLCAxLjE1NTQsIDEuNDIwNjMsIDEuNzk4NDMiLCBcCi0gICAgICAgICAgIjAuMTUwMzA3LCAwLjQxNTQ5OSwgMC42ODA4MDksIDAuODY5ODM3LCAxLjE3MjU3LCAxLjQzNzI2LCAxLjgxNjU2Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTMyNjE0LCAwLjY0MzQ0NCwgMS4xNTQ1OSwgMS41MTc1NCwgMi4xMDAzMiwgMi42MDgwMSwgMy4zNDM2OSIsIFwKLSAgICAgICAgICAiMC4xMzE4NjksIDAuNjQzODE3LCAxLjE1MjI0LCAxLjUxOTcxLCAyLjA5ODcsIDIuNjEzMzksIDMuMzQzMzEiLCBcCi0gICAgICAgICAgIjAuMTMyNjIxLCAwLjY0Mzk0MiwgMS4xNTI4OCwgMS41MTg2NCwgMi4wOTgzOCwgMi42MTAyOCwgMy4zNDQyNyIsIFwKLSAgICAgICAgICAiMC4xMzYzMjIsIDAuNjQzNDA4LCAxLjE1NDM5LCAxLjUxNiwgMi4wOTk5NywgMi42MTQxMiwgMy4zMzkzOSIsIFwKLSAgICAgICAgICAiMC4xNDIxNjQsIDAuNjQzNjYxLCAxLjE1NDAyLCAxLjUxNjk4LCAyLjA5OTk2LCAyLjYxNTA1LCAzLjMzOTc0IiwgXAotICAgICAgICAgICIwLjE1MzcyOCwgMC42NDI0MTcsIDEuMTUyNzIsIDEuNTE5NjEsIDIuMTAyMzcsIDIuNjEzOTgsIDMuMzM4NTkiLCBcCi0gICAgICAgICAgIjAuMTY1MDUyLCAwLjY0NDUwNCwgMS4xNTQ1LCAxLjUxNzI3LCAyLjEwMjE4LCAyLjYwOTg3LCAzLjM0NTgxIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDI5MDY4LCAwLjEyNzA1OCwgMC4yMjQ5NjQsIDAuMjk0OTkyLCAwLjQwNjc1OCwgMC41MDQ2MzksIDAuNjQ0NTc1IiwgXAotICAgICAgICAgICIwLjA0MTAxNSwgMC4xMzkwNDYsIDAuMjM2OTg2LCAwLjMwNjk3NywgMC40MTg4MDgsIDAuNTE2NTYsIDAuNjU2NTUzIiwgXAotICAgICAgICAgICIwLjA1NTk4NSwgMC4xNTM3ODgsIDAuMjUwNzY5LCAwLjMyMDczMiwgMC40MzI3NDYsIDAuNTMwNDg3LCAwLjY3MDMzOCIsIFwKLSAgICAgICAgICAiMC4wNzA2NywgMC4xNjg2MDYsIDAuMjY2MzU2LCAwLjMzNjI2MSwgMC40NDgyMTEsIDAuNTQzMjYsIDAuNjgzMTg5IiwgXAotICAgICAgICAgICIwLjA4NDA1NiwgMC4xODM5NDYsIDAuMjgxMjk3LCAwLjM1MTA1OSwgMC40NjI4NTYsIDAuNTYwNzg0LCAwLjY5NzYwMiIsIFwKLSAgICAgICAgICAiMC4xMDI5OCwgMC4yMDc4NTcsIDAuMzA1MTM5LCAwLjM3NDcyMywgMC40ODY0NTgsIDAuNTg0MzA2LCAwLjcyNDI5MSIsIFwKLSAgICAgICAgICAiMC4xMTc4MDMsIDAuMjI4OTM0LCAwLjMyNjI5NSwgMC4zOTY4MzEsIDAuNTA3NDU2LCAwLjYwNTAxOSwgMC43NDI0MDYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDcwMywgMC4yNDE0MzksIDAuNDM1MzA0LCAwLjU3Mzk3OCwgMC43OTU1NDQsIDAuOTg5Njg5LCAxLjI2OTM4IiwgXAotICAgICAgICAgICIwLjA0NzU0NSwgMC4yNDEyMywgMC40MzUyMDQsIDAuNTc0Nzk1LCAwLjc5NjQ0NywgMC45OTM0NTksIDEuMjY4IiwgXAotICAgICAgICAgICIwLjA1MjA5NywgMC4yNDEwODcsIDAuNDM2NTgxLCAwLjU3NDcyMiwgMC43OTYxOTIsIDAuOTg5NzY1LCAxLjI2NzM0IiwgXAotICAgICAgICAgICIwLjA1OTE3OSwgMC4yNDIyNzQsIDAuNDM1MzY4LCAwLjU3NDEwOSwgMC43OTY4MjcsIDAuOTg5OTg4LCAxLjI3MDkxIiwgXAotICAgICAgICAgICIwLjA2Nzc0LCAwLjI0NDE0LCAwLjQzNTczOCwgMC41NzQ1NDIsIDAuNzk3NzM2LCAwLjk4OTYyNywgMS4yNjk0NyIsIFwKLSAgICAgICAgICAiMC4wODMyNjEsIDAuMjQ5MjgyLCAwLjQzNzMzLCAwLjU3NTk0MywgMC43OTgyMDksIDAuOTkyMzg3LCAxLjI2NzU0IiwgXAotICAgICAgICAgICIwLjA5NjUzOCwgMC4yNTY1NTQsIDAuNDQwMjM2LCAwLjU3NTM2MiwgMC43OTg2OTIsIDAuOTg5ODA1LCAxLjI3MDkzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTE5MjQsIDAuMDExOTQzLCAwLjAxMTk0NSwgMC4wMTE5NDYsIDAuMDExOTQ2LCAwLjAxMTk0NiwgMC4wMTE5NDciLCBcCi0gICAgICAgICAgIjAuMDExODQ5LCAwLjAxMTkyNCwgMC4wMTE5MzUsIDAuMDExOTM4LCAwLjAxMTk0MSwgMC4wMTE5NDMsIDAuMDExOTQyIiwgXAotICAgICAgICAgICIwLjAxMTc5MywgMC4wMTE5MDIsIDAuMDExOTIxLCAwLjAxMTkyOCwgMC4wMTE5MzMsIDAuMDExOTM4LCAwLjAxMTk0IiwgXAotICAgICAgICAgICIwLjAxMTc1OCwgMC4wMTE4ODEsIDAuMDExOTEsIDAuMDExOTE3LCAwLjAxMTkyNSwgMC4wMTE5MzEsIDAuMDExOTM0IiwgXAotICAgICAgICAgICIwLjAxMTczNywgMC4wMTE4NjYsIDAuMDExODk4LCAwLjAxMTkxLCAwLjAxMTkxMSwgMC4wMTE5MjcsIDAuMDExOTMiLCBcCi0gICAgICAgICAgIjAuMDExNzEyLCAwLjAxMTg0MSwgMC4wMTE4OCwgMC4wMTE4OTUsIDAuMDExODk5LCAwLjAxMTkxNSwgMC4wMTE5MzMiLCBcCi0gICAgICAgICAgIjAuMDExNywgMC4wMTE4MjUsIDAuMDExODY5LCAwLjAxMTg4NCwgMC4wMTE5LCAwLjAxMTkxLCAwLjAxMTkxNiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0NDc3LCAwLjAwNDQ3NiwgMC4wMDQ0NzgsIDAuMDA0NDc4LCAwLjAwNDQ3MywgMC4wMDQ0NzYsIDAuMDA0NDc0IiwgXAotICAgICAgICAgICIwLjAwNDMzMSwgMC4wMDQzNTIsIDAuMDA0MzU1LCAwLjAwNDM1NywgMC4wMDQzNTYsIDAuMDA0MzU1LCAwLjAwNDM1NCIsIFwKLSAgICAgICAgICAiMC4wMDQyNjQsIDAuMDA0MzA4LCAwLjAwNDMxOCwgMC4wMDQzMTksIDAuMDA0MzE0LCAwLjAwNDMxNSwgMC4wMDQzMTUiLCBcCi0gICAgICAgICAgIjAuMDA0MjI1LCAwLjAwNDI5NCwgMC4wMDQzMDQsIDAuMDA0MzAyLCAwLjAwNDI5NywgMC4wMDQyOTcsIDAuMDA0Mjk4IiwgXAotICAgICAgICAgICIwLjAwNDE5OSwgMC4wMDQyNywgMC4wMDQyODQsIDAuMDA0MjkxLCAwLjAwNDI5NCwgMC4wMDQyOTUsIDAuMDA0Mjg5IiwgXAotICAgICAgICAgICIwLjAwNDE3NCwgMC4wMDQyNTYsIDAuMDA0Mjc5LCAwLjAwNDI4NCwgMC4wMDQyODUsIDAuMDA0Mjg3LCAwLjAwNDI4OCIsIFwKLSAgICAgICAgICAiMC4wMDQxNjcsIDAuMDA0MjQ3LCAwLjAwNDI2NywgMC4wMDQyNzIsIDAuMDA0Mjc3LCAwLjAwNDI3OSwgMC4wMDQyODEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMDQyOSwgMC4wMTA0NDgsIDAuMDEwNDUsIDAuMDEwNDUxLCAwLjAxMDQ1MiwgMC4wMTA0NTIsIDAuMDEwNDUyIiwgXAotICAgICAgICAgICIwLjAxMDM1MywgMC4wMTA0MjgsIDAuMDEwNDM4LCAwLjAxMDQ0MiwgMC4wMTA0NDQsIDAuMDEwNDQ2LCAwLjAxMDQ0NyIsIFwKLSAgICAgICAgICAiMC4wMTAyOTksIDAuMDEwNDA2LCAwLjAxMDQyNiwgMC4wMTA0MzIsIDAuMDEwNDMyLCAwLjAxMDQ0LCAwLjAxMDQ0MSIsIFwKLSAgICAgICAgICAiMC4wMTAyNjQsIDAuMDEwMzg2LCAwLjAxMDQyMiwgMC4wMTA0MjIsIDAuMDEwNDI5LCAwLjAxMDQ0NywgMC4wMTA0MzUiLCBcCi0gICAgICAgICAgIjAuMDEwMjQyLCAwLjAxMDM2OSwgMC4wMTA0MDEsIDAuMDEwNDEzLCAwLjAxMDQyMiwgMC4wMTA0MjgsIDAuMDEwNDMzIiwgXAotICAgICAgICAgICIwLjAxMDIyLCAwLjAxMDM0NSwgMC4wMTAzODksIDAuMDEwMzk5LCAwLjAxMDQxMiwgMC4wMTA0MiwgMC4wMTA0MjYiLCBcCi0gICAgICAgICAgIjAuMDEwMjA2LCAwLjAxMDMzLCAwLjAxMDM3NiwgMC4wMTAzODYsIDAuMDEwMzk0LCAwLjAxMDQxMiwgMC4wMTA0MTkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjU3MiwgMC4wMDI1NzksIDAuMDAyNTc5LCAwLjAwMjU4LCAwLjAwMjU4LCAwLjAwMjU4MywgMC4wMDI1NzkiLCBcCi0gICAgICAgICAgIjAuMDAyNDk1LCAwLjAwMjU2LCAwLjAwMjU2OSwgMC4wMDI1NzEsIDAuMDAyNTczLCAwLjAwMjU3NCwgMC4wMDI1NzQiLCBcCi0gICAgICAgICAgIjAuMDAyNDA1LCAwLjAwMjUzMiwgMC4wMDI1NTMsIDAuMDAyNTYsIDAuMDAyNTY0LCAwLjAwMjU2NywgMC4wMDI1NjkiLCBcCi0gICAgICAgICAgIjAuMDAyMzQ5LCAwLjAwMjUwOSwgMC4wMDI1MzcsIDAuMDAyNTQ4LCAwLjAwMjU1NSwgMC4wMDI1NTgsIDAuMDAyNTYxIiwgXAotICAgICAgICAgICIwLjAwMjMxMywgMC4wMDI0ODQsIDAuMDAyNTIxLCAwLjAwMjUzNCwgMC4wMDI1NDUsIDAuMDAyNTUyLCAwLjAwMjU1NSIsIFwKLSAgICAgICAgICAiMC4wMDIyNjUsIDAuMDAyNDU3LCAwLjAwMjUwNiwgMC4wMDI1MjUsIDAuMDAyNTM3LCAwLjAwMjU0NCwgMC4wMDI1NTEiLCBcCi0gICAgICAgICAgIjAuMDAyMjQ4LCAwLjAwMjQ0MiwgMC4wMDI0OTMsIDAuMDAyNTExLCAwLjAwMjUyOSwgMC4wMDI1MzcsIDAuMDAyNTQ0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDg4NywgMC4wMDg5LCAwLjAwODkwNCwgMC4wMDg5MDUsIDAuMDA4OTA5LCAwLjAwODkwNSwgMC4wMDg5MDgiLCBcCi0gICAgICAgICAgIjAuMDA4NzQ2LCAwLjAwODg2NywgMC4wMDg4ODUsIDAuMDA4ODksIDAuMDA4ODk3LCAwLjAwODkwOSwgMC4wMDg4OTkiLCBcCi0gICAgICAgICAgIjAuMDA4NjYxLCAwLjAwODgzMiwgMC4wMDg4NjIsIDAuMDA4ODczLCAwLjAwODg4MiwgMC4wMDg4ODgsIDAuMDA4ODkxIiwgXAotICAgICAgICAgICIwLjAwODYyMiwgMC4wMDg4MDMsIDAuMDA4ODQ0LCAwLjAwODg1OCwgMC4wMDg4NzIsIDAuMDA4ODc4LCAwLjAwODg4NCIsIFwKLSAgICAgICAgICAiMC4wMDg1OSwgMC4wMDg3NzQsIDAuMDA4ODI1LCAwLjAwODg0MiwgMC4wMDg4NTksIDAuMDA4ODY4LCAwLjAwODg3NSIsIFwKLSAgICAgICAgICAiMC4wMDg1NzUsIDAuMDA4NzQzLCAwLjAwODgwMiwgMC4wMDg4MTQsIDAuMDA4ODQxLCAwLjAwODg2NSwgMC4wMDg4NjUiLCBcCi0gICAgICAgICAgIjAuMDA4NTcyLCAwLjAwODcyLCAwLjAwODc4NywgMC4wMDg4MDcsIDAuMDA4ODIxLCAwLjAwODg0MiwgMC4wMDg4NTciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDQzNiwgMC4wMDA0ODIsIDAuMDAwNDg4LCAwLjAwMDQ4OSwgMC4wMDA0OSwgMC4wMDA0OTEsIDAuMDAwNDkyIiwgXAotICAgICAgICAgICIwLjAwMDM4NywgMC4wMDA1NTcsIDAuMDAwNTgsIDAuMDAwNTg3LCAwLjAwMDU5MywgMC4wMDA1OTcsIDAuMDAwNiIsIFwKLSAgICAgICAgICAiMC4wMDAyODMsIDAuMDAwNTQ1LCAwLjAwMDU4OSwgMC4wMDA2MDIsIDAuMDAwNjE1LCAwLjAwMDYyMSwgMC4wMDA2MjYiLCBcCi0gICAgICAgICAgIjAuMDAwMjEsIDAuMDAwNTIsIDAuMDAwNTc2LCAwLjAwMDU5NCwgMC4wMDA2MSwgMC4wMDA2MjUsIDAuMDAwNjMzIiwgXAotICAgICAgICAgICIwLjAwMDE1LCAwLjAwMDQ5LCAwLjAwMDU1OSwgMC4wMDA1ODEsIDAuMDAwNjAzLCAwLjAwMDYxNCwgMC4wMDA2MjciLCBcCi0gICAgICAgICAgIjAuMDAwMTAzLCAwLjAwMDQ1MywgMC4wMDA1MzIsIDAuMDAwNTYyLCAwLjAwMDU4OCwgMC4wMDA2MDUsIDAuMDAwNjE4IiwgXAotICAgICAgICAgICIwLjAwMDA3OSwgMC4wMDA0MDksIDAuMDAwNTA2LCAwLjAwMDU0NiwgMC4wMDA1NzIsIDAuMDAwNTksIDAuMDAwNjA3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IE5PUjRCQlgxICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChOT1I0QkJYMSkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjExNzQ0OTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQU4pICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYxNDE0MTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MTM4NDI7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjE0MTQxOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDM4NSwgMC4wMDAzNjgsIDAuMDAwMzU4LCAwLjAwMDM1NCwgMC4wMDAzNTEsIDAuMDAwMzUsIDAuMDAwMzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDExNzMsIDAuMDAxMTYyLCAwLjAwMTE1NCwgMC4wMDExNTIsIDAuMDAxMTQ5LCAwLjAwMTE0OCwgMC4wMDExNDgiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEJOKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA1MjEyNzk7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNTIwODA5OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDUyMTI3OTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAzNTYsIDAuMDAwMzM5LCAwLjAwMDMyOCwgMC4wMDAzMjMsIDAuMDAwMzIyLCAwLjAwMDMxOSwgMC4wMDAzMiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTI0MywgMC4wMDEyMywgMC4wMDEyMjMsIDAuMDAxMjIsIDAuMDAxMjE4LCAwLjAwMTIxNywgMC4wMDEyMTciKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEMpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDg3Njc3MTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA4NzEwMTY7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwODc2NzcxOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDE0MSwgMC4wMDAxNDEsIDAuMDAwMTQxLCAwLjAwMDE0MSwgMC4wMDAxNDEsIDAuMDAwMTQxLCAwLjAwMDE0MSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDMxLCAwLjAwMDMxLCAwLjAwMDMxLCAwLjAwMDMxLCAwLjAwMDMxLCAwLjAwMDMwOSwgMC4wMDAzMSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwODYzNjQ7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwODYzNjQ7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwODYzNTAxOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDA5LCAwLjAwMDA5LCAwLjAwMDA5LCAwLjAwMDA5LCAwLjAwMDA5LCAwLjAwMDA5LCAwLjAwMDA5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNDI0LCAwLjAwMDQyNCwgMC4wMDA0MjQsIDAuMDAwNDI0LCAwLjAwMDQyNCwgMC4wMDA0MjQsIDAuMDAwNDI0Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMDM1NDg4ODsKLSAgICBmdW5jdGlvbiA6ICIoISgoKCghQU4pKyghQk4pKStDKStEKSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkFOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC40Mjk0NjgsIDAuNjEyMzA1LCAxLjY0ODYsIDIuNTYyOTUsIDMuNzgwNTUsIDYuMjE2ODYsIDcuNzM5MzgiLCBcCi0gICAgICAgICAgIjAuNDQxMzYyLCAwLjYyNDIwOSwgMS42NjExLCAyLjU3NDksIDMuNzkyNDYsIDYuMjI4NzEsIDcuNzUxMzEiLCBcCi0gICAgICAgICAgIjAuNDU2NTk0LCAwLjYzOTQ4OSwgMS42NzYxMSwgMi41ODk5MywgMy44MDc4MSwgNi4yNDQxMSwgNy43NjY1NyIsIFwKLSAgICAgICAgICAiMC40NzE3MTgsIDAuNjU0NjE4LCAxLjY5MTUyLCAyLjYwNTA1LCAzLjgyMjk5LCA2LjI1OTI5LCA3Ljc4MTgzIiwgXAotICAgICAgICAgICIwLjQ4NjI3MywgMC42NjkyMDQsIDEuNzA2MjUsIDIuNjE5MzksIDMuODM3NTgsIDYuMjczODIsIDcuNzk2NDYiLCBcCi0gICAgICAgICAgIjAuNTA3ODI4LCAwLjY5MDc4OSwgMS43Mjc0MiwgMi42NDEzOCwgMy44NTk1MSwgNi4yOTU1NiwgNy44MTgwMyIsIFwKLSAgICAgICAgICAiMC41MjQ4MTcsIDAuNzA4MDQ1LCAxLjc0NDE2LCAyLjY1ODU3LCAzLjg3NjM3LCA2LjMxMjQ1LCA3LjgzNTE0Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjY4MTY3OSwgMS4wMzAwOCwgMy4wMDE5NSwgNC43NTYyNCwgNy4wNjI4OSwgMTEuNjkwOSwgMTQuNTg1NSIsIFwKLSAgICAgICAgICAiMC42ODE2NzcsIDEuMDMwNTEsIDMuMDA4NjksIDQuNzU2MjMsIDcuMDYyODQsIDExLjY5MDksIDE0LjU4NTUiLCBcCi0gICAgICAgICAgIjAuNjgxNjY0LCAxLjAzMDA5LCAzLjAwNTE5LCA0Ljc0MjU4LCA3LjA2MzIxLCAxMS42OTI1LCAxNC41ODU2IiwgXAotICAgICAgICAgICIwLjY4MTY3MSwgMS4wMzA1NiwgMy4wMDU1MywgNC43NDM3NywgNy4wNjMxNiwgMTEuNjkwNywgMTQuNTg1NSIsIFwKLSAgICAgICAgICAiMC42ODE2NzIsIDEuMDMwMDYsIDMuMDAxNTgsIDQuNzQzOTUsIDcuMDYyNzMsIDExLjY5MTUsIDE0LjU4NTUiLCBcCi0gICAgICAgICAgIjAuNjgxNjg0LCAxLjAzMDAxLCAzLjAwNTA1LCA0Ljc0MjM3LCA3LjA1OTQ4LCAxMS42OTI1LCAxNC41ODU3IiwgXAotICAgICAgICAgICIwLjY4MTYzNiwgMS4wMzA0LCAzLjAwNDU0LCA0Ljc1NTkzLCA3LjA2NjA3LCAxMS42OTE0LCAxNC41ODU4Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE0NTM0OCwgMC4xOTU3NDUsIDAuNDc3NTAxLCAwLjcyNDkzOSwgMS4wNTQ4LCAxLjcxMzkzLCAyLjEyNTgzIiwgXAotICAgICAgICAgICIwLjE1NjkzOCwgMC4yMDczMjcsIDAuNDg5MDU0LCAwLjczNjU5MSwgMS4wNjYyNywgMS43MjUzNiwgMi4xMzc1NyIsIFwKLSAgICAgICAgICAiMC4xNzE2NCwgMC4yMjIwMTIsIDAuNTAzNzMyLCAwLjc1MTM4NiwgMS4wODExLCAxLjc0MDMyLCAyLjE1MiIsIFwKLSAgICAgICAgICAiMC4xODYwMzYsIDAuMjM2NDM2LCAwLjUxODE3MywgMC43NjU2NDksIDEuMDk1MzMsIDEuNzU0MTMsIDIuMTY1NzkiLCBcCi0gICAgICAgICAgIjAuMTk5MjI0LCAwLjI0OTYxMiwgMC41MzEzNTYsIDAuNzc4ODY5LCAxLjEwODU3LCAxLjc2NzU4LCAyLjE3ODk3IiwgXAotICAgICAgICAgICIwLjIxODI4NiwgMC4yNjg2NjIsIDAuNTUwNCwgMC43OTgwMTEsIDEuMTI3NzMsIDEuNzg2OTksIDIuMTk4NTYiLCBcCi0gICAgICAgICAgIjAuMjMzNDI0LCAwLjI4MzgsIDAuNTY1NTIzLCAwLjgxMjk4MywgMS4xNDI2NywgMS44MDE1OSwgMi4yMTMwOCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMDQ0MTMsIDAuMzAyMTY1LCAwLjg1NzI4LCAxLjM0NzM4LCAxLjk5OTc4LCAzLjMwNTkxLCA0LjEyMjQxIiwgXAotICAgICAgICAgICIwLjIwNDQ2MywgMC4zMDIyNzgsIDAuODU3Mzk4LCAxLjM0NzA3LCAxLjk5OTg4LCAzLjMwNTQzLCA0LjEyMjE5IiwgXAotICAgICAgICAgICIwLjIwNDQ1NCwgMC4zMDIyNjYsIDAuODU3NDA4LCAxLjM0NzQsIDIuMDAwMzksIDMuMzA1NzcsIDQuMTIyNzEiLCBcCi0gICAgICAgICAgIjAuMjA0NDQ4LCAwLjMwMjI3NiwgMC44NTcwMDIsIDEuMzQ3MTEsIDIuMDAwMzYsIDMuMzA1MjUsIDQuMTIwNCIsIFwKLSAgICAgICAgICAiMC4yMDQzOTksIDAuMzAyMDg3LCAwLjg1NzI5NiwgMS4zNDY5MSwgMS45OTk4NCwgMy4zMDQ5MSwgNC4xMjA0NCIsIFwKLSAgICAgICAgICAiMC4yMDQ3MTksIDAuMzAyMjE1LCAwLjg1NzM0MywgMS4zNDczNCwgMi4wMDA1MywgMy4zMDU3LCA0LjEyMTc1IiwgXAotICAgICAgICAgICIwLjIwNTEwOCwgMC4zMDI2MTIsIDAuODU2OTU0LCAxLjM0NzMsIDEuOTk5NzYsIDMuMzA1NDEsIDQuMTIwOTQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQk4iOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjQyMTA2NywgMC42MDM5NCwgMS42NDA2MywgMi41NTQwNSwgMy43NzI0NSwgNi4yMDgzOCwgNy43MzEwOCIsIFwKLSAgICAgICAgICAiMC40MzI4ODksIDAuNjE2MDgyLCAxLjY1MjA1LCAyLjU2NjYyLCAzLjc4NDAzLCA2LjIyMDQyLCA3Ljc0Mjg4IiwgXAotICAgICAgICAgICIwLjQ0ODA4NywgMC42MzEwNDcsIDEuNjY3NTEsIDIuNTgxNTksIDMuNzk5NjcsIDYuMjM1NzIsIDcuNzU4MjEiLCBcCi0gICAgICAgICAgIjAuNDYzMDk5LCAwLjY0NjEwOCwgMS42ODI2LCAyLjU5NjY4LCAzLjgxNDY3LCA2LjI1MDgyLCA3Ljc3MzM1IiwgXAotICAgICAgICAgICIwLjQ3NzY4NSwgMC42NjA5NTIsIDEuNjk3MDUsIDIuNjExNiwgMy44MjkyNiwgNi4yNjUyOSwgNy43ODc5OCIsIFwKLSAgICAgICAgICAiMC40OTkxNzcsIDAuNjgyMDkzLCAxLjcxODYzLCAyLjYzMjM1LCAzLjg1MDY1LCA2LjI4NjkxLCA3LjgwOTU2IiwgXAotICAgICAgICAgICIwLjUxNjEyNiwgMC42OTkxMjksIDEuNzM1NzIsIDIuNjUwMDMsIDMuODY3NjMsIDYuMzA0MTEsIDcuODI2NTgiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuNjgxNjc4LCAxLjAzMTkxLCAzLjAwMTEyLCA0Ljc0NDAzLCA3LjA2NjIzLCAxMS42OTE0LCAxNC41ODU0IiwgXAotICAgICAgICAgICIwLjY4MTYxLCAxLjAzMTUxLCAzLjAwNDY3LCA0Ljc0MTM4LCA3LjA2MzExLCAxMS42OTI1LCAxNC41ODU2IiwgXAotICAgICAgICAgICIwLjY4MTc1NywgMS4wMzAwMywgMy4wMDQ5MywgNC43NDIzMiwgNy4wNTkzOCwgMTEuNjkyNSwgMTQuNTg1OSIsIFwKLSAgICAgICAgICAiMC42ODE3LCAxLjAyOTYzLCAzLjAwNDg5LCA0Ljc0MjI5LCA3LjA1OTg4LCAxMS42OTI1LCAxNC41ODYiLCBcCi0gICAgICAgICAgIjAuNjgxNzIsIDEuMDMxNDEsIDMuMDA0NiwgNC43NTYzMiwgNy4wNjYxMiwgMTEuNjkyMywgMTQuNTg1NyIsIFwKLSAgICAgICAgICAiMC42ODE3MDksIDEuMDI5MiwgMy4wMDIzLCA0Ljc1MTQxLCA3LjA2MjcsIDExLjY5MTUsIDE0LjU4NTUiLCBcCi0gICAgICAgICAgIjAuNjgxNjY2LCAxLjAzMDA2LCAzLjAwNDc3LCA0Ljc0MTIsIDcuMDY1ODgsIDExLjY5MjQsIDE0LjU4NTYiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTQyODk0LCAwLjE5Mjc1NywgMC40NzM1MDUsIDAuNzIwNjg5LCAxLjA1MDA1LCAxLjcwODgxLCAyLjEyMDIxIiwgXAotICAgICAgICAgICIwLjE1NDU1LCAwLjIwNDM3OSwgMC40ODUxNDYsIDAuNzMyMzkzLCAxLjA2MiwgMS43MjAxOSwgMi4xMzIzNiIsIFwKLSAgICAgICAgICAiMC4xNjkzMDMsIDAuMjE5MTUyLCAwLjQ5OTkxMywgMC43NDcwNjksIDEuMDc2NDQsIDEuNzM1MTcsIDIuMTQ3NzMiLCBcCi0gICAgICAgICAgIjAuMTgzNjgsIDAuMjMzNTQ5LCAwLjUxNDMzNSwgMC43NjE2NTIsIDEuMDkwODIsIDEuNzUwMzIsIDIuMTYxNSIsIFwKLSAgICAgICAgICAiMC4xOTcwNTUsIDAuMjQ2OTA0LCAwLjUyNzY4NSwgMC43NzQ5MzQsIDEuMTA0MywgMS43NjMyMSwgMi4xNzUyOSIsIFwKLSAgICAgICAgICAiMC4yMTY0MDQsIDAuMjY2Mjc5LCAwLjU0NzA1MiwgMC43OTQyMDIsIDEuMTIzNywgMS43ODI0OCwgMi4xOTQ4MSIsIFwKLSAgICAgICAgICAiMC4yMzE0NTEsIDAuMjgxMzE2LCAwLjU2MjA2NywgMC44MDkzNzEsIDEuMTM4NjksIDEuNzk3MjUsIDIuMjA5MjYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTk4NzY1LCAwLjI5NjM5MSwgMC44NTE0NjgsIDEuMzQwNzcsIDEuOTkzNTksIDMuMjk5MTksIDQuMTE0NDQiLCBcCi0gICAgICAgICAgIjAuMTk4NjYzLCAwLjI5NjQ3OCwgMC44NTE1MSwgMS4zNDEzNiwgMS45OTQ0NiwgMy4yOTg1MiwgNC4xMTU0NSIsIFwKLSAgICAgICAgICAiMC4xOTg2NTYsIDAuMjk2MzkyLCAwLjg1MTIwNCwgMS4zNDEwMSwgMS45OTM3MSwgMy4yOTk5MSwgNC4xMTYwNSIsIFwKLSAgICAgICAgICAiMC4xOTg3OCwgMC4yOTY0MDMsIDAuODUxMjU4LCAxLjM0MTQzLCAxLjk5MzMzLCAzLjI5OTUzLCA0LjExNTI3IiwgXAotICAgICAgICAgICIwLjE5ODc1OSwgMC4yOTY0MTMsIDAuODUxNTg1LCAxLjM0MTEzLCAxLjk5Mzc4LCAzLjMwMDEzLCA0LjExNTMzIiwgXAotICAgICAgICAgICIwLjE5OTE1MiwgMC4yOTY1NDcsIDAuODUxNDQ1LCAxLjM0MDk3LCAxLjk5Mzg4LCAzLjMwMDA1LCA0LjExNTQzIiwgXAotICAgICAgICAgICIwLjE5OTUwNiwgMC4yOTY4ODksIDAuODUxMjg2LCAxLjM0MTE1LCAxLjk5Mzc0LCAzLjI5OTczLCA0LjExNDg0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjM3MTYxOCwgMC41NTQ0MiwgMS41OTAyNCwgMi41MDQ2NywgMy43MjI1NywgNi4xNTg3OCwgNy42ODEzOCIsIFwKLSAgICAgICAgICAiMC4zODEyOCwgMC41NjQxODEsIDEuNjAwMiwgMi41MTQxNCwgMy43MzI0NiwgNi4xNjg4MiwgNy42OTE0MyIsIFwKLSAgICAgICAgICAiMC4zOTMxMDcsIDAuNTc2Mjc2LCAxLjYxMjUzLCAyLjUyNjY0LCAzLjc0NDU4LCA2LjE4MDc4LCA3LjcwMzQzIiwgXAotICAgICAgICAgICIwLjQwNDY2NiwgMC41ODc5NjcsIDEuNjI0MTksIDIuNTM4NiwgMy43NTYyMSwgNi4xOTI2NCwgNy43MTUwOCIsIFwKLSAgICAgICAgICAiMC40MTYwMzYsIDAuNTk5MTE1LCAxLjYzNTIyLCAyLjU0OTc2LCAzLjc2NzcxLCA2LjIwMzksIDcuNzI2NTkiLCBcCi0gICAgICAgICAgIjAuNDMzOTQ3LCAwLjYxNzEwNiwgMS42NTM4LCAyLjU2NzkzLCAzLjc4NTk4LCA2LjIyMjMzLCA3Ljc0NDg0IiwgXAotICAgICAgICAgICIwLjQ0OTc3MSwgMC42MzI5NjEsIDEuNjY5NDgsIDIuNTgzNDIsIDMuODAxOTMsIDYuMjM4MjMsIDcuNzYwOTEiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuNjgxODEyLCAxLjAyOTIyLCAzLjAwNDI3LCA0Ljc1NTQ1LCA3LjA2NjA0LCAxMS42OTIzLCAxNC41ODU0IiwgXAotICAgICAgICAgICIwLjY4MjgwMSwgMS4wMzEyNiwgMy4wMDQwMiwgNC43NDMyLCA3LjA2NTkzLCAxMS42OTA3LCAxNC41ODUyIiwgXAotICAgICAgICAgICIwLjY4MTgyNywgMS4wMzAzLCAzLjAwMTcsIDQuNzU1MzYsIDcuMDY2LCAxMS42OTExLCAxNC41ODU0IiwgXAotICAgICAgICAgICIwLjY4MTU1MywgMS4wMzE0LCAzLjAwNDY2LCA0Ljc0MTM0LCA3LjA2NTkyLCAxMS42OTI0LCAxNC41ODU4IiwgXAotICAgICAgICAgICIwLjY4MTc3NywgMS4wMjkyOSwgMy4wMDQxNCwgNC43NTUzOSwgNy4wNjYwMSwgMTEuNjkxMywgMTQuNTg1NCIsIFwKLSAgICAgICAgICAiMC42ODE1NDgsIDEuMDMwMDgsIDMuMDA0NzMsIDQuNzQ0MzYsIDcuMDYzMzgsIDExLjY5MjQsIDE0LjU4NTUiLCBcCi0gICAgICAgICAgIjAuNjgxODQ4LCAxLjAyOTkyLCAzLjAwMzc3LCA0Ljc0NzM4LCA3LjA2NDkzLCAxMS42OTEyLCAxNC41ODU0Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwNDM4NywgMC4xNTM5MDIsIDAuNDM0MDI1LCAwLjY4MTE0MiwgMS4wMTAzOSwgMS42NjgyNywgMi4wNzk5NSIsIFwKLSAgICAgICAgICAiMC4xMTYyNDMsIDAuMTY1NzksIDAuNDQ1NDE4LCAwLjY5MjUwNSwgMS4wMjE4LCAxLjY4MDQxLCAyLjA5MTc4IiwgXAotICAgICAgICAgICIwLjEzMTA0NywgMC4xODA0NTMsIDAuNDU5ODA1LCAwLjcwNjczNywgMS4wMzYzNCwgMS42OTQ1MywgMi4xMDcxNyIsIFwKLSAgICAgICAgICAiMC4xNDYzMDksIDAuMTk0OTg0LCAwLjQ3NTI3MywgMC43MjIxOCwgMS4wNTE0MywgMS43MTAzOSwgMi4xMjIzMyIsIFwKLSAgICAgICAgICAiMC4xNjEzNzQsIDAuMjEwNzE2LCAwLjQ5MDk1OSwgMC43Mzc0NTcsIDEuMDY2NjUsIDEuNzI1NCwgMi4xMzc0MyIsIFwKLSAgICAgICAgICAiMC4xODUxMTIsIDAuMjM0NjA2LCAwLjUxNTIyMywgMC43NjE5MDgsIDEuMDkxMDYsIDEuNzQ5ODksIDIuMTYxNTgiLCBcCi0gICAgICAgICAgIjAuMjA2MjE5LCAwLjI1NTcyNCwgMC41MzQwMzcsIDAuNzgxMjE4LCAxLjExMTg1LCAxLjc1OTQsIDIuMTcwNTMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTkxODY3LCAwLjI4OTgwMSwgMC44NDQ4NCwgMS4zMzQ4MiwgMS45ODc2LCAzLjI5MTk4LCA0LjEwODM1IiwgXAotICAgICAgICAgICIwLjE5MTg1OSwgMC4yODk4NiwgMC44NDQ3ODUsIDEuMzM0NzMsIDEuOTg3NTYsIDMuMjkzMjMsIDQuMTA4MyIsIFwKLSAgICAgICAgICAiMC4xOTE4MzcsIDAuMjg5ODY1LCAwLjg0NTA2NiwgMS4zMzQ0MiwgMS45ODcxNywgMy4yOTU1MiwgNC4xMDk3NSIsIFwKLSAgICAgICAgICAiMC4xOTI4NzgsIDAuMjg5ODcyLCAwLjg0NDg0MywgMS4zMzQ2NywgMS45ODcyMSwgMy4yOTI2MSwgNC4xMTA0NSIsIFwKLSAgICAgICAgICAiMC4xOTU3OTYsIDAuMjkwNzcxLCAwLjg0NTA0OCwgMS4zMzQ0NSwgMS45ODcyNSwgMy4yOTMyOCwgNC4xMDg3OSIsIFwKLSAgICAgICAgICAiMC4yMDMwNSwgMC4yOTQ5NzgsIDAuODQ1MDYzLCAxLjMzNDQ2LCAxLjk4NzIxLCAzLjI5MzM2LCA0LjEwODg5IiwgXAotICAgICAgICAgICIwLjIxMTE1MywgMC4zMDA0MTYsIDAuODQ0ODg2LCAxLjMzNDQ0LCAxLjk4NzQyLCAzLjI5MjYzLCA0LjEwOTE4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkQiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjM1MDI3NCwgMC41MzMyMDYsIDEuNTY5NjIsIDIuNDgzOTIsIDMuNzAxNTQsIDYuMTM3NTcsIDcuNjYwMjMiLCBcCi0gICAgICAgICAgIjAuMzU5MzIzLCAwLjU0MjA5NSwgMS41Nzg2NywgMi40OTIyLCAzLjcxMDYyLCA2LjE0Njg2LCA3LjY2OTUyIiwgXAotICAgICAgICAgICIwLjM3MDY0MSwgMC41NTM1MjIsIDEuNTkwNDMsIDIuNTA0NzQsIDMuNzIyNDQsIDYuMTU4NTgsIDcuNjgxMiIsIFwKLSAgICAgICAgICAiMC4zODIwNzksIDAuNTY1NDM2LCAxLjYwMTczLCAyLjUxNjAxLCAzLjczNDA4LCA2LjE3MDQ0LCA3LjY5MjkyIiwgXAotICAgICAgICAgICIwLjM5MzU2MSwgMC41NzY2OTEsIDEuNjE0MTgsIDIuNTI3NjcsIDMuNzQ1NjYsIDYuMTgyMDgsIDcuNzA0NTUiLCBcCi0gICAgICAgICAgIjAuNDExNzgzLCAwLjU5NTE3NSwgMS42MzE2NywgMi41NDYxMiwgMy43NjQxLCA2LjIwMDUsIDcuNzIzMTMiLCBcCi0gICAgICAgICAgIjAuNDI3ODUyLCAwLjYxMTEwNiwgMS42NDg4NSwgMi41NjI5MiwgMy43ODA1MywgNi4yMTY3MywgNy43Mzk0NCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC42ODIzNjIsIDEuMDMwMSwgMy4wMDQ5OSwgNC43NDEwMSwgNy4wNjYxNiwgMTEuNjkyMywgMTQuNTg1NSIsIFwKLSAgICAgICAgICAiMC42ODE3MzYsIDEuMDMxMTIsIDMuMDA0NzIsIDQuNzQ2MTIsIDcuMDY0OCwgMTEuNjkxMiwgMTQuNTg1NSIsIFwKLSAgICAgICAgICAiMC42ODI4LCAxLjAyOTAyLCAzLjAwNDkxLCA0Ljc0MTMxLCA3LjA2MDk1LCAxMS42OTIzLCAxNC41ODU2IiwgXAotICAgICAgICAgICIwLjY4MjMwNSwgMS4wMzAzMiwgMy4wMDQwMywgNC43NDQyNywgNy4wNjMxOCwgMTEuNjkyNCwgMTQuNTg1MyIsIFwKLSAgICAgICAgICAiMC42ODE0MjIsIDEuMDI5ODksIDMuMDAxNTIsIDQuNzQ0MjUsIDcuMDY1OTYsIDExLjY5MjQsIDE0LjU4NTYiLCBcCi0gICAgICAgICAgIjAuNjgwNDUxLCAxLjAzMDEzLCAzLjAwNDQ3LCA0Ljc0NDIxLCA3LjA2MjY4LCAxMS42OTIzLCAxNC41ODU2IiwgXAotICAgICAgICAgICIwLjY4MjA1NiwgMS4wMzA5OCwgMy4wMDA5NywgNC43NTY0OCwgNy4wNjYwOCwgMTEuNjkxNCwgMTQuNTg1NSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTk0NjYsIDAuMTQ4ODUxLCAwLjQyODkyLCAwLjY3NTc1LCAxLjAwNDY5LCAxLjY2MzE1LCAyLjA3NTg1IiwgXAotICAgICAgICAgICIwLjExMTQ2NywgMC4xNjA4ODEsIDAuNDQwODQ4LCAwLjY4NzY5NSwgMS4wMTY4NywgMS42NzUyOCwgMi4wODY4NyIsIFwKLSAgICAgICAgICAiMC4xMjYwMzgsIDAuMTc1NTgyLCAwLjQ1NTcyMiwgMC43MDI2MTIsIDEuMDMxNjUsIDEuNjkwMTMsIDIuMTAyNDIiLCBcCi0gICAgICAgICAgIjAuMTQxNDYxLCAwLjE5MDM0NiwgMC40NzAyMjMsIDAuNzEzMTE1LCAxLjA0MjAyLCAxLjcwMDU3LCAyLjExMzYxIiwgXAotICAgICAgICAgICIwLjE1NjUwMywgMC4yMDU4MjQsIDAuNDg1MDMsIDAuNzMxNzk5LCAxLjA1NTMyLCAxLjcxMzc4LCAyLjEyNjEzIiwgXAotICAgICAgICAgICIwLjE4MDM5MSwgMC4yMjk4NjksIDAuNTA5NjY2LCAwLjc1NjgwNiwgMS4wODU4NiwgMS43NDQ1NCwgMi4xNTU1NCIsIFwKLSAgICAgICAgICAiMC4yMDE4NjUsIDAuMjUwODEyLCAwLjUyODk5OCwgMC43NzYyNjQsIDEuMTA2NTMsIDEuNzY0MywgMi4xNjUxMyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xODc0OTgsIDAuMjg1ODE3LCAwLjg0MTU3MSwgMS4zMzE4MiwgMS45OTA4MSwgMy4yOTA2LCA0LjEwOTI4IiwgXAotICAgICAgICAgICIwLjE4NzQ3LCAwLjI4NTExMSwgMC44NDE5MzksIDEuMzI5OTgsIDEuOTgzNjgsIDMuMjk5OSwgNC4xMDk3MiIsIFwKLSAgICAgICAgICAiMC4xODc0NywgMC4yODU4NDMsIDAuODQxMTIsIDEuMzMwODYsIDEuOTgzMSwgMy4zMDEyNCwgNC4xMDc0OCIsIFwKLSAgICAgICAgICAiMC4xODgyNTYsIDAuMjg1ODY5LCAwLjg0MTI0MSwgMS4zMzAzNywgMS45ODg5NCwgMy4yOTQ0NCwgNC4xMTYzMiIsIFwKLSAgICAgICAgICAiMC4xOTE4OTgsIDAuMjg2OTQ2LCAwLjg0MTkxNiwgMS4zMzMyMSwgMS45OTAyMywgMy4zMDI1OCwgNC4xMDc0NiIsIFwKLSAgICAgICAgICAiMC4xOTkzNjIsIDAuMjkwNDQ2LCAwLjg0MDkyNywgMS4zMzEwOSwgMS45ODMxMywgMy4yOTYwMiwgNC4xMDkzNiIsIFwKLSAgICAgICAgICAiMC4yMDcxMTUsIDAuMjk2NDU1LCAwLjg0MjIxMSwgMS4zMzAxLCAxLjk4NDcsIDMuMjkwMDgsIDQuMTE2MjgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyNjYyLCAwLjAwMjY2MiwgMC4wMDI2NjMsIDAuMDAyNjYzLCAwLjAwMjY2MSwgMC4wMDI2NTcsIDAuMDAyNjExIiwgXAotICAgICAgICAgICIwLjAwMjY0NSwgMC4wMDI2NDUsIDAuMDAyNjQ1LCAwLjAwMjY0NiwgMC4wMDI2NDYsIDAuMDAyNjQzLCAwLjAwMjU5IiwgXAotICAgICAgICAgICIwLjAwMjYzNCwgMC4wMDI2MzUsIDAuMDAyNjM3LCAwLjAwMjYzNiwgMC4wMDI2MzcsIDAuMDAyNjM0LCAwLjAwMjU3OCIsIFwKLSAgICAgICAgICAiMC4wMDI2MjgsIDAuMDAyNjMsIDAuMDAyNjMyLCAwLjAwMjYzMiwgMC4wMDI2MzMsIDAuMDAyNjI3LCAwLjAwMjU3NSIsIFwKLSAgICAgICAgICAiMC4wMDI2MjUsIDAuMDAyNjI3LCAwLjAwMjYzLCAwLjAwMjYzLCAwLjAwMjYzMSwgMC4wMDI2MjgsIDAuMDAyNTc5IiwgXAotICAgICAgICAgICIwLjAwMjYyNCwgMC4wMDI2MjYsIDAuMDAyNjMsIDAuMDAyNjMxLCAwLjAwMjYzMSwgMC4wMDI2MjksIDAuMDAyNTc3IiwgXAotICAgICAgICAgICIwLjAwMjYyMywgMC4wMDI2MjYsIDAuMDAyNjMxLCAwLjAwMjYzMiwgMC4wMDI2MzMsIDAuMDAyNjMsIDAuMDAyNTciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI1MzQsIDAuMDAyNTM0LCAwLjAwMjUzMywgMC4wMDI1MzIsIDAuMDAyNTMzLCAwLjAwMjUzMSwgMC4wMDI1MyIsIFwKLSAgICAgICAgICAiMC4wMDI1MiwgMC4wMDI1MiwgMC4wMDI1MiwgMC4wMDI1MTksIDAuMDAyNTE5LCAwLjAwMjUxNywgMC4wMDI1MTciLCBcCi0gICAgICAgICAgIjAuMDAyNTA5LCAwLjAwMjUwOSwgMC4wMDI1MDksIDAuMDAyNTA4LCAwLjAwMjUwOCwgMC4wMDI1MDcsIDAuMDAyNTA2IiwgXAotICAgICAgICAgICIwLjAwMjUwNCwgMC4wMDI1MDQsIDAuMDAyNTA0LCAwLjAwMjUwNCwgMC4wMDI1MDQsIDAuMDAyNTAyLCAwLjAwMjUwMSIsIFwKLSAgICAgICAgICAiMC4wMDI0OTksIDAuMDAyNSwgMC4wMDI0OTksIDAuMDAyNDk5LCAwLjAwMjQ5OSwgMC4wMDI0OTcsIDAuMDAyNDk2IiwgXAotICAgICAgICAgICIwLjAwMjQ5NiwgMC4wMDI0OTUsIDAuMDAyNDk3LCAwLjAwMjQ5NiwgMC4wMDI0OTYsIDAuMDAyNDk1LCAwLjAwMjQ5MyIsIFwKLSAgICAgICAgICAiMC4wMDI0OTMsIDAuMDAyNDk1LCAwLjAwMjQ5NSwgMC4wMDI0OTUsIDAuMDAyNDk0LCAwLjAwMjQ5MywgMC4wMDI0OTIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyNDExLCAwLjAwMjQxMiwgMC4wMDI0MTQsIDAuMDAyNDE0LCAwLjAwMjQxNCwgMC4wMDI0MTIsIDAuMDAyMzYzIiwgXAotICAgICAgICAgICIwLjAwMjM5NCwgMC4wMDIzOTUsIDAuMDAyMzk3LCAwLjAwMjM5OSwgMC4wMDIzOTcsIDAuMDAyMzk1LCAwLjAwMjMzOCIsIFwKLSAgICAgICAgICAiMC4wMDIzODIsIDAuMDAyMzg0LCAwLjAwMjM4NiwgMC4wMDIzODcsIDAuMDAyMzg2LCAwLjAwMjM4NCwgMC4wMDIzMyIsIFwKLSAgICAgICAgICAiMC4wMDIzNzUsIDAuMDAyMzc4LCAwLjAwMjM4MSwgMC4wMDIzODEsIDAuMDAyMzgyLCAwLjAwMjM4LCAwLjAwMjMyNSIsIFwKLSAgICAgICAgICAiMC4wMDIzNzEsIDAuMDAyMzc0LCAwLjAwMjM3OCwgMC4wMDIzNzksIDAuMDAyMzc5LCAwLjAwMjM3NywgMC4wMDIzMjkiLCBcCi0gICAgICAgICAgIjAuMDAyMzY5LCAwLjAwMjM3MywgMC4wMDIzNzgsIDAuMDAyMzc5LCAwLjAwMjM3OSwgMC4wMDIzNzgsIDAuMDAyMzI4IiwgXAotICAgICAgICAgICIwLjAwMjM2OCwgMC4wMDIzNzIsIDAuMDAyMzc4LCAwLjAwMjM4LCAwLjAwMjM4MiwgMC4wMDIzNzgsIDAuMDAyMzIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDIyNjgsIDAuMDAyMjY4LCAwLjAwMjI2OCwgMC4wMDIyNjgsIDAuMDAyMjY3LCAwLjAwMjI2NiwgMC4wMDIyNjUiLCBcCi0gICAgICAgICAgIjAuMDAyMjU1LCAwLjAwMjI1NSwgMC4wMDIyNTUsIDAuMDAyMjU1LCAwLjAwMjI1NCwgMC4wMDIyNTQsIDAuMDAyMjUyIiwgXAotICAgICAgICAgICIwLjAwMjI0NSwgMC4wMDIyNDYsIDAuMDAyMjQ2LCAwLjAwMjI0NiwgMC4wMDIyNDUsIDAuMDAyMjQ1LCAwLjAwMjI0NCIsIFwKLSAgICAgICAgICAiMC4wMDIyMzksIDAuMDAyMjQsIDAuMDAyMjQxLCAwLjAwMjI0MiwgMC4wMDIyNDEsIDAuMDAyMjQsIDAuMDAyMjM5IiwgXAotICAgICAgICAgICIwLjAwMjIzNSwgMC4wMDIyMzYsIDAuMDAyMjM4LCAwLjAwMjIzOCwgMC4wMDIyMzgsIDAuMDAyMjM3LCAwLjAwMjIzNiIsIFwKLSAgICAgICAgICAiMC4wMDIyMzEsIDAuMDAyMjMyLCAwLjAwMjIzNSwgMC4wMDIyMzYsIDAuMDAyMjM2LCAwLjAwMjIzNSwgMC4wMDIyMzQiLCBcCi0gICAgICAgICAgIjAuMDAyMjI5LCAwLjAwMjIzMiwgMC4wMDIyMzQsIDAuMDAyMjM1LCAwLjAwMjIzNSwgMC4wMDIyMzQsIDAuMDAyMjM0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyMTAyLCAwLjAwMjEwMywgMC4wMDIxMDQsIDAuMDAyMTAzLCAwLjAwMjEwMywgMC4wMDIxMDEsIDAuMDAyMDQ1IiwgXAotICAgICAgICAgICIwLjAwMjA5OCwgMC4wMDIxLCAwLjAwMjEwMiwgMC4wMDIxMDQsIDAuMDAyMTAxLCAwLjAwMjEwMSwgMC4wMDIwNSIsIFwKLSAgICAgICAgICAiMC4wMDIwOTQsIDAuMDAyMDk3LCAwLjAwMjEwMSwgMC4wMDIxMDIsIDAuMDAyMTAyLCAwLjAwMjEsIDAuMDAyMDUyIiwgXAotICAgICAgICAgICIwLjAwMjA5LCAwLjAwMjA5NCwgMC4wMDIxLCAwLjAwMjEwMSwgMC4wMDIxMDIsIDAuMDAyMSwgMC4wMDIwNDUiLCBcCi0gICAgICAgICAgIjAuMDAyMDg3LCAwLjAwMjA5MSwgMC4wMDIwOTgsIDAuMDAyMSwgMC4wMDIxMDIsIDAuMDAyMDk5LCAwLjAwMjA1MSIsIFwKLSAgICAgICAgICAiMC4wMDIwODIsIDAuMDAyMDg4LCAwLjAwMjA5NiwgMC4wMDIwOTksIDAuMDAyMSwgMC4wMDIxLCAwLjAwMjA0NiIsIFwKLSAgICAgICAgICAiMC4wMDIwNzksIDAuMDAyMDg1LCAwLjAwMjA5NiwgMC4wMDIwOTgsIDAuMDAyMSwgMC4wMDIwOTgsIDAuMDAyMDQ5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwMzM5LCAwLjAwMDMzOSwgMC4wMDAzMzksIDAuMDAwMzM5LCAwLjAwMDMzOSwgMC4wMDAzMzgsIDAuMDAwMzM4IiwgXAotICAgICAgICAgICIwLjAwMDM0MywgMC4wMDAzNDUsIDAuMDAwMzQ3LCAwLjAwMDM0NywgMC4wMDAzNDcsIDAuMDAwMzQ3LCAwLjAwMDM0NyIsIFwKLSAgICAgICAgICAiMC4wMDAzNDIsIDAuMDAwMzQ1LCAwLjAwMDM0OSwgMC4wMDAzNSwgMC4wMDAzNTEsIDAuMDAwMzUxLCAwLjAwMDM1IiwgXAotICAgICAgICAgICIwLjAwMDMzOCwgMC4wMDAzNDEsIDAuMDAwMzQ5LCAwLjAwMDM1LCAwLjAwMDM1MSwgMC4wMDAzNTEsIDAuMDAwMzUxIiwgXAotICAgICAgICAgICIwLjAwMDMzNCwgMC4wMDAzNCwgMC4wMDAzNDgsIDAuMDAwMzUsIDAuMDAwMzUxLCAwLjAwMDM1MSwgMC4wMDAzNTEiLCBcCi0gICAgICAgICAgIjAuMDAwMzMsIDAuMDAwMzM3LCAwLjAwMDM0NywgMC4wMDAzNSwgMC4wMDAzNTEsIDAuMDAwMzUyLCAwLjAwMDM1MSIsIFwKLSAgICAgICAgICAiMC4wMDAzMjYsIDAuMDAwMzM0LCAwLjAwMDM0NywgMC4wMDAzNDksIDAuMDAwMzUsIDAuMDAwMzUyLCAwLjAwMDM1MiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkQiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTg1MiwgMC4wMDE4NTMsIDAuMDAxODUzLCAwLjAwMTg1NywgMC4wMDE4NTUsIDAuMDAxODUsIDAuMDAxODA0IiwgXAotICAgICAgICAgICIwLjAwMTg0NSwgMC4wMDE4NDgsIDAuMDAxODUxLCAwLjAwMTg1MiwgMC4wMDE4NTIsIDAuMDAxODUxLCAwLjAwMTgwNCIsIFwKLSAgICAgICAgICAiMC4wMDE4MzgsIDAuMDAxODQzLCAwLjAwMTg0OSwgMC4wMDE4NTEsIDAuMDAxODUxLCAwLjAwMTg1LCAwLjAwMTc5NCIsIFwKLSAgICAgICAgICAiMC4wMDE4MzIsIDAuMDAxODM4LCAwLjAwMTg0OCwgMC4wMDE4NDksIDAuMDAxODUxLCAwLjAwMTg0OSwgMC4wMDE4MDQiLCBcCi0gICAgICAgICAgIjAuMDAxODI3LCAwLjAwMTgzNCwgMC4wMDE4NDYsIDAuMDAxODQ4LCAwLjAwMTg1MSwgMC4wMDE4NDgsIDAuMDAxNzkyIiwgXAotICAgICAgICAgICIwLjAwMTgyMSwgMC4wMDE4MjksIDAuMDAxODQzLCAwLjAwMTg0NiwgMC4wMDE4NDgsIDAuMDAxODQ3LCAwLjAwMTc5MSIsIFwKLSAgICAgICAgICAiMC4wMDE4MTcsIDAuMDAxODI1LCAwLjAwMTg0MSwgMC4wMDE4NDUsIDAuMDAxODQ3LCAwLjAwMTg0NywgMC4wMDE3OTgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDAwNDUsIDAuMDAwMDQ2LCAwLjAwMDA0NywgMC4wMDAwNDcsIDAuMDAwMDQ3LCAwLjAwMDA0NywgMC4wMDAwNDgiLCBcCi0gICAgICAgICAgIjAuMDAwMDU5LCAwLjAwMDA2MiwgMC4wMDAwNjcsIDAuMDAwMDY4LCAwLjAwMDA2OCwgMC4wMDAwNjksIDAuMDAwMDY5IiwgXAotICAgICAgICAgICIwLjAwMDA1NywgMC4wMDAwNjQsIDAuMDAwMDcyLCAwLjAwMDA3NCwgMC4wMDAwNzQsIDAuMDAwMDc1LCAwLjAwMDA3NiIsIFwKLSAgICAgICAgICAiMC4wMDAwNTQsIDAuMDAwMDYyLCAwLjAwMDA3MywgMC4wMDAwNzcsIDAuMDAwMDc4LCAwLjAwMDA4LCAwLjAwMDA4IiwgXAotICAgICAgICAgICIwLjAwMDA0OSwgMC4wMDAwNTksIDAuMDAwMDczLCAwLjAwMDA3NiwgMC4wMDAwNzksIDAuMDAwMDgxLCAwLjAwMDA4MSIsIFwKLSAgICAgICAgICAiMC4wMDAwNDMsIDAuMDAwMDU0LCAwLjAwMDA3MSwgMC4wMDAwNzUsIDAuMDAwMDc3LCAwLjAwMDA3OCwgMC4wMDAwNzkiLCBcCi0gICAgICAgICAgIjAuMDAwMDM3LCAwLjAwMDA1LCAwLjAwMDA3LCAwLjAwMDA3NSwgMC4wMDAwNzcsIDAuMDAwMDc5LCAwLjAwMDA4MiIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IE5PUjRCWDIgKgotICogLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoTk9SNEJYMikgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjE3NzQxNTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQU4pICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDUxNzI1NTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA1MTY5Mzk7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNTE3MjU1OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTUxMSwgMC4wMDE0OTYsIDAuMDAxNDg1LCAwLjAwMTQ4LCAwLjAwMTQ3NiwgMC4wMDE0NzcsIDAuMDAxNDc2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxNDI3LCAwLjAwMTQxNywgMC4wMDE0MDcsIDAuMDAxNCwgMC4wMDEzOTUsIDAuMDAxMzg5LCAwLjAwMTM4NCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNTA1NTI7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNDkwMjI7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNTA1NTI7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjQ1LCAwLjAwMDI0NSwgMC4wMDAyNDUsIDAuMDAwMjQ1LCAwLjAwMDI0NSwgMC4wMDAyNDUsIDAuMDAwMjQ1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNDU4LCAwLjAwMDQ1NywgMC4wMDA0NTgsIDAuMDAwNDU4LCAwLjAwMDQ1NywgMC4wMDA0NTYsIDAuMDAwNDU3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihDKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE0ODI5NzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE0Njk0OTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE0ODI5NzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyMjcsIDAuMDAwMjI3LCAwLjAwMDIyNywgMC4wMDAyMjcsIDAuMDAwMjI3LCAwLjAwMDIyNywgMC4wMDAyMjciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA5NTEsIDAuMDAwOTUyLCAwLjAwMDk1MiwgMC4wMDA5NTMsIDAuMDAwOTUyLCAwLjAwMDk1LCAwLjAwMDk1MSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNTAxOTY7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNTAxOTY7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNTAxOTM7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMTQ5LCAwLjAwMDE0OSwgMC4wMDAxNDksIDAuMDAwMTQ5LCAwLjAwMDE0OSwgMC4wMDAxNDksIDAuMDAwMTQ5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxMjQ2LCAwLjAwMTI0NywgMC4wMDEyNDUsIDAuMDAxMjQ1LCAwLjAwMTI0NiwgMC4wMDEyNDUsIDAuMDAxMjQ2Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMDY1OTUxOTsKLSAgICBmdW5jdGlvbiA6ICIoISgoKCghQU4pK0IpK0MpK0QpKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQU4iOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMwMjkyNiwgMS4wODIxNSwgMS43MDUwNiwgMi40ODMsIDMuMjYxMDUsIDQuMDM5MTcsIDQuODE3MSIsIFwKLSAgICAgICAgICAiMC4zMTQ1MzQsIDEuMDkzNzQsIDEuNzE2ODcsIDIuNDk1MDcsIDMuMjcyNzgsIDQuMDUwNTksIDQuODI4NjIiLCBcCi0gICAgICAgICAgIjAuMzI5ODQxLCAxLjEwODk2LCAxLjczMTgsIDIuNTEwNTYsIDMuMjg4NjMsIDQuMDY2MjgsIDQuODQ0MDkiLCBcCi0gICAgICAgICAgIjAuMzQ1MDU2LCAxLjEyNDI4LCAxLjc0NzI4LCAyLjUyNTc0LCAzLjMwMzg5LCA0LjA4MTYxLCA0Ljg1OTM2IiwgXAotICAgICAgICAgICIwLjM2MDE1OSwgMS4xMzk0OSwgMS43NjI1MiwgMi41NDA5LCAzLjMxOTAzLCA0LjA5NjYyLCA0Ljg3NDU1IiwgXAotICAgICAgICAgICIwLjM4MzMzNSwgMS4xNjIyOCwgMS43ODU2MiwgMi41NjM0OSwgMy4zNDE4LCA0LjEyLCA0Ljg5ODA5IiwgXAotICAgICAgICAgICIwLjQwMjE3NSwgMS4xODE0NCwgMS44MDQ0OSwgMi41ODMxOSwgMy4zNjA3MywgNC4xMzg5NSwgNC45MTcwNiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC40MDEwMiwgMS44ODUwNiwgMy4wNzY3NSwgNC41NTg4MywgNi4wNDgzOCwgNy41Mjc1NywgOS4wMDU1OCIsIFwKLSAgICAgICAgICAiMC40MDEwNDgsIDEuODg3NTYsIDMuMDc2OTYsIDQuNTcxNjUsIDYuMDQyNDQsIDcuNTI2NzMsIDkuMDA3MzQiLCBcCi0gICAgICAgICAgIjAuNDAwOTgyLCAxLjg4NzI3LCAzLjA3NjIxLCA0LjU1NzAzLCA2LjA0MDE0LCA3LjUyNzU5LCA5LjAwNjI1IiwgXAotICAgICAgICAgICIwLjQwMTA2NiwgMS44ODczNCwgMy4wNzY1MSwgNC41NTgwMiwgNi4wNDAzNCwgNy41MjMxMSwgOS4wMDcwNyIsIFwKLSAgICAgICAgICAiMC40MDEwNjcsIDEuODg3NCwgMy4wNzY2LCA0LjU1ODExLCA2LjAzOTc3LCA3LjUyNDEyLCA5LjAwNzE4IiwgXAotICAgICAgICAgICIwLjQwMTAzNSwgMS44ODkxNiwgMy4wNzE3OCwgNC41NjE4NywgNi4wNDcxMiwgNy41Mjc0OSwgOS4wMDU1MyIsIFwKLSAgICAgICAgICAiMC40MDE1NzYsIDEuODgzMjcsIDMuMDc2MTQsIDQuNTcxNTcsIDYuMDQzOCwgNy41Mjc0NywgOS4wMDUwOSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTQyNzYsIDAuMzI1NjM5LCAwLjQ5MTY0OCwgMC42OTg1MDksIDAuOTA1MjMzLCAxLjExMTY4LCAxLjMxODE1IiwgXAotICAgICAgICAgICIwLjEyNTgyNywgMC4zMzcxODIsIDAuNTAzMjI1LCAwLjcxMDEyNSwgMC45MTY2NzQsIDEuMTIzMjYsIDEuMzI5NjEiLCBcCi0gICAgICAgICAgIjAuMTQwNzc5LCAwLjM1MjE1NiwgMC41MTgxNjYsIDAuNzI1MTI1LCAwLjkzMTczOSwgMS4xMzgyNSwgMS4zNDQ2IiwgXAotICAgICAgICAgICIwLjE1NTIyNywgMC4zNjY2MjgsIDAuNTMyNjU4LCAwLjczOTU0MSwgMC45NDYxNTEsIDEuMTUyNywgMS4zNTkwNCIsIFwKLSAgICAgICAgICAiMC4xNjk2OTMsIDAuMzgxMDY5LCAwLjU0NzA3NiwgMC43NTQwMzMsIDAuOTYwNywgMS4xNjcwNywgMS4zNzM2IiwgXAotICAgICAgICAgICIwLjE5MDUyOCwgMC40MDE4NjcsIDAuNTY3ODg4LCAwLjc3NDc3NCwgMC45ODEzNTcsIDEuMTg3OTUsIDEuMzk0MjgiLCBcCi0gICAgICAgICAgIjAuMjA3NTcsIDAuNDE4ODEyLCAwLjU4NDg2OCwgMC43OTE3MTYsIDAuOTk4Mzc2LCAxLjIwNDksIDEuNDExMjciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTI4MTEyLCAwLjUzNzU3NSwgMC44NjU1MDcsIDEuMjc1NTgsIDEuNjg2NDUsIDIuMDk1OTQsIDIuNTA2NzkiLCBcCi0gICAgICAgICAgIjAuMTI4MDg3LCAwLjUzNzU2OCwgMC44NjU2NjQsIDEuMjc1NjYsIDEuNjg1OCwgMi4wOTY2MiwgMi41MDY1NiIsIFwKLSAgICAgICAgICAiMC4xMjgwOTQsIDAuNTM3NTYxLCAwLjg2NTc5NCwgMS4yNzU5NCwgMS42ODU4OCwgMi4wOTY3OSwgMi41MDU5MyIsIFwKLSAgICAgICAgICAiMC4xMjgwOTcsIDAuNTM3NTg0LCAwLjg2NTcwOSwgMS4yNzU2MiwgMS42ODY0NCwgMi4wOTY2NywgMi41MDY2MiIsIFwKLSAgICAgICAgICAiMC4xMjgxNywgMC41Mzc1NDcsIDAuODY1ODA2LCAxLjI3NTc0LCAxLjY4NjM4LCAyLjA5NjUxLCAyLjUwNjY2IiwgXAotICAgICAgICAgICIwLjEyODU4LCAwLjUzNzU1LCAwLjg2NTQ3MiwgMS4yNzU5NCwgMS42ODU4LCAyLjA5NjU4LCAyLjUwNjUxIiwgXAotICAgICAgICAgICIwLjEyOTI0LCAwLjUzNzUxLCAwLjg2NTc3NiwgMS4yNzYwOCwgMS42ODYzNiwgMi4wOTY1OSwgMi41MDU5MSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yNDY4NzUsIDEuMDI1NTgsIDEuNjQ4NCwgMi40MjcxOSwgMy4yMDUyMiwgMy45ODI4NSwgNC43NjA2NyIsIFwKLSAgICAgICAgICAiMC4yNTczMDQsIDEuMDM2MTMsIDEuNjU5MzcsIDIuNDM3ODEsIDMuMjE1MjUsIDMuOTkzNSwgNC43NzE1OCIsIFwKLSAgICAgICAgICAiMC4yNjk4MzQsIDEuMDQ4ODUsIDEuNjcxOTIsIDIuNDUwOTksIDMuMjI4NCwgNC4wMDY0MywgNC43ODQzNSIsIFwKLSAgICAgICAgICAiMC4yODE1MTIsIDEuMDYwNzUsIDEuNjgzNzksIDIuNDYyODIsIDMuMjQwNzQsIDQuMDE4MzUsIDQuNzk2MjQiLCBcCi0gICAgICAgICAgIjAuMjkzMDIsIDEuMDcyNTUsIDEuNjk1NDgsIDIuNDc0MzcsIDMuMjUyNDMsIDQuMDMwMDcsIDQuODA3OTMiLCBcCi0gICAgICAgICAgIjAuMzEwNTI3LCAxLjA5MDI1LCAxLjcxMzY0LCAyLjQ5MTc2LCAzLjI2OTk0LCA0LjA0Nzc5LCA0LjgyNTU1IiwgXAotICAgICAgICAgICIwLjMyNTI5LCAxLjEwNDc5LCAxLjcyNzc0LCAyLjUwNjcyLCAzLjI4NDQsIDQuMDYyNTMsIDQuODQwNzUiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuNDAwOTc3LCAxLjg4NzE4LCAzLjA3NjEyLCA0LjU1NzA0LCA2LjA0MDAzLCA3LjUyNzU3LCA5LjAwNjEzIiwgXAotICAgICAgICAgICIwLjQwMTAyNCwgMS44ODU5OSwgMy4wNzY0OSwgNC41NzE2MiwgNi4wNDczMywgNy41Mjc0OCwgOS4wMDUwMiIsIFwKLSAgICAgICAgICAiMC40MDA5NzYsIDEuODg2NzcsIDMuMDc2MDcsIDQuNTU2NDMsIDYuMDQ4NDEsIDcuNTI3NTQsIDkuMDA2NDkiLCBcCi0gICAgICAgICAgIjAuNDAwNzQsIDEuODg1ODksIDMuMDc2MDgsIDQuNTU2NDYsIDYuMDQ4ODQsIDcuNTI3NDQsIDkuMDA1ODEiLCBcCi0gICAgICAgICAgIjAuNDAwODc1LCAxLjg4NzE4LCAzLjA3NjExLCA0LjU1NzIzLCA2LjAzOTc5LCA3LjUyNzQ3LCA5LjAwNTU4IiwgXAotICAgICAgICAgICIwLjQwMTE5NCwgMS44ODU1MywgMy4wNzY4OSwgNC41NTg4LCA2LjA0MDgyLCA3LjUyMzYzLCA5LjAwNzE0IiwgXAotICAgICAgICAgICIwLjQwMjM1MiwgMS44ODkyNCwgMy4wNzU3NCwgNC41NzEzNSwgNi4wNDgyLCA3LjUyNzI3LCA5LjAwNzI5Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2ODM2OCwgMC4yNzY5ODgsIDAuNDQyMzksIDAuNjQ4OTA2LCAwLjg1NTQ0NiwgMS4wNjE1NiwgMS4yNjgyNSIsIFwKLSAgICAgICAgICAiMC4wODAwNDksIDAuMjg4NjY2LCAwLjQ1NDAzMSwgMC42NjA1NzMsIDAuODY2OTg0LCAxLjA3MzE2LCAxLjI3OTU2IiwgXAotICAgICAgICAgICIwLjA5NDg0NCwgMC4zMDE3OTYsIDAuNDY3MzA2LCAwLjY3MzgwMiwgMC44ODAzNjksIDEuMDg2NSwgMS4yOTMwMyIsIFwKLSAgICAgICAgICAiMC4xMDk0OTYsIDAuMzE3ODg3LCAwLjQ4MzM2MSwgMC42ODk4MDQsIDAuODk2MzQ5LCAxLjEwMjQ3LCAxLjMwOTEyIiwgXAotICAgICAgICAgICIwLjEyNTEyOCwgMC4zMzM0MzEsIDAuNDk4OTExLCAwLjcwNTQ2NCwgMC45MTE5NDMsIDEuMTE4MjMsIDEuMzI0MjMiLCBcCi0gICAgICAgICAgIjAuMTQ4OTY2LCAwLjM1NjIxNCwgMC41MjE0NjQsIDAuNzI3ODg3LCAwLjkzNDM4MSwgMS4xNDA1NCwgMS4zNDY3MiIsIFwKLSAgICAgICAgICAiMC4xNzA0NTksIDAuMzc4MDksIDAuNTQyMDksIDAuNzQ4NTYzLCAwLjk1NDg1MywgMS4xNjEzNCwgMS4zNjczOCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTgzNjUsIDAuNTI4NTAyLCAwLjg1NjUzNSwgMS4yNjY3MywgMS42NzcyMSwgMi4wODY4MSwgMi40OTY5IiwgXAotICAgICAgICAgICIwLjExNzk1NywgMC41MjgyODYsIDAuODU2Nzc5LCAxLjI2NjcyLCAxLjY3NjQ0LCAyLjA4NzA0LCAyLjQ5NjIyIiwgXAotICAgICAgICAgICIwLjExODQzNiwgMC41Mjg0NTgsIDAuODU2NjU2LCAxLjI2Njc2LCAxLjY3NzI4LCAyLjA4NjIyLCAyLjQ5NzI5IiwgXAotICAgICAgICAgICIwLjEyMTU2LCAwLjUyODQ1MSwgMC44NTY1NSwgMS4yNjY2MywgMS42NzcyOCwgMi4wODY2NSwgMi40OTc1MiIsIFwKLSAgICAgICAgICAiMC4xMjU4NTUsIDAuNTI4NDU0LCAwLjg1NjY0OSwgMS4yNjY3OSwgMS42NzcxNCwgMi4wODczMSwgMi40OTY1MyIsIFwKLSAgICAgICAgICAiMC4xMzU4NzgsIDAuNTI4NTI3LCAwLjg1NjgxOCwgMS4yNjY0MiwgMS42NzczNSwgMi4wODY3LCAyLjQ5NzIyIiwgXAotICAgICAgICAgICIwLjE0NTUyMSwgMC41Mjk5MjEsIDAuODU2ODE2LCAxLjI2NzE0LCAxLjY3Njc3LCAyLjA4NzE1LCAyLjQ5Njc4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIyODM3MSwgMS4wMDc1MSwgMS42MzA2MSwgMi40MDc5OCwgMy4xODYwNSwgMy45NjQwNiwgNC43NDIwMyIsIFwKLSAgICAgICAgICAiMC4yMzgxMDgsIDEuMDE3MzUsIDEuNjQwNTMsIDIuNDE4MTcsIDMuMTk2MjYsIDMuOTc0MTUsIDQuNzUyMTYiLCBcCi0gICAgICAgICAgIjAuMjUwMDg1LCAxLjAyOTQ1LCAxLjY1MjY0LCAyLjQzMDkyLCAzLjIwODcsIDMuOTg2NTEsIDQuNzY0NTciLCBcCi0gICAgICAgICAgIjAuMjYxODc1LCAxLjA0MTI3LCAxLjY2NDQ0LCAyLjQ0MjUsIDMuMjIwODIsIDMuOTk4NSwgNC43NzY1MiIsIFwKLSAgICAgICAgICAiMC4yNzMxMjksIDEuMDUyODMsIDEuNjc2MTEsIDIuNDU0NTksIDMuMjMyMDIsIDQuMDA5ODksIDQuNzg4MDEiLCBcCi0gICAgICAgICAgIjAuMjkxNDI0LCAxLjA3MTMsIDEuNjk0MDgsIDIuNDcyNTksIDMuMjUwMzcsIDQuMDI4NDcsIDQuODA2MzMiLCBcCi0gICAgICAgICAgIjAuMzA3MDk2LCAxLjA4Njc3LCAxLjcxMDU5LCAyLjQ4ODUsIDMuMjY2OTMsIDQuMDQ0MzIsIDQuODIyNDQiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuNDAwOTgsIDEuODg1MTksIDMuMDc3MiwgNC41NTkyLCA2LjA0Njc3LCA3LjUyNzMzLCA5LjAwNzI2IiwgXAotICAgICAgICAgICIwLjQwMDk5MSwgMS44ODc1NywgMy4wNzIyNywgNC41NTkyNCwgNi4wNDM5OCwgNy41MjcyMSwgOS4wMDczMyIsIFwKLSAgICAgICAgICAiMC40MDA5OTEsIDEuODg3MzUsIDMuMDc2NzUsIDQuNTcxNDcsIDYuMDQyMjUsIDcuNTI2NzIsIDkuMDA3MzIiLCBcCi0gICAgICAgICAgIjAuNDAxNTQ3LCAxLjg4NzE4LCAzLjA3NjU0LCA0LjU3MDY3LCA2LjA0MDI4LCA3LjUyNjczLCA5LjAwNzQzIiwgXAotICAgICAgICAgICIwLjQwMDk4OCwgMS44ODc1LCAzLjA3Njk2LCA0LjU3MjAyLCA2LjA0MzM1LCA3LjUyNjczLCA5LjAwNzM2IiwgXAotICAgICAgICAgICIwLjQwMTA5NywgMS44ODQ4OSwgMy4wNzYxNSwgNC41NzEwOCwgNi4wNDczNSwgNy41MjcyNiwgOS4wMDcwOSIsIFwKLSAgICAgICAgICAiMC40MDMxOTksIDEuODg2OTgsIDMuMDc3MDYsIDQuNTU5NzksIDYuMDQwMywgNy41MjY5NSwgOS4wMDY5OCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjQwNjMsIDAuMjcxMTYxLCAwLjQzNjI5OSwgMC42NDI1NzksIDAuODQ5MDE5LCAxLjA1NTY4LCAxLjI2MTE4IiwgXAotICAgICAgICAgICIwLjA3NTk0MywgMC4yODI2NTgsIDAuNDQ3ODM5LCAwLjY1NDE1OCwgMC44NjAzODgsIDEuMDY2NTMsIDEuMjcyNzgiLCBcCi0gICAgICAgICAgIjAuMDkwNzIyLCAwLjI5NjE2MywgMC40NjE1MzEsIDAuNjY3ODk4LCAwLjg3NDMzOSwgMS4wODAzNywgMS4yODY5OCIsIFwKLSAgICAgICAgICAiMC4xMDU5MDMsIDAuMzEyMzgxLCAwLjQ3NTc1NiwgMC42ODIyMjYsIDAuODg4NzEsIDEuMDk0NTYsIDEuMzAxNDMiLCBcCi0gICAgICAgICAgIjAuMTIwODA1LCAwLjMyNzg4MywgMC40OTMwNTQsIDAuNjk5NDIzLCAwLjkwNTU2NCwgMS4xMTIwMiwgMS4zMTg1MyIsIFwKLSAgICAgICAgICAiMC4xNDQ4NDgsIDAuMzUwNzc4LCAwLjUxNTYzNCwgMC43MjE4OTYsIDAuOTI4MTA0LCAxLjEzNTkzLCAxLjM0MjA0IiwgXAotICAgICAgICAgICIwLjE2NjA1OSwgMC4zNzI2MzIsIDAuNTM2MzAxLCAwLjc0MjY3NywgMC45NDg4NzksIDEuMTU1NDcsIDEuMzYxMTYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTExNTQyLCAwLjUyMjAwNywgMC44NTAxMzMsIDEuMjYwMTIsIDEuNjcwMDMsIDIuMDgwMzQsIDIuNDg5OTkiLCBcCi0gICAgICAgICAgIjAuMTExNTAxLCAwLjUyMTk1NSwgMC44NTAwNTYsIDEuMjYwMDgsIDEuNjcwMTgsIDIuMDc5ODQsIDIuNDg5MzYiLCBcCi0gICAgICAgICAgIjAuMTEyMzk1LCAwLjUyMTc0OSwgMC44NTAwOTQsIDEuMjYsIDEuNjcwMjMsIDIuMDc5NzUsIDIuNDkwMDUiLCBcCi0gICAgICAgICAgIjAuMTE1ODAxLCAwLjUyMTk2MywgMC44NTAwMDUsIDEuMjYwMDUsIDEuNjcwNDcsIDIuMDc5OTgsIDIuNDkwMDYiLCBcCi0gICAgICAgICAgIjAuMTIwODM0LCAwLjUyMTkzNSwgMC44NTAwMTYsIDEuMjYwMTIsIDEuNjY5OTMsIDIuMDgwNiwgMi40OTAxMyIsIFwKLSAgICAgICAgICAiMC4xMzE0NzYsIDAuNTIyMjI0LCAwLjg0OTk2MSwgMS4yNjAwMywgMS42Njk5NiwgMi4wODA2LCAyLjQ5MDAyIiwgXAotICAgICAgICAgICIwLjE0MTQ5OCwgMC41MjM2MTksIDAuODQ5OTksIDEuMjYwMzksIDEuNjcwMTcsIDIuMDgwNjEsIDIuNDkwMDUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTk1OTc3LCAwLjk3NDU4MywgMS41OTc4NSwgMi4zNzYxOSwgMy4xNTQzOCwgMy45MzE3NiwgNC43MDk4MyIsIFwKLSAgICAgICAgICAiMC4yMDQ5MjUsIDAuOTgzOTgyLCAxLjYwNjg3LCAyLjM4NTU3LCAzLjE2MzI3LCAzLjk0MTM2LCA0LjcxOTU2IiwgXAotICAgICAgICAgICIwLjIxNjEzOSwgMC45OTU2MzYsIDEuNjE4NDIsIDIuMzk3MzksIDMuMTc1MjUsIDMuOTUzMywgNC43MzExMSIsIFwKLSAgICAgICAgICAiMC4yMjc4MzcsIDEuMDA3NzIsIDEuNjMwMzIsIDIuNDA5NTYsIDMuMTg3MTEsIDMuOTY1MTcsIDQuNzQzMzgiLCBcCi0gICAgICAgICAgIjAuMjM4OTkzLCAxLjAxODg4LCAxLjY0MTc0LCAyLjQyMDI1LCAzLjE5ODQ4LCAzLjk3NjUyLCA0Ljc1NDU1IiwgXAotICAgICAgICAgICIwLjI1NzQ1NywgMS4wMzc3OCwgMS42NjEwOCwgMi40Mzk3NywgMy4yMTcxNCwgMy45OTUxNiwgNC43NzMwMyIsIFwKLSAgICAgICAgICAiMC4yNzM3LCAxLjA1MzU0LCAxLjY3NjYxLCAyLjQ1NTk3LCAzLjIzMzI2LCA0LjAxMTYzLCA0Ljc4OTM3Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjQwMDQ3LCAxLjg4NzE0LCAzLjA3NjU3LCA0LjU1ODEyLCA2LjAzOTI2LCA3LjUyNjI3LCA5LjAwNjQ5IiwgXAotICAgICAgICAgICIwLjQwMDYxOCwgMS44ODkxOCwgMy4wNzQxMiwgNC41NzExOCwgNi4wNDgxOSwgNy41MjcyOCwgOS4wMDczNSIsIFwKLSAgICAgICAgICAiMC4zOTkwOTIsIDEuODg3MDEsIDMuMDc1NjMsIDQuNTcxMzksIDYuMDQyMDMsIDcuNTIzNDEsIDkuMDA1NiIsIFwKLSAgICAgICAgICAiMC4zOTc5OCwgMS44ODYyMSwgMy4wNzU2NiwgNC41NzE3NCwgNi4wNDgyNywgNy41MjczMiwgOS4wMDc0NyIsIFwKLSAgICAgICAgICAiMC4zOTc5OTcsIDEuODg2OTcsIDMuMDc3MzgsIDQuNTYyMTMsIDYuMDQ4MjksIDcuNTI3MjUsIDkuMDA3MjQiLCBcCi0gICAgICAgICAgIjAuNDAxMTQ5LCAxLjg4NzUyLCAzLjA3NjgzLCA0LjU3MjIyLCA2LjA0ODMyLCA3LjUyNzMsIDkuMDA3MDMiLCBcCi0gICAgICAgICAgIjAuNDA2MTEyLCAxLjg4NjgyLCAzLjA3NTgsIDQuNTcxOTYsIDYuMDQ3MzEsIDcuNTIyMjIsIDkuMDA3MDIiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU3ODUsIDAuMjY0MDUzLCAwLjQyOTAwOCwgMC42MzU0NzcsIDAuODQxODQ3LCAxLjA0NzY5LCAxLjI1NDMxIiwgXAotICAgICAgICAgICIwLjA2OTc2OCwgMC4yNzYxMjcsIDAuNDQxMTQ4LCAwLjY0NzM4NSwgMC44NTM0LCAxLjA1OTgxLCAxLjI2NTc4IiwgXAotICAgICAgICAgICIwLjA4NDg1MSwgMC4yODk3MjQsIDAuNDU0ODQ3LCAwLjY2MTAwNSwgMC44NjcxMTIsIDEuMDczMzcsIDEuMjc5ODEiLCBcCi0gICAgICAgICAgIjAuMDk5NzczLCAwLjMwNTU0NywgMC40NzA1ODUsIDAuNjc2ODA5LCAwLjg4MjA2OSwgMS4wODUxNiwgMS4yOTEzOSIsIFwKLSAgICAgICAgICAiMC4xMTQ5MjUsIDAuMzIwNzUsIDAuNDg1NTM0LCAwLjY5MTU5OCwgMC44OTc3MzIsIDEuMTAzOTcsIDEuMzEwNTgiLCBcCi0gICAgICAgICAgIjAuMTM5MzA4LCAwLjM0NDIxMywgMC41MDg4MDIsIDAuNzE0OTk0LCAwLjkyMTIxNiwgMS4xMjczOSwgMS4zMzM4MyIsIFwKLSAgICAgICAgICAiMC4xNTkxODcsIDAuMzY1NDkyLCAwLjUyOTkxNSwgMC43MzM3MjIsIDAuOTQzNTQ4LCAxLjE0NjIsIDEuMzUyNjgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTA0NTY1LCAwLjUxNjgyMSwgMC44NDYzODIsIDEuMjU0MTksIDEuNjY0MzQsIDIuMDc0NDUsIDIuNDg1NzciLCBcCi0gICAgICAgICAgIjAuMTA0OTEsIDAuNTE2ODQyLCAwLjg0MzE2NiwgMS4yNTUwMSwgMS42NzAxNywgMi4wNzUxNCwgMi40ODc4NSIsIFwKLSAgICAgICAgICAiMC4xMDYyNTMsIDAuNTE2NTIzLCAwLjg0NDIyNywgMS4yNTQzNiwgMS42NjY1NiwgMi4wNzQ3MywgMi40ODkwOSIsIFwKLSAgICAgICAgICAiMC4xMDk5NDQsIDAuNTE2ODQ4LCAwLjg0NDc4OSwgMS4yNTQ5NSwgMS42NzAyMywgMi4wNzQxMiwgMi40OTQyMSIsIFwKLSAgICAgICAgICAiMC4xMTU3MDcsIDAuNTE1NTY5LCAwLjg0NDMwOCwgMS4yNTQyMSwgMS42NjM5NywgMi4wODIxNCwgMi40OTE5MSIsIFwKLSAgICAgICAgICAiMC4xMjY2OTIsIDAuNTE1MzA3LCAwLjg0MzQxNSwgMS4yNTM1LCAxLjY2MzgsIDIuMDc0NTEsIDIuNDkwNTIiLCBcCi0gICAgICAgICAgIjAuMTM3NDI4LCAwLjUxODkxNywgMC44NDM2MTEsIDEuMjU0ODksIDEuNjY0NSwgMi4wNzQ1MSwgMi40OTIwNCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkFOIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDYxMTUsIDAuMDA2MTI2LCAwLjAwNjEyOCwgMC4wMDYxMjgsIDAuMDA2MTI3LCAwLjAwNjEyOSwgMC4wMDYxMjkiLCBcCi0gICAgICAgICAgIjAuMDA2MDk3LCAwLjAwNjExMSwgMC4wMDYxMTIsIDAuMDA2MTEsIDAuMDA2MTE1LCAwLjAwNjExMSwgMC4wMDYxMTEiLCBcCi0gICAgICAgICAgIjAuMDA2MDgzLCAwLjAwNjEsIDAuMDA2MTAyLCAwLjAwNjEwMiwgMC4wMDYxMDMsIDAuMDA2MTAzLCAwLjAwNjEwMiIsIFwKLSAgICAgICAgICAiMC4wMDYwNzEsIDAuMDA2MDkyLCAwLjAwNjA5NCwgMC4wMDYwOTQsIDAuMDA2MDk1LCAwLjAwNjA5NSwgMC4wMDYwOTYiLCBcCi0gICAgICAgICAgIjAuMDA2MDY0LCAwLjAwNjA4NiwgMC4wMDYwOTEsIDAuMDA2MDkxLCAwLjAwNjA5MSwgMC4wMDYwOTIsIDAuMDA2MDkyIiwgXAotICAgICAgICAgICIwLjAwNjA2LCAwLjAwNjA4NSwgMC4wMDYwOSwgMC4wMDYwOTIsIDAuMDA2MDkyLCAwLjAwNjA5NCwgMC4wMDYwOTQiLCBcCi0gICAgICAgICAgIjAuMDA2MDU3LCAwLjAwNjA4NCwgMC4wMDYwODksIDAuMDA2MDkxLCAwLjAwNjA5MiwgMC4wMDYwOTMsIDAuMDA2MDk3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0MTYzLCAwLjAwNDE2MywgMC4wMDQxNjEsIDAuMDA0MTYxLCAwLjAwNDE2MSwgMC4wMDQxNiwgMC4wMDQxNTkiLCBcCi0gICAgICAgICAgIjAuMDA0MTUyLCAwLjAwNDE1MSwgMC4wMDQxNTEsIDAuMDA0MTUxLCAwLjAwNDE1LCAwLjAwNDE0OCwgMC4wMDQxNDciLCBcCi0gICAgICAgICAgIjAuMDA0MTQsIDAuMDA0MTQyLCAwLjAwNDE0MiwgMC4wMDQxNCwgMC4wMDQxMzksIDAuMDA0MTM5LCAwLjAwNDEzNyIsIFwKLSAgICAgICAgICAiMC4wMDQxMjUsIDAuMDA0MTI5LCAwLjAwNDEyNywgMC4wMDQxMjYsIDAuMDA0MTI2LCAwLjAwNDEyNiwgMC4wMDQxMjUiLCBcCi0gICAgICAgICAgIjAuMDA0MTIxLCAwLjAwNDEyNiwgMC4wMDQxMjUsIDAuMDA0MTI1LCAwLjAwNDEyMywgMC4wMDQxMjQsIDAuMDA0MTIyIiwgXAotICAgICAgICAgICIwLjAwNDExLCAwLjAwNDExNywgMC4wMDQxMTcsIDAuMDA0MTE3LCAwLjAwNDExNiwgMC4wMDQxMTUsIDAuMDA0MTE1IiwgXAotICAgICAgICAgICIwLjAwNDEwNywgMC4wMDQxMTQsIDAuMDA0MTEzLCAwLjAwNDExNCwgMC4wMDQxMTIsIDAuMDA0MTEyLCAwLjAwNDExMiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNTE0NywgMC4wMDUxNTEsIDAuMDA1MTUsIDAuMDA1MTUxLCAwLjAwNTE1LCAwLjAwNTE1LCAwLjAwNTE0OSIsIFwKLSAgICAgICAgICAiMC4wMDUxMzQsIDAuMDA1MTQ5LCAwLjAwNTE0OCwgMC4wMDUxNTEsIDAuMDA1MTUsIDAuMDA1MTUxLCAwLjAwNTE0OSIsIFwKLSAgICAgICAgICAiMC4wMDUxMjEsIDAuMDA1MTQzLCAwLjAwNTE0OCwgMC4wMDUxNDgsIDAuMDA1MTUsIDAuMDA1MTQ4LCAwLjAwNTE0NyIsIFwKLSAgICAgICAgICAiMC4wMDUxMTIsIDAuMDA1MTQxLCAwLjAwNTE0NSwgMC4wMDUxNDUsIDAuMDA1MTQ4LCAwLjAwNTE1MywgMC4wMDUxNDkiLCBcCi0gICAgICAgICAgIjAuMDA1MTA0LCAwLjAwNTEzNywgMC4wMDUxNDIsIDAuMDA1MTQ1LCAwLjAwNTE0NiwgMC4wMDUxNDksIDAuMDA1MTQ1IiwgXAotICAgICAgICAgICIwLjAwNTA5NCwgMC4wMDUxMzIsIDAuMDA1MTM4LCAwLjAwNTE0MSwgMC4wMDUxNDQsIDAuMDA1MTQ1LCAwLjAwNTE0NiIsIFwKLSAgICAgICAgICAiMC4wMDUwODgsIDAuMDA1MTI3LCAwLjAwNTEzNiwgMC4wMDUxNDEsIDAuMDA1MTQzLCAwLjAwNTE0NCwgMC4wMDUxNDMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDE0ODQsIDAuMDAxNDg0LCAwLjAwMTQ4MiwgMC4wMDE0ODIsIDAuMDAxNDgxLCAwLjAwMTQ4LCAwLjAwMTQ4IiwgXAotICAgICAgICAgICIwLjAwMTQ2NCwgMC4wMDE0NjYsIDAuMDAxNDY2LCAwLjAwMTQ2NiwgMC4wMDE0NjYsIDAuMDAxNDY1LCAwLjAwMTQ2NSIsIFwKLSAgICAgICAgICAiMC4wMDE0NDcsIDAuMDAxNDU1LCAwLjAwMTQ1NiwgMC4wMDE0NTYsIDAuMDAxNDU2LCAwLjAwMTQ1NSwgMC4wMDE0NTUiLCBcCi0gICAgICAgICAgIjAuMDAxNDMzLCAwLjAwMTQ1LCAwLjAwMTQ1MiwgMC4wMDE0NTEsIDAuMDAxNDUyLCAwLjAwMTQ1MSwgMC4wMDE0NTIiLCBcCi0gICAgICAgICAgIjAuMDAxNDI1LCAwLjAwMTQ0NiwgMC4wMDE0NDgsIDAuMDAxNDQ5LCAwLjAwMTQ1LCAwLjAwMTQ1LCAwLjAwMTQ1IiwgXAotICAgICAgICAgICIwLjAwMTQxNSwgMC4wMDE0NDIsIDAuMDAxNDQ1LCAwLjAwMTQ0NiwgMC4wMDE0NDcsIDAuMDAxNDQ3LCAwLjAwMTQ0NyIsIFwKLSAgICAgICAgICAiMC4wMDE0MDgsIDAuMDAxNDM5LCAwLjAwMTQ0MiwgMC4wMDE0NDUsIDAuMDAxNDQ1LCAwLjAwMTQ0NiwgMC4wMDE0NDUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQzNywgMC4wMDQzNzIsIDAuMDA0MzczLCAwLjAwNDM3MywgMC4wMDQzNzMsIDAuMDA0MzcyLCAwLjAwNDM3MiIsIFwKLSAgICAgICAgICAiMC4wMDQzNTYsIDAuMDA0MzY5LCAwLjAwNDM3MSwgMC4wMDQzNzIsIDAuMDA0MzcxLCAwLjAwNDM3LCAwLjAwNDM3MyIsIFwKLSAgICAgICAgICAiMC4wMDQzNDMsIDAuMDA0MzY1LCAwLjAwNDM2OCwgMC4wMDQzNywgMC4wMDQzNywgMC4wMDQzNzEsIDAuMDA0MzciLCBcCi0gICAgICAgICAgIjAuMDA0MzMzLCAwLjAwNDM2MiwgMC4wMDQzNjYsIDAuMDA0MzcsIDAuMDA0MzY4LCAwLjAwNDM3MSwgMC4wMDQzNjkiLCBcCi0gICAgICAgICAgIjAuMDA0MzI1LCAwLjAwNDM1OSwgMC4wMDQzNjQsIDAuMDA0MzY2LCAwLjAwNDM2NywgMC4wMDQzNjgsIDAuMDA0MzY4IiwgXAotICAgICAgICAgICIwLjAwNDMxNiwgMC4wMDQzNTQsIDAuMDA0MzYsIDAuMDA0MzY0LCAwLjAwNDM2NywgMC4wMDQzNjksIDAuMDA0MzY0IiwgXAotICAgICAgICAgICIwLjAwNDMxLCAwLjAwNDM1LCAwLjAwNDM1OCwgMC4wMDQzNjIsIDAuMDA0MzY0LCAwLjAwNDM2NiwgMC4wMDQzNjciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDA4MzYsIDAuMDAwODM2LCAwLjAwMDgzNiwgMC4wMDA4MzYsIDAuMDAwODM2LCAwLjAwMDgzNSwgMC4wMDA4MzUiLCBcCi0gICAgICAgICAgIjAuMDAwODM5LCAwLjAwMDg0OSwgMC4wMDA4NTEsIDAuMDAwODUxLCAwLjAwMDg1MSwgMC4wMDA4NTEsIDAuMDAwODUxIiwgXAotICAgICAgICAgICIwLjAwMDgzMSwgMC4wMDA4NTQsIDAuMDAwODU3LCAwLjAwMDg1OCwgMC4wMDA4NTgsIDAuMDAwODU5LCAwLjAwMDg1OCIsIFwKLSAgICAgICAgICAiMC4wMDA4MTksIDAuMDAwODUzLCAwLjAwMDg1NywgMC4wMDA4NTksIDAuMDAwODYsIDAuMDAwODYxLCAwLjAwMDg2MSIsIFwKLSAgICAgICAgICAiMC4wMDA4MSwgMC4wMDA4NSwgMC4wMDA4NTUsIDAuMDAwODU4LCAwLjAwMDg1OSwgMC4wMDA4NiwgMC4wMDA4NiIsIFwKLSAgICAgICAgICAiMC4wMDA3OTYsIDAuMDAwODQ3LCAwLjAwMDg1NCwgMC4wMDA4NTgsIDAuMDAwODU5LCAwLjAwMDg2LCAwLjAwMDg2IiwgXAotICAgICAgICAgICIwLjAwMDc4NiwgMC4wMDA4NDQsIDAuMDAwODUyLCAwLjAwMDg1NiwgMC4wMDA4NTksIDAuMDAwODYsIDAuMDAwODYxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzNDc1LCAwLjAwMzQ3OSwgMC4wMDM0OCwgMC4wMDM0NzksIDAuMDAzNDgsIDAuMDAzNDc4LCAwLjAwMzQ4IiwgXAotICAgICAgICAgICIwLjAwMzQ1MywgMC4wMDM0NzQsIDAuMDAzNDc2LCAwLjAwMzQ3OCwgMC4wMDM0NzgsIDAuMDAzNDc4LCAwLjAwMzQ3OSIsIFwKLSAgICAgICAgICAiMC4wMDM0MywgMC4wMDM0NjgsIDAuMDAzNDcxLCAwLjAwMzQ3NCwgMC4wMDM0NzYsIDAuMDAzNDc4LCAwLjAwMzQ3NyIsIFwKLSAgICAgICAgICAiMC4wMDM0MTYsIDAuMDAzNDYyLCAwLjAwMzQ2OCwgMC4wMDM0NzIsIDAuMDAzNDczLCAwLjAwMzQ3NiwgMC4wMDM0NzUiLCBcCi0gICAgICAgICAgIjAuMDAzNDA2LCAwLjAwMzQ1NywgMC4wMDM0NjUsIDAuMDAzNDcsIDAuMDAzNDcyLCAwLjAwMzQ3MywgMC4wMDM0NzMiLCBcCi0gICAgICAgICAgIjAuMDAzMzk0LCAwLjAwMzQ0OSwgMC4wMDM0NiwgMC4wMDM0NjYsIDAuMDAzNDY4LCAwLjAwMzQ3NSwgMC4wMDM0NzEiLCBcCi0gICAgICAgICAgIjAuMDAzMzg3LCAwLjAwMzQ0NCwgMC4wMDM0NTYsIDAuMDAzNDYyLCAwLjAwMzQ2NiwgMC4wMDM0NjgsIDAuMDAzNDciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDAxNDMsIDAuMDAwMTUsIDAuMDAwMTUxLCAwLjAwMDE1MSwgMC4wMDAxNTEsIDAuMDAwMTUxLCAwLjAwMDE1MSIsIFwKLSAgICAgICAgICAiMC4wMDAxNTgsIDAuMDAwMTg3LCAwLjAwMDE5LCAwLjAwMDE5MiwgMC4wMDAxOTMsIDAuMDAwMTkzLCAwLjAwMDE5NCIsIFwKLSAgICAgICAgICAiMC4wMDAxNDksIDAuMDAwMTk5LCAwLjAwMDIwNSwgMC4wMDAyMDgsIDAuMDAwMjEsIDAuMDAwMjExLCAwLjAwMDIxMSIsIFwKLSAgICAgICAgICAiMC4wMDAxMzcsIDAuMDAwMTk5LCAwLjAwMDIwNywgMC4wMDAyMTEsIDAuMDAwMjE0LCAwLjAwMDIxOCwgMC4wMDAyMTkiLCBcCi0gICAgICAgICAgIjAuMDAwMTIxLCAwLjAwMDE5NiwgMC4wMDAyMDYsIDAuMDAwMjExLCAwLjAwMDIxNCwgMC4wMDAyMTYsIDAuMDAwMjE3IiwgXAotICAgICAgICAgICIwLjAwMDEwNywgMC4wMDAxOTMsIDAuMDAwMjA1LCAwLjAwMDIxMiwgMC4wMDAyMTYsIDAuMDAwMjE4LCAwLjAwMDIxOSIsIFwKLSAgICAgICAgICAiMC4wMDAwOTEsIDAuMDAwMTg3LCAwLjAwMDIwMiwgMC4wMDAyMTEsIDAuMDAwMjE0LCAwLjAwMDIxOCwgMC4wMDAyMiIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IE5PUjRCWDQgKgotICogLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoTk9SNEJYNCkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjM0OTY4MzsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQU4pICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDc4MTAyMzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA3ODA1NTc7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNzgxMDIzOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjgzNywgMC4wMDI4MSwgMC4wMDI3OTIsIDAuMDAyNzgsIDAuMDAyNzc1LCAwLjAwMjc3NywgMC4wMDI3NzQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDI2NjgsIDAuMDAyNjQ5LCAwLjAwMjYyOCwgMC4wMDI2MTYsIDAuMDAyNjA0LCAwLjAwMjU5MywgMC4wMDI1ODciKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMjgwMTI3OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMjc3MDkzOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMjgwMTI3OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDUwNSwgMC4wMDA1MDUsIDAuMDAwNTA1LCAwLjAwMDUwNSwgMC4wMDA1MDUsIDAuMDAwNTA1LCAwLjAwMDUwNSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDkzNCwgMC4wMDA5MzMsIDAuMDAwOTM1LCAwLjAwMDkzMywgMC4wMDA5MzIsIDAuMDAwOTMyLCAwLjAwMDkzMyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQykgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAyODI0Mzc7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAyNzk3ODE7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAyODI0Mzc7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNDY1LCAwLjAwMDQ2NiwgMC4wMDA0NjYsIDAuMDAwNDY2LCAwLjAwMDQ2NiwgMC4wMDA0NjYsIDAuMDAwNDY2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxOTM1LCAwLjAwMTkzNiwgMC4wMDE5MzIsIDAuMDAxOTMyLCAwLjAwMTkzMSwgMC4wMDE5MzEsIDAuMDAxOTMyIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihEKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDI4ODQ4NjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDI4ODQ3OTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDI4ODQ4NjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAzMDYsIDAuMDAwMzA2LCAwLjAwMDMwNiwgMC4wMDAzMDYsIDAuMDAwMzA2LCAwLjAwMDMwNiwgMC4wMDAzMDYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDI1MjMsIDAuMDAyNTIzLCAwLjAwMjUyMiwgMC4wMDI1MjMsIDAuMDAyNTIxLCAwLjAwMjUyMywgMC4wMDI1MjMiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4xMzk4NzU7Ci0gICAgZnVuY3Rpb24gOiAiKCEoKCgoIUFOKStCKStDKStEKSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkFOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIyNTAzLCAwLjc3NDA2NCwgMS4zMjIzMSwgMS43MTQ1MiwgMi4zNDExMSwgMi44ODk3NywgMy42NzE5OSIsIFwKLSAgICAgICAgICAiMC4yMzY0LCAwLjc4NTQ2MSwgMS4zMzM2OSwgMS43MjU4NywgMi4zNTMyNiwgMi45MDExNywgMy42ODM2OSIsIFwKLSAgICAgICAgICAiMC4yNTE0MjksIDAuODAwNjg3LCAxLjM0OTEsIDEuNzQwMzgsIDIuMzY4MjksIDIuOTE2MzIsIDMuNjk4NzkiLCBcCi0gICAgICAgICAgIjAuMjY2MzA4LCAwLjgxNTg1MiwgMS4zNjQzNywgMS43NTYyMiwgMi4zODI2NCwgMi45MzEwNiwgMy43MTM4NyIsIFwKLSAgICAgICAgICAiMC4yODExMzEsIDAuODMwNzQyLCAxLjM3OTAzLCAxLjc3MTQ3LCAyLjM5NzI3LCAyLjk0NTc1LCAzLjcyODc0IiwgXAotICAgICAgICAgICIwLjMwMzg2OSwgMC44NTMyNTQsIDEuNDAyMjEsIDEuNzk0MDIsIDIuNDIwNTMsIDIuOTY4OCwgMy43NTE2OCIsIFwKLSAgICAgICAgICAiMC4zMjIzNzQsIDAuODcxOTM4LCAxLjQyMDM4LCAxLjgxMjQ2LCAyLjQzOTY2LCAyLjk4NzcyLCAzLjc3MDQ1Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjUyMDQ5LCAxLjI5OTY0LCAyLjM0OTk5LCAzLjA5NjA1LCA0LjI4Njk3LCA1LjM0MzU5LCA2LjgzNTQ5IiwgXAotICAgICAgICAgICIwLjI1MTk5NiwgMS4yOTk1LCAyLjM0OTgzLCAzLjA5NTg4LCA0LjI4ODc2LCA1LjM0MzU1LCA2LjgzNTc0IiwgXAotICAgICAgICAgICIwLjI1MjAzMywgMS4yOTk3LCAyLjM0NzEyLCAzLjA5ODg3LCA0LjI4ODQ3LCA1LjMzNDE2LCA2LjgyNzM1IiwgXAotICAgICAgICAgICIwLjI1MjA0LCAxLjI5OTk1LCAyLjM0NzYxLCAzLjA5NjE2LCA0LjMwMTE3LCA1LjMzNTI3LCA2LjgzMDAxIiwgXAotICAgICAgICAgICIwLjI1MjA5NSwgMS4yOTk5OCwgMi4zNDcyNywgMy4wOTY2MiwgNC4yOTgwMiwgNS4zMzcyMSwgNi44MzIzIiwgXAotICAgICAgICAgICIwLjI1MjEwMSwgMS4yOTk0NSwgMi4zNDc3MiwgMy4wOTYyLCA0LjMwMTM5LCA1LjMzNTM3LCA2LjgyOTg2IiwgXAotICAgICAgICAgICIwLjI1MjA0NCwgMS4yOTk3NiwgMi4zNDcxMiwgMy4wOTYsIDQuMjg4NywgNS4zMzQyLCA2LjgyNjY1Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk0NiwgMC4yNDY0ODgsIDAuMzkzNTgxLCAwLjQ5ODE2LCAwLjY2NTIxLCAwLjgxMTE0MSwgMS4wMTk0MiIsIFwKLSAgICAgICAgICAiMC4xMDYwMTksIDAuMjU3OTIsIDAuNDA0OTgsIDAuNTA5NTYzLCAwLjY3NjU5NSwgMC44MjI1MjgsIDEuMDMwODMiLCBcCi0gICAgICAgICAgIjAuMTIxMDcxLCAwLjI3Mjk4LCAwLjQyMDAzNywgMC41MjQ2NDUsIDAuNjkxNjE3LCAwLjgzNzY2MiwgMS4wNDYwNSIsIFwKLSAgICAgICAgICAiMC4xMzU2NTUsIDAuMjg3NTczLCAwLjQzNDY4LCAwLjUzOTIyNiwgMC43MDYyNTMsIDAuODUyMTYxLCAxLjA2MDcxIiwgXAotICAgICAgICAgICIwLjE1MDIyNCwgMC4zMDIxMTEsIDAuNDQ5MjA3LCAwLjU1Mzc5LCAwLjcyMDg3LCAwLjg2Njc5NiwgMS4wNzUxNSIsIFwKLSAgICAgICAgICAiMC4xNzE2MjgsIDAuMzIzNDg4LCAwLjQ3MDU2LCAwLjU3NTE3MSwgMC43NDIxOTksIDAuODg4MTg1LCAxLjA5NjUyIiwgXAotICAgICAgICAgICIwLjE4OTEyMiwgMC4zNDA5MSwgMC40ODgwMDIsIDAuNTkyNjI1LCAwLjc1OTU2OCwgMC45MDU2MjEsIDEuMTE0MDEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODc3NTEsIDAuMzc2MzMsIDAuNjY1ODU4LCAwLjg3MjQyMiwgMS4yMDM1OSwgMS40OTMzNywgMS45MDc0IiwgXAotICAgICAgICAgICIwLjA4Nzc5OSwgMC4zNzY0MTcsIDAuNjY1ODg1LCAwLjg3MjQzMiwgMS4yMDM0LCAxLjQ5MzM0LCAxLjkwNzQyIiwgXAotICAgICAgICAgICIwLjA4Nzc2NiwgMC4zNzYxNzgsIDAuNjY1OTIsIDAuODcyMzQ0LCAxLjIwMzkzLCAxLjQ5MzI1LCAxLjkwNjczIiwgXAotICAgICAgICAgICIwLjA4Nzg0LCAwLjM3NjI5OCwgMC42NjU3LCAwLjg3Mjc1NywgMS4yMDM5LCAxLjQ5MzU0LCAxLjkwNzM3IiwgXAotICAgICAgICAgICIwLjA4NzgyOSwgMC4zNzYzMSwgMC42NjU4NSwgMC44NzI1NDUsIDEuMjAzNjQsIDEuNDkyOTYsIDEuOTA2NzciLCBcCi0gICAgICAgICAgIjAuMDg4NDczLCAwLjM3NjM2NiwgMC42NjU3OTksIDAuODcyNDgxLCAxLjIwMzM4LCAxLjQ5MzI3LCAxLjkwNjY2IiwgXAotICAgICAgICAgICIwLjA4OTM0MiwgMC4zNzYzNDUsIDAuNjY1ODQsIDAuODcyNzE4LCAxLjIwMzM0LCAxLjQ5MzI5LCAxLjkwNjU3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTY3OTI5LCAwLjcxNjgxMSwgMS4yNjUwOCwgMS42NTc0MywgMi4yODMyNywgMi44MzE2MiwgMy42MTQ1OSIsIFwKLSAgICAgICAgICAiMC4xNzgyMDIsIDAuNzI3MjEyLCAxLjI3NjIxLCAxLjY2NzI4LCAyLjI5NDcyLCAyLjg0MjY3LCAzLjYyNTI5IiwgXAotICAgICAgICAgICIwLjE5MDY1OCwgMC43NDAzMDgsIDEuMjg4NjcsIDEuNjgwNDYsIDIuMzA3ODksIDIuODU1NzgsIDMuNjM4MzUiLCBcCi0gICAgICAgICAgIjAuMjAyMjE1LCAwLjc1MTk1MSwgMS4zMDAxOSwgMS42OTI2NSwgMi4zMTg5OSwgMi44NjcxLCAzLjY1MDEiLCBcCi0gICAgICAgICAgIjAuMjEzNzI0LCAwLjc2MzMxNywgMS4zMTI0MywgMS43MDM1NywgMi4zMzA5OSwgMi44Nzg2NCwgMy42NjE2OSIsIFwKLSAgICAgICAgICAiMC4yMzExMzcsIDAuNzgwODU0LCAxLjMyOTM2LCAxLjcyMTg3LCAyLjM0ODI5LCAyLjg5NjUxLCAzLjY3OTQyIiwgXAotICAgICAgICAgICIwLjI0NTkyNCwgMC43OTU3NjEsIDEuMzQ0NjEsIDEuNzM2OTQsIDIuMzYyOSwgMi45MTE0MSwgMy42OTQwNCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI1MTk0MSwgMS4yOTk5MywgMi4zNDczOCwgMy4wOTY2NSwgNC4yOTgxLCA1LjMzNzE4LCA2LjgzMjE2IiwgXAotICAgICAgICAgICIwLjI1MjQ5NSwgMS4yOTk3OCwgMi4zNDc5OCwgMy4wOTU0MiwgNC4zMDIyOCwgNS4zNDI4OCwgNi44MzU2MSIsIFwKLSAgICAgICAgICAiMC4yNTE5OTQsIDEuMjk5OTksIDIuMzQ2MTIsIDMuMDk1ODEsIDQuMjg4ODMsIDUuMzQzMzUsIDYuODM1NzYiLCBcCi0gICAgICAgICAgIjAuMjUyMzcyLCAxLjI5OTg4LCAyLjM0NzIzLCAzLjA5NjQzLCA0LjI4OTI2LCA1LjMzNzI2LCA2LjgzMTY0IiwgXAotICAgICAgICAgICIwLjI1MjQ3NiwgMS4zMDAzNCwgMi4zNDc5LCAzLjA5NTI3LCA0LjMwMjExLCA1LjMzODg3LCA2LjgzNTYiLCBcCi0gICAgICAgICAgIjAuMjUyOTI4LCAxLjI5OTUyLCAyLjM0NzIsIDMuMDk2NDQsIDQuMzAxNDUsIDUuMzM1NTQsIDYuODMwMDMiLCBcCi0gICAgICAgICAgIjAuMjU0OTk1LCAxLjI5OTc3LCAyLjM0NzYsIDMuMDk2NzIsIDQuMjkyNTksIDUuMzM1NTIsIDYuODMxMDciKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDY3MTMsIDAuMTk1Mzk1LCAwLjM0MTY4MSwgMC40NDU5NTgsIDAuNjEyNywgMC43NTg2MjMsIDAuOTY2NzExIiwgXAotICAgICAgICAgICIwLjA1ODMyNSwgMC4yMDcwMTcsIDAuMzUzMzQ0LCAwLjQ1NzU4OSwgMC42MjQzNjYsIDAuNzcwMjE2LCAwLjk3ODM2NSIsIFwKLSAgICAgICAgICAiMC4wNzMzNjgsIDAuMjIxNTUxLCAwLjM2NjUxOSwgMC40NzA4MjMsIDAuNjM3NTAxLCAwLjc4MzM0LCAwLjk5MTU5NCIsIFwKLSAgICAgICAgICAiMC4wODg0MjcsIDAuMjM2MzAzLCAwLjM4MjU3OSwgMC40ODY4ODQsIDAuNjUzNjk5LCAwLjc5OTQ5NSwgMS4wMDc4OSIsIFwKLSAgICAgICAgICAiMC4xMDM3ODUsIDAuMjUxMTMsIDAuMzk4MTY1LCAwLjUwMjA1LCAwLjY2ODc2NiwgMC44MTQ2ODEsIDEuMDIyODQiLCBcCi0gICAgICAgICAgIjAuMTI3MDk3LCAwLjI3NTUzOSwgMC40MjA3MTcsIDAuNTI0OTY2LCAwLjY5MTYyLCAwLjgzNzQ5NCwgMS4wNDU2NyIsIFwKLSAgICAgICAgICAiMC4xNDYxODUsIDAuMjk2NTU2LCAwLjQ0MTQ5LCAwLjU0NTU2MSwgMC43MTIyNDYsIDAuODU3OTgxLCAxLjA2NjI3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc3MTM4LCAwLjM2Njg2NiwgMC42NTY3MjUsIDAuODYzNzMzLCAxLjE5NDU5LCAxLjQ4NDYxLCAxLjg5Nzg2IiwgXAotICAgICAgICAgICIwLjA3NjU2OCwgMC4zNjY4NzgsIDAuNjU2NzM1LCAwLjg2MzM2LCAxLjE5NDUzLCAxLjQ4NDE3LCAxLjg5Nzg0IiwgXAotICAgICAgICAgICIwLjA3ODU2NiwgMC4zNjY4MDksIDAuNjU2MzksIDAuODYzNTE4LCAxLjE5NDMyLCAxLjQ4Mzg2LCAxLjg5NzU3IiwgXAotICAgICAgICAgICIwLjA4MzA3MSwgMC4zNjY3ODcsIDAuNjU2NzAzLCAwLjg2MzUwMSwgMS4xOTQ2MSwgMS40ODQ1MywgMS44OTgiLCBcCi0gICAgICAgICAgIjAuMDg4OTg2LCAwLjM2NjgxOSwgMC42NTY1NDgsIDAuODYzNTczLCAxLjE5NDUsIDEuNDg0NjIsIDEuODk4MjciLCBcCi0gICAgICAgICAgIjAuMTAwODA3LCAwLjM2OTA1NSwgMC42NTY1OTMsIDAuODYzNzQzLCAxLjE5NDg4LCAxLjQ4NDU1LCAxLjg5NzkiLCBcCi0gICAgICAgICAgIjAuMTEyNjM3LCAwLjM3Mjk1OCwgMC42NTY4NDcsIDAuODYzNjA5LCAxLjE5NDksIDEuNDg0NTUsIDEuODk4MzEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNDk1NjYsIDAuNjk4MiwgMS4yNDY4MiwgMS42Mzg2OCwgMi4yNjUyMiwgMi44MTM0NCwgMy41OTYzIiwgXAotICAgICAgICAgICIwLjE1OTE3NiwgMC43MDg0NTQsIDEuMjU2ODIsIDEuNjQ4NjcsIDIuMjc1MzEsIDIuODIzMjgsIDMuNjA2MjYiLCBcCi0gICAgICAgICAgIjAuMTcxMjcxLCAwLjcyMDU5OSwgMS4yNjkxNSwgMS42NjE1NiwgMi4yODc4OSwgMi44MzU4MSwgMy42MTg3OCIsIFwKLSAgICAgICAgICAiMC4xODI2MjksIDAuNzMyNTQ4LCAxLjI4MTExLCAxLjY3MjMxLCAyLjI5OTc5LCAyLjg0Nzc3LCAzLjYzMDQxIiwgXAotICAgICAgICAgICIwLjE5MzkyLCAwLjc0Mzc5NCwgMS4yOTIsIDEuNjg0NDgsIDIuMzEwOTYsIDIuODU4OTUsIDMuNjQxOTYiLCBcCi0gICAgICAgICAgIjAuMjEyMTMyLCAwLjc2MTk1NCwgMS4zMTA0OSwgMS43MDMwMSwgMi4zMjk4LCAyLjg3NzQ0LCAzLjY2MDQ1IiwgXAotICAgICAgICAgICIwLjIyNzgxNiwgMC43Nzc4NDcsIDEuMzI2NDksIDEuNzE4NzQsIDIuMzQ1MjEsIDIuODkzODksIDMuNjc2MzQiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yNTE4MzIsIDEuMjk5NiwgMi4zNDc1MiwgMy4wOTYxLCA0LjMwMTQxLCA1LjMzNTQsIDYuODI5OTUiLCBcCi0gICAgICAgICAgIjAuMjUyNDM2LCAxLjI5OTk3LCAyLjM0NzQ1LCAzLjA5Mjk5LCA0LjMwMTUxLCA1LjMzOTA5LCA2LjgzMTUxIiwgXAotICAgICAgICAgICIwLjI1MjA0MiwgMS4yOTk2MywgMi4zNDczMSwgMy4wOTY2MiwgNC4zMDE1OSwgNS4zMzcyNywgNi44MzE5OCIsIFwKLSAgICAgICAgICAiMC4yNTIzMDYsIDEuMjk4MjQsIDIuMzQ3ODEsIDMuMDk5MTcsIDQuMzAyMjUsIDUuMzQyODgsIDYuODM1NTkiLCBcCi0gICAgICAgICAgIjAuMjUyMDM4LCAxLjMsIDIuMzQ3MjcsIDMuMDk2NDQsIDQuMjg5MDcsIDUuMzM3MzQsIDYuODMxNTQiLCBcCi0gICAgICAgICAgIjAuMjU0ODI2LCAxLjI5OTAxLCAyLjM0NTkyLCAzLjA5NjU2LCA0LjMwMjMxLCA1LjMzNzM4LCA2LjgzMDgzIiwgXAotICAgICAgICAgICIwLjI1NzkzNCwgMS4yOTk4MSwgMi4zNDU1NSwgMy4wOTYzMywgNC4yOTA3MSwgNS4zMzM2NCwgNi44MzU3MiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0MzA1LCAwLjE4OTgwNywgMC4zMzU4MDIsIDAuNDM5OTQyLCAwLjYwNjU0NywgMC43NTI0NzcsIDAuOTYwNjk3IiwgXAotICAgICAgICAgICIwLjA1NDg3NywgMC4yMDEyOTQsIDAuMzQ3Mjg2LCAwLjQ1MTM5OCwgMC42MTc5NDcsIDAuNzYzODEsIDAuOTcxODgyIiwgXAotICAgICAgICAgICIwLjA2OTgxLCAwLjIxNjI0NiwgMC4zNjEwNTQsIDAuNDY1MjQxLCAwLjYzMzU3LCAwLjc3OTQwMywgMC45ODc1MjQiLCBcCi0gICAgICAgICAgIjAuMDg0OTAyLCAwLjIzMTY1NCwgMC4zNzcyOTQsIDAuNDgxNDU0LCAwLjY0ODA1NiwgMC43OTM3OCwgMS4wMDE5MiIsIFwKLSAgICAgICAgICAiMC4wOTk5NjgsIDAuMjQ2NTIxLCAwLjM5MjU2MywgMC40OTY3ODMsIDAuNjYzNTA4LCAwLjgwOTI0MywgMS4wMTY5MiIsIFwKLSAgICAgICAgICAiMC4xMjI1NTQsIDAuMjcwMzMzLCAwLjQxNTE3NiwgMC41MTkyNTUsIDAuNjg1ODczLCAwLjgzMTU1NiwgMS4wMzk3OCIsIFwKLSAgICAgICAgICAiMC4xNDA1ODQsIDAuMjkxMzYzLCAwLjQzNTk0NCwgMC41Mzk4NDMsIDAuNzA2NDI1LCAwLjg1MjE0MywgMS4wNjAyNiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3MDU2NiwgMC4zNjAzMzUsIDAuNjUwMzQ0LCAwLjg1NzI4MSwgMS4xODgzMywgMS40NzgxMywgMS44OTIzNyIsIFwKLSAgICAgICAgICAiMC4wNzA0ODYsIDAuMzYwNDc0LCAwLjY1MDM1NiwgMC44NTc1NDMsIDEuMTg4MjYsIDEuNDc3NiwgMS44OTE1OCIsIFwKLSAgICAgICAgICAiMC4wNzI5NzEsIDAuMzYwNDU4LCAwLjY1MDMzNSwgMC44NTY5NTcsIDEuMTg4MjksIDEuNDc4MzcsIDEuODkxNyIsIFwKLSAgICAgICAgICAiMC4wNzc5NTgsIDAuMzYwNDU1LCAwLjY1MDE4MywgMC44NTczNDQsIDEuMTg4NjQsIDEuNDc4MzcsIDEuODkxODEiLCBcCi0gICAgICAgICAgIjAuMDg0NjA2LCAwLjM2MDU5MywgMC42NTA0NzgsIDAuODU3MjU3LCAxLjE4ODM4LCAxLjQ3ODQyLCAxLjg5MTczIiwgXAotICAgICAgICAgICIwLjA5NzI1LCAwLjM2Mjg5NSwgMC42NTA0NzIsIDAuODU3NDIyLCAxLjE4ODM5LCAxLjQ3Nzk2LCAxLjg5MTgzIiwgXAotICAgICAgICAgICIwLjEwOTg0OSwgMC4zNjcwMDQsIDAuNjUwNiwgMC44NTcxODQsIDEuMTg4MjgsIDEuNDc4MDIsIDEuODkxNzMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTgxNTksIDAuNjY3LCAxLjIxNTI5LCAxLjYwNzQyLCAyLjIzMzk5LCAyLjc4MjM4LCAzLjU2NTI0IiwgXAotICAgICAgICAgICIwLjEyNjg2OCwgMC42NzYyNywgMS4yMjQ3MSwgMS42MTY3NywgMi4yNDQyMiwgMi43OTE5LCAzLjU3NDUiLCBcCi0gICAgICAgICAgIjAuMTM3ODcxLCAwLjY4NzkwNiwgMS4yMzY4OCwgMS42MjgwNSwgMi4yNTUxMiwgMi44MDMwNSwgMy41ODYwOSIsIFwKLSAgICAgICAgICAiMC4xNDk0NCwgMC42OTk3NTYsIDEuMjQ4NDIsIDEuNjQwMzYsIDIuMjY3ODMsIDIuODE1MjQsIDMuNTk4MTMiLCBcCi0gICAgICAgICAgIjAuMTYwODQxLCAwLjcxMTAxLCAxLjI2MDQ2LCAxLjY1MTQxLCAyLjI3OTMzLCAyLjgyNjY0LCAzLjYwOTY0IiwgXAotICAgICAgICAgICIwLjE3OTk0MiwgMC43Mjk1MDIsIDEuMjc4MTcsIDEuNjcwNzQsIDIuMjk3NzgsIDIuODQ1NTgsIDMuNjI4MjYiLCBcCi0gICAgICAgICAgIjAuMTk2NTQzLCAwLjc0NTU4MiwgMS4yOTQ5MSwgMS42ODYyOSwgMi4zMTM4MywgMi44NjEzNiwgMy42NDQ0NCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI0OTk5OCwgMS4yOTksIDIuMzQ3MTgsIDMuMDk2MSwgNC4yOTA4NiwgNS4zMzQzNywgNi44Mjc5MyIsIFwKLSAgICAgICAgICAiMC4yNDg4NiwgMS4zMDAzLCAyLjM0ODI2LCAzLjA5NTkyLCA0LjI4ODI5LCA1LjM0MzIxLCA2LjgzNTY3IiwgXAotICAgICAgICAgICIwLjI0NzE3LCAxLjI5OTc4LCAyLjM0Nzk1LCAzLjA5NTQ3LCA0LjMwMTU1LCA1LjMzOTg1LCA2LjgzMTYzIiwgXAotICAgICAgICAgICIwLjI0ODA5NSwgMS4yOTk4MSwgMi4zNDYxOCwgMy4wOTYwMSwgNC4yODgyOSwgNS4zNDI5NSwgNi44MzU2NyIsIFwKLSAgICAgICAgICAiMC4yNTA4ODEsIDEuMjk5MzksIDIuMzQ0OTUsIDMuMDk2OTMsIDQuMzAyOTUsIDUuMzM2NTQsIDYuODM1NjYiLCBcCi0gICAgICAgICAgIjAuMjU3OTk4LCAxLjI5OTY1LCAyLjM0NzE3LCAzLjA5NjU0LCA0LjI4ODc2LCA1LjMzMzY4LCA2LjgzNTY2IiwgXAotICAgICAgICAgICIwLjI2NjE2OCwgMS4yOTkzNywgMi4zNDc4NSwgMy4wOTU1MiwgNC4zMDI0LCA1LjM0MTM4LCA2LjgzMTMiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzcyODYsIDAuMTgzMSwgMC4zMjg4NSwgMC40MzI5NTYsIDAuNTk5NzQ2LCAwLjc0NTI5NSwgMC45NTM0NTMiLCBcCi0gICAgICAgICAgIjAuMDQ5MjExLCAwLjE5NDgzOSwgMC4zNDA1NzksIDAuNDQ0NzAzLCAwLjYxMTI2OSwgMC43NTcxMDksIDAuOTY1NTYyIiwgXAotICAgICAgICAgICIwLjA2NDE0NCwgMC4yMDk4MDQsIDAuMzU1NjE3LCAwLjQ1OTgyNSwgMC42MjU2NjUsIDAuNzY5MzAyLCAwLjk3NzYxNCIsIFwKLSAgICAgICAgICAiMC4wNzkyNDEsIDAuMjI0NzE4LCAwLjM3MDMxLCAwLjQ3MjY4OCwgMC42MzkyMTksIDAuNzg0OTYxLCAwLjk5MzIxMyIsIFwKLSAgICAgICAgICAiMC4wOTM5MjQsIDAuMjM5NDg0LCAwLjM4NTA1NSwgMC40ODkzMDEsIDAuNjU1NzcxLCAwLjgwMTQ5LCAxLjAwOTY3IiwgXAotICAgICAgICAgICIwLjExNTIzOSwgMC4yNjM5NjEsIDAuNDA4NzA5LCAwLjUxMjY2MywgMC42NzkyMTQsIDAuODI1MDMyLCAxLjAzMzE5IiwgXAotICAgICAgICAgICIwLjEzMTgyMSwgMC4yODUwMzUsIDAuNDI5NTk1LCAwLjUzMzQ1OCwgMC42OTk4NTgsIDAuODQ1NzA5LCAxLjA1NTI2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDYzODYxLCAwLjM1NDk2OSwgMC42NDYxMTQsIDAuODUzNzIxLCAxLjE4MzQ2LCAxLjQ3MzE3LCAxLjg5MTc5IiwgXAotICAgICAgICAgICIwLjA2MzkwOSwgMC4zNTM5OTYsIDAuNjQ0NzI4LCAwLjg1MTM0NSwgMS4xODI4MSwgMS40NzI5MSwgMS44ODgxNCIsIFwKLSAgICAgICAgICAiMC4wNjczNzksIDAuMzU0OTc4LCAwLjY0NDQ4LCAwLjg1MjI3OSwgMS4xODQ3NSwgMS40NzI0MywgMS44ODkxNCIsIFwKLSAgICAgICAgICAiMC4wNzMxODEsIDAuMzU0OTksIDAuNjQ1NzIsIDAuODUxNjE2LCAxLjE4MzExLCAxLjQ3MjM2LCAxLjg5MzY5IiwgXAotICAgICAgICAgICIwLjA4MDU5MSwgMC4zNTUyNDUsIDAuNjQ0MTUyLCAwLjg1MTIxMSwgMS4xODQyNCwgMS40NzIyNywgMS44ODY5NiIsIFwKLSAgICAgICAgICAiMC4wOTQzODgsIDAuMzU3OTEyLCAwLjY0NjA4NCwgMC44NTEzNTIsIDEuMTgyODIsIDEuNDczMDksIDEuODkzMDUiLCBcCi0gICAgICAgICAgIjAuMTA4MTc5LCAwLjM2MjI3NywgMC42NDQxMTgsIDAuODUwNzc2LCAxLjE4MjUsIDEuNDc1MTMsIDEuODkwNTIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTE2ODcsIDAuMDExNzI0LCAwLjAxMTcyNywgMC4wMTE3MzIsIDAuMDExNzMsIDAuMDExNzM4LCAwLjAxMTcyOSIsIFwKLSAgICAgICAgICAiMC4wMTE2NTIsIDAuMDExNjk1LCAwLjAxMTcsIDAuMDExNzAyLCAwLjAxMTcwNiwgMC4wMTE3MDMsIDAuMDExNzA0IiwgXAotICAgICAgICAgICIwLjAxMTYyNCwgMC4wMTE2NzUsIDAuMDExNjgyLCAwLjAxMTY4MiwgMC4wMTE2ODQsIDAuMDExNjg3LCAwLjAxMTY4MiIsIFwKLSAgICAgICAgICAiMC4wMTE2LCAwLjAxMTY1NywgMC4wMTE2NjgsIDAuMDExNjcxLCAwLjAxMTY2NiwgMC4wMTE2NzUsIDAuMDExNjc1IiwgXAotICAgICAgICAgICIwLjAxMTU4NSwgMC4wMTE2NDcsIDAuMDExNjU3LCAwLjAxMTY2MiwgMC4wMTE2NjIsIDAuMDExNjY1LCAwLjAxMTY2NyIsIFwKLSAgICAgICAgICAiMC4wMTE1NzMsIDAuMDExNjQsIDAuMDExNjU0LCAwLjAxMTY1NiwgMC4wMTE2NTcsIDAuMDExNjYxLCAwLjAxMTY2NiIsIFwKLSAgICAgICAgICAiMC4wMTE1NzIsIDAuMDExNjQsIDAuMDExNjU1LCAwLjAxMTY1OSwgMC4wMTE2NjMsIDAuMDExNjcsIDAuMDExNjU1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDgxOTUsIDAuMDA4MiwgMC4wMDgxOTgsIDAuMDA4MTk1LCAwLjAwODE5MywgMC4wMDgxOTIsIDAuMDA4MTkzIiwgXAotICAgICAgICAgICIwLjAwODE3MiwgMC4wMDgxNzUsIDAuMDA4MTc0LCAwLjAwODE3MiwgMC4wMDgxNzQsIDAuMDA4MTcyLCAwLjAwODE3IiwgXAotICAgICAgICAgICIwLjAwODE1NCwgMC4wMDgxNTksIDAuMDA4MTU4LCAwLjAwODE1NSwgMC4wMDgxNTQsIDAuMDA4MTU1LCAwLjAwODE1IiwgXAotICAgICAgICAgICIwLjAwODEyNSwgMC4wMDgxMzIsIDAuMDA4MTMyLCAwLjAwODEzMSwgMC4wMDgxMywgMC4wMDgxMywgMC4wMDgxMjgiLCBcCi0gICAgICAgICAgIjAuMDA4MTEzLCAwLjAwODEyNiwgMC4wMDgxMjcsIDAuMDA4MTI3LCAwLjAwODEyNiwgMC4wMDgxMjcsIDAuMDA4MTIzIiwgXAotICAgICAgICAgICIwLjAwODA5NCwgMC4wMDgxMDksIDAuMDA4MTEsIDAuMDA4MTEsIDAuMDA4MTEsIDAuMDA4MTA4LCAwLjAwODEwOCIsIFwKLSAgICAgICAgICAiMC4wMDgwODYsIDAuMDA4MTAyLCAwLjAwODEwMywgMC4wMDgxMDIsIDAuMDA4MTA0LCAwLjAwODEwMiwgMC4wMDgxMDIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwOTk3MiwgMC4wMDk5ODEsIDAuMDA5OTgyLCAwLjAwOTk4MiwgMC4wMDk5ODMsIDAuMDA5OTgyLCAwLjAwOTk4MSIsIFwKLSAgICAgICAgICAiMC4wMDk5MzIsIDAuMDA5OTcyLCAwLjAwOTk3OCwgMC4wMDk5NzQsIDAuMDA5OTgsIDAuMDA5OTc5LCAwLjAwOTk4NiIsIFwKLSAgICAgICAgICAiMC4wMDk4OTksIDAuMDA5OTYyLCAwLjAwOTk3MSwgMC4wMDk5NzUsIDAuMDA5OTczLCAwLjAwOTk3NiwgMC4wMDk5NzgiLCBcCi0gICAgICAgICAgIjAuMDA5ODc3LCAwLjAwOTk1NCwgMC4wMDk5NjksIDAuMDA5OTcyLCAwLjAwOTk3NSwgMC4wMDk5NzksIDAuMDA5OTc4IiwgXAotICAgICAgICAgICIwLjAwOTg2MSwgMC4wMDk5NDUsIDAuMDA5OTYxLCAwLjAwOTk2NiwgMC4wMDk5NjksIDAuMDA5OTc0LCAwLjAwOTk3NSIsIFwKLSAgICAgICAgICAiMC4wMDk4NDMsIDAuMDA5OTMyLCAwLjAwOTk1NCwgMC4wMDk5NiwgMC4wMDk5NjUsIDAuMDA5OTY4LCAwLjAwOTk3NCIsIFwKLSAgICAgICAgICAiMC4wMDk4MzMsIDAuMDA5OTIyLCAwLjAwOTk0NywgMC4wMDk5NTQsIDAuMDA5OTYyLCAwLjAwOTk2NiwgMC4wMDk5NjgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMywgMC4wMDI5OTksIDAuMDAyOTk4LCAwLjAwMjk5OSwgMC4wMDI5OTcsIDAuMDAyOTk2LCAwLjAwMjk5NSIsIFwKLSAgICAgICAgICAiMC4wMDI5NTYsIDAuMDAyOTY1LCAwLjAwMjk2NSwgMC4wMDI5NjMsIDAuMDAyOTY1LCAwLjAwMjk2NCwgMC4wMDI5NjIiLCBcCi0gICAgICAgICAgIjAuMDAyOTE0LCAwLjAwMjk0MiwgMC4wMDI5NDMsIDAuMDAyOTQzLCAwLjAwMjk0NCwgMC4wMDI5NDQsIDAuMDAyOTQzIiwgXAotICAgICAgICAgICIwLjAwMjg3OSwgMC4wMDI5MjcsIDAuMDAyOTMyLCAwLjAwMjkzNCwgMC4wMDI5MzcsIDAuMDAyOTM1LCAwLjAwMjkzNyIsIFwKLSAgICAgICAgICAiMC4wMDI4NjIsIDAuMDAyOTEsIDAuMDAyOTI4LCAwLjAwMjkzMSwgMC4wMDI5MzIsIDAuMDAyOTMyLCAwLjAwMjkzMSIsIFwKLSAgICAgICAgICAiMC4wMDI4MzksIDAuMDAyOTA3LCAwLjAwMjkxOCwgMC4wMDI5MjIsIDAuMDAyOTI1LCAwLjAwMjkyNSwgMC4wMDI5MjUiLCBcCi0gICAgICAgICAgIjAuMDAyODIyLCAwLjAwMjksIDAuMDAyOTEzLCAwLjAwMjkxOCwgMC4wMDI5MTksIDAuMDAyOTIyLCAwLjAwMjkyNCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA4NDc4LCAwLjAwODQ4OCwgMC4wMDg0ODksIDAuMDA4NDg5LCAwLjAwODQ4OSwgMC4wMDg0ODksIDAuMDA4NDg4IiwgXAotICAgICAgICAgICIwLjAwODQzOCwgMC4wMDg0NzksIDAuMDA4NDg0LCAwLjAwODQ4NSwgMC4wMDg0ODYsIDAuMDA4NDg0LCAwLjAwODQ4NyIsIFwKLSAgICAgICAgICAiMC4wMDg0MDUsIDAuMDA4NDY5LCAwLjAwODQ3OCwgMC4wMDg0OCwgMC4wMDg0ODQsIDAuMDA4NDg0LCAwLjAwODQ4NSIsIFwKLSAgICAgICAgICAiMC4wMDgzODMsIDAuMDA4NDU5LCAwLjAwODQ3MiwgMC4wMDg0NzUsIDAuMDA4NDc5LCAwLjAwODQ4LCAwLjAwODQ4NSIsIFwKLSAgICAgICAgICAiMC4wMDgzNjYsIDAuMDA4NDUsIDAuMDA4NDY2LCAwLjAwODQ3MiwgMC4wMDg0NzcsIDAuMDA4NDgxLCAwLjAwODQ4MSIsIFwKLSAgICAgICAgICAiMC4wMDgzNDksIDAuMDA4NDM4LCAwLjAwODQ1NywgMC4wMDg0NjYsIDAuMDA4NDcxLCAwLjAwODQ3NiwgMC4wMDg0NzciLCBcCi0gICAgICAgICAgIjAuMDA4MzM5LCAwLjAwODQyOCwgMC4wMDg0NTMsIDAuMDA4NDU5LCAwLjAwODQ2OCwgMC4wMDg0NzIsIDAuMDA4NDc2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDE2ODUsIDAuMDAxNjg3LCAwLjAwMTY4OCwgMC4wMDE2ODYsIDAuMDAxNjg3LCAwLjAwMTY4NiwgMC4wMDE2ODYiLCBcCi0gICAgICAgICAgIjAuMDAxNjc5LCAwLjAwMTcxMiwgMC4wMDE3MTUsIDAuMDAxNzE2LCAwLjAwMTcxNiwgMC4wMDE3MTYsIDAuMDAxNzE3IiwgXAotICAgICAgICAgICIwLjAwMTY1MSwgMC4wMDE3MTYsIDAuMDAxNzI2LCAwLjAwMTcyOCwgMC4wMDE3MjgsIDAuMDAxNzI4LCAwLjAwMTcyOSIsIFwKLSAgICAgICAgICAiMC4wMDE2MjEsIDAuMDAxNzA5LCAwLjAwMTcyMywgMC4wMDE3MjcsIDAuMDAxNzMsIDAuMDAxNzMyLCAwLjAwMTczMyIsIFwKLSAgICAgICAgICAiMC4wMDE1OTMsIDAuMDAxNzAzLCAwLjAwMTcyLCAwLjAwMTcyNSwgMC4wMDE3MywgMC4wMDE3MzMsIDAuMDAxNzM1IiwgXAotICAgICAgICAgICIwLjAwMTU2LCAwLjAwMTY5NCwgMC4wMDE3MTcsIDAuMDAxNzI0LCAwLjAwMTczLCAwLjAwMTczMywgMC4wMDE3MzUiLCBcCi0gICAgICAgICAgIjAuMDAxNTM5LCAwLjAwMTY4NCwgMC4wMDE3MTIsIDAuMDAxNzIsIDAuMDAxNzI3LCAwLjAwMTczMSwgMC4wMDE3MzQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJEIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjgwNSwgMC4wMDY4MjEsIDAuMDA2ODIzLCAwLjAwNjgyMywgMC4wMDY4MjMsIDAuMDA2ODI0LCAwLjAwNjgyMyIsIFwKLSAgICAgICAgICAiMC4wMDY3NCwgMC4wMDY4MDYsIDAuMDA2ODE4LCAwLjAwNjgxNiwgMC4wMDY4MTYsIDAuMDA2ODE5LCAwLjAwNjgyIiwgXAotICAgICAgICAgICIwLjAwNjY4NywgMC4wMDY3ODksIDAuMDA2ODA0LCAwLjAwNjgwOCwgMC4wMDY4MTIsIDAuMDA2ODE1LCAwLjAwNjgxNiIsIFwKLSAgICAgICAgICAiMC4wMDY2NTQsIDAuMDA2NzczLCAwLjAwNjc5NCwgMC4wMDY4MDEsIDAuMDA2ODA3LCAwLjAwNjgwOSwgMC4wMDY4MTQiLCBcCi0gICAgICAgICAgIjAuMDA2NjM1LCAwLjAwNjc2LCAwLjAwNjc4NSwgMC4wMDY3OTMsIDAuMDA2ODAxLCAwLjAwNjgwNiwgMC4wMDY4MDkiLCBcCi0gICAgICAgICAgIjAuMDA2NjE3LCAwLjAwNjc0LCAwLjAwNjc3MiwgMC4wMDY3ODMsIDAuMDA2NzkxLCAwLjAwNjgsIDAuMDA2ODA2IiwgXAotICAgICAgICAgICIwLjAwNjYxMSwgMC4wMDY3MjcsIDAuMDA2NzYzLCAwLjAwNjc3NiwgMC4wMDY3ODcsIDAuMDA2NzkyLCAwLjAwNjc5OSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwMjgzLCAwLjAwMDMwNywgMC4wMDAzMDksIDAuMDAwMzEsIDAuMDAwMzExLCAwLjAwMDMxMSwgMC4wMDAzMTEiLCBcCi0gICAgICAgICAgIjAuMDAwMjg0LCAwLjAwMDM3OCwgMC4wMDAzODgsIDAuMDAwMzkyLCAwLjAwMDM5NCwgMC4wMDAzOTYsIDAuMDAwMzk3IiwgXAotICAgICAgICAgICIwLjAwMDI1LCAwLjAwMDM5MSwgMC4wMDA0MDksIDAuMDAwNDE1LCAwLjAwMDQyMywgMC4wMDA0MjksIDAuMDAwNDMyIiwgXAotICAgICAgICAgICIwLjAwMDIxMiwgMC4wMDAzODcsIDAuMDAwNDEzLCAwLjAwMDQyNSwgMC4wMDA0MzIsIDAuMDAwNDM2LCAwLjAwMDQzOSIsIFwKLSAgICAgICAgICAiMC4wMDAxNzksIDAuMDAwMzgxLCAwLjAwMDQxMiwgMC4wMDA0MjIsIDAuMDAwNDMxLCAwLjAwMDQzNiwgMC4wMDA0NCIsIFwKLSAgICAgICAgICAiMC4wMDAxNDEsIDAuMDAwMzY2LCAwLjAwMDQwNiwgMC4wMDA0MTksIDAuMDAwNDMsIDAuMDAwNDM2LCAwLjAwMDQ0MiIsIFwKLSAgICAgICAgICAiMC4wMDAxMTksIDAuMDAwMzU0LCAwLjAwMDM5OSwgMC4wMDA0MTQsIDAuMDAwNDI4LCAwLjAwMDQzNSwgMC4wMDA0MzgiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IE9BMjJYNCAqCi0gKiAtLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKE9BMjJYNCkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjIyOTY5NDsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQTApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDgyMjgxNTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA4MjAxODg7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwODIyODE1OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDMwNiwgMC4wMDAzMDYsIDAuMDAwMzA2LCAwLjAwMDMwNiwgMC4wMDAzMDYsIDAuMDAwMzA2LCAwLjAwMDMwNiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDMwNywgMC4wMDAzMDcsIDAuMDAwMzA3LCAwLjAwMDMwNywgMC4wMDAzMDcsIDAuMDAwMzA3LCAwLjAwMDMwNyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQTEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDg3MTcyNjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA4NzE3MjY7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwODY4NTM1OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDMwNiwgMC4wMDAzMDYsIDAuMDAwMzA2LCAwLjAwMDMwNiwgMC4wMDAzMDYsIDAuMDAwMzA2LCAwLjAwMDMwNiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDMwNywgMC4wMDAzMDcsIDAuMDAwMzA3LCAwLjAwMDMwNywgMC4wMDAzMDcsIDAuMDAwMzA3LCAwLjAwMDMwNyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQjApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDgzMzkzOTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA4Mjc0NjE7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwODMzOTM5OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDM3MSwgMC4wMDAzNzIsIDAuMDAwMzcxLCAwLjAwMDM3MiwgMC4wMDAzNzEsIDAuMDAwMzcxLCAwLjAwMDM3MSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDM0OCwgMC4wMDAzNDgsIDAuMDAwMzQ4LCAwLjAwMDM0OCwgMC4wMDAzNDgsIDAuMDAwMzQ4LCAwLjAwMDM0OCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQjEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDg4MDM3MzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA4ODAxMzI7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwODgwMzczOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDM3MSwgMC4wMDAzNzEsIDAuMDAwMzcxLCAwLjAwMDM3MSwgMC4wMDAzNzEsIDAuMDAwMzcxLCAwLjAwMDM3MSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDM0NywgMC4wMDAzNDgsIDAuMDAwMzQ3LCAwLjAwMDM0OCwgMC4wMDAzNDgsIDAuMDAwMzQ4LCAwLjAwMDM0OCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjUwNTM1OTsKLSAgICBmdW5jdGlvbiA6ICIoKEEwK0ExKSAoQjArQjEpKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTAiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTc3MzE4LCAwLjMxNjY5MywgMC40NDQ1ODIsIDAuNTM1NTkyLCAwLjY4MTA2NiwgMC44MDgyNzIsIDAuOTg5OTMyIiwgXAotICAgICAgICAgICIwLjE4OTAzNSwgMC4zMjg0NSwgMC40NTYzMzQsIDAuNTQ3MzY2LCAwLjY5MjgwOSwgMC44MTk5OTksIDEuMDAxNjUiLCBcCi0gICAgICAgICAgIjAuMjAzNTcxLCAwLjM0MzA2OSwgMC40NzA5NjIsIDAuNTYxOTM4LCAwLjcwNzQ4NSwgMC44MzQ2MjQsIDEuMDE2MjEiLCBcCi0gICAgICAgICAgIjAuMjE3NDQ0LCAwLjM1Njk1LCAwLjQ4NDc0NCwgMC41NzU3NzIsIDAuNzIxMjU0LCAwLjg0ODQ3NiwgMS4wMzAwNSIsIFwKLSAgICAgICAgICAiMC4yMzEyNzQsIDAuMzcwNjU5LCAwLjQ5ODUzOCwgMC41ODk1MzUsIDAuNzM1MDg2LCAwLjg2MjIyNCwgMS4wNDM4MSIsIFwKLSAgICAgICAgICAiMC4yNTI4MTIsIDAuMzkyMjUyLCAwLjUyMDA0OSwgMC42MTEwNTksIDAuNzU2NjI4LCAwLjg4Mzc4MiwgMS4wNjUzNiIsIFwKLSAgICAgICAgICAiMC4yNzE3MTgsIDAuNDExMDcsIDAuNTM4OTcsIDAuNjI5OTcxLCAwLjc3NTUyNSwgMC45MDI2ODksIDEuMDg0MzEiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzc0MjYsIDAuMzIxNTgxLCAwLjU3NTE3MiwgMC43NTk0NSwgMS4wNTQyOCwgMS4zMTE4MSwgMS42ODIyNCIsIFwKLSAgICAgICAgICAiMC4wNzc1MTksIDAuMzIxNTY1LCAwLjU3NTE5LCAwLjc1OTY1NiwgMS4wNTI0OSwgMS4zMTIyOSwgMS42NzkyMSIsIFwKLSAgICAgICAgICAiMC4wNzc0NTEsIDAuMzIxMzU5LCAwLjU3NDc0OSwgMC43NTg0MDUsIDEuMDU0NTksIDEuMzEyNjQsIDEuNjgxNTkiLCBcCi0gICAgICAgICAgIjAuMDc3MzM2LCAwLjMyMTU3NCwgMC41NzQ5MzMsIDAuNzU4MzU2LCAxLjA1NDI0LCAxLjMxMjcyLCAxLjY4MTc5IiwgXAotICAgICAgICAgICIwLjA3NzM0NiwgMC4zMjE1MTgsIDAuNTc0Nzg0LCAwLjc1ODM2MSwgMS4wNTQ1OSwgMS4zMTI2MywgMS42ODE1NiIsIFwKLSAgICAgICAgICAiMC4wNzcxMzEsIDAuMzIxNTA2LCAwLjU3NTA2LCAwLjc1OTIxOCwgMS4wNTQ1OSwgMS4zMTI2OSwgMS42ODE3NyIsIFwKLSAgICAgICAgICAiMC4wNzY5MDMsIDAuMzIxNjIxLCAwLjU3NTE3NSwgMC43NTgzMjMsIDEuMDU0NTUsIDEuMzExNjUsIDEuNjgyMDIiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNjkzNTUsIDAuMzMwMjk2LCAwLjQ3Njk3MiwgMC41ODEzMTEsIDAuNzQ4MTIxLCAwLjg5NDAxNSwgMS4xMDIxOCIsIFwKLSAgICAgICAgICAiMC4xODA3ODIsIDAuMzQxNzA3LCAwLjQ4ODM4LCAwLjU5MjcxOSwgMC43NTk1NDcsIDAuOTA1Mzk2LCAxLjExMzU3IiwgXAotICAgICAgICAgICIwLjE5MzgyOCwgMC4zNTQ3NjMsIDAuNTAxNDMyLCAwLjYwNTc2OSwgMC43NzI1ODgsIDAuOTE4NDYxLCAxLjEyNjYzIiwgXAotICAgICAgICAgICIwLjIwNjMzNiwgMC4zNjcyNzEsIDAuNTEzOTQxLCAwLjYxODI4NCwgMC43ODUxMDIsIDAuOTMwOTc2LCAxLjEzOTE1IiwgXAotICAgICAgICAgICIwLjIxODY5NywgMC4zNzk2MjQsIDAuNTI2MzA1LCAwLjYzMDY0NywgMC43OTc0NzMsIDAuOTQzMzM0LCAxLjE1MTUxIiwgXAotICAgICAgICAgICIwLjIzODMzOSwgMC4zOTkyNzEsIDAuNTQ1OTYsIDAuNjUwMzA1LCAwLjgxNzEzNCwgMC45NjI5OTEsIDEuMTcxMTciLCBcCi0gICAgICAgICAgIjAuMjU1Mzc0LCAwLjQxNjMxNSwgMC41NjMwMDksIDAuNjY3MzU5LCAwLjgzNDE3OCwgMC45ODAwNjgsIDEuMTg4MjQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODg3ODMsIDAuMzYxNjgsIDAuNjQ2ODA5LCAwLjg1MTMyOSwgMS4xODI4OCwgMS40NzI3LCAxLjg4Nzc1IiwgXAotICAgICAgICAgICIwLjA4ODY5NCwgMC4zNjE0MjUsIDAuNjQ2MjQyLCAwLjg1MTU2MywgMS4xODIyOSwgMS40NzI2OSwgMS44ODgwMyIsIFwKLSAgICAgICAgICAiMC4wODg2ODYsIDAuMzYxNDQyLCAwLjY0Njc2MiwgMC44NTE0NjksIDEuMTgyMzksIDEuNDcyNiwgMS44ODc3NiIsIFwKLSAgICAgICAgICAiMC4wODg2ODYsIDAuMzYxNDQsIDAuNjQ2NzU1LCAwLjg1MTY5MywgMS4xODI0NCwgMS40NzI2MSwgMS44ODc1MiIsIFwKLSAgICAgICAgICAiMC4wODg2NzgsIDAuMzYxNDI3LCAwLjY0NjM4LCAwLjg1MTUxMSwgMS4xODIzNCwgMS40NzI4MiwgMS44ODc0NCIsIFwKLSAgICAgICAgICAiMC4wODg2OTcsIDAuMzYxNDM1LCAwLjY0NjIyOSwgMC44NTE2MTMsIDEuMTgyNDcsIDEuNDcyODgsIDEuODg3NjMiLCBcCi0gICAgICAgICAgIjAuMDg4ODY1LCAwLjM2MTg1OSwgMC42NDY3NTgsIDAuODUxMzksIDEuMTgyMzgsIDEuNDcyODEsIDEuODg3MzIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTEiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTY2MDEzLCAwLjMwNDY3NCwgMC40MzIyMTQsIDAuNTIzMTI4LCAwLjY2ODQ1MiwgMC43OTU2MDEsIDAuOTc3MDgxIiwgXAotICAgICAgICAgICIwLjE3ODEyOCwgMC4zMTY2NDQsIDAuNDQ0MjY5LCAwLjUzNTIwMiwgMC42ODA1MDYsIDAuODA3NiwgMC45ODkxNTgiLCBcCi0gICAgICAgICAgIjAuMTkyNDYxLCAwLjMzMTEwMSwgMC40NTg3MywgMC41NDk2MTMsIDAuNjk1MDIzLCAwLjgyMjA3OCwgMS4wMDM1NyIsIFwKLSAgICAgICAgICAiMC4yMDYxNDQsIDAuMzQ0ODIsIDAuNDcyNDQzLCAwLjU2MzMyNCwgMC43MDg3NDksIDAuODM1Nzk2LCAxLjAxNzI4IiwgXAotICAgICAgICAgICIwLjIxOTczMywgMC4zNTgyNjQsIDAuNDg1OTEyLCAwLjU3NjgwNiwgMC43MjIxMzIsIDAuODQ5MzA5LCAxLjAzMDc4IiwgXAotICAgICAgICAgICIwLjI0MTIyMSwgMC4zNzk4MTYsIDAuNTA3NDUyLCAwLjU5ODMzNywgMC43NDM3NTEsIDAuODcwODA3LCAxLjA1MjMiLCBcCi0gICAgICAgICAgIjAuMjU5OTk1LCAwLjM5ODU5NiwgMC41MjYyNCwgMC42MTcxMjgsIDAuNzYyNTUsIDAuODg5NjA0LCAxLjA3MTA5Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc2MzE1LCAwLjMyMDUxNiwgMC41NzQwMDgsIDAuNzU3MzUyLCAxLjA1NDEzLCAxLjMxMTgyLCAxLjY4MDkiLCBcCi0gICAgICAgICAgIjAuMDc2Mzk3LCAwLjMyMDUxMywgMC41NzQxODYsIDAuNzU4NzQzLCAxLjA1MTYzLCAxLjMxMTU0LCAxLjY3ODM1IiwgXAotICAgICAgICAgICIwLjA3NjM0OCwgMC4zMjA0NzEsIDAuNTc0MTI3LCAwLjc1NzM3NiwgMS4wNTM2NiwgMS4zMTE3MiwgMS42ODA3MiIsIFwKLSAgICAgICAgICAiMC4wNzYyNiwgMC4zMjA0OTcsIDAuNTc0MDQ1LCAwLjc1NzMzOSwgMS4wNTM4NCwgMS4zMTE3NCwgMS42ODA3OSIsIFwKLSAgICAgICAgICAiMC4wNzYwODcsIDAuMzIwNzE4LCAwLjU3NDAxMiwgMC43NTgyNTgsIDEuMDUzMDksIDEuMzExODUsIDEuNjgwNzEiLCBcCi0gICAgICAgICAgIjAuMDc2MDczLCAwLjMyMDQ0NCwgMC41NzQxNDIsIDAuNzU3MzQ0LCAxLjA1MzYzLCAxLjMxMTY5LCAxLjY4MDY5IiwgXAotICAgICAgICAgICIwLjA3NTk3NCwgMC4zMjA0MDQsIDAuNTc0MDM3LCAwLjc1NzMxLCAxLjA1Mzg4LCAxLjMxMTcxLCAxLjY4MDc0Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTYyOTQ4LCAwLjMyMzg4NywgMC40NzA1NTcsIDAuNTc0ODk0LCAwLjc0MTcwOCwgMC44ODc1OSwgMS4wOTU3NiIsIFwKLSAgICAgICAgICAiMC4xNzI5MTksIDAuMzMzODYyLCAwLjQ4MDUzNywgMC41ODQ4NzUsIDAuNzUxNjk0LCAwLjg5NzU2NSwgMS4xMDU3NCIsIFwKLSAgICAgICAgICAiMC4xODU4MzcsIDAuMzQ2NzczLCAwLjQ5MzQ1NSwgMC41OTc3OTgsIDAuNzY0NjA1LCAwLjkxMDUwNCwgMS4xMTg2NyIsIFwKLSAgICAgICAgICAiMC4xOTg4NDIsIDAuMzU5NzY3LCAwLjUwNjQ0OCwgMC42MTA3OTMsIDAuNzc3NjIxLCAwLjkyMzQ3MiwgMS4xMzE2NSIsIFwKLSAgICAgICAgICAiMC4yMTI1MTIsIDAuMzczNDM4LCAwLjUyMDEzNCwgMC42MjQ0ODQsIDAuNzkxMzA1LCAwLjkzNzIxOSwgMS4xNDUzMiIsIFwKLSAgICAgICAgICAiMC4yMzQwMywgMC4zOTQ5MTYsIDAuNTQxNjExLCAwLjY0NTk2MiwgMC44MTI3OTMsIDAuOTU4NjYyLCAxLjE2Njg0IiwgXAotICAgICAgICAgICIwLjI1MjY5OSwgMC40MTM1OTgsIDAuNTYwMzA0LCAwLjY2NDY1OCwgMC44MzE0OTYsIDAuOTc3MzYxLCAxLjE4NTU1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg4NzE5LCAwLjM2MTUwNywgMC42NDY3NTksIDAuODUxMzksIDEuMTgyMywgMS40NzI2MywgMS44ODgxNCIsIFwKLSAgICAgICAgICAiMC4wODg3NzksIDAuMzYxNDQyLCAwLjY0NjI2OCwgMC44NTE3NTYsIDEuMTgyNDQsIDEuNDcyNjMsIDEuODg3NyIsIFwKLSAgICAgICAgICAiMC4wODg3OTYsIDAuMzYxNDUzLCAwLjY0NjYxMywgMC44NTEzMzMsIDEuMTgyMzUsIDEuNDcyNjcsIDEuODg4MyIsIFwKLSAgICAgICAgICAiMC4wODg3NTgsIDAuMzYxNDM5LCAwLjY0NjU3MiwgMC44NTE3MTUsIDEuMTgyNTIsIDEuNDcyNjgsIDEuODg4MDEiLCBcCi0gICAgICAgICAgIjAuMDg4NzM2LCAwLjM2MTQ0NywgMC42NDY2NzgsIDAuODUxNDU0LCAxLjE4MjMzLCAxLjQ3MjY3LCAxLjg4NzkzIiwgXAotICAgICAgICAgICIwLjA4ODc4OCwgMC4zNjE0NjQsIDAuNjQ2NzIyLCAwLjg1MTUwMiwgMS4xODIzMiwgMS40NzI2MywgMS44ODgxMSIsIFwKLSAgICAgICAgICAiMC4wODg4OTcsIDAuMzYxNDU3LCAwLjY0NjM2OCwgMC44NTE1MzQsIDEuMTgyNDUsIDEuNDczLCAxLjg4NzUyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE2MjMxNSwgMC4zMDE4MDQsIDAuNDI5NjgzLCAwLjUyMDY2OSwgMC42NjYyMSwgMC43OTMzNTIsIDAuOTc0OTM5IiwgXAotICAgICAgICAgICIwLjE3MjQ5MSwgMC4zMTE5NTgsIDAuNDM5ODI1LCAwLjUzMDgyLCAwLjY3NjM3NCwgMC44MDM1MSwgMC45ODUwODUiLCBcCi0gICAgICAgICAgIjAuMTg1NjU2LCAwLjMyNTAzOCwgMC40NTI5MzQsIDAuNTQzOTUyLCAwLjY4OTQ1OSwgMC44MTY2NjksIDAuOTk4MjQ1IiwgXAotICAgICAgICAgICIwLjE5OTExNCwgMC4zMzg1NzMsIDAuNDY2NDAyLCAwLjU1NzQxMywgMC43MDI5NTQsIDAuODMwMTE4LCAxLjAxMTciLCBcCi0gICAgICAgICAgIjAuMjEyNjkxLCAwLjM1MjA2NCwgMC40Nzk5NDIsIDAuNTcwOTQxLCAwLjcxNjUwNywgMC44NDM2NCwgMS4wMjUyMiIsIFwKLSAgICAgICAgICAiMC4yMzQ0MjQsIDAuMzczNjQsIDAuNTAxNTQ2LCAwLjU5MjU3NiwgMC43MzgwNDIsIDAuODY1MjMyLCAxLjA0Njk4IiwgXAotICAgICAgICAgICIwLjI1MzMyLCAwLjM5MjczOCwgMC41MjA1NjIsIDAuNjExNiwgMC43NTcwODIsIDAuODg0MzIxLCAxLjA2NTkiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzc0NjgsIDAuMzIxNjEzLCAwLjU3NjI3OSwgMC43NTgzOTUsIDEuMDU0NjIsIDEuMzEyNzIsIDEuNjgxNzkiLCBcCi0gICAgICAgICAgIjAuMDc3NDI2LCAwLjMyMTQxMSwgMC41NzQ4MTksIDAuNzU4NDMsIDEuMDU0NjIsIDEuMzEyNjYsIDEuNjgxNzEiLCBcCi0gICAgICAgICAgIjAuMDc3NCwgMC4zMjE1ODcsIDAuNTc1MDI5LCAwLjc1ODQ0MSwgMS4wNTM1OSwgMS4zMTI3MywgMS42ODE4IiwgXAotICAgICAgICAgICIwLjA3NzE0OSwgMC4zMjE1NzcsIDAuNTc2MDk1LCAwLjc1ODMzNCwgMS4wNTQ1MiwgMS4zMTI2OCwgMS42ODE3NSIsIFwKLSAgICAgICAgICAiMC4wNzcxNjUsIDAuMzIxNjE3LCAwLjU3NTEwNCwgMC43NTgzMzIsIDEuMDU0NjIsIDEuMzEyNjUsIDEuNjgxNjgiLCBcCi0gICAgICAgICAgIjAuMDc3MTU3LCAwLjMyMTUxOSwgMC41NzUwNSwgMC43NTk1ODgsIDEuMDUzNjEsIDEuMzExOSwgMS42ODA2MyIsIFwKLSAgICAgICAgICAiMC4wNzcwMDYsIDAuMzIxNDk5LCAwLjU3NTQ3NCwgMC43NTgzMzUsIDEuMDUzNjYsIDEuMzEyNjksIDEuNjgxNzgiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNTQwNTEsIDAuMzEzMDczLCAwLjQ1OTExOCwgMC41NjMxODYsIDAuNzI5NzAxLCAwLjg3NTM3LCAxLjA4MzQ0IiwgXAotICAgICAgICAgICIwLjE2NTcyOSwgMC4zMjQ3NDMsIDAuNDcwNzc4LCAwLjU3NDg1LCAwLjc0MTM2MywgMC44ODcwMjIsIDEuMDk1MTMiLCBcCi0gICAgICAgICAgIjAuMTc4NjgzLCAwLjMzNzcyNCwgMC40ODM3NDUsIDAuNTg3ODE1LCAwLjc1NDMyOCwgMC44OTk5OTUsIDEuMTA4MDkiLCBcCi0gICAgICAgICAgIjAuMTkxMjE2LCAwLjM1MDI0NiwgMC40OTYyODYsIDAuNjAwMzg2LCAwLjc2Njk1NCwgMC45MTI1MTEsIDEuMTIwNTgiLCBcCi0gICAgICAgICAgIjAuMjAzNDgsIDAuMzYyNTIyLCAwLjUwODU3NiwgMC42MTI2NDgsIDAuNzc5MTc1LCAwLjkyNDgyMywgMS4xMzI5NCIsIFwKLSAgICAgICAgICAiMC4yMjI5OTEsIDAuMzgyMDU3LCAwLjUyODExNywgMC42MzIxOTUsIDAuNzk4NzI0LCAwLjk0NDM3MiwgMS4xNTI1IiwgXAotICAgICAgICAgICIwLjIzOTkxNiwgMC4zOTkwMDksIDAuNTQ1MDcyLCAwLjY0OTE1LCAwLjgxNTY4OSwgMC45NjEzMjEsIDEuMTY5NDciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODYzNjgsIDAuMzU5MjYsIDAuNjQ0MjkzLCAwLjg0OTQxMywgMS4xNzg4NywgMS40NzIxNCwgMS44ODI2IiwgXAotICAgICAgICAgICIwLjA4NjE5NCwgMC4zNTkxNTUsIDAuNjQ0MjgzLCAwLjg0ODk1MSwgMS4xODExNSwgMS40NzIxMywgMS44ODI4OCIsIFwKLSAgICAgICAgICAiMC4wODYxNzgsIDAuMzU4OTg4LCAwLjY0NDMyMSwgMC44NDg5MDMsIDEuMTgxMTQsIDEuNDcyMTQsIDEuODgyNjkiLCBcCi0gICAgICAgICAgIjAuMDg2MjUyLCAwLjM1ODk1LCAwLjY0NDM2MywgMC44NTA5MTksIDEuMTgxMTUsIDEuNDY5NjcsIDEuODg3MjQiLCBcCi0gICAgICAgICAgIjAuMDg2MjY0LCAwLjM1ODkyOSwgMC42NDQzNDIsIDAuODQ5MDA5LCAxLjE4MTE0LCAxLjQ3MjEyLCAxLjg4MzAzIiwgXAotICAgICAgICAgICIwLjA4NjQwNSwgMC4zNTg5NSwgMC42NDQzNTgsIDAuODQ5MDA5LCAxLjE4MTE0LCAxLjQ3MjEyLCAxLjg4MzA4IiwgXAotICAgICAgICAgICIwLjA4NjU4MywgMC4zNTg5ODUsIDAuNjQ0Mzg1LCAwLjg0OTA1NywgMS4xODExNSwgMS40NzIxLCAxLjg4Mzg2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIxIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE1MDU1NiwgMC4yODkxNzgsIDAuNDE2NzU4LCAwLjUwNzY1NCwgMC42NTMwODgsIDAuNzgwMTI5LCAwLjk2MTYwNSIsIFwKLSAgICAgICAgICAiMC4xNjEwNTMsIDAuMjk5NjMyLCAwLjQyNzI1OCwgMC41MTgxNjcsIDAuNjYzNDc3LCAwLjc5MDYwMywgMC45NzIxMzkiLCBcCi0gICAgICAgICAgIjAuMTc0NDQ4LCAwLjMxMzAxMiwgMC40NDA2NDQsIDAuNTMxNTQ3LCAwLjY3Njg3NywgMC44MDM5NzMsIDAuOTg1NTgzIiwgXAotICAgICAgICAgICIwLjE4NzYzNSwgMC4zMjYwOTEsIDAuNDUzNzA4LCAwLjU0NDU4OSwgMC42OTAwMDMsIDAuODE3MDUxLCAwLjk5ODUyNSIsIFwKLSAgICAgICAgICAiMC4yMDA4NTQsIDAuMzM5Mzk1LCAwLjQ2NzAyNiwgMC41NTc5MDgsIDAuNzAzMzE0LCAwLjgzMDM2OCwgMS4wMTE4NSIsIFwKLSAgICAgICAgICAiMC4yMjI1MTIsIDAuMzYxMDMxLCAwLjQ4ODY2NCwgMC41Nzk1NDksIDAuNzI0OTYxLCAwLjg1MjAxNiwgMS4wMzM1IiwgXAotICAgICAgICAgICIwLjI0MTY1NiwgMC4zODAyMSwgMC41MDc4NTQsIDAuNTk4NzQyLCAwLjc0NDE2OSwgMC44NzEyMiwgMS4wNTI3Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc2MjUsIDAuMzIwNDQ4LCAwLjU3Mzk4LCAwLjc1ODQyLCAxLjA1NDIyLCAxLjMxMTc4LCAxLjY4MDg5IiwgXAotICAgICAgICAgICIwLjA3NjE3NSwgMC4zMjA0NzcsIDAuNTczOTY4LCAwLjc1ODU3MywgMS4wNTMxNiwgMS4zMTA2NCwgMS42ODEwNSIsIFwKLSAgICAgICAgICAiMC4wNzYxOTUsIDAuMzIwNDcsIDAuNTczOTgsIDAuNzU3MjY4LCAxLjA1NDExLCAxLjMxMTQ3LCAxLjY4MTA2IiwgXAotICAgICAgICAgICIwLjA3NjIzNywgMC4zMjA0NDEsIDAuNTczOTgzLCAwLjc1NzI5NCwgMS4wNTM5NSwgMS4zMTE2NiwgMS42ODA3MyIsIFwKLSAgICAgICAgICAiMC4wNzYwMiwgMC4zMjAzODQsIDAuNTc0MTE4LCAwLjc1NzI5NCwgMS4wNTM1NSwgMS4zMTI2OSwgMS42ODA2MiIsIFwKLSAgICAgICAgICAiMC4wNzU5NzIsIDAuMzIwMzY3LCAwLjU3NDA3OCwgMC43NTczMDQsIDEuMDU0MjEsIDEuMzExNjMsIDEuNjgwNjEiLCBcCi0gICAgICAgICAgIjAuMDc2MDQ0LCAwLjMyMDM2LCAwLjU3Mzk1MSwgMC43NTcyNjcsIDEuMDU0MjUsIDEuMzExNjUsIDEuNjgwNyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE0NzMwOCwgMC4zMDYzMjYsIDAuNDUyMzg0LCAwLjU1NjQ1MywgMC43MjI5ODgsIDAuODY4NjE2LCAxLjA3Njc2IiwgXAotICAgICAgICAgICIwLjE1NzQ1OCwgMC4zMTY0OTUsIDAuNDYyNTQ4LCAwLjU2NjYxOSwgMC43MzMxMzMsIDAuODc4ODA1LCAxLjA4Njg5IiwgXAotICAgICAgICAgICIwLjE3MDMxOCwgMC4zMjkzNjUsIDAuNDc1NDA3LCAwLjU3OTQ4LCAwLjc0NjAwMSwgMC44OTE2NjMsIDEuMDk5NzYiLCBcCi0gICAgICAgICAgIjAuMTgzNzI2LCAwLjM0Mjc2OCwgMC40ODg4MjksIDAuNTkyOTA0LCAwLjc1OTM3NiwgMC45MDUxMDYsIDEuMTEzMTgiLCBcCi0gICAgICAgICAgIjAuMTk3MDA1LCAwLjM1NjA0OCwgMC41MDIxMTYsIDAuNjA2MTk2LCAwLjc3Mjc0NCwgMC45MTgzODgsIDEuMTI2NTIiLCBcCi0gICAgICAgICAgIjAuMjE4Mjg0LCAwLjM3NzM5NCwgMC41MjM0NzQsIDAuNjI3NTQzLCAwLjc5NDA1MiwgMC45Mzk3MTMsIDEuMTQ3NzciLCBcCi0gICAgICAgICAgIjAuMjM2OTIxLCAwLjM5NjAxNywgMC41NDIxMDQsIDAuNjQ2MTk1LCAwLjgxMjczOSwgMC45NTgzOTEsIDEuMTY2NTIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODYxNjgsIDAuMzU4OTEsIDAuNjQ0MzAxLCAwLjg0ODg2LCAxLjE4MTE1LCAxLjQ3MjEsIDEuODgzNDYiLCBcCi0gICAgICAgICAgIjAuMDg2MjQsIDAuMzU5MzY0LCAwLjY0NDI4MywgMC44NDg4OTEsIDEuMTgxMTYsIDEuNDcyMTQsIDEuODgyNTgiLCBcCi0gICAgICAgICAgIjAuMDg2MjQzLCAwLjM1ODk3MSwgMC42NDQzMDcsIDAuODQ4OTI0LCAxLjE3OTQ5LCAxLjQ3MjEzLCAxLjg4MjY3IiwgXAotICAgICAgICAgICIwLjA4NjI1MywgMC4zNTg5NjIsIDAuNjQ0MTUyLCAwLjg0OTQ4NSwgMS4xODE4LCAxLjQ3MjE1LCAxLjg4MzY0IiwgXAotICAgICAgICAgICIwLjA4NjI4NSwgMC4zNTg5MzgsIDAuNjQ0MzU0LCAwLjg0OTQ3LCAxLjE4MTEzLCAxLjQ3MjEyLCAxLjg4MzE0IiwgXAotICAgICAgICAgICIwLjA4Njc3OSwgMC4zNTkwNDksIDAuNjQzMjEzLCAwLjg1MDQwNywgMS4xODE3OCwgMS40NzE3OSwgMS44ODcxOSIsIFwKLSAgICAgICAgICAiMC4wODY3NzgsIDAuMzU5MDA3LCAwLjY0NDM3OSwgMC44NDkwMTUsIDEuMTgxMTUsIDEuNDcyMTEsIDEuODgzMDgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQyOCwgMC4wMDQ0MTUsIDAuMDA0NDM4LCAwLjAwNDQ0NiwgMC4wMDQ0NTQsIDAuMDA0NDU2LCAwLjAwNDQ2IiwgXAotICAgICAgICAgICIwLjAwNDI2MiwgMC4wMDQzOTgsIDAuMDA0NDIyLCAwLjAwNDQyOSwgMC4wMDQ0MzUsIDAuMDA0NDM4LCAwLjAwNDQ0IiwgXAotICAgICAgICAgICIwLjAwNDI1MiwgMC4wMDQzODksIDAuMDA0NDEzLCAwLjAwNDQxOSwgMC4wMDQ0MjUsIDAuMDA0NDI5LCAwLjAwNDQzMyIsIFwKLSAgICAgICAgICAiMC4wMDQyNDQsIDAuMDA0MzgxLCAwLjAwNDQwNSwgMC4wMDQ0MTIsIDAuMDA0NDE5LCAwLjAwNDQyMywgMC4wMDQ0MjUiLCBcCi0gICAgICAgICAgIjAuMDA0MjM4LCAwLjAwNDM3NSwgMC4wMDQzOTksIDAuMDA0NDA2LCAwLjAwNDQxMywgMC4wMDQ0MTcsIDAuMDA0NDIxIiwgXAotICAgICAgICAgICIwLjAwNDIyOSwgMC4wMDQzNjQsIDAuMDA0MzksIDAuMDA0Mzk4LCAwLjAwNDQwNiwgMC4wMDQ0MSwgMC4wMDQ0MTIiLCBcCi0gICAgICAgICAgIjAuMDA0MjIyLCAwLjAwNDM1NywgMC4wMDQzODQsIDAuMDA0MzkyLCAwLjAwNDQsIDAuMDA0NDA0LCAwLjAwNDQwOCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2MjA1LCAwLjAwNjM4NCwgMC4wMDY0MTQsIDAuMDA2NDI0LCAwLjAwNjQzMiwgMC4wMDY0MzYsIDAuMDA2NDQiLCBcCi0gICAgICAgICAgIjAuMDA2MTk2LCAwLjAwNjM3NSwgMC4wMDY0MDUsIDAuMDA2NDE0LCAwLjAwNjQyMiwgMC4wMDY0MjcsIDAuMDA2NDMxIiwgXAotICAgICAgICAgICIwLjAwNjE4OSwgMC4wMDYzNjgsIDAuMDA2Mzk4LCAwLjAwNjQwOCwgMC4wMDY0MTYsIDAuMDA2NDIxLCAwLjAwNjQyNSIsIFwKLSAgICAgICAgICAiMC4wMDYxODIsIDAuMDA2MzYxLCAwLjAwNjM5MywgMC4wMDY0MDMsIDAuMDA2NDExLCAwLjAwNjQxNiwgMC4wMDY0MiIsIFwKLSAgICAgICAgICAiMC4wMDYxNzUsIDAuMDA2MzU1LCAwLjAwNjM4NywgMC4wMDYzOTcsIDAuMDA2NDA3LCAwLjAwNjQxMiwgMC4wMDY0MTYiLCBcCi0gICAgICAgICAgIjAuMDA2MTY3LCAwLjAwNjM0NSwgMC4wMDYzNzksIDAuMDA2MzksIDAuMDA2NDAxLCAwLjAwNjQwNiwgMC4wMDY0MTEiLCBcCi0gICAgICAgICAgIjAuMDA2MTYxLCAwLjAwNjMzNywgMC4wMDYzNzMsIDAuMDA2Mzg2LCAwLjAwNjM5NywgMC4wMDY0MDIsIDAuMDA2NDA4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzOTc0LCAwLjAwNDEwOCwgMC4wMDQxMjksIDAuMDA0MTM0LCAwLjAwNDE0LCAwLjAwNDE0MiwgMC4wMDQxNDYiLCBcCi0gICAgICAgICAgIjAuMDAzOTY5LCAwLjAwNDEwNCwgMC4wMDQxMjUsIDAuMDA0MTMxLCAwLjAwNDEzNiwgMC4wMDQxMzksIDAuMDA0MTQxIiwgXAotICAgICAgICAgICIwLjAwMzk1NSwgMC4wMDQwOTIsIDAuMDA0MTEyLCAwLjAwNDExOCwgMC4wMDQxMjMsIDAuMDA0MTI2LCAwLjAwNDEyOCIsIFwKLSAgICAgICAgICAiMC4wMDM5NDIsIDAuMDA0MDc4LCAwLjAwNDEsIDAuMDA0MTA1LCAwLjAwNDExMSwgMC4wMDQxMTQsIDAuMDA0MTE2IiwgXAotICAgICAgICAgICIwLjAwMzkyOSwgMC4wMDQwNjYsIDAuMDA0MDksIDAuMDA0MDk1LCAwLjAwNDEsIDAuMDA0MTA0LCAwLjAwNDEwNiIsIFwKLSAgICAgICAgICAiMC4wMDM5MTMsIDAuMDA0MDQ5LCAwLjAwNDA3MywgMC4wMDQwOCwgMC4wMDQwODYsIDAuMDA0MDg5LCAwLjAwNDA5MSIsIFwKLSAgICAgICAgICAiMC4wMDM5MDMsIDAuMDA0MDM3LCAwLjAwNDA2MiwgMC4wMDQwNywgMC4wMDQwNzYsIDAuMDA0MDgsIDAuMDA0MDgzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDU5NTQsIDAuMDA2MTMxLCAwLjAwNjE2LCAwLjAwNjE3LCAwLjAwNjE3OCwgMC4wMDYxODIsIDAuMDA2MTg2IiwgXAotICAgICAgICAgICIwLjAwNTkzNiwgMC4wMDYxMTYsIDAuMDA2MTQ2LCAwLjAwNjE1NSwgMC4wMDYxNjQsIDAuMDA2MTY4LCAwLjAwNjE3MiIsIFwKLSAgICAgICAgICAiMC4wMDU5MjMsIDAuMDA2MTAyLCAwLjAwNjEzNCwgMC4wMDYxNDQsIDAuMDA2MTUzLCAwLjAwNjE1OCwgMC4wMDYxNjIiLCBcCi0gICAgICAgICAgIjAuMDA1OTE0LCAwLjAwNjA4OSwgMC4wMDYxMjMsIDAuMDA2MTMzLCAwLjAwNjE0NCwgMC4wMDYxNDksIDAuMDA2MTUzIiwgXAotICAgICAgICAgICIwLjAwNTkwNSwgMC4wMDYwNzksIDAuMDA2MTE0LCAwLjAwNjEyNiwgMC4wMDYxMzcsIDAuMDA2MTQyLCAwLjAwNjE0OCIsIFwKLSAgICAgICAgICAiMC4wMDU4OTksIDAuMDA2MDY1LCAwLjAwNjEwMywgMC4wMDYxMTYsIDAuMDA2MTI3LCAwLjAwNjEzNCwgMC4wMDYxNCIsIFwKLSAgICAgICAgICAiMC4wMDU4ODMsIDAuMDA2MDUyLCAwLjAwNjA5MywgMC4wMDYxMDgsIDAuMDA2MTIxLCAwLjAwNjEyOCwgMC4wMDYxMzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQyNzcsIDAuMDA0NDE0LCAwLjAwNDQzOCwgMC4wMDQ0NDUsIDAuMDA0NDUyLCAwLjAwNDQ1NCwgMC4wMDQ0NTgiLCBcCi0gICAgICAgICAgIjAuMDA0MjU3LCAwLjAwNDM5NCwgMC4wMDQ0MTcsIDAuMDA0NDI1LCAwLjAwNDQzMSwgMC4wMDQ0MzQsIDAuMDA0NDM4IiwgXAotICAgICAgICAgICIwLjAwNDI0NiwgMC4wMDQzODEsIDAuMDA0NDA0LCAwLjAwNDQxNCwgMC4wMDQ0MjEsIDAuMDA0NDIzLCAwLjAwNDQyNiIsIFwKLSAgICAgICAgICAiMC4wMDQyMzgsIDAuMDA0MzcyLCAwLjAwNDM5NywgMC4wMDQ0MDUsIDAuMDA0NDEyLCAwLjAwNDQxNywgMC4wMDQ0MTkiLCBcCi0gICAgICAgICAgIjAuMDA0MjMsIDAuMDA0MzYyLCAwLjAwNDM4OSwgMC4wMDQzOTgsIDAuMDA0NDA2LCAwLjAwNDQxLCAwLjAwNDQxMyIsIFwKLSAgICAgICAgICAiMC4wMDQyMiwgMC4wMDQzNDksIDAuMDA0Mzc4LCAwLjAwNDM4OCwgMC4wMDQzOTgsIDAuMDA0NDAyLCAwLjAwNDQwNiIsIFwKLSAgICAgICAgICAiMC4wMDQyMTQsIDAuMDA0MzQsIDAuMDA0MzcxLCAwLjAwNDM4MiwgMC4wMDQzOTMsIDAuMDA0Mzk4LCAwLjAwNDQwMiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1MzE5LCAwLjAwNTQ3LCAwLjAwNTQ5MSwgMC4wMDU0OTgsIDAuMDA1NTAzLCAwLjAwNTUwNiwgMC4wMDU1MDkiLCBcCi0gICAgICAgICAgIjAuMDA1MzE2LCAwLjAwNTQ3LCAwLjAwNTQ5LCAwLjAwNTQ5NywgMC4wMDU1MDIsIDAuMDA1NTA1LCAwLjAwNTUwNyIsIFwKLSAgICAgICAgICAiMC4wMDUzMDMsIDAuMDA1NDYxLCAwLjAwNTQ4MiwgMC4wMDU0ODksIDAuMDA1NDk0LCAwLjAwNTQ5NywgMC4wMDU1IiwgXAotICAgICAgICAgICIwLjAwNTI5MiwgMC4wMDU0NTEsIDAuMDA1NDc0LCAwLjAwNTQ4MSwgMC4wMDU0ODcsIDAuMDA1NDksIDAuMDA1NDkzIiwgXAotICAgICAgICAgICIwLjAwNTI4LCAwLjAwNTQ0MiwgMC4wMDU0NjcsIDAuMDA1NDc0LCAwLjAwNTQ4MSwgMC4wMDU0ODQsIDAuMDA1NDg3IiwgXAotICAgICAgICAgICIwLjAwNTI2NywgMC4wMDU0MjksIDAuMDA1NDU3LCAwLjAwNTQ2NSwgMC4wMDU0NzMsIDAuMDA1NDc2LCAwLjAwNTQ4IiwgXAotICAgICAgICAgICIwLjAwNTI1OSwgMC4wMDU0MjIsIDAuMDA1NDUyLCAwLjAwNTQ2MSwgMC4wMDU0NjksIDAuMDA1NDczLCAwLjAwNTQ3NyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIxIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzk1MiwgMC4wMDQwODUsIDAuMDA0MTA2LCAwLjAwNDExMiwgMC4wMDQxMTgsIDAuMDA0MTIxLCAwLjAwNDEyNCIsIFwKLSAgICAgICAgICAiMC4wMDM5NDQsIDAuMDA0MDc4LCAwLjAwNDEsIDAuMDA0MTA1LCAwLjAwNDExMSwgMC4wMDQxMTUsIDAuMDA0MTE2IiwgXAotICAgICAgICAgICIwLjAwMzkyNiwgMC4wMDQwNjEsIDAuMDA0MDgyLCAwLjAwNDA4OSwgMC4wMDQwOTUsIDAuMDA0MDk3LCAwLjAwNDEiLCBcCi0gICAgICAgICAgIjAuMDAzOTEyLCAwLjAwNDA0NSwgMC4wMDQwNjgsIDAuMDA0MDc2LCAwLjAwNDA4MiwgMC4wMDQwODYsIDAuMDA0MDg4IiwgXAotICAgICAgICAgICIwLjAwMzg5OSwgMC4wMDQwMzEsIDAuMDA0MDU1LCAwLjAwNDA2MywgMC4wMDQwNywgMC4wMDQwNzUsIDAuMDA0MDc3IiwgXAotICAgICAgICAgICIwLjAwMzg4NSwgMC4wMDQwMTIsIDAuMDA0MDM5LCAwLjAwNDA0OSwgMC4wMDQwNTcsIDAuMDA0MDYxLCAwLjAwNDA2NSIsIFwKLSAgICAgICAgICAiMC4wMDM4NywgMC4wMDM5OTksIDAuMDA0MDI5LCAwLjAwNDAzOSwgMC4wMDQwNDksIDAuMDA0MDU0LCAwLjAwNDA1NyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1MDYsIDAuMDA1MjIsIDAuMDA1MjQ0LCAwLjAwNTI1MSwgMC4wMDUyNTcsIDAuMDA1MjYsIDAuMDA1MjYzIiwgXAotICAgICAgICAgICIwLjAwNTA1MywgMC4wMDUyMTMsIDAuMDA1MjM2LCAwLjAwNTI0NCwgMC4wMDUyNSwgMC4wMDUyNTMsIDAuMDA1MjU2IiwgXAotICAgICAgICAgICIwLjAwNTAzNSwgMC4wMDUxOTcsIDAuMDA1MjIyLCAwLjAwNTIzLCAwLjAwNTIzNiwgMC4wMDUyNCwgMC4wMDUyNDMiLCBcCi0gICAgICAgICAgIjAuMDA1MDE5LCAwLjAwNTE4MiwgMC4wMDUyMSwgMC4wMDUyMTgsIDAuMDA1MjI2LCAwLjAwNTIzLCAwLjAwNTIzMyIsIFwKLSAgICAgICAgICAiMC4wMDUwMDYsIDAuMDA1MTY4LCAwLjAwNTE5OCwgMC4wMDUyMDgsIDAuMDA1MjE3LCAwLjAwNTIyMiwgMC4wMDUyMjYiLCBcCi0gICAgICAgICAgIjAuMDA0OTksIDAuMDA1MTUsIDAuMDA1MTg0LCAwLjAwNTE5NSwgMC4wMDUyMDUsIDAuMDA1MjExLCAwLjAwNTIxNiIsIFwKLSAgICAgICAgICAiMC4wMDQ5NzgsIDAuMDA1MTM5LCAwLjAwNTE3NiwgMC4wMDUxODksIDAuMDA1MiwgMC4wMDUyMDYsIDAuMDA1MjExIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogT0FJMjFYMSAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChPQUkyMVgxKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMDgxMjgwNTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQTApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDgyNjUzOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDgyMjk3ODsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA4MjY1MzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAzMDYsIDAuMDAwMzA2LCAwLjAwMDMwNiwgMC4wMDAzMDYsIDAuMDAwMzA2LCAwLjAwMDMwNiwgMC4wMDAzMDYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAzMDcsIDAuMDAwMzA3LCAwLjAwMDMwNywgMC4wMDAzMDcsIDAuMDAwMzA3LCAwLjAwMDMwNywgMC4wMDAzMDciKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEExKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA4NjE2NjI7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwODYxNjYyOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDg1ODc3NjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAzMDYsIDAuMDAwMzA2LCAwLjAwMDMwNiwgMC4wMDAzMDUsIDAuMDAwMzA2LCAwLjAwMDMwNiwgMC4wMDAzMDYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAzMDcsIDAuMDAwMzA3LCAwLjAwMDMwNywgMC4wMDAzMDcsIDAuMDAwMzA3LCAwLjAwMDMwNywgMC4wMDAzMDciKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA4NzAxOTI7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwODY5NDczOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDg3MDE5MjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxNjMsIDAuMDAwMTYzLCAwLjAwMDE2MywgMC4wMDAxNjMsIDAuMDAwMTYzLCAwLjAwMDE2MywgMC4wMDAxNjMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAzNDcsIDAuMDAwMzQ4LCAwLjAwMDM0OCwgMC4wMDAzNDgsIDAuMDAwMzQ4LCAwLjAwMDM0OCwgMC4wMDAzNDgiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4wNjY0Njk5OwotICAgIGZ1bmN0aW9uIDogIighKChBMCtBMSkgQjApKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTAiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE4NTYyMSwgMC4yNzQ0MjUsIDAuNzc2MzY5LCAxLjIxODg0LCAxLjgwODIxLCAyLjk4NzYzLCAzLjcyNDIyIiwgXAotICAgICAgICAgICIwLjE5NzExMywgMC4yODU5NjQsIDAuNzg3Nzc0LCAxLjIzMDM5LCAxLjgyMDAzLCAyLjk5OTY2LCAzLjczNTczIiwgXAotICAgICAgICAgICIwLjIxMDIxOSwgMC4yOTkwNjcsIDAuODAwODQzLCAxLjI0MzIxLCAxLjgzMzMzLCAzLjAxMjI4LCAzLjc0ODkxIiwgXAotICAgICAgICAgICIwLjIyMjgyMSwgMC4zMTE2NjcsIDAuODEzNTc1LCAxLjI1NjAxLCAxLjg0NjEzLCAzLjAyNTQ0LCAzLjc2MTU5IiwgXAotICAgICAgICAgICIwLjIzNTI2NSwgMC4zMjQxMTUsIDAuODI2MTE2LCAxLjI2ODcsIDEuODU4MjEsIDMuMDM3OTcsIDMuNzc0MjIiLCBcCi0gICAgICAgICAgIjAuMjU1MDk1LCAwLjM0MzkxMiwgMC44NDYwNDcsIDEuMjg4MjIsIDEuODc3ODksIDMuMDU3MzMsIDMuNzkzOTciLCBcCi0gICAgICAgICAgIjAuMjcyMjk1LCAwLjM2MTE1NCwgMC44NjMzMTMsIDEuMzA2MTcsIDEuODk1ODcsIDMuMDc0ODMsIDMuODExNDciKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzM0MTE1LCAwLjUwNjk3OSwgMS40ODYyMSwgMi4zNTAxOCwgMy41MDQwMiwgNS44MDg3NywgNy4yNDg1OSIsIFwKLSAgICAgICAgICAiMC4zMzM3OCwgMC41MDY4OTksIDEuNDg3NDYsIDIuMzUwMTIsIDMuNTAyMjgsIDUuODA2MTMsIDcuMjQ4OTMiLCBcCi0gICAgICAgICAgIjAuMzM0MDk3LCAwLjUwNjg3NSwgMS40ODgwOSwgMi4zNTE5NSwgMy41MDI2NSwgNS44MDg4NCwgNy4yNDg2MiIsIFwKLSAgICAgICAgICAiMC4zMzQwNDIsIDAuNTA2OTY2LCAxLjQ4NjQyLCAyLjM1MDQzLCAzLjUwMTg2LCA1LjgwNTY3LCA3LjI0NjIzIiwgXAotICAgICAgICAgICIwLjMzNDI0MiwgMC41MDcxNDIsIDEuNDg3NDgsIDIuMzUxNjIsIDMuNTAyMjQsIDUuODA2MTQsIDcuMjQ5MzciLCBcCi0gICAgICAgICAgIjAuMzM2Mzk5LCAwLjUwNzUxNSwgMS40ODc2MiwgMi4zNTIsIDMuNTAxNTQsIDUuODA4NzksIDcuMjQ4MzQiLCBcCi0gICAgICAgICAgIjAuMzM5NTQ5LCAwLjUwODg1LCAxLjQ4Nzg1LCAyLjM1MDczLCAzLjUwNDEyLCA1LjgwODc4LCA3LjI0ODU0Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIxMTI4NywgMC4zMTA1MDEsIDAuODcyMTM4LCAxLjM2NjgyLCAyLjAyNjQsIDMuMzQ1NDIsIDQuMTcwMzMiLCBcCi0gICAgICAgICAgIjAuMjIzMTExLCAwLjMyMjQyLCAwLjg4NDIwMywgMS4zNzkxOSwgMi4wMzg4MSwgMy4zNTg1NSwgNC4xODMwMyIsIFwKLSAgICAgICAgICAiMC4yMzcyNywgMC4zMzY1MDksIDAuODk4MjAzLCAxLjM5MzY1LCAyLjA1MzI4LCAzLjM3MjYyLCA0LjE5NzM4IiwgXAotICAgICAgICAgICIwLjI1MDkyMSwgMC4zNTAzLCAwLjkxMTk5NiwgMS40MDczNiwgMi4wNjc1OSwgMy4zODY1OSwgNC4yMTA5NyIsIFwKLSAgICAgICAgICAiMC4yNjQzNTUsIDAuMzYzODU2LCAwLjkyNTg1NSwgMS40MjEyNCwgMi4wODE0OCwgMy40MDA3MiwgNC4yMjQ3NiIsIFwKLSAgICAgICAgICAiMC4yODU4OTYsIDAuMzg1MzQxLCAwLjk0Njg5NSwgMS40NDI3MiwgMi4xMDMxMiwgMy40MjE3MywgNC4yNDYzIiwgXAotICAgICAgICAgICIwLjMwNDYxLCAwLjQwNDE1MiwgMC45NjU5NTQsIDEuNDYxNzUsIDIuMTIxODIsIDMuNDQwNjIsIDQuMjY1MTciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzYyOTkxLCAwLjU1MjQyNSwgMS42MjQ3OCwgMi41NzA0LCAzLjgzMDksIDYuMzUzMTQsIDcuOTI5NTMiLCBcCi0gICAgICAgICAgIjAuMzYzMzUzLCAwLjU1MjY2MywgMS42MjQ1MSwgMi41NzA2NiwgMy44MzIwNywgNi4zNTgyLCA3LjkzMDMyIiwgXAotICAgICAgICAgICIwLjM2MzM1NCwgMC41NTI3NTUsIDEuNjI0NzMsIDIuNTcwOSwgMy44MzA4NiwgNi4zNTQyOCwgNy45MzAzOSIsIFwKLSAgICAgICAgICAiMC4zNjMxNzcsIDAuNTUyNDc4LCAxLjYyNTE2LCAyLjU3MDc4LCAzLjgzMjQsIDYuMzU3NzEsIDcuOTMwMDQiLCBcCi0gICAgICAgICAgIjAuMzYyOTk2LCAwLjU1MjQ4NSwgMS42MjUwMiwgMi41NzEyNywgMy44MzI2MSwgNi4zNTU4MywgNy45Mjc1NiIsIFwKLSAgICAgICAgICAiMC4zNjQxNjUsIDAuNTUyNDA0LCAxLjYyNDYzLCAyLjU3MTA0LCAzLjgzMjM4LCA2LjM1NzkzLCA3LjkzMDE2IiwgXAotICAgICAgICAgICIwLjM2NTg1MiwgMC41NTI5NjQsIDEuNjI1MDgsIDIuNTcxMTQsIDMuODMzOTMsIDYuMzU3OTMsIDcuOTMwMTUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE3ODkzOCwgMC4yNjc2MjYsIDAuNzY5NTk5LCAxLjIxMTg5LCAxLjgwMjE1LCAyLjk4MTE2LCAzLjcxNzMiLCBcCi0gICAgICAgICAgIjAuMTg5MDQxLCAwLjI3NzgzOSwgMC43Nzk2MDMsIDEuMjIyMzcsIDEuODExNjQsIDIuOTkxMDgsIDMuNzI3NjkiLCBcCi0gICAgICAgICAgIjAuMjAyMDg1LCAwLjI5MDkwMywgMC43OTMsIDEuMjM1NTMsIDEuODI0NzcsIDMuMDA0NDcsIDMuNzQwOCIsIFwKLSAgICAgICAgICAiMC4yMTQ3OTUsIDAuMzAzODc3LCAwLjgwNTc2NywgMS4yNDg1NSwgMS44Mzc4OCwgMy4wMTc3MSwgMy43NTM5MiIsIFwKLSAgICAgICAgICAiMC4yMjgwOTksIDAuMzE2OTQ1LCAwLjgxODgyNywgMS4yNjE3MywgMS44NTA4OSwgMy4wMzAzLCAzLjc2NjkyIiwgXAotICAgICAgICAgICIwLjI0OTEsIDAuMzM3OTQxLCAwLjgzOTg3NywgMS4yODI1MSwgMS44NzI2OCwgMy4wNTE1LCAzLjc4ODAxIiwgXAotICAgICAgICAgICIwLjI2NzY0MywgMC4zNTYyOTMsIDAuODU4MjA0LCAxLjMwMDYxLCAxLjg5MDU1LCAzLjA2OTY3LCAzLjgwNjI5Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMzMzc3OSwgMC41MDY4NzQsIDEuNDg3NTksIDIuMzUwMjUsIDMuNTAxODMsIDUuODA3MDUsIDcuMjQ4MzUiLCBcCi0gICAgICAgICAgIjAuMzMzODE3LCAwLjUwNjg2NSwgMS40ODU5MywgMi4zNTAxMywgMy41MDE1NCwgNS44MDY1NiwgNy4yNDg4NiIsIFwKLSAgICAgICAgICAiMC4zMzM3NTUsIDAuNTA3MTc4LCAxLjQ4NjI0LCAyLjM1MDEyLCAzLjUwMTUzLCA1LjgwNTgzLCA3LjI0ODk0IiwgXAotICAgICAgICAgICIwLjMzMzc4NSwgMC41MDY5NjEsIDEuNDg2NDEsIDIuMzUwNzIsIDMuNTAyMiwgNS44MDYxNSwgNy4yNDc4MSIsIFwKLSAgICAgICAgICAiMC4zMzQ4MTYsIDAuNTA3MTk4LCAxLjQ4NTk4LCAyLjM1MDIxLCAzLjUwMTUyLCA1LjgwODc0LCA3LjI0ODU2IiwgXAotICAgICAgICAgICIwLjMzODkxMywgMC41MDc2MzQsIDEuNDg2NCwgMi4zNTAxMSwgMy41MDE5OSwgNS44MDY1MywgNy4yNDY1MyIsIFwKLSAgICAgICAgICAiMC4zNDQ5MTYsIDAuNTEwNjc4LCAxLjQ4NjAxLCAyLjM1MDMsIDMuNTA0MjksIDUuODA4OTQsIDcuMjQ4NjMiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTk4MTY2LCAwLjI5NTkxNSwgMC44NTAwMSwgMS4zMzg0MywgMS45OTA0OSwgMy4yOTI1NiwgNC4xMDY3NyIsIFwKLSAgICAgICAgICAiMC4yMTA0MzYsIDAuMzA4MzA4LCAwLjg2MjYyOSwgMS4zNTExMywgMi4wMDI0MiwgMy4zMDUyMSwgNC4xMTk1MyIsIFwKLSAgICAgICAgICAiMC4yMjQ1OTIsIDAuMzIyNjQ3LCAwLjg3Njc2MSwgMS4zNjYwNSwgMi4wMTc1NSwgMy4zMjAzNSwgNC4xMzM5NCIsIFwKLSAgICAgICAgICAiMC4yMzgyOTcsIDAuMzM2Mjk1LCAwLjg5MDgxNSwgMS4zNzk4OCwgMi4wMzA5MiwgMy4zMzQyNCwgNC4xNDc1MiIsIFwKLSAgICAgICAgICAiMC4yNTE3NDMsIDAuMzQ5OTE1LCAwLjkwNDYzLCAxLjM5MzQ2LCAyLjA0NDkzLCAzLjM0NzkxLCA0LjE2MTQ5IiwgXAotICAgICAgICAgICIwLjI3MzA5MiwgMC4zNzEzMjUsIDAuOTI2MTIsIDEuNDE1MjYsIDIuMDY3MDUsIDMuMzY4OTgsIDQuMTgzMTEiLCBcCi0gICAgICAgICAgIjAuMjkxODQyLCAwLjM5MDEwMywgMC45NDQ2MTcsIDEuNDM0NDQsIDIuMDg1NzgsIDMuMzg3OTcsIDQuMjAyMDgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzQ3MjIyLCAwLjUzNDY2MiwgMS41OTYxOSwgMi41MzY0OCwgMy43ODc4NSwgNi4yNjA3NywgNy44MDg1NSIsIFwKLSAgICAgICAgICAiMC4zNDc3NzgsIDAuNTMzODYzLCAxLjU5MTk2LCAyLjUzMDI3LCAzLjc4NzQyLCA2LjI2MDY5LCA3LjgwODQiLCBcCi0gICAgICAgICAgIjAuMzQ4Mzg5LCAwLjUzMzc5OSwgMS42MDE4MywgMi41Mjg3NSwgMy43NzIwNCwgNi4yNTg2OCwgNy44MDg2NyIsIFwKLSAgICAgICAgICAiMC4zNDc2NiwgMC41MzM5OTMsIDEuNTkyMDEsIDIuNTI4MzQsIDMuNzg3MzYsIDYuMjU4NDgsIDcuODA4MTUiLCBcCi0gICAgICAgICAgIjAuMzQ3MjY2LCAwLjUzNDI3LCAxLjU5NDUzLCAyLjUyNzYxLCAzLjc4MTEyLCA2LjI1OTY5LCA3LjgwNjUxIiwgXAotICAgICAgICAgICIwLjM0ODU1MSwgMC41MzQyNDQsIDEuNTk1MTEsIDIuNTI4MzgsIDMuNzgyMDksIDYuMjYwNzMsIDcuODA4MjUiLCBcCi0gICAgICAgICAgIjAuMzUxNjg3LCAwLjUzNjcyMSwgMS41OTkwMywgMi41Mjk2NywgMy43Nzc4MiwgNi4yNjA3NCwgNy44MDgyNCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg0NDMsIDAuMTI3NjQxLCAwLjM3MjQ4MiwgMC41ODgyOTIsIDAuODc2MzA2LCAxLjQ1MTcxLCAxLjgxMTkzIiwgXAotICAgICAgICAgICIwLjA5NjA3MywgMC4xMzkyOTcsIDAuMzg0MTI4LCAwLjU5OTk1MywgMC44ODc4ODcsIDEuNDY0MDMsIDEuODIzMjYiLCBcCi0gICAgICAgICAgIjAuMTEwNzI4LCAwLjE1MzgxNiwgMC4zOTc0NTMsIDAuNjEzMzkzLCAwLjkwMTU1NSwgMS40Nzc2OCwgMS44MzY4NCIsIFwKLSAgICAgICAgICAiMC4xMjU2MzgsIDAuMTY4NTY3LCAwLjQxMzExLCAwLjYyNjgyNSwgMC45MTQ5MTUsIDEuNDkwNDgsIDEuODUwMDYiLCBcCi0gICAgICAgICAgIjAuMTQwNDIsIDAuMTgzNjI1LCAwLjQyNzU1NywgMC42NDA2MDUsIDAuOTI4NTQyLCAxLjUwNCwgMS44NjQyOSIsIFwKLSAgICAgICAgICAiMC4xNjQxMzQsIDAuMjA3MzA4LCAwLjQ1MDgxNCwgMC42NjY1MDIsIDAuOTUwODY5LCAxLjUyNjUyLCAxLjg4Njg1IiwgXAotICAgICAgICAgICIwLjE4NTIzMSwgMC4yMjc5OTMsIDAuNDcxNTk5LCAwLjY4Njg3OSwgMC45NzA1OTUsIDEuNTQ2NzMsIDEuOTA2MDYiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTcyMzc0LCAwLjI1OTc0NSwgMC43NTU3MTMsIDEuMTkzNDQsIDEuNzc3NDIsIDIuOTQ1NjcsIDMuNjc2MTciLCBcCi0gICAgICAgICAgIjAuMTcyMzYsIDAuMjU5NzQ3LCAwLjc1NTY2NSwgMS4xOTM0MiwgMS43Nzc0MSwgMi45NDU4OCwgMy42NzYyNiIsIFwKLSAgICAgICAgICAiMC4xNzI3MDQsIDAuMjU5NzU0LCAwLjc1NTYzNywgMS4xOTM0NCwgMS43NzczMSwgMi45NDUyNCwgMy42NzU5MiIsIFwKLSAgICAgICAgICAiMC4xNzUyNjUsIDAuMjYwMjY5LCAwLjc1NTcxOCwgMS4xOTM2MiwgMS43NzcyOSwgMi45NDU0OSwgMy42NzY0IiwgXAotICAgICAgICAgICIwLjE3OTU1NywgMC4yNjI0MzYsIDAuNzU1Njg5LCAxLjE5MzQ2LCAxLjc3NzY4LCAyLjk0NTc2LCAzLjY3NjY1IiwgXAotICAgICAgICAgICIwLjE4ODk0OSwgMC4yNjg1MjUsIDAuNzU1NjEyLCAxLjE5MzU3LCAxLjc3NzUsIDIuOTQ3MzIsIDMuNjc1NzciLCBcCi0gICAgICAgICAgIjAuMTk4MjMzLCAwLjI3NTc2MywgMC43NTU2NDYsIDEuMTkzNjEsIDEuNzc3NzEsIDIuOTQ1NywgMy42ODAxMiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMDEyOTksIDAuMzAwNTEyLCAwLjg2MjE5NywgMS4zNTc3NSwgMi4wMTc3MiwgMy4zMzY5NSwgNC4xNjEzIiwgXAotICAgICAgICAgICIwLjIxMTY2MiwgMC4zMTEwMzgsIDAuODcyODA5LCAxLjM2NzUzLCAyLjAyODM4LCAzLjM0NzM1LCA0LjE3MTc0IiwgXAotICAgICAgICAgICIwLjIyNTIwOCwgMC4zMjQ2ODYsIDAuODg2NDMyLCAxLjM4MTYsIDIuMDQyMDEsIDMuMzYxMDksIDQuMTg1NDYiLCBcCi0gICAgICAgICAgIjAuMjM3ODYsIDAuMzM3MzY5LCAwLjg5OTI5NSwgMS4zOTQ2LCAyLjA1NTYxLCAzLjM3MzgyLCA0LjE5ODQ0IiwgXAotICAgICAgICAgICIwLjI1MDk5NSwgMC4zNTA0OCwgMC45MTI2MDUsIDEuNDA3MzUsIDIuMDY4MDEsIDMuMzg3NCwgNC4yMTE1NSIsIFwKLSAgICAgICAgICAiMC4yNzIwOTIsIDAuMzcxNjE2LCAwLjkzMzU4LCAxLjQyODc4LCAyLjA4ODY4LCAzLjQwOSwgNC4yMzMwOCIsIFwKLSAgICAgICAgICAiMC4yOTA2OTksIDAuMzkwMTUyLCAwLjk1MjA5NCwgMS40NDc5NCwgMi4xMDgzOSwgMy40MjcwOSwgNC4yNTE0NSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zNjMxMjQsIDAuNTUyNzkyLCAxLjYyNDgsIDIuNTcxMSwgMy44MzIyNiwgNi4zNTQwMiwgNy45MjgzIiwgXAotICAgICAgICAgICIwLjM2MzQwNSwgMC41NTI0MzMsIDEuNjI0ODUsIDIuNTcwMjQsIDMuODMyMjUsIDYuMzU3ODcsIDcuOTMwMTMiLCBcCi0gICAgICAgICAgIjAuMzYzMzA0LCAwLjU1MjY5NiwgMS42MjUxNiwgMi41NzA1MywgMy44MzI0MSwgNi4zNTc3MSwgNy45MzAwMyIsIFwKLSAgICAgICAgICAiMC4zNjMyMjQsIDAuNTUyNjAyLCAxLjYyNDgsIDIuNTcwNzcsIDMuODMyNzIsIDYuMzU3OTEsIDcuOTMwMiIsIFwKLSAgICAgICAgICAiMC4zNjM0NDYsIDAuNTUyNDM0LCAxLjYyNDg4LCAyLjU3MDIsIDMuODMyMTgsIDYuMzU1MDMsIDcuOTMwMDMiLCBcCi0gICAgICAgICAgIjAuMzY1OTE1LCAwLjU1MjQ1OSwgMS42MjQyOCwgMi41NzI1NywgMy44MzIwMSwgNi4zNTUyMSwgNy45MjgwMiIsIFwKLSAgICAgICAgICAiMC4zNzA1MzYsIDAuNTU0MDQzLCAxLjYyNDM1LCAyLjU3MTA4LCAzLjgzMjY1LCA2LjM1NzY4LCA3LjkzMDA0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjA4OCwgMC4wMDIwODcsIDAuMDAyMDg3LCAwLjAwMjA4NCwgMC4wMDIwODQsIDAuMDAyMDgyLCAwLjAwMjA3OSIsIFwKLSAgICAgICAgICAiMC4wMDIwNzksIDAuMDAyMDgsIDAuMDAyMDc5LCAwLjAwMjA3OCwgMC4wMDIwNzgsIDAuMDAyMDc0LCAwLjAwMjA3MyIsIFwKLSAgICAgICAgICAiMC4wMDIwNzYsIDAuMDAyMDc2LCAwLjAwMjA3OCwgMC4wMDIwNzcsIDAuMDAyMDc2LCAwLjAwMjA3MSwgMC4wMDIwNjkiLCBcCi0gICAgICAgICAgIjAuMDAyMDc0LCAwLjAwMjA3NSwgMC4wMDIwNzcsIDAuMDAyMDc3LCAwLjAwMjA3NywgMC4wMDIwNzMsIDAuMDAyMDcyIiwgXAotICAgICAgICAgICIwLjAwMjA3MiwgMC4wMDIwNzQsIDAuMDAyMDc2LCAwLjAwMjA3NywgMC4wMDIwNzQsIDAuMDAyMDcyLCAwLjAwMjA3IiwgXAotICAgICAgICAgICIwLjAwMjA2OSwgMC4wMDIwNzIsIDAuMDAyMDc1LCAwLjAwMjA3NSwgMC4wMDIwNzQsIDAuMDAyMDcyLCAwLjAwMjA3IiwgXAotICAgICAgICAgICIwLjAwMjA2NywgMC4wMDIwNywgMC4wMDIwNzQsIDAuMDAyMDc1LCAwLjAwMjA3NCwgMC4wMDIwNzIsIDAuMDAyMDciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDA2MjksIDAuMDAwNjI5LCAwLjAwMDYyOSwgMC4wMDA2MjksIDAuMDAwNjI4LCAwLjAwMDYyNywgMC4wMDA2MjYiLCBcCi0gICAgICAgICAgIjAuMDAwNjE1LCAwLjAwMDYxNiwgMC4wMDA2MTcsIDAuMDAwNjE3LCAwLjAwMDYxNiwgMC4wMDA2MTUsIDAuMDAwNjE1IiwgXAotICAgICAgICAgICIwLjAwMDYwOSwgMC4wMDA2MTEsIDAuMDAwNjEzLCAwLjAwMDYxNCwgMC4wMDA2MTUsIDAuMDAwNjEzLCAwLjAwMDYxMiIsIFwKLSAgICAgICAgICAiMC4wMDA2MDUsIDAuMDAwNjA4LCAwLjAwMDYxMiwgMC4wMDA2MTMsIDAuMDAwNjEzLCAwLjAwMDYxMiwgMC4wMDA2MTEiLCBcCi0gICAgICAgICAgIjAuMDAwNjAxLCAwLjAwMDYwNSwgMC4wMDA2MTEsIDAuMDAwNjEyLCAwLjAwMDYxMiwgMC4wMDA2MTEsIDAuMDAwNjEiLCBcCi0gICAgICAgICAgIjAuMDAwNTk2LCAwLjAwMDYwMSwgMC4wMDA2MDksIDAuMDAwNjEsIDAuMDAwNjExLCAwLjAwMDYxLCAwLjAwMDYxIiwgXAotICAgICAgICAgICIwLjAwMDU5MywgMC4wMDA1OTksIDAuMDAwNjA3LCAwLjAwMDYwOSwgMC4wMDA2MSwgMC4wMDA2MSwgMC4wMDA2MDkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxODMxLCAwLjAwMTgzMSwgMC4wMDE4MywgMC4wMDE4MjgsIDAuMDAxODI1LCAwLjAwMTgyNSwgMC4wMDE4MjUiLCBcCi0gICAgICAgICAgIjAuMDAxODIxLCAwLjAwMTgyMiwgMC4wMDE4MjIsIDAuMDAxODIyLCAwLjAwMTgyMSwgMC4wMDE4MTksIDAuMDAxODE2IiwgXAotICAgICAgICAgICIwLjAwMTgxNiwgMC4wMDE4MTgsIDAuMDAxODIsIDAuMDAxODE5LCAwLjAwMTgxOSwgMC4wMDE4MTYsIDAuMDAxODE1IiwgXAotICAgICAgICAgICIwLjAwMTgwOSwgMC4wMDE4MTUsIDAuMDAxODE5LCAwLjAwMTgxOSwgMC4wMDE4MTgsIDAuMDAxODE1LCAwLjAwMTgxNCIsIFwKLSAgICAgICAgICAiMC4wMDE4MDksIDAuMDAxODEzLCAwLjAwMTgxNywgMC4wMDE4MTgsIDAuMDAxODE3LCAwLjAwMTgxNSwgMC4wMDE4MTMiLCBcCi0gICAgICAgICAgIjAuMDAxODA0LCAwLjAwMTgwOSwgMC4wMDE4MTYsIDAuMDAxODE4LCAwLjAwMTgxNywgMC4wMDE4MTQsIDAuMDAxODEzIiwgXAotICAgICAgICAgICIwLjAwMTgwMiwgMC4wMDE4MDcsIDAuMDAxODE1LCAwLjAwMTgxNiwgMC4wMDE4MTYsIDAuMDAxODE0LCAwLjAwMTgxMiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDI5OSwgMC4wMDAzLCAwLjAwMDMwMSwgMC4wMDAzMDEsIDAuMDAwMzAxLCAwLjAwMDMwMSwgMC4wMDAzMDEiLCBcCi0gICAgICAgICAgIjAuMDAwMzAzLCAwLjAwMDMwNiwgMC4wMDAzMTEsIDAuMDAwMzEyLCAwLjAwMDMxMiwgMC4wMDAzMTMsIDAuMDAwMzEzIiwgXAotICAgICAgICAgICIwLjAwMDI5NywgMC4wMDAzMDMsIDAuMDAwMzExLCAwLjAwMDMxMywgMC4wMDAzMTQsIDAuMDAwMzE1LCAwLjAwMDMxNSIsIFwKLSAgICAgICAgICAiMC4wMDAyODksIDAuMDAwMjk3LCAwLjAwMDMxLCAwLjAwMDMxMiwgMC4wMDAzMTQsIDAuMDAwMzE1LCAwLjAwMDMxNSIsIFwKLSAgICAgICAgICAiMC4wMDAyODIsIDAuMDAwMjkyLCAwLjAwMDMwOCwgMC4wMDAzMTEsIDAuMDAwMzEzLCAwLjAwMDMxNCwgMC4wMDAzMTUiLCBcCi0gICAgICAgICAgIjAuMDAwMjcyLCAwLjAwMDI4NSwgMC4wMDAzMDUsIDAuMDAwMzA5LCAwLjAwMDMxMiwgMC4wMDAzMTQsIDAuMDAwMzE0IiwgXAotICAgICAgICAgICIwLjAwMDI2NSwgMC4wMDAyNzgsIDAuMDAwMzAyLCAwLjAwMDMwNywgMC4wMDAzMSwgMC4wMDAzMTMsIDAuMDAwMzE0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTQzNywgMC4wMDE0MzcsIDAuMDAxNDM4LCAwLjAwMTQzOCwgMC4wMDE0MzgsIDAuMDAxNDM4LCAwLjAwMTQzOCIsIFwKLSAgICAgICAgICAiMC4wMDE0MzgsIDAuMDAxNDQsIDAuMDAxNDQ0LCAwLjAwMTQ0NSwgMC4wMDE0NDUsIDAuMDAxNDQ1LCAwLjAwMTQ0NSIsIFwKLSAgICAgICAgICAiMC4wMDE0MzIsIDAuMDAxNDM3LCAwLjAwMTQ0NCwgMC4wMDE0NDUsIDAuMDAxNDQ2LCAwLjAwMTQ0NywgMC4wMDE0NDciLCBcCi0gICAgICAgICAgIjAuMDAxNDI3LCAwLjAwMTQzNCwgMC4wMDE0NDMsIDAuMDAxNDQ1LCAwLjAwMTQ0NiwgMC4wMDE0NDYsIDAuMDAxNDQ3IiwgXAotICAgICAgICAgICIwLjAwMTQyMiwgMC4wMDE0MywgMC4wMDE0NDIsIDAuMDAxNDQ0LCAwLjAwMTQ0NCwgMC4wMDE0NDUsIDAuMDAxNDQ2IiwgXAotICAgICAgICAgICIwLjAwMTQxNiwgMC4wMDE0MjUsIDAuMDAxNDM5LCAwLjAwMTQ0MiwgMC4wMDE0NDQsIDAuMDAxNDQ2LCAwLjAwMTQ0NiIsIFwKLSAgICAgICAgICAiMC4wMDE0MTIsIDAuMDAxNDIxLCAwLjAwMTQzNywgMC4wMDE0NDEsIDAuMDAxNDQzLCAwLjAwMTQ0NSwgMC4wMDE0NDYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDA2NDMsIDAuMDAwNjQ0LCAwLjAwMDY0NiwgMC4wMDA2NDQsIDAuMDAwNjQ0LCAwLjAwMDY0NCwgMC4wMDA2NDMiLCBcCi0gICAgICAgICAgIjAuMDAwNjM0LCAwLjAwMDYzOCwgMC4wMDA2NDIsIDAuMDAwNjQ0LCAwLjAwMDY0MywgMC4wMDA2NDIsIDAuMDAwNjQyIiwgXAotICAgICAgICAgICIwLjAwMDYyNSwgMC4wMDA2MzEsIDAuMDAwNjQsIDAuMDAwNjQyLCAwLjAwMDY0MywgMC4wMDA2NDIsIDAuMDAwNjQxIiwgXAotICAgICAgICAgICIwLjAwMDYxNiwgMC4wMDA2MjQsIDAuMDAwNjM3LCAwLjAwMDYzOSwgMC4wMDA2NDEsIDAuMDAwNjQxLCAwLjAwMDY0MSIsIFwKLSAgICAgICAgICAiMC4wMDA2MSwgMC4wMDA2MTksIDAuMDAwNjM0LCAwLjAwMDYzOCwgMC4wMDA2MzksIDAuMDAwNjQsIDAuMDAwNjQiLCBcCi0gICAgICAgICAgIjAuMDAwNjAyLCAwLjAwMDYxMiwgMC4wMDA2MzEsIDAuMDAwNjM2LCAwLjAwMDYzOCwgMC4wMDA2MzksIDAuMDAwNjM5IiwgXAotICAgICAgICAgICIwLjAwMDU5NiwgMC4wMDA2MDcsIDAuMDAwNjI4LCAwLjAwMDYzMywgMC4wMDA2MzYsIDAuMDAwNjM4LCAwLjAwMDYzOCIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBPQUkyMjFYNCAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoT0FJMjIxWDQpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC41MTM2Nzc7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDMxMTczNzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDMxMDg1NjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDMxMTczNzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDEyMjQsIDAuMDAxMjI0LCAwLjAwMTIyMywgMC4wMDEyMjIsIDAuMDAxMjIzLCAwLjAwMTIyMiwgMC4wMDEyMjIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDEyMjYsIDAuMDAxMjI4LCAwLjAwMTIyOCwgMC4wMDEyMjcsIDAuMDAxMjI3LCAwLjAwMTIyMywgMC4wMDEyMjkiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEExKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDMwNTMxMTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDMwNTMxMTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDMwMzg2OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTIyNSwgMC4wMDEyMjMsIDAuMDAxMjI0LCAwLjAwMTIyMywgMC4wMDEyMjMsIDAuMDAxMjIzLCAwLjAwMTIyMyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTIyNiwgMC4wMDEyMjcsIDAuMDAxMjI3LCAwLjAwMTIyNywgMC4wMDEyMjcsIDAuMDAxMjI4LCAwLjAwMTIyOCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQjApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMzA5MjQ7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAzMDc5MTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDMwOTI0OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTIyNCwgMC4wMDEyMjMsIDAuMDAxMjIyLCAwLjAwMTIyMywgMC4wMDEyMjMsIDAuMDAxMjIyLCAwLjAwMTIyMSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTIyNiwgMC4wMDEyMjgsIDAuMDAxMjI4LCAwLjAwMTIyOCwgMC4wMDEyMjgsIDAuMDAxMjI5LCAwLjAwMTIyOSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQjEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMjk0MTc4OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMjk0MTc4OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMjkzMDkyOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTIyNSwgMC4wMDEyMjQsIDAuMDAxMjI0LCAwLjAwMTIyNCwgMC4wMDEyMjQsIDAuMDAxMjIzLCAwLjAwMTIyMyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTIyNiwgMC4wMDEyMjcsIDAuMDAxMjI3LCAwLjAwMTIyNywgMC4wMDEyMjcsIDAuMDAxMjI4LCAwLjAwMTIyOCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQzApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMjkxMTYyOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMjkwOTE3OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMjkxMTYyOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDUwMSwgMC4wMDA1MDQsIDAuMDAwNTA1LCAwLjAwMDUwNiwgMC4wMDA1MDYsIDAuMDAwNTA2LCAwLjAwMDUwNSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTM5LCAwLjAwMTM5MSwgMC4wMDEzOTEsIDAuMDAxMzkzLCAwLjAwMTM5MywgMC4wMDEzOTIsIDAuMDAxMzkyIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMTc4NjM0OwotICAgIGZ1bmN0aW9uIDogIighKCgoQTArQTEpIChCMCtCMSkpIEMwKSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4NzU3OCwgMC4zNTI5MzQsIDAuNjE0NjgyLCAwLjgwMTA0NiwgMS4wOTk0NSwgMS4zNjAwNSwgMS43MzI1NSIsIFwKLSAgICAgICAgICAiMC4wOTkwNDQsIDAuMzY0NDQsIDAuNjI2MTI3LCAwLjgxMjU1NSwgMS4xMTA5MiwgMS4zNzE2MywgMS43NDM5NCIsIFwKLSAgICAgICAgICAiMC4xMTIwMzEsIDAuMzc3NTA2LCAwLjYzOTExNiwgMC44MjU2NTIsIDEuMTIzNzUsIDEuMzg0MzYsIDEuNzU3MTciLCBcCi0gICAgICAgICAgIjAuMTI0NTAzLCAwLjM5MDA2OCwgMC42NTE3MDEsIDAuODM4MTk5LCAxLjEzNjMsIDEuMzk2ODgsIDEuNzY5NjQiLCBcCi0gICAgICAgICAgIjAuMTM3MDA5LCAwLjQwMjU0MywgMC42NjQyMjQsIDAuODUwODAyLCAxLjE0OTEzLCAxLjQwOTUyLCAxLjc4MjMzIiwgXAotICAgICAgICAgICIwLjE1NjY4NCwgMC40MjIzNTgsIDAuNjg0MDc1LCAwLjg3MDY2NywgMS4xNjg4NywgMS40Mjk1LCAxLjgwMTY1IiwgXAotICAgICAgICAgICIwLjE3NDAzMywgMC40Mzk3MzgsIDAuNzAxNDU5LCAwLjg4ODA4NywgMS4xODYyNSwgMS40NDY5NSwgMS44MTkwMSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE1ODQxNSwgMC42Njc3LCAxLjE3Nzc1LCAxLjU0MTk5LCAyLjEyNDc2LCAyLjYzNDgzLCAzLjM2MzI4IiwgXAotICAgICAgICAgICIwLjE1ODM1NiwgMC42Njc3OTgsIDEuMTc3OTcsIDEuNTQyMDUsIDIuMTI0NTgsIDIuNjM1MTMsIDMuMzYzODQiLCBcCi0gICAgICAgICAgIjAuMTU4MjY3LCAwLjY2NzY2NCwgMS4xNzc2OCwgMS41NDE5OSwgMi4xMjQ1NCwgMi42MzUxNCwgMy4zNjMwMiIsIFwKLSAgICAgICAgICAiMC4xNTkyMTMsIDAuNjY3NzM0LCAxLjE3NzYyLCAxLjU0MjA1LCAyLjEyNDk2LCAyLjYzNTIsIDMuMzYzMyIsIFwKLSAgICAgICAgICAiMC4xNjEzMjMsIDAuNjY3NjgsIDEuMTc3NzQsIDEuNTQxODQsIDIuMTI0NTgsIDIuNjM1MDEsIDMuMzY0IiwgXAotICAgICAgICAgICIwLjE2NjM0NiwgMC42Njc3NDEsIDEuMTc3OSwgMS41NDE5NCwgMi4xMjQ1MiwgMi42MzQzNCwgMy4zNjQxIiwgXAotICAgICAgICAgICIwLjE3MjAyMywgMC42Njc5OSwgMS4xNzc2LCAxLjU0MTk2LCAyLjEyNTA4LCAyLjYzNTIyLCAzLjM2MzIyIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTY3ODYzLCAwLjYwOTIyMywgMS4wNDc5NywgMS4zNjE0NywgMS44NjI2MywgMi4zMDE1MiwgMi45MjY5MyIsIFwKLSAgICAgICAgICAiMC4xNzkzMjcsIDAuNjIwODYzLCAxLjA1OTk0LCAxLjM3MzA5LCAxLjg3NDA3LCAyLjMxMzA5LCAyLjkzODU4IiwgXAotICAgICAgICAgICIwLjE5MzYzLCAwLjYzNTA1OCwgMS4wNzQzMiwgMS4zODcwOSwgMS44ODg4NiwgMi4zMjY4MywgMi45NTI2NyIsIFwKLSAgICAgICAgICAiMC4yMDcxMjEsIDAuNjQ4NTk2LCAxLjA4Nzk1LCAxLjQwMTM2LCAxLjkwMTc3LCAyLjM0MTQ3LCAyLjk2NjczIiwgXAotICAgICAgICAgICIwLjIxOTk5OSwgMC42NjE3NTMsIDEuMTAxMDIsIDEuNDE0NDgsIDEuOTE1MjcsIDIuMzU0NTcsIDIuOTc5NzciLCBcCi0gICAgICAgICAgIjAuMjM5ODQ0LCAwLjY4MTU4LCAxLjEyMDc1LCAxLjQzNDQ3LCAxLjkzNTYsIDIuMzc0MTMsIDIuOTk5NjEiLCBcCi0gICAgICAgICAgIjAuMjU2NzUyLCAwLjY5ODczMywgMS4xMzc3MiwgMS40NTE0LCAxLjk1Mjc0LCAyLjM5MDc5LCAzLjAxNjQ5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjIxMTgyLCAxLjA0OTIsIDEuODc0OTQsIDIuNDY0NDksIDMuNDA3NTYsIDQuMjM0MjQsIDUuNDE5MjIiLCBcCi0gICAgICAgICAgIjAuMjIxMTc5LCAxLjA0OTE5LCAxLjg3NDg3LCAyLjQ2NDU0LCAzLjQwNzc4LCA0LjIzNDEyLCA1LjQxODY1IiwgXAotICAgICAgICAgICIwLjIyMTE4OSwgMS4wNDkwNiwgMS44NzQ4OCwgMi40NjM2MiwgMy40MDc1NywgNC4yMzM4NywgNS40MTk1NiIsIFwKLSAgICAgICAgICAiMC4yMjEyMjUsIDEuMDQ5MDIsIDEuODc0ODgsIDIuNDY0MzgsIDMuNDA4MzMsIDQuMjM0MTQsIDUuNDE1MTEiLCBcCi0gICAgICAgICAgIjAuMjIwOTkzLCAxLjA0ODgzLCAxLjg3NTA5LCAyLjQ2NDMsIDMuNDA5MzgsIDQuMjM0MTcsIDUuNDE1MSIsIFwKLSAgICAgICAgICAiMC4yMjE1OSwgMS4wNDkwMSwgMS44NzUyMywgMi40NjQzOCwgMy40MDk1NCwgNC4yMzMwNSwgNS40MTcyNCIsIFwKLSAgICAgICAgICAiMC4yMjI5NjMsIDEuMDQ4NzUsIDEuODc0NTMsIDIuNDY0NDQsIDMuNDA4NjcsIDQuMjMzNzUsIDUuNDE4MjYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDgwOTI0LCAwLjM0NjI4MiwgMC42MDc5NDYsIDAuNzk0NDUsIDEuMDkyNjIsIDEuMzUzNTUsIDEuNzI1NDMiLCBcCi0gICAgICAgICAgIjAuMDkwOTI2LCAwLjM1NjQwMiwgMC42MTgwMjIsIDAuODA0NDg2LCAxLjEwMjgxLCAxLjM2MzM4LCAxLjczNTgiLCBcCi0gICAgICAgICAgIjAuMTAzNzU5LCAwLjM2OTIzOSwgMC42MzA5MDksIDAuODE3NDMsIDEuMTE1NTgsIDEuMzc2NTQsIDEuNzQ4NTQiLCBcCi0gICAgICAgICAgIjAuMTE2Nzk1LCAwLjM4MjM2MiwgMC42NDQwNTYsIDAuODMwNTQ2LCAxLjEyODc0LCAxLjM4OTY3LCAxLjc2MTg1IiwgXAotICAgICAgICAgICIwLjEzMDUyNywgMC4zOTU0MjIsIDAuNjU3MTI3LCAwLjg0MzU0NCwgMS4xNDE4MywgMS40MDI0NywgMS43NzQ2IiwgXAotICAgICAgICAgICIwLjE1MjA1MiwgMC40MTYzNzQsIDAuNjc4MDM5LCAwLjg2NDU3NSwgMS4xNjI4MSwgMS40MjM1MywgMS43OTU1NSIsIFwKLSAgICAgICAgICAiMC4xNzExNTEsIDAuNDM0NjgzLCAwLjY5NjQwNCwgMC44ODI4NjYsIDEuMTgxMDksIDEuNDQxNjEsIDEuODE0MTkiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNTg1OTMsIDAuNjY3NzIzLCAxLjE3Nzc3LCAxLjU0MjA5LCAyLjEyNTA4LCAyLjYzNDM4LCAzLjM2MjgxIiwgXAotICAgICAgICAgICIwLjE1ODMzLCAwLjY2NzY0NiwgMS4xNzc3NSwgMS41NDE4NywgMi4xMjQ2LCAyLjYzNTE0LCAzLjM2Mjg3IiwgXAotICAgICAgICAgICIwLjE1ODM1NiwgMC42Njc2NTksIDEuMTc3NzEsIDEuNTQyMDUsIDIuMTI0NTksIDIuNjM0NTUsIDMuMzYyOTQiLCBcCi0gICAgICAgICAgIjAuMTYxMTkyLCAwLjY2NzY3LCAxLjE3NzU3LCAxLjU0MjA1LCAyLjEyNDU2LCAyLjYzNDY2LCAzLjM2MjkzIiwgXAotICAgICAgICAgICIwLjE2NTUwNCwgMC42Njc2NDYsIDEuMTc3NzQsIDEuNTQyMTEsIDIuMTI0OTksIDIuNjM0NDIsIDMuMzYzMzMiLCBcCi0gICAgICAgICAgIjAuMTc0ODgyLCAwLjY2NzY3OCwgMS4xNzc4NiwgMS41NDE5LCAyLjEyNDk4LCAyLjYzNDgsIDMuMzYzMDgiLCBcCi0gICAgICAgICAgIjAuMTg0OTA3LCAwLjY2ODQxMSwgMS4xNzc2OSwgMS41NDE4OCwgMi4xMjUxLCAyLjYzNTIsIDMuMzYyOCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE1MjYzMywgMC41OTQwOSwgMS4wMzQwOCwgMS4zNDg5OCwgMS44NTA4MiwgMi4yOTE5MSwgMi45MTkyIiwgXAotICAgICAgICAgICIwLjE2NDYzNiwgMC42MDY0OSwgMS4wNDY5NSwgMS4zNjEzLCAxLjg2MzgxLCAyLjMwNDM3LCAyLjkzMTc2IiwgXAotICAgICAgICAgICIwLjE3ODY1NiwgMC42MjEwMiwgMS4wNjE0LCAxLjM3NjA2LCAxLjg3ODAxLCAyLjMxOTEyLCAyLjk0NjQ3IiwgXAotICAgICAgICAgICIwLjE5MTkyMSwgMC42MzQ3NzYsIDEuMDc1MywgMS4zODk0OCwgMS44OTI0OSwgMi4zMzI2OSwgMi45NjAyNCIsIFwKLSAgICAgICAgICAiMC4yMDQ1ODYsIDAuNjQ3NzQ2LCAxLjA4ODA2LCAxLjQwMjEsIDEuOTA1MDgsIDIuMzQ1ODcsIDIuOTczNDQiLCBcCi0gICAgICAgICAgIjAuMjI0MjM0LCAwLjY2NzM0NywgMS4xMDc5NywgMS40MjI1LCAxLjkyNTcsIDIuMzY1MTcsIDIuOTkyODgiLCBcCi0gICAgICAgICAgIjAuMjQwOTc1LCAwLjY4NDM0MSwgMS4xMjQ4LCAxLjQzOTUyLCAxLjk0MjU3LCAyLjM4MjA4LCAzLjAwOTkzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjA1MTczLCAxLjAzNDAxLCAxLjg2NjIxLCAyLjQ1MzQ5LCAzLjQwMDM5LCA0LjIyODgxLCA1LjQxOTk3IiwgXAotICAgICAgICAgICIwLjIwNTE3LCAxLjAzNDI5LCAxLjg2MjA0LCAyLjQ2NzM3LCAzLjQwNzkxLCA0LjIyODY1LCA1LjQxOTczIiwgXAotICAgICAgICAgICIwLjIwNDkyOSwgMS4wMzQzMiwgMS44NjI3LCAyLjQ2NjU0LCAzLjQxNTIzLCA0LjIyODU5LCA1LjQxOTgiLCBcCi0gICAgICAgICAgIjAuMjA0OTM3LCAxLjAzNDQxLCAxLjg2Njg3LCAyLjQ2NzE5LCAzLjM5OTQ4LCA0LjI0NjQsIDUuNDE5NjkiLCBcCi0gICAgICAgICAgIjAuMjA1MTc1LCAxLjAzNDE3LCAxLjg2MjI3LCAyLjQ2NjY2LCAzLjQxMzI2LCA0LjIyOTYxLCA1LjQxOTc2IiwgXAotICAgICAgICAgICIwLjIwNTYyLCAxLjAzMzc0LCAxLjg2MjY4LCAyLjQ1Nzk5LCAzLjQwMjcyLCA0LjI0NTQ0LCA1LjQyMDA0IiwgXAotICAgICAgICAgICIwLjIwNzQzOSwgMS4wMzM5NywgMS44NjQzNiwgMi40Njc0NSwgMy40MDA2OCwgNC4yNDUzMywgNS40MTkzNyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzc5NTIsIDAuMzQwNDQ4LCAwLjYwMTAyMywgMC43ODczODEsIDEuMDg1NDksIDEuMzQ2MDIsIDEuNzE4NDUiLCBcCi0gICAgICAgICAgIjAuMDg5NTYxLCAwLjM1MjEyOCwgMC42MTI5NTIsIDAuNzk5MDcxLCAxLjA5NzE4LCAxLjM1Nzc0LCAxLjczMDE1IiwgXAotICAgICAgICAgICIwLjEwMjU4NywgMC4zNjUxMzEsIDAuNjI2MTQyLCAwLjgxMjI1NCwgMS4xMTAzNywgMS4zNzA5NSwgMS43NDMzNiIsIFwKLSAgICAgICAgICAiMC4xMTUwODUsIDAuMzc3Nzc1LCAwLjYzODY1NywgMC44MjQ4MzIsIDEuMTIyODEsIDEuMzgzNTMsIDEuNzU2IiwgXAotICAgICAgICAgICIwLjEyNzQ4OCwgMC4zOTAyOTgsIDAuNjUxNDI3LCAwLjgzNzU0NywgMS4xMzU0MywgMS4zOTYxOSwgMS43NjgzOSIsIFwKLSAgICAgICAgICAiMC4xNDcxNTIsIDAuNDEwMDU0LCAwLjY3MTA3MywgMC44NTc0NjYsIDEuMTU1MzgsIDEuNDE2MSwgMS43ODg1IiwgXAotICAgICAgICAgICIwLjE2MzgxOSwgMC40MjczMDksIDAuNjg4NDg5LCAwLjg3NDc3MiwgMS4xNzI4MSwgMS40MzM0NywgMS44MDU3MyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE0NTQ0LCAwLjY1NDY5NiwgMS4xNjQwNCwgMS41MjgzNywgMi4xMTE0LCAyLjYyMDg2LCAzLjM0OTA1IiwgXAotICAgICAgICAgICIwLjE0NTQyNiwgMC42NTQ3MDksIDEuMTY0MjgsIDEuNTI4NjUsIDIuMTExMzYsIDIuNjIxNDcsIDMuMzQ5MzIiLCBcCi0gICAgICAgICAgIjAuMTQ1NTE5LCAwLjY1NDcyNCwgMS4xNjQyNiwgMS41MjgzMiwgMi4xMTEzNywgMi42MjA3NSwgMy4zNDkxOSIsIFwKLSAgICAgICAgICAiMC4xNDY4NzcsIDAuNjU0NjQyLCAxLjE2NDIxLCAxLjUyODMyLCAyLjExMTAzLCAyLjYyMTE1LCAzLjM0OTEzIiwgXAotICAgICAgICAgICIwLjE0OTM3MSwgMC42NTQ1NjMsIDEuMTY0MjYsIDEuNTI4MzMsIDIuMTExMDYsIDIuNjIxNTYsIDMuMzQ4OTQiLCBcCi0gICAgICAgICAgIjAuMTU1MTk4LCAwLjY1NDYwOSwgMS4xNjQ0LCAxLjUyODI4LCAyLjExMTI2LCAyLjYyMDc1LCAzLjM0OTE5IiwgXAotICAgICAgICAgICIwLjE2MTQ3NSwgMC42NTUwODcsIDEuMTY0NDEsIDEuNTI4MywgMi4xMTA5NSwgMi42MjE0OSwgMy4zNDk4OSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE1NDk3NywgMC41OTYzNywgMS4wMzQ4NCwgMS4zNDgzOSwgMS44NTAzLCAyLjI4NzkyLCAyLjkxMzUzIiwgXAotICAgICAgICAgICIwLjE2NTMyMiwgMC42MDY4MTgsIDEuMDQ1NzEsIDEuMzU5MjEsIDEuODYwMDEsIDIuMjk4NTUsIDIuOTI0NTIiLCBcCi0gICAgICAgICAgIjAuMTc4NDMyLCAwLjYyMDEwOSwgMS4wNTkwMywgMS4zNzI1NywgMS44NzMzNywgMi4zMTE3NiwgMi45Mzc3MSIsIFwKLSAgICAgICAgICAiMC4xOTEyNjMsIDAuNjMyOTk4LCAxLjA3MjMzLCAxLjM4NTE2LCAxLjg4NzAyLCAyLjMyNDcyLCAyLjk1MDYiLCBcCi0gICAgICAgICAgIjAuMjA0MDg4LCAwLjY0NTYyMywgMS4wODUwMiwgMS4zOTg1NCwgMS44OTkzOCwgMi4zMzgwNSwgMi45NjM3MiIsIFwKLSAgICAgICAgICAiMC4yMjQzMTcsIDAuNjY2MzI4LCAxLjEwNTE3LCAxLjQxODk1LCAxLjkyMDIsIDIuMzU4NDIsIDIuOTg0IiwgXAotICAgICAgICAgICIwLjI0MTkxNywgMC42ODM5NzIsIDEuMTIzMDgsIDEuNDM3MDMsIDEuOTM3NzcsIDIuMzc2NDQsIDMuMDAxNzkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMjExNjEsIDEuMDQ5MTYsIDEuODc3MTQsIDIuNDY0NzcsIDMuNDA3ODgsIDQuMjMzNDQsIDUuNDE4MzgiLCBcCi0gICAgICAgICAgIjAuMjIxMTY3LCAxLjA0ODc1LCAxLjg3NTAzLCAyLjQ2NDY3LCAzLjQwODEsIDQuMjM1MTEsIDUuNDE0OTYiLCBcCi0gICAgICAgICAgIjAuMjIxMTcsIDEuMDQ4ODYsIDEuODc1MDMsIDIuNDY0MzgsIDMuNDA4MTIsIDQuMjMzNzYsIDUuNDE4MjUiLCBcCi0gICAgICAgICAgIjAuMjIxMTYyLCAxLjA0OTE0LCAxLjg3NDgxLCAyLjQ2NTAxLCAzLjQwNzY4LCA0LjIzMzc2LCA1LjQxNDUyIiwgXAotICAgICAgICAgICIwLjIyMTI3NywgMS4wNDkwNSwgMS44NzQ5NiwgMi40NjQ4LCAzLjQwODEzLCA0LjIzMjk5LCA1LjQxNTMyIiwgXAotICAgICAgICAgICIwLjIyMzE4OCwgMS4wNDkxNSwgMS44NzQxMSwgMi40NjQ0MSwgMy40MDk3NSwgNC4yMzMyLCA1LjQxNjc0IiwgXAotICAgICAgICAgICIwLjIyNjQ1LCAxLjA0OTAyLCAxLjg3NTExLCAyLjQ2NDM0LCAzLjQwODc0LCA0LjIzMzA3LCA1LjQxNjkyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIxIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3MTE0NiwgMC4zMzM1MTQsIDAuNTk0MzcsIDAuNzgwODQyLCAxLjA3ODU4LCAxLjMzOTQ0LCAxLjcxMTYxIiwgXAotICAgICAgICAgICIwLjA4MTMyNSwgMC4zNDM4MiwgMC42MDQ2NzYsIDAuNzkxMzA0LCAxLjA4ODkzLCAxLjM0OTc1LCAxLjcyMTk5IiwgXAotICAgICAgICAgICIwLjA5NDYzOSwgMC4zNTcyODUsIDAuNjE4MTc4LCAwLjgwNDUwNCwgMS4xMDIzNCwgMS4zNjI5OSwgMS43MzU1IiwgXAotICAgICAgICAgICIwLjEwNzE5MywgMC4zNjk3ODUsIDAuNjMwNTczLCAwLjgxNjk2NiwgMS4xMTQ5OCwgMS4zNzU2NywgMS43NDgxMSIsIFwKLSAgICAgICAgICAiMC4xMjA4NDIsIDAuMzgyOTIyLCAwLjY0Mzg5NCwgMC44Mjk5OTgsIDEuMTI4MDMsIDEuMzg4NzUsIDEuNzYxIiwgXAotICAgICAgICAgICIwLjE0MjMxMiwgMC40MDM3NTgsIDAuNjY0ODQ3LCAwLjg1MTA1MywgMS4xNDg5OCwgMS40MTAzOSwgMS43ODIwOSIsIFwKLSAgICAgICAgICAiMC4xNjA0NjUsIDAuNDIyMDc5LCAwLjY4MzAzNiwgMC44NjkyODUsIDEuMTY3MzYsIDEuNDI4MDEsIDEuODAwNDYiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNDU0NDQsIDAuNjU0Njk1LCAxLjE2NDI0LCAxLjUyODcyLCAyLjExMTUsIDIuNjIwOTEsIDMuMzQ4OTYiLCBcCi0gICAgICAgICAgIjAuMTQ1NDE3LCAwLjY1NDcxNSwgMS4xNjQxMywgMS41Mjg0OCwgMi4xMTEyMSwgMi42MjE0OSwgMy4zNDkiLCBcCi0gICAgICAgICAgIjAuMTQ2MTA2LCAwLjY1NDYxLCAxLjE2NDM1LCAxLjUyODMxLCAyLjExMTM2LCAyLjYyMTQyLCAzLjM0OTE5IiwgXAotICAgICAgICAgICIwLjE1MDAxMywgMC42NTQ2NTcsIDEuMTY0MTQsIDEuNTI4MzIsIDIuMTExNTEsIDIuNjIwOTMsIDMuMzQ5MzMiLCBcCi0gICAgICAgICAgIjAuMTU1MTQ2LCAwLjY1NDU5NiwgMS4xNjQxOSwgMS41MjgyOSwgMi4xMTA5OCwgMi42MjA3LCAzLjM0ODk0IiwgXAotICAgICAgICAgICIwLjE2NTg5NSwgMC42NTQ0ODksIDEuMTY0MTUsIDEuNTI4MjEsIDIuMTEwODcsIDIuNjIxNCwgMy4zNDkwNyIsIFwKLSAgICAgICAgICAiMC4xNzcwMjUsIDAuNjU1NjU5LCAxLjE2NDQsIDEuNTI4NTksIDIuMTExMzQsIDIuNjIxMTksIDMuMzQ5MDIiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMzkzNzgsIDAuNTgwOTA2LCAxLjAyMDkzLCAxLjMzNDk1LCAxLjgzNzc5LCAyLjI3NzA2LCAyLjkwNTQ1IiwgXAotICAgICAgICAgICIwLjE1MDI1OCwgMC41OTIzMjIsIDEuMDMyNDMsIDEuMzQ2NzQsIDEuODQ5MjgsIDIuMjg4OTUsIDIuOTE3MjQiLCBcCi0gICAgICAgICAgIjAuMTYzMTY2LCAwLjYwNTUyMSwgMS4wNDU2OCwgMS4zNjAxMywgMS44NjM1NiwgMi4zMDI2NiwgMi45MzA0NSIsIFwKLSAgICAgICAgICAiMC4xNzU4NDMsIDAuNjE4NDk3LCAxLjA1OTA1LCAxLjM3MzQzLCAxLjg3NjA0LCAyLjMxNTkxLCAyLjk0MzY2IiwgXAotICAgICAgICAgICIwLjE4ODMxMiwgMC42MzEyMDksIDEuMDcxODEsIDEuMzg2MjUsIDEuODg4NzksIDIuMzI5MTksIDIuOTU2NjEiLCBcCi0gICAgICAgICAgIjAuMjA4MjcxLCAwLjY1MTYxLCAxLjA5MjI4LCAxLjQwNjc0LCAxLjkwOTQxLCAyLjM0OTQsIDIuOTc2ODMiLCBcCi0gICAgICAgICAgIjAuMjI1NzA1LCAwLjY2OTExNiwgMS4xMDk4MiwgMS40MjQ1NywgMS45MjcxNCwgMi4zNjcwOSwgMi45OTQ3OCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIwNTAwNywgMS4wMzQ1NCwgMS44NjMxMywgMi40NjU5MywgMy40MTU2OCwgNC4yNDQ5MywgNS40MjMwNiIsIFwKLSAgICAgICAgICAiMC4yMDUwMDcsIDEuMDM0NTEsIDEuODYzMDUsIDIuNDU1ODIsIDMuNDE1NjMsIDQuMjQ1NDgsIDUuNDE5MDEiLCBcCi0gICAgICAgICAgIjAuMjA1MDEyLCAxLjAzNDMxLCAxLjg2MzM5LCAyLjQ1Nzc1LCAzLjQwMjI4LCA0LjI0NTQyLCA1LjQyMjE1IiwgXAotICAgICAgICAgICIwLjIwNTAwNCwgMS4wMzQyMSwgMS44NjcyNSwgMi40NTk5LCAzLjQxNTk4LCA0LjI0NTE5LCA1LjQyMTU1IiwgXAotICAgICAgICAgICIwLjIwNTA5NywgMS4wMzQyNiwgMS44NjI5OSwgMi40NTU4MywgMy40MTU2NywgNC4yMzExMSwgNS40MjI3NSIsIFwKLSAgICAgICAgICAiMC4yMDc1MTQsIDEuMDM0NzQsIDEuODYzMzUsIDIuNDY2NzYsIDMuNDAzMTIsIDQuMjQ2MDEsIDUuNDE5MzEiLCBcCi0gICAgICAgICAgIjAuMjExNTgsIDEuMDM0NjIsIDEuODYzNjEsIDIuNDY2NzMsIDMuNDAyNzksIDQuMjQ1OSwgNS40MjAzNyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzIyMzQsIDAuMTU5MjU4LCAwLjI4NjI2MywgMC4zNzY5NDksIDAuNTIxNzcyLCAwLjY0ODkzNSwgMC44Mjk5MDEiLCBcCi0gICAgICAgICAgIjAuMDQzOTk2LCAwLjE3MDY0MiwgMC4yOTc2MDMsIDAuMzg4MzMxLCAwLjUzMzE2NCwgMC42NjAwMzQsIDAuODQxNjQ5IiwgXAotICAgICAgICAgICIwLjA1ODY3NiwgMC4xODUzODIsIDAuMzEyMzU5LCAwLjQwMzAzNywgMC41NDUzMjcsIDAuNjcyNDY1LCAwLjg1MzQ0NiIsIFwKLSAgICAgICAgICAiMC4wNzM2MTMsIDAuMTk5OTk1LCAwLjMyNjg5MywgMC40MTc1NzEsIDAuNTYxOTg4LCAwLjY4Njg4OSwgMC44NjgxNDEiLCBcCi0gICAgICAgICAgIjAuMDg3MjUzLCAwLjIxNDkyLCAwLjM0MTQ2NiwgMC40MzE5NjcsIDAuNTc3MTgxLCAwLjcwMTA5LCAwLjg4MjA5NiIsIFwKLSAgICAgICAgICAiMC4xMDY0NzcsIDAuMjM4OTUzLCAwLjM2NTA3MSwgMC40NTUyODksIDAuNjAwMTc2LCAwLjcyNzA2OSwgMC45MDQ1MzkiLCBcCi0gICAgICAgICAgIjAuMTIxNTk3LCAwLjI1OTYyNCwgMC4zODU3NjgsIDAuNDc1ODc2LCAwLjYyMDYsIDAuNzQ3NDE0LCAwLjkyODYzNyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3ODAwOCwgMC4zMzM4ODMsIDAuNTkwOTMyLCAwLjc3NDU1NywgMS4wNjg1OCwgMS4zMjU5MiwgMS42OTMyNyIsIFwKLSAgICAgICAgICAiMC4wNzg1ODIsIDAuMzMzODg2LCAwLjU5MDgzNiwgMC43NzQ2MzcsIDEuMDY4NDgsIDEuMzI1NjgsIDEuNjkzODUiLCBcCi0gICAgICAgICAgIjAuMDgzMzc5LCAwLjMzMzg1NCwgMC41OTA4MDksIDAuNzc0NjY1LCAxLjA2ODQ4LCAxLjMyNTkyLCAxLjY5MzI5IiwgXAotICAgICAgICAgICIwLjA5MDIwNiwgMC4zMzM4OTIsIDAuNTkwODUxLCAwLjc3NDY0MywgMS4wNjg0OSwgMS4zMjU3MSwgMS42OTMzNyIsIFwKLSAgICAgICAgICAiMC4wOTg1MjcsIDAuMzM0OTcxLCAwLjU5MDgxLCAwLjc3NDUxOSwgMS4wNjg3MywgMS4zMjU3NSwgMS42OTMyNiIsIFwKLSAgICAgICAgICAiMC4xMTMzNzUsIDAuMzM5MTgsIDAuNTkwOTQzLCAwLjc3NDYwNywgMS4wNjg0NiwgMS4zMjU3NiwgMS42OTM1MiIsIFwKLSAgICAgICAgICAiMC4xMjczOTIsIDAuMzQ0OTM5LCAwLjU5MjUxNywgMC43NzQ1OTUsIDEuMDY4NDYsIDEuMzI1ODQsIDEuNjkzNDIiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMzUwODIsIDAuNTc2NDcsIDEuMDE1NjEsIDEuMzI4OCwgMS44MzA0NCwgMi4yNjg0NSwgMi44OTM5MSIsIFwKLSAgICAgICAgICAiMC4xNDQ1NDUsIDAuNTg2NDcyLCAxLjAyNTI0LCAxLjMzODU0LCAxLjgzOTcsIDIuMjc3NjcsIDIuOTA0IiwgXAotICAgICAgICAgICIwLjE1NjM3LCAwLjU5ODY2NSwgMS4wMzc1MywgMS4zNTA4MSwgMS44NTI3MSwgMi4yOTAyNCwgMi45MTY3MSIsIFwKLSAgICAgICAgICAiMC4xNjkyMTksIDAuNjExNjkxLCAxLjA1MDYxLCAxLjM2NDMyLCAxLjg2NTcsIDIuMzAzODQsIDIuOTI5NTgiLCBcCi0gICAgICAgICAgIjAuMTgwNTgzLCAwLjYyMzE2MSwgMS4wNjIyNSwgMS4zNzU5NywgMS44NzczNiwgMi4zMTU0LCAyLjk0MTE0IiwgXAotICAgICAgICAgICIwLjIwMTExNSwgMC42NDI2MDcsIDEuMDgxODcsIDEuMzk1ODksIDEuODk2ODEsIDIuMzM1MTMsIDIuOTYwODYiLCBcCi0gICAgICAgICAgIjAuMjE4NzM1LCAwLjY1OTc5NSwgMS4wOTkzMywgMS40MTI1NCwgMS45MTQxMywgMi4zNTIyMywgMi45Nzg3MyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIyMTE0MywgMS4wNDg3MiwgMS44NzU0NywgMi40NjYxNiwgMy40MDg4NSwgNC4yNDYwMiwgNS40MjE1OSIsIFwKLSAgICAgICAgICAiMC4yMjEwNzQsIDEuMDQ4NzcsIDEuODc0MTQsIDIuNDY0NjUsIDMuNDA4NTEsIDQuMjQzNDksIDUuNDIwNjEiLCBcCi0gICAgICAgICAgIjAuMjIwNjU4LCAxLjA0ODg1LCAxLjg3NTA1LCAyLjQ2MzY0LCAzLjQwNzU4LCA0LjI0NTM5LCA1LjQyMDE5IiwgXAotICAgICAgICAgICIwLjIyMDEzMiwgMS4wNDkxNiwgMS44NzQxMSwgMi40NjY3MywgMy40MDg2MSwgNC4yNDU1OSwgNS40MjE2NiIsIFwKLSAgICAgICAgICAiMC4yMjE3NiwgMS4wNDg4OCwgMS44NzQ1NCwgMi40Njc0NiwgMy40MDg2NCwgNC4yNDUzMywgNS40MTkzNSIsIFwKLSAgICAgICAgICAiMC4yMjcwMzUsIDEuMDQ4NDMsIDEuODc1MTEsIDIuNDY0MzQsIDMuNDA5LCA0LjI0NTM4LCA1LjQxOTE0IiwgXAotICAgICAgICAgICIwLjIzMzYsIDEuMDQ4NDEsIDEuODc0ODksIDIuNDY0NzcsIDMuNDE2LCA0LjI0NDE0LCA1LjQxNTQxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEyNTMzLCAwLjAxMjUyNiwgMC4wMTI1MjYsIDAuMDEyNTIyLCAwLjAxMjUxOSwgMC4wMTI1MTIsIDAuMDEyNTExIiwgXAotICAgICAgICAgICIwLjAxMjQ4NSwgMC4wMTI0ODQsIDAuMDEyNDgzLCAwLjAxMjQ3OSwgMC4wMTI0NzEsIDAuMDEyNDY3LCAwLjAxMjQ2IiwgXAotICAgICAgICAgICIwLjAxMjQ1NywgMC4wMTI0NzEsIDAuMDEyNDY1LCAwLjAxMjQ2NSwgMC4wMTI0NTksIDAuMDEyNDUyLCAwLjAxMjQ0OSIsIFwKLSAgICAgICAgICAiMC4wMTI0NTIsIDAuMDEyNDYsIDAuMDEyNDU2LCAwLjAxMjQ1NSwgMC4wMTI0NTMsIDAuMDEyNDQ2LCAwLjAxMjQ0NCIsIFwKLSAgICAgICAgICAiMC4wMTI0NCwgMC4wMTI0NTYsIDAuMDEyNDU0LCAwLjAxMjQ1NCwgMC4wMTI0NDcsIDAuMDEyNDQ1LCAwLjAxMjQzNyIsIFwKLSAgICAgICAgICAiMC4wMTI0MjcsIDAuMDEyNDQ5LCAwLjAxMjQ1MiwgMC4wMTI0NDgsIDAuMDEyNDQ1LCAwLjAxMjQ0MywgMC4wMTI0MzQiLCBcCi0gICAgICAgICAgIjAuMDEyNDE2LCAwLjAxMjQ0NiwgMC4wMTI0NSwgMC4wMTI0NDgsIDAuMDEyNDQ1LCAwLjAxMjQzOSwgMC4wMTI0MzQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDc0NiwgMC4wMDQ3NDUsIDAuMDA0NzQxLCAwLjAwNDc0NCwgMC4wMDQ3NDIsIDAuMDA0NzMsIDAuMDA0NzI5IiwgXAotICAgICAgICAgICIwLjAwNDY3NSwgMC4wMDQ2OTIsIDAuMDA0NjkyLCAwLjAwNDY5MiwgMC4wMDQ2OTEsIDAuMDA0NjgsIDAuMDA0Njc5IiwgXAotICAgICAgICAgICIwLjAwNDYzOCwgMC4wMDQ2NzMsIDAuMDA0Njc4LCAwLjAwNDY3NywgMC4wMDQ2NzMsIDAuMDA0NjcxLCAwLjAwNDY3MSIsIFwKLSAgICAgICAgICAiMC4wMDQ2MTEsIDAuMDA0NjYsIDAuMDA0NjY5LCAwLjAwNDY2OSwgMC4wMDQ2NywgMC4wMDQ2NywgMC4wMDQ2NjYiLCBcCi0gICAgICAgICAgIjAuMDA0NTkxLCAwLjAwNDY1MywgMC4wMDQ2NjIsIDAuMDA0NjY1LCAwLjAwNDY2NiwgMC4wMDQ2NjMsIDAuMDA0NjYiLCBcCi0gICAgICAgICAgIjAuMDA0NTY4LCAwLjAwNDY0MiwgMC4wMDQ2NTQsIDAuMDA0NjU4LCAwLjAwNDY1OSwgMC4wMDQ2NTgsIDAuMDA0NjU2IiwgXAotICAgICAgICAgICIwLjAwNDU1LCAwLjAwNDYzMSwgMC4wMDQ2NDcsIDAuMDA0NjUyLCAwLjAwNDY1NCwgMC4wMDQ2NTYsIDAuMDA0NjUzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDExNTM1LCAwLjAxMTUzMSwgMC4wMTE1MjUsIDAuMDExNTIyLCAwLjAxMTUyLCAwLjAxMTUxNSwgMC4wMTE1MDgiLCBcCi0gICAgICAgICAgIjAuMDExNDc2LCAwLjAxMTQ4NCwgMC4wMTE0ODEsIDAuMDExNDc1LCAwLjAxMTQ3MiwgMC4wMTE0NjYsIDAuMDExNDYiLCBcCi0gICAgICAgICAgIjAuMDExNDQxLCAwLjAxMTQ2LCAwLjAxMTQ2LCAwLjAxMTQ1NywgMC4wMTE0NTQsIDAuMDExNDUsIDAuMDExNDQzIiwgXAotICAgICAgICAgICIwLjAxMTQyMSwgMC4wMTE0NTEsIDAuMDExNDUzLCAwLjAxMTQ1MiwgMC4wMTE0NDksIDAuMDExNDQzLCAwLjAxMTQzNiIsIFwKLSAgICAgICAgICAiMC4wMTE0MDYsIDAuMDExNDQyLCAwLjAxMTQ0NiwgMC4wMTE0NDUsIDAuMDExNDQxLCAwLjAxMTQ0MiwgMC4wMTE0MzQiLCBcCi0gICAgICAgICAgIjAuMDExMzgzLCAwLjAxMTQzLCAwLjAxMTQzOSwgMC4wMTE0MzcsIDAuMDExNDM2LCAwLjAxMTQzNiwgMC4wMTE0MjkiLCBcCi0gICAgICAgICAgIjAuMDExMzcyLCAwLjAxMTQyNSwgMC4wMTE0MzMsIDAuMDExNDMzLCAwLjAxMTQzMiwgMC4wMTE0MjksIDAuMDExNDI0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDM0MTYsIDAuMDAzNDMsIDAuMDAzNDM0LCAwLjAwMzQzNSwgMC4wMDM0MywgMC4wMDM0MjEsIDAuMDAzNDE5IiwgXAotICAgICAgICAgICIwLjAwMzM5OSwgMC4wMDM0NjMsIDAuMDAzNDcsIDAuMDAzNDc1LCAwLjAwMzQ3NSwgMC4wMDM0NywgMC4wMDM0NjkiLCBcCi0gICAgICAgICAgIjAuMDAzMzQ1LCAwLjAwMzQ1NCwgMC4wMDM0NywgMC4wMDM0NzMsIDAuMDAzNDc4LCAwLjAwMzQ4MSwgMC4wMDM0OCIsIFwKLSAgICAgICAgICAiMC4wMDMyOTYsIDAuMDAzNDM4LCAwLjAwMzQ2MSwgMC4wMDM0NjgsIDAuMDAzNDczLCAwLjAwMzQ3NywgMC4wMDM0NzciLCBcCi0gICAgICAgICAgIjAuMDAzMjU2LCAwLjAwMzQyMSwgMC4wMDM0NTEsIDAuMDAzNDYsIDAuMDAzNDY4LCAwLjAwMzQ3MSwgMC4wMDM0NzMiLCBcCi0gICAgICAgICAgIjAuMDAzMjA5LCAwLjAwMzM5OSwgMC4wMDM0MzYsIDAuMDAzNDQ5LCAwLjAwMzQ2LCAwLjAwMzQ2NSwgMC4wMDM0NjkiLCBcCi0gICAgICAgICAgIjAuMDAzMTc5LCAwLjAwMzM3NiwgMC4wMDM0MjMsIDAuMDAzNDM4LCAwLjAwMzQ1MiwgMC4wMDM0NTksIDAuMDAzNDY0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA5NTYsIDAuMDA5NTU5LCAwLjAwOTU1NywgMC4wMDk1NTYsIDAuMDA5NTU1LCAwLjAwOTU1MiwgMC4wMDk1NSIsIFwKLSAgICAgICAgICAiMC4wMDk1NDYsIDAuMDA5NTU5LCAwLjAwOTU1OSwgMC4wMDk1NTgsIDAuMDA5NTU3LCAwLjAwOTU1NSwgMC4wMDk1NSIsIFwKLSAgICAgICAgICAiMC4wMDk1MjEsIDAuMDA5NTU0LCAwLjAwOTU1NiwgMC4wMDk1NTYsIDAuMDA5NTUzLCAwLjAwOTU1NCwgMC4wMDk1NTEiLCBcCi0gICAgICAgICAgIjAuMDA5NTA0LCAwLjAwOTU0OSwgMC4wMDk1NTMsIDAuMDA5NTUzLCAwLjAwOTU1NCwgMC4wMDk1NTMsIDAuMDA5NTUiLCBcCi0gICAgICAgICAgIjAuMDA5NDg3LCAwLjAwOTU0MywgMC4wMDk1NTEsIDAuMDA5NTUxLCAwLjAwOTU1MywgMC4wMDk1NSwgMC4wMDk1NDgiLCBcCi0gICAgICAgICAgIjAuMDA5NDY1LCAwLjAwOTUzNSwgMC4wMDk1NDQsIDAuMDA5NTQ3LCAwLjAwOTU0OCwgMC4wMDk1NDksIDAuMDA5NTQ3IiwgXAotICAgICAgICAgICIwLjAwOTQ0NiwgMC4wMDk1MjksIDAuMDA5NTQxLCAwLjAwOTU0NSwgMC4wMDk1NDYsIDAuMDA5NTQ2LCAwLjAwOTU0NSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0NzQ2LCAwLjAwNDc0NCwgMC4wMDQ3NDMsIDAuMDA0NzM3LCAwLjAwNDc0NywgMC4wMDQ3NDQsIDAuMDA0NzMxIiwgXAotICAgICAgICAgICIwLjAwNDY3NSwgMC4wMDQ2OTIsIDAuMDA0NjksIDAuMDA0NjksIDAuMDA0NjkyLCAwLjAwNDY4NiwgMC4wMDQ2OCIsIFwKLSAgICAgICAgICAiMC4wMDQ2MzksIDAuMDA0NjczLCAwLjAwNDY3NiwgMC4wMDQ2NzksIDAuMDA0Njc3LCAwLjAwNDY3NiwgMC4wMDQ2NzEiLCBcCi0gICAgICAgICAgIjAuMDA0NjEzLCAwLjAwNDY2MSwgMC4wMDQ2NjgsIDAuMDA0NjcsIDAuMDA0NjcsIDAuMDA0NjY5LCAwLjAwNDY2NiIsIFwKLSAgICAgICAgICAiMC4wMDQ1OTMsIDAuMDA0NjUzLCAwLjAwNDY2NCwgMC4wMDQ2NjYsIDAuMDA0NjY2LCAwLjAwNDY2MywgMC4wMDQ2NiIsIFwKLSAgICAgICAgICAiMC4wMDQ1NjgsIDAuMDA0NjQsIDAuMDA0NjU0LCAwLjAwNDY1OCwgMC4wMDQ2NTgsIDAuMDA0NjU5LCAwLjAwNDY1OCIsIFwKLSAgICAgICAgICAiMC4wMDQ1NDksIDAuMDA0NjI5LCAwLjAwNDY0NywgMC4wMDQ2NTIsIDAuMDA0NjU1LCAwLjAwNDY1NSwgMC4wMDQ2NTUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDg1NDIsIDAuMDA4NTQzLCAwLjAwODU0MSwgMC4wMDg1MzksIDAuMDA4NTM3LCAwLjAwODUzNSwgMC4wMDg1MzIiLCBcCi0gICAgICAgICAgIjAuMDA4NTEyLCAwLjAwODUzNywgMC4wMDg1MzcsIDAuMDA4NTM4LCAwLjAwODUzNiwgMC4wMDg1MzMsIDAuMDA4NTMxIiwgXAotICAgICAgICAgICIwLjAwODQ4LCAwLjAwODUzLCAwLjAwODUzNSwgMC4wMDg1MzYsIDAuMDA4NTM1LCAwLjAwODUzMywgMC4wMDg1MzIiLCBcCi0gICAgICAgICAgIjAuMDA4NDQ5LCAwLjAwODUyMSwgMC4wMDg1MjgsIDAuMDA4NTMyLCAwLjAwODUzMywgMC4wMDg1MzEsIDAuMDA4NTMiLCBcCi0gICAgICAgICAgIjAuMDA4NDI5LCAwLjAwODUxMywgMC4wMDg1MjQsIDAuMDA4NTI4LCAwLjAwODUzMSwgMC4wMDg1MjksIDAuMDA4NTI4IiwgXAotICAgICAgICAgICIwLjAwODQwNCwgMC4wMDg1LCAwLjAwODUxNywgMC4wMDg1MjEsIDAuMDA4NTIzLCAwLjAwODUyNSwgMC4wMDg1MjQiLCBcCi0gICAgICAgICAgIjAuMDA4Mzg5LCAwLjAwODQ5MSwgMC4wMDg1MTEsIDAuMDA4NTE3LCAwLjAwODUyLCAwLjAwODUyMywgMC4wMDg1MjQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzM5NywgMC4wMDM0MTEsIDAuMDAzNDE1LCAwLjAwMzQxNSwgMC4wMDM0MDYsIDAuMDAzNDEsIDAuMDAzNDA4IiwgXAotICAgICAgICAgICIwLjAwMzM4LCAwLjAwMzQ0NSwgMC4wMDM0NTEsIDAuMDAzNDU1LCAwLjAwMzQ1OSwgMC4wMDM0NTksIDAuMDAzNDU0IiwgXAotICAgICAgICAgICIwLjAwMzMyNiwgMC4wMDM0MzUsIDAuMDAzNDUyLCAwLjAwMzQ1NSwgMC4wMDM0NjEsIDAuMDAzNDYxLCAwLjAwMzQ2IiwgXAotICAgICAgICAgICIwLjAwMzI3OCwgMC4wMDM0MTksIDAuMDAzNDQyLCAwLjAwMzQ0OSwgMC4wMDM0NTYsIDAuMDAzNDU2LCAwLjAwMzQ1OCIsIFwKLSAgICAgICAgICAiMC4wMDMyMzcsIDAuMDAzNDAzLCAwLjAwMzQzMywgMC4wMDM0NDIsIDAuMDAzNDUsIDAuMDAzNDUzLCAwLjAwMzQ1NiIsIFwKLSAgICAgICAgICAiMC4wMDMxOTEsIDAuMDAzMzc3LCAwLjAwMzQxNywgMC4wMDM0MywgMC4wMDM0NDIsIDAuMDAzNDQ3LCAwLjAwMzQ1IiwgXAotICAgICAgICAgICIwLjAwMzE2LCAwLjAwMzM1NywgMC4wMDM0MDUsIDAuMDAzNDIsIDAuMDAzNDM0LCAwLjAwMzQ0LCAwLjAwMzQ0NiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNzAxMywgMC4wMDcwMjgsIDAuMDA3MDMsIDAuMDA3MDMsIDAuMDA3MDMsIDAuMDA3MDMxLCAwLjAwNzAzMSIsIFwKLSAgICAgICAgICAiMC4wMDY5OTcsIDAuMDA3MDYsIDAuMDA3MDY4LCAwLjAwNzA2OSwgMC4wMDcwNzEsIDAuMDA3MDcyLCAwLjAwNzA3MyIsIFwKLSAgICAgICAgICAiMC4wMDY5NjEsIDAuMDA3MDYxLCAwLjAwNzA3MywgMC4wMDcwNzcsIDAuMDA3MDgyLCAwLjAwNzA4MSwgMC4wMDcwODYiLCBcCi0gICAgICAgICAgIjAuMDA2OTI3LCAwLjAwNzA0OSwgMC4wMDcwNzEsIDAuMDA3MDc3LCAwLjAwNzA4NywgMC4wMDcwODMsIDAuMDA3MDkxIiwgXAotICAgICAgICAgICIwLjAwNjkwMSwgMC4wMDcwNDQsIDAuMDA3MDY3LCAwLjAwNzA3MiwgMC4wMDcwOCwgMC4wMDcwODQsIDAuMDA3MDg2IiwgXAotICAgICAgICAgICIwLjAwNjg3NCwgMC4wMDcwMywgMC4wMDcwNTksIDAuMDA3MDY3LCAwLjAwNzA3NiwgMC4wMDcwOCwgMC4wMDcwODUiLCBcCi0gICAgICAgICAgIjAuMDA2ODU4LCAwLjAwNzAxNiwgMC4wMDcwNTIsIDAuMDA3MDU3LCAwLjAwNzA3MiwgMC4wMDcwNzksIDAuMDA3MDgyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQ3ODQsIDAuMDA0ODAyLCAwLjAwNDgwMSwgMC4wMDQ4MDQsIDAuMDA0Nzk3LCAwLjAwNDc4OSwgMC4wMDQ3OTIiLCBcCi0gICAgICAgICAgIjAuMDA0NzE2LCAwLjAwNDc4MSwgMC4wMDQ3OTEsIDAuMDA0NzkzLCAwLjAwNDc5MiwgMC4wMDQ3OTEsIDAuMDA0Nzg4IiwgXAotICAgICAgICAgICIwLjAwNDY1NSwgMC4wMDQ3NiwgMC4wMDQ3NzgsIDAuMDA0NzgzLCAwLjAwNDc4LCAwLjAwNDc4MywgMC4wMDQ3ODMiLCBcCi0gICAgICAgICAgIjAuMDA0NjIsIDAuMDA0NzQxLCAwLjAwNDc2NSwgMC4wMDQ3NzEsIDAuMDA0Nzc3LCAwLjAwNDc3OSwgMC4wMDQ3NzkiLCBcCi0gICAgICAgICAgIjAuMDA0NTg1LCAwLjAwNDcyLCAwLjAwNDc1MiwgMC4wMDQ3NjIsIDAuMDA0NzcsIDAuMDA0NzcsIDAuMDA0NzcyIiwgXAotICAgICAgICAgICIwLjAwNDU1OSwgMC4wMDQ2OTUsIDAuMDA0NzMzLCAwLjAwNDc0NiwgMC4wMDQ3NTgsIDAuMDA0NzYzLCAwLjAwNDc2NCIsIFwKLSAgICAgICAgICAiMC4wMDQ1NDYsIDAuMDA0Njc3LCAwLjAwNDcyLCAwLjAwNDczNSwgMC4wMDQ3NDgsIDAuMDA0NzU1LCAwLjAwNDc1OSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBPQUkyMjJYMSAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoT0FJMjIyWDEpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4xNDQwMjU7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA4NDY0NTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA4NDM2MzI7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwODQ2NDU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzA2LCAwLjAwMDMwNiwgMC4wMDAzMDYsIDAuMDAwMzA2LCAwLjAwMDMwNiwgMC4wMDAzMDYsIDAuMDAwMzA2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzA3LCAwLjAwMDMwNywgMC4wMDAzMDcsIDAuMDAwMzA3LCAwLjAwMDMwNywgMC4wMDAzMDcsIDAuMDAwMzA3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihBMSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwODY4OTY3OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDg2ODk2NzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA4NjUyOTM7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzA2LCAwLjAwMDMwNiwgMC4wMDAzMDYsIDAuMDAwMzA2LCAwLjAwMDMwNiwgMC4wMDAzMDYsIDAuMDAwMzA2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzA2LCAwLjAwMDMwNywgMC4wMDAzMDcsIDAuMDAwMzA3LCAwLjAwMDMwNywgMC4wMDAzMDcsIDAuMDAwMzA3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwODI0MTI1OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDgyMDczNDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA4MjQxMjU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzA2LCAwLjAwMDMwNiwgMC4wMDAzMDYsIDAuMDAwMzA2LCAwLjAwMDMwNiwgMC4wMDAzMDYsIDAuMDAwMzA2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzA3LCAwLjAwMDMwNywgMC4wMDAzMDcsIDAuMDAwMzA3LCAwLjAwMDMwNywgMC4wMDAzMDcsIDAuMDAwMzA3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCMSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwODQwNjk5OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDg0MDY5OTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA4Mzc2ODU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzA2LCAwLjAwMDMwNiwgMC4wMDAzMDYsIDAuMDAwMzA2LCAwLjAwMDMwNiwgMC4wMDAzMDYsIDAuMDAwMzA2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzA3LCAwLjAwMDMwNywgMC4wMDAzMDcsIDAuMDAwMzA3LCAwLjAwMDMwNywgMC4wMDAzMDcsIDAuMDAwMzA3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihDMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwODc1Nzk7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwODY5NTg2OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDg3NTc5OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDM1MiwgMC4wMDAzNTMsIDAuMDAwMzUzLCAwLjAwMDM1MywgMC4wMDAzNTIsIDAuMDAwMzUzLCAwLjAwMDM1MyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDM0NywgMC4wMDAzNDgsIDAuMDAwMzQ4LCAwLjAwMDM0OCwgMC4wMDAzNDgsIDAuMDAwMzQ4LCAwLjAwMDM0OCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQzEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDkyMTE3ODsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA5MjA5Mjg7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwOTIxMTc4OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDM1MiwgMC4wMDAzNTIsIDAuMDAwMzUyLCAwLjAwMDM1MywgMC4wMDAzNTIsIDAuMDAwMzUyLCAwLjAwMDM1MiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDM0NywgMC4wMDAzNDcsIDAuMDAwMzQ4LCAwLjAwMDM0OCwgMC4wMDAzNDgsIDAuMDAwMzQ4LCAwLjAwMDM0OCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjA0NTMxMjk7Ci0gICAgZnVuY3Rpb24gOiAiKCEoKChDMCtDMSkgKEEwK0ExKSkgKEIwK0IxKSkpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjE2MzkxLCAwLjMwNjI1OSwgMC44MTE5OTMsIDEuMjU2ODQsIDEuODQ5OTQsIDMuMDM0MjgsIDMuNzc1MjQiLCBcCi0gICAgICAgICAgIjAuMjI3ODg0LCAwLjMxNzc1MywgMC44MjM0NDEsIDEuMjY4NDYsIDEuODYxMjksIDMuMDQ1ODQsIDMuNzg2NjMiLCBcCi0gICAgICAgICAgIjAuMjQwODgxLCAwLjMzMDg3MywgMC44MzY1NzksIDEuMjgxMjUsIDEuODc0NDMsIDMuMDU4ODcsIDMuNzk5NTYiLCBcCi0gICAgICAgICAgIjAuMjUzNjA5LCAwLjM0MzUxNSwgMC44NDkyNjksIDEuMjk0LCAxLjg4NjY4LCAzLjA3MjExLCAzLjgxMjMxIiwgXAotICAgICAgICAgICIwLjI2NTk1NiwgMC4zNTU5OTMsIDAuODYxNzU5LCAxLjMwNjQzLCAxLjg5OTEsIDMuMDgzOTQsIDMuODI0ODkiLCBcCi0gICAgICAgICAgIjAuMjg1NzgzLCAwLjM3NTUzNSwgMC44ODE2MzksIDEuMzI2MzMsIDEuOTE5MDEsIDMuMTA0MTEsIDMuODQ0NzgiLCBcCi0gICAgICAgICAgIjAuMzAzMjQ0LCAwLjM5MzA2NCwgMC44OTkxMzgsIDEuMzQzODMsIDEuOTM2NDksIDMuMTIxMzgsIDMuODYyMDkiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuNDEyNDU1LCAwLjU4NTc1NSwgMS41Njg3NSwgMi40MzU4OSwgMy41OTI4LCA1LjkwNjEsIDcuMzUxOTIiLCBcCi0gICAgICAgICAgIjAuNDEyNDM5LCAwLjU4NTc2NywgMS41Njg2MSwgMi40MzY0OCwgMy41OTM3MSwgNS45MDQ3NywgNy4zNTE5MyIsIFwKLSAgICAgICAgICAiMC40MTI0NDcsIDAuNTg1ODA4LCAxLjU2OTAxLCAyLjQzNTg5LCAzLjU5MjkyLCA1LjkwNDgsIDcuMzUxNTgiLCBcCi0gICAgICAgICAgIjAuNDEyMzY5LCAwLjU4NTcyMSwgMS41Njg3NCwgMi40MzU4LCAzLjU5MjM4LCA1LjkwNDg1LCA3LjM1MDY2IiwgXAotICAgICAgICAgICIwLjQxMjM3NSwgMC41ODU3NjksIDEuNTY4NzgsIDIuNDM1ODcsIDMuNTkyODQsIDUuOTA2MTQsIDcuMzUxODgiLCBcCi0gICAgICAgICAgIjAuNDEzNjA2LCAwLjU4NTc2MSwgMS41Njg2NiwgMi40MzU4MywgMy41OTI4LCA1LjkwNTQxLCA3LjM1MTY2IiwgXAotICAgICAgICAgICIwLjQxNjA5MywgMC41ODY3NTIsIDEuNTY4OTMsIDIuNDM1ODcsIDMuNTkyODMsIDUuOTA2MDYsIDcuMzUxODQiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzkyMTI0LCAwLjU0MTMyNSwgMS4zODQyNSwgMi4xMjY5NywgMy4xMTgzNSwgNS4xMDg2NSwgNi4zNTI2NyIsIFwKLSAgICAgICAgICAiMC40MDM2NzYsIDAuNTUzMDEyLCAxLjM5NTc3LCAyLjEzODY0LCAzLjEzMDM2LCA1LjEyMDI4LCA2LjM2NDM0IiwgXAotICAgICAgICAgICIwLjQxODE4NywgMC41Njc0ODIsIDEuNDEwMywgMi4xNTMwMywgMy4xNDQ1OCwgNS4xMzQ4OCwgNi4zNzg5MSIsIFwKLSAgICAgICAgICAiMC40MzE4MjUsIDAuNTgxMzYzLCAxLjQyMzcyLCAyLjE2NjQ5LCAzLjE1ODkyLCA1LjE0ODcsIDYuMzkyNzQiLCBcCi0gICAgICAgICAgIjAuNDQ1MDE1LCAwLjU5NDMxMSwgMS40Mzc0OSwgMi4xNzk5NiwgMy4xNzE3MywgNS4xNjE5NSwgNi40MDYwNiIsIFwKLSAgICAgICAgICAiMC40NjU0MjQsIDAuNjE0ODgzLCAxLjQ1ODAzLCAyLjIwMDMzLCAzLjE5MjIxLCA1LjE4MjU1LCA2LjQyNjU3IiwgXAotICAgICAgICAgICIwLjQ4MjgwOSwgMC42MzIyMzgsIDEuNDc1MjcsIDIuMjE3ODMsIDMuMjEwMiwgNS4yLCA2LjQ0NDA1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjYxMTkwOCwgMC44OTExMzgsIDIuNDc0MDUsIDMuODc4ODcsIDUuNzU3NzEsIDkuNDkyODMsIDExLjgyNjMiLCBcCi0gICAgICAgICAgIjAuNjExNjUsIDAuODkxODk3LCAyLjQ3NDI4LCAzLjg3ODg1LCA1Ljc1ODgsIDkuNDkyMjIsIDExLjgyNjEiLCBcCi0gICAgICAgICAgIjAuNjExODU2LCAwLjg5MTU3OSwgMi40NzQzLCAzLjg3ODg2LCA1Ljc1NzM5LCA5LjQ5MjQsIDExLjgyNjEiLCBcCi0gICAgICAgICAgIjAuNjExNzQ1LCAwLjg5MTEzNCwgMi40NzQzOSwgMy44Nzk0NCwgNS43NTI4NywgOS40OTMyMiwgMTEuODI2NCIsIFwKLSAgICAgICAgICAiMC42MTE5MTEsIDAuODkxNDI0LCAyLjQ3MzkzLCAzLjg3OTI2LCA1Ljc1NzU0LCA5LjQ5MjA3LCAxMS44MjYyIiwgXAotICAgICAgICAgICIwLjYxMTk5LCAwLjg5MTAzOCwgMi40NzQ1MSwgMy44Nzk0OSwgNS43NTg4MSwgOS40OTIyNCwgMTEuODI2NiIsIFwKLSAgICAgICAgICAiMC42MTEzNDUsIDAuODkyMDgsIDIuNDc0NjQsIDMuODc4ODMsIDUuNzU0MzMsIDkuNDkzMjEsIDExLjgyNjQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIwOTc1MywgMC4yOTk2MDksIDAuODA1MzM3LCAxLjI1MDA2LCAxLjg0MjkzLCAzLjAyNzUyLCAzLjc2ODQzIiwgXAotICAgICAgICAgICIwLjIxOTg0MywgMC4zMDk4LCAwLjgxNTQ2LCAxLjI2MDU1LCAxLjg1Mjc3LCAzLjAzNzc3LCAzLjc3ODU2IiwgXAotICAgICAgICAgICIwLjIzMjgwNSwgMC4zMjI2NjgsIDAuODI4NTEzLCAxLjI3MzI0LCAxLjg2NTg1LCAzLjA1MDksIDMuNzkxNjkiLCBcCi0gICAgICAgICAgIjAuMjQ1ODc3LCAwLjMzNTc3NCwgMC44NDE1OTIsIDEuMjg2MjcsIDEuODc5MjgsIDMuMDYzODYsIDMuODA0NzEiLCBcCi0gICAgICAgICAgIjAuMjU4OTE3LCAwLjM0ODg3NywgMC44NTQ2MjUsIDEuMjk5ODEsIDEuODkxOTcsIDMuMDc2OTQsIDMuODE3NjciLCBcCi0gICAgICAgICAgIjAuMjc5ODYyLCAwLjM2OTg3MiwgMC44NzU2MDEsIDEuMzIwNDYsIDEuOTEzNiwgMy4wOTgzMiwgMy44Mzg2NSIsIFwKLSAgICAgICAgICAiMC4yOTgyMTUsIDAuMzg4MTQyLCAwLjg5MzkzNiwgMS4zMzg3LCAxLjkzMTc2LCAzLjExNjI1LCAzLjg1NjkzIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjQxMjQ5OSwgMC41ODU3NTcsIDEuNTY4NzEsIDIuNDM1ODcsIDMuNTkyNzgsIDUuOTA2MSwgNy4zNTE5MiIsIFwKLSAgICAgICAgICAiMC40MTI0NjQsIDAuNTg1NzkzLCAxLjU2ODY2LCAyLjQzNjQ5LCAzLjU5MzAzLCA1LjkwNjMsIDcuMzQ5ODkiLCBcCi0gICAgICAgICAgIjAuNDEyNDQ2LCAwLjU4NTcxOSwgMS41Njg3MiwgMi40MzU4MiwgMy41OTI4MywgNS45MDU0NSwgNy4zNTAyNCIsIFwKLSAgICAgICAgICAiMC40MTIzNSwgMC41ODU3MDUsIDEuNTY4NzksIDIuNDM2MDcsIDMuNTkyNzgsIDUuOTA0NjYsIDcuMzQ5ODkiLCBcCi0gICAgICAgICAgIjAuNDEyMzg1LCAwLjU4NTc1NywgMS41Njg2MywgMi40MzY0OSwgMy41OTI4MiwgNS45MDU1NSwgNy4zNTE5OCIsIFwKLSAgICAgICAgICAiMC40MTUxNDMsIDAuNTg1ODE3LCAxLjU2ODY5LCAyLjQzNTkyLCAzLjU5MzM1LCA1LjkwNjc3LCA3LjM1MTkiLCBcCi0gICAgICAgICAgIjAuNDE5NzI2LCAwLjU4Nzc0MiwgMS41Njg2OCwgMi40MzU5MiwgMy41OTMxNSwgNS45MDUxNywgNy4zNTE1OSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zNzU1MzIsIDAuNTI0NjcxLCAxLjM2Njg0LCAyLjEwOTkxLCAzLjEwMDU0LCA1LjA5MTEsIDYuMzM0OTEiLCBcCi0gICAgICAgICAgIjAuMzg3ODk2LCAwLjUzNzAyMiwgMS4zNzk0LCAyLjEyMTk5LCAzLjExMzMzLCA1LjEwMzc0LCA2LjM0NzYxIiwgXAotICAgICAgICAgICIwLjQwMjQxOSwgMC41NTE1OTEsIDEuMzk0MDQsIDIuMTM2NjcsIDMuMTI4MDUsIDUuMTE4MjksIDYuMzYyMzQiLCBcCi0gICAgICAgICAgIjAuNDE1OTUzLCAwLjU2NTExNywgMS40MDgwNiwgMi4xNTAwNSwgMy4xNDI2MSwgNS4xMzIzNSwgNi4zNzYzOSIsIFwKLSAgICAgICAgICAiMC40MjkwNzksIDAuNTc4NDg1LCAxLjQyMTQxLCAyLjE2MzYzLCAzLjE1NTI1LCA1LjE0NTQzLCA2LjM4OTU2IiwgXAotICAgICAgICAgICIwLjQ0OTI3NiwgMC41OTg3NywgMS40NDE4NywgMi4xODM5NiwgMy4xNzU3NCwgNS4xNjYwNSwgNi40MTAwOCIsIFwKLSAgICAgICAgICAiMC40NjY0NTUsIDAuNjE1ODgyLCAxLjQ1ODg4LCAyLjIwMTQ4LCAzLjE5MzYyLCA1LjE4MzUsIDYuNDI3NTYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuNTkzNjgzLCAwLjg3MzA0NywgMi40NTQ4LCAzLjg2MDQyLCA1LjczNzk0LCA5LjQ3MTY5LCAxMS44MDY4IiwgXAotICAgICAgICAgICIwLjU5NDAzOSwgMC44NzI4MywgMi40NTUwMiwgMy44NjAyNywgNS43Mzc3NSwgOS40NzExLCAxMS44MDYiLCBcCi0gICAgICAgICAgIjAuNTk0MjAyLCAwLjg3Mjg3NSwgMi40NTUwNCwgMy44NjA0MSwgNS43Mzc3LCA5LjQ3MjI2LCAxMS44MDYiLCBcCi0gICAgICAgICAgIjAuNTk0MDk1LCAwLjg3MzU4NywgMi40NTYyMSwgMy44NjAwNywgNS43Mzk1MywgOS40NzMxOSwgMTEuODA2NSIsIFwKLSAgICAgICAgICAiMC41OTM4MDUsIDAuODczMTUxLCAyLjQ1NDg4LCAzLjg1OTk5LCA1LjczNzk5LCA5LjQ3MjA0LCAxMS44MDYiLCBcCi0gICAgICAgICAgIjAuNTk0MzE2LCAwLjg3MzI4OCwgMi40NTU3MywgMy44NTk4NSwgNS43MzU1OCwgOS40NzIxOSwgMTEuODA2NyIsIFwKLSAgICAgICAgICAiMC41OTM3NywgMC44NzI5ODIsIDIuNDU1NjYsIDMuODYwNDksIDUuNzM0NTEsIDkuNDczMjIsIDExLjgwNjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjAiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIwNDUxOCwgMC4yOTM4NzcsIDAuNzk4NDgsIDEuMjQyOTIsIDEuODM1NTIsIDMuMDIwOSwgMy43NjE4NSIsIFwKLSAgICAgICAgICAiMC4yMTYyOTUsIDAuMzA1ODIsIDAuODEwMTA1LCAxLjI1NDcsIDEuODQ3NDUsIDMuMDMyNDUsIDMuNzczNDkiLCBcCi0gICAgICAgICAgIjAuMjI5NjU4LCAwLjMxOTA5MiwgMC44MjM1ODEsIDEuMjY4MTMsIDEuODYwNTksIDMuMDQ1ODgsIDMuNzg3MDMiLCBcCi0gICAgICAgICAgIjAuMjQyMzcsIDAuMzMxODAzLCAwLjgzNjU3NywgMS4yODA4NCwgMS44NzM1MywgMy4wNTg3OSwgMy43OTk1MSIsIFwKLSAgICAgICAgICAiMC4yNTQ3MjIsIDAuMzQ0MzA2LCAwLjg0ODg4MiwgMS4yOTM1NCwgMS44ODYwNSwgMy4wNzEsIDMuODEyMTUiLCBcCi0gICAgICAgICAgIjAuMjc0NjEsIDAuMzY0MDk4LCAwLjg2ODg1MiwgMS4zMTMzNiwgMS45MDU4NSwgMy4wOTA5NywgMy44MzIxNCIsIFwKLSAgICAgICAgICAiMC4yOTE3NjgsIDAuMzgxMzc1LCAwLjg4NjMwOSwgMS4zMzA3OCwgMS45MjMzLCAzLjEwODU1LCAzLjg0OTU3Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjM5Njg1LCAwLjU3MDA2OSwgMS41NTI5MiwgMi40MjAxMSwgMy41NzY3OCwgNS44ODgwMywgNy4zMzI3IiwgXAotICAgICAgICAgICIwLjM5Njg2NiwgMC41NzAyMjQsIDEuNTUyODYsIDIuNDIwMDEsIDMuNTc2NzQsIDUuODg4MDQsIDcuMzM0MDQiLCBcCi0gICAgICAgICAgIjAuMzk2ODkxLCAwLjU3MDEwNSwgMS41NTI2OSwgMi40MjAxNywgMy41NzY2MywgNS44ODc2NCwgNy4zMzMzMiIsIFwKLSAgICAgICAgICAiMC4zOTY4MjQsIDAuNTcwMTU1LCAxLjU1Mjc3LCAyLjQyMDE1LCAzLjU3NjM4LCA1Ljg4ODI2LCA3LjMzNDE3IiwgXAotICAgICAgICAgICIwLjM5NjkxOCwgMC41NzAxMjMsIDEuNTUyODgsIDIuNDE5NiwgMy41NzY0MSwgNS44ODc3NSwgNy4zMzQxNiIsIFwKLSAgICAgICAgICAiMC4zOTg0MDksIDAuNTcwMjQ0LCAxLjU1MjU1LCAyLjQyLCAzLjU3NjI4LCA1Ljg4ODk2LCA3LjMzNDE4IiwgXAotICAgICAgICAgICIwLjQwMTA2NiwgMC41NzEzODcsIDEuNTUyNDgsIDIuNDE5NjYsIDMuNTc2NiwgNS44ODg5MiwgNy4zMzQiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzc4OTUxLCAwLjUyODE5MiwgMS4zNzExOSwgMi4xMTM0NSwgMy4xMDU4NSwgNS4wOTU2MywgNi4zMzk0IiwgXAotICAgICAgICAgICIwLjM4OTQ2MywgMC41Mzg3NjcsIDEuMzgxMzksIDIuMTIzNTYsIDMuMTE1ODYsIDUuMTA2MTEsIDYuMzQ5OTgiLCBcCi0gICAgICAgICAgIjAuNDAyOTg1LCAwLjU1MjQzMywgMS4zOTQ3OSwgMi4xMzc4OSwgMy4xMjk5NCwgNS4xMTk3MiwgNi4zNjM3OCIsIFwKLSAgICAgICAgICAiMC40MTYxNTQsIDAuNTY1NTEyLCAxLjQwODYzLCAyLjE1MDgzLCAzLjE0MjY4LCA1LjEzMzEzLCA2LjM3Njk5IiwgXAotICAgICAgICAgICIwLjQyOTEyMiwgMC41Nzg0OSwgMS40MjEwMiwgMi4xNjQwMiwgMy4xNTU2NywgNS4xNDU5MywgNi4zOTAwMSIsIFwKLSAgICAgICAgICAiMC40NDk4ODksIDAuNTk5NDY4LCAxLjQ0MjEyLCAyLjE4NDg3LCAzLjE3NjczLCA1LjE2NywgNi40MTEwNiIsIFwKLSAgICAgICAgICAiMC40Njc5NjMsIDAuNjE3MzAxLCAxLjQ2MDE0LCAyLjIwMzU2LCAzLjE5NTI4LCA1LjE4NTA5LCA2LjQyOTE0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjYxMTg0OCwgMC44OTE2NjcsIDIuNDc0MjcsIDMuODc5OTksIDUuNzU0OTcsIDkuNDkzMzIsIDExLjgyNjkiLCBcCi0gICAgICAgICAgIjAuNjExMzc1LCAwLjg5MTE1NiwgMi40NzQ2NiwgMy44ODMyNCwgNS43NTM1OCwgOS40OTMzOCwgMTEuODI3MSIsIFwKLSAgICAgICAgICAiMC42MTE4NjMsIDAuODkxMTU4LCAyLjQ3NDM5LCAzLjg3ODc5LCA1Ljc1NDE1LCA5LjQ5MjUyLCAxMS44MjY0IiwgXAotICAgICAgICAgICIwLjYxMTcyNiwgMC44OTE3MDMsIDIuNDc0NzQsIDMuODc5NDQsIDUuNzU4NTcsIDkuNDkyNzgsIDExLjgyNjMiLCBcCi0gICAgICAgICAgIjAuNjExODQ1LCAwLjg5MTg4NSwgMi40NzM2OSwgMy44NzkwOSwgNS43NTczNSwgOS40OTIxLCAxMS44MjYyIiwgXAotICAgICAgICAgICIwLjYxMTY0MywgMC44OTEwOTYsIDIuNDc0NDcsIDMuODc5NTEsIDUuNzUzNTUsIDkuNDkyMjEsIDExLjgyNjIiLCBcCi0gICAgICAgICAgIjAuNjExMzcsIDAuODkxNDc3LCAyLjQ3Mzc3LCAzLjg3OTQ4LCA1Ljc1NDU1LCA5LjQ5Mjg1LCAxMS44MjY0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIxIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xOTY2MjYsIDAuMjg2MDU5LCAwLjc5MDQ3MywgMS4yMzUyNywgMS44Mjc3MiwgMy4wMTMwNSwgMy43NTM5IiwgXAotICAgICAgICAgICIwLjIwNjk4NCwgMC4yOTY0NzksIDAuODAwOTE0LCAxLjI0NTU4LCAxLjgzODA3LCAzLjAyMzM4LCAzLjc2NDIzIiwgXAotICAgICAgICAgICIwLjIxOTk3MSwgMC4zMDk0MiwgMC44MTQxNDMsIDEuMjU4NSwgMS44NTExMywgMy4wMzYyNCwgMy43NzczOSIsIFwKLSAgICAgICAgICAiMC4yMzMwNDIsIDAuMzIyNDU3LCAwLjgyNzA2NCwgMS4yNzE1OCwgMS44NjQzMSwgMy4wNDkzMSwgMy43OTAzNCIsIFwKLSAgICAgICAgICAiMC4yNDYwMjcsIDAuMzM1NTksIDAuODQwMTEsIDEuMjg0ODMsIDEuODc3MzMsIDMuMDYyMjcsIDMuODAzNDIiLCBcCi0gICAgICAgICAgIjAuMjY2OTg0LCAwLjM1NjQ1NiwgMC44NjEwNzUsIDEuMzA1NywgMS44OTg0MywgMy4wODM2LCAzLjgyNDE3IiwgXAotICAgICAgICAgICIwLjI4NTI4MSwgMC4zNzQ3NTMsIDAuODc5NDU2LCAxLjMyNDAzLCAxLjkxNjUyLCAzLjEwMTc2LCAzLjg0MjcxIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjM5Njg0NSwgMC41NzAwODMsIDEuNTUyNTQsIDIuNDE5NTQsIDMuNTc2NTgsIDUuODg4MjgsIDcuMzM0MDEiLCBcCi0gICAgICAgICAgIjAuMzk2ODIzLCAwLjU3MDE0MSwgMS41NTI1MiwgMi40MTk1OCwgMy41NzY0MywgNS44ODgyOSwgNy4zMzMyMiIsIFwKLSAgICAgICAgICAiMC4zOTY4ODcsIDAuNTcwMTAzLCAxLjU1MjYxLCAyLjQxOTYzLCAzLjU3NjMyLCA1Ljg4Nzk0LCA3LjMzMzAzIiwgXAotICAgICAgICAgICIwLjM5Njg2MSwgMC41NzAxMTksIDEuNTUyODUsIDIuNDE5NTUsIDMuNTc1ODIsIDUuODg4MDMsIDcuMzM0MjgiLCBcCi0gICAgICAgICAgIjAuMzk3MTc2LCAwLjU3MDEyNSwgMS41NTI4NSwgMi40MjAyNywgMy41NzYzLCA1Ljg4NzczLCA3LjMzNDE1IiwgXAotICAgICAgICAgICIwLjQwMDU4OCwgMC41NzA1MjksIDEuNTUyNjQsIDIuNDE5NzQsIDMuNTc2NzUsIDUuODg5MzQsIDcuMzMzNDMiLCBcCi0gICAgICAgICAgIjAuNDA1NzY3LCAwLjU3MjczMiwgMS41NTI4MiwgMi40MTk1NCwgMy41NzY1MiwgNS44ODgwNSwgNy4zMzQxOSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zNjI1NDYsIDAuNTEyNDgyLCAxLjM1OTUyLCAyLjEwNjUyLCAzLjEwMjIsIDUuMDkzNDcsIDYuMzM3MjciLCBcCi0gICAgICAgICAgIjAuMzczOTA0LCAwLjUyMzk1NiwgMS4zNzE4NCwgMi4xMTg3OCwgMy4xMTQ2OSwgNS4xMDQ5OSwgNi4zNDg4MyIsIFwKLSAgICAgICAgICAiMC4zODc0MjIsIDAuNTM3NTgsIDEuMzg2MTQsIDIuMTMyODksIDMuMTI4NDksIDUuMTE4OTQsIDYuMzYyNzciLCBcCi0gICAgICAgICAgIjAuNDAwNTM0LCAwLjU1MDkyMywgMS4zOTg5OCwgMi4xNDYxOSwgMy4xNDE4NCwgNS4xMzIyNiwgNi4zNzYxMiIsIFwKLSAgICAgICAgICAiMC40MTMzNzksIDAuNTYzNjI3LCAxLjQxMjExLCAyLjE1OTMxLCAzLjE1NDg1LCA1LjE0NTE1LCA2LjM4OTE3IiwgXAotICAgICAgICAgICIwLjQzMzg3NiwgMC41ODQyNDUsIDEuNDMyNzgsIDIuMTgwNTksIDMuMTc1NywgNS4xNjYxNCwgNi40MTAwNSIsIFwKLSAgICAgICAgICAiMC40NTE2NzEsIDAuNjAyMDMsIDEuNDUwMzcsIDIuMTk4MDEsIDMuMTk0MTgsIDUuMTg0MTksIDYuNDI4MjciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuNTk2NjA2LCAwLjg3ODMwNSwgMi40NzMzMSwgMy44NzU1NCwgNS43NTQxOCwgOS40ODk1NiwgMTEuODIzMiIsIFwKLSAgICAgICAgICAiMC41OTYyMzMsIDAuODc3ODU3LCAyLjQ3MTAzLCAzLjg3OTcyLCA1Ljc0OTM3LCA5LjQ4OTY2LCAxMS44MjM0IiwgXAotICAgICAgICAgICIwLjU5NjUwMywgMC44Nzc1MDksIDIuNDcwNjcsIDMuODc1ODUsIDUuNzUzNzcsIDkuNDg4MDMsIDExLjgyMjQiLCBcCi0gICAgICAgICAgIjAuNTk2NTgxLCAwLjg3Nzc5NSwgMi40NzA3LCAzLjg3NjM3LCA1Ljc1NTE2LCA5LjQ4NzkxLCAxMS44MjI1IiwgXAotICAgICAgICAgICIwLjU5NjcsIDAuODc3NDMsIDIuNDcwOTksIDMuODc2MjcsIDUuNzUzOTgsIDkuNDg4NDUsIDExLjgyMjQiLCBcCi0gICAgICAgICAgIjAuNTk2MjE0LCAwLjg3NzMwMywgMi40NzA4LCAzLjg3NjU1LCA1Ljc1MzcsIDkuNDg4NTIsIDExLjgyMzEiLCBcCi0gICAgICAgICAgIjAuNTk2NTk5LCAwLjg3ODE2MSwgMi40NzA1LCAzLjg3NjAyLCA1Ljc1NDkyLCA5LjQ4ODczLCAxMS44MjI3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xODY1OTMsIDAuMjc1NjI4LCAwLjc3OTUxOCwgMS4yMjQyOSwgMS44MTY4OCwgMy4wMDI1NywgMy43NDMwOSIsIFwKLSAgICAgICAgICAiMC4xOTgzNjEsIDAuMjg3MzY1LCAwLjc5MTgyMywgMS4yMzU4MiwgMS44Mjg4MSwgMy4wMTQyNSwgMy43NTUxNiIsIFwKLSAgICAgICAgICAiMC4yMTE2MzMsIDAuMzAwNTExLCAwLjgwNDg2MywgMS4yNDkyNCwgMS44NDE5NiwgMy4wMjczNSwgMy43Njg0IiwgXAotICAgICAgICAgICIwLjIyNDEyNywgMC4zMTMxODYsIDAuODE3MTUxLCAxLjI2MTc1LCAxLjg1NDYxLCAzLjA0MDMzLCAzLjc4MTA5IiwgXAotICAgICAgICAgICIwLjIzNjM0OCwgMC4zMjU0MzUsIDAuODMwMDgxLCAxLjI3NDIxLCAxLjg2NzE4LCAzLjA1Mjg1LCAzLjc5MzM3IiwgXAotICAgICAgICAgICIwLjI1NjE2OCwgMC4zNDUyODksIDAuODQ5NjAzLCAxLjI5NDMxLCAxLjg4Njk3LCAzLjA3MjUsIDMuODEzNDUiLCBcCi0gICAgICAgICAgIjAuMjczMjc5LCAwLjM2MjQ4MiwgMC44NjY5MjEsIDEuMzExNjEsIDEuOTA0MzIsIDMuMDkwMDMsIDMuODMwOTQiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzg0NjA4LCAwLjU1NzU0NSwgMS41Mzg3MywgMi40MDU0MSwgMy41NjEwMSwgNS44NzQxNCwgNy4zMTgxOCIsIFwKLSAgICAgICAgICAiMC4zODQ2NzEsIDAuNTU3NTk1LCAxLjUzODk2LCAyLjQwNTMyLCAzLjU2MTY3LCA1Ljg3NDQyLCA3LjMxODgiLCBcCi0gICAgICAgICAgIjAuMzg0Njk0LCAwLjU1NzU5MiwgMS41Mzg4MSwgMi40MDUxOCwgMy41NjEwMSwgNS44NzQzMywgNy4zMTk2MiIsIFwKLSAgICAgICAgICAiMC4zODQ2NCwgMC41NTc1ODgsIDEuNTM4NjUsIDIuNDA1NjksIDMuNTYyMTEsIDUuODc0MSwgNy4zMTgzMiIsIFwKLSAgICAgICAgICAiMC4zODQ4ODYsIDAuNTU3NDgyLCAxLjUzODc3LCAyLjQwNTQxLCAzLjU2MTg5LCA1Ljg3Mzk4LCA3LjMxODE2IiwgXAotICAgICAgICAgICIwLjM4NzEwOCwgMC41NTc4MzMsIDEuNTM4NzQsIDIuNDA1NDUsIDMuNTYyMDQsIDUuODc0NzYsIDcuMzE5NTUiLCBcCi0gICAgICAgICAgIjAuMzkwMjY1LCAwLjU1OTM0LCAxLjUzODU2LCAyLjQwNTA0LCAzLjU2MDkzLCA1Ljg3NDM3LCA3LjMxOTEyIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjM0ODQzLCAwLjQ5Nzc1MSwgMS4zNDA2NSwgMi4wODIzLCAzLjA3MjE5LCA1LjA2MTc3LCA2LjMwNTgyIiwgXAotICAgICAgICAgICIwLjM1ODA3MywgMC41MDc0MzMsIDEuMzQ5OTMsIDIuMDkyMTMsIDMuMDgxNzUsIDUuMDcxNTcsIDYuMzE1MzkiLCBcCi0gICAgICAgICAgIjAuMzcwMzUxLCAwLjUxOTg4MiwgMS4zNjI3OCwgMi4xMDU2MywgMy4wOTUzMywgNS4wODQxOCwgNi4zMjc5OCIsIFwKLSAgICAgICAgICAiMC4zODI3NDYsIDAuNTMyMjkyLCAxLjM3NDY4LCAyLjExNzM5LCAzLjEwNjU0LCA1LjA5NjMsIDYuMzQwMzUiLCBcCi0gICAgICAgICAgIjAuMzk1MDI0LCAwLjU0NDU2MiwgMS4zODcyMiwgMi4xMjk5LCAzLjExODczLCA1LjEwODgyLCA2LjM1MjY1IiwgXAotICAgICAgICAgICIwLjQxNDU0NSwgMC41NjM5OTQsIDEuNDA2OTEsIDIuMTQ5NzIsIDMuMTM4NzIsIDUuMTI4NDYsIDYuMzcyNTIiLCBcCi0gICAgICAgICAgIjAuNDMxNjQ0LCAwLjU4MTAzOCwgMS40MjQwNiwgMi4xNjY0NSwgMy4xNTU2MiwgNS4xNDU4NiwgNi4zODk2MyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC42MTE3NDIsIDAuODkyMTk2LCAyLjQ3MjQ4LCAzLjg3NjM1LCA1Ljc1MjM0LCA5LjQ4ODg3LCAxMS44MjI5IiwgXAotICAgICAgICAgICIwLjYxMTYxOCwgMC44OTE4ODgsIDIuNDcxNzUsIDMuODc2MDcsIDUuNzQ4OTEsIDkuNDg5NDEsIDExLjgyMzIiLCBcCi0gICAgICAgICAgIjAuNjExNjYxLCAwLjg5MTA2NCwgMi40NzMzMSwgMy44NzYyMiwgNS43NTQ4MSwgOS40ODgxMywgMTEuODIyNiIsIFwKLSAgICAgICAgICAiMC42MTE2MjIsIDAuODkxMDk1LCAyLjQ3NDM3LCAzLjg3NjI4LCA1Ljc1MSwgOS40ODg0OSwgMTEuODIyNyIsIFwKLSAgICAgICAgICAiMC42MTE1NTIsIDAuODkxMDUyLCAyLjQ3MzExLCAzLjg3NjgsIDUuNzUwMjYsIDkuNDg3ODcsIDExLjgyMzIiLCBcCi0gICAgICAgICAgIjAuNjEwNTIzLCAwLjg5MjE4MywgMi40NzMxLCAzLjg3NTk2LCA1Ljc1MDgxLCA5LjQ4ODcsIDExLjgyMjciLCBcCi0gICAgICAgICAgIjAuNjEwNjU3LCAwLjg5MTU3LCAyLjQ3MjczLCAzLjg3OTk0LCA1Ljc1NDU1LCA5LjQ4Nzg5LCAxMS44MjMyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMxIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xODAzMzcsIDAuMjY5NTM0LCAwLjc3MzI0MywgMS4yMTc5OCwgMS44MTA2OCwgMi45OTYwNSwgMy43MzcxIiwgXAotICAgICAgICAgICIwLjE5MDg1MywgMC4yNzk4OTgsIDAuNzg0MjEyLCAxLjIyODQzLCAxLjgyMTMsIDMuMDA2NzksIDMuNzQ3NzIiLCBcCi0gICAgICAgICAgIjAuMjAzOTI4LCAwLjI5MzExNCwgMC43OTcwNzksIDEuMjQxNzcsIDEuODM0NDksIDMuMDE5ODYsIDMuNzYwOTIiLCBcCi0gICAgICAgICAgIjAuMjE2OTgzLCAwLjMwNjA3NSwgMC44MTAxNTUsIDEuMjU0NywgMS44NDczNywgMy4wMzMwOSwgMy43NzQxMiIsIFwKLSAgICAgICAgICAiMC4yMjk5MjQsIDAuMzE4OTk3LCAwLjgyMzIzOCwgMS4yNjc3NywgMS44NjA3LCAzLjA0NjIsIDMuNzg3MTEiLCBcCi0gICAgICAgICAgIjAuMjUwODgsIDAuMzQwMDgzLCAwLjg0NDEwMywgMS4yODkwNCwgMS44ODE2OCwgMy4wNjcyMSwgMy44MDgxMiIsIFwKLSAgICAgICAgICAiMC4yNjkzMjcsIDAuMzU4NDQ5LCAwLjg2MjU0NywgMS4zMDcxMywgMS44OTk4NiwgMy4wODU1NiwgMy44MjY0NyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zODQ2NCwgMC41NTc2MDEsIDEuNTM4NTksIDIuNDA1NzIsIDMuNTYwODQsIDUuODc0MjcsIDcuMzE5NTEiLCBcCi0gICAgICAgICAgIjAuMzg0NjU3LCAwLjU1NzU1MiwgMS41Mzg4MywgMi40MDU4MiwgMy41NjIwOSwgNS44NzI3LCA3LjMxOTI5IiwgXAotICAgICAgICAgICIwLjM4NDYyNCwgMC41NTc1NjQsIDEuNTM4NjcsIDIuNDA1NzQsIDMuNTYxNjQsIDUuODc0MDgsIDcuMzE5MzkiLCBcCi0gICAgICAgICAgIjAuMzg0NTcyLCAwLjU1NzU1OCwgMS41Mzg5NiwgMi40MDU2OCwgMy41NjIsIDUuODc0MDQsIDcuMzE4NTIiLCBcCi0gICAgICAgICAgIjAuMzg1MzgxLCAwLjU1NzUzNSwgMS41Mzg3LCAyLjQwNTc2LCAzLjU2MTc4LCA1Ljg3NDU5LCA3LjMxOTEyIiwgXAotICAgICAgICAgICIwLjM4OTY3NSwgMC41NTgyOTMsIDEuNTM4NjksIDIuNDA1MzgsIDMuNTYxOTQsIDUuODcyNjIsIDcuMzE5MDciLCBcCi0gICAgICAgICAgIjAuMzk1NTUxLCAwLjU2MTExMiwgMS41Mzg2NywgMi40MDU2MSwgMy41NjE3NiwgNS44NzI5OCwgNy4zMTg2MiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMzUxNywgMC40ODUyNCwgMS4zMzMyNiwgMi4wODAyMSwgMy4wNzY0MywgNS4wNjY0NSwgNi4zMTA1MSIsIFwKLSAgICAgICAgICAiMC4zNDU2MzEsIDAuNDk1NzU2LCAxLjM0MzU5LCAyLjA5MDU2LCAzLjA4Njg1LCA1LjA3NzIyLCA2LjMyMTA5IiwgXAotICAgICAgICAgICIwLjM1ODAxNywgMC41MDgyNSwgMS4zNTcsIDIuMTA0NDUsIDMuMDk5ODIsIDUuMDg5ODEsIDYuMzMzODgiLCBcCi0gICAgICAgICAgIjAuMzcwMjA5LCAwLjUyMDMwNCwgMS4zNjg5NCwgMi4xMTU2OSwgMy4xMTIwMywgNS4xMDIyMSwgNi4zNDYyOSIsIFwKLSAgICAgICAgICAiMC4zODIyNSwgMC41MzI1NzksIDEuMzgxMTMsIDIuMTI4NzQsIDMuMTI0NDgsIDUuMTE0NzQsIDYuMzU4NiIsIFwKLSAgICAgICAgICAiMC40MDEwNzQsIDAuNTUyMTY1LCAxLjQwMDUsIDIuMTQ4MjMsIDMuMTQzOTcsIDUuMTM0NTMsIDYuMzc4MzIiLCBcCi0gICAgICAgICAgIjAuNDE4Njk4LCAwLjU2OTE5OCwgMS40MTc4NCwgMi4xNjUyMSwgMy4xNjExMSwgNS4xNTE3OSwgNi4zOTU2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjU5OTkxLCAwLjg4MDY5MiwgMi40NzQwMiwgMy44ODAwNiwgNS43NTcxNSwgOS40OTI3NiwgMTEuODI2NiIsIFwKLSAgICAgICAgICAiMC41OTkxOSwgMC44ODA2MDIsIDIuNDc0MDQsIDMuODc5NDIsIDUuNzU4OTUsIDkuNDkzMTEsIDExLjgyNjQiLCBcCi0gICAgICAgICAgIjAuNTk5MjgyLCAwLjg4MDkxLCAyLjQ3NDczLCAzLjg3ODg0LCA1Ljc1ODE4LCA5LjQ5MjQyLCAxMS44MjY1IiwgXAotICAgICAgICAgICIwLjU5OTExNiwgMC44ODEyNTgsIDIuNDc0MzUsIDMuODc5NDUsIDUuNzU1MzYsIDkuNDkyMjIsIDExLjgyNjQiLCBcCi0gICAgICAgICAgIjAuNTk5MTczLCAwLjg4MDU1OSwgMi40NzQ3LCAzLjg4MDQsIDUuNzUzMTksIDkuNDkxNTcsIDExLjgyNjkiLCBcCi0gICAgICAgICAgIjAuNTk4MjM1LCAwLjg4MDg2OCwgMi40NzM3NywgMy44ODIyOSwgNS43NTgzNSwgOS40OTE1MywgMTEuODI2OSIsIFwKLSAgICAgICAgICAiMC41OTg3NDUsIDAuODgwMzI5LCAyLjQ3NDI1LCAzLjg4MzE4LCA1Ljc1ODE3LCA5LjQ5MTYxLCAxMS44MjciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0MTM4LCAwLjAwNDEzOCwgMC4wMDQxMzUsIDAuMDA0MTMzLCAwLjAwNDEyOSwgMC4wMDQxMjIsIDAuMDA0MTE3IiwgXAotICAgICAgICAgICIwLjAwNDEyNywgMC4wMDQxMjgsIDAuMDA0MTI1LCAwLjAwNDEyMywgMC4wMDQxMTksIDAuMDA0MTExLCAwLjAwNDEwNiIsIFwKLSAgICAgICAgICAiMC4wMDQxMjMsIDAuMDA0MTIzLCAwLjAwNDEyMSwgMC4wMDQxMTksIDAuMDA0MTE2LCAwLjAwNDExLCAwLjAwNDEwMyIsIFwKLSAgICAgICAgICAiMC4wMDQxMiwgMC4wMDQxMjEsIDAuMDA0MTIsIDAuMDA0MTE3LCAwLjAwNDExNCwgMC4wMDQxMDcsIDAuMDA0MTAyIiwgXAotICAgICAgICAgICIwLjAwNDExNCwgMC4wMDQxMiwgMC4wMDQxMTksIDAuMDA0MTE3LCAwLjAwNDExMywgMC4wMDQxMDcsIDAuMDA0MTAxIiwgXAotICAgICAgICAgICIwLjAwNDExNywgMC4wMDQxMTgsIDAuMDA0MTE3LCAwLjAwNDExNSwgMC4wMDQxMTIsIDAuMDA0MTA0LCAwLjAwNDEiLCBcCi0gICAgICAgICAgIjAuMDA0MTE2LCAwLjAwNDExNywgMC4wMDQxMTYsIDAuMDA0MTE1LCAwLjAwNDExMSwgMC4wMDQxMDUsIDAuMDA0MDk5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxNjc5LCAwLjAwMTY4LCAwLjAwMTY3OSwgMC4wMDE2NzMsIDAuMDAxNjczLCAwLjAwMTY2OCwgMC4wMDE2NjIiLCBcCi0gICAgICAgICAgIjAuMDAxNjY2LCAwLjAwMTY2NiwgMC4wMDE2NjUsIDAuMDAxNjYyLCAwLjAwMTY1OSwgMC4wMDE2NTQsIDAuMDAxNjUiLCBcCi0gICAgICAgICAgIjAuMDAxNjYsIDAuMDAxNjYxLCAwLjAwMTY2MiwgMC4wMDE2NiwgMC4wMDE2NTgsIDAuMDAxNjUzLCAwLjAwMTY0OCIsIFwKLSAgICAgICAgICAiMC4wMDE2NTYsIDAuMDAxNjU4LCAwLjAwMTY2LCAwLjAwMTY1OSwgMC4wMDE2NTcsIDAuMDAxNjUxLCAwLjAwMTY0NyIsIFwKLSAgICAgICAgICAiMC4wMDE2NTMsIDAuMDAxNjU1LCAwLjAwMTY1OCwgMC4wMDE2NTgsIDAuMDAxNjU2LCAwLjAwMTY1LCAwLjAwMTY0NiIsIFwKLSAgICAgICAgICAiMC4wMDE2NDksIDAuMDAxNjUyLCAwLjAwMTY1NywgMC4wMDE2NTcsIDAuMDAxNjU1LCAwLjAwMTY1LCAwLjAwMTY0NiIsIFwKLSAgICAgICAgICAiMC4wMDE2NDUsIDAuMDAxNjQ5LCAwLjAwMTY1NSwgMC4wMDE2NTYsIDAuMDAxNjU0LCAwLjAwMTY1LCAwLjAwMTY0NSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkExIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDM4ODgsIDAuMDAzODg4LCAwLjAwMzg4NSwgMC4wMDM4ODIsIDAuMDAzODgsIDAuMDAzODczLCAwLjAwMzg2NiIsIFwKLSAgICAgICAgICAiMC4wMDM4NzcsIDAuMDAzODc2LCAwLjAwMzg3NCwgMC4wMDM4NzEsIDAuMDAzODY4LCAwLjAwMzg2LCAwLjAwMzg1NyIsIFwKLSAgICAgICAgICAiMC4wMDM4NywgMC4wMDM4NzEsIDAuMDAzODcsIDAuMDAzODY4LCAwLjAwMzg2NCwgMC4wMDM4NTcsIDAuMDAzODUxIiwgXAotICAgICAgICAgICIwLjAwMzg2NywgMC4wMDM4NjcsIDAuMDAzODY4LCAwLjAwMzg2NiwgMC4wMDM4NjMsIDAuMDAzODU2LCAwLjAwMzg1IiwgXAotICAgICAgICAgICIwLjAwMzg2NCwgMC4wMDM4NjYsIDAuMDAzODY2LCAwLjAwMzg2NCwgMC4wMDM4NjIsIDAuMDAzODU0LCAwLjAwMzg1MSIsIFwKLSAgICAgICAgICAiMC4wMDM4NiwgMC4wMDM4NjMsIDAuMDAzODY1LCAwLjAwMzg2MiwgMC4wMDM4NiwgMC4wMDM4NTMsIDAuMDAzODQ5IiwgXAotICAgICAgICAgICIwLjAwMzg1OCwgMC4wMDM4NjEsIDAuMDAzODYzLCAwLjAwMzg2MSwgMC4wMDM4NTksIDAuMDAzODUyLCAwLjAwMzg0OCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTM0OSwgMC4wMDEzNSwgMC4wMDEzNSwgMC4wMDEzNDcsIDAuMDAxMzQ2LCAwLjAwMTM0MiwgMC4wMDEzNCIsIFwKLSAgICAgICAgICAiMC4wMDEzNTUsIDAuMDAxMzU3LCAwLjAwMTM2LCAwLjAwMTM1OCwgMC4wMDEzNTgsIDAuMDAxMzU0LCAwLjAwMTM1MSIsIFwKLSAgICAgICAgICAiMC4wMDEzNDksIDAuMDAxMzUzLCAwLjAwMTM2LCAwLjAwMTM1OSwgMC4wMDEzNTksIDAuMDAxMzU2LCAwLjAwMTM1MyIsIFwKLSAgICAgICAgICAiMC4wMDEzNDMsIDAuMDAxMzUsIDAuMDAxMzU5LCAwLjAwMTM1OSwgMC4wMDEzNTksIDAuMDAxMzU1LCAwLjAwMTM1MyIsIFwKLSAgICAgICAgICAiMC4wMDEzMzcsIDAuMDAxMzQ0LCAwLjAwMTM1NiwgMC4wMDEzNTgsIDAuMDAxMzU4LCAwLjAwMTM1NSwgMC4wMDEzNTMiLCBcCi0gICAgICAgICAgIjAuMDAxMzI5LCAwLjAwMTMzOCwgMC4wMDEzNTMsIDAuMDAxMzU2LCAwLjAwMTM1NiwgMC4wMDEzNTUsIDAuMDAxMzUyIiwgXAotICAgICAgICAgICIwLjAwMTMyMSwgMC4wMDEzMzIsIDAuMDAxMzUsIDAuMDAxMzU0LCAwLjAwMTM1NSwgMC4wMDEzNTQsIDAuMDAxMzUyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzM4MSwgMC4wMDMzODIsIDAuMDAzMzgsIDAuMDAzMzc5LCAwLjAwMzM3NiwgMC4wMDMzNzIsIDAuMDAzMzY5IiwgXAotICAgICAgICAgICIwLjAwMzM4MSwgMC4wMDMzODEsIDAuMDAzMzgsIDAuMDAzMzc5LCAwLjAwMzM3OCwgMC4wMDMzNzMsIDAuMDAzMzciLCBcCi0gICAgICAgICAgIjAuMDAzMzc5LCAwLjAwMzM3OSwgMC4wMDMzNzksIDAuMDAzMzc5LCAwLjAwMzM3NiwgMC4wMDMzNzMsIDAuMDAzMzY4IiwgXAotICAgICAgICAgICIwLjAwMzM3NSwgMC4wMDMzNzcsIDAuMDAzMzc4LCAwLjAwMzM3OCwgMC4wMDMzNzYsIDAuMDAzMzcyLCAwLjAwMzM2OSIsIFwKLSAgICAgICAgICAiMC4wMDMzNzIsIDAuMDAzMzc2LCAwLjAwMzM3OCwgMC4wMDMzNzcsIDAuMDAzMzc2LCAwLjAwMzM3MiwgMC4wMDMzNjkiLCBcCi0gICAgICAgICAgIjAuMDAzMzcsIDAuMDAzMzc0LCAwLjAwMzM3NiwgMC4wMDMzNzYsIDAuMDAzMzc1LCAwLjAwMzM3MSwgMC4wMDMzNjgiLCBcCi0gICAgICAgICAgIjAuMDAzMzY4LCAwLjAwMzM3MSwgMC4wMDMzNzYsIDAuMDAzMzc2LCAwLjAwMzM3NSwgMC4wMDMzNzEsIDAuMDAzMzY5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxNjgxLCAwLjAwMTY4LCAwLjAwMTY3OCwgMC4wMDE2OCwgMC4wMDE2NzQsIDAuMDAxNjY4LCAwLjAwMTY2NCIsIFwKLSAgICAgICAgICAiMC4wMDE2NjYsIDAuMDAxNjY2LCAwLjAwMTY2NiwgMC4wMDE2NjQsIDAuMDAxNjYyLCAwLjAwMTY1NiwgMC4wMDE2NTEiLCBcCi0gICAgICAgICAgIjAuMDAxNjYsIDAuMDAxNjYxLCAwLjAwMTY2MiwgMC4wMDE2NiwgMC4wMDE2NTksIDAuMDAxNjUyLCAwLjAwMTY0OCIsIFwKLSAgICAgICAgICAiMC4wMDE2NTYsIDAuMDAxNjU4LCAwLjAwMTY2LCAwLjAwMTY1OSwgMC4wMDE2NTYsIDAuMDAxNjUxLCAwLjAwMTY0NyIsIFwKLSAgICAgICAgICAiMC4wMDE2NTMsIDAuMDAxNjU1LCAwLjAwMTY1OSwgMC4wMDE2NTgsIDAuMDAxNjU2LCAwLjAwMTY1LCAwLjAwMTY0NiIsIFwKLSAgICAgICAgICAiMC4wMDE2NDksIDAuMDAxNjUyLCAwLjAwMTY1NywgMC4wMDE2NTcsIDAuMDAxNjU1LCAwLjAwMTY1LCAwLjAwMTY0NiIsIFwKLSAgICAgICAgICAiMC4wMDE2NDUsIDAuMDAxNjQ5LCAwLjAwMTY1NSwgMC4wMDE2NTYsIDAuMDAxNjU1LCAwLjAwMTY0OSwgMC4wMDE2NDUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzMTIxLCAwLjAwMzEyMSwgMC4wMDMxMiwgMC4wMDMxMTksIDAuMDAzMTE2LCAwLjAwMzExMywgMC4wMDMxMDkiLCBcCi0gICAgICAgICAgIjAuMDAzMTE5LCAwLjAwMzEyLCAwLjAwMzExOSwgMC4wMDMxMTgsIDAuMDAzMTE2LCAwLjAwMzExMiwgMC4wMDMxMDkiLCBcCi0gICAgICAgICAgIjAuMDAzMTE1LCAwLjAwMzExNywgMC4wMDMxMTgsIDAuMDAzMTE3LCAwLjAwMzExNiwgMC4wMDMxMTIsIDAuMDAzMTA5IiwgXAotICAgICAgICAgICIwLjAwMzExMiwgMC4wMDMxMTQsIDAuMDAzMTE3LCAwLjAwMzExNiwgMC4wMDMxMTUsIDAuMDAzMTExLCAwLjAwMzEwOSIsIFwKLSAgICAgICAgICAiMC4wMDMxMDgsIDAuMDAzMTExLCAwLjAwMzExNiwgMC4wMDMxMTYsIDAuMDAzMTE0LCAwLjAwMzExMSwgMC4wMDMxMDkiLCBcCi0gICAgICAgICAgIjAuMDAzMTAzLCAwLjAwMzEwOSwgMC4wMDMxMTQsIDAuMDAzMTE1LCAwLjAwMzExNCwgMC4wMDMxMTEsIDAuMDAzMTA4IiwgXAotICAgICAgICAgICIwLjAwMzEsIDAuMDAzMTA1LCAwLjAwMzExMywgMC4wMDMxMTQsIDAuMDAzMTEzLCAwLjAwMzExLCAwLjAwMzEwNyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTI4LCAwLjAwMTI4LCAwLjAwMTI4LCAwLjAwMTI3OSwgMC4wMDEyNzgsIDAuMDAxMjc0LCAwLjAwMTI3MiIsIFwKLSAgICAgICAgICAiMC4wMDEyODYsIDAuMDAxMjg4LCAwLjAwMTI5LCAwLjAwMTI5LCAwLjAwMTI5LCAwLjAwMTI4NiwgMC4wMDEyODQiLCBcCi0gICAgICAgICAgIjAuMDAxMjgsIDAuMDAxMjg1LCAwLjAwMTI5MSwgMC4wMDEyOTEsIDAuMDAxMjkxLCAwLjAwMTI4OCwgMC4wMDEyODUiLCBcCi0gICAgICAgICAgIjAuMDAxMjc0LCAwLjAwMTI4MSwgMC4wMDEyOSwgMC4wMDEyOTEsIDAuMDAxMjkxLCAwLjAwMTI4OCwgMC4wMDEyODYiLCBcCi0gICAgICAgICAgIjAuMDAxMjY5LCAwLjAwMTI3NywgMC4wMDEyODksIDAuMDAxMjksIDAuMDAxMjksIDAuMDAxMjg4LCAwLjAwMTI4NiIsIFwKLSAgICAgICAgICAiMC4wMDEyNiwgMC4wMDEyNywgMC4wMDEyODUsIDAuMDAxMjg4LCAwLjAwMTI4OSwgMC4wMDEyODcsIDAuMDAxMjg2IiwgXAotICAgICAgICAgICIwLjAwMTI1MiwgMC4wMDEyNjMsIDAuMDAxMjgyLCAwLjAwMTI4NiwgMC4wMDEyODcsIDAuMDAxMjg3LCAwLjAwMTI4NSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI0NjMsIDAuMDAyNDY0LCAwLjAwMjQ2NCwgMC4wMDI0NjUsIDAuMDAyNDY0LCAwLjAwMjQ2NCwgMC4wMDI0NjQiLCBcCi0gICAgICAgICAgIjAuMDAyNDcsIDAuMDAyNDcyLCAwLjAwMjQ3NCwgMC4wMDI0NzQsIDAuMDAyNDc0LCAwLjAwMjQ3NSwgMC4wMDI0NzUiLCBcCi0gICAgICAgICAgIjAuMDAyNDcsIDAuMDAyNDczLCAwLjAwMjQ3NywgMC4wMDI0NzcsIDAuMDAyNDc4LCAwLjAwMjQ3OCwgMC4wMDI0NzkiLCBcCi0gICAgICAgICAgIjAuMDAyNDY3LCAwLjAwMjQ3MSwgMC4wMDI0NzcsIDAuMDAyNDc4LCAwLjAwMjQ3OCwgMC4wMDI0NzksIDAuMDAyNDc5IiwgXAotICAgICAgICAgICIwLjAwMjQ2NSwgMC4wMDI0NywgMC4wMDI0NzcsIDAuMDAyNDc4LCAwLjAwMjQ3OSwgMC4wMDI0OCwgMC4wMDI0NzkiLCBcCi0gICAgICAgICAgIjAuMDAyNDYsIDAuMDAyNDY3LCAwLjAwMjQ3NiwgMC4wMDI0NzgsIDAuMDAyNDc5LCAwLjAwMjQ4LCAwLjAwMjQ4IiwgXAotICAgICAgICAgICIwLjAwMjQ1NywgMC4wMDI0NjQsIDAuMDAyNDc1LCAwLjAwMjQ3NywgMC4wMDI0NzksIDAuMDAyNDgsIDAuMDAyNDgxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxNjc5LCAwLjAwMTY3OCwgMC4wMDE2NzcsIDAuMDAxNjc1LCAwLjAwMTY3MiwgMC4wMDE2NjcsIDAuMDAxNjYzIiwgXAotICAgICAgICAgICIwLjAwMTY2NCwgMC4wMDE2NjUsIDAuMDAxNjY1LCAwLjAwMTY2NCwgMC4wMDE2NiwgMC4wMDE2NTUsIDAuMDAxNjUxIiwgXAotICAgICAgICAgICIwLjAwMTY1OCwgMC4wMDE2NTksIDAuMDAxNjYxLCAwLjAwMTY2LCAwLjAwMTY1OCwgMC4wMDE2NTIsIDAuMDAxNjQ4IiwgXAotICAgICAgICAgICIwLjAwMTY1MywgMC4wMDE2NTYsIDAuMDAxNjU5LCAwLjAwMTY1OCwgMC4wMDE2NTYsIDAuMDAxNjUxLCAwLjAwMTY0NiIsIFwKLSAgICAgICAgICAiMC4wMDE2NDksIDAuMDAxNjUzLCAwLjAwMTY1NywgMC4wMDE2NTcsIDAuMDAxNjU1LCAwLjAwMTY0OSwgMC4wMDE2NDYiLCBcCi0gICAgICAgICAgIjAuMDAxNjQ1LCAwLjAwMTY1LCAwLjAwMTY1NSwgMC4wMDE2NTYsIDAuMDAxNjU0LCAwLjAwMTY0OSwgMC4wMDE2NDUiLCBcCi0gICAgICAgICAgIjAuMDAxNjQzLCAwLjAwMTY0NywgMC4wMDE2NTQsIDAuMDAxNjU0LCAwLjAwMTY1MywgMC4wMDE2NDgsIDAuMDAxNjQ0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQzEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjIxMywgMC4wMDIyMTQsIDAuMDAyMjE1LCAwLjAwMjIxNCwgMC4wMDIyMTUsIDAuMDAyMjE0LCAwLjAwMjIxNCIsIFwKLSAgICAgICAgICAiMC4wMDIyMTgsIDAuMDAyMjIxLCAwLjAwMjIyNCwgMC4wMDIyMjQsIDAuMDAyMjI1LCAwLjAwMjIyNSwgMC4wMDIyMjUiLCBcCi0gICAgICAgICAgIjAuMDAyMjE2LCAwLjAwMjIyLCAwLjAwMjIyNiwgMC4wMDIyMjcsIDAuMDAyMjI3LCAwLjAwMjIyOCwgMC4wMDIyMjgiLCBcCi0gICAgICAgICAgIjAuMDAyMjEyLCAwLjAwMjIxOCwgMC4wMDIyMjYsIDAuMDAyMjI4LCAwLjAwMjIyOSwgMC4wMDIyMjksIDAuMDAyMjI5IiwgXAotICAgICAgICAgICIwLjAwMjIwOSwgMC4wMDIyMTYsIDAuMDAyMjI2LCAwLjAwMjIyOCwgMC4wMDIyMjksIDAuMDAyMjMsIDAuMDAyMjMiLCBcCi0gICAgICAgICAgIjAuMDAyMjA0LCAwLjAwMjIxMiwgMC4wMDIyMjQsIDAuMDAyMjI3LCAwLjAwMjIyOCwgMC4wMDIyMywgMC4wMDIyMyIsIFwKLSAgICAgICAgICAiMC4wMDIxOTksIDAuMDAyMjA4LCAwLjAwMjIyMywgMC4wMDIyMjYsIDAuMDAyMjI4LCAwLjAwMjIyOSwgMC4wMDIyMyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTM4LCAwLjAwMTM4MSwgMC4wMDEzODIsIDAuMDAxMzc5LCAwLjAwMTM3NywgMC4wMDEzNzMsIDAuMDAxMzciLCBcCi0gICAgICAgICAgIjAuMDAxMzg1LCAwLjAwMTM4OCwgMC4wMDEzOTEsIDAuMDAxMzksIDAuMDAxMzg5LCAwLjAwMTM4NSwgMC4wMDEzODMiLCBcCi0gICAgICAgICAgIjAuMDAxMzc5LCAwLjAwMTM4NCwgMC4wMDEzOTEsIDAuMDAxMzksIDAuMDAxMzkxLCAwLjAwMTM4NywgMC4wMDEzODUiLCBcCi0gICAgICAgICAgIjAuMDAxMzcyLCAwLjAwMTM3OSwgMC4wMDEzODksIDAuMDAxMzksIDAuMDAxMzksIDAuMDAxMzg4LCAwLjAwMTM4NCIsIFwKLSAgICAgICAgICAiMC4wMDEzNjYsIDAuMDAxMzc0LCAwLjAwMTM4NywgMC4wMDEzOSwgMC4wMDEzOSwgMC4wMDEzODcsIDAuMDAxMzg0IiwgXAotICAgICAgICAgICIwLjAwMTM1NSwgMC4wMDEzNjgsIDAuMDAxMzg1LCAwLjAwMTM4OCwgMC4wMDEzODksIDAuMDAxMzg2LCAwLjAwMTM4NCIsIFwKLSAgICAgICAgICAiMC4wMDEzNTEsIDAuMDAxMzYyLCAwLjAwMTM4MSwgMC4wMDEzODUsIDAuMDAxMzg3LCAwLjAwMTM4NSwgMC4wMDEzODMiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBPQUkyMlg0ICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKE9BSTIyWDQpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4zODYzMTc7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDMxMDkzMjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDMwOTg1NTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDMxMDkzMjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDEyMjUsIDAuMDAxMjI0LCAwLjAwMTIyMywgMC4wMDEyMjMsIDAuMDAxMjIzLCAwLjAwMTIyMiwgMC4wMDEyMjIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDEyMjksIDAuMDAxMjI5LCAwLjAwMTIyOCwgMC4wMDEyMjgsIDAuMDAxMjI4LCAwLjAwMTIzLCAwLjAwMTIzIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihBMSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAzMDUwMTg7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAzMDUwMTg7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAzMDM3NzM7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxMjI1LCAwLjAwMTIyNSwgMC4wMDEyMjQsIDAuMDAxMjI0LCAwLjAwMTIyNCwgMC4wMDEyMjQsIDAuMDAxMjI0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxMjI5LCAwLjAwMTIyNywgMC4wMDEyMjgsIDAuMDAxMjI3LCAwLjAwMTIyNywgMC4wMDEyMjcsIDAuMDAxMjI3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAzMjU4NjU7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAzMjMzNjQ7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAzMjU4NjU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxMzIzLCAwLjAwMTMyMywgMC4wMDEzMjQsIDAuMDAxMzI0LCAwLjAwMTMyMywgMC4wMDEzMjUsIDAuMDAxMzI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxMzksIDAuMDAxMzkxLCAwLjAwMTM5MSwgMC4wMDEzOTMsIDAuMDAxMzkzLCAwLjAwMTM5MywgMC4wMDEzOTMiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIxKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDMwODU2NjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDMwODQ1NzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDMwODU2NjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDEzMjEsIDAuMDAxMzIxLCAwLjAwMTMyMywgMC4wMDEzMjMsIDAuMDAxMzIxLCAwLjAwMTMyLCAwLjAwMTMyMiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTM4OSwgMC4wMDEzOSwgMC4wMDEzOSwgMC4wMDEzOSwgMC4wMDEzOSwgMC4wMDEzOSwgMC4wMDEzOTIiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4yNjc0NDg7Ci0gICAgZnVuY3Rpb24gOiAiKCEoKEIwK0IxKSAoQTArQTEpKSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4MTM5OSwgMC4zNDMyMzYsIDAuNjAzODA2LCAwLjc4OTQ1MiwgMS4wODY5NCwgMS4zNDY3MSwgMS43MTg5MyIsIFwKLSAgICAgICAgICAiMC4wOTI4MDEsIDAuMzU0ODI5LCAwLjYxNTM2MSwgMC44MDEyMDIsIDEuMDk4NSwgMS4zNTgzMywgMS43MzA1MyIsIFwKLSAgICAgICAgICAiMC4xMDU3OTMsIDAuMzY3OTQ4LCAwLjYyODQyMiwgMC44MTQxMzEsIDEuMTExNzksIDEuMzcxMzIsIDEuNzQzNjgiLCBcCi0gICAgICAgICAgIjAuMTE4Mjk5LCAwLjM4MDU0NiwgMC42NDA5NzMsIDAuODI2NzA3LCAxLjEyNDMzLCAxLjM4MzkyLCAxLjc1NTY4IiwgXAotICAgICAgICAgICIwLjEzMDY0MiwgMC4zOTI5ODEsIDAuNjUzMzg5LCAwLjgzOTM2MSwgMS4xMzY3LCAxLjM5Njg1LCAxLjc2ODI2IiwgXAotICAgICAgICAgICIwLjE1MDMyOSwgMC40MTI4ODEsIDAuNjczMzgyLCAwLjg1OTA3NywgMS4xNTYzMywgMS40MTY1MywgMS43ODgyOCIsIFwKLSAgICAgICAgICAiMC4xNjcyMjUsIDAuNDMwMDYyLCAwLjY5MDcyOCwgMC44NzY0NzIsIDEuMTc0MDYsIDEuNDMzNzQsIDEuODA1MTkiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNDQwMTgsIDAuNjUxNDA1LCAxLjE1OTA5LCAxLjUyMTkxLCAyLjEwMjE3LCAyLjYxMDcsIDMuMzM1ODUiLCBcCi0gICAgICAgICAgIjAuMTQ0MDI4LCAwLjY1MTQ4LCAxLjE1OTIzLCAxLjUyMTg2LCAyLjEwMjQyLCAyLjYxMDk3LCAzLjMzNTc4IiwgXAotICAgICAgICAgICIwLjE0NDA4NywgMC42NTE0NDIsIDEuMTU5MzgsIDEuNTIxODEsIDIuMTAyMjEsIDIuNjEwODQsIDMuMzM1ODIiLCBcCi0gICAgICAgICAgIjAuMTQ1Mzk5LCAwLjY1MTM3OSwgMS4xNTkxNCwgMS41MjE5NSwgMi4xMDI1NiwgMi42MTA5MiwgMy4zMzY2IiwgXAotICAgICAgICAgICIwLjE0Nzg4MywgMC42NTE0NjIsIDEuMTU5MzUsIDEuNTIyNCwgMi4xMDIxNCwgMi42MTAxMSwgMy4zMzY1NyIsIFwKLSAgICAgICAgICAiMC4xNTM2NzQsIDAuNjUxNDI2LCAxLjE1OTI2LCAxLjUyMTg5LCAyLjEwMjg2LCAyLjYxMDE2LCAzLjMzNTYiLCBcCi0gICAgICAgICAgIjAuMTU5OTAxLCAwLjY1MTg3NiwgMS4xNTkyLCAxLjUyMjQxLCAyLjEwMjc4LCAyLjYxMDU5LCAzLjMzNTgyIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTAxODcsIDAuMzkzNzk4LCAwLjY4NDA5MiwgMC44OTE0NTIsIDEuMjIyNiwgMS41MTE5OSwgMS45MjY4OCIsIFwKLSAgICAgICAgICAiMC4xMTM2MDMsIDAuNDA1NjQ1LCAwLjY5NjA4NywgMC45MDMyNjMsIDEuMjM0NiwgMS41MjQ0NSwgMS45Mzg5MyIsIFwKLSAgICAgICAgICAiMC4xMjgwNjgsIDAuNDIwMjYyLCAwLjcxMDc5OSwgMC45MTc5NCwgMS4yNDkzOSwgMS41MzkxMiwgMS45NTQxMSIsIFwKLSAgICAgICAgICAiMC4xNDE4OTIsIDAuNDM0MTg3LCAwLjcyNDY3NiwgMC45MzE4NTMsIDEuMjYzNzksIDEuNTUzMSwgMS45Njc5OSIsIFwKLSAgICAgICAgICAiMC4xNTU0OTUsIDAuNDQ3OTU1LCAwLjczODUxMSwgMC45NDU2NzYsIDEuMjc3MDcsIDEuNTY2ODMsIDEuOTgxNjUiLCBcCi0gICAgICAgICAgIjAuMTc2OTkyLCAwLjQ2OTUwNSwgMC43NTk5MjUsIDAuOTY3MDI4LCAxLjI5OTAzLCAxLjU4ODE3LCAyLjAwMzM4IiwgXAotICAgICAgICAgICIwLjE5NTc2NCwgMC40ODgzNywgMC43Nzg3NzQsIDAuOTg1OTQzLCAxLjMxNzI1LCAxLjYwNzg2LCAyLjAyMTg3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTQwOTgyLCAwLjY5NjI4OCwgMS4yNTEyLCAxLjY0Njc4LCAyLjI4Mzg4LCAyLjg0MTUyLCAzLjYzODA0IiwgXAotICAgICAgICAgICIwLjE0MTMwOSwgMC42OTY4OCwgMS4yNTA2MywgMS42NDcxMiwgMi4yODM0LCAyLjg0MDk4LCAzLjYzODUzIiwgXAotICAgICAgICAgICIwLjE0MTEsIDAuNjk2NDYzLCAxLjI1MDY2LCAxLjY0NjYyLCAyLjI4MzUyLCAyLjg0MDczLCAzLjYzODU1IiwgXAotICAgICAgICAgICIwLjE0MTE5LCAwLjY5NjQ1NSwgMS4yNTA2NCwgMS42NDYzMywgMi4yODM0NiwgMi44NDMzMSwgMy42Mzg2NSIsIFwKLSAgICAgICAgICAiMC4xNDIxODQsIDAuNjk2NTcxLCAxLjI1MDg4LCAxLjY0NjkxLCAyLjI4MzUyLCAyLjg0MTYsIDMuNjM4NTciLCBcCi0gICAgICAgICAgIjAuMTQ1NjgsIDAuNjk2NDc5LCAxLjI1MDcxLCAxLjY0Njk0LCAyLjI4MzgyLCAyLjg0MDMyLCAzLjYzODc0IiwgXAotICAgICAgICAgICIwLjE1MDE1NSwgMC42OTY0NTQsIDEuMjUwNzYsIDEuNjQ2NDQsIDIuMjgzNSwgMi44NDE3MSwgMy42MzgxMSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzQ5MTYsIDAuMzM2ODI0LCAwLjU5NzE3LCAwLjc4MzE4NiwgMS4wODAxNSwgMS4zNDA1NCwgMS43MTE1NyIsIFwKLSAgICAgICAgICAiMC4wODQ5MjgsIDAuMzQ3MDI1LCAwLjYwNzM3OSwgMC43OTMyOTksIDEuMDkwODUsIDEuMzUwNjksIDEuNzIxNzciLCBcCi0gICAgICAgICAgIjAuMDk3NzcxLCAwLjM2MDAyNiwgMC42MjAzODQsIDAuODA2MjQsIDEuMTAzNTcsIDEuMzYzNCwgMS43MzUyNCIsIFwKLSAgICAgICAgICAiMC4xMTE0NTQsIDAuMzczNzAxLCAwLjYzNDIxNCwgMC44MTk4ODgsIDEuMTE3NDUsIDEuMzc3NTgsIDEuNzQ5MjgiLCBcCi0gICAgICAgICAgIjAuMTI0NDE4LCAwLjM4NjE0LCAwLjY0NjY1MiwgMC44MzI0MzgsIDEuMTI5NTMsIDEuMzg5NjMsIDEuNzYwOTYiLCBcCi0gICAgICAgICAgIjAuMTQ1OTA3LCAwLjQwNzA3LCAwLjY2NzQ4NSwgMC44NTM1MSwgMS4xNTA1NSwgMS40MTA3MiwgMS43ODI2IiwgXAotICAgICAgICAgICIwLjE2NDQwMSwgMC40MjUzOTMsIDAuNjg1OTYsIDAuODcxNjA4LCAxLjE2ODk5LCAxLjQyODc5LCAxLjgwMDQ1Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTQ0MDUxLCAwLjY1MTQ1NCwgMS4xNTkxLCAxLjUyMTk1LCAyLjEwMjMsIDIuNjEwODcsIDMuMzM2NCIsIFwKLSAgICAgICAgICAiMC4xNDM5OTcsIDAuNjUxNDQ3LCAxLjE1OTI1LCAxLjUyMjA3LCAyLjEwMjcsIDIuNjExMDUsIDMuMzM2MDUiLCBcCi0gICAgICAgICAgIjAuMTQ0Njc5LCAwLjY1MTM0MywgMS4xNTkyNiwgMS41MjE5NSwgMi4xMDI0OSwgMi42MTA4MywgMy4zMzY2MSIsIFwKLSAgICAgICAgICAiMC4xNDc5NTIsIDAuNjUxNDEsIDEuMTU5NTUsIDEuNTIxODksIDIuMTAyNSwgMi42MTAxMSwgMy4zMzU3NSIsIFwKLSAgICAgICAgICAiMC4xNTMyODksIDAuNjUxNDU4LCAxLjE1OTIyLCAxLjUyMjA1LCAyLjEwMjIxLCAyLjYxMDg5LCAzLjMzNTk4IiwgXAotICAgICAgICAgICIwLjE2Mzc3OCwgMC42NTEzOTIsIDEuMTU5MzYsIDEuNTIxOTQsIDIuMTAyNzksIDIuNjEwODgsIDMuMzM1ODIiLCBcCi0gICAgICAgICAgIjAuMTc0NjEzLCAwLjY1MjQ4OSwgMS4xNTkzLCAxLjUyMTg3LCAyLjEwMjgzLCAyLjYxMDg4LCAzLjMzNTc0Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDkyNTIyLCAwLjM4NTM3OSwgMC42Nzc0NTMsIDAuODg1NTIxLCAxLjIxOTMxLCAxLjUxMDgyLCAxLjkyODMxIiwgXAotICAgICAgICAgICIwLjEwNDU3NiwgMC4zOTc5MTksIDAuNjg5ODYyLCAwLjg5Nzk4MSwgMS4yMzE2NSwgMS41MjM4OCwgMS45NDAyOCIsIFwKLSAgICAgICAgICAiMC4xMTg4NzgsIDAuNDEyNDA4LCAwLjcwNDU2OSwgMC45MTMwMjQsIDEuMjQ2NDcsIDEuNTM3ODMsIDEuOTU1NDMiLCBcCi0gICAgICAgICAgIjAuMTMyNTg2LCAwLjQyNjM1OCwgMC43MTg1NjcsIDAuOTI2ODAzLCAxLjI2MDY0LCAxLjU1MjAyLCAxLjk2OTExIiwgXAotICAgICAgICAgICIwLjE0NjAyMSwgMC40Mzk5NzUsIDAuNzMyMDUxLCAwLjk0MDg2MiwgMS4yNzQxMywgMS41NjYwNSwgMS45ODIxMiIsIFwKLSAgICAgICAgICAiMC4xNjcyMTcsIDAuNDYxNDYzLCAwLjc1MzYxMSwgMC45NjIyNDcsIDEuMjk2MDQsIDEuNTg3LCAyLjAwNDk4IiwgXAotICAgICAgICAgICIwLjE4NTkzOCwgMC40ODAxNTcsIDAuNzcyNTQ2LCAwLjk4MDg5OCwgMS4zMTQyNSwgMS42MDY1LCAyLjAyMjUzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTMxMzAzLCAwLjY4OTkwNCwgMS4yNDc2NSwgMS42NDYxMywgMi4yODM0MiwgMi44NDU0NiwgMy42NDciLCBcCi0gICAgICAgICAgIjAuMTMxNTg1LCAwLjY4OTUyNSwgMS4yNDg2MiwgMS42NDU3OSwgMi4yOTU1LCAyLjg0MzE3LCAzLjY0MjYxIiwgXAotICAgICAgICAgICIwLjEzMTM2MiwgMC42ODk4MzIsIDEuMjQ3NTQsIDEuNjQ1ODcsIDIuMjgzMzMsIDIuODUzOTEsIDMuNjQ3NDQiLCBcCi0gICAgICAgICAgIjAuMTMxNTIxLCAwLjY4OTU2OCwgMS4yNDc0LCAxLjY0NTQ1LCAyLjI4MzUxLCAyLjg0MjM4LCAzLjY1MDc3IiwgXAotICAgICAgICAgICIwLjEzMjczNywgMC42ODk2MDgsIDEuMjQ3NzgsIDEuNjQ2MDYsIDIuMjg5NjIsIDIuODQxMzUsIDMuNjU3NjUiLCBcCi0gICAgICAgICAgIjAuMTM2NzM0LCAwLjY4OTY2NCwgMS4yNDgyMSwgMS42NDgyMywgMi4yODUxMywgMi44NTQ0LCAzLjY0NTU3IiwgXAotICAgICAgICAgICIwLjE0MTczMiwgMC42ODk2MTMsIDEuMjQ3NTQsIDEuNjUwNDIsIDIuMjgyNjksIDIuODU0MTYsIDMuNjQyOTYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjAiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY3MDY5LCAwLjMyNzM0MSwgMC41ODc1MDQsIDAuNzczNDU1LCAxLjA3MDUzLCAxLjMzMDY3LCAxLjcwMjQ5IiwgXAotICAgICAgICAgICIwLjA3ODYwNiwgMC4zMzkzNTksIDAuNTk5MzgsIDAuNzg1MDQxLCAxLjA4MjQ3LCAxLjM0MjU5LCAxLjcxNDE2IiwgXAotICAgICAgICAgICIwLjA5MTUwNCwgMC4zNTIzMDEsIDAuNjEyNTI1LCAwLjc5ODE3OCwgMS4wOTU2MiwgMS4zNTU4NiwgMS43MjczNSIsIFwKLSAgICAgICAgICAiMC4xMDM5MjIsIDAuMzY0ODE4LCAwLjYyNTAxNywgMC44MTA4MDgsIDEuMTA4MSwgMS4zNjgyOSwgMS43NDAwMyIsIFwKLSAgICAgICAgICAiMC4xMTYyMzksIDAuMzc3Mzg3LCAwLjYzNzU0OSwgMC44MjMyOTgsIDEuMTIwNjMsIDEuMzgwODQsIDEuNzUyMzIiLCBcCi0gICAgICAgICAgIjAuMTM1NjQ4LCAwLjM5NzExOCwgMC42NTczOTMsIDAuODQzMzI1LCAxLjE0MDU4LCAxLjQwMDc2LCAxLjc3MjQ0IiwgXAotICAgICAgICAgICIwLjE1MTMxMywgMC40MTQyOTcsIDAuNjc0Nzg0LCAwLjg2MTAzNSwgMS4xNTc5OCwgMS40MTgyMiwgMS43ODk4MyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEyOTk1NywgMC42MzY3MDYsIDEuMTQ0NDYsIDEuNTA3NzYsIDIuMDg4MDQsIDIuNTk2NjUsIDMuMzIzMzYiLCBcCi0gICAgICAgICAgIjAuMTI5OTQyLCAwLjYzNjg1MywgMS4xNDQ2NiwgMS41MDc3NSwgMi4wODg1NSwgMi41OTY2MywgMy4zMzM1IiwgXAotICAgICAgICAgICIwLjEzMDI4NiwgMC42MzY4MjUsIDEuMTQ0NjYsIDEuNTA3NCwgMi4wODg1MiwgMi41OTY4NiwgMy4zMzMzNSIsIFwKLSAgICAgICAgICAiMC4xMzIxNzksIDAuNjM2ODQyLCAxLjE0NDc1LCAxLjUwNzQxLCAyLjA4Nzk3LCAyLjU5NjY1LCAzLjMzMzI1IiwgXAotICAgICAgICAgICIwLjEzNTI5LCAwLjYzNjg1MSwgMS4xNDQ1OSwgMS41MDc0MiwgMi4wODc5NiwgMi41OTcxLCAzLjMyMzI2IiwgXAotICAgICAgICAgICIwLjE0MjA2NywgMC42MzY4NjksIDEuMTQ0NzMsIDEuNTA3MzUsIDIuMDg4MjMsIDIuNTk2MjYsIDMuMzMzMzgiLCBcCi0gICAgICAgICAgIjAuMTQ5MTg4LCAwLjYzNzUwMiwgMS4xNDQ3MywgMS41MDc1MywgMi4wODgyNCwgMi41OTY2OCwgMy4zMjI0MyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4Nzc1NSwgMC4zNzk2NjcsIDAuNjcwMTM5LCAwLjg3NzE4OCwgMS4yMDg2NCwgMS40OTgzNSwgMS45MTI4NyIsIFwKLSAgICAgICAgICAiMC4wOTc5MDYsIDAuMzkwMDMyLCAwLjY4MDI4LCAwLjg4NzMzOCwgMS4yMTg3LCAxLjUwODU4LCAxLjkyMjIzIiwgXAotICAgICAgICAgICIwLjExMDkzNywgMC40MDMxNDIsIDAuNjkzNTMsIDAuOTAwNTQzLCAxLjIzMjQyLCAxLjUyMjgzLCAxLjkzNjIyIiwgXAotICAgICAgICAgICIwLjEyNDgxOSwgMC40MTY1MDYsIDAuNzA3Mzk1LCAwLjkxNDczNCwgMS4yNDYyNiwgMS41MzYzOSwgMS45NTAxNiIsIFwKLSAgICAgICAgICAiMC4xMzc5OTUsIDAuNDI5NzY4LCAwLjcyMDQ4OCwgMC45MjczNTQsIDEuMjU4OTQsIDEuNTQ5MTQsIDEuOTYzMjYiLCBcCi0gICAgICAgICAgIjAuMTU5NjE4LCAwLjQ1MjIxNywgMC43NDI1MTMsIDAuOTQ4MTU5LCAxLjI4MDAyLCAxLjU2OTU3LCAxLjk4MzkyIiwgXAotICAgICAgICAgICIwLjE3ODYwNSwgMC40NjkzMTksIDAuNzU5NjEzLCAwLjk2NzAxNiwgMS4yOTgxNiwgMS41ODg2MywgMi4wMDIxOSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE0MTExNiwgMC42OTY3MTIsIDEuMjUwNjUsIDEuNjQ3MTEsIDIuMjgzNCwgMi44NDE1NSwgMy42MzgyNCIsIFwKLSAgICAgICAgICAiMC4xNDA5ODMsIDAuNjk2MjczLCAxLjI1MDczLCAxLjY0NjU5LCAyLjI4MjY1LCAyLjg0MTQsIDMuNjM3NDEiLCBcCi0gICAgICAgICAgIjAuMTQwODE4LCAwLjY5NjYzNSwgMS4yNTExNCwgMS42NDY1NSwgMi4yODM1OCwgMi44NDEyNSwgMy42NDE0NyIsIFwKLSAgICAgICAgICAiMC4xNDI1MzgsIDAuNjk2NzIxLCAxLjI1MTA3LCAxLjY0NzA2LCAyLjI4MzQsIDIuODQxMzEsIDMuNjM3OTciLCBcCi0gICAgICAgICAgIjAuMTQ2NDk5LCAwLjY5NjY5OCwgMS4yNTA4OSwgMS42NDY1LCAyLjI4MzcxLCAyLjg0MTIxLCAzLjYzODIxIiwgXAotICAgICAgICAgICIwLjE1NTIxMiwgMC42OTY1NywgMS4yNTA3NiwgMS42NDY1NiwgMi4yODM0NSwgMi44NDE0NSwgMy42MzgxNiIsIFwKLSAgICAgICAgICAiMC4xNjQ0NzUsIDAuNjk2NjgzLCAxLjI1MDgxLCAxLjY0NjMsIDIuMjgyNjcsIDIuODQxNDEsIDMuNjQwNjciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDYwNTgxLCAwLjMyMDk3NCwgMC41ODExNzUsIDAuNzY2ODEyLCAxLjA2NDI0LCAxLjMyNDI1LCAxLjY5NTkyIiwgXAotICAgICAgICAgICIwLjA3MDcwOCwgMC4zMzE0NjMsIDAuNTkxNTMxLCAwLjc3NzM4MSwgMS4wNzQ2NiwgMS4zMzQ3MywgMS43MDY1NCIsIFwKLSAgICAgICAgICAiMC4wODM1MTYsIDAuMzQ0Mzg3LCAwLjYwNDYwOCwgMC43OTAzNTUsIDEuMDg3NjYsIDEuMzQ4MDUsIDEuNzE5NTkiLCBcCi0gICAgICAgICAgIjAuMDk3MTIzLCAwLjM1ODA0NSwgMC42MTgzMDgsIDAuODA0MTgyLCAxLjEwMTQzLCAxLjM2MTYyLCAxLjczMzE3IiwgXAotICAgICAgICAgICIwLjExMDI2OCwgMC4zNzA1NzUsIDAuNjMwODI2LCAwLjgxNjY0NiwgMS4xMTM4NiwgMS4zNzQwNiwgMS43NDU2OCIsIFwKLSAgICAgICAgICAiMC4xMzEzMjgsIDAuMzkxMzkyLCAwLjY1MTY3MywgMC44Mzc1MjgsIDEuMTM0ODQsIDEuMzk1NywgMS43NjY2OSIsIFwKLSAgICAgICAgICAiMC4xNDgwNDIsIDAuNDA5NzYxLCAwLjY2OTk4NywgMC44NTU3ODcsIDEuMTUzMjMsIDEuNDEzMjgsIDEuNzg0OTEiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMjk5MzUsIDAuNjM2Nzk3LCAxLjE0NDY2LCAxLjUwNzQxLCAyLjA4ODIxLCAyLjU5NzExLCAzLjMyMjQxIiwgXAotICAgICAgICAgICIwLjEyOTg2MSwgMC42MzY5MjUsIDEuMTQ0NiwgMS41MDczMSwgMi4wODg1NSwgMi41OTYzNywgMy4zMjIzMiIsIFwKLSAgICAgICAgICAiMC4xMzE2ODQsIDAuNjM2Nzk5LCAxLjE0NDU5LCAxLjUwNzM5LCAyLjA4Nzk3LCAyLjU5Njg0LCAzLjMzMzI0IiwgXAotICAgICAgICAgICIwLjEzNjEzOCwgMC42MzY4MTIsIDEuMTQ0NTgsIDEuNTA3MzcsIDIuMDg4MiwgMi41OTYyLCAzLjMzMzQ3IiwgXAotICAgICAgICAgICIwLjE0MjY1OCwgMC42MzY4MjEsIDEuMTQ0NzcsIDEuNTA3NDUsIDIuMDg4MDUsIDIuNTk2NCwgMy4zMjI0MSIsIFwKLSAgICAgICAgICAiMC4xNTQ5MTQsIDAuNjM2NzkzLCAxLjE0NDU4LCAxLjUwNzcxLCAyLjA4ODYxLCAyLjU5NjksIDMuMzMzNSIsIFwKLSAgICAgICAgICAiMC4xNjcwMzMsIDAuNjM4MjEzLCAxLjE0NDU3LCAxLjUwNzM5LCAyLjA4ODA5LCAyLjU5NjczLCAzLjMyMzQzIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc4NDQ5LCAwLjM3MTUxMywgMC42NjMzNzcsIDAuODcyMDU4LCAxLjIwNTE4LCAxLjQ5NzAyLCAxLjkxNDAxIiwgXAotICAgICAgICAgICIwLjA4ODkxNCwgMC4zODIyNTIsIDAuNjc0MjMxLCAwLjg4MjU1OSwgMS4yMTU4NSwgMS41MDc2NywgMS45MjQwNSIsIFwKLSAgICAgICAgICAiMC4xMDE3OTIsIDAuMzk1NDI3LCAwLjY4NzkwNywgMC44OTY0OTYsIDEuMjI5NzQsIDEuNTIxMzQsIDEuOTM3OTMiLCBcCi0gICAgICAgICAgIjAuMTE1NDEzLCAwLjQwODczMSwgMC43MDA3MDIsIDAuOTA5MTI3LCAxLjI0MjgyLCAxLjUzNDk1LCAxLjk1MDk1IiwgXAotICAgICAgICAgICIwLjEyNzk3MSwgMC40MjIxOTYsIDAuNzE0MTM1LCAwLjkyMjU5OSwgMS4yNTYyOSwgMS41NDgyNSwgMS45NjQ4NCIsIFwKLSAgICAgICAgICAiMC4xNTAyMDgsIDAuNDQ0MzE1LCAwLjczNDg5LCAwLjk0MzM5NSwgMS4yNzczMywgMS41Njg3MywgMS45ODU3MSIsIFwKLSAgICAgICAgICAiMC4xNjk0MzUsIDAuNDYxMzc4LCAwLjc1MzUwOSwgMC45NjIyMDIsIDEuMjk1NDYsIDEuNTg3NzUsIDIuMDAzOTciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMzEzMDksIDAuNjg5ODAyLCAxLjI0ODk5LCAxLjY0NjMzLCAyLjI5NjMsIDIuODQxNTksIDMuNjQ1OTciLCBcCi0gICAgICAgICAgIjAuMTMxMTk3LCAwLjY4OTY5LCAxLjI0NzIsIDEuNjQ4NDEsIDIuMjkxMDUsIDIuODUyNiwgMy42NTczMSIsIFwKLSAgICAgICAgICAiMC4xMzExMjQsIDAuNjg5ODQsIDEuMjQ3MzUsIDEuNjQ2MzMsIDIuMjkxMzMsIDIuODUyNjgsIDMuNjU3MzQiLCBcCi0gICAgICAgICAgIjAuMTMzNywgMC42ODkzOTEsIDEuMjQ3NzMsIDEuNjQ1ODcsIDIuMjkxNTQsIDIuODQ0NTEsIDMuNjU3NDEiLCBcCi0gICAgICAgICAgIjAuMTM4NTE1LCAwLjY4OTY4MiwgMS4yNDc2OSwgMS42NDU4NywgMi4yOTE1NywgMi44NDIyOSwgMy42NTYwMSIsIFwKLSAgICAgICAgICAiMC4xNDc4NDgsIDAuNjg5Nzk4LCAxLjI0NzM2LCAxLjY0ODQ0LCAyLjI4MzU1LCAyLjg1NDIsIDMuNjQyODgiLCBcCi0gICAgICAgICAgIjAuMTU3NTc4LCAwLjY4OTcyLCAxLjI0NzYzLCAxLjY0NTk2LCAyLjI5MzgxLCAyLjg0NDQ0LCAzLjY1NzkyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEwODE4LCAwLjAxMDgxNywgMC4wMTA4MTQsIDAuMDEwODEyLCAwLjAxMDgwOSwgMC4wMTA4MDcsIDAuMDEwODAzIiwgXAotICAgICAgICAgICIwLjAxMDc3OSwgMC4wMTA3ODUsIDAuMDEwNzg0LCAwLjAxMDc4MiwgMC4wMTA3NzksIDAuMDEwNzc3LCAwLjAxMDc3MiIsIFwKLSAgICAgICAgICAiMC4wMTA3NTYsIDAuMDEwNzc3LCAwLjAxMDc3NiwgMC4wMTA3NzQsIDAuMDEwNzcyLCAwLjAxMDc2OSwgMC4wMTA3NjgiLCBcCi0gICAgICAgICAgIjAuMDEwNzQsIDAuMDEwNzcsIDAuMDEwNzY5LCAwLjAxMDc3LCAwLjAxMDc2NywgMC4wMTA3NjUsIDAuMDEwNzYxIiwgXAotICAgICAgICAgICIwLjAxMDcyOCwgMC4wMTA3NjUsIDAuMDEwNzY4LCAwLjAxMDc2OSwgMC4wMTA3NjQsIDAuMDEwNzY1LCAwLjAxMDc1OSIsIFwKLSAgICAgICAgICAiMC4wMTA3MTMsIDAuMDEwNzUzLCAwLjAxMDc1OSwgMC4wMTA3NjEsIDAuMDEwNzYsIDAuMDEwNzU5LCAwLjAxMDc1NSIsIFwKLSAgICAgICAgICAiMC4wMTA3MDQsIDAuMDEwNzUxLCAwLjAxMDc1OSwgMC4wMTA3NiwgMC4wMTA3NjIsIDAuMDEwNzYxLCAwLjAxMDc1NiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzNjM2LCAwLjAwMzYzNywgMC4wMDM2MzYsIDAuMDAzNjM2LCAwLjAwMzYzMywgMC4wMDM2MywgMC4wMDM2MzIiLCBcCi0gICAgICAgICAgIjAuMDAzNTY2LCAwLjAwMzU4NSwgMC4wMDM1ODcsIDAuMDAzNTg2LCAwLjAwMzU4MiwgMC4wMDM1ODQsIDAuMDAzNTg2IiwgXAotICAgICAgICAgICIwLjAwMzUyNywgMC4wMDM1NjgsIDAuMDAzNTczLCAwLjAwMzU3NCwgMC4wMDM1NzIsIDAuMDAzNTc0LCAwLjAwMzU3IiwgXAotICAgICAgICAgICIwLjAwMzUwNiwgMC4wMDM1NTgsIDAuMDAzNTY2LCAwLjAwMzU2NywgMC4wMDM1NjYsIDAuMDAzNTY1LCAwLjAwMzU2NSIsIFwKLSAgICAgICAgICAiMC4wMDM0OCwgMC4wMDM1NDYsIDAuMDAzNTU2LCAwLjAwMzU1OSwgMC4wMDM1NjQsIDAuMDAzNTYxLCAwLjAwMzU2IiwgXAotICAgICAgICAgICIwLjAwMzQ1NiwgMC4wMDM1MzUsIDAuMDAzNTQ4LCAwLjAwMzU1NCwgMC4wMDM1NTcsIDAuMDAzNTU4LCAwLjAwMzU1NiIsIFwKLSAgICAgICAgICAiMC4wMDM0NCwgMC4wMDM1MjQsIDAuMDAzNTQyLCAwLjAwMzU0OCwgMC4wMDM1NTIsIDAuMDAzNTU0LCAwLjAwMzU1NSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkExIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwOTgxLCAwLjAwOTgxLCAwLjAwOTgwNiwgMC4wMDk4MDQsIDAuMDA5ODAxLCAwLjAwOTc5NywgMC4wMDk3OTUiLCBcCi0gICAgICAgICAgIjAuMDA5NzUzLCAwLjAwOTc3MiwgMC4wMDk3NzIsIDAuMDA5NzcyLCAwLjAwOTc3MiwgMC4wMDk3NjUsIDAuMDA5NzYzIiwgXAotICAgICAgICAgICIwLjAwOTcxMSwgMC4wMDk3NTUsIDAuMDA5NzU5LCAwLjAwOTc2LCAwLjAwOTc2MSwgMC4wMDk3NTcsIDAuMDA5NzU0IiwgXAotICAgICAgICAgICIwLjAwOTY5LCAwLjAwOTc0OSwgMC4wMDk3NTQsIDAuMDA5NzU0LCAwLjAwOTc1NSwgMC4wMDk3NTEsIDAuMDA5NzUxIiwgXAotICAgICAgICAgICIwLjAwOTY3LCAwLjAwOTczNywgMC4wMDk3NDYsIDAuMDA5NzQ5LCAwLjAwOTc0NywgMC4wMDk3NDcsIDAuMDA5NzQ1IiwgXAotICAgICAgICAgICIwLjAwOTY1LCAwLjAwOTcyMywgMC4wMDk3MzksIDAuMDA5NzQyLCAwLjAwOTc0MywgMC4wMDk3NDMsIDAuMDA5NzQiLCBcCi0gICAgICAgICAgIjAuMDA5NjQsIDAuMDA5NzE5LCAwLjAwOTczMywgMC4wMDk3MzYsIDAuMDA5NzM5LCAwLjAwOTc0MSwgMC4wMDk3NCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyMzcyLCAwLjAwMjM4OSwgMC4wMDIzOTEsIDAuMDAyMzkxLCAwLjAwMjQwMiwgMC4wMDIzOSwgMC4wMDIzODkiLCBcCi0gICAgICAgICAgIjAuMDAyMzUsIDAuMDAyNDIxLCAwLjAwMjQzMSwgMC4wMDI0MzMsIDAuMDAyNDMyLCAwLjAwMjQzNSwgMC4wMDI0MzgiLCBcCi0gICAgICAgICAgIjAuMDAyMjk0LCAwLjAwMjQxMSwgMC4wMDI0MjksIDAuMDAyNDMzLCAwLjAwMjQzNiwgMC4wMDI0MzksIDAuMDAyNDQiLCBcCi0gICAgICAgICAgIjAuMDAyMjQzLCAwLjAwMjM5NCwgMC4wMDI0MTksIDAuMDAyNDI2LCAwLjAwMjQzNCwgMC4wMDI0MzcsIDAuMDAyNDM5IiwgXAotICAgICAgICAgICIwLjAwMjIwNSwgMC4wMDIzNzcsIDAuMDAyNDEsIDAuMDAyNDE5LCAwLjAwMjQyOCwgMC4wMDI0MzIsIDAuMDAyNDM2IiwgXAotICAgICAgICAgICIwLjAwMjE1NywgMC4wMDIzNTUsIDAuMDAyMzkzLCAwLjAwMjQwNywgMC4wMDI0MTksIDAuMDAyNDI1LCAwLjAwMjQzIiwgXAotICAgICAgICAgICIwLjAwMjEyNywgMC4wMDIzMzEsIDAuMDAyMzgsIDAuMDAyMzk3LCAwLjAwMjQxMSwgMC4wMDI0MTksIDAuMDAyNDI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA3MzkzLCAwLjAwNzQwNCwgMC4wMDc0MDQsIDAuMDA3NDA1LCAwLjAwNzQwNCwgMC4wMDc0MDUsIDAuMDA3NDA0IiwgXAotICAgICAgICAgICIwLjAwNzM3OCwgMC4wMDc0MjQsIDAuMDA3NDMsIDAuMDA3NDMxLCAwLjAwNzQzMiwgMC4wMDc0MzMsIDAuMDA3NDMzIiwgXAotICAgICAgICAgICIwLjAwNzM0MiwgMC4wMDc0MTksIDAuMDA3NDI5LCAwLjAwNzQzMiwgMC4wMDc0MzYsIDAuMDA3NDM2LCAwLjAwNzQzOCIsIFwKLSAgICAgICAgICAiMC4wMDczMTYsIDAuMDA3NDEyLCAwLjAwNzQyNiwgMC4wMDc0MywgMC4wMDc0MzQsIDAuMDA3NDM2LCAwLjAwNzQzOCIsIFwKLSAgICAgICAgICAiMC4wMDcyOTQsIDAuMDA3NDA0LCAwLjAwNzQyMiwgMC4wMDc0MjcsIDAuMDA3NDMyLCAwLjAwNzQzMywgMC4wMDc0MzciLCBcCi0gICAgICAgICAgIjAuMDA3MjY3LCAwLjAwNzM5MiwgMC4wMDc0MTUsIDAuMDA3NDIyLCAwLjAwNzQzMiwgMC4wMDc0MzMsIDAuMDA3NDM1IiwgXAotICAgICAgICAgICIwLjAwNzI1MywgMC4wMDczODEsIDAuMDA3NDA1LCAwLjAwNzQxNSwgMC4wMDc0MjIsIDAuMDA3NDI3LCAwLjAwNzQzMSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzNjM1LCAwLjAwMzYzNywgMC4wMDM2MzYsIDAuMDAzNjM0LCAwLjAwMzYzMiwgMC4wMDM2MywgMC4wMDM2MzEiLCBcCi0gICAgICAgICAgIjAuMDAzNTUzLCAwLjAwMzU4MSwgMC4wMDM1ODEsIDAuMDAzNTgxLCAwLjAwMzU4NiwgMC4wMDM1ODEsIDAuMDAzNTc5IiwgXAotICAgICAgICAgICIwLjAwMzUwOCwgMC4wMDM1NiwgMC4wMDM1NjcsIDAuMDAzNTY5LCAwLjAwMzU3MiwgMC4wMDM1NzEsIDAuMDAzNTciLCBcCi0gICAgICAgICAgIjAuMDAzNDgzLCAwLjAwMzU0NiwgMC4wMDM1NjEsIDAuMDAzNTYxLCAwLjAwMzU2MywgMC4wMDM1NjUsIDAuMDAzNTYyIiwgXAotICAgICAgICAgICIwLjAwMzQ2MywgMC4wMDM1MzYsIDAuMDAzNTUxLCAwLjAwMzU1NSwgMC4wMDM1NTYsIDAuMDAzNTYxLCAwLjAwMzU2IiwgXAotICAgICAgICAgICIwLjAwMzQ0NSwgMC4wMDM1MjcsIDAuMDAzNTQ1LCAwLjAwMzU0NywgMC4wMDM1NDksIDAuMDAzNTUzLCAwLjAwMzU1NCIsIFwKLSAgICAgICAgICAiMC4wMDM0MzYsIDAuMDAzNTE1LCAwLjAwMzUzNSwgMC4wMDM1NDIsIDAuMDAzNTQ3LCAwLjAwMzU0OCwgMC4wMDM1NDgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDYzODMsIDAuMDA2Mzk5LCAwLjAwNjQwMSwgMC4wMDY0MDEsIDAuMDA2NCwgMC4wMDY0MDEsIDAuMDA2NDAxIiwgXAotICAgICAgICAgICIwLjAwNjM0NiwgMC4wMDY0MTUsIDAuMDA2NDIyLCAwLjAwNjQyNCwgMC4wMDY0MjYsIDAuMDA2NDI3LCAwLjAwNjQyOCIsIFwKLSAgICAgICAgICAiMC4wMDYyOTUsIDAuMDA2NDA3LCAwLjAwNjQyMSwgMC4wMDY0MjUsIDAuMDA2NDI4LCAwLjAwNjQzMSwgMC4wMDY0MzMiLCBcCi0gICAgICAgICAgIjAuMDA2MjYxLCAwLjAwNjM5NSwgMC4wMDY0MTQsIDAuMDA2NDIsIDAuMDA2NDI2LCAwLjAwNjQyOCwgMC4wMDY0MzEiLCBcCi0gICAgICAgICAgIjAuMDA2MjM0LCAwLjAwNjM4MywgMC4wMDY0MDgsIDAuMDA2NDE2LCAwLjAwNjQyMywgMC4wMDY0MjcsIDAuMDA2NDMiLCBcCi0gICAgICAgICAgIjAuMDA2MjA4LCAwLjAwNjM2NSwgMC4wMDYzOTYsIDAuMDA2NDA3LCAwLjAwNjQxNiwgMC4wMDY0MjEsIDAuMDA2NDI2IiwgXAotICAgICAgICAgICIwLjAwNjE5NiwgMC4wMDYzNTIsIDAuMDA2Mzg4LCAwLjAwNjQsIDAuMDA2NDExLCAwLjAwNjQxNywgMC4wMDY0MjEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjM3NiwgMC4wMDIzOTUsIDAuMDAyNCwgMC4wMDIzOTgsIDAuMDAyMzkyLCAwLjAwMjM5NywgMC4wMDIzOTYiLCBcCi0gICAgICAgICAgIjAuMDAyMzQ0LCAwLjAwMjQyNiwgMC4wMDI0MzksIDAuMDAyNDQsIDAuMDAyNDQ0LCAwLjAwMjQ0MywgMC4wMDI0MzkiLCBcCi0gICAgICAgICAgIjAuMDAyMjgyLCAwLjAwMjQxNCwgMC4wMDI0MzQsIDAuMDAyNDM5LCAwLjAwMjQ0NCwgMC4wMDI0NDUsIDAuMDAyNDQ3IiwgXAotICAgICAgICAgICIwLjAwMjIyOSwgMC4wMDIzOTUsIDAuMDAyNDI0LCAwLjAwMjQzMiwgMC4wMDI0MzksIDAuMDAyNDQzLCAwLjAwMjQ0NSIsIFwKLSAgICAgICAgICAiMC4wMDIxOTUsIDAuMDAyMzgyLCAwLjAwMjQxNSwgMC4wMDI0MjYsIDAuMDAyNDM1LCAwLjAwMjQ0MSwgMC4wMDI0NDQiLCBcCi0gICAgICAgICAgIjAuMDAyMTU5LCAwLjAwMjM1NiwgMC4wMDI0LCAwLjAwMjQxNCwgMC4wMDI0MjgsIDAuMDAyNDM0LCAwLjAwMjQzOSIsIFwKLSAgICAgICAgICAiMC4wMDIxMzksIDAuMDAyMzM2LCAwLjAwMjM4NywgMC4wMDI0MDMsIDAuMDAyNDIsIDAuMDAyNDI3LCAwLjAwMjQzNCIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogT0FJMkJCMVgxICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoT0FJMkJCMVgxKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMDg4NjI4MjsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQTBOKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2MjAwNDY7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjIwMDQ2OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDYxODc3NTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxNjUsIDAuMDAwMTY1LCAwLjAwMDE2NSwgMC4wMDAxNjUsIDAuMDAwMTY1LCAwLjAwMDE2NSwgMC4wMDAxNjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxNjksIDAuMDAwMTY3LCAwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiwgMC4wMDAxNjYiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEExTikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNTgxMTM0OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDU4MTEzNDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA1ODA4NTE7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMDY1LCAwLjAwMDA2NSwgMC4wMDAwNjUsIDAuMDAwMDY1LCAwLjAwMDA2NCwgMC4wMDAwNjUsIDAuMDAwMDY1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMTg4LCAwLjAwMDE4OCwgMC4wMDAxODgsIDAuMDAwMTg4LCAwLjAwMDE4OCwgMC4wMDAxODgsIDAuMDAwMTg4Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwODcxMjkxOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDg3MTI5MTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA4NjkwNzg7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzA2LCAwLjAwMDMwNiwgMC4wMDAzMDYsIDAuMDAwMzA2LCAwLjAwMDMwNiwgMC4wMDAzMDYsIDAuMDAwMzA1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzE2LCAwLjAwMDMwOSwgMC4wMDAzMDgsIDAuMDAwMzA4LCAwLjAwMDMwOCwgMC4wMDAzMDgsIDAuMDAwMzA4Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMDYwNjkzOwotICAgIGZ1bmN0aW9uIDogIighKCghKEEwTiBBMU4pKSBCMCkpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBME4iOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE3OTk5NywgMC4yMjMwNjcsIDAuNDY1MjM3LCAwLjY3ODkyNiwgMC45NjM0NjEsIDEuNTMyODgsIDEuODg4OTkiLCBcCi0gICAgICAgICAgIjAuMTkxNTQzLCAwLjIzNDU3OSwgMC40NzY3NjEsIDAuNjkwNDQxLCAwLjk3NDk5MywgMS41NDQ4NCwgMS45MDAyIiwgXAotICAgICAgICAgICIwLjIwNTI2OCwgMC4yNDgyOTcsIDAuNDkwNDE3LCAwLjcwMzk0NCwgMC45ODkxNCwgMS41NTgzMSwgMS45MTUyNSIsIFwKLSAgICAgICAgICAiMC4yMTg5ODksIDAuMjYyMTEyLCAwLjUwNDI1NCwgMC43MTc3OSwgMS4wMDMsIDEuNTcyMDQsIDEuOTI3NyIsIFwKLSAgICAgICAgICAiMC4yMzI4NTYsIDAuMjc1OTg2LCAwLjUxODEzNSwgMC43MzE4MDYsIDEuMDE2ODksIDEuNTg1OTgsIDEuOTQyMDQiLCBcCi0gICAgICAgICAgIjAuMjU0Mjc3LCAwLjI5NzMwOCwgMC41Mzk0OTQsIDAuNzUzMTYxLCAxLjAzNzc5LCAxLjYwNzE2LCAxLjk2MzEiLCBcCi0gICAgICAgICAgIjAuMjcyNTYyLCAwLjMxNTY0NCwgMC41NTc4NSwgMC43NzE1MTgsIDEuMDU2MSwgMS42MjU1MywgMS45ODE0NCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNzEwMjMsIDAuMjU1MDYsIDAuNzQyMTI2LCAxLjE3NTY3LCAxLjc1ODIzLCAyLjkxMDMsIDMuNjM0NDEiLCBcCi0gICAgICAgICAgIjAuMTcwOTY0LCAwLjI1NDk0NiwgMC43NDIxMDMsIDEuMTc1NjYsIDEuNzUzNzUsIDIuOTEwOTcsIDMuNjMzMzkiLCBcCi0gICAgICAgICAgIjAuMTcwOTI1LCAwLjI1NTE5LCAwLjc0Mzk3MiwgMS4xNzgzLCAxLjc1Mzg4LCAyLjkxMTI5LCAzLjYzNTUiLCBcCi0gICAgICAgICAgIjAuMTcwODMyLCAwLjI1NDk3LCAwLjc0Mjc1NSwgMS4xNzg3LCAxLjc1NDQyLCAyLjkwOTYxLCAzLjY0MjY5IiwgXAotICAgICAgICAgICIwLjE3MDc5NiwgMC4yNTQ5MjQsIDAuNzQyNjM5LCAxLjE3NTk3LCAxLjc1NDc1LCAyLjkxMTY1LCAzLjYzNDA2IiwgXAotICAgICAgICAgICIwLjE3MDc4OSwgMC4yNTQ4OTYsIDAuNzQ1MjUzLCAxLjE3NTc2LCAxLjc1MzQ4LCAyLjkxNzgzLCAzLjYzMjY1IiwgXAotICAgICAgICAgICIwLjE3MTE3OSwgMC4yNTUwOTksIDAuNzQyMTE3LCAxLjE3NTczLCAxLjc1Mzc0LCAyLjkxNzg2LCAzLjYzMjciKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjI5ODczLCAwLjMyNzc0OCwgMC44ODE3MDIsIDEuMzcwMjQsIDIuMDIxNjYsIDMuMzI0NSwgNC4xMzkwNCIsIFwKLSAgICAgICAgICAiMC4yNDE0NDMsIDAuMzM5MzUxLCAwLjg5MzI5LCAxLjM4MTg4LCAyLjAzMzI0LCAzLjMzNjE0LCA0LjE1MDM4IiwgXAotICAgICAgICAgICIwLjI1NjA4NiwgMC4zNTM5OCwgMC45MDc5NiwgMS4zOTY2NCwgMi4wNDgwMSwgMy4zNTEwNSwgNC4xNjUwNCIsIFwKLSAgICAgICAgICAiMC4yNzA2OTIsIDAuMzY4NjA4LCAwLjkyMjYzOCwgMS40MTEyNSwgMi4wNjI2OSwgMy4zNjU1MSwgNC4xNzk4MSIsIFwKLSAgICAgICAgICAiMC4yODQ5MjcsIDAuMzgyODYsIDAuOTM2OTE2LCAxLjQyNTU2LCAyLjA3NzMyLCAzLjM3OTg0LCA0LjE5NDExIiwgXAotICAgICAgICAgICIwLjMwNTcyMSwgMC40MDM2ODYsIDAuOTU3Nzk5LCAxLjQ0NjUxLCAyLjA5NzksIDMuNDAwOTksIDQuMjE0OTYiLCBcCi0gICAgICAgICAgIjAuMzIyNDAxLCAwLjQyMDM3MywgMC45NzQ0OTYsIDEuNDYzMTQsIDIuMTE0NTUsIDMuNDE3NDYsIDQuMjMxNyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zNDg4NCwgMC41MzYxNjksIDEuNTk0NjgsIDIuNTI5NTYsIDMuNzc5MDMsIDYuMjU5NTMsIDcuODA3MjYiLCBcCi0gICAgICAgICAgIjAuMzQ3NzcyLCAwLjUzNTY4LCAxLjU5ODk4LCAyLjUyODk3LCAzLjc4NjQxLCA2LjI1OTU4LCA3LjgwODk4IiwgXAotICAgICAgICAgICIwLjM0ODgyOSwgMC41MzYxODIsIDEuNTk0NTYsIDIuNTM2NDksIDMuNzc2MjcsIDYuMjYwNjcsIDcuODA3OTciLCBcCi0gICAgICAgICAgIjAuMzQ4OTE2LCAwLjUzNTgxNCwgMS41OTQ2MiwgMi41MzE0MiwgMy43ODQyLCA2LjI1OTU5LCA3LjgwODUxIiwgXAotICAgICAgICAgICIwLjM0ODk0OSwgMC41MzU5MywgMS41OTg2NSwgMi41MjkwMSwgMy43NzA1OSwgNi4yNTkzOSwgNy44MDg2IiwgXAotICAgICAgICAgICIwLjM0ODk0MiwgMC41MzYyOTksIDEuNTk0NjMsIDIuNTM2NzksIDMuNzc2MjgsIDYuMjYwNTIsIDcuODA3OTgiLCBcCi0gICAgICAgICAgIjAuMzQ5MjA0LCAwLjUzNjE0MiwgMS41OTg5NSwgMi41MjkwMywgMy43ODYzOSwgNi4yNTk0MiwgNy44MDg0MyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMU4iOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE3NDc4MywgMC4yMTc4MTgsIDAuNDYwMDEsIDAuNjczNTYsIDAuOTU4MTU3LCAxLjUyNzQsIDEuODgzNDEiLCBcCi0gICAgICAgICAgIjAuMTg0OTM0LCAwLjIyNzk2OSwgMC40NzAxNjksIDAuNjgzODU1LCAwLjk2ODUwNywgMS41Mzc5OCwgMS44OTM2NyIsIFwKLSAgICAgICAgICAiMC4xOTgwOTcsIDAuMjQxMTk1LCAwLjQ4MzM3NCwgMC42OTY4NTIsIDAuOTgxNzgsIDEuNTUxMSwgMS45MDY4OSIsIFwKLSAgICAgICAgICAiMC4yMTIxMDMsIDAuMjU1MjEyLCAwLjQ5NzQwNywgMC43MTA5MzQsIDAuOTk1NzE3LCAxLjU2NTEyLCAxLjkyMDgiLCBcCi0gICAgICAgICAgIjAuMjI2MTE1LCAwLjI2OTIxMSwgMC41MTEzOTQsIDAuNzI1MDg0LCAxLjAxMDA0LCAxLjU3ODk3LCAxLjkzNDg5IiwgXAotICAgICAgICAgICIwLjI0Nzc3OSwgMC4yOTA4MzUsIDAuNTMyOTkyLCAwLjc0Njc0LCAxLjAzMTc3LCAxLjYwMDg4LCAxLjk1NzI0IiwgXAotICAgICAgICAgICIwLjI2NzE2LCAwLjMxMDM2OCwgMC41NTI1NzksIDAuNzY2MjYxLCAxLjA1MDc5LCAxLjYyMDI5LCAxLjk3NjE4Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE3MTAzLCAwLjI1NDk0NywgMC43NDIwODMsIDEuMTc1NzEsIDEuNzU4MTMsIDIuOTE3NywgMy42MzM0MiIsIFwKLSAgICAgICAgICAiMC4xNzA5NzgsIDAuMjU1MTA1LCAwLjc0MjA5MSwgMS4xNzU2NSwgMS43NTU0NiwgMi45MTM2NCwgMy42NDI4MyIsIFwKLSAgICAgICAgICAiMC4xNzA4NzksIDAuMjU0OTg2LCAwLjc0NTE1MiwgMS4xNzgyNywgMS43NTU1NiwgMi45MDk4MiwgMy42MzMwNCIsIFwKLSAgICAgICAgICAiMC4xNzA3NjEsIDAuMjU0OTM5LCAwLjc0NTEzNCwgMS4xNzY1NywgMS43NTU0MSwgMi45MSwgMy42NDM2OCIsIFwKLSAgICAgICAgICAiMC4xNzA3NzQsIDAuMjU0ODc5LCAwLjc0MjA5MiwgMS4xNzU2OSwgMS43NTM5NywgMi45MTA0MywgMy42NDI2NCIsIFwKLSAgICAgICAgICAiMC4xNzEyMzUsIDAuMjU1MjI2LCAwLjc0Mzg2LCAxLjE3NTcyLCAxLjc1MzcsIDIuOTExNTYsIDMuNjM0MDciLCBcCi0gICAgICAgICAgIjAuMTcxMjcyLCAwLjI1NTExOSwgMC43NDIxMTcsIDEuMTc1NzIsIDEuNzU4NjYsIDIuOTE3MzcsIDMuNjMyNzYiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjI2NzU2LCAwLjMyNDY2OCwgMC44Nzg4MDEsIDEuMzY3MjcsIDIuMDE4NzIsIDMuMzIxNzEsIDQuMTM1OTYiLCBcCi0gICAgICAgICAgIjAuMjM4NDM5LCAwLjMzNjM4NiwgMC44OTAyNzcsIDEuMzc5MzcsIDIuMDMwODEsIDMuMzMzMzcsIDQuMTQ3NDYiLCBcCi0gICAgICAgICAgIjAuMjUzMjEzLCAwLjM1MTE0NCwgMC45MDUxNzMsIDEuMzk0ODUsIDIuMDQ2MDcsIDMuMzQ4MjQsIDQuMTYyMzUiLCBcCi0gICAgICAgICAgIjAuMjY3MjA4LCAwLjM2NTIzNiwgMC45MTkzMDIsIDEuNDA5MDIsIDIuMDYwMjIsIDMuMzYyNDEsIDQuMTc2NTIiLCBcCi0gICAgICAgICAgIjAuMjgxNSwgMC4zNzk1MTMsIDAuOTMzNjA4LCAxLjQyMjQ0LCAyLjA3NDUsIDMuMzc3MDYsIDQuMTkxMDEiLCBcCi0gICAgICAgICAgIjAuMzAxNDAzLCAwLjM5OTM5NywgMC45NTM1ODQsIDEuNDQyMzgsIDIuMDk0MTEsIDMuMzk3MzcsIDQuMjEwODgiLCBcCi0gICAgICAgICAgIjAuMzE3MzYyLCAwLjQxNTM0MiwgMC45Njk1OTksIDEuNDU5NDIsIDIuMTEwNDYsIDMuNDEyODMsIDQuMjI2OTMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzQ4NTgxLCAwLjUzNDI5NywgMS41OTI2NywgMi41MzY2OCwgMy43ODcwOSwgNi4yNjA5NSwgNy44MDg3NiIsIFwKLSAgICAgICAgICAiMC4zNDc2NDcsIDAuNTM0Mzc5LCAxLjU5ODU1LCAyLjUzMDgyLCAzLjc4NTAxLCA2LjI2MDg4LCA3LjgwODUzIiwgXAotICAgICAgICAgICIwLjM0NzIzNCwgMC41MzYxMTMsIDEuNTk4OTQsIDIuNTI5NTQsIDMuNzc3ODIsIDYuMjYwODgsIDcuODA4NTgiLCBcCi0gICAgICAgICAgIjAuMzQ4NDg4LCAwLjUzNjE5LCAxLjU5OSwgMi41Mjk0NiwgMy43Nzc2OSwgNi4yNjA3LCA3LjgwODE5IiwgXAotICAgICAgICAgICIwLjM0ODYzMiwgMC41MzYyMDIsIDEuNjAwMiwgMi41MzY5NywgMy43NzIyMSwgNi4yNjEwMSwgNy44MDgzNSIsIFwKLSAgICAgICAgICAiMC4zNDc4MzQsIDAuNTM0MzI5LCAxLjU5OTY3LCAyLjUzNjk0LCAzLjc3NjcsIDYuMjYwNTksIDcuODA3NjEiLCBcCi0gICAgICAgICAgIjAuMzQ3ODc1LCAwLjUzNjA3OCwgMS41OTk1NiwgMi41MjkyMywgMy43NzYwOSwgNi4yNjA3MSwgNy44MDgxOCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg2NzMxLCAwLjEyOTk4LCAwLjM3NDc4LCAwLjU5MDYzLCAwLjg3ODU3NywgMS40NTQ0OCwgMS44MTM4MSIsIFwKLSAgICAgICAgICAiMC4wOTgyOCwgMC4xNDE1MzUsIDAuMzg2Mzc4LCAwLjYwMjE2NCwgMC44OTAwNzMsIDEuNDY2LCAxLjgyNTI5IiwgXAotICAgICAgICAgICIwLjExMjg0MywgMC4xNTU5NjQsIDAuNDAwMDYxLCAwLjYxNDA5MiwgMC45MDE5OTMsIDEuNDc3NjksIDEuODM3MjQiLCBcCi0gICAgICAgICAgIjAuMTI3ODYzLCAwLjE3MDY3NCwgMC40MTUyNDEsIDAuNjMwMzEyLCAwLjkxNTI2NywgMS40OTEwNiwgMS44NTAyNCIsIFwKLSAgICAgICAgICAiMC4xNDI2NDksIDAuMTg1ODAyLCAwLjQyOTY3OCwgMC42NDU1MTQsIDAuOTI4MzExLCAxLjUwNDE5LCAxLjg2NDEzIiwgXAotICAgICAgICAgICIwLjE2NjM3MywgMC4yMDk1MTksIDAuNDUzMDQ5LCAwLjY2ODY0MSwgMC45NTE3NywgMS41MjcyLCAxLjg4Njc3IiwgXAotICAgICAgICAgICIwLjE4NzUwNSwgMC4yMjkyODYsIDAuNDczNDU4LCAwLjY4OTA3NywgMC45NzE1OTcsIDEuNTQ3NDQsIDEuOTA2ODciKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTY0ODU4LCAwLjI1MjUwMSwgMC43NDg5NTgsIDEuMTg3MjgsIDEuNzcxMDcsIDIuOTM5MjMsIDMuNjY5MjkiLCBcCi0gICAgICAgICAgIjAuMTY0Nzk4LCAwLjI1MjU1MSwgMC43NDg5NSwgMS4xODY4NywgMS43NzEwMywgMi45MzkyMiwgMy42Njk4MiIsIFwKLSAgICAgICAgICAiMC4xNjUxNDUsIDAuMjUyNTIxLCAwLjc0ODk4MSwgMS4xODcwMSwgMS43NzEyOCwgMi45Mzk1NiwgMy42NjkzIiwgXAotICAgICAgICAgICIwLjE2NzU4NywgMC4yNTMwNDQsIDAuNzQ5Mjg1LCAxLjE4NywgMS43NzEzNSwgMi45MzkyOCwgMy42NjkzNCIsIFwKLSAgICAgICAgICAiMC4xNzE3NTIsIDAuMjU1MTYzLCAwLjc0ODcyMywgMS4xODY4NiwgMS43NzA0NiwgMi45MzkxOCwgMy42NjkzNiIsIFwKLSAgICAgICAgICAiMC4xODA5MzksIDAuMjYxMDkyLCAwLjc0ODk5OCwgMS4xODY3NiwgMS43NzE0MywgMi45MzkxNSwgMy42NzAxIiwgXAotICAgICAgICAgICIwLjE5MDAyNiwgMC4yNjkyNDMsIDAuNzQ4NzM4LCAxLjE4NjYxLCAxLjc3MDQ4LCAyLjkzOTE4LCAzLjY3MDA1Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE5NDIyNSwgMC4yOTIwMDksIDAuODQ1ODQ3LCAxLjMzNDkzLCAxLjk4NzM3LCAzLjI4OTA0LCA0LjEwMjk5IiwgXAotICAgICAgICAgICIwLjIwNTY5MSwgMC4zMDM1MzYsIDAuODU3NDcsIDEuMzQ2MjEsIDEuOTk4MDYsIDMuMzAwNjIsIDQuMTE0ODciLCBcCi0gICAgICAgICAgIjAuMjE5MDMxLCAwLjMxNjk2MywgMC44NzE3MTUsIDEuMzYwNjQsIDIuMDEyMTUsIDMuMzE0MzgsIDQuMTI4MzQiLCBcCi0gICAgICAgICAgIjAuMjMyMzI5LCAwLjMzMDMxNiwgMC44ODQ3MjEsIDEuMzczODMsIDIuMDI1MzEsIDMuMzI3NzEsIDQuMTQxODUiLCBcCi0gICAgICAgICAgIjAuMjQ1MTA1LCAwLjM0MzY3NywgMC44OTg1NzIsIDEuMzg3MjgsIDIuMDQwMDYsIDMuMzQxMDYsIDQuMTU1MTkiLCBcCi0gICAgICAgICAgIjAuMjY2ODIsIDAuMzY0MjI5LCAwLjkxOTUxMSwgMS40MDkzNSwgMi4wNjE0NiwgMy4zNjI5MywgNC4xNzY4OCIsIFwKLSAgICAgICAgICAiMC4yODU0NzksIDAuMzgzNjcsIDAuOTM4MzI0LCAxLjQyNzExLCAyLjA3ODgzLCAzLjM4MTcyLCA0LjE5NTc2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjM0ODQ4OCwgMC41MzU5OSwgMS41OTg4NSwgMi41NDE0NiwgMy43NzU5MywgNi4yNjEwMSwgNy44MDg1MiIsIFwKLSAgICAgICAgICAiMC4zNDg1NzUsIDAuNTM2NDQzLCAxLjU5ODkzLCAyLjUzNjY5LCAzLjc3OTc1LCA2LjI2MDksIDcuODA4NzUiLCBcCi0gICAgICAgICAgIjAuMzQ4NjE5LCAwLjUzNjQxOCwgMS41OTU4NywgMi41NDAzOSwgMy43ODcxOSwgNi4yNjAzMiwgNy44MDg0OSIsIFwKLSAgICAgICAgICAiMC4zNDg1NjYsIDAuNTM2MzY2LCAxLjU5Njg0LCAyLjUzMzE5LCAzLjc4Njk2LCA2LjI2MDEzLCA3LjgwODI4IiwgXAotICAgICAgICAgICIwLjM0ODY5NCwgMC41MzU2ODgsIDEuNTk4NDEsIDIuNTM1MTcsIDMuNzc2NzQsIDYuMjYwNjUsIDcuODA4MTQiLCBcCi0gICAgICAgICAgIjAuMzQ5Njc5LCAwLjUzNTk1OCwgMS41OTkzMSwgMi41MzAxNSwgMy43NzY0NiwgNi4yNjA5LCA3LjgwODExIiwgXAotICAgICAgICAgICIwLjM1MzIzMSwgMC41MzcwNjYsIDEuNjAwNywgMi41Mzg5OCwgMy43ODczMywgNi4yNjA3NywgNy44MDgxOSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEwTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxNDI2LCAwLjAwMTQzLCAwLjAwMTQzNSwgMC4wMDE0MzYsIDAuMDAxNDM3LCAwLjAwMTQzNywgMC4wMDE0MzciLCBcCi0gICAgICAgICAgIjAuMDAxNDE1LCAwLjAwMTQxOCwgMC4wMDE0MjMsIDAuMDAxNDI0LCAwLjAwMTQyNCwgMC4wMDE0MjQsIDAuMDAxNDI1IiwgXAotICAgICAgICAgICIwLjAwMTQwNSwgMC4wMDE0MDksIDAuMDAxNDEzLCAwLjAwMTQxNSwgMC4wMDE0MTUsIDAuMDAxNDE1LCAwLjAwMTQxNSIsIFwKLSAgICAgICAgICAiMC4wMDEzOTgsIDAuMDAxNDAzLCAwLjAwMTQwOCwgMC4wMDE0MDksIDAuMDAxNDA5LCAwLjAwMTQxLCAwLjAwMTQxIiwgXAotICAgICAgICAgICIwLjAwMTM5NCwgMC4wMDEzOTksIDAuMDAxNDA0LCAwLjAwMTQwNSwgMC4wMDE0MDYsIDAuMDAxNDA2LCAwLjAwMTQwNiIsIFwKLSAgICAgICAgICAiMC4wMDEzODgsIDAuMDAxMzkzLCAwLjAwMTQsIDAuMDAxNDAyLCAwLjAwMTQwMiwgMC4wMDE0MDMsIDAuMDAxNDAzIiwgXAotICAgICAgICAgICIwLjAwMTM4NCwgMC4wMDEzOSwgMC4wMDEzOTgsIDAuMDAxNCwgMC4wMDE0MDEsIDAuMDAxNDAxLCAwLjAwMTQwMiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjI3MSwgMC4wMDIyNzUsIDAuMDAyMjgsIDAuMDAyMjgxLCAwLjAwMjI4MSwgMC4wMDIyODIsIDAuMDAyMjgzIiwgXAotICAgICAgICAgICIwLjAwMjI2MiwgMC4wMDIyNjYsIDAuMDAyMjcxLCAwLjAwMjI3MiwgMC4wMDIyNzMsIDAuMDAyMjczLCAwLjAwMjI3MyIsIFwKLSAgICAgICAgICAiMC4wMDIyNTMsIDAuMDAyMjU4LCAwLjAwMjI2NSwgMC4wMDIyNjYsIDAuMDAyMjY3LCAwLjAwMjI2OCwgMC4wMDIyNjgiLCBcCi0gICAgICAgICAgIjAuMDAyMjQ1LCAwLjAwMjI1MiwgMC4wMDIyNjEsIDAuMDAyMjYzLCAwLjAwMjI2NCwgMC4wMDIyNjQsIDAuMDAyMjY1IiwgXAotICAgICAgICAgICIwLjAwMjI0LCAwLjAwMjI0NywgMC4wMDIyNTgsIDAuMDAyMjYsIDAuMDAyMjYyLCAwLjAwMjI2MywgMC4wMDIyNjMiLCBcCi0gICAgICAgICAgIjAuMDAyMjMzLCAwLjAwMjI0MSwgMC4wMDIyNTQsIDAuMDAyMjU3LCAwLjAwMjI1OCwgMC4wMDIyNiwgMC4wMDIyNiIsIFwKLSAgICAgICAgICAiMC4wMDIyMjgsIDAuMDAyMjM3LCAwLjAwMjI1MiwgMC4wMDIyNTUsIDAuMDAyMjU3LCAwLjAwMjI1OCwgMC4wMDIyNTkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMU4iOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTQyNywgMC4wMDE0MzEsIDAuMDAxNDM2LCAwLjAwMTQzNywgMC4wMDE0MzgsIDAuMDAxNDM4LCAwLjAwMTQzOCIsIFwKLSAgICAgICAgICAiMC4wMDE0MTEsIDAuMDAxNDE2LCAwLjAwMTQyMSwgMC4wMDE0MjIsIDAuMDAxNDIzLCAwLjAwMTQyMywgMC4wMDE0MjMiLCBcCi0gICAgICAgICAgIjAuMDAxMzk5LCAwLjAwMTQwNCwgMC4wMDE0MSwgMC4wMDE0MTEsIDAuMDAxNDEyLCAwLjAwMTQxMiwgMC4wMDE0MTMiLCBcCi0gICAgICAgICAgIjAuMDAxMzkzLCAwLjAwMTM5OCwgMC4wMDE0MDUsIDAuMDAxNDA2LCAwLjAwMTQwNywgMC4wMDE0MDcsIDAuMDAxNDA3IiwgXAotICAgICAgICAgICIwLjAwMTM4OSwgMC4wMDEzOTQsIDAuMDAxNDAyLCAwLjAwMTQwMywgMC4wMDE0MDQsIDAuMDAxNDA0LCAwLjAwMTQwNSIsIFwKLSAgICAgICAgICAiMC4wMDEzODMsIDAuMDAxMzg5LCAwLjAwMTM5OSwgMC4wMDE0MDEsIDAuMDAxNDAyLCAwLjAwMTQwMywgMC4wMDE0MDMiLCBcCi0gICAgICAgICAgIjAuMDAxMzgxLCAwLjAwMTM4OCwgMC4wMDEzOTksIDAuMDAxNDAxLCAwLjAwMTQwMiwgMC4wMDE0MDMsIDAuMDAxNDAzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyMDc3LCAwLjAwMjA4MSwgMC4wMDIwODUsIDAuMDAyMDg2LCAwLjAwMjA4NiwgMC4wMDIwODYsIDAuMDAyMDg2IiwgXAotICAgICAgICAgICIwLjAwMjA2OSwgMC4wMDIwNzMsIDAuMDAyMDc4LCAwLjAwMjA3OCwgMC4wMDIwNzksIDAuMDAyMDc5LCAwLjAwMjA3OSIsIFwKLSAgICAgICAgICAiMC4wMDIwNTgsIDAuMDAyMDYzLCAwLjAwMjA2OSwgMC4wMDIwNywgMC4wMDIwNzEsIDAuMDAyMDcxLCAwLjAwMjA3MSIsIFwKLSAgICAgICAgICAiMC4wMDIwNDgsIDAuMDAyMDU0LCAwLjAwMjA2MywgMC4wMDIwNjUsIDAuMDAyMDY2LCAwLjAwMjA2NiwgMC4wMDIwNjciLCBcCi0gICAgICAgICAgIjAuMDAyMDQxLCAwLjAwMjA0NywgMC4wMDIwNTcsIDAuMDAyMDU5LCAwLjAwMjA2MSwgMC4wMDIwNjIsIDAuMDAyMDYyIiwgXAotICAgICAgICAgICIwLjAwMjAzMywgMC4wMDIwNDEsIDAuMDAyMDUyLCAwLjAwMjA1NSwgMC4wMDIwNTcsIDAuMDAyMDU4LCAwLjAwMjA1OCIsIFwKLSAgICAgICAgICAiMC4wMDIwMjksIDAuMDAyMDM2LCAwLjAwMjA1LCAwLjAwMjA1MywgMC4wMDIwNTUsIDAuMDAyMDU3LCAwLjAwMjA1NyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDEyNjcsIDAuMDAxMjY3LCAwLjAwMTI2NywgMC4wMDEyNjcsIDAuMDAxMjY3LCAwLjAwMTI2NywgMC4wMDEyNjYiLCBcCi0gICAgICAgICAgIjAuMDAxMjU5LCAwLjAwMTI2LCAwLjAwMTI2MSwgMC4wMDEyNjIsIDAuMDAxMjYyLCAwLjAwMTI2MSwgMC4wMDEyNjEiLCBcCi0gICAgICAgICAgIjAuMDAxMjU0LCAwLjAwMTI1NywgMC4wMDEyNiwgMC4wMDEyNiwgMC4wMDEyNiwgMC4wMDEyNTksIDAuMDAxMjU5IiwgXAotICAgICAgICAgICIwLjAwMTI1MSwgMC4wMDEyNTQsIDAuMDAxMjU4LCAwLjAwMTI1OSwgMC4wMDEyNTksIDAuMDAxMjYsIDAuMDAxMjYiLCBcCi0gICAgICAgICAgIjAuMDAxMjQ3LCAwLjAwMTI1MiwgMC4wMDEyNTcsIDAuMDAxMjU5LCAwLjAwMTI1OSwgMC4wMDEyNTksIDAuMDAxMjYiLCBcCi0gICAgICAgICAgIjAuMDAxMjQ0LCAwLjAwMTI0OSwgMC4wMDEyNTcsIDAuMDAxMjU4LCAwLjAwMTI1OCwgMC4wMDEyNTgsIDAuMDAxMjU5IiwgXAotICAgICAgICAgICIwLjAwMTI0MSwgMC4wMDEyNDYsIDAuMDAxMjU1LCAwLjAwMTI1NywgMC4wMDEyNTgsIDAuMDAxMjU4LCAwLjAwMTI1OSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDUyLCAwLjAwMDUyMSwgMC4wMDA1MjIsIDAuMDAwNTIyLCAwLjAwMDUyMiwgMC4wMDA1MjIsIDAuMDAwNTIyIiwgXAotICAgICAgICAgICIwLjAwMDUxMiwgMC4wMDA1MTUsIDAuMDAwNTIsIDAuMDAwNTIxLCAwLjAwMDUyMSwgMC4wMDA1MjEsIDAuMDAwNTIyIiwgXAotICAgICAgICAgICIwLjAwMDUwMywgMC4wMDA1MDksIDAuMDAwNTE3LCAwLjAwMDUxOSwgMC4wMDA1MiwgMC4wMDA1MjEsIDAuMDAwNTIxIiwgXAotICAgICAgICAgICIwLjAwMDQ5NiwgMC4wMDA1MDQsIDAuMDAwNTE1LCAwLjAwMDUxOCwgMC4wMDA1MTksIDAuMDAwNTIsIDAuMDAwNTIxIiwgXAotICAgICAgICAgICIwLjAwMDQ4OSwgMC4wMDA0OTksIDAuMDAwNTEzLCAwLjAwMDUxNiwgMC4wMDA1MTgsIDAuMDAwNTIsIDAuMDAwNTIiLCBcCi0gICAgICAgICAgIjAuMDAwNDgyLCAwLjAwMDQ5MiwgMC4wMDA1MSwgMC4wMDA1MTQsIDAuMDAwNTE3LCAwLjAwMDUxOSwgMC4wMDA1MTkiLCBcCi0gICAgICAgICAgIjAuMDAwNDc2LCAwLjAwMDQ4NywgMC4wMDA1MDcsIDAuMDAwNTEyLCAwLjAwMDUxNSwgMC4wMDA1MTgsIDAuMDAwNTE5Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBPQUkyQkIxWDQgKgotICogLS0tLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChPQUkyQkIxWDQpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4zMDgxNjM7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEwTikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNzkwOTQyOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDc5MDk0MjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA3ODg3MDI7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzA2LCAwLjAwMDMwNiwgMC4wMDAzMDYsIDAuMDAwMzA2LCAwLjAwMDMwNSwgMC4wMDAzMDYsIDAuMDAwMzA2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzE2LCAwLjAwMDMwOSwgMC4wMDAzMDgsIDAuMDAwMzA4LCAwLjAwMDMwOCwgMC4wMDAzMDgsIDAuMDAwMzA3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihBMU4pICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDg0NDA4ODsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA4NDM0MzE7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwODQ0MDg4OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDE0NywgMC4wMDAxNDcsIDAuMDAwMTQ2LCAwLjAwMDE0NywgMC4wMDAxNDYsIDAuMDAwMTQ2LCAwLjAwMDE0NyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDM0NywgMC4wMDAzNDgsIDAuMDAwMzQ4LCAwLjAwMDM0OCwgMC4wMDAzNDgsIDAuMDAwMzQ4LCAwLjAwMDM0OCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQjApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMzE1NTU1OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMzE1NTU1OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMzE0NjQ7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxMjI1LCAwLjAwMTIyMywgMC4wMDEyMjMsIDAuMDAxMjIyLCAwLjAwMTIyMiwgMC4wMDEyMjIsIDAuMDAxMjIyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxMjYzLCAwLjAwMTIzNiwgMC4wMDEyMzMsIDAuMDAxMjMyLCAwLjAwMTIzMSwgMC4wMDEyMywgMC4wMDEyMyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjI2NjQxOTsKLSAgICBmdW5jdGlvbiA6ICIoISgoIShBME4gQTFOKSkgQjApKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTBOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE0NzA4OCwgMC4yODMwODYsIDAuNDExMjYxLCAwLjUwMjcyMSwgMC42NDg5OTUsIDAuNzc3MDY0LCAwLjk2MDEwOSIsIFwKLSAgICAgICAgICAiMC4xNTgyMjgsIDAuMjk0NzA3LCAwLjQyMjg4NywgMC41MTQzNCwgMC42NjA2MTIsIDAuNzg4NzUzLCAwLjk3MTc5OCIsIFwKLSAgICAgICAgICAiMC4xNzE3MzUsIDAuMzA3Nzg2LCAwLjQzNTk4MSwgMC41Mjc0MDcsIDAuNjczNzM5LCAwLjgwMTYzMywgMC45ODQ2NSIsIFwKLSAgICAgICAgICAiMC4xODQ5MDUsIDAuMzIxNTYyLCAwLjQ0OTc3NSwgMC41NDEyMDgsIDAuNjg3NTIsIDAuODE1NDQ0LCAwLjk5ODM5NiIsIFwKLSAgICAgICAgICAiMC4xOTg0MDQsIDAuMzM0OTcsIDAuNDYzMTg2LCAwLjU1NDYxNiwgMC43MDA5MjksIDAuODI4ODY5LCAxLjAxMTgxIiwgXAotICAgICAgICAgICIwLjIxOTQ2NCwgMC4zNTYyMDgsIDAuNDg0NDI5LCAwLjU3NTg3MSwgMC43MjIxODYsIDAuODUwMTE0LCAxLjAzMzA2IiwgXAotICAgICAgICAgICIwLjIzNzg2NiwgMC4zNzQ1NTksIDAuNTAyNzgyLCAwLjU5NDE5NywgMC43NDA0NDgsIDAuODY4NDM5LCAxLjA1MTQ4Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc5Mjk5LCAwLjMyNTg0NCwgMC41ODE3MTYsIDAuNzY2MzM3LCAxLjA2NDYsIDEuMzIxMTcsIDEuNjkyNjUiLCBcCi0gICAgICAgICAgIjAuMDc5MDIyLCAwLjMyNTkyNiwgMC41ODE3NzgsIDAuNzY2MjcxLCAxLjA2NDUyLCAxLjMyMTg2LCAxLjY5MjA5IiwgXAotICAgICAgICAgICIwLjA3OTIzOCwgMC4zMjU4NzIsIDAuNTgxNzU3LCAwLjc2NjI5MywgMS4wNjYyOSwgMS4zMjQ3MywgMS42OTMiLCBcCi0gICAgICAgICAgIjAuMDc5MjI1LCAwLjMyNTc0MywgMC41ODEyOTEsIDAuNzY2MjU3LCAxLjA2NDY5LCAxLjMyNDQ0LCAxLjY5MjA5IiwgXAotICAgICAgICAgICIwLjA3OTAzNSwgMC4zMjU4NywgMC41ODEyNjUsIDAuNzY3MzkyLCAxLjA2NDY1LCAxLjMyNDQ2LCAxLjY5MjE0IiwgXAotICAgICAgICAgICIwLjA3ODk5NCwgMC4zMjU4NiwgMC41ODE4NTIsIDAuNzY2MjUyLCAxLjA2NDY3LCAxLjMyNDQ0LCAxLjY5MjE2IiwgXAotICAgICAgICAgICIwLjA4MDQyMywgMC4zMjU4NDMsIDAuNTgxMDMxLCAwLjc2NjIyNiwgMS4wNjQzMSwgMS4zMjQ3MywgMS42OTI4NSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExOTQxLCAwLjQwNzE4NCwgMC42OTM5NiwgMC44OTg3MjYsIDEuMjI2MzMsIDEuNTEzMDMsIDEuOTIyNDEiLCBcCi0gICAgICAgICAgIjAuMTMwNzY4LCAwLjQxODU4LCAwLjcwNTQyNywgMC45MTAxOTYsIDEuMjM3ODEsIDEuNTI0NDIsIDEuOTMzODkiLCBcCi0gICAgICAgICAgIjAuMTQ1NjIzLCAwLjQzMzUxNCwgMC43MjAyOTcsIDAuOTI1MDc0LCAxLjI1MjY1LCAxLjUzOTMsIDEuOTQ4NzgiLCBcCi0gICAgICAgICAgIjAuMTYwNDgzLCAwLjQ0ODQzNiwgMC43MzUyNDcsIDAuOTQwMDMzLCAxLjI2NzY1LCAxLjU1NDI5LCAxLjk2Mzc0IiwgXAotICAgICAgICAgICIwLjE3NDk5NCwgMC40NjI5ODQsIDAuNzQ5ODU3LCAwLjk1NDY1MywgMS4yODIyOCwgMS41Njg5MSwgMS45Nzg0MSIsIFwKLSAgICAgICAgICAiMC4xOTc3ODksIDAuNDg1Nzk0LCAwLjc3MjY4LCAwLjk3NzUwNiwgMS4zMDUxMiwgMS41OTE3OCwgMi4wMDEyNCIsIFwKLSAgICAgICAgICAiMC4yMTYxNTQsIDAuNTA0MTI4LCAwLjc5MTA4NCwgMC45OTU5MjYsIDEuMzIzNDksIDEuNjEwMTIsIDIuMDE5NzMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTcxOTgsIDAuNjY1NjEzLCAxLjIxMzc5LCAxLjYwNjAyLCAyLjIzMzg4LCAyLjc5MDkxLCAzLjU2NzMiLCBcCi0gICAgICAgICAgIjAuMTE3MjU1LCAwLjY2NTYwOCwgMS4yMTQzMSwgMS42MDY3MSwgMi4yMzUxOSwgMi43OTA3OCwgMy41Nzc4MiIsIFwKLSAgICAgICAgICAiMC4xMTcyMzQsIDAuNjY1ODEzLCAxLjIxMzY1LCAxLjYwNTk4LCAyLjIzOTUzLCAyLjc4NTMxLCAzLjU2Nzc4IiwgXAotICAgICAgICAgICIwLjExNzM1MSwgMC42NjQ3MDIsIDEuMjE0MTksIDEuNjA2MTIsIDIuMjM0MjcsIDIuNzkwNiwgMy41NjczIiwgXAotICAgICAgICAgICIwLjExNzQyNCwgMC42NjU1NTcsIDEuMjE0MzMsIDEuNjA2NzMsIDIuMjM1MSwgMi43OTA3NCwgMy41NzgxMiIsIFwKLSAgICAgICAgICAiMC4xMTc3MzMsIDAuNjY1NjYsIDEuMjE0MDYsIDEuNjA3NzQsIDIuMjMzODMsIDIuNzgzNjksIDMuNTc3NDUiLCBcCi0gICAgICAgICAgIjAuMTE4MzcxLCAwLjY2NTgxOSwgMS4yMTY1LCAxLjYxMDAxLCAyLjIzNDg3LCAyLjc4MzAzLCAzLjU2NjIzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkExTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNDIxODUsIDAuMjc4NDEsIDAuNDA2NTkzLCAwLjQ5ODA0MSwgMC42NDQzMTIsIDAuNzcyMzAzLCAwLjk1NTMwOSIsIFwKLSAgICAgICAgICAiMC4xNTIwOSwgMC4yODg0NDcsIDAuNDE2NjUxLCAwLjUwODA3OSwgMC42NTQzOTksIDAuNzgyMzA3LCAwLjk2NTI4NSIsIFwKLSAgICAgICAgICAiMC4xNjU1NDIsIDAuMzAxOTE0LCAwLjQzMDEyMywgMC41MjE1NTUsIDAuNjY3ODc2LCAwLjc5NTc5LCAwLjk3ODc2IiwgXAotICAgICAgICAgICIwLjE3ODUzNCwgMC4zMTUyMDYsIDAuNDQzNDE0LCAwLjUzNDg1OSwgMC42ODExNjIsIDAuODA5MTE3LCAwLjk5MjI1IiwgXAotICAgICAgICAgICIwLjE5MjE4NiwgMC4zMjg3NTQsIDAuNDU2OTgyLCAwLjU0ODQyMSwgMC42OTQ3NDYsIDAuODIyNjQ4LCAxLjAwNTY2IiwgXAotICAgICAgICAgICIwLjIxMzg2MiwgMC4zNTA1NzEsIDAuNDc4ODExLCAwLjU3MDI4OSwgMC43MTY1NzUsIDAuODQ0NTYzLCAxLjAyNzczIiwgXAotICAgICAgICAgICIwLjIzMzE1OCwgMC4zNjkyMTgsIDAuNDk3NDQ2LCAwLjU4ODg5MSwgMC43MzUyMjcsIDAuODYzMTQ1LCAxLjA0NjEiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzkyOSwgMC4zMjU4MDksIDAuNTgxNzAzLCAwLjc2NjI0NSwgMS4wNjQ1LCAxLjMyNDg4LCAxLjY5Mjk4IiwgXAotICAgICAgICAgICIwLjA3OTE5MywgMC4zMjU4NjQsIDAuNTgwNDMyLCAwLjc2NjI3MSwgMS4wNjQ3MywgMS4zMjQ0NSwgMS42OTE5MiIsIFwKLSAgICAgICAgICAiMC4wNzkzMTgsIDAuMzI1NzgyLCAwLjU4MTgwOCwgMC43NjYyNDQsIDEuMDY0NzIsIDEuMzI0NDEsIDEuNjkxOTciLCBcCi0gICAgICAgICAgIjAuMDc5MjczLCAwLjMyNTg3LCAwLjU4MTgsIDAuNzY3NDcsIDEuMDY0NjUsIDEuMzI0ODIsIDEuNjkyNjMiLCBcCi0gICAgICAgICAgIjAuMDc5Mjg2LCAwLjMyNTY4NCwgMC41ODE3OTMsIDAuNzY2MjI0LCAxLjA2NDY5LCAxLjMyNDY4LCAxLjY5Mjk3IiwgXAotICAgICAgICAgICIwLjA3OTQ0LCAwLjMyNTU4NSwgMC41ODE3OTUsIDAuNzY3NjI5LCAxLjA2NDY0LCAxLjMyNDk2LCAxLjY5MjIzIiwgXAotICAgICAgICAgICIwLjA3OTYxMSwgMC4zMjYxMDMsIDAuNTgxNzYzLCAwLjc2NjIxNywgMS4wNjQ3MSwgMS4zMjQzOSwgMS42OTIxMSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExNjgxMSwgMC40MDQ2MDUsIDAuNjkxNTcyLCAwLjg5NjE5NCwgMS4yMjM4MiwgMS41MTA1NSwgMS45MTk4NSIsIFwKLSAgICAgICAgICAiMC4xMjgzOTMsIDAuNDE2MTE2LCAwLjcwMzA0OSwgMC45MDc3NTgsIDEuMjM1MjcsIDEuNTIyMDEsIDEuOTMxODgiLCBcCi0gICAgICAgICAgIjAuMTQzMzY0LCAwLjQzMTA4OCwgMC43MTgwODQsIDAuOTIyODg4LCAxLjI1MDUyLCAxLjUzODE4LCAxLjk0NjgiLCBcCi0gICAgICAgICAgIjAuMTU3OTE1LCAwLjQ0NTg1LCAwLjczMjc2NCwgMC45Mzc0OTQsIDEuMjY1MTUsIDEuNTUyMTksIDEuOTYyMDciLCBcCi0gICAgICAgICAgIjAuMTcxOTg3LCAwLjQ2MDAwNiwgMC43NDcwMTIsIDAuOTUxNjExLCAxLjI3OTgzLCAxLjU2NjA2LCAxLjk3NjU4IiwgXAotICAgICAgICAgICIwLjE5NDkwNiwgMC40ODI3MzYsIDAuNzY5ODY5LCAwLjk3NDYwNiwgMS4zMDIyOCwgMS41ODg4NywgMS45OTkwMyIsIFwKLSAgICAgICAgICAiMC4yMTI3MjksIDAuNTAwNDE0LCAwLjc4NzM2NCwgMC45OTIxNzEsIDEuMzIwODgsIDEuNjA2NjcsIDIuMDE2OTUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTcwNDMsIDAuNjYyOSwgMS4yMTE2NCwgMS42MDYsIDIuMjQyNDMsIDIuNzkxMTIsIDMuNTc3OTkiLCBcCi0gICAgICAgICAgIjAuMTE3MDA3LCAwLjY2MjkxMywgMS4yMTc0OCwgMS42MDM2MywgMi4yMzcwOSwgMi43OTA5NywgMy41Nzg2IiwgXAotICAgICAgICAgICIwLjExNzA5NiwgMC42NjU2MDksIDEuMjE4MDcsIDEuNjEyMzgsIDIuMjQyNzUsIDIuNzgzMzEsIDMuNTc4MjkiLCBcCi0gICAgICAgICAgIjAuMTE3MDI2LCAwLjY2NTY3OCwgMS4yMTgxMiwgMS42MTE2NiwgMi4yNDA3NywgMi43ODUyNiwgMy41Njg5NiIsIFwKLSAgICAgICAgICAiMC4xMTc1MjcsIDAuNjYzMDc4LCAxLjIxMTg5LCAxLjYxMDQyLCAyLjIzNjQzLCAyLjc5MjYsIDMuNTYyNjYiLCBcCi0gICAgICAgICAgIjAuMTE3Njc1LCAwLjY2NTUzMywgMS4yMTE5LCAxLjYxMjM0LCAyLjI0MTQxLCAyLjc5MDkyLCAzLjU2ODE0IiwgXAotICAgICAgICAgICIwLjExODU2MywgMC42NjUzNzIsIDEuMjE2MzksIDEuNjEwMTEsIDIuMjMzMywgMi43OTE3OCwgMy41NjQxOCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzIxODUsIDAuMTU5Mzk2LCAwLjI4NjIxMywgMC4zNzY3NzksIDAuNTIxNDI1LCAwLjY0ODE1NSwgMC44MjkzNDciLCBcCi0gICAgICAgICAgIjAuMDQzNzk3LCAwLjE3MDk3LCAwLjI5Nzc0LCAwLjM4ODM0LCAwLjUzMzE3NywgMC42NjAwMTEsIDAuODQwOTYxIiwgXAotICAgICAgICAgICIwLjA1ODY1NSwgMC4xODUzNTYsIDAuMzEyMTE3LCAwLjQwMjYxOSwgMC41NDUwNDcsIDAuNjcxOTE2LCAwLjg1MjcyMyIsIFwKLSAgICAgICAgICAiMC4wNzM2MTQsIDAuMjAwMDcyLCAwLjMyNTQ1OCwgMC40MTU5NjgsIDAuNTYwNzI4LCAwLjY4NzQ3OCwgMC44Njg3MzgiLCBcCi0gICAgICAgICAgIjAuMDg3MjA5LCAwLjIxNDcwOSwgMC4zNDExNjgsIDAuNDMxNjY0LCAwLjU3NjMxNCwgMC43MDMxMTMsIDAuODgzMTI2IiwgXAotICAgICAgICAgICIwLjEwNjQ4LCAwLjIzODQyNywgMC4zNjQ3MSwgMC40NTQ5OTEsIDAuNTk5NjQ0LCAwLjcyNjMzMSwgMC45MDczNDMiLCBcCi0gICAgICAgICAgIjAuMTIxODA4LCAwLjI1OTU4NiwgMC4zODU0MjIsIDAuNDc1MzY1LCAwLjYyMDEzMywgMC43NDY3NDEsIDAuOTI3NjEyIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU0ODU1LCAwLjMxMjI3OSwgMC41Njk0NTcsIDAuNzUzNDQ2LCAxLjA0NzQzLCAxLjMwNDExLCAxLjY3MTc1IiwgXAotICAgICAgICAgICIwLjA1NTQ5NCwgMC4zMTIxMzYsIDAuNTY5NDU3LCAwLjc1MzU1NCwgMS4wNDcwNywgMS4zMDQ0MywgMS42NzE3OSIsIFwKLSAgICAgICAgICAiMC4wNjAxOTcsIDAuMzEyMjY1LCAwLjU2OTM0NywgMC43NTI4ODgsIDEuMDQ3NDcsIDEuMzA0NDIsIDEuNjcyMTgiLCBcCi0gICAgICAgICAgIjAuMDY2OTMsIDAuMzEyMjQ4LCAwLjU2OTM2OSwgMC43NTMwNiwgMS4wNDY4OSwgMS4zMDM5NCwgMS42NzE5IiwgXAotICAgICAgICAgICIwLjA3NTQ0NSwgMC4zMTMzMjgsIDAuNTY5MzYxLCAwLjc1MzEyNCwgMS4wNDY5MSwgMS4zMDM5NiwgMS42NzE4OSIsIFwKLSAgICAgICAgICAiMC4wOTAzMiwgMC4zMTc3NTEsIDAuNTY5MzkxLCAwLjc1MzA5MywgMS4wNDY4MiwgMS4zMDM5NiwgMS42NzEzNyIsIFwKLSAgICAgICAgICAiMC4xMDM1NiwgMC4zMjMzODQsIDAuNTcxMDc3LCAwLjc1MzExOCwgMS4wNDcwNCwgMS4zMDQyOSwgMS42NzEzIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDczMTgsIDAuMzYwMzE0LCAwLjY0NzEwMywgMC44NTI2MTIsIDEuMTgwNTEsIDEuNDY2MTUsIDEuODc3MjYiLCBcCi0gICAgICAgICAgIjAuMDg0MTg1LCAwLjM3MTcyNywgMC42NTg1MTMsIDAuODYzMjc0LCAxLjE5MDk2LCAxLjQ3ODIxLCAxLjg4NzEyIiwgXAotICAgICAgICAgICIwLjA5NzAxNiwgMC4zODUwODksIDAuNjcxNzg0LCAwLjg3NjY1NSwgMS4yMDQ1NCwgMS40OTEzLCAxLjkwMDUxIiwgXAotICAgICAgICAgICIwLjEwOTg5NSwgMC4zOTgyNTIsIDAuNjg1MDA2LCAwLjg5MDEzNywgMS4yMTg0NCwgMS41MDQyOCwgMS45MTQ3MSIsIFwKLSAgICAgICAgICAiMC4xMjI5ODYsIDAuNDExNDA3LCAwLjY5ODQyOCwgMC45MDMzODMsIDEuMjMxMDUsIDEuNTE4MjgsIDEuOTI3NzEiLCBcCi0gICAgICAgICAgIjAuMTQ0MDEsIDAuNDMyNzM2LCAwLjcxOTkyMiwgMC45MjQ3MTgsIDEuMjUyOTcsIDEuNTQwMzYsIDEuOTUwMzgiLCBcCi0gICAgICAgICAgIjAuMTYxNTY5LCAwLjQ1MDUxMiwgMC43Mzg1ODksIDAuOTQzNzEyLCAxLjI3MTM2LCAxLjU1ODExLCAxLjk2NzY1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTE0OTc2LCAwLjY2NTQ4NywgMS4yMTc4NSwgMS42MDUyMiwgMi4yMzQzMSwgMi43OTEyMSwgMy41NzcyMiIsIFwKLSAgICAgICAgICAiMC4xMTQ5NTQsIDAuNjY0MDk5LCAxLjIxNjY5LCAxLjYxMDE4LCAyLjIzOTc0LCAyLjc4OTQsIDMuNTc4MDQiLCBcCi0gICAgICAgICAgIjAuMTE1MDA0LCAwLjY2NDIyMywgMS4yMTcxMSwgMS42MTIwMywgMi4yNDI0MywgMi43OTQ5MSwgMy41NzgxNiIsIFwKLSAgICAgICAgICAiMC4xMTY1NjgsIDAuNjY0MzgyLCAxLjIxNjYsIDEuNjAzOTMsIDIuMjMzNjcsIDIuNzk1MiwgMy41NjcyNiIsIFwKLSAgICAgICAgICAiMC4xMTk5MywgMC42NjU1MzQsIDEuMjE3NTEsIDEuNjEwMjYsIDIuMjM5OTQsIDIuNzc5OTMsIDMuNTc2IiwgXAotICAgICAgICAgICIwLjEyNjU5OCwgMC42NjU1OTEsIDEuMjE4MTUsIDEuNjEwMTQsIDIuMjM4OCwgMi43ODMsIDMuNTc4MTMiLCBcCi0gICAgICAgICAgIjAuMTMzOTI4LCAwLjY2NjA5NSwgMS4yMTY1NCwgMS42MTA5NywgMi4yNDA3NCwgMi43OTE2NSwgMy41NzgwNiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEwTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQ1ODEsIDAuMDA0Njk3LCAwLjAwNDcxNiwgMC4wMDQ3MTQsIDAuMDA0NzE4LCAwLjAwNDcyMSwgMC4wMDQ3MjIiLCBcCi0gICAgICAgICAgIjAuMDA0NTU4LCAwLjAwNDY3NiwgMC4wMDQ2OSwgMC4wMDQ2OTQsIDAuMDA0Njk5LCAwLjAwNDcwMSwgMC4wMDQ3MDIiLCBcCi0gICAgICAgICAgIjAuMDA0NTM3LCAwLjAwNDY1OSwgMC4wMDQ2NzMsIDAuMDA0Njc5LCAwLjAwNDY4MSwgMC4wMDQ2ODUsIDAuMDA0Njg3IiwgXAotICAgICAgICAgICIwLjAwNDUyMSwgMC4wMDQ2NDYsIDAuMDA0NjYzLCAwLjAwNDY2OSwgMC4wMDQ2NzIsIDAuMDA0NjcyLCAwLjAwNDY3NiIsIFwKLSAgICAgICAgICAiMC4wMDQ1MDksIDAuMDA0NjM3LCAwLjAwNDY1NCwgMC4wMDQ2NTksIDAuMDA0NjY0LCAwLjAwNDY2NSwgMC4wMDQ2NjciLCBcCi0gICAgICAgICAgIjAuMDA0NDksIDAuMDA0NjI1LCAwLjAwNDY0NSwgMC4wMDQ2NSwgMC4wMDQ2NTQsIDAuMDA0NjU4LCAwLjAwNDY1OSIsIFwKLSAgICAgICAgICAiMC4wMDQ0NzQsIDAuMDA0NjE2LCAwLjAwNDYzOCwgMC4wMDQ2NDIsIDAuMDA0NjUsIDAuMDA0NjUzLCAwLjAwNDY1NSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2MDkyLCAwLjAwNjIwNSwgMC4wMDYyMTksIDAuMDA2MjIzLCAwLjAwNjIyNywgMC4wMDYyMjksIDAuMDA2MjMiLCBcCi0gICAgICAgICAgIjAuMDA2MDY4LCAwLjAwNjE4OCwgMC4wMDYyMDQsIDAuMDA2MjA5LCAwLjAwNjIxMywgMC4wMDYyMTUsIDAuMDA2MjE3IiwgXAotICAgICAgICAgICIwLjAwNjA0NCwgMC4wMDYxNzIsIDAuMDA2MTkxLCAwLjAwNjE5NywgMC4wMDYyMDIsIDAuMDA2MjA0LCAwLjAwNjIwNyIsIFwKLSAgICAgICAgICAiMC4wMDYwMiwgMC4wMDYxNTgsIDAuMDA2MTgsIDAuMDA2MTg3LCAwLjAwNjE5MywgMC4wMDYxOTYsIDAuMDA2MTk5IiwgXAotICAgICAgICAgICIwLjAwNTk5NywgMC4wMDYxNDQsIDAuMDA2MTcsIDAuMDA2MTc5LCAwLjAwNjE4NiwgMC4wMDYxOSwgMC4wMDYxOTMiLCBcCi0gICAgICAgICAgIjAuMDA1OTczLCAwLjAwNjEyOCwgMC4wMDYxNTksIDAuMDA2MTY5LCAwLjAwNjE3OCwgMC4wMDYxODMsIDAuMDA2MTg4IiwgXAotICAgICAgICAgICIwLjAwNTk1NiwgMC4wMDYxMTUsIDAuMDA2MTQ5LCAwLjAwNjE2LCAwLjAwNjE3MSwgMC4wMDYxNzcsIDAuMDA2MTc5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTFOIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDU3OSwgMC4wMDQ2OTYsIDAuMDA0NzE5LCAwLjAwNDcxNywgMC4wMDQ3MjEsIDAuMDA0NzIzLCAwLjAwNDcyNSIsIFwKLSAgICAgICAgICAiMC4wMDQ1NSwgMC4wMDQ2NzIsIDAuMDA0Njg4LCAwLjAwNDY5NiwgMC4wMDQ2OTcsIDAuMDA0Njk5LCAwLjAwNDciLCBcCi0gICAgICAgICAgIjAuMDA0NTI3LCAwLjAwNDY1MywgMC4wMDQ2NywgMC4wMDQ2NzcsIDAuMDA0Njc5LCAwLjAwNDY3OCwgMC4wMDQ2ODMiLCBcCi0gICAgICAgICAgIjAuMDA0NTA2LCAwLjAwNDYzNywgMC4wMDQ2NTUsIDAuMDA0NjYxLCAwLjAwNDY2NiwgMC4wMDQ2NjgsIDAuMDA0NjcxIiwgXAotICAgICAgICAgICIwLjAwNDQ5MSwgMC4wMDQ2MjUsIDAuMDA0NjQ1LCAwLjAwNDY1MiwgMC4wMDQ2NTcsIDAuMDA0NjYsIDAuMDA0NjYyIiwgXAotICAgICAgICAgICIwLjAwNDQ3NSwgMC4wMDQ2MTIsIDAuMDA0NjM2LCAwLjAwNDY0MywgMC4wMDQ2NTEsIDAuMDA0NjUzLCAwLjAwNDY1NiIsIFwKLSAgICAgICAgICAiMC4wMDQ0NTksIDAuMDA0NjAzLCAwLjAwNDYyOSwgMC4wMDQ2MzYsIDAuMDA0NjQ2LCAwLjAwNDY1LCAwLjAwNDY1MyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1NzY3LCAwLjAwNTg3OSwgMC4wMDU4OTMsIDAuMDA1ODk3LCAwLjAwNTksIDAuMDA1OTAyLCAwLjAwNTkwMyIsIFwKLSAgICAgICAgICAiMC4wMDU3NTIsIDAuMDA1ODY4LCAwLjAwNTg4MiwgMC4wMDU4ODcsIDAuMDA1ODksIDAuMDA1ODkyLCAwLjAwNTg5NCIsIFwKLSAgICAgICAgICAiMC4wMDU3MjUsIDAuMDA1ODUsIDAuMDA1ODY3LCAwLjAwNTg3MiwgMC4wMDU4NzYsIDAuMDA1ODc4LCAwLjAwNTg4IiwgXAotICAgICAgICAgICIwLjAwNTY5MSwgMC4wMDU4MywgMC4wMDU4NTEsIDAuMDA1ODU3LCAwLjAwNTg2MywgMC4wMDU4NjYsIDAuMDA1ODY5IiwgXAotICAgICAgICAgICIwLjAwNTY1OSwgMC4wMDU4MTIsIDAuMDA1ODM4LCAwLjAwNTg0NywgMC4wMDU4NTQsIDAuMDA1ODU4LCAwLjAwNTg2MSIsIFwKLSAgICAgICAgICAiMC4wMDU2NDEsIDAuMDA1Nzk2LCAwLjAwNTgyNiwgMC4wMDU4MzUsIDAuMDA1ODQ0LCAwLjAwNTg0OCwgMC4wMDU4NTIiLCBcCi0gICAgICAgICAgIjAuMDA1NjE3LCAwLjAwNTc3OSwgMC4wMDU4MTMsIDAuMDA1ODI0LCAwLjAwNTgzNSwgMC4wMDU4NCwgMC4wMDU4NDUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQ3OTcsIDAuMDA0ODAyLCAwLjAwNDgwMywgMC4wMDQ4MDMsIDAuMDA0ODAyLCAwLjAwNDgwMiwgMC4wMDQ4MDIiLCBcCi0gICAgICAgICAgIjAuMDA0NzQsIDAuMDA0Nzc1LCAwLjAwNDc3OCwgMC4wMDQ3NzksIDAuMDA0NzgsIDAuMDA0NzgsIDAuMDA0Nzc5IiwgXAotICAgICAgICAgICIwLjAwNDcwNCwgMC4wMDQ3NjIsIDAuMDA0NzY5LCAwLjAwNDc3MiwgMC4wMDQ3NzEsIDAuMDA0NzcyLCAwLjAwNDc3NSIsIFwKLSAgICAgICAgICAiMC4wMDQ2NzcsIDAuMDA0NzUxLCAwLjAwNDc2NCwgMC4wMDQ3NjYsIDAuMDA0NzY5LCAwLjAwNDc3MywgMC4wMDQ3NzUiLCBcCi0gICAgICAgICAgIjAuMDA0NjYzLCAwLjAwNDc0NSwgMC4wMDQ3NTksIDAuMDA0NzYzLCAwLjAwNDc2NiwgMC4wMDQ3NjcsIDAuMDA0NzY4IiwgXAotICAgICAgICAgICIwLjAwNDY0OSwgMC4wMDQ3MzUsIDAuMDA0NzUxLCAwLjAwNDc1NywgMC4wMDQ3NjMsIDAuMDA0NzY1LCAwLjAwNDc2NyIsIFwKLSAgICAgICAgICAiMC4wMDQ2NDUsIDAuMDA0NzI3LCAwLjAwNDc0OSwgMC4wMDQ3NSwgMC4wMDQ3NTksIDAuMDA0NzYzLCAwLjAwNDc2NCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyMDU3LCAwLjAwMjA3OCwgMC4wMDIwOCwgMC4wMDIwODEsIDAuMDAyMDgxLCAwLjAwMjA4MiwgMC4wMDIwODIiLCBcCi0gICAgICAgICAgIjAuMDAxOTc1LCAwLjAwMjA2LCAwLjAwMjA3LCAwLjAwMjA3MywgMC4wMDIwNzYsIDAuMDAyMDc3LCAwLjAwMjA3OSIsIFwKLSAgICAgICAgICAiMC4wMDE5MSwgMC4wMDIwMzksIDAuMDAyMDU4LCAwLjAwMjA2NCwgMC4wMDIwNjksIDAuMDAyMDcyLCAwLjAwMjA3NCIsIFwKLSAgICAgICAgICAiMC4wMDE4NywgMC4wMDIwMiwgMC4wMDIwNDYsIDAuMDAyMDU1LCAwLjAwMjA2MywgMC4wMDIwNjcsIDAuMDAyMDciLCBcCi0gICAgICAgICAgIjAuMDAxODQzLCAwLjAwMjAwNCwgMC4wMDIwMzUsIDAuMDAyMDQ2LCAwLjAwMjA1NiwgMC4wMDIwNjEsIDAuMDAyMDY2IiwgXAotICAgICAgICAgICIwLjAwMTgxNiwgMC4wMDE5OCwgMC4wMDIwMjIsIDAuMDAyMDM2LCAwLjAwMjA0OSwgMC4wMDIwNTYsIDAuMDAyMDYyIiwgXAotICAgICAgICAgICIwLjAwMTc5OSwgMC4wMDE5NTksIDAuMDAyMDA3LCAwLjAwMjAyMywgMC4wMDIwMzksIDAuMDAyMDQ3LCAwLjAwMjA1NCIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogT0FJMkJCMlg0ICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoT0FJMkJCMlg0KSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuNDU2NTkyOwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBME4pICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDg1MDkxODsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA4NTA1MDE7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwODUwOTE4OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTI3NCwgMC4wMDEyNTEsIDAuMDAxMjM0LCAwLjAwMTIyMywgMC4wMDEyMTcsIDAuMDAxMjEzLCAwLjAwMTIxMyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzE0NiwgMC4wMDMxMzEsIDAuMDAzMTE3LCAwLjAwMzExMiwgMC4wMDMxMDcsIDAuMDAzMTA0LCAwLjAwMzEwMSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQTFOKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA4NzU3NjQ7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwODc1MzM7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwODc1NzY0OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTI3NCwgMC4wMDEyNTIsIDAuMDAxMjM1LCAwLjAwMTIyNCwgMC4wMDEyMTcsIDAuMDAxMjEzLCAwLjAwMTIxMiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzE2OSwgMC4wMDMxNTMsIDAuMDAzMTM5LCAwLjAwMzEzMywgMC4wMDMxMywgMC4wMDMxMjYsIDAuMDAzMTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAzMDk2MTQ7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAzMDcwMTU7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAzMDk2MTQ7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxMTA0LCAwLjAwMTE1NiwgMC4wMDExNywgMC4wMDExNzUsIDAuMDAxMTc5LCAwLjAwMTE4MSwgMC4wMDExODQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDEyNTQsIDAuMDAxMjU1LCAwLjAwMTI1NSwgMC4wMDEyNTYsIDAuMDAxMjU2LCAwLjAwMTI1MSwgMC4wMDEyNTYiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIxKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDMxMTQ4OTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDMxMTQ4OTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDMxMTQ3NDsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAzNzQsIDAuMDAwMzc0LCAwLjAwMDM3NSwgMC4wMDAzNzUsIDAuMDAwMzc1LCAwLjAwMDM3NCwgMC4wMDAzNzQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDE1ODUsIDAuMDAxNTg1LCAwLjAwMTU4NiwgMC4wMDE1ODUsIDAuMDAxNTg1LCAwLjAwMTU4NSwgMC4wMDE1ODUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4yNjIxOTY7Ci0gICAgZnVuY3Rpb24gOiAiKCEoKEIwK0IxKSAoIShBME4gQTFOKSkpKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTBOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE0NjIxNywgMC40MDk2NiwgMC42NzA4MjksIDAuODU3Mzc1LCAxLjE1NTExLCAxLjQxNTY1LCAxLjc4OCIsIFwKLSAgICAgICAgICAiMC4xNTc2NjgsIDAuNDIxMTczLCAwLjY4MjI5NywgMC44Njg3NzIsIDEuMTY2NjksIDEuNDI3MTIsIDEuNzk5NTgiLCBcCi0gICAgICAgICAgIjAuMTcyNjU1LCAwLjQzNjIyNCwgMC42OTczNTIsIDAuODgzNzcsIDEuMTgyMDIsIDEuNDQyMzQsIDEuODE1MiIsIFwKLSAgICAgICAgICAiMC4xODc3OTcsIDAuNDUxMzk4LCAwLjcxMjU5NiwgMC44OTg5NDksIDEuMTk2NzcsIDEuNDU3NSwgMS44MzAyMyIsIFwKLSAgICAgICAgICAiMC4yMDI3NDgsIDAuNDY2MzQ5LCAwLjcyNzQ4OCwgMC45MTM5NTcsIDEuMjExODgsIDEuNDcyNjMsIDEuODQ0ODYiLCBcCi0gICAgICAgICAgIjAuMjI2MjY1LCAwLjQ4OTkxMSwgMC43NTEwNjUsIDAuOTM3NDk0LCAxLjIzNTYxLCAxLjQ5NjI2LCAxLjg2ODE3IiwgXAotICAgICAgICAgICIwLjI0NTY5MSwgMC41MDkzODMsIDAuNzcwNTM3LCAwLjk1NzAxNCwgMS4yNTQ5NCwgMS41MTUyOCwgMS44ODgyMSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE1NzExLCAwLjY2NDc0OCwgMS4xNzQ0OSwgMS41Mzg3MiwgMi4xMjE4LCAyLjYzMTgyLCAzLjM1OTU0IiwgXAotICAgICAgICAgICIwLjE1NzExLCAwLjY2NDcyLCAxLjE3NDU1LCAxLjUzODcsIDIuMTIxODYsIDIuNjMxMTcsIDMuMzU5NzkiLCBcCi0gICAgICAgICAgIjAuMTU3MTE0LCAwLjY2NDc2OCwgMS4xNzQ3MywgMS41Mzg5NywgMi4xMjE4MSwgMi42MzE5NiwgMy4zNTk1MyIsIFwKLSAgICAgICAgICAiMC4xNTcxMjEsIDAuNjY0Nzc3LCAxLjE3NDYyLCAxLjUzODg2LCAyLjEyMTI4LCAyLjYzMTE1LCAzLjM2MDUiLCBcCi0gICAgICAgICAgIjAuMTU3MTMyLCAwLjY2NDc3MywgMS4xNzQ1MywgMS41Mzg1OSwgMi4xMjE4NiwgMi42MzEzOCwgMy4zNjA0IiwgXAotICAgICAgICAgICIwLjE1NzE5NiwgMC42NjQ4NDcsIDEuMTc0NjksIDEuNTM4NzMsIDIuMTIxNjMsIDIuNjMxNjQsIDMuMzYwNDgiLCBcCi0gICAgICAgICAgIjAuMTU3NDE3LCAwLjY2NDc5LCAxLjE3NDc2LCAxLjUzODYzLCAyLjEyMTM5LCAyLjYzMTYyLCAzLjM2MDMiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNjExNzUsIDAuNDUzODM5LCAwLjc0NDUyMSwgMC45NTE5MjEsIDEuMjgzNDUsIDEuNTc0MjksIDEuOTg4MjUiLCBcCi0gICAgICAgICAgIjAuMTcyNzU4LCAwLjQ2NTQ4NCwgMC43NTYxMjcsIDAuOTYzNTMyLCAxLjI5NTA2LCAxLjU4NTcyLCAyLjAwMDA0IiwgXAotICAgICAgICAgICIwLjE4NzQxMSwgMC40ODAxNjcsIDAuNzcwODQyLCAwLjk3ODIwNCwgMS4zMDk3OSwgMS42MDAxNSwgMi4wMTQ4MSIsIFwKLSAgICAgICAgICAiMC4yMDIzLCAwLjQ5NTEwNiwgMC43ODU3NTIsIDAuOTkyOTc2LCAxLjMyNDc0LCAxLjYxNDg4LCAyLjAzMDE3IiwgXAotICAgICAgICAgICIwLjIxNjkwOCwgMC41MDk3NDIsIDAuODAwNDU2LCAxLjAwNzgzLCAxLjMzOTk4LCAxLjYyOTY4LCAyLjA0NDU0IiwgXAotICAgICAgICAgICIwLjIzOTM2MywgMC41MzIyMTksIDAuODIyOTA2LCAxLjAzMDMsIDEuMzYxOTYsIDEuNjUyODEsIDIuMDY2NjkiLCBcCi0gICAgICAgICAgIjAuMjU3NDY5LCAwLjU1MDM0NSwgMC44NDEwNzQsIDEuMDQ4NDgsIDEuMzgwMTEsIDEuNjcxMDQsIDIuMDg0NSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE0NjkyNSwgMC43MDIyMjMsIDEuMjU3MTcsIDEuNjUzMjEsIDIuMjg3NTksIDIuODQ2MzIsIDMuNjQzMSIsIFwKLSAgICAgICAgICAiMC4xNDcwOTIsIDAuNzAyNDY3LCAxLjI1NzAzLCAxLjY1Mjk1LCAyLjI4ODI2LCAyLjg0NjU3LCAzLjY0Mzk2IiwgXAotICAgICAgICAgICIwLjE0NzA5MSwgMC43MDI0NjgsIDEuMjU3MTQsIDEuNjUzNzcsIDIuMjg3OCwgMi44NDY2NiwgMy42NDM0MyIsIFwKLSAgICAgICAgICAiMC4xNDcwOTcsIDAuNzAyNDc1LCAxLjI1NzE2LCAxLjY1MzYzLCAyLjI4ODQ2LCAyLjg0NTQxLCAzLjY0Mzg3IiwgXAotICAgICAgICAgICIwLjE0NzEwNiwgMC43MDI0NDUsIDEuMjU3MDgsIDEuNjUzMDgsIDIuMjg4MzcsIDIuODQ4MTIsIDMuNjQzMzUiLCBcCi0gICAgICAgICAgIjAuMTQ3MTU0LCAwLjcwMjE4OCwgMS4yNTcxNiwgMS42NTMyNiwgMi4yODc1NiwgMi44NDY1OSwgMy42NDMxOCIsIFwKLSAgICAgICAgICAiMC4xNDcyODIsIDAuNzAyMjEzLCAxLjI1NzE2LCAxLjY1MzIxLCAyLjI4Nzc4LCAyLjg0NjUxLCAzLjY0MjQ3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkExTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMzI5MjksIDAuMzk2NDI1LCAwLjY1NzUzMSwgMC44NDM5NzIsIDEuMTQxNzYsIDEuNDAyNDEsIDEuNzc0NzgiLCBcCi0gICAgICAgICAgIjAuMTQ0NTYxLCAwLjQwODAzMiwgMC42NjkxODMsIDAuODU1NDksIDEuMTUzNjQsIDEuNDE0MSwgMS43ODcwNyIsIFwKLSAgICAgICAgICAiMC4xNTk1MzMsIDAuNDIzMTE2LCAwLjY4NDQxNSwgMC44NzA2NTksIDEuMTY4NTksIDEuNDI5MSwgMS44MDEwMiIsIFwKLSAgICAgICAgICAiMC4xNzQ3MDksIDAuNDM4MjUxLCAwLjY5OTM3MSwgMC44ODU3OSwgMS4xODM4NywgMS40NDQ0NiwgMS44MTY0IiwgXAotICAgICAgICAgICIwLjE4OTA0OCwgMC40NTI2NDUsIDAuNzEzNzc4LCAwLjkwMDI2OSwgMS4xOTgwNiwgMS40NTg2NiwgMS44MzE3NCIsIFwKLSAgICAgICAgICAiMC4yMTI3NzYsIDAuNDc2Mzg3LCAwLjczNzU5NywgMC45MjQwMTUsIDEuMjIxOCwgMS40ODI1MywgMS44NTUzOCIsIFwKLSAgICAgICAgICAiMC4yMzE2OSwgMC40OTU3MTMsIDAuNzU2OTUsIDAuOTQzMzUzLCAxLjI0MTE1LCAxLjUwMTg4LCAxLjg3NDgyIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTU2OTk4LCAwLjY2NDc3MSwgMS4xNzQ4NiwgMS41Mzg3NywgMi4xMjE3MSwgMi42MzExNSwgMy4zNTk1OSIsIFwKLSAgICAgICAgICAiMC4xNTY5NTUsIDAuNjY0NzI0LCAxLjE3NDQ3LCAxLjUzOTAyLCAyLjEyMTU2LCAyLjYzMTE1LCAzLjM1OTUiLCBcCi0gICAgICAgICAgIjAuMTU2OTQ3LCAwLjY2NDczLCAxLjE3NDcyLCAxLjUzODg0LCAyLjEyMTQsIDIuNjMxNDYsIDMuMzYwNDEiLCBcCi0gICAgICAgICAgIjAuMTU2OTY4LCAwLjY2NDcyMSwgMS4xNzQ3LCAxLjUzODg1LCAyLjEyMTYyLCAyLjYzMTQ4LCAzLjM2MDQ4IiwgXAotICAgICAgICAgICIwLjE1NzEzNywgMC42NjQ2OTQsIDEuMTc0NjMsIDEuNTM5MiwgMi4xMjE3NiwgMi42MzEyLCAzLjM1OTUiLCBcCi0gICAgICAgICAgIjAuMTU3Mjc3LCAwLjY2NDcyOCwgMS4xNzQ0OCwgMS41MzksIDIuMTIxMjcsIDIuNjMxMTQsIDMuMzU5NTQiLCBcCi0gICAgICAgICAgIjAuMTU3ODI5LCAwLjY2NDc5OSwgMS4xNzQ0NiwgMS41MzkyLCAyLjEyMTc5LCAyLjYzMTg4LCAzLjM1OTUiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNTE0MTMsIDAuNDQ1MzAyLCAwLjczNzU5NCwgMC45NDYyMywgMS4yODAwMiwgMS41NzI4MiwgMS45ODkxMSIsIFwKLSAgICAgICAgICAiMC4xNjI4MzksIDAuNDU2NzcsIDAuNzQ5MDgxLCAwLjk1NzY3OCwgMS4yOTE1NCwgMS41ODM0MSwgMi4wMDA3MSIsIFwKLSAgICAgICAgICAiMC4xNzc3NTksIDAuNDcxNzU3LCAwLjc2NDA4NCwgMC45NzI3OTQsIDEuMzA2NzQsIDEuNTk4NjEsIDIuMDE1MjQiLCBcCi0gICAgICAgICAgIjAuMTkyNDUyLCAwLjQ4NjUzOCwgMC43Nzg5MTksIDAuOTg3NTQzLCAxLjMyMTcyLCAxLjYxMzI2LCAyLjAzMDcyIiwgXAotICAgICAgICAgICIwLjIwNjk5NSwgMC41MDExOCwgMC43OTM1NzgsIDEuMDAyMjEsIDEuMzM2MzksIDEuNjI3OTQsIDIuMDQ1NCIsIFwKLSAgICAgICAgICAiMC4yMjk0MTksIDAuNTIzNjgxLCAwLjgxNjA2NSwgMS4wMjQ3MywgMS4zNTg0NSwgMS42NTExNSwgMi4wNjgiLCBcCi0gICAgICAgICAgIjAuMjQ3NTA0LCAwLjU0MTgyNywgMC44MzQyNzYsIDEuMDQyOTUsIDEuMzc2NTQsIDEuNjY5MjksIDIuMDg1NjMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMzY3NjEsIDAuNjk1MjQ2LCAxLjI1MzI4LCAxLjY1NDYxLCAyLjI5NTY4LCAyLjg2MjcyLCAzLjY1MzM1IiwgXAotICAgICAgICAgICIwLjEzNjg0NCwgMC42OTUyNzksIDEuMjUzMDcsIDEuNjUyNjUsIDIuMjk1NzYsIDIuODU4ODIsIDMuNjQ3NTYiLCBcCi0gICAgICAgICAgIjAuMTM2ODQ3LCAwLjY5NTI4NywgMS4yNTMyMSwgMS42NTI4MSwgMi4yOTA0NSwgMi44NTg2OCwgMy42NjI2MSIsIFwKLSAgICAgICAgICAiMC4xMzY4NDgsIDAuNjk1MjU5LCAxLjI1MzE3LCAxLjY1MTgzLCAyLjI5MDYzLCAyLjg1ODU1LCAzLjY0Nzk1IiwgXAotICAgICAgICAgICIwLjEzNjg2NywgMC42OTUyMzYsIDEuMjUzMTcsIDEuNjUxODMsIDIuMjkwNTksIDIuODU4NywgMy42NDc5OSIsIFwKLSAgICAgICAgICAiMC4xMzY5MjgsIDAuNjk0OTU3LCAxLjI1MzMyLCAxLjY1NCwgMi4yOTc0NSwgMi44NTA4OCwgMy42NDY2NiIsIFwKLSAgICAgICAgICAiMC4xMzcwNjUsIDAuNjk0OTUsIDEuMjUzMjIsIDEuNjU1MDEsIDIuMjk2MDUsIDIuODUyNDgsIDMuNjYyNDkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjAiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY4NzczLCAwLjMyOTg0MywgMC41OTAxMTgsIDAuNzc2MzcxLCAxLjA3NDM5LCAxLjMzNDg5LCAxLjcwNzMxIiwgXAotICAgICAgICAgICIwLjA4MDM5NCwgMC4zNDE1ODIsIDAuNjAyMTE5LCAwLjc4ODI4MiwgMS4wODYzLCAxLjM0NzA5LCAxLjcxOTMiLCBcCi0gICAgICAgICAgIjAuMDkzNDcxLCAwLjM1NDgxMywgMC42MTU1NiwgMC44MDE5MTksIDEuMDk5NSwgMS4zNjAzMiwgMS43MzI4NyIsIFwKLSAgICAgICAgICAiMC4xMDU5NTksIDAuMzY3NDA4LCAwLjYyODIwOSwgMC44MTQzMTEsIDEuMTEyMzEsIDEuMzcyOSwgMS43NDUxNCIsIFwKLSAgICAgICAgICAiMC4xMTgzMTYsIDAuMzc5OTc1LCAwLjY0MDY1MywgMC44MjY4MDQsIDEuMTI0NzMsIDEuMzg1NDYsIDEuNzU3NzciLCBcCi0gICAgICAgICAgIjAuMTM3ODExLCAwLjM5OTc0OSwgMC42NjA1NDUsIDAuODQ2ODQ2LCAxLjE0NDcxLCAxLjQwNTQsIDEuNzc3ODIiLCBcCi0gICAgICAgICAgIjAuMTUzNzA2LCAwLjQxNjg5MSwgMC42Nzc5NDUsIDAuODY0MTM5LCAxLjE2MjExLCAxLjQyMjc1LCAxLjc5NTAzIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTMzNzI0LCAwLjY0MTg4MSwgMS4xNTEwMiwgMS41MTQ5NCwgMi4wOTc0OSwgMi42MDcxNCwgMy4zMzY2MiIsIFwKLSAgICAgICAgICAiMC4xMzM3MTgsIDAuNjQxODk2LCAxLjE1MSwgMS41MTQ5NSwgMi4wOTc1MiwgMi42MDgxMSwgMy4zNDUzNiIsIFwKLSAgICAgICAgICAiMC4xMzM5NjUsIDAuNjQxODIxLCAxLjE1MTM2LCAxLjUxNTI3LCAyLjA5NzU4LCAyLjYwNzMxLCAzLjMzNTk4IiwgXAotICAgICAgICAgICIwLjEzNTY3LCAwLjY0MTg0MiwgMS4xNTEyNSwgMS41MTQ5NSwgMi4wOTc0NSwgMi42MDcxNCwgMy4zMzYyIiwgXAotICAgICAgICAgICIwLjEzODU1MiwgMC42NDE4NTcsIDEuMTUwOTUsIDEuNTE0OTUsIDIuMDk3MzQsIDIuNjA3NTQsIDMuMzQ1MjUiLCBcCi0gICAgICAgICAgIjAuMTQ1MDAxLCAwLjY0MTc3LCAxLjE1MTAzLCAxLjUxNTMxLCAyLjA5NzQ5LCAyLjYwNzk0LCAzLjM0NTQzIiwgXAotICAgICAgICAgICIwLjE1MTgzNCwgMC42NDI0MDYsIDEuMTUxMTIsIDEuNTE0OTIsIDIuMDk3OTMsIDIuNjA3ODMsIDMuMzM1NTEiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODk5NzQsIDAuMzgyNjEsIDAuNjczMjI1LCAwLjg4MTAyMywgMS4yMTIzNywgMS41MDI3NywgMS45MTcwNSIsIFwKLSAgICAgICAgICAiMC4xMDAxOTYsIDAuMzkzMDA4LCAwLjY4MzYyOCwgMC44OTA4MzUsIDEuMjIzMTEsIDEuNTEyNjMsIDEuOTI3ODYiLCBcCi0gICAgICAgICAgIjAuMTEzMjI3LCAwLjQwNjA5OSwgMC42OTY5MTcsIDAuOTA0MTQ0LCAxLjIzNTkyLCAxLjUyNjAzLCAxLjk0MTEzIiwgXAotICAgICAgICAgICIwLjEyNjUxNSwgMC40MTkzODgsIDAuNzEwMjU1LCAwLjkxNzQ3NywgMS4yNDk1NSwgMS41Mzk4NSwgMS45NTQzNSIsIFwKLSAgICAgICAgICAiMC4xNDAzMDgsIDAuNDMyNjk0LCAwLjcyMzc3LCAwLjkzMDk3LCAxLjI2Mjk3LCAxLjU1MzQ0LCAxLjk2NzgyIiwgXAotICAgICAgICAgICIwLjE2MTg3NSwgMC40NTUxNiwgMC43NDQzNTYsIDAuOTUyMDQsIDEuMjgzNTMsIDEuNTc0MjQsIDEuOTg4MzMiLCBcCi0gICAgICAgICAgIjAuMTgwODU3LCAwLjQ3MjI5NiwgMC43NjMwMTksIDAuOTcwNTc4LCAxLjMwMjE1LCAxLjU5MjIzLCAyLjAwNzA0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTQ2MjEzLCAwLjcwMjA1NywgMS4yNTc1LCAxLjY1MzcxLCAyLjI5MDkxLCAyLjg0ODc5LCAzLjY0Njk1IiwgXAotICAgICAgICAgICIwLjE0NjA4NiwgMC43MDIyODIsIDEuMjU3NDgsIDEuNjUzMzIsIDIuMjkwNTYsIDIuODQ4MjIsIDMuNjQ2ODYiLCBcCi0gICAgICAgICAgIjAuMTQ1NjEsIDAuNzAyMzk0LCAxLjI1NzU0LCAxLjY1MzMzLCAyLjI4OTk4LCAyLjg0OTAzLCAzLjY0NjQ5IiwgXAotICAgICAgICAgICIwLjE0NzMwOSwgMC43MDIzOTEsIDEuMjU3NTYsIDEuNjUzMTQsIDIuMjkwOTUsIDIuODQ4NywgMy42NDcyMyIsIFwKLSAgICAgICAgICAiMC4xNTA4OTUsIDAuNzAyMDczLCAxLjI1NzAzLCAxLjY1MzE3LCAyLjI5MDg3LCAyLjg0ODgzLCAzLjY0NzExIiwgXAotICAgICAgICAgICIwLjE1OTI1MywgMC43MDIzNjYsIDEuMjU2NjcsIDEuNjUzMDQsIDIuMjg5ODUsIDIuODQ4ODgsIDMuNjQ1MTgiLCBcCi0gICAgICAgICAgIjAuMTY4MzA0LCAwLjcwMjAwMiwgMS4yNTcxNSwgMS42NTMwNCwgMi4yODk3OSwgMi44NDgwNSwgMy42NDY5NyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjEzODIsIDAuMzIyMzQxLCAwLjU4MjkxNCwgMC43NjkxNzksIDEuMDY3MDcsIDEuMzI3NjIsIDEuNzAwMDQiLCBcCi0gICAgICAgICAgIjAuMDcxNzI3LCAwLjMzMzA2OCwgMC41OTM5NDYsIDAuNzc5ODM2LCAxLjA3Nzc0LCAxLjMzODM0LCAxLjcxMDgiLCBcCi0gICAgICAgICAgIjAuMDg0ODM0LCAwLjM0NjMxLCAwLjYwNjkxNSwgMC43OTMzMTIsIDEuMDkxMTEsIDEuMzUxNjgsIDEuNzI0MTMiLCBcCi0gICAgICAgICAgIjAuMDk3OTIzLCAwLjM1ODkzOSwgMC42MTk3MTksIDAuODA2MjMxLCAxLjEwMzc2LCAxLjM2NDU5LCAxLjczNjg0IiwgXAotICAgICAgICAgICIwLjExMTIzOSwgMC4zNzIxMDksIDAuNjMyNzU2LCAwLjgxOTA1NCwgMS4xMTcwMywgMS4zNzc1MywgMS43NDk4NCIsIFwKLSAgICAgICAgICAiMC4xMzIxOTIsIDAuMzkyODczLCAwLjY1Mzg2MSwgMC44Mzk3OTgsIDEuMTM3NzEsIDEuMzk4NDUsIDEuNzcwODQiLCBcCi0gICAgICAgICAgIjAuMTQ5MjEyLCAwLjQxMTE4NCwgMC42NzIyMzUsIDAuODU4MzY1LCAxLjE1NjI3LCAxLjQxNjk2LCAxLjc4OTQ2Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTMzNzE3LCAwLjY0MTg1LCAxLjE1MTIsIDEuNTE1MTcsIDIuMDk3NDYsIDIuNjA3OTIsIDMuMzQ1NCIsIFwKLSAgICAgICAgICAiMC4xMzM2MTEsIDAuNjQxODMxLCAxLjE1MTQ1LCAxLjUxNDk2LCAyLjA5NzQyLCAyLjYwNzg5LCAzLjMzNjUiLCBcCi0gICAgICAgICAgIjAuMTM1MTY1LCAwLjY0MTg5NywgMS4xNTEwOSwgMS41MTUwOSwgMi4wOTc0NywgMi42MDc5MiwgMy4zNDUzMyIsIFwKLSAgICAgICAgICAiMC4xMzk3MzMsIDAuNjQxNzYzLCAxLjE1MDk3LCAxLjUxNTIzLCAyLjA5Nzk3LCAyLjYwNzMxLCAzLjMzNjEzIiwgXAotICAgICAgICAgICIwLjE0NTk3MywgMC42NDE4MzQsIDEuMTUxMDIsIDEuNTE1MDcsIDIuMDk4LCAyLjYwNzEzLCAzLjMzNjM1IiwgXAotICAgICAgICAgICIwLjE1ODM4NiwgMC42NDE3ODgsIDEuMTUxMjksIDEuNTE0ODQsIDIuMDk3OTUsIDIuNjA3MTMsIDMuMzQ1NTQiLCBcCi0gICAgICAgICAgIjAuMTcwMTEzLCAwLjY0MzExMiwgMS4xNTEyMSwgMS41MTUwNSwgMi4wOTc1MSwgMi42MDcyLCAzLjMzNjEzIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc5NzI0LCAwLjM3MjkxOSwgMC42NjUxOTIsIDAuODczNTYsIDEuMjA3MzksIDEuNDk4OTMsIDEuOTE2MTciLCBcCi0gICAgICAgICAgIjAuMDkwNDcsIDAuMzg0MDY3LCAwLjY3NjI1NCwgMC44ODQ2NDgsIDEuMjE4OTIsIDEuNTA5ODQsIDEuOTI3OTUiLCBcCi0gICAgICAgICAgIjAuMTAzMTY5LCAwLjM5NzA5NCwgMC42ODk0MjYsIDAuODk4MzgsIDEuMjMxNjEsIDEuNTIzNzgsIDEuOTQwMzYiLCBcCi0gICAgICAgICAgIjAuMTE2ODA4LCAwLjQxMDU1NCwgMC43MDI3NjEsIDAuOTExMjI1LCAxLjI0NTU0LCAxLjUzNjgsIDEuOTU0NDgiLCBcCi0gICAgICAgICAgIjAuMTMwMTI3LCAwLjQyMzgxMywgMC43MTYxNCwgMC45MjQ3MjgsIDEuMjU4NzYsIDEuNTUwNDgsIDEuOTY3NTgiLCBcCi0gICAgICAgICAgIjAuMTUxNjU2LCAwLjQ0NDg3NSwgMC43MzcxMywgMC45NDU4NDIsIDEuMjc5ODgsIDEuNTcxMTMsIDEuOTg4ODIiLCBcCi0gICAgICAgICAgIjAuMTcxMDM2LCAwLjQ2MzQ4NCwgMC43NTU4MjMsIDAuOTY0MzEzLCAxLjI5ODExLCAxLjU5MDY3LCAyLjAwNjgzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTM1MTQ1LCAwLjY5MzUyLCAxLjI1MjM5LCAxLjY1MjM5LCAyLjI4ODM1LCAyLjg1OTMsIDMuNjQ2OCIsIFwKLSAgICAgICAgICAiMC4xMzUwNjYsIDAuNjkzNTA0LCAxLjI1MjE3LCAxLjY1MDIxLCAyLjI4ODUzLCAyLjg1ODk2LCAzLjY1MjA3IiwgXAotICAgICAgICAgICIwLjEzNDc4NCwgMC42OTM5ODEsIDEuMjUxNTUsIDEuNjUwNzUsIDIuMjk1ODEsIDIuODQ2NjgsIDMuNjYyMTYiLCBcCi0gICAgICAgICAgIjAuMTM2OTg1LCAwLjY5NDAxNCwgMS4yNTIxMiwgMS42NTI2OCwgMi4yODkxMSwgMi44NTA2NSwgMy42NTI1NiIsIFwKLSAgICAgICAgICAiMC4xNDEzMTIsIDAuNjkzODg5LCAxLjI1MTU3LCAxLjY1MTYyLCAyLjI4OTYxLCAyLjg0NzgsIDMuNjUwNTIiLCBcCi0gICAgICAgICAgIjAuMTUwNTY5LCAwLjY5MzY5NywgMS4yNTE3NywgMS42NTI1NiwgMi4yODg0OSwgMi44NTkzNiwgMy42NTA2NCIsIFwKLSAgICAgICAgICAiMC4xNjAyNTcsIDAuNjkzNTgyLCAxLjI1MjExLCAxLjY1MDY0LCAyLjI5ODk0LCAyLjg0OTU3LCAzLjY2MjQ3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTBOIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMTcxLCAwLjAxMTcxMywgMC4wMTE3MTEsIDAuMDExNzExLCAwLjAxMTcwNCwgMC4wMTE3MDEsIDAuMDExNyIsIFwKLSAgICAgICAgICAiMC4wMTE2ODEsIDAuMDExNjkxLCAwLjAxMTY4OSwgMC4wMTE2ODQsIDAuMDExNjgsIDAuMDExNjc2LCAwLjAxMTY3MiIsIFwKLSAgICAgICAgICAiMC4wMTE2NTgsIDAuMDExNjcxLCAwLjAxMTY2OSwgMC4wMTE2NjcsIDAuMDExNjYzLCAwLjAxMTY1OSwgMC4wMTE2NTUiLCBcCi0gICAgICAgICAgIjAuMDExNjQ0LCAwLjAxMTY1OCwgMC4wMTE2NTUsIDAuMDExNjU0LCAwLjAxMTY0OCwgMC4wMTE2NDcsIDAuMDExNjM5IiwgXAotICAgICAgICAgICIwLjAxMTYyOSwgMC4wMTE2NDUsIDAuMDExNjQ0LCAwLjAxMTY0NCwgMC4wMTE2NDIsIDAuMDExNjM5LCAwLjAxMTYzMiIsIFwKLSAgICAgICAgICAiMC4wMTE2MTcsIDAuMDExNjQxLCAwLjAxMTY0MiwgMC4wMTE2NDEsIDAuMDExNjM2LCAwLjAxMTYzNSwgMC4wMTE2MjciLCBcCi0gICAgICAgICAgIjAuMDExNjA3LCAwLjAxMTYzOCwgMC4wMTE2NCwgMC4wMTE2MzgsIDAuMDExNjM0LCAwLjAxMTYzMiwgMC4wMTE2MjYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwODg1MSwgMC4wMDg4NzEsIDAuMDA4ODcyLCAwLjAwODg3MiwgMC4wMDg4NywgMC4wMDg4NjksIDAuMDA4ODY0IiwgXAotICAgICAgICAgICIwLjAwODgzMywgMC4wMDg4NTIsIDAuMDA4ODU1LCAwLjAwODg1NSwgMC4wMDg4NTMsIDAuMDA4ODUyLCAwLjAwODg1MSIsIFwKLSAgICAgICAgICAiMC4wMDg4MTIsIDAuMDA4ODM4LCAwLjAwODg0LCAwLjAwODgzOSwgMC4wMDg4MzksIDAuMDA4ODM4LCAwLjAwODgzNiIsIFwKLSAgICAgICAgICAiMC4wMDg3OTUsIDAuMDA4ODI2LCAwLjAwODgzLCAwLjAwODgyOSwgMC4wMDg4MywgMC4wMDg4MjksIDAuMDA4ODI2IiwgXAotICAgICAgICAgICIwLjAwODc4MSwgMC4wMDg4MTgsIDAuMDA4ODIzLCAwLjAwODgyNCwgMC4wMDg4MjMsIDAuMDA4ODIxLCAwLjAwODgyMSIsIFwKLSAgICAgICAgICAiMC4wMDg3NjMsIDAuMDA4ODA5LCAwLjAwODgxNywgMC4wMDg4MTgsIDAuMDA4ODE4LCAwLjAwODgxNywgMC4wMDg4MTMiLCBcCi0gICAgICAgICAgIjAuMDA4NzUxLCAwLjAwODgwMiwgMC4wMDg4MSwgMC4wMDg4MTIsIDAuMDA4ODEzLCAwLjAwODgxMSwgMC4wMDg4MDkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMU4iOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEwNjc0LCAwLjAxMDY5MywgMC4wMTA2OTUsIDAuMDEwNjkxLCAwLjAxMDY4NiwgMC4wMTA2ODMsIDAuMDEwNjc5IiwgXAotICAgICAgICAgICIwLjAxMDY0OCwgMC4wMTA2NjksIDAuMDEwNjY4LCAwLjAxMDY2OSwgMC4wMTA2NjcsIDAuMDEwNjYzLCAwLjAxMDY1OCIsIFwKLSAgICAgICAgICAiMC4wMTA2MjEsIDAuMDEwNjUxLCAwLjAxMDY1MiwgMC4wMTA2NSwgMC4wMTA2NDQsIDAuMDEwNjQ0LCAwLjAxMDYzNiIsIFwKLSAgICAgICAgICAiMC4wMTA1OTksIDAuMDEwNjM0LCAwLjAxMDYzNywgMC4wMTA2MzYsIDAuMDEwNjMxLCAwLjAxMDYzMSwgMC4wMTA2MjMiLCBcCi0gICAgICAgICAgIjAuMDEwNTc0LCAwLjAxMDYyMywgMC4wMTA2MjQsIDAuMDEwNjI1LCAwLjAxMDYyNSwgMC4wMTA2MiwgMC4wMTA2MTQiLCBcCi0gICAgICAgICAgIjAuMDEwNTU5LCAwLjAxMDYxNCwgMC4wMTA2MTksIDAuMDEwNjIsIDAuMDEwNjE2LCAwLjAxMDYxNywgMC4wMTA2MSIsIFwKLSAgICAgICAgICAiMC4wMTA1NDcsIDAuMDEwNjA1LCAwLjAxMDYxMiwgMC4wMTA2MTQsIDAuMDEwNjEyLCAwLjAxMDYxMSwgMC4wMTA2MDUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNzYyMSwgMC4wMDc2OTIsIDAuMDA3NywgMC4wMDc3MDIsIDAuMDA3NzA0LCAwLjAwNzcwNCwgMC4wMDc3MDQiLCBcCi0gICAgICAgICAgIjAuMDA3NTk4LCAwLjAwNzY3NCwgMC4wMDc2ODQsIDAuMDA3Njg2LCAwLjAwNzY4OCwgMC4wMDc2ODksIDAuMDA3Njg2IiwgXAotICAgICAgICAgICIwLjAwNzU2OSwgMC4wMDc2NTYsIDAuMDA3NjY5LCAwLjAwNzY3MiwgMC4wMDc2NzMsIDAuMDA3Njc0LCAwLjAwNzY3MiIsIFwKLSAgICAgICAgICAiMC4wMDc1NDIsIDAuMDA3NjQ0LCAwLjAwNzY1OSwgMC4wMDc2NjMsIDAuMDA3NjY3LCAwLjAwNzY2OCwgMC4wMDc2NjgiLCBcCi0gICAgICAgICAgIjAuMDA3NTE5LCAwLjAwNzYzNCwgMC4wMDc2NTEsIDAuMDA3NjU3LCAwLjAwNzY2MiwgMC4wMDc2NjMsIDAuMDA3NjY1IiwgXAotICAgICAgICAgICIwLjAwNzQ5MiwgMC4wMDc2MjIsIDAuMDA3NjQ0LCAwLjAwNzY1MSwgMC4wMDc2NTcsIDAuMDA3NjU5LCAwLjAwNzY2IiwgXAotICAgICAgICAgICIwLjAwNzQ3MiwgMC4wMDc2MTEsIDAuMDA3NjM3LCAwLjAwNzY0NiwgMC4wMDc2NTMsIDAuMDA3NjU1LCAwLjAwNzY1NyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNzE5NSwgMC4wMDcyMDYsIDAuMDA3MjA3LCAwLjAwNzIwOCwgMC4wMDcyMDcsIDAuMDA3MjA3LCAwLjAwNzIwNyIsIFwKLSAgICAgICAgICAiMC4wMDcxODIsIDAuMDA3MjI4LCAwLjAwNzIzLCAwLjAwNzIzNiwgMC4wMDcyMzUsIDAuMDA3MjM2LCAwLjAwNzIzNyIsIFwKLSAgICAgICAgICAiMC4wMDcxNDYsIDAuMDA3MjI0LCAwLjAwNzIzNCwgMC4wMDcyMzIsIDAuMDA3MjQsIDAuMDA3MjQxLCAwLjAwNzI0MiIsIFwKLSAgICAgICAgICAiMC4wMDcxMjEsIDAuMDA3MjE3LCAwLjAwNzIzMSwgMC4wMDcyMzQsIDAuMDA3MjQsIDAuMDA3MjQxLCAwLjAwNzI0MSIsIFwKLSAgICAgICAgICAiMC4wMDcxLCAwLjAwNzIwNywgMC4wMDcyMjQsIDAuMDA3MjI5LCAwLjAwNzIzNCwgMC4wMDcyMzcsIDAuMDA3MjM4IiwgXAotICAgICAgICAgICIwLjAwNzA3NCwgMC4wMDcxOTYsIDAuMDA3MjIsIDAuMDA3MjI3LCAwLjAwNzIzNCwgMC4wMDcyMzgsIDAuMDA3MjQxIiwgXAotICAgICAgICAgICIwLjAwNzA2LCAwLjAwNzE4NSwgMC4wMDcyMTMsIDAuMDA3MjIzLCAwLjAwNzIzMSwgMC4wMDcyMzUsIDAuMDA3MjM5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQ0MjksIDAuMDA0NDMxLCAwLjAwNDQyOCwgMC4wMDQ0MjYsIDAuMDA0NDI2LCAwLjAwNDQzNSwgMC4wMDQ0MTgiLCBcCi0gICAgICAgICAgIjAuMDA0MzQ2LCAwLjAwNDM3MSwgMC4wMDQzNzQsIDAuMDA0MzcyLCAwLjAwNDM2OSwgMC4wMDQzNjYsIDAuMDA0MzY4IiwgXAotICAgICAgICAgICIwLjAwNDMwMSwgMC4wMDQzNSwgMC4wMDQzNTcsIDAuMDA0MzU3LCAwLjAwNDM1OCwgMC4wMDQzNTUsIDAuMDA0MzUxIiwgXAotICAgICAgICAgICIwLjAwNDI2NywgMC4wMDQzMzcsIDAuMDA0MzQ4LCAwLjAwNDM1LCAwLjAwNDM0OSwgMC4wMDQzNTEsIDAuMDA0MzQ4IiwgXAotICAgICAgICAgICIwLjAwNDI1NSwgMC4wMDQzMjYsIDAuMDA0MzQsIDAuMDA0MzQ0LCAwLjAwNDM0NCwgMC4wMDQzNDQsIDAuMDA0MzQ0IiwgXAotICAgICAgICAgICIwLjAwNDIzNiwgMC4wMDQzMTgsIDAuMDA0MzMsIDAuMDA0MzM2LCAwLjAwNDMzOSwgMC4wMDQzMzksIDAuMDA0MzM5IiwgXAotICAgICAgICAgICIwLjAwNDIyNywgMC4wMDQzMDMsIDAuMDA0MzI0LCAwLjAwNDMyOSwgMC4wMDQzMzQsIDAuMDA0MzM1LCAwLjAwNDMzNiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIxIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjE3MSwgMC4wMDYxODYsIDAuMDA2MTg5LCAwLjAwNjE5LCAwLjAwNjE4OSwgMC4wMDYxOSwgMC4wMDYxOSIsIFwKLSAgICAgICAgICAiMC4wMDYxMzgsIDAuMDA2MjA0LCAwLjAwNjIxMSwgMC4wMDYyMTMsIDAuMDA2MjE1LCAwLjAwNjIxNSwgMC4wMDYyMTciLCBcCi0gICAgICAgICAgIjAuMDA2MDg5LCAwLjAwNjE5NiwgMC4wMDYyMSwgMC4wMDYyMTQsIDAuMDA2MjE4LCAwLjAwNjIyLCAwLjAwNjIyMiIsIFwKLSAgICAgICAgICAiMC4wMDYwNSwgMC4wMDYxODEsIDAuMDA2MiwgMC4wMDYyMDcsIDAuMDA2MjEyLCAwLjAwNjIxNSwgMC4wMDYyMTgiLCBcCi0gICAgICAgICAgIjAuMDA2MDIzLCAwLjAwNjE2OCwgMC4wMDYxOTMsIDAuMDA2MjAxLCAwLjAwNjIxMywgMC4wMDYyMTYsIDAuMDA2MjE5IiwgXAotICAgICAgICAgICIwLjAwNTk5OCwgMC4wMDYxNTQsIDAuMDA2MTg3LCAwLjAwNjE5NywgMC4wMDYyMDcsIDAuMDA2MjEyLCAwLjAwNjIxNiIsIFwKLSAgICAgICAgICAiMC4wMDU5ODQsIDAuMDA2MTQsIDAuMDA2MTc4LCAwLjAwNjE4OSwgMC4wMDYyLCAwLjAwNjIwNywgMC4wMDYyMTIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjkxMSwgMC4wMDI5MywgMC4wMDI5MzIsIDAuMDAyOTMyLCAwLjAwMjkzMSwgMC4wMDI5MywgMC4wMDI5MjgiLCBcCi0gICAgICAgICAgIjAuMDAyODgzLCAwLjAwMjk2MSwgMC4wMDI5NzIsIDAuMDAyOTc0LCAwLjAwMjk3NSwgMC4wMDI5NzcsIDAuMDAyOTc1IiwgXAotICAgICAgICAgICIwLjAwMjgyMiwgMC4wMDI5NTIsIDAuMDAyOTcsIDAuMDAyOTc2LCAwLjAwMjk4LCAwLjAwMjk4MiwgMC4wMDI5ODIiLCBcCi0gICAgICAgICAgIjAuMDAyNzY5LCAwLjAwMjkzMiwgMC4wMDI5NTksIDAuMDAyOTY4LCAwLjAwMjk3NCwgMC4wMDI5NzgsIDAuMDAyOTgiLCBcCi0gICAgICAgICAgIjAuMDAyNzM0LCAwLjAwMjkxNCwgMC4wMDI5NDksIDAuMDAyOTYxLCAwLjAwMjk3LCAwLjAwMjk3NSwgMC4wMDI5NzgiLCBcCi0gICAgICAgICAgIjAuMDAyNjkyLCAwLjAwMjg4OCwgMC4wMDI5MzMsIDAuMDAyOTQ4LCAwLjAwMjk2MSwgMC4wMDI5NjgsIDAuMDAyOTcyIiwgXAotICAgICAgICAgICIwLjAwMjY2OCwgMC4wMDI4NjcsIDAuMDAyOTE4LCAwLjAwMjkzNSwgMC4wMDI5NTIsIDAuMDAyOTYsIDAuMDAyOTY3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogT0FJMzFYNCAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChPQUkzMVg0KSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuNDA2ODYyOwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAzMjkxNzQ7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAzMjczNTQ7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAzMjkxNzQ7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxMjI0LCAwLjAwMTIyMywgMC4wMDEyMjMsIDAuMDAxMjIyLCAwLjAwMTIyMywgMC4wMDEyMjMsIDAuMDAxMjIyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxMjI3LCAwLjAwMTIyOCwgMC4wMDEyMjgsIDAuMDAxMjI4LCAwLjAwMTIyOCwgMC4wMDEyMywgMC4wMDEyMjgiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEExKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDMyNjUzODsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDMyNTI0MzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDMyNjUzODsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDEyMjUsIDAuMDAxMjIzLCAwLjAwMTIyNCwgMC4wMDEyMjQsIDAuMDAxMjIzLCAwLjAwMTIyMywgMC4wMDEyMjMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDEyMjcsIDAuMDAxMjI3LCAwLjAwMTIyNywgMC4wMDEyMjcsIDAuMDAxMjI3LCAwLjAwMTIyOCwgMC4wMDEyMjgiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEEyKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDMwNDYwMzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDMwNDYwMzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDMwMzQzNzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDEyMjUsIDAuMDAxMjI1LCAwLjAwMTIyNCwgMC4wMDEyMjQsIDAuMDAxMjI0LCAwLjAwMTIyMywgMC4wMDEyMjMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDEyMjcsIDAuMDAxMjI2LCAwLjAwMTIyNywgMC4wMDEyMjcsIDAuMDAxMjI3LCAwLjAwMTIyOSwgMC4wMDEyMjgiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDI5MDYyNTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDI5MDQzMjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDI5MDYyNTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDE1NCwgMC4wMDE1NDIsIDAuMDAxNTQzLCAwLjAwMTU0NCwgMC4wMDE1NDIsIDAuMDAxNTQzLCAwLjAwMTU0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxMzksIDAuMDAxMzkxLCAwLjAwMTM5MSwgMC4wMDEzOTMsIDAuMDAxMzkyLCAwLjAwMTM5MywgMC4wMDEzOTMiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4xODA0NDc7Ci0gICAgZnVuY3Rpb24gOiAiKCEoKChBMCtBMSkrQTIpIEIwKSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEyNTYxMSwgMC41MjUyNDMsIDAuOTIyNDkxLCAxLjIwNTc4LCAxLjY1OTMzLCAyLjA1NTU0LCAyLjYyMjU3IiwgXAotICAgICAgICAgICIwLjEzNjg3NSwgMC41MzY3NDYsIDAuOTM0MDA0LCAxLjIxNzIsIDEuNjcwOTgsIDIuMDY2ODYsIDIuNjM0MTUiLCBcCi0gICAgICAgICAgIjAuMTQ5Njg0LCAwLjU0OTYyOSwgMC45NDY3MTksIDEuMjMwMDgsIDEuNjgzOTIsIDIuMDgwMDUsIDIuNjQ2OTciLCBcCi0gICAgICAgICAgIjAuMTYxNDk4LCAwLjU2MTU0MywgMC45NTg3MTQsIDEuMjQyMDcsIDEuNjk1NjksIDIuMDkxODUsIDIuNjU4OTIiLCBcCi0gICAgICAgICAgIjAuMTcyODQ1LCAwLjU3MjkzMywgMC45NzAxMDYsIDEuMjUzODEsIDEuNzA2NzgsIDIuMTAzODEsIDIuNjcwMzEiLCBcCi0gICAgICAgICAgIjAuMTkwMTksIDAuNTkwNDA3LCAwLjk4NzY2NywgMS4yNzExMiwgMS43MjQyNSwgMi4xMjA5NCwgMi42ODc4NCIsIFwKLSAgICAgICAgICAiMC4yMDUwNzEsIDAuNjA1MzEyLCAxLjAwMjY3LCAxLjI4NjA0LCAxLjczOTE3LCAyLjEzNjM1LCAyLjcwMjc5Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTg2MzE4LCAwLjk1MTA0NiwgMS43MTM5NCwgMi4yNTY3NCwgMy4xMjc0OSwgMy44ODkwOSwgNC45Nzc2MyIsIFwKLSAgICAgICAgICAiMC4xODY1OTIsIDAuOTUwMzMsIDEuNzEyNzIsIDIuMjU2NjMsIDMuMTI3NzYsIDMuODg4OTksIDQuOTc3MDkiLCBcCi0gICAgICAgICAgIjAuMTg2NTksIDAuOTUwODU0LCAxLjcxNDQ0LCAyLjI1NjcyLCAzLjEyNzc1LCAzLjg5MTUyLCA0Ljk3ODM1IiwgXAotICAgICAgICAgICIwLjE4NjY0MywgMC45NTAxNzIsIDEuNzEyMTUsIDIuMjU2NjgsIDMuMTI3NjMsIDMuODg4OTQsIDQuOTc3NjkiLCBcCi0gICAgICAgICAgIjAuMTg3MTk0LCAwLjk1MDMyMiwgMS43MTIzLCAyLjI1NzAyLCAzLjEyNzE5LCAzLjg4OTQ3LCA0Ljk3NzU3IiwgXAotICAgICAgICAgICIwLjE4OTI1MywgMC45NTAzMiwgMS43MTIxNiwgMi4yNTYzNCwgMy4xMjk4MSwgMy44OTE2LCA0Ljk3ODE5IiwgXAotICAgICAgICAgICIwLjE5MTk3OSwgMC45NTEwODEsIDEuNzEyNjcsIDIuMjU2MzQsIDMuMTI5OCwgMy44ODk2MywgNC45Nzc2NSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5ODY5MSwgMC4zOTIzMTcsIDAuNjgzMTkyLCAwLjg5MDQ5OSwgMS4yMjIzNCwgMS41MTI1MywgMS45MjczIiwgXAotICAgICAgICAgICIwLjExMDMyLCAwLjQwMzk2NSwgMC42OTQ4NjMsIDAuOTAyMjc0LCAxLjIzMzk4LCAxLjUyNDA1LCAxLjkzODg2IiwgXAotICAgICAgICAgICIwLjEyNDgxMiwgMC40MTg1MSwgMC43MDkyNjEsIDAuOTE2ODgzLCAxLjI0ODE3LCAxLjUzODIxLCAxLjk1MzE3IiwgXAotICAgICAgICAgICIwLjEzODczNCwgMC40MzI1NDksIDAuNzIzMzU2LCAwLjkzMDkyNywgMS4yNjIxMiwgMS41NTIyMiwgMS45NjcxNCIsIFwKLSAgICAgICAgICAiMC4xNTIzNDQsIDAuNDQ2MTQ5LCAwLjczNjkxNSwgMC45NDQ1NTUsIDEuMjc1ODQsIDEuNTY2NSwgMS45ODA3MyIsIFwKLSAgICAgICAgICAiMC4xNzM3ODQsIDAuNDY3NzQ1LCAwLjc1ODYyMywgMC45NjU5NTgsIDEuMjk3NTIsIDEuNTg3NDUsIDIuMDAxOSIsIFwKLSAgICAgICAgICAiMC4xOTI1ODMsIDAuNDg2Nzc4LCAwLjc3NzYwOCwgMC45ODUyMjQsIDEuMzE3MDIsIDEuNjA2NjEsIDIuMDIxNzgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMzc4NywgMC42OTQzNTIsIDEuMjQ5NzcsIDEuNjQ2MjgsIDIuMjgwOTQsIDIuODM1ODMsIDMuNjI5NDYiLCBcCi0gICAgICAgICAgIjAuMTM3OTA0LCAwLjY5NDQxMSwgMS4yNDkyOCwgMS42NDY3NSwgMi4yODAyOCwgMi44MzUzMSwgMy42MjkyMSIsIFwKLSAgICAgICAgICAiMC4xMzc1NDIsIDAuNjkzNzUzLCAxLjI0OTgsIDEuNjQ2NTQsIDIuMjgwNjEsIDIuODM1NjUsIDMuNjI5MTYiLCBcCi0gICAgICAgICAgIjAuMTM3OTM0LCAwLjY5NDM2MSwgMS4yNDk5MywgMS42NDYxOCwgMi4yODEwNSwgMi44MzU2OSwgMy42MjgxOCIsIFwKLSAgICAgICAgICAiMC4xMzg2NDEsIDAuNjkzNjg1LCAxLjI0OTQ3LCAxLjY0NjMzLCAyLjI4MDYzLCAyLjgzNjEyLCAzLjYyOTQzIiwgXAotICAgICAgICAgICIwLjE0MjIxMywgMC42OTQwMzcsIDEuMjQ5NDQsIDEuNjQ2MSwgMi4yODExNiwgMi44MzU0NCwgMy42Mjk0MiIsIFwKLSAgICAgICAgICAiMC4xNDY1ODYsIDAuNjkzODksIDEuMjQ5OTIsIDEuNjQ2NjYsIDIuMjgxMzgsIDIuODM1NjgsIDMuNjI4ODEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTE4ODgyLCAwLjUxODUzNywgMC45MTU3MTQsIDEuMTk5MzcsIDEuNjUyMzUsIDIuMDQ5MzcsIDIuNjE1OTMiLCBcCi0gICAgICAgICAgIjAuMTI5MTcyLCAwLjUyODk3MywgMC45MjYyMjgsIDEuMjA5NSwgMS42NjMwOSwgMi4wNjAwNiwgMi42MjY0MyIsIFwKLSAgICAgICAgICAiMC4xNDE4LCAwLjU0MTc2NiwgMC45Mzg4NjUsIDEuMjIyNTQsIDEuNjc1NTIsIDIuMDcyNTgsIDIuNjM4NjQiLCBcCi0gICAgICAgICAgIjAuMTUzNzI4LCAwLjU1Mzc5MiwgMC45NTA5MTcsIDEuMjM0NTgsIDEuNjg3NTcsIDIuMDg0NTgsIDIuNjUwODgiLCBcCi0gICAgICAgICAgIjAuMTY1NTY3LCAwLjU2NTcwOCwgMC45NjI5NDksIDEuMjQ2NTksIDEuNjk5NTQsIDIuMDk2NTcsIDIuNjYzMTEiLCBcCi0gICAgICAgICAgIjAuMTg0MzE5LCAwLjU4NDU5NCwgMC45ODE5MzUsIDEuMjY1MzQsIDEuNzE5LCAyLjExNTQ2LCAyLjY4MjM5IiwgXAotICAgICAgICAgICIwLjIwMDgzOSwgMC42MDExMzUsIDAuOTk4NTA1LCAxLjI4MTk4LCAxLjczNTA0LCAyLjEzMTU5LCAyLjY5ODgxIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTg2NDk1LCAwLjk1MTA1NiwgMS43MTI1LCAyLjI1Njk3LCAzLjEyNzMsIDMuODg5NDMsIDQuOTc3NjEiLCBcCi0gICAgICAgICAgIjAuMTg2NDkzLCAwLjk1MDUsIDEuNzE0MDUsIDIuMjU5NDQsIDMuMTI4OTcsIDMuODg5NzIsIDQuOTc3NTQiLCBcCi0gICAgICAgICAgIjAuMTg2NDM5LCAwLjk1MTEwNSwgMS43MTI0NywgMi4yNTcsIDMuMTI3MzEsIDMuODg5NDksIDQuOTgwMjgiLCBcCi0gICAgICAgICAgIjAuMTg2Njc3LCAwLjk1MDIzNywgMS43MTIzNCwgMi4yNTcsIDMuMTI3MzMsIDMuODg5NDQsIDQuOTc2NDYiLCBcCi0gICAgICAgICAgIjAuMTg4MTQyLCAwLjk1MDI0OSwgMS43MTM4OCwgMi4yNTcwMywgMy4xMjcwOSwgMy44ODk0OCwgNC45Nzc2MyIsIFwKLSAgICAgICAgICAiMC4xOTE3ODEsIDAuOTUwNDYsIDEuNzEzOTYsIDIuMjU2MzUsIDMuMTI3NzUsIDMuODkxNjIsIDQuOTc4MDIiLCBcCi0gICAgICAgICAgIjAuMTk2NjMsIDAuOTUwNjksIDEuNzEyMTUsIDIuMjU2MzUsIDMuMTI3MjQsIDMuODg5MDYsIDQuOTc3NzMiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTA0OTQsIDAuMzgxNzkxLCAwLjY3MjAzOSwgMC44Nzg5NDksIDEuMjEwMjUsIDEuNTAwMzMsIDEuOTEzODkiLCBcCi0gICAgICAgICAgIjAuMTAyNDU4LCAwLjM5MzkyLCAwLjY4NDQyLCAwLjg5MTcxLCAxLjIyMzIsIDEuNTEyNzUsIDEuOTI4MDkiLCBcCi0gICAgICAgICAgIjAuMTE2OTM2LCAwLjQwODYwNiwgMC42OTkxNTcsIDAuOTA2MjM4LCAxLjIzNzk4LCAxLjUyNzY3LCAxLjk0MzAyIiwgXAotICAgICAgICAgICIwLjEzMDY4NCwgMC40MjI2MjcsIDAuNzEzMDU3LCAwLjkyMDQ5OCwgMS4yNTIxMiwgMS41NDI1MSwgMS45NTYxNyIsIFwKLSAgICAgICAgICAiMC4xNDQxNjMsIDAuNDM2MjQ3LCAwLjcyNjQzOCwgMC45MzQxNTYsIDEuMjY1NjUsIDEuNTU1NzMsIDEuOTY5NzEiLCBcCi0gICAgICAgICAgIjAuMTY1NjAzLCAwLjQ1Nzg0MSwgMC43NDgzNDcsIDAuOTU1ODc4LCAxLjI4NzY2LCAxLjU3NzA3LCAxLjk5MjI1IiwgXAotICAgICAgICAgICIwLjE4NDI3NywgMC40NzY3ODEsIDAuNzY3MDk3LCAwLjk3NDg4MSwgMS4zMDYzNCwgMS41OTYzNiwgMi4wMTA5MyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEyNzIzNywgMC42ODI5MjEsIDEuMjM3OTMsIDEuNjM0MDgsIDIuMjcxMTYsIDIuODI0NTksIDMuNjE3NDUiLCBcCi0gICAgICAgICAgIjAuMTI3MDM5LCAwLjY4MzA4OCwgMS4yMzgzNSwgMS42MzQ2MiwgMi4yNjk0NywgMi44MjQsIDMuNjE3NzEiLCBcCi0gICAgICAgICAgIjAuMTI3MjQ1LCAwLjY4MjgwNSwgMS4yMzgzNiwgMS42MzUyOSwgMi4yNjk0OSwgMi44MjQ5NiwgMy42MTg1MSIsIFwKLSAgICAgICAgICAiMC4xMjcyNjYsIDAuNjgzMTAyLCAxLjIzODY3LCAxLjYzNSwgMi4yNjkyLCAyLjgyNTE2LCAzLjYxNzcyIiwgXAotICAgICAgICAgICIwLjEyODU5MiwgMC42ODI4ODcsIDEuMjM4MDYsIDEuNjM0OTksIDIuMjcwMTYsIDIuODI0NzQsIDMuNjE4MjciLCBcCi0gICAgICAgICAgIjAuMTMyNjM1LCAwLjY4Mjg5OCwgMS4yMzc5NSwgMS42MzUwMiwgMi4yNjk4MiwgMi44MjM3MywgMy42MTg0MiIsIFwKLSAgICAgICAgICAiMC4xMzc2MDMsIDAuNjgyOTI2LCAxLjIzODE2LCAxLjYzNTExLCAyLjI3MDA0LCAyLjgyNDc2LCAzLjYxOTQ4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEyIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwMzEyOSwgMC41MDI4ODUsIDAuODk5OTgzLCAxLjE4MzY1LCAxLjYzNjYyLCAyLjAzMzcxLCAyLjU5OTYyIiwgXAotICAgICAgICAgICIwLjExMjI3NCwgMC41MTIxOTYsIDAuOTA5NTY1LCAxLjE5Mjc3LCAxLjY0NjM4LCAyLjA0MjU0LCAyLjYwOTY4IiwgXAotICAgICAgICAgICIwLjEyNDE0NSwgMC41MjQzMzksIDAuOTIxNTc2LCAxLjIwNDg3LCAxLjY1ODE0LCAyLjA1NTE2LCAyLjYyMjA1IiwgXAotICAgICAgICAgICIwLjEzNjUyOSwgMC41MzY3NDQsIDAuOTMzODkyLCAxLjIxNzM3LCAxLjY3MDU2LCAyLjA2NzE2LCAyLjYzMzYiLCBcCi0gICAgICAgICAgIjAuMTQ4MjQ3LCAwLjU0ODU1OCwgMC45NDU4NTEsIDEuMjI5MiwgMS42ODI3NSwgMi4wNzg5OCwgMi42NDU1MiIsIFwKLSAgICAgICAgICAiMC4xNjg0MTMsIDAuNTY3OTc5LCAwLjk2NTM1MiwgMS4yNDg3NiwgMS43MDIxLCAyLjA5ODQzLCAyLjY2NDk5IiwgXAotICAgICAgICAgICIwLjE4NTkzMiwgMC41ODQ5NjMsIDAuOTgyMzk2LCAxLjI2NTk0LCAxLjcxOTI5LCAyLjExNTgzLCAyLjY4MjQzIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTg2NDY5LCAwLjk1MDI2OSwgMS43MTI0MiwgMi4yNTcwMSwgMy4xMjcyNiwgMy44ODk1MiwgNC45NzYzNyIsIFwKLSAgICAgICAgICAiMC4xODYzNzMsIDAuOTQ5OTM0LCAxLjcxMjczLCAyLjI1NjU4LCAzLjEyNzY1LCAzLjg4ODg0LCA0Ljk3Nzc2IiwgXAotICAgICAgICAgICIwLjE4NTcwNywgMC45NTAxODEsIDEuNzEzOTIsIDIuMjU2NjQsIDMuMTI3MTgsIDMuODg5NDYsIDQuOTc3NDYiLCBcCi0gICAgICAgICAgIjAuMTg3MzA4LCAwLjk1MDgxNCwgMS43MTQ0NCwgMi4yNTY3MSwgMy4xMjk2MiwgMy44OTE2OCwgNC45NzYzNyIsIFwKLSAgICAgICAgICAiMC4xOTA5MDQsIDAuOTUxMDgsIDEuNzEzOTksIDIuMjU2NjQsIDMuMTI5NywgMy44OTE0OCwgNC45NzY0NSIsIFwKLSAgICAgICAgICAiMC4xOTg0NDcsIDAuOTUxMDc5LCAxLjcxMzkzLCAyLjI1NjMxLCAzLjEyNjg2LCAzLjg4OTAxLCA0Ljk3NjQzIiwgXAotICAgICAgICAgICIwLjIwNzI5OSwgMC45NTEwNDEsIDEuNzEyMTQsIDIuMjU4NTUsIDMuMTI5NjksIDMuODg4MzgsIDQuOTc5ODkiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODA1NjUsIDAuMzczNTM0LCAwLjY2NjUzOSwgMC44NzUzNzQsIDEuMjEwNTUsIDEuNTAzMzksIDEuOTIyNTIiLCBcCi0gICAgICAgICAgIjAuMDkyNzM0LCAwLjM4NjI2MywgMC42NzkxMjQsIDAuODg4MzgyLCAxLjIyMjk2LCAxLjUxNTk0LCAxLjkzNDI5IiwgXAotICAgICAgICAgICIwLjEwNzA5OSwgMC40MDEwNzgsIDAuNjkzOTY2LCAwLjkwMzIwNSwgMS4yMzc1MSwgMS41MzA5MSwgMS45NDkwNyIsIFwKLSAgICAgICAgICAiMC4xMjA3MTQsIDAuNDE0ODA3LCAwLjcwNzg3MSwgMC45MTY4OTYsIDEuMjUyMSwgMS41NDUwNiwgMS45NjM0IiwgXAotICAgICAgICAgICIwLjEzNDIyNiwgMC40Mjg1NDEsIDAuNzIxODQ1LCAwLjkzMTAzNiwgMS4yNjU2NCwgMS41NTg1OSwgMS45Nzc1MSIsIFwKLSAgICAgICAgICAiMC4xNTU1MjEsIDAuNDUwMDE2LCAwLjc0MzE3NCwgMC45NTIyODYsIDEuMjg3NjksIDEuNTc5NjQsIDEuOTk5NTIiLCBcCi0gICAgICAgICAgIjAuMTczNzk0LCAwLjQ2ODc0NiwgMC43NjE5NjEsIDAuOTcxMjg3LCAxLjMwNTg4LCAxLjU5OTE1LCAyLjAxNzM0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTE3MTE3LCAwLjY4MDUwMSwgMS4yNDExNSwgMS42NDYxNCwgMi4yODA0MiwgMi44NTc1MiwgMy42NDYzIiwgXAotICAgICAgICAgICIwLjExNjc2OSwgMC42Nzc3OSwgMS4yNDYwMiwgMS42NDI5MSwgMi4yOTQ4NiwgMi44NDc0OSwgMy42NDM1NCIsIFwKLSAgICAgICAgICAiMC4xMTcwNjcsIDAuNjc4MjI5LCAxLjIzODkzLCAxLjY0MjQ2LCAyLjI5MTIzLCAyLjg0ODk0LCAzLjY1ODciLCBcCi0gICAgICAgICAgIjAuMTE3NDcxLCAwLjY4MTE4LCAxLjI0MDUyLCAxLjY0OCwgMi4yODAxNywgMi44NDEwOSwgMy42NDI2MyIsIFwKLSAgICAgICAgICAiMC4xMTkxNjksIDAuNjgxMjYzLCAxLjIzODY5LCAxLjYzOTE0LCAyLjI4NDAyLCAyLjg0MjA5LCAzLjY0NTE4IiwgXAotICAgICAgICAgICIwLjEyMzUzLCAwLjY4MDYzMiwgMS4yNDU1MSwgMS42NDQzMSwgMi4yODM4NSwgMi44NTMxNSwgMy42NDY1MSIsIFwKLSAgICAgICAgICAiMC4xMjkwMzUsIDAuNjgwNDAyLCAxLjI0MzY2LCAxLjY0NjAzLCAyLjI5MDAxLCAyLjg0MjA5LCAzLjY1MjcyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzMDMzMSwgMC4xNTcyNDgsIDAuMjg0MTQ2LCAwLjM3NDcxOCwgMC41MTk2NSwgMC42NDY0NDQsIDAuODI3NDgzIiwgXAotICAgICAgICAgICIwLjA0MTg3NSwgMC4xNjg5MjQsIDAuMjk1NzUxLCAwLjM4NjQwNywgMC41MzEyMjMsIDAuNjU3OTk3LCAwLjgzOTQxNSIsIFwKLSAgICAgICAgICAiMC4wNTY2OTQsIDAuMTgzMzMyLCAwLjMxMDEwNSwgMC40MDA3NTIsIDAuNTQzMjk0LCAwLjY3MDE2MywgMC44NTE0MjgiLCBcCi0gICAgICAgICAgIjAuMDcxNTM0LCAwLjE5ODAzNSwgMC4zMjQ1ODQsIDAuNDE1MjgyLCAwLjU2MDI0MSwgMC42ODY5LCAwLjg2ODE4OCIsIFwKLSAgICAgICAgICAiMC4wODQ3NjEsIDAuMjEyODQ3LCAwLjMzOTI3OCwgMC40Mjk3ODYsIDAuNTcyMzU3LCAwLjY5OTIzMywgMC44ODAyMjgiLCBcCi0gICAgICAgICAgIjAuMTAzNDI4LCAwLjIzNjg3OSwgMC4zNjI4MTcsIDAuNDUzMTU2LCAwLjU5NzgyOCwgMC43MjEzNjcsIDAuOTAyNjk4IiwgXAotICAgICAgICAgICIwLjExNzk3OSwgMC4yNTc1MjUsIDAuMzgzNTg5LCAwLjQ3MzY0OCwgMC42MTgyNDIsIDAuNzQ0OTgxLCAwLjkyMjI5NiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3NDk2NiwgMC4zMzE3NywgMC41ODgwOTksIDAuNzcxNjQ5LCAxLjA2NTE5LCAxLjMyMjE3LCAxLjY4OTc5IiwgXAotICAgICAgICAgICIwLjA3NTc1NiwgMC4zMzE3NTksIDAuNTg4MTA0LCAwLjc3MTY0OCwgMS4wNjUxMywgMS4zMjIxNywgMS42ODk2NSIsIFwKLSAgICAgICAgICAiMC4wODA4MjgsIDAuMzMxNzYsIDAuNTg4MDc4LCAwLjc3MTU4OCwgMS4wNjUyMywgMS4zMjIxNSwgMS42ODk5NCIsIFwKLSAgICAgICAgICAiMC4wODc5MjEsIDAuMzMxNzY3LCAwLjU4ODE3NywgMC43NzE2MSwgMS4wNjUxNywgMS4zMjIxOSwgMS42ODk3NSIsIFwKLSAgICAgICAgICAiMC4wOTY1OTYsIDAuMzMyOTI4LCAwLjU4ODEzNCwgMC43NzE1MzksIDEuMDY1MjUsIDEuMzIyNCwgMS42ODk0IiwgXAotICAgICAgICAgICIwLjExMTczNSwgMC4zMzcyNiwgMC41ODgxOTksIDAuNzcxNTkyLCAxLjA2NTE2LCAxLjMyMjMzLCAxLjY4OTY4IiwgXAotICAgICAgICAgICIwLjEyNjAxNiwgMC4zNDMwOSwgMC41ODk4OTEsIDAuNzcxNTY3LCAxLjA2NTI1LCAxLjMyMjIyLCAxLjY4OTgiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODQ1NjIsIDAuMzc4MzQsIDAuNjY5MTU1LCAwLjg3NjY0LCAxLjIwNzkyLCAxLjQ5ODQ5LCAxLjkxMjc5IiwgXAotICAgICAgICAgICIwLjA5NDczNywgMC4zODg4OTIsIDAuNjc5NjAxLCAwLjg4NzAyOCwgMS4yMTg3NiwgMS41MDg4NiwgMS45MjMxOCIsIFwKLSAgICAgICAgICAiMC4xMDc2NzcsIDAuNDAyMDIxLCAwLjY5MzAxOCwgMC45MDAzMDYsIDEuMjMxOSwgMS41MjIyNCwgMS45MzcxIiwgXAotICAgICAgICAgICIwLjEyMTUwNywgMC40MTU4NjIsIDAuNzA2NzQ5LCAwLjkxNDQ3NywgMS4yNDYyMiwgMS41MzY1MSwgMS45NTAxIiwgXAotICAgICAgICAgICIwLjEzNDcxLCAwLjQyODQ0OSwgMC43MTk1MjEsIDAuOTI2OTkyLCAxLjI1ODM1LCAxLjU0ODQ4LCAxLjk2MzMiLCBcCi0gICAgICAgICAgIjAuMTU2NDcxLCAwLjQ0OTU3NSwgMC43NDA2NDgsIDAuOTQ4MDc1LCAxLjI3OTc5LCAxLjU3MDUxLCAxLjk4NDY0IiwgXAotICAgICAgICAgICIwLjE3NTQwOSwgMC40NjgxMjQsIDAuNzU5MTkxLCAwLjk2Njc4NSwgMS4yOTgyNCwgMS41ODg1MywgMi4wMDM2NSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEzNzY0NywgMC42OTQzNDYsIDEuMjUwMDEsIDEuNjQ4NDEsIDIuMjgzLCAyLjg1OTM1LCAzLjY0MzUyIiwgXAotICAgICAgICAgICIwLjEzNzU2NSwgMC42OTM2ODUsIDEuMjQ5MzYsIDEuNjQ2MTEsIDIuMjkyNjYsIDIuODUyNjEsIDMuNjU4MDYiLCBcCi0gICAgICAgICAgIjAuMTM3MDEzLCAwLjY5NDE5OCwgMS4yNDk4NSwgMS42NDYxMiwgMi4yODExOCwgMi44NTI5OSwgMy42NDMxNyIsIFwKLSAgICAgICAgICAiMC4xMzg4OTksIDAuNjk0MzIsIDEuMjQ5NDUsIDEuNjQ2MTMsIDIuMjg5NjMsIDIuODQxNTMsIDMuNjQyOTUiLCBcCi0gICAgICAgICAgIjAuMTQyNjY1LCAwLjY5Mzc1NywgMS4yNDk5NCwgMS42NDY2NCwgMi4yODIyNywgMi44NDUyNCwgMy42NTgwOCIsIFwKLSAgICAgICAgICAiMC4xNTEzMTUsIDAuNjk0MDg3LCAxLjI0OTQzLCAxLjY0NzM0LCAyLjI5MDk5LCAyLjg0MTQ2LCAzLjY1NzgxIiwgXAotICAgICAgICAgICIwLjE2MDE0OCwgMC42OTM3MSwgMS4yNDk3NiwgMS42NDY2NiwgMi4yODI2NSwgMi44NTQ4MSwgMy42NDI2OSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMDAyMywgMC4wMTAwMTcsIDAuMDEwMDEzLCAwLjAxMDAxMiwgMC4wMTAwMSwgMC4wMDk5OTYsIDAuMDEwMDAyIiwgXAotICAgICAgICAgICIwLjAwOTk3OSwgMC4wMDk5ODcsIDAuMDA5OTgxLCAwLjAwOTk3OSwgMC4wMDk5NzUsIDAuMDA5OTcsIDAuMDA5OTYzIiwgXAotICAgICAgICAgICIwLjAwOTk1NSwgMC4wMDk5NzYsIDAuMDA5OTc1LCAwLjAwOTk3NCwgMC4wMDk5NjksIDAuMDA5OTY1LCAwLjAwOTk1NCIsIFwKLSAgICAgICAgICAiMC4wMDk5MzgsIDAuMDA5OTY3LCAwLjAwOTk2NywgMC4wMDk5NjUsIDAuMDA5OTY1LCAwLjAwOTk1OSwgMC4wMDk5NTEiLCBcCi0gICAgICAgICAgIjAuMDA5OTI4LCAwLjAwOTk2MiwgMC4wMDk5NjQsIDAuMDA5OTY2LCAwLjAwOTk2MiwgMC4wMDk5NTYsIDAuMDA5OTQ4IiwgXAotICAgICAgICAgICIwLjAwOTkxMSwgMC4wMDk5NTQsIDAuMDA5OTU4LCAwLjAwOTk2LCAwLjAwOTk1NSwgMC4wMDk5NTMsIDAuMDA5OTQ0IiwgXAotICAgICAgICAgICIwLjAwOTkwNCwgMC4wMDk5NTIsIDAuMDA5OTU1LCAwLjAwOTk1NywgMC4wMDk5NTMsIDAuMDA5OTUyLCAwLjAwOTk1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQwMzYsIDAuMDA0MDM1LCAwLjAwNDAzMSwgMC4wMDQwMzIsIDAuMDA0MDM2LCAwLjAwNDAyOCwgMC4wMDQwMjQiLCBcCi0gICAgICAgICAgIjAuMDAzOTUxLCAwLjAwMzk1OCwgMC4wMDM5NTgsIDAuMDAzOTU1LCAwLjAwMzk1LCAwLjAwMzk1MSwgMC4wMDM5NDkiLCBcCi0gICAgICAgICAgIjAuMDAzOTE0LCAwLjAwMzkzMiwgMC4wMDM5MzIsIDAuMDAzOTMxLCAwLjAwMzkzLCAwLjAwMzkyOCwgMC4wMDM5MjYiLCBcCi0gICAgICAgICAgIjAuMDAzODkyLCAwLjAwMzkyLCAwLjAwMzkyMiwgMC4wMDM5MjQsIDAuMDAzOTIzLCAwLjAwMzkyMSwgMC4wMDM5MjEiLCBcCi0gICAgICAgICAgIjAuMDAzODczLCAwLjAwMzkxMSwgMC4wMDM5MTUsIDAuMDAzOTE1LCAwLjAwMzkxNiwgMC4wMDM5MTYsIDAuMDAzOTE0IiwgXAotICAgICAgICAgICIwLjAwMzg1MywgMC4wMDM5LCAwLjAwMzkwOCwgMC4wMDM5MSwgMC4wMDM5MSwgMC4wMDM5MSwgMC4wMDM5MDkiLCBcCi0gICAgICAgICAgIjAuMDAzODM1LCAwLjAwMzg5MywgMC4wMDM5MDIsIDAuMDAzOTA1LCAwLjAwMzkwNywgMC4wMDM5MDUsIDAuMDAzOTA1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA5MDI5LCAwLjAwOTAyNiwgMC4wMDkwMjIsIDAuMDA5MDE5LCAwLjAwOTAxMiwgMC4wMDkwMDcsIDAuMDA5MDAzIiwgXAotICAgICAgICAgICIwLjAwODk4NywgMC4wMDg5OTMsIDAuMDA4OTg5LCAwLjAwODk4NywgMC4wMDg5ODIsIDAuMDA4OTY4LCAwLjAwODk3NyIsIFwKLSAgICAgICAgICAiMC4wMDg5NjEsIDAuMDA4OTgyLCAwLjAwODk4LCAwLjAwODk3OCwgMC4wMDg5NzEsIDAuMDA4OTcxLCAwLjAwODk2MyIsIFwKLSAgICAgICAgICAiMC4wMDg5NDYsIDAuMDA4OTc0LCAwLjAwODk3MywgMC4wMDg5NzUsIDAuMDA4OTY4LCAwLjAwODk2MywgMC4wMDg5NTMiLCBcCi0gICAgICAgICAgIjAuMDA4OTMyLCAwLjAwODk2OSwgMC4wMDg5NywgMC4wMDg5NywgMC4wMDg5NjcsIDAuMDA4OTYyLCAwLjAwODk1NCIsIFwKLSAgICAgICAgICAiMC4wMDg5MTcsIDAuMDA4OTYxLCAwLjAwODk2NCwgMC4wMDg5NjYsIDAuMDA4OTYyLCAwLjAwODk1OCwgMC4wMDg5NTIiLCBcCi0gICAgICAgICAgIjAuMDA4OTA3LCAwLjAwODk1NCwgMC4wMDg5NiwgMC4wMDg5NjMsIDAuMDA4OTU5LCAwLjAwODk1NSwgMC4wMDg5NTMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjczNywgMC4wMDI3NDEsIDAuMDAyNzQzLCAwLjAwMjczNSwgMC4wMDI3MzcsIDAuMDAyNzM2LCAwLjAwMjczNSIsIFwKLSAgICAgICAgICAiMC4wMDI3MDQsIDAuMDAyNzMyLCAwLjAwMjczNSwgMC4wMDI3MzUsIDAuMDAyNzMxLCAwLjAwMjczOCwgMC4wMDI3MzQiLCBcCi0gICAgICAgICAgIjAuMDAyNjYsIDAuMDAyNzIyLCAwLjAwMjcyOCwgMC4wMDI3MzEsIDAuMDAyNzMyLCAwLjAwMjczMiwgMC4wMDI3MzEiLCBcCi0gICAgICAgICAgIjAuMDAyNjIzLCAwLjAwMjcxLCAwLjAwMjcyMiwgMC4wMDI3MjUsIDAuMDAyNzI3LCAwLjAwMjcyOSwgMC4wMDI3MyIsIFwKLSAgICAgICAgICAiMC4wMDI1ODcsIDAuMDAyNjk5LCAwLjAwMjcxNiwgMC4wMDI3MjEsIDAuMDAyNzI0LCAwLjAwMjcyNiwgMC4wMDI3MjYiLCBcCi0gICAgICAgICAgIjAuMDAyNTUzLCAwLjAwMjY4MiwgMC4wMDI3MDUsIDAuMDAyNzEyLCAwLjAwMjcxOCwgMC4wMDI3MjEsIDAuMDAyNzIyIiwgXAotICAgICAgICAgICIwLjAwMjUyMywgMC4wMDI2NjksIDAuMDAyNjk3LCAwLjAwMjcwNSwgMC4wMDI3MTIsIDAuMDAyNzE2LCAwLjAwMjcxOSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEyIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNzk5MiwgMC4wMDc5ODksIDAuMDA3OTg1LCAwLjAwNzk4MywgMC4wMDc5NzYsIDAuMDA3OTcyLCAwLjAwNzk2NSIsIFwKLSAgICAgICAgICAiMC4wMDc5MzMsIDAuMDA3OTUyLCAwLjAwNzk1MSwgMC4wMDc5NDksIDAuMDA3OTQ0LCAwLjAwNzk0MSwgMC4wMDc5MzMiLCBcCi0gICAgICAgICAgIjAuMDA3ODksIDAuMDA3OTM1LCAwLjAwNzkzNiwgMC4wMDc5MzQsIDAuMDA3OTMyLCAwLjAwNzkyOSwgMC4wMDc5MjIiLCBcCi0gICAgICAgICAgIjAuMDA3ODY0LCAwLjAwNzkyNSwgMC4wMDc5MywgMC4wMDc5MjksIDAuMDA3OTI4LCAwLjAwNzkyMywgMC4wMDc5MjEiLCBcCi0gICAgICAgICAgIjAuMDA3ODQ1LCAwLjAwNzkxNiwgMC4wMDc5MjIsIDAuMDA3OTIyLCAwLjAwNzkyMSwgMC4wMDc5MjIsIDAuMDA3OTIiLCBcCi0gICAgICAgICAgIjAuMDA3ODI2LCAwLjAwNzkwNCwgMC4wMDc5MTQsIDAuMDA3OTE5LCAwLjAwNzkxOCwgMC4wMDc5MTYsIDAuMDA3OTA5IiwgXAotICAgICAgICAgICIwLjAwNzgxNSwgMC4wMDc4OTUsIDAuMDA3OTA3LCAwLjAwNzkxMSwgMC4wMDc5MTIsIDAuMDA3OTA4LCAwLjAwNzkwNyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxMjY2LCAwLjAwMTI4OCwgMC4wMDEyOSwgMC4wMDEyOSwgMC4wMDEyOTEsIDAuMDAxMjkxLCAwLjAwMTI5MSIsIFwKLSAgICAgICAgICAiMC4wMDEyNjEsIDAuMDAxMzQ2LCAwLjAwMTM1NSwgMC4wMDEzNTgsIDAuMDAxMzYxLCAwLjAwMTM2MiwgMC4wMDEzNjMiLCBcCi0gICAgICAgICAgIjAuMDAxMjA4LCAwLjAwMTM0OSwgMC4wMDEzNjYsIDAuMDAxMzcyLCAwLjAwMTM3NiwgMC4wMDEzNzksIDAuMDAxMzgxIiwgXAotICAgICAgICAgICIwLjAwMTE2MSwgMC4wMDEzNCwgMC4wMDEzNjUsIDAuMDAxMzcyLCAwLjAwMTM3OSwgMC4wMDEzODIsIDAuMDAxMzg1IiwgXAotICAgICAgICAgICIwLjAwMTExNywgMC4wMDEzMjUsIDAuMDAxMzU4LCAwLjAwMTM2OCwgMC4wMDEzNzYsIDAuMDAxMzgsIDAuMDAxMzg0IiwgXAotICAgICAgICAgICIwLjAwMTA2NCwgMC4wMDEzMDUsIDAuMDAxMzQ2LCAwLjAwMTM1OCwgMC4wMDEzNywgMC4wMDEzNzYsIDAuMDAxMzgyIiwgXAotICAgICAgICAgICIwLjAwMTAzMiwgMC4wMDEyODQsIDAuMDAxMzMzLCAwLjAwMTM1LCAwLjAwMTM2NSwgMC4wMDEzNzIsIDAuMDAxMzc5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2NDkyLCAwLjAwNjUwOSwgMC4wMDY1MSwgMC4wMDY1MTEsIDAuMDA2NTExLCAwLjAwNjUxMSwgMC4wMDY1MTIiLCBcCi0gICAgICAgICAgIjAuMDA2NDU1LCAwLjAwNjUyNiwgMC4wMDY1MzQsIDAuMDA2NTM3LCAwLjAwNjUzOCwgMC4wMDY1NCwgMC4wMDY1NDEiLCBcCi0gICAgICAgICAgIjAuMDA2NDA3LCAwLjAwNjUxOSwgMC4wMDY1MzIsIDAuMDA2NTM4LCAwLjAwNjU0MiwgMC4wMDY1NDQsIDAuMDA2NTQ3IiwgXAotICAgICAgICAgICIwLjAwNjM2OCwgMC4wMDY1MDQsIDAuMDA2NTI2LCAwLjAwNjUzMywgMC4wMDY1MzgsIDAuMDA2NTQxLCAwLjAwNjU0MyIsIFwKLSAgICAgICAgICAiMC4wMDYzNDUsIDAuMDA2NDk2LCAwLjAwNjUyLCAwLjAwNjUyOCwgMC4wMDY1MzcsIDAuMDA2NTQsIDAuMDA2NTQ0IiwgXAotICAgICAgICAgICIwLjAwNjMxOSwgMC4wMDY0OCwgMC4wMDY1MTEsIDAuMDA2NTIxLCAwLjAwNjUzMSwgMC4wMDY1MzYsIDAuMDA2NTQiLCBcCi0gICAgICAgICAgIjAuMDA2MzA3LCAwLjAwNjQ2NywgMC4wMDY1MDMsIDAuMDA2NTEzLCAwLjAwNjUyNywgMC4wMDY1MzIsIDAuMDA2NTM3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQwNzUsIDAuMDA0MDk1LCAwLjAwNDA5NiwgMC4wMDQxLCAwLjAwNDA5NywgMC4wMDQwODcsIDAuMDA0MDgyIiwgXAotICAgICAgICAgICIwLjAwMzk5NiwgMC4wMDQwNzYsIDAuMDA0MDg0LCAwLjAwNDA4NiwgMC4wMDQwOTIsIDAuMDA0MDg4LCAwLjAwNDA4MiIsIFwKLSAgICAgICAgICAiMC4wMDM5MzcsIDAuMDA0MDUyLCAwLjAwNDA3LCAwLjAwNDA3NiwgMC4wMDQwODEsIDAuMDA0MDgsIDAuMDA0MDgzIiwgXAotICAgICAgICAgICIwLjAwMzkwNCwgMC4wMDQwMzMsIDAuMDA0MDYsIDAuMDA0MDY2LCAwLjAwNDA3MywgMC4wMDQwNzcsIDAuMDA0MDc2IiwgXAotICAgICAgICAgICIwLjAwMzg3NCwgMC4wMDQwMTQsIDAuMDA0MDQ3LCAwLjAwNDA1NSwgMC4wMDQwNjQsIDAuMDA0MDcsIDAuMDA0MDczIiwgXAotICAgICAgICAgICIwLjAwMzg1LCAwLjAwMzk4OCwgMC4wMDQwMjgsIDAuMDA0MDQyLCAwLjAwNDA1NCwgMC4wMDQwNTksIDAuMDA0MDYzIiwgXAotICAgICAgICAgICIwLjAwMzg0OSwgMC4wMDM5NjgsIDAuMDA0MDEzLCAwLjAwNDAyOSwgMC4wMDQwNDUsIDAuMDA0MDUyLCAwLjAwNDA1NyIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IE9BSTMyWDQgKgotICogLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoT0FJMzJYNCkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjQ3OTczMjsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQTApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMzMyMTYyOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMzMwNDU1OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMzMyMTYyOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTIyNCwgMC4wMDEyMjQsIDAuMDAxMjIzLCAwLjAwMTIyMywgMC4wMDEyMjIsIDAuMDAxMjIyLCAwLjAwMTIyMiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTIyOCwgMC4wMDEyMjksIDAuMDAxMjI4LCAwLjAwMTIyOCwgMC4wMDEyMjgsIDAuMDAxMjMsIDAuMDAxMjMiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEExKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDMyNjYxNjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDMyNTQ0MTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDMyNjYxNjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDEyMjUsIDAuMDAxMjI0LCAwLjAwMTIyNCwgMC4wMDEyMjQsIDAuMDAxMjIzLCAwLjAwMTIyMywgMC4wMDEyMjMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDEyMjcsIDAuMDAxMjI4LCAwLjAwMTIyNywgMC4wMDEyMjcsIDAuMDAxMjI3LCAwLjAwMTIyOCwgMC4wMDEyMjgiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEEyKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDI5OTUwMjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDI5OTUwMjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDI5ODMwMzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDEyMjUsIDAuMDAxMjI1LCAwLjAwMTIyNCwgMC4wMDEyMjQsIDAuMDAxMjI0LCAwLjAwMTIyNCwgMC4wMDEyMjQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDEyMjgsIDAuMDAxMjI3LCAwLjAwMTIyNywgMC4wMDEyMjcsIDAuMDAxMjI3LCAwLjAwMTIyOCwgMC4wMDEyMjgiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDMxOTcxNDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDMxNzI4NzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDMxOTcxNDsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDIwNjQsIDAuMDAyMDY0LCAwLjAwMjA2NCwgMC4wMDIwNjUsIDAuMDAyMDYzLCAwLjAwMjA2NCwgMC4wMDIwNjMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDEzOSwgMC4wMDEzOTIsIDAuMDAxMzkyLCAwLjAwMTM5MywgMC4wMDEzOTIsIDAuMDAxMzkyLCAwLjAwMTM5MiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQjEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMzAzNDc0OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMzAzNDc0OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMzAzNDY1OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjA2MywgMC4wMDIwNjIsIDAuMDAyMDY0LCAwLjAwMjA2MSwgMC4wMDIwNjIsIDAuMDAyMDYxLCAwLjAwMjA2MyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTM5LCAwLjAwMTM5LCAwLjAwMTM5LCAwLjAwMTM5LCAwLjAwMTM5LCAwLjAwMTM4OSwgMC4wMDEzOTEiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4xOTQ5MzQ7Ci0gICAgZnVuY3Rpb24gOiAiKCEoKEIwK0IxKSAoKEEwK0ExKStBMikpKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTAiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTM3NDMzLCAwLjUzNzc1OSwgMC45MzU0OCwgMS4yMTkwNiwgMS42NzI5NywgMi4wNjk4OSwgMi42Mzc1OSIsIFwKLSAgICAgICAgICAiMC4xNDg3NjYsIDAuNTQ5MzA1LCAwLjk0NzAyNSwgMS4yMzA1NywgMS42ODQ3NSwgMi4wODE5LCAyLjY0OTM1IiwgXAotICAgICAgICAgICIwLjE2MTU2NywgMC41NjIxMTEsIDAuOTYwMDEsIDEuMjQzNTYsIDEuNjk3NzcsIDIuMDk0NDgsIDIuNjYyMTEiLCBcCi0gICAgICAgICAgIjAuMTczMzA1LCAwLjU3Mzk3NiwgMC45NzE2MTksIDEuMjU1NDQsIDEuNzA5NzUsIDIuMTA2MjcsIDIuNjczOTYiLCBcCi0gICAgICAgICAgIjAuMTg0Njc5LCAwLjU4NTUyOSwgMC45ODMzNjEsIDEuMjY3MDIsIDEuNzIwNzQsIDIuMTE4NTUsIDIuNjg1NTgiLCBcCi0gICAgICAgICAgIjAuMjAyMDY1LCAwLjYwMjg3LCAxLjAwMDYxLCAxLjI4NDU5LCAxLjczODksIDIuMTM1NTYsIDIuNzAyOTkiLCBcCi0gICAgICAgICAgIjAuMjE2OTI2LCAwLjYxNzg2NywgMS4wMTU2NiwgMS4yOTkzNCwgMS43NTM0MiwgMi4xNTA4OCwgMi43MTc3NSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIyNTIxOCwgMC45ODg3NjIsIDEuNzUyMzcsIDIuMjk3NDQsIDMuMTcwNTQsIDMuOTMzNzgsIDUuMDIzODIiLCBcCi0gICAgICAgICAgIjAuMjI1MiwgMC45ODg4NDYsIDEuNzUyMzMsIDIuMjk3NywgMy4xNzAxNCwgMy45MzM0MywgNS4wMjM5IiwgXAotICAgICAgICAgICIwLjIyNTIxNywgMC45ODg2OSwgMS43NTIzLCAyLjI5NzY2LCAzLjE3MDUxLCAzLjkzMzc4LCA1LjAyNDQ5IiwgXAotICAgICAgICAgICIwLjIyNTIyMiwgMC45ODg2OSwgMS43NTIyOCwgMi4yOTc3LCAzLjE3MDE5LCAzLjkzMzgxLCA1LjAyNDQzIiwgXAotICAgICAgICAgICIwLjIyNTY0MywgMC45ODg4MTgsIDEuNzUyNDEsIDIuMjk3NywgMy4xNzAwMywgMy45MzMzOSwgNS4wMjM4NCIsIFwKLSAgICAgICAgICAiMC4yMjc1OTgsIDAuOTg4ODA3LCAxLjc1MjMzLCAyLjI5NzczLCAzLjE3MDAyLCAzLjkzMzMzLCA1LjAyNDQ2IiwgXAotICAgICAgICAgICIwLjIzMDIzMiwgMC45ODg4MDUsIDEuNzUyMzcsIDIuMjk3ODQsIDMuMTcwMTksIDMuOTMzMjgsIDUuMDI0MzUiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTQxOSwgMC40MDgzOTgsIDAuNjk5MzA2LCAwLjkwNjczOCwgMS4yMzc5NCwgMS41Mjg0NiwgMS45NDI3NyIsIFwKLSAgICAgICAgICAiMC4xMjU4MzUsIDAuNDIwMDQyLCAwLjcxMDk1MywgMC45MTg0NzIsIDEuMjUwMTMsIDEuNTQwMjIsIDEuOTU0NSIsIFwKLSAgICAgICAgICAiMC4xNDA1MjUsIDAuNDM0NzYxLCAwLjcyNTcxOSwgMC45MzMwOTIsIDEuMjY0NCwgMS41NTQ3NiwgMS45Njk1OCIsIFwKLSAgICAgICAgICAiMC4xNTQ2NzEsIDAuNDQ5MDQzLCAwLjczOTk3NywgMC45NDcxMDIsIDEuMjc5MDEsIDEuNTY4NTUsIDEuOTg0MDYiLCBcCi0gICAgICAgICAgIjAuMTY4Mjc2LCAwLjQ2Mjc5LCAwLjc1MzU1NywgMC45NjA4NzcsIDEuMjkyODgsIDEuNTgyNDMsIDEuOTk2NjgiLCBcCi0gICAgICAgICAgIjAuMTkwMDQyLCAwLjQ4NDU4OSwgMC43NzU0OTUsIDAuOTgzMDY1LCAxLjMxNDI5LCAxLjYwNDc4LCAyLjAxOTQ0IiwgXAotICAgICAgICAgICIwLjIwODg4MSwgMC41MDM0MDUsIDAuNzk0MzY2LCAxLjAwMTc2LCAxLjMzMzMyLCAxLjYyMzEyLCAyLjAzNzgzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTUzMjEsIDAuNzA5NTE0LCAxLjI2NDQ4LCAxLjY1OTkxLCAyLjI5NzMxLCAyLjg1NTQsIDMuNjUyODUiLCBcCi0gICAgICAgICAgIjAuMTUzMjAyLCAwLjcwOTExOSwgMS4yNjQ0MiwgMS42NTk4MywgMi4yOTcxOCwgMi44NTQ2LCAzLjY1MjQxIiwgXAotICAgICAgICAgICIwLjE1MzA1MiwgMC43MDk1MDMsIDEuMjY0MTcsIDEuNjYwNSwgMi4yOTcxMywgMi44NTU4OCwgMy42NTEyNiIsIFwKLSAgICAgICAgICAiMC4xNTMxOTcsIDAuNzA5MDc0LCAxLjI2NDEyLCAxLjY1OTgyLCAyLjI5Njc5LCAyLjg1NTE5LCAzLjY1MjIzIiwgXAotICAgICAgICAgICIwLjE1MzYwNSwgMC43MDkwNzMsIDEuMjYzNTUsIDEuNjYwMjYsIDIuMjk3OTcsIDIuODU1NTIsIDMuNjUyMjgiLCBcCi0gICAgICAgICAgIjAuMTU2MDQyLCAwLjcwOTQ2OCwgMS4yNjM4NywgMS42NjAyMywgMi4yOTc5MywgMi44NTUzMywgMy42NTI3IiwgXAotICAgICAgICAgICIwLjE1OTU3NSwgMC43MDk0NzIsIDEuMjY0LCAxLjY2MDAyLCAyLjI5NzA2LCAyLjg1NTcsIDMuNjUxNjQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTMwNjc0LCAwLjUzMDkyNCwgMC45Mjg3NjcsIDEuMjEyNzIsIDEuNjY2MDYsIDIuMDY0MTgsIDIuNjMwNyIsIFwKLSAgICAgICAgICAiMC4xNDEwMTMsIDAuNTQxNDkzLCAwLjkzOTI4NywgMS4yMjMxOCwgMS42NzcwOCwgMi4wNzQ1OSwgMi42NDEyIiwgXAotICAgICAgICAgICIwLjE1MzQxLCAwLjU1NDA2NCwgMC45NTE2MzYsIDEuMjM1NjYsIDEuNjg5MTgsIDIuMDg2NzEsIDIuNjUzNDYiLCBcCi0gICAgICAgICAgIjAuMTY1NDk4LCAwLjU2NjE4OCwgMC45NjQwMTUsIDEuMjQ3NTksIDEuNzAxMzgsIDIuMDk4NDYsIDIuNjY2MDUiLCBcCi0gICAgICAgICAgIjAuMTc3MjcsIDAuNTc4MDU5LCAwLjk3NTg5NywgMS4yNTk4NiwgMS43MTMzNiwgMi4xMTA4NywgMi42NzgxNSIsIFwKLSAgICAgICAgICAiMC4xOTYxMTIsIDAuNTk3MDEzLCAwLjk5NTAzNSwgMS4yNzg2OSwgMS43MzI4OSwgMi4xMjk4NSwgMi42OTY5MiIsIFwKLSAgICAgICAgICAiMC4yMTI1LCAwLjYxMzc0OSwgMS4wMTE0MSwgMS4yOTUyNiwgMS43NDkyMiwgMi4xNDY2MiwgMi43MTM0NyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIyNTIzMiwgMC45ODg1NywgMS43NTIzOSwgMi4yOTczMywgMy4xNzAyNCwgMy45MzMxLCA1LjAyNDMiLCBcCi0gICAgICAgICAgIjAuMjI1MjMsIDAuOTg4ODIyLCAxLjc1MjI0LCAyLjI5Nzc3LCAzLjE3MDIzLCAzLjkzMzY4LCA1LjAyMzkxIiwgXAotICAgICAgICAgICIwLjIyNTIwNSwgMC45ODg3NDQsIDEuNzUyMjgsIDIuMjk3NDIsIDMuMTY5ODYsIDMuOTMzNTYsIDUuMDI0NDEiLCBcCi0gICAgICAgICAgIjAuMjI1MzQ2LCAwLjk4ODg0NCwgMS43NTIzNCwgMi4yOTc2NiwgMy4xNjk5NSwgMy45MzM2NiwgNS4wMjQxNiIsIFwKLSAgICAgICAgICAiMC4yMjY0NDksIDAuOTg4OCwgMS43NTI1OCwgMi4yOTc0MiwgMy4xNzAyMywgMy45MzMzOSwgNS4wMjQyNiIsIFwKLSAgICAgICAgICAiMC4yMjk5MjksIDAuOTg4NzM1LCAxLjc1MjM5LCAyLjI5Nzc1LCAzLjE3MDM1LCAzLjkzMzg5LCA1LjAyNDEiLCBcCi0gICAgICAgICAgIjAuMjM0NDM2LCAwLjk4ODc3MiwgMS43NTIyNiwgMi4yOTc3NiwgMy4xNzAwMSwgMy45MzM0NCwgNS4wMjMwOSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwNTY4NSwgMC4zOTc4NDgsIDAuNjg4MzM2LCAwLjg5NTQ4MSwgMS4yMjcyOCwgMS41MTY5OSwgMS45MzA1MiIsIFwKLSAgICAgICAgICAiMC4xMTc2ODcsIDAuNDA5OTA3LCAwLjcwMDE5NiwgMC45MDc2NCwgMS4yMzk2MywgMS41MjkwOCwgMS45NDM3NiIsIFwKLSAgICAgICAgICAiMC4xMzIzNjcsIDAuNDI0NzY3LCAwLjcxNTM0MywgMC45MjI3MTEsIDEuMjU0MDQsIDEuNTQzODEsIDEuOTU4ODIiLCBcCi0gICAgICAgICAgIjAuMTQ2NDMyLCAwLjQzOTA2MywgMC43Mjk1NjgsIDAuOTM3MDg1LCAxLjI2ODI1LCAxLjU1ODQ3LCAxLjk3Mjc0IiwgXAotICAgICAgICAgICIwLjE2MDA4NiwgMC40NTI4MzEsIDAuNzQzMjIyLCAwLjk1MDg2OCwgMS4yODIxNywgMS41NzIzNCwgMS45ODU5MyIsIFwKLSAgICAgICAgICAiMC4xODE2NTYsIDAuNDc0NDYzLCAwLjc2NTAwOCwgMC45NzIyNSwgMS4zMDQwNCwgMS41OTM4NCwgMi4wMDg0MSIsIFwKLSAgICAgICAgICAiMC4yMDAzNTMsIDAuNDkzMzY4LCAwLjc4MzgzNiwgMC45OTEzNTMsIDEuMzIzMiwgMS42MTI2NiwgMi4wMjc0MyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE0Mjk0MywgMC42OTg0ODcsIDEuMjUzMTQsIDEuNjQ4NCwgMi4yODI2NiwgMi44MzY1LCAzLjYyODE3IiwgXAotICAgICAgICAgICIwLjE0MjcwOSwgMC42OTg0MzcsIDEuMjUyNjIsIDEuNjQ4MzksIDIuMjgyNjIsIDIuODM2MjQsIDMuNjI4NjUiLCBcCi0gICAgICAgICAgIjAuMTQyNjkxLCAwLjY5ODQzNCwgMS4yNTI1NywgMS42NDg3OCwgMi4yODE2MiwgMi44MzY2OSwgMy42Mjg2OSIsIFwKLSAgICAgICAgICAiMC4xNDI3NDYsIDAuNjk4MjM2LCAxLjI1MzE2LCAxLjY0ODkzLCAyLjI4MTU5LCAyLjgzNjUxLCAzLjYyODM3IiwgXAotICAgICAgICAgICIwLjE0MzIzNiwgMC42OTgzMSwgMS4yNTMwNCwgMS42NDg5MSwgMi4yODI3MywgMi44MzY1MywgMy42Mjg1MSIsIFwKLSAgICAgICAgICAiMC4xNDYxNDUsIDAuNjk4MjI0LCAxLjI1MjczLCAxLjY0ODUyLCAyLjI4MjE4LCAyLjgzNjc4LCAzLjYyODY4IiwgXAotICAgICAgICAgICIwLjE1MDI0NiwgMC42OTgyMjMsIDEuMjUyOTcsIDEuNjQ4MzIsIDIuMjgyMzQsIDIuODM4NDcsIDMuNjI4NjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTIiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTE1MDM2LCAwLjUxNTM5OSwgMC45MTI5NTgsIDEuMTk2OTgsIDEuNjUwNDgsIDIuMDQ4MDcsIDIuNjE0NyIsIFwKLSAgICAgICAgICAiMC4xMjQyNTgsIDAuNTI0NzYyLCAwLjkyMjY0MywgMS4yMDYxOSwgMS42NjAzNiwgMi4wNTgwNywgMi42MjQ4IiwgXAotICAgICAgICAgICIwLjEzNjAzNywgMC41MzY4NzgsIDAuOTM0NjkxLCAxLjIxODI5LCAxLjY3MjExLCAyLjA2OTYsIDIuNjM3MTYiLCBcCi0gICAgICAgICAgIjAuMTQ4MjkzLCAwLjU0OTMyOCwgMC45NDcxODIsIDEuMjMwNzgsIDEuNjg1MTIsIDIuMDgyNjYsIDIuNjQ4NzQiLCBcCi0gICAgICAgICAgIjAuMTYwMTEsIDAuNTYxMTc1LCAwLjk1ODc4MiwgMS4yNDI2NiwgMS42OTY3OSwgMi4wOTQ0MSwgMi42NjA3MiIsIFwKLSAgICAgICAgICAiMC4xODAyOSwgMC41ODA1NjMsIDAuOTc4NTEsIDEuMjYyMjcsIDEuNzE2MSwgMi4xMTQwNSwgMi42ODAxNiIsIFwKLSAgICAgICAgICAiMC4xOTc3NTIsIDAuNTk3Njc0LCAwLjk5NTYxOSwgMS4yNzk2LCAxLjczMzQ4LCAyLjEzMDQ1LCAyLjY5NzcyIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjI1MjUyLCAwLjk4ODg1NywgMS43NTIwNywgMi4yOTc3MywgMy4xNzAwMiwgMy45MzM4NSwgNS4wMjQzMiIsIFwKLSAgICAgICAgICAiMC4yMjUxOCwgMC45ODg4MTYsIDEuNzUyMjgsIDIuMjk3NjQsIDMuMTcwMTIsIDMuOTMzNzgsIDUuMDI0MzgiLCBcCi0gICAgICAgICAgIjAuMjI0MzcxLCAwLjk4ODc5MiwgMS43NTIzNywgMi4yOTc0OSwgMy4xNzAyMywgMy45MzM1OCwgNS4wMjM4OCIsIFwKLSAgICAgICAgICAiMC4yMjU0MzcsIDAuOTg4Nzk1LCAxLjc1MjQsIDIuMjk3NzIsIDMuMTcwMjQsIDMuOTMzMjYsIDUuMDI0MjYiLCBcCi0gICAgICAgICAgIjAuMjI4NTgxLCAwLjk4ODc5NCwgMS43NTIwMywgMi4yOTc1OCwgMy4xNzAzNSwgMy45MzM2MiwgNS4wMjM4MiIsIFwKLSAgICAgICAgICAiMC4yMzU4NTMsIDAuOTg4ODY3LCAxLjc1MjE1LCAyLjI5NzcxLCAzLjE3MDEyLCAzLjkzMzAxLCA1LjAyMzk1IiwgXAotICAgICAgICAgICIwLjI0NDE3MSwgMC45ODg4NjQsIDEuNzUyMjQsIDIuMjk3NTQsIDMuMTcwMjEsIDMuOTMzNCwgNS4wMjQzNSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5NTc4LCAwLjM4OTY3NCwgMC42ODI3NjMsIDAuODkyMDA4LCAxLjIyNjQ4LCAxLjUxOTMyLCAxLjkzNzc3IiwgXAotICAgICAgICAgICIwLjEwODAzNywgMC40MDIyODYsIDAuNjk1NDM5LCAwLjkwNDU1MiwgMS4yMzk1MSwgMS41MzE5LCAxLjk1MDE5IiwgXAotICAgICAgICAgICIwLjEyMjcwMSwgMC40MTcyMjEsIDAuNzEwMjcsIDAuOTE5NTMsIDEuMjUzOTQsIDEuNTQ2OTEsIDEuOTY1MjgiLCBcCi0gICAgICAgICAgIjAuMTM2NjI1LCAwLjQzMTM1OCwgMC43MjQ1OTYsIDAuOTMzODEzLCAxLjI2ODksIDEuNTYxMjEsIDEuOTc5NzMiLCBcCi0gICAgICAgICAgIjAuMTUwMjk5LCAwLjQ0NTM2LCAwLjczODYwOCwgMC45NDc2ODksIDEuMjgyMjUsIDEuNTc1MTgsIDEuOTkzMzMiLCBcCi0gICAgICAgICAgIjAuMTcxNTcsIDAuNDY2ODksIDAuNzYwMTM0LCAwLjk2OTI1OCwgMS4zMDQxNywgMS41OTY5NywgMi4wMTUyMiIsIFwKLSAgICAgICAgICAiMC4xOTAzNjEsIDAuNDg1Njc5LCAwLjc3ODkwOCwgMC45ODgxNjYsIDEuMzIzMTMsIDEuNjE2NDEsIDIuMDMzNDciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMzI2NjMsIDAuNjkyNzIyLCAxLjI1Mzc3LCAxLjY1MTkzLCAyLjMwMzU4LCAyLjg1MTE4LCAzLjY1NTU4IiwgXAotICAgICAgICAgICIwLjEzMjg5NiwgMC42OTI0OTEsIDEuMjUyMTYsIDEuNjU2OCwgMi4yOTEwMywgMi44NjkwNywgMy42NTMzNyIsIFwKLSAgICAgICAgICAiMC4xMzI2NjcsIDAuNjkyMjAzLCAxLjI1MTU4LCAxLjY1MTg3LCAyLjMwMTI4LCAyLjg1NDk4LCAzLjY1NDE3IiwgXAotICAgICAgICAgICIwLjEzMjc1MywgMC42OTIxODEsIDEuMjUyMjcsIDEuNjUxNDUsIDIuMjk0NzIsIDIuODUxNDIsIDMuNjY4NDIiLCBcCi0gICAgICAgICAgIjAuMTMzNjMsIDAuNjkyMzU0LCAxLjI1MjAyLCAxLjY1MzkzLCAyLjMwMzMzLCAyLjg1NTI1LCAzLjY2OTI0IiwgXAotICAgICAgICAgICIwLjEzNzAzNSwgMC42OTIxOSwgMS4yNTI4NiwgMS42NTUzMSwgMi4yOTA3MSwgMi44NjI2MywgMy42NTQyMiIsIFwKLSAgICAgICAgICAiMC4xNDE0MjksIDAuNjkyNDM3LCAxLjI1MjEzLCAxLjY1NjU1LCAyLjI5NjA3LCAyLjg1MzcxLCAzLjY2ODY1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2NzE4NCwgMC4zMjgxMjgsIDAuNTg4NjQ4LCAwLjc3NDk2MywgMS4wNzI3LCAxLjMzMzM5LCAxLjcwNTc0IiwgXAotICAgICAgICAgICIwLjA3ODcwNCwgMC4zMzk3NCwgMC42MDA2LCAwLjc4NjcyMSwgMS4wODQ0NCwgMS4zNDUyMywgMS43MTc2OCIsIFwKLSAgICAgICAgICAiMC4wOTE2MDYsIDAuMzUzMDc3LCAwLjYxMzY1NCwgMC43OTk3ODIsIDEuMDk3NjksIDEuMzU4MjQsIDEuNzMwNjQiLCBcCi0gICAgICAgICAgIjAuMTAzOTc1LCAwLjM2NTM4NywgMC42MjYyNSwgMC44MTIzNTEsIDEuMTEwMzEsIDEuMzcxLCAxLjc0MzI5IiwgXAotICAgICAgICAgICIwLjExNjMxNiwgMC4zNzc5OTYsIDAuNjM4NTYzLCAwLjgyNDgxOCwgMS4xMjI3OSwgMS4zODMzNSwgMS43NTU3MyIsIFwKLSAgICAgICAgICAiMC4xMzU3MTcsIDAuMzk3NzAyLCAwLjY1ODQ0MSwgMC44NDQ3NzcsIDEuMTQyNzcsIDEuNDAzMjYsIDEuNzc1NDgiLCBcCi0gICAgICAgICAgIjAuMTUxMzcsIDAuNDE1MDQ1LCAwLjY3NjA5NCwgMC44NjIyNywgMS4xNjA0MSwgMS40MjA4NSwgMS43OTMxNCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE1NTk4MywgMC42NjEyOTYsIDEuMTY5ODksIDEuNTMzNjEsIDIuMTE1NCwgMi42MjQ4MSwgMy4zNTIyNiIsIFwKLSAgICAgICAgICAiMC4xNTU5NzYsIDAuNjYxMTk3LCAxLjE2OTg5LCAxLjUzMzUzLCAyLjExNTcsIDIuNjI0NzMsIDMuMzUyNDYiLCBcCi0gICAgICAgICAgIjAuMTU2MzMyLCAwLjY2MTM1NywgMS4xNjk3NCwgMS41MzMyLCAyLjExNTUyLCAyLjYyNDYzLCAzLjM1MjQiLCBcCi0gICAgICAgICAgIjAuMTU4MjU3LCAwLjY2MTE4LCAxLjE2OTcxLCAxLjUzMzE5LCAyLjExNTQ3LCAyLjYyNDYyLCAzLjM1MzI1IiwgXAotICAgICAgICAgICIwLjE2MTM2NywgMC42NjEyODMsIDEuMTY5ODIsIDEuNTMzNTYsIDIuMTE1MjIsIDIuNjI0NywgMy4zNTIyOCIsIFwKLSAgICAgICAgICAiMC4xNjgxNzcsIDAuNjYxMTkyLCAxLjE2OTY3LCAxLjUzMzIyLCAyLjExNTY5LCAyLjYyNDUyLCAzLjM1MzAxIiwgXAotICAgICAgICAgICIwLjE3NTI4LCAwLjY2MTkxNiwgMS4xNjk2NywgMS41MzM0MiwgMi4xMTU1MywgMi42MjQ4NCwgMy4zNTMwNiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5Njg2MSwgMC4zOTA5OTMsIDAuNjgxODM5LCAwLjg4OTA3MiwgMS4yMjA2NSwgMS41MTA1NiwgMS45MjUzNSIsIFwKLSAgICAgICAgICAiMC4xMDcwMzksIDAuNDAxMzIsIDAuNjkyMTkyLCAwLjg5OTQyNywgMS4yMzExMywgMS41MjEyMiwgMS45MzUxMiIsIFwKLSAgICAgICAgICAiMC4xMjAwNTgsIDAuNDE0NTM3LCAwLjcwNTUzOSwgMC45MTI3NjgsIDEuMjQ0NjcsIDEuNTM0NzksIDEuOTQ5NDkiLCBcCi0gICAgICAgICAgIjAuMTMzMzEsIDAuNDI3ODA3LCAwLjcxODgxNywgMC45MjYyNTksIDEuMjU3NjQsIDEuNTQ3NTYsIDEuOTYyMzMiLCBcCi0gICAgICAgICAgIjAuMTQ3MTcyLCAwLjQ0MTA2OSwgMC43MzIyMTUsIDAuOTM5NTMzLCAxLjI3MTU0LCAxLjU2MTY2LCAxLjk3NjA5IiwgXAotICAgICAgICAgICIwLjE2ODc1OCwgMC40NjIwOTksIDAuNzU0NDIyLCAwLjk2MTc4LCAxLjI5MzMzLCAxLjU4MzQ1LCAxLjk5NjIzIiwgXAotICAgICAgICAgICIwLjE4NzcsIDAuNDgwNjUxLCAwLjc3MTU2NywgMC45NzkxMSwgMS4zMTA2MywgMS42MDA1NCwgMi4wMTUyMyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE1MzEzMywgMC43MDkxMzksIDEuMjY0MDEsIDEuNjU5NDQsIDIuMjkzNDMsIDIuODUwNSwgMy42NDk0MSIsIFwKLSAgICAgICAgICAiMC4xNTMwNTcsIDAuNzA5MTgzLCAxLjI2Mzk3LCAxLjY2MDIyLCAyLjI5Mzg3LCAyLjg1MDEyLCAzLjY0ODk0IiwgXAotICAgICAgICAgICIwLjE1MjM2NCwgMC43MDk0OSwgMS4yNjQ0NSwgMS42NTk5NiwgMi4yOTI1NCwgMi44NTIwNSwgMy42NTA0MiIsIFwKLSAgICAgICAgICAiMC4xNTM2NDMsIDAuNzA5MTY3LCAxLjI2NDQ1LCAxLjY2MDQ2LCAyLjI5MzM5LCAyLjg1MDE1LCAzLjY0OTA3IiwgXAotICAgICAgICAgICIwLjE1NjQ1LCAwLjcwOTE3OCwgMS4yNjM1NSwgMS42NTk0NiwgMi4yOTQxNSwgMi44NTAwNiwgMy42NDk5MSIsIFwKLSAgICAgICAgICAiMC4xNjQxNiwgMC43MDk0NjQsIDEuMjY0MTMsIDEuNjU5OSwgMi4yOTMyOSwgMi44NDkwNywgMy42NDk1NyIsIFwKLSAgICAgICAgICAiMC4xNzIyOTMsIDAuNzA5Mjg4LCAxLjI2Mzg2LCAxLjY1OTk3LCAyLjI5MzM2LCAyLjg0OTM5LCAzLjY0OTYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDYwODYyLCAwLjMyMTc3OSwgMC41ODI1NiwgMC43Njg2OTIsIDEuMDY2MzYsIDEuMzI3MTgsIDEuNjk5NDkiLCBcCi0gICAgICAgICAgIjAuMDcwOTg2LCAwLjMzMjI2MSwgMC41OTI4NSwgMC43NzkwMzQsIDEuMDc2ODgsIDEuMzM3NjgsIDEuNzEwMTciLCBcCi0gICAgICAgICAgIjAuMDgzNzc0LCAwLjM0NTE2MSwgMC42MDU5NjEsIDAuNzkyMTMxLCAxLjA4OTkzLCAxLjM1MDc1LCAxLjcyMjg3IiwgXAotICAgICAgICAgICIwLjA5NzMyNywgMC4zNTg1NTYsIDAuNjE5MTEzLCAwLjgwNTM3LCAxLjEwMzE1LCAxLjM2Mzg1LCAxLjczNjE2IiwgXAotICAgICAgICAgICIwLjExMDU1MiwgMC4zNzEzMjgsIDAuNjMyMTI4LCAwLjgxODM1NCwgMS4xMTYxNSwgMS4zNzY3NSwgMS43NDkxOSIsIFwKLSAgICAgICAgICAiMC4xMzE2MjIsIDAuMzkyMzUsIDAuNjUzMjAzLCAwLjgzOTIwOCwgMS4xMzcwOSwgMS4zOTc4MiwgMS43NzAxNiIsIFwKLSAgICAgICAgICAiMC4xNDgzNTksIDAuNDEwNTQ0LCAwLjY3MTQ4MiwgMC44NTc1NjEsIDEuMTU1NjQsIDEuNDE2MTIsIDEuNzg4NTIiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNTU5NzYsIDAuNjYxMjMsIDEuMTY5NzEsIDEuNTMzNTMsIDIuMTE1NjEsIDIuNjI1MTEsIDMuMzUzMyIsIFwKLSAgICAgICAgICAiMC4xNTU5MDcsIDAuNjYxMjc4LCAxLjE2OTg3LCAxLjUzMzU2LCAyLjExNTY3LCAyLjYyNDc2LCAzLjM1MjQyIiwgXAotICAgICAgICAgICIwLjE1NzcyNiwgMC42NjExNzQsIDEuMTY5NjgsIDEuNTMzMTksIDIuMTE1NDEsIDIuNjI0OCwgMy4zNTMxMyIsIFwKLSAgICAgICAgICAiMC4xNjIxNTgsIDAuNjYxMjY1LCAxLjE2OTg5LCAxLjUzMzU0LCAyLjExNTM5LCAyLjYyNTA0LCAzLjM1MjIxIiwgXAotICAgICAgICAgICIwLjE2ODY1NSwgMC42NjEyNDksIDEuMTY5NjksIDEuNTMzMzUsIDIuMTE1NCwgMi42MjUxNiwgMy4zNTMxMSIsIFwKLSAgICAgICAgICAiMC4xODA4ODYsIDAuNjYxMjU4LCAxLjE2OTk1LCAxLjUzMzU4LCAyLjExNTQxLCAyLjYyNDg1LCAzLjM1MjY1IiwgXAotICAgICAgICAgICIwLjE5Mjk3MSwgMC42NjI2MzksIDEuMTY5OTEsIDEuNTMzMTcsIDIuMTE1NTMsIDIuNjI0NDYsIDMuMzUyNjciKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODc0MjQsIDAuMzgyODMxLCAwLjY3NTQ1LCAwLjg4NDAzMywgMS4yMTc4MywgMS41MDkzNSwgMS45MjU4NCIsIFwKLSAgICAgICAgICAiMC4wOTgwMDMsIDAuMzkzNzg1LCAwLjY4NjM2NSwgMC44OTQ5NDIsIDEuMjI4MzgsIDEuNTIwMDMsIDEuOTM3NjciLCBcCi0gICAgICAgICAgIjAuMTEwOTY2LCAwLjQwNjk4OCwgMC43MDAwMjUsIDAuOTA4NzE5LCAxLjI0MjE2LCAxLjUzNDAyLCAxLjk1MTIiLCBcCi0gICAgICAgICAgIjAuMTI0NjMzLCAwLjQyMDgzOCwgMC43MTM1MzIsIDAuOTIyNDUxLCAxLjI1NTY4LCAxLjU0OCwgMS45NjQyNyIsIFwKLSAgICAgICAgICAiMC4xMzc4NTgsIDAuNDMzNzY5LCAwLjcyNjQyLCAwLjkzNDk5LCAxLjI2OTA0LCAxLjU2MTAxLCAxLjk3ODA1IiwgXAotICAgICAgICAgICIwLjE1OTM3NCwgMC40NTU3OTcsIDAuNzQ4NTUxLCAwLjk1NiwgMS4yODk3MSwgMS41ODE4MywgMS45OTgxMSIsIFwKLSAgICAgICAgICAiMC4xNzg0NTUsIDAuNDcyOTA3LCAwLjc2NTY3LCAwLjk3NDUxOCwgMS4zMDgxNCwgMS41OTk5NCwgMi4wMTcyMSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE0Mzg5NywgMC43MDMyMjQsIDEuMjYwODgsIDEuNjU5MjcsIDIuMzA0MDMsIDIuODYzNzIsIDMuNjU4OTYiLCBcCi0gICAgICAgICAgIjAuMTQzNzU1LCAwLjcwMjc2NCwgMS4yNjE1LCAxLjY1OTczLCAyLjI5NzY0LCAyLjg1NTM3LCAzLjY1OTI1IiwgXAotICAgICAgICAgICIwLjE0MzA3MSwgMC43MDI5MDMsIDEuMjYxMDMsIDEuNjU5ODcsIDIuMjk2OTEsIDIuODYyODIsIDMuNjU5MjQiLCBcCi0gICAgICAgICAgIjAuMTQ0NzI5LCAwLjcwMjg2LCAxLjI2MSwgMS42NTk4MiwgMi4yOTcwNCwgMi44Njg3NSwgMy42NjQxIiwgXAotICAgICAgICAgICIwLjE0ODE2LCAwLjcwMjU1NSwgMS4yNjEwMiwgMS42NTg5LCAyLjI5ODk5LCAyLjg1NTMyLCAzLjY1ODEyIiwgXAotICAgICAgICAgICIwLjE1NjUyNSwgMC43MDI4NywgMS4yNjA3NSwgMS42NTk3MSwgMi4zMDE0OSwgMi44NTU4NiwgMy42NTg5NSIsIFwKLSAgICAgICAgICAiMC4xNjU1MDYsIDAuNzAzMDE2LCAxLjI2MTAxLCAxLjY1OTI4LCAyLjMwMTAxLCAyLjg2NjU0LCAzLjY2ODUzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEyNTE4LCAwLjAxMjUxNiwgMC4wMTI1MSwgMC4wMTI1MDUsIDAuMDEyNSwgMC4wMTI0OTQsIDAuMDEyNDgxIiwgXAotICAgICAgICAgICIwLjAxMjQ3OSwgMC4wMTI0ODMsIDAuMDEyNDc3LCAwLjAxMjQ3NSwgMC4wMTI0NjcsIDAuMDEyNDYzLCAwLjAxMjQ1NCIsIFwKLSAgICAgICAgICAiMC4wMTI0NTUsIDAuMDEyNDcxLCAwLjAxMjQ3LCAwLjAxMjQ2NywgMC4wMTI0NTksIDAuMDEyNDU1LCAwLjAxMjQ0NyIsIFwKLSAgICAgICAgICAiMC4wMTI0MzcsIDAuMDEyNDYzLCAwLjAxMjQ2MywgMC4wMTI0NTksIDAuMDEyNDUyLCAwLjAxMjQ1MSwgMC4wMTI0MzgiLCBcCi0gICAgICAgICAgIjAuMDEyNDI2LCAwLjAxMjQ1OCwgMC4wMTI0NiwgMC4wMTI0NTcsIDAuMDEyNDUsIDAuMDEyNDQ3LCAwLjAxMjQzNyIsIFwKLSAgICAgICAgICAiMC4wMTI0MTMsIDAuMDEyNDUsIDAuMDEyNDUzLCAwLjAxMjQ1MSwgMC4wMTI0NDUsIDAuMDEyNDQzLCAwLjAxMjQzOSIsIFwKLSAgICAgICAgICAiMC4wMTI0MDMsIDAuMDEyNDQ0LCAwLjAxMjQ1LCAwLjAxMjQ0OSwgMC4wMTI0NDYsIDAuMDEyNDQyLCAwLjAxMjQzNSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1MjI0LCAwLjAwNTIyMSwgMC4wMDUyMiwgMC4wMDUyMjEsIDAuMDA1MjE4LCAwLjAwNTIwNCwgMC4wMDUyMTQiLCBcCi0gICAgICAgICAgIjAuMDA1MTM4LCAwLjAwNTE0MywgMC4wMDUxNDMsIDAuMDA1MTM5LCAwLjAwNTEzOSwgMC4wMDUxNDEsIDAuMDA1MTI5IiwgXAotICAgICAgICAgICIwLjAwNTEwNSwgMC4wMDUxMTksIDAuMDA1MTE5LCAwLjAwNTExNywgMC4wMDUxMTQsIDAuMDA1MTE0LCAwLjAwNTEwOSIsIFwKLSAgICAgICAgICAiMC4wMDUwODMsIDAuMDA1MTA2LCAwLjAwNTEwNywgMC4wMDUxMDYsIDAuMDA1MTA2LCAwLjAwNTEwNCwgMC4wMDUxIiwgXAotICAgICAgICAgICIwLjAwNTA2NiwgMC4wMDUwOTcsIDAuMDA1MTAxLCAwLjAwNTEsIDAuMDA1MSwgMC4wMDUwOTcsIDAuMDA1MDk3IiwgXAotICAgICAgICAgICIwLjAwNTA0NywgMC4wMDUwODYsIDAuMDA1MDkyLCAwLjAwNTA5NSwgMC4wMDUwOTQsIDAuMDA1MDk1LCAwLjAwNTA4OSIsIFwKLSAgICAgICAgICAiMC4wMDUwMywgMC4wMDUwOCwgMC4wMDUwODksIDAuMDA1MDkyLCAwLjAwNTA5MiwgMC4wMDUwOSwgMC4wMDUwODkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTE1MjEsIDAuMDExNTE4LCAwLjAxMTUxMywgMC4wMTE1MDcsIDAuMDExNTAzLCAwLjAxMTQ5NSwgMC4wMTE0ODYiLCBcCi0gICAgICAgICAgIjAuMDExNDgyLCAwLjAxMTQ4NiwgMC4wMTE0OCwgMC4wMTE0NzQsIDAuMDExNDcxLCAwLjAxMTQ2NiwgMC4wMTE0NTgiLCBcCi0gICAgICAgICAgIjAuMDExNDU4LCAwLjAxMTQ3MywgMC4wMTE0NjksIDAuMDExNDY4LCAwLjAxMTQ2MiwgMC4wMTE0NTUsIDAuMDExNDQ0IiwgXAotICAgICAgICAgICIwLjAxMTQyNiwgMC4wMTE0NjYsIDAuMDExNDY2LCAwLjAxMTQ2NSwgMC4wMTE0NTUsIDAuMDExNDUyLCAwLjAxMTQ0MyIsIFwKLSAgICAgICAgICAiMC4wMTE0MjgsIDAuMDExNDYxLCAwLjAxMTQ2LCAwLjAxMTQ2MSwgMC4wMTE0NTIsIDAuMDExNDQ5LCAwLjAxMTQzOSIsIFwKLSAgICAgICAgICAiMC4wMTE0MTMsIDAuMDExNDU0LCAwLjAxMTQ1NSwgMC4wMTE0NTUsIDAuMDExNDQ4LCAwLjAxMTQ0NywgMC4wMTE0MzciLCBcCi0gICAgICAgICAgIjAuMDExNDAzLCAwLjAxMTQ0NiwgMC4wMTE0NTIsIDAuMDExNDUxLCAwLjAxMTQ0OCwgMC4wMTE0NDMsIDAuMDExNDM0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDM5MTYsIDAuMDAzOTE2LCAwLjAwMzkxNSwgMC4wMDM5MiwgMC4wMDM5MTIsIDAuMDAzODk5LCAwLjAwMzkwNSIsIFwKLSAgICAgICAgICAiMC4wMDM4ODgsIDAuMDAzOTA5LCAwLjAwMzkxMiwgMC4wMDM5MDksIDAuMDAzOTA4LCAwLjAwMzkxMiwgMC4wMDM5MDYiLCBcCi0gICAgICAgICAgIjAuMDAzODQ4LCAwLjAwMzg5OCwgMC4wMDM5MDUsIDAuMDAzOTA1LCAwLjAwMzkwNCwgMC4wMDM5MDQsIDAuMDAzOTAzIiwgXAotICAgICAgICAgICIwLjAwMzgxNywgMC4wMDM4ODgsIDAuMDAzODk5LCAwLjAwMzksIDAuMDAzOTAyLCAwLjAwMzkwMiwgMC4wMDM5MDIiLCBcCi0gICAgICAgICAgIjAuMDAzNzg3LCAwLjAwMzg3NywgMC4wMDM4OTMsIDAuMDAzODk2LCAwLjAwMzg5OSwgMC4wMDM4OTksIDAuMDAzODk5IiwgXAotICAgICAgICAgICIwLjAwMzc1MSwgMC4wMDM4NiwgMC4wMDM4ODEsIDAuMDAzODg4LCAwLjAwMzg5MywgMC4wMDM4OTMsIDAuMDAzODk1IiwgXAotICAgICAgICAgICIwLjAwMzcyMiwgMC4wMDM4NDcsIDAuMDAzODczLCAwLjAwMzg4MSwgMC4wMDM4ODcsIDAuMDAzODg5LCAwLjAwMzg5MiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEyIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMDQ5LCAwLjAxMDQ4OCwgMC4wMTA0ODEsIDAuMDEwNDc3LCAwLjAxMDQ3MywgMC4wMTA0NjYsIDAuMDEwNDU5IiwgXAotICAgICAgICAgICIwLjAxMDQzNCwgMC4wMTA0NTEsIDAuMDEwNDQ3LCAwLjAxMDQ0NCwgMC4wMTA0MzYsIDAuMDEwNDM0LCAwLjAxMDQyMSIsIFwKLSAgICAgICAgICAiMC4wMTAzOTUsIDAuMDEwNDMyLCAwLjAxMDQzMywgMC4wMTA0MzMsIDAuMDEwNDIzLCAwLjAxMDQyMSwgMC4wMTA0MTMiLCBcCi0gICAgICAgICAgIjAuMDEwMzY1LCAwLjAxMDQyMSwgMC4wMTA0MjYsIDAuMDEwNDI0LCAwLjAxMDQyLCAwLjAxMDQxNSwgMC4wMTA0MSIsIFwKLSAgICAgICAgICAiMC4wMTAzNDMsIDAuMDEwNDExLCAwLjAxMDQxOCwgMC4wMTA0MTgsIDAuMDEwNDEzLCAwLjAxMDQxMSwgMC4wMTA0MDUiLCBcCi0gICAgICAgICAgIjAuMDEwMzI2LCAwLjAxMDQsIDAuMDEwNDEsIDAuMDEwNDExLCAwLjAxMDQxMSwgMC4wMTA0MDgsIDAuMDEwNDAyIiwgXAotICAgICAgICAgICIwLjAxMDMxNSwgMC4wMTAzOTEsIDAuMDEwNDA0LCAwLjAxMDQwNywgMC4wMTA0MDIsIDAuMDEwNDAyLCAwLjAxMDM5NCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyNDYsIDAuMDAyNDc3LCAwLjAwMjQ3OSwgMC4wMDI0NzksIDAuMDAyNDc4LCAwLjAwMjQ3NywgMC4wMDI0NzYiLCBcCi0gICAgICAgICAgIjAuMDAyNDcxLCAwLjAwMjUzNywgMC4wMDI1NDYsIDAuMDAyNTQ3LCAwLjAwMjU1LCAwLjAwMjU1MiwgMC4wMDI1NTQiLCBcCi0gICAgICAgICAgIjAuMDAyNDMsIDAuMDAyNTQxLCAwLjAwMjU1NywgMC4wMDI1NjIsIDAuMDAyNTY2LCAwLjAwMjU2NiwgMC4wMDI1NyIsIFwKLSAgICAgICAgICAiMC4wMDIzODksIDAuMDAyNTMzLCAwLjAwMjU1NiwgMC4wMDI1NjIsIDAuMDAyNTY3LCAwLjAwMjU3MSwgMC4wMDI1NzIiLCBcCi0gICAgICAgICAgIjAuMDAyMzQ2LCAwLjAwMjUxOCwgMC4wMDI1NDgsIDAuMDAyNTU4LCAwLjAwMjU2NSwgMC4wMDI1NjksIDAuMDAyNTczIiwgXAotICAgICAgICAgICIwLjAwMjMsIDAuMDAyNSwgMC4wMDI1MzgsIDAuMDAyNTQ4LCAwLjAwMjU1OSwgMC4wMDI1NjQsIDAuMDAyNTY4IiwgXAotICAgICAgICAgICIwLjAwMjI2MiwgMC4wMDI0NzksIDAuMDAyNTI1LCAwLjAwMjU0LCAwLjAwMjU1MywgMC4wMDI1NiwgMC4wMDI1NjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDgzNDYsIDAuMDA4MzU3LCAwLjAwODM1OCwgMC4wMDgzNTgsIDAuMDA4MzU4LCAwLjAwODM1OSwgMC4wMDgzNTgiLCBcCi0gICAgICAgICAgIjAuMDA4MzMzLCAwLjAwODM3OCwgMC4wMDgzODMsIDAuMDA4Mzg1LCAwLjAwODM4NiwgMC4wMDgzODcsIDAuMDA4Mzg3IiwgXAotICAgICAgICAgICIwLjAwODI5OCwgMC4wMDgzNzUsIDAuMDA4Mzg1LCAwLjAwODM4NywgMC4wMDgzOSwgMC4wMDgzOTEsIDAuMDA4MzkzIiwgXAotICAgICAgICAgICIwLjAwODI3MiwgMC4wMDgzNjksIDAuMDA4MzgzLCAwLjAwODM4NywgMC4wMDgzOTEsIDAuMDA4MzkzLCAwLjAwODM5NSIsIFwKLSAgICAgICAgICAiMC4wMDgyNSwgMC4wMDgzNiwgMC4wMDgzNzgsIDAuMDA4Mzg0LCAwLjAwODM4OCwgMC4wMDgzOTEsIDAuMDA4MzkzIiwgXAotICAgICAgICAgICIwLjAwODIyNCwgMC4wMDgzMzksIDAuMDA4MzcsIDAuMDA4Mzc3LCAwLjAwODM4NCwgMC4wMDgzODgsIDAuMDA4MzkyIiwgXAotICAgICAgICAgICIwLjAwODIxLCAwLjAwODMzNiwgMC4wMDgzNjQsIDAuMDA4MzczLCAwLjAwODM4MiwgMC4wMDgzODYsIDAuMDA4MzkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNTIyMywgMC4wMDUyMjUsIDAuMDA1MjIyLCAwLjAwNTIyNSwgMC4wMDUyMjUsIDAuMDA1MjExLCAwLjAwNTIyNyIsIFwKLSAgICAgICAgICAiMC4wMDUxNDQsIDAuMDA1MTY3LCAwLjAwNTE2NywgMC4wMDUxNjYsIDAuMDA1MTY4LCAwLjAwNTE2NSwgMC4wMDUxNTgiLCBcCi0gICAgICAgICAgIjAuMDA1MTA0LCAwLjAwNTE0OSwgMC4wMDUxNTUsIDAuMDA1MTUzLCAwLjAwNTE1NCwgMC4wMDUxNTUsIDAuMDA1MTUzIiwgXAotICAgICAgICAgICIwLjAwNTA3MywgMC4wMDUxMzQsIDAuMDA1MTQ1LCAwLjAwNTE0NiwgMC4wMDUxNDcsIDAuMDA1MTQ1LCAwLjAwNTE0NiIsIFwKLSAgICAgICAgICAiMC4wMDUwNjQsIDAuMDA1MTI2LCAwLjAwNTEzOCwgMC4wMDUxNDIsIDAuMDA1MTQsIDAuMDA1MTQ0LCAwLjAwNTEzOCIsIFwKLSAgICAgICAgICAiMC4wMDUwNDMsIDAuMDA1MTEzLCAwLjAwNTEzMiwgMC4wMDUxMzYsIDAuMDA1MTM4LCAwLjAwNTE0LCAwLjAwNTEzNCIsIFwKLSAgICAgICAgICAiMC4wMDUwMzQsIDAuMDA1MTA0LCAwLjAwNTEyMSwgMC4wMDUxMjcsIDAuMDA1MTMxLCAwLjAwNTEzMywgMC4wMDUxMzIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDczMzcsIDAuMDA3MzU0LCAwLjAwNzM1NSwgMC4wMDczNTYsIDAuMDA3MzU2LCAwLjAwNzM1NiwgMC4wMDczNTYiLCBcCi0gICAgICAgICAgIjAuMDA3MzAyLCAwLjAwNzM3MSwgMC4wMDczNzksIDAuMDA3MzgxLCAwLjAwNzM4MiwgMC4wMDczODMsIDAuMDA3Mzg0IiwgXAotICAgICAgICAgICIwLjAwNzI1MywgMC4wMDczNjMsIDAuMDA3Mzc3LCAwLjAwNzM4MywgMC4wMDczODYsIDAuMDA3Mzg4LCAwLjAwNzM4OSIsIFwKLSAgICAgICAgICAiMC4wMDcyMTYsIDAuMDA3MzQ4LCAwLjAwNzM2OSwgMC4wMDczNzQsIDAuMDA3Mzc5LCAwLjAwNzM4MiwgMC4wMDczODQiLCBcCi0gICAgICAgICAgIjAuMDA3MTkyLCAwLjAwNzM0MSwgMC4wMDczNjYsIDAuMDA3MzczLCAwLjAwNzM4MSwgMC4wMDczODQsIDAuMDA3Mzg3IiwgXAotICAgICAgICAgICIwLjAwNzE2NiwgMC4wMDczMjQsIDAuMDA3MzU0LCAwLjAwNzM2NSwgMC4wMDczNzQsIDAuMDA3Mzc5LCAwLjAwNzM4MyIsIFwKLSAgICAgICAgICAiMC4wMDcxNTQsIDAuMDA3MzEsIDAuMDA3MzQ2LCAwLjAwNzM1OCwgMC4wMDczNjksIDAuMDA3Mzc1LCAwLjAwNzM4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQwMDEsIDAuMDA0MDE5LCAwLjAwNDAxOSwgMC4wMDQwMjQsIDAuMDA0MDEzLCAwLjAwNDAxNiwgMC4wMDQwMDkiLCBcCi0gICAgICAgICAgIjAuMDAzOTc1LCAwLjAwNDA1MSwgMC4wMDQwNTcsIDAuMDA0MDU5LCAwLjAwNDA2MywgMC4wMDQwNjIsIDAuMDA0MDYxIiwgXAotICAgICAgICAgICIwLjAwMzkyMiwgMC4wMDQwMzksIDAuMDA0MDU2LCAwLjAwNDA2LCAwLjAwNDA2MywgMC4wMDQwNjMsIDAuMDA0MDY2IiwgXAotICAgICAgICAgICIwLjAwMzg3NSwgMC4wMDQwMjEsIDAuMDA0MDQ2LCAwLjAwNDA1MiwgMC4wMDQwNTgsIDAuMDA0MDYzLCAwLjAwNDA2MiIsIFwKLSAgICAgICAgICAiMC4wMDM4NSwgMC4wMDQwMDcsIDAuMDA0MDM4LCAwLjAwNDA0OCwgMC4wMDQwNTQsIDAuMDA0MDU4LCAwLjAwNDA2MiIsIFwKLSAgICAgICAgICAiMC4wMDM4MDgsIDAuMDAzOTg0LCAwLjAwNDAyMSwgMC4wMDQwMzYsIDAuMDA0MDQ4LCAwLjAwNDA1MSwgMC4wMDQwNTciLCBcCi0gICAgICAgICAgIjAuMDAzNzg3LCAwLjAwMzk2MiwgMC4wMDQwMSwgMC4wMDQwMjUsIDAuMDA0MDM5LCAwLjAwNDA0NiwgMC4wMDQwNTIiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogT1IyWDQgKgotICogLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKE9SMlg0KSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMjA2NTc7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDg2NjM3MTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA4NjAyMzc7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwODY2MzcxOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDI3MSwgMC4wMDAyODcsIDAuMDAwMjkxLCAwLjAwMDI5MiwgMC4wMDAyOTMsIDAuMDAwMjk0LCAwLjAwMDI5NSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDMxMywgMC4wMDAzMTQsIDAuMDAwMzE0LCAwLjAwMDMxNCwgMC4wMDAzMTQsIDAuMDAwMzE0LCAwLjAwMDMxNCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwODg1MDI2OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDg4NDc5MzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA4ODUwMjY7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMDksIDAuMDAwMDksIDAuMDAwMDksIDAuMDAwMDksIDAuMDAwMDksIDAuMDAwMDksIDAuMDAwMDkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAzMiwgMC4wMDAzMiwgMC4wMDAzMiwgMC4wMDAzMiwgMC4wMDAzMiwgMC4wMDAzMiwgMC4wMDAzMiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjUyNzI4ODsKLSAgICBmdW5jdGlvbiA6ICIoQStCKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODg3MDgsIDAuMjE2NTIxLCAwLjM0MjA1NCwgMC40MzE2MDksIDAuNTc0OTAyLCAwLjcwMDI3MywgMC44NzkzMjkiLCBcCi0gICAgICAgICAgIjAuMTAwMTQ5LCAwLjIyODAyNCwgMC4zNTM1NDcsIDAuNDQzMTQyLCAwLjU4NjM5MiwgMC43MTE4MDUsIDAuODkwODQiLCBcCi0gICAgICAgICAgIjAuMTE1MTgxLCAwLjI0MzEwMywgMC4zNjg2NCwgMC40NTgyMjQsIDAuNjAxMzkzLCAwLjcyNjkwNSwgMC45MDU5OTUiLCBcCi0gICAgICAgICAgIjAuMTMwMzIyLCAwLjI1ODI1NiwgMC4zODM3ODgsIDAuNDczMzY0LCAwLjYxNjY2MywgMC43NDIwMjQsIDAuOTIxMDc4IiwgXAotICAgICAgICAgICIwLjE0NTMzMywgMC4yNzMyOTIsIDAuMzk4ODMyLCAwLjQ4ODM5OSwgMC42MzE2OTMsIDAuNzU3MDY3LCAwLjkzNjEyIiwgXAotICAgICAgICAgICIwLjE2OTA4OSwgMC4yOTY5NTYsIDAuNDIyNDk0LCAwLjUxMjEwMywgMC42NTUzNzEsIDAuNzgwNzI5LCAwLjk1OTgwNiIsIFwKLSAgICAgICAgICAiMC4xODkxODYsIDAuMzE3MjQ5LCAwLjQ0Mjc4LCAwLjUzMjQwOSwgMC42NzU2NTgsIDAuODAxMDIsIDAuOTgwMDc5Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU4MTYsIDAuMzA2NDg2LCAwLjU2MTMwNCwgMC43NDM0NzgsIDEuMDMzNzYsIDEuMjg3MzgsIDEuNjUzMTMiLCBcCi0gICAgICAgICAgIjAuMDU4MTMyLCAwLjMwNTg1NCwgMC41NjEyNSwgMC43NDM0NjEsIDEuMDMzNzMsIDEuMjkwODUsIDEuNjU1OTIiLCBcCi0gICAgICAgICAgIjAuMDU4MTEyLCAwLjMwNjU0LCAwLjU2MTIyNywgMC43NDM0OCwgMS4wMzQ5MywgMS4yOTA3NCwgMS42NTU2MSIsIFwKLSAgICAgICAgICAiMC4wNTgwNzcsIDAuMzA1ODk2LCAwLjU2MTAwNSwgMC43NDMzODksIDEuMDMzNzQsIDEuMjg4NzEsIDEuNjUzMjgiLCBcCi0gICAgICAgICAgIjAuMDU4MiwgMC4zMDU4OSwgMC41NjEyMDYsIDAuNzQzMzI4LCAxLjAzMTY3LCAxLjI4ODk0LCAxLjY1MzExIiwgXAotICAgICAgICAgICIwLjA1OTA0NywgMC4zMDYxMjQsIDAuNTYwMjQsIDAuNzQzNSwgMS4wMzM2MSwgMS4yODg2MiwgMS42NTU2OCIsIFwKLSAgICAgICAgICAiMC4wNjAwMDMsIDAuMzA2MjQ2LCAwLjU2MDIxNSwgMC43NDM0NiwgMS4wMzM3NCwgMS4yODg2MiwgMS42NTMwOCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEzNzQ2LCAwLjI5MDY2OSwgMC40MzY0OTEsIDAuNTQwNTk3LCAwLjcwNzA3NywgMC44NTI3MTgsIDEuMDYwNjUiLCBcCi0gICAgICAgICAgIjAuMTQ4Nzk0LCAwLjMwMTk5OSwgMC40NDc4MTQsIDAuNTUxOTIsIDAuNzE4Mjc2LCAwLjg2NDAzNywgMS4wNzE5NyIsIFwKLSAgICAgICAgICAiMC4xNjE1ODUsIDAuMzE0Nzc2LCAwLjQ2MDU5NiwgMC41NjQ3MTksIDAuNzMxMDc5LCAwLjg3NjcxMiwgMS4wODQ4NyIsIFwKLSAgICAgICAgICAiMC4xNzQwMTYsIDAuMzI3NDAzLCAwLjQ3MzI0LCAwLjU3NzM0NiwgMC43NDM3MTMsIDAuODg5NDQ1LCAxLjA5NzQiLCBcCi0gICAgICAgICAgIjAuMTg2NDQxLCAwLjMzOTc3NCwgMC40ODU1OTUsIDAuNTg5Njg2LCAwLjc1NjA2MywgMC45MDE5NzcsIDEuMTA5NzEiLCBcCi0gICAgICAgICAgIjAuMjA1OTMxLCAwLjM1OTMwNCwgMC41MDUxMzYsIDAuNjA5MjM0LCAwLjc3NTYxNCwgMC45MjE1NDUsIDEuMTI5MjgiLCBcCi0gICAgICAgICAgIjAuMjIyNTk3LCAwLjM3NTc5NSwgMC41MjE2MjgsIDAuNjI1NzMzLCAwLjc5MjEwOSwgMC45MzgwMzcsIDEuMTQ2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc1OTU2LCAwLjM1NDAzNSwgMC42NDE0MTMsIDAuODQ1NzEyLCAxLjE3NjEzLCAxLjQ2ODAyLCAxLjg4MDE1IiwgXAotICAgICAgICAgICIwLjA3NTk1MiwgMC4zNTQwMDIsIDAuNjQxMzg2LCAwLjg0NTc5NiwgMS4xNzkwMywgMS40NjgyNywgMS44ODAyMiIsIFwKLSAgICAgICAgICAiMC4wNzYxNjgsIDAuMzU0MDcxLCAwLjY0MTU1OSwgMC44NDczMDksIDEuMTc3ODYsIDEuNDcxMzEsIDEuODgyMTkiLCBcCi0gICAgICAgICAgIjAuMDc2LCAwLjM1NDE0LCAwLjY0MTE1MSwgMC44NDYzMDQsIDEuMTc3ODUsIDEuNDY1NjEsIDEuODgwMTUiLCBcCi0gICAgICAgICAgIjAuMDc1OTc3LCAwLjM1NDE1OCwgMC42NDAzMjcsIDAuODQ5MTAxLCAxLjE4MDY4LCAxLjQ2OCwgMS44ODY2MiIsIFwKLSAgICAgICAgICAiMC4wNzYwMzYsIDAuMzUzODU0LCAwLjY0MDI0MiwgMC44NDY5NDksIDEuMTgwNjksIDEuNDY2ODgsIDEuODgxODciLCBcCi0gICAgICAgICAgIjAuMDc2MzgsIDAuMzU0Mjc2LCAwLjY0MDk0OCwgMC44NDY4NDIsIDEuMTgwNywgMS40NjY2NCwgMS44ODE1NCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4MzMxOSwgMC4yMTA4NTgsIDAuMzM2MjM4LCAwLjQyNTcxLCAwLjU2OTA0MywgMC42OTQ2NzEsIDAuODczNjY1IiwgXAotICAgICAgICAgICIwLjA5NDk5NiwgMC4yMjI1NTgsIDAuMzQ3OTQyLCAwLjQzNzQ3OSwgMC41ODA3MzQsIDAuNzA2MDk5LCAwLjg4NTM3OCIsIFwKLSAgICAgICAgICAiMC4xMTAxMzYsIDAuMjM3NzAyLCAwLjM2MzEyNiwgMC40NTI3OTgsIDAuNTk2MDc0LCAwLjcyMTI5NywgMC45MDA0MTciLCBcCi0gICAgICAgICAgIjAuMTI1MDI4LCAwLjI1MjYyNiwgMC4zNzgwNzcsIDAuNDY3NjE4LCAwLjYxMDk1LCAwLjczNjU2NSwgMC45MTUzOTQiLCBcCi0gICAgICAgICAgIjAuMTQwMDU0LCAwLjI2NzMwOSwgMC4zOTI3NjQsIDAuNDgyNDAxLCAwLjYyNTU1NCwgMC43NTExMDIsIDAuOTMwMTI0IiwgXAotICAgICAgICAgICIwLjE2MzQ1MSwgMC4yOTA5OTgsIDAuNDE2NDM5LCAwLjUwNjExOCwgMC42NDkzMjYsIDAuNzc0NjQ4LCAwLjk1NDExMiIsIFwKLSAgICAgICAgICAiMC4xODI1NzgsIDAuMzEwNTgsIDAuNDM2MDI4LCAwLjUyNTU4NSwgMC42Njg5NTYsIDAuNzk0MTgsIDAuOTczMzM4Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU3NTI5LCAwLjMwNTM1OCwgMC41NjA3OTcsIDAuNzQyODQzLCAxLjAzNTMzLCAxLjI4NzU2LCAxLjY1MTgyIiwgXAotICAgICAgICAgICIwLjA1NzQ5NywgMC4zMDU5ODEsIDAuNTYwNzY0LCAwLjc0MzE4MiwgMS4wMzUyNCwgMS4yOTA1NiwgMS42NTE3NCIsIFwKLSAgICAgICAgICAiMC4wNTc0NTEsIDAuMzA2MDA2LCAwLjU2MDc1NCwgMC43NDEzNzUsIDEuMDMyOTUsIDEuMjkwOTMsIDEuNjUxNDEiLCBcCi0gICAgICAgICAgIjAuMDU3NDcxLCAwLjMwNTMwNCwgMC41NjA3NTksIDAuNzQzMTc2LCAxLjAzMzMzLCAxLjI4NzQ5LCAxLjY1MTIzIiwgXAotICAgICAgICAgICIwLjA1NzczOCwgMC4zMDUzMjQsIDAuNTU5MjQ2LCAwLjc0MTM0NCwgMS4wMzQ5OSwgMS4yODc1MywgMS42NTE5NSIsIFwKLSAgICAgICAgICAiMC4wNTg1OCwgMC4zMDU2MTUsIDAuNTYwODM1LCAwLjc0MTMyNCwgMS4wMzMyOCwgMS4yODczMSwgMS42NTE1NSIsIFwKLSAgICAgICAgICAiMC4wNjA5NDUsIDAuMzA2MTE4LCAwLjU2MTczMSwgMC43NDE4NDgsIDEuMDMyNzEsIDEuMjkwNDQsIDEuNjUxMjYiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMzEzNzMsIDAuMjg0MTczLCAwLjQzMDAwMSwgMC41MzQwNTcsIDAuNzAwNDc3LCAwLjg0NjExMywgMS4wNTQxOSIsIFwKLSAgICAgICAgICAiMC4xNDEyNjYsIDAuMjk0NjE4LCAwLjQ0MDQ1LCAwLjU0NDU1OCwgMC43MTEwMDQsIDAuODU2NzI5LCAxLjA2NDYyIiwgXAotICAgICAgICAgICIwLjE1NDUxMiwgMC4zMDc4NjQsIDAuNDUzNjg4LCAwLjU1NzcyNiwgMC43MjQyMDYsIDAuODY5ODI4LCAxLjA3Nzk5IiwgXAotICAgICAgICAgICIwLjE2NzQ3MSwgMC4zMjA4MzIsIDAuNDY2NjcyLCAwLjU3MDc2NCwgMC43MzcxNCwgMC44ODMwNDksIDEuMDkwNzkiLCBcCi0gICAgICAgICAgIjAuMTgwODY1LCAwLjMzNDI0MywgMC40ODAwODYsIDAuNTg0MjE2LCAwLjc1MDY4MSwgMC44OTY0ODUsIDEuMTA0NCIsIFwKLSAgICAgICAgICAiMC4yMDIxMjIsIDAuMzU1NDc3LCAwLjUwMTM2NCwgMC42MDU0MjQsIDAuNzcxODI5LCAwLjkxNzQ0NiwgMS4xMjU4NyIsIFwKLSAgICAgICAgICAiMC4yMjA2MywgMC4zNzQwODEsIDAuNTE5OTQ4LCAwLjYyNDA3OCwgMC43OTA0NDQsIDAuOTM2MjQ0LCAxLjE0NDIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzU5OTUsIDAuMzU0MDg5LCAwLjY0MjIsIDAuODQ5MDU5LCAxLjE4MDcyLCAxLjQ2Nzg1LCAxLjg3OTQ3IiwgXAotICAgICAgICAgICIwLjA3NjA4LCAwLjM1NDA3NiwgMC42NDEyMzMsIDAuODQ1ODIxLCAxLjE3NjQsIDEuNDY4MDIsIDEuODc5OTEiLCBcCi0gICAgICAgICAgIjAuMDc2MTgxLCAwLjM1NDE5OCwgMC42NDA3NywgMC44NDg4MjksIDEuMTgwNzUsIDEuNDcxMzQsIDEuODgyMSIsIFwKLSAgICAgICAgICAiMC4wNzYxMDIsIDAuMzU0MTc1LCAwLjY0MDM5NCwgMC44NDkxMDUsIDEuMTgwNjgsIDEuNDY4MjYsIDEuODg2NjEiLCBcCi0gICAgICAgICAgIjAuMDc1OTAzLCAwLjM1NDE5LCAwLjY0MTA1OSwgMC44NDYyMSwgMS4xNzYzNSwgMS40NjgxOSwgMS44ODEwMiIsIFwKLSAgICAgICAgICAiMC4wNzY2OTcsIDAuMzU0MjczLCAwLjY0MjMwNywgMC44NDY4ODUsIDEuMTgwNjgsIDEuNDcxMjUsIDEuODgwOSIsIFwKLSAgICAgICAgICAiMC4wNzY2MDIsIDAuMzU0MjA2LCAwLjY0MTYxMiwgMC44NDU4OTEsIDEuMTc5MTgsIDEuNDY2OCwgMS44Nzk3NCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzNzI4LCAwLjAwMzgwOSwgMC4wMDM4MiwgMC4wMDM4MjIsIDAuMDAzODI0LCAwLjAwMzgyNSwgMC4wMDM4MjYiLCBcCi0gICAgICAgICAgIjAuMDAzNzAyLCAwLjAwMzc4NywgMC4wMDM3OTcsIDAuMDAzNzk5LCAwLjAwMzgwMiwgMC4wMDM4MDMsIDAuMDAzODA0IiwgXAotICAgICAgICAgICIwLjAwMzY3OSwgMC4wMDM3NzIsIDAuMDAzNzg2LCAwLjAwMzc4OSwgMC4wMDM3OSwgMC4wMDM3ODgsIDAuMDAzNzkyIiwgXAotICAgICAgICAgICIwLjAwMzY2MSwgMC4wMDM3NiwgMC4wMDM3NzQsIDAuMDAzNzc2LCAwLjAwMzc4MiwgMC4wMDM3ODUsIDAuMDAzNzg1IiwgXAotICAgICAgICAgICIwLjAwMzY0NCwgMC4wMDM3NDksIDAuMDAzNzY0LCAwLjAwMzc3MiwgMC4wMDM3NzUsIDAuMDAzNzc3LCAwLjAwMzc4MSIsIFwKLSAgICAgICAgICAiMC4wMDM2MjksIDAuMDAzNzM2LCAwLjAwMzc1NiwgMC4wMDM3NjIsIDAuMDAzNzY4LCAwLjAwMzc3MSwgMC4wMDM3NzQiLCBcCi0gICAgICAgICAgIjAuMDAzNjIxLCAwLjAwMzcyOSwgMC4wMDM3NTEsIDAuMDAzNzU5LCAwLjAwMzc2NiwgMC4wMDM3NjcsIDAuMDAzNzcxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDUwMjIsIDAuMDA1MTcsIDAuMDA1MTksIDAuMDA1MTk2LCAwLjAwNTIwMiwgMC4wMDUyMDUsIDAuMDA1MjA3IiwgXAotICAgICAgICAgICIwLjAwNTAxMSwgMC4wMDUxNiwgMC4wMDUxODEsIDAuMDA1MTg3LCAwLjAwNTE5MiwgMC4wMDUxOTUsIDAuMDA1MTk3IiwgXAotICAgICAgICAgICIwLjAwNDk5NiwgMC4wMDUxNDksIDAuMDA1MTcxLCAwLjAwNTE3NywgMC4wMDUxODMsIDAuMDA1MTg2LCAwLjAwNTE4OSIsIFwKLSAgICAgICAgICAiMC4wMDQ5ODYsIDAuMDA1MTQyLCAwLjAwNTE2NSwgMC4wMDUxNzIsIDAuMDA1MTc4LCAwLjAwNTE4MSwgMC4wMDUxODMiLCBcCi0gICAgICAgICAgIjAuMDA0OTc3LCAwLjAwNTEzNSwgMC4wMDUxNiwgMC4wMDUxNjcsIDAuMDA1MTczLCAwLjAwNTE3NywgMC4wMDUxNzkiLCBcCi0gICAgICAgICAgIjAuMDA0OTY0LCAwLjAwNTEyNSwgMC4wMDUxNTIsIDAuMDA1MTYsIDAuMDA1MTY4LCAwLjAwNTE3MSwgMC4wMDUxNzUiLCBcCi0gICAgICAgICAgIjAuMDA0OTU2LCAwLjAwNTExNCwgMC4wMDUxNDQsIDAuMDA1MTU0LCAwLjAwNTE2MywgMC4wMDUxNjcsIDAuMDA1MTcyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDM0NTcsIDAuMDAzNTQzLCAwLjAwMzU1LCAwLjAwMzU1OCwgMC4wMDM1NiwgMC4wMDM1NTgsIDAuMDAzNTYiLCBcCi0gICAgICAgICAgIjAuMDAzNDM5LCAwLjAwMzUzLCAwLjAwMzUzOSwgMC4wMDM1NDIsIDAuMDAzNTQ0LCAwLjAwMzU0NSwgMC4wMDM1NDYiLCBcCi0gICAgICAgICAgIjAuMDAzNDA2LCAwLjAwMzUwNywgMC4wMDM1MTksIDAuMDAzNTIyLCAwLjAwMzUyNSwgMC4wMDM1MjUsIDAuMDAzNTI3IiwgXAotICAgICAgICAgICIwLjAwMzM3NiwgMC4wMDM0ODQsIDAuMDAzNDk5LCAwLjAwMzUwMywgMC4wMDM1MDYsIDAuMDAzNTA5LCAwLjAwMzUxMSIsIFwKLSAgICAgICAgICAiMC4wMDMzNTUsIDAuMDAzNDY4LCAwLjAwMzQ4NywgMC4wMDM0OTMsIDAuMDAzNDk4LCAwLjAwMzUsIDAuMDAzNTAyIiwgXAotICAgICAgICAgICIwLjAwMzMzMiwgMC4wMDM0NTQsIDAuMDAzNDc0LCAwLjAwMzQ4MSwgMC4wMDM0ODQsIDAuMDAzNDkxLCAwLjAwMzQ5MiIsIFwKLSAgICAgICAgICAiMC4wMDMzMTUsIDAuMDAzNDQsIDAuMDAzNDY0LCAwLjAwMzQ3MSwgMC4wMDM0OCwgMC4wMDM0ODQsIDAuMDAzNDg3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQ3NjksIDAuMDA0OTE4LCAwLjAwNDk0MiwgMC4wMDQ5NSwgMC4wMDQ5NTYsIDAuMDA0OTYsIDAuMDA0OTYzIiwgXAotICAgICAgICAgICIwLjAwNDc1LCAwLjAwNDkwNywgMC4wMDQ5MjksIDAuMDA0OTM2LCAwLjAwNDk0MiwgMC4wMDQ5NDUsIDAuMDA0OTQ4IiwgXAotICAgICAgICAgICIwLjAwNDczLCAwLjAwNDg5LCAwLjAwNDkxNCwgMC4wMDQ5MjIsIDAuMDA0OTI5LCAwLjAwNDkzMiwgMC4wMDQ5MzUiLCBcCi0gICAgICAgICAgIjAuMDA0NzE0LCAwLjAwNDg3NCwgMC4wMDQ5MDEsIDAuMDA0OTEsIDAuMDA0OTE4LCAwLjAwNDkyMiwgMC4wMDQ5MjUiLCBcCi0gICAgICAgICAgIjAuMDA0NzA2LCAwLjAwNDg2NCwgMC4wMDQ4OTMsIDAuMDA0OTAyLCAwLjAwNDkxMSwgMC4wMDQ5MTUsIDAuMDA0OTE5IiwgXAotICAgICAgICAgICIwLjAwNDY4NiwgMC4wMDQ4NDYsIDAuMDA0ODgsIDAuMDA0ODkxLCAwLjAwNDkwMiwgMC4wMDQ5MDcsIDAuMDA0OTEyIiwgXAotICAgICAgICAgICIwLjAwNDY3OSwgMC4wMDQ4MzksIDAuMDA0ODc1LCAwLjAwNDg4OCwgMC4wMDQ4OTksIDAuMDA0OTA1LCAwLjAwNDkxIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IE9SMlg2ICoKLSAqIC0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChPUjJYNikgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjM0NDE3OTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNjkwMzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE2NzgwNDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE2OTAzOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDU0NCwgMC4wMDA1NzUsIDAuMDAwNTgyLCAwLjAwMDU4NiwgMC4wMDA1ODcsIDAuMDAwNTg5LCAwLjAwMDU5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNjI3LCAwLjAwMDYyNywgMC4wMDA2MjcsIDAuMDAwNjI3LCAwLjAwMDYyOCwgMC4wMDA2MjgsIDAuMDAwNjI4Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE1ODQ4NjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE1ODQxMTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE1ODQ4NjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxODIsIDAuMDAwMTgyLCAwLjAwMDE4MiwgMC4wMDAxODIsIDAuMDAwMTgyLCAwLjAwMDE4MiwgMC4wMDAxODIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA2NzEsIDAuMDAwNjcxLCAwLjAwMDY3MSwgMC4wMDA2NzEsIDAuMDAwNjcxLCAwLjAwMDY3LCAwLjAwMDY3MSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjc2ODY5MjsKLSAgICBmdW5jdGlvbiA6ICIoQStCKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjk4NiwgMC4xNTYxNTYsIDAuMjQwNDAzLCAwLjMwMDQ5LCAwLjM5NjU5NiwgMC40ODA2ODEsIDAuNjAwNzgzIiwgXAotICAgICAgICAgICIwLjA4MTUxOSwgMC4xNjc4NTIsIDAuMjUyMTE4LCAwLjMxMjIxLCAwLjQwODMwNywgMC40OTI0MTMsIDAuNjEyNTExIiwgXAotICAgICAgICAgICIwLjA5NjQ3NSwgMC4xODI3OTksIDAuMjY3MDc1LCAwLjMyNzE2NCwgMC40MjMyNzIsIDAuNTA3MzY2LCAwLjYyNzUyIiwgXAotICAgICAgICAgICIwLjExMTQ5NSwgMC4xOTc4OTksIDAuMjgyMTY5LCAwLjM0MjI2MywgMC40MzgzNzYsIDAuNTIyNDU3LCAwLjY0MjU2MiIsIFwKLSAgICAgICAgICAiMC4xMjYyNzMsIDAuMjEyNjU5LCAwLjI5NjkzNywgMC4zNTcwMjksIDAuNDUzMTU3LCAwLjUzNzI0MSwgMC42NTczOSIsIFwKLSAgICAgICAgICAiMC4xNDk0NTgsIDAuMjM1OTI1LCAwLjMyMDIyNCwgMC4zODAzMTYsIDAuNDc2NDI3LCAwLjU2MDUxNiwgMC42ODA2MjciLCBcCi0gICAgICAgICAgIjAuMTY4MDE2LCAwLjI1NDYzNSwgMC4zMzg5LCAwLjM5OTAzNiwgMC40OTUxMjgsIDAuNTc5MjEzLCAwLjY5OTMxIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQzMjMzLCAwLjIwOTU0MywgMC4zODAxNDQsIDAuNTAxMDEyLCAwLjY5NzcwMywgMC44NjY0NjksIDEuMTEyMDkiLCBcCi0gICAgICAgICAgIjAuMDQzMjUsIDAuMjA5NTIyLCAwLjM4MDA3NSwgMC41MDExOCwgMC42OTY4MDEsIDAuODY5MDI4LCAxLjExMzc0IiwgXAotICAgICAgICAgICIwLjA0MzIyNiwgMC4yMDk1MywgMC4zODAwODIsIDAuNTAyMjIyLCAwLjY5NjcwMywgMC44Njc4MTgsIDEuMTExMTEiLCBcCi0gICAgICAgICAgIjAuMDQzMjc3LCAwLjIwOTUyLCAwLjM4MDEwNCwgMC41MDIyMTIsIDAuNjk2NjcsIDAuODY3NzEzLCAxLjEwOTgzIiwgXAotICAgICAgICAgICIwLjA0Mzc0NiwgMC4yMDk0MzEsIDAuMzgwMDY4LCAwLjUwMjEzMywgMC42OTY3NzMsIDAuODY3NzcsIDEuMTEzNjEiLCBcCi0gICAgICAgICAgIjAuMDQ0NzY0LCAwLjIwOTYyMSwgMC4zNzkxMiwgMC41MDIyNDMsIDAuNjk3NzY4LCAwLjg2NzcxOCwgMS4xMTE5OSIsIFwKLSAgICAgICAgICAiMC4wNDY5NjQsIDAuMjA5OTE1LCAwLjM3OTQzOSwgMC41MDIyMDUsIDAuNjk3Nzc1LCAwLjg2NzY2MSwgMS4xMTE4OCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwNzY2NywgMC4yMTMzOTIsIDAuMzEzMTEyLCAwLjM4NDI0MiwgMC40OTc5MywgMC41OTc0MDgsIDAuNzM5NjI5IiwgXAotICAgICAgICAgICIwLjExOTA0MiwgMC4yMjQ3MTUsIDAuMzI0NDM0LCAwLjM5NTUyMywgMC41MDkyNjUsIDAuNjA4NzAyLCAwLjc1MTAyNyIsIFwKLSAgICAgICAgICAiMC4xMzE3ODgsIDAuMjM3NzYxLCAwLjMzNzQ5NywgMC40MDg2MzIsIDAuNTIyMzIxLCAwLjYyMTc5NywgMC43NjQwMTUiLCBcCi0gICAgICAgICAgIjAuMTQ0MzU0LCAwLjI1MDI4OSwgMC4zNTAwMzgsIDAuNDIxMTcxLCAwLjUzNDg1OSwgMC42MzQzNDgsIDAuNzc2NTQiLCBcCi0gICAgICAgICAgIjAuMTU2NzI1LCAwLjI2MjY3NywgMC4zNjI0MjgsIDAuNDMzNTY2LCAwLjU0NzI2LCAwLjY0NjczMSwgMC43ODg5NjMiLCBcCi0gICAgICAgICAgIjAuMTc1ODUsIDAuMjgxODQ2LCAwLjM4MTYsIDAuNDUyNzM1LCAwLjU2NjQzMiwgMC42NjU5MzksIDAuODA4MTEyIiwgXAotICAgICAgICAgICIwLjE5MiwgMC4yOTgyMTYsIDAuMzk3OTcxLCAwLjQ2OTA3MywgMC41ODI4MTQsIDAuNjgyMzIsIDAuODI0NDg3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU3MDIyLCAwLjI0NjA3NCwgMC40NDExNjMsIDAuNTc5OTMyLCAwLjgwNzc3NSwgMS4wMDM4NywgMS4yODM1NCIsIFwKLSAgICAgICAgICAiMC4wNTY5NjQsIDAuMjQ1OTk0LCAwLjQ0MDIyNywgMC41ODIxMzEsIDAuODA3NzkzLCAxLjAwNTM3LCAxLjI4NTgyIiwgXAotICAgICAgICAgICIwLjA1NzAyNSwgMC4yNDYwNDMsIDAuNDQwOTE5LCAwLjU4MDE5OSwgMC44MDc3NjUsIDEuMDA0MDUsIDEuMjgzNSIsIFwKLSAgICAgICAgICAiMC4wNTY5MzYsIDAuMjQ2MDM3LCAwLjQ0MDUyLCAwLjU4MjMsIDAuODA3NzU4LCAxLjAwMzIsIDEuMjgyOTQiLCBcCi0gICAgICAgICAgIjAuMDU2ODgsIDAuMjQ2MDAyLCAwLjQ0MTA0MiwgMC41ODAzNDUsIDAuODA3NzY4LCAxLjAwNDE2LCAxLjI4MzY3IiwgXAotICAgICAgICAgICIwLjA1NzQsIDAuMjQ2MTMzLCAwLjQ0MDk0LCAwLjU4MjMxNywgMC44MDc3NjUsIDEuMDAyOTUsIDEuMjgzMDQiLCBcCi0gICAgICAgICAgIjAuMDU4MjYyLCAwLjI0NjM3MywgMC40NDEyNjgsIDAuNTgyMjU4LCAwLjgwNzc4OSwgMS4wMDU0NiwgMS4yODUxNyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2NTMzOCwgMC4xNTEzMTUsIDAuMjM1NDM1LCAwLjI5NTQ3MSwgMC4zOTE1NzgsIDAuNDc1NjU3LCAwLjU5NTQ4OCIsIFwKLSAgICAgICAgICAiMC4wNzcwMjYsIDAuMTYzMDU2LCAwLjI0NzE4MywgMC4zMDcyMDMsIDAuNDAzMTYyLCAwLjQ4NzQ0MSwgMC42MDc1OTkiLCBcCi0gICAgICAgICAgIjAuMDkxOTQ0LCAwLjE3ODAyNCwgMC4yNjIxNSwgMC4zMjIxOTEsIDAuNDE4Mjg2LCAwLjUwMjQzLCAwLjYyMjcxOCIsIFwKLSAgICAgICAgICAiMC4xMDY2NzUsIDAuMTkyNzA0LCAwLjI3NjgxOCwgMC4zMzY4ODgsIDAuNDMyOTg2LCAwLjUxNzEwNSwgMC42MzcyNDUiLCBcCi0gICAgICAgICAgIjAuMTIxNTExLCAwLjIwNzU0OSwgMC4yOTE0NzgsIDAuMzUxNTI3LCAwLjQ0NzYzMiwgMC41MzE5MzMsIDAuNjUxOTAzIiwgXAotICAgICAgICAgICIwLjE0MzY2NywgMC4yMjk4NzMsIDAuMzE0MDE4LCAwLjM3NDA3MywgMC40NzAxOTEsIDAuNTU0MzM2LCAwLjY3NDU0NSIsIFwKLSAgICAgICAgICAiMC4xNjE1NTEsIDAuMjQ4MDY0LCAwLjMzMjE5NCwgMC4zOTIyODIsIDAuNDg4NDMsIDAuNTcyMzk5LCAwLjY5MjYzNiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0Mjc5OSwgMC4yMDg5MjEsIDAuMzc5NjQzLCAwLjUwMTc1NiwgMC42OTU3NDEsIDAuODY1NzU4LCAxLjExMjg1IiwgXAotICAgICAgICAgICIwLjA0MjgwMSwgMC4yMDkwNDQsIDAuMzgwMTQxLCAwLjUwMDMzLCAwLjY5NDc3NCwgMC44Njc1OTgsIDEuMTEwOTIiLCBcCi0gICAgICAgICAgIjAuMDQyNzU4LCAwLjIwOTAzNSwgMC4zNzk2MjEsIDAuNTAxNjk3LCAwLjY5NzY5OSwgMC44NjY4NjgsIDEuMTExMDYiLCBcCi0gICAgICAgICAgIjAuMDQzMjg3LCAwLjIwOTA3MiwgMC4zNzk1MDIsIDAuNTAwOSwgMC42OTc3LCAwLjg2NTc2MSwgMS4xMTA5NiIsIFwKLSAgICAgICAgICAiMC4wNDM0MDEsIDAuMjA5MDA5LCAwLjM3OTYyLCAwLjUwMTY5MywgMC42OTc2NzQsIDAuODY2NjY0LCAxLjExMDk1IiwgXAotICAgICAgICAgICIwLjA0NTI4MiwgMC4yMDkzOTQsIDAuMzc4NzkyLCAwLjUwMTg2NCwgMC42OTU3MTUsIDAuODY3NDUyLCAxLjExMDkzIiwgXAotICAgICAgICAgICIwLjA0NzQ2NCwgMC4yMDk3NzIsIDAuMzc5ODIyLCAwLjUwMDUwMiwgMC42OTU4NzQsIDAuODY4NTg1LCAxLjExMDkxIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTAxMzc0LCAwLjIwNzA3NywgMC4zMDY4MDMsIDAuMzc3ODg5LCAwLjQ5MTYyMywgMC41OTEwOTMsIDAuNzMzNDg1IiwgXAotICAgICAgICAgICIwLjExMTI1NywgMC4yMTcxNTcsIDAuMzE2ODkxLCAwLjM4ODAyOCwgMC41MDE3MTUsIDAuNjAxMTc3LCAwLjc0MzQyNiIsIFwKLSAgICAgICAgICAiMC4xMjQzMTcsIDAuMjMwMjIsIDAuMzI5OTMsIDAuNDAxMTIyLCAwLjUxNDgwOCwgMC42MTQyODcsIDAuNzU2NDg4IiwgXAotICAgICAgICAgICIwLjEzNzc3MSwgMC4yNDM2NzgsIDAuMzQzNDMxLCAwLjQxNDU3NywgMC41MjgyNjcsIDAuNjI3NzM2LCAwLjc3MDAwNCIsIFwKLSAgICAgICAgICAiMC4xNTA4NzksIDAuMjU2ODAxLCAwLjM1NjU1NiwgMC40Mjc2ODcsIDAuNTQxNDEsIDAuNjQwOTgzLCAwLjc4MzAyMSIsIFwKLSAgICAgICAgICAiMC4xNzE4NSwgMC4yNzc4ODYsIDAuMzc3NjU3LCAwLjQ0ODc3NywgMC41NjI1MTIsIDAuNjYyMDUyLCAwLjgwNDEyOSIsIFwKLSAgICAgICAgICAiMC4xODg4NjIsIDAuMjk1MTYsIDAuMzk0OTM1LCAwLjQ2NjA2MiwgMC41Nzk4MSwgMC42NzkyODksIDAuODIxNTI2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU3MDIzLCAwLjI0NjA5NCwgMC40NDExMDMsIDAuNTgxMTk3LCAwLjgwNzc3NSwgMS4wMDU0MSwgMS4yODQ4NyIsIFwKLSAgICAgICAgICAiMC4wNTcwMTQsIDAuMjQ2MDI3LCAwLjQ0MDQ1MywgMC41ODA4NDUsIDAuODA3NzcsIDEuMDA0MzYsIDEuMjg0MDUiLCBcCi0gICAgICAgICAgIjAuMDU2OTk1LCAwLjI0NjA0NCwgMC40NDA5NjgsIDAuNTgwNTY1LCAwLjgwNzc2OCwgMS4wMDM3NywgMS4yODI4OCIsIFwKLSAgICAgICAgICAiMC4wNTY5NzEsIDAuMjQ2MDM3LCAwLjQ0MDQ5OCwgMC41ODEwNzYsIDAuODA2NzgsIDEuMDA0NDQsIDEuMjg0NSIsIFwKLSAgICAgICAgICAiMC4wNTcyOTIsIDAuMjQ2MDcxLCAwLjQ0MTQ3MiwgMC41ODIyNDgsIDAuODA3NzU5LCAxLjAwMTYsIDEuMjg3OTkiLCBcCi0gICAgICAgICAgIjAuMDU3ODEsIDAuMjQ2MjAxLCAwLjQ0MTAyNCwgMC41ODIyNjEsIDAuODA3NzY5LCAxLjAwMjI0LCAxLjI4NzI3IiwgXAotICAgICAgICAgICIwLjA1OTE5NywgMC4yNDY0MjUsIDAuNDQwOTkzLCAwLjU4MDc1OSwgMC44MDc4MTYsIDEuMDA0MiwgMS4yODM1NCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1Nzk3LCAwLjAwNTkzNCwgMC4wMDU5NTEsIDAuMDA1OTU0LCAwLjAwNTk1NSwgMC4wMDU5NjIsIDAuMDA1OTY0IiwgXAotICAgICAgICAgICIwLjAwNTc0MywgMC4wMDU4ODYsIDAuMDA1OTA0LCAwLjAwNTkxLCAwLjAwNTkxNCwgMC4wMDU5MTcsIDAuMDA1OTE4IiwgXAotICAgICAgICAgICIwLjAwNTY5NCwgMC4wMDU4NDksIDAuMDA1ODcyLCAwLjAwNTg4LCAwLjAwNTg4NywgMC4wMDU4ODcsIDAuMDA1ODkyIiwgXAotICAgICAgICAgICIwLjAwNTY1NiwgMC4wMDU4MjEsIDAuMDA1ODQ5LCAwLjAwNTg1OCwgMC4wMDU4NjQsIDAuMDA1ODcxLCAwLjAwNTg3NSIsIFwKLSAgICAgICAgICAiMC4wMDU2MjMsIDAuMDA1Nzk3LCAwLjAwNTgzLCAwLjAwNTg0MywgMC4wMDU4NTEsIDAuMDA1ODU4LCAwLjAwNTg2MyIsIFwKLSAgICAgICAgICAiMC4wMDU2MDcsIDAuMDA1Nzc2LCAwLjAwNTgxNCwgMC4wMDU4MjcsIDAuMDA1ODQsIDAuMDA1ODQzLCAwLjAwNTg1MSIsIFwKLSAgICAgICAgICAiMC4wMDU1OTEsIDAuMDA1NzYyLCAwLjAwNTgwMiwgMC4wMDU4MTcsIDAuMDA1ODMxLCAwLjAwNTgzNSwgMC4wMDU4NDciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNzc5LCAwLjAwODAzLCAwLjAwODA2OSwgMC4wMDgwODEsIDAuMDA4MDkyLCAwLjAwODA5OCwgMC4wMDgxMDMiLCBcCi0gICAgICAgICAgIjAuMDA3NzY1LCAwLjAwODAwNiwgMC4wMDgwNDUsIDAuMDA4MDU3LCAwLjAwODA2OCwgMC4wMDgwNzQsIDAuMDA4MDc5IiwgXAotICAgICAgICAgICIwLjAwNzczOCwgMC4wMDc5ODgsIDAuMDA4MDI4LCAwLjAwODA0LCAwLjAwODA1MSwgMC4wMDgwNTYsIDAuMDA4MDYxIiwgXAotICAgICAgICAgICIwLjAwNzcxOCwgMC4wMDc5NywgMC4wMDgwMTMsIDAuMDA4MDI2LCAwLjAwODAzOCwgMC4wMDgwNDQsIDAuMDA4MDQ5IiwgXAotICAgICAgICAgICIwLjAwNzcwNywgMC4wMDc5NTYsIDAuMDA4MDAyLCAwLjAwODAxNiwgMC4wMDgwMjksIDAuMDA4MDM1LCAwLjAwODA0MSIsIFwKLSAgICAgICAgICAiMC4wMDc2NzQsIDAuMDA3OTMyLCAwLjAwNzk4NCwgMC4wMDgwMDEsIDAuMDA4MDE2LCAwLjAwODAyNCwgMC4wMDgwMzEiLCBcCi0gICAgICAgICAgIjAuMDA3NjYsIDAuMDA3OTE1LCAwLjAwNzk3MSwgMC4wMDc5OSwgMC4wMDgwMDcsIDAuMDA4MDE2LCAwLjAwODAyNCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1MjA2LCAwLjAwNTMzOSwgMC4wMDUzNTQsIDAuMDA1MzU3LCAwLjAwNTM2MywgMC4wMDUzNjMsIDAuMDA1MzY1IiwgXAotICAgICAgICAgICIwLjAwNTE1NiwgMC4wMDUzMDMsIDAuMDA1MzE4LCAwLjAwNTMyNSwgMC4wMDUzMjYsIDAuMDA1MzIyLCAwLjAwNTMyOSIsIFwKLSAgICAgICAgICAiMC4wMDUwODQsIDAuMDA1MjQ5LCAwLjAwNTI3MSwgMC4wMDUyNzgsIDAuMDA1MjgyLCAwLjAwNTI4NiwgMC4wMDUyODciLCBcCi0gICAgICAgICAgIjAuMDA1MDE1LCAwLjAwNTIwMiwgMC4wMDUyMjksIDAuMDA1MjM4LCAwLjAwNTI0NiwgMC4wMDUyNSwgMC4wMDUyNTMiLCBcCi0gICAgICAgICAgIjAuMDA0OTk0LCAwLjAwNTE3NSwgMC4wMDUyMDksIDAuMDA1MjIsIDAuMDA1MjI5LCAwLjAwNTIzNCwgMC4wMDUyMzkiLCBcCi0gICAgICAgICAgIjAuMDA0OTU4LCAwLjAwNTE0MSwgMC4wMDUxODEsIDAuMDA1MTk3LCAwLjAwNTIwNywgMC4wMDUyMTUsIDAuMDA1MjE5IiwgXAotICAgICAgICAgICIwLjAwNDk0NywgMC4wMDUxMjIsIDAuMDA1MTY3LCAwLjAwNTE4MywgMC4wMDUxOTcsIDAuMDA1MjA1LCAwLjAwNTIxMyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA3Mjg0LCAwLjAwNzUyNiwgMC4wMDc1NjYsIDAuMDA3NTc4LCAwLjAwNzU5LCAwLjAwNzU5NSwgMC4wMDc2IiwgXAotICAgICAgICAgICIwLjAwNzIzOSwgMC4wMDc0ODcsIDAuMDA3NTI3LCAwLjAwNzUzOSwgMC4wMDc1NSwgMC4wMDc1NTUsIDAuMDA3NTYiLCBcCi0gICAgICAgICAgIjAuMDA3MTk3LCAwLjAwNzQ0NSwgMC4wMDc0OSwgMC4wMDc1MDQsIDAuMDA3NTE3LCAwLjAwNzUyMywgMC4wMDc1MjkiLCBcCi0gICAgICAgICAgIjAuMDA3MTcxLCAwLjAwNzQxNywgMC4wMDc0NjYsIDAuMDA3NDgyLCAwLjAwNzQ5NywgMC4wMDc1MDQsIDAuMDA3NTExIiwgXAotICAgICAgICAgICIwLjAwNzE0NiwgMC4wMDczODksIDAuMDA3NDQ1LCAwLjAwNzQ2MywgMC4wMDc0ODEsIDAuMDA3NDg5LCAwLjAwNzQ5OCIsIFwKLSAgICAgICAgICAiMC4wMDcxMTcsIDAuMDA3MzY0LCAwLjAwNzQyNiwgMC4wMDc0NDgsIDAuMDA3NDY4LCAwLjAwNzQ3OCwgMC4wMDc0ODkiLCBcCi0gICAgICAgICAgIjAuMDA3MDk1LCAwLjAwNzMzNiwgMC4wMDc0MDgsIDAuMDA3NDMzLCAwLjAwNzQ1NiwgMC4wMDc0NjksIDAuMDA3NDgiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogT1IyWDggKgotICogLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKE9SMlg4KSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuNDA5NDQ3OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE2OTU2NjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE2ODMzMzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE2OTU2NjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA1NDQsIDAuMDAwNTc0LCAwLjAwMDU4MiwgMC4wMDA1ODYsIDAuMDAwNTg3LCAwLjAwMDU4OSwgMC4wMDA1OSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDYyNywgMC4wMDA2MjcsIDAuMDAwNjI3LCAwLjAwMDYyNywgMC4wMDA2MjgsIDAuMDAwNjI4LCAwLjAwMDYyOCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNTk1MTI7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNTk0Mzc7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNTk1MTI7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMTgxLCAwLjAwMDE4MiwgMC4wMDAxODIsIDAuMDAwMTgyLCAwLjAwMDE4MiwgMC4wMDAxODIsIDAuMDAwMTgyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNjY5LCAwLjAwMDY2OSwgMC4wMDA2NjksIDAuMDAwNjY5LCAwLjAwMDY2OCwgMC4wMDA2NjgsIDAuMDAwNjY5Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDEuMDM0OTQ7Ci0gICAgZnVuY3Rpb24gOiAiKEErQikiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc0NDU2LCAwLjE0MTY4LCAwLjIwNTMyMiwgMC4yNTA2NzYsIDAuMzIzMTc0LCAwLjM4NjU2NiwgMC40NzcxMjgiLCBcCi0gICAgICAgICAgIjAuMDg2MDQ1LCAwLjE1MzMzLCAwLjIxNjk0NywgMC4yNjIzLCAwLjMzNDgwMiwgMC4zOTgxOTEsIDAuNDg4NzM4IiwgXAotICAgICAgICAgICIwLjEwMTA4NCwgMC4xNjgzODcsIDAuMjMxOTk4LCAwLjI3NzM1MSwgMC4zNDk4NjEsIDAuNDEzMjUxLCAwLjUwMzc5OCIsIFwKLSAgICAgICAgICAiMC4xMTYxNDIsIDAuMTgzNDY1LCAwLjI0NzA3LCAwLjI5MjQzNiwgMC4zNjQ5NTMsIDAuNDI4MzQxLCAwLjUxODg5MyIsIFwKLSAgICAgICAgICAiMC4xMzEwODYsIDAuMTk4MzcyLCAwLjI2MjA1NCwgMC4zMDc0MjMsIDAuMzc5OTQ5LCAwLjQ0MzM0NiwgMC41MzM5MTQiLCBcCi0gICAgICAgICAgIjAuMTU0NzUyLCAwLjIyMjEyLCAwLjI4NTc2NywgMC4zMzExMjQsIDAuNDAzNjM5LCAwLjQ2NzA1LCAwLjU1NzU5NiIsIFwKLSAgICAgICAgICAiMC4xNzQyODIsIDAuMjQxODYxLCAwLjMwNTUyNywgMC4zNTA4OSwgMC40MjM0MiwgMC40ODY4MjgsIDAuNTc3MzU1Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQwMzU4LCAwLjE2MzM2NCwgMC4yOTA4NzYsIDAuMzgxODMyLCAwLjUzMDAyMywgMC42NTc4OTYsIDAuODQyMDE1IiwgXAotICAgICAgICAgICIwLjA0MDIzMywgMC4xNjMwNTcsIDAuMjkwMjM3LCAwLjM4MTg1NiwgMC41MzAwMDEsIDAuNjU4OTQzLCAwLjg0Mjg3MiIsIFwKLSAgICAgICAgICAiMC4wNDAzMDQsIDAuMTYzMzM0LCAwLjI5MDIzOSwgMC4zODE4OCwgMC41Mjk5NTEsIDAuNjU4OTM4LCAwLjg0MzAyIiwgXAotICAgICAgICAgICIwLjA0MDI4LCAwLjE2MzMyNiwgMC4yOTAxOTQsIDAuMzgxODczLCAwLjUyOTk3MiwgMC42NTg5MTEsIDAuODQyODc2IiwgXAotICAgICAgICAgICIwLjA0MDUzMiwgMC4xNjMzMDksIDAuMjkwMzMzLCAwLjM4MTgzNSwgMC41Mjk5NTIsIDAuNjU3NTc1LCAwLjg0MzI2MiIsIFwKLSAgICAgICAgICAiMC4wNDEyNTgsIDAuMTYzNTI1LCAwLjI5MDk4NiwgMC4zODIxLCAwLjUyOTEzLCAwLjY1ODk2MiwgMC44NDMyMjIiLCBcCi0gICAgICAgICAgIjAuMDQzNzQ4LCAwLjE2MzkxMiwgMC4yOTA1MjMsIDAuMzgyODI4LCAwLjUzMDA0MiwgMC42NTg5NTMsIDAuODQzMDYzIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTE2ODk4LCAwLjIwMTM3MywgMC4yNzY1MzEsIDAuMzI5ODI4LCAwLjQxNDk0MywgMC40ODk0MzQsIDAuNTk1NzIyIiwgXAotICAgICAgICAgICIwLjEyODE5NywgMC4yMTI3MjcsIDAuMjg3OTE0LCAwLjM0MTE5LCAwLjQyNjM0NywgMC41MDA4MjYsIDAuNjA3MTEiLCBcCi0gICAgICAgICAgIjAuMTQxMjYxLCAwLjIyNTQ2MSwgMC4zMDA2MzcsIDAuMzUzOTM1LCAwLjQzOTA1NiwgMC41MTM1NywgMC42MTk4NTMiLCBcCi0gICAgICAgICAgIjAuMTUzNjUxLCAwLjIzODE3NiwgMC4zMTMzNjQsIDAuMzY2NjU5LCAwLjQ1MTc4NSwgMC41MjYyNjcsIDAuNjMyNjQxIiwgXAotICAgICAgICAgICIwLjE2NjE3NywgMC4yNTA2MTIsIDAuMzI1Nzg4LCAwLjM3OTA5OSwgMC40NjQyMjMsIDAuNTM4NzA3LCAwLjY0NTAwMSIsIFwKLSAgICAgICAgICAiMC4xODU0NzIsIDAuMjY5OTI1LCAwLjM0NTEyOSwgMC4zOTg0MjYsIDAuNDgzNTY2LCAwLjU1ODA4OCwgMC42NjQzNzYiLCBcCi0gICAgICAgICAgIjAuMjAyMDkyLCAwLjI4NjY0NiwgMC4zNjE4NDksIDAuNDE1MTU3LCAwLjUwMDI4NiwgMC41NzQ3MjcsIDAuNjgxMDY5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU0NjI4LCAwLjE5NTAyNSwgMC4zMzk1ODUsIDAuNDQzMzI3LCAwLjYxMTQ1MiwgMC43NjEzMiwgMC45NzMwNyIsIFwKLSAgICAgICAgICAiMC4wNTQ4NDIsIDAuMTk1MTA2LCAwLjMzOTY0OCwgMC40NDM3MDUsIDAuNjEzMzA0LCAwLjc1ODYzNCwgMC45NzMwNzEiLCBcCi0gICAgICAgICAgIjAuMDU0NiwgMC4xOTUwNTUsIDAuMzM5NTY1LCAwLjQ0NDE3OCwgMC42MTI1MjksIDAuNzU5NjI3LCAwLjk3MzA5IiwgXAotICAgICAgICAgICIwLjA1NDc1OCwgMC4xOTUwMzksIDAuMzM5NCwgMC40NDQ2MzIsIDAuNjExNTE5LCAwLjc2MTMxLCAwLjk2OTQ5MyIsIFwKLSAgICAgICAgICAiMC4wNTQ1OSwgMC4xOTQ5NjEsIDAuMzM5NjQ2LCAwLjQ0NDYxMywgMC42MTE0NywgMC43NjEzMDEsIDAuOTczMDYiLCBcCi0gICAgICAgICAgIjAuMDU1MDMyLCAwLjE5NTA3NywgMC4zMzk2ODIsIDAuNDQ0NTQ5LCAwLjYxMzIwMSwgMC43NTkzNzYsIDAuOTczMDc2IiwgXAotICAgICAgICAgICIwLjA1NTI5OSwgMC4xOTUzNTQsIDAuMzM5NzQzLCAwLjQ0NDY5NiwgMC42MTEzMjEsIDAuNzU5Mjg3LCAwLjk3MDcxNiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3MDAyLCAwLjEzNjk5MiwgMC4yMDA0OTUsIDAuMjQ1NzgsIDAuMzE4MTQ3LCAwLjM4MTUwMSwgMC40NzIyMDIiLCBcCi0gICAgICAgICAgIjAuMDgxNjMsIDAuMTQ4NjUyLCAwLjIxMjE1NCwgMC4yNTc0NzQsIDAuMzI5ODc5LCAwLjM5MzMxNywgMC40ODM4MjkiLCBcCi0gICAgICAgICAgIjAuMDk2NjYxLCAwLjE2Mzc2MSwgMC4yMjcyOTUsIDAuMjcyNTk0LCAwLjM0NDk3NiwgMC40MDgzNzIsIDAuNDk5MDA1IiwgXAotICAgICAgICAgICIwLjExMTY1NiwgMC4xNzg3NDMsIDAuMjQyMjc1LCAwLjI4NzU3NCwgMC4zNjAwMiwgMC40MjM0MTEsIDAuNTEzOTUzIiwgXAotICAgICAgICAgICIwLjEyNjUyNywgMC4xOTM1NjMsIDAuMjU3MDYsIDAuMzAyMzczLCAwLjM3NDgyNCwgMC40MzgyMzgsIDAuNTI4NzU5IiwgXAotICAgICAgICAgICIwLjE0OTU5NywgMC4yMTY3ODksIDAuMjgwMjk1LCAwLjMyNTU5NywgMC4zOTgwMzgsIDAuNDYxNDMyLCAwLjU1MjAyNiIsIFwKLSAgICAgICAgICAiMC4xNjgzNjgsIDAuMjM1ODQyLCAwLjI5OTQyMywgMC4zNDQ2OTksIDAuNDE3MTg0LCAwLjQ4MDUzNiwgMC41NzExNTUiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzk4MzUsIDAuMTYyNzczLCAwLjI4OTU4NiwgMC4zODA4NTksIDAuNTI3Mzc3LCAwLjY1NjIwNCwgMC44NDEwNzgiLCBcCi0gICAgICAgICAgIjAuMDM5OTQ5LCAwLjE2Mjg2MiwgMC4yODk3OTcsIDAuMzgxMDgxLCAwLjUyOTU0OCwgMC42NTY4MzMsIDAuODQzMjcxIiwgXAotICAgICAgICAgICIwLjAzOTg1MiwgMC4xNjI3NTQsIDAuMjg5ODI4LCAwLjM4MjM3NywgMC41Mjk1MjMsIDAuNjU4NjQxLCAwLjg0MTMxOSIsIFwKLSAgICAgICAgICAiMC4wNDAwMzcsIDAuMTYyODk2LCAwLjI4OTc4LCAwLjM4MjIzNiwgMC41Mjk2MDgsIDAuNjU3NTU5LCAwLjg0MDkwNyIsIFwKLSAgICAgICAgICAiMC4wNDAyNiwgMC4xNjI3NzgsIDAuMjkwMzI1LCAwLjM4MTQxNywgMC41Mjk2MDcsIDAuNjU3NDk3LCAwLjg0MzI4NSIsIFwKLSAgICAgICAgICAiMC4wNDE3NzUsIDAuMTYzMSwgMC4yOTAxMTksIDAuMzgxNjMxLCAwLjUyOTUzMywgMC42NTg1MDIsIDAuODQwNzk3IiwgXAotICAgICAgICAgICIwLjA0NDExMiwgMC4xNjM4NTksIDAuMjkwOTA2LCAwLjM4MjQwMSwgMC41MjgyNjgsIDAuNjU4Njk1LCAwLjg0MTgxIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTEwNjc5LCAwLjE5NTE0OSwgMC4yNzAzMDYsIDAuMzIzNTk5LCAwLjQwODcyMSwgMC40ODMyMTcsIDAuNTg5NTAzIiwgXAotICAgICAgICAgICIwLjEyMDU2MSwgMC4yMDUwNTQsIDAuMjgwMjU0LCAwLjMzMzU0OSwgMC40MTg2NjksIDAuNDkzMTc4LCAwLjU5OTQ2NSIsIFwKLSAgICAgICAgICAiMC4xMzM0MTMsIDAuMjE3ODE1LCAwLjI5MzAxMiwgMC4zNDYzMSwgMC40MzE0MzMsIDAuNTA1ODc0LCAwLjYxMjI3IiwgXAotICAgICAgICAgICIwLjE0NzA4LCAwLjIzMTUyNSwgMC4zMDY3MDYsIDAuMzYwMDAzLCAwLjQ0NTE0MSwgMC41MTk2NDYsIDAuNjI1OTM1IiwgXAotICAgICAgICAgICIwLjE2MDM4NCwgMC4yNDQ3NzMsIDAuMzE5OTgxLCAwLjM3MzI4NCwgMC40NTg0MTksIDAuNTMyOTA3LCAwLjYzOTMwMyIsIFwKLSAgICAgICAgICAiMC4xODE1NywgMC4yNjU4MywgMC4zNDEwMjksIDAuMzk0MzQ3LCAwLjQ3OTQ4OCwgMC41NTQwMDEsIDAuNjYwMjk1IiwgXAotICAgICAgICAgICIwLjE5OTc2NywgMC4yODQzMDcsIDAuMzU5NTIzLCAwLjQxMjgzOSwgMC40OTc5NzgsIDAuNTcyNDMyLCAwLjY3ODc4NiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1NDU4MywgMC4xOTUwNzEsIDAuMzM5NTMyLCAwLjQ0MzIxOCwgMC42MTE5OTIsIDAuNzU5MjQ2LCAwLjk3MzA3NCIsIFwKLSAgICAgICAgICAiMC4wNTQ4MDQsIDAuMTk1MDcyLCAwLjMzOTY2MiwgMC40NDMyNzMsIDAuNjEzMjUsIDAuNzU5Nzc5LCAwLjk3MzA4MyIsIFwKLSAgICAgICAgICAiMC4wNTQ2NjYsIDAuMTk1MTE1LCAwLjMzOTY1OCwgMC40NDQ2NDMsIDAuNjExNDc3LCAwLjc2MTIyOCwgMC45Njk5MyIsIFwKLSAgICAgICAgICAiMC4wNTQ1OTUsIDAuMTk1MDg5LCAwLjMzOTU4MSwgMC40NDQxMTMsIDAuNjEyNDQzLCAwLjc1ODgyLCAwLjk3MzA3MyIsIFwKLSAgICAgICAgICAiMC4wNTQ2NzQsIDAuMTk1MDA3LCAwLjMzOTYyNSwgMC40NDQ2MjEsIDAuNjExOTMxLCAwLjc2MTMwMSwgMC45NjkzNjQiLCBcCi0gICAgICAgICAgIjAuMDU1MTI5LCAwLjE5NTQyMSwgMC4zMzk3MzcsIDAuNDQzNzY4LCAwLjYxMjYyMiwgMC43NTkwOTgsIDAuOTczMDgyIiwgXAotICAgICAgICAgICIwLjA1NTcwMiwgMC4xOTU0NzEsIDAuMzM5ODAxLCAwLjQ0NDczMywgMC42MTEyOTUsIDAuNzYxMjIzLCAwLjk3MzA1NCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA3MTg5LCAwLjAwNzQwNywgMC4wMDc0MzksIDAuMDA3NDUyLCAwLjAwNzQ1OCwgMC4wMDc0NjMsIDAuMDA3NDY3IiwgXAotICAgICAgICAgICIwLjAwNzEzOCwgMC4wMDczNiwgMC4wMDczOTQsIDAuMDA3NDA0LCAwLjAwNzQxNCwgMC4wMDc0MTksIDAuMDA3NDIzIiwgXAotICAgICAgICAgICIwLjAwNzA5NiwgMC4wMDczMjIsIDAuMDA3MzYyLCAwLjAwNzM3NywgMC4wMDczODQsIDAuMDA3MzkyLCAwLjAwNzM5NyIsIFwKLSAgICAgICAgICAiMC4wMDcwNTcsIDAuMDA3Mjg1LCAwLjAwNzMzLCAwLjAwNzM0OSwgMC4wMDczNjgsIDAuMDA3MzcsIDAuMDA3MzgzIiwgXAotICAgICAgICAgICIwLjAwNzAxNywgMC4wMDcyNTMsIDAuMDA3MzA4LCAwLjAwNzMyOSwgMC4wMDczNDQsIDAuMDA3MzUzLCAwLjAwNzM2MiIsIFwKLSAgICAgICAgICAiMC4wMDcwMDEsIDAuMDA3MjI2LCAwLjAwNzI4NywgMC4wMDczMDgsIDAuMDA3MzI4LCAwLjAwNzMzOSwgMC4wMDczNDkiLCBcCi0gICAgICAgICAgIjAuMDA2OTcxLCAwLjAwNzIwMywgMC4wMDcyNjYsIDAuMDA3MjkxLCAwLjAwNzMxNCwgMC4wMDczMjgsIDAuMDA3MzM5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDkzNTMsIDAuMDA5Njk1LCAwLjAwOTc2NywgMC4wMDk3OSwgMC4wMDk4MTEsIDAuMDA5ODIyLCAwLjAwOTgzMyIsIFwKLSAgICAgICAgICAiMC4wMDkzMjMsIDAuMDA5NjcyLCAwLjAwOTc0NSwgMC4wMDk3NjksIDAuMDA5NzksIDAuMDA5ODAxLCAwLjAwOTgxMSIsIFwKLSAgICAgICAgICAiMC4wMDkzMDEsIDAuMDA5NjQzLCAwLjAwOTcyMSwgMC4wMDk3NDYsIDAuMDA5NzcsIDAuMDA5NzgyLCAwLjAwOTc5MiIsIFwKLSAgICAgICAgICAiMC4wMDkyNzcsIDAuMDA5NjI3LCAwLjAwOTcwNiwgMC4wMDk3MzIsIDAuMDA5NzU2LCAwLjAwOTc2OSwgMC4wMDk3OCIsIFwKLSAgICAgICAgICAiMC4wMDkyNjgsIDAuMDA5NjExLCAwLjAwOTY5MywgMC4wMDk3MiwgMC4wMDk3NDUsIDAuMDA5NzU4LCAwLjAwOTc3IiwgXAotICAgICAgICAgICIwLjAwOTIzNCwgMC4wMDk1NzYsIDAuMDA5NjY1LCAwLjAwOTY5NywgMC4wMDk3MjYsIDAuMDA5NzQxLCAwLjAwOTc1NSIsIFwKLSAgICAgICAgICAiMC4wMDkyMjgsIDAuMDA5NTU1LCAwLjAwOTY1LCAwLjAwOTY4MywgMC4wMDk3MTUsIDAuMDA5NzMxLCAwLjAwOTc0NyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2NjAzLCAwLjAwNjgyMSwgMC4wMDY4NTEsIDAuMDA2ODYsIDAuMDA2ODczLCAwLjAwNjg3MiwgMC4wMDY4NyIsIFwKLSAgICAgICAgICAiMC4wMDY1NTksIDAuMDA2NzkzLCAwLjAwNjgyMiwgMC4wMDY4MzMsIDAuMDA2ODQsIDAuMDA2ODM5LCAwLjAwNjg0NyIsIFwKLSAgICAgICAgICAiMC4wMDY0OTYsIDAuMDA2NzM1LCAwLjAwNjc3NSwgMC4wMDY3ODYsIDAuMDA2Nzk5LCAwLjAwNjgwNCwgMC4wMDY4MDYiLCBcCi0gICAgICAgICAgIjAuMDA2NDM2LCAwLjAwNjY3NywgMC4wMDY3MjcsIDAuMDA2NzQzLCAwLjAwNjc1NywgMC4wMDY3NjUsIDAuMDA2NzciLCBcCi0gICAgICAgICAgIjAuMDA2Mzk1LCAwLjAwNjY0NSwgMC4wMDY3MDEsIDAuMDA2NzIsIDAuMDA2NzM5LCAwLjAwNjc0MywgMC4wMDY3NTUiLCBcCi0gICAgICAgICAgIjAuMDA2MzYxLCAwLjAwNjU5OSwgMC4wMDY2NjcsIDAuMDA2Njg2LCAwLjAwNjcwOCwgMC4wMDY3MTksIDAuMDA2NzI5IiwgXAotICAgICAgICAgICIwLjAwNjM0NCwgMC4wMDY1NzIsIDAuMDA2NjQxLCAwLjAwNjY2NSwgMC4wMDY2OSwgMC4wMDY3MDMsIDAuMDA2NzE3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDg4NDksIDAuMDA5MTkzLCAwLjAwOTI2NCwgMC4wMDkyODgsIDAuMDA5MzEsIDAuMDA5MzIxLCAwLjAwOTMzMSIsIFwKLSAgICAgICAgICAiMC4wMDg4LCAwLjAwOTE1LCAwLjAwOTIyNSwgMC4wMDkyNSwgMC4wMDkyNzIsIDAuMDA5Mjg0LCAwLjAwOTI5NSIsIFwKLSAgICAgICAgICAiMC4wMDg3NjMsIDAuMDA5MTAzLCAwLjAwOTE4NCwgMC4wMDkyMTEsIDAuMDA5MjM3LCAwLjAwOTI1LCAwLjAwOTI2MSIsIFwKLSAgICAgICAgICAiMC4wMDg3MzksIDAuMDA5MDcyLCAwLjAwOTE1NywgMC4wMDkxODcsIDAuMDA5MjE0LCAwLjAwOTIyOCwgMC4wMDkyNDIiLCBcCi0gICAgICAgICAgIjAuMDA4NzI2LCAwLjAwOTA0MiwgMC4wMDkxMzEsIDAuMDA5MTYzLCAwLjAwOTE5NCwgMC4wMDkyMSwgMC4wMDkyMjUiLCBcCi0gICAgICAgICAgIjAuMDA4NjksIDAuMDA4OTk1LCAwLjAwOTA5NCwgMC4wMDkxMzEsIDAuMDA5MTY3LCAwLjAwOTE4NiwgMC4wMDkyMDUiLCBcCi0gICAgICAgICAgIjAuMDA4Njc4LCAwLjAwODk3NywgMC4wMDkwNzgsIDAuMDA5MTE3LCAwLjAwOTE1NSwgMC4wMDkxNzYsIDAuMDA5MTk3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IE9SM1gxICoKLSAqIC0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChPUjNYMSkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjA4OTY2NDU7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYxODU5NzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MTQ1NjM7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjE4NTk3OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDE0NiwgMC4wMDAxNSwgMC4wMDAxNTMsIDAuMDAwMTU0LCAwLjAwMDE1NSwgMC4wMDAxNTYsIDAuMDAwMTU2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjA3LCAwLjAwMDIwOCwgMC4wMDAyMDgsIDAuMDAwMjA4LCAwLjAwMDIwOCwgMC4wMDAyMDgsIDAuMDAwMjA4Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2MTE5MzY7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjA4ODUzOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDYxMTkzNjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxNDYsIDAuMDAwMTU0LCAwLjAwMDE1NywgMC4wMDAxNTgsIDAuMDAwMTU5LCAwLjAwMDE1OSwgMC4wMDAxNiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDE3LCAwLjAwMDE3LCAwLjAwMDE3LCAwLjAwMDE3LCAwLjAwMDE3LCAwLjAwMDE3LCAwLjAwMDE3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihDKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2MDI1MDY7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjAyMzk2OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDYwMjUwNjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAwNSwgMC4wMDAwNSwgMC4wMDAwNSwgMC4wMDAwNSwgMC4wMDAwNSwgMC4wMDAwNSwgMC4wMDAwNSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDIyNCwgMC4wMDAyMjQsIDAuMDAwMjI0LCAwLjAwMDIyNCwgMC4wMDAyMjQsIDAuMDAwMjI0LCAwLjAwMDIyNCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjExNjM3MjsKLSAgICBmdW5jdGlvbiA6ICIoKEErQikrQykiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE0NDY0LCAwLjE4ODE1NywgMC40MzM0OCwgMC42NDk1MzgsIDAuOTM3NDA2LCAxLjUxMzE2LCAxLjg3Mjc0IiwgXAotICAgICAgICAgICIwLjE1NjMwNSwgMC4xOTk4NzEsIDAuNDQ1MTg1LCAwLjY2MTIxNCwgMC45NDkxMTQsIDEuNTI0NzMsIDEuODg0NTQiLCBcCi0gICAgICAgICAgIjAuMTcxNTc4LCAwLjIxNTA5NywgMC40NjA0MjcsIDAuNjc2NTIxLCAwLjk2NDM1NiwgMS41Mzk5NiwgMS44OTk3IiwgXAotICAgICAgICAgICIwLjE4Njk0NSwgMC4yMzA1MjQsIDAuNDc1ODU1LCAwLjY5MTg4NywgMC45Nzk3ODYsIDEuNTU1NTEsIDEuOTE1MDkiLCBcCi0gICAgICAgICAgIjAuMjAyMzkzLCAwLjI0NTk0NCwgMC40OTEzMDUsIDAuNzA3MzM3LCAwLjk5NTI3MywgMS41NzA4NywgMS45MzA1NiIsIFwKLSAgICAgICAgICAiMC4yMjY0NjMsIDAuMjY5OTgxLCAwLjUxNTM0NCwgMC43MzEzNzcsIDEuMDE5MjYsIDEuNTk0ODgsIDEuOTU0NjgiLCBcCi0gICAgICAgICAgIjAuMjQ3NTc2LCAwLjI5MTA4OCwgMC41MzY0MjksIDAuNzUyNDY5LCAxLjA0MDM2LCAxLjYxNTk2LCAxLjk3NTciKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTYyMjA3LCAwLjI0ODk2MiwgMC43NDU0NTIsIDEuMTgyMDMsIDEuNzcwMiwgMi45NDAzMiwgMy42NzM0MSIsIFwKLSAgICAgICAgICAiMC4xNjIxNzgsIDAuMjQ4OTA5LCAwLjc0NTM1MywgMS4xODQ0LCAxLjc2OTk4LCAyLjk0MTE2LCAzLjY3MjQ1IiwgXAotICAgICAgICAgICIwLjE2MjE1NCwgMC4yNDg5MjEsIDAuNzQ1NDE5LCAxLjE4MzkzLCAxLjc2OTY5LCAyLjk0MTEzLCAzLjY3MjgxIiwgXAotICAgICAgICAgICIwLjE2MjA5OCwgMC4yNDg4NywgMC43NDUyOTMsIDEuMTg0NDcsIDEuNzY5OTIsIDIuOTQwNCwgMy42NjgxMiIsIFwKLSAgICAgICAgICAiMC4xNjIwNjcsIDAuMjQ4Mzg2LCAwLjc0NTQwOSwgMS4xODQ0NywgMS43NjY3NSwgMi45NDA4OSwgMy42NzMwNSIsIFwKLSAgICAgICAgICAiMC4xNjIwNDMsIDAuMjQ4MzA1LCAwLjc0NTA3MiwgMS4xODQ1MiwgMS43NjkxMywgMi45NDA5NSwgMy42NzI0NCIsIFwKLSAgICAgICAgICAiMC4xNjIxNTUsIDAuMjQ4ODA1LCAwLjc0NTMwOCwgMS4xODM4MiwgMS43Njg5OSwgMi45MzY3NCwgMy42NzI0NiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yNTA4MjksIDAuMzAxOTA4LCAwLjU4MjU3NSwgMC44Mjk1NTIsIDEuMTU4ODMsIDEuODE3NjMsIDIuMjI5MDMiLCBcCi0gICAgICAgICAgIjAuMjYyMjA5LCAwLjMxMzQyMiwgMC41OTQwOCwgMC44NDEwODEsIDEuMTcwNCwgMS44Mjk1OCwgMi4yNDA4IiwgXAotICAgICAgICAgICIwLjI3NTE3NiwgMC4zMjYzNjEsIDAuNjA3MDMsIDAuODU0MDIsIDEuMTgzMzUsIDEuODQyNSwgMi4yNTMyNiIsIFwKLSAgICAgICAgICAiMC4yODcyMjYsIDAuMzM4MzM5LCAwLjYxOTAwOCwgMC44NjYwMTYsIDEuMTk1MzMsIDEuODU0NTEsIDIuMjY2MTYiLCBcCi0gICAgICAgICAgIjAuMjk4NzEyLCAwLjM0OTkwMywgMC42MzA1ODEsIDAuODc3NTg5LCAxLjIwNjksIDEuODY2MDgsIDIuMjc2ODgiLCBcCi0gICAgICAgICAgIjAuMzE2MzM5LCAwLjM2NzUyMywgMC42NDgxOCwgMC44OTUxNDksIDEuMjI0NCwgMS44ODMxMSwgMi4yOTQ2NiIsIFwKLSAgICAgICAgICAiMC4zMzEyMzEsIDAuMzgyNDcyLCAwLjY2MzE1MywgMC45MTAxNTQsIDEuMjM5NDgsIDEuODk4NjgsIDIuMzA5NDgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTk3NTA2LCAwLjI5MDM1NSwgMC44Mzc0NTUsIDEuMzI4MTYsIDEuOTc4ODksIDMuMjkxNTksIDQuMTAwNjciLCBcCi0gICAgICAgICAgIjAuMTk3MTksIDAuMjkwMzk1LCAwLjgzODEyOSwgMS4zMjQ0OSwgMS45Nzc2NywgMy4yODI4MiwgNC4xMDU4IiwgXAotICAgICAgICAgICIwLjE5NzE4NSwgMC4yOTAzODgsIDAuODM4MzAyLCAxLjMyODE3LCAxLjk3NzIsIDMuMjgyOTEsIDQuMTA1ODkiLCBcCi0gICAgICAgICAgIjAuMTk3MjYzLCAwLjI5MDM5LCAwLjgzODA5NywgMS4zMjQ0LCAxLjk3NzY3LCAzLjI4MjgzLCA0LjA5OTc3IiwgXAotICAgICAgICAgICIwLjE5NzIwNSwgMC4yOTAzMzUsIDAuODM1Nzg1LCAxLjMyNDE0LCAxLjk3OTQyLCAzLjI4MjgsIDQuMDk4NjgiLCBcCi0gICAgICAgICAgIjAuMTk3MDk5LCAwLjI5MDI4NSwgMC44MzY5ODEsIDEuMzI4MTMsIDEuOTc4OCwgMy4yODY2NiwgNC4xMDE0NCIsIFwKLSAgICAgICAgICAiMC4xOTcwMjIsIDAuMjkwMjExLCAwLjgzNTY2OCwgMS4zMjQ0LCAxLjk3ODE2LCAzLjI4MjcyLCA0LjA5ODUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTM4ODk4LCAwLjE4MjIxNCwgMC40MjcwOTMsIDAuNjQyOTg5LCAwLjkzMDcxMSwgMS41MDYxNSwgMS44NjU3NyIsIFwKLSAgICAgICAgICAiMC4xNTA5NDUsIDAuMTk0Mjk5LCAwLjQzOTE3MSwgMC42NTUwNDUsIDAuOTQyNzkxLCAxLjUxODIyLCAxLjg3NzkiLCBcCi0gICAgICAgICAgIjAuMTY1OTM3LCAwLjIwOTI4NywgMC40NTQxODYsIDAuNjcwMDY0LCAwLjk1NzgwNywgMS41MzMyNCwgMS44OTMwNCIsIFwKLSAgICAgICAgICAiMC4xODEzODUsIDAuMjI0NzU0LCAwLjQ2OTY1NCwgMC42ODU1MzMsIDAuOTczMjg0LCAxLjU0ODcyLCAxLjkwODM3IiwgXAotICAgICAgICAgICIwLjE5NjU4NSwgMC4yMzk5NzUsIDAuNDg0ODc5LCAwLjcwMDc3MSwgMC45ODg1MTYsIDEuNTYzOTUsIDEuOTIzNzMiLCBcCi0gICAgICAgICAgIjAuMjIwNjczLCAwLjI2NDAzNywgMC41MDg5NjgsIDAuNzI0ODUyLCAxLjAxMjcyLCAxLjU4ODA1LCAxLjk0NzY3IiwgXAotICAgICAgICAgICIwLjI0MDg3MiwgMC4yODQyNiwgMC41MjkxOTUsIDAuNzQ1MDc1LCAxLjAzMjksIDEuNjA4MjcsIDEuOTY3ODkiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTYxMDQzLCAwLjI0NzgzNCwgMC43NDM0ODEsIDEuMTgxMiwgMS43NjY4LCAyLjkzOTU3LCAzLjY3MTA4IiwgXAotICAgICAgICAgICIwLjE2MDk5NSwgMC4yNDc3MzEsIDAuNzQ0MzE5LCAxLjE4MTk2LCAxLjc2Njc1LCAyLjkzOTI3LCAzLjY3MzE2IiwgXAotICAgICAgICAgICIwLjE2MDk2OSwgMC4yNDczMzQsIDAuNzQ0NTkxLCAxLjE4MjA0LCAxLjc2NjYxLCAyLjkzOTE3LCAzLjY3MzIxIiwgXAotICAgICAgICAgICIwLjE2MDk0NywgMC4yNDczNzcsIDAuNzQ0Mzc0LCAxLjE4MTk1LCAxLjc2NjY3LCAyLjkzOTE3LCAzLjY2NzIxIiwgXAotICAgICAgICAgICIwLjE2MDk5NiwgMC4yNDc3NzgsIDAuNzQ0NTU2LCAxLjE4MjA1LCAxLjc2NjYxLCAyLjkzOTc1LCAzLjY3Mjk0IiwgXAotICAgICAgICAgICIwLjE2MTE0NSwgMC4yNDc3MzcsIDAuNzQ0Mzc0LCAxLjE4MTg1LCAxLjc2NTIsIDIuOTQwMTksIDMuNjcyMyIsIFwKLSAgICAgICAgICAiMC4xNjEzMjMsIDAuMjQ3OTYsIDAuNzQzNDE4LCAxLjE4MTg0LCAxLjc2OTQsIDIuOTM5ODYsIDMuNjcxMzciKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjQyNTU4LCAwLjI5MzQzMiwgMC41NzQxNSwgMC44MjExNDksIDEuMTUwMzYsIDEuODA5MDksIDIuMjIwNzEiLCBcCi0gICAgICAgICAgIjAuMjUyODI5LCAwLjMwMzk5MSwgMC41ODQ2NzcsIDAuODMxNjgyLCAxLjE2MDg0LCAxLjgxOTg2LCAyLjIzMDgyIiwgXAotICAgICAgICAgICIwLjI2NDk4MywgMC4zMTYxNzMsIDAuNTk2ODY5LCAwLjg0Mzk2MSwgMS4xNzMxMSwgMS44MzIyMSwgMi4yNDM0OCIsIFwKLSAgICAgICAgICAiMC4yNzcwODMsIDAuMzI4MzIzLCAwLjYwOTAzNiwgMC44NTYwNTcsIDEuMTg1MzcsIDEuODQ0NTgsIDIuMjU1MzgiLCBcCi0gICAgICAgICAgIjAuMjg4OTQ1LCAwLjM0MDA5OCwgMC42MjA4MDgsIDAuODY3ODE1LCAxLjE5NzE3LCAxLjg1NjI5LCAyLjI2NzE1IiwgXAotICAgICAgICAgICIwLjMwNzcxNCwgMC4zNTg5MDQsIDAuNjM5NjE2LCAwLjg4NjU5NCwgMS4yMTU5MywgMS44NzQ4MiwgMi4yODYwNyIsIFwKLSAgICAgICAgICAiMC4zMjM5NzUsIDAuMzc1MTY5LCAwLjY1NTg4NiwgMC45MDI4NzIsIDEuMjMyMTEsIDEuODkwODMsIDIuMzAyNDEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTk3MzE2LCAwLjI5MDYyMywgMC44Mzc0NTgsIDEuMzI4MTksIDEuOTc4MjIsIDMuMjg3MjgsIDQuMTA0MzciLCBcCi0gICAgICAgICAgIjAuMTk3MjYyLCAwLjI5MDM4NSwgMC44MzY1MjIsIDEuMzI4MTYsIDEuOTgzMSwgMy4yODU5OCwgNC4xMDY0IiwgXAotICAgICAgICAgICIwLjE5NzU4MSwgMC4yOTA0ODgsIDAuODM3NDg0LCAxLjMyODE1LCAxLjk4MzA4LCAzLjI4NDc4LCA0LjEwMTM4IiwgXAotICAgICAgICAgICIwLjE5NzI0OCwgMC4yOTAzNywgMC44MzU3NzUsIDEuMzI0MTIsIDEuOTc5MjgsIDMuMjgyNzUsIDQuMDk4NTMiLCBcCi0gICAgICAgICAgIjAuMTk3MTksIDAuMjkwMzA0LCAwLjgzODE5LCAxLjMyODE2LCAxLjk3NjgsIDMuMjgyOTksIDQuMTA1MDYiLCBcCi0gICAgICAgICAgIjAuMTk3MDQ1LCAwLjI5MDIyMSwgMC44MzU5MjksIDEuMzI4MTIsIDEuOTgwOTMsIDMuMjg2ODYsIDQuMTAwMDYiLCBcCi0gICAgICAgICAgIjAuMTk3MTIsIDAuMjkwMzA4LCAwLjgzNjk1MywgMS4zMjgxNCwgMS45NzgzNSwgMy4yODYwMywgNC4xMDE1OCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMzIyLCAwLjE3NTQxLCAwLjQyMDA3OCwgMC42MzYxMDMsIDAuOTIzNjQ4LCAxLjQ5OTI0LCAxLjg1ODc4IiwgXAotICAgICAgICAgICIwLjE0NDI5OSwgMC4xODc1MzIsIDAuNDMyMjk4LCAwLjY0ODA2OSwgMC45MzU3MTIsIDEuNTExMjYsIDEuODcxNTUiLCBcCi0gICAgICAgICAgIjAuMTU5NjA3LCAwLjIwMjgzLCAwLjQ0NzY2MSwgMC42NjM0NTUsIDAuOTUxMDkzLCAxLjUyNjU3LCAxLjg4NzEiLCBcCi0gICAgICAgICAgIjAuMTc0ODc4LCAwLjIxODEyMywgMC40NjI3OTksIDAuNjc4NzY2LCAwLjk2NjM5NCwgMS41NDI2LCAxLjkwMTU5IiwgXAotICAgICAgICAgICIwLjE4OTg2MiwgMC4yMzMxMDMsIDAuNDc3NzkzLCAwLjY5MzcxMSwgMC45ODE0NTUsIDEuNTU3MjEsIDEuOTE2NDYiLCBcCi0gICAgICAgICAgIjAuMjEzNTk2LCAwLjI1NjgzNCwgMC41MDE1NzEsIDAuNzE3NTI2LCAxLjAwNTE5LCAxLjU4MTI0LCAxLjk0MDQiLCBcCi0gICAgICAgICAgIjAuMjMyNTU5LCAwLjI3NTg3NiwgMC41MjA1NzksIDAuNzM2NDgyLCAxLjAyNDMsIDEuNTk5NzksIDEuOTU5ODMiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTYwMzI0LCAwLjI0NjU3NCwgMC43NDQ0MjIsIDEuMTgwNzEsIDEuNzY0ODMsIDIuOTQwMzksIDMuNjYzOTMiLCBcCi0gICAgICAgICAgIjAuMTYwMzE2LCAwLjI0NjUyMywgMC43NDIzOSwgMS4xODA5OSwgMS43NjQ4MSwgMi45Mzk3NiwgMy42NjU2MiIsIFwKLSAgICAgICAgICAiMC4xNjAxMzIsIDAuMjQ2NjE4LCAwLjc0MjM5OSwgMS4xODA3NSwgMS43NjQ4LCAyLjkzMzQ3LCAzLjY2NDI2IiwgXAotICAgICAgICAgICIwLjE2MDMwMiwgMC4yNDY2NTMsIDAuNzQ0MzcyLCAxLjE4MDczLCAxLjc2OTQ0LCAyLjkzMzYyLCAzLjY3MzIzIiwgXAotICAgICAgICAgICIwLjE2MDIyMywgMC4yNDY2MzUsIDAuNzQ0MzQzLCAxLjE4MDkxLCAxLjc2NDQ1LCAyLjkzNjcsIDMuNjcyOTgiLCBcCi0gICAgICAgICAgIjAuMTYwNTQ2LCAwLjI0NjksIDAuNzQyMTc5LCAxLjE4MDcxLCAxLjc2OSwgMi45MzM5OCwgMy42NzI1OSIsIFwKLSAgICAgICAgICAiMC4xNjExOCwgMC4yNDc1NTEsIDAuNzQ0MzYsIDEuMTgwOTYsIDEuNzY1NDMsIDIuOTQwNjIsIDMuNjY0NjEiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjI2MjA0LCAwLjI3NzQxNywgMC41NTgxNTgsIDAuODA1MTYxLCAxLjEzNDUsIDEuNzkyODYsIDIuMjA0NTkiLCBcCi0gICAgICAgICAgIjAuMjM1NTM2LCAwLjI4NjczMSwgMC41Njc0MjUsIDAuODE0NDEsIDEuMTQzNjEsIDEuODAyNTQsIDIuMjEzOTMiLCBcCi0gICAgICAgICAgIjAuMjQ3MDU3LCAwLjI5ODI2OSwgMC41NzkwMDIsIDAuODI2MDMzLCAxLjE1NTM2LCAxLjgxNDU1LCAyLjIyNTgiLCBcCi0gICAgICAgICAgIjAuMjU5NjE4LCAwLjMxMDc2MiwgMC41OTE1MzEsIDAuODM4NTQxLCAxLjE2Nzg3LCAxLjgyNzA5LCAyLjIzODMyIiwgXAotICAgICAgICAgICIwLjI3MTkyMywgMC4zMjMxMzIsIDAuNjAzODY0LCAwLjg1MDg1NywgMS4xODAxMiwgMS44Mzg3NywgMi4yNTA0IiwgXAotICAgICAgICAgICIwLjI5MTYzOSwgMC4zNDI4MjEsIDAuNjIzNTgyLCAwLjg3MDYwMiwgMS4xOTk3OCwgMS44NTgzNiwgMi4yNjk3MiIsIFwKLSAgICAgICAgICAiMC4zMDg3NjcsIDAuMzU5OTQxLCAwLjY0MDczMSwgMC44ODc3NDYsIDEuMjE2OSwgMS44NzU2NSwgMi4yODczMyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xOTcyMTUsIDAuMjkwNDExLCAwLjgzODM1OCwgMS4zMjgxNywgMS45NzY1NCwgMy4yOTA3MiwgNC4xMDI3IiwgXAotICAgICAgICAgICIwLjE5NzMzNCwgMC4yOTAzNzYsIDAuODM3Mjk1LCAxLjMyODE0LCAxLjk4MzE0LCAzLjI4NTQ4LCA0LjEwMTExIiwgXAotICAgICAgICAgICIwLjE5NzIyNSwgMC4yOTAzMjMsIDAuODM3OTk5LCAxLjMyNDMsIDEuOTc3OTgsIDMuMjgyODEsIDQuMTA0MDQiLCBcCi0gICAgICAgICAgIjAuMTk3MTMxLCAwLjI5MDE4MywgMC44MzU3NTMsIDEuMzI4MTYsIDEuOTgwMTQsIDMuMjgyNzQsIDQuMTA0NjYiLCBcCi0gICAgICAgICAgIjAuMTk3MDYsIDAuMjkwMjAzLCAwLjgzNjc2MywgMS4zMjgxNCwgMS45Nzg4OCwgMy4yODQxNCwgNC4xMDE0IiwgXAotICAgICAgICAgICIwLjE5NzEzMiwgMC4yOTAyNzQsIDAuODM4MTc5LCAxLjMyODE1LCAxLjk4MTAzLCAzLjI4MjgsIDQuMTA5ODkiLCBcCi0gICAgICAgICAgIjAuMTk3NzA2LCAwLjI5MDYyMywgMC44MzY4NjgsIDEuMzI4MTYsIDEuOTgzMDcsIDMuMjgyOTgsIDQuMTA1NzkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDE0MjIsIDAuMDAxNDI0LCAwLjAwMTQyOCwgMC4wMDE0MjksIDAuMDAxNDI5LCAwLjAwMTQzLCAwLjAwMTQzIiwgXAotICAgICAgICAgICIwLjAwMTQwOSwgMC4wMDE0MTIsIDAuMDAxNDE2LCAwLjAwMTQxNywgMC4wMDE0MTgsIDAuMDAxNDE3LCAwLjAwMTQxNyIsIFwKLSAgICAgICAgICAiMC4wMDE0MDIsIDAuMDAxNDA1LCAwLjAwMTQxLCAwLjAwMTQxLCAwLjAwMTQxMSwgMC4wMDE0MTEsIDAuMDAxNDExIiwgXAotICAgICAgICAgICIwLjAwMTM5NiwgMC4wMDE0MDEsIDAuMDAxNDA2LCAwLjAwMTQwNiwgMC4wMDE0MDgsIDAuMDAxNDA4LCAwLjAwMTQwOCIsIFwKLSAgICAgICAgICAiMC4wMDEzOTIsIDAuMDAxMzk2LCAwLjAwMTQwMiwgMC4wMDE0MDQsIDAuMDAxNDA1LCAwLjAwMTQwNSwgMC4wMDE0MDUiLCBcCi0gICAgICAgICAgIjAuMDAxMzg3LCAwLjAwMTM5MSwgMC4wMDEzOTksIDAuMDAxNCwgMC4wMDE0MDEsIDAuMDAxNDAyLCAwLjAwMTQwMiIsIFwKLSAgICAgICAgICAiMC4wMDEzODUsIDAuMDAxMzg5LCAwLjAwMTM5NywgMC4wMDEzOTksIDAuMDAxNCwgMC4wMDE0MDEsIDAuMDAxNDAyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyNDgyLCAwLjAwMjQ4OCwgMC4wMDI0OTYsIDAuMDAyNDk3LCAwLjAwMjQ5OCwgMC4wMDI0OTgsIDAuMDAyNDk4IiwgXAotICAgICAgICAgICIwLjAwMjQ3NywgMC4wMDI0ODMsIDAuMDAyNDksIDAuMDAyNDkxLCAwLjAwMjQ5MiwgMC4wMDI0OTIsIDAuMDAyNDkzIiwgXAotICAgICAgICAgICIwLjAwMjQ3MiwgMC4wMDI0NzksIDAuMDAyNDg2LCAwLjAwMjQ4NywgMC4wMDI0ODgsIDAuMDAyNDg4LCAwLjAwMjQ4OCIsIFwKLSAgICAgICAgICAiMC4wMDI0NjksIDAuMDAyNDc1LCAwLjAwMjQ4MywgMC4wMDI0ODQsIDAuMDAyNDg1LCAwLjAwMjQ4NSwgMC4wMDI0ODUiLCBcCi0gICAgICAgICAgIjAuMDAyNDY3LCAwLjAwMjQ3MywgMC4wMDI0ODEsIDAuMDAyNDgyLCAwLjAwMjQ4MywgMC4wMDI0ODMsIDAuMDAyNDg0IiwgXAotICAgICAgICAgICIwLjAwMjQ2NCwgMC4wMDI0NzEsIDAuMDAyNDc5LCAwLjAwMjQ4LCAwLjAwMjQ4MSwgMC4wMDI0ODIsIDAuMDAyNDgyIiwgXAotICAgICAgICAgICIwLjAwMjQ2MiwgMC4wMDI0NjksIDAuMDAyNDc4LCAwLjAwMjQ4LCAwLjAwMjQ4LCAwLjAwMjQ4MSwgMC4wMDI0ODEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDExOTUsIDAuMDAxMTk4LCAwLjAwMTIwMywgMC4wMDEyMDIsIDAuMDAxMjA0LCAwLjAwMTIwNiwgMC4wMDEyMDQiLCBcCi0gICAgICAgICAgIjAuMDAxMTg4LCAwLjAwMTE5MiwgMC4wMDExOTcsIDAuMDAxMTk3LCAwLjAwMTE5OCwgMC4wMDExOTgsIDAuMDAxMTk4IiwgXAotICAgICAgICAgICIwLjAwMTE3OCwgMC4wMDExODMsIDAuMDAxMTg4LCAwLjAwMTE4OSwgMC4wMDExOSwgMC4wMDExOSwgMC4wMDExOSIsIFwKLSAgICAgICAgICAiMC4wMDExNywgMC4wMDExNzUsIDAuMDAxMTgzLCAwLjAwMTE4NCwgMC4wMDExODQsIDAuMDAxMTg1LCAwLjAwMTE4NSIsIFwKLSAgICAgICAgICAiMC4wMDExNjMsIDAuMDAxMTY5LCAwLjAwMTE3NywgMC4wMDExOCwgMC4wMDExOCwgMC4wMDExODEsIDAuMDAxMTgxIiwgXAotICAgICAgICAgICIwLjAwMTE1NiwgMC4wMDExNjIsIDAuMDAxMTcyLCAwLjAwMTE3NCwgMC4wMDExNzUsIDAuMDAxMTc2LCAwLjAwMTE3NiIsIFwKLSAgICAgICAgICAiMC4wMDExNTEsIDAuMDAxMTU4LCAwLjAwMTE2OSwgMC4wMDExNzEsIDAuMDAxMTczLCAwLjAwMTE3NCwgMC4wMDExNzQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDIzMzksIDAuMDAyMzQ1LCAwLjAwMjM1NiwgMC4wMDIzNTgsIDAuMDAyMzU5LCAwLjAwMjM2LCAwLjAwMjM2IiwgXAotICAgICAgICAgICIwLjAwMjMzMywgMC4wMDIzNCwgMC4wMDIzNSwgMC4wMDIzNTIsIDAuMDAyMzUzLCAwLjAwMjM1NCwgMC4wMDIzNTQiLCBcCi0gICAgICAgICAgIjAuMDAyMzI3LCAwLjAwMjMzNSwgMC4wMDIzNDUsIDAuMDAyMzQ3LCAwLjAwMjM0OCwgMC4wMDIzNDksIDAuMDAyMzQ5IiwgXAotICAgICAgICAgICIwLjAwMjMyNSwgMC4wMDIzMzIsIDAuMDAyMzQzLCAwLjAwMjM0NSwgMC4wMDIzNDYsIDAuMDAyMzQ3LCAwLjAwMjM0NyIsIFwKLSAgICAgICAgICAiMC4wMDIzMjIsIDAuMDAyMzMsIDAuMDAyMzQxLCAwLjAwMjM0MywgMC4wMDIzNDQsIDAuMDAyMzQ1LCAwLjAwMjM0NSIsIFwKLSAgICAgICAgICAiMC4wMDIzMTgsIDAuMDAyMzI2LCAwLjAwMjMzOCwgMC4wMDIzNDEsIDAuMDAyMzQyLCAwLjAwMjM0MywgMC4wMDIzNDMiLCBcCi0gICAgICAgICAgIjAuMDAyMzE2LCAwLjAwMjMyNCwgMC4wMDIzMzcsIDAuMDAyMzM5LCAwLjAwMjM0MSwgMC4wMDIzNDIsIDAuMDAyMzQyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwOTc0LCAwLjAwMDk3NywgMC4wMDA5ODEsIDAuMDAwOTgxLCAwLjAwMDk4MSwgMC4wMDA5ODIsIDAuMDAwOTgxIiwgXAotICAgICAgICAgICIwLjAwMDk3LCAwLjAwMDk3MywgMC4wMDA5NzcsIDAuMDAwOTc3LCAwLjAwMDk3NywgMC4wMDA5NzgsIDAuMDAwOTc4IiwgXAotICAgICAgICAgICIwLjAwMDk1OCwgMC4wMDA5NjIsIDAuMDAwOTY3LCAwLjAwMDk2OCwgMC4wMDA5NjgsIDAuMDAwOTY4LCAwLjAwMDk2OSIsIFwKLSAgICAgICAgICAiMC4wMDA5NDgsIDAuMDAwOTUzLCAwLjAwMDk1OSwgMC4wMDA5NiwgMC4wMDA5NjEsIDAuMDAwOTYxLCAwLjAwMDk2MSIsIFwKLSAgICAgICAgICAiMC4wMDA5NCwgMC4wMDA5NDYsIDAuMDAwOTUzLCAwLjAwMDk1NSwgMC4wMDA5NTUsIDAuMDAwOTU2LCAwLjAwMDk1NiIsIFwKLSAgICAgICAgICAiMC4wMDA5MzEsIDAuMDAwOTM3LCAwLjAwMDk0NywgMC4wMDA5NDksIDAuMDAwOTQ5LCAwLjAwMDk1MSwgMC4wMDA5NTEiLCBcCi0gICAgICAgICAgIjAuMDAwOTI2LCAwLjAwMDkzMiwgMC4wMDA5NDMsIDAuMDAwOTQ1LCAwLjAwMDk0NywgMC4wMDA5NDgsIDAuMDAwOTQ4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyMTk2LCAwLjAwMjIwNCwgMC4wMDIyMTYsIDAuMDAyMjE5LCAwLjAwMjIyLCAwLjAwMjIyMSwgMC4wMDIyMjIiLCBcCi0gICAgICAgICAgIjAuMDAyMTg3LCAwLjAwMjE5NSwgMC4wMDIyMDcsIDAuMDAyMjA5LCAwLjAwMjIxMSwgMC4wMDIyMTIsIDAuMDAyMjEyIiwgXAotICAgICAgICAgICIwLjAwMjE3OCwgMC4wMDIxODcsIDAuMDAyMTk5LCAwLjAwMjIwMiwgMC4wMDIyMDMsIDAuMDAyMjA0LCAwLjAwMjIwNSIsIFwKLSAgICAgICAgICAiMC4wMDIxNzMsIDAuMDAyMTgxLCAwLjAwMjE5NSwgMC4wMDIxOTcsIDAuMDAyMTk5LCAwLjAwMjIsIDAuMDAyMjAxIiwgXAotICAgICAgICAgICIwLjAwMjE2OSwgMC4wMDIxNzcsIDAuMDAyMTkxLCAwLjAwMjE5NCwgMC4wMDIxOTYsIDAuMDAyMTk3LCAwLjAwMjE5OCIsIFwKLSAgICAgICAgICAiMC4wMDIxNjMsIDAuMDAyMTcyLCAwLjAwMjE4OCwgMC4wMDIxOTEsIDAuMDAyMTkzLCAwLjAwMjE5NSwgMC4wMDIxOTUiLCBcCi0gICAgICAgICAgIjAuMDAyMTYsIDAuMDAyMTcsIDAuMDAyMTg2LCAwLjAwMjE5LCAwLjAwMjE5MiwgMC4wMDIxOTQsIDAuMDAyMTk1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IE9SM1g4ICoKLSAqIC0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChPUjNYOCkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjQ4MzQyOTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNzk1OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTc4MDU5OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTc5NTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA1MzEsIDAuMDAwNTUsIDAuMDAwNTYsIDAuMDAwNTY2LCAwLjAwMDU2OSwgMC4wMDA1NzIsIDAuMDAwNTc0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNzc5LCAwLjAwMDc3OSwgMC4wMDA3OCwgMC4wMDA3OCwgMC4wMDA3OCwgMC4wMDA3OCwgMC4wMDA3OCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNjQ1MjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE2MzI4OTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE2NDUyOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDUzMSwgMC4wMDA1NjYsIDAuMDAwNTc5LCAwLjAwMDU4MywgMC4wMDA1ODYsIDAuMDAwNTg4LCAwLjAwMDU5MSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDYyNywgMC4wMDA2MjcsIDAuMDAwNjI3LCAwLjAwMDYyOCwgMC4wMDA2MjgsIDAuMDAwNjI4LCAwLjAwMDYyOCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQykgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNDg0NzU7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNDg0NDY7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNDg0NzU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMTgyLCAwLjAwMDE4MiwgMC4wMDAxODIsIDAuMDAwMTgyLCAwLjAwMDE4MiwgMC4wMDAxODIsIDAuMDAwMTgyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNjk5LCAwLjAwMDY5OSwgMC4wMDA2OTksIDAuMDAwNjk5LCAwLjAwMDY5OCwgMC4wMDA2OTgsIDAuMDAwNjk5Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDEuMDk4MjE7Ci0gICAgZnVuY3Rpb24gOiAiKChBK0IpK0MpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4MzcxOSwgMC4xNTI1MywgMC4yMTY0OTQsIDAuMjYyMDI5LCAwLjMzNDgxMiwgMC4zOTg0MDIsIDAuNDg5MjA5IiwgXAotICAgICAgICAgICIwLjA5NTIyOSwgMC4xNjM5MzksIDAuMjI3OTYsIDAuMjczNTA4LCAwLjM0NjI5OCwgMC40MDk4ODUsIDAuNTAwNjkiLCBcCi0gICAgICAgICAgIjAuMTEwMjcyLCAwLjE3ODk1LCAwLjI0Mjk0NywgMC4yODg0OTcsIDAuMzYxMzA1LCAwLjQyNDg5MSwgMC41MTU2OTciLCBcCi0gICAgICAgICAgIjAuMTI1MjY2LCAwLjE5NDAyOSwgMC4yNTgwMDMsIDAuMzAzNTQ3LCAwLjM3NjMzMSwgMC40Mzk5MjcsIDAuNTMwNzk1IiwgXAotICAgICAgICAgICIwLjE0MDQ2NiwgMC4yMDkxNTcsIDAuMjczMTc0LCAwLjMxODcyMiwgMC4zOTE1MywgMC40NTUxLCAwLjU0NTk2NyIsIFwKLSAgICAgICAgICAiMC4xNjQyNjYsIDAuMjMyOTM3LCAwLjI5Njk0NiwgMC4zNDI1MDksIDAuNDE1Mjc4LCAwLjQ3ODkxNiwgMC41Njk3MjMiLCBcCi0gICAgICAgICAgIjAuMTg1MDU1LCAwLjI1Mzc2MywgMC4zMTc3MjksIDAuMzYzMjc0LCAwLjQzNjA1MSwgMC40OTk2ODMsIDAuNTkwNTAzIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQyNTgxLCAwLjE2NTMxMSwgMC4yOTI3NTYsIDAuMzgzNzczLCAwLjUzMTkwOSwgMC42NjEwOTgsIDAuODQ1ODc2IiwgXAotICAgICAgICAgICIwLjA0MjU3NiwgMC4xNjUyNjIsIDAuMjkyNTg0LCAwLjM4MzY2MSwgMC41MzE4ODYsIDAuNjYwOTgxLCAwLjg0NTgyMiIsIFwKLSAgICAgICAgICAiMC4wNDI1NTcsIDAuMTY1MjIxLCAwLjI5MjE0NCwgMC4zODQ0OTQsIDAuNTMwNjY2LCAwLjY2MTAwMiwgMC44NDU3ODkiLCBcCi0gICAgICAgICAgIjAuMDQyNDc3LCAwLjE2NTI2NSwgMC4yOTI3MzIsIDAuMzg0MzQzLCAwLjUzMTE0MiwgMC42NjA4MDcsIDAuODQ1NDY0IiwgXAotICAgICAgICAgICIwLjA0MjQ4LCAwLjE2NTAzMywgMC4yOTI3MTgsIDAuMzg0NDg2LCAwLjUzMTg1NSwgMC42NjAyLCAwLjg0NTUzOCIsIFwKLSAgICAgICAgICAiMC4wNDM0OTYsIDAuMTY1MTg1LCAwLjI5MjE3MiwgMC4zODQ0NTIsIDAuNTMxODg2LCAwLjY2MDg3MiwgMC44NDQzOTQiLCBcCi0gICAgICAgICAgIjAuMDQ0MDExLCAwLjE2NTI4NywgMC4yOTIyOSwgMC4zODM4NjEsIDAuNTMxNTgxLCAwLjY2MTA0OCwgMC44NDQ1MDgiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xODI5NSwgMC4yNzg5MzIsIDAuMzU2NTQ4LCAwLjQxMDM2MywgMC40OTU3NzIsIDAuNTcwMzE5LCAwLjY3NjczMiIsIFwKLSAgICAgICAgICAiMC4xOTQxNzUsIDAuMjkwMjUzLCAwLjM2NzgzOCwgMC40MjE2NywgMC41MDcwOTEsIDAuNTgxNjM4LCAwLjY4ODA1MyIsIFwKLSAgICAgICAgICAiMC4yMDY3NDQsIDAuMzAyNzExLCAwLjM4MDM0OSwgMC40MzQxNjEsIDAuNTE5NTcxLCAwLjU5NDEyMiwgMC43MDA1MzQiLCBcCi0gICAgICAgICAgIjAuMjE4MTk0LCAwLjMxNDM4MiwgMC4zOTIwOSwgMC40NDU4NzgsIDAuNTMxMzU4LCAwLjYwNTkyMiwgMC43MTIzMjEiLCBcCi0gICAgICAgICAgIjAuMjI5NjYzLCAwLjMyNTUzMywgMC40MDMyNDIsIDAuNDU3MDc2LCAwLjU0MjQ5NSwgMC42MTcwMzksIDAuNzIzNDYiLCBcCi0gICAgICAgICAgIjAuMjQ2ODk4LCAwLjM0MjkzOCwgMC40MjA2NTUsIDAuNDc0NDgyLCAwLjU1OTg5NiwgMC42MzQ0MzgsIDAuNzQwODcxIiwgXAotICAgICAgICAgICIwLjI2MTc0MywgMC4zNTc3MzcsIDAuNDM1NDQ1LCAwLjQ4OTI2NSwgMC41NzQ2OSwgMC42NDkyNjIsIDAuNzU1NjcyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDcxMDQ3LCAwLjIxMjIzNiwgMC4zNTMxMDIsIDAuNDU1OTUsIDAuNjIxOTY2LCAwLjc2OTAyOSwgMC45Nzg2NTYiLCBcCi0gICAgICAgICAgIjAuMDcxMTMsIDAuMjEyMzE0LCAwLjM1MzIxMSwgMC40NTU3NzcsIDAuNjIxOTA5LCAwLjc2NzI3NCwgMC45Nzg1ODciLCBcCi0gICAgICAgICAgIjAuMDcwOTY4LCAwLjIxMjIxOCwgMC4zNTMwOTgsIDAuNDU1OTYxLCAwLjYyMTk2NCwgMC43NjkwMTksIDAuOTc4NzI0IiwgXAotICAgICAgICAgICIwLjA3MjE0OCwgMC4yMTIzMDUsIDAuMzUzMDU5LCAwLjQ1NTQ3NSwgMC42MjE5OTMsIDAuNzY5MTI2LCAwLjk3OTg4MiIsIFwKLSAgICAgICAgICAiMC4wNzEyNjUsIDAuMjEyNTE3LCAwLjM1MzE4NCwgMC40NTYwNTQsIDAuNjIxOTM5LCAwLjc2ODIxMywgMC45Nzg2NTkiLCBcCi0gICAgICAgICAgIjAuMDcxMzc1LCAwLjIxMjE2LCAwLjM1Mjk5MywgMC40NTU2MjcsIDAuNjIxOTg5LCAwLjc2ODkwMSwgMC45NzcxNDQiLCBcCi0gICAgICAgICAgIjAuMDcxMDExLCAwLjIxMjA4MSwgMC4zNTI5NjQsIDAuNDU1MzkxLCAwLjYyMTk5NSwgMC43Njg5NTMsIDAuOTc3MjU5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc5NTQxLCAwLjE0NzY3NywgMC4yMTE0NzksIDAuMjU2OTQ4LCAwLjMyOTYzNSwgMC4zOTMxNiwgMC40ODM5MDMiLCBcCi0gICAgICAgICAgIjAuMDkxMTgsIDAuMTU5MzM5LCAwLjIyMzExMSwgMC4yNjg1NjYsIDAuMzQxMjU3LCAwLjQwNDgwOCwgMC40OTU1NTIiLCBcCi0gICAgICAgICAgIjAuMTA2MjQzLCAwLjE3NDM4OCwgMC4yMzgxNTMsIDAuMjgzNjE0LCAwLjM1NjMxMiwgMC40MTk4MzgsIDAuNTEwNTg1IiwgXAotICAgICAgICAgICIwLjEyMTM4OSwgMC4xODk1NCwgMC4yNTMzNjUsIDAuMjk4ODIsIDAuMzcxNTIsIDAuNDM1MDYzLCAwLjUyNTgwNCIsIFwKLSAgICAgICAgICAiMC4xMzYzMDYsIDAuMjA0NTE4LCAwLjI2ODM0NCwgMC4zMTM3OTIsIDAuMzg2NDkyLCAwLjQ1MDAyOCwgMC41NDA3OCIsIFwKLSAgICAgICAgICAiMC4xNTk5MywgMC4yMjgyMzEsIDAuMjkyMDM2LCAwLjMzNzQ5OCwgMC40MTAyMTIsIDAuNDczNzQ2LCAwLjU2NDQ5OSIsIFwKLSAgICAgICAgICAiMC4xODAxNDgsIDAuMjQ4NDkzLCAwLjMxMjI4NSwgMC4zNTc3NDIsIDAuNDMwNDI5LCAwLjQ5NDAwOCwgMC41ODQ3NTMiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDE3MDksIDAuMTY0NDI1LCAwLjI5MjAwNCwgMC4zODM4MzUsIDAuNTMxNDAzLCAwLjY2MDU3OCwgMC44NDUxMjQiLCBcCi0gICAgICAgICAgIjAuMDQxNjk2LCAwLjE2NDQzNywgMC4yOTEyMDgsIDAuMzgzNjcyLCAwLjUzMTM1OSwgMC42NTkyMiwgMC44NDUyNzYiLCBcCi0gICAgICAgICAgIjAuMDQxNzczLCAwLjE2NDM5NCwgMC4yOTE4NzgsIDAuMzgzMjM4LCAwLjUzMTM1MiwgMC42NjA1MDYsIDAuODQ0OTc2IiwgXAotICAgICAgICAgICIwLjA0MTYwMSwgMC4xNjQyNzEsIDAuMjkxMTcxLCAwLjM4MzA3NSwgMC41MzEzMjksIDAuNjYwNTI4LCAwLjg0NTEzMyIsIFwKLSAgICAgICAgICAiMC4wNDE4MzgsIDAuMTY0MjY2LCAwLjI5MTE0OSwgMC4zODMxNDIsIDAuNTMxMzY2LCAwLjY2MDQ5OSwgMC44NDI5MDciLCBcCi0gICAgICAgICAgIjAuMDQyNzU2LCAwLjE2NDQzNSwgMC4yOTEzNzEsIDAuMzgzMTU3LCAwLjUzMTM4NywgMC42NjA0OTcsIDAuODQ0ODg5IiwgXAotICAgICAgICAgICIwLjA0NDA3NywgMC4xNjQ4NiwgMC4yOTE1OCwgMC4zODMyMywgMC41MzEyNjIsIDAuNjYwNTMyLCAwLjg0NTE4NyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE3NjkxMywgMC4yNzI4NTUsIDAuMzUwNTE5LCAwLjQwNDM1MSwgMC40ODk3NjMsIDAuNTY0MywgMC42NzA3MzEiLCBcCi0gICAgICAgICAgIjAuMTg3MDksIDAuMjgzMDAyLCAwLjM2MDY5NiwgMC40MTQ1MywgMC40OTk5NTIsIDAuNTc0NTIzLCAwLjY4MDkwNyIsIFwKLSAgICAgICAgICAiMC4xOTk0NDIsIDAuMjk1MzQ0LCAwLjM3MzAzOCwgMC40MjY4MzcsIDAuNTEyMzIsIDAuNTg2ODg4LCAwLjY5MzI3MyIsIFwKLSAgICAgICAgICAiMC4yMTE0NzUsIDAuMzA3NDMxLCAwLjM4NTE0NywgMC40Mzg5NDMsIDAuNTI0MzksIDAuNTk4OTcxLCAwLjcwNTM2MyIsIFwKLSAgICAgICAgICAiMC4yMjMyMDYsIDAuMzE5MjE4LCAwLjM5Njg5MSwgMC40NTA2OTMsIDAuNTM2MTU5LCAwLjYxMDcyLCAwLjcxNzEyOSIsIFwKLSAgICAgICAgICAiMC4yNDIwOTEsIDAuMzM4MTI3LCAwLjQxNTgzMywgMC40Njk2MjMsIDAuNTU1MTEzLCAwLjYyOTY4NiwgMC43MzYwNjgiLCBcCi0gICAgICAgICAgIjAuMjU4NjQ3LCAwLjM1NDYzMiwgMC40MzIzMTksIDAuNDg2MTMxLCAwLjU3MTU2OCwgMC42NDYxNjQsIDAuNzUyNTU0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDcxMTQ0LCAwLjIxMjIwNiwgMC4zNTMwMzksIDAuNDU1ODUxLCAwLjYyMTk2MSwgMC43Njg4MzIsIDAuOTc4NzA2IiwgXAotICAgICAgICAgICIwLjA3MTAwOSwgMC4yMTI0MzcsIDAuMzUzMTM0LCAwLjQ1NTQ3MywgMC42MjIwNTIsIDAuNzY2NjU5LCAwLjk3OTYxMiIsIFwKLSAgICAgICAgICAiMC4wNzA5OTEsIDAuMjEyNDM4LCAwLjM1MzEzNSwgMC40NTU0NzcsIDAuNjIxOTE4LCAwLjc2NjU5OCwgMC45Nzk3MyIsIFwKLSAgICAgICAgICAiMC4wNzExMzcsIDAuMjEyMjM0LCAwLjM1MzA2OCwgMC40NTU0MTcsIDAuNjIyMDAxLCAwLjc2Njc1NiwgMC45Nzk1NzUiLCBcCi0gICAgICAgICAgIjAuMDcxMDUyLCAwLjIxMjMxNiwgMC4zNTMwNjEsIDAuNDU1NDAxLCAwLjYyMTk0OCwgMC43NjcwMDMsIDAuOTc2Njk3IiwgXAotICAgICAgICAgICIwLjA3MTEzMSwgMC4yMTIxMTEsIDAuMzUyOTYxLCAwLjQ1NTQyNiwgMC42MjE5NTQsIDAuNzY5MTAyLCAwLjk3OTYyNCIsIFwKLSAgICAgICAgICAiMC4wNzEwMzQsIDAuMjEyMDEzLCAwLjM1Mjg5OCwgMC40NTU2MzIsIDAuNjIxOTYzLCAwLjc2NzAwOCwgMC45NzY3MzEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzQwODYsIDAuMTQxODczLCAwLjIwNTU0MSwgMC4yNTA5NDQsIDAuMzIzNTY3LCAwLjM4NzA0NSwgMC40Nzc4NjEiLCBcCi0gICAgICAgICAgIjAuMDg1OTkxLCAwLjE1MzgsIDAuMjE3NDY4LCAwLjI2Mjg5NywgMC4zMzU1MDMsIDAuMzk4OTg1LCAwLjQ4OTgwNSIsIFwKLSAgICAgICAgICAiMC4xMDA4NCwgMC4xNjg2NjQsIDAuMjMyMzY0LCAwLjI3Nzc2OCwgMC4zNTA0LCAwLjQxMzkwMiwgMC41MDQ3MDYiLCBcCi0gICAgICAgICAgIjAuMTE1OTcxLCAwLjE4MzkwMiwgMC4yNDc2MTEsIDAuMjkzMDE0LCAwLjM2NTYzMywgMC40MjkxMjcsIDAuNTE5OTE5IiwgXAotICAgICAgICAgICIwLjEzMDg2MiwgMC4xOTg1NTQsIDAuMjYyMjExLCAwLjMwNzYwMiwgMC4zODAyMywgMC40NDM3MjksIDAuNTM0NTcyIiwgXAotICAgICAgICAgICIwLjE1NDI5NiwgMC4yMjIxODksIDAuMjg1ODc0LCAwLjMzMTI5NSwgMC40MDM5MjcsIDAuNDY3NDcxLCAwLjU1ODE4NCIsIFwKLSAgICAgICAgICAiMC4xNzM2MDksIDAuMjQxODg1LCAwLjMwNTQ2NiwgMC4zNTA4NTYsIDAuNDIzNTE5LCAwLjQ4Njk5NiwgMC41Nzc4NTkiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDExMTksIDAuMTYzODQ0LCAwLjI5MDg3OSwgMC4zODMzMTksIDAuNTMwOTY5LCAwLjY2MDEzOSwgMC44NDI1MzgiLCBcCi0gICAgICAgICAgIjAuMDQxMTU1LCAwLjE2MzgxNywgMC4yOTA4MzIsIDAuMzgyMjQxLCAwLjUzMDk1MiwgMC42NjAxMTQsIDAuODQyNTEiLCBcCi0gICAgICAgICAgIjAuMDQxMTc0LCAwLjE2MzY2MiwgMC4yOTA5MzEsIDAuMzgyNjMxLCAwLjUzMDkxNiwgMC42NjAxNjYsIDAuODQyNTI3IiwgXAotICAgICAgICAgICIwLjA0MTE4MiwgMC4xNjM4NjgsIDAuMjkxMzU0LCAwLjM4MjQ0NCwgMC41MzA5MjksIDAuNjU5OTk4LCAwLjg0MjY2OSIsIFwKLSAgICAgICAgICAiMC4wNDE0NTYsIDAuMTYzOTMyLCAwLjI5MTQ0OSwgMC4zODI3MTYsIDAuNTI5Njc5LCAwLjY2MDE0NSwgMC44NDMwMTIiLCBcCi0gICAgICAgICAgIjAuMDQyNTM2LCAwLjE2NDIzMiwgMC4yOTExNjgsIDAuMzgzNDEsIDAuNTI5Njc0LCAwLjY1ODQyNiwgMC44NDMzMzciLCBcCi0gICAgICAgICAgIjAuMDQ0NjcxLCAwLjE2NDcxNiwgMC4yOTE3MjIsIDAuMzgzMzcxLCAwLjUyOTU0OCwgMC42NjAxNzEsIDAuODQyOTYxIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTYyMDE4LCAwLjI1Nzk2MSwgMC4zMzU2MzQsIDAuMzg5NDY0LCAwLjQ3NDg3OCwgMC41NDk0MiwgMC42NTU4NDkiLCBcCi0gICAgICAgICAgIjAuMTcxMDM1LCAwLjI2Njk5MSwgMC4zNDQ0MjQsIDAuMzk4MjQ2LCAwLjQ4MzY5NSwgMC41NTgyMzQsIDAuNjY0NjQ4IiwgXAotICAgICAgICAgICIwLjE4Mjc2MSwgMC4yNzg2NjUsIDAuMzU2Mzc5LCAwLjQxMDE4NiwgMC40OTU2NDUsIDAuNTcwMjE2LCAwLjY3NjY1NiIsIFwKLSAgICAgICAgICAiMC4xOTQ5OTcsIDAuMjkwOTc1LCAwLjM2ODc3NSwgMC40MjI1NzksIDAuNTA4MDI5LCAwLjU4MjYyMSwgMC42ODkwMDgiLCBcCi0gICAgICAgICAgIjAuMjA3NDYzLCAwLjMwMzQzNywgMC4zODExNDEsIDAuNDM0OTg2LCAwLjUyMDQwOCwgMC41OTQ5NDksIDAuNzAxMzkiLCBcCi0gICAgICAgICAgIjAuMjI3MzUzLCAwLjMyMzMyOSwgMC40MDEwODQsIDAuNDU0ODksIDAuNTQwMzM1LCAwLjYxNDkwOSwgMC43MjEzNDEiLCBcCi0gICAgICAgICAgIjAuMjQ0ODE5LCAwLjM0MDgyNCwgMC40MTg1MjUsIDAuNDcyMzIzLCAwLjU1NzgxNCwgMC42MzIzOSwgMC43Mzg3OCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3MTExNywgMC4yMTIxOTYsIDAuMzUzMDQzLCAwLjQ1NTgzOSwgMC42MjE5NDYsIDAuNzY4ODc4LCAwLjk3ODcwOCIsIFwKLSAgICAgICAgICAiMC4wNzA5NjksIDAuMjEyMzA2LCAwLjM1MzM4MywgMC40NTYwMTgsIDAuNjIxOTk1LCAwLjc2OTAwNiwgMC45Nzg2IiwgXAotICAgICAgICAgICIwLjA3MTIyOSwgMC4yMTI0NDUsIDAuMzUzMDUyLCAwLjQ1NTY2OSwgMC42MjIwMTUsIDAuNzY5MTMsIDAuOTgwMTE0IiwgXAotICAgICAgICAgICIwLjA3MTM0MywgMC4yMTIzNDYsIDAuMzUyOTQ5LCAwLjQ1NTkyOSwgMC42MjE4NTMsIDAuNzY2NDU1LCAwLjk3Njc0NyIsIFwKLSAgICAgICAgICAiMC4wNzExNDMsIDAuMjEyMjExLCAwLjM1MzA2NSwgMC40NTU4NjQsIDAuNjIyMDAyLCAwLjc2ODc4MiwgMC45Nzg2NDgiLCBcCi0gICAgICAgICAgIjAuMDcxMDQsIDAuMjEyMDEyLCAwLjM1MjkwMywgMC40NTU5MTIsIDAuNjIxODI2LCAwLjc2NjY5MiwgMC45NzY2NTYiLCBcCi0gICAgICAgICAgIjAuMDcxNDYsIDAuMjEyMjE2LCAwLjM1MzAxNywgMC40NTU0NCwgMC42MjE5MzcsIDAuNzY5MTA1LCAwLjk3OTMxNSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA3OTM3LCAwLjAwODE3LCAwLjAwODIwOSwgMC4wMDgyMjEsIDAuMDA4MjMzLCAwLjAwODIzOSwgMC4wMDgyNDIiLCBcCi0gICAgICAgICAgIjAuMDA3ODksIDAuMDA4MTIzLCAwLjAwODE2MywgMC4wMDgxNzYsIDAuMDA4MTg3LCAwLjAwODE5MywgMC4wMDgxOTgiLCBcCi0gICAgICAgICAgIjAuMDA3ODYsIDAuMDA4MDg5LCAwLjAwODEzNSwgMC4wMDgxNDksIDAuMDA4MTYyLCAwLjAwODE2OSwgMC4wMDgxNzUiLCBcCi0gICAgICAgICAgIjAuMDA3ODMyLCAwLjAwODA1OCwgMC4wMDgxMSwgMC4wMDgxMjYsIDAuMDA4MTQxLCAwLjAwODE0OSwgMC4wMDgxNTciLCBcCi0gICAgICAgICAgIjAuMDA3ODA0LCAwLjAwODAzMywgMC4wMDgwOSwgMC4wMDgxMDksIDAuMDA4MTI3LCAwLjAwODEzNiwgMC4wMDgxNDYiLCBcCi0gICAgICAgICAgIjAuMDA3NzY0LCAwLjAwNzk5OCwgMC4wMDgwNiwgMC4wMDgwODQsIDAuMDA4MTA2LCAwLjAwODExMSwgMC4wMDgxMjgiLCBcCi0gICAgICAgICAgIjAuMDA3NzcyLCAwLjAwNzk4NCwgMC4wMDgwNSwgMC4wMDgwNzUsIDAuMDA4MDk5LCAwLjAwODExMiwgMC4wMDgxMjQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMDQ5LCAwLjAxMDgxNywgMC4wMTA5MDksIDAuMDEwOTQyLCAwLjAxMDk3MiwgMC4wMTA5ODksIDAuMDExMDAzIiwgXAotICAgICAgICAgICIwLjAxMDQ4LCAwLjAxMDgsIDAuMDEwODkzLCAwLjAxMDkyNSwgMC4wMTA5NTUsIDAuMDEwOTcxLCAwLjAxMDk4NiIsIFwKLSAgICAgICAgICAiMC4wMTA0NTIsIDAuMDEwNzgsIDAuMDEwODc0LCAwLjAxMDkwNywgMC4wMTA5MzgsIDAuMDEwOTU0LCAwLjAxMDk2OSIsIFwKLSAgICAgICAgICAiMC4wMTA0MzksIDAuMDEwNzYzLCAwLjAxMDg2LCAwLjAxMDg5NCwgMC4wMTA5MjYsIDAuMDEwOTQyLCAwLjAxMDk1NyIsIFwKLSAgICAgICAgICAiMC4wMTA0MywgMC4wMTA3NSwgMC4wMTA4NDksIDAuMDEwODg0LCAwLjAxMDkxNiwgMC4wMTA5MzMsIDAuMDEwOTQ4IiwgXAotICAgICAgICAgICIwLjAxMDQxMSwgMC4wMTA3MzYsIDAuMDEwODM2LCAwLjAxMDg3MiwgMC4wMTA5MDUsIDAuMDEwOTIyLCAwLjAxMDkzOCIsIFwKLSAgICAgICAgICAiMC4wMTA0MDcsIDAuMDEwNzI0LCAwLjAxMDgyNSwgMC4wMTA4NjEsIDAuMDEwODk2LCAwLjAxMDkxNCwgMC4wMTA5MzEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNzM4LCAwLjAwNzYyMSwgMC4wMDc2NTksIDAuMDA3NjcxLCAwLjAwNzY4MiwgMC4wMDc2ODcsIDAuMDA3Njk1IiwgXAotICAgICAgICAgICIwLjAwNzM1MywgMC4wMDc1OTcsIDAuMDA3NjM4LCAwLjAwNzY0OCwgMC4wMDc2NjEsIDAuMDA3NjY1LCAwLjAwNzY2OSIsIFwKLSAgICAgICAgICAiMC4wMDczMSwgMC4wMDc1NTUsIDAuMDA3NjAxLCAwLjAwNzYxNSwgMC4wMDc2MzIsIDAuMDA3NjM1LCAwLjAwNzY0NiIsIFwKLSAgICAgICAgICAiMC4wMDcyOCwgMC4wMDc1MjEsIDAuMDA3NTczLCAwLjAwNzU5MywgMC4wMDc2MDYsIDAuMDA3NjEyLCAwLjAwNzYyMiIsIFwKLSAgICAgICAgICAiMC4wMDcyMzcsIDAuMDA3NDg0LCAwLjAwNzU0NCwgMC4wMDc1NjQsIDAuMDA3NTgyLCAwLjAwNzU5MiwgMC4wMDc2MDEiLCBcCi0gICAgICAgICAgIjAuMDA3MTc4LCAwLjAwNzQzNiwgMC4wMDc1MDMsIDAuMDA3NTI3LCAwLjAwNzU1LCAwLjAwNzU2MiwgMC4wMDc1NzciLCBcCi0gICAgICAgICAgIjAuMDA3MTg5LCAwLjAwNzQxNiwgMC4wMDc0ODYsIDAuMDA3NTEyLCAwLjAwNzUzOCwgMC4wMDc1NTEsIDAuMDA3NTYyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTAwMDQsIDAuMDEwMzMsIDAuMDEwNDI1LCAwLjAxMDQ1OSwgMC4wMTA0OSwgMC4wMTA1MDcsIDAuMDEwNTIzIiwgXAotICAgICAgICAgICIwLjAwOTk3OSwgMC4wMTAzMDQsIDAuMDEwNDAyLCAwLjAxMDQzNywgMC4wMTA0NjksIDAuMDEwNDg2LCAwLjAxMDUwMiIsIFwKLSAgICAgICAgICAiMC4wMDk5NTYsIDAuMDEwMjg0LCAwLjAxMDM4NCwgMC4wMTA0MTksIDAuMDEwNDUyLCAwLjAxMDQ2OSwgMC4wMTA0ODUiLCBcCi0gICAgICAgICAgIjAuMDA5OTUsIDAuMDEwMjczLCAwLjAxMDM3MiwgMC4wMTA0MDcsIDAuMDEwNDQsIDAuMDEwNDU4LCAwLjAxMDQ3NCIsIFwKLSAgICAgICAgICAiMC4wMDk5MzUsIDAuMDEwMjU2LCAwLjAxMDM1NywgMC4wMTAzOTQsIDAuMDEwNDI4LCAwLjAxMDQ0NywgMC4wMTA0NjQiLCBcCi0gICAgICAgICAgIjAuMDA5OTIsIDAuMDEwMjM4LCAwLjAxMDM0MSwgMC4wMTAzNzksIDAuMDEwNDE1LCAwLjAxMDQzNCwgMC4wMTA0NTIiLCBcCi0gICAgICAgICAgIjAuMDA5OTMsIDAuMDEwMjI3LCAwLjAxMDMyOSwgMC4wMTAzNjgsIDAuMDEwNDA1LCAwLjAxMDQyNSwgMC4wMTA0NDMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjcyNywgMC4wMDY5NTcsIDAuMDA2OTg2LCAwLjAwNjk5NSwgMC4wMDcwMSwgMC4wMDcwMDgsIDAuMDA3MDExIiwgXAotICAgICAgICAgICIwLjAwNjcxLCAwLjAwNjk0MSwgMC4wMDY5OCwgMC4wMDY5ODksIDAuMDA2OTk4LCAwLjAwNzAwMiwgMC4wMDcwMDYiLCBcCi0gICAgICAgICAgIjAuMDA2NjU4LCAwLjAwNjkwMiwgMC4wMDY5NDUsIDAuMDA2OTU1LCAwLjAwNjk2NCwgMC4wMDY5NzEsIDAuMDA2OTc1IiwgXAotICAgICAgICAgICIwLjAwNjYxMywgMC4wMDY4NTQsIDAuMDA2OTA0LCAwLjAwNjkyMSwgMC4wMDY5MzQsIDAuMDA2OTQsIDAuMDA2OTQ3IiwgXAotICAgICAgICAgICIwLjAwNjU2MiwgMC4wMDY4MDIsIDAuMDA2ODY2LCAwLjAwNjg4NywgMC4wMDY5MDQsIDAuMDA2OTEzLCAwLjAwNjkyMiIsIFwKLSAgICAgICAgICAiMC4wMDY1MjMsIDAuMDA2NzYzLCAwLjAwNjgyNywgMC4wMDY4NDksIDAuMDA2ODczLCAwLjAwNjg4MiwgMC4wMDY4OTIiLCBcCi0gICAgICAgICAgIjAuMDA2NDkzLCAwLjAwNjcyOSwgMC4wMDY4LCAwLjAwNjgyOSwgMC4wMDY4NSwgMC4wMDY4NjUsIDAuMDA2ODc3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDk0ODEsIDAuMDA5ODExLCAwLjAwOTkxLCAwLjAwOTk0NSwgMC4wMDk5NzgsIDAuMDA5OTk2LCAwLjAxMDAxMiIsIFwKLSAgICAgICAgICAiMC4wMDk0NDMsIDAuMDA5Nzc2LCAwLjAwOTg2OSwgMC4wMDk5MDcsIDAuMDA5OTQxLCAwLjAwOTk2LCAwLjAwOTk3NyIsIFwKLSAgICAgICAgICAiMC4wMDk0MTQsIDAuMDA5NzQxLCAwLjAwOTg0NCwgMC4wMDk4ODEsIDAuMDA5OTE1LCAwLjAwOTkzNCwgMC4wMDk5NTEiLCBcCi0gICAgICAgICAgIjAuMDA5Mzk1LCAwLjAwOTcxNywgMC4wMDk4MjEsIDAuMDA5ODU5LCAwLjAwOTg5NSwgMC4wMDk5MTQsIDAuMDA5OTMyIiwgXAotICAgICAgICAgICIwLjAwOTM4MywgMC4wMDk2OTYsIDAuMDA5OCwgMC4wMDk4MzksIDAuMDA5ODc3LCAwLjAwOTg5NywgMC4wMDk5MTYiLCBcCi0gICAgICAgICAgIjAuMDA5MzgxLCAwLjAwOTY3LCAwLjAwOTc3NCwgMC4wMDk4MTUsIDAuMDA5ODU1LCAwLjAwOTg3NywgMC4wMDk4OTgiLCBcCi0gICAgICAgICAgIjAuMDA5Mzg1LCAwLjAwOTY0OCwgMC4wMDk3NTMsIDAuMDA5Nzk1LCAwLjAwOTgzOCwgMC4wMDk4NjIsIDAuMDA5ODg1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IFNERkZIUVgxICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChTREZGSFFYMSkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjMzMDIyMTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBmZiAoTjMwLFFCSU5UKSB7Ci0gICAgbmV4dF9zdGF0ZSA6ICIoKFNFIFNJKSArICghU0UgRCkpIjsKLSAgICBjbG9ja2VkX29uIDogIkNLIjsKLSAgfQotICBwaW4oQ0spICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDU4NzA0ODsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA1ODY3NjU7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNTg3MDQ4OwotICAgIGNsb2NrIDogdHJ1ZTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDI3NDIsIDAuMDAyNzMsIDAuMDAyNzE5LCAwLjAwMjcxMywgMC4wMDI3MDgsIDAuMDAyNzAxLCAwLjAwMjY5OCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNTkxLCAwLjAwNTksIDAuMDA1ODkyLCAwLjAwNTg4NiwgMC4wMDU4ODUsIDAuMDA1ODkxLCAwLjAwNTg5MyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQmIVNFJiFTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fU0VfRVFfMF9BTl9TSV9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMzA0NjYyLCAwLjMxNjQ4OCwgMC4zMzE3NTYsIDAuMzQ3MjI1LCAwLjM2MjU5NSwgMC4zODY5MzcsIDAuNDA3OTY5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4xOTU4NTYsIDAuMjA3MjM4LCAwLjIyMjM0MSwgMC4yMzcxODksIDAuMjUxOTM2LCAwLjI3NDg2MywgMC4yOTQwNTEiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEQpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDg0MTQ3OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDgzODI3OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDg0MTQ3OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzE4NSwgMC4wMDMxNjYsIDAuMDAzMTU2LCAwLjAwMzE0OSwgMC4wMDMxNDQsIDAuMDAzMTM4LCAwLjAwMzEzNCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNDc3NiwgMC4wMDQ3NjYsIDAuMDA0NzYsIDAuMDA0NzU2LCAwLjAwNDc1NCwgMC4wMDQ3NSwgMC4wMDQ3NDgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIVNFIjsKLSAgICAgIHNkZl9jb25kIDogIlNFID09IDEnYjAiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjEwNjI1LCAtMC4wOTUsIC0wLjA4MjUsIC0wLjA3LCAtMC4wNTc1LCAtMC4wNDc1LCAtMC4wMzI1IiwgXAotICAgICAgICAgICItMC4xMTc1LCAtMC4xMDYyNSwgLTAuMDkzNzUsIC0wLjA4MTI1LCAtMC4wNjg3NSwgLTAuMDU4NzUsIC0wLjA0Mzc1IiwgXAotICAgICAgICAgICItMC4xMywgLTAuMTE4NzUsIC0wLjEwNjI1LCAtMC4wOTM3NSwgLTAuMDg3NSwgLTAuMDcxMjUsIC0wLjA1NjI1IiwgXAotICAgICAgICAgICItMC4xNDI1LCAtMC4xMzEyNSwgLTAuMTE4NzUsIC0wLjEwNjI1LCAtMC4xLCAtMC4wODM3NSwgLTAuMDY4NzUiLCBcCi0gICAgICAgICAgIi0wLjE1NSwgLTAuMTQzNzUsIC0wLjEzMTI1LCAtMC4xMjUsIC0wLjExMjUsIC0wLjA5NjI1LCAtMC4wODEyNSIsIFwKLSAgICAgICAgICAiLTAuMTc3NSwgLTAuMTY2MjUsIC0wLjE1Mzc1LCAtMC4xNDEyNSwgLTAuMTM1LCAtMC4xMTg3NSwgLTAuMTAzNzUiLCBcCi0gICAgICAgICAgIi0wLjE5MjUsIC0wLjE4NzUsIC0wLjE3NSwgLTAuMTYyNSwgLTAuMTUsIC0wLjEzMzc1LCAtMC4xMjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLCAwLjAxMTI1LCAwLjAyMzc1LCAwLjAzNjI1LCAwLjA0ODc1LCAwLjA3MTI1LCAwLjA5MjUiLCBcCi0gICAgICAgICAgIi0wLjAxMTI1LCAwLCAwLjAxMjUsIDAuMDI1LCAwLjAzNzUsIDAuMDYsIDAuMDgxMjUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMTI1LCAwLCAwLjAxMjUsIDAuMDI1LCAwLjA0NzUsIDAuMDY4NzUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMjUsIC0wLjAxMjUsIDAsIDAuMDEyNSwgMC4wMzUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAxMjUsIDAuMDA2MjUsIDAuMDI4NzUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIi0wLjA3MTI1LCAtMC4wNiwgLTAuMDQxMjUsIC0wLjAyODc1LCAtMC4wMTYyNSwgMC4wMDYyNSwgMC4wMjc1IiwgXAotICAgICAgICAgICItMC4wODYyNSwgLTAuMDY4NzUsIC0wLjA1NjI1LCAtMC4wNDM3NSwgLTAuMDMxMjUsIC0wLjAwODc1LCAwLjAxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJTRSA9PSAxJ2IwIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNjI1LCAwLjE1MTI1LCAwLjEzODc1LCAwLjEyNjI1LCAwLjExMzc1LCAwLjA5NzUsIDAuMDgyNSIsIFwKLSAgICAgICAgICAiMC4xNzM3NSwgMC4xNjI1LCAwLjE1LCAwLjEzNzUsIDAuMTI1LCAwLjEwODc1LCAwLjA5Mzc1IiwgXAotICAgICAgICAgICIwLjE5MjUsIDAuMTc1LCAwLjE2MjUsIDAuMTUsIDAuMTM3NSwgMC4xMjEyNSwgMC4xMDYyNSIsIFwKLSAgICAgICAgICAiMC4yMDUsIDAuMTkzNzUsIDAuMTc1LCAwLjE2MjUsIDAuMTUsIDAuMTMzNzUsIDAuMTE4NzUiLCBcCi0gICAgICAgICAgIjAuMjE3NSwgMC4yMDYyNSwgMC4xODc1LCAwLjE3NSwgMC4xNjI1LCAwLjE0NjI1LCAwLjEzMTI1IiwgXAotICAgICAgICAgICIwLjI0LCAwLjIyMjUsIDAuMjEsIDAuMTk3NSwgMC4xODUsIDAuMTY4NzUsIDAuMTUzNzUiLCBcCi0gICAgICAgICAgIjAuMjU1LCAwLjI0Mzc1LCAwLjIzMTI1LCAwLjIxMjUsIDAuMjA2MjUsIDAuMTksIDAuMTc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDkzNzUsIDAuMDc2MjUsIDAuMDYzNzUsIDAuMDQ1LCAwLjAzMjUsIDAuMDEsIC0wLjAxMTI1IiwgXAotICAgICAgICAgICIwLjEwNSwgMC4wODc1LCAwLjA3NSwgMC4wNTYyNSwgMC4wNDM3NSwgMC4wMjEyNSwgMCIsIFwKLSAgICAgICAgICAiMC4xMTc1LCAwLjEsIDAuMDg3NSwgMC4wNjg3NSwgMC4wNTYyNSwgMC4wMzM3NSwgMC4wMTI1IiwgXAotICAgICAgICAgICIwLjEzLCAwLjExMjUsIDAuMSwgMC4wODEyNSwgMC4wNjg3NSwgMC4wNDYyNSwgMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMTQyNSwgMC4xMjUsIDAuMTEyNSwgMC4wOTM3NSwgMC4wODEyNSwgMC4wNTg3NSwgMC4wMzc1IiwgXAotICAgICAgICAgICIwLjE1ODc1LCAwLjE0NzUsIDAuMTM1LCAwLjExNjI1LCAwLjA5NzUsIDAuMDc1LCAwLjA1Mzc1IiwgXAotICAgICAgICAgICIwLjE3Mzc1LCAwLjE2MjUsIDAuMTUsIDAuMTMxMjUsIDAuMTE4NzUsIDAuMDksIDAuMDc1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihRKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMTI4NjA4OwotICAgIGZ1bmN0aW9uIDogIk4zMCI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3NlbnNlIDogbm9uX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiByaXNpbmdfZWRnZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjU5MTcxLCAwLjMwMjI3NywgMC41NDY1ODMsIDAuNzYyMjgyLCAxLjA0OTg2LCAxLjYyNTExLCAxLjk4NDYyIiwgXAotICAgICAgICAgICIwLjI3MTE5NSwgMC4zMTQzMjUsIDAuNTU4NjUyLCAwLjc3NDMxNCwgMS4wNjE4NCwgMS42MzcyOCwgMS45OTY3NCIsIFwKLSAgICAgICAgICAiMC4yODYyNzYsIDAuMzI5MzkzLCAwLjU3MzY5MywgMC43ODkzOTEsIDEuMDc2OTYsIDEuNjUyMjcsIDIuMDExNzMiLCBcCi0gICAgICAgICAgIjAuMzAxODM2LCAwLjM0NDk0OCwgMC41ODkyNTgsIDAuODA0OTU3LCAxLjA5MjU0LCAxLjY2NzczLCAyLjAyNzI5IiwgXAotICAgICAgICAgICIwLjMxNzE4OCwgMC4zNjAzMDEsIDAuNjA0NjE1LCAwLjgyMDMxOCwgMS4xMDc4NiwgMS42ODMyOCwgMi4wNDI2OCIsIFwKLSAgICAgICAgICAiMC4zNDE0MDEsIDAuMzg0NTE5LCAwLjYyODgyMiwgMC44NDQ1MSwgMS4xMzIxNCwgMS43MDczNSwgMi4wNjY3OSIsIFwKLSAgICAgICAgICAiMC4zNjIxOCwgMC40MDUzLCAwLjY0OTYxLCAwLjg2NTMsIDEuMTUyOTIsIDEuNzI4MTIsIDIuMDg3NiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNjAxNTYsIDAuMjQ2ODg1LCAwLjc0MjY2OSwgMS4xODM0NywgMS43NjkxNiwgMi45NDA1OCwgMy42NjM1OCIsIFwKLSAgICAgICAgICAiMC4xNTk5MTMsIDAuMjQ2ODkyLCAwLjc0MjMzNywgMS4xODM0MSwgMS43Njg2OSwgMi45MzM1MSwgMy42NzI3MSIsIFwKLSAgICAgICAgICAiMC4xNTk4OTksIDAuMjQ2OTU2LCAwLjc0MjY2NywgMS4xODM0NSwgMS43NjkwOSwgMi45NDA0NCwgMy42NjM2OCIsIFwKLSAgICAgICAgICAiMC4xNjAxMzMsIDAuMjQ2NTQyLCAwLjc0MjY3MywgMS4xODM0NiwgMS43NjkxNiwgMi45NDAyMywgMy42NjczNSIsIFwKLSAgICAgICAgICAiMC4xNTk5MTUsIDAuMjQ2ODk2LCAwLjc0NDAwMiwgMS4xODM0MywgMS43NjYxMywgMi45MzM3OSwgMy42NzI2NSIsIFwKLSAgICAgICAgICAiMC4xNjAxNDksIDAuMjQ2OSwgMC43NDI1OTksIDEuMTgzMzgsIDEuNzY5MTUsIDIuOTM0MzMsIDMuNjcxNTciLCBcCi0gICAgICAgICAgIjAuMTYwMTU5LCAwLjI0Njg5MywgMC43NDI2NjIsIDEuMTgzNDIsIDEuNzY5MTIsIDIuOTMzOTcsIDMuNjY2MjUiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzA0NjYyLCAwLjM1NDEyNiwgMC42MzQwNjcsIDAuODgwODkzLCAxLjIxMDAzLCAxLjg2ODI4LCAyLjI3OTcyIiwgXAotICAgICAgICAgICIwLjMxNjQ4OSwgMC4zNjU5NTgsIDAuNjQ1ODQ3LCAwLjg5MjcxLCAxLjIyMTg2LCAxLjg4MDI1LCAyLjI5MTM5IiwgXAotICAgICAgICAgICIwLjMzMTc1NywgMC4zODEyMjEsIDAuNjYxMTI1LCAwLjkwNzk3NiwgMS4yMzcxNSwgMS44OTU1MiwgMi4zMDY3OCIsIFwKLSAgICAgICAgICAiMC4zNDcyMjYsIDAuMzk2Njc4LCAwLjY3NjYyNiwgMC45MjM0NTIsIDEuMjUyNiwgMS45MTA4NSwgMi4zMjIyOCIsIFwKLSAgICAgICAgICAiMC4zNjI1OTYsIDAuNDEyMDc2LCAwLjY5MTk5NiwgMC45Mzg4MTcsIDEuMjY4LCAxLjkyNjM5LCAyLjMzNzY2IiwgXAotICAgICAgICAgICIwLjM4Njk0LCAwLjQzNjQwNiwgMC43MTYzNDksIDAuOTYzMTkxLCAxLjI5MjMsIDEuOTUwNzEsIDIuMzYxOTciLCBcCi0gICAgICAgICAgIjAuNDA3OTcxLCAwLjQ1NzQzNSwgMC43MzczNzUsIDAuOTg0MTk2LCAxLjMxMzM0LCAxLjk3MTU5LCAyLjM4MzAzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE3NzQ4MiwgMC4yNzU3MDMsIDAuODI5MjQyLCAxLjMyMzQ0LCAxLjk3ODYsIDMuMjg0NDcsIDQuMTAyNDIiLCBcCi0gICAgICAgICAgIjAuMTc3NTA5LCAwLjI3NTEzLCAwLjgzMjM2LCAxLjMyMzU4LCAxLjk3ODM0LCAzLjI3ODg4LCA0LjEwNTM4IiwgXAotICAgICAgICAgICIwLjE3NzUyNCwgMC4yNzU3NDQsIDAuODMyMjY0LCAxLjMyMzYsIDEuOTc4NSwgMy4yNzk0NSwgNC4xMDQ4OSIsIFwKLSAgICAgICAgICAiMC4xNzc2MDYsIDAuMjc1MzMsIDAuODI5MjY2LCAxLjMyMzQ1LCAxLjk3ODU5LCAzLjI4MzkyLCA0LjEwNDExIiwgXAotICAgICAgICAgICIwLjE3NzUyMywgMC4yNzU3NCwgMC44Mjk0NzYsIDEuMzIzNzEsIDEuOTc4NDYsIDMuMjg0MzQsIDQuMTA0MTciLCBcCi0gICAgICAgICAgIjAuMTc3Njk1LCAwLjI3NTc0NSwgMC44MzAxNzcsIDEuMzIzNTEsIDEuOTc4NjksIDMuMjc5ODcsIDQuMTAwOTkiLCBcCi0gICAgICAgICAgIjAuMTc3NzUyLCAwLjI3NTcwOSwgMC44MjkyMjksIDEuMzIzNDgsIDEuOTc4NjQsIDMuMjgzMjMsIDQuMTA0MTYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1ODUsIDAuMDA1ODQ2LCAwLjAwNTgyOCwgMC4wMDU4MjEsIDAuMDA1ODE2LCAwLjAwNTgxMiwgMC4wMDU4MSIsIFwKLSAgICAgICAgICAiMC4wMDU4MzksIDAuMDA1ODM2LCAwLjAwNTgxNywgMC4wMDU4MSwgMC4wMDU4MDUsIDAuMDA1ODAxLCAwLjAwNTc5OSIsIFwKLSAgICAgICAgICAiMC4wMDU4MjYsIDAuMDA1ODIzLCAwLjAwNTgwNCwgMC4wMDU3OTcsIDAuMDA1NzkyLCAwLjAwNTc4OCwgMC4wMDU3ODYiLCBcCi0gICAgICAgICAgIjAuMDA1ODE2LCAwLjAwNTgxMywgMC4wMDU3OTQsIDAuMDA1Nzg3LCAwLjAwNTc4MywgMC4wMDU3NzksIDAuMDA1Nzc3IiwgXAotICAgICAgICAgICIwLjAwNTgxLCAwLjAwNTgwNiwgMC4wMDU3ODgsIDAuMDA1NzgxLCAwLjAwNTc3NiwgMC4wMDU3NzEsIDAuMDA1NzY5IiwgXAotICAgICAgICAgICIwLjAwNTc5NywgMC4wMDU3OTQsIDAuMDA1Nzc2LCAwLjAwNTc2OSwgMC4wMDU3NjQsIDAuMDA1NzU5LCAwLjAwNTc1OCIsIFwKLSAgICAgICAgICAiMC4wMDU3OTEsIDAuMDA1Nzg4LCAwLjAwNTc3MSwgMC4wMDU3NjMsIDAuMDA1NzU5LCAwLjAwNTc1NCwgMC4wMDU3NTEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDYxNjIsIDAuMDA2MTY4LCAwLjAwNjE3NiwgMC4wMDYxNzgsIDAuMDA2MTc5LCAwLjAwNjE3OSwgMC4wMDYxOCIsIFwKLSAgICAgICAgICAiMC4wMDYxNDgsIDAuMDA2MTU0LCAwLjAwNjE2MiwgMC4wMDYxNjMsIDAuMDA2MTY0LCAwLjAwNjE2NSwgMC4wMDYxNjUiLCBcCi0gICAgICAgICAgIjAuMDA2MTM3LCAwLjAwNjE0MywgMC4wMDYxNTEsIDAuMDA2MTUzLCAwLjAwNjE1NCwgMC4wMDYxNTQsIDAuMDA2MTU1IiwgXAotICAgICAgICAgICIwLjAwNjEyOSwgMC4wMDYxMzQsIDAuMDA2MTQyLCAwLjAwNjE0NCwgMC4wMDYxNDUsIDAuMDA2MTQ2LCAwLjAwNjE0NyIsIFwKLSAgICAgICAgICAiMC4wMDYxMjcsIDAuMDA2MTMzLCAwLjAwNjE0MSwgMC4wMDYxNDIsIDAuMDA2MTQzLCAwLjAwNjE0NCwgMC4wMDYxNDUiLCBcCi0gICAgICAgICAgIjAuMDA2MTI1LCAwLjAwNjEzMSwgMC4wMDYxMzksIDAuMDA2MTQsIDAuMDA2MTQxLCAwLjAwNjE0MiwgMC4wMDYxNDMiLCBcCi0gICAgICAgICAgIjAuMDA2MTMyLCAwLjAwNjEzOCwgMC4wMDYxNDUsIDAuMDA2MTQ3LCAwLjAwNjE0OCwgMC4wMDYxNDksIDAuMDA2MTUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFNFKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE1MzI2MjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE1MzEyNjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE1MzI2MjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDQ1NDksIDAuMDA0NTQ3LCAwLjAwNDU0MSwgMC4wMDQ1MzUsIDAuMDA0NTMsIDAuMDA0NTI1LCAwLjAwNDUyMiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNTYzOSwgMC4wMDU2MTQsIDAuMDA1NTk1LCAwLjAwNTU4MywgMC4wMDU1NzQsIDAuMDA1NTY1LCAwLjAwNTU2MSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRCZTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fU0lfRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wODc1LCAtMC4wODI1LCAtMC4wNywgLTAuMDU3NSwgLTAuMDQ1LCAtMC4wMjg3NSwgLTAuMDIiLCBcCi0gICAgICAgICAgIi0wLjA5ODc1LCAtMC4wODc1LCAtMC4wNzUsIC0wLjA2ODc1LCAtMC4wNTYyNSwgLTAuMDQsIC0wLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMTExMjUsIC0wLjEwNjI1LCAtMC4wOTM3NSwgLTAuMDgxMjUsIC0wLjA2ODc1LCAtMC4wNTI1LCAtMC4wNDM3NSIsIFwKLSAgICAgICAgICAiLTAuMTIzNzUsIC0wLjExODc1LCAtMC4xMDYyNSwgLTAuMDkzNzUsIC0wLjA4MTI1LCAtMC4wNjUsIC0wLjA1NjI1IiwgXAotICAgICAgICAgICItMC4xNDI1LCAtMC4xMzEyNSwgLTAuMTE4NzUsIC0wLjEwNjI1LCAtMC4wOTM3NSwgLTAuMDc3NSwgLTAuMDY4NzUiLCBcCi0gICAgICAgICAgIi0wLjE1ODc1LCAtMC4xNTM3NSwgLTAuMTQxMjUsIC0wLjEyODc1LCAtMC4xMTYyNSwgLTAuMSwgLTAuMDkxMjUiLCBcCi0gICAgICAgICAgIi0wLjE4LCAtMC4xNjg3NSwgLTAuMTU2MjUsIC0wLjE0Mzc1LCAtMC4xMzc1LCAtMC4xMjEyNSwgLTAuMTA2MjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjI1LCAwLjAxNzUsIDAuMDM2MjUsIDAuMDQ4NzUsIDAuMDYxMjUsIDAuMDgzNzUsIDAuMTA1IiwgXAotICAgICAgICAgICItMC4wMDUsIDAuMDA2MjUsIDAuMDI1LCAwLjAzNzUsIDAuMDUsIDAuMDcyNSwgMC4wOTM3NSIsIFwKLSAgICAgICAgICAiLTAuMDExMjUsIDAsIDAuMDEyNSwgMC4wMjUsIDAuMDM3NSwgMC4wNiwgMC4wODEyNSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxMjUsIDAsIDAuMDEyNSwgMC4wMjUsIDAuMDQ3NSwgMC4wNjg3NSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAyNSwgLTAuMDEyNSwgMCwgMC4wMTI1LCAwLjA0MTI1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICItMC4wNTg3NSwgLTAuMDQxMjUsIC0wLjAyODc1LCAtMC4wMTYyNSwgLTAuMDAzNzUsIDAuMDE4NzUsIDAuMDQiLCBcCi0gICAgICAgICAgIi0wLjA2NzUsIC0wLjA1NjI1LCAtMC4wNDM3NSwgLTAuMDMxMjUsIC0wLjAxODc1LCAwLjAwMzc1LCAwLjAyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJEJiFTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzFfQU5fU0lfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMzEyNSwgLTAuMDIsIC0wLjAwMTI1LCAwLjAxMTI1LCAwLjAyMzc1LCAwLjA0NjI1LCAwLjA2NzUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzMTI1LCAtMC4wMTI1LCAwLCAwLjAxMjUsIDAuMDM1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA0Mzc1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIDAsIDAuMDIyNSwgMC4wMzc1IiwgXAotICAgICAgICAgICItMC4wNzM3NSwgLTAuMDYyNSwgLTAuMDQzNzUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgMC4wMDM3NSwgMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjA4NjI1LCAtMC4wNzUsIC0wLjA2MjUsIC0wLjA1LCAtMC4wMzEyNSwgLTAuMDA4NzUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMTA4NzUsIC0wLjA5NzUsIC0wLjA4NSwgLTAuMDcyNSwgLTAuMDUzNzUsIC0wLjAzMTI1LCAtMC4wMSIsIFwKLSAgICAgICAgICAiLTAuMTIzNzUsIC0wLjExMjUsIC0wLjEsIC0wLjA4NzUsIC0wLjA3NSwgLTAuMDQ2MjUsIC0wLjAzMTI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMTI1LCAtMC4xMTM3NSwgLTAuMTAxMjUsIC0wLjA4ODc1LCAtMC4wODI1LCAtMC4wNjYyNSwgLTAuMDUxMjUiLCBcCi0gICAgICAgICAgIi0wLjEzNjI1LCAtMC4xMjUsIC0wLjExMjUsIC0wLjEwNjI1LCAtMC4wOTM3NSwgLTAuMDc3NSwgLTAuMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMTQ4NzUsIC0wLjE0Mzc1LCAtMC4xMzEyNSwgLTAuMTE4NzUsIC0wLjEwNjI1LCAtMC4wOSwgLTAuMDgxMjUiLCBcCi0gICAgICAgICAgIi0wLjE2NzUsIC0wLjE1NjI1LCAtMC4xNDM3NSwgLTAuMTMxMjUsIC0wLjExODc1LCAtMC4xMDg3NSwgLTAuMDkzNzUiLCBcCi0gICAgICAgICAgIi0wLjE4LCAtMC4xNjg3NSwgLTAuMTU2MjUsIC0wLjE0Mzc1LCAtMC4xMzc1LCAtMC4xMjEyNSwgLTAuMTA2MjUiLCBcCi0gICAgICAgICAgIi0wLjE5NjI1LCAtMC4xOTEyNSwgLTAuMTc4NzUsIC0wLjE2NjI1LCAtMC4xNTM3NSwgLTAuMTM3NSwgLTAuMTIyNSIsIFwKLSAgICAgICAgICAiLTAuMjExMjUsIC0wLjIwNjI1LCAtMC4xOTM3NSwgLTAuMTgxMjUsIC0wLjE2ODc1LCAtMC4xNTI1LCAtMC4xMzc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRCZTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fU0lfRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNSwgMC4xMzg3NSwgMC4xMjYyNSwgMC4xMDc1LCAwLjEwMTI1LCAwLjA4NSwgMC4wNyIsIFwKLSAgICAgICAgICAiMC4xNjEyNSwgMC4xNSwgMC4xMzc1LCAwLjExODc1LCAwLjEwNjI1LCAwLjA5LCAwLjA4MTI1IiwgXAotICAgICAgICAgICIwLjE3Mzc1LCAwLjE2MjUsIDAuMTUsIDAuMTMxMjUsIDAuMTI1LCAwLjEwODc1LCAwLjA5Mzc1IiwgXAotICAgICAgICAgICIwLjE4NjI1LCAwLjE3NSwgMC4xNjI1LCAwLjE1LCAwLjEzNzUsIDAuMTIxMjUsIDAuMTA2MjUiLCBcCi0gICAgICAgICAgIjAuMTk4NzUsIDAuMTg3NSwgMC4xNzUsIDAuMTYyNSwgMC4xNSwgMC4xMzM3NSwgMC4xMTg3NSIsIFwKLSAgICAgICAgICAiMC4yMjEyNSwgMC4yMSwgMC4xOTc1LCAwLjE3ODc1LCAwLjE3MjUsIDAuMTU2MjUsIDAuMTQxMjUiLCBcCi0gICAgICAgICAgIjAuMjQyNSwgMC4yMzEyNSwgMC4yMTI1LCAwLjIsIDAuMTg3NSwgMC4xNzEyNSwgMC4xNjI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDgxMjUsIDAuMDYzNzUsIDAuMDUxMjUsIDAuMDMyNSwgMC4wMiwgLTAuMDAyNSwgLTAuMDIzNzUiLCBcCi0gICAgICAgICAgIjAuMDkyNSwgMC4wNzUsIDAuMDYyNSwgMC4wNDM3NSwgMC4wMzEyNSwgMC4wMDI1LCAtMC4wMTI1IiwgXAotICAgICAgICAgICIwLjEwNSwgMC4wODc1LCAwLjA3NSwgMC4wNTYyNSwgMC4wNDM3NSwgMC4wMjEyNSwgMCIsIFwKLSAgICAgICAgICAiMC4xMTc1LCAwLjEwNjI1LCAwLjA4NzUsIDAuMDY4NzUsIDAuMDU2MjUsIDAuMDMzNzUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4xMywgMC4xMTg3NSwgMC4xLCAwLjA4NzUsIDAuMDY4NzUsIDAuMDQ2MjUsIDAuMDI1IiwgXAotICAgICAgICAgICIwLjE1MjUsIDAuMTM1LCAwLjEyMjUsIDAuMTAzNzUsIDAuMDkxMjUsIDAuMDY4NzUsIDAuMDQ3NSIsIFwKLSAgICAgICAgICAiMC4xNjc1LCAwLjE1NjI1LCAwLjEzNzUsIDAuMTI1LCAwLjEwNjI1LCAwLjA4Mzc1LCAwLjA2MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIkQmIVNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMV9BTl9TSV9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExODc1LCAwLjEwNzUsIDAuMDg4NzUsIDAuMDc2MjUsIDAuMDU3NSwgMC4wMzUsIDAuMDEzNzUiLCBcCi0gICAgICAgICAgIjAuMTMsIDAuMTE4NzUsIDAuMSwgMC4wODc1LCAwLjA2ODc1LCAwLjA0NjI1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiMC4xNDg3NSwgMC4xMzEyNSwgMC4xMTg3NSwgMC4xLCAwLjA4NzUsIDAuMDY1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjE2MTI1LCAwLjE1LCAwLjEzMTI1LCAwLjExODc1LCAwLjEsIDAuMDc3NSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiMC4xNzM3NSwgMC4xNjI1LCAwLjE1LCAwLjEzMTI1LCAwLjExODc1LCAwLjA5LCAwLjA2ODc1IiwgXAotICAgICAgICAgICIwLjE5NjI1LCAwLjE4NSwgMC4xNzI1LCAwLjE1Mzc1LCAwLjE0MTI1LCAwLjExMjUsIDAuMDkxMjUiLCBcCi0gICAgICAgICAgIjAuMjE3NSwgMC4yLCAwLjE4NzUsIDAuMTY4NzUsIDAuMTU2MjUsIDAuMTMzNzUsIDAuMTEyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE4NzUsIDAuMTc2MjUsIDAuMTU3NSwgMC4xNDUsIDAuMTMyNSwgMC4xMTYyNSwgMC4xMDEyNSIsIFwKLSAgICAgICAgICAiMC4xOTg3NSwgMC4xODc1LCAwLjE2ODc1LCAwLjE1NjI1LCAwLjE0Mzc1LCAwLjEyNzUsIDAuMTEyNSIsIFwKLSAgICAgICAgICAiMC4yMTEyNSwgMC4yLCAwLjE4NzUsIDAuMTY4NzUsIDAuMTYyNSwgMC4xNDYyNSwgMC4xMzEyNSIsIFwKLSAgICAgICAgICAiMC4yMywgMC4yMTI1LCAwLjIsIDAuMTg3NSwgMC4xNzUsIDAuMTU4NzUsIDAuMTQzNzUiLCBcCi0gICAgICAgICAgIjAuMjQyNSwgMC4yMjUsIDAuMjEyNSwgMC4yLCAwLjE4NzUsIDAuMTcxMjUsIDAuMTU2MjUiLCBcCi0gICAgICAgICAgIjAuMjU4NzUsIDAuMjQ3NSwgMC4yMzUsIDAuMjE2MjUsIDAuMjAzNzUsIDAuMTkzNzUsIDAuMTc4NzUiLCBcCi0gICAgICAgICAgIjAuMjczNzUsIDAuMjYyNSwgMC4yNSwgMC4yMzEyNSwgMC4yMTg3NSwgMC4yMDg3NSwgMC4xOTM3NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oU0kpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDg0OTQwNDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA4NDU0OTg7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwODQ5NDA0OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzAzNCwgMC4wMDMwMTUsIDAuMDAzMDA1LCAwLjAwMjk5OCwgMC4wMDI5OTIsIDAuMDAyOTg2LCAwLjAwMjk4MiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNDk0LCAwLjAwNDkzLCAwLjAwNDkyNSwgMC4wMDQ5MjEsIDAuMDA0OTE4LCAwLjAwNDkxNSwgMC4wMDQ5MTIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiU0UiOwotICAgICAgc2RmX2NvbmQgOiAiU0UgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMSwgLTAuMDk1LCAtMC4wODI1LCAtMC4wNywgLTAuMDU3NSwgLTAuMDQxMjUsIC0wLjAzMjUiLCBcCi0gICAgICAgICAgIi0wLjExMTI1LCAtMC4xMDYyNSwgLTAuMDkzNzUsIC0wLjA4MTI1LCAtMC4wNjg3NSwgLTAuMDUyNSwgLTAuMDQzNzUiLCBcCi0gICAgICAgICAgIi0wLjEzLCAtMC4xMTg3NSwgLTAuMTA2MjUsIC0wLjA5Mzc1LCAtMC4wODEyNSwgLTAuMDY1LCAtMC4wNTYyNSIsIFwKLSAgICAgICAgICAiLTAuMTQyNSwgLTAuMTMxMjUsIC0wLjExODc1LCAtMC4xMDYyNSwgLTAuMDkzNzUsIC0wLjA4Mzc1LCAtMC4wNjg3NSIsIFwKLSAgICAgICAgICAiLTAuMTU1LCAtMC4xNDM3NSwgLTAuMTMxMjUsIC0wLjExODc1LCAtMC4xMTI1LCAtMC4wOTYyNSwgLTAuMDgxMjUiLCBcCi0gICAgICAgICAgIi0wLjE3NzUsIC0wLjE2NjI1LCAtMC4xNTM3NSwgLTAuMTQxMjUsIC0wLjEyODc1LCAtMC4xMTg3NSwgLTAuMTAzNzUiLCBcCi0gICAgICAgICAgIi0wLjE5MjUsIC0wLjE4MTI1LCAtMC4xNjg3NSwgLTAuMTYyNSwgLTAuMTUsIC0wLjEzMzc1LCAtMC4xMTg3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAwNjI1LCAwLjAwNSwgMC4wMjM3NSwgMC4wMzYyNSwgMC4wNDg3NSwgMC4wNzEyNSwgMC4wOTI1IiwgXAotICAgICAgICAgICItMC4wMTc1LCAtMC4wMDYyNSwgMC4wMTI1LCAwLjAyNSwgMC4wMzc1LCAwLjA2LCAwLjA4MTI1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDE4NzUsIDAsIDAuMDEyNSwgMC4wMjUsIDAuMDQ3NSwgMC4wNjg3NSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDMxMjUsIC0wLjAxMjUsIDAsIDAuMDEyNSwgMC4wMzUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIi0wLjA1NSwgLTAuMDQzNzUsIC0wLjAyNSwgLTAuMDEyNSwgMCwgMC4wMjI1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICItMC4wNzEyNSwgLTAuMDYsIC0wLjA0NzUsIC0wLjAyODc1LCAtMC4wMTYyNSwgMC4wMDYyNSwgMC4wMjEyNSIsIFwKLSAgICAgICAgICAiLTAuMDg2MjUsIC0wLjA3NSwgLTAuMDU2MjUsIC0wLjA0Mzc1LCAtMC4wMzEyNSwgLTAuMDA4NzUsIDAuMDA2MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlNFIjsKLSAgICAgIHNkZl9jb25kIDogIlNFID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE2MjUsIDAuMTUxMjUsIDAuMTM4NzUsIDAuMTIsIDAuMTEzNzUsIDAuMDk3NSwgMC4wODI1IiwgXAotICAgICAgICAgICIwLjE3Mzc1LCAwLjE2MjUsIDAuMTUsIDAuMTMxMjUsIDAuMTI1LCAwLjEwODc1LCAwLjA5Mzc1IiwgXAotICAgICAgICAgICIwLjE4NjI1LCAwLjE3NSwgMC4xNjI1LCAwLjE1LCAwLjEzNzUsIDAuMTIxMjUsIDAuMTA2MjUiLCBcCi0gICAgICAgICAgIjAuMjA1LCAwLjE4NzUsIDAuMTc1LCAwLjE2MjUsIDAuMTUsIDAuMTMzNzUsIDAuMTE4NzUiLCBcCi0gICAgICAgICAgIjAuMjE3NSwgMC4yLCAwLjE4NzUsIDAuMTc1LCAwLjE2MjUsIDAuMTQ2MjUsIDAuMTMxMjUiLCBcCi0gICAgICAgICAgIjAuMjMzNzUsIDAuMjIyNSwgMC4yMSwgMC4xOTc1LCAwLjE4NSwgMC4xNjg3NSwgMC4xNTM3NSIsIFwKLSAgICAgICAgICAiMC4yNTUsIDAuMjQzNzUsIDAuMjI1LCAwLjIxMjUsIDAuMiwgMC4xODM3NSwgMC4xNzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTM3NSwgMC4wODI1LCAwLjA2Mzc1LCAwLjA1MTI1LCAwLjAzMjUsIDAuMDEsIC0wLjAxMTI1IiwgXAotICAgICAgICAgICIwLjEwNSwgMC4wOTM3NSwgMC4wNzUsIDAuMDYyNSwgMC4wNDM3NSwgMC4wMjEyNSwgMCIsIFwKLSAgICAgICAgICAiMC4xMTc1LCAwLjEwNjI1LCAwLjA4NzUsIDAuMDc1LCAwLjA1NjI1LCAwLjAzMzc1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMTMsIDAuMTE4NzUsIDAuMSwgMC4wODc1LCAwLjA2ODc1LCAwLjA0NjI1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiMC4xNDI1LCAwLjEzMTI1LCAwLjExMjUsIDAuMSwgMC4wODEyNSwgMC4wNTg3NSwgMC4wMzc1IiwgXAotICAgICAgICAgICIwLjE2NSwgMC4xNDc1LCAwLjEzNSwgMC4xMTYyNSwgMC4xMDM3NSwgMC4wNzUsIDAuMDYiLCBcCi0gICAgICAgICAgIjAuMTgsIDAuMTY4NzUsIDAuMTUsIDAuMTM3NSwgMC4xMTg3NSwgMC4wOTYyNSwgMC4wNzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogU0RGRkhRWDIgKgotICogLS0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKFNERkZIUVgyKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMzY2NzkxOwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIGZmIChOMzAsUUJJTlQpIHsKLSAgICBuZXh0X3N0YXRlIDogIigoU0UgU0kpICsgKCFTRSBEKSkiOwotICAgIGNsb2NrZWRfb24gOiAiQ0siOwotICB9Ci0gIHBpbihDSykgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNTkxNTA1OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDU5MTIxOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDU5MTUwNTsKLSAgICBjbG9jayA6IHRydWU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyNzM0LCAwLjAwMjcyMiwgMC4wMDI3MSwgMC4wMDI3MDUsIDAuMDAyNywgMC4wMDI2OTIsIDAuMDAyNjkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDU5MzYsIDAuMDA1OTI2LCAwLjAwNTkxNywgMC4wMDU5MTEsIDAuMDA1OTExLCAwLjAwNTkxNiwgMC4wMDU5MTgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFEJiFTRSYhU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1NFX0VRXzBfQU5fU0lfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjI3NDUxMiwgMC4yODY0NTcsIDAuMzAxNjA0LCAwLjMxNzA4NCwgMC4zMzI0NTMsIDAuMzU2NzgyLCAwLjM3NzgwNiIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMTk1MTI1LCAwLjIwNjQ4MywgMC4yMjE1MzQsIDAuMjM2Mzk4LCAwLjI1MTA0MiwgMC4yNzQwMTksIDAuMjkzMjM4Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihEKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA4MjY1NzE7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwODIyOTI1OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDgyNjU3MTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDMxNDQsIDAuMDAzMTI0LCAwLjAwMzExNCwgMC4wMDMxMDgsIDAuMDAzMTAyLCAwLjAwMzA5NywgMC4wMDMwOTIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDQ4MTIsIDAuMDA0ODAxLCAwLjAwNDc5NiwgMC4wMDQ3OTIsIDAuMDA0Nzg5LCAwLjAwNDc4NiwgMC4wMDQ3ODQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIVNFIjsKLSAgICAgIHNkZl9jb25kIDogIlNFID09IDEnYjAiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjEwNjI1LCAtMC4wOTUsIC0wLjA4MjUsIC0wLjA3LCAtMC4wNTc1LCAtMC4wNDc1LCAtMC4wMzI1IiwgXAotICAgICAgICAgICItMC4xMTc1LCAtMC4xMDYyNSwgLTAuMDkzNzUsIC0wLjA4MTI1LCAtMC4wNjg3NSwgLTAuMDU4NzUsIC0wLjA0Mzc1IiwgXAotICAgICAgICAgICItMC4xMywgLTAuMTE4NzUsIC0wLjEwNjI1LCAtMC4wOTM3NSwgLTAuMDg3NSwgLTAuMDcxMjUsIC0wLjA1NjI1IiwgXAotICAgICAgICAgICItMC4xNDI1LCAtMC4xMzEyNSwgLTAuMTE4NzUsIC0wLjEwNjI1LCAtMC4xLCAtMC4wODM3NSwgLTAuMDY4NzUiLCBcCi0gICAgICAgICAgIi0wLjE1NSwgLTAuMTQzNzUsIC0wLjEzMTI1LCAtMC4xMjUsIC0wLjExMjUsIC0wLjA5NjI1LCAtMC4wODEyNSIsIFwKLSAgICAgICAgICAiLTAuMTc3NSwgLTAuMTY2MjUsIC0wLjE1Mzc1LCAtMC4xNDEyNSwgLTAuMTM1LCAtMC4xMTg3NSwgLTAuMTAzNzUiLCBcCi0gICAgICAgICAgIi0wLjE5MjUsIC0wLjE4NzUsIC0wLjE3NSwgLTAuMTYyNSwgLTAuMTUsIC0wLjEzMzc1LCAtMC4xMjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLCAwLjAxMTI1LCAwLjAyMzc1LCAwLjAzNjI1LCAwLjA0ODc1LCAwLjA3MTI1LCAwLjA5MjUiLCBcCi0gICAgICAgICAgIi0wLjAxMTI1LCAwLCAwLjAxMjUsIDAuMDI1LCAwLjAzNzUsIDAuMDYsIDAuMDgxMjUiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTI1LCAwLCAwLjAxMjUsIDAuMDI1LCAwLjA0NzUsIDAuMDY4NzUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMjUsIC0wLjAxMjUsIDAsIDAuMDEyNSwgMC4wMzUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAxMjUsIDAuMDA2MjUsIDAuMDI4NzUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIi0wLjA2NSwgLTAuMDUzNzUsIC0wLjA0MTI1LCAtMC4wMjg3NSwgLTAuMDE2MjUsIDAuMDA2MjUsIDAuMDI3NSIsIFwKLSAgICAgICAgICAiLTAuMDgsIC0wLjA2ODc1LCAtMC4wNTYyNSwgLTAuMDQzNzUsIC0wLjAzMTI1LCAtMC4wMDg3NSwgMC4wMTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhU0UiOwotICAgICAgc2RmX2NvbmQgOiAiU0UgPT0gMSdiMCI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTY4NzUsIDAuMTU3NSwgMC4xMzg3NSwgMC4xMjYyNSwgMC4xMTM3NSwgMC4wOTc1LCAwLjA4MjUiLCBcCi0gICAgICAgICAgIjAuMTgsIDAuMTY4NzUsIDAuMTUsIDAuMTM3NSwgMC4xMjUsIDAuMTA4NzUsIDAuMDkzNzUiLCBcCi0gICAgICAgICAgIjAuMTkyNSwgMC4xODEyNSwgMC4xNjI1LCAwLjE1LCAwLjEzNzUsIDAuMTIxMjUsIDAuMTEyNSIsIFwKLSAgICAgICAgICAiMC4yMDUsIDAuMTkzNzUsIDAuMTc1LCAwLjE2MjUsIDAuMTUsIDAuMTMzNzUsIDAuMTI1IiwgXAotICAgICAgICAgICIwLjIxNzUsIDAuMjA2MjUsIDAuMTkzNzUsIDAuMTc1LCAwLjE2ODc1LCAwLjE0NjI1LCAwLjEzNzUiLCBcCi0gICAgICAgICAgIjAuMjQsIDAuMjI4NzUsIDAuMjEsIDAuMTk3NSwgMC4xODUsIDAuMTY4NzUsIDAuMTYiLCBcCi0gICAgICAgICAgIjAuMjYxMjUsIDAuMjQzNzUsIDAuMjMxMjUsIDAuMjE4NzUsIDAuMjA2MjUsIDAuMTksIDAuMTc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDkzNzUsIDAuMDgyNSwgMC4wNjM3NSwgMC4wNDUsIDAuMDMyNSwgMC4wMSwgLTAuMDExMjUiLCBcCi0gICAgICAgICAgIjAuMTA1LCAwLjA5Mzc1LCAwLjA3NSwgMC4wNjI1LCAwLjA0Mzc1LCAwLjAyMTI1LCAwIiwgXAotICAgICAgICAgICIwLjExNzUsIDAuMTA2MjUsIDAuMDg3NSwgMC4wNzUsIDAuMDU2MjUsIDAuMDMzNzUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4xMywgMC4xMTg3NSwgMC4xLCAwLjA4NzUsIDAuMDY4NzUsIDAuMDQ2MjUsIDAuMDI1IiwgXAotICAgICAgICAgICIwLjE0MjUsIDAuMTMxMjUsIDAuMTEyNSwgMC4xLCAwLjA4MTI1LCAwLjA1ODc1LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIjAuMTU4NzUsIDAuMTQ3NSwgMC4xMzUsIDAuMTE2MjUsIDAuMTAzNzUsIDAuMDc1LCAwLjA1Mzc1IiwgXAotICAgICAgICAgICIwLjE4LCAwLjE2ODc1LCAwLjE1LCAwLjEzMTI1LCAwLjExODc1LCAwLjA5NjI1LCAwLjA3NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjI2MjI4NDsKLSAgICBmdW5jdGlvbiA6ICJOMzAiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5vbl91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcmlzaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIzNTA0NiwgMC40MTQ3NTYsIDAuNTU4MDQ0LCAwLjczNzIxOCwgMC45MTYzNDMsIDEuMDk1NTEsIDEuMjc0NjYiLCBcCi0gICAgICAgICAgIjAuMjQ3MTc1LCAwLjQyNjkwOCwgMC41NzAxNywgMC43NDkzNDEsIDAuOTI4NDc1LCAxLjEwNzYsIDEuMjg2NzgiLCBcCi0gICAgICAgICAgIjAuMjYyMjE2LCAwLjQ0MTkxNSwgMC41ODUyMDcsIDAuNzY0Mzc5LCAwLjk0MzUwNSwgMS4xMjI2NywgMS4zMDE4MiIsIFwKLSAgICAgICAgICAiMC4yNzc2ODYsIDAuNDU3NDIyLCAwLjYwMDY4NSwgMC43Nzk4NTksIDAuOTU4OTkzLCAxLjEzODIxLCAxLjMxNzMxIiwgXAotICAgICAgICAgICIwLjI5MzA3LCAwLjQ3Mjc1NSwgMC42MTYxMjMsIDAuNzk1MjM4LCAwLjk3NDM1OCwgMS4xNTM1MywgMS4zMzI2OCIsIFwKLSAgICAgICAgICAiMC4zMTczMTcsIDAuNDk3MDU5LCAwLjY0MDMxNiwgMC44MTk0ODcsIDAuOTk4NjEzLCAxLjE3Nzc4LCAxLjM1NjkzIiwgXAotICAgICAgICAgICIwLjMzODA4NiwgMC41MTc3OCwgMC42NjEwODgsIDAuODQwMjYsIDEuMDE5MzgsIDEuMTk4NTUsIDEuMzc3NyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTA1OTcsIDAuNDUwMTAzLCAwLjc0MTc2LCAxLjEwNzI1LCAxLjQ3MjM3LCAxLjgzNzcxLCAyLjIwMjk0IiwgXAotICAgICAgICAgICIwLjA5MDU0MiwgMC40NDg4MDksIDAuNzQxNzk0LCAxLjEwNzI0LCAxLjQ3MjM5LCAxLjgzNzQ0LCAyLjIwMjg0IiwgXAotICAgICAgICAgICIwLjA5MDU2MSwgMC40NTAwODEsIDAuNzQxNzQzLCAxLjEwNzIzLCAxLjQ3MjM1LCAxLjgzNzY2LCAyLjIwMjg2IiwgXAotICAgICAgICAgICIwLjA5MDYyMiwgMC40NDg4MDQsIDAuNzQxNzk1LCAxLjEwNzI1LCAxLjQ3MjQxLCAxLjgzNzg0LCAyLjIwMjk0IiwgXAotICAgICAgICAgICIwLjA5MDU3OCwgMC40NDkyODUsIDAuNzQwMDI3LCAxLjEwNzI0LCAxLjQ3MjMxLCAxLjgzNzY1LCAyLjIwMjg5IiwgXAotICAgICAgICAgICIwLjA5MDU2MywgMC40NDg5NDUsIDAuNzQxNzQyLCAxLjEwNzIzLCAxLjQ3MjM2LCAxLjgzNzY3LCAyLjIwMjg2IiwgXAotICAgICAgICAgICIwLjA5MDU2NiwgMC40NDk5OTksIDAuNzQxNzM5LCAxLjEwNzIzLCAxLjQ3MjM2LCAxLjgzNzY3LCAyLjIwMjg4Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI3NDUxMywgMC40ODEyNjIsIDAuNjQ2MTgyLCAwLjg1MjI2LCAxLjA1ODMxLCAxLjI2NDQyLCAxLjQ3MDQ2IiwgXAotICAgICAgICAgICIwLjI4NjQ1OCwgMC40OTMyMjcsIDAuNjU4MTI0LCAwLjg2NDIwMSwgMS4wNzAyNSwgMS4yNzYzNiwgMS40ODI0IiwgXAotICAgICAgICAgICIwLjMwMTYwNSwgMC41MDgzNDQsIDAuNjczMzI4LCAwLjg3OTQ1NSwgMS4wODU0LCAxLjI5MTQ5LCAxLjQ5NzUyIiwgXAotICAgICAgICAgICIwLjMxNzA4NSwgMC41MjM4MzIsIDAuNjg4NzY0LCAwLjg5NDgyOSwgMS4xMDA4OCwgMS4zMDY5OSwgMS41MTMwNCIsIFwKLSAgICAgICAgICAiMC4zMzI0NTQsIDAuNTM5MjI1LCAwLjcwNDEyMSwgMC45MTAxOTcsIDEuMTE2MjUsIDEuMzIyMzYsIDEuNTI4NCIsIFwKLSAgICAgICAgICAiMC4zNTY3ODMsIDAuNTYzNTU1LCAwLjcyODQ0NywgMC45MzQ1MjQsIDEuMTQwNTgsIDEuMzQ2NjksIDEuNTUyNzMiLCBcCi0gICAgICAgICAgIjAuMzc3ODA4LCAwLjU4NDU1MywgMC43NDk0OCwgMC45NTU1NTEsIDEuMTYxNiwgMS4zNjc3MSwgMS41NzM3NiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTg4NjcsIDAuNTA2NDI2LCAwLjgzMzUyLCAxLjI0NzQ2LCAxLjY1OTIsIDIuMDY5ODMsIDIuNDgxNDciLCBcCi0gICAgICAgICAgIjAuMDk4ODUxLCAwLjUwNjQ2MywgMC44MzM1ODQsIDEuMjQ3NDksIDEuNjU5MTIsIDIuMDY5ODIsIDIuNDgxNTEiLCBcCi0gICAgICAgICAgIjAuMDk4Nzk4LCAwLjUwNjQyNiwgMC44MzIzOTMsIDEuMjQzMTksIDEuNjU5LCAyLjA2OTk3LCAyLjQ3NjkzIiwgXAotICAgICAgICAgICIwLjA5ODg1MywgMC41MDY0MjQsIDAuODMzOTk3LCAxLjI0NzQsIDEuNjU5MSwgMi4wNjk4MiwgMi40ODE0NiIsIFwKLSAgICAgICAgICAiMC4wOTg4NTIsIDAuNTA2NDY0LCAwLjgzNDMwMiwgMS4yNDc0MywgMS42NTkwOCwgMi4wNjk3OSwgMi40ODE1MSIsIFwKLSAgICAgICAgICAiMC4wOTg4NTIsIDAuNTA1MTI5LCAwLjgzNDcxNiwgMS4yNDc0NSwgMS42NTg5OCwgMi4wNjk3OCwgMi40ODE1MyIsIFwKLSAgICAgICAgICAiMC4wOTg4NTEsIDAuNTA2NDI1LCAwLjgzMzc2MiwgMS4yNDc0NywgMS42NTkyLCAyLjA2OTg0LCAyLjQ4MTQ4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjU2NSwgMC4wMDY1NzYsIDAuMDA2NTY5LCAwLjAwNjU2NCwgMC4wMDY1NjEsIDAuMDA2NTYsIDAuMDA2NTU3IiwgXAotICAgICAgICAgICIwLjAwNjU1NSwgMC4wMDY1NjUsIDAuMDA2NTU5LCAwLjAwNjU1NCwgMC4wMDY1NSwgMC4wMDY1NDksIDAuMDA2NTQ3IiwgXAotICAgICAgICAgICIwLjAwNjU0MiwgMC4wMDY1NTIsIDAuMDA2NTQ2LCAwLjAwNjU0LCAwLjAwNjUzOCwgMC4wMDY1MzYsIDAuMDA2NTMzIiwgXAotICAgICAgICAgICIwLjAwNjUzMSwgMC4wMDY1NDIsIDAuMDA2NTM2LCAwLjAwNjUzMSwgMC4wMDY1MjgsIDAuMDA2NTI2LCAwLjAwNjUyNCIsIFwKLSAgICAgICAgICAiMC4wMDY1MjQsIDAuMDA2NTM1LCAwLjAwNjUzLCAwLjAwNjUyNCwgMC4wMDY1MjEsIDAuMDA2NTE5LCAwLjAwNjUxNyIsIFwKLSAgICAgICAgICAiMC4wMDY1MTIsIDAuMDA2NTI0LCAwLjAwNjUxNywgMC4wMDY1MTIsIDAuMDA2NTA5LCAwLjAwNjUwNywgMC4wMDY1MDUiLCBcCi0gICAgICAgICAgIjAuMDA2NTA2LCAwLjAwNjUxOCwgMC4wMDY1MTIsIDAuMDA2NTA2LCAwLjAwNjUwMywgMC4wMDY1MDEsIDAuMDA2NDk5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2OTcsIDAuMDA3MDIsIDAuMDA3MDI2LCAwLjAwNzAyOSwgMC4wMDcwMzEsIDAuMDA3MDMyLCAwLjAwNzAzMiIsIFwKLSAgICAgICAgICAiMC4wMDY5NTcsIDAuMDA3MDA2LCAwLjAwNzAxMiwgMC4wMDcwMTUsIDAuMDA3MDE3LCAwLjAwNzAxOCwgMC4wMDcwMTgiLCBcCi0gICAgICAgICAgIjAuMDA2OTQ2LCAwLjAwNjk5NSwgMC4wMDcwMDEsIDAuMDA3MDA0LCAwLjAwNzAwNiwgMC4wMDcwMDcsIDAuMDA3MDA4IiwgXAotICAgICAgICAgICIwLjAwNjkzOCwgMC4wMDY5ODcsIDAuMDA2OTkzLCAwLjAwNjk5NywgMC4wMDY5OTgsIDAuMDA2OTk5LCAwLjAwNyIsIFwKLSAgICAgICAgICAiMC4wMDY5MzYsIDAuMDA2OTg1LCAwLjAwNjk5MSwgMC4wMDY5OTUsIDAuMDA2OTk2LCAwLjAwNjk5NywgMC4wMDY5OTgiLCBcCi0gICAgICAgICAgIjAuMDA2OTM0LCAwLjAwNjk4MywgMC4wMDY5ODksIDAuMDA2OTkzLCAwLjAwNjk5NCwgMC4wMDY5OTUsIDAuMDA2OTk2IiwgXAotICAgICAgICAgICIwLjAwNjk0MSwgMC4wMDY5OSwgMC4wMDY5OTYsIDAuMDA2OTk5LCAwLjAwNzAwMSwgMC4wMDcwMDIsIDAuMDA3MDAyIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTRSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNTU1OTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE1NTUxODsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE1NTU5OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNDYxNSwgMC4wMDQ2MTQsIDAuMDA0NjA3LCAwLjAwNDYsIDAuMDA0NTk3LCAwLjAwNDU5MSwgMC4wMDQ1ODgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDU2OTgsIDAuMDA1Njc1LCAwLjAwNTY1NSwgMC4wMDU2NDMsIDAuMDA1NjM0LCAwLjAwNTYyNSwgMC4wMDU2MjEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUQmU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1NJX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDg3NSwgLTAuMDc2MjUsIC0wLjA2Mzc1LCAtMC4wNTc1LCAtMC4wNDUsIC0wLjAyODc1LCAtMC4wMTM3NSIsIFwKLSAgICAgICAgICAiLTAuMDk4NzUsIC0wLjA4NzUsIC0wLjA3NSwgLTAuMDY4NzUsIC0wLjA1NjI1LCAtMC4wNCwgLTAuMDI1IiwgXAotICAgICAgICAgICItMC4xMTEyNSwgLTAuMSwgLTAuMDg3NSwgLTAuMDgxMjUsIC0wLjA2ODc1LCAtMC4wNTI1LCAtMC4wMzc1IiwgXAotICAgICAgICAgICItMC4xMjM3NSwgLTAuMTE4NzUsIC0wLjEwNjI1LCAtMC4wOTM3NSwgLTAuMDgxMjUsIC0wLjA2NSwgLTAuMDU2MjUiLCBcCi0gICAgICAgICAgIi0wLjEzNjI1LCAtMC4xMzEyNSwgLTAuMTE4NzUsIC0wLjEwNjI1LCAtMC4wOTM3NSwgLTAuMDc3NSwgLTAuMDY4NzUiLCBcCi0gICAgICAgICAgIi0wLjE1ODc1LCAtMC4xNDc1LCAtMC4xNDEyNSwgLTAuMTI4NzUsIC0wLjExNjI1LCAtMC4xLCAtMC4wODUiLCBcCi0gICAgICAgICAgIi0wLjE4LCAtMC4xNjg3NSwgLTAuMTU2MjUsIC0wLjE0Mzc1LCAtMC4xMzc1LCAtMC4xMjEyNSwgLTAuMTA2MjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjI1LCAwLjAxNzUsIDAuMDM2MjUsIDAuMDQ4NzUsIDAuMDYxMjUsIDAuMDgzNzUsIDAuMTA1IiwgXAotICAgICAgICAgICIwLjAwMTI1LCAwLjAxMjUsIDAuMDI1LCAwLjAzNzUsIDAuMDU2MjUsIDAuMDc4NzUsIDAuMDkzNzUiLCBcCi0gICAgICAgICAgIi0wLjAxMTI1LCAwLCAwLjAxMjUsIDAuMDI1LCAwLjA0Mzc1LCAwLjA2NjI1LCAwLjA4MTI1IiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDEyNSwgMCwgMC4wMTI1LCAwLjAzMTI1LCAwLjA1Mzc1LCAwLjA2ODc1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDI1LCAtMC4wMTI1LCAwLCAwLjAxODc1LCAwLjA0MTI1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICItMC4wNTI1LCAtMC4wNDEyNSwgLTAuMDI4NzUsIC0wLjAxNjI1LCAtMC4wMDM3NSwgMC4wMTg3NSwgMC4wNCIsIFwKLSAgICAgICAgICAiLTAuMDY3NSwgLTAuMDU2MjUsIC0wLjA0Mzc1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIDAuMDAzNzUsIDAuMDI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIkQmIVNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMV9BTl9TSV9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAzMTI1LCAtMC4wMiwgLTAuMDAxMjUsIDAuMDExMjUsIDAuMDIzNzUsIDAuMDQ2MjUsIDAuMDY3NSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDMxMjUsIC0wLjAxMjUsIDAsIDAuMDEyNSwgMC4wMzUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIi0wLjA1NSwgLTAuMDQzNzUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAuMDIyNSwgMC4wMzc1IiwgXAotICAgICAgICAgICItMC4wNzM3NSwgLTAuMDYyNSwgLTAuMDQzNzUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgMC4wMDM3NSwgMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjA4NjI1LCAtMC4wNzUsIC0wLjA2MjUsIC0wLjA1LCAtMC4wMzEyNSwgLTAuMDA4NzUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjEwODc1LCAtMC4wOTc1LCAtMC4wODUsIC0wLjA3MjUsIC0wLjA1Mzc1LCAtMC4wMzEyNSwgLTAuMDE2MjUiLCBcCi0gICAgICAgICAgIi0wLjEyMzc1LCAtMC4xMTI1LCAtMC4xLCAtMC4wODc1LCAtMC4wNzUsIC0wLjA1MjUsIC0wLjAzMTI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMTI1LCAtMC4xMTM3NSwgLTAuMTAxMjUsIC0wLjA5NSwgLTAuMDgyNSwgLTAuMDY2MjUsIC0wLjA1MTI1IiwgXAotICAgICAgICAgICItMC4xMzYyNSwgLTAuMTI1LCAtMC4xMTg3NSwgLTAuMTA2MjUsIC0wLjA5Mzc1LCAtMC4wNzc1LCAtMC4wNjI1IiwgXAotICAgICAgICAgICItMC4xNTUsIC0wLjE0Mzc1LCAtMC4xMzEyNSwgLTAuMTE4NzUsIC0wLjEwNjI1LCAtMC4wOSwgLTAuMDgxMjUiLCBcCi0gICAgICAgICAgIi0wLjE2NzUsIC0wLjE1NjI1LCAtMC4xNDM3NSwgLTAuMTMxMjUsIC0wLjEyNSwgLTAuMTA4NzUsIC0wLjA5Mzc1IiwgXAotICAgICAgICAgICItMC4xOCwgLTAuMTY4NzUsIC0wLjE1NjI1LCAtMC4xNSwgLTAuMTM3NSwgLTAuMTIxMjUsIC0wLjEwNjI1IiwgXAotICAgICAgICAgICItMC4yMDI1LCAtMC4xOTEyNSwgLTAuMTc4NzUsIC0wLjE2NjI1LCAtMC4xNTM3NSwgLTAuMTM3NSwgLTAuMTI4NzUiLCBcCi0gICAgICAgICAgIi0wLjIxNzUsIC0wLjIwNjI1LCAtMC4xOTM3NSwgLTAuMTgxMjUsIC0wLjE2ODc1LCAtMC4xNTg3NSwgLTAuMTQzNzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEJlNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9TSV9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE1NjI1LCAwLjEzODc1LCAwLjEyNjI1LCAwLjExMzc1LCAwLjEwMTI1LCAwLjA4NSwgMC4wNyIsIFwKLSAgICAgICAgICAiMC4xNjEyNSwgMC4xNSwgMC4xMzc1LCAwLjEyNSwgMC4xMTI1LCAwLjA5NjI1LCAwLjA4MTI1IiwgXAotICAgICAgICAgICIwLjE3Mzc1LCAwLjE2MjUsIDAuMTUsIDAuMTM3NSwgMC4xMjUsIDAuMTA4NzUsIDAuMDkzNzUiLCBcCi0gICAgICAgICAgIjAuMTkyNSwgMC4xNzUsIDAuMTYyNSwgMC4xNSwgMC4xMzc1LCAwLjEyMTI1LCAwLjEwNjI1IiwgXAotICAgICAgICAgICIwLjIwNSwgMC4xOTM3NSwgMC4xNzUsIDAuMTYyNSwgMC4xNSwgMC4xMzM3NSwgMC4xMTg3NSIsIFwKLSAgICAgICAgICAiMC4yMjc1LCAwLjIxLCAwLjE5NzUsIDAuMTg1LCAwLjE3MjUsIDAuMTU2MjUsIDAuMTQxMjUiLCBcCi0gICAgICAgICAgIjAuMjQyNSwgMC4yMzEyNSwgMC4yMTg3NSwgMC4yLCAwLjE4NzUsIDAuMTcxMjUsIDAuMTYyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4MTI1LCAwLjA3LCAwLjA1MTI1LCAwLjAzODc1LCAwLjAyLCAtMC4wMDI1LCAtMC4wMjM3NSIsIFwKLSAgICAgICAgICAiMC4wOTI1LCAwLjA3NSwgMC4wNjI1LCAwLjA0Mzc1LCAwLjAzMTI1LCAwLjAwODc1LCAtMC4wMTI1IiwgXAotICAgICAgICAgICIwLjEwNSwgMC4wOTM3NSwgMC4wNzUsIDAuMDU2MjUsIDAuMDQzNzUsIDAuMDIxMjUsIDAiLCBcCi0gICAgICAgICAgIjAuMTE3NSwgMC4xMDYyNSwgMC4wODc1LCAwLjA3NSwgMC4wNTYyNSwgMC4wMzM3NSwgMC4wMTI1IiwgXAotICAgICAgICAgICIwLjEzLCAwLjExODc1LCAwLjEsIDAuMDg3NSwgMC4wNjg3NSwgMC4wNDYyNSwgMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMTUyNSwgMC4xNDEyNSwgMC4xMjI1LCAwLjEwMzc1LCAwLjA5MTI1LCAwLjA2ODc1LCAwLjA0NzUiLCBcCi0gICAgICAgICAgIjAuMTY3NSwgMC4xNTYyNSwgMC4xNDM3NSwgMC4xMjUsIDAuMTA2MjUsIDAuMDgzNzUsIDAuMDYyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiRCYhU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8xX0FOX1NJX0VRXzAgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTE4NzUsIDAuMTA3NSwgMC4wOTUsIDAuMDc2MjUsIDAuMDYzNzUsIDAuMDM1LCAwLjAxMzc1IiwgXAotICAgICAgICAgICIwLjEzNjI1LCAwLjExODc1LCAwLjEwNjI1LCAwLjA4NzUsIDAuMDc1LCAwLjA0NjI1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICIwLjE0ODc1LCAwLjEzNzUsIDAuMTE4NzUsIDAuMTA2MjUsIDAuMDg3NSwgMC4wNjUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMTYxMjUsIDAuMTUsIDAuMTM3NSwgMC4xMTg3NSwgMC4xMDYyNSwgMC4wNzc1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICIwLjE4LCAwLjE2ODc1LCAwLjE1LCAwLjEzMTI1LCAwLjExODc1LCAwLjA5NjI1LCAwLjA3NSIsIFwKLSAgICAgICAgICAiMC4yMDI1LCAwLjE4NSwgMC4xNzI1LCAwLjE1Mzc1LCAwLjE0MTI1LCAwLjExODc1LCAwLjA5NzUiLCBcCi0gICAgICAgICAgIjAuMjE3NSwgMC4yMDYyNSwgMC4xODc1LCAwLjE3NSwgMC4xNTYyNSwgMC4xMzM3NSwgMC4xMTI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTg3NSwgMC4xNzYyNSwgMC4xNjM3NSwgMC4xNTEyNSwgMC4xMzg3NSwgMC4xMjI1LCAwLjEwNzUiLCBcCi0gICAgICAgICAgIjAuMjA1LCAwLjE4NzUsIDAuMTc1LCAwLjE2MjUsIDAuMTUsIDAuMTMzNzUsIDAuMTE4NzUiLCBcCi0gICAgICAgICAgIjAuMjE3NSwgMC4yMDYyNSwgMC4xODc1LCAwLjE3NSwgMC4xNjI1LCAwLjE0NjI1LCAwLjEzMTI1IiwgXAotICAgICAgICAgICIwLjIzLCAwLjIxODc1LCAwLjIsIDAuMTg3NSwgMC4xNzUsIDAuMTU4NzUsIDAuMTUiLCBcCi0gICAgICAgICAgIjAuMjQyNSwgMC4yMzEyNSwgMC4yMTg3NSwgMC4yLCAwLjE5Mzc1LCAwLjE3NzUsIDAuMTYyNSIsIFwKLSAgICAgICAgICAiMC4yNjUsIDAuMjUzNzUsIDAuMjM1LCAwLjIyMjUsIDAuMjEsIDAuMTkzNzUsIDAuMTc4NzUiLCBcCi0gICAgICAgICAgIjAuMjgsIDAuMjY4NzUsIDAuMjUsIDAuMjM3NSwgMC4yMjUsIDAuMjA4NzUsIDAuMTkzNzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFNJKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA4NDI1MTk7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwODM4NzM5OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDg0MjUxOTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDI5NDcsIDAuMDAyOTI4LCAwLjAwMjkxOCwgMC4wMDI5MTEsIDAuMDAyOTA1LCAwLjAwMjksIDAuMDAyODk2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA0OTgzLCAwLjAwNDk3MywgMC4wMDQ5NjcsIDAuMDA0OTYzLCAwLjAwNDk2LCAwLjAwNDk1NywgMC4wMDQ5NTUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiU0UiOwotICAgICAgc2RmX2NvbmQgOiAiU0UgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMSwgLTAuMDk1LCAtMC4wODI1LCAtMC4wNywgLTAuMDU3NSwgLTAuMDQxMjUsIC0wLjAyNjI1IiwgXAotICAgICAgICAgICItMC4xMTEyNSwgLTAuMSwgLTAuMDkzNzUsIC0wLjA4MTI1LCAtMC4wNjg3NSwgLTAuMDUyNSwgLTAuMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMTIzNzUsIC0wLjExODc1LCAtMC4xMDYyNSwgLTAuMDkzNzUsIC0wLjA4MTI1LCAtMC4wNjUsIC0wLjA1NjI1IiwgXAotICAgICAgICAgICItMC4xNDI1LCAtMC4xMzEyNSwgLTAuMTE4NzUsIC0wLjEwNjI1LCAtMC4wOTM3NSwgLTAuMDc3NSwgLTAuMDY4NzUiLCBcCi0gICAgICAgICAgIi0wLjE1NSwgLTAuMTQzNzUsIC0wLjEzMTI1LCAtMC4xMTg3NSwgLTAuMTA2MjUsIC0wLjA5NjI1LCAtMC4wODEyNSIsIFwKLSAgICAgICAgICAiLTAuMTc3NSwgLTAuMTY2MjUsIC0wLjE1Mzc1LCAtMC4xNDEyNSwgLTAuMTI4NzUsIC0wLjExMjUsIC0wLjEwMzc1IiwgXAotICAgICAgICAgICItMC4xOTI1LCAtMC4xODEyNSwgLTAuMTY4NzUsIC0wLjE2MjUsIC0wLjE1LCAtMC4xMzM3NSwgLTAuMTE4NzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMDYyNSwgMC4wMDUsIDAuMDIzNzUsIDAuMDM2MjUsIDAuMDQ4NzUsIDAuMDcxMjUsIDAuMDkyNSIsIFwKLSAgICAgICAgICAiLTAuMDE3NSwgLTAuMDA2MjUsIDAuMDEyNSwgMC4wMjUsIDAuMDM3NSwgMC4wNiwgMC4wODEyNSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAxODc1LCAwLCAwLjAxMjUsIDAuMDI1LCAwLjA0NzUsIDAuMDY4NzUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzMTI1LCAtMC4wMTI1LCAwLCAwLjAxMjUsIDAuMDM1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDM3NSwgLTAuMDI1LCAtMC4wMTI1LCAwLCAwLjAyMjUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIi0wLjA3MTI1LCAtMC4wNiwgLTAuMDQxMjUsIC0wLjAyODc1LCAtMC4wMTYyNSwgMC4wMDYyNSwgMC4wMjc1IiwgXAotICAgICAgICAgICItMC4wODYyNSwgLTAuMDc1LCAtMC4wNTYyNSwgLTAuMDQzNzUsIC0wLjAzMTI1LCAtMC4wMDg3NSwgMC4wMTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJTRSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNjg3NSwgMC4xNTEyNSwgMC4xMzg3NSwgMC4xMjYyNSwgMC4xMTM3NSwgMC4wOTc1LCAwLjA4MjUiLCBcCi0gICAgICAgICAgIjAuMTgsIDAuMTYyNSwgMC4xNSwgMC4xMzc1LCAwLjEyNSwgMC4xMDg3NSwgMC4wOTM3NSIsIFwKLSAgICAgICAgICAiMC4xOTI1LCAwLjE4MTI1LCAwLjE2MjUsIDAuMTUsIDAuMTM3NSwgMC4xMjEyNSwgMC4xMDYyNSIsIFwKLSAgICAgICAgICAiMC4yMDUsIDAuMTkzNzUsIDAuMTc1LCAwLjE2MjUsIDAuMTUsIDAuMTMzNzUsIDAuMTE4NzUiLCBcCi0gICAgICAgICAgIjAuMjE3NSwgMC4yMDYyNSwgMC4xODc1LCAwLjE3NSwgMC4xNjI1LCAwLjE0NjI1LCAwLjEzMTI1IiwgXAotICAgICAgICAgICIwLjI0LCAwLjIyODc1LCAwLjIxLCAwLjE5NzUsIDAuMTg1LCAwLjE2ODc1LCAwLjE1Mzc1IiwgXAotICAgICAgICAgICIwLjI1NSwgMC4yNDM3NSwgMC4yMzEyNSwgMC4yMTI1LCAwLjIwNjI1LCAwLjE5LCAwLjE3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5Mzc1LCAwLjA4MjUsIDAuMDYzNzUsIDAuMDUxMjUsIDAuMDMyNSwgMC4wMSwgLTAuMDExMjUiLCBcCi0gICAgICAgICAgIjAuMTA1LCAwLjA5Mzc1LCAwLjA4MTI1LCAwLjA2MjUsIDAuMDQzNzUsIDAuMDIxMjUsIDAiLCBcCi0gICAgICAgICAgIjAuMTE3NSwgMC4xMDYyNSwgMC4wOTM3NSwgMC4wNzUsIDAuMDU2MjUsIDAuMDMzNzUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4xMywgMC4xMTg3NSwgMC4xMDYyNSwgMC4wODc1LCAwLjA2ODc1LCAwLjA0NjI1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiMC4xNDI1LCAwLjEzMTI1LCAwLjExMjUsIDAuMSwgMC4wODEyNSwgMC4wNTg3NSwgMC4wMzc1IiwgXAotICAgICAgICAgICIwLjE2NSwgMC4xNDc1LCAwLjEzNSwgMC4xMTYyNSwgMC4xMDM3NSwgMC4wODEyNSwgMC4wNiIsIFwKLSAgICAgICAgICAiMC4xOCwgMC4xNjg3NSwgMC4xNSwgMC4xMzc1LCAwLjExODc1LCAwLjA5NjI1LCAwLjA3NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IFNERkZRWDQgKgotICogLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoU0RGRlFYNCkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjM4NjY4OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIGZmIChOMzAsUUJJTlQpIHsKLSAgICBuZXh0X3N0YXRlIDogIigoU0UgU0kpICsgKCFTRSBEKSkiOwotICAgIGNsb2NrZWRfb24gOiAiQ0siOwotICB9Ci0gIHBpbihDSykgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNTY0Njc3OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDU2NDM4ODsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA1NjQ2Nzc7Ci0gICAgY2xvY2sgOiB0cnVlOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjQ0NywgMC4wMDI0MzUsIDAuMDAyNDI1LCAwLjAwMjQxOCwgMC4wMDI0MTIsIDAuMDAyNDA2LCAwLjAwMjQwMyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNTIsIDAuMDA1MTkxLCAwLjAwNTE4MiwgMC4wMDUxNzYsIDAuMDA1MTc1LCAwLjAwNTE3NywgMC4wMDUxNzYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFEJiFTRSYhU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1NFX0VRXzBfQU5fU0lfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjI2MzI3MSwgMC4yNzUxMzUsIDAuMjkwMjcyLCAwLjMwNTY2MiwgMC4zMjEwODMsIDAuMzQ1NTcxLCAwLjM2NjU4OCIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMjA1NjUyLCAwLjIxNzEzNSwgMC4yMzIxMDMsIDAuMjQ3MDI3LCAwLjI2MTY2NiwgMC4yODQ3NjgsIDAuMzAzODY2Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihEKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA1OTYyOTU7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNTk0NzE7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNTk2Mjk1OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjI1NSwgMC4wMDIyNDUsIDAuMDAyMjQsIDAuMDAyMjM3LCAwLjAwMjIzNSwgMC4wMDIyMzIsIDAuMDAyMjMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDM3NTgsIDAuMDAzNzUzLCAwLjAwMzc1MSwgMC4wMDM3NDksIDAuMDAzNzQ4LCAwLjAwMzc0NiwgMC4wMDM3NDUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIVNFIjsKLSAgICAgIHNkZl9jb25kIDogIlNFID09IDEnYjAiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjEzMTI1LCAtMC4xMiwgLTAuMTA3NSwgLTAuMTAxMjUsIC0wLjA4ODc1LCAtMC4wNzI1LCAtMC4wNjM3NSIsIFwKLSAgICAgICAgICAiLTAuMTQyNSwgLTAuMTMxMjUsIC0wLjExODc1LCAtMC4xMTI1LCAtMC4xLCAtMC4wODM3NSwgLTAuMDc1IiwgXAotICAgICAgICAgICItMC4xNTUsIC0wLjE0Mzc1LCAtMC4xMzc1LCAtMC4xMjUsIC0wLjExMjUsIC0wLjEwMjUsIC0wLjA4NzUiLCBcCi0gICAgICAgICAgIi0wLjE2NzUsIC0wLjE2MjUsIC0wLjE1LCAtMC4xMzc1LCAtMC4xMzEyNSwgLTAuMTE1LCAtMC4xIiwgXAotICAgICAgICAgICItMC4xOCwgLTAuMTc1LCAtMC4xNjI1LCAtMC4xNSwgLTAuMTQzNzUsIC0wLjEyNzUsIC0wLjExMjUiLCBcCi0gICAgICAgICAgIi0wLjIwMjUsIC0wLjE5NzUsIC0wLjE4NSwgLTAuMTcyNSwgLTAuMTY2MjUsIC0wLjE1LCAtMC4xMzUiLCBcCi0gICAgICAgICAgIi0wLjIyMzc1LCAtMC4yMTI1LCAtMC4yMDYyNSwgLTAuMTkzNzUsIC0wLjE4MTI1LCAtMC4xNjUsIC0wLjE1NjI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDE4NzUsIC0wLjAwNzUsIDAuMDA1LCAwLjAyMzc1LCAwLjAzNjI1LCAwLjA1MjUsIDAuMDczNzUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAuMDEyNSwgMC4wMjUsIDAuMDQxMjUsIDAuMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDMxMjUsIC0wLjAxODc1LCAtMC4wMDYyNSwgMC4wMTI1LCAwLjAyODc1LCAwLjA1IiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA0Mzc1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIDAsIDAuMDE2MjUsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDY3NSwgLTAuMDU2MjUsIC0wLjA0Mzc1LCAtMC4wMjUsIC0wLjAxMjUsIDAuMDAzNzUsIDAuMDI1IiwgXAotICAgICAgICAgICItMC4wODM3NSwgLTAuMDcyNSwgLTAuMDYsIC0wLjA0NzUsIC0wLjAzNSwgLTAuMDEyNSwgMC4wMDg3NSIsIFwKLSAgICAgICAgICAiLTAuMDk4NzUsIC0wLjA4NzUsIC0wLjA3NSwgLTAuMDYyNSwgLTAuMDUsIC0wLjAyNzUsIC0wLjAxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJTRSA9PSAxJ2IwIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMzEyNSwgMC4yMTM3NSwgMC4yMDEyNSwgMC4xODI1LCAwLjE3LCAwLjE1Mzc1LCAwLjEzODc1IiwgXAotICAgICAgICAgICIwLjI0MjUsIDAuMjI1LCAwLjIxMjUsIDAuMiwgMC4xODEyNSwgMC4xNjUsIDAuMTUiLCBcCi0gICAgICAgICAgIjAuMjU1LCAwLjI0Mzc1LCAwLjIyNSwgMC4yMTI1LCAwLjIsIDAuMTc3NSwgMC4xNjg3NSIsIFwKLSAgICAgICAgICAiMC4yNjc1LCAwLjI1NjI1LCAwLjIzNzUsIDAuMjI1LCAwLjIxMjUsIDAuMTk2MjUsIDAuMTgxMjUiLCBcCi0gICAgICAgICAgIjAuMjgsIDAuMjY4NzUsIDAuMjUsIDAuMjM3NSwgMC4yMjUsIDAuMjA4NzUsIDAuMTkzNzUiLCBcCi0gICAgICAgICAgIjAuMzAyNSwgMC4yOTEyNSwgMC4yNzI1LCAwLjI2LCAwLjI0NzUsIDAuMjMxMjUsIDAuMjE2MjUiLCBcCi0gICAgICAgICAgIjAuMzIzNzUsIDAuMzEyNSwgMC4yOTM3NSwgMC4yODEyNSwgMC4yNjg3NSwgMC4yNDYyNSwgMC4yMzc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTUsIDAuMTM4NzUsIDAuMTIsIDAuMTAxMjUsIDAuMDg4NzUsIDAuMDYsIDAuMDM4NzUiLCBcCi0gICAgICAgICAgIjAuMTYxMjUsIDAuMTUsIDAuMTMxMjUsIDAuMTEyNSwgMC4xLCAwLjA3MTI1LCAwLjA1IiwgXAotICAgICAgICAgICIwLjE3Mzc1LCAwLjE2MjUsIDAuMTQzNzUsIDAuMTI1LCAwLjExMjUsIDAuMDgzNzUsIDAuMDY4NzUiLCBcCi0gICAgICAgICAgIjAuMTg2MjUsIDAuMTc1LCAwLjE1NjI1LCAwLjEzNzUsIDAuMTI1LCAwLjA5NjI1LCAwLjA4MTI1IiwgXAotICAgICAgICAgICIwLjE5ODc1LCAwLjE4NzUsIDAuMTY4NzUsIDAuMTUsIDAuMTM3NSwgMC4xMDg3NSwgMC4wODc1IiwgXAotICAgICAgICAgICIwLjIxNSwgMC4yMDM3NSwgMC4xOTEyNSwgMC4xNzI1LCAwLjE1Mzc1LCAwLjEzMTI1LCAwLjExIiwgXAotICAgICAgICAgICIwLjIzNjI1LCAwLjIxODc1LCAwLjIwNjI1LCAwLjE4NzUsIDAuMTc1LCAwLjE0NjI1LCAwLjEyNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjUzNDk1MTsKLSAgICBmdW5jdGlvbiA6ICJOMzAiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5vbl91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcmlzaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjM1MzQ3LCAwLjM2MTk5NywgMC40ODcyNzMsIDAuNTc2NzU2LCAwLjcxOTkxOCwgMC44NDUyMiwgMS4wMjQyNiIsIFwKLSAgICAgICAgICAiMC4yNDczNzYsIDAuMzc0MDIzLCAwLjQ5OTMyNCwgMC41ODg3OTMsIDAuNzMxOTg1LCAwLjg1NzI1OCwgMS4wMzYyNSIsIFwKLSAgICAgICAgICAiMC4yNjI0ODQsIDAuMzg5MTE4LCAwLjUxNDQwNCwgMC42MDM4NzQsIDAuNzQ3MDM3LCAwLjg3MjM1NSwgMS4wNTEzMSIsIFwKLSAgICAgICAgICAiMC4yNzc5ODgsIDAuNDA0NjMyLCAwLjUyOTkxLCAwLjYxOTM4NiwgMC43NjI1NTcsIDAuODg3ODg4LCAxLjA2Njg0IiwgXAotICAgICAgICAgICIwLjI5MzMyLCAwLjQxOTk2OSwgMC41NDUyNDUsIDAuNjM0NzEzLCAwLjc3Nzg5MSwgMC45MDMyMDMsIDEuMDgyMjMiLCBcCi0gICAgICAgICAgIjAuMzE3NTc4LCAwLjQ0NDIxNiwgMC41Njk0OTQsIDAuNjU4OTk5LCAwLjgwMjE0MSwgMC45Mjc0NTcsIDEuMTA2NSIsIFwKLSAgICAgICAgICAiMC4zMzgzMTIsIDAuNDY0OTUsIDAuNTkwMjI4LCAwLjY3OTcsIDAuODIyODcyLCAwLjk0ODE4NywgMS4xMjcxNSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1NTg4MywgMC4zMDQxODgsIDAuNTU4MTg5LCAwLjc0MTg4NCwgMS4wMzM3MSwgMS4yODkyMiwgMS42NTQ0MiIsIFwKLSAgICAgICAgICAiMC4wNTU4ODksIDAuMzA0MTEsIDAuNTU3ODY1LCAwLjc0MTkyNSwgMS4wMzE1MywgMS4yODcwMiwgMS42NTE0NiIsIFwKLSAgICAgICAgICAiMC4wNTU5MDIsIDAuMzA0MTUxLCAwLjU1OTQ5OSwgMC43NDAxNDQsIDEuMDMzNjUsIDEuMjg3MTEsIDEuNjUxNTEiLCBcCi0gICAgICAgICAgIjAuMDU1ODQyLCAwLjMwNDE2OSwgMC41NTgyODcsIDAuNzQwNzgsIDEuMDMzNzEsIDEuMjg5MzMsIDEuNjUxMzciLCBcCi0gICAgICAgICAgIjAuMDU1ODkzLCAwLjMwNDE2MywgMC41NTc0NTksIDAuNzQxNzI1LCAxLjAzMzY5LCAxLjI4NzAyLCAxLjY1MDcxIiwgXAotICAgICAgICAgICIwLjA1NTg5NSwgMC4zMDQxNjcsIDAuNTU4MzExLCAwLjc0MTk4NSwgMS4wMzM3LCAxLjI4OTI4LCAxLjY1NDQ4IiwgXAotICAgICAgICAgICIwLjA1NTg5NiwgMC4zMDQxNTYsIDAuNTU4Mjg2LCAwLjc0MDU5NywgMS4wMzM2NiwgMS4yODcwOCwgMS42NTM5NyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI2MzI3MSwgMC40MTAxMiwgMC41NTU3MDIsIDAuNjU5NjQ1LCAwLjgyNTk4NSwgMC45NzE1MTUsIDEuMTc5NTQiLCBcCi0gICAgICAgICAgIjAuMjc1MTM1LCAwLjQyMTk1NiwgMC41Njc1MzgsIDAuNjcxNDgxLCAwLjgzNzg1NiwgMC45ODMzMzUsIDEuMTkxMjciLCBcCi0gICAgICAgICAgIjAuMjkwMjcyLCAwLjQzNzEzNSwgMC41ODI2OCwgMC42ODY2MiwgMC44NTI5NjgsIDAuOTk4NjA3LCAxLjIwNjM5IiwgXAotICAgICAgICAgICIwLjMwNTY2MiwgMC40NTI1MzMsIDAuNTk4MDgzLCAwLjcwMjAyLCAwLjg2ODM3MiwgMS4wMTM5OSwgMS4yMjE3OSIsIFwKLSAgICAgICAgICAiMC4zMjEwODMsIDAuNDY3OTQzLCAwLjYxMzUyMiwgMC43MTc0NjcsIDAuODgzNzgzLCAxLjAyOTMyLCAxLjIzNzI1IiwgXAotICAgICAgICAgICIwLjM0NTU3MSwgMC40OTI0MTgsIDAuNjM4MDAzLCAwLjc0MTk0NSwgMC45MDgyODMsIDEuMDUzODEsIDEuMjYxODQiLCBcCi0gICAgICAgICAgIjAuMzY2NTg5LCAwLjUxMzQzLCAwLjY1OTAxLCAwLjc2Mjk1MiwgMC45MjkyODgsIDEuMDc0ODIsIDEuMjgyNzYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjAwNzYsIDAuMzQ0ODY5LCAwLjYzNTg4NiwgMC44NDM0MDksIDEuMTczOTQsIDEuNDYzMDEsIDEuODc4MzYiLCBcCi0gICAgICAgICAgIjAuMDYwMDk4LCAwLjM0NDYwNSwgMC42MzU5MjYsIDAuODQzNDIzLCAxLjE3NTk4LCAxLjQ2MjYsIDEuODc1ODciLCBcCi0gICAgICAgICAgIjAuMDYwMDY4LCAwLjM0NDMxNSwgMC42MzUxNzYsIDAuODQzNTM2LCAxLjE3NDM3LCAxLjQ2MTMxLCAxLjg4MTQxIiwgXAotICAgICAgICAgICIwLjA2MDA3NSwgMC4zNDQzMzEsIDAuNjM0Mzk0LCAwLjg0MzUxNywgMS4xNzQyMywgMS40NjI2NSwgMS44ODEzNCIsIFwKLSAgICAgICAgICAiMC4wNjAwNzksIDAuMzQ1MjMsIDAuNjM1ODk1LCAwLjg0MzQyMywgMS4xNzU1NywgMS40NjI1NSwgMS44NzU3OSIsIFwKLSAgICAgICAgICAiMC4wNjAxMDEsIDAuMzQ0OTYyLCAwLjYzNTg5NCwgMC44NDM0MTMsIDEuMTc0MDcsIDEuNDYyOTksIDEuODc3MDkiLCBcCi0gICAgICAgICAgIjAuMDYwMDcsIDAuMzQ1MDA3LCAwLjYzNTg5MSwgMC44NDM0MTMsIDEuMTc0MSwgMS40NjI5OCwgMS44NzkwOSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwODMzOCwgMC4wMDg0MjYsIDAuMDA4NDI1LCAwLjAwODQyMywgMC4wMDg0MTksIDAuMDA4NDE3LCAwLjAwODQxNCIsIFwKLSAgICAgICAgICAiMC4wMDgzMjcsIDAuMDA4NDE1LCAwLjAwODQxNCwgMC4wMDg0MTEsIDAuMDA4NDA4LCAwLjAwODQwNiwgMC4wMDg0MDMiLCBcCi0gICAgICAgICAgIjAuMDA4MzE1LCAwLjAwODQwMiwgMC4wMDg0MDIsIDAuMDA4Mzk5LCAwLjAwODM5NiwgMC4wMDgzOTMsIDAuMDA4MzkxIiwgXAotICAgICAgICAgICIwLjAwODMwNSwgMC4wMDgzOTMsIDAuMDA4MzkyLCAwLjAwODM5LCAwLjAwODM4NywgMC4wMDgzODUsIDAuMDA4MzgyIiwgXAotICAgICAgICAgICIwLjAwODI5OSwgMC4wMDgzODcsIDAuMDA4Mzg2LCAwLjAwODM4MywgMC4wMDgzODIsIDAuMDA4MzgsIDAuMDA4Mzc1IiwgXAotICAgICAgICAgICIwLjAwODI4OCwgMC4wMDgzNzYsIDAuMDA4Mzc2LCAwLjAwODM3NCwgMC4wMDgzNywgMC4wMDgzNjgsIDAuMDA4MzY1IiwgXAotICAgICAgICAgICIwLjAwODI4MywgMC4wMDgzNzEsIDAuMDA4MzcxLCAwLjAwODM3LCAwLjAwODM2NSwgMC4wMDgzNjMsIDAuMDA4MzYxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDgyOCwgMC4wMDg0MjIsIDAuMDA4NDQyLCAwLjAwODQ0OCwgMC4wMDg0NTMsIDAuMDA4NDU2LCAwLjAwODQ1OCIsIFwKLSAgICAgICAgICAiMC4wMDgyNzYsIDAuMDA4NDEyLCAwLjAwODQzMSwgMC4wMDg0MzcsIDAuMDA4NDQyLCAwLjAwODQ0NCwgMC4wMDg0NDciLCBcCi0gICAgICAgICAgIjAuMDA4MjU4LCAwLjAwODM5OSwgMC4wMDg0MTksIDAuMDA4NDI0LCAwLjAwODQzLCAwLjAwODQzMiwgMC4wMDg0MzUiLCBcCi0gICAgICAgICAgIjAuMDA4MjQ2LCAwLjAwODM4OSwgMC4wMDg0MSwgMC4wMDg0MTYsIDAuMDA4NDIxLCAwLjAwODQyNCwgMC4wMDg0MjYiLCBcCi0gICAgICAgICAgIjAuMDA4MjQzLCAwLjAwODM4NiwgMC4wMDg0MDYsIDAuMDA4NDEyLCAwLjAwODQxOCwgMC4wMDg0MiwgMC4wMDg0MjMiLCBcCi0gICAgICAgICAgIjAuMDA4MjUsIDAuMDA4Mzg2LCAwLjAwODQwNSwgMC4wMDg0MSwgMC4wMDg0MTYsIDAuMDA4NDE4LCAwLjAwODQyMSIsIFwKLSAgICAgICAgICAiMC4wMDgyNDksIDAuMDA4Mzg5LCAwLjAwODQwOCwgMC4wMDg0MTQsIDAuMDA4NDE5LCAwLjAwODQyMiwgMC4wMDg0MjQiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFNFKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDEyODE1NzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDEyODA1ODsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDEyODE1NzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDM1OTEsIDAuMDAzNTc5LCAwLjAwMzU3MywgMC4wMDM1NzEsIDAuMDAzNTcsIDAuMDAzNTY5LCAwLjAwMzU2OCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNDY2LCAwLjAwNDY0MiwgMC4wMDQ2MzEsIDAuMDA0NjI0LCAwLjAwNDYxOCwgMC4wMDQ2MTMsIDAuMDA0NjEyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEJlNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9TSV9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjExODc1LCAtMC4xMDc1LCAtMC4wOTUsIC0wLjA4MjUsIC0wLjA3NjI1LCAtMC4wNiwgLTAuMDQ1IiwgXAotICAgICAgICAgICItMC4xMjM3NSwgLTAuMTE4NzUsIC0wLjEwNjI1LCAtMC4wOTM3NSwgLTAuMDg3NSwgLTAuMDcxMjUsIC0wLjA1NjI1IiwgXAotICAgICAgICAgICItMC4xNDI1LCAtMC4xMzEyNSwgLTAuMTE4NzUsIC0wLjEwNjI1LCAtMC4xLCAtMC4wODM3NSwgLTAuMDc1IiwgXAotICAgICAgICAgICItMC4xNTUsIC0wLjE0Mzc1LCAtMC4xMzEyNSwgLTAuMTI1LCAtMC4xMTI1LCAtMC4wOTYyNSwgLTAuMDg3NSIsIFwKLSAgICAgICAgICAiLTAuMTY3NSwgLTAuMTU2MjUsIC0wLjE1LCAtMC4xMzc1LCAtMC4xMjUsIC0wLjEwODc1LCAtMC4xIiwgXAotICAgICAgICAgICItMC4xOSwgLTAuMTc4NzUsIC0wLjE2NjI1LCAtMC4xNiwgLTAuMTQ3NSwgLTAuMTMxMjUsIC0wLjEyMjUiLCBcCi0gICAgICAgICAgIi0wLjIxMTI1LCAtMC4yLCAtMC4xODc1LCAtMC4xNzUsIC0wLjE2ODc1LCAtMC4xNTI1LCAtMC4xMzc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDA2MjUsIDAuMDA1LCAwLjAxNzUsIDAuMDMsIDAuMDQyNSwgMC4wNjUsIDAuMDg2MjUiLCBcCi0gICAgICAgICAgIi0wLjAxNzUsIC0wLjAwNjI1LCAwLjAwNjI1LCAwLjAxODc1LCAwLjAzNzUsIDAuMDUzNzUsIDAuMDc1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLjAwNjI1LCAwLjAyNSwgMC4wNDEyNSwgMC4wNjI1IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLjAxMjUsIDAuMDI4NzUsIDAuMDUiLCBcCi0gICAgICAgICAgIi0wLjA1NSwgLTAuMDQzNzUsIC0wLjAzMTI1LCAtMC4wMTI1LCAwLCAwLjAxNjI1LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjA3MTI1LCAtMC4wNiwgLTAuMDQ3NSwgLTAuMDM1LCAtMC4wMjI1LCAwLCAwLjAxNSIsIFwKLSAgICAgICAgICAiLTAuMDgsIC0wLjA2ODc1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjAzNzUsIC0wLjAxNSwgMCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJEJiFTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzFfQU5fU0lfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMzc1LCAtMC4wMjYyNSwgLTAuMDEzNzUsIDAuMDA1LCAwLjAxNzUsIDAuMDMzNzUsIDAuMDU1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDM3NSwgLTAuMDI1LCAtMC4wMTI1LCAwLjAwNjI1LCAwLjAyMjUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIi0wLjA2MTI1LCAtMC4wNSwgLTAuMDM3NSwgLTAuMDI1LCAtMC4wMTI1LCAwLjAxLCAwLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDgsIC0wLjA2ODc1LCAtMC4wNTYyNSwgLTAuMDM3NSwgLTAuMDI1LCAtMC4wMDg3NSwgMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wOTI1LCAtMC4wODEyNSwgLTAuMDY4NzUsIC0wLjA1NjI1LCAtMC4wNDM3NSwgLTAuMDIxMjUsIDAiLCBcCi0gICAgICAgICAgIi0wLjExNSwgLTAuMTAzNzUsIC0wLjA5MTI1LCAtMC4wNzI1LCAtMC4wNiwgLTAuMDQzNzUsIC0wLjAyMjUiLCBcCi0gICAgICAgICAgIi0wLjEzLCAtMC4xMTg3NSwgLTAuMTA2MjUsIC0wLjA5Mzc1LCAtMC4wODEyNSwgLTAuMDU4NzUsIC0wLjAzNzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4xNDM3NSwgLTAuMTMyNSwgLTAuMTI2MjUsIC0wLjExMzc1LCAtMC4xMDEyNSwgLTAuMDkxMjUsIC0wLjA3NjI1IiwgXAotICAgICAgICAgICItMC4xNTUsIC0wLjE0Mzc1LCAtMC4xMzc1LCAtMC4xMjUsIC0wLjExMjUsIC0wLjEwMjUsIC0wLjA4NzUiLCBcCi0gICAgICAgICAgIi0wLjE3Mzc1LCAtMC4xNjI1LCAtMC4xNSwgLTAuMTM3NSwgLTAuMTMxMjUsIC0wLjExNSwgLTAuMSIsIFwKLSAgICAgICAgICAiLTAuMTg2MjUsIC0wLjE3NSwgLTAuMTYyNSwgLTAuMTU2MjUsIC0wLjE0Mzc1LCAtMC4xMjc1LCAtMC4xMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMTk4NzUsIC0wLjE4NzUsIC0wLjE3NSwgLTAuMTY4NzUsIC0wLjE1NjI1LCAtMC4xNCwgLTAuMTMxMjUiLCBcCi0gICAgICAgICAgIi0wLjIxNSwgLTAuMjAzNzUsIC0wLjE5NzUsIC0wLjE4NSwgLTAuMTcyNSwgLTAuMTU2MjUsIC0wLjE0NzUiLCBcCi0gICAgICAgICAgIi0wLjIzLCAtMC4yMTg3NSwgLTAuMjA2MjUsIC0wLjIsIC0wLjE4NzUsIC0wLjE3MTI1LCAtMC4xNjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRCZTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fU0lfRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMTI1LCAwLjIwMTI1LCAwLjE4ODc1LCAwLjE3LCAwLjE1NzUsIDAuMTQxMjUsIDAuMTI2MjUiLCBcCi0gICAgICAgICAgIjAuMjIzNzUsIDAuMjEyNSwgMC4xOTM3NSwgMC4xODEyNSwgMC4xNjg3NSwgMC4xNTI1LCAwLjEzNzUiLCBcCi0gICAgICAgICAgIjAuMjQyNSwgMC4yMjUsIDAuMjEyNSwgMC4xOTM3NSwgMC4xODEyNSwgMC4xNjUsIDAuMTUiLCBcCi0gICAgICAgICAgIjAuMjU1LCAwLjIzNzUsIDAuMjI1LCAwLjIwNjI1LCAwLjE5Mzc1LCAwLjE3NzUsIDAuMTYyNSIsIFwKLSAgICAgICAgICAiMC4yNjc1LCAwLjI1NjI1LCAwLjIzNzUsIDAuMjI1LCAwLjIxMjUsIDAuMTksIDAuMTc1IiwgXAotICAgICAgICAgICIwLjI5LCAwLjI3ODc1LCAwLjI2LCAwLjI0NzUsIDAuMjI4NzUsIDAuMjEyNSwgMC4xOTc1IiwgXAotICAgICAgICAgICIwLjMxMTI1LCAwLjI5Mzc1LCAwLjI4MTI1LCAwLjI2MjUsIDAuMjUsIDAuMjMzNzUsIDAuMjE4NzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMzc1LCAwLjEyNjI1LCAwLjEwNzUsIDAuMDg4NzUsIDAuMDc2MjUsIDAuMDQ3NSwgMC4wMjYyNSIsIFwKLSAgICAgICAgICAiMC4xNDg3NSwgMC4xMzEyNSwgMC4xMTg3NSwgMC4xLCAwLjA4NzUsIDAuMDU4NzUsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiMC4xNjEyNSwgMC4xNSwgMC4xMzEyNSwgMC4xMTI1LCAwLjEsIDAuMDcxMjUsIDAuMDUiLCBcCi0gICAgICAgICAgIjAuMTczNzUsIDAuMTYyNSwgMC4xNDM3NSwgMC4xMjUsIDAuMTEyNSwgMC4wOSwgMC4wNjg3NSIsIFwKLSAgICAgICAgICAiMC4xODYyNSwgMC4xNzUsIDAuMTU2MjUsIDAuMTQzNzUsIDAuMTI1LCAwLjEwMjUsIDAuMDgxMjUiLCBcCi0gICAgICAgICAgIjAuMjA4NzUsIDAuMTk3NSwgMC4xNzg3NSwgMC4xNiwgMC4xNDc1LCAwLjExODc1LCAwLjEwMzc1IiwgXAotICAgICAgICAgICIwLjIyMzc1LCAwLjIxMjUsIDAuMiwgMC4xODEyNSwgMC4xNjI1LCAwLjE0LCAwLjExODc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJEJiFTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzFfQU5fU0lfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNjg3NSwgMC4xNTc1LCAwLjEzODc1LCAwLjEyLCAwLjEwNzUsIDAuMDc4NzUsIDAuMDU3NSIsIFwKLSAgICAgICAgICAiMC4xOCwgMC4xNjg3NSwgMC4xNSwgMC4xMzEyNSwgMC4xMTg3NSwgMC4wOSwgMC4wNzUiLCBcCi0gICAgICAgICAgIjAuMTkyNSwgMC4xODEyNSwgMC4xNjg3NSwgMC4xNSwgMC4xMzEyNSwgMC4xMDg3NSwgMC4wODc1IiwgXAotICAgICAgICAgICIwLjIxMTI1LCAwLjE5Mzc1LCAwLjE4MTI1LCAwLjE2MjUsIDAuMTUsIDAuMTIxMjUsIDAuMSIsIFwKLSAgICAgICAgICAiMC4yMjM3NSwgMC4yMTI1LCAwLjE5Mzc1LCAwLjE3NSwgMC4xNjI1LCAwLjE0LCAwLjExODc1IiwgXAotICAgICAgICAgICIwLjI0NjI1LCAwLjIyODc1LCAwLjIxNjI1LCAwLjE5NzUsIDAuMTg1LCAwLjE1NjI1LCAwLjEzNSIsIFwKLSAgICAgICAgICAiMC4yNjEyNSwgMC4yNSwgMC4yMzEyNSwgMC4yMTI1LCAwLjIsIDAuMTcxMjUsIDAuMTU2MjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yNDM3NSwgMC4yMzI1LCAwLjIxMzc1LCAwLjIwMTI1LCAwLjE4ODc1LCAwLjE2NjI1LCAwLjE1NzUiLCBcCi0gICAgICAgICAgIjAuMjU1LCAwLjI0Mzc1LCAwLjIyNSwgMC4yMTI1LCAwLjIsIDAuMTc3NSwgMC4xNjg3NSIsIFwKLSAgICAgICAgICAiMC4yNjc1LCAwLjI1NjI1LCAwLjI0Mzc1LCAwLjIyNSwgMC4yMTI1LCAwLjE5NjI1LCAwLjE4MTI1IiwgXAotICAgICAgICAgICIwLjI4NjI1LCAwLjI2ODc1LCAwLjI1NjI1LCAwLjIzNzUsIDAuMjI1LCAwLjIwODc1LCAwLjE5Mzc1IiwgXAotICAgICAgICAgICIwLjI5ODc1LCAwLjI4MTI1LCAwLjI2ODc1LCAwLjI1LCAwLjIzNzUsIDAuMjIxMjUsIDAuMjA2MjUiLCBcCi0gICAgICAgICAgIjAuMzE1LCAwLjMwMzc1LCAwLjI4NSwgMC4yNzI1LCAwLjI2LCAwLjIzNzUsIDAuMjIyNSIsIFwKLSAgICAgICAgICAiMC4zMywgMC4zMTI1LCAwLjMsIDAuMjgxMjUsIDAuMjY4NzUsIDAuMjUyNSwgMC4yMzc1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTSSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjM4OTQ0OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYzNzAyNjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2Mzg5NDQ7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyMTUsIDAuMDAyMTQsIDAuMDAyMTM1LCAwLjAwMjEzMiwgMC4wMDIxMywgMC4wMDIxMjcsIDAuMDAyMTI0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzODMzLCAwLjAwMzgyOCwgMC4wMDM4MjYsIDAuMDAzODI0LCAwLjAwMzgyMywgMC4wMDM4MjEsIDAuMDAzODIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiU0UiOwotICAgICAgc2RmX2NvbmQgOiAiU0UgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMTI1LCAtMC4xMiwgLTAuMTA3NSwgLTAuMTAxMjUsIC0wLjA4ODc1LCAtMC4wNzI1LCAtMC4wNjM3NSIsIFwKLSAgICAgICAgICAiLTAuMTM2MjUsIC0wLjEzMTI1LCAtMC4xMTg3NSwgLTAuMTA2MjUsIC0wLjEsIC0wLjA4Mzc1LCAtMC4wNjg3NSIsIFwKLSAgICAgICAgICAiLTAuMTU1LCAtMC4xNDM3NSwgLTAuMTMxMjUsIC0wLjEyNSwgLTAuMTEyNSwgLTAuMDk2MjUsIC0wLjA4NzUiLCBcCi0gICAgICAgICAgIi0wLjE2NzUsIC0wLjE1NjI1LCAtMC4xNSwgLTAuMTM3NSwgLTAuMTI1LCAtMC4xMDg3NSwgLTAuMSIsIFwKLSAgICAgICAgICAiLTAuMTgsIC0wLjE2ODc1LCAtMC4xNjI1LCAtMC4xNSwgLTAuMTM3NSwgLTAuMTI3NSwgLTAuMTEyNSIsIFwKLSAgICAgICAgICAiLTAuMjAyNSwgLTAuMTkxMjUsIC0wLjE4NSwgLTAuMTcyNSwgLTAuMTYsIC0wLjE1LCAtMC4xMzUiLCBcCi0gICAgICAgICAgIi0wLjIyMzc1LCAtMC4yMTI1LCAtMC4yLCAtMC4xODc1LCAtMC4xODEyNSwgLTAuMTY1LCAtMC4xNTYyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAxODc1LCAtMC4wMDc1LCAwLjAwNSwgMC4wMTc1LCAwLjAzNjI1LCAwLjA1MjUsIDAuMDczNzUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAuMDA2MjUsIDAuMDI1LCAwLjA0MTI1LCAwLjA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAuMDEyNSwgMC4wMjg3NSwgMC4wNSIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNDM3NSwgLTAuMDMxMjUsIC0wLjAxODc1LCAwLCAwLjAxNjI1LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjA2NzUsIC0wLjA1NjI1LCAtMC4wNDM3NSwgLTAuMDI1LCAtMC4wMTI1LCAwLjAwMzc1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDgzNzUsIC0wLjA3MjUsIC0wLjA2LCAtMC4wNDc1LCAtMC4wMzUsIC0wLjAxMjUsIDAuMDA4NzUiLCBcCi0gICAgICAgICAgIi0wLjA5ODc1LCAtMC4wODc1LCAtMC4wNzUsIC0wLjA2MjUsIC0wLjA1LCAtMC4wMjc1LCAtMC4wMTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJTRSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMjUsIDAuMjEzNzUsIDAuMjAxMjUsIDAuMTgyNSwgMC4xNywgMC4xNTM3NSwgMC4xMzg3NSIsIFwKLSAgICAgICAgICAiMC4yNDI1LCAwLjIyNSwgMC4yMTI1LCAwLjE5Mzc1LCAwLjE4MTI1LCAwLjE2NSwgMC4xNSIsIFwKLSAgICAgICAgICAiMC4yNTUsIDAuMjM3NSwgMC4yMjUsIDAuMjA2MjUsIDAuMTkzNzUsIDAuMTc3NSwgMC4xNjI1IiwgXAotICAgICAgICAgICIwLjI2NzUsIDAuMjU2MjUsIDAuMjM3NSwgMC4yMjUsIDAuMjEyNSwgMC4xOSwgMC4xNzUiLCBcCi0gICAgICAgICAgIjAuMjgsIDAuMjY4NzUsIDAuMjUsIDAuMjM3NSwgMC4yMjUsIDAuMjAyNSwgMC4xOTM3NSIsIFwKLSAgICAgICAgICAiMC4zMDI1LCAwLjI5MTI1LCAwLjI3MjUsIDAuMjYsIDAuMjQ3NSwgMC4yMjUsIDAuMjE2MjUiLCBcCi0gICAgICAgICAgIjAuMzIzNzUsIDAuMzA2MjUsIDAuMjkzNzUsIDAuMjc1LCAwLjI2MjUsIDAuMjQ2MjUsIDAuMjMxMjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNSwgMC4xMzg3NSwgMC4xMiwgMC4xMDEyNSwgMC4wODg3NSwgMC4wNiwgMC4wMzg3NSIsIFwKLSAgICAgICAgICAiMC4xNjEyNSwgMC4xNSwgMC4xMzEyNSwgMC4xMTI1LCAwLjEsIDAuMDcxMjUsIDAuMDUiLCBcCi0gICAgICAgICAgIjAuMTczNzUsIDAuMTYyNSwgMC4xNDM3NSwgMC4xMjUsIDAuMTEyNSwgMC4wODM3NSwgMC4wNjg3NSIsIFwKLSAgICAgICAgICAiMC4xODYyNSwgMC4xNzUsIDAuMTU2MjUsIDAuMTM3NSwgMC4xMjUsIDAuMDk2MjUsIDAuMDgxMjUiLCBcCi0gICAgICAgICAgIjAuMTk4NzUsIDAuMTg3NSwgMC4xNjg3NSwgMC4xNSwgMC4xMzc1LCAwLjEwODc1LCAwLjA4NzUiLCBcCi0gICAgICAgICAgIjAuMjE1LCAwLjIwMzc1LCAwLjE5MTI1LCAwLjE3MjUsIDAuMTUzNzUsIDAuMTMxMjUsIDAuMTEiLCBcCi0gICAgICAgICAgIjAuMjM2MjUsIDAuMjE4NzUsIDAuMjA2MjUsIDAuMTg3NSwgMC4xNzUsIDAuMTQ2MjUsIDAuMTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogU0RGRlFYTCAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChTREZGUVhMKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMjMwOTAyOwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIGZmIChOMzAsUUJJTlQpIHsKLSAgICBuZXh0X3N0YXRlIDogIigoU0UgU0kpICsgKCFTRSBEKSkiOwotICAgIGNsb2NrZWRfb24gOiAiQ0siOwotICB9Ci0gIHBpbihDSykgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjE4ODk1OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYxODYyMTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2MTg4OTU7Ci0gICAgY2xvY2sgOiB0cnVlOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjI2OSwgMC4wMDIyNTYsIDAuMDAyMjQ0LCAwLjAwMjIzNiwgMC4wMDIyMzIsIDAuMDAyMjI1LCAwLjAwMjIyMyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNDc0OSwgMC4wMDQ3MzksIDAuMDA0NzMsIDAuMDA0NzI1LCAwLjAwNDcyMywgMC4wMDQ3MjUsIDAuMDA0NzI0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRCYhU0UmIVNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9TRV9FUV8wX0FOX1NJX0VRXzAgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4zNjUzOTIsIDAuMzc2OTU3LCAwLjM5MjMwNiwgMC40MDc4OTYsIDAuNDIzMDI4LCAwLjQ0NzM5NSwgMC40NjgxNDgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjE5MjQ4LCAwLjIwMzkzOSwgMC4yMTg4NjgsIDAuMjMzNjg2LCAwLjI0ODI4NSwgMC4yNzEwNDQsIDAuMjg5NjkiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEQpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDU4MTYzMjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA1Nzk5ODsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA1ODE2MzI7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyMzA4LCAwLjAwMjI5OCwgMC4wMDIyOTMsIDAuMDAyMjg5LCAwLjAwMjI4NywgMC4wMDIyODMsIDAuMDAyMjgxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzMzc2LCAwLjAwMzM3MSwgMC4wMDMzNjgsIDAuMDAzMzY2LCAwLjAwMzM2NSwgMC4wMDMzNjMsIDAuMDAzMzYyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJTRSA9PSAxJ2IwIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4xMzEyNSwgLTAuMTIsIC0wLjEwNzUsIC0wLjEwMTI1LCAtMC4wODg3NSwgLTAuMDcyNSwgLTAuMDYzNzUiLCBcCi0gICAgICAgICAgIi0wLjE0MjUsIC0wLjEzMTI1LCAtMC4xMjUsIC0wLjExMjUsIC0wLjEsIC0wLjA4Mzc1LCAtMC4wNzUiLCBcCi0gICAgICAgICAgIi0wLjE1NSwgLTAuMTUsIC0wLjEzNzUsIC0wLjEyNSwgLTAuMTEyNSwgLTAuMTAyNSwgLTAuMDg3NSIsIFwKLSAgICAgICAgICAiLTAuMTczNzUsIC0wLjE2MjUsIC0wLjE1LCAtMC4xMzc1LCAtMC4xMzEyNSwgLTAuMTE1LCAtMC4xIiwgXAotICAgICAgICAgICItMC4xODYyNSwgLTAuMTc1LCAtMC4xNjI1LCAtMC4xNSwgLTAuMTQzNzUsIC0wLjEyNzUsIC0wLjExMjUiLCBcCi0gICAgICAgICAgIi0wLjIwODc1LCAtMC4xOTc1LCAtMC4xODUsIC0wLjE3MjUsIC0wLjE2NjI1LCAtMC4xNSwgLTAuMTM1IiwgXAotICAgICAgICAgICItMC4yMjM3NSwgLTAuMjE4NzUsIC0wLjIwNjI1LCAtMC4xOTM3NSwgLTAuMTgxMjUsIC0wLjE3MTI1LCAtMC4xNTYyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAyNSwgLTAuMDEzNzUsIC0wLjAwMTI1LCAwLjAxNzUsIDAuMDMsIDAuMDUyNSwgMC4wNjc1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDI1LCAtMC4wMTI1LCAwLjAwNjI1LCAwLjAxODc1LCAwLjA0MTI1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDM3NSwgLTAuMDI1LCAtMC4wMDYyNSwgMC4wMDYyNSwgMC4wMjg3NSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDYxMjUsIC0wLjA1LCAtMC4wMzc1LCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAuMDEsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjA3Mzc1LCAtMC4wNjI1LCAtMC4wNSwgLTAuMDMxMjUsIC0wLjAxODc1LCAwLjAwMzc1LCAwLjAxODc1IiwgXAotICAgICAgICAgICItMC4wOSwgLTAuMDc4NzUsIC0wLjA2NjI1LCAtMC4wNTM3NSwgLTAuMDQxMjUsIC0wLjAxODc1LCAwLjAwMjUiLCBcCi0gICAgICAgICAgIi0wLjEwNSwgLTAuMSwgLTAuMDgxMjUsIC0wLjA2ODc1LCAtMC4wNTYyNSwgLTAuMDMzNzUsIC0wLjAxODc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhU0UiOwotICAgICAgc2RmX2NvbmQgOiAiU0UgPT0gMSdiMCI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMiwgMC4xODg3NSwgMC4xNzYyNSwgMC4xNjM3NSwgMC4xNTEyNSwgMC4xMzUsIDAuMTIiLCBcCi0gICAgICAgICAgIjAuMjExMjUsIDAuMiwgMC4xODc1LCAwLjE3NSwgMC4xNjI1LCAwLjE0NjI1LCAwLjEzMTI1IiwgXAotICAgICAgICAgICIwLjIzLCAwLjIxMjUsIDAuMiwgMC4xODc1LCAwLjE3NSwgMC4xNTg3NSwgMC4xNDM3NSIsIFwKLSAgICAgICAgICAiMC4yNDI1LCAwLjIzMTI1LCAwLjIxMjUsIDAuMiwgMC4xODc1LCAwLjE3MTI1LCAwLjE1NjI1IiwgXAotICAgICAgICAgICIwLjI1NSwgMC4yNDM3NSwgMC4yMjUsIDAuMjEyNSwgMC4yLCAwLjE4Mzc1LCAwLjE3NSIsIFwKLSAgICAgICAgICAiMC4yNzc1LCAwLjI2NjI1LCAwLjI0NzUsIDAuMjM1LCAwLjIyMjUsIDAuMjA2MjUsIDAuMTk3NSIsIFwKLSAgICAgICAgICAiMC4yOTg3NSwgMC4yODEyNSwgMC4yNjg3NSwgMC4yNTYyNSwgMC4yNDM3NSwgMC4yMjc1LCAwLjIxMjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMzEyNSwgMC4xMiwgMC4xMDEyNSwgMC4wODg3NSwgMC4wNywgMC4wNDc1LCAwLjAyNjI1IiwgXAotICAgICAgICAgICIwLjE0MjUsIDAuMTMxMjUsIDAuMTEyNSwgMC4xLCAwLjA4MTI1LCAwLjA1ODc1LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIjAuMTU1LCAwLjE0Mzc1LCAwLjEyNSwgMC4xMTI1LCAwLjA5Mzc1LCAwLjA3MTI1LCAwLjA1IiwgXAotICAgICAgICAgICIwLjE2NzUsIDAuMTU2MjUsIDAuMTM3NSwgMC4xMjUsIDAuMTA2MjUsIDAuMDgzNzUsIDAuMDYyNSIsIFwKLSAgICAgICAgICAiMC4xOCwgMC4xNjg3NSwgMC4xNTYyNSwgMC4xMzc1LCAwLjExODc1LCAwLjA5NjI1LCAwLjA3NSIsIFwKLSAgICAgICAgICAiMC4yMDI1LCAwLjE5MTI1LCAwLjE3MjUsIDAuMTUzNzUsIDAuMTQxMjUsIDAuMTE4NzUsIDAuMDk3NSIsIFwKLSAgICAgICAgICAiMC4yMTc1LCAwLjIwNjI1LCAwLjE4NzUsIDAuMTc1LCAwLjE1NjI1LCAwLjEzMzc1LCAwLjExMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFEpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4wNjk1Mjc3OwotICAgIGZ1bmN0aW9uIDogIk4zMCI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3NlbnNlIDogbm9uX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiByaXNpbmdfZWRnZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzE1NTU0LCAwLjM0MDc1OCwgMC41Njc4OTQsIDAuOTQ2Mzc3LCAxLjMyNTAxLCAyLjIwODM5LCAyLjcxMzA4IiwgXAotICAgICAgICAgICIwLjMyNzI0NCwgMC4zNTI0NTUsIDAuNTc5NTI2LCAwLjk1ODA1NSwgMS4zMzY2NywgMi4yMjAwMSwgMi43MjQ4NCIsIFwKLSAgICAgICAgICAiMC4zNDI0MTksIDAuMzY3NjMxLCAwLjU5NDc2LCAwLjk3MzIyMiwgMS4zNTE4NSwgMi4yMzUyNywgMi43Mzk5OSIsIFwKLSAgICAgICAgICAiMC4zNTc4NjgsIDAuMzgzMDgsIDAuNjEwMTMzLCAwLjk4ODY2MywgMS4zNjczMSwgMi4yNTA3NCwgMi43NTU0MyIsIFwKLSAgICAgICAgICAiMC4zNzMwNTQsIDAuMzk4MjY3LCAwLjYyNTMyMiwgMS4wMDM4NywgMS4zODI0OCwgMi4yNjU4MiwgMi43NzA2NSIsIFwKLSAgICAgICAgICAiMC4zOTcyMTgsIDAuNDIyNDMyLCAwLjY0OTQ5NywgMS4wMjgwMywgMS40MDY2NSwgMi4yOTAwNiwgMi43OTQ3OSIsIFwKLSAgICAgICAgICAiMC40MTc4MzYsIDAuNDQzMDY0LCAwLjY3MDExNywgMS4wNDg2NSwgMS40MjcyOCwgMi4zMTA2OCwgMi44MTU0NCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yNzE5NzQsIDAuMzIyODcxLCAwLjc4MjU2NCwgMS41NTA0NywgMi4zMjM2LCA0LjExMDM3LCA1LjEzNTM3IiwgXAotICAgICAgICAgICIwLjI3MTg5NiwgMC4zMjI4NjgsIDAuNzgyOTg1LCAxLjU1Mzg3LCAyLjMyMzYzLCA0LjExODY4LCA1LjEzNTgxIiwgXAotICAgICAgICAgICIwLjI3MTg5OSwgMC4zMjI4NjQsIDAuNzgyMDk0LCAxLjU1MzgyLCAyLjMyMzY3LCA0LjExMDYsIDUuMTM2ODUiLCBcCi0gICAgICAgICAgIjAuMjcxOTA1LCAwLjMyMjg3OCwgMC43ODQyNDksIDEuNTUzNzcsIDIuMzIzNzUsIDQuMTEwNDcsIDUuMTM2MDEiLCBcCi0gICAgICAgICAgIjAuMjcxODk1LCAwLjMyMjg2NywgMC43ODI5NDEsIDEuNTUzODcsIDIuMzIzNjUsIDQuMTE4NjksIDUuMTM1ODYiLCBcCi0gICAgICAgICAgIjAuMjcxOTA1LCAwLjMyMjg2NSwgMC43ODI4NzMsIDEuNTUzODUsIDIuMzIzNjcsIDQuMTEwMjgsIDUuMTM2OCIsIFwKLSAgICAgICAgICAiMC4yNzE4OTQsIDAuMzIyOTgsIDAuNzgyODYsIDEuNTUzODgsIDIuMzIzNzQsIDQuMTEwMDUsIDUuMTM1NCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zNjUzOTIsIDAuMzk1MTAyLCAwLjY2MjQ3NSwgMS4xMDc4MiwgMS41NTMxNywgMi41OTI1NCwgMy4xODYzOSIsIFwKLSAgICAgICAgICAiMC4zNzY5NTcsIDAuNDA2NjcxLCAwLjY3NDAzLCAxLjExOTQyLCAxLjU2NDg4LCAyLjYwNDE0LCAzLjE5NzkxIiwgXAotICAgICAgICAgICIwLjM5MjMwNiwgMC40MjIwMjEsIDAuNjg5MzQ3LCAxLjEzNDc3LCAxLjU4MDIsIDIuNjE5MywgMy4yMTMyNCIsIFwKLSAgICAgICAgICAiMC40MDc4OTYsIDAuNDM3NjA3LCAwLjcwNDk3NiwgMS4xNTAzNywgMS41OTU3MywgMi42MzUwNiwgMy4yMjg4OSIsIFwKLSAgICAgICAgICAiMC40MjMwMjgsIDAuNDUyNzQxLCAwLjcyMDEwNSwgMS4xNjU1LCAxLjYxMDkyLCAyLjY1MDIxLCAzLjI0MzgyIiwgXAotICAgICAgICAgICIwLjQ0NzM5NSwgMC40NzcxMDYsIDAuNzQ0NDc4LCAxLjE4OTg2LCAxLjYzNTE5LCAyLjY3NDU1LCAzLjI2ODQiLCBcCi0gICAgICAgICAgIjAuNDY4MTYyLCAwLjQ5Nzg3NiwgMC43NjUyMzcsIDEuMjEwNjIsIDEuNjU2MSwgMi42OTUyNiwgMy4yODkxNiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMTE3OTgsIDAuMzcwNDgxLCAwLjg5ODE3NiwgMS43ODUzNSwgMi42NzAzNiwgNC43MjEyMSwgNS44OTExOSIsIFwKLSAgICAgICAgICAiMC4zMTE3OSwgMC4zNjk0ODIsIDAuOTAxMTM1LCAxLjc4NDk1LCAyLjY2ODM5LCA0LjcyMDA0LCA1Ljg5MTk4IiwgXAotICAgICAgICAgICIwLjMxMTgzOCwgMC4zNzA0ODUsIDAuODk4NzM5LCAxLjc4NTAzLCAyLjY2ODQ4LCA0LjcyMTc1LCA1Ljg4OTg2IiwgXAotICAgICAgICAgICIwLjMxMTc5MSwgMC4zNzA0ODIsIDAuODk4MzU1LCAxLjc4NDc3LCAyLjY2OTc4LCA0LjcyMTQ2LCA1Ljg5MTEyIiwgXAotICAgICAgICAgICIwLjMxMTc5NiwgMC4zNzA0ODUsIDAuODk4NjQyLCAxLjc4NDgyLCAyLjY2NTc0LCA0LjcyMDcsIDUuODkxODEiLCBcCi0gICAgICAgICAgIjAuMzExNzkzLCAwLjM3MDQ4LCAwLjg5ODIzNCwgMS43ODQ4NiwgMi42NzAwOCwgNC43MjE0OCwgNS44OTEyIiwgXAotICAgICAgICAgICIwLjMxMTgyNCwgMC4zNzA0ODUsIDAuOTAxMTQyLCAxLjc4NTA3LCAyLjY2ODU5LCA0LjcyMTgsIDUuODkwOTMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0NTg1LCAwLjAwNDU4NCwgMC4wMDQ1NzYsIDAuMDA0NTcxLCAwLjAwNDU2OSwgMC4wMDQ1NjcsIDAuMDA0NTY3IiwgXAotICAgICAgICAgICIwLjAwNDU3MiwgMC4wMDQ1NywgMC4wMDQ1NjIsIDAuMDA0NTU3LCAwLjAwNDU1NSwgMC4wMDQ1NTMsIDAuMDA0NTUzIiwgXAotICAgICAgICAgICIwLjAwNDU1OSwgMC4wMDQ1NTcsIDAuMDA0NTQ5LCAwLjAwNDU0NSwgMC4wMDQ1NDIsIDAuMDA0NTQsIDAuMDA0NTQiLCBcCi0gICAgICAgICAgIjAuMDA0NTQ5LCAwLjAwNDU0OCwgMC4wMDQ1NCwgMC4wMDQ1MzUsIDAuMDA0NTMzLCAwLjAwNDUzMSwgMC4wMDQ1MzEiLCBcCi0gICAgICAgICAgIjAuMDA0NTQxLCAwLjAwNDU0LCAwLjAwNDUzMiwgMC4wMDQ1MjcsIDAuMDA0NTI1LCAwLjAwNDUyMywgMC4wMDQ1MjIiLCBcCi0gICAgICAgICAgIjAuMDA0NTMzLCAwLjAwNDUzMSwgMC4wMDQ1MjMsIDAuMDA0NTE5LCAwLjAwNDUxNiwgMC4wMDQ1MTQsIDAuMDA0NTEzIiwgXAotICAgICAgICAgICIwLjAwNDUyOSwgMC4wMDQ1MjgsIDAuMDA0NTIsIDAuMDA0NTE1LCAwLjAwNDUxMiwgMC4wMDQ1MSwgMC4wMDQ1MSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDcwMiwgMC4wMDQ3MDMsIDAuMDA0NzA2LCAwLjAwNDcwNywgMC4wMDQ3MDgsIDAuMDA0NzA4LCAwLjAwNDcwOCIsIFwKLSAgICAgICAgICAiMC4wMDQ2ODcsIDAuMDA0Njg4LCAwLjAwNDY5MSwgMC4wMDQ2OTIsIDAuMDA0NjkzLCAwLjAwNDY5MywgMC4wMDQ2OTMiLCBcCi0gICAgICAgICAgIjAuMDA0Njc2LCAwLjAwNDY3NiwgMC4wMDQ2OCwgMC4wMDQ2ODEsIDAuMDA0NjgxLCAwLjAwNDY4MiwgMC4wMDQ2ODIiLCBcCi0gICAgICAgICAgIjAuMDA0NjY5LCAwLjAwNDY3LCAwLjAwNDY3MywgMC4wMDQ2NzUsIDAuMDA0Njc1LCAwLjAwNDY3NiwgMC4wMDQ2NzYiLCBcCi0gICAgICAgICAgIjAuMDA0NjY2LCAwLjAwNDY2NywgMC4wMDQ2NywgMC4wMDQ2NzEsIDAuMDA0NjcyLCAwLjAwNDY3MiwgMC4wMDQ2NzMiLCBcCi0gICAgICAgICAgIjAuMDA0NjY0LCAwLjAwNDY2NSwgMC4wMDQ2NjgsIDAuMDA0NjY5LCAwLjAwNDY3LCAwLjAwNDY3LCAwLjAwNDY3IiwgXAotICAgICAgICAgICIwLjAwNDY3MSwgMC4wMDQ2NzIsIDAuMDA0Njc1LCAwLjAwNDY3NiwgMC4wMDQ2NzcsIDAuMDA0Njc3LCAwLjAwNDY3NyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oU0UpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTI2MTY1OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTI2MDkxOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTI2MTY1OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzE5NywgMC4wMDMxODYsIDAuMDAzMTgsIDAuMDAzMTc3LCAwLjAwMzE3NywgMC4wMDMxNzQsIDAuMDAzMTc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA0MjM4LCAwLjAwNDIyLCAwLjAwNDIwOCwgMC4wMDQyLCAwLjAwNDE5NSwgMC4wMDQxOSwgMC4wMDQxODkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUQmU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1NJX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMTE4NzUsIC0wLjEwNzUsIC0wLjA5NSwgLTAuMDgyNSwgLTAuMDc2MjUsIC0wLjA2LCAtMC4wNDUiLCBcCi0gICAgICAgICAgIi0wLjEzLCAtMC4xMTg3NSwgLTAuMTA2MjUsIC0wLjA5Mzc1LCAtMC4wODc1LCAtMC4wNzEyNSwgLTAuMDU2MjUiLCBcCi0gICAgICAgICAgIi0wLjE0MjUsIC0wLjEzMTI1LCAtMC4xMTg3NSwgLTAuMTA2MjUsIC0wLjEsIC0wLjA4Mzc1LCAtMC4wNjg3NSIsIFwKLSAgICAgICAgICAiLTAuMTU1LCAtMC4xNDM3NSwgLTAuMTMxMjUsIC0wLjExODc1LCAtMC4xMTI1LCAtMC4wOTYyNSwgLTAuMDg3NSIsIFwKLSAgICAgICAgICAiLTAuMTY3NSwgLTAuMTU2MjUsIC0wLjE0Mzc1LCAtMC4xMzc1LCAtMC4xMjUsIC0wLjEwODc1LCAtMC4xIiwgXAotICAgICAgICAgICItMC4xOSwgLTAuMTc4NzUsIC0wLjE2NjI1LCAtMC4xNiwgLTAuMTQ3NSwgLTAuMTMxMjUsIC0wLjEyMjUiLCBcCi0gICAgICAgICAgIi0wLjIxMTI1LCAtMC4yLCAtMC4xODc1LCAtMC4xNzUsIC0wLjE2ODc1LCAtMC4xNTI1LCAtMC4xMzc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDEyNSwgLTAuMDAxMjUsIDAuMDExMjUsIDAuMDMsIDAuMDQyNSwgMC4wNTg3NSwgMC4wOCIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxMjUsIDAuMDA2MjUsIDAuMDE4NzUsIDAuMDMxMjUsIDAuMDUzNzUsIDAuMDY4NzUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMjUsIC0wLjAxMjUsIDAuMDA2MjUsIDAuMDE4NzUsIDAuMDQxMjUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAwNjI1LCAwLjAwNjI1LCAwLjAyODc1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICItMC4wNjEyNSwgLTAuMDUsIC0wLjAzNzUsIC0wLjAxODc1LCAtMC4wMDYyNSwgMC4wMTYyNSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDc3NSwgLTAuMDY2MjUsIC0wLjA1Mzc1LCAtMC4wNDEyNSwgLTAuMDI4NzUsIC0wLjAwNjI1LCAwLjAxNSIsIFwKLSAgICAgICAgICAiLTAuMDkyNSwgLTAuMDgxMjUsIC0wLjA2ODc1LCAtMC4wNTYyNSwgLTAuMDQzNzUsIC0wLjAyMTI1LCAtMC4wMDYyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJEJiFTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzFfQU5fU0lfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wNDM3NSwgLTAuMDMyNSwgLTAuMDEzNzUsIC0wLjAwMTI1LCAwLjAxMTI1LCAwLjAzMzc1LCAwLjA0ODc1IiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA0Mzc1LCAtMC4wMjUsIC0wLjAxMjUsIDAsIDAuMDIyNSwgMC4wMzc1IiwgXAotICAgICAgICAgICItMC4wNjc1LCAtMC4wNTYyNSwgLTAuMDQzNzUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgMC4wMDM3NSwgMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjA4NjI1LCAtMC4wNzUsIC0wLjA1NjI1LCAtMC4wNDM3NSwgLTAuMDMxMjUsIC0wLjAwODc1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wOTg3NSwgLTAuMDg3NSwgLTAuMDc1LCAtMC4wNTYyNSwgLTAuMDQzNzUsIC0wLjAyMTI1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMTIxMjUsIC0wLjExLCAtMC4wOTEyNSwgLTAuMDc4NzUsIC0wLjA2NjI1LCAtMC4wNDM3NSwgLTAuMDIyNSIsIFwKLSAgICAgICAgICAiLTAuMTM2MjUsIC0wLjEyNSwgLTAuMTA2MjUsIC0wLjA5Mzc1LCAtMC4wODEyNSwgLTAuMDU4NzUsIC0wLjA0Mzc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMTQzNzUsIC0wLjEzMjUsIC0wLjEyNjI1LCAtMC4xMTM3NSwgLTAuMTAxMjUsIC0wLjA4NSwgLTAuMDc2MjUiLCBcCi0gICAgICAgICAgIi0wLjE1NSwgLTAuMTUsIC0wLjEzNzUsIC0wLjEyNSwgLTAuMTEyNSwgLTAuMTAyNSwgLTAuMDg3NSIsIFwKLSAgICAgICAgICAiLTAuMTczNzUsIC0wLjE2MjUsIC0wLjE1LCAtMC4xMzc1LCAtMC4xMzEyNSwgLTAuMTE1LCAtMC4xIiwgXAotICAgICAgICAgICItMC4xODYyNSwgLTAuMTc1LCAtMC4xNjI1LCAtMC4xNSwgLTAuMTQzNzUsIC0wLjEyNzUsIC0wLjExODc1IiwgXAotICAgICAgICAgICItMC4xOTg3NSwgLTAuMTg3NSwgLTAuMTc1LCAtMC4xNjI1LCAtMC4xNTYyNSwgLTAuMTQsIC0wLjEzMTI1IiwgXAotICAgICAgICAgICItMC4yMTUsIC0wLjIwMzc1LCAtMC4xOTEyNSwgLTAuMTg1LCAtMC4xNzI1LCAtMC4xNTYyNSwgLTAuMTQ3NSIsIFwKLSAgICAgICAgICAiLTAuMjMsIC0wLjIxODc1LCAtMC4yMDYyNSwgLTAuMTkzNzUsIC0wLjE4NzUsIC0wLjE3MTI1LCAtMC4xNTYyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUQmU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1NJX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTg3NSwgMC4xNzYyNSwgMC4xNTc1LCAwLjE0NSwgMC4xMzI1LCAwLjExNjI1LCAwLjEwMTI1IiwgXAotICAgICAgICAgICIwLjE5ODc1LCAwLjE4NzUsIDAuMTY4NzUsIDAuMTU2MjUsIDAuMTQzNzUsIDAuMTI3NSwgMC4xMTI1IiwgXAotICAgICAgICAgICIwLjIxMTI1LCAwLjIsIDAuMTgxMjUsIDAuMTY4NzUsIDAuMTU2MjUsIDAuMTQsIDAuMTMxMjUiLCBcCi0gICAgICAgICAgIjAuMjIzNzUsIDAuMjEyNSwgMC4yLCAwLjE4MTI1LCAwLjE2ODc1LCAwLjE1MjUsIDAuMTQzNzUiLCBcCi0gICAgICAgICAgIjAuMjM2MjUsIDAuMjI1LCAwLjIxMjUsIDAuMiwgMC4xODc1LCAwLjE3MTI1LCAwLjE1NjI1IiwgXAotICAgICAgICAgICIwLjI1ODc1LCAwLjI0NzUsIDAuMjM1LCAwLjIxNjI1LCAwLjIwMzc1LCAwLjE5Mzc1LCAwLjE3ODc1IiwgXAotICAgICAgICAgICIwLjI4LCAwLjI2ODc1LCAwLjI1LCAwLjIzNzUsIDAuMjI1LCAwLjIwODc1LCAwLjIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTg3NSwgMC4xMDc1LCAwLjA4ODc1LCAwLjA3NjI1LCAwLjA1NzUsIDAuMDM1LCAwLjAxMzc1IiwgXAotICAgICAgICAgICIwLjEzLCAwLjExODc1LCAwLjEsIDAuMDg3NSwgMC4wNjg3NSwgMC4wNDYyNSwgMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMTQyNSwgMC4xMzEyNSwgMC4xMTI1LCAwLjEsIDAuMDgxMjUsIDAuMDU4NzUsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiMC4xNTUsIDAuMTQzNzUsIDAuMTI1LCAwLjExMjUsIDAuMDkzNzUsIDAuMDcxMjUsIDAuMDUiLCBcCi0gICAgICAgICAgIjAuMTY3NSwgMC4xNTYyNSwgMC4xNDM3NSwgMC4xMjUsIDAuMTA2MjUsIDAuMDgzNzUsIDAuMDYyNSIsIFwKLSAgICAgICAgICAiMC4xOSwgMC4xNzg3NSwgMC4xNiwgMC4xNDc1LCAwLjEyODc1LCAwLjEwNjI1LCAwLjA4NSIsIFwKLSAgICAgICAgICAiMC4yMTEyNSwgMC4xOTM3NSwgMC4xODEyNSwgMC4xNjI1LCAwLjE1LCAwLjEyNzUsIDAuMTA2MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIkQmIVNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMV9BTl9TSV9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE1LCAwLjEzODc1LCAwLjEyLCAwLjEwMTI1LCAwLjA4ODc1LCAwLjA2NjI1LCAwLjA0NSIsIFwKLSAgICAgICAgICAiMC4xNjEyNSwgMC4xNSwgMC4xMzEyNSwgMC4xMTg3NSwgMC4xLCAwLjA3NzUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIjAuMTczNzUsIDAuMTYyNSwgMC4xNSwgMC4xMzEyNSwgMC4xMTg3NSwgMC4wOSwgMC4wNjg3NSIsIFwKLSAgICAgICAgICAiMC4xOTI1LCAwLjE4MTI1LCAwLjE2MjUsIDAuMTUsIDAuMTMxMjUsIDAuMTA4NzUsIDAuMDg3NSIsIFwKLSAgICAgICAgICAiMC4yMDUsIDAuMTkzNzUsIDAuMTc1LCAwLjE2MjUsIDAuMTQzNzUsIDAuMTIxMjUsIDAuMSIsIFwKLSAgICAgICAgICAiMC4yMjc1LCAwLjIxLCAwLjE5NzUsIDAuMTc4NzUsIDAuMTY2MjUsIDAuMTM3NSwgMC4xMjI1IiwgXAotICAgICAgICAgICIwLjI0MjUsIDAuMjMxMjUsIDAuMjEyNSwgMC4xOTM3NSwgMC4xODEyNSwgMC4xNTg3NSwgMC4xMzc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjEyNSwgMC4yMDEyNSwgMC4xODg3NSwgMC4xNzYyNSwgMC4xNjM3NSwgMC4xNDc1LCAwLjEzMjUiLCBcCi0gICAgICAgICAgIjAuMjMsIDAuMjEyNSwgMC4yLCAwLjE4NzUsIDAuMTc1LCAwLjE1ODc1LCAwLjE0Mzc1IiwgXAotICAgICAgICAgICIwLjI0MjUsIDAuMjMxMjUsIDAuMjEyNSwgMC4yLCAwLjE4NzUsIDAuMTcxMjUsIDAuMTYyNSIsIFwKLSAgICAgICAgICAiMC4yNTUsIDAuMjQzNzUsIDAuMjMxMjUsIDAuMjEyNSwgMC4yLCAwLjE4Mzc1LCAwLjE3NSIsIFwKLSAgICAgICAgICAiMC4yNjc1LCAwLjI1NjI1LCAwLjI0Mzc1LCAwLjIyNSwgMC4yMTI1LCAwLjE5NjI1LCAwLjE4NzUiLCBcCi0gICAgICAgICAgIjAuMjgzNzUsIDAuMjcyNSwgMC4yNiwgMC4yNDc1LCAwLjIzNSwgMC4yMTg3NSwgMC4yMDM3NSIsIFwKLSAgICAgICAgICAiMC4yOTg3NSwgMC4yODc1LCAwLjI2ODc1LCAwLjI1NjI1LCAwLjI0Mzc1LCAwLjIyNzUsIDAuMjE4NzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFNJKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2NDUwNTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2NDMyMjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2NDUwNTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDIxNzksIDAuMDAyMTcsIDAuMDAyMTY0LCAwLjAwMjE2MSwgMC4wMDIxNTksIDAuMDAyMTU1LCAwLjAwMjE1MyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzQzOCwgMC4wMDM0MzMsIDAuMDAzNDMxLCAwLjAwMzQyOSwgMC4wMDM0MjgsIDAuMDAzNDI2LCAwLjAwMzQyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJTRSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4xMzEyNSwgLTAuMTIsIC0wLjEwNzUsIC0wLjA5NSwgLTAuMDg4NzUsIC0wLjA3MjUsIC0wLjA1NzUiLCBcCi0gICAgICAgICAgIi0wLjE0MjUsIC0wLjEzMTI1LCAtMC4xMTg3NSwgLTAuMTA2MjUsIC0wLjEsIC0wLjA4Mzc1LCAtMC4wNjg3NSIsIFwKLSAgICAgICAgICAiLTAuMTU1LCAtMC4xNDM3NSwgLTAuMTMxMjUsIC0wLjEyNSwgLTAuMTEyNSwgLTAuMDk2MjUsIC0wLjA4NzUiLCBcCi0gICAgICAgICAgIi0wLjE2NzUsIC0wLjE1NjI1LCAtMC4xNDM3NSwgLTAuMTM3NSwgLTAuMTI1LCAtMC4xMDg3NSwgLTAuMSIsIFwKLSAgICAgICAgICAiLTAuMTgsIC0wLjE2ODc1LCAtMC4xNjI1LCAtMC4xNSwgLTAuMTM3NSwgLTAuMTI3NSwgLTAuMTEyNSIsIFwKLSAgICAgICAgICAiLTAuMjAyNSwgLTAuMTkxMjUsIC0wLjE4NSwgLTAuMTcyNSwgLTAuMTYsIC0wLjE0Mzc1LCAtMC4xMzUiLCBcCi0gICAgICAgICAgIi0wLjIyMzc1LCAtMC4yMTI1LCAtMC4yLCAtMC4xODc1LCAtMC4xODEyNSwgLTAuMTY1LCAtMC4xNTYyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAyNSwgLTAuMDEzNzUsIDAuMDA1LCAwLjAxNzUsIDAuMDMsIDAuMDUyNSwgMC4wNjc1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDI1LCAtMC4wMTI1LCAwLjAwNjI1LCAwLjAxODc1LCAwLjA0MTI1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDM3NSwgLTAuMDI1LCAtMC4wMDYyNSwgMC4wMDYyNSwgMC4wMjg3NSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDYxMjUsIC0wLjA1LCAtMC4wMzc1LCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAuMDE2MjUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjA3Mzc1LCAtMC4wNjI1LCAtMC4wNDM3NSwgLTAuMDMxMjUsIC0wLjAxODc1LCAwLjAwMzc1LCAwLjAxODc1IiwgXAotICAgICAgICAgICItMC4wOSwgLTAuMDc4NzUsIC0wLjA2NjI1LCAtMC4wNTM3NSwgLTAuMDM1LCAtMC4wMTg3NSwgMC4wMDI1IiwgXAotICAgICAgICAgICItMC4xMDUsIC0wLjA5Mzc1LCAtMC4wODEyNSwgLTAuMDY4NzUsIC0wLjA1NjI1LCAtMC4wMzM3NSwgLTAuMDEyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiU0UiOwotICAgICAgc2RmX2NvbmQgOiAiU0UgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMiwgMC4xODg3NSwgMC4xNywgMC4xNTc1LCAwLjE0NSwgMC4xMjg3NSwgMC4xMTM3NSIsIFwKLSAgICAgICAgICAiMC4yMTEyNSwgMC4yLCAwLjE4MTI1LCAwLjE2ODc1LCAwLjE1NjI1LCAwLjE0LCAwLjEzMTI1IiwgXAotICAgICAgICAgICIwLjIyMzc1LCAwLjIxMjUsIDAuMiwgMC4xODEyNSwgMC4xNjg3NSwgMC4xNTI1LCAwLjE0Mzc1IiwgXAotICAgICAgICAgICIwLjIzNjI1LCAwLjIyNSwgMC4yMTI1LCAwLjIsIDAuMTg3NSwgMC4xNzEyNSwgMC4xNTYyNSIsIFwKLSAgICAgICAgICAiMC4yNTUsIDAuMjM3NSwgMC4yMjUsIDAuMjEyNSwgMC4yLCAwLjE4Mzc1LCAwLjE2ODc1IiwgXAotICAgICAgICAgICIwLjI3MTI1LCAwLjI2LCAwLjI0NzUsIDAuMjM1LCAwLjIyMjUsIDAuMjA2MjUsIDAuMTkxMjUiLCBcCi0gICAgICAgICAgIjAuMjkyNSwgMC4yODEyNSwgMC4yNjg3NSwgMC4yNSwgMC4yMzc1LCAwLjIyMTI1LCAwLjIxMjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMzEyNSwgMC4xMiwgMC4xMDEyNSwgMC4wODg3NSwgMC4wNywgMC4wNDc1LCAwLjAyNjI1IiwgXAotICAgICAgICAgICIwLjE0MjUsIDAuMTMxMjUsIDAuMTEyNSwgMC4xLCAwLjA4MTI1LCAwLjA1ODc1LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIjAuMTU1LCAwLjE0Mzc1LCAwLjEyNSwgMC4xMTI1LCAwLjA5Mzc1LCAwLjA3MTI1LCAwLjA1IiwgXAotICAgICAgICAgICIwLjE2NzUsIDAuMTU2MjUsIDAuMTM3NSwgMC4xMjUsIDAuMTA2MjUsIDAuMDgzNzUsIDAuMDYyNSIsIFwKLSAgICAgICAgICAiMC4xOCwgMC4xNjg3NSwgMC4xNSwgMC4xMzc1LCAwLjExODc1LCAwLjA5NjI1LCAwLjA3NSIsIFwKLSAgICAgICAgICAiMC4yMDI1LCAwLjE4NSwgMC4xNzI1LCAwLjE1Mzc1LCAwLjE0MTI1LCAwLjExMjUsIDAuMDkxMjUiLCBcCi0gICAgICAgICAgIjAuMjE3NSwgMC4yMDYyNSwgMC4xODc1LCAwLjE3NSwgMC4xNTYyNSwgMC4xMzM3NSwgMC4xMTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBTREZGUkhRWDggKgotICogLS0tLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChTREZGUkhRWDgpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC43NTYzMjg7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgZmYgKE4zMCxRQklOVCkgewotICAgIG5leHRfc3RhdGUgOiAiKChTRSBTSSkgKyAoIVNFIEQpKSI7Ci0gICAgY2xvY2tlZF9vbiA6ICJDSyI7Ci0gICAgY2xlYXIgOiAiKCFSTikiOwotICB9Ci0gIHBpbihDSykgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNTU3NzU1OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDU1NzQ5NTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA1NTc3NTU7Ci0gICAgY2xvY2sgOiB0cnVlOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjY3NSwgMC4wMDI2NjQsIDAuMDAyNjU0LCAwLjAwMjY0OCwgMC4wMDI2NDMsIDAuMDAyNjM2LCAwLjAwMjYzMiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNjY2MiwgMC4wMDY2NTQsIDAuMDA2NjQ2LCAwLjAwNjY0LCAwLjAwNjYzOCwgMC4wMDY2NCwgMC4wMDY2NDQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFEJlJOJiFTRSYhU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1JOX0VRXzFfQU5fU0VfRVFfMF9BTl9TSV9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMjkwMjcyLCAwLjMwMjAyNiwgMC4zMTcyNjMsIDAuMzMyNjk3LCAwLjM0ODA5NCwgMC4zNzI0NzIsIDAuMzkzODg2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4yMDU3MjQsIDAuMjE2OTY5LCAwLjIzMTk1LCAwLjI0NjYyNSwgMC4yNjE3MDMsIDAuMjg1MDg0LCAwLjMwNTA1OCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwODAxOTU0OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDc5ODE0OTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA4MDE5NTQ7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzMTc4LCAwLjAwMzE1OSwgMC4wMDMxNDksIDAuMDAzMTQxLCAwLjAwMzEzNywgMC4wMDMxMzEsIDAuMDAzMTI3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA0ODc2LCAwLjAwNDg2NiwgMC4wMDQ4NiwgMC4wMDQ4NTYsIDAuMDA0ODUzLCAwLjAwNDg1LCAwLjAwNDg0OSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJSTiYhU0UiOwotICAgICAgc2RmX2NvbmQgOiAiUk5fRVFfMV9BTl9TRV9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjEsIC0wLjA4ODc1LCAtMC4wNzYyNSwgLTAuMDYzNzUsIC0wLjA1MTI1LCAtMC4wMzUsIC0wLjAyIiwgXAotICAgICAgICAgICItMC4xMTEyNSwgLTAuMSwgLTAuMDg3NSwgLTAuMDc1LCAtMC4wNjI1LCAtMC4wNDYyNSwgLTAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjEyMzc1LCAtMC4xMTI1LCAtMC4xLCAtMC4wODc1LCAtMC4wODEyNSwgLTAuMDU4NzUsIC0wLjA0Mzc1IiwgXAotICAgICAgICAgICItMC4xMzYyNSwgLTAuMTI1LCAtMC4xMTg3NSwgLTAuMTA2MjUsIC0wLjA5Mzc1LCAtMC4wNzc1LCAtMC4wNjI1IiwgXAotICAgICAgICAgICItMC4xNDg3NSwgLTAuMTQzNzUsIC0wLjEzMTI1LCAtMC4xMTg3NSwgLTAuMTA2MjUsIC0wLjA5LCAtMC4wNzUiLCBcCi0gICAgICAgICAgIi0wLjE3MTI1LCAtMC4xNiwgLTAuMTQ3NSwgLTAuMTM1LCAtMC4xMjg3NSwgLTAuMTA2MjUsIC0wLjA5NzUiLCBcCi0gICAgICAgICAgIi0wLjE5MjUsIC0wLjE4MTI1LCAtMC4xNjg3NSwgLTAuMTU2MjUsIC0wLjE0Mzc1LCAtMC4xMjc1LCAtMC4xMTI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDYyNSwgMC4wMTc1LCAwLjAzNjI1LCAwLjA0ODc1LCAwLjA2MTI1LCAwLjA5LCAwLjEwNSIsIFwKLSAgICAgICAgICAiLTAuMDA1LCAwLjAwNjI1LCAwLjAyNSwgMC4wMzc1LCAwLjA1LCAwLjA3ODc1LCAwLjA5Mzc1IiwgXAotICAgICAgICAgICItMC4wMTc1LCAtMC4wMDYyNSwgMC4wMTI1LCAwLjAyNSwgMC4wMzc1LCAwLjA2NjI1LCAwLjA4MTI1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDEyNSwgMCwgMC4wMTI1LCAwLjAzMTI1LCAwLjA1Mzc1LCAwLjA2ODc1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDI1LCAtMC4wMTI1LCAwLCAwLjAxODc1LCAwLjA0MTI1LCAwLjA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA1ODc1LCAtMC4wNDEyNSwgLTAuMDI4NzUsIC0wLjAxNjI1LCAtMC4wMDM3NSwgMC4wMjUsIDAuMDQiLCBcCi0gICAgICAgICAgIi0wLjA2NzUsIC0wLjA1NjI1LCAtMC4wNDM3NSwgLTAuMDMxMjUsIC0wLjAxMjUsIDAuMDEsIDAuMDI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJSTiYhU0UiOwotICAgICAgc2RmX2NvbmQgOiAiUk5fRVFfMV9BTl9TRV9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE4MTI1LCAwLjE2Mzc1LCAwLjE1MTI1LCAwLjEzODc1LCAwLjEyLCAwLjEwMzc1LCAwLjA4ODc1IiwgXAotICAgICAgICAgICIwLjE5MjUsIDAuMTc1LCAwLjE2MjUsIDAuMTUsIDAuMTM3NSwgMC4xMTUsIDAuMSIsIFwKLSAgICAgICAgICAiMC4yMDUsIDAuMTkzNzUsIDAuMTc1LCAwLjE2MjUsIDAuMTUsIDAuMTI3NSwgMC4xMTg3NSIsIFwKLSAgICAgICAgICAiMC4yMTc1LCAwLjIwNjI1LCAwLjE4NzUsIDAuMTc1LCAwLjE2MjUsIDAuMTQsIDAuMTMxMjUiLCBcCi0gICAgICAgICAgIjAuMjMsIDAuMjE4NzUsIDAuMiwgMC4xODc1LCAwLjE3NSwgMC4xNTg3NSwgMC4xNDM3NSIsIFwKLSAgICAgICAgICAiMC4yNTI1LCAwLjI0MTI1LCAwLjIyMjUsIDAuMjEsIDAuMTk3NSwgMC4xNzUsIDAuMTY2MjUiLCBcCi0gICAgICAgICAgIjAuMjY3NSwgMC4yNTYyNSwgMC4yNDM3NSwgMC4yMjUsIDAuMjEyNSwgMC4xOTYyNSwgMC4xODEyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4NzUsIDAuMDc2MjUsIDAuMDU3NSwgMC4wNDUsIDAuMDI2MjUsIDAuMDAzNzUsIC0wLjAxNzUiLCBcCi0gICAgICAgICAgIjAuMDk4NzUsIDAuMDg3NSwgMC4wNjg3NSwgMC4wNTYyNSwgMC4wMzc1LCAwLjAxNSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMTExMjUsIDAuMSwgMC4wODEyNSwgMC4wNjg3NSwgMC4wNSwgMC4wMjc1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICIwLjEyMzc1LCAwLjExMjUsIDAuMDkzNzUsIDAuMDgxMjUsIDAuMDYyNSwgMC4wNCwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4xMzYyNSwgMC4xMjUsIDAuMTA2MjUsIDAuMDkzNzUsIDAuMDc1LCAwLjA1MjUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMTUyNSwgMC4xNDEyNSwgMC4xMjg3NSwgMC4xMSwgMC4wOTc1LCAwLjA2ODc1LCAwLjA0NzUiLCBcCi0gICAgICAgICAgIjAuMTczNzUsIDAuMTYyNSwgMC4xNDM3NSwgMC4xMzEyNSwgMC4xMTI1LCAwLjA5LCAwLjA2ODc1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihRKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDEuMDM3ODc7Ci0gICAgZnVuY3Rpb24gOiAiTjMwIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBub25fdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJpc2luZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMwMzYyNSwgMC4zNzY5ODcsIDAuNDQwNzc1LCAwLjQ4NTk0MywgMC41NTgwOTIsIDAuNjIxMjI2LCAwLjcxMTM4OCIsIFwKLSAgICAgICAgICAiMC4zMTU2MjEsIDAuMzg4OTk1LCAwLjQ1Mjc2OCwgMC40OTc5MywgMC41NzAxMjQsIDAuNjMzMjMyLCAwLjcyMzM5NCIsIFwKLSAgICAgICAgICAiMC4zMzA1MTIsIDAuNDAzODcxLCAwLjQ2NzY2NSwgMC41MTI4MjgsIDAuNTg1MDE1LCAwLjY0ODExNCwgMC43MzgyNzciLCBcCi0gICAgICAgICAgIjAuMzQ2MDkzLCAwLjQxOTQ2OCwgMC40ODMyNCwgMC41Mjg0MDMsIDAuNjAwNTkyLCAwLjY2MzcwNSwgMC43NTM4NjciLCBcCi0gICAgICAgICAgIjAuMzYxNjA2LCAwLjQzNDk2OCwgMC40OTg3NjYsIDAuNTQzOTIyLCAwLjYxNjA4NiwgMC42NzkyMDYsIDAuNzY5NDA2IiwgXAotICAgICAgICAgICIwLjM4NTYxOSwgMC40NTg5ODIsIDAuNTIyNzY1LCAwLjU2NzkzNiwgMC42NDAwODcsIDAuNzAzMjIsIDAuNzkzMzgxIiwgXAotICAgICAgICAgICIwLjQwNzIxOSwgMC40ODA1ODksIDAuNTQ0MzcyLCAwLjU4OTUzNiwgMC42NjE3MDEsIDAuNzI0ODIyLCAwLjgxNDk4NSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1MDc2OSwgMC4xNjk4OTksIDAuMjk0MTUxLCAwLjM4NDYxOSwgMC41MjkyNjgsIDAuNjU2ODg4LCAwLjgzOTM0NyIsIFwKLSAgICAgICAgICAiMC4wNTA4MTYsIDAuMTY5OTA1LCAwLjI5NDI0OCwgMC4zODQ0OTMsIDAuNTMwMTY2LCAwLjY1Njg5MiwgMC44MzkzOTUiLCBcCi0gICAgICAgICAgIjAuMDUwNzUsIDAuMTY5ODcyLCAwLjI5Mzg5OCwgMC4zODM3NywgMC41MzAyMjIsIDAuNjU2OTI4LCAwLjgzOTM5OCIsIFwKLSAgICAgICAgICAiMC4wNTA4MTYsIDAuMTY5OTA0LCAwLjI5NDI0MSwgMC4zODQ0ODQsIDAuNTMwMTIsIDAuNjU2ODgzLCAwLjgzOTQiLCBcCi0gICAgICAgICAgIjAuMDUwNjcyLCAwLjE2OTkwOSwgMC4yOTQxNSwgMC4zODM4NTQsIDAuNTI5MjI0LCAwLjY1Njk4NSwgMC44MzkyMDIiLCBcCi0gICAgICAgICAgIjAuMDUwNzY5LCAwLjE2OTksIDAuMjk0MjI4LCAwLjM4NDU5MiwgMC41MjkyNTUsIDAuNjU2ODg1LCAwLjgzOTQ0NCIsIFwKLSAgICAgICAgICAiMC4wNTA3NTQsIDAuMTY5ODc2LCAwLjI5MzkzOCwgMC4zODM4MDEsIDAuNTI5MjA4LCAwLjY1Njk0MiwgMC44Mzk0MDciKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yOTAyNzQsIDAuMzY4MDY2LCAwLjQ0MjU4NSwgMC40OTU3MDIsIDAuNTgwNjgsIDAuNjU1MDY0LCAwLjc2MTI1OSIsIFwKLSAgICAgICAgICAiMC4zMDIwMjgsIDAuMzc5ODE0LCAwLjQ1NDMxMiwgMC41MDc0NTYsIDAuNTkyNDM5LCAwLjY2NjgxOCwgMC43NzMwMjUiLCBcCi0gICAgICAgICAgIjAuMzE3MjY0LCAwLjM5NTA1NiwgMC40Njk1NjIsIDAuNTIyNjg2LCAwLjYwNzY3NCwgMC42ODIwMjMsIDAuNzg4MjUiLCBcCi0gICAgICAgICAgIjAuMzMyNjk5LCAwLjQxMDQ5MSwgMC40ODQ5OTcsIDAuNTM4MTIxLCAwLjYyMzA5NywgMC42OTc0NTgsIDAuODAzNjg0IiwgXAotICAgICAgICAgICIwLjM0ODA5NiwgMC40MjU4OTUsIDAuNTAwNDE1LCAwLjU1MzUzLCAwLjYzODUwNiwgMC43MTI4NjgsIDAuODE5MDk0IiwgXAotICAgICAgICAgICIwLjM3MjQ3NiwgMC40NTAyNTMsIDAuNTI0NzUzLCAwLjU3Nzg3NCwgMC42NjI4NjIsIDAuNzM3MTk2LCAwLjg0MzQxNiIsIFwKLSAgICAgICAgICAiMC4zOTM4OTEsIDAuNDcxNjgxLCAwLjU0NjE5OCwgMC41OTkzMTgsIDAuNjg0Mjk3LCAwLjc1ODY3OCwgMC44NjQ4NzIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDI4NjIsIDAuMTg0NTIyLCAwLjMzMDYzLCAwLjQzNjI1NywgMC42MDUwMjUsIDAuNzUyNjMsIDAuOTY3NTAyIiwgXAotICAgICAgICAgICIwLjA0Mjg1LCAwLjE4NDUwNywgMC4zMzA4ODcsIDAuNDM2NCwgMC42MDcwMTksIDAuNzU1MzY4LCAwLjk2NzUyMyIsIFwKLSAgICAgICAgICAiMC4wNDI4MywgMC4xODQ1MTgsIDAuMzMwNzk1LCAwLjQzNjEzMiwgMC42MDcwNiwgMC43NTQyNSwgMC45Njc1MTUiLCBcCi0gICAgICAgICAgIjAuMDQyODI4LCAwLjE4NDUxOCwgMC4zMzA3NiwgMC40MzU5NTUsIDAuNjA2MzUxLCAwLjc1NDMwOCwgMC45Njc1MTUiLCBcCi0gICAgICAgICAgIjAuMDQyODQ0LCAwLjE4NDUxOSwgMC4zMzA5NDgsIDAuNDM2MDM1LCAwLjYwNjM3MSwgMC43NTQzNzUsIDAuOTY3NTE0IiwgXAotICAgICAgICAgICIwLjA0MjgzLCAwLjE4NDUyMywgMC4zMzExODYsIDAuNDM2Nzk1LCAwLjYwNTMzOCwgMC43NTM2NTIsIDAuOTY2NTIiLCBcCi0gICAgICAgICAgIjAuMDQyODUsIDAuMTg0NTIsIDAuMzMwODM5LCAwLjQzNjIxMiwgMC42MDU3MzQsIDAuNzU1NDE0LCAwLjk2NzUwMiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogY2xlYXI7Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY2MTEzLCAwLjE0MzY2LCAwLjIxODYyNCwgMC4yNzE3OTUsIDAuMzU2NjczLCAwLjQzMDkzOSwgMC41MzcwODIiLCBcCi0gICAgICAgICAgIjAuMDc3NzQyLCAwLjE1NTMxMiwgMC4yMzAyNzksIDAuMjgzNDUxLCAwLjM2ODM4NCwgMC40NDI2NDMsIDAuNTQ4NzQzIiwgXAotICAgICAgICAgICIwLjA5MjQ5OSwgMC4xNzAxMDIsIDAuMjQ1MDc5LCAwLjI5ODI1NSwgMC4zODMxNTIsIDAuNDU3NDEzLCAwLjU2MzU0MSIsIFwKLSAgICAgICAgICAiMC4xMDcxNjMsIDAuMTg0NzY1LCAwLjI1OTc2MywgMC4zMTI5NzEsIDAuMzk3OTM4LCAwLjQ3MjIwNSwgMC41NzgzMTUiLCBcCi0gICAgICAgICAgIjAuMTIxNjMxLCAwLjE5OTI5NCwgMC4yNzQyODcsIDAuMzI3NDY5LCAwLjQxMjQwMywgMC40ODY2NywgMC41OTI3ODUiLCBcCi0gICAgICAgICAgIjAuMTQzMDM0LCAwLjIyMDg1LCAwLjI5NTg0OCwgMC4zNDkwMzEsIDAuNDMzOTY4LCAwLjUwODI0LCAwLjYxNDM2MyIsIFwKLSAgICAgICAgICAiMC4xNjAwODYsIDAuMjM4MjY2LCAwLjMxMzI1LCAwLjM2NjQzMiwgMC40NTEzOSwgMC41MjU2NjMsIDAuNjMxNzkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDAwNDgsIDAuMTg0MTg0LCAwLjMzMDQ4NywgMC40MzU1MzYsIDAuNjA0ODE0LCAwLjc1MzE3OSwgMC45NjUyNTQiLCBcCi0gICAgICAgICAgIjAuMDQwMTE2LCAwLjE4NDE4NywgMC4zMzA0ODYsIDAuNDM1NTM4LCAwLjYwNDYxMSwgMC43NTM3MzYsIDAuOTY1MjU1IiwgXAotICAgICAgICAgICIwLjA0MDExMiwgMC4xODQxNTQsIDAuMzMwNDc1LCAwLjQzNTU2LCAwLjYwNDgxOCwgMC43NTMzMTksIDAuOTY1NTYiLCBcCi0gICAgICAgICAgIjAuMDQwMjE5LCAwLjE4NDE3NSwgMC4zMzA0NjIsIDAuNDM1NDg4LCAwLjYwNDc1LCAwLjc1MzkxMiwgMC45NjQ1NzMiLCBcCi0gICAgICAgICAgIjAuMDQwNTc1LCAwLjE4NDE1MywgMC4zMzA0NTMsIDAuNDM1NDczLCAwLjYwNDgyNCwgMC43NTMwODYsIDAuOTY1MjM4IiwgXAotICAgICAgICAgICIwLjA0MTk5NywgMC4xODQzOTYsIDAuMzMwNTQzLCAwLjQzNTQ5NCwgMC42MDQ4NjgsIDAuNzU0MDYxLCAwLjk2NTE2NCIsIFwKLSAgICAgICAgICAiMC4wNDM2NjUsIDAuMTg0ODUxLCAwLjMzMDY1MywgMC40MzU1NTUsIDAuNjA0ODk2LCAwLjc1MzI2NSwgMC45NjUyODkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTQwOTMsIDAuMDE0MzM5LCAwLjAxNDQwMiwgMC4wMTQ0MjYsIDAuMDE0NDQ0LCAwLjAxNDQ1MywgMC4wMTQ0NjMiLCBcCi0gICAgICAgICAgIjAuMDE0MDgyLCAwLjAxNDMyOSwgMC4wMTQzOTEsIDAuMDE0NDEzLCAwLjAxNDQzNCwgMC4wMTQ0NDMsIDAuMDE0NDUyIiwgXAotICAgICAgICAgICIwLjAxNDA3MSwgMC4wMTQzMTYsIDAuMDE0MzgxLCAwLjAxNDQwMiwgMC4wMTQ0MjIsIDAuMDE0NDMsIDAuMDE0NDM4IiwgXAotICAgICAgICAgICIwLjAxNDA2MSwgMC4wMTQzMDgsIDAuMDE0MzczLCAwLjAxNDM5MywgMC4wMTQ0MTQsIDAuMDE0NDIzLCAwLjAxNDQzMSIsIFwKLSAgICAgICAgICAiMC4wMTQwNTEsIDAuMDE0MzAyLCAwLjAxNDM2NywgMC4wMTQzODUsIDAuMDE0NDA1LCAwLjAxNDQxNSwgMC4wMTQ0MjQiLCBcCi0gICAgICAgICAgIjAuMDE0MDQyLCAwLjAxNDI4OSwgMC4wMTQzNTIsIDAuMDE0MzcyLCAwLjAxNDM5MiwgMC4wMTQ0MDMsIDAuMDE0NDEzIiwgXAotICAgICAgICAgICIwLjAxNDAzOCwgMC4wMTQyODQsIDAuMDE0MzQ2LCAwLjAxNDM3LCAwLjAxNDM4NywgMC4wMTQzOTcsIDAuMDE0NDA2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTM3NDIsIDAuMDE0MDc2LCAwLjAxNDE1MSwgMC4wMTQxNzYsIDAuMDE0MTk5LCAwLjAxNDIxLCAwLjAxNDIyMSIsIFwKLSAgICAgICAgICAiMC4wMTM3MzIsIDAuMDE0MDY3LCAwLjAxNDE0MywgMC4wMTQxNjcsIDAuMDE0MTkxLCAwLjAxNDIwMiwgMC4wMTQyMTMiLCBcCi0gICAgICAgICAgIjAuMDEzNzI4LCAwLjAxNDA2LCAwLjAxNDEzNCwgMC4wMTQxNTksIDAuMDE0MTgxLCAwLjAxNDE5MiwgMC4wMTQyMDMiLCBcCi0gICAgICAgICAgIjAuMDEzNzIsIDAuMDE0MDUyLCAwLjAxNDEyNiwgMC4wMTQxNSwgMC4wMTQxNzMsIDAuMDE0MTg0LCAwLjAxNDE5NCIsIFwKLSAgICAgICAgICAiMC4wMTM3MDgsIDAuMDE0MDQzLCAwLjAxNDExOSwgMC4wMTQxNDQsIDAuMDE0MTY2LCAwLjAxNDE3OCwgMC4wMTQxODkiLCBcCi0gICAgICAgICAgIjAuMDEzNzI0LCAwLjAxNDA1MiwgMC4wMTQxMjYsIDAuMDE0MTUsIDAuMDE0MTcxLCAwLjAxNDE4MywgMC4wMTQxOTMiLCBcCi0gICAgICAgICAgIjAuMDEzNzA5LCAwLjAxNDA0NCwgMC4wMTQxMTksIDAuMDE0MTQ0LCAwLjAxNDE2NywgMC4wMTQxNzksIDAuMDE0MTg5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUk4iOwotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE1OTQ3LCAwLjAxNjIxNywgMC4wMTYyNTUsIDAuMDE2MjY3LCAwLjAxNjI3NywgMC4wMTYyODMsIDAuMDE2Mjg4IiwgXAotICAgICAgICAgICIwLjAxNTg3MywgMC4wMTYxNTMsIDAuMDE2MTk1LCAwLjAxNjIwOCwgMC4wMTYyMiwgMC4wMTYyMjYsIDAuMDE2MjMxIiwgXAotICAgICAgICAgICIwLjAxNTc4NywgMC4wMTYwODEsIDAuMDE2MTM1LCAwLjAxNjE1MSwgMC4wMTYxNjYsIDAuMDE2MTc1LCAwLjAxNjE4MiIsIFwKLSAgICAgICAgICAiMC4wMTU3MDcsIDAuMDE2MDE3LCAwLjAxNjA4MSwgMC4wMTYxMDMsIDAuMDE2MTIyLCAwLjAxNjEzMywgMC4wMTYxNDIiLCBcCi0gICAgICAgICAgIjAuMDE1NjQ4LCAwLjAxNTk2NSwgMC4wMTYwMzksIDAuMDE2MDY1LCAwLjAxNjA4OCwgMC4wMTYxMDEsIDAuMDE2MTEyIiwgXAotICAgICAgICAgICIwLjAxNTU4LCAwLjAxNTg4NCwgMC4wMTU5NywgMC4wMTYsIDAuMDE2MDI5LCAwLjAxNjA0NSwgMC4wMTYwNiIsIFwKLSAgICAgICAgICAiMC4wMTU1MzgsIDAuMDE1ODQyLCAwLjAxNTkyNSwgMC4wMTU5NjUsIDAuMDE1OTk3LCAwLjAxNjAxNCwgMC4wMTYwMyIpOwotICAgICAgfQotICAgICAgcmlzZV9wb3dlcihzY2FsYXIpIHsKLSAgICAgICAgdmFsdWVzKCIwIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihSTikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAzMjkzODU7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAzMDA2NDM7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAzMjkzODU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxMTYxLCAwLjAwMTE2LCAwLjAwMTE2LCAwLjAwMTE1OSwgMC4wMDExNTksIDAuMDAxMTU5LCAwLjAwMTE1OSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTE5LCAwLjAwMTE2OSwgMC4wMDExNjYsIDAuMDAxMTY3LCAwLjAwMTE2NiwgMC4wMDExNjYsIDAuMDAxMTY2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRCYhU0UmIVNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9TRV9FUV8wX0FOX1NJX0VRXzAgPT0gMSdiMSI7Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4xOTExMjIsIDAuMjAyNjc5LCAwLjIxNjYxNywgMC4yMjk1NDIsIDAuMjQxOTYyLCAwLjI2MTE3LCAwLjI3NzY3MSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJlY292ZXJ5X3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUQmU0UmU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1NFX0VRXzFfQU5fU0lfRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChyZWNvdmVyeV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDc1LCAtMC4wODYyNSwgLTAuMDk4NzUsIC0wLjExNzUsIC0wLjEzLCAtMC4xNTg3NSwgLTAuMTgiLCBcCi0gICAgICAgICAgIi0wLjA4MjUsIC0wLjA5Mzc1LCAtMC4xMDYyNSwgLTAuMTI1LCAtMC4xMzc1LCAtMC4xNjYyNSwgLTAuMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDg4NzUsIC0wLjEsIC0wLjExMjUsIC0wLjEzMTI1LCAtMC4xNSwgLTAuMTcyNSwgLTAuMTkzNzUiLCBcCi0gICAgICAgICAgIi0wLjA4ODc1LCAtMC4xMDYyNSwgLTAuMTE4NzUsIC0wLjEzNzUsIC0wLjE1LCAtMC4xNzg3NSwgLTAuMiIsIFwKLSAgICAgICAgICAiLTAuMDk1LCAtMC4xMDYyNSwgLTAuMTE4NzUsIC0wLjEzNzUsIC0wLjE1NjI1LCAtMC4xNzg3NSwgLTAuMiIsIFwKLSAgICAgICAgICAiLTAuMDkxMjUsIC0wLjEwMjUsIC0wLjEyMTI1LCAtMC4xMzM3NSwgLTAuMTUyNSwgLTAuMTc1LCAtMC4xOTYyNSIsIFwKLSAgICAgICAgICAiLTAuMDgyNSwgLTAuMDkzNzUsIC0wLjExMjUsIC0wLjEyNSwgLTAuMTQzNzUsIC0wLjE2NjI1LCAtMC4xOTM3NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJlbW92YWxfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRCZTRSZTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fU0VfRVFfMV9BTl9TSV9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHJlbW92YWxfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTEyNSwgMC4xMjM3NSwgMC4xNDI1LCAwLjE1NSwgMC4xNzM3NSwgMC4xOTYyNSwgMC4yMTc1IiwgXAotICAgICAgICAgICIwLjEyLCAwLjEzMTI1LCAwLjE1LCAwLjE2MjUsIDAuMTgxMjUsIDAuMjAzNzUsIDAuMjI1IiwgXAotICAgICAgICAgICIwLjEzMjUsIDAuMTQzNzUsIDAuMTU2MjUsIDAuMTc1LCAwLjE4NzUsIDAuMjE2MjUsIDAuMjM3NSIsIFwKLSAgICAgICAgICAiMC4xNDUsIDAuMTU2MjUsIDAuMTY4NzUsIDAuMTg3NSwgMC4yLCAwLjIyMjUsIDAuMjQzNzUiLCBcCi0gICAgICAgICAgIjAuMTUxMjUsIDAuMTYyNSwgMC4xODEyNSwgMC4xOTM3NSwgMC4yMDYyNSwgMC4yMzUsIDAuMjU2MjUiLCBcCi0gICAgICAgICAgIjAuMTY2MjUsIDAuMTc3NSwgMC4xOSwgMC4yMDg3NSwgMC4yMjEyNSwgMC4yNSwgMC4yNjUiLCBcCi0gICAgICAgICAgIjAuMTc2MjUsIDAuMTg3NSwgMC4yMDYyNSwgMC4yMTg3NSwgMC4yMzEyNSwgMC4yNiwgMC4yODEyNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oU0UpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTUxMjc0OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTUxMjA2OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTUxMjc0OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNDYwNywgMC4wMDQ2MDUsIDAuMDA0NiwgMC4wMDQ1OTMsIDAuMDA0NTg5LCAwLjAwNDU4NCwgMC4wMDQ1ODEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDU3MDYsIDAuMDA1NjgxLCAwLjAwNTY2MiwgMC4wMDU2NSwgMC4wMDU2NDEsIDAuMDA1NjMyLCAwLjAwNTYyOSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJSTiI7Ci0gICAgICBzZGZfY29uZCA6ICJSTiA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMTI1LCAtMC4wMDEyNSwgMC4wMTEyNSwgMC4wMjM3NSwgMC4wNDI1LCAwLjA2NSwgMC4wODYyNSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAxMjUsIDAsIDAuMDEyNSwgMC4wMzEyNSwgMC4wNTM3NSwgMC4wNjg3NSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDMxMjUsIC0wLjAxODc1LCAwLCAwLjAxMjUsIDAuMDM1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA0Mzc1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIDAsIDAuMDIyNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDczNzUsIC0wLjA2MjUsIC0wLjA0Mzc1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIDAuMDAzNzUsIDAuMDI1IiwgXAotICAgICAgICAgICItMC4wOTYyNSwgLTAuMDg1LCAtMC4wNjYyNSwgLTAuMDUzNzUsIC0wLjA0MTI1LCAtMC4wMTI1LCAwLjAwMjUiLCBcCi0gICAgICAgICAgIi0wLjExMTI1LCAtMC4xLCAtMC4wODc1LCAtMC4wNjg3NSwgLTAuMDU2MjUsIC0wLjAzMzc1LCAtMC4wMTI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTg3NSwgMC4wMywgMC4wNDg3NSwgMC4wNjEyNSwgMC4wNzM3NSwgMC4wOTYyNSwgMC4xMTc1IiwgXAotICAgICAgICAgICIwLjAwNzUsIDAuMDI1LCAwLjAzNzUsIDAuMDUsIDAuMDY4NzUsIDAuMDkxMjUsIDAuMTEyNSIsIFwKLSAgICAgICAgICAiMC4wMDEyNSwgMC4wMTI1LCAwLjAyNSwgMC4wMzc1LCAwLjA1NjI1LCAwLjA3ODc1LCAwLjEiLCBcCi0gICAgICAgICAgIi0wLjAxMTI1LCAwLCAwLjAxMjUsIDAuMDI1LCAwLjA0Mzc1LCAwLjA2NjI1LCAwLjA4NzUiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTI1LCAwLCAwLjAxODc1LCAwLjAzMTI1LCAwLjA1Mzc1LCAwLjA3NSIsIFwKLSAgICAgICAgICAiLTAuMDQsIC0wLjAyODc1LCAtMC4wMTYyNSwgLTAuMDAzNzUsIDAuMDE1LCAwLjAzNzUsIDAuMDUyNSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjAzNzUsIC0wLjAyNSwgLTAuMDEyNSwgMCwgMC4wMjI1LCAwLjAzNzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlJOIjsKLSAgICAgIHNkZl9jb25kIDogIlJOID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE2MjUsIDAuMTUxMjUsIDAuMTMyNSwgMC4xMiwgMC4xMDc1LCAwLjA5MTI1LCAwLjA3NjI1IiwgXAotICAgICAgICAgICIwLjE3Mzc1LCAwLjE2MjUsIDAuMTQzNzUsIDAuMTMxMjUsIDAuMTE4NzUsIDAuMTAyNSwgMC4wODc1IiwgXAotICAgICAgICAgICIwLjE4NjI1LCAwLjE3NSwgMC4xNTYyNSwgMC4xNDM3NSwgMC4xMzEyNSwgMC4xMTUsIDAuMSIsIFwKLSAgICAgICAgICAiMC4xOTg3NSwgMC4xODc1LCAwLjE2ODc1LCAwLjE1NjI1LCAwLjE0Mzc1LCAwLjEyNzUsIDAuMTEyNSIsIFwKLSAgICAgICAgICAiMC4yMTEyNSwgMC4yLCAwLjE4NzUsIDAuMTY4NzUsIDAuMTU2MjUsIDAuMTQsIDAuMTI1IiwgXAotICAgICAgICAgICIwLjIzMzc1LCAwLjIyMjUsIDAuMjAzNzUsIDAuMTkxMjUsIDAuMTc4NzUsIDAuMTYyNSwgMC4xNDc1IiwgXAotICAgICAgICAgICIwLjI1NSwgMC4yNDM3NSwgMC4yMjUsIDAuMjEyNSwgMC4yLCAwLjE3NzUsIDAuMTYyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIsIDAuMTgyNSwgMC4xNywgMC4xNTc1LCAwLjE0NSwgMC4xMjI1LCAwLjEwNzUiLCBcCi0gICAgICAgICAgIjAuMjExMjUsIDAuMiwgMC4xODEyNSwgMC4xNjg3NSwgMC4xNTYyNSwgMC4xMzM3NSwgMC4xMjUiLCBcCi0gICAgICAgICAgIjAuMjIzNzUsIDAuMjEyNSwgMC4xOTM3NSwgMC4xODEyNSwgMC4xNjg3NSwgMC4xNTI1LCAwLjEzNzUiLCBcCi0gICAgICAgICAgIjAuMjQyNSwgMC4yMjUsIDAuMjEyNSwgMC4xOTM3NSwgMC4xODEyNSwgMC4xNjUsIDAuMTUiLCBcCi0gICAgICAgICAgIjAuMjU1LCAwLjIzNzUsIDAuMjI1LCAwLjIxMjUsIDAuMiwgMC4xNzc1LCAwLjE2MjUiLCBcCi0gICAgICAgICAgIjAuMjcxMjUsIDAuMjYsIDAuMjQxMjUsIDAuMjI4NzUsIDAuMjE2MjUsIDAuMiwgMC4xODUiLCBcCi0gICAgICAgICAgIjAuMjg2MjUsIDAuMjc1LCAwLjI1NjI1LCAwLjI0Mzc1LCAwLjIzMTI1LCAwLjIxNSwgMC4yIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTSSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwODg1NTYzOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDg4MTg2MzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA4ODU1NjM7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyOTQsIDAuMDAyOTIsIDAuMDAyOTEsIDAuMDAyOTA0LCAwLjAwMjg5OSwgMC4wMDI4OTIsIDAuMDAyODg5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA1MDIxLCAwLjAwNTAxMSwgMC4wMDUwMDYsIDAuMDA1MDAyLCAwLjAwNDk5OSwgMC4wMDQ5OTYsIDAuMDA0OTkzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlJOJlNFIjsKLSAgICAgIHNkZl9jb25kIDogIlJOX0VRXzFfQU5fU0VfRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4xLCAtMC4wODg3NSwgLTAuMDc2MjUsIC0wLjA2Mzc1LCAtMC4wNTEyNSwgLTAuMDM1LCAtMC4wMiIsIFwKLSAgICAgICAgICAiLTAuMTA1LCAtMC4xLCAtMC4wODc1LCAtMC4wNzUsIC0wLjA2MjUsIC0wLjA0NjI1LCAtMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMTIzNzUsIC0wLjExMjUsIC0wLjEsIC0wLjA4NzUsIC0wLjA3NSwgLTAuMDU4NzUsIC0wLjA0Mzc1IiwgXAotICAgICAgICAgICItMC4xMzYyNSwgLTAuMTI1LCAtMC4xMTI1LCAtMC4xLCAtMC4wODc1LCAtMC4wNzEyNSwgLTAuMDU2MjUiLCBcCi0gICAgICAgICAgIi0wLjE0ODc1LCAtMC4xMzc1LCAtMC4xMjUsIC0wLjExMjUsIC0wLjEsIC0wLjA4Mzc1LCAtMC4wNjg3NSIsIFwKLSAgICAgICAgICAiLTAuMTcxMjUsIC0wLjE2LCAtMC4xNDc1LCAtMC4xMzUsIC0wLjEyMjUsIC0wLjEwNjI1LCAtMC4wOTEyNSIsIFwKLSAgICAgICAgICAiLTAuMTg2MjUsIC0wLjE3NSwgLTAuMTYyNSwgLTAuMTUsIC0wLjE0Mzc1LCAtMC4xMjEyNSwgLTAuMTEyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2MjUsIDAuMDE3NSwgMC4wMzYyNSwgMC4wNDg3NSwgMC4wNjEyNSwgMC4wODM3NSwgMC4xMDUiLCBcCi0gICAgICAgICAgIi0wLjAwNSwgMC4wMDYyNSwgMC4wMjUsIDAuMDM3NSwgMC4wNSwgMC4wNzg3NSwgMC4wOTM3NSIsIFwKLSAgICAgICAgICAiLTAuMDE3NSwgLTAuMDA2MjUsIDAuMDEyNSwgMC4wMjUsIDAuMDM3NSwgMC4wNiwgMC4wODEyNSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAxMjUsIDAsIDAuMDEyNSwgMC4wMzEyNSwgMC4wNTM3NSwgMC4wNjg3NSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAyNSwgLTAuMDEyNSwgMCwgMC4wMTg3NSwgMC4wNDEyNSwgMC4wNjI1IiwgXAotICAgICAgICAgICItMC4wNTg3NSwgLTAuMDQxMjUsIC0wLjAyODc1LCAtMC4wMTYyNSwgMC4wMDI1LCAwLjAyNSwgMC4wNCIsIFwKLSAgICAgICAgICAiLTAuMDY3NSwgLTAuMDU2MjUsIC0wLjA0Mzc1LCAtMC4wMzEyNSwgLTAuMDEyNSwgMC4wMSwgMC4wMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlJOJlNFIjsKLSAgICAgIHNkZl9jb25kIDogIlJOX0VRXzFfQU5fU0VfRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNzUsIDAuMTYzNzUsIDAuMTQ1LCAwLjEzMjUsIDAuMTIsIDAuMTAzNzUsIDAuMDg4NzUiLCBcCi0gICAgICAgICAgIjAuMTg2MjUsIDAuMTc1LCAwLjE1NjI1LCAwLjE0Mzc1LCAwLjEzMTI1LCAwLjExNSwgMC4xIiwgXAotICAgICAgICAgICIwLjE5ODc1LCAwLjE4NzUsIDAuMTY4NzUsIDAuMTU2MjUsIDAuMTQzNzUsIDAuMTI3NSwgMC4xMTI1IiwgXAotICAgICAgICAgICIwLjIxMTI1LCAwLjIsIDAuMTg3NSwgMC4xNjg3NSwgMC4xNTYyNSwgMC4xNCwgMC4xMjUiLCBcCi0gICAgICAgICAgIjAuMjIzNzUsIDAuMjEyNSwgMC4yLCAwLjE4MTI1LCAwLjE2ODc1LCAwLjE1MjUsIDAuMTM3NSIsIFwKLSAgICAgICAgICAiMC4yNDYyNSwgMC4yMzUsIDAuMjIyNSwgMC4yMDM3NSwgMC4xOTEyNSwgMC4xNzUsIDAuMTYiLCBcCi0gICAgICAgICAgIjAuMjY3NSwgMC4yNTYyNSwgMC4yMzc1LCAwLjIyNSwgMC4yMTI1LCAwLjE5LCAwLjE4MTI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg3NSwgMC4wNzYyNSwgMC4wNTc1LCAwLjA0NSwgMC4wMjYyNSwgMC4wMDM3NSwgLTAuMDE3NSIsIFwKLSAgICAgICAgICAiMC4wOTg3NSwgMC4wODc1LCAwLjA2ODc1LCAwLjA1NjI1LCAwLjAzNzUsIDAuMDE1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiMC4xMTEyNSwgMC4xLCAwLjA4MTI1LCAwLjA2ODc1LCAwLjA1LCAwLjAyNzUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMTIzNzUsIDAuMTEyNSwgMC4wOTM3NSwgMC4wODEyNSwgMC4wNjI1LCAwLjA0LCAwLjAxODc1IiwgXAotICAgICAgICAgICIwLjEzNjI1LCAwLjEyNSwgMC4xMDYyNSwgMC4wOTM3NSwgMC4wNzUsIDAuMDUyNSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4xNTI1LCAwLjE0MTI1LCAwLjEyODc1LCAwLjExLCAwLjA5NzUsIDAuMDY4NzUsIDAuMDQ3NSIsIFwKLSAgICAgICAgICAiMC4xNzM3NSwgMC4xNjI1LCAwLjE0Mzc1LCAwLjEyNSwgMC4xMTI1LCAwLjA5LCAwLjA2ODc1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogU0RGRlJYNCAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChTREZGUlg0KSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuNjEwNTk5OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIGZmIChOMzAsUUJJTlQpIHsKLSAgICBuZXh0X3N0YXRlIDogIigoU0UgU0kpICsgKCFTRSBEKSkiOwotICAgIGNsb2NrZWRfb24gOiAiQ0siOwotICAgIGNsZWFyIDogIighUk4pIjsKLSAgfQotICBwaW4oQ0spICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYzMjY5ODsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MzI0Mzg7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjMyNjk4OwotICAgIGNsb2NrIDogdHJ1ZTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDIwNTEsIDAuMDAyMDM3LCAwLjAwMjAyOCwgMC4wMDIwMiwgMC4wMDIwMTYsIDAuMDAyMDA5LCAwLjAwMjAwNiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNTMxNywgMC4wMDUzMDgsIDAuMDA1Mjk5LCAwLjAwNTI5MywgMC4wMDUyOTEsIDAuMDA1MjkzLCAwLjAwNTI5MyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQmUk4mIVNFJiFTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fUk5fRVFfMV9BTl9TRV9FUV8wX0FOX1NJX0VRXzAgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4zMzI5MjEsIDAuMzQ0NDE0LCAwLjM1OTcyMywgMC4zNzUxNzgsIDAuMzkwNjA5LCAwLjQxNDkxMywgMC40MzU5MzciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjE5OTkxNSwgMC4yMTE0MzcsIDAuMjI2MjMsIDAuMjQxMjEsIDAuMjU1Nzc0LCAwLjI3ODc5NSwgMC4yOTc3ODIiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEQpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY1OTI5NzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2NTc3OTE7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjU5Mjk3OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjQ1NiwgMC4wMDI0NDcsIDAuMDAyNDQyLCAwLjAwMjQzOSwgMC4wMDI0MzYsIDAuMDAyNDM0LCAwLjAwMjQzMSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzg0MSwgMC4wMDM4MzUsIDAuMDAzODMzLCAwLjAwMzgzMSwgMC4wMDM4MywgMC4wMDM4MjksIDAuMDAzODI3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlJOJiFTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJSTl9FUV8xX0FOX1NFX0VRXzAgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMTM3NSwgLTAuMTI2MjUsIC0wLjExMzc1LCAtMC4xMDc1LCAtMC4wOTUsIC0wLjA4NSwgLTAuMDciLCBcCi0gICAgICAgICAgIi0wLjE0ODc1LCAtMC4xMzc1LCAtMC4xMzEyNSwgLTAuMTE4NzUsIC0wLjEwNjI1LCAtMC4wOTYyNSwgLTAuMDgxMjUiLCBcCi0gICAgICAgICAgIi0wLjE2MTI1LCAtMC4xNTYyNSwgLTAuMTQzNzUsIC0wLjEzMTI1LCAtMC4xMjUsIC0wLjEwODc1LCAtMC4xIiwgXAotICAgICAgICAgICItMC4xNzM3NSwgLTAuMTY4NzUsIC0wLjE1NjI1LCAtMC4xNDM3NSwgLTAuMTM3NSwgLTAuMTIxMjUsIC0wLjExMjUiLCBcCi0gICAgICAgICAgIi0wLjE5MjUsIC0wLjE4MTI1LCAtMC4xNjg3NSwgLTAuMTU2MjUsIC0wLjE1LCAtMC4xMzM3NSwgLTAuMTI1IiwgXAotICAgICAgICAgICItMC4yMDg3NSwgLTAuMjAzNzUsIC0wLjE5MTI1LCAtMC4xNzg3NSwgLTAuMTcyNSwgLTAuMTU2MjUsIC0wLjE0NzUiLCBcCi0gICAgICAgICAgIi0wLjIzLCAtMC4yMjUsIC0wLjIxMjUsIC0wLjIsIC0wLjE5Mzc1LCAtMC4xNzc1LCAtMC4xNjI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDE4NzUsIC0wLjAwMTI1LCAwLjAxMTI1LCAwLjAyMzc1LCAwLjAzNjI1LCAwLjA1MjUsIDAuMDczNzUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMTI1LCAwLCAwLjAxMjUsIDAuMDI1LCAwLjA0MTI1LCAwLjA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAyNSwgLTAuMDEyNSwgMCwgMC4wMTI1LCAwLjAyODc1LCAwLjA1IiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjAzNzUsIC0wLjAyNSwgLTAuMDEyNSwgMCwgMC4wMTYyNSwgMC4wMzc1IiwgXAotICAgICAgICAgICItMC4wNjEyNSwgLTAuMDUsIC0wLjAzNzUsIC0wLjAyNSwgLTAuMDEyNSwgMC4wMSwgMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjA3NzUsIC0wLjA2NjI1LCAtMC4wNTM3NSwgLTAuMDQxMjUsIC0wLjAyODc1LCAtMC4wMTI1LCAwLjAwODc1IiwgXAotICAgICAgICAgICItMC4wOTI1LCAtMC4wODEyNSwgLTAuMDY4NzUsIC0wLjA1NjI1LCAtMC4wNDM3NSwgLTAuMDI3NSwgLTAuMDA2MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlJOJiFTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJSTl9FUV8xX0FOX1NFX0VRXzAgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjUsIDAuMjMyNSwgMC4yMiwgMC4yMDc1LCAwLjE4ODc1LCAwLjE3MjUsIDAuMTU3NSIsIFwKLSAgICAgICAgICAiMC4yNjEyNSwgMC4yNDM3NSwgMC4yMzEyNSwgMC4yMTg3NSwgMC4yLCAwLjE4Mzc1LCAwLjE2ODc1IiwgXAotICAgICAgICAgICIwLjI3Mzc1LCAwLjI2MjUsIDAuMjQzNzUsIDAuMjMxMjUsIDAuMjE4NzUsIDAuMTk2MjUsIDAuMTgxMjUiLCBcCi0gICAgICAgICAgIjAuMjg2MjUsIDAuMjc1LCAwLjI1NjI1LCAwLjI0Mzc1LCAwLjIzMTI1LCAwLjIwODc1LCAwLjIiLCBcCi0gICAgICAgICAgIjAuMjk4NzUsIDAuMjg3NSwgMC4yNjg3NSwgMC4yNTYyNSwgMC4yNDM3NSwgMC4yMjEyNSwgMC4yMTI1IiwgXAotICAgICAgICAgICIwLjMyMTI1LCAwLjMxLCAwLjI5MTI1LCAwLjI3ODc1LCAwLjI2NjI1LCAwLjI0Mzc1LCAwLjIzNSIsIFwKLSAgICAgICAgICAiMC4zNDI1LCAwLjMzMTI1LCAwLjMxMjUsIDAuMywgMC4yODc1LCAwLjI2NSwgMC4yNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE1NjI1LCAwLjE0NSwgMC4xMjYyNSwgMC4xMTM3NSwgMC4wOTUsIDAuMDcyNSwgMC4wNTEyNSIsIFwKLSAgICAgICAgICAiMC4xNjc1LCAwLjE1NjI1LCAwLjEzNzUsIDAuMTI1LCAwLjEwNjI1LCAwLjA4Mzc1LCAwLjA2MjUiLCBcCi0gICAgICAgICAgIjAuMTgsIDAuMTY4NzUsIDAuMTUsIDAuMTM3NSwgMC4xMTg3NSwgMC4wOTYyNSwgMC4wNzUiLCBcCi0gICAgICAgICAgIjAuMTkyNSwgMC4xODEyNSwgMC4xNjI1LCAwLjE1LCAwLjEzMTI1LCAwLjEwODc1LCAwLjA4NzUiLCBcCi0gICAgICAgICAgIjAuMjA1LCAwLjE5Mzc1LCAwLjE3NSwgMC4xNjI1LCAwLjE0Mzc1LCAwLjEyMTI1LCAwLjEiLCBcCi0gICAgICAgICAgIjAuMjI3NSwgMC4yMSwgMC4xOTc1LCAwLjE3ODc1LCAwLjE2NjI1LCAwLjEzNzUsIDAuMTE2MjUiLCBcCi0gICAgICAgICAgIjAuMjQyNSwgMC4yMzEyNSwgMC4yMTI1LCAwLjIsIDAuMTgxMjUsIDAuMTU4NzUsIDAuMTM3NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjUyNzY3MzsKLSAgICBmdW5jdGlvbiA6ICJOMzAiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5vbl91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcmlzaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzEzOTQ3LCAwLjQ1MjAyNSwgMC41NzkxODMsIDAuNjcwODc4LCAwLjgxNTg5NSwgMC45NDI1NDYsIDEuMTI1NDQiLCBcCi0gICAgICAgICAgIjAuMzI1NTMyLCAwLjQ2MzU0MSwgMC41OTA3NzMsIDAuNjgyNDM2LCAwLjgyNzY5MywgMC45NTM0MzIsIDEuMTM1OTUiLCBcCi0gICAgICAgICAgIjAuMzQwODgyLCAwLjQ3ODg1OSwgMC42MDYxNDYsIDAuNjk3ODE5LCAwLjg0MzA2MiwgMC45Njg3MSwgMS4xNTEzIiwgXAotICAgICAgICAgICIwLjM1NjQwMiwgMC40OTQ0NjcsIDAuNjIxNjUyLCAwLjcxMzMzNCwgMC44NTgzMywgMC45ODUwNjQsIDEuMTY3MzIiLCBcCi0gICAgICAgICAgIjAuMzcxNjkyLCAwLjUwOTYzNSwgMC42MzY5MjcsIDAuNzI4NTkyLCAwLjg3Mzg1OCwgMC45OTk1NTIsIDEuMTgyMDQiLCBcCi0gICAgICAgICAgIjAuMzk1OTcsIDAuNTMzOTIzLCAwLjY2MTIwNSwgMC43NTI4NjgsIDAuODk4MTQ2LCAxLjAyMzg1LCAxLjIwNjMyIiwgXAotICAgICAgICAgICIwLjQxNjYwNCwgMC41NTQ1NzksIDAuNjgxODUxLCAwLjc3MzUxNywgMC45MTg4MTEsIDEuMDQ0NDksIDEuMjI2OTciKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzUwMDksIDAuMzIxNTc2LCAwLjU3ODA5NSwgMC43NjMwMDQsIDEuMDU0MiwgMS4zMjA3NSwgMS42ODU1IiwgXAotICAgICAgICAgICIwLjA3NDc1NiwgMC4zMjE2NTksIDAuNTc3OTc0LCAwLjc2MTUxMywgMS4wNTQzMSwgMS4zMTk3MiwgMS42NzQ0NyIsIFwKLSAgICAgICAgICAiMC4wNzUwNzcsIDAuMzE5NDgsIDAuNTc3OTk4LCAwLjc2MTc1NywgMS4wNTI3NiwgMS4zMTk0LCAxLjY3NDE5IiwgXAotICAgICAgICAgICIwLjA3NDU2MiwgMC4zMjA0OCwgMC41NzgwMywgMC43NjI3NjQsIDEuMDU0MjQsIDEuMzE0ODEsIDEuNjg2MTMiLCBcCi0gICAgICAgICAgIjAuMDc0NjM0LCAwLjMxOTQ0OCwgMC41Nzc5NjgsIDAuNzYxNiwgMS4wNTI3NSwgMS4zMTkwMiwgMS42NzQ2MyIsIFwKLSAgICAgICAgICAiMC4wNzQ1NTQsIDAuMzE5NDUzLCAwLjU3Nzk2MiwgMC43NjE1MDEsIDEuMDUyOTksIDEuMzE4OSwgMS42NzQ1NiIsIFwKLSAgICAgICAgICAiMC4wNzQ5NDUsIDAuMzIxNjU5LCAwLjU3Nzk1MywgMC43NjE0NDcsIDEuMDUzNDksIDEuMzE4OTksIDEuNjc0NDQiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yODI5ODUsIDAuNDMyMzU3LCAwLjU3ODQwNCwgMC42ODI1OTgsIDAuODUwOTAyLCAwLjk5NjA2NSwgMS4yMDQ5MiIsIFwKLSAgICAgICAgICAiMC4yOTQ1MzIsIDAuNDQzOTE1LCAwLjU4OTk0NiwgMC42OTQxNSwgMC44NjI0OTgsIDEuMDA3NTMsIDEuMjE2MzIiLCBcCi0gICAgICAgICAgIjAuMzA5ODA2LCAwLjQ1OTIwOSwgMC42MDUyNjQsIDAuNzA5NzMzLCAwLjg3Nzc1NiwgMS4wMjI1NiwgMS4yMzE0OSIsIFwKLSAgICAgICAgICAiMC4zMjUyNiwgMC40NzQ1OTUsIDAuNjIwNzU1LCAwLjcyNTE2NSwgMC44OTMyMTEsIDEuMDM4NzIsIDEuMjQ2NTkiLCBcCi0gICAgICAgICAgIjAuMzQwNjk1LCAwLjQ5MDA2NywgMC42MzYxMzksIDAuNzQwMzY0LCAwLjkwNzQyMSwgMS4wNTMzOSwgMS4yNjE5OSIsIFwKLSAgICAgICAgICAiMC4zNjQ5OTUsIDAuNTE0MzUzLCAwLjY2MDUxNCwgMC43NjQ5MDEsIDAuOTMyOTQ2LCAxLjA3ODQ4LCAxLjI4NjMzIiwgXAotICAgICAgICAgICIwLjM4NjAxOSwgMC41MzUyNjcsIDAuNjgxNDc5LCAwLjc4NTkzMiwgMC45NTM5NywgMS4wOTg5LCAxLjMwNzg2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY1MTA2LCAwLjM0NjkwOCwgMC42MzcwNDQsIDAuODQ0MzYzLCAxLjE3NzgyLCAxLjQ2ODE0LCAxLjg4MjQ5IiwgXAotICAgICAgICAgICIwLjA2NTA3MSwgMC4zNDY5OTEsIDAuNjM2OTk1LCAwLjg0MzY3NSwgMS4xNzc4MiwgMS40NjgzMiwgMS44ODMzNCIsIFwKLSAgICAgICAgICAiMC4wNjQ5NjksIDAuMzQ2ODcxLCAwLjYzNzAyLCAwLjg0NTIzNywgMS4xNzc4MSwgMS40NjQ4OCwgMS44ODQ1MiIsIFwKLSAgICAgICAgICAiMC4wNjQ5NSwgMC4zNDcwMDgsIDAuNjM3MDgzLCAwLjg0NTA1MywgMS4xNzc4MSwgMS40Njg0OSwgMS44ODIzNCIsIFwKLSAgICAgICAgICAiMC4wNjQ5OTcsIDAuMzQ3NjM0LCAwLjYzNzAwOCwgMC44NDM4ODYsIDEuMTc2MzgsIDEuNDY3NzEsIDEuODgzNjMiLCBcCi0gICAgICAgICAgIjAuMDY0OTUxLCAwLjM0NzA3NiwgMC42MzcxMjUsIDAuODQ1MDYsIDEuMTc3ODEsIDEuNDY4MzMsIDEuODgzMjIiLCBcCi0gICAgICAgICAgIjAuMDY0OTYxLCAwLjM0NzU3NCwgMC42MzcwMjIsIDAuODQ1MTI1LCAxLjE3NzgxLCAxLjQ2ODE5LCAxLjg4MjgzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiBjbGVhcjsKLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODg5NjMsIDAuMjM4NjUyLCAwLjM4NDYyNSwgMC40ODg4NTYsIDAuNjU2MTE2LCAwLjgwMTc1NSwgMS4wMTI4IiwgXAotICAgICAgICAgICIwLjEwMDUwNSwgMC4yNTAyMTksIDAuMzk2MTg4LCAwLjUwMDU2MiwgMC42Njc2NTgsIDAuODE0Nzg1LCAxLjAyNDQzIiwgXAotICAgICAgICAgICIwLjExNTI1NiwgMC4yNjQ5OTIsIDAuNDEwOTk1LCAwLjUxNTM2OSwgMC42ODI5MzQsIDAuODI5Njg5LCAxLjAzOTI0IiwgXAotICAgICAgICAgICIwLjEyOTkwMywgMC4yNzk2NTQsIDAuNDI1NjYzLCAwLjUzMDAyOCwgMC42OTcxMSwgMC44NDQzODYsIDEuMDUzOTEiLCBcCi0gICAgICAgICAgIjAuMTQ0NTE2LCAwLjI5NDI0MSwgMC40NDAzMzcsIDAuNTQ0Njk2LCAwLjcxMTc4OCwgMC44NTc0NzUsIDEuMDY4NDUiLCBcCi0gICAgICAgICAgIjAuMTY3MzkyLCAwLjMxNzEwNywgMC40NjMzMzQsIDAuNTY3NTM3LCAwLjczNTI4OCwgMC44ODIxMTEsIDEuMDkxMzQiLCBcCi0gICAgICAgICAgIjAuMTg1OTM2LCAwLjMzNTc2MywgMC40ODE5ODcsIDAuNTg2MzEsIDAuNzUzODQ4LCAwLjkwMDU4MiwgMS4xMTAwNyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2MzEsIDAuMzQ2ODIzLCAwLjYzNjMxMSwgMC44NDQxODIsIDEuMTc2MjMsIDEuNDY4NzcsIDEuODgyNzIiLCBcCi0gICAgICAgICAgIjAuMDYzMjgsIDAuMzQ2ODA3LCAwLjYzNjA4MiwgMC44NDQxMTksIDEuMTc1MzEsIDEuNDY3MTUsIDEuODgyNDkiLCBcCi0gICAgICAgICAgIjAuMDYzMzk1LCAwLjM0NjgwOSwgMC42MzY1NzgsIDAuODQ0NTksIDEuMTc2NjcsIDEuNDY5NCwgMS44ODI1NSIsIFwKLSAgICAgICAgICAiMC4wNjM0MDIsIDAuMzQ2ODEyLCAwLjYzNjMxOCwgMC44NDQ1OTUsIDEuMTc1NDgsIDEuNDY1NzYsIDEuODgyOCIsIFwKLSAgICAgICAgICAiMC4wNjM1OTIsIDAuMzQ2OTAzLCAwLjYzNjQ4MywgMC44NDQ1ODUsIDEuMTc1NjksIDEuNDY5MjgsIDEuODgwNzEiLCBcCi0gICAgICAgICAgIjAuMDY0MjY5LCAwLjM0Njg0MiwgMC42MzYyMTIsIDAuODQzNjg4LCAxLjE3NzAxLCAxLjQ2NzIyLCAxLjg4MjYzIiwgXAotICAgICAgICAgICIwLjA2NTMyOCwgMC4zNDY5MzUsIDAuNjM2NDU3LCAwLjg0NDE1LCAxLjE3NjYsIDEuNDY2MTIsIDEuODgyOTgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDY1NzIsIDAuMDA2NzAzLCAwLjAwNjcyMywgMC4wMDY3MywgMC4wMDY3MzUsIDAuMDA2NzM3LCAwLjAwNjczOSIsIFwKLSAgICAgICAgICAiMC4wMDY1NjQsIDAuMDA2Njk2LCAwLjAwNjcxNiwgMC4wMDY3MjIsIDAuMDA2NzI3LCAwLjAwNjczLCAwLjAwNjczMiIsIFwKLSAgICAgICAgICAiMC4wMDY1NTgsIDAuMDA2NjksIDAuMDA2NzEsIDAuMDA2NzE2LCAwLjAwNjcyMSwgMC4wMDY3MjMsIDAuMDA2NzI2IiwgXAotICAgICAgICAgICIwLjAwNjU1NSwgMC4wMDY2ODYsIDAuMDA2NzA2LCAwLjAwNjcxMiwgMC4wMDY3MTcsIDAuMDA2NzIsIDAuMDA2NzIyIiwgXAotICAgICAgICAgICIwLjAwNjU1MSwgMC4wMDY2ODIsIDAuMDA2NzAyLCAwLjAwNjcwOCwgMC4wMDY3MTMsIDAuMDA2NzE2LCAwLjAwNjcxOCIsIFwKLSAgICAgICAgICAiMC4wMDY1NDUsIDAuMDA2Njc3LCAwLjAwNjY5NywgMC4wMDY3MDMsIDAuMDA2NzA4LCAwLjAwNjcxMSwgMC4wMDY3MTMiLCBcCi0gICAgICAgICAgIjAuMDA2NTQ0LCAwLjAwNjY3NSwgMC4wMDY2OTUsIDAuMDA2NzAyLCAwLjAwNjcwNiwgMC4wMDY3MDgsIDAuMDA2NzExIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDY1MzUsIDAuMDA2NjUsIDAuMDA2NjY1LCAwLjAwNjY2OSwgMC4wMDY2NzIsIDAuMDA2Njc0LCAwLjAwNjY3NSIsIFwKLSAgICAgICAgICAiMC4wMDY1MjQsIDAuMDA2NjQyLCAwLjAwNjY1NywgMC4wMDY2NjEsIDAuMDA2NjY1LCAwLjAwNjY2NywgMC4wMDY2NjgiLCBcCi0gICAgICAgICAgIjAuMDA2NTE5LCAwLjAwNjYzNywgMC4wMDY2NTMsIDAuMDA2NjU2LCAwLjAwNjY2MSwgMC4wMDY2NjMsIDAuMDA2NjY1IiwgXAotICAgICAgICAgICIwLjAwNjUxNSwgMC4wMDY2MzMsIDAuMDA2NjQ4LCAwLjAwNjY1MiwgMC4wMDY2NTcsIDAuMDA2NjU5LCAwLjAwNjY2IiwgXAotICAgICAgICAgICIwLjAwNjUxNCwgMC4wMDY2MzEsIDAuMDA2NjQ2LCAwLjAwNjY1MSwgMC4wMDY2NTQsIDAuMDA2NjU3LCAwLjAwNjY1OCIsIFwKLSAgICAgICAgICAiMC4wMDY1MTIsIDAuMDA2NjMxLCAwLjAwNjY0NSwgMC4wMDY2NDksIDAuMDA2NjU0LCAwLjAwNjY1NiwgMC4wMDY2NTciLCBcCi0gICAgICAgICAgIjAuMDA2NTE0LCAwLjAwNjYzMiwgMC4wMDY2NDcsIDAuMDA2NjUxLCAwLjAwNjY1NiwgMC4wMDY2NTcsIDAuMDA2NjU5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUk4iOwotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA3MTg1LCAwLjAwNzI4MywgMC4wMDcyOTMsIDAuMDA3Mjk3LCAwLjAwNzI5OSwgMC4wMDczMDEsIDAuMDA3MzAyIiwgXAotICAgICAgICAgICIwLjAwNzE2NywgMC4wMDcyNjcsIDAuMDA3MjgsIDAuMDA3MjgxLCAwLjAwNzI4NiwgMC4wMDcyODUsIDAuMDA3Mjg3IiwgXAotICAgICAgICAgICIwLjAwNzE0NiwgMC4wMDcyNTEsIDAuMDA3MjY0LCAwLjAwNzI2OSwgMC4wMDcyNzIsIDAuMDA3Mjc0LCAwLjAwNzI3NCIsIFwKLSAgICAgICAgICAiMC4wMDcxMjQsIDAuMDA3MjM0LCAwLjAwNzI0OCwgMC4wMDcyNTMsIDAuMDA3MjU3LCAwLjAwNzI1OSwgMC4wMDcyNjEiLCBcCi0gICAgICAgICAgIjAuMDA3MTA2LCAwLjAwNzIyMSwgMC4wMDcyMzgsIDAuMDA3MjQ0LCAwLjAwNzI0OSwgMC4wMDcyNSwgMC4wMDcyNTIiLCBcCi0gICAgICAgICAgIjAuMDA3MDgyLCAwLjAwNzIwMiwgMC4wMDcyMjIsIDAuMDA3MjI3LCAwLjAwNzIzNCwgMC4wMDcyMzUsIDAuMDA3MjM3IiwgXAotICAgICAgICAgICIwLjAwNzA2OCwgMC4wMDcxODksIDAuMDA3MjEsIDAuMDA3MjE3LCAwLjAwNzIyNCwgMC4wMDcyMjYsIDAuMDA3MjI5Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3Bvd2VyKHNjYWxhcikgewotICAgICAgICB2YWx1ZXMoIjAiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFFOKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuNTI3OTg2OwotICAgIGZ1bmN0aW9uIDogIlFCSU5UIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBub25fdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJpc2luZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMzMjkyMSwgMC40NTk4ODgsIDAuNTg2NjcsIDAuNjc3MzUyLCAwLjgyMjI4MywgMC45NDkyMjksIDEuMTMwNDciLCBcCi0gICAgICAgICAgIjAuMzQ0NDUyLCAwLjQ3MTQzMSwgMC41OTgyMDQsIDAuNjg4ODgxLCAwLjgzMzg3NiwgMC45NjA3NywgMS4xNDIwMSIsIFwKLSAgICAgICAgICAiMC4zNTk3MjMsIDAuNDg2NzI1LCAwLjYxMzUyNywgMC43MDQxNTcsIDAuODQ5MTI0LCAwLjk3NTgxLCAxLjE1NzMyIiwgXAotICAgICAgICAgICIwLjM3NTE3OCwgMC41MDIxOTEsIDAuNjI4OTk1LCAwLjcxOTU4MywgMC44NjQ1NzYsIDAuOTkxMjkyLCAxLjE3Mjg0IiwgXAotICAgICAgICAgICIwLjM5MDYwOSwgMC41MTc2MjgsIDAuNjQ0Mzg1LCAwLjczNTA5NiwgMC44ODAwNzUsIDEuMDA2OTksIDEuMTg4MjIiLCBcCi0gICAgICAgICAgIjAuNDE0OTE0LCAwLjU0MTkyOSwgMC42Njg3NDEsIDAuNzU5MzE5LCAwLjkwNDMxMSwgMS4wMzEwMywgMS4yMTI1OCIsIFwKLSAgICAgICAgICAiMC40MzU5MzcsIDAuNTYyOTU5LCAwLjY4OTc0LCAwLjc4MDM1MiwgMC45MjUzMzcsIDEuMDUyMDMsIDEuMjMzNTQiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTgwNzYsIDAuMzA4ODk2LCAwLjU2NzQ2OSwgMC43NDk5MTYsIDEuMDQ3NTQsIDEuMzAzNzIsIDEuNjcyNDciLCBcCi0gICAgICAgICAgIjAuMDU4MDc0LCAwLjMwODg4MywgMC41Njc0MTQsIDAuNzUwMDAyLCAxLjA0NzczLCAxLjMwMzc1LCAxLjY3MjM0IiwgXAotICAgICAgICAgICIwLjA1ODAyMiwgMC4zMDg4ODMsIDAuNTY3NDMsIDAuNzUyMTM5LCAxLjA0NzQ4LCAxLjMwMDc3LCAxLjY3MjM1IiwgXAotICAgICAgICAgICIwLjA1ODAyOSwgMC4zMDg5NDUsIDAuNTY3NTA2LCAwLjc1MjAzMSwgMS4wNDc0OCwgMS4zMDUzNywgMS42NzA5MiIsIFwKLSAgICAgICAgICAiMC4wNTgwNDcsIDAuMzA5NTg5LCAwLjU2NzQyOCwgMC43NTAzMzMsIDEuMDQ0OTMsIDEuMzAzMTcsIDEuNjcxNjYiLCBcCi0gICAgICAgICAgIjAuMDU4MDM3LCAwLjMwODk0OCwgMC41Njc1NTYsIDAuNzUyMDM0LCAxLjA0NzQ4LCAxLjMwNTM3LCAxLjY3MDkxIiwgXAotICAgICAgICAgICIwLjA1ODAzMSwgMC4zMDk1MTcsIDAuNTY3NDMyLCAwLjc1MjA3MSwgMS4wNDc0OCwgMS4zMDE2NCwgMS42NzIzOCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjM3MTAzMywgMC41MTU5MTEsIDAuNjYxODQyLCAwLjc2NjIyLCAwLjkzMzIyNywgMS4wNzkzMiwgMS4yODgxMyIsIFwKLSAgICAgICAgICAiMC4zODI2NDMsIDAuNTI3NDg5LCAwLjY3MzQzMiwgMC43Nzc4LCAwLjk0NDgyOCwgMS4wOTA5MywgMS4yOTk3MiIsIFwKLSAgICAgICAgICAiMC4zOTgwMDUsIDAuNTQyODQ1LCAwLjY4ODc4OSwgMC43OTMxNTksIDAuOTYwMTg2LCAxLjEwNjI5LCAxLjMxNTA4IiwgXAotICAgICAgICAgICIwLjQxMzU1LCAwLjU1ODM2MSwgMC43MDQyOTcsIDAuODA4NjcsIDAuOTc1Njc4LCAxLjEyMTc4LCAxLjMzMDYxIiwgXAotICAgICAgICAgICIwLjQyODc3MiwgMC41NzM2NDIsIDAuNzE5NTg2LCAwLjgyMzk1NSwgMC45OTA5ODQsIDEuMTM3MDksIDEuMzQ1ODciLCBcCi0gICAgICAgICAgIjAuNDUzMDY0LCAwLjU5NzkyLCAwLjc0Mzg2NCwgMC44NDgyMzIsIDEuMDE1MjYsIDEuMTYxMzcsIDEuMzcwMTUiLCBcCi0gICAgICAgICAgIjAuNDczNzExLCAwLjYxODU2MiwgMC43NjQ1MSwgMC44Njg4NzgsIDEuMDM1OTEsIDEuMTgyMDEsIDEuMzkwNzkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjMzMjIsIDAuMzQ3MTQ3LCAwLjYzNzIxNiwgMC44NDQ2NjQsIDEuMTc3NTksIDEuNDY4MzUsIDEuODgyNzMiLCBcCi0gICAgICAgICAgIjAuMDYzMjQ2LCAwLjM0NzE3MiwgMC42MzcyLCAwLjg0NDMyNywgMS4xNzc1LCAxLjQ2Nzg1LCAxLjg4MjcxIiwgXAotICAgICAgICAgICIwLjA2MzI1OSwgMC4zNDcxNDIsIDAuNjM3MTk5LCAwLjg0NDM2NCwgMS4xNzY0NCwgMS40Njc4MywgMS44ODI3IiwgXAotICAgICAgICAgICIwLjA2MzI5MiwgMC4zNDY5ODUsIDAuNjM3MjAxLCAwLjg0NDU2NiwgMS4xNzc1MSwgMS40NjgyOCwgMS44ODQwNyIsIFwKLSAgICAgICAgICAiMC4wNjMyMjMsIDAuMzQ3MTQyLCAwLjYzNzE5NiwgMC44NDQzNCwgMS4xNzY0NCwgMS40Njc4MiwgMS44ODI3IiwgXAotICAgICAgICAgICIwLjA2MzI2MywgMC4zNDcxNDIsIDAuNjM3MTk2LCAwLjg0NDMyNSwgMS4xNzY0NSwgMS40Njc4MSwgMS44ODI3IiwgXAotICAgICAgICAgICIwLjA2MzI2MSwgMC4zNDcxMzgsIDAuNjM3MTI0LCAwLjg0NDMxNywgMS4xNzY0NywgMS40Njc4MiwgMS44ODI2MyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcHJlc2V0OwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEzODcyLCAwLjI2NTg4OSwgMC4zOTI2MzEsIDAuNDgzMjE2LCAwLjYyODE5NywgMC43NTUxNjgsIDAuOTM2MzU0IiwgXAotICAgICAgICAgICIwLjE1MDI2MywgMC4yNzc0MjcsIDAuNDA0MTcyLCAwLjQ5NDc2LCAwLjYzOTc0NCwgMC43NjY2MzksIDAuOTQ3ODc1IiwgXAotICAgICAgICAgICIwLjE2NTA2NCwgMC4yOTIyMDYsIDAuNDE4OTQsIDAuNTA5NTI4LCAwLjY1NDUxMiwgMC43ODE0NzQsIDAuOTYyNjQyIiwgXAotICAgICAgICAgICIwLjE3OTc1NywgMC4zMDY4MzUsIDAuNDMzNTc2LCAwLjUyNDE2NCwgMC42NjkxNDgsIDAuNzk2MDk1LCAwLjk3NzI5MiIsIFwKLSAgICAgICAgICAiMC4xOTQyOTIsIDAuMzIxNDExLCAwLjQ0ODE1MSwgMC41Mzg3NTgsIDAuNjgzNzIzLCAwLjgxMDY5MSwgMC45OTE5MTgiLCBcCi0gICAgICAgICAgIjAuMjE3MTI4LCAwLjM0NDI0MiwgMC40NzA5OTUsIDAuNTYxNTc4LCAwLjcwNjU1NywgMC44MzM0NDMsIDEuMDE0NzgiLCBcCi0gICAgICAgICAgIjAuMjM1ODc5LCAwLjM2MjkzOSwgMC40ODk2OTYsIDAuNTgwMjgzLCAwLjcyNTI0NiwgMC44NTIxNDQsIDEuMDMzNDUiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTgwNDEsIDAuMzA4NDc4LCAwLjU2NjI5OCwgMC43NTA0ODQsIDEuMDQ1NTgsIDEuMzAyNTYsIDEuNjc0MDQiLCBcCi0gICAgICAgICAgIjAuMDU4MDQyLCAwLjMwODQ3NiwgMC41NjY0MjQsIDAuNzUwMzg0LCAxLjA0NTU4LCAxLjMwNDUyLCAxLjY3NDI3IiwgXAotICAgICAgICAgICIwLjA1ODA2MywgMC4zMDg1MjUsIDAuNTY2NDIzLCAwLjc1MTA0MSwgMS4wNDYxMSwgMS4zMDQ0MywgMS42NzQyOCIsIFwKLSAgICAgICAgICAiMC4wNTgwOTUsIDAuMzA4NDUyLCAwLjU2NjI3NywgMC43NTEwNDMsIDEuMDQ1NjYsIDEuMzA0NDcsIDEuNjc0MyIsIFwKLSAgICAgICAgICAiMC4wNTgwNjEsIDAuMzA4NDgxLCAwLjU2NjQ4OSwgMC43NTEwMDgsIDEuMDQ1NiwgMS4zMDI5NywgMS42NzM2OCIsIFwKLSAgICAgICAgICAiMC4wNTgwNTYsIDAuMzA4NTA0LCAwLjU2NjMwMywgMC43NTAzNzgsIDEuMDQ2MzUsIDEuMzA0NjMsIDEuNjczNTkiLCBcCi0gICAgICAgICAgIjAuMDU4MDQ0LCAwLjMwODU2MiwgMC41NjY1MzUsIDAuNzUwNDg0LCAxLjA0NjM4LCAxLjMwNDk1LCAxLjY3MzYzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2NTM1LCAwLjAwNjY1LCAwLjAwNjY2NSwgMC4wMDY2NjksIDAuMDA2NjcyLCAwLjAwNjY3NCwgMC4wMDY2NzUiLCBcCi0gICAgICAgICAgIjAuMDA2NTI0LCAwLjAwNjY0MiwgMC4wMDY2NTcsIDAuMDA2NjYxLCAwLjAwNjY2NSwgMC4wMDY2NjcsIDAuMDA2NjY4IiwgXAotICAgICAgICAgICIwLjAwNjUxOSwgMC4wMDY2MzcsIDAuMDA2NjUzLCAwLjAwNjY1NiwgMC4wMDY2NjEsIDAuMDA2NjYzLCAwLjAwNjY2NSIsIFwKLSAgICAgICAgICAiMC4wMDY1MTUsIDAuMDA2NjMzLCAwLjAwNjY0OCwgMC4wMDY2NTIsIDAuMDA2NjU3LCAwLjAwNjY1OSwgMC4wMDY2NiIsIFwKLSAgICAgICAgICAiMC4wMDY1MTQsIDAuMDA2NjMxLCAwLjAwNjY0NiwgMC4wMDY2NTEsIDAuMDA2NjU0LCAwLjAwNjY1NywgMC4wMDY2NTgiLCBcCi0gICAgICAgICAgIjAuMDA2NTEyLCAwLjAwNjYzMSwgMC4wMDY2NDUsIDAuMDA2NjQ5LCAwLjAwNjY1NCwgMC4wMDY2NTYsIDAuMDA2NjU3IiwgXAotICAgICAgICAgICIwLjAwNjUxNCwgMC4wMDY2MzIsIDAuMDA2NjQ3LCAwLjAwNjY1MSwgMC4wMDY2NTYsIDAuMDA2NjU3LCAwLjAwNjY1OSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2NTcyLCAwLjAwNjcwMywgMC4wMDY3MjMsIDAuMDA2NzMsIDAuMDA2NzM1LCAwLjAwNjczNywgMC4wMDY3MzkiLCBcCi0gICAgICAgICAgIjAuMDA2NTY0LCAwLjAwNjY5NiwgMC4wMDY3MTYsIDAuMDA2NzIyLCAwLjAwNjcyNywgMC4wMDY3MywgMC4wMDY3MzIiLCBcCi0gICAgICAgICAgIjAuMDA2NTU4LCAwLjAwNjY5LCAwLjAwNjcxLCAwLjAwNjcxNiwgMC4wMDY3MjEsIDAuMDA2NzIzLCAwLjAwNjcyNiIsIFwKLSAgICAgICAgICAiMC4wMDY1NTUsIDAuMDA2Njg2LCAwLjAwNjcwNiwgMC4wMDY3MTIsIDAuMDA2NzE3LCAwLjAwNjcyLCAwLjAwNjcyMiIsIFwKLSAgICAgICAgICAiMC4wMDY1NTEsIDAuMDA2NjgyLCAwLjAwNjcwMiwgMC4wMDY3MDgsIDAuMDA2NzEzLCAwLjAwNjcxNiwgMC4wMDY3MTgiLCBcCi0gICAgICAgICAgIjAuMDA2NTQ1LCAwLjAwNjY3NywgMC4wMDY2OTcsIDAuMDA2NzAzLCAwLjAwNjcwOCwgMC4wMDY3MTEsIDAuMDA2NzEzIiwgXAotICAgICAgICAgICIwLjAwNjU0NCwgMC4wMDY2NzUsIDAuMDA2Njk1LCAwLjAwNjcwMiwgMC4wMDY3MDYsIDAuMDA2NzA4LCAwLjAwNjcxMSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNzE4NSwgMC4wMDcyODMsIDAuMDA3MjkzLCAwLjAwNzI5NywgMC4wMDcyOTksIDAuMDA3MzAxLCAwLjAwNzMwMiIsIFwKLSAgICAgICAgICAiMC4wMDcxNjcsIDAuMDA3MjY3LCAwLjAwNzI4LCAwLjAwNzI4MSwgMC4wMDcyODYsIDAuMDA3Mjg1LCAwLjAwNzI4NyIsIFwKLSAgICAgICAgICAiMC4wMDcxNDYsIDAuMDA3MjUxLCAwLjAwNzI2NCwgMC4wMDcyNjksIDAuMDA3MjcyLCAwLjAwNzI3NCwgMC4wMDcyNzQiLCBcCi0gICAgICAgICAgIjAuMDA3MTI0LCAwLjAwNzIzNCwgMC4wMDcyNDgsIDAuMDA3MjUzLCAwLjAwNzI1NywgMC4wMDcyNTksIDAuMDA3MjYxIiwgXAotICAgICAgICAgICIwLjAwNzEwNiwgMC4wMDcyMjEsIDAuMDA3MjM4LCAwLjAwNzI0NCwgMC4wMDcyNDksIDAuMDA3MjUsIDAuMDA3MjUyIiwgXAotICAgICAgICAgICIwLjAwNzA4MiwgMC4wMDcyMDIsIDAuMDA3MjIyLCAwLjAwNzIyNywgMC4wMDcyMzQsIDAuMDA3MjM1LCAwLjAwNzIzNyIsIFwKLSAgICAgICAgICAiMC4wMDcwNjgsIDAuMDA3MTg5LCAwLjAwNzIxLCAwLjAwNzIxNywgMC4wMDcyMjQsIDAuMDA3MjI2LCAwLjAwNzIyOSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihzY2FsYXIpIHsKLSAgICAgICAgdmFsdWVzKCIwIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihSTikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAyMjAzMjE7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAyMDQ0NDM7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAyMjAzMjE7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNjUsIDAuMDAwNjQ5LCAwLjAwMDY1LCAwLjAwMDY0OSwgMC4wMDA2NDksIDAuMDAwNjQ5LCAwLjAwMDY0OSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDY1OSwgMC4wMDA2NTQsIDAuMDAwNjUzLCAwLjAwMDY1MywgMC4wMDA2NTMsIDAuMDAwNjUyLCAwLjAwMDY1MiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQmIVNFJiFTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fU0VfRVFfMF9BTl9TSV9FUV8wID09IDEnYjEiOwotICAgICAgZmFsbF9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMTk2OTQ0LCAwLjIwODYwNSwgMC4yMjI4MzksIDAuMjM2MTc5LCAwLjI0ODkzOSwgMC4yNjkwNzcsIDAuMjg1ODAxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogcmVjb3ZlcnlfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRCZTRSZTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fU0VfRVFfMV9BTl9TSV9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHJlY292ZXJ5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wNjI1LCAtMC4wOCwgLTAuMDkyNSwgLTAuMTExMjUsIC0wLjEyMzc1LCAtMC4xNTI1LCAtMC4xNjc1IiwgXAotICAgICAgICAgICItMC4wNywgLTAuMDg3NSwgLTAuMSwgLTAuMTE4NzUsIC0wLjEzMTI1LCAtMC4xNiwgLTAuMTc1IiwgXAotICAgICAgICAgICItMC4wNzYyNSwgLTAuMDkzNzUsIC0wLjEwNjI1LCAtMC4xMjUsIC0wLjEzNzUsIC0wLjE2NjI1LCAtMC4xODEyNSIsIFwKLSAgICAgICAgICAiLTAuMDgyNSwgLTAuMDkzNzUsIC0wLjExMjUsIC0wLjEyNSwgLTAuMTQzNzUsIC0wLjE2NjI1LCAtMC4xODc1IiwgXAotICAgICAgICAgICItMC4wODI1LCAtMC4wOTM3NSwgLTAuMTEyNSwgLTAuMTI1LCAtMC4xNDM3NSwgLTAuMTY2MjUsIC0wLjE4NzUiLCBcCi0gICAgICAgICAgIi0wLjA3MjUsIC0wLjA5LCAtMC4xMDI1LCAtMC4xMjEyNSwgLTAuMTMzNzUsIC0wLjE2MjUsIC0wLjE4Mzc1IiwgXAotICAgICAgICAgICItMC4wNjM3NSwgLTAuMDc1LCAtMC4wODc1LCAtMC4xMDYyNSwgLTAuMTI1LCAtMC4xNDc1LCAtMC4xNjg3NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJlbW92YWxfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRCZTRSZTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fU0VfRVFfMV9BTl9TSV9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHJlbW92YWxfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTA2MjUsIDAuMTE3NSwgMC4xMzYyNSwgMC4xNDg3NSwgMC4xNjEyNSwgMC4xOSwgMC4yMTEyNSIsIFwKLSAgICAgICAgICAiMC4xMTM3NSwgMC4xMjUsIDAuMTQzNzUsIDAuMTU2MjUsIDAuMTY4NzUsIDAuMTk3NSwgMC4yMTg3NSIsIFwKLSAgICAgICAgICAiMC4xMjYyNSwgMC4xMzc1LCAwLjE1LCAwLjE2ODc1LCAwLjE4MTI1LCAwLjIwMzc1LCAwLjIyNSIsIFwKLSAgICAgICAgICAiMC4xMzI1LCAwLjE0Mzc1LCAwLjE2MjUsIDAuMTc1LCAwLjE5Mzc1LCAwLjIxNjI1LCAwLjIzNzUiLCBcCi0gICAgICAgICAgIjAuMTQ1LCAwLjE1NjI1LCAwLjE2ODc1LCAwLjE4NzUsIDAuMiwgMC4yMjI1LCAwLjI0Mzc1IiwgXAotICAgICAgICAgICIwLjE1Mzc1LCAwLjE2NSwgMC4xODM3NSwgMC4xOTYyNSwgMC4yMTUsIDAuMjM3NSwgMC4yNTg3NSIsIFwKLSAgICAgICAgICAiMC4xNywgMC4xODEyNSwgMC4xOTM3NSwgMC4yMTI1LCAwLjIyNSwgMC4yNDc1LCAwLjI2ODc1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTRSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNTM0NjY7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNTM0MTk7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNTM0NjY7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzNjYyLCAwLjAwMzY1MSwgMC4wMDM2NDYsIDAuMDAzNjQzLCAwLjAwMzY0MywgMC4wMDM2NCwgMC4wMDM2NDEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDQ3NDcsIDAuMDA0NzMsIDAuMDA0NzE5LCAwLjAwNDcxMiwgMC4wMDQ3MDYsIDAuMDA0NywgMC4wMDQ2OTkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiUk4iOwotICAgICAgc2RmX2NvbmQgOiAiUk4gPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDMxMjUsIC0wLjAyLCAtMC4wMDc1LCAwLjAwNSwgMC4wMTc1LCAwLjA0LCAwLjA1NSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAuMDA2MjUsIDAuMDIyNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDYxMjUsIC0wLjA1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAxMjUsIDAuMDEsIDAuMDI1IiwgXAotICAgICAgICAgICItMC4wNzM3NSwgLTAuMDYyNSwgLTAuMDUsIC0wLjAzNzUsIC0wLjAyNSwgLTAuMDAyNSwgMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wOTI1LCAtMC4wODEyNSwgLTAuMDYyNSwgLTAuMDUsIC0wLjAzNzUsIC0wLjAyMTI1LCAwIiwgXAotICAgICAgICAgICItMC4xMDg3NSwgLTAuMDk3NSwgLTAuMDg1LCAtMC4wNzI1LCAtMC4wNiwgLTAuMDM3NSwgLTAuMDIyNSIsIFwKLSAgICAgICAgICAiLTAuMTIzNzUsIC0wLjExMjUsIC0wLjEsIC0wLjA4NzUsIC0wLjA3NSwgLTAuMDU4NzUsIC0wLjAzNzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMDYyNSwgMC4wMDUsIDAuMDE3NSwgMC4wMzYyNSwgMC4wNDg3NSwgMC4wNjUsIDAuMDg2MjUiLCBcCi0gICAgICAgICAgIi0wLjAxNzUsIC0wLjAwNjI1LCAwLjAxMjUsIDAuMDI1LCAwLjAzNzUsIDAuMDUzNzUsIDAuMDc1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDE4NzUsIDAsIDAuMDEyNSwgMC4wMjUsIDAuMDQxMjUsIDAuMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAyNSwgLTAuMDEyNSwgMCwgMC4wMTI1LCAwLjAyODc1LCAwLjA1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDM3NSwgLTAuMDI1LCAtMC4wMTI1LCAwLCAwLjAyMjUsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDU4NzUsIC0wLjA0NzUsIC0wLjAzNSwgLTAuMDIyNSwgLTAuMDE2MjUsIDAuMDA2MjUsIDAuMDIxMjUiLCBcCi0gICAgICAgICAgIi0wLjA3Mzc1LCAtMC4wNjI1LCAtMC4wNSwgLTAuMDM3NSwgLTAuMDI1LCAtMC4wMDg3NSwgMC4wMDYyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiUk4iOwotICAgICAgc2RmX2NvbmQgOiAiUk4gPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjMxMjUsIDAuMjIsIDAuMjAxMjUsIDAuMTg4NzUsIDAuMTc2MjUsIDAuMTYsIDAuMTQ1IiwgXAotICAgICAgICAgICIwLjI0MjUsIDAuMjMxMjUsIDAuMjEyNSwgMC4yLCAwLjE4NzUsIDAuMTY1LCAwLjE1NjI1IiwgXAotICAgICAgICAgICIwLjI1NSwgMC4yNDM3NSwgMC4yMzEyNSwgMC4yMTI1LCAwLjIsIDAuMTgzNzUsIDAuMTY4NzUiLCBcCi0gICAgICAgICAgIjAuMjczNzUsIDAuMjU2MjUsIDAuMjQzNzUsIDAuMjMxMjUsIDAuMjEyNSwgMC4xOTYyNSwgMC4xODEyNSIsIFwKLSAgICAgICAgICAiMC4yODYyNSwgMC4yNzUsIDAuMjU2MjUsIDAuMjQzNzUsIDAuMjI1LCAwLjIwODc1LCAwLjE5Mzc1IiwgXAotICAgICAgICAgICIwLjMwODc1LCAwLjI5MTI1LCAwLjI3ODc1LCAwLjI2NjI1LCAwLjI0NzUsIDAuMjMxMjUsIDAuMjE2MjUiLCBcCi0gICAgICAgICAgIjAuMzIzNzUsIDAuMzEyNSwgMC4zLCAwLjI4MTI1LCAwLjI2ODc1LCAwLjI1MjUsIDAuMjM3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI2MjUsIDAuMjUxMjUsIDAuMjMyNSwgMC4yMiwgMC4yMDEyNSwgMC4xODUsIDAuMTciLCBcCi0gICAgICAgICAgIjAuMjczNzUsIDAuMjYyNSwgMC4yNDM3NSwgMC4yMzEyNSwgMC4yMTg3NSwgMC4xOTYyNSwgMC4xODEyNSIsIFwKLSAgICAgICAgICAiMC4yODYyNSwgMC4yNzUsIDAuMjU2MjUsIDAuMjQzNzUsIDAuMjMxMjUsIDAuMjA4NzUsIDAuMiIsIFwKLSAgICAgICAgICAiMC4yOTg3NSwgMC4yODc1LCAwLjI3NSwgMC4yNTYyNSwgMC4yNDM3NSwgMC4yMjc1LCAwLjIxMjUiLCBcCi0gICAgICAgICAgIjAuMzExMjUsIDAuMywgMC4yODc1LCAwLjI2ODc1LCAwLjI1NjI1LCAwLjI0LCAwLjIyNSIsIFwKLSAgICAgICAgICAiMC4zMzM3NSwgMC4zMTYyNSwgMC4zMDM3NSwgMC4yOTEyNSwgMC4yNzI1LCAwLjI1NjI1LCAwLjI0MTI1IiwgXAotICAgICAgICAgICIwLjM0MjUsIDAuMzMxMjUsIDAuMzE4NzUsIDAuMywgMC4yODc1LCAwLjI3MTI1LCAwLjI1NjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTSSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjE4NjgzOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYxNjc0NjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2MTg2ODM7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyMzc0LCAwLjAwMjM2NCwgMC4wMDIzNTksIDAuMDAyMzU2LCAwLjAwMjM1NCwgMC4wMDIzNTEsIDAuMDAyMzQ4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzOTA5LCAwLjAwMzkwNCwgMC4wMDM5MDIsIDAuMDAzOSwgMC4wMDM4OTksIDAuMDAzODk3LCAwLjAwMzg5NiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJSTiZTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJSTl9FUV8xX0FOX1NFX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMTM3NSwgLTAuMTI2MjUsIC0wLjExMzc1LCAtMC4xMDc1LCAtMC4wOTUsIC0wLjA4NSwgLTAuMDciLCBcCi0gICAgICAgICAgIi0wLjE0ODc1LCAtMC4xMzc1LCAtMC4xMjUsIC0wLjExODc1LCAtMC4xMDYyNSwgLTAuMDk2MjUsIC0wLjA4MTI1IiwgXAotICAgICAgICAgICItMC4xNjEyNSwgLTAuMTUsIC0wLjE0Mzc1LCAtMC4xMzEyNSwgLTAuMTI1LCAtMC4xMDg3NSwgLTAuMDkzNzUiLCBcCi0gICAgICAgICAgIi0wLjE3Mzc1LCAtMC4xNjg3NSwgLTAuMTU2MjUsIC0wLjE0Mzc1LCAtMC4xMzc1LCAtMC4xMjEyNSwgLTAuMTEyNSIsIFwKLSAgICAgICAgICAiLTAuMTg2MjUsIC0wLjE4MTI1LCAtMC4xNjg3NSwgLTAuMTU2MjUsIC0wLjE1LCAtMC4xMzM3NSwgLTAuMTI1IiwgXAotICAgICAgICAgICItMC4yMDg3NSwgLTAuMjAzNzUsIC0wLjE5MTI1LCAtMC4xNzg3NSwgLTAuMTcyNSwgLTAuMTU2MjUsIC0wLjE0NzUiLCBcCi0gICAgICAgICAgIi0wLjIzLCAtMC4yMTg3NSwgLTAuMjEyNSwgLTAuMiwgLTAuMTg3NSwgLTAuMTc3NSwgLTAuMTYyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAxODc1LCAtMC4wMDEyNSwgMC4wMTEyNSwgMC4wMjM3NSwgMC4wMzYyNSwgMC4wNTI1LCAwLjA3Mzc1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDE4NzUsIDAsIDAuMDEyNSwgMC4wMjUsIDAuMDQxMjUsIDAuMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDMxMjUsIC0wLjAxMjUsIDAsIDAuMDEyNSwgMC4wMjg3NSwgMC4wNSIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNDM3NSwgLTAuMDI1LCAtMC4wMTI1LCAwLCAwLjAxNjI1LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjA2MTI1LCAtMC4wNSwgLTAuMDM3NSwgLTAuMDI1LCAtMC4wMTI1LCAwLjAwMzc1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDc3NSwgLTAuMDY2MjUsIC0wLjA1Mzc1LCAtMC4wNDEyNSwgLTAuMDI4NzUsIC0wLjAxMjUsIDAuMDA4NzUiLCBcCi0gICAgICAgICAgIi0wLjA5MjUsIC0wLjA4MTI1LCAtMC4wNjg3NSwgLTAuMDU2MjUsIC0wLjA0Mzc1LCAtMC4wMjc1LCAtMC4wMDYyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiUk4mU0UiOwotICAgICAgc2RmX2NvbmQgOiAiUk5fRVFfMV9BTl9TRV9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI0Mzc1LCAwLjIzMjUsIDAuMjIsIDAuMjAxMjUsIDAuMTg4NzUsIDAuMTcyNSwgMC4xNTc1IiwgXAotICAgICAgICAgICIwLjI1NSwgMC4yNDM3NSwgMC4yMzEyNSwgMC4yMTI1LCAwLjIsIDAuMTgzNzUsIDAuMTY4NzUiLCBcCi0gICAgICAgICAgIjAuMjczNzUsIDAuMjU2MjUsIDAuMjQzNzUsIDAuMjMxMjUsIDAuMjEyNSwgMC4xOTYyNSwgMC4xODEyNSIsIFwKLSAgICAgICAgICAiMC4yODYyNSwgMC4yNzUsIDAuMjU2MjUsIDAuMjQzNzUsIDAuMjI1LCAwLjIwODc1LCAwLjE5Mzc1IiwgXAotICAgICAgICAgICIwLjI5ODc1LCAwLjI4NzUsIDAuMjY4NzUsIDAuMjU2MjUsIDAuMjQzNzUsIDAuMjIxMjUsIDAuMjA2MjUiLCBcCi0gICAgICAgICAgIjAuMzIxMjUsIDAuMzEsIDAuMjkxMjUsIDAuMjc4NzUsIDAuMjY2MjUsIDAuMjQzNzUsIDAuMjI4NzUiLCBcCi0gICAgICAgICAgIjAuMzQyNSwgMC4zMjUsIDAuMzEyNSwgMC4zLCAwLjI4MTI1LCAwLjI2NSwgMC4yNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE1NjI1LCAwLjE0NSwgMC4xMjYyNSwgMC4xMTM3NSwgMC4wOTUsIDAuMDcyNSwgMC4wNTEyNSIsIFwKLSAgICAgICAgICAiMC4xNjc1LCAwLjE1NjI1LCAwLjEzNzUsIDAuMTI1LCAwLjEwNjI1LCAwLjA4Mzc1LCAwLjA2MjUiLCBcCi0gICAgICAgICAgIjAuMTgsIDAuMTY4NzUsIDAuMTUsIDAuMTM3NSwgMC4xMTg3NSwgMC4wOTYyNSwgMC4wNzUiLCBcCi0gICAgICAgICAgIjAuMTkyNSwgMC4xODEyNSwgMC4xNjI1LCAwLjE1LCAwLjEzMTI1LCAwLjEwODc1LCAwLjA4NzUiLCBcCi0gICAgICAgICAgIjAuMjA1LCAwLjE5Mzc1LCAwLjE3NSwgMC4xNjI1LCAwLjE0Mzc1LCAwLjEyMTI1LCAwLjEiLCBcCi0gICAgICAgICAgIjAuMjI3NSwgMC4yMTYyNSwgMC4xOTc1LCAwLjE3ODc1LCAwLjE2NjI1LCAwLjEzNzUsIDAuMTE2MjUiLCBcCi0gICAgICAgICAgIjAuMjQyNSwgMC4yMzEyNSwgMC4yMTI1LCAwLjIsIDAuMTgxMjUsIDAuMTU4NzUsIDAuMTM3NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogU0RGRlNIUVgyICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoU0RGRlNIUVgyKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMzk0OTM2OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIGZmIChOMzAsUUJJTlQpIHsKLSAgICBuZXh0X3N0YXRlIDogIigoU0UgU0kpICsgKCFTRSBEKSkiOwotICAgIGNsb2NrZWRfb24gOiAiQ0siOwotICAgIHByZXNldCA6ICIoIVNOKSI7Ci0gIH0KLSAgcGluKENLKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA1ODQzMjI7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNTg0MDI2OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDU4NDMyMjsKLSAgICBjbG9jayA6IHRydWU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyNTgyLCAwLjAwMjU3MiwgMC4wMDI1NjIsIDAuMDAyNTU2LCAwLjAwMjU1MSwgMC4wMDI1NDUsIDAuMDAyNTQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDY0NTYsIDAuMDA2NDQ4LCAwLjAwNjQ0LCAwLjAwNjQzNCwgMC4wMDY0MzIsIDAuMDA2NDM0LCAwLjAwNjQzOCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQmIVNFJiFTSSZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fU0VfRVFfMF9BTl9TSV9FUV8wX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4zMDUxMTYsIDAuMzE2ODQ2LCAwLjMzMjE1MywgMC4zNDc2MDksIDAuMzYzMDg3LCAwLjM4NzI5OSwgMC40MDg4NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMjMwOTYxLCAwLjI0MjI5NywgMC4yNTcyMDQsIDAuMjcyMTA2LCAwLjI4NzAyLCAwLjMxMDM2MywgMC4zMzA0NiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwODk2Mjg5OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDg5MjU1NzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA4OTYyODk7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzNTQzLCAwLjAwMzUyNCwgMC4wMDM1MTUsIDAuMDAzNTA4LCAwLjAwMzUwMywgMC4wMDM0OTYsIDAuMDAzNDkxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA1MDA3LCAwLjAwNDk5NywgMC4wMDQ5OTIsIDAuMDA0OTg4LCAwLjAwNDk4NSwgMC4wMDQ5ODIsIDAuMDA0OTc5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFTRSZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJTRV9FUV8wX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMTA2MjUsIC0wLjA5NSwgLTAuMDgyNSwgLTAuMDcsIC0wLjA1NzUsIC0wLjA0MTI1LCAtMC4wMjYyNSIsIFwKLSAgICAgICAgICAiLTAuMTE3NSwgLTAuMTA2MjUsIC0wLjA5Mzc1LCAtMC4wODEyNSwgLTAuMDY4NzUsIC0wLjA1MjUsIC0wLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjEzLCAtMC4xMTg3NSwgLTAuMTA2MjUsIC0wLjA5Mzc1LCAtMC4wODEyNSwgLTAuMDY1LCAtMC4wNSIsIFwKLSAgICAgICAgICAiLTAuMTQyNSwgLTAuMTMxMjUsIC0wLjExODc1LCAtMC4xMDYyNSwgLTAuMDkzNzUsIC0wLjA3NzUsIC0wLjA2MjUiLCBcCi0gICAgICAgICAgIi0wLjE1NSwgLTAuMTQzNzUsIC0wLjEzMTI1LCAtMC4xMTg3NSwgLTAuMTA2MjUsIC0wLjA5LCAtMC4wNzUiLCBcCi0gICAgICAgICAgIi0wLjE3NzUsIC0wLjE2NjI1LCAtMC4xNTM3NSwgLTAuMTQxMjUsIC0wLjEyODc1LCAtMC4xMTI1LCAtMC4wOTc1IiwgXAotICAgICAgICAgICItMC4xOTI1LCAtMC4xODEyNSwgLTAuMTY4NzUsIC0wLjE1NjI1LCAtMC4xNSwgLTAuMTI3NSwgLTAuMTE4NzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLCAwLjAxMTI1LCAwLjAyMzc1LCAwLjA0MjUsIDAuMDU1LCAwLjA3NzUsIDAuMDk4NzUiLCBcCi0gICAgICAgICAgIi0wLjAxMTI1LCAwLCAwLjAxMjUsIDAuMDMxMjUsIDAuMDQzNzUsIDAuMDY2MjUsIDAuMDg3NSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxMjUsIDAsIDAuMDE4NzUsIDAuMDMxMjUsIDAuMDUzNzUsIDAuMDc1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDI1LCAtMC4wMTI1LCAwLjAwNjI1LCAwLjAxODc1LCAwLjA0MTI1LCAwLjA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wMzc1LCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAuMDA2MjUsIDAuMDI4NzUsIDAuMDUiLCBcCi0gICAgICAgICAgIi0wLjA2NSwgLTAuMDUzNzUsIC0wLjA0MTI1LCAtMC4wMjg3NSwgLTAuMDEsIDAuMDEyNSwgMC4wMjc1IiwgXAotICAgICAgICAgICItMC4wOCwgLTAuMDY4NzUsIC0wLjA1NjI1LCAtMC4wNDM3NSwgLTAuMDI1LCAtMC4wMDI1LCAwLjAxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFTRSZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJTRV9FUV8wX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTY4NzUsIDAuMTU3NSwgMC4xNDUsIDAuMTI2MjUsIDAuMTEzNzUsIDAuMDk3NSwgMC4wODI1IiwgXAotICAgICAgICAgICIwLjE4LCAwLjE2ODc1LCAwLjE1LCAwLjEzNzUsIDAuMTI1LCAwLjEwODc1LCAwLjA5Mzc1IiwgXAotICAgICAgICAgICIwLjE5MjUsIDAuMTgxMjUsIDAuMTY4NzUsIDAuMTUsIDAuMTM3NSwgMC4xMjEyNSwgMC4xMDYyNSIsIFwKLSAgICAgICAgICAiMC4yMDUsIDAuMTkzNzUsIDAuMTgxMjUsIDAuMTYyNSwgMC4xNSwgMC4xMzM3NSwgMC4xMTg3NSIsIFwKLSAgICAgICAgICAiMC4yMjM3NSwgMC4yMDYyNSwgMC4xOTM3NSwgMC4xODEyNSwgMC4xNjg3NSwgMC4xNDYyNSwgMC4xMzEyNSIsIFwKLSAgICAgICAgICAiMC4yNCwgMC4yMjg3NSwgMC4yMTYyNSwgMC4xOTc1LCAwLjE4NSwgMC4xNjg3NSwgMC4xNTM3NSIsIFwKLSAgICAgICAgICAiMC4yNjEyNSwgMC4yNSwgMC4yMzEyNSwgMC4yMTg3NSwgMC4yMDYyNSwgMC4xOSwgMC4xNzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMzc1LCAwLjEyNjI1LCAwLjEwNzUsIDAuMDg4NzUsIDAuMDc2MjUsIDAuMDQ3NSwgMC4wMjYyNSIsIFwKLSAgICAgICAgICAiMC4xNDg3NSwgMC4xMzc1LCAwLjExODc1LCAwLjEsIDAuMDg3NSwgMC4wNTg3NSwgMC4wMzc1IiwgXAotICAgICAgICAgICIwLjE2MTI1LCAwLjE1LCAwLjEzMTI1LCAwLjExODc1LCAwLjEsIDAuMDcxMjUsIDAuMDUiLCBcCi0gICAgICAgICAgIjAuMTczNzUsIDAuMTYyNSwgMC4xNDM3NSwgMC4xMzEyNSwgMC4xMTI1LCAwLjA4Mzc1LCAwLjA2MjUiLCBcCi0gICAgICAgICAgIjAuMTg2MjUsIDAuMTc1LCAwLjE1NjI1LCAwLjE0Mzc1LCAwLjEyNSwgMC4wOTYyNSwgMC4wNzUiLCBcCi0gICAgICAgICAgIjAuMjAyNSwgMC4xOTEyNSwgMC4xNzg3NSwgMC4xNiwgMC4xNDEyNSwgMC4xMTg3NSwgMC4wOTc1IiwgXAotICAgICAgICAgICIwLjIyMzc1LCAwLjIxMjUsIDAuMTkzNzUsIDAuMTc1LCAwLjE2MjUsIDAuMTMzNzUsIDAuMTEyNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjI2MTc1ODsKLSAgICBmdW5jdGlvbiA6ICJOMzAiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5vbl91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcmlzaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI0NjI5LCAwLjQyNTE4LCAwLjU2NzgwNiwgMC43NDYxMjQsIDAuOTI0MzIyLCAxLjEwMjU3LCAxLjI4MDgyIiwgXAotICAgICAgICAgICIwLjI1ODA1NywgMC40MzY5NDYsIDAuNTc5NTYyLCAwLjc1Nzg1MiwgMC45MzYwNzEsIDEuMTE0MjcsIDEuMjkyNTMiLCBcCi0gICAgICAgICAgIjAuMjczMjQ0LCAwLjQ1MjE5NCwgMC41OTQ3NzMsIDAuNzczMDY4LCAwLjk1MTI2NiwgMS4xMjk1MSwgMS4zMDc4MyIsIFwKLSAgICAgICAgICAiMC4yODg2NTIsIDAuNDY3NTU1LCAwLjYxMDIwNiwgMC43ODg0NzUsIDAuOTY2NjcxLCAxLjE0NDkxLCAxLjMyMzA5IiwgXAotICAgICAgICAgICIwLjMwNDExNiwgMC40ODMwMDQsIDAuNjI1NjIsIDAuODAzOTEsIDAuOTgyMTI4LCAxLjE2MDMxLCAxLjMzODU5IiwgXAotICAgICAgICAgICIwLjMyODE2NSwgMC41MDcwNTYsIDAuNjQ5Njc0LCAwLjgyNzk2MiwgMS4wMDYxOCwgMS4xODQ0NSwgMS4zNjI2NiIsIFwKLSAgICAgICAgICAiMC4zNDk2NTEsIDAuNTI4NTcxLCAwLjY3MTE3OSwgMC44NDk0MjEsIDEuMDI3NjksIDEuMjA1ODYsIDEuMzg0MTgiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDkwNTA4LCAwLjQ0NzkxNCwgMC43MzgyNzksIDEuMTAyMDYsIDEuNDY1MzQsIDEuODI4NzYsIDIuMTkyMzYiLCBcCi0gICAgICAgICAgIjAuMDkwNSwgMC40NDc5MTIsIDAuNzM4MjQ4LCAxLjEwMjA0LCAxLjQ2NTI4LCAxLjgyODY5LCAyLjE5MjE1IiwgXAotICAgICAgICAgICIwLjA5MDQ1OSwgMC40NDgxMjIsIDAuNzM4MjU0LCAxLjEwMjAzLCAxLjQ2NTIsIDEuODI4NzQsIDIuMTkyMjgiLCBcCi0gICAgICAgICAgIjAuMDkwNDcxLCAwLjQ0NzkxMSwgMC43MzY4MzEsIDEuMTAyMDYsIDEuNDY1MjMsIDEuODI4NzEsIDIuMTkxNzkiLCBcCi0gICAgICAgICAgIjAuMDkwNDY3LCAwLjQ0Nzg4NCwgMC43MzgyNDMsIDEuMTAxOTYsIDEuNDY1MjgsIDEuODI4NCwgMi4xOTIxMSIsIFwKLSAgICAgICAgICAiMC4wOTA1MDQsIDAuNDQ3ODkxLCAwLjczODIzNSwgMS4xMDE5NSwgMS40NjUyOSwgMS44Mjg3NywgMi4xOTIyNCIsIFwKLSAgICAgICAgICAiMC4wOTA0NTcsIDAuNDQ4MDEsIDAuNzM4MjUxLCAxLjA5OTgxLCAxLjQ2NTMyLCAxLjgyNTM2LCAyLjE5MjMxIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMwNTE0MSwgMC41MTE5NDksIDAuNjc2ODUxLCAwLjg4MjkwNywgMS4wODkwMSwgMS4yOTUxMiwgMS41MDEyNiIsIFwKLSAgICAgICAgICAiMC4zMTY5NSwgMC41MjM3NDcsIDAuNjg4NjA1LCAwLjg5NDc4NCwgMS4xMDA4MiwgMS4zMDY4OCwgMS41MTMwNyIsIFwKLSAgICAgICAgICAiMC4zMzIxNTMsIDAuNTM4OTQ4LCAwLjcwMzgwOCwgMC45MDk5NzYsIDEuMTE2LCAxLjMyMjA4LCAxLjUyODI3IiwgXAotICAgICAgICAgICIwLjM0NzYwOSwgMC41NTQ0MDcsIDAuNzE5MjY1LCAwLjkyNTM0NSwgMS4xMzE0NiwgMS4zMzc1MiwgMS41NDM3NSIsIFwKLSAgICAgICAgICAiMC4zNjMwODcsIDAuNTY5ODc5LCAwLjczNDczOSwgMC45NDA4MzIsIDEuMTQ2OTQsIDEuMzUzMDUsIDEuNTU5MDEiLCBcCi0gICAgICAgICAgIjAuMzg3Mjk5LCAwLjU5NDEsIDAuNzU4OTYsIDAuOTY1MDQyLCAxLjE3MTE2LCAxLjM3NzI5LCAxLjU4MzM0IiwgXAotICAgICAgICAgICIwLjQwODg1LCAwLjYxNTY1LCAwLjc4MDUwOCwgMC45ODY2NjEsIDEuMTkyNzUsIDEuMzk4NzksIDEuNjA0OTciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk5OTA5LCAwLjUwNjIwNSwgMC44MzU5MjksIDEuMjQ3NTcsIDEuNjU5NDMsIDIuMDY2OTgsIDIuNDgwNDUiLCBcCi0gICAgICAgICAgIjAuMDk5ODY5LCAwLjUwNjEyLCAwLjgzNTg4MSwgMS4yNDQwNiwgMS42NTg4NCwgMi4wNjg5NSwgMi40NzU2MyIsIFwKLSAgICAgICAgICAiMC4wOTk4NjMsIDAuNTA2MTMsIDAuODM1ODc4LCAxLjI0NDA2LCAxLjY1ODg2LCAyLjA2ODk0LCAyLjQ3NTQ2IiwgXAotICAgICAgICAgICIwLjA5OTg3NCwgMC41MDYxMDksIDAuODM1ODE5LCAxLjI0NTYzLCAxLjY1NzU4LCAyLjA2ODIxLCAyLjQ3NDk1IiwgXAotICAgICAgICAgICIwLjA5OTg2NywgMC41MDYxOTQsIDAuODM1OTI5LCAxLjI0NDk2LCAxLjY1NzMsIDIuMDY2MjgsIDIuNDgyODYiLCBcCi0gICAgICAgICAgIjAuMDk5ODc0LCAwLjUwNDk1LCAwLjgzNTc3NywgMS4yNDQ1OSwgMS42NTc2NywgMi4wNjkzNywgMi40NzcyOSIsIFwKLSAgICAgICAgICAiMC4wOTk4NjksIDAuNTA2MTM4LCAwLjgzNTksIDEuMjQ1NjUsIDEuNjU4MzEsIDIuMDY4MzMsIDIuNDc1ODMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiU04iOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHByZXNldDsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTk5ODQ0LCAwLjM3ODY5NywgMC41MjEzNCwgMC42OTk1NzEsIDAuODc3ODE5LCAxLjA1NjA3LCAxLjIzNDI2IiwgXAotICAgICAgICAgICIwLjIxMTQwNSwgMC4zOTAyOTcsIDAuNTMyOTA2LCAwLjcxMTEzLCAwLjg4OTM2NywgMS4wNjc2MSwgMS4yNDU4NSIsIFwKLSAgICAgICAgICAiMC4yMjYwNDIsIDAuNDA0OTAzLCAwLjU0NzUzNSwgMC43MjU3NTksIDAuOTAzOTg1LCAxLjA4MjIyLCAxLjI2MDQ0IiwgXAotICAgICAgICAgICIwLjI0MDMwMSwgMC40MTkxNjEsIDAuNTYxNzk0LCAwLjc0MDA4OSwgMC45MTgyNTgsIDEuMDk2NDcsIDEuMjc0NyIsIFwKLSAgICAgICAgICAiMC4yNTQ4MDEsIDAuNDMzNzIyLCAwLjU3NjM3MywgMC43NTQ1NjYsIDAuOTMyODA2LCAxLjExMTAzLCAxLjI4OTI1IiwgXAotICAgICAgICAgICIwLjI3NzM5OCwgMC40NTYzMjcsIDAuNTk4OTc1LCAwLjc3NzE3MywgMC45NTU0MTYsIDEuMTMzNjMsIDEuMzExOTYiLCBcCi0gICAgICAgICAgIjAuMjk2NTcyLCAwLjQ3NTM5LCAwLjYxODAzNiwgMC43OTYyMzgsIDAuOTc0NDgxLCAxLjE1MjcsIDEuMzMwOTQiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDkwMDQ0LCAwLjQ0ODEzOCwgMC43Mzg0NTMsIDEuMDk5OTEsIDEuNDY1MjQsIDEuODI4NTIsIDIuMTkxODUiLCBcCi0gICAgICAgICAgIjAuMDkwMDQyLCAwLjQ0ODEzNCwgMC43MzgzNzksIDEuMTAxOTEsIDEuNDY1MzcsIDEuODI1ODUsIDIuMTkyMTEiLCBcCi0gICAgICAgICAgIjAuMDkwMDIxLCAwLjQ0NzgxNiwgMC43Mzg0NDcsIDEuMTAwMDIsIDEuNDYyODksIDEuODI1NjEsIDIuMTg4NDkiLCBcCi0gICAgICAgICAgIjAuMDkwMDEsIDAuNDQ3ODA2LCAwLjczODQ0MiwgMS4xMDE2NiwgMS40NjUwNCwgMS44MjU1MiwgMi4xODg2MiIsIFwKLSAgICAgICAgICAiMC4wOTAwMTQsIDAuNDQ3ODQzLCAwLjczODQ3MSwgMS4xMDE0OSwgMS40NjMxOCwgMS44Mjg0MiwgMi4xODg2IiwgXAotICAgICAgICAgICIwLjA4OTk5MiwgMC40NDgxMiwgMC43Mzg0NjIsIDEuMTAxNCwgMS40NjMxNywgMS44MjU3OCwgMi4xOTE4IiwgXAotICAgICAgICAgICIwLjA5MDA4OCwgMC40NDc3NzcsIDAuNzM4NDYyLCAxLjEwMTQ4LCAxLjQ2MzAxLCAxLjgyNTYsIDIuMTg4NjMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2Nzg0LCAwLjAwNjgxMywgMC4wMDY4MTYsIDAuMDA2ODE4LCAwLjAwNjgxOSwgMC4wMDY4MTksIDAuMDA2ODIiLCBcCi0gICAgICAgICAgIjAuMDA2NzczLCAwLjAwNjgwMywgMC4wMDY4MDYsIDAuMDA2ODA3LCAwLjAwNjgwOCwgMC4wMDY4MDgsIDAuMDA2ODA5IiwgXAotICAgICAgICAgICIwLjAwNjc2MSwgMC4wMDY3OTEsIDAuMDA2Nzk0LCAwLjAwNjc5NiwgMC4wMDY3OTgsIDAuMDA2Nzk4LCAwLjAwNjc5OCIsIFwKLSAgICAgICAgICAiMC4wMDY3NTIsIDAuMDA2NzgyLCAwLjAwNjc4NiwgMC4wMDY3ODcsIDAuMDA2Nzg4LCAwLjAwNjc4OSwgMC4wMDY3ODkiLCBcCi0gICAgICAgICAgIjAuMDA2NzQ1LCAwLjAwNjc3NSwgMC4wMDY3NzgsIDAuMDA2NzgsIDAuMDA2NzgsIDAuMDA2NzgxLCAwLjAwNjc4MSIsIFwKLSAgICAgICAgICAiMC4wMDY3MzMsIDAuMDA2NzYzLCAwLjAwNjc2NiwgMC4wMDY3NjgsIDAuMDA2NzY4LCAwLjAwNjc2OSwgMC4wMDY3NjkiLCBcCi0gICAgICAgICAgIjAuMDA2NzI3LCAwLjAwNjc1NywgMC4wMDY3NTksIDAuMDA2NzYxLCAwLjAwNjc2MiwgMC4wMDY3NjMsIDAuMDA2NzYyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2NjI4LCAwLjAwNjY3OSwgMC4wMDY2ODUsIDAuMDA2Njg4LCAwLjAwNjY4OSwgMC4wMDY2OSwgMC4wMDY2OTEiLCBcCi0gICAgICAgICAgIjAuMDA2NjE4LCAwLjAwNjY2OCwgMC4wMDY2NzQsIDAuMDA2Njc3LCAwLjAwNjY3OSwgMC4wMDY2OCwgMC4wMDY2OCIsIFwKLSAgICAgICAgICAiMC4wMDY2MDUsIDAuMDA2NjU2LCAwLjAwNjY2MiwgMC4wMDY2NjUsIDAuMDA2NjY3LCAwLjAwNjY2OCwgMC4wMDY2NjgiLCBcCi0gICAgICAgICAgIjAuMDA2NTk4LCAwLjAwNjY0OSwgMC4wMDY2NTUsIDAuMDA2NjU4LCAwLjAwNjY2LCAwLjAwNjY2MSwgMC4wMDY2NjEiLCBcCi0gICAgICAgICAgIjAuMDA2NTkzLCAwLjAwNjY0MywgMC4wMDY2NDksIDAuMDA2NjUyLCAwLjAwNjY1NCwgMC4wMDY2NTUsIDAuMDA2NjU2IiwgXAotICAgICAgICAgICIwLjAwNjU5MywgMC4wMDY2NDQsIDAuMDA2NjUsIDAuMDA2NjUzLCAwLjAwNjY1NSwgMC4wMDY2NTYsIDAuMDA2NjU2IiwgXAotICAgICAgICAgICIwLjAwNjU5MywgMC4wMDY2NDQsIDAuMDA2NjUsIDAuMDA2NjUzLCAwLjAwNjY1NSwgMC4wMDY2NTYsIDAuMDA2NjU2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiU04iOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNzQzNCwgMC4wMDc0NjUsIDAuMDA3NDY4LCAwLjAwNzQ3MSwgMC4wMDc0NzEsIDAuMDA3NDcyLCAwLjAwNzQ3MiIsIFwKLSAgICAgICAgICAiMC4wMDc0MTEsIDAuMDA3NDQyLCAwLjAwNzQ0NiwgMC4wMDc0NDgsIDAuMDA3NDQ5LCAwLjAwNzQ0OSwgMC4wMDc0NDkiLCBcCi0gICAgICAgICAgIjAuMDA3MzkzLCAwLjAwNzQyNCwgMC4wMDc0MjgsIDAuMDA3NDI5LCAwLjAwNzQzMSwgMC4wMDc0MywgMC4wMDc0MzEiLCBcCi0gICAgICAgICAgIjAuMDA3Mzc4LCAwLjAwNzQwOCwgMC4wMDc0MTIsIDAuMDA3NDE0LCAwLjAwNzQxNCwgMC4wMDc0MTUsIDAuMDA3NDE1IiwgXAotICAgICAgICAgICIwLjAwNzM2NSwgMC4wMDczOTUsIDAuMDA3Mzk5LCAwLjAwNzQwMSwgMC4wMDc0LCAwLjAwNzQwMSwgMC4wMDc0MDEiLCBcCi0gICAgICAgICAgIjAuMDA3MzQ2LCAwLjAwNzM3NywgMC4wMDczOCwgMC4wMDczODEsIDAuMDA3MzgzLCAwLjAwNzM4MywgMC4wMDczODMiLCBcCi0gICAgICAgICAgIjAuMDA3MzM0LCAwLjAwNzM2NSwgMC4wMDczNjksIDAuMDA3MzcsIDAuMDA3MzcxLCAwLjAwNzM3MSwgMC4wMDczNzIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoc2NhbGFyKSB7Ci0gICAgICAgIHZhbHVlcygiMCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oU0UpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTQzNDI4OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTQzNDI4OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTQzMzc3OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNDgwOCwgMC4wMDQ4MDcsIDAuMDA0ODAyLCAwLjAwNDc5NiwgMC4wMDQ3OSwgMC4wMDQ3ODUsIDAuMDA0NzgzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA2MTA0LCAwLjAwNjA4MSwgMC4wMDYwNjIsIDAuMDA2MDUsIDAuMDA2MDQyLCAwLjAwNjAyOSwgMC4wMDYwMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiU04iOwotICAgICAgc2RmX2NvbmQgOiAiU04gPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDMxMjUsIC0wLjAyLCAtMC4wMDc1LCAwLjAxMTI1LCAwLjAyMzc1LCAwLjA0NjI1LCAwLjA2NzUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgMCwgMC4wMTI1LCAwLjAzNSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiLTAuMDYxMjUsIC0wLjA1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLjAxNjI1LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjA3Mzc1LCAtMC4wNjI1LCAtMC4wNSwgLTAuMDMxMjUsIC0wLjAxODc1LCAwLjAwMzc1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDg2MjUsIC0wLjA3NSwgLTAuMDYyNSwgLTAuMDUsIC0wLjAzMTI1LCAtMC4wMDg3NSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMTA4NzUsIC0wLjA5NzUsIC0wLjA4NSwgLTAuMDcyNSwgLTAuMDYsIC0wLjAzMTI1LCAtMC4wMTYyNSIsIFwKLSAgICAgICAgICAiLTAuMTMsIC0wLjExODc1LCAtMC4xMDYyNSwgLTAuMDg3NSwgLTAuMDc1LCAtMC4wNTI1LCAtMC4wMzEyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEyNSwgMC4wMjM3NSwgMC4wMzYyNSwgMC4wNTUsIDAuMDY3NSwgMC4wOSwgMC4xMTEyNSIsIFwKLSAgICAgICAgICAiMC4wMDEyNSwgMC4wMTI1LCAwLjAzMTI1LCAwLjA0Mzc1LCAwLjA1NjI1LCAwLjA3ODc1LCAwLjEiLCBcCi0gICAgICAgICAgIi0wLjAxMTI1LCAwLCAwLjAxMjUsIDAuMDMxMjUsIDAuMDQzNzUsIDAuMDY2MjUsIDAuMDg3NSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxMjUsIDAuMDA2MjUsIDAuMDE4NzUsIDAuMDMxMjUsIDAuMDUzNzUsIDAuMDc1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDI1LCAtMC4wMDYyNSwgMC4wMDYyNSwgMC4wMTg3NSwgMC4wNDEyNSwgMC4wNjI1IiwgXAotICAgICAgICAgICItMC4wNTI1LCAtMC4wNDEyNSwgLTAuMDI4NzUsIC0wLjAxNjI1LCAwLjAwMjUsIDAuMDI1LCAwLjA0IiwgXAotICAgICAgICAgICItMC4wNjc1LCAtMC4wNTYyNSwgLTAuMDQzNzUsIC0wLjAzMTI1LCAtMC4wMTI1LCAwLjAxLCAwLjAyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiU04iOwotICAgICAgc2RmX2NvbmQgOiAiU04gPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTY4NzUsIDAuMTU3NSwgMC4xMzg3NSwgMC4xMjYyNSwgMC4xMDc1LCAwLjA4NSwgMC4wNjM3NSIsIFwKLSAgICAgICAgICAiMC4xOCwgMC4xNjg3NSwgMC4xNSwgMC4xMzc1LCAwLjExODc1LCAwLjA5NjI1LCAwLjA3NSIsIFwKLSAgICAgICAgICAiMC4xOTg3NSwgMC4xODEyNSwgMC4xNjg3NSwgMC4xNSwgMC4xMzc1LCAwLjEwODc1LCAwLjA4NzUiLCBcCi0gICAgICAgICAgIjAuMjExMjUsIDAuMiwgMC4xODEyNSwgMC4xNjg3NSwgMC4xNSwgMC4xMjc1LCAwLjEwNjI1IiwgXAotICAgICAgICAgICIwLjIyMzc1LCAwLjIxMjUsIDAuMiwgMC4xODEyNSwgMC4xNjI1LCAwLjE0LCAwLjExODc1IiwgXAotICAgICAgICAgICIwLjI0NjI1LCAwLjIzNSwgMC4yMjI1LCAwLjIwMzc1LCAwLjE4NSwgMC4xNjI1LCAwLjE0MTI1IiwgXAotICAgICAgICAgICIwLjI2NzUsIDAuMjU2MjUsIDAuMjM3NSwgMC4yMjUsIDAuMjA2MjUsIDAuMTc3NSwgMC4xNTYyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE5Mzc1LCAwLjE4MjUsIDAuMTcsIDAuMTUxMjUsIDAuMTM4NzUsIDAuMTIyNSwgMC4xMDc1IiwgXAotICAgICAgICAgICIwLjIwNSwgMC4xOTM3NSwgMC4xODEyNSwgMC4xNjI1LCAwLjE1LCAwLjEzMzc1LCAwLjExODc1IiwgXAotICAgICAgICAgICIwLjIyMzc1LCAwLjIxMjUsIDAuMTkzNzUsIDAuMTgxMjUsIDAuMTY4NzUsIDAuMTQ2MjUsIDAuMTM3NSIsIFwKLSAgICAgICAgICAiMC4yMzYyNSwgMC4yMjUsIDAuMjA2MjUsIDAuMTkzNzUsIDAuMTgxMjUsIDAuMTY1LCAwLjE1IiwgXAotICAgICAgICAgICIwLjI0ODc1LCAwLjIzNzUsIDAuMjI1LCAwLjIwNjI1LCAwLjE5Mzc1LCAwLjE3NzUsIDAuMTYyNSIsIFwKLSAgICAgICAgICAiMC4yNzEyNSwgMC4yNiwgMC4yNDEyNSwgMC4yMjg3NSwgMC4yMTYyNSwgMC4yLCAwLjE4NSIsIFwKLSAgICAgICAgICAiMC4yODYyNSwgMC4yNzUsIDAuMjU2MjUsIDAuMjQzNzUsIDAuMjMxMjUsIDAuMjE1LCAwLjIiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFNJKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA4NzE0NDQ7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwODY4MjkzOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDg3MTQ0NDsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDMyNTYsIDAuMDAzMjM4LCAwLjAwMzIyNywgMC4wMDMyMjEsIDAuMDAzMjE1LCAwLjAwMzIwOSwgMC4wMDMyMDQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDUyNTEsIDAuMDA1MjQxLCAwLjAwNTIzNiwgMC4wMDUyMzEsIDAuMDA1MjI5LCAwLjAwNTIyNiwgMC4wMDUyMjMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiU0UmU04iOwotICAgICAgc2RmX2NvbmQgOiAiU0VfRVFfMV9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjEsIC0wLjA4ODc1LCAtMC4wNzYyNSwgLTAuMDcsIC0wLjA1NzUsIC0wLjAzNSwgLTAuMDI2MjUiLCBcCi0gICAgICAgICAgIi0wLjExMTI1LCAtMC4xLCAtMC4wODc1LCAtMC4wODEyNSwgLTAuMDY4NzUsIC0wLjA0NjI1LCAtMC4wMzc1IiwgXAotICAgICAgICAgICItMC4xMjM3NSwgLTAuMTE4NzUsIC0wLjEwNjI1LCAtMC4wOTM3NSwgLTAuMDgxMjUsIC0wLjA2NSwgLTAuMDUiLCBcCi0gICAgICAgICAgIi0wLjEzNjI1LCAtMC4xMzEyNSwgLTAuMTE4NzUsIC0wLjEwNjI1LCAtMC4wOTM3NSwgLTAuMDc3NSwgLTAuMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMTU1LCAtMC4xNDM3NSwgLTAuMTMxMjUsIC0wLjExODc1LCAtMC4xMDYyNSwgLTAuMDksIC0wLjA3NSIsIFwKLSAgICAgICAgICAiLTAuMTcxMjUsIC0wLjE2NjI1LCAtMC4xNTM3NSwgLTAuMTQxMjUsIC0wLjEyODc1LCAtMC4xMTI1LCAtMC4wOTc1IiwgXAotICAgICAgICAgICItMC4xOTI1LCAtMC4xODEyNSwgLTAuMTY4NzUsIC0wLjE1NjI1LCAtMC4xNDM3NSwgLTAuMTI3NSwgLTAuMTEyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAsIDAuMDExMjUsIDAuMDIzNzUsIDAuMDM2MjUsIDAuMDU1LCAwLjA3NzUsIDAuMDkyNSIsIFwKLSAgICAgICAgICAiLTAuMDExMjUsIDAsIDAuMDEyNSwgMC4wMjUsIDAuMDQzNzUsIDAuMDY2MjUsIDAuMDgxMjUiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTI1LCAwLCAwLjAxMjUsIDAuMDMxMjUsIDAuMDUzNzUsIDAuMDY4NzUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMjUsIC0wLjAxMjUsIDAuMDA2MjUsIDAuMDE4NzUsIDAuMDQxMjUsIDAuMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjAzNzUsIC0wLjAyNSwgLTAuMDA2MjUsIDAuMDA2MjUsIDAuMDI4NzUsIDAuMDUiLCBcCi0gICAgICAgICAgIi0wLjA2NSwgLTAuMDUzNzUsIC0wLjA0MTI1LCAtMC4wMjg3NSwgLTAuMDEsIDAuMDEyNSwgMC4wMjc1IiwgXAotICAgICAgICAgICItMC4wOCwgLTAuMDY4NzUsIC0wLjA1NjI1LCAtMC4wNDM3NSwgLTAuMDI1LCAtMC4wMDI1LCAwLjAxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlNFJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIlNFX0VRXzFfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNjg3NSwgMC4xNTc1LCAwLjEzODc1LCAwLjEyNjI1LCAwLjExMzc1LCAwLjA5MTI1LCAwLjA4MjUiLCBcCi0gICAgICAgICAgIjAuMTgsIDAuMTY4NzUsIDAuMTUsIDAuMTM3NSwgMC4xMjUsIDAuMTAyNSwgMC4wOTM3NSIsIFwKLSAgICAgICAgICAiMC4xOTI1LCAwLjE4MTI1LCAwLjE2MjUsIDAuMTUsIDAuMTM3NSwgMC4xMjEyNSwgMC4xMDYyNSIsIFwKLSAgICAgICAgICAiMC4yMDUsIDAuMTkzNzUsIDAuMTc1LCAwLjE2MjUsIDAuMTUsIDAuMTMzNzUsIDAuMTE4NzUiLCBcCi0gICAgICAgICAgIjAuMjE3NSwgMC4yMDYyNSwgMC4xODc1LCAwLjE3NSwgMC4xNjI1LCAwLjE0NjI1LCAwLjEzMTI1IiwgXAotICAgICAgICAgICIwLjI0LCAwLjIyODc1LCAwLjIxLCAwLjE5NzUsIDAuMTg1LCAwLjE2ODc1LCAwLjE1Mzc1IiwgXAotICAgICAgICAgICIwLjI2MTI1LCAwLjI0Mzc1LCAwLjIzMTI1LCAwLjIxODc1LCAwLjIwNjI1LCAwLjE4Mzc1LCAwLjE2ODc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTM3NSwgMC4xMjYyNSwgMC4xMDc1LCAwLjA5NSwgMC4wNzYyNSwgMC4wNTM3NSwgMC4wMzI1IiwgXAotICAgICAgICAgICIwLjE0ODc1LCAwLjEzNzUsIDAuMTI1LCAwLjEwNjI1LCAwLjA4NzUsIDAuMDY1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjE2MTI1LCAwLjE1LCAwLjEzMTI1LCAwLjExODc1LCAwLjEsIDAuMDc3NSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiMC4xNzM3NSwgMC4xNjI1LCAwLjE0Mzc1LCAwLjEzMTI1LCAwLjExMjUsIDAuMDksIDAuMDY4NzUiLCBcCi0gICAgICAgICAgIjAuMTg2MjUsIDAuMTc1LCAwLjE1NjI1LCAwLjE0Mzc1LCAwLjEyNSwgMC4xMDI1LCAwLjA3NSIsIFwKLSAgICAgICAgICAiMC4yMDg3NSwgMC4xOTEyNSwgMC4xNzg3NSwgMC4xNiwgMC4xNDc1LCAwLjExODc1LCAwLjA5NzUiLCBcCi0gICAgICAgICAgIjAuMjIzNzUsIDAuMjEyNSwgMC4xOTM3NSwgMC4xNzUsIDAuMTYyNSwgMC4xMzM3NSwgMC4xMTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTTikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNjI1MDQ7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNTAzNzY7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNjI1MDQ7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNDg1LCAwLjAwMDQ4NCwgMC4wMDA0ODMsIDAuMDAwNDg0LCAwLjAwMDQ4NCwgMC4wMDA0ODQsIDAuMDAwNDg0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNDkzLCAwLjAwMDQ4OCwgMC4wMDA0ODcsIDAuMDAwNDg3LCAwLjAwMDQ4NywgMC4wMDA0ODcsIDAuMDAwNDg3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRCYhU0UmIVNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9TRV9FUV8wX0FOX1NJX0VRXzAgPT0gMSdiMSI7Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4xOTk4NDQsIDAuMjExNDA1LCAwLjIyNjA0MiwgMC4yNDAzMDEsIDAuMjU0ODAxLCAwLjI3NzM5OCwgMC4yOTY1NzIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiByZWNvdmVyeV9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEJiFTRSYhU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1NFX0VRXzBfQU5fU0lfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChyZWNvdmVyeV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDA2MjUsIC0wLjAxNzUsIC0wLjAzNjI1LCAtMC4wNTUsIC0wLjA2NzUsIC0wLjA5NjI1LCAtMC4xMTc1IiwgXAotICAgICAgICAgICIwLjAwNSwgLTAuMDA2MjUsIC0wLjAyNSwgLTAuMDQzNzUsIC0wLjA1NjI1LCAtMC4wODUsIC0wLjEwNjI1IiwgXAotICAgICAgICAgICIwLjAxNzUsIDAuMDA2MjUsIC0wLjAxMjUsIC0wLjAzMTI1LCAtMC4wNDM3NSwgLTAuMDcyNSwgLTAuMDkzNzUiLCBcCi0gICAgICAgICAgIjAuMDMsIDAuMDE4NzUsIDAsIC0wLjAxMjUsIC0wLjAzMTI1LCAtMC4wNiwgLTAuMDgxMjUiLCBcCi0gICAgICAgICAgIjAuMDQyNSwgMC4wMzEyNSwgMC4wMTI1LCAwLCAtMC4wMTg3NSwgLTAuMDQ3NSwgLTAuMDY4NzUiLCBcCi0gICAgICAgICAgIjAuMDY1LCAwLjA1Mzc1LCAwLjAzNSwgMC4wMTYyNSwgMC4wMDM3NSwgLTAuMDI1LCAtMC4wNDYyNSIsIFwKLSAgICAgICAgICAiMC4wOCwgMC4wNjg3NSwgMC4wNTYyNSwgMC4wMzc1LCAwLjAxODc1LCAtMC4wMDM3NSwgLTAuMDMxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiByZW1vdmFsX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUQmIVNFJiFTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fU0VfRVFfMF9BTl9TSV9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHJlbW92YWxfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDkzNzUsIDAuMTExMjUsIDAuMTIzNzUsIDAuMTM2MjUsIDAuMTU1LCAwLjE3NzUsIDAuMTk4NzUiLCBcCi0gICAgICAgICAgIjAuMDg4NzUsIDAuMSwgMC4xMTI1LCAwLjEzMTI1LCAwLjE0Mzc1LCAwLjE2NjI1LCAwLjE4NzUiLCBcCi0gICAgICAgICAgIjAuMDc2MjUsIDAuMDg3NSwgMC4xLCAwLjExODc1LCAwLjEzMTI1LCAwLjE1Mzc1LCAwLjE3NSIsIFwKLSAgICAgICAgICAiMC4wNjM3NSwgMC4wNzUsIDAuMDg3NSwgMC4xMDYyNSwgMC4xMTg3NSwgMC4xNDEyNSwgMC4xNjI1IiwgXAotICAgICAgICAgICIwLjA1MTI1LCAwLjA2MjUsIDAuMDc1LCAwLjA5Mzc1LCAwLjEwNjI1LCAwLjEyODc1LCAwLjE1IiwgXAotICAgICAgICAgICIwLjAyODc1LCAwLjA0LCAwLjA1MjUsIDAuMDcxMjUsIDAuMDgzNzUsIDAuMTEyNSwgMC4xMzM3NSIsIFwKLSAgICAgICAgICAiMC4wMTM3NSwgMC4wMjUsIDAuMDM3NSwgMC4wNTYyNSwgMC4wNjg3NSwgMC4wOTEyNSwgMC4xMTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IFNERkZTUlgyICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChTREZGU1JYMikgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjQzMjUwODsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBmZiAoTjM1LFFCSU5UKSB7Ci0gICAgbmV4dF9zdGF0ZSA6ICIoKFNFIFNJKSArICghU0UgRCkpIjsKLSAgICBjbG9ja2VkX29uIDogIkNLIjsKLSAgICBjbGVhciA6ICIoIVJOKSI7Ci0gICAgcHJlc2V0IDogIighU04pIjsKLSAgICBjbGVhcl9wcmVzZXRfdmFyMSA6IEg7Ci0gICAgY2xlYXJfcHJlc2V0X3ZhcjIgOiBMOwotICB9Ci0gIHBpbihDSykgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNTk1NDkzOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDU5NTI0MTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA1OTU0OTM7Ci0gICAgY2xvY2sgOiB0cnVlOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjQ4MywgMC4wMDI0NywgMC4wMDI0NjEsIDAuMDAyNDUzLCAwLjAwMjQ0OSwgMC4wMDI0NDIsIDAuMDAyNDM4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA2MDk1LCAwLjAwNjA4NywgMC4wMDYwNzcsIDAuMDA2MDcyLCAwLjAwNjA3LCAwLjAwNjA3MiwgMC4wMDYwNzIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFEJlJOJiFTRSYhU0kmU04iOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1JOX0VRXzFfQU5fU0VfRVFfMF9BTl9TSV9FUV8wX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4zODMwNjksIDAuMzk0NzE3LCAwLjQxMDA2NywgMC40MjU0MTksIDAuNDQwODY0LCAwLjQ2NTQwNCwgMC40ODY0MzEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjI1OTU3NSwgMC4yNzExMiwgMC4yODU5NDQsIDAuMzAwOTA4LCAwLjMxNTYwNCwgMC4zMzg3MjIsIDAuMzU4MTk3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihEKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA1ODkxNDk7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNTg3NTA1OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDU4OTE0OTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDI4NTgsIDAuMDAyODQ5LCAwLjAwMjg0NCwgMC4wMDI4NDEsIDAuMDAyODM4LCAwLjAwMjgzNSwgMC4wMDI4MzIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDQxNjQsIDAuMDA0MTU5LCAwLjAwNDE1NywgMC4wMDQxNTYsIDAuMDA0MTU0LCAwLjAwNDE1MiwgMC4wMDQxNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJSTiYhU0UmU04iOwotICAgICAgc2RmX2NvbmQgOiAiUk5fRVFfMV9BTl9TRV9FUV8wX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMTQzNzUsIC0wLjEzMjUsIC0wLjEyLCAtMC4xMTM3NSwgLTAuMTAxMjUsIC0wLjA4NSwgLTAuMDc2MjUiLCBcCi0gICAgICAgICAgIi0wLjE1NSwgLTAuMTQzNzUsIC0wLjEzMTI1LCAtMC4xMjUsIC0wLjExMjUsIC0wLjA5NjI1LCAtMC4wODc1IiwgXAotICAgICAgICAgICItMC4xNjc1LCAtMC4xNTYyNSwgLTAuMTUsIC0wLjEzNzUsIC0wLjEyNSwgLTAuMTE1LCAtMC4xIiwgXAotICAgICAgICAgICItMC4xOCwgLTAuMTc1LCAtMC4xNjI1LCAtMC4xNSwgLTAuMTQzNzUsIC0wLjEyNzUsIC0wLjExMjUiLCBcCi0gICAgICAgICAgIi0wLjE5MjUsIC0wLjE4NzUsIC0wLjE3NSwgLTAuMTYyNSwgLTAuMTU2MjUsIC0wLjE0LCAtMC4xMjUiLCBcCi0gICAgICAgICAgIi0wLjIxNSwgLTAuMjEsIC0wLjE5NzUsIC0wLjE4NSwgLTAuMTc4NzUsIC0wLjE2MjUsIC0wLjE0NzUiLCBcCi0gICAgICAgICAgIi0wLjIzNjI1LCAtMC4yMjUsIC0wLjIxODc1LCAtMC4yMDYyNSwgLTAuMTkzNzUsIC0wLjE3NzUsIC0wLjE2ODc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDI1LCAtMC4wMTM3NSwgLTAuMDAxMjUsIDAuMDExMjUsIDAuMDIzNzUsIDAuMDQ2MjUsIDAuMDY3NSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAyNSwgLTAuMDEyNSwgMCwgMC4wMTI1LCAwLjAzNSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAxMjUsIDAsIDAuMDIyNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDY3NSwgLTAuMDUsIC0wLjAzNzUsIC0wLjAyNSwgLTAuMDEyNSwgMC4wMSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDczNzUsIC0wLjA2MjUsIC0wLjA1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAwMjUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjA5NjI1LCAtMC4wODUsIC0wLjA2NjI1LCAtMC4wNTM3NSwgLTAuMDQxMjUsIC0wLjAxODc1LCAtMC4wMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMTExMjUsIC0wLjEsIC0wLjA4NzUsIC0wLjA2ODc1LCAtMC4wNTYyNSwgLTAuMDMzNzUsIC0wLjAxODc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJSTiYhU0UmU04iOwotICAgICAgc2RmX2NvbmQgOiAiUk5fRVFfMV9BTl9TRV9FUV8wX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjkzNzUsIDAuMjc2MjUsIDAuMjYzNzUsIDAuMjQ1LCAwLjIyNjI1LCAwLjIwMzc1LCAwLjE4ODc1IiwgXAotICAgICAgICAgICIwLjMwNSwgMC4yOTM3NSwgMC4yNzUsIDAuMjU2MjUsIDAuMjQzNzUsIDAuMjE1LCAwLjIiLCBcCi0gICAgICAgICAgIjAuMzE3NSwgMC4zMDYyNSwgMC4yODc1LCAwLjI2ODc1LCAwLjI1NjI1LCAwLjIyNzUsIDAuMjEyNSIsIFwKLSAgICAgICAgICAiMC4zMywgMC4zMTg3NSwgMC4zLCAwLjI4NzUsIDAuMjY4NzUsIDAuMjQ2MjUsIDAuMjI1IiwgXAotICAgICAgICAgICIwLjM0ODc1LCAwLjMzMTI1LCAwLjMxODc1LCAwLjMsIDAuMjgxMjUsIDAuMjU4NzUsIDAuMjM3NSIsIFwKLSAgICAgICAgICAiMC4zNjUsIDAuMzUzNzUsIDAuMzM1LCAwLjMyMjUsIDAuMzAzNzUsIDAuMjgxMjUsIDAuMjYiLCBcCi0gICAgICAgICAgIjAuMzg2MjUsIDAuMzc1LCAwLjM1NjI1LCAwLjMzNzUsIDAuMzI1LCAwLjI5NjI1LCAwLjI4MTI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjMxMjUsIDAuMjIsIDAuMjAxMjUsIDAuMTgyNSwgMC4xNywgMC4xNDEyNSwgMC4xMiIsIFwKLSAgICAgICAgICAiMC4yNDI1LCAwLjIzMTI1LCAwLjIxMjUsIDAuMTkzNzUsIDAuMTgxMjUsIDAuMTUyNSwgMC4xMzEyNSIsIFwKLSAgICAgICAgICAiMC4yNTUsIDAuMjQzNzUsIDAuMjI1LCAwLjIxMjUsIDAuMTkzNzUsIDAuMTY1LCAwLjE0Mzc1IiwgXAotICAgICAgICAgICIwLjI2NzUsIDAuMjU2MjUsIDAuMjM3NSwgMC4yMTg3NSwgMC4yMDYyNSwgMC4xNzc1LCAwLjE1NjI1IiwgXAotICAgICAgICAgICIwLjI4LCAwLjI2ODc1LCAwLjI1LCAwLjIzMTI1LCAwLjIxODc1LCAwLjE5LCAwLjE2ODc1IiwgXAotICAgICAgICAgICIwLjI5NjI1LCAwLjI4NSwgMC4yNzI1LCAwLjI1Mzc1LCAwLjIzNSwgMC4yMTI1LCAwLjE5MTI1IiwgXAotICAgICAgICAgICIwLjMxNzUsIDAuMzA2MjUsIDAuMjg3NSwgMC4yNjg3NSwgMC4yNTYyNSwgMC4yMjc1LCAwLjIwNjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihRKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMjY0NzM1OwotICAgIGZ1bmN0aW9uIDogIk4zNSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3NlbnNlIDogbm9uX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiByaXNpbmdfZWRnZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzA2OTI0LCAwLjQ4ODY2NSwgMC42MzI2MDQsIDAuODEyOTA4LCAwLjk5MzcyMSwgMS4xNzI2OSwgMS4zNTMwNyIsIFwKLSAgICAgICAgICAiMC4zMTg1NDIsIDAuNTAwMzU2LCAwLjY0NDE2MywgMC44MjUxNjQsIDEuMDAzNzQsIDEuMTg1MDcsIDEuMzYzNzkiLCBcCi0gICAgICAgICAgIjAuMzMzNjc0LCAwLjUxNTQ5MiwgMC42NTkzMTUsIDAuODQwNTU0LCAxLjAxOTIzLCAxLjE5OTcyLCAxLjM3ODk2IiwgXAotICAgICAgICAgICIwLjM0OTE0MywgMC41MzA4NDcsIDAuNjc0ODE2LCAwLjg1MzYxNywgMS4wMzU5MywgMS4yMTQ5NCwgMS4zOTQ2NCIsIFwKLSAgICAgICAgICAiMC4zNjQ0ODYsIDAuNTQ2MTcyLCAwLjY5MDI4NSwgMC44NzAzNjcsIDEuMDUxNDcsIDEuMjMwMjEsIDEuNDEwOTciLCBcCi0gICAgICAgICAgIjAuMzg4NjUsIDAuNTcwMzg1LCAwLjcxNDMwNiwgMC44OTMwOTUsIDEuMDc1NDUsIDEuMjU0NDUsIDEuNDM0MTIiLCBcCi0gICAgICAgICAgIjAuNDA5NTMyLCAwLjU5MTA0NCwgMC43MzQ3NjgsIDAuOTE1MjY1LCAxLjA5Njg4LCAxLjI3NTE1LCAxLjQ1NjE4Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5NzkwNCwgMC40NTc2MjQsIDAuNzQ2ODIyLCAxLjExMDk5LCAxLjQ4Mzg3LCAxLjg1NDY1LCAyLjIyNDM4IiwgXAotICAgICAgICAgICIwLjA5NzY4NCwgMC40NTcxMTMsIDAuNzQ3MDE4LCAxLjEwOTE5LCAxLjQ4MzM0LCAxLjgzNzA4LCAyLjIyNDQ4IiwgXAotICAgICAgICAgICIwLjA5NzY4NiwgMC40NTcxODUsIDAuNzQ3MDM1LCAxLjEyMTIzLCAxLjQ3OTM4LCAxLjg1NTIzLCAyLjIyNDUzIiwgXAotICAgICAgICAgICIwLjA5ODA0LCAwLjQ1ODI1MywgMC43NDY5MzgsIDEuMTIzNjgsIDEuNDgzMzMsIDEuODU0OSwgMi4yMjQzNiIsIFwKLSAgICAgICAgICAiMC4wOTc4NDgsIDAuNDU4MTQ4LCAwLjc0Njg0LCAxLjExMzE3LCAxLjQ4NjE1LCAxLjg1NDksIDIuMTk4MDYiLCBcCi0gICAgICAgICAgIjAuMDk4MDQyLCAwLjQ1NzU1NywgMC43NDY5NDcsIDEuMTIzNjcsIDEuNDgzNDcsIDEuODU0OTEsIDIuMjI0MzciLCBcCi0gICAgICAgICAgIjAuMDk3NTI4LCAwLjQ1Mzg0NywgMC43NTM0ODksIDEuMTE1MjQsIDEuNDg5NzQsIDEuODU0ODksIDIuMjA5OTUiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzM3OTA3LCAwLjU0NjQ2NSwgMC43MTE0MjYsIDAuOTE5NjY0LCAxLjEyNzQsIDEuMzM1MDcsIDEuNTQyNSIsIFwKLSAgICAgICAgICAiMC4zNDk0OTgsIDAuNTU4MTc0LCAwLjcyMzAzNywgMC45MzEyNzQsIDEuMTM5LCAxLjM0NjY4LCAxLjU1NDMyIiwgXAotICAgICAgICAgICIwLjM2NDg0NSwgMC41NzM1MDUsIDAuNzM4Mzc1LCAwLjk0NjYxMiwgMS4xNTQzNCwgMS4zNjIwMiwgMS41Njk2NiIsIFwKLSAgICAgICAgICAiMC4zODAyNSwgMC41ODg4MzksIDAuNzUzODAyLCAwLjk2MjAyNCwgMS4xNjk3NywgMS4zNzc0MiwgMS41ODUwMSIsIFwKLSAgICAgICAgICAiMC4zOTU2NDQsIDAuNjA0MzE5LCAwLjc2OTE3NCwgMC45Nzc0MDMsIDEuMTg1MTMsIDEuMzkyODEsIDEuNjAwNDQiLCBcCi0gICAgICAgICAgIjAuNDIwMTgsIDAuNjI4ODU5LCAwLjc5MzcxNiwgMS4wMDE5NSwgMS4yMDk2OCwgMS40MTczNiwgMS42MjQ5OSIsIFwKLSAgICAgICAgICAiMC40NDEyNjksIDAuNjQ5ODMsIDAuODE0NzkyLCAxLjAyMjk5LCAxLjIzMDczLCAxLjQzODQyLCAxLjY0NTk5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwNTE1OCwgMC41MDg0MiwgMC44MzU4NjksIDEuMjQ4NzYsIDEuNjU5ODEsIDIuMDcwNjgsIDIuNDgyMzMiLCBcCi0gICAgICAgICAgIjAuMTA0ODMzLCAwLjUwNzM4OSwgMC44MzU2NTksIDEuMjQ4OTYsIDEuNjYwMjksIDIuMDcxMjQsIDIuNDgyMDQiLCBcCi0gICAgICAgICAgIjAuMTA0NzEzLCAwLjUwNzMyNywgMC44MzU2NTUsIDEuMjQ4OTYsIDEuNjYwMjksIDIuMDcxMjMsIDIuNDgyMDMiLCBcCi0gICAgICAgICAgIjAuMTA0ODE0LCAwLjUwODQ2MiwgMC44MzY0MjUsIDEuMjQ4OTcsIDEuNjYwMTIsIDIuMDcxMjcsIDIuNDgyNTEiLCBcCi0gICAgICAgICAgIjAuMTA0OTI4LCAwLjUwNzM1MiwgMC44MzY3NDMsIDEuMjQ4OTYsIDEuNjYwMywgMi4wNzEyMiwgMi40ODIwNCIsIFwKLSAgICAgICAgICAiMC4xMDQ4NDQsIDAuNTA3MzIzLCAwLjgzNTgzNCwgMS4yNDg5NiwgMS42NjAyOSwgMi4wNzEyMywgMi40ODIwNSIsIFwKLSAgICAgICAgICAiMC4xMDQ4NjUsIDAuNTA4NDUsIDAuODM1OTI1LCAxLjI0ODk2LCAxLjY2MDQxLCAyLjA3MTMxLCAyLjQ4MjU0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiBjbGVhcjsKLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuNDMzMDA4LCAwLjY0MTUyNCwgMC44MDY2ODcsIDEuMDE0NiwgMS4yMjIyMSwgMS40Mjk1MSwgMS42MzY4NyIsIFwKLSAgICAgICAgICAiMC40NDQzMzgsIDAuNjUyNTUzLCAwLjgxODAxMiwgMS4wMjU5MywgMS4yMzM1NCwgMS40NDA4NCwgMS42NDgyIiwgXAotICAgICAgICAgICIwLjQ1OTIxNCwgMC42Njc0MTksIDAuODMyNjI1LCAxLjA0MDgsIDEuMjQ4MzYsIDEuNDU0OTcsIDEuNjYzMDYiLCBcCi0gICAgICAgICAgIjAuNDc0MDg0LCAwLjY4MjU5OCwgMC44NDc3NzMsIDEuMDU1NjcsIDEuMjYzMjcsIDEuNDcwNTgsIDEuNjc3OTUiLCBcCi0gICAgICAgICAgIjAuNDg4NjU0LCAwLjY5Njg3OSwgMC44NjIxMDEsIDEuMDcwMjUsIDEuMjc3OCwgMS40ODQ1LCAxLjY5MjUiLCBcCi0gICAgICAgICAgIjAuNTExNDYsIDAuNzE5NjIzLCAwLjg4NDk5OCwgMS4wOTMwNiwgMS4zMDA2NiwgMS41MDc5NiwgMS43MTUzMSIsIFwKLSAgICAgICAgICAiMC41MzAzMDcsIDAuNzM4ODI1LCAwLjkwMzk5NiwgMS4xMTE5LCAxLjMxOTUsIDEuNTI2OCwgMS43MzQxNiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDQ5MjgsIDAuNTA4MzI4LCAwLjgzNzI3MSwgMS4yNDkwNCwgMS42NjA3NywgMi4wNzMyMSwgMi40ODUyMyIsIFwKLSAgICAgICAgICAiMC4xMDQ5MTksIDAuNTA4MzM5LCAwLjgzNjg1NSwgMS4yNDkwNCwgMS42NjA3OCwgMi4wNzMyLCAyLjQ4NTIyIiwgXAotICAgICAgICAgICIwLjEwNTc3MiwgMC41MDgzMTgsIDAuODM3MDU3LCAxLjI0OTA0LCAxLjY2MDk1LCAyLjA3Mjc5LCAyLjQ4NTI2IiwgXAotICAgICAgICAgICIwLjEwNDk0MSwgMC41MDgzMjYsIDAuODM3NDQyLCAxLjI0OTA0LCAxLjY2MDgxLCAyLjA3MzIyLCAyLjQ4NTI0IiwgXAotICAgICAgICAgICIwLjEwNTQwNSwgMC41MDg0MzcsIDAuODM3MDg3LCAxLjI0OTA0LCAxLjY2MDk2LCAyLjA3Mjc3LCAyLjQ4NTMxIiwgXAotICAgICAgICAgICIwLjEwNDg5OCwgMC41MDgzMjQsIDAuODM3MDk1LCAxLjI0OTA1LCAxLjY2MDc5LCAyLjA3MzIzLCAyLjQ4NTI4IiwgXAotICAgICAgICAgICIwLjEwNTI1OSwgMC41MDc4NTYsIDAuODM3MTM0LCAxLjI0OTA1LCAxLjY2MDgzLCAyLjA3MzI0LCAyLjQ4NTI4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiBwcmVzZXQ7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI2NDEzNSwgMC40NDU1MTQsIDAuNTg4ODkzLCAwLjc3MDM5NywgMC45NDg0NiwgMS4xMjkwNSwgMS4zMDkwNCIsIFwKLSAgICAgICAgICAiMC4yNzU3ODQsIDAuNDU3NTUzLCAwLjYwMTkyNCwgMC43ODA5NywgMC45NjAzNTMsIDEuMTQxNTYsIDEuMzE5OTciLCBcCi0gICAgICAgICAgIjAuMjkwNDk0LCAwLjQ3MjE4OSwgMC42MTU5MzksIDAuNzk2NjkyLCAwLjk3NTUxMiwgMS4xNTQ0OSwgMS4zMzYwMyIsIFwKLSAgICAgICAgICAiMC4zMDQ2MzcsIDAuNDg2NDAyLCAwLjYzMDg0NSwgMC44MDk3NTgsIDAuOTg5MzI0LCAxLjE2ODk3LCAxLjM0ODc0IiwgXAotICAgICAgICAgICIwLjMxODI1MywgMC40OTk1NzksIDAuNjQzNTUxLCAwLjgyNDQyNywgMS4wMDI1OSwgMS4xODI3MywgMS4zNjMxIiwgXAotICAgICAgICAgICIwLjMzODk0MiwgMC41MjAzMTcsIDAuNjY0ODYsIDAuODQ0MDIxLCAxLjAyMzM3LCAxLjIwNTUyLCAxLjM4MzI2IiwgXAotICAgICAgICAgICIwLjM1Njc3NCwgMC41Mzg0MTksIDAuNjgyMzM3LCAwLjg2MTk0NCwgMS4wNDEwNiwgMS4yMjI2OSwgMS40MDA5MyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTYwOTQsIDAuNDU3NDQ2LCAwLjc1MjkwNiwgMS4xMjM3MSwgMS40OTM1OCwgMS44NjMxMiwgMi4yMzI1NyIsIFwKLSAgICAgICAgICAiMC4wOTYxMDMsIDAuNDU4MTY4LCAwLjc1Mjg0MSwgMS4xMjM2OSwgMS40OTM1NywgMS44NjMxMiwgMi4yMzI1NyIsIFwKLSAgICAgICAgICAiMC4wOTU5NCwgMC40NTc2MTcsIDAuNzUyNTI2LCAxLjEyMzcyLCAxLjQ5MzU3LCAxLjg2MzEyLCAyLjIzMjQxIiwgXAotICAgICAgICAgICIwLjA5NjE0NiwgMC40NTgxOTcsIDAuNzUyNTIzLCAxLjEyMzg2LCAxLjQ5MzYsIDEuODYzMSwgMi4yMzI0MyIsIFwKLSAgICAgICAgICAiMC4wOTYxMjQsIDAuNDU3Njc5LCAwLjc1MzExNSwgMS4xMjM3MiwgMS40OTM1OCwgMS44NjMxNCwgMi4yMzI1NSIsIFwKLSAgICAgICAgICAiMC4wOTYwOTEsIDAuNDU3NzYzLCAwLjc1Mjg2NCwgMS4xMjM3MiwgMS40OTM1NywgMS44NjMxOCwgMi4yMzI1MyIsIFwKLSAgICAgICAgICAiMC4wOTYxMTksIDAuNDU3MjczLCAwLjc1Mjc0NCwgMS4xMjM2NSwgMS40OTM1NywgMS44NjI5OSwgMi4yMzI1MyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zOTA4MTgsIDAuNTk5MzQyLCAwLjc2NDI5NCwgMC45NzIzMiwgMS4xNzk5NiwgMS4zODc1OCwgMS41OTQ4NyIsIFwKLSAgICAgICAgICAiMC40MDI2MTksIDAuNjExMTUsIDAuNzc2MTYxLCAwLjk4NDEyNywgMS4xOTE3OSwgMS4zOTkzOCwgMS42MDY2NyIsIFwKLSAgICAgICAgICAiMC40MTcxNTIsIDAuNjI1NjY1LCAwLjc5MDY2NywgMC45OTg3NzQsIDEuMjA2NDIsIDEuNDEzODcsIDEuNjIxMTIiLCBcCi0gICAgICAgICAgIjAuNDMxMTcyLCAwLjYzOTY5MSwgMC44MDQ2NjYsIDEuMDEyODcsIDEuMjIwNDMsIDEuNDI3OSwgMS42MzUxMyIsIFwKLSAgICAgICAgICAiMC40NDQ3MzQsIDAuNjUzMTIxLCAwLjgxODM1NywgMS4wMjYzLCAxLjIzMzkzLCAxLjQ0MTQ3LCAxLjY0ODc3IiwgXAotICAgICAgICAgICIwLjQ2NTc3NCwgMC42NzQyOTQsIDAuODM5MjQ2LCAxLjA0NzMzLCAxLjI1NDk2LCAxLjQ2MjUsIDEuNjY5NzkiLCBcCi0gICAgICAgICAgIjAuNDgzNzI5LCAwLjY5MjA4NywgMC44NTczMiwgMS4wNjU0NywgMS4yNzMxLCAxLjQ3Nzc3LCAxLjY4Nzk4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwNDk1MiwgMC41MDg0MTcsIDAuODM1ODE5LCAxLjI0OTAzLCAxLjY2MjY3LCAyLjA3MzEsIDIuNDg1MjIiLCBcCi0gICAgICAgICAgIjAuMTA0OTU5LCAwLjUwODQxNywgMC44MzcxMjksIDEuMjQ5MDMsIDEuNjYwNjksIDIuMDczMTMsIDIuNDg1MjciLCBcCi0gICAgICAgICAgIjAuMTA1MzM4LCAwLjUwODA4NCwgMC44MzcwNTEsIDEuMjQ5NzUsIDEuNjYwNzMsIDIuMDczMTgsIDIuNDg1MiIsIFwKLSAgICAgICAgICAiMC4xMDUxNDgsIDAuNTA3NTk3LCAwLjgzNzM1NywgMS4yNDkwNiwgMS42NjEwOCwgMi4wNzMyMSwgMi40ODY0NCIsIFwKLSAgICAgICAgICAiMC4xMDQ5NzEsIDAuNTA4MTk2LCAwLjgzNzEzNywgMS4yNDkwNCwgMS42NjA4NCwgMi4wNzMyMywgMi40ODUzNyIsIFwKLSAgICAgICAgICAiMC4xMDUxNSwgMC41MDgzMTksIDAuODM2Nzk0LCAxLjI0OTA1LCAxLjY2MDc4LCAyLjA3MzI1LCAyLjQ4NTM5IiwgXAotICAgICAgICAgICIwLjEwNTEyMSwgMC41MDgzMTgsIDAuODM3MTQyLCAxLjI0OTA1LCAxLjY2MDk2LCAyLjA3MjE4LCAyLjQ4NTMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0NjE4LCAwLjAwNDY2MiwgMC4wMDQ2NjgsIDAuMDA0NjcxLCAwLjAwNDY3MiwgMC4wMDQ2NzIsIDAuMDA0NjczIiwgXAotICAgICAgICAgICIwLjAwNDYxMiwgMC4wMDQ2NTYsIDAuMDA0NjYyLCAwLjAwNDY2NSwgMC4wMDQ2NjYsIDAuMDA0NjY2LCAwLjAwNDY2NyIsIFwKLSAgICAgICAgICAiMC4wMDQ2MDYsIDAuMDA0NjUxLCAwLjAwNDY1NywgMC4wMDQ2NTgsIDAuMDA0NjYsIDAuMDA0NjYsIDAuMDA0NjYxIiwgXAotICAgICAgICAgICIwLjAwNDYwMiwgMC4wMDQ2NDYsIDAuMDA0NjUyLCAwLjAwNDY1NCwgMC4wMDQ2NTYsIDAuMDA0NjU3LCAwLjAwNDY1NyIsIFwKLSAgICAgICAgICAiMC4wMDQ1OTksIDAuMDA0NjQzLCAwLjAwNDY0OCwgMC4wMDQ2NTEsIDAuMDA0NjUyLCAwLjAwNDY1MywgMC4wMDQ2NTQiLCBcCi0gICAgICAgICAgIjAuMDA0NTk0LCAwLjAwNDYzOCwgMC4wMDQ2NDMsIDAuMDA0NjQ2LCAwLjAwNDY0NywgMC4wMDQ2NDksIDAuMDA0NjQ4IiwgXAotICAgICAgICAgICIwLjAwNDU5MSwgMC4wMDQ2MzUsIDAuMDA0NjQxLCAwLjAwNDY0MywgMC4wMDQ2NDQsIDAuMDA0NjQ1LCAwLjAwNDY0NiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDQ5MSwgMC4wMDQ1MzMsIDAuMDA0NTM4LCAwLjAwNDU0LCAwLjAwNDU0MSwgMC4wMDQ1NDIsIDAuMDA0NTQzIiwgXAotICAgICAgICAgICIwLjAwNDQ4NSwgMC4wMDQ1MjcsIDAuMDA0NTMxLCAwLjAwNDUzNCwgMC4wMDQ1MzUsIDAuMDA0NTM2LCAwLjAwNDUzNyIsIFwKLSAgICAgICAgICAiMC4wMDQ0OCwgMC4wMDQ1MjEsIDAuMDA0NTI2LCAwLjAwNDUyOSwgMC4wMDQ1MywgMC4wMDQ1MzEsIDAuMDA0NTMxIiwgXAotICAgICAgICAgICIwLjAwNDQ3NSwgMC4wMDQ1MTcsIDAuMDA0NTIzLCAwLjAwNDUyNSwgMC4wMDQ1MjcsIDAuMDA0NTI3LCAwLjAwNDUyOCIsIFwKLSAgICAgICAgICAiMC4wMDQ0NzQsIDAuMDA0NTE1LCAwLjAwNDUyLCAwLjAwNDUyNCwgMC4wMDQ1MjUsIDAuMDA0NTI1LCAwLjAwNDUyNiIsIFwKLSAgICAgICAgICAiMC4wMDQ0NzMsIDAuMDA0NTE0LCAwLjAwNDUxOSwgMC4wMDQ1MjEsIDAuMDA0NTIyLCAwLjAwNDUyNCwgMC4wMDQ1MjQiLCBcCi0gICAgICAgICAgIjAuMDA0NDczLCAwLjAwNDUxNCwgMC4wMDQ1MiwgMC4wMDQ1MjIsIDAuMDA0NTIzLCAwLjAwNDUyNCwgMC4wMDQ1MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1Nzk4LCAwLjAwNTgzOSwgMC4wMDU4NCwgMC4wMDU4MzksIDAuMDA1ODM3LCAwLjAwNTgzNiwgMC4wMDU4MzUiLCBcCi0gICAgICAgICAgIjAuMDA1Nzk1LCAwLjAwNTgzNiwgMC4wMDU4MzcsIDAuMDA1ODM3LCAwLjAwNTgzNSwgMC4wMDU4MzMsIDAuMDA1ODMzIiwgXAotICAgICAgICAgICIwLjAwNTc5MSwgMC4wMDU4MzIsIDAuMDA1ODMzLCAwLjAwNTgzMiwgMC4wMDU4MzEsIDAuMDA1ODI5LCAwLjAwNTgyOCIsIFwKLSAgICAgICAgICAiMC4wMDU3ODgsIDAuMDA1ODI5LCAwLjAwNTgzLCAwLjAwNTgyOSwgMC4wMDU4MjcsIDAuMDA1ODI2LCAwLjAwNTgyNSIsIFwKLSAgICAgICAgICAiMC4wMDU3ODYsIDAuMDA1ODI2LCAwLjAwNTgyOCwgMC4wMDU4MjcsIDAuMDA1ODI1LCAwLjAwNTgyNCwgMC4wMDU4MjMiLCBcCi0gICAgICAgICAgIjAuMDA1Nzg0LCAwLjAwNTgyNSwgMC4wMDU4MjYsIDAuMDA1ODI2LCAwLjAwNTgyNCwgMC4wMDU4MjMsIDAuMDA1ODIyIiwgXAotICAgICAgICAgICIwLjAwNTc4MywgMC4wMDU4MjQsIDAuMDA1ODI1LCAwLjAwNTgyNiwgMC4wMDU4MjMsIDAuMDA1ODIxLCAwLjAwNTgyMiIpOwotICAgICAgfQotICAgICAgcmlzZV9wb3dlcihzY2FsYXIpIHsKLSAgICAgICAgdmFsdWVzKCIwIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiU04iOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNTE2NywgMC4wMDUyMDgsIDAuMDA1MjEyLCAwLjAwNTIxNCwgMC4wMDUyMTUsIDAuMDA1MjE1LCAwLjAwNTIxNiIsIFwKLSAgICAgICAgICAiMC4wMDUxNjIsIDAuMDA1MjAyLCAwLjAwNTIwNiwgMC4wMDUyMDgsIDAuMDA1MjA5LCAwLjAwNTIwOSwgMC4wMDUyMSIsIFwKLSAgICAgICAgICAiMC4wMDUxNTgsIDAuMDA1MTk4LCAwLjAwNTIwMiwgMC4wMDUyMDQsIDAuMDA1MjA1LCAwLjAwNTIwNSwgMC4wMDUyMDYiLCBcCi0gICAgICAgICAgIjAuMDA1MTU1LCAwLjAwNTE5NSwgMC4wMDUxOTksIDAuMDA1MiwgMC4wMDUyMDMsIDAuMDA1MjAyLCAwLjAwNTIwMyIsIFwKLSAgICAgICAgICAiMC4wMDUxNTMsIDAuMDA1MTkzLCAwLjAwNTE5NywgMC4wMDUxOTksIDAuMDA1MTk5LCAwLjAwNTIsIDAuMDA1MjAyIiwgXAotICAgICAgICAgICIwLjAwNTE1LCAwLjAwNTE5LCAwLjAwNTE5NSwgMC4wMDUxOTcsIDAuMDA1MTk3LCAwLjAwNTE5OCwgMC4wMDUxOTkiLCBcCi0gICAgICAgICAgIjAuMDA1MTQ5LCAwLjAwNTE4OSwgMC4wMDUxOTIsIDAuMDA1MTk1LCAwLjAwNTE5NSwgMC4wMDUxOTYsIDAuMDA1MTk4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0Mzg1LCAwLjAwNDQyOSwgMC4wMDQ0MzQsIDAuMDA0NDM3LCAwLjAwNDQzOCwgMC4wMDQ0MzgsIDAuMDA0NDQiLCBcCi0gICAgICAgICAgIjAuMDA0Mzc5LCAwLjAwNDQyMywgMC4wMDQ0MjgsIDAuMDA0NDMxLCAwLjAwNDQzMiwgMC4wMDQ0MzIsIDAuMDA0NDMzIiwgXAotICAgICAgICAgICIwLjAwNDM3NiwgMC4wMDQ0MTgsIDAuMDA0NDI0LCAwLjAwNDQyOCwgMC4wMDQ0MjksIDAuMDA0NDI4LCAwLjAwNDQzIiwgXAotICAgICAgICAgICIwLjAwNDM3MiwgMC4wMDQ0MTUsIDAuMDA0NDIxLCAwLjAwNDQyMywgMC4wMDQ0MjYsIDAuMDA0NDI1LCAwLjAwNDQyNyIsIFwKLSAgICAgICAgICAiMC4wMDQzNywgMC4wMDQ0MTMsIDAuMDA0NDE4LCAwLjAwNDQyMSwgMC4wMDQ0MjIsIDAuMDA0NDIzLCAwLjAwNDQyNCIsIFwKLSAgICAgICAgICAiMC4wMDQzNjcsIDAuMDA0NDEsIDAuMDA0NDE1LCAwLjAwNDQxOSwgMC4wMDQ0MTksIDAuMDA0NDIsIDAuMDA0NDIxIiwgXAotICAgICAgICAgICIwLjAwNDM2NCwgMC4wMDQ0MDgsIDAuMDA0NDEzLCAwLjAwNDQxNiwgMC4wMDQ0MTcsIDAuMDA0NDE4LCAwLjAwNDQxOCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUU4pICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4yNTg4Mzk7Ci0gICAgZnVuY3Rpb24gOiAiUUJJTlQiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5vbl91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcmlzaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjM4MzA2OSwgMC41NjE5NiwgMC43MDU0MzEsIDAuODg0ODE3LCAxLjA2NDIzLCAxLjI0MzY2LCAxLjQyMzEzIiwgXAotICAgICAgICAgICIwLjM5NDcxNywgMC41NzM1ODcsIDAuNzE3MDE4LCAwLjg5NjQyOSwgMS4wNzU4MiwgMS4yNTUyNywgMS40MzQ3MSIsIFwKLSAgICAgICAgICAiMC40MTAwNjcsIDAuNTg4OTM0LCAwLjczMjM2OCwgMC45MTE3ODEsIDEuMDkxMTcsIDEuMjcwNjIsIDEuNDUwMDYiLCBcCi0gICAgICAgICAgIjAuNDI1NDE5LCAwLjYwNDI4NywgMC43NDc3MzksIDAuOTI3MTU0LCAxLjEwNjU4LCAxLjI4NTk4LCAxLjQ2NTQyIiwgXAotICAgICAgICAgICIwLjQ0MDg2NCwgMC42MTk3MjYsIDAuNzYzMTQ5LCAwLjk0MjU2MiwgMS4xMjE5NSwgMS4zMDE0LCAxLjQ4MDg0IiwgXAotICAgICAgICAgICIwLjQ2NTQwNCwgMC42NDQyNzcsIDAuNzg3NzA0LCAwLjk2NzExNSwgMS4xNDY1MSwgMS4zMjU5NiwgMS41MDU0IiwgXAotICAgICAgICAgICIwLjQ4NjQzMSwgMC42NjUzMDYsIDAuODA4NzY0LCAwLjk4ODEyNywgMS4xNjc1NCwgMS4zNDY5OSwgMS41MjY0NCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTE1MjcsIDAuNDUyNTY0LCAwLjc0MzE5LCAxLjExMDY1LCAxLjQ3NjQsIDEuODQyMiwgMi4yMDgwNiIsIFwKLSAgICAgICAgICAiMC4wOTE1ODUsIDAuNDUxNCwgMC43NDMwOSwgMS4xMTA3NCwgMS40NzYzOCwgMS44NDIyNCwgMi4yMDgwNSIsIFwKLSAgICAgICAgICAiMC4wOTE1ODQsIDAuNDUxMjY0LCAwLjc0MzA4OCwgMS4xMTA3NSwgMS40NzYzOCwgMS44NDIyNCwgMi4yMDgwNiIsIFwKLSAgICAgICAgICAiMC4wOTE1MTcsIDAuNDUyNTg1LCAwLjc0MzYwOCwgMS4xMTA3MiwgMS40NzY1NSwgMS44NDIxOCwgMi4yMDc5MyIsIFwKLSAgICAgICAgICAiMC4wOTE1OTMsIDAuNDUxMzE2LCAwLjc0MzcsIDEuMTEwNzQsIDEuNDc2MzksIDEuODQyMjUsIDIuMjA4MDYiLCBcCi0gICAgICAgICAgIjAuMDkxNTg1LCAwLjQ1MTMxMywgMC43NDMwMzcsIDEuMTEwNzMsIDEuNDc2MzcsIDEuODQyMjQsIDIuMjA4MDUiLCBcCi0gICAgICAgICAgIjAuMDkxNTQ2LCAwLjQ1MjU4LCAwLjc0Mjk5OCwgMS4xMTA1MSwgMS40NzYyNCwgMS44NDIxNiwgMi4yMDc5NSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zNTkwNzUsIDAuNTY1MTMzLCAwLjczMDQyMywgMC45MzY5OTMsIDEuMTQzNzIsIDEuMzUwMjksIDEuNTU2OTYiLCBcCi0gICAgICAgICAgIjAuMzcwNjczLCAwLjU3Njg4OCwgMC43NDIxNzEsIDAuOTQ4ODAxLCAxLjE1NTM2LCAxLjM2MjEsIDEuNTY4NjIiLCBcCi0gICAgICAgICAgIjAuMzg1ODA2LCAwLjU5MjAxOSwgMC43NTczMDMsIDAuOTYzOTkxLCAxLjE3MDUsIDEuMzc3MTksIDEuNTgzNzUiLCBcCi0gICAgICAgICAgIjAuNDAxMjg5LCAwLjYwNzM1LCAwLjc3MjY0NSwgMC45NzkxMDIsIDEuMTg1OTUsIDEuMzkyNTEsIDEuNTk5MTEiLCBcCi0gICAgICAgICAgIjAuNDE2NjM1LCAwLjYyMjY5LCAwLjc4Nzk5LCAwLjk5NDU1LCAxLjIwMTMsIDEuNDA3ODQsIDEuNjE0NTUiLCBcCi0gICAgICAgICAgIjAuNDQwNzkyLCAwLjY0Njg2MiwgMC44MTIxNTEsIDEuMDE4NjEsIDEuMjI1NDUsIDEuNDMyMDIsIDEuNjM4NjIiLCBcCi0gICAgICAgICAgIjAuNDYxNjg4LCAwLjY2Nzc0OCwgMC44MzMwMTMsIDEuMDM5NiwgMS4yNDYzOSwgMS40NTI4OCwgMS42NTk1OCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDA0MTQsIDAuNTA3NzYxLCAwLjgzNjk3NiwgMS4yNDc1NywgMS42NTg0MiwgMi4wNzEyMiwgMi40ODI2NSIsIFwKLSAgICAgICAgICAiMC4xMDA0MzEsIDAuNTA3NzE4LCAwLjgzNjk0OCwgMS4yNDcyOCwgMS42NTg5MiwgMi4wNjkwNywgMi40ODIzOSIsIFwKLSAgICAgICAgICAiMC4xMDA0MjgsIDAuNTA3NzIyLCAwLjgzNjk0NywgMS4yNDc1MiwgMS42NTg4MywgMi4wNzExOSwgMi40ODIzOSIsIFwKLSAgICAgICAgICAiMC4xMDA0NTIsIDAuNTA3OSwgMC44MzY5MjUsIDEuMjQ3ODksIDEuNjU4MzksIDIuMDcxMTksIDIuNDgyNDgiLCBcCi0gICAgICAgICAgIjAuMTAwNCwgMC41MDc4ODgsIDAuODM2OTQyLCAxLjI0NzYzLCAxLjY1ODUyLCAyLjA3MTE3LCAyLjQ3OTk0IiwgXAotICAgICAgICAgICIwLjEwMDQ1MSwgMC41MDc3NTIsIDAuODM2OTIzLCAxLjI0Nzg4LCAxLjY1ODQsIDIuMDcxMTksIDIuNDgyNDciLCBcCi0gICAgICAgICAgIjAuMTAwMzg3LCAwLjUwNzQ2MywgMC44MzY2NzksIDEuMjQ3NjgsIDEuNjU4NTEsIDIuMDcxMTUsIDIuNDgwMTgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUk4iOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHByZXNldDsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuNDc4MTY0LCAwLjY1NzAyLCAwLjgwMDQzOSwgMC45Nzk4NTEsIDEuMTU5MjQsIDEuMzM4NjYsIDEuNTE4MDkiLCBcCi0gICAgICAgICAgIjAuNDg5NDk2LCAwLjY2ODMwNSwgMC44MTE3NjQsIDAuOTkxMTg1LCAxLjE3MDU3LCAxLjM1LCAxLjUyOTQyIiwgXAotICAgICAgICAgICIwLjUwNDM1MSwgMC42ODMxNzksIDAuODI2NjQzLCAxLjAwNjAzLCAxLjE4NTQ0LCAxLjM2NDg0LCAxLjU0NDI2IiwgXAotICAgICAgICAgICIwLjUxOTIzNiwgMC42OTgwOTUsIDAuODQxNTI4LCAxLjAyMDkyLCAxLjIwMDMyLCAxLjM3OTc0LCAxLjU1OTE2IiwgXAotICAgICAgICAgICIwLjUzMzc5MSwgMC43MTI2MiwgMC44NTYwNjcsIDEuMDM1NDcsIDEuMjE0ODgsIDEuMzk0MjcsIDEuNTczNyIsIFwKLSAgICAgICAgICAiMC41NTY2MTIsIDAuNzM1NDI1LCAwLjg3ODg4MiwgMS4wNTgzLCAxLjIzNzY5LCAxLjQxNzExLCAxLjU5NjU0IiwgXAotICAgICAgICAgICIwLjU3NTQ2MSwgMC43NTQzMiwgMC44OTc3NDYsIDEuMDc3MTUsIDEuMjU2NTQsIDEuNDM1OTcsIDEuNjE1MzkiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDkxNjU0LCAwLjQ1MjYxMiwgMC43NDQ5NjUsIDEuMTEwNzQsIDEuNDc2NTIsIDEuODQyMSwgMi4yMDc4MiIsIFwKLSAgICAgICAgICAiMC4wOTE2NTcsIDAuNDUyNTk0LCAwLjc0NDc2NiwgMS4xMTA3MywgMS40NzY0OSwgMS44NDIyNiwgMi4yMDc4NiIsIFwKLSAgICAgICAgICAiMC4wOTE2NDQsIDAuNDUyNjA0LCAwLjc0NDg1MywgMS4xMTA3MywgMS40NzY1MywgMS44NDE5OSwgMi4yMDc4MiIsIFwKLSAgICAgICAgICAiMC4wOTE2NTUsIDAuNDUyNjExLCAwLjc0NTA3LCAxLjExMDc0LCAxLjQ3NjUyLCAxLjg0MjEsIDIuMjA3ODEiLCBcCi0gICAgICAgICAgIjAuMDkxNjQxLCAwLjQ1MjYwOSwgMC43NDQ5MDcsIDEuMTEwODQsIDEuNDc2NTIsIDEuODQxOTQsIDIuMjA3OTUiLCBcCi0gICAgICAgICAgIjAuMDkxNjU3LCAwLjQ1MjYxLCAwLjc0NDgzNSwgMS4xMTA3NCwgMS40NzY1MSwgMS44NDIwOSwgMi4yMDc4MSIsIFwKLSAgICAgICAgICAiMC4wOTE2MywgMC40NTIzNDMsIDAuNzQ0OTQyLCAxLjExMDc2LCAxLjQ3NjQ3LCAxLjg0MjE3LCAyLjIwNzgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiU04iOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGNsZWFyOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC40MzU5NTIsIDAuNjE0ODE4LCAwLjc1ODI3MiwgMC45Mzc2NjMsIDEuMTE3MSwgMS4yOTY0NiwgMS40NzU4OSIsIFwKLSAgICAgICAgICAiMC40NDc3NTUsIDAuNjI2NjIzLCAwLjc3MDA3NywgMC45NDk0NzQsIDEuMTI4OTEsIDEuMzA4MjcsIDEuNDg3NjkiLCBcCi0gICAgICAgICAgIjAuNDYyMjYyLCAwLjY0MTE1LCAwLjc4NDU5OSwgMC45NjQwODksIDEuMTQzNTUsIDEuMzIyNzgsIDEuNTAyMjMiLCBcCi0gICAgICAgICAgIjAuNDc2Mjk3LCAwLjY1NTE3MywgMC43OTg2MiwgMC45NzgwMDYsIDEuMTU3NDIsIDEuMzM2ODEsIDEuNTE2MzciLCBcCi0gICAgICAgICAgIjAuNDg5ODUxLCAwLjY2ODY0NSwgMC44MTIxNzIsIDAuOTkxNTcsIDEuMTcxMDIsIDEuMzUwMzcsIDEuNTI5OCIsIFwKLSAgICAgICAgICAiMC41MTA4OTgsIDAuNjg5NzcxLCAwLjgzMzIxNywgMS4wMTI2MywgMS4xOTIxNiwgMS4zNzE0MSwgMS41NTA4NCIsIFwKLSAgICAgICAgICAiMC41Mjg4NzEsIDAuNzA3NzA0LCAwLjg1MTE2OCwgMS4wMzA1NywgMS4yMDk5NSwgMS4zODkzOSwgMS41Njg3OCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTE2NTMsIDAuNDUyNTkyLCAwLjc0MzAzMywgMS4xMTA3NCwgMS40NzY1NCwgMS44NDE5NSwgMi4yMDc4NCIsIFwKLSAgICAgICAgICAiMC4wOTE2NDgsIDAuNDUyNjE3LCAwLjc0NDgzOSwgMS4xMTA3NSwgMS40NzY1MiwgMS44NDE5LCAyLjIwNzgyIiwgXAotICAgICAgICAgICIwLjA5MTYzOCwgMC40NTI0MzksIDAuNzQ0ODYsIDEuMTEwNzQsIDEuNDc2NDUsIDEuODQyMTcsIDIuMjA3ODMiLCBcCi0gICAgICAgICAgIjAuMDkxNjQ2LCAwLjQ1MTcxNywgMC43NDUwODIsIDEuMTEwNywgMS40NzY1LCAxLjg0MjE5LCAyLjIwNzk3IiwgXAotICAgICAgICAgICIwLjA5MTYyNywgMC40NTI1MDIsIDAuNzQ0OSwgMS4xMTA3NCwgMS40NzY0NiwgMS44NDIyNCwgMi4yMDc4NyIsIFwKLSAgICAgICAgICAiMC4wOTE2NDMsIDAuNDUyNjA1LCAwLjc0MzY5OCwgMS4xMTA3NCwgMS40NzY1OSwgMS44NDIwOSwgMi4yMDc1NiIsIFwKLSAgICAgICAgICAiMC4wOTE2MzksIDAuNDUyNjA2LCAwLjc0NDkzNywgMS4xMTA3MSwgMS40NzY1MiwgMS44Mzg5MSwgMi4yMDc3OCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMTYzNTksIDAuNTIyNSwgMC42ODc3NDYsIDAuODk0MzQ0LCAxLjEwMDkyLCAxLjMwNzU0LCAxLjUxNDE1IiwgXAotICAgICAgICAgICIwLjMyNzk3MSwgMC41MzQxMzgsIDAuNjk5NDMxLCAwLjkwNjAwMSwgMS4xMTI1OCwgMS4zMTkyOSwgMS41MjU4IiwgXAotICAgICAgICAgICIwLjM0MjY3NiwgMC41NDg4MjEsIDAuNzE0MTE5LCAwLjkyMDc3NCwgMS4xMjcyNywgMS4zMzM4NCwgMS41NDA1MyIsIFwKLSAgICAgICAgICAiMC4zNTY4MzUsIDAuNTYyOTk0LCAwLjcyODM0OSwgMC45MzQ4NTIsIDEuMTQxNDMsIDEuMzQ4MDQsIDEuNTU0NjQiLCBcCi0gICAgICAgICAgIjAuMzcwNDY2LCAwLjU3NjY0MSwgMC43NDE4OTQsIDAuOTQ4NDU2LCAxLjE1NTA0LCAxLjM2MTY2LCAxLjU2ODI3IiwgXAotICAgICAgICAgICIwLjM5MTEzNiwgMC41OTcyNzksIDAuNzYyNTksIDAuOTY5MTE2LCAxLjE3NTcyLCAxLjM4MjQ4LCAxLjU4ODk0IiwgXAotICAgICAgICAgICIwLjQwODk4MiwgMC42MTUxNDcsIDAuNzgwNDUxLCAwLjk4Njk5NiwgMS4xOTM1NywgMS40MDAxOSwgMS42MDY3OCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDAzOTcsIDAuNTA3OTE3LCAwLjgzNjk3NiwgMS4yNDc5NywgMS42NTkxOSwgMi4wNzAzOSwgMi40ODE3NSIsIFwKLSAgICAgICAgICAiMC4xMDAzNTcsIDAuNTA3OTY3LCAwLjgzNzAzMiwgMS4yNDc5MiwgMS42NTkxOSwgMi4wNzA2NCwgMi40ODE3NSIsIFwKLSAgICAgICAgICAiMC4xMDAzNjIsIDAuNTA3ODUsIDAuODM2NjgxLCAxLjI0Nzk1LCAxLjY1OTE4LCAyLjA3MDQxLCAyLjQ4MTc3IiwgXAotICAgICAgICAgICIwLjEwMDM1OCwgMC41MDc5NzcsIDAuODM3MDM3LCAxLjI0Nzk5LCAxLjY1OTI3LCAyLjA3MDQ5LCAyLjQ4MTgzIiwgXAotICAgICAgICAgICIwLjEwMDM3OCwgMC41MDc5MDksIDAuODM3MDc0LCAxLjI0Nzk4LCAxLjY1OTE5LCAyLjA3MDUxLCAyLjQ4MTc1IiwgXAotICAgICAgICAgICIwLjEwMDM2MSwgMC41MDc4MzIsIDAuODM2NjAxLCAxLjI0ODI3LCAxLjY1OTc2LCAyLjA3MDQzLCAyLjQ4MTc3IiwgXAotICAgICAgICAgICIwLjEwMDM1NCwgMC41MDc4MjcsIDAuODM2Njk4LCAxLjI0Nzk0LCAxLjY1OTE3LCAyLjA3MDQzLCAyLjQ4MTc0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDQ5MSwgMC4wMDQ1MzMsIDAuMDA0NTM4LCAwLjAwNDU0LCAwLjAwNDU0MSwgMC4wMDQ1NDIsIDAuMDA0NTQzIiwgXAotICAgICAgICAgICIwLjAwNDQ4NSwgMC4wMDQ1MjcsIDAuMDA0NTMxLCAwLjAwNDUzNCwgMC4wMDQ1MzUsIDAuMDA0NTM2LCAwLjAwNDUzNyIsIFwKLSAgICAgICAgICAiMC4wMDQ0OCwgMC4wMDQ1MjEsIDAuMDA0NTI2LCAwLjAwNDUyOSwgMC4wMDQ1MywgMC4wMDQ1MzEsIDAuMDA0NTMxIiwgXAotICAgICAgICAgICIwLjAwNDQ3NSwgMC4wMDQ1MTcsIDAuMDA0NTIzLCAwLjAwNDUyNSwgMC4wMDQ1MjcsIDAuMDA0NTI3LCAwLjAwNDUyOCIsIFwKLSAgICAgICAgICAiMC4wMDQ0NzQsIDAuMDA0NTE1LCAwLjAwNDUyLCAwLjAwNDUyNCwgMC4wMDQ1MjUsIDAuMDA0NTI1LCAwLjAwNDUyNiIsIFwKLSAgICAgICAgICAiMC4wMDQ0NzMsIDAuMDA0NTE0LCAwLjAwNDUxOSwgMC4wMDQ1MjEsIDAuMDA0NTIyLCAwLjAwNDUyNCwgMC4wMDQ1MjQiLCBcCi0gICAgICAgICAgIjAuMDA0NDczLCAwLjAwNDUxNCwgMC4wMDQ1MiwgMC4wMDQ1MjIsIDAuMDA0NTIzLCAwLjAwNDUyNCwgMC4wMDQ1MjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQ2MTgsIDAuMDA0NjYyLCAwLjAwNDY2OCwgMC4wMDQ2NzEsIDAuMDA0NjcyLCAwLjAwNDY3MiwgMC4wMDQ2NzMiLCBcCi0gICAgICAgICAgIjAuMDA0NjEyLCAwLjAwNDY1NiwgMC4wMDQ2NjIsIDAuMDA0NjY1LCAwLjAwNDY2NiwgMC4wMDQ2NjYsIDAuMDA0NjY3IiwgXAotICAgICAgICAgICIwLjAwNDYwNiwgMC4wMDQ2NTEsIDAuMDA0NjU3LCAwLjAwNDY1OCwgMC4wMDQ2NiwgMC4wMDQ2NiwgMC4wMDQ2NjEiLCBcCi0gICAgICAgICAgIjAuMDA0NjAyLCAwLjAwNDY0NiwgMC4wMDQ2NTIsIDAuMDA0NjU0LCAwLjAwNDY1NiwgMC4wMDQ2NTcsIDAuMDA0NjU3IiwgXAotICAgICAgICAgICIwLjAwNDU5OSwgMC4wMDQ2NDMsIDAuMDA0NjQ4LCAwLjAwNDY1MSwgMC4wMDQ2NTIsIDAuMDA0NjUzLCAwLjAwNDY1NCIsIFwKLSAgICAgICAgICAiMC4wMDQ1OTQsIDAuMDA0NjM4LCAwLjAwNDY0MywgMC4wMDQ2NDYsIDAuMDA0NjQ3LCAwLjAwNDY0OSwgMC4wMDQ2NDgiLCBcCi0gICAgICAgICAgIjAuMDA0NTkxLCAwLjAwNDYzNSwgMC4wMDQ2NDEsIDAuMDA0NjQzLCAwLjAwNDY0NCwgMC4wMDQ2NDUsIDAuMDA0NjQ2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUk4iOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNTc5OCwgMC4wMDU4MzksIDAuMDA1ODQsIDAuMDA1ODM5LCAwLjAwNTgzNywgMC4wMDU4MzYsIDAuMDA1ODM1IiwgXAotICAgICAgICAgICIwLjAwNTc5NSwgMC4wMDU4MzYsIDAuMDA1ODM3LCAwLjAwNTgzNywgMC4wMDU4MzUsIDAuMDA1ODMzLCAwLjAwNTgzMyIsIFwKLSAgICAgICAgICAiMC4wMDU3OTEsIDAuMDA1ODMyLCAwLjAwNTgzMywgMC4wMDU4MzIsIDAuMDA1ODMxLCAwLjAwNTgyOSwgMC4wMDU4MjgiLCBcCi0gICAgICAgICAgIjAuMDA1Nzg4LCAwLjAwNTgyOSwgMC4wMDU4MywgMC4wMDU4MjksIDAuMDA1ODI3LCAwLjAwNTgyNiwgMC4wMDU4MjUiLCBcCi0gICAgICAgICAgIjAuMDA1Nzg2LCAwLjAwNTgyNiwgMC4wMDU4MjgsIDAuMDA1ODI3LCAwLjAwNTgyNSwgMC4wMDU4MjQsIDAuMDA1ODIzIiwgXAotICAgICAgICAgICIwLjAwNTc4NCwgMC4wMDU4MjUsIDAuMDA1ODI2LCAwLjAwNTgyNiwgMC4wMDU4MjQsIDAuMDA1ODIzLCAwLjAwNTgyMiIsIFwKLSAgICAgICAgICAiMC4wMDU3ODMsIDAuMDA1ODI0LCAwLjAwNTgyNSwgMC4wMDU4MjYsIDAuMDA1ODIzLCAwLjAwNTgyMSwgMC4wMDU4MjIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoc2NhbGFyKSB7Ci0gICAgICAgIHZhbHVlcygiMCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQzODUsIDAuMDA0NDI5LCAwLjAwNDQzNCwgMC4wMDQ0MzcsIDAuMDA0NDM4LCAwLjAwNDQzOCwgMC4wMDQ0NCIsIFwKLSAgICAgICAgICAiMC4wMDQzNzksIDAuMDA0NDIzLCAwLjAwNDQyOCwgMC4wMDQ0MzEsIDAuMDA0NDMyLCAwLjAwNDQzMiwgMC4wMDQ0MzMiLCBcCi0gICAgICAgICAgIjAuMDA0Mzc2LCAwLjAwNDQxOCwgMC4wMDQ0MjQsIDAuMDA0NDI4LCAwLjAwNDQyOSwgMC4wMDQ0MjgsIDAuMDA0NDMiLCBcCi0gICAgICAgICAgIjAuMDA0MzcyLCAwLjAwNDQxNSwgMC4wMDQ0MjEsIDAuMDA0NDIzLCAwLjAwNDQyNiwgMC4wMDQ0MjUsIDAuMDA0NDI3IiwgXAotICAgICAgICAgICIwLjAwNDM3LCAwLjAwNDQxMywgMC4wMDQ0MTgsIDAuMDA0NDIxLCAwLjAwNDQyMiwgMC4wMDQ0MjMsIDAuMDA0NDI0IiwgXAotICAgICAgICAgICIwLjAwNDM2NywgMC4wMDQ0MSwgMC4wMDQ0MTUsIDAuMDA0NDE5LCAwLjAwNDQxOSwgMC4wMDQ0MiwgMC4wMDQ0MjEiLCBcCi0gICAgICAgICAgIjAuMDA0MzY0LCAwLjAwNDQwOCwgMC4wMDQ0MTMsIDAuMDA0NDE2LCAwLjAwNDQxNywgMC4wMDQ0MTgsIDAuMDA0NDE4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1MTY3LCAwLjAwNTIwOCwgMC4wMDUyMTIsIDAuMDA1MjE0LCAwLjAwNTIxNSwgMC4wMDUyMTUsIDAuMDA1MjE2IiwgXAotICAgICAgICAgICIwLjAwNTE2MiwgMC4wMDUyMDIsIDAuMDA1MjA2LCAwLjAwNTIwOCwgMC4wMDUyMDksIDAuMDA1MjA5LCAwLjAwNTIxIiwgXAotICAgICAgICAgICIwLjAwNTE1OCwgMC4wMDUxOTgsIDAuMDA1MjAyLCAwLjAwNTIwNCwgMC4wMDUyMDUsIDAuMDA1MjA1LCAwLjAwNTIwNiIsIFwKLSAgICAgICAgICAiMC4wMDUxNTUsIDAuMDA1MTk1LCAwLjAwNTE5OSwgMC4wMDUyLCAwLjAwNTIwMywgMC4wMDUyMDIsIDAuMDA1MjAzIiwgXAotICAgICAgICAgICIwLjAwNTE1MywgMC4wMDUxOTMsIDAuMDA1MTk3LCAwLjAwNTE5OSwgMC4wMDUxOTksIDAuMDA1MiwgMC4wMDUyMDIiLCBcCi0gICAgICAgICAgIjAuMDA1MTUsIDAuMDA1MTksIDAuMDA1MTk1LCAwLjAwNTE5NywgMC4wMDUxOTcsIDAuMDA1MTk4LCAwLjAwNTE5OSIsIFwKLSAgICAgICAgICAiMC4wMDUxNDksIDAuMDA1MTg5LCAwLjAwNTE5MiwgMC4wMDUxOTUsIDAuMDA1MTk1LCAwLjAwNTE5NiwgMC4wMDUxOTgiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFJOKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA1ODY2MjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA1ODYyMzI7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNTg2NjI7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNDE3LCAwLjAwMDQwNSwgMC4wMDAzOTYsIDAuMDAwMzksIDAuMDAwMzg3LCAwLjAwMDM4NCwgMC4wMDAzODMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDI1OTcsIDAuMDAyNTg5LCAwLjAwMjU4NCwgMC4wMDI1NzksIDAuMDAyNTc4LCAwLjAwMjU3NiwgMC4wMDI1NzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUk4iOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFEJiFTRSYhU0kmU04iOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1NFX0VRXzBfQU5fU0lfRVFfMF9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgZmFsbF9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuNDc3MTA2LCAwLjQ4ODc5OSwgMC41MDM0OTcsIDAuNTE4MjkxLCAwLjUzMzAzMywgMC41NTU2NTcsIDAuNTc0NzQyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogcmVjb3ZlcnlfcmlzaW5nOwotICAgICAgd2hlbiA6ICJTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJTTiA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChyZWNvdmVyeV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNDM3NSwgMC4xMjYyNSwgMC4xMTM3NSwgMC4wOTUsIDAuMDc2MjUsIDAuMDUzNzUsIDAuMDMyNSIsIFwKLSAgICAgICAgICAiMC4xNTUsIDAuMTM3NSwgMC4xMjUsIDAuMTA2MjUsIDAuMDg3NSwgMC4wNjUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMTY3NSwgMC4xNTYyNSwgMC4xMzc1LCAwLjExODc1LCAwLjEwNjI1LCAwLjA3NzUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIjAuMTg2MjUsIDAuMTY4NzUsIDAuMTU2MjUsIDAuMTM3NSwgMC4xMTg3NSwgMC4wOTYyNSwgMC4wNjg3NSIsIFwKLSAgICAgICAgICAiMC4xOTg3NSwgMC4xODc1LCAwLjE2ODc1LCAwLjE1LCAwLjEzNzUsIDAuMTA4NzUsIDAuMDg3NSIsIFwKLSAgICAgICAgICAiMC4yMjEyNSwgMC4yMSwgMC4xOTEyNSwgMC4xNzg3NSwgMC4xNiwgMC4xMzEyNSwgMC4xMSIsIFwKLSAgICAgICAgICAiMC4yNDI1LCAwLjIzMTI1LCAwLjIxMjUsIDAuMiwgMC4xODEyNSwgMC4xNTI1LCAwLjEzMTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIHRpbWluZ190eXBlIDogcmVjb3ZlcnlfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRCYhU0UmIVNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9TRV9FUV8wX0FOX1NJX0VRXzAgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQocmVjb3ZlcnlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjE4NzUsIDAuMjMsIDAuMjQyNSwgMC4yNjEyNSwgMC4yNzM3NSwgMC4yOTYyNSwgMC4zMTEyNSIsIFwKLSAgICAgICAgICAiMC4yMDc1LCAwLjIxODc1LCAwLjIzMTI1LCAwLjI1LCAwLjI2MjUsIDAuMjg1LCAwLjMiLCBcCi0gICAgICAgICAgIjAuMTk1LCAwLjIwNjI1LCAwLjIxODc1LCAwLjIzMTI1LCAwLjI1LCAwLjI2NjI1LCAwLjI4NzUiLCBcCi0gICAgICAgICAgIjAuMTgyNSwgMC4xOTM3NSwgMC4yMDYyNSwgMC4yMTg3NSwgMC4yMzc1LCAwLjI1Mzc1LCAwLjI3NSIsIFwKLSAgICAgICAgICAiMC4xNywgMC4xODEyNSwgMC4xOTM3NSwgMC4yMTI1LCAwLjIyNSwgMC4yNDc1LCAwLjI2MjUiLCBcCi0gICAgICAgICAgIjAuMTUzNzUsIDAuMTY1LCAwLjE3NzUsIDAuMTk2MjUsIDAuMjA4NzUsIDAuMjMxMjUsIDAuMjQ2MjUiLCBcCi0gICAgICAgICAgIjAuMTM4NzUsIDAuMTU2MjUsIDAuMTY4NzUsIDAuMTgxMjUsIDAuMTkzNzUsIDAuMjE2MjUsIDAuMjM3NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJlbW92YWxfcmlzaW5nOwotICAgICAgd2hlbiA6ICJTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJTTiA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChyZW1vdmFsX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMzc1LCAtMC4wMjYyNSwgLTAuMDA3NSwgMC4wMDUsIDAuMDIzNzUsIDAuMDQ2MjUsIDAuMDYxMjUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wMzc1LCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAuMDA2MjUsIDAuMDM1LCAwLjA1IiwgXAotICAgICAgICAgICItMC4wNjEyNSwgLTAuMDUsIC0wLjAzNzUsIC0wLjAxODc1LCAtMC4wMDYyNSwgMC4wMTYyNSwgMC4wMzc1IiwgXAotICAgICAgICAgICItMC4wOCwgLTAuMDY4NzUsIC0wLjA1LCAtMC4wMzc1LCAtMC4wMTg3NSwgMC4wMDM3NSwgMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjA5MjUsIC0wLjA4MTI1LCAtMC4wNjg3NSwgLTAuMDUsIC0wLjAzNzUsIC0wLjAxNSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMTIxMjUsIC0wLjExLCAtMC4wOTEyNSwgLTAuMDc4NzUsIC0wLjA2LCAtMC4wMzc1LCAtMC4wMTYyNSIsIFwKLSAgICAgICAgICAiLTAuMTQyNSwgLTAuMTI1LCAtMC4xMTI1LCAtMC4xLCAtMC4wODEyNSwgLTAuMDU4NzUsIC0wLjAzNzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFNFKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE0ODkxOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTQ4ODAxOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTQ4OTE7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA0MDE2LCAwLjAwNDAwNCwgMC4wMDM5OTksIDAuMDAzOTk2LCAwLjAwMzk5NSwgMC4wMDM5OTMsIDAuMDAzOTk0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA1MTMxLCAwLjAwNTExNCwgMC4wMDUxMDMsIDAuMDA1MDk1LCAwLjAwNTA5LCAwLjAwNTA4MywgMC4wMDUwODEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiUk4mU04iOwotICAgICAgc2RmX2NvbmQgOiAiUk5fRVFfMV9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjA1LCAtMC4wMzI1LCAtMC4wMiwgLTAuMDA3NSwgMC4wMDUsIDAuMDI3NSwgMC4wNDg3NSIsIFwKLSAgICAgICAgICAiLTAuMDYxMjUsIC0wLjA0Mzc1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLjAxNjI1LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjA3Mzc1LCAtMC4wNjI1LCAtMC4wNSwgLTAuMDMxMjUsIC0wLjAxODc1LCAtMC4wMDI1LCAwLjAxODc1IiwgXAotICAgICAgICAgICItMC4wOTI1LCAtMC4wNzUsIC0wLjA2MjUsIC0wLjA1LCAtMC4wMzc1LCAtMC4wMTUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjEwNSwgLTAuMDkzNzUsIC0wLjA3NSwgLTAuMDYyNSwgLTAuMDUsIC0wLjAyNzUsIC0wLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjEyNzUsIC0wLjExLCAtMC4wOTc1LCAtMC4wODUsIC0wLjA3MjUsIC0wLjA1LCAtMC4wMjg3NSIsIFwKLSAgICAgICAgICAiLTAuMTQyNSwgLTAuMTMxMjUsIC0wLjExMjUsIC0wLjEsIC0wLjA4NzUsIC0wLjA2NSwgLTAuMDUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMTI1LCAtMC4wMDEyNSwgMC4wMTEyNSwgMC4wMjM3NSwgMC4wMzYyNSwgMC4wNTg3NSwgMC4wOCIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxMjUsIDAsIDAuMDEyNSwgMC4wMjUsIDAuMDQ3NSwgMC4wNjg3NSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAyNSwgLTAuMDEyNSwgMCwgMC4wMTI1LCAwLjAzNSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjAzNzUsIC0wLjAyNSwgLTAuMDEyNSwgMCwgMC4wMjI1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICItMC4wNjEyNSwgLTAuMDUsIC0wLjAzNzUsIC0wLjAyNSwgLTAuMDEyNSwgMC4wMSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDgzNzUsIC0wLjA3MjUsIC0wLjA2LCAtMC4wNDEyNSwgLTAuMDI4NzUsIC0wLjAwNjI1LCAwLjAwODc1IiwgXAotICAgICAgICAgICItMC4wOTg3NSwgLTAuMDg3NSwgLTAuMDc1LCAtMC4wNTYyNSwgLTAuMDQzNzUsIC0wLjAyNzUsIC0wLjAwNjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJSTiZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJSTl9FUV8xX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjgxMjUsIDAuMjYzNzUsIDAuMjUxMjUsIDAuMjMyNSwgMC4yMTM3NSwgMC4xOTEyNSwgMC4xNyIsIFwKLSAgICAgICAgICAiMC4yOTI1LCAwLjI3NSwgMC4yNTYyNSwgMC4yNDM3NSwgMC4yMjUsIDAuMjAyNSwgMC4xODEyNSIsIFwKLSAgICAgICAgICAiMC4zMDUsIDAuMjg3NSwgMC4yNzUsIDAuMjU2MjUsIDAuMjM3NSwgMC4yMTUsIDAuMTkzNzUiLCBcCi0gICAgICAgICAgIjAuMzE3NSwgMC4zLCAwLjI4NzUsIDAuMjY4NzUsIDAuMjUsIDAuMjI3NSwgMC4yMDYyNSIsIFwKLSAgICAgICAgICAiMC4zMywgMC4zMTg3NSwgMC4zLCAwLjI4MTI1LCAwLjI2ODc1LCAwLjI0LCAwLjIyNSIsIFwKLSAgICAgICAgICAiMC4zNTI1LCAwLjM0MTI1LCAwLjMyMjUsIDAuMzAzNzUsIDAuMjkxMjUsIDAuMjYyNSwgMC4yNDc1IiwgXAotICAgICAgICAgICIwLjM3Mzc1LCAwLjM1NjI1LCAwLjM0Mzc1LCAwLjMyNSwgMC4zMDYyNSwgMC4yODM3NSwgMC4yNjI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzA2MjUsIDAuMjk1LCAwLjI3NjI1LCAwLjI1NzUsIDAuMjQ1LCAwLjIxNjI1LCAwLjIwMTI1IiwgXAotICAgICAgICAgICIwLjMxNzUsIDAuMzA2MjUsIDAuMjg3NSwgMC4yNzUsIDAuMjU2MjUsIDAuMjMzNzUsIDAuMjEyNSIsIFwKLSAgICAgICAgICAiMC4zMzYyNSwgMC4zMTg3NSwgMC4zMDYyNSwgMC4yODc1LCAwLjI2ODc1LCAwLjI0NjI1LCAwLjIyNSIsIFwKLSAgICAgICAgICAiMC4zNDg3NSwgMC4zMzEyNSwgMC4zMTg3NSwgMC4zLCAwLjI4MTI1LCAwLjI1ODc1LCAwLjI0Mzc1IiwgXAotICAgICAgICAgICIwLjM2MTI1LCAwLjM1LCAwLjMzMTI1LCAwLjMxODc1LCAwLjMsIDAuMjcxMjUsIDAuMjU2MjUiLCBcCi0gICAgICAgICAgIjAuMzc3NSwgMC4zNjYyNSwgMC4zNDc1LCAwLjMyODc1LCAwLjMxNjI1LCAwLjI5Mzc1LCAwLjI3MjUiLCBcCi0gICAgICAgICAgIjAuMzkyNSwgMC4zODEyNSwgMC4zNjI1LCAwLjM0Mzc1LCAwLjMzMTI1LCAwLjMwMjUsIDAuMjg3NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oU0kpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDU4OTE4MjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA1ODcyNDg7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNTg5MTgyOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjc2NywgMC4wMDI3NTgsIDAuMDAyNzUyLCAwLjAwMjc0OSwgMC4wMDI3NDcsIDAuMDAyNzQzLCAwLjAwMjc0MSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNDI2NywgMC4wMDQyNjMsIDAuMDA0MjYsIDAuMDA0MjU4LCAwLjAwNDI1NywgMC4wMDQyNTUsIDAuMDA0MjUzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlJOJlNFJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIlJOX0VRXzFfQU5fU0VfRVFfMV9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjE0Mzc1LCAtMC4xMzI1LCAtMC4xMiwgLTAuMTEzNzUsIC0wLjEwMTI1LCAtMC4wODUsIC0wLjA3NjI1IiwgXAotICAgICAgICAgICItMC4xNTUsIC0wLjE0Mzc1LCAtMC4xMzEyNSwgLTAuMTI1LCAtMC4xMTI1LCAtMC4wOTYyNSwgLTAuMDg3NSIsIFwKLSAgICAgICAgICAiLTAuMTY3NSwgLTAuMTU2MjUsIC0wLjE1LCAtMC4xMzc1LCAtMC4xMjUsIC0wLjExNSwgLTAuMSIsIFwKLSAgICAgICAgICAiLTAuMTgsIC0wLjE3NSwgLTAuMTYyNSwgLTAuMTUsIC0wLjE0Mzc1LCAtMC4xMjc1LCAtMC4xMTI1IiwgXAotICAgICAgICAgICItMC4xOTI1LCAtMC4xODc1LCAtMC4xNzUsIC0wLjE2MjUsIC0wLjE1NjI1LCAtMC4xNCwgLTAuMTI1IiwgXAotICAgICAgICAgICItMC4yMTUsIC0wLjIxLCAtMC4xOTc1LCAtMC4xODUsIC0wLjE3ODc1LCAtMC4xNjI1LCAtMC4xNDc1IiwgXAotICAgICAgICAgICItMC4yMzYyNSwgLTAuMjI1LCAtMC4yMTg3NSwgLTAuMjA2MjUsIC0wLjE5Mzc1LCAtMC4xNzc1LCAtMC4xNjg3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAzMTI1LCAtMC4wMTM3NSwgLTAuMDAxMjUsIDAuMDExMjUsIDAuMDIzNzUsIDAuMDQ2MjUsIDAuMDYxMjUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAyNSwgLTAuMDEyNSwgMCwgMC4wMTI1LCAwLjAzNSwgMC4wNSIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAxMjUsIDAsIDAuMDIyNSwgMC4wMzc1IiwgXAotICAgICAgICAgICItMC4wNjc1LCAtMC4wNSwgLTAuMDM3NSwgLTAuMDI1LCAtMC4wMTI1LCAwLjAxLCAwLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDgsIC0wLjA2MjUsIC0wLjA1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAwMjUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDk2MjUsIC0wLjA4NSwgLTAuMDcyNSwgLTAuMDUzNzUsIC0wLjA0MTI1LCAtMC4wMTg3NSwgLTAuMDAzNzUiLCBcCi0gICAgICAgICAgIi0wLjExMTI1LCAtMC4xLCAtMC4wODc1LCAtMC4wNjg3NSwgLTAuMDU2MjUsIC0wLjA0LCAtMC4wMTg3NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiUk4mU0UmU04iOwotICAgICAgc2RmX2NvbmQgOiAiUk5fRVFfMV9BTl9TRV9FUV8xX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjkzNzUsIDAuMjc2MjUsIDAuMjYzNzUsIDAuMjQ1LCAwLjIyNjI1LCAwLjIwMzc1LCAwLjE4MjUiLCBcCi0gICAgICAgICAgIjAuMzA1LCAwLjI4NzUsIDAuMjc1LCAwLjI1NjI1LCAwLjIzNzUsIDAuMjE1LCAwLjE5Mzc1IiwgXAotICAgICAgICAgICIwLjMxNzUsIDAuMzA2MjUsIDAuMjg3NSwgMC4yNjg3NSwgMC4yNTYyNSwgMC4yMjc1LCAwLjIxMjUiLCBcCi0gICAgICAgICAgIjAuMzMsIDAuMzE4NzUsIDAuMywgMC4yODEyNSwgMC4yNjg3NSwgMC4yNDYyNSwgMC4yMjUiLCBcCi0gICAgICAgICAgIjAuMzQyNSwgMC4zMzEyNSwgMC4zMTI1LCAwLjMsIDAuMjgxMjUsIDAuMjU4NzUsIDAuMjM3NSIsIFwKLSAgICAgICAgICAiMC4zNjUsIDAuMzUzNzUsIDAuMzM1LCAwLjMyMjUsIDAuMzAzNzUsIDAuMjgxMjUsIDAuMjYiLCBcCi0gICAgICAgICAgIjAuMzg2MjUsIDAuMzc1LCAwLjM1NjI1LCAwLjMzNzUsIDAuMzI1LCAwLjI5NjI1LCAwLjI4MTI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjMxMjUsIDAuMjIsIDAuMjAxMjUsIDAuMTg4NzUsIDAuMTcsIDAuMTQxMjUsIDAuMTIiLCBcCi0gICAgICAgICAgIjAuMjQyNSwgMC4yMzEyNSwgMC4yMTI1LCAwLjIsIDAuMTgxMjUsIDAuMTUyNSwgMC4xMzEyNSIsIFwKLSAgICAgICAgICAiMC4yNTUsIDAuMjQzNzUsIDAuMjI1LCAwLjIxMjUsIDAuMTkzNzUsIDAuMTY1LCAwLjE0Mzc1IiwgXAotICAgICAgICAgICIwLjI2NzUsIDAuMjU2MjUsIDAuMjM3NSwgMC4yMjUsIDAuMjA2MjUsIDAuMTc3NSwgMC4xNTYyNSIsIFwKLSAgICAgICAgICAiMC4yOCwgMC4yNjg3NSwgMC4yNSwgMC4yMzc1LCAwLjIxODc1LCAwLjE5LCAwLjE2ODc1IiwgXAotICAgICAgICAgICIwLjMwMjUsIDAuMjg1LCAwLjI3MjUsIDAuMjUzNzUsIDAuMjM1LCAwLjIxMjUsIDAuMTkxMjUiLCBcCi0gICAgICAgICAgIjAuMzE3NSwgMC4zMDYyNSwgMC4yODc1LCAwLjI3NSwgMC4yNTYyNSwgMC4yMjc1LCAwLjIwNjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTTikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNzc5OTE7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNzc5OTE7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNzc5NzY7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzMxLCAwLjAwMDMzMSwgMC4wMDAzMzEsIDAuMDAwMzMsIDAuMDAwMzMsIDAuMDAwMzMsIDAuMDAwMzMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAzMzEsIDAuMDAwMzMxLCAwLjAwMDMzMSwgMC4wMDAzMzIsIDAuMDAwMzMyLCAwLjAwMDMzMiwgMC4wMDAzMzEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiU04iOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFEJiFSTiYhU0UmIVNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9STl9FUV8wX0FOX1NFX0VRXzBfQU5fU0lfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjMxNjM1OSwgMC4zMjc5NzEsIDAuMzQyNjc0LCAwLjM1NjgzNSwgMC4zNzAzMzQsIDAuMzkxMTI5LCAwLjQwODg3OCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJlY292ZXJ5X3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiUk4iOwotICAgICAgc2RmX2NvbmQgOiAiUk4gPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQocmVjb3ZlcnlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDUsIDAuMDM4NzUsIDAuMDIsIDAuMDAxMjUsIC0wLjAxMTI1LCAtMC4wNCwgLTAuMDYxMjUiLCBcCi0gICAgICAgICAgIjAuMDYxMjUsIDAuMDUsIDAuMDMxMjUsIDAuMDEyNSwgMCwgLTAuMDI4NzUsIC0wLjA1IiwgXAotICAgICAgICAgICIwLjA3Mzc1LCAwLjA2MjUsIDAuMDQzNzUsIDAuMDMxMjUsIDAuMDEyNSwgLTAuMDE2MjUsIC0wLjAzNzUiLCBcCi0gICAgICAgICAgIjAuMDg2MjUsIDAuMDc1LCAwLjA2MjUsIDAuMDQzNzUsIDAuMDI1LCAwLjAwMjUsIC0wLjAxODc1IiwgXAotICAgICAgICAgICIwLjEwNSwgMC4wOTM3NSwgMC4wNzUsIDAuMDU2MjUsIDAuMDQzNzUsIDAuMDE1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiMC4xMjc1LCAwLjExLCAwLjA5NzUsIDAuMDc4NzUsIDAuMDYsIDAuMDM3NSwgMC4wMTYyNSIsIFwKLSAgICAgICAgICAiMC4xNDI1LCAwLjEzMTI1LCAwLjExMjUsIDAuMSwgMC4wODEyNSwgMC4wNTg3NSwgMC4wMzEyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJlbW92YWxfcmlzaW5nOwotICAgICAgd2hlbiA6ICJSTiI7Ci0gICAgICBzZGZfY29uZCA6ICJSTiA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChyZW1vdmFsX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2MjUsIDAuMDczNzUsIDAuMDkyNSwgMC4xMDUsIDAuMTIzNzUsIDAuMTQ2MjUsIDAuMTY3NSIsIFwKLSAgICAgICAgICAiMC4wNTEyNSwgMC4wNjI1LCAwLjA4MTI1LCAwLjA5Mzc1LCAwLjExMjUsIDAuMTM1LCAwLjE1NjI1IiwgXAotICAgICAgICAgICIwLjAzODc1LCAwLjA1LCAwLjA2MjUsIDAuMDgxMjUsIDAuMDkzNzUsIDAuMTIyNSwgMC4xNDM3NSIsIFwKLSAgICAgICAgICAiMC4wMjYyNSwgMC4wMzc1LCAwLjA1LCAwLjA2ODc1LCAwLjA4MTI1LCAwLjEwMzc1LCAwLjEyNSIsIFwKLSAgICAgICAgICAiMC4wMDc1LCAwLjAxODc1LCAwLjAzNzUsIDAuMDUsIDAuMDY4NzUsIDAuMDkxMjUsIDAuMTEyNSIsIFwKLSAgICAgICAgICAiLTAuMDE1LCAtMC4wMDM3NSwgMC4wMTUsIDAuMDI3NSwgMC4wNDYyNSwgMC4wNjg3NSwgMC4wOSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAxODc1LCAtMC4wMDYyNSwgMC4wMTI1LCAwLjAyNSwgMC4wNDc1LCAwLjA2ODc1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogU0RGRlNYMiAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChTREZGU1gyKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMzk4Mzg4OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIGZmIChOMzUsUUJJTlQpIHsKLSAgICBuZXh0X3N0YXRlIDogIigoU0UgU0kpICsgKCFTRSBEKSkiOwotICAgIGNsb2NrZWRfb24gOiAiQ0siOwotICAgIHByZXNldCA6ICIoIVNOKSI7Ci0gIH0KLSAgcGluKENLKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2Mjk3Mzg7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjI5NDkzOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDYyOTczODsKLSAgICBjbG9jayA6IHRydWU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyMTU0LCAwLjAwMjE0MSwgMC4wMDIxMzIsIDAuMDAyMTI0LCAwLjAwMjEyLCAwLjAwMjExMiwgMC4wMDIxMDgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDU1ODUsIDAuMDA1NTc4LCAwLjAwNTU2OCwgMC4wMDU1NjMsIDAuMDA1NTYxLCAwLjAwNTU2MiwgMC4wMDU1NjQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFEJiFTRSYhU0kmU04iOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1NFX0VRXzBfQU5fU0lfRVFfMF9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMzU2OTY5LCAwLjM2ODcxNiwgMC4zODM3ODgsIDAuMzk5MzY5LCAwLjQxNDczMSwgMC40MzkxMjMsIDAuNDYwMjQ4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4yNDk0MDMsIDAuMjYxMDkzLCAwLjI3NTcxNywgMC4yOTA2ODEsIDAuMzA1NCwgMC4zMjg1MDMsIDAuMzQ3ODQ3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihEKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA1NTMzMTc7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNTUxNzc0OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDU1MzMxNzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDI4NTIsIDAuMDAyODQyLCAwLjAwMjgzNywgMC4wMDI4MzQsIDAuMDAyODMxLCAwLjAwMjgyNywgMC4wMDI4MjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDM5MiwgMC4wMDM5MTUsIDAuMDAzOTEyLCAwLjAwMzkxMSwgMC4wMDM5MDksIDAuMDAzOTA4LCAwLjAwMzkwNiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhU0UmU04iOwotICAgICAgc2RmX2NvbmQgOiAiU0VfRVFfMF9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjEzNzUsIC0wLjEyNjI1LCAtMC4xMTM3NSwgLTAuMTAxMjUsIC0wLjA5NSwgLTAuMDc4NzUsIC0wLjA2Mzc1IiwgXAotICAgICAgICAgICItMC4xNDg3NSwgLTAuMTM3NSwgLTAuMTI1LCAtMC4xMTI1LCAtMC4xMDYyNSwgLTAuMDksIC0wLjA3NSIsIFwKLSAgICAgICAgICAiLTAuMTYxMjUsIC0wLjE1LCAtMC4xNDM3NSwgLTAuMTMxMjUsIC0wLjExODc1LCAtMC4xMDI1LCAtMC4wOTM3NSIsIFwKLSAgICAgICAgICAiLTAuMTczNzUsIC0wLjE2MjUsIC0wLjE1NjI1LCAtMC4xNDM3NSwgLTAuMTMxMjUsIC0wLjEyMTI1LCAtMC4xMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMTg2MjUsIC0wLjE4MTI1LCAtMC4xNjg3NSwgLTAuMTU2MjUsIC0wLjE0Mzc1LCAtMC4xMzM3NSwgLTAuMTE4NzUiLCBcCi0gICAgICAgICAgIi0wLjIwODc1LCAtMC4xOTc1LCAtMC4xOTEyNSwgLTAuMTc4NzUsIC0wLjE2NjI1LCAtMC4xNSwgLTAuMTQxMjUiLCBcCi0gICAgICAgICAgIi0wLjIzLCAtMC4yMTg3NSwgLTAuMjA2MjUsIC0wLjIsIC0wLjE4NzUsIC0wLjE3MTI1LCAtMC4xNTYyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAyNSwgLTAuMDEzNzUsIC0wLjAwMTI1LCAwLjAxNzUsIDAuMDMsIDAuMDQ2MjUsIDAuMDY3NSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAyNSwgLTAuMDEyNSwgMC4wMDYyNSwgMC4wMTg3NSwgMC4wMzUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAxMjUsIDAsIDAuMDIyNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDYxMjUsIC0wLjA1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAxMjUsIDAuMDEsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjA3Mzc1LCAtMC4wNjI1LCAtMC4wNSwgLTAuMDM3NSwgLTAuMDI1LCAtMC4wMDI1LCAwLjAxODc1IiwgXAotICAgICAgICAgICItMC4wOSwgLTAuMDc4NzUsIC0wLjA2NjI1LCAtMC4wNTM3NSwgLTAuMDQxMjUsIC0wLjAxODc1LCAtMC4wMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMTExMjUsIC0wLjEsIC0wLjA4MTI1LCAtMC4wNjg3NSwgLTAuMDU2MjUsIC0wLjAzMzc1LCAtMC4wMTg3NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIVNFJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIlNFX0VRXzBfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMzc1LCAwLjIyLCAwLjIwNzUsIDAuMTk1LCAwLjE3NjI1LCAwLjE2LCAwLjE0NSIsIFwKLSAgICAgICAgICAiMC4yNDg3NSwgMC4yMzc1LCAwLjIxODc1LCAwLjIwNjI1LCAwLjE4NzUsIDAuMTcxMjUsIDAuMTU2MjUiLCBcCi0gICAgICAgICAgIjAuMjYxMjUsIDAuMjUsIDAuMjMxMjUsIDAuMjE4NzUsIDAuMjA2MjUsIDAuMTgzNzUsIDAuMTY4NzUiLCBcCi0gICAgICAgICAgIjAuMjczNzUsIDAuMjYyNSwgMC4yNDM3NSwgMC4yMzEyNSwgMC4yMTg3NSwgMC4xOTYyNSwgMC4xODEyNSIsIFwKLSAgICAgICAgICAiMC4yODYyNSwgMC4yNzUsIDAuMjYyNSwgMC4yNDM3NSwgMC4yMzEyNSwgMC4yMDg3NSwgMC4xOTM3NSIsIFwKLSAgICAgICAgICAiMC4zMDg3NSwgMC4yOTc1LCAwLjI3ODc1LCAwLjI2NjI1LCAwLjI1Mzc1LCAwLjIzMTI1LCAwLjIxNjI1IiwgXAotICAgICAgICAgICIwLjMzLCAwLjMxODc1LCAwLjMsIDAuMjg3NSwgMC4yNjg3NSwgMC4yNTI1LCAwLjIzNzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMTg3NSwgMC4yMDc1LCAwLjE4ODc1LCAwLjE3NjI1LCAwLjE1NzUsIDAuMTM1LCAwLjExMzc1IiwgXAotICAgICAgICAgICIwLjIzLCAwLjIxODc1LCAwLjIwNjI1LCAwLjE4NzUsIDAuMTY4NzUsIDAuMTQ2MjUsIDAuMTI1IiwgXAotICAgICAgICAgICIwLjI0MjUsIDAuMjMxMjUsIDAuMjE4NzUsIDAuMiwgMC4xODEyNSwgMC4xNTg3NSwgMC4xMzc1IiwgXAotICAgICAgICAgICIwLjI1NSwgMC4yNDM3NSwgMC4yMzEyNSwgMC4yMTI1LCAwLjE5Mzc1LCAwLjE3MTI1LCAwLjE1IiwgXAotICAgICAgICAgICIwLjI2NzUsIDAuMjU2MjUsIDAuMjQzNzUsIDAuMjI1LCAwLjIwNjI1LCAwLjE4Mzc1LCAwLjE2MjUiLCBcCi0gICAgICAgICAgIjAuMjksIDAuMjc4NzUsIDAuMjYsIDAuMjQ3NSwgMC4yMjg3NSwgMC4yLCAwLjE3ODc1IiwgXAotICAgICAgICAgICIwLjMwNSwgMC4yOTM3NSwgMC4yODEyNSwgMC4yNjI1LCAwLjI0Mzc1LCAwLjIyMTI1LCAwLjIiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFEpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4yNjU1NDI7Ci0gICAgZnVuY3Rpb24gOiAiTjM1IjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBub25fdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJpc2luZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yNTM1OTQsIDAuNDM1NDUzLCAwLjU4MDA3LCAwLjc2MDU5MiwgMC45NDE0MjksIDEuMTIwODksIDEuMzAyNjYiLCBcCi0gICAgICAgICAgIjAuMjY1MzI0LCAwLjQ0NzIyNSwgMC41OTEzOTUsIDAuNzcyNDQ1LCAwLjk1MjkwNiwgMS4xMzE0OSwgMS4zMTE3IiwgXAotICAgICAgICAgICIwLjI4MDQ4NiwgMC40NjE5MzIsIDAuNjA2NDMyLCAwLjc4NzQzNSwgMC45Njg2ODYsIDEuMTQ3NzMsIDEuMzI5NSIsIFwKLSAgICAgICAgICAiMC4yOTU5LCAwLjQ3Nzg0OCwgMC42MjIwNTYsIDAuODAzMTcsIDAuOTgzNDIsIDEuMTYxOTYsIDEuMzQyMjUiLCBcCi0gICAgICAgICAgIjAuMzExMjc5LCAwLjQ5MzIyOCwgMC42Mzc0MjgsIDAuODE4NjgzLCAwLjk5ODI4NSwgMS4xNzg0MywgMS4zNTc0NSIsIFwKLSAgICAgICAgICAiMC4zMzU1NTgsIDAuNTE3NDcyLCAwLjY2MjIyLCAwLjg0MjM3NiwgMS4wMjI1NiwgMS4yMDI1MiwgMS4zODMxOSIsIFwKLSAgICAgICAgICAiMC4zNTY0NDMsIDAuNTM4MzY0LCAwLjY4MzM0MywgMC44NjM4MDQsIDEuMDQzNDEsIDEuMjIzOTIsIDEuNDAyNjkiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDkyODkyLCAwLjQ1ODEwNCwgMC43NTU0MTEsIDEuMTEzNjQsIDEuNDkzNDYsIDEuODU1NDQsIDIuMjM5NTQiLCBcCi0gICAgICAgICAgIjAuMDkyOTE0LCAwLjQ1Nzg0NywgMC43NTUzMjQsIDEuMTIxMywgMS40OTEwNiwgMS44NTU5NSwgMi4yMTk1MiIsIFwKLSAgICAgICAgICAiMC4wOTI4NDUsIDAuNDU2MTA5LCAwLjc1MzEzNSwgMS4xMTI5MywgMS40OTgwNiwgMS44NDI4OSwgMi4yMzk3OSIsIFwKLSAgICAgICAgICAiMC4wOTI4NzEsIDAuNDU3MjE1LCAwLjc1NDg4NSwgMS4xMjQ1OSwgMS40OTUwOCwgMS44NTcwNCwgMi4yMTk2MyIsIFwKLSAgICAgICAgICAiMC4wOTI3NzUsIDAuNDU2ODM2LCAwLjc1NDI5MywgMS4xMTAwMiwgMS40NzgwNiwgMS44NDM3OCwgMi4yMzk3OCIsIFwKLSAgICAgICAgICAiMC4wOTI3NzYsIDAuNDU3ODQ0LCAwLjc1MjM3MiwgMS4xMTkwMywgMS40ODM1LCAxLjg0NjA2LCAyLjIxMDczIiwgXAotICAgICAgICAgICIwLjA5MjkzMiwgMC40NTY3NDMsIDAuNzUzODQ3LCAxLjEyMjk2LCAxLjQ4MTQxLCAxLjg1NTQsIDIuMjM5NzEiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzEyNjI1LCAwLjUyMDM0MywgMC42ODQ4ODIsIDAuODkyNDQsIDEuMDk3NiwgMS4zMDY4OSwgMS41MTM4NCIsIFwKLSAgICAgICAgICAiMC4zMjQzNTUsIDAuNTMyMDMxLCAwLjY5NjY3NywgMC45MDQxNTYsIDEuMTExNDMsIDEuMzE1OTksIDEuNTI1NiIsIFwKLSAgICAgICAgICAiMC4zMzk0MzcsIDAuNTQ3MTY2LCAwLjcxMTc5NiwgMC45MTkyNjksIDEuMTI2NTIsIDEuMzMzNzIsIDEuNTQwNyIsIFwKLSAgICAgICAgICAiMC4zNTUwMiwgMC41NjI3NCwgMC43MjcyNzgsIDAuOTM0ODM5LCAxLjE0MDAzLCAxLjM0OTI4LCAxLjU1NjIzIiwgXAotICAgICAgICAgICIwLjM3MDM4MywgMC41NzgwNDQsIDAuNzQyNjQxLCAwLjk1MDE5LCAxLjE1NzQ2LCAxLjM2NDU1LCAxLjU3MTYxIiwgXAotICAgICAgICAgICIwLjM5NDgzOCwgMC42MDI1MTUsIDAuNzY3MTAxLCAwLjk3NDY1OCwgMS4xODE5MSwgMS4zODkxMSwgMS41OTYxMSIsIFwKLSAgICAgICAgICAiMC40MTU4OTksIDAuNjIzNjE5LCAwLjc4ODE1NywgMC45OTU3MTgsIDEuMjAwOSwgMS40MTAxNiwgMS42MTcxMSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDE4MywgMC41MDYzMTIsIDAuODM0MDQ4LCAxLjI0NTk5LCAxLjY1NTg5LCAyLjA2NzI3LCAyLjQ3ODUiLCBcCi0gICAgICAgICAgIjAuMTAxODMyLCAwLjUwNjI3MSwgMC44MzQ1MzYsIDEuMjQ2MDMsIDEuNjU2OTMsIDIuMDY2MiwgMi40Nzg3MyIsIFwKLSAgICAgICAgICAiMC4xMDE4MTksIDAuNTA2MzAxLCAwLjgzNDQwNCwgMS4yNDYwOSwgMS42NTY5MywgMi4wNjc1NSwgMi40Nzg4NCIsIFwKLSAgICAgICAgICAiMC4xMDE4MTYsIDAuNTA2MzAyLCAwLjgzNDEyOSwgMS4yNDYwOSwgMS42NTU4OSwgMi4wNjc1NiwgMi40Nzg4MyIsIFwKLSAgICAgICAgICAiMC4xMDE4MzYsIDAuNTA2MjUsIDAuODMzNzM4LCAxLjI0NjA2LCAxLjY1NjkxLCAyLjA2Nzg2LCAyLjQ3ODc4IiwgXAotICAgICAgICAgICIwLjEwMjIzMSwgMC41MDYyNDIsIDAuODMzMjA4LCAxLjI0NjA3LCAxLjY1NjkzLCAyLjA2NzU5LCAyLjQ3ODU3IiwgXAotICAgICAgICAgICIwLjEwMTgxNiwgMC41MDYzMDMsIDAuODM0MTI0LCAxLjI0NjA5LCAxLjY1NTk2LCAyLjA2NzU2LCAyLjQ3ODgzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiBwcmVzZXQ7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIyNjE3NiwgMC40MDc1MTEsIDAuNTUyNTgyLCAwLjczMDk0MywgMC45MTE5OTcsIDEuMDkyOTgsIDEuMjczMjMiLCBcCi0gICAgICAgICAgIjAuMjM3NzQ0LCAwLjQxOTUyNSwgMC41NjI5OTksIDAuNzQyNDY0LCAwLjkyMzEyOSwgMS4xMDQyNywgMS4yODQ2NyIsIFwKLSAgICAgICAgICAiMC4yNTIwMTcsIDAuNDMzMzA0LCAwLjU3ODM3OSwgMC43NTcxMzUsIDAuOTM3ODEsIDEuMTE4MjksIDEuMjk5MDEiLCBcCi0gICAgICAgICAgIjAuMjY2NzQsIDAuNDQ4NTE3LCAwLjU5MTk5MiwgMC43NzE0NTUsIDAuOTUyMTEsIDEuMTMzMjYsIDEuMzEzNjciLCBcCi0gICAgICAgICAgIjAuMjgxNDAyLCAwLjQ2MjQ2NSwgMC42MDczMzYsIDAuNzg2NjA0LCAwLjk2NzIzLCAxLjE0ODk4LCAxLjMyODQ4IiwgXAotICAgICAgICAgICIwLjMwNDU0NiwgMC40ODU4NTQsIDAuNjMwOTMzLCAwLjgwOTYyMiwgMC45OTAzNTEsIDEuMTcwNTEsIDEuMzUxNTIiLCBcCi0gICAgICAgICAgIjAuMzI0MzM0LCAwLjUwNTY0MiwgMC42NTA3MTMsIDAuODI5NDM5LCAxLjAxMDE0LCAxLjE5MDIxLCAxLjM3MTMiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDkyNzQ5LCAwLjQ1Nzg0LCAwLjc1MjczNywgMS4xMjY2NCwgMS40OTc5LCAxLjg2ODg5LCAyLjIzOTcxIiwgXAotICAgICAgICAgICIwLjA5MjY4MiwgMC40NTgxMDgsIDAuNzU0ODE2LCAxLjEyNDI4LCAxLjQ5NzksIDEuODY4ODMsIDIuMjM5NzQiLCBcCi0gICAgICAgICAgIjAuMDkyODM5LCAwLjQ1ODA4OSwgMC43NTQ4NiwgMS4xMjY5MywgMS40OTc4OSwgMS44Njg4OSwgMi4yMzk3MSIsIFwKLSAgICAgICAgICAiMC4wOTI2ODksIDAuNDU4MTY4LCAwLjc1NDcyNywgMS4xMjY1NiwgMS40OTc4NSwgMS44Njg4NiwgMi4yMzk2OSIsIFwKLSAgICAgICAgICAiMC4wOTI4MzksIDAuNDU4MzIyLCAwLjc1NDY3NSwgMS4xMjY1NywgMS40OTc4OSwgMS44Njg4MiwgMi4yMzk3IiwgXAotICAgICAgICAgICIwLjA5MjgyNiwgMC40NTU5NzUsIDAuNzU0OTQ4LCAxLjEyNjYyLCAxLjQ5NzkxLCAxLjg2ODg1LCAyLjIzOTYxIiwgXAotICAgICAgICAgICIwLjA5Mjg0NCwgMC40NTgyMDEsIDAuNzU0ODY5LCAxLjEyNjcsIDEuNDk3OTMsIDEuODY4ODUsIDIuMjM5NjIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0MTIsIDAuMDA0MTU5LCAwLjAwNDE2MywgMC4wMDQxNjYsIDAuMDA0MTY3LCAwLjAwNDE2NywgMC4wMDQxNjgiLCBcCi0gICAgICAgICAgIjAuMDA0MTE0LCAwLjAwNDE1MywgMC4wMDQxNTcsIDAuMDA0MTU5LCAwLjAwNDE2LCAwLjAwNDE2MSwgMC4wMDQxNjEiLCBcCi0gICAgICAgICAgIjAuMDA0MTA4LCAwLjAwNDE0NywgMC4wMDQxNTEsIDAuMDA0MTUzLCAwLjAwNDE1NCwgMC4wMDQxNTUsIDAuMDA0MTU1IiwgXAotICAgICAgICAgICIwLjAwNDEwMywgMC4wMDQxNDMsIDAuMDA0MTQ3LCAwLjAwNDE0OSwgMC4wMDQxNSwgMC4wMDQxNTEsIDAuMDA0MTUxIiwgXAotICAgICAgICAgICIwLjAwNDEsIDAuMDA0MTQsIDAuMDA0MTQ0LCAwLjAwNDE0NiwgMC4wMDQxNDcsIDAuMDA0MTQ4LCAwLjAwNDE0OCIsIFwKLSAgICAgICAgICAiMC4wMDQwOTUsIDAuMDA0MTM0LCAwLjAwNDEzOCwgMC4wMDQxNCwgMC4wMDQxNDEsIDAuMDA0MTQyLCAwLjAwNDE0MiIsIFwKLSAgICAgICAgICAiMC4wMDQwOTMsIDAuMDA0MTMzLCAwLjAwNDEzNywgMC4wMDQxMzksIDAuMDA0MTQsIDAuMDA0MTQxLCAwLjAwNDE0MSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzk3NywgMC4wMDQwMiwgMC4wMDQwMjUsIDAuMDA0MDI3LCAwLjAwNDAyOCwgMC4wMDQwMjksIDAuMDA0MDMiLCBcCi0gICAgICAgICAgIjAuMDAzOTcsIDAuMDA0MDEzLCAwLjAwNDAxOCwgMC4wMDQwMjEsIDAuMDA0MDIyLCAwLjAwNDAyMywgMC4wMDQwMjMiLCBcCi0gICAgICAgICAgIjAuMDAzOTYyLCAwLjAwNDAwNiwgMC4wMDQwMTEsIDAuMDA0MDE0LCAwLjAwNDAxNSwgMC4wMDQwMTYsIDAuMDA0MDE3IiwgXAotICAgICAgICAgICIwLjAwMzk2MSwgMC4wMDQwMDQsIDAuMDA0MDA5LCAwLjAwNDAxMiwgMC4wMDQwMTMsIDAuMDA0MDEzLCAwLjAwNDAxNCIsIFwKLSAgICAgICAgICAiMC4wMDM5NTgsIDAuMDA0MDAxLCAwLjAwNDAwNiwgMC4wMDQwMDksIDAuMDA0MDEsIDAuMDA0MDExLCAwLjAwNDAxMSIsIFwKLSAgICAgICAgICAiMC4wMDM5NTcsIDAuMDA0LCAwLjAwNDAwNSwgMC4wMDQwMDgsIDAuMDA0MDA5LCAwLjAwNDAwOSwgMC4wMDQwMSIsIFwKLSAgICAgICAgICAiMC4wMDM5NTksIDAuMDA0MDAyLCAwLjAwNDAwNywgMC4wMDQwMSwgMC4wMDQwMTEsIDAuMDA0MDEyLCAwLjAwNDAxMiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQzMzUsIDAuMDA0Mzc0LCAwLjAwNDM3OCwgMC4wMDQzOCwgMC4wMDQzODIsIDAuMDA0MzgyLCAwLjAwNDM4MyIsIFwKLSAgICAgICAgICAiMC4wMDQzMjgsIDAuMDA0MzY3LCAwLjAwNDM3MSwgMC4wMDQzNzMsIDAuMDA0Mzc1LCAwLjAwNDM3NSwgMC4wMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMDA0MzIzLCAwLjAwNDM2MSwgMC4wMDQzNjYsIDAuMDA0MzY4LCAwLjAwNDM2OSwgMC4wMDQzNjksIDAuMDA0MzciLCBcCi0gICAgICAgICAgIjAuMDA0MzE4LCAwLjAwNDM1NywgMC4wMDQzNjEsIDAuMDA0MzY0LCAwLjAwNDM2NSwgMC4wMDQzNjYsIDAuMDA0MzY2IiwgXAotICAgICAgICAgICIwLjAwNDMxNCwgMC4wMDQzNTMsIDAuMDA0MzU4LCAwLjAwNDM2LCAwLjAwNDM2MSwgMC4wMDQzNjEsIDAuMDA0MzYyIiwgXAotICAgICAgICAgICIwLjAwNDMwOCwgMC4wMDQzNDcsIDAuMDA0MzUxLCAwLjAwNDM1NCwgMC4wMDQzNTUsIDAuMDA0MzU1LCAwLjAwNDM1NSIsIFwKLSAgICAgICAgICAiMC4wMDQzMDUsIDAuMDA0MzQ0LCAwLjAwNDM0OCwgMC4wMDQzNSwgMC4wMDQzNTEsIDAuMDA0MzUyLCAwLjAwNDM1MiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihzY2FsYXIpIHsKLSAgICAgICAgdmFsdWVzKCIwIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihRTikgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjI2Mzg0ODsKLSAgICBmdW5jdGlvbiA6ICJRQklOVCI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3NlbnNlIDogbm9uX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiByaXNpbmdfZWRnZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzU2OTg2LCAwLjUzNzg2NiwgMC42ODI4ODEsIDAuODY0MjEzLCAxLjA0NTU1LCAxLjIyNjg5LCAxLjQwODIzIiwgXAotICAgICAgICAgICIwLjM2ODcxNiwgMC41NDk1NzEsIDAuNjk0NTU5LCAwLjg3NTkwMywgMS4wNTcyNiwgMS4yMzg2MSwgMS40MTk5MyIsIFwKLSAgICAgICAgICAiMC4zODM3ODksIDAuNTY0Njc2LCAwLjcwOTY4NywgMC44OTEwMjgsIDEuMDcyMzUsIDEuMjUzNzEsIDEuNDM1MDUiLCBcCi0gICAgICAgICAgIjAuMzk5MzY5LCAwLjU4MDI2MywgMC43MjUyNywgMC45MDY2MTQsIDEuMDg3OTQsIDEuMjY5MjgsIDEuNDUwNjMiLCBcCi0gICAgICAgICAgIjAuNDE0NzMxLCAwLjU5NTU4NSwgMC43NDA1ODMsIDAuOTIxOTI4LCAxLjEwMzI4LCAxLjI4NDY0LCAxLjQ2NTk1IiwgXAotICAgICAgICAgICIwLjQzOTEyMywgMC42MjAwNjksIDAuNzY1MTAzLCAwLjk0NjQzMSwgMS4xMjc3NSwgMS4zMDkxMSwgMS40OTA0OCIsIFwKLSAgICAgICAgICAiMC40NjAyNDgsIDAuNjQxMTQyLCAwLjc4NjE0OSwgMC45Njc0OTIsIDEuMTQ4ODIsIDEuMzMwMTYsIDEuNTExNTEiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDkwNDA1LCAwLjQ1NDcwMiwgMC43NDgwOCwgMS4xMTgyLCAxLjQ4NDAyLCAxLjg1NTQ3LCAyLjIyNDA2IiwgXAotICAgICAgICAgICIwLjA5MDQwNSwgMC40NTQ2NzgsIDAuNzQ5Mjc1LCAxLjExODA5LCAxLjQ4Njg1LCAxLjg1MjIzLCAyLjIyNDAzIiwgXAotICAgICAgICAgICIwLjA5MDM5OCwgMC40NTQ2OTYsIDAuNzQ5NDA1LCAxLjExODIsIDEuNDg2ODEsIDEuODU1NTUsIDIuMjI0MTQiLCBcCi0gICAgICAgICAgIjAuMDkwMzkyLCAwLjQ1NDY5OSwgMC43NDgyOTMsIDEuMTE4MiwgMS40ODQsIDEuODU1NDcsIDIuMjI0MDgiLCBcCi0gICAgICAgICAgIjAuMDkwNDAxLCAwLjQ1NDY2NywgMC43NDgwODIsIDEuMTE4MTQsIDEuNDg2ODgsIDEuODU1NTksIDIuMjI0MDMiLCBcCi0gICAgICAgICAgIjAuMDkwMzM3LCAwLjQ1NDY2NCwgMC43NDc2NzksIDEuMTE4MTYsIDEuNDg2NzYsIDEuODU1NDksIDIuMjI0MiIsIFwKLSAgICAgICAgICAiMC4wOTAzOTIsIDAuNDU0Njk5LCAwLjc0ODI3MywgMS4xMTgyLCAxLjQ4NCwgMS44NTU0NywgMi4yMjQwOCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMDQ5NSwgMC41MTMyNjYsIDAuNjgwMjQ0LCAwLjg4ODg0MiwgMS4wOTc1NSwgMS4zMDYwNywgMS41MTQ4NCIsIFwKLSAgICAgICAgICAiMC4zMTY2NjYsIDAuNTI0OTc5LCAwLjY5MTg5NCwgMC45MDA1NTQsIDEuMTA5MTksIDEuMzE3NzcsIDEuNTI2MzgiLCBcCi0gICAgICAgICAgIjAuMzMxODI5LCAwLjU0MDE1MywgMC43MDcwODEsIDAuOTE1NzI5LCAxLjEyNDQ1LCAxLjMzMjk2LCAxLjU0MTczIiwgXAotICAgICAgICAgICIwLjM0NzIwNSwgMC41NTU1NjcsIDAuNzIyNDc5LCAwLjkzMTE1MywgMS4xMzk3NywgMS4zNDgzNSwgMS41NTY5NiIsIFwKLSAgICAgICAgICAiMC4zNjI2MTEsIDAuNTcwOTY3LCAwLjczNzkyMiwgMC45NDY1NzQsIDEuMTU1MTQsIDEuMzYzNzcsIDEuNTcyMzUiLCBcCi0gICAgICAgICAgIjAuMzg2ODg5LCAwLjU5NTIwOSwgMC43NjIxODIsIDAuOTcwODI4LCAxLjE3OTQxLCAxLjM4ODAyLCAxLjU5NjY4IiwgXAotICAgICAgICAgICIwLjQwNzc1OSwgMC42MTYwOTEsIDAuNzgzMDg4LCAwLjk5MTY5NiwgMS4yMDAyNiwgMS40MDg5LCAxLjYxNzQ3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5ODk2OSwgMC41MDk2MzIsIDAuODQwODk2LCAxLjI1NDIzLCAxLjY2ODE1LCAyLjA4MjI1LCAyLjQ5Njc5IiwgXAotICAgICAgICAgICIwLjA5ODkxNSwgMC41MDk1NzMsIDAuODQwNzgxLCAxLjI1NTA2LCAxLjY2ODE1LCAyLjA4MjI1LCAyLjQ5NjAyIiwgXAotICAgICAgICAgICIwLjA5ODkwNSwgMC41MDk1NzksIDAuODQwODkzLCAxLjI1NDIzLCAxLjY2ODcyLCAyLjA4MTgxLCAyLjQ5Njc4IiwgXAotICAgICAgICAgICIwLjA5ODk1LCAwLjUwOTUwNCwgMC44NDA3NTcsIDEuMjU0MjcsIDEuNjY4MTIsIDIuMDgyMjgsIDIuNDk2MDIiLCBcCi0gICAgICAgICAgIjAuMDk4OTE3LCAwLjUwOTQ3NCwgMC44NDA1MjYsIDEuMjUzOTUsIDEuNjY4MDcsIDIuMDgxOTUsIDIuNDk2MiIsIFwKLSAgICAgICAgICAiMC4wOTg5MTgsIDAuNTA5NTc3LCAwLjg0MDg0NiwgMS4yNTQwNiwgMS42NjgyNSwgMi4wODIsIDIuNDk1ODYiLCBcCi0gICAgICAgICAgIjAuMDk4OTI0LCAwLjUwOTUwNiwgMC44NDA1MDMsIDEuMjU0MjgsIDEuNjY4MTEsIDIuMDgyMTEsIDIuNDk2NDkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiU04iOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGNsZWFyOwotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yNzc0NTQsIDAuNDg1ODE1LCAwLjY1MjczOCwgMC44NjExNjQsIDEuMDY5OTYsIDEuMjc4NjQsIDEuNDg3MjciLCBcCi0gICAgICAgICAgIjAuMjg5MDM3LCAwLjQ5NzM4LCAwLjY2NDI4OSwgMC44NzI3MDgsIDEuMDgxNSwgMS4yOTAxOSwgMS40OTg4MyIsIFwKLSAgICAgICAgICAiMC4zMDMzMzQsIDAuNTExNjUyLCAwLjY3ODU2NiwgMC44ODcxNDcsIDEuMDk1NzksIDEuMzA0NDQsIDEuNTEzMSIsIFwKLSAgICAgICAgICAiMC4zMTgwMzIsIDAuNTI2Mzc2LCAwLjY5MzI4MywgMC45MDE3MDEsIDEuMTEwNDksIDEuMzE5MTgsIDEuNTI3ODIiLCBcCi0gICAgICAgICAgIjAuMzMyNzA3LCAwLjU0MTA1MywgMC43MDc5MjcsIDAuOTE2NTM0LCAxLjEyNTE4LCAxLjMzMzkxLCAxLjU0MjQ5IiwgXAotICAgICAgICAgICIwLjM1NTg3MywgMC41NjQxODEsIDAuNzMxMTA1LCAwLjkzOTY3NSwgMS4xNDgzMiwgMS4zNTY5NSwgMS41NjU2MyIsIFwKLSAgICAgICAgICAiMC4zNzU2NTIsIDAuNTgzOTY4LCAwLjc1MDg5LCAwLjk1OTQ2MywgMS4xNjgxMSwgMS4zNzY3MiwgMS41ODU0MSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTg5OTksIDAuNTA5Njg2LCAwLjg0MDQxLCAxLjI1NDYyLCAxLjY2ODYzLCAyLjA4MjczLCAyLjQ5NjcyIiwgXAotICAgICAgICAgICIwLjA5ODk5NiwgMC41MDk2ODYsIDAuODQwNjYxLCAxLjI1NDY1LCAxLjY2ODYzLCAyLjA4MjY1LCAyLjQ5NjczIiwgXAotICAgICAgICAgICIwLjA5ODk5NiwgMC41MDk2OTIsIDAuODQwNjY4LCAxLjI1NDczLCAxLjY2ODYsIDIuMDgyNjYsIDIuNDk2NyIsIFwKLSAgICAgICAgICAiMC4wOTkwMDIsIDAuNTA5Njg4LCAwLjg0MDkzNSwgMS4yNTQ1OSwgMS42Njg1OSwgMi4wODI2OCwgMi40OTY2NyIsIFwKLSAgICAgICAgICAiMC4wOTg5OTEsIDAuNTA5NjgzLCAwLjg0MDkwNSwgMS4yNTQ2LCAxLjY2ODYxLCAyLjA4Mjc1LCAyLjQ5NjY5IiwgXAotICAgICAgICAgICIwLjA5OTAwMSwgMC41MDk1NywgMC44NDA5NjEsIDEuMjU0NjEsIDEuNjY4NjUsIDIuMDgyNTksIDIuNDk2NzIiLCBcCi0gICAgICAgICAgIjAuMDk5MDA0LCAwLjUwOTcwNSwgMC44NDA5MzUsIDEuMjU0NjQsIDEuNjY4NjYsIDIuMDgyNTksIDIuNDk2NjciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzOTc3LCAwLjAwNDAyLCAwLjAwNDAyNSwgMC4wMDQwMjcsIDAuMDA0MDI4LCAwLjAwNDAyOSwgMC4wMDQwMyIsIFwKLSAgICAgICAgICAiMC4wMDM5NywgMC4wMDQwMTMsIDAuMDA0MDE4LCAwLjAwNDAyMSwgMC4wMDQwMjIsIDAuMDA0MDIzLCAwLjAwNDAyMyIsIFwKLSAgICAgICAgICAiMC4wMDM5NjIsIDAuMDA0MDA2LCAwLjAwNDAxMSwgMC4wMDQwMTQsIDAuMDA0MDE1LCAwLjAwNDAxNiwgMC4wMDQwMTciLCBcCi0gICAgICAgICAgIjAuMDAzOTYxLCAwLjAwNDAwNCwgMC4wMDQwMDksIDAuMDA0MDEyLCAwLjAwNDAxMywgMC4wMDQwMTMsIDAuMDA0MDE0IiwgXAotICAgICAgICAgICIwLjAwMzk1OCwgMC4wMDQwMDEsIDAuMDA0MDA2LCAwLjAwNDAwOSwgMC4wMDQwMSwgMC4wMDQwMTEsIDAuMDA0MDExIiwgXAotICAgICAgICAgICIwLjAwMzk1NywgMC4wMDQsIDAuMDA0MDA1LCAwLjAwNDAwOCwgMC4wMDQwMDksIDAuMDA0MDA5LCAwLjAwNDAxIiwgXAotICAgICAgICAgICIwLjAwMzk1OSwgMC4wMDQwMDIsIDAuMDA0MDA3LCAwLjAwNDAxLCAwLjAwNDAxMSwgMC4wMDQwMTIsIDAuMDA0MDEyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0MTIsIDAuMDA0MTU5LCAwLjAwNDE2MywgMC4wMDQxNjYsIDAuMDA0MTY3LCAwLjAwNDE2NywgMC4wMDQxNjgiLCBcCi0gICAgICAgICAgIjAuMDA0MTE0LCAwLjAwNDE1MywgMC4wMDQxNTcsIDAuMDA0MTU5LCAwLjAwNDE2LCAwLjAwNDE2MSwgMC4wMDQxNjEiLCBcCi0gICAgICAgICAgIjAuMDA0MTA4LCAwLjAwNDE0NywgMC4wMDQxNTEsIDAuMDA0MTUzLCAwLjAwNDE1NCwgMC4wMDQxNTUsIDAuMDA0MTU1IiwgXAotICAgICAgICAgICIwLjAwNDEwMywgMC4wMDQxNDMsIDAuMDA0MTQ3LCAwLjAwNDE0OSwgMC4wMDQxNSwgMC4wMDQxNTEsIDAuMDA0MTUxIiwgXAotICAgICAgICAgICIwLjAwNDEsIDAuMDA0MTQsIDAuMDA0MTQ0LCAwLjAwNDE0NiwgMC4wMDQxNDcsIDAuMDA0MTQ4LCAwLjAwNDE0OCIsIFwKLSAgICAgICAgICAiMC4wMDQwOTUsIDAuMDA0MTM0LCAwLjAwNDEzOCwgMC4wMDQxNCwgMC4wMDQxNDEsIDAuMDA0MTQyLCAwLjAwNDE0MiIsIFwKLSAgICAgICAgICAiMC4wMDQwOTMsIDAuMDA0MTMzLCAwLjAwNDEzNywgMC4wMDQxMzksIDAuMDA0MTQsIDAuMDA0MTQxLCAwLjAwNDE0MSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQzMzUsIDAuMDA0Mzc0LCAwLjAwNDM3OCwgMC4wMDQzOCwgMC4wMDQzODIsIDAuMDA0MzgyLCAwLjAwNDM4MyIsIFwKLSAgICAgICAgICAiMC4wMDQzMjgsIDAuMDA0MzY3LCAwLjAwNDM3MSwgMC4wMDQzNzMsIDAuMDA0Mzc1LCAwLjAwNDM3NSwgMC4wMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMDA0MzIzLCAwLjAwNDM2MSwgMC4wMDQzNjYsIDAuMDA0MzY4LCAwLjAwNDM2OSwgMC4wMDQzNjksIDAuMDA0MzciLCBcCi0gICAgICAgICAgIjAuMDA0MzE4LCAwLjAwNDM1NywgMC4wMDQzNjEsIDAuMDA0MzY0LCAwLjAwNDM2NSwgMC4wMDQzNjYsIDAuMDA0MzY2IiwgXAotICAgICAgICAgICIwLjAwNDMxNCwgMC4wMDQzNTMsIDAuMDA0MzU4LCAwLjAwNDM2LCAwLjAwNDM2MSwgMC4wMDQzNjEsIDAuMDA0MzYyIiwgXAotICAgICAgICAgICIwLjAwNDMwOCwgMC4wMDQzNDcsIDAuMDA0MzUxLCAwLjAwNDM1NCwgMC4wMDQzNTUsIDAuMDA0MzU1LCAwLjAwNDM1NSIsIFwKLSAgICAgICAgICAiMC4wMDQzMDUsIDAuMDA0MzQ0LCAwLjAwNDM0OCwgMC4wMDQzNSwgMC4wMDQzNTEsIDAuMDA0MzUyLCAwLjAwNDM1MiIpOwotICAgICAgfQotICAgICAgcmlzZV9wb3dlcihzY2FsYXIpIHsKLSAgICAgICAgdmFsdWVzKCIwIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTRSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxMjY2MjI7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxMjY1NzI7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxMjY2MjI7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzNzA4LCAwLjAwMzY5NiwgMC4wMDM2OTEsIDAuMDAzNjg4LCAwLjAwMzY4NywgMC4wMDM2ODUsIDAuMDAzNjg1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA0ODg1LCAwLjAwNDg2OCwgMC4wMDQ4NTYsIDAuMDA0ODQ5LCAwLjAwNDg0NCwgMC4wMDQ4MzgsIDAuMDA0ODM2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlNOIjsKLSAgICAgIHNkZl9jb25kIDogIlNOID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjA0Mzc1LCAtMC4wMzI1LCAtMC4wMiwgLTAuMDAxMjUsIDAuMDExMjUsIDAuMDMzNzUsIDAuMDQ4NzUiLCBcCi0gICAgICAgICAgIi0wLjA1NSwgLTAuMDQzNzUsIC0wLjAzMTI1LCAtMC4wMTI1LCAwLCAwLjAxNjI1LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjA3Mzc1LCAtMC4wNTYyNSwgLTAuMDQzNzUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgMC4wMDM3NSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDg2MjUsIC0wLjA3NSwgLTAuMDYyNSwgLTAuMDQzNzUsIC0wLjAzMTI1LCAtMC4wMDg3NSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDk4NzUsIC0wLjA4NzUsIC0wLjA3NSwgLTAuMDYyNSwgLTAuMDUsIC0wLjAyNzUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICItMC4xMjEyNSwgLTAuMTEsIC0wLjA5NzUsIC0wLjA4NSwgLTAuMDY2MjUsIC0wLjA0Mzc1LCAtMC4wMjg3NSIsIFwKLSAgICAgICAgICAiLTAuMTM2MjUsIC0wLjEyNSwgLTAuMTEyNSwgLTAuMSwgLTAuMDg3NSwgLTAuMDY1LCAtMC4wNDM3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAxMjUsIC0wLjAwMTI1LCAwLjAxMTI1LCAwLjAzLCAwLjA0MjUsIDAuMDU4NzUsIDAuMDgiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTI1LCAwLjAwNjI1LCAwLjAxODc1LCAwLjAzMTI1LCAwLjA1Mzc1LCAwLjA2ODc1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDI1LCAtMC4wMDYyNSwgMC4wMDYyNSwgMC4wMTg3NSwgMC4wNDEyNSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjAzNzUsIC0wLjAyNSwgLTAuMDA2MjUsIDAuMDA2MjUsIDAuMDI4NzUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIi0wLjA2MTI1LCAtMC4wNSwgLTAuMDM3NSwgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLjAxNjI1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wNzc1LCAtMC4wNjYyNSwgLTAuMDUzNzUsIC0wLjA0MTI1LCAtMC4wMjg3NSwgLTAuMDA2MjUsIDAuMDE1IiwgXAotICAgICAgICAgICItMC4wOTI1LCAtMC4wODEyNSwgLTAuMDY4NzUsIC0wLjA1NjI1LCAtMC4wNDM3NSwgLTAuMDIxMjUsIC0wLjAwNjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJTTiA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMzc1LCAwLjIyNjI1LCAwLjIwNzUsIDAuMTk1LCAwLjE3NjI1LCAwLjE0NzUsIDAuMTI2MjUiLCBcCi0gICAgICAgICAgIjAuMjQ4NzUsIDAuMjM3NSwgMC4yMTg3NSwgMC4yMDYyNSwgMC4xODc1LCAwLjE2NSwgMC4xMzc1IiwgXAotICAgICAgICAgICIwLjI2NzUsIDAuMjU2MjUsIDAuMjM3NSwgMC4yMTg3NSwgMC4yMDYyNSwgMC4xNzc1LCAwLjE1NjI1IiwgXAotICAgICAgICAgICIwLjI4LCAwLjI2ODc1LCAwLjI1LCAwLjIzNzUsIDAuMjE4NzUsIDAuMTksIDAuMTY4NzUiLCBcCi0gICAgICAgICAgIjAuMjkyNSwgMC4yODEyNSwgMC4yNjg3NSwgMC4yNSwgMC4yMzEyNSwgMC4yMDg3NSwgMC4xODc1IiwgXAotICAgICAgICAgICIwLjMxNSwgMC4zMDM3NSwgMC4yODUsIDAuMjcyNSwgMC4yNTM3NSwgMC4yMzEyNSwgMC4yMSIsIFwKLSAgICAgICAgICAiMC4zMywgMC4zMTg3NSwgMC4zMDYyNSwgMC4yODc1LCAwLjI2ODc1LCAwLjI0NjI1LCAwLjIyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI1LCAwLjIzODc1LCAwLjIyLCAwLjIwNzUsIDAuMTg4NzUsIDAuMTcyNSwgMC4xNTc1IiwgXAotICAgICAgICAgICIwLjI2MTI1LCAwLjI1LCAwLjIzMTI1LCAwLjIxODc1LCAwLjIwNjI1LCAwLjE4Mzc1LCAwLjE2ODc1IiwgXAotICAgICAgICAgICIwLjI3Mzc1LCAwLjI2MjUsIDAuMjUsIDAuMjMxMjUsIDAuMjE4NzUsIDAuMTk2MjUsIDAuMTg3NSIsIFwKLSAgICAgICAgICAiMC4yOTI1LCAwLjI3NSwgMC4yNjI1LCAwLjI1LCAwLjIzMTI1LCAwLjIxNSwgMC4yIiwgXAotICAgICAgICAgICIwLjMwNSwgMC4yOTM3NSwgMC4yNzUsIDAuMjYyNSwgMC4yNDM3NSwgMC4yMjc1LCAwLjIxMjUiLCBcCi0gICAgICAgICAgIjAuMzIxMjUsIDAuMzEsIDAuMjkxMjUsIDAuMjc4NzUsIDAuMjY2MjUsIDAuMjQzNzUsIDAuMjI4NzUiLCBcCi0gICAgICAgICAgIjAuMzM2MjUsIDAuMzI1LCAwLjMwNjI1LCAwLjI5Mzc1LCAwLjI3NSwgMC4yNTg3NSwgMC4yNDM3NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oU0kpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY3NTY3OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDY3MzgwMzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2NzU2NzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDI2NzcsIDAuMDAyNjY3LCAwLjAwMjY2MywgMC4wMDI2NTksIDAuMDAyNjU3LCAwLjAwMjY1MywgMC4wMDI2NTEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDM5NDQsIDAuMDAzOTQsIDAuMDAzOTM3LCAwLjAwMzkzNSwgMC4wMDM5MzQsIDAuMDAzOTMyLCAwLjAwMzkzMSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJTRSZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJTRV9FUV8xX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMTMxMjUsIC0wLjEyLCAtMC4xMDc1LCAtMC4xMDEyNSwgLTAuMDg4NzUsIC0wLjA3MjUsIC0wLjA1NzUiLCBcCi0gICAgICAgICAgIi0wLjE0MjUsIC0wLjEzMTI1LCAtMC4xMTg3NSwgLTAuMTEyNSwgLTAuMSwgLTAuMDgzNzUsIC0wLjA3NSIsIFwKLSAgICAgICAgICAiLTAuMTU1LCAtMC4xNDM3NSwgLTAuMTM3NSwgLTAuMTI1LCAtMC4xMTI1LCAtMC4wOTYyNSwgLTAuMDg3NSIsIFwKLSAgICAgICAgICAiLTAuMTY3NSwgLTAuMTU2MjUsIC0wLjE1LCAtMC4xMzc1LCAtMC4xMjUsIC0wLjExNSwgLTAuMSIsIFwKLSAgICAgICAgICAiLTAuMTgsIC0wLjE3NSwgLTAuMTYyNSwgLTAuMTUsIC0wLjE0Mzc1LCAtMC4xMjc1LCAtMC4xMTI1IiwgXAotICAgICAgICAgICItMC4yMDI1LCAtMC4xOTc1LCAtMC4xODUsIC0wLjE3MjUsIC0wLjE2LCAtMC4xNSwgLTAuMTM1IiwgXAotICAgICAgICAgICItMC4yMjM3NSwgLTAuMjEyNSwgLTAuMjA2MjUsIC0wLjE5Mzc1LCAtMC4xODEyNSwgLTAuMTY1LCAtMC4xNTYyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAyNSwgLTAuMDEzNzUsIDAuMDA1LCAwLjAxNzUsIDAuMDMsIDAuMDUyNSwgMC4wNjc1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDI1LCAtMC4wMDYyNSwgMC4wMDYyNSwgMC4wMTg3NSwgMC4wNDEyNSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjAzNzUsIC0wLjAxODc1LCAtMC4wMDYyNSwgMC4wMDYyNSwgMC4wMjg3NSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDYxMjUsIC0wLjA1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLjAxNjI1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wNzM3NSwgLTAuMDU2MjUsIC0wLjA0Mzc1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIDAuMDAzNzUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjA5LCAtMC4wNzg3NSwgLTAuMDY2MjUsIC0wLjA0NzUsIC0wLjAzNSwgLTAuMDEyNSwgMC4wMDI1IiwgXAotICAgICAgICAgICItMC4xMDUsIC0wLjA5Mzc1LCAtMC4wODEyNSwgLTAuMDYyNSwgLTAuMDUsIC0wLjAzMzc1LCAtMC4wMTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJTRSZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJTRV9FUV8xX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjMxMjUsIDAuMjEzNzUsIDAuMjAxMjUsIDAuMTg4NzUsIDAuMTcsIDAuMTUzNzUsIDAuMTM4NzUiLCBcCi0gICAgICAgICAgIjAuMjQyNSwgMC4yMjUsIDAuMjEyNSwgMC4yLCAwLjE4MTI1LCAwLjE2NSwgMC4xNSIsIFwKLSAgICAgICAgICAiMC4yNTUsIDAuMjQzNzUsIDAuMjI1LCAwLjIxMjUsIDAuMTkzNzUsIDAuMTc3NSwgMC4xNjI1IiwgXAotICAgICAgICAgICIwLjI2NzUsIDAuMjU2MjUsIDAuMjM3NSwgMC4yMjUsIDAuMjEyNSwgMC4xOSwgMC4xNzUiLCBcCi0gICAgICAgICAgIjAuMjgsIDAuMjY4NzUsIDAuMjU2MjUsIDAuMjM3NSwgMC4yMjUsIDAuMjAyNSwgMC4xODc1IiwgXAotICAgICAgICAgICIwLjMwMjUsIDAuMjkxMjUsIDAuMjcyNSwgMC4yNiwgMC4yNDc1LCAwLjIyNSwgMC4yMSIsIFwKLSAgICAgICAgICAiMC4zMjM3NSwgMC4zMTI1LCAwLjI5Mzc1LCAwLjI4MTI1LCAwLjI2MjUsIDAuMjQ2MjUsIDAuMjMxMjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMTg3NSwgMC4yMDc1LCAwLjE4ODc1LCAwLjE3LCAwLjE1NzUsIDAuMTI4NzUsIDAuMTA3NSIsIFwKLSAgICAgICAgICAiMC4yMywgMC4yMTg3NSwgMC4yLCAwLjE4MTI1LCAwLjE2ODc1LCAwLjE0LCAwLjExODc1IiwgXAotICAgICAgICAgICIwLjI0MjUsIDAuMjMxMjUsIDAuMjEyNSwgMC4yLCAwLjE4MTI1LCAwLjE1MjUsIDAuMTMxMjUiLCBcCi0gICAgICAgICAgIjAuMjU1LCAwLjI0Mzc1LCAwLjIyNSwgMC4yMTI1LCAwLjE5Mzc1LCAwLjE2NSwgMC4xNDM3NSIsIFwKLSAgICAgICAgICAiMC4yNjc1LCAwLjI1NjI1LCAwLjIzNzUsIDAuMjE4NzUsIDAuMjA2MjUsIDAuMTc3NSwgMC4xNTYyNSIsIFwKLSAgICAgICAgICAiMC4yODM3NSwgMC4yNzI1LCAwLjI2LCAwLjI0MTI1LCAwLjIyMjUsIDAuMiwgMC4xNzg3NSIsIFwKLSAgICAgICAgICAiMC4zMDUsIDAuMjg3NSwgMC4yNzUsIDAuMjU2MjUsIDAuMjQzNzUsIDAuMjE1LCAwLjE5Mzc1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTTikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNDcyMDQ7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxMzg4OTc7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNDcyMDQ7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzMxLCAwLjAwMDMzLCAwLjAwMDMzLCAwLjAwMDMzLCAwLjAwMDMzLCAwLjAwMDMzLCAwLjAwMDMzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzMzLCAwLjAwMDMzMiwgMC4wMDAzMzIsIDAuMDAwMzMyLCAwLjAwMDMzMiwgMC4wMDAzMzIsIDAuMDAwMzMyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRCYhU0UmIVNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9TRV9FUV8wX0FOX1NJX0VRXzAgPT0gMSdiMSI7Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4yNzc0NTQsIDAuMjg5MDM3LCAwLjMwMzMzNCwgMC4zMTgwMzIsIDAuMzMyNzA3LCAwLjM1NTg3MywgMC4zNzU2NTEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiByZWNvdmVyeV9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEJiFTRSYhU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1NFX0VRXzBfQU5fU0lfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChyZWNvdmVyeV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzc1LCAwLjAyNjI1LCAwLjAwNzUsIC0wLjAxMTI1LCAtMC4wMjM3NSwgLTAuMDUyNSwgLTAuMDczNzUiLCBcCi0gICAgICAgICAgIjAuMDQ4NzUsIDAuMDM3NSwgMC4wMTg3NSwgMCwgLTAuMDEyNSwgLTAuMDQxMjUsIC0wLjA2MjUiLCBcCi0gICAgICAgICAgIjAuMDYxMjUsIDAuMDUsIDAuMDMxMjUsIDAuMDE4NzUsIDAsIC0wLjAyODc1LCAtMC4wNSIsIFwKLSAgICAgICAgICAiMC4wNzM3NSwgMC4wNjI1LCAwLjA0Mzc1LCAwLjAzMTI1LCAwLjAxMjUsIC0wLjAxNjI1LCAtMC4wMzc1IiwgXAotICAgICAgICAgICIwLjA4NjI1LCAwLjA3NSwgMC4wNjI1LCAwLjA0Mzc1LCAwLjAyNSwgMC4wMDI1LCAtMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4xMDg3NSwgMC4wOTc1LCAwLjA3ODc1LCAwLjA2NjI1LCAwLjA0NzUsIDAuMDE4NzUsIC0wLjAwMjUiLCBcCi0gICAgICAgICAgIjAuMTMsIDAuMTE4NzUsIDAuMSwgMC4wODEyNSwgMC4wNjg3NSwgMC4wNCwgMC4wMTg3NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJlbW92YWxfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRCYhU0UmIVNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9TRV9FUV8wX0FOX1NJX0VRXzAgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQocmVtb3ZhbF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjg3NSwgMC4wOCwgMC4wOTg3NSwgMC4xMTEyNSwgMC4xMywgMC4xNTI1LCAwLjE3Mzc1IiwgXAotICAgICAgICAgICIwLjA1NzUsIDAuMDY4NzUsIDAuMDg3NSwgMC4xLCAwLjExODc1LCAwLjE0MTI1LCAwLjE2MjUiLCBcCi0gICAgICAgICAgIjAuMDQ1LCAwLjA1NjI1LCAwLjA3NSwgMC4wODc1LCAwLjEwNjI1LCAwLjEyODc1LCAwLjE1IiwgXAotICAgICAgICAgICIwLjAzMjUsIDAuMDQzNzUsIDAuMDYyNSwgMC4wNzUsIDAuMDkzNzUsIDAuMTE2MjUsIDAuMTM3NSIsIFwKLSAgICAgICAgICAiMC4wMiwgMC4wMzEyNSwgMC4wNDM3NSwgMC4wNjI1LCAwLjA3NSwgMC4xMDM3NSwgMC4xMjUiLCBcCi0gICAgICAgICAgIi0wLjAwMjUsIDAuMDA4NzUsIDAuMDI3NSwgMC4wNCwgMC4wNTI1LCAwLjA4MTI1LCAwLjEwMjUiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMDYyNSwgMC4wMDYyNSwgMC4wMTg3NSwgMC4wMzc1LCAwLjA2LCAwLjA4MTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBTREZGWDIgKgotICogLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChTREZGWDIpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4zNzk5NDM7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgZmYgKE4zMCxRQklOVCkgewotICAgIG5leHRfc3RhdGUgOiAiKChTRSBTSSkgKyAoIVNFIEQpKSI7Ci0gICAgY2xvY2tlZF9vbiA6ICJDSyI7Ci0gIH0KLSAgcGluKENLKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA1ODQzMzM7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNTg0MjY7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNTg0MzMzOwotICAgIGNsb2NrIDogdHJ1ZTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDI0NTgsIDAuMDAyNDQzLCAwLjAwMjQzMiwgMC4wMDI0MjYsIDAuMDAyNDIsIDAuMDAyNDEzLCAwLjAwMjQxMiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNDcyNSwgMC4wMDQ3MTQsIDAuMDA0NzA2LCAwLjAwNDcsIDAuMDA0Njk5LCAwLjAwNDY5OSwgMC4wMDQ3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRCYhU0UmIVNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9TRV9FUV8wX0FOX1NJX0VRXzAgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4zMjUyNjgsIDAuMzM3MDM2LCAwLjM1MjQzOCwgMC4zNjc4NDgsIDAuMzgyOTQ2LCAwLjQwNzI2NywgMC40Mjc5NTQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjE5MzU3LCAwLjIwNDgzLCAwLjIyMDA5OSwgMC4yMzQ5NDIsIDAuMjQ5NDc3LCAwLjI3MjA3OSwgMC4yOTA1MDciKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEQpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYxOTUyNzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MTc2NDM7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjE5NTI3OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjI3NiwgMC4wMDIyNjYsIDAuMDAyMjYxLCAwLjAwMjI1NywgMC4wMDIyNTUsIDAuMDAyMjUyLCAwLjAwMjI0OSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzQ1NiwgMC4wMDM0NTIsIDAuMDAzNDUsIDAuMDAzNDQ4LCAwLjAwMzQ0NywgMC4wMDM0NDQsIDAuMDAzNDQ0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJTRSA9PSAxJ2IwIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4xMzEyNSwgLTAuMTIsIC0wLjExMzc1LCAtMC4xMDEyNSwgLTAuMDg4NzUsIC0wLjA3ODc1LCAtMC4wNjM3NSIsIFwKLSAgICAgICAgICAiLTAuMTQyNSwgLTAuMTMxMjUsIC0wLjEyNSwgLTAuMTEyNSwgLTAuMSwgLTAuMDksIC0wLjA3NSIsIFwKLSAgICAgICAgICAiLTAuMTU1LCAtMC4xNDM3NSwgLTAuMTM3NSwgLTAuMTI1LCAtMC4xMTg3NSwgLTAuMTAyNSwgLTAuMDg3NSIsIFwKLSAgICAgICAgICAiLTAuMTY3NSwgLTAuMTYyNSwgLTAuMTUsIC0wLjEzNzUsIC0wLjEzMTI1LCAtMC4xMTUsIC0wLjEwNjI1IiwgXAotICAgICAgICAgICItMC4xODYyNSwgLTAuMTc1LCAtMC4xNjI1LCAtMC4xNTYyNSwgLTAuMTQzNzUsIC0wLjEyNzUsIC0wLjExODc1IiwgXAotICAgICAgICAgICItMC4yMDI1LCAtMC4xOTc1LCAtMC4xODUsIC0wLjE3MjUsIC0wLjE2NjI1LCAtMC4xNSwgLTAuMTQxMjUiLCBcCi0gICAgICAgICAgIi0wLjIyMzc1LCAtMC4yMTg3NSwgLTAuMjA2MjUsIC0wLjE5Mzc1LCAtMC4xODEyNSwgLTAuMTcxMjUsIC0wLjE1NjI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDE4NzUsIC0wLjAwNzUsIDAuMDA1LCAwLjAxNzUsIDAuMDMsIDAuMDUyNSwgMC4wNjc1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLjAwNjI1LCAwLjAxODc1LCAwLjA0MTI1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLjAwNjI1LCAwLjAyODc1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA0Mzc1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLjAxNjI1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wNjc1LCAtMC4wNTYyNSwgLTAuMDQzNzUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgMC4wMDM3NSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDgzNzUsIC0wLjA3MjUsIC0wLjA2LCAtMC4wNDc1LCAtMC4wMzUsIC0wLjAxMjUsIDAuMDAyNSIsIFwKLSAgICAgICAgICAiLTAuMDk4NzUsIC0wLjA4NzUsIC0wLjA3NSwgLTAuMDYyNSwgLTAuMDUsIC0wLjAzMzc1LCAtMC4wMTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhU0UiOwotICAgICAgc2RmX2NvbmQgOiAiU0UgPT0gMSdiMCI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjEyNSwgMC4yMDEyNSwgMC4xODg3NSwgMC4xNywgMC4xNTc1LCAwLjE0MTI1LCAwLjEyNjI1IiwgXAotICAgICAgICAgICIwLjIyMzc1LCAwLjIxMjUsIDAuMiwgMC4xODEyNSwgMC4xNjg3NSwgMC4xNTI1LCAwLjEzNzUiLCBcCi0gICAgICAgICAgIjAuMjM2MjUsIDAuMjI1LCAwLjIxMjUsIDAuMTkzNzUsIDAuMTgxMjUsIDAuMTY1LCAwLjE1NjI1IiwgXAotICAgICAgICAgICIwLjI1NSwgMC4yMzc1LCAwLjIyNSwgMC4yMTI1LCAwLjIsIDAuMTgzNzUsIDAuMTY4NzUiLCBcCi0gICAgICAgICAgIjAuMjY3NSwgMC4yNTYyNSwgMC4yMzc1LCAwLjIyNSwgMC4yMTI1LCAwLjE5NjI1LCAwLjE4MTI1IiwgXAotICAgICAgICAgICIwLjI5LCAwLjI3ODc1LCAwLjI2LCAwLjI0NzUsIDAuMjM1LCAwLjIxODc1LCAwLjIwMzc1IiwgXAotICAgICAgICAgICIwLjMwNSwgMC4yOTM3NSwgMC4yODEyNSwgMC4yNjI1LCAwLjI1LCAwLjIzMzc1LCAwLjIyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEzNzUsIDAuMTI2MjUsIDAuMTA3NSwgMC4wOTUsIDAuMDc2MjUsIDAuMDUzNzUsIDAuMDMyNSIsIFwKLSAgICAgICAgICAiMC4xNDg3NSwgMC4xMzc1LCAwLjExODc1LCAwLjEwNjI1LCAwLjA4NzUsIDAuMDY1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjE2MTI1LCAwLjE1LCAwLjEzNzUsIDAuMTE4NzUsIDAuMSwgMC4wNzc1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICIwLjE3Mzc1LCAwLjE2MjUsIDAuMTUsIDAuMTMxMjUsIDAuMTEyNSwgMC4wOSwgMC4wNjg3NSIsIFwKLSAgICAgICAgICAiMC4xODYyNSwgMC4xNzUsIDAuMTYyNSwgMC4xNDM3NSwgMC4xMjUsIDAuMTAyNSwgMC4wODEyNSIsIFwKLSAgICAgICAgICAiMC4yMDg3NSwgMC4xOTc1LCAwLjE3ODc1LCAwLjE2LCAwLjE0NzUsIDAuMTI1LCAwLjEwMzc1IiwgXAotICAgICAgICAgICIwLjIyMzc1LCAwLjIxMjUsIDAuMTkzNzUsIDAuMTgxMjUsIDAuMTYyNSwgMC4xNCwgMC4xMTg3NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjI2NzA3MTsKLSAgICBmdW5jdGlvbiA6ICJOMzAiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5vbl91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcmlzaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI0NTk2MywgMC40MjU5ODIsIDAuNTY5NDg2LCAwLjc0ODQ4OCwgMC45MjY1MDksIDEuMTA1ODEsIDEuMjgyNDQiLCBcCi0gICAgICAgICAgIjAuMjU3NTYyLCAwLjQzNzg3LCAwLjU4MTM2LCAwLjc2MDMzMSwgMC45MzgyMzYsIDEuMTE2NzQsIDEuMjk0MDYiLCBcCi0gICAgICAgICAgIjAuMjcyOTIzLCAwLjQ1MzI0OSwgMC41OTYyNTcsIDAuNzc1NzA5LCAwLjk1NDQyMSwgMS4xMzExLCAxLjMxMDA4IiwgXAotICAgICAgICAgICIwLjI4ODM4LCAwLjQ2ODE2LCAwLjYxMjgzMSwgMC43OTEyLCAwLjk2OTE2LCAxLjE0NjY2LCAxLjMyNDg1IiwgXAotICAgICAgICAgICIwLjMwMzQ2OCwgMC40ODM3NTgsIDAuNjI2ODcxLCAwLjgwNjMzNSwgMC45ODQ0NjksIDEuMTY0NjcsIDEuMzQwMDQiLCBcCi0gICAgICAgICAgIjAuMzI3Njg3LCAwLjUwNzYxMywgMC42NTAzOCwgMC44MzA0ODcsIDEuMDA3NjYsIDEuMTg3MDMsIDEuMzY1MjQiLCBcCi0gICAgICAgICAgIjAuMzQ3OTg5LCAwLjUyNzg3NCwgMC42NzIzMDUsIDAuODUwODQxLCAxLjAyODM0LCAxLjIwNzU1LCAxLjM4NDI0Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5MzcwNywgMC40NTE0MDQsIDAuNzQ3NjM3LCAxLjEwMDUyLCAxLjQ3MDI2LCAxLjg0Njc3LCAyLjIyMDczIiwgXAotICAgICAgICAgICIwLjA5MzYyLCAwLjQ1NDg4MywgMC43NDcwNDksIDEuMTE1MjcsIDEuNDY3OTYsIDEuODUzMTcsIDIuMjIwNzEiLCBcCi0gICAgICAgICAgIjAuMDkzNzE1LCAwLjQ1NDg4NCwgMC43NDkwMjMsIDEuMTEzODYsIDEuNDY5NzYsIDEuODQwNTMsIDIuMTk1MTQiLCBcCi0gICAgICAgICAgIjAuMDkzNjc2LCAwLjQ1MjY3NiwgMC43NDc3NDcsIDEuMTEyOTUsIDEuNDY1NDIsIDEuODUzLCAyLjIyMDYzIiwgXAotICAgICAgICAgICIwLjA5MzY0OSwgMC40NTQ4NzYsIDAuNzQ3NzAyLCAxLjEwMjE5LCAxLjQ2MzU2LCAxLjgyOTU4LCAyLjIwMjUyIiwgXAotICAgICAgICAgICIwLjA5MzcxOCwgMC40NTI3MTcsIDAuNzQxMzUxLCAxLjExNDkyLCAxLjQ3Njc5LCAxLjgyNTY5LCAyLjE5MTk4IiwgXAotICAgICAgICAgICIwLjA5MzczNywgMC40NTI2NCwgMC43Mzk2MTcsIDEuMTA2MzgsIDEuNDc2MDksIDEuODI4MTgsIDIuMjA1ODEiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjgwNTc3LCAwLjQ4ODYxNywgMC42NTMzMTEsIDAuODYxMzc3LCAxLjA2NjEyLCAxLjI3MjgyLCAxLjQ4MzM4IiwgXAotICAgICAgICAgICIwLjI5MjI2NCwgMC41MDAyNDgsIDAuNjY1MzY4LCAwLjg3MTUxNywgMS4wNzkwOCwgMS4yODQzNiwgMS40OTQ5IiwgXAotICAgICAgICAgICIwLjMwNzc0LCAwLjUxNTcwMiwgMC42ODA1MDYsIDAuODg3MDYyLCAxLjA5NDIyLCAxLjMwMTU0LCAxLjUwNzI3IiwgXAotICAgICAgICAgICIwLjMyMzEyMSwgMC41MzEwNiwgMC42OTU4NTIsIDAuOTAyNTc2LCAxLjEwODU4LCAxLjMxNTUyLCAxLjUyNTkyIiwgXAotICAgICAgICAgICIwLjMzODI0OCwgMC41NDYxODYsIDAuNzExMDA1LCAwLjkxNzc0MywgMS4xMjQ2NywgMS4zMzAzOCwgMS41MzgwMiIsIFwKLSAgICAgICAgICAiMC4zNjI1NjEsIDAuNTcwNDcxLCAwLjczNTI5NCwgMC45NDIxODksIDEuMTQ5MTMsIDEuMzU0NDksIDEuNTYyNTciLCBcCi0gICAgICAgICAgIjAuMzgzMjI5LCAwLjU5MTE1NiwgMC43NTU5NzUsIDAuOTYyNzEsIDEuMTY5NjMsIDEuMzc4ODksIDEuNTgyOTgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTAyODAzLCAwLjUwNjQ1OCwgMC44MzQ1MDcsIDEuMjQ3MTMsIDEuNjU2NjMsIDIuMDY5NDYsIDIuNDc4ODciLCBcCi0gICAgICAgICAgIjAuMTAyMTk4LCAwLjUwNzU3NywgMC44MzY1OSwgMS4yNDYxLCAxLjY1Nzk4LCAyLjA2ODA5LCAyLjQ4MTcxIiwgXAotICAgICAgICAgICIwLjEwMjQ3LCAwLjUwNzU4OSwgMC44MzU4NzIsIDEuMjQ2OTEsIDEuNjU5MDIsIDIuMDY2OTYsIDIuNDgyMzYiLCBcCi0gICAgICAgICAgIjAuMTAyNiwgMC41MDc1NzMsIDAuODM0MzU3LCAxLjI0NTExLCAxLjY1ODMxLCAyLjA2OTI1LCAyLjQ4MTI2IiwgXAotICAgICAgICAgICIwLjEwMjU2NCwgMC41MDc1NjYsIDAuODM1NzYzLCAxLjI0NzE5LCAxLjY1ODc1LCAyLjA2ODQ0LCAyLjQ4MTc4IiwgXAotICAgICAgICAgICIwLjEwMjE5OCwgMC41MDc1NDksIDAuODM0OTYzLCAxLjI0NjE2LCAxLjY2MDA1LCAyLjA3MDcsIDIuNDgyMzgiLCBcCi0gICAgICAgICAgIjAuMTAyMzEzLCAwLjUwNzU2NiwgMC44MzU3NywgMS4yNDcxOSwgMS42NTg3NCwgMi4wNjk1MywgMi40ODE4MyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQxODQsIDAuMDA0MjEyLCAwLjAwNDIxMiwgMC4wMDQyMTEsIDAuMDA0MjEsIDAuMDA0MjA5LCAwLjAwNDIwOCIsIFwKLSAgICAgICAgICAiMC4wMDQxNzcsIDAuMDA0MjA1LCAwLjAwNDIwNCwgMC4wMDQyMDMsIDAuMDA0MjAyLCAwLjAwNDIwMiwgMC4wMDQyMDEiLCBcCi0gICAgICAgICAgIjAuMDA0MTcsIDAuMDA0MTk5LCAwLjAwNDE5OCwgMC4wMDQxOTcsIDAuMDA0MTk3LCAwLjAwNDE5NiwgMC4wMDQxOTUiLCBcCi0gICAgICAgICAgIjAuMDA0MTY2LCAwLjAwNDE5NSwgMC4wMDQxOTQsIDAuMDA0MTkzLCAwLjAwNDE5MiwgMC4wMDQxOTEsIDAuMDA0MTkiLCBcCi0gICAgICAgICAgIjAuMDA0MTYxLCAwLjAwNDE5LCAwLjAwNDE4OSwgMC4wMDQxODgsIDAuMDA0MTg3LCAwLjAwNDE4NiwgMC4wMDQxODYiLCBcCi0gICAgICAgICAgIjAuMDA0MTU3LCAwLjAwNDE4NiwgMC4wMDQxODUsIDAuMDA0MTg0LCAwLjAwNDE4MywgMC4wMDQxODMsIDAuMDA0MTgyIiwgXAotICAgICAgICAgICIwLjAwNDE1NCwgMC4wMDQxODMsIDAuMDA0MTgzLCAwLjAwNDE4MSwgMC4wMDQxOCwgMC4wMDQxOCwgMC4wMDQxOCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDQxNiwgMC4wMDQ0NTIsIDAuMDA0NDU3LCAwLjAwNDQ1OCwgMC4wMDQ0NTksIDAuMDA0NDU5LCAwLjAwNDQ2IiwgXAotICAgICAgICAgICIwLjAwNDQwOCwgMC4wMDQ0NDUsIDAuMDA0NDQ5LCAwLjAwNDQ1MSwgMC4wMDQ0NTIsIDAuMDA0NDUzLCAwLjAwNDQ1MyIsIFwKLSAgICAgICAgICAiMC4wMDQ0MDMsIDAuMDA0NDQsIDAuMDA0NDQzLCAwLjAwNDQ0NSwgMC4wMDQ0NDYsIDAuMDA0NDQ3LCAwLjAwNDQ0NyIsIFwKLSAgICAgICAgICAiMC4wMDQzOTksIDAuMDA0NDM2LCAwLjAwNDQ0LCAwLjAwNDQ0MSwgMC4wMDQ0NDMsIDAuMDA0NDQzLCAwLjAwNDQ0NCIsIFwKLSAgICAgICAgICAiMC4wMDQzOTgsIDAuMDA0NDM0LCAwLjAwNDQzOCwgMC4wMDQ0NCwgMC4wMDQ0NDEsIDAuMDA0NDQyLCAwLjAwNDQ0MiIsIFwKLSAgICAgICAgICAiMC4wMDQzOTcsIDAuMDA0NDMzLCAwLjAwNDQzNywgMC4wMDQ0MzksIDAuMDA0NDQsIDAuMDA0NDQxLCAwLjAwNDQ0MSIsIFwKLSAgICAgICAgICAiMC4wMDQzOTksIDAuMDA0NDM2LCAwLjAwNDQ0LCAwLjAwNDQ0MiwgMC4wMDQ0NDMsIDAuMDA0NDQ0LCAwLjAwNDQ0NCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUU4pICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4yNjY3OTk7Ci0gICAgZnVuY3Rpb24gOiAiUUJJTlQiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5vbl91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcmlzaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMyNTI2OSwgMC41MDQxNDUsIDAuNjQ3NDg1LCAwLjgyNjY5NCwgMS4wMDU5NywgMS4xODUxNiwgMS4zNjQ0OCIsIFwKLSAgICAgICAgICAiMC4zMzcwMzcsIDAuNTE1ODI3LCAwLjY1OTE4NSwgMC44Mzg0NjIsIDEuMDE3NjEsIDEuMTk2OTEsIDEuMzc2MTkiLCBcCi0gICAgICAgICAgIjAuMzUyNDM5LCAwLjUzMTMsIDAuNjc0Njc3LCAwLjg1Mzg5NywgMS4wMzI4NiwgMS4yMTIyOCwgMS4zOTE1MiIsIFwKLSAgICAgICAgICAiMC4zNjc4NSwgMC41NDY2NTYsIDAuNjkwMDI2LCAwLjg2OTAzOSwgMS4wNDg1MSwgMS4yMjc2OSwgMS40MDY5NCIsIFwKLSAgICAgICAgICAiMC4zODI5NDYsIDAuNTYxNzgxLCAwLjcwNTE3MywgMC44ODQzODQsIDEuMDYzNTcsIDEuMjQyODcsIDEuNDIyMDIiLCBcCi0gICAgICAgICAgIjAuNDA3MjY3LCAwLjU4NjA3NiwgMC43Mjk0NjIsIDAuOTA4Njk5LCAxLjA4Nzk0LCAxLjI2NzI2LCAxLjQ0NjMyIiwgXAotICAgICAgICAgICIwLjQyNzk1NCwgMC42MDY3NTQsIDAuNzUwMTQ2LCAwLjkyOTM1OCwgMS4xMDg1NSwgMS4yODc4NCwgMS40NjY5OSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTA4MDgsIDAuNDUwMzI1LCAwLjc0MTcwNCwgMS4xMDkzLCAxLjQ3MTE3LCAxLjgzNjc0LCAyLjIwNTkiLCBcCi0gICAgICAgICAgIjAuMDkwODQ3LCAwLjQ1MTYwOSwgMC43NDM4NjgsIDEuMTA2NywgMS40NzQzOSwgMS44MzU4NiwgMi4yMDU5OCIsIFwKLSAgICAgICAgICAiMC4wOTA3MzksIDAuNDUxNTkyLCAwLjc0MTQ3NywgMS4xMDczOSwgMS40NzM3MiwgMS44Mzk3NiwgMi4yMDE0IiwgXAotICAgICAgICAgICIwLjA5MDgxNiwgMC40NTE1OTgsIDAuNzQxNzAxLCAxLjEwNzAzLCAxLjQ3MTMsIDEuODM2NjgsIDIuMjA1NSIsIFwKLSAgICAgICAgICAiMC4wOTA3OTUsIDAuNDUxNTk5LCAwLjc0MTU3OSwgMS4xMDcxOCwgMS40NzE4MywgMS44MzU5MiwgMi4yMDEyMSIsIFwKLSAgICAgICAgICAiMC4wOTA3ODcsIDAuNDUxNTg4LCAwLjc0MTY1NSwgMS4xMDcyMywgMS40NzM1LCAxLjgzNTU4LCAyLjIwNDIyIiwgXAotICAgICAgICAgICIwLjA5MDc5OCwgMC40NTE1OTgsIDAuNzQxNTgzLCAxLjEwNzE4LCAxLjQ3MTg1LCAxLjg0MDA5LCAyLjIwMTIyIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI5ODE4MSwgMC41MDQyNTgsIDAuNjY5MzY5LCAwLjg3NTc0MSwgMS4wODIxMSwgMS4yODg1NCwgMS40OTQ4NSIsIFwKLSAgICAgICAgICAiMC4zMDk3NTMsIDAuNTE1Nzk0LCAwLjY4MDk1NSwgMC44ODczNjYsIDEuMDkzNzEsIDEuMzAwMTMsIDEuNTA2NDUiLCBcCi0gICAgICAgICAgIjAuMzI1MDg4LCAwLjUzMTEzOCwgMC42OTYyODEsIDAuOTAyNzE5LCAxLjEwOTEyLCAxLjMxNTQzLCAxLjUyMTgyIiwgXAotICAgICAgICAgICIwLjM0MDU1NSwgMC41NDY2MjQsIDAuNzExODI2LCAwLjkxODE5MywgMS4xMjQ1MywgMS4zMzA4OSwgMS41MzcyNiIsIFwKLSAgICAgICAgICAiMC4zNTU2NDcsIDAuNTYxNjk1LCAwLjcyNjg4NSwgMC45MzMyOTUsIDEuMTM5NjMsIDEuMzQ2MjEsIDEuNTUyMzgiLCBcCi0gICAgICAgICAgIjAuMzc5ODUsIDAuNTg1ODg1LCAwLjc1MTAxOCwgMC45NTc1MjIsIDEuMTYzOCwgMS4zNzAyLCAxLjU3NjYiLCBcCi0gICAgICAgICAgIjAuNDAwMTcyLCAwLjYwNjIyNywgMC43NzE0NjksIDAuOTc3ODEsIDEuMTg0MTMsIDEuMzkwNTUsIDEuNTk2ODkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk5NSwgMC41MDY0ODYsIDAuODM1MDU3LCAxLjI0NTgsIDEuNjU2NzcsIDIuMDY2NDksIDIuNDc4OCIsIFwKLSAgICAgICAgICAiMC4wOTk0OSwgMC41MDY4ODcsIDAuODM1MzczLCAxLjI0NTk4LCAxLjY1NjY4LCAyLjA2ODA3LCAyLjQ3ODgxIiwgXAotICAgICAgICAgICIwLjA5OTUyMywgMC41MDY4NjEsIDAuODM1NDc2LCAxLjI0NTk5LCAxLjY1NjM5LCAyLjA2NzY4LCAyLjQ3ODI0IiwgXAotICAgICAgICAgICIwLjA5OTUwNCwgMC41MDY3MzUsIDAuODM1MzMyLCAxLjI0NTk4LCAxLjY1NjYxLCAyLjA2Nzc0LCAyLjQ3ODUyIiwgXAotICAgICAgICAgICIwLjA5OTQ5NywgMC41MDY4OTQsIDAuODM1MDgxLCAxLjI0NTYyLCAxLjY1NjQ2LCAyLjA2Njc4LCAyLjQ3ODQxIiwgXAotICAgICAgICAgICIwLjA5OTUyMSwgMC41MDY3NjgsIDAuODM1NjAyLCAxLjI0NTczLCAxLjY1NjkyLCAyLjA2NzIyLCAyLjQ3ODIxIiwgXAotICAgICAgICAgICIwLjA5OTQ5NCwgMC41MDY3ODQsIDAuODM0OTQsIDEuMjQ1NzMsIDEuNjU3NjksIDIuMDY3MjEsIDIuNDc4NSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQ0MTYsIDAuMDA0NDUyLCAwLjAwNDQ1NywgMC4wMDQ0NTgsIDAuMDA0NDU5LCAwLjAwNDQ1OSwgMC4wMDQ0NiIsIFwKLSAgICAgICAgICAiMC4wMDQ0MDgsIDAuMDA0NDQ1LCAwLjAwNDQ0OSwgMC4wMDQ0NTEsIDAuMDA0NDUyLCAwLjAwNDQ1MywgMC4wMDQ0NTMiLCBcCi0gICAgICAgICAgIjAuMDA0NDAzLCAwLjAwNDQ0LCAwLjAwNDQ0MywgMC4wMDQ0NDUsIDAuMDA0NDQ2LCAwLjAwNDQ0NywgMC4wMDQ0NDciLCBcCi0gICAgICAgICAgIjAuMDA0Mzk5LCAwLjAwNDQzNiwgMC4wMDQ0NCwgMC4wMDQ0NDEsIDAuMDA0NDQzLCAwLjAwNDQ0MywgMC4wMDQ0NDQiLCBcCi0gICAgICAgICAgIjAuMDA0Mzk4LCAwLjAwNDQzNCwgMC4wMDQ0MzgsIDAuMDA0NDQsIDAuMDA0NDQxLCAwLjAwNDQ0MiwgMC4wMDQ0NDIiLCBcCi0gICAgICAgICAgIjAuMDA0Mzk3LCAwLjAwNDQzMywgMC4wMDQ0MzcsIDAuMDA0NDM5LCAwLjAwNDQ0LCAwLjAwNDQ0MSwgMC4wMDQ0NDEiLCBcCi0gICAgICAgICAgIjAuMDA0Mzk5LCAwLjAwNDQzNiwgMC4wMDQ0NCwgMC4wMDQ0NDIsIDAuMDA0NDQzLCAwLjAwNDQ0NCwgMC4wMDQ0NDQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQxODQsIDAuMDA0MjEyLCAwLjAwNDIxMiwgMC4wMDQyMTEsIDAuMDA0MjEsIDAuMDA0MjA5LCAwLjAwNDIwOCIsIFwKLSAgICAgICAgICAiMC4wMDQxNzcsIDAuMDA0MjA1LCAwLjAwNDIwNCwgMC4wMDQyMDMsIDAuMDA0MjAyLCAwLjAwNDIwMiwgMC4wMDQyMDEiLCBcCi0gICAgICAgICAgIjAuMDA0MTcsIDAuMDA0MTk5LCAwLjAwNDE5OCwgMC4wMDQxOTcsIDAuMDA0MTk3LCAwLjAwNDE5NiwgMC4wMDQxOTUiLCBcCi0gICAgICAgICAgIjAuMDA0MTY2LCAwLjAwNDE5NSwgMC4wMDQxOTQsIDAuMDA0MTkzLCAwLjAwNDE5MiwgMC4wMDQxOTEsIDAuMDA0MTkiLCBcCi0gICAgICAgICAgIjAuMDA0MTYxLCAwLjAwNDE5LCAwLjAwNDE4OSwgMC4wMDQxODgsIDAuMDA0MTg3LCAwLjAwNDE4NiwgMC4wMDQxODYiLCBcCi0gICAgICAgICAgIjAuMDA0MTU3LCAwLjAwNDE4NiwgMC4wMDQxODUsIDAuMDA0MTg0LCAwLjAwNDE4MywgMC4wMDQxODMsIDAuMDA0MTgyIiwgXAotICAgICAgICAgICIwLjAwNDE1NCwgMC4wMDQxODMsIDAuMDA0MTgzLCAwLjAwNDE4MSwgMC4wMDQxOCwgMC4wMDQxOCwgMC4wMDQxOCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oU0UpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTEyMDQzOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTExOTg0OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTEyMDQzOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzM3NSwgMC4wMDMzNjcsIDAuMDAzMzYsIDAuMDAzMzU2LCAwLjAwMzM1NCwgMC4wMDMzNTIsIDAuMDAzMzUyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA0Njk0LCAwLjAwNDY3OCwgMC4wMDQ2NjUsIDAuMDA0NjU4LCAwLjAwNDY1MywgMC4wMDQ2NDcsIDAuMDA0NjQ0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEJlNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9TSV9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjExODc1LCAtMC4xMDc1LCAtMC4wOTUsIC0wLjA4ODc1LCAtMC4wNzYyNSwgLTAuMDY2MjUsIC0wLjA1MTI1IiwgXAotICAgICAgICAgICItMC4xMywgLTAuMTE4NzUsIC0wLjEwNjI1LCAtMC4xLCAtMC4wODc1LCAtMC4wNzEyNSwgLTAuMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMTQyNSwgLTAuMTMxMjUsIC0wLjEyNSwgLTAuMTEyNSwgLTAuMSwgLTAuMDksIC0wLjA3NSIsIFwKLSAgICAgICAgICAiLTAuMTU1LCAtMC4xNDM3NSwgLTAuMTM3NSwgLTAuMTI1LCAtMC4xMTI1LCAtMC4xMDI1LCAtMC4wODc1IiwgXAotICAgICAgICAgICItMC4xNjc1LCAtMC4xNjI1LCAtMC4xNSwgLTAuMTM3NSwgLTAuMTMxMjUsIC0wLjExNSwgLTAuMTA2MjUiLCBcCi0gICAgICAgICAgIi0wLjE5LCAtMC4xODUsIC0wLjE3MjUsIC0wLjE2LCAtMC4xNTM3NSwgLTAuMTM3NSwgLTAuMTIyNSIsIFwKLSAgICAgICAgICAiLTAuMjExMjUsIC0wLjIsIC0wLjE4NzUsIC0wLjE4MTI1LCAtMC4xNjg3NSwgLTAuMTU4NzUsIC0wLjE0Mzc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDA2MjUsIDAuMDA1LCAwLjAxNzUsIDAuMDMsIDAuMDQyNSwgMC4wNjUsIDAuMDgiLCBcCi0gICAgICAgICAgIi0wLjAxNzUsIC0wLjAwNjI1LCAwLjAwNjI1LCAwLjAxODc1LCAwLjAzMTI1LCAwLjA1Mzc1LCAwLjA2ODc1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLjAwNjI1LCAwLjAxODc1LCAwLjA0MTI1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLjAwNjI1LCAwLjAyODc1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA0Mzc1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLjAxNjI1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wNzEyNSwgLTAuMDYsIC0wLjA0NzUsIC0wLjAzNSwgLTAuMDIyNSwgLTAuMDA2MjUsIDAuMDE1IiwgXAotICAgICAgICAgICItMC4wODYyNSwgLTAuMDY4NzUsIC0wLjA2MjUsIC0wLjA1LCAtMC4wMzc1LCAtMC4wMjEyNSwgMCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJEJiFTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzFfQU5fU0lfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wNSwgLTAuMDM4NzUsIC0wLjAyLCAtMC4wMDc1LCAwLjAwNSwgMC4wMjc1LCAwLjA0MjUiLCBcCi0gICAgICAgICAgIi0wLjA2MTI1LCAtMC4wNSwgLTAuMDMxMjUsIC0wLjAxODc1LCAtMC4wMDYyNSwgMC4wMSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDczNzUsIC0wLjA2MjUsIC0wLjA1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAwMjUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDkyNSwgLTAuMDc1LCAtMC4wNjI1LCAtMC4wNSwgLTAuMDM3NSwgLTAuMDE1LCAwIiwgXAotICAgICAgICAgICItMC4xMDUsIC0wLjA5Mzc1LCAtMC4wODEyNSwgLTAuMDY4NzUsIC0wLjA1NjI1LCAtMC4wMzM3NSwgLTAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMTI3NSwgLTAuMTE2MjUsIC0wLjEwMzc1LCAtMC4wOTEyNSwgLTAuMDc4NzUsIC0wLjA1NjI1LCAtMC4wMzUiLCBcCi0gICAgICAgICAgIi0wLjE0MjUsIC0wLjEzMTI1LCAtMC4xMTg3NSwgLTAuMTA2MjUsIC0wLjA5Mzc1LCAtMC4wNzEyNSwgLTAuMDU2MjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4xNTYyNSwgLTAuMTQ1LCAtMC4xMzI1LCAtMC4xMiwgLTAuMTEzNzUsIC0wLjA5NzUsIC0wLjA4ODc1IiwgXAotICAgICAgICAgICItMC4xNjc1LCAtMC4xNTYyNSwgLTAuMTQzNzUsIC0wLjEzNzUsIC0wLjEyNSwgLTAuMTA4NzUsIC0wLjEiLCBcCi0gICAgICAgICAgIi0wLjE4LCAtMC4xNjg3NSwgLTAuMTYyNSwgLTAuMTUsIC0wLjEzNzUsIC0wLjEyNzUsIC0wLjExMjUiLCBcCi0gICAgICAgICAgIi0wLjE5MjUsIC0wLjE4NzUsIC0wLjE3NSwgLTAuMTYyNSwgLTAuMTU2MjUsIC0wLjE0LCAtMC4xMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMjA1LCAtMC4yLCAtMC4xODc1LCAtMC4xNzUsIC0wLjE2ODc1LCAtMC4xNTI1LCAtMC4xNDM3NSIsIFwKLSAgICAgICAgICAiLTAuMjI3NSwgLTAuMjE2MjUsIC0wLjIxLCAtMC4xOTc1LCAtMC4xODUsIC0wLjE3NSwgLTAuMTYiLCBcCi0gICAgICAgICAgIi0wLjI0MjUsIC0wLjIzMTI1LCAtMC4yMjUsIC0wLjIxMjUsIC0wLjIsIC0wLjE5LCAtMC4xNzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEJlNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9TSV9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIsIDAuMTg4NzUsIDAuMTc2MjUsIDAuMTU3NSwgMC4xNDUsIDAuMTI4NzUsIDAuMTEzNzUiLCBcCi0gICAgICAgICAgIjAuMjExMjUsIDAuMiwgMC4xODc1LCAwLjE2ODc1LCAwLjE1NjI1LCAwLjE0LCAwLjEyNSIsIFwKLSAgICAgICAgICAiMC4yMjM3NSwgMC4yMTI1LCAwLjIsIDAuMTgxMjUsIDAuMTY4NzUsIDAuMTUyNSwgMC4xMzc1IiwgXAotICAgICAgICAgICIwLjIzNjI1LCAwLjIyNSwgMC4yMTI1LCAwLjE5Mzc1LCAwLjE4MTI1LCAwLjE2NSwgMC4xNTYyNSIsIFwKLSAgICAgICAgICAiMC4yNTUsIDAuMjM3NSwgMC4yMjUsIDAuMjEyNSwgMC4yLCAwLjE3NzUsIDAuMTY4NzUiLCBcCi0gICAgICAgICAgIjAuMjc3NSwgMC4yNiwgMC4yNDc1LCAwLjIzNSwgMC4yMjI1LCAwLjIsIDAuMTkxMjUiLCBcCi0gICAgICAgICAgIjAuMjkyNSwgMC4yODEyNSwgMC4yNjg3NSwgMC4yNSwgMC4yMzc1LCAwLjIyMTI1LCAwLjIwNjI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTI1LCAwLjExMzc1LCAwLjA5NSwgMC4wODI1LCAwLjA2Mzc1LCAwLjA0MTI1LCAwLjAyIiwgXAotICAgICAgICAgICIwLjEzNjI1LCAwLjEyNSwgMC4xMDYyNSwgMC4wOTM3NSwgMC4wNzUsIDAuMDUyNSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4xNDg3NSwgMC4xMzc1LCAwLjExODc1LCAwLjEwNjI1LCAwLjA4NzUsIDAuMDY1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjE2MTI1LCAwLjE1LCAwLjEzMTI1LCAwLjExODc1LCAwLjEsIDAuMDc3NSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiMC4xNzM3NSwgMC4xNjI1LCAwLjE1LCAwLjEzMTI1LCAwLjExMjUsIDAuMDksIDAuMDY4NzUiLCBcCi0gICAgICAgICAgIjAuMTk2MjUsIDAuMTg1LCAwLjE2NjI1LCAwLjE1Mzc1LCAwLjEzNSwgMC4xMTI1LCAwLjA5MTI1IiwgXAotICAgICAgICAgICIwLjIxNzUsIDAuMjA2MjUsIDAuMTg3NSwgMC4xNjg3NSwgMC4xNTYyNSwgMC4xMzM3NSwgMC4xMTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJEJiFTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzFfQU5fU0lfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNjg3NSwgMC4xNTc1LCAwLjEzODc1LCAwLjEyLCAwLjEwNzUsIDAuMDc4NzUsIDAuMDYzNzUiLCBcCi0gICAgICAgICAgIjAuMTgsIDAuMTY4NzUsIDAuMTUsIDAuMTMxMjUsIDAuMTE4NzUsIDAuMDk2MjUsIDAuMDc1IiwgXAotICAgICAgICAgICIwLjE5MjUsIDAuMTgxMjUsIDAuMTY4NzUsIDAuMTUsIDAuMTMxMjUsIDAuMTA4NzUsIDAuMDg3NSIsIFwKLSAgICAgICAgICAiMC4yMTEyNSwgMC4yLCAwLjE4MTI1LCAwLjE2MjUsIDAuMTUsIDAuMTIxMjUsIDAuMTA2MjUiLCBcCi0gICAgICAgICAgIjAuMjIzNzUsIDAuMjEyNSwgMC4xOTM3NSwgMC4xODEyNSwgMC4xNjI1LCAwLjE0LCAwLjExODc1IiwgXAotICAgICAgICAgICIwLjI0NjI1LCAwLjIzNSwgMC4yMTYyNSwgMC4yMDM3NSwgMC4xODUsIDAuMTYyNSwgMC4xNDEyNSIsIFwKLSAgICAgICAgICAiMC4yNjEyNSwgMC4yNSwgMC4yMzc1LCAwLjIxODc1LCAwLjIwNjI1LCAwLjE3NzUsIDAuMTU2MjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMzc1LCAwLjIyNjI1LCAwLjIwNzUsIDAuMTk1LCAwLjE4MjUsIDAuMTY2MjUsIDAuMTUxMjUiLCBcCi0gICAgICAgICAgIjAuMjQ4NzUsIDAuMjM3NSwgMC4yMTg3NSwgMC4yMDYyNSwgMC4xOTM3NSwgMC4xNzc1LCAwLjE2MjUiLCBcCi0gICAgICAgICAgIjAuMjYxMjUsIDAuMjUsIDAuMjM3NSwgMC4yMTg3NSwgMC4yMDYyNSwgMC4xOSwgMC4xODEyNSIsIFwKLSAgICAgICAgICAiMC4yOCwgMC4yNjI1LCAwLjI1LCAwLjIzNzUsIDAuMjI1LCAwLjIwMjUsIDAuMTkzNzUiLCBcCi0gICAgICAgICAgIjAuMjkyNSwgMC4yNzUsIDAuMjYyNSwgMC4yNSwgMC4yMzc1LCAwLjIyMTI1LCAwLjIwNjI1IiwgXAotICAgICAgICAgICIwLjMwODc1LCAwLjI5NzUsIDAuMjg1LCAwLjI2NjI1LCAwLjI1Mzc1LCAwLjIzNzUsIDAuMjIyNSIsIFwKLSAgICAgICAgICAiMC4zMjM3NSwgMC4zMTI1LCAwLjMsIDAuMjgxMjUsIDAuMjY4NzUsIDAuMjUyNSwgMC4yNDM3NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oU0kpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDU3MTMxMzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA1Njk3MzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA1NzEzMTM7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyMTkzLCAwLjAwMjE4MywgMC4wMDIxNzgsIDAuMDAyMTc1LCAwLjAwMjE3MiwgMC4wMDIxNjksIDAuMDAyMTY2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzNjA5LCAwLjAwMzYwNCwgMC4wMDM2MDEsIDAuMDAzNTk5LCAwLjAwMzU5OCwgMC4wMDM1OTcsIDAuMDAzNTk2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlNFIjsKLSAgICAgIHNkZl9jb25kIDogIlNFID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjEzMTI1LCAtMC4xMiwgLTAuMTEzNzUsIC0wLjEwMTI1LCAtMC4wOTUsIC0wLjA3ODc1LCAtMC4wNjM3NSIsIFwKLSAgICAgICAgICAiLTAuMTQyNSwgLTAuMTM3NSwgLTAuMTI1LCAtMC4xMTI1LCAtMC4xMDYyNSwgLTAuMDksIC0wLjA4MTI1IiwgXAotICAgICAgICAgICItMC4xNjEyNSwgLTAuMTUsIC0wLjEzNzUsIC0wLjEyNSwgLTAuMTE4NzUsIC0wLjEwMjUsIC0wLjA5Mzc1IiwgXAotICAgICAgICAgICItMC4xNzM3NSwgLTAuMTYyNSwgLTAuMTUsIC0wLjE0Mzc1LCAtMC4xMzEyNSwgLTAuMTE1LCAtMC4xMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMTg2MjUsIC0wLjE3NSwgLTAuMTYyNSwgLTAuMTU2MjUsIC0wLjE0Mzc1LCAtMC4xMzM3NSwgLTAuMTE4NzUiLCBcCi0gICAgICAgICAgIi0wLjIwODc1LCAtMC4xOTc1LCAtMC4xODUsIC0wLjE3ODc1LCAtMC4xNjYyNSwgLTAuMTUsIC0wLjE0MTI1IiwgXAotICAgICAgICAgICItMC4yMywgLTAuMjE4NzUsIC0wLjIwNjI1LCAtMC4xOTM3NSwgLTAuMTg3NSwgLTAuMTcxMjUsIC0wLjE2MjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMjUsIC0wLjAwNzUsIDAuMDA1LCAwLjAxNzUsIDAuMDMsIDAuMDQ2MjUsIDAuMDY3NSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAxODc1LCAtMC4wMDYyNSwgMC4wMDYyNSwgMC4wMTg3NSwgMC4wMzUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wMzc1LCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAuMDA2MjUsIDAuMDIyNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDYxMjUsIC0wLjA1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLjAxLCAwLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wNzM3NSwgLTAuMDU2MjUsIC0wLjA0Mzc1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIDAuMDAzNzUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjA5LCAtMC4wNzg3NSwgLTAuMDY2MjUsIC0wLjA1Mzc1LCAtMC4wNDEyNSwgLTAuMDE4NzUsIDAuMDAyNSIsIFwKLSAgICAgICAgICAiLTAuMTA1LCAtMC4wOTM3NSwgLTAuMDgxMjUsIC0wLjA2ODc1LCAtMC4wNTYyNSwgLTAuMDMzNzUsIC0wLjAxODc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJTRSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMTI1LCAwLjIwMTI1LCAwLjE4ODc1LCAwLjE3LCAwLjE1NzUsIDAuMTQxMjUsIDAuMTMyNSIsIFwKLSAgICAgICAgICAiMC4yMywgMC4yMTI1LCAwLjIsIDAuMTgxMjUsIDAuMTY4NzUsIDAuMTUyNSwgMC4xNDM3NSIsIFwKLSAgICAgICAgICAiMC4yNDI1LCAwLjIzMTI1LCAwLjIxMjUsIDAuMiwgMC4xODc1LCAwLjE3MTI1LCAwLjE1NjI1IiwgXAotICAgICAgICAgICIwLjI1NSwgMC4yNDM3NSwgMC4yMjUsIDAuMjEyNSwgMC4yLCAwLjE4Mzc1LCAwLjE2ODc1IiwgXAotICAgICAgICAgICIwLjI2NzUsIDAuMjU2MjUsIDAuMjQzNzUsIDAuMjI1LCAwLjIxMjUsIDAuMTk2MjUsIDAuMTgxMjUiLCBcCi0gICAgICAgICAgIjAuMjksIDAuMjc4NzUsIDAuMjYsIDAuMjQ3NSwgMC4yMzUsIDAuMjE4NzUsIDAuMjAzNzUiLCBcCi0gICAgICAgICAgIjAuMzExMjUsIDAuMjkzNzUsIDAuMjgxMjUsIDAuMjY4NzUsIDAuMjU2MjUsIDAuMjQsIDAuMjI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTQzNzUsIDAuMTMyNSwgMC4xMTM3NSwgMC4wOTUsIDAuMDgyNSwgMC4wNTM3NSwgMC4wMzg3NSIsIFwKLSAgICAgICAgICAiMC4xNTUsIDAuMTQzNzUsIDAuMTI1LCAwLjEwNjI1LCAwLjA5Mzc1LCAwLjA2NSwgMC4wNSIsIFwKLSAgICAgICAgICAiMC4xNjc1LCAwLjE1NjI1LCAwLjEzNzUsIDAuMTE4NzUsIDAuMTA2MjUsIDAuMDgzNzUsIDAuMDYyNSIsIFwKLSAgICAgICAgICAiMC4xOCwgMC4xNjg3NSwgMC4xNSwgMC4xMzEyNSwgMC4xMTg3NSwgMC4wOTYyNSwgMC4wNzUiLCBcCi0gICAgICAgICAgIjAuMTkyNSwgMC4xODEyNSwgMC4xNjI1LCAwLjE0Mzc1LCAwLjEzMTI1LCAwLjEwODc1LCAwLjA4NzUiLCBcCi0gICAgICAgICAgIjAuMjA4NzUsIDAuMTk3NSwgMC4xODUsIDAuMTY2MjUsIDAuMTQ3NSwgMC4xMjUsIDAuMTAzNzUiLCBcCi0gICAgICAgICAgIjAuMjMsIDAuMjE4NzUsIDAuMiwgMC4xODEyNSwgMC4xNjg3NSwgMC4xNCwgMC4xMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IFNERkZYNCAqCi0gKiAtLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKFNERkZYNCkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjU2MTQ3ODsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBmZiAoTjMwLFFCSU5UKSB7Ci0gICAgbmV4dF9zdGF0ZSA6ICIoKFNFIFNJKSArICghU0UgRCkpIjsKLSAgICBjbG9ja2VkX29uIDogIkNLIjsKLSAgfQotICBwaW4oQ0spICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDU3ODY3NzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA1Nzg0Mjg7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNTc4Njc3OwotICAgIGNsb2NrIDogdHJ1ZTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDI1NTksIDAuMDAyNTQ1LCAwLjAwMjUzMywgMC4wMDI1MjUsIDAuMDAyNTE5LCAwLjAwMjUxMywgMC4wMDI1MTEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDQ0ODksIDAuMDA0NDc5LCAwLjAwNDQ2OSwgMC4wMDQ0NjMsIDAuMDA0NDYyLCAwLjAwNDQ2MywgMC4wMDQ0NjMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFEJiFTRSYhU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1NFX0VRXzBfQU5fU0lfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjMxNTA2NSwgMC4zMjY3NzUsIDAuMzQyMTM2LCAwLjM1NzY3NCwgMC4zNzI1NjcsIDAuMzk2ODIzLCAwLjQxNzIyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMTkwODIyLCAwLjIwMjM4NywgMC4yMTcyMzUsIDAuMjMyMDM3LCAwLjI0NjQ0NywgMC4yNjg3NjgsIDAuMjg2OTgzIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihEKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2MTQzMDc7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjEyNTE1OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDYxNDMwNzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDIyOCwgMC4wMDIyNywgMC4wMDIyNjUsIDAuMDAyMjYyLCAwLjAwMjI2LCAwLjAwMjI1NywgMC4wMDIyNTQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDM2NiwgMC4wMDM2NTUsIDAuMDAzNjUzLCAwLjAwMzY1MSwgMC4wMDM2NSwgMC4wMDM2NDgsIDAuMDAzNjQ3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJTRSA9PSAxJ2IwIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4xMzEyNSwgLTAuMTI2MjUsIC0wLjExMzc1LCAtMC4xMDc1LCAtMC4wOTUsIC0wLjA4NSwgLTAuMDciLCBcCi0gICAgICAgICAgIi0wLjE0MjUsIC0wLjEzNzUsIC0wLjEyNSwgLTAuMTE4NzUsIC0wLjEwNjI1LCAtMC4wOTYyNSwgLTAuMDgxMjUiLCBcCi0gICAgICAgICAgIi0wLjE2MTI1LCAtMC4xNSwgLTAuMTM3NSwgLTAuMTMxMjUsIC0wLjExODc1LCAtMC4xMDg3NSwgLTAuMSIsIFwKLSAgICAgICAgICAiLTAuMTczNzUsIC0wLjE2MjUsIC0wLjE1LCAtMC4xNDM3NSwgLTAuMTM3NSwgLTAuMTIxMjUsIC0wLjExMjUiLCBcCi0gICAgICAgICAgIi0wLjE4NjI1LCAtMC4xNzUsIC0wLjE2ODc1LCAtMC4xNTYyNSwgLTAuMTUsIC0wLjEzMzc1LCAtMC4xMjUiLCBcCi0gICAgICAgICAgIi0wLjIwODc1LCAtMC4xOTc1LCAtMC4xOTEyNSwgLTAuMTc4NzUsIC0wLjE3MjUsIC0wLjE1NjI1LCAtMC4xNDc1IiwgXAotICAgICAgICAgICItMC4yMywgLTAuMjE4NzUsIC0wLjIwNjI1LCAtMC4yLCAtMC4xODc1LCAtMC4xNzc1LCAtMC4xNjg3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAyNSwgLTAuMDEzNzUsIC0wLjAwMTI1LCAwLjAxMTI1LCAwLjAyMzc1LCAwLjA0NjI1LCAwLjA2MTI1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDI1LCAtMC4wMTI1LCAwLCAwLjAxMjUsIDAuMDM1LCAwLjA1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDM3NSwgLTAuMDI1LCAtMC4wMTI1LCAwLCAwLjAyMjUsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDYxMjUsIC0wLjA1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAxMjUsIDAuMDEsIDAuMDI1IiwgXAotICAgICAgICAgICItMC4wNzM3NSwgLTAuMDYyNSwgLTAuMDUsIC0wLjAzNzUsIC0wLjAyNSwgLTAuMDAyNSwgMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wOSwgLTAuMDc4NzUsIC0wLjA2NjI1LCAtMC4wNTM3NSwgLTAuMDQxMjUsIC0wLjAxODc1LCAtMC4wMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDk4NzUsIC0wLjA5Mzc1LCAtMC4wODEyNSwgLTAuMDY4NzUsIC0wLjA1NjI1LCAtMC4wNCwgLTAuMDE4NzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJTRSA9PSAxJ2IwIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMjUsIDAuMjEzNzUsIDAuMTk1LCAwLjE4MjUsIDAuMTcsIDAuMTUzNzUsIDAuMTM4NzUiLCBcCi0gICAgICAgICAgIjAuMjM2MjUsIDAuMjI1LCAwLjIxMjUsIDAuMTkzNzUsIDAuMTgxMjUsIDAuMTY1LCAwLjE1IiwgXAotICAgICAgICAgICIwLjI1NSwgMC4yMzc1LCAwLjIyNSwgMC4yMTI1LCAwLjE5Mzc1LCAwLjE3NzUsIDAuMTY4NzUiLCBcCi0gICAgICAgICAgIjAuMjY3NSwgMC4yNSwgMC4yMzc1LCAwLjIyNSwgMC4yMTI1LCAwLjE5NjI1LCAwLjE4MTI1IiwgXAotICAgICAgICAgICIwLjI4LCAwLjI2ODc1LCAwLjI1LCAwLjIzNzUsIDAuMjI1LCAwLjIwODc1LCAwLjE5Mzc1IiwgXAotICAgICAgICAgICIwLjMwMjUsIDAuMjg1LCAwLjI3MjUsIDAuMjYsIDAuMjQ3NSwgMC4yMzEyNSwgMC4yMTYyNSIsIFwKLSAgICAgICAgICAiMC4zMjM3NSwgMC4zMDYyNSwgMC4yOTM3NSwgMC4yODEyNSwgMC4yNjI1LCAwLjI0NjI1LCAwLjIzNzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNTYyNSwgMC4xMzg3NSwgMC4xMjYyNSwgMC4xMDc1LCAwLjA5NSwgMC4wNjYyNSwgMC4wNDUiLCBcCi0gICAgICAgICAgIjAuMTY3NSwgMC4xNSwgMC4xMzc1LCAwLjExODc1LCAwLjEwNjI1LCAwLjA3NzUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIjAuMTgsIDAuMTYyNSwgMC4xNSwgMC4xMzEyNSwgMC4xMTg3NSwgMC4wOSwgMC4wNzUiLCBcCi0gICAgICAgICAgIjAuMTkyNSwgMC4xNzUsIDAuMTYyNSwgMC4xNDM3NSwgMC4xMzEyNSwgMC4xMDI1LCAwLjA4NzUiLCBcCi0gICAgICAgICAgIjAuMjA1LCAwLjE4NzUsIDAuMTc1LCAwLjE1NjI1LCAwLjE0Mzc1LCAwLjExNSwgMC4xIiwgXAotICAgICAgICAgICIwLjIyMTI1LCAwLjIxLCAwLjE5MTI1LCAwLjE3ODc1LCAwLjE2LCAwLjEzNzUsIDAuMTE2MjUiLCBcCi0gICAgICAgICAgIjAuMjQyNSwgMC4yMjUsIDAuMjEyNSwgMC4xOTM3NSwgMC4xODEyNSwgMC4xNTI1LCAwLjEzMTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihRKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuNTI5MzM3OwotICAgIGZ1bmN0aW9uIDogIk4zMCI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3NlbnNlIDogbm9uX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiByaXNpbmdfZWRnZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMzgzODQsIDAuMzY4MDc3LCAwLjQ5NTg5LCAwLjU4NjIxMiwgMC43MzAwMTEsIDAuODU5MTExLCAxLjA0MDMyIiwgXAotICAgICAgICAgICIwLjI1MDA2OCwgMC4zNzk3NjIsIDAuNTA3NTY1LCAwLjU5ODY4MywgMC43NDIwNTcsIDAuODY5NjkyLCAxLjA1MjExIiwgXAotICAgICAgICAgICIwLjI2NTYsIDAuMzk1MjgzLCAwLjUyMzA4NSwgMC42MTQ1ODEsIDAuNzU3NTY4LCAwLjg4NzMxOSwgMS4wNjc2OCIsIFwKLSAgICAgICAgICAiMC4yODA5MDUsIDAuNDEwNjAzLCAwLjUzNzI5MiwgMC42Mjk0NzMsIDAuNzc0NTAyLCAwLjkwMjc0MywgMS4wODI5MSIsIFwKLSAgICAgICAgICAiMC4yOTU3MzMsIDAuNDI1NDMyLCAwLjU1MjA2MSwgMC42NDQyODIsIDAuNzg5Mjk4LCAwLjkxNzY0NCwgMS4wOTc3MSIsIFwKLSAgICAgICAgICAiMC4zMTk5NDEsIDAuNDQ5NjM3LCAwLjU3NzQ0NSwgMC42Njc4MTcsIDAuODEzMzA3LCAwLjk0MDE0LCAxLjEyMiIsIFwKLSAgICAgICAgICAiMC4zMzk4MzgsIDAuNDY5NTQxLCAwLjU5NjQwNCwgMC42ODg0NDksIDAuODMzNTcxLCAwLjk2MDkxNCwgMS4xNDE3NCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1OTU3NCwgMC4zMDg0NTgsIDAuNTY5MzUxLCAwLjc1ODQ5OSwgMS4wNDUzMSwgMS4zMDI3NCwgMS42NzI2NiIsIFwKLSAgICAgICAgICAiMC4wNTk1NjMsIDAuMzA4NDM0LCAwLjU2NzUzNywgMC43NTg1NTQsIDEuMDUzNzQsIDEuMzE2NywgMS42NzEzOSIsIFwKLSAgICAgICAgICAiMC4wNTk1NzUsIDAuMzA4NDM3LCAwLjU2ODU0NSwgMC43NTkzMDIsIDEuMDU4ODUsIDEuMzE2NjMsIDEuNjc0MTgiLCBcCi0gICAgICAgICAgIjAuMDU5MTk2LCAwLjMwODQ2LCAwLjU3MTkzMiwgMC43NTkwNTYsIDEuMDUwMDYsIDEuMzE1NTUsIDEuNjg2ODciLCBcCi0gICAgICAgICAgIjAuMDU5NTY2LCAwLjMwODQ1NCwgMC41NzE5NzgsIDAuNzU5MjEyLCAxLjA1MDM5LCAxLjMxMywgMS42NzAyMyIsIFwKLSAgICAgICAgICAiMC4wNTkyMTQsIDAuMzA4NDUsIDAuNTcwMTMsIDAuNzU5NTk0LCAxLjA1MjQzLCAxLjMxNDg0LCAxLjY3MzYxIiwgXAotICAgICAgICAgICIwLjA1OTQxMSwgMC4zMDg0NTYsIDAuNTcxODY3LCAwLjc1Njk3LCAxLjA0Nzc3LCAxLjMxNTA3LCAxLjY2ODE3Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjY2MzgxLCAwLjQxNDk1NiwgMC41NjA4NDEsIDAuNjY1MDU3LCAwLjgzMTk1NywgMC45Nzg1MjYsIDEuMTg3MTciLCBcCi0gICAgICAgICAgIjAuMjc4MDE3LCAwLjQyNjU4NiwgMC41NzI1MjcsIDAuNjc2Njk0LCAwLjg0MzU2MSwgMC45OTAxOTQsIDEuMTk4NzQiLCBcCi0gICAgICAgICAgIjAuMjkzNDcyLCAwLjQ0MjAzNiwgMC41ODc5NzksIDAuNjkyMTQ4LCAwLjg1OTczOSwgMS4wMDU2NCwgMS4yMTQ1NiIsIFwKLSAgICAgICAgICAiMC4zMDg5OTEsIDAuNDU3NTM0LCAwLjYwMzQ4MywgMC43MDc2NTUsIDAuODc1OTA2LCAxLjAyMTE4LCAxLjIzMDkzIiwgXAotICAgICAgICAgICIwLjMyMzg4MywgMC40NzI0NTcsIDAuNjE4MzQzLCAwLjcyMjU2MSwgMC44ODk0MTksIDEuMDM2MDQsIDEuMjQ0NTkiLCBcCi0gICAgICAgICAgIjAuMzQ4MTU0LCAwLjQ5NjcwOCwgMC42NDI2MDYsIDAuNzQ2ODI4LCAwLjkxNTA4MywgMS4wNjAyMiwgMS4yNjkiLCBcCi0gICAgICAgICAgIjAuMzY4NDUyLCAwLjUxNzEzOSwgMC42NjMwODQsIDAuNzY3MjU0LCAwLjkzNTUwOCwgMS4wODAwOSwgMS4yODkzOSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2Mjg0NywgMC4zNDYwNjUsIDAuNjM2NDM2LCAwLjg0MzAzOSwgMS4xNzQ3LCAxLjQ2NTk3LCAxLjg4MDUiLCBcCi0gICAgICAgICAgIjAuMDYyOTA0LCAwLjM0NjA4NCwgMC42MzY0MjIsIDAuODQzNTg2LCAxLjE3NTU1LCAxLjQ2NjI3LCAxLjg3OTk2IiwgXAotICAgICAgICAgICIwLjA2MjUzMiwgMC4zNDYwOSwgMC42MzYzMTcsIDAuODQzNjgyLCAxLjE3NTEyLCAxLjQ2NjYyLCAxLjg4Mjg2IiwgXAotICAgICAgICAgICIwLjA2Mjg1MiwgMC4zNDU5NTMsIDAuNjM2MzIsIDAuODQzODQsIDEuMTc3MDksIDEuNDY2NTcsIDEuODgxMDIiLCBcCi0gICAgICAgICAgIjAuMDYyNzQ5LCAwLjM0NjAzNiwgMC42MzY0MzcsIDAuODQzMDQyLCAxLjE3NDI3LCAxLjQ2NTk2LCAxLjg4MDIxIiwgXAotICAgICAgICAgICIwLjA2Mjg2MSwgMC4zNDU5NjksIDAuNjM2NDM1LCAwLjg0MzcxNCwgMS4xNzcwOSwgMS40NjUyNSwgMS44ODIzMSIsIFwKLSAgICAgICAgICAiMC4wNjI4MTYsIDAuMzQ2MDU5LCAwLjYzNjMyLCAwLjg0Mzc5NiwgMS4xNzcwOSwgMS40Njc4OCwgMS44ODE0NSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjQwMSwgMC4wMDY1MTYsIDAuMDA2NTMsIDAuMDA2NTM0LCAwLjAwNjUzNywgMC4wMDY1MzksIDAuMDA2NTQiLCBcCi0gICAgICAgICAgIjAuMDA2MzkzLCAwLjAwNjUwOCwgMC4wMDY1MjIsIDAuMDA2NTI2LCAwLjAwNjUzMSwgMC4wMDY1MzIsIDAuMDA2NTMzIiwgXAotICAgICAgICAgICIwLjAwNjM4NywgMC4wMDY1MDMsIDAuMDA2NTE2LCAwLjAwNjUyMSwgMC4wMDY1MjMsIDAuMDA2NTI1LCAwLjAwNjUyNyIsIFwKLSAgICAgICAgICAiMC4wMDYzODIsIDAuMDA2NDk3LCAwLjAwNjUxMSwgMC4wMDY1MTUsIDAuMDA2NTE4LCAwLjAwNjUyLCAwLjAwNjUyMiIsIFwKLSAgICAgICAgICAiMC4wMDYzNzYsIDAuMDA2NDkxLCAwLjAwNjUwNSwgMC4wMDY1MSwgMC4wMDY1MTMsIDAuMDA2NTE1LCAwLjAwNjUxNiIsIFwKLSAgICAgICAgICAiMC4wMDYzNzMsIDAuMDA2NDg4LCAwLjAwNjUwMiwgMC4wMDY1MDYsIDAuMDA2NTA5LCAwLjAwNjUxMiwgMC4wMDY1MTIiLCBcCi0gICAgICAgICAgIjAuMDA2MzcsIDAuMDA2NDg2LCAwLjAwNjQ5OSwgMC4wMDY1MDQsIDAuMDA2NTA3LCAwLjAwNjUwOCwgMC4wMDY1MSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2NTkzLCAwLjAwNjcwNSwgMC4wMDY3MTksIDAuMDA2NzIzLCAwLjAwNjcyNiwgMC4wMDY3MjgsIDAuMDA2NzI5IiwgXAotICAgICAgICAgICIwLjAwNjU4NCwgMC4wMDY2OTcsIDAuMDA2NzExLCAwLjAwNjcxNSwgMC4wMDY3MTgsIDAuMDA2NzIsIDAuMDA2NzIxIiwgXAotICAgICAgICAgICIwLjAwNjU3OSwgMC4wMDY2OTEsIDAuMDA2NzA1LCAwLjAwNjcwOSwgMC4wMDY3MTMsIDAuMDA2NzE2LCAwLjAwNjcxNyIsIFwKLSAgICAgICAgICAiMC4wMDY1OCwgMC4wMDY2OSwgMC4wMDY3MDQsIDAuMDA2NzA3LCAwLjAwNjcxLCAwLjAwNjcxNCwgMC4wMDY3MTMiLCBcCi0gICAgICAgICAgIjAuMDA2NTc1LCAwLjAwNjY4NywgMC4wMDY3MDIsIDAuMDA2NzA1LCAwLjAwNjcwOCwgMC4wMDY3MTIsIDAuMDA2NzExIiwgXAotICAgICAgICAgICIwLjAwNjU3NCwgMC4wMDY2ODcsIDAuMDA2NzAyLCAwLjAwNjcwNCwgMC4wMDY3MSwgMC4wMDY3MSwgMC4wMDY3MTEiLCBcCi0gICAgICAgICAgIjAuMDA2NTc3LCAwLjAwNjY5MSwgMC4wMDY3MDUsIDAuMDA2NzA4LCAwLjAwNjcxNCwgMC4wMDY3MTQsIDAuMDA2NzE1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihRTikgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjUyNzM1NzsKLSAgICBmdW5jdGlvbiA6ICJRQklOVCI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3NlbnNlIDogbm9uX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiByaXNpbmdfZWRnZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMTUwNjUsIDAuNDQyMDMxLCAwLjU2ODc0MSwgMC42NTkzNiwgMC44MDQzNDUsIDAuOTMxMDU2LCAxLjExMjIiLCBcCi0gICAgICAgICAgIjAuMzI2Nzc1LCAwLjQ1MzY2LCAwLjU4MDM2NiwgMC42NzA5OTIsIDAuODE1OTE1LCAwLjk0MjY3OSwgMS4xMjM4MyIsIFwKLSAgICAgICAgICAiMC4zNDIxMzYsIDAuNDY5MTE0LCAwLjU5NTgxNiwgMC42ODY0NDgsIDAuODMxMzExLCAwLjk1ODEzNSwgMS4xMzkwMyIsIFwKLSAgICAgICAgICAiMC4zNTc2NzQsIDAuNDg0NjM2LCAwLjYxMTM0NSwgMC43MDE5ODMsIDAuODQ2ODI5LCAwLjk3MzY2MywgMS4xNTQ4IiwgXAotICAgICAgICAgICIwLjM3MjU2NywgMC40OTk1MywgMC42MjYyMzgsIDAuNzE2ODYyLCAwLjg2MTc3OSwgMC45ODg1NTQsIDEuMTY5NyIsIFwKLSAgICAgICAgICAiMC4zOTY4MjUsIDAuNTIzNzg2LCAwLjY1MDUwMiwgMC43NDExMzIsIDAuODg1OTgsIDEuMDEyODMsIDEuMTkzOTYiLCBcCi0gICAgICAgICAgIjAuNDE3MjI1LCAwLjU0NDIzOSwgMC42NzA5NDUsIDAuNzYxNTgsIDAuOTA2NDMsIDEuMDMzMDUsIDEuMjE0NDEiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTc3MzEsIDAuMzA4NjI5LCAwLjU2Njk3MSwgMC43NDk1MjYsIDEuMDQ0NSwgMS4zMDMwNCwgMS42NzE1MiIsIFwKLSAgICAgICAgICAiMC4wNTc3NzgsIDAuMzA4NjM0LCAwLjU2NzA0NSwgMC43NDk0OTYsIDEuMDQ0MDYsIDEuMzAzLCAxLjY3MTQ1IiwgXAotICAgICAgICAgICIwLjA1NzcyNiwgMC4zMDg2MzQsIDAuNTY3MDQ5LCAwLjc0OTQ3LCAxLjA0MzcsIDEuMzAxNTMsIDEuNjcwOTMiLCBcCi0gICAgICAgICAgIjAuMDU3NzI4LCAwLjMwODYzNiwgMC41NjcwNTIsIDAuNzQ5NDE0LCAxLjA0Njk0LCAxLjMwMjk3LCAxLjY3NDE4IiwgXAotICAgICAgICAgICIwLjA1NzcyNiwgMC4zMDg2MjIsIDAuNTY2OTc3LCAwLjc0OTQ4MiwgMS4wNDQwNywgMS4zMDMwMywgMS42NzE0NSIsIFwKLSAgICAgICAgICAiMC4wNTc3MSwgMC4zMDg2MzUsIDAuNTY2OTczLCAwLjc0OTQ1OSwgMS4wNDY5MiwgMS4zMDMwMSwgMS42NzE1NyIsIFwKLSAgICAgICAgICAiMC4wNTc3NywgMC4zMDg2MjUsIDAuNTY3MDUyLCAwLjc0OTQzMSwgMS4wNDY5NCwgMS4zMDAzOCwgMS42NzE1NSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI5MTQ5MSwgMC40MzczMzIsIDAuNTgzMzM1LCAwLjY4NzY3NSwgMC44NTQzNSwgMS4wMDA2MywgMS4yMDkyNyIsIFwKLSAgICAgICAgICAiMC4zMDMxNjksIDAuNDQ5MDE1LCAwLjU5NTAxMiwgMC42OTkzNTksIDAuODY2MDU4LCAxLjAxMjI5LCAxLjIyMDk1IiwgXAotICAgICAgICAgICIwLjMxODcwMywgMC40NjQ1MTQsIDAuNjEwNTEsIDAuNzE0OTQ1LCAwLjg4MTYwOCwgMS4wMjc5NiwgMS4yMzY0NSIsIFwKLSAgICAgICAgICAiMC4zMzM5ODcsIDAuNDc5ODM2LCAwLjYyNTgzMSwgMC43MzAxNzcsIDAuODk3MDgxLCAxLjA0MzI5LCAxLjI1MTc2IiwgXAotICAgICAgICAgICIwLjM0ODg2MSwgMC40OTQ2NjIsIDAuNjQwNjYxLCAwLjc0NDk5OSwgMC45MTE5MDYsIDEuMDU4MTIsIDEuMjY2NTkiLCBcCi0gICAgICAgICAgIjAuMzczMDI5LCAwLjUxODg2NSwgMC42NjQ4NjcsIDAuNzY5MTYsIDAuOTM2MTA0LCAxLjA4MjE1LCAxLjI5MDgiLCBcCi0gICAgICAgICAgIjAuMzkyOTI2LCAwLjUzODc4NSwgMC42ODQ3NTgsIDAuNzg5MTc2LCAwLjk1NjAzNSwgMS4xMDIxNiwgMS4zMTA3MSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2MTU3LCAwLjM0NjcxMSwgMC42MzY0MTMsIDAuODQ0MTU2LCAxLjE3NTg0LCAxLjQ2NjYyLCAxLjg4MTczIiwgXAotICAgICAgICAgICIwLjA2MTU2OSwgMC4zNDY3MTQsIDAuNjM2NTYyLCAwLjg0NDA4NCwgMS4xNzYxNSwgMS40Njc1LCAxLjg4MTQ3IiwgXAotICAgICAgICAgICIwLjA2MTYxNSwgMC4zNDY3MjQsIDAuNjM2NTg4LCAwLjg0NDIsIDEuMTc2NDEsIDEuNDY2NzYsIDEuODgxNDUiLCBcCi0gICAgICAgICAgIjAuMDYxNTQxLCAwLjM0NjcyMywgMC42MzY4MjIsIDAuODQ0MjUzLCAxLjE3NjIyLCAxLjQ2NTksIDEuODgwNSIsIFwKLSAgICAgICAgICAiMC4wNjE1OTUsIDAuMzQ2NzIzLCAwLjYzNjgyOSwgMC44NDQyMTcsIDEuMTc2MjMsIDEuNDY2MTQsIDEuODgxNDgiLCBcCi0gICAgICAgICAgIjAuMDYxNTQyLCAwLjM0NjcyMywgMC42MzY2NTQsIDAuODQ0MzkyLCAxLjE3NjI4LCAxLjQ2Njk3LCAxLjg4MTQyIiwgXAotICAgICAgICAgICIwLjA2MTU3NywgMC4zNDY3MTksIDAuNjM2ODA0LCAwLjg0Mzc3MSwgMS4xNzYxNCwgMS40NjY1MSwgMS44ODE1MiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjU5MywgMC4wMDY3MDUsIDAuMDA2NzE5LCAwLjAwNjcyMywgMC4wMDY3MjYsIDAuMDA2NzI4LCAwLjAwNjcyOSIsIFwKLSAgICAgICAgICAiMC4wMDY1ODQsIDAuMDA2Njk3LCAwLjAwNjcxMSwgMC4wMDY3MTUsIDAuMDA2NzE4LCAwLjAwNjcyLCAwLjAwNjcyMSIsIFwKLSAgICAgICAgICAiMC4wMDY1NzksIDAuMDA2NjkxLCAwLjAwNjcwNSwgMC4wMDY3MDksIDAuMDA2NzEzLCAwLjAwNjcxNiwgMC4wMDY3MTciLCBcCi0gICAgICAgICAgIjAuMDA2NTgsIDAuMDA2NjksIDAuMDA2NzA0LCAwLjAwNjcwNywgMC4wMDY3MSwgMC4wMDY3MTQsIDAuMDA2NzEzIiwgXAotICAgICAgICAgICIwLjAwNjU3NSwgMC4wMDY2ODcsIDAuMDA2NzAyLCAwLjAwNjcwNSwgMC4wMDY3MDgsIDAuMDA2NzEyLCAwLjAwNjcxMSIsIFwKLSAgICAgICAgICAiMC4wMDY1NzQsIDAuMDA2Njg3LCAwLjAwNjcwMiwgMC4wMDY3MDQsIDAuMDA2NzEsIDAuMDA2NzEsIDAuMDA2NzExIiwgXAotICAgICAgICAgICIwLjAwNjU3NywgMC4wMDY2OTEsIDAuMDA2NzA1LCAwLjAwNjcwOCwgMC4wMDY3MTQsIDAuMDA2NzE0LCAwLjAwNjcxNSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2NDAxLCAwLjAwNjUxNiwgMC4wMDY1MywgMC4wMDY1MzQsIDAuMDA2NTM3LCAwLjAwNjUzOSwgMC4wMDY1NCIsIFwKLSAgICAgICAgICAiMC4wMDYzOTMsIDAuMDA2NTA4LCAwLjAwNjUyMiwgMC4wMDY1MjYsIDAuMDA2NTMxLCAwLjAwNjUzMiwgMC4wMDY1MzMiLCBcCi0gICAgICAgICAgIjAuMDA2Mzg3LCAwLjAwNjUwMywgMC4wMDY1MTYsIDAuMDA2NTIxLCAwLjAwNjUyMywgMC4wMDY1MjUsIDAuMDA2NTI3IiwgXAotICAgICAgICAgICIwLjAwNjM4MiwgMC4wMDY0OTcsIDAuMDA2NTExLCAwLjAwNjUxNSwgMC4wMDY1MTgsIDAuMDA2NTIsIDAuMDA2NTIyIiwgXAotICAgICAgICAgICIwLjAwNjM3NiwgMC4wMDY0OTEsIDAuMDA2NTA1LCAwLjAwNjUxLCAwLjAwNjUxMywgMC4wMDY1MTUsIDAuMDA2NTE2IiwgXAotICAgICAgICAgICIwLjAwNjM3MywgMC4wMDY0ODgsIDAuMDA2NTAyLCAwLjAwNjUwNiwgMC4wMDY1MDksIDAuMDA2NTEyLCAwLjAwNjUxMiIsIFwKLSAgICAgICAgICAiMC4wMDYzNywgMC4wMDY0ODYsIDAuMDA2NDk5LCAwLjAwNjUwNCwgMC4wMDY1MDcsIDAuMDA2NTA4LCAwLjAwNjUxIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTRSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxMTc2Mjg7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxMTc2MjY7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxMTc2Mjg7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzNTgsIDAuMDAzNTcyLCAwLjAwMzU2NiwgMC4wMDM1NjMsIDAuMDAzNTYxLCAwLjAwMzU1OSwgMC4wMDM1NTgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDQ5MzEsIDAuMDA0OTE1LCAwLjAwNDkwMiwgMC4wMDQ4OTUsIDAuMDA0ODksIDAuMDA0ODgyLCAwLjAwNDg4MiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRCZTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fU0lfRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4xMTg3NSwgLTAuMTEzNzUsIC0wLjEwMTI1LCAtMC4wODg3NSwgLTAuMDgyNSwgLTAuMDY2MjUsIC0wLjA1NzUiLCBcCi0gICAgICAgICAgIi0wLjEzLCAtMC4xMTg3NSwgLTAuMTEyNSwgLTAuMSwgLTAuMDkzNzUsIC0wLjA3NzUsIC0wLjA2ODc1IiwgXAotICAgICAgICAgICItMC4xNDI1LCAtMC4xMzc1LCAtMC4xMjUsIC0wLjExMjUsIC0wLjEwNjI1LCAtMC4wOSwgLTAuMDgxMjUiLCBcCi0gICAgICAgICAgIi0wLjE1NSwgLTAuMTUsIC0wLjEzNzUsIC0wLjEyNSwgLTAuMTE4NzUsIC0wLjEwMjUsIC0wLjA5Mzc1IiwgXAotICAgICAgICAgICItMC4xNzM3NSwgLTAuMTYyNSwgLTAuMTUsIC0wLjE0Mzc1LCAtMC4xMzEyNSwgLTAuMTIxMjUsIC0wLjEwNjI1IiwgXAotICAgICAgICAgICItMC4xOSwgLTAuMTg1LCAtMC4xNzI1LCAtMC4xNiwgLTAuMTUzNzUsIC0wLjEzNzUsIC0wLjEyODc1IiwgXAotICAgICAgICAgICItMC4yMTEyNSwgLTAuMjA2MjUsIC0wLjE5Mzc1LCAtMC4xODEyNSwgLTAuMTc1LCAtMC4xNTg3NSwgLTAuMTUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMTI1LCAtMC4wMDEyNSwgMC4wMTEyNSwgMC4wMjM3NSwgMC4wMzYyNSwgMC4wNTg3NSwgMC4wNzM3NSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxMjUsIDAsIDAuMDEyNSwgMC4wMjUsIDAuMDQ3NSwgMC4wNjI1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDI1LCAtMC4wMTI1LCAwLCAwLjAxMjUsIDAuMDM1LCAwLjA1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDM3NSwgLTAuMDI1LCAtMC4wMTI1LCAwLCAwLjAyMjUsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDYxMjUsIC0wLjA1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAxMjUsIDAuMDEsIDAuMDI1IiwgXAotICAgICAgICAgICItMC4wNzEyNSwgLTAuMDYsIC0wLjA1Mzc1LCAtMC4wNDEyNSwgLTAuMDI4NzUsIC0wLjAxMjUsIDAuMDA4NzUiLCBcCi0gICAgICAgICAgIi0wLjA4NjI1LCAtMC4wNzUsIC0wLjA2MjUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDI3NSwgLTAuMDEyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJEJiFTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzFfQU5fU0lfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wNSwgLTAuMDM4NzUsIC0wLjAyNjI1LCAtMC4wMTM3NSwgLTAuMDAxMjUsIDAuMDE1LCAwLjAzNjI1IiwgXAotICAgICAgICAgICItMC4wNjEyNSwgLTAuMDUsIC0wLjAzNzUsIC0wLjAyNSwgLTAuMDEyNSwgMC4wMDM3NSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDgsIC0wLjA2ODc1LCAtMC4wNTYyNSwgLTAuMDQzNzUsIC0wLjAzMTI1LCAtMC4wMDg3NSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDkyNSwgLTAuMDgxMjUsIC0wLjA2ODc1LCAtMC4wNTYyNSwgLTAuMDQzNzUsIC0wLjAyNzUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICItMC4xMTEyNSwgLTAuMSwgLTAuMDgxMjUsIC0wLjA2ODc1LCAtMC4wNjI1LCAtMC4wNCwgLTAuMDI1IiwgXAotICAgICAgICAgICItMC4xMjc1LCAtMC4xMjI1LCAtMC4xMSwgLTAuMDkxMjUsIC0wLjA4NSwgLTAuMDYyNSwgLTAuMDQ3NSIsIFwKLSAgICAgICAgICAiLTAuMTQ4NzUsIC0wLjEzNzUsIC0wLjEyNSwgLTAuMTEyNSwgLTAuMSwgLTAuMDgzNzUsIC0wLjA2MjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4xNTYyNSwgLTAuMTQ1LCAtMC4xMzg3NSwgLTAuMTI2MjUsIC0wLjEyLCAtMC4xMDM3NSwgLTAuMDk1IiwgXAotICAgICAgICAgICItMC4xNjc1LCAtMC4xNjI1LCAtMC4xNSwgLTAuMTM3NSwgLTAuMTMxMjUsIC0wLjExNSwgLTAuMTA2MjUiLCBcCi0gICAgICAgICAgIi0wLjE4LCAtMC4xNzUsIC0wLjE2MjUsIC0wLjE1NjI1LCAtMC4xNDM3NSwgLTAuMTMzNzUsIC0wLjExODc1IiwgXAotICAgICAgICAgICItMC4xOTg3NSwgLTAuMTg3NSwgLTAuMTgxMjUsIC0wLjE2ODc1LCAtMC4xNjI1LCAtMC4xNDYyNSwgLTAuMTM3NSIsIFwKLSAgICAgICAgICAiLTAuMjExMjUsIC0wLjIsIC0wLjE5Mzc1LCAtMC4xODEyNSwgLTAuMTc1LCAtMC4xNTg3NSwgLTAuMTUiLCBcCi0gICAgICAgICAgIi0wLjIyNzUsIC0wLjIyMjUsIC0wLjIxLCAtMC4yMDM3NSwgLTAuMTkxMjUsIC0wLjE4MTI1LCAtMC4xNjYyNSIsIFwKLSAgICAgICAgICAiLTAuMjQyNSwgLTAuMjM3NSwgLTAuMjI1LCAtMC4yMTg3NSwgLTAuMjA2MjUsIC0wLjE5NjI1LCAtMC4xODEyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUQmU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1NJX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjEyNSwgMC4yMDEyNSwgMC4xODI1LCAwLjE3LCAwLjE1NzUsIDAuMTQxMjUsIDAuMTI2MjUiLCBcCi0gICAgICAgICAgIjAuMjIzNzUsIDAuMjEyNSwgMC4xOTM3NSwgMC4xODEyNSwgMC4xNjg3NSwgMC4xNTI1LCAwLjEzNzUiLCBcCi0gICAgICAgICAgIjAuMjM2MjUsIDAuMjI1LCAwLjIwNjI1LCAwLjE5Mzc1LCAwLjE4MTI1LCAwLjE2NSwgMC4xNSIsIFwKLSAgICAgICAgICAiMC4yNDg3NSwgMC4yMzc1LCAwLjIxODc1LCAwLjIwNjI1LCAwLjE5Mzc1LCAwLjE3NzUsIDAuMTYyNSIsIFwKLSAgICAgICAgICAiMC4yNjEyNSwgMC4yNSwgMC4yMzc1LCAwLjIyNSwgMC4yMDYyNSwgMC4xOSwgMC4xODEyNSIsIFwKLSAgICAgICAgICAiMC4yODM3NSwgMC4yNzI1LCAwLjI2LCAwLjI0MTI1LCAwLjIyODc1LCAwLjIxMjUsIDAuMTk3NSIsIFwKLSAgICAgICAgICAiMC4zMDUsIDAuMjkzNzUsIDAuMjc1LCAwLjI2MjUsIDAuMjUsIDAuMjMzNzUsIDAuMjE4NzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNDM3NSwgMC4xMjYyNSwgMC4xMTM3NSwgMC4wOTUsIDAuMDgyNSwgMC4wNTM3NSwgMC4wMzg3NSIsIFwKLSAgICAgICAgICAiMC4xNDg3NSwgMC4xMzc1LCAwLjEyNSwgMC4xMDYyNSwgMC4wOTM3NSwgMC4wNjUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMTY3NSwgMC4xNSwgMC4xMzc1LCAwLjExODc1LCAwLjEwNjI1LCAwLjA3NzUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIjAuMTgsIDAuMTYyNSwgMC4xNSwgMC4xMzEyNSwgMC4xMTg3NSwgMC4wOSwgMC4wNzUiLCBcCi0gICAgICAgICAgIjAuMTkyNSwgMC4xODEyNSwgMC4xNjI1LCAwLjE0Mzc1LCAwLjEzMTI1LCAwLjEwODc1LCAwLjA4NzUiLCBcCi0gICAgICAgICAgIjAuMjE1LCAwLjE5NzUsIDAuMTg1LCAwLjE2NjI1LCAwLjE1Mzc1LCAwLjEyNSwgMC4xMDM3NSIsIFwKLSAgICAgICAgICAiMC4yMywgMC4yMTg3NSwgMC4yLCAwLjE4NzUsIDAuMTY4NzUsIDAuMTQ2MjUsIDAuMTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJEJiFTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzFfQU5fU0lfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xODEyNSwgMC4xNywgMC4xNTEyNSwgMC4xMzg3NSwgMC4xMiwgMC4wOTc1LCAwLjA3NjI1IiwgXAotICAgICAgICAgICIwLjE5MjUsIDAuMTgxMjUsIDAuMTY4NzUsIDAuMTUsIDAuMTMxMjUsIDAuMTA4NzUsIDAuMDg3NSIsIFwKLSAgICAgICAgICAiMC4yMTEyNSwgMC4yLCAwLjE4MTI1LCAwLjE2ODc1LCAwLjE1LCAwLjEyNzUsIDAuMTA2MjUiLCBcCi0gICAgICAgICAgIjAuMjIzNzUsIDAuMjEyNSwgMC4yLCAwLjE4MTI1LCAwLjE2MjUsIDAuMTQsIDAuMTE4NzUiLCBcCi0gICAgICAgICAgIjAuMjQyNSwgMC4yMjUsIDAuMjEyNSwgMC4xOTM3NSwgMC4xODEyNSwgMC4xNTI1LCAwLjEzNzUiLCBcCi0gICAgICAgICAgIjAuMjY1LCAwLjI0NzUsIDAuMjM1LCAwLjIxNjI1LCAwLjIwMzc1LCAwLjE3NSwgMC4xNTM3NSIsIFwKLSAgICAgICAgICAiMC4yOCwgMC4yNjg3NSwgMC4yNSwgMC4yMzc1LCAwLjIxODc1LCAwLjE5NjI1LCAwLjE3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI1LCAwLjIzMjUsIDAuMjIsIDAuMjA3NSwgMC4xOTUsIDAuMTc4NzUsIDAuMTYzNzUiLCBcCi0gICAgICAgICAgIjAuMjYxMjUsIDAuMjUsIDAuMjMxMjUsIDAuMjE4NzUsIDAuMjA2MjUsIDAuMTksIDAuMTc1IiwgXAotICAgICAgICAgICIwLjI3Mzc1LCAwLjI2MjUsIDAuMjUsIDAuMjMxMjUsIDAuMjE4NzUsIDAuMjAyNSwgMC4xODc1IiwgXAotICAgICAgICAgICIwLjI5MjUsIDAuMjc1LCAwLjI2MjUsIDAuMjUsIDAuMjM3NSwgMC4yMTUsIDAuMjA2MjUiLCBcCi0gICAgICAgICAgIjAuMzA1LCAwLjI4NzUsIDAuMjc1LCAwLjI2MjUsIDAuMjUsIDAuMjMzNzUsIDAuMjE4NzUiLCBcCi0gICAgICAgICAgIjAuMzIxMjUsIDAuMzEsIDAuMjk3NSwgMC4yNzg3NSwgMC4yNjYyNSwgMC4yNSwgMC4yNDEyNSIsIFwKLSAgICAgICAgICAiMC4zMzYyNSwgMC4zMjUsIDAuMzEyNSwgMC4yOTM3NSwgMC4yODEyNSwgMC4yNjUsIDAuMjU2MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFNJKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA1ODkwMzE7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNTg3Mzk5OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDU4OTAzMTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDIxNzIsIDAuMDAyMTYyLCAwLjAwMjE1NywgMC4wMDIxNTQsIDAuMDAyMTUyLCAwLjAwMjE0OCwgMC4wMDIxNDYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDM4MTcsIDAuMDAzODEyLCAwLjAwMzgxMSwgMC4wMDM4MDksIDAuMDAzODA4LCAwLjAwMzgwNiwgMC4wMDM4MDQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiU0UiOwotICAgICAgc2RmX2NvbmQgOiAiU0UgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMTMxMjUsIC0wLjEyNjI1LCAtMC4xMTM3NSwgLTAuMTA3NSwgLTAuMDk1LCAtMC4wODUsIC0wLjA3IiwgXAotICAgICAgICAgICItMC4xNDg3NSwgLTAuMTM3NSwgLTAuMTI1LCAtMC4xMTg3NSwgLTAuMTA2MjUsIC0wLjA5NjI1LCAtMC4wODEyNSIsIFwKLSAgICAgICAgICAiLTAuMTYxMjUsIC0wLjE1LCAtMC4xMzc1LCAtMC4xMzEyNSwgLTAuMTI1LCAtMC4xMDg3NSwgLTAuMSIsIFwKLSAgICAgICAgICAiLTAuMTczNzUsIC0wLjE2MjUsIC0wLjE1NjI1LCAtMC4xNDM3NSwgLTAuMTM3NSwgLTAuMTIxMjUsIC0wLjExMjUiLCBcCi0gICAgICAgICAgIi0wLjE4NjI1LCAtMC4xODEyNSwgLTAuMTY4NzUsIC0wLjE1NjI1LCAtMC4xNSwgLTAuMTMzNzUsIC0wLjEyNSIsIFwKLSAgICAgICAgICAiLTAuMjA4NzUsIC0wLjIwMzc1LCAtMC4xOTEyNSwgLTAuMTc4NzUsIC0wLjE3MjUsIC0wLjE1NjI1LCAtMC4xNDc1IiwgXAotICAgICAgICAgICItMC4yMywgLTAuMjE4NzUsIC0wLjIxMjUsIC0wLjIsIC0wLjE4NzUsIC0wLjE3NzUsIC0wLjE2ODc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDI1LCAtMC4wMTM3NSwgLTAuMDAxMjUsIDAuMDExMjUsIDAuMDIzNzUsIDAuMDQ2MjUsIDAuMDYxMjUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMjUsIC0wLjAxMjUsIDAsIDAuMDEyNSwgMC4wMzUsIDAuMDUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAxMjUsIDAsIDAuMDE2MjUsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDYxMjUsIC0wLjA1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAxMjUsIDAuMDEsIDAuMDI1IiwgXAotICAgICAgICAgICItMC4wNzM3NSwgLTAuMDYyNSwgLTAuMDUsIC0wLjAzNzUsIC0wLjAyNSwgLTAuMDAyNSwgMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wOSwgLTAuMDc4NzUsIC0wLjA2NjI1LCAtMC4wNTM3NSwgLTAuMDQxMjUsIC0wLjAyNSwgLTAuMDEiLCBcCi0gICAgICAgICAgIi0wLjEwNSwgLTAuMDkzNzUsIC0wLjA4MTI1LCAtMC4wNjg3NSwgLTAuMDU2MjUsIC0wLjA0LCAtMC4wMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlNFIjsKLSAgICAgIHNkZl9jb25kIDogIlNFID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIyNSwgMC4yMTM3NSwgMC4yMDEyNSwgMC4xODI1LCAwLjE3LCAwLjE1Mzc1LCAwLjE0NSIsIFwKLSAgICAgICAgICAiMC4yMzYyNSwgMC4yMjUsIDAuMjEyNSwgMC4yLCAwLjE4MTI1LCAwLjE2NSwgMC4xNTYyNSIsIFwKLSAgICAgICAgICAiMC4yNTUsIDAuMjM3NSwgMC4yMjUsIDAuMjEyNSwgMC4yLCAwLjE4Mzc1LCAwLjE2ODc1IiwgXAotICAgICAgICAgICIwLjI2NzUsIDAuMjU2MjUsIDAuMjM3NSwgMC4yMjUsIDAuMjEyNSwgMC4xOTYyNSwgMC4xODEyNSIsIFwKLSAgICAgICAgICAiMC4yOCwgMC4yNjg3NSwgMC4yNSwgMC4yMzc1LCAwLjIyNSwgMC4yMDg3NSwgMC4xOTM3NSIsIFwKLSAgICAgICAgICAiMC4zMDI1LCAwLjI5MTI1LCAwLjI3MjUsIDAuMjYsIDAuMjQ3NSwgMC4yMzEyNSwgMC4yMTYyNSIsIFwKLSAgICAgICAgICAiMC4zMjM3NSwgMC4zMDYyNSwgMC4yOTM3NSwgMC4yODEyNSwgMC4yNjg3NSwgMC4yNDYyNSwgMC4yMzc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTU2MjUsIDAuMTQ1LCAwLjEyNjI1LCAwLjExMzc1LCAwLjA5NSwgMC4wNzI1LCAwLjA1MTI1IiwgXAotICAgICAgICAgICIwLjE2NzUsIDAuMTU2MjUsIDAuMTM3NSwgMC4xMjUsIDAuMTA2MjUsIDAuMDgzNzUsIDAuMDYyNSIsIFwKLSAgICAgICAgICAiMC4xOCwgMC4xNjg3NSwgMC4xNSwgMC4xMzc1LCAwLjExODc1LCAwLjA5NjI1LCAwLjA3NSIsIFwKLSAgICAgICAgICAiMC4xOTI1LCAwLjE4MTI1LCAwLjE2MjUsIDAuMTUsIDAuMTMxMjUsIDAuMTA4NzUsIDAuMDg3NSIsIFwKLSAgICAgICAgICAiMC4yMDUsIDAuMTkzNzUsIDAuMTc1LCAwLjE2MjUsIDAuMTQzNzUsIDAuMTIxMjUsIDAuMSIsIFwKLSAgICAgICAgICAiMC4yMjc1LCAwLjIxLCAwLjE5NzUsIDAuMTc4NzUsIDAuMTY2MjUsIDAuMTM3NSwgMC4xMTYyNSIsIFwKLSAgICAgICAgICAiMC4yNDI1LCAwLjIzMTI1LCAwLjIxMjUsIDAuMiwgMC4xODEyNSwgMC4xNTg3NSwgMC4xMzc1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBTREZGWEwgKgotICogLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChTREZGWEwpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4yNjg0NDU7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgZmYgKE4zMCxRQklOVCkgewotICAgIG5leHRfc3RhdGUgOiAiKChTRSBTSSkgKyAoIVNFIEQpKSI7Ci0gICAgY2xvY2tlZF9vbiA6ICJDSyI7Ci0gIH0KLSAgcGluKENLKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA1NzIxNjk7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNTcxODUyOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDU3MjE2OTsKLSAgICBjbG9jayA6IHRydWU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyMjkzLCAwLjAwMjI4LCAwLjAwMjI2OCwgMC4wMDIyNjIsIDAuMDAyMjU2LCAwLjAwMjI0OSwgMC4wMDIyNDgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDQ3OTMsIDAuMDA0Nzg0LCAwLjAwNDc3NCwgMC4wMDQ3NjksIDAuMDA0NzY3LCAwLjAwNDc3LCAwLjAwNDc2OCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQmIVNFJiFTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fU0VfRVFfMF9BTl9TSV9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMzg0MTY3LCAwLjM5NTgyOCwgMC40MTExNjksIDAuNDI2NjU1LCAwLjQ0MTg4OSwgMC40NjYyMzMsIDAuNDg3MDI3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4xOTY0NjQsIDAuMjA3OTUsIDAuMjIyODg5LCAwLjIzNzc4NCwgMC4yNTIzOTcsIDAuMjc0OTcyLCAwLjI5MzgxNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNTkwMDQxOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDU4ODI4ODsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA1OTAwNDE7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyMzY5LCAwLjAwMjM2LCAwLjAwMjM1NCwgMC4wMDIzNTEsIDAuMDAyMzQ4LCAwLjAwMjM0NSwgMC4wMDIzNDMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDM0NDMsIDAuMDAzNDM4LCAwLjAwMzQzNiwgMC4wMDM0MzQsIDAuMDAzNDMyLCAwLjAwMzQzMSwgMC4wMDM0MyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhU0UiOwotICAgICAgc2RmX2NvbmQgOiAiU0UgPT0gMSdiMCI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMTMxMjUsIC0wLjEyNjI1LCAtMC4xMTM3NSwgLTAuMTAxMjUsIC0wLjA5NSwgLTAuMDc4NzUsIC0wLjA2Mzc1IiwgXAotICAgICAgICAgICItMC4xNDI1LCAtMC4xMzc1LCAtMC4xMjUsIC0wLjExMjUsIC0wLjEwNjI1LCAtMC4wOSwgLTAuMDc1IiwgXAotICAgICAgICAgICItMC4xNjEyNSwgLTAuMTUsIC0wLjEzNzUsIC0wLjEyNSwgLTAuMTE4NzUsIC0wLjEwMjUsIC0wLjA4NzUiLCBcCi0gICAgICAgICAgIi0wLjE3Mzc1LCAtMC4xNjI1LCAtMC4xNSwgLTAuMTQzNzUsIC0wLjEzMTI1LCAtMC4xMTUsIC0wLjEwNjI1IiwgXAotICAgICAgICAgICItMC4xODYyNSwgLTAuMTc1LCAtMC4xNjI1LCAtMC4xNTYyNSwgLTAuMTQzNzUsIC0wLjEyNzUsIC0wLjExODc1IiwgXAotICAgICAgICAgICItMC4yMDg3NSwgLTAuMTk3NSwgLTAuMTg1LCAtMC4xNzg3NSwgLTAuMTY2MjUsIC0wLjE1LCAtMC4xNDEyNSIsIFwKLSAgICAgICAgICAiLTAuMjMsIC0wLjIxODc1LCAtMC4yMDYyNSwgLTAuMTkzNzUsIC0wLjE4NzUsIC0wLjE3MTI1LCAtMC4xNTYyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAyNSwgLTAuMDEzNzUsIC0wLjAwMTI1LCAwLjAxMTI1LCAwLjAzLCAwLjA0NjI1LCAwLjA2NzUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMjUsIC0wLjAxMjUsIDAsIDAuMDE4NzUsIDAuMDM1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDM3NSwgLTAuMDI1LCAtMC4wMTI1LCAwLjAwNjI1LCAwLjAyMjUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIi0wLjA2MTI1LCAtMC4wNSwgLTAuMDM3NSwgLTAuMDI1LCAtMC4wMDYyNSwgMC4wMSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDczNzUsIC0wLjA2MjUsIC0wLjA1LCAtMC4wMzc1LCAtMC4wMTg3NSwgLTAuMDAyNSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDksIC0wLjA3ODc1LCAtMC4wNjYyNSwgLTAuMDUzNzUsIC0wLjA0MTI1LCAtMC4wMTg3NSwgMC4wMDI1IiwgXAotICAgICAgICAgICItMC4xMDUsIC0wLjA5Mzc1LCAtMC4wODEyNSwgLTAuMDY4NzUsIC0wLjA1NjI1LCAtMC4wMzM3NSwgLTAuMDE4NzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJTRSA9PSAxJ2IwIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMDYyNSwgMC4xOTUsIDAuMTc2MjUsIDAuMTYzNzUsIDAuMTUxMjUsIDAuMTM1LCAwLjEyNjI1IiwgXAotICAgICAgICAgICIwLjIxNzUsIDAuMjA2MjUsIDAuMTg3NSwgMC4xNzUsIDAuMTYyNSwgMC4xNDYyNSwgMC4xMzc1IiwgXAotICAgICAgICAgICIwLjIzLCAwLjIxODc1LCAwLjIwNjI1LCAwLjE4NzUsIDAuMTgxMjUsIDAuMTY1LCAwLjE1IiwgXAotICAgICAgICAgICIwLjI0MjUsIDAuMjMxMjUsIDAuMjE4NzUsIDAuMjA2MjUsIDAuMTkzNzUsIDAuMTc3NSwgMC4xNjI1IiwgXAotICAgICAgICAgICIwLjI2MTI1LCAwLjI1LCAwLjIzMTI1LCAwLjIxODc1LCAwLjIwNjI1LCAwLjE5LCAwLjE3NSIsIFwKLSAgICAgICAgICAiMC4yODM3NSwgMC4yNjYyNSwgMC4yNTM3NSwgMC4yNDEyNSwgMC4yMjg3NSwgMC4yMTI1LCAwLjE5NzUiLCBcCi0gICAgICAgICAgIjAuMjk4NzUsIDAuMjg3NSwgMC4yNzUsIDAuMjU2MjUsIDAuMjUsIDAuMjMzNzUsIDAuMjE4NzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMzc1LCAwLjEyNjI1LCAwLjEwNzUsIDAuMDg4NzUsIDAuMDc2MjUsIDAuMDUzNzUsIDAuMDMyNSIsIFwKLSAgICAgICAgICAiMC4xNDg3NSwgMC4xMzc1LCAwLjExODc1LCAwLjEsIDAuMDg3NSwgMC4wNjUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMTYxMjUsIDAuMTUsIDAuMTMxMjUsIDAuMTE4NzUsIDAuMSwgMC4wNzc1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICIwLjE3Mzc1LCAwLjE2MjUsIDAuMTQzNzUsIDAuMTMxMjUsIDAuMTEyNSwgMC4wOSwgMC4wNjg3NSIsIFwKLSAgICAgICAgICAiMC4xODYyNSwgMC4xNzUsIDAuMTU2MjUsIDAuMTQzNzUsIDAuMTI1LCAwLjEwMjUsIDAuMDgxMjUiLCBcCi0gICAgICAgICAgIjAuMjAyNSwgMC4xOTEyNSwgMC4xNzg3NSwgMC4xNiwgMC4xNDc1LCAwLjExODc1LCAwLjA5NzUiLCBcCi0gICAgICAgICAgIjAuMjIzNzUsIDAuMjEyNSwgMC4xOTM3NSwgMC4xNzUsIDAuMTYyNSwgMC4xNCwgMC4xMTg3NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjA3MzAxOTY7Ci0gICAgZnVuY3Rpb24gOiAiTjMwIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBub25fdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJpc2luZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMzYzODcsIDAuMzYxNzE2LCAwLjU4OTE2MSwgMC45Njg0NTcsIDEuMzQ3NTcsIDIuMjM0NzMsIDIuNzQxNzciLCBcCi0gICAgICAgICAgIjAuMzQ3ODk0LCAwLjM3MzA2MywgMC42MDEyNjYsIDAuOTc5NTk1LCAxLjM1OTYxLCAyLjI0ODQyLCAyLjc1NTY2IiwgXAotICAgICAgICAgICIwLjM2MzEyLCAwLjM4ODU3NCwgMC42MTY5OCwgMC45OTY2NTMsIDEuMzc2MSwgMi4yNjMxOCwgMi43NjQ5NyIsIFwKLSAgICAgICAgICAiMC4zNzg1MzUsIDAuNDA0MDI3LCAwLjYzMjIzMSwgMS4wMTA0LCAxLjM5MDMzLCAyLjI3ODc1LCAyLjc3OTYiLCBcCi0gICAgICAgICAgIjAuMzkzNzEsIDAuNDE4OTU5LCAwLjY0NjgyNywgMS4wMjU4MiwgMS40MDQyMiwgMi4yOTM2OSwgMi43OTkyMyIsIFwKLSAgICAgICAgICAiMC40MTc5NDYsIDAuNDQzMTgxLCAwLjY3MDgxOSwgMS4wNTA1NiwgMS40Mjk1OCwgMi4zMTc5NywgMi44MjE3OSIsIFwKLSAgICAgICAgICAiMC40Mzg0OTksIDAuNDYzNzU4LCAwLjY5MTc1NywgMS4wNzAyOSwgMS40NDk1MywgMi4zMzg1NSwgMi44NDQ1OSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yNzgxMzMsIDAuMzI5NDIsIDAuNzkzODg1LCAxLjU2MDczLCAyLjM1NjM4LCA0LjE2NjAzLCA1LjE3MTk0IiwgXAotICAgICAgICAgICIwLjI3NzU5MSwgMC4zMjkyMjIsIDAuNzkwMjIxLCAxLjU3NjY0LCAyLjM1NjUsIDQuMTY5ODMsIDUuMTg2NzgiLCBcCi0gICAgICAgICAgIjAuMjc3NTk4LCAwLjMyNzYwNiwgMC43OTM5OTksIDEuNTYxNjEsIDIuMzQ1NTgsIDQuMTcwNDMsIDUuMTg3NTEiLCBcCi0gICAgICAgICAgIjAuMjc3NjA1LCAwLjMyOTA1NSwgMC43OTM0OTYsIDEuNTc2NiwgMi4zNTY1LCA0LjE3MDEsIDUuMTU1NzgiLCBcCi0gICAgICAgICAgIjAuMjc3NTQyLCAwLjMyOTIwMiwgMC43OTAzNDIsIDEuNTYyODYsIDIuMzM5OCwgNC4xNzA1NiwgNS4xODgiLCBcCi0gICAgICAgICAgIjAuMjc3NTM0LCAwLjMyOTE4NCwgMC43OTQ0MzYsIDEuNTU2MTgsIDIuMzI3NjIsIDQuMTcwNDMsIDUuMTg3NzgiLCBcCi0gICAgICAgICAgIjAuMjc3NTQ3LCAwLjMyOTIwOSwgMC43OTAyMDgsIDEuNTY1OTksIDIuMzU2MzMsIDQuMTcwMzYsIDUuMTg4MDgiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzg0MTY3LCAwLjQxNDEzNCwgMC42ODIwMjEsIDEuMTI3NTcsIDEuNTc3ODMsIDIuNjIwODUsIDMuMjA3NzUiLCBcCi0gICAgICAgICAgIjAuMzk1ODI4LCAwLjQyNTc3OCwgMC42OTM1OTIsIDEuMTM4NzcsIDEuNTg5NDUsIDIuNjIzMzYsIDMuMjI4MDUiLCBcCi0gICAgICAgICAgIjAuNDExMTY5LCAwLjQ0MTEzMiwgMC43MDkxMzMsIDEuMTU0MjUsIDEuNjA0OSwgMi42NDc3NiwgMy4yNDM2IiwgXAotICAgICAgICAgICIwLjQyNjY1NSwgMC40NTY2MTgsIDAuNzI0NDczLCAxLjE2OTY0LCAxLjYyMDQsIDIuNjYzMjMsIDMuMjU5MDgiLCBcCi0gICAgICAgICAgIjAuNDQxODg5LCAwLjQ3MTgzNiwgMC43Mzk0ODYsIDEuMTg0NzMsIDEuNjM1MzUsIDIuNjY5MjksIDMuMjc0MjYiLCBcCi0gICAgICAgICAgIjAuNDY2MjM0LCAwLjQ5NjE5LCAwLjc2NDA0LCAxLjIwOTU2LCAxLjY1OTksIDIuNzAyOTQsIDMuMjg5OTYiLCBcCi0gICAgICAgICAgIjAuNDg3MDI3LCAwLjUxNjk3NCwgMC43ODQ2MjYsIDEuMjI5ODksIDEuNjgwNTIsIDIuNzE2MjksIDMuMzE5NCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMTM3NjIsIDAuMzcyMDg5LCAwLjkwMTAyMSwgMS43ODIzMywgMi42Njk0NCwgNC43MjkyNywgNS45MTE3NCIsIFwKLSAgICAgICAgICAiMC4zMTM4NTIsIDAuMzcyMjIxLCAwLjkwMDQ1NCwgMS43ODM5OCwgMi42NjY2OSwgNC43MzIzNCwgNS45MTk5NyIsIFwKLSAgICAgICAgICAiMC4zMTM4NDIsIDAuMzcyMjAxLCAwLjkwMjAzNSwgMS43ODMwOSwgMi42NjgwNywgNC43MjEyLCA1LjkxOTUyIiwgXAotICAgICAgICAgICIwLjMxMzg0NiwgMC4zNzIyMDksIDAuOTAwOTkyLCAxLjc4MzgxLCAyLjY2ODA4LCA0LjcyMDkyLCA1LjkxOTU2IiwgXAotICAgICAgICAgICIwLjMxMzgzNCwgMC4zNzIyMjQsIDAuOTAwMDQ5LCAxLjc4NTQsIDIuNjY0NTMsIDQuNzMzODcsIDUuOTE5NjciLCBcCi0gICAgICAgICAgIjAuMzEzODQ5LCAwLjM3MjIwNSwgMC45MDA5ODcsIDEuNzgxODYsIDIuNjY3OSwgNC43MjM0LCA1LjkxODk1IiwgXAotICAgICAgICAgICIwLjMxMzgzNiwgMC4zNzIyMywgMC45MDAwMjMsIDEuNzg0OTYsIDIuNjY0OTUsIDQuNzE4MjEsIDUuOTE5NjYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzMDA1LCAwLjAwMzAwNSwgMC4wMDMwMDEsIDAuMDAyOTk5LCAwLjAwMjk5OCwgMC4wMDI5OTcsIDAuMDAyOTk3IiwgXAotICAgICAgICAgICIwLjAwMjk5OCwgMC4wMDI5OTgsIDAuMDAyOTk0LCAwLjAwMjk5MiwgMC4wMDI5OTEsIDAuMDAyOTksIDAuMDAyOTkiLCBcCi0gICAgICAgICAgIjAuMDAyOTkyLCAwLjAwMjk5MiwgMC4wMDI5ODgsIDAuMDAyOTg2LCAwLjAwMjk4NSwgMC4wMDI5ODQsIDAuMDAyOTg0IiwgXAotICAgICAgICAgICIwLjAwMjk4NywgMC4wMDI5ODcsIDAuMDAyOTgzLCAwLjAwMjk4MSwgMC4wMDI5OCwgMC4wMDI5NzksIDAuMDAyOTc5IiwgXAotICAgICAgICAgICIwLjAwMjk4MywgMC4wMDI5ODMsIDAuMDAyOTgsIDAuMDAyOTc3LCAwLjAwMjk3NiwgMC4wMDI5NzUsIDAuMDAyOTc1IiwgXAotICAgICAgICAgICIwLjAwMjk3OCwgMC4wMDI5NzgsIDAuMDAyOTc1LCAwLjAwMjk3MywgMC4wMDI5NzIsIDAuMDAyOTcxLCAwLjAwMjk3IiwgXAotICAgICAgICAgICIwLjAwMjk3NywgMC4wMDI5NzYsIDAuMDAyOTczLCAwLjAwMjk3MSwgMC4wMDI5NywgMC4wMDI5NjksIDAuMDAyOTY5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyOTU2LCAwLjAwMjk1NiwgMC4wMDI5NTksIDAuMDAyOTU5LCAwLjAwMjk2LCAwLjAwMjk2LCAwLjAwMjk2IiwgXAotICAgICAgICAgICIwLjAwMjk0OSwgMC4wMDI5NDksIDAuMDAyOTUyLCAwLjAwMjk1MiwgMC4wMDI5NTMsIDAuMDAyOTUzLCAwLjAwMjk1MyIsIFwKLSAgICAgICAgICAiMC4wMDI5NDMsIDAuMDAyOTQ0LCAwLjAwMjk0NiwgMC4wMDI5NDYsIDAuMDAyOTQ3LCAwLjAwMjk0NywgMC4wMDI5NDciLCBcCi0gICAgICAgICAgIjAuMDAyOTM5LCAwLjAwMjk0LCAwLjAwMjk0MiwgMC4wMDI5NDMsIDAuMDAyOTQzLCAwLjAwMjk0NCwgMC4wMDI5NDQiLCBcCi0gICAgICAgICAgIjAuMDAyOTM4LCAwLjAwMjkzOSwgMC4wMDI5NDEsIDAuMDAyOTQyLCAwLjAwMjk0MiwgMC4wMDI5NDIsIDAuMDAyOTQyIiwgXAotICAgICAgICAgICIwLjAwMjkzNywgMC4wMDI5MzcsIDAuMDAyOTM5LCAwLjAwMjk0LCAwLjAwMjk0MSwgMC4wMDI5NDEsIDAuMDAyOTQxIiwgXAotICAgICAgICAgICIwLjAwMjkzOSwgMC4wMDI5NCwgMC4wMDI5NDIsIDAuMDAyOTQzLCAwLjAwMjk0MywgMC4wMDI5NDMsIDAuMDAyOTQzIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihRTikgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjA3NDI0NjsKLSAgICBmdW5jdGlvbiA6ICJRQklOVCI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3NlbnNlIDogbm9uX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiByaXNpbmdfZWRnZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzgzNTM1LCAwLjQwODc5MSwgMC42MzU5NzgsIDEuMDE0NjMsIDEuMzkzMjUsIDIuMjc2ODgsIDIuNzgxNyIsIFwKLSAgICAgICAgICAiMC4zOTUyMDEsIDAuNDIwNDMyLCAwLjY0NzY1MSwgMS4wMjYzLCAxLjQwNDksIDIuMjg4NDcsIDIuNzkzNiIsIFwKLSAgICAgICAgICAiMC40MTA1NjIsIDAuNDM1ODEyLCAwLjY2MzAwOSwgMS4wNDE2NywgMS40MjAyOCwgMi4zMDM5NywgMi44MDg4OSIsIFwKLSAgICAgICAgICAiMC40MjYwMzEsIDAuNDUxMjgsIDAuNjc4NDgzLCAxLjA1NzE0LCAxLjQzNTc1LCAyLjMxOTQ0LCAyLjgyNDM2IiwgXAotICAgICAgICAgICIwLjQ0MTI2NCwgMC40NjY0OTUsIDAuNjkzNzIxLCAxLjA3MjM3LCAxLjQ1MDk2LCAyLjMzNDU0LCAyLjgzOTYxIiwgXAotICAgICAgICAgICIwLjQ2NTYxLCAwLjQ5MDg0NywgMC43MTgwNTQsIDEuMDk2NywgMS40NzUzMywgMi4zNTg5NiwgMi44NjM4IiwgXAotICAgICAgICAgICIwLjQ4NjQwMiwgMC41MTE2MzMsIDAuNzM4ODU5LCAxLjExNzUxLCAxLjQ5NjEsIDIuMzc5NjUsIDIuODg0NzUiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjcwMDQ4LCAwLjMyMTM4NiwgMC43ODMwMDIsIDEuNTUwMDUsIDIuMzIyNDMsIDQuMTE4NDcsIDUuMTM0NjIiLCBcCi0gICAgICAgICAgIjAuMjcwMDQ5LCAwLjMyMTI3NywgMC43ODMwMiwgMS41NTAzMSwgMi4zMjIyOCwgNC4xMTE2MiwgNS4xMzgxMiIsIFwKLSAgICAgICAgICAiMC4yNzAwNCwgMC4zMjEzNDYsIDAuNzgzMDAzLCAxLjU1MDIzLCAyLjMyMjM4LCA0LjExODQ4LCA1LjEzODE3IiwgXAotICAgICAgICAgICIwLjI3MDA0MSwgMC4zMjEzNDIsIDAuNzgyOTk1LCAxLjU1MDI5LCAyLjMyMjM4LCA0LjExODQ4LCA1LjEzODE3IiwgXAotICAgICAgICAgICIwLjI3MDA0MSwgMC4zMjEyNjksIDAuNzgxNjgyLCAxLjU1MDI4LCAyLjMyMjIsIDQuMTExNzcsIDUuMTM4MTUiLCBcCi0gICAgICAgICAgIjAuMjcwMDQ4LCAwLjMyMTMyOCwgMC43ODMwMDksIDEuNTUwMTMsIDIuMzIyNDMsIDQuMTE4NDcsIDUuMTM0NjEiLCBcCi0gICAgICAgICAgIjAuMjcwMDQxLCAwLjMyMTI2NywgMC43ODE2OCwgMS41NTAzMSwgMi4zMjIyMiwgNC4xMTEzMywgNS4xMzgxNSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zODAxLCAwLjQwOTc5NywgMC42NzcwOTksIDEuMTIyNDcsIDEuNTY3ODYsIDIuNjA3MTYsIDMuMjAxMDgiLCBcCi0gICAgICAgICAgIjAuMzkxNzU2LCAwLjQyMTQ3NiwgMC42ODg3NjgsIDEuMTM0MTEsIDEuNTc5NTQsIDIuNjE5MDQsIDMuMjEzIiwgXAotICAgICAgICAgICIwLjQwNzAwNCwgMC40MzY3MjEsIDAuNzA0MDQxLCAxLjE0OTQ1LCAxLjU5NDgzLCAyLjYzNDI1LCAzLjIyNzg0IiwgXAotICAgICAgICAgICIwLjQyMjM4NSwgMC40NTIwODMsIDAuNzE5NDM5LCAxLjE2NDc1LCAxLjYxMDE4LCAyLjY0OTY1LCAzLjI0MzIxIiwgXAotICAgICAgICAgICIwLjQzNzYxMywgMC40NjcyOTksIDAuNzM0NTk3LCAxLjE3OTk4LCAxLjYyNTM2LCAyLjY2NDg0LCAzLjI1ODciLCBcCi0gICAgICAgICAgIjAuNDYxODIyLCAwLjQ5MTUwOSwgMC43NTg4MTYsIDEuMjA0MiwgMS42NDk1OCwgMi42ODkwNiwgMy4yODI4IiwgXAotICAgICAgICAgICIwLjQ4MjQwMiwgMC41MTIwODcsIDAuNzc5Mzk1LCAxLjIyNDc3LCAxLjY3MDEzLCAyLjcwOTYzLCAzLjMwMzUzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMwODgwMywgMC4zNjc1MjQsIDAuODk2NDI1LCAxLjc3NzU0LCAyLjY1OTcyLCA0LjcxNDkyLCA1Ljg4OTM4IiwgXAotICAgICAgICAgICIwLjMwODgwOSwgMC4zNjc1NTYsIDAuODk2MjUxLCAxLjc3ODA2LCAyLjY1OTgyLCA0LjcxNjk4LCA1Ljg4OTA3IiwgXAotICAgICAgICAgICIwLjMwODgwOSwgMC4zNjczNjUsIDAuODk1OTY3LCAxLjc3NzE3LCAyLjY1ODY3LCA0LjcxNjk3LCA1Ljg5MDczIiwgXAotICAgICAgICAgICIwLjMwODgwOCwgMC4zNjc0ODQsIDAuODk2MTI4LCAxLjc3ODA4LCAyLjY1OTgzLCA0LjcxNjk3LCA1Ljg5MDE0IiwgXAotICAgICAgICAgICIwLjMwODgxNSwgMC4zNjc1MzIsIDAuODk2Njg3LCAxLjc3NzU4LCAyLjY1OTA3LCA0LjcxNjk3LCA1Ljg5MTAxIiwgXAotICAgICAgICAgICIwLjMwODgxNCwgMC4zNjc1MywgMC44OTY0NDcsIDEuNzc3NCwgMi42NTg3MywgNC43MTY5NywgNS44OTA4OSIsIFwKLSAgICAgICAgICAiMC4zMDg4MTYsIDAuMzY3NTMyLCAwLjg5NjcxNiwgMS43Nzc2OSwgMi42NTk3MywgNC43MTY5NiwgNS44OTEwNSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI5NTYsIDAuMDAyOTU2LCAwLjAwMjk1OSwgMC4wMDI5NTksIDAuMDAyOTYsIDAuMDAyOTYsIDAuMDAyOTYiLCBcCi0gICAgICAgICAgIjAuMDAyOTQ5LCAwLjAwMjk0OSwgMC4wMDI5NTIsIDAuMDAyOTUyLCAwLjAwMjk1MywgMC4wMDI5NTMsIDAuMDAyOTUzIiwgXAotICAgICAgICAgICIwLjAwMjk0MywgMC4wMDI5NDQsIDAuMDAyOTQ2LCAwLjAwMjk0NiwgMC4wMDI5NDcsIDAuMDAyOTQ3LCAwLjAwMjk0NyIsIFwKLSAgICAgICAgICAiMC4wMDI5MzksIDAuMDAyOTQsIDAuMDAyOTQyLCAwLjAwMjk0MywgMC4wMDI5NDMsIDAuMDAyOTQ0LCAwLjAwMjk0NCIsIFwKLSAgICAgICAgICAiMC4wMDI5MzgsIDAuMDAyOTM5LCAwLjAwMjk0MSwgMC4wMDI5NDIsIDAuMDAyOTQyLCAwLjAwMjk0MiwgMC4wMDI5NDIiLCBcCi0gICAgICAgICAgIjAuMDAyOTM3LCAwLjAwMjkzNywgMC4wMDI5MzksIDAuMDAyOTQsIDAuMDAyOTQxLCAwLjAwMjk0MSwgMC4wMDI5NDEiLCBcCi0gICAgICAgICAgIjAuMDAyOTM5LCAwLjAwMjk0LCAwLjAwMjk0MiwgMC4wMDI5NDMsIDAuMDAyOTQzLCAwLjAwMjk0MywgMC4wMDI5NDMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDMwMDUsIDAuMDAzMDA1LCAwLjAwMzAwMSwgMC4wMDI5OTksIDAuMDAyOTk4LCAwLjAwMjk5NywgMC4wMDI5OTciLCBcCi0gICAgICAgICAgIjAuMDAyOTk4LCAwLjAwMjk5OCwgMC4wMDI5OTQsIDAuMDAyOTkyLCAwLjAwMjk5MSwgMC4wMDI5OSwgMC4wMDI5OSIsIFwKLSAgICAgICAgICAiMC4wMDI5OTIsIDAuMDAyOTkyLCAwLjAwMjk4OCwgMC4wMDI5ODYsIDAuMDAyOTg1LCAwLjAwMjk4NCwgMC4wMDI5ODQiLCBcCi0gICAgICAgICAgIjAuMDAyOTg3LCAwLjAwMjk4NywgMC4wMDI5ODMsIDAuMDAyOTgxLCAwLjAwMjk4LCAwLjAwMjk3OSwgMC4wMDI5NzkiLCBcCi0gICAgICAgICAgIjAuMDAyOTgzLCAwLjAwMjk4MywgMC4wMDI5OCwgMC4wMDI5NzcsIDAuMDAyOTc2LCAwLjAwMjk3NSwgMC4wMDI5NzUiLCBcCi0gICAgICAgICAgIjAuMDAyOTc4LCAwLjAwMjk3OCwgMC4wMDI5NzUsIDAuMDAyOTczLCAwLjAwMjk3MiwgMC4wMDI5NzEsIDAuMDAyOTciLCBcCi0gICAgICAgICAgIjAuMDAyOTc3LCAwLjAwMjk3NiwgMC4wMDI5NzMsIDAuMDAyOTcxLCAwLjAwMjk3LCAwLjAwMjk2OSwgMC4wMDI5NjkiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFNFKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDEyODQxNzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDEyODMwNjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDEyODQxNzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDMyODMsIDAuMDAzMjcsIDAuMDAzMjY1LCAwLjAwMzI2MywgMC4wMDMyNjIsIDAuMDAzMjYsIDAuMDAzMjU5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA0MzM1LCAwLjAwNDMxNywgMC4wMDQzMDQsIDAuMDA0Mjk4LCAwLjAwNDI5MiwgMC4wMDQyODYsIDAuMDA0Mjg1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEJlNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9TSV9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjExODc1LCAtMC4xMDc1LCAtMC4wOTUsIC0wLjA4ODc1LCAtMC4wNzYyNSwgLTAuMDYsIC0wLjA1MTI1IiwgXAotICAgICAgICAgICItMC4xMywgLTAuMTE4NzUsIC0wLjEwNjI1LCAtMC4xLCAtMC4wODc1LCAtMC4wNzEyNSwgLTAuMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMTQyNSwgLTAuMTMxMjUsIC0wLjExODc1LCAtMC4xMTI1LCAtMC4xLCAtMC4wODM3NSwgLTAuMDc1IiwgXAotICAgICAgICAgICItMC4xNTUsIC0wLjE0Mzc1LCAtMC4xMzc1LCAtMC4xMjUsIC0wLjExMjUsIC0wLjA5NjI1LCAtMC4wODc1IiwgXAotICAgICAgICAgICItMC4xNjc1LCAtMC4xNjI1LCAtMC4xNSwgLTAuMTM3NSwgLTAuMTI1LCAtMC4xMTUsIC0wLjEiLCBcCi0gICAgICAgICAgIi0wLjE5LCAtMC4xNzg3NSwgLTAuMTcyNSwgLTAuMTYsIC0wLjE0NzUsIC0wLjEzNzUsIC0wLjEyMjUiLCBcCi0gICAgICAgICAgIi0wLjIxMTI1LCAtMC4yLCAtMC4xODc1LCAtMC4xODEyNSwgLTAuMTY4NzUsIC0wLjE1MjUsIC0wLjE0Mzc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDEyNSwgLTAuMDAxMjUsIDAuMDExMjUsIDAuMDIzNzUsIDAuMDQyNSwgMC4wNTg3NSwgMC4wOCIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxMjUsIDAsIDAuMDE4NzUsIDAuMDMxMjUsIDAuMDUzNzUsIDAuMDY4NzUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMjUsIC0wLjAxMjUsIDAsIDAuMDE4NzUsIDAuMDQxMjUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAxMjUsIDAuMDA2MjUsIDAuMDIyNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDYxMjUsIC0wLjA1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAwNjI1LCAwLjAxNjI1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wNzc1LCAtMC4wNjYyNSwgLTAuMDUzNzUsIC0wLjA0MTI1LCAtMC4wMjg3NSwgLTAuMDA2MjUsIDAuMDA4NzUiLCBcCi0gICAgICAgICAgIi0wLjA5MjUsIC0wLjA4MTI1LCAtMC4wNjg3NSwgLTAuMDU2MjUsIC0wLjA0Mzc1LCAtMC4wMjEyNSwgLTAuMDA2MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiRCYhU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8xX0FOX1NJX0VRXzAgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDQzNzUsIC0wLjAzMjUsIC0wLjAyLCAtMC4wMDEyNSwgMC4wMTEyNSwgMC4wMzM3NSwgMC4wNDg3NSIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNDM3NSwgLTAuMDMxMjUsIC0wLjAxODc1LCAwLCAwLjAxNjI1LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjA3Mzc1LCAtMC4wNTYyNSwgLTAuMDQzNzUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgMC4wMDM3NSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDg2MjUsIC0wLjA3NSwgLTAuMDYyNSwgLTAuMDQzNzUsIC0wLjAzMTI1LCAtMC4wMDg3NSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDk4NzUsIC0wLjA4NzUsIC0wLjA3NSwgLTAuMDYyNSwgLTAuMDUsIC0wLjAyNzUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICItMC4xMjEyNSwgLTAuMTEsIC0wLjA5NzUsIC0wLjA3ODc1LCAtMC4wNjYyNSwgLTAuMDQzNzUsIC0wLjAyODc1IiwgXAotICAgICAgICAgICItMC4xMzYyNSwgLTAuMTI1LCAtMC4xMTI1LCAtMC4xLCAtMC4wODEyNSwgLTAuMDY1LCAtMC4wNDM3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjE1LCAtMC4xMzg3NSwgLTAuMTI2MjUsIC0wLjExMzc1LCAtMC4xMDc1LCAtMC4wOTEyNSwgLTAuMDc2MjUiLCBcCi0gICAgICAgICAgIi0wLjE2MTI1LCAtMC4xNSwgLTAuMTM3NSwgLTAuMTI1LCAtMC4xMTg3NSwgLTAuMTAyNSwgLTAuMDg3NSIsIFwKLSAgICAgICAgICAiLTAuMTczNzUsIC0wLjE2MjUsIC0wLjE1NjI1LCAtMC4xNDM3NSwgLTAuMTMxMjUsIC0wLjExNSwgLTAuMTA2MjUiLCBcCi0gICAgICAgICAgIi0wLjE4NjI1LCAtMC4xNzUsIC0wLjE2ODc1LCAtMC4xNTYyNSwgLTAuMTQzNzUsIC0wLjEzMzc1LCAtMC4xMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMTk4NzUsIC0wLjE5Mzc1LCAtMC4xODEyNSwgLTAuMTY4NzUsIC0wLjE1NjI1LCAtMC4xNDYyNSwgLTAuMTMxMjUiLCBcCi0gICAgICAgICAgIi0wLjIxNSwgLTAuMjEsIC0wLjE5NzUsIC0wLjE4NSwgLTAuMTc4NzUsIC0wLjE2MjUsIC0wLjE0NzUiLCBcCi0gICAgICAgICAgIi0wLjIzLCAtMC4yMjUsIC0wLjIxMjUsIC0wLjIsIC0wLjE4NzUsIC0wLjE3NzUsIC0wLjE2MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEJlNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9TSV9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE5Mzc1LCAwLjE3NjI1LCAwLjE2Mzc1LCAwLjE1MTI1LCAwLjEzODc1LCAwLjEyMjUsIDAuMTA3NSIsIFwKLSAgICAgICAgICAiMC4xOTg3NSwgMC4xODc1LCAwLjE3NSwgMC4xNjI1LCAwLjE1LCAwLjEzMzc1LCAwLjExODc1IiwgXAotICAgICAgICAgICIwLjIxNzUsIDAuMjA2MjUsIDAuMTg3NSwgMC4xNzUsIDAuMTYyNSwgMC4xNDYyNSwgMC4xMzEyNSIsIFwKLSAgICAgICAgICAiMC4yMywgMC4yMTg3NSwgMC4yLCAwLjE4NzUsIDAuMTc1LCAwLjE1ODc1LCAwLjE0Mzc1IiwgXAotICAgICAgICAgICIwLjI0MjUsIDAuMjMxMjUsIDAuMjEyNSwgMC4yLCAwLjE4NzUsIDAuMTcxMjUsIDAuMTYyNSIsIFwKLSAgICAgICAgICAiMC4yNjUsIDAuMjUzNzUsIDAuMjM1LCAwLjIyMjUsIDAuMjEsIDAuMTkzNzUsIDAuMTg1IiwgXAotICAgICAgICAgICIwLjI4NjI1LCAwLjI2ODc1LCAwLjI1NjI1LCAwLjI0Mzc1LCAwLjIzMTI1LCAwLjIxNSwgMC4yIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTI1LCAwLjExMzc1LCAwLjA5NSwgMC4wNzYyNSwgMC4wNjM3NSwgMC4wNDEyNSwgMC4wMiIsIFwKLSAgICAgICAgICAiMC4xMzYyNSwgMC4xMjUsIDAuMTA2MjUsIDAuMDg3NSwgMC4wNzUsIDAuMDQ2MjUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMTQ4NzUsIDAuMTM3NSwgMC4xMTg3NSwgMC4xLCAwLjA4NzUsIDAuMDY1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjE2MTI1LCAwLjE1LCAwLjEzMTI1LCAwLjExODc1LCAwLjEsIDAuMDc3NSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiMC4xNzM3NSwgMC4xNjI1LCAwLjE0Mzc1LCAwLjEzMTI1LCAwLjExMjUsIDAuMDksIDAuMDY4NzUiLCBcCi0gICAgICAgICAgIjAuMTk2MjUsIDAuMTg1LCAwLjE2NjI1LCAwLjE0NzUsIDAuMTM1LCAwLjExMjUsIDAuMDkxMjUiLCBcCi0gICAgICAgICAgIjAuMjExMjUsIDAuMiwgMC4xODc1LCAwLjE2ODc1LCAwLjE1NjI1LCAwLjEyNzUsIDAuMTA2MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIkQmIVNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMV9BTl9TSV9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE1NjI1LCAwLjE0NSwgMC4xMjYyNSwgMC4xMDc1LCAwLjA5NSwgMC4wNzI1LCAwLjA1MTI1IiwgXAotICAgICAgICAgICIwLjE2NzUsIDAuMTU2MjUsIDAuMTM3NSwgMC4xMTg3NSwgMC4xMDYyNSwgMC4wODM3NSwgMC4wNjI1IiwgXAotICAgICAgICAgICIwLjE4LCAwLjE2ODc1LCAwLjE1NjI1LCAwLjEzNzUsIDAuMTE4NzUsIDAuMDk2MjUsIDAuMDc1IiwgXAotICAgICAgICAgICIwLjE5ODc1LCAwLjE4NzUsIDAuMTY4NzUsIDAuMTUsIDAuMTM3NSwgMC4xMTUsIDAuMDkzNzUiLCBcCi0gICAgICAgICAgIjAuMjExMjUsIDAuMiwgMC4xODEyNSwgMC4xNjg3NSwgMC4xNSwgMC4xMjc1LCAwLjEwNjI1IiwgXAotICAgICAgICAgICIwLjIzMzc1LCAwLjIxNjI1LCAwLjIwMzc1LCAwLjE4NSwgMC4xNzI1LCAwLjE0Mzc1LCAwLjEyMjUiLCBcCi0gICAgICAgICAgIjAuMjQ4NzUsIDAuMjM3NSwgMC4yMTg3NSwgMC4yLCAwLjE4NzUsIDAuMTY1LCAwLjE0Mzc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjE4NzUsIDAuMjA3NSwgMC4xOTUsIDAuMTc2MjUsIDAuMTcsIDAuMTUzNzUsIDAuMTM4NzUiLCBcCi0gICAgICAgICAgIjAuMjMsIDAuMjE4NzUsIDAuMjA2MjUsIDAuMTkzNzUsIDAuMTgxMjUsIDAuMTY1LCAwLjE1IiwgXAotICAgICAgICAgICIwLjI0ODc1LCAwLjIzNzUsIDAuMjE4NzUsIDAuMjA2MjUsIDAuMTkzNzUsIDAuMTc3NSwgMC4xNjI1IiwgXAotICAgICAgICAgICIwLjI2MTI1LCAwLjI1LCAwLjIzMTI1LCAwLjIxODc1LCAwLjIwNjI1LCAwLjE5LCAwLjE4MTI1IiwgXAotICAgICAgICAgICIwLjI3Mzc1LCAwLjI2MjUsIDAuMjQzNzUsIDAuMjMxMjUsIDAuMjE4NzUsIDAuMjAyNSwgMC4xOTM3NSIsIFwKLSAgICAgICAgICAiMC4yOSwgMC4yNzg3NSwgMC4yNjYyNSwgMC4yNDc1LCAwLjIzNSwgMC4yMTg3NSwgMC4yMSIsIFwKLSAgICAgICAgICAiMC4zMDUsIDAuMjkzNzUsIDAuMjc1LCAwLjI2MjUsIDAuMjUsIDAuMjMzNzUsIDAuMjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTSSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjYxNDcxOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDY1OTYyNTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2NjE0NzE7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyMjQzLCAwLjAwMjIzMywgMC4wMDIyMjgsIDAuMDAyMjI1LCAwLjAwMjIyMiwgMC4wMDIyMTksIDAuMDAyMjE3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzNTE1LCAwLjAwMzUxLCAwLjAwMzUwNywgMC4wMDM1MDYsIDAuMDAzNTA0LCAwLjAwMzUwMiwgMC4wMDM1MDIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiU0UiOwotICAgICAgc2RmX2NvbmQgOiAiU0UgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMTMxMjUsIC0wLjEyLCAtMC4xMDc1LCAtMC4xMDEyNSwgLTAuMDg4NzUsIC0wLjA3MjUsIC0wLjA2Mzc1IiwgXAotICAgICAgICAgICItMC4xNDI1LCAtMC4xMzEyNSwgLTAuMTE4NzUsIC0wLjExMjUsIC0wLjEsIC0wLjA4Mzc1LCAtMC4wNzUiLCBcCi0gICAgICAgICAgIi0wLjE1NSwgLTAuMTQzNzUsIC0wLjEzNzUsIC0wLjEyNSwgLTAuMTEyNSwgLTAuMTAyNSwgLTAuMDg3NSIsIFwKLSAgICAgICAgICAiLTAuMTY3NSwgLTAuMTYyNSwgLTAuMTUsIC0wLjEzNzUsIC0wLjEyNSwgLTAuMTE1LCAtMC4xIiwgXAotICAgICAgICAgICItMC4xODYyNSwgLTAuMTc1LCAtMC4xNjI1LCAtMC4xNSwgLTAuMTQzNzUsIC0wLjEyNzUsIC0wLjExMjUiLCBcCi0gICAgICAgICAgIi0wLjIwMjUsIC0wLjE5NzUsIC0wLjE4NSwgLTAuMTcyNSwgLTAuMTY2MjUsIC0wLjE1LCAtMC4xMzUiLCBcCi0gICAgICAgICAgIi0wLjIyMzc1LCAtMC4yMTI1LCAtMC4yLCAtMC4xOTM3NSwgLTAuMTgxMjUsIC0wLjE2NSwgLTAuMTU2MjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMjUsIC0wLjAxMzc1LCAtMC4wMDEyNSwgMC4wMTEyNSwgMC4wMywgMC4wNTI1LCAwLjA2NzUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMjUsIC0wLjAxMjUsIDAsIDAuMDE4NzUsIDAuMDM1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDM3NSwgLTAuMDI1LCAtMC4wMTI1LCAwLjAwNjI1LCAwLjAyMjUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIi0wLjA2MTI1LCAtMC4wNSwgLTAuMDM3NSwgLTAuMDI1LCAtMC4wMDYyNSwgMC4wMTYyNSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDczNzUsIC0wLjA2MjUsIC0wLjA1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIDAuMDAzNzUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjA5LCAtMC4wNzg3NSwgLTAuMDY2MjUsIC0wLjA1Mzc1LCAtMC4wNDEyNSwgLTAuMDE4NzUsIDAuMDAyNSIsIFwKLSAgICAgICAgICAiLTAuMTA1LCAtMC4wOTM3NSwgLTAuMDgxMjUsIC0wLjA2ODc1LCAtMC4wNTYyNSwgLTAuMDMzNzUsIC0wLjAxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlNFIjsKLSAgICAgIHNkZl9jb25kIDogIlNFID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIwNjI1LCAwLjE4ODc1LCAwLjE3NjI1LCAwLjE2Mzc1LCAwLjE1MTI1LCAwLjEzNSwgMC4xMiIsIFwKLSAgICAgICAgICAiMC4yMTc1LCAwLjIsIDAuMTg3NSwgMC4xNzUsIDAuMTYyNSwgMC4xNDYyNSwgMC4xMzEyNSIsIFwKLSAgICAgICAgICAiMC4yMywgMC4yMTg3NSwgMC4yLCAwLjE4NzUsIDAuMTc1LCAwLjE1ODc1LCAwLjE0Mzc1IiwgXAotICAgICAgICAgICIwLjI0MjUsIDAuMjMxMjUsIDAuMjEyNSwgMC4yLCAwLjE4NzUsIDAuMTcxMjUsIDAuMTYyNSIsIFwKLSAgICAgICAgICAiMC4yNTUsIDAuMjQzNzUsIDAuMjMxMjUsIDAuMjEyNSwgMC4yMDYyNSwgMC4xODM3NSwgMC4xNzUiLCBcCi0gICAgICAgICAgIjAuMjc3NSwgMC4yNjYyNSwgMC4yNTM3NSwgMC4yMzUsIDAuMjIyNSwgMC4yMDYyNSwgMC4xOTc1IiwgXAotICAgICAgICAgICIwLjI5ODc1LCAwLjI4NzUsIDAuMjY4NzUsIDAuMjU2MjUsIDAuMjQzNzUsIDAuMjI3NSwgMC4yMTI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTM3NSwgMC4xMjYyNSwgMC4xMDc1LCAwLjA4ODc1LCAwLjA3NjI1LCAwLjA1Mzc1LCAwLjAzMjUiLCBcCi0gICAgICAgICAgIjAuMTQ4NzUsIDAuMTM3NSwgMC4xMTg3NSwgMC4xLCAwLjA4NzUsIDAuMDY1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjE2MTI1LCAwLjE1LCAwLjEzMTI1LCAwLjExMjUsIDAuMSwgMC4wNzc1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICIwLjE3Mzc1LCAwLjE2MjUsIDAuMTQzNzUsIDAuMTI1LCAwLjExMjUsIDAuMDksIDAuMDY4NzUiLCBcCi0gICAgICAgICAgIjAuMTg2MjUsIDAuMTc1LCAwLjE1NjI1LCAwLjEzNzUsIDAuMTI1LCAwLjEwMjUsIDAuMDgxMjUiLCBcCi0gICAgICAgICAgIjAuMjAyNSwgMC4xOTEyNSwgMC4xNzg3NSwgMC4xNiwgMC4xNDEyNSwgMC4xMTg3NSwgMC4wOTc1IiwgXAotICAgICAgICAgICIwLjIyMzc1LCAwLjIxMjUsIDAuMTkzNzUsIDAuMTc1LCAwLjE2MjUsIDAuMTMzNzUsIDAuMTE4NzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBUQlVGWDEyICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKFRCVUZYMTIpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC43NjQwMTU7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwNTMxOTc7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDA1MzA3Mzc7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDA1MzE5NzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDE3NjIsIDAuMDAxNzk0LCAwLjAwMTgsIDAuMDAxODAyLCAwLjAwMTgwNCwgMC4wMDE4MDUsIDAuMDAxODA2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxODU5LCAwLjAwMTg0NiwgMC4wMDE4NDQsIDAuMDAxODQ0LCAwLjAwMTg0NCwgMC4wMDE4NDQsIDAuMDAxODQ0Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihPRSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAzMjIwMDM7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAzMjE5NDE7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAzMjIwMDM7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHNjYWxhcikgewotICAgICAgICB2YWx1ZXMoIjAiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDk0NTQsIDAuMDA5NDAzLCAwLjAwOTM0LCAwLjAwOTI3OSwgMC4wMDkyNTQsIDAuMDA5MjAxLCAwLjAwOTE4NyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDcyMjA3MjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDcyMjA3MjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDcyMTYyNDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAxLjYwNTM2OwotICAgIGZ1bmN0aW9uIDogIkEiOwotICAgIHRocmVlX3N0YXRlIDogIighT0UpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxNzIyMDcsIDAuMDIzMjIwNywgMC4wNTcyMjA3LCAwLjA4NzIyMDcsIDAuMTI3MjIxLCAwLjIwNzIyMSwgMC4yNTcyMjEiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwMjI3OSwgMC4xMDgzODcsIDAuMTM1NDc0LCAwLjE1NTYyNywgMC4xODA4OTksIDAuMjI5NTkxLCAwLjI1OTY5OCIsIFwKLSAgICAgICAgICAiMC4xMTM1MywgMC4xMTk2NDEsIDAuMTQ2NzM0LCAwLjE2Njg5NCwgMC4xOTIxNzEsIDAuMjQwODQ0LCAwLjI3MDk2MyIsIFwKLSAgICAgICAgICAiMC4xMjY5NDEsIDAuMTMzMDQ2LCAwLjE2MDI0MywgMC4xODAzMjMsIDAuMjA1NjA1LCAwLjI1NDI5NSwgMC4yODQ0MTYiLCBcCi0gICAgICAgICAgIjAuMTQwMjg1LCAwLjE0NjM4OCwgMC4xNzM1NTcsIDAuMTkzNjkxLCAwLjIxODkzNSwgMC4yNjc2NDksIDAuMjk3ODA0IiwgXAotICAgICAgICAgICIwLjE1MzYxOCwgMC4xNTk3MTMsIDAuMTg2ODQ2LCAwLjIwNzA4NSwgMC4yMzIyNjksIDAuMjgwOTg1LCAwLjMxMTE3MiIsIFwKLSAgICAgICAgICAiMC4xNzQ3MzMsIDAuMTgwODM1LCAwLjIwODA0NSwgMC4yMjgyMDMsIDAuMjUzNDgxLCAwLjMwMjIxOCwgMC4zMzIzNDEiLCBcCi0gICAgICAgICAgIjAuMTkyNzExLCAwLjE5ODkxNywgMC4yMjYyMjMsIDAuMjQ2NDQyLCAwLjI3MTYzOSwgMC4zMjA0NDQsIDAuMzUwNTY1Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDE3MjIwNywgMC4wMjMyMjA3LCAwLjA1NzIyMDcsIDAuMDg3MjIwNywgMC4xMjcyMjEsIDAuMjA3MjIxLCAwLjI1NzIyMSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQyNTg0LCAwLjA1MDIzNCwgMC4wODk4MjUsIDAuMTI0MTI4LCAwLjE3MDQwMiwgMC4yNjQ1NDYsIDAuMzI0ODQ1IiwgXAotICAgICAgICAgICIwLjA0MjYwMywgMC4wNTAyNDgsIDAuMDg5NzU5LCAwLjEyNDExLCAwLjE3MDM3MiwgMC4yNjQ2MjIsIDAuMzI0ODAzIiwgXAotICAgICAgICAgICIwLjA0MjcyNSwgMC4wNTAzMTUsIDAuMDg5OTE0LCAwLjEyNDE1LCAwLjE3MDQwNSwgMC4yNjQ2NDMsIDAuMzI0ODIyIiwgXAotICAgICAgICAgICIwLjA0Mjg4MiwgMC4wNTA0MzMsIDAuMDg5OTYzLCAwLjEyNDE1OSwgMC4xNzA0MTksIDAuMjY0NjQ4LCAwLjMyNDc3NSIsIFwKLSAgICAgICAgICAiMC4wNDI5MjQsIDAuMDUwNDkxLCAwLjA4OTkzNiwgMC4xMjQyMjgsIDAuMTcwNDI5LCAwLjI2NDg5MywgMC4zMjQ3NTMiLCBcCi0gICAgICAgICAgIjAuMDQzMTY4LCAwLjA1MDc5NCwgMC4wOTAwNjMsIDAuMTI0MjE4LCAwLjE3MDQ5MiwgMC4yNjQ3MiwgMC4zMjQ0NTEiLCBcCi0gICAgICAgICAgIjAuMDQzODU3LCAwLjA1MTMzNywgMC4wOTAzMiwgMC4xMjQ0NDMsIDAuMTcwNzE3LCAwLjI2NDc4MSwgMC4zMjQ4NTIiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMTcyMTYyLCAwLjAyMzIxNjIsIDAuMDU3MjE2MiwgMC4wODcyMTYyLCAwLjEyNzIxNiwgMC4yMDcyMTYsIDAuMjU3MjE2Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODE2MTMsIDAuMDg3NDUxLCAwLjExNTMxMiwgMC4xMzczNzUsIDAuMTY1OSwgMC4yMjIxODIsIDAuMjU3MjkxIiwgXAotICAgICAgICAgICIwLjA5MjYyMywgMC4wOTg1MjcsIDAuMTI2Mzc5LCAwLjE0ODQ2OCwgMC4xNzY5OTIsIDAuMjMzMjg5LCAwLjI2ODM4NCIsIFwKLSAgICAgICAgICAiMC4xMDUwMTUsIDAuMTEwOSwgMC4xMzg3ODQsIDAuMTYwODI2LCAwLjE4OTM2MiwgMC4yNDU2NzYsIDAuMjgwNzc1IiwgXAotICAgICAgICAgICIwLjExNjgyNCwgMC4xMjI2NSwgMC4xNTA1MzYsIDAuMTcyNjYyLCAwLjIwMTIsIDAuMjU3NTI4LCAwLjI5MjY0MiIsIFwKLSAgICAgICAgICAiMC4xMjgzNDQsIDAuMTM0MjQ3LCAwLjE2MjE1OSwgMC4xODQyODcsIDAuMjEyODI5LCAwLjI2OTE3NywgMC4zMDQyODUiLCBcCi0gICAgICAgICAgIjAuMTQ2MDA1LCAwLjE1MTk1NiwgMC4xODAwODQsIDAuMjAyMjU4LCAwLjIzMDgyMSwgMC4yODcxOTYsIDAuMzIyMjg2IiwgXAotICAgICAgICAgICIwLjE2MDI5NiwgMC4xNjY0MiwgMC4xOTQ4NzEsIDAuMjE3MTAyLCAwLjI0NTcxOSwgMC4zMDIwODcsIDAuMzM3MTk1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDE3MjE2MiwgMC4wMjMyMTYyLCAwLjA1NzIxNjIsIDAuMDg3MjE2MiwgMC4xMjcyMTYsIDAuMjA3MjE2LCAwLjI1NzIxNiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM3NjE4LCAwLjA0NTg3NywgMC4wOTEwNTUsIDAuMTMxMDczLCAwLjE4NTE1OCwgMC4yOTUyMjQsIDAuMzY0NzI0IiwgXAotICAgICAgICAgICIwLjAzNzU5NCwgMC4wNDU5MzMsIDAuMDkxMDY0LCAwLjEzMTA2NSwgMC4xODUwOTQsIDAuMjk1MjM4LCAwLjM2NDcyMiIsIFwKLSAgICAgICAgICAiMC4wMzc3NDIsIDAuMDQ2MDQ0LCAwLjA5MTExNywgMC4xMzEwOTMsIDAuMTg1Mjk4LCAwLjI5NTI0MywgMC4zNjQ3MjMiLCBcCi0gICAgICAgICAgIjAuMDM3ODkzLCAwLjA0NjExOSwgMC4wOTExNTYsIDAuMTMxMTEzLCAwLjE4NTM2NiwgMC4yOTUwMzksIDAuMzY0NzIxIiwgXAotICAgICAgICAgICIwLjAzODIyMywgMC4wNDYzOTcsIDAuMDkxMzEzLCAwLjEzMTIyMiwgMC4xODUzMTEsIDAuMjk1MjkxLCAwLjM2MzY3NiIsIFwKLSAgICAgICAgICAiMC4wMzk1MTIsIDAuMDQ3NjQzLCAwLjA5MTk4OCwgMC4xMzE3MjEsIDAuMTg1NjQ2LCAwLjI5NDcxLCAwLjM2NDY5MSIsIFwKLSAgICAgICAgICAiMC4wNDExODMsIDAuMDQ5MDYyLCAwLjA5MzAzNywgMC4xMzI0NzIsIDAuMTg2MDQ3LCAwLjI5NTY4MSwgMC4zNjQ4NjQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiT0UiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHRocmVlX3N0YXRlX2VuYWJsZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMTcyMjA3LCAwLjAyMzIyMDcsIDAuMDU3MjIwNywgMC4wODcyMjA3LCAwLjEyNzIyMSwgMC4yMDcyMjEsIDAuMjU3MjIxIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTYyNTUsIDAuMTAyNDEsIDAuMTI5NTE1LCAwLjE0OTY2NiwgMC4xNzQ4ODEsIDAuMjIzNTgzLCAwLjI1MzcwNSIsIFwKLSAgICAgICAgICAiMC4xMDYxNDksIDAuMTEyMjU3LCAwLjEzOTM5MSwgMC4xNTk1NTMsIDAuMTg0NzU0LCAwLjIzMzQ3MSwgMC4yNjM1OTUiLCBcCi0gICAgICAgICAgIjAuMTE5Mzk0LCAwLjEyNTUwNywgMC4xNTI2NDksIDAuMTcyNzY5LCAwLjE5ODAwMSwgMC4yNDY3MTcsIDAuMjc2ODQzIiwgXAotICAgICAgICAgICIwLjEzMzEzNiwgMC4xMzkyMzksIDAuMTY2MzU2LCAwLjE4NjQ5NywgMC4yMTE3MjQsIDAuMjYwNDE5LCAwLjI5MDU2OCIsIFwKLSAgICAgICAgICAiMC4xNDY3NywgMC4xNTI5MSwgMC4xODAwMDksIDAuMjAwMTM1LCAwLjIyNTM2OCwgMC4yNzQwNjgsIDAuMzA0MjA5IiwgXAotICAgICAgICAgICIwLjE2ODUzMiwgMC4xNzQ2NzQsIDAuMjAxODIsIDAuMjIxOTg1LCAwLjI0NzIyOCwgMC4yOTU5MiwgMC4zMjYwNjciLCBcCi0gICAgICAgICAgIjAuMTg3MTI0LCAwLjE5MzMzNSwgMC4yMjA2ODcsIDAuMjQwODk2LCAwLjI2NjEyNSwgMC4zMTQ4MzEsIDAuMzQ0OTciKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMTcyMjA3LCAwLjAyMzIyMDcsIDAuMDU3MjIwNywgMC4wODcyMjA3LCAwLjEyNzIyMSwgMC4yMDcyMjEsIDAuMjU3MjIxIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDQzNjQsIDAuMDUxNzAzLCAwLjA5MDgyNCwgMC4xMjQ4NjMsIDAuMTcwOTUyLCAwLjI2NTA3NiwgMC4zMjUwODMiLCBcCi0gICAgICAgICAgIjAuMDQ0MzMsIDAuMDUxODIsIDAuMDkwODAxLCAwLjEyNDg0OCwgMC4xNzA4OTQsIDAuMjY1MDQ1LCAwLjMyNTA1MyIsIFwKLSAgICAgICAgICAiMC4wNDQzMDgsIDAuMDUxNzMyLCAwLjA5MDcxMSwgMC4xMjQ3ODEsIDAuMTcwODYzLCAwLjI2NTAzNCwgMC4zMjUwNDQiLCBcCi0gICAgICAgICAgIjAuMDQ0MjI3LCAwLjA1MTY4NSwgMC4wOTA3NTQsIDAuMTI0NzYzLCAwLjE3MDg3OCwgMC4yNjQ5NDUsIDAuMzI1MDI5IiwgXAotICAgICAgICAgICIwLjA0NDIzMiwgMC4wNTE1OTEsIDAuMDkwNjI2LCAwLjEyNDc0NywgMC4xNzA4NDIsIDAuMjY0OTc5LCAwLjMyNTAzMSIsIFwKLSAgICAgICAgICAiMC4wNDQ4ODMsIDAuMDUyMTg5LCAwLjA5MDk3NSwgMC4xMjQ5MjgsIDAuMTcwOTYzLCAwLjI2NDk5LCAwLjMyNTA0MSIsIFwKLSAgICAgICAgICAiMC4wNDYzMTgsIDAuMDUzNDA5LCAwLjA5MTcxMSwgMC4xMjU1MjIsIDAuMTcxMzcsIDAuMjY1MjEzLCAwLjMyNTE1MyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxNzIxNjIsIDAuMDIzMjE2MiwgMC4wNTcyMTYyLCAwLjA4NzIxNjIsIDAuMTI3MjE2LCAwLjIwNzIxNiwgMC4yNTcyMTYiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExOTc1NSwgMC4xMjU3MDMsIDAuMTUzNTAyLCAwLjE3NTUyOCwgMC4yMDQwMjUsIDAuMjYwMjgyLCAwLjI5NTM0MiIsIFwKLSAgICAgICAgICAiMC4xMzEzNzcsIDAuMTM3MjQzLCAwLjE2NTA2NSwgMC4xODcwOTksIDAuMjE1NTc2LCAwLjI3MTg0NiwgMC4zMDY5MTIiLCBcCi0gICAgICAgICAgIjAuMTQ2MzM2LCAwLjE1MjIzNiwgMC4xODAwMzEsIDAuMjAyMDU1LCAwLjIzMDU0OSwgMC4yODY4MDcsIDAuMzIxODYxIiwgXAotICAgICAgICAgICIwLjE2MTM4MiwgMC4xNjcyODMsIDAuMTk1MDc4LCAwLjIxNzEwOSwgMC4yNDU1OTYsIDAuMzAxODU4LCAwLjMzNjkxMiIsIFwKLSAgICAgICAgICAiMC4xNzYyMSwgMC4xODIwNzgsIDAuMjA5OTE5LCAwLjIzMTk3LCAwLjI2MDQ2MSwgMC4zMTY3MTQsIDAuMzUxNzgyIiwgXAotICAgICAgICAgICIwLjE5OTM1NywgMC4yMDUxNDksIDAuMjMzMDUxLCAwLjI1NTA4NSwgMC4yODM1NTksIDAuMzM5ODE3LCAwLjM3NDg4IiwgXAotICAgICAgICAgICIwLjIxODE0OCwgMC4yMjQwMiwgMC4yNTE4MzEsIDAuMjczODc5LCAwLjMwMjM1NSwgMC4zNTg2MjEsIDAuMzkzNjgyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDE3MjE2MiwgMC4wMjMyMTYyLCAwLjA1NzIxNjIsIDAuMDg3MjE2MiwgMC4xMjcyMTYsIDAuMjA3MjE2LCAwLjI1NzIxNiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM5NTQ4LCAwLjA0NzcxOCwgMC4wOTIyMDYsIDAuMTMxOTMsIDAuMTg1NjA2LCAwLjI5NTQ5OSwgMC4zNjQ0NjgiLCBcCi0gICAgICAgICAgIjAuMDM5NTE2LCAwLjA0NzcxNSwgMC4wOTIxNDksIDAuMTMxODU0LCAwLjE4NTYyMSwgMC4yOTU1MjIsIDAuMzYzNzkyIiwgXAotICAgICAgICAgICIwLjAzOTU3MiwgMC4wNDc3MDksIDAuMDkyMjA0LCAwLjEzMTgyLCAwLjE4NTcwMywgMC4yOTU0NjUsIDAuMzYzODk3IiwgXAotICAgICAgICAgICIwLjAzOTU3MywgMC4wNDc3MDcsIDAuMDkyMjA2LCAwLjEzMTkxLCAwLjE4NTY4MSwgMC4yOTU0MTIsIDAuMzYzODg2IiwgXAotICAgICAgICAgICIwLjAzOTU1OSwgMC4wNDc2NDgsIDAuMDkyMjA5LCAwLjEzMTg1NCwgMC4xODU3NDEsIDAuMjk1NDgzLCAwLjM2Mzc3IiwgXAotICAgICAgICAgICIwLjAzOTU5OSwgMC4wNDc2NTIsIDAuMDkyMjA3LCAwLjEzMTg1MywgMC4xODU4MjgsIDAuMjk1NDUxLCAwLjM2NDg2MSIsIFwKLSAgICAgICAgICAiMC4wMzk1NzYsIDAuMDQ3NywgMC4wOTIxNjgsIDAuMTMxODY0LCAwLjE4NTYzMywgMC4yOTU0NiwgMC4zNjQ4MjEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiT0UiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHRocmVlX3N0YXRlX2Rpc2FibGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wODIwMjksIDAuMDkzNDA5LCAwLjEwODM4MiwgMC4xMjI5NDYsIDAuMTM3NDA0LCAwLjE1OTUyNywgMC4xNzc0MjciKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihzY2FsYXIpIHsKLSAgICAgICAgdmFsdWVzKCIwIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMzg5ODEsIDAuMDUwNDcxLCAwLjA2NTA2MywgMC4wODAyMTYsIDAuMDk0Mjg3LCAwLjExNDkxLCAwLjEzMTMyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oc2NhbGFyKSB7Ci0gICAgICAgIHZhbHVlcygiMCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDE3MjIwNywgMC4wMjMyMjA3LCAwLjA1NzIyMDcsIDAuMDg3MjIwNywgMC4xMjcyMjEsIDAuMjA3MjIxLCAwLjI1NzIyMSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEyNzU0LCAwLjAxMjgxMiwgMC4wMTI5NDQsIDAuMDEyOTgzLCAwLjAxMzAwNiwgMC4wMTMwMjcsIDAuMDEzMDM1IiwgXAotICAgICAgICAgICIwLjAxMjU5MiwgMC4wMTI2NDksIDAuMDEyNzksIDAuMDEyODMyLCAwLjAxMjg1OSwgMC4wMTI4ODEsIDAuMDEyODg4IiwgXAotICAgICAgICAgICIwLjAxMjQ1MSwgMC4wMTI1MDQsIDAuMDEyNjUyLCAwLjAxMjcwNSwgMC4wMTI3NDEsIDAuMDEyNzcyLCAwLjAxMjc4MiIsIFwKLSAgICAgICAgICAiMC4wMTIzNDUsIDAuMDEyMzk4LCAwLjAxMjU1NCwgMC4wMTI2MTQsIDAuMDEyNjU5LCAwLjAxMjcwMSwgMC4wMTI3MTQiLCBcCi0gICAgICAgICAgIjAuMDEyMjcyLCAwLjAxMjMyMiwgMC4wMTI0ODIsIDAuMDEyNTQ4LCAwLjAxMjU5NywgMC4wMTI2NDcsIDAuMDEyNjYyIiwgXAotICAgICAgICAgICIwLjAxMjE4MSwgMC4wMTIyMzMsIDAuMDEyMzk3LCAwLjAxMjQ2OSwgMC4wMTI1MjUsIDAuMDEyNTg0LCAwLjAxMjYwNSIsIFwKLSAgICAgICAgICAiMC4wMTIxMzMsIDAuMDEyMTgzLCAwLjAxMjM1NiwgMC4wMTI0MywgMC4wMTI0ODcsIDAuMDEyNTUyLCAwLjAxMjU3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDE3MjE2MiwgMC4wMjMyMTYyLCAwLjA1NzIxNjIsIDAuMDg3MjE2MiwgMC4xMjcyMTYsIDAuMjA3MjE2LCAwLjI1NzIxNiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE5NzkxLCAwLjAxOTg4NiwgMC4wMjAxMjgsIDAuMDIwMjA3LCAwLjAyMDI2LCAwLjAyMDMwOCwgMC4wMjAzMjMiLCBcCi0gICAgICAgICAgIjAuMDE5Njg2LCAwLjAxOTc3OCwgMC4wMjAwMjQsIDAuMDIwMTA4LCAwLjAyMDE2NCwgMC4wMjAyMTUsIDAuMDIwMjMxIiwgXAotICAgICAgICAgICIwLjAxOTU3NSwgMC4wMTk2NTksIDAuMDE5OTA3LCAwLjAyMDAwMSwgMC4wMjAwNjksIDAuMDIwMTMzLCAwLjAyMDE1NSIsIFwKLSAgICAgICAgICAiMC4wMTk0NzQsIDAuMDE5NTU1LCAwLjAxOTgwOCwgMC4wMTk5MTMsIDAuMDE5OTkyLCAwLjAyMDA3LCAwLjAyMDA5NyIsIFwKLSAgICAgICAgICAiMC4wMTkzOTQsIDAuMDE5NDYzLCAwLjAxOTczMSwgMC4wMTk4NDMsIDAuMDE5OTMsIDAuMDIwMDIsIDAuMDIwMDUxIiwgXAotICAgICAgICAgICIwLjAxOTMyMiwgMC4wMTkzOTEsIDAuMDE5NjQsIDAuMDE5NzU2LCAwLjAxOTg1MSwgMC4wMTk5NTQsIDAuMDE5OTkyIiwgXAotICAgICAgICAgICIwLjAxOTI5OSwgMC4wMTkzNTEsIDAuMDE5NTg1LCAwLjAxOTcwMiwgMC4wMTk4MDEsIDAuMDE5OTA4LCAwLjAxOTk1MyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIk9FIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxNzIyMDcsIDAuMDIzMjIwNywgMC4wNTcyMjA3LCAwLjA4NzIyMDcsIDAuMTI3MjIxLCAwLjIwNzIyMSwgMC4yNTcyMjEiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMTk1NCwgMC4wMTE5NTIsIDAuMDExOTUxLCAwLjAxMTk0OSwgMC4wMTE5NDYsIDAuMDExOTM4LCAwLjAxMTkzMiIsIFwKLSAgICAgICAgICAiMC4wMTE4MzcsIDAuMDExODM3LCAwLjAxMTgzNCwgMC4wMTE4MzIsIDAuMDExODI5LCAwLjAxMTgyMiwgMC4wMTE4MTUiLCBcCi0gICAgICAgICAgIjAuMDExNzYyLCAwLjAxMTc2NCwgMC4wMTE3NTgsIDAuMDExNzU3LCAwLjAxMTc1NSwgMC4wMTE3NDgsIDAuMDExNzQxIiwgXAotICAgICAgICAgICIwLjAxMTcyMSwgMC4wMTE3MTgsIDAuMDExNzE4LCAwLjAxMTcxNCwgMC4wMTE3MSwgMC4wMTE3MDMsIDAuMDExNjk5IiwgXAotICAgICAgICAgICIwLjAxMTY5MiwgMC4wMTE2OTEsIDAuMDExNjg3LCAwLjAxMTY4NSwgMC4wMTE2ODQsIDAuMDExNjc1LCAwLjAxMTY3IiwgXAotICAgICAgICAgICIwLjAxMTY2NCwgMC4wMTE2NjksIDAuMDExNjY1LCAwLjAxMTY2NiwgMC4wMTE2NjUsIDAuMDExNjU3LCAwLjAxMTY1MiIsIFwKLSAgICAgICAgICAiMC4wMTE2NjgsIDAuMDExNjY5LCAwLjAxMTY2OCwgMC4wMTE2NjMsIDAuMDExNjYzLCAwLjAxMTY1NCwgMC4wMTE2NTEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxNzIxNjIsIDAuMDIzMjE2MiwgMC4wNTcyMTYyLCAwLjA4NzIxNjIsIDAuMTI3MjE2LCAwLjIwNzIxNiwgMC4yNTcyMTYiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMDkwNCwgMC4wMTA5MDMsIDAuMDEwOTAzLCAwLjAxMDkwMywgMC4wMTA5MDQsIDAuMDEwOTAzLCAwLjAxMDkwNCIsIFwKLSAgICAgICAgICAiMC4wMTA4NzQsIDAuMDEwODc1LCAwLjAxMDg3NSwgMC4wMTA4NzUsIDAuMDEwODc0LCAwLjAxMDg3NCwgMC4wMTA4NzUiLCBcCi0gICAgICAgICAgIjAuMDEwODQ5LCAwLjAxMDg0OCwgMC4wMTA4NDksIDAuMDEwODQ5LCAwLjAxMDg0OCwgMC4wMTA4NDksIDAuMDEwODQ4IiwgXAotICAgICAgICAgICIwLjAxMDgyOCwgMC4wMTA4MjgsIDAuMDEwODI4LCAwLjAxMDgyOCwgMC4wMTA4MjgsIDAuMDEwODI4LCAwLjAxMDgyOCIsIFwKLSAgICAgICAgICAiMC4wMTA4MSwgMC4wMTA4MSwgMC4wMTA4MSwgMC4wMTA4MSwgMC4wMTA4MDksIDAuMDEwODEsIDAuMDEwODA5IiwgXAotICAgICAgICAgICIwLjAxMDc5OSwgMC4wMTA4LCAwLjAxMDc5OSwgMC4wMTA4LCAwLjAxMDc5OSwgMC4wMTA3OTksIDAuMDEwNzk5IiwgXAotICAgICAgICAgICIwLjAxMDc4OSwgMC4wMTA3OSwgMC4wMTA3OTEsIDAuMDEwNzkxLCAwLjAxMDc5MiwgMC4wMTA3OTEsIDAuMDEwNzkxIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogVEJVRlgyMCAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChUQlVGWDIwKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDEuMjgyMzM7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwODU0MDIzOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwODUyMjg7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDA4NTQwMjM7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyOTQ1LCAwLjAwMjk5NywgMC4wMDMwMDcsIDAuMDAzMDExLCAwLjAwMzAxNCwgMC4wMDMwMTcsIDAuMDAzMDE4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzMTE2LCAwLjAwMzA4OCwgMC4wMDMwODQsIDAuMDAzMDgzLCAwLjAwMzA4NCwgMC4wMDMwODQsIDAuMDAzMDg0Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihPRSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDA1MjczNTM7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDA1MjY5NDc7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDA1MjczNTM7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHNjYWxhcikgewotICAgICAgICB2YWx1ZXMoIjAiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMTM5NywgMC4wMTM4NTQsIDAuMDEzNzUzLCAwLjAxMzY2NiwgMC4wMTM2MDUsIDAuMDEzNTQsIDAuMDEzNTIzIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAxMTcxNDc7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDExNzE0NzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMTE3MDc1OwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDIuNzE5NTg7Ci0gICAgZnVuY3Rpb24gOiAiQSI7Ci0gICAgdGhyZWVfc3RhdGUgOiAiKCFPRSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDIxNzE0NywgMC4wNzE3MTQ3LCAwLjExMTcxNSwgMC4xNjE3MTUsIDAuMjExNzE1LCAwLjI2MTcxNSwgMC4zMTE3MTUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5MzMwOSwgMC4xMjA5NzEsIDAuMTM4NDUxLCAwLjE1ODQ0OCwgMC4xNzc2NTgsIDAuMTk2NTMyLCAwLjIxNTE5NyIsIFwKLSAgICAgICAgICAiMC4xMDQ0NTcsIDAuMTMyMTY0LCAwLjE0OTYwNiwgMC4xNjk2MDUsIDAuMTg4ODMsIDAuMjA3NjgsIDAuMjI2Mzc3IiwgXAotICAgICAgICAgICIwLjExNzgyLCAwLjE0NTQ5NiwgMC4xNjI5NjMsIDAuMTgyOTY2LCAwLjIwMjIwOSwgMC4yMjEwNzcsIDAuMjM5NzQ3IiwgXAotICAgICAgICAgICIwLjEzMTA2MSwgMC4xNTg3NzYsIDAuMTc2MjQ5LCAwLjE5NjI5NSwgMC4yMTU1MiwgMC4yMzQzNzgsIDAuMjUzMDc3IiwgXAotICAgICAgICAgICIwLjE0NDI3OCwgMC4xNzIwMTMsIDAuMTg5NDg1LCAwLjIwOTUzNSwgMC4yMjg3NzgsIDAuMjQ3NjM3LCAwLjI2NjM1OSIsIFwKLSAgICAgICAgICAiMC4xNjUyMDgsIDAuMTkyOTkxLCAwLjIxMDQ1NSwgMC4yMzA1NCwgMC4yNDk3OTQsIDAuMjY4NjUxLCAwLjI4NzM2NiIsIFwKLSAgICAgICAgICAiMC4xODI3ODcsIDAuMjEwODI4LCAwLjIyODMyNCwgMC4yNDg0MTksIDAuMjY3NzAyLCAwLjI4NjU3MywgMC4zMDUyOTMiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMjE3MTQ3LCAwLjA3MTcxNDcsIDAuMTExNzE1LCAwLjE2MTcxNSwgMC4yMTE3MTUsIDAuMjYxNzE1LCAwLjMxMTcxNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM2ODE1LCAwLjA3NDQxNiwgMC4xMDI3NzYsIDAuMTM4MzAzLCAwLjE3NDEyNiwgMC4yMTAzNjEsIDAuMjQ2OTU1IiwgXAotICAgICAgICAgICIwLjAzNjgwMywgMC4wNzQ0NTIsIDAuMTAyNzMxLCAwLjEzODI3OCwgMC4xNzQwNjksIDAuMjEwMzg3LCAwLjI0NjkxMiIsIFwKLSAgICAgICAgICAiMC4wMzY4NjksIDAuMDc0NTM2LCAwLjEwMjc1MywgMC4xMzgyMDEsIDAuMTc0MDk2LCAwLjIxMDM1LCAwLjI0Njk0NiIsIFwKLSAgICAgICAgICAiMC4wMzcwMjgsIDAuMDc0NTI4LCAwLjEwMjg1NiwgMC4xMzgzMTgsIDAuMTc0MDgxLCAwLjIxMDQsIDAuMjQ2OTI3IiwgXAotICAgICAgICAgICIwLjAzNzE1MSwgMC4wNzQ1ODIsIDAuMTAyODg3LCAwLjEzODMzOCwgMC4xNzQwOSwgMC4yMTA0MDYsIDAuMjQ2ODk0IiwgXAotICAgICAgICAgICIwLjAzNzU4MSwgMC4wNzQ4MTgsIDAuMTAzMDMyLCAwLjEzODM2NCwgMC4xNzQyODgsIDAuMjEwNDIsIDAuMjQ2OTcyIiwgXAotICAgICAgICAgICIwLjAzODUxOSwgMC4wNzU0MTEsIDAuMTAzNDk2LCAwLjEzODc2OSwgMC4xNzQ1NzcsIDAuMjEwNTgyLCAwLjI0NzA3MyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAyMTcwNzUsIDAuMDcxNzA3NSwgMC4xMTE3MDgsIDAuMTYxNzA4LCAwLjIxMTcwOCwgMC4yNjE3MDcsIDAuMzExNzA3Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzY2MiwgMC4xMDQxNjEsIDAuMTIyNjQzLCAwLjE0NDU3OSwgMC4xNjYwODIsIDAuMTg3NDEyLCAwLjIwODY3NiIsIFwKLSAgICAgICAgICAiMC4wODc2ODcsIDAuMTE1MjA0LCAwLjEzMzcwNCwgMC4xNTU2NDUsIDAuMTc3MTUxLCAwLjE5ODQ4MywgMC4yMTk3NSIsIFwKLSAgICAgICAgICAiMC4xMDAxMjEsIDAuMTI3NjIsIDAuMTQ2MTI1LCAwLjE2ODExMywgMC4xODk2MjIsIDAuMjEwOTUzLCAwLjIzMjIyOCIsIFwKLSAgICAgICAgICAiMC4xMTE5NDcsIDAuMTM5NDcxLCAwLjE1Nzk1OSwgMC4xNzk5NzEsIDAuMjAxNDksIDAuMjIyODQ1LCAwLjI0NDExNyIsIFwKLSAgICAgICAgICAiMC4xMjM1NDIsIDAuMTUxMTI5LCAwLjE2OTY2MywgMC4xOTE2OTQsIDAuMjEzMjEyLCAwLjIzNDU2NCwgMC4yNTU4NTIiLCBcCi0gICAgICAgICAgIjAuMTQxMDkxLCAwLjE2OTAxNCwgMC4xODc1NjIsIDAuMjA5NjYxLCAwLjIzMTIxNSwgMC4yNTI1OCwgMC4yNzM4NjkiLCBcCi0gICAgICAgICAgIjAuMTU1MTksIDAuMTgzNjg4LCAwLjIwMjQyNCwgMC4yMjQ1MTQsIDAuMjQ2MDgxLCAwLjI2NzQ2NywgMC4yODg3NTciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMjE3MDc1LCAwLjA3MTcwNzUsIDAuMTExNzA4LCAwLjE2MTcwOCwgMC4yMTE3MDgsIDAuMjYxNzA3LCAwLjMxMTcwNyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDMxODUyLCAwLjA3MzEyNiwgMC4xMDUyNTcsIDAuMTQ1NzU1LCAwLjE4NjcwOCwgMC4yMjgxODMsIDAuMjY5ODg5IiwgXAotICAgICAgICAgICIwLjAzMTg5OSwgMC4wNzMxNjQsIDAuMTA1MjY4LCAwLjE0NTc2MywgMC4xODY4OSwgMC4yMjgxNywgMC4yNjk4NzgiLCBcCi0gICAgICAgICAgIjAuMDMyMDE2LCAwLjA3MzE3MywgMC4xMDUzMjcsIDAuMTQ1NzkyLCAwLjE4Njg4MywgMC4yMjgxMzEsIDAuMjY5ODkyIiwgXAotICAgICAgICAgICIwLjAzMjE0NSwgMC4wNzMyNDQsIDAuMTA1MzAyLCAwLjE0NTgxNiwgMC4xODY5OCwgMC4yMjgwMzgsIDAuMjY5ODk4IiwgXAotICAgICAgICAgICIwLjAzMjYzMywgMC4wNzM1MTQsIDAuMTA1NTAxLCAwLjE0NTkyNiwgMC4xODcwMjcsIDAuMjI4MTgxLCAwLjI2OTkxMiIsIFwKLSAgICAgICAgICAiMC4wMzQwMTMsIDAuMDc0Mjc1LCAwLjEwNjE3MywgMC4xNDYzMzIsIDAuMTg3MTQ4LCAwLjIyODMyNSwgMC4yNjk5NCIsIFwKLSAgICAgICAgICAiMC4wMzU0OTIsIDAuMDc1MzgyLCAwLjEwNjk4NCwgMC4xNDcwNDEsIDAuMTg3NjYxLCAwLjIyODc0MSwgMC4yNzAyMTEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiT0UiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHRocmVlX3N0YXRlX2VuYWJsZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMjE3MTQ3LCAwLjA3MTcxNDcsIDAuMTExNzE1LCAwLjE2MTcxNSwgMC4yMTE3MTUsIDAuMjYxNzE1LCAwLjMxMTcxNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg3NTgyLCAwLjExNTM0MiwgMC4xMzI3MTQsIDAuMTUyNzcxLCAwLjE3MTk0NywgMC4xOTA4MjksIDAuMjA5NTUxIiwgXAotICAgICAgICAgICIwLjA5NzY1LCAwLjEyNTMxLCAwLjE0Mjc0NCwgMC4xNjI4MDEsIDAuMTgxOTg0LCAwLjIwMDg2LCAwLjIxOTU2NSIsIFwKLSAgICAgICAgICAiMC4xMTA4NzYsIDAuMTM4NTY2LCAwLjE1NTk3LCAwLjE3NjAyNiwgMC4xOTUyMDQsIDAuMjE0MDgyLCAwLjIzMjc1IiwgXAotICAgICAgICAgICIwLjEyNDMwOCwgMC4xNTE5OTMsIDAuMTY5NDA2LCAwLjE4OTQ2NCwgMC4yMDg2NDYsIDAuMjI3NTIsIDAuMjQ2MjIiLCBcCi0gICAgICAgICAgIjAuMTM3OTQsIDAuMTY1NjQ4LCAwLjE4MzA0NiwgMC4yMDMwOTMsIDAuMjIyMzA4LCAwLjI0MTE1MiwgMC4yNTk4NTMiLCBcCi0gICAgICAgICAgIjAuMTU5NDc4LCAwLjE4NzMyNiwgMC4yMDQ3OCwgMC4yMjQ4MTksIDAuMjQ0MDQ1LCAwLjI2Mjg4NiwgMC4yODE1ODciLCBcCi0gICAgICAgICAgIjAuMTc3NTQzLCAwLjIwNTY5OSwgMC4yMjMyMDgsIDAuMjQzMzI1LCAwLjI2MjUyNCwgMC4yODE0MTIsIDAuMzAwMDcyIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDIxNzE0NywgMC4wNzE3MTQ3LCAwLjExMTcxNSwgMC4xNjE3MTUsIDAuMjExNzE1LCAwLjI2MTcxNSwgMC4zMTE3MTUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzODQxNCwgMC4wNzU0MDUsIDAuMTAzNTU5LCAwLjEzODg3MywgMC4xNzQ2MTIsIDAuMjEwNzU4LCAwLjI0NzAyMyIsIFwKLSAgICAgICAgICAiMC4wMzgzMzMsIDAuMDc1NDQ2LCAwLjEwMzUyOSwgMC4xMzg4NzYsIDAuMTc0NjE2LCAwLjIxMDc2MiwgMC4yNDcxNTYiLCBcCi0gICAgICAgICAgIjAuMDM4MzI1LCAwLjA3NTQ1OCwgMC4xMDMzMzQsIDAuMTM4ODY0LCAwLjE3NDYwOSwgMC4yMTA3NTUsIDAuMjQ3MTM4IiwgXAotICAgICAgICAgICIwLjAzODM1NCwgMC4wNzU0MTgsIDAuMTAzNDgyLCAwLjEzODg2MSwgMC4xNzQ2MDgsIDAuMjEwNzU0LCAwLjI0NzEzNyIsIFwKLSAgICAgICAgICAiMC4wMzg0ODMsIDAuMDc1NDYzLCAwLjEwMzU0MywgMC4xMzg4MTMsIDAuMTc0NjM1LCAwLjIxMDYzMywgMC4yNDcxMzgiLCBcCi0gICAgICAgICAgIjAuMDM5MTU1LCAwLjA3NTg3MSwgMC4xMDM4MzksIDAuMTM5MDY4LCAwLjE3NDc5NiwgMC4yMTA4MTUsIDAuMjQ3MzE4IiwgXAotICAgICAgICAgICIwLjA0MDkwOSwgMC4wNzY3NjYsIDAuMTA0NTc2LCAwLjEzOTU4NCwgMC4xNzUwODksIDAuMjExMTksIDAuMjQ3NTQ3Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDIxNzA3NSwgMC4wNzE3MDc1LCAwLjExMTcwOCwgMC4xNjE3MDgsIDAuMjExNzA4LCAwLjI2MTcwNywgMC4zMTE3MDciKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwMjY0NSwgMC4xMzAxNTgsIDAuMTQ4NTc0LCAwLjE3MDU0OCwgMC4xOTIwMjIsIDAuMjEzMzI2LCAwLjIzNDU4MiIsIFwKLSAgICAgICAgICAiMC4xMTQyMTQsIDAuMTQxNzc0LCAwLjE2MDE2NSwgMC4xODIxMTgsIDAuMjAzNTg5LCAwLjIyNDkwOSwgMC4yNDYxNTkiLCBcCi0gICAgICAgICAgIjAuMTI5MTY3LCAwLjE1NjYzLCAwLjE3NTA5NiwgMC4xOTcwMTUsIDAuMjE4NTEzLCAwLjIzOTgyOSwgMC4yNjEwODIiLCBcCi0gICAgICAgICAgIjAuMTQzODQxLCAwLjE3MTM1NCwgMC4xODk3NzcsIDAuMjExNzIzLCAwLjIzMzE4OCwgMC4yNTQ1MTEsIDAuMjc1NzcyIiwgXAotICAgICAgICAgICIwLjE1ODI0NiwgMC4xODU4MDMsIDAuMjA0MjE3LCAwLjIyNjE2NywgMC4yNDc2MzMsIDAuMjY4OTU0LCAwLjI5MDIxMSIsIFwKLSAgICAgICAgICAiMC4xNzk2MiwgMC4yMDcxMjksIDAuMjI1NTQ2LCAwLjI0NzQ4NiwgMC4yNjg5NSwgMC4yOTAyNjYsIDAuMzExNTE1IiwgXAotICAgICAgICAgICIwLjE5NjI2OSwgMC4yMjM4MTYsIDAuMjQyMjU1LCAwLjI2NDIxLCAwLjI4NTY3OCwgMC4zMDY5OTcsIDAuMzI4MjQ1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDIxNzA3NSwgMC4wNzE3MDc1LCAwLjExMTcwOCwgMC4xNjE3MDgsIDAuMjExNzA4LCAwLjI2MTcwNywgMC4zMTE3MDciKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzMzkxLCAwLjA3NDQ0LCAwLjEwNjIwNCwgMC4xNDY0NCwgMC4xODc0MDEsIDAuMjI4NDE4LCAwLjI3MDA4IiwgXAotICAgICAgICAgICIwLjAzMzg4MywgMC4wNzQ0NDksIDAuMTA2MjI2LCAwLjE0NjQzOSwgMC4xODcyMTIsIDAuMjI4NDg0LCAwLjI3MDE3NiIsIFwKLSAgICAgICAgICAiMC4wMzM5MTMsIDAuMDc0NDI3LCAwLjEwNjE5NywgMC4xNDY0OTksIDAuMTg3MzkxLCAwLjIyODQzMiwgMC4yNyIsIFwKLSAgICAgICAgICAiMC4wMzM5MDQsIDAuMDc0NDQzLCAwLjEwNjEzLCAwLjE0NjQ0MywgMC4xODcyMjQsIDAuMjI4NDc4LCAwLjI3MDAxNyIsIFwKLSAgICAgICAgICAiMC4wMzM4NzEsIDAuMDc0NDM3LCAwLjEwNjE2MSwgMC4xNDY0NDUsIDAuMTg3MjIsIDAuMjI4NDYxLCAwLjI3MDAxMiIsIFwKLSAgICAgICAgICAiMC4wMzM4NDQsIDAuMDc0NDE0LCAwLjEwNjE2MSwgMC4xNDY0MTMsIDAuMTg3NDM2LCAwLjIyODQyOCwgMC4yNzAwMDMiLCBcCi0gICAgICAgICAgIjAuMDM0MjQxLCAwLjA3NDU3OCwgMC4xMDYyOTYsIDAuMTQ2NTM2LCAwLjE4NzQxOSwgMC4yMjg0OTUsIDAuMjcwMTczIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIk9FIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiB0aHJlZV9zdGF0ZV9kaXNhYmxlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDcwMDYsIDAuMDgxMzU1LCAwLjA5NjMzNSwgMC4xMTA4MTYsIDAuMTI0NTA5LCAwLjE0NDM3OSwgMC4xNjAxMjgiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihzY2FsYXIpIHsKLSAgICAgICAgdmFsdWVzKCIwIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMzg0NDgsIDAuMDUwMTcxLCAwLjA2NDgzMiwgMC4wNzk1NDYsIDAuMDkzODEsIDAuMTEzNTAyLCAwLjEyOTM5MyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKHNjYWxhcikgewotICAgICAgICB2YWx1ZXMoIjAiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAyMTcxNDcsIDAuMDcxNzE0NywgMC4xMTE3MTUsIDAuMTYxNzE1LCAwLjIxMTcxNSwgMC4yNjE3MTUsIDAuMzExNzE1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjAzNTYsIDAuMDIwNzA3LCAwLjAyMDc4OCwgMC4wMjA4MzYsIDAuMDIwODYsIDAuMDIwODc3LCAwLjAyMDg4OCIsIFwKLSAgICAgICAgICAiMC4wMjAwNzksIDAuMDIwNDM3LCAwLjAyMDUyNiwgMC4wMjA1OCwgMC4wMjA2MSwgMC4wMjA2MjYsIDAuMDIwNjM5IiwgXAotICAgICAgICAgICIwLjAxOTg1NCwgMC4wMjAyMDIsIDAuMDIwMzA4LCAwLjAyMDM3OCwgMC4wMjA0MTcsIDAuMDIwNDQxLCAwLjAyMDQ1OSIsIFwKLSAgICAgICAgICAiMC4wMTk2NzUsIDAuMDIwMDI3LCAwLjAyMDE0NCwgMC4wMjAyMjcsIDAuMDIwMjc3LCAwLjAyMDMwOSwgMC4wMjAzMzEiLCBcCi0gICAgICAgICAgIjAuMDE5NTQ4LCAwLjAxOTkwNiwgMC4wMjAwMzEsIDAuMDIwMTIzLCAwLjAyMDE4MSwgMC4wMjAyMTksIDAuMDIwMjQ3IiwgXAotICAgICAgICAgICIwLjAxOTQwOCwgMC4wMTk3NjYsIDAuMDE5OSwgMC4wMiwgMC4wMjAwNjcsIDAuMDIwMTEyLCAwLjAyMDE0NSIsIFwKLSAgICAgICAgICAiMC4wMTkzMzcsIDAuMDE5Njk0LCAwLjAxOTgyLCAwLjAxOTkyOSwgMC4wMiwgMC4wMjAwNTEsIDAuMDIwMDg4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMjE3MDc1LCAwLjA3MTcwNzUsIDAuMTExNzA4LCAwLjE2MTcwOCwgMC4yMTE3MDgsIDAuMjYxNzA3LCAwLjMxMTcwNyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDMxNzA4LCAwLjAzMjI5OCwgMC4wMzI0NTUsIDAuMDMyNTU2LCAwLjAzMjYxMywgMC4wMzI2NDksIDAuMDMyNjc0IiwgXAotICAgICAgICAgICIwLjAzMTUyOCwgMC4wMzIxMTEsIDAuMDMyMjc4LCAwLjAzMjM4NiwgMC4wMzI0NDcsIDAuMDMyNDg2LCAwLjAzMjUxNCIsIFwKLSAgICAgICAgICAiMC4wMzEzNDYsIDAuMDMxOTA0LCAwLjAzMjA4NywgMC4wMzIyMTQsIDAuMDMyMjg5LCAwLjAzMjMzNywgMC4wMzIzNzMiLCBcCi0gICAgICAgICAgIjAuMDMxMTgsIDAuMDMxNzI4LCAwLjAzMTkyNSwgMC4wMzIwNjgsIDAuMDMyMTU4LCAwLjAzMjIxOCwgMC4wMzIyNjIiLCBcCi0gICAgICAgICAgIjAuMDMxMDUxLCAwLjAzMTU5OSwgMC4wMzE4MDcsIDAuMDMxOTYzLCAwLjAzMjA2MywgMC4wMzIxMzEsIDAuMDMyMTgyIiwgXAotICAgICAgICAgICIwLjAzMDkyLCAwLjAzMTQ0NSwgMC4wMzE2NjgsIDAuMDMxODIyLCAwLjAzMTkzMywgMC4wMzIwMTIsIDAuMDMyMDciLCBcCi0gICAgICAgICAgIjAuMDMwODk4LCAwLjAzMTMzOSwgMC4wMzE1NTMsIDAuMDMxNzM0LCAwLjAzMTgzMywgMC4wMzE5MzMsIDAuMDMxOTc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiT0UiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDIxNzE0NywgMC4wNzE3MTQ3LCAwLjExMTcxNSwgMC4xNjE3MTUsIDAuMjExNzE1LCAwLjI2MTcxNSwgMC4zMTE3MTUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxOTI3OSwgMC4wMTkyNzcsIDAuMDE5Mjc0LCAwLjAxOTI3LCAwLjAxOTI2NywgMC4wMTkyNjYsIDAuMDE5MjY0IiwgXAotICAgICAgICAgICIwLjAxOTA3LCAwLjAxOTA3LCAwLjAxOTA2OCwgMC4wMTkwNjMsIDAuMDE5MDYsIDAuMDE5MDU5LCAwLjAxOTA1NCIsIFwKLSAgICAgICAgICAiMC4wMTg5NDMsIDAuMDE4OTM4LCAwLjAxODkzOSwgMC4wMTg5MzQsIDAuMDE4OTMxLCAwLjAxODkzLCAwLjAxODkyNiIsIFwKLSAgICAgICAgICAiMC4wMTg4NjksIDAuMDE4ODY5LCAwLjAxODg2NCwgMC4wMTg4NjIsIDAuMDE4ODU5LCAwLjAxODg1OSwgMC4wMTg4NTciLCBcCi0gICAgICAgICAgIjAuMDE4ODI1LCAwLjAxODgzLCAwLjAxODgyNywgMC4wMTg4MjYsIDAuMDE4ODIzLCAwLjAxODgyMiwgMC4wMTg4MTkiLCBcCi0gICAgICAgICAgIjAuMDE4NzkxLCAwLjAxODgwMywgMC4wMTg4MDIsIDAuMDE4ODAyLCAwLjAxODgwMSwgMC4wMTg3OTgsIDAuMDE4Nzk0IiwgXAotICAgICAgICAgICIwLjAxODgxNSwgMC4wMTg4MTQsIDAuMDE4ODE2LCAwLjAxODgxMiwgMC4wMTg4MSwgMC4wMTg4MTEsIDAuMDE4ODA3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMjE3MDc1LCAwLjA3MTcwNzUsIDAuMTExNzA4LCAwLjE2MTcwOCwgMC4yMTE3MDgsIDAuMjYxNzA3LCAwLjMxMTcwNyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE3OTE5LCAwLjAxNzkxOCwgMC4wMTc5MTgsIDAuMDE3OTE5LCAwLjAxNzkxOSwgMC4wMTc5MTgsIDAuMDE3OTE5IiwgXAotICAgICAgICAgICIwLjAxNzg0OCwgMC4wMTc4NDcsIDAuMDE3ODQ4LCAwLjAxNzg0OCwgMC4wMTc4NDgsIDAuMDE3ODQ4LCAwLjAxNzg0OCIsIFwKLSAgICAgICAgICAiMC4wMTc3ODcsIDAuMDE3Nzg4LCAwLjAxNzc4OCwgMC4wMTc3ODYsIDAuMDE3Nzg4LCAwLjAxNzc4NywgMC4wMTc3ODgiLCBcCi0gICAgICAgICAgIjAuMDE3NzQxLCAwLjAxNzc0LCAwLjAxNzczOSwgMC4wMTc3MzksIDAuMDE3NzM4LCAwLjAxNzczOCwgMC4wMTc3MzkiLCBcCi0gICAgICAgICAgIjAuMDE3NzE5LCAwLjAxNzcxNywgMC4wMTc3MTcsIDAuMDE3NzE4LCAwLjAxNzcxNywgMC4wMTc3MTcsIDAuMDE3NzE3IiwgXAotICAgICAgICAgICIwLjAxNzcwMSwgMC4wMTc3LCAwLjAxNzcwMiwgMC4wMTc3MDEsIDAuMDE3NywgMC4wMTc3MDEsIDAuMDE3NzAxIiwgXAotICAgICAgICAgICIwLjAxNzY3NywgMC4wMTc2OTYsIDAuMDE3NywgMC4wMTc3MDEsIDAuMDE3NzA0LCAwLjAxNzcwMywgMC4wMTc3MDQiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IFRCVUZYNCAqCi0gKiAtLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKFRCVUZYNCkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjI2MDQxOTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxODk0Mjk7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxODg5OTg7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxODk0Mjk7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNTg4LCAwLjAwMDYsIDAuMDAwNjAzLCAwLjAwMDYwNCwgMC4wMDA2MDQsIDAuMDAwNjA1LCAwLjAwMDYwNSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDYyNiwgMC4wMDA2MTksIDAuMDAwNjE5LCAwLjAwMDYxOSwgMC4wMDA2MTksIDAuMDAwNjE4LCAwLjAwMDYxOCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oT0UpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTMxNjU4OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTMxNTM0OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTMxNjU4OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihzY2FsYXIpIHsKLSAgICAgICAgdmFsdWVzKCIwIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzNTExLCAwLjAwMzQ4NiwgMC4wMDM0NiwgMC4wMDM0MzksIDAuMDAzNDI0LCAwLjAwMzQwNiwgMC4wMDMzOTkiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAyMzcyMTY7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAyMzcyMTY7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAyMzcwODsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjUyMzAyNDsKLSAgICBmdW5jdGlvbiA6ICJBIjsKLSAgICB0aHJlZV9zdGF0ZSA6ICIoIU9FKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMTIzNzIyLCAwLjA4MjM3MjIsIDAuMTUyMzcyLCAwLjIwMjM3MiwgMC4yODIzNzIsIDAuMzUyMzcyLCAwLjQ1MjM3MiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTE3NDMsIDAuMjUwMzM3LCAwLjM3NjkzMiwgMC40NjcyOTQsIDAuNjExODg0LCAwLjczODM3OCwgMC45MTkxNDUiLCBcCi0gICAgICAgICAgIjAuMTI4NTQ3LCAwLjI2MTQ2OCwgMC4zODgwOCwgMC40Nzg1MTcsIDAuNjIzMTI4LCAwLjc0OTUwOCwgMC45MzAyMjQiLCBcCi0gICAgICAgICAgIjAuMTQxNzg5LCAwLjI3NDc1LCAwLjQwMTM2NCwgMC40OTE4MDcsIDAuNjM2MzMyLCAwLjc2Mjc5MiwgMC45NDM0OTkiLCBcCi0gICAgICAgICAgIjAuMTU1MDA3LCAwLjI4ODA3MSwgMC40MTQ2ODcsIDAuNTA1MDg5LCAwLjY0OTY0MywgMC43NzYxMTYsIDAuOTU2Nzk2IiwgXAotICAgICAgICAgICIwLjE2ODIzOSwgMC4zMDEzMDksIDAuNDI3OTQ4LCAwLjUxODM5MSwgMC42NjI5MjIsIDAuNzg5Mzg0LCAwLjk3MDExMiIsIFwKLSAgICAgICAgICAiMC4xODkxNDUsIDAuMzIyMjY1LCAwLjQ0ODkxMiwgMC41MzkzNTksIDAuNjgzODkxLCAwLjgxMDM1NCwgMC45OTEwODYiLCBcCi0gICAgICAgICAgIjAuMjA3MDg3LCAwLjM0MDMwMiwgMC40NjY5NCwgMC41NTczOTMsIDAuNzAxOTIzLCAwLjgyODM5MSwgMS4wMDkyMSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxMjM3MjIsIDAuMDgyMzcyMiwgMC4xNTIzNzIsIDAuMjAyMzcyLCAwLjI4MjM3MiwgMC4zNTIzNzIsIDAuNDUyMzcyIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjYwODUsIDAuMzEyNzc3LCAwLjU2NjY2LCAwLjc1MTI4NCwgMS4wNDU3NSwgMS4zMDEyNywgMS42NzIzOSIsIFwKLSAgICAgICAgICAiMC4wNjYwNTMsIDAuMzEyNzg4LCAwLjU2Njk1OCwgMC43NDk1MTQsIDEuMDQzLCAxLjMwMzI0LCAxLjY2Nzg1IiwgXAotICAgICAgICAgICIwLjA2NjEyNSwgMC4zMTI3NywgMC41NjY5NjQsIDAuNzQ5NTExLCAxLjA0NTcxLCAxLjMwMzEzLCAxLjY2OTAyIiwgXAotICAgICAgICAgICIwLjA2NjE0OCwgMC4zMTI3MzcsIDAuNTY3ODM4LCAwLjc1MTQ4NCwgMS4wNDU2NywgMS4zMDMyNSwgMS42Njg3NiIsIFwKLSAgICAgICAgICAiMC4wNjYxMjgsIDAuMzEyNzYzLCAwLjU2Njk2OSwgMC43NDk1MTYsIDEuMDQ1NjgsIDEuMzAzMTEsIDEuNjY4MjEiLCBcCi0gICAgICAgICAgIjAuMDY2MzUxLCAwLjMxMjc5LCAwLjU2Njk3MywgMC43NDk1MiwgMS4wNDU2NywgMS4zMDMxLCAxLjY2ODE1IiwgXAotICAgICAgICAgICIwLjA2NzAyMiwgMC4zMTI4MSwgMC41NjY5NTIsIDAuNzQ5NTMyLCAxLjA0NTY2LCAxLjMwMjQzLCAxLjY2NzYyIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEyMzcwOCwgMC4wODIzNzA4LCAwLjE1MjM3MSwgMC4yMDIzNzEsIDAuMjgyMzcxLCAwLjM1MjM3MSwgMC40NTIzNzEiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5NzY3NCwgMC4yNDY2NjksIDAuMzkyNDAyLCAwLjQ5NjQwOSwgMC42NjI4NDMsIDAuODA4NDM3LCAxLjAxNjUxIiwgXAotICAgICAgICAgICIwLjEwODY4OSwgMC4yNTc3MTMsIDAuNDAzNDI1LCAwLjUwNzQ0MSwgMC42NzM4NywgMC44MTk1MTYsIDEuMDI3NTQiLCBcCi0gICAgICAgICAgIjAuMTIxMTcxLCAwLjI3MDI0MSwgMC40MTU5NDEsIDAuNTE5OTg0LCAwLjY4NjQyOCwgMC44MzIwNTMsIDEuMDQwMiIsIFwKLSAgICAgICAgICAiMC4xMzMyMTcsIDAuMjgyMzU4LCAwLjQyODA3NiwgMC41MzIxNDIsIDAuNjk4NTUyLCAwLjg0NDE4NiwgMS4wNTIyMSIsIFwKLSAgICAgICAgICAiMC4xNDQ5MjUsIDAuMjk0MTMyLCAwLjQzOTg4NywgMC41NDM5MjgsIDAuNzEwMzM4LCAwLjg1NjAwNCwgMS4wNjQiLCBcCi0gICAgICAgICAgIjAuMTYzMzAxLCAwLjMxMjY0MywgMC40NTg0MzQsIDAuNTYyNDY0LCAwLjcyODg4MiwgMC44NzQ1NDMsIDEuMDgyNTkiLCBcCi0gICAgICAgICAgIjAuMTc4MjY1LCAwLjMyNzg0NSwgMC40NzM1OTcsIDAuNTc3NjUsIDAuNzQ0MDc5LCAwLjg4OTcxNiwgMS4wOTc3NCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxMjM3MDgsIDAuMDgyMzcwOCwgMC4xNTIzNzEsIDAuMjAyMzcxLCAwLjI4MjM3MSwgMC4zNTIzNzEsIDAuNDUyMzcxIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjM2OTgsIDAuMzQ2NzI5LCAwLjYzNjI5LCAwLjg0MTkxNSwgMS4xNzQzOCwgMS40NjYyNywgMS44ODA0NiIsIFwKLSAgICAgICAgICAiMC4wNjM2NjgsIDAuMzQ2NzM1LCAwLjYzNjMwNCwgMC44NDM0NjYsIDEuMTczMDEsIDEuNDYyODIsIDEuODc2NTYiLCBcCi0gICAgICAgICAgIjAuMDYzNzA1LCAwLjM0NTc0NiwgMC42MzQ2NDgsIDAuODQzNDU1LCAxLjE3MzQ5LCAxLjQ2NTc4LCAxLjg3ODcyIiwgXAotICAgICAgICAgICIwLjA2MzgxMiwgMC4zNDY3NzQsIDAuNjM1MzUsIDAuODQyOTk1LCAxLjE3MzE4LCAxLjQ2NTE0LCAxLjg4MDM2IiwgXAotICAgICAgICAgICIwLjA2NDEwMywgMC4zNDU2OTksIDAuNjM1OTY2LCAwLjg0Mjg1MSwgMS4xNzMyLCAxLjQ2NTEyLCAxLjg4MDIxIiwgXAotICAgICAgICAgICIwLjA2NDg4MSwgMC4zNDYwNzcsIDAuNjM0Njc1LCAwLjg0Mjc5NiwgMS4xNzMsIDEuNDY1MDcsIDEuODc5MjUiLCBcCi0gICAgICAgICAgIjAuMDY2MjM5LCAwLjM0NzAxMiwgMC42MzU5NzYsIDAuODQxODg0LCAxLjE3NTI3LCAxLjQ2MzI2LCAxLjg3NzcyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIk9FIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiB0aHJlZV9zdGF0ZV9lbmFibGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEyMzcyMiwgMC4wODIzNzIyLCAwLjE1MjM3MiwgMC4yMDIzNzIsIDAuMjgyMzcyLCAwLjM1MjM3MiwgMC40NTIzNzIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExMjI2NSwgMC4yNDUxOTQsIDAuMzcxODEsIDAuNDYyMjUxLCAwLjYwNjc4NiwgMC43MzMyNDEsIDAuOTEzOTQ3IiwgXAotICAgICAgICAgICIwLjEyMjIxLCAwLjI1NTE2NiwgMC4zODE3ODEsIDAuNDcyMjI3LCAwLjYxNjc2MSwgMC43NDMyMSwgMC45MjM5MDkiLCBcCi0gICAgICAgICAgIjAuMTM1Mzk4LCAwLjI2ODMyMiwgMC4zOTQ5MDQsIDAuNDg1MjgxLCAwLjYyOTg4NSwgMC43NTYzNDEsIDAuOTM3MDM5IiwgXAotICAgICAgICAgICIwLjE0ODc0NCwgMC4yODE2OCwgMC40MDgyOTEsIDAuNDk4NzQ0LCAwLjY0MzI3NSwgMC43Njk3MjYsIDAuOTUwNDEyIiwgXAotICAgICAgICAgICIwLjE2MjI4MywgMC4yOTUyMiwgMC40MjE4MjQsIDAuNTEyMjM3LCAwLjY1NjgxNiwgMC43ODMyNjksIDAuOTYzOTM5IiwgXAotICAgICAgICAgICIwLjE4Mzk0NiwgMC4zMTY5NjgsIDAuNDQzNTQzLCAwLjUzMzkyMSwgMC42Nzg1MjYsIDAuODA0OTc3LCAwLjk4NTY2NiIsIFwKLSAgICAgICAgICAiMC4yMDI1NjMsIDAuMzM1NjU5LCAwLjQ2MjI1NiwgMC41NTI2NzIsIDAuNjk3MjE5LCAwLjgyMzY3MSwgMS4wMDQzNiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxMjM3MjIsIDAuMDgyMzcyMiwgMC4xNTIzNzIsIDAuMjAyMzcyLCAwLjI4MjM3MiwgMC4zNTIzNzIsIDAuNDUyMzcyIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjcxMjIsIDAuMzEzMDkxLCAwLjU2NzI3OCwgMC43NDk3OTEsIDEuMDQ2MDcsIDEuMzAzNTksIDEuNjY5NCIsIFwKLSAgICAgICAgICAiMC4wNjcxNDgsIDAuMzEzMDgzLCAwLjU2NzIxLCAwLjc1MDA0OSwgMS4wNDYwNCwgMS4zMDM1NywgMS42Njk1NyIsIFwKLSAgICAgICAgICAiMC4wNjcxODQsIDAuMzEzMDQzLCAwLjU2NzIxNCwgMC43NTE0OTgsIDEuMDQ1OTgsIDEuMzAzNDcsIDEuNjY5NDciLCBcCi0gICAgICAgICAgIjAuMDY3MTQ0LCAwLjMxMzA5LCAwLjU2NzE5OSwgMC43NDk4MzYsIDEuMDQ2MDEsIDEuMzAzNTQsIDEuNjY5NDEiLCBcCi0gICAgICAgICAgIjAuMDY3MTcsIDAuMzEzMDY2LCAwLjU2NzE4LCAwLjc0OTk5NywgMS4wNDU5MiwgMS4zMDM2LCAxLjY3MTc4IiwgXAotICAgICAgICAgICIwLjA2NzQ2LCAwLjMxMzA1LCAwLjU2NzE4NSwgMC43NTEzNzksIDEuMDQ1OTgsIDEuMzAzNDksIDEuNjY5MjkiLCBcCi0gICAgICAgICAgIjAuMDY4MzI1LCAwLjMxMzIyNywgMC41NjgxOTQsIDAuNzUxODQ0LCAxLjA0NTk4LCAxLjMwMzUsIDEuNjY5MTUiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMTIzNzA4LCAwLjA4MjM3MDgsIDAuMTUyMzcxLCAwLjIwMjM3MSwgMC4yODIzNzEsIDAuMzUyMzcxLCAwLjQ1MjM3MSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTIyMjUsIDAuMjcxMTcyLCAwLjQxNjg3MSwgMC41MjA4ODMsIDAuNjg3MzY4LCAwLjgzMzA1LCAxLjA0MTA0IiwgXAotICAgICAgICAgICIwLjEzNDE0OCwgMC4yODI5OCwgMC40Mjg2NzYsIDAuNTMyNjg3LCAwLjY5OTIxMywgMC44NDQ4MzQsIDEuMDUyODQiLCBcCi0gICAgICAgICAgIjAuMTQ5MTk4LCAwLjI5ODEwMywgMC40NDM4MjMsIDAuNTQ3ODU2LCAwLjcxNDMzNCwgMC44NTk5MDcsIDEuMDY3OTgiLCBcCi0gICAgICAgICAgIjAuMTY0MTQ5LCAwLjMxMzAxNCwgMC40NTg2NzIsIDAuNTYyNzY0LCAwLjcyOTIzMywgMC44NzQ4NzYsIDEuMDgyOSIsIFwKLSAgICAgICAgICAiMC4xNzg3MzYsIDAuMzI3NTQ5LCAwLjQ3MzI1MywgMC41NzcyNjMsIDAuNzQzNzQzLCAwLjg4OTQzMiwgMS4wOTc0MyIsIFwKLSAgICAgICAgICAiMC4yMDAyNTIsIDAuMzQ5MDc1LCAwLjQ5NDc4LCAwLjU5ODc5MiwgMC43NjUyNSwgMC45MTA5NjksIDEuMTE4OTgiLCBcCi0gICAgICAgICAgIjAuMjE3MTY0LCAwLjM2NjAwMSwgMC41MTE3MTksIDAuNjE1NzI2LCAwLjc4MjEzOCwgMC45Mjc4MzQsIDEuMTM1ODUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMTIzNzA4LCAwLjA4MjM3MDgsIDAuMTUyMzcxLCAwLjIwMjM3MSwgMC4yODIzNzEsIDAuMzUyMzcxLCAwLjQ1MjM3MSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY1MDcxLCAwLjM0NTkyMywgMC42MzY1ODMsIDAuODQ0MDQxLCAxLjE3Mzk5LCAxLjQ2NzI5LCAxLjg4MzYzIiwgXAotICAgICAgICAgICIwLjA2NTEyNSwgMC4zNDU5NTYsIDAuNjM2NTgxLCAwLjg0NDA0LCAxLjE3MzQyLCAxLjQ2NzM1LCAxLjg4MzQxIiwgXAotICAgICAgICAgICIwLjA2NTA1OSwgMC4zNDYwMjgsIDAuNjM0NDM5LCAwLjg0NDExMSwgMS4xNzQ2NywgMS40NjU0MSwgMS44ODI2OCIsIFwKLSAgICAgICAgICAiMC4wNjUwNjMsIDAuMzQ2OTcsIDAuNjM2NDM1LCAwLjg0NDEwMSwgMS4xNzI3MSwgMS40NjY3OSwgMS44ODIyIiwgXAotICAgICAgICAgICIwLjA2NTExNywgMC4zNDY2MTMsIDAuNjM2NTg4LCAwLjg0NDA0NCwgMS4xNzUwNCwgMS40NjM3NywgMS44ODIyIiwgXAotICAgICAgICAgICIwLjA2NTAzMywgMC4zNDY0OTksIDAuNjM2NTg4LCAwLjg0NDA2OCwgMS4xNzQyNiwgMS40NjI4NiwgMS44ODE1MyIsIFwKLSAgICAgICAgICAiMC4wNjUyMDUsIDAuMzQ2MTA2LCAwLjYzNDUzNywgMC44NDM3OTIsIDEuMTc2MywgMS40NjU4MSwgMS44ODA4OCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJPRSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogdGhyZWVfc3RhdGVfZGlzYWJsZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjA2NDI5OSwgMC4wNzU5OTUsIDAuMDkwNjQ3LCAwLjEwNDk0MywgMC4xMTc5NzQsIDAuMTM3MDU0LCAwLjE1MTk1NyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKHNjYWxhcikgewotICAgICAgICB2YWx1ZXMoIjAiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAzNzY2MywgMC4wNDkxODQsIDAuMDY0MDIxLCAwLjA3ODc3OCwgMC4wOTMzNTksIDAuMTEzNTk0LCAwLjEyOTc1MyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKHNjYWxhcikgewotICAgICAgICB2YWx1ZXMoIjAiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxMjM3MjIsIDAuMDgyMzcyMiwgMC4xNTIzNzIsIDAuMjAyMzcyLCAwLjI4MjM3MiwgMC4zNTIzNzIsIDAuNDUyMzcyIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDM5MTEsIDAuMDAzOTUzLCAwLjAwMzk1NywgMC4wMDM5NTcsIDAuMDAzOTYxLCAwLjAwMzk1OSwgMC4wMDM5NiIsIFwKLSAgICAgICAgICAiMC4wMDM4NTcsIDAuMDAzOTA2LCAwLjAwMzkwOSwgMC4wMDM5MSwgMC4wMDM5MTEsIDAuMDAzOTEyLCAwLjAwMzkxMiIsIFwKLSAgICAgICAgICAiMC4wMDM4MTEsIDAuMDAzODcsIDAuMDAzODc2LCAwLjAwMzg3OCwgMC4wMDM4NzksIDAuMDAzODgsIDAuMDAzODgiLCBcCi0gICAgICAgICAgIjAuMDAzNzc0LCAwLjAwMzg0NywgMC4wMDM4NTUsIDAuMDAzODU4LCAwLjAwMzg1OSwgMC4wMDM4NiwgMC4wMDM4NjEiLCBcCi0gICAgICAgICAgIjAuMDAzNzUsIDAuMDAzODMxLCAwLjAwMzg0MSwgMC4wMDM4NDUsIDAuMDAzODQ3LCAwLjAwMzg0OCwgMC4wMDM4NDkiLCBcCi0gICAgICAgICAgIjAuMDAzNzIyLCAwLjAwMzgxLCAwLjAwMzgyNiwgMC4wMDM4MywgMC4wMDM4MzQsIDAuMDAzODM1LCAwLjAwMzgzNyIsIFwKLSAgICAgICAgICAiMC4wMDM3MDcsIDAuMDAzODAyLCAwLjAwMzgxOSwgMC4wMDM4MjMsIDAuMDAzODI3LCAwLjAwMzgyOSwgMC4wMDM4MzIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxMjM3MDgsIDAuMDgyMzcwOCwgMC4xNTIzNzEsIDAuMjAyMzcxLCAwLjI4MjM3MSwgMC4zNTIzNzEsIDAuNDUyMzcxIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDY5NjQsIDAuMDA3MDY0LCAwLjAwNzA3NCwgMC4wMDcwNzcsIDAuMDA3MDgsIDAuMDA3MDgxLCAwLjAwNzA4MiIsIFwKLSAgICAgICAgICAiMC4wMDY5MjYsIDAuMDA3MDMyLCAwLjAwNzA0MywgMC4wMDcwNDYsIDAuMDA3MDQ5LCAwLjAwNzA1LCAwLjAwNzA1MiIsIFwKLSAgICAgICAgICAiMC4wMDY4ODQsIDAuMDA3MDA1LCAwLjAwNzAyLCAwLjAwNzAyNCwgMC4wMDcwMjcsIDAuMDA3MDI5LCAwLjAwNzAzMSIsIFwKLSAgICAgICAgICAiMC4wMDY4NDgsIDAuMDA2OTg0LCAwLjAwNzAwMywgMC4wMDcwMDksIDAuMDA3MDE0LCAwLjAwNzAxNiwgMC4wMDcwMTgiLCBcCi0gICAgICAgICAgIjAuMDA2ODIsIDAuMDA2OTY4LCAwLjAwNjk5MSwgMC4wMDY5OTgsIDAuMDA3MDA0LCAwLjAwNzAwOCwgMC4wMDcwMSIsIFwKLSAgICAgICAgICAiMC4wMDY3OTIsIDAuMDA2OTUsIDAuMDA2OTc3LCAwLjAwNjk4NiwgMC4wMDY5OTMsIDAuMDA2OTk3LCAwLjAwNzAwMSIsIFwKLSAgICAgICAgICAiMC4wMDY3NzcsIDAuMDA2OTM1LCAwLjAwNjk2NiwgMC4wMDY5NzUsIDAuMDA2OTg0LCAwLjAwNjk4OSwgMC4wMDY5OTMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJPRSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMTIzNzIyLCAwLjA4MjM3MjIsIDAuMTUyMzcyLCAwLjIwMjM3MiwgMC4yODIzNzIsIDAuMzUyMzcyLCAwLjQ1MjM3MiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzNjg1LCAwLjAwMzY1OSwgMC4wMDM2NTMsIDAuMDAzNjQzLCAwLjAwMzYyNywgMC4wMDM2MDgsIDAuMDAzNTg3IiwgXAotICAgICAgICAgICIwLjAwMzYzNCwgMC4wMDM2MSwgMC4wMDM1OTksIDAuMDAzNTk0LCAwLjAwMzU1NCwgMC4wMDM1MzYsIDAuMDAzNTI0IiwgXAotICAgICAgICAgICIwLjAwMzYwMSwgMC4wMDM1NzcsIDAuMDAzNTY4LCAwLjAwMzU1MiwgMC4wMDM1MjgsIDAuMDAzNTI4LCAwLjAwMzUiLCBcCi0gICAgICAgICAgIjAuMDAzNTgzLCAwLjAwMzU2LCAwLjAwMzU0NSwgMC4wMDM1MzEsIDAuMDAzNTEsIDAuMDAzNDkzLCAwLjAwMzQ2OCIsIFwKLSAgICAgICAgICAiMC4wMDM1NzIsIDAuMDAzNTQ5LCAwLjAwMzU0NCwgMC4wMDM1MiwgMC4wMDM1MDIsIDAuMDAzNDgzLCAwLjAwMzQ3OCIsIFwKLSAgICAgICAgICAiMC4wMDM1NiwgMC4wMDM1MzgsIDAuMDAzNTIyLCAwLjAwMzUwOCwgMC4wMDM0OTEsIDAuMDAzNDczLCAwLjAwMzQ0OSIsIFwKLSAgICAgICAgICAiMC4wMDM1NTYsIDAuMDAzNTM0LCAwLjAwMzUxOSwgMC4wMDM1MDgsIDAuMDAzNDg3LCAwLjAwMzQ2OSwgMC4wMDM0NDEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxMjM3MDgsIDAuMDgyMzcwOCwgMC4xNTIzNzEsIDAuMjAyMzcxLCAwLjI4MjM3MSwgMC4zNTIzNzEsIDAuNDUyMzcxIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDM4MjEsIDAuMDAzODIyLCAwLjAwMzgyMiwgMC4wMDM4MjIsIDAuMDAzODIyLCAwLjAwMzgyMiwgMC4wMDM4MjIiLCBcCi0gICAgICAgICAgIjAuMDAzODAxLCAwLjAwMzgwMSwgMC4wMDM4MDEsIDAuMDAzODAxLCAwLjAwMzgwMSwgMC4wMDM4MDEsIDAuMDAzODAxIiwgXAotICAgICAgICAgICIwLjAwMzc4NiwgMC4wMDM3ODYsIDAuMDAzNzg2LCAwLjAwMzc4NiwgMC4wMDM3ODYsIDAuMDAzNzg2LCAwLjAwMzc4NiIsIFwKLSAgICAgICAgICAiMC4wMDM3NzUsIDAuMDAzNzc1LCAwLjAwMzc3NSwgMC4wMDM3NzUsIDAuMDAzNzc1LCAwLjAwMzc3NSwgMC4wMDM3NzUiLCBcCi0gICAgICAgICAgIjAuMDAzNzY5LCAwLjAwMzc3LCAwLjAwMzc3LCAwLjAwMzc2OSwgMC4wMDM3NjksIDAuMDAzNzY5LCAwLjAwMzc2OSIsIFwKLSAgICAgICAgICAiMC4wMDM3NjcsIDAuMDAzNzY3LCAwLjAwMzc2NywgMC4wMDM3NjcsIDAuMDAzNzY3LCAwLjAwMzc2NywgMC4wMDM3NjciLCBcCi0gICAgICAgICAgIjAuMDAzNzY1LCAwLjAwMzc2OCwgMC4wMDM3NjgsIDAuMDAzNzY4LCAwLjAwMzc2OCwgMC4wMDM3NjgsIDAuMDAzNzY4Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogVExBVE5DQVgxNiAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChUTEFUTkNBWDE2KSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuOTM3NTg4OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIGNsb2NrX2dhdGluZ19pbnRlZ3JhdGVkX2NlbGwgOiAibGF0Y2hfcG9zZWRnZSI7Ci0gIHN0YXRldGFibGUoIiBDSyAgRSAiLCAiIEVJTlQgIikgewotICAgICB0YWJsZSA6ICIgIEwgIEwgOiAtIDogTCAsIFwKLSAgICAgICAgICAgICAgICBMICBIIDogLSA6IEggLCBcCi0gICAgICAgICAgICAgICAgSCAgLSA6IC0gOiBOICI7Ci0gIH0KLSAgcGluKEVJTlQpIHsKLSAgICBkaXJlY3Rpb24gOiBpbnRlcm5hbDsKLSAgICBpbnRlcm5hbF9ub2RlIDogIkVJTlQiOwotICB9Ci0gIHBpbihDSykgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNTQ1MjIyOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDU0NDkwOTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA1NDUyMjI7Ci0gICAgY2xvY2tfZ2F0ZV9jbG9ja19waW4gOiB0cnVlOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzkzMSwgMC4wMDM5MTksIDAuMDAzOTEsIDAuMDAzOTAzLCAwLjAwMzg5OCwgMC4wMDM4OTEsIDAuMDAzODg4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA1MDA2LCAwLjAwNDk5OSwgMC4wMDQ5OTIsIDAuMDA0OTg2LCAwLjAwNDk4MiwgMC4wMDQ5NzYsIDAuMDA0OTc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRSI7Ci0gICAgICBzZGZfY29uZCA6ICJFID09IDEnYjAiOwotICAgICAgZmFsbF9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMzEyOTk0LCAwLjMyNDYxLCAwLjMzOTQwNSwgMC4zNTQxNjUsIDAuMzY5MTI0LCAwLjM5MjQ5NiwgMC40MTIzNDMiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEUpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDU0Mjg2MjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA1NDA5ODE7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNTQyODYyOwotICAgIGNsb2NrX2dhdGVfZW5hYmxlX3BpbiA6IHRydWU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA0MzU3LCAwLjAwNDM0OCwgMC4wMDQzNDEsIDAuMDA0MzM2LCAwLjAwNDMzMiwgMC4wMDQzMjgsIDAuMDA0MzIzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA0MTIzLCAwLjAwNDExOCwgMC4wMDQxMTUsIDAuMDA0MTExLCAwLjAwNDEwOCwgMC4wMDQxMDUsIDAuMDA0MDk5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDg3NSwgLTAuMDc2MjUsIC0wLjA2Mzc1LCAtMC4wNTEyNSwgLTAuMDM4NzUsIC0wLjAyODc1LCAtMC4wMTM3NSIsIFwKLSAgICAgICAgICAiLTAuMDk4NzUsIC0wLjA4NzUsIC0wLjA3NSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA0LCAtMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjExMTI1LCAtMC4xLCAtMC4wODc1LCAtMC4wNzUsIC0wLjA2ODc1LCAtMC4wNTI1LCAtMC4wMzc1IiwgXAotICAgICAgICAgICItMC4xMywgLTAuMTEyNSwgLTAuMSwgLTAuMDkzNzUsIC0wLjA4MTI1LCAtMC4wNjUsIC0wLjA1IiwgXAotICAgICAgICAgICItMC4xNDI1LCAtMC4xMzEyNSwgLTAuMTE4NzUsIC0wLjEwNjI1LCAtMC4wOTM3NSwgLTAuMDc3NSwgLTAuMDY4NzUiLCBcCi0gICAgICAgICAgIi0wLjE2NSwgLTAuMTUzNzUsIC0wLjEzNSwgLTAuMTI4NzUsIC0wLjExNjI1LCAtMC4xLCAtMC4wODUiLCBcCi0gICAgICAgICAgIi0wLjE4LCAtMC4xNjg3NSwgLTAuMTU2MjUsIC0wLjE0Mzc1LCAtMC4xMzEyNSwgLTAuMTIxMjUsIC0wLjEwNjI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTI1LCAwLjAyMzc1LCAwLjA0MjUsIDAuMDU1LCAwLjA3Mzc1LCAwLjA5NjI1LCAwLjExNzUiLCBcCi0gICAgICAgICAgIjAuMDAxMjUsIDAuMDEyNSwgMC4wMzEyNSwgMC4wNDM3NSwgMC4wNjI1LCAwLjA4NSwgMC4xMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDExMjUsIDAsIDAuMDEyNSwgMC4wMzEyNSwgMC4wNDM3NSwgMC4wNzI1LCAwLjA5Mzc1IiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDEyNSwgMCwgMC4wMTg3NSwgMC4wMzEyNSwgMC4wNiwgMC4wODEyNSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAyNSwgLTAuMDEyNSwgMC4wMDYyNSwgMC4wMTg3NSwgMC4wNDc1LCAwLjA2ODc1IiwgXAotICAgICAgICAgICItMC4wNTg3NSwgLTAuMDQ3NSwgLTAuMDI4NzUsIC0wLjAxNjI1LCAwLjAwMjUsIDAuMDI1LCAwLjA0NjI1IiwgXAotICAgICAgICAgICItMC4wNzM3NSwgLTAuMDYyNSwgLTAuMDQzNzUsIC0wLjAzMTI1LCAtMC4wMTI1LCAwLjAxLCAwLjAzMTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5Mzc1LCAwLjA4MjUsIDAuMDcsIDAuMDU3NSwgMC4wNDUsIDAuMDM1LCAwLjAyIiwgXAotICAgICAgICAgICIwLjEwNSwgMC4wOTM3NSwgMC4wODEyNSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA0NjI1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICIwLjExNzUsIDAuMTA2MjUsIDAuMDkzNzUsIDAuMDgxMjUsIDAuMDc1LCAwLjA1ODc1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjEzNjI1LCAwLjExODc1LCAwLjEwNjI1LCAwLjEsIDAuMDg3NSwgMC4wNzEyNSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiMC4xNDg3NSwgMC4xMzc1LCAwLjEyNSwgMC4xMTI1LCAwLjEsIDAuMDgzNzUsIDAuMDc1IiwgXAotICAgICAgICAgICIwLjE3MTI1LCAwLjE2LCAwLjE0MTI1LCAwLjEzNSwgMC4xMjI1LCAwLjEwNjI1LCAwLjA5MTI1IiwgXAotICAgICAgICAgICIwLjE4NjI1LCAwLjE3NSwgMC4xNjI1LCAwLjE1LCAwLjEzNzUsIDAuMTI3NSwgMC4xMTI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAwNjI1LCAtMC4wMTc1LCAtMC4wMzYyNSwgLTAuMDQ4NzUsIC0wLjA2NzUsIC0wLjA5LCAtMC4xMTEyNSIsIFwKLSAgICAgICAgICAiMC4wMDUsIC0wLjAwNjI1LCAtMC4wMjUsIC0wLjAzNzUsIC0wLjA1NjI1LCAtMC4wNzg3NSwgLTAuMSIsIFwKLSAgICAgICAgICAiMC4wMTc1LCAwLjAwNjI1LCAtMC4wMDYyNSwgLTAuMDI1LCAtMC4wMzc1LCAtMC4wNjYyNSwgLTAuMDg3NSIsIFwKLSAgICAgICAgICAiMC4wMywgMC4wMTg3NSwgMC4wMDYyNSwgLTAuMDEyNSwgLTAuMDI1LCAtMC4wNTM3NSwgLTAuMDc1IiwgXAotICAgICAgICAgICIwLjA0MjUsIDAuMDMxMjUsIDAuMDE4NzUsIDAsIC0wLjAxMjUsIC0wLjA0MTI1LCAtMC4wNjI1IiwgXAotICAgICAgICAgICIwLjA2NSwgMC4wNTM3NSwgMC4wMzUsIDAuMDIyNSwgMC4wMDM3NSwgLTAuMDE4NzUsIC0wLjA0IiwgXAotICAgICAgICAgICIwLjA4LCAwLjA2ODc1LCAwLjA1LCAwLjAzNzUsIDAuMDE4NzUsIC0wLjAwMzc1LCAtMC4wMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEVDSykgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAyLjE3MTQ7Ci0gICAgY2xvY2tfZ2F0ZV9vdXRfcGluIDogdHJ1ZTsKLSAgICBzdGF0ZV9mdW5jdGlvbiA6ICIoQ0sgRUlOVCkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yNzczMTMsIDAuMjgyNjY2LCAwLjMwNjM4MywgMC4zMjMzMzcsIDAuMzQzNzM4LCAwLjM4MjMwOSwgMC40MDU3MDUiLCBcCi0gICAgICAgICAgIjAuMjg5MDg0LCAwLjI5NDU3MywgMC4zMTgxMDMsIDAuMzM1MDMyLCAwLjM1NTUwNSwgMC4zOTQxMTEsIDAuNDE3NTc3IiwgXAotICAgICAgICAgICIwLjMwNDE3NCwgMC4zMDk1NzMsIDAuMzMzMTQxLCAwLjM1MDA5NywgMC4zNzA2OTksIDAuNDA5MTU4LCAwLjQzMjYzNiIsIFwKLSAgICAgICAgICAiMC4zMTk0NTgsIDAuMzI0OTg4LCAwLjM0ODU2NiwgMC4zNjU1MTIsIDAuMzg2MDksIDAuNDI0NjUxLCAwLjQ0ODA0IiwgXAotICAgICAgICAgICIwLjMzNDk0NiwgMC4zNDA0NCwgMC4zNjM5OTEsIDAuMzgwOTUzLCAwLjQwMTUwOCwgMC40Mzk5OTEsIDAuNDYzNDgyIiwgXAotICAgICAgICAgICIwLjM1OTIwNywgMC4zNjQ3MTgsIDAuMzg4MjM3LCAwLjQwNTEwNSwgMC40MjU2NzcsIDAuNDY0MjUxLCAwLjQ4NzcyIiwgXAotICAgICAgICAgICIwLjM4MDcwNywgMC4zODYxODUsIDAuNDA5NzU4LCAwLjQyNjY4OSwgMC40NDcxNjUsIDAuNDg1NzY1LCAwLjUwOTIyOSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDQ0ODEsIDAuMDUwNjQsIDAuMDgxMzA1LCAwLjEwNzM2NCwgMC4xNDIyOTksIDAuMjEzOTI4LCAwLjI1OTI5IiwgXAotICAgICAgICAgICIwLjA0NDcwNCwgMC4wNTA0MzcsIDAuMDgxMjE3LCAwLjEwNzI4OSwgMC4xNDIzMjYsIDAuMjEzODY3LCAwLjI1OTMyNSIsIFwKLSAgICAgICAgICAiMC4wNDQ2NTEsIDAuMDUwNTExLCAwLjA4MTE4MSwgMC4xMDcyNzgsIDAuMTQyNDE3LCAwLjIxMzg4MywgMC4yNTkyOTgiLCBcCi0gICAgICAgICAgIjAuMDQ0OTQ3LCAwLjA1MDY3OSwgMC4wODEyMTksIDAuMTA3MTQ5LCAwLjE0MjMyNywgMC4yMTM4OSwgMC4yNTkyNyIsIFwKLSAgICAgICAgICAiMC4wNDQ3NiwgMC4wNTA1ODksIDAuMDgxMTI2LCAwLjEwNzIwOSwgMC4xNDIzNDMsIDAuMjEzODA4LCAwLjI1OTIzMSIsIFwKLSAgICAgICAgICAiMC4wNDQ2NjYsIDAuMDUwNDcyLCAwLjA4MTE1LCAwLjEwNzI1MiwgMC4xNDIyNjIsIDAuMjEzOTMxLCAwLjI1OTMxIiwgXAotICAgICAgICAgICIwLjA0NDcwOCwgMC4wNTA1NTQsIDAuMDgxMTE1LCAwLjEwNzI4MiwgMC4xNDIzMDMsIDAuMjEzODM2LCAwLjI1OTI5Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI0NTE4NSwgMC4yNDk2MjQsIDAuMjcxMzU5LCAwLjI4ODQwNCwgMC4zMTAzMzQsIDAuMzUzNTc1LCAwLjM4MDIyIiwgXAotICAgICAgICAgICIwLjI1NjU3MiwgMC4yNjExOSwgMC4yODI5NTcsIDAuMjk5OTIzLCAwLjMyMTkyOCwgMC4zNjUxNTgsIDAuMzkxODAxIiwgXAotICAgICAgICAgICIwLjI3MTQ4NCwgMC4yNzYwNzcsIDAuMjk3NjkyLCAwLjMxNDczNywgMC4zMzY2ODIsIDAuMzc5OTU0LCAwLjQwNjU4NSIsIFwKLSAgICAgICAgICAiMC4yODYxMzksIDAuMjkwNzYsIDAuMzEyNTIxLCAwLjMyOTQ4MywgMC4zNTE0NzEsIDAuMzk0NzAxLCAwLjQyMTM1NCIsIFwKLSAgICAgICAgICAiMC4zMDExMjYsIDAuMzA1NjU2LCAwLjMyNzQzNywgMC4zNDQ0MjMsIDAuMzY2NDEyLCAwLjQwOTY0NiwgMC40MzYyOSIsIFwKLSAgICAgICAgICAiMC4zMjQ1MiwgMC4zMjkwNjcsIDAuMzUwODIsIDAuMzY3Nzc1LCAwLjM4OTc2OSwgMC40MzI5OTksIDAuNDU5NjQ4IiwgXAotICAgICAgICAgICIwLjM0NDQ4OCwgMC4zNDg5NTQsIDAuMzcwNjU0LCAwLjM4NzYyOCwgMC40MDk2MjcsIDAuNDUyODY0LCAwLjQ3OTUwOCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzQxNDksIDAuMDQwNjQsIDAuMDc0MzAyLCAwLjEwNDI3MywgMC4xNDQ3NTcsIDAuMjI3NjcyLCAwLjI3OTgxNiIsIFwKLSAgICAgICAgICAiMC4wMzQ1ODcsIDAuMDQwNTY4LCAwLjA3NDI5MiwgMC4xMDQyMzMsIDAuMTQ0NzExLCAwLjIyNzcwMSwgMC4yODAxOTkiLCBcCi0gICAgICAgICAgIjAuMDM0MzgyLCAwLjA0MDM5OCwgMC4wNzQyNDEsIDAuMTA0MjY1LCAwLjE0NDY5MywgMC4yMjc2OSwgMC4yODAyNTEiLCBcCi0gICAgICAgICAgIjAuMDM0NTEzLCAwLjA0MDUwNywgMC4wNzQyOSwgMC4xMDQyNSwgMC4xNDQ3MDYsIDAuMjI3Njg5LCAwLjI4MDA5NiIsIFwKLSAgICAgICAgICAiMC4wMzQ2ODIsIDAuMDQwNTU1LCAwLjA3NDI1NCwgMC4xMDQyMzIsIDAuMTQ0NzQ1LCAwLjIyNzY3NCwgMC4yNzk4MDUiLCBcCi0gICAgICAgICAgIjAuMDM0NTIzLCAwLjA0MDQ0OCwgMC4wNzQyOTksIDAuMTA0MjU2LCAwLjE0NDcwMSwgMC4yMjc2NzYsIDAuMjc5OTIiLCBcCi0gICAgICAgICAgIjAuMDM0NDE0LCAwLjA0MDY0NywgMC4wNzQyNjksIDAuMTA0MjUxLCAwLjE0NDcwNCwgMC4yMjc2ODEsIDAuMjgwMDY2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxNzgyMiwgMC4wMTc4NzYsIDAuMDE4MTIzLCAwLjAxODI1MywgMC4wMTgzNjEsIDAuMDE4NDgsIDAuMDE4NTE5IiwgXAotICAgICAgICAgICIwLjAxNzgwOSwgMC4wMTc4NzEsIDAuMDE4MTEzLCAwLjAxODI0MywgMC4wMTgzNTIsIDAuMDE4NDY5LCAwLjAxODUxIiwgXAotICAgICAgICAgICIwLjAxNzc5NywgMC4wMTc4NTksIDAuMDE4MTAzLCAwLjAxODIzMywgMC4wMTgzNDEsIDAuMDE4NDU5LCAwLjAxODQ5OSIsIFwKLSAgICAgICAgICAiMC4wMTc3ODYsIDAuMDE3ODQ4LCAwLjAxODA5NSwgMC4wMTgyMjUsIDAuMDE4MzM0LCAwLjAxODQ0OSwgMC4wMTg0OTMiLCBcCi0gICAgICAgICAgIjAuMDE3NzgyLCAwLjAxNzg0NSwgMC4wMTgwOTEsIDAuMDE4MjIsIDAuMDE4MzI5LCAwLjAxODQ0NiwgMC4wMTg0OTMiLCBcCi0gICAgICAgICAgIjAuMDE3NzgsIDAuMDE3ODQxLCAwLjAxODA4MiwgMC4wMTgyMTIsIDAuMDE4MzIxLCAwLjAxODQzOCwgMC4wMTg0ODMiLCBcCi0gICAgICAgICAgIjAuMDE3Nzc1LCAwLjAxNzgzNywgMC4wMTgwNzksIDAuMDE4MjEsIDAuMDE4MzE4LCAwLjAxODQzNiwgMC4wMTg0NzYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjMxMzQsIDAuMDIzMjAyLCAwLjAyMzU0MywgMC4wMjM3MDksIDAuMDIzODQ0LCAwLjAyMzk4NCwgMC4wMjQwMzIiLCBcCi0gICAgICAgICAgIjAuMDIzMDk3LCAwLjAyMzE5MSwgMC4wMjM1MzQsIDAuMDIzNzAyLCAwLjAyMzgzNSwgMC4wMjM5NzcsIDAuMDI0MDI1IiwgXAotICAgICAgICAgICIwLjAyMzExOSwgMC4wMjMyMDUsIDAuMDIzNTI4LCAwLjAyMzY5MywgMC4wMjM4MjYsIDAuMDIzOTY4LCAwLjAyNDAxNiIsIFwKLSAgICAgICAgICAiMC4wMjMwODksIDAuMDIzMTgsIDAuMDIzNTE4LCAwLjAyMzY4NSwgMC4wMjM4MTksIDAuMDIzOTYxLCAwLjAyNDAxIiwgXAotICAgICAgICAgICIwLjAyMzA3OSwgMC4wMjMxNzMsIDAuMDIzNTE2LCAwLjAyMzY4MywgMC4wMjM4MTcsIDAuMDIzOTU5LCAwLjAyNDAwNyIsIFwKLSAgICAgICAgICAiMC4wMjMwODQsIDAuMDIzMTczLCAwLjAyMzUwOCwgMC4wMjM2NzUsIDAuMDIzODA5LCAwLjAyMzk1MSwgMC4wMjQiLCBcCi0gICAgICAgICAgIjAuMDIzMDkzLCAwLjAyMzE2NCwgMC4wMjM1MDcsIDAuMDIzNjczLCAwLjAyMzgwNywgMC4wMjM5NDksIDAuMDIzOTk4Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBUTEFUTlNSWDIgKgotICogLS0tLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChUTEFUTlNSWDIpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4zNTkwNDI7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgbGF0Y2ggKFFJTlQsTjUpIHsKLSAgICBkYXRhX2luIDogIkQiOwotICAgIGVuYWJsZSA6ICIoKCFHTikgUk4pIjsKLSAgICBwcmVzZXQgOiAiKCFTTikiOwotICB9Ci0gIHBpbihEKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA1NzU4NzU7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNTc0MDA4OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDU3NTg3NTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxNTgsIDAuMDAwMTYsIDAuMDAwMTYxLCAwLjAwMDE2MSwgMC4wMDAxNjEsIDAuMDAwMTYxLCAwLjAwMDE2MiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDE2NywgMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJHTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJSTiZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJSTl9FUV8xX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDEyNSwgLTAuMDAxMjUsIDAuMDExMjUsIDAuMDMsIDAuMDQyNSwgMC4wNjUsIDAuMDg2MjUiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTI1LCAwLCAwLjAxODc1LCAwLjAzMTI1LCAwLjA1Mzc1LCAwLjA3NSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDI1LCAtMC4wMTI1LCAwLCAwLjAxODc1LCAwLjA0MTI1LCAwLjA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA1NSwgLTAuMDQzNzUsIC0wLjAyNSwgLTAuMDEyNSwgMC4wMDYyNSwgMC4wMjg3NSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDY3NSwgLTAuMDU2MjUsIC0wLjAzNzUsIC0wLjAyNSwgLTAuMDEyNSwgMC4wMTYyNSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDksIC0wLjA3ODc1LCAtMC4wNiwgLTAuMDQ3NSwgLTAuMDI4NzUsIC0wLjAwNjI1LCAwLjAwODc1IiwgXAotICAgICAgICAgICItMC4xMDUsIC0wLjA5Mzc1LCAtMC4wODEyNSwgLTAuMDYyNSwgLTAuMDUsIC0wLjAyNzUsIC0wLjAwNjI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDUsIC0wLjAzMjUsIC0wLjAyLCAtMC4wMDc1LCAwLjAxMTI1LCAwLjAzMzc1LCAwLjA0ODc1IiwgXAotICAgICAgICAgICItMC4wNjEyNSwgLTAuMDQzNzUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgMCwgMC4wMjI1LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjA3Mzc1LCAtMC4wNjI1LCAtMC4wNDM3NSwgLTAuMDMxMjUsIC0wLjAxMjUsIDAuMDEsIDAuMDI1IiwgXAotICAgICAgICAgICItMC4wODYyNSwgLTAuMDY4NzUsIC0wLjA1NjI1LCAtMC4wNDM3NSwgLTAuMDI1LCAtMC4wMDI1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjA5ODc1LCAtMC4wODEyNSwgLTAuMDY4NzUsIC0wLjA1NjI1LCAtMC4wMzc1LCAtMC4wMTUsIDAiLCBcCi0gICAgICAgICAgIi0wLjExNSwgLTAuMTAzNzUsIC0wLjA5MTI1LCAtMC4wNzI1LCAtMC4wNiwgLTAuMDM3NSwgLTAuMDE2MjUiLCBcCi0gICAgICAgICAgIi0wLjEzLCAtMC4xMTg3NSwgLTAuMTA2MjUsIC0wLjA4NzUsIC0wLjA3NSwgLTAuMDUyNSwgLTAuMDM3NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJHTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiUk4mU04iOwotICAgICAgc2RmX2NvbmQgOiAiUk5fRVFfMV9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1NjI1LCAwLjA0NSwgMC4wMjYyNSwgMC4wMTM3NSwgLTAuMDA1LCAtMC4wMjc1LCAtMC4wNDg3NSIsIFwKLSAgICAgICAgICAiMC4wNjc1LCAwLjA1LCAwLjAzNzUsIDAuMDI1LCAwLjAwNjI1LCAtMC4wMTYyNSwgLTAuMDM3NSIsIFwKLSAgICAgICAgICAiMC4wOCwgMC4wNjg3NSwgMC4wNSwgMC4wMzc1LCAwLjAxODc1LCAtMC4wMDM3NSwgLTAuMDI1IiwgXAotICAgICAgICAgICIwLjA5MjUsIDAuMDgxMjUsIDAuMDYyNSwgMC4wNSwgMC4wMzEyNSwgMC4wMDg3NSwgLTAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4xMDUsIDAuMDkzNzUsIDAuMDc1LCAwLjA2MjUsIDAuMDQzNzUsIDAuMDIxMjUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMTIxMjUsIDAuMTEsIDAuMDk3NSwgMC4wNzg3NSwgMC4wNjYyNSwgMC4wNDM3NSwgMC4wMjI1IiwgXAotICAgICAgICAgICIwLjE0MjUsIDAuMTMxMjUsIDAuMTEyNSwgMC4xLCAwLjA4NzUsIDAuMDU4NzUsIDAuMDQzNzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTM3NSwgMC4wODI1LCAwLjA2Mzc1LCAwLjA1MTI1LCAwLjAzMjUsIDAuMDEsIC0wLjAwNSIsIFwKLSAgICAgICAgICAiMC4xMDUsIDAuMDkzNzUsIDAuMDc1LCAwLjA2MjUsIDAuMDQzNzUsIDAuMDIxMjUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMTE3NSwgMC4xMDYyNSwgMC4wODc1LCAwLjA3NSwgMC4wNTYyNSwgMC4wMzM3NSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4xMywgMC4xMTI1LCAwLjEsIDAuMDg3NSwgMC4wNjg3NSwgMC4wNDYyNSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4xMzYyNSwgMC4xMjUsIDAuMTEyNSwgMC4wOTM3NSwgMC4wODEyNSwgMC4wNTg3NSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4xNTg3NSwgMC4xNDc1LCAwLjEyODc1LCAwLjExNjI1LCAwLjA5NzUsIDAuMDc1LCAwLjA2IiwgXAotICAgICAgICAgICIwLjE3Mzc1LCAwLjE2MjUsIDAuMTQzNzUsIDAuMTMxMjUsIDAuMTE4NzUsIDAuMDk2MjUsIDAuMDc1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihHTikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNTYyNDU7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNTYxOTAyOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDU2MjQ1OwotICAgIGNsb2NrIDogdHJ1ZTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyODIsIDAuMDAwMjY2LCAwLjAwMDI1NSwgMC4wMDAyNSwgMC4wMDAyNDgsIDAuMDAwMjQ2LCAwLjAwMDI0NyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzU0LCAwLjAwMzUyNywgMC4wMDM1MTcsIDAuMDAzNTA4LCAwLjAwMzUwNSwgMC4wMDM0OTksIDAuMDAzNDk3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkdOIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRCZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjQ0Nzc1OCwgMC40NTkyMTgsIDAuNDczOTU4LCAwLjQ4ODIxMSwgMC41MDE3NTcsIDAuNTIxMzA2LCAwLjUzNjQwNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjI2NTQ2OTsKLSAgICBmdW5jdGlvbiA6ICJRSU5UIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJEIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yNTc4MDIsIDAuNDM5NTc4LCAwLjU4NTUxOSwgMC43NjY2OTQsIDAuOTQ5MTM5LCAxLjEyOTg0LCAxLjMxMzY0IiwgXAotICAgICAgICAgICIwLjI2OTM5MiwgMC40NTExNDksIDAuNTk3MTEyLCAwLjc4MDE4NSwgMC45NjEzMzEsIDEuMTQzMzYsIDEuMzIzNDEiLCBcCi0gICAgICAgICAgIjAuMjgzMjczLCAwLjQ2NTE1MiwgMC42MTAzNjQsIDAuNzk0MjE4LCAwLjk3NTUxOCwgMS4xNTcwNSwgMS4zMzk1OCIsIFwKLSAgICAgICAgICAiMC4yOTY5MTIsIDAuNDc4NjY0LCAwLjYyNDYzNSwgMC44MDc3MTEsIDAuOTg4ODU3LCAxLjE3MDg4LCAxLjM1MDciLCBcCi0gICAgICAgICAgIjAuMzEwNTQ3LCAwLjQ5MjMwNCwgMC42MzgyNjcsIDAuODIxMzM5LCAxLjAwMjQ5LCAxLjE4NDUzLCAxLjM2NDY4IiwgXAotICAgICAgICAgICIwLjMzMjM3LCAwLjUxNDIyOSwgMC42NTk5MTUsIDAuODQzMjk1LCAxLjAyNDY0LCAxLjIwNjIxLCAxLjM4ODc4IiwgXAotICAgICAgICAgICIwLjM1MTUxNywgMC41MzMzNzEsIDAuNjc4MzYzLCAwLjg2MTI5NCwgMS4wNDM3MywgMS4yMjU0LCAxLjQwNzY1Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4NTY2MiwgMC40NTQ4MzQsIDAuNzU3MTg1LCAxLjEyMzYzLCAxLjUwNDU0LCAxLjg2OTgyLCAyLjI1MjQ3IiwgXAotICAgICAgICAgICIwLjA4NTYsIDAuNDU4MDU2LCAwLjc1NzE3LCAxLjEyODY0LCAxLjUwNDgxLCAxLjg3ODU2LCAyLjIzNTgxIiwgXAotICAgICAgICAgICIwLjA4NTY2MSwgMC40NTgwNTMsIDAuNzUyMzY4LCAxLjEyMTY2LCAxLjUwNDcsIDEuODc4NzcsIDIuMjUyMjYiLCBcCi0gICAgICAgICAgIjAuMDg1NjAyLCAwLjQ1ODA1NSwgMC43NTcxNjgsIDEuMTI4NjcsIDEuNTA0OCwgMS44Nzg1NywgMi4yNDEyOSIsIFwKLSAgICAgICAgICAiMC4wODU1OTksIDAuNDU4MDU2LCAwLjc1NzE3LCAxLjEyODY0LCAxLjUwNDgsIDEuODc4NTYsIDIuMjM0MTIiLCBcCi0gICAgICAgICAgIjAuMDg1NjYsIDAuNDU4MDUsIDAuNzU3MjExLCAxLjEyNTM3LCAxLjUwNDcsIDEuODc4NzMsIDIuMjUyMjIiLCBcCi0gICAgICAgICAgIjAuMDg1NTgxLCAwLjQ1ODA0OSwgMC43NTQ4NzMsIDEuMTIxNTMsIDEuNTAzMDEsIDEuODc4NjQsIDIuMjUyMzQiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzEwNDkyLCAwLjUxNzY1NSwgMC42ODUwMTUsIDAuODkxOTQ4LCAxLjA5ODk0LCAxLjMxMTM4LCAxLjUxNDQ1IiwgXAotICAgICAgICAgICIwLjMyMTg5MiwgMC41MjkxNTYsIDAuNjk2NTM3LCAwLjkwMzMwNCwgMS4xMTAzNiwgMS4zMjI4NCwgMS41MjYzMiIsIFwKLSAgICAgICAgICAiMC4zMzUwMjcsIDAuNTQyNDMxLCAwLjcwOTY1NiwgMC45MTY1MzgsIDEuMTIzNTUsIDEuMzM2MDEsIDEuNTM5MzYiLCBcCi0gICAgICAgICAgIjAuMzQ3NDIsIDAuNTU1MDkzLCAwLjcyMTc2OSwgMC45Mjg4OTEsIDEuMTM5NjMsIDEuMzQ3ODcsIDEuNTUxMTkiLCBcCi0gICAgICAgICAgIjAuMzU5NTQ5LCAwLjU2NjkyNSwgMC43MzQxNjcsIDAuOTQxMDg3LCAxLjE0ODA4LCAxLjM2MDUyLCAxLjU2Mzc0IiwgXAotICAgICAgICAgICIwLjM3OTA1MSwgMC41ODYyNDEsIDAuNzUzNTM0LCAwLjk2MDQ2LCAxLjE2NzQ2LCAxLjM3OTksIDEuNTgzMDkiLCBcCi0gICAgICAgICAgIjAuMzk1NDYxLCAwLjYwMzEyNSwgMC43Njk1OTYsIDAuOTc2NDk0LCAxLjE4MzUsIDEuMzk1OTMsIDEuNTk5MTkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk1NTEyLCAwLjUwNjMxMSwgMC44Mzc1MjcsIDEuMjUwODMsIDEuNjYzNDMsIDIuMDc0ODEsIDIuNDkxMjgiLCBcCi0gICAgICAgICAgIjAuMDk1MzkyLCAwLjUwNjAzOSwgMC44MzgwMDcsIDEuMjUxMTMsIDEuNjY0MjIsIDIuMDc1OTcsIDIuNDg0NDkiLCBcCi0gICAgICAgICAgIjAuMDk1Mzc2LCAwLjUwNjQ2MiwgMC44Mzc3MTQsIDEuMjUxMTEsIDEuNjYzODcsIDIuMDc1NDYsIDIuNDg4NjgiLCBcCi0gICAgICAgICAgIjAuMDk1NDY0LCAwLjUwNzAzNiwgMC44MzY5NTcsIDEuMjUxMDgsIDEuNjYzNCwgMi4wNzM5LCAyLjQ4NjM3IiwgXAotICAgICAgICAgICIwLjA5NTM5LCAwLjUwNjcwOSwgMC44Mzc3MjQsIDEuMjUxMTMsIDEuNjYzMTIsIDIuMDc1NTYsIDIuNDkwNDgiLCBcCi0gICAgICAgICAgIjAuMDk1NTExLCAwLjUwNjg1NywgMC44Mzc0ODUsIDEuMjUwNzIsIDEuNjYzNDMsIDIuMDc0NTgsIDIuNDkwMzIiLCBcCi0gICAgICAgICAgIjAuMDk1NDM4LCAwLjUwNzAzNywgMC44Mzc0ODcsIDEuMjUwNTMsIDEuNjYzMzcsIDIuMDc0MjQsIDIuNDg5MTgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiR04iOwotICAgICAgdGltaW5nX3NlbnNlIDogbm9uX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiBmYWxsaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjQyMjg4LCAwLjYwNDcwOSwgMC43NTAzOTcsIDAuOTMyOTAzLCAxLjExNTEzLCAxLjI5NjY1LCAxLjQ3OTEyIiwgXAotICAgICAgICAgICIwLjQzNDI4MywgMC42MTYxMjksIDAuNzYyMTA4LCAwLjk0NDAwMiwgMS4xMjQ4NiwgMS4zMDgxOSwgMS40OTAzMyIsIFwKLSAgICAgICAgICAiMC40NDkwMjksIDAuNjMwODc3LCAwLjc3Njg1OCwgMC45NTg3NjEsIDEuMTM5MzksIDEuMzIyOTQsIDEuNTA1MDgiLCBcCi0gICAgICAgICAgIjAuNDYzMjg1LCAwLjY0NTEzMiwgMC43OTExMDksIDAuOTczMDE1LCAxLjE1Mzg3LCAxLjMzNzE5LCAxLjUxOTMzIiwgXAotICAgICAgICAgICIwLjQ3NjkxNSwgMC42NTg3NjIsIDAuODA0NzM4LCAwLjk4NjYzOSwgMS4xNjc1NiwgMS4zNTA4MiwgMS41MzI5NiIsIFwKLSAgICAgICAgICAiMC40OTY0MDgsIDAuNjc4MjU0LCAwLjgyNDIyOCwgMS4wMDYxMywgMS4xODcwMiwgMS4zNzAzMiwgMS41NTI0NSIsIFwKLSAgICAgICAgICAiMC41MTE3NCwgMC42OTM1ODcsIDAuODM5NTYsIDEuMDIxNDcsIDEuMjAyMjksIDEuMzg1NjUsIDEuNTY3NzgiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg1NTg3LCAwLjQ1ODA1LCAwLjc1NzIwNSwgMS4xMjczOCwgMS41MDQ2OSwgMS44Nzg3MSwgMi4yNTIyNyIsIFwKLSAgICAgICAgICAiMC4wODU1OCwgMC40NTgwNiwgMC43NTcxNTUsIDEuMTIwNDEsIDEuNDk5MzIsIDEuODc4NjIsIDIuMjUyMzciLCBcCi0gICAgICAgICAgIjAuMDg1NTgsIDAuNDU4MDU1LCAwLjc1NzE2LCAxLjEyMDY1LCAxLjQ5NzA3LCAxLjg3ODY0LCAyLjI1MjM1IiwgXAotICAgICAgICAgICIwLjA4NTU3OSwgMC40NTgwNTUsIDAuNzU3MTU1LCAxLjEyMDY0LCAxLjQ5OTM4LCAxLjg3ODYyLCAyLjI1MjM3IiwgXAotICAgICAgICAgICIwLjA4NTU3OCwgMC40NTgwNTUsIDAuNzU3MTU1LCAxLjEyMDUxLCAxLjQ5OTYsIDEuODc4NjIsIDIuMjUyMzciLCBcCi0gICAgICAgICAgIjAuMDg1NTc4LCAwLjQ1ODA1NSwgMC43NTcxNTYsIDEuMTIwNTQsIDEuNDk5NDgsIDEuODc4NjIsIDIuMjUyMzciLCBcCi0gICAgICAgICAgIjAuMDg1NTc3LCAwLjQ1ODA1NiwgMC43NTcxNjEsIDEuMTIwNTksIDEuNDk5MjMsIDEuODc4NjIsIDIuMjUyMzciKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuNDQ3NzU4LCAwLjY1NTQ5MSwgMC44MjEwMzQsIDEuMDI5MTEsIDEuMjM2MTQsIDEuNDQ4NTcsIDEuNjUyMDgiLCBcCi0gICAgICAgICAgIjAuNDU5MjE4LCAwLjY2Njk2MSwgMC44MzI2MjEsIDEuMDQwNTgsIDEuMjQ3NiwgMS40NjAwNCwgMS42NjM1NiIsIFwKLSAgICAgICAgICAiMC40NzM5NTgsIDAuNjgxNjg5LCAwLjg0NzM0MiwgMS4wNTUzLCAxLjI2MjMzLCAxLjQ3NDc3LCAxLjY3ODIzIiwgXAotICAgICAgICAgICIwLjQ4ODIxMSwgMC42OTU5NDUsIDAuODYyNTk1LCAxLjA2OTU0LCAxLjI3NjU4LCAxLjQ4OTAzLCAxLjY5NDA5IiwgXAotICAgICAgICAgICIwLjUwMTc1NywgMC43MDk1NzcsIDAuODc1MjIsIDEuMDgzMzUsIDEuMjkzNzMsIDEuNTAyNTcsIDEuNzA1NDQiLCBcCi0gICAgICAgICAgIjAuNTIxMzA2LCAwLjcyODk1NCwgMC44OTU1NDksIDEuMTA0NzYsIDEuMzA5NjcsIDEuNTE3MSwgMS43MjU5IiwgXAotICAgICAgICAgICIwLjUzNjQwNSwgMC43NDQxNDEsIDAuOTEwODQ4LCAxLjExOTk5LCAxLjMyNTI2LCAxLjUzMjU3LCAxLjc0NTgzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5NTQyNiwgMC41MDY2ODEsIDAuODM2MDU0LCAxLjI1MTE1LCAxLjY2NDIsIDIuMDc1OTYsIDIuNDg0NTQiLCBcCi0gICAgICAgICAgIjAuMDk1NDM1LCAwLjUwNjY2NywgMC44Mzc1NDgsIDEuMjUxMTQsIDEuNjY0MjEsIDIuMDc1OTcsIDIuNDg0OTIiLCBcCi0gICAgICAgICAgIjAuMDk1NDIzLCAwLjUwNjY4NCwgMC44MzczMzUsIDEuMjUxMTQsIDEuNjY0MjEsIDIuMDc1OTgsIDIuNDg1MjciLCBcCi0gICAgICAgICAgIjAuMDk1NDY4LCAwLjUwNjY3OSwgMC44MzY3MzcsIDEuMjUxMDksIDEuNjY0MiwgMi4wNzYwMywgMi40ODYyNyIsIFwKLSAgICAgICAgICAiMC4wOTU1MjUsIDAuNTA2NjY0LCAwLjgzNjYzLCAxLjI1MTI2LCAxLjY2NDQ0LCAyLjA3NTg5LCAyLjQ5MDM0IiwgXAotICAgICAgICAgICIwLjA5NTU0LCAwLjUwNjM4MSwgMC44MzY1MjksIDEuMjQ4NjUsIDEuNjY0MjcsIDIuMDcxMjUsIDIuNDg2NTEiLCBcCi0gICAgICAgICAgIjAuMDk1NTI3LCAwLjUwNjQyNywgMC44MzY1NDksIDEuMjQ4NTYsIDEuNjYwOCwgMi4wNzk2NSwgMi40ODk2MiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcmlzaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjM5NDA1LCAwLjU3NTg5MiwgMC43MjEwMDIsIDAuOTAzOTE0LCAxLjA4NjM3LCAxLjI2Nzg5LCAxLjQ1MDE5IiwgXAotICAgICAgICAgICIwLjQwNTQ4OCwgMC41ODczNDEsIDAuNzMzMzA3LCAwLjkxNTE3MiwgMS4wOTcxOCwgMS4yNzk0MiwgMS40NjE1MSIsIFwKLSAgICAgICAgICAiMC40MTkxMTUsIDAuNjAwOTcsIDAuNzQ2OTIyLCAwLjkyODc3OSwgMS4xMTIyNiwgMS4yOTMwNiwgMS40NzUxMSIsIFwKLSAgICAgICAgICAiMC40MzI1MSwgMC42MTQzNDYsIDAuNzYwMjU5LCAwLjk0MjM5MywgMS4xMjU0OSwgMS4zMDY0LCAxLjQ4ODUiLCBcCi0gICAgICAgICAgIjAuNDQ2MjUyLCAwLjYyODEwNSwgMC43NzQwNzIsIDAuOTU1OTQ2LCAxLjEzNzg2LCAxLjMyMDE4LCAxLjUwMjI4IiwgXAotICAgICAgICAgICIwLjQ2Nzk1NSwgMC42NDk4MDcsIDAuNzk1NzUzLCAwLjk3NzYyMSwgMS4xNjEwMSwgMS4zNDE5LCAxLjUyMzk0IiwgXAotICAgICAgICAgICIwLjQ4NjgzOSwgMC42Njg2MTEsIDAuODE0NjAyLCAwLjk5NzU5NSwgMS4xNzc2NSwgMS4zNjE3OSwgMS41NDI2NCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODU1OTUsIDAuNDU4MDUzLCAwLjc1NTgyOCwgMS4xMjM3MywgMS41MDQ2NywgMS44Nzg2OCwgMi4yNTIzMSIsIFwKLSAgICAgICAgICAiMC4wODU1ODcsIDAuNDU4MDU2LCAwLjc1NzE1NywgMS4xMjA4MSwgMS40OTM0NiwgMS44Nzg2MSwgMi4yNTIzOCIsIFwKLSAgICAgICAgICAiMC4wODU1ODUsIDAuNDU4MDU3LCAwLjc1NzE1OCwgMS4xMjE0MSwgMS41MDI2OSwgMS44Nzg2MSwgMi4yNTI0IiwgXAotICAgICAgICAgICIwLjA4NTU3NCwgMC40NTgwNTQsIDAuNzU3MTY3LCAxLjEyNDQ1LCAxLjQ5NjAxLCAxLjg3ODY0LCAyLjI1MjQiLCBcCi0gICAgICAgICAgIjAuMDg1NTg3LCAwLjQ1ODA1NiwgMC43NTcxNTcsIDEuMTIwNTUsIDEuNDk2MjUsIDEuODc4NjEsIDIuMjUyMzgiLCBcCi0gICAgICAgICAgIjAuMDg1NTgyLCAwLjQ1ODA1NywgMC43NTcxNTksIDEuMTIxMjYsIDEuNDk4MTIsIDEuODc4NiwgMi4yNTI0IiwgXAotICAgICAgICAgICIwLjA4NTU5NiwgMC40NTc1NzUsIDAuNzU3MTY0LCAxLjEyODI0LCAxLjUwMDM2LCAxLjg2Nzk4LCAyLjI1MjUzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiBmYWxsaW5nX2VkZ2U7Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjM5NDQ0MSwgMC42MDE2MzQsIDAuNzY4OTQ4LCAwLjk3NTc4MiwgMS4xODI4NSwgMS4zOTQ2MSwgMS42MDAyMSIsIFwKLSAgICAgICAgICAiMC40MDU3NjEsIDAuNjEyODg4LCAwLjc4MDI2OSwgMC45ODcxLCAxLjE5NDE3LCAxLjQwNTkzLCAxLjYxMTU1IiwgXAotICAgICAgICAgICIwLjQyMDMxNiwgMC42Mjc2NDYsIDAuNzk0OTIxLCAxLjAwMTc4LCAxLjIwODgzLCAxLjQyMDU3LCAxLjYyNjMiLCBcCi0gICAgICAgICAgIjAuNDM1MTQsIDAuNjQyMzE3LCAwLjgwOTY1LCAxLjAxNjQ5LCAxLjIyMzU1LCAxLjQzNTMxLCAxLjY0MDk1IiwgXAotICAgICAgICAgICIwLjQ0OTYyOCwgMC42NTcyNjgsIDAuODIzOTI2LCAxLjAzMzA4LCAxLjIzODExLCAxLjQ0OTY1LCAxLjY1ODExIiwgXAotICAgICAgICAgICIwLjQ3MjMyLCAwLjY3OTU0OCwgMC44NDY5MzksIDEuMDUzODEsIDEuMjYwODUsIDEuNDcyNTcsIDEuNjc4MzMiLCBcCi0gICAgICAgICAgIjAuNDkxMjM3LCAwLjY5ODQwNiwgMC44NjU3NTYsIDEuMDcyNjQsIDEuMjc5NjYsIDEuNDkxMzgsIDEuNjk3MTQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk1NTIsIDAuNTA2NDc3LCAwLjgzNzU2NSwgMS4yNTA5MywgMS42NjQxOSwgMi4wNzc4NCwgMi40ODY3IiwgXAotICAgICAgICAgICIwLjA5NTUxOCwgMC41MDcwNzUsIDAuODM3NTYzLCAxLjI1MTExLCAxLjY2NDIsIDIuMDc4MjUsIDIuNDkyMzgiLCBcCi0gICAgICAgICAgIjAuMDk1NTAxLCAwLjUwNzE0NiwgMC44Mzc2MjEsIDEuMjUxNDMsIDEuNjY0MDgsIDIuMDc3NTMsIDIuNDkxMDMiLCBcCi0gICAgICAgICAgIjAuMDk1NTE4LCAwLjUwNjU4MSwgMC44Mzc2ODMsIDEuMjUxMSwgMS42NjQxOCwgMi4wNzc4LCAyLjQ5MjUiLCBcCi0gICAgICAgICAgIjAuMDk1NTE0LCAwLjUwNzEyNywgMC44Mzc1NTIsIDEuMjUxMDgsIDEuNjYzODEsIDIuMDc4LCAyLjQ5MTciLCBcCi0gICAgICAgICAgIjAuMDk1NTE5LCAwLjUwNjUsIDAuODM3NTcsIDEuMjUwOTUsIDEuNjYzOTYsIDIuMDc3NTMsIDIuNDg2MiIsIFwKLSAgICAgICAgICAiMC4wOTU1MTYsIDAuNTA2NDc3LCAwLjgzNzY1NiwgMS4yNTEwOCwgMS42NjM5LCAyLjA3Nzg4LCAyLjQ4NjIyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiBwcmVzZXQ7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEzNjA1NywgMC4zMTc3NzIsIDAuNDYzMjQxLCAwLjY0NTAzNCwgMC44MjcwMTcsIDEuMDEwODcsIDEuMTkxOSIsIFwKLSAgICAgICAgICAiMC4xNDc2LCAwLjMyOTM3NywgMC40NzQ3NTQsIDAuNjU2NjY3LCAwLjgzOTIxNSwgMS4wMjI0OCwgMS4yMDM0MSIsIFwKLSAgICAgICAgICAiMC4xNjIzMzYsIDAuMzQzOTQ4LCAwLjQ4OTg1NSwgMC42NzE2MTUsIDAuODUzODA5LCAxLjAzNTczLCAxLjIxOTMyIiwgXAotICAgICAgICAgICIwLjE3Njk5NSwgMC4zNTg1OTUsIDAuNTA0NTQ1LCAwLjY4NjExNywgMC44Njg1NTUsIDEuMDUwMjcsIDEuMjM0MTkiLCBcCi0gICAgICAgICAgIjAuMTkxOTA0LCAwLjM3MzYwNiwgMC41MTk1MjcsIDAuNzAwNzMxLCAwLjg4MzY3OSwgMS4wNjU4MSwgMS4yNDgzMyIsIFwKLSAgICAgICAgICAiMC4yMTUzNTYsIDAuMzk2OTYzLCAwLjU0Mjg0OCwgMC43MjQzMDUsIDAuOTA2OTE2LCAxLjA4OTEsIDEuMjcxNTEiLCBcCi0gICAgICAgICAgIjAuMjM1MTc3LCAwLjQxNjg5NSwgMC41NjI3NiwgMC43NDM5ODUsIDAuOTI2NzcxLCAxLjEwODU2LCAxLjI5MTQiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg1NTc5LCAwLjQ1ODAzLCAwLjc1Mjk3NiwgMS4xMjczNiwgMS41MDI4MiwgMS44NzU3MywgMi4yNTE1NCIsIFwKLSAgICAgICAgICAiMC4wODU1OTcsIDAuNDU4MDM0LCAwLjc1NDIzNiwgMS4xMjc3OSwgMS41MDI5NSwgMS44NzQ3NCwgMi4yNDcxMyIsIFwKLSAgICAgICAgICAiMC4wODU1OSwgMC40NTc3NjgsIDAuNzU3MDM4LCAxLjEyNzUxLCAxLjUwNDQ4LCAxLjg3NDY0LCAyLjI1MTc3IiwgXAotICAgICAgICAgICIwLjA4NTU4LCAwLjQ1NzUwMiwgMC43NTcwMzcsIDEuMTI3NDMsIDEuNTA0NDgsIDEuODc0NTYsIDIuMjQ4NjIiLCBcCi0gICAgICAgICAgIjAuMDg1NTk2LCAwLjQ1Nzg2MiwgMC43NTcwMDcsIDEuMTI5MywgMS41MDI3MywgMS44NzEyNCwgMi4yNTE3NyIsIFwKLSAgICAgICAgICAiMC4wODU2MDgsIDAuNDU4MDQ5LCAwLjc1NzAxOCwgMS4xMjkyNywgMS41MDMxMywgMS44NzI3NiwgMi4yNDU0NyIsIFwKLSAgICAgICAgICAiMC4wODU2MjEsIDAuNDU4MDU3LCAwLjc1NzAxMSwgMS4xMjcyMywgMS41MDIxMSwgMS44NzU4MywgMi4yNDYxNiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMTE0OTEsIDAuNDE4OTc0LCAwLjU4NjE3NSwgMC43OTI3MzYsIDAuOTk5OTQ5LCAxLjIxMDUxLCAxLjQxNTY0IiwgXAotICAgICAgICAgICIwLjIyMjgyMywgMC40Mjk4MjcsIDAuNTk3MTM3LCAwLjgwNTEyLCAxLjAxNDksIDEuMjIzNjUsIDEuNDI2NzkiLCBcCi0gICAgICAgICAgIjAuMjM1OTc4LCAwLjQ0MzczOCwgMC42MTA0MDksIDAuODE3NzIyLCAxLjAyNjgyLCAxLjIzNjksIDEuNDQwMDUiLCBcCi0gICAgICAgICAgIjAuMjQ5MjQzLCAwLjQ1NjkwMSwgMC42MjI4NDEsIDAuODMwMzA3LCAxLjA0MTQ4LCAxLjI0ODk1LCAxLjQ1MzE5IiwgXAotICAgICAgICAgICIwLjI2MjU4NCwgMC40Njk3OSwgMC42MzcwOTksIDAuODQ0MDAzLCAxLjA1MTAyLCAxLjI2MzQ4LCAxLjQ2NjYzIiwgXAotICAgICAgICAgICIwLjI4MzgzNCwgMC40OTEwNTIsIDAuNjU4MzUzLCAwLjg2NTI3NiwgMS4wNzIyOCwgMS4yODQ3MywgMS40ODc4OCIsIFwKLSAgICAgICAgICAiMC4zMDI0NDgsIDAuNTA5ODc4LCAwLjY3NTg0OCwgMC44ODU2OTUsIDEuMDkwNTIsIDEuMzAzMDgsIDEuNTA4NDkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk1Mzc1LCAwLjUwNzEyMiwgMC44Mzc5OTksIDEuMjUwNTgsIDEuNjYyNTYsIDIuMDc4MywgMi40OTI4NyIsIFwKLSAgICAgICAgICAiMC4wOTU0ODQsIDAuNTA2OTcxLCAwLjgzNzY3LCAxLjI1MDk0LCAxLjY2MzgsIDIuMDc3NiwgMi40ODk3MiIsIFwKLSAgICAgICAgICAiMC4wOTU1MjEsIDAuNTA3MDY3LCAwLjgzNzM3LCAxLjI1MTI0LCAxLjY2MjEyLCAyLjA3NTg1LCAyLjQ4OTY1IiwgXAotICAgICAgICAgICIwLjA5NTQ4OSwgMC41MDcxMjMsIDAuODM3NjQ2LCAxLjI1MDc5LCAxLjY2Mjc2LCAyLjA3NTYxLCAyLjQ4ODg2IiwgXAotICAgICAgICAgICIwLjA5NTQ5NywgMC41MDYxNTIsIDAuODM3NTQxLCAxLjI1MDk1LCAxLjY2MzcsIDIuMDc0OTUsIDIuNDkxMTEiLCBcCi0gICAgICAgICAgIjAuMDk1NDk2LCAwLjUwNjcyMywgMC44Mzc1MjMsIDEuMjUwOSwgMS42NjM0NywgMi4wNzQ5LCAyLjQ5MDc0IiwgXAotICAgICAgICAgICIwLjA5NTUsIDAuNTA3MDM3LCAwLjgzNzUzNywgMS4yNTExOSwgMS42NjE0OSwgMi4wNzU5MywgMi40ODk2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzNDM0LCAwLjAwMzQ3NCwgMC4wMDM0NzksIDAuMDAzNDgxLCAwLjAwMzQ4MiwgMC4wMDM0ODUsIDAuMDAzNDgyIiwgXAotICAgICAgICAgICIwLjAwMzQyNiwgMC4wMDM0NjcsIDAuMDAzNDcxLCAwLjAwMzQ3NCwgMC4wMDM0NzUsIDAuMDAzNDc2LCAwLjAwMzQ3NiIsIFwKLSAgICAgICAgICAiMC4wMDM0MjQsIDAuMDAzNDY0LCAwLjAwMzQ2OSwgMC4wMDM0NzEsIDAuMDAzNDcyLCAwLjAwMzQ3NCwgMC4wMDM0NzQiLCBcCi0gICAgICAgICAgIjAuMDAzNDIsIDAuMDAzNDYxLCAwLjAwMzQ2NiwgMC4wMDM0NjgsIDAuMDAzNDY5LCAwLjAwMzQ3LCAwLjAwMzQ3MSIsIFwKLSAgICAgICAgICAiMC4wMDM0MTksIDAuMDAzNDU5LCAwLjAwMzQ2NCwgMC4wMDM0NjYsIDAuMDAzNDY3LCAwLjAwMzQ2OCwgMC4wMDM0NjkiLCBcCi0gICAgICAgICAgIjAuMDAzNDE3LCAwLjAwMzQ1OCwgMC4wMDM0NjIsIDAuMDAzNDY1LCAwLjAwMzQ2NiwgMC4wMDM0NjQsIDAuMDAzNDY3IiwgXAotICAgICAgICAgICIwLjAwMzQxNiwgMC4wMDM0NTYsIDAuMDAzNDYsIDAuMDAzNDY0LCAwLjAwMzQ2NCwgMC4wMDM0NjQsIDAuMDAzNDY0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzODE1LCAwLjAwMzg1OCwgMC4wMDM4NjQsIDAuMDAzODY3LCAwLjAwMzg2OCwgMC4wMDM4NjksIDAuMDAzODY5IiwgXAotICAgICAgICAgICIwLjAwMzgxMSwgMC4wMDM4NTUsIDAuMDAzODYsIDAuMDAzODYzLCAwLjAwMzg2NSwgMC4wMDM4NjYsIDAuMDAzODY2IiwgXAotICAgICAgICAgICIwLjAwMzgxLCAwLjAwMzg1NCwgMC4wMDM4NTksIDAuMDAzODYyLCAwLjAwMzg2NCwgMC4wMDM4NjUsIDAuMDAzODY1IiwgXAotICAgICAgICAgICIwLjAwMzgwOSwgMC4wMDM4NTIsIDAuMDAzODU4LCAwLjAwMzg2MSwgMC4wMDM4NjIsIDAuMDAzODYzLCAwLjAwMzg2MyIsIFwKLSAgICAgICAgICAiMC4wMDM4MDYsIDAuMDAzODUxLCAwLjAwMzg1NiwgMC4wMDM4NTgsIDAuMDAzODYsIDAuMDAzODYxLCAwLjAwMzg2MiIsIFwKLSAgICAgICAgICAiMC4wMDM4MDYsIDAuMDAzODQ5LCAwLjAwMzg1NSwgMC4wMDM4NTcsIDAuMDAzODU4LCAwLjAwMzg2LCAwLjAwMzg2IiwgXAotICAgICAgICAgICIwLjAwMzgwNCwgMC4wMDM4NDgsIDAuMDAzODUzLCAwLjAwMzg1NywgMC4wMDM4NTcsIDAuMDAzODU4LCAwLjAwMzg1OSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkdOIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDUxNzEsIDAuMDA1MjExLCAwLjAwNTIxNSwgMC4wMDUyMTcsIDAuMDA1MjE4LCAwLjAwNTIxOSwgMC4wMDUyMTkiLCBcCi0gICAgICAgICAgIjAuMDA1MTY0LCAwLjAwNTIwMywgMC4wMDUyMDgsIDAuMDA1MjEsIDAuMDA1MjExLCAwLjAwNTIxMiwgMC4wMDUyMTIiLCBcCi0gICAgICAgICAgIjAuMDA1MTU4LCAwLjAwNTE5OCwgMC4wMDUyMDIsIDAuMDA1MjA0LCAwLjAwNTIwNSwgMC4wMDUyMDcsIDAuMDA1MjA3IiwgXAotICAgICAgICAgICIwLjAwNTE1NSwgMC4wMDUxOTUsIDAuMDA1MTk5LCAwLjAwNTIwMSwgMC4wMDUyMDIsIDAuMDA1MjAzLCAwLjAwNTIwMyIsIFwKLSAgICAgICAgICAiMC4wMDUxNTMsIDAuMDA1MTkyLCAwLjAwNTE5NywgMC4wMDUxOTksIDAuMDA1MiwgMC4wMDUyMDEsIDAuMDA1MjAxIiwgXAotICAgICAgICAgICIwLjAwNTE0OSwgMC4wMDUxODksIDAuMDA1MTkzLCAwLjAwNTE5NiwgMC4wMDUxOTcsIDAuMDA1MTk3LCAwLjAwNTE5OCIsIFwKLSAgICAgICAgICAiMC4wMDUxNDksIDAuMDA1MTg4LCAwLjAwNTE5MywgMC4wMDUxOTUsIDAuMDA1MTk2LCAwLjAwNTE5NywgMC4wMDUxOTciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDU0NzQsIDAuMDA1NTE2LCAwLjAwNTUyLCAwLjAwNTUyLCAwLjAwNTUyLCAwLjAwNTUxOSwgMC4wMDU1MTkiLCBcCi0gICAgICAgICAgIjAuMDA1NDY3LCAwLjAwNTUxLCAwLjAwNTUxMywgMC4wMDU1MTQsIDAuMDA1NTEzLCAwLjAwNTUxMywgMC4wMDU1MTIiLCBcCi0gICAgICAgICAgIjAuMDA1NDYyLCAwLjAwNTUwNCwgMC4wMDU1MDgsIDAuMDA1NTA4LCAwLjAwNTUwNywgMC4wMDU1MDcsIDAuMDA1NTA2IiwgXAotICAgICAgICAgICIwLjAwNTQ1OCwgMC4wMDU1MDEsIDAuMDA1NTA0LCAwLjAwNTUwNiwgMC4wMDU1MDQsIDAuMDA1NTAzLCAwLjAwNTUwNSIsIFwKLSAgICAgICAgICAiMC4wMDU0NTYsIDAuMDA1NDk4LCAwLjAwNTUwMywgMC4wMDU1MDIsIDAuMDA1NTAyLCAwLjAwNTUwMiwgMC4wMDU1MDEiLCBcCi0gICAgICAgICAgIjAuMDA1NDUyLCAwLjAwNTQ5NSwgMC4wMDU1LCAwLjAwNTQ5OSwgMC4wMDU0OTksIDAuMDA1NSwgMC4wMDU0OTYiLCBcCi0gICAgICAgICAgIjAuMDA1NDUxLCAwLjAwNTQ5NCwgMC4wMDU0OTgsIDAuMDA1NDk5LCAwLjAwNTQ5OCwgMC4wMDU0OTgsIDAuMDA1NDk3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUk4iOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDI4NywgMC4wMDQzMjYsIDAuMDA0MzMsIDAuMDA0MzMzLCAwLjAwNDMzNCwgMC4wMDQzMzQsIDAuMDA0MzM1IiwgXAotICAgICAgICAgICIwLjAwNDI4LCAwLjAwNDMyLCAwLjAwNDMyNCwgMC4wMDQzMjYsIDAuMDA0MzI3LCAwLjAwNDMyOCwgMC4wMDQzMjgiLCBcCi0gICAgICAgICAgIjAuMDA0Mjc1LCAwLjAwNDMxNSwgMC4wMDQzMTksIDAuMDA0MzIyLCAwLjAwNDMyMiwgMC4wMDQzMjMsIDAuMDA0MzI0IiwgXAotICAgICAgICAgICIwLjAwNDI3MiwgMC4wMDQzMTIsIDAuMDA0MzE2LCAwLjAwNDMxOSwgMC4wMDQzMiwgMC4wMDQzMjEsIDAuMDA0MzIxIiwgXAotICAgICAgICAgICIwLjAwNDI3MSwgMC4wMDQzMSwgMC4wMDQzMTUsIDAuMDA0MzE3LCAwLjAwNDMxOCwgMC4wMDQzMTksIDAuMDA0MzE5IiwgXAotICAgICAgICAgICIwLjAwNDI2OCwgMC4wMDQzMDgsIDAuMDA0MzEyLCAwLjAwNDMxNCwgMC4wMDQzMTUsIDAuMDA0MzE2LCAwLjAwNDMxNiIsIFwKLSAgICAgICAgICAiMC4wMDQyNjgsIDAuMDA0MzA4LCAwLjAwNDMxMiwgMC4wMDQzMTUsIDAuMDA0MzE1LCAwLjAwNDMxNiwgMC4wMDQzMTYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDUwNDcsIDAuMDA1MDksIDAuMDA1MDk1LCAwLjAwNTA5OCwgMC4wMDUwOTksIDAuMDA1MSwgMC4wMDUxIiwgXAotICAgICAgICAgICIwLjAwNTA0LCAwLjAwNTA4MywgMC4wMDUwODksIDAuMDA1MDkxLCAwLjAwNTA5MywgMC4wMDUwOTMsIDAuMDA1MDk0IiwgXAotICAgICAgICAgICIwLjAwNTAzNCwgMC4wMDUwNzgsIDAuMDA1MDgzLCAwLjAwNTA4NiwgMC4wMDUwODcsIDAuMDA1MDg4LCAwLjAwNTA4OSIsIFwKLSAgICAgICAgICAiMC4wMDUwMzMsIDAuMDA1MDc2LCAwLjAwNTA4MSwgMC4wMDUwODMsIDAuMDA1MDg1LCAwLjAwNTA4NiwgMC4wMDUwODYiLCBcCi0gICAgICAgICAgIjAuMDA1MDI4LCAwLjAwNTA3MiwgMC4wMDUwNzksIDAuMDA1MDgsIDAuMDA1MDgyLCAwLjAwNTA4MywgMC4wMDUwODQiLCBcCi0gICAgICAgICAgIjAuMDA1MDI3LCAwLjAwNTA3MSwgMC4wMDUwNzYsIDAuMDA1MDc5LCAwLjAwNTA4LCAwLjAwNTA4MSwgMC4wMDUwODEiLCBcCi0gICAgICAgICAgIjAuMDA1MDI2LCAwLjAwNTA2OSwgMC4wMDUwNzQsIDAuMDA1MDc3LCAwLjAwNTA3OCwgMC4wMDUwNzksIDAuMDA1MDgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzODMsIDAuMDAzODU5LCAwLjAwMzg2MiwgMC4wMDM4NjMsIDAuMDAzODY0LCAwLjAwMzg2NiwgMC4wMDM4NjYiLCBcCi0gICAgICAgICAgIjAuMDAzODIzLCAwLjAwMzg1MywgMC4wMDM4NTYsIDAuMDAzODU4LCAwLjAwMzg1OCwgMC4wMDM4NTksIDAuMDAzODYiLCBcCi0gICAgICAgICAgIjAuMDAzODE0LCAwLjAwMzg0NiwgMC4wMDM4NSwgMC4wMDM4NTEsIDAuMDAzODUyLCAwLjAwMzg1MiwgMC4wMDM4NTMiLCBcCi0gICAgICAgICAgIjAuMDAzODA0LCAwLjAwMzgzOCwgMC4wMDM4NDIsIDAuMDAzODQzLCAwLjAwMzg0NiwgMC4wMDM4NDUsIDAuMDAzODQ3IiwgXAotICAgICAgICAgICIwLjAwMzc5NCwgMC4wMDM4MywgMC4wMDM4MzQsIDAuMDAzODM3LCAwLjAwMzgzOCwgMC4wMDM4MzgsIDAuMDAzODM5IiwgXAotICAgICAgICAgICIwLjAwMzc4LCAwLjAwMzgxOSwgMC4wMDM4MjYsIDAuMDAzODI3LCAwLjAwMzgyOCwgMC4wMDM4MjksIDAuMDAzODMiLCBcCi0gICAgICAgICAgIjAuMDAzNzcsIDAuMDAzODExLCAwLjAwMzgxNywgMC4wMDM4MiwgMC4wMDM4MjEsIDAuMDAzODIzLCAwLjAwMzgyNCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjczNSwgMC4wMDI3NzUsIDAuMDAyNzc5LCAwLjAwMjc4MSwgMC4wMDI3ODIsIDAuMDAyNzgzLCAwLjAwMjc4MyIsIFwKLSAgICAgICAgICAiMC4wMDI3MywgMC4wMDI3NjksIDAuMDAyNzc0LCAwLjAwMjc3NiwgMC4wMDI3NzcsIDAuMDAyNzc4LCAwLjAwMjc3OCIsIFwKLSAgICAgICAgICAiMC4wMDI3MjEsIDAuMDAyNzYyLCAwLjAwMjc2NywgMC4wMDI3NjksIDAuMDAyNzcsIDAuMDAyNzcsIDAuMDAyNzcxIiwgXAotICAgICAgICAgICIwLjAwMjcxNywgMC4wMDI3NTgsIDAuMDAyNzYzLCAwLjAwMjc2NiwgMC4wMDI3NjcsIDAuMDAyNzY3LCAwLjAwMjc2NyIsIFwKLSAgICAgICAgICAiMC4wMDI3MTMsIDAuMDAyNzU1LCAwLjAwMjc2LCAwLjAwMjc2MiwgMC4wMDI3NjMsIDAuMDAyNzY0LCAwLjAwMjc2NCIsIFwKLSAgICAgICAgICAiMC4wMDI3MSwgMC4wMDI3NTIsIDAuMDAyNzU2LCAwLjAwMjc1OSwgMC4wMDI3NiwgMC4wMDI3NjEsIDAuMDAyNzYyIiwgXAotICAgICAgICAgICIwLjAwMjcwOCwgMC4wMDI3NTEsIDAuMDAyNzU4LCAwLjAwMjc2LCAwLjAwMjc2MSwgMC4wMDI3NjIsIDAuMDAyNzYyIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihRTikgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjI2MzQwOTsKLSAgICBmdW5jdGlvbiA6ICJONSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzAxODU3LCAwLjQ5MjM0MiwgMC42MzY4MDUsIDAuODE3Mjk5LCAwLjk5NzkyMSwgMS4xNzgyOCwgMS4zNTg4MiIsIFwKLSAgICAgICAgICAiMC4zMTMzNjcsIDAuNTAzODY1LCAwLjY0ODMyNywgMC44Mjg4MiwgMS4wMDk0MywgMS4xODk3OSwgMS4zNzAzNSIsIFwKLSAgICAgICAgICAiMC4zMjY0NjMsIDAuNTE2OTQ4LCAwLjY2MTQxNiwgMC44NDE5MTEsIDEuMDIyNTMsIDEuMjAyODksIDEuMzgzNDQiLCBcCi0gICAgICAgICAgIjAuMzM4ODU5LCAwLjUyOTM0MSwgMC42NzM4MDUsIDAuODU0MzAzLCAxLjAzNDc5LCAxLjIxNTMsIDEuMzk1ODUiLCBcCi0gICAgICAgICAgIjAuMzUxMDMxLCAwLjU0MTUyMiwgMC42ODU5OSwgMC44NjY0ODMsIDEuMDQ3MTEsIDEuMjI3NDcsIDEuNDA4MDEiLCBcCi0gICAgICAgICAgIjAuMzcwMzkxLCAwLjU2MDg1MywgMC43MDUzMTQsIDAuODg1ODA5LCAxLjA2NjQzLCAxLjI0Njc5LCAxLjQyNzMzIiwgXAotICAgICAgICAgICIwLjM4Njg5OSwgMC41NzczODEsIDAuNzIxODY3LCAwLjkwMjM1OCwgMS4wODI5OCwgMS4yNjMzNCwgMS40NDM4OCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTkzMjUsIDAuNDY0NjQsIDAuNzU1NjEyLCAxLjEyMDc1LCAxLjQ4NzQsIDEuODYwMDIsIDIuMjI1NDYiLCBcCi0gICAgICAgICAgIjAuMTE5MzkxLCAwLjQ2NDg0NywgMC43NTU2MiwgMS4xMjA4MSwgMS40ODc0LCAxLjg1OTk4LCAyLjIyNTc4IiwgXAotICAgICAgICAgICIwLjExOTI4NSwgMC40NjQ5NzUsIDAuNzU1NTk4LCAxLjEyMDc3LCAxLjQ4NzM5LCAxLjg1OTk5LCAyLjIyNTYzIiwgXAotICAgICAgICAgICIwLjExOTIyOSwgMC40NjUyNDQsIDAuNzU1NTYzLCAxLjEyMDY5LCAxLjQ5MDk0LCAxLjg2MDAxLCAyLjIyNTIxIiwgXAotICAgICAgICAgICIwLjExOTM5NywgMC40NjQ5NjcsIDAuNzU1NjAxLCAxLjEyMDc1LCAxLjQ4NzQsIDEuODYsIDIuMjI1NTEiLCBcCi0gICAgICAgICAgIjAuMTE5MjU3LCAwLjQ2NDc1MywgMC43NTU2MSwgMS4xMjA3NSwgMS40ODczOSwgMS44NjAwMiwgMi4yMjU1MiIsIFwKLSAgICAgICAgICAiMC4xMTkyNDcsIDAuNDY1MjQ0LCAwLjc1NTYyMiwgMS4xMjA3NiwgMS40ODc0LCAxLjg2MDAxLCAyLjIyNTU2Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI0OTg4NywgMC40NTc5NjgsIDAuNjIzMDU2LCAwLjgyOTM3NSwgMS4wMzU1LCAxLjI0MTksIDEuNDQ4MTIiLCBcCi0gICAgICAgICAgIjAuMjYxNDM0LCAwLjQ2OTUxOSwgMC42MzQ2MjQsIDAuODQxMDcsIDEuMDQ3MiwgMS4yNTM0NSwgMS40NTk3IiwgXAotICAgICAgICAgICIwLjI3NTM3MiwgMC40ODM0NiwgMC42NDg1MywgMC44NTUwMjYsIDEuMDYxMTYsIDEuMjY3MzYsIDEuNDczNjYiLCBcCi0gICAgICAgICAgIjAuMjg4OTQ5LCAwLjQ5NzAzMywgMC42NjIxMzgsIDAuODY4NTg1LCAxLjA3NDcxLCAxLjI4MDk2LCAxLjQ4NzIzIiwgXAotICAgICAgICAgICIwLjMwMjU4OCwgMC41MTA2NzMsIDAuNjc1Nzc2LCAwLjg4MjIyMywgMS4wODgzNSwgMS4yOTQ2LCAxLjUwMDg1IiwgXAotICAgICAgICAgICIwLjMyNDQ2NywgMC41MzI1NDksIDAuNjk3NjEyLCAwLjkwNDExMiwgMS4xMTAyNSwgMS4zMTY0NSwgMS41MjI3NyIsIFwKLSAgICAgICAgICAiMC4zNDM1MTgsIDAuNTUxNjA4LCAwLjcxNjY5MiwgMC45MjMwNzIsIDEuMTI5MzcsIDEuMzM1NTEsIDEuNTQxNzkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTA1NjY4LCAwLjUwNDgxOCwgMC44MzQwNzIsIDEuMjQzNjgsIDEuNjU0ODMsIDIuMDY0NTUsIDIuNDc2NzMiLCBcCi0gICAgICAgICAgIjAuMTA1NzM3LCAwLjUwNjMyNywgMC44MzQxMjEsIDEuMjQyOTYsIDEuNjU1MzcsIDIuMDY2MDUsIDIuNDc1MzMiLCBcCi0gICAgICAgICAgIjAuMTA1NjY4LCAwLjUwNjMyMSwgMC44MzMzMzksIDEuMjQzMzIsIDEuNjU1NDgsIDIuMDY1OTQsIDIuNDc2ODciLCBcCi0gICAgICAgICAgIjAuMTA1NzM5LCAwLjUwNjMyNiwgMC44MzQxMjQsIDEuMjQyOTUsIDEuNjU1MzcsIDIuMDY2MDcsIDIuNDc1MiIsIFwKLSAgICAgICAgICAiMC4xMDU3MzIsIDAuNTA2MzI4LCAwLjgzNDEyMSwgMS4yNDI5NiwgMS42NTUzNiwgMi4wNjYwNywgMi40NzUzNyIsIFwKLSAgICAgICAgICAiMC4xMDU2NTUsIDAuNTA2MzA0LCAwLjgzMzk2NCwgMS4yNDMxNCwgMS42NTU1LCAyLjA2NTkyLCAyLjQ3NjkiLCBcCi0gICAgICAgICAgIjAuMTA1NjU2LCAwLjUwNjM0NiwgMC44MzMzMDYsIDEuMjQzNDMsIDEuNjUyODgsIDIuMDY2MDIsIDIuNDc2OCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJHTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBub25fdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGZhbGxpbmdfZWRnZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuNDM5NjIsIDAuNjMwMjk1LCAwLjc3NDc2OCwgMC45NTUyNDQsIDEuMTM1ODUsIDEuMzE2MjIsIDEuNDk2NzgiLCBcCi0gICAgICAgICAgIjAuNDUxMDg5LCAwLjY0MTc2NywgMC43ODYyMzQsIDAuOTY2NzE2LCAxLjE0NzMzLCAxLjMyNzY5LCAxLjUwODI1IiwgXAotICAgICAgICAgICIwLjQ2NTgxOSwgMC42NTY0OTMsIDAuODAwOTU5LCAwLjk4MTQ0MiwgMS4xNjIwNSwgMS4zNDI0MSwgMS41MjI5NyIsIFwKLSAgICAgICAgICAiMC40ODAwNzcsIDAuNjcwNzUxLCAwLjgxNTIwMywgMC45OTU3LCAxLjE3NjMxLCAxLjM1NjY3LCAxLjUzNzE1IiwgXAotICAgICAgICAgICIwLjQ5MzcyLCAwLjY4NDM4NCwgMC44Mjg4NDEsIDEuMDA5MzQsIDEuMTg5OCwgMS4zNzAzMywgMS41NTA4NCIsIFwKLSAgICAgICAgICAiMC41MTMyMDUsIDAuNzAzOTA1LCAwLjg0ODM2MSwgMS4wMjg4NywgMS4yMDkzOSwgMS4zODk5LCAxLjU3MDMxIiwgXAotICAgICAgICAgICIwLjUyODU1NSwgMC43MTkyMjQsIDAuODYzNjg1LCAxLjA0NDE4LCAxLjIyNDc1LCAxLjQwNTM0LCAxLjU4NTY2Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEyMDEwMSwgMC40NjUwMzIsIDAuNzU0NTUyLCAxLjEyMDg0LCAxLjQ4NzM5LCAxLjg2MDAxLCAyLjIyNTkiLCBcCi0gICAgICAgICAgIjAuMTIwMTA3LCAwLjQ2NTAzLCAwLjc1NDQzOSwgMS4xMjA4NCwgMS40ODc0MSwgMS44NjAwMSwgMi4yMjU5NCIsIFwKLSAgICAgICAgICAiMC4xMjAwOTUsIDAuNDY1MDMyLCAwLjc1NDM2MiwgMS4xMjA4NSwgMS40ODc0MSwgMS44NiwgMi4yMjU3OCIsIFwKLSAgICAgICAgICAiMC4xMjAwOTEsIDAuNDY1MDMsIDAuNzU1NjM3LCAxLjEyMDg2LCAxLjQ4NzQxLCAxLjg1OTk5LCAyLjIyODUyIiwgXAotICAgICAgICAgICIwLjEyMDAxOCwgMC40NjUwMjgsIDAuNzU0NzIxLCAxLjEyMjAzLCAxLjQ5MDc0LCAxLjg2MDA1LCAyLjIyNTMxIiwgXAotICAgICAgICAgICIwLjEyMDEwNCwgMC40NjUwNDMsIDAuNzU1NjY0LCAxLjEyMjY2LCAxLjQ4NzIsIDEuODU0NjYsIDIuMjI1NDIiLCBcCi0gICAgICAgICAgIjAuMTIwMDcyLCAwLjQ2NTAzNSwgMC43NTU2NjMsIDEuMTIyNTksIDEuNDg3NjgsIDEuODU1MTIsIDIuMjI5MzgiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuNDE0OTU2LCAwLjYyMzA0OSwgMC43ODgxMTEsIDAuOTk0NTIzLCAxLjIwMDc1LCAxLjQwNjk0LCAxLjYxMzI0IiwgXAotICAgICAgICAgICIwLjQyNjM2MiwgMC42MzQ0NiwgMC43OTk1NjEsIDEuMDA1OTIsIDEuMjEyMTUsIDEuNDE4MzcsIDEuNjI0NjMiLCBcCi0gICAgICAgICAgIjAuNDQxMTA4LCAwLjY0OTIwNiwgMC44MTQzMDgsIDEuMDIwNjYsIDEuMjI2ODgsIDEuNDMzMTEsIDEuNjM5MzgiLCBcCi0gICAgICAgICAgIjAuNDU1MzY0LCAwLjY2MzQ2MiwgMC44Mjg1NjMsIDEuMDM0OTIsIDEuMjQxMTUsIDEuNDQ3MzcsIDEuNjUzNjMiLCBcCi0gICAgICAgICAgIjAuNDY4OTk0LCAwLjY3NzA5MywgMC44NDIxOTQsIDEuMDQ4NTUsIDEuMjU0NzgsIDEuNDYxLCAxLjY2NzI2IiwgXAotICAgICAgICAgICIwLjQ4ODQ4NywgMC42OTY1ODUsIDAuODYxNjg2LCAxLjA2ODA0LCAxLjI3NDI4LCAxLjQ4MDQ5LCAxLjY4Njc1IiwgXAotICAgICAgICAgICIwLjUwMzgyLCAwLjcxMTkxOSwgMC44NzcwMiwgMS4wODMzOCwgMS4yODk2MSwgMS40OTU4MiwgMS43MDIwOSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDU3OTMsIDAuNTA2MzE5LCAwLjgzMzk0NSwgMS4yNDMyNSwgMS42NTU1MSwgMi4wNjU5NSwgMi40NzY4NyIsIFwKLSAgICAgICAgICAiMC4xMDU3ODksIDAuNTA2MzYsIDAuODM0MTMxLCAxLjI0MzQ0LCAxLjY1NDE0LCAyLjA2NjAyLCAyLjQ3Njc5IiwgXAotICAgICAgICAgICIwLjEwNTc4OSwgMC41MDYzMzcsIDAuODM0MTI1LCAxLjI0MzQ1LCAxLjY1NDE4LCAyLjA2NiwgMi40NzY4MSIsIFwKLSAgICAgICAgICAiMC4xMDU3ODksIDAuNTA2MzQyLCAwLjgzNDEzLCAxLjI0MzQ1LCAxLjY1NDE0LCAyLjA2NjAyLCAyLjQ3Njc5IiwgXAotICAgICAgICAgICIwLjEwNTc5LCAwLjUwNjM0MiwgMC44MzQxMjksIDEuMjQzNDQsIDEuNjU0MTQsIDIuMDY2MDIsIDIuNDc2NzkiLCBcCi0gICAgICAgICAgIjAuMTA1NzksIDAuNTA2MzQyLCAwLjgzNDEyOSwgMS4yNDM0NCwgMS42NTQxNCwgMi4wNjYwMiwgMi40NzY3OSIsIFwKLSAgICAgICAgICAiMC4xMDU3OTEsIDAuNTA2MzQyLCAwLjgzNDE1NSwgMS4yNDM0NCwgMS42NTQxNCwgMi4wNjYwMiwgMi40NzY3OSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcmlzaW5nX2VkZ2U7Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjM4NjEzNSwgMC41OTQyMzEsIDAuNzU5MzI1LCAwLjk2NTY5OCwgMS4xNzE5NSwgMS4zNzgxMywgMS41ODQ0MiIsIFwKLSAgICAgICAgICAiMC4zOTc1NzUsIDAuNjA1Njc0LCAwLjc3MDc3NSwgMC45NzcxMzIsIDEuMTgzNCwgMS4zODk1OCwgMS41OTU4NCIsIFwKLSAgICAgICAgICAiMC40MTEyMDIsIDAuNjE5MzAyLCAwLjc4NDQwMiwgMC45OTA3NTksIDEuMTk3MTQsIDEuNDAzMjEsIDEuNjA5NDciLCBcCi0gICAgICAgICAgIjAuNDI0NTkzLCAwLjYzMjY5NCwgMC43OTc3OTEsIDEuMDA0MTcsIDEuMjEwNTEsIDEuNDE2NiwgMS42MjI4NyIsIFwKLSAgICAgICAgICAiMC40MzgzMzksIDAuNjQ2NDM4LCAwLjgxMTU0LCAxLjAxNzksIDEuMjI0MTYsIDEuNDMwMzUsIDEuNjM2NjEiLCBcCi0gICAgICAgICAgIjAuNDYwMDM5LCAwLjY2ODE0LCAwLjgzMzIzOSwgMS4wMzk2LCAxLjI0NTk3LCAxLjQ1MjA1LCAxLjY1ODMxIiwgXAotICAgICAgICAgICIwLjQ3ODkyNiwgMC42ODcwMTcsIDAuODUyMTI1LCAxLjA1ODU2LCAxLjI2NDczLCAxLjQ3MTA3LCAxLjY3NzE4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwNTc5NywgMC41MDYzMjksIDAuODMzMTYzLCAxLjI0MzQsIDEuNjU1NTUsIDIuMDY1OTgsIDIuNDc2ODQiLCBcCi0gICAgICAgICAgIjAuMTA1Nzk0LCAwLjUwNjM0NSwgMC44MzQxMjYsIDEuMjQzNDgsIDEuNjUzODgsIDIuMDY2MDMsIDIuNDc2NzgiLCBcCi0gICAgICAgICAgIjAuMTA1Nzk0LCAwLjUwNjM0NiwgMC44MzQxMiwgMS4yNDM0OCwgMS42NTI3LCAyLjA2NjAzLCAyLjQ3Njc3IiwgXAotICAgICAgICAgICIwLjEwNTgyOCwgMC41MDYzMzUsIDAuODM0MDksIDEuMjQzMzksIDEuNjUzNjUsIDIuMDY2MDIsIDIuNDc2NzYiLCBcCi0gICAgICAgICAgIjAuMTA1Nzk0LCAwLjUwNjM0NCwgMC44MzQxMjYsIDEuMjQzNDgsIDEuNjUzODYsIDIuMDY2MDIsIDIuNDc2NzgiLCBcCi0gICAgICAgICAgIjAuMTA1Nzk2LCAwLjUwNjM0NiwgMC44MzQxMTcsIDEuMjQzNDgsIDEuNjUzNjEsIDIuMDY2MDMsIDIuNDc2NzciLCBcCi0gICAgICAgICAgIjAuMTA1ODExLCAwLjUwNjE3MSwgMC44MzQwNzcsIDEuMjQzMTQsIDEuNjU0MDcsIDIuMDYzNjksIDIuNDc2NjgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUk4iOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGZhbGxpbmdfZWRnZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzg1ODIsIDAuNTc2MzI4LCAwLjcyMDgwMSwgMC45MDEzMDUsIDEuMDgxOTIsIDEuMjYyMjksIDEuNDQyNjciLCBcCi0gICAgICAgICAgIjAuMzk3MTQxLCAwLjU4NzY1MSwgMC43MzIxMjEsIDAuOTEyNjI0LCAxLjA5MzI0LCAxLjI3MzYxLCAxLjQ1Mzk5IiwgXAotICAgICAgICAgICIwLjQxMTg1NCwgMC42MDIzODQsIDAuNzQ2ODU4LCAwLjkyNzM2LCAxLjEwNzk4LCAxLjI4ODM1LCAxLjQ2ODczIiwgXAotICAgICAgICAgICIwLjQyNjUyMywgMC42MTcwMjksIDAuNzYxNTAyLCAwLjk0MjAwNSwgMS4xMjI2MiwgMS4zMDI5OSwgMS40ODMzOCIsIFwKLSAgICAgICAgICAiMC40NDEwNzIsIDAuNjMxNjA0LCAwLjc3NjA3NiwgMC45NTY2NDUsIDEuMTM3MSwgMS4zMTc1OCwgMS40OTc5NSIsIFwKLSAgICAgICAgICAiMC40NjM4MSwgMC42NTQzMzQsIDAuNzk4ODA1LCAwLjk3OTMwNywgMS4xNTk5MywgMS4zNDAyOSwgMS41MjA2OCIsIFwKLSAgICAgICAgICAiMC40ODI2MTksIDAuNjczMTI5LCAwLjgxNzYwMiwgMC45OTgxMDQsIDEuMTc4NzMsIDEuMzU5MDksIDEuNTM5NDciKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTE5MzY3LCAwLjQ2NDk4OSwgMC43NTU2NzcsIDEuMTIwODYsIDEuNDg3NDMsIDEuODU5OTQsIDIuMjI4NDkiLCBcCi0gICAgICAgICAgIjAuMTE5MzY3LCAwLjQ2NTI3OSwgMC43NTU2NzMsIDEuMTIyMzYsIDEuNDg3NDMsIDEuODU5OTMsIDIuMjI4OCIsIFwKLSAgICAgICAgICAiMC4xMTk1MzgsIDAuNDY1MjgsIDAuNzU1Njc4LCAxLjEyMjAzLCAxLjQ5MTAxLCAxLjg1OTk3LCAyLjIyODU4IiwgXAotICAgICAgICAgICIwLjExOTUxMywgMC40NjQ5OTYsIDAuNzU1NjcyLCAxLjEyMDkyLCAxLjQ4NzQ0LCAxLjg1OTkzLCAyLjIyOTM3IiwgXAotICAgICAgICAgICIwLjExOTQ3NiwgMC40NjUyODUsIDAuNzU1NjMxLCAxLjEyMjgsIDEuNDkwODcsIDEuODU5OTcsIDIuMjI4NjQiLCBcCi0gICAgICAgICAgIjAuMTE5NDMxLCAwLjQ2NTA1NCwgMC43NTU2NjQsIDEuMTIwODMsIDEuNDg3NDMsIDEuODU5OTEsIDIuMjI4NDMiLCBcCi0gICAgICAgICAgIjAuMTE5MzY3LCAwLjQ2NTA0NiwgMC43NTU2NjQsIDEuMTIwODIsIDEuNDg3NDMsIDEuODU5OTIsIDIuMjI4NDIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiU04iOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGNsZWFyOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMDI4MDYsIDAuMzkzMTkzLCAwLjUzNzY1MywgMC43MTgxNDYsIDAuODk4NzM0LCAxLjA3OTEyLCAxLjI1OTkyIiwgXAotICAgICAgICAgICIwLjIxNDA5MiwgMC40MDQ1MTIsIDAuNTQ4OTU4LCAwLjcyOTQzOCwgMC45MDk5MDMsIDEuMDkwNDIsIDEuMjcxMyIsIFwKLSAgICAgICAgICAiMC4yMjczMDQsIDAuNDE3NywgMC41NjIxNTQsIDAuNzQyNjQ5LCAwLjkyMzI3NiwgMS4xMDM2MywgMS4yODQ0OSIsIFwKLSAgICAgICAgICAiMC4yNDA0OTIsIDAuNDMwOTA3LCAwLjU3NTM2NywgMC43NTU4ODMsIDAuOTM2NDI1LCAxLjExNjg5LCAxLjI5Nzc0IiwgXAotICAgICAgICAgICIwLjI1MzgzMywgMC40NDQyNDksIDAuNTg4Njk5LCAwLjc2OTE5LCAwLjk0OTgwOCwgMS4xMzAxNywgMS4zMTEwMSIsIFwKLSAgICAgICAgICAiMC4yNzUwNTEsIDAuNDY1NDcyLCAwLjYwOTkyNiwgMC43OTA0MTksIDAuOTcxMDM5LCAxLjE1MTQsIDEuMzMyMjUiLCBcCi0gICAgICAgICAgIjAuMjkzNzE3LCAwLjQ4NDE3NywgMC42Mjg2NDksIDAuODA5MTQzLCAwLjk4OTcyOCwgMS4xNzAxNywgMS4zNTA2NiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTg5MzksIDAuNDY1MTU2LCAwLjc1NTYyNiwgMS4xMjA5NCwgMS40ODczOCwgMS44NTk1MSwgMi4yMjQyNCIsIFwKLSAgICAgICAgICAiMC4xMTg5OTEsIDAuNDY1MjMzLCAwLjc1NTU5NSwgMS4xMjI1NSwgMS40OTA4MiwgMS44NjAwNiwgMi4yMjQwNSIsIFwKLSAgICAgICAgICAiMC4xMTg5NTYsIDAuNDY1MjAzLCAwLjc1NTU0NSwgMS4xMjIyOCwgMS40OTA5LCAxLjg2MDA4LCAyLjIyNDA1IiwgXAotICAgICAgICAgICIwLjExODk3NiwgMC40NjUxNzMsIDAuNzU1NTU1LCAxLjEyMDY2LCAxLjQ5MTI5LCAxLjg2MDAzLCAyLjIyNDA0IiwgXAotICAgICAgICAgICIwLjExOTAwOCwgMC40NjQ4MDgsIDAuNzU1NTYzLCAxLjEyMDc1LCAxLjQ4NzM4LCAxLjg1OTk5LCAyLjIyNDA4IiwgXAotICAgICAgICAgICIwLjExODk5OCwgMC40NjQ4MDMsIDAuNzU1NTY4LCAxLjEyMDc0LCAxLjQ4NzM4LCAxLjg2MDAxLCAyLjIyNDA2IiwgXAotICAgICAgICAgICIwLjExOTEyMywgMC40NjUyMjUsIDAuNzU1NTQyLCAxLjEyMjQ3LCAxLjQ4NzM4LCAxLjg2MDIsIDIuMjI4NjciKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTI3ODcyLCAwLjMzNjg5NCwgMC41MDE4MywgMC43MDc5OTMsIDAuOTE0MiwgMS4xMjA0NSwgMS4zMjY2NSIsIFwKLSAgICAgICAgICAiMC4xMzk0MjUsIDAuMzQ4NDU4LCAwLjUxMzM5NCwgMC43MTk1NTksIDAuOTI1ODEsIDEuMTMxOTksIDEuMzM4MiIsIFwKLSAgICAgICAgICAiMC4xNTQwOTEsIDAuMzYzMTUxLCAwLjUyODA5MywgMC43MzQyNiwgMC45NDA0NjEsIDEuMTQ2NzIsIDEuMzUyOTIiLCBcCi0gICAgICAgICAgIjAuMTY4NzY3LCAwLjM3Nzg1LCAwLjU0Mjc5NywgMC43NDg5NjUsIDAuOTU1MTc0LCAxLjE2MTQzLCAxLjM2NzYzIiwgXAotICAgICAgICAgICIwLjE4MzY3LCAwLjM5Mjc3NywgMC41NTc3MywgMC43NjM4ODUsIDAuOTcwMTE4LCAxLjE3NjM0LCAxLjM4MjU3IiwgXAotICAgICAgICAgICIwLjIwNzE3MSwgMC40MTYyOTMsIDAuNTgxMjYsIDAuNzg3NDQ1LCAwLjk5MzY0OSwgMS4xOTk5LCAxLjQwNjExIiwgXAotICAgICAgICAgICIwLjIyNzA2MywgMC40MzYyMjIsIDAuNjAxMTgzLCAwLjgwNzM2NCwgMS4wMTM2MywgMS4yMTk4MSwgMS40MjYwNCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDU0OSwgMC41MDY1NTUsIDAuODMzNjcxLCAxLjI0Mzk5LCAxLjY1NDY4LCAyLjA2NDE0LCAyLjQ3NjkyIiwgXAotICAgICAgICAgICIwLjEwNTUwOSwgMC41MDY1NTYsIDAuODMzNjY1LCAxLjI0Mzk3LCAxLjY1Mzk1LCAyLjA2NDE0LCAyLjQ3NjA1IiwgXAotICAgICAgICAgICIwLjEwNTUxLCAwLjUwNjQ1LCAwLjgzNDI5OCwgMS4yNDM3NiwgMS42NTUzOSwgMi4wNjQ2LCAyLjQ3NzQzIiwgXAotICAgICAgICAgICIwLjEwNTUxMiwgMC41MDYzNzQsIDAuODM0Mjk0LCAxLjI0Mzc5LCAxLjY1NTQsIDIuMDY0NzcsIDIuNDc2MDUiLCBcCi0gICAgICAgICAgIjAuMTA1NTQzLCAwLjUwNjQ4OSwgMC44MzQzMDMsIDEuMjQzOTIsIDEuNjUzOTUsIDIuMDY1MzMsIDIuNDc3MTciLCBcCi0gICAgICAgICAgIjAuMTA1NzM3LCAwLjUwNjU2OCwgMC44MzQzMDEsIDEuMjQzOTEsIDEuNjUzOTIsIDIuMDY1MzIsIDIuNDc1OTEiLCBcCi0gICAgICAgICAgIjAuMTA2MTYyLCAwLjUwNjYwMSwgMC44MzQzMDksIDEuMjQzODUsIDEuNjUzODYsIDIuMDY0NDYsIDIuNDc2MDIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJEIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDM4MTUsIDAuMDAzODU4LCAwLjAwMzg2NCwgMC4wMDM4NjcsIDAuMDAzODY4LCAwLjAwMzg2OSwgMC4wMDM4NjkiLCBcCi0gICAgICAgICAgIjAuMDAzODExLCAwLjAwMzg1NSwgMC4wMDM4NiwgMC4wMDM4NjMsIDAuMDAzODY1LCAwLjAwMzg2NiwgMC4wMDM4NjYiLCBcCi0gICAgICAgICAgIjAuMDAzODEsIDAuMDAzODU0LCAwLjAwMzg1OSwgMC4wMDM4NjIsIDAuMDAzODY0LCAwLjAwMzg2NSwgMC4wMDM4NjUiLCBcCi0gICAgICAgICAgIjAuMDAzODA5LCAwLjAwMzg1MiwgMC4wMDM4NTgsIDAuMDAzODYxLCAwLjAwMzg2MiwgMC4wMDM4NjMsIDAuMDAzODYzIiwgXAotICAgICAgICAgICIwLjAwMzgwNiwgMC4wMDM4NTEsIDAuMDAzODU2LCAwLjAwMzg1OCwgMC4wMDM4NiwgMC4wMDM4NjEsIDAuMDAzODYyIiwgXAotICAgICAgICAgICIwLjAwMzgwNiwgMC4wMDM4NDksIDAuMDAzODU1LCAwLjAwMzg1NywgMC4wMDM4NTgsIDAuMDAzODYsIDAuMDAzODYiLCBcCi0gICAgICAgICAgIjAuMDAzODA0LCAwLjAwMzg0OCwgMC4wMDM4NTMsIDAuMDAzODU3LCAwLjAwMzg1NywgMC4wMDM4NTgsIDAuMDAzODU5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzNDM0LCAwLjAwMzQ3NCwgMC4wMDM0NzksIDAuMDAzNDgxLCAwLjAwMzQ4MiwgMC4wMDM0ODUsIDAuMDAzNDgyIiwgXAotICAgICAgICAgICIwLjAwMzQyNiwgMC4wMDM0NjcsIDAuMDAzNDcxLCAwLjAwMzQ3NCwgMC4wMDM0NzUsIDAuMDAzNDc2LCAwLjAwMzQ3NiIsIFwKLSAgICAgICAgICAiMC4wMDM0MjQsIDAuMDAzNDY0LCAwLjAwMzQ2OSwgMC4wMDM0NzEsIDAuMDAzNDcyLCAwLjAwMzQ3NCwgMC4wMDM0NzQiLCBcCi0gICAgICAgICAgIjAuMDAzNDIsIDAuMDAzNDYxLCAwLjAwMzQ2NiwgMC4wMDM0NjgsIDAuMDAzNDY5LCAwLjAwMzQ3LCAwLjAwMzQ3MSIsIFwKLSAgICAgICAgICAiMC4wMDM0MTksIDAuMDAzNDU5LCAwLjAwMzQ2NCwgMC4wMDM0NjYsIDAuMDAzNDY3LCAwLjAwMzQ2OCwgMC4wMDM0NjkiLCBcCi0gICAgICAgICAgIjAuMDAzNDE3LCAwLjAwMzQ1OCwgMC4wMDM0NjIsIDAuMDAzNDY1LCAwLjAwMzQ2NiwgMC4wMDM0NjQsIDAuMDAzNDY3IiwgXAotICAgICAgICAgICIwLjAwMzQxNiwgMC4wMDM0NTYsIDAuMDAzNDYsIDAuMDAzNDY0LCAwLjAwMzQ2NCwgMC4wMDM0NjQsIDAuMDAzNDY0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiR04iOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNTQ3NCwgMC4wMDU1MTYsIDAuMDA1NTIsIDAuMDA1NTIsIDAuMDA1NTIsIDAuMDA1NTE5LCAwLjAwNTUxOSIsIFwKLSAgICAgICAgICAiMC4wMDU0NjcsIDAuMDA1NTEsIDAuMDA1NTEzLCAwLjAwNTUxNCwgMC4wMDU1MTMsIDAuMDA1NTEzLCAwLjAwNTUxMiIsIFwKLSAgICAgICAgICAiMC4wMDU0NjIsIDAuMDA1NTA0LCAwLjAwNTUwOCwgMC4wMDU1MDgsIDAuMDA1NTA3LCAwLjAwNTUwNywgMC4wMDU1MDYiLCBcCi0gICAgICAgICAgIjAuMDA1NDU4LCAwLjAwNTUwMSwgMC4wMDU1MDQsIDAuMDA1NTA2LCAwLjAwNTUwNCwgMC4wMDU1MDMsIDAuMDA1NTA1IiwgXAotICAgICAgICAgICIwLjAwNTQ1NiwgMC4wMDU0OTgsIDAuMDA1NTAzLCAwLjAwNTUwMiwgMC4wMDU1MDIsIDAuMDA1NTAyLCAwLjAwNTUwMSIsIFwKLSAgICAgICAgICAiMC4wMDU0NTIsIDAuMDA1NDk1LCAwLjAwNTUsIDAuMDA1NDk5LCAwLjAwNTQ5OSwgMC4wMDU1LCAwLjAwNTQ5NiIsIFwKLSAgICAgICAgICAiMC4wMDU0NTEsIDAuMDA1NDk0LCAwLjAwNTQ5OCwgMC4wMDU0OTksIDAuMDA1NDk4LCAwLjAwNTQ5OCwgMC4wMDU0OTciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDUxNzEsIDAuMDA1MjExLCAwLjAwNTIxNSwgMC4wMDUyMTcsIDAuMDA1MjE4LCAwLjAwNTIxOSwgMC4wMDUyMTkiLCBcCi0gICAgICAgICAgIjAuMDA1MTY0LCAwLjAwNTIwMywgMC4wMDUyMDgsIDAuMDA1MjEsIDAuMDA1MjExLCAwLjAwNTIxMiwgMC4wMDUyMTIiLCBcCi0gICAgICAgICAgIjAuMDA1MTU4LCAwLjAwNTE5OCwgMC4wMDUyMDIsIDAuMDA1MjA0LCAwLjAwNTIwNSwgMC4wMDUyMDcsIDAuMDA1MjA3IiwgXAotICAgICAgICAgICIwLjAwNTE1NSwgMC4wMDUxOTUsIDAuMDA1MTk5LCAwLjAwNTIwMSwgMC4wMDUyMDIsIDAuMDA1MjAzLCAwLjAwNTIwMyIsIFwKLSAgICAgICAgICAiMC4wMDUxNTMsIDAuMDA1MTkyLCAwLjAwNTE5NywgMC4wMDUxOTksIDAuMDA1MiwgMC4wMDUyMDEsIDAuMDA1MjAxIiwgXAotICAgICAgICAgICIwLjAwNTE0OSwgMC4wMDUxODksIDAuMDA1MTkzLCAwLjAwNTE5NiwgMC4wMDUxOTcsIDAuMDA1MTk3LCAwLjAwNTE5OCIsIFwKLSAgICAgICAgICAiMC4wMDUxNDksIDAuMDA1MTg4LCAwLjAwNTE5MywgMC4wMDUxOTUsIDAuMDA1MTk2LCAwLjAwNTE5NywgMC4wMDUxOTciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1MDQ3LCAwLjAwNTA5LCAwLjAwNTA5NSwgMC4wMDUwOTgsIDAuMDA1MDk5LCAwLjAwNTEsIDAuMDA1MSIsIFwKLSAgICAgICAgICAiMC4wMDUwNCwgMC4wMDUwODMsIDAuMDA1MDg5LCAwLjAwNTA5MSwgMC4wMDUwOTMsIDAuMDA1MDkzLCAwLjAwNTA5NCIsIFwKLSAgICAgICAgICAiMC4wMDUwMzQsIDAuMDA1MDc4LCAwLjAwNTA4MywgMC4wMDUwODYsIDAuMDA1MDg3LCAwLjAwNTA4OCwgMC4wMDUwODkiLCBcCi0gICAgICAgICAgIjAuMDA1MDMzLCAwLjAwNTA3NiwgMC4wMDUwODEsIDAuMDA1MDgzLCAwLjAwNTA4NSwgMC4wMDUwODYsIDAuMDA1MDg2IiwgXAotICAgICAgICAgICIwLjAwNTAyOCwgMC4wMDUwNzIsIDAuMDA1MDc5LCAwLjAwNTA4LCAwLjAwNTA4MiwgMC4wMDUwODMsIDAuMDA1MDg0IiwgXAotICAgICAgICAgICIwLjAwNTAyNywgMC4wMDUwNzEsIDAuMDA1MDc2LCAwLjAwNTA3OSwgMC4wMDUwOCwgMC4wMDUwODEsIDAuMDA1MDgxIiwgXAotICAgICAgICAgICIwLjAwNTAyNiwgMC4wMDUwNjksIDAuMDA1MDc0LCAwLjAwNTA3NywgMC4wMDUwNzgsIDAuMDA1MDc5LCAwLjAwNTA4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0Mjg3LCAwLjAwNDMyNiwgMC4wMDQzMywgMC4wMDQzMzMsIDAuMDA0MzM0LCAwLjAwNDMzNCwgMC4wMDQzMzUiLCBcCi0gICAgICAgICAgIjAuMDA0MjgsIDAuMDA0MzIsIDAuMDA0MzI0LCAwLjAwNDMyNiwgMC4wMDQzMjcsIDAuMDA0MzI4LCAwLjAwNDMyOCIsIFwKLSAgICAgICAgICAiMC4wMDQyNzUsIDAuMDA0MzE1LCAwLjAwNDMxOSwgMC4wMDQzMjIsIDAuMDA0MzIyLCAwLjAwNDMyMywgMC4wMDQzMjQiLCBcCi0gICAgICAgICAgIjAuMDA0MjcyLCAwLjAwNDMxMiwgMC4wMDQzMTYsIDAuMDA0MzE5LCAwLjAwNDMyLCAwLjAwNDMyMSwgMC4wMDQzMjEiLCBcCi0gICAgICAgICAgIjAuMDA0MjcxLCAwLjAwNDMxLCAwLjAwNDMxNSwgMC4wMDQzMTcsIDAuMDA0MzE4LCAwLjAwNDMxOSwgMC4wMDQzMTkiLCBcCi0gICAgICAgICAgIjAuMDA0MjY4LCAwLjAwNDMwOCwgMC4wMDQzMTIsIDAuMDA0MzE0LCAwLjAwNDMxNSwgMC4wMDQzMTYsIDAuMDA0MzE2IiwgXAotICAgICAgICAgICIwLjAwNDI2OCwgMC4wMDQzMDgsIDAuMDA0MzEyLCAwLjAwNDMxNSwgMC4wMDQzMTUsIDAuMDA0MzE2LCAwLjAwNDMxNiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI3MzUsIDAuMDAyNzc1LCAwLjAwMjc3OSwgMC4wMDI3ODEsIDAuMDAyNzgyLCAwLjAwMjc4MywgMC4wMDI3ODMiLCBcCi0gICAgICAgICAgIjAuMDAyNzMsIDAuMDAyNzY5LCAwLjAwMjc3NCwgMC4wMDI3NzYsIDAuMDAyNzc3LCAwLjAwMjc3OCwgMC4wMDI3NzgiLCBcCi0gICAgICAgICAgIjAuMDAyNzIxLCAwLjAwMjc2MiwgMC4wMDI3NjcsIDAuMDAyNzY5LCAwLjAwMjc3LCAwLjAwMjc3LCAwLjAwMjc3MSIsIFwKLSAgICAgICAgICAiMC4wMDI3MTcsIDAuMDAyNzU4LCAwLjAwMjc2MywgMC4wMDI3NjYsIDAuMDAyNzY3LCAwLjAwMjc2NywgMC4wMDI3NjciLCBcCi0gICAgICAgICAgIjAuMDAyNzEzLCAwLjAwMjc1NSwgMC4wMDI3NiwgMC4wMDI3NjIsIDAuMDAyNzYzLCAwLjAwMjc2NCwgMC4wMDI3NjQiLCBcCi0gICAgICAgICAgIjAuMDAyNzEsIDAuMDAyNzUyLCAwLjAwMjc1NiwgMC4wMDI3NTksIDAuMDAyNzYsIDAuMDAyNzYxLCAwLjAwMjc2MiIsIFwKLSAgICAgICAgICAiMC4wMDI3MDgsIDAuMDAyNzUxLCAwLjAwMjc1OCwgMC4wMDI3NiwgMC4wMDI3NjEsIDAuMDAyNzYyLCAwLjAwMjc2MiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzgzLCAwLjAwMzg1OSwgMC4wMDM4NjIsIDAuMDAzODYzLCAwLjAwMzg2NCwgMC4wMDM4NjYsIDAuMDAzODY2IiwgXAotICAgICAgICAgICIwLjAwMzgyMywgMC4wMDM4NTMsIDAuMDAzODU2LCAwLjAwMzg1OCwgMC4wMDM4NTgsIDAuMDAzODU5LCAwLjAwMzg2IiwgXAotICAgICAgICAgICIwLjAwMzgxNCwgMC4wMDM4NDYsIDAuMDAzODUsIDAuMDAzODUxLCAwLjAwMzg1MiwgMC4wMDM4NTIsIDAuMDAzODUzIiwgXAotICAgICAgICAgICIwLjAwMzgwNCwgMC4wMDM4MzgsIDAuMDAzODQyLCAwLjAwMzg0MywgMC4wMDM4NDYsIDAuMDAzODQ1LCAwLjAwMzg0NyIsIFwKLSAgICAgICAgICAiMC4wMDM3OTQsIDAuMDAzODMsIDAuMDAzODM0LCAwLjAwMzgzNywgMC4wMDM4MzgsIDAuMDAzODM4LCAwLjAwMzgzOSIsIFwKLSAgICAgICAgICAiMC4wMDM3OCwgMC4wMDM4MTksIDAuMDAzODI2LCAwLjAwMzgyNywgMC4wMDM4MjgsIDAuMDAzODI5LCAwLjAwMzgzIiwgXAotICAgICAgICAgICIwLjAwMzc3LCAwLjAwMzgxMSwgMC4wMDM4MTcsIDAuMDAzODIsIDAuMDAzODIxLCAwLjAwMzgyMywgMC4wMDM4MjQiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFJOKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA5MzUyMzg7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwOTM1MjM4OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDkyNTgxMzsKLSAgICBjbG9jayA6IHRydWU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyMDk0LCAwLjAwMjA3NSwgMC4wMDIwNjQsIDAuMDAyMDYsIDAuMDAyMDYsIDAuMDAyMDcsIDAuMDAyMDgxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzM0LCAwLjAwMDMzMiwgMC4wMDAzMzIsIDAuMDAwMzMyLCAwLjAwMDMzMiwgMC4wMDAzMzIsIDAuMDAwMzMyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkdOIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIkQmU04iOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8xX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMTYyNSwgLTAuMTUxMjUsIC0wLjEzMjUsIC0wLjEyLCAtMC4xMDc1LCAtMC4wODUsIC0wLjA3IiwgXAotICAgICAgICAgICItMC4xNzM3NSwgLTAuMTYyNSwgLTAuMTUsIC0wLjEzMTI1LCAtMC4xMTg3NSwgLTAuMDk2MjUsIC0wLjA4MTI1IiwgXAotICAgICAgICAgICItMC4xODYyNSwgLTAuMTc1LCAtMC4xNjI1LCAtMC4xNDM3NSwgLTAuMTMxMjUsIC0wLjEwODc1LCAtMC4xIiwgXAotICAgICAgICAgICItMC4xOTg3NSwgLTAuMTg3NSwgLTAuMTc1LCAtMC4xNTYyNSwgLTAuMTQzNzUsIC0wLjEyNzUsIC0wLjExMjUiLCBcCi0gICAgICAgICAgIi0wLjIxNzUsIC0wLjIsIC0wLjE4NzUsIC0wLjE3NSwgLTAuMTU2MjUsIC0wLjE0LCAtMC4xMjUiLCBcCi0gICAgICAgICAgIi0wLjIzMzc1LCAtMC4yMjI1LCAtMC4yMSwgLTAuMTkxMjUsIC0wLjE3ODc1LCAtMC4xNjI1LCAtMC4xNDc1IiwgXAotICAgICAgICAgICItMC4yNTUsIC0wLjI0Mzc1LCAtMC4yMzEyNSwgLTAuMjEyNSwgLTAuMiwgLTAuMTc3NSwgLTAuMTYyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQmU04iOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4zMjYxNCwgMC4zMzc3NTEsIDAuMzUxOTAzLCAwLjM2NTI0MSwgMC4zNzgyMywgMC4zOTgyNiwgMC40MTUzOTIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiR04iOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIkQmU04iOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8xX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMiwgMC4xODg3NSwgMC4xNywgMC4xNTc1LCAwLjEzODc1LCAwLjEyMjUsIDAuMTAxMjUiLCBcCi0gICAgICAgICAgIjAuMjExMjUsIDAuMiwgMC4xODEyNSwgMC4xNjg3NSwgMC4xNSwgMC4xMzM3NSwgMC4xMTI1IiwgXAotICAgICAgICAgICIwLjIyMzc1LCAwLjIxMjUsIDAuMTkzNzUsIDAuMTgxMjUsIDAuMTY4NzUsIDAuMTQ2MjUsIDAuMTMxMjUiLCBcCi0gICAgICAgICAgIjAuMjM2MjUsIDAuMjI1LCAwLjIxMjUsIDAuMTkzNzUsIDAuMTgxMjUsIDAuMTU4NzUsIDAuMTQzNzUiLCBcCi0gICAgICAgICAgIjAuMjQ4NzUsIDAuMjM3NSwgMC4yMjUsIDAuMjA2MjUsIDAuMTkzNzUsIDAuMTcxMjUsIDAuMTU2MjUiLCBcCi0gICAgICAgICAgIjAuMjcxMjUsIDAuMjYsIDAuMjQxMjUsIDAuMjI4NzUsIDAuMjE2MjUsIDAuMTkzNzUsIDAuMTc4NzUiLCBcCi0gICAgICAgICAgIjAuMjkyNSwgMC4yODEyNSwgMC4yNjI1LCAwLjI1LCAwLjIzMTI1LCAwLjIwODc1LCAwLjE5Mzc1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTTikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNzA4OTIxOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDcwODkyMTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA3MDcxOTU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjQyLCAwLjAwMDI0MiwgMC4wMDAyNDIsIDAuMDAwMjQyLCAwLjAwMDI0MiwgMC4wMDAyNDIsIDAuMDAwMjQyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjUsIDAuMDAwMjQ1LCAwLjAwMDI0NCwgMC4wMDAyNDQsIDAuMDAwMjQzLCAwLjAwMDI0MywgMC4wMDAyNDMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiU04iOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFEIjsKLSAgICAgIHNkZl9jb25kIDogIkQgPT0gMSdiMCI7Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4yMDk1MzUsIDAuMjIxMDA1LCAwLjIzNTM2MywgMC4yNDk2NzQsIDAuMjY0MTk1LCAwLjI4NzA4NCwgMC4zMDYzNjMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiR04iOwotICAgICAgdGltaW5nX3R5cGUgOiByZWNvdmVyeV9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEJlJOIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9STl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHJlY292ZXJ5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMTg3NSwgLTAuMDMsIC0wLjA0MjUsIC0wLjA1NSwgLTAuMDczNzUsIC0wLjA5NjI1LCAtMC4xMTEyNSIsIFwKLSAgICAgICAgICAiLTAuMDA3NSwgLTAuMDE4NzUsIC0wLjAzMTI1LCAtMC4wNSwgLTAuMDYyNSwgLTAuMDg1LCAtMC4xMDYyNSIsIFwKLSAgICAgICAgICAiMC4wMDUsIC0wLjAwNjI1LCAtMC4wMTg3NSwgLTAuMDM3NSwgLTAuMDUsIC0wLjA3MjUsIC0wLjA5Mzc1IiwgXAotICAgICAgICAgICIwLjAxNzUsIDAuMDA2MjUsIC0wLjAwNjI1LCAtMC4wMjUsIC0wLjAzNzUsIC0wLjA2LCAtMC4wODEyNSIsIFwKLSAgICAgICAgICAiMC4wMywgMC4wMTg3NSwgMCwgLTAuMDEyNSwgLTAuMDI1LCAtMC4wNDc1LCAtMC4wNjg3NSIsIFwKLSAgICAgICAgICAiMC4wNDYyNSwgMC4wMzUsIDAuMDIyNSwgMC4wMDM3NSwgLTAuMDA4NzUsIC0wLjAzMTI1LCAtMC4wNTI1IiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDUsIDAuMDM3NSwgMC4wMjUsIDAuMDA2MjUsIC0wLjAxNjI1LCAtMC4wMzEyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJlY292ZXJ5X3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiR04iOwotICAgICAgc2RmX2NvbmQgOiAiR04gPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQocmVjb3ZlcnlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDI1LCAwLjAxMzc1LCAwLjAwMTI1LCAtMC4wMTEyNSwgLTAuMDE3NSwgLTAuMDMzNzUsIC0wLjA0MjUiLCBcCi0gICAgICAgICAgIjAuMDMsIDAuMDI1LCAwLjAxMjUsIDAsIC0wLjAwNjI1LCAtMC4wMjI1LCAtMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4wNDI1LCAwLjAzNzUsIDAuMDI1LCAwLjAxMjUsIDAuMDA2MjUsIC0wLjAxLCAtMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4wNTUsIDAuMDUsIDAuMDM3NSwgMC4wMjUsIDAuMDE4NzUsIDAuMDAyNSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMDY3NSwgMC4wNjI1LCAwLjA1LCAwLjAzNzUsIDAuMDI1LCAwLjAxNSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiMC4wOSwgMC4wNzg3NSwgMC4wNjYyNSwgMC4wNTM3NSwgMC4wNDc1LCAwLjAzMTI1LCAwLjAyMjUiLCBcCi0gICAgICAgICAgIjAuMDk4NzUsIDAuMDkzNzUsIDAuMDgxMjUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNDYyNSwgMC4wMzc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkdOIjsKLSAgICAgIHRpbWluZ190eXBlIDogcmVtb3ZhbF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEJlJOIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9STl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHJlbW92YWxfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDgxMjUsIDAuMDk4NzUsIDAuMTExMjUsIDAuMTIzNzUsIDAuMTQyNSwgMC4xNjUsIDAuMTgiLCBcCi0gICAgICAgICAgIjAuMDcsIDAuMDg3NSwgMC4xLCAwLjExMjUsIDAuMTMxMjUsIDAuMTUzNzUsIDAuMTY4NzUiLCBcCi0gICAgICAgICAgIjAuMDU3NSwgMC4wNjg3NSwgMC4wODc1LCAwLjEsIDAuMTE4NzUsIDAuMTQxMjUsIDAuMTU2MjUiLCBcCi0gICAgICAgICAgIjAuMDQ1LCAwLjA2MjUsIDAuMDc1LCAwLjA4NzUsIDAuMTA2MjUsIDAuMTI4NzUsIDAuMTQzNzUiLCBcCi0gICAgICAgICAgIjAuMDM4NzUsIDAuMDUsIDAuMDYyNSwgMC4wODEyNSwgMC4wOTM3NSwgMC4xMTYyNSwgMC4xMzc1IiwgXAotICAgICAgICAgICIwLjAyMjUsIDAuMDMzNzUsIDAuMDQ2MjUsIDAuMDY1LCAwLjA3NzUsIDAuMSwgMC4xMjEyNSIsIFwKLSAgICAgICAgICAiMC4wMDc1LCAwLjAxODc1LCAwLjAzMTI1LCAwLjA1LCAwLjA2MjUsIDAuMDg1LCAwLjEwNjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIHRpbWluZ190eXBlIDogcmVtb3ZhbF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIkdOIjsKLSAgICAgIHNkZl9jb25kIDogIkdOID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHJlbW92YWxfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDI1LCAwLjAzNjI1LCAwLjA0ODc1LCAwLjA2MTI1LCAwLjA3Mzc1LCAwLjA5NjI1LCAwLjExMTI1IiwgXAotICAgICAgICAgICIwLjAxMzc1LCAwLjAyNSwgMC4wMzc1LCAwLjA1LCAwLjA2MjUsIDAuMDg1LCAwLjEiLCBcCi0gICAgICAgICAgIjAuMDAxMjUsIDAuMDEyNSwgMC4wMjUsIDAuMDQzNzUsIDAuMDUsIDAuMDcyNSwgMC4wODc1IiwgXAotICAgICAgICAgICItMC4wMTEyNSwgMCwgMC4wMTg3NSwgMC4wMzEyNSwgMC4wNDM3NSwgMC4wNiwgMC4wNzUiLCBcCi0gICAgICAgICAgIi0wLjAxNzUsIC0wLjAwNjI1LCAwLjAwNjI1LCAwLjAxODc1LCAwLjAzMTI1LCAwLjA0NzUsIDAuMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDMzNzUsIC0wLjAyMjUsIC0wLjAxLCAwLjAwMjUsIDAuMDE1LCAwLjAzMTI1LCAwLjA0NjI1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDM3NSwgLTAuMDI1LCAtMC4wMTI1LCAwLCAwLjAxNjI1LCAwLjAzMTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBUTEFUTlRTQ0FYMTIgKgotICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChUTEFUTlRTQ0FYMTIpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC43Mzg2MjY7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgY2xvY2tfZ2F0aW5nX2ludGVncmF0ZWRfY2VsbCA6ICJsYXRjaF9wb3NlZGdlX3ByZWNvbnRyb2wiOwotICBzdGF0ZXRhYmxlKCIgQ0sgIEUgU0UgIiwgIiBFSU5UICIpIHsKLSAgICAgdGFibGUgOiAiICBMICBMICBMIDogLSA6IEwgLCBcCi0gICAgICAgICAgICAgICAgTCAgSCAgTCA6IC0gOiBIICwgXAotICAgICAgICAgICAgICAgIEwgIEwgIEggOiAtIDogSCAsIFwKLSAgICAgICAgICAgICAgICBMICBIICBIIDogLSA6IEggLCBcCi0gICAgICAgICAgICAgICAgSCAgLSAgLSA6IC0gOiBOICI7Ci0gIH0KLSAgcGluKEVJTlQpIHsKLSAgICBkaXJlY3Rpb24gOiBpbnRlcm5hbDsKLSAgICBpbnRlcm5hbF9ub2RlIDogIkVJTlQiOwotICB9Ci0gIHBpbihDSykgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjI4MTY2OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYyNzkyMTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2MjgxNjY7Ci0gICAgY2xvY2tfZ2F0ZV9jbG9ja19waW4gOiB0cnVlOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzU3OSwgMC4wMDM1NjMsIDAuMDAzNTUyLCAwLjAwMzU0NCwgMC4wMDM1MzcsIDAuMDAzNTM0LCAwLjAwMzUzMyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzI5NywgMC4wMDMyODcsIDAuMDAzMjc2LCAwLjAwMzI3LCAwLjAwMzI2NSwgMC4wMDMyNiwgMC4wMDMyNTgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFFJiFTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJFX0VRXzBfQU5fU0VfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjI1NjAyMSwgMC4yNjc2NjksIDAuMjgyNTEsIDAuMjk3MDQyLCAwLjMxMTU2LCAwLjMzMzA0NiwgMC4zNTAzOTkiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEUpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY3MDA1NTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2NzAwNTU7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjY5ODg5OwotICAgIGNsb2NrX2dhdGVfZW5hYmxlX3BpbiA6IHRydWU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzNTk2LCAwLjAwMzU5MSwgMC4wMDM1ODMsIDAuMDAzNTc3LCAwLjAwMzU3MiwgMC4wMDM1NjMsIDAuMDAzNTU4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA0NDI2LCAwLjAwNDQxOCwgMC4wMDQ0MTMsIDAuMDA0NDEsIDAuMDA0NDA3LCAwLjAwNDQwNCwgMC4wMDQ0MDIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIVNFIjsKLSAgICAgIHNkZl9jb25kIDogIlNFID09IDEnYjAiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjA5Mzc1LCAtMC4wODI1LCAtMC4wNywgLTAuMDYzNzUsIC0wLjA1MTI1LCAtMC4wNDEyNSwgLTAuMDI2MjUiLCBcCi0gICAgICAgICAgIi0wLjEwNSwgLTAuMDkzNzUsIC0wLjA4MTI1LCAtMC4wNzUsIC0wLjA2MjUsIC0wLjA1MjUsIC0wLjA0Mzc1IiwgXAotICAgICAgICAgICItMC4xMjM3NSwgLTAuMTEyNSwgLTAuMSwgLTAuMDg3NSwgLTAuMDgxMjUsIC0wLjA2NSwgLTAuMDU2MjUiLCBcCi0gICAgICAgICAgIi0wLjEzNjI1LCAtMC4xMjUsIC0wLjExMjUsIC0wLjEwNjI1LCAtMC4wOTM3NSwgLTAuMDgzNzUsIC0wLjA2ODc1IiwgXAotICAgICAgICAgICItMC4xNDg3NSwgLTAuMTM3NSwgLTAuMTMxMjUsIC0wLjExODc1LCAtMC4xMTI1LCAtMC4wOTYyNSwgLTAuMDg3NSIsIFwKLSAgICAgICAgICAiLTAuMTc3NSwgLTAuMTY2MjUsIC0wLjE1Mzc1LCAtMC4xNDEyNSwgLTAuMTM1LCAtMC4xMTg3NSwgLTAuMTEiLCBcCi0gICAgICAgICAgIi0wLjE5ODc1LCAtMC4xODc1LCAtMC4xNzUsIC0wLjE2MjUsIC0wLjE1NjI1LCAtMC4xNCwgLTAuMTMxMjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wODEyNSwgLTAuMDcsIC0wLjA1NzUsIC0wLjAzODc1LCAtMC4wMjYyNSwgLTAuMDAzNzUsIDAuMDExMjUiLCBcCi0gICAgICAgICAgIi0wLjA5MjUsIC0wLjA4MTI1LCAtMC4wNjg3NSwgLTAuMDUsIC0wLjAzNzUsIC0wLjAxNSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMTA1LCAtMC4wOTM3NSwgLTAuMDgxMjUsIC0wLjA2MjUsIC0wLjA1LCAtMC4wMjc1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMTE3NSwgLTAuMTA2MjUsIC0wLjA5Mzc1LCAtMC4wNzUsIC0wLjA2MjUsIC0wLjA0LCAtMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjEzNjI1LCAtMC4xMTg3NSwgLTAuMTA2MjUsIC0wLjA5Mzc1LCAtMC4wNzUsIC0wLjA1MjUsIC0wLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjE1MjUsIC0wLjE0MTI1LCAtMC4xMjg3NSwgLTAuMTEsIC0wLjA5NzUsIC0wLjA3NSwgLTAuMDUzNzUiLCBcCi0gICAgICAgICAgIi0wLjE3Mzc1LCAtMC4xNjI1LCAtMC4xNDM3NSwgLTAuMTMxMjUsIC0wLjExODc1LCAtMC4wOTYyNSwgLTAuMDc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhU0UiOwotICAgICAgc2RmX2NvbmQgOiAiU0UgPT0gMSdiMCI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMSwgMC4wODg3NSwgMC4wNzYyNSwgMC4wNywgMC4wNTc1LCAwLjA0NzUsIDAuMDMyNSIsIFwKLSAgICAgICAgICAiMC4xMTEyNSwgMC4xLCAwLjA4NzUsIDAuMDgxMjUsIDAuMDY4NzUsIDAuMDU4NzUsIDAuMDUiLCBcCi0gICAgICAgICAgIjAuMTMsIDAuMTE4NzUsIDAuMTA2MjUsIDAuMDkzNzUsIDAuMDg3NSwgMC4wNzEyNSwgMC4wNjI1IiwgXAotICAgICAgICAgICIwLjE0MjUsIDAuMTMxMjUsIDAuMTE4NzUsIDAuMTEyNSwgMC4xLCAwLjA5LCAwLjA3NSIsIFwKLSAgICAgICAgICAiMC4xNTUsIDAuMTQzNzUsIDAuMTM3NSwgMC4xMjUsIDAuMTE4NzUsIDAuMTAyNSwgMC4wOTM3NSIsIFwKLSAgICAgICAgICAiMC4xODM3NSwgMC4xNzI1LCAwLjE2LCAwLjE0NzUsIDAuMTQxMjUsIDAuMTI1LCAwLjExNjI1IiwgXAotICAgICAgICAgICIwLjIwNSwgMC4xOTM3NSwgMC4xODEyNSwgMC4xNjg3NSwgMC4xNjI1LCAwLjE0NjI1LCAwLjEzNzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODc1LCAwLjA3NjI1LCAwLjA2Mzc1LCAwLjA0NSwgMC4wMzI1LCAwLjAxLCAtMC4wMDUiLCBcCi0gICAgICAgICAgIjAuMDk4NzUsIDAuMDg3NSwgMC4wNzUsIDAuMDU2MjUsIDAuMDQzNzUsIDAuMDIxMjUsIDAiLCBcCi0gICAgICAgICAgIjAuMTExMjUsIDAuMSwgMC4wODc1LCAwLjA2ODc1LCAwLjA1NjI1LCAwLjAzMzc1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMTIzNzUsIDAuMTEyNSwgMC4xLCAwLjA4MTI1LCAwLjA2ODc1LCAwLjA0NjI1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICIwLjE0MjUsIDAuMTI1LCAwLjExMjUsIDAuMSwgMC4wODEyNSwgMC4wNTg3NSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4xNTg3NSwgMC4xNDc1LCAwLjEzNSwgMC4xMTYyNSwgMC4xMDM3NSwgMC4wODEyNSwgMC4wNiIsIFwKLSAgICAgICAgICAiMC4xOCwgMC4xNjg3NSwgMC4xNSwgMC4xMzc1LCAwLjEyNSwgMC4xMDI1LCAwLjA4MTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihFQ0spICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMS41NzI4NjsKLSAgICBjbG9ja19nYXRlX291dF9waW4gOiB0cnVlOwotICAgIHN0YXRlX2Z1bmN0aW9uIDogIihDSyBFSU5UKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI0ODI1MSwgMC4yNTQ3MzgsIDAuMjgzNDgzLCAwLjMwNDIyLCAwLjMzMDA1OSwgMC4zNzkzMjUsIDAuNDA5NTgzIiwgXAotICAgICAgICAgICIwLjI1OTgwMywgMC4yNjY0MTYsIDAuMjk0OTgxLCAwLjMxNTkyNCwgMC4zNDE3NTUsIDAuMzkwOTQ4LCAwLjQyMTI0OSIsIFwKLSAgICAgICAgICAiMC4yNzUxODIsIDAuMjgxNzYxLCAwLjMxMDM4NSwgMC4zMzExMzgsIDAuMzU2OTk5LCAwLjQwNjI2NywgMC40MzY1ODIiLCBcCi0gICAgICAgICAgIjAuMjkwNTk5LCAwLjI5NzE4NSwgMC4zMjU3NjcsIDAuMzQ2NzE2LCAwLjM3MjU0LCAwLjQyMTczMiwgMC40NTIwMzMiLCBcCi0gICAgICAgICAgIjAuMzA1ODA0LCAwLjMxMjM2NiwgMC4zNDA5NzgsIDAuMzYxNzUsIDAuMzg3NTkyLCAwLjQzNjg3NSwgMC40NjcxNjUiLCBcCi0gICAgICAgICAgIjAuMzI5NTM4LCAwLjMzNjE1MiwgMC4zNjQ3MTUsIDAuMzg1NjU4LCAwLjQxMTQ5LCAwLjQ2MDY4MiwgMC40OTA5ODMiLCBcCi0gICAgICAgICAgIjAuMzQ5MjkxLCAwLjM1NTgxOCwgMC4zODQ0LCAwLjQwNTI4NCwgMC40MzExNDMsIDAuNDgwMzQ1LCAwLjUxMDYzNSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDk4OTYsIDAuMDU3NDYxLCAwLjA5NjQzNiwgMC4xMzAxNzIsIDAuMTc1OTcyLCAwLjI2OTY2LCAwLjMyOTM5NyIsIFwKLSAgICAgICAgICAiMC4wNTAxMTksIDAuMDU3NTYzLCAwLjA5NjMwOCwgMC4xMzAxOTIsIDAuMTc2MDU0LCAwLjI2OTcxOSwgMC4zMjkyMDciLCBcCi0gICAgICAgICAgIjAuMDQ5ODU3LCAwLjA1NzMsIDAuMDk2MzcsIDAuMTMwMTgyLCAwLjE3NTk2MSwgMC4yNjk2NywgMC4zMjkxNzIiLCBcCi0gICAgICAgICAgIjAuMDUwMTI1LCAwLjA1NzU2NCwgMC4wOTYzMDMsIDAuMTMwMTg4LCAwLjE3NjA1NCwgMC4yNjk3MTQsIDAuMzI5MiIsIFwKLSAgICAgICAgICAiMC4wNDk4ODgsIDAuMDU3MzEzLCAwLjA5NjM4MywgMC4xMzAxODMsIDAuMTc1OTM4LCAwLjI2OTY3LCAwLjMyOTE1OSIsIFwKLSAgICAgICAgICAiMC4wNTAxMTMsIDAuMDU3NTUsIDAuMDk2Mjk5LCAwLjEzMDE4NywgMC4xNzYwMzEsIDAuMjY5NzM0LCAwLjMyOTE2NSIsIFwKLSAgICAgICAgICAiMC4wNDk4MywgMC4wNTcyNzYsIDAuMDk2MjcsIDAuMTMwMTk3LCAwLjE3NjAxNCwgMC4yNjk2MzUsIDAuMzI5MTU3Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIxNDU0MywgMC4yMjAxODMsIDAuMjQ3NDA3LCAwLjI2OTI5NCwgMC4yOTc3OTUsIDAuMzU0MDA0LCAwLjM4OTAxOSIsIFwKLSAgICAgICAgICAiMC4yMjYyNywgMC4yMzE3NzYsIDAuMjU4OTg0LCAwLjI4MDg3NSwgMC4zMDkzOTgsIDAuMzY1NTkzLCAwLjQwMDYwOSIsIFwKLSAgICAgICAgICAiMC4yNDExMTMsIDAuMjQ2NjEyLCAwLjI3MzgyNywgMC4yOTU3MTgsIDAuMzI0MjQyLCAwLjM4MDQzNiwgMC40MTU0NTIiLCBcCi0gICAgICAgICAgIjAuMjU1NjQyLCAwLjI2MTE0OCwgMC4yODgzNjEsIDAuMzEwMjUsIDAuMzM4NzgzLCAwLjM5NDk2NSwgMC40Mjk5OTciLCBcCi0gICAgICAgICAgIjAuMjcwMDQ3LCAwLjI3NTcwNiwgMC4zMDI3OTcsIDAuMzI0Njc5LCAwLjM1MzIwNywgMC40MDk0MTEsIDAuNDQ0NDM2IiwgXAotICAgICAgICAgICIwLjI5MTMyLCAwLjI5Njk3OSwgMC4zMjQyMDgsIDAuMzQ2MDk3LCAwLjM3NDYyOCwgMC40MzA4MTYsIDAuNDY1ODQiLCBcCi0gICAgICAgICAgIjAuMzA4Njc1LCAwLjMxNDMyLCAwLjM0MTQxNSwgMC4zNjMyOTcsIDAuMzkxODI3LCAwLjQ0ODAzNCwgMC40ODMwNTYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM5MDQ2LCAwLjA0Njg1MywgMC4wOTA5NTMsIDAuMTMwNjA0LCAwLjE4NDgzOSwgMC4yOTUyMjgsIDAuMzY0MjgyIiwgXAotICAgICAgICAgICIwLjAzODc2MiwgMC4wNDY4NjgsIDAuMDkwOTU4LCAwLjEzMDYwNSwgMC4xODQ3OTUsIDAuMjk0NDI3LCAwLjM2Mzk4MSIsIFwKLSAgICAgICAgICAiMC4wMzg3OCwgMC4wNDY4OTIsIDAuMDkwOTU3LCAwLjEzMDU5MSwgMC4xODQ5MDMsIDAuMjk0MzMzLCAwLjM2NDU5NSIsIFwKLSAgICAgICAgICAiMC4wMzg3NjMsIDAuMDQ2ODU2LCAwLjA5MDk1NSwgMC4xMzA1ODMsIDAuMTg0ODQyLCAwLjI5NDk0OSwgMC4zNjQ1NzYiLCBcCi0gICAgICAgICAgIjAuMDM4NzY2LCAwLjA0NjY5LCAwLjA5MDk1MSwgMC4xMzA1NzgsIDAuMTg0ODcsIDAuMjk0NzkzLCAwLjM2NDY0NSIsIFwKLSAgICAgICAgICAiMC4wMzkwMjEsIDAuMDQ2ODQ5LCAwLjA5MDk1OCwgMC4xMzA1NzgsIDAuMTg0ODk0LCAwLjI5NDM5MSwgMC4zNjQ1NzUiLCBcCi0gICAgICAgICAgIjAuMDM4NzksIDAuMDQ2NjcxLCAwLjA5MDk2LCAwLjEzMDYwMywgMC4xODQ4LCAwLjI5NTI3OCwgMC4zNjQyOTMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE1NTE1LCAwLjAxNTU2NiwgMC4wMTU3NzIsIDAuMDE1ODcxLCAwLjAxNTk1LCAwLjAxNjAzMywgMC4wMTYwNjEiLCBcCi0gICAgICAgICAgIjAuMDE1NDk1LCAwLjAxNTU1MSwgMC4wMTU3NTYsIDAuMDE1ODU1LCAwLjAxNTkzNSwgMC4wMTYwMTcsIDAuMDE2MDQ2IiwgXAotICAgICAgICAgICIwLjAxNTQ4NywgMC4wMTU1NDIsIDAuMDE1NzQ0LCAwLjAxNTg0NCwgMC4wMTU5MjMsIDAuMDE2MDA1LCAwLjAxNjAzNiIsIFwKLSAgICAgICAgICAiMC4wMTU0NzYsIDAuMDE1NTMxLCAwLjAxNTczNywgMC4wMTU4MzYsIDAuMDE1OTE2LCAwLjAxNTk5OCwgMC4wMTYwMjYiLCBcCi0gICAgICAgICAgIjAuMDE1NDczLCAwLjAxNTUyNywgMC4wMTU3MzEsIDAuMDE1ODMsIDAuMDE1OTA5LCAwLjAxNTk5MiwgMC4wMTYwMiIsIFwKLSAgICAgICAgICAiMC4wMTU0NjQsIDAuMDE1NTIsIDAuMDE1NzI2LCAwLjAxNTgyNSwgMC4wMTU5MDQsIDAuMDE1OTg3LCAwLjAxNjAxNSIsIFwKLSAgICAgICAgICAiMC4wMTU0NjMsIDAuMDE1NTE4LCAwLjAxNTcyMSwgMC4wMTU4MiwgMC4wMTU4OTksIDAuMDE1OTgxLCAwLjAxNjAxNiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxODQ0MiwgMC4wMTg1MjEsIDAuMDE4Nzg4LCAwLjAxODkwMywgMC4wMTg5OTEsIDAuMDE5MDc3LCAwLjAxOTEwNyIsIFwKLSAgICAgICAgICAiMC4wMTg0MzgsIDAuMDE4NTA2LCAwLjAxODc3LCAwLjAxODg4NiwgMC4wMTg5NzYsIDAuMDE5MDY0LCAwLjAxOTA5MyIsIFwKLSAgICAgICAgICAiMC4wMTg0MjksIDAuMDE4NDk3LCAwLjAxODc2MSwgMC4wMTg4NzcsIDAuMDE4OTY3LCAwLjAxOTA1NCwgMC4wMTkwODQiLCBcCi0gICAgICAgICAgIjAuMDE4NDMyLCAwLjAxODQ5OCwgMC4wMTg3NjEsIDAuMDE4ODc2LCAwLjAxODk2NCwgMC4wMTkwNTEsIDAuMDE5MDgxIiwgXAotICAgICAgICAgICIwLjAxODQxOCwgMC4wMTg0OTMsIDAuMDE4NzUzLCAwLjAxODg2OSwgMC4wMTg5NTksIDAuMDE5MDQ3LCAwLjAxOTA3NyIsIFwKLSAgICAgICAgICAiMC4wMTg0MjgsIDAuMDE4NTA1LCAwLjAxODc2NSwgMC4wMTg4NzksIDAuMDE4OTY3LCAwLjAxOTA1MywgMC4wMTkwODIiLCBcCi0gICAgICAgICAgIjAuMDE4NDIsIDAuMDE4NDk1LCAwLjAxODc1NSwgMC4wMTg4NzEsIDAuMDE4OTYsIDAuMDE5MDQ5LCAwLjAxOTA3OSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oU0UpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY5MDE0MzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2ODcwMDE7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjkwMTQzOwotICAgIGNsb2NrX2dhdGVfdGVzdF9waW4gOiB0cnVlOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzc2NywgMC4wMDM3NTUsIDAuMDAzNzUsIDAuMDAzNzQ2LCAwLjAwMzc0MiwgMC4wMDM3MzgsIDAuMDAzNzM1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA0NTY1LCAwLjAwNDU2LCAwLjAwNDU1NywgMC4wMDQ1NTQsIDAuMDA0NTUzLCAwLjAwNDU0OSwgMC4wMDQ1NDgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUUiOwotICAgICAgc2RmX2NvbmQgOiAiRSA9PSAxJ2IwIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4xLCAtMC4wODg3NSwgLTAuMDc2MjUsIC0wLjA3LCAtMC4wNTc1LCAtMC4wNDc1LCAtMC4wMzI1IiwgXAotICAgICAgICAgICItMC4xMTEyNSwgLTAuMSwgLTAuMDg3NSwgLTAuMDgxMjUsIC0wLjA2ODc1LCAtMC4wNTg3NSwgLTAuMDQzNzUiLCBcCi0gICAgICAgICAgIi0wLjEzLCAtMC4xMTg3NSwgLTAuMTA2MjUsIC0wLjA5Mzc1LCAtMC4wODc1LCAtMC4wNzEyNSwgLTAuMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMTQyNSwgLTAuMTMxMjUsIC0wLjExODc1LCAtMC4xMTI1LCAtMC4xLCAtMC4wOSwgLTAuMDc1IiwgXAotICAgICAgICAgICItMC4xNTUsIC0wLjE0Mzc1LCAtMC4xMzEyNSwgLTAuMTI1LCAtMC4xMTI1LCAtMC4xMDI1LCAtMC4wOTM3NSIsIFwKLSAgICAgICAgICAiLTAuMTgzNzUsIC0wLjE3MjUsIC0wLjE2LCAtMC4xNDc1LCAtMC4xNDEyNSwgLTAuMTI1LCAtMC4xMTYyNSIsIFwKLSAgICAgICAgICAiLTAuMjA1LCAtMC4xOTM3NSwgLTAuMTgxMjUsIC0wLjE2ODc1LCAtMC4xNjI1LCAtMC4xNDYyNSwgLTAuMTM3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjA4NzUsIC0wLjA3NjI1LCAtMC4wNjM3NSwgLTAuMDQ1LCAtMC4wMzI1LCAtMC4wMSwgMC4wMDUiLCBcCi0gICAgICAgICAgIi0wLjA5ODc1LCAtMC4wODc1LCAtMC4wNzUsIC0wLjA1NjI1LCAtMC4wNDM3NSwgLTAuMDIxMjUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICItMC4xMTc1LCAtMC4xLCAtMC4wODc1LCAtMC4wNjg3NSwgLTAuMDU2MjUsIC0wLjAzMzc1LCAtMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMTMsIC0wLjExMjUsIC0wLjEsIC0wLjA4MTI1LCAtMC4wNjg3NSwgLTAuMDQ2MjUsIC0wLjAzMTI1IiwgXAotICAgICAgICAgICItMC4xMzYyNSwgLTAuMTI1LCAtMC4xMTI1LCAtMC4wOTM3NSwgLTAuMDgxMjUsIC0wLjA1ODc1LCAtMC4wNDM3NSIsIFwKLSAgICAgICAgICAiLTAuMTU4NzUsIC0wLjE0NzUsIC0wLjEyODc1LCAtMC4xMTYyNSwgLTAuMTAzNzUsIC0wLjA4MTI1LCAtMC4wNiIsIFwKLSAgICAgICAgICAiLTAuMTczNzUsIC0wLjE2MjUsIC0wLjE1LCAtMC4xMzEyNSwgLTAuMTE4NzUsIC0wLjA5NjI1LCAtMC4wNzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFFIjsKLSAgICAgIHNkZl9jb25kIDogIkUgPT0gMSdiMCI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTA2MjUsIDAuMDk1LCAwLjA4MjUsIDAuMDc2MjUsIDAuMDYzNzUsIDAuMDUzNzUsIDAuMDM4NzUiLCBcCi0gICAgICAgICAgIjAuMTE3NSwgMC4xMDYyNSwgMC4wOTM3NSwgMC4wODc1LCAwLjA3NSwgMC4wNjUsIDAuMDUiLCBcCi0gICAgICAgICAgIjAuMTM2MjUsIDAuMTI1LCAwLjExMjUsIDAuMSwgMC4wOTM3NSwgMC4wNzc1LCAwLjA2ODc1IiwgXAotICAgICAgICAgICIwLjE0ODc1LCAwLjEzNzUsIDAuMTI1LCAwLjExODc1LCAwLjEwNjI1LCAwLjA5NjI1LCAwLjA4MTI1IiwgXAotICAgICAgICAgICIwLjE2MTI1LCAwLjE1LCAwLjEzNzUsIDAuMTMxMjUsIDAuMTE4NzUsIDAuMTA4NzUsIDAuMSIsIFwKLSAgICAgICAgICAiMC4xOSwgMC4xNzg3NSwgMC4xNjYyNSwgMC4xNTM3NSwgMC4xNDc1LCAwLjEzMTI1LCAwLjEyMjUiLCBcCi0gICAgICAgICAgIjAuMjExMjUsIDAuMiwgMC4xODc1LCAwLjE3NSwgMC4xNjg3NSwgMC4xNTI1LCAwLjE0Mzc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDkzNzUsIDAuMDgyNSwgMC4wNywgMC4wNTEyNSwgMC4wMzg3NSwgMC4wMTYyNSwgMC4wMDEyNSIsIFwKLSAgICAgICAgICAiMC4xMDUsIDAuMDkzNzUsIDAuMDgxMjUsIDAuMDYyNSwgMC4wNSwgMC4wMjc1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMTIzNzUsIDAuMTA2MjUsIDAuMDkzNzUsIDAuMDc1LCAwLjA2MjUsIDAuMDQsIDAuMDI1IiwgXAotICAgICAgICAgICIwLjEzNjI1LCAwLjExODc1LCAwLjEwNjI1LCAwLjA4NzUsIDAuMDc1LCAwLjA1MjUsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiMC4xNDI1LCAwLjEzMTI1LCAwLjExODc1LCAwLjEsIDAuMDg3NSwgMC4wNjUsIDAuMDUiLCBcCi0gICAgICAgICAgIjAuMTY1LCAwLjE1Mzc1LCAwLjEzNSwgMC4xMjI1LCAwLjExLCAwLjA4NzUsIDAuMDY2MjUiLCBcCi0gICAgICAgICAgIjAuMTgsIDAuMTY4NzUsIDAuMTU2MjUsIDAuMTM3NSwgMC4xMjUsIDAuMTAyNSwgMC4wODEyNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBUTEFUTlRTQ0FYMiAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoVExBVE5UU0NBWDIpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4yMTY1NzY7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgY2xvY2tfZ2F0aW5nX2ludGVncmF0ZWRfY2VsbCA6ICJsYXRjaF9wb3NlZGdlX3ByZWNvbnRyb2wiOwotICBzdGF0ZXRhYmxlKCIgQ0sgIEUgU0UgIiwgIiBFSU5UICIpIHsKLSAgICAgdGFibGUgOiAiICBMICBMICBMIDogLSA6IEwgLCBcCi0gICAgICAgICAgICAgICAgTCAgSCAgTCA6IC0gOiBIICwgXAotICAgICAgICAgICAgICAgIEwgIEwgIEggOiAtIDogSCAsIFwKLSAgICAgICAgICAgICAgICBMICBIICBIIDogLSA6IEggLCBcCi0gICAgICAgICAgICAgICAgSCAgLSAgLSA6IC0gOiBOICI7Ci0gIH0KLSAgcGluKEVJTlQpIHsKLSAgICBkaXJlY3Rpb24gOiBpbnRlcm5hbDsKLSAgICBpbnRlcm5hbF9ub2RlIDogIkVJTlQiOwotICB9Ci0gIHBpbihDSykgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjM3NDQ0OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYzNzQzNzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2Mzc0NDQ7Ci0gICAgY2xvY2tfZ2F0ZV9jbG9ja19waW4gOiB0cnVlOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjIxMSwgMC4wMDIxOTcsIDAuMDAyMTg1LCAwLjAwMjE3NiwgMC4wMDIxNzEsIDAuMDAyMTY1LCAwLjAwMjE2NSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjYzOSwgMC4wMDI2MjksIDAuMDAyNjIsIDAuMDAyNjEzLCAwLjAwMjYwOSwgMC4wMDI2MDQsIDAuMDAyNiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUUmIVNFIjsKLSAgICAgIHNkZl9jb25kIDogIkVfRVFfMF9BTl9TRV9FUV8wID09IDEnYjEiOwotICAgICAgZmFsbF9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMjA1MjM5LCAwLjIxNjgzNywgMC4yMzE1MzIsIDAuMjQ2MzQ3LCAwLjI2MDg4NiwgMC4yODMwMTcsIDAuMzAwOTc1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihFKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2NTQwMzE7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjUzOTMyOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDY1NDAzMTsKLSAgICBjbG9ja19nYXRlX2VuYWJsZV9waW4gOiB0cnVlOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjA2OCwgMC4wMDIwNjMsIDAuMDAyMDU2LCAwLjAwMjA1LCAwLjAwMjA0NSwgMC4wMDIwMzgsIDAuMDAyMDM0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzNDIyLCAwLjAwMzQxNCwgMC4wMDM0MDksIDAuMDAzNDA1LCAwLjAwMzQwMywgMC4wMDM0MDEsIDAuMDAzMzk5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJTRSA9PSAxJ2IwIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wODEyNSwgLTAuMDcsIC0wLjA2Mzc1LCAtMC4wNTEyNSwgLTAuMDM4NzUsIC0wLjAyODc1LCAtMC4wMTM3NSIsIFwKLSAgICAgICAgICAiLTAuMDkyNSwgLTAuMDgxMjUsIC0wLjA3NSwgLTAuMDYyNSwgLTAuMDUsIC0wLjA0LCAtMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjExMTI1LCAtMC4xLCAtMC4wODc1LCAtMC4wNzUsIC0wLjA2ODc1LCAtMC4wNTI1LCAtMC4wNDM3NSIsIFwKLSAgICAgICAgICAiLTAuMTIzNzUsIC0wLjExMjUsIC0wLjEsIC0wLjA5Mzc1LCAtMC4wODEyNSwgLTAuMDcxMjUsIC0wLjA1NjI1IiwgXAotICAgICAgICAgICItMC4xNDI1LCAtMC4xMzEyNSwgLTAuMTE4NzUsIC0wLjEwNjI1LCAtMC4xLCAtMC4wODM3NSwgLTAuMDc1IiwgXAotICAgICAgICAgICItMC4xNjUsIC0wLjE1Mzc1LCAtMC4xNDEyNSwgLTAuMTI4NzUsIC0wLjEyMjUsIC0wLjEwNjI1LCAtMC4wOTc1IiwgXAotICAgICAgICAgICItMC4xODYyNSwgLTAuMTc1LCAtMC4xNjI1LCAtMC4xNSwgLTAuMTQzNzUsIC0wLjEyNzUsIC0wLjExODc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDgxMjUsIC0wLjA3LCAtMC4wNTc1LCAtMC4wMzg3NSwgLTAuMDI2MjUsIC0wLjAwMzc1LCAwLjAxNzUiLCBcCi0gICAgICAgICAgIi0wLjA5MjUsIC0wLjA4MTI1LCAtMC4wNjg3NSwgLTAuMDUsIC0wLjAzNzUsIC0wLjAxNSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMTA1LCAtMC4wOTM3NSwgLTAuMDgxMjUsIC0wLjA2MjUsIC0wLjA1LCAtMC4wMjc1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMTE3NSwgLTAuMTA2MjUsIC0wLjA5Mzc1LCAtMC4wNzUsIC0wLjA2MjUsIC0wLjA0LCAtMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMTM2MjUsIC0wLjExODc1LCAtMC4xMDYyNSwgLTAuMDkzNzUsIC0wLjA3NSwgLTAuMDUyNSwgLTAuMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMTUyNSwgLTAuMTQxMjUsIC0wLjEyODc1LCAtMC4xMSwgLTAuMDk3NSwgLTAuMDc1LCAtMC4wNTM3NSIsIFwKLSAgICAgICAgICAiLTAuMTczNzUsIC0wLjE2MjUsIC0wLjE0Mzc1LCAtMC4xMzEyNSwgLTAuMTEyNSwgLTAuMDk2MjUsIC0wLjA3NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIVNFIjsKLSAgICAgIHNkZl9jb25kIDogIlNFID09IDEnYjAiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4NzUsIDAuMDc2MjUsIDAuMDcsIDAuMDU3NSwgMC4wNDUsIDAuMDM1LCAwLjAyIiwgXAotICAgICAgICAgICIwLjA5ODc1LCAwLjA4NzUsIDAuMDgxMjUsIDAuMDY4NzUsIDAuMDU2MjUsIDAuMDQ2MjUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMTE3NSwgMC4xMDYyNSwgMC4wOTM3NSwgMC4wODEyNSwgMC4wNzUsIDAuMDU4NzUsIDAuMDUiLCBcCi0gICAgICAgICAgIjAuMTMsIDAuMTE4NzUsIDAuMTA2MjUsIDAuMSwgMC4wODc1LCAwLjA3NzUsIDAuMDYyNSIsIFwKLSAgICAgICAgICAiMC4xNDg3NSwgMC4xMzc1LCAwLjEyNSwgMC4xMTI1LCAwLjEwNjI1LCAwLjA5LCAwLjA4MTI1IiwgXAotICAgICAgICAgICIwLjE3MTI1LCAwLjE2LCAwLjE0NzUsIDAuMTM1LCAwLjEyODc1LCAwLjExMjUsIDAuMTAzNzUiLCBcCi0gICAgICAgICAgIjAuMTkyNSwgMC4xODEyNSwgMC4xNjg3NSwgMC4xNTYyNSwgMC4xNSwgMC4xMzM3NSwgMC4xMjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODc1LCAwLjA3NjI1LCAwLjA2Mzc1LCAwLjA0NSwgMC4wMzI1LCAwLjAxLCAtMC4wMTEyNSIsIFwKLSAgICAgICAgICAiMC4wOTg3NSwgMC4wODc1LCAwLjA3NSwgMC4wNTYyNSwgMC4wNDM3NSwgMC4wMjEyNSwgMCIsIFwKLSAgICAgICAgICAiMC4xMTEyNSwgMC4xLCAwLjA4NzUsIDAuMDY4NzUsIDAuMDU2MjUsIDAuMDMzNzUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4xMjM3NSwgMC4xMTI1LCAwLjEsIDAuMDgxMjUsIDAuMDY4NzUsIDAuMDQ2MjUsIDAuMDI1IiwgXAotICAgICAgICAgICIwLjE0MjUsIDAuMTI1LCAwLjExMjUsIDAuMSwgMC4wODEyNSwgMC4wNTg3NSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4xNTg3NSwgMC4xNDc1LCAwLjEzNSwgMC4xMTYyNSwgMC4xMDM3NSwgMC4wODEyNSwgMC4wNiIsIFwKLSAgICAgICAgICAiMC4xOCwgMC4xNjg3NSwgMC4xNSwgMC4xMzc1LCAwLjExODc1LCAwLjEwMjUsIDAuMDgxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEVDSykgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjI1MjM2ODsKLSAgICBjbG9ja19nYXRlX291dF9waW4gOiB0cnVlOwotICAgIHN0YXRlX2Z1bmN0aW9uIDogIihDSyBFSU5UKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI0OTg2NiwgMC40MzI4NTYsIDAuNTc2MjAxLCAwLjc1NTMzNywgMC45MzQ1MDIsIDEuMTEzNTcsIDEuMjkyNTciLCBcCi0gICAgICAgICAgIjAuMjYxNzg5LCAwLjQ0NDY4MywgMC41ODgwNTgsIDAuNzY3MTk4LCAwLjk0NjM0NCwgMS4xMjUzNywgMS4zMDQ0NiIsIFwKLSAgICAgICAgICAiMC4yNzcwMzIsIDAuNDYwMDczLCAwLjYwMzQ3MywgMC43ODI2MDYsIDAuOTYxNzAxLCAxLjE0MDgyLCAxLjMxOTg5IiwgXAotICAgICAgICAgICIwLjI5MjQ1OSwgMC40NzU0NzMsIDAuNjE4ODI3LCAwLjc5Nzk1NSwgMC45NzcxMTgsIDEuMTU2MTksIDEuMzM1MTkiLCBcCi0gICAgICAgICAgIjAuMzA3NDY2LCAwLjQ5MDQwMiwgMC42MzM3NDYsIDAuODEyODgzLCAwLjk5MTk3NiwgMS4xNzExNiwgMS4zNTAxNCIsIFwKLSAgICAgICAgICAiMC4zMzE1NzIsIDAuNTE0NjA3LCAwLjY1Nzk3MSwgMC44MzcwOTksIDEuMDE2MjYsIDEuMTk1MzQsIDEuMzc0MzciLCBcCi0gICAgICAgICAgIjAuMzUxNzc0LCAwLjUzNDc3MiwgMC42NzgxMjEsIDAuODU3MjU0LCAxLjAzNjQxLCAxLjIxNTQ5LCAxLjM5NDQ5Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwMzg0OSwgMC40NTY0MjQsIDAuNzQ2NDc2LCAxLjExMDk0LCAxLjQ3MjQyLCAxLjg0MTA2LCAyLjIwNTQ2IiwgXAotICAgICAgICAgICIwLjEwMzg1OCwgMC40NTU3ODUsIDAuNzQ0NzcyLCAxLjExMDk3LCAxLjQ3NjA2LCAxLjg0MDM4LCAyLjIwNTg3IiwgXAotICAgICAgICAgICIwLjEwMzcyLCAwLjQ1NTQ3MiwgMC43NDQ2OSwgMS4xMTA5NSwgMS40NzU1MiwgMS44NDA5NiwgMi4yMDU5NSIsIFwKLSAgICAgICAgICAiMC4xMDM3NzQsIDAuNDU2NDE3LCAwLjc0NTIzMywgMS4xMTA5MiwgMS40NzIzNiwgMS44NDEwMiwgMi4yMDUzNSIsIFwKLSAgICAgICAgICAiMC4xMDM4NTgsIDAuNDU2MzkxLCAwLjc0NDg1NCwgMS4xMTA5NSwgMS40NzU4MywgMS44NDEzNCwgMi4yMDU4NCIsIFwKLSAgICAgICAgICAiMC4xMDM3OTIsIDAuNDU1NTA2LCAwLjc0NTI0MywgMS4xMTA5MiwgMS40NzIyOCwgMS44NDEwNSwgMi4yMDU4MSIsIFwKLSAgICAgICAgICAiMC4xMDM3NjQsIDAuNDU2NDExLCAwLjc0NTM0MSwgMS4xMTA5MywgMS40NzM2NywgMS44NDEwMywgMi4yMDE5Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIwNTA4MSwgMC40MTE3NiwgMC41NzY2NDQsIDAuNzgyNzUzLCAwLjk4ODkyOCwgMS4xOTUxNCwgMS40MDE3NyIsIFwKLSAgICAgICAgICAiMC4yMTY2MzksIDAuNDIzMzMzLCAwLjU4ODIwNiwgMC43OTQzMzEsIDEuMDAwNTEsIDEuMjA2NzUsIDEuNDEzMDUiLCBcCi0gICAgICAgICAgIjAuMjMxMzgyLCAwLjQzODA1LCAwLjYwMjkzNSwgMC44MDkwNjUsIDEuMDE1MjMsIDEuMjIxNDYsIDEuNDI3OTciLCBcCi0gICAgICAgICAgIjAuMjQ2MTQsIDAuNDUyODE2LCAwLjYxNzcwNSwgMC44MjM4MTMsIDEuMDI5OTksIDEuMjM2MiwgMS40NDI3MiIsIFwKLSAgICAgICAgICAiMC4yNjA2NTEsIDAuNDY3MzE3LCAwLjYzMjE5OCwgMC44MzgzMTYsIDEuMDQ0NDksIDEuMjUwNzIsIDEuNDU3MjQiLCBcCi0gICAgICAgICAgIjAuMjgyNjcyLCAwLjQ4OTM5MSwgMC42NTQyNjUsIDAuODYwMzg1LCAxLjA2NjU2LCAxLjI3Mjc5LCAxLjQ3OTMxIiwgXAotICAgICAgICAgICIwLjMwMDUzOCwgMC41MDcyMzIsIDAuNjcyMTE3LCAwLjg3ODIzMSwgMS4wODQ0MSwgMS4yOTA4MSwgMS40OTY4OCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTk2NDYsIDAuNTA3ODI1LCAwLjgzNTgxNSwgMS4yNDY5NiwgMS42NTkzMSwgMi4wNzE0MSwgMi40Nzk0MyIsIFwKLSAgICAgICAgICAiMC4wOTk2MzgsIDAuNTA3ODA1LCAwLjgzNDM3OSwgMS4yNDY5OSwgMS42NTk0MiwgMi4wNzE0NywgMi40Nzc2OSIsIFwKLSAgICAgICAgICAiMC4wOTk2NDIsIDAuNTA3Nzg5LCAwLjgzNDU1NywgMS4yNDczNCwgMS42NTk0MywgMi4wNzE0NSwgMi40NzU3NiIsIFwKLSAgICAgICAgICAiMC4wOTk2NDIsIDAuNTA3ODI1LCAwLjgzNTYxMywgMS4yNDY5OCwgMS42NTkzLCAyLjA3MTQxLCAyLjQ3OTU1IiwgXAotICAgICAgICAgICIwLjA5OTYzOSwgMC41MDc3ODksIDAuODM0MzcsIDEuMjQ2OTMsIDEuNjU5MjcsIDIuMDcxNDQsIDIuNDc1NzQiLCBcCi0gICAgICAgICAgIjAuMDk5NjEzLCAwLjUwNzgyNiwgMC44MzU2MTcsIDEuMjQ2OTksIDEuNjU5MjIsIDIuMDcxNDQsIDIuNDc5NzYiLCBcCi0gICAgICAgICAgIjAuMDk5NjM5LCAwLjUwNzgwNSwgMC44MzU1NzUsIDEuMjQ2OTksIDEuNjU5MzQsIDIuMDY5NDksIDIuNDgwNDciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0MzU2LCAwLjAwNDQsIDAuMDA0NDA2LCAwLjAwNDQwOSwgMC4wMDQ0MSwgMC4wMDQ0MTEsIDAuMDA0NDEyIiwgXAotICAgICAgICAgICIwLjAwNDM0MiwgMC4wMDQzODcsIDAuMDA0MzkzLCAwLjAwNDM5NSwgMC4wMDQzOTYsIDAuMDA0Mzk3LCAwLjAwNDM5OCIsIFwKLSAgICAgICAgICAiMC4wMDQzMzEsIDAuMDA0Mzc2LCAwLjAwNDM4MSwgMC4wMDQzODQsIDAuMDA0Mzg1LCAwLjAwNDM4NiwgMC4wMDQzODYiLCBcCi0gICAgICAgICAgIjAuMDA0MzIzLCAwLjAwNDM2OCwgMC4wMDQzNzMsIDAuMDA0Mzc2LCAwLjAwNDM3OCwgMC4wMDQzNzksIDAuMDA0Mzc5IiwgXAotICAgICAgICAgICIwLjAwNDMxNiwgMC4wMDQzNiwgMC4wMDQzNjUsIDAuMDA0MzY5LCAwLjAwNDM2OSwgMC4wMDQzNzEsIDAuMDA0MzcxIiwgXAotICAgICAgICAgICIwLjAwNDMxMSwgMC4wMDQzNTYsIDAuMDA0MzYxLCAwLjAwNDM2NSwgMC4wMDQzNjYsIDAuMDA0MzY3LCAwLjAwNDM2NyIsIFwKLSAgICAgICAgICAiMC4wMDQzMDksIDAuMDA0MzU0LCAwLjAwNDM1OSwgMC4wMDQzNjMsIDAuMDA0MzYzLCAwLjAwNDM2NSwgMC4wMDQzNjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDY4OTYsIDAuMDA2OTM2LCAwLjAwNjk0LCAwLjAwNjk0MiwgMC4wMDY5NDMsIDAuMDA2OTQ0LCAwLjAwNjk0NCIsIFwKLSAgICAgICAgICAiMC4wMDY4ODYsIDAuMDA2OTI1LCAwLjAwNjkyOSwgMC4wMDY5MzEsIDAuMDA2OTMyLCAwLjAwNjkzMywgMC4wMDY5MzMiLCBcCi0gICAgICAgICAgIjAuMDA2ODc1LCAwLjAwNjkxNSwgMC4wMDY5MTgsIDAuMDA2OTIsIDAuMDA2OTIxLCAwLjAwNjkyMiwgMC4wMDY5MjIiLCBcCi0gICAgICAgICAgIjAuMDA2ODcsIDAuMDA2OTA5LCAwLjAwNjkxNCwgMC4wMDY5MTYsIDAuMDA2OTE3LCAwLjAwNjkxNywgMC4wMDY5MTgiLCBcCi0gICAgICAgICAgIjAuMDA2ODY5LCAwLjAwNjkwOSwgMC4wMDY5MTMsIDAuMDA2OTE1LCAwLjAwNjkxNiwgMC4wMDY5MTYsIDAuMDA2OTE2IiwgXAotICAgICAgICAgICIwLjAwNjg2OCwgMC4wMDY5MDgsIDAuMDA2OTEyLCAwLjAwNjkxNCwgMC4wMDY5MTUsIDAuMDA2OTE2LCAwLjAwNjkxNiIsIFwKLSAgICAgICAgICAiMC4wMDY4NzEsIDAuMDA2OTExLCAwLjAwNjkxNSwgMC4wMDY5MTcsIDAuMDA2OTE4LCAwLjAwNjkxOSwgMC4wMDY5MTkiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFNFKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2ODgyOTM7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjg1MTQ4OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDY4ODI5MzsKLSAgICBjbG9ja19nYXRlX3Rlc3RfcGluIDogdHJ1ZTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDIyNDEsIDAuMDAyMjI5LCAwLjAwMjIyNSwgMC4wMDIyMjEsIDAuMDAyMjE3LCAwLjAwMjIxNCwgMC4wMDIyMTEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDM1NjEsIDAuMDAzNTU2LCAwLjAwMzU1MywgMC4wMDM1NSwgMC4wMDM1NDgsIDAuMDAzNTQ2LCAwLjAwMzU0NCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRSI7Ci0gICAgICBzZGZfY29uZCA6ICJFID09IDEnYjAiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjA4NzUsIC0wLjA3NjI1LCAtMC4wNjM3NSwgLTAuMDU3NSwgLTAuMDQ1LCAtMC4wMzUsIC0wLjAyIiwgXAotICAgICAgICAgICItMC4wOTg3NSwgLTAuMDg3NSwgLTAuMDgxMjUsIC0wLjA2ODc1LCAtMC4wNTYyNSwgLTAuMDQ2MjUsIC0wLjAzMTI1IiwgXAotICAgICAgICAgICItMC4xMTc1LCAtMC4xMDYyNSwgLTAuMDkzNzUsIC0wLjA4MTI1LCAtMC4wNzUsIC0wLjA1ODc1LCAtMC4wNSIsIFwKLSAgICAgICAgICAiLTAuMTMsIC0wLjExODc1LCAtMC4xMDYyNSwgLTAuMSwgLTAuMDg3NSwgLTAuMDcxMjUsIC0wLjA2MjUiLCBcCi0gICAgICAgICAgIi0wLjE0MjUsIC0wLjEzNzUsIC0wLjEyNSwgLTAuMTEyNSwgLTAuMTA2MjUsIC0wLjA5LCAtMC4wNzUiLCBcCi0gICAgICAgICAgIi0wLjE3MTI1LCAtMC4xNiwgLTAuMTQ3NSwgLTAuMTM1LCAtMC4xMjg3NSwgLTAuMTEyNSwgLTAuMTAzNzUiLCBcCi0gICAgICAgICAgIi0wLjE5MjUsIC0wLjE4MTI1LCAtMC4xNjg3NSwgLTAuMTU2MjUsIC0wLjE1LCAtMC4xMzM3NSwgLTAuMTI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDg3NSwgLTAuMDc2MjUsIC0wLjA2Mzc1LCAtMC4wNDUsIC0wLjAzMjUsIC0wLjAxLCAwLjAxMTI1IiwgXAotICAgICAgICAgICItMC4wOTg3NSwgLTAuMDg3NSwgLTAuMDc1LCAtMC4wNTYyNSwgLTAuMDQzNzUsIC0wLjAyMTI1LCAwIiwgXAotICAgICAgICAgICItMC4xMTEyNSwgLTAuMSwgLTAuMDg3NSwgLTAuMDY4NzUsIC0wLjA1NjI1LCAtMC4wMzM3NSwgLTAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMTIzNzUsIC0wLjExMjUsIC0wLjEsIC0wLjA4MTI1LCAtMC4wNjg3NSwgLTAuMDQ2MjUsIC0wLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMTM2MjUsIC0wLjEyNSwgLTAuMTEyNSwgLTAuMDkzNzUsIC0wLjA4MTI1LCAtMC4wNTg3NSwgLTAuMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMTU4NzUsIC0wLjE0NzUsIC0wLjEyODc1LCAtMC4xMTYyNSwgLTAuMTAzNzUsIC0wLjA4MTI1LCAtMC4wNiIsIFwKLSAgICAgICAgICAiLTAuMTczNzUsIC0wLjE2MjUsIC0wLjE1LCAtMC4xMzEyNSwgLTAuMTE4NzUsIC0wLjA5NjI1LCAtMC4wNzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFFIjsKLSAgICAgIHNkZl9jb25kIDogIkUgPT0gMSdiMCI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDkzNzUsIDAuMDgyNSwgMC4wNywgMC4wNjM3NSwgMC4wNTEyNSwgMC4wNDEyNSwgMC4wMjYyNSIsIFwKLSAgICAgICAgICAiMC4xMDUsIDAuMDkzNzUsIDAuMDg3NSwgMC4wNzUsIDAuMDYyNSwgMC4wNTI1LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIjAuMTIzNzUsIDAuMTEyNSwgMC4xLCAwLjA4NzUsIDAuMDgxMjUsIDAuMDY1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICIwLjEzNjI1LCAwLjEyNSwgMC4xMTI1LCAwLjEwNjI1LCAwLjA5Mzc1LCAwLjA3NzUsIDAuMDY4NzUiLCBcCi0gICAgICAgICAgIjAuMTQ4NzUsIDAuMTQzNzUsIDAuMTMxMjUsIDAuMTE4NzUsIDAuMTEyNSwgMC4wOTYyNSwgMC4wODEyNSIsIFwKLSAgICAgICAgICAiMC4xNzc1LCAwLjE2NjI1LCAwLjE1Mzc1LCAwLjE0MTI1LCAwLjEzNSwgMC4xMTg3NSwgMC4xMSIsIFwKLSAgICAgICAgICAiMC4xOTg3NSwgMC4xODc1LCAwLjE3NSwgMC4xNjI1LCAwLjE1NjI1LCAwLjE0LCAwLjEzMTI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDkzNzUsIDAuMDgyNSwgMC4wNywgMC4wNTEyNSwgMC4wMzg3NSwgMC4wMTYyNSwgLTAuMDA1IiwgXAotICAgICAgICAgICIwLjEwNSwgMC4wOTM3NSwgMC4wODEyNSwgMC4wNjI1LCAwLjA1LCAwLjAyNzUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMTE3NSwgMC4xMDYyNSwgMC4wOTM3NSwgMC4wNzUsIDAuMDYyNSwgMC4wNCwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4xMywgMC4xMTg3NSwgMC4xMDYyNSwgMC4wODc1LCAwLjA3NSwgMC4wNTI1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICIwLjE0MjUsIDAuMTMxMjUsIDAuMTE4NzUsIDAuMSwgMC4wODc1LCAwLjA2NSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4xNjUsIDAuMTUzNzUsIDAuMTM1LCAwLjEyMjUsIDAuMTEsIDAuMDg3NSwgMC4wNjYyNSIsIFwKLSAgICAgICAgICAiMC4xOCwgMC4xNjg3NSwgMC4xNTYyNSwgMC4xMzc1LCAwLjEyNSwgMC4xMDI1LCAwLjA4MTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBUTEFUTlRTQ0FYMjAgKgotICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChUTEFUTlRTQ0FYMjApIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMS4xNzk2MTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBjbG9ja19nYXRpbmdfaW50ZWdyYXRlZF9jZWxsIDogImxhdGNoX3Bvc2VkZ2VfcHJlY29udHJvbCI7Ci0gIHN0YXRldGFibGUoIiBDSyAgRSBTRSAiLCAiIEVJTlQgIikgewotICAgICB0YWJsZSA6ICIgIEwgIEwgIEwgOiAtIDogTCAsIFwKLSAgICAgICAgICAgICAgICBMICBIICBMIDogLSA6IEggLCBcCi0gICAgICAgICAgICAgICAgTCAgTCAgSCA6IC0gOiBIICwgXAotICAgICAgICAgICAgICAgIEwgIEggIEggOiAtIDogSCAsIFwKLSAgICAgICAgICAgICAgICBIICAtICAtIDogLSA6IE4gIjsKLSAgfQotICBwaW4oRUlOVCkgewotICAgIGRpcmVjdGlvbiA6IGludGVybmFsOwotICAgIGludGVybmFsX25vZGUgOiAiRUlOVCI7Ci0gIH0KLSAgcGluKENLKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA1Njc2NDQ7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNTY3MzE5OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDU2NzY0NDsKLSAgICBjbG9ja19nYXRlX2Nsb2NrX3BpbiA6IHRydWU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA0NzA2LCAwLjAwNDY5LCAwLjAwNDY3OCwgMC4wMDQ2NzIsIDAuMDA0NjY2LCAwLjAwNDY2MSwgMC4wMDQ2NTkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDQwOTksIDAuMDA0MDg4LCAwLjAwNDA4LCAwLjAwNDA3MywgMC4wMDQwNjksIDAuMDA0MDYyLCAwLjAwNDA2MSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUUmIVNFIjsKLSAgICAgIHNkZl9jb25kIDogIkVfRVFfMF9BTl9TRV9FUV8wID09IDEnYjEiOwotICAgICAgZmFsbF9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMzA2NTE0LCAwLjMxODAyNiwgMC4zMzMwNjMsIDAuMzQ3NzEzLCAwLjM2MjE3NiwgMC4zODQwNSwgMC40MDE3ODkiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEUpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDU5NjgwMTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA1OTY1Nzc7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNTk2ODAxOwotICAgIGNsb2NrX2dhdGVfZW5hYmxlX3BpbiA6IHRydWU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA1MTk3LCAwLjAwNTE5MywgMC4wMDUxODcsIDAuMDA1MTgxLCAwLjAwNTE3NiwgMC4wMDUxNjcsIDAuMDA1MTYxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA1ODMyLCAwLjAwNTgyNSwgMC4wMDU4MiwgMC4wMDU4MTgsIDAuMDA1ODE1LCAwLjAwNTgxMywgMC4wMDU4MDkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIVNFIjsKLSAgICAgIHNkZl9jb25kIDogIlNFID09IDEnYjAiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjExMjUsIC0wLjEwMTI1LCAtMC4wODg3NSwgLTAuMDc2MjUsIC0wLjA3LCAtMC4wNTM3NSwgLTAuMDQ1IiwgXAotICAgICAgICAgICItMC4xMjM3NSwgLTAuMTEyNSwgLTAuMSwgLTAuMDg3NSwgLTAuMDgxMjUsIC0wLjA2NSwgLTAuMDU2MjUiLCBcCi0gICAgICAgICAgIi0wLjEzNjI1LCAtMC4xMjUsIC0wLjExMjUsIC0wLjEwNjI1LCAtMC4wOTM3NSwgLTAuMDgzNzUsIC0wLjA2ODc1IiwgXAotICAgICAgICAgICItMC4xNDg3NSwgLTAuMTM3NSwgLTAuMTMxMjUsIC0wLjExODc1LCAtMC4xMTI1LCAtMC4wOTYyNSwgLTAuMDg3NSIsIFwKLSAgICAgICAgICAiLTAuMTY3NSwgLTAuMTU2MjUsIC0wLjE0Mzc1LCAtMC4xMzEyNSwgLTAuMTI1LCAtMC4xMDg3NSwgLTAuMSIsIFwKLSAgICAgICAgICAiLTAuMTksIC0wLjE3ODc1LCAtMC4xNjYyNSwgLTAuMTYsIC0wLjE0NzUsIC0wLjEzNzUsIC0wLjEyMjUiLCBcCi0gICAgICAgICAgIi0wLjIxMTI1LCAtMC4yLCAtMC4xODc1LCAtMC4xODEyNSwgLTAuMTY4NzUsIC0wLjE1MjUsIC0wLjE0Mzc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDkzNzUsIC0wLjA4MjUsIC0wLjA2Mzc1LCAtMC4wNTEyNSwgLTAuMDM4NzUsIC0wLjAxNjI1LCAwLjAwNSIsIFwKLSAgICAgICAgICAiLTAuMTA1LCAtMC4wOTM3NSwgLTAuMDc1LCAtMC4wNjI1LCAtMC4wNSwgLTAuMDIxMjUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICItMC4xMTc1LCAtMC4xMDYyNSwgLTAuMDg3NSwgLTAuMDc1LCAtMC4wNjI1LCAtMC4wNCwgLTAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjEzLCAtMC4xMTg3NSwgLTAuMSwgLTAuMDg3NSwgLTAuMDc1LCAtMC4wNTI1LCAtMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMTQyNSwgLTAuMTMxMjUsIC0wLjExODc1LCAtMC4xLCAtMC4wODc1LCAtMC4wNjUsIC0wLjA0Mzc1IiwgXAotICAgICAgICAgICItMC4xNjUsIC0wLjE1Mzc1LCAtMC4xMzUsIC0wLjEyMjUsIC0wLjExLCAtMC4wODc1LCAtMC4wNjYyNSIsIFwKLSAgICAgICAgICAiLTAuMTg2MjUsIC0wLjE2ODc1LCAtMC4xNTYyNSwgLTAuMTQzNzUsIC0wLjEyNSwgLTAuMTAyNSwgLTAuMDg3NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIVNFIjsKLSAgICAgIHNkZl9jb25kIDogIlNFID09IDEnYjAiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExODc1LCAwLjEwNzUsIDAuMDk1LCAwLjA4MjUsIDAuMDc2MjUsIDAuMDYsIDAuMDUxMjUiLCBcCi0gICAgICAgICAgIjAuMTMsIDAuMTE4NzUsIDAuMTA2MjUsIDAuMDkzNzUsIDAuMDg3NSwgMC4wNzEyNSwgMC4wNjI1IiwgXAotICAgICAgICAgICIwLjE0MjUsIDAuMTMxMjUsIDAuMTE4NzUsIDAuMTEyNSwgMC4xLCAwLjA5LCAwLjA3NSIsIFwKLSAgICAgICAgICAiMC4xNTUsIDAuMTQzNzUsIDAuMTM3NSwgMC4xMjUsIDAuMTE4NzUsIDAuMTAyNSwgMC4wOTM3NSIsIFwKLSAgICAgICAgICAiMC4xNzM3NSwgMC4xNjI1LCAwLjE1LCAwLjEzNzUsIDAuMTMxMjUsIDAuMTE1LCAwLjEwNjI1IiwgXAotICAgICAgICAgICIwLjE5NjI1LCAwLjE4NSwgMC4xNzI1LCAwLjE2NjI1LCAwLjE1Mzc1LCAwLjE0Mzc1LCAwLjEyODc1IiwgXAotICAgICAgICAgICIwLjIxNzUsIDAuMjA2MjUsIDAuMTkzNzUsIDAuMTg3NSwgMC4xNzUsIDAuMTU4NzUsIDAuMTUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xLCAwLjA4ODc1LCAwLjA3LCAwLjA1NzUsIDAuMDQ1LCAwLjAyMjUsIDAuMDAxMjUiLCBcCi0gICAgICAgICAgIjAuMTExMjUsIDAuMSwgMC4wODEyNSwgMC4wNjg3NSwgMC4wNTYyNSwgMC4wMjc1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMTIzNzUsIDAuMTEyNSwgMC4wOTM3NSwgMC4wODEyNSwgMC4wNjg3NSwgMC4wNDYyNSwgMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMTM2MjUsIDAuMTI1LCAwLjEwNjI1LCAwLjA5Mzc1LCAwLjA4MTI1LCAwLjA1ODc1LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIjAuMTQ4NzUsIDAuMTM3NSwgMC4xMjUsIDAuMTA2MjUsIDAuMDkzNzUsIDAuMDcxMjUsIDAuMDUiLCBcCi0gICAgICAgICAgIjAuMTcxMjUsIDAuMTYsIDAuMTQxMjUsIDAuMTI4NzUsIDAuMTE2MjUsIDAuMDkzNzUsIDAuMDcyNSIsIFwKLSAgICAgICAgICAiMC4xOTI1LCAwLjE3NSwgMC4xNjI1LCAwLjE1LCAwLjEzMTI1LCAwLjEwODc1LCAwLjA5Mzc1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihFQ0spICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMi44MTA5NDsKLSAgICBjbG9ja19nYXRlX291dF9waW4gOiB0cnVlOwotICAgIHN0YXRlX2Z1bmN0aW9uIDogIihDSyBFSU5UKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI4MTM5MiwgMC4zMTE2NDIsIDAuMzMwMDcxLCAwLjM1MDc3NSwgMC4zNzAxODIsIDAuMzg5MTY1LCAwLjQwNzc3MSIsIFwKLSAgICAgICAgICAiMC4yOTMwMzcsIDAuMzIzMjE2LCAwLjM0MTYzMiwgMC4zNjI0MDIsIDAuMzgxODE0LCAwLjQwMDc4NiwgMC40MTk0MjYiLCBcCi0gICAgICAgICAgIjAuMzA4Mzg3LCAwLjMzODY0LCAwLjM1NzA0MiwgMC4zNzc2NiwgMC4zOTcyMTksIDAuNDE2MjEsIDAuNDM0ODM3IiwgXAotICAgICAgICAgICIwLjMyMzgxOCwgMC4zNTQwMjMsIDAuMzcyMzU5LCAwLjM5MzA4NSwgMC40MTI2NDcsIDAuNDMxNjAzLCAwLjQ1MDIzNSIsIFwKLSAgICAgICAgICAiMC4zMzg1OTMsIDAuMzY4ODM0LCAwLjM4NzI0LCAwLjQwNzg1NiwgMC40Mjc0MDYsIDAuNDQ2NDAyLCAwLjQ2NTAzOCIsIFwKLSAgICAgICAgICAiMC4zNjI4MTcsIDAuMzkzMDQ0LCAwLjQxMTQ2NiwgMC40MzIwODMsIDAuNDUxNjM1LCAwLjQ3MDYzMiwgMC40ODkyNjQiLCBcCi0gICAgICAgICAgIjAuMzgyODgyLCAwLjQxMzExMSwgMC40MzE1MzUsIDAuNDUyMTU2LCAwLjQ3MTcxMywgMC40OTA3MDgsIDAuNTA5MzMzIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0Njc0OSwgMC4wODM0NzMsIDAuMTEwNzM4LCAwLjE0NDg1NywgMC4xNzk1OTIsIDAuMjE0NzYsIDAuMjUwMTM3IiwgXAotICAgICAgICAgICIwLjA0Njg0MiwgMC4wODMyMzQsIDAuMTEwNjM2LCAwLjE0NDk3LCAwLjE3OTUxNywgMC4yMTQ2NjYsIDAuMjUwMTQxIiwgXAotICAgICAgICAgICIwLjA0Njg1LCAwLjA4MzM1MSwgMC4xMTA2NDksIDAuMTQ0ODkyLCAwLjE3OTU5OSwgMC4yMTQ2NTgsIDAuMjUwMTE1IiwgXAotICAgICAgICAgICIwLjA0NjczMSwgMC4wODMzOCwgMC4xMTA1OTcsIDAuMTQ0ODYyLCAwLjE3OTU2NCwgMC4yMTQ3MiwgMC4yNTAxNCIsIFwKLSAgICAgICAgICAiMC4wNDY4NSwgMC4wODMzNiwgMC4xMTA2NTIsIDAuMTQ0ODkxLCAwLjE3OTU1LCAwLjIxNDY4LCAwLjI1MDE0NCIsIFwKLSAgICAgICAgICAiMC4wNDY4NSwgMC4wODMzNDIsIDAuMTEwNjQ0LCAwLjE0NDg4NywgMC4xNzk1OCwgMC4yMTQ2NiwgMC4yNTAxMTQiLCBcCi0gICAgICAgICAgIjAuMDQ2ODQ5LCAwLjA4MzM0OSwgMC4xMTA2NCwgMC4xNDQ4ODcsIDAuMTc5NTc5LCAwLjIxNDY1OCwgMC4yNTAxMTMiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjUzMTI1LCAwLjI4MDIyNCwgMC4yOTg2MjksIDAuMzIwNDc3LCAwLjM0MTkzNSwgMC4zNjMxNDMsIDAuMzg0MiIsIFwKLSAgICAgICAgICAiMC4yNjQ2OSwgMC4yOTE3ODcsIDAuMzEwMTk1LCAwLjMzMjA0OSwgMC4zNTM1MDUsIDAuMzc0NzE3LCAwLjM5NTc1NCIsIFwKLSAgICAgICAgICAiMC4yNzk2OCwgMC4zMDY3OTUsIDAuMzI1MjEyLCAwLjM0NzA2MSwgMC4zNjg1MTksIDAuMzg5NzMxLCAwLjQxMDc3IiwgXAotICAgICAgICAgICIwLjI5NDI3NiwgMC4zMjE1MDUsIDAuMzM5ODY5LCAwLjM2MTcxNSwgMC4zODMxODcsIDAuNDA0MzUzLCAwLjQyNTQyMSIsIFwKLSAgICAgICAgICAiMC4zMDg3LCAwLjMzNTgxMiwgMC4zNTQyMDYsIDAuMzc2MTIsIDAuMzk3NTQxLCAwLjQxODc0NiwgMC40Mzk4MTEiLCBcCi0gICAgICAgICAgIjAuMzMwNTA1LCAwLjM1NzU5MiwgMC4zNzYwMDQsIDAuMzk3ODQ5LCAwLjQxOTMwOCwgMC40NDA1MjEsIDAuNDYxNTc1IiwgXAotICAgICAgICAgICIwLjM0ODIyNCwgMC4zNzUxODcsIDAuMzkzNTk0LCAwLjQxNTQ0MiwgMC40MzY5MDMsIDAuNDU4MTE4LCAwLjQ3OTE1OCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzYzNDUsIDAuMDc1ODE4LCAwLjEwNjk1MywgMC4xNDY1NzksIDAuMTg3MDIzLCAwLjIyNzg0NiwgMC4yNjg4OTYiLCBcCi0gICAgICAgICAgIjAuMDM2MjUzLCAwLjA3NTgzNSwgMC4xMDY5NjgsIDAuMTQ2NTk4LCAwLjE4NzA0LCAwLjIyNzg2NiwgMC4yNjg5MDYiLCBcCi0gICAgICAgICAgIjAuMDM2MjUsIDAuMDc1ODIyLCAwLjEwNjk2NSwgMC4xNDY1NiwgMC4xODcyMTQsIDAuMjI3ODUsIDAuMjY5MTc1IiwgXAotICAgICAgICAgICIwLjAzNjMzNiwgMC4wNzU5MDgsIDAuMTA2OTY4LCAwLjE0NjU2NCwgMC4xODcwMzMsIDAuMjI3ODMzLCAwLjI2OTE3OSIsIFwKLSAgICAgICAgICAiMC4wMzY0ODgsIDAuMDc1ODU0LCAwLjEwNjkxMywgMC4xNDY1OTcsIDAuMTg3MDIsIDAuMjI3ODQ2LCAwLjI2ODY4MSIsIFwKLSAgICAgICAgICAiMC4wMzYzMjYsIDAuMDc1ODM0LCAwLjEwNjk1OSwgMC4xNDY1ODIsIDAuMTg3MDI3LCAwLjIyNzg0NiwgMC4yNjg4OSIsIFwKLSAgICAgICAgICAiMC4wMzYzMjMsIDAuMDc1ODI1LCAwLjEwNjk2NSwgMC4xNDY1NzgsIDAuMTg2OTUzLCAwLjIyNzg0MiwgMC4yNjg4OTIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDI0NTU5LCAwLjAyNDkwMiwgMC4wMjUwNzIsIDAuMDI1MjExLCAwLjAyNTMwNSwgMC4wMjUzNzIsIDAuMDI1NDIyIiwgXAotICAgICAgICAgICIwLjAyNDU0LCAwLjAyNDg4OSwgMC4wMjUwNTksIDAuMDI1MTk4LCAwLjAyNTI5MiwgMC4wMjUzNTgsIDAuMDI1NDA4IiwgXAotICAgICAgICAgICIwLjAyNDUzLCAwLjAyNDg3OCwgMC4wMjUwNDgsIDAuMDI1MTksIDAuMDI1MjgxLCAwLjAyNTM1MiwgMC4wMjUzOTYiLCBcCi0gICAgICAgICAgIjAuMDI0NTI2LCAwLjAyNDg3MSwgMC4wMjUwNCwgMC4wMjUxNzksIDAuMDI1MjcxLCAwLjAyNTMzOSwgMC4wMjUzODkiLCBcCi0gICAgICAgICAgIjAuMDI0NTE2LCAwLjAyNDg2NCwgMC4wMjUwMzMsIDAuMDI1MTc2LCAwLjAyNTI2NiwgMC4wMjUzMzIsIDAuMDI1MzgzIiwgXAotICAgICAgICAgICIwLjAyNDUxMywgMC4wMjQ4NjEsIDAuMDI1MDMxLCAwLjAyNTE3LCAwLjAyNTI2MywgMC4wMjUzMzUsIDAuMDI1Mzc5IiwgXAotICAgICAgICAgICIwLjAyNDUwOCwgMC4wMjQ4NTgsIDAuMDI1MDI3LCAwLjAyNTE2NiwgMC4wMjUyNzksIDAuMDI1MzI2LCAwLjAyNTM3NiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyODU5MywgMC4wMjkwNTIsIDAuMDI5MjY2LCAwLjAyOTQzNSwgMC4wMjk1NDcsIDAuMDI5NjI1LCAwLjAyOTY4MyIsIFwKLSAgICAgICAgICAiMC4wMjg1OSwgMC4wMjkwNDksIDAuMDI5MjYzLCAwLjAyOTQzMiwgMC4wMjk1NDMsIDAuMDI5NjIsIDAuMDI5Njc2IiwgXAotICAgICAgICAgICIwLjAyODU3OCwgMC4wMjkwMzUsIDAuMDI5MjUsIDAuMDI5NDE4LCAwLjAyOTUzMSwgMC4wMjk2MDgsIDAuMDI5NjY1IiwgXAotICAgICAgICAgICIwLjAyODU0MywgMC4wMjkwMjIsIDAuMDI5MjQsIDAuMDI5NDExLCAwLjAyOTUyNCwgMC4wMjk2MDIsIDAuMDI5NjU5IiwgXAotICAgICAgICAgICIwLjAyODU1NSwgMC4wMjkwMjMsIDAuMDI5MjM4LCAwLjAyOTQwNywgMC4wMjk1MiwgMC4wMjk1OTgsIDAuMDI5NjU1IiwgXAotICAgICAgICAgICIwLjAyODU3LCAwLjAyOTAyNywgMC4wMjkyNDIsIDAuMDI5NDExLCAwLjAyOTUyMywgMC4wMjk2MDEsIDAuMDI5NjU4IiwgXAotICAgICAgICAgICIwLjAyODU3NywgMC4wMjkwMzEsIDAuMDI5MjQ2LCAwLjAyOTQxNSwgMC4wMjk1MjYsIDAuMDI5NjA0LCAwLjAyOTY2Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTRSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNTYwOTkzOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDU1NzMxMjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA1NjA5OTM7Ci0gICAgY2xvY2tfZ2F0ZV90ZXN0X3BpbiA6IHRydWU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA1MzcyLCAwLjAwNTM2MSwgMC4wMDUzNTYsIDAuMDA1MzUyLCAwLjAwNTM0OSwgMC4wMDUzNDMsIDAuMDA1MzQxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA1OTcyLCAwLjAwNTk2NywgMC4wMDU5NjQsIDAuMDA1OTYyLCAwLjAwNTk1OSwgMC4wMDU5NTgsIDAuMDA1OTU1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFFIjsKLSAgICAgIHNkZl9jb25kIDogIkUgPT0gMSdiMCI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMTEyNSwgLTAuMTAxMjUsIC0wLjA5NSwgLTAuMDgyNSwgLTAuMDc2MjUsIC0wLjA2LCAtMC4wNTEyNSIsIFwKLSAgICAgICAgICAiLTAuMTMsIC0wLjExODc1LCAtMC4xMDYyNSwgLTAuMDkzNzUsIC0wLjA4NzUsIC0wLjA3MTI1LCAtMC4wNjI1IiwgXAotICAgICAgICAgICItMC4xNDI1LCAtMC4xMzEyNSwgLTAuMTE4NzUsIC0wLjEwNjI1LCAtMC4xLCAtMC4wODM3NSwgLTAuMDc1IiwgXAotICAgICAgICAgICItMC4xNTUsIC0wLjE0Mzc1LCAtMC4xMzEyNSwgLTAuMTI1LCAtMC4xMTI1LCAtMC4xMDI1LCAtMC4wOTM3NSIsIFwKLSAgICAgICAgICAiLTAuMTczNzUsIC0wLjE2MjUsIC0wLjE1LCAtMC4xMzc1LCAtMC4xMzEyNSwgLTAuMTE1LCAtMC4xMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMTk2MjUsIC0wLjE4NSwgLTAuMTcyNSwgLTAuMTY2MjUsIC0wLjE1Mzc1LCAtMC4xNDM3NSwgLTAuMTI4NzUiLCBcCi0gICAgICAgICAgIi0wLjIxNzUsIC0wLjIwNjI1LCAtMC4xOTM3NSwgLTAuMTgxMjUsIC0wLjE3NSwgLTAuMTU4NzUsIC0wLjE1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMSwgLTAuMDg4NzUsIC0wLjA3NjI1LCAtMC4wNTc1LCAtMC4wNDUsIC0wLjAyMjUsIC0wLjAwMTI1IiwgXAotICAgICAgICAgICItMC4xMTEyNSwgLTAuMSwgLTAuMDg3NSwgLTAuMDY4NzUsIC0wLjA1NjI1LCAtMC4wMzM3NSwgLTAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMTIzNzUsIC0wLjExMjUsIC0wLjEsIC0wLjA4MTI1LCAtMC4wNjg3NSwgLTAuMDQ2MjUsIC0wLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMTM2MjUsIC0wLjEyNSwgLTAuMTEyNSwgLTAuMDkzNzUsIC0wLjA4MTI1LCAtMC4wNTg3NSwgLTAuMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMTQ4NzUsIC0wLjEzNzUsIC0wLjEyNSwgLTAuMTA2MjUsIC0wLjA5Mzc1LCAtMC4wNzEyNSwgLTAuMDUiLCBcCi0gICAgICAgICAgIi0wLjE3MTI1LCAtMC4xNiwgLTAuMTQxMjUsIC0wLjEyODc1LCAtMC4xMSwgLTAuMDg3NSwgLTAuMDcyNSIsIFwKLSAgICAgICAgICAiLTAuMTg2MjUsIC0wLjE3NSwgLTAuMTU2MjUsIC0wLjE0Mzc1LCAtMC4xMzEyNSwgLTAuMTA4NzUsIC0wLjA4NzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFFIjsKLSAgICAgIHNkZl9jb25kIDogIkUgPT0gMSdiMCI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTE4NzUsIDAuMTA3NSwgMC4xMDEyNSwgMC4wODg3NSwgMC4wODI1LCAwLjA2NjI1LCAwLjA1NzUiLCBcCi0gICAgICAgICAgIjAuMTM2MjUsIDAuMTI1LCAwLjExMjUsIDAuMSwgMC4wOTM3NSwgMC4wNzc1LCAwLjA2ODc1IiwgXAotICAgICAgICAgICIwLjE0ODc1LCAwLjEzNzUsIDAuMTI1LCAwLjExMjUsIDAuMTA2MjUsIDAuMDksIDAuMDgxMjUiLCBcCi0gICAgICAgICAgIjAuMTYxMjUsIDAuMTUsIDAuMTM3NSwgMC4xMzEyNSwgMC4xMTg3NSwgMC4xMDg3NSwgMC4xIiwgXAotICAgICAgICAgICIwLjE4LCAwLjE2ODc1LCAwLjE1NjI1LCAwLjE0Mzc1LCAwLjEzNzUsIDAuMTIxMjUsIDAuMTEyNSIsIFwKLSAgICAgICAgICAiMC4yMDI1LCAwLjE5MTI1LCAwLjE3ODc1LCAwLjE3MjUsIDAuMTYsIDAuMTUsIDAuMTM1IiwgXAotICAgICAgICAgICIwLjIyMzc1LCAwLjIxMjUsIDAuMiwgMC4xODc1LCAwLjE4MTI1LCAwLjE2NSwgMC4xNTYyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwNjI1LCAwLjA5NSwgMC4wODI1LCAwLjA2Mzc1LCAwLjA1MTI1LCAwLjAyODc1LCAwLjAwNzUiLCBcCi0gICAgICAgICAgIjAuMTE3NSwgMC4xMDYyNSwgMC4wOTM3NSwgMC4wNzUsIDAuMDYyNSwgMC4wNCwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4xMywgMC4xMTg3NSwgMC4xMDYyNSwgMC4wODc1LCAwLjA3NSwgMC4wNTI1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICIwLjE0MjUsIDAuMTMxMjUsIDAuMTE4NzUsIDAuMSwgMC4wODc1LCAwLjA2NSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4xNTUsIDAuMTQzNzUsIDAuMTMxMjUsIDAuMTEyNSwgMC4xLCAwLjA3NzUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIjAuMTc3NSwgMC4xNjYyNSwgMC4xNDc1LCAwLjEzNSwgMC4xMTYyNSwgMC4wOTM3NSwgMC4wNzg3NSIsIFwKLSAgICAgICAgICAiMC4xOTI1LCAwLjE4MTI1LCAwLjE2MjUsIDAuMTUsIDAuMTM3NSwgMC4xMTUsIDAuMDkzNzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogVExBVE5UU0NBWDYgKgotICogLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKFRMQVROVFNDQVg2KSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuNDE1OTQyOwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIGNsb2NrX2dhdGluZ19pbnRlZ3JhdGVkX2NlbGwgOiAibGF0Y2hfcG9zZWRnZV9wcmVjb250cm9sIjsKLSAgc3RhdGV0YWJsZSgiIENLICBFIFNFICIsICIgRUlOVCAiKSB7Ci0gICAgIHRhYmxlIDogIiAgTCAgTCAgTCA6IC0gOiBMICwgXAotICAgICAgICAgICAgICAgIEwgIEggIEwgOiAtIDogSCAsIFwKLSAgICAgICAgICAgICAgICBMICBMICBIIDogLSA6IEggLCBcCi0gICAgICAgICAgICAgICAgTCAgSCAgSCA6IC0gOiBIICwgXAotICAgICAgICAgICAgICAgIEggIC0gIC0gOiAtIDogTiAiOwotICB9Ci0gIHBpbihFSU5UKSB7Ci0gICAgZGlyZWN0aW9uIDogaW50ZXJuYWw7Ci0gICAgaW50ZXJuYWxfbm9kZSA6ICJFSU5UIjsKLSAgfQotICBwaW4oQ0spICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYyNzU1NDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MjczNTQ7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjI3NTU0OwotICAgIGNsb2NrX2dhdGVfY2xvY2tfcGluIDogdHJ1ZTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDI3MiwgMC4wMDI3MDMsIDAuMDAyNjkzLCAwLjAwMjY4NCwgMC4wMDI2NzgsIDAuMDAyNjc0LCAwLjAwMjY3MyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjg5LCAwLjAwMjg4LCAwLjAwMjg2OSwgMC4wMDI4NjIsIDAuMDAyODU3LCAwLjAwMjg1NCwgMC4wMDI4NTEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFFJiFTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJFX0VRXzBfQU5fU0VfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjIzMDM3MiwgMC4yNDIwMDMsIDAuMjU2ODUyLCAwLjI3MTM2LCAwLjI4NTg2MiwgMC4zMDczMTYsIDAuMzI0NDYzIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihFKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2NTkwMDQ7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjU5MDAzOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDY1OTAwNDsKLSAgICBjbG9ja19nYXRlX2VuYWJsZV9waW4gOiB0cnVlOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjk3NywgMC4wMDI5NzEsIDAuMDAyOTY0LCAwLjAwMjk1OCwgMC4wMDI5NTMsIDAuMDAyOTQ1LCAwLjAwMjk0MSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNDAxNywgMC4wMDQwMDksIDAuMDA0MDA0LCAwLjAwNCwgMC4wMDM5OTgsIDAuMDAzOTk1LCAwLjAwMzk5MyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhU0UiOwotICAgICAgc2RmX2NvbmQgOiAiU0UgPT0gMSdiMCI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDkzNzUsIC0wLjA4MjUsIC0wLjA3LCAtMC4wNTc1LCAtMC4wNTEyNSwgLTAuMDM1LCAtMC4wMjYyNSIsIFwKLSAgICAgICAgICAiLTAuMTA1LCAtMC4wOTM3NSwgLTAuMDgxMjUsIC0wLjA3NSwgLTAuMDYyNSwgLTAuMDUyNSwgLTAuMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMTE3NSwgLTAuMTA2MjUsIC0wLjA5Mzc1LCAtMC4wODc1LCAtMC4wNzUsIC0wLjA2NSwgLTAuMDU2MjUiLCBcCi0gICAgICAgICAgIi0wLjEzNjI1LCAtMC4xMjUsIC0wLjExMjUsIC0wLjEsIC0wLjA5Mzc1LCAtMC4wNzc1LCAtMC4wNjg3NSIsIFwKLSAgICAgICAgICAiLTAuMTQ4NzUsIC0wLjEzNzUsIC0wLjEyNSwgLTAuMTE4NzUsIC0wLjEwNjI1LCAtMC4wOTYyNSwgLTAuMDgxMjUiLCBcCi0gICAgICAgICAgIi0wLjE3MTI1LCAtMC4xNiwgLTAuMTQ3NSwgLTAuMTQxMjUsIC0wLjEyODc1LCAtMC4xMTg3NSwgLTAuMTEiLCBcCi0gICAgICAgICAgIi0wLjE5MjUsIC0wLjE4MTI1LCAtMC4xNjg3NSwgLTAuMTYyNSwgLTAuMTUsIC0wLjE0LCAtMC4xMzEyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjA4NzUsIC0wLjA3NjI1LCAtMC4wNjM3NSwgLTAuMDQ1LCAtMC4wMzI1LCAtMC4wMSwgMC4wMTEyNSIsIFwKLSAgICAgICAgICAiLTAuMDk4NzUsIC0wLjA4NzUsIC0wLjA2ODc1LCAtMC4wNTYyNSwgLTAuMDQzNzUsIC0wLjAyMTI1LCAwIiwgXAotICAgICAgICAgICItMC4xMTEyNSwgLTAuMSwgLTAuMDgxMjUsIC0wLjA2ODc1LCAtMC4wNTYyNSwgLTAuMDMzNzUsIC0wLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjEyMzc1LCAtMC4xMTI1LCAtMC4xLCAtMC4wODEyNSwgLTAuMDY4NzUsIC0wLjA0NjI1LCAtMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjEzNjI1LCAtMC4xMjUsIC0wLjExMjUsIC0wLjA5Mzc1LCAtMC4wODEyNSwgLTAuMDU4NzUsIC0wLjA0Mzc1IiwgXAotICAgICAgICAgICItMC4xNTg3NSwgLTAuMTQ3NSwgLTAuMTM1LCAtMC4xMTYyNSwgLTAuMTAzNzUsIC0wLjA4MTI1LCAtMC4wNiIsIFwKLSAgICAgICAgICAiLTAuMTgsIC0wLjE2ODc1LCAtMC4xNSwgLTAuMTM3NSwgLTAuMTE4NzUsIC0wLjA5NjI1LCAtMC4wODEyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIVNFIjsKLSAgICAgIHNkZl9jb25kIDogIlNFID09IDEnYjAiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEsIDAuMDg4NzUsIDAuMDc2MjUsIDAuMDYzNzUsIDAuMDU3NSwgMC4wNDEyNSwgMC4wMzI1IiwgXAotICAgICAgICAgICIwLjExMTI1LCAwLjEsIDAuMDg3NSwgMC4wODEyNSwgMC4wNjg3NSwgMC4wNTg3NSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4xMjM3NSwgMC4xMTI1LCAwLjEsIDAuMDkzNzUsIDAuMDgxMjUsIDAuMDcxMjUsIDAuMDYyNSIsIFwKLSAgICAgICAgICAiMC4xNDI1LCAwLjEzMTI1LCAwLjExODc1LCAwLjEwNjI1LCAwLjEsIDAuMDgzNzUsIDAuMDc1IiwgXAotICAgICAgICAgICIwLjE1NSwgMC4xNDM3NSwgMC4xMzEyNSwgMC4xMjUsIDAuMTEyNSwgMC4xMDI1LCAwLjA4NzUiLCBcCi0gICAgICAgICAgIjAuMTc3NSwgMC4xNjYyNSwgMC4xNTM3NSwgMC4xNDc1LCAwLjEzNSwgMC4xMjUsIDAuMTE2MjUiLCBcCi0gICAgICAgICAgIjAuMTk4NzUsIDAuMTg3NSwgMC4xNzUsIDAuMTY4NzUsIDAuMTU2MjUsIDAuMTQ2MjUsIDAuMTM3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5Mzc1LCAwLjA4MjUsIDAuMDcsIDAuMDUxMjUsIDAuMDM4NzUsIDAuMDE2MjUsIC0wLjAwNSIsIFwKLSAgICAgICAgICAiMC4xMDUsIDAuMDkzNzUsIDAuMDc1LCAwLjA2MjUsIDAuMDUsIDAuMDI3NSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiMC4xMTc1LCAwLjEwNjI1LCAwLjA4NzUsIDAuMDc1LCAwLjA2MjUsIDAuMDQsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMTMsIDAuMTE4NzUsIDAuMTA2MjUsIDAuMDg3NSwgMC4wNzUsIDAuMDUyNSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4xNDI1LCAwLjEzMTI1LCAwLjExODc1LCAwLjEsIDAuMDg3NSwgMC4wNjUsIDAuMDUiLCBcCi0gICAgICAgICAgIjAuMTY1LCAwLjE1Mzc1LCAwLjE0MTI1LCAwLjEyMjUsIDAuMTEsIDAuMDg3NSwgMC4wNjYyNSIsIFwKLSAgICAgICAgICAiMC4xODYyNSwgMC4xNzUsIDAuMTU2MjUsIDAuMTQzNzUsIDAuMTI1LCAwLjEwMjUsIDAuMDg3NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRUNLKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuNzgyNDgzOwotICAgIGNsb2NrX2dhdGVfb3V0X3BpbiA6IHRydWU7Ci0gICAgc3RhdGVfZnVuY3Rpb24gOiAiKENLIEVJTlQpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMTcwNiwgMC4zMDkxMTQsIDAuMzkzNDgxLCAwLjQ1MzUzNCwgMC41NDk2MzYsIDAuNjMzNjEsIDAuNzUzNjUiLCBcCi0gICAgICAgICAgIjAuMjI4NTksIDAuMzIwNzc5LCAwLjQwNTExMiwgMC40NjUxNjIsIDAuNTYxMTg5LCAwLjY0NTMxMiwgMC43NjUyNDQiLCBcCi0gICAgICAgICAgIjAuMjQ0MDY0LCAwLjMzNjIwNSwgMC40MjA1NDIsIDAuNDgwNjExLCAwLjU3NjY3MiwgMC42NjA2OTMsIDAuNzgwNzA5IiwgXAotICAgICAgICAgICIwLjI1OTM2NSwgMC4zNTE1MzEsIDAuNDM1ODYsIDAuNDk1OTI5LCAwLjU5MTk1OSwgMC42NzYwMTcsIDAuNzk1OTk1IiwgXAotICAgICAgICAgICIwLjI3NDQ5LCAwLjM2NjY4NCwgMC40NTEwMTgsIDAuNTExMDUxLCAwLjYwNzE1MywgMC42OTEyMDcsIDAuODExMTM0IiwgXAotICAgICAgICAgICIwLjI5ODI2MiwgMC4zOTAzMjgsIDAuNDc0Njg3LCAwLjUzNDc0LCAwLjYzMDgwMywgMC43MTQ4MjIsIDAuODM0ODQ4IiwgXAotICAgICAgICAgICIwLjMxNzYyOCwgMC40MDk4LCAwLjQ5NDE0MiwgMC41NTQyMDksIDAuNjUwMjcsIDAuNzM0MjkxLCAwLjg1NDMxMiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1NTU2NywgMC4yMTY1MTEsIDAuMzg0NDQxLCAwLjUwNDg2NywgMC42OTkwMjYsIDAuODcxMzk2LCAxLjExMzg3IiwgXAotICAgICAgICAgICIwLjA1NTUxMSwgMC4yMTY1MjYsIDAuMzgzODIsIDAuNTA1NjEzLCAwLjcwMDI4NywgMC44NjkzNjYsIDEuMTE1NzQiLCBcCi0gICAgICAgICAgIjAuMDU1NDUxLCAwLjIxNjQ5NiwgMC4zODM3NTUsIDAuNTA0NzgxLCAwLjY5ODkwNSwgMC44NzEzOTgsIDEuMTE0OTEiLCBcCi0gICAgICAgICAgIjAuMDU1NDM5LCAwLjIxNjU0MywgMC4zODM3OTIsIDAuNTA1NjQzLCAwLjY5OTIxNCwgMC44NzE0MzgsIDEuMTE1NDYiLCBcCi0gICAgICAgICAgIjAuMDU1NDY3LCAwLjIxNjUzNCwgMC4zODQ1MTUsIDAuNTA0ODQ2LCAwLjY5ODg4MSwgMC44Njg5NTIsIDEuMTE1NzEiLCBcCi0gICAgICAgICAgIjAuMDU1NTUsIDAuMjE2NDcsIDAuMzg0NDE3LCAwLjUwNDc2OSwgMC42OTg4MzcsIDAuODcxMzg0LCAxLjExMzY1IiwgXAotICAgICAgICAgICIwLjA1NTQ2MywgMC4yMTY0NjcsIDAuMzgzNzIsIDAuNTA0NzY2LCAwLjY5ODg1MywgMC44NzEzODgsIDEuMTEzNTgiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xODYxMjgsIDAuMjg3MDE2LCAwLjM4NDkyNCwgMC40NTQ4NjEsIDAuNTY2ODM1LCAwLjY2NDc5NSwgMC44MDQ3NjQiLCBcCi0gICAgICAgICAgIjAuMTk3NzM2LCAwLjI5ODYzNSwgMC4zOTY1MzgsIDAuNDY2NDc1LCAwLjU3ODQzNywgMC42NzY0MTMsIDAuODE2NDA4IiwgXAotICAgICAgICAgICIwLjIxMjY0NiwgMC4zMTM0ODMsIDAuNDExMzg2LCAwLjQ4MTMyMSwgMC41OTMyODUsIDAuNjkxMjY0LCAwLjgzMTIyMyIsIFwKLSAgICAgICAgICAiMC4yMjcwMDksIDAuMzI3OTIyLCAwLjQyNTgyNSwgMC40OTU3NjMsIDAuNjA3NzM4LCAwLjcwNTY5OSwgMC44NDU2NjYiLCBcCi0gICAgICAgICAgIjAuMjQxNDc4LCAwLjM0MjM4MSwgMC40NDAyODYsIDAuNTEwMjIzLCAwLjYyMjE5OSwgMC43MjAxNiwgMC44NjAxMTkiLCBcCi0gICAgICAgICAgIjAuMjYyODI2LCAwLjM2MzY4OCwgMC40NjE1OSwgMC41MzE1MjgsIDAuNjQzNTA1LCAwLjc0MTQ1NywgMC44ODE0NTEiLCBcCi0gICAgICAgICAgIjAuMjc5OTA2LCAwLjM4MDc5NiwgMC40Nzg2OTEsIDAuNTQ4NjQxLCAwLjY2MDYwMiwgMC43NTg1NjMsIDAuODk4NTMzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQ3OTkyLCAwLjIzNjYzOCwgMC40MzE3MjMsIDAuNTcwODczLCAwLjc5MTEzMywgMC45ODg4OTIsIDEuMjYzMjQiLCBcCi0gICAgICAgICAgIjAuMDQ3OTc1LCAwLjIzNzAxNCwgMC40MzE3MzgsIDAuNTcwODgxLCAwLjc5MTcsIDAuOTg4OTAzLCAxLjI2NjMiLCBcCi0gICAgICAgICAgIjAuMDQ4MDMxLCAwLjIzNzQyMywgMC40MzE3NTMsIDAuNTcwODg1LCAwLjc5MDg5MSwgMC45ODg5MSwgMS4yNjU5OCIsIFwKLSAgICAgICAgICAiMC4wNDc5NzEsIDAuMjM3Mzg4LCAwLjQzMTc1MSwgMC41NzA4ODQsIDAuNzkxNDEsIDAuOTg4ODg3LCAxLjI2NDQ4IiwgXAotICAgICAgICAgICIwLjA0Nzk3MSwgMC4yMzcwNzMsIDAuNDMxNzM3LCAwLjU3MDg4MSwgMC43OTE2NSwgMC45ODg5MDMsIDEuMjY1MzIiLCBcCi0gICAgICAgICAgIjAuMDQ3OTg0LCAwLjIzNzQ1MSwgMC40MzE3NDcsIDAuNTcwODgzLCAwLjc5MzgyMiwgMC45ODc2NTksIDEuMjY2MDIiLCBcCi0gICAgICAgICAgIjAuMDQ3OTk0LCAwLjIzNjYwNCwgMC40MzE3MjUsIDAuNTcwODczLCAwLjc5MTM1NCwgMC45ODg4OTMsIDEuMjY1NjciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDkxODYsIDAuMDA5MzcyLCAwLjAwOTQwNCwgMC4wMDk0MTQsIDAuMDA5NDIyLCAwLjAwOTQyNiwgMC4wMDk0MzEiLCBcCi0gICAgICAgICAgIjAuMDA5MTY5LCAwLjAwOTM1NiwgMC4wMDkzODgsIDAuMDA5Mzk3LCAwLjAwOTQwNiwgMC4wMDk0MTIsIDAuMDA5NDE0IiwgXAotICAgICAgICAgICIwLjAwOTE1OCwgMC4wMDkzNDQsIDAuMDA5Mzc2LCAwLjAwOTM4NiwgMC4wMDkzOTUsIDAuMDA5Mzk5LCAwLjAwOTQwMyIsIFwKLSAgICAgICAgICAiMC4wMDkxNDksIDAuMDA5MzM2LCAwLjAwOTM2OCwgMC4wMDkzNzgsIDAuMDA5Mzg2LCAwLjAwOTM5MSwgMC4wMDkzOTUiLCBcCi0gICAgICAgICAgIjAuMDA5MTQ0LCAwLjAwOTMzLCAwLjAwOTM2MiwgMC4wMDkzNzEsIDAuMDA5MzgsIDAuMDA5Mzg2LCAwLjAwOTM4OSIsIFwKLSAgICAgICAgICAiMC4wMDkxMzcsIDAuMDA5MzI1LCAwLjAwOTM1NiwgMC4wMDkzNjYsIDAuMDA5Mzc0LCAwLjAwOTM4MSwgMC4wMDkzODMiLCBcCi0gICAgICAgICAgIjAuMDA5MTM0LCAwLjAwOTMyLCAwLjAwOTM1MiwgMC4wMDkzNjMsIDAuMDA5MzcxLCAwLjAwOTM3NywgMC4wMDkzOCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEyMDUzLCAwLjAxMjI4LCAwLjAxMjMxNiwgMC4wMTIzMjYsIDAuMDEyMzM1LCAwLjAxMjM0LCAwLjAxMjM0NCIsIFwKLSAgICAgICAgICAiMC4wMTIwMzcsIDAuMDEyMjY3LCAwLjAxMjMwMiwgMC4wMTIzMTQsIDAuMDEyMzIzLCAwLjAxMjMyOCwgMC4wMTIzMzIiLCBcCi0gICAgICAgICAgIjAuMDEyMDI4LCAwLjAxMjI1OCwgMC4wMTIyOTMsIDAuMDEyMzA0LCAwLjAxMjMxNCwgMC4wMTIzMTgsIDAuMDEyMzIyIiwgXAotICAgICAgICAgICIwLjAxMjAyMiwgMC4wMTIyNTMsIDAuMDEyMjg4LCAwLjAxMjI5OSwgMC4wMTIzMDgsIDAuMDEyMzEzLCAwLjAxMjMxNyIsIFwKLSAgICAgICAgICAiMC4wMTIwMjEsIDAuMDEyMjUxLCAwLjAxMjI4NywgMC4wMTIyOTcsIDAuMDEyMzA3LCAwLjAxMjMxMSwgMC4wMTIzMTYiLCBcCi0gICAgICAgICAgIjAuMDEyMDI0LCAwLjAxMjI1MSwgMC4wMTIyODYsIDAuMDEyMjk3LCAwLjAxMjMwNiwgMC4wMTIzMTEsIDAuMDEyMzE1IiwgXAotICAgICAgICAgICIwLjAxMjAyOSwgMC4wMTIyNTUsIDAuMDEyMjksIDAuMDEyMywgMC4wMTIzMSwgMC4wMTIzMTQsIDAuMDEyMzE4Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTRSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjk1NDc1OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDY5MjM0NDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2OTU0NzU7Ci0gICAgY2xvY2tfZ2F0ZV90ZXN0X3BpbiA6IHRydWU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzMTQ4LCAwLjAwMzEzNywgMC4wMDMxMzIsIDAuMDAzMTI4LCAwLjAwMzEyNSwgMC4wMDMxMiwgMC4wMDMxMTciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDQxNTYsIDAuMDA0MTUsIDAuMDA0MTQ3LCAwLjAwNDE0NSwgMC4wMDQxNDMsIDAuMDA0MTQsIDAuMDA0MTM5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFFIjsKLSAgICAgIHNkZl9jb25kIDogIkUgPT0gMSdiMCI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMSwgLTAuMDg4NzUsIC0wLjA3NjI1LCAtMC4wNjM3NSwgLTAuMDU3NSwgLTAuMDQxMjUsIC0wLjAzMjUiLCBcCi0gICAgICAgICAgIi0wLjExMTI1LCAtMC4xLCAtMC4wODc1LCAtMC4wNzUsIC0wLjA2ODc1LCAtMC4wNTI1LCAtMC4wNDM3NSIsIFwKLSAgICAgICAgICAiLTAuMTIzNzUsIC0wLjExMjUsIC0wLjEsIC0wLjA5Mzc1LCAtMC4wODEyNSwgLTAuMDcxMjUsIC0wLjA1NjI1IiwgXAotICAgICAgICAgICItMC4xMzYyNSwgLTAuMTMxMjUsIC0wLjExODc1LCAtMC4xMDYyNSwgLTAuMSwgLTAuMDgzNzUsIC0wLjA3NSIsIFwKLSAgICAgICAgICAiLTAuMTU1LCAtMC4xNDM3NSwgLTAuMTMxMjUsIC0wLjEyNSwgLTAuMTEyNSwgLTAuMTAyNSwgLTAuMDg3NSIsIFwKLSAgICAgICAgICAiLTAuMTc3NSwgLTAuMTY2MjUsIC0wLjE1Mzc1LCAtMC4xNDc1LCAtMC4xMzUsIC0wLjEyNSwgLTAuMTE2MjUiLCBcCi0gICAgICAgICAgIi0wLjE5ODc1LCAtMC4xODc1LCAtMC4xNzUsIC0wLjE2ODc1LCAtMC4xNTYyNSwgLTAuMTQ2MjUsIC0wLjEzNzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wOTM3NSwgLTAuMDgyNSwgLTAuMDcsIC0wLjA1MTI1LCAtMC4wMzg3NSwgLTAuMDE2MjUsIDAuMDA1IiwgXAotICAgICAgICAgICItMC4xMDUsIC0wLjA5Mzc1LCAtMC4wODEyNSwgLTAuMDYyNSwgLTAuMDUsIC0wLjAyNzUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICItMC4xMTc1LCAtMC4xMDYyNSwgLTAuMDkzNzUsIC0wLjA3NSwgLTAuMDYyNSwgLTAuMDQsIC0wLjAxODc1IiwgXAotICAgICAgICAgICItMC4xMywgLTAuMTE4NzUsIC0wLjEwNjI1LCAtMC4wODc1LCAtMC4wNzUsIC0wLjA1MjUsIC0wLjAzMTI1IiwgXAotICAgICAgICAgICItMC4xNDI1LCAtMC4xMzEyNSwgLTAuMTE4NzUsIC0wLjEsIC0wLjA4NzUsIC0wLjA2NSwgLTAuMDQzNzUiLCBcCi0gICAgICAgICAgIi0wLjE2NSwgLTAuMTUzNzUsIC0wLjEzNSwgLTAuMTIyNSwgLTAuMTAzNzUsIC0wLjA4MTI1LCAtMC4wNjYyNSIsIFwKLSAgICAgICAgICAiLTAuMTgsIC0wLjE2ODc1LCAtMC4xNTYyNSwgLTAuMTM3NSwgLTAuMTI1LCAtMC4xMDI1LCAtMC4wODEyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUUiOwotICAgICAgc2RmX2NvbmQgOiAiRSA9PSAxJ2IwIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDYyNSwgMC4wOTUsIDAuMDgyNSwgMC4wNywgMC4wNjM3NSwgMC4wNDc1LCAwLjAzODc1IiwgXAotICAgICAgICAgICIwLjExNzUsIDAuMTA2MjUsIDAuMDkzNzUsIDAuMDgxMjUsIDAuMDc1LCAwLjA1ODc1LCAwLjA1IiwgXAotICAgICAgICAgICIwLjEzLCAwLjExODc1LCAwLjEwNjI1LCAwLjEsIDAuMDg3NSwgMC4wNzc1LCAwLjA2MjUiLCBcCi0gICAgICAgICAgIjAuMTQyNSwgMC4xMzc1LCAwLjEyNSwgMC4xMTI1LCAwLjEwNjI1LCAwLjA5LCAwLjA4MTI1IiwgXAotICAgICAgICAgICIwLjE2MTI1LCAwLjE1LCAwLjEzNzUsIDAuMTMxMjUsIDAuMTE4NzUsIDAuMTA4NzUsIDAuMDkzNzUiLCBcCi0gICAgICAgICAgIjAuMTgzNzUsIDAuMTcyNSwgMC4xNiwgMC4xNTM3NSwgMC4xNDEyNSwgMC4xMzEyNSwgMC4xMjI1IiwgXAotICAgICAgICAgICIwLjIwNSwgMC4xOTM3NSwgMC4xODEyNSwgMC4xNzUsIDAuMTYyNSwgMC4xNTI1LCAwLjE0Mzc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMSwgMC4wODg3NSwgMC4wNzYyNSwgMC4wNTc1LCAwLjA0NSwgMC4wMjI1LCAwLjAwMTI1IiwgXAotICAgICAgICAgICIwLjExMTI1LCAwLjEsIDAuMDg3NSwgMC4wNjg3NSwgMC4wNTYyNSwgMC4wMzM3NSwgMC4wMTI1IiwgXAotICAgICAgICAgICIwLjEyMzc1LCAwLjExMjUsIDAuMSwgMC4wODEyNSwgMC4wNjg3NSwgMC4wNDYyNSwgMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMTM2MjUsIDAuMTI1LCAwLjExMjUsIDAuMDkzNzUsIDAuMDgxMjUsIDAuMDU4NzUsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiMC4xNDg3NSwgMC4xMzc1LCAwLjEyNSwgMC4xMDYyNSwgMC4wOTM3NSwgMC4wNzEyNSwgMC4wNSIsIFwKLSAgICAgICAgICAiMC4xNzEyNSwgMC4xNiwgMC4xNDEyNSwgMC4xMjg3NSwgMC4xMSwgMC4wODc1LCAwLjA3MjUiLCBcCi0gICAgICAgICAgIjAuMTg2MjUsIDAuMTc1LCAwLjE2MjUsIDAuMTQzNzUsIDAuMTMxMjUsIDAuMTA4NzUsIDAuMDg3NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IFRMQVROWDQgKgotICogLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoVExBVE5YNCkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjU1NjQ0MzsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBsYXRjaCAoUUlOVCxOMCkgewotICAgIGRhdGFfaW4gOiAiRCI7Ci0gICAgZW5hYmxlIDogIighR04pIjsKLSAgfQotICBwaW4oRCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjQwNzM7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjM5MTQ3OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDY0MDczOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDE1OSwgMC4wMDAxNjEsIDAuMDAwMTYxLCAwLjAwMDE2MiwgMC4wMDAxNjIsIDAuMDAwMTYyLCAwLjAwMDE2MiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDE2NywgMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJHTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjA5Mzc1LCAtMC4wODI1LCAtMC4wNywgLTAuMDU3NSwgLTAuMDQ1LCAtMC4wMzUsIC0wLjAyIiwgXAotICAgICAgICAgICItMC4xMDUsIC0wLjA5Mzc1LCAtMC4wODEyNSwgLTAuMDY4NzUsIC0wLjA1NjI1LCAtMC4wNDYyNSwgLTAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjExNzUsIC0wLjEwNjI1LCAtMC4wOTM3NSwgLTAuMDgxMjUsIC0wLjA3NSwgLTAuMDU4NzUsIC0wLjA1IiwgXAotICAgICAgICAgICItMC4xMywgLTAuMTE4NzUsIC0wLjEwNjI1LCAtMC4wOTM3NSwgLTAuMDg3NSwgLTAuMDcxMjUsIC0wLjA2MjUiLCBcCi0gICAgICAgICAgIi0wLjE0MjUsIC0wLjEzMTI1LCAtMC4xMTg3NSwgLTAuMTEyNSwgLTAuMSwgLTAuMDgzNzUsIC0wLjA3NSIsIFwKLSAgICAgICAgICAiLTAuMTY1LCAtMC4xNTM3NSwgLTAuMTQxMjUsIC0wLjEyODc1LCAtMC4xMjI1LCAtMC4xMDYyNSwgLTAuMDk3NSIsIFwKLSAgICAgICAgICAiLTAuMTg2MjUsIC0wLjE3NSwgLTAuMTYyNSwgLTAuMTUsIC0wLjEzNzUsIC0wLjEyNzUsIC0wLjExMjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMjUsIC0wLjAxMzc1LCAtMC4wMDEyNSwgMC4wMTc1LCAwLjAzLCAwLjA1MjUsIDAuMDczNzUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMjUsIC0wLjAxMjUsIDAuMDA2MjUsIDAuMDE4NzUsIDAuMDQxMjUsIDAuMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjAzNzUsIC0wLjAyNSwgLTAuMDA2MjUsIDAuMDA2MjUsIDAuMDI4NzUsIDAuMDUiLCBcCi0gICAgICAgICAgIi0wLjA2MTI1LCAtMC4wNSwgLTAuMDM3NSwgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLjAxNjI1LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjA3Mzc1LCAtMC4wNjI1LCAtMC4wNSwgLTAuMDMxMjUsIC0wLjAxODc1LCAwLjAwMzc1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDk2MjUsIC0wLjA4NSwgLTAuMDY2MjUsIC0wLjA1Mzc1LCAtMC4wMzUsIC0wLjAxMjUsIDAuMDA4NzUiLCBcCi0gICAgICAgICAgIi0wLjExMTI1LCAtMC4xLCAtMC4wODc1LCAtMC4wNjg3NSwgLTAuMDU2MjUsIC0wLjAyNzUsIC0wLjAxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiR04iOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTI1LCAwLjExMzc1LCAwLjEwMTI1LCAwLjA4ODc1LCAwLjA4MjUsIDAuMDcyNSwgMC4wNjM3NSIsIFwKLSAgICAgICAgICAiMC4xMzYyNSwgMC4xMjUsIDAuMTEyNSwgMC4xLCAwLjA5Mzc1LCAwLjA4Mzc1LCAwLjA3NSIsIFwKLSAgICAgICAgICAiMC4xNDg3NSwgMC4xMzc1LCAwLjEyNSwgMC4xMTI1LCAwLjEwNjI1LCAwLjA5NjI1LCAwLjA4NzUiLCBcCi0gICAgICAgICAgIjAuMTYxMjUsIDAuMTUsIDAuMTM3NSwgMC4xMzEyNSwgMC4xMTg3NSwgMC4xMDg3NSwgMC4xIiwgXAotICAgICAgICAgICIwLjE3Mzc1LCAwLjE2MjUsIDAuMTUsIDAuMTQzNzUsIDAuMTMxMjUsIDAuMTIxMjUsIDAuMTEyNSIsIFwKLSAgICAgICAgICAiMC4xOTYyNSwgMC4xODUsIDAuMTcyNSwgMC4xNiwgMC4xNTM3NSwgMC4xNDM3NSwgMC4xMzUiLCBcCi0gICAgICAgICAgIjAuMjE3NSwgMC4yMDYyNSwgMC4xOTM3NSwgMC4xODEyNSwgMC4xNzUsIDAuMTU4NzUsIDAuMTUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjg3NSwgMC4wNTc1LCAwLjAzODc1LCAwLjAyNjI1LCAwLjAwNzUsIC0wLjAxNSwgLTAuMDM2MjUiLCBcCi0gICAgICAgICAgIjAuMDgsIDAuMDY4NzUsIDAuMDUsIDAuMDMxMjUsIDAuMDE4NzUsIC0wLjAwMzc1LCAtMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMDkyNSwgMC4wODEyNSwgMC4wNjI1LCAwLjA0Mzc1LCAwLjAzMTI1LCAwLjAwMjUsIC0wLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMTA1LCAwLjA4NzUsIDAuMDc1LCAwLjA1NjI1LCAwLjA0Mzc1LCAwLjAxNSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMTExMjUsIDAuMSwgMC4wODc1LCAwLjA2ODc1LCAwLjA1LCAwLjAyNzUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMTMzNzUsIDAuMTIyNSwgMC4xMDM3NSwgMC4wODUsIDAuMDcyNSwgMC4wNSwgMC4wMjg3NSIsIFwKLSAgICAgICAgICAiMC4xNDg3NSwgMC4xMzc1LCAwLjExODc1LCAwLjEwNjI1LCAwLjA4NzUsIDAuMDY1LCAwLjA0Mzc1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihHTikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNTczNDc5OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDU3MzEyOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDU3MzQ3OTsKLSAgICBjbG9jayA6IHRydWU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxNTcxLCAwLjAwMTU1OCwgMC4wMDE1NDgsIDAuMDAxNTQxLCAwLjAwMTUzNiwgMC4wMDE1MywgMC4wMDE1MjgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDMwMjUsIDAuMDAzMDE2LCAwLjAwMzAwOSwgMC4wMDMwMDQsIDAuMDAyOTk5LCAwLjAwMjk5NiwgMC4wMDI5OTMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiR04iOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFEIjsKLSAgICAgIHNkZl9jb25kIDogIkQgPT0gMSdiMCI7Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4zMTE1MzQsIDAuMzIzMDA1LCAwLjMzNzg4NiwgMC4zNTI3NDIsIDAuMzY3MzQ1LCAwLjM5MDM2OSwgMC40MDkyMTIiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFEpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC41MzE2NjM7Ci0gICAgZnVuY3Rpb24gOiAiUUlOVCI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMzQ2OTMsIDAuMzYxMTkzLCAwLjQ4ODA3OSwgMC41NzkyNjcsIDAuNzIzODMyLCAwLjg1MjE3NSwgMS4wMzMxNSIsIFwKLSAgICAgICAgICAiMC4yNDYyODUsIDAuMzcyNzkzLCAwLjQ5OTM0LCAwLjU5MDg0MSwgMC43MzYxOSwgMC44NjM5MTYsIDEuMDQ0ODciLCBcCi0gICAgICAgICAgIjAuMjYwMDg0LCAwLjM4NjU4NywgMC41MTM0MDksIDAuNjA0NjgzLCAwLjc0OTg1NSwgMC44Nzc2ODgsIDEuMDU4NzYiLCBcCi0gICAgICAgICAgIjAuMjczNjk0LCAwLjQwMDE2LCAwLjUyNzI3NiwgMC42MTgyNTUsIDAuNzYzMDIzLCAwLjg5MTA5NywgMS4wNzIxNyIsIFwKLSAgICAgICAgICAiMC4yODczNDMsIDAuNDEzODA5LCAwLjU0MDYxNywgMC42MzE4ODMsIDAuNzc4MjM4LCAwLjkwNDk1NywgMS4wODU5MyIsIFwKLSAgICAgICAgICAiMC4zMDkxOTEsIDAuNDM1NjUxLCAwLjU2MjQxMywgMC42NTM4MDksIDAuNzk4ODM2LCAwLjkyNjUzMiwgMS4xMDc3NiIsIFwKLSAgICAgICAgICAiMC4zMjgzNjIsIDAuNDU0ODM0LCAwLjU4MTY2NCwgMC42NzI5MTgsIDAuODE3MTMxLCAwLjk0NTk4LCAxLjEyNjk1Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDUwNTEsIDAuMzA2ODksIDAuNTY0NzIzLCAwLjc1MzQ3MSwgMS4wNTA4MiwgMS4zMDE0NCwgMS42ODMxIiwgXAotICAgICAgICAgICIwLjA1MDUwMiwgMC4zMDY4MjksIDAuNTYzNjI2LCAwLjc1MzQ0OSwgMS4wNTA3OCwgMS4zMDAwNCwgMS42ODI5NSIsIFwKLSAgICAgICAgICAiMC4wNTA1MzgsIDAuMzA2OTQyLCAwLjU2MjQ4MywgMC43NTM0NDcsIDEuMDQyOTIsIDEuMjk2ODUsIDEuNjgyOTMiLCBcCi0gICAgICAgICAgIjAuMDUwMzY1LCAwLjMwNjcwNSwgMC41Njc2NDUsIDAuNzUzNTA3LCAxLjA0NDI2LCAxLjMxMDg2LCAxLjY4MzE3IiwgXAotICAgICAgICAgICIwLjA1MDM3MSwgMC4zMDY3MDUsIDAuNTYzNzM1LCAwLjc1MzUxNiwgMS4wNDQ2NiwgMS4yOTg0NiwgMS42ODMxIiwgXAotICAgICAgICAgICIwLjA1MDM3MiwgMC4zMDY2NywgMC41NjQ3NDEsIDAuNzUzNDc3LCAxLjA0NTgxLCAxLjMxMDksIDEuNjgzMTIiLCBcCi0gICAgICAgICAgIjAuMDUwMDU0LCAwLjMwNjcxNCwgMC41NjMzNDIsIDAuNzUzNTEzLCAxLjA0NTY3LCAxLjI5ODQ3LCAxLjY4MzEyIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjI5MzQ5LCAwLjM3NTI1LCAwLjUyMjI4OCwgMC42MjUxMjIsIDAuNzk0MzcyLCAwLjk0MDg0MSwgMS4xNDcxMiIsIFwKLSAgICAgICAgICAiMC4yNDA3MTcsIDAuMzg2NywgMC41MzM2ODIsIDAuNjM4MzMyLCAwLjgwNTc1OSwgMC45NDg4NzksIDEuMTYxMTEiLCBcCi0gICAgICAgICAgIjAuMjUzNTQzLCAwLjM5OTQ5OSwgMC41NDUwNjksIDAuNjQ4OTg5LCAwLjgxNTcyOSwgMC45NjQ5OTIsIDEuMTcwMzYiLCBcCi0gICAgICAgICAgIjAuMjY1OTI0LCAwLjQxMTg3MywgMC41NTg4NTQsIDAuNjYxNTMsIDAuODI5MzYsIDAuOTc0MzI5LCAxLjE4NjIiLCBcCi0gICAgICAgICAgIjAuMjc4MTI1LCAwLjQyNDA2NywgMC41NzEwNjcsIDAuNjczOTI0LCAwLjg0MzE0NywgMC45ODk2NDIsIDEuMTk2NzIiLCBcCi0gICAgICAgICAgIjAuMjk3NjQyLCAwLjQ0MzU5NiwgMC41OTA1OTMsIDAuNjkzNTIxLCAwLjg2MjY2OCwgMS4wMDU3NywgMS4yMTc5OCIsIFwKLSAgICAgICAgICAiMC4zMTQzNDQsIDAuNDYwMjk4LCAwLjYwNzI2NywgMC43MDk5MzcsIDAuODc2NTkxLCAxLjAyMjIzLCAxLjIzNDYxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU1NywgMC4zNDQxMDUsIDAuNjM1MDc4LCAwLjgzOTk5LCAxLjE3NTExLCAxLjQ2NTgxLCAxLjg3OTk4IiwgXAotICAgICAgICAgICIwLjA1NTY1LCAwLjM0NDUwMSwgMC42MzUwNzMsIDAuODQyNzMzLCAxLjE3NDI4LCAxLjQ2NDY1LCAxLjg3NzU2IiwgXAotICAgICAgICAgICIwLjA1NTc3NSwgMC4zNDQ2NTMsIDAuNjMzMTAzLCAwLjg0MzgwNiwgMS4xNzQ2NywgMS40NjU2NCwgMS44NzgyIiwgXAotICAgICAgICAgICIwLjA1NTc1NCwgMC4zNDM3NzQsIDAuNjMzMTcsIDAuODQwNzM1LCAxLjE3NDYzLCAxLjQ2MjE4LCAxLjg4MDQ4IiwgXAotICAgICAgICAgICIwLjA1NTcwNSwgMC4zNDQwMzIsIDAuNjM1MDYxLCAwLjgzOTk3MiwgMS4xNzQ5OSwgMS40NjU1OCwgMS44ODExMyIsIFwKLSAgICAgICAgICAiMC4wNTU3MSwgMC4zNDQxMTgsIDAuNjM1MDgsIDAuODQxNTk2LCAxLjE3NDgxLCAxLjQ2MTQ2LCAxLjg3OTg5IiwgXAotICAgICAgICAgICIwLjA1NTY4NSwgMC4zNDQ3NjksIDAuNjM0Nzg1LCAwLjg0MjE3MSwgMS4xNzE0MSwgMS40NjQ5NiwgMS44NzU2NiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJHTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBub25fdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGZhbGxpbmdfZWRnZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yNzk0NTMsIDAuNDA1OTM1LCAwLjUzMjY2NywgMC42MjM4ODksIDAuNzY5NDA5LCAwLjg5NTk0OCwgMS4wNzYyNSIsIFwKLSAgICAgICAgICAiMC4yOTA4NTcsIDAuNDE3MzMxLCAwLjU0NDA1OCwgMC42MzU4NTgsIDAuNzgwODM4LCAwLjkwNzMyNCwgMS4wODc1NiIsIFwKLSAgICAgICAgICAiMC4zMDU1OTcsIDAuNDMyMDY5LCAwLjU1ODg3NSwgMC42NTAxNTMsIDAuNzk0NjM0LCAwLjkyMzE1LCAxLjEwNDEyIiwgXAotICAgICAgICAgICIwLjMyMDMwOSwgMC40NDY4MTEsIDAuNTczNjAyLCAwLjY2NDg5NywgMC44MTEwODgsIDAuOTM3OTA2LCAxLjExODg4IiwgXAotICAgICAgICAgICIwLjMzNDg0MywgMC40NjEzMDUsIDAuNTg4MDc2LCAwLjY3OTM3OCwgMC44MjU3NjYsIDAuOTUyMzg4LCAxLjEzMzM2IiwgXAotICAgICAgICAgICIwLjM1NzQ1NiwgMC40ODM5NjksIDAuNjEwNzAyLCAwLjcwMjQ1NywgMC44NDc0MzIsIDAuOTc0ODk5LCAxLjE1NDU3IiwgXAotICAgICAgICAgICIwLjM3NjMxMywgMC41MDI4MDUsIDAuNjI5NjA0LCAwLjcyMDg4NiwgMC44NjUzNSwgMC45OTM4OTQsIDEuMTc0ODYiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTA0MDYsIDAuMzA2NTYsIDAuNTY1MjA2LCAwLjc0OTExNywgMS4wNDE5NSwgMS4zMTAzLCAxLjY3MTU1IiwgXAotICAgICAgICAgICIwLjA1MDQyLCAwLjMwNjU3MywgMC41NjUyNjksIDAuNzUwMjgsIDEuMDQyNjgsIDEuMzEwMzcsIDEuNjcwOTYiLCBcCi0gICAgICAgICAgIjAuMDUwNDQyLCAwLjMwNjUwOSwgMC41NjM5NzcsIDAuNzUzNDUzLCAxLjA0NzUyLCAxLjI5OTI0LCAxLjY4Mjk5IiwgXAotICAgICAgICAgICIwLjA1MDQ0LCAwLjMwNjQ5NCwgMC41NjQyMDYsIDAuNzUzNDUyLCAxLjA0OTUsIDEuMjk4NTQsIDEuNjgyOTgiLCBcCi0gICAgICAgICAgIjAuMDUwMzY5LCAwLjMwNjQ3MSwgMC41NjQ1NDUsIDAuNzUzNDYyLCAxLjA0NjMsIDEuMjk5MjIsIDEuNjgyOTgiLCBcCi0gICAgICAgICAgIjAuMDUwNDU5LCAwLjMwNjU1NywgMC41NjUxODQsIDAuNzQ2NTkyLCAxLjA0MTcxLCAxLjMxMDg5LCAxLjY3MzM2IiwgXAotICAgICAgICAgICIwLjA1MDQ1NiwgMC4zMDY1MDEsIDAuNTY0MDg1LCAwLjc1MzQ1NSwgMS4wNDczMiwgMS4yOTg5MiwgMS42ODI5OCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMxMTUzNCwgMC40NTc0MjUsIDAuNjA0MzQyLCAwLjcwNzE3OSwgMC44NzY0NzcsIDEuMDIyMzcsIDEuMjMxODQiLCBcCi0gICAgICAgICAgIjAuMzIzMDA1LCAwLjQ2ODk1MSwgMC42MTU4NjQsIDAuNzIwNTE5LCAwLjg4Nzk0LCAxLjAzMDk3LCAxLjI0MzM1IiwgXAotICAgICAgICAgICIwLjMzNzg4NiwgMC40ODM4MywgMC42MzA3MzksIDAuNzM1NDAxLCAwLjkwMjgyMywgMS4wNDU4LCAxLjI1ODI0IiwgXAotICAgICAgICAgICIwLjM1Mjc0MiwgMC40OTgzODIsIDAuNjQzOTg0LCAwLjc0ODI3OCwgMC45MTc2NjksIDEuMDYxMjQsIDEuMjcyOTciLCBcCi0gICAgICAgICAgIjAuMzY3MzQ1LCAwLjUxMzI4OSwgMC42NjAyMDYsIDAuNzY0ODUzLCAwLjkzMjI3NSwgMS4wNzUyNywgMS4yODc2OCIsIFwKLSAgICAgICAgICAiMC4zOTAzNjksIDAuNTM2MzExLCAwLjY4MzI1MSwgMC43ODYxMDIsIDAuOTU1MzEyLCAxLjA5OTEzLCAxLjMxMDY2IiwgXAotICAgICAgICAgICIwLjQwOTIxMiwgMC41NTUwNzksIDAuNzAyMDgxLCAwLjgwNDYwOSwgMC45NzExNDksIDEuMTE3MDMsIDEuMzI1OTQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTU2MjcsIDAuMzQ0ODQ3LCAwLjYzNDMwNSwgMC44NDA1MTgsIDEuMTc0NDQsIDEuNDYzMiwgMS44NzY4OCIsIFwKLSAgICAgICAgICAiMC4wNTU1NjUsIDAuMzQ0NjIxLCAwLjYzNDc4MywgMC44NDIzNTQsIDEuMTczODIsIDEuNDY2NDYsIDEuODc2ODciLCBcCi0gICAgICAgICAgIjAuMDU1NTY0LCAwLjM0NDYyNSwgMC42MzQ3NTcsIDAuODQyNDMsIDEuMTczODYsIDEuNDY3MzQsIDEuODc3IiwgXAotICAgICAgICAgICIwLjA1NTY3OCwgMC4zNDI5OTksIDAuNjMyNzg4LCAwLjg0MjI2NSwgMS4xNzQzMSwgMS40Njc0NCwgMS44NzY3OCIsIFwKLSAgICAgICAgICAiMC4wNTU1ODQsIDAuMzQ0NjE2LCAwLjYzNDgxNiwgMC44NDIyNzMsIDEuMTczNzcsIDEuNDY3MTEsIDEuODc2NjIiLCBcCi0gICAgICAgICAgIjAuMDU1NTk5LCAwLjM0NDY3NCwgMC42MzM5NzgsIDAuODQwMTcyLCAxLjE3MzU0LCAxLjQ2NDc1LCAxLjg3NjM0IiwgXAotICAgICAgICAgICIwLjA1NTYxOSwgMC4zNDQ4MzcsIDAuNjM0ODMxLCAwLjgzOTkyOSwgMS4xNzE0OCwgMS40NjMxLCAxLjg3ODYyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDYxODUsIDAuMDA2Mjk4LCAwLjAwNjMxMywgMC4wMDYzMTYsIDAuMDA2MzIxLCAwLjAwNjMyMywgMC4wMDYzMjQiLCBcCi0gICAgICAgICAgIjAuMDA2MTc2LCAwLjAwNjI5LCAwLjAwNjMwNywgMC4wMDYzMDgsIDAuMDA2MzE1LCAwLjAwNjMxNiwgMC4wMDYzMTgiLCBcCi0gICAgICAgICAgIjAuMDA2MTcyLCAwLjAwNjI4NiwgMC4wMDYzMDEsIDAuMDA2MzA2LCAwLjAwNjMxLCAwLjAwNjMxMiwgMC4wMDYzMTQiLCBcCi0gICAgICAgICAgIjAuMDA2MTY2LCAwLjAwNjI4MSwgMC4wMDYyOTYsIDAuMDA2Mjk5LCAwLjAwNjMwMywgMC4wMDYzMDcsIDAuMDA2MzA3IiwgXAotICAgICAgICAgICIwLjAwNjE2NCwgMC4wMDYyNzksIDAuMDA2Mjk0LCAwLjAwNjI5OSwgMC4wMDYzMDMsIDAuMDA2MzA1LCAwLjAwNjMwNyIsIFwKLSAgICAgICAgICAiMC4wMDYxNjIsIDAuMDA2Mjc3LCAwLjAwNjI5LCAwLjAwNjI5NCwgMC4wMDYzMDEsIDAuMDA2MzA2LCAwLjAwNjMwNCIsIFwKLSAgICAgICAgICAiMC4wMDYxNjUsIDAuMDA2Mjc4LCAwLjAwNjI5NSwgMC4wMDYyOTQsIDAuMDA2MzAxLCAwLjAwNjMwMywgMC4wMDYzMDUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjQxLCAwLjAwNjUyLCAwLjAwNjUzMywgMC4wMDY1MzcsIDAuMDA2NTM4LCAwLjAwNjU0MiwgMC4wMDY1NDQiLCBcCi0gICAgICAgICAgIjAuMDA2NDA3LCAwLjAwNjUxOCwgMC4wMDY1MzEsIDAuMDA2NTM3LCAwLjAwNjUzNSwgMC4wMDY1NCwgMC4wMDY1NDIiLCBcCi0gICAgICAgICAgIjAuMDA2NDA0LCAwLjAwNjUxNSwgMC4wMDY1MjksIDAuMDA2NTMyLCAwLjAwNjUzNiwgMC4wMDY1MzcsIDAuMDA2NTQxIiwgXAotICAgICAgICAgICIwLjAwNjQwMiwgMC4wMDY1MTMsIDAuMDA2NTI2LCAwLjAwNjUzLCAwLjAwNjUzOCwgMC4wMDY1MzUsIDAuMDA2NTQyIiwgXAotICAgICAgICAgICIwLjAwNjQwMSwgMC4wMDY1MTIsIDAuMDA2NTIzLCAwLjAwNjUyOSwgMC4wMDY1MywgMC4wMDY1MzQsIDAuMDA2NTM1IiwgXAotICAgICAgICAgICIwLjAwNjM5NywgMC4wMDY1MDksIDAuMDA2NTIyLCAwLjAwNjUyNiwgMC4wMDY1MjYsIDAuMDA2NTMxLCAwLjAwNjUzMiIsIFwKLSAgICAgICAgICAiMC4wMDYzOTUsIDAuMDA2NTA2LCAwLjAwNjUxOSwgMC4wMDY1MjMsIDAuMDA2NTI2LCAwLjAwNjUyOCwgMC4wMDY1MjkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJHTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDc2NCwgMC4wMDc3NTEsIDAuMDA3NzY1LCAwLjAwNzc3LCAwLjAwNzc3MywgMC4wMDc3NzUsIDAuMDA3Nzc1IiwgXAotICAgICAgICAgICIwLjAwNzYyNSwgMC4wMDc3MzksIDAuMDA3NzUzLCAwLjAwNzc1OCwgMC4wMDc3NjIsIDAuMDA3NzY1LCAwLjAwNzc2NSIsIFwKLSAgICAgICAgICAiMC4wMDc2MjgsIDAuMDA3NzQsIDAuMDA3NzU0LCAwLjAwNzc2LCAwLjAwNzc2MiwgMC4wMDc3NjQsIDAuMDA3NzY3IiwgXAotICAgICAgICAgICIwLjAwNzYxOSwgMC4wMDc3MzIsIDAuMDA3NzQ2LCAwLjAwNzc1MSwgMC4wMDc3NTUsIDAuMDA3NzU2LCAwLjAwNzc1OCIsIFwKLSAgICAgICAgICAiMC4wMDc2MTIsIDAuMDA3NzI2LCAwLjAwNzc0LCAwLjAwNzc0NCwgMC4wMDc3NDgsIDAuMDA3NzUsIDAuMDA3NzUxIiwgXAotICAgICAgICAgICIwLjAwNzYwOCwgMC4wMDc3MjIsIDAuMDA3NzM2LCAwLjAwNzc0MSwgMC4wMDc3NDUsIDAuMDA3NzQ3LCAwLjAwNzc0NyIsIFwKLSAgICAgICAgICAiMC4wMDc2MTEsIDAuMDA3NzI0LCAwLjAwNzczOSwgMC4wMDc3NDIsIDAuMDA3NzQ0LCAwLjAwNzc0OCwgMC4wMDc3NDkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNzczMiwgMC4wMDc4NDEsIDAuMDA3ODQ4LCAwLjAwNzg1NSwgMC4wMDc4NTcsIDAuMDA3ODU4LCAwLjAwNzg1NiIsIFwKLSAgICAgICAgICAiMC4wMDc3MjUsIDAuMDA3ODM0LCAwLjAwNzg0NiwgMC4wMDc4NDksIDAuMDA3ODUxLCAwLjAwNzg1MiwgMC4wMDc4NTIiLCBcCi0gICAgICAgICAgIjAuMDA3NzIxLCAwLjAwNzgzMSwgMC4wMDc4NDIsIDAuMDA3ODQ1LCAwLjAwNzg0NywgMC4wMDc4NDgsIDAuMDA3ODQ4IiwgXAotICAgICAgICAgICIwLjAwNzcyMSwgMC4wMDc4MjksIDAuMDA3ODM5LCAwLjAwNzg0NCwgMC4wMDc4NDYsIDAuMDA3ODQ5LCAwLjAwNzg0OSIsIFwKLSAgICAgICAgICAiMC4wMDc3MTYsIDAuMDA3ODI1LCAwLjAwNzgzNywgMC4wMDc4NDEsIDAuMDA3ODQyLCAwLjAwNzg0MywgMC4wMDc4NDQiLCBcCi0gICAgICAgICAgIjAuMDA3NzE4LCAwLjAwNzgyNiwgMC4wMDc4MzgsIDAuMDA3ODM5LCAwLjAwNzg0NSwgMC4wMDc4NDMsIDAuMDA3ODQxIiwgXAotICAgICAgICAgICIwLjAwNzcxNiwgMC4wMDc4MjQsIDAuMDA3ODM1LCAwLjAwNzgzOCwgMC4wMDc4NCwgMC4wMDc4NDIsIDAuMDA3ODQyIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihRTikgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjUyNzcwNjsKLSAgICBmdW5jdGlvbiA6ICJOMCI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMDc3NywgMC4zMzkxNzcsIDAuNDY1NzA5LCAwLjU1NjA5NiwgMC43MDA2NywgMC44MjcxNywgMS4wMDc4NCIsIFwKLSAgICAgICAgICAiMC4yMTkwOTUsIDAuMzUwNTMyLCAwLjQ3NzA2NywgMC41Njc0MzksIDAuNzExOTk3LCAwLjgzODY2MywgMS4wMTkyNSIsIFwKLSAgICAgICAgICAiMC4yMzE4OTgsIDAuMzYzMzQyLCAwLjQ4OTg2OSwgMC41ODAzMDcsIDAuNzI0NywgMC44NTEzNTgsIDEuMDMyMDIiLCBcCi0gICAgICAgICAgIjAuMjQ0MzIyLCAwLjM3NTc1OCwgMC41MDIyOTIsIDAuNTkyNjg2LCAwLjczNzIyMywgMC44NjM1NywgMS4wNDQ1MSIsIFwKLSAgICAgICAgICAiMC4yNTY1NSwgMC4zODc5NTEsIDAuNTE0NDg2LCAwLjYwNDg3NCwgMC43NDk0MzQsIDAuODc1OTIyLCAxLjA1NjQ2IiwgXAotICAgICAgICAgICIwLjI3NjAzOSwgMC40MDc0NzUsIDAuNTM0MDA5LCAwLjYyNDM5NSwgMC43Njg5MzYsIDAuODk1NiwgMS4wNzYyIiwgXAotICAgICAgICAgICIwLjI5MjY3NiwgMC40MjQxMTMsIDAuNTUwNjQ2LCAwLjY0MTA4NSwgMC43ODU3MiwgMC45MTIyMTEsIDEuMDkyODIiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjQyOTUsIDAuMzA5ODIzLCAwLjU2NTQ0OCwgMC43NDc1NDYsIDEuMDQ0MDgsIDEuMzAyMTEsIDEuNjcwMjQiLCBcCi0gICAgICAgICAgIjAuMDY0MjMxLCAwLjMwOTc5MiwgMC41NjU0MzgsIDAuNzQ5MzIxLCAxLjA0Mzk1LCAxLjI5ODgyLCAxLjY3MDc0IiwgXAotICAgICAgICAgICIwLjA2NDM1NCwgMC4zMDk3ODYsIDAuNTY0NTQ3LCAwLjc0NzY5NSwgMS4wNDE1OCwgMS4zMDIxOCwgMS42Njc3MSIsIFwKLSAgICAgICAgICAiMC4wNjQzMTUsIDAuMzA5NzgyLCAwLjU2NTQ0NiwgMC43NDc2NDUsIDEuMDQzNzEsIDEuMjk5NDcsIDEuNjcwOTEiLCBcCi0gICAgICAgICAgIjAuMDY0MjksIDAuMzA5Nzk1LCAwLjU2NTQ0MywgMC43NDc1MzgsIDEuMDQ0MDMsIDEuMzAyLCAxLjY2OTg3IiwgXAotICAgICAgICAgICIwLjA2NDMyNiwgMC4zMDk3OTQsIDAuNTY1NDQyLCAwLjc0NzQ5MiwgMS4wNDM5NCwgMS4yOTg4OCwgMS42NzA3NyIsIFwKLSAgICAgICAgICAiMC4wNjQyNTgsIDAuMzA5NzgsIDAuNTY1NDMzLCAwLjc0NzQ1OSwgMS4wNDE0MiwgMS4yOTg2MiwgMS42NzA2NyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIxODQyNiwgMC4zNjc5MzcsIDAuNTEzNjc2LCAwLjYxNzg0MiwgMC43ODQ0MywgMC45MzAxOCwgMS4xMzgyNSIsIFwKLSAgICAgICAgICAiMC4yMjk5OTcsIDAuMzc5NTA2LCAwLjUyNTIxNiwgMC42Mjk0MDgsIDAuNzk1OTYzLCAwLjk0MTc2OCwgMS4xNDk4NCIsIFwKLSAgICAgICAgICAiMC4yNDM4NDgsIDAuMzkzMzQzLCAwLjUzOTA3OCwgMC42NDMyNTQsIDAuODA5ODY3LCAwLjk1NTYxLCAxLjE2MzY5IiwgXAotICAgICAgICAgICIwLjI1NzQ1LCAwLjQwNjk0NiwgMC41NTI3MjUsIDAuNjU2ODU3LCAwLjgyMzQ1MywgMC45NjkxODYsIDEuMTc3MjciLCBcCi0gICAgICAgICAgIjAuMjcxMTA2LCAwLjQyMDYsIDAuNTY2Mzg1LCAwLjY3MDUxLCAwLjgzNzIyNSwgMC45ODI4NjgsIDEuMTkwOTQiLCBcCi0gICAgICAgICAgIjAuMjkyOTY2LCAwLjQ0MjQ1NiwgMC41ODgyNDQsIDAuNjkyMzczLCAwLjg1ODk3MywgMS4wMDQ2OSwgMS4yMTI4IiwgXAotICAgICAgICAgICIwLjMxMjA5OCwgMC40NjE1NzksIDAuNjA3MzYyLCAwLjcxMTQ4OCwgMC44NzgwNjksIDEuMDIzODUsIDEuMjMxOTIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjY1OTgsIDAuMzQ2NDM1LCAwLjYzNDM5NywgMC44NDE5MiwgMS4xNzE2OCwgMS40NjE2LCAxLjg3Nzc5IiwgXAotICAgICAgICAgICIwLjA2NjcyLCAwLjM0NjQ2OSwgMC42MzMyNzQsIDAuODQxOTMzLCAxLjE3MzQ3LCAxLjQ2MTg1LCAxLjg3NzkxIiwgXAotICAgICAgICAgICIwLjA2NjcwNywgMC4zNDY0MjksIDAuNjM0MzU3LCAwLjg0MTkzNiwgMS4xNzIyMiwgMS40NjE3NywgMS44Nzc5MyIsIFwKLSAgICAgICAgICAiMC4wNjY3NjMsIDAuMzQ2MzkyLCAwLjYzNDgzMywgMC44NDE4OTQsIDEuMTcxODMsIDEuNDYzNzUsIDEuODc3NzUiLCBcCi0gICAgICAgICAgIjAuMDY2NzQ4LCAwLjM0NjM5MSwgMC42MzQzNDQsIDAuODQxODgyLCAxLjE3MjA4LCAxLjQ2MTg4LCAxLjg3NzgyIiwgXAotICAgICAgICAgICIwLjA2NjcyMiwgMC4zNDYzODIsIDAuNjM0MjkxLCAwLjg0MTkzLCAxLjE3MjE5LCAxLjQ2MzcsIDEuODc3ODEiLCBcCi0gICAgICAgICAgIjAuMDY2NjUyLCAwLjM0NjM4OCwgMC42MzQzNTMsIDAuODQxODg1LCAxLjE3MjQsIDEuNDYxODgsIDEuODc3OCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJHTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBub25fdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGZhbGxpbmdfZWRnZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yODk4NjQsIDAuNDIxMzIsIDAuNTQ3ODUzLCAwLjYzODI0NiwgMC43ODI4MDQsIDAuOTA5MjAyLCAxLjA5MDA1IiwgXAotICAgICAgICAgICIwLjMwMTM2OSwgMC40MzI4MjUsIDAuNTU5MzU5LCAwLjY0OTcyNCwgMC43OTQyODksIDAuOTIwOTUyLCAxLjEwMTU0IiwgXAotICAgICAgICAgICIwLjMxNjI1LCAwLjQ0NzcwNywgMC41NzQyNCwgMC42NjQ2MDYsIDAuODA5MTcsIDAuOTM1ODMyLCAxLjExNjQyIiwgXAotICAgICAgICAgICIwLjMzMTA0NywgMC40NjI1MDgsIDAuNTg5MDMyLCAwLjY3OTQ3OCwgMC44MjM5ODMsIDAuOTUwNTM0LCAxLjEzMTA3IiwgXAotICAgICAgICAgICIwLjM0NTcwNSwgMC40NzcxNjIsIDAuNjAzNjk3LCAwLjY5NDA1OSwgMC44Mzg2MjYsIDAuOTY1Mjg4LCAxLjE0NTg4IiwgXAotICAgICAgICAgICIwLjM2ODcwMiwgMC41MDAxNjQsIDAuNjI2NywgMC43MTcwODMsIDAuODYxNjIxLCAwLjk4Nzk5MywgMS4xNjg4OSIsIFwKLSAgICAgICAgICAiMC4zODc1NTUsIDAuNTE5MDA3LCAwLjY0NTUzNywgMC43MzU5MzMsIDAuODgwNDksIDEuMDA3MDQsIDEuMTg3NDkiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjQyOTcsIDAuMzA5Nzk2LCAwLjU2NTQyMSwgMC43NDc3MjcsIDEuMDQ0MDUsIDEuMzAxNTcsIDEuNjcwOCIsIFwKLSAgICAgICAgICAiMC4wNjQzOTYsIDAuMzA5ODA3LCAwLjU2NTQzOCwgMC43NDkyOTUsIDEuMDQzOTYsIDEuMjk5MDcsIDEuNjcwNzUiLCBcCi0gICAgICAgICAgIjAuMDY0Mzk1LCAwLjMwOTgwMSwgMC41NjU0MzgsIDAuNzQ5MzA0LCAxLjA0Mzk2LCAxLjI5OTIsIDEuNjcwNzYiLCBcCi0gICAgICAgICAgIjAuMDY0MzA4LCAwLjMwOTMwMiwgMC41NjQ1MDcsIDAuNzQ3NDQ3LCAxLjA0NDAyLCAxLjMwMDA2LCAxLjY3MDIiLCBcCi0gICAgICAgICAgIjAuMDY0NDAxLCAwLjMwOTgwNiwgMC41NjU0MzksIDAuNzQ5Mjg2LCAxLjA0Mzk1LCAxLjI5OTE0LCAxLjY3MDc0IiwgXAotICAgICAgICAgICIwLjA2NDI5NiwgMC4zMDk4MDMsIDAuNTY1NDQ3LCAwLjc0NzYxNCwgMS4wNDM5NCwgMS4zMDE0MiwgMS42NzA3OCIsIFwKLSAgICAgICAgICAiMC4wNjQyOTQsIDAuMzA5ODI3LCAwLjU2NTQ0MSwgMC43NDc2OTQsIDEuMDQyMzEsIDEuMjk3NzksIDEuNjY0NjEiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yNjMxMjksIDAuNDEyNjE4LCAwLjU1ODQwNywgMC42NjI1NDMsIDAuODI5MTQ1LCAwLjk3NDgzMSwgMS4xODI5NCIsIFwKLSAgICAgICAgICAiMC4yNzQ1NTcsIDAuNDI0MDU4LCAwLjU2OTg0OSwgMC42NzQwMzUsIDAuODQwNTg5LCAwLjk4NjI3MiwgMS4xOTQzOCIsIFwKLSAgICAgICAgICAiMC4yODkyNzEsIDAuNDM4NzU5LCAwLjU4NDU0NCwgMC42ODg2NjcsIDAuODU1MjU0LCAxLjAwMTAxLCAxLjIwOTA5IiwgXAotICAgICAgICAgICIwLjMwNDAzMiwgMC40NTM1MjcsIDAuNTk5MzEyLCAwLjcwMzQzNSwgMC44NzAxMTYsIDEuMDE1NzgsIDEuMjIzODUiLCBcCi0gICAgICAgICAgIjAuMzE4NTQsIDAuNDY4MDM3LCAwLjYxMzgyNCwgMC43MTc5NDYsIDAuODg0NjY3LCAxLjAzMDI5LCAxLjIzODM3IiwgXAotICAgICAgICAgICIwLjM0MTE5MiwgMC40OTA2OTYsIDAuNjM2NDg3LCAwLjc0MDY2NSwgMC45MDcyMjUsIDEuMDUyOTMsIDEuMjYxMDMiLCBcCi0gICAgICAgICAgIjAuMzYwMDIyLCAwLjUwOTUxMSwgMC42NTUyOTYsIDAuNzU5NDE5LCAwLjkyNjAwNCwgMS4wNzE3NywgMS4yNzk4NCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2NjYsIDAuMzQ2MzU0LCAwLjYzNDMwNiwgMC44NDA5MTUsIDEuMTcyMiwgMS40NjE4NywgMS44NzY0OCIsIFwKLSAgICAgICAgICAiMC4wNjY1NTUsIDAuMzQ2MzY4LCAwLjYzNDMwMywgMC44NDA2NzgsIDEuMTcyMjEsIDEuNDYxODQsIDEuODc2NDkiLCBcCi0gICAgICAgICAgIjAuMDY2NTksIDAuMzQ2MzQ0LCAwLjYzNDMzNCwgMC44NDE4ODgsIDEuMTcyMjcsIDEuNDYxNjgsIDEuODc3NzciLCBcCi0gICAgICAgICAgIjAuMDY2NTY1LCAwLjM0NjMzNywgMC42MzQzMjcsIDAuODQxODksIDEuMTcxOSwgMS40NjE3MSwgMS44Nzc3OCIsIFwKLSAgICAgICAgICAiMC4wNjY1NTQsIDAuMzQ2MzMyLCAwLjYzNDMxOSwgMC44NDE4NzksIDEuMTcyMDUsIDEuNDYxNjgsIDEuODc3NzciLCBcCi0gICAgICAgICAgIjAuMDY2NTcsIDAuMzQ2MzQ1LCAwLjYzNDMwNSwgMC44NDA4MzYsIDEuMTcyMiwgMS40NjM3MiwgMS44NzY0NSIsIFwKLSAgICAgICAgICAiMC4wNjY1NjYsIDAuMzQ2MzQsIDAuNjM0MzMxLCAwLjg0MTg4NiwgMS4xNzIyOSwgMS40NjE2OSwgMS44Nzc3NyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkQiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2NDEsIDAuMDA2NTIsIDAuMDA2NTMzLCAwLjAwNjUzNywgMC4wMDY1MzgsIDAuMDA2NTQyLCAwLjAwNjU0NCIsIFwKLSAgICAgICAgICAiMC4wMDY0MDcsIDAuMDA2NTE4LCAwLjAwNjUzMSwgMC4wMDY1MzcsIDAuMDA2NTM1LCAwLjAwNjU0LCAwLjAwNjU0MiIsIFwKLSAgICAgICAgICAiMC4wMDY0MDQsIDAuMDA2NTE1LCAwLjAwNjUyOSwgMC4wMDY1MzIsIDAuMDA2NTM2LCAwLjAwNjUzNywgMC4wMDY1NDEiLCBcCi0gICAgICAgICAgIjAuMDA2NDAyLCAwLjAwNjUxMywgMC4wMDY1MjYsIDAuMDA2NTMsIDAuMDA2NTM4LCAwLjAwNjUzNSwgMC4wMDY1NDIiLCBcCi0gICAgICAgICAgIjAuMDA2NDAxLCAwLjAwNjUxMiwgMC4wMDY1MjMsIDAuMDA2NTI5LCAwLjAwNjUzLCAwLjAwNjUzNCwgMC4wMDY1MzUiLCBcCi0gICAgICAgICAgIjAuMDA2Mzk3LCAwLjAwNjUwOSwgMC4wMDY1MjIsIDAuMDA2NTI2LCAwLjAwNjUyNiwgMC4wMDY1MzEsIDAuMDA2NTMyIiwgXAotICAgICAgICAgICIwLjAwNjM5NSwgMC4wMDY1MDYsIDAuMDA2NTE5LCAwLjAwNjUyMywgMC4wMDY1MjYsIDAuMDA2NTI4LCAwLjAwNjUyOSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2MTg1LCAwLjAwNjI5OCwgMC4wMDYzMTMsIDAuMDA2MzE2LCAwLjAwNjMyMSwgMC4wMDYzMjMsIDAuMDA2MzI0IiwgXAotICAgICAgICAgICIwLjAwNjE3NiwgMC4wMDYyOSwgMC4wMDYzMDcsIDAuMDA2MzA4LCAwLjAwNjMxNSwgMC4wMDYzMTYsIDAuMDA2MzE4IiwgXAotICAgICAgICAgICIwLjAwNjE3MiwgMC4wMDYyODYsIDAuMDA2MzAxLCAwLjAwNjMwNiwgMC4wMDYzMSwgMC4wMDYzMTIsIDAuMDA2MzE0IiwgXAotICAgICAgICAgICIwLjAwNjE2NiwgMC4wMDYyODEsIDAuMDA2Mjk2LCAwLjAwNjI5OSwgMC4wMDYzMDMsIDAuMDA2MzA3LCAwLjAwNjMwNyIsIFwKLSAgICAgICAgICAiMC4wMDYxNjQsIDAuMDA2Mjc5LCAwLjAwNjI5NCwgMC4wMDYyOTksIDAuMDA2MzAzLCAwLjAwNjMwNSwgMC4wMDYzMDciLCBcCi0gICAgICAgICAgIjAuMDA2MTYyLCAwLjAwNjI3NywgMC4wMDYyOSwgMC4wMDYyOTQsIDAuMDA2MzAxLCAwLjAwNjMwNiwgMC4wMDYzMDQiLCBcCi0gICAgICAgICAgIjAuMDA2MTY1LCAwLjAwNjI3OCwgMC4wMDYyOTUsIDAuMDA2Mjk0LCAwLjAwNjMwMSwgMC4wMDYzMDMsIDAuMDA2MzA1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiR04iOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA3NzMyLCAwLjAwNzg0MSwgMC4wMDc4NDgsIDAuMDA3ODU1LCAwLjAwNzg1NywgMC4wMDc4NTgsIDAuMDA3ODU2IiwgXAotICAgICAgICAgICIwLjAwNzcyNSwgMC4wMDc4MzQsIDAuMDA3ODQ2LCAwLjAwNzg0OSwgMC4wMDc4NTEsIDAuMDA3ODUyLCAwLjAwNzg1MiIsIFwKLSAgICAgICAgICAiMC4wMDc3MjEsIDAuMDA3ODMxLCAwLjAwNzg0MiwgMC4wMDc4NDUsIDAuMDA3ODQ3LCAwLjAwNzg0OCwgMC4wMDc4NDgiLCBcCi0gICAgICAgICAgIjAuMDA3NzIxLCAwLjAwNzgyOSwgMC4wMDc4MzksIDAuMDA3ODQ0LCAwLjAwNzg0NiwgMC4wMDc4NDksIDAuMDA3ODQ5IiwgXAotICAgICAgICAgICIwLjAwNzcxNiwgMC4wMDc4MjUsIDAuMDA3ODM3LCAwLjAwNzg0MSwgMC4wMDc4NDIsIDAuMDA3ODQzLCAwLjAwNzg0NCIsIFwKLSAgICAgICAgICAiMC4wMDc3MTgsIDAuMDA3ODI2LCAwLjAwNzgzOCwgMC4wMDc4MzksIDAuMDA3ODQ1LCAwLjAwNzg0MywgMC4wMDc4NDEiLCBcCi0gICAgICAgICAgIjAuMDA3NzE2LCAwLjAwNzgyNCwgMC4wMDc4MzUsIDAuMDA3ODM4LCAwLjAwNzg0LCAwLjAwNzg0MiwgMC4wMDc4NDIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNzY0LCAwLjAwNzc1MSwgMC4wMDc3NjUsIDAuMDA3NzcsIDAuMDA3NzczLCAwLjAwNzc3NSwgMC4wMDc3NzUiLCBcCi0gICAgICAgICAgIjAuMDA3NjI1LCAwLjAwNzczOSwgMC4wMDc3NTMsIDAuMDA3NzU4LCAwLjAwNzc2MiwgMC4wMDc3NjUsIDAuMDA3NzY1IiwgXAotICAgICAgICAgICIwLjAwNzYyOCwgMC4wMDc3NCwgMC4wMDc3NTQsIDAuMDA3NzYsIDAuMDA3NzYyLCAwLjAwNzc2NCwgMC4wMDc3NjciLCBcCi0gICAgICAgICAgIjAuMDA3NjE5LCAwLjAwNzczMiwgMC4wMDc3NDYsIDAuMDA3NzUxLCAwLjAwNzc1NSwgMC4wMDc3NTYsIDAuMDA3NzU4IiwgXAotICAgICAgICAgICIwLjAwNzYxMiwgMC4wMDc3MjYsIDAuMDA3NzQsIDAuMDA3NzQ0LCAwLjAwNzc0OCwgMC4wMDc3NSwgMC4wMDc3NTEiLCBcCi0gICAgICAgICAgIjAuMDA3NjA4LCAwLjAwNzcyMiwgMC4wMDc3MzYsIDAuMDA3NzQxLCAwLjAwNzc0NSwgMC4wMDc3NDcsIDAuMDA3NzQ3IiwgXAotICAgICAgICAgICIwLjAwNzYxMSwgMC4wMDc3MjQsIDAuMDA3NzM5LCAwLjAwNzc0MiwgMC4wMDc3NDQsIDAuMDA3NzQ4LCAwLjAwNzc0OSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBUTEFUU1JYMSAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoVExBVFNSWDEpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4yMjYyODc7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgbGF0Y2ggKFFJTlQsTjUpIHsKLSAgICBkYXRhX2luIDogIkQiOwotICAgIGVuYWJsZSA6ICIoRyBSTikiOwotICAgIHByZXNldCA6ICIoIVNOKSI7Ci0gIH0KLSAgcGluKEQpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDU3NjY1MTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA1NzQ3NjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA1NzY2NTE7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMTU5LCAwLjAwMDE2MSwgMC4wMDAxNjIsIDAuMDAwMTYyLCAwLjAwMDE2MiwgMC4wMDAxNjIsIDAuMDAwMTYyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMTY5LCAwLjAwMDE2NywgMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkciOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX2ZhbGxpbmc7Ci0gICAgICB3aGVuIDogIlJOJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIlJOX0VRXzFfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wNSwgLTAuMDM4NzUsIC0wLjAyNjI1LCAtMC4wMDc1LCAwLjAwNSwgMC4wMjc1LCAwLjA0ODc1IiwgXAotICAgICAgICAgICItMC4wNjEyNSwgLTAuMDUsIC0wLjAzNzUsIC0wLjAxODc1LCAtMC4wMDYyNSwgMC4wMTYyNSwgMC4wMzc1IiwgXAotICAgICAgICAgICItMC4wNzM3NSwgLTAuMDYyNSwgLTAuMDUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgMC4wMDM3NSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDkyNSwgLTAuMDc1LCAtMC4wNjI1LCAtMC4wNDM3NSwgLTAuMDMxMjUsIC0wLjAwODc1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICItMC4xMDUsIC0wLjA5Mzc1LCAtMC4wNzUsIC0wLjA2MjUsIC0wLjA0Mzc1LCAtMC4wMjEyNSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjEyNzUsIC0wLjExLCAtMC4wOTc1LCAtMC4wODUsIC0wLjA2NjI1LCAtMC4wNDM3NSwgLTAuMDI4NzUiLCBcCi0gICAgICAgICAgIi0wLjE0MjUsIC0wLjEzMTI1LCAtMC4xMTg3NSwgLTAuMSwgLTAuMDg3NSwgLTAuMDY1LCAtMC4wNDM3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjA4MTI1LCAtMC4wNywgLTAuMDU3NSwgLTAuMDQ1LCAtMC4wMzg3NSwgLTAuMDI4NzUsIC0wLjAyIiwgXAotICAgICAgICAgICItMC4wOTI1LCAtMC4wODEyNSwgLTAuMDY4NzUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDQsIC0wLjAzMTI1IiwgXAotICAgICAgICAgICItMC4xMDUsIC0wLjA5Mzc1LCAtMC4wODEyNSwgLTAuMDY4NzUsIC0wLjA2MjUsIC0wLjA1MjUsIC0wLjA0Mzc1IiwgXAotICAgICAgICAgICItMC4xMTc1LCAtMC4xMDYyNSwgLTAuMDkzNzUsIC0wLjA4MTI1LCAtMC4wNzUsIC0wLjA2NSwgLTAuMDU2MjUiLCBcCi0gICAgICAgICAgIi0wLjEzLCAtMC4xMTg3NSwgLTAuMTA2MjUsIC0wLjA5Mzc1LCAtMC4wODc1LCAtMC4wNzc1LCAtMC4wNjg3NSIsIFwKLSAgICAgICAgICAiLTAuMTQ2MjUsIC0wLjEzNSwgLTAuMTIyNSwgLTAuMTE2MjUsIC0wLjEwMzc1LCAtMC4wOTM3NSwgLTAuMDg1IiwgXAotICAgICAgICAgICItMC4xNjEyNSwgLTAuMTU2MjUsIC0wLjE0Mzc1LCAtMC4xMzEyNSwgLTAuMTI1LCAtMC4xMDg3NSwgLTAuMSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJHIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfZmFsbGluZzsKLSAgICAgIHdoZW4gOiAiUk4mU04iOwotICAgICAgc2RmX2NvbmQgOiAiUk5fRVFfMV9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4NzUsIDAuMDc2MjUsIDAuMDU3NSwgMC4wNDUsIDAuMDI2MjUsIDAuMDAzNzUsIC0wLjAxMTI1IiwgXAotICAgICAgICAgICIwLjA5ODc1LCAwLjA4NzUsIDAuMDY4NzUsIDAuMDU2MjUsIDAuMDM3NSwgMC4wMTUsIDAiLCBcCi0gICAgICAgICAgIjAuMTExMjUsIDAuMSwgMC4wODEyNSwgMC4wNjg3NSwgMC4wNSwgMC4wMjc1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMTIzNzUsIDAuMTEyNSwgMC4xLCAwLjA4MTI1LCAwLjA2MjUsIDAuMDQsIDAuMDI1IiwgXAotICAgICAgICAgICIwLjEzNjI1LCAwLjEyNSwgMC4xMTI1LCAwLjA5Mzc1LCAwLjA4MTI1LCAwLjA1MjUsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiMC4xNTg3NSwgMC4xNDc1LCAwLjEyODc1LCAwLjExNjI1LCAwLjA5NzUsIDAuMDc1LCAwLjA2IiwgXAotICAgICAgICAgICIwLjE4LCAwLjE2MjUsIDAuMTUsIDAuMTMxMjUsIDAuMTE4NzUsIDAuMDk2MjUsIDAuMDc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTI1LCAwLjExMzc1LCAwLjA5NSwgMC4wODg3NSwgMC4wNzYyNSwgMC4wNjYyNSwgMC4wNTc1IiwgXAotICAgICAgICAgICIwLjEzNjI1LCAwLjEyNSwgMC4xMDYyNSwgMC4xLCAwLjA4NzUsIDAuMDc3NSwgMC4wNjg3NSIsIFwKLSAgICAgICAgICAiMC4xNDg3NSwgMC4xMzc1LCAwLjExODc1LCAwLjEwNjI1LCAwLjEsIDAuMDksIDAuMDgxMjUiLCBcCi0gICAgICAgICAgIjAuMTU1LCAwLjE0Mzc1LCAwLjEzMTI1LCAwLjExODc1LCAwLjExMjUsIDAuMTAyNSwgMC4wOTM3NSIsIFwKLSAgICAgICAgICAiMC4xNjc1LCAwLjE1NjI1LCAwLjE0Mzc1LCAwLjEzMTI1LCAwLjEyNSwgMC4xMTUsIDAuMTA2MjUiLCBcCi0gICAgICAgICAgIjAuMTksIDAuMTc4NzUsIDAuMTYsIDAuMTUzNzUsIDAuMTQxMjUsIDAuMTMxMjUsIDAuMTIyNSIsIFwKLSAgICAgICAgICAiMC4yMDUsIDAuMTkzNzUsIDAuMTgxMjUsIDAuMTY4NzUsIDAuMTU2MjUsIDAuMTQ2MjUsIDAuMTM3NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRykgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjAwMDU3OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYwMDA1NzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA1MTE0MzI7Ci0gICAgY2xvY2sgOiB0cnVlOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTU2NiwgMC4wMDE1NTMsIDAuMDAxNTQyLCAwLjAwMTUzNSwgMC4wMDE1MzMsIDAuMDAxNTMsIDAuMDAxNTI3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMTg4LCAwLjAwMDE4OCwgMC4wMDAxODgsIDAuMDAwMTg4LCAwLjAwMDE4OCwgMC4wMDAxODgsIDAuMDAwMTg4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkciOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFEJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuNDQ4NDE2LCAwLjQ1ODQ2MywgMC40NzE2OTgsIDAuNDg1NjExLCAwLjQ5OTUwNCwgMC41MjEzMjQsIDAuNTQwODkyIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihRKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMTMzNTkzOwotICAgIGZ1bmN0aW9uIDogIlFJTlQiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkQiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI4Mzc5LCAwLjMyNjM3OSwgMC41NjkyNjEsIDAuNzgzOTY0LCAxLjA2ODY2LCAxLjYzODc0LCAxLjk5NjI4IiwgXAotICAgICAgICAgICIwLjI5NTE5NywgMC4zMzc5MjgsIDAuNTgwNzk1LCAwLjc5NTkwMSwgMS4wODAwMiwgMS42NTA3NiwgMi4wMDc1NSIsIFwKLSAgICAgICAgICAiMC4zMDg5NzIsIDAuMzUxNDk2LCAwLjU5NDQ4OCwgMC44MDkxODYsIDEuMDk0NjEsIDEuNjY0MTIsIDIuMDIxMjEiLCBcCi0gICAgICAgICAgIjAuMzIyNTM3LCAwLjM2NTIyMSwgMC42MDgwODUsIDAuODIyODYsIDEuMTA1NSwgMS42NzczOSwgMi4wMzUwMyIsIFwKLSAgICAgICAgICAiMC4zMzYxODQsIDAuMzc4OTQ5LCAwLjYyMTg4NCwgMC44MzQ1NjQsIDEuMTIwOTgsIDEuNjkxODQsIDIuMDQ4NSIsIFwKLSAgICAgICAgICAiMC4zNTc5MTgsIDAuNDAwNDk2LCAwLjY0MzQwMiwgMC44NTgxNDgsIDEuMTQxNTcsIDEuNzEyODcsIDIuMDcwNTIiLCBcCi0gICAgICAgICAgIjAuMzc2NTM5LCAwLjQxOTMzOSwgMC42NjIyOTgsIDAuODc2MzI4LCAxLjE2MTMxLCAxLjczMjI4LCAyLjA4ODg2Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE1NjMxNCwgMC4yNDI1MTQsIDAuNzQxMDcyLCAxLjE3MDczLCAxLjc2NDM3LCAyLjkzNDAyLCAzLjY2NDY4IiwgXAotICAgICAgICAgICIwLjE1NjM3NiwgMC4yNDMzMDIsIDAuNzQxMDYxLCAxLjE3ODksIDEuNzY0MzQsIDIuOTMzOSwgMy42NjQ1OCIsIFwKLSAgICAgICAgICAiMC4xNTYyMzgsIDAuMjQzMzIzLCAwLjc0MTA5OCwgMS4xNzAyNSwgMS43NjQxNywgMi45MzQwMiwgMy42NDA5OSIsIFwKLSAgICAgICAgICAiMC4xNTYzNDEsIDAuMjQzMjcxLCAwLjc0MTA1NiwgMS4xNzMxMiwgMS43NDg2MywgMi45MzM5OSwgMy42NjQ4NyIsIFwKLSAgICAgICAgICAiMC4xNTYwMTIsIDAuMjQzMjczLCAwLjc0MTA4MSwgMS4xNjgxMywgMS43NjQ1NCwgMi45MzQxOCwgMy42NjQ5OSIsIFwKLSAgICAgICAgICAiMC4xNTY0ODUsIDAuMjQyNTYyLCAwLjc0MTA3NywgMS4xNzE2MiwgMS43NjQxMSwgMi45MzM5NSwgMy42NjUxIiwgXAotICAgICAgICAgICIwLjE1NjMzMywgMC4yNDMyODcsIDAuNzQxMDY3LCAxLjE3OTQyLCAxLjc2NDU5LCAyLjkzNDE5LCAzLjY2NTA1Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjM0OTkzNywgMC4zOTkwODQsIDAuNjc4OTY1LCAwLjkyNTkxNCwgMS4yNTQ5MywgMS45MjAyOSwgMi4zMjcyIiwgXAotICAgICAgICAgICIwLjM2MTI1MywgMC40MTA0NzksIDAuNjkxMTYzLCAwLjkzNjk3NywgMS4yNzA1OSwgMS45MjQ5MywgMi4zNDQyNyIsIFwKLSAgICAgICAgICAiMC4zNzQzNTksIDAuNDIzNTc3LCAwLjcwMzMwNCwgMC45NTA0MTcsIDEuMjgzNzcsIDEuOTQ0NjgsIDIuMzU3NzEiLCBcCi0gICAgICAgICAgIjAuMzg2Nzc3LCAwLjQzNjIxMSwgMC43MTY5MzksIDAuOTYyNzY5LCAxLjI5NjI5LCAxLjk1NzE3LCAyLjM3MDA4IiwgXAotICAgICAgICAgICIwLjM5ODgyNywgMC40NDgwNzYsIDAuNzI4NzgyLCAwLjk3NDYxNCwgMS4zMDM3NywgMS45NjkwNiwgMi4zODIzNCIsIFwKLSAgICAgICAgICAiMC40MTc3ODcsIDAuNDY2NjA3LCAwLjc0NjUwOCwgMC45OTM0OTIsIDEuMzIyNDQsIDEuOTg3ODUsIDIuMzk0NTUiLCBcCi0gICAgICAgICAgIjAuNDM0MjA5LCAwLjQ4MzQ0OSwgMC43NjMxNDYsIDEuMDEwMjUsIDEuMzQzNjMsIDIuMDA0NSwgMi40MTc1NCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNzY1NzIsIDAuMjc0MTc2LCAwLjgyOTAwMywgMS4zMTg1LCAxLjk3MDYzLCAzLjI4MzMsIDQuMTAzNTIiLCBcCi0gICAgICAgICAgIjAuMTc2NTMzLCAwLjI3Mzk0LCAwLjgzMDIzMiwgMS4zMTk1OCwgMS45NzQyNywgMy4yNzgyLCA0LjEwMjY3IiwgXAotICAgICAgICAgICIwLjE3NjUxOCwgMC4yNzQzNiwgMC44MzAxMjEsIDEuMzIxMzMsIDEuOTczOCwgMy4yODMwOSwgNC4xMDIwNSIsIFwKLSAgICAgICAgICAiMC4xNzY1OTEsIDAuMjc0MjczLCAwLjgzMDc5MiwgMS4zMTk3LCAxLjk3MzA1LCAzLjI4Mjg3LCA0LjEwMTg3IiwgXAotICAgICAgICAgICIwLjE3NjUyMywgMC4yNzM5ODMsIDAuODMwMzM1LCAxLjMxODk0LCAxLjk3MzQ4LCAzLjI4MzI4LCA0LjEwMjEyIiwgXAotICAgICAgICAgICIwLjE3NjUyNCwgMC4yNzQ2NDUsIDAuODMwMjE5LCAxLjMyMDE5LCAxLjk3MTc5LCAzLjI4MjA4LCA0LjEwMTk3IiwgXAotICAgICAgICAgICIwLjE3NjUyMiwgMC4yNzQzMTgsIDAuODI5Mjk5LCAxLjMyMTI3LCAxLjk3MzgyLCAzLjI4MzI0LCA0LjEwMjEyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkciOwotICAgICAgdGltaW5nX3NlbnNlIDogbm9uX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiByaXNpbmdfZWRnZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuNDA3OTA4LCAwLjQ1MDQ5LCAwLjY5MzQ0NywgMC45MDY4NjMsIDEuMTkyNjMsIDEuNzYzMzgsIDIuMTIwODUiLCBcCi0gICAgICAgICAgIjAuNDE4MDkyLCAwLjQ2MDY3OCwgMC43MDM0NzEsIDAuOTE4MzExLCAxLjIwNDMxLCAxLjc3MzE2LCAyLjEyOTA4IiwgXAotICAgICAgICAgICIwLjQzMTE0MywgMC40NzM3MzgsIDAuNzE2NTM0LCAwLjkzMTM3LCAxLjIxNjE5LCAxLjc4NjExLCAyLjE0MzgyIiwgXAotICAgICAgICAgICIwLjQ0NTEyOSwgMC40ODc3MjUsIDAuNzMwNTIzLCAwLjk0NTM1OSwgMS4yMzAwNywgMS44MDAwOSwgMi4xNTc4IiwgXAotICAgICAgICAgICIwLjQ1OTE5MiwgMC41MDE3OTUsIDAuNzQ0NjExLCAwLjk1OTQ2OCwgMS4yNDM3MywgMS44MTQwNywgMi4xNzE4IiwgXAotICAgICAgICAgICIwLjQ4MTI1OCwgMC41MjM4NiwgMC43NjY2NzksIDAuOTgxNTQzLCAxLjI2NTc4LCAxLjgzNjEzLCAyLjE5Mzg2IiwgXAotICAgICAgICAgICIwLjUwMDg4OSwgMC41NDM0NTUsIDAuNzg2MzcxLCAxLjAwMTMxLCAxLjI4NDk3LCAxLjg1NTY1LCAyLjIxMzM0Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE1NjQ3NiwgMC4yNDMyMzgsIDAuNzQxMDA4LCAxLjE3OTY2LCAxLjc2NDM4LCAyLjkzMzk0LCAzLjY2NTA3IiwgXAotICAgICAgICAgICIwLjE1NjQ3OCwgMC4yNDMyMjUsIDAuNzQxMDg0LCAxLjE3MzMyLCAxLjc2MzQ3LCAyLjkzMzk5LCAzLjY2NTQyIiwgXAotICAgICAgICAgICIwLjE1NjQ3NiwgMC4yNDMyMiwgMC43NDEwNzksIDEuMTczNCwgMS43NjQzNSwgMi45MzM5OCwgMy42NjQ4OSIsIFwKLSAgICAgICAgICAiMC4xNTY0NzYsIDAuMjQzMjE4LCAwLjc0MTA3NywgMS4xNzM0NywgMS43NjQzOSwgMi45MzM5OCwgMy42NjQ4OSIsIFwKLSAgICAgICAgICAiMC4xNTY0NzgsIDAuMjQzMjAyLCAwLjc0MTA2NywgMS4xNzQyNiwgMS43NjQ1MywgMi45MzM5OSwgMy42NjQ5IiwgXAotICAgICAgICAgICIwLjE1NjQ3OCwgMC4yNDMyLCAwLjc0MTA2NiwgMS4xNzQ0NCwgMS43NjQ1MywgMi45MzM5OSwgMy42NjQ5IiwgXAotICAgICAgICAgICIwLjE1NjQ3NCwgMC4yNDMyMiwgMC43NDEwMzYsIDEuMTc2OSwgMS43NjQ2NiwgMi45MzQsIDMuNjY0ODgiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuNDQ4NDE2LCAwLjQ5NzcxNSwgMC43Nzc2MzEsIDEuMDI0NjYsIDEuMzU3OTEsIDIuMDE4ODcsIDIuNDMxODgiLCBcCi0gICAgICAgICAgIjAuNDU4NDYzLCAwLjUwODA1MiwgMC43ODc2ODUsIDEuMDM1MSwgMS4zNjgyNCwgMi4wMjkxNiwgMi40NDIyMyIsIFwKLSAgICAgICAgICAiMC40NzE2OTgsIDAuNTIxMDU2LCAwLjgwMTcyNCwgMS4wNDgxLCAxLjM4MTIzLCAyLjA0MjEyLCAyLjQ1NTE1IiwgXAotICAgICAgICAgICIwLjQ4NTYxMSwgMC41MzQ3OTgsIDAuODE1ODA3LCAxLjA2NDQ0LCAxLjM5NTE2LCAyLjA1NjAzLCAyLjQ2OTI0IiwgXAotICAgICAgICAgICIwLjQ5OTUwNCwgMC41NDg4NTgsIDAuODI4NDY2LCAxLjA3NTkzLCAxLjQwOTAzLCAyLjA2OTkzLCAyLjQ4Mjk4IiwgXAotICAgICAgICAgICIwLjUyMTMyNCwgMC41NzA0OTcsIDAuODUxNTA3LCAxLjEwMDE0LCAxLjQzMDg3LCAyLjA5MTczLCAyLjUwNDkzIiwgXAotICAgICAgICAgICIwLjU0MDg5MiwgMC41OTAyMzcsIDAuODY5NzUsIDEuMTE3MzIsIDEuNDUwNDEsIDIuMTExMywgMi41MjQzNyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNzY1ODgsIDAuMjczOTE0LCAwLjgzMDAzOCwgMS4zMjA2NiwgMS45NzMxMSwgMy4yNzkzNiwgNC4wOTczNyIsIFwKLSAgICAgICAgICAiMC4xNzY1NzIsIDAuMjc0MDk1LCAwLjgzMDAyMywgMS4zMjE1MywgMS45NzM2OCwgMy4yODI3NCwgNC4xMDE1MiIsIFwKLSAgICAgICAgICAiMC4xNzY1NzcsIDAuMjczODk4LCAwLjgyOTYxNCwgMS4zMjEsIDEuOTcyNzMsIDMuMjgxMjIsIDQuMDk5NjIiLCBcCi0gICAgICAgICAgIjAuMTc2NTgsIDAuMjc0Nzc2LCAwLjgzMDU5LCAxLjMxOTk4LCAxLjk3Mzc2LCAzLjI4MjgyLCA0LjEwMTc5IiwgXAotICAgICAgICAgICIwLjE3NjYxMiwgMC4yNzM5OTUsIDAuODMwMTQxLCAxLjMyMTUxLCAxLjk3MzgyLCAzLjI4MzEzLCA0LjEwMjAyIiwgXAotICAgICAgICAgICIwLjE3NjU3NCwgMC4yNzQyMzYsIDAuODMwNTU0LCAxLjMyMDE5LCAxLjk3Mzc1LCAzLjI4Mjc4LCA0LjEwMTgyIiwgXAotICAgICAgICAgICIwLjE3NjYxNCwgMC4yNzQwMSwgMC44MzA2MTcsIDEuMzIxNSwgMS45NzM4MiwgMy4yODMxNCwgNC4xMDIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUk4iOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJpc2luZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC40MTQ1MTMsIDAuNDU3MDcsIDAuNjk5MzY5LCAwLjkxNTE1NCwgMS4xOTkxNSwgMS43Njk3NCwgMi4xMjY1NCIsIFwKLSAgICAgICAgICAiMC40MjU3NDEsIDAuNDY4MzE3LCAwLjcxMTI4MSwgMC45MjM1NjUsIDEuMjEwMzgsIDEuNzgxMjMsIDIuMTM3OTQiLCBcCi0gICAgICAgICAgIjAuNDM5OTE2LCAwLjQ4MjQ2NiwgMC43MjU1NDMsIDAuOTM5NDE0LCAxLjIyNDU0LCAxLjc5NTQ2LCAyLjE1MjA1IiwgXAotICAgICAgICAgICIwLjQ1MzMyOCwgMC40OTU5MTIsIDAuNzM4ODg2LCAwLjk1MTc5NywgMS4yMzgwMiwgMS44MDg4MSwgMi4xNjU1NiIsIFwKLSAgICAgICAgICAiMC40NjcwMTksIDAuNTA5NjE3LCAwLjc1MjQyLCAwLjk2NzI4MSwgMS4yNTE5NiwgMS44MjE5NywgMi4xNzk2OCIsIFwKLSAgICAgICAgICAiMC40ODkyNTEsIDAuNTMxODA1LCAwLjc3NDkxNCwgMC45ODkzMzMsIDEuMjczODQsIDEuODQ0ODMsIDIuMjAxMzIiLCBcCi0gICAgICAgICAgIjAuNTA3ODIyLCAwLjU1MDQwNSwgMC43OTMzOCwgMS4wMDYyOCwgMS4yOTI1MiwgMS44NjMzMSwgMi4yMjAwNiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNTY0NzMsIDAuMjQzMTAxLCAwLjc0MDg0MSwgMS4xNzMxMiwgMS43NjQ0MiwgMi45MjM1MSwgMy42NjQ3OCIsIFwKLSAgICAgICAgICAiMC4xNTY0NzUsIDAuMjQzMjQ1LCAwLjc0MTAwNSwgMS4xNzI1MywgMS43NjQzOSwgMi45MzM5NCwgMy42NjQ2NiIsIFwKLSAgICAgICAgICAiMC4xNTY0NzMsIDAuMjQzMDIzLCAwLjczNzAyLCAxLjE3OTM3LCAxLjc2NDQsIDIuOTMzOTEsIDMuNjY0NjgiLCBcCi0gICAgICAgICAgIjAuMTU2NDc3LCAwLjI0MzI1LCAwLjc0MDk5OCwgMS4xNzMyLCAxLjc2NDM4LCAyLjkzMzk0LCAzLjY2NDY1IiwgXAotICAgICAgICAgICIwLjE1NjQ3OCwgMC4yNDMyMTYsIDAuNzQxMDc2LCAxLjE3NCwgMS43NjQ0LCAyLjkzMzk5LCAzLjY2NDg5IiwgXAotICAgICAgICAgICIwLjE1NjQ3MywgMC4yNDMwOTEsIDAuNzM1OTQ0LCAxLjE3MDQ5LCAxLjc2NDQzLCAyLjkzMzkzLCAzLjY2NDc1IiwgXAotICAgICAgICAgICIwLjE1NjQ3NywgMC4yNDMyNTgsIDAuNzQxMDAzLCAxLjE3MzEyLCAxLjc2NDM4LCAyLjkzMzkzLCAzLjY2NDY0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiBmYWxsaW5nX2VkZ2U7Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjQzMDU1NiwgMC40Nzk5NSwgMC43NTk1MDIsIDEuMDA2NjgsIDEuMzM5NDksIDEuOTkzNjgsIDIuNDA1NjQiLCBcCi0gICAgICAgICAgIjAuNDQyMTM5LCAwLjQ5MTU5NCwgMC43NzI0ODEsIDEuMDE4MDEsIDEuMzQ3NDcsIDIuMDA1NCwgMi40MjQ2NyIsIFwKLSAgICAgICAgICAiMC40NTY1NzYsIDAuNTA2MTg5LCAwLjc4NTY0OSwgMS4wMzI1OSwgMS4zNjIxNiwgMi4wMjAwMiwgMi40MzkxOCIsIFwKLSAgICAgICAgICAiMC40NzE0NTYsIDAuNTIwOTA2LCAwLjgwMTg1OCwgMS4wNDczNCwgMS4zNzY1NSwgMi4wMzQ3MywgMi40NTQwMyIsIFwKLSAgICAgICAgICAiMC40ODYwNTMsIDAuNTM1MzA5LCAwLjgxNjA2MSwgMS4wNjE4MSwgMS4zOTQ2NCwgMi4wNTUxMSwgMi40Njg3MSIsIFwKLSAgICAgICAgICAiMC41MDg3NTEsIDAuNTU4MTU5LCAwLjgzODc3MywgMS4wODQ1NCwgMS40MTM2NSwgMi4wNzc1LCAyLjQ5MDgyIiwgXAotICAgICAgICAgICIwLjUyNzAzNCwgMC41NzY0MTcsIDAuODU3MTQzLCAxLjEwNTQyLCAxLjQzNTc3LCAyLjA5MDY2LCAyLjUwMjU0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE3NjgzMiwgMC4yNzQyNjgsIDAuODMxNDkyLCAxLjMyMDI4LCAxLjk3NTkxLCAzLjI4NTg1LCA0LjEwNTAxIiwgXAotICAgICAgICAgICIwLjE3NjU4OSwgMC4yNzQyNjUsIDAuODMxMTgxLCAxLjMxOTYxLCAxLjk3MjA5LCAzLjI4MzIyLCA0LjEwNTA0IiwgXAotICAgICAgICAgICIwLjE3NjYyMSwgMC4yNzQyNjYsIDAuODMwMjg5LCAxLjMyMDY3LCAxLjk3NjI5LCAzLjI4NjgsIDQuMTA1MTciLCBcCi0gICAgICAgICAgIjAuMTc2NTgzLCAwLjI3NDY5NiwgMC44MzEwMjksIDEuMzIxMSwgMS45NzY5NywgMy4yODU3NSwgNC4xMDUwMSIsIFwKLSAgICAgICAgICAiMC4xNzY1NzcsIDAuMjc0MDM5LCAwLjgzMDI0OSwgMS4zMjA1NiwgMS45NzY2NiwgMy4yODcxOSwgNC4xMDUwNCIsIFwKLSAgICAgICAgICAiMC4xNzY1NzIsIDAuMjc0MzA1LCAwLjgzMDMyOSwgMS4zMTk5OSwgMS45NzU2OSwgMy4yODgzNSwgNC4xMDU4OCIsIFwKLSAgICAgICAgICAiMC4xNzY1ODYsIDAuMjc0Mjk0LCAwLjgzMDkyOSwgMS4zMjEsIDEuOTc2ODQsIDMuMjgyNDQsIDQuMTA1MDIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiU04iOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHByZXNldDsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTc1NDkyLCAwLjIxODE0NCwgMC40NjA5MDksIDAuNjc0MzY0LCAwLjk2MDA2OSwgMS41MzA3NSwgMS44ODYwNyIsIFwKLSAgICAgICAgICAiMC4xODcwODQsIDAuMjI5NzA4LCAwLjQ3MjU2MSwgMC42ODYzMTQsIDAuOTcxNjA4LCAxLjU0MjM0LCAxLjg5ODY5IiwgXAotICAgICAgICAgICIwLjIwMTY3MiwgMC4yNDQ0NDEsIDAuNDg3MDc3LCAwLjcwMDQ0OCwgMC45ODYwMTEsIDEuNTU3MTIsIDEuOTE0MTMiLCBcCi0gICAgICAgICAgIjAuMjE2NTAzLCAwLjI1OTEwMiwgMC41MDE3NzcsIDAuNzE1NDI2LCAxLjAwMDg2LCAxLjU3MTgxLCAxLjkyNzE3IiwgXAotICAgICAgICAgICIwLjIzMTQyNywgMC4yNzQwMTIsIDAuNTE2NjkyLCAwLjczMDM0NSwgMS4wMTYsIDEuNTg2MTksIDEuOTQ1MTIiLCBcCi0gICAgICAgICAgIjAuMjU1MDM3LCAwLjI5NzU5NCwgMC41NDAxMzMsIDAuNzUzODUzLCAxLjA0MDA1LCAxLjYxMDIxLCAxLjk2NTkxIiwgXAotICAgICAgICAgICIwLjI3NDk5NiwgMC4zMTc1MDEsIDAuNTU5MzcxLCAwLjc3NDEzLCAxLjA1OTI0LCAxLjYzMTMyLCAxLjk4NjMyIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE1NjQ1MSwgMC4yNDM2MDEsIDAuNzQxMTU2LCAxLjE3NjU5LCAxLjc2NTkxLCAyLjkzODYyLCAzLjY1OTUxIiwgXAotICAgICAgICAgICIwLjE1NjQ0OSwgMC4yNDM1NDcsIDAuNzQxMTg5LCAxLjE4LCAxLjc1NzM5LCAyLjkzNDIxLCAzLjY3MDQyIiwgXAotICAgICAgICAgICIwLjE1NjM0MywgMC4yNDM1MzEsIDAuNzQxMiwgMS4xNzQ1NSwgMS43NTU1MiwgMi45MzQyLCAzLjY3MDM3IiwgXAotICAgICAgICAgICIwLjE1NjQ2MSwgMC4yNDM3NzMsIDAuNzQxMTgsIDEuMTgwMDEsIDEuNzY1NDQsIDIuOTMzOTEsIDMuNjcwODEiLCBcCi0gICAgICAgICAgIjAuMTU2NDY0LCAwLjI0MzU0LCAwLjc0MTE5LCAxLjE4MDAyLCAxLjc1ODEyLCAyLjkzODE5LCAzLjY2OTgiLCBcCi0gICAgICAgICAgIjAuMTU2NDY1LCAwLjI0MzM2NywgMC43NDExODcsIDEuMTc2MjYsIDEuNzY0ODYsIDIuOTMyOTgsIDMuNjY1MTQiLCBcCi0gICAgICAgICAgIjAuMTU2MzI4LCAwLjI0MzQ4OCwgMC43NDA1NTIsIDEuMTc1NiwgMS43NjY2LCAyLjkzNDU1LCAzLjY2ODY5Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI2MTk5OCwgMC4zMTE0MDMsIDAuNTkyMTk0LCAwLjgzODE5NywgMS4xNzE0OCwgMS44MjgzLCAyLjIzNjk2IiwgXAotICAgICAgICAgICIwLjI3MzcyNywgMC4zMjI5NjgsIDAuNjAzNjczLCAwLjg0OTcwNCwgMS4xODMxMywgMS44MzkxMiwgMi4yNDg2NSIsIFwKLSAgICAgICAgICAiMC4yODcyNjMsIDAuMzM2NDkyLCAwLjYxNzM5NywgMC44NjMyNzksIDEuMTk2NjUsIDEuODUyNjEsIDIuMjYyMTIiLCBcCi0gICAgICAgICAgIjAuMzAwNzgxLCAwLjM1MDIyNiwgMC42MzA5NTQsIDAuODc5Mjc2LCAxLjIxMDI5LCAxLjg2ODI2LCAyLjI3NjAxIiwgXAotICAgICAgICAgICIwLjMxNDM3NCwgMC4zNjM3NDksIDAuNjQ0NDEyLCAwLjg5MDk5OCwgMS4yMjIyLCAxLjg4MDA5LCAyLjI4OTQxIiwgXAotICAgICAgICAgICIwLjMzNTgyOCwgMC4zODUzMjMsIDAuNjY2MDk1LCAwLjkxMjA0MSwgMS4yNDY2NCwgMS45MDEyNiwgMi4zMTA4OCIsIFwKLSAgICAgICAgICAiMC4zNTUxNiwgMC40MDQ2MTIsIDAuNjg1NTYzLCAwLjkzMTE3LCAxLjI2NzcyLCAxLjkyMDYxLCAyLjMyOTg2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE3NjQ4NywgMC4yNzQyOTQsIDAuODMwNzc2LCAxLjMyMTMyLCAxLjk3Mjk2LCAzLjI4NTE5LCA0LjEwMzE0IiwgXAotICAgICAgICAgICIwLjE3NjUxMSwgMC4yNzQyNTYsIDAuODMwMjE0LCAxLjMyMTE4LCAxLjk3MzczLCAzLjI4NjI0LCA0LjEwMzY3IiwgXAotICAgICAgICAgICIwLjE3NjUxOCwgMC4yNzQyNjgsIDAuODMxMDI3LCAxLjMyMTM0LCAxLjk3Mzc0LCAzLjI4NTIyLCA0LjEwNDI0IiwgXAotICAgICAgICAgICIwLjE3NjUzNywgMC4yNzQzNzMsIDAuODMwODEyLCAxLjMyMTQ0LCAxLjk3MzcxLCAzLjI4NTM1LCA0LjEwMjgyIiwgXAotICAgICAgICAgICIwLjE3NjU4MywgMC4yNzQyOTMsIDAuODMwNzU3LCAxLjMyMTk5LCAxLjk3MzcyLCAzLjI4NDM0LCA0LjEwMzY3IiwgXAotICAgICAgICAgICIwLjE3NjU3NywgMC4yNzQyNywgMC44MzExNDEsIDEuMzIxNDMsIDEuOTc3MjgsIDMuMjg1ODYsIDQuMTAwNzYiLCBcCi0gICAgICAgICAgIjAuMTc2NTg4LCAwLjI3NDI3MiwgMC44MzEwODIsIDEuMzIwNTEsIDEuOTc3MDEsIDMuMjg1NzksIDQuMTAxNTkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJEIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDIzNjQsIDAuMDAyMzY5LCAwLjAwMjM3NSwgMC4wMDIzNzcsIDAuMDAyMzc4LCAwLjAwMjM3OSwgMC4wMDIzNzgiLCBcCi0gICAgICAgICAgIjAuMDAyMzU5LCAwLjAwMjM2NCwgMC4wMDIzNywgMC4wMDIzNzIsIDAuMDAyMzcyLCAwLjAwMjM3MywgMC4wMDIzNzMiLCBcCi0gICAgICAgICAgIjAuMDAyMzU1LCAwLjAwMjM2LCAwLjAwMjM2NywgMC4wMDIzNjgsIDAuMDAyMzY5LCAwLjAwMjM3LCAwLjAwMjM2OSIsIFwKLSAgICAgICAgICAiMC4wMDIzNTMsIDAuMDAyMzU4LCAwLjAwMjM2NCwgMC4wMDIzNjYsIDAuMDAyMzY2LCAwLjAwMjM2NywgMC4wMDIzNjciLCBcCi0gICAgICAgICAgIjAuMDAyMzUxLCAwLjAwMjM1NiwgMC4wMDIzNjMsIDAuMDAyMzY0LCAwLjAwMjM2NCwgMC4wMDIzNjUsIDAuMDAyMzY2IiwgXAotICAgICAgICAgICIwLjAwMjM0OCwgMC4wMDIzNTMsIDAuMDAyMzYsIDAuMDAyMzYxLCAwLjAwMjM2MiwgMC4wMDIzNjIsIDAuMDAyMzYzIiwgXAotICAgICAgICAgICIwLjAwMjM0NiwgMC4wMDIzNTEsIDAuMDAyMzU4LCAwLjAwMjM1OSwgMC4wMDIzNTksIDAuMDAyMzYxLCAwLjAwMjM2MSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjU4LCAwLjAwMjU4NiwgMC4wMDI1OTQsIDAuMDAyNTk1LCAwLjAwMjU5NiwgMC4wMDI1OTcsIDAuMDAyNTk3IiwgXAotICAgICAgICAgICIwLjAwMjU3NywgMC4wMDI1ODMsIDAuMDAyNTkxLCAwLjAwMjU5MywgMC4wMDI1OTQsIDAuMDAyNTk0LCAwLjAwMjU5NCIsIFwKLSAgICAgICAgICAiMC4wMDI1NzYsIDAuMDAyNTgxLCAwLjAwMjU5LCAwLjAwMjU5MSwgMC4wMDI1OTIsIDAuMDAyNTkzLCAwLjAwMjU5MyIsIFwKLSAgICAgICAgICAiMC4wMDI1NzQsIDAuMDAyNTgsIDAuMDAyNTg4LCAwLjAwMjU4OSwgMC4wMDI1OSwgMC4wMDI1OTEsIDAuMDAyNTkxIiwgXAotICAgICAgICAgICIwLjAwMjU3MywgMC4wMDI1NzksIDAuMDAyNTg3LCAwLjAwMjU4OCwgMC4wMDI1ODksIDAuMDAyNTksIDAuMDAyNTkiLCBcCi0gICAgICAgICAgIjAuMDAyNTcxLCAwLjAwMjU3NiwgMC4wMDI1ODQsIDAuMDAyNTg2LCAwLjAwMjU4NywgMC4wMDI1ODgsIDAuMDAyNTg4IiwgXAotICAgICAgICAgICIwLjAwMjU3LCAwLjAwMjU3NiwgMC4wMDI1ODQsIDAuMDAyNTg1LCAwLjAwMjU4NiwgMC4wMDI1ODcsIDAuMDAyNTg3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzMTMzLCAwLjAwMzEzOCwgMC4wMDMxNDQsIDAuMDAzMTQ1LCAwLjAwMzE0NiwgMC4wMDMxNDcsIDAuMDAzMTQ3IiwgXAotICAgICAgICAgICIwLjAwMzEyNiwgMC4wMDMxMzEsIDAuMDAzMTM3LCAwLjAwMzEzOSwgMC4wMDMxNCwgMC4wMDMxNCwgMC4wMDMxNDEiLCBcCi0gICAgICAgICAgIjAuMDAzMTIxLCAwLjAwMzEyNiwgMC4wMDMxMzIsIDAuMDAzMTM0LCAwLjAwMzEzNCwgMC4wMDMxMzUsIDAuMDAzMTM1IiwgXAotICAgICAgICAgICIwLjAwMzExOCwgMC4wMDMxMjMsIDAuMDAzMTMsIDAuMDAzMTMxLCAwLjAwMzEzMiwgMC4wMDMxMzIsIDAuMDAzMTMyIiwgXAotICAgICAgICAgICIwLjAwMzExNiwgMC4wMDMxMjEsIDAuMDAzMTI3LCAwLjAwMzEyOSwgMC4wMDMxMjksIDAuMDAzMTMsIDAuMDAzMTMxIiwgXAotICAgICAgICAgICIwLjAwMzExNCwgMC4wMDMxMTksIDAuMDAzMTI2LCAwLjAwMzEyNywgMC4wMDMxMjcsIDAuMDAzMTI5LCAwLjAwMzEyOSIsIFwKLSAgICAgICAgICAiMC4wMDMxMTQsIDAuMDAzMTE5LCAwLjAwMzEyNiwgMC4wMDMxMjcsIDAuMDAzMTI3LCAwLjAwMzEyOCwgMC4wMDMxMjkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDMyOSwgMC4wMDMyOTYsIDAuMDAzMzA0LCAwLjAwMzMwNiwgMC4wMDMzMDYsIDAuMDAzMzA3LCAwLjAwMzMwOCIsIFwKLSAgICAgICAgICAiMC4wMDMyODQsIDAuMDAzMjksIDAuMDAzMjk4LCAwLjAwMzI5OSwgMC4wMDMzLCAwLjAwMzMwMSwgMC4wMDMzMDEiLCBcCi0gICAgICAgICAgIjAuMDAzMjc4LCAwLjAwMzI4NCwgMC4wMDMyOTIsIDAuMDAzMjkzLCAwLjAwMzI5NCwgMC4wMDMyOTUsIDAuMDAzMjk2IiwgXAotICAgICAgICAgICIwLjAwMzI3NSwgMC4wMDMyOCwgMC4wMDMyODksIDAuMDAzMjksIDAuMDAzMjkxLCAwLjAwMzI5MiwgMC4wMDMyOTIiLCBcCi0gICAgICAgICAgIjAuMDAzMjcyLCAwLjAwMzI3OCwgMC4wMDMyODYsIDAuMDAzMjg4LCAwLjAwMzI4OSwgMC4wMDMyODksIDAuMDAzMjg5IiwgXAotICAgICAgICAgICIwLjAwMzI3LCAwLjAwMzI3NiwgMC4wMDMyODQsIDAuMDAzMjg1LCAwLjAwMzI4NiwgMC4wMDMyODcsIDAuMDAzMjg3IiwgXAotICAgICAgICAgICIwLjAwMzI2NywgMC4wMDMyNzMsIDAuMDAzMjgxLCAwLjAwMzI4MiwgMC4wMDMyODMsIDAuMDAzMjg0LCAwLjAwMzI4NCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDMwNTIsIDAuMDAzMDU3LCAwLjAwMzA2NCwgMC4wMDMwNjUsIDAuMDAzMDY2LCAwLjAwMzA2NywgMC4wMDMwNjYiLCBcCi0gICAgICAgICAgIjAuMDAzMDQ2LCAwLjAwMzA1LCAwLjAwMzA1NywgMC4wMDMwNTgsIDAuMDAzMDU5LCAwLjAwMzA2LCAwLjAwMzA2MSIsIFwKLSAgICAgICAgICAiMC4wMDMwNDIsIDAuMDAzMDQ3LCAwLjAwMzA1MywgMC4wMDMwNTUsIDAuMDAzMDU2LCAwLjAwMzA1NiwgMC4wMDMwNTYiLCBcCi0gICAgICAgICAgIjAuMDAzMDM4LCAwLjAwMzA0MywgMC4wMDMwNSwgMC4wMDMwNTEsIDAuMDAzMDUyLCAwLjAwMzA1MywgMC4wMDMwNTIiLCBcCi0gICAgICAgICAgIjAuMDAzMDM2LCAwLjAwMzA0MSwgMC4wMDMwNDgsIDAuMDAzMDQ5LCAwLjAwMzA0OSwgMC4wMDMwNSwgMC4wMDMwNTEiLCBcCi0gICAgICAgICAgIjAuMDAzMDM2LCAwLjAwMzA0MSwgMC4wMDMwNDcsIDAuMDAzMDQ4LCAwLjAwMzA0OSwgMC4wMDMwNSwgMC4wMDMwNSIsIFwKLSAgICAgICAgICAiMC4wMDMwMzMsIDAuMDAzMDM4LCAwLjAwMzA0NSwgMC4wMDMwNDYsIDAuMDAzMDQ3LCAwLjAwMzA0OCwgMC4wMDMwNDciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDM4OTgsIDAuMDAzOTA0LCAwLjAwMzkxMiwgMC4wMDM5MTMsIDAuMDAzOTE0LCAwLjAwMzkxNSwgMC4wMDM5MTUiLCBcCi0gICAgICAgICAgIjAuMDAzODkxLCAwLjAwMzg5NywgMC4wMDM5MDUsIDAuMDAzOTA2LCAwLjAwMzkwNywgMC4wMDM5MDgsIDAuMDAzOTA4IiwgXAotICAgICAgICAgICIwLjAwMzg4NywgMC4wMDM4OTIsIDAuMDAzOSwgMC4wMDM5MDIsIDAuMDAzOTAyLCAwLjAwMzkwMywgMC4wMDM5MDMiLCBcCi0gICAgICAgICAgIjAuMDAzODg0LCAwLjAwMzg4OSwgMC4wMDM4OTcsIDAuMDAzODk5LCAwLjAwMzg5OSwgMC4wMDM5LCAwLjAwMzkiLCBcCi0gICAgICAgICAgIjAuMDAzODgxLCAwLjAwMzg4NywgMC4wMDM4OTUsIDAuMDAzODk2LCAwLjAwMzg5NywgMC4wMDM4OTgsIDAuMDAzODk4IiwgXAotICAgICAgICAgICIwLjAwMzg3OSwgMC4wMDM4ODUsIDAuMDAzODkyLCAwLjAwMzg5NCwgMC4wMDM4OTUsIDAuMDAzODk2LCAwLjAwMzg5NSIsIFwKLSAgICAgICAgICAiMC4wMDM4NzcsIDAuMDAzODgyLCAwLjAwMzg5LCAwLjAwMzg5MSwgMC4wMDM4OTIsIDAuMDAzODkzLCAwLjAwMzg5MyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI2NzcsIDAuMDAyNjgsIDAuMDAyNjg0LCAwLjAwMjY4NSwgMC4wMDI2ODUsIDAuMDAyNjg2LCAwLjAwMjY4NSIsIFwKLSAgICAgICAgICAiMC4wMDI2NzMsIDAuMDAyNjc2LCAwLjAwMjY4LCAwLjAwMjY4MSwgMC4wMDI2ODIsIDAuMDAyNjgyLCAwLjAwMjY4MiIsIFwKLSAgICAgICAgICAiMC4wMDI2NjcsIDAuMDAyNjcxLCAwLjAwMjY3NiwgMC4wMDI2NzcsIDAuMDAyNjc3LCAwLjAwMjY3OCwgMC4wMDI2NzgiLCBcCi0gICAgICAgICAgIjAuMDAyNjYyLCAwLjAwMjY2NiwgMC4wMDI2NzEsIDAuMDAyNjcyLCAwLjAwMjY3MiwgMC4wMDI2NzMsIDAuMDAyNjczIiwgXAotICAgICAgICAgICIwLjAwMjY1NiwgMC4wMDI2NiwgMC4wMDI2NjYsIDAuMDAyNjY3LCAwLjAwMjY2OCwgMC4wMDI2NjgsIDAuMDAyNjY5IiwgXAotICAgICAgICAgICIwLjAwMjY0OCwgMC4wMDI2NTMsIDAuMDAyNjYsIDAuMDAyNjYxLCAwLjAwMjY2MiwgMC4wMDI2NjMsIDAuMDAyNjYzIiwgXAotICAgICAgICAgICIwLjAwMjY0MiwgMC4wMDI2NDgsIDAuMDAyNjU1LCAwLjAwMjY1NywgMC4wMDI2NTgsIDAuMDAyNjU5LCAwLjAwMjY1OSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTYxOSwgMC4wMDE2MjQsIDAuMDAxNjMsIDAuMDAxNjMyLCAwLjAwMTYzMiwgMC4wMDE2MzMsIDAuMDAxNjMzIiwgXAotICAgICAgICAgICIwLjAwMTYxNSwgMC4wMDE2MiwgMC4wMDE2MjcsIDAuMDAxNjI4LCAwLjAwMTYyOCwgMC4wMDE2MjksIDAuMDAxNjI5IiwgXAotICAgICAgICAgICIwLjAwMTYxMSwgMC4wMDE2MTYsIDAuMDAxNjIzLCAwLjAwMTYyNCwgMC4wMDE2MjUsIDAuMDAxNjI1LCAwLjAwMTYyNiIsIFwKLSAgICAgICAgICAiMC4wMDE2MDgsIDAuMDAxNjEzLCAwLjAwMTYyLCAwLjAwMTYyMiwgMC4wMDE2MjIsIDAuMDAxNjIyLCAwLjAwMTYyMiIsIFwKLSAgICAgICAgICAiMC4wMDE2MDUsIDAuMDAxNjEsIDAuMDAxNjE4LCAwLjAwMTYxOSwgMC4wMDE2MTksIDAuMDAxNjIxLCAwLjAwMTYyIiwgXAotICAgICAgICAgICIwLjAwMTYwMiwgMC4wMDE2MDgsIDAuMDAxNjE1LCAwLjAwMTYxNywgMC4wMDE2MTcsIDAuMDAxNjE4LCAwLjAwMTYxOCIsIFwKLSAgICAgICAgICAiMC4wMDE2MDIsIDAuMDAxNjA4LCAwLjAwMTYxNSwgMC4wMDE2MTcsIDAuMDAxNjE4LCAwLjAwMTYxOCwgMC4wMDE2MTgiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFFOKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMTI3NTI5OwotICAgIGZ1bmN0aW9uIDogIk41IjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJEIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMzg5NDYsIDAuMzg0NzExLCAwLjYzMDY2NiwgMC44NDY3MSwgMS4xMzQ5MywgMS43MTA4OCwgMi4wNzA3OSIsIFwKLSAgICAgICAgICAiMC4zNTA0MzMsIDAuMzk2MTcsIDAuNjQyMTI5LCAwLjg1ODE4LCAxLjE0NjIxLCAxLjcyMjMyLCAyLjA4MjM2IiwgXAotICAgICAgICAgICIwLjM2MzQ3NiwgMC40MDkyMTEsIDAuNjU1MTcyLCAwLjg3MTIxNCwgMS4xNTkyOSwgMS43MzUzOCwgMi4wOTUzNCIsIFwKLSAgICAgICAgICAiMC4zNzU3MTgsIDAuNDIxNDM4LCAwLjY2NzQyMSwgMC44ODM0NzcsIDEuMTcxNjEsIDEuNzQ3NjQsIDIuMTA3NjMiLCBcCi0gICAgICAgICAgIjAuMzg3OTg3LCAwLjQzMzcyLCAwLjY3OTY3NywgMC44OTU3MjgsIDEuMTg0MDQsIDEuNzU5OSwgMi4xMTk3OCIsIFwKLSAgICAgICAgICAiMC40MDY5MjksIDAuNDUyNjgyLCAwLjY5ODY0MywgMC45MTQ2ODgsIDEuMjAyOSwgMS43Nzg4NiwgMi4xMzg3NyIsIFwKLSAgICAgICAgICAiMC40MjMzMzcsIDAuNDY5MDcxLCAwLjcxNTAzMSwgMC45MzEwNzYsIDEuMjE5MTUsIDEuNzk1MjQsIDIuMTU1MjEiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTg1MTQ0LCAwLjI2NjMzMywgMC43NTA2MjksIDEuMTg4MDUsIDEuNzcyMDIsIDIuOTUxODYsIDMuNjgzOCIsIFwKLSAgICAgICAgICAiMC4xODUxNDEsIDAuMjY2NDY2LCAwLjc1MTkyMSwgMS4xODc5NywgMS43NzY1MSwgMi45NDY3NCwgMy42ODYzMiIsIFwKLSAgICAgICAgICAiMC4xODUwNzMsIDAuMjY2NDMsIDAuNzUwNjQ1LCAxLjE4ODA3LCAxLjc3NjcyLCAyLjk1MTgyLCAzLjY4NjA2IiwgXAotICAgICAgICAgICIwLjE4NTA4MiwgMC4yNjY0MTYsIDAuNzUxOTMxLCAxLjE4ODA2LCAxLjc3Njk4LCAyLjk1MTg0LCAzLjY4NjIyIiwgXAotICAgICAgICAgICIwLjE4NTA2LCAwLjI2NjQzMiwgMC43NTE5MTQsIDEuMTg3OTksIDEuNzcyMzgsIDIuOTUxODUsIDMuNjg1NjkiLCBcCi0gICAgICAgICAgIjAuMTg1MTE4LCAwLjI2NjI5OCwgMC43NTA2MiwgMS4xODgwOCwgMS43NzIxMSwgMi45NTE4OCwgMy42Nzk1NiIsIFwKLSAgICAgICAgICAiMC4xODUwNjQsIDAuMjY2NDI4LCAwLjc1MDQ5MSwgMS4xODgwNywgMS43NzY3MSwgMi45NTE4MSwgMy42ODYwNyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yODAwOTksIDAuMzI5NzMsIDAuNjA5NzAxLCAwLjg1NjcxMSwgMS4xODU4LCAxLjg0NDA3LCAyLjI1NTYxIiwgXAotICAgICAgICAgICIwLjI5MTYsIDAuMzQxMjM4LCAwLjYyMTIxLCAwLjg2ODI4MywgMS4xOTcyOSwgMS44NTU2MywgMi4yNjcwOSIsIFwKLSAgICAgICAgICAiMC4zMDUyOTUsIDAuMzU0OTIxLCAwLjYzNDkxOCwgMC44ODE5MjcsIDEuMjExMSwgMS44NjkzLCAyLjI4MDgyIiwgXAotICAgICAgICAgICIwLjMxODg2OSwgMC4zNjg0OTcsIDAuNjQ4NDc0LCAwLjg5NTQ5MywgMS4yMjQ1NiwgMS44ODI4MiwgMi4yOTQzNyIsIFwKLSAgICAgICAgICAiMC4zMzI2MzMsIDAuMzgyMjg0LCAwLjY2MjI3MiwgMC45MDkxOTIsIDEuMjM4MzQsIDEuODk2NjksIDIuMzA4MTMiLCBcCi0gICAgICAgICAgIjAuMzU0MjgzLCAwLjQwMzg4OCwgMC42ODM4OTMsIDAuOTMwOTA3LCAxLjI1OTgsIDEuOTE4MjYsIDIuMzI5ODEiLCBcCi0gICAgICAgICAgIjAuMzczMDExLCAwLjQyMjY1OSwgMC43MDI2NDgsIDAuOTQ5NTYxLCAxLjI3ODcsIDEuOTM3MDcsIDIuMzQ4NSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xODI1OTEsIDAuMjc3MzkyLCAwLjgzMDM2NSwgMS4zMTg5OSwgMS45NzQwMiwgMy4yODExOCwgNC4wOTg1OSIsIFwKLSAgICAgICAgICAiMC4xODI2OCwgMC4yNzgyMDgsIDAuODMwMzg0LCAxLjMxODQ3LCAxLjk3Mzk5LCAzLjI4MTM0LCA0LjA5ODUyIiwgXAotICAgICAgICAgICIwLjE4MjI4NCwgMC4yNzc0MzEsIDAuODMwMzQ4LCAxLjMxODk4LCAxLjk3NDI5LCAzLjI4MTIsIDQuMDk1MTYiLCBcCi0gICAgICAgICAgIjAuMTgyMzAzLCAwLjI3ODE4MiwgMC44MzAzODEsIDEuMzE5MDEsIDEuOTcyNjksIDMuMjgxMTYsIDQuMDk4NTIiLCBcCi0gICAgICAgICAgIjAuMTgyNDI5LCAwLjI3ODE0MiwgMC44MzAzODYsIDEuMzE5NDUsIDEuOTczOSwgMy4yODEyNSwgNC4wOTgzNiIsIFwKLSAgICAgICAgICAiMC4xODI3MTUsIDAuMjc3MzY0LCAwLjgzMDM2NCwgMS4zMTkwOCwgMS45NzMwNywgMy4yODExOSwgNC4wOTg0NiIsIFwKLSAgICAgICAgICAiMC4xODIzMDIsIDAuMjc4MTYsIDAuODMwNDAxLCAxLjMyMDQ5LCAxLjk3Mzg3LCAzLjI4MTI2LCA0LjA5ODMzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkciOwotICAgICAgdGltaW5nX3NlbnNlIDogbm9uX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiByaXNpbmdfZWRnZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuNDM4Mjg3LCAwLjQ4NDA5NiwgMC43MzAwNjMsIDAuOTQ2MTE0LCAxLjIzNDE5LCAxLjgxMDI5LCAyLjE3MDI2IiwgXAotICAgICAgICAgICIwLjQ0ODYxLCAwLjQ5NDQwNCwgMC43NDAzNzYsIDAuOTU2NDIsIDEuMjQ0NTEsIDEuODIwNiwgMi4xODA1NiIsIFwKLSAgICAgICAgICAiMC40NjE2MjIsIDAuNTA3NDA5LCAwLjc1MzM3NSwgMC45Njk0MjUsIDEuMjU3NTEsIDEuODMzNjEsIDIuMTkzNTciLCBcCi0gICAgICAgICAgIjAuNDc1NTUsIDAuNTIxMzU0LCAwLjc2NzMyNywgMC45ODM0MzcsIDEuMjcxNDcsIDEuODQ3NjEsIDIuMjA3NDciLCBcCi0gICAgICAgICAgIjAuNDg5NDE1LCAwLjUzNTIyOSwgMC43ODEyMDIsIDAuOTk3MjQ1LCAxLjI4NTMzLCAxLjg2MTQzLCAyLjIyMTM4IiwgXAotICAgICAgICAgICIwLjUxMTI1NCwgMC41NTcwNiwgMC44MDMwMzIsIDEuMDE5MTEsIDEuMzA3MTcsIDEuODgzMzIsIDIuMjQzMTgiLCBcCi0gICAgICAgICAgIjAuNTMwNzk0LCAwLjU3NjYwNywgMC44MjI1ODEsIDEuMDM4NjIsIDEuMzI2NzEsIDEuOTAyODEsIDIuMjYyNzYiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTg2MDQ5LCAwLjI2NzEzOSwgMC43NTExMDYsIDEuMTg4MDcsIDEuNzc2OCwgMi45NTE5OSwgMy42ODYyOSIsIFwKLSAgICAgICAgICAiMC4xODU4OTQsIDAuMjY3MTAxLCAwLjc1MTA1NSwgMS4xODc5OSwgMS43NzY3NiwgMi45NTE5MSwgMy42ODYxNSIsIFwKLSAgICAgICAgICAiMC4xODYwMTYsIDAuMjY3MTAzLCAwLjc1MjA0OCwgMS4xODc5OCwgMS43NzY3NSwgMi45NTE5MiwgMy42ODYxNyIsIFwKLSAgICAgICAgICAiMC4xODYwMjEsIDAuMjY2OTYyLCAwLjc1MjA1OCwgMS4xOTAyNCwgMS43NzY3NywgMi45NTIxMywgMy42ODU5NCIsIFwKLSAgICAgICAgICAiMC4xODYwMzksIDAuMjY3MTMyLCAwLjc1MTA1MywgMS4xODc5NiwgMS43NzY3NSwgMi45NTE4NywgMy42ODYwOSIsIFwKLSAgICAgICAgICAiMC4xODYwMDEsIDAuMjY3MDA1LCAwLjc1MjA1NiwgMS4xOTAxMywgMS43NzY3OCwgMi45NTIxNywgMy42ODU5NSIsIFwKLSAgICAgICAgICAiMC4xODYwNDEsIDAuMjY3MTMzLCAwLjc1MTA5NSwgMS4xODc5NiwgMS43NzY3NSwgMi45NTE4NiwgMy42ODYwOCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC40MDQyMDIsIDAuNDUzODMyLCAwLjczMzgxNiwgMC45ODA3NjQsIDEuMzA5ODksIDEuOTY4MjMsIDIuMzc5NzYiLCBcCi0gICAgICAgICAgIjAuNDE0Mzk5LCAwLjQ2NDAzNywgMC43NDQwMDQsIDAuOTkxMDI0LCAxLjMyMDI3LCAxLjk3ODM5LCAyLjM4OTg1IiwgXAotICAgICAgICAgICIwLjQyNzQzNCwgMC40NzcwNzEsIDAuNzU3MDM4LCAxLjAwNDA2LCAxLjMzMzE2LCAxLjk5MTQxLCAyLjQwMjk2IiwgXAotICAgICAgICAgICIwLjQ0MTQxOSwgMC40OTEwNTYsIDAuNzcxMDI0LCAxLjAxODA1LCAxLjM0NzE0LCAyLjAwNTQsIDIuNDE2OTUiLCBcCi0gICAgICAgICAgIjAuNDU1NTAxLCAwLjUwNTEzOSwgMC43ODUxMDgsIDEuMDMyMTMsIDEuMzYxMTgsIDIuMDE5NDcsIDIuNDMxMDIiLCBcCi0gICAgICAgICAgIjAuNDc3NTY5LCAwLjUyNzIwNiwgMC44MDcxNzUsIDEuMDU0MiwgMS4zODMyNCwgMi4wNDE1NCwgMi40NTMwOSIsIFwKLSAgICAgICAgICAiMC40OTcxNywgMC41NDY3OTQsIDAuODI2Nzc4LCAxLjA3MzgyLCAxLjQwMjg5LCAyLjA2MTEyLCAyLjQ3MjY3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE4MjgzNiwgMC4yNzgyMjQsIDAuODMwNDA0LCAxLjMxODg0LCAxLjk3Mzk5LCAzLjI4MTM1LCA0LjA5ODYzIiwgXAotICAgICAgICAgICIwLjE4Mjg1MiwgMC4yNzgyNTQsIDAuODMwMzY2LCAxLjMxOTAxLCAxLjk3MTU0LCAzLjI4MTIzLCA0LjA5NDE2IiwgXAotICAgICAgICAgICIwLjE4MjgzOCwgMC4yNzgyNDgsIDAuODMwMzY5LCAxLjMxOTAxLCAxLjk3NDEsIDMuMjgxMjEsIDQuMDk4NTkiLCBcCi0gICAgICAgICAgIjAuMTgyODM4LCAwLjI3ODI0OCwgMC44MzAzNywgMS4zMTkwMSwgMS45NzQwNSwgMy4yODEyMSwgNC4wOTg1OSIsIFwKLSAgICAgICAgICAiMC4xODI4NTYsIDAuMjc4MjUzLCAwLjgzMDM3OSwgMS4zMTksIDEuOTczOSwgMy4yODExOCwgNC4wOTg1NyIsIFwKLSAgICAgICAgICAiMC4xODI4NTUsIDAuMjc4MjUyLCAwLjgzMDM4LCAxLjMxOSwgMS45NzM5LCAzLjI4MTE4LCA0LjA5ODU3IiwgXAotICAgICAgICAgICIwLjE4MjgzMiwgMC4yNzgxOTIsIDAuODMwNDAzLCAxLjMxODk2LCAxLjk3MTcyLCAzLjI4MTE1LCA0LjA5ODUzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiByaXNpbmdfZWRnZTsKLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuNDEwNzk5LCAwLjQ2MDQxOSwgMC43NDA0MSwgMC45ODc0ODcsIDEuMzE2NDgsIDEuOTc0ODQsIDIuMzg2MjYiLCBcCi0gICAgICAgICAgIjAuNDIyMDI1LCAwLjQ3MTY2LCAwLjc1MTY0NCwgMC45OTgzMzUsIDEuMzI3NzEsIDEuOTg2MDYsIDIuMzk3NTEiLCBcCi0gICAgICAgICAgIjAuNDM2MjA1LCAwLjQ4NTgyMiwgMC43NjU4MjgsIDEuMDEyNzIsIDEuMzQxODgsIDIuMDAwMjQsIDIuNDExNjciLCBcCi0gICAgICAgICAgIjAuNDQ5NjQyLCAwLjQ5OTI3MiwgMC43NzkyNTksIDEuMDI2MTksIDEuMzU1MzMsIDIuMDEzNjcsIDIuNDI1MTMiLCBcCi0gICAgICAgICAgIjAuNDYzMzM4LCAwLjUxMjk3NCwgMC43OTI5NDIsIDEuMDM5OTcsIDEuMzY5MDUsIDIuMDI3MzEsIDIuNDM4ODYiLCBcCi0gICAgICAgICAgIjAuNDg1NTM5LCAwLjUzNTE1NywgMC44MTUxNjYsIDEuMDYyMTQsIDEuMzkxMjEsIDIuMDQ5NTcsIDIuNDYxIiwgXAotICAgICAgICAgICIwLjUwNDEzNiwgMC41NTM3NjYsIDAuODMzNzUyLCAxLjA4MDY4LCAxLjQwOTgyLCAyLjA2ODE3LCAyLjQ3OTYyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE4MjgzOCwgMC4yNzgwNjQsIDAuODI5MjM5LCAxLjMxOTA4LCAxLjk3Mzk2LCAzLjI3ODgzLCA0LjA5ODQzIiwgXAotICAgICAgICAgICIwLjE4Mjg1NSwgMC4yNzgyNDMsIDAuODMwNDQsIDEuMzE5MTIsIDEuOTczOTcsIDMuMjgxMzYsIDQuMDk4NSIsIFwKLSAgICAgICAgICAiMC4xODI4MzksIDAuMjc4MDM4LCAwLjgyOTE1NCwgMS4zMjA0NSwgMS45NzM4NywgMy4yODEyMSwgNC4wOTgyOCIsIFwKLSAgICAgICAgICAiMC4xODI4NTcsIDAuMjc4MjM5LCAwLjgzMDQxNSwgMS4zMTkzNywgMS45NzM5OCwgMy4yODEzNSwgNC4wOTg1MSIsIFwKLSAgICAgICAgICAiMC4xODI4NjMsIDAuMjc4MjU3LCAwLjgzMDM3MiwgMS4zMTksIDEuOTc0MDUsIDMuMjgxMiwgNC4wOTg1OCIsIFwKLSAgICAgICAgICAiMC4xODI4MzksIDAuMjc4MDY0LCAwLjgyOTE5OSwgMS4zMTg5OCwgMS45NzM5NCwgMy4yODEzOCwgNC4wOTg0NSIsIFwKLSAgICAgICAgICAiMC4xODI4NTcsIDAuMjc4MjU3LCAwLjgzMDQ0MiwgMS4zMTkzNywgMS45NzM5OCwgMy4yODEzNSwgNC4wOTg1MSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogZmFsbGluZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC40MTk4MTEsIDAuNDY1NTU3LCAwLjcxMTU1NSwgMC45Mjc2MDUsIDEuMjE1NjgsIDEuNzkxNjUsIDIuMTUxNjUiLCBcCi0gICAgICAgICAgIjAuNDMxMTQyLCAwLjQ3Njg3NiwgMC43MjI5MTYsIDAuOTM4OTU0LCAxLjIyNzA0LCAxLjgwMjk5LCAyLjE2MzAxIiwgXAotICAgICAgICAgICIwLjQ0NTc0NiwgMC40OTE0NywgMC43Mzc0OTIsIDAuOTUzNTQ3LCAxLjI0MTYyLCAxLjgxNzU4LCAyLjE3NzYyIiwgXAotICAgICAgICAgICIwLjQ2MDQ1NywgMC41MDYxOSwgMC43NTIyMjMsIDAuOTY4MjY4LCAxLjI1NjM2LCAxLjgzMjMsIDIuMTkyMzIiLCBcCi0gICAgICAgICAgIjAuNDc1MDYsIDAuNTIwODEyLCAwLjc2NjgsIDAuOTgyODY3LCAxLjI3MDk4LCAxLjg0NzAxLCAyLjIwNjg3IiwgXAotICAgICAgICAgICIwLjQ5NzcxOCwgMC41NDM0NTUsIDAuNzg5NDU2LCAxLjAwNTUyLCAxLjI5MzY4LCAxLjg2OTczLCAyLjIyOTY0IiwgXAotICAgICAgICAgICIwLjUxNjAzOSwgMC41NjE4MiwgMC44MDc3OCwgMS4wMjM5MiwgMS4zMTE5MywgMS44ODc4OCwgMi4yNDc5Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE4NTE1OCwgMC4yNjY1MDcsIDAuNzUyMTY1LCAxLjE4ODE1LCAxLjc3Njc0LCAyLjk0NjUzLCAzLjY4NTcyIiwgXAotICAgICAgICAgICIwLjE4NTE2LCAwLjI2NjQ4OSwgMC43NTIyMzYsIDEuMTg4MDYsIDEuNzcyODMsIDIuOTQ2NSwgMy42ODU4NCIsIFwKLSAgICAgICAgICAiMC4xODUxNTMsIDAuMjY2NDg5LCAwLjc1MjAwNCwgMS4xODgwNSwgMS43NzY2MywgMi45NTE1NCwgMy42ODU5MyIsIFwKLSAgICAgICAgICAiMC4xODUxNjEsIDAuMjY2NDksIDAuNzUyMTcxLCAxLjE4OTg4LCAxLjc3NjgsIDIuOTUwOTYsIDMuNjg1NzYiLCBcCi0gICAgICAgICAgIjAuMTg1MjI2LCAwLjI2NjUxOSwgMC43NTIwMDgsIDEuMTg4MDMsIDEuNzc2ODYsIDIuOTUxODgsIDMuNjg1NDMiLCBcCi0gICAgICAgICAgIjAuMTg1MTM3LCAwLjI2NjQ5NiwgMC43NTIwMDMsIDEuMTg4MDYsIDEuNzczNjgsIDIuOTUxNzUsIDMuNjg2NDciLCBcCi0gICAgICAgICAgIjAuMTg1MTczLCAwLjI2NjUyMiwgMC43NTIxMiwgMS4xOTAzMiwgMS43NzY3NSwgMi45NDY2NywgMy42ODU2NCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogY2xlYXI7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI1MDk0MywgMC4yOTY2MywgMC41NDI1ODEsIDAuNzU4NjIyLCAxLjA0NjcsIDEuNjIyOTYsIDEuOTgzNjIiLCBcCi0gICAgICAgICAgIjAuMjYyNTkzLCAwLjMwODMsIDAuNTU0MjMxLCAwLjc3MDI3NCwgMS4wNTgzNCwgMS42MzQ2NiwgMS45OTUyOSIsIFwKLSAgICAgICAgICAiMC4yNzYxNCwgMC4zMjE4NDgsIDAuNTY3NzgyLCAwLjc4MzgyNCwgMS4wNzE4OSwgMS42NDgyMiwgMi4wMDg4MSIsIFwKLSAgICAgICAgICAiMC4yODk3MDMsIDAuMzM1Mzg5LCAwLjU4MTM0OCwgMC43OTczODIsIDEuMDg1NDcsIDEuNjYxNjgsIDIuMDIyMjYiLCBcCi0gICAgICAgICAgIjAuMzAzMjMyLCAwLjM0ODk3MywgMC41OTQ4OTgsIDAuODEwOTQ0LCAxLjA5OTI2LCAxLjY3NTMyLCAyLjAzNTk4IiwgXAotICAgICAgICAgICIwLjMyNDc2NiwgMC4zNzA0NTcsIDAuNjE2NDMyLCAwLjgzMjQ3NywgMS4xMjA1NSwgMS42OTY4OCwgMi4wNTc0NSIsIFwKLSAgICAgICAgICAiMC4zNDM5NDQsIDAuMzg5NjU4LCAwLjYzNTYzNCwgMC44NTE2NzcsIDEuMTM5ODMsIDEuNzE2MDgsIDIuMDc2MSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xODUwMjgsIDAuMjY2MzgyLCAwLjc1MTk2MiwgMS4xODgwOSwgMS43NzY3OCwgMi45NTE3LCAzLjY3NzczIiwgXAotICAgICAgICAgICIwLjE4NDkwNCwgMC4yNjYzMjEsIDAuNzUxOTAyLCAxLjE4ODEsIDEuNzc2NzMsIDIuOTQ5ODMsIDMuNjc3NjciLCBcCi0gICAgICAgICAgIjAuMTg0OTM0LCAwLjI2NjM1NSwgMC43NTE5NjQsIDEuMTg4MDYsIDEuNzc2NzMsIDIuOTUwMzIsIDMuNjc3NjEiLCBcCi0gICAgICAgICAgIjAuMTg0OTQzLCAwLjI2NjMyMywgMC43NTE5MjMsIDEuMTg5NzYsIDEuNzc2OCwgMi45NTEzNywgMy42Nzc2MSIsIFwKLSAgICAgICAgICAiMC4xODUwMDEsIDAuMjY2MzgxLCAwLjc1MTkxMSwgMS4xODk2NywgMS43NzY3NCwgMi45NTEzOCwgMy42Nzc2NCIsIFwKLSAgICAgICAgICAiMC4xODQ5MjcsIDAuMjY2MzA0LCAwLjc1MTkzMSwgMS4xODgwMywgMS43NzkyLCAyLjk0Njc0LCAzLjY3NzYiLCBcCi0gICAgICAgICAgIjAuMTg0OTQ3LCAwLjI2NjM0NiwgMC43NTE5NTUsIDEuMTg4MDgsIDEuNzc5NTMsIDIuOTQ5OTYsIDMuNjc3NiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNzE4NTUsIDAuMjIxODUzLCAwLjUwMjEzMywgMC43NDg5MTcsIDEuMDc4MDgsIDEuNzM2MzEsIDIuMTQ3NzYiLCBcCi0gICAgICAgICAgIjAuMTgzNTMzLCAwLjIzMzUyNSwgMC41MTM4MDksIDAuNzYwNjQ0LCAxLjA4OTczLCAxLjc0OCwgMi4xNTk0NCIsIFwKLSAgICAgICAgICAiMC4xOTgxNjIsIDAuMjQ4MTYsIDAuNTI4NDU1LCAwLjc3NTI2LCAxLjEwNDQyLCAxLjc2MjYzLCAyLjE3NDA0IiwgXAotICAgICAgICAgICIwLjIxMjg1NSwgMC4yNjI4NjEsIDAuNTQzMTcyLCAwLjc5MDAxLCAxLjExOTEyLCAxLjc3NzM2LCAyLjE4ODgxIiwgXAotICAgICAgICAgICIwLjIyNzc4NSwgMC4yNzc3OTgsIDAuNTU4MTIyLCAwLjgwNDk2MywgMS4xMzQwOCwgMS43OTIzMSwgMi4yMDM3NyIsIFwKLSAgICAgICAgICAiMC4yNTEzODQsIDAuMzAxNDAzLCAwLjU4MTc0MiwgMC44Mjg1ODcsIDEuMTU3NywgMS44MTU5NSwgMi4yMjc0IiwgXAotICAgICAgICAgICIwLjI3MTQ1NCwgMC4zMjE0ODMsIDAuNjAxODMsIDAuODQ4Njc4LCAxLjE3Nzg0LCAxLjgzNjA2LCAyLjI0NzUzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE4MzYwNSwgMC4yNzg2MjYsIDAuODMwNjI2LCAxLjMxOTgsIDEuOTczNCwgMy4yODA0LCA0LjA5NjEyIiwgXAotICAgICAgICAgICIwLjE4MzUxNiwgMC4yNzg1ODksIDAuODMwNTksIDEuMzIwNDEsIDEuOTcyNTQsIDMuMjgxNTEsIDQuMDk4NDUiLCBcCi0gICAgICAgICAgIjAuMTgzNDc0LCAwLjI3ODYxOCwgMC44MzA1NzMsIDEuMzE5NiwgMS45NzI2MywgMy4yODE1NSwgNC4wOTczNiIsIFwKLSAgICAgICAgICAiMC4xODM1MDQsIDAuMjc4NjE4LCAwLjgzMDU4NywgMS4zMjAzOCwgMS45NzMzOCwgMy4yNzg5MSwgNC4wOTcyOCIsIFwKLSAgICAgICAgICAiMC4xODM1MTMsIDAuMjc4NjE4LCAwLjgzMDU3NiwgMS4zMjAzNywgMS45NzI1MiwgMy4yODA0NiwgNC4wOTkxNyIsIFwKLSAgICAgICAgICAiMC4xODM2NzYsIDAuMjc4NjQxLCAwLjgzMDU0LCAxLjMxOTgsIDEuOTc0MzcsIDMuMjc5LCA0LjA5NTI0IiwgXAotICAgICAgICAgICIwLjE4MzgzMiwgMC4yNzg3MzcsIDAuODI5ODkzLCAxLjMxOTc3LCAxLjk3MzM2LCAzLjI4MTQzLCA0LjA5NzM2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyNTgsIDAuMDAyNTg2LCAwLjAwMjU5NCwgMC4wMDI1OTUsIDAuMDAyNTk2LCAwLjAwMjU5NywgMC4wMDI1OTciLCBcCi0gICAgICAgICAgIjAuMDAyNTc3LCAwLjAwMjU4MywgMC4wMDI1OTEsIDAuMDAyNTkzLCAwLjAwMjU5NCwgMC4wMDI1OTQsIDAuMDAyNTk0IiwgXAotICAgICAgICAgICIwLjAwMjU3NiwgMC4wMDI1ODEsIDAuMDAyNTksIDAuMDAyNTkxLCAwLjAwMjU5MiwgMC4wMDI1OTMsIDAuMDAyNTkzIiwgXAotICAgICAgICAgICIwLjAwMjU3NCwgMC4wMDI1OCwgMC4wMDI1ODgsIDAuMDAyNTg5LCAwLjAwMjU5LCAwLjAwMjU5MSwgMC4wMDI1OTEiLCBcCi0gICAgICAgICAgIjAuMDAyNTczLCAwLjAwMjU3OSwgMC4wMDI1ODcsIDAuMDAyNTg4LCAwLjAwMjU4OSwgMC4wMDI1OSwgMC4wMDI1OSIsIFwKLSAgICAgICAgICAiMC4wMDI1NzEsIDAuMDAyNTc2LCAwLjAwMjU4NCwgMC4wMDI1ODYsIDAuMDAyNTg3LCAwLjAwMjU4OCwgMC4wMDI1ODgiLCBcCi0gICAgICAgICAgIjAuMDAyNTcsIDAuMDAyNTc2LCAwLjAwMjU4NCwgMC4wMDI1ODUsIDAuMDAyNTg2LCAwLjAwMjU4NywgMC4wMDI1ODciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDIzNjQsIDAuMDAyMzY5LCAwLjAwMjM3NSwgMC4wMDIzNzcsIDAuMDAyMzc4LCAwLjAwMjM3OSwgMC4wMDIzNzgiLCBcCi0gICAgICAgICAgIjAuMDAyMzU5LCAwLjAwMjM2NCwgMC4wMDIzNywgMC4wMDIzNzIsIDAuMDAyMzcyLCAwLjAwMjM3MywgMC4wMDIzNzMiLCBcCi0gICAgICAgICAgIjAuMDAyMzU1LCAwLjAwMjM2LCAwLjAwMjM2NywgMC4wMDIzNjgsIDAuMDAyMzY5LCAwLjAwMjM3LCAwLjAwMjM2OSIsIFwKLSAgICAgICAgICAiMC4wMDIzNTMsIDAuMDAyMzU4LCAwLjAwMjM2NCwgMC4wMDIzNjYsIDAuMDAyMzY2LCAwLjAwMjM2NywgMC4wMDIzNjciLCBcCi0gICAgICAgICAgIjAuMDAyMzUxLCAwLjAwMjM1NiwgMC4wMDIzNjMsIDAuMDAyMzY0LCAwLjAwMjM2NCwgMC4wMDIzNjUsIDAuMDAyMzY2IiwgXAotICAgICAgICAgICIwLjAwMjM0OCwgMC4wMDIzNTMsIDAuMDAyMzYsIDAuMDAyMzYxLCAwLjAwMjM2MiwgMC4wMDIzNjIsIDAuMDAyMzYzIiwgXAotICAgICAgICAgICIwLjAwMjM0NiwgMC4wMDIzNTEsIDAuMDAyMzU4LCAwLjAwMjM1OSwgMC4wMDIzNTksIDAuMDAyMzYxLCAwLjAwMjM2MSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkciOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzI5LCAwLjAwMzI5NiwgMC4wMDMzMDQsIDAuMDAzMzA2LCAwLjAwMzMwNiwgMC4wMDMzMDcsIDAuMDAzMzA4IiwgXAotICAgICAgICAgICIwLjAwMzI4NCwgMC4wMDMyOSwgMC4wMDMyOTgsIDAuMDAzMjk5LCAwLjAwMzMsIDAuMDAzMzAxLCAwLjAwMzMwMSIsIFwKLSAgICAgICAgICAiMC4wMDMyNzgsIDAuMDAzMjg0LCAwLjAwMzI5MiwgMC4wMDMyOTMsIDAuMDAzMjk0LCAwLjAwMzI5NSwgMC4wMDMyOTYiLCBcCi0gICAgICAgICAgIjAuMDAzMjc1LCAwLjAwMzI4LCAwLjAwMzI4OSwgMC4wMDMyOSwgMC4wMDMyOTEsIDAuMDAzMjkyLCAwLjAwMzI5MiIsIFwKLSAgICAgICAgICAiMC4wMDMyNzIsIDAuMDAzMjc4LCAwLjAwMzI4NiwgMC4wMDMyODgsIDAuMDAzMjg5LCAwLjAwMzI4OSwgMC4wMDMyODkiLCBcCi0gICAgICAgICAgIjAuMDAzMjcsIDAuMDAzMjc2LCAwLjAwMzI4NCwgMC4wMDMyODUsIDAuMDAzMjg2LCAwLjAwMzI4NywgMC4wMDMyODciLCBcCi0gICAgICAgICAgIjAuMDAzMjY3LCAwLjAwMzI3MywgMC4wMDMyODEsIDAuMDAzMjgyLCAwLjAwMzI4MywgMC4wMDMyODQsIDAuMDAzMjg0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzMTMzLCAwLjAwMzEzOCwgMC4wMDMxNDQsIDAuMDAzMTQ1LCAwLjAwMzE0NiwgMC4wMDMxNDcsIDAuMDAzMTQ3IiwgXAotICAgICAgICAgICIwLjAwMzEyNiwgMC4wMDMxMzEsIDAuMDAzMTM3LCAwLjAwMzEzOSwgMC4wMDMxNCwgMC4wMDMxNCwgMC4wMDMxNDEiLCBcCi0gICAgICAgICAgIjAuMDAzMTIxLCAwLjAwMzEyNiwgMC4wMDMxMzIsIDAuMDAzMTM0LCAwLjAwMzEzNCwgMC4wMDMxMzUsIDAuMDAzMTM1IiwgXAotICAgICAgICAgICIwLjAwMzExOCwgMC4wMDMxMjMsIDAuMDAzMTMsIDAuMDAzMTMxLCAwLjAwMzEzMiwgMC4wMDMxMzIsIDAuMDAzMTMyIiwgXAotICAgICAgICAgICIwLjAwMzExNiwgMC4wMDMxMjEsIDAuMDAzMTI3LCAwLjAwMzEyOSwgMC4wMDMxMjksIDAuMDAzMTMsIDAuMDAzMTMxIiwgXAotICAgICAgICAgICIwLjAwMzExNCwgMC4wMDMxMTksIDAuMDAzMTI2LCAwLjAwMzEyNywgMC4wMDMxMjcsIDAuMDAzMTI5LCAwLjAwMzEyOSIsIFwKLSAgICAgICAgICAiMC4wMDMxMTQsIDAuMDAzMTE5LCAwLjAwMzEyNiwgMC4wMDMxMjcsIDAuMDAzMTI3LCAwLjAwMzEyOCwgMC4wMDMxMjkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzODk4LCAwLjAwMzkwNCwgMC4wMDM5MTIsIDAuMDAzOTEzLCAwLjAwMzkxNCwgMC4wMDM5MTUsIDAuMDAzOTE1IiwgXAotICAgICAgICAgICIwLjAwMzg5MSwgMC4wMDM4OTcsIDAuMDAzOTA1LCAwLjAwMzkwNiwgMC4wMDM5MDcsIDAuMDAzOTA4LCAwLjAwMzkwOCIsIFwKLSAgICAgICAgICAiMC4wMDM4ODcsIDAuMDAzODkyLCAwLjAwMzksIDAuMDAzOTAyLCAwLjAwMzkwMiwgMC4wMDM5MDMsIDAuMDAzOTAzIiwgXAotICAgICAgICAgICIwLjAwMzg4NCwgMC4wMDM4ODksIDAuMDAzODk3LCAwLjAwMzg5OSwgMC4wMDM4OTksIDAuMDAzOSwgMC4wMDM5IiwgXAotICAgICAgICAgICIwLjAwMzg4MSwgMC4wMDM4ODcsIDAuMDAzODk1LCAwLjAwMzg5NiwgMC4wMDM4OTcsIDAuMDAzODk4LCAwLjAwMzg5OCIsIFwKLSAgICAgICAgICAiMC4wMDM4NzksIDAuMDAzODg1LCAwLjAwMzg5MiwgMC4wMDM4OTQsIDAuMDAzODk1LCAwLjAwMzg5NiwgMC4wMDM4OTUiLCBcCi0gICAgICAgICAgIjAuMDAzODc3LCAwLjAwMzg4MiwgMC4wMDM4OSwgMC4wMDM4OTEsIDAuMDAzODkyLCAwLjAwMzg5MywgMC4wMDM4OTMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDMwNTIsIDAuMDAzMDU3LCAwLjAwMzA2NCwgMC4wMDMwNjUsIDAuMDAzMDY2LCAwLjAwMzA2NywgMC4wMDMwNjYiLCBcCi0gICAgICAgICAgIjAuMDAzMDQ2LCAwLjAwMzA1LCAwLjAwMzA1NywgMC4wMDMwNTgsIDAuMDAzMDU5LCAwLjAwMzA2LCAwLjAwMzA2MSIsIFwKLSAgICAgICAgICAiMC4wMDMwNDIsIDAuMDAzMDQ3LCAwLjAwMzA1MywgMC4wMDMwNTUsIDAuMDAzMDU2LCAwLjAwMzA1NiwgMC4wMDMwNTYiLCBcCi0gICAgICAgICAgIjAuMDAzMDM4LCAwLjAwMzA0MywgMC4wMDMwNSwgMC4wMDMwNTEsIDAuMDAzMDUyLCAwLjAwMzA1MywgMC4wMDMwNTIiLCBcCi0gICAgICAgICAgIjAuMDAzMDM2LCAwLjAwMzA0MSwgMC4wMDMwNDgsIDAuMDAzMDQ5LCAwLjAwMzA0OSwgMC4wMDMwNSwgMC4wMDMwNTEiLCBcCi0gICAgICAgICAgIjAuMDAzMDM2LCAwLjAwMzA0MSwgMC4wMDMwNDcsIDAuMDAzMDQ4LCAwLjAwMzA0OSwgMC4wMDMwNSwgMC4wMDMwNSIsIFwKLSAgICAgICAgICAiMC4wMDMwMzMsIDAuMDAzMDM4LCAwLjAwMzA0NSwgMC4wMDMwNDYsIDAuMDAzMDQ3LCAwLjAwMzA0OCwgMC4wMDMwNDciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxNjE5LCAwLjAwMTYyNCwgMC4wMDE2MywgMC4wMDE2MzIsIDAuMDAxNjMyLCAwLjAwMTYzMywgMC4wMDE2MzMiLCBcCi0gICAgICAgICAgIjAuMDAxNjE1LCAwLjAwMTYyLCAwLjAwMTYyNywgMC4wMDE2MjgsIDAuMDAxNjI4LCAwLjAwMTYyOSwgMC4wMDE2MjkiLCBcCi0gICAgICAgICAgIjAuMDAxNjExLCAwLjAwMTYxNiwgMC4wMDE2MjMsIDAuMDAxNjI0LCAwLjAwMTYyNSwgMC4wMDE2MjUsIDAuMDAxNjI2IiwgXAotICAgICAgICAgICIwLjAwMTYwOCwgMC4wMDE2MTMsIDAuMDAxNjIsIDAuMDAxNjIyLCAwLjAwMTYyMiwgMC4wMDE2MjIsIDAuMDAxNjIyIiwgXAotICAgICAgICAgICIwLjAwMTYwNSwgMC4wMDE2MSwgMC4wMDE2MTgsIDAuMDAxNjE5LCAwLjAwMTYxOSwgMC4wMDE2MjEsIDAuMDAxNjIiLCBcCi0gICAgICAgICAgIjAuMDAxNjAyLCAwLjAwMTYwOCwgMC4wMDE2MTUsIDAuMDAxNjE3LCAwLjAwMTYxNywgMC4wMDE2MTgsIDAuMDAxNjE4IiwgXAotICAgICAgICAgICIwLjAwMTYwMiwgMC4wMDE2MDgsIDAuMDAxNjE1LCAwLjAwMTYxNywgMC4wMDE2MTgsIDAuMDAxNjE4LCAwLjAwMTYxOCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjY3NywgMC4wMDI2OCwgMC4wMDI2ODQsIDAuMDAyNjg1LCAwLjAwMjY4NSwgMC4wMDI2ODYsIDAuMDAyNjg1IiwgXAotICAgICAgICAgICIwLjAwMjY3MywgMC4wMDI2NzYsIDAuMDAyNjgsIDAuMDAyNjgxLCAwLjAwMjY4MiwgMC4wMDI2ODIsIDAuMDAyNjgyIiwgXAotICAgICAgICAgICIwLjAwMjY2NywgMC4wMDI2NzEsIDAuMDAyNjc2LCAwLjAwMjY3NywgMC4wMDI2NzcsIDAuMDAyNjc4LCAwLjAwMjY3OCIsIFwKLSAgICAgICAgICAiMC4wMDI2NjIsIDAuMDAyNjY2LCAwLjAwMjY3MSwgMC4wMDI2NzIsIDAuMDAyNjcyLCAwLjAwMjY3MywgMC4wMDI2NzMiLCBcCi0gICAgICAgICAgIjAuMDAyNjU2LCAwLjAwMjY2LCAwLjAwMjY2NiwgMC4wMDI2NjcsIDAuMDAyNjY4LCAwLjAwMjY2OCwgMC4wMDI2NjkiLCBcCi0gICAgICAgICAgIjAuMDAyNjQ4LCAwLjAwMjY1MywgMC4wMDI2NiwgMC4wMDI2NjEsIDAuMDAyNjYyLCAwLjAwMjY2MywgMC4wMDI2NjMiLCBcCi0gICAgICAgICAgIjAuMDAyNjQyLCAwLjAwMjY0OCwgMC4wMDI2NTUsIDAuMDAyNjU3LCAwLjAwMjY1OCwgMC4wMDI2NTksIDAuMDAyNjU5Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihSTikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwOTM2NDI0OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDkzMDMxMjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA5MzY0MjQ7Ci0gICAgY2xvY2sgOiB0cnVlOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDMzMSwgMC4wMDAzMywgMC4wMDAzMywgMC4wMDAzMywgMC4wMDAzMywgMC4wMDAzMywgMC4wMDAzMyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDMzMywgMC4wMDAzMzIsIDAuMDAwMzMyLCAwLjAwMDMzMiwgMC4wMDAzMzIsIDAuMDAwMzMyLCAwLjAwMDMzMiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJHIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9mYWxsaW5nOwotICAgICAgd2hlbiA6ICJEJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMV9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjE5Mzc1LCAtMC4xODI1LCAtMC4xNywgLTAuMTYzNzUsIC0wLjE3LCAtMC4xODUsIC0wLjIwMTI1IiwgXAotICAgICAgICAgICItMC4yMDUsIC0wLjE5Mzc1LCAtMC4xODEyNSwgLTAuMTc1LCAtMC4xODEyNSwgLTAuMTk2MjUsIC0wLjIxMjUiLCBcCi0gICAgICAgICAgIi0wLjIxNzUsIC0wLjIwNjI1LCAtMC4xOTM3NSwgLTAuMTg3NSwgLTAuMTkzNzUsIC0wLjIwODc1LCAtMC4yMjUiLCBcCi0gICAgICAgICAgIi0wLjIzLCAtMC4yMTg3NSwgLTAuMjA2MjUsIC0wLjIsIC0wLjIwNjI1LCAtMC4yMjEyNSwgLTAuMjM3NSIsIFwKLSAgICAgICAgICAiLTAuMjQyNSwgLTAuMjMxMjUsIC0wLjIxODc1LCAtMC4yMTg3NSwgLTAuMjE4NzUsIC0wLjIzMzc1LCAtMC4yNSIsIFwKLSAgICAgICAgICAiLTAuMjY1LCAtMC4yNTM3NSwgLTAuMjQxMjUsIC0wLjIzNSwgLTAuMjQxMjUsIC0wLjI1NjI1LCAtMC4yNzI1IiwgXAotICAgICAgICAgICItMC4yODYyNSwgLTAuMjc1LCAtMC4yNjI1LCAtMC4yNTYyNSwgLTAuMjYyNSwgLTAuMjc3NSwgLTAuMjkzNzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUk4iOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFEJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgZmFsbF9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMzY2OTgxLCAwLjM3ODU5NywgMC4zOTI5NTMsIDAuNDA2MTU4LCAwLjQxODkzNCwgMC40MzkwMDIsIDAuNDU1OTgxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkciOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9mYWxsaW5nOwotICAgICAgd2hlbiA6ICJEJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMV9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIyNSwgMC4yMTM3NSwgMC4yMDEyNSwgMC4xODg3NSwgMC4xODg3NSwgMC4yMDM3NSwgMC4yMjYyNSIsIFwKLSAgICAgICAgICAiMC4yMzYyNSwgMC4yMjUsIDAuMjEyNSwgMC4yLCAwLjIsIDAuMjE1LCAwLjIzNzUiLCBcCi0gICAgICAgICAgIjAuMjU1LCAwLjIzNzUsIDAuMjI1LCAwLjIxMjUsIDAuMjEyNSwgMC4yMjc1LCAwLjI1NjI1IiwgXAotICAgICAgICAgICIwLjI2NzUsIDAuMjU2MjUsIDAuMjM3NSwgMC4yMjUsIDAuMjI1LCAwLjI0LCAwLjI2ODc1IiwgXAotICAgICAgICAgICIwLjI4LCAwLjI2ODc1LCAwLjI1LCAwLjIzNzUsIDAuMjM3NSwgMC4yNTg3NSwgMC4yODEyNSIsIFwKLSAgICAgICAgICAiMC4zMDI1LCAwLjI4NSwgMC4yNzI1LCAwLjI2LCAwLjI2LCAwLjI3NSwgMC4yOTc1IiwgXAotICAgICAgICAgICIwLjMxNzUsIDAuMzA2MjUsIDAuMjkzNzUsIDAuMjgxMjUsIDAuMjgxMjUsIDAuMjk2MjUsIDAuMzE4NzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFNOKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2MDU2OTE7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjA1NjkxOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDYwNDM4OTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxNjUsIDAuMDAwMTY1LCAwLjAwMDE2NSwgMC4wMDAxNjUsIDAuMDAwMTY1LCAwLjAwMDE2NSwgMC4wMDAxNjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxNjksIDAuMDAwMTY2LCAwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiwgMC4wMDAxNjYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiU04iOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFEIjsKLSAgICAgIHNkZl9jb25kIDogIkQgPT0gMSdiMCI7Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4xOTY3OTgsIDAuMjA4MzAzLCAwLjIyMjc3NSwgMC4yMzcxMjUsIDAuMjUxNzUxLCAwLjI3NDkxNywgMC4yOTQ0NjMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJlY292ZXJ5X2ZhbGxpbmc7Ci0gICAgICB3aGVuIDogIiFEJlJOIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9STl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHJlY292ZXJ5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyNSwgMC4wMTM3NSwgMC4wMDEyNSwgLTAuMDExMjUsIC0wLjAyMzc1LCAtMC4wNCwgLTAuMDU1IiwgXAotICAgICAgICAgICIwLjAzNjI1LCAwLjAyNSwgMC4wMTI1LCAwLCAtMC4wMTI1LCAtMC4wMzUsIC0wLjA1IiwgXAotICAgICAgICAgICIwLjA0ODc1LCAwLjAzNzUsIDAuMDI1LCAwLjAxMjUsIDAsIC0wLjAyMjUsIC0wLjAzNzUiLCBcCi0gICAgICAgICAgIjAuMDYxMjUsIDAuMDUsIDAuMDM3NSwgMC4wMjUsIDAuMDEyNSwgLTAuMDEsIC0wLjAyNSIsIFwKLSAgICAgICAgICAiMC4wNzM3NSwgMC4wNjI1LCAwLjA1LCAwLjAzNzUsIDAuMDI1LCAwLjAwMjUsIC0wLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMDk2MjUsIDAuMDg1LCAwLjA2NjI1LCAwLjA1Mzc1LCAwLjA0MTI1LCAwLjAyNSwgMC4wMSIsIFwKLSAgICAgICAgICAiMC4xMTEyNSwgMC4xLCAwLjA4NzUsIDAuMDc1LCAwLjA2MjUsIDAuMDQsIDAuMDI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIHRpbWluZ190eXBlIDogcmVjb3ZlcnlfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRyI7Ci0gICAgICBzZGZfY29uZCA6ICJHID09IDEnYjAiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHJlY292ZXJ5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyNSwgMC4wMTM3NSwgMC4wMDEyNSwgLTAuMDExMjUsIC0wLjAxNzUsIC0wLjAzMzc1LCAtMC4wNDI1IiwgXAotICAgICAgICAgICIwLjAzNjI1LCAwLjAyNSwgMC4wMTI1LCAwLCAtMC4wMDYyNSwgLTAuMDIyNSwgLTAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMDQ4NzUsIDAuMDM3NSwgMC4wMjUsIDAuMDEyNSwgMC4wMDYyNSwgLTAuMDEsIC0wLjAxODc1IiwgXAotICAgICAgICAgICIwLjA2MTI1LCAwLjA1LCAwLjAzNzUsIDAuMDI1LCAwLjAxODc1LCAwLjAwMjUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICIwLjA3Mzc1LCAwLjA2MjUsIDAuMDUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMTUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMDksIDAuMDc4NzUsIDAuMDY2MjUsIDAuMDYsIDAuMDQ3NSwgMC4wMzc1LCAwLjAyMjUiLCBcCi0gICAgICAgICAgIjAuMTA1LCAwLjA5Mzc1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNjI1LCAwLjA1MjUsIDAuMDM3NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJHIjsKLSAgICAgIHRpbWluZ190eXBlIDogcmVtb3ZhbF9mYWxsaW5nOwotICAgICAgd2hlbiA6ICIhRCZSTiI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fUk5fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChyZW1vdmFsX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzNzUsIDAuMDQ4NzUsIDAuMDYxMjUsIDAuMDczNzUsIDAuMDg2MjUsIDAuMTA4NzUsIDAuMTMiLCBcCi0gICAgICAgICAgIjAuMDIsIDAuMDM3NSwgMC4wNSwgMC4wNjI1LCAwLjA3NSwgMC4wOTc1LCAwLjExMjUiLCBcCi0gICAgICAgICAgIjAuMDA3NSwgMC4wMTg3NSwgMC4wMzc1LCAwLjA1LCAwLjA2MjUsIDAuMDg1LCAwLjEiLCBcCi0gICAgICAgICAgIi0wLjAwNSwgMC4wMDYyNSwgMC4wMjUsIDAuMDM3NSwgMC4wNSwgMC4wNzI1LCAwLjA4NzUiLCBcCi0gICAgICAgICAgIi0wLjAxNzUsIC0wLjAwNjI1LCAwLjAxMjUsIDAuMDI1LCAwLjAzNzUsIDAuMDYsIDAuMDc1IiwgXAotICAgICAgICAgICItMC4wMzM3NSwgLTAuMDIyNSwgLTAuMDEsIDAuMDA4NzUsIDAuMDIxMjUsIDAuMDQzNzUsIDAuMDU4NzUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAwNjI1LCAwLjAwNjI1LCAwLjAyODc1LCAwLjA0Mzc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIHRpbWluZ190eXBlIDogcmVtb3ZhbF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFHIjsKLSAgICAgIHNkZl9jb25kIDogIkcgPT0gMSdiMCI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQocmVtb3ZhbF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTg3NSwgMC4wMywgMC4wNDI1LCAwLjA1NSwgMC4wNjc1LCAwLjA4Mzc1LCAwLjA5ODc1IiwgXAotICAgICAgICAgICIwLjAwNzUsIDAuMDE4NzUsIDAuMDMxMjUsIDAuMDQzNzUsIDAuMDU2MjUsIDAuMDc4NzUsIDAuMDg3NSIsIFwKLSAgICAgICAgICAiLTAuMDA1LCAwLjAwNjI1LCAwLjAxODc1LCAwLjAzMTI1LCAwLjA0Mzc1LCAwLjA2NjI1LCAwLjA3NSIsIFwKLSAgICAgICAgICAiLTAuMDE3NSwgLTAuMDA2MjUsIDAuMDA2MjUsIDAuMDE4NzUsIDAuMDMxMjUsIDAuMDUzNzUsIDAuMDY4NzUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMTg3NSwgMCwgMC4wMTI1LCAwLjAxODc1LCAwLjA0MTI1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICItMC4wNDYyNSwgLTAuMDM1LCAtMC4wMjI1LCAtMC4wMSwgMC4wMDI1LCAwLjAyNSwgMC4wMzM3NSIsIFwKLSAgICAgICAgICAiLTAuMDYxMjUsIC0wLjA1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMTI1LCAwLjAxLCAwLjAyNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBUTEFUU1JYTCAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoVExBVFNSWEwpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4xODEwMzsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBsYXRjaCAoUUlOVCxONSkgewotICAgIGRhdGFfaW4gOiAiRCI7Ci0gICAgZW5hYmxlIDogIihHIFJOKSI7Ci0gICAgcHJlc2V0IDogIighU04pIjsKLSAgfQotICBwaW4oRCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNTYzNTUyOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDU2MTY3NDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA1NjM1NTI7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMTU5LCAwLjAwMDE2MSwgMC4wMDAxNjIsIDAuMDAwMTYyLCAwLjAwMDE2MiwgMC4wMDAxNjIsIDAuMDAwMTYyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMTY5LCAwLjAwMDE2NywgMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkciOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX2ZhbGxpbmc7Ci0gICAgICB3aGVuIDogIlJOJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIlJOX0VRXzFfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wNDM3NSwgLTAuMDMyNSwgLTAuMDEzNzUsIC0wLjAwMTI1LCAwLjAxNzUsIDAuMDQsIDAuMDU1IiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA0Mzc1LCAtMC4wMjUsIC0wLjAxMjUsIDAuMDA2MjUsIDAuMDIyNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDY3NSwgLTAuMDU2MjUsIC0wLjAzNzUsIC0wLjAyNSwgLTAuMDEyNSwgMC4wMSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDgsIC0wLjA2ODc1LCAtMC4wNTYyNSwgLTAuMDM3NSwgLTAuMDI1LCAtMC4wMDI1LCAwLjAxODc1IiwgXAotICAgICAgICAgICItMC4wOTI1LCAtMC4wODEyNSwgLTAuMDY4NzUsIC0wLjA1LCAtMC4wMzc1LCAtMC4wMTUsIDAiLCBcCi0gICAgICAgICAgIi0wLjExNSwgLTAuMTAzNzUsIC0wLjA5MTI1LCAtMC4wNzI1LCAtMC4wNiwgLTAuMDM3NSwgLTAuMDE2MjUiLCBcCi0gICAgICAgICAgIi0wLjEzNjI1LCAtMC4xMjUsIC0wLjEwNjI1LCAtMC4wOTM3NSwgLTAuMDgxMjUsIC0wLjA1ODc1LCAtMC4wMzc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDc1LCAtMC4wNjM3NSwgLTAuMDUxMjUsIC0wLjAzODc1LCAtMC4wMzI1LCAtMC4wMjI1LCAtMC4wMTM3NSIsIFwKLSAgICAgICAgICAiLTAuMDg2MjUsIC0wLjA3NSwgLTAuMDYyNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wMzM3NSwgLTAuMDI1IiwgXAotICAgICAgICAgICItMC4wOTg3NSwgLTAuMDg3NSwgLTAuMDc1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDQ2MjUsIC0wLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjExMTI1LCAtMC4xLCAtMC4wODc1LCAtMC4wNzUsIC0wLjA2ODc1LCAtMC4wNTg3NSwgLTAuMDUiLCBcCi0gICAgICAgICAgIi0wLjEyMzc1LCAtMC4xMTI1LCAtMC4xLCAtMC4wODc1LCAtMC4wODEyNSwgLTAuMDcxMjUsIC0wLjA2MjUiLCBcCi0gICAgICAgICAgIi0wLjE0LCAtMC4xMjg3NSwgLTAuMTE2MjUsIC0wLjExLCAtMC4wOTc1LCAtMC4wODc1LCAtMC4wNzg3NSIsIFwKLSAgICAgICAgICAiLTAuMTU1LCAtMC4xNDM3NSwgLTAuMTM3NSwgLTAuMTI1LCAtMC4xMTg3NSwgLTAuMTAyNSwgLTAuMDkzNzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX2ZhbGxpbmc7Ci0gICAgICB3aGVuIDogIlJOJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIlJOX0VRXzFfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjg3NSwgMC4wNTc1LCAwLjA0NSwgMC4wMjYyNSwgMC4wMTM3NSwgLTAuMDA4NzUsIC0wLjAzIiwgXAotICAgICAgICAgICIwLjA4LCAwLjA2ODc1LCAwLjA1NjI1LCAwLjAzNzUsIDAuMDI1LCAtMC4wMDM3NSwgLTAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMDkyNSwgMC4wODEyNSwgMC4wNjg3NSwgMC4wNSwgMC4wMzc1LCAwLjAxNSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMTExMjUsIDAuMDkzNzUsIDAuMDgxMjUsIDAuMDYyNSwgMC4wNSwgMC4wMjc1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICIwLjEyMzc1LCAwLjEwNjI1LCAwLjA5Mzc1LCAwLjA3NSwgMC4wNjI1LCAwLjA0LCAwLjAxODc1IiwgXAotICAgICAgICAgICIwLjE0LCAwLjEyODc1LCAwLjExNjI1LCAwLjA5NzUsIDAuMDg1LCAwLjA2MjUsIDAuMDQxMjUiLCBcCi0gICAgICAgICAgIjAuMTYxMjUsIDAuMTUsIDAuMTMxMjUsIDAuMTE4NzUsIDAuMSwgMC4wNzc1LCAwLjA2MjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDYyNSwgMC4xMDEyNSwgMC4wODI1LCAwLjA3NjI1LCAwLjA2Mzc1LCAwLjA1Mzc1LCAwLjA0NSIsIFwKLSAgICAgICAgICAiMC4xMTc1LCAwLjExMjUsIDAuMDkzNzUsIDAuMDg3NSwgMC4wNzUsIDAuMDY1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICIwLjEzLCAwLjExODc1LCAwLjEwNjI1LCAwLjEsIDAuMDg3NSwgMC4wNzc1LCAwLjA2ODc1IiwgXAotICAgICAgICAgICIwLjE0MjUsIDAuMTMxMjUsIDAuMTE4NzUsIDAuMTA2MjUsIDAuMSwgMC4wOSwgMC4wODEyNSIsIFwKLSAgICAgICAgICAiMC4xNTUsIDAuMTQzNzUsIDAuMTMxMjUsIDAuMTE4NzUsIDAuMTEyNSwgMC4xMDI1LCAwLjA5Mzc1IiwgXAotICAgICAgICAgICIwLjE3NzUsIDAuMTY2MjUsIDAuMTQ3NSwgMC4xNDEyNSwgMC4xMjg3NSwgMC4xMTg3NSwgMC4xMSIsIFwKLSAgICAgICAgICAiMC4xOTI1LCAwLjE4MTI1LCAwLjE2ODc1LCAwLjE1NjI1LCAwLjE0Mzc1LCAwLjEzMzc1LCAwLjEyNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRykgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjI5NjY7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjI5NjY7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNTQxMTQ4OwotICAgIGNsb2NrIDogdHJ1ZTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDE1NjgsIDAuMDAxNTU1LCAwLjAwMTU0NSwgMC4wMDE1MzgsIDAuMDAxNTM2LCAwLjAwMTUzMiwgMC4wMDE1MjkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxODgsIDAuMDAwMTg4LCAwLjAwMDE4OCwgMC4wMDAxODgsIDAuMDAwMTg4LCAwLjAwMDE4OCwgMC4wMDAxODgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQmU04iOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC41MDQxNTIsIDAuNTE0NDc4LCAwLjUyNzUwMywgMC41NDEwMSwgMC41NTU0MTQsIDAuNTc3MjM4LCAwLjU5NjgxMyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjA3NDE1NDM7Ci0gICAgZnVuY3Rpb24gOiAiUUlOVCI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzMyOTE2LCAwLjM1ODE4NCwgMC41ODU1NzcsIDAuOTY1ODc3LCAxLjM0NTE1LCAyLjIzMTQ1LCAyLjc0MSIsIFwKLSAgICAgICAgICAiMC4zNDQ0MjgsIDAuMzY5ODY1LCAwLjU5NzIzMSwgMC45Nzc0MzUsIDEuMzU2NjMsIDIuMjM5NjMsIDIuNzUyODciLCBcCi0gICAgICAgICAgIjAuMzU4MTczLCAwLjM4MzYwMiwgMC42MTA5MDYsIDAuOTkxMjQ2LCAxLjM3MDY2LCAyLjI1OTEsIDIuNzY1OTciLCBcCi0gICAgICAgICAgIjAuMzcxNzQ4LCAwLjM5Njk4NSwgMC42MjUzNzksIDEuMDA0NywgMS4zODQ3MiwgMi4yNzE0NiwgMi43NzY5NyIsIFwKLSAgICAgICAgICAiMC4zODU1NDMsIDAuNDEwODA2LCAwLjYzOTE2MSwgMS4wMTg0MSwgMS4zOTc3NywgMi4yODUzMSwgMi43OTE4NCIsIFwKLSAgICAgICAgICAiMC40MDcwNjcsIDAuNDMyNDIzLCAwLjY1OTY3NCwgMS4wMzk5NSwgMS40MTkyLCAyLjMwNjAyLCAyLjgxMzYyIiwgXAotICAgICAgICAgICIwLjQyNTcwOSwgMC40NTExMjEsIDAuNjc4MzYyLCAxLjA1ODczLCAxLjQzODA3LCAyLjMyNzQ0LCAyLjgzMzg2Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI3MDI0OCwgMC4zMjE3NTYsIDAuNzgyNTIxLCAxLjU2NTY1LCAyLjM1MDI2LCA0LjE2OTExLCA1LjE3OTQzIiwgXAotICAgICAgICAgICIwLjI2ODYyMywgMC4zMjI2MDcsIDAuNzgwOTUzLCAxLjU2NTc4LCAyLjM1MDMxLCA0LjExODQzLCA1LjE2OTY0IiwgXAotICAgICAgICAgICIwLjI3MDQzNiwgMC4zMjEwNzIsIDAuNzg0NDEsIDEuNTY1ODcsIDIuMzQyODgsIDQuMTU1NjEsIDUuMTc5MzkiLCBcCi0gICAgICAgICAgIjAuMjcwMzI0LCAwLjMyMTkyNCwgMC43ODg2MzUsIDEuNTY1ODUsIDIuMzQ5OSwgNC4xNjcwMiwgNS4xNzkwMyIsIFwKLSAgICAgICAgICAiMC4yNzAzMDYsIDAuMzIxMjM0LCAwLjc4ODY0NCwgMS41NjU4NiwgMi4zNDI3NSwgNC4xNjY5NiwgNS4xODk3NiIsIFwKLSAgICAgICAgICAiMC4yNzAyODEsIDAuMzIxMTY1LCAwLjc4Mjc1MiwgMS41NjU4NywgMi4zNDI4MywgNC4xMzY4NiwgNS4xODkwOSIsIFwKLSAgICAgICAgICAiMC4yNzA0MiwgMC4zMjI2MDUsIDAuNzgyNTM5LCAxLjU2NTg3LCAyLjM0MjkxLCA0LjE1NjIyLCA1LjE3OTQ0Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjQwMzE0LCAwLjQzMjc2LCAwLjcwMTU4MiwgMS4xNDYzMiwgMS41OTExOSwgMi42NDA0MSwgMy4yMzU5OCIsIFwKLSAgICAgICAgICAiMC40MTQzNjEsIDAuNDQzODk3LCAwLjcxMTUzMSwgMS4xNjA3NywgMS42MDc5NCwgMi42NTE3OCwgMy4yNDcxMyIsIFwKLSAgICAgICAgICAiMC40Mjc1NjgsIDAuNDU3MTg4LCAwLjcyNTg3OCwgMS4xNzQwNiwgMS42MTU1OCwgMi42NTg5NiwgMy4yNjAzNiIsIFwKLSAgICAgICAgICAiMC40Mzk2MTcsIDAuNDY5Mzg0LCAwLjczODExLCAxLjE4NjI2LCAxLjYzMzU4LCAyLjY3NjU4LCAzLjI3MjU2IiwgXAotICAgICAgICAgICIwLjQ1MTkwMiwgMC40ODE1NzMsIDAuNzQ4NjgsIDEuMTk0ODQsIDEuNjQ1NTgsIDIuNjg5NDMsIDMuMjg0ODEiLCBcCi0gICAgICAgICAgIjAuNDcwNDYsIDAuNTAwMzQyLCAwLjc2OTE3OSwgMS4yMTcyLCAxLjY1ODgsIDIuNzA4MTMsIDMuMzAzNTYiLCBcCi0gICAgICAgICAgIjAuNDg2ODg4LCAwLjUxNjY0NCwgMC43ODU0NSwgMS4yMjkzMywgMS42NzUwNCwgMi43MjM4MiwgMy4zMTk4NSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMDk2MTYsIDAuMzY4NjUxLCAwLjg5NjIxMSwgMS43NzY5NywgMi42NjU4NiwgNC43Mjk0OCwgNS45MTIyNSIsIFwKLSAgICAgICAgICAiMC4zMDg4NDcsIDAuMzY4NjU3LCAwLjg5NTQ3OSwgMS43ODQ3OSwgMi42Njk4NCwgNC43MjkxOCwgNS45MTQ0OCIsIFwKLSAgICAgICAgICAiMC4zMDk5MDQsIDAuMzY4NjM4LCAwLjg5NTUyMSwgMS43ODQ3MSwgMi42NjcxMywgNC43Mzg0MiwgNS45MTQyMyIsIFwKLSAgICAgICAgICAiMC4zMDk2NjQsIDAuMzY4NjQsIDAuODk1MzAxLCAxLjc4NDcsIDIuNjY5NTQsIDQuNzI2MTgsIDUuOTE0MjQiLCBcCi0gICAgICAgICAgIjAuMzA5OTMsIDAuMzY4NjQzLCAwLjg5ODk4OCwgMS43ODMyMywgMi42Njk4OSwgNC43MjksIDUuOTE0NDYiLCBcCi0gICAgICAgICAgIjAuMzA5NjIzLCAwLjM2ODY1NywgMC44OTU5ODQsIDEuNzg0NTYsIDIuNjYwMDcsIDQuNzI5MDQsIDUuOTE0NDUiLCBcCi0gICAgICAgICAgIjAuMzA4NjA3LCAwLjM2ODYxOCwgMC44OTUyNDIsIDEuNzc2NzUsIDIuNjY3LCA0LjcyNTM1LCA1LjkxNDM1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkciOwotICAgICAgdGltaW5nX3NlbnNlIDogbm9uX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiByaXNpbmdfZWRnZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuNDU5NTc0LCAwLjQ4NDkyLCAwLjcxMjM5LCAxLjA5MjU4LCAxLjQ3MTc1LCAyLjM1NjkyLCAyLjg2NjA1IiwgXAotICAgICAgICAgICIwLjQ2OTcxLCAwLjQ5NTEsIDAuNzIzMTY3LCAxLjEwMjk5LCAxLjQ4MjYyLCAyLjM2OTg4LCAyLjg3MjUzIiwgXAotICAgICAgICAgICIwLjQ4MjY3MiwgMC41MDc5MjMsIDAuNzM1MzgxLCAxLjExNTc4LCAxLjQ5NTE2LCAyLjM4MDM4LCAyLjg5MDkzIiwgXAotICAgICAgICAgICIwLjQ5NjY3NCwgMC41MjE5MjMsIDAuNzUwMDk2LCAxLjEyOTkxLCAxLjUwOTIyLCAyLjM5Mzg3LCAyLjkwNDg2IiwgXAotICAgICAgICAgICIwLjUxMDg0OSwgMC41MzYxOTUsIDAuNzYzNjQ1LCAxLjE0Mzg1LCAxLjUyMzAyLCAyLjQwNzQ3LCAyLjkxNzM4IiwgXAotICAgICAgICAgICIwLjUzMjc4MiwgMC41NTgxMjksIDAuNzg1NjI1LCAxLjE2NTc4LCAxLjU0NSwgMi40MzEyNCwgMi45MzkxNSIsIFwKLSAgICAgICAgICAiMC41NTIyOCwgMC41Nzc1MjksIDAuODA0OTgxLCAxLjE4NTQyLCAxLjU2NDgyLCAyLjQ0OTMsIDIuOTYwNDciKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjcwMzU2LCAwLjMyMjI3MiwgMC43ODI2NTUsIDEuNTY1OSwgMi4zNTAyOSwgNC4xMzEyOCwgNS4xOTE1MyIsIFwKLSAgICAgICAgICAiMC4yNzAzOSwgMC4zMjI1MDQsIDAuNzg4ODEzLCAxLjU2NTg3LCAyLjM0MzAzLCA0LjE2NjM0LCA1LjE1NDEiLCBcCi0gICAgICAgICAgIjAuMjcwNDEyLCAwLjMyMTI1NywgMC43ODA5MjIsIDEuNTY1OTIsIDIuMzQyOTgsIDQuMTU2OTYsIDUuMTQxNzMiLCBcCi0gICAgICAgICAgIjAuMjcwNDE0LCAwLjMyMTI5NiwgMC43ODg4MzUsIDEuNTY1ODYsIDIuMzQyOTksIDQuMTY5MDcsIDUuMTc5NDYiLCBcCi0gICAgICAgICAgIjAuMjcwMzk4LCAwLjMyMjI4MSwgMC43ODIxMDEsIDEuNTY1ODgsIDIuMzUwMiwgNC4xMTE2LCA1LjE4OTM2IiwgXAotICAgICAgICAgICIwLjI3MDIzMSwgMC4zMjIyNCwgMC43ODMyNTksIDEuNTY1OTEsIDIuMzQyODgsIDQuMTU2MjEsIDUuMTkxNTgiLCBcCi0gICAgICAgICAgIjAuMjcwNDE1LCAwLjMyMTI5NCwgMC43ODEwOTIsIDEuNTY1OTIsIDIuMzQyOTcsIDQuMTY5MSwgNS4xNzk0NiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC41MDQxNTIsIDAuNTM0MDA3LCAwLjgwMjg3NCwgMS4yNDc0MiwgMS42OTI0NCwgMi43NDE5MywgMy4zMzcyMSIsIFwKLSAgICAgICAgICAiMC41MTQ0NzgsIDAuNTQ0MjcsIDAuODEzMDk2LCAxLjI1Nzc0LCAxLjcwMjY1LCAyLjc0MTcyLCAzLjM0NzQ1IiwgXAotICAgICAgICAgICIwLjUyNzUwMywgMC41NTcyNjgsIDAuODI2MSwgMS4yNzA1NiwgMS43MTU2MiwgMi43NjQwMSwgMy4zNjA0NSIsIFwKLSAgICAgICAgICAiMC41NDEwMSwgMC41NzA3NjksIDAuODM5NTkxLCAxLjI4MzQyLCAxLjcyOTA5LCAyLjc3OCwgMy4zNzM5NCIsIFwKLSAgICAgICAgICAiMC41NTU0MTQsIDAuNTg1MDgzLCAwLjg1Mzk2NiwgMS4yOTg4NiwgMS43NDM0OCwgMi43OTI4MywgMy4zODgyOCIsIFwKLSAgICAgICAgICAiMC41NzcyMzgsIDAuNjA2OTA3LCAwLjg3NTc5MiwgMS4zMjEwMiwgMS43NjUzMSwgMi44MTQ2NiwgMy40MTAxMSIsIFwKLSAgICAgICAgICAiMC41OTY4MTMsIDAuNjI2NDgyLCAwLjg5NTM2MywgMS4zNDAxNCwgMS43ODQ4OCwgMi44MzQyMiwgMy40Mjk2OCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMDgxMDcsIDAuMzY4NTU4LCAwLjg5NzY1NywgMS43NzkyNSwgMi42NjQzLCA0LjczMTA5LCA1LjkwOTcyIiwgXAotICAgICAgICAgICIwLjMwOTYxNCwgMC4zNjg2MjUsIDAuODk2MDEsIDEuNzc2MDYsIDIuNjY2NDEsIDQuNzM0OTcsIDUuOTE0MzciLCBcCi0gICAgICAgICAgIjAuMzA5NzMzLCAwLjM2ODYxNCwgMC44OTU5NTYsIDEuNzgyNzIsIDIuNjY2OTYsIDQuNzIzNzksIDUuOTE0MzgiLCBcCi0gICAgICAgICAgIjAuMzA5NzM2LCAwLjM2ODYxMywgMC44OTU3ODksIDEuNzgyNzksIDIuNjY2NzcsIDQuNzI1NywgNS45MTQzNiIsIFwKLSAgICAgICAgICAiMC4zMTAxODIsIDAuMzY4NTksIDAuODk2NDcsIDEuNzg2MjksIDIuNjY1NTUsIDQuNzI5MDYsIDUuOTE0NDEiLCBcCi0gICAgICAgICAgIjAuMzEwMTgyLCAwLjM2ODU4OSwgMC44OTY1MTEsIDEuNzg2MTYsIDIuNjY1MDYsIDQuNzI5MDYsIDUuOTE0NDEiLCBcCi0gICAgICAgICAgIjAuMzEwMTgzLCAwLjM2ODU5LCAwLjg5NjQ1OSwgMS43ODYyLCAyLjY2NTgxLCA0LjcyOTAzLCA1LjkxNDQxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiByaXNpbmdfZWRnZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuNDY2MTM2LCAwLjQ5MTM4NSwgMC43MTk1NCwgMS4wOTkzOCwgMS40NzkwMSwgMi4zNjYyMywgMi44NjgyMiIsIFwKLSAgICAgICAgICAiMC40Nzc5OTEsIDAuNTAzMywgMC43MzE3NCwgMS4xMTA5OCwgMS40OTAzNCwgMi4zNzgwNSwgMi44ODQwMSIsIFwKLSAgICAgICAgICAiMC40OTE4LCAwLjUxNzExMywgMC43NDQ2MjUsIDEuMTI0NzksIDEuNTA0MTIsIDIuMzkxODgsIDIuODk3OTEiLCBcCi0gICAgICAgICAgIjAuNTA1MjcsIDAuNTMwNTE4LCAwLjc1Nzk2NywgMS4xMzg0LCAxLjUxNzc4LCAyLjQwMDI2LCAyLjkxMzQ5IiwgXAotICAgICAgICAgICIwLjUxOTA0MywgMC41NDQ0NCwgMC43NzI1MDUsIDEuMTUyMzEsIDEuNTMxOTYsIDIuNDE5MTgsIDIuOTIxMzEiLCBcCi0gICAgICAgICAgIjAuNTQwOTU5LCAwLjU2NjI3MywgMC43OTQzOTEsIDEuMTczOTUsIDEuNTUzMjcsIDIuNDQxMDUsIDIuOTQ3MDkiLCBcCi0gICAgICAgICAgIjAuNTU5NzQxLCAwLjU4NDk4OSwgMC44MTMxNjMsIDEuMTkyOTksIDEuNTcyNTgsIDIuNDU5ODYsIDIuOTYxOSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yNzA0MzQsIDAuMzIxNDMxLCAwLjc4ODg1LCAxLjU2NTg1LCAyLjMzNzYxLCA0LjE2NjM1LCA1LjE0MTk4IiwgXAotICAgICAgICAgICIwLjI2OTQ2OCwgMC4zMjE1NjYsIDAuNzg0NDIxLCAxLjU2NTkxLCAyLjM0MjgxLCA0LjE2NTkxLCA1LjEyODY5IiwgXAotICAgICAgICAgICIwLjI2OTY3OCwgMC4zMjE0MzQsIDAuNzgyNDkxLCAxLjU2NTkxLCAyLjM0Mjg0LCA0LjE2NTkxLCA1LjE0MDA5IiwgXAotICAgICAgICAgICIwLjI3MDQwOSwgMC4zMjEyNjYsIDAuNzgxMTU2LCAxLjU2NTkxLCAyLjM0Mjk5LCA0LjEyMTEyLCA1LjEzMjg2IiwgXAotICAgICAgICAgICIwLjI3MDM3NSwgMC4zMjI1NzcsIDAuNzg4ODEsIDEuNTY1ODgsIDIuMzM2NzYsIDQuMTY2NDIsIDUuMTQ0OSIsIFwKLSAgICAgICAgICAiMC4yNzAzMjcsIDAuMzIxMzk0LCAwLjc4ODg0NSwgMS41NjU5MSwgMi4zNDI4NSwgNC4xNjU4OCwgNS4xNDM0OSIsIFwKLSAgICAgICAgICAiMC4yNzA0MSwgMC4zMjEyODgsIDAuNzg4ODM1LCAxLjU2NTg3LCAyLjMzOTAyLCA0LjE2NjM5LCA1LjE0MzE5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiBmYWxsaW5nX2VkZ2U7Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjQ4NDY5NSwgMC41MTQzMywgMC43ODMxNTQsIDEuMjMwMjgsIDEuNjcyNjMsIDIuNzEyNzEsIDMuMzA4MzciLCBcCi0gICAgICAgICAgIjAuNDk1ODExLCAwLjUyNTYxNiwgMC43OTQwNDUsIDEuMjQxNTgsIDEuNjgzOTUsIDIuNzI1MDMsIDMuMzI3OTQiLCBcCi0gICAgICAgICAgIjAuNTEwNjUxLCAwLjU0MDM3MSwgMC44MDg4NjMsIDEuMjU2NDMsIDEuNjk4OCwgMi43Mzk4OCwgMy4zNDI3OCIsIFwKLSAgICAgICAgICAiMC41MjUzNzIsIDAuNTU1MDUxLCAwLjgyMjYzMywgMS4yNzEwMywgMS43MTMxLCAyLjc1Mjk3LCAzLjM0ODY4IiwgXAotICAgICAgICAgICIwLjUzOTgyNSwgMC41Njk1NywgMC44MzY5NTUsIDEuMjg1NjIsIDEuNzI3OTEsIDIuNzY5MDQsIDMuMzcyMDIiLCBcCi0gICAgICAgICAgIjAuNTYyODIsIDAuNTkyNTMsIDAuODYxMjQ1LCAxLjMwODQxLCAxLjc1MDgsIDIuNzg5NjIsIDMuMzg2NTIiLCBcCi0gICAgICAgICAgIjAuNTgxNTk4LCAwLjYxMTE5MSwgMC44Nzk4NjQsIDEuMzI3MjgsIDEuNzczOTcsIDIuODE3MjEsIDMuNDA0OTYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzA5ODMsIDAuMzY4NjcyLCAwLjg5NjA3NCwgMS43ODEwNCwgMi42NjA5NywgNC43MjkxMSwgNS45MTE0NCIsIFwKLSAgICAgICAgICAiMC4zMDk4OTgsIDAuMzY4NjY4LCAwLjg5OTE4OSwgMS43ODE1NywgMi42Njc3MSwgNC43MzAyOCwgNS45MTY4MSIsIFwKLSAgICAgICAgICAiMC4zMDk5MTEsIDAuMzY4NjU5LCAwLjg5ODAyNCwgMS43ODE1NiwgMi42NzIwMiwgNC43MzUxMiwgNS45MTY4NCIsIFwKLSAgICAgICAgICAiMC4zMDk5MywgMC4zNjg2NjcsIDAuOTAwMDY3LCAxLjc4NjMxLCAyLjY2NTgxLCA0LjczMTEyLCA1LjkxNzc4IiwgXAotICAgICAgICAgICIwLjMwOTgwMSwgMC4zNjg2NzEsIDAuODk5NTUsIDEuNzgxMzcsIDIuNjcyMDQsIDQuNzM3NSwgNS45MTY3MiIsIFwKLSAgICAgICAgICAiMC4zMDk4MjMsIDAuMzY4NjYyLCAwLjg5NTYwMywgMS43ODE1NSwgMi42NTk3OCwgNC43MTg3MiwgNS45MDk1OSIsIFwKLSAgICAgICAgICAiMC4zMDgyMjcsIDAuMzY4NjU3LCAwLjg5NTUzNiwgMS43ODE1NSwgMi42NzAxMiwgNC43MTg4NCwgNS45MDMyOCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcHJlc2V0OwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMjkzNzYsIDAuMjU0NjMzLCAwLjQ4MzA0OSwgMC44NjIxMzIsIDEuMjQxNzYsIDIuMTI3OTMsIDIuNjMzMDgiLCBcCi0gICAgICAgICAgIjAuMjQxMDU1LCAwLjI2NjI5NiwgMC40OTQ2NzQsIDAuODczNzYzLCAxLjI1Mzc5LCAyLjEzNzM0LCAyLjY0Mzg2IiwgXAotICAgICAgICAgICIwLjI1NTY3NSwgMC4yODA5MTIsIDAuNTA4ODM3LCAwLjg4ODMwMSwgMS4yNjg1LCAyLjE1MjA1LCAyLjY1ODY1IiwgXAotICAgICAgICAgICIwLjI3MDM3NywgMC4yOTU2MzMsIDAuNTIzNTcyLCAwLjkwMjk5OSwgMS4yODI0MSwgMi4xNjY1NywgMi42NzY1OSIsIFwKLSAgICAgICAgICAiMC4yODUyNzUsIDAuMzEwNTI3LCAwLjUzODcwMywgMC45MTgzMzQsIDEuMjk3MjksIDIuMTg0NTIsIDIuNjg3OTciLCBcCi0gICAgICAgICAgIjAuMzA4NjI5LCAwLjMzMzkwMywgMC41NjE3MDUsIDAuOTQxMDgxLCAxLjMyMDI1LCAyLjIwNDY1LCAyLjcxMjUyIiwgXAotICAgICAgICAgICIwLjMyODA4LCAwLjM1MzMxNCwgMC41ODEyNDcsIDAuOTYwOTUzLCAxLjM0MSwgMi4yMjY3NywgMi43MzE2MyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yNzA0NTMsIDAuMzIyNjM4LCAwLjc4NTQ4OSwgMS41NjcyMSwgMi4zNDg5OSwgNC4xNjMyMiwgNS4xODY3NSIsIFwKLSAgICAgICAgICAiMC4yNzA0NywgMC4zMjI2NDUsIDAuNzg0NzMzLCAxLjU1OTI3LCAyLjM0ODUyLCA0LjE2ODgzLCA1LjE1ODI1IiwgXAotICAgICAgICAgICIwLjI3MDQ5MSwgMC4zMjI2MDgsIDAuNzg5MjYsIDEuNTYxNTQsIDIuMzQ5MzgsIDQuMTY4ODQsIDUuMTk0MDEiLCBcCi0gICAgICAgICAgIjAuMjcwNTAyLCAwLjMyMTk2MSwgMC43ODkyNjQsIDEuNTY3LCAyLjM1MDA5LCA0LjE2ODk0LCA1LjE3OTM0IiwgXAotICAgICAgICAgICIwLjI3MDQ0NywgMC4zMjIxNDEsIDAuNzg5Mjg0LCAxLjU2NjU5LCAyLjM0NDkzLCA0LjE2ODksIDUuMTc4ODciLCBcCi0gICAgICAgICAgIjAuMjcwNDk4LCAwLjMyMjEzOCwgMC43ODkyODEsIDEuNTY2MywgMi4zNDk4OSwgNC4xNjg4OSwgNS4xODIxNCIsIFwKLSAgICAgICAgICAiMC4yNjk5MTMsIDAuMzIyNDgzLCAwLjc4OTI4MiwgMS41Njg5NCwgMi4zNDY3LCA0LjE2ODY3LCA1LjE5MDAyIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMxOTYyOSwgMC4zNDkwMSwgMC42MTY2NDcsIDEuMDY1ODksIDEuNTEzNDksIDIuNTQ3MTYsIDMuMTUwOTgiLCBcCi0gICAgICAgICAgIjAuMzMxMTY2LCAwLjM2MDk3NCwgMC42Mjk2NjgsIDEuMDc3ODIsIDEuNTE5NDIsIDIuNTYwMzcsIDMuMTYwNTIiLCBcCi0gICAgICAgICAgIjAuMzQ0ODg1LCAwLjM3NDU4NCwgMC42NDMyNTUsIDEuMDkxNDUsIDEuNTMzMjEsIDIuNTcyMzcsIDMuMTc2MjYiLCBcCi0gICAgICAgICAgIjAuMzU4MDUyLCAwLjM4NzgwMSwgMC42NTY1NTIsIDEuMTA0NjgsIDEuNTQ1NzgsIDIuNTg2MDMsIDMuMTgwNzIiLCBcCi0gICAgICAgICAgIjAuMzcxNzYyLCAwLjQwMTU1MiwgMC42NzAzMTMsIDEuMTE0MTIsIDEuNTY0MzksIDIuNTk5OTgsIDMuMTkzNyIsIFwKLSAgICAgICAgICAiMC4zOTM3MjEsIDAuNDIzNTUsIDAuNjkyMjk4LCAxLjE0MDQxLCAxLjU4ODAxLCAyLjYyMTUxLCAzLjIyNTI5IiwgXAotICAgICAgICAgICIwLjQxMjYyNywgMC40NDIzNzEsIDAuNzExMTIxLCAxLjE1OTI3LCAxLjYwMTE1LCAyLjY0MDksIDMuMjM4NjIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzA5NTk3LCAwLjM2ODI5MiwgMC44OTc0NzEsIDEuNzgzNTgsIDIuNjY3MzksIDQuNzMxNCwgNS45MDg3OSIsIFwKLSAgICAgICAgICAiMC4zMDk2MjMsIDAuMzY4NjY0LCAwLjg5NTk1NCwgMS43ODQ5LCAyLjY2NTIsIDQuNzI5MjksIDUuOTA4MSIsIFwKLSAgICAgICAgICAiMC4zMDk4NDUsIDAuMzY4Njc0LCAwLjg5NTUzMywgMS43ODQ3MywgMi42NjcyMiwgNC43MzA0NiwgNS45MTU5MiIsIFwKLSAgICAgICAgICAiMC4zMDk2MjksIDAuMzY4NjcyLCAwLjg5NTY0MiwgMS43ODQ3NiwgMi42NjQ0NywgNC43MTE1OCwgNS44OTcyNiIsIFwKLSAgICAgICAgICAiMC4zMDk2ODIsIDAuMzY4NjcxLCAwLjg5NTUwMiwgMS43ODA1LCAyLjY3MDA1LCA0LjcyOTg0LCA1LjkwNjU0IiwgXAotICAgICAgICAgICIwLjMwOTYwOCwgMC4zNjkxODMsIDAuODk1MTEzLCAxLjc4NDc2LCAyLjY3MDAyLCA0LjcyNzAxLCA1LjkxNDkiLCBcCi0gICAgICAgICAgIjAuMzA5NTkzLCAwLjM2ODY3NSwgMC44OTUyOTIsIDEuNzg0ODksIDIuNjYyNjksIDQuNzI5NzYsIDUuOTE4NzgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJEIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDE5MjMsIDAuMDAxOTI0LCAwLjAwMTkyNiwgMC4wMDE5MjcsIDAuMDAxOTI3LCAwLjAwMTkyOCwgMC4wMDE5MjgiLCBcCi0gICAgICAgICAgIjAuMDAxOTE4LCAwLjAwMTkxOCwgMC4wMDE5MjEsIDAuMDAxOTIyLCAwLjAwMTkyMiwgMC4wMDE5MjIsIDAuMDAxOTIyIiwgXAotICAgICAgICAgICIwLjAwMTkxNCwgMC4wMDE5MTUsIDAuMDAxOTE4LCAwLjAwMTkxOCwgMC4wMDE5MTgsIDAuMDAxOTE5LCAwLjAwMTkxOSIsIFwKLSAgICAgICAgICAiMC4wMDE5MTIsIDAuMDAxOTEzLCAwLjAwMTkxNSwgMC4wMDE5MTYsIDAuMDAxOTE2LCAwLjAwMTkxNiwgMC4wMDE5MTciLCBcCi0gICAgICAgICAgIjAuMDAxOTEsIDAuMDAxOTExLCAwLjAwMTkxMywgMC4wMDE5MTQsIDAuMDAxOTE0LCAwLjAwMTkxNCwgMC4wMDE5MTUiLCBcCi0gICAgICAgICAgIjAuMDAxOTA3LCAwLjAwMTkwOCwgMC4wMDE5MSwgMC4wMDE5MTEsIDAuMDAxOTExLCAwLjAwMTkxMiwgMC4wMDE5MTIiLCBcCi0gICAgICAgICAgIjAuMDAxOTA1LCAwLjAwMTkwNSwgMC4wMDE5MDgsIDAuMDAxOTA5LCAwLjAwMTkwOSwgMC4wMDE5MDksIDAuMDAxOTA5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyMTQ5LCAwLjAwMjE1LCAwLjAwMjE1MywgMC4wMDIxNTQsIDAuMDAyMTU0LCAwLjAwMjE1NCwgMC4wMDIxNTQiLCBcCi0gICAgICAgICAgIjAuMDAyMTQ2LCAwLjAwMjE0NywgMC4wMDIxNSwgMC4wMDIxNTEsIDAuMDAyMTUxLCAwLjAwMjE1MSwgMC4wMDIxNTEiLCBcCi0gICAgICAgICAgIjAuMDAyMTQ0LCAwLjAwMjE0NSwgMC4wMDIxNDgsIDAuMDAyMTQ5LCAwLjAwMjE0OSwgMC4wMDIxNSwgMC4wMDIxNSIsIFwKLSAgICAgICAgICAiMC4wMDIxNDMsIDAuMDAyMTQzLCAwLjAwMjE0NiwgMC4wMDIxNDcsIDAuMDAyMTQ4LCAwLjAwMjE0OCwgMC4wMDIxNDgiLCBcCi0gICAgICAgICAgIjAuMDAyMTQxLCAwLjAwMjE0MiwgMC4wMDIxNDUsIDAuMDAyMTQ2LCAwLjAwMjE0NiwgMC4wMDIxNDcsIDAuMDAyMTQ3IiwgXAotICAgICAgICAgICIwLjAwMjEzOSwgMC4wMDIxNCwgMC4wMDIxNDMsIDAuMDAyMTQ0LCAwLjAwMjE0NSwgMC4wMDIxNDUsIDAuMDAyMTQ1IiwgXAotICAgICAgICAgICIwLjAwMjEzOSwgMC4wMDIxMzksIDAuMDAyMTQyLCAwLjAwMjE0MywgMC4wMDIxNDMsIDAuMDAyMTQ0LCAwLjAwMjE0NCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkciOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjY5MywgMC4wMDI2OTQsIDAuMDAyNjk2LCAwLjAwMjY5NywgMC4wMDI2OTcsIDAuMDAyNjk3LCAwLjAwMjY5OCIsIFwKLSAgICAgICAgICAiMC4wMDI2ODcsIDAuMDAyNjg4LCAwLjAwMjY5LCAwLjAwMjY5MSwgMC4wMDI2OTEsIDAuMDAyNjkxLCAwLjAwMjY5MSIsIFwKLSAgICAgICAgICAiMC4wMDI2ODEsIDAuMDAyNjgyLCAwLjAwMjY4NCwgMC4wMDI2ODUsIDAuMDAyNjg1LCAwLjAwMjY4NSwgMC4wMDI2ODYiLCBcCi0gICAgICAgICAgIjAuMDAyNjc5LCAwLjAwMjY3OSwgMC4wMDI2ODIsIDAuMDAyNjgyLCAwLjAwMjY4MiwgMC4wMDI2ODMsIDAuMDAyNjgzIiwgXAotICAgICAgICAgICIwLjAwMjY3NywgMC4wMDI2NzgsIDAuMDAyNjgsIDAuMDAyNjgxLCAwLjAwMjY4MSwgMC4wMDI2ODIsIDAuMDAyNjgyIiwgXAotICAgICAgICAgICIwLjAwMjY3NiwgMC4wMDI2NzcsIDAuMDAyNjc5LCAwLjAwMjY4LCAwLjAwMjY4LCAwLjAwMjY4LCAwLjAwMjY4IiwgXAotICAgICAgICAgICIwLjAwMjY3NCwgMC4wMDI2NzUsIDAuMDAyNjc3LCAwLjAwMjY3OCwgMC4wMDI2NzgsIDAuMDAyNjc5LCAwLjAwMjY3OCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjg1LCAwLjAwMjg1MSwgMC4wMDI4NTQsIDAuMDAyODU1LCAwLjAwMjg1NSwgMC4wMDI4NTYsIDAuMDAyODU2IiwgXAotICAgICAgICAgICIwLjAwMjg0NCwgMC4wMDI4NDQsIDAuMDAyODQ3LCAwLjAwMjg0OCwgMC4wMDI4NDgsIDAuMDAyODQ5LCAwLjAwMjg0OSIsIFwKLSAgICAgICAgICAiMC4wMDI4MzgsIDAuMDAyODM5LCAwLjAwMjg0MiwgMC4wMDI4NDMsIDAuMDAyODQzLCAwLjAwMjg0MywgMC4wMDI4NDMiLCBcCi0gICAgICAgICAgIjAuMDAyODM1LCAwLjAwMjgzNSwgMC4wMDI4MzgsIDAuMDAyODM5LCAwLjAwMjgzOSwgMC4wMDI4MzksIDAuMDAyODQiLCBcCi0gICAgICAgICAgIjAuMDAyODMzLCAwLjAwMjgzMywgMC4wMDI4MzYsIDAuMDAyODM3LCAwLjAwMjgzNywgMC4wMDI4MzgsIDAuMDAyODM4IiwgXAotICAgICAgICAgICIwLjAwMjgzLCAwLjAwMjgzMSwgMC4wMDI4MzQsIDAuMDAyODM1LCAwLjAwMjgzNSwgMC4wMDI4MzYsIDAuMDAyODM1IiwgXAotICAgICAgICAgICIwLjAwMjgyNywgMC4wMDI4MjgsIDAuMDAyODMxLCAwLjAwMjgzMiwgMC4wMDI4MzIsIDAuMDAyODMyLCAwLjAwMjgzMyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI2MTIsIDAuMDAyNjEzLCAwLjAwMjYxNiwgMC4wMDI2MTYsIDAuMDAyNjE3LCAwLjAwMjYxNywgMC4wMDI2MTciLCBcCi0gICAgICAgICAgIjAuMDAyNjA3LCAwLjAwMjYwNywgMC4wMDI2MSwgMC4wMDI2MSwgMC4wMDI2MTEsIDAuMDAyNjExLCAwLjAwMjYxMSIsIFwKLSAgICAgICAgICAiMC4wMDI2MDIsIDAuMDAyNjAzLCAwLjAwMjYwNSwgMC4wMDI2MDYsIDAuMDAyNjA2LCAwLjAwMjYwNywgMC4wMDI2MDciLCBcCi0gICAgICAgICAgIjAuMDAyNTk5LCAwLjAwMjYsIDAuMDAyNjAyLCAwLjAwMjYwMywgMC4wMDI2MDMsIDAuMDAyNjAzLCAwLjAwMjYwMyIsIFwKLSAgICAgICAgICAiMC4wMDI1OTcsIDAuMDAyNTk4LCAwLjAwMjYsIDAuMDAyNjAxLCAwLjAwMjYwMiwgMC4wMDI2MDIsIDAuMDAyNjAyIiwgXAotICAgICAgICAgICIwLjAwMjU5NSwgMC4wMDI1OTYsIDAuMDAyNTk4LCAwLjAwMjU5OSwgMC4wMDI1OTksIDAuMDAyNiwgMC4wMDI1OTkiLCBcCi0gICAgICAgICAgIjAuMDAyNTkzLCAwLjAwMjU5NCwgMC4wMDI1OTYsIDAuMDAyNTk3LCAwLjAwMjU5NywgMC4wMDI1OTcsIDAuMDAyNTk4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzNDk2LCAwLjAwMzQ5NywgMC4wMDM1LCAwLjAwMzUwMSwgMC4wMDM1MDEsIDAuMDAzNTAxLCAwLjAwMzUwMSIsIFwKLSAgICAgICAgICAiMC4wMDM0ODksIDAuMDAzNDksIDAuMDAzNDkzLCAwLjAwMzQ5NCwgMC4wMDM0OTQsIDAuMDAzNDk0LCAwLjAwMzQ5NSIsIFwKLSAgICAgICAgICAiMC4wMDM0ODUsIDAuMDAzNDg2LCAwLjAwMzQ4OSwgMC4wMDM0OSwgMC4wMDM0OSwgMC4wMDM0OSwgMC4wMDM0OSIsIFwKLSAgICAgICAgICAiMC4wMDM0ODIsIDAuMDAzNDgzLCAwLjAwMzQ4NiwgMC4wMDM0ODYsIDAuMDAzNDg3LCAwLjAwMzQ4NywgMC4wMDM0ODciLCBcCi0gICAgICAgICAgIjAuMDAzNDgsIDAuMDAzNDgsIDAuMDAzNDgzLCAwLjAwMzQ4NCwgMC4wMDM0ODQsIDAuMDAzNDg1LCAwLjAwMzQ4NSIsIFwKLSAgICAgICAgICAiMC4wMDM0NzcsIDAuMDAzNDc4LCAwLjAwMzQ4MSwgMC4wMDM0ODEsIDAuMDAzNDgyLCAwLjAwMzQ4MiwgMC4wMDM0ODIiLCBcCi0gICAgICAgICAgIjAuMDAzNDc1LCAwLjAwMzQ3NiwgMC4wMDM0NzksIDAuMDAzNDc5LCAwLjAwMzQ4LCAwLjAwMzQ4LCAwLjAwMzQ4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiU04iOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjI0OCwgMC4wMDIyNDksIDAuMDAyMjUsIDAuMDAyMjUxLCAwLjAwMjI1MSwgMC4wMDIyNTEsIDAuMDAyMjUxIiwgXAotICAgICAgICAgICIwLjAwMjI0NCwgMC4wMDIyNDUsIDAuMDAyMjQ2LCAwLjAwMjI0NiwgMC4wMDIyNDcsIDAuMDAyMjQ3LCAwLjAwMjI0NyIsIFwKLSAgICAgICAgICAiMC4wMDIyMzksIDAuMDAyMjM5LCAwLjAwMjI0MSwgMC4wMDIyNDEsIDAuMDAyMjQyLCAwLjAwMjI0MiwgMC4wMDIyNDIiLCBcCi0gICAgICAgICAgIjAuMDAyMjMzLCAwLjAwMjIzNCwgMC4wMDIyMzYsIDAuMDAyMjM3LCAwLjAwMjIzNywgMC4wMDIyMzcsIDAuMDAyMjM3IiwgXAotICAgICAgICAgICIwLjAwMjIyOCwgMC4wMDIyMjksIDAuMDAyMjMxLCAwLjAwMjIzMiwgMC4wMDIyMzIsIDAuMDAyMjMzLCAwLjAwMjIzMyIsIFwKLSAgICAgICAgICAiMC4wMDIyMjMsIDAuMDAyMjI0LCAwLjAwMjIyNiwgMC4wMDIyMjgsIDAuMDAyMjI4LCAwLjAwMjIyOCwgMC4wMDIyMjgiLCBcCi0gICAgICAgICAgIjAuMDAyMjE4LCAwLjAwMjIxOSwgMC4wMDIyMjIsIDAuMDAyMjIzLCAwLjAwMjIyNCwgMC4wMDIyMjQsIDAuMDAyMjI0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxMjMsIDAuMDAxMjMxLCAwLjAwMTIzMywgMC4wMDEyMzQsIDAuMDAxMjM0LCAwLjAwMTIzNCwgMC4wMDEyMzQiLCBcCi0gICAgICAgICAgIjAuMDAxMjI1LCAwLjAwMTIyNiwgMC4wMDEyMjgsIDAuMDAxMjI5LCAwLjAwMTIyOSwgMC4wMDEyMywgMC4wMDEyMjkiLCBcCi0gICAgICAgICAgIjAuMDAxMjIxLCAwLjAwMTIyMiwgMC4wMDEyMjQsIDAuMDAxMjI1LCAwLjAwMTIyNSwgMC4wMDEyMjUsIDAuMDAxMjI1IiwgXAotICAgICAgICAgICIwLjAwMTIxOCwgMC4wMDEyMTksIDAuMDAxMjIxLCAwLjAwMTIyMiwgMC4wMDEyMjIsIDAuMDAxMjIyLCAwLjAwMTIyMyIsIFwKLSAgICAgICAgICAiMC4wMDEyMTYsIDAuMDAxMjE3LCAwLjAwMTIxOSwgMC4wMDEyMiwgMC4wMDEyMiwgMC4wMDEyMjEsIDAuMDAxMjIxIiwgXAotICAgICAgICAgICIwLjAwMTIxNCwgMC4wMDEyMTUsIDAuMDAxMjE4LCAwLjAwMTIxOCwgMC4wMDEyMTksIDAuMDAxMjE5LCAwLjAwMTIxOSIsIFwKLSAgICAgICAgICAiMC4wMDEyMTMsIDAuMDAxMjE0LCAwLjAwMTIxNiwgMC4wMDEyMTcsIDAuMDAxMjE3LCAwLjAwMTIxOCwgMC4wMDEyMTgiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFFOKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMDcxMjYxOTsKLSAgICBmdW5jdGlvbiA6ICJONSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzcwNDgsIDAuMzk1OTU0LCAwLjYyMzM0MiwgMS4wMDIxNSwgMS4zODA5OCwgMi4yNjQzLCAyLjc2OTIzIiwgXAotICAgICAgICAgICIwLjM4MTg5NiwgMC40MDczODgsIDAuNjM0NzkyLCAxLjAxMzU2LCAxLjM5MjM2LCAyLjI3NTcyLCAyLjc4MDcxIiwgXAotICAgICAgICAgICIwLjM5NDg5MywgMC40MjAzNjksIDAuNjQ3NzUsIDEuMDI2NSwgMS40MDUyNCwgMi4yODg2OSwgMi43OTM1NiIsIFwKLSAgICAgICAgICAiMC40MDcxNDYsIDAuNDMyNjAyLCAwLjY1OTk4NiwgMS4wMzg3MywgMS40MTc0OCwgMi4zMDA5NywgMi44MDU4MSIsIFwKLSAgICAgICAgICAiMC40MTkzNDQsIDAuNDQ0ODE5LCAwLjY3MjIyMiwgMS4wNTEsIDEuNDI5NzksIDIuMzEzMTQsIDIuODE4MTIiLCBcCi0gICAgICAgICAgIjAuNDM4MzQ5LCAwLjQ2Mzc5NiwgMC42OTEyLCAxLjA2OTkzLCAxLjQ0ODgsIDIuMzMyMTQsIDIuODM3MSIsIFwKLSAgICAgICAgICAiMC40NTQ2MDksIDAuNDgwMDY4LCAwLjcwNzQ1MywgMS4wODYzNywgMS40NjUxLCAyLjM0ODQyLCAyLjg1MzMyIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI4NDU0MywgMC4zMzM2NzYsIDAuNzg3OTM3LCAxLjU1MzE1LCAyLjMxOTMxLCA0LjEyMDc4LCA1LjE0MTE2IiwgXAotICAgICAgICAgICIwLjI4NDUzOCwgMC4zMzM2NTYsIDAuNzg2ODI2LCAxLjU1NTg1LCAyLjMyNTc5LCA0LjEyMDY3LCA1LjE0MTE5IiwgXAotICAgICAgICAgICIwLjI4NDU1MSwgMC4zMzM2ODEsIDAuNzg3OTAyLCAxLjU1NTc5LCAyLjMyMTM4LCA0LjEyMDA1LCA1LjE0MTA3IiwgXAotICAgICAgICAgICIwLjI4NDU2LCAwLjMzMzcwMSwgMC43ODc5MTYsIDEuNTU1NzksIDIuMzI1NDUsIDQuMTIwODgsIDUuMTQwOTMiLCBcCi0gICAgICAgICAgIjAuMjg0NTczLCAwLjMzMzY5NywgMC43ODY0NjUsIDEuNTUzMDcsIDIuMzI1ODUsIDQuMTIwNjcsIDUuMTQxMDMiLCBcCi0gICAgICAgICAgIjAuMjg0NDUxLCAwLjMzMzY1NywgMC43ODc5NDQsIDEuNTU1NywgMi4zMTkzMiwgNC4xMjA3MywgNS4xNDExNyIsIFwKLSAgICAgICAgICAiMC4yODQ1MDEsIDAuMzMzNjY1LCAwLjc4NzkzMiwgMS41NTE1LCAyLjMxOTI4LCA0LjEyMDc4LCA1LjE0MDk4Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMzNDI1NCwgMC4zNjM5MzgsIDAuNjMxMzk4LCAxLjA3NjgzLCAxLjUyMjI2LCAyLjU2MTcsIDMuMTU1ODkiLCBcCi0gICAgICAgICAgIjAuMzQ1NzMyLCAwLjM3NTQ4NSwgMC42NDI4ODQsIDEuMDg4MzQsIDEuNTMzNzYsIDIuNTczMTEsIDMuMTY3NDMiLCBcCi0gICAgICAgICAgIjAuMzU5NDMxLCAwLjM4OTE3LCAwLjY1NjU4OSwgMS4xMDIwMywgMS41NDc0NywgMi41ODcwNiwgMy4xODEwNSIsIFwKLSAgICAgICAgICAiMC4zNzI5OTMsIDAuNDAyNzI0LCAwLjY3MDEyNywgMS4xMTU1OCwgMS41NjEwOCwgMi42MDA1MywgMy4xOTQ0NCIsIFwKLSAgICAgICAgICAiMC4zODY3ODgsIDAuNDE2NTIyLCAwLjY4MzkyMiwgMS4xMjkzNywgMS41NzQ4LCAyLjYxNDMzLCAzLjIwODI0IiwgXAotICAgICAgICAgICIwLjQwODM4OCwgMC40MzgxMSwgMC43MDU1MjYsIDEuMTUwOTcsIDEuNTk2MzksIDIuNjM1ODQsIDMuMjI5ODYiLCBcCi0gICAgICAgICAgIjAuNDI3MDA4LCAwLjQ1NjczOCwgMC43MjQxNTYsIDEuMTY5NiwgMS42MTUwMywgMi42NTQ3NCwgMy4yNDg2NiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMTI5NTEsIDAuMzcwNzY4LCAwLjg5ODU0LCAxLjc4MDg4LCAyLjY2MjA5LCA0LjcxOTY1LCA1Ljg5Mzc4IiwgXAotICAgICAgICAgICIwLjMxMjg1MSwgMC4zNzE1MTIsIDAuODk4NTc1LCAxLjc4MDg2LCAyLjY2MjA3LCA0LjcxNzc4LCA1Ljg5MTY5IiwgXAotICAgICAgICAgICIwLjMxMzI4NiwgMC4zNzExMjgsIDAuODk4NTI2LCAxLjc4MDg3LCAyLjY2MjYzLCA0LjcyMDgyLCA1Ljg5Mzc0IiwgXAotICAgICAgICAgICIwLjMxMzI4LCAwLjM3MTA2LCAwLjg5OTI4MywgMS43ODA4NSwgMi42NjIyOCwgNC43MTk2NiwgNS44OTM1NiIsIFwKLSAgICAgICAgICAiMC4zMTMyNjcsIDAuMzcwNDMsIDAuODk5Mjc4LCAxLjc4MDgzLCAyLjY2MjU5LCA0LjcxOTY2LCA1Ljg4OTM2IiwgXAotICAgICAgICAgICIwLjMxMzI2NSwgMC4zNzExMDYsIDAuODk4NTI1LCAxLjc4MDgzLCAyLjY2MjU2LCA0LjcxNzAzLCA1Ljg5MTA3IiwgXAotICAgICAgICAgICIwLjMxMzA1LCAwLjM3MTUyNiwgMC44OTg1NDEsIDEuNzgwODYsIDIuNjYyNTksIDQuNzE1NDUsIDUuODkzNzgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBub25fdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJpc2luZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC40NzI0NzUsIDAuNDk3OTMyLCAwLjcyNTMzOCwgMS4xMDQxMywgMS40ODI5MywgMi4zNjYyNywgMi44NzEyNCIsIFwKLSAgICAgICAgICAiMC40ODI3MzMsIDAuNTA4MTkyLCAwLjczNTU5NiwgMS4xMTQzOSwgMS40OTMyMywgMi4zNzY5NCwgMi44ODE0NyIsIFwKLSAgICAgICAgICAiMC40OTU3MzUsIDAuNTIxMTk2LCAwLjc0ODU5OSwgMS4xMjc0MywgMS41MDYyNCwgMi4zODk2NiwgMi44OTQ0NiIsIFwKLSAgICAgICAgICAiMC41MDkyMTQsIDAuNTM0Njc1LCAwLjc2MjA3OCwgMS4xNDEwNSwgMS41MTk3MywgMi40MDMwMywgMi45MDc5NCIsIFwKLSAgICAgICAgICAiMC41MjM2MTgsIDAuNTQ5MDg0LCAwLjc3NjQ4NSwgMS4xNTUyMSwgMS41MzQxMSwgMi40MTc0MywgMi45MjIzNiIsIFwKLSAgICAgICAgICAiMC41NDU0NDQsIDAuNTcwOTEsIDAuNzk4MzEsIDEuMTc3MDMsIDEuNTU1OTQsIDIuNDM5MjYsIDIuOTQ0MTkiLCBcCi0gICAgICAgICAgIjAuNTY1MDE3LCAwLjU5MDQ4MywgMC44MTc4ODMsIDEuMTk2NjEsIDEuNTc1NTEsIDIuNDU4ODMsIDIuOTYzNzYiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjg1MDYxLCAwLjMzNDE1NCwgMC43ODgwODEsIDEuNTUzMTIsIDIuMzE5MzYsIDQuMTIwODIsIDUuMTQxMDIiLCBcCi0gICAgICAgICAgIjAuMjg1MDM5LCAwLjMzNDE1NSwgMC43ODgwNTEsIDEuNTUzMTIsIDIuMzE5MywgNC4xMTIwNiwgNS4xNDA5OSIsIFwKLSAgICAgICAgICAiMC4yODUwMTksIDAuMzM0MTU1LCAwLjc4ODA0MywgMS41NTIyLCAyLjMxOTI3LCA0LjEyMTE3LCA1LjE0MTE0IiwgXAotICAgICAgICAgICIwLjI4NDk5NCwgMC4zMzQxMzcsIDAuNzg4MDM1LCAxLjU1MjQ2LCAyLjMxOTE5LCA0LjEyMDc0LCA1LjE0MTEzIiwgXAotICAgICAgICAgICIwLjI4NTE0NywgMC4zMzQxNjIsIDAuNzg4MDU1LCAxLjU1NTM0LCAyLjMxOTMsIDQuMTIwODIsIDUuMTQxMTUiLCBcCi0gICAgICAgICAgIjAuMjg1MTQ2LCAwLjMzNDE2MiwgMC43ODgwNTcsIDEuNTU1MzIsIDIuMzE5MywgNC4xMjA4MiwgNS4xNDExNSIsIFwKLSAgICAgICAgICAiMC4yODUxNDcsIDAuMzM0MTYyLCAwLjc4ODA1NSwgMS41NTUzNSwgMi4zMTkzLCA0LjEyMDgyLCA1LjE0MTE1Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjQ2MDg1LCAwLjQ5MDU2OSwgMC43NTc5NzEsIDEuMjAzNDQsIDEuNjQ4ODUsIDIuNjg4MjQsIDMuMjgyMzEiLCBcCi0gICAgICAgICAgIjAuNDcxMDA5LCAwLjUwMDczNCwgMC43NjgxMDgsIDEuMjEzNjIsIDEuNjU5MDgsIDIuNjk4NTcsIDMuMjkyMjkiLCBcCi0gICAgICAgICAgIjAuNDgzOTgyLCAwLjUxMzcwOSwgMC43ODExMTUsIDEuMjI2NTgsIDEuNjcyMDIsIDIuNzExNCwgMy4zMDU2NCIsIFwKLSAgICAgICAgICAiMC40OTc5ODQsIDAuNTI3NzExLCAwLjc5NTA4MSwgMS4yNDA1OSwgMS42ODYwMiwgMi43MjUzMiwgMy4zMTk2MyIsIFwKLSAgICAgICAgICAiMC41MTIxMjYsIDAuNTQxODQ2LCAwLjgwOTI1LCAxLjI1NDcxLCAxLjcwMDEzLCAyLjczOTQ5LCAzLjMzMzU5IiwgXAotICAgICAgICAgICIwLjUzNDA1OCwgMC41NjM3NzksIDAuODMxMTc5LCAxLjI3NjY1LCAxLjcyMjA3LCAyLjc2MTQ4LCAzLjM1NTUxIiwgXAotICAgICAgICAgICIwLjU1MzU5LCAwLjU4MzMxNywgMC44NTA3MjQsIDEuMjk2MTksIDEuNzQxNjMsIDIuNzgwOTIsIDMuMzc1MjQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzEzMzA5LCAwLjM3MTQzMSwgMC44OTg2MSwgMS43ODA3NywgMi42NjIwNywgNC43MTY3MywgNS44OTA3NSIsIFwKLSAgICAgICAgICAiMC4zMTMzMTUsIDAuMzcxNDg2LCAwLjg5OTIwMywgMS43ODA5MSwgMi42NjI3MSwgNC43MTk2NiwgNS44OTE4MyIsIFwKLSAgICAgICAgICAiMC4zMTMzMjYsIDAuMzcxMTU1LCAwLjg5ODU1NywgMS43ODA4NywgMi42NjI2MSwgNC43MTU0OSwgNS44OTA3MiIsIFwKLSAgICAgICAgICAiMC4zMTMzMjYsIDAuMzcxMTU1LCAwLjg5OTE5MSwgMS43ODA4MiwgMi42NjI2MywgNC43MTk0NCwgNS44OTM3OCIsIFwKLSAgICAgICAgICAiMC4zMTMzMTYsIDAuMzcxNDMyLCAwLjg5ODU1LCAxLjc4MDc3LCAyLjY2MjA2LCA0LjcxNzUxLCA1Ljg5MTAzIiwgXAotICAgICAgICAgICIwLjMxMzI5MSwgMC4zNzE0MjYsIDAuODk4NjI0LCAxLjc4MDc2LCAyLjY2MjQzLCA0LjcxNzM2LCA1Ljg4OTk1IiwgXAotICAgICAgICAgICIwLjMxMzMyNiwgMC4zNzExNTUsIDAuODk4NTU0LCAxLjc4MDg4LCAyLjY2MjQ5LCA0LjcxOTQxLCA1Ljg5Mzc4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiByaXNpbmdfZWRnZTsKLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuNDY3NDQxLCAwLjQ5NzE2OSwgMC43NjQ1MzYsIDEuMjEwMDUsIDEuNjU1NTMsIDIuNjk1LCAzLjI4ODciLCBcCi0gICAgICAgICAgIjAuNDc5Mjk0LCAwLjUwOTAxLCAwLjc3NjQ4OSwgMS4yMjE4NywgMS42NjczMSwgMi43MDY4NCwgMy4zMDA3MSIsIFwKLSAgICAgICAgICAiMC40OTMwOTgsIDAuNTIyODE3LCAwLjc5MDIxNiwgMS4yMzU2OCwgMS42ODExMSwgMi43MjA2NSwgMy4zMTQ1MiIsIFwKLSAgICAgICAgICAiMC41MDY1ODMsIDAuNTM2MzExLCAwLjgwMzcxOCwgMS4yNDkxOCwgMS42OTQ2MiwgMi43MzM5NCwgMy4zMjgyNCIsIFwKLSAgICAgICAgICAiMC41MjAzNTMsIDAuNTUwMDgxLCAwLjgxNzQ1NCwgMS4yNjI5NiwgMS43MDg0NCwgMi43NDc5MSwgMy4zNDE2MiIsIFwKLSAgICAgICAgICAiMC41NDIyNTUsIDAuNTcxOTc0LCAwLjgzOTM1MiwgMS4yODQ4NCwgMS43MzAyNywgMi43Njk4MSwgMy4zNjM2OCIsIFwKLSAgICAgICAgICAiMC41NjEwNTYsIDAuNTkwNzg0LCAwLjg1ODE1NCwgMS4zMDM2NywgMS43NDkxNCwgMi43ODg2MiwgMy4zODIzMiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMTMzMjYsIDAuMzcxMTUzLCAwLjg5OTE4MiwgMS43ODA5MSwgMi42NjA5NCwgNC43MTk2NSwgNS44OTIxMSIsIFwKLSAgICAgICAgICAiMC4zMTMwMjksIDAuMzcxMjMyLCAwLjg5ODI0OSwgMS43ODA3NiwgMi42NjI0NywgNC43MTk2MywgNS44OTEzMyIsIFwKLSAgICAgICAgICAiMC4zMTI5NjksIDAuMzcxMjM1LCAwLjg5ODU1NSwgMS43ODA3NiwgMi42NjI0NiwgNC43MTk2NCwgNS44OTA4NCIsIFwKLSAgICAgICAgICAiMC4zMTMzMjgsIDAuMzcxMTU1LCAwLjg5ODU1MywgMS43ODA4OCwgMi42NjI2MiwgNC43MTc5LCA1Ljg5MDEzIiwgXAotICAgICAgICAgICIwLjMxMzMxNCwgMC4zNzE1MTIsIDAuODk5MjA1LCAxLjc4MDkxLCAyLjY2MDk0LCA0LjcxOTY2LCA1Ljg5MjAzIiwgXAotICAgICAgICAgICIwLjMxMzA2OSwgMC4zNzEyMzYsIDAuODk5MTU2LCAxLjc4MDc2LCAyLjY2MjQ2LCA0LjcxOTY0LCA1Ljg5MDgyIiwgXAotICAgICAgICAgICIwLjMxMzMyOCwgMC4zNzExNTcsIDAuODk5MTkxLCAxLjc4MDgyLCAyLjY2MDk1LCA0LjcxOTY2LCA1Ljg5MjA4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiBmYWxsaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjQ1MjE1MSwgMC40Nzc2MjYsIDAuNzA1MDM3LCAxLjA4MzgyLCAxLjQ2MjQyLCAyLjM0NjA1LCAyLjg1MDg3IiwgXAotICAgICAgICAgICIwLjQ2MzU0MywgMC40ODg5OTUsIDAuNzE2NCwgMS4wOTUxOCwgMS40NzM4LCAyLjM1NzM1LCAyLjg2MjI4IiwgXAotICAgICAgICAgICIwLjQ3ODM5MSwgMC41MDM4NDksIDAuNzMxMjQ3LCAxLjExMDAzLCAxLjQ4ODY1LCAyLjM3MjIsIDIuODc3MTMiLCBcCi0gICAgICAgICAgIjAuNDkyODgyLCAwLjUxODM1OCwgMC43NDU3NzQsIDEuMTI0NTUsIDEuNTAzMTYsIDIuMzg2OCwgMi44OTE1OCIsIFwKLSAgICAgICAgICAiMC41MDc1ODYsIDAuNTMzMDQ2LCAwLjc2MDQ0NCwgMS4xMzkyMiwgMS41MTc4NSwgMi40MDEzOSwgMi45MDYzMSIsIFwKLSAgICAgICAgICAiMC41MzAzMTQsIDAuNTU1Nzc0LCAwLjc4MzE3OSwgMS4xNjE5OSwgMS41NDA1NywgMi40MjQyMiwgMi45MjkwMSIsIFwKLSAgICAgICAgICAiMC41NDg5NTMsIDAuNTc0NDMxLCAwLjgwMTgzMywgMS4xODA2LCAxLjU1OTI4LCAyLjQ0Mjg2LCAyLjk0NzY2Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI4NDY1OSwgMC4zMzM3NjksIDAuNzg4MDQ3LCAxLjU1NTkxLCAyLjMyMTM5LCA0LjExMjMzLCA1LjEzNzMxIiwgXAotICAgICAgICAgICIwLjI4NDU5OSwgMC4zMzM3MzUsIDAuNzg3OTY1LCAxLjU1NTg3LCAyLjMyMTQzLCA0LjExNDI5LCA1LjE0MDc0IiwgXAotICAgICAgICAgICIwLjI4NDU0NSwgMC4zMzM3NTMsIDAuNzg4MDAxLCAxLjU1NTg2LCAyLjMyNDUzLCA0LjExNTAyLCA1LjE0MDc0IiwgXAotICAgICAgICAgICIwLjI4NDY1NSwgMC4zMzM3NjksIDAuNzg4MDE0LCAxLjU1NTg4LCAyLjMyMzQ3LCA0LjExMjMxLCA1LjEzNzMzIiwgXAotICAgICAgICAgICIwLjI4NDU3NSwgMC4zMzM3NDcsIDAuNzg3OTg3LCAxLjU1NTg1LCAyLjMyNDUyLCA0LjExNTM5LCA1LjE0MDc1IiwgXAotICAgICAgICAgICIwLjI4NDU1MywgMC4zMzM3NTIsIDAuNzg3OTg5LCAxLjU1NTgzLCAyLjMyNDg5LCA0LjEyMDgxLCA1LjEzNzMxIiwgXAotICAgICAgICAgICIwLjI4NDYwOCwgMC4zMzM3NSwgMC43ODgwMDEsIDEuNTU1OCwgMi4zMjUyNCwgNC4xMjEsIDUuMTM3MzgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiU04iOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGNsZWFyOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yODY4NDMsIDAuMzEyMzI5LCAwLjUzOTcxMSwgMC45MTg0NjMsIDEuMjk3MjYsIDIuMTgxMTEsIDIuNjg2NDYiLCBcCi0gICAgICAgICAgIjAuMjk4NTE4LCAwLjMyMzkzOSwgMC41NTEzMTksIDAuOTMwMTA5LCAxLjMwODkzLCAyLjE5Mjc4LCAyLjY5Nzg5IiwgXAotICAgICAgICAgICIwLjMxMjEzNywgMC4zMzc2MDIsIDAuNTY0OTY1LCAwLjk0MzcsIDEuMzIyODgsIDIuMjA2NiwgMi43MTE3OSIsIFwKLSAgICAgICAgICAiMC4zMjU1MjgsIDAuMzUwOTUsIDAuNTc4MzMsIDAuOTU3MDczLCAxLjMzNjA1LCAyLjIyMDExLCAyLjcyNDg2IiwgXAotICAgICAgICAgICIwLjMzOTE1MSwgMC4zNjQ1NzgsIDAuNTkxOTY2LCAwLjk3MDg4NywgMS4zNDk1NiwgMi4yMzM0MywgMi43Mzg0MSIsIFwKLSAgICAgICAgICAiMC4zNjExMjcsIDAuMzg2NTY1LCAwLjYxMzk2LCAwLjk5MjcwNywgMS4zNzE1LCAyLjI1NTY2LCAyLjc2MDg1IiwgXAotICAgICAgICAgICIwLjM4MDA0MSwgMC40MDU0ODgsIDAuNjMyODc4LCAxLjAxMTYyLCAxLjM5MDkzLCAyLjI3NDc5LCAyLjc3OTY5Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI4NDQ3MywgMC4zMzM2MDcsIDAuNzg3OTM2LCAxLjU1NTksIDIuMzI1ODcsIDQuMTExNjcsIDUuMTQxNDYiLCBcCi0gICAgICAgICAgIjAuMjg0NDY2LCAwLjMzMzYzMSwgMC43ODc5MzksIDEuNTU2MDQsIDIuMzE5MzcsIDQuMTE0MjIsIDUuMTM3MjIiLCBcCi0gICAgICAgICAgIjAuMjg0NDY4LCAwLjMzMzYxMSwgMC43ODc4OTcsIDEuNTU1NzksIDIuMzE5ODQsIDQuMTEyNjUsIDUuMTQxMzgiLCBcCi0gICAgICAgICAgIjAuMjg0NTIzLCAwLjMzMzY1MiwgMC43ODc5MDgsIDEuNTU1ODEsIDIuMzE5MzUsIDQuMTEyMDMsIDUuMTM5MjgiLCBcCi0gICAgICAgICAgIjAuMjg0NDU1LCAwLjMzMzU4MiwgMC43ODc5MTMsIDEuNTUzMTUsIDIuMzI1ODcsIDQuMTE0NjQsIDUuMTM0NTMiLCBcCi0gICAgICAgICAgIjAuMjg0Mzc2LCAwLjMzMzY1NCwgMC43ODc4OTMsIDEuNTU1ODEsIDIuMzI1NzMsIDQuMTEyNDQsIDUuMTQxNTMiLCBcCi0gICAgICAgICAgIjAuMjg0NDEsIDAuMzMzNTc4LCAwLjc4Nzg5MSwgMS41NTU5OCwgMi4zMTk3NywgNC4xMTMyNiwgNS4xMzgxNyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMzEzODUsIDAuMjYxMzA0LCAwLjUyODcyNywgMC45NzQxMzUsIDEuNDE5NTQsIDIuNDU4ODQsIDMuMDUyOCIsIFwKLSAgICAgICAgICAiMC4yNDMwNjcsIDAuMjcyOTg1LCAwLjU0MDQwNywgMC45ODU4MTQsIDEuNDMxMjMsIDIuNDcwNTEsIDMuMDY0NDMiLCBcCi0gICAgICAgICAgIjAuMjU3NjkyLCAwLjI4NzYwOCwgMC41NTUwMzgsIDEuMDAwNDUsIDEuNDQ1ODUsIDIuNDg1MTgsIDMuMDc5MSIsIFwKLSAgICAgICAgICAiMC4yNzI0MjcsIDAuMzAyMzUsIDAuNTY5OCwgMS4wMTUyMiwgMS40NjA2MywgMi40OTk5MywgMy4wOTM4MyIsIFwKLSAgICAgICAgICAiMC4yODczNDMsIDAuMzE3MjY3LCAwLjU4NDcxNSwgMS4wMzAxNCwgMS40NzU1NiwgMi41MTUwOCwgMy4xMDg3NiIsIFwKLSAgICAgICAgICAiMC4zMTA3NDIsIDAuMzQwNjY2LCAwLjYwODEzNSwgMS4wNTM1NSwgMS40OTg5OSwgMi41MzgyOCwgMy4xMzIyNiIsIFwKLSAgICAgICAgICAiMC4zMzAzMDMsIDAuMzYwMjI5LCAwLjYyNzcwMiwgMS4wNzMxNCwgMS41MTg1NiwgMi41NTc4NiwgMy4xNTE4MiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMTM4OTEsIDAuMzcxODY5LCAwLjg5OTIyMywgMS43ODAxMiwgMi42NjI1OCwgNC43MTk3MSwgNS44OTM1OCIsIFwKLSAgICAgICAgICAiMC4zMTM4NjMsIDAuMzcxOTAzLCAwLjg5OTA2OSwgMS43Nzk5MywgMi42NjI1NywgNC43MTk3OSwgNS44OTMyNiIsIFwKLSAgICAgICAgICAiMC4zMTM4NTYsIDAuMzcxODY1LCAwLjg5OTQ1MiwgMS43Nzk5NSwgMi42NjI1OCwgNC43MTk3OSwgNS44OTMyOCIsIFwKLSAgICAgICAgICAiMC4zMTM4ODUsIDAuMzcxODU0LCAwLjg5OTM5NiwgMS43Nzk5OCwgMi42NjI1OCwgNC43MTk3MiwgNS44OTM5NiIsIFwKLSAgICAgICAgICAiMC4zMTM4OTIsIDAuMzcxODUsIDAuODk5NTE2LCAxLjc3OTk4LCAyLjY2MDc2LCA0LjcxOTc1LCA1Ljg5MzY2IiwgXAotICAgICAgICAgICIwLjMxMzg5MSwgMC4zNzE4OTgsIDAuODk5NDQ2LCAxLjc4MDExLCAyLjY2MjUzLCA0LjcxOTc2LCA1Ljg5MzY2IiwgXAotICAgICAgICAgICIwLjMxNDAwOCwgMC4zNzE5NDUsIDAuODk5NDM3LCAxLjc4MDgzLCAyLjY2MjQxLCA0LjcxOTg5LCA1Ljg5MzMxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyMTQ5LCAwLjAwMjE1LCAwLjAwMjE1MywgMC4wMDIxNTQsIDAuMDAyMTU0LCAwLjAwMjE1NCwgMC4wMDIxNTQiLCBcCi0gICAgICAgICAgIjAuMDAyMTQ2LCAwLjAwMjE0NywgMC4wMDIxNSwgMC4wMDIxNTEsIDAuMDAyMTUxLCAwLjAwMjE1MSwgMC4wMDIxNTEiLCBcCi0gICAgICAgICAgIjAuMDAyMTQ0LCAwLjAwMjE0NSwgMC4wMDIxNDgsIDAuMDAyMTQ5LCAwLjAwMjE0OSwgMC4wMDIxNSwgMC4wMDIxNSIsIFwKLSAgICAgICAgICAiMC4wMDIxNDMsIDAuMDAyMTQzLCAwLjAwMjE0NiwgMC4wMDIxNDcsIDAuMDAyMTQ4LCAwLjAwMjE0OCwgMC4wMDIxNDgiLCBcCi0gICAgICAgICAgIjAuMDAyMTQxLCAwLjAwMjE0MiwgMC4wMDIxNDUsIDAuMDAyMTQ2LCAwLjAwMjE0NiwgMC4wMDIxNDcsIDAuMDAyMTQ3IiwgXAotICAgICAgICAgICIwLjAwMjEzOSwgMC4wMDIxNCwgMC4wMDIxNDMsIDAuMDAyMTQ0LCAwLjAwMjE0NSwgMC4wMDIxNDUsIDAuMDAyMTQ1IiwgXAotICAgICAgICAgICIwLjAwMjEzOSwgMC4wMDIxMzksIDAuMDAyMTQyLCAwLjAwMjE0MywgMC4wMDIxNDMsIDAuMDAyMTQ0LCAwLjAwMjE0NCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTkyMywgMC4wMDE5MjQsIDAuMDAxOTI2LCAwLjAwMTkyNywgMC4wMDE5MjcsIDAuMDAxOTI4LCAwLjAwMTkyOCIsIFwKLSAgICAgICAgICAiMC4wMDE5MTgsIDAuMDAxOTE4LCAwLjAwMTkyMSwgMC4wMDE5MjIsIDAuMDAxOTIyLCAwLjAwMTkyMiwgMC4wMDE5MjIiLCBcCi0gICAgICAgICAgIjAuMDAxOTE0LCAwLjAwMTkxNSwgMC4wMDE5MTgsIDAuMDAxOTE4LCAwLjAwMTkxOCwgMC4wMDE5MTksIDAuMDAxOTE5IiwgXAotICAgICAgICAgICIwLjAwMTkxMiwgMC4wMDE5MTMsIDAuMDAxOTE1LCAwLjAwMTkxNiwgMC4wMDE5MTYsIDAuMDAxOTE2LCAwLjAwMTkxNyIsIFwKLSAgICAgICAgICAiMC4wMDE5MSwgMC4wMDE5MTEsIDAuMDAxOTEzLCAwLjAwMTkxNCwgMC4wMDE5MTQsIDAuMDAxOTE0LCAwLjAwMTkxNSIsIFwKLSAgICAgICAgICAiMC4wMDE5MDcsIDAuMDAxOTA4LCAwLjAwMTkxLCAwLjAwMTkxMSwgMC4wMDE5MTEsIDAuMDAxOTEyLCAwLjAwMTkxMiIsIFwKLSAgICAgICAgICAiMC4wMDE5MDUsIDAuMDAxOTA1LCAwLjAwMTkwOCwgMC4wMDE5MDksIDAuMDAxOTA5LCAwLjAwMTkwOSwgMC4wMDE5MDkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJHIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI4NSwgMC4wMDI4NTEsIDAuMDAyODU0LCAwLjAwMjg1NSwgMC4wMDI4NTUsIDAuMDAyODU2LCAwLjAwMjg1NiIsIFwKLSAgICAgICAgICAiMC4wMDI4NDQsIDAuMDAyODQ0LCAwLjAwMjg0NywgMC4wMDI4NDgsIDAuMDAyODQ4LCAwLjAwMjg0OSwgMC4wMDI4NDkiLCBcCi0gICAgICAgICAgIjAuMDAyODM4LCAwLjAwMjgzOSwgMC4wMDI4NDIsIDAuMDAyODQzLCAwLjAwMjg0MywgMC4wMDI4NDMsIDAuMDAyODQzIiwgXAotICAgICAgICAgICIwLjAwMjgzNSwgMC4wMDI4MzUsIDAuMDAyODM4LCAwLjAwMjgzOSwgMC4wMDI4MzksIDAuMDAyODM5LCAwLjAwMjg0IiwgXAotICAgICAgICAgICIwLjAwMjgzMywgMC4wMDI4MzMsIDAuMDAyODM2LCAwLjAwMjgzNywgMC4wMDI4MzcsIDAuMDAyODM4LCAwLjAwMjgzOCIsIFwKLSAgICAgICAgICAiMC4wMDI4MywgMC4wMDI4MzEsIDAuMDAyODM0LCAwLjAwMjgzNSwgMC4wMDI4MzUsIDAuMDAyODM2LCAwLjAwMjgzNSIsIFwKLSAgICAgICAgICAiMC4wMDI4MjcsIDAuMDAyODI4LCAwLjAwMjgzMSwgMC4wMDI4MzIsIDAuMDAyODMyLCAwLjAwMjgzMiwgMC4wMDI4MzMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI2OTMsIDAuMDAyNjk0LCAwLjAwMjY5NiwgMC4wMDI2OTcsIDAuMDAyNjk3LCAwLjAwMjY5NywgMC4wMDI2OTgiLCBcCi0gICAgICAgICAgIjAuMDAyNjg3LCAwLjAwMjY4OCwgMC4wMDI2OSwgMC4wMDI2OTEsIDAuMDAyNjkxLCAwLjAwMjY5MSwgMC4wMDI2OTEiLCBcCi0gICAgICAgICAgIjAuMDAyNjgxLCAwLjAwMjY4MiwgMC4wMDI2ODQsIDAuMDAyNjg1LCAwLjAwMjY4NSwgMC4wMDI2ODUsIDAuMDAyNjg2IiwgXAotICAgICAgICAgICIwLjAwMjY3OSwgMC4wMDI2NzksIDAuMDAyNjgyLCAwLjAwMjY4MiwgMC4wMDI2ODIsIDAuMDAyNjgzLCAwLjAwMjY4MyIsIFwKLSAgICAgICAgICAiMC4wMDI2NzcsIDAuMDAyNjc4LCAwLjAwMjY4LCAwLjAwMjY4MSwgMC4wMDI2ODEsIDAuMDAyNjgyLCAwLjAwMjY4MiIsIFwKLSAgICAgICAgICAiMC4wMDI2NzYsIDAuMDAyNjc3LCAwLjAwMjY3OSwgMC4wMDI2OCwgMC4wMDI2OCwgMC4wMDI2OCwgMC4wMDI2OCIsIFwKLSAgICAgICAgICAiMC4wMDI2NzQsIDAuMDAyNjc1LCAwLjAwMjY3NywgMC4wMDI2NzgsIDAuMDAyNjc4LCAwLjAwMjY3OSwgMC4wMDI2NzgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzNDk2LCAwLjAwMzQ5NywgMC4wMDM1LCAwLjAwMzUwMSwgMC4wMDM1MDEsIDAuMDAzNTAxLCAwLjAwMzUwMSIsIFwKLSAgICAgICAgICAiMC4wMDM0ODksIDAuMDAzNDksIDAuMDAzNDkzLCAwLjAwMzQ5NCwgMC4wMDM0OTQsIDAuMDAzNDk0LCAwLjAwMzQ5NSIsIFwKLSAgICAgICAgICAiMC4wMDM0ODUsIDAuMDAzNDg2LCAwLjAwMzQ4OSwgMC4wMDM0OSwgMC4wMDM0OSwgMC4wMDM0OSwgMC4wMDM0OSIsIFwKLSAgICAgICAgICAiMC4wMDM0ODIsIDAuMDAzNDgzLCAwLjAwMzQ4NiwgMC4wMDM0ODYsIDAuMDAzNDg3LCAwLjAwMzQ4NywgMC4wMDM0ODciLCBcCi0gICAgICAgICAgIjAuMDAzNDgsIDAuMDAzNDgsIDAuMDAzNDgzLCAwLjAwMzQ4NCwgMC4wMDM0ODQsIDAuMDAzNDg1LCAwLjAwMzQ4NSIsIFwKLSAgICAgICAgICAiMC4wMDM0NzcsIDAuMDAzNDc4LCAwLjAwMzQ4MSwgMC4wMDM0ODEsIDAuMDAzNDgyLCAwLjAwMzQ4MiwgMC4wMDM0ODIiLCBcCi0gICAgICAgICAgIjAuMDAzNDc1LCAwLjAwMzQ3NiwgMC4wMDM0NzksIDAuMDAzNDc5LCAwLjAwMzQ4LCAwLjAwMzQ4LCAwLjAwMzQ4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyNjEyLCAwLjAwMjYxMywgMC4wMDI2MTYsIDAuMDAyNjE2LCAwLjAwMjYxNywgMC4wMDI2MTcsIDAuMDAyNjE3IiwgXAotICAgICAgICAgICIwLjAwMjYwNywgMC4wMDI2MDcsIDAuMDAyNjEsIDAuMDAyNjEsIDAuMDAyNjExLCAwLjAwMjYxMSwgMC4wMDI2MTEiLCBcCi0gICAgICAgICAgIjAuMDAyNjAyLCAwLjAwMjYwMywgMC4wMDI2MDUsIDAuMDAyNjA2LCAwLjAwMjYwNiwgMC4wMDI2MDcsIDAuMDAyNjA3IiwgXAotICAgICAgICAgICIwLjAwMjU5OSwgMC4wMDI2LCAwLjAwMjYwMiwgMC4wMDI2MDMsIDAuMDAyNjAzLCAwLjAwMjYwMywgMC4wMDI2MDMiLCBcCi0gICAgICAgICAgIjAuMDAyNTk3LCAwLjAwMjU5OCwgMC4wMDI2LCAwLjAwMjYwMSwgMC4wMDI2MDIsIDAuMDAyNjAyLCAwLjAwMjYwMiIsIFwKLSAgICAgICAgICAiMC4wMDI1OTUsIDAuMDAyNTk2LCAwLjAwMjU5OCwgMC4wMDI1OTksIDAuMDAyNTk5LCAwLjAwMjYsIDAuMDAyNTk5IiwgXAotICAgICAgICAgICIwLjAwMjU5MywgMC4wMDI1OTQsIDAuMDAyNTk2LCAwLjAwMjU5NywgMC4wMDI1OTcsIDAuMDAyNTk3LCAwLjAwMjU5OCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDEyMywgMC4wMDEyMzEsIDAuMDAxMjMzLCAwLjAwMTIzNCwgMC4wMDEyMzQsIDAuMDAxMjM0LCAwLjAwMTIzNCIsIFwKLSAgICAgICAgICAiMC4wMDEyMjUsIDAuMDAxMjI2LCAwLjAwMTIyOCwgMC4wMDEyMjksIDAuMDAxMjI5LCAwLjAwMTIzLCAwLjAwMTIyOSIsIFwKLSAgICAgICAgICAiMC4wMDEyMjEsIDAuMDAxMjIyLCAwLjAwMTIyNCwgMC4wMDEyMjUsIDAuMDAxMjI1LCAwLjAwMTIyNSwgMC4wMDEyMjUiLCBcCi0gICAgICAgICAgIjAuMDAxMjE4LCAwLjAwMTIxOSwgMC4wMDEyMjEsIDAuMDAxMjIyLCAwLjAwMTIyMiwgMC4wMDEyMjIsIDAuMDAxMjIzIiwgXAotICAgICAgICAgICIwLjAwMTIxNiwgMC4wMDEyMTcsIDAuMDAxMjE5LCAwLjAwMTIyLCAwLjAwMTIyLCAwLjAwMTIyMSwgMC4wMDEyMjEiLCBcCi0gICAgICAgICAgIjAuMDAxMjE0LCAwLjAwMTIxNSwgMC4wMDEyMTgsIDAuMDAxMjE4LCAwLjAwMTIxOSwgMC4wMDEyMTksIDAuMDAxMjE5IiwgXAotICAgICAgICAgICIwLjAwMTIxMywgMC4wMDEyMTQsIDAuMDAxMjE2LCAwLjAwMTIxNywgMC4wMDEyMTcsIDAuMDAxMjE4LCAwLjAwMTIxOCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjI0OCwgMC4wMDIyNDksIDAuMDAyMjUsIDAuMDAyMjUxLCAwLjAwMjI1MSwgMC4wMDIyNTEsIDAuMDAyMjUxIiwgXAotICAgICAgICAgICIwLjAwMjI0NCwgMC4wMDIyNDUsIDAuMDAyMjQ2LCAwLjAwMjI0NiwgMC4wMDIyNDcsIDAuMDAyMjQ3LCAwLjAwMjI0NyIsIFwKLSAgICAgICAgICAiMC4wMDIyMzksIDAuMDAyMjM5LCAwLjAwMjI0MSwgMC4wMDIyNDEsIDAuMDAyMjQyLCAwLjAwMjI0MiwgMC4wMDIyNDIiLCBcCi0gICAgICAgICAgIjAuMDAyMjMzLCAwLjAwMjIzNCwgMC4wMDIyMzYsIDAuMDAyMjM3LCAwLjAwMjIzNywgMC4wMDIyMzcsIDAuMDAyMjM3IiwgXAotICAgICAgICAgICIwLjAwMjIyOCwgMC4wMDIyMjksIDAuMDAyMjMxLCAwLjAwMjIzMiwgMC4wMDIyMzIsIDAuMDAyMjMzLCAwLjAwMjIzMyIsIFwKLSAgICAgICAgICAiMC4wMDIyMjMsIDAuMDAyMjI0LCAwLjAwMjIyNiwgMC4wMDIyMjgsIDAuMDAyMjI4LCAwLjAwMjIyOCwgMC4wMDIyMjgiLCBcCi0gICAgICAgICAgIjAuMDAyMjE4LCAwLjAwMjIxOSwgMC4wMDIyMjIsIDAuMDAyMjIzLCAwLjAwMjIyNCwgMC4wMDIyMjQsIDAuMDAyMjI0Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihSTikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwOTMxNzg7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwOTI1NzMyOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDkzMTc4OwotICAgIGNsb2NrIDogdHJ1ZTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAzMzEsIDAuMDAwMzMsIDAuMDAwMzMsIDAuMDAwMzMsIDAuMDAwMzMsIDAuMDAwMzMsIDAuMDAwMzMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAzMzMsIDAuMDAwMzMyLCAwLjAwMDMzMiwgMC4wMDAzMzIsIDAuMDAwMzMyLCAwLjAwMDMzMiwgMC4wMDAzMzIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfZmFsbGluZzsKLSAgICAgIHdoZW4gOiAiRCZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzFfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4xODc1LCAtMC4xNzYyNSwgLTAuMTYzNzUsIC0wLjE2Mzc1LCAtMC4xNywgLTAuMTg1LCAtMC4yMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMTk4NzUsIC0wLjE4NzUsIC0wLjE3NSwgLTAuMTc1LCAtMC4xODEyNSwgLTAuMTk2MjUsIC0wLjIxMjUiLCBcCi0gICAgICAgICAgIi0wLjIxMTI1LCAtMC4yLCAtMC4xODc1LCAtMC4xODc1LCAtMC4xOTM3NSwgLTAuMjA4NzUsIC0wLjIyNSIsIFwKLSAgICAgICAgICAiLTAuMjIzNzUsIC0wLjIxMjUsIC0wLjIsIC0wLjIsIC0wLjIwNjI1LCAtMC4yMjEyNSwgLTAuMjM3NSIsIFwKLSAgICAgICAgICAiLTAuMjM2MjUsIC0wLjIzMTI1LCAtMC4yMTg3NSwgLTAuMjEyNSwgLTAuMjE4NzUsIC0wLjI0LCAtMC4yNTYyNSIsIFwKLSAgICAgICAgICAiLTAuMjU4NzUsIC0wLjI0NzUsIC0wLjI0MTI1LCAtMC4yMzUsIC0wLjI0MTI1LCAtMC4yNTYyNSwgLTAuMjcyNSIsIFwKLSAgICAgICAgICAiLTAuMjgsIC0wLjI2ODc1LCAtMC4yNTYyNSwgLTAuMjU2MjUsIC0wLjI2MjUsIC0wLjI3NzUsIC0wLjI5Mzc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRCZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjQxOTE3OCwgMC40MzA4MTUsIDAuNDQ0NzQsIDAuNDU4NTI3LCAwLjQ3MTE3OCwgMC40OTA4MTEsIDAuNTA4MDY5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkciOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9mYWxsaW5nOwotICAgICAgd2hlbiA6ICJEJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMV9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIxMjUsIDAuMjAxMjUsIDAuMTg4NzUsIDAuMTgyNSwgMC4xODI1LCAwLjIwMzc1LCAwLjIyNjI1IiwgXAotICAgICAgICAgICIwLjIyMzc1LCAwLjIxMjUsIDAuMiwgMC4xOTM3NSwgMC4xOTM3NSwgMC4yMTUsIDAuMjM3NSIsIFwKLSAgICAgICAgICAiMC4yMzYyNSwgMC4yMjUsIDAuMjEyNSwgMC4yMDYyNSwgMC4yMDYyNSwgMC4yMjc1LCAwLjI1IiwgXAotICAgICAgICAgICIwLjI0ODc1LCAwLjIzNzUsIDAuMjI1LCAwLjIxODc1LCAwLjIyNSwgMC4yNCwgMC4yNjg3NSIsIFwKLSAgICAgICAgICAiMC4yNjc1LCAwLjI1NjI1LCAwLjIzNzUsIDAuMjMxMjUsIDAuMjM3NSwgMC4yNTI1LCAwLjI4MTI1IiwgXAotICAgICAgICAgICIwLjI5LCAwLjI3MjUsIDAuMjYsIDAuMjUzNzUsIDAuMjYsIDAuMjc1LCAwLjI5NzUiLCBcCi0gICAgICAgICAgIjAuMzA1LCAwLjI5Mzc1LCAwLjI4MTI1LCAwLjI3NSwgMC4yNzUsIDAuMjk2MjUsIDAuMzE4NzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFNOKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA1NDk5Mzc7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNTQ5OTM3OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDU0ODUzOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDE2NSwgMC4wMDAxNjUsIDAuMDAwMTY1LCAwLjAwMDE2NSwgMC4wMDAxNjUsIDAuMDAwMTY1LCAwLjAwMDE2NSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDE2OCwgMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQiOwotICAgICAgc2RmX2NvbmQgOiAiRCA9PSAxJ2IwIjsKLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjIzMTM4NSwgMC4yNDMwNjcsIDAuMjU3NjkyLCAwLjI3MjQyNywgMC4yODczNDMsIDAuMzEwNzQyLCAwLjMzMDMwMyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJHIjsKLSAgICAgIHRpbWluZ190eXBlIDogcmVjb3ZlcnlfZmFsbGluZzsKLSAgICAgIHdoZW4gOiAiIUQmUk4iOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1JOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQocmVjb3ZlcnlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEyNSwgMC4wMDEyNSwgLTAuMDExMjUsIC0wLjAyMzc1LCAtMC4wMzYyNSwgLTAuMDU4NzUsIC0wLjA3Mzc1IiwgXAotICAgICAgICAgICIwLjAyMzc1LCAwLjAxMjUsIDAsIC0wLjAxMjUsIC0wLjAyNSwgLTAuMDQ3NSwgLTAuMDYyNSIsIFwKLSAgICAgICAgICAiMC4wMzYyNSwgMC4wMjUsIDAuMDEyNSwgMCwgLTAuMDEyNSwgLTAuMDM1LCAtMC4wNSIsIFwKLSAgICAgICAgICAiMC4wNDg3NSwgMC4wMzc1LCAwLjAyNSwgMC4wMTI1LCAwLCAtMC4wMjI1LCAtMC4wMzc1IiwgXAotICAgICAgICAgICIwLjA2MTI1LCAwLjA1LCAwLjAzNzUsIDAuMDI1LCAwLjAxMjUsIC0wLjAxLCAtMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMDgzNzUsIDAuMDcyNSwgMC4wNiwgMC4wNDEyNSwgMC4wMjg3NSwgMC4wMTI1LCAtMC4wMDg3NSIsIFwKLSAgICAgICAgICAiMC4wOTg3NSwgMC4wODc1LCAwLjA3NSwgMC4wNjI1LCAwLjA0Mzc1LCAwLjAyNzUsIDAuMDEyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJlY292ZXJ5X3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUciOwotICAgICAgc2RmX2NvbmQgOiAiRyA9PSAxJ2IwIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChyZWNvdmVyeV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTg3NSwgMC4wMDc1LCAtMC4wMDUsIC0wLjAxNzUsIC0wLjAzLCAtMC4wNCwgLTAuMDQ4NzUiLCBcCi0gICAgICAgICAgIjAuMDMsIDAuMDE4NzUsIDAuMDA2MjUsIC0wLjAwNjI1LCAtMC4wMTg3NSwgLTAuMDI4NzUsIC0wLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjA0MjUsIDAuMDMxMjUsIDAuMDE4NzUsIDAuMDA2MjUsIDAsIC0wLjAxNjI1LCAtMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4wNTUsIDAuMDQzNzUsIDAuMDMxMjUsIDAuMDE4NzUsIDAuMDEyNSwgLTAuMDAzNzUsIC0wLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMDY3NSwgMC4wNTYyNSwgMC4wNDM3NSwgMC4wMzEyNSwgMC4wMjUsIDAuMDA4NzUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICIwLjA4Mzc1LCAwLjA3MjUsIDAuMDYsIDAuMDQ3NSwgMC4wNDEyNSwgMC4wMjUsIDAuMDE2MjUiLCBcCi0gICAgICAgICAgIjAuMDk4NzUsIDAuMDg3NSwgMC4wNzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNCwgMC4wMzEyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJHIjsKLSAgICAgIHRpbWluZ190eXBlIDogcmVtb3ZhbF9mYWxsaW5nOwotICAgICAgd2hlbiA6ICIhRCZSTiI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fUk5fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChyZW1vdmFsX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzNzUsIDAuMDQ4NzUsIDAuMDY3NSwgMC4wOCwgMC4wOTI1LCAwLjExNSwgMC4xMyIsIFwKLSAgICAgICAgICAiMC4wMjYyNSwgMC4wMzc1LCAwLjA1LCAwLjA2ODc1LCAwLjA4MTI1LCAwLjEwMzc1LCAwLjExODc1IiwgXAotICAgICAgICAgICIwLjAxMzc1LCAwLjAyNSwgMC4wMzc1LCAwLjA1NjI1LCAwLjA2ODc1LCAwLjA5MTI1LCAwLjEwNjI1IiwgXAotICAgICAgICAgICIwLjAwMTI1LCAwLjAxMjUsIDAuMDI1LCAwLjA0Mzc1LCAwLjA1NjI1LCAwLjA3ODc1LCAwLjA5Mzc1IiwgXAotICAgICAgICAgICItMC4wMTEyNSwgMCwgMC4wMTI1LCAwLjAzMTI1LCAwLjA0Mzc1LCAwLjA2NjI1LCAwLjA4MTI1IiwgXAotICAgICAgICAgICItMC4wMjc1LCAtMC4wMTYyNSwgLTAuMDAzNzUsIDAuMDA4NzUsIDAuMDI3NSwgMC4wNSwgMC4wNjUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgMCwgMC4wMTI1LCAwLjAzNSwgMC4wNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJlbW92YWxfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRyI7Ci0gICAgICBzZGZfY29uZCA6ICJHID09IDEnYjAiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHJlbW92YWxfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDI1LCAwLjAzNjI1LCAwLjA0ODc1LCAwLjA2MTI1LCAwLjA3Mzc1LCAwLjA5LCAwLjEwNSIsIFwKLSAgICAgICAgICAiMC4wMTM3NSwgMC4wMjUsIDAuMDM3NSwgMC4wNSwgMC4wNjI1LCAwLjA3ODc1LCAwLjA5Mzc1IiwgXAotICAgICAgICAgICIwLjAwMTI1LCAwLjAxMjUsIDAuMDI1LCAwLjAzNzUsIDAuMDUsIDAuMDY2MjUsIDAuMDgxMjUiLCBcCi0gICAgICAgICAgIi0wLjAxMTI1LCAwLCAwLjAxMjUsIDAuMDI1LCAwLjAzNzUsIDAuMDUzNzUsIDAuMDY4NzUiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTI1LCAwLCAwLjAxMjUsIDAuMDI1LCAwLjA0MTI1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICItMC4wNCwgLTAuMDI4NzUsIC0wLjAxNjI1LCAtMC4wMDM3NSwgMC4wMDg3NSwgMC4wMjUsIDAuMDQiLCBcCi0gICAgICAgICAgIi0wLjA1NSwgLTAuMDQzNzUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAuMDEsIDAuMDI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBUTEFUWDEgKgotICogLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChUTEFUWDEpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4yMDQxNzE7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgbGF0Y2ggKFFJTlQsTjApIHsKLSAgICBkYXRhX2luIDogIkQiOwotICAgIGVuYWJsZSA6ICJHIjsKLSAgfQotICBwaW4oRCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNTgxMTQzOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDU3OTY0MjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA1ODExNDM7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMTU5LCAwLjAwMDE2MSwgMC4wMDAxNjEsIDAuMDAwMTYyLCAwLjAwMDE2MiwgMC4wMDAxNjIsIDAuMDAwMTYyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMTY2LCAwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkciOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX2ZhbGxpbmc7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDM3NSwgLTAuMDIsIC0wLjAwNzUsIDAuMDA1LCAwLjAyMzc1LCAwLjA0NjI1LCAwLjA2MTI1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDM3NSwgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLjAxMjUsIDAuMDM1LCAwLjA1IiwgXAotICAgICAgICAgICItMC4wNjEyNSwgLTAuMDUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAuMDE2MjUsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDczNzUsIC0wLjA2MjUsIC0wLjA1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIDAuMDAzNzUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjA4NjI1LCAtMC4wNzUsIC0wLjA2MjUsIC0wLjA0Mzc1LCAtMC4wMzEyNSwgLTAuMDA4NzUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjEwODc1LCAtMC4wOTc1LCAtMC4wODUsIC0wLjA2NjI1LCAtMC4wNTM3NSwgLTAuMDMxMjUsIC0wLjAxNjI1IiwgXAotICAgICAgICAgICItMC4xMywgLTAuMTE4NzUsIC0wLjEsIC0wLjA4NzUsIC0wLjA3NSwgLTAuMDUyNSwgLTAuMDMxMjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wNjI1LCAtMC4wNTEyNSwgLTAuMDQ1LCAtMC4wMzI1LCAtMC4wMjYyNSwgLTAuMDE2MjUsIC0wLjAwNzUiLCBcCi0gICAgICAgICAgIi0wLjA3Mzc1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAyNzUsIC0wLjAxODc1IiwgXAotICAgICAgICAgICItMC4wODYyNSwgLTAuMDc1LCAtMC4wNjg3NSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNCwgLTAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjA5ODc1LCAtMC4wOTM3NSwgLTAuMDgxMjUsIC0wLjA2ODc1LCAtMC4wNjI1LCAtMC4wNTI1LCAtMC4wNDM3NSIsIFwKLSAgICAgICAgICAiLTAuMTExMjUsIC0wLjEsIC0wLjA5Mzc1LCAtMC4wODEyNSwgLTAuMDc1LCAtMC4wNjUsIC0wLjA1NjI1IiwgXAotICAgICAgICAgICItMC4xMzM3NSwgLTAuMTIyNSwgLTAuMTEsIC0wLjEwMzc1LCAtMC4wOTEyNSwgLTAuMDgxMjUsIC0wLjA3MjUiLCBcCi0gICAgICAgICAgIi0wLjE0ODc1LCAtMC4xMzc1LCAtMC4xMjUsIC0wLjExODc1LCAtMC4xMDYyNSwgLTAuMDk2MjUsIC0wLjA4NzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX2ZhbGxpbmc7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDYyNSwgMC4wNTEyNSwgMC4wMzg3NSwgMC4wMiwgMC4wMDc1LCAtMC4wMTUsIC0wLjAzNjI1IiwgXAotICAgICAgICAgICIwLjA3Mzc1LCAwLjA2MjUsIDAuMDUsIDAuMDMxMjUsIDAuMDE4NzUsIC0wLjAwMzc1LCAtMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMDkyNSwgMC4wNzUsIDAuMDYyNSwgMC4wNDM3NSwgMC4wMzEyNSwgMC4wMDg3NSwgLTAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4xMDUsIDAuMDg3NSwgMC4wNzUsIDAuMDU2MjUsIDAuMDQzNzUsIDAuMDIxMjUsIDAiLCBcCi0gICAgICAgICAgIjAuMTE3NSwgMC4xMDYyNSwgMC4wODc1LCAwLjA2ODc1LCAwLjA1NjI1LCAwLjAzMzc1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMTMzNzUsIDAuMTIyNSwgMC4xMSwgMC4wOTEyNSwgMC4wNzg3NSwgMC4wNTYyNSwgMC4wMzUiLCBcCi0gICAgICAgICAgIjAuMTU1LCAwLjE0Mzc1LCAwLjEyNSwgMC4xMTI1LCAwLjA5Mzc1LCAwLjA3MTI1LCAwLjA1NjI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDkzNzUsIDAuMDgyNSwgMC4wNywgMC4wNjM3NSwgMC4wNTc1LCAwLjA0NzUsIDAuMDQ1IiwgXAotICAgICAgICAgICIwLjEwNSwgMC4wOTM3NSwgMC4wODEyNSwgMC4wNzUsIDAuMDY4NzUsIDAuMDU4NzUsIDAuMDUiLCBcCi0gICAgICAgICAgIjAuMTE3NSwgMC4xMDYyNSwgMC4wOTM3NSwgMC4wODc1LCAwLjA4MTI1LCAwLjA3MTI1LCAwLjA2MjUiLCBcCi0gICAgICAgICAgIjAuMTMsIDAuMTE4NzUsIDAuMTA2MjUsIDAuMSwgMC4wOTM3NSwgMC4wODM3NSwgMC4wNzUiLCBcCi0gICAgICAgICAgIjAuMTQyNSwgMC4xMzEyNSwgMC4xMTg3NSwgMC4xMDYyNSwgMC4xLCAwLjA5NjI1LCAwLjA4NzUiLCBcCi0gICAgICAgICAgIjAuMTU4NzUsIDAuMTQ3NSwgMC4xMzUsIDAuMTI4NzUsIDAuMTIyNSwgMC4xMTI1LCAwLjEwMzc1IiwgXAotICAgICAgICAgICIwLjE3Mzc1LCAwLjE2MjUsIDAuMTUsIDAuMTQzNzUsIDAuMTM3NSwgMC4xMjc1LCAwLjExODc1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihHKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA1NzU5NzE7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNTc1NjQ3OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDU3NTk3MTsKLSAgICBjbG9jayA6IHRydWU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxNTQ3LCAwLjAwMTUzMywgMC4wMDE1MjEsIDAuMDAxNTE1LCAwLjAwMTUwOSwgMC4wMDE1MDQsIDAuMDAxNTA0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyNjE2LCAwLjAwMjYwNiwgMC4wMDI1OTgsIDAuMDAyNTkyLCAwLjAwMjU4OCwgMC4wMDI1ODQsIDAuMDAyNTgyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkciOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFEIjsKLSAgICAgIHNkZl9jb25kIDogIkQgPT0gMSdiMCI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4zMTk3MDksIDAuMzMxNDgyLCAwLjM0NjgwNCwgMC4zNjIwOTUsIDAuMzc3MiwgMC40MDExNTcsIDAuNDIxMTUyIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihRKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMTMzNzk3OwotICAgIGZ1bmN0aW9uIDogIlFJTlQiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkQiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI2NzQ0OSwgMC4zMDk5NjQsIDAuNTUyOTE5LCAwLjc2NzMxNiwgMS4wNTIxOCwgMS42MjI1NCwgMS45ODAyMSIsIFwKLSAgICAgICAgICAiMC4yNzkyNTgsIDAuMzIxNjc5LCAwLjU2NDYzOSwgMC43Nzg3OCwgMS4wNjM4MiwgMS42MzE5NiwgMS45OTE5MiIsIFwKLSAgICAgICAgICAiMC4yOTMxMTksIDAuMzM1NzM1LCAwLjU3ODY5NywgMC43OTI4MjMsIDEuMDc3ODgsIDEuNjQ2MjcsIDIuMDA2IiwgXAotICAgICAgICAgICIwLjMwNzA2NiwgMC4zNDk0NDcsIDAuNTkyNDUxLCAwLjgwNzA4OSwgMS4wOTE5MiwgMS42NjI0NSwgMi4wMjAwMyIsIFwKLSAgICAgICAgICAiMC4zMjA2NzgsIDAuMzYzMTU1LCAwLjYwNjExOCwgMC44MjA3MzQsIDEuMTA1NjQsIDEuNjc2MTUsIDIuMDMzNzUiLCBcCi0gICAgICAgICAgIjAuMzQyNDQzLCAwLjM4NDk1LCAwLjYyNzI5OCwgMC44NDI0ODUsIDEuMTI3MzMsIDEuNjk4MDQsIDIuMDU1NDIiLCBcCi0gICAgICAgICAgIjAuMzYxMTA0LCAwLjQwMzQ2NCwgMC42NDY0MjMsIDAuODYwOTA0LCAxLjE0NTc0LCAxLjcxNzA2LCAyLjA3NDE2Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE1NjIwMywgMC4yNDI5MDQsIDAuNzQxMDAxLCAxLjE3OTM1LCAxLjc2NDU3LCAyLjkzNDc1LCAzLjY2NTMzIiwgXAotICAgICAgICAgICIwLjE1NjE5NywgMC4yNDM1NjEsIDAuNzQxMDA1LCAxLjE3OTU1LCAxLjc2NDY2LCAyLjkwMzExLCAzLjY2NTQ0IiwgXAotICAgICAgICAgICIwLjE1NjI1NSwgMC4yNDMxMjQsIDAuNzQxMDA1LCAxLjE3OTU1LCAxLjc2NDY0LCAyLjkwNTI1LCAzLjY2NTM5IiwgXAotICAgICAgICAgICIwLjE1NjE4LCAwLjI0MzA1NSwgMC43NDA5ODMsIDEuMTY3NzksIDEuNzY0NjQsIDIuOTM0MjYsIDMuNjY1NjEiLCBcCi0gICAgICAgICAgIjAuMTU2MTk0LCAwLjI0MjU4MiwgMC43NDEwMDcsIDEuMTcwNjMsIDEuNzY0NTcsIDIuOTM0MjksIDMuNjY1NDgiLCBcCi0gICAgICAgICAgIjAuMTU2MjEsIDAuMjQyOTYsIDAuNzQwODIsIDEuMTcyMzEsIDEuNzY0NTcsIDIuOTM0MjMsIDMuNjY1NDMiLCBcCi0gICAgICAgICAgIjAuMTU2MjAzLCAwLjI0MjYyNywgMC43NDEwMjUsIDEuMTc5MzUsIDEuNzY0NTUsIDIuOTM0MzIsIDMuNjY1MTMiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjc0MzcxLCAwLjMyMzY1OSwgMC42MDM1OSwgMC44NTA0OTcsIDEuMTgzOTQsIDEuODQ1MjUsIDIuMjUxODciLCBcCi0gICAgICAgICAgIjAuMjg1NjI2LCAwLjMzNTI4NCwgMC42MTQ5NTUsIDAuODYxOTg0LCAxLjE5NTQ2LCAxLjg1Njc4LCAyLjI2OTM4IiwgXAotICAgICAgICAgICIwLjI5ODYwNywgMC4zNDc5MDUsIDAuNjI3ODQ0LCAwLjg3NDcwNCwgMS4yMDgyNywgMS44NjkyMiwgMi4yODI1MiIsIFwKLSAgICAgICAgICAiMC4zMTEwOTYsIDAuMzYwNDMzLCAwLjY0MjM0OCwgMC44OTA1MTIsIDEuMjIwODQsIDEuODgxODEsIDIuMjk0NjIiLCBcCi0gICAgICAgICAgIjAuMzIzMjc3LCAwLjM3MjU4NiwgMC42NTQ0NDUsIDAuOTAyNjIxLCAxLjIzMjkyLCAxLjg5MzkyLCAyLjMwMTk3IiwgXAotICAgICAgICAgICIwLjM0MjQxLCAwLjM5MTk4OCwgMC42NzE2NjksIDAuOTE4ODQ0LCAxLjI1MjA5LCAxLjkxMjYsIDIuMzI2MjEiLCBcCi0gICAgICAgICAgIjAuMzU4NjYsIDAuNDA4MDExLCAwLjY4NzkxNywgMC45MzUxMTMsIDEuMjY4NDMsIDEuOTI5NTQsIDIuMzQyOTIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTc2NzQ5LCAwLjI3NDU5MiwgMC44MzA5NjMsIDEuMzIwODcsIDEuOTczNTIsIDMuMjgzMywgNC4xMDM5MyIsIFwKLSAgICAgICAgICAiMC4xNzY3NjYsIDAuMjczMjQyLCAwLjgzMDMyMiwgMS4zMjAwOCwgMS45NzI0OSwgMy4yODAwMywgNC4wOTkwOCIsIFwKLSAgICAgICAgICAiMC4xNzY3MDYsIDAuMjc1Mjc3LCAwLjgyODE4NCwgMS4zMjA3MSwgMS45NzM1MSwgMy4yODM2NywgNC4xMDE2NCIsIFwKLSAgICAgICAgICAiMC4xNzY3NTgsIDAuMjc1Mjc5LCAwLjgzMDcxNCwgMS4zMjE1OSwgMS45NzM1NCwgMy4yODM2NywgNC4xMDM1OCIsIFwKLSAgICAgICAgICAiMC4xNzY3MDMsIDAuMjc1MjY0LCAwLjgzMDQ1OSwgMS4zMjEsIDEuOTczNTYsIDMuMjgzNjQsIDQuMDk3NyIsIFwKLSAgICAgICAgICAiMC4xNzYxMDksIDAuMjc0NTUyLCAwLjgzMDI3LCAxLjMxOTkzLCAxLjk3MjY1LCAzLjI4MzM2LCA0LjEwMDEiLCBcCi0gICAgICAgICAgIjAuMTc2NzA2LCAwLjI3NDYzNiwgMC44Mjk3NSwgMS4zMTg4OSwgMS45NzM2NCwgMy4yODM1NSwgNC4xMDI0MiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJHIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5vbl91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcmlzaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjM0MDQ0MywgMC4zODI5MDIsIDAuNjI1NzgsIDAuODQwMjc2LCAxLjEyNTE4LCAxLjY5NjM0LCAyLjA1MzUiLCBcCi0gICAgICAgICAgIjAuMzUyMTYzLCAwLjM5NDYxMSwgMC42MzgxNDIsIDAuODUxNjg0LCAxLjEzNjk1LCAxLjcwNzUxLCAyLjA2NDk5IiwgXAotICAgICAgICAgICIwLjM2NzM1MSwgMC40MTAwMDcsIDAuNjUyMTQsIDAuODY3NTM5LCAxLjE1MjU2LCAxLjcyMjkyLCAyLjA4MDYyIiwgXAotICAgICAgICAgICIwLjM4Mjc2NCwgMC40MjU0NDYsIDAuNjY4MzI2LCAwLjg4MjkzOCwgMS4xNjgwNCwgMS43MzgzMywgMi4wOTYxMyIsIFwKLSAgICAgICAgICAiMC4zOTgyMzksIDAuNDQwNjMsIDAuNjgzNTgsIDAuODk4MDgxLCAxLjE4Mjc5LCAxLjc1NDIyLCAyLjExMTA4IiwgXAotICAgICAgICAgICIwLjQyMjIyNiwgMC40NjQ3NCwgMC43MDc2NDksIDAuOTIxOTg0LCAxLjIwNjkxLCAxLjc3NzUzLCAyLjEzNDg5IiwgXAotICAgICAgICAgICIwLjQ0MjQ5OCwgMC40ODQ5MDYsIDAuNzI3ODYsIDAuOTQyMDE4LCAxLjIyNzA3LCAxLjc5NTE3LCAyLjE1NTEyIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE1NjE4NSwgMC4yNDI4ODMsIDAuNzQxMDIxLCAxLjE3OTI5LCAxLjc2NDQ5LCAyLjkzNDI5LCAzLjY2NTA2IiwgXAotICAgICAgICAgICIwLjE1NjE4MSwgMC4yNDMxNjQsIDAuNzM4OTAxLCAxLjE3MTMsIDEuNzY0NTcsIDIuOTM0NzQsIDMuNjY1NDIiLCBcCi0gICAgICAgICAgIjAuMTU2Mjg0LCAwLjI0MzAzNCwgMC43MzgyMTIsIDEuMTcyMzEsIDEuNzY0NTMsIDIuOTM0MjksIDMuNjY1MzgiLCBcCi0gICAgICAgICAgIjAuMTU2MTE2LCAwLjI0MzAyNSwgMC43NDEwNiwgMS4xNzkyOCwgMS43NjQ1MywgMi45MzQzNCwgMy42NjU0MSIsIFwKLSAgICAgICAgICAiMC4xNTYxODMsIDAuMjQzMzU0LCAwLjc0MTAxNSwgMS4xNzkyOCwgMS43NjQ1NywgMi45MzQzLCAzLjY2NTE5IiwgXAotICAgICAgICAgICIwLjE1NjE3NiwgMC4yNDMwNTUsIDAuNzQxMDA0LCAxLjE3OTQsIDEuNzY0NTgsIDIuOTM0NiwgMy42NjUzNiIsIFwKLSAgICAgICAgICAiMC4xNTYxODQsIDAuMjQzMjg3LCAwLjc0MSwgMS4xNzk1LCAxLjc2NDU5LCAyLjkwODczLCAzLjY2NTM1Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMxOTcwOSwgMC4zNjkxLCAwLjY0OTA5MiwgMC44OTY0MjksIDEuMjI5NDUsIDEuODkwOSwgMi4zMDM1OCIsIFwKLSAgICAgICAgICAiMC4zMzE0ODIsIDAuMzgwNzk1LCAwLjY2MDc3MiwgMC45MDgyNDUsIDEuMjQxMTcsIDEuODk3ODUsIDIuMzE1MzQiLCBcCi0gICAgICAgICAgIjAuMzQ2ODA0LCAwLjM5NjEyOCwgMC42NzYwMTIsIDAuOTIzNDQ3LCAxLjI1MjI3LCAxLjkxNzc1LCAyLjMzMDM3IiwgXAotICAgICAgICAgICIwLjM2MjA5NSwgMC40MTE0MzcsIDAuNjkxMzQ5LCAwLjkzODgxMywgMS4yNzE3MywgMS45MzI5MSwgMi4zNDU4NyIsIFwKLSAgICAgICAgICAiMC4zNzcyLCAwLjQyNjYzMiwgMC43MDY0NDEsIDAuOTUzOTM5LCAxLjI4Njg0LCAxLjk0MjM0LCAyLjM2MTAzIiwgXAotICAgICAgICAgICIwLjQwMTE1NywgMC40NTA0NjYsIDAuNzMwNDAzLCAwLjk3NzkwNywgMS4zMTA4MSwgMS45NjYzMSwgMi4zODUwMSIsIFwKLSAgICAgICAgICAiMC40MjExNTIsIDAuNDcwNDg1LCAwLjc1MDQwMSwgMC45OTc4NzIsIDEuMzMwNzcsIDEuOTkxOTQsIDIuNDA0ODkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTc2MjcyLCAwLjI3NDMwNCwgMC44Mjc5MDMsIDEuMzIwMTIsIDEuOTczNDMsIDMuMjc5MjcsIDQuMDk3OTUiLCBcCi0gICAgICAgICAgIjAuMTc2MjQzLCAwLjI3NDU4NSwgMC44MzA1MzUsIDEuMzIxNCwgMS45NzM3NCwgMy4yNzk0MSwgNC4xMDIyMiIsIFwKLSAgICAgICAgICAiMC4xNzY1NiwgMC4yNzUwNzksIDAuODI4NDI1LCAxLjMyMDA1LCAxLjk3MzAxLCAzLjI4Mjk3LCA0LjEwMjY5IiwgXAotICAgICAgICAgICIwLjE3NTYxMSwgMC4yNzUyMzYsIDAuODMwNDAxLCAxLjMyMDk5LCAxLjk3MzgzLCAzLjI4NDE1LCA0LjEwMjM3IiwgXAotICAgICAgICAgICIwLjE3NTQ1NSwgMC4yNzQ1ODEsIDAuODMwNTkzLCAxLjMyMjUxLCAxLjk3MzgyLCAzLjI4ODU2LCA0LjEwMjMxIiwgXAotICAgICAgICAgICIwLjE3NTcwOCwgMC4yNzQ2MzIsIDAuODMwNzYxLCAxLjMyMjMxLCAxLjk3Mzg0LCAzLjI4ODYsIDQuMTAyMjkiLCBcCi0gICAgICAgICAgIjAuMTc1NDY1LCAwLjI3NTIzOSwgMC44MzAyMzksIDEuMzIxNjIsIDEuOTczODQsIDMuMjg0MTksIDQuMTAyNDUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJEIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDIyNTcsIDAuMDAyMjYyLCAwLjAwMjI2OCwgMC4wMDIyNjksIDAuMDAyMjcsIDAuMDAyMjcsIDAuMDAyMjciLCBcCi0gICAgICAgICAgIjAuMDAyMjUxLCAwLjAwMjI1NiwgMC4wMDIyNjIsIDAuMDAyMjYzLCAwLjAwMjI2NCwgMC4wMDIyNjUsIDAuMDAyMjY0IiwgXAotICAgICAgICAgICIwLjAwMjI0OCwgMC4wMDIyNTIsIDAuMDAyMjU4LCAwLjAwMjI2LCAwLjAwMjI2MSwgMC4wMDIyNjEsIDAuMDAyMjYxIiwgXAotICAgICAgICAgICIwLjAwMjI0NSwgMC4wMDIyNSwgMC4wMDIyNTYsIDAuMDAyMjU3LCAwLjAwMjI1OCwgMC4wMDIyNTgsIDAuMDAyMjU4IiwgXAotICAgICAgICAgICIwLjAwMjI0NCwgMC4wMDIyNDgsIDAuMDAyMjU1LCAwLjAwMjI1NiwgMC4wMDIyNTYsIDAuMDAyMjU3LCAwLjAwMjI1OCIsIFwKLSAgICAgICAgICAiMC4wMDIyNDEsIDAuMDAyMjQ2LCAwLjAwMjI1MiwgMC4wMDIyNTMsIDAuMDAyMjUzLCAwLjAwMjI1NCwgMC4wMDIyNTUiLCBcCi0gICAgICAgICAgIjAuMDAyMjM4LCAwLjAwMjI0MywgMC4wMDIyNDksIDAuMDAyMjUsIDAuMDAyMjUxLCAwLjAwMjI1MSwgMC4wMDIyNTEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI0NjksIDAuMDAyNDczLCAwLjAwMjQ3OSwgMC4wMDI0OCwgMC4wMDI0OCwgMC4wMDI0ODEsIDAuMDAyNDgxIiwgXAotICAgICAgICAgICIwLjAwMjQ2NiwgMC4wMDI0NywgMC4wMDI0NzYsIDAuMDAyNDc3LCAwLjAwMjQ3OCwgMC4wMDI0NzgsIDAuMDAyNDc4IiwgXAotICAgICAgICAgICIwLjAwMjQ2MywgMC4wMDI0NjgsIDAuMDAyNDc0LCAwLjAwMjQ3NSwgMC4wMDI0NzUsIDAuMDAyNDc2LCAwLjAwMjQ3NiIsIFwKLSAgICAgICAgICAiMC4wMDI0NjIsIDAuMDAyNDY3LCAwLjAwMjQ3MiwgMC4wMDI0NzMsIDAuMDAyNDc0LCAwLjAwMjQ3NCwgMC4wMDI0NzQiLCBcCi0gICAgICAgICAgIjAuMDAyNDYxLCAwLjAwMjQ2NSwgMC4wMDI0NzEsIDAuMDAyNDcyLCAwLjAwMjQ3MywgMC4wMDI0NzMsIDAuMDAyNDczIiwgXAotICAgICAgICAgICIwLjAwMjQ1OSwgMC4wMDI0NjMsIDAuMDAyNDY5LCAwLjAwMjQ3LCAwLjAwMjQ3MSwgMC4wMDI0NzEsIDAuMDAyNDcxIiwgXAotICAgICAgICAgICIwLjAwMjQ1NywgMC4wMDI0NjIsIDAuMDAyNDY3LCAwLjAwMjQ2OSwgMC4wMDI0NjksIDAuMDAyNDcsIDAuMDAyNDY5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyOTc5LCAwLjAwMjk4MywgMC4wMDI5OSwgMC4wMDI5OTEsIDAuMDAyOTkxLCAwLjAwMjk5MiwgMC4wMDI5OTIiLCBcCi0gICAgICAgICAgIjAuMDAyOTcxLCAwLjAwMjk3NiwgMC4wMDI5ODMsIDAuMDAyOTg0LCAwLjAwMjk4NCwgMC4wMDI5ODUsIDAuMDAyOTg1IiwgXAotICAgICAgICAgICIwLjAwMjk2NywgMC4wMDI5NzEsIDAuMDAyOTc3LCAwLjAwMjk3OCwgMC4wMDI5NzksIDAuMDAyOTgsIDAuMDAyOTgiLCBcCi0gICAgICAgICAgIjAuMDAyOTYzLCAwLjAwMjk2OCwgMC4wMDI5NzQsIDAuMDAyOTc1LCAwLjAwMjk3NiwgMC4wMDI5NzYsIDAuMDAyOTc3IiwgXAotICAgICAgICAgICIwLjAwMjk2LCAwLjAwMjk2NSwgMC4wMDI5NzEsIDAuMDAyOTcyLCAwLjAwMjk3MywgMC4wMDI5NzMsIDAuMDAyOTc0IiwgXAotICAgICAgICAgICIwLjAwMjk1OCwgMC4wMDI5NjIsIDAuMDAyOTY4LCAwLjAwMjk3LCAwLjAwMjk3LCAwLjAwMjk3MSwgMC4wMDI5NzEiLCBcCi0gICAgICAgICAgIjAuMDAyOTU3LCAwLjAwMjk2MSwgMC4wMDI5NjcsIDAuMDAyOTY5LCAwLjAwMjk2OSwgMC4wMDI5NywgMC4wMDI5NyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjk4MSwgMC4wMDI5ODMsIDAuMDAyOTc4LCAwLjAwMjk3NSwgMC4wMDI5NzMsIDAuMDAyOTcyLCAwLjAwMjk3MSIsIFwKLSAgICAgICAgICAiMC4wMDI5NzMsIDAuMDAyOTc1LCAwLjAwMjk3MSwgMC4wMDI5NjgsIDAuMDAyOTY2LCAwLjAwMjk2NCwgMC4wMDI5NjQiLCBcCi0gICAgICAgICAgIjAuMDAyOTY3LCAwLjAwMjk2OSwgMC4wMDI5NjQsIDAuMDAyOTYyLCAwLjAwMjk1OSwgMC4wMDI5NTgsIDAuMDAyOTU4IiwgXAotICAgICAgICAgICIwLjAwMjk2MywgMC4wMDI5NjQsIDAuMDAyOTYsIDAuMDAyOTU4LCAwLjAwMjk1NSwgMC4wMDI5NTMsIDAuMDAyOTUzIiwgXAotICAgICAgICAgICIwLjAwMjk1OCwgMC4wMDI5NiwgMC4wMDI5NTYsIDAuMDAyOTUzLCAwLjAwMjk1MSwgMC4wMDI5NDksIDAuMDAyOTQ4IiwgXAotICAgICAgICAgICIwLjAwMjk1NCwgMC4wMDI5NTYsIDAuMDAyOTUyLCAwLjAwMjk0OSwgMC4wMDI5NDgsIDAuMDAyOTQ2LCAwLjAwMjk0NSIsIFwKLSAgICAgICAgICAiMC4wMDI5NTIsIDAuMDAyOTU0LCAwLjAwMjk1LCAwLjAwMjk0OCwgMC4wMDI5NDYsIDAuMDAyOTQ0LCAwLjAwMjk0MyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUU4pICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4xMzQzMTc7Ci0gICAgZnVuY3Rpb24gOiAiTjAiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkQiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI0Nzk5OCwgMC4yOTEzOCwgMC41MzYxMzUsIDAuNzUyMDIzLCAxLjAzOTczLCAxLjYxNTE1LCAxLjk3NDc4IiwgXAotICAgICAgICAgICIwLjI1OTM2NSwgMC4zMDI3NDUsIDAuNTQ3NTAxLCAwLjc2MzM0NSwgMS4wNTEwMywgMS42MjY0OSwgMS45ODYyNyIsIFwKLSAgICAgICAgICAiMC4yNzIyODMsIDAuMzE1Njg0LCAwLjU2MDQ2MSwgMC43NzYyNDIsIDEuMDYzOTcsIDEuNjM5NDksIDEuOTk5MTciLCBcCi0gICAgICAgICAgIjAuMjg0NzIxLCAwLjMyODA5NCwgMC41NzI3OCwgMC43ODg2NDEsIDEuMDc2MzksIDEuNjUxOSwgMi4wMTE2IiwgXAotICAgICAgICAgICIwLjI5Njk1NSwgMC4zNDAzNTIsIDAuNTg1MDI3LCAwLjgwMDg3NiwgMS4wODg2NSwgMS42NjQxNSwgMi4wMjM3NSIsIFwKLSAgICAgICAgICAiMC4zMTYwODIsIDAuMzU5NDYxLCAwLjYwNDIxNSwgMC44MjAwNTUsIDEuMTA3NzcsIDEuNjgzMzYsIDIuMDQyOTYiLCBcCi0gICAgICAgICAgIjAuMzMyMzgzLCAwLjM3NTc3NiwgMC42MjA1NCwgMC44MzYzMjksIDEuMTI0MDgsIDEuNjk5NTYsIDIuMDU5MTciKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTY2MTM0LCAwLjI1MDkwNCwgMC43NDMzOCwgMS4xODEzMywgMS43NzA4MywgMi45NDIxMywgMy42NjgxIiwgXAotICAgICAgICAgICIwLjE2NjAyMiwgMC4yNTEwMDksIDAuNzQzNDQ1LCAxLjE4MjA5LCAxLjc3MDQzLCAyLjk0MTk3LCAzLjY3NDk1IiwgXAotICAgICAgICAgICIwLjE2NjE1MywgMC4yNTExNDgsIDAuNzQzNSwgMS4xODI1NCwgMS43NzA0MiwgMi45NDIzNCwgMy42NzQ3MiIsIFwKLSAgICAgICAgICAiMC4xNjYxMzYsIDAuMjUxMTY0LCAwLjc0NTM3OCwgMS4xODQ2OSwgMS43NzA0NSwgMi45NDIzMiwgMy42NzQ4MSIsIFwKLSAgICAgICAgICAiMC4xNjYxNDgsIDAuMjUxMTUzLCAwLjc0NTM0NiwgMS4xODQ2LCAxLjc3MDQ2LCAyLjk0MjI4LCAzLjY3NDA0IiwgXAotICAgICAgICAgICIwLjE2NjA4MSwgMC4yNTA5ODUsIDAuNzQzNDQ2LCAxLjE4MTk1LCAxLjc3MDUzLCAyLjk0MjksIDMuNjc0OCIsIFwKLSAgICAgICAgICAiMC4xNjYxNDMsIDAuMjUwOTIzLCAwLjc0MzM1NSwgMS4xODI0OSwgMS43NzA1MiwgMi45NDIxOCwgMy42NzQwOCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yNjE2NzIsIDAuMzExMjIsIDAuNTkxMjQzLCAwLjgzODIzNywgMS4xNjc0MSwgMS44MjU4MiwgMi4yMzc0NCIsIFwKLSAgICAgICAgICAiMC4yNzM0MDMsIDAuMzIyOTU1LCAwLjYwMjk3MywgMC44NDk5MzUsIDEuMTc5MTQsIDEuODM3NiwgMi4yNDkxNyIsIFwKLSAgICAgICAgICAiMC4yODc0NSwgMC4zMzcwMTQsIDAuNjE3MDMyLCAwLjg2Mzk5MiwgMS4xOTMyLCAxLjg1MTY2LCAyLjI2MzIzIiwgXAotICAgICAgICAgICIwLjMwMTE3MywgMC4zNTA3MzcsIDAuNjMwNzY0LCAwLjg3Nzc5NywgMS4yMDY5NSwgMS44NjUzNywgMi4yNzY5OSIsIFwKLSAgICAgICAgICAiMC4zMTQ4NjYsIDAuMzY0NDE3LCAwLjY0NDQ0LCAwLjg5MTQ2OSwgMS4yMjA2NCwgMS44NzkwNSwgMi4yOTA2NyIsIFwKLSAgICAgICAgICAiMC4zMzY2NDksIDAuMzg2MjEsIDAuNjY2MjU1LCAwLjkxMzI1NSwgMS4yNDI0MiwgMS45MDA4NSwgMi4zMTI0NSIsIFwKLSAgICAgICAgICAiMC4zNTUyNTgsIDAuNDA0Nzk0LCAwLjY4NDgzMiwgMC45MzE4NCwgMS4yNjEwMSwgMS45MTk1MiwgMi4zMzEwNyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xODIzOTcsIDAuMjc4MjM5LCAwLjgzMTM1NCwgMS4zMjE3NiwgMS45NzUyNiwgMy4yODI2NSwgNC4xMDAyNiIsIFwKLSAgICAgICAgICAiMC4xODIzODUsIDAuMjc4MDYsIDAuODMxMzQ5LCAxLjMyMTYxLCAxLjk3NTIxLCAzLjI4MDk1LCA0LjEwMDIzIiwgXAotICAgICAgICAgICIwLjE4MjM3NSwgMC4yNzgwMTgsIDAuODMxMzQ5LCAxLjMyMTYsIDEuOTc1MjIsIDMuMjgwOTIsIDQuMTAwMjQiLCBcCi0gICAgICAgICAgIjAuMTgyMzc4LCAwLjI3ODI2LCAwLjgzMTM4MywgMS4zMjAwMywgMS45NzUyOSwgMy4yODI4NiwgNC4xMDAyNiIsIFwKLSAgICAgICAgICAiMC4xODIzNzUsIDAuMjc3NjAxLCAwLjgzMTM1OCwgMS4zMTk4OCwgMS45NzUzMiwgMy4yODI4NSwgNC4xMDAzMiIsIFwKLSAgICAgICAgICAiMC4xODIzNjEsIDAuMjc4MjMzLCAwLjgzMDEzNiwgMS4zMTk4MiwgMS45NzUzLCAzLjI4Mjg5LCA0LjEwMDMiLCBcCi0gICAgICAgICAgIjAuMTgyMzgzLCAwLjI3Nzc0OCwgMC44MzEzMiwgMS4zMjE3NywgMS45NzUyNywgMy4yODMwMSwgNC4xMDA0MSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJHIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5vbl91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcmlzaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI5MzU5NCwgMC4zMzY5MTMsIDAuNTgxNDIzLCAwLjc5NzE3MywgMS4wODQ4NCwgMS42NjAyMiwgMi4wMTk5NyIsIFwKLSAgICAgICAgICAiMC4zMDUyNzcsIDAuMzQ4NTk4LCAwLjU5MzExNiwgMC44MDg4NTEsIDEuMDk2NTIsIDEuNjcxODksIDIuMDMxNjQiLCBcCi0gICAgICAgICAgIjAuMzIwNTIzLCAwLjM2Mzg0NCwgMC42MDgzNTksIDAuODI0MTAyLCAxLjExMTc2LCAxLjY4NzE2LCAyLjA0NjkyIiwgXAotICAgICAgICAgICIwLjMzNTg2NSwgMC4zNzkxODgsIDAuNjIzNzA5LCAwLjgzOTQ0NiwgMS4xMjcxMiwgMS43MDI0OSwgMi4wNjIyNCIsIFwKLSAgICAgICAgICAiMC4zNTA5NTMsIDAuMzk0Mjc0LCAwLjYzODgwMywgMC44NTQ1MzMsIDEuMTQyMiwgMS43MTc2NSwgMi4wNzczMiIsIFwKLSAgICAgICAgICAiMC4zNzQ5MjMsIDAuNDE4MjQ5LCAwLjY2Mjc3OSwgMC44Nzg1MDgsIDEuMTY2MTgsIDEuNzQxNjIsIDIuMTAxMjkiLCBcCi0gICAgICAgICAgIjAuMzk0OTE4LCAwLjQzODI0NSwgMC42ODI3NzUsIDAuODk4NTA4LCAxLjE4NjE4LCAxLjc2MTU1LCAyLjEyMTMiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTY2MjgsIDAuMjUwOTYzLCAwLjc0MzQ4MSwgMS4xODE4NiwgMS43NzA2MiwgMi45NDIwOSwgMy42NzUwMiIsIFwKLSAgICAgICAgICAiMC4xNjYzMTgsIDAuMjUwOTYxLCAwLjc0MzQ0NCwgMS4xODE3MSwgMS43NzA1NiwgMi45NDE4NCwgMy42NzQ3NSIsIFwKLSAgICAgICAgICAiMC4xNjYzMzksIDAuMjUxMTU1LCAwLjc0MzQ3NywgMS4xODE3OCwgMS43NjczNiwgMi45NDIsIDMuNjc0OTQiLCBcCi0gICAgICAgICAgIjAuMTY2MzIzLCAwLjI1MTE2MSwgMC43NDM0NTEsIDEuMTgxNzMsIDEuNzcwNTMsIDIuOTQxODgsIDMuNjc0NzgiLCBcCi0gICAgICAgICAgIjAuMTY2MzA3LCAwLjI1MTExOSwgMC43NDM0MzYsIDEuMTgyODgsIDEuNzcwNTMsIDIuOTM3ODgsIDMuNjc0NjciLCBcCi0gICAgICAgICAgIjAuMTY2MzA5LCAwLjI1MDk0MSwgMC43NDM0MiwgMS4xODI4NiwgMS43NzA1MywgMi45Mzc4OCwgMy42NzQ2NiIsIFwKLSAgICAgICAgICAiMC4xNjYzMjIsIDAuMjUxMTU2LCAwLjc0MzQ2MSwgMS4xODE2OCwgMS43NzA1NCwgMi45NDE5LCAzLjY3NDgiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzM0NTUsIDAuMzg0MTI2LCAwLjY2NDEzLCAwLjkxMTE0NCwgMS4yNDAzMiwgMS44OTg4MSwgMi4zMTAzOCIsIFwKLSAgICAgICAgICAiMC4zNDYyOTIsIDAuMzk1ODg5LCAwLjY3NTk5NiwgMC45MjI5NDgsIDEuMjUyMSwgMS45MTA2MSwgMi4zMjIxMyIsIFwKLSAgICAgICAgICAiMC4zNjE2NywgMC40MTEyMzEsIDAuNjkxMjc0LCAwLjkzODI4NywgMS4yNjc0NywgMS45MjU4OCwgMi4zMzc1IiwgXAotICAgICAgICAgICIwLjM3NzEyMiwgMC40MjY2ODIsIDAuNzA2Njk5LCAwLjk1MzczMiwgMS4yODI5MywgMS45NDEzMywgMi4zNTI5NiIsIFwKLSAgICAgICAgICAiMC4zOTIzMzMsIDAuNDQxODk4LCAwLjcyMTkxNCwgMC45Njg5MjksIDEuMjk4MDksIDEuOTU2NjEsIDIuMzY4MTUiLCBcCi0gICAgICAgICAgIjAuNDE2Mzk5LCAwLjQ2NTk2NCwgMC43NDU5NzcsIDAuOTkyOTY4LCAxLjMyMjE2LCAxLjk4MDU5LCAyLjM5MjE4IiwgXAotICAgICAgICAgICIwLjQzNjU5NywgMC40ODYxNTksIDAuNzY2MTc3LCAxLjAxMzE0LCAxLjM0MjM1LCAyLjAwMDgxLCAyLjQxMjM4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE4MjQxNiwgMC4yNzc5MzksIDAuODMxMzIyLCAxLjMyMTc1LCAxLjk3NTMxLCAzLjI4Mjk5LCA0LjEwMDQyIiwgXAotICAgICAgICAgICIwLjE4MjQyOCwgMC4yNzc5ODgsIDAuODMwMjY0LCAxLjMyMDM2LCAxLjk3NTI4LCAzLjI3OTk2LCA0LjEwMDI3IiwgXAotICAgICAgICAgICIwLjE4MjM3NywgMC4yNzgyNjQsIDAuODMwNTUsIDEuMzE5ODIsIDEuOTc1MzUsIDMuMjgyNjksIDQuMTAwMTYiLCBcCi0gICAgICAgICAgIjAuMTgyMzIzLCAwLjI3ODI0NywgMC44MzEyNzEsIDEuMzIxODMsIDEuOTc1MzcsIDMuMjgyODIsIDQuMTAwMzciLCBcCi0gICAgICAgICAgIjAuMTgyNDA4LCAwLjI3Nzk5NywgMC44MzEzMzEsIDEuMzIxNzYsIDEuOTc1MjUsIDMuMjgzMDEsIDQuMTAwMzQiLCBcCi0gICAgICAgICAgIjAuMTgyNDE4LCAwLjI3ODMxOCwgMC44MzEzMTUsIDEuMzIxNjcsIDEuOTc1MTcsIDMuMjgyNTksIDQuMTAwMDQiLCBcCi0gICAgICAgICAgIjAuMTgyNDA4LCAwLjI3Nzk5MiwgMC44MzEzMTgsIDEuMzIxNTgsIDEuOTc1MTYsIDMuMjgxMDgsIDQuMTAwMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJEIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI0NjksIDAuMDAyNDczLCAwLjAwMjQ3OSwgMC4wMDI0OCwgMC4wMDI0OCwgMC4wMDI0ODEsIDAuMDAyNDgxIiwgXAotICAgICAgICAgICIwLjAwMjQ2NiwgMC4wMDI0NywgMC4wMDI0NzYsIDAuMDAyNDc3LCAwLjAwMjQ3OCwgMC4wMDI0NzgsIDAuMDAyNDc4IiwgXAotICAgICAgICAgICIwLjAwMjQ2MywgMC4wMDI0NjgsIDAuMDAyNDc0LCAwLjAwMjQ3NSwgMC4wMDI0NzUsIDAuMDAyNDc2LCAwLjAwMjQ3NiIsIFwKLSAgICAgICAgICAiMC4wMDI0NjIsIDAuMDAyNDY3LCAwLjAwMjQ3MiwgMC4wMDI0NzMsIDAuMDAyNDc0LCAwLjAwMjQ3NCwgMC4wMDI0NzQiLCBcCi0gICAgICAgICAgIjAuMDAyNDYxLCAwLjAwMjQ2NSwgMC4wMDI0NzEsIDAuMDAyNDcyLCAwLjAwMjQ3MywgMC4wMDI0NzMsIDAuMDAyNDczIiwgXAotICAgICAgICAgICIwLjAwMjQ1OSwgMC4wMDI0NjMsIDAuMDAyNDY5LCAwLjAwMjQ3LCAwLjAwMjQ3MSwgMC4wMDI0NzEsIDAuMDAyNDcxIiwgXAotICAgICAgICAgICIwLjAwMjQ1NywgMC4wMDI0NjIsIDAuMDAyNDY3LCAwLjAwMjQ2OSwgMC4wMDI0NjksIDAuMDAyNDcsIDAuMDAyNDY5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyMjU3LCAwLjAwMjI2MiwgMC4wMDIyNjgsIDAuMDAyMjY5LCAwLjAwMjI3LCAwLjAwMjI3LCAwLjAwMjI3IiwgXAotICAgICAgICAgICIwLjAwMjI1MSwgMC4wMDIyNTYsIDAuMDAyMjYyLCAwLjAwMjI2MywgMC4wMDIyNjQsIDAuMDAyMjY1LCAwLjAwMjI2NCIsIFwKLSAgICAgICAgICAiMC4wMDIyNDgsIDAuMDAyMjUyLCAwLjAwMjI1OCwgMC4wMDIyNiwgMC4wMDIyNjEsIDAuMDAyMjYxLCAwLjAwMjI2MSIsIFwKLSAgICAgICAgICAiMC4wMDIyNDUsIDAuMDAyMjUsIDAuMDAyMjU2LCAwLjAwMjI1NywgMC4wMDIyNTgsIDAuMDAyMjU4LCAwLjAwMjI1OCIsIFwKLSAgICAgICAgICAiMC4wMDIyNDQsIDAuMDAyMjQ4LCAwLjAwMjI1NSwgMC4wMDIyNTYsIDAuMDAyMjU2LCAwLjAwMjI1NywgMC4wMDIyNTgiLCBcCi0gICAgICAgICAgIjAuMDAyMjQxLCAwLjAwMjI0NiwgMC4wMDIyNTIsIDAuMDAyMjUzLCAwLjAwMjI1MywgMC4wMDIyNTQsIDAuMDAyMjU1IiwgXAotICAgICAgICAgICIwLjAwMjIzOCwgMC4wMDIyNDMsIDAuMDAyMjQ5LCAwLjAwMjI1LCAwLjAwMjI1MSwgMC4wMDIyNTEsIDAuMDAyMjUxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyOTgxLCAwLjAwMjk4MywgMC4wMDI5NzgsIDAuMDAyOTc1LCAwLjAwMjk3MywgMC4wMDI5NzIsIDAuMDAyOTcxIiwgXAotICAgICAgICAgICIwLjAwMjk3MywgMC4wMDI5NzUsIDAuMDAyOTcxLCAwLjAwMjk2OCwgMC4wMDI5NjYsIDAuMDAyOTY0LCAwLjAwMjk2NCIsIFwKLSAgICAgICAgICAiMC4wMDI5NjcsIDAuMDAyOTY5LCAwLjAwMjk2NCwgMC4wMDI5NjIsIDAuMDAyOTU5LCAwLjAwMjk1OCwgMC4wMDI5NTgiLCBcCi0gICAgICAgICAgIjAuMDAyOTYzLCAwLjAwMjk2NCwgMC4wMDI5NiwgMC4wMDI5NTgsIDAuMDAyOTU1LCAwLjAwMjk1MywgMC4wMDI5NTMiLCBcCi0gICAgICAgICAgIjAuMDAyOTU4LCAwLjAwMjk2LCAwLjAwMjk1NiwgMC4wMDI5NTMsIDAuMDAyOTUxLCAwLjAwMjk0OSwgMC4wMDI5NDgiLCBcCi0gICAgICAgICAgIjAuMDAyOTU0LCAwLjAwMjk1NiwgMC4wMDI5NTIsIDAuMDAyOTQ5LCAwLjAwMjk0OCwgMC4wMDI5NDYsIDAuMDAyOTQ1IiwgXAotICAgICAgICAgICIwLjAwMjk1MiwgMC4wMDI5NTQsIDAuMDAyOTUsIDAuMDAyOTQ4LCAwLjAwMjk0NiwgMC4wMDI5NDQsIDAuMDAyOTQzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyOTc5LCAwLjAwMjk4MywgMC4wMDI5OSwgMC4wMDI5OTEsIDAuMDAyOTkxLCAwLjAwMjk5MiwgMC4wMDI5OTIiLCBcCi0gICAgICAgICAgIjAuMDAyOTcxLCAwLjAwMjk3NiwgMC4wMDI5ODMsIDAuMDAyOTg0LCAwLjAwMjk4NCwgMC4wMDI5ODUsIDAuMDAyOTg1IiwgXAotICAgICAgICAgICIwLjAwMjk2NywgMC4wMDI5NzEsIDAuMDAyOTc3LCAwLjAwMjk3OCwgMC4wMDI5NzksIDAuMDAyOTgsIDAuMDAyOTgiLCBcCi0gICAgICAgICAgIjAuMDAyOTYzLCAwLjAwMjk2OCwgMC4wMDI5NzQsIDAuMDAyOTc1LCAwLjAwMjk3NiwgMC4wMDI5NzYsIDAuMDAyOTc3IiwgXAotICAgICAgICAgICIwLjAwMjk2LCAwLjAwMjk2NSwgMC4wMDI5NzEsIDAuMDAyOTcyLCAwLjAwMjk3MywgMC4wMDI5NzMsIDAuMDAyOTc0IiwgXAotICAgICAgICAgICIwLjAwMjk1OCwgMC4wMDI5NjIsIDAuMDAyOTY4LCAwLjAwMjk3LCAwLjAwMjk3LCAwLjAwMjk3MSwgMC4wMDI5NzEiLCBcCi0gICAgICAgICAgIjAuMDAyOTU3LCAwLjAwMjk2MSwgMC4wMDI5NjcsIDAuMDAyOTY5LCAwLjAwMjk2OSwgMC4wMDI5NywgMC4wMDI5NyIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IFhOT1IzWDEgKgotICogLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoWE5PUjNYMSkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjMwMjIxODsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNzYyMDI2OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDc2MTI2ODsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA3NjIwMjY7Ci0gIH0KLSAgcGluKEIpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTg2NDc5OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTg2NDc7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxODY0Nzk7Ci0gIH0KLSAgcGluKEMpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTM0OTgxOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTM0ODk0OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTM0OTgxOwotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMDkyMTA3ODsKLSAgICBmdW5jdGlvbiA6ICIoISgoQV5CKV5DKSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMxOTYyNywgMC4zNjU4OTQsIDAuNjEwMjUyLCAwLjgyMzU2OCwgMS4xMDgwNywgMS42NzcyNCwgMi4wMzI1MSIsIFwKLSAgICAgICAgICAiMC4zMzExODQsIDAuMzc3NDU1LCAwLjYyMTgxNCwgMC44MzUxMzksIDEuMTE5NjMsIDEuNjg4NzcsIDIuMDQ0MDUiLCBcCi0gICAgICAgICAgIjAuMzQ2MDY5LCAwLjM5MjM0LCAwLjYzNjY5MSwgMC44NTAwMzcsIDEuMTM0NTMsIDEuNzAzNywgMi4wNTg5NyIsIFwKLSAgICAgICAgICAiMC4zNjA3NDEsIDAuNDA3MDE3LCAwLjY1MTM2OSwgMC44NjQ3MTUsIDEuMTQ5MjEsIDEuNzE4MzksIDIuMDczNjUiLCBcCi0gICAgICAgICAgIjAuMzc1NDM2LCAwLjQyMTY5OSwgMC42NjYwODYsIDAuODc5NDI5LCAxLjE2MzksIDEuNzMzLCAyLjA4ODc0IiwgXAotICAgICAgICAgICIwLjM5OTQ4OCwgMC40NDU3NjIsIDAuNjkwMTU5LCAwLjkwMzUxLCAxLjE4Nzk4LCAxLjc1NzA4LCAyLjExMjUiLCBcCi0gICAgICAgICAgIjAuNDE5OTYxLCAwLjQ2NjI3MiwgMC43MTA2MzcsIDAuOTIzOTg4LCAxLjIwODQ4LCAxLjc3NzY3LCAyLjEzMjk0Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE4NDAwNCwgMC4yNjYwOTUsIDAuNzQ1MDA1LCAxLjE3NzUsIDEuNzU2NjYsIDIuOTEwMjMsIDMuNjQxOTMiLCBcCi0gICAgICAgICAgIjAuMTgzOTkyLCAwLjI2NjA4NywgMC43NDQ5NjIsIDEuMTc3NTEsIDEuNzU2NiwgMi45MTIwMywgMy42NDE4MiIsIFwKLSAgICAgICAgICAiMC4xODM5OCwgMC4yNjYwOTcsIDAuNzQ0OTQ4LCAxLjE3Njg5LCAxLjc1NjY1LCAyLjkxMDEsIDMuNjQxNzMiLCBcCi0gICAgICAgICAgIjAuMTg0MDA1LCAwLjI2NjA4LCAwLjc0NDkyNiwgMS4xNzY4MiwgMS43NTY2NCwgMi45MTAwOCwgMy42NDE3IiwgXAotICAgICAgICAgICIwLjE4NDA0NywgMC4yNjYwMDUsIDAuNzQ0OTYyLCAxLjE3Njg1LCAxLjc1NjU0LCAyLjkwOTE3LCAzLjYzNDQ2IiwgXAotICAgICAgICAgICIwLjE4Mzk5NSwgMC4yNjYwNCwgMC43NDQ5NjUsIDEuMTc2NDQsIDEuNzU4NTksIDIuOTA5ODcsIDMuNjQxODYiLCBcCi0gICAgICAgICAgIjAuMTg0MDE2LCAwLjI2NjExMiwgMC43NDUzNjIsIDEuMTc2ODIsIDEuNzU2NjMsIDIuOTEwMDksIDMuNjQxNjkiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzAzMjcsIDAuMzY2NjM2LCAwLjcxNjk3NSwgMS4wMjUzNSwgMS40MzY4NSwgMi4yNjAyNiwgMi43NzMzOSIsIFwKLSAgICAgICAgICAiMC4zMTQ2MDcsIDAuMzc3OTc5LCAwLjcyODMyMSwgMS4wMzY2OSwgMS40NDgyLCAyLjI3MDg4LCAyLjc4NDczIiwgXAotICAgICAgICAgICIwLjMyOTA3OCwgMC4zOTI0NDcsIDAuNzQyNzk2LCAxLjA1MTIsIDEuNDYyOTcsIDIuMjg2MDgsIDIuNzk5MTkiLCBcCi0gICAgICAgICAgIjAuMzQzMzUyLCAwLjQwNjcxNywgMC43NTcwNjgsIDEuMDY1NDcsIDEuNDc2NzksIDIuMjk5MzYsIDIuODEzNTIiLCBcCi0gICAgICAgICAgIjAuMzU3NjIxLCAwLjQyMTAwMywgMC43NzEzNzgsIDEuMDc5OTMsIDEuNDkxNDMsIDIuMzEzNzgsIDIuODI3OTEiLCBcCi0gICAgICAgICAgIjAuMzgwMjUyLCAwLjQ0MzYzMSwgMC43OTQwMDcsIDEuMTAyNTQsIDEuNTE0MDcsIDIuMzM3LCAyLjg1MDciLCBcCi0gICAgICAgICAgIjAuMzk5NDYyLCAwLjQ2Mjg0MSwgMC44MTMyMjMsIDEuMTIxNzUsIDEuNTMzMzQsIDIuMzU2MzIsIDIuODY5ODIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjM4Mjk4LCAwLjM1NjI1MSwgMS4wNDIxNSwgMS42NTQ2MSwgMi40NjM5NCwgNC4wOTk0LCA1LjExMjQ0IiwgXAotICAgICAgICAgICIwLjIzODE3MywgMC4zNTYyNjIsIDEuMDQyMjksIDEuNjU0NjUsIDIuNDY1NDIsIDQuMTAyOTYsIDUuMTE0NDciLCBcCi0gICAgICAgICAgIjAuMjM4MTczLCAwLjM1NjI4MiwgMS4wNDIzLCAxLjY1NDQ1LCAyLjQ2NTgsIDQuMTAxNjcsIDUuMTE0MDUiLCBcCi0gICAgICAgICAgIjAuMjM4MjY2LCAwLjM1NjI4NywgMS4wNDIzMSwgMS42NTQzMiwgMi40NzIzNCwgNC4xMDA1MywgNS4xMTM2OSIsIFwKLSAgICAgICAgICAiMC4yMzgyMSwgMC4zNTYwODMsIDEuMDQwMDUsIDEuNjU0MzQsIDIuNDcyMjYsIDQuMDk2MTEsIDUuMTE2MTIiLCBcCi0gICAgICAgICAgIjAuMjM4MjE2LCAwLjM1NjEyMSwgMS4wNDIzNCwgMS42NTQ0NSwgMi40Njg1NywgNC4xMDIyOCwgNS4xMTQxNSIsIFwKLSAgICAgICAgICAiMC4yMzgxNDMsIDAuMzU2MTcyLCAxLjA0MTcxLCAxLjY1NDM2LCAyLjQ2ODA0LCA0LjA5NDk5LCA1LjExNjM2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjM4Nzg3MSwgMC40MzQzMzMsIDAuNjc4Nzk0LCAwLjg5MjEzNSwgMS4xNzY1MiwgMS43NDU0LCAyLjEwMTIxIiwgXAotICAgICAgICAgICIwLjM5OTQwNywgMC40NDU3NjgsIDAuNjkwMjI4LCAwLjkwMzYxLCAxLjE4ODEsIDEuNzU3MjgsIDIuMTEyNTMiLCBcCi0gICAgICAgICAgIjAuNDE0MzE5LCAwLjQ2MDY1MywgMC43MDUxNjksIDAuOTE4NDczLCAxLjIwMjk4LCAxLjc3MTg3LCAyLjEyNzQ0IiwgXAotICAgICAgICAgICIwLjQyOTIzNSwgMC40NzU2MDEsIDAuNzIwMDY4LCAwLjkzMzQzNCwgMS4yMTc5NCwgMS43ODcxNCwgMi4xNDIzMSIsIFwKLSAgICAgICAgICAiMC40NDM5MjIsIDAuNDkwMjU2LCAwLjczNDgyMSwgMC45NDgxNjgsIDEuMjMyNjIsIDEuODAxNjEsIDIuMTU3MzciLCBcCi0gICAgICAgICAgIjAuNDY3MDUsIDAuNTEzMzcyLCAwLjc1NzkyMiwgMC45NzEyNTEsIDEuMjU1NzQsIDEuODI0OSwgMi4xODAxOCIsIFwKLSAgICAgICAgICAiMC40ODYwNTIsIDAuNTMyMzg1LCAwLjc3Njk0OSwgMC45OTAyOTUsIDEuMjc0NzYsIDEuODQzNzgsIDIuMTk5NjUiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTg1MTY5LCAwLjI2NzA0NywgMC43NDY1NTcsIDEuMTc2ODgsIDEuNzU2MjUsIDIuOTE2OTQsIDMuNjM3MTciLCBcCi0gICAgICAgICAgIjAuMTg1MTUyLCAwLjI2NzA4OCwgMC43NDYzNzUsIDEuMTc1NTYsIDEuNzU2ODcsIDIuOTEwMTQsIDMuNjQxOTUiLCBcCi0gICAgICAgICAgIjAuMTg1MTYzLCAwLjI2NzAzNywgMC43NDY1MjIsIDEuMTc3NjksIDEuNzU2MjMsIDIuOTE2MzYsIDMuNjQzMDYiLCBcCi0gICAgICAgICAgIjAuMTg1MTYxLCAwLjI2NzA5NywgMC43NDY0MSwgMS4xNzU1NiwgMS43NTY5LCAyLjkxNTUxLCAzLjY0MTgyIiwgXAotICAgICAgICAgICIwLjE4NTE1NiwgMC4yNjcwMzQsIDAuNzQ2NDcsIDEuMTc1NSwgMS43NTYyMywgMi45MTE3OSwgMy42MzY1MyIsIFwKLSAgICAgICAgICAiMC4xODUxNDksIDAuMjY2OTkyLCAwLjc0NjQ5MywgMS4xNzU1NiwgMS43NTY4NCwgMi45MTAzMSwgMy42NDE5IiwgXAotICAgICAgICAgICIwLjE4NTE1NCwgMC4yNjcwMDQsIDAuNzQ2NDYsIDEuMTc1NDUsIDEuNzU2MzEsIDIuOTEyMDEsIDMuNjM3NjMiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuNDIxMTYzLCAwLjQ4NTI4NiwgMC44MzYxNTcsIDEuMTQ0NTgsIDEuNTU1ODQsIDIuMzc4NTQsIDIuODkyODEiLCBcCi0gICAgICAgICAgIjAuNDMyNzQ0LCAwLjQ5Njg5NSwgMC44NDc3MTksIDEuMTU2MTUsIDEuNTY3NDUsIDIuMzkwMTcsIDIuOTA0NzUiLCBcCi0gICAgICAgICAgIjAuNDQ3NzI1LCAwLjUxMTg1MiwgMC44NjI2OSwgMS4xNzExNSwgMS41ODIzOSwgMi40MDUwNiwgMi45MTkzNyIsIFwKLSAgICAgICAgICAiMC40NjI1ODksIDAuNTI2NzYyLCAwLjg3NzU4MywgMS4xODU5NSwgMS41OTczMywgMi40MjEwMiwgMi45MzQ0IiwgXAotICAgICAgICAgICIwLjQ3NzkwNywgMC41NDIwMzcsIDAuODkyODYyLCAxLjIwMTI5LCAxLjYxMjU3LCAyLjQzNTUxLCAyLjk0OTQ3IiwgXAotICAgICAgICAgICIwLjUwMjAyMiwgMC41NjYxNTUsIDAuOTE2OTc4LCAxLjIyNTQ1LCAxLjYzNjc3LCAyLjQ2MDQ0LCAyLjk3MzcyIiwgXAotICAgICAgICAgICIwLjUyMjk1NCwgMC41ODcwNzksIDAuOTM3OTAyLCAxLjI0NjI5LCAxLjY1NzY0LCAyLjQ4MTM4LCAyLjk5NDY2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI0Mzk2MiwgMC4zNjA1MTcsIDEuMDQwNjIsIDEuNjU1NTMsIDIuNDY2NzEsIDQuMDk4OTEsIDUuMTE0NjciLCBcCi0gICAgICAgICAgIjAuMjQzODk3LCAwLjM2MDU0MiwgMS4wNDQ3NiwgMS42NTUzNSwgMi40Njc2LCA0LjEwMjU5LCA1LjExNTQzIiwgXAotICAgICAgICAgICIwLjI0Mzk1MiwgMC4zNjA1MTYsIDEuMDQ0MzEsIDEuNjU1NTQsIDIuNDY2NTQsIDQuMDk5NzcsIDUuMTE2NzEiLCBcCi0gICAgICAgICAgIjAuMjQzNzQ4LCAwLjM2MDUzOCwgMS4wNDQ3MiwgMS42NTUxOCwgMi40NjgzMywgNC4xMDI5NSwgNS4xMTUxMiIsIFwKLSAgICAgICAgICAiMC4yNDM3NDksIDAuMzYwNTM4LCAxLjA0MzUsIDEuNjU1NTMsIDIuNDcwMzUsIDQuMTAzNTksIDUuMTE1MjgiLCBcCi0gICAgICAgICAgIjAuMjQzODM5LCAwLjM2MDU5MywgMS4wNDQ3LCAxLjY1NTU3LCAyLjQ3MDMyLCA0LjA5OTExLCA1LjExNTMzIiwgXAotICAgICAgICAgICIwLjI0Mzc2NCwgMC4zNjA0ODgsIDEuMDQ0MSwgMS42NTUyOSwgMi40Njc2MSwgNC4xMDIzMiwgNS4xMTQ4MSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yOTg5MDcsIDAuMzQ1MjcyLCAwLjU4OTgxLCAwLjgwMzE1MiwgMS4wODc2NywgMS42NTY1NSwgMi4wMTIwMiIsIFwKLSAgICAgICAgICAiMC4zMDk5NjUsIDAuMzU2MzE0LCAwLjYwMDg2NywgMC44MTQyMDksIDEuMDk4NjgsIDEuNjY4MDYsIDIuMDIzMDciLCBcCi0gICAgICAgICAgIjAuMzIzNzY3LCAwLjM3MDExOSwgMC42MTQ2NzEsIDAuODI4MDExLCAxLjExMjQ1LCAxLjY4MTY2LCAyLjAzNjg4IiwgXAotICAgICAgICAgICIwLjMzNzU0MSwgMC4zODM4OTIsIDAuNjI4NDI0LCAwLjg0MTc2NCwgMS4xMjYyNCwgMS42OTUyNywgMi4wNTE1OSIsIFwKLSAgICAgICAgICAiMC4zNTA3ODEsIDAuMzk3MTU1LCAwLjY0MTY2NywgMC44NTQ5ODksIDEuMTM5NDgsIDEuNzA4NjQsIDIuMDYzOSIsIFwKLSAgICAgICAgICAiMC4zNzIwMzgsIDAuNDE4Mzk0LCAwLjY2MjkzNiwgMC44NzYyNTQsIDEuMTYwNzUsIDEuNzI5ODYsIDIuMDg1MjkiLCBcCi0gICAgICAgICAgIjAuMzkwMzYyLCAwLjQzNjcyNCwgMC42ODEyOTYsIDAuODk0NjM2LCAxLjE3OTA2LCAxLjc0ODE2LCAyLjEwMzYxIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE4NTI4OCwgMC4yNjcxNTIsIDAuNzQ2NjM0LCAxLjE3NTU4LCAxLjc1MjIyLCAyLjkxMjE0LCAzLjY0MzI3IiwgXAotICAgICAgICAgICIwLjE4NTIyOCwgMC4yNjcxNDcsIDAuNzQ2NTgzLCAxLjE3NTU4LCAxLjc1Njg4LCAyLjkxNzI1LCAzLjY0MzE4IiwgXAotICAgICAgICAgICIwLjE4NTE5NywgMC4yNjcxNTMsIDAuNzQ2NTcyLCAxLjE3NTU0LCAxLjc1NjY3LCAyLjkxMTQ5LCAzLjY0MzE1IiwgXAotICAgICAgICAgICIwLjE4NTMxLCAwLjI2NzEyNiwgMC43NDY1MDgsIDEuMTc1MzIsIDEuNzU2MTQsIDIuOTEyNTUsIDMuNjM3MTQiLCBcCi0gICAgICAgICAgIjAuMTg1MzUsIDAuMjY3MjI4LCAwLjc0NjU0NywgMS4xNzU1NywgMS43NTY4OCwgMi45MTAyNCwgMy42NDE4OSIsIFwKLSAgICAgICAgICAiMC4xODUzNTYsIDAuMjY3MTU0LCAwLjc0NjUyNCwgMS4xNzYwMywgMS43NTY4MSwgMi45MTA1MywgMy42NDE3IiwgXAotICAgICAgICAgICIwLjE4NTIyNSwgMC4yNjcxNzcsIDAuNzQ2NTc2LCAxLjE3NzIyLCAxLjc1NjU2LCAyLjkwOTE3LCAzLjYzNjg5Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI5NjE3NiwgMC4zNjAwNjIsIDAuNzEwNjQ1LCAxLjAxOTA5LCAxLjQzMDQzLCAyLjI1MzI3LCAyLjc2NzEyIiwgXAotICAgICAgICAgICIwLjMwNzIzOCwgMC4zNzExMjQsIDAuNzIxNzI2LCAxLjAzMDE4LCAxLjQ0MTU2LCAyLjI2NDg1LCAyLjc3Nzg2IiwgXAotICAgICAgICAgICIwLjMyMDQ3LCAwLjM4NDMzOCwgMC43MzQ5NDksIDEuMDQzMjcsIDEuNDU0NzcsIDIuMjc4MTQsIDIuNzkxNzEiLCBcCi0gICAgICAgICAgIjAuMzMzNDMzLCAwLjM5NzMxOSwgMC43NDc4OTUsIDEuMDU2MzcsIDEuNDY3NzgsIDIuMjkxMDUsIDIuODA0MjEiLCBcCi0gICAgICAgICAgIjAuMzQ2MTE2LCAwLjQwOTk5MiwgMC43NjA2MjUsIDEuMDY5MDMsIDEuNDgwNDYsIDIuMzAzNzgsIDIuODE3NTMiLCBcCi0gICAgICAgICAgIjAuMzY2NDQ5LCAwLjQzMDMzNSwgMC43ODA5ODEsIDEuMDg5NDIsIDEuNTAwNjMsIDIuMzIzNjEsIDIuODM3NjYiLCBcCi0gICAgICAgICAgIjAuMzgzODk3LCAwLjQ0Nzc3OCwgMC43OTg0NDIsIDEuMTA2OTIsIDEuNTE4MzEsIDIuMzQxNiwgMi44NTQ3OSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yNDMwMDIsIDAuMzU5ODYzLCAxLjA0MjE2LCAxLjY1NTMzLCAyLjQ2OTU4LCA0LjEwMzcsIDUuMTE0MSIsIFwKLSAgICAgICAgICAiMC4yNDI4NzgsIDAuMzU5NjIyLCAxLjA0MjY1LCAxLjY1NTM2LCAyLjQ2NTUsIDQuMDk1MTgsIDUuMTE2NzIiLCBcCi0gICAgICAgICAgIjAuMjQyOTIxLCAwLjM1OTY1NiwgMS4wNDEwMiwgMS42NTUyMywgMi40NzIyOCwgNC4wOTQ3MiwgNS4xMTQ5NSIsIFwKLSAgICAgICAgICAiMC4yNDMwMzYsIDAuMzU5NzI0LCAxLjA0MDcxLCAxLjY1NTM2LCAyLjQ3MDQ3LCA0LjA5OTk0LCA1LjExNjU4IiwgXAotICAgICAgICAgICIwLjI0MzEyOCwgMC4zNTk2OTUsIDEuMDQwNjYsIDEuNjU1MywgMi40NzIyMSwgNC4wOTQ4MSwgNS4xMTUxMiIsIFwKLSAgICAgICAgICAiMC4yNDMyMTcsIDAuMzU5ODIzLCAxLjA0MjYxLCAxLjY1NTM1LCAyLjQ3Mjc5LCA0LjEwMzEyLCA1LjExNDY4IiwgXAotICAgICAgICAgICIwLjI0MzE4LCAwLjM1OTczOSwgMS4wNDI2NSwgMS42NTUzNywgMi40NjgzMywgNC4wOTU2NiwgNS4xMTM4MyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yODU3OSwgMC4zMzE1NjUsIDAuNTc1NTA2LCAwLjc4ODgzNCwgMS4wNzMyNiwgMS42NDIyMiwgMS45OTc5NCIsIFwKLSAgICAgICAgICAiMC4yOTc0MjYsIDAuMzQzMjA3LCAwLjU4NzA1LCAwLjgwMDQwNiwgMS4wODQ4OCwgMS42NTM4MSwgMi4wMDkzOSIsIFwKLSAgICAgICAgICAiMC4zMTE0MjMsIDAuMzU3MjksIDAuNjAxMTM3LCAwLjgxNDQ2LCAxLjA5OTAxLCAxLjY2Nzg3LCAyLjAyNDAxIiwgXAotICAgICAgICAgICIwLjMyNTUzMSwgMC4zNzEzMTEsIDAuNjE1MjA3LCAwLjgyODUyNCwgMS4xMTI5OCwgMS42ODIsIDIuMDM3OCIsIFwKLSAgICAgICAgICAiMC4zMzkxNDIsIDAuMzg1MDA0LCAwLjYyODg1OSwgMC44NDIxODcsIDEuMTI2NzcsIDEuNjk1OTEsIDIuMDUxMzkiLCBcCi0gICAgICAgICAgIjAuMzYwMjcyLCAwLjQwNjAzNCwgMC42NDk5OTEsIDAuODYzMjkxLCAxLjE0Nzc1LCAxLjcxNjcxLCAyLjA3MjY2IiwgXAotICAgICAgICAgICIwLjM3NzIyLCAwLjQyMjk5NywgMC42NjY4NzgsIDAuODgwMjE0LCAxLjE2NDY5LCAxLjczMzczLCAyLjA4OTI2Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE4Mzg1NiwgMC4yNjU5MjUsIDAuNzQ2MDQ0LCAxLjE3NzUsIDEuNzU2NTUsIDIuOTA5MjMsIDMuNjQxODkiLCBcCi0gICAgICAgICAgIjAuMTgzOTA1LCAwLjI2NTk1NSwgMC43NDYwNzEsIDEuMTc1MjgsIDEuNzU2NTksIDIuOTEwMzcsIDMuNjQyMDIiLCBcCi0gICAgICAgICAgIjAuMTgzODU3LCAwLjI2NTkyNSwgMC43NDYwMjMsIDEuMTc3NTEsIDEuNzU2NTUsIDIuOTA5MjQsIDMuNjQxODkiLCBcCi0gICAgICAgICAgIjAuMTgzODQ1LCAwLjI2NTkxNiwgMC43NDYwMzgsIDEuMTc1MjUsIDEuNzU2NTgsIDIuOTEwMzEsIDMuNjQxODciLCBcCi0gICAgICAgICAgIjAuMTgzOTA2LCAwLjI2NTk1MiwgMC43NDYwMDYsIDEuMTc3MzYsIDEuNzU2NTMsIDIuOTA5ODMsIDMuNjM2MzYiLCBcCi0gICAgICAgICAgIjAuMTgzOTEsIDAuMjY2MDA2LCAwLjc0NjA5OCwgMS4xNzY4OCwgMS43NTY1NCwgMi45MDk3NiwgMy42NDI4OCIsIFwKLSAgICAgICAgICAiMC4xODM4NTMsIDAuMjY1OTc5LCAwLjc0NTE4NSwgMS4xNzUyNywgMS43NTY2MywgMi45MTAwNywgMy42NDE2NCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMjI1NTIsIDAuMzg2Njg4LCAwLjczNzUwNCwgMS4wNDU5NiwgMS40NTcwOSwgMi4yODAwMiwgMi43OTQ1IiwgXAotICAgICAgICAgICIwLjMzNDMxNywgMC4zOTg0NzQsIDAuNzQ5MjgxLCAxLjA1Nzc1LCAxLjQ2OTA5LCAyLjI5MjY5LCAyLjgwNjI0IiwgXAotICAgICAgICAgICIwLjM0OTY1NCwgMC40MTM3OTcsIDAuNzY0NjA5LCAxLjA3MzA4LCAxLjQ4NDQxLCAyLjMwODA1LCAyLjgyMTQ1IiwgXAotICAgICAgICAgICIwLjM2NDg2NCwgMC40MjkwMzMsIDAuNzc5ODM5LCAxLjA4ODMyLCAxLjQ5OTYzLCAyLjMyMzI0LCAyLjgzNjIxIiwgXAotICAgICAgICAgICIwLjM3OTgyOCwgMC40NDM5NjMsIDAuNzk0NzE3LCAxLjEwMzIzLCAxLjUxNDM4LCAyLjMzNzM3LCAyLjg1MTcxIiwgXAotICAgICAgICAgICIwLjQwMzM0NywgMC40Njc0OCwgMC44MTgyMzMsIDEuMTI2NzUsIDEuNTM3OTEsIDIuMzYwOTMsIDIuODc1MTkiLCBcCi0gICAgICAgICAgIjAuNDIyNDgsIDAuNDg2NjI1LCAwLjgzNzQzNSwgMS4xNDU5MywgMS41NTcyMSwgMi4zODA4OSwgMi44OTM3MiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yNDM5MzQsIDAuMzYwNjUxLCAxLjA0NDkzLCAxLjY1NTU0LCAyLjQ3MjcsIDQuMDk5OCwgNS4xMTM3MiIsIFwKLSAgICAgICAgICAiMC4yNDM5NjcsIDAuMzYwNjIzLCAxLjA0NDgxLCAxLjY1NTU2LCAyLjQ3MDM1LCA0LjA5ODkyLCA1LjExNTUyIiwgXAotICAgICAgICAgICIwLjI0Mzk1MywgMC4zNjA2NDEsIDEuMDQ0NzksIDEuNjU1NTYsIDIuNDcwMzgsIDQuMTAwNjIsIDUuMTE1OTgiLCBcCi0gICAgICAgICAgIjAuMjQzOTgzLCAwLjM2MDU5NCwgMS4wNDQ3NiwgMS42NTU1NiwgMi40NzA1MSwgNC4wOTU4NCwgNS4xMTI1MyIsIFwKLSAgICAgICAgICAiMC4yNDQwMzcsIDAuMzYwNjA4LCAxLjA0MjIyLCAxLjY1NTU2LCAyLjQ3Mjc0LCA0LjEwMjA3LCA1LjExNTk4IiwgXAotICAgICAgICAgICIwLjI0Mzk5NiwgMC4zNjA2MDMsIDEuMDQyMjMsIDEuNjU1NTYsIDIuNDcyNzQsIDQuMTAyODgsIDUuMTE1MTkiLCBcCi0gICAgICAgICAgIjAuMjQzOTUzLCAwLjM2MDYxMSwgMS4wNDQ3MSwgMS42NTU1OCwgMi40Njk5MywgNC4xMDAzLCA1LjExMzUyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE4NTU0MiwgMC4yMzE3NiwgMC40NzYxLCAwLjY4OTQ3NiwgMC45NzM4OTgsIDEuNTQzMDQsIDEuODk4MjEiLCBcCi0gICAgICAgICAgIjAuMTk2MDIzLCAwLjI0MjIzMSwgMC40ODY1MzUsIDAuNjk5ODc1LCAwLjk4NDQ0NCwgMS41NTMxMiwgMS45MDg4NiIsIFwKLSAgICAgICAgICAiMC4yMDkyMjMsIDAuMjU1Mzk2LCAwLjQ5OTcwMiwgMC43MTMwODksIDAuOTk3NTA1LCAxLjU2NjYyLCAxLjkyMTk5IiwgXAotICAgICAgICAgICIwLjIyMjM0NywgMC4yNjg1MzMsIDAuNTEyODQ5LCAwLjcyNjE4OCwgMS4wMTA2MiwgMS41Nzk2OSwgMS45MzUyMiIsIFwKLSAgICAgICAgICAiMC4yMzU1OCwgMC4yODE3MDgsIDAuNTI2MDI3LCAwLjczOTQyNCwgMS4wMjM3MywgMS41OTMwNiwgMS45NDgyIiwgXAotICAgICAgICAgICIwLjI1NjcxLCAwLjMwMjgzLCAwLjU0NzExOSwgMC43NjA1MiwgMS4wNDQ4NCwgMS42MTQxNCwgMS45NjkzIiwgXAotICAgICAgICAgICIwLjI3NTExNCwgMC4zMjExOTksIDAuNTY1NDcyLCAwLjc3ODc4OCwgMS4wNjMyNywgMS42MzIzNywgMS45ODc4MyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xODM1MTQsIDAuMjY1OTQ2LCAwLjc0NjM0NSwgMS4xNzgyMiwgMS43NTY5MiwgMi45MTE2NCwgMy42NDMxNyIsIFwKLSAgICAgICAgICAiMC4xODM0NSwgMC4yNjU4MDYsIDAuNzQ2MjEyLCAxLjE3NTQ5LCAxLjc1MjE5LCAyLjkxNjI1LCAzLjYzMzk4IiwgXAotICAgICAgICAgICIwLjE4MzMwOCwgMC4yNjU3NDEsIDAuNzQ1NTc2LCAxLjE3ODE1LCAxLjc1Njc3LCAyLjkxMDU1LCAzLjY0MjE5IiwgXAotICAgICAgICAgICIwLjE4MzAxOSwgMC4yNjU1NjIsIDAuNzQ2MTIyLCAxLjE3NzU5LCAxLjc1NjY5LCAyLjkwODk5LCAzLjYzMzA4IiwgXAotICAgICAgICAgICIwLjE4MjY2OSwgMC4yNjUzODUsIDAuNzQ2MTE1LCAxLjE3Nzc4LCAxLjc1NjI1LCAyLjkxMDE3LCAzLjY0Mjk5IiwgXAotICAgICAgICAgICIwLjE4MjE3NCwgMC4yNjQ5NTMsIDAuNzQ1ODgsIDEuMTc3NywgMS43NTU4NSwgMi45MTAyMiwgMy42NDI5NSIsIFwKLSAgICAgICAgICAiMC4xODE2OTQsIDAuMjY0NTg1LCAwLjc0NTc0MiwgMS4xNzc2NCwgMS43NTY1OSwgMi45MTAyNSwgMy42NDEwOSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMTQ2OTcsIDAuMjc4NDEsIDAuNjI4NzgxLCAwLjkzNzE1NywgMS4zNDgzNywgMi4xNzA4NywgMi42ODUyNyIsIFwKLSAgICAgICAgICAiMC4yMjQ5NTEsIDAuMjg4NjYzLCAwLjYzOTAxMSwgMC45NDc0MTIsIDEuMzU4NTksIDIuMTgxMzIsIDIuNjk1NTUiLCBcCi0gICAgICAgICAgIjAuMjM3Njk5LCAwLjMwMTQxOCwgMC42NTE4NDIsIDAuOTYwMTg3LCAxLjM3MTQyLCAyLjE5NDM5LCAyLjcwODE3IiwgXAotICAgICAgICAgICIwLjI1MDU0NywgMC4zMTQyNiwgMC42NjQ3MDEsIDAuOTczMDA1LCAxLjM4NDUzLCAyLjIwNzc2LCAyLjcyMTQ4IiwgXAotICAgICAgICAgICIwLjI2MzAxMywgMC4zMjY3NDEsIDAuNjc3MTM5LCAwLjk4NTU5MSwgMS4zOTY3NiwgMi4yMTk1MSwgMi43MzM5NSIsIFwKLSAgICAgICAgICAiMC4yODMyNTEsIDAuMzQ3MDE3LCAwLjY5NzUwNywgMS4wMDU4OCwgMS40MTczNywgMi4yNDA3NCwgMi43NTQwMiIsIFwKLSAgICAgICAgICAiMC4yOTk3OTksIDAuMzYzNTI5LCAwLjcxNDAxMSwgMS4wMjI0MSwgMS40MzQxLCAyLjI1NzAzLCAyLjc3MTAzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI0MTQ5NiwgMC4zNTg2MTYsIDEuMDQ0MTcsIDEuNjU1MjYsIDIuNDcyOCwgNC4xMDExNywgNS4xMTQ0NyIsIFwKLSAgICAgICAgICAiMC4yNDE0NTIsIDAuMzU4NjM1LCAxLjA0Mzg4LCAxLjY1NTI1LCAyLjQ3Mjc1LCA0LjA5OTY2LCA1LjExNDU1IiwgXAotICAgICAgICAgICIwLjI0MTE5OCwgMC4zNTg3NzUsIDEuMDQyMTMsIDEuNjU1MjQsIDIuNDcyODEsIDQuMTAzMDQsIDUuMTE0NjUiLCBcCi0gICAgICAgICAgIjAuMjQxMTc3LCAwLjM1ODQ2MSwgMS4wNDQxNiwgMS42NTUyMywgMi40NjcxNywgNC4xMDAyNSwgNS4xMTUwOCIsIFwKLSAgICAgICAgICAiMC4yNDEwMTcsIDAuMzU4Mjc1LCAxLjA0MjA5LCAxLjY1NTI0LCAyLjQ2ODk3LCA0LjA5ODYsIDUuMTE2MzUiLCBcCi0gICAgICAgICAgIjAuMjQwNDYyLCAwLjM1ODA2NSwgMS4wNDQwOCwgMS42NTUxOSwgMi40NjU4LCA0LjA5OTk1LCA1LjExNDY2IiwgXAotICAgICAgICAgICIwLjI0MDI5NywgMC4zNTc5MDcsIDEuMDQzODIsIDEuNjU1MTcsIDIuNDY2MjQsIDQuMDk4LCA1LjExNTM1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE5NTc3MiwgMC4yNDE0OTIsIDAuNDg1MjkyLCAwLjY5ODYwNywgMC45ODI5OTcsIDEuNTUyMDEsIDEuOTA3ODciLCBcCi0gICAgICAgICAgIjAuMjA4MDI0LCAwLjI1Mzc1NCwgMC40OTc1MjQsIDAuNzEwODQsIDAuOTk1MjUzLCAxLjU2NDE0LCAxLjkxOTk3IiwgXAotICAgICAgICAgICIwLjIyMjgzMywgMC4yNjg1NTEsIDAuNTEyMzYsIDAuNzI1Njc5LCAxLjAxMDA2LCAxLjU3OSwgMS45MzQ1OSIsIFwKLSAgICAgICAgICAiMC4yMzY2NDUsIDAuMjgyMzU4LCAwLjUyNjE1NSwgMC43Mzk0NzUsIDEuMDIzOTcsIDEuNTkzMzksIDEuOTQ4MzIiLCBcCi0gICAgICAgICAgIjAuMjQ5Mjc3LCAwLjI5NDk3MSwgMC41Mzg3NTYsIDAuNzUyMDUsIDEuMDM2NTEsIDEuNjA1NDYsIDEuOTYxNSIsIFwKLSAgICAgICAgICAiMC4yNjcwMzQsIDAuMzEyNzI0LCAwLjU1NjUxMiwgMC43Njk4MDYsIDEuMDU0MjYsIDEuNjIzMiwgMS45NzkyNiIsIFwKLSAgICAgICAgICAiMC4yODA4NSwgMC4zMjY1MywgMC41NzAzMTcsIDAuNzgzNjE2LCAxLjA2ODA4LCAxLjYzNzAzLCAxLjk5MzA3Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE4MTI4NywgMC4yNjM2NTYsIDAuNzQ1MTA0LCAxLjE3NDY2LCAxLjc1NjA0LCAyLjkxMTY5LCAzLjY0MTY3IiwgXAotICAgICAgICAgICIwLjE4MTM0NiwgMC4yNjM3MTksIDAuNzQ1MDgyLCAxLjE3NDY1LCAxLjc1NTk0LCAyLjkxNjE0LCAzLjY0MTU2IiwgXAotICAgICAgICAgICIwLjE4MTI5LCAwLjI2MzY1NywgMC43NDUwODMsIDEuMTc0NzYsIDEuNzU1OTcsIDIuOTE3MTEsIDMuNjQxNzQiLCBcCi0gICAgICAgICAgIjAuMTgxMTgyLCAwLjI2MzYwMywgMC43NDUwMzQsIDEuMTc0NjYsIDEuNzUyNDEsIDIuOTEyMjcsIDMuNjQyOSIsIFwKLSAgICAgICAgICAiMC4xODEyMTcsIDAuMjYzNTY4LCAwLjc0NDk4NiwgMS4xNzY4NywgMS43NTYyLCAyLjkxNzE0LCAzLjYzNDY1IiwgXAotICAgICAgICAgICIwLjE4MTAwOCwgMC4yNjMzNDgsIDAuNzQ0Nzg1LCAxLjE3NjU2LCAxLjc1NjE2LCAyLjkxNzE5LCAzLjYzNDMiLCBcCi0gICAgICAgICAgIjAuMTgwOTQ5LCAwLjI2MzM1MywgMC43NDQ5MzQsIDEuMTc2OTMsIDEuNzU2MTgsIDIuOTE3MTMsIDMuNjM0ODQiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjMxMTMyLCAwLjI5NTEzMiwgMC42NDU3NiwgMC45NTQxODIsIDEuMzY1NDUsIDIuMTg3ODYsIDIuNzAwNjQiLCBcCi0gICAgICAgICAgIjAuMjQzMzA1LCAwLjMwNzMxLCAwLjY1Nzg4OSwgMC45NjYzNCwgMS4zNzc1MywgMi4xOTk4NSwgMi43MTQ4OCIsIFwKLSAgICAgICAgICAiMC4yNTg4NzcsIDAuMzIyODc3LCAwLjY3MzUyMiwgMC45ODE4NjEsIDEuMzkzMjQsIDIuMjE2OCwgMi43MzAyNyIsIFwKLSAgICAgICAgICAiMC4yNzM2NDksIDAuMzM3NjM3LCAwLjY4ODI4NCwgMC45OTY3MjMsIDEuNDA4MDQsIDIuMjMxNTksIDIuNzQ0NTQiLCBcCi0gICAgICAgICAgIjAuMjg3NzM3LCAwLjM1MTczOCwgMC43MDI0MDEsIDEuMDEwOSwgMS40MjIwOCwgMi4yNDUxNSwgMi43NTg5OCIsIFwKLSAgICAgICAgICAiMC4zMDc5NTIsIDAuMzcxOTg4LCAwLjcyMjU5NywgMS4wMzEwNSwgMS40NDIyMiwgMi4yNjUwNywgMi43NzkzMSIsIFwKLSAgICAgICAgICAiMC4zMjM3NDIsIDAuMzg3NzM0LCAwLjczODQxLCAxLjA0Njc1LCAxLjQ1ODE2LCAyLjI4MTY5LCAyLjc5NTMzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI0Mjc4OCwgMC4zNTk3OTksIDEuMDQ0ODMsIDEuNjU0NCwgMi40NjI2NiwgNC4wOTU5MywgNS4xMTUwNCIsIFwKLSAgICAgICAgICAiMC4yNDI4MTQsIDAuMzU5ODQzLCAxLjA0MjYzLCAxLjY1NTQ4LCAyLjQ3MjgsIDQuMTA0ODcsIDUuMTE1MzciLCBcCi0gICAgICAgICAgIjAuMjQyNzk3LCAwLjM1OTgyNywgMS4wNDQ2NCwgMS42NTQzOSwgMi40NzIyMSwgNC4wOTQxNiwgNS4xMTQ5OCIsIFwKLSAgICAgICAgICAiMC4yNDI2NywgMC4zNTk3NTMsIDEuMDQ0NTksIDEuNjU1NSwgMi40NzA1MiwgNC4wOTc5NSwgNS4xMTI5OSIsIFwKLSAgICAgICAgICAiMC4yNDI2NzYsIDAuMzU5Njk5LCAxLjA0NDU0LCAxLjY1NDM5LCAyLjQ2ODUxLCA0LjA5NjM1LCA1LjExNDU2IiwgXAotICAgICAgICAgICIwLjI0MjM5OSwgMC4zNTk2NjIsIDEuMDQzNCwgMS42NTU0NiwgMi40NzIzMSwgNC4xMDI4MiwgNS4xMTQ3NSIsIFwKLSAgICAgICAgICAiMC4yNDI0NTgsIDAuMzU5NTgyLCAxLjA0NDUyLCAxLjY1NTU1LCAyLjQ3MDU5LCA0LjA5NTM0LCA1LjExNTEyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA3OTQsIDAuMDA3OTQ3LCAwLjAwNzk2LCAwLjAwNzk2MywgMC4wMDc5NjUsIDAuMDA3OTY2LCAwLjAwNzk2NyIsIFwKLSAgICAgICAgICAiMC4wMDc5MjgsIDAuMDA3OTM1LCAwLjAwNzk0OCwgMC4wMDc5NTEsIDAuMDA3OTU0LCAwLjAwNzk1NSwgMC4wMDc5NTUiLCBcCi0gICAgICAgICAgIjAuMDA3OTE5LCAwLjAwNzkyNiwgMC4wMDc5MzksIDAuMDA3OTQzLCAwLjAwNzk0MywgMC4wMDc5NDUsIDAuMDA3OTQ2IiwgXAotICAgICAgICAgICIwLjAwNzkxMSwgMC4wMDc5MTksIDAuMDA3OTMyLCAwLjAwNzkzNSwgMC4wMDc5MzYsIDAuMDA3OTM4LCAwLjAwNzkzOCIsIFwKLSAgICAgICAgICAiMC4wMDc5MDUsIDAuMDA3OTEyLCAwLjAwNzkyNSwgMC4wMDc5MjgsIDAuMDA3OTMsIDAuMDA3OTMxLCAwLjAwNzkzMiIsIFwKLSAgICAgICAgICAiMC4wMDc4OTksIDAuMDA3OTA3LCAwLjAwNzkyLCAwLjAwNzkyMywgMC4wMDc5MjQsIDAuMDA3OTI2LCAwLjAwNzkyNiIsIFwKLSAgICAgICAgICAiMC4wMDc4OTQsIDAuMDA3OTAxLCAwLjAwNzkxNCwgMC4wMDc5MTcsIDAuMDA3OTE5LCAwLjAwNzkyMSwgMC4wMDc5MjEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDc3NTMsIDAuMDA3NzY1LCAwLjAwNzc4NywgMC4wMDc3OTIsIDAuMDA3Nzk1LCAwLjAwNzc5OCwgMC4wMDc3OTkiLCBcCi0gICAgICAgICAgIjAuMDA3NzM0LCAwLjAwNzc0NSwgMC4wMDc3NjcsIDAuMDA3NzczLCAwLjAwNzc3NiwgMC4wMDc3NzksIDAuMDA3NzgxIiwgXAotICAgICAgICAgICIwLjAwNzcyMSwgMC4wMDc3MzIsIDAuMDA3NzU0LCAwLjAwNzc1OSwgMC4wMDc3NjMsIDAuMDA3NzY2LCAwLjAwNzc2NiIsIFwKLSAgICAgICAgICAiMC4wMDc3MSwgMC4wMDc3MjIsIDAuMDA3NzQ0LCAwLjAwNzc0OSwgMC4wMDc3NTMsIDAuMDA3NzU2LCAwLjAwNzc1NiIsIFwKLSAgICAgICAgICAiMC4wMDc3MDMsIDAuMDA3NzE0LCAwLjAwNzczNiwgMC4wMDc3NDIsIDAuMDA3NzQ1LCAwLjAwNzc0OCwgMC4wMDc3NDkiLCBcCi0gICAgICAgICAgIjAuMDA3NjkzLCAwLjAwNzcwNSwgMC4wMDc3MjcsIDAuMDA3NzMyLCAwLjAwNzczNiwgMC4wMDc3MzgsIDAuMDA3NzM5IiwgXAotICAgICAgICAgICIwLjAwNzY4NywgMC4wMDc2OTgsIDAuMDA3NzIsIDAuMDA3NzI2LCAwLjAwNzcyOSwgMC4wMDc3MzIsIDAuMDA3NzMzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0MzUyLCAwLjAwNDM1OSwgMC4wMDQzNjgsIDAuMDA0MzcsIDAuMDA0MzcxLCAwLjAwNDM3MiwgMC4wMDQzNzQiLCBcCi0gICAgICAgICAgIjAuMDA0MzU4LCAwLjAwNDM2NCwgMC4wMDQzNzQsIDAuMDA0Mzc1LCAwLjAwNDM3NiwgMC4wMDQzNzgsIDAuMDA0Mzc5IiwgXAotICAgICAgICAgICIwLjAwNDM3MywgMC4wMDQzNzksIDAuMDA0Mzg5LCAwLjAwNDM5MSwgMC4wMDQzOTIsIDAuMDA0MzkzLCAwLjAwNDM5MyIsIFwKLSAgICAgICAgICAiMC4wMDQzODgsIDAuMDA0Mzk1LCAwLjAwNDQwNSwgMC4wMDQ0MDcsIDAuMDA0NDA4LCAwLjAwNDQwOSwgMC4wMDQ0MDkiLCBcCi0gICAgICAgICAgIjAuMDA0NDAzLCAwLjAwNDQxLCAwLjAwNDQyLCAwLjAwNDQyMiwgMC4wMDQ0MjQsIDAuMDA0NDI1LCAwLjAwNDQyNSIsIFwKLSAgICAgICAgICAiMC4wMDQ0MjUsIDAuMDA0NDMyLCAwLjAwNDQ0NCwgMC4wMDQ0NDYsIDAuMDA0NDQ3LCAwLjAwNDQ0OSwgMC4wMDQ0NDkiLCBcCi0gICAgICAgICAgIjAuMDA0NDUzLCAwLjAwNDQ2LCAwLjAwNDQ3MiwgMC4wMDQ0NzUsIDAuMDA0NDc2LCAwLjAwNDQ3OCwgMC4wMDQ0NzgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDUwNiwgMC4wMDUwNzEsIDAuMDA1MDkzLCAwLjAwNTA5OCwgMC4wMDUxMDEsIDAuMDA1MTA0LCAwLjAwNTEwNiIsIFwKLSAgICAgICAgICAiMC4wMDUwNDMsIDAuMDA1MDU1LCAwLjAwNTA3NiwgMC4wMDUwODEsIDAuMDA1MDg0LCAwLjAwNTA4NywgMC4wMDUwODgiLCBcCi0gICAgICAgICAgIjAuMDA1MDQ0LCAwLjAwNTA1NSwgMC4wMDUwNzcsIDAuMDA1MDgyLCAwLjAwNTA4NSwgMC4wMDUwODgsIDAuMDA1MDg5IiwgXAotICAgICAgICAgICIwLjAwNTA1MywgMC4wMDUwNjQsIDAuMDA1MDg2LCAwLjAwNTA5MSwgMC4wMDUwOTQsIDAuMDA1MDk3LCAwLjAwNTA5OCIsIFwKLSAgICAgICAgICAiMC4wMDUwNjQsIDAuMDA1MDc1LCAwLjAwNTA5NiwgMC4wMDUxMDIsIDAuMDA1MTA1LCAwLjAwNTEwOCwgMC4wMDUxMDkiLCBcCi0gICAgICAgICAgIjAuMDA1MDg2LCAwLjAwNTA5NywgMC4wMDUxMTgsIDAuMDA1MTI0LCAwLjAwNTEyNywgMC4wMDUxMywgMC4wMDUxMzEiLCBcCi0gICAgICAgICAgIjAuMDA1MTE1LCAwLjAwNTEyNiwgMC4wMDUxNDcsIDAuMDA1MTUzLCAwLjAwNTE1NiwgMC4wMDUxNiwgMC4wMDUxNjEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI5NywgMC4wMDI5NzQsIDAuMDAyOTgsIDAuMDAyOTgxLCAwLjAwMjk4MiwgMC4wMDI5ODIsIDAuMDAyOTgyIiwgXAotICAgICAgICAgICIwLjAwMjk3NywgMC4wMDI5ODIsIDAuMDAyOTg4LCAwLjAwMjk4OSwgMC4wMDI5OSwgMC4wMDI5ODksIDAuMDAyOTkiLCBcCi0gICAgICAgICAgIjAuMDAyOTk4LCAwLjAwMzAwMywgMC4wMDMwMDksIDAuMDAzMDExLCAwLjAwMzAxMSwgMC4wMDMwMTIsIDAuMDAzMDEyIiwgXAotICAgICAgICAgICIwLjAwMzAxNCwgMC4wMDMwMTgsIDAuMDAzMDI1LCAwLjAwMzAyNiwgMC4wMDMwMjksIDAuMDAzMDI4LCAwLjAwMzAzIiwgXAotICAgICAgICAgICIwLjAwMzAzMywgMC4wMDMwMzgsIDAuMDAzMDQ1LCAwLjAwMzA0NywgMC4wMDMwNDgsIDAuMDAzMDQ4LCAwLjAwMzA0OSIsIFwKLSAgICAgICAgICAiMC4wMDMwNTgsIDAuMDAzMDYzLCAwLjAwMzA3MSwgMC4wMDMwNzIsIDAuMDAzMDc0LCAwLjAwMzA3NSwgMC4wMDMwNzUiLCBcCi0gICAgICAgICAgIjAuMDAzMDcsIDAuMDAzMDc0LCAwLjAwMzA4MywgMC4wMDMwODQsIDAuMDAzMDg1LCAwLjAwMzA4NiwgMC4wMDMwODciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI0MDQsIDAuMDAyNDEyLCAwLjAwMjQyMywgMC4wMDI0MjUsIDAuMDAyNDI3LCAwLjAwMjQyOCwgMC4wMDI0MjgiLCBcCi0gICAgICAgICAgIjAuMDAyMzk1LCAwLjAwMjQwMywgMC4wMDI0MTQsIDAuMDAyNDE3LCAwLjAwMjQxOCwgMC4wMDI0MTksIDAuMDAyNDE4IiwgXAotICAgICAgICAgICIwLjAwMjQxMSwgMC4wMDI0MTksIDAuMDAyNDMxLCAwLjAwMjQzNCwgMC4wMDI0MzUsIDAuMDAyNDM2LCAwLjAwMjQzNyIsIFwKLSAgICAgICAgICAiMC4wMDI0MjUsIDAuMDAyNDMyLCAwLjAwMjQ0NSwgMC4wMDI0NDgsIDAuMDAyNDQ5LCAwLjAwMjQ1MSwgMC4wMDI0NTEiLCBcCi0gICAgICAgICAgIjAuMDAyNDQzLCAwLjAwMjQ1MSwgMC4wMDI0NjQsIDAuMDAyNDY3LCAwLjAwMjQ2OSwgMC4wMDI0NywgMC4wMDI0NzEiLCBcCi0gICAgICAgICAgIjAuMDAyNDY3LCAwLjAwMjQ3NSwgMC4wMDI0ODksIDAuMDAyNDkyLCAwLjAwMjQ5NCwgMC4wMDI0OTYsIDAuMDAyNDk2IiwgXAotICAgICAgICAgICIwLjAwMjQ5LCAwLjAwMjQ5OCwgMC4wMDI1MTEsIDAuMDAyNTE1LCAwLjAwMjUxNywgMC4wMDI1MTksIDAuMDAyNTE5Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogWE5PUjNYTCAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChYTk9SM1hMKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMjc4NTQyOwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2OTMzMzY7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjkyOTkyOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDY5MzMzNjsKLSAgfQotICBwaW4oQikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxODE0ODc7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxODE0MjQ7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxODE0ODc7Ci0gIH0KLSAgcGluKEMpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTM0OTAzOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTM0ODEyOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTM0OTAzOwotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMDc1NDg5NDsKLSAgICBmdW5jdGlvbiA6ICIoISgoQV5CKV5DKSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjM4MjIyMSwgMC40MDkxMTIsIDAuNjQ2MTAzLCAxLjAzOTU0LCAxLjQzMzA0LCAyLjM1MTc2LCAyLjg3NTQ5IiwgXAotICAgICAgICAgICIwLjM5Mzc5MywgMC40MjA2NTcsIDAuNjU3NjUyLCAxLjA1MTEsIDEuNDQ0MzQsIDIuMzYzMjcsIDIuODg3MzMiLCBcCi0gICAgICAgICAgIjAuNDA4NjM5LCAwLjQzNTUzMywgMC42NzI1MzEsIDEuMDY1OTcsIDEuNDU5MjcsIDIuMzc3OTEsIDIuOTAxOCIsIFwKLSAgICAgICAgICAiMC40MjMyOTIsIDAuNDUwMTc4LCAwLjY4NzE3OSwgMS4wODA2MywgMS40NzM4OSwgMi4zOTI2MSwgMi45MTYzIiwgXAotICAgICAgICAgICIwLjQzODM0NCwgMC40NjUyMDEsIDAuNzAyMjA0LCAxLjA5NTY3LCAxLjQ4OTEsIDIuNDA3NzEsIDIuOTMxOTYiLCBcCi0gICAgICAgICAgIjAuNDYxNjYsIDAuNDg4NTQ5LCAwLjcyNTU2MiwgMS4xMTkwMywgMS41MTIyNiwgMi40MzEwMywgMi45NTU1MSIsIFwKLSAgICAgICAgICAiMC40ODIzNzUsIDAuNTA5MjU4LCAwLjc0NjI3NiwgMS4xMzk3NSwgMS41MzMxOSwgMi40NTE3OSwgMi45NzYxMyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMDE2NjIsIDAuMzUyNTI2LCAwLjgyMTQxMSwgMS42MTc3MSwgMi40MTAwMSwgNC4yNjk4NiwgNS4zMzQ3OCIsIFwKLSAgICAgICAgICAiMC4zMDE3MjgsIDAuMzUyNzM4LCAwLjgyMTM2NiwgMS42MTc3MywgMi40MTQ5MiwgNC4yNjk4MiwgNS4zMzMzOCIsIFwKLSAgICAgICAgICAiMC4zMDE2NjksIDAuMzUyNzQ1LCAwLjgyMTM2NCwgMS42MTc2OSwgMi40MTU3OCwgNC4yNjk3OCwgNS4zMzEzOCIsIFwKLSAgICAgICAgICAiMC4zMDE3MDcsIDAuMzUyNzQ2LCAwLjgyMTM2LCAxLjYxNzcxLCAyLjQxNTY2LCA0LjI3OTYyLCA1LjMzMTY2IiwgXAotICAgICAgICAgICIwLjMwMTc3OCwgMC4zNTI4MDcsIDAuODIxMzUzLCAxLjYxNzc1LCAyLjQxMTY4LCA0LjI3MzM3LCA1LjMzMjY3IiwgXAotICAgICAgICAgICIwLjMwMTU5NiwgMC4zNTI4NDQsIDAuODIxMzY1LCAxLjYxNzcyLCAyLjQxNTUzLCA0LjI3MzIyLCA1LjMzMTYyIiwgXAotICAgICAgICAgICIwLjMwMTcwOCwgMC4zNTI4NiwgMC44MjEzOCwgMS42MTc3NCwgMi40MTE3OCwgNC4yNzc3MiwgNS4zMzI2NyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMjg0NjEsIDAuMzUwMTk5LCAwLjUzNzcsIDAuODQ2MTIsIDEuMTU0NiwgMS44NzQyNiwgMi4yODUzNyIsIFwKLSAgICAgICAgICAiMC4zMzk3NywgMC4zNjE1MDcsIDAuNTQ5MDMzLCAwLjg1NzQ0MSwgMS4xNjU3OSwgMS44ODU1NiwgMi4yOTY4MyIsIFwKLSAgICAgICAgICAiMC4zNTQyODEsIDAuMzc2MDE0LCAwLjU2MzU2MywgMC44NzE5NTMsIDEuMTgwMjksIDEuOTAwMDgsIDIuMzExNzMiLCBcCi0gICAgICAgICAgIjAuMzY4NDgyLCAwLjM5MDIwNywgMC41Nzc3NDcsIDAuODg2MTksIDEuMTk0NjgsIDEuOTE0MjgsIDIuMzI2MDUiLCBcCi0gICAgICAgICAgIjAuMzgyODAxLCAwLjQwNDUzMSwgMC41OTIwNTYsIDAuOTAwNDg4LCAxLjIwODk0LCAxLjkyODYzLCAyLjM0MDMyIiwgXAotICAgICAgICAgICIwLjQwNTY0MywgMC40MjczNzMsIDAuNjE0OTAyLCAwLjkyMzM0NiwgMS4yMzE4LCAxLjk1MTUsIDIuMzYzMTkiLCBcCi0gICAgICAgICAgIjAuNDI1MzY5LCAwLjQ0NzA5NCwgMC42MzQ2MjUsIDAuOTQzMDgxLCAxLjI1MTU0LCAxLjk3MTIzLCAyLjM4MjkzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI0MTQzMywgMC4yODAwOTEsIDAuNjM2MDU4LCAxLjI0NDU2LCAxLjg1NjcyLCAzLjI4MzkyLCA0LjA5NDkxIiwgXAotICAgICAgICAgICIwLjI0MTQzNCwgMC4yODAwNywgMC42MzU5NjksIDEuMjQyNjksIDEuODU2NjEsIDMuMjc5NzgsIDQuMDk2OTMiLCBcCi0gICAgICAgICAgIjAuMjQxNDQyLCAwLjI4MDI0NywgMC42MzU5MzUsIDEuMjQyMTIsIDEuODU2NzEsIDMuMjc5MTgsIDQuMTAwMjQiLCBcCi0gICAgICAgICAgIjAuMjQxNDM1LCAwLjI4MDI0OCwgMC42MzU5NTEsIDEuMjQyNzEsIDEuODUwNjUsIDMuMjc4NTMsIDQuMDk2MjMiLCBcCi0gICAgICAgICAgIjAuMjQxMzM3LCAwLjI4MDMwOSwgMC42MzY5MzUsIDEuMjQ0ODIsIDEuODU2NzEsIDMuMjc4MjcsIDQuMDk5OTIiLCBcCi0gICAgICAgICAgIjAuMjQxMzg4LCAwLjI4MDMxNSwgMC42MzY5LCAxLjI0NDg1LCAxLjg1NjcxLCAzLjI3NzU2LCA0LjA5OTgyIiwgXAotICAgICAgICAgICIwLjI0MTQ5OSwgMC4yODAzMTgsIDAuNjM2MTY5LCAxLjI0NDksIDEuODU2NzIsIDMuMjg3ODgsIDQuMDk5NzgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuNDYxMjA2LCAwLjQ4ODEyNSwgMC43MjUxMzcsIDEuMTE4NDcsIDEuNTExOTgsIDIuNDMwODQsIDIuOTU0NDciLCBcCi0gICAgICAgICAgIjAuNDcyNTczLCAwLjQ5OTQ5MiwgMC43MzY1MTEsIDEuMTI5ODksIDEuNTIzMzYsIDIuNDQyMTgsIDIuOTY1ODgiLCBcCi0gICAgICAgICAgIjAuNDg3MzI0LCAwLjUxNDIzMSwgMC43NTEyMzUsIDEuMTQ0NTcsIDEuNTM4MDksIDIuNDU2OTQsIDIuOTgwNTgiLCBcCi0gICAgICAgICAgIjAuNTAyMDg3LCAwLjUyODk2NSwgMC43NjU5NiwgMS4xNTkzOCwgMS41NTI4MywgMi40NzE0OSwgMi45OTUxMyIsIFwKLSAgICAgICAgICAiMC41MTY5NDgsIDAuNTQzODUzLCAwLjc4MDg1NywgMS4xNzQxOSwgMS41Njc3MSwgMi40ODY1NiwgMy4wMTAyIiwgXAotICAgICAgICAgICIwLjU0MDE3MSwgMC41NjcwNzgsIDAuODA0MDQ3LCAxLjE5NzQ3LCAxLjU5MDc1LCAyLjUwOTY1LCAzLjAzMzA1IiwgXAotICAgICAgICAgICIwLjU2MDE3OCwgMC41ODcwNDksIDAuODI0MDYyLCAxLjIxNzQ0LCAxLjYxMDkzLCAyLjUyODkyLCAzLjA1MzM5Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMwMTc0OCwgMC4zNTI3MTcsIDAuODIwNDgsIDEuNjE3MjksIDIuNDExNjEsIDQuMjc2ODUsIDUuMzMxNjIiLCBcCi0gICAgICAgICAgIjAuMzAxNzQ4LCAwLjM1MjcxMywgMC44MjA1MTQsIDEuNjE3NTUsIDIuNDExNjUsIDQuMjc4MjIsIDUuMzMxNjUiLCBcCi0gICAgICAgICAgIjAuMzAxNzUzLCAwLjM1MjcyNiwgMC44MjA1MjksIDEuNjE3MywgMi40MTE2MiwgNC4yNjk3NCwgNS4zMzE0MSIsIFwKLSAgICAgICAgICAiMC4zMDE3NTcsIDAuMzUyNjQ1LCAwLjgyMjU1MSwgMS42MTc3LCAyLjQxMTk1LCA0LjI3OTYzLCA1LjMzNDgxIiwgXAotICAgICAgICAgICIwLjMwMTc1MiwgMC4zNTI3MjcsIDAuODIwNTI2LCAxLjYxNzI5LCAyLjQxMTYyLCA0LjI3MzU2LCA1LjMzMTYxIiwgXAotICAgICAgICAgICIwLjMwMTc4MSwgMC4zNTI3MDIsIDAuODIwNTEyLCAxLjYxNzcsIDIuNDE0OTEsIDQuMjcwMzMsIDUuMzM3MDciLCBcCi0gICAgICAgICAgIjAuMzAxNzUxLCAwLjM1MjYzMywgMC44MjIyNDIsIDEuNjE3MSwgMi40MTE2MywgNC4yNzc3MSwgNS4zMzE2MiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC40MDc2NjksIDAuNDI5MzE3LCAwLjYxNjQ0LCAwLjkyNDg3LCAxLjIzMzI2LCAxLjk1Mjk0LCAyLjM2MzY3IiwgXAotICAgICAgICAgICIwLjQxOTM0MywgMC40NDA5MzQsIDAuNjI4MDc5LCAwLjkzNjU2OCwgMS4yNDQ5MiwgMS45NjQ1OCwgMi4zNzU2MiIsIFwKLSAgICAgICAgICAiMC40MzQyNzQsIDAuNDU1OTI1LCAwLjY0MzA0MywgMC45NTE1MzcsIDEuMjU5ODcsIDEuOTc5NTUsIDIuMzkxOTIiLCBcCi0gICAgICAgICAgIjAuNDQ5MjU1LCAwLjQ3MDg4MSwgMC42NTgwMjgsIDAuOTY2NTIxLCAxLjI3NDg4LCAxLjk5NTIzLCAyLjQwNiIsIFwKLSAgICAgICAgICAiMC40NjQ0NTksIDAuNDg2MDEyLCAwLjY3MzE1NiwgMC45ODE2NDYsIDEuMjksIDIuMDEwNTEsIDIuNDIxNjEiLCBcCi0gICAgICAgICAgIjAuNDg4NywgMC41MTAzMzMsIDAuNjk3NDk5LCAxLjAwNTk0LCAxLjMxNDM5LCAyLjAzMzk2LCAyLjQ0NTI4IiwgXAotICAgICAgICAgICIwLjUwOTUzNywgMC41MzExNiwgMC43MTgzMDIsIDEuMDI2OCwgMS4zMzUxNiwgMi4wNTU0OSwgMi40NjYyNiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yNDAzNzEsIDAuMjc4OTgyLCAwLjYzNTQ3NiwgMS4yNDA2MywgMS44NTY0LCAzLjI4NzgzLCA0LjA5NTk3IiwgXAotICAgICAgICAgICIwLjI0MDE2NCwgMC4yNzg4ODksIDAuNjM1NjE4LCAxLjI0MDYyLCAxLjg1NjQyLCAzLjI4NzgyLCA0LjEwMTc3IiwgXAotICAgICAgICAgICIwLjI0MDM2NiwgMC4yNzg5MjUsIDAuNjM1NTg5LCAxLjI0MjM5LCAxLjg1NjM5LCAzLjI4NzgzLCA0LjA5MjQ2IiwgXAotICAgICAgICAgICIwLjI0MDE4NCwgMC4yNzg4ODgsIDAuNjM1NTgzLCAxLjI0NDEyLCAxLjg1NjQzLCAzLjI3NjksIDQuMDkzNjEiLCBcCi0gICAgICAgICAgIjAuMjQwMTk1LCAwLjI3ODg2OSwgMC42MzU1NzUsIDEuMjQ0MDEsIDEuODU2NDIsIDMuMjg3ODUsIDQuMDkzMjciLCBcCi0gICAgICAgICAgIjAuMjQwMTkxLCAwLjI3ODg3NCwgMC42MzU0NTQsIDEuMjQyODUsIDEuODU2MiwgMy4yODc4OSwgNC4wOTIxNiIsIFwKLSAgICAgICAgICAiMC4yNDAxODksIDAuMjc4ODg4LCAwLjYzNTU3NywgMS4yNDIyNiwgMS44NTY0MywgMy4yODc4NCwgNC4wOTI5NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zNTk2MTEsIDAuMzg2NTIsIDAuNjIzNDcxLCAxLjAxNjg0LCAxLjQxMDI5LCAyLjMyODg0LCAyLjg1Mjc0IiwgXAotICAgICAgICAgICIwLjM3MDc5LCAwLjM5NzcwNiwgMC42MzQ2OTUsIDEuMDI4MDIsIDEuNDIxNTIsIDIuMzQwMzQsIDIuODY0MDEiLCBcCi0gICAgICAgICAgIjAuMzg0NjY1LCAwLjQxMTU4OSwgMC42NDg1MDQsIDEuMDQxODksIDEuNDM1MzUsIDIuMzUzOTQsIDIuODc3ODIiLCBcCi0gICAgICAgICAgIjAuMzk4NDAxLCAwLjQyNTI4NywgMC42NjIyNzIsIDEuMDU1NzEsIDEuNDQ5MTEsIDIuMzY3NzYsIDIuODkxODIiLCBcCi0gICAgICAgICAgIjAuNDExNjA5LCAwLjQzODQ5NSwgMC42NzU0ODYsIDEuMDY4OTMsIDEuNDYyMzMsIDIuMzgwOTgsIDIuOTA1MDIiLCBcCi0gICAgICAgICAgIjAuNDMyODE1LCAwLjQ1OTY2MSwgMC42OTY2NDIsIDEuMDkwMDgsIDEuNDgzNTIsIDIuNDAyMDUsIDIuOTI2NDMiLCBcCi0gICAgICAgICAgIjAuNDUwOTY4LCAwLjQ3Nzg3NiwgMC43MTQ4OSwgMS4xMDgyNSwgMS41MDE3NCwgMi40MjA0OCwgMi45NDQzNiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMDE5ODUsIDAuMzUyOTEzLCAwLjgyMjYzLCAxLjYxNzM4LCAyLjQxMTY5LCA0LjI2OTg4LCA1LjMzMjU4IiwgXAotICAgICAgICAgICIwLjMwMTk3OSwgMC4zNTI5MTMsIDAuODIyNjEzLCAxLjYxNzQyLCAyLjQxMTcsIDQuMjcyNDIsIDUuMzMxNjMiLCBcCi0gICAgICAgICAgIjAuMzAxOTksIDAuMzUyOTIyLCAwLjgyMjI4NSwgMS42MTQ2MywgMi40MTE3MSwgNC4yNzk1OCwgNS4zMzE1MyIsIFwKLSAgICAgICAgICAiMC4zMDIwMTcsIDAuMzUyOTQ5LCAwLjgyMjU5LCAxLjYxOTg0LCAyLjQxMTc0LCA0LjI2OTgxLCA1LjMzMzI1IiwgXAotICAgICAgICAgICIwLjMwMjAwNSwgMC4zNTI5MzUsIDAuODIyNTk0LCAxLjYxOTg5LCAyLjQxMTcsIDQuMjcwMSwgNS4zMzI5NSIsIFwKLSAgICAgICAgICAiMC4zMDIwNDQsIDAuMzUyOTY4LCAwLjgyMjQzMiwgMS42MTk1MywgMi40MTIxLCA0LjI3MDExLCA1LjMzMjY5IiwgXAotICAgICAgICAgICIwLjMwMjAzOCwgMC4zNTI5NjUsIDAuODIxMjk2LCAxLjYxNzQzLCAyLjQxMTYxLCA0LjI3MDY1LCA1LjMzMTM1Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI4NzYxOCwgMC4zMDkzODEsIDAuNDk2NjksIDAuODA1MTExLCAxLjExMzUxLCAxLjgzMzIxLCAyLjI0NTA5IiwgXAotICAgICAgICAgICIwLjI5ODcxNywgMC4zMjAzOTYsIDAuNTA3NzkyLCAwLjgxNjE5MiwgMS4xMjQ2MSwgMS44NDQzNywgMi4yNTU5OCIsIFwKLSAgICAgICAgICAiMC4zMTI0NzMsIDAuMzM0MTkxLCAwLjUyMTU1NSwgMC44Mjk5ODUsIDEuMTM4MzcsIDEuODU4MDksIDIuMjY5OTciLCBcCi0gICAgICAgICAgIjAuMzI2MTQxLCAwLjM0NzkyNiwgMC41MzUyNjIsIDAuODQzNjUzLCAxLjE1MjA5LCAxLjg3MTgzLCAyLjI4MzU4IiwgXAotICAgICAgICAgICIwLjMzOTY3NiwgMC4zNjE0LCAwLjU0ODc1NywgMC44NTcyMzgsIDEuMTY1NTksIDEuODg1MywgMi4yOTcxNyIsIFwKLSAgICAgICAgICAiMC4zNjEyMDMsIDAuMzgyODY2LCAwLjU3MDI1NCwgMC44Nzg3NSwgMS4xODcxMiwgMS45MDY4MSwgMi4zMTgwOSIsIFwKLSAgICAgICAgICAiMC4zNzk1NjcsIDAuNDAxMzA4LCAwLjU4ODY3NywgMC44OTcxMzYsIDEuMjA1NTIsIDEuOTI1MjQsIDIuMzM3MTEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjQxMzQ4LCAwLjI3OTksIDAuNjM2MDk0LCAxLjI0NDA0LCAxLjg1NjU4LCAzLjI4Nzg3LCA0LjA5NDI5IiwgXAotICAgICAgICAgICIwLjI0MTE3MiwgMC4yNzk4ODEsIDAuNjM2MDMxLCAxLjI0MTgzLCAxLjg1NjU4LCAzLjI4NzgzLCA0LjEwMDQ2IiwgXAotICAgICAgICAgICIwLjI0MTM0NSwgMC4yNzk4MzksIDAuNjM2NDY2LCAxLjI0NDc4LCAxLjg1NjU4LCAzLjI4NzgzLCA0LjA5NDY0IiwgXAotICAgICAgICAgICIwLjI0MTE4NCwgMC4yNzk5ODcsIDAuNjM1OTc5LCAxLjI0NDI1LCAxLjg1NjU4LCAzLjI4NjMsIDQuMDk3NTkiLCBcCi0gICAgICAgICAgIjAuMjQxMzQ5LCAwLjI3OTg2MiwgMC42MzYyNDgsIDEuMjQ0ODQsIDEuODU2NTgsIDMuMjg3ODMsIDQuMDk2NTciLCBcCi0gICAgICAgICAgIjAuMjQxMjUsIDAuMjc5ODgsIDAuNjM2MTg5LCAxLjI0MTExLCAxLjg1NjYxLCAzLjI4MzQ3LCA0LjA5Njg1IiwgXAotICAgICAgICAgICIwLjI0MTMwMywgMC4yNzk4NTQsIDAuNjM2MTU3LCAxLjI0NDgsIDEuODU2NTgsIDMuMjgxMjgsIDQuMDk0NDMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzQ3MDc1LCAwLjM3MzgxMSwgMC42MTA0ODEsIDEuMDAzNzksIDEuMzk3NjIsIDIuMzE1NjcsIDIuODM5OTEiLCBcCi0gICAgICAgICAgIjAuMzU4NTksIDAuMzg1MzI4LCAwLjYyMjAxOCwgMS4wMTU0MywgMS40MDg3OCwgMi4zMjcyNCwgMi44NTEyMyIsIFwKLSAgICAgICAgICAiMC4zNzI1ODMsIDAuMzk5MzI2LCAwLjYzNjAxLCAxLjAyOTQyLCAxLjQyMjgsIDIuMzQxMTgsIDIuODY1MTYiLCBcCi0gICAgICAgICAgIjAuMzg2NDI0LCAwLjQxMzMxMSwgMC42NTAyNzIsIDEuMDQzNzIsIDEuNDM3MDgsIDIuMzU1NDUsIDIuODc5NzEiLCBcCi0gICAgICAgICAgIjAuNDAxMjcyLCAwLjQyODE2OSwgMC42NjUxNTcsIDEuMDU4NTcsIDEuNDUxODgsIDIuMzcwNzEsIDIuODk0MTIiLCBcCi0gICAgICAgICAgIjAuNDIzOTAyLCAwLjQ1MDgyMiwgMC42ODc4MDIsIDEuMDgxMTIsIDEuNDc0NjQsIDIuMzkzNjIsIDIuOTE3MDkiLCBcCi0gICAgICAgICAgIjAuNDQxNTA0LCAwLjQ2ODM4NiwgMC43MDUzODYsIDEuMDk4NzcsIDEuNDkyMjMsIDIuNDEwOTcsIDIuOTM0NzQiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzAxNTc0LCAwLjM1MjU0NiwgMC44MjI1MjMsIDEuNjE3NjYsIDIuNDEwMTgsIDQuMjY5ODMsIDUuMzM0MTIiLCBcCi0gICAgICAgICAgIjAuMzAxNTg3LCAwLjM1MjYzNCwgMC44MjI0NjksIDEuNjE3NzIsIDIuNDEyMDMsIDQuMjY5ODUsIDUuMzMyOSIsIFwKLSAgICAgICAgICAiMC4zMDE1ODUsIDAuMzUyNiwgMC44MjA1MjksIDEuNjE3MjcsIDIuNDExNTYsIDQuMjY5OTksIDUuMzMxNTkiLCBcCi0gICAgICAgICAgIjAuMzAxNTk1LCAwLjM1MjU5OSwgMC44MjIyMDcsIDEuNjE3NjQsIDIuNDE1OSwgNC4yNjk5OCwgNS4zMzM4MyIsIFwKLSAgICAgICAgICAiMC4zMDE1NjMsIDAuMzUyNTE4LCAwLjgyMDQ0OCwgMS42MTc2NiwgMi40MTEwOSwgNC4yNjk5NCwgNS4zMzM2MiIsIFwKLSAgICAgICAgICAiMC4zMDE1NDcsIDAuMzUyNTU0LCAwLjgyMDM4MywgMS42MTcxNywgMi40MTQ3OCwgNC4yNjk4LCA1LjMzMjYxIiwgXAotICAgICAgICAgICIwLjMwMTU4MywgMC4zNTI1NCwgMC44MjIyMzEsIDEuNjE0NTgsIDIuNDExNzgsIDQuMjc5NTksIDUuMzMxNjIiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzEzNDE3LCAwLjMzNTAyMSwgMC41MjIxNjgsIDAuODMwNjQyLCAxLjEzODk5LCAxLjg1ODcyLCAyLjI3MDQyIiwgXAotICAgICAgICAgICIwLjMyNTMzNywgMC4zNDcwMDMsIDAuNTM0MTI0LCAwLjg0MjU2NCwgMS4xNTA5MSwgMS44NzA1OCwgMi4yODI5NSIsIFwKLSAgICAgICAgICAiMC4zNDA1NDgsIDAuMzYyMTQ0LCAwLjU0OTMxLCAwLjg1Nzc1NCwgMS4xNjYyMiwgMS44ODU3NiwgMi4yOTgxNiIsIFwKLSAgICAgICAgICAiMC4zNTU4MzEsIDAuMzc3NDMxLCAwLjU2NDU3NywgMC44NzMwNiwgMS4xODE0MSwgMS45MDExMSwgMi4zMTI1NSIsIFwKLSAgICAgICAgICAiMC4zNzA3NjcsIDAuMzkyNDU0LCAwLjU3OTU1NywgMC44ODc5OTUsIDEuMTk2MzUsIDEuOTE2MDMsIDIuMzI4NDIiLCBcCi0gICAgICAgICAgIjAuMzk0MzQ4LCAwLjQxNTk1NywgMC42MDMxLCAwLjkxMTU5MywgMS4yMTk5NSwgMS45NDA0OSwgMi4zNTE1MiIsIFwKLSAgICAgICAgICAiMC40MTMzODcsIDAuNDM0OTg2LCAwLjYyMjE1NywgMC45MzA1OTgsIDEuMjM4OTYsIDEuOTU4NjMsIDIuMzcxMDIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjQwMjY2LCAwLjI3ODk4LCAwLjYzNTY0MiwgMS4yNDQ1NywgMS44NTY0MSwgMy4yODM1NiwgNC4wOTk4MyIsIFwKLSAgICAgICAgICAiMC4yNDA0NDEsIDAuMjc5MDAxLCAwLjYzNTQ4NywgMS4yNDQzMiwgMS44NTYzOSwgMy4yNzkwNiwgNC4wOTEyOSIsIFwKLSAgICAgICAgICAiMC4yNDA0MDIsIDAuMjc4OTg2LCAwLjYzNTUxMiwgMS4yNDQzMiwgMS44NTYyOSwgMy4yODc4OSwgNC4wOTI2OCIsIFwKLSAgICAgICAgICAiMC4yNDAyNjEsIDAuMjc4OTU4LCAwLjYzNTU1OCwgMS4yNDQ1NywgMS44NTY0MiwgMy4yODY1NiwgNC4wOTg5NiIsIFwKLSAgICAgICAgICAiMC4yNDA0MzQsIDAuMjc5MDA2LCAwLjYzNTQzMiwgMS4yNDQzOSwgMS44NTYzOSwgMy4yODc4OCwgNC4wOTE4NyIsIFwKLSAgICAgICAgICAiMC4yNDAyNTYsIDAuMjc4OTQ0LCAwLjYzNTYxMiwgMS4yNDIyLCAxLjg1NjQzLCAzLjI4Nzg1LCA0LjA5Mzg3IiwgXAotICAgICAgICAgICIwLjI0MDM1LCAwLjI3ODkxNSwgMC42MzUzOTksIDEuMjQ0MzMsIDEuODU2MzksIDMuMjc5MDUsIDQuMDk0NjciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjQ2ODE2LCAwLjI3MzY4LCAwLjUxMDQ2MiwgMC45MDM3NjIsIDEuMjk3MjUsIDIuMjE1MDEsIDIuNzM5NTciLCBcCi0gICAgICAgICAgIjAuMjU3MzE0LCAwLjI4NDE2NywgMC41MjA5MzEsIDAuOTE0MjUzLCAxLjMwNzcyLCAyLjIyNTQ3LCAyLjc1MDE3IiwgXAotICAgICAgICAgICIwLjI3MDU0LCAwLjI5NzM5NSwgMC41MzQxNDksIDAuOTI3NTE0LCAxLjMyMSwgMi4yMzk3OCwgMi43NjMyOSIsIFwKLSAgICAgICAgICAiMC4yODM2NjgsIDAuMzEwNTE4LCAwLjU0NzMzNywgMC45NDA2MiwgMS4zMzQxOCwgMi4yNTI3OCwgMi43NzY2MyIsIFwKLSAgICAgICAgICAiMC4yOTY4OTEsIDAuMzIzNjk5LCAwLjU2MDU0MywgMC45NTM4OTQsIDEuMzQ3NTIsIDIuMjY1OTcsIDIuNzg5MzgiLCBcCi0gICAgICAgICAgIjAuMzE3OTUyLCAwLjM0NDc1NCwgMC41ODE2MDYsIDAuOTc0OTcsIDEuMzY4NDUsIDIuMjg3MDEsIDIuODEwNjIiLCBcCi0gICAgICAgICAgIjAuMzM2MDk5LCAwLjM2MjkzNywgMC41OTk3NTMsIDAuOTkzMSwgMS4zODY2NSwgMi4zMDQzMSwgMi44Mjg5NyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMDA3MzQsIDAuMzUxODY1LCAwLjgyMjI3LCAxLjYxMzU1LCAyLjQwOTg0LCA0LjI3MzQ0LCA1LjMzNDc3IiwgXAotICAgICAgICAgICIwLjMwMDY1LCAwLjM1MTgwMywgMC44MjIyOSwgMS42MTc2MSwgMi40MTE3MSwgNC4yNzc1LCA1LjMzMDQ2IiwgXAotICAgICAgICAgICIwLjMwMDU4MiwgMC4zNTE3NDMsIDAuODIyMDUyLCAxLjYxMzcxLCAyLjQxMTI5LCA0LjI3MTA3LCA1LjMzMTU4IiwgXAotICAgICAgICAgICIwLjMwMDQzMywgMC4zNTE2NDEsIDAuODIyMTYzLCAxLjYxNzMzLCAyLjQxMDEsIDQuMjY5ODMsIDUuMzMwMjgiLCBcCi0gICAgICAgICAgIjAuMzAwMjY5LCAwLjM1MTQ1LCAwLjgyMjExLCAxLjYxNzU1LCAyLjQxMDQ3LCA0LjI2OTgyLCA1LjMzNzM3IiwgXAotICAgICAgICAgICIwLjI5OTg5NCwgMC4zNTExMzMsIDAuODIxODQyLCAxLjYxNzQ5LCAyLjQwOTM4LCA0LjI2OTgsIDUuMzMzODgiLCBcCi0gICAgICAgICAgIjAuMjk5Njc5LCAwLjM1MDkxNiwgMC44MjE4MzgsIDEuNjE3MzksIDIuNDEyMiwgNC4yNjk3NiwgNS4zMzE1Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIwNjI5NiwgMC4yMjc3NjksIDAuNDE0NDE4LCAwLjcyMjg0OCwgMS4wMzExMywgMS43NTEyNSwgMi4xNjI0MiIsIFwKLSAgICAgICAgICAiMC4yMTY1MDMsIDAuMjM3OTY1LCAwLjQyNDYyNiwgMC43MzMwNjUsIDEuMDQxNTYsIDEuNzYwOTUsIDIuMTcyNDEiLCBcCi0gICAgICAgICAgIjAuMjI5MzA0LCAwLjI1MDczNSwgMC40Mzc0MDYsIDAuNzQ1ODU0LCAxLjA1NDEyLCAxLjc3Mzc0LCAyLjE4NTg0IiwgXAotICAgICAgICAgICIwLjI0MjE3MywgMC4yNjM2MzEsIDAuNDUwMywgMC43NTg3NDgsIDEuMDY3MTgsIDEuNzg2NjMsIDIuMTk4MDMiLCBcCi0gICAgICAgICAgIjAuMjU0NjYsIDAuMjc2MTIzLCAwLjQ2Mjc3NiwgMC43NzExNjcsIDEuMDc5NTUsIDEuNzk5MjIsIDIuMjExNDMiLCBcCi0gICAgICAgICAgIjAuMjc0NzUxLCAwLjI5NjE3LCAwLjQ4MjgzLCAwLjc5MTI4NywgMS4wOTk2NCwgMS44MTkyNiwgMi4yMzEzMSIsIFwKLSAgICAgICAgICAiMC4yOTA5NzUsIDAuMzEyNDQ3LCAwLjQ5OTA5MSwgMC44MDc1MzMsIDEuMTE1ODUsIDEuODM1NzIsIDIuMjQ3NTUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjM4MiwgMC4yNzcwODksIDAuNjM0Nzk3LCAxLjI0NDA1LCAxLjg1NjI2LCAzLjI4Nzg0LCA0LjA5MjA5IiwgXAotICAgICAgICAgICIwLjIzODEzNywgMC4yNzcwMzgsIDAuNjM0ODY4LCAxLjI0NDI1LCAxLjg1MzA4LCAzLjI4Nzg0LCA0LjA5NjgxIiwgXAotICAgICAgICAgICIwLjIzNzk4OCwgMC4yNzY5MTEsIDAuNjM0NzU4LCAxLjI0MDQzLCAxLjg1NjI1LCAzLjI4Nzg1LCA0LjA5MjYxIiwgXAotICAgICAgICAgICIwLjIzNzc3NCwgMC4yNzY3MjUsIDAuNjM0NzYsIDEuMjQ0MjEsIDEuODQ5ODUsIDMuMjg3ODQsIDQuMDkxMjciLCBcCi0gICAgICAgICAgIjAuMjM3NjI0LCAwLjI3NjUwOCwgMC42MzQ2OTIsIDEuMjQ0MTgsIDEuODU2MjQsIDMuMjc4MzksIDQuMDkxODUiLCBcCi0gICAgICAgICAgIjAuMjM3MDUxLCAwLjI3NjA1OCwgMC42MzQ1NTgsIDEuMjQ0MTQsIDEuODU2MzYsIDMuMjg3ODIsIDQuMDkyNTYiLCBcCi0gICAgICAgICAgIjAuMjM2OTA0LCAwLjI3NTkwNywgMC42MzQ1NDMsIDEuMjQ0MTEsIDEuODU2MjMsIDMuMjg2NTMsIDQuMDk0ODQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjU2NTkxLCAwLjI4MzMxMiwgMC41MTk5MDgsIDAuOTEzMjU1LCAxLjMwNjkyLCAyLjIyNDk3LCAyLjc0OTYzIiwgXAotICAgICAgICAgICIwLjI2ODY5OCwgMC4yOTU0NTUsIDAuNTMyMDQ2LCAwLjkyNTMxOSwgMS4zMTkwOCwgMi4yMzcxNywgMi43NjE2NyIsIFwKLSAgICAgICAgICAiMC4yODMzNDIsIDAuMzEwMDc2LCAwLjU0NjYxNywgMC45Mzk5ODMsIDEuMzMzMzksIDIuMjUxNzksIDIuNzc2MzUiLCBcCi0gICAgICAgICAgIjAuMjk3MjY0LCAwLjMyMzk3OSwgMC41NjA1OTMsIDAuOTUzOTUyLCAxLjM0NzYxLCAyLjI2NTY0LCAyLjc5MDE2IiwgXAotICAgICAgICAgICIwLjMwOTc3NSwgMC4zMzY0NjksIDAuNTczMDk5LCAwLjk2NjQzNSwgMS4zNTk5NywgMi4yNzg0NSwgMi44MDIzMiIsIFwKLSAgICAgICAgICAiMC4zMjcyODMsIDAuMzUzOTg2LCAwLjU5MDYwNSwgMC45ODM5NDksIDEuMzc3MzcsIDIuMjk2MDEsIDIuODE5NjYiLCBcCi0gICAgICAgICAgIjAuMzQwOTk3LCAwLjM2NzcxMywgMC42MDQzNDIsIDAuOTk3NjkyLCAxLjM5MDk5LCAyLjMwOTYxLCAyLjgzMzkiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjk4NzI0LCAwLjM1MDEwMSwgMC44MjEzMzcsIDEuNjE3MjQsIDIuNDA5OTksIDQuMjY5OTUsIDUuMzMyNTciLCBcCi0gICAgICAgICAgIjAuMjk4NzM0LCAwLjM0OTkwNywgMC44MjEzODksIDEuNjE2ODcsIDIuNDA5OTMsIDQuMjY5NzgsIDUuMzMyNTciLCBcCi0gICAgICAgICAgIjAuMjk4ODI4LCAwLjM1MDAxLCAwLjgyMTM3MiwgMS42MTcxNSwgMi40MTU5NSwgNC4yNjk5NywgNS4zMzI1MSIsIFwKLSAgICAgICAgICAiMC4yOTg3NDIsIDAuMzQ5ODcsIDAuODIxMzEyLCAxLjYxNzIyLCAyLjQxMDA2LCA0LjI3MDE5LCA1LjMzMjY2IiwgXAotICAgICAgICAgICIwLjI5ODc0MiwgMC4zNDk5NTEsIDAuODE5OTExLCAxLjYxNzEzLCAyLjQxNTg2LCA0LjI2OTcyLCA1LjMzNzI5IiwgXAotICAgICAgICAgICIwLjI5ODYwOCwgMC4zNDk4NTksIDAuODIxMzQ3LCAxLjYxNzEyLCAyLjQxNjA0LCA0LjI2OTcyLCA1LjMzMTYiLCBcCi0gICAgICAgICAgIjAuMjk4NTgzLCAwLjM0OTY5MiwgMC44MjEzMTQsIDEuNjE3MTIsIDIuNDE1NTIsIDQuMjY5NzUsIDUuMzMzNSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMjM0MjcsIDAuMjQ1MDY1LCAwLjQzMjMwMSwgMC43NDA3NDUsIDEuMDQ5MDgsIDEuNzY4ODEsIDIuMTgwNzciLCBcCi0gICAgICAgICAgIjAuMjM1NTk0LCAwLjI1NzI1MiwgMC40NDQ0OTQsIDAuNzUyOTU0LCAxLjA2MTMsIDEuNzgwOTEsIDIuMTkyNTYiLCBcCi0gICAgICAgICAgIjAuMjUxMTY3LCAwLjI3Mjg0MywgMC40NjAwNTEsIDAuNzY4NDQ3LCAxLjA3Njg0LCAxLjc5NjU3LCAyLjIwODQ3IiwgXAotICAgICAgICAgICIwLjI2NTk1NSwgMC4yODc2MTksIDAuNDc0ODg0LCAwLjc4MzM1NywgMS4wOTE4NCwgMS44MTEzMywgMi4yMjI3MSIsIFwKLSAgICAgICAgICAiMC4yODAwMTEsIDAuMzAxNjUsIDAuNDg4OTEsIDAuNzk3MzExLCAxLjEwNTY5LCAxLjgyNTM5LCAyLjIzNzg3IiwgXAotICAgICAgICAgICIwLjMwMDAxMiwgMC4zMjE2ODUsIDAuNTA4OTI2LCAwLjgxNzM5NCwgMS4xMjU3NCwgMS44NDU1MSwgMi4yNTY5NyIsIFwKLSAgICAgICAgICAiMC4zMTU2OCwgMC4zMzczNSwgMC41MjQ1NjMsIDAuODMzMDI4LCAxLjE0MTM3LCAxLjg2MTExLCAyLjI3Mjk4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIzOTk4OCwgMC4yNzg2ODksIDAuNjM1OTIyLCAxLjI0NDc0LCAxLjg1NjUsIDMuMjc3MiwgNC4wOTQzMSIsIFwKLSAgICAgICAgICAiMC4yMzk4MTEsIDAuMjc4NjU4LCAwLjYzNTk1OCwgMS4yNDQ3NSwgMS44NTY1MiwgMy4yODc5MSwgNC4wOTg5NSIsIFwKLSAgICAgICAgICAiMC4yNCwgMC4yNzg3MjYsIDAuNjM1NzcxLCAxLjI0MTkyLCAxLjg1NjUxLCAzLjI3NzI2LCA0LjA5NTA1IiwgXAotICAgICAgICAgICIwLjIzOTc3NywgMC4yNzg2MDgsIDAuNjM1NzkxLCAxLjI0MDg3LCAxLjg1MTI3LCAzLjI4Nzg2LCA0LjA5MTIzIiwgXAotICAgICAgICAgICIwLjIzOTgzOSwgMC4yNzg1MjIsIDAuNjM2MDkxLCAxLjI0NDc5LCAxLjg1NjUsIDMuMjc4NCwgNC4wOTcyNyIsIFwKLSAgICAgICAgICAiMC4yMzk1MzQsIDAuMjc4NDY3LCAwLjYzNTc0LCAxLjI0NDczLCAxLjg1NjUxLCAzLjI3OTM4LCA0LjA5NzU4IiwgXAotICAgICAgICAgICIwLjIzOTU5MywgMC4yNzg1NjEsIDAuNjM1NjgzLCAxLjI0NDcyLCAxLjg1NjQ5LCAzLjI3NjYzLCA0LjA5OTA4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA3NTM4LCAwLjAwNzU0LCAwLjAwNzU1MSwgMC4wMDc1NTYsIDAuMDA3NTU3LCAwLjAwNzU1OSwgMC4wMDc1NTkiLCBcCi0gICAgICAgICAgIjAuMDA3NTI3LCAwLjAwNzUzLCAwLjAwNzU0LCAwLjAwNzU0NSwgMC4wMDc1NDcsIDAuMDA3NTQ3LCAwLjAwNzU0OSIsIFwKLSAgICAgICAgICAiMC4wMDc1MTksIDAuMDA3NTIxLCAwLjAwNzUzMiwgMC4wMDc1MzYsIDAuMDA3NTM4LCAwLjAwNzU0LCAwLjAwNzU0IiwgXAotICAgICAgICAgICIwLjAwNzUxMiwgMC4wMDc1MTUsIDAuMDA3NTI1LCAwLjAwNzUzLCAwLjAwNzUzMSwgMC4wMDc1MzMsIDAuMDA3NTM0IiwgXAotICAgICAgICAgICIwLjAwNzUwNywgMC4wMDc1MDksIDAuMDA3NTE5LCAwLjAwNzUyNCwgMC4wMDc1MjYsIDAuMDA3NTI4LCAwLjAwNzUyOCIsIFwKLSAgICAgICAgICAiMC4wMDc1LCAwLjAwNzUwMiwgMC4wMDc1MTMsIDAuMDA3NTE3LCAwLjAwNzUxOSwgMC4wMDc1MjEsIDAuMDA3NTIxIiwgXAotICAgICAgICAgICIwLjAwNzQ5NywgMC4wMDc1LCAwLjAwNzUxLCAwLjAwNzUxNSwgMC4wMDc1MTcsIDAuMDA3NTE5LCAwLjAwNzUxOSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNzQyOSwgMC4wMDc0MzEsIDAuMDA3NDQsIDAuMDA3NDQ0LCAwLjAwNzQ0NiwgMC4wMDc0NDcsIDAuMDA3NDQ3IiwgXAotICAgICAgICAgICIwLjAwNzQxNSwgMC4wMDc0MTcsIDAuMDA3NDI2LCAwLjAwNzQzLCAwLjAwNzQzMSwgMC4wMDc0MzMsIDAuMDA3NDMzIiwgXAotICAgICAgICAgICIwLjAwNzQwNCwgMC4wMDc0MDYsIDAuMDA3NDE1LCAwLjAwNzQxOSwgMC4wMDc0MiwgMC4wMDc0MjIsIDAuMDA3NDIyIiwgXAotICAgICAgICAgICIwLjAwNzM5NiwgMC4wMDczOTgsIDAuMDA3NDA3LCAwLjAwNzQxMSwgMC4wMDc0MTMsIDAuMDA3NDE0LCAwLjAwNzQxNCIsIFwKLSAgICAgICAgICAiMC4wMDczOSwgMC4wMDczOTIsIDAuMDA3NDAxLCAwLjAwNzQwNSwgMC4wMDc0MDYsIDAuMDA3NDA4LCAwLjAwNzQwOCIsIFwKLSAgICAgICAgICAiMC4wMDczOCwgMC4wMDczODMsIDAuMDA3MzkyLCAwLjAwNzM5NiwgMC4wMDczOTcsIDAuMDA3Mzk4LCAwLjAwNzM5OSIsIFwKLSAgICAgICAgICAiMC4wMDczNzUsIDAuMDA3Mzc4LCAwLjAwNzM4NywgMC4wMDczOTEsIDAuMDA3MzkyLCAwLjAwNzM5MywgMC4wMDczOTQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQwODYsIDAuMDA0MDg4LCAwLjAwNDA5NiwgMC4wMDQwOTksIDAuMDA0MSwgMC4wMDQxMDEsIDAuMDA0MTAyIiwgXAotICAgICAgICAgICIwLjAwNDA4OCwgMC4wMDQwOSwgMC4wMDQwOTksIDAuMDA0MTAxLCAwLjAwNDEwMywgMC4wMDQxMDQsIDAuMDA0MTA0IiwgXAotICAgICAgICAgICIwLjAwNDEwMSwgMC4wMDQxMDMsIDAuMDA0MTEyLCAwLjAwNDExNSwgMC4wMDQxMTYsIDAuMDA0MTE3LCAwLjAwNDExNyIsIFwKLSAgICAgICAgICAiMC4wMDQxMTYsIDAuMDA0MTE5LCAwLjAwNDEyNywgMC4wMDQxMzEsIDAuMDA0MTMyLCAwLjAwNDEzMywgMC4wMDQxMzMiLCBcCi0gICAgICAgICAgIjAuMDA0MTMsIDAuMDA0MTMyLCAwLjAwNDE0MSwgMC4wMDQxNDQsIDAuMDA0MTQ2LCAwLjAwNDE0NywgMC4wMDQxNDciLCBcCi0gICAgICAgICAgIjAuMDA0MTUxLCAwLjAwNDE1MywgMC4wMDQxNjMsIDAuMDA0MTY3LCAwLjAwNDE2OCwgMC4wMDQxNjksIDAuMDA0MTciLCBcCi0gICAgICAgICAgIjAuMDA0MTc5LCAwLjAwNDE4MSwgMC4wMDQxOTEsIDAuMDA0MTk1LCAwLjAwNDE5NywgMC4wMDQxOTgsIDAuMDA0MTk5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0Nzg3LCAwLjAwNDc4OSwgMC4wMDQ3OTgsIDAuMDA0ODAyLCAwLjAwNDgwMywgMC4wMDQ4MDQsIDAuMDA0ODA1IiwgXAotICAgICAgICAgICIwLjAwNDc3LCAwLjAwNDc3MiwgMC4wMDQ3ODEsIDAuMDA0Nzg1LCAwLjAwNDc4NiwgMC4wMDQ3ODcsIDAuMDA0Nzg3IiwgXAotICAgICAgICAgICIwLjAwNDc2OSwgMC4wMDQ3NzEsIDAuMDA0NzgsIDAuMDA0NzgzLCAwLjAwNDc4NSwgMC4wMDQ3ODYsIDAuMDA0Nzg2IiwgXAotICAgICAgICAgICIwLjAwNDc4MiwgMC4wMDQ3ODQsIDAuMDA0NzkzLCAwLjAwNDc5NywgMC4wMDQ3OTgsIDAuMDA0Nzk5LCAwLjAwNDgiLCBcCi0gICAgICAgICAgIjAuMDA0Nzg4LCAwLjAwNDc5LCAwLjAwNDc5OCwgMC4wMDQ4MDIsIDAuMDA0ODA0LCAwLjAwNDgwNSwgMC4wMDQ4MDYiLCBcCi0gICAgICAgICAgIjAuMDA0ODA4LCAwLjAwNDgxMSwgMC4wMDQ4MTksIDAuMDA0ODIzLCAwLjAwNDgyNSwgMC4wMDQ4MjYsIDAuMDA0ODI3IiwgXAotICAgICAgICAgICIwLjAwNDgzNywgMC4wMDQ4MzksIDAuMDA0ODQ4LCAwLjAwNDg1MiwgMC4wMDQ4NTQsIDAuMDA0ODU2LCAwLjAwNDg1NiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjc5MiwgMC4wMDI3OTQsIDAuMDAyNzk5LCAwLjAwMjgwMSwgMC4wMDI4MDEsIDAuMDAyODAyLCAwLjAwMjgwMiIsIFwKLSAgICAgICAgICAiMC4wMDI3OTYsIDAuMDAyNzk3LCAwLjAwMjgwMiwgMC4wMDI4MDQsIDAuMDAyODA1LCAwLjAwMjgwNiwgMC4wMDI4MDUiLCBcCi0gICAgICAgICAgIjAuMDAyODE0LCAwLjAwMjgxNSwgMC4wMDI4MjEsIDAuMDAyODIzLCAwLjAwMjgyNCwgMC4wMDI4MjQsIDAuMDAyODI1IiwgXAotICAgICAgICAgICIwLjAwMjgzMiwgMC4wMDI4MzMsIDAuMDAyODQsIDAuMDAyODQxLCAwLjAwMjg0MiwgMC4wMDI4NDMsIDAuMDAyODQzIiwgXAotICAgICAgICAgICIwLjAwMjg0OSwgMC4wMDI4NSwgMC4wMDI4NTYsIDAuMDAyODU5LCAwLjAwMjg1OSwgMC4wMDI4NjEsIDAuMDAyODYxIiwgXAotICAgICAgICAgICIwLjAwMjg3NCwgMC4wMDI4NzYsIDAuMDAyODgyLCAwLjAwMjg4NSwgMC4wMDI4ODYsIDAuMDAyODg3LCAwLjAwMjg4NyIsIFwKLSAgICAgICAgICAiMC4wMDI4ODUsIDAuMDAyODg3LCAwLjAwMjg5MywgMC4wMDI4OTYsIDAuMDAyODk3LCAwLjAwMjg5OCwgMC4wMDI4OTkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDIyMDgsIDAuMDAyMjA5LCAwLjAwMjIxMywgMC4wMDIyMTUsIDAuMDAyMjE1LCAwLjAwMjIxNiwgMC4wMDIyMTYiLCBcCi0gICAgICAgICAgIjAuMDAyMTk5LCAwLjAwMjIsIDAuMDAyMjA0LCAwLjAwMjIwNiwgMC4wMDIyMDcsIDAuMDAyMjA3LCAwLjAwMjIwNyIsIFwKLSAgICAgICAgICAiMC4wMDIyMTYsIDAuMDAyMjE4LCAwLjAwMjIyMiwgMC4wMDIyMjQsIDAuMDAyMjI1LCAwLjAwMjIyNSwgMC4wMDIyMjUiLCBcCi0gICAgICAgICAgIjAuMDAyMjI5LCAwLjAwMjIzMSwgMC4wMDIyMzYsIDAuMDAyMjM4LCAwLjAwMjIzOCwgMC4wMDIyMzksIDAuMDAyMjM5IiwgXAotICAgICAgICAgICIwLjAwMjI0OCwgMC4wMDIyNDksIDAuMDAyMjU0LCAwLjAwMjI1NywgMC4wMDIyNTcsIDAuMDAyMjU4LCAwLjAwMjI1OCIsIFwKLSAgICAgICAgICAiMC4wMDIyNzMsIDAuMDAyMjc0LCAwLjAwMjI4LCAwLjAwMjI4MiwgMC4wMDIyODMsIDAuMDAyMjg0LCAwLjAwMjI4NCIsIFwKLSAgICAgICAgICAiMC4wMDIyOTUsIDAuMDAyMjk2LCAwLjAwMjMwMiwgMC4wMDIzMDUsIDAuMDAyMzA2LCAwLjAwMjMwNiwgMC4wMDIzMDciKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IEFORDJYMSAqCi0gKiAtLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKEFORDJYMSkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjA1NTk4MzY7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYxNDczMjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MTQ3MzI7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjEzNjY5OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDE2NSwgMC4wMDAxNjUsIDAuMDAwMTY1LCAwLjAwMDE2NSwgMC4wMDAxNjUsIDAuMDAwMTY1LCAwLjAwMDE2NSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDE2OSwgMC4wMDAxNjcsIDAuMDAwMTY2LCAwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjE1OTk3OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYxNTc2MTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2MTU5OTc7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMDY3LCAwLjAwMDA2NywgMC4wMDAwNjcsIDAuMDAwMDY3LCAwLjAwMDA2NywgMC4wMDAwNjcsIDAuMDAwMDY3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMTg4LCAwLjAwMDE4OCwgMC4wMDAxODgsIDAuMDAwMTg4LCAwLjAwMDE4OCwgMC4wMDAxODgsIDAuMDAwMTg4Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMTMxMjI0OwotICAgIGZ1bmN0aW9uIDogIihBIEIpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNzM4NTMsIDAuMjE3MzI3LCAwLjQ2MjA1NiwgMC42Nzc5ODUsIDAuOTY1NTQ3LCAxLjU0MTA1LCAxLjkwMDg1IiwgXAotICAgICAgICAgICIwLjE4NTM3OCwgMC4yMjg4ODYsIDAuNDczNjAyLCAwLjY4OTU0MSwgMC45NzczNzMsIDEuNTUyNTYsIDEuOTEyMyIsIFwKLSAgICAgICAgICAiMC4xOTkwNTQsIDAuMjQyNTI2LCAwLjQ4NzI1NSwgMC43MDMxNjksIDAuOTkxMjUsIDEuNTY2NDQsIDEuOTI2MDQiLCBcCi0gICAgICAgICAgIjAuMjEyOTE5LCAwLjI1NjM4NywgMC41MDExODEsIDAuNzE2OTA3LCAxLjAwNTA5LCAxLjU4MDMsIDEuOTQwMjIiLCBcCi0gICAgICAgICAgIjAuMjI2NzI3LCAwLjI3MDIyMSwgMC41MTUwMDgsIDAuNzMwNzUxLCAxLjAxODkzLCAxLjU5NDE0LCAxLjk1MzcxIiwgXAotICAgICAgICAgICIwLjI0ODAxMiwgMC4yOTE0OTMsIDAuNTM2MjQzLCAwLjc1MjE0MywgMS4wMzk5NSwgMS42MTUzMiwgMS45NzUxNSIsIFwKLSAgICAgICAgICAiMC4yNjY1MTcsIDAuMzEwMDQ1LCAwLjU1NDc5NCwgMC43NzA3NTgsIDEuMDU4NzEsIDEuNjMzODIsIDEuOTk0MDMiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTY2OTEyLCAwLjI1MTkzMywgMC43NDc1ODIsIDEuMTgyNTksIDEuNzcwOSwgMi45NDI2NiwgMy42NjQ4MSIsIFwKLSAgICAgICAgICAiMC4xNjY4OTcsIDAuMjUxODY4LCAwLjc0NDMzNywgMS4xODI1LCAxLjc2NzQ3LCAyLjk0MjY1LCAzLjY3NDg1IiwgXAotICAgICAgICAgICIwLjE2Njc1OSwgMC4yNTIwNzIsIDAuNzQ3NDE2LCAxLjE4MjY2LCAxLjc2NzU1LCAyLjk0Mjk2LCAzLjY2NDk5IiwgXAotICAgICAgICAgICIwLjE2Njc3OSwgMC4yNTE5ODYsIDAuNzQ0MzUxLCAxLjE4NTA5LCAxLjc2Njc1LCAyLjkzNDMxLCAzLjY2NjEiLCBcCi0gICAgICAgICAgIjAuMTY2NzE1LCAwLjI1MTk1NSwgMC43NDQ1NTYsIDEuMTg1MTIsIDEuNzY2NzMsIDIuOTM0MzQsIDMuNjY1MDQiLCBcCi0gICAgICAgICAgIjAuMTY2NzU1LCAwLjI1MTk4MSwgMC43NDY0MTQsIDEuMTgxODUsIDEuNzY4MjYsIDIuOTM1MDUsIDMuNjY5MTciLCBcCi0gICAgICAgICAgIjAuMTY3MDMzLCAwLjI1MTkzNiwgMC43NDcyNzgsIDEuMTgyNDksIDEuNzY2OCwgMi45MzUwMywgMy42Njg4NSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMzYzMTEsIDAuMTg1ODI5LCAwLjQ2NTgwMiwgMC43MTI3MywgMS4wNDE4OCwgMS43MDAyLCAyLjExMTU1IiwgXAotICAgICAgICAgICIwLjE0Nzg4MiwgMC4xOTc0MDcsIDAuNDc3NCwgMC43MjQzMTIsIDEuMDUzNDUsIDEuNzExNzYsIDIuMTIzMjMiLCBcCi0gICAgICAgICAgIjAuMTYyNzAxLCAwLjIxMjI0NCwgMC40OTIyNDMsIDAuNzM5MTUsIDEuMDY4MzMsIDEuNzI2NjMsIDIuMTM4IiwgXAotICAgICAgICAgICIwLjE3NzM4NCwgMC4yMjY5MTIsIDAuNTA2OTYyLCAwLjc1Mzg3LCAxLjA4MzA4LCAxLjc0MTMzLCAyLjE1Mjc1IiwgXAotICAgICAgICAgICIwLjE5MTYsIDAuMjQxMTM4LCAwLjUyMTE5NCwgMC43NjgxMTUsIDEuMDk3MjcsIDEuNzU1NTgsIDIuMTY3MDEiLCBcCi0gICAgICAgICAgIjAuMjEyNjkzLCAwLjI2MjI0OCwgMC41NDIzMTMsIDAuNzg5MzE4LCAxLjExODQyLCAxLjc3NjcsIDIuMTg4MTQiLCBcCi0gICAgICAgICAgIjAuMjI5NTE5LCAwLjI3OTA1MiwgMC41NTkxNDUsIDAuODA2MDQzLCAxLjEzNTI3LCAxLjc5MzUsIDIuMjA0OTUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTc4NDQzLCAwLjI3NjE0MiwgMC44MzEyMjgsIDEuMzIyOTgsIDEuOTc1NzEsIDMuMjg4NTIsIDQuMTA1NjUiLCBcCi0gICAgICAgICAgIjAuMTc4MzQyLCAwLjI3NTYyMywgMC44MzEyMjgsIDEuMzIyNzcsIDEuOTc5MDEsIDMuMjg0NzksIDQuMTA1NzUiLCBcCi0gICAgICAgICAgIjAuMTc4NDMyLCAwLjI3NjEyNywgMC44MzEyNjEsIDEuMzIxNDQsIDEuOTc1NjYsIDMuMjgzNjgsIDQuMTA1NzIiLCBcCi0gICAgICAgICAgIjAuMTc4NDI5LCAwLjI3NjE5NywgMC44MzE5MTUsIDEuMzIxOTgsIDEuOTc3OTIsIDMuMjg0NDQsIDQuMTAyMDYiLCBcCi0gICAgICAgICAgIjAuMTc4NTI2LCAwLjI3NjI1OCwgMC44MzE5NjcsIDEuMzIyLCAxLjk3ODk4LCAzLjI4NDc0LCA0LjEwMTI2IiwgXAotICAgICAgICAgICIwLjE3ODY5NiwgMC4yNzYzNjUsIDAuODMxMTY4LCAxLjMyMDIxLCAxLjk3NTYxLCAzLjI4OTU2LCA0LjEwMTk5IiwgXAotICAgICAgICAgICIwLjE3OTIxLCAwLjI3NjA3OSwgMC44MzE2NjUsIDEuMzIxNTUsIDEuOTc3NzEsIDMuMjg5NTYsIDQuMTAxOTEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTY4NzQ5LCAwLjIxMjIxMywgMC40NTY5ODQsIDAuNjcyOTIyLCAwLjk2MDk1NiwgMS41MzYyMSwgMS44OTU3MiIsIFwKLSAgICAgICAgICAiMC4xNzg3NTMsIDAuMjIyMjMsIDAuNDY2OTc1LCAwLjY4Mjg5OCwgMC45NzA1MzEsIDEuNTQ1OTgsIDEuOTA1NzciLCBcCi0gICAgICAgICAgIjAuMTkyMDIzLCAwLjIzNTU2NSwgMC40ODAzMTcsIDAuNjk2MjI2LCAwLjk4NDM3MywgMS41NTk0NCwgMS45MTg5NSIsIFwKLSAgICAgICAgICAiMC4yMDYwNDUsIDAuMjQ5NTc2LCAwLjQ5NDM1MSwgMC43MTAyNjIsIDAuOTk3OTU1LCAxLjU3MzQ0LCAxLjkzMzIiLCBcCi0gICAgICAgICAgIjAuMjIwMDUxLCAwLjI2MzU0NCwgMC41MDgzMTUsIDAuNzI0MjMyLCAxLjAxMjM2LCAxLjU4NzQ3LCAxLjk0NzA3IiwgXAotICAgICAgICAgICIwLjI0MTU2MiwgMC4yODUwMzIsIDAuNTI5ODAyLCAwLjc0NTYwNSwgMS4wMzM4MiwgMS42MDkwMSwgMS45Njg0MiIsIFwKLSAgICAgICAgICAiMC4yNjEwMTcsIDAuMzA0NDc4LCAwLjU0OTI2LCAwLjc2NTE4NywgMS4wNTMzMywgMS42MjgzOCwgMS45ODc4OCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNjY5NzQsIDAuMjUxODAyLCAwLjc0NDM1MywgMS4xODI0OSwgMS43Njc1NCwgMi45MzYsIDMuNjc1MTYiLCBcCi0gICAgICAgICAgIjAuMTY2NzI5LCAwLjI1MjA5NiwgMC43NDc1NTYsIDEuMTgyNjIsIDEuNzY3OTMsIDIuOTQyNDYsIDMuNjY0OTYiLCBcCi0gICAgICAgICAgIjAuMTY2NzQ2LCAwLjI1MjAyNywgMC43NDY0MTgsIDEuMTgyNywgMS43Njc1NCwgMi45MzQ4MSwgMy42NjU0MSIsIFwKLSAgICAgICAgICAiMC4xNjY2NDgsIDAuMjUxOTU5LCAwLjc0NjQxNiwgMS4xODI3MywgMS43NjY0NywgMi45NDI1NCwgMy42NjQ3MSIsIFwKLSAgICAgICAgICAiMC4xNjY2OTYsIDAuMjUxOTUsIDAuNzQ2NDAyLCAxLjE4MjczLCAxLjc2NjU5LCAyLjkzNDY2LCAzLjY2NTM1IiwgXAotICAgICAgICAgICIwLjE2NzE4OSwgMC4yNTIxNzcsIDAuNzQ0NDAyLCAxLjE4NTA1LCAxLjc2NjY2LCAyLjkzNDQsIDMuNjc0MzciLCBcCi0gICAgICAgICAgIjAuMTY3MjYsIDAuMjUyMjM5LCAwLjc0NzQxMSwgMS4xODI2NiwgMS43NjcxNiwgMi45MzQ4MiwgMy42NzU2NiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMzMzNywgMC4xODI4MjUsIDAuNDYyODYyLCAwLjcwOTY5MywgMS4wMzkzNiwgMS42OTcyNywgMi4xMDk1NiIsIFwKLSAgICAgICAgICAiMC4xNDQ4NDcsIDAuMTk0MzAxLCAwLjQ3NDE5NiwgMC43MjEzNzQsIDEuMDUwMzksIDEuNzA4OCwgMi4xMjA0IiwgXAotICAgICAgICAgICIwLjE1OTg0LCAwLjIwOTMwNywgMC40ODkyMjQsIDAuNzM2MjIxLCAxLjA2NTc1LCAxLjcyNDY3LCAyLjEzNjU3IiwgXAotICAgICAgICAgICIwLjE3NDMxMiwgMC4yMjM3OTUsIDAuNTAzNzc0LCAwLjc1MDc3OSwgMS4wODAwNiwgMS43Mzk0MywgMi4xNDk3NyIsIFwKLSAgICAgICAgICAiMC4xODgzMzgsIDAuMjM3ODI0LCAwLjUxNzgyNiwgMC43NjQ4MDMsIDEuMDk0MzUsIDEuNzUzMTksIDIuMTY0NjEiLCBcCi0gICAgICAgICAgIjAuMjA4NDkxLCAwLjI1Nzk3MSwgMC41Mzc5OTUsIDAuNzg1MTEsIDEuMTE0MjMsIDEuNzcyODksIDIuMTg0NzgiLCBcCi0gICAgICAgICAgIjAuMjI0NTYsIDAuMjc0MDQxLCAwLjU1NDA1NCwgMC44MDEyODksIDEuMTMwNDMsIDEuNzg4OCwgMi4yMDExMyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNzgwNDYsIDAuMjc1ODYsIDAuODMwNDIsIDEuMzIxNDgsIDEuOTczMTQsIDMuMjgwMTEsIDQuMTA2NTYiLCBcCi0gICAgICAgICAgIjAuMTc4MDM1LCAwLjI3NTg2OCwgMC44MzIzMzMsIDEuMzIwNTMsIDEuOTczMDEsIDMuMjg5OTcsIDQuMDk4MTkiLCBcCi0gICAgICAgICAgIjAuMTc4MDI3LCAwLjI3NTg2NCwgMC44MzI4LCAxLjMxOTUsIDEuOTc3MjcsIDMuMjc5OTMsIDQuMDk5MzYiLCBcCi0gICAgICAgICAgIjAuMTc3NzkxLCAwLjI3NTg3MiwgMC44MzIwNjksIDEuMzIwMjgsIDEuOTc4OTUsIDMuMjgzMiwgNC4wOTgzOCIsIFwKLSAgICAgICAgICAiMC4xNzgxODYsIDAuMjc1NTI2LCAwLjgyOTgxNywgMS4zMTk1MSwgMS45NzgxNywgMy4yODAyOSwgNC4wOTg0NiIsIFwKLSAgICAgICAgICAiMC4xNzg0MSwgMC4yNzYwNDcsIDAuODMyMTY2LCAxLjMyMTMsIDEuOTcyNjksIDMuMjg4MzMsIDQuMTAwNTgiLCBcCi0gICAgICAgICAgIjAuMTc4ODI3LCAwLjI3NTg0NSwgMC44MzAxNjEsIDEuMzIwMDQsIDEuOTc3MTgsIDMuMjkxNCwgNC4wOTcyNCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTE4NCwgMC4wMDExODcsIDAuMDAxMTkxLCAwLjAwMTE5MSwgMC4wMDExOTIsIDAuMDAxMTkyLCAwLjAwMTE5MiIsIFwKLSAgICAgICAgICAiMC4wMDExNzIsIDAuMDAxMTc1LCAwLjAwMTE3OCwgMC4wMDExNzksIDAuMDAxMTgsIDAuMDAxMTc4LCAwLjAwMTE3OSIsIFwKLSAgICAgICAgICAiMC4wMDExNjMsIDAuMDAxMTY2LCAwLjAwMTE3LCAwLjAwMTE3LCAwLjAwMTE3MSwgMC4wMDExNzEsIDAuMDAxMTcxIiwgXAotICAgICAgICAgICIwLjAwMTE1NywgMC4wMDExNjEsIDAuMDAxMTY1LCAwLjAwMTE2NiwgMC4wMDExNjYsIDAuMDAxMTY2LCAwLjAwMTE2NiIsIFwKLSAgICAgICAgICAiMC4wMDExNTMsIDAuMDAxMTU3LCAwLjAwMTE2MSwgMC4wMDExNjIsIDAuMDAxMTYzLCAwLjAwMTE2MywgMC4wMDExNjMiLCBcCi0gICAgICAgICAgIjAuMDAxMTQ3LCAwLjAwMTE1MiwgMC4wMDExNTgsIDAuMDAxMTU5LCAwLjAwMTE1OSwgMC4wMDExNiwgMC4wMDExNiIsIFwKLSAgICAgICAgICAiMC4wMDExNDQsIDAuMDAxMTQ5LCAwLjAwMTE1NiwgMC4wMDExNTcsIDAuMDAxMTU4LCAwLjAwMTE1OCwgMC4wMDExNTgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDE5NzIsIDAuMDAxOTc1LCAwLjAwMTk3OSwgMC4wMDE5OCwgMC4wMDE5OCwgMC4wMDE5ODEsIDAuMDAxOTgxIiwgXAotICAgICAgICAgICIwLjAwMTk2MywgMC4wMDE5NjcsIDAuMDAxOTcxLCAwLjAwMTk3MiwgMC4wMDE5NzIsIDAuMDAxOTczLCAwLjAwMTk3MyIsIFwKLSAgICAgICAgICAiMC4wMDE5NTUsIDAuMDAxOTYsIDAuMDAxOTY2LCAwLjAwMTk2NywgMC4wMDE5NjcsIDAuMDAxOTY4LCAwLjAwMTk2OCIsIFwKLSAgICAgICAgICAiMC4wMDE5NDgsIDAuMDAxOTU0LCAwLjAwMTk2MiwgMC4wMDE5NjMsIDAuMDAxOTY0LCAwLjAwMTk2NSwgMC4wMDE5NjUiLCBcCi0gICAgICAgICAgIjAuMDAxOTQ0LCAwLjAwMTk1LCAwLjAwMTk1OSwgMC4wMDE5NjEsIDAuMDAxOTYyLCAwLjAwMTk2MywgMC4wMDE5NjMiLCBcCi0gICAgICAgICAgIjAuMDAxOTM3LCAwLjAwMTk0NCwgMC4wMDE5NTYsIDAuMDAxOTU4LCAwLjAwMTk1OSwgMC4wMDE5NiwgMC4wMDE5NjEiLCBcCi0gICAgICAgICAgIjAuMDAxOTMzLCAwLjAwMTk0MSwgMC4wMDE5NTQsIDAuMDAxOTU2LCAwLjAwMTk1OCwgMC4wMDE5NTksIDAuMDAxOTYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDExODYsIDAuMDAxMTg5LCAwLjAwMTE5NCwgMC4wMDExOTUsIDAuMDAxMTk1LCAwLjAwMTE5NiwgMC4wMDExOTYiLCBcCi0gICAgICAgICAgIjAuMDAxMTY5LCAwLjAwMTE3MywgMC4wMDExNzksIDAuMDAxMTc5LCAwLjAwMTE4LCAwLjAwMTE4MSwgMC4wMDExOCIsIFwKLSAgICAgICAgICAiMC4wMDExNTgsIDAuMDAxMTYzLCAwLjAwMTE2OCwgMC4wMDExNjksIDAuMDAxMTcsIDAuMDAxMTcxLCAwLjAwMTE3MSIsIFwKLSAgICAgICAgICAiMC4wMDExNTIsIDAuMDAxMTU2LCAwLjAwMTE2MywgMC4wMDExNjQsIDAuMDAxMTY1LCAwLjAwMTE2NiwgMC4wMDExNjYiLCBcCi0gICAgICAgICAgIjAuMDAxMTQ4LCAwLjAwMTE1MywgMC4wMDExNiwgMC4wMDExNjIsIDAuMDAxMTYyLCAwLjAwMTE2MywgMC4wMDExNjMiLCBcCi0gICAgICAgICAgIjAuMDAxMTQyLCAwLjAwMTE0OCwgMC4wMDExNTgsIDAuMDAxMTYsIDAuMDAxMTYxLCAwLjAwMTE2MSwgMC4wMDExNjIiLCBcCi0gICAgICAgICAgIjAuMDAxMTQyLCAwLjAwMTE0OCwgMC4wMDExNTcsIDAuMDAxMTU5LCAwLjAwMTE2MSwgMC4wMDExNjIsIDAuMDAxMTYyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxNzkxLCAwLjAwMTc5NCwgMC4wMDE3OTgsIDAuMDAxNzk5LCAwLjAwMTc5OSwgMC4wMDE4LCAwLjAwMTgiLCBcCi0gICAgICAgICAgIjAuMDAxNzgyLCAwLjAwMTc4NiwgMC4wMDE3OSwgMC4wMDE3OTEsIDAuMDAxNzkyLCAwLjAwMTc5MiwgMC4wMDE3OTIiLCBcCi0gICAgICAgICAgIjAuMDAxNzcsIDAuMDAxNzc1LCAwLjAwMTc4MiwgMC4wMDE3ODMsIDAuMDAxNzg0LCAwLjAwMTc4NCwgMC4wMDE3ODQiLCBcCi0gICAgICAgICAgIjAuMDAxNzYxLCAwLjAwMTc2NywgMC4wMDE3NzYsIDAuMDAxNzc4LCAwLjAwMTc3OCwgMC4wMDE3NzksIDAuMDAxNzc5IiwgXAotICAgICAgICAgICIwLjAwMTc1NCwgMC4wMDE3NjEsIDAuMDAxNzcyLCAwLjAwMTc3NCwgMC4wMDE3NzUsIDAuMDAxNzc2LCAwLjAwMTc3NiIsIFwKLSAgICAgICAgICAiMC4wMDE3NDUsIDAuMDAxNzUzLCAwLjAwMTc2NiwgMC4wMDE3NjgsIDAuMDAxNzcsIDAuMDAxNzcxLCAwLjAwMTc3MSIsIFwKLSAgICAgICAgICAiMC4wMDE3NDEsIDAuMDAxNzUsIDAuMDAxNzY0LCAwLjAwMTc2NywgMC4wMDE3NjksIDAuMDAxNzcxLCAwLjAwMTc3MSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogQU8yMVg0ICoKLSAqIC0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoQU8yMVg0KSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMjE0Mzg3OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwODMwNzYxOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDgyNjg0NzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA4MzA3NjE7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzA2LCAwLjAwMDMwNiwgMC4wMDAzMDYsIDAuMDAwMzA2LCAwLjAwMDMwNiwgMC4wMDAzMDYsIDAuMDAwMzA2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzE2LCAwLjAwMDMwOSwgMC4wMDAzMDgsIDAuMDAwMzA4LCAwLjAwMDMwOCwgMC4wMDAzMDgsIDAuMDAwMzA4Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihBMSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwODc4NzYxOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDg3MjA1NDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA4Nzg3NjE7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMTUyLCAwLjAwMDE1MSwgMC4wMDAxNTEsIDAuMDAwMTUxLCAwLjAwMDE1MSwgMC4wMDAxNTEsIDAuMDAwMTUxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzQ4LCAwLjAwMDM0OCwgMC4wMDAzNDgsIDAuMDAwMzQ4LCAwLjAwMDM0OCwgMC4wMDAzNDgsIDAuMDAwMzQ4Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwODk0NzM2OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDg5NDIwNjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA4OTQ3MzY7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMDc0LCAwLjAwMDA3NCwgMC4wMDAwNzQsIDAuMDAwMDc0LCAwLjAwMDA3NCwgMC4wMDAwNzQsIDAuMDAwMDc0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNTEsIDAuMDAwNTEsIDAuMDAwNTEsIDAuMDAwNTEsIDAuMDAwNTEsIDAuMDAwNTEsIDAuMDAwNTA5Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuNTEwMDExOwotICAgIGZ1bmN0aW9uIDogIigoQTAgQTEpK0IwKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTAiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTU0ODI2LCAwLjI5MDcwNiwgMC40MTY5MiwgMC41MDY3NjksIDAuNjUwMzk3LCAwLjc3NTkxOSwgMC45NTUyNjEiLCBcCi0gICAgICAgICAgIjAuMTY2MTY0LCAwLjMwMTk3OCwgMC40MjgxOSwgMC41MTgwMzcsIDAuNjYxNjc3LCAwLjc4NzE5OCwgMC45NjY1OTQiLCBcCi0gICAgICAgICAgIjAuMTc5NjI4LCAwLjMxNTQxNiwgMC40NDE2MjcsIDAuNTMxNTI3LCAwLjY3NTEyMSwgMC44MDA2NjksIDAuOTc5OTczIiwgXAotICAgICAgICAgICIwLjE5MzAyMSwgMC4zMjg3ODYsIDAuNDU0OTkzLCAwLjU0NDg0NiwgMC42ODg0OTUsIDAuODE0MDU1LCAwLjk5MzI3MiIsIFwKLSAgICAgICAgICAiMC4yMDY0NiwgMC4zNDIzMTksIDAuNDY4NTMsIDAuNTU4Mzg0LCAwLjcwMjAzNCwgMC44Mjc1NDcsIDEuMDA2ODEiLCBcCi0gICAgICAgICAgIjAuMjI3OTM3LCAwLjM2MzgwNiwgMC40OTAwMjMsIDAuNTc5ODc1LCAwLjcyMzU0MywgMC44NDkwNTMsIDEuMDI4MjkiLCBcCi0gICAgICAgICAgIjAuMjQ2Mzk2LCAwLjM4MjI0NSwgMC41MDg0NjIsIDAuNTk4MzIsIDAuNzQxOTkxLCAwLjg2NzUwMiwgMS4wNDY3NSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3NDM0LCAwLjMxNjYxNSwgMC41Njc0MDIsIDAuNzQ5ODE2LCAxLjAzOTQ5LCAxLjI5NjMxLCAxLjY1Nzc4IiwgXAotICAgICAgICAgICIwLjA3NDI2MywgMC4zMTY2MDUsIDAuNTY3MzM1LCAwLjc0ODY1NCwgMS4wMzg2NSwgMS4yOTQxNiwgMS42NjEyMiIsIFwKLSAgICAgICAgICAiMC4wNzQyMjYsIDAuMzE2NTYxLCAwLjU2NzI4NSwgMC43NTAwNzUsIDEuMDM5MDIsIDEuMjkzNDEsIDEuNjYxMjIiLCBcCi0gICAgICAgICAgIjAuMDc0MzU2LCAwLjMxNjU1MywgMC41NjczNTQsIDAuNzQ5ODI1LCAxLjA0MTM3LCAxLjI5NjQxLCAxLjY2MDg0IiwgXAotICAgICAgICAgICIwLjA3NDA4NCwgMC4zMTY1ODQsIDAuNTY3MzYxLCAwLjc0ODg0MSwgMS4wNDE0LCAxLjI5NjM3LCAxLjY2MDExIiwgXAotICAgICAgICAgICIwLjA3NDAzMywgMC4zMTYzMzMsIDAuNTY3MjU5LCAwLjc0ODcwMiwgMS4wNDEzNiwgMS4yOTY0MiwgMS42NjA5NyIsIFwKLSAgICAgICAgICAiMC4wNzQwNTQsIDAuMzE2MzIzLCAwLjU2NzIxMiwgMC43NDg3NDIsIDEuMDQxNDEsIDEuMjk2NDIsIDEuNjYwOTYiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNTEwNDIsIDAuMzA1NjQ5LCAwLjQ1MTY3MiwgMC41NTU4MDYsIDAuNzIyMzI4LCAwLjg2ODAwOSwgMS4wNzYwMSIsIFwKLSAgICAgICAgICAiMC4xNjI4MDEsIDAuMzE3Mzc2LCAwLjQ2MzQwNiwgMC41Njc1NzksIDAuNzM0MDUzLCAwLjg3OTY1OCwgMS4wODc2OSIsIFwKLSAgICAgICAgICAiMC4xNzY3OTEsIDAuMzMxMzY3LCAwLjQ3NzM5NSwgMC41ODE1NywgMC43NDgwNDIsIDAuODkzNjQ5LCAxLjEwMTY4IiwgXAotICAgICAgICAgICIwLjE4OTc4NywgMC4zNDQ0MzcsIDAuNDkwNDg5LCAwLjU5NDYzNSwgMC43NjExMDgsIDAuOTA2NzcxLCAxLjExNDgxIiwgXAotICAgICAgICAgICIwLjIwMjY1MiwgMC4zNTczMjYsIDAuNTAzMzU3LCAwLjYwNzQ5NSwgMC43NzQwMTYsIDAuOTE5NzAxLCAxLjEyNzciLCBcCi0gICAgICAgICAgIjAuMjIyNjQxLCAwLjM3NzI3OCwgMC41MjMzMTksIDAuNjI3NDU3LCAwLjc5Mzk4OCwgMC45Mzk2NjEsIDEuMTQ3NjciLCBcCi0gICAgICAgICAgIjAuMjM5ODcsIDAuMzk0NDg1LCAwLjU0MDU0NCwgMC42NDQ3MjIsIDAuODExMjA1LCAwLjk1NjgxMiwgMS4xNjQ4NSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3NzYzMiwgMC4zNTU1ODEsIDAuNjQzMjA3LCAwLjg1MDExNSwgMS4xODA4OCwgMS40NzA1NywgMS44ODU1NSIsIFwKLSAgICAgICAgICAiMC4wNzc2MiwgMC4zNTU1MjgsIDAuNjQxOTQ4LCAwLjg0OTg5OCwgMS4xODA4MywgMS40NzE0MSwgMS44ODI5NyIsIFwKLSAgICAgICAgICAiMC4wNzc2MTIsIDAuMzU1NTI4LCAwLjY0MTk3MSwgMC44NDk5MTgsIDEuMTgwOCwgMS40NzE0LCAxLjg4MzE2IiwgXAotICAgICAgICAgICIwLjA3NzYzNywgMC4zNTU0OTcsIDAuNjQzNTQ1LCAwLjg0ODQxOSwgMS4xNzkwMiwgMS40NzA5MywgMS44ODU1OCIsIFwKLSAgICAgICAgICAiMC4wNzc2NTYsIDAuMzU1NTcsIDAuNjQzMjMxLCAwLjg1MDA4NCwgMS4xODA4LCAxLjQ3MDU3LCAxLjg4NTQiLCBcCi0gICAgICAgICAgIjAuMDc3NDIxLCAwLjM1NTU4NiwgMC42NDMxNTYsIDAuODUwMDY5LCAxLjE4MDg4LCAxLjQ3MDY0LCAxLjg4NTY1IiwgXAotICAgICAgICAgICIwLjA3NzYwNSwgMC4zNTU1MjgsIDAuNjQyNDMsIDAuODQ5OTA4LCAxLjE4MDgyLCAxLjQ3MTUxLCAxLjg4MzA0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkExIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE1MDE0MSwgMC4yODYwOTcsIDAuNDEyMzAxLCAwLjUwMjE1MywgMC42NDU3OTIsIDAuNzcxMzA5LCAwLjk1MDU3IiwgXAotICAgICAgICAgICIwLjE2MDE1MiwgMC4yOTYxMDMsIDAuNDIyMjgsIDAuNTEyMTQ1LCAwLjY1NTgxOSwgMC43ODEzMjQsIDAuOTYwNTY1IiwgXAotICAgICAgICAgICIwLjE3MzYyNCwgMC4zMDk0NjYsIDAuNDM1Njc2LCAwLjUyNTUyNywgMC42NjkxOCwgMC43OTQ2OTIsIDAuOTczOTU0IiwgXAotICAgICAgICAgICIwLjE4NjIwOSwgMC4zMjIwOTYsIDAuNDQ4Mjk3LCAwLjUzODE0OCwgMC42ODE4MTgsIDAuODA3MzI1LCAwLjk4NjU2NSIsIFwKLSAgICAgICAgICAiMC4yMDAxMTgsIDAuMzM1OTc2LCAwLjQ2MjE0LCAwLjU1MTk5NiwgMC42OTU2MDUsIDAuODIxMjc1LCAxLjAwMDQ2IiwgXAotICAgICAgICAgICIwLjIyMTk3LCAwLjM1NzgyNywgMC40ODQwMzksIDAuNTczODk3LCAwLjcxNzU2MiwgMC44NDMwNzgsIDEuMDIyMzQiLCBcCi0gICAgICAgICAgIjAuMjQxMDI1LCAwLjM3Njg5NSwgMC41MDMxMTgsIDAuNTkyOTc5LCAwLjczNjY1MywgMC44NjIxNjUsIDEuMDQxNDEiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzQ1MjcsIDAuMzE2NDM4LCAwLjU2NzM1OCwgMC43NDgxNywgMS4wNDE0NiwgMS4yOTY0OCwgMS42NjA2NyIsIFwKLSAgICAgICAgICAiMC4wNzQzNzEsIDAuMzE2MzkzLCAwLjU2NzY2OCwgMC43NDg2OTMsIDEuMDQxNDQsIDEuMjk2NDgsIDEuNjYxMDEiLCBcCi0gICAgICAgICAgIjAuMDc0MTk5LCAwLjMxNjYzMiwgMC41NjczNCwgMC43NDg4MDIsIDEuMDQxNDEsIDEuMjk2MzksIDEuNjYwMzYiLCBcCi0gICAgICAgICAgIjAuMDc0Mjg0LCAwLjMxNjM3OSwgMC41Njc2OTIsIDAuNzQ4NzAzLCAxLjA0MTQyLCAxLjI5NjQyLCAxLjY2MDk3IiwgXAotICAgICAgICAgICIwLjA3NDIzMywgMC4zMTYzNzIsIDAuNTY3Njc2LCAwLjc0OTU3OSwgMS4wNDEwNCwgMS4yOTM2NSwgMS42NjExMSIsIFwKLSAgICAgICAgICAiMC4wNzM5OTksIDAuMzE2MzU5LCAwLjU2NzIzNSwgMC43NDg3NjUsIDEuMDQxNDEsIDEuMjk2MzksIDEuNjYwODIiLCBcCi0gICAgICAgICAgIjAuMDc0MDAyLCAwLjMxNjMxOCwgMC41NjcyMDIsIDAuNzQ4NzQ2LCAxLjA0MTQzLCAxLjI5NjQxLCAxLjY2MDkxIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTQ0MjMxLCAwLjI5ODM0OCwgMC40NDQyMTYsIDAuNTQ4MzI3LCAwLjcxNDc2MSwgMC44NjA0NTEsIDEuMDY4NDMiLCBcCi0gICAgICAgICAgIjAuMTU2MzMzLCAwLjMxMDA3MSwgMC40NTU5MzYsIDAuNTYwMDE4LCAwLjcyNjQ0OCwgMC44NzIwNjgsIDEuMDgwMiIsIFwKLSAgICAgICAgICAiMC4xNzAyNTMsIDAuMzI0MTYzLCAwLjQ3MDAwOSwgMC41NzQxMDMsIDAuNzQwNjM5LCAwLjg4NjIxOCwgMS4wOTQyNyIsIFwKLSAgICAgICAgICAiMC4xODMxODksIDAuMzM3MTU5LCAwLjQ4MzAyOSwgMC41ODcwNTcsIDAuNzUzNTE2LCAwLjg5OTI3MiwgMS4xMDcyMSIsIFwKLSAgICAgICAgICAiMC4xOTYwMTYsIDAuMzUwMDQyLCAwLjQ5NTg5LCAwLjU5OTk4MSwgMC43NjY1MDgsIDAuOTEyMjc2LCAxLjEyMDE0IiwgXAotICAgICAgICAgICIwLjIxNjAyMSwgMC4zNjk5ODksIDAuNTE1ODU3LCAwLjYxOTkyOCwgMC43ODYzNTksIDAuOTMxOTg1LCAxLjE0MDQ1IiwgXAotICAgICAgICAgICIwLjIzMjkzNCwgMC4zODY5MzYsIDAuNTMyODA5LCAwLjYzNjg3NSwgMC44MDMzNCwgMC45NDkxNCwgMS4xNTcwNSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3NzAyNiwgMC4zNTQ3MzIsIDAuNjQxMDEyLCAwLjg0Njg2NiwgMS4xNzc1MywgMS40NzAwOSwgMS44ODAzMSIsIFwKLSAgICAgICAgICAiMC4wNzY3MDksIDAuMzU0NjgsIDAuNjQyMDI5LCAwLjg0ODE1OCwgMS4xODEwMSwgMS40Njg0MSwgMS44Nzk1MyIsIFwKLSAgICAgICAgICAiMC4wNzY3NSwgMC4zNTQ2ODcsIDAuNjQyNDcyLCAwLjg0ODE5OCwgMS4xNzYzNywgMS40Njk4OCwgMS44Nzk3NCIsIFwKLSAgICAgICAgICAiMC4wNzY4OTUsIDAuMzU0NzU3LCAwLjY0MTA2OCwgMC44NDkyMDIsIDEuMTgwOTgsIDEuNDY3NTQsIDEuODgxMTgiLCBcCi0gICAgICAgICAgIjAuMDc2NzEsIDAuMzU0NzQyLCAwLjY0MjMyOSwgMC44NDkzOTIsIDEuMTc2NjEsIDEuNDY4NzMsIDEuODgwMjEiLCBcCi0gICAgICAgICAgIjAuMDc2NjgsIDAuMzU0NzIzLCAwLjY0MjU0MSwgMC44NDkzNywgMS4xODA5OCwgMS40NzE1NSwgMS44ODA3MyIsIFwKLSAgICAgICAgICAiMC4wNzY4NDEsIDAuMzU0NzY3LCAwLjY0MjQwOCwgMC44NDc1OTIsIDEuMTgwOTgsIDEuNDY3OTcsIDEuODgxOTIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjAiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg2NzU3LCAwLjIxNDk0LCAwLjM0MDM1NiwgMC40Mjk5MjMsIDAuNTczMjExLCAwLjY5ODkyMiwgMC44Nzc5OTgiLCBcCi0gICAgICAgICAgIjAuMDk4NDI2LCAwLjIyNjYxOSwgMC4zNTIwNzksIDAuNDQxNTgsIDAuNTg0ODkyLCAwLjcxMDMwNiwgMC44ODk1MDkiLCBcCi0gICAgICAgICAgIjAuMTEzMzU4LCAwLjI0MTU5NiwgMC4zNjY5OTYsIDAuNDU2NTUzLCAwLjU5OTkxLCAwLjcyNTM3NSwgMC45MDQ0NTMiLCBcCi0gICAgICAgICAgIjAuMTI4NTM2LCAwLjI1Njc5NiwgMC4zODIyNzcsIDAuNDcxNzU2LCAwLjYxNTA5NCwgMC43NDA4MSwgMC45MTk4NjIiLCBcCi0gICAgICAgICAgIjAuMTQzNTA0LCAwLjI3MTgsIDAuMzk3MjEsIDAuNDg2Nzc1LCAwLjYzMDEyOSwgMC43NTU2NDYsIDAuOTM0NzE1IiwgXAotICAgICAgICAgICIwLjE2NzA1NSwgMC4yOTU0MTIsIDAuNDIwODY5LCAwLjUxMDQxMywgMC42NTM3NDcsIDAuNzc5MjM1LCAwLjk1ODU2MyIsIFwKLSAgICAgICAgICAiMC4xODY3MTYsIDAuMzE1MjE0LCAwLjQ0MDY0OSwgMC41MzAyMTEsIDAuNjczNTU2LCAwLjc5ODg4NiwgMC45NzgxNjUiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjAyNjEsIDAuMzA2Mjg2LCAwLjU2MTE1NywgMC43NDIxNSwgMS4wMzU2NiwgMS4yOTUxMiwgMS42NTIwOCIsIFwKLSAgICAgICAgICAiMC4wNjAyMTQsIDAuMzA2MzAxLCAwLjU2MDY2NiwgMC43NDM0NDgsIDEuMDM1NjQsIDEuMjg4NzQsIDEuNjUyMTkiLCBcCi0gICAgICAgICAgIjAuMDYwMzEyLCAwLjMwNjMwNywgMC41NjA4MzYsIDAuNzQzNDEsIDEuMDM1MywgMS4yODg4NSwgMS42NTIzOCIsIFwKLSAgICAgICAgICAiMC4wNjAzOTEsIDAuMzA2NzI4LCAwLjU2MDk0LCAwLjc0MzM0OCwgMS4wMzU2MywgMS4yOTEyMiwgMS42NTIwNiIsIFwKLSAgICAgICAgICAiMC4wNjA1MjIsIDAuMzA2NzQzLCAwLjU2MDkyMywgMC43NDM0MDIsIDEuMDM1MjYsIDEuMjg3OTgsIDEuNjUyMzEiLCBcCi0gICAgICAgICAgIjAuMDYxMzgyLCAwLjMwNjgwOCwgMC41NjA5ODgsIDAuNzQzNDUyLCAxLjAzMjg5LCAxLjI4NzkxLCAxLjY1MjA0IiwgXAotICAgICAgICAgICIwLjA2MzI0NywgMC4zMDY5MjQsIDAuNTYxODA5LCAwLjc0MzQ1MywgMS4wMzI5MSwgMS4yOTExNywgMS42NTIxNiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEzNzEwNSwgMC4yOTE2NDUsIDAuNDM3Njg4LCAwLjU0MTg3NiwgMC43MDgzNSwgMC44NTM5NTUsIDEuMDYxOTYiLCBcCi0gICAgICAgICAgIjAuMTQ3MTQ3LCAwLjMwMTcyMiwgMC40NDc3NDksIDAuNTUxOTI2LCAwLjcxODM5NiwgMC44NjQwMDQsIDEuMDcyMDQiLCBcCi0gICAgICAgICAgIjAuMTU5OTk2LCAwLjMxNDY2NCwgMC40NjA3MjIsIDAuNTY0ODE5LCAwLjczMTQxOSwgMC44NzY5OTIsIDEuMDg1MDIiLCBcCi0gICAgICAgICAgIjAuMTczNTE0LCAwLjMyODExNywgMC40NzQxNSwgMC41NzgzNjgsIDAuNzQ0Nzk2LCAwLjg5MDQ2MiwgMS4wOTg0OCIsIFwKLSAgICAgICAgICAiMC4xODY5MjksIDAuMzQxNDY2LCAwLjQ4NzU0MiwgMC41OTE2NjcsIDAuNzU4MjA0LCAwLjkwMzgwNSwgMS4xMTE4MSIsIFwKLSAgICAgICAgICAiMC4yMDgyLCAwLjM2Mjg0MiwgMC41MDg5MDgsIDAuNjEzMTAxLCAwLjc3OTU4NiwgMC45MjUzMzIsIDEuMTMzMzYiLCBcCi0gICAgICAgICAgIjAuMjI2ODE2LCAwLjM4MTQyMiwgMC41Mjc0OTQsIDAuNjMxNjg4LCAwLjc5ODE3NywgMC45NDM3OTIsIDEuMTUxODMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzc1NDUsIDAuMzU1NTUzLCAwLjY0MTc2OSwgMC44NDY5MTcsIDEuMTgwOTksIDEuNDcxMjEsIDEuODgzNzciLCBcCi0gICAgICAgICAgIjAuMDc3NjE4LCAwLjM1NTUxNiwgMC42NDE5NTcsIDAuODQ5ODkyLCAxLjE4MTAxLCAxLjQ3MTUxLCAxLjg4MzA4IiwgXAotICAgICAgICAgICIwLjA3NzYwMywgMC4zNTU2MTUsIDAuNjQzNTYsIDAuODQ4MDQ0LCAxLjE3ODQ2LCAxLjQ3MDQ1LCAxLjg4NTYiLCBcCi0gICAgICAgICAgIjAuMDc3NTE2LCAwLjM1NTU0NSwgMC42NDMxNDksIDAuODQ5NDY0LCAxLjE4MDk4LCAxLjQ3MDQ2LCAxLjg4MzM3IiwgXAotICAgICAgICAgICIwLjA3NzUxOSwgMC4zNTU2MTMsIDAuNjQzNTc3LCAwLjg0OTE3MiwgMS4xODEwMywgMS40Njk5OSwgMS44ODY2NyIsIFwKLSAgICAgICAgICAiMC4wNzc1MzMsIDAuMzU1NTgyLCAwLjY0MzMxNSwgMC44NDk5MzUsIDEuMTgwOTgsIDEuNDcxNTUsIDEuODg0NjkiLCBcCi0gICAgICAgICAgIjAuMDc3OSwgMC4zNTU1ODksIDAuNjQxODAxLCAwLjg0OTk2MywgMS4xODA5LCAxLjQ3MTYzLCAxLjg4MzA5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzOTUzLCAwLjAwNDA4NSwgMC4wMDQxMDYsIDAuMDA0MTEzLCAwLjAwNDExOSwgMC4wMDQxMjEsIDAuMDA0MTI0IiwgXAotICAgICAgICAgICIwLjAwMzkzMywgMC4wMDQwNjcsIDAuMDA0MDg4LCAwLjAwNDA5NCwgMC4wMDQxMDEsIDAuMDA0MTA0LCAwLjAwNDEwNSIsIFwKLSAgICAgICAgICAiMC4wMDM5MjEsIDAuMDA0MDU1LCAwLjAwNDA3NiwgMC4wMDQwODIsIDAuMDA0MDg5LCAwLjAwNDA5MSwgMC4wMDQwOTQiLCBcCi0gICAgICAgICAgIjAuMDAzOTExLCAwLjAwNDA0NSwgMC4wMDQwNjYsIDAuMDA0MDc0LCAwLjAwNDA4LCAwLjAwNDA4MywgMC4wMDQwODUiLCBcCi0gICAgICAgICAgIjAuMDAzOTAzLCAwLjAwNDAzNywgMC4wMDQwNiwgMC4wMDQwNjcsIDAuMDA0MDc0LCAwLjAwNDA3NywgMC4wMDQwODEiLCBcCi0gICAgICAgICAgIjAuMDAzODk2LCAwLjAwNDAyNiwgMC4wMDQwNSwgMC4wMDQwNTgsIDAuMDA0MDY0LCAwLjAwNDA2OSwgMC4wMDQwNzIiLCBcCi0gICAgICAgICAgIjAuMDAzODgzLCAwLjAwNDAxNCwgMC4wMDQwNDEsIDAuMDA0MDUsIDAuMDA0MDU4LCAwLjAwNDA2MywgMC4wMDQwNjYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNTY0NiwgMC4wMDU4MTgsIDAuMDA1ODQ0LCAwLjAwNTg1MywgMC4wMDU4NiwgMC4wMDU4NjQsIDAuMDA1ODY3IiwgXAotICAgICAgICAgICIwLjAwNTYzNywgMC4wMDU4MSwgMC4wMDU4MzYsIDAuMDA1ODQ0LCAwLjAwNTg1MSwgMC4wMDU4NTUsIDAuMDA1ODU4IiwgXAotICAgICAgICAgICIwLjAwNTYzLCAwLjAwNTgwNCwgMC4wMDU4MywgMC4wMDU4MzgsIDAuMDA1ODQ1LCAwLjAwNTg0OSwgMC4wMDU4NTIiLCBcCi0gICAgICAgICAgIjAuMDA1NjIzLCAwLjAwNTc5OCwgMC4wMDU4MjUsIDAuMDA1ODM0LCAwLjAwNTg0MSwgMC4wMDU4NDUsIDAuMDA1ODQ4IiwgXAotICAgICAgICAgICIwLjAwNTYxNywgMC4wMDU3OTIsIDAuMDA1ODIxLCAwLjAwNTgzLCAwLjAwNTgzNywgMC4wMDU4NDEsIDAuMDA1ODQ1IiwgXAotICAgICAgICAgICIwLjAwNTYwOCwgMC4wMDU3ODMsIDAuMDA1ODEzLCAwLjAwNTgyMywgMC4wMDU4MzIsIDAuMDA1ODM2LCAwLjAwNTg0IiwgXAotICAgICAgICAgICIwLjAwNTU5OCwgMC4wMDU3NzUsIDAuMDA1ODA4LCAwLjAwNTgxOCwgMC4wMDU4MjgsIDAuMDA1ODMzLCAwLjAwNTgzNyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkExIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzk1NCwgMC4wMDQwODUsIDAuMDA0MTA2LCAwLjAwNDExMywgMC4wMDQxMTksIDAuMDA0MTIxLCAwLjAwNDEyNCIsIFwKLSAgICAgICAgICAiMC4wMDM5MywgMC4wMDQwNjMsIDAuMDA0MDgzLCAwLjAwNDA5MSwgMC4wMDQwOTYsIDAuMDA0MDk5LCAwLjAwNDEwMyIsIFwKLSAgICAgICAgICAiMC4wMDM5MTYsIDAuMDA0MDQ4LCAwLjAwNDA3LCAwLjAwNDA3OCwgMC4wMDQwODMsIDAuMDA0MDg2LCAwLjAwNDA5MSIsIFwKLSAgICAgICAgICAiMC4wMDM5MDMsIDAuMDA0MDM0LCAwLjAwNDA1NywgMC4wMDQwNjUsIDAuMDA0MDczLCAwLjAwNDA3NSwgMC4wMDQwNzkiLCBcCi0gICAgICAgICAgIjAuMDAzODk0LCAwLjAwNDAyMywgMC4wMDQwNDksIDAuMDA0MDU1LCAwLjAwNDA2NCwgMC4wMDQwNjksIDAuMDA0MDcxIiwgXAotICAgICAgICAgICIwLjAwMzg4NiwgMC4wMDQwMTEsIDAuMDA0MDM4LCAwLjAwNDA0OCwgMC4wMDQwNTcsIDAuMDA0MDYsIDAuMDA0MDY0IiwgXAotICAgICAgICAgICIwLjAwMzg3NCwgMC4wMDQsIDAuMDA0MDMsIDAuMDA0MDQsIDAuMDA0MDUsIDAuMDA0MDU2LCAwLjAwNDA1OSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1MzMyLCAwLjAwNTUwMiwgMC4wMDU1MjYsIDAuMDA1NTMzLCAwLjAwNTU0LCAwLjAwNTU0MywgMC4wMDU1NDYiLCBcCi0gICAgICAgICAgIjAuMDA1MzMsIDAuMDA1NDk3LCAwLjAwNTUyMSwgMC4wMDU1MjgsIDAuMDA1NTM1LCAwLjAwNTUzOCwgMC4wMDU1NDEiLCBcCi0gICAgICAgICAgIjAuMDA1MzIsIDAuMDA1NDg5LCAwLjAwNTUxMywgMC4wMDU1MiwgMC4wMDU1MjYsIDAuMDA1NTI5LCAwLjAwNTUzMiIsIFwKLSAgICAgICAgICAiMC4wMDUzMDYsIDAuMDA1NDc5LCAwLjAwNTUwNCwgMC4wMDU1MTIsIDAuMDA1NTE4LCAwLjAwNTUyMiwgMC4wMDU1MjQiLCBcCi0gICAgICAgICAgIjAuMDA1Mjk3LCAwLjAwNTQ3LCAwLjAwNTQ5NiwgMC4wMDU1MDUsIDAuMDA1NTExLCAwLjAwNTUxNSwgMC4wMDU1MTgiLCBcCi0gICAgICAgICAgIjAuMDA1Mjg0LCAwLjAwNTQ1NywgMC4wMDU0ODYsIDAuMDA1NDk1LCAwLjAwNTUwMywgMC4wMDU1MDcsIDAuMDA1NTEiLCBcCi0gICAgICAgICAgIjAuMDA1MjY5LCAwLjAwNTQ0NCwgMC4wMDU0NzYsIDAuMDA1NDg2LCAwLjAwNTQ5NCwgMC4wMDU0OTksIDAuMDA1NTAzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzNTIxLCAwLjAwMzU5NSwgMC4wMDM2MDMsIDAuMDAzNjAzLCAwLjAwMzYwNywgMC4wMDM2MDYsIDAuMDAzNjA2IiwgXAotICAgICAgICAgICIwLjAwMzUwNCwgMC4wMDM1ODQsIDAuMDAzNTkxLCAwLjAwMzU5NywgMC4wMDM1OTQsIDAuMDAzNTk2LCAwLjAwMzU5NyIsIFwKLSAgICAgICAgICAiMC4wMDM0NzIsIDAuMDAzNTYzLCAwLjAwMzU3MywgMC4wMDM1NzUsIDAuMDAzNTc3LCAwLjAwMzU3OSwgMC4wMDM1NzkiLCBcCi0gICAgICAgICAgIjAuMDAzNDQ3LCAwLjAwMzU0NSwgMC4wMDM1NTcsIDAuMDAzNTYxLCAwLjAwMzU2NCwgMC4wMDM1NjUsIDAuMDAzNTY4IiwgXAotICAgICAgICAgICIwLjAwMzQyNywgMC4wMDM1MzIsIDAuMDAzNTQ3LCAwLjAwMzU1MiwgMC4wMDM1NTUsIDAuMDAzNTU3LCAwLjAwMzU1OSIsIFwKLSAgICAgICAgICAiMC4wMDM0MDMsIDAuMDAzNTE1LCAwLjAwMzUzMywgMC4wMDM1NCwgMC4wMDM1NDQsIDAuMDAzNTQ2LCAwLjAwMzU0OCIsIFwKLSAgICAgICAgICAiMC4wMDMzOSwgMC4wMDM1MDEsIDAuMDAzNTI0LCAwLjAwMzUzMywgMC4wMDM1MzgsIDAuMDAzNTQxLCAwLjAwMzU0MyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1MDIzLCAwLjAwNTE5NCwgMC4wMDUyMiwgMC4wMDUyMjgsIDAuMDA1MjM1LCAwLjAwNTIzOSwgMC4wMDUyNDMiLCBcCi0gICAgICAgICAgIjAuMDA1MDA1LCAwLjAwNTE3OCwgMC4wMDUyMDUsIDAuMDA1MjEzLCAwLjAwNTIyLCAwLjAwNTIyNCwgMC4wMDUyMjciLCBcCi0gICAgICAgICAgIjAuMDA0OTg4LCAwLjAwNTE2MSwgMC4wMDUxODksIDAuMDA1MTk4LCAwLjAwNTIwNSwgMC4wMDUyMSwgMC4wMDUyMTMiLCBcCi0gICAgICAgICAgIjAuMDA0OTc2LCAwLjAwNTE0NywgMC4wMDUxNzgsIDAuMDA1MTg3LCAwLjAwNTE5NiwgMC4wMDUyLCAwLjAwNTIwNCIsIFwKLSAgICAgICAgICAiMC4wMDQ5NjYsIDAuMDA1MTM1LCAwLjAwNTE2OCwgMC4wMDUxNzgsIDAuMDA1MTg4LCAwLjAwNTE5MywgMC4wMDUxOTciLCBcCi0gICAgICAgICAgIjAuMDA0OTQ4LCAwLjAwNTExOCwgMC4wMDUxNTQsIDAuMDA1MTY3LCAwLjAwNTE3OCwgMC4wMDUxODQsIDAuMDA1MTg5IiwgXAotICAgICAgICAgICIwLjAwNDkzOSwgMC4wMDUxMDgsIDAuMDA1MTQ3LCAwLjAwNTE2LCAwLjAwNTE3MywgMC4wMDUxOCwgMC4wMDUxODYiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogQU9JMjExWDEgKgotICogLS0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKEFPSTIxMVgxKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMTEzMzYzOwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwODU5NTA4OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDg1NTI5MjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA4NTk1MDg7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzA2LCAwLjAwMDMwNiwgMC4wMDAzMDYsIDAuMDAwMzA2LCAwLjAwMDMwNiwgMC4wMDAzMDYsIDAuMDAwMzA2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzE3LCAwLjAwMDMwOSwgMC4wMDAzMDgsIDAuMDAwMzA4LCAwLjAwMDMwOCwgMC4wMDAzMDgsIDAuMDAwMzA4Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihBMSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwODkyNTk7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwODg1ODQ1OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDg5MjU5OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDE2MiwgMC4wMDAxNjIsIDAuMDAwMTYyLCAwLjAwMDE2MiwgMC4wMDAxNjEsIDAuMDAwMTYyLCAwLjAwMDE2MiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDM0OCwgMC4wMDAzNDgsIDAuMDAwMzQ4LCAwLjAwMDM0OCwgMC4wMDAzNDgsIDAuMDAwMzQ4LCAwLjAwMDM0OCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQjApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDg1Mzk2NDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA4NDc5MDY7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwODUzOTY0OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDI2OSwgMC4wMDAyODUsIDAuMDAwMjksIDAuMDAwMjkyLCAwLjAwMDI5MywgMC4wMDAyOTUsIDAuMDAwMjk1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzEzLCAwLjAwMDMxNCwgMC4wMDAzMTQsIDAuMDAwMzE0LCAwLjAwMDMxNCwgMC4wMDAzMTQsIDAuMDAwMzE0Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihDMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwODY0MTM4OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDg2NDEzODsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA4NjQwMzI7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMDkxLCAwLjAwMDA5MSwgMC4wMDAwOTEsIDAuMDAwMDkxLCAwLjAwMDA5MSwgMC4wMDAwOTEsIDAuMDAwMDkxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzQ1LCAwLjAwMDM0NSwgMC4wMDAzNDQsIDAuMDAwMzQ1LCAwLjAwMDM0NSwgMC4wMDAzNDQsIDAuMDAwMzQ0Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMDUxMDAyNzsKLSAgICBmdW5jdGlvbiA6ICIoISgoKEEwIEExKStCMCkrQzApKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTAiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI5NTE0LCAwLjQzMTU0OCwgMS4yMDQ0LCAxLjg4NTY1LCAyLjc5Mzc4LCA0LjYwODkxLCA1Ljc0MzMzIiwgXAotICAgICAgICAgICIwLjMwNjgwNywgMC40NDMxOTYsIDEuMjE1NzEsIDEuODk3NDcsIDIuODA1NDEsIDQuNjIwNjUsIDUuNzU1MjUiLCBcCi0gICAgICAgICAgIjAuMzIwODA5LCAwLjQ1NzIxOSwgMS4yMjk3NywgMS45MTE1NCwgMi44MTk0MSwgNC42MzQ3MywgNS43NjkzMyIsIFwKLSAgICAgICAgICAiMC4zMzM1NjUsIDAuNDcwMDQyLCAxLjI0MjY2LCAxLjkyNDU0LCAyLjgzMTc4LCA0LjY0NzU2LCA1Ljc4MTg0IiwgXAotICAgICAgICAgICIwLjM0NTc2OCwgMC40ODIyMjQsIDEuMjU0OTMsIDEuOTM2NTUsIDIuODQ0NywgNC42NTk4NiwgNS43OTQyNyIsIFwKLSAgICAgICAgICAiMC4zNjQyNDYsIDAuNTAwNzc2LCAxLjI3MzEyLCAxLjk1NDcsIDIuODYyNzgsIDQuNjc4MjYsIDUuODEyODUiLCBcCi0gICAgICAgICAgIjAuMzc5NzIzLCAwLjUxNjIyNCwgMS4yODg3NiwgMS45Njk5NSwgMi44Nzg3NywgNC42OTM5OCwgNS44MjgzNyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC41MDc0MjMsIDAuNzY5NjY2LCAyLjI1MTY2LCAzLjU2MDEyLCA1LjMwNjQ3LCA4Ljc5MTAyLCAxMC45Njc4IiwgXAotICAgICAgICAgICIwLjUwNzQyNiwgMC43NjkwOTYsIDIuMjUxOCwgMy41NjAxMSwgNS4zMDUxLCA4Ljc5MTU3LCAxMC45Njc5IiwgXAotICAgICAgICAgICIwLjUwNzQyOCwgMC43NjkwODYsIDIuMjUxOCwgMy41NjAxMSwgNS4zMDcwMywgOC43OTE2NiwgMTAuOTY3OSIsIFwKLSAgICAgICAgICAiMC41MDc0MjksIDAuNzY5Njg2LCAyLjI1MTc5LCAzLjU2MDA4LCA1LjMwODk1LCA4Ljc5MTY2LCAxMC45Njc2IiwgXAotICAgICAgICAgICIwLjUwNzk2LCAwLjc2OTcwNCwgMi4yNTE4OSwgMy41NjAxMiwgNS4zMDYzMywgOC43OTEyMSwgMTAuOTY3NyIsIFwKLSAgICAgICAgICAiMC41MDc0NjEsIDAuNzY4OTc1LCAyLjI1MTA5LCAzLjU2MDM5LCA1LjMwNTQzLCA4Ljc5MTUyLCAxMC45Njc3IiwgXAotICAgICAgICAgICIwLjUwNzc0MSwgMC43NjkwODMsIDIuMjUyNzcsIDMuNTU5MDQsIDUuMzA1MywgOC43OTA0MiwgMTAuOTY3NyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMjExMSwgMC4zMjAxMjMsIDAuODc2NDQxLCAxLjM2NjE4LCAyLjAxNzM5LCAzLjMyMDQ5LCA0LjEzNTYxIiwgXAotICAgICAgICAgICIwLjIzMjMyMywgMC4zMzEyOTksIDAuODg3Njk1LCAxLjM3NzMxLCAyLjAyOTYyLCAzLjMzMjQ4LCA0LjE0Njg5IiwgXAotICAgICAgICAgICIwLjI0NTgwMSwgMC4zNDQ4NDYsIDAuOTAxMTk2LCAxLjM5MDc5LCAyLjA0Mjk0LCAzLjM0NjA0LCA0LjE2MDUiLCBcCi0gICAgICAgICAgIjAuMjU5MzQ1LCAwLjM1ODI3NiwgMC45MTQ3MjEsIDEuNDAzOTYsIDIuMDU2NzgsIDMuMzU5NzcsIDQuMTc0MDQiLCBcCi0gICAgICAgICAgIjAuMjcyNzQyLCAwLjM3MTkwOSwgMC45MjgzNTksIDEuNDE3NjEsIDIuMDY5NDcsIDMuMzczMzMsIDQuMTg3NjkiLCBcCi0gICAgICAgICAgIjAuMjk0MjQ0LCAwLjM5MzQ3OCwgMC45NDk4NTgsIDEuNDM5MywgMi4wOTIsIDMuMzk1MDcsIDQuMjA4ODgiLCBcCi0gICAgICAgICAgIjAuMzEzMjM2LCAwLjQxMjA5OSwgMC45Njg4MDksIDEuNDU4NDMsIDIuMTEwNDcsIDMuNDEzODcsIDQuMjI4MyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zNzk2MjQsIDAuNTY2NzYxLCAxLjYyNTU5LCAyLjU1ODYzLCAzLjgwMjg0LCA2LjI5MDU5LCA3Ljg0NTkiLCBcCi0gICAgICAgICAgIjAuMzc5NDUzLCAwLjU2NjUxMSwgMS42MjU2NCwgMi41NTg3OSwgMy44MDMwOSwgNi4yODk2OSwgNy44NDU5NCIsIFwKLSAgICAgICAgICAiMC4zNzk2NzEsIDAuNTY2NDIyLCAxLjYyNTUsIDIuNTU5MTUsIDMuODAzLCA2LjI5MTA4LCA3Ljg0Mzk1IiwgXAotICAgICAgICAgICIwLjM3OTQ2NywgMC41NjY4NTksIDEuNjI1NTMsIDIuNTU4MTYsIDMuODAzMjMsIDYuMjg4OTEsIDcuODQ1ODgiLCBcCi0gICAgICAgICAgIjAuMzc5NTk1LCAwLjU2NjUwNCwgMS42MjU0NSwgMi41NTgxNSwgMy44MDI4MSwgNi4yODg4OSwgNy44NDQxOCIsIFwKLSAgICAgICAgICAiMC4zODAwNTQsIDAuNTY2NDA1LCAxLjYyNTUsIDIuNTU4OTQsIDMuODAyNjIsIDYuMjkwNTcsIDcuODQ1NjYiLCBcCi0gICAgICAgICAgIjAuMzgyMzYyLCAwLjU2Njk3NywgMS42MjQ2NywgMi41NTgyOCwgMy44MDMxMywgNi4yOTExNCwgNy44NDU4NiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjg1NTYxLCAwLjQyMTM1NCwgMS4xODk3LCAxLjg2ODI4LCAyLjc3MTY0LCA0LjU3ODM4LCA1LjcwNzYzIiwgXAotICAgICAgICAgICIwLjI5NzUwMiwgMC40MzMxODMsIDEuMjAyMTMsIDEuODgwNzUsIDIuNzgzODcsIDQuNTkwNjUsIDUuNzE5NTIiLCBcCi0gICAgICAgICAgIjAuMzExNDY1LCAwLjQ0NzMwNiwgMS4yMTU4NywgMS44OTQxLCAyLjc5NzcxLCA0LjYwNDM2LCA1LjczMzg4IiwgXAotICAgICAgICAgICIwLjMyNDE2NiwgMC40NjAwMDcsIDEuMjI4OCwgMS45MDY4NSwgMi44MTA2LCA0LjYxNzUxLCA1Ljc0NjcyIiwgXAotICAgICAgICAgICIwLjMzNjQ1LCAwLjQ3MjE0OSwgMS4yNDEyNSwgMS45MTg3NywgMi44MjM0LCA0LjYyOTgxLCA1Ljc1ODkyIiwgXAotICAgICAgICAgICIwLjM1NDcxNSwgMC40OTA1NzEsIDEuMjU5MjgsIDEuOTM3NDMsIDIuODQxMjUsIDQuNjQ4MzIsIDUuNzc3NDkiLCBcCi0gICAgICAgICAgIjAuMzcwMTI1LCAwLjUwNjAzLCAxLjI3NDg2LCAxLjk1MzA4LCAyLjg1NjkyLCA0LjY2Mzk5LCA1Ljc5MzI0Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjQ5NjkwMywgMC43NTkwNjUsIDIuMjM3OTksIDMuNTQ3MywgNS4yNzMxNCwgOC43NDE0MSwgMTAuOTA1NiIsIFwKLSAgICAgICAgICAiMC40OTczMjYsIDAuNzU3NDMzLCAyLjIzODk4LCAzLjU0Nzg5LCA1LjI4NDEsIDguNzQxNTMsIDEwLjkwNTIiLCBcCi0gICAgICAgICAgIjAuNDk2NzQ0LCAwLjc1ODcyLCAyLjIzNzgzLCAzLjU0NjQ2LCA1LjI3NzM4LCA4LjczOTgxLCAxMC45MDU1IiwgXAotICAgICAgICAgICIwLjQ5NzM4NCwgMC43NTg1MzQsIDIuMjM4MDksIDMuNTQ2MjUsIDUuMjc3NDMsIDguNzQxNDEsIDEwLjkwNTUiLCBcCi0gICAgICAgICAgIjAuNDk3NTA1LCAwLjc1ODI4MiwgMi4yMzg1NCwgMy41NDUzOCwgNS4yNzA3NSwgOC43Mzg5LCAxMC45MDUzIiwgXAotICAgICAgICAgICIwLjQ5NzMzOCwgMC43NTgzMjgsIDIuMjM1MzQsIDMuNTM4ODgsIDUuMjgzMDksIDguNzM4OTEsIDEwLjkwNTMiLCBcCi0gICAgICAgICAgIjAuNDk3Mjk1LCAwLjc1NzM3OCwgMi4yMzcxMiwgMy41Mzg2MSwgNS4yNzY5OCwgOC43NDExMSwgMTAuOTA1NSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMTY3MzIsIDAuMzE1Njk2LCAwLjg3MTkyOCwgMS4zNjE1NCwgMi4wMTM0LCAzLjMxNjk2LCA0LjEzMTM0IiwgXAotICAgICAgICAgICIwLjIyNjcxNSwgMC4zMjU2NywgMC44ODE5MzIsIDEuMzcxMzEsIDIuMDIzNjYsIDMuMzI3MDMsIDQuMTQxMzIiLCBcCi0gICAgICAgICAgIjAuMjM5NzUzLCAwLjMzODc3NywgMC44OTUxNDcsIDEuMzg0MzIsIDIuMDM2NDMsIDMuMzM5OTcsIDQuMTU0MzciLCBcCi0gICAgICAgICAgIjAuMjUyODM5LCAwLjM1MTgyNSwgMC45MDgxNDgsIDEuMzk3NzksIDIuMDQ5NywgMy4zNTMyOCwgNC4xNjc2IiwgXAotICAgICAgICAgICIwLjI2NjA1NCwgMC4zNjUwNCwgMC45MjE0NDQsIDEuNDEwNjUsIDIuMDYyNzcsIDMuMzY2MjksIDQuMTgwNjciLCBcCi0gICAgICAgICAgIjAuMjg3MjMyLCAwLjM4NjI2LCAwLjk0MjY5NiwgMS40MzI0MywgMi4wODUwMiwgMy4zODk1MSwgNC4yMDMzNiIsIFwKLSAgICAgICAgICAiMC4zMDU4NTcsIDAuNDA0ODE5LCAwLjk2MTE3MSwgMS40NTA2NCwgMi4xMDIzNywgMy40MDYwMywgNC4yMjA2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjM3OTM2NiwgMC41NjY4NzgsIDEuNjI0OTYsIDIuNTU5MDksIDMuODAxOTgsIDYuMjg5MywgNy44NDQ1IiwgXAotICAgICAgICAgICIwLjM3OTMyMywgMC41NjY1MSwgMS42MjQ5MywgMi41NTgxNSwgMy44MDE4NiwgNi4yODkzNywgNy44NDU4NSIsIFwKLSAgICAgICAgICAiMC4zNzk2MzQsIDAuNTY2NTA0LCAxLjYyNTU0LCAyLjU1ODAyLCAzLjgwMjA4LCA2LjI4OTY0LCA3Ljg0NTg2IiwgXAotICAgICAgICAgICIwLjM3OTI0MSwgMC41NjY1OTYsIDEuNjI1NTUsIDIuNTU4OTgsIDMuODAxODgsIDYuMjg5MTYsIDcuODQ0MTciLCBcCi0gICAgICAgICAgIjAuMzc5MzE3LCAwLjU2NjI3LCAxLjYyNTU2LCAyLjU1ODA0LCAzLjgwMjA3LCA2LjI4OTYzLCA3Ljg0NTgzIiwgXAotICAgICAgICAgICIwLjM4MTU2NywgMC41NjY0NDUsIDEuNjI1NTgsIDIuNTU3OSwgMy44MDI3NywgNi4yOTAxMSwgNy44NDI1NiIsIFwKLSAgICAgICAgICAiMC4zODU1MjEsIDAuNTY3NDgyLCAxLjYyNTQ5LCAyLjU1ODA0LCAzLjgwMTY3LCA2LjI4OTUyLCA3Ljg0Mzg5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yODIwOSwgMC40MTg0NDIsIDEuMTkwNzQsIDEuODcxODksIDIuNzgwNzEsIDQuNTk1OTcsIDUuNzMwNDciLCBcCi0gICAgICAgICAgIjAuMjkyNjMsIDAuNDI5MDYxLCAxLjIwMTcsIDEuODgzMTgsIDIuNzkxMDEsIDQuNjA2NTgsIDUuNzQxMTUiLCBcCi0gICAgICAgICAgIjAuMzA1MDcyLCAwLjQ0MTUzNSwgMS4yMTQxNiwgMS44OTU3MSwgMi44MDM2LCA0LjYxOTE3LCA1Ljc1Mzc3IiwgXAotICAgICAgICAgICIwLjMxNzAwMiwgMC40NTM0NzYsIDEuMjI2MTYsIDEuOTA3NjksIDIuODE1NjIsIDQuNjMwODksIDUuNzY1NzkiLCBcCi0gICAgICAgICAgIjAuMzI4OTI3LCAwLjQ2NTU1OCwgMS4yMzg0OSwgMS45MTk4NiwgMi44MjgwNCwgNC42NDMzNywgNS43Nzc3MyIsIFwKLSAgICAgICAgICAiMC4zNDc3OTYsIDAuNDg0NDUsIDEuMjU3MTcsIDEuOTM4NjQsIDIuODQ2NjksIDQuNjYyMTksIDUuNzk2NzYiLCBcCi0gICAgICAgICAgIjAuMzY0MTQ4LCAwLjUwMTAzMSwgMS4yNzM2MywgMS45NTUxOCwgMi44NjMyMSwgNC42Nzg4LCA1LjgxMzY1Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjUwNzQyNywgMC43NjkwODUsIDIuMjUyNzUsIDMuNTYxNDMsIDUuMzAyOTYsIDguNzkwNDgsIDEwLjk2NjUiLCBcCi0gICAgICAgICAgIjAuNTA3NDI1LCAwLjc2OTY5OCwgMi4yNTE3OCwgMy41NjAyMSwgNS4zMDU0NywgOC43OTE3LCAxMC45Njc5IiwgXAotICAgICAgICAgICIwLjUwNzk3LCAwLjc2OTcyMiwgMi4yNTE4MiwgMy41NjAyMywgNS4zMDU0NCwgOC43OTEwNCwgMTAuOTY3OCIsIFwKLSAgICAgICAgICAiMC41MDczMzcsIDAuNzY5MDksIDIuMjUxODIsIDMuNTYwMjQsIDUuMzA1NDUsIDguNzkxMTcsIDEwLjk2NzkiLCBcCi0gICAgICAgICAgIjAuNTA3NDM0LCAwLjc2ODk5NywgMi4yNTIwNywgMy41NjA3LCA1LjMwNjI2LCA4Ljc5MDQxLCAxMC45NjY3IiwgXAotICAgICAgICAgICIwLjUwNzY4OCwgMC43NjkwMTgsIDIuMjUxNzEsIDMuNTYwMzQsIDUuMzA0NzEsIDguNzkxNDksIDEwLjk2NzciLCBcCi0gICAgICAgICAgIjAuNTA4OTUzLCAwLjc2OTAwMSwgMi4yNTExLCAzLjU2MDQyLCA1LjMwNTYyLCA4Ljc5MDk4LCAxMC45Njc4Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwMjgzMSwgMC4xNTI0MjEsIDAuNDMyNTQ3LCAwLjY3OTY1NiwgMS4wMDkwNywgMS42Njc5OCwgMi4wNzkxNSIsIFwKLSAgICAgICAgICAiMC4xMTQyMjksIDAuMTYzNzk0LCAwLjQ0Mzk3MiwgMC42OTExODMsIDEuMDIwMzEsIDEuNjc4NzMsIDIuMDkwMzQiLCBcCi0gICAgICAgICAgIjAuMTI5MDUsIDAuMTc4ODA4LCAwLjQ1ODIwOCwgMC43MDQwNjEsIDEuMDMzNjEsIDEuNjkyMjMsIDIuMTAzMjMiLCBcCi0gICAgICAgICAgIjAuMTQ0Njk2LCAwLjE5Mzk3NSwgMC40NzQzMiwgMC43MjE0MDEsIDEuMDUwNzUsIDEuNzA5NDQsIDIuMTIwNjIiLCBcCi0gICAgICAgICAgIjAuMTU5NTYyLCAwLjIwOTA0OCwgMC40ODgzMTUsIDAuNzM1MDM4LCAxLjA2MTU2LCAxLjcyMDAyLCAyLjEzMjI2IiwgXAotICAgICAgICAgICIwLjE4MzQ1OSwgMC4yMzMwMjcsIDAuNTEzMjc3LCAwLjc1ODgwMywgMS4wODgwOCwgMS43Mzg2OSwgMi4xNTA2NiIsIFwKLSAgICAgICAgICAiMC4yMDQ1NTksIDAuMjU0MDE0LCAwLjUzMjQzOSwgMC43Nzk1NTYsIDEuMTA4NzEsIDEuNzU3NywgMi4xNjg4MyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xOTQxMTYsIDAuMjkxOTM3LCAwLjg0NjY3NSwgMS4zMzYyOSwgMS45ODg1NCwgMy4yOTMzNSwgNC4xMDg5MiIsIFwKLSAgICAgICAgICAiMC4xOTQxMjYsIDAuMjkxOTEzLCAwLjg0NjQ2NywgMS4zMzU4MywgMS45ODgyMywgMy4yOTM1NywgNC4xMDg3NiIsIFwKLSAgICAgICAgICAiMC4xOTQxMzMsIDAuMjkxOTI2LCAwLjg0NjY1OSwgMS4zMzU3OCwgMS45ODg1MiwgMy4yOTMxOSwgNC4xMDg3IiwgXAotICAgICAgICAgICIwLjE5NTI3NiwgMC4yOTE5MjgsIDAuODQ2NDU4LCAxLjMzNjE1LCAxLjk4ODcxLCAzLjI5MzYsIDQuMTA4NyIsIFwKLSAgICAgICAgICAiMC4xOTgyOTMsIDAuMjkyOTY1LCAwLjg0NjYyNSwgMS4zMzU5NywgMS45ODg2OCwgMy4yOTM0OCwgNC4xMDg1OSIsIFwKLSAgICAgICAgICAiMC4yMDU2MjUsIDAuMjk3MTk0LCAwLjg0NjY0NiwgMS4zMzYwNSwgMS45ODg2NCwgMy4yOTMzNSwgNC4xMDg3NyIsIFwKLSAgICAgICAgICAiMC4yMTM5NzUsIDAuMzAyODcyLCAwLjg0NjU2NSwgMS4zMzYwNywgMS45ODgxOCwgMy4yOTM1MSwgNC4xMDgwOSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjY3MDcyLCAwLjQwMzYxNywgMS4xNzYzOCwgMS44NTczMiwgMi43NjUxOSwgNC41ODA2OSwgNS43MTU2MSIsIFwKLSAgICAgICAgICAiMC4yNzY2MzksIDAuNDEzMTM4LCAxLjE4NTc0LCAxLjg2NzQ0LCAyLjc3NTU0LCA0LjU5MDcxLCA1LjcyNTExIiwgXAotICAgICAgICAgICIwLjI4ODY5MiwgMC40MjUyMjIsIDEuMTk4MjIsIDEuODc5NTQsIDIuNzg3ODMsIDQuNjAzMDcsIDUuNzM3NDMiLCBcCi0gICAgICAgICAgIjAuMzAwNzA2LCAwLjQzNzM2OCwgMS4yMTAzLCAxLjg5MTcyLCAyLjc5OTM3LCA0LjYxNTIyLCA1Ljc0OTc3IiwgXAotICAgICAgICAgICIwLjMxMTc1OSwgMC40NDkzOCwgMS4yMjI3MSwgMS45MDQzLCAyLjgxMTc0LCA0LjYyNzQzLCA1Ljc2MiIsIFwKLSAgICAgICAgICAiMC4zMzIxNSwgMC40Njg4MzIsIDEuMjQxNjEsIDEuOTIzNzksIDIuODMxMjYsIDQuNjQ2OTIsIDUuNzgxNTMiLCBcCi0gICAgICAgICAgIjAuMzQ5MzQ2LCAwLjQ4NTkyLCAxLjI1ODg0LCAxLjk0MDY4LCAyLjg0ODcxLCA0LjY2NDEsIDUuNzk4NTkiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuNTA3Mzc3LCAwLjc2ODk2NywgMi4yNTE4OSwgMy41NjA3NCwgNS4zMDYxNSwgOC43OTEyMywgMTAuOTY3OSIsIFwKLSAgICAgICAgICAiMC41MDczNjQsIDAuNzY4OTc4LCAyLjI1MTk4LCAzLjU2MDEyLCA1LjMwNjM1LCA4Ljc5MDcyLCAxMC45Njc3IiwgXAotICAgICAgICAgICIwLjUwNzQxOSwgMC43NjkwNzQsIDIuMjUxODksIDMuNTYwMTksIDUuMzA2NDQsIDguNzkwNjcsIDEwLjk2NzciLCBcCi0gICAgICAgICAgIjAuNTA3MzY4LCAwLjc2OTQ3NywgMi4yNTIyOSwgMy41NjA5OCwgNS4zMDgxMSwgOC43OTE2OCwgMTAuOTY2NSIsIFwKLSAgICAgICAgICAiMC41MDY4MjUsIDAuNzY5NzIyLCAyLjI1MTY0LCAzLjU2MDA4LCA1LjMwNiwgOC43OTA5NiwgMTAuOTY3OSIsIFwKLSAgICAgICAgICAiMC41MDc4MTgsIDAuNzY4ODU3LCAyLjI1Mjg5LCAzLjU2MDI5LCA1LjMwNjQ1LCA4Ljc5MTYxLCAxMC45Njc4IiwgXAotICAgICAgICAgICIwLjUxMTI0LCAwLjc2ODc2NCwgMi4yNTI5MSwgMy41NjAxMSwgNS4zMDU5NSwgOC43OTExMSwgMTAuOTY3NyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTc2NjIsIDAuMTQ3MDY5LCAwLjQyNjk3OSwgMC42NzQwNjksIDEuMDAzNjIsIDEuNjYyMDQsIDIuMDczNzEiLCBcCi0gICAgICAgICAgIjAuMTA5MjE3LCAwLjE1ODY1NywgMC40Mzg1NzEsIDAuNjg1NDg1LCAxLjAxNSwgMS42NzMxMSwgMi4wODQ1MyIsIFwKLSAgICAgICAgICAiMC4xMjQyNjgsIDAuMTczNzAzLCAwLjQ1MzE1NSwgMC42OTc3NDksIDEuMDI3MSwgMS42ODU3MiwgMi4wOTczNSIsIFwKLSAgICAgICAgICAiMC4xMzk1NTcsIDAuMTg4NTAyLCAwLjQ2ODI5MywgMC43MTQzNjMsIDEuMDQyNCwgMS43MDA5OSwgMi4xMTMxMiIsIFwKLSAgICAgICAgICAiMC4xNTQ2MSwgMC4yMDM5NDgsIDAuNDgyOTk3LCAwLjcyOTk2MSwgMS4wNTYzNywgMS43MTUyLCAyLjEyNzM4IiwgXAotICAgICAgICAgICIwLjE3ODQ1NywgMC4yMjc5OTMsIDAuNTA3NzE5LCAwLjc1MzUzNCwgMS4wODI2MiwgMS43MzM5OCwgMi4xNDU3NCIsIFwKLSAgICAgICAgICAiMC4xOTk4NDgsIDAuMjQ4ODU2LCAwLjUyNzE4NCwgMC43NzQzMjIsIDEuMTAzMjQsIDEuNzUyNjEsIDIuMTYzMjgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTg4NTc4LCAwLjI4NjI3OCwgMC44NDA0ODUsIDEuMzMwOSwgMS45ODIzNiwgMy4yOTQ1OSwgNC4xMDgxOSIsIFwKLSAgICAgICAgICAiMC4xODg1ODQsIDAuMjg2Mjk5LCAwLjg0MDM3NSwgMS4zMzExNCwgMS45ODcsIDMuMjk3NDIsIDQuMTEzNzEiLCBcCi0gICAgICAgICAgIjAuMTg4NjAzLCAwLjI4NjMwNCwgMC44NDA0ODcsIDEuMzMwMTMsIDEuOTg1MDEsIDMuMjg5OTcsIDQuMTEzMDEiLCBcCi0gICAgICAgICAgIjAuMTkwMDUzLCAwLjI4NjM0MSwgMC44NDA1LCAxLjMyOTg3LCAxLjk4MjksIDMuMjg4NTQsIDQuMTA5NzkiLCBcCi0gICAgICAgICAgIjAuMTkzMjU4LCAwLjI4NzUwMywgMC44NDA1MzEsIDEuMzI5OTEsIDEuOTg1MjcsIDMuMjg4NTYsIDQuMTA5MjIiLCBcCi0gICAgICAgICAgIjAuMjAxMDMsIDAuMjkxOTk2LCAwLjg0MDUzMiwgMS4zMzAzNCwgMS45ODMxMiwgMy4yOTY4MiwgNC4xMDM4IiwgXAotICAgICAgICAgICIwLjIwOTExNiwgMC4yOTc5MjQsIDAuODQwNTkyLCAxLjMyOTg0LCAxLjk4NDk4LCAzLjI4ODMsIDQuMTEyMDQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyNzMxLCAwLjAwMjczMSwgMC4wMDI3MzEsIDAuMDAyNzI5LCAwLjAwMjcyOSwgMC4wMDI3MjcsIDAuMDAyNzI0IiwgXAotICAgICAgICAgICIwLjAwMjcyNSwgMC4wMDI3MjUsIDAuMDAyNzI1LCAwLjAwMjcyNiwgMC4wMDI3MjQsIDAuMDAyNzIyLCAwLjAwMjcyIiwgXAotICAgICAgICAgICIwLjAwMjcyMiwgMC4wMDI3MjMsIDAuMDAyNzI0LCAwLjAwMjcyNSwgMC4wMDI3MjUsIDAuMDAyNzIxLCAwLjAwMjcxOSIsIFwKLSAgICAgICAgICAiMC4wMDI3MiwgMC4wMDI3MjEsIDAuMDAyNzIzLCAwLjAwMjcyMywgMC4wMDI3MjIsIDAuMDAyNzI0LCAwLjAwMjcxOCIsIFwKLSAgICAgICAgICAiMC4wMDI3MTYsIDAuMDAyNzE5LCAwLjAwMjcyMiwgMC4wMDI3MjEsIDAuMDAyNzIxLCAwLjAwMjcxOSwgMC4wMDI3MTgiLCBcCi0gICAgICAgICAgIjAuMDAyNzE2LCAwLjAwMjcxOCwgMC4wMDI3MjIsIDAuMDAyNzIzLCAwLjAwMjcyMiwgMC4wMDI3MiwgMC4wMDI3MTgiLCBcCi0gICAgICAgICAgIjAuMDAyNzEzLCAwLjAwMjcxNywgMC4wMDI3MjEsIDAuMDAyNzIyLCAwLjAwMjcyMSwgMC4wMDI3MjIsIDAuMDAyNzIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDA4NTcsIDAuMDAwODU3LCAwLjAwMDg1NiwgMC4wMDA4NTUsIDAuMDAwODU0LCAwLjAwMDg1MiwgMC4wMDA4NSIsIFwKLSAgICAgICAgICAiMC4wMDA4MzgsIDAuMDAwODM4LCAwLjAwMDgzNywgMC4wMDA4MzcsIDAuMDAwODM1LCAwLjAwMDgzNCwgMC4wMDA4MzEiLCBcCi0gICAgICAgICAgIjAuMDAwODI5LCAwLjAwMDgzLCAwLjAwMDgzLCAwLjAwMDgyOSwgMC4wMDA4MjgsIDAuMDAwODI2LCAwLjAwMDgyMyIsIFwKLSAgICAgICAgICAiMC4wMDA4MjUsIDAuMDAwODI2LCAwLjAwMDgyNywgMC4wMDA4MjYsIDAuMDAwODI1LCAwLjAwMDgyMywgMC4wMDA4MjEiLCBcCi0gICAgICAgICAgIjAuMDAwODIxLCAwLjAwMDgyMywgMC4wMDA4MjQsIDAuMDAwODI0LCAwLjAwMDgyNCwgMC4wMDA4MjEsIDAuMDAwODE5IiwgXAotICAgICAgICAgICIwLjAwMDgxNywgMC4wMDA4MTksIDAuMDAwODIzLCAwLjAwMDgyMiwgMC4wMDA4MjIsIDAuMDAwODE5LCAwLjAwMDgxOCIsIFwKLSAgICAgICAgICAiMC4wMDA4MTUsIDAuMDAwODE4LCAwLjAwMDgyMSwgMC4wMDA4MjIsIDAuMDAwODIxLCAwLjAwMDgxOSwgMC4wMDA4MTciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyNDIzLCAwLjAwMjQyMywgMC4wMDI0MjQsIDAuMDAyNDI0LCAwLjAwMjQyMywgMC4wMDI0MjQsIDAuMDAyNDIzIiwgXAotICAgICAgICAgICIwLjAwMjQyNCwgMC4wMDI0MjYsIDAuMDAyNDI4LCAwLjAwMjQyOCwgMC4wMDI0MjksIDAuMDAyNDI5LCAwLjAwMjQyOCIsIFwKLSAgICAgICAgICAiMC4wMDI0MiwgMC4wMDI0MjQsIDAuMDAyNDI4LCAwLjAwMjQyOCwgMC4wMDI0MjksIDAuMDAyNDMsIDAuMDAyNDI5IiwgXAotICAgICAgICAgICIwLjAwMjQxNiwgMC4wMDI0MjIsIDAuMDAyNDI4LCAwLjAwMjQyOCwgMC4wMDI0MjgsIDAuMDAyNDMsIDAuMDAyNDI5IiwgXAotICAgICAgICAgICIwLjAwMjQxMywgMC4wMDI0MTYsIDAuMDAyNDIyLCAwLjAwMjQyNiwgMC4wMDI0MjYsIDAuMDAyNDI4LCAwLjAwMjQyNyIsIFwKLSAgICAgICAgICAiMC4wMDI0MDcsIDAuMDAyNDEzLCAwLjAwMjQyNCwgMC4wMDI0MjYsIDAuMDAyNDI4LCAwLjAwMjQyOSwgMC4wMDI0MjgiLCBcCi0gICAgICAgICAgIjAuMDAyNDAzLCAwLjAwMjQxLCAwLjAwMjQyMSwgMC4wMDI0MjYsIDAuMDAyNDI3LCAwLjAwMjQyOSwgMC4wMDI0MjkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDA4NTcsIDAuMDAwODU3LCAwLjAwMDg1OCwgMC4wMDA4NTUsIDAuMDAwODUyLCAwLjAwMDg0OCwgMC4wMDA4NDUiLCBcCi0gICAgICAgICAgIjAuMDAwODM3LCAwLjAwMDgzNywgMC4wMDA4MzcsIDAuMDAwODM1LCAwLjAwMDgzNSwgMC4wMDA4MywgMC4wMDA4MzEiLCBcCi0gICAgICAgICAgIjAuMDAwODI3LCAwLjAwMDgyOSwgMC4wMDA4MjksIDAuMDAwODI4LCAwLjAwMDgyOCwgMC4wMDA4MjQsIDAuMDAwODI0IiwgXAotICAgICAgICAgICIwLjAwMDgyMiwgMC4wMDA4MjQsIDAuMDAwODI2LCAwLjAwMDgyNSwgMC4wMDA4MjUsIDAuMDAwODIzLCAwLjAwMDgyMSIsIFwKLSAgICAgICAgICAiMC4wMDA4MTksIDAuMDAwODIxLCAwLjAwMDgyMywgMC4wMDA4MjMsIDAuMDAwODIzLCAwLjAwMDgyLCAwLjAwMDgxOSIsIFwKLSAgICAgICAgICAiMC4wMDA4MTQsIDAuMDAwODE3LCAwLjAwMDgyMSwgMC4wMDA4MjEsIDAuMDAwODIyLCAwLjAwMDgyLCAwLjAwMDgxOCIsIFwKLSAgICAgICAgICAiMC4wMDA4MTEsIDAuMDAwODE1LCAwLjAwMDgyLCAwLjAwMDgyLCAwLjAwMDgyLCAwLjAwMDgxOCwgMC4wMDA4MTciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyMTM1LCAwLjAwMjEzNSwgMC4wMDIxMzUsIDAuMDAyMTM0LCAwLjAwMjE0LCAwLjAwMjEyMywgMC4wMDIxMjgiLCBcCi0gICAgICAgICAgIjAuMDAyMTMxLCAwLjAwMjEzMiwgMC4wMDIxMzMsIDAuMDAyMTM1LCAwLjAwMjEzMywgMC4wMDIxMzEsIDAuMDAyMTI5IiwgXAotICAgICAgICAgICIwLjAwMjEyNiwgMC4wMDIxMjksIDAuMDAyMTMzLCAwLjAwMjEzMywgMC4wMDIxMzQsIDAuMDAyMTMxLCAwLjAwMjEyOSIsIFwKLSAgICAgICAgICAiMC4wMDIxMjIsIDAuMDAyMTI2LCAwLjAwMjEzMiwgMC4wMDIxMzIsIDAuMDAyMTMzLCAwLjAwMjEzLCAwLjAwMjEyOSIsIFwKLSAgICAgICAgICAiMC4wMDIxMTksIDAuMDAyMTI0LCAwLjAwMjEzLCAwLjAwMjEzMiwgMC4wMDIxMzEsIDAuMDAyMTMsIDAuMDAyMTI5IiwgXAotICAgICAgICAgICIwLjAwMjExNSwgMC4wMDIxMiwgMC4wMDIxMjksIDAuMDAyMTMxLCAwLjAwMjEzMiwgMC4wMDIxMjksIDAuMDAyMTI4IiwgXAotICAgICAgICAgICIwLjAwMjExMiwgMC4wMDIxMTcsIDAuMDAyMTI4LCAwLjAwMjEyOSwgMC4wMDIxMywgMC4wMDIxMjgsIDAuMDAyMTI3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwMzkyLCAwLjAwMDM5MiwgMC4wMDAzOTIsIDAuMDAwMzkyLCAwLjAwMDM5MSwgMC4wMDAzOTEsIDAuMDAwMzkxIiwgXAotICAgICAgICAgICIwLjAwMDM4OSwgMC4wMDAzOTEsIDAuMDAwMzkzLCAwLjAwMDM5MywgMC4wMDAzOTIsIDAuMDAwMzkyLCAwLjAwMDM5MiIsIFwKLSAgICAgICAgICAiMC4wMDAzODUsIDAuMDAwMzg5LCAwLjAwMDM5MiwgMC4wMDAzOTMsIDAuMDAwMzk0LCAwLjAwMDM5NCwgMC4wMDAzOTQiLCBcCi0gICAgICAgICAgIjAuMDAwMzgxLCAwLjAwMDM4NSwgMC4wMDAzOTIsIDAuMDAwMzkzLCAwLjAwMDM5NCwgMC4wMDAzOTQsIDAuMDAwMzk0IiwgXAotICAgICAgICAgICIwLjAwMDM3OCwgMC4wMDAzODMsIDAuMDAwMzkxLCAwLjAwMDM5MiwgMC4wMDAzOTMsIDAuMDAwMzk0LCAwLjAwMDM5NCIsIFwKLSAgICAgICAgICAiMC4wMDAzNzIsIDAuMDAwMzc5LCAwLjAwMDM5LCAwLjAwMDM5MiwgMC4wMDAzOTMsIDAuMDAwMzkzLCAwLjAwMDM5MyIsIFwKLSAgICAgICAgICAiMC4wMDAzNjgsIDAuMDAwMzc2LCAwLjAwMDM4OCwgMC4wMDAzOTEsIDAuMDAwMzkyLCAwLjAwMDM5MywgMC4wMDAzOTMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDMCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxODgsIDAuMDAxODgsIDAuMDAxODgzLCAwLjAwMTg4LCAwLjAwMTg3OSwgMC4wMDE4NzcsIDAuMDAxODc1IiwgXAotICAgICAgICAgICIwLjAwMTg3MywgMC4wMDE4NzYsIDAuMDAxODc5LCAwLjAwMTg3OCwgMC4wMDE4NzksIDAuMDAxODc3LCAwLjAwMTg3NCIsIFwKLSAgICAgICAgICAiMC4wMDE4NjYsIDAuMDAxODcsIDAuMDAxODc2LCAwLjAwMTg3OCwgMC4wMDE4NzcsIDAuMDAxODc1LCAwLjAwMTg3NCIsIFwKLSAgICAgICAgICAiMC4wMDE4NiwgMC4wMDE4NjYsIDAuMDAxODc1LCAwLjAwMTg3NiwgMC4wMDE4NzYsIDAuMDAxODc4LCAwLjAwMTg3NCIsIFwKLSAgICAgICAgICAiMC4wMDE4NTIsIDAuMDAxODYyLCAwLjAwMTg3MywgMC4wMDE4NzUsIDAuMDAxODc2LCAwLjAwMTg3NCwgMC4wMDE4NzMiLCBcCi0gICAgICAgICAgIjAuMDAxODUsIDAuMDAxODU3LCAwLjAwMTg3MSwgMC4wMDE4NzQsIDAuMDAxODc0LCAwLjAwMTg3MywgMC4wMDE4NzMiLCBcCi0gICAgICAgICAgIjAuMDAxODQ2LCAwLjAwMTg1NCwgMC4wMDE4NjgsIDAuMDAxODcyLCAwLjAwMTg3MywgMC4wMDE4NzMsIDAuMDAxODcyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwMDY0LCAwLjAwMDA2NSwgMC4wMDAwNjYsIDAuMDAwMDY3LCAwLjAwMDA2NywgMC4wMDAwNjcsIDAuMDAwMDY3IiwgXAotICAgICAgICAgICIwLjAwMDA3NCwgMC4wMDAwNzgsIDAuMDAwMDgzLCAwLjAwMDA4NSwgMC4wMDAwODUsIDAuMDAwMDg1LCAwLjAwMDA4NSIsIFwKLSAgICAgICAgICAiMC4wMDAwNzEsIDAuMDAwMDc3LCAwLjAwMDA4NywgMC4wMDAwODksIDAuMDAwMDkxLCAwLjAwMDA5MSwgMC4wMDAwOTIiLCBcCi0gICAgICAgICAgIjAuMDAwMDY2LCAwLjAwMDA3NCwgMC4wMDAwODYsIDAuMDAwMDg5LCAwLjAwMDA5MiwgMC4wMDAwOTMsIDAuMDAwMDkzIiwgXAotICAgICAgICAgICIwLjAwMDA2LCAwLjAwMDA3LCAwLjAwMDA4NSwgMC4wMDAwODksIDAuMDAwMDkxLCAwLjAwMDA5MywgMC4wMDAwOTMiLCBcCi0gICAgICAgICAgIjAuMDAwMDUxLCAwLjAwMDA2NCwgMC4wMDAwODMsIDAuMDAwMDg4LCAwLjAwMDA5LCAwLjAwMDA5MywgMC4wMDAwOTQiLCBcCi0gICAgICAgICAgIjAuMDAwMDQ2LCAwLjAwMDA1OSwgMC4wMDAwODEsIDAuMDAwMDg3LCAwLjAwMDA5LCAwLjAwMDA5MywgMC4wMDAwOTQiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBBT0kyMVgyICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKEFPSTIxWDIpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4xNjI4Mzc7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE1OTA3NTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE1ODM2MTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE1OTA3NTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA2MTIsIDAuMDAwNjEyLCAwLjAwMDYxMiwgMC4wMDA2MTIsIDAuMDAwNjEyLCAwLjAwMDYxMSwgMC4wMDA2MTEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA2MzUsIDAuMDAwNjE5LCAwLjAwMDYxNywgMC4wMDA2MTYsIDAuMDAwNjE2LCAwLjAwMDYxNSwgMC4wMDA2MTUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEExKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE1MjIyOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTUwODAxOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTUyMjI7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzI3LCAwLjAwMDMyNywgMC4wMDAzMjYsIDAuMDAwMzI2LCAwLjAwMDMyNiwgMC4wMDAzMjYsIDAuMDAwMzI2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNjk1LCAwLjAwMDY5NiwgMC4wMDA2OTUsIDAuMDAwNjk2LCAwLjAwMDY5NiwgMC4wMDA2OTYsIDAuMDAwNjk2Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNDgwMDc7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNDc5NTM7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNDgwMDc7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMTQ5LCAwLjAwMDE0OSwgMC4wMDAxNDksIDAuMDAwMTQ5LCAwLjAwMDE0OSwgMC4wMDAxNDksIDAuMDAwMTQ5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxMDUzLCAwLjAwMTA1MywgMC4wMDEwNTMsIDAuMDAxMDUyLCAwLjAwMTA1MiwgMC4wMDEwNTIsIDAuMDAxMDUyIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMTMzMDc7Ci0gICAgZnVuY3Rpb24gOiAiKCEoKEEwIEExKStCMCkpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTA5OTM4LCAwLjQ4MTY3NywgMC43Nzg3MjgsIDEuMTQ5OTIsIDEuNTIxNTQsIDEuODkzMTYsIDIuMjY0NDgiLCBcCi0gICAgICAgICAgIjAuMTIxNzEzLCAwLjQ5MzU1NCwgMC43OTA4NDEsIDEuMTYyMTIsIDEuNTMzNjgsIDEuOTA0OSwgMi4yNzU2NyIsIFwKLSAgICAgICAgICAiMC4xMzU3NjMsIDAuNTA3NTUsIDAuODA0ODcsIDEuMTc2NDYsIDEuNTQ3MzYsIDEuOTE5NiwgMi4yOTAzNCIsIFwKLSAgICAgICAgICAiMC4xNDg5MTEsIDAuNTIwODYzLCAwLjgxNzk5MywgMS4xODk2MywgMS41NjE0LCAxLjkzMjEsIDIuMzAzODUiLCBcCi0gICAgICAgICAgIjAuMTYxODIxLCAwLjUzMzg1MiwgMC44MzA4MjgsIDEuMjAyNjIsIDEuNTczNjcsIDEuOTQ1NTksIDIuMzE2NjciLCBcCi0gICAgICAgICAgIjAuMTgxODUyLCAwLjU1MzkzMywgMC44NTA5NjUsIDEuMjIyOCwgMS41OTM4NSwgMS45NjU0MiwgMi4zMzYxIiwgXAotICAgICAgICAgICIwLjE5OTI1NCwgMC41NzEzNjEsIDAuODY4NTgyLCAxLjIzOTg5LCAxLjYxMTg2LCAxLjk4MzA4LCAyLjM1NDk1Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE3OTAzNywgMC45MDY1MzIsIDEuNDg4MzIsIDIuMjE1NjksIDIuOTQzMzEsIDMuNjcwMTQsIDQuMzk3NTEiLCBcCi0gICAgICAgICAgIjAuMTc5MTAyLCAwLjkwNzEyNCwgMS40ODgyMSwgMi4yMTU2MiwgMi45NDM4OCwgMy42Njk5NSwgNC40MDAwMyIsIFwKLSAgICAgICAgICAiMC4xNzkwNDQsIDAuOTA3MDk3LCAxLjQ4ODM2LCAyLjIxNTU3LCAyLjk0MzA1LCAzLjY3MTI2LCA0LjM5NzYxIiwgXAotICAgICAgICAgICIwLjE3OTMzNiwgMC45MDY1NzgsIDEuNDg5MjIsIDIuMjE2MDQsIDIuOTQzMjIsIDMuNjcwMywgNC4zOTgwMyIsIFwKLSAgICAgICAgICAiMC4xODAzOTUsIDAuOTA2NTY1LCAxLjQ4ODAyLCAyLjIxNjI4LCAyLjk0MzM4LCAzLjY3MTQxLCA0LjM5Nzc3IiwgXAotICAgICAgICAgICIwLjE4Mzg3NiwgMC45MDcxMDYsIDEuNDg4MDcsIDIuMjE1NTcsIDIuOTQ0MzYsIDMuNjcwMjIsIDQuMzk5ODQiLCBcCi0gICAgICAgICAgIjAuMTg4MTU4LCAwLjkwNzIzNSwgMS40ODgzNSwgMi4yMTY2OSwgMi45NDI4NywgMy42NzAwNiwgNC4zOTg5NSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMjM4NzcsIDAuNTMzOTM1LCAwLjg2MDE3OSwgMS4yNjg3MSwgMS42NzYxNywgMi4wODI3NiwgMi40OTA2OCIsIFwKLSAgICAgICAgICAiMC4xMzUxMjcsIDAuNTQ1MTY2LCAwLjg3MTg5MiwgMS4yNzk5NSwgMS42ODc1NiwgMi4wOTU3NywgMi41MDI5OSIsIFwKLSAgICAgICAgICAiMC4xNDg2MjYsIDAuNTU4Nzc3LCAwLjg4NTQzOCwgMS4yOTM1MSwgMS43MDA1NiwgMi4xMDk1NywgMi41MTY0OSIsIFwKLSAgICAgICAgICAiMC4xNjIwNjUsIDAuNTcyNDQxLCAwLjg5ODc1MSwgMS4zMDY0OCwgMS43MTQ5NCwgMi4xMjE5NSwgMi41MzA0MSIsIFwKLSAgICAgICAgICAiMC4xNzU0MDMsIDAuNTg1OTUsIDAuOTEyNTQ1LCAxLjMyMDUyLCAxLjcyODQxLCAyLjEzNjIyLCAyLjU0NDIiLCBcCi0gICAgICAgICAgIjAuMTk2ODMxLCAwLjYwNzUwNSwgMC45MzQwNTYsIDEuMzQyMDgsIDEuNzQ5NTcsIDIuMTU4MjYsIDIuNTY0OCIsIFwKLSAgICAgICAgICAiMC4yMTU0NjYsIDAuNjI2NDgyLCAwLjk1MzIxMiwgMS4zNjA2OCwgMS43Njg4NCwgMi4xNzYyNCwgMi41ODQ0NCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMDE3MTEsIDAuOTgyNzk3LCAxLjYwNTksIDIuMzg1NzUsIDMuMTY0OTUsIDMuOTQ0NDQsIDQuNzIyNjEiLCBcCi0gICAgICAgICAgIjAuMjAxNzEyLCAwLjk4MjY0NSwgMS42MDU3NiwgMi4zODU2OCwgMy4xNjUxOCwgMy45NDQ0OSwgNC43MjMzNyIsIFwKLSAgICAgICAgICAiMC4yMDE2ODQsIDAuOTgyNjI1LCAxLjYwNTY3LCAyLjM4NTYyLCAzLjE2NTI3LCAzLjk0NDc3LCA0LjcyMzMyIiwgXAotICAgICAgICAgICIwLjIwMTg2NywgMC45ODI3NDksIDEuNjA2MDEsIDIuMzg1OTMsIDMuMTY0OTEsIDMuOTQ0NzUsIDQuNzIzMzEiLCBcCi0gICAgICAgICAgIjAuMjAyOTg4LCAwLjk4MjM3MiwgMS42MDY1NywgMi4zODYxOSwgMy4xNjQxLCAzLjk0NTIsIDQuNzIzOSIsIFwKLSAgICAgICAgICAiMC4yMDcxMjYsIDAuOTgyMzMxLCAxLjYwNTg0LCAyLjM4NjE3LCAzLjE2NDE2LCAzLjk0NDQ2LCA0LjcyMjExIiwgXAotICAgICAgICAgICIwLjIxMTg0MSwgMC45ODIwNTMsIDEuNjA1NjIsIDIuMzg1ODksIDMuMTY1NjEsIDMuOTQzMTYsIDQuNzI0NTgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwNTQyNCwgMC40Nzg5MjYsIDAuNzc3NTg2LCAxLjE1MTM1LCAxLjUyNDc2LCAxLjg5ODUxLCAyLjI3MjA1IiwgXAotICAgICAgICAgICIwLjExNzM3MSwgMC40OTEwMjUsIDAuNzg5OTA4LCAxLjE2MzMzLCAxLjUzNzU1LCAxLjkxMDMzLCAyLjI4NDE3IiwgXAotICAgICAgICAgICIwLjEzMTM2MSwgMC41MDUyNjksIDAuODA0MDMxLCAxLjE3Nzc3LCAxLjU1MDYyLCAxLjkyNTM3LCAyLjI5ODA3IiwgXAotICAgICAgICAgICIwLjE0NDMzMiwgMC41MTgzNTksIDAuODE3MTk2LCAxLjE5MDk3LCAxLjU2NDM5LCAxLjkzNzc3LCAyLjMxMjEyIiwgXAotICAgICAgICAgICIwLjE1NzE0NSwgMC41MzExOTEsIDAuODMwNDMzLCAxLjIwMzM4LCAxLjU3NzczLCAxLjk1MDU1LCAyLjMyNDIzIiwgXAotICAgICAgICAgICIwLjE3NzA0NCwgMC41NTExNTIsIDAuODUwNTIyLCAxLjIyMzk3LCAxLjU5NzAzLCAxLjk3MDkzLCAyLjM0MzgiLCBcCi0gICAgICAgICAgIjAuMTk0MjYyLCAwLjU2ODc5NCwgMC44Njc0NzIsIDEuMjQxNTYsIDEuNjE0MzQsIDEuOTg4NjQsIDIuMzYxMiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNzQ4OTIsIDAuOTA3NDM0LCAxLjQ5NTgyLCAyLjIzMTk3LCAyLjk1NzEyLCAzLjcwMjIzLCA0LjQzNjIxIiwgXAotICAgICAgICAgICIwLjE3NTA5NSwgMC45MDc1NjgsIDEuNDkzNjEsIDIuMjMxNTgsIDIuOTU2NjgsIDMuNzAxNjksIDQuNDM2MTUiLCBcCi0gICAgICAgICAgIjAuMTc1MDEsIDAuOTA5NzcyLCAxLjQ5NzE4LCAyLjIyNDcxLCAyLjk2NTg1LCAzLjY4ODg5LCA0LjQzNTciLCBcCi0gICAgICAgICAgIjAuMTc0ODg3LCAwLjkxMjIwNywgMS40OTM3NSwgMi4yMzIwNSwgMi45NjYyOCwgMy43MDE1NSwgNC40MjEzNyIsIFwKLSAgICAgICAgICAiMC4xNzYxNCwgMC45MDk0NzMsIDEuNDkyNDYsIDIuMjMxMzIsIDIuOTY3ODcsIDMuNzAxNDksIDQuNDI0MzQiLCBcCi0gICAgICAgICAgIjAuMTc5NzQ4LCAwLjkwODczLCAxLjQ5MjQxLCAyLjIyNDkyLCAyLjk1ODk0LCAzLjcwMjEyLCA0LjQzNTM0IiwgXAotICAgICAgICAgICIwLjE4NDEyMiwgMC45MDk4MDEsIDEuNDk2OTQsIDIuMjI0ODEsIDIuOTY0NTUsIDMuNjg5MzgsIDQuNDM1MDYiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTE5NDg3LCAwLjUyOTU2MywgMC44NTYwOTgsIDEuMjY0MjMsIDEuNjcxMjksIDIuMDc4MTUsIDIuNDg1NzYiLCBcCi0gICAgICAgICAgIjAuMTI5NTMxLCAwLjUzOTU3NSwgMC44NjYwNDEsIDEuMjczNzEsIDEuNjgxNzksIDIuMDg4ODYsIDIuNDk2NTIiLCBcCi0gICAgICAgICAgIjAuMTQyNDg1LCAwLjU1MjY1MywgMC44NzkxMjUsIDEuMjg3MjksIDEuNjk1MDksIDIuMTAyOSwgMi41MDk1NSIsIFwKLSAgICAgICAgICAiMC4xNTU1ODIsIDAuNTY1ODk2LCAwLjg5MjIwMSwgMS4zMDA0NiwgMS43MDg2NywgMi4xMTU5NiwgMi41MjM5OCIsIFwKLSAgICAgICAgICAiMC4xNjg3OTQsIDAuNTc5MTUxLCAwLjkwNTUxMSwgMS4zMTM3NiwgMS43MjE1MSwgMi4xMjksIDIuNTM3MyIsIFwKLSAgICAgICAgICAiMC4xOTEwMTMsIDAuNjAwMjgsIDAuOTI2NzUyLCAxLjMzNDUzLCAxLjc0MjY2LCAyLjE1MDg2LCAyLjU1NzQiLCBcCi0gICAgICAgICAgIjAuMjA5OTk0LCAwLjYxODg4NSwgMC45NDUzNzksIDEuMzUzNTEsIDEuNzYxNjUsIDIuMTY5MiwgMi41NzciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjAyMTc3LCAwLjk4MjA5LCAxLjYwNTcsIDIuMzg1NzksIDMuMTY0MzcsIDMuOTQ0MzQsIDQuNzI3NzIiLCBcCi0gICAgICAgICAgIjAuMjAyMTAxLCAwLjk4MjI5OSwgMS42MDU5NCwgMi4zODUzMSwgMy4xNjU0LCAzLjk0Mzc3LCA0LjcyMjgyIiwgXAotICAgICAgICAgICIwLjIwMTY3OCwgMC45ODIzNTIsIDEuNjA1ODQsIDIuMzg0OTQsIDMuMTY1MzksIDMuOTQ0MTEsIDQuNzIyNzIiLCBcCi0gICAgICAgICAgIjAuMjAyNDU0LCAwLjk4MjgzOCwgMS42MDY1MywgMi4zODQ5NSwgMy4xNjUwMywgMy45NDMxMiwgNC43MjM0MyIsIFwKLSAgICAgICAgICAiMC4yMDUxNzYsIDAuOTgyMjg1LCAxLjYwNiwgMi4zODYzMSwgMy4xNjQwOCwgMy45NDI5OSwgNC43MjQxMiIsIFwKLSAgICAgICAgICAiMC4yMTE1NjksIDAuOTgyMjk2LCAxLjYwNTkzLCAyLjM4NTk5LCAzLjE2NTY3LCAzLjk0NDM0LCA0LjcyMjUiLCBcCi0gICAgICAgICAgIjAuMjE5NDMyLCAwLjk4MTk5MiwgMS42MDU4MywgMi4zODU3OCwgMy4xNjUwOCwgMy45NDQwNywgNC43MjMzNCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk1ODYsIDAuNDY3NjY5LCAwLjc2NDcxNiwgMS4xMzY3NSwgMS41MTAwOSwgMS44ODQxMiwgMi4yNTcwNyIsIFwKLSAgICAgICAgICAiMC4xMDYwMjYsIDAuNDc4MTQ2LCAwLjc3NTA5LCAxLjE0NzI3LCAxLjUyMDg2LCAxLjg5MzU3LCAyLjI2ODIyIiwgXAotICAgICAgICAgICIwLjExODg3NywgMC40OTEwNzMsIDAuNzg4MTA5LCAxLjE2MDQyLCAxLjUzMzMyLCAxLjkwNzQ0LCAyLjI4MDA4IiwgXAotICAgICAgICAgICIwLjEzMTk2MSwgMC41MDQyMzcsIDAuODAxNDAxLCAxLjE3MzgxLCAxLjU0NzIxLCAxLjkxOTk2LCAyLjI5NDQ1IiwgXAotICAgICAgICAgICIwLjE0NTYyNywgMC41MTcyMTEsIDAuODE0NTM5LCAxLjE4NjIsIDEuNTYsIDEuOTMzMzUsIDIuMzA3NTYiLCBcCi0gICAgICAgICAgIjAuMTY3MDE1LCAwLjUzODI1NCwgMC44MzU2NDcsIDEuMjA3MTgsIDEuNTgwNTgsIDEuOTU0NjMsIDIuMzI4MDEiLCBcCi0gICAgICAgICAgIjAuMTg1ODE0LCAwLjU1NjY0NSwgMC44NTM2NTEsIDEuMjI2NCwgMS41OTkxNCwgMS45NzI4OSwgMi4zNDU5OSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNzkxMjQsIDAuOTA3MTA5LCAxLjUwMTI1LCAyLjIzMTcsIDIuOTY1NywgMy42ODk0NSwgNC40MzU2IiwgXAotICAgICAgICAgICIwLjE3ODg5OCwgMC45MDg3MzcsIDEuNDkyNTgsIDIuMjMyMTcsIDIuOTY2ODMsIDMuNjk2NDEsIDQuNDIwMjYiLCBcCi0gICAgICAgICAgIjAuMTc4NzAyLCAwLjkwOTQyLCAxLjQ5NTQ5LCAyLjIyNDc5LCAyLjk2MzAyLCAzLjcwMjI0LCA0LjQzNDgiLCBcCi0gICAgICAgICAgIjAuMTgxMDE2LCAwLjkwOTQxOSwgMS40OTY5NCwgMi4yMjUxMSwgMi45NTcwNCwgMy43MDA1OSwgNC40MjMxMSIsIFwKLSAgICAgICAgICAiMC4xODQ4NjcsIDAuOTA3MDcxLCAxLjQ5MjU2LCAyLjIzMDA5LCAyLjk2NjM3LCAzLjY5MjYyLCA0LjQyMTk1IiwgXAotICAgICAgICAgICIwLjE5MzY2LCAwLjkwNjk0OCwgMS40OTI0NSwgMi4yMzEzNywgMi45NzUyMSwgMy42ODkyLCA0LjQzNTkzIiwgXAotICAgICAgICAgICIwLjIwMjk4NiwgMC45MDc1MzYsIDEuNDkyNzIsIDIuMjI0OTIsIDIuOTU5MywgMy43MDE3NCwgNC40MzA5MSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTMyOTksIDAuMjU5NDk3LCAwLjQyNDQzLCAwLjYzMDgzMSwgMC44MzY4MzcsIDEuMDQzMTQsIDEuMjQ5MyIsIFwKLSAgICAgICAgICAiMC4wNjUwNjMsIDAuMjcxNTM3LCAwLjQzNjQ0NiwgMC42NDI0NzEsIDAuODQ4Njk0LCAxLjA1NDcyLCAxLjI2MDg5IiwgXAotICAgICAgICAgICIwLjA4MDA0MSwgMC4yODYxMDIsIDAuNDUxLCAwLjY1NDg4LCAwLjg2MTE0NSwgMS4wNjc0MywgMS4yNzM2MSIsIFwKLSAgICAgICAgICAiMC4wOTQ5NzksIDAuMzAwODIyLCAwLjQ2NTkwOSwgMC42NzIwMDksIDAuODc3ODU5LCAxLjA4NDMzLCAxLjI5MDI2IiwgXAotICAgICAgICAgICIwLjExMDE2MSwgMC4zMTU1MzcsIDAuNDgwNDcxLCAwLjY4NjUxNSwgMC44OTMxMTIsIDEuMDk1NDMsIDEuMzAxODciLCBcCi0gICAgICAgICAgIjAuMTM0MTE3LCAwLjMzOTQ1NSwgMC41MDM5NTgsIDAuNzEwMjE1LCAwLjkxNjc3MSwgMS4xMTc5MiwgMS4zMjUwNCIsIFwKLSAgICAgICAgICAiMC4xNTM1NTQsIDAuMzYxMTIsIDAuNTI0NzgxLCAwLjczMDkxNCwgMC45MzY3NjUsIDEuMTQzMTUsIDEuMzQ5MzciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTAxMDA4LCAwLjUxMDA1LCAwLjgzNzYzMiwgMS4yNDc0NywgMS42NTc4NCwgMi4wNjc1MSwgMi40NzY2MiIsIFwKLSAgICAgICAgICAiMC4xMDEwMDgsIDAuNTEwMTAzLCAwLjgzNzgwNCwgMS4yNDgyMSwgMS42NTc4NCwgMi4wNjcxMSwgMi40NzYwOSIsIFwKLSAgICAgICAgICAiMC4xMDI4MzIsIDAuNTEwMTE0LCAwLjgzNzc2NCwgMS4yNDc0NywgMS42NTY3NCwgMi4wNjcwMiwgMi40ODI2OSIsIFwKLSAgICAgICAgICAiMC4xMDczNTUsIDAuNTEwMTIsIDAuODM3ODkyLCAxLjI0NzczLCAxLjY1OTM4LCAyLjA2Njk3LCAyLjQ4MjgzIiwgXAotICAgICAgICAgICIwLjExMzI2LCAwLjUxMDAzOSwgMC44Mzc2OCwgMS4yNDc3LCAxLjY1NzYsIDIuMDY4OTksIDIuNDc3OSIsIFwKLSAgICAgICAgICAiMC4xMjUwNzcsIDAuNTEwNDc4LCAwLjgzNzY3NywgMS4yNDcxNywgMS42NTc3OCwgMi4wNzE5OSwgMi40ODAxNCIsIFwKLSAgICAgICAgICAiMC4xMzY4OTIsIDAuNTEyMzc3LCAwLjgzNzcxNywgMS4yNDc1NSwgMS42NTY3NSwgMi4wNjk5NCwgMi40ODMxMSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDM5OTIsIDAuMDAzOTkyLCAwLjAwMzk5MywgMC4wMDM5OSwgMC4wMDM5OTQsIDAuMDAzOTk0LCAwLjAwMzk5MyIsIFwKLSAgICAgICAgICAiMC4wMDM5NzcsIDAuMDAzOTgyLCAwLjAwMzk4LCAwLjAwMzk4MywgMC4wMDM5ODEsIDAuMDAzOTc2LCAwLjAwMzk4MyIsIFwKLSAgICAgICAgICAiMC4wMDM5NjgsIDAuMDAzOTc4LCAwLjAwMzk3OSwgMC4wMDM5NzgsIDAuMDAzOTc5LCAwLjAwMzk3NywgMC4wMDM5NzciLCBcCi0gICAgICAgICAgIjAuMDAzOTU5LCAwLjAwMzk3NSwgMC4wMDM5NzcsIDAuMDAzOTc4LCAwLjAwMzk3NywgMC4wMDM5NzYsIDAuMDAzOTc2IiwgXAotICAgICAgICAgICIwLjAwMzk1OCwgMC4wMDM5NzUsIDAuMDAzOTc3LCAwLjAwMzk3NywgMC4wMDM5NzcsIDAuMDAzOTc4LCAwLjAwMzk3OCIsIFwKLSAgICAgICAgICAiMC4wMDM5NTEsIDAuMDAzOTczLCAwLjAwMzk3NSwgMC4wMDM5NzYsIDAuMDAzOTc2LCAwLjAwMzk3NywgMC4wMDM5NzYiLCBcCi0gICAgICAgICAgIjAuMDAzOTQ2LCAwLjAwMzk2OSwgMC4wMDM5NzIsIDAuMDAzOTc0LCAwLjAwMzk3NCwgMC4wMDM5NzQsIDAuMDAzOTc0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxMTc1LCAwLjAwMTE3NSwgMC4wMDExNzMsIDAuMDAxMTcyLCAwLjAwMTE2OSwgMC4wMDExNzEsIDAuMDAxMTcyIiwgXAotICAgICAgICAgICIwLjAwMTE0MSwgMC4wMDExNDYsIDAuMDAxMTQ1LCAwLjAwMTE0NCwgMC4wMDExNDQsIDAuMDAxMTQzLCAwLjAwMTEzNyIsIFwKLSAgICAgICAgICAiMC4wMDExMjEsIDAuMDAxMTM1LCAwLjAwMTEzNSwgMC4wMDExMzYsIDAuMDAxMTM1LCAwLjAwMTEzNSwgMC4wMDExMzIiLCBcCi0gICAgICAgICAgIjAuMDAxMTA5LCAwLjAwMTEyOSwgMC4wMDExMzIsIDAuMDAxMTMyLCAwLjAwMTEzMSwgMC4wMDExMzIsIDAuMDAxMTMxIiwgXAotICAgICAgICAgICIwLjAwMTA5OSwgMC4wMDExMjUsIDAuMDAxMTI4LCAwLjAwMTEyOSwgMC4wMDExMywgMC4wMDExMywgMC4wMDExMjgiLCBcCi0gICAgICAgICAgIjAuMDAxMDg3LCAwLjAwMTEyLCAwLjAwMTEyNSwgMC4wMDExMjcsIDAuMDAxMTI3LCAwLjAwMTEyNywgMC4wMDExMjciLCBcCi0gICAgICAgICAgIjAuMDAxMDc4LCAwLjAwMTExNiwgMC4wMDExMjIsIDAuMDAxMTI0LCAwLjAwMTEyNSwgMC4wMDExMjUsIDAuMDAxMTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzM3NywgMC4wMDMzOCwgMC4wMDMzODMsIDAuMDAzMzc3LCAwLjAwMzM4LCAwLjAwMzM4LCAwLjAwMzM4IiwgXAotICAgICAgICAgICIwLjAwMzM3MywgMC4wMDMzOSwgMC4wMDMzOTEsIDAuMDAzMzg4LCAwLjAwMzM5LCAwLjAwMzM5MywgMC4wMDMzOTEiLCBcCi0gICAgICAgICAgIjAuMDAzMzU5LCAwLjAwMzM4NiwgMC4wMDMzODksIDAuMDAzMzksIDAuMDAzMzkxLCAwLjAwMzM5MiwgMC4wMDMzOTIiLCBcCi0gICAgICAgICAgIjAuMDAzMzQ2LCAwLjAwMzM4MiwgMC4wMDMzODcsIDAuMDAzMzg5LCAwLjAwMzM5MSwgMC4wMDMzOTEsIDAuMDAzMzkxIiwgXAotICAgICAgICAgICIwLjAwMzMzNiwgMC4wMDMzNzksIDAuMDAzMzg1LCAwLjAwMzM4OCwgMC4wMDMzOSwgMC4wMDMzODksIDAuMDAzMzkxIiwgXAotICAgICAgICAgICIwLjAwMzMyMywgMC4wMDMzNzQsIDAuMDAzMzgxLCAwLjAwMzM4NiwgMC4wMDMzODcsIDAuMDAzMzg5LCAwLjAwMzM5IiwgXAotICAgICAgICAgICIwLjAwMzMxNCwgMC4wMDMzNjksIDAuMDAzMzc3LCAwLjAwMzM4MiwgMC4wMDMzODUsIDAuMDAzMzg2LCAwLjAwMzM4OCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTE3NCwgMC4wMDExNzIsIDAuMDAxMTc2LCAwLjAwMTE3MiwgMC4wMDExNzYsIDAuMDAxMTcsIDAuMDAxMTY5IiwgXAotICAgICAgICAgICIwLjAwMTEzNiwgMC4wMDExNDIsIDAuMDAxMTQ0LCAwLjAwMTE0NSwgMC4wMDExNDIsIDAuMDAxMTM4LCAwLjAwMTE0NCIsIFwKLSAgICAgICAgICAiMC4wMDExMTQsIDAuMDAxMTMyLCAwLjAwMTEzMywgMC4wMDExMzMsIDAuMDAxMTMzLCAwLjAwMTEzMiwgMC4wMDExMzMiLCBcCi0gICAgICAgICAgIjAuMDAxMDk5LCAwLjAwMTEyNiwgMC4wMDExMjksIDAuMDAxMTMsIDAuMDAxMTI5LCAwLjAwMTEyOCwgMC4wMDExMjgiLCBcCi0gICAgICAgICAgIjAuMDAxMDg4LCAwLjAwMTEyMSwgMC4wMDExMjUsIDAuMDAxMTI2LCAwLjAwMTEyNywgMC4wMDExMjcsIDAuMDAxMTI2IiwgXAotICAgICAgICAgICIwLjAwMTA3OCwgMC4wMDExMTUsIDAuMDAxMTIsIDAuMDAxMTIzLCAwLjAwMTEyMywgMC4wMDExMjQsIDAuMDAxMTI0IiwgXAotICAgICAgICAgICIwLjAwMTA3MiwgMC4wMDExMSwgMC4wMDExMTcsIDAuMDAxMTIxLCAwLjAwMTEyMSwgMC4wMDExMjIsIDAuMDAxMTIyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjc1NiwgMC4wMDI3NiwgMC4wMDI3NiwgMC4wMDI3NiwgMC4wMDI3NiwgMC4wMDI3NTksIDAuMDAyNzU5IiwgXAotICAgICAgICAgICIwLjAwMjczMywgMC4wMDI3NTQsIDAuMDAyNzU3LCAwLjAwMjc1NywgMC4wMDI3NTcsIDAuMDAyNzU4LCAwLjAwMjc1NiIsIFwKLSAgICAgICAgICAiMC4wMDI3MTIsIDAuMDAyNzQ4LCAwLjAwMjc1MiwgMC4wMDI3NTIsIDAuMDAyNzU1LCAwLjAwMjc1OSwgMC4wMDI3NTYiLCBcCi0gICAgICAgICAgIjAuMDAyNjk3LCAwLjAwMjc0MywgMC4wMDI3NDksIDAuMDAyNzUyLCAwLjAwMjc1MSwgMC4wMDI3NTUsIDAuMDAyNzUzIiwgXAotICAgICAgICAgICIwLjAwMjY4NywgMC4wMDI3MzgsIDAuMDAyNzQ1LCAwLjAwMjc0OSwgMC4wMDI3NTIsIDAuMDAyNzUyLCAwLjAwMjc1MSIsIFwKLSAgICAgICAgICAiMC4wMDI2NzYsIDAuMDAyNzMxLCAwLjAwMjc0LCAwLjAwMjc0NiwgMC4wMDI3NDksIDAuMDAyNzQ5LCAwLjAwMjc1IiwgXAotICAgICAgICAgICIwLjAwMjY3LCAwLjAwMjcyNSwgMC4wMDI3MzYsIDAuMDAyNzQyLCAwLjAwMjc0NiwgMC4wMDI3NDgsIDAuMDAyNzQ3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwMTQ5LCAwLjAwMDE1NiwgMC4wMDAxNTcsIDAuMDAwMTU3LCAwLjAwMDE1OCwgMC4wMDAxNTcsIDAuMDAwMTU4IiwgXAotICAgICAgICAgICIwLjAwMDE0NCwgMC4wMDAxNzgsIDAuMDAwMTgxLCAwLjAwMDE4MywgMC4wMDAxODQsIDAuMDAwMTg1LCAwLjAwMDE4NSIsIFwKLSAgICAgICAgICAiMC4wMDAxMjEsIDAuMDAwMTc4LCAwLjAwMDE4NCwgMC4wMDAxODksIDAuMDAwMTkxLCAwLjAwMDE5MiwgMC4wMDAxOTMiLCBcCi0gICAgICAgICAgIjAuMDAwMDk3LCAwLjAwMDE3MiwgMC4wMDAxODEsIDAuMDAwMTg4LCAwLjAwMDE5LCAwLjAwMDE5MiwgMC4wMDAxOTMiLCBcCi0gICAgICAgICAgIjAuMDAwMDgxLCAwLjAwMDE2NywgMC4wMDAxNzksIDAuMDAwMTg1LCAwLjAwMDE4OSwgMC4wMDAxOTIsIDAuMDAwMTkzIiwgXAotICAgICAgICAgICIwLjAwMDA2MSwgMC4wMDAxNTgsIDAuMDAwMTczLCAwLjAwMDE4MSwgMC4wMDAxODYsIDAuMDAwMTg5LCAwLjAwMDE5MSIsIFwKLSAgICAgICAgICAiMC4wMDAwNDksIDAuMDAwMTUxLCAwLjAwMDE2OCwgMC4wMDAxNzgsIDAuMDAwMTgzLCAwLjAwMDE4NywgMC4wMDAxODkiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogQU9JMjIxWDIgKgotICogLS0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKEFPSTIyMVgyKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMjMxODU2OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNjI3NTc7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNjE2ODY7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNjI3NTc7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNjEyLCAwLjAwMDYxMiwgMC4wMDA2MTIsIDAuMDAwNjEyLCAwLjAwMDYxMSwgMC4wMDA2MTEsIDAuMDAwNjExIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNjMzLCAwLjAwMDYxOCwgMC4wMDA2MTYsIDAuMDAwNjE2LCAwLjAwMDYxNSwgMC4wMDA2MTUsIDAuMDAwNjE1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihBMSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNDk2NTc7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNDgwMTg7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNDk2NTc7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzAyLCAwLjAwMDMwMiwgMC4wMDAzMDIsIDAuMDAwMzAyLCAwLjAwMDMwMiwgMC4wMDAzMDIsIDAuMDAwMzAyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNjk1LCAwLjAwMDY5NiwgMC4wMDA2OTYsIDAuMDAwNjk2LCAwLjAwMDY5NiwgMC4wMDA2OTYsIDAuMDAwNjk2Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNjM2MzI7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNjI5NDE7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNjM2MzI7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNjEyLCAwLjAwMDYxMiwgMC4wMDA2MTIsIDAuMDAwNjEyLCAwLjAwMDYxMiwgMC4wMDA2MTIsIDAuMDAwNjEyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNjMyLCAwLjAwMDYxOCwgMC4wMDA2MTYsIDAuMDAwNjE1LCAwLjAwMDYxNSwgMC4wMDA2MTUsIDAuMDAwNjE0Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCMSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNTY1MDM7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNTUxNjg7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNTY1MDM7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjkxLCAwLjAwMDI5MSwgMC4wMDAyOSwgMC4wMDAyOTEsIDAuMDAwMjkxLCAwLjAwMDI5MSwgMC4wMDAyOTEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA2OTUsIDAuMDAwNjk1LCAwLjAwMDY5NSwgMC4wMDA2OTUsIDAuMDAwNjk2LCAwLjAwMDY5NiwgMC4wMDA2OTYiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEMwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE1MTA1ODsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE1MTAwMTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE1MTA1ODsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxNTMsIDAuMDAwMTUzLCAwLjAwMDE1MywgMC4wMDAxNTMsIDAuMDAwMTUzLCAwLjAwMDE1MywgMC4wMDAxNTMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDEwMzMsIDAuMDAxMDM0LCAwLjAwMTAzNCwgMC4wMDEwMzMsIDAuMDAxMDMzLCAwLjAwMTAzMywgMC4wMDEwMzMiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4wOTc3MjU0OwotICAgIGZ1bmN0aW9uIDogIighKCgoQTAgQTEpKyhCMCBCMSkpK0MwKSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMDM1OTQsIDAuNzc0NjgsIDEuMjMwNjgsIDEuODAxNzQsIDIuMzc1MzUsIDIuOTQ3ODgsIDMuNTIwOTQiLCBcCi0gICAgICAgICAgIjAuMjE1MjU4LCAwLjc4NjQ3NiwgMS4yNDI2NCwgMS44MTMzMiwgMi4zODcyNSwgMi45NjAxMywgMy41MzI2NSIsIFwKLSAgICAgICAgICAiMC4yMjk0NzUsIDAuODAwNzczLCAxLjI1NjkzLCAxLjgyNzY0LCAyLjQwMTU0LCAyLjk3NDQ5LCAzLjU0NzE1IiwgXAotICAgICAgICAgICIwLjI0Mjc3NiwgMC44MTQwMjIsIDEuMjcwNzUsIDEuODQxNCwgMi40MTQ0MywgMi45ODcyLCAzLjU2MDIiLCBcCi0gICAgICAgICAgIjAuMjU1NDI3LCAwLjgyNjczOCwgMS4yODI3NywgMS44NTM3MywgMi40MjczMywgMy4wMDAwOSwgMy41NzI5NiIsIFwKLSAgICAgICAgICAiMC4yNzQ2MDIsIDAuODQ2MDU5LCAxLjMwMjQyLCAxLjg3MywgMi40NDY2MSwgMy4wMTk0LCAzLjU5MjI0IiwgXAotICAgICAgICAgICIwLjI5MDY2NiwgMC44NjI1OTgsIDEuMzE4NjcsIDEuODg5MjUsIDIuNDYzMTQsIDMuMDM1NjYsIDMuNjA4NzQiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzAzMjI4LCAxLjQwMDg4LCAyLjI4NTQsIDMuMzg5MTcsIDQuNDkzODQsIDUuNTk4NjQsIDYuNzA0MDEiLCBcCi0gICAgICAgICAgIjAuMzAzNDI0LCAxLjQwMTgxLCAyLjI4NTI2LCAzLjM4OTEsIDQuNDkzNiwgNS41OTkzMSwgNi43MDc3NSIsIFwKLSAgICAgICAgICAiMC4zMDM0MjUsIDEuNDAxOCwgMi4yODUzMywgMy4zODkxLCA0LjQ5NDM5LCA1LjU5OTMxLCA2LjcwNTAyIiwgXAotICAgICAgICAgICIwLjMwMzQxLCAxLjQwMTQ0LCAyLjI4NDU4LCAzLjM4OTYsIDQuNDk0MzksIDUuNTk5ODgsIDYuNzA3NjEiLCBcCi0gICAgICAgICAgIjAuMzAzNDEzLCAxLjQwMDg5LCAyLjI4NTM1LCAzLjM4ODk5LCA0LjQ5Mzk1LCA1LjU5OTU5LCA2LjcwNzc0IiwgXAotICAgICAgICAgICIwLjMwMzU4MiwgMS40MDA4NSwgMi4yODQ1MiwgMy4zODg5OCwgNC40OTM5NSwgNS42MDM3NiwgNi43MDc3MyIsIFwKLSAgICAgICAgICAiMC4zMDQxMTMsIDEuNDAwNzYsIDIuMjg1NTksIDMuMzkwNjEsIDQuNDkzODUsIDUuNjAyNzUsIDYuNzA3NzMiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTQ4OTQ4LCAwLjU2MzgyNywgMC44OTE0MzYsIDEuMjk5OTcsIDEuNzA4LCAyLjExNjUzLCAyLjUyNDgiLCBcCi0gICAgICAgICAgIjAuMTYwMjY0LCAwLjU3NTE3NSwgMC45MDI3NTIsIDEuMzExMzUsIDEuNzIwMDYsIDIuMTI3NjUsIDIuNTM2MTUiLCBcCi0gICAgICAgICAgIjAuMTczNzc4LCAwLjU4ODc0NywgMC45MTYzNjQsIDEuMzI1MjcsIDEuNzMyOTcsIDIuMTQxNiwgMi41NDkyNyIsIFwKLSAgICAgICAgICAiMC4xODcyMjYsIDAuNjAyMjA5LCAwLjkyOTkzMywgMS4zMzg3MiwgMS43NDcxNSwgMi4xNTUwOSwgMi41NjIxMyIsIFwKLSAgICAgICAgICAiMC4yMDA1NTMsIDAuNjE1NjkzLCAwLjk0MzM5MywgMS4zNTIxNywgMS43NjAyNiwgMi4xNjc4NywgMi41NzY1OSIsIFwKLSAgICAgICAgICAiMC4yMjIwNCwgMC42Mzc0OSwgMC45NjUxNjUsIDEuMzc0MDMsIDEuNzgxOTYsIDIuMTg5NjgsIDIuNTk3NjYiLCBcCi0gICAgICAgICAgIjAuMjQwOTM1LCAwLjY1NjMwMSwgMC45ODQwMTksIDEuMzkyNjQsIDEuODAxMDksIDIuMjA4ODEsIDIuNjE3NTEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjQ2MjQ5LCAxLjAyNjMzLCAxLjY1MDM0LCAyLjQzMDIzLCAzLjIwOTYxLCAzLjk4ODg3LCA0Ljc2NjUzIiwgXAotICAgICAgICAgICIwLjI0NjExMywgMS4wMjYyOSwgMS42NTAzNCwgMi40MjkzMiwgMy4yMDkyNCwgMy45ODg4MiwgNC43Njc2MiIsIFwKLSAgICAgICAgICAiMC4yNDU5NTYsIDEuMDI2MTksIDEuNjUwMzEsIDIuNDMwMDMsIDMuMjA5OSwgMy45ODkxMiwgNC43NjcyOSIsIFwKLSAgICAgICAgICAiMC4yNDU2ODQsIDEuMDI2NCwgMS42NTA2NSwgMi40Mjk5OSwgMy4yMDk5MywgMy45ODk0NCwgNC43Njc4NiIsIFwKLSAgICAgICAgICAiMC4yNDYyLCAxLjAyNjMsIDEuNjUwNTEsIDIuNDMwNDYsIDMuMjA5NCwgMy45ODkxNCwgNC43Njc3NiIsIFwKLSAgICAgICAgICAiMC4yNDg4LCAxLjAyNjQzLCAxLjY1MDU4LCAyLjQyOTM4LCAzLjIwOTg5LCAzLjk4OTAxLCA0Ljc2NjY1IiwgXAotICAgICAgICAgICIwLjI1MjUzNiwgMS4wMjYyOCwgMS42NTA1MiwgMi40MzAxNCwgMy4yMDk3NiwgMy45ODkwOSwgNC43NjY4NyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTk2OTA1LCAwLjc3MTc3OSwgMS4yMzE1LCAxLjgwNjIsIDIuMzg0MjMsIDIuOTYxNTUsIDMuNTM4NDciLCBcCi0gICAgICAgICAgIjAuMjA4OCwgMC43ODM4OTksIDEuMjQzNDIsIDEuODE4LCAyLjM5NjUyLCAyLjk3MzczLCAzLjU1MDQzIiwgXAotICAgICAgICAgICIwLjIyMjk3OCwgMC43OTgzMDcsIDEuMjU3OTQsIDEuODMyMzYsIDIuNDEwOTYsIDIuOTg4MTQsIDMuNTY1MDMiLCBcCi0gICAgICAgICAgIjAuMjM2MTA2LCAwLjgxMTcxLCAxLjI3MDk3LCAxLjg0NjE3LCAyLjQyMzcsIDMuMDAxMDMsIDMuNTc4MzIiLCBcCi0gICAgICAgICAgIjAuMjQ4NjU0LCAwLjgyNDEyNSwgMS4yODQxOCwgMS44NTg3NywgMi40MzY4OCwgMy4wMTQyMywgMy41OTA3IiwgXAotICAgICAgICAgICIwLjI2NzcwNywgMC44NDM0MDQsIDEuMzAzMjUsIDEuODc4MywgMi40NTY0MiwgMy4wMzM3NSwgMy42MTA1MSIsIFwKLSAgICAgICAgICAiMC4yODM2ODcsIDAuODU5ODQyLCAxLjMxOTgxLCAxLjg5NTEzLCAyLjQ3MTc0LCAzLjA0OTI3LCAzLjYyNjciKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjk2Mzg1LCAxLjQwNTE2LCAyLjI5NzkxLCAzLjQxMzMyLCA0LjUxOTk0LCA1LjYzMTY5LCA2Ljc0NDMzIiwgXAotICAgICAgICAgICIwLjI5NjY3MywgMS40MDM2NywgMi4yOTQ2OSwgMy40MDg5NSwgNC41MTgzNiwgNS42MzgxNiwgNi43NDkyMiIsIFwKLSAgICAgICAgICAiMC4yOTY2NTksIDEuNDAzMzgsIDIuMjk1MzUsIDMuNDA4MjMsIDQuNTE4NDksIDUuNjM3NjcsIDYuNzQ5MDQiLCBcCi0gICAgICAgICAgIjAuMjk2NjY1LCAxLjQwMjQ0LCAyLjI5ODk2LCAzLjQxMzcxLCA0LjUzMjI0LCA1LjYzMTk2LCA2Ljc0NDg4IiwgXAotICAgICAgICAgICIwLjI5NjY4MiwgMS40MDQ3NywgMi4yOTQ0OCwgMy40MTMwOSwgNC41MjA1NywgNS42Mzc3NSwgNi43NDY3MSIsIFwKLSAgICAgICAgICAiMC4yOTY2NDIsIDEuNDA1NCwgMi4yOTQ2OCwgMy40MTMxLCA0LjUyMDU1LCA1LjYzNzcyLCA2Ljc0ODg5IiwgXAotICAgICAgICAgICIwLjI5Nzc2NiwgMS40MDQ4OSwgMi4yOTg0MiwgMy40MTU3MSwgNC41MjIxMywgNS42MzYyOCwgNi43NDU3NiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNDQzNSwgMC41NTkyMTQsIDAuODg2OTYyLCAxLjI5NTcsIDEuNzAzNzYsIDIuMTExMzgsIDIuNTIwMDgiLCBcCi0gICAgICAgICAgIjAuMTU0NTEzLCAwLjU2OTM3MywgMC44OTY5NTksIDEuMzA1NTcsIDEuNzE0MDgsIDIuMTIxNjQsIDIuNTI5OTUiLCBcCi0gICAgICAgICAgIjAuMTY3NDMsIDAuNTgyNDIxLCAwLjkxMDEwNiwgMS4zMTg2LCAxLjcyNjY2LCAyLjEzNDkzLCAyLjU0MzQ0IiwgXAotICAgICAgICAgICIwLjE4MTA1NSwgMC41OTYxMzcsIDAuOTIzOTc3LCAxLjMzMjYyLCAxLjc0MDc5LCAyLjE0ODI0LCAyLjU1NjkzIiwgXAotICAgICAgICAgICIwLjE5Mzc2LCAwLjYwODgxNSwgMC45MzY1MywgMS4zNDUzLCAxLjc1MzM2LCAyLjE2MSwgMi41Njk2OSIsIFwKLSAgICAgICAgICAiMC4yMTQ5OTYsIDAuNjI5OTk1LCAwLjk1NzY2NCwgMS4zNjY2MSwgMS43NzQzNiwgMi4xODMwMiwgMi41ODk4NiIsIFwKLSAgICAgICAgICAiMC4yMzQ4MzQsIDAuNjQ4NjAyLCAwLjk3NjMwOSwgMS4zODQ5MSwgMS43OTMxOCwgMi4yMDE2NSwgMi42MDk3NiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yNDYzNjYsIDEuMDI2NDUsIDEuNjUwNTIsIDIuNDI5OTUsIDMuMjA5NTEsIDMuOTg5MjIsIDQuNzY4NSIsIFwKLSAgICAgICAgICAiMC4yNDYxMjYsIDEuMDI2NDQsIDEuNjUwNTMsIDIuNDI5OTMsIDMuMjA5NjgsIDMuOTg5MDcsIDQuNzY3NTMiLCBcCi0gICAgICAgICAgIjAuMjQ1NzgzLCAxLjAyNjQ0LCAxLjY1MDIsIDIuNDI5ODksIDMuMjEsIDMuOTg3NjcsIDQuNzY3NjciLCBcCi0gICAgICAgICAgIjAuMjQ1NTI4LCAxLjAyNjMyLCAxLjY1MDYxLCAyLjQzMDIyLCAzLjIwOTM4LCAzLjk4OTAyLCA0Ljc2NjY5IiwgXAotICAgICAgICAgICIwLjI0NzAxMywgMS4wMjY0LCAxLjY1MDIzLCAyLjQyOTMzLCAzLjIwOTg3LCAzLjk4ODc1LCA0Ljc2ODQyIiwgXAotICAgICAgICAgICIwLjI1MjEwNSwgMS4wMjY1MiwgMS42NTAwOSwgMi40MzAyOSwgMy4yMDk4NywgMy45ODkwNywgNC43NjcxNiIsIFwKLSAgICAgICAgICAiMC4yNTc5NiwgMS4wMjY0NCwgMS42NTA1NSwgMi40MzAyOCwgMy4yMTAxNCwgMy45ODkwNSwgNC43NjcyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTg2NTIsIDAuNzU3NzYzLCAxLjIxMzgzLCAxLjc4NzkzLCAyLjM2MTExLCAyLjkzNTIsIDMuNTA5MDciLCBcCi0gICAgICAgICAgIjAuMTk3MDIyLCAwLjc2ODI4NiwgMS4yMjQ1MSwgMS43OTc1NywgMi4zNzE0OSwgMi45NDU3LCAzLjUxOTUzIiwgXAotICAgICAgICAgICIwLjIxMDE4MSwgMC43ODE2MDIsIDEuMjM3NzUsIDEuODExMzYsIDIuMzg1NjIsIDIuOTU5NDcsIDMuNTMyODciLCBcCi0gICAgICAgICAgIjAuMjIyNzQ2LCAwLjc5NDAxOCwgMS4yNTAwMSwgMS44MjQsIDIuMzk3NjUsIDIuOTcxNzEsIDMuNTQ1NTkiLCBcCi0gICAgICAgICAgIjAuMjM1MTU5LCAwLjgwNjc1OCwgMS4yNjI1MywgMS44MzYzNCwgMi40MTA2NywgMi45ODQzNywgMy41NTgiLCBcCi0gICAgICAgICAgIjAuMjU0MjU3LCAwLjgyNTg5NywgMS4yODIyNCwgMS44NTYyNSwgMi40Mjk4OCwgMy4wMDM0LCAzLjU3NzMxIiwgXAotICAgICAgICAgICIwLjI3MDc2LCAwLjg0MjMyMywgMS4yOTg0NiwgMS44NzE4NSwgMi40NDcwNSwgMy4wMjA1OSwgMy41OTM5MiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMDM0MSwgMS40MDE3MiwgMi4yODU2MiwgMy4zOTA3MywgNC40OTY5NCwgNS42MDE5MSwgNi43MDU2OCIsIFwKLSAgICAgICAgICAiMC4zMDM0MzQsIDEuNDAxODIsIDIuMjg1ODEsIDMuMzkxOTUsIDQuNDk3MywgNS42MDI5MSwgNi43MDY3NCIsIFwKLSAgICAgICAgICAiMC4zMDMyMjksIDEuNDAxODMsIDIuMjg1OTQsIDMuMzkwNywgNC40OTU5OCwgNS42MDE2NSwgNi43MTA0NSIsIFwKLSAgICAgICAgICAiMC4zMDM0MDIsIDEuNDAxMzEsIDIuMjg1MDksIDMuMzkwNzgsIDQuNDk2OTgsIDUuNjAxNzIsIDYuNzA2NDkiLCBcCi0gICAgICAgICAgIjAuMzAzNDI1LCAxLjQwMTc4LCAyLjI4NjU2LCAzLjM5MTEzLCA0LjQ5NTk4LCA1LjYwMTQ0LCA2LjcxMDQyIiwgXAotICAgICAgICAgICIwLjMwNDI2OCwgMS40MDI0OCwgMi4yODU3OCwgMy4zOTA3MywgNC40OTYyNSwgNS42MDIyLCA2LjcwNTkiLCBcCi0gICAgICAgICAgIjAuMzA2ODc4LCAxLjQwMTU3LCAyLjI4NTIyLCAzLjM5MDU5LCA0LjQ5NTc2LCA1LjYwMjc1LCA2LjcxMDQxIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEyOTY4NSwgMC41Mzk0OTksIDAuODY2MDg2LCAxLjI3Mzg4LCAxLjY4MTY1LCAyLjA5MDA0LCAyLjQ5NzMzIiwgXAotICAgICAgICAgICIwLjE0MTM1NSwgMC41NTEyMjcsIDAuODc3NzA4LCAxLjI4NTU3LCAxLjY5MzYsIDIuMTAwOTgsIDIuNTA5MDMiLCBcCi0gICAgICAgICAgIjAuMTU0ODksIDAuNTY0OTYyLCAwLjg5MTQ1NywgMS4yOTk0MywgMS43MDc1MywgMi4xMTUwNywgMi41MjI1MyIsIFwKLSAgICAgICAgICAiMC4xNjgzODYsIDAuNTc4NTMzLCAwLjkwNTEzMiwgMS4zMTMxMiwgMS43MjEwNSwgMi4xMjg2MiwgMi41MzYzNyIsIFwKLSAgICAgICAgICAiMC4xODE2NjUsIDAuNTkyMjI0LCAwLjkxOTI1OCwgMS4zMjY2NiwgMS43MzQ1NywgMi4xNDIzNSwgMi41NTAxMSIsIFwKLSAgICAgICAgICAiMC4yMDI5ODYsIDAuNjEzNjgzLCAwLjk0MDQ4MiwgMS4zNDgyNCwgMS43NTYyLCAyLjE2NDMyLCAyLjU3MTM1IiwgXAotICAgICAgICAgICIwLjIyMTkwMiwgMC42MzI0NzEsIDAuOTU5MDg3LCAxLjM2NzE4LCAxLjc3NTA4LCAyLjE4MjYzLCAyLjU5MDY0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIyMzU5NCwgMS4wMDMwNSwgMS42MjY0LCAyLjQwNTU3LCAzLjE4Mzg0LCAzLjk2MjY2LCA0Ljc0MjA0IiwgXAotICAgICAgICAgICIwLjIyMzU4OSwgMS4wMDI5MiwgMS42MjY1MywgMi40MDU1NSwgMy4xODQ1NSwgMy45NjMyNSwgNC43NDI1MSIsIFwKLSAgICAgICAgICAiMC4yMjM1OTQsIDEuMDAyOTgsIDEuNjI2NDksIDIuNDA1NSwgMy4xODQ3NSwgMy45NjM5NCwgNC43NDI0NyIsIFwKLSAgICAgICAgICAiMC4yMjM2NjgsIDEuMDAyOTIsIDEuNjI2NjcsIDIuNDA1MTMsIDMuMTg0OTYsIDMuOTYyNzksIDQuNzQyMzUiLCBcCi0gICAgICAgICAgIjAuMjI0NjksIDEuMDAyODYsIDEuNjI2NDIsIDIuNDA1ODksIDMuMTg0NTcsIDMuOTYzMzUsIDQuNzQyNTQiLCBcCi0gICAgICAgICAgIjAuMjI4Mjk0LCAxLjAwMzA2LCAxLjYyNjY3LCAyLjQwNDk4LCAzLjE4NDg0LCAzLjk2MzY4LCA0Ljc0MjAyIiwgXAotICAgICAgICAgICIwLjIzMzIwOSwgMS4wMDI5MiwgMS42MjY2MiwgMi40MDYwMSwgMy4xODQ2OSwgMy45NjMzMywgNC43NDE4NyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTc4OTY5LCAwLjc1MzI1MSwgMS4yMTIwNCwgMS43ODk2MiwgMi4zNjY0MSwgMi45NDM0NiwgMy41MjA3MSIsIFwKLSAgICAgICAgICAiMC4xODk3NDcsIDAuNzY0MDUsIDEuMjIzMDEsIDEuNzk5NiwgMi4zNzcwMiwgMi45NTQ1MSwgMy41MzE1OCIsIFwKLSAgICAgICAgICAiMC4yMDI5MjEsIDAuNzc3MjY4LCAxLjIzNjcsIDEuODEzMzMsIDIuMzkwOTQsIDIuOTY3OSwgMy41NDUxOSIsIFwKLSAgICAgICAgICAiMC4yMTUyMjUsIDAuNzg5ODQyLCAxLjI0ODgsIDEuODI1OCwgMi40MDM4OSwgMi45ODA0NiwgMy41NTc4MyIsIFwKLSAgICAgICAgICAiMC4yMjc1MjgsIDAuODAyNDMzLCAxLjI2MTI5LCAxLjgzODA2LCAyLjQxNTksIDIuOTkyODQsIDMuNTcwMTIiLCBcCi0gICAgICAgICAgIjAuMjQ2NDQ0LCAwLjgyMTIxNiwgMS4yODAyMywgMS44NTY4MSwgMi40MzU2NCwgMy4wMTI2LCAzLjU4OTQyIiwgXAotICAgICAgICAgICIwLjI2Mjc3OCwgMC44Mzc4MTcsIDEuMjk2NzIsIDEuODczNDQsIDIuNDUyMTYsIDMuMDI4NzYsIDMuNjA1OTgiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjk2MTczLCAxLjQwNTc2LCAyLjI5Nzk0LCAzLjQwNTkxLCA0LjUzMjQsIDUuNjM1NzgsIDYuNzQ4OCIsIFwKLSAgICAgICAgICAiMC4yOTYxODEsIDEuNDAzNjIsIDIuMjkyOTgsIDMuNDA3MDYsIDQuNTIwMjgsIDUuNjM2NTEsIDYuNzQ4OTYiLCBcCi0gICAgICAgICAgIjAuMjk1OTg4LCAxLjQwNjE3LCAyLjI5ODc5LCAzLjQwNjE5LCA0LjUzMjY2LCA1LjYzNzA2LCA2Ljc0OTEiLCBcCi0gICAgICAgICAgIjAuMjk1ODI2LCAxLjQwMzMsIDIuMjk3NjMsIDMuNDE0MDgsIDQuNTMzMzYsIDUuNjM3MjksIDYuNzQ1MTMiLCBcCi0gICAgICAgICAgIjAuMjk2MDAzLCAxLjQwNTgxLCAyLjI5OCwgMy40MDkyMywgNC41MzI3OSwgNS42MzcwOCwgNi43NDkwOCIsIFwKLSAgICAgICAgICAiMC4yOTczMDIsIDEuNDAzMzYsIDIuMjk0NTYsIDMuNDA4OTYsIDQuNTMzNzEsIDUuNjM3NjQsIDYuNzQ4ODgiLCBcCi0gICAgICAgICAgIjAuMjk5NzAxLCAxLjQwNTQsIDIuMjk2OTMsIDMuNDA4ODMsIDQuNTE3NSwgNS42MzcyNSwgNi43NDg4OSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMjQ4ODMsIDAuNTM0NzcxLCAwLjg2MTI2MywgMS4yNjkxNiwgMS42NzY5MiwgMi4wODUyNiwgMi40OTI2NSIsIFwKLSAgICAgICAgICAiMC4xMzUzMjIsIDAuNTQ1Mjg4LCAwLjg3MTg3NCwgMS4yNzk3NCwgMS42ODc0LCAyLjA5NTE4LCAyLjUwMjYxIiwgXAotICAgICAgICAgICIwLjE0ODM4OCwgMC41NTg3MiwgMC44ODUwMTMsIDEuMjkyOTIsIDEuNzAwNzksIDIuMTA4NDEsIDIuNTE2MzQiLCBcCi0gICAgICAgICAgIjAuMTYyMTA5LCAwLjU3MjQ3OSwgMC44OTg5NTgsIDEuMzA2NzgsIDEuNzE0NDUsIDIuMTIyMjcsIDIuNTMwMTYiLCBcCi0gICAgICAgICAgIjAuMTc0NjU2LCAwLjU4NDk0MywgMC45MTE0MTMsIDEuMzE5MzIsIDEuNzI3MzIsIDIuMTM1MSwgMi41NDI5OCIsIFwKLSAgICAgICAgICAiMC4xOTU4NDgsIDAuNjA2MTEsIDAuOTMzMDA5LCAxLjM0MTEyLCAxLjc0OTEzLCAyLjE1NzE3LCAyLjU2NDU3IiwgXAotICAgICAgICAgICIwLjIxNTYwNiwgMC42MjQ2MzEsIDAuOTUxMjg3LCAxLjM1OTgsIDEuNzY3NzYsIDIuMTc1ODUsIDIuNTgyOTUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjIzNjA4LCAxLjAwMzA4LCAxLjYyNjIsIDIuNDA1NDQsIDMuMTg0NjIsIDMuOTYyNzUsIDQuNzQzMDUiLCBcCi0gICAgICAgICAgIjAuMjIzNTk0LCAxLjAwMzEyLCAxLjYyNjQ1LCAyLjQwNTU0LCAzLjE4NDc2LCAzLjk2MzI4LCA0Ljc0MjM2IiwgXAotICAgICAgICAgICIwLjIyMzU4NSwgMS4wMDMxNiwgMS42MjYwNywgMi40MDU5MiwgMy4xODQ5MiwgMy45NjI5NCwgNC43NDI1MyIsIFwKLSAgICAgICAgICAiMC4yMjQwMDMsIDEuMDAzMTMsIDEuNjI2MTQsIDIuNDA1OTEsIDMuMTg0NTEsIDMuOTYzNzMsIDQuNzQyNCIsIFwKLSAgICAgICAgICAiMC4yMjY0ODUsIDEuMDAyOTEsIDEuNjI2MzUsIDIuNDA0OTIsIDMuMTg1MDIsIDMuOTYzMzEsIDQuNzQyNjgiLCBcCi0gICAgICAgICAgIjAuMjMzMDkzLCAxLjAwMzExLCAxLjYyNjM1LCAyLjQwNTQsIDMuMTg0NjgsIDMuOTYzLCA0Ljc0MTczIiwgXAotICAgICAgICAgICIwLjI0MDA4OCwgMS4wMDMxMiwgMS42MjY0NCwgMi40MDQ5NSwgMy4xODQ3NCwgMy45NjM0NSwgNC43NDE1NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTU4MDc0LCAwLjcyOTE3NywgMS4xODU1NCwgMS43NTk4OCwgMi4zMzY1MywgMi45MTQwMywgMy40OTE0MSIsIFwKLSAgICAgICAgICAiMC4xNjc2NjMsIDAuNzM5MTQsIDEuMTk1MjYsIDEuNzY5MDQsIDIuMzQ2OTMsIDIuOTIzOTMsIDMuNTAxMTkiLCBcCi0gICAgICAgICAgIjAuMTgwMjE1LCAwLjc1MTQ1OSwgMS4yMDc0NiwgMS43ODE5NCwgMi4zNTk2MSwgMi45MzY2OCwgMy41MTM1OSIsIFwKLSAgICAgICAgICAiMC4xOTE4MzksIDAuNzYzODU3LCAxLjIxOTg2LCAxLjc5Mzc0LCAyLjM3MTg3LCAyLjk0OTMxLCAzLjUyNTgyIiwgXAotICAgICAgICAgICIwLjIwMzk2LCAwLjc3NTkzNCwgMS4yMzIyNCwgMS44MDYxNCwgMi4zODMyOCwgMi45NjA4OSwgMy41MzgzMyIsIFwKLSAgICAgICAgICAiMC4yMjM0MjMsIDAuNzk1Mzc3LCAxLjI1MTgzLCAxLjgyNTgxLCAyLjQwMzkzLCAyLjk4MDg5LCAzLjU1Nzk0IiwgXAotICAgICAgICAgICIwLjI0MTU3NSwgMC44MTI1ODQsIDEuMjY5MiwgMS44NDI2MywgMi40MjA5MywgMi45OTc2NiwgMy41NzQ5NSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMDI4MTUsIDEuNDA2MjgsIDIuMjk3ODgsIDMuNDE1NDksIDQuNTMxMzcsIDUuNjM2MzQsIDYuNzQ1NjIiLCBcCi0gICAgICAgICAgIjAuMzAyOCwgMS40MDUxOCwgMi4yOTY5OSwgMy40MTIzNCwgNC41MzI1MiwgNS42MzYyLCA2Ljc0OTA1IiwgXAotICAgICAgICAgICIwLjMwMTgwNywgMS40MDUwMSwgMi4yOTUwOSwgMy40MTQ4NSwgNC41MzMyNCwgNS42Mzc3MywgNi43NDkxNiIsIFwKLSAgICAgICAgICAiMC4zMDEwOTMsIDEuNDA1NDksIDIuMjk0NDUsIDMuNDEyNTksIDQuNTE5NiwgNS42Mzc5NSwgNi43NDc1NyIsIFwKLSAgICAgICAgICAiMC4zMDIzMTMsIDEuNDA1MDQsIDIuMjkzNzQsIDMuNDEzMjgsIDQuNTMxMDQsIDUuNjM2MDMsIDYuNzQ1NjUiLCBcCi0gICAgICAgICAgIjAuMzA3MTc1LCAxLjQwMzIzLCAyLjI5Nzg3LCAzLjQxMzQzLCA0LjUxODU1LCA1LjYzMTE0LCA2Ljc0OTI3IiwgXAotICAgICAgICAgICIwLjMxMjk3MywgMS40MDUyNywgMi4yOTgzOCwgMy40MTIwNiwgNC41MzMwNSwgNS42MzcyMywgNi43NDc5MyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTYyOTYsIDAuMjYyNjM2LCAwLjQyNzY5NSwgMC42MzM4MzgsIDAuODQwMzIyLCAxLjA0NjM5LCAxLjI1Mjc5IiwgXAotICAgICAgICAgICIwLjA2ODE0MywgMC4yNzQ2MjksIDAuNDM5NjcsIDAuNjQ1OTY4LCAwLjg1MjIzNiwgMS4wNTgzNSwgMS4yNjQ2NCIsIFwKLSAgICAgICAgICAiMC4wODMyMDEsIDAuMjg5MjgsIDAuNDU0NDM2LCAwLjY1ODAyOSwgMC44NjQ0NywgMS4wNzA1NiwgMS4yNzY4NiIsIFwKLSAgICAgICAgICAiMC4wOTgxMzYsIDAuMzAzODQyLCAwLjQ2ODgwNSwgMC42NzUzMzcsIDAuODgxMjM1LCAxLjA4NzY3LCAxLjI5NDA3IiwgXAotICAgICAgICAgICIwLjExMzMzNSwgMC4zMTg4NjYsIDAuNDgzODYyLCAwLjY5MDA2MSwgMC44OTY0MDksIDEuMTAwODksIDEuMzA0OTgiLCBcCi0gICAgICAgICAgIjAuMTM3NTM3LCAwLjM0MjgyMywgMC41MDc0OTksIDAuNzE0NDIsIDAuOTIwMTUxLCAxLjEyNTUyLCAxLjMzMzAyIiwgXAotICAgICAgICAgICIwLjE1NzM1NiwgMC4zNjQ0NTcsIDAuNTI4MTkzLCAwLjczNDQ4NywgMC45NDA0MTgsIDEuMTQ2NTQsIDEuMzUyNzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTEzODcyLCAwLjUyMjgxNCwgMC44NTA1NDQsIDEuMjYwMzksIDEuNjcwMDIsIDIuMDgwMjcsIDIuNDg5OTUiLCBcCi0gICAgICAgICAgIjAuMTEzODcsIDAuNTIyODA0LCAwLjg1MDQ5OSwgMS4yNjAzNywgMS42Njk5MywgMi4wODAwNywgMi40OTAxIiwgXAotICAgICAgICAgICIwLjExNTM3LCAwLjUyMjgwNiwgMC44NTA1OTYsIDEuMjYwNDMsIDEuNjcwODEsIDIuMDgwNTYsIDIuNDkwMTUiLCBcCi0gICAgICAgICAgIjAuMTE5NTY3LCAwLjUyMjg3MywgMC44NTA1MzgsIDEuMjYwNDQsIDEuNjcwMDMsIDIuMDc5OTQsIDIuNDkwMTMiLCBcCi0gICAgICAgICAgIjAuMTI1MTk2LCAwLjUyMjg1OSwgMC44NTA0MTMsIDEuMjYwMTgsIDEuNjY5ODUsIDIuMDc5NDgsIDIuNDkwMjQiLCBcCi0gICAgICAgICAgIjAuMTM2NzQzLCAwLjUyMzE1NiwgMC44NTA2OTMsIDEuMjYwMjUsIDEuNjcwMDksIDIuMDc5NDcsIDIuNDkwMTYiLCBcCi0gICAgICAgICAgIjAuMTQ3OTY0LCAwLjUyNDg1NSwgMC44NTA2MywgMS4yNjA2NSwgMS42NzAxMSwgMi4wNzk4NCwgMi40OTA5OCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDY4MzUsIDAuMDA2ODM0LCAwLjAwNjgzMywgMC4wMDY4MywgMC4wMDY4MjgsIDAuMDA2ODI2LCAwLjAwNjgyMyIsIFwKLSAgICAgICAgICAiMC4wMDY4MiwgMC4wMDY4MjMsIDAuMDA2ODIxLCAwLjAwNjgxOCwgMC4wMDY4MTgsIDAuMDA2ODE4LCAwLjAwNjgxMyIsIFwKLSAgICAgICAgICAiMC4wMDY4MTIsIDAuMDA2ODE5LCAwLjAwNjgxOSwgMC4wMDY4MTUsIDAuMDA2ODE1LCAwLjAwNjgxNSwgMC4wMDY4MSIsIFwKLSAgICAgICAgICAiMC4wMDY4MDYsIDAuMDA2ODE3LCAwLjAwNjgxNiwgMC4wMDY4MTUsIDAuMDA2ODE3LCAwLjAwNjgxMywgMC4wMDY4MTEiLCBcCi0gICAgICAgICAgIjAuMDA2ODAyLCAwLjAwNjgxNiwgMC4wMDY4MTYsIDAuMDA2ODE2LCAwLjAwNjgxNCwgMC4wMDY4MTIsIDAuMDA2ODEiLCBcCi0gICAgICAgICAgIjAuMDA2Nzk1LCAwLjAwNjgxMywgMC4wMDY4MTQsIDAuMDA2ODEzLCAwLjAwNjgxMiwgMC4wMDY4MDgsIDAuMDA2ODA4IiwgXAotICAgICAgICAgICIwLjAwNjc5MSwgMC4wMDY4MTEsIDAuMDA2ODEzLCAwLjAwNjgxNCwgMC4wMDY4MTIsIDAuMDA2ODExLCAwLjAwNjgwOSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjQzOCwgMC4wMDI0MzYsIDAuMDAyNDM0LCAwLjAwMjQzMiwgMC4wMDI0MzEsIDAuMDAyNDI3LCAwLjAwMjQyNSIsIFwKLSAgICAgICAgICAiMC4wMDI0MDYsIDAuMDAyNDAzLCAwLjAwMjQwMiwgMC4wMDI0MDEsIDAuMDAyMzk3LCAwLjAwMjM5OSwgMC4wMDIzOTQiLCBcCi0gICAgICAgICAgIjAuMDAyMzg1LCAwLjAwMjM5LCAwLjAwMjM4NywgMC4wMDIzODYsIDAuMDAyMzgzLCAwLjAwMjM4NCwgMC4wMDIzODMiLCBcCi0gICAgICAgICAgIjAuMDAyMzc3LCAwLjAwMjM4MSwgMC4wMDIzODEsIDAuMDAyMzgsIDAuMDAyMzc3LCAwLjAwMjM3NSwgMC4wMDIzNzMiLCBcCi0gICAgICAgICAgIjAuMDAyMzY1LCAwLjAwMjM3NywgMC4wMDIzNzgsIDAuMDAyMzc1LCAwLjAwMjM3NSwgMC4wMDIzNzMsIDAuMDAyMzY5IiwgXAotICAgICAgICAgICIwLjAwMjM1NCwgMC4wMDIzNzEsIDAuMDAyMzcyLCAwLjAwMjM3MiwgMC4wMDIzNywgMC4wMDIzNjksIDAuMDAyMzY2IiwgXAotICAgICAgICAgICIwLjAwMjM0NywgMC4wMDIzNjYsIDAuMDAyMzY5LCAwLjAwMjM2OSwgMC4wMDIzNjcsIDAuMDAyMzY1LCAwLjAwMjM2NCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkExIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDYxOTIsIDAuMDA2MTk0LCAwLjAwNjE5NCwgMC4wMDYxOTIsIDAuMDA2MTkyLCAwLjAwNjE5LCAwLjAwNjE4OSIsIFwKLSAgICAgICAgICAiMC4wMDYxOTEsIDAuMDA2MjAzLCAwLjAwNjIwNywgMC4wMDYyMDUsIDAuMDA2MjAzLCAwLjAwNjE5OCwgMC4wMDYxOTgiLCBcCi0gICAgICAgICAgIjAuMDA2MTc5LCAwLjAwNjIwMSwgMC4wMDYyMDMsIDAuMDA2MjAyLCAwLjAwNjIwMywgMC4wMDYyMDUsIDAuMDA2MiIsIFwKLSAgICAgICAgICAiMC4wMDYxNjgsIDAuMDA2MiwgMC4wMDYyMDQsIDAuMDA2MjAzLCAwLjAwNjIwMywgMC4wMDYyMDQsIDAuMDA2MjAzIiwgXAotICAgICAgICAgICIwLjAwNjE1OCwgMC4wMDYxOTYsIDAuMDA2MiwgMC4wMDYyMDIsIDAuMDA2MjAzLCAwLjAwNjIwMSwgMC4wMDYyMDEiLCBcCi0gICAgICAgICAgIjAuMDA2MTQ0LCAwLjAwNjE5LCAwLjAwNjE5NiwgMC4wMDYxOTksIDAuMDA2MTk5LCAwLjAwNjIsIDAuMDA2MTk4IiwgXAotICAgICAgICAgICIwLjAwNjEzNSwgMC4wMDYxODUsIDAuMDA2MTkzLCAwLjAwNjE5NywgMC4wMDYxOTksIDAuMDA2MTk4LCAwLjAwNjIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI0NCwgMC4wMDI0MzcsIDAuMDAyNDM2LCAwLjAwMjQzNSwgMC4wMDI0MzIsIDAuMDAyNDI5LCAwLjAwMjQyOSIsIFwKLSAgICAgICAgICAiMC4wMDI0MDUsIDAuMDAyNDA0LCAwLjAwMjQwNSwgMC4wMDI0MDEsIDAuMDAyNCwgMC4wMDI0LCAwLjAwMjM5NiIsIFwKLSAgICAgICAgICAiMC4wMDIzODMsIDAuMDAyMzg4LCAwLjAwMjM4NywgMC4wMDIzODgsIDAuMDAyMzg1LCAwLjAwMjM4MywgMC4wMDIzNzkiLCBcCi0gICAgICAgICAgIjAuMDAyMzcsIDAuMDAyMzgxLCAwLjAwMjM4MSwgMC4wMDIzODEsIDAuMDAyMzc5LCAwLjAwMjM3OCwgMC4wMDIzNzQiLCBcCi0gICAgICAgICAgIjAuMDAyMzU3LCAwLjAwMjM3NSwgMC4wMDIzNzYsIDAuMDAyMzc0LCAwLjAwMjM3NCwgMC4wMDIzNzIsIDAuMDAyMzcxIiwgXAotICAgICAgICAgICIwLjAwMjM0NiwgMC4wMDIzNjksIDAuMDAyMzY5LCAwLjAwMjM3LCAwLjAwMjM3LCAwLjAwMjM2OSwgMC4wMDIzNjYiLCBcCi0gICAgICAgICAgIjAuMDAyMzQsIDAuMDAyMzYzLCAwLjAwMjM2NywgMC4wMDIzNjgsIDAuMDAyMzY2LCAwLjAwMjM2NCwgMC4wMDIzNjMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1NDYsIDAuMDA1NDU4LCAwLjAwNTQ1NywgMC4wMDU0NTYsIDAuMDA1NDUyLCAwLjAwNTQ1LCAwLjAwNTQ0OSIsIFwKLSAgICAgICAgICAiMC4wMDU0NDQsIDAuMDA1NDQ2LCAwLjAwNTQ0NSwgMC4wMDU0NDMsIDAuMDA1NDQxLCAwLjAwNTQzOSwgMC4wMDU0NDIiLCBcCi0gICAgICAgICAgIjAuMDA1NDM2LCAwLjAwNTQ0MywgMC4wMDU0NDIsIDAuMDA1NDQxLCAwLjAwNTQ0MywgMC4wMDU0MzcsIDAuMDA1NDM1IiwgXAotICAgICAgICAgICIwLjAwNTQyOSwgMC4wMDU0NCwgMC4wMDU0MzksIDAuMDA1NDQsIDAuMDA1NDM2LCAwLjAwNTQzNSwgMC4wMDU0MzQiLCBcCi0gICAgICAgICAgIjAuMDA1NDI1LCAwLjAwNTQ0LCAwLjAwNTQ0LCAwLjAwNTQ0MiwgMC4wMDU0MzcsIDAuMDA1NDM2LCAwLjAwNTQzMyIsIFwKLSAgICAgICAgICAiMC4wMDU0MTksIDAuMDA1NDM3LCAwLjAwNTQzOCwgMC4wMDU0MzksIDAuMDA1NDM2LCAwLjAwNTQzNCwgMC4wMDU0MzMiLCBcCi0gICAgICAgICAgIjAuMDA1NDE0LCAwLjAwNTQzNSwgMC4wMDU0MzcsIDAuMDA1NDM2LCAwLjAwNTQzNSwgMC4wMDU0MzIsIDAuMDA1NDMyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxMTU3LCAwLjAwMTE1NiwgMC4wMDExNTYsIDAuMDAxMTU1LCAwLjAwMTE1NCwgMC4wMDExNTMsIDAuMDAxMTUyIiwgXAotICAgICAgICAgICIwLjAwMTE1LCAwLjAwMTE1NSwgMC4wMDExNTUsIDAuMDAxMTU1LCAwLjAwMTE1NCwgMC4wMDExNTMsIDAuMDAxMTUyIiwgXAotICAgICAgICAgICIwLjAwMTEzNywgMC4wMDExNTMsIDAuMDAxMTU0LCAwLjAwMTE1NSwgMC4wMDExNTUsIDAuMDAxMTU1LCAwLjAwMTE1MyIsIFwKLSAgICAgICAgICAiMC4wMDExMjMsIDAuMDAxMTUsIDAuMDAxMTUzLCAwLjAwMTE1MywgMC4wMDExNTMsIDAuMDAxMTUzLCAwLjAwMTE1MyIsIFwKLSAgICAgICAgICAiMC4wMDExMTEsIDAuMDAxMTQ3LCAwLjAwMTE1LCAwLjAwMTE1MiwgMC4wMDExNTMsIDAuMDAxMTUyLCAwLjAwMTE1MiIsIFwKLSAgICAgICAgICAiMC4wMDEwOTUsIDAuMDAxMTQxLCAwLjAwMTE0NywgMC4wMDExNDksIDAuMDAxMTUxLCAwLjAwMTE1MSwgMC4wMDExNTEiLCBcCi0gICAgICAgICAgIjAuMDAxMDgzLCAwLjAwMTEzNiwgMC4wMDExNDQsIDAuMDAxMTQ4LCAwLjAwMTE0OSwgMC4wMDExNDksIDAuMDAxMTQ5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDgwNCwgMC4wMDQ4MDYsIDAuMDA0ODA2LCAwLjAwNDgwNCwgMC4wMDQ4MDQsIDAuMDA0ODAyLCAwLjAwNDgwNCIsIFwKLSAgICAgICAgICAiMC4wMDQ4MDEsIDAuMDA0ODE0LCAwLjAwNDgxNCwgMC4wMDQ4MTQsIDAuMDA0ODE4LCAwLjAwNDgwOSwgMC4wMDQ4MTYiLCBcCi0gICAgICAgICAgIjAuMDA0NzksIDAuMDA0ODEyLCAwLjAwNDgxNSwgMC4wMDQ4MTUsIDAuMDA0ODEzLCAwLjAwNDgxNSwgMC4wMDQ4MTUiLCBcCi0gICAgICAgICAgIjAuMDA0Nzc4LCAwLjAwNDgwOSwgMC4wMDQ4MTMsIDAuMDA0ODE0LCAwLjAwNDgxNSwgMC4wMDQ4MTYsIDAuMDA0ODEyIiwgXAotICAgICAgICAgICIwLjAwNDc2NiwgMC4wMDQ4MDUsIDAuMDA0ODA5LCAwLjAwNDgxMSwgMC4wMDQ4MTEsIDAuMDA0ODExLCAwLjAwNDgxIiwgXAotICAgICAgICAgICIwLjAwNDc1NSwgMC4wMDQ4LCAwLjAwNDgwNiwgMC4wMDQ4MDksIDAuMDA0ODEsIDAuMDA0ODExLCAwLjAwNDgwOSIsIFwKLSAgICAgICAgICAiMC4wMDQ3NDYsIDAuMDA0Nzk1LCAwLjAwNDgwMywgMC4wMDQ4MDcsIDAuMDA0ODA5LCAwLjAwNDgxLCAwLjAwNDgwOCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTE1NSwgMC4wMDExNTYsIDAuMDAxMTU0LCAwLjAwMTE1MywgMC4wMDExNTMsIDAuMDAxMTUxLCAwLjAwMTE1NSIsIFwKLSAgICAgICAgICAiMC4wMDExNDUsIDAuMDAxMTUzLCAwLjAwMTE1NCwgMC4wMDExNTIsIDAuMDAxMTUxLCAwLjAwMTE1NSwgMC4wMDExNTEiLCBcCi0gICAgICAgICAgIjAuMDAxMTMxLCAwLjAwMTE1MSwgMC4wMDExNTIsIDAuMDAxMTUzLCAwLjAwMTE1MywgMC4wMDExNTEsIDAuMDAxMTUxIiwgXAotICAgICAgICAgICIwLjAwMTExNywgMC4wMDExNDcsIDAuMDAxMTUsIDAuMDAxMTUxLCAwLjAwMTE1MSwgMC4wMDExNTEsIDAuMDAxMTUiLCBcCi0gICAgICAgICAgIjAuMDAxMTA0LCAwLjAwMTE0NCwgMC4wMDExNDgsIDAuMDAxMTUsIDAuMDAxMTUxLCAwLjAwMTE1LCAwLjAwMTE1IiwgXAotICAgICAgICAgICIwLjAwMTA4OSwgMC4wMDExMzgsIDAuMDAxMTQ1LCAwLjAwMTE0NywgMC4wMDExNDksIDAuMDAxMTQ5LCAwLjAwMTE0OSIsIFwKLSAgICAgICAgICAiMC4wMDEwOCwgMC4wMDExMzMsIDAuMDAxMTQyLCAwLjAwMTE0NSwgMC4wMDExNDgsIDAuMDAxMTQ4LCAwLjAwMTE0OCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQzMzYsIDAuMDA0MzM4LCAwLjAwNDMzNywgMC4wMDQzMzUsIDAuMDA0MzMzLCAwLjAwNDMzLCAwLjAwNDMyNyIsIFwKLSAgICAgICAgICAiMC4wMDQzMTYsIDAuMDA0MzMzLCAwLjAwNDMzNSwgMC4wMDQzMywgMC4wMDQzMzEsIDAuMDA0MzMzLCAwLjAwNDMyNyIsIFwKLSAgICAgICAgICAiMC4wMDQyOTcsIDAuMDA0MzI2LCAwLjAwNDMyOSwgMC4wMDQzMywgMC4wMDQzMzUsIDAuMDA0MzI4LCAwLjAwNDMyNSIsIFwKLSAgICAgICAgICAiMC4wMDQyODIsIDAuMDA0MzIxLCAwLjAwNDMyNiwgMC4wMDQzMjgsIDAuMDA0MzI3LCAwLjAwNDMyNCwgMC4wMDQzMjUiLCBcCi0gICAgICAgICAgIjAuMDA0MjcyLCAwLjAwNDMxNiwgMC4wMDQzMjIsIDAuMDA0MzI1LCAwLjAwNDMyNSwgMC4wMDQzMjQsIDAuMDA0MzIxIiwgXAotICAgICAgICAgICIwLjAwNDI2LCAwLjAwNDMwOCwgMC4wMDQzMTcsIDAuMDA0MzIsIDAuMDA0MzI0LCAwLjAwNDMyLCAwLjAwNDMyIiwgXAotICAgICAgICAgICIwLjAwNDI1MywgMC4wMDQzMDMsIDAuMDA0MzEzLCAwLjAwNDMxOCwgMC4wMDQzMiwgMC4wMDQzMTksIDAuMDA0MzE3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwMTM2LCAwLjAwMDE0MywgMC4wMDAxNDMsIDAuMDAwMTQ0LCAwLjAwMDE0NCwgMC4wMDAxNDQsIDAuMDAwMTQ1IiwgXAotICAgICAgICAgICIwLjAwMDE0NCwgMC4wMDAxNzUsIDAuMDAwMTc4LCAwLjAwMDE4LCAwLjAwMDE4MSwgMC4wMDAxODEsIDAuMDAwMTgyIiwgXAotICAgICAgICAgICIwLjAwMDEzMSwgMC4wMDAxODMsIDAuMDAwMTg5LCAwLjAwMDE5NSwgMC4wMDAxOTYsIDAuMDAwMTk3LCAwLjAwMDE5OCIsIFwKLSAgICAgICAgICAiMC4wMDAxMTMsIDAuMDAwMTgyLCAwLjAwMDE5MSwgMC4wMDAxOTUsIDAuMDAwMTk4LCAwLjAwMDE5OSwgMC4wMDAyIiwgXAotICAgICAgICAgICIwLjAwMDEsIDAuMDAwMTc5LCAwLjAwMDE5LCAwLjAwMDE5NiwgMC4wMDAxOTksIDAuMDAwMjAzLCAwLjAwMDIwNCIsIFwKLSAgICAgICAgICAiMC4wMDAwOCwgMC4wMDAxNzMsIDAuMDAwMTg3LCAwLjAwMDE5NCwgMC4wMDAxOTgsIDAuMDAwMjAyLCAwLjAwMDIwNCIsIFwKLSAgICAgICAgICAiMC4wMDAwNjgsIDAuMDAwMTY3LCAwLjAwMDE4MywgMC4wMDAxOTIsIDAuMDAwMTk3LCAwLjAwMDIsIDAuMDAwMjAyIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IEFPSTIyMlgxICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChBT0kyMjJYMSkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjEyNzA0MjsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQTApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDg1ODE1OTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA4NTMxNDI7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwODU4MTU5OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDMwNiwgMC4wMDAzMDYsIDAuMDAwMzA2LCAwLjAwMDMwNiwgMC4wMDAzMDYsIDAuMDAwMzA2LCAwLjAwMDMwNiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDMxNiwgMC4wMDAzMDksIDAuMDAwMzA4LCAwLjAwMDMwOCwgMC4wMDAzMDgsIDAuMDAwMzA4LCAwLjAwMDMwNyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQTEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDg2MDk0NTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA4NTI4NTQ7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwODYwOTQ1OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDE0NSwgMC4wMDAxNDQsIDAuMDAwMTQ0LCAwLjAwMDE0NCwgMC4wMDAxNDQsIDAuMDAwMTQ0LCAwLjAwMDE0NCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDM0OCwgMC4wMDAzNDgsIDAuMDAwMzQ4LCAwLjAwMDM0OCwgMC4wMDAzNDgsIDAuMDAwMzQ4LCAwLjAwMDM0OCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQjApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDg4MDA5NjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA4NzYxNjE7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwODgwMDk2OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDMwNiwgMC4wMDAzMDYsIDAuMDAwMzA2LCAwLjAwMDMwNiwgMC4wMDAzMDYsIDAuMDAwMzA2LCAwLjAwMDMwNiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDMxNCwgMC4wMDAzMDksIDAuMDAwMzA4LCAwLjAwMDMwNywgMC4wMDAzMDcsIDAuMDAwMzA3LCAwLjAwMDMwNyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQjEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDkwMTE4NDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA4OTQxODY7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwOTAxMTg0OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDEyOSwgMC4wMDAxMjksIDAuMDAwMTI5LCAwLjAwMDEyOSwgMC4wMDAxMjksIDAuMDAwMTI5LCAwLjAwMDEyOSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDM0NywgMC4wMDAzNDgsIDAuMDAwMzQ4LCAwLjAwMDM0OCwgMC4wMDAzNDgsIDAuMDAwMzQ4LCAwLjAwMDM0OCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQzApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDg3MzE1NzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA4NzMxNTc7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwODcwNzA2OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDMwNiwgMC4wMDAzMDYsIDAuMDAwMzA2LCAwLjAwMDMwNiwgMC4wMDAzMDYsIDAuMDAwMzA2LCAwLjAwMDMwNiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDMxNywgMC4wMDAzMDksIDAuMDAwMzA4LCAwLjAwMDMwOCwgMC4wMDAzMDgsIDAuMDAwMzA3LCAwLjAwMDMwNyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQzEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDkwMTc1NjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA5MDEzNjg7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwOTAxNzU2OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDE1OCwgMC4wMDAxNTgsIDAuMDAwMTU4LCAwLjAwMDE1OCwgMC4wMDAxNTgsIDAuMDAwMTU4LCAwLjAwMDE1OCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDM0NywgMC4wMDAzNDgsIDAuMDAwMzQ3LCAwLjAwMDM0NywgMC4wMDAzNDgsIDAuMDAwMzQ4LCAwLjAwMDM0OCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjA0OTc4Nzk7Ci0gICAgZnVuY3Rpb24gOiAiKCEoKChDMCBDMSkrKEEwIEExKSkrKEIwIEIxKSkpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzQwODE3LCAwLjQ3NzM1NywgMS4yNDg4OCwgMS45MzIyOCwgMi44NDQ1NiwgNC42Njg5LCA1LjgwOTA0IiwgXAotICAgICAgICAgICIwLjM1MjU0NCwgMC40ODkxMjQsIDEuMjYxNSwgMS45NDQzNSwgMi44NTYxLCA0LjY4MDg1LCA1LjgyMDY5IiwgXAotICAgICAgICAgICIwLjM2Njc5MiwgMC41MDM0MTUsIDEuMjc1NjQsIDEuOTU4MjgsIDIuODcwOTgsIDQuNjk1MjIsIDUuODM1MjIiLCBcCi0gICAgICAgICAgIjAuMzgwMTQ1LCAwLjUxNjc4NSwgMS4yODkxNCwgMS45NzE0NywgMi44ODQzNywgNC43MDg0MSwgNS44NDg1MSIsIFwKLSAgICAgICAgICAiMC4zOTI3ODUsIDAuNTI5NDY3LCAxLjMwMTYxLCAxLjk4NDA1LCAyLjg5NzMxLCA0LjcyMTE5LCA1Ljg2MTI1IiwgXAotICAgICAgICAgICIwLjQxMjIyMywgMC41NDg5NCwgMS4zMjExLCAyLjAwMzk1LCAyLjkxNjYyLCA0Ljc0MDc5LCA1Ljg4MDc0IiwgXAotICAgICAgICAgICIwLjQyODUxNiwgMC41NjUyMDYsIDEuMzM4MDcsIDIuMDIwODksIDIuOTMyODcsIDQuNzU3MTUsIDUuODk3NTYiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuNTQ4ODkzLCAwLjgxMDM2NCwgMi4yOTk3MywgMy42MTY2NiwgNS4zNzQzMiwgOC44ODM3MiwgMTEuMDc1IiwgXAotICAgICAgICAgICIwLjU0ODg5NCwgMC44MTAyNDgsIDIuMywgMy42MTcxNiwgNS4zNzY2MiwgOC44ODQzMiwgMTEuMDc0NyIsIFwKLSAgICAgICAgICAiMC41NDg4MzYsIDAuODEwMjM4LCAyLjI5OTg2LCAzLjYxNzQ5LCA1LjM3NDMyLCA4Ljg4Mjk5LCAxMS4wNzUiLCBcCi0gICAgICAgICAgIjAuNTQ4OTc2LCAwLjgxMDk5MSwgMi4yOTk4NCwgMy42MTcxOCwgNS4zNzQ5MiwgOC44ODM3NCwgMTEuMDc1IiwgXAotICAgICAgICAgICIwLjU0ODk4MiwgMC44MTAyMzIsIDIuMzAwOTcsIDMuNjE3MTksIDUuMzc0MDksIDguODgzMjQsIDExLjA3NDkiLCBcCi0gICAgICAgICAgIjAuNTQ4OTE4LCAwLjgxMDQzNiwgMi4zMDA5NywgMy42MTcsIDUuMzc0MzcsIDguODgzMDcsIDExLjA3NDkiLCBcCi0gICAgICAgICAgIjAuNTQ4NDg2LCAwLjgxMDk2OCwgMi4zMDAwMiwgMy42MTcxMywgNS4zNzQ5NSwgOC44ODM0NSwgMTEuMDc1Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI1MDUyNywgMC4zNDk5OTYsIDAuOTA3NzE5LCAxLjM5NzIsIDIuMDUwMzEsIDMuMzUyOSwgNC4xNjY5IiwgXAotICAgICAgICAgICIwLjI2MTk0NywgMC4zNjE0ODEsIDAuOTE4OSwgMS40MDg3NCwgMi4wNjE0MiwgMy4zNjU3MSwgNC4xNzk2OSIsIFwKLSAgICAgICAgICAiMC4yNzU1MzgsIDAuMzc1MDgzLCAwLjkzMjc1LCAxLjQyMjc4LCAyLjA3NTYxLCAzLjM3ODkyLCA0LjE5MzA0IiwgXAotICAgICAgICAgICIwLjI4OTAyOSwgMC4zODg2NDIsIDAuOTQ2MzcsIDEuNDM1OTYsIDIuMDg4OTQsIDMuMzkyODcsIDQuMjA2NzciLCBcCi0gICAgICAgICAgIjAuMzAyNTQzLCAwLjQwMjA3NCwgMC45NTk5MzUsIDEuNDQ5NTQsIDIuMTAxNzQsIDMuNDA2NTQsIDQuMjIwNDUiLCBcCi0gICAgICAgICAgIjAuMzIzOTEsIDAuNDIzNDkyLCAwLjk4MTM1MSwgMS40NzExMSwgMi4xMjQyMiwgMy40Mjc2OSwgNC4yNDE3NCIsIFwKLSAgICAgICAgICAiMC4zNDI2NzYsIDAuNDQxNTg4LCAxLjAwMDQyLCAxLjQ5MDQyLCAyLjE0MzEyLCAzLjQ0NjU2LCA0LjI2MTEzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjQyOTc0OCwgMC42MTY0OTUsIDEuNjc1MzUsIDIuNjA4NTUsIDMuODUzMSwgNi4zNDAzNywgNy44OTQ0NiIsIFwKLSAgICAgICAgICAiMC40Mjk2ODUsIDAuNjE2NDI2LCAxLjY3NTI0LCAyLjYwODQxLCAzLjg1MzE5LCA2LjMzOTY5LCA3Ljg5NDAzIiwgXAotICAgICAgICAgICIwLjQyOTYyOSwgMC42MTY0MjgsIDEuNjc0NzIsIDIuNjA5LCAzLjg1MzQ1LCA2LjM0MDQ3LCA3Ljg5NDE5IiwgXAotICAgICAgICAgICIwLjQyOTYxNCwgMC42MTYzOTMsIDEuNjc1MjQsIDIuNjA4NDIsIDMuODUzMDEsIDYuMzM5MTgsIDcuODk0NTEiLCBcCi0gICAgICAgICAgIjAuNDI5NDk3LCAwLjYxNjQzNCwgMS42NzU0NCwgMi42MDg1NywgMy44NTI3OCwgNi4zNDAzMSwgNy44OTI4IiwgXAotICAgICAgICAgICIwLjQyOTcyMywgMC42MTYyODUsIDEuNjc1NTEsIDIuNjA5MTksIDMuODUzMDEsIDYuMzM5NCwgNy44OTQwNCIsIFwKLSAgICAgICAgICAiMC40MzEyMjEsIDAuNjE2NDA5LCAxLjY3NDQzLCAyLjYwODg4LCAzLjg1MzQyLCA2LjM0MDU3LCA3Ljg5NDc4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkExIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMzMzNzcsIDAuNDcwMzA4LCAxLjI0NDU1LCAxLjkzMDI5LCAyLjg0NTk0LCA0LjY3NzE1LCA1LjgyMTU5IiwgXAotICAgICAgICAgICIwLjM0NTQwMiwgMC40ODI0MTIsIDEuMjU3NTEsIDEuOTQyMjUsIDIuODU4MDUsIDQuNjg5MTIsIDUuODMzODYiLCBcCi0gICAgICAgICAgIjAuMzU5NjUsIDAuNDk2Njk2LCAxLjI3MTcsIDEuOTU2ODEsIDIuODcyOTEsIDQuNzAzOTMsIDUuODQ4MTEiLCBcCi0gICAgICAgICAgIjAuMzcyOTQ0LCAwLjUxMDAyOSwgMS4yODUxMywgMS45Njk5MywgMi44ODYxOCwgNC43MTcxNSwgNS44NjE1OCIsIFwKLSAgICAgICAgICAiMC4zODU1OSwgMC41MjI2NjEsIDEuMjk3NjYsIDEuOTgyNjEsIDIuODk5MDMsIDQuNzI5OTgsIDUuODc0MzEiLCBcCi0gICAgICAgICAgIjAuNDA0ODg4LCAwLjU0MjA1NiwgMS4zMTcwMiwgMi4wMDE4MiwgMi45MTg1NCwgNC43NDk0NSwgNS44OTM4IiwgXAotICAgICAgICAgICIwLjQyMTA3NCwgMC41NTgyMDIsIDEuMzMzNjcsIDIuMDE4ODQsIDIuOTM0NzUsIDQuNzY2MDUsIDUuOTEwNTYiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuNTQwOTM0LCAwLjgwMzc3MSwgMi4yOTc3NSwgMy42MjI2MiwgNS4zODM0OCwgOC45MDU4MiwgMTEuMTA0NyIsIFwKLSAgICAgICAgICAiMC41NDEwMDUsIDAuODAzNzkxLCAyLjI5ODE1LCAzLjYyMDM3LCA1LjM4MzQsIDguOTA1MzgsIDExLjEwMjkiLCBcCi0gICAgICAgICAgIjAuNTQwOTg0LCAwLjgwMzc2MiwgMi4yOTg0OCwgMy42MjA2MSwgNS4zODgxLCA4LjkwNDY2LCAxMS4xMDM2IiwgXAotICAgICAgICAgICIwLjU0MDg5NSwgMC44MDQzNTksIDIuMjk4ODcsIDMuNjIxOTgsIDUuMzg0NSwgOC45MDU1MywgMTEuMTA0NyIsIFwKLSAgICAgICAgICAiMC41NDEwMDEsIDAuODA0Mjg0LCAyLjI5ODc4LCAzLjYyMDE5LCA1LjM4NTY1LCA4LjkwNTQxLCAxMS4xMDQ2IiwgXAotICAgICAgICAgICIwLjU0MTEyMSwgMC44MDM3OSwgMi4yOTkxNiwgMy42MjEyNSwgNS4zODU2OSwgOC45MDU2MSwgMTEuMTA0NiIsIFwKLSAgICAgICAgICAiMC41NDA5NjIsIDAuODAzNjksIDIuMjk4OTcsIDMuNjIyMjEsIDUuMzgzNDQsIDguOTA1NzUsIDExLjEwNDciKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjQ1NzQsIDAuMzQ1MjY5LCAwLjkwMjk3LCAxLjM5MjUzLCAyLjA0NTY4LCAzLjM0ODc0LCA0LjE2MzI4IiwgXAotICAgICAgICAgICIwLjI1NTk2NSwgMC4zNTU1MDgsIDAuOTEyOTg0LCAxLjQwMjg2LCAyLjA1NTA4LCAzLjM1OTMsIDQuMTczNTkiLCBcCi0gICAgICAgICAgIjAuMjY4OTY5LCAwLjM2ODU2OSwgMC45MjYyOTEsIDEuNDE2MDUsIDIuMDY4OTIsIDMuMzcyNTksIDQuMTg2NTgiLCBcCi0gICAgICAgICAgIjAuMjgyMjYzLCAwLjM4MTg4MywgMC45Mzk2NTcsIDEuNDI5MTQsIDIuMDgxNTgsIDMuMzg1NDUsIDQuMjAwMTEiLCBcCi0gICAgICAgICAgIjAuMjk1Mzk5LCAwLjM5NDg3NCwgMC45NTI3MzksIDEuNDQyMjgsIDIuMDk0NzIsIDMuMzk4NjksIDQuMjEzMjYiLCBcCi0gICAgICAgICAgIjAuMzE2NTQyLCAwLjQxNjEzLCAwLjk3MzgwNywgMS40NjM5LCAyLjExNjgyLCAzLjQyMDE1LCA0LjIzNDI3IiwgXAotICAgICAgICAgICIwLjMzNTEzNSwgMC40MzQ2NzIsIDAuOTkyNDgxLCAxLjQ4MjY4LCAyLjEzNTE4LCAzLjQzODYyLCA0LjI1MzA4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjQyOTc5MSwgMC42MTY1MTcsIDEuNjc1MjUsIDIuNjA4MjEsIDMuODUzMDMsIDYuMzQwNTEsIDcuODkzMTQiLCBcCi0gICAgICAgICAgIjAuNDI5NzA1LCAwLjYxNjUxOCwgMS42NzQ0NCwgMi42MDc5MywgMy44NTE3MiwgNi4zMzgyLCA3Ljg5MjQiLCBcCi0gICAgICAgICAgIjAuNDI5NjExLCAwLjYxNjQ4MiwgMS42NzQ2MiwgMi42MDc4NiwgMy44NTE2MSwgNi4zMzkyMiwgNy44OTI2NyIsIFwKLSAgICAgICAgICAiMC40Mjk1MDksIDAuNjE2MzYxLCAxLjY3NDY0LCAyLjYwODkzLCAzLjg1MzM4LCA2LjMzOTMzLCA3Ljg5NDY0IiwgXAotICAgICAgICAgICIwLjQyOTI1MiwgMC42MTYzNDQsIDEuNjc0NjMsIDIuNjA4ODgsIDMuODUzMDYsIDYuMzM5NDIsIDcuODk0NjEiLCBcCi0gICAgICAgICAgIjAuNDMwMjg2LCAwLjYxNjE2MiwgMS42NzUxMywgMi42MDg0NSwgMy44NTMxOSwgNi4zNDA2MywgNy44OTQyOSIsIFwKLSAgICAgICAgICAiMC40MzMzNDIsIDAuNjE2NzU1LCAxLjY3NDg2LCAyLjYwODQyLCAzLjg1MzA3LCA2LjM0MDQsIDcuODkzMDQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjAiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMyMzg3MywgMC40NjA0MzIsIDEuMjMyNTksIDEuOTE0ODYsIDIuODI4NDksIDQuNjU5NCwgNS44MDM3MiIsIFwKLSAgICAgICAgICAiMC4zMzQ0NTcsIDAuNDcxMDg2LCAxLjI0Mjg3LCAxLjkyNTc4LCAyLjgzODY5LCA0LjY2OTk1LCA1LjgxNDQxIiwgXAotICAgICAgICAgICIwLjM0NzkwMywgMC40ODQ1NjMsIDEuMjU2NjksIDEuOTM5MjQsIDIuODUyMjEsIDQuNjgzMzgsIDUuODI3ODciLCBcCi0gICAgICAgICAgIjAuMzYwODEsIDAuNDk3NDE2LCAxLjI2OTY2LCAxLjk1MjU2LCAyLjg2NTA2LCA0LjY5NjI3LCA1Ljg0MDg3IiwgXAotICAgICAgICAgICIwLjM3MzMxNywgMC41MDk5NjYsIDEuMjgyMTMsIDEuOTY0ODEsIDIuODc3NjQsIDQuNzA4OTksIDUuODUzNCIsIFwKLSAgICAgICAgICAiMC4zOTI2MzcsIDAuNTI5MzYyLCAxLjMwMTQxLCAxLjk4NDU0LCAyLjg5NzU5LCA0LjcyODI4LCA1Ljg3MjY2IiwgXAotICAgICAgICAgICIwLjQwOTM2NSwgMC41NDYwNzMsIDEuMzE4MjcsIDIuMDAwOTEsIDIuOTE0LCA0Ljc0NTA1LCA1Ljg4OTQ1Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjU0ODk4OCwgMC44MTA5NTcsIDIuMzAwMTEsIDMuNjIwOTEsIDUuMzgzMzEsIDguOTA1NTYsIDExLjEwNDciLCBcCi0gICAgICAgICAgIjAuNTQ4ODg2LCAwLjgxMDk3LCAyLjI5OTM1LCAzLjYxOTg1LCA1LjM4MzQzLCA4LjkwNTg4LCAxMS4xMDQ4IiwgXAotICAgICAgICAgICIwLjU0ODg5MywgMC44MTA4NjgsIDIuMjk5MjUsIDMuNjE5ODYsIDUuMzgyOCwgOC45MDU4MSwgMTEuMTA0OCIsIFwKLSAgICAgICAgICAiMC41NDg4OTIsIDAuODEwMjM3LCAyLjI5OTczLCAzLjYxOTg5LCA1LjM4Mzc0LCA4LjkwNTgxLCAxMS4xMDQ4IiwgXAotICAgICAgICAgICIwLjU0ODk4OSwgMC44MTA5OSwgMi4yOTk3NiwgMy42MTk5OSwgNS4zODM0NiwgOC45MDU5NSwgMTEuMTA0OCIsIFwKLSAgICAgICAgICAiMC41NDg4OTEsIDAuODEwNDQ1LCAyLjMwMDk0LCAzLjYyMDMxLCA1LjM4MzAyLCA4LjkwNDc5LCAxMS4xMDQ2IiwgXAotICAgICAgICAgICIwLjU0ODQ5MSwgMC44MTAzMjksIDIuMzAwNzYsIDMuNjE5ODcsIDUuMzgzOTcsIDguOTA1NDUsIDExLjEwNDYiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjI3OTczLCAwLjMyNjQ3OSwgMC44ODE1OTQsIDEuMzcwODMsIDIuMDIzMDMsIDMuMzI2NTQsIDQuMTQxMjQiLCBcCi0gICAgICAgICAgIjAuMjM5ODUzLCAwLjMzODMwNCwgMC44OTM2MiwgMS4zODI4OSwgMi4wMzQ2NiwgMy4zMzg0OSwgNC4xNTMxOCIsIFwKLSAgICAgICAgICAiMC4yNTM1ODQsIDAuMzUyMTkxLCAwLjkwNzUwMywgMS4zOTY5MywgMi4wNDg3OCwgMy4zNTI1OCwgNC4xNjcwMiIsIFwKLSAgICAgICAgICAiMC4yNjcwNTYsIDAuMzY1NTcyLCAwLjkyMDk4MiwgMS40MTAyMiwgMi4wNjI4MSwgMy4zNjU5NywgNC4xODA3MiIsIFwKLSAgICAgICAgICAiMC4yODA1OTYsIDAuMzc5MjkxLCAwLjkzNDc0NiwgMS40MjQwOCwgMi4wNzYxNSwgMy4zNzk0OSwgNC4xOTQzNCIsIFwKLSAgICAgICAgICAiMC4zMDE5MjUsIDAuNDAwNzA4LCAwLjk1NjM4MywgMS40NDU2MiwgMi4wOTc2MiwgMy40MDEwOSwgNC4yMTU5NyIsIFwKLSAgICAgICAgICAiMC4zMjA1NSwgMC40MTk0NCwgMC45NzUyNDEsIDEuNDY0NjgsIDIuMTE2NjYsIDMuNDIwMzUsIDQuMjM1MDYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuNDA2NzA0LCAwLjU5MzMzMiwgMS42NTEyNSwgMi41ODQzLCAzLjgyODA3LCA2LjMxNDY0LCA3Ljg2NzAxIiwgXAotICAgICAgICAgICIwLjQwNjY3NCwgMC41OTMzODIsIDEuNjUxMzYsIDIuNTgzNzYsIDMuODI3NzMsIDYuMzEyOTMsIDcuODY3ODIiLCBcCi0gICAgICAgICAgIjAuNDA2Njc5LCAwLjU5MzM3NCwgMS42NTExNiwgMi41ODQyMiwgMy44Mjc0NCwgNi4zMTM0MiwgNy44Njg1NCIsIFwKLSAgICAgICAgICAiMC40MDY2NjksIDAuNTkzMzI5LCAxLjY1MTMyLCAyLjU4NDQyLCAzLjgyNzY2LCA2LjMxMzE1LCA3Ljg2ODg2IiwgXAotICAgICAgICAgICIwLjQwNjY2NywgMC41OTMzMDMsIDEuNjUxNDIsIDIuNTg0MjEsIDMuODI2NTQsIDYuMzEzNjEsIDcuODY4ODEiLCBcCi0gICAgICAgICAgIjAuNDA3NDA3LCAwLjU5MzM0MywgMS42NTEzOCwgMi41ODQyLCAzLjgyNzM2LCA2LjMxNDUsIDcuODY2ODUiLCBcCi0gICAgICAgICAgIjAuNDA5Mzc4LCAwLjU5MzY2NywgMS42NTExOCwgMi41ODQzLCAzLjgyNzc3LCA2LjMxMzUzLCA3Ljg2ODcyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIxIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMTY1MzQsIDAuNDUzODI0LCAxLjIzMDQ2LCAxLjkxNTI5LCAyLjgyODQ2LCA0LjY1OTMxLCA1LjgwMzU5IiwgXAotICAgICAgICAgICIwLjMyNzQwOSwgMC40NjQ3MjYsIDEuMjQxNDcsIDEuOTI2MDIsIDIuODM5MjIsIDQuNjcwMjEsIDUuODE0NjMiLCBcCi0gICAgICAgICAgIjAuMzQwODYsIDAuNDc4MjM1LCAxLjI1NDYyLCAxLjkzOTY0LCAyLjg1MjcsIDQuNjgzODEsIDUuODI4MjQiLCBcCi0gICAgICAgICAgIjAuMzUzNjY2LCAwLjQ5MTA1LCAxLjI2NzgsIDEuOTUyNzgsIDIuODY1NDksIDQuNjk2NjYsIDUuODQxMjgiLCBcCi0gICAgICAgICAgIjAuMzY1OTU3LCAwLjUwMzQ2OCwgMS4yODAzMSwgMS45NjUzNSwgMi44Nzg1LCA0LjcwOTM4LCA1Ljg1MzY2IiwgXAotICAgICAgICAgICIwLjM4NTI5MiwgMC41MjI2NzcsIDEuMjk5NTYsIDEuOTg0NjQsIDIuODk3NjIsIDQuNzI4ODYsIDUuODcyOTgiLCBcCi0gICAgICAgICAgIjAuNDAxODkxLCAwLjUzOTM5NSwgMS4zMTYxOSwgMi4wMDEyNSwgMi45MTQwNiwgNC43NDU1OSwgNS44ODk5NSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC41NDIxODQsIDAuODA1ODQ5LCAyLjI5OTIzLCAzLjYyMjUsIDUuMzg1NDksIDguOTA0MTgsIDExLjEwMzYiLCBcCi0gICAgICAgICAgIjAuNTQyMjA5LCAwLjgwNjQzNCwgMi4yOTg2LCAzLjYyMTk4LCA1LjM4MzI3LCA4LjkwNDU3LCAxMS4xMDM3IiwgXAotICAgICAgICAgICIwLjU0MjA4MiwgMC44MDY0NDYsIDIuMjk4NDUsIDMuNjIyMDcsIDUuMzgyNDUsIDguOTA0NjksIDExLjEwMzciLCBcCi0gICAgICAgICAgIjAuNTQyMDc5LCAwLjgwNjQsIDIuMjk4OTIsIDMuNjIyNTMsIDUuMzgyNTgsIDguOTA0NjgsIDExLjEwMzgiLCBcCi0gICAgICAgICAgIjAuNTQyNzYzLCAwLjgwNjM1MiwgMi4yOTkyNCwgMy42MjI1OCwgNS4zODU2LCA4LjkwNDE3LCAxMS4xMDM2IiwgXAotICAgICAgICAgICIwLjU0MjIzNiwgMC44MDY0NSwgMi4yOTg0MSwgMy42MTk3OCwgNS4zODUyOCwgOC45MDUwNywgMTEuMTAzNSIsIFwKLSAgICAgICAgICAiMC41NDIyNTQsIDAuODA1ODI0LCAyLjI5OTg5LCAzLjYyMjE2LCA1LjM4MzExLCA4LjkwNDk5LCAxMS4xMDI0Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIyMjg1NywgMC4zMjEzMzIsIDAuODc2NDksIDEuMzY1NjQsIDIuMDE3OTEsIDMuMzIxMjQsIDQuMTM2MTIiLCBcCi0gICAgICAgICAgIjAuMjMzNTM5LCAwLjMzMTg4NiwgMC44ODczMzQsIDEuMzc2NTEsIDIuMDI4MzMsIDMuMzMyLCA0LjE0Njc5IiwgXAotICAgICAgICAgICIwLjI0NjYsIDAuMzQ1MjEyLCAwLjkwMTAxOCwgMS4zODk2OCwgMi4wNDIxNiwgMy4zNDUyNywgNC4xNjAxNiIsIFwKLSAgICAgICAgICAiMC4yNTk4ODgsIDAuMzU4NTE1LCAwLjkxMzkzNCwgMS40MDMyNCwgMi4wNTU0OCwgMy4zNTg3NiwgNC4xNzM1MiIsIFwKLSAgICAgICAgICAiMC4yNzI4MzYsIDAuMzcxNjEyLCAwLjkyNjk0NSwgMS40MTY2LCAyLjA2ODM2LCAzLjM3MTgxLCA0LjE4NjY1IiwgXAotICAgICAgICAgICIwLjI5NDA3NCwgMC4zOTI2OTEsIDAuOTQ4MTAxLCAxLjQzNzUyLCAyLjA4OTc5LCAzLjM5Mjk1LCA0LjIwNzkxIiwgXAotICAgICAgICAgICIwLjMxMjU3OSwgMC40MTEyMiwgMC45NjY3NjMsIDEuNDU2MDgsIDIuMTA4MSwgMy40MTE3NCwgNC4yMjY0NSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC40MDY3MjQsIDAuNTkzMzM0LCAxLjY1MTIyLCAyLjU4NDQxLCAzLjgyNzUyLCA2LjMxNDQ5LCA3Ljg2NjgzIiwgXAotICAgICAgICAgICIwLjQwNjY3OCwgMC41OTMzMDIsIDEuNjUxMjgsIDIuNTgzNjksIDMuODI3NzYsIDYuMzE0MjksIDcuODY4NDUiLCBcCi0gICAgICAgICAgIjAuNDA2NzAyLCAwLjU5MzI5MywgMS42NTE1OCwgMi41ODQyNiwgMy44Mjg0OSwgNi4zMTM0NywgNy44NjY3OSIsIFwKLSAgICAgICAgICAiMC40MDY3MTMsIDAuNTkzMzUxLCAxLjY1MTEsIDIuNTg0MDYsIDMuODI3MzMsIDYuMzEzNzQsIDcuODY3ODEiLCBcCi0gICAgICAgICAgIjAuNDA2NjQxLCAwLjU5MzM0MSwgMS42NTEwMywgMi41ODM0MiwgMy44Mjc3NywgNi4zMTMxNCwgNy44Njc0MiIsIFwKLSAgICAgICAgICAiMC40MDg1NjksIDAuNTkzNDAyLCAxLjY1MDY1LCAyLjU4NDM0LCAzLjgyNjM0LCA2LjMxNDM0LCA3Ljg2Njc2IiwgXAotICAgICAgICAgICIwLjQxMjQ3MywgMC41OTQzOTEsIDEuNjUwNjUsIDIuNTg0MywgMy44MjgyMywgNi4zMTM3MSwgNy44NjgzNyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjg1OTc1LCAwLjQyMjUzNSwgMS4xOTQ2NSwgMS44NzYzOSwgMi43ODk2MywgNC42MjA0OCwgNS43NjQ3NiIsIFwKLSAgICAgICAgICAiMC4yOTU3OTIsIDAuNDMyMzc4LCAxLjIwNDQ3LCAxLjg4NjAxLCAyLjc5ODg0LCA0LjYzLCA1Ljc3NDczIiwgXAotICAgICAgICAgICIwLjMwODE2MSwgMC40NDQ4MDksIDEuMjE2ODIsIDEuODk5MDQsIDIuODExNjksIDQuNjQyNTEsIDUuNzg3MjMiLCBcCi0gICAgICAgICAgIjAuMzIwMjk3LCAwLjQ1NjkzMiwgMS4yMjkwNywgMS45MTA4MSwgMi44MjM0OSwgNC42NTUwOSwgNS43OTk0NCIsIFwKLSAgICAgICAgICAiMC4zMzE0NzcsIDAuNDY5MTYzLCAxLjI0MTg1LCAxLjkyMzA2LCAyLjgzNTkyLCA0LjY2NzAyLCA1LjgxMTc2IiwgXAotICAgICAgICAgICIwLjM1MjA5LCAwLjQ4ODc3NCwgMS4yNjEyNiwgMS45NDI2NSwgMi44NTU2NiwgNC42ODY4NCwgNS44MzE0MyIsIFwKLSAgICAgICAgICAiMC4zNjkyNzQsIDAuNTA1OTExLCAxLjI3ODU0LCAxLjk2MDEyLCAyLjg3Mjc2LCA0LjcwNDA0LCA1Ljg0ODUzIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjU0ODkyNywgMC44MTEwMTEsIDIuMjk4MjcsIDMuNjE5OTMsIDUuMzgzNjQsIDguOTAzNzksIDExLjEwMzciLCBcCi0gICAgICAgICAgIjAuNTQ4Nzc1LCAwLjgxMDM3OCwgMi4yOTgzOSwgMy42MTkwMiwgNS4zODU4OSwgOC45MDQ0OCwgMTEuMTAxOSIsIFwKLSAgICAgICAgICAiMC41NDgxOTUsIDAuODEwMzM5LCAyLjI5OTIyLCAzLjYxOTAzLCA1LjM4MzcyLCA4LjkwNDI0LCAxMS4xMDI0IiwgXAotICAgICAgICAgICIwLjU0NzgyNCwgMC44MTA4ODYsIDIuMjk4MzgsIDMuNjIwNjYsIDUuMzg1MzEsIDguOTA1MiwgMTEuMTAyNSIsIFwKLSAgICAgICAgICAiMC41NDY3ODcsIDAuODExMTY2LCAyLjI5OTIzLCAzLjYyMDY2LCA1LjM4MjczLCA4LjkwNDMzLCAxMS4xMDI0IiwgXAotICAgICAgICAgICIwLjU0NjUyNCwgMC44MTA2NjYsIDIuMjk4OTEsIDMuNjE4MTUsIDUuMzgxNzMsIDguOTA0NzIsIDExLjEwMiIsIFwKLSAgICAgICAgICAiMC41NDg1MjksIDAuODA4NjY1LCAyLjI5OTAxLCAzLjYyMDEzLCA1LjM4NTQyLCA4LjkwNDc5LCAxMS4xMDM3Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIwMDI0NiwgMC4yOTgyMjQsIDAuODUyNDg0LCAxLjM0MTQsIDEuOTkzNDUsIDMuMjk3MTgsIDQuMTEyMjgiLCBcCi0gICAgICAgICAgIjAuMjEyMjk3LCAwLjMxMDIxMywgMC44NjQ3MDEsIDEuMzUzNjcsIDIuMDA1NzQsIDMuMzA5NTYsIDQuMTI0NDkiLCBcCi0gICAgICAgICAgIjAuMjI2MTQzLCAwLjMyNDE0LCAwLjg3ODU4OSwgMS4zNjc1NSwgMi4wMTk0NCwgMy4zMjMxOCwgNC4xMzg0NiIsIFwKLSAgICAgICAgICAiMC4yMzk1NzQsIDAuMzM3Njc1LCAwLjg5MjE5LCAxLjM4MTE5LCAyLjAzMzQyLCAzLjMzNzM5LCA0LjE1MjAyIiwgXAotICAgICAgICAgICIwLjI1MjA1MywgMC4zNTEyOTcsIDAuOTA2MzUyLCAxLjM5NDgsIDIuMDQ2ODEsIDMuMzUwNjIsIDQuMTY1ODUiLCBcCi0gICAgICAgICAgIjAuMjc0NDI5LCAwLjM3MTI4NSwgMC45Mjc1ODcsIDEuNDE2NTYsIDIuMDY4NjYsIDMuMzcyNDQsIDQuMTg3NTciLCBcCi0gICAgICAgICAgIjAuMjkzMzI0LCAwLjM5MTQ1NCwgMC45NDY0MTIsIDEuNDM1NTgsIDIuMDg3NzYsIDMuMzkxNjIsIDQuMjA2NTciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzgzMTk3LCAwLjU2OTQwOCwgMS42MjU1MywgMi41NTgxMSwgMy44MDE0NiwgNi4yODk4OCwgNy44NDA4NyIsIFwKLSAgICAgICAgICAiMC4zODMyMzksIDAuNTY5Mjk3LCAxLjYyNTA0LCAyLjU1ODEzLCAzLjgwMTUxLCA2LjI4OTUyLCA3Ljg0MDkxIiwgXAotICAgICAgICAgICIwLjM4MzI0NiwgMC41NjkzMTgsIDEuNjI1MDIsIDIuNTU3NzMsIDMuODAxNzYsIDYuMjg3NTYsIDcuODQyMzYiLCBcCi0gICAgICAgICAgIjAuMzgzMiwgMC41NjkzMDUsIDEuNjI0OTcsIDIuNTU4MDQsIDMuODAxNjUsIDYuMjkwMjMsIDcuODQwMTYiLCBcCi0gICAgICAgICAgIjAuMzgzMjUyLCAwLjU2OTM3NSwgMS42MjU2OSwgMi41NTgwMywgMy44MDE0OSwgNi4yODkxNCwgNy44NDAyOSIsIFwKLSAgICAgICAgICAiMC4zODQ3NjUsIDAuNTY5NDA2LCAxLjYyNTQ5LCAyLjU1NzU2LCAzLjgwMDg5LCA2LjI4OTMxLCA3Ljg0MDIyIiwgXAotICAgICAgICAgICIwLjM4NzcwMSwgMC41NzAxMywgMS42MjU2MiwgMi41NTY5MywgMy44MDE3OSwgNi4yODg2LCA3LjgzOTc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMxIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yNzk0MDQsIDAuNDE2NjY3LCAxLjE5MzE1LCAxLjg3Nzc3LCAyLjc5MDY0LCA0LjYyMjE2LCA1Ljc2NjU3IiwgXAotICAgICAgICAgICIwLjI4OTUxOCwgMC40MjY4NzUsIDEuMjAzNTQsIDEuODg4OTksIDIuODAxMDcsIDQuNjMyMjIsIDUuNzc2OTEiLCBcCi0gICAgICAgICAgIjAuMzAxNzg2LCAwLjQzOTIxNiwgMS4yMTU4NSwgMS45MDA1NSwgMi44MTM5NSwgNC42NDQ5OSwgNS43ODkxOSIsIFwKLSAgICAgICAgICAiMC4zMTM5NzIsIDAuNDUxMzk4LCAxLjIyODE1LCAxLjkxMzA2LCAyLjgyNTkzLCA0LjY1Njk1LCA1LjgwMTY5IiwgXAotICAgICAgICAgICIwLjMyNTQ1MSwgMC40NjM1ODgsIDEuMjQwMzUsIDEuOTI1MjgsIDIuODM4MzUsIDQuNjY5NTEsIDUuODE0IiwgXAotICAgICAgICAgICIwLjM0NTYxOCwgMC40ODMyMTEsIDEuMjYwMzEsIDEuOTQ0NzgsIDIuODU4MDcsIDQuNjg4OTMsIDUuODMzNjciLCBcCi0gICAgICAgICAgIjAuMzYyNywgMC41MDAxOTUsIDEuMjc3NTcsIDEuOTYyNDQsIDIuODc0OTQsIDQuNzA2MjgsIDUuODUwNzUiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuNTQzNDk0LCAwLjgwNzIzMiwgMi4zMDA4MywgMy42MjEyNiwgNS4zODY2MSwgOC45MDYwNCwgMTEuMTA0OCIsIFwKLSAgICAgICAgICAiMC41NDI4OTgsIDAuODA2NDQyLCAyLjI5OTc4LCAzLjYyMzQsIDUuMzg0MzEsIDguOTA1MzksIDExLjEwNDgiLCBcCi0gICAgICAgICAgIjAuNTQzMjEyLCAwLjgwNjYxOSwgMi4yOTkxOCwgMy42MjIzMiwgNS4zODU2NCwgOC45MDQ3MywgMTEuMTA0NyIsIFwKLSAgICAgICAgICAiMC41NDI0NTQsIDAuODA2NTQ5LCAyLjI5OTE5LCAzLjYyMTE5LCA1LjM4MjkzLCA4LjkwNTEzLCAxMS4xMDMxIiwgXAotICAgICAgICAgICIwLjU0MTgyNywgMC44MDc0OTcsIDIuMzAwNzEsIDMuNjIxNDksIDUuMzgzODksIDguOTA1ODgsIDExLjEwMzQiLCBcCi0gICAgICAgICAgIjAuNTQxMTM0LCAwLjgwNjEzNywgMi4yOTk2OSwgMy42MjExOCwgNS4zODQ0MywgOC45MDUyNiwgMTEuMTAzNSIsIFwKLSAgICAgICAgICAiMC41NDM4OTgsIDAuODA1MDc3LCAyLjI5OTgzLCAzLjYyMDM2LCA1LjM4NDQzLCA4LjkwNTYyLCAxMS4xMDQ2Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE5NTc0NywgMC4yOTM3MzUsIDAuODQ3ODcyLCAxLjMzNjk3LCAxLjk4ODksIDMuMjkyOTEsIDQuMTA3NzIiLCBcCi0gICAgICAgICAgIjAuMjA2NjYzLCAwLjMwNDQ2NywgMC44NTkwMiwgMS4zNDc5OCwgMi4wMDAwNSwgMy4zMDM5NCwgNC4xMTg4MiIsIFwKLSAgICAgICAgICAiMC4yMTk3NzMsIDAuMzE3OTUxLCAwLjg3MjI5NywgMS4zNjEzOCwgMi4wMTM0NSwgMy4zMTcyNSwgNC4xMzIxOSIsIFwKLSAgICAgICAgICAiMC4yMzMwNjUsIDAuMzMxMDc4LCAwLjg4NjEyLCAxLjM3NDY5LCAyLjAyNjYsIDMuMzMwMzcsIDQuMTQ1NTkiLCBcCi0gICAgICAgICAgIjAuMjQ2MzUzLCAwLjM0NDM5NSwgMC44OTg5NjcsIDEuMzg3OTYsIDIuMDQwMDYsIDMuMzQzODEsIDQuMTU4OTQiLCBcCi0gICAgICAgICAgIjAuMjY3MzQzLCAwLjM2NTUwNSwgMC45MjAyNywgMS40MDkyMiwgMi4wNjE0MSwgMy4zNjU1LCA0LjE3OTk0IiwgXAotICAgICAgICAgICIwLjI4NTg3NCwgMC4zODQwODQsIDAuOTM4Nzc2LCAxLjQyNzk1LCAyLjA3OTgyLCAzLjM4Mzk5LCA0LjE5ODg5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjM4MzE4NywgMC41NjkzNDIsIDEuNjI1NDQsIDIuNTU4MzMsIDMuODAxNTIsIDYuMjg5NjQsIDcuODQwNTEiLCBcCi0gICAgICAgICAgIjAuMzgzMjM4LCAwLjU2OTI5NiwgMS42MjU0OSwgMi41NTgzOCwgMy44MDA4MSwgNi4yODkzLCA3Ljg0MjQ1IiwgXAotICAgICAgICAgICIwLjM4MzIxNCwgMC41NjkzNzksIDEuNjI0OTgsIDIuNTU3MzUsIDMuODAxNzQsIDYuMjg2MzEsIDcuODQwNTMiLCBcCi0gICAgICAgICAgIjAuMzgzMTg4LCAwLjU2OTQwNCwgMS42MjU4LCAyLjU1ODYyLCAzLjgwMDcxLCA2LjI4OTk1LCA3Ljg0MDQ1IiwgXAotICAgICAgICAgICIwLjM4MzQ4OSwgMC41Njk0MzcsIDEuNjI1NDQsIDIuNTU3NjQsIDMuODAxNjYsIDYuMjg5MzIsIDcuODQwNTkiLCBcCi0gICAgICAgICAgIjAuMzg2NTYzLCAwLjU2OTQ4NiwgMS42MjUwNiwgMi41NTcyLCAzLjgwMTA3LCA2LjI4OTE0LCA3Ljg0MDg3IiwgXAotICAgICAgICAgICIwLjM5MTM4OSwgMC41NzEzMywgMS42MjUxNCwgMi41NTczNiwgMy44MDE4NywgNi4yODk4NCwgNy44NDA4NyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQxNDEsIDAuMDA0MTQxLCAwLjAwNDEzOSwgMC4wMDQxMzMsIDAuMDA0MTM0LCAwLjAwNDEyOCwgMC4wMDQxMjIiLCBcCi0gICAgICAgICAgIjAuMDA0MTM0LCAwLjAwNDEzNCwgMC4wMDQxMzQsIDAuMDA0MTMyLCAwLjAwNDEyOSwgMC4wMDQxMjIsIDAuMDA0MTE5IiwgXAotICAgICAgICAgICIwLjAwNDEyOSwgMC4wMDQxMzEsIDAuMDA0MTMsIDAuMDA0MTI4LCAwLjAwNDEyNiwgMC4wMDQxMTgsIDAuMDA0MTE1IiwgXAotICAgICAgICAgICIwLjAwNDEyOSwgMC4wMDQxMzEsIDAuMDA0MTMyLCAwLjAwNDEyOSwgMC4wMDQxMjcsIDAuMDA0MTIxLCAwLjAwNDExNiIsIFwKLSAgICAgICAgICAiMC4wMDQxMjgsIDAuMDA0MTMsIDAuMDA0MTMsIDAuMDA0MTMsIDAuMDA0MTI4LCAwLjAwNDEyMSwgMC4wMDQxMTYiLCBcCi0gICAgICAgICAgIjAuMDA0MTI1LCAwLjAwNDEyOCwgMC4wMDQxMywgMC4wMDQxMjksIDAuMDA0MTI2LCAwLjAwNDEyLCAwLjAwNDExNSIsIFwKLSAgICAgICAgICAiMC4wMDQxMjMsIDAuMDA0MTI2LCAwLjAwNDEyOSwgMC4wMDQxMjksIDAuMDA0MTI2LCAwLjAwNDEyLCAwLjAwNDExNSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTYzOCwgMC4wMDE2MzgsIDAuMDAxNjM2LCAwLjAwMTYzNSwgMC4wMDE2MzQsIDAuMDAxNjI5LCAwLjAwMTYyNSIsIFwKLSAgICAgICAgICAiMC4wMDE2MjQsIDAuMDAxNjI0LCAwLjAwMTYyMywgMC4wMDE2MjIsIDAuMDAxNjIsIDAuMDAxNjE2LCAwLjAwMTYxMiIsIFwKLSAgICAgICAgICAiMC4wMDE2MTcsIDAuMDAxNjE3LCAwLjAwMTYxNywgMC4wMDE2MTcsIDAuMDAxNjE0LCAwLjAwMTYxMSwgMC4wMDE2MDgiLCBcCi0gICAgICAgICAgIjAuMDAxNjEyLCAwLjAwMTYxMywgMC4wMDE2MTUsIDAuMDAxNjE0LCAwLjAwMTYxMiwgMC4wMDE2MDgsIDAuMDAxNjA1IiwgXAotICAgICAgICAgICIwLjAwMTYwOSwgMC4wMDE2MSwgMC4wMDE2MTMsIDAuMDAxNjEyLCAwLjAwMTYxMSwgMC4wMDE2MDcsIDAuMDAxNjA0IiwgXAotICAgICAgICAgICIwLjAwMTYwNCwgMC4wMDE2MDcsIDAuMDAxNjExLCAwLjAwMTYxMSwgMC4wMDE2MSwgMC4wMDE2MDYsIDAuMDAxNjAzIiwgXAotICAgICAgICAgICIwLjAwMTYwMSwgMC4wMDE2MDEsIDAuMDAxNjA5LCAwLjAwMTYwOSwgMC4wMDE2MDgsIDAuMDAxNjA1LCAwLjAwMTYwMiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkExIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDM4MTMsIDAuMDAzODEzLCAwLjAwMzgxMiwgMC4wMDM4MDcsIDAuMDAzODA5LCAwLjAwMzgwNCwgMC4wMDM4MDEiLCBcCi0gICAgICAgICAgIjAuMDAzODE1LCAwLjAwMzgxNiwgMC4wMDM4MTgsIDAuMDAzODE2LCAwLjAwMzgxNCwgMC4wMDM4MSwgMC4wMDM4MDUiLCBcCi0gICAgICAgICAgIjAuMDAzODExLCAwLjAwMzgxNCwgMC4wMDM4MTYsIDAuMDAzODE2LCAwLjAwMzgxNSwgMC4wMDM4MTIsIDAuMDAzODA5IiwgXAotICAgICAgICAgICIwLjAwMzgwOCwgMC4wMDM4MTIsIDAuMDAzODE2LCAwLjAwMzgxNSwgMC4wMDM4MTUsIDAuMDAzODEyLCAwLjAwMzgwNyIsIFwKLSAgICAgICAgICAiMC4wMDM4MDUsIDAuMDAzODA5LCAwLjAwMzgxNiwgMC4wMDM4MTYsIDAuMDAzODE1LCAwLjAwMzgxMSwgMC4wMDM4MDgiLCBcCi0gICAgICAgICAgIjAuMDAzOCwgMC4wMDM4MDUsIDAuMDAzODE0LCAwLjAwMzgxNCwgMC4wMDM4MTQsIDAuMDAzODExLCAwLjAwMzgwOCIsIFwKLSAgICAgICAgICAiMC4wMDM3OTUsIDAuMDAzODAyLCAwLjAwMzgxMiwgMC4wMDM4MTMsIDAuMDAzODEzLCAwLjAwMzgxLCAwLjAwMzgwNiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTYzOSwgMC4wMDE2MzgsIDAuMDAxNjM3LCAwLjAwMTYzNSwgMC4wMDE2MzMsIDAuMDAxNjI3LCAwLjAwMTYyNyIsIFwKLSAgICAgICAgICAiMC4wMDE2MjQsIDAuMDAxNjI0LCAwLjAwMTYyMywgMC4wMDE2MjEsIDAuMDAxNjIxLCAwLjAwMTYxMiwgMC4wMDE2MTMiLCBcCi0gICAgICAgICAgIjAuMDAxNjE1LCAwLjAwMTYxNywgMC4wMDE2MTcsIDAuMDAxNjE3LCAwLjAwMTYxNiwgMC4wMDE2MSwgMC4wMDE2MDYiLCBcCi0gICAgICAgICAgIjAuMDAxNjEsIDAuMDAxNjEyLCAwLjAwMTYxNSwgMC4wMDE2MTMsIDAuMDAxNjEyLCAwLjAwMTYwNywgMC4wMDE2MDUiLCBcCi0gICAgICAgICAgIjAuMDAxNjA2LCAwLjAwMTYwOSwgMC4wMDE2MTMsIDAuMDAxNjExLCAwLjAwMTYxMSwgMC4wMDE2MDcsIDAuMDAxNjA0IiwgXAotICAgICAgICAgICIwLjAwMTYwMSwgMC4wMDE2MDUsIDAuMDAxNjA5LCAwLjAwMTYxLCAwLjAwMTYwOSwgMC4wMDE2MDUsIDAuMDAxNjAyIiwgXAotICAgICAgICAgICIwLjAwMTU5NywgMC4wMDE2MDEsIDAuMDAxNjA4LCAwLjAwMTYwOCwgMC4wMDE2MDgsIDAuMDAxNjA0LCAwLjAwMTYwMiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDM0NTIsIDAuMDAzNDUyLCAwLjAwMzQ1LCAwLjAwMzQ0OCwgMC4wMDM0NDYsIDAuMDAzNDM5LCAwLjAwMzQzNCIsIFwKLSAgICAgICAgICAiMC4wMDM0NDUsIDAuMDAzNDQ1LCAwLjAwMzQ0NCwgMC4wMDM0NDEsIDAuMDAzNDM5LCAwLjAwMzQzNCwgMC4wMDM0MjciLCBcCi0gICAgICAgICAgIjAuMDAzNDQyLCAwLjAwMzQ0MywgMC4wMDM0NDIsIDAuMDAzNDQxLCAwLjAwMzQzOSwgMC4wMDM0MzQsIDAuMDAzNDI2IiwgXAotICAgICAgICAgICIwLjAwMzQ0LCAwLjAwMzQ0MiwgMC4wMDM0NDEsIDAuMDAzNDQxLCAwLjAwMzQzNywgMC4wMDM0MywgMC4wMDM0MjgiLCBcCi0gICAgICAgICAgIjAuMDAzNDM4LCAwLjAwMzQ0LCAwLjAwMzQ0MSwgMC4wMDM0NCwgMC4wMDM0MzgsIDAuMDAzNDMxLCAwLjAwMzQyNiIsIFwKLSAgICAgICAgICAiMC4wMDM0MzYsIDAuMDAzNDM4LCAwLjAwMzQ0LCAwLjAwMzQzOSwgMC4wMDM0MzgsIDAuMDAzNDMxLCAwLjAwMzQyNSIsIFwKLSAgICAgICAgICAiMC4wMDM0MzMsIDAuMDAzNDM2LCAwLjAwMzQ0LCAwLjAwMzQzOCwgMC4wMDM0MzcsIDAuMDAzNDMxLCAwLjAwMzQyNyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDk5OCwgMC4wMDA5OTgsIDAuMDAwOTk3LCAwLjAwMDk5NiwgMC4wMDA5OTcsIDAuMDAwOTkzLCAwLjAwMDk5MiIsIFwKLSAgICAgICAgICAiMC4wMDEwMDEsIDAuMDAxMDAyLCAwLjAwMTAwMiwgMC4wMDEwMDIsIDAuMDAxMDAxLCAwLjAwMDk5OSwgMC4wMDA5OTgiLCBcCi0gICAgICAgICAgIjAuMDAwOTk4LCAwLjAwMSwgMC4wMDEwMDMsIDAuMDAxMDAzLCAwLjAwMTAwMywgMC4wMDEwMDEsIDAuMDAwOTk5IiwgXAotICAgICAgICAgICIwLjAwMDk5MywgMC4wMDA5OTcsIDAuMDAxMDAzLCAwLjAwMTAwMywgMC4wMDEwMDMsIDAuMDAxMDAyLCAwLjAwMSIsIFwKLSAgICAgICAgICAiMC4wMDA5ODgsIDAuMDAwOTk0LCAwLjAwMTAwMiwgMC4wMDEwMDMsIDAuMDAxMDAzLCAwLjAwMTAwMiwgMC4wMDEiLCBcCi0gICAgICAgICAgIjAuMDAwOTgyLCAwLjAwMDk4OSwgMC4wMDA5OTksIDAuMDAxMDAxLCAwLjAwMTAwMiwgMC4wMDEwMDEsIDAuMDAxIiwgXAotICAgICAgICAgICIwLjAwMDk3NiwgMC4wMDA5ODQsIDAuMDAwOTk4LCAwLjAwMSwgMC4wMDEwMDEsIDAuMDAxMDAxLCAwLjAwMSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIxIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDMxMDcsIDAuMDAzMTA3LCAwLjAwMzEwNywgMC4wMDMxMDYsIDAuMDAzMTAzLCAwLjAwMzA5OSwgMC4wMDMwOTYiLCBcCi0gICAgICAgICAgIjAuMDAzMTA5LCAwLjAwMzExLCAwLjAwMzExMSwgMC4wMDMxMSwgMC4wMDMxMDgsIDAuMDAzMTA1LCAwLjAwMzEwMSIsIFwKLSAgICAgICAgICAiMC4wMDMxMDUsIDAuMDAzMTA4LCAwLjAwMzExLCAwLjAwMzEwOSwgMC4wMDMxMDksIDAuMDAzMTA3LCAwLjAwMzEwMiIsIFwKLSAgICAgICAgICAiMC4wMDMxMDIsIDAuMDAzMTA2LCAwLjAwMzExLCAwLjAwMzExMSwgMC4wMDMxMDgsIDAuMDAzMTA1LCAwLjAwMzEwMyIsIFwKLSAgICAgICAgICAiMC4wMDMwOTksIDAuMDAzMTAzLCAwLjAwMzEwOSwgMC4wMDMxMDksIDAuMDAzMTA5LCAwLjAwMzEwNSwgMC4wMDMxMDEiLCBcCi0gICAgICAgICAgIjAuMDAzMDkzLCAwLjAwMzA5OSwgMC4wMDMxMDcsIDAuMDAzMTA5LCAwLjAwMzEwNywgMC4wMDMxMDUsIDAuMDAzMTAyIiwgXAotICAgICAgICAgICIwLjAwMzA4OSwgMC4wMDMwOTUsIDAuMDAzMTA2LCAwLjAwMzEwNywgMC4wMDMxMDcsIDAuMDAzMTA0LCAwLjAwMzEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDA5OTcsIDAuMDAwOTk3LCAwLjAwMDk5NiwgMC4wMDA5OTYsIDAuMDAwOTk1LCAwLjAwMDk5MiwgMC4wMDA5OTEiLCBcCi0gICAgICAgICAgIjAuMDAwOTk5LCAwLjAwMTAwMSwgMC4wMDEwMDIsIDAuMDAxMDAxLCAwLjAwMSwgMC4wMDA5OTksIDAuMDAwOTk3IiwgXAotICAgICAgICAgICIwLjAwMDk5NiwgMC4wMDA5OTksIDAuMDAxMDAzLCAwLjAwMTAwMywgMC4wMDEwMDMsIDAuMDAxMDAxLCAwLjAwMSIsIFwKLSAgICAgICAgICAiMC4wMDA5OSwgMC4wMDA5OTUsIDAuMDAxMDAyLCAwLjAwMTAwMiwgMC4wMDEwMDIsIDAuMDAxMDAxLCAwLjAwMSIsIFwKLSAgICAgICAgICAiMC4wMDA5ODYsIDAuMDAwOTkyLCAwLjAwMSwgMC4wMDEwMDIsIDAuMDAxMDAzLCAwLjAwMTAwMiwgMC4wMDEiLCBcCi0gICAgICAgICAgIjAuMDAwOTc5LCAwLjAwMDk4NywgMC4wMDA5OTgsIDAuMDAxMDAxLCAwLjAwMTAwMiwgMC4wMDEwMDEsIDAuMDAxIiwgXAotICAgICAgICAgICIwLjAwMDk3NCwgMC4wMDA5ODIsIDAuMDAwOTk3LCAwLjAwMDk5OSwgMC4wMDEwMDEsIDAuMDAxLCAwLjAwMDk5OSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI3MjMsIDAuMDAyNzIzLCAwLjAwMjcyMSwgMC4wMDI3MTksIDAuMDAyNzE3LCAwLjAwMjcxLCAwLjAwMjcwNSIsIFwKLSAgICAgICAgICAiMC4wMDI3MTQsIDAuMDAyNzE1LCAwLjAwMjcxNiwgMC4wMDI3MTIsIDAuMDAyNzExLCAwLjAwMjcwNCwgMC4wMDI3IiwgXAotICAgICAgICAgICIwLjAwMjcxLCAwLjAwMjcxMiwgMC4wMDI3MTIsIDAuMDAyNzExLCAwLjAwMjcwNywgMC4wMDI3MDMsIDAuMDAyNjk4IiwgXAotICAgICAgICAgICIwLjAwMjcwNiwgMC4wMDI3MDksIDAuMDAyNzEyLCAwLjAwMjcxLCAwLjAwMjcwOSwgMC4wMDI3MDIsIDAuMDAyNjk4IiwgXAotICAgICAgICAgICIwLjAwMjY5OCwgMC4wMDI3MDYsIDAuMDAyNzEsIDAuMDAyNzA5LCAwLjAwMjcwOCwgMC4wMDI3MDEsIDAuMDAyNjk3IiwgXAotICAgICAgICAgICIwLjAwMjY5OSwgMC4wMDI3MDQsIDAuMDAyNzA4LCAwLjAwMjcwOSwgMC4wMDI3MDYsIDAuMDAyNzAxLCAwLjAwMjY5NiIsIFwKLSAgICAgICAgICAiMC4wMDI2OTcsIDAuMDAyNzAxLCAwLjAwMjcwNywgMC4wMDI3MDcsIDAuMDAyNzA1LCAwLjAwMjcwMSwgMC4wMDI2OTYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDAyOTQsIDAuMDAwMjk1LCAwLjAwMDI5NiwgMC4wMDAyOTYsIDAuMDAwMjk2LCAwLjAwMDI5NiwgMC4wMDAyOTciLCBcCi0gICAgICAgICAgIjAuMDAwMzA0LCAwLjAwMDMwNywgMC4wMDAzMTIsIDAuMDAwMzEzLCAwLjAwMDMxMywgMC4wMDAzMTMsIDAuMDAwMzEzIiwgXAotICAgICAgICAgICIwLjAwMDMwNCwgMC4wMDAzMSwgMC4wMDAzMTcsIDAuMDAwMzE5LCAwLjAwMDMyLCAwLjAwMDMyMSwgMC4wMDAzMjEiLCBcCi0gICAgICAgICAgIjAuMDAwMywgMC4wMDAzMDgsIDAuMDAwMzE5LCAwLjAwMDMyMSwgMC4wMDAzMjIsIDAuMDAwMzI0LCAwLjAwMDMyNCIsIFwKLSAgICAgICAgICAiMC4wMDAyOTQsIDAuMDAwMzA1LCAwLjAwMDMxOSwgMC4wMDAzMjIsIDAuMDAwMzIzLCAwLjAwMDMyNSwgMC4wMDAzMjUiLCBcCi0gICAgICAgICAgIjAuMDAwMjg4LCAwLjAwMDI5OCwgMC4wMDAzMTcsIDAuMDAwMzIxLCAwLjAwMDMyNCwgMC4wMDAzMjYsIDAuMDAwMzI2IiwgXAotICAgICAgICAgICIwLjAwMDI4MiwgMC4wMDAyOTUsIDAuMDAwMzE2LCAwLjAwMDMyMSwgMC4wMDAzMjMsIDAuMDAwMzI2LCAwLjAwMDMyNiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMxIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI0MSwgMC4wMDI0MSwgMC4wMDI0MSwgMC4wMDI0MDgsIDAuMDAyNDA3LCAwLjAwMjQwMywgMC4wMDIzOTgiLCBcCi0gICAgICAgICAgIjAuMDAyNDEsIDAuMDAyNDEyLCAwLjAwMjQxNCwgMC4wMDI0MTQsIDAuMDAyNDExLCAwLjAwMjQwOCwgMC4wMDI0MDQiLCBcCi0gICAgICAgICAgIjAuMDAyNDA1LCAwLjAwMjQwOCwgMC4wMDI0MTMsIDAuMDAyNDEyLCAwLjAwMjQxMywgMC4wMDI0MDksIDAuMDAyNDAzIiwgXAotICAgICAgICAgICIwLjAwMjM5OSwgMC4wMDI0MDQsIDAuMDAyNDExLCAwLjAwMjQxMiwgMC4wMDI0MTEsIDAuMDAyNDA3LCAwLjAwMjQwMyIsIFwKLSAgICAgICAgICAiMC4wMDIzOTEsIDAuMDAyNDAxLCAwLjAwMjQxLCAwLjAwMjQxLCAwLjAwMjQxLCAwLjAwMjQwNywgMC4wMDI0MDMiLCBcCi0gICAgICAgICAgIjAuMDAyMzg4LCAwLjAwMjM5NSwgMC4wMDI0MDcsIDAuMDAyNDA5LCAwLjAwMjQwOSwgMC4wMDI0MDYsIDAuMDAyNDAzIiwgXAotICAgICAgICAgICIwLjAwMjM4NCwgMC4wMDIzOTEsIDAuMDAyNDA1LCAwLjAwMjQwNywgMC4wMDI0MDgsIDAuMDAyNDA1LCAwLjAwMjQwMiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDI5NCwgMC4wMDAyOTUsIDAuMDAwMjk2LCAwLjAwMDI5NiwgMC4wMDAyOTYsIDAuMDAwMjk2LCAwLjAwMDI5NiIsIFwKLSAgICAgICAgICAiMC4wMDAzMDMsIDAuMDAwMzA3LCAwLjAwMDMxMiwgMC4wMDAzMTMsIDAuMDAwMzE0LCAwLjAwMDMxNCwgMC4wMDAzMTQiLCBcCi0gICAgICAgICAgIjAuMDAwMzAzLCAwLjAwMDMwOSwgMC4wMDAzMTgsIDAuMDAwMzIsIDAuMDAwMzIxLCAwLjAwMDMyMSwgMC4wMDAzMjIiLCBcCi0gICAgICAgICAgIjAuMDAwMjk4LCAwLjAwMDMwNywgMC4wMDAzMTksIDAuMDAwMzIyLCAwLjAwMDMyMywgMC4wMDAzMjQsIDAuMDAwMzI1IiwgXAotICAgICAgICAgICIwLjAwMDI5MywgMC4wMDAzMDMsIDAuMDAwMzE5LCAwLjAwMDMyMiwgMC4wMDAzMjQsIDAuMDAwMzI2LCAwLjAwMDMyNiIsIFwKLSAgICAgICAgICAiMC4wMDAyODUsIDAuMDAwMjk4LCAwLjAwMDMxNywgMC4wMDAzMjIsIDAuMDAwMzI0LCAwLjAwMDMyNiwgMC4wMDAzMjciLCBcCi0gICAgICAgICAgIjAuMDAwMjgsIDAuMDAwMjkzLCAwLjAwMDMxNiwgMC4wMDAzMjEsIDAuMDAwMzI0LCAwLjAwMDMyNiwgMC4wMDAzMjciKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogQU9JMjIyWDQgKgotICogLS0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKEFPSTIyMlg0KSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuNTA3NzM5OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAzMjQ4MDQ7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAzMjI2MzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDMyNDgwNDsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDEyMjUsIDAuMDAxMjI0LCAwLjAwMTIyMywgMC4wMDEyMjMsIDAuMDAxMjIzLCAwLjAwMTIyMiwgMC4wMDEyMjIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDEyNjgsIDAuMDAxMjM3LCAwLjAwMTIzMywgMC4wMDEyMzIsIDAuMDAxMjMxLCAwLjAwMTIzMSwgMC4wMDEyMyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQTEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMzA4OTA0OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMzA1NTQ2OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMzA4OTA0OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDYzMywgMC4wMDA2MzEsIDAuMDAwNjMxLCAwLjAwMDYzMSwgMC4wMDA2MzEsIDAuMDAwNjMxLCAwLjAwMDYzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxMzksIDAuMDAxMzkxLCAwLjAwMTM5MSwgMC4wMDEzOTIsIDAuMDAxMzkyLCAwLjAwMTM5MiwgMC4wMDEzOTIiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDMxMzExOTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDMxMTYxMTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDMxMzExOTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDEyMjUsIDAuMDAxMjI0LCAwLjAwMTIyNCwgMC4wMDEyMjQsIDAuMDAxMjI0LCAwLjAwMTIyNCwgMC4wMDEyMjQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDEyNTksIDAuMDAxMjM0LCAwLjAwMTIzLCAwLjAwMTIzLCAwLjAwMTIyOSwgMC4wMDEyMjksIDAuMDAxMjI4Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCMSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAyOTUxNTY7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAyOTIzOTU7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAyOTUxNTY7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNTEyLCAwLjAwMDUxMywgMC4wMDA1MTIsIDAuMDAwNTEyLCAwLjAwMDUxMiwgMC4wMDA1MTMsIDAuMDAwNTEyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxMzksIDAuMDAxMzksIDAuMDAxMzksIDAuMDAxMzkxLCAwLjAwMTM5MSwgMC4wMDEzOTEsIDAuMDAxMzkxIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihDMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAzMjI5NTM7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAzMjI5NTM7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAzMjIwMTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDEyMjUsIDAuMDAxMjI1LCAwLjAwMTIyNCwgMC4wMDEyMjQsIDAuMDAxMjI0LCAwLjAwMTIyNCwgMC4wMDEyMjQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDEyNywgMC4wMDEyMzcsIDAuMDAxMjMyLCAwLjAwMTIzMSwgMC4wMDEyMywgMC4wMDEyMywgMC4wMDEyMjkiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEMxKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDMwODQxOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMzA4MjIxOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMzA4NDE7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNjU0LCAwLjAwMDY1MywgMC4wMDA2NTIsIDAuMDAwNjUzLCAwLjAwMDY1MywgMC4wMDA2NTMsIDAuMDAwNjUzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxMzksIDAuMDAxMzksIDAuMDAxMzksIDAuMDAxMzksIDAuMDAxMzksIDAuMDAxMzkyLCAwLjAwMTM5MSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjE5NDUyMTsKLSAgICBmdW5jdGlvbiA6ICIoISgoKEMwIEMxKSsoQTAgQTEpKSsoQjAgQjEpKSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE2ODgzMiwgMC41NzMwNzksIDAuOTc1NDg5LCAxLjI2Mjc3LCAxLjcyMjg4LCAyLjEyNDE5LCAyLjY5ODIxIiwgXAotICAgICAgICAgICIwLjE4MDQ0NSwgMC41ODQ3MzQsIDAuOTg3MTE0LCAxLjI3NDYzLCAxLjczNDEsIDIuMTM2MDEsIDIuNzA5OTQiLCBcCi0gICAgICAgICAgIjAuMTk0Njg0LCAwLjU5OTAzOSwgMS4wMDExLCAxLjI4OTE5LCAxLjc0ODU0LCAyLjE1MDkzLCAyLjcyNDQzIiwgXAotICAgICAgICAgICIwLjIwODExNSwgMC42MTI1OTgsIDEuMDE0ODksIDEuMzAyNDgsIDEuNzYxOTUsIDIuMTYzNTksIDIuNzM4MDEiLCBcCi0gICAgICAgICAgIjAuMjIwNzA5LCAwLjYyNTI2MiwgMS4wMjc1NSwgMS4zMTQ5NCwgMS43NzQ5LCAyLjE3NjQ2LCAyLjc1MDU3IiwgXAotICAgICAgICAgICIwLjI0MDEwMywgMC42NDQ3MywgMS4wNDcwNywgMS4zMzQyNCwgMS43OTM5NCwgMi4xOTY1LCAyLjc2OTgyIiwgXAotICAgICAgICAgICIwLjI1NjY4OSwgMC42NjEzNjEsIDEuMDYzODIsIDEuMzUxNSwgMS44MTA2MiwgMi4yMTI4OSwgMi43ODY5NSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIyMTMwOCwgMC45OTY2MzcsIDEuNzcwOCwgMi4zMjE5NiwgMy4yMDk3NywgMy45ODYwNSwgNS4wOTY2MyIsIFwKLSAgICAgICAgICAiMC4yMjEyNDcsIDAuOTk1OTY1LCAxLjc3MDcyLCAyLjMyMjI5LCAzLjIxMDA5LCAzLjk4NTg1LCA1LjA5NjY1IiwgXAotICAgICAgICAgICIwLjIyMTMyMiwgMC45OTYwMTIsIDEuNzcwNDUsIDIuMzIyNTUsIDMuMjA5MzksIDMuOTg2MiwgNS4wOTU5IiwgXAotICAgICAgICAgICIwLjIyMTMzMSwgMC45OTU4NzQsIDEuNzcwNTgsIDIuMzIyMDEsIDMuMjA5NDEsIDMuOTg2NDUsIDUuMDk2NzMiLCBcCi0gICAgICAgICAgIjAuMjIxMzUxLCAwLjk5NTg3MSwgMS43Njk2NCwgMi4zMjE4LCAzLjIwOTczLCAzLjk4NjA4LCA1LjA5NjA5IiwgXAotICAgICAgICAgICIwLjIyMTQ4MywgMC45OTY2OTIsIDEuNzY5NjQsIDIuMzIzMjQsIDMuMjEwODgsIDMuOTg2MTksIDUuMDk1ODEiLCBcCi0gICAgICAgICAgIjAuMjIyNTQ3LCAwLjk5NTg4OSwgMS43Njk2LCAyLjMyMjk2LCAzLjIxMDkzLCAzLjk4NjEyLCA1LjA5NjAzIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTIyODUxLCAwLjQxNzI1NiwgMC43MDYxMDYsIDAuOTExODEsIDEuMjQwNDMsIDEuNTI3MjMsIDEuOTM3OTQiLCBcCi0gICAgICAgICAgIjAuMTM0MjM1LCAwLjQyODY1OSwgMC43MTczODYsIDAuOTIyODk5LCAxLjI1MTgxLCAxLjUzODU5LCAxLjk0OTMiLCBcCi0gICAgICAgICAgIjAuMTQ3NzI0LCAwLjQ0MjI0MSwgMC43MzA5NzYsIDAuOTM2Nzc2LCAxLjI2NTIsIDEuNTUyMTgsIDEuOTYyNTUiLCBcCi0gICAgICAgICAgIjAuMTYxMTI2LCAwLjQ1NTc5NSwgMC43NDQ2MjcsIDAuOTUwMDc3LCAxLjI3ODU1LCAxLjU2NjI3LCAxLjk3NTg1IiwgXAotICAgICAgICAgICIwLjE3NDQwMywgMC40NjkxOSwgMC43NTgxNjUsIDAuOTYzNzU3LCAxLjI5MjU3LCAxLjU3OTM3LCAxLjk5MDIiLCBcCi0gICAgICAgICAgIjAuMTk1ODMxLCAwLjQ5MDc0MSwgMC43Nzk2ODgsIDAuOTg1MjQxLCAxLjMxMzksIDEuNjAxNTIsIDIuMDExNTkiLCBcCi0gICAgICAgICAgIjAuMjE0ODM4LCAwLjUwOTUxOCwgMC43OTg1NywgMS4wMDQyNCwgMS4zMzI5NCwgMS42MjAwMSwgMi4wMjk5OSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE5NjQ2OSwgMC43NDQ4MTgsIDEuMjkzNzksIDEuNjg1NjksIDIuMzEyMzMsIDIuODYwMTksIDMuNjQ0NzciLCBcCi0gICAgICAgICAgIjAuMTk2MjQsIDAuNzQ0ODY3LCAxLjI5MzU5LCAxLjY4NTY3LCAyLjMxMjYxLCAyLjg2MDM5LCAzLjY0NDY5IiwgXAotICAgICAgICAgICIwLjE5NTg3LCAwLjc0NDcxNiwgMS4yOTM2NCwgMS42ODU3LCAyLjMxMTk4LCAyLjg2MDM0LCAzLjY0NDc2IiwgXAotICAgICAgICAgICIwLjE5NTgxMSwgMC43NDQ4MjgsIDEuMjkzNTksIDEuNjg1ODEsIDIuMzExNzIsIDIuODYwNDgsIDMuNjQ0NzciLCBcCi0gICAgICAgICAgIjAuMTk3MDIsIDAuNzQ0NzExLCAxLjI5MzU0LCAxLjY4NTksIDIuMzEyODQsIDIuODYwMzUsIDMuNjQ1MDYiLCBcCi0gICAgICAgICAgIjAuMjAwNzk5LCAwLjc0NDgwNCwgMS4yOTM0MSwgMS42ODUwNSwgMi4zMTI0NCwgMi44NjE0MywgMy42NDQ1MSIsIFwKLSAgICAgICAgICAiMC4yMDU2NjksIDAuNzQ0NzQ1LCAxLjI5MzQxLCAxLjY4NTgzLCAyLjMxMTY4LCAyLjg2MTA3LCAzLjY0NDc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkExIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE2MTQwMywgMC41NjY1MzYsIDAuOTcwMzIzLCAxLjI1ODY5LCAxLjcxOTIzLCAyLjEyMzMyLCAyLjY5OTY3IiwgXAotICAgICAgICAgICIwLjE3MzIsIDAuNTc4NTg3LCAwLjk4MjM3OCwgMS4yNzA4NCwgMS43MzIyNiwgMi4xMzU0MywgMi43MTE1OCIsIFwKLSAgICAgICAgICAiMC4xODczNDcsIDAuNTkyOTM3LCAwLjk5NzAwNCwgMS4yODUyNSwgMS43NDY5MSwgMi4xNDk4OCwgMi43MjYxNCIsIFwKLSAgICAgICAgICAiMC4yMDA1NCwgMC42MDYzNCwgMS4wMTA0MiwgMS4yOTg1NywgMS43NTk4MiwgMi4xNjM2NSwgMi43Mzk3NyIsIFwKLSAgICAgICAgICAiMC4yMTMxMzYsIDAuNjE5MDQzLCAxLjAyMjgsIDEuMzExMSwgMS43NzI4MywgMi4xNzYxNCwgMi43NTIzMyIsIFwKLSAgICAgICAgICAiMC4yMzIzNjksIDAuNjM4NDI5LCAxLjA0MjI5LCAxLjMzMTA3LCAxLjc5MTc4LCAyLjE5NjAxLCAyLjc3MjQ5IiwgXAotICAgICAgICAgICIwLjI0ODU0NCwgMC42NTUwNDEsIDEuMDU4OTcsIDEuMzQ3NjYsIDEuODA4NTYsIDIuMjEyNTYsIDIuNzg4MzgiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMTM0MDQsIDAuOTkwMjc3LCAxLjc2NzYxLCAyLjMyMDk5LCAzLjIxMTY1LCA0LjAwMDg5LCA1LjExNjk1IiwgXAotICAgICAgICAgICIwLjIxMzQxOCwgMC45OTAyNzQsIDEuNzY3NTcsIDIuMzIxMDQsIDMuMjExNjMsIDQuMDAwODUsIDUuMTA4OTYiLCBcCi0gICAgICAgICAgIjAuMjEzNDE2LCAwLjk5MDA1LCAxLjc2NjcyLCAyLjMyMDY1LCAzLjIxNjg4LCA0LjAwMDcxLCA1LjEwOTYiLCBcCi0gICAgICAgICAgIjAuMjEzNDI0LCAwLjk5MDkxNCwgMS43NjY3MywgMi4zMjIwMiwgMy4yMTUwNiwgNC4wMDE2MiwgNS4xMDUyIiwgXAotICAgICAgICAgICIwLjIxMzQ3MSwgMC45OTAyODEsIDEuNzY2NDQsIDIuMzIxNzgsIDMuMjE2MTIsIDMuOTkwNjUsIDUuMTA2MzYiLCBcCi0gICAgICAgICAgIjAuMjEzNzU4LCAwLjk5MDI4MywgMS43Njc0NywgMi4zMjE0LCAzLjIxMjU4LCAzLjk5MTI3LCA1LjExODAzIiwgXAotICAgICAgICAgICIwLjIxNDg2NiwgMC45OTAyMDcsIDEuNzY2MjcsIDIuMzIxMzQsIDMuMjEyNzksIDQuMDAxODIsIDUuMTAzODciKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTgyNTUsIDAuNDEyNzIxLCAwLjcwMTU5NCwgMC45MDczMzcsIDEuMjM1NDcsIDEuNTIzMTYsIDEuOTMyNzQiLCBcCi0gICAgICAgICAgIjAuMTI4NDY1LCAwLjQyMjkxLCAwLjcxMTY5LCAwLjkxNzM0NCwgMS4yNDU3NiwgMS41MzMyMiwgMS45NDMwOCIsIFwKLSAgICAgICAgICAiMC4xNDE0NjYsIDAuNDM1OTU3LCAwLjcyNDc1MSwgMC45MzA1NjEsIDEuMjU5MDksIDEuNTQ1OTUsIDEuOTU2MDQiLCBcCi0gICAgICAgICAgIjAuMTU1MTcsIDAuNDQ5NzYzLCAwLjczODY4NiwgMC45NDQxMjYsIDEuMjcyNTksIDEuNTYwMzEsIDEuOTY5ODkiLCBcCi0gICAgICAgICAgIjAuMTY3NzA4LCAwLjQ2MjQsIDAuNzUxMTg3LCAwLjk1Njk5MSwgMS4yODUyMiwgMS41NzI5MywgMS45ODMzOSIsIFwKLSAgICAgICAgICAiMC4xODkwMzcsIDAuNDgzNTgsIDAuNzcyNDU3LCAwLjk3ODEwMiwgMS4zMDY0NywgMS41OTQwNywgMi4wMDQ2MSIsIFwKLSAgICAgICAgICAiMC4yMDg3ODUsIDAuNTAxOTc0LCAwLjc5MDk5NywgMC45OTY2MiwgMS4zMjUxNywgMS42MTIxNywgMi4wMjI4MiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE5NjY2OCwgMC43NDUwMDMsIDEuMjkzNjksIDEuNjg1NTYsIDIuMzEyMzEsIDIuODYxMjYsIDMuNjQ1MDEiLCBcCi0gICAgICAgICAgIjAuMTk2MTk3LCAwLjc0NDcxOCwgMS4yOTM1MywgMS42ODUzNSwgMi4zMTI0MSwgMi44NjAxMywgMy42NDQ5IiwgXAotICAgICAgICAgICIwLjE5NTM2MywgMC43NDQ3OTUsIDEuMjkzNTEsIDEuNjg1NjcsIDIuMzEyNTMsIDIuODYwNDQsIDMuNjQ0ODEiLCBcCi0gICAgICAgICAgIjAuMTk1OTM3LCAwLjc0NDc3NCwgMS4yOTM0MywgMS42ODUzMSwgMi4zMTE3MiwgMi44NjAzMywgMy42NDQ3NyIsIFwKLSAgICAgICAgICAiMC4xOTg1NjEsIDAuNzQ0Njk2LCAxLjI5MzMxLCAxLjY4NTI3LCAyLjMxMjQ2LCAyLjg2MDUyLCAzLjY0NDczIiwgXAotICAgICAgICAgICIwLjIwNDg0LCAwLjc0NDY0MiwgMS4yOTM4MywgMS42ODU1OCwgMi4zMTI2LCAyLjg2MDQyLCAzLjY0NDc2IiwgXAotICAgICAgICAgICIwLjIxMjI3MywgMC43NDQ1OTMsIDEuMjkzNDIsIDEuNjg1MjgsIDIuMzExODIsIDIuODYwNDMsIDMuNjQ0NzgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjAiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTUxMTg3LCAwLjU1NTQyNywgMC45NTc4MDMsIDEuMjQ1MiwgMS43MDQ5MSwgMi4xMDY3MiwgMi42ODA2OSIsIFwKLSAgICAgICAgICAiMC4xNjE3MDEsIDAuNTY2MDA0LCAwLjk2ODI2NSwgMS4yNTU4NSwgMS43MTUzMSwgMi4xMTY5NCwgMi42OTE2NSIsIFwKLSAgICAgICAgICAiMC4xNzQ4OCwgMC41NzkzMTQsIDAuOTgxNzMsIDEuMjY4NzYsIDEuNzI5MDMsIDIuMTMwNTcsIDIuNzA0ODQiLCBcCi0gICAgICAgICAgIjAuMTg3NzIzLCAwLjU5MjE1OCwgMC45OTQ3MDYsIDEuMjgxOTcsIDEuNzQxNDcsIDIuMTQzOTEsIDIuNzE3OTYiLCBcCi0gICAgICAgICAgIjAuMjAwMDM5LCAwLjYwNDYwNSwgMS4wMDczLCAxLjI5NDM2LCAxLjc1MzksIDIuMTU1ODMsIDIuNzMwNjUiLCBcCi0gICAgICAgICAgIjAuMjE5MjQxLCAwLjYyMzg2OCwgMS4wMjY0NiwgMS4zMTM5NiwgMS43NzMyMSwgMi4xNzUzNiwgMi43NDk2MyIsIFwKLSAgICAgICAgICAiMC4yMzYzMTEsIDAuNjQwOTU1LCAxLjA0MzU1LCAxLjMzMDcyLCAxLjc5MDU4LCAyLjE5MjY0LCAyLjc2NjgiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMjEyMiwgMC45OTU4NzgsIDEuNzcwNzgsIDIuMzIyMDQsIDMuMjExNzMsIDMuOTkwNDYsIDUuMTA0NDciLCBcCi0gICAgICAgICAgIjAuMjIxMzEyLCAwLjk5NTg3MywgMS43NzA1OCwgMi4zMjIsIDMuMjExMTgsIDMuOTkxMDcsIDUuMTA0NjQiLCBcCi0gICAgICAgICAgIjAuMjIxMjk4LCAwLjk5NTg3NSwgMS43NzA3NywgMi4zMjIwMSwgMy4yMTE0MSwgMy45OTA0MSwgNS4xMDQ1MSIsIFwKLSAgICAgICAgICAiMC4yMjEzMjgsIDAuOTk2MDEzLCAxLjc3MDYxLCAyLjMyMTk2LCAzLjIxMTU0LCAzLjk5MDY0LCA1LjEwNDU4IiwgXAotICAgICAgICAgICIwLjIyMTI3NSwgMC45OTU4NzYsIDEuNzY5NiwgMi4zMjM0NSwgMy4yMTExNCwgMy45OTAzMywgNS4xMDMzNyIsIFwKLSAgICAgICAgICAiMC4yMjI4MjYsIDAuOTk1ODgyLCAxLjc3MDE0LCAyLjMyMjQ2LCAzLjIxMTY2LCAzLjk5MDYyLCA1LjEwMzQzIiwgXAotICAgICAgICAgICIwLjIyNTA4NywgMC45OTY2MzYsIDEuNzcwNzksIDIuMzIzMjMsIDMuMjExNjcsIDMuOTkwNjgsIDUuMTA3NzciKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDI4OTIsIDAuMzkyODM5LCAwLjY4MDI0LCAwLjg4NTQ4OSwgMS4yMTM0NSwgMS41MDA2NCwgMS45MTExNCIsIFwKLSAgICAgICAgICAiMC4xMTQ3MjgsIDAuNDA0NzY0LCAwLjY5MjU1NSwgMC44OTc0MTMsIDEuMjI1NDEsIDEuNTEyNTYsIDEuOTIyMjEiLCBcCi0gICAgICAgICAgIjAuMTI4MjY3LCAwLjQxODQ1MSwgMC43MDYwMzcsIDAuOTExMjc5LCAxLjIzOTUzLCAxLjUyNjQ4LCAxLjkzNjMzIiwgXAotICAgICAgICAgICIwLjE0MTYzLCAwLjQzMjA3NSwgMC43MTk2MywgMC45MjQ3NTMsIDEuMjUyODksIDEuNTQwMjUsIDEuOTUwMDgiLCBcCi0gICAgICAgICAgIjAuMTU0OTg0LCAwLjQ0NTQ1OSwgMC43MzMxNjIsIDAuOTM4NzM5LCAxLjI2NjUzLCAxLjU1MzU3LCAxLjk2NDI1IiwgXAotICAgICAgICAgICIwLjE3NjM3NCwgMC40NjY5NDksIDAuNzU0Njc2LCAwLjk2MDAwNywgMS4yODgwOCwgMS41NzQ5OCwgMS45ODUyOCIsIFwKLSAgICAgICAgICAiMC4xOTUxODIsIDAuNDg1OTYzLCAwLjc3NDAyMSwgMC45NzkwMzEsIDEuMzA3MTcsIDEuNTk0MjcsIDIuMDA0MTciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNzIzMDIsIDAuNzIwNTk5LCAxLjI2ODk5LCAxLjY2MTEzLCAyLjI4NjkzLCAyLjgzNTcxLCAzLjYxODY2IiwgXAotICAgICAgICAgICIwLjE3MjI4MiwgMC43MjA0ODksIDEuMjY5NCwgMS42NjA0NywgMi4yODc3OSwgMi44MzYwNywgMy42MTgwNCIsIFwKLSAgICAgICAgICAiMC4xNzIyMjUsIDAuNzIwNTExLCAxLjI2OTQzLCAxLjY2MDMzLCAyLjI4Nzc0LCAyLjgzNTM3LCAzLjYxODE5IiwgXAotICAgICAgICAgICIwLjE3MjY4OCwgMC43MjA1NjUsIDEuMjY5MTIsIDEuNjYwNzEsIDIuMjg3MzYsIDIuODM2MjIsIDMuNjE5MSIsIFwKLSAgICAgICAgICAiMC4xNzQzOTksIDAuNzIwNDY3LCAxLjI2ODcyLCAxLjY2MDkyLCAyLjI4NzQ5LCAyLjgzNTUyLCAzLjYxODQ0IiwgXAotICAgICAgICAgICIwLjE3OTE0LCAwLjcyMDQ2NiwgMS4yNjkwOCwgMS42NjA4NywgMi4yODcyLCAyLjgzNTcyLCAzLjYxODY0IiwgXAotICAgICAgICAgICIwLjE4NDg4NSwgMC43MjA1ODgsIDEuMjY4NzIsIDEuNjYwNzYsIDIuMjg3MzEsIDIuODM1OCwgMy42MTg5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIxIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE0MjY4LCAwLjU0NzM0NywgMC45NTA3NDgsIDEuMjM5MzQsIDEuNzAwMjEsIDIuMTAzNzMsIDIuNjc5MyIsIFwKLSAgICAgICAgICAiMC4xNTMzNjUsIDAuNTU4MzI2LCAwLjk2MTg1OSwgMS4yNTAyLCAxLjcxMDk3LCAyLjExNDc3LCAyLjY5MDIiLCBcCi0gICAgICAgICAgIjAuMTY2NDY4LCAwLjU3MTY5NywgMC45NzUyMTgsIDEuMjYzNDgsIDEuNzI0ODIsIDIuMTI3NDQsIDIuNzAzNDEiLCBcCi0gICAgICAgICAgIjAuMTc5Mjg2LCAwLjU4NDcwNywgMC45ODg0NjQsIDEuMjc2NDMsIDEuNzM3MywgMi4xNDAzOCwgMi43MTY4MSIsIFwKLSAgICAgICAgICAiMC4xOTEzNzQsIDAuNTk2OTE1LCAxLjAwMDc3LCAxLjI4ODY2LCAxLjc0OTU5LCAyLjE1MjczLCAyLjcyOTI4IiwgXAotICAgICAgICAgICIwLjIxMDQxOSwgMC42MTYwODksIDEuMDE5NzksIDEuMzA4MjEsIDEuNzY4ODQsIDIuMTcyMjEsIDIuNzQ4MjEiLCBcCi0gICAgICAgICAgIjAuMjI2ODcxLCAwLjYzMzA3OSwgMS4wMzY5NywgMS4zMjQ4OSwgMS43ODYzMiwgMi4xODkwNywgMi43NjU3Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjEyNDI4LCAwLjk4ODg0NywgMS43NjUwOCwgMi4zMTk4OSwgMy4yMTQ5LCA0LjAwMTM0LCA1LjEwNTUzIiwgXAotICAgICAgICAgICIwLjIxMjQyNiwgMC45ODkwNDcsIDEuNzY0ODksIDIuMzIwMTIsIDMuMjE0ODksIDMuOTg4NzUsIDUuMTE3MjMiLCBcCi0gICAgICAgICAgIjAuMjEyNDIzLCAwLjk4OTcwNSwgMS43NjYyMywgMi4zMjA3NCwgMy4yMTcxLCA0LjAwMDg2LCA1LjEwOTQ1IiwgXAotICAgICAgICAgICIwLjIxMjQ0MiwgMC45ODk3MywgMS43NjUzOSwgMi4zMjAwNywgMy4yMTQ3NiwgMy45ODg3OCwgNS4xMTc0NyIsIFwKLSAgICAgICAgICAiMC4yMTI1ODMsIDAuOTg5MDc3LCAxLjc2NTQzLCAyLjMyMDc3LCAzLjIxNDgzLCA0LjAwMDYsIDUuMTAzMTUiLCBcCi0gICAgICAgICAgIjAuMjE0MTgzLCAwLjk4OTEwMywgMS43NjUzOSwgMi4zMjE0MiwgMy4yMTA5NSwgNC4wMDEyMiwgNS4xMDU1MiIsIFwKLSAgICAgICAgICAiMC4yMTY5MzMsIDAuOTg4ODM5LCAxLjc2NTM5LCAyLjMyMTg4LCAzLjIxMDMsIDMuOTg4MDIsIDUuMTE3MDkiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTc3NzQsIDAuMzg3NzUyLCAwLjY3NTExMiwgMC44ODAxOTQsIDEuMjA4NTEsIDEuNDk1NzIsIDEuOTA1MSIsIFwKLSAgICAgICAgICAiMC4xMDgyNzIsIDAuMzk4MjkyLCAwLjY4NTg0OCwgMC44OTEzNTQsIDEuMjE5MSwgMS41MDU5OCwgMS45MTYwOSIsIFwKLSAgICAgICAgICAiMC4xMjEyMjgsIDAuNDExNjUxLCAwLjY5OTAxLCAwLjkwNDIyMiwgMS4yMzIzMSwgMS41MTk0MiwgMS45MjkzIiwgXAotICAgICAgICAgICIwLjEzNDM5MiwgMC40MjQ3NzcsIDAuNzEyNDIyLCAwLjkxNzUxMiwgMS4yNDU3NSwgMS41MzI2OCwgMS45NDMyNiIsIFwKLSAgICAgICAgICAiMC4xNDc0NDQsIDAuNDM3ODU1LCAwLjcyNTU0MSwgMC45MzA2NzIsIDEuMjU4NzQsIDEuNTQ1OTMsIDEuOTU1ODYiLCBcCi0gICAgICAgICAgIjAuMTY5NTA2LCAwLjQ1OTA2NywgMC43NDY2MDIsIDAuOTUxNzQ5LCAxLjI4MDE5LCAxLjU2NzE5LCAxLjk3NzQxIiwgXAotICAgICAgICAgICIwLjE4ODQ3OSwgMC40Nzc0MzgsIDAuNzY1MTYyLCAwLjk3MDM5MSwgMS4yOTg2MSwgMS41ODYsIDEuOTk1NjciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNzIzMjUsIDAuNzIwNTEyLCAxLjI2OTAzLCAxLjY2MDg3LCAyLjI4NzA4LCAyLjgzNjA1LCAzLjYxODAzIiwgXAotICAgICAgICAgICIwLjE3MjI4OSwgMC43MjA0MzMsIDEuMjY5MTYsIDEuNjYwNjMsIDIuMjg3NCwgMi44MzU2NywgMy42MTkyOCIsIFwKLSAgICAgICAgICAiMC4xNzIxNSwgMC43MjA1NywgMS4yNjg5MiwgMS42NjA0MiwgMi4yODcyNywgMi44MzU1LCAzLjYxODYxIiwgXAotICAgICAgICAgICIwLjE3Mzg1LCAwLjcyMDQwNiwgMS4yNjg3MywgMS42NjEwNywgMi4yODc1MywgMi44MzU2NywgMy42MTkxMiIsIFwKLSAgICAgICAgICAiMC4xNzc1MywgMC43MjA1MzIsIDEuMjY5MTgsIDEuNjYwNDMsIDIuMjg3NzYsIDIuODM1MTUsIDMuNjE4MTUiLCBcCi0gICAgICAgICAgIjAuMTg1NDE5LCAwLjcyMDU1MywgMS4yNjkwNywgMS42NjAzNywgMi4yODc4NSwgMi44MzU0MSwgMy42MTg1NSIsIFwKLSAgICAgICAgICAiMC4xOTQzMTMsIDAuNzIwNjI4LCAxLjI2OTE1LCAxLjY2MDg0LCAyLjI4Nzk1LCAyLjgzNTM3LCAzLjYxODM0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExNDg4NSwgMC41MTkxNTMsIDAuOTIxNDkzLCAxLjIwOTAxLCAxLjY2ODUzLCAyLjA3MDMyLCAyLjY0NDM4IiwgXAotICAgICAgICAgICIwLjEyNDY0NiwgMC41MjkxMjMsIDAuOTMxNDY0LCAxLjIxODU1LCAxLjY3Nzk4LCAyLjA4MDQsIDIuNjU0NjMiLCBcCi0gICAgICAgICAgIjAuMTM2NzUyLCAwLjU0MTMyOCwgMC45NDM4ODEsIDEuMjMxNDIsIDEuNjkwNDQsIDIuMDkzMDEsIDIuNjY2NzUiLCBcCi0gICAgICAgICAgIjAuMTQ4ODk4LCAwLjU1MzYzMywgMC45NTYwOTksIDEuMjQzMjcsIDEuNzAyNTksIDIuMTA1MzgsIDIuNjc5MTIiLCBcCi0gICAgICAgICAgIjAuMTYxMTU3LCAwLjU2NTgzOCwgMC45NjgzMSwgMS4yNTU0NCwgMS43MTU2NSwgMi4xMTcxOSwgMi42OTEzMiIsIFwKLSAgICAgICAgICAiMC4xODE2MzksIDAuNTg1NDQ3LCAwLjk4NzgwMiwgMS4yNzU0LCAxLjczNDUzLCAyLjEzNzIxLCAyLjcxMDc0IiwgXAotICAgICAgICAgICIwLjE5OTE4NSwgMC42MDI1NDYsIDEuMDA1MDYsIDEuMjkyNjUsIDEuNzUxODIsIDIuMTU0NTEsIDIuNzI3OTUiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMTk2NjQsIDAuOTk1ODgsIDEuNzY5NjUsIDIuMzIyMzEsIDMuMjA4OTksIDMuOTg3NzgsIDUuMTAxMDQiLCBcCi0gICAgICAgICAgIjAuMjE4ODgxLCAwLjk5NTg5MywgMS43Njk2NywgMi4zMjMzLCAzLjIwOTM3LCAzLjk4ODAyLCA1LjEwMDc1IiwgXAotICAgICAgICAgICIwLjIxNzIwMywgMC45OTU5OTMsIDEuNzcwMDEsIDIuMzIyNjMsIDMuMjA5ODcsIDMuOTg3MzcsIDUuMTAwNTEiLCBcCi0gICAgICAgICAgIjAuMjE3ODIyLCAwLjk5NjY3MSwgMS43NzA3OCwgMi4zMjE5MSwgMy4yMDk0NiwgMy45ODczMiwgNS4xMDEwNCIsIFwKLSAgICAgICAgICAiMC4yMjA1ODcsIDAuOTk1OTk3LCAxLjc2OTY5LCAyLjMyMzI1LCAzLjIwOTE4LCAzLjk4NzQ4LCA1LjEwMDMiLCBcCi0gICAgICAgICAgIjAuMjI3MjA5LCAwLjk5NTg5NywgMS43NjkzMiwgMi4zMjE4NSwgMy4yMDc2MiwgMy45ODg0MiwgNS4xMDQ5IiwgXAotICAgICAgICAgICIwLjIzNDkyNSwgMC45OTU2MSwgMS43NzA2NywgMi4zMjE5NywgMy4yMDg2NiwgMy45ODczNCwgNS4xMDM3Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc3ODYxLCAwLjM2NTM0MywgMC42NTI3MzcsIDAuODU3NjEzLCAxLjE4NTU2LCAxLjQ3MjcxLCAxLjg4Mjg3IiwgXAotICAgICAgICAgICIwLjA4OTYsIDAuMzc3MzA2LCAwLjY2NDUyMywgMC44Njk1NywgMS4xOTc2NywgMS40ODQ5MSwgMS44OTUwOCIsIFwKLSAgICAgICAgICAiMC4xMDMwMzUsIDAuMzkxMzI2LCAwLjY3ODM2MiwgMC44ODM2MTcsIDEuMjExNzMsIDEuNDk4ODIsIDEuOTA4OTEiLCBcCi0gICAgICAgICAgIjAuMTE2Mjg0LCAwLjQwNDkyNSwgMC42OTIwMDgsIDAuODk3MTA0LCAxLjIyNTMzLCAxLjUxMjUzLCAxLjkyMjUiLCBcCi0gICAgICAgICAgIjAuMTI5NTg1LCAwLjQxODQ5MiwgMC43MDU0NjEsIDAuOTEwNTksIDEuMjM4ODQsIDEuNTI2MDIsIDEuOTM2MDEiLCBcCi0gICAgICAgICAgIjAuMTUwNzk1LCAwLjQzOTk0LCAwLjcyNzM4OCwgMC45MzI1NjcsIDEuMjYwNjksIDEuNTQ3NjQsIDEuOTU3ODQiLCBcCi0gICAgICAgICAgIjAuMTY5MTYxLCAwLjQ1ODQ3NiwgMC43NDU5MzQsIDAuOTUxMjIxLCAxLjI3OTQzLCAxLjU2NjY1LCAxLjk3Njc2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTUwNzg3LCAwLjY5Nzc5NiwgMS4yNDU5LCAxLjYzNzQsIDIuMjY0MTksIDIuODEyMjQsIDMuNTk2MzciLCBcCi0gICAgICAgICAgIjAuMTUwNzg0LCAwLjY5NzY3LCAxLjI0NTYsIDEuNjM3NDIsIDIuMjYzNTMsIDIuODEyMjIsIDMuNTk1MzgiLCBcCi0gICAgICAgICAgIjAuMTUwODU5LCAwLjY5NzcyMSwgMS4yNDU1NiwgMS42Mzc0MywgMi4yNjMyNywgMi44MTE2MSwgMy41OTU5OSIsIFwKLSAgICAgICAgICAiMC4xNTIzNjEsIDAuNjk3NzI1LCAxLjI0NTU5LCAxLjYzNzQsIDIuMjYzMzEsIDIuODEyNzYsIDMuNTk1NzUiLCBcCi0gICAgICAgICAgIjAuMTU1MywgMC42OTc3MTIsIDEuMjQ1NiwgMS42MzczOCwgMi4yNjM3MSwgMi44MTI1OCwgMy41OTU2OSIsIFwKLSAgICAgICAgICAiMC4xNjE5MjMsIDAuNjk3ODIzLCAxLjI0NTQ1LCAxLjYzNzQ2LCAyLjI2NDI0LCAyLjgxMTQ4LCAzLjU5NTg5IiwgXAotICAgICAgICAgICIwLjE2OTE3LCAwLjY5NzcxOCwgMS4yNDU1LCAxLjYzNjk2LCAyLjI2NDE5LCAyLjgxMTk1LCAzLjU5NjU0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMxIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwNzQyNSwgMC41MTI1OTcsIDAuOTE2MzMxLCAxLjIwNDg1LCAxLjY2NTY3LCAyLjA2OTIyLCAyLjY0NTU4IiwgXAotICAgICAgICAgICIwLjExNzI2NSwgMC41MjI4MjYsIDAuOTI2NDM0LCAxLjIxNTA1LCAxLjY3NjAyLCAyLjA3OTMzLCAyLjY1NTgxIiwgXAotICAgICAgICAgICIwLjEyOTg2MywgMC41MzU1MSwgMC45Mzk0NzMsIDEuMjI3MTQsIDEuNjg4NTcsIDIuMDkyMzUsIDIuNjY3ODIiLCBcCi0gICAgICAgICAgIjAuMTQxMywgMC41NDcyOTgsIDAuOTUxMjY5LCAxLjIzOTM3LCAxLjcwMDM2LCAyLjEwNDY4LCAyLjY3OTk2IiwgXAotICAgICAgICAgICIwLjE1MzQyNSwgMC41NTk1MTYsIDAuOTYzMzIzLCAxLjI1MTUsIDEuNzEzMzgsIDIuMTE2OTQsIDIuNjkyNDYiLCBcCi0gICAgICAgICAgIjAuMTczOTAxLCAwLjU3OTA0NCwgMC45ODI4MTMsIDEuMjcxNDMsIDEuNzMyMjEsIDIuMTM2MzcsIDIuNzExODUiLCBcCi0gICAgICAgICAgIjAuMTkxNDk1LCAwLjU5NjEwMywgMS4wMDAwMiwgMS4yODg2NiwgMS43NDk0OCwgMi4xNTM2LCAyLjcyOTA4Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjExNTMxLCAwLjk5MDYzMywgMS43Njc0NSwgMi4zMjIyNSwgMy4yMTE1NSwgNC4wMDExOCwgNS4xMDQ0MSIsIFwKLSAgICAgICAgICAiMC4yMTA3MjMsIDAuOTkwNTc0LCAxLjc2NzE0LCAyLjMyMjQ3LCAzLjIxNTE0LCAzLjk5MjQxLCA1LjExNzgxIiwgXAotICAgICAgICAgICIwLjIwOTE0OSwgMC45OTE1NzMsIDEuNzY3MDMsIDIuMzIzMjMsIDMuMjEwMzksIDQuMDAxMDcsIDUuMTE2MTQiLCBcCi0gICAgICAgICAgIjAuMjA5OTM3LCAwLjk5MTI3NywgMS43Njc1NywgMi4zMjMyMiwgMy4yMTA3NywgNC4wMDIwOCwgNS4xMTUzOCIsIFwKLSAgICAgICAgICAiMC4yMTMwNTksIDAuOTkwNjU1LCAxLjc2NzEsIDIuMzIyOTcsIDMuMjExMDYsIDQuMDAyMTEsIDUuMTEiLCBcCi0gICAgICAgICAgIjAuMjIwMjc3LCAwLjk5MDU3NywgMS43NjcxNiwgMi4zMjE2MSwgMy4yMTA4NSwgMy45OTEyNiwgNS4xMTU5MiIsIFwKLSAgICAgICAgICAiMC4yMjg1OTUsIDAuOTkwMiwgMS43NjgyMywgMi4zMjIwNSwgMy4yMTM5NCwgNC4wMDE5MSwgNS4xMDgzNSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3MzM5MSwgMC4zNjA5MzgsIDAuNjQ4MDA3LCAwLjg1MzA5OSwgMS4xODEwOSwgMS40NjgxNywgMS44Nzg2IiwgXAotICAgICAgICAgICIwLjA4Mzg2NSwgMC4zNzE2OTUsIDAuNjU5MDIyLCAwLjg2NDEzMSwgMS4xOTIyLCAxLjQ3OTMxLCAxLjg4OTM3IiwgXAotICAgICAgICAgICIwLjA5Njg0NCwgMC4zODUwMDYsIDAuNjcyMzE0LCAwLjg3NzM2LCAxLjIwNjI5LCAxLjQ5Mjc1LCAxLjkwMjc0IiwgXAotICAgICAgICAgICIwLjExMDU3OSwgMC4zOTg5MjIsIDAuNjg2MzA5LCAwLjg5MTI4LCAxLjIxOTUzLCAxLjUwNjYzLCAxLjkxNjkxIiwgXAotICAgICAgICAgICIwLjEyMzgyOCwgMC40MTE2ODYsIDAuNjk4ODkxLCAwLjkwNDA1OCwgMS4yMzIwNiwgMS41MTkyMSwgMS45MjkzMiIsIFwKLSAgICAgICAgICAiMC4xNDU0MDIsIDAuNDMyNzU4LCAwLjcyMDA1MiwgMC45MjUzNTQsIDEuMjUzMzksIDEuNTQwNjQsIDEuOTUwNzEiLCBcCi0gICAgICAgICAgIjAuMTY0MzgxLCAwLjQ1MTIzNSwgMC43Mzg2NiwgMC45NDM4MjUsIDEuMjcyMDksIDEuNTU5MTcsIDEuOTY5MjYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNTA3OCwgMC42OTc4NjMsIDEuMjQ1NjMsIDEuNjM2OTEsIDIuMjY0MTcsIDIuODEyNTIsIDMuNTk2MTUiLCBcCi0gICAgICAgICAgIjAuMTUwNzczLCAwLjY5NzY2MiwgMS4yNDU3MSwgMS42MzY5NSwgMi4yNjMxOSwgMi44MTE1MiwgMy41OTUyMiIsIFwKLSAgICAgICAgICAiMC4xNTE0MywgMC42OTc3NTEsIDEuMjQ1MzYsIDEuNjM3MDIsIDIuMjY0MDQsIDIuODEyNjYsIDMuNTk2MDUiLCBcCi0gICAgICAgICAgIjAuMTU0NTE1LCAwLjY5NzY2NCwgMS4yNDU0NywgMS42MzczNiwgMi4yNjM5MiwgMi44MTE2NSwgMy41OTYwNCIsIFwKLSAgICAgICAgICAiMC4xNTk2NzksIDAuNjk3NzI1LCAxLjI0NTcyLCAxLjYzNjkyLCAyLjI2MzI4LCAyLjgxMTUxLCAzLjU5NjA1IiwgXAotICAgICAgICAgICIwLjE3MDA3NCwgMC42OTc3OTQsIDEuMjQ1NDYsIDEuNjM3NDUsIDIuMjYzODIsIDIuODEyNjUsIDMuNTk2MzIiLCBcCi0gICAgICAgICAgIjAuMTgwNjIxLCAwLjY5ODA1OCwgMS4yNDU2NCwgMS42MzczMiwgMi4yNjQxNywgMi44MTI1OSwgMy41OTYxNCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxNjEwNCwgMC4wMTYxLCAwLjAxNjA5OCwgMC4wMTYwOTQsIDAuMDE2MDg5LCAwLjAxNjA4NCwgMC4wMTYwNzciLCBcCi0gICAgICAgICAgIjAuMDE2MDY5LCAwLjAxNjA3NiwgMC4wMTYwNzYsIDAuMDE2MDc0LCAwLjAxNjA2OSwgMC4wMTYwNiwgMC4wMTYwNTciLCBcCi0gICAgICAgICAgIjAuMDE2MDUyLCAwLjAxNjA2OSwgMC4wMTYwNjcsIDAuMDE2MDY1LCAwLjAxNjA2LCAwLjAxNjA2LCAwLjAxNjA1NCIsIFwKLSAgICAgICAgICAiMC4wMTYwMzgsIDAuMDE2MDY2LCAwLjAxNjA2NywgMC4wMTYwNjYsIDAuMDE2MDU5LCAwLjAxNjA1OCwgMC4wMTYwNTMiLCBcCi0gICAgICAgICAgIjAuMDE2MDI3LCAwLjAxNjA2MiwgMC4wMTYwNjIsIDAuMDE2MDYzLCAwLjAxNjA1OCwgMC4wMTYwNTQsIDAuMDE2MDQ5IiwgXAotICAgICAgICAgICIwLjAxNjAxMywgMC4wMTYwNTEsIDAuMDE2MDU3LCAwLjAxNjA1NywgMC4wMTYwNTcsIDAuMDE2MDYzLCAwLjAxNjA0NiIsIFwKLSAgICAgICAgICAiMC4wMTYwMDUsIDAuMDE2MDQ5LCAwLjAxNjA1NSwgMC4wMTYwNTYsIDAuMDE2MDU1LCAwLjAxNjA1MSwgMC4wMTYwNDciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjYzNywgMC4wMDY2MzQsIDAuMDA2NjMyLCAwLjAwNjYyOSwgMC4wMDY2MjUsIDAuMDA2NjIyLCAwLjAwNjYxNSIsIFwKLSAgICAgICAgICAiMC4wMDY1NzUsIDAuMDA2NTgxLCAwLjAwNjU3NiwgMC4wMDY1NzMsIDAuMDA2NTczLCAwLjAwNjU2OCwgMC4wMDY1NTkiLCBcCi0gICAgICAgICAgIjAuMDA2NTQyLCAwLjAwNjU1NSwgMC4wMDY1NTEsIDAuMDA2NTU0LCAwLjAwNjU1LCAwLjAwNjU0NiwgMC4wMDY1MzciLCBcCi0gICAgICAgICAgIjAuMDA2NTE0LCAwLjAwNjUzNiwgMC4wMDY1MzksIDAuMDA2NTQxLCAwLjAwNjUzOCwgMC4wMDY1MzYsIDAuMDA2NTMiLCBcCi0gICAgICAgICAgIjAuMDA2NDksIDAuMDA2NTI5LCAwLjAwNjUzNSwgMC4wMDY1MzQsIDAuMDA2NTM1LCAwLjAwNjUzMywgMC4wMDY1MjYiLCBcCi0gICAgICAgICAgIjAuMDA2NDY2LCAwLjAwNjUxNCwgMC4wMDY1MiwgMC4wMDY1MjMsIDAuMDA2NTIzLCAwLjAwNjUyLCAwLjAwNjUyIiwgXAotICAgICAgICAgICIwLjAwNjQ0OCwgMC4wMDY1MDQsIDAuMDA2NTE1LCAwLjAwNjUxOCwgMC4wMDY1MTgsIDAuMDA2NTE3LCAwLjAwNjUxNCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkExIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxNDg0NiwgMC4wMTQ4NTEsIDAuMDE0ODQ5LCAwLjAxNDg0NywgMC4wMTQ4NDUsIDAuMDE0ODQsIDAuMDE0ODM2IiwgXAotICAgICAgICAgICIwLjAxNDgzNCwgMC4wMTQ4NjQsIDAuMDE0ODY3LCAwLjAxNDg3LCAwLjAxNDg2NCwgMC4wMTQ4NTksIDAuMDE0ODU3IiwgXAotICAgICAgICAgICIwLjAxNDgwNCwgMC4wMTQ4NTgsIDAuMDE0ODYsIDAuMDE0ODYyLCAwLjAxNDg2MSwgMC4wMTQ4NTksIDAuMDE0ODU2IiwgXAotICAgICAgICAgICIwLjAxNDc3OSwgMC4wMTQ4NTIsIDAuMDE0ODYxLCAwLjAxNDg2MSwgMC4wMTQ4NjEsIDAuMDE0ODY5LCAwLjAxNDg1OSIsIFwKLSAgICAgICAgICAiMC4wMTQ3NTcsIDAuMDE0ODQzLCAwLjAxNDg1NSwgMC4wMTQ4NTgsIDAuMDE0ODYsIDAuMDE0ODYxLCAwLjAxNDg2IiwgXAotICAgICAgICAgICIwLjAxNDcyNiwgMC4wMTQ4MjgsIDAuMDE0ODQ2LCAwLjAxNDg1MywgMC4wMTQ4NTQsIDAuMDE0ODU1LCAwLjAxNDg1IiwgXAotICAgICAgICAgICIwLjAxNDcxLCAwLjAxNDgxNSwgMC4wMTQ4MzcsIDAuMDE0ODQ0LCAwLjAxNDg0OCwgMC4wMTQ4NSwgMC4wMTQ4NTMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjYzOSwgMC4wMDY2MzQsIDAuMDA2NjMzLCAwLjAwNjYzMiwgMC4wMDY2MjcsIDAuMDA2NjIxLCAwLjAwNjYxNSIsIFwKLSAgICAgICAgICAiMC4wMDY1NzMsIDAuMDA2NTgsIDAuMDA2NTc4LCAwLjAwNjU3NSwgMC4wMDY1NjcsIDAuMDA2NTY3LCAwLjAwNjU2OSIsIFwKLSAgICAgICAgICAiMC4wMDY1MjYsIDAuMDA2NTUyLCAwLjAwNjU0OSwgMC4wMDY1NTEsIDAuMDA2NTUsIDAuMDA2NTQ1LCAwLjAwNjU0NCIsIFwKLSAgICAgICAgICAiMC4wMDY1MDMsIDAuMDA2NTM4LCAwLjAwNjU0LCAwLjAwNjU0LCAwLjAwNjUzNywgMC4wMDY1MzksIDAuMDA2NTMzIiwgXAotICAgICAgICAgICIwLjAwNjQ3NCwgMC4wMDY1MjEsIDAuMDA2NTI3LCAwLjAwNjUyNywgMC4wMDY1MjksIDAuMDA2NTI5LCAwLjAwNjUyNiIsIFwKLSAgICAgICAgICAiMC4wMDY0NDQsIDAuMDA2NTA2LCAwLjAwNjUxNywgMC4wMDY1MiwgMC4wMDY1MTksIDAuMDA2NTIsIDAuMDA2NTE2IiwgXAotICAgICAgICAgICIwLjAwNjQzMiwgMC4wMDY0OTksIDAuMDA2NTA3LCAwLjAwNjUxMSwgMC4wMDY1MTUsIDAuMDA2NTEyLCAwLjAwNjUxMiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMzI0OSwgMC4wMTMyNDYsIDAuMDEzMjQxLCAwLjAxMzI0LCAwLjAxMzIzMiwgMC4wMTMyMjYsIDAuMDEzMjIyIiwgXAotICAgICAgICAgICIwLjAxMzIxMiwgMC4wMTMyMjEsIDAuMDEzMjE3LCAwLjAxMzIxNiwgMC4wMTMyMDksIDAuMDEzMjA3LCAwLjAxMzIwMSIsIFwKLSAgICAgICAgICAiMC4wMTMxOTMsIDAuMDEzMjEzLCAwLjAxMzIxMiwgMC4wMTMyMSwgMC4wMTMyMDIsIDAuMDEzMTk3LCAwLjAxMzE5MiIsIFwKLSAgICAgICAgICAiMC4wMTMxODEsIDAuMDEzMjA2LCAwLjAxMzIwNiwgMC4wMTMyMDYsIDAuMDEzMjAzLCAwLjAxMzE5NywgMC4wMTMxOSIsIFwKLSAgICAgICAgICAiMC4wMTMxNjgsIDAuMDEzMjAyLCAwLjAxMzIwMywgMC4wMTMyMDEsIDAuMDEzMTk4LCAwLjAxMzE5NCwgMC4wMTMxODkiLCBcCi0gICAgICAgICAgIjAuMDEzMTU0LCAwLjAxMzE5NSwgMC4wMTMxOTgsIDAuMDEzMiwgMC4wMTMxOTcsIDAuMDEzMTkyLCAwLjAxMzE5IiwgXAotICAgICAgICAgICIwLjAxMzE0NywgMC4wMTMxODksIDAuMDEzMTk2LCAwLjAxMzE5NiwgMC4wMTMxOTUsIDAuMDEzMTk0LCAwLjAxMzE4NyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0MDM3LCAwLjAwNDAzNiwgMC4wMDQwMzQsIDAuMDA0MDM0LCAwLjAwNDAzMSwgMC4wMDQwMywgMC4wMDQwMjgiLCBcCi0gICAgICAgICAgIjAuMDA0MDMxLCAwLjAwNDA1NCwgMC4wMDQwNTUsIDAuMDA0MDU3LCAwLjAwNDA1NCwgMC4wMDQwNTEsIDAuMDA0MDUiLCBcCi0gICAgICAgICAgIjAuMDAzOTk3LCAwLjAwNDA1MiwgMC4wMDQwNTksIDAuMDA0MDYxLCAwLjAwNDA2MSwgMC4wMDQwNTgsIDAuMDA0MDU3IiwgXAotICAgICAgICAgICIwLjAwMzk2MiwgMC4wMDQwNDEsIDAuMDA0MDU0LCAwLjAwNDA1NiwgMC4wMDQwNjEsIDAuMDA0MDYsIDAuMDA0MDU5IiwgXAotICAgICAgICAgICIwLjAwMzkzMSwgMC4wMDQwMzEsIDAuMDA0MDQ4LCAwLjAwNDA1MywgMC4wMDQwNTcsIDAuMDA0MDU4LCAwLjAwNDA1OCIsIFwKLSAgICAgICAgICAiMC4wMDM4OTEsIDAuMDA0MDE0LCAwLjAwNDAzNywgMC4wMDQwNDUsIDAuMDA0MDUyLCAwLjAwNDA1NCwgMC4wMDQwNTYiLCBcCi0gICAgICAgICAgIjAuMDAzODY0LCAwLjAwMzk5OCwgMC4wMDQwMjgsIDAuMDA0MDM3LCAwLjAwNDA0NiwgMC4wMDQwNSwgMC4wMDQwNTMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTE4NTYsIDAuMDExODYzLCAwLjAxMTg2MiwgMC4wMTE4NiwgMC4wMTE4NTYsIDAuMDExODU0LCAwLjAxMTg0NyIsIFwKLSAgICAgICAgICAiMC4wMTE4NDQsIDAuMDExODc1LCAwLjAxMTg3NywgMC4wMTE4NzgsIDAuMDExODc2LCAwLjAxMTg3MSwgMC4wMTE4NyIsIFwKLSAgICAgICAgICAiMC4wMTE4MTUsIDAuMDExODcxLCAwLjAxMTg3OCwgMC4wMTE4ODEsIDAuMDExODc0LCAwLjAxMTg3MiwgMC4wMTE4NzMiLCBcCi0gICAgICAgICAgIjAuMDExNzg1LCAwLjAxMTg2LCAwLjAxMTg2OSwgMC4wMTE4NzIsIDAuMDExODcyLCAwLjAxMTg3LCAwLjAxMTg3MSIsIFwKLSAgICAgICAgICAiMC4wMTE3NjYsIDAuMDExODUyLCAwLjAxMTg2NywgMC4wMTE4NjgsIDAuMDExODcsIDAuMDExODcxLCAwLjAxMTg3MiIsIFwKLSAgICAgICAgICAiMC4wMTE3MzgsIDAuMDExODM4LCAwLjAxMTg1NywgMC4wMTE4NjMsIDAuMDExODY1LCAwLjAxMTg2OCwgMC4wMTE4NjQiLCBcCi0gICAgICAgICAgIjAuMDExNzIyLCAwLjAxMTgyOCwgMC4wMTE4NDksIDAuMDExODU1LCAwLjAxMTg2MywgMC4wMTE4NjIsIDAuMDExODYxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQwMzMsIDAuMDA0MDM1LCAwLjAwNDAzNywgMC4wMDQwMzIsIDAuMDA0MDI4LCAwLjAwNDAyOCwgMC4wMDQwMjUiLCBcCi0gICAgICAgICAgIjAuMDA0MDIyLCAwLjAwNDA0OSwgMC4wMDQwNTQsIDAuMDA0MDU0LCAwLjAwNDA1MiwgMC4wMDQwNTEsIDAuMDA0MDU0IiwgXAotICAgICAgICAgICIwLjAwMzk4NCwgMC4wMDQwNDcsIDAuMDA0MDU2LCAwLjAwNDA1OSwgMC4wMDQwNiwgMC4wMDQwNTgsIDAuMDA0MDU3IiwgXAotICAgICAgICAgICIwLjAwMzk0MSwgMC4wMDQwMzYsIDAuMDA0MDQ5LCAwLjAwNDA1MywgMC4wMDQwNTcsIDAuMDA0MDU3LCAwLjAwNDA1OCIsIFwKLSAgICAgICAgICAiMC4wMDM5MTQsIDAuMDA0MDI0LCAwLjAwNDA0NSwgMC4wMDQwNSwgMC4wMDQwNTUsIDAuMDA0MDU3LCAwLjAwNDA1NyIsIFwKLSAgICAgICAgICAiMC4wMDM4NzgsIDAuMDA0MDA2LCAwLjAwNDAzNSwgMC4wMDQwNDIsIDAuMDA0MDQ5LCAwLjAwNDA1MywgMC4wMDQwNTQiLCBcCi0gICAgICAgICAgIjAuMDAzODU0LCAwLjAwMzk5MiwgMC4wMDQwMjUsIDAuMDA0MDM1LCAwLjAwNDA0NCwgMC4wMDQwNDcsIDAuMDA0MDUxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQzAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEwNjU5LCAwLjAxMDY2LCAwLjAxMDY1NSwgMC4wMTA2NTIsIDAuMDEwNjQ3LCAwLjAxMDY0NSwgMC4wMTA2MzciLCBcCi0gICAgICAgICAgIjAuMDEwNjEyLCAwLjAxMDYzMiwgMC4wMTA2MzEsIDAuMDEwNjI3LCAwLjAxMDYyNSwgMC4wMTA2MTksIDAuMDEwNjE1IiwgXAotICAgICAgICAgICIwLjAxMDU4LCAwLjAxMDYxOCwgMC4wMTA2MiwgMC4wMTA2MjEsIDAuMDEwNjE3LCAwLjAxMDYxOCwgMC4wMTA2MSIsIFwKLSAgICAgICAgICAiMC4wMTA1NTUsIDAuMDEwNjA5LCAwLjAxMDYxNCwgMC4wMTA2MTIsIDAuMDEwNjEsIDAuMDEwNjEsIDAuMDEwNjA0IiwgXAotICAgICAgICAgICIwLjAxMDU0LCAwLjAxMDU5OSwgMC4wMTA2MDgsIDAuMDEwNjEsIDAuMDEwNjA3LCAwLjAxMDYwNiwgMC4wMTA2IiwgXAotICAgICAgICAgICIwLjAxMDUyMywgMC4wMTA1ODgsIDAuMDEwNjAxLCAwLjAxMDYwNCwgMC4wMTA2MDQsIDAuMDEwNiwgMC4wMTA1OTYiLCBcCi0gICAgICAgICAgIjAuMDEwNTE0LCAwLjAxMDU4LCAwLjAxMDU5NSwgMC4wMTA2LCAwLjAxMDU5OSwgMC4wMTA1OTksIDAuMDEwNTkyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDExODEsIDAuMDAxMTk5LCAwLjAwMTIwMSwgMC4wMDEyMDIsIDAuMDAxMjAyLCAwLjAwMTIwMiwgMC4wMDEyMDMiLCBcCi0gICAgICAgICAgIjAuMDAxMTc4LCAwLjAwMTI1NCwgMC4wMDEyNjQsIDAuMDAxMjY3LCAwLjAwMTI2OSwgMC4wMDEyNzEsIDAuMDAxMjcyIiwgXAotICAgICAgICAgICIwLjAwMTEzOSwgMC4wMDEyNjYsIDAuMDAxMjg0LCAwLjAwMTI4OSwgMC4wMDEyOTQsIDAuMDAxMjk3LCAwLjAwMTI5OSIsIFwKLSAgICAgICAgICAiMC4wMDEwOTksIDAuMDAxMjYyLCAwLjAwMTI4NywgMC4wMDEyOTUsIDAuMDAxMzAyLCAwLjAwMTMwNSwgMC4wMDEzMDkiLCBcCi0gICAgICAgICAgIjAuMDAxMDY2LCAwLjAwMTI1NCwgMC4wMDEyODUsIDAuMDAxMjk1LCAwLjAwMTMwNCwgMC4wMDEzMDgsIDAuMDAxMzEzIiwgXAotICAgICAgICAgICIwLjAwMTAxOSwgMC4wMDEyMzcsIDAuMDAxMjc2LCAwLjAwMTI4OSwgMC4wMDEzMDEsIDAuMDAxMzA3LCAwLjAwMTMxMyIsIFwKLSAgICAgICAgICAiMC4wMDA5ODgsIDAuMDAxMjE5LCAwLjAwMTI2NywgMC4wMDEyODMsIDAuMDAxMjk3LCAwLjAwMTMwNSwgMC4wMDEzMTEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDMSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDk0MjIsIDAuMDA5NDMxLCAwLjAwOTQzLCAwLjAwOTQyOSwgMC4wMDk0MjYsIDAuMDA5NDIzLCAwLjAwOTQxNCIsIFwKLSAgICAgICAgICAiMC4wMDkzOTUsIDAuMDA5NDQyLCAwLjAwOTQ0NCwgMC4wMDk0NDUsIDAuMDA5NDQyLCAwLjAwOTQ0NCwgMC4wMDk0MzkiLCBcCi0gICAgICAgICAgIjAuMDA5MzUyLCAwLjAwOTQzLCAwLjAwOTQzOSwgMC4wMDk0NDEsIDAuMDA5NDM4LCAwLjAwOTQ0NiwgMC4wMDk0MzUiLCBcCi0gICAgICAgICAgIjAuMDA5MzE1LCAwLjAwOTQxNiwgMC4wMDk0MzEsIDAuMDA5NDM2LCAwLjAwOTQ0LCAwLjAwOTQzNCwgMC4wMDk0MzYiLCBcCi0gICAgICAgICAgIjAuMDA5Mjg4LCAwLjAwOTQwNCwgMC4wMDk0MjQsIDAuMDA5NDMsIDAuMDA5NDMzLCAwLjAwOTQzMiwgMC4wMDk0MzYiLCBcCi0gICAgICAgICAgIjAuMDA5MjYsIDAuMDA5Mzg2LCAwLjAwOTQxMSwgMC4wMDk0MTksIDAuMDA5NDIzLCAwLjAwOTQyNywgMC4wMDk0MjkiLCBcCi0gICAgICAgICAgIjAuMDA5MjM5LCAwLjAwOTM3MSwgMC4wMDk0MDMsIDAuMDA5NDEzLCAwLjAwOTQxOSwgMC4wMDk0MjMsIDAuMDA5NDIxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDExNzgsIDAuMDAxMiwgMC4wMDEyMDMsIDAuMDAxMjA0LCAwLjAwMTIwMywgMC4wMDEyMDQsIDAuMDAxMjA0IiwgXAotICAgICAgICAgICIwLjAwMTE2NCwgMC4wMDEyNTQsIDAuMDAxMjY2LCAwLjAwMTI2OCwgMC4wMDEyNzIsIDAuMDAxMjczLCAwLjAwMTI3NCIsIFwKLSAgICAgICAgICAiMC4wMDExMjEsIDAuMDAxMjY1LCAwLjAwMTI4NSwgMC4wMDEyOTEsIDAuMDAxMjk3LCAwLjAwMTI5OSwgMC4wMDEzMDIiLCBcCi0gICAgICAgICAgIjAuMDAxMDgyLCAwLjAwMTI1OSwgMC4wMDEyODYsIDAuMDAxMjk0LCAwLjAwMTMwMSwgMC4wMDEzMDUsIDAuMDAxMzA5IiwgXAotICAgICAgICAgICIwLjAwMTA1LCAwLjAwMTI1LCAwLjAwMTI4NSwgMC4wMDEyOTYsIDAuMDAxMzA2LCAwLjAwMTMxMSwgMC4wMDEzMTUiLCBcCi0gICAgICAgICAgIjAuMDAxMDExLCAwLjAwMTIzMiwgMC4wMDEyNzYsIDAuMDAxMjksIDAuMDAxMzAzLCAwLjAwMTMxLCAwLjAwMTMxNiIsIFwKLSAgICAgICAgICAiMC4wMDA5ODgsIDAuMDAxMjE1LCAwLjAwMTI2NiwgMC4wMDEyODMsIDAuMDAxMjk4LCAwLjAwMTMwNywgMC4wMDEzMTQiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IEFPSTJCQjFYMSAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKEFPSTJCQjFYMSkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjA4NjExMzsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQTBOKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2NTQyNTQ7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjUwOTI5OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDY1NDI1NDsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA1NDgsIDAuMDAwNTM1LCAwLjAwMDUyOCwgMC4wMDA1MjMsIDAuMDAwNTIsIDAuMDAwNTE4LCAwLjAwMDUxNyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTcwMywgMC4wMDE2OTYsIDAuMDAxNjkxLCAwLjAwMTY4OCwgMC4wMDE2ODYsIDAuMDAxNjg1LCAwLjAwMTY4NCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQTFOKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2MTcxMjU7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjE3MDY4OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDYxNzEyNTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAzNDgsIDAuMDAwMzM4LCAwLjAwMDMyNywgMC4wMDAzMTksIDAuMDAwMzE1LCAwLjAwMDMxMiwgMC4wMDAzMTEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDE1NjQsIDAuMDAxNTUyLCAwLjAwMTU0NSwgMC4wMDE1NDEsIDAuMDAxNTM5LCAwLjAwMTUzOCwgMC4wMDE1MzkiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA5MDg5Nzk7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwOTAyOTE7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwOTA4OTc5OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDI4MSwgMC4wMDAyOTQsIDAuMDAwMjk3LCAwLjAwMDI5OCwgMC4wMDAyOTksIDAuMDAwMjk5LCAwLjAwMDMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAzMSwgMC4wMDAzMSwgMC4wMDAzMSwgMC4wMDAzMSwgMC4wMDAzMTEsIDAuMDAwMzExLCAwLjAwMDMxMSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjA2NTM0NDU7Ci0gICAgZnVuY3Rpb24gOiAiKCEoKCEoQTBOK0ExTikpK0IwKSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEwTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjE0NDE1LCAwLjMwMzM1NywgMC44MDY4NDIsIDEuMjUwNzIsIDEuODQyNjUsIDMuMDI2NTIsIDMuNzY2NSIsIFwKLSAgICAgICAgICAiMC4yMjYxNzIsIDAuMzE1MTIsIDAuODE4NTAyLCAxLjI2MjU2LCAxLjg1NDQ2LCAzLjAzODQ0LCAzLjc3ODE3IiwgXAotICAgICAgICAgICIwLjI0MTU2NCwgMC4zMzA1MzEsIDAuODMzOTMzLCAxLjI3NzkzLCAxLjg2OTg3LCAzLjA1Mzc0LCAzLjc5MzgzIiwgXAotICAgICAgICAgICIwLjI1Njg3MiwgMC4zNDU4MjMsIDAuODQ5Mjc2LCAxLjI5MzI4LCAxLjg4NTQ2LCAzLjA2OTA4LCAzLjgwODk5IiwgXAotICAgICAgICAgICIwLjI3MTg5OSwgMC4zNjA4NzMsIDAuODY0MzQ2LCAxLjMwODM1LCAxLjkwMDMxLCAzLjA4NDIsIDMuODI0MDUiLCBcCi0gICAgICAgICAgIjAuMjk1MzA3LCAwLjM4NDI4MiwgMC44ODc3NywgMS4zMzE4LCAxLjkyMzc2LCAzLjEwNzYxLCAzLjg0NzU0IiwgXAotICAgICAgICAgICIwLjMxMzkyMywgMC40MDI5MzEsIDAuOTA2NDM4LCAxLjM1MDQ3LCAxLjk0MjQ0LCAzLjEyNjI5LCAzLjg2NjIxIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMyMjQwOCwgMC40OTYyNjEsIDEuNDgyMjUsIDIuMzQ4MTMsIDMuNTA1MDgsIDUuODIxNTYsIDcuMjYxNDciLCBcCi0gICAgICAgICAgIjAuMzIyMzExLCAwLjQ5NjEwMiwgMS40Nzk1MywgMi4zNTE2LCAzLjUwNTY2LCA1LjgyMDI2LCA3LjI2MTA1IiwgXAotICAgICAgICAgICIwLjMyMTUxOCwgMC40OTQ5ODMsIDEuNDgxNzUsIDIuMzQ3ODUsIDMuNTA1MDMsIDUuODIxNDYsIDcuMjYxNTEiLCBcCi0gICAgICAgICAgIjAuMzIyNDEyLCAwLjQ5NTg5MywgMS40ODE3NCwgMi4zNDc1OCwgMy41MTE2MiwgNS44MjA3MSwgNy4yNjA5OCIsIFwKLSAgICAgICAgICAiMC4zMjIzNTMsIDAuNDk2MDg5LCAxLjQ3OTM1LCAyLjM0NzM3LCAzLjUwNTE3LCA1LjgxOTk4LCA3LjI2MDgyIiwgXAotICAgICAgICAgICIwLjMyMTQxOCwgMC40OTYxNDQsIDEuNDc5MzQsIDIuMzQ3NjQsIDMuNTA0ODcsIDUuODIwMjQsIDcuMjYwNzciLCBcCi0gICAgICAgICAgIjAuMzIyNDU4LCAwLjQ5NTAwMywgMS40Nzk0OCwgMi4zNDcxNywgMy41MDUyOSwgNS44MTk3LCA3LjI2MDY1Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE4MDI5MiwgMC4yMjk5MzcsIDAuNTA5ODk3LCAwLjc1Njg4NiwgMS4wODYyLCAxLjc0NDcxLCAyLjE1NjA4IiwgXAotICAgICAgICAgICIwLjE5MTY4LCAwLjI0MTMyMSwgMC41MjEyODEsIDAuNzY4Mjc4LCAxLjA5NzQ5LCAxLjc1NjI1LCAyLjE2NzQ1IiwgXAotICAgICAgICAgICIwLjIwNDU1NSwgMC4yNTQyMDQsIDAuNTM0MTUsIDAuNzgxMjQyLCAxLjExMDYyLCAxLjc2ODk4LCAyLjE4MTk0IiwgXAotICAgICAgICAgICIwLjIxNzEsIDAuMjY2NzUsIDAuNTQ2NzI1LCAwLjc5MzY4NywgMS4xMjM0MywgMS43ODE0OSwgMi4xOTI5NyIsIFwKLSAgICAgICAgICAiMC4yMjk0MzIsIDAuMjc5MDc5LCAwLjU1OTA2MiwgMC44MDYwMjUsIDEuMTM1MjgsIDEuNzkzNjksIDIuMjA1MDEiLCBcCi0gICAgICAgICAgIjAuMjQ4NTU0LCAwLjI5ODIyOSwgMC41NzgyMywgMC44MjUyMDUsIDEuMTU0NTEsIDEuODEzMiwgMi4yMjQ0NSIsIFwKLSAgICAgICAgICAiMC4yNjQ2ODYsIDAuMzE0Mzc0LCAwLjU5NDQzLCAwLjg0MTMzNywgMS4xNzA4NywgMS44Mjg5MiwgMi4yNDEzMSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xODc0MTMsIDAuMjgzNTY2LCAwLjgzODIxMSwgMS4zMjQ4MywgMS45ODAzNCwgMy4yOTMwMSwgNC4xMDA2MyIsIFwKLSAgICAgICAgICAiMC4xODc0MzQsIDAuMjgzNTc3LCAwLjgzODIxMywgMS4zMjQ3LCAxLjk3ODE3LCAzLjI4OTIyLCA0LjEwMDc3IiwgXAotICAgICAgICAgICIwLjE4NzM4MiwgMC4yODM1NywgMC44MzgyMDQsIDEuMzI2NzYsIDEuOTgwMjcsIDMuMjg5MDIsIDQuMTEwNjYiLCBcCi0gICAgICAgICAgIjAuMTg3MzYxLCAwLjI4MzU3NSwgMC44MzgyMDQsIDEuMzI1NzgsIDEuOTc4MywgMy4yOTU1NiwgNC4xMDI1IiwgXAotICAgICAgICAgICIwLjE4NzM0OSwgMC4yODM1NDcsIDAuODM4MjAyLCAxLjMyNTg2LCAxLjk3ODE0LCAzLjI4NDgxLCA0LjEwNDE0IiwgXAotICAgICAgICAgICIwLjE4NzQ5OCwgMC4yODM2MjYsIDAuODM4MjA0LCAxLjMyNTQ1LCAxLjk3ODUxLCAzLjI4OTk1LCA0LjEwMDQ5IiwgXAotICAgICAgICAgICIwLjE4Nzg0NSwgMC4yODM3OTksIDAuODM1MzI3LCAxLjMyOTgzLCAxLjk4MDE2LCAzLjI4NTc3LCA0LjExMDQ4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkExTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjA4NTMxLCAwLjI5NzQ1NiwgMC44MDA3NDcsIDEuMjQ0ODMsIDEuODM2ODIsIDMuMDIwOTcsIDMuNzYwNDQiLCBcCi0gICAgICAgICAgIjAuMjIwMjk2LCAwLjMwOTI3MywgMC44MTI1MjgsIDEuMjU3MjksIDEuODQ4ODIsIDMuMDMyNiwgMy43NzIyOCIsIFwKLSAgICAgICAgICAiMC4yMzU3MzgsIDAuMzI0NjEyLCAwLjgyODQ4MiwgMS4yNzI0MiwgMS44NjQ5OCwgMy4wNDgxLCAzLjc4Nzc3IiwgXAotICAgICAgICAgICIwLjI1MDM5NywgMC4zMzkzODIsIDAuODQyNjUzLCAxLjI4NzY0LCAxLjg3OTA4LCAzLjA2MzI4LCAzLjgwMjM5IiwgXAotICAgICAgICAgICIwLjI2NTQ4NywgMC4zNTQ0MjgsIDAuODU3NjUzLCAxLjMwMTcxLCAxLjg5MzgzLCAzLjA3Nzc3LCAzLjgxNzUyIiwgXAotICAgICAgICAgICIwLjI4Nzg1OSwgMC4zNzY4MDYsIDAuODgwMzU0LCAxLjMyNDM3LCAxLjkxNjYzLCAzLjEwMTE0LCAzLjg0MDI2IiwgXAotICAgICAgICAgICIwLjMwNjAxNiwgMC4zOTQ5ODcsIDAuODk4NTI5LCAxLjM0Mjg2LCAxLjkzNDg2LCAzLjExOTE0LCAzLjg1ODI2Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMyMzAyOCwgMC40OTYxNzgsIDEuNDg3ODgsIDIuMzUxMzYsIDMuNTEwOTcsIDUuODE2NTIsIDcuMjYxNSIsIFwKLSAgICAgICAgICAiMC4zMjE5MiwgMC40OTYxOTksIDEuNDgxMzgsIDIuMzQ1NzYsIDMuNTA2MTQsIDUuODE5OTksIDcuMjYxMDgiLCBcCi0gICAgICAgICAgIjAuMzIyMDAyLCAwLjQ5NTk5MSwgMS40Nzc4NywgMi4zNTM4OCwgMy41MDMxNSwgNS44MjA2MSwgNy4yNjExNiIsIFwKLSAgICAgICAgICAiMC4zMjE5ODksIDAuNDk2MTQ2LCAxLjQ4NzI0LCAyLjM0NTczLCAzLjUwNjIyLCA1LjgxNTkzLCA3LjI2MTQ1IiwgXAotICAgICAgICAgICIwLjMyMTAxNCwgMC40OTU5NzQsIDEuNDgyNTcsIDIuMzUxMjYsIDMuNTA1MjYsIDUuODIwMjgsIDcuMjYxMzEiLCBcCi0gICAgICAgICAgIjAuMzIxMDkxLCAwLjQ5NTk1NSwgMS40ODI1OCwgMi4zNTE3MSwgMy41MjMzNSwgNS44MjA5MywgNy4yNjEzNSIsIFwKLSAgICAgICAgICAiMC4zMjIwNDYsIDAuNDk1OTg5LCAxLjQ4MjU2LCAyLjM0NzU4LCAzLjUxMTEyLCA1LjgxMzk2LCA3LjI2MTE1Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE3MzQ3NywgMC4yMjMxMjUsIDAuNTAzMDkzLCAwLjc1MDA2NiwgMS4wNzkyNCwgMS43Mzc2NSwgMi4xNDk0IiwgXAotICAgICAgICAgICIwLjE4MzIyNywgMC4yMzI4OCwgMC41MTI4NTgsIDAuNzU5ODY4LCAxLjA4OTI2LCAxLjc0NzQ3LCAyLjE1ODc1IiwgXAotICAgICAgICAgICIwLjE5NjUwMSwgMC4yNDYxNTMsIDAuNTI2MTIsIDAuNzczMDkxLCAxLjEwMjY2LCAxLjc2MDg3LCAyLjE3MzUiLCBcCi0gICAgICAgICAgIjAuMjA5NzM1LCAwLjI1OTM5NSwgMC41Mzk0LCAwLjc4NjM2OCwgMS4xMTU2NCwgMS43NzQxMiwgMi4xODU3MyIsIFwKLSAgICAgICAgICAiMC4yMjI4NTEsIDAuMjcyNTU2LCAwLjU1MjU2NSwgMC43OTk1NzMsIDEuMTI5MDQsIDEuNzg3MTYsIDIuMTk5NjIiLCBcCi0gICAgICAgICAgIjAuMjQzNjc2LCAwLjI5MzM1NiwgMC41NzM0MzMsIDAuODIwMzYzLCAxLjE0OTg5LCAxLjgwNzk3LCAyLjIyMDM1IiwgXAotICAgICAgICAgICIwLjI2MDYxLCAwLjMxMDI5LCAwLjU5MDM1OSwgMC44MzczNTQsIDEuMTY3MDgsIDEuODI1MTgsIDIuMjM2NjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTg3NDA1LCAwLjI4MzU2NCwgMC44MzgyMDksIDEuMzI1MTUsIDEuOTgxNTgsIDMuMjg1NjIsIDQuMTA1NzkiLCBcCi0gICAgICAgICAgIjAuMTg3NDgxLCAwLjI4MzU0LCAwLjgzODIxNiwgMS4zMjQ1OSwgMS45ODE3MywgMy4yODQ4NSwgNC4xMTIyOCIsIFwKLSAgICAgICAgICAiMC4xODczNywgMC4yODM1NzUsIDAuODM4MjA1LCAxLjMyNTU2LCAxLjk3OTE4LCAzLjI4NTk5LCA0LjEwNTAyIiwgXAotICAgICAgICAgICIwLjE4NzM2MSwgMC4yODM1NTYsIDAuODM4MjAzLCAxLjMyNTg2LCAxLjk4MzExLCAzLjI5Njc3LCA0LjEwNjEiLCBcCi0gICAgICAgICAgIjAuMTg3NDE0LCAwLjI4MzU5LCAwLjgzODIwMiwgMS4zMjc1NCwgMS45ODA2OCwgMy4yOTY0NSwgNC4xMDk3NiIsIFwKLSAgICAgICAgICAiMC4xODc2NiwgMC4yODM2NjMsIDAuODM2MDMsIDEuMzI5ODEsIDEuOTgwNTIsIDMuMjg1NzksIDQuMTExMSIsIFwKLSAgICAgICAgICAiMC4xODgxNzgsIDAuMjg0MDQxLCAwLjgzODI0NiwgMS4zMjUxNiwgMS45NzgzNiwgMy4yOTUwOSwgNC4xMDI0MiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTc1Nzk3LCAwLjI2NDY1NCwgMC43Njc5OSwgMS4yMTE5NiwgMS44MDQ3LCAyLjk4ODAzLCAzLjcyNzY4IiwgXAotICAgICAgICAgICIwLjE4NzExOCwgMC4yNzYxMywgMC43Nzk2MDMsIDEuMjIzNzIsIDEuODE2NiwgMi45OTk0MSwgMy43MzkwNyIsIFwKLSAgICAgICAgICAiMC4xOTk3NjgsIDAuMjg4NzY5LCAwLjc5MjA2NSwgMS4yMzYxOCwgMS44Mjg2OCwgMy4wMTI5MywgMy43NTE5NiIsIFwKLSAgICAgICAgICAiMC4yMTIxNjMsIDAuMzAxMDc5LCAwLjgwNDU5NiwgMS4yNDk0OCwgMS44NDEwMywgMy4wMjQ4NCwgMy43NjQzMiIsIFwKLSAgICAgICAgICAiMC4yMjQ0MzcsIDAuMzEzMzg2LCAwLjgxNzA0OSwgMS4yNjE2OCwgMS44NTM1OCwgMy4wMzcwMywgMy43NzY3MSIsIFwKLSAgICAgICAgICAiMC4yNDM5NTIsIDAuMzMyOTk4LCAwLjgzNjYzNCwgMS4yODE0NCwgMS44NzM5MywgMy4wNTY4NywgMy43OTY1NCIsIFwKLSAgICAgICAgICAiMC4yNjEyMywgMC4zNTAxODIsIDAuODU0NDA1LCAxLjI5ODU3LCAxLjg5MDk0LCAzLjA3NDI3LCAzLjgxMzk4Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMyMTg2OCwgMC40OTc0MzIsIDEuNDgyNTcsIDIuMzYxMTgsIDMuNTIzODYsIDUuODIxMiwgNy4yNjEyMSIsIFwKLSAgICAgICAgICAiMC4zMjE4NCwgMC40OTQ5ODUsIDEuNDgzMDYsIDIuMzUzNDcsIDMuNTIyOTEsIDUuODIwODgsIDcuMjYwODQiLCBcCi0gICAgICAgICAgIjAuMzIxODYzLCAwLjQ5NjE3NSwgMS40ODY5MSwgMi4zNTI4MywgMy41MTAzLCA1LjgyMTI1LCA3LjI2MTY2IiwgXAotICAgICAgICAgICIwLjMyMTMzMywgMC40OTU2MDIsIDEuNDgxMzgsIDIuMzUwNTksIDMuNTIyODQsIDUuODE2MzUsIDcuMjYxNDciLCBcCi0gICAgICAgICAgIjAuMzIyMzg2LCAwLjQ5NTk2OSwgMS40Nzk2LCAyLjM0NzQsIDMuNTIzMiwgNS44MTk5NywgNy4yNjEyMSIsIFwKLSAgICAgICAgICAiMC4zMjQ4OTMsIDAuNDk2MDY3LCAxLjQ4MTg4LCAyLjM0NzUzLCAzLjUxMDMxLCA1LjgyMTA2LCA3LjI2MDkzIiwgXAotICAgICAgICAgICIwLjMyODU2NSwgMC40OTc1NzgsIDEuNDc4MDksIDIuMzQ2NTQsIDMuNTA1OTksIDUuODE5NDQsIDcuMjYwODQiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTAwMzM3LCAwLjE0OTg1NCwgMC40MzAwNDMsIDAuNjc3MDYyLCAxLjAwNjQ1LCAxLjY2NSwgMi4wNzY5OCIsIFwKLSAgICAgICAgICAiMC4xMTIwMzMsIDAuMTYxNTA1LCAwLjQ0MTYzOCwgMC42ODg1OTksIDEuMDE3NzQsIDEuNjc2MiwgMi4wODc4IiwgXAotICAgICAgICAgICIwLjEyNjkyLCAwLjE3NjMwNiwgMC40NTYyMzksIDAuNzAzMzU0LCAxLjAzMjg1LCAxLjY5MTc5LCAyLjEwMzY2IiwgXAotICAgICAgICAgICIwLjE0MTg0MiwgMC4xOTA4NDgsIDAuNDcwNzc0LCAwLjcxNjc4NSwgMS4wNDMxNSwgMS43MDE4LCAyLjExMjc1IiwgXAotICAgICAgICAgICIwLjE1Njg4NywgMC4yMDYyOTQsIDAuNDg1NTMxLCAwLjczMjUyMiwgMS4wNTYwNCwgMS43MTQ1NiwgMi4xMjcwMiIsIFwKLSAgICAgICAgICAiMC4xODA3OTcsIDAuMjMwMzQ5LCAwLjUwOTA1NSwgMC43NTYxNjYsIDEuMDg1MjcsIDEuNzM2LCAyLjE0Nzk2IiwgXAotICAgICAgICAgICIwLjIwMjI5NywgMC4yNTEyNzcsIDAuNTI5NzQ4LCAwLjc3NjkyNCwgMS4xMDYsIDEuNzU1MDIsIDIuMTY2MSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xODM4NzgsIDAuMjgxNzM1LCAwLjgzNzAxNiwgMS4zMjY2NywgMS45NzkxOSwgMy4yODQ3OSwgNC4xMDEyOCIsIFwKLSAgICAgICAgICAiMC4xODM4NTcsIDAuMjgxODQ2LCAwLjgzNjUxNywgMS4zMjY1NSwgMS45NzkxNCwgMy4yODQ0OCwgNC4xMDAzMiIsIFwKLSAgICAgICAgICAiMC4xODM4NDQsIDAuMjgxNzQxLCAwLjgzNjk1NCwgMS4zMjY2OSwgMS45NzkyMywgMy4yODQ4MywgNC4xMDE1OSIsIFwKLSAgICAgICAgICAiMC4xODUyMjYsIDAuMjgxNzcsIDAuODM2NTMzLCAxLjMyNjI3LCAxLjk3OTAzLCAzLjI4NDQ0LCA0LjEwMDU2IiwgXAotICAgICAgICAgICIwLjE4ODQzMiwgMC4yODI5MzQsIDAuODM2ODYyLCAxLjMyNjM0LCAxLjk3OTA2LCAzLjI4NDc2LCA0LjEwMTEiLCBcCi0gICAgICAgICAgIjAuMTk2MTI0LCAwLjI4NzQzMiwgMC44MzY3MTEsIDEuMzI2MzMsIDEuOTc5MTEsIDMuMjg3MDksIDQuMTAwNTYiLCBcCi0gICAgICAgICAgIjAuMjA0MTksIDAuMjkzMjg5LCAwLjgzNjc3NCwgMS4zMjYzNywgMS45Nzk1LCAzLjI4NDQ5LCA0LjEwMDk3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTBOIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDE0ODcsIDAuMDAxNDksIDAuMDAxNDk0LCAwLjAwMTQ5NCwgMC4wMDE0OTUsIDAuMDAxNDk2LCAwLjAwMTQ5NiIsIFwKLSAgICAgICAgICAiMC4wMDE0NzMsIDAuMDAxNDc2LCAwLjAwMTQ4MSwgMC4wMDE0ODIsIDAuMDAxNDgyLCAwLjAwMTQ4MiwgMC4wMDE0ODIiLCBcCi0gICAgICAgICAgIjAuMDAxNDY0LCAwLjAwMTQ2OCwgMC4wMDE0NzMsIDAuMDAxNDc0LCAwLjAwMTQ3NSwgMC4wMDE0NzYsIDAuMDAxNDc1IiwgXAotICAgICAgICAgICIwLjAwMTQ1NiwgMC4wMDE0NjEsIDAuMDAxNDY4LCAwLjAwMTQ2OSwgMC4wMDE0NywgMC4wMDE0NywgMC4wMDE0NzEiLCBcCi0gICAgICAgICAgIjAuMDAxNDUxLCAwLjAwMTQ1NiwgMC4wMDE0NjQsIDAuMDAxNDY2LCAwLjAwMTQ2NywgMC4wMDE0NjcsIDAuMDAxNDY4IiwgXAotICAgICAgICAgICIwLjAwMTQ0NiwgMC4wMDE0NTEsIDAuMDAxNDYxLCAwLjAwMTQ2MywgMC4wMDE0NjQsIDAuMDAxNDY1LCAwLjAwMTQ2NSIsIFwKLSAgICAgICAgICAiMC4wMDE0NDMsIDAuMDAxNDQ5LCAwLjAwMTQ2LCAwLjAwMTQ2MiwgMC4wMDE0NjQsIDAuMDAxNDY0LCAwLjAwMTQ2NSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjA3MywgMC4wMDIwNzgsIDAuMDAyMDg1LCAwLjAwMjA4NiwgMC4wMDIwODcsIDAuMDAyMDg4LCAwLjAwMjA4OCIsIFwKLSAgICAgICAgICAiMC4wMDIwNjcsIDAuMDAyMDcyLCAwLjAwMjA3OSwgMC4wMDIwOCwgMC4wMDIwODEsIDAuMDAyMDgxLCAwLjAwMjA4MiIsIFwKLSAgICAgICAgICAiMC4wMDIwNjEsIDAuMDAyMDY3LCAwLjAwMjA3NCwgMC4wMDIwNzUsIDAuMDAyMDc2LCAwLjAwMjA3NiwgMC4wMDIwNzYiLCBcCi0gICAgICAgICAgIjAuMDAyMDU3LCAwLjAwMjA2MywgMC4wMDIwNzEsIDAuMDAyMDcyLCAwLjAwMjA3MywgMC4wMDIwNzMsIDAuMDAyMDc0IiwgXAotICAgICAgICAgICIwLjAwMjA1NCwgMC4wMDIwNjEsIDAuMDAyMDY5LCAwLjAwMjA3LCAwLjAwMjA3MSwgMC4wMDIwNzIsIDAuMDAyMDcyIiwgXAotICAgICAgICAgICIwLjAwMjA1LCAwLjAwMjA1NywgMC4wMDIwNjcsIDAuMDAyMDY4LCAwLjAwMjA2OSwgMC4wMDIwNywgMC4wMDIwNyIsIFwKLSAgICAgICAgICAiMC4wMDIwNDcsIDAuMDAyMDU1LCAwLjAwMjA2NiwgMC4wMDIwNjgsIDAuMDAyMDY5LCAwLjAwMjA3LCAwLjAwMjA3MSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkExTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxMjksIDAuMDAxMjkyLCAwLjAwMTI5NSwgMC4wMDEyOTUsIDAuMDAxMjk1LCAwLjAwMTI5NSwgMC4wMDEyOTYiLCBcCi0gICAgICAgICAgIjAuMDAxMjc4LCAwLjAwMTI4MSwgMC4wMDEyODQsIDAuMDAxMjg0LCAwLjAwMTI4NSwgMC4wMDEyODUsIDAuMDAxMjg1IiwgXAotICAgICAgICAgICIwLjAwMTI2NSwgMC4wMDEyNjgsIDAuMDAxMjcyLCAwLjAwMTI3MywgMC4wMDEyNzMsIDAuMDAxMjc0LCAwLjAwMTI3NCIsIFwKLSAgICAgICAgICAiMC4wMDEyNTMsIDAuMDAxMjU4LCAwLjAwMTI2NCwgMC4wMDEyNjUsIDAuMDAxMjY2LCAwLjAwMTI2NSwgMC4wMDEyNjYiLCBcCi0gICAgICAgICAgIjAuMDAxMjQ3LCAwLjAwMTI1MiwgMC4wMDEyNTksIDAuMDAxMjYsIDAuMDAxMjYxLCAwLjAwMTI2MSwgMC4wMDEyNjIiLCBcCi0gICAgICAgICAgIjAuMDAxMjM5LCAwLjAwMTI0NSwgMC4wMDEyNTUsIDAuMDAxMjU1LCAwLjAwMTI1NywgMC4wMDEyNTgsIDAuMDAxMjU5IiwgXAotICAgICAgICAgICIwLjAwMTIzNiwgMC4wMDEyNDIsIDAuMDAxMjUyLCAwLjAwMTI1NCwgMC4wMDEyNTUsIDAuMDAxMjU2LCAwLjAwMTI1NyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTkzNywgMC4wMDE5NDIsIDAuMDAxOTUsIDAuMDAxOTUxLCAwLjAwMTk1MiwgMC4wMDE5NTIsIDAuMDAxOTUzIiwgXAotICAgICAgICAgICIwLjAwMTkyNSwgMC4wMDE5MzEsIDAuMDAxOTM5LCAwLjAwMTk0LCAwLjAwMTk0MSwgMC4wMDE5NDIsIDAuMDAxOTQyIiwgXAotICAgICAgICAgICIwLjAwMTkxNiwgMC4wMDE5MjIsIDAuMDAxOTMxLCAwLjAwMTkzMiwgMC4wMDE5MzMsIDAuMDAxOTM0LCAwLjAwMTkzNCIsIFwKLSAgICAgICAgICAiMC4wMDE5MDksIDAuMDAxOTE2LCAwLjAwMTkyNiwgMC4wMDE5MjgsIDAuMDAxOTI5LCAwLjAwMTkzLCAwLjAwMTkzIiwgXAotICAgICAgICAgICIwLjAwMTkwMywgMC4wMDE5MTIsIDAuMDAxOTIzLCAwLjAwMTkyNiwgMC4wMDE5MjcsIDAuMDAxOTI4LCAwLjAwMTkyOSIsIFwKLSAgICAgICAgICAiMC4wMDE4OTgsIDAuMDAxOTA3LCAwLjAwMTkyMSwgMC4wMDE5MjQsIDAuMDAxOTI1LCAwLjAwMTkyNywgMC4wMDE5MjciLCBcCi0gICAgICAgICAgIjAuMDAxODk0LCAwLjAwMTkwNCwgMC4wMDE5MTksIDAuMDAxOTIyLCAwLjAwMTkyNCwgMC4wMDE5MjYsIDAuMDAxOTI2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTUxOCwgMC4wMDE1MTksIDAuMDAxNTIsIDAuMDAxNTE5LCAwLjAwMTUxOSwgMC4wMDE1MiwgMC4wMDE1MTkiLCBcCi0gICAgICAgICAgIjAuMDAxNTE0LCAwLjAwMTUxNiwgMC4wMDE1MTksIDAuMDAxNTE5LCAwLjAwMTUxOSwgMC4wMDE1MTksIDAuMDAxNTIxIiwgXAotICAgICAgICAgICIwLjAwMTUxLCAwLjAwMTUxNCwgMC4wMDE1MTcsIDAuMDAxNTIsIDAuMDAxNTE5LCAwLjAwMTUyLCAwLjAwMTUyMSIsIFwKLSAgICAgICAgICAiMC4wMDE1MDYsIDAuMDAxNTEsIDAuMDAxNTE3LCAwLjAwMTUxNywgMC4wMDE1MTksIDAuMDAxNTE5LCAwLjAwMTUyIiwgXAotICAgICAgICAgICIwLjAwMTUwMiwgMC4wMDE1MDcsIDAuMDAxNTE1LCAwLjAwMTUxNywgMC4wMDE1MTgsIDAuMDAxNTE4LCAwLjAwMTUxOSIsIFwKLSAgICAgICAgICAiMC4wMDE0OTgsIDAuMDAxNTA0LCAwLjAwMTUxMywgMC4wMDE1MTYsIDAuMDAxNTE3LCAwLjAwMTUxOCwgMC4wMDE1MTgiLCBcCi0gICAgICAgICAgIjAuMDAxNDk0LCAwLjAwMTUwMSwgMC4wMDE1MTIsIDAuMDAxNTE1LCAwLjAwMTUxNywgMC4wMDE1MTgsIDAuMDAxNTE4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwMzM1LCAwLjAwMDMzNiwgMC4wMDAzMzYsIDAuMDAwMzM2LCAwLjAwMDMzNSwgMC4wMDAzMzUsIDAuMDAwMzM1IiwgXAotICAgICAgICAgICIwLjAwMDMyLCAwLjAwMDMyMSwgMC4wMDAzMjMsIDAuMDAwMzIzLCAwLjAwMDMyNSwgMC4wMDAzMjMsIDAuMDAwMzIzIiwgXAotICAgICAgICAgICIwLjAwMDMxNCwgMC4wMDAzMTYsIDAuMDAwMzIsIDAuMDAwMzIxLCAwLjAwMDMyMSwgMC4wMDAzMjEsIDAuMDAwMzIxIiwgXAotICAgICAgICAgICIwLjAwMDMwOSwgMC4wMDAzMTEsIDAuMDAwMzE4LCAwLjAwMDMxOCwgMC4wMDAzMTgsIDAuMDAwMzE4LCAwLjAwMDMxOCIsIFwKLSAgICAgICAgICAiMC4wMDAzMDUsIDAuMDAwMzEsIDAuMDAwMzE2LCAwLjAwMDMxOCwgMC4wMDAzMTcsIDAuMDAwMzE3LCAwLjAwMDMxOCIsIFwKLSAgICAgICAgICAiMC4wMDAzMDEsIDAuMDAwMzA2LCAwLjAwMDMxNSwgMC4wMDAzMTYsIDAuMDAwMzE3LCAwLjAwMDMxNywgMC4wMDAzMTciLCBcCi0gICAgICAgICAgIjAuMDAwMjk4LCAwLjAwMDMwNCwgMC4wMDAzMTMsIDAuMDAwMzE1LCAwLjAwMDMxNiwgMC4wMDAzMTYsIDAuMDAwMzE2Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogQU9JMzFYTCAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChBT0kzMVhMKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMDUzMDc2ODsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQTApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDUxODc3OTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA1MTY5MDQ7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNTE4Nzc5OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDE2NSwgMC4wMDAxNjUsIDAuMDAwMTY1LCAwLjAwMDE2NSwgMC4wMDAxNjUsIDAuMDAwMTY1LCAwLjAwMDE2NSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQTEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDUzMjc4NzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA1MzA4OTU7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNTMyNzg3OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDE2NSwgMC4wMDAxNjUsIDAuMDAwMTY1LCAwLjAwMDE2NSwgMC4wMDAxNjUsIDAuMDAwMTY1LCAwLjAwMDE2NSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQTIpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDU1MjY1MTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA1NDkzMzU7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNTUyNjUxOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDA1MSwgMC4wMDAwNTEsIDAuMDAwMDUxLCAwLjAwMDA1MSwgMC4wMDAwNSwgMC4wMDAwNTEsIDAuMDAwMDUxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMTg4LCAwLjAwMDE4OCwgMC4wMDAxODgsIDAuMDAwMTg4LCAwLjAwMDE4OCwgMC4wMDAxODgsIDAuMDAwMTg4Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNTY1Mjk5OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDU2NTE3OTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA1NjUyOTk7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMDQ1LCAwLjAwMDA0NSwgMC4wMDAwNDUsIDAuMDAwMDQ1LCAwLjAwMDA0NSwgMC4wMDAwNDUsIDAuMDAwMDQ1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNTI4LCAwLjAwMDUyOSwgMC4wMDA1MjgsIDAuMDAwNTI4LCAwLjAwMDUyOCwgMC4wMDA1MjgsIDAuMDAwNTI4Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMDI0MDQ0MjsKLSAgICBmdW5jdGlvbiA6ICIoISgoKEEwIEExKSBBMikrQjApKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTAiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMxNDkzNSwgMC4zNjcwNCwgMC44MzUyNTEsIDEuNjE1NDYsIDIuMzk0MzEsIDQuMjEyMzksIDUuMjUwOTQiLCBcCi0gICAgICAgICAgIjAuMzI2NjQ2LCAwLjM3ODcxNCwgMC44NDY4MzMsIDEuNjI3MDgsIDIuNDA2OTMsIDQuMjI0NDQsIDUuMjYyNzUiLCBcCi0gICAgICAgICAgIjAuMzQxMjAxLCAwLjM5MzMwNiwgMC44NjE4MjgsIDEuNjQxNjIsIDIuNDIxNzEsIDQuMjM5MDUsIDUuMjc3MjkiLCBcCi0gICAgICAgICAgIjAuMzU1MDQzLCAwLjQwNzE0MSwgMC44NzU1MDQsIDEuNjU1MDYsIDIuNDM1MSwgNC4yNTI2NywgNS4yOTExIiwgXAotICAgICAgICAgICIwLjM2ODIsIDAuNDIwMzU3LCAwLjg4ODY1LCAxLjY2ODg2LCAyLjQ0NzY4LCA0LjI2NjExLCA1LjMwNDMiLCBcCi0gICAgICAgICAgIjAuMzg4NzEsIDAuNDQwODYyLCAwLjkwOTE0MSwgMS42ODkxLCAyLjQ2ODk3LCA0LjI4NjQ4LCA1LjMyNDgxIiwgXAotICAgICAgICAgICIwLjQwNjU2NiwgMC40NTg3MzYsIDAuOTI3MTc5LCAxLjcwNjY1LCAyLjQ4Njg5LCA0LjMwNDM3LCA1LjM0Mjg0Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjU2MjIzOSwgMC42NjQzMTIsIDEuNTc3MzEsIDMuMTAwNSwgNC42MjI1MSwgOC4xNzc1MywgMTAuMjA2MSIsIFwKLSAgICAgICAgICAiMC41NjIwMjMsIDAuNjY0MDM1LCAxLjU3OTQ1LCAzLjEwMDIyLCA0LjYyMzEzLCA4LjE3OTY5LCAxMC4yMDUyIiwgXAotICAgICAgICAgICIwLjU2MjAyNiwgMC42NjM2NTIsIDEuNTc4MDMsIDMuMTAwNDksIDQuNjIzMiwgOC4xNzk3MiwgMTAuMjA1MiIsIFwKLSAgICAgICAgICAiMC41NjIxODUsIDAuNjYzOTQ1LCAxLjU3ODczLCAzLjEwMDY0LCA0LjYyMzUsIDguMTc5MTUsIDEwLjIwNTEiLCBcCi0gICAgICAgICAgIjAuNTYyMzc1LCAwLjY2MzYyMSwgMS41Nzc3OCwgMy4xMDA1NCwgNC42MjI1MSwgOC4xNzUyNywgMTAuMjA1OSIsIFwKLSAgICAgICAgICAiMC41NjIwMzUsIDAuNjYzNjM0LCAxLjU3NzczLCAzLjEwMTk4LCA0LjYyMzMxLCA4LjE3OTM3LCAxMC4yMDYxIiwgXAotICAgICAgICAgICIwLjU2MjU0MiwgMC42NjM4MDgsIDEuNTc3OCwgMy4wOTk5OSwgNC42MjMzMiwgOC4xNzkyMywgMTAuMjA0OCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC41NDMxNjgsIDAuNjMyMzEyLCAxLjQzMjE5LCAyLjc2MjgsIDQuMDkxNTQsIDcuMTkxNjUsIDguOTYzMDMiLCBcCi0gICAgICAgICAgIjAuNTU0NTg1LCAwLjY0Mzc4NCwgMS40NDMyOSwgMi43NzQ0NywgNC4xMDMxNCwgNy4yMDMyLCA4Ljk3NDQ4IiwgXAotICAgICAgICAgICIwLjU2ODE3LCAwLjY1NzM3OCwgMS40NTY4MSwgMi43ODc2MiwgNC4xMTY2MiwgNy4yMTY3OCwgOC45ODgxNSIsIFwKLSAgICAgICAgICAiMC41ODEwNDYsIDAuNjcwMjAyLCAxLjQ2OTY5LCAyLjgwMDkxLCA0LjEyOTUxLCA3LjIyOTY4LCA5LjAwMTA3IiwgXAotICAgICAgICAgICIwLjU5MzQ1MSwgMC42ODI2NzQsIDEuNDgyMTksIDIuODEzMDcsIDQuMTQyMDIsIDcuMjQyMjIsIDkuMDEzNTIiLCBcCi0gICAgICAgICAgIjAuNjEyOTI3LCAwLjcwMjA1NCwgMS41MDIwMSwgMi44MzMwMSwgNC4xNjE2NSwgNy4yNjE4MywgOS4wMzMxNCIsIFwKLSAgICAgICAgICAiMC42Mjk3ODUsIDAuNzE4OTc2LCAxLjUxOTE1LCAyLjg1MDIsIDQuMTc4ODEsIDcuMjc4NzcsIDkuMDUwMTMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuOTQwMjkyLCAxLjEwNTk3LCAyLjYwMjg5LCA1LjA5NDc5LCA3LjU4NjI0LCAxMy4zODE2LCAxNi42OTQyIiwgXAotICAgICAgICAgICIwLjkzOTQzMywgMS4xMDYyOCwgMi42MDQ3NywgNS4wOTQyOSwgNy41ODY3MSwgMTMuMzgxNSwgMTYuNjkzOCIsIFwKLSAgICAgICAgICAiMC45NDAxNjIsIDEuMTA2MjUsIDIuNjAxOTQsIDUuMDk1NDcsIDcuNTg2MDYsIDEzLjM4MTYsIDE2LjY5NDIiLCBcCi0gICAgICAgICAgIjAuOTQwNjY2LCAxLjEwNjM4LCAyLjYwMjAxLCA1LjA5NDk5LCA3LjU4NjA0LCAxMy4zODE1LCAxNi42OTQyIiwgXAotICAgICAgICAgICIwLjkzOTYwNSwgMS4xMDY2OSwgMi42MDQ1LCA1LjA5NDYsIDcuNTg2MDEsIDEzLjM4MTUsIDE2LjY5MzgiLCBcCi0gICAgICAgICAgIjAuOTM5NTUyLCAxLjEwNTg0LCAyLjYwMjc2LCA1LjA5NTA3LCA3LjU4NjA0LCAxMy4zODE1LCAxNi42OTM4IiwgXAotICAgICAgICAgICIwLjk0MDYxNiwgMS4xMDcyOSwgMi42MDM0OCwgNS4wOTM2MSwgNy41ODYzMywgMTMuMzgwOSwgMTYuNjk0MiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzA5Mzk1LCAwLjM2MTM2OSwgMC44MjkxNjYsIDEuNjA5MTMsIDIuMzg5MTcsIDQuMjA1ODQsIDUuMjQ0MzUiLCBcCi0gICAgICAgICAgIjAuMzIxMzQzLCAwLjM3MzMzMywgMC44NDE0MTcsIDEuNjIxMiwgMi40MDA1NSwgNC4yMTc5OSwgNS4yNTYzOCIsIFwKLSAgICAgICAgICAiMC4zMzU5MjgsIDAuMzg3OTE4LCAwLjg1NTc2MywgMS42MzU5MSwgMi40MTQ2MSwgNC4yMzI1NCwgNS4yNzEwNSIsIFwKLSAgICAgICAgICAiMC4zNDk2NiwgMC40MDE2NjYsIDAuODY5NzU3LCAxLjY0OTc3LCAyLjQyODg4LCA0LjI0NjM0LCA1LjI4NDcxIiwgXAotICAgICAgICAgICIwLjM2Mjg2MSwgMC40MTQ4NzksIDAuODgyODQxLCAxLjY2Mjc1LCAyLjQ0MjY2LCA0LjI1OTgxLCA1LjI5OCIsIFwKLSAgICAgICAgICAiMC4zODM1MTgsIDAuNDM1NTk4LCAwLjkwMzc0NywgMS42ODMwOSwgMi40NjMwOCwgNC4yODA0MywgNS4zMTg3OCIsIFwKLSAgICAgICAgICAiMC40MDEwOTksIDAuNDUzMTcxLCAwLjkyMTMwNSwgMS43MDA5MSwgMi40ODA2MiwgNC4yOTc5LCA1LjMzNjMyIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjU1NjA0MSwgMC42NTc2MDksIDEuNTcxMDMsIDMuMDk0MDEsIDQuNjE4MzUsIDguMTcxNDUsIDEwLjE5OTIiLCBcCi0gICAgICAgICAgIjAuNTU2NTg5LCAwLjY1ODIwNSwgMS41NzE0OCwgMy4wOTQwNCwgNC42MTYzMiwgOC4xNzI0OCwgMTAuMTk5MyIsIFwKLSAgICAgICAgICAiMC41NTYwNDgsIDAuNjU3NjE1LCAxLjU3MjIyLCAzLjA5NTExLCA0LjYxNzU0LCA4LjE3MjE1LCAxMC4xOTgyIiwgXAotICAgICAgICAgICIwLjU1NjA2NywgMC42NTc2MTYsIDEuNTcxNDYsIDMuMDk1MDksIDQuNjE3MjEsIDguMTcyMjEsIDEwLjE5OCIsIFwKLSAgICAgICAgICAiMC41NTYwNDgsIDAuNjU4MTg3LCAxLjU3MTQzLCAzLjA5NDc2LCA0LjYxNzA4LCA4LjE3MjU2LCAxMC4xOTgxIiwgXAotICAgICAgICAgICIwLjU1NjA2OSwgMC42NTc2MDgsIDEuNTcxODEsIDMuMDk0MzEsIDQuNjE2OTksIDguMTcyMzQsIDEwLjE5NzUiLCBcCi0gICAgICAgICAgIjAuNTU2MTg5LCAwLjY1NzY5LCAxLjU3MjM2LCAzLjA5NTksIDQuNjE2OTQsIDguMTcyMTYsIDEwLjE5OTEiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuNTM3NzU3LCAwLjYyNjc4NiwgMS40MjY2MiwgMi43NTc0MywgNC4wODYyOCwgNy4xODYyOCwgOC45NTc1OCIsIFwKLSAgICAgICAgICAiMC41NDgzOTksIDAuNjM3NTQ0LCAxLjQzNzQzLCAyLjc2ODExLCA0LjA5NjksIDcuMTk2OTYsIDguOTY4MjkiLCBcCi0gICAgICAgICAgIjAuNTYxNTEzLCAwLjY1MDc0LCAxLjQ1MDczLCAyLjc4MTQ1LCA0LjExMDE4LCA3LjIxMDA4LCA4Ljk4MTUyIiwgXAotICAgICAgICAgICIwLjU3NDcyMiwgMC42NjM5NDEsIDEuNDYzNDcsIDIuNzk0NTcsIDQuMTIzMTMsIDcuMjIzNCwgOC45OTQ3IiwgXAotICAgICAgICAgICIwLjU4NzgxNywgMC42NzY4NjksIDEuNDc3MTksIDIuODA3NzcsIDQuMTM2NTUsIDcuMjM2NDksIDkuMDA3OSIsIFwKLSAgICAgICAgICAiMC42MDg2MzcsIDAuNjk3ODMzLCAxLjQ5Nzk0LCAyLjgyODYyLCA0LjE1NzE4LCA3LjI1NzU1LCA5LjAyODg1IiwgXAotICAgICAgICAgICIwLjYyNzA0LCAwLjcxNjI1MSwgMS41MTYzMSwgMi44NDcxLCA0LjE3NTg5LCA3LjI3NjAyLCA5LjA0NzQ0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjk0MDYzNCwgMS4xMDYxOSwgMi42MDMzNiwgNS4wOTU4NywgNy41ODYzNywgMTMuMzgxNiwgMTYuNjkzOSIsIFwKLSAgICAgICAgICAiMC45NDA2OTEsIDEuMTA2NjYsIDIuNjAyODksIDUuMDk0MjMsIDcuNTg2MjMsIDEzLjM4MTYsIDE2LjY5NDIiLCBcCi0gICAgICAgICAgIjAuOTM5NjkyLCAxLjEwNjcyLCAyLjYwMjYxLCA1LjA5Mzk1LCA3LjU4NjI2LCAxMy4zODEzLCAxNi42OTQyIiwgXAotICAgICAgICAgICIwLjk0MDIwOSwgMS4xMDYxNCwgMi42MDE4NiwgNS4wOTU3LCA3LjU4NTksIDEzLjM4MTUsIDE2LjY5MzgiLCBcCi0gICAgICAgICAgIjAuOTQwNjY1LCAxLjEwNjQ2LCAyLjYwMjM1LCA1LjA5NDAzLCA3LjU4NjI2LCAxMy4zODEsIDE2LjY5NDIiLCBcCi0gICAgICAgICAgIjAuOTM5NjczLCAxLjEwNTc4LCAyLjYwMzQ2LCA1LjA5NTk4LCA3LjU4NTg3LCAxMy4zODE1LCAxNi42OTM4IiwgXAotICAgICAgICAgICIwLjkzOTI4NCwgMS4xMDY2MywgMi42MDMzNiwgNS4wOTU3NSwgNy41ODYwOCwgMTMuMzgxNCwgMTYuNjk0MiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzAwODYsIDAuMzUyNTI5LCAwLjgxNzY1MSwgMS41OTE4MSwgMi4zNjY2MywgNC4xNzEzNCwgNS4yMDMwNSIsIFwKLSAgICAgICAgICAiMC4zMTI5NTksIDAuMzY0NiwgMC44MjkxMzMsIDEuNjAzOTgsIDIuMzc4MiwgNC4xODM2MSwgNS4yMTUyIiwgXAotICAgICAgICAgICIwLjMyNzU3OCwgMC4zNzkxOTUsIDAuODQ0MDM4LCAxLjYxODI5LCAyLjM5MzEyLCA0LjE5ODQyLCA1LjIyOTk4IiwgXAotICAgICAgICAgICIwLjM0MTQzNCwgMC4zOTMwNjIsIDAuODU3OTIzLCAxLjYzMjY5LCAyLjQwNjczLCA0LjIxMjE0LCA1LjI0Mzc5IiwgXAotICAgICAgICAgICIwLjM1NDczNSwgMC40MDYyOTQsIDAuODcxMDE2LCAxLjY0NTc5LCAyLjQyMDUzLCA0LjIyNTY3LCA1LjI1NzAxIiwgXAotICAgICAgICAgICIwLjM3NTEyMiwgMC40MjY4MTMsIDAuODkxNjk3LCAxLjY2NTgzLCAyLjQ0MDcxLCA0LjI0NjA1LCA1LjI3NzU1IiwgXAotICAgICAgICAgICIwLjM5MjY1OSwgMC40NDQzNjUsIDAuOTA5NDc5LCAxLjY4NDI1LCAyLjQ1ODc3LCA0LjI2MzkzLCA1LjI5NTMyIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjU0Njc1MSwgMC42NDc5NzIsIDEuNTU0MjEsIDMuMDc4NDgsIDQuNTgzMjIsIDguMTA4MTcsIDEwLjEyMDIiLCBcCi0gICAgICAgICAgIjAuNTQ2ODQsIDAuNjQ3MDc4LCAxLjU1OTExLCAzLjA2OTczLCA0LjU5NTAyLCA4LjEwODUyLCAxMC4xMjAzIiwgXAotICAgICAgICAgICIwLjU0NzEwNywgMC42NDk5OTcsIDEuNTU5NjEsIDMuMDc3NDEsIDQuNTk1MjIsIDguMTA4NjYsIDEwLjExOTMiLCBcCi0gICAgICAgICAgIjAuNTQ3MTE4LCAwLjY1MDMwMywgMS41NTQ1NywgMy4wNjg3MiwgNC41OTQ5NywgOC4xMDgyMSwgMTAuMTE5MiIsIFwKLSAgICAgICAgICAiMC41NDU1NDMsIDAuNjQ3MDE4LCAxLjU1ODA2LCAzLjA3ODU3LCA0LjU4MzY3LCA4LjEwNTkyLCAxMC4xMTk0IiwgXAotICAgICAgICAgICIwLjU0ODU5OSwgMC42NDgyOTUsIDEuNTU1OTUsIDMuMDc0NzgsIDQuNTk0ODksIDguMTA4MjgsIDEwLjEyMDIiLCBcCi0gICAgICAgICAgIjAuNTQ3MzU3LCAwLjY0Njk5NywgMS41NTQzOCwgMy4wNjc5OCwgNC41ODM0MywgOC4xMDg1LCAxMC4xMTkyIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjUyNTU1OCwgMC42MTQ3MzgsIDEuNDE0MywgMi43NDQ2NSwgNC4wNzQxNSwgNy4xNzQxOCwgOC45NDU1MyIsIFwKLSAgICAgICAgICAiMC41MzUxMzIsIDAuNjI0MzA0LCAxLjQyNDIyLCAyLjc1NDgzLCA0LjA4MzY2LCA3LjE4MzcsIDguOTU1MDQiLCBcCi0gICAgICAgICAgIjAuNTQ3NDg3LCAwLjYzNjU4OCwgMS40MzY2NywgMi43NjczMywgNC4wOTYxMywgNy4xOTYxNywgOC45Njc1IiwgXAotICAgICAgICAgICIwLjU1OTg0NCwgMC42NDkxMDEsIDEuNDQ5MTcsIDIuNzc5NzIsIDQuMTA4NTUsIDcuMjA4NjMsIDguOTc5OTciLCBcCi0gICAgICAgICAgIjAuNTcyMzM2LCAwLjY2MTQ4NSwgMS40NjEyNSwgMi43OTIzLCA0LjEyMTA4LCA3LjIyMTE5LCA4Ljk5MjU0IiwgXAotICAgICAgICAgICIwLjU5MjM1NCwgMC42ODE0OTYsIDEuNDgxNTgsIDIuODEyMjgsIDQuMTQwOTQsIDcuMjQxMjksIDkuMDEyNjYiLCBcCi0gICAgICAgICAgIjAuNjA5ODU0LCAwLjY5OTA1NCwgMS40OTkwNCwgMi44MzAyNSwgNC4xNTg5NSwgNy4yNTg5MiwgOS4wMzAyNiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC45Mzk0MzEsIDEuMTA2MTUsIDIuNjAxNjQsIDUuMDk0MDcsIDcuNTg1NzMsIDEzLjM4MSwgMTYuNjk0MiIsIFwKLSAgICAgICAgICAiMC45Mzk4MzQsIDEuMTA3MzUsIDIuNjAyOCwgNS4wOTQyOSwgNy41ODYyOCwgMTMuMzgxNywgMTYuNjk0MiIsIFwKLSAgICAgICAgICAiMC45Mzk0NDgsIDEuMTA2MTIsIDIuNjAyNywgNS4wOTQxMSwgNy41ODYyNCwgMTMuMzgxNiwgMTYuNjk0MiIsIFwKLSAgICAgICAgICAiMC45MzkzMiwgMS4xMDcyOSwgMi42MDM1LCA1LjA5NTk2LCA3LjU4NjA4LCAxMy4zODE1LCAxNi42OTM5IiwgXAotICAgICAgICAgICIwLjk0MDY1OSwgMS4xMDYxMiwgMi42MDMzOCwgNS4wOTQyNywgNy41ODYxNSwgMTMuMzgxNiwgMTYuNjk0MiIsIFwKLSAgICAgICAgICAiMC45Mzk2MzUsIDEuMTA1NzcsIDIuNjAzNDMsIDUuMDk1NjIsIDcuNTg1ODksIDEzLjM4MTUsIDE2LjY5NDIiLCBcCi0gICAgICAgICAgIjAuOTQwNjQyLCAxLjEwNjY3LCAyLjYwMjg0LCA1LjA5MzgsIDcuNTg2MzUsIDEzLjM4MTYsIDE2LjY5NDIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjAiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI5Mjk2LCAwLjM0NTA2LCAwLjgxMzU3MywgMS41OTMzNywgMi4zNzMxMywgNC4xOTA2OSwgNS4yMjkxNCIsIFwKLSAgICAgICAgICAiMC4zMDM0MTksIDAuMzU1NTQ4LCAwLjgyNDEzNSwgMS42MDM4MSwgMi4zODM3LCA0LjIwMTI2LCA1LjIzOTcyIiwgXAotICAgICAgICAgICIwLjMxNjQ4LCAwLjM2ODYxMiwgMC44MzcwNTEsIDEuNjE2NjEsIDIuMzk2NiwgNC4yMTQ0LCA1LjI1MjY4IiwgXAotICAgICAgICAgICIwLjMyOTUzNSwgMC4zODE2NjYsIDAuODUwMTcyLCAxLjYyOTc1LCAyLjQwOTIsIDQuMjI3NjIsIDUuMjY1ODQiLCBcCi0gICAgICAgICAgIjAuMzQyNTU2LCAwLjM5NDc1MSwgMC44NjMzMDIsIDEuNjQyNzYsIDIuNDIzMDEsIDQuMjQwNTMsIDUuMjc4OTMiLCBcCi0gICAgICAgICAgIjAuMzYzNDQ3LCAwLjQxNTU3OSwgMC44ODQxNjYsIDEuNjY0MDIsIDIuNDQ0MTEsIDQuMjYxMzQsIDUuMjk5ODEiLCBcCi0gICAgICAgICAgIjAuMzgxNzIsIDAuNDMzODYsIDAuOTAyNTA0LCAxLjY4MjAyLCAyLjQ2MTQ2LCA0LjI3OTkxLCA1LjMxODE2Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjU2MjIwOSwgMC42NjM3OTcsIDEuNTc3NjQsIDMuMTAxMDQsIDQuNjIzMzIsIDguMTc5NSwgMTAuMjA1MyIsIFwKLSAgICAgICAgICAiMC41NjIzMjksIDAuNjY0MDU4LCAxLjU3ODAyLCAzLjEwMjEyLCA0LjYyMzMxLCA4LjE3OTU0LCAxMC4yMDUzIiwgXAotICAgICAgICAgICIwLjU2MjA0MiwgMC42NjQwODUsIDEuNTc3OCwgMy4wOTk5MywgNC42MjM1MywgOC4xNzUyLCAxMC4yMDYxIiwgXAotICAgICAgICAgICIwLjU2MjUzNywgMC42NjQyMDUsIDEuNTc3ODMsIDMuMTAyMzEsIDQuNjIyNTEsIDguMTc1MzMsIDEwLjIwNTEiLCBcCi0gICAgICAgICAgIjAuNTYyNDQzLCAwLjY2Mzc4NCwgMS41NzkwMiwgMy4wOTk4OSwgNC42MjMzMywgOC4xNzkyNSwgMTAuMjA1IiwgXAotICAgICAgICAgICIwLjU2MTgwNSwgMC42NjMzMDgsIDEuNTc3OCwgMy4xMDI0MiwgNC42MjI5NywgOC4xNzkwNCwgMTAuMjA2MSIsIFwKLSAgICAgICAgICAiMC41NjM4MzIsIDAuNjY0MzkxLCAxLjU3NzkxLCAzLjA5OTgzLCA0LjYyMjMzLCA4LjE3OTU3LCAxMC4yMDUxIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE2NDE4OSwgMC4xOTM5OTQsIDAuNDYxMzczLCAwLjkwNjg0OCwgMS4zNTIzNiwgMi4zOTIyMSwgMi45ODU5MyIsIFwKLSAgICAgICAgICAiMC4xNzYzNDQsIDAuMjA2MDYzLCAwLjQ3MzUwNiwgMC45MTkyOCwgMS4zNjUwOSwgMi40MDQ5MSwgMi45OTg1OSIsIFwKLSAgICAgICAgICAiMC4xOTEyMDgsIDAuMjIwOTQ4LCAwLjQ4NjU0NywgMC45MzE5OTMsIDEuMzc3ODksIDIuNDE3ODgsIDMuMDExNTIiLCBcCi0gICAgICAgICAgIjAuMjA2MTQ1LCAwLjIzNTgzNiwgMC41MDEwNjYsIDAuOTQ2Mzg5LCAxLjM5MjM5LCAyLjQzMjM3LCAzLjAyNTg3IiwgXAotICAgICAgICAgICIwLjIyMTk2OSwgMC4yNTA5MzYsIDAuNTE4MTY0LCAwLjk2MTQyLCAxLjQwNzE4LCAyLjQ0Njk3LCAzLjA0MDEyIiwgXAotICAgICAgICAgICIwLjI0NjM2NywgMC4yNzU5ODYsIDAuNTQyMTAxLCAwLjk4NCwgMS40Mjk2LCAyLjQ2OTg1LCAzLjA2MzYxIiwgXAotICAgICAgICAgICIwLjI2NzU4MSwgMC4yOTc0NDgsIDAuNTYzMjE3LCAxLjAwNDQ0LCAxLjQ1MDI1LCAyLjQ4OTkyLCAzLjA4MzMzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMyODU4NCwgMC4zODcwODcsIDAuOTE0MTc3LCAxLjc5MzgxLCAyLjY3MzU1LCA0LjcyNzM2LCA1LjkwMTc0IiwgXAotICAgICAgICAgICIwLjMyODU4MiwgMC4zODcwNTgsIDAuOTE0MTY4LCAxLjc5MzczLCAyLjY3MzUyLCA0LjcyNzgsIDUuOTAyNTIiLCBcCi0gICAgICAgICAgIjAuMzI4NiwgMC4zODcwNjMsIDAuOTE0MzA0LCAxLjc5Mzc2LCAyLjY3MzcsIDQuNzI3NjQsIDUuOTAyODEiLCBcCi0gICAgICAgICAgIjAuMzI4NTgxLCAwLjM4NzA1NiwgMC45MTQyMzcsIDEuNzkzNzksIDIuNjc0MzUsIDQuNzI3NzYsIDUuOTAyOTYiLCBcCi0gICAgICAgICAgIjAuMzI5MDkzLCAwLjM4NzExOSwgMC45MTQwNzgsIDEuNzkzNTcsIDIuNjczNjUsIDQuNzI3NzgsIDUuOTAyMzQiLCBcCi0gICAgICAgICAgIjAuMzMyNDk0LCAwLjM4OTE1MywgMC45MTQxMjEsIDEuNzkzNTUsIDIuNjc0MTEsIDQuNzI2OTUsIDUuOTAyMDMiLCBcCi0gICAgICAgICAgIjAuMzM3NTg3LCAwLjM5MjkyOCwgMC45MTQxOTIsIDEuNzkzNDQsIDIuNjczNjEsIDQuNzI3OTcsIDUuOTAyODMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxNjY5LCAwLjAwMTY2OSwgMC4wMDE2NjgsIDAuMDAxNjY2LCAwLjAwMTY2NSwgMC4wMDE2NjMsIDAuMDAxNjYyIiwgXAotICAgICAgICAgICIwLjAwMTY2NCwgMC4wMDE2NjQsIDAuMDAxNjYzLCAwLjAwMTY2MSwgMC4wMDE2NjEsIDAuMDAxNjYsIDAuMDAxNjU3IiwgXAotICAgICAgICAgICIwLjAwMTY2MiwgMC4wMDE2NjIsIDAuMDAxNjYyLCAwLjAwMTY2MSwgMC4wMDE2NjEsIDAuMDAxNjU4LCAwLjAwMTY1NiIsIFwKLSAgICAgICAgICAiMC4wMDE2NjEsIDAuMDAxNjYxLCAwLjAwMTY2MSwgMC4wMDE2NiwgMC4wMDE2NiwgMC4wMDE2NTcsIDAuMDAxNjU1IiwgXAotICAgICAgICAgICIwLjAwMTY2MSwgMC4wMDE2NjEsIDAuMDAxNjYxLCAwLjAwMTY2LCAwLjAwMTY1OSwgMC4wMDE2NTcsIDAuMDAxNjU1IiwgXAotICAgICAgICAgICIwLjAwMTY2LCAwLjAwMTY2LCAwLjAwMTY2MSwgMC4wMDE2NiwgMC4wMDE2NTksIDAuMDAxNjU2LCAwLjAwMTY1NSIsIFwKLSAgICAgICAgICAiMC4wMDE2NTksIDAuMDAxNjYsIDAuMDAxNjYsIDAuMDAxNjYsIDAuMDAxNjU5LCAwLjAwMTY1NywgMC4wMDE2NTQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDA2MDksIDAuMDAwNjA5LCAwLjAwMDYwNywgMC4wMDA2MDYsIDAuMDAwNjA0LCAwLjAwMDU5OCwgMC4wMDA1OTUiLCBcCi0gICAgICAgICAgIjAuMDAwNjAxLCAwLjAwMDYwMSwgMC4wMDA2LCAwLjAwMDU5OCwgMC4wMDA1OTYsIDAuMDAwNTkxLCAwLjAwMDU4OCIsIFwKLSAgICAgICAgICAiMC4wMDA1OTcsIDAuMDAwNTk3LCAwLjAwMDU5NywgMC4wMDA1OTYsIDAuMDAwNTk0LCAwLjAwMDU4OSwgMC4wMDA1ODUiLCBcCi0gICAgICAgICAgIjAuMDAwNTk1LCAwLjAwMDU5NiwgMC4wMDA1OTYsIDAuMDAwNTk1LCAwLjAwMDU5MiwgMC4wMDA1ODcsIDAuMDAwNTg0IiwgXAotICAgICAgICAgICIwLjAwMDU5MywgMC4wMDA1OTQsIDAuMDAwNTk1LCAwLjAwMDU5NCwgMC4wMDA1OTIsIDAuMDAwNTg3LCAwLjAwMDU4MyIsIFwKLSAgICAgICAgICAiMC4wMDA1OTEsIDAuMDAwNTkyLCAwLjAwMDU5NCwgMC4wMDA1OTMsIDAuMDAwNTkxLCAwLjAwMDU4NiwgMC4wMDA1ODIiLCBcCi0gICAgICAgICAgIjAuMDAwNTksIDAuMDAwNTksIDAuMDAwNTkzLCAwLjAwMDU5MiwgMC4wMDA1OTEsIDAuMDAwNTg2LCAwLjAwMDU4MiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkExIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDE0NzYsIDAuMDAxNDc2LCAwLjAwMTQ3NiwgMC4wMDE0NzQsIDAuMDAxNDc1LCAwLjAwMTQ3NCwgMC4wMDE0NzMiLCBcCi0gICAgICAgICAgIjAuMDAxNDc2LCAwLjAwMTQ3NiwgMC4wMDE0NzYsIDAuMDAxNDc4LCAwLjAwMTQ3MiwgMC4wMDE0NzQsIDAuMDAxNDczIiwgXAotICAgICAgICAgICIwLjAwMTQ3NSwgMC4wMDE0NzYsIDAuMDAxNDc2LCAwLjAwMTQ3NiwgMC4wMDE0NzQsIDAuMDAxNDczLCAwLjAwMTQ3MyIsIFwKLSAgICAgICAgICAiMC4wMDE0NzQsIDAuMDAxNDc1LCAwLjAwMTQ3NiwgMC4wMDE0NzUsIDAuMDAxNDc1LCAwLjAwMTQ3MywgMC4wMDE0NzMiLCBcCi0gICAgICAgICAgIjAuMDAxNDcyLCAwLjAwMTQ3MywgMC4wMDE0NzQsIDAuMDAxNDc0LCAwLjAwMTQ3NCwgMC4wMDE0NzIsIDAuMDAxNDcyIiwgXAotICAgICAgICAgICIwLjAwMTQ3MiwgMC4wMDE0NzMsIDAuMDAxNDc0LCAwLjAwMTQ3NSwgMC4wMDE0NzUsIDAuMDAxNDczLCAwLjAwMTQ3MiIsIFwKLSAgICAgICAgICAiMC4wMDE0NzEsIDAuMDAxNDcyLCAwLjAwMTQ3NCwgMC4wMDE0NzQsIDAuMDAxNDc0LCAwLjAwMTQ3MywgMC4wMDE0NzIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDA2MDksIDAuMDAwNjA5LCAwLjAwMDYwOCwgMC4wMDA2MDYsIDAuMDAwNjA0LCAwLjAwMDU5OCwgMC4wMDA1OTQiLCBcCi0gICAgICAgICAgIjAuMDAwNjAxLCAwLjAwMDYwMSwgMC4wMDA2LCAwLjAwMDYsIDAuMDAwNTk2LCAwLjAwMDU5MSwgMC4wMDA1ODciLCBcCi0gICAgICAgICAgIjAuMDAwNTk3LCAwLjAwMDU5NywgMC4wMDA1OTcsIDAuMDAwNTk1LCAwLjAwMDU5NCwgMC4wMDA1ODgsIDAuMDAwNTg1IiwgXAotICAgICAgICAgICIwLjAwMDU5NSwgMC4wMDA1OTUsIDAuMDAwNTk2LCAwLjAwMDU5NCwgMC4wMDA1OTMsIDAuMDAwNTg3LCAwLjAwMDU4NCIsIFwKLSAgICAgICAgICAiMC4wMDA1OTQsIDAuMDAwNTk0LCAwLjAwMDU5NSwgMC4wMDA1OTQsIDAuMDAwNTkyLCAwLjAwMDU4NywgMC4wMDA1ODMiLCBcCi0gICAgICAgICAgIjAuMDAwNTkxLCAwLjAwMDU5MiwgMC4wMDA1OTMsIDAuMDAwNTkzLCAwLjAwMDU5MSwgMC4wMDA1ODYsIDAuMDAwNTgzIiwgXAotICAgICAgICAgICIwLjAwMDU5LCAwLjAwMDU5LCAwLjAwMDU5MywgMC4wMDA1OTIsIDAuMDAwNTkxLCAwLjAwMDU4NiwgMC4wMDA1ODIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxMjU0LCAwLjAwMTI1NCwgMC4wMDEyNTUsIDAuMDAxMjU1LCAwLjAwMTI1NSwgMC4wMDEyNTUsIDAuMDAxMjU0IiwgXAotICAgICAgICAgICIwLjAwMTI1OCwgMC4wMDEyNTksIDAuMDAxMjU5LCAwLjAwMTI1OSwgMC4wMDEyNiwgMC4wMDEyNTksIDAuMDAxMjU5IiwgXAotICAgICAgICAgICIwLjAwMTI1OSwgMC4wMDEyNTksIDAuMDAxMjYxLCAwLjAwMTI2MSwgMC4wMDEyNjEsIDAuMDAxMjYyLCAwLjAwMTI2MSIsIFwKLSAgICAgICAgICAiMC4wMDEyNTcsIDAuMDAxMjU4LCAwLjAwMTI2MSwgMC4wMDEyNjEsIDAuMDAxMjYxLCAwLjAwMTI2MSwgMC4wMDEyNjEiLCBcCi0gICAgICAgICAgIjAuMDAxMjU2LCAwLjAwMTI1NywgMC4wMDEyNiwgMC4wMDEyNjEsIDAuMDAxMjYxLCAwLjAwMTI2MiwgMC4wMDEyNjEiLCBcCi0gICAgICAgICAgIjAuMDAxMjU1LCAwLjAwMTI1NiwgMC4wMDEyNTksIDAuMDAxMjYxLCAwLjAwMTI2MSwgMC4wMDEyNjEsIDAuMDAxMjYyIiwgXAotICAgICAgICAgICIwLjAwMTI1MywgMC4wMDEyNTQsIDAuMDAxMjU5LCAwLjAwMTI2LCAwLjAwMTI2MSwgMC4wMDEyNjEsIDAuMDAxMjYxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwNjA5LCAwLjAwMDYwOSwgMC4wMDA2MDcsIDAuMDAwNjA0LCAwLjAwMDYwNCwgMC4wMDA1OTYsIDAuMDAwNTk1IiwgXAotICAgICAgICAgICIwLjAwMDYwMSwgMC4wMDA2MDEsIDAuMDAwNjAxLCAwLjAwMDU5NywgMC4wMDA1OTYsIDAuMDAwNTkxLCAwLjAwMDU4NyIsIFwKLSAgICAgICAgICAiMC4wMDA1OTYsIDAuMDAwNTk3LCAwLjAwMDU5NywgMC4wMDA1OTYsIDAuMDAwNTkzLCAwLjAwMDU4OCwgMC4wMDA1ODUiLCBcCi0gICAgICAgICAgIjAuMDAwNTk0LCAwLjAwMDU5NSwgMC4wMDA1OTUsIDAuMDAwNTk0LCAwLjAwMDU5MiwgMC4wMDA1ODcsIDAuMDAwNTg0IiwgXAotICAgICAgICAgICIwLjAwMDU5MiwgMC4wMDA1OTMsIDAuMDAwNTk0LCAwLjAwMDU5MywgMC4wMDA1OTIsIDAuMDAwNTg3LCAwLjAwMDU4MyIsIFwKLSAgICAgICAgICAiMC4wMDA1OSwgMC4wMDA1OSwgMC4wMDA1OTMsIDAuMDAwNTkyLCAwLjAwMDU5MSwgMC4wMDA1ODYsIDAuMDAwNTgyIiwgXAotICAgICAgICAgICIwLjAwMDU4OCwgMC4wMDA1ODksIDAuMDAwNTkyLCAwLjAwMDU5MiwgMC4wMDA1OSwgMC4wMDA1ODYsIDAuMDAwNTgyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTI1NSwgMC4wMDEyNTUsIDAuMDAxMjU0LCAwLjAwMTI1NCwgMC4wMDEyNTIsIDAuMDAxMjQ5LCAwLjAwMTI0NyIsIFwKLSAgICAgICAgICAiMC4wMDEyNTIsIDAuMDAxMjUyLCAwLjAwMTI1MywgMC4wMDEyNTMsIDAuMDAxMjUxLCAwLjAwMTI1LCAwLjAwMTI0NyIsIFwKLSAgICAgICAgICAiMC4wMDEyNSwgMC4wMDEyNTEsIDAuMDAxMjUyLCAwLjAwMTI1MiwgMC4wMDEyNTIsIDAuMDAxMjUsIDAuMDAxMjQ3IiwgXAotICAgICAgICAgICIwLjAwMTI0OCwgMC4wMDEyNDgsIDAuMDAxMjUxLCAwLjAwMTI1MiwgMC4wMDEyNTEsIDAuMDAxMjQ5LCAwLjAwMTI0NyIsIFwKLSAgICAgICAgICAiMC4wMDEyNDYsIDAuMDAxMjQ3LCAwLjAwMTI1LCAwLjAwMTI1MSwgMC4wMDEyNTEsIDAuMDAxMjQ5LCAwLjAwMTI0NyIsIFwKLSAgICAgICAgICAiMC4wMDEyNDMsIDAuMDAxMjQ0LCAwLjAwMTI0OSwgMC4wMDEyNSwgMC4wMDEyNSwgMC4wMDEyNDksIDAuMDAxMjQ3IiwgXAotICAgICAgICAgICIwLjAwMTI0MSwgMC4wMDEyNDMsIDAuMDAxMjQ4LCAwLjAwMTI1LCAwLjAwMTI1LCAwLjAwMTI0OCwgMC4wMDEyNDYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDAwODMsIDAuMDAwMDgzLCAwLjAwMDA4MywgMC4wMDAwODQsIDAuMDAwMDg0LCAwLjAwMDA4MywgMC4wMDAwODMiLCBcCi0gICAgICAgICAgIjAuMDAwMDg3LCAwLjAwMDA4OCwgMC4wMDAwOSwgMC4wMDAwOSwgMC4wMDAwOTEsIDAuMDAwMDkxLCAwLjAwMDA5MSIsIFwKLSAgICAgICAgICAiMC4wMDAwODYsIDAuMDAwMDg3LCAwLjAwMDA5MSwgMC4wMDAwOTMsIDAuMDAwMDkzLCAwLjAwMDA5MywgMC4wMDAwOTQiLCBcCi0gICAgICAgICAgIjAuMDAwMDg0LCAwLjAwMDA4NSwgMC4wMDAwOTEsIDAuMDAwMDkzLCAwLjAwMDA5NCwgMC4wMDAwOTQsIDAuMDAwMDk0IiwgXAotICAgICAgICAgICIwLjAwMDA4MSwgMC4wMDAwODMsIDAuMDAwMDksIDAuMDAwMDkzLCAwLjAwMDA5NCwgMC4wMDAwOTQsIDAuMDAwMDk1IiwgXAotICAgICAgICAgICIwLjAwMDA3OCwgMC4wMDAwOCwgMC4wMDAwODgsIDAuMDAwMDkyLCAwLjAwMDA5MywgMC4wMDAwOTQsIDAuMDAwMDk1IiwgXAotICAgICAgICAgICIwLjAwMDA3NSwgMC4wMDAwNzcsIDAuMDAwMDg3LCAwLjAwMDA5MSwgMC4wMDAwOTMsIDAuMDAwMDk0LCAwLjAwMDA5NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IEFPSTMzWEwgKgotICogLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoQU9JMzNYTCkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjA4MDI0Mzc7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA1NDk3NTg7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNTQ3NjgzOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDU0OTc1ODsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxNjUsIDAuMDAwMTY1LCAwLjAwMDE2NSwgMC4wMDAxNjUsIDAuMDAwMTY1LCAwLjAwMDE2NSwgMC4wMDAxNjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiwgMC4wMDAxNjYiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEExKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA1OTAxOTM7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNTg3NzIxOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDU5MDE5MzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxNjUsIDAuMDAwMTY1LCAwLjAwMDE2NSwgMC4wMDAxNjUsIDAuMDAwMTY1LCAwLjAwMDE2NSwgMC4wMDAxNjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiwgMC4wMDAxNjYiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEEyKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2MDI0NzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA1OTc4MTM7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjAyNDc7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMDY4LCAwLjAwMDA2OCwgMC4wMDAwNjgsIDAuMDAwMDY4LCAwLjAwMDA2OCwgMC4wMDAwNjgsIDAuMDAwMDY4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMTg4LCAwLjAwMDE4OCwgMC4wMDAxODgsIDAuMDAwMTg4LCAwLjAwMDE4OCwgMC4wMDAxODgsIDAuMDAwMTg4Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjU4NTAzOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDY1ODUwMzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2NTY4NDQ7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMTY1LCAwLjAwMDE2NSwgMC4wMDAxNjUsIDAuMDAwMTY1LCAwLjAwMDE2NSwgMC4wMDAxNjUsIDAuMDAwMTY1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMTY2LCAwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY2Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCMSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjU0MTQ5OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDY1NDE0OTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2NTI4MzM7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMTY1LCAwLjAwMDE2NSwgMC4wMDAxNjUsIDAuMDAwMTY1LCAwLjAwMDE2NSwgMC4wMDAxNjUsIDAuMDAwMTY1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMTY2LCAwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY2Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCMikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjEyNzI1OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYxMjEwMTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2MTI3MjU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMDYyLCAwLjAwMDA2MiwgMC4wMDAwNjIsIDAuMDAwMDYyLCAwLjAwMDA2MiwgMC4wMDAwNjIsIDAuMDAwMDYyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMTg4LCAwLjAwMDE4OCwgMC4wMDAxODgsIDAuMDAwMTg4LCAwLjAwMDE4OCwgMC4wMDAxODgsIDAuMDAwMTg4Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMDIzNDU1NjsKLSAgICBmdW5jdGlvbiA6ICIoISgoKEIwIEIxKSBCMikrKChBMCBBMSkgQTIpKSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zNDY1OTEsIDAuMzk4OTY3LCAwLjg2NzYzNSwgMS42NDgxLCAyLjQyNzE0LCA0LjI0NTg0LCA1LjI4NDA1IiwgXAotICAgICAgICAgICIwLjM1ODQ0NywgMC40MTA2MjgsIDAuODc5NDQ0LCAxLjY1OTgsIDIuNDM5MTQsIDQuMjU3NDUsIDUuMjk1NzUiLCBcCi0gICAgICAgICAgIjAuMzczMTgzLCAwLjQyNTQwMSwgMC44OTQyMTYsIDEuNjc0MDksIDIuNDU0MjgsIDQuMjcyMDMsIDUuMzEwNDciLCBcCi0gICAgICAgICAgIjAuMzg3NTMsIDAuNDM5Nzk2LCAwLjkwODQ3OSwgMS42ODg5NCwgMi40Njc5OCwgNC4yODY2OSwgNS4zMjQ5MSIsIFwKLSAgICAgICAgICAiMC40MDEzMzIsIDAuNDUzNjA4LCAwLjkyMjI4NiwgMS43MDI3NCwgMi40ODE4NywgNC4zMDA0OCwgNS4zMzg3NSIsIFwKLSAgICAgICAgICAiMC40MjI1MjgsIDAuNDc0NzA3LCAwLjk0MzQ5NSwgMS43MjM2NSwgMi41MDM4MiwgNC4zMjE1MSwgNS4zNjAwMiIsIFwKLSAgICAgICAgICAiMC40NDA1MDQsIDAuNDkyNzI4LCAwLjk2MTcxOSwgMS43NDIxNiwgMi41MjEwMSwgNC4zMzk3LCA1LjM3Nzk5Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjYwMjc5MSwgMC43MDQ1MTcsIDEuNjE4NzgsIDMuMTQyMzgsIDQuNjY0NDEsIDguMjIyMTMsIDEwLjI0NzYiLCBcCi0gICAgICAgICAgIjAuNjAyNjY4LCAwLjcwNDc2MSwgMS42MTkwNCwgMy4xNDI3MiwgNC42Njc3LCA4LjIxNzY5LCAxMC4yNDg2IiwgXAotICAgICAgICAgICIwLjYwMjg1NSwgMC43MDQzNDYsIDEuNjIwMjEsIDMuMTQxODIsIDQuNjY1NzQsIDguMjIxNiwgMTAuMjQ3NiIsIFwKLSAgICAgICAgICAiMC42MDMwMzMsIDAuNzA0NTExLCAxLjYxODc3LCAzLjE0MjM4LCA0LjY2NDMyLCA4LjIyMTk5LCAxMC4yNDc2IiwgXAotICAgICAgICAgICIwLjYwMjc2NywgMC43MDQ1MjQsIDEuNjE4NzcsIDMuMTQyNDEsIDQuNjY3MjYsIDguMjIyMDUsIDEwLjI0NzYiLCBcCi0gICAgICAgICAgIjAuNjAyNjc5LCAwLjcwNTA3MSwgMS42MTg2LCAzLjE0Mzk2LCA0LjY2NTUzLCA4LjIyMTgzLCAxMC4yNDY4IiwgXAotICAgICAgICAgICIwLjYwMjgyNywgMC43MDQ0MjQsIDEuNjE5MTUsIDMuMTQyMjYsIDQuNjY0MywgOC4yMjIwNCwgMTAuMjQ3NyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC41OTU3NiwgMC42ODQ4MTksIDEuNDg1MDQsIDIuODE1NzMsIDQuMTQ0MTIsIDcuMjQ0MTksIDkuMDE2MSIsIFwKLSAgICAgICAgICAiMC42MDc0NzEsIDAuNjk2NTAzLCAxLjQ5NjM0LCAyLjgyNjkxLCA0LjE1NTgxLCA3LjI1NTksIDkuMDI3NzIiLCBcCi0gICAgICAgICAgIjAuNjIwNzYsIDAuNzEwMDE4LCAxLjUxMDY2LCAyLjg0MDY2LCA0LjE2OTMyLCA3LjI2OTQyLCA5LjA0MTIxIiwgXAotICAgICAgICAgICIwLjYzMzQ5OCwgMC43MjI5NDMsIDEuNTIyOTMsIDIuODUzNjcsIDQuMTgyMzksIDcuMjgyMTIsIDkuMDUzOTgiLCBcCi0gICAgICAgICAgIjAuNjQ1OTQ0LCAwLjczNTAwMywgMS41MzUzNSwgMi44NjYwNiwgNC4xOTQ3OSwgNy4yOTQ2MSwgOS4wNjY0MiIsIFwKLSAgICAgICAgICAiMC42NjUxMzksIDAuNzU0NTg1LCAxLjU1NTE5LCAyLjg4NTYyLCA0LjIxNDI2LCA3LjMxMzk4LCA5LjA4NTg2IiwgXAotICAgICAgICAgICIwLjY4MjA2LCAwLjc3MTE5MiwgMS41NzIwNiwgMi45MDI0MywgNC4yMzExOCwgNy4zMzEwOSwgOS4xMDI4NCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMS4wMzU2NiwgMS4yMDE4NSwgMi42OTY3NywgNS4xODg2OCwgNy42NzcwOSwgMTMuNDc5MywgMTYuNzkyNyIsIFwKLSAgICAgICAgICAiMS4wMzU3MiwgMS4yMDE5OCwgMi42OTY2OCwgNS4xODgwOCwgNy42Nzg5MiwgMTMuNDc5MywgMTYuNzkyNCIsIFwKLSAgICAgICAgICAiMS4wMzU2OCwgMS4yMDE4MywgMi42OTY3NiwgNS4xODg2NSwgNy42NzgwNCwgMTMuNDc5MywgMTYuNzkyNyIsIFwKLSAgICAgICAgICAiMS4wMzU3MSwgMS4yMDIxNSwgMi42OTY5NiwgNS4xODc1OSwgNy42NzgzMSwgMTMuNDc5MiwgMTYuNzkyNyIsIFwKLSAgICAgICAgICAiMS4wMzU3OCwgMS4yMDE5MiwgMi42OTY4MSwgNS4xODcwOCwgNy42Nzg3OCwgMTMuNDc5MywgMTYuNzkyNyIsIFwKLSAgICAgICAgICAiMS4wMzU1OSwgMS4yMDE5MiwgMi42OTcwOCwgNS4xODc0LCA3LjY3ODkzLCAxMy40NzkzLCAxNi43OTI4IiwgXAotICAgICAgICAgICIxLjAzNTc5LCAxLjIwMTg0LCAyLjY5NjkyLCA1LjE4Njk0LCA3LjY3ODIxLCAxMy40NzkyLCAxNi43OTI3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkExIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zNDE1ODEsIDAuMzkzNjEyLCAwLjg2MjE0MywgMS42NDE4NywgMi40MjE5NywgNC4yMzk2MiwgNS4yNzgwMSIsIFwKLSAgICAgICAgICAiMC4zNTMzMDksIDAuNDA1NDgzLCAwLjg3MzkxNiwgMS42NTM1NSwgMi40MzM2MywgNC4yNTE1NiwgNS4yODk4MiIsIFwKLSAgICAgICAgICAiMC4zNjgzMjIsIDAuNDIwNTMzLCAwLjg4OTAyMywgMS42NjkyNCwgMi40NDg4NCwgNC4yNjY0OCwgNS4zMDQ5MSIsIFwKLSAgICAgICAgICAiMC4zODI2NTcsIDAuNDM0Nzc5LCAwLjkwMzM1OCwgMS42ODM1NSwgMi40NjMxNCwgNC4yODA3OSwgNS4zMTkxNiIsIFwKLSAgICAgICAgICAiMC4zOTY0MTQsIDAuNDQ4NjA1LCAwLjkxNjk5MSwgMS42OTcyNSwgMi40NzYyOSwgNC4yOTQ4MSwgNS4zMzMwNyIsIFwKLSAgICAgICAgICAiMC40MTc0OTcsIDAuNDY5NjgyLCAwLjkzODI3NSwgMS43MTc4OSwgMi40OTg1LCA0LjMxNTk2LCA1LjM1NDE3IiwgXAotICAgICAgICAgICIwLjQzNTg2NywgMC40ODgwMjQsIDAuOTU2NzE2LCAxLjczNywgMi41MTU3OCwgNC4zMzQ0LCA1LjM3MjYzIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjU5NzMyMSwgMC42OTg5MSwgMS42MTI5MSwgMy4xMzU4OSwgNC42NTk4MSwgOC4yMTUxOSwgMTAuMjQxMyIsIFwKLSAgICAgICAgICAiMC41OTcyNzEsIDAuNjk4ODA3LCAxLjYxMjksIDMuMTM1NzMsIDQuNjYwNDIsIDguMjExODcsIDEwLjI0MjQiLCBcCi0gICAgICAgICAgIjAuNTk3NzM2LCAwLjY5ODk3OCwgMS42MTQxNiwgMy4xMzY5MiwgNC42NTk4MiwgOC4yMTUyLCAxMC4yNDI0IiwgXAotICAgICAgICAgICIwLjU5NzE4OCwgMC42OTk0NjcsIDEuNjEzMzUsIDMuMTM2ODcsIDQuNjU5ODIsIDguMjE1MjEsIDEwLjI0MjMiLCBcCi0gICAgICAgICAgIjAuNTk3Mjk2LCAwLjY5ODgzOSwgMS42MTMwMSwgMy4xMzY2OCwgNC42NjA5OCwgOC4yMTU2NywgMTAuMjQxMyIsIFwKLSAgICAgICAgICAiMC41OTc2NDIsIDAuNjk4ODc5LCAxLjYxMzI4LCAzLjEzNzY4LCA0LjY2MDc0LCA4LjIxMjcyLCAxMC4yNDIzIiwgXAotICAgICAgICAgICIwLjU5NzMzMSwgMC42OTg5MTMsIDEuNjEzMDUsIDMuMTM2NDMsIDQuNjU4NjQsIDguMjE1NjQsIDEwLjI0MTMiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuNTkxMTgyLCAwLjY4MDEyOSwgMS40ODA3MSwgMi44MTA4OCwgNC4xMzk1MywgNy4yMzk0MiwgOS4wMTE0MyIsIFwKLSAgICAgICAgICAiMC42MDE5ODEsIDAuNjkxMTQ1LCAxLjQ5MTM5LCAyLjgyMTYxLCA0LjE1MDM1LCA3LjI1MDQxLCA5LjAyMjIzIiwgXAotICAgICAgICAgICIwLjYxNTE5MiwgMC43MDQ0MjksIDEuNTA0OTcsIDIuODM0OTksIDQuMTYzNzMsIDcuMjYzNzQsIDkuMDM1NDYiLCBcCi0gICAgICAgICAgIjAuNjI4MDY2LCAwLjcxNzIzOCwgMS41MTgwNCwgMi44NDgwNywgNC4xNzY4NCwgNy4yNzY4NSwgOS4wNDg3MSIsIFwKLSAgICAgICAgICAiMC42NDEyOTMsIDAuNzMwNDI3LCAxLjUzMDk3LCAyLjg2MTMxLCA0LjE5MDAyLCA3LjI5MDE1LCA5LjA2MTg2IiwgXAotICAgICAgICAgICIwLjY2MjI1OCwgMC43NTEzNiwgMS41NTIwMywgMi44ODI1MiwgNC4yMTEyNSwgNy4zMTEyOCwgOS4wODI5OSIsIFwKLSAgICAgICAgICAiMC42ODA2MTUsIDAuNzY5ODQ0LCAxLjU2OTgxLCAyLjkwMDc1LCA0LjIyOTM5LCA3LjMyOTYzLCA5LjEwMTM4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIxLjAzNTc0LCAxLjIwMTgxLCAyLjY5Njg2LCA1LjE4NzE5LCA3LjY3ODU4LCAxMy40NzksIDE2Ljc5MjciLCBcCi0gICAgICAgICAgIjEuMDM1NzIsIDEuMjAxODQsIDIuNjk2NzYsIDUuMTg3MzksIDcuNjc4OTIsIDEzLjQ3OTMsIDE2Ljc5MjciLCBcCi0gICAgICAgICAgIjEuMDM1NzMsIDEuMjAxNzcsIDIuNjk2NjksIDUuMTg3NDUsIDcuNjc2MTcsIDEzLjQ3OTMsIDE2Ljc5MjciLCBcCi0gICAgICAgICAgIjEuMDM1NjgsIDEuMjAyMDksIDIuNjk2NjEsIDUuMTg4MiwgNy42Nzg2MiwgMTMuNDc5MywgMTYuNzkyNyIsIFwKLSAgICAgICAgICAiMS4wMzU2MSwgMS4yMDIxNCwgMi42OTczLCA1LjE4NzM5LCA3LjY3ODYyLCAxMy40NzkzLCAxNi43OTI4IiwgXAotICAgICAgICAgICIxLjAzNTcxLCAxLjIwMTg1LCAyLjY5Njg5LCA1LjE4NzcyLCA3LjY3NzE2LCAxMy40NzkyLCAxNi43OTI3IiwgXAotICAgICAgICAgICIxLjAzNTcxLCAxLjIwMTkzLCAyLjY5NzMxLCA1LjE4ODM1LCA3LjY3ODUxLCAxMy40NzkyLCAxNi43OTI3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEyIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMzUzMzUsIDAuMzg3NDU5LCAwLjg1NTczMywgMS42MzUxOSwgMi40MTU0MiwgNC4yMzI5OSwgNS4yNzE0NyIsIFwKLSAgICAgICAgICAiMC4zNDcyOTUsIDAuMzk5MzU0LCAwLjg2NzY2NCwgMS42NDc2NywgMi40MjczNiwgNC4yNDQ4NSwgNS4yODMzNSIsIFwKLSAgICAgICAgICAiMC4zNjIyOTMsIDAuNDE0MzY4LCAwLjg4MjcyNSwgMS42NjI4NSwgMi40NDIzNSwgNC4yNTk5MiwgNS4yOTgyNyIsIFwKLSAgICAgICAgICAiMC4zNzY2NywgMC40Mjg4MDgsIDAuODk3MDA2LCAxLjY3NzE2LCAyLjQ1NjA2LCA0LjI3NDU5LCA1LjMxMjc4IiwgXAotICAgICAgICAgICIwLjM5MDQyNiwgMC40NDI1OTMsIDAuOTEwODE4LCAxLjY5MDk3LCAyLjQ2OTk0LCA0LjI4ODQsIDUuMzI2NjIiLCBcCi0gICAgICAgICAgIjAuNDExNTQ3LCAwLjQ2MzY5NSwgMC45MzIxMzYsIDEuNzEyMjMsIDIuNDkxMDYsIDQuMzA5NjEsIDUuMzQ3ODkiLCBcCi0gICAgICAgICAgIjAuNDI5NDk1LCAwLjQ4MTY1MSwgMC45NTAxOTEsIDEuNzI5NjgsIDIuNTEwMjYsIDQuMzI3NjIsIDUuMzY1ODMiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuNTkxMTM5LCAwLjY5MjQxNSwgMS42MDc1MiwgMy4xMzA3MSwgNC42NTIsIDguMjA3OTgsIDEwLjIzMyIsIFwKLSAgICAgICAgICAiMC41OTA2MzUsIDAuNjkyOTQxLCAxLjYwNjM0LCAzLjEyOTk2LCA0LjY1MTM3LCA4LjIwNzc1LCAxMC4yMzMxIiwgXAotICAgICAgICAgICIwLjU5MDgyNCwgMC42OTI5MzQsIDEuNjA2MzYsIDMuMTI5NywgNC42NTIwNCwgOC4yMDc4NSwgMTAuMjMzOSIsIFwKLSAgICAgICAgICAiMC41OTA2MDUsIDAuNjkyMjI1LCAxLjYwNTg2LCAzLjEyODk1LCA0LjY1MTAyLCA4LjIwODI1LCAxMC4yMzM2IiwgXAotICAgICAgICAgICIwLjU5MDU3NSwgMC42OTI0MjEsIDEuNjA1ODgsIDMuMTI4OTMsIDQuNjUzOTEsIDguMjA4MTUsIDEwLjIzMzYiLCBcCi0gICAgICAgICAgIjAuNTkxMjAxLCAwLjY5MjM2MiwgMS42MDc1LCAzLjEyOTA4LCA0LjY1MDk0LCA4LjIwODE2LCAxMC4yMzM1IiwgXAotICAgICAgICAgICIwLjU5MTEwMSwgMC42OTI5MSwgMS42MDY0NywgMy4xMzA3NCwgNC42NTMyLCA4LjIwNDUzLCAxMC4yMzM2Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjU4MDIyMywgMC42NjkzMzUsIDEuNDY5NzYsIDIuODAwMSwgNC4xMjg3OCwgNy4yMjg2OSwgOS4wMDAyOSIsIFwKLSAgICAgICAgICAiMC41OTAxNDIsIDAuNjc5NTExLCAxLjQ3OTU3LCAyLjgwOTQxLCA0LjEzODc2LCA3LjIzODc1LCA5LjAxMDUiLCBcCi0gICAgICAgICAgIjAuNjAyMzY4LCAwLjY5MTc1MSwgMS40OTE5OSwgMi44MjIyMiwgNC4xNTA5OCwgNy4yNTEwNywgOS4wMjI3OSIsIFwKLSAgICAgICAgICAiMC42MTQ3ODEsIDAuNzAzOTA5LCAxLjUwNDQ2LCAyLjgzNDc3LCA0LjE2MzU3LCA3LjI2MzU5LCA5LjAzNTM1IiwgXAotICAgICAgICAgICIwLjYyNzI0LCAwLjcxNjQxOCwgMS41MTY5LCAyLjg0NzQ1LCA0LjE3NjE5LCA3LjI3NjE5LCA5LjA0Nzg5IiwgXAotICAgICAgICAgICIwLjY0NzE1OCwgMC43MzY0MzcsIDEuNTM2NjcsIDIuODY3MjcsIDQuMTk2MSwgNy4yOTYyNCwgOS4wNjgiLCBcCi0gICAgICAgICAgIjAuNjY0NTc4LCAwLjc1Mzk3NSwgMS41NTQsIDIuODg1MjIsIDQuMjEzOTYsIDcuMzEzODQsIDkuMDg1NTciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjEuMDM1NTgsIDEuMjAxOTEsIDIuNjk3MDQsIDUuMTg3MTIsIDcuNjc3ODMsIDEzLjQ3OTEsIDE2Ljc5MjciLCBcCi0gICAgICAgICAgIjEuMDM1NjMsIDEuMjAyMSwgMi42OTczMiwgNS4xODY3NSwgNy42Nzg0OCwgMTMuNDc5MywgMTYuNzkyOCIsIFwKLSAgICAgICAgICAiMS4wMzU3NiwgMS4yMDE4NSwgMi42OTY4LCA1LjE4ODkxLCA3LjY3NjA5LCAxMy40NzkzLCAxNi43OTIzIiwgXAotICAgICAgICAgICIxLjAzNTYxLCAxLjIwMjE0LCAyLjY5Njc0LCA1LjE4Nzc4LCA3LjY3ODUxLCAxMy40NzkzLCAxNi43OTI4IiwgXAotICAgICAgICAgICIxLjAzNTY0LCAxLjIwMjA1LCAyLjY5NzIyLCA1LjE4NzY3LCA3LjY3ODM3LCAxMy40NzkyLCAxNi43OTI3IiwgXAotICAgICAgICAgICIxLjAzNTczLCAxLjIwMTg3LCAyLjY5NzA3LCA1LjE4NzgzLCA3LjY3ODU5LCAxMy40NzkzLCAxNi43OTI2IiwgXAotICAgICAgICAgICIxLjAzNTczLCAxLjIwMTksIDIuNjk2OTcsIDUuMTg4MzEsIDcuNjc3OTIsIDEzLjQ3OSwgMTYuNzkyNyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzE1MjEyLCAwLjM2NzQxNCwgMC44MzYyODYsIDEuNjE2MTQsIDIuMzk1NTQsIDQuMjEzOTIsIDUuMjUyNTUiLCBcCi0gICAgICAgICAgIjAuMzI1Njk1LCAwLjM3Nzg5LCAwLjg0NjcyNywgMS42MjY1NSwgMi40MDcyMiwgNC4yMjQ3NSwgNS4yNjMxMSIsIFwKLSAgICAgICAgICAiMC4zMzg3MTcsIDAuMzkwOTUxLCAwLjg1OTgxOSwgMS42Mzk2NCwgMi40MjAzMSwgNC4yMzc4NSwgNS4yNzYwOCIsIFwKLSAgICAgICAgICAiMC4zNTE4NjIsIDAuNDA0MDQyLCAwLjg3MzAyNCwgMS42NTI3NiwgMi40MzMzNCwgNC4yNTA5NCwgNS4yODkyMiIsIFwKLSAgICAgICAgICAiMC4zNjQ4OTIsIDAuNDE3MTI4LCAwLjg4NjEzLCAxLjY2NjAzLCAyLjQ0NjUsIDQuMjYzOTgsIDUuMzAyMzQiLCBcCi0gICAgICAgICAgIjAuMzg1ODkxLCAwLjQzODA3MywgMC45MDcwMzgsIDEuNjg3MDQsIDIuNDY2NzEsIDQuMjg0ODYsIDUuMzIzMjkiLCBcCi0gICAgICAgICAgIjAuNDA0MTk2LCAwLjQ1NjQxNSwgMC45MjUzNywgMS43MDUxNiwgMi40ODQ3MSwgNC4zMDMzLCA1LjM0MTY4Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjYwMjczLCAwLjcwNTA2OCwgMS42MTkwOSwgMy4xNDE4MSwgNC42NjQzMywgOC4yMTk0NiwgMTAuMjQ4NiIsIFwKLSAgICAgICAgICAiMC42MDI4NjYsIDAuNzA1MDI4LCAxLjYxOTI0LCAzLjE0MTUyLCA0LjY2NTIsIDguMjIyMDQsIDEwLjI0NzciLCBcCi0gICAgICAgICAgIjAuNjAyNzk4LCAwLjcwNTA5OSwgMS42MTkxMSwgMy4xNDM5LCA0LjY2Njc4LCA4LjIxODY1LCAxMC4yNDg1IiwgXAotICAgICAgICAgICIwLjYwMjc4NiwgMC43MDUwODcsIDEuNjE4ODQsIDMuMTQxNTQsIDQuNjY2NCwgOC4yMTgyOSwgMTAuMjQ4NiIsIFwKLSAgICAgICAgICAiMC42MDI5MjYsIDAuNzA1MDEsIDEuNjE4OTksIDMuMTQzODksIDQuNjY1MTgsIDguMjIxODksIDEwLjI0NzYiLCBcCi0gICAgICAgICAgIjAuNjAyNTE4LCAwLjcwNDcxNywgMS42MTkxNywgMy4xNDI0OCwgNC42Njc2NSwgOC4yMTg3NSwgMTAuMjQ4NiIsIFwKLSAgICAgICAgICAiMC42MDM1NjEsIDAuNzA0NDYyLCAxLjYxOTIsIDMuMTQxNjIsIDQuNjY0MzgsIDguMjIxOTMsIDEwLjI0NzIiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuNTIyODEsIDAuNjExMjc5LCAxLjQwOTM0LCAyLjczOTMzLCA0LjA2ODk0LCA3LjE3MDQxLCA4Ljk0MjMxIiwgXAotICAgICAgICAgICIwLjUzNTA3NywgMC42MjM2NzMsIDEuNDIxOSwgMi43NTE3MiwgNC4wODEzMywgNy4xODI3OSwgOC45NTQ4NSIsIFwKLSAgICAgICAgICAiMC41NDg4MDQsIDAuNjM3Mzg0LCAxLjQzNTcyLCAyLjc2NTY2LCA0LjA5NTI1LCA3LjE5Njc0LCA4Ljk2ODczIiwgXAotICAgICAgICAgICIwLjU2MTc0OSwgMC42NTAyMTEsIDEuNDQ4NDEsIDIuNzc4MiwgNC4xMDgwNiwgNy4yMDk3MiwgOC45ODE2OCIsIFwKLSAgICAgICAgICAiMC41NzM4MTksIDAuNjYyNTYyLCAxLjQ2MTA0LCAyLjc5MDc0LCA0LjEyMDU5LCA3LjIyMjI3LCA4Ljk5NDI0IiwgXAotICAgICAgICAgICIwLjU5MzEzMiwgMC42ODE5OSwgMS40ODAyOCwgMi44MTA0MiwgNC4xNDAwNCwgNy4yNDE4MywgOS4wMTM4MyIsIFwKLSAgICAgICAgICAiMC42MDk4NTcsIDAuNjk4Njg1LCAxLjQ5NzI1LCAyLjgyNzQzLCA0LjE1NzE5LCA3LjI1ODgsIDkuMDMwNzkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuOTY5NjQyLCAxLjEzNTAzLCAyLjYyNjgzLCA1LjExNDY4LCA3LjYwMzg2LCAxMy40MDIxLCAxNi43MTUiLCBcCi0gICAgICAgICAgIjAuOTY5NTM5LCAxLjEzNSwgMi42MjcxMSwgNS4xMTM5NCwgNy42MDE3MiwgMTMuNDAxOSwgMTYuNzE0OSIsIFwKLSAgICAgICAgICAiMC45Njk1MTYsIDEuMTM1LCAyLjYyNzIyLCA1LjExNTQ4LCA3LjYwMzEsIDEzLjQwMjEsIDE2LjcxNDkiLCBcCi0gICAgICAgICAgIjAuOTY5NzA1LCAxLjEzNTE0LCAyLjYyNjY1LCA1LjExNDkxLCA3LjYwMzM4LCAxMy40MDE4LCAxNi43MTQzIiwgXAotICAgICAgICAgICIwLjk2OTUxNSwgMS4xMzUwNCwgMi42MjY2NSwgNS4xMTUyOSwgNy42MDQxNCwgMTMuNDAxOCwgMTYuNzE0OCIsIFwKLSAgICAgICAgICAiMC45Njk0NywgMS4xMzUxOCwgMi42MjY1OCwgNS4xMTU0MywgNy42MDMyNywgMTMuNDAyMSwgMTYuNzE0OCIsIFwKLSAgICAgICAgICAiMC45Njk1MjgsIDEuMTM1MDQsIDIuNjI2NjEsIDUuMTEzODUsIDcuNjAyNjksIDEzLjQwMjEsIDE2LjcxNDgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMwOTgxMywgMC4zNjE5NzYsIDAuODMwMzIzLCAxLjYxMDUzLCAyLjM4OTU1LCA0LjIwODAyLCA1LjI0NjI1IiwgXAotICAgICAgICAgICIwLjMyMDU4NSwgMC4zNzI3MTcsIDAuODQxMiwgMS42MjA3NywgMi40MDA3LCA0LjIxODc5LCA1LjI1NzAxIiwgXAotICAgICAgICAgICIwLjMzNDIwNSwgMC4zODYzOSwgMC44NTQ4NywgMS42MzUsIDIuNDEzOTUsIDQuMjMyNDUsIDUuMjcwNjYiLCBcCi0gICAgICAgICAgIjAuMzQ2NjksIDAuMzk4ODE5LCAwLjg2NzQ0NiwgMS42NDY5NiwgMi40Mjc0NCwgNC4yNDQ5MiwgNS4yODMxNSIsIFwKLSAgICAgICAgICAiMC4zNTk3NjQsIDAuNDExOTE2LCAwLjg4MDUzOCwgMS42NjA3OSwgMi40Mzk2MSwgNC4yNTgwOSwgNS4yOTYzNSIsIFwKLSAgICAgICAgICAiMC4zODA2NDIsIDAuNDMyNzk2LCAwLjkwMTM4NiwgMS42ODExNiwgMi40NjEyOCwgNC4yNzg3NywgNS4zMTcyMSIsIFwKLSAgICAgICAgICAiMC4zOTg5MTQsIDAuNDUxMDUxLCAwLjkxOTY1OSwgMS42OTk2OCwgMi40NzkzLCA0LjI5NzI3LCA1LjMzNTQ4Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjU5NzUyNCwgMC42OTg2NDUsIDEuNjEyNSwgMy4xMzYzMiwgNC42NjA2OSwgOC4yMTUyOSwgMTAuMjQwOCIsIFwKLSAgICAgICAgICAiMC41OTc1NDIsIDAuNjk5MzQ4LCAxLjYxMjkyLCAzLjEzNTU5LCA0LjY2MTEsIDguMjExMjYsIDEwLjI0MSIsIFwKLSAgICAgICAgICAiMC41OTc1MzcsIDAuNjk5MTM3LCAxLjYxMzksIDMuMTM2MzIsIDQuNjYwODYsIDguMjE1MjcsIDEwLjI0MDkiLCBcCi0gICAgICAgICAgIjAuNTk2OTM2LCAwLjY5OTE5LCAxLjYxMjc0LCAzLjEzNTQ1LCA0LjY2MDI1LCA4LjIxMjAzLCAxMC4yNDE5IiwgXAotICAgICAgICAgICIwLjU5Njc3OCwgMC42OTkyNTgsIDEuNjEyNzgsIDMuMTM2MDksIDQuNjYwODIsIDguMjE1MjcsIDEwLjI0MDkiLCBcCi0gICAgICAgICAgIjAuNTk2Nzg2LCAwLjY5Nzg3NSwgMS42MTI4LCAzLjEzNzUsIDQuNjU5NCwgOC4yMTQ3NCwgMTAuMjQxOSIsIFwKLSAgICAgICAgICAiMC41OTc0MjIsIDAuNjk4NjM1LCAxLjYxMzgyLCAzLjEzNzY4LCA0LjY2MTMsIDguMjEyMjQsIDEwLjI0MDkiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuNTE3NzcsIDAuNjA2NTk1LCAxLjQwNDQ1LCAyLjczNDM0LCA0LjA2Mzg5LCA3LjE2NTQ5LCA4LjkzNzMxIiwgXAotICAgICAgICAgICIwLjUyOTMyNCwgMC42MTc4MjQsIDEuNDE1ODUsIDIuNzQ1NTUsIDQuMDc1MzgsIDcuMTc3MDMsIDguOTQ5IiwgXAotICAgICAgICAgICIwLjU0MjcyNCwgMC42MzE0NjgsIDEuNDI5NDgsIDIuNzU5MjksIDQuMDg4ODksIDcuMTkwNTYsIDguOTYyNjIiLCBcCi0gICAgICAgICAgIjAuNTU1NjEyLCAwLjY0NDMzOCwgMS40NDI0NywgMi43NzI0NywgNC4xMDIzMywgNy4yMDM5OSwgOC45NzU5NSIsIFwKLSAgICAgICAgICAiMC41NjkwMjcsIDAuNjU3NTgzLCAxLjQ1NTg4LCAyLjc4NjA1LCA0LjExNTY2LCA3LjIxNzE5LCA4Ljk4OTE4IiwgXAotICAgICAgICAgICIwLjU4OTc2LCAwLjY3ODQ1NiwgMS40NzY4OSwgMi44MDcxOSwgNC4xMzY4LCA3LjIzODM2LCA5LjAxMDM1IiwgXAotICAgICAgICAgICIwLjYwNzg0NCwgMC42OTY4ODgsIDEuNDk1MjcsIDIuODI1MTIsIDQuMTU0ODgsIDcuMjU2ODIsIDkuMDI4OCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC45Njk0NzcsIDEuMTM1MjEsIDIuNjI2NjMsIDUuMTE1MTksIDcuNjAzOTYsIDEzLjQwMjEsIDE2LjcxNDciLCBcCi0gICAgICAgICAgIjAuOTY5NTc2LCAxLjEzNTA0LCAyLjYyNjk3LCA1LjExNTY1LCA3LjYwMzM3LCAxMy40MDE4LCAxNi43MTQ5IiwgXAotICAgICAgICAgICIwLjk2OTU0NiwgMS4xMzUxMSwgMi42MjY0OCwgNS4xMTUzNSwgNy42MDMyOCwgMTMuNDAxOCwgMTYuNzE0OSIsIFwKLSAgICAgICAgICAiMC45Njk1MiwgMS4xMzUwNSwgMi42MjY2MiwgNS4xMTUwOCwgNy42MDM1NSwgMTMuNDAxOCwgMTYuNzE0NyIsIFwKLSAgICAgICAgICAiMC45Njk2NDIsIDEuMTM1MDUsIDIuNjI2NzQsIDUuMTE1MjgsIDcuNjAzNzYsIDEzLjQwMjEsIDE2LjcxNDgiLCBcCi0gICAgICAgICAgIjAuOTY5NTEyLCAxLjEzNTA4LCAyLjYyNjQ1LCA1LjExNDg5LCA3LjYwMjA1LCAxMy40MDIxLCAxNi43MTQ4IiwgXAotICAgICAgICAgICIwLjk2OTUxMiwgMS4xMzUxMSwgMi42MjY2MywgNS4xMTM3OCwgNy42MDM1NiwgMTMuNDAxOCwgMTYuNzE0OCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzAzNTE2LCAwLjM1NTUyNSwgMC44MjM4MTIsIDEuNjAzMzUsIDIuMzgzMDEsIDQuMjAwODMsIDUuMjM5MjYiLCBcCi0gICAgICAgICAgIjAuMzE0NTQsIDAuMzY2NjIsIDAuODM0Nzc1LCAxLjYxNDU2LCAyLjM5NDY1LCA0LjIxMjA5LCA1LjI1MDQ2IiwgXAotICAgICAgICAgICIwLjMyNzQzNiwgMC4zNzk1NzQsIDAuODQ3ODg0LCAxLjYyNzM2LCAyLjQwNzg5LCA0LjIyNTE3LCA1LjI2MzMzIiwgXAotICAgICAgICAgICIwLjM0MDU2NSwgMC4zOTI2NzMsIDAuODYxMTEsIDEuNjQwNDksIDIuNDIwOTgsIDQuMjM4MzUsIDUuMjc2NSIsIFwKLSAgICAgICAgICAiMC4zNTM2MiwgMC40MDU3ODQsIDAuODc0MjI0LCAxLjY1MzUsIDIuNDM0LCA0LjI1MTMzLCA1LjI4OTc1IiwgXAotICAgICAgICAgICIwLjM3NDU1MSwgMC40MjYyMzEsIDAuODk1MTI0LCAxLjY3NDc5LCAyLjQ1NDUsIDQuMjcyMzQsIDUuMzEwNTkiLCBcCi0gICAgICAgICAgIjAuMzkyODUzLCAwLjQ0NDk3MiwgMC45MTM0NDEsIDEuNjkyOTEsIDIuNDcyMzcsIDQuMjkwNjcsIDUuMzI5MDgiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuNTkwMTcyLCAwLjY5MjM2OSwgMS42MDY4OSwgMy4xMjg1NywgNC42NTE1OCwgOC4yMDY5MiwgMTAuMjMzOSIsIFwKLSAgICAgICAgICAiMC41OTAyNSwgMC42OTIzMTUsIDEuNjA1MjgsIDMuMTI4NjYsIDQuNjUxMDUsIDguMjA3MzgsIDEwLjIzMyIsIFwKLSAgICAgICAgICAiMC41OTA0OTcsIDAuNjkyMDI4LCAxLjYwNTgxLCAzLjEzMDE0LCA0LjY1MjU4LCA4LjIwMzQyLCAxMC4yMzMyIiwgXAotICAgICAgICAgICIwLjU5MDE1NiwgMC42OTIzOTYsIDEuNjA1OSwgMy4xMjc4MiwgNC42NTI1NCwgOC4yMDQxOCwgMTAuMjMzNyIsIFwKLSAgICAgICAgICAiMC41OTAyODksIDAuNjkxNjYxLCAxLjYwNTUzLCAzLjEyNzYzLCA0LjY1MTA3LCA4LjIwNzMxLCAxMC4yMzI2IiwgXAotICAgICAgICAgICIwLjU4OTc4NCwgMC42OTE3MzYsIDEuNjA1OTUsIDMuMTI4NjcsIDQuNjUyMTgsIDguMjA0MzUsIDEwLjIzMzgiLCBcCi0gICAgICAgICAgIjAuNTkxNDA4LCAwLjY5MTc1MSwgMS42MDYxMSwgMy4xMjgwMiwgNC42NTMyOSwgOC4yMDczNSwgMTAuMjMyMiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC41MDY0NCwgMC41OTUwMDcsIDEuMzkzNjIsIDIuNzIyOTQsIDQuMDUyNjUsIDcuMTU0MTcsIDguOTI2MDEiLCBcCi0gICAgICAgICAgIjAuNTE2ODkxLCAwLjYwNTM0MywgMS40MDM2MiwgMi43MzMzOSwgNC4wNjMxMiwgNy4xNjQ2MSwgOC45MzY1NCIsIFwKLSAgICAgICAgICAiMC41Mjk2NzEsIDAuNjE4MTUzLCAxLjQxNjIxLCAyLjc0NjM5LCA0LjA3NTk2LCA3LjE3NzQ3LCA4Ljk0OTQ2IiwgXAotICAgICAgICAgICIwLjU0MTg1MSwgMC42MzA1NzksIDEuNDI4NzYsIDIuNzU4NTcsIDQuMDg4NDYsIDcuMTkwMTMsIDguOTYyMDgiLCBcCi0gICAgICAgICAgIjAuNTU0MjA2LCAwLjY0MzA1MywgMS40NDEzNSwgMi43NzEwNSwgNC4xMDEyLCA3LjIwMjcyLCA4Ljk3NDczIiwgXAotICAgICAgICAgICIwLjU3NDEzOCwgMC42NjI5NTcsIDEuNDYxNDIsIDIuNzkxMjMsIDQuMTIwOTcsIDcuMjIyODgsIDguOTk0ODciLCBcCi0gICAgICAgICAgIjAuNTkxNTQsIDAuNjgwMzQyLCAxLjQ3OTA0LCAyLjgwOTA2LCA0LjEzODksIDcuMjQwNSwgOS4wMTI1MSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC45Njk0MzEsIDEuMTM1MDIsIDIuNjI2OSwgNS4xMTQ5MiwgNy42MDM4MSwgMTMuNDAyMSwgMTYuNzE1IiwgXAotICAgICAgICAgICIwLjk2OTU3OSwgMS4xMzUwMiwgMi42MjY4NCwgNS4xMTU3MywgNy42MDM4OCwgMTMuNDAxOCwgMTYuNzE0OCIsIFwKLSAgICAgICAgICAiMC45Njk2NjQsIDEuMTM1MTQsIDIuNjI3MDUsIDUuMTE1MSwgNy42MDI4NCwgMTMuNDAyMSwgMTYuNzE0OCIsIFwKLSAgICAgICAgICAiMC45Njk0NDgsIDEuMTM1MDcsIDIuNjI3MDUsIDUuMTEzNzksIDcuNjAzMzYsIDEzLjQwMTgsIDE2LjcxNDciLCBcCi0gICAgICAgICAgIjAuOTY5NTI3LCAxLjEzNTE4LCAyLjYyNzAyLCA1LjExNDE2LCA3LjYwMzE2LCAxMy40MDIxLCAxNi43MTQ4IiwgXAotICAgICAgICAgICIwLjk2OTQ3OSwgMS4xMzUwMiwgMi42MjY2NywgNS4xMTQxNiwgNy42MDM2NiwgMTMuNDAxOCwgMTYuNzE0OCIsIFwKLSAgICAgICAgICAiMC45Njk0ODksIDEuMTM1MSwgMi42MjY3NSwgNS4xMTM4NSwgNy42MDM4OSwgMTMuNDAyMSwgMTYuNzE0OCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI1OTksIDAuMDAyNTk5LCAwLjAwMjU5OCwgMC4wMDI1OTcsIDAuMDAyNTk1LCAwLjAwMjU5LCAwLjAwMjU4NiIsIFwKLSAgICAgICAgICAiMC4wMDI1OTQsIDAuMDAyNTk0LCAwLjAwMjU5MywgMC4wMDI1OTEsIDAuMDAyNTg5LCAwLjAwMjU4NywgMC4wMDI1OCIsIFwKLSAgICAgICAgICAiMC4wMDI1OTMsIDAuMDAyNTkyLCAwLjAwMjU5MiwgMC4wMDI1OTEsIDAuMDAyNTg3LCAwLjAwMjU4NCwgMC4wMDI1ODEiLCBcCi0gICAgICAgICAgIjAuMDAyNTkxLCAwLjAwMjU5MSwgMC4wMDI1OTEsIDAuMDAyNTksIDAuMDAyNTg4LCAwLjAwMjU4MywgMC4wMDI1NzkiLCBcCi0gICAgICAgICAgIjAuMDAyNTkxLCAwLjAwMjU5MSwgMC4wMDI1OTEsIDAuMDAyNTg5LCAwLjAwMjU4NywgMC4wMDI1ODMsIDAuMDAyNTgiLCBcCi0gICAgICAgICAgIjAuMDAyNTksIDAuMDAyNTkxLCAwLjAwMjU5LCAwLjAwMjU4OSwgMC4wMDI1ODcsIDAuMDAyNTgzLCAwLjAwMjU3OSIsIFwKLSAgICAgICAgICAiMC4wMDI1OSwgMC4wMDI1OSwgMC4wMDI1OSwgMC4wMDI1ODksIDAuMDAyNTg3LCAwLjAwMjU4MiwgMC4wMDI1OCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTA3MywgMC4wMDEwNzMsIDAuMDAxMDcyLCAwLjAwMTA3LCAwLjAwMTA2NywgMC4wMDEwNiwgMC4wMDEwNTUiLCBcCi0gICAgICAgICAgIjAuMDAxMDY4LCAwLjAwMTA2OSwgMC4wMDEwNjgsIDAuMDAxMDY3LCAwLjAwMTA2MywgMC4wMDEwNTYsIDAuMDAxMDUxIiwgXAotICAgICAgICAgICIwLjAwMTA2NiwgMC4wMDEwNjYsIDAuMDAxMDY2LCAwLjAwMTA2NSwgMC4wMDEwNjIsIDAuMDAxMDU1LCAwLjAwMTA1IiwgXAotICAgICAgICAgICIwLjAwMTA2NCwgMC4wMDEwNjUsIDAuMDAxMDY1LCAwLjAwMTA2NCwgMC4wMDEwNjIsIDAuMDAxMDU1LCAwLjAwMTA0OSIsIFwKLSAgICAgICAgICAiMC4wMDEwNjIsIDAuMDAxMDYzLCAwLjAwMTA2NCwgMC4wMDEwNjMsIDAuMDAxMDYxLCAwLjAwMTA1NCwgMC4wMDEwNDkiLCBcCi0gICAgICAgICAgIjAuMDAxMDYsIDAuMDAxMDYxLCAwLjAwMTA2MywgMC4wMDEwNjMsIDAuMDAxMDYsIDAuMDAxMDU0LCAwLjAwMTA0OSIsIFwKLSAgICAgICAgICAiMC4wMDEwNTgsIDAuMDAxMDU4LCAwLjAwMTA2MiwgMC4wMDEwNjIsIDAuMDAxMDYsIDAuMDAxMDU0LCAwLjAwMTA0OSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkExIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI0MjcsIDAuMDAyNDI3LCAwLjAwMjQyNiwgMC4wMDI0MjUsIDAuMDAyNDIzLCAwLjAwMjQyLCAwLjAwMjQxNyIsIFwKLSAgICAgICAgICAiMC4wMDI0MjYsIDAuMDAyNDI2LCAwLjAwMjQyNiwgMC4wMDI0MjQsIDAuMDAyNDIzLCAwLjAwMjQyLCAwLjAwMjQxNyIsIFwKLSAgICAgICAgICAiMC4wMDI0MjYsIDAuMDAyNDI2LCAwLjAwMjQyNiwgMC4wMDI0MjUsIDAuMDAyNDI0LCAwLjAwMjQxOSwgMC4wMDI0MTciLCBcCi0gICAgICAgICAgIjAuMDAyNDI0LCAwLjAwMjQyNSwgMC4wMDI0MjYsIDAuMDAyNDI1LCAwLjAwMjQyMiwgMC4wMDI0MjEsIDAuMDAyNDE3IiwgXAotICAgICAgICAgICIwLjAwMjQyNCwgMC4wMDI0MjQsIDAuMDAyNDI1LCAwLjAwMjQyNCwgMC4wMDI0MjMsIDAuMDAyNDE5LCAwLjAwMjQxOCIsIFwKLSAgICAgICAgICAiMC4wMDI0MjIsIDAuMDAyNDIyLCAwLjAwMjQyNCwgMC4wMDI0MjMsIDAuMDAyNDIyLCAwLjAwMjQyLCAwLjAwMjQxNiIsIFwKLSAgICAgICAgICAiMC4wMDI0MjEsIDAuMDAyNDIyLCAwLjAwMjQyNCwgMC4wMDI0MjQsIDAuMDAyNDIyLCAwLjAwMjQxOSwgMC4wMDI0MTciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDEwNzMsIDAuMDAxMDczLCAwLjAwMTA3MiwgMC4wMDEwNjksIDAuMDAxMDY3LCAwLjAwMTA2LCAwLjAwMTA1NSIsIFwKLSAgICAgICAgICAiMC4wMDEwNjksIDAuMDAxMDY5LCAwLjAwMTA2OCwgMC4wMDEwNjYsIDAuMDAxMDYzLCAwLjAwMTA1NiwgMC4wMDEwNTEiLCBcCi0gICAgICAgICAgIjAuMDAxMDY2LCAwLjAwMTA2NiwgMC4wMDEwNjcsIDAuMDAxMDY0LCAwLjAwMTA2MiwgMC4wMDEwNTUsIDAuMDAxMDUiLCBcCi0gICAgICAgICAgIjAuMDAxMDY0LCAwLjAwMTA2NCwgMC4wMDEwNjUsIDAuMDAxMDY0LCAwLjAwMTA2MiwgMC4wMDEwNTUsIDAuMDAxMDUiLCBcCi0gICAgICAgICAgIjAuMDAxMDYyLCAwLjAwMTA2MywgMC4wMDEwNjQsIDAuMDAxMDYzLCAwLjAwMTA2MSwgMC4wMDEwNTQsIDAuMDAxMDQ5IiwgXAotICAgICAgICAgICIwLjAwMTA2LCAwLjAwMTA2LCAwLjAwMTA2MywgMC4wMDEwNjMsIDAuMDAxMDYsIDAuMDAxMDU0LCAwLjAwMTA0OSIsIFwKLSAgICAgICAgICAiMC4wMDEwNTgsIDAuMDAxMDU5LCAwLjAwMTA2MiwgMC4wMDEwNjIsIDAuMDAxMDYsIDAuMDAxMDU0LCAwLjAwMTA0OSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEyIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDIyMjUsIDAuMDAyMjI1LCAwLjAwMjIyNSwgMC4wMDIyMjQsIDAuMDAyMjIzLCAwLjAwMjIyMSwgMC4wMDIyMTkiLCBcCi0gICAgICAgICAgIjAuMDAyMjI5LCAwLjAwMjIyOSwgMC4wMDIyMjksIDAuMDAyMjI5LCAwLjAwMjIzLCAwLjAwMjIyNSwgMC4wMDIyMjQiLCBcCi0gICAgICAgICAgIjAuMDAyMjI5LCAwLjAwMjIzLCAwLjAwMjIzMSwgMC4wMDIyMywgMC4wMDIyMjgsIDAuMDAyMjI3LCAwLjAwMjIyNiIsIFwKLSAgICAgICAgICAiMC4wMDIyMjgsIDAuMDAyMjI4LCAwLjAwMjIzLCAwLjAwMjIzLCAwLjAwMjIyOSwgMC4wMDIyMjYsIDAuMDAyMjI0IiwgXAotICAgICAgICAgICIwLjAwMjIyNywgMC4wMDIyMjgsIDAuMDAyMjMsIDAuMDAyMjMsIDAuMDAyMjI5LCAwLjAwMjIyNywgMC4wMDIyMjYiLCBcCi0gICAgICAgICAgIjAuMDAyMjI1LCAwLjAwMjIyNiwgMC4wMDIyMjksIDAuMDAyMjI5LCAwLjAwMjIyOSwgMC4wMDIyMjcsIDAuMDAyMjI1IiwgXAotICAgICAgICAgICIwLjAwMjIyNCwgMC4wMDIyMjUsIDAuMDAyMjI4LCAwLjAwMjIyOSwgMC4wMDIyMjksIDAuMDAyMjI3LCAwLjAwMjIyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTA3NCwgMC4wMDEwNzMsIDAuMDAxMDc0LCAwLjAwMTA2OSwgMC4wMDEwNjcsIDAuMDAxMDYsIDAuMDAxMDU1IiwgXAotICAgICAgICAgICIwLjAwMTA2OCwgMC4wMDEwNjksIDAuMDAxMDY4LCAwLjAwMTA2NiwgMC4wMDEwNjQsIDAuMDAxMDU2LCAwLjAwMTA1MiIsIFwKLSAgICAgICAgICAiMC4wMDEwNjUsIDAuMDAxMDY2LCAwLjAwMTA2NywgMC4wMDEwNjQsIDAuMDAxMDYyLCAwLjAwMTA1NSwgMC4wMDEwNSIsIFwKLSAgICAgICAgICAiMC4wMDEwNjMsIDAuMDAxMDYzLCAwLjAwMTA2NSwgMC4wMDEwNjQsIDAuMDAxMDYyLCAwLjAwMTA1NSwgMC4wMDEwNSIsIFwKLSAgICAgICAgICAiMC4wMDEwNjEsIDAuMDAxMDYyLCAwLjAwMTA2NCwgMC4wMDEwNjMsIDAuMDAxMDYxLCAwLjAwMTA1NCwgMC4wMDEwNDkiLCBcCi0gICAgICAgICAgIjAuMDAxMDU4LCAwLjAwMTA1OSwgMC4wMDEwNjIsIDAuMDAxMDYyLCAwLjAwMTA2LCAwLjAwMTA1NCwgMC4wMDEwNDkiLCBcCi0gICAgICAgICAgIjAuMDAxMDU1LCAwLjAwMTA1NywgMC4wMDEwNjEsIDAuMDAxMDYxLCAwLjAwMTA1OSwgMC4wMDEwNTMsIDAuMDAxMDQ4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTk3MywgMC4wMDE5NzMsIDAuMDAxOTcyLCAwLjAwMTk3MSwgMC4wMDE5NjksIDAuMDAxOTY0LCAwLjAwMTk2IiwgXAotICAgICAgICAgICIwLjAwMTk2OCwgMC4wMDE5NjcsIDAuMDAxOTY2LCAwLjAwMTk2NiwgMC4wMDE5NjQsIDAuMDAxOTU5LCAwLjAwMTk1NiIsIFwKLSAgICAgICAgICAiMC4wMDE5NjUsIDAuMDAxOTY2LCAwLjAwMTk2NSwgMC4wMDE5NjQsIDAuMDAxOTYyLCAwLjAwMTk1NiwgMC4wMDE5NTQiLCBcCi0gICAgICAgICAgIjAuMDAxOTY0LCAwLjAwMTk2NCwgMC4wMDE5NjUsIDAuMDAxOTYzLCAwLjAwMTk2MSwgMC4wMDE5NTcsIDAuMDAxOTU0IiwgXAotICAgICAgICAgICIwLjAwMTk2MywgMC4wMDE5NjMsIDAuMDAxOTY0LCAwLjAwMTk2MiwgMC4wMDE5NjEsIDAuMDAxOTU3LCAwLjAwMTk1MyIsIFwKLSAgICAgICAgICAiMC4wMDE5NjIsIDAuMDAxOTYyLCAwLjAwMTk2MywgMC4wMDE5NjIsIDAuMDAxOTYsIDAuMDAxOTU2LCAwLjAwMTk1MyIsIFwKLSAgICAgICAgICAiMC4wMDE5NjEsIDAuMDAxOTYxLCAwLjAwMTk2MywgMC4wMDE5NjIsIDAuMDAxOTYsIDAuMDAxOTU2LCAwLjAwMTk1MyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDM0LCAwLjAwMDM0LCAwLjAwMDM0MSwgMC4wMDAzNDEsIDAuMDAwMzQxLCAwLjAwMDM0MSwgMC4wMDAzNCIsIFwKLSAgICAgICAgICAiMC4wMDAzNDUsIDAuMDAwMzQ1LCAwLjAwMDM0NywgMC4wMDAzNDcsIDAuMDAwMzQ3LCAwLjAwMDM0OCwgMC4wMDAzNDciLCBcCi0gICAgICAgICAgIjAuMDAwMzQ0LCAwLjAwMDM0NSwgMC4wMDAzNDgsIDAuMDAwMzUsIDAuMDAwMzUsIDAuMDAwMzUsIDAuMDAwMzUiLCBcCi0gICAgICAgICAgIjAuMDAwMzQzLCAwLjAwMDM0NCwgMC4wMDAzNDgsIDAuMDAwMzUsIDAuMDAwMzUxLCAwLjAwMDM1MSwgMC4wMDAzNTEiLCBcCi0gICAgICAgICAgIjAuMDAwMzQxLCAwLjAwMDM0MiwgMC4wMDAzNDgsIDAuMDAwMzUsIDAuMDAwMzUxLCAwLjAwMDM1MiwgMC4wMDAzNTIiLCBcCi0gICAgICAgICAgIjAuMDAwMzM4LCAwLjAwMDMzOSwgMC4wMDAzNDcsIDAuMDAwMzUsIDAuMDAwMzUxLCAwLjAwMDM1MiwgMC4wMDAzNTIiLCBcCi0gICAgICAgICAgIjAuMDAwMzM1LCAwLjAwMDMzNywgMC4wMDAzNDYsIDAuMDAwMzQ5LCAwLjAwMDM1MSwgMC4wMDAzNTIsIDAuMDAwMzUyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTc5MiwgMC4wMDE3OTIsIDAuMDAxNzkxLCAwLjAwMTc5LCAwLjAwMTc4OSwgMC4wMDE3ODUsIDAuMDAxNzgyIiwgXAotICAgICAgICAgICIwLjAwMTc5MSwgMC4wMDE3OTEsIDAuMDAxNzksIDAuMDAxNzksIDAuMDAxNzg4LCAwLjAwMTc4NywgMC4wMDE3ODIiLCBcCi0gICAgICAgICAgIjAuMDAxNzksIDAuMDAxNzksIDAuMDAxNzksIDAuMDAxNzg5LCAwLjAwMTc4OCwgMC4wMDE3ODQsIDAuMDAxNzgzIiwgXAotICAgICAgICAgICIwLjAwMTc4OCwgMC4wMDE3ODksIDAuMDAxNzksIDAuMDAxNzksIDAuMDAxNzg4LCAwLjAwMTc4NSwgMC4wMDE3ODIiLCBcCi0gICAgICAgICAgIjAuMDAxNzg3LCAwLjAwMTc4OCwgMC4wMDE3ODksIDAuMDAxNzg5LCAwLjAwMTc4OCwgMC4wMDE3ODQsIDAuMDAxNzgyIiwgXAotICAgICAgICAgICIwLjAwMTc4NSwgMC4wMDE3ODYsIDAuMDAxNzg4LCAwLjAwMTc4OCwgMC4wMDE3ODcsIDAuMDAxNzg0LCAwLjAwMTc4MiIsIFwKLSAgICAgICAgICAiMC4wMDE3ODQsIDAuMDAxNzg1LCAwLjAwMTc4OCwgMC4wMDE3ODgsIDAuMDAxNzg3LCAwLjAwMTc4NCwgMC4wMDE3ODEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDAzNCwgMC4wMDAzNCwgMC4wMDAzNCwgMC4wMDAzNDEsIDAuMDAwMzQxLCAwLjAwMDM0LCAwLjAwMDM0IiwgXAotICAgICAgICAgICIwLjAwMDM0NSwgMC4wMDAzNDUsIDAuMDAwMzQ3LCAwLjAwMDM0NywgMC4wMDAzNDcsIDAuMDAwMzQ4LCAwLjAwMDM0OCIsIFwKLSAgICAgICAgICAiMC4wMDAzNDQsIDAuMDAwMzQ1LCAwLjAwMDM0OCwgMC4wMDAzNSwgMC4wMDAzNSwgMC4wMDAzNSwgMC4wMDAzNSIsIFwKLSAgICAgICAgICAiMC4wMDAzNDMsIDAuMDAwMzQ0LCAwLjAwMDM0OSwgMC4wMDAzNSwgMC4wMDAzNTEsIDAuMDAwMzUxLCAwLjAwMDM1MSIsIFwKLSAgICAgICAgICAiMC4wMDAzNDEsIDAuMDAwMzQyLCAwLjAwMDM0OCwgMC4wMDAzNSwgMC4wMDAzNTEsIDAuMDAwMzUyLCAwLjAwMDM1MiIsIFwKLSAgICAgICAgICAiMC4wMDAzMzgsIDAuMDAwMzM5LCAwLjAwMDM0NywgMC4wMDAzNSwgMC4wMDAzNTEsIDAuMDAwMzUyLCAwLjAwMDM1MiIsIFwKLSAgICAgICAgICAiMC4wMDAzMzUsIDAuMDAwMzM3LCAwLjAwMDM0NiwgMC4wMDAzNDksIDAuMDAwMzUxLCAwLjAwMDM1MiwgMC4wMDAzNTIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxNTgzLCAwLjAwMTU4MywgMC4wMDE1ODMsIDAuMDAxNTgyLCAwLjAwMTU4MiwgMC4wMDE1NzksIDAuMDAxNTc3IiwgXAotICAgICAgICAgICIwLjAwMTU4NiwgMC4wMDE1ODcsIDAuMDAxNTg3LCAwLjAwMTU4NywgMC4wMDE1ODcsIDAuMDAxNTg0LCAwLjAwMTU4MyIsIFwKLSAgICAgICAgICAiMC4wMDE1ODYsIDAuMDAxNTg2LCAwLjAwMTU4OCwgMC4wMDE1ODgsIDAuMDAxNTg3LCAwLjAwMTU4MywgMC4wMDE1ODMiLCBcCi0gICAgICAgICAgIjAuMDAxNTg1LCAwLjAwMTU4NSwgMC4wMDE1ODcsIDAuMDAxNTg4LCAwLjAwMTU4NywgMC4wMDE1ODYsIDAuMDAxNTgzIiwgXAotICAgICAgICAgICIwLjAwMTU4MywgMC4wMDE1ODQsIDAuMDAxNTg3LCAwLjAwMTU4NywgMC4wMDE1ODcsIDAuMDAxNTg1LCAwLjAwMTU4NCIsIFwKLSAgICAgICAgICAiMC4wMDE1ODEsIDAuMDAxNTgxLCAwLjAwMTU4NiwgMC4wMDE1ODcsIDAuMDAxNTg2LCAwLjAwMTU4NSwgMC4wMDE1ODMiLCBcCi0gICAgICAgICAgIjAuMDAxNTc5LCAwLjAwMTU4MSwgMC4wMDE1ODUsIDAuMDAxNTg3LCAwLjAwMTU4NiwgMC4wMDE1ODQsIDAuMDAxNTgzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwMzQsIDAuMDAwMzQsIDAuMDAwMzQxLCAwLjAwMDM0MSwgMC4wMDAzNDEsIDAuMDAwMzQxLCAwLjAwMDM0IiwgXAotICAgICAgICAgICIwLjAwMDM0NCwgMC4wMDAzNDUsIDAuMDAwMzQ3LCAwLjAwMDM0NywgMC4wMDAzNDgsIDAuMDAwMzQ4LCAwLjAwMDM0OCIsIFwKLSAgICAgICAgICAiMC4wMDAzNDQsIDAuMDAwMzQ1LCAwLjAwMDM0OCwgMC4wMDAzNSwgMC4wMDAzNSwgMC4wMDAzNTEsIDAuMDAwMzUiLCBcCi0gICAgICAgICAgIjAuMDAwMzQyLCAwLjAwMDM0MywgMC4wMDAzNDgsIDAuMDAwMzUsIDAuMDAwMzUxLCAwLjAwMDM1MSwgMC4wMDAzNTEiLCBcCi0gICAgICAgICAgIjAuMDAwMzQsIDAuMDAwMzQxLCAwLjAwMDM0OCwgMC4wMDAzNSwgMC4wMDAzNTEsIDAuMDAwMzUyLCAwLjAwMDM1MiIsIFwKLSAgICAgICAgICAiMC4wMDAzMzYsIDAuMDAwMzM4LCAwLjAwMDM0NiwgMC4wMDAzNSwgMC4wMDAzNTEsIDAuMDAwMzUyLCAwLjAwMDM1MiIsIFwKLSAgICAgICAgICAiMC4wMDAzMzMsIDAuMDAwMzM2LCAwLjAwMDM0NSwgMC4wMDAzNDksIDAuMDAwMzUxLCAwLjAwMDM1MiwgMC4wMDAzNTIiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IEJNWElYNCAqCi0gKiAtLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKEJNWElYNCkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjM0NTE5OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA5MjQwOTU7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwOTIwNDY7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwOTI0MDk1OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDMxOCwgMC4wMDAzMjEsIDAuMDAwMzIzLCAwLjAwMDMyMywgMC4wMDAzMjQsIDAuMDAwMzI0LCAwLjAwMDMyNCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDMzNSwgMC4wMDAzMzIsIDAuMDAwMzMyLCAwLjAwMDMzMiwgMC4wMDAzMzIsIDAuMDAwMzMyLCAwLjAwMDMzMiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oTTApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTE4MTk3OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTE4MTA3OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTE4MTk3OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDI5MywgMC4wMDAyNzYsIDAuMDAwMjY2LCAwLjAwMDI2MiwgMC4wMDAyNiwgMC4wMDAyNTksIDAuMDAwMjYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDE2NzgsIDAuMDAxNjY3LCAwLjAwMTY1OSwgMC4wMDE2NTcsIDAuMDAxNjU1LCAwLjAwMTY1MywgMC4wMDE2NTEiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKE0xKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDEzMzg0NDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDEzMzc5OTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDEzMzg0NDsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAzMTcsIDAuMDAwMjk4LCAwLjAwMDI4OCwgMC4wMDAyODQsIDAuMDAwMjgzLCAwLjAwMDI4LCAwLjAwMDI4MiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTM5NiwgMC4wMDEzODMsIDAuMDAxMzc2LCAwLjAwMTM3MywgMC4wMDEzNzEsIDAuMDAxMzcsIDAuMDAxMzciKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFBQTikgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjU0Mjk3NDsKLSAgICBmdW5jdGlvbiA6ICIoKFgyICgoTTAgQSkgKyAoIU0wIFMpKSkgKyAoIVgyICgoTTEgQSkgKyAoIU0xIFMpKSkpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjM3Mjg1NywgMC41NDc0MzcsIDAuNjgwODIzLCAwLjc3MjE5NywgMC45MTY1MjgsIDEuMDQyNCwgMS4yMjIiLCBcCi0gICAgICAgICAgIjAuMzg0Mjk2LCAwLjU1OTIxOSwgMC42OTI1MTIsIDAuNzgzOTYsIDAuOTI4Mjk2LCAxLjA1NDIzLCAxLjIzMzc3IiwgXAotICAgICAgICAgICIwLjM5ODQ4NSwgMC41NzMzMTEsIDAuNzA2NjAyLCAwLjc5ODAzLCAwLjk0MjM2OCwgMS4wNjgyMiwgMS4yNDc4NCIsIFwKLSAgICAgICAgICAiMC40MTIzMjksIDAuNTg3MDE1LCAwLjcyMDQsIDAuODExNzA5LCAwLjk1NjEyLCAxLjA4MiwgMS4yNjE1OSIsIFwKLSAgICAgICAgICAiMC40MjU4NDIsIDAuNjAwNzgxLCAwLjczNDIwMywgMC44MjU0NDMsIDAuOTY5ODkxLCAxLjA5NTc2LCAxLjI3NTM4IiwgXAotICAgICAgICAgICIwLjQ0NzgzNCwgMC42MjI4MDMsIDAuNzU2MDExLCAwLjg0NzQ1OCwgMC45OTE4MjMsIDEuMTE3NzMsIDEuMjk3MyIsIFwKLSAgICAgICAgICAiMC40NjcyNTMsIDAuNjQxODcxLCAwLjc3NTI1OCwgMC44NjY1NSwgMS4wMTA5OCwgMS4xMzY4NiwgMS4zMTY0NSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEyMTU5OSwgMC4zNjU3OTIsIDAuNjA2MDkxLCAwLjc4MTE0OSwgMS4wNjY0NCwgMS4zMTc5OCwgMS42Nzk2MSIsIFwKLSAgICAgICAgICAiMC4xMjE1NDksIDAuMzY1NzQ3LCAwLjYwNjI0OSwgMC43ODExMiwgMS4wNjYyNCwgMS4zMTc4LCAxLjY3ODUzIiwgXAotICAgICAgICAgICIwLjEyMTM5MiwgMC4zNjU3MTQsIDAuNjA2MjEyLCAwLjc4MTExOCwgMS4wNjYyMywgMS4zMTc5OSwgMS42Nzg1NyIsIFwKLSAgICAgICAgICAiMC4xMjE2NzcsIDAuMzY1NzE3LCAwLjYwNjI0MSwgMC43ODEyMDgsIDEuMDY2MjIsIDEuMzE3ODcsIDEuNjc5MDEiLCBcCi0gICAgICAgICAgIjAuMTIxNDgsIDAuMzY1Njk2LCAwLjYwNjE4MSwgMC43ODA4MTEsIDEuMDY2MTIsIDEuMzE3NzksIDEuNjc5IiwgXAotICAgICAgICAgICIwLjEyMTUyLCAwLjM2NTc2OCwgMC42MDYwMDIsIDAuNzgxMDY4LCAxLjA2NjI0LCAxLjMxODAyLCAxLjY3NjEzIiwgXAotICAgICAgICAgICIwLjEyMTczLCAwLjM2NTcwNCwgMC42MDU5OTMsIDAuNzgxMDY1LCAxLjA2NjA0LCAxLjMxNzc3LCAxLjY3NjY5Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzQ2NTE1LCAwLjUzODUxMywgMC42OTA4OTUsIDAuNzk2MzAxLCAwLjk2MzY1OSwgMS4xMDk3NywgMS4zMTgxNyIsIFwKLSAgICAgICAgICAiMC4zNTgxMTYsIDAuNTQ5OTI2LCAwLjcwMjQyLCAwLjgwNzk0NCwgMC45NzUyNTgsIDEuMTIxMzgsIDEuMzI5NzgiLCBcCi0gICAgICAgICAgIjAuMzcxMjk2LCAwLjU2MzI3NSwgMC43MTU4MDQsIDAuODIxMjcyLCAwLjk4ODU1NywgMS4xMzQ2MywgMS4zNDMwNyIsIFwKLSAgICAgICAgICAiMC4zODM5MjgsIDAuNTc2MDQ5LCAwLjcyODM2NCwgMC44MzM3NjEsIDEuMDAxMTcsIDEuMTQ3MjMsIDEuMzU1NjYiLCBcCi0gICAgICAgICAgIjAuMzk2MzQ5LCAwLjU4ODQ2MywgMC43NDA3NzcsIDAuODQ2MTc2LCAxLjAxMzU4LCAxLjE1OTY0LCAxLjM2ODA4IiwgXAotICAgICAgICAgICIwLjQxNiwgMC42MDgxNjYsIDAuNzYwNDM1LCAwLjg2NTgzNiwgMS4wMzMyNCwgMS4xNzkyOSwgMS4zODc3MyIsIFwKLSAgICAgICAgICAiMC40MzMyMTYsIDAuNjI1MTkyLCAwLjc3NzU4MiwgMC44ODI5NjcsIDEuMDUwMzUsIDEuMTk2NDIsIDEuNDA0ODYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMjQ3NTMsIDAuNDAyNjU0LCAwLjY3ODU0OSwgMC44Nzk1NDcsIDEuMjA0MjUsIDEuNDkyMTgsIDEuOTA0MjkiLCBcCi0gICAgICAgICAgIjAuMTI0NTY5LCAwLjQwMjc3MSwgMC42NzgxLCAwLjg3ODk2MSwgMS4yMDQyNywgMS40OTIxNSwgMS45MDQ5MSIsIFwKLSAgICAgICAgICAiMC4xMjQ2MzcsIDAuNDAyNzgxLCAwLjY3ODExMSwgMC44NzkwMDQsIDEuMjA0MjgsIDEuNDkyMjIsIDEuOTA0MzkiLCBcCi0gICAgICAgICAgIjAuMTI0NDkzLCAwLjQwMjc3NywgMC42NzgxMDksIDAuODc4OTY2LCAxLjIwNDMxLCAxLjQ5MjE4LCAxLjkwNDg4IiwgXAotICAgICAgICAgICIwLjEyNDUxOSwgMC40MDI2MzQsIDAuNjc4Mjk0LCAwLjg3ODk2NiwgMS4yMDQxNSwgMS40OTIxOCwgMS45MDQ4NyIsIFwKLSAgICAgICAgICAiMC4xMjQ3MTksIDAuNDAyNzY0LCAwLjY3ODA5NywgMC44Nzg5MTcsIDEuMjA0MzMsIDEuNDkyMTgsIDEuOTA0OTQiLCBcCi0gICAgICAgICAgIjAuMTI0NTAyLCAwLjQwMjc3NSwgMC42NzgxMiwgMC44NzkwNjEsIDEuMjA0MzMsIDEuNDkyMTgsIDEuOTA0OTEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiTTAiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzU1MTI0LCAwLjUyOTc4MywgMC42NjMxMTUsIDAuNzU0MzQsIDAuODk4NzY5LCAxLjAyNDYyLCAxLjIwNDE5IiwgXAotICAgICAgICAgICIwLjM2NTczNSwgMC41NDA1NzMsIDAuNjczOTM1LCAwLjc2NTE0MiwgMC45MDk1NTIsIDEuMDM1NCwgMS4yMTQ5OCIsIFwKLSAgICAgICAgICAiMC4zNzk3MTIsIDAuNTU0NDI5LCAwLjY4Nzc3OCwgMC43NzkwMDcsIDAuOTIzMzM5LCAxLjA0OTIzLCAxLjIyODc4IiwgXAotICAgICAgICAgICIwLjM5MzIwMSwgMC41NjgwMzUsIDAuNzAxMzE2LCAwLjc5MjcsIDAuOTM3MDI2LCAxLjA2MjkxLCAxLjI0MjQ1IiwgXAotICAgICAgICAgICIwLjQwNzE3MiwgMC41ODE2NjYsIDAuNzE0OTEsIDAuODA2MjYxLCAwLjk1MDU2LCAxLjA3NjQxLCAxLjI1NTk3IiwgXAotICAgICAgICAgICIwLjQyODkyMSwgMC42MDM1MjQsIDAuNzM2ODQ5LCAwLjgyODEwOSwgMC45NzI0MzQsIDEuMDk4MzQsIDEuMjc3ODkiLCBcCi0gICAgICAgICAgIjAuNDQ4MywgMC42MjI3NjgsIDAuNzU2MTE3LCAwLjg0NzQwNSwgMC45OTE3NTUsIDEuMTE3NjMsIDEuMjk3MTYiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMjEzOTMsIDAuMzY1NTE3LCAwLjYwNTc4OCwgMC43ODA4ODgsIDEuMDY1OTYsIDEuMzE3NjgsIDEuNjc0OTgiLCBcCi0gICAgICAgICAgIjAuMTIxMTc5LCAwLjM2NTQ0MSwgMC42MDU5NTUsIDAuNzgwNTQxLCAxLjA2NTg2LCAxLjMxNzU4LCAxLjY3ODciLCBcCi0gICAgICAgICAgIjAuMTIxMTA0LCAwLjM2NTQ4NiwgMC42MDU5NTUsIDAuNzgwNzg4LCAxLjA2NSwgMS4zMTczNiwgMS42NzYwMSIsIFwKLSAgICAgICAgICAiMC4xMjExNTIsIDAuMzY1NDc5LCAwLjYwNTYzNiwgMC43ODA3MTUsIDEuMDY1NjgsIDEuMzE3MzQsIDEuNjc1NDEiLCBcCi0gICAgICAgICAgIjAuMTIwODE3LCAwLjM2NTM4MiwgMC42MDU3NTMsIDAuNzgwODE5LCAxLjA2NTc3LCAxLjMxNDU5LCAxLjY3NjQ0IiwgXAotICAgICAgICAgICIwLjEyMDkwMSwgMC4zNjU0NzcsIDAuNjA1OTE4LCAwLjc4MDczMywgMS4wNjU3MywgMS4zMTcxNiwgMS42NzgwOSIsIFwKLSAgICAgICAgICAiMC4xMjA3NzgsIDAuMzY1NDY0LCAwLjYwNTkxOCwgMC43ODA2ODgsIDEuMDY1ODEsIDEuMzE3MTcsIDEuNjc3OTciKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMzA4NTEsIDAuNTIyNzI2LCAwLjY3NTI1MywgMC43ODA2NzYsIDAuOTQ3ODM5LCAxLjA5Mzk1LCAxLjMwMjM1IiwgXAotICAgICAgICAgICIwLjM0MTE3NywgMC41MzMzMywgMC42ODU3MiwgMC43OTExNDIsIDAuOTU4NDQyLCAxLjEwNDU1LCAxLjMxMjkzIiwgXAotICAgICAgICAgICIwLjM1NDYxOSwgMC41NDY0NiwgMC42OTg5MDksIDAuODA0NDE4LCAwLjk3MTcxMSwgMS4xMTc4MiwgMS4zMjYyIiwgXAotICAgICAgICAgICIwLjM2NzY1LCAwLjU1OTY1NSwgMC43MTIwNDQsIDAuODE3NDM3LCAwLjk4NDc5OSwgMS4xMzA4NywgMS4zMzkyNiIsIFwKLSAgICAgICAgICAiMC4zODA4MzQsIDAuNTcyODI0LCAwLjcyNTIwOSwgMC44MzA1OTgsIDAuOTk3OTM4LCAxLjE0NDA0LCAxLjM1MjQ0IiwgXAotICAgICAgICAgICIwLjQwMTkyOCwgMC41OTM5NjcsIDAuNzQ2MjYzLCAwLjg1MTc4NywgMS4wMTkwNywgMS4xNjUxOSwgMS4zNzM1OCIsIFwKLSAgICAgICAgICAiMC40MjA1NjgsIDAuNjEyNDU4LCAwLjc2NDg1MSwgMC44NzAyNDUsIDEuMDM3NjEsIDEuMTgzNjksIDEuMzkyMDkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMjQ0NDksIDAuNDAyNTg2LCAwLjY3Nzk3NCwgMC44Nzg0NTQsIDEuMjA0MTksIDEuNDkyMDUsIDEuODk4NzQiLCBcCi0gICAgICAgICAgIjAuMTI0Mzc0LCAwLjQwMjY1MSwgMC42NzgwMjQsIDAuODc4Mjg3LCAxLjIwMzg4LCAxLjQ5MjA0LCAxLjg5ODU3IiwgXAotICAgICAgICAgICIwLjEyNDYzNSwgMC40MDI0OTEsIDAuNjc3OTM5LCAwLjg3ODcwMywgMS4yMDM5NSwgMS40OTIwMiwgMS44OTg1MiIsIFwKLSAgICAgICAgICAiMC4xMjQ3MzksIDAuNDAyNjQyLCAwLjY3ODA0NywgMC44NzkwMTksIDEuMjAzNzgsIDEuNDkyMDYsIDEuODk4ODkiLCBcCi0gICAgICAgICAgIjAuMTI0Njg1LCAwLjQwMjYxOSwgMC42NzgwMzUsIDAuODc4OTk1LCAxLjIwMzUxLCAxLjQ5MjA1LCAxLjg5ODk1IiwgXAotICAgICAgICAgICIwLjEyNDQ1OCwgMC40MDI2MzIsIDAuNjc3OTQsIDAuODc4Njk1LCAxLjIwMzk1LCAxLjQ4ODQ1LCAxLjg5ODQ3IiwgXAotICAgICAgICAgICIwLjEyNDYzMiwgMC40MDI2NDUsIDAuNjc4MDQsIDAuODc5MDUxLCAxLjIwMzg4LCAxLjQ5MjA1LCAxLjg5ODg2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIk0wIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjM5NTg3MywgMC41NzA4MjYsIDAuNzA0MTY0LCAwLjc5NTU3NywgMC45Mzk5MjMsIDEuMDY1NzYsIDEuMjQ1NCIsIFwKLSAgICAgICAgICAiMC40MDc3MDUsIDAuNTgyNjIzLCAwLjcxNjA0NiwgMC44MDcyNTIsIDAuOTUxNzQ0LCAxLjA3NzYzLCAxLjI1NzE3IiwgXAotICAgICAgICAgICIwLjQyMzAzLCAwLjU5NzY4NywgMC43MzA5OTMsIDAuODIyNTExLCAwLjk2Njg1LCAxLjA5Mjc3LCAxLjI3MjMzIiwgXAotICAgICAgICAgICIwLjQzNzUzLCAwLjYxMjE0MywgMC43NDU0NTcsIDAuODM2OTM1LCAwLjk4MTMxLCAxLjEwNzIyLCAxLjI4Njc5IiwgXAotICAgICAgICAgICIwLjQ1MTEwOCwgMC42MjU5NTMsIDAuNzU5MjgsIDAuODUwNjY2LCAwLjk5NTAxMiwgMS4xMjA4OSwgMS4zMDA0OSIsIFwKLSAgICAgICAgICAiMC40NzA5MjMsIDAuNjQ1ODExLCAwLjc3OTIyMSwgMC44NzA1OTIsIDEuMDE0OTQsIDEuMTQwODcsIDEuMzIwNDIiLCBcCi0gICAgICAgICAgIjAuNDg2MTY1LCAwLjY2MDk4OCwgMC43OTQzNjUsIDAuODg1NjU0LCAxLjAzMDAzLCAxLjE1NTk2LCAxLjMzNTU0Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTIxNSwgMC4zNjU3NjIsIDAuNjA2MDYxLCAwLjc4MTE2MywgMS4wNjYxNSwgMS4zMTc0NCwgMS42NzUyNCIsIFwKLSAgICAgICAgICAiMC4xMjE0MzUsIDAuMzY1NzUsIDAuNjA2MjA3LCAwLjc4MTAzOCwgMS4wNjYxNywgMS4zMTc4OSwgMS42NzYwOCIsIFwKLSAgICAgICAgICAiMC4xMjA5NDksIDAuMzY1NTA1LCAwLjYwNjA4LCAwLjc4MTE0MSwgMS4wNjU5NSwgMS4zMTc2MywgMS42NzU2MyIsIFwKLSAgICAgICAgICAiMC4xMjExMDUsIDAuMzY1NzI5LCAwLjYwNTg2MiwgMC43ODA5MTYsIDEuMDY1OTQsIDEuMzE3NjMsIDEuNjc1NjkiLCBcCi0gICAgICAgICAgIjAuMTIxMzI3LCAwLjM2NTY5NSwgMC42MDYwMjEsIDAuNzgxMTAxLCAxLjA2NjA3LCAxLjMxNDg1LCAxLjY3NjciLCBcCi0gICAgICAgICAgIjAuMTIxMzU3LCAwLjM2NTYwMywgMC42MDU4NTEsIDAuNzgxMDY2LCAxLjA2NjA2LCAxLjMxNzYyLCAxLjY3NTU1IiwgXAotICAgICAgICAgICIwLjEyMTMyOSwgMC4zNjU2NjgsIDAuNjA2MTUzLCAwLjc4MDk1NiwgMS4wNjU4OCwgMS4zMTc0NywgMS42NzgzNCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjM3MzI3OCwgMC41NjU0MDMsIDAuNzE3Nzk0LCAwLjgyMzIyNywgMC45OTA1MzQsIDEuMTM2NjQsIDEuMzQ1MDciLCBcCi0gICAgICAgICAgIjAuMzg1MzY2LCAwLjU3NzIyMywgMC43Mjk2NDgsIDAuODM1MTMyLCAxLjAwMjQzLCAxLjE0ODU1LCAxLjM1Njk2IiwgXAotICAgICAgICAgICIwLjQwMDkxMSwgMC41OTI5MjYsIDAuNzQ1MywgMC44NTA2OTksIDEuMDE4MDUsIDEuMTY0MTYsIDEuMzcyNTYiLCBcCi0gICAgICAgICAgIjAuNDE1OTAzLCAwLjYwNzgxMywgMC43NjAxODgsIDAuODY1NTg3LCAxLjAzMjkzLCAxLjE3OTA1LCAxLjM4NzQ2IiwgXAotICAgICAgICAgICIwLjQzMTE2NSwgMC42MjMwNTksIDAuNzc1NDM3LCAwLjg4MDgzMywgMS4wNDgyMiwgMS4xOTQzLCAxLjQwMjciLCBcCi0gICAgICAgICAgIjAuNDUzNjc5LCAwLjY0NTU4NiwgMC43OTc5NjcsIDAuOTAzMzYzLCAxLjA3MDc2LCAxLjIxNjgzLCAxLjQyNTIzIiwgXAotICAgICAgICAgICIwLjQ3MTY5NywgMC42NjM0NzQsIDAuODE1OTQ1LCAwLjkyMTQ2LCAxLjA4ODc2LCAxLjIzNDg5LCAxLjQ0MzI5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTI0MzMxLCAwLjQwMjYyMSwgMC42NzgwMDksIDAuODc5MzM4LCAxLjIwNDI2LCAxLjQ5MjM5LCAxLjkwMTE4IiwgXAotICAgICAgICAgICIwLjEyNDUyNiwgMC40MDI0ODEsIDAuNjc3OTc3LCAwLjg3OTQ3MSwgMS4yMDM5NSwgMS40OTIxOCwgMS44OTkzMSIsIFwKLSAgICAgICAgICAiMC4xMjQ4MTUsIDAuNDAyNjQ2LCAwLjY3ODA1NiwgMC44NzkwNzcsIDEuMjAzNzQsIDEuNDkyMjIsIDEuODk5NCIsIFwKLSAgICAgICAgICAiMC4xMjQ1NTcsIDAuNDAyNjE1LCAwLjY3ODA0NCwgMC44NzkwNDcsIDEuMjAzMzIsIDEuNDkyMTgsIDEuODk5MjkiLCBcCi0gICAgICAgICAgIjAuMTI0Njc0LCAwLjQwMjYxNiwgMC42NzgwMzgsIDAuODc5MDY4LCAxLjIwMzc4LCAxLjQ5MjE3LCAxLjg5OTEiLCBcCi0gICAgICAgICAgIjAuMTI0NjY0LCAwLjQwMjYwOCwgMC42NzgwMzcsIDAuODc5MDM4LCAxLjIwMzM4LCAxLjQ5MjE1LCAxLjg5ODc5IiwgXAotICAgICAgICAgICIwLjEyNDUyNiwgMC40MDI0NjMsIDAuNjc3OTM4LCAwLjg3ODY5NSwgMS4yMDQwMiwgMS40OTIxMiwgMS44OTg3MSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJNMSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zNTcxMjMsIDAuNTMyMTI4LCAwLjY2NTUzLCAwLjc1Njc5OSwgMC45MDExOTksIDEuMDI3MDcsIDEuMjA2NzMiLCBcCi0gICAgICAgICAgIjAuMzY4MDExLCAwLjU0Mjg1OSwgMC42NzYyNzMsIDAuNzY3NTMzLCAwLjkxMTg5LCAxLjAzNzgxLCAxLjIxNzM4IiwgXAotICAgICAgICAgICIwLjM4MjE3NywgMC41NTY3OTcsIDAuNjkwMTU2LCAwLjc4MTU5MywgMC45MjU5MjcsIDEuMDUxODQsIDEuMjMxNCIsIFwKLSAgICAgICAgICAiMC4zOTU2MzQsIDAuNTcwNDQ4LCAwLjcwMzgxMywgMC43OTUwOTksIDAuOTM5NDY2LCAxLjA2NTM4LCAxLjI0NDk5IiwgXAotICAgICAgICAgICIwLjQwOTE0LCAwLjU4NDAwNiwgMC43MTc0MDksIDAuODA4NjQ3LCAwLjk1MzEwMywgMS4wNzg5NiwgMS4yNTg1NSIsIFwKLSAgICAgICAgICAiMC40MzExMDcsIDAuNjA1ODc2LCAwLjczOTI2OSwgMC44MzA1MywgMC45NzQ5NzcsIDEuMTAwODMsIDEuMjgwMzgiLCBcCi0gICAgICAgICAgIjAuNDUwNTYsIDAuNjI1MDg3LCAwLjc1ODQ1LCAwLjg0OTg1OCwgMC45OTQyNCwgMS4xMjAxNSwgMS4yOTk3MSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEyMTQwNywgMC4zNjU3MzgsIDAuNjA2MjUxLCAwLjc4MDUzOCwgMS4wNjQ5MiwgMS4zMTc3NCwgMS42NzQ0MiIsIFwKLSAgICAgICAgICAiMC4xMjE0ODksIDAuMzY1NzQzLCAwLjYwNjIzMywgMC43ODEwMzcsIDEuMDY2MDksIDEuMzE3NjcsIDEuNjc2MjUiLCBcCi0gICAgICAgICAgIjAuMTIxMDk3LCAwLjM2NTY0OSwgMC42MDU4NjYsIDAuNzgxMTI5LCAxLjA2NTk0LCAxLjMxNzY0LCAxLjY3NTYxIiwgXAotICAgICAgICAgICIwLjEyMTI0NywgMC4zNjU2NzQsIDAuNjA2MTc0LCAwLjc4MDk2NSwgMS4wNjYwOCwgMS4zMTc2NCwgMS42Nzg4NiIsIFwKLSAgICAgICAgICAiMC4xMjEzMzEsIDAuMzY1Njk2LCAwLjYwNjE0OCwgMC43ODA3MjQsIDEuMDY2LCAxLjMxNzU2LCAxLjY3ODM5IiwgXAotICAgICAgICAgICIwLjEyMTIwOCwgMC4zNjU2MzksIDAuNjA2MTUsIDAuNzgwOTEsIDEuMDY1OTgsIDEuMzE3NDcsIDEuNjc2MTUiLCBcCi0gICAgICAgICAgIjAuMTIwODQzLCAwLjM2NTY1NSwgMC42MDU4ODcsIDAuNzgwODk5LCAxLjA2NTgzLCAxLjMxNzQ0LCAxLjY3NTQ2Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzMxMzk1LCAwLjUyMzQwNywgMC42NzU3MjIsIDAuNzgxMTY0LCAwLjk0ODUzMSwgMS4wOTQ2LCAxLjMwMzAxIiwgXAotICAgICAgICAgICIwLjM0MTc1MiwgMC41MzM4NjgsIDAuNjg2MTU1LCAwLjc5MTU1NCwgMC45NTg5NjYsIDEuMTA1MDQsIDEuMzEzNDkiLCBcCi0gICAgICAgICAgIjAuMzU0OTU0LCAwLjU0NzA3MywgMC42OTkzMzIsIDAuODA0NzMsIDAuOTcyMTM5LCAxLjExODIxLCAxLjMyNjYzIiwgXAotICAgICAgICAgICIwLjM2ODM2OCwgMC41NjAyNjUsIDAuNzEyNjk0LCAwLjgxODExMSwgMC45ODU0MzYsIDEuMTMxNTcsIDEuMzM5OTciLCBcCi0gICAgICAgICAgIjAuMzgxNDU0LCAwLjU3MzI3NCwgMC43MjU3NywgMC44MzEyMDMsIDAuOTk4NTIzLCAxLjE0NDY1LCAxLjM1MzA2IiwgXAotICAgICAgICAgICIwLjQwMjQ2OSwgMC41OTQ0OTgsIDAuNzQ2NzY5LCAwLjg1MjE3MywgMS4wMTk1OSwgMS4xNjU2NiwgMS4zNzQxNiIsIFwKLSAgICAgICAgICAiMC40MjEwNDYsIDAuNjEyOTQ2LCAwLjc2NTMyNywgMC44NzA3MzEsIDEuMDM4MSwgMS4xODQyMywgMS4zOTI2NiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEyNDUzMiwgMC40MDI0NzksIDAuNjc4MDI5LCAwLjg3ODU1NSwgMS4yMDQyNCwgMS40OTIyMSwgMS45MDA1NSIsIFwKLSAgICAgICAgICAiMC4xMjQ2MDIsIDAuNDAyNjA5LCAwLjY3ODAyOSwgMC44Nzg5MDMsIDEuMjA0MjIsIDEuNDkyMjEsIDEuOTAwNDQiLCBcCi0gICAgICAgICAgIjAuMTI0NTk5LCAwLjQwMjYwMSwgMC42NzgwMTMsIDAuODc4ODgsIDEuMjA0MTksIDEuNDkyMjEsIDEuOTAyNzciLCBcCi0gICAgICAgICAgIjAuMTI0NDgxLCAwLjQwMjQ0NywgMC42Nzc3MDYsIDAuODc4MzYxLCAxLjIwNDE1LCAxLjQ4ODUyLCAxLjg5OTU1IiwgXAotICAgICAgICAgICIwLjEyNDQ2OSwgMC40MDI0ODUsIDAuNjc3OTQ2LCAwLjg3ODQ1OCwgMS4yMDM5OCwgMS40OTIxNSwgMS44OTg2NSIsIFwKLSAgICAgICAgICAiMC4xMjQ0NDgsIDAuNDAyNTg1LCAwLjY3ODAyLCAwLjg3ODkwMiwgMS4yMDQxNiwgMS40OTIyLCAxLjkwNTMiLCBcCi0gICAgICAgICAgIjAuMTI0NzA3LCAwLjQwMjU2MiwgMC42NzgwMjMsIDAuODc5MDE0LCAxLjIwNDQ3LCAxLjQ5MjE4LCAxLjg5OTEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiTTEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzg3NTMxLCAwLjU2MjE2NywgMC42OTU1NTMsIDAuNzg2OTI0LCAwLjkzMTI0MiwgMS4wNTcxMSwgMS4yMzY2OSIsIFwKLSAgICAgICAgICAiMC4zOTk0MzEsIDAuNTc0MDQ5LCAwLjcwNzM2NSwgMC43OTg3NDEsIDAuOTQzMDcxLCAxLjA2ODk0LCAxLjI0ODUyIiwgXAotICAgICAgICAgICIwLjQxMzkxLCAwLjU4ODc0MywgMC43MjIwOTYsIDAuODEzNTE2LCAwLjk1Nzg2NywgMS4wODM3NywgMS4yNjMzMiIsIFwKLSAgICAgICAgICAiMC40MjgyMDMsIDAuNjAzMDksIDAuNzM2NTAzLCAwLjgyNzczMSwgMC45NzIxNzEsIDEuMDk4MDQsIDEuMjc3NTciLCBcCi0gICAgICAgICAgIjAuNDQxMTM3LCAwLjYxNTc0MiwgMC43NDkxMzYsIDAuODQwNTE4LCAwLjk4NDgyNywgMS4xMTA3LCAxLjI5MDI4IiwgXAotICAgICAgICAgICIwLjQ1ODg1NSwgMC42MzM4NjUsIDAuNzY3MTYzLCAwLjg1ODU5MiwgMS4wMDI5MiwgMS4xMjg3NSwgMS4zMDgzNyIsIFwKLSAgICAgICAgICAiMC40NzMyNzksIDAuNjQ3OTEzLCAwLjc4MTIxNCwgMC44NzI1ODksIDEuMDE2OSwgMS4xNDI3NywgMS4zMjIzNCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEyMTE2OCwgMC4zNjU3OCwgMC42MDYwNDQsIDAuNzgxMTQyLCAxLjA2NjE0LCAxLjMxNzkzLCAxLjY3NjgiLCBcCi0gICAgICAgICAgIjAuMTIwOTQ0LCAwLjM2NTcyNSwgMC42MDYwNjgsIDAuNzgxMTU0LCAxLjA2NjE3LCAxLjMxNDg0LCAxLjY3NTA5IiwgXAotICAgICAgICAgICIwLjEyMTM2OSwgMC4zNjU3NSwgMC42MDU5MzUsIDAuNzgxMDM2LCAxLjA2NTg5LCAxLjMxNzU4LCAxLjY3NTYxIiwgXAotICAgICAgICAgICIwLjEyMTI4NiwgMC4zNjU3MzksIDAuNjA2MTk2LCAwLjc4MDc1OCwgMS4wNjYwNywgMS4zMTc3OCwgMS42Nzg0NSIsIFwKLSAgICAgICAgICAiMC4xMjE1OTcsIDAuMzY1Njg3LCAwLjYwNTk4LCAwLjc4MTA1MSwgMS4wNjYwOCwgMS4zMTc4NCwgMS42NzY2NCIsIFwKLSAgICAgICAgICAiMC4xMjEyODYsIDAuMzY1NDY5LCAwLjYwNTk5MSwgMC43ODEwNDgsIDEuMDY2MDksIDEuMzE1NzcsIDEuNjc1MTgiLCBcCi0gICAgICAgICAgIjAuMTIxMjA1LCAwLjM2NTQ2MiwgMC42MDYwMjYsIDAuNzgxMDg3LCAxLjA2NjEsIDEuMzE0ODMsIDEuNjc2NiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjM2NDY1MiwgMC41NTY1OTYsIDAuNzA4OTY3LCAwLjgxNDM3LCAwLjk4MTc3MywgMS4xMjc4MiwgMS4zMzYyNiIsIFwKLSAgICAgICAgICAiMC4zNzY1NDEsIDAuNTY4NDYsIDAuNzIwODQyLCAwLjgyNjI0NCwgMC45OTM2MSwgMS4xMzk3MSwgMS4zNDgxIiwgXAotICAgICAgICAgICIwLjM5MjExMSwgMC41ODQwMjQsIDAuNzM2NDU5LCAwLjg0MTkyLCAxLjAwOTI0LCAxLjE1NTM2LCAxLjM2Mzc2IiwgXAotICAgICAgICAgICIwLjQwNzA0MywgMC41OTkwNDUsIDAuNzUxNDI2LCAwLjg1NjgyMywgMS4wMjQxOSwgMS4xNzAyOSwgMS4zNzg3MSIsIFwKLSAgICAgICAgICAiMC40MjE2MzQsIDAuNjEzNDA0LCAwLjc2NTk5OCwgMC44NzE0MjksIDEuMDM4NzQsIDEuMTg0ODYsIDEuMzkzMjciLCBcCi0gICAgICAgICAgIjAuNDQyNTgzLCAwLjYzNDUyNSwgMC43ODY5MTgsIDAuODkyMzEzLCAxLjA1OTY2LCAxLjIwNTc4LCAxLjQxNDIiLCBcCi0gICAgICAgICAgIjAuNDU5MzE5LCAwLjY1MTI0MywgMC44MDM2MjcsIDAuOTA5MDI2LCAxLjA3NjQsIDEuMjIyNSwgMS40MzA5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTI0MzYyLCAwLjQwMjYxOCwgMC42NzgwMzksIDAuODc5MTYxLCAxLjIwNDQ5LCAxLjQ5MjQ1LCAxLjkwNTAyIiwgXAotICAgICAgICAgICIwLjEyNDY1NSwgMC40MDI2MTgsIDAuNjc4MDQyLCAwLjg3OTA2NiwgMS4yMDQyOSwgMS40OTIyNiwgMS45MDQyNSIsIFwKLSAgICAgICAgICAiMC4xMjQ1NTYsIDAuNDAyNDU1LCAwLjY3NzY1OSwgMC44Nzg1OCwgMS4yMDQxNCwgMS40OTIxMywgMS44OTg3IiwgXAotICAgICAgICAgICIwLjEyNDc1OSwgMC40MDI1OTQsIDAuNjc4MDIxLCAwLjg3OTAzNiwgMS4yMDM2NSwgMS40OTIxNywgMS44OTkyMiIsIFwKLSAgICAgICAgICAiMC4xMjQ1MjUsIDAuNDAyNDQ3LCAwLjY3Nzk4NSwgMC44Nzg2MywgMS4yMDM5NiwgMS40OTIxMiwgMS44OTg3IiwgXAotICAgICAgICAgICIwLjEyNDY2MywgMC40MDI1ODksIDAuNjc4MDMsIDAuODc5MDA4LCAxLjIwNDIzLCAxLjQ5MjEzLCAxLjg5ODc5IiwgXAotICAgICAgICAgICIwLjEyNDY2OSwgMC40MDI1OTcsIDAuNjc4MDE4LCAwLjg3OTEyNywgMS4yMDQsIDEuNDkyMTQsIDEuODk4NzYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zNzI0OTYsIDAuNTQ3NDIsIDAuNjgwNzYyLCAwLjc3MjE0NiwgMC45MTY0NzYsIDEuMDQyMzgsIDEuMjIxOTgiLCBcCi0gICAgICAgICAgIjAuMzg0NDMsIDAuNTU5MjUzLCAwLjY5MjU0MywgMC43ODM5NDYsIDAuOTI4MjU2LCAxLjA1NDE1LCAxLjIzMzcyIiwgXAotICAgICAgICAgICIwLjM5ODY1NiwgMC41NzMzMjIsIDAuNzA2NTksIDAuNzk4MDcxLCAwLjk0MjQxMiwgMS4wNjgzLCAxLjI0Nzg3IiwgXAotICAgICAgICAgICIwLjQxMjEwNCwgMC41ODY5ODksIDAuNzIwMzQ0LCAwLjgxMTcxLCAwLjk1NjAzLCAxLjA4MTksIDEuMjYxNDciLCBcCi0gICAgICAgICAgIjAuNDI1OTEzLCAwLjYwMDY1NywgMC43MzQwNjMsIDAuODI1Mzk5LCAwLjk2OTc0NywgMS4wOTU1OSwgMS4yNzUxOCIsIFwKLSAgICAgICAgICAiMC40NDgyMTMsIDAuNjIyODM5LCAwLjc1NjIzOSwgMC44NDc2MjUsIDAuOTkxOTUsIDEuMTE3ODYsIDEuMjk3NCIsIFwKLSAgICAgICAgICAiMC40NjczNzYsIDAuNjQxOTg3LCAwLjc3NTM1NywgMC44NjY3MzIsIDEuMDExMDcsIDEuMTM2OTIsIDEuMzE2NTIiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMjE1NTYsIDAuMzY1Nzk4LCAwLjYwNjI3OCwgMC43ODEyNTQsIDEuMDY2MzIsIDEuMzE3OTcsIDEuNjc5NTIiLCBcCi0gICAgICAgICAgIjAuMTIxNjIyLCAwLjM2NTgyMSwgMC42MDYyOTUsIDAuNzgxMDc4LCAxLjA2NjI1LCAxLjMxNzgxLCAxLjY3ODkzIiwgXAotICAgICAgICAgICIwLjEyMTQ4NSwgMC4zNjU3NjMsIDAuNjA2MDYsIDAuNzgxMTY0LCAxLjA2NjE4LCAxLjMxNzc4LCAxLjY3NjA5IiwgXAotICAgICAgICAgICIwLjEyMTQ5MSwgMC4zNjU3NDcsIDAuNjA2MTg3LCAwLjc4MTEzOCwgMS4wNjYxNiwgMS4zMTc5OSwgMS42NzU2NSIsIFwKLSAgICAgICAgICAiMC4xMjE1MSwgMC4zNjU3NDIsIDAuNjA2MjQ2LCAwLjc4MTA4NywgMS4wNjYxNSwgMS4zMTc5NywgMS42Nzg2MiIsIFwKLSAgICAgICAgICAiMC4xMjE1ODQsIDAuMzY1NzY0LCAwLjYwNjE4NywgMC43ODEwNzUsIDEuMDY2MjQsIDEuMzE3ODQsIDEuNjc4OTYiLCBcCi0gICAgICAgICAgIjAuMTIxNTI4LCAwLjM2NTc3NCwgMC42MDYyMjksIDAuNzgxMDk5LCAxLjA2NjEyLCAxLjMxNzk0LCAxLjY3OTIxIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzQ1NDcyLCAwLjUzNzQyMiwgMC42ODk4NzEsIDAuNzk1Mjc5LCAwLjk2MjU4MSwgMS4xMDg2MiwgMS4zMTcwNiIsIFwKLSAgICAgICAgICAiMC4zNTcxMjIsIDAuNTQ5MDk2LCAwLjcwMTUwNCwgMC44MDY5MzksIDAuOTc0MjM1LCAxLjEyMDM0LCAxLjMyODcyIiwgXAotICAgICAgICAgICIwLjM3MDYzOSwgMC41NjI1MTcsIDAuNzE1MDUyLCAwLjgyMDQ3NCwgMC45ODc3NzEsIDEuMTMzODcsIDEuMzQyMjYiLCBcCi0gICAgICAgICAgIjAuMzgzNDM1LCAwLjU3NTM5OCwgMC43Mjc3OTQsIDAuODMzMjQxLCAxLjAwMDU0LCAxLjE0NjY0LCAxLjM1NTAzIiwgXAotICAgICAgICAgICIwLjM5NTk1NywgMC41ODc4MTUsIDAuNzQwMzAxLCAwLjg0NTc1MSwgMS4wMTMwNCwgMS4xNTkxNSwgMS4zNjc1NCIsIFwKLSAgICAgICAgICAiMC40MTU2MDgsIDAuNjA3NzA2LCAwLjc1OTk5LCAwLjg2NTQyLCAxLjAzMjc3LCAxLjE3ODgyLCAxLjM4NzI2IiwgXAotICAgICAgICAgICIwLjQzMzAzMiwgMC42MjUxNDksIDAuNzc3NDQ3LCAwLjg4Mjg5MywgMS4wNTAyMiwgMS4xOTYyNywgMS40MDQ2OCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEyNDUxNSwgMC40MDI4MDIsIDAuNjc4MTE4LCAwLjg3OTAxMSwgMS4yMDQwOCwgMS40OTIyMywgMS45MDQzNCIsIFwKLSAgICAgICAgICAiMC4xMjQ1MzEsIDAuNDAyNjEzLCAwLjY3ODQzLCAwLjg3ODk3LCAxLjIwNDE1LCAxLjQ5MjIyLCAxLjkwNDY2IiwgXAotICAgICAgICAgICIwLjEyNDUzNCwgMC40MDI3MDUsIDAuNjc4NDgyLCAwLjg3ODcyNywgMS4yMDQzNCwgMS40OTIxNiwgMS44OTk5MyIsIFwKLSAgICAgICAgICAiMC4xMjQ1MjEsIDAuNDAyNzA5LCAwLjY3ODA2NywgMC44Nzg5MzcsIDEuMjA0MzksIDEuNDkyMTcsIDEuOTAwNjkiLCBcCi0gICAgICAgICAgIjAuMTI0NTIsIDAuNDAyNzY2LCAwLjY3ODUwOSwgMC44NzkyNTgsIDEuMjA0MjcsIDEuNDkyMTksIDEuOTAwODYiLCBcCi0gICAgICAgICAgIjAuMTI0NTI5LCAwLjQwMjY5MSwgMC42Nzg1MDQsIDAuODc4OTAxLCAxLjIwNDM2LCAxLjQ5MjE2LCAxLjkwNDg3IiwgXAotICAgICAgICAgICIwLjEyNDUxNSwgMC40MDI3MywgMC42NzgwNzksIDAuODc5MDE0LCAxLjIwNDM5LCAxLjQ5MjE2LCAxLjkwMjg4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlgyIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIzNDg2NiwgMC40MDkwMjYsIDAuNTQxOTk3LCAwLjYzMzEwMiwgMC43NzczOTYsIDAuOTAzMTEzLCAxLjA4MjU0IiwgXAotICAgICAgICAgICIwLjI0NTIyMSwgMC40MTkzNTcsIDAuNTUyMzI2LCAwLjY0MzU3NCwgMC43ODc3MjksIDAuOTEzNDQzLCAxLjA5Mjk1IiwgXAotICAgICAgICAgICIwLjI1NzgzNiwgMC40MzE4MzYsIDAuNTY0OTA3LCAwLjY1NTk3OCwgMC44MDAyNSwgMC45MjYwMDYsIDEuMTA1NDYiLCBcCi0gICAgICAgICAgIjAuMjY5NTkxLCAwLjQ0Mzc1MywgMC41NzY4MDQsIDAuNjY4MDY1LCAwLjgxMjIwMSwgMC45Mzc5MTksIDEuMTE3NCIsIFwKLSAgICAgICAgICAiMC4yODEyNzMsIDAuNDU1MzU4LCAwLjU4ODQwMiwgMC42Nzk2NTEsIDAuODIzODA1LCAwLjk0OTU5OSwgMS4xMjkwMiIsIFwKLSAgICAgICAgICAiMC4yOTk1MDUsIDAuNDczNTA5LCAwLjYwNjUyOCwgMC42OTc2NzksIDAuODQxOTM4LCAwLjk2NzY5LCAxLjE0NzE2IiwgXAotICAgICAgICAgICIwLjMxNDk4MywgMC40ODkxNjIsIDAuNjIyMjA4LCAwLjcxMzQxNiwgMC44NTc1NzEsIDAuOTgzMjk1LCAxLjE2Mjc4Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTIwMDAyLCAwLjM2NDgzNSwgMC42MDUxNTksIDAuNzc5OTE0LCAxLjA2NDA3LCAxLjMxNjY5LCAxLjY3NzUiLCBcCi0gICAgICAgICAgIjAuMTE5NzM4LCAwLjM2NDQ2MiwgMC42MDUwMSwgMC43ODAwNjEsIDEuMDY1MDYsIDEuMzE2MjcsIDEuNjc0MTIiLCBcCi0gICAgICAgICAgIjAuMTE5NDU1LCAwLjM2NDYyNSwgMC42MDUxMjUsIDAuNzc5ODQyLCAxLjA2NSwgMS4zMTY3NiwgMS42NzM4OSIsIFwKLSAgICAgICAgICAiMC4xMTk3NDIsIDAuMzY0ODA2LCAwLjYwNTE4NiwgMC43Nzk5NDYsIDEuMDY1MDEsIDEuMzE0NjEsIDEuNjc1NTQiLCBcCi0gICAgICAgICAgIjAuMTE5MjU3LCAwLjM2NDYsIDAuNjA0ODY1LCAwLjc3OTk0MywgMS4wNjQ3MiwgMS4zMTYyOSwgMS42NzQzMyIsIFwKLSAgICAgICAgICAiMC4xMTkxOTUsIDAuMzY0NTg5LCAwLjYwNTAyLCAwLjc3OTYzMSwgMS4wNjQ4NSwgMS4zMTY0NywgMS42Nzc2NyIsIFwKLSAgICAgICAgICAiMC4xMTkxMjcsIDAuMzY0NDY0LCAwLjYwNDc3MiwgMC43Nzk4NzMsIDEuMDY0OTQsIDEuMzE0MjEsIDEuNjc1NTYiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMzIzNzcsIDAuNDI0MDE0LCAwLjU3NjIwNSwgMC42ODE1MzgsIDAuODQ4NzA3LCAwLjk5NDY5MSwgMS4yMDMwNCIsIFwKLSAgICAgICAgICAiMC4yNDI3MTYsIDAuNDM0MjM3LCAwLjU4NjM2LCAwLjY5MTYzOSwgMC44NTg5MDMsIDEuMDA0ODgsIDEuMjEzMiIsIFwKLSAgICAgICAgICAiMC4yNTQ5MTMsIDAuNDQ2MzIzLCAwLjU5ODU1MSwgMC43MDM4NjQsIDAuODcxMDQ3LCAxLjAxNjk3LCAxLjIyNTM3IiwgXAotICAgICAgICAgICIwLjI2NjgzNCwgMC40NTgzMDEsIDAuNjEwNDUzLCAwLjcxNTcxLCAwLjg4MzAwMiwgMS4wMjg5NywgMS4yMzcyNiIsIFwKLSAgICAgICAgICAiMC4yNzgwNDUsIDAuNDY5NDk5LCAwLjYyMTYyNCwgMC43MjY4ODQsIDAuODk0MTc2LCAxLjA0MDE1LCAxLjI0ODQ3IiwgXAotICAgICAgICAgICIwLjI5NTc2NSwgMC40ODcyMTMsIDAuNjM5MzUzLCAwLjc0NDYzMSwgMC45MTE4NywgMS4wNTc4OSwgMS4yNjYyMSIsIFwKLSAgICAgICAgICAiMC4zMTE3MTksIDAuNTAzMjU3LCAwLjY1NTM3OSwgMC43NjA2NjIsIDAuOTI3OTI0LCAxLjA3MzkyLCAxLjI4MjIyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTIzNjIxLCAwLjQwMjE2NCwgMC42Nzc0NTMsIDAuODc3NTkzLCAxLjIwMzUzLCAxLjQ4NzUyLCAxLjkwMjIxIiwgXAotICAgICAgICAgICIwLjEyMzgzLCAwLjQwMTkzMywgMC42NzczNCwgMC44NzgzMjcsIDEuMjAyNjYsIDEuNDkxNDQsIDEuODk4MDEiLCBcCi0gICAgICAgICAgIjAuMTIzOTM2LCAwLjQwMTk4NSwgMC42Nzc0NTIsIDAuODc3NjEsIDEuMjAzNiwgMS40OTEyNCwgMS45MDAyNyIsIFwKLSAgICAgICAgICAiMC4xMjM3NCwgMC40MDE5NjUsIDAuNjc3MzQxLCAwLjg3NzYxMywgMS4yMDMzNiwgMS40OTE0NCwgMS45MDM1MyIsIFwKLSAgICAgICAgICAiMC4xMjM2MywgMC40MDE5NTUsIDAuNjc3MzUxLCAwLjg3NzYyMSwgMS4yMDMzMywgMS40OTE0NSwgMS45MDQwMSIsIFwKLSAgICAgICAgICAiMC4xMjM1MDQsIDAuNDAxODczLCAwLjY3NzMxLCAwLjg3ODE2LCAxLjIwMzQxLCAxLjQ5MTQzLCAxLjg5Nzk3IiwgXAotICAgICAgICAgICIwLjEyMzI1MywgMC40MDE3OTIsIDAuNjc3MjczLCAwLjg3ODE4OSwgMS4yMDMzNiwgMS40OTE0MiwgMS45MDM0NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJYMiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yNDE5MDIsIDAuNDE2MTU2LCAwLjU0OTE3NSwgMC42NDA0ODUsIDAuNzg0NTY4LCAwLjkxMDMwMywgMS4wODk3OCIsIFwKLSAgICAgICAgICAiMC4yNTQxMTEsIDAuNDI4MjI4LCAwLjU2MTI0OCwgMC42NTI0MTYsIDAuNzk2NjQ1LCAwLjkyMjQwMSwgMS4xMDE4NiIsIFwKLSAgICAgICAgICAiMC4yNjg2MjMsIDAuNDQyNjU2LCAwLjU3NTY1NCwgMC42NjY4MzgsIDAuODExMDQ5LCAwLjkzNjg0LCAxLjExNjI2IiwgXAotICAgICAgICAgICIwLjI4MTMzNywgMC40NTU0ODYsIDAuNTg4NTYsIDAuNjc5Njc3LCAwLjgyMzkyLCAwLjk0OTY4OSwgMS4xMjkxMiIsIFwKLSAgICAgICAgICAiMC4yOTM1NTUsIDAuNDY3NDM4LCAwLjYwMDQ0LCAwLjY5MTY4MSwgMC44MzU4MzcsIDAuOTYxNTYyLCAxLjE0MTA1IiwgXAotICAgICAgICAgICIwLjMxMTk1NywgMC40ODYwNTgsIDAuNjE5MTM4LCAwLjcxMDI3NCwgMC44NTQ1MTcsIDAuOTgwMzI3LCAxLjE1OTc2IiwgXAotICAgICAgICAgICIwLjMyNjk2LCAwLjUwMTE0MiwgMC42MzQyMjYsIDAuNzI1NDIsIDAuODY5NjE4LCAwLjk5NTMzNywgMS4xNzQ4MyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEyMDUyOCwgMC4zNjQ3MjcsIDAuNjA1MTI2LCAwLjc3OTkwMSwgMS4wNjUxMiwgMS4zMTY0NCwgMS42NzU1NiIsIFwKLSAgICAgICAgICAiMC4xMjAzMDcsIDAuMzY0OTUzLCAwLjYwNTE1OSwgMC43ODAxOTUsIDEuMDY1MTYsIDEuMzE2ODYsIDEuNjc1MzQiLCBcCi0gICAgICAgICAgIjAuMTE5OTksIDAuMzY0NzQ1LCAwLjYwNTE5MiwgMC43Nzk5NDgsIDEuMDY0ODYsIDEuMzE2NTksIDEuNjc3NSIsIFwKLSAgICAgICAgICAiMC4xMjAxNDcsIDAuMzY0NzQ4LCAwLjYwNTIzLCAwLjc3OTg5NCwgMS4wNjUwNCwgMS4zMTY2MywgMS42Nzc0MyIsIFwKLSAgICAgICAgICAiMC4xMTk4MzMsIDAuMzY0NjQxLCAwLjYwNTExLCAwLjc4MDEzOCwgMS4wNjUxMiwgMS4zMTQ3MSwgMS42NzU1OSIsIFwKLSAgICAgICAgICAiMC4xMTk5MjEsIDAuMzY0ODQ0LCAwLjYwNTE1OSwgMC43ODAwMDMsIDEuMDY0OTYsIDEuMzE2NTcsIDEuNjc1MjgiLCBcCi0gICAgICAgICAgIjAuMTE5NjgxLCAwLjM2NDc3NiwgMC42MDUxODIsIDAuNzc5OTg1LCAxLjA2NTA3LCAxLjMxNjQ4LCAxLjY3NTUxIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjQwODQ3LCAwLjQzMjUwNCwgMC41ODQ3MzMsIDAuNjkwMDQ5LCAwLjg1NzI2LCAxLjAwMzI5LCAxLjIxMTYzIiwgXAotICAgICAgICAgICIwLjI1MzI5NCwgMC40NDUwMjgsIDAuNTk3MTkyLCAwLjcwMjQ5MSwgMC44Njk3NjgsIDEuMDE1NzUsIDEuMjI0MDkiLCBcCi0gICAgICAgICAgIjAuMjY4NTk1LCAwLjQ2MDIxMywgMC42MTI1NDgsIDAuNzE3ODU5LCAwLjg4NTA2LCAxLjAzMTEsIDEuMjM5NDIiLCBcCi0gICAgICAgICAgIjAuMjgzMDMxLCAwLjQ3NDY2MywgMC42MjY5MTMsIDAuNzMyMjIxLCAwLjg5OTQ1NCwgMS4wNDU0OSwgMS4yNTM4MSIsIFwKLSAgICAgICAgICAiMC4yOTcwNDMsIDAuNDg4NzUzLCAwLjY0MDk3NywgMC43NDYyODksIDAuOTEzNTA2LCAxLjA1OTU1LCAxLjI2Nzg3IiwgXAotICAgICAgICAgICIwLjMxODIyMiwgMC41MDk5OTQsIDAuNjYyMjYsIDAuNzY3NTQxLCAwLjkzNDc5MSwgMS4wODA4MiwgMS4yODkxNSIsIFwKLSAgICAgICAgICAiMC4zMzU1MTksIDAuNTI3MDIxLCAwLjY3OTM5MywgMC43ODQ3NDMsIDAuOTUxOTM4LCAxLjA5Nzg3LCAxLjMwNjI5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTI0MjIxLCAwLjQwMjIxLCAwLjY3NzUzMiwgMC44NzgyODcsIDEuMjAzNzUsIDEuNDkxODEsIDEuOTAwNDEiLCBcCi0gICAgICAgICAgIjAuMTIzNzksIDAuNDAyMjMxLCAwLjY3NzU3MywgMC44NzgzNywgMS4yMDM2OCwgMS40OTE3MSwgMS45MDIyNyIsIFwKLSAgICAgICAgICAiMC4xMjQxNCwgMC40MDE5ODMsIDAuNjc3NjEyLCAwLjg3ODQsIDEuMjAzNDcsIDEuNDkxNTgsIDEuODk4MTIiLCBcCi0gICAgICAgICAgIjAuMTIzOTk4LCAwLjQwMjA5NiwgMC42Nzc0NzcsIDAuODc4OTkzLCAxLjIwMzczLCAxLjQ5MTU4LCAxLjg5ODMxIiwgXAotICAgICAgICAgICIwLjEyMzg1OCwgMC40MDIxNzIsIDAuNjc3NDkyLCAwLjg3ODk3MywgMS4yMDMyLCAxLjQ5MTU0LCAxLjg5NzkxIiwgXAotICAgICAgICAgICIwLjEyMzg5OCwgMC40MDIxMzIsIDAuNjc3NDU3LCAwLjg3NzcyOSwgMS4yMDM1NCwgMS40OTE1MiwgMS44OTgwNSIsIFwKLSAgICAgICAgICAiMC4xMjM1ODksIDAuNDAyMDgsIDAuNjc3NjA2LCAwLjg3NzYxNSwgMS4yMDM1NCwgMS40OTExNywgMS45MDIzNiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1MzAyLCAwLjAwNTQxMywgMC4wMDU0NTYsIDAuMDA1NDcyLCAwLjAwNTQ4OCwgMC4wMDU0OTYsIDAuMDA1NTAzIiwgXAotICAgICAgICAgICIwLjAwNTI4MywgMC4wMDUzOTMsIDAuMDA1NDM2LCAwLjAwNTQ1NCwgMC4wMDU0NjksIDAuMDA1NDc2LCAwLjAwNTQ4MyIsIFwKLSAgICAgICAgICAiMC4wMDUyNzMsIDAuMDA1Mzg0LCAwLjAwNTQyNywgMC4wMDU0NDQsIDAuMDA1NDU5LCAwLjAwNTQ2NiwgMC4wMDU0NzQiLCBcCi0gICAgICAgICAgIjAuMDA1MjY3LCAwLjAwNTM3NywgMC4wMDU0MiwgMC4wMDU0MzgsIDAuMDA1NDUyLCAwLjAwNTQ2LCAwLjAwNTQ2OSIsIFwKLSAgICAgICAgICAiMC4wMDUyNjIsIDAuMDA1MzcyLCAwLjAwNTQxNywgMC4wMDU0MzIsIDAuMDA1NDQ4LCAwLjAwNTQ1NSwgMC4wMDU0NjMiLCBcCi0gICAgICAgICAgIjAuMDA1MjU2LCAwLjAwNTM2NCwgMC4wMDU0MDcsIDAuMDA1NDI0LCAwLjAwNTQ0LCAwLjAwNTQ0OCwgMC4wMDU0NTciLCBcCi0gICAgICAgICAgIjAuMDA1MjUyLCAwLjAwNTM1OSwgMC4wMDU0MDIsIDAuMDA1NDIsIDAuMDA1NDM1LCAwLjAwNTQ0NSwgMC4wMDU0NTIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwOTQ2MSwgMC4wMDk2MTEsIDAuMDA5NjY4LCAwLjAwOTY5LCAwLjAwOTcxMSwgMC4wMDk3MjIsIDAuMDA5NzMyIiwgXAotICAgICAgICAgICIwLjAwOTQ1MSwgMC4wMDk2MDEsIDAuMDA5NjU5LCAwLjAwOTY4LCAwLjAwOTcwMSwgMC4wMDk3MTIsIDAuMDA5NzIzIiwgXAotICAgICAgICAgICIwLjAwOTQ0NiwgMC4wMDk1OTcsIDAuMDA5NjU0LCAwLjAwOTY3NiwgMC4wMDk2OTcsIDAuMDA5NzA4LCAwLjAwOTcxOCIsIFwKLSAgICAgICAgICAiMC4wMDk0NDMsIDAuMDA5NTkzLCAwLjAwOTY1MSwgMC4wMDk2NzIsIDAuMDA5NjkzLCAwLjAwOTcwNCwgMC4wMDk3MTUiLCBcCi0gICAgICAgICAgIjAuMDA5NDQsIDAuMDA5NTg5LCAwLjAwOTY0NywgMC4wMDk2NjksIDAuMDA5NjksIDAuMDA5NzAxLCAwLjAwOTcxMiIsIFwKLSAgICAgICAgICAiMC4wMDk0MzcsIDAuMDA5NTg0LCAwLjAwOTY0MiwgMC4wMDk2NjQsIDAuMDA5Njg1LCAwLjAwOTY5NywgMC4wMDk3MDgiLCBcCi0gICAgICAgICAgIjAuMDA5NDM1LCAwLjAwOTU4LCAwLjAwOTYzOCwgMC4wMDk2NiwgMC4wMDk2ODIsIDAuMDA5Njk0LCAwLjAwOTcwNSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIk0wIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjEzLCAwLjAwNjI0LCAwLjAwNjI4NCwgMC4wMDYzLCAwLjAwNjMxNywgMC4wMDYzMjQsIDAuMDA2MzMzIiwgXAotICAgICAgICAgICIwLjAwNjEyNSwgMC4wMDYyMzUsIDAuMDA2Mjc5LCAwLjAwNjI5NSwgMC4wMDYzMDksIDAuMDA2MzE4LCAwLjAwNjMyNiIsIFwKLSAgICAgICAgICAiMC4wMDYxMjEsIDAuMDA2MjMxLCAwLjAwNjI3NSwgMC4wMDYyOTEsIDAuMDA2MzA3LCAwLjAwNjMxNSwgMC4wMDYzMjQiLCBcCi0gICAgICAgICAgIjAuMDA2MTIsIDAuMDA2MjMsIDAuMDA2MjczLCAwLjAwNjI5LCAwLjAwNjMwNiwgMC4wMDYzMTQsIDAuMDA2MzIzIiwgXAotICAgICAgICAgICIwLjAwNjEyLCAwLjAwNjIzLCAwLjAwNjI3MywgMC4wMDYyOTEsIDAuMDA2MzA0LCAwLjAwNjMxNSwgMC4wMDYzMjMiLCBcCi0gICAgICAgICAgIjAuMDA2MTIsIDAuMDA2MjMxLCAwLjAwNjI3MywgMC4wMDYyOSwgMC4wMDYzMDYsIDAuMDA2MzE0LCAwLjAwNjMyMyIsIFwKLSAgICAgICAgICAiMC4wMDYxMjEsIDAuMDA2MjMxLCAwLjAwNjI3NSwgMC4wMDYyOTEsIDAuMDA2MzA3LCAwLjAwNjMxNiwgMC4wMDYzMjMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjg3OSwgMC4wMDcwMywgMC4wMDcwODgsIDAuMDA3MTA5LCAwLjAwNzEzLCAwLjAwNzE0MiwgMC4wMDcxNTIiLCBcCi0gICAgICAgICAgIjAuMDA2ODY4LCAwLjAwNzAxOCwgMC4wMDcwNzUsIDAuMDA3MDk3LCAwLjAwNzExOCwgMC4wMDcxMywgMC4wMDcxNCIsIFwKLSAgICAgICAgICAiMC4wMDY4NjMsIDAuMDA3MDEyLCAwLjAwNzA3LCAwLjAwNzA5MiwgMC4wMDcxMTMsIDAuMDA3MTI0LCAwLjAwNzEzNSIsIFwKLSAgICAgICAgICAiMC4wMDY4NiwgMC4wMDcwMDksIDAuMDA3MDY3LCAwLjAwNzA4OSwgMC4wMDcxMSwgMC4wMDcxMjEsIDAuMDA3MTMyIiwgXAotICAgICAgICAgICIwLjAwNjg1OSwgMC4wMDcwMDgsIDAuMDA3MDY2LCAwLjAwNzA4NywgMC4wMDcxMDgsIDAuMDA3MTIsIDAuMDA3MTMxIiwgXAotICAgICAgICAgICIwLjAwNjg2LCAwLjAwNzAxLCAwLjAwNzA2NywgMC4wMDcwODksIDAuMDA3MTEsIDAuMDA3MTIxLCAwLjAwNzEzMiIsIFwKLSAgICAgICAgICAiMC4wMDY4NjEsIDAuMDA3MDExLCAwLjAwNzA2OCwgMC4wMDcwOSwgMC4wMDcxMTEsIDAuMDA3MTIyLCAwLjAwNzEzMyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIk0xIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNTk0NSwgMC4wMDYwNTQsIDAuMDA2MDk4LCAwLjAwNjExMywgMC4wMDYxMjgsIDAuMDA2MTM3LCAwLjAwNjE0NiIsIFwKLSAgICAgICAgICAiMC4wMDU5MzgsIDAuMDA2MDQ3LCAwLjAwNjA5LCAwLjAwNjEwNiwgMC4wMDYxMjEsIDAuMDA2MTI5LCAwLjAwNjEzNyIsIFwKLSAgICAgICAgICAiMC4wMDU5MzYsIDAuMDA2MDQ2LCAwLjAwNjA4NywgMC4wMDYxMDMsIDAuMDA2MTE4LCAwLjAwNjEyNywgMC4wMDYxMzUiLCBcCi0gICAgICAgICAgIjAuMDA1OTM0LCAwLjAwNjA0MiwgMC4wMDYwODUsIDAuMDA2MTAyLCAwLjAwNjExNiwgMC4wMDYxMjQsIDAuMDA2MTMzIiwgXAotICAgICAgICAgICIwLjAwNTkzNSwgMC4wMDYwNDMsIDAuMDA2MDg2LCAwLjAwNjEwMywgMC4wMDYxMTcsIDAuMDA2MTI2LCAwLjAwNjEzNSIsIFwKLSAgICAgICAgICAiMC4wMDU5MzUsIDAuMDA2MDQ0LCAwLjAwNjA4NywgMC4wMDYxMDQsIDAuMDA2MTE5LCAwLjAwNjEyNywgMC4wMDYxMzMiLCBcCi0gICAgICAgICAgIjAuMDA1OTM3LCAwLjAwNjA0NiwgMC4wMDYwODgsIDAuMDA2MTA1LCAwLjAwNjEyLCAwLjAwNjEyOCwgMC4wMDYxMzciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjY4LCAwLjAwNjgzMiwgMC4wMDY4OSwgMC4wMDY5MTIsIDAuMDA2OTMzLCAwLjAwNjk0NCwgMC4wMDY5NTUiLCBcCi0gICAgICAgICAgIjAuMDA2NjY3LCAwLjAwNjgxOCwgMC4wMDY4NzYsIDAuMDA2ODk4LCAwLjAwNjkxOSwgMC4wMDY5MzEsIDAuMDA2OTQxIiwgXAotICAgICAgICAgICIwLjAwNjY2MiwgMC4wMDY4MTMsIDAuMDA2ODcxLCAwLjAwNjg5MiwgMC4wMDY5MTMsIDAuMDA2OTI1LCAwLjAwNjkzNiIsIFwKLSAgICAgICAgICAiMC4wMDY2NTksIDAuMDA2ODEsIDAuMDA2ODY4LCAwLjAwNjg5LCAwLjAwNjkxMSwgMC4wMDY5MjIsIDAuMDA2OTMzIiwgXAotICAgICAgICAgICIwLjAwNjY1OSwgMC4wMDY4MTEsIDAuMDA2ODY5LCAwLjAwNjg5MSwgMC4wMDY5MTIsIDAuMDA2OTIzLCAwLjAwNjkzNCIsIFwKLSAgICAgICAgICAiMC4wMDY2NjEsIDAuMDA2ODEyLCAwLjAwNjg3LCAwLjAwNjg5MiwgMC4wMDY5MTMsIDAuMDA2OTI0LCAwLjAwNjkzNSIsIFwKLSAgICAgICAgICAiMC4wMDY2NjQsIDAuMDA2ODE1LCAwLjAwNjg3MywgMC4wMDY4OTQsIDAuMDA2OTE1LCAwLjAwNjkyNywgMC4wMDY5MzciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNTYwNiwgMC4wMDU3MTYsIDAuMDA1NzU5LCAwLjAwNTc3NSwgMC4wMDU3OSwgMC4wMDU3OTksIDAuMDA1ODA1IiwgXAotICAgICAgICAgICIwLjAwNTU4NiwgMC4wMDU2OTYsIDAuMDA1NzM5LCAwLjAwNTc1NiwgMC4wMDU3NzEsIDAuMDA1Nzc5LCAwLjAwNTc4NyIsIFwKLSAgICAgICAgICAiMC4wMDU1NzcsIDAuMDA1Njg3LCAwLjAwNTczLCAwLjAwNTc0NiwgMC4wMDU3NjIsIDAuMDA1NzcsIDAuMDA1Nzc3IiwgXAotICAgICAgICAgICIwLjAwNTU3LCAwLjAwNTY4LCAwLjAwNTcyMywgMC4wMDU3NDEsIDAuMDA1NzU1LCAwLjAwNTc2MywgMC4wMDU3NjkiLCBcCi0gICAgICAgICAgIjAuMDA1NTY2LCAwLjAwNTY3NiwgMC4wMDU3MTksIDAuMDA1NzM2LCAwLjAwNTc1MSwgMC4wMDU3NiwgMC4wMDU3NjYiLCBcCi0gICAgICAgICAgIjAuMDA1NTYsIDAuMDA1NjY5LCAwLjAwNTcxMiwgMC4wMDU3MjgsIDAuMDA1NzQzLCAwLjAwNTc1NCwgMC4wMDU3NiIsIFwKLSAgICAgICAgICAiMC4wMDU1NTUsIDAuMDA1NjYyLCAwLjAwNTcwNiwgMC4wMDU3MjMsIDAuMDA1NzM5LCAwLjAwNTc0NiwgMC4wMDU3NTQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwOTIwOSwgMC4wMDkzNiwgMC4wMDk0MTcsIDAuMDA5NDM5LCAwLjAwOTQ1OSwgMC4wMDk0NzEsIDAuMDA5NDgxIiwgXAotICAgICAgICAgICIwLjAwOTE5OSwgMC4wMDkzNSwgMC4wMDk0MDgsIDAuMDA5NDMsIDAuMDA5NDUsIDAuMDA5NDYxLCAwLjAwOTQ3MiIsIFwKLSAgICAgICAgICAiMC4wMDkxOTQsIDAuMDA5MzQ1LCAwLjAwOTQwMywgMC4wMDk0MjQsIDAuMDA5NDQ1LCAwLjAwOTQ1NiwgMC4wMDk0NjciLCBcCi0gICAgICAgICAgIjAuMDA5MTkxLCAwLjAwOTM0MiwgMC4wMDk0LCAwLjAwOTQyMSwgMC4wMDk0NDIsIDAuMDA5NDUzLCAwLjAwOTQ2NCIsIFwKLSAgICAgICAgICAiMC4wMDkxODksIDAuMDA5MzM5LCAwLjAwOTM5NywgMC4wMDk0MTgsIDAuMDA5NDM5LCAwLjAwOTQ1LCAwLjAwOTQ2MSIsIFwKLSAgICAgICAgICAiMC4wMDkxODUsIDAuMDA5MzM0LCAwLjAwOTM5MiwgMC4wMDk0MTMsIDAuMDA5NDM1LCAwLjAwOTQ0NiwgMC4wMDk0NTciLCBcCi0gICAgICAgICAgIjAuMDA5MTg0LCAwLjAwOTMzLCAwLjAwOTM4OCwgMC4wMDk0MSwgMC4wMDk0MzIsIDAuMDA5NDQzLCAwLjAwOTQ1NCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlgyIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNTIzNywgMC4wMDUzOCwgMC4wMDU0MTIsIDAuMDA1NDIyLCAwLjAwNTQzMiwgMC4wMDU0MzYsIDAuMDA1NDQxIiwgXAotICAgICAgICAgICIwLjAwNTI0NCwgMC4wMDUzODYsIDAuMDA1NDE4LCAwLjAwNTQyOSwgMC4wMDU0MzgsIDAuMDA1NDQ0LCAwLjAwNTQ0NyIsIFwKLSAgICAgICAgICAiMC4wMDUyNzQsIDAuMDA1NDEzLCAwLjAwNTQ0NiwgMC4wMDU0NTYsIDAuMDA1NDY2LCAwLjAwNTQ3LCAwLjAwNTQ3NyIsIFwKLSAgICAgICAgICAiMC4wMDUyOTUsIDAuMDA1NDMsIDAuMDA1NDYzLCAwLjAwNTQ3NCwgMC4wMDU0ODUsIDAuMDA1NDg5LCAwLjAwNTQ5NiIsIFwKLSAgICAgICAgICAiMC4wMDUzMTYsIDAuMDA1NDQ4LCAwLjAwNTQ4LCAwLjAwNTQ5MywgMC4wMDU1MDMsIDAuMDA1NTA3LCAwLjAwNTUxMyIsIFwKLSAgICAgICAgICAiMC4wMDUzNDgsIDAuMDA1NDc1LCAwLjAwNTUwNywgMC4wMDU1MTksIDAuMDA1NTMxLCAwLjAwNTUzNiwgMC4wMDU1NDIiLCBcCi0gICAgICAgICAgIjAuMDA1MzcsIDAuMDA1NDk1LCAwLjAwNTUyOCwgMC4wMDU1NCwgMC4wMDU1NTEsIDAuMDA1NTU3LCAwLjAwNTU2MyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0ODMsIDAuMDA1MDE4LCAwLjAwNTA2NCwgMC4wMDUwNzksIDAuMDA1MDkzLCAwLjAwNTEsIDAuMDA1MTA3IiwgXAotICAgICAgICAgICIwLjAwNDgzMiwgMC4wMDUwMTgsIDAuMDA1MDY0LCAwLjAwNTA4LCAwLjAwNTA5NCwgMC4wMDUxMDEsIDAuMDA1MTA4IiwgXAotICAgICAgICAgICIwLjAwNDg1OCwgMC4wMDUwNDEsIDAuMDA1MDg3LCAwLjAwNTEwMywgMC4wMDUxMTcsIDAuMDA1MTI1LCAwLjAwNTEzMiIsIFwKLSAgICAgICAgICAiMC4wMDQ4ODIsIDAuMDA1MDYxLCAwLjAwNTEwNywgMC4wMDUxMjMsIDAuMDA1MTM4LCAwLjAwNTE0NiwgMC4wMDUxNTQiLCBcCi0gICAgICAgICAgIjAuMDA0OTExLCAwLjAwNTA4NywgMC4wMDUxMzQsIDAuMDA1MTUsIDAuMDA1MTY1LCAwLjAwNTE3NCwgMC4wMDUxODEiLCBcCi0gICAgICAgICAgIjAuMDA0OTUsIDAuMDA1MTIsIDAuMDA1MTY2LCAwLjAwNTE4MywgMC4wMDUxOTgsIDAuMDA1MjA3LCAwLjAwNTIxNSIsIFwKLSAgICAgICAgICAiMC4wMDQ5NzksIDAuMDA1MTQ1LCAwLjAwNTE5MSwgMC4wMDUyMDgsIDAuMDA1MjI0LCAwLjAwNTIzMywgMC4wMDUyNDEiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFMpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTQwNTQ4OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTQwMTI3OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTQwNTQ4OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDc3OCwgMC4wMDA3NjYsIDAuMDAwNzU5LCAwLjAwMDc1NCwgMC4wMDA3NSwgMC4wMDA3NDcsIDAuMDAwNzQ0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyMzU3LCAwLjAwMjM1MSwgMC4wMDIzNDksIDAuMDAyMzQ1LCAwLjAwMjM0NSwgMC4wMDIzNDMsIDAuMDAyMzQyIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihYMikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNTEzNTE7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNTEyMjY7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNTEzNTE7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMDgsIDAuMDAwMDYsIDAuMDAwMDQ5LCAwLjAwMDA0NiwgMC4wMDAwNDUsIDAuMDAwMDQ3LCAwLjAwMDA0NCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTMxNSwgMC4wMDEzMDIsIDAuMDAxMjk1LCAwLjAwMTI5MiwgMC4wMDEyOSwgMC4wMDEyODgsIDAuMDAxMjg5Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IEJVRlg2ICoKLSAqIC0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChCVUZYNikgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjI3MDQyNDsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNTQ1ODQ7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNTQ0NzU7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNTQ1ODQ7Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC43NTY3MjU7Ci0gICAgZnVuY3Rpb24gOiAiQSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjE3ODYsIDAuMTQ3MTgsIDAuMjMxMjM2LCAwLjI5MTE5LCAwLjM4NzI2NywgMC40NzEyMjcsIDAuNTkxMjQxIiwgXAotICAgICAgICAgICIwLjA3MzM4NCwgMC4xNTkwMDIsIDAuMjQzMDQ0LCAwLjMwMzAxMiwgMC4zOTkwNzgsIDAuNDgyOTg1LCAwLjYwMjk1OCIsIFwKLSAgICAgICAgICAiMC4wODgyOTQsIDAuMTczOTk2LCAwLjI1ODA2MiwgMC4zMTgwNzgsIDAuNDE0MjEzLCAwLjQ5ODE2NiwgMC42MTc5MDMiLCBcCi0gICAgICAgICAgIjAuMTAzMjI3LCAwLjE4ODgzNiwgMC4yNzI5MTEsIDAuMzMyOTM3LCAwLjQyODk1NCwgMC41MTMyMSwgMC42MzMwMjMiLCBcCi0gICAgICAgICAgIjAuMTE3NzQ4LCAwLjIwMzU0NSwgMC4yODc2MzIsIDAuMzQ3NjcyLCAwLjQ0MzY4MSwgMC41Mjc4ODEsIDAuNjQ3NzczIiwgXAotICAgICAgICAgICIwLjEzOTUxMywgMC4yMjUyNTEsIDAuMzA5MzUzLCAwLjM2OTMzMywgMC40NjU0MDQsIDAuNTQ5NDc1LCAwLjY2OTQ0IiwgXAotICAgICAgICAgICIwLjE1NjcyMywgMC4yNDI5MDQsIDAuMzI2OTUxLCAwLjM4NzAyLCAwLjQ4MzAzNiwgMC41NjcwMjYsIDAuNjg3MjA2Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQyMDg0LCAwLjIwODAwNSwgMC4zNzgzOTYsIDAuNTAxMjQsIDAuNjk3MzYxLCAwLjg2ODM4OCwgMS4xMTI5NSIsIFwKLSAgICAgICAgICAiMC4wNDIwMjgsIDAuMjA4NzY5LCAwLjM3ODY5MiwgMC41MDEzMDMsIDAuNjk1MDcyLCAwLjg2NTEzNCwgMS4xMTExMSIsIFwKLSAgICAgICAgICAiMC4wNDIwMzUsIDAuMjA4MzI3LCAwLjM3OTM3NCwgMC41MDA2MDUsIDAuNjk1NDY4LCAwLjg2NjQ0NiwgMS4xMTA4NCIsIFwKLSAgICAgICAgICAiMC4wNDIyODYsIDAuMjA4MzExLCAwLjM3OTM2MiwgMC41MDA2ODksIDAuNjk3MDM1LCAwLjg2NjM5NiwgMS4xMDk5MiIsIFwKLSAgICAgICAgICAiMC4wNDI5OTMsIDAuMjA4MzU3LCAwLjM3OTM4MywgMC41MDA2MTMsIDAuNjk3MjgyLCAwLjg2NjI4MiwgMS4xMTA0NyIsIFwKLSAgICAgICAgICAiMC4wNDQ5MDMsIDAuMjA5MTEyLCAwLjM3ODQxMSwgMC41MDE1NTQsIDAuNjk1MjU5LCAwLjg2NjkxMiwgMS4xMDk5IiwgXAotICAgICAgICAgICIwLjA0NzI4LCAwLjIwOTYyMSwgMC4zNzk1ODgsIDAuNTAwMzk3LCAwLjY5NTUyOCwgMC44NjYwODQsIDEuMTEwMjgiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjIwMTgsIDAuMTYyNzY3LCAwLjI2MjIxMywgMC4zMzMzMjIsIDAuNDQ2OTgxLCAwLjU0NjQ2NSwgMC42ODgzMTgiLCBcCi0gICAgICAgICAgIjAuMDczNjMsIDAuMTc0MzgxLCAwLjI3Mzg4NCwgMC4zNDQ5NjUsIDAuNDU4NTYyLCAwLjU1NzkxMiwgMC42OTk5NTQiLCBcCi0gICAgICAgICAgIjAuMDg4MzU4LCAwLjE4OTIwMywgMC4yODg2ODIsIDAuMzU5NzU4LCAwLjQ3MzQ1NywgMC41NzI5MDQsIDAuNzE0ODI1IiwgXAotICAgICAgICAgICIwLjEwMjg5LCAwLjIwMzgyNiwgMC4zMDMzMjgsIDAuMzc0NDIxLCAwLjQ4ODIzNiwgMC41ODc1NTcsIDAuNzI5NDYiLCBcCi0gICAgICAgICAgIjAuMTE2NjcxLCAwLjIxNzY2MSwgMC4zMTcxNjUsIDAuMzg4Mjc3LCAwLjUwMjEwMSwgMC42MDEyOTMsIDAuNzQzMzUyIiwgXAotICAgICAgICAgICIwLjEzNjU1MywgMC4yMzc3MDEsIDAuMzM3MjI4LCAwLjQwODQwNCwgMC41MjIwMjYsIDAuNjIxNTYzLCAwLjc2MzQwMSIsIFwKLSAgICAgICAgICAiMC4xNTIxNjQsIDAuMjUzNDk2LCAwLjM1Mjk5NSwgMC40MjQwMzEsIDAuNTM3Njk1LCAwLjYzNzQ0LCAwLjc3OTE2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQ1NTk2LCAwLjIzOTk2MSwgMC40MzcyNTUsIDAuNTc3MTQ1LCAwLjgwMjM1NiwgMC45OTkzMjEsIDEuMjgwMTIiLCBcCi0gICAgICAgICAgIjAuMDQ1NjI0LCAwLjIzOTk2MSwgMC40MzU2MzMsIDAuNTc3NDc4LCAwLjgwMjY4NywgMS4wMDE5NywgMS4yODAwOCIsIFwKLSAgICAgICAgICAiMC4wNDU2NDQsIDAuMjM5OTQ5LCAwLjQzNjgzNSwgMC41NzczOTQsIDAuODAzMDU2LCAxLjAwMDI2LCAxLjI3OTkzIiwgXAotICAgICAgICAgICIwLjA0NTg3MiwgMC4yMzk5ODUsIDAuNDM2NzM1LCAwLjU3NjU1LCAwLjgwMjU0NSwgMS4wMDA0NSwgMS4yODAxOSIsIFwKLSAgICAgICAgICAiMC4wNDY0NTUsIDAuMjM5MDg0LCAwLjQzNzI3MSwgMC41Nzc5MDMsIDAuODAxNTY1LCAxLjAwMTUzLCAxLjI4NDg3IiwgXAotICAgICAgICAgICIwLjA0ODE2MiwgMC4yNDAxMjcsIDAuNDM3MzI1LCAwLjU3NzMwOSwgMC44MDMwNTksIDAuOTk4ODc1LCAxLjI4MDAxIiwgXAotICAgICAgICAgICIwLjA1MDAyMSwgMC4yNDAwNTEsIDAuNDM2OTIyLCAwLjU3Nzc3NCwgMC44MDE5NTYsIDEuMDAwODIsIDEuMjc5OTgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNTI4NCwgMC4wMDU0MDUsIDAuMDA1NDE0LCAwLjAwNTQxMSwgMC4wMDU0MTQsIDAuMDA1NDE1LCAwLjAwNTQxNSIsIFwKLSAgICAgICAgICAiMC4wMDUyMDYsIDAuMDA1MzM1LCAwLjAwNTM0OCwgMC4wMDUzNTYsIDAuMDA1MzU4LCAwLjAwNTM1OSwgMC4wMDUzNTgiLCBcCi0gICAgICAgICAgIjAuMDA1MTM0LCAwLjAwNTI4NCwgMC4wMDUzMDEsIDAuMDA1MzA4LCAwLjAwNTMxNywgMC4wMDUzMTgsIDAuMDA1MzIiLCBcCi0gICAgICAgICAgIjAuMDA1MDg5LCAwLjAwNTI1NywgMC4wMDUyODEsIDAuMDA1Mjg5LCAwLjAwNTI5NiwgMC4wMDUyOTksIDAuMDA1MzAyIiwgXAotICAgICAgICAgICIwLjAwNTA1MywgMC4wMDUyMzIsIDAuMDA1MjYyLCAwLjAwNTI3NSwgMC4wMDUyODIsIDAuMDA1Mjg3LCAwLjAwNTI4OSIsIFwKLSAgICAgICAgICAiMC4wMDUwNCwgMC4wMDUyMTYsIDAuMDA1MjUsIDAuMDA1MjYyLCAwLjAwNTI3MywgMC4wMDUyNzksIDAuMDA1Mjg0IiwgXAotICAgICAgICAgICIwLjAwNTA0MywgMC4wMDUxOTksIDAuMDA1MjQ4LCAwLjAwNTI1NiwgMC4wMDUyNjksIDAuMDA1Mjc3LCAwLjAwNTI4MyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2ODg4LCAwLjAwNzA0NCwgMC4wMDcwNjIsIDAuMDA3MDY3LCAwLjAwNzA3MSwgMC4wMDcwNzMsIDAuMDA3MDc2IiwgXAotICAgICAgICAgICIwLjAwNjgxNiwgMC4wMDY5OTUsIDAuMDA3MDE3LCAwLjAwNzAyMywgMC4wMDcwMjksIDAuMDA3MDMyLCAwLjAwNzAzNCIsIFwKLSAgICAgICAgICAiMC4wMDY3NDIsIDAuMDA2OTQ4LCAwLjAwNjk3OCwgMC4wMDY5ODgsIDAuMDA2OTk2LCAwLjAwNywgMC4wMDcwMDMiLCBcCi0gICAgICAgICAgIjAuMDA2Njk0LCAwLjAwNjkxNiwgMC4wMDY5NTQsIDAuMDA2OTY2LCAwLjAwNjk3NywgMC4wMDY5ODIsIDAuMDA2OTg3IiwgXAotICAgICAgICAgICIwLjAwNjY2LCAwLjAwNjg5LCAwLjAwNjkzNSwgMC4wMDY5NSwgMC4wMDY5NjMsIDAuMDA2OTcsIDAuMDA2OTc2IiwgXAotICAgICAgICAgICIwLjAwNjYyNywgMC4wMDY4NTYsIDAuMDA2OTEyLCAwLjAwNjkyOSwgMC4wMDY5NDYsIDAuMDA2OTU0LCAwLjAwNjk2MyIsIFwKLSAgICAgICAgICAiMC4wMDY2MDQsIDAuMDA2ODM4LCAwLjAwNjg5NiwgMC4wMDY5MTgsIDAuMDA2OTM3LCAwLjAwNjk0OCwgMC4wMDY5NTciKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IENMS0FORDJYOCAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKENMS0FORDJYOCkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjQwNzY1NzsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAyMzY1NDQ7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAyMzY1NDQ7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAyMzUzNTQ7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNTk2LCAwLjAwMDU5NiwgMC4wMDA1OTYsIDAuMDAwNTk2LCAwLjAwMDU5NSwgMC4wMDA1OTYsIDAuMDAwNTk2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNjM3LCAwLjAwMDYwNywgMC4wMDA2MDMsIDAuMDAwNjAyLCAwLjAwMDYwMSwgMC4wMDA2MDEsIDAuMDAwNiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAyMjY5MzM7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAyMjY5MzM7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAyMjY4NTQ7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMDI0LCAwLjAwMDAyNCwgMC4wMDAwMjQsIDAuMDAwMDIzLCAwLjAwMDAyNCwgMC4wMDAwMjQsIDAuMDAwMDI0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNzYxLCAwLjAwMDc2MiwgMC4wMDA3NjEsIDAuMDAwNzYyLCAwLjAwMDc2MiwgMC4wMDA3NjIsIDAuMDAwNzYyIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDEuMDI4ODY7Ci0gICAgZnVuY3Rpb24gOiAiKEEgQikiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDgxNTgxLCAwLjE1MDA5NywgMC4yMTM4MjIsIDAuMjU5MjM4LCAwLjMzMTg2MywgMC4zOTUzODcsIDAuNDg2MTc4IiwgXAotICAgICAgICAgICIwLjA5MzEzNSwgMC4xNjE1MjIsIDAuMjI1MjM3LCAwLjI3MDYzMSwgMC4zNDMyOTQsIDAuNDA2Nzg1LCAwLjQ5NzU1MiIsIFwKLSAgICAgICAgICAiMC4xMDY2MDMsIDAuMTc1MjM0LCAwLjIzODk3LCAwLjI4NDM2NSwgMC4zNTY5OTgsIDAuNDIwNTI1LCAwLjUxMTMwNCIsIFwKLSAgICAgICAgICAiMC4xMTk5OTMsIDAuMTg4NjU4LCAwLjI1MjQwOSwgMC4yOTc4MDMsIDAuMzcwNDYxLCAwLjQzMzk2MSwgMC41MjQ1OTEiLCBcCi0gICAgICAgICAgIjAuMTMzMTY2LCAwLjIwMTc4NSwgMC4yNjU1MiwgMC4zMTA5MTgsIDAuMzgzNTc3LCAwLjQ0NzA4MSwgMC41Mzc5OTMiLCBcCi0gICAgICAgICAgIjAuMTUzNjQzLCAwLjIyMjQ0MywgMC4yODYxOTksIDAuMzMxNjA3LCAwLjQwNDIyNywgMC40Njc3NTQsIDAuNTU4NTk2IiwgXAotICAgICAgICAgICIwLjE3MDUwMSwgMC4yMzk1NDcsIDAuMzAzMjczLCAwLjM0ODY4NiwgMC40MjEzMTUsIDAuNDg0ODcxLCAwLjU3NTYzNiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0MTUxOCwgMC4xNjQzNDMsIDAuMjkxMjU0LCAwLjM4MzUzLCAwLjUyOTcyLCAwLjY2MDIwOSwgMC44NDE3NzciLCBcCi0gICAgICAgICAgIjAuMDQxNTIyLCAwLjE2NDQwMSwgMC4yOTEyMTQsIDAuMzgyODcyLCAwLjUyOTU1NSwgMC42NjAxOTgsIDAuODQzNTQ5IiwgXAotICAgICAgICAgICIwLjA0MTUyMywgMC4xNjQzNTMsIDAuMjkxNzc4LCAwLjM4MzQxOSwgMC41MzAwNDksIDAuNjU4OTkyLCAwLjg0NTE0OCIsIFwKLSAgICAgICAgICAiMC4wNDE0NzksIDAuMTY0Mjc1LCAwLjI5MSwgMC4zODI4MzcsIDAuNTMxODIzLCAwLjY1Nzc3MywgMC44NDIxMjEiLCBcCi0gICAgICAgICAgIjAuMDQxNzU0LCAwLjE2NDI4LCAwLjI5MDk2MywgMC4zODI5NzEsIDAuNTMxNzg3LCAwLjY2MDE1OSwgMC44NDI4ODUiLCBcCi0gICAgICAgICAgIjAuMDQyNDk0LCAwLjE2NDU3NywgMC4yOTEwOTUsIDAuMzgzNTQ5LCAwLjUyOTk1OSwgMC42NjAwNzYsIDAuODQyNjczIiwgXAotICAgICAgICAgICIwLjA0MzYxOCwgMC4xNjUwMDYsIDAuMjkxNTc1LCAwLjM4MzAyNCwgMC41MzAwMTMsIDAuNjYwMjcsIDAuODQzNDY2Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDgwNDY5LCAwLjE1OTAxNCwgMC4yMzM3NjcsIDAuMjg3MDQ2LCAwLjM3MjIzNSwgMC40NDY3MSwgMC41NTMxMDgiLCBcCi0gICAgICAgICAgIjAuMDkxODgsIDAuMTcwMzU2LCAwLjI0NTEzNSwgMC4yOTg0NDIsIDAuMzgzNjAyLCAwLjQ1ODA4NSwgMC41NjQ0NzUiLCBcCi0gICAgICAgICAgIjAuMTA2NDA5LCAwLjE4NDkzNSwgMC4yNTk3MjEsIDAuMzEzMDI5LCAwLjM5ODE5NCwgMC40NzI2NzIsIDAuNTc5MDU3IiwgXAotICAgICAgICAgICIwLjEyMTI3NCwgMC4xOTk3OTgsIDAuMjc0NjE5LCAwLjMyNzkyLCAwLjQxMzA4OSwgMC40ODc1ODEsIDAuNTkzOTg2IiwgXAotICAgICAgICAgICIwLjEzNTk2MSwgMC4yMTQ0NzgsIDAuMjg5Mjk3LCAwLjM0MjYxNCwgMC40Mjc4MDMsIDAuNTAyMzA3LCAwLjYwODY4NCIsIFwKLSAgICAgICAgICAiMC4xNTg5MDgsIDAuMjM3NTUxLCAwLjMxMjM3LCAwLjM2NTcwMywgMC40NTA4OSwgMC41MjUzNzYsIDAuNjMxNzc4IiwgXAotICAgICAgICAgICIwLjE3NzkyNCwgMC4yNTY3LCAwLjMzMTUwOCwgMC4zODQ4MzIsIDAuNDcwMDE2LCAwLjU0NDUzLCAwLjY1MDkxMSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0MzU5NCwgMC4xODYyNzEsIDAuMzMyNzA4LCAwLjQzOTUwOCwgMC42MDg2NDYsIDAuNzU3MTQsIDAuOTY5MTU4IiwgXAotICAgICAgICAgICIwLjA0MzYwNCwgMC4xODYzNzEsIDAuMzMzMjE2LCAwLjQzOTM2OSwgMC42MDg3MTIsIDAuNzU2MjE0LCAwLjk2NzkzMiIsIFwKLSAgICAgICAgICAiMC4wNDM2OTUsIDAuMTg2MzY2LCAwLjMzMjg5LCAwLjQzOTM0MSwgMC42MDc1MzksIDAuNzU3MTI4LCAwLjk2ODA1MiIsIFwKLSAgICAgICAgICAiMC4wNDM2MzUsIDAuMTg2MzczLCAwLjMzMzI0NywgMC40MzkzMjMsIDAuNjA3NjAzLCAwLjc1NzAxOSwgMC45Njc5NjEiLCBcCi0gICAgICAgICAgIjAuMDQzODExLCAwLjE4NjI1OSwgMC4zMzM4MjksIDAuNDM5MzQ1LCAwLjYwODUwOSwgMC43NTU4NzcsIDAuOTY4OTI0IiwgXAotICAgICAgICAgICIwLjA0NDUzMiwgMC4xODY1MDEsIDAuMzMyODc5LCAwLjQzOTM4OCwgMC42MDg2MDgsIDAuNzU3MjgyLCAwLjk2NzczOSIsIFwKLSAgICAgICAgICAiMC4wNDYxNywgMC4xODY3NjYsIDAuMzMzNTc2LCAwLjQzODgwNiwgMC42MDgwMzEsIDAuNzU3MTIzLCAwLjk2OTY1OSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3Njg2NCwgMC4xNDUzMjYsIDAuMjA5MDQ5LCAwLjI1NDQ1MiwgMC4zMjcwNzYsIDAuMzkwNTU0LCAwLjQ4MTM3MiIsIFwKLSAgICAgICAgICAiMC4wODcxMDQsIDAuMTU1NzA0LCAwLjIxOTQ0LCAwLjI2NDgzNywgMC4zMzc0NSwgMC40MDEwNDYsIDAuNDkxNzU0IiwgXAotICAgICAgICAgICIwLjEwMDUyMiwgMC4xNjkxNTcsIDAuMjMyOTA3LCAwLjI3ODMwMiwgMC4zNTA5NTksIDAuNDE0NDYyLCAwLjUwNTI5NCIsIFwKLSAgICAgICAgICAiMC4xMTQxNDksIDAuMTgyODAyLCAwLjI0NjU1LCAwLjI5MTk1MiwgMC4zNjQ2MTEsIDAuNDI4MTE1LCAwLjUxOTAyOSIsIFwKLSAgICAgICAgICAiMC4xMjc2NDIsIDAuMTk1ODk0LCAwLjI1OTYxNCwgMC4zMDUwMjksIDAuMzc3NjU3LCAwLjQ0MTI3MSwgMC41MzE5NTYiLCBcCi0gICAgICAgICAgIjAuMTQ4MTkxLCAwLjIxNjkyMSwgMC4yODA2MjEsIDAuMzI2MDMyLCAwLjM5ODcxNCwgMC40NjIyMTMsIDAuNTUzMDM4IiwgXAotICAgICAgICAgICIwLjE2NDk5NywgMC4yMzQwNTUsIDAuMjk3ODUzLCAwLjM0MzI2LCAwLjQxNTg4LCAwLjQ3OTQyNCwgMC41NzAyNTkiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDE2LCAwLjE2NDQzOCwgMC4yOTA2ODQsIDAuMzgzNDMsIDAuNTMwOTA2LCAwLjY1OTkxNywgMC44NDUxMDkiLCBcCi0gICAgICAgICAgIjAuMDQxNjA5LCAwLjE2NDQzMiwgMC4yOTE3OSwgMC4zODI1NiwgMC41MzA0OTgsIDAuNjU4NDMyLCAwLjg0NTA3MyIsIFwKLSAgICAgICAgICAiMC4wNDE1MzksIDAuMTY0MjEsIDAuMjkxMDA1LCAwLjM4MjkxLCAwLjUzMTc1NCwgMC42NjAxNTcsIDAuODQzMTU4IiwgXAotICAgICAgICAgICIwLjA0MTY4MiwgMC4xNjQyMjcsIDAuMjkxMDU3LCAwLjM4Mjk4MywgMC41MzE3MDEsIDAuNjYwMTUyLCAwLjg0Mjg4MSIsIFwKLSAgICAgICAgICAiMC4wNDE4NCwgMC4xNjQ1MzcsIDAuMjkxMjU0LCAwLjM4MjgyNywgMC41MzA4MjEsIDAuNjU4Mzg1LCAwLjg0NDc0NCIsIFwKLSAgICAgICAgICAiMC4wNDM2NzUsIDAuMTY0ODY0LCAwLjI5MTM3NCwgMC4zODI5NDUsIDAuNTI5NTkyLCAwLjY2MDE4NSwgMC44NDI5NTUiLCBcCi0gICAgICAgICAgIjAuMDQ1Mzc1LCAwLjE2NTQ4MiwgMC4yOTE1OTEsIDAuMzgzNjk0LCAwLjUzMDg4MiwgMC42NjAxNjYsIDAuODQzMTE0Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc1MzY2LCAwLjE1MzM0NywgMC4yMjc5MzIsIDAuMjgxMTQxLCAwLjM2NjIxNiwgMC40NDA2ODMsIDAuNTQ3MDY3IiwgXAotICAgICAgICAgICIwLjA4NjY4OSwgMC4xNjQ4MTYsIDAuMjM5NDE1LCAwLjI5MjYyNCwgMC4zNzc3MTYsIDAuNDUyMzEyLCAwLjU1ODU1MiIsIFwKLSAgICAgICAgICAiMC4xMDEyNTQsIDAuMTc5MzQ4LCAwLjI1Mzk1NiwgMC4zMDcxNTEsIDAuMzkyMzIzLCAwLjQ2Njg3MiwgMC41NzMwOTgiLCBcCi0gICAgICAgICAgIjAuMTE1OTU4LCAwLjE5NDA2MSwgMC4yNjg3MTksIDAuMzIxOTU2LCAwLjQwNzA0NCwgMC40ODE2NCwgMC41ODc4ODkiLCBcCi0gICAgICAgICAgIjAuMTMwNDQsIDAuMjA4MjkxLCAwLjI4Mjk0OCwgMC4zMzYxNywgMC40MjEyOTUsIDAuNDk1OTE1LCAwLjYwMjE1NCIsIFwKLSAgICAgICAgICAiMC4xNTI4NDMsIDAuMjMxMTQxLCAwLjMwNTc5NiwgMC4zNTkwNTgsIDAuNDQ0MTYxLCAwLjUxODcxNSwgMC42MjUwMjYiLCBcCi0gICAgICAgICAgIjAuMTcxMTM2LCAwLjI0OTQwMSwgMC4zMjQwMjMsIDAuMzc3MjYsIDAuNDYyMjM2LCAwLjUzNjcyNiwgMC42NDMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDI5NjQsIDAuMTg1NzA1LCAwLjMzMjAwNSwgMC40Mzg5NjIsIDAuNjA4NTc0LCAwLjc1NzIxMiwgMC45Njc1NDMiLCBcCi0gICAgICAgICAgIjAuMDQzMDczLCAwLjE4NTY0MiwgMC4zMzI0MjQsIDAuNDM4MzI1LCAwLjYwODU2NCwgMC43NTU3NzksIDAuOTY5NjUxIiwgXAotICAgICAgICAgICIwLjA0MzAyMiwgMC4xODU3NDcsIDAuMzMyNDI4LCAwLjQzODIzMiwgMC42MDYzMjQsIDAuNzU1NzE2LCAwLjk2OTY1IiwgXAotICAgICAgICAgICIwLjA0MzA2NywgMC4xODU3MTksIDAuMzMyNjAxLCAwLjQzODk0NSwgMC42MDg1NiwgMC43NTU4NDgsIDAuOTY5NjQzIiwgXAotICAgICAgICAgICIwLjA0MzMxNSwgMC4xODU3LCAwLjMzMjEyNywgMC40MzgxMjgsIDAuNjA4NTc4LCAwLjc1NTY2MywgMC45Njk2NTciLCBcCi0gICAgICAgICAgIjAuMDQ0NDksIDAuMTg1OTgzLCAwLjMzMjI5NiwgMC40Mzc3MzIsIDAuNjA4NTk4LCAwLjc1NDgyMSwgMC45NjY5ODQiLCBcCi0gICAgICAgICAgIjAuMDQ2MjEzLCAwLjE4NjQ2MSwgMC4zMzMzMDYsIDAuNDM4NTg4LCAwLjYwODYyLCAwLjc1NjI5MSwgMC45NjYzOTgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNzYzMiwgMC4wMDc4NTUsIDAuMDA3ODg3LCAwLjAwNzg5NiwgMC4wMDc5MDQsIDAuMDA3OTA5LCAwLjAwNzkxMyIsIFwKLSAgICAgICAgICAiMC4wMDc1OTEsIDAuMDA3ODE2LCAwLjAwNzg0OSwgMC4wMDc4NTksIDAuMDA3ODY1LCAwLjAwNzg3MiwgMC4wMDc4OCIsIFwKLSAgICAgICAgICAiMC4wMDc1NDYsIDAuMDA3NzgxLCAwLjAwNzgxNywgMC4wMDc4MjgsIDAuMDA3ODM4LCAwLjAwNzg0MiwgMC4wMDc4NDYiLCBcCi0gICAgICAgICAgIjAuMDA3NTA4LCAwLjAwNzc0OCwgMC4wMDc3OSwgMC4wMDc4MDcsIDAuMDA3ODE0LCAwLjAwNzgxOSwgMC4wMDc4MTgiLCBcCi0gICAgICAgICAgIjAuMDA3NDc0LCAwLjAwNzcyMSwgMC4wMDc3NjYsIDAuMDA3NzgxLCAwLjAwNzc5NCwgMC4wMDc4MDIsIDAuMDA3ODA4IiwgXAotICAgICAgICAgICIwLjAwNzQ0NiwgMC4wMDc2ODksIDAuMDA3NzQzLCAwLjAwNzc2MiwgMC4wMDc3NzcsIDAuMDA3Nzg2LCAwLjAwNzc5NCIsIFwKLSAgICAgICAgICAiMC4wMDc0MjgsIDAuMDA3NjYsIDAuMDA3NzIyLCAwLjAwNzc0LCAwLjAwNzc2NSwgMC4wMDc3NzEsIDAuMDA3NzgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMDgxOSwgMC4wMTExMjksIDAuMDExMTgsIDAuMDExMTk2LCAwLjAxMTIxLCAwLjAxMTIxOCwgMC4wMTEyMjQiLCBcCi0gICAgICAgICAgIjAuMDEwNzQ4LCAwLjAxMTA2MSwgMC4wMTExMTYsIDAuMDExMTMzLCAwLjAxMTE0NywgMC4wMTExNTYsIDAuMDExMTYyIiwgXAotICAgICAgICAgICIwLjAxMDY4NiwgMC4wMTEsIDAuMDExMDY0LCAwLjAxMTA4NCwgMC4wMTExMDMsIDAuMDExMTEyLCAwLjAxMTEyMSIsIFwKLSAgICAgICAgICAiMC4wMTA2NDMsIDAuMDEwOTU0LCAwLjAxMTAyNiwgMC4wMTEwNSwgMC4wMTEwNzMsIDAuMDExMDgzLCAwLjAxMTA5NCIsIFwKLSAgICAgICAgICAiMC4wMTA1OTgsIDAuMDEwOTE0LCAwLjAxMDk5MywgMC4wMTEwMjEsIDAuMDExMDQ4LCAwLjAxMTA2MSwgMC4wMTEwNzUiLCBcCi0gICAgICAgICAgIjAuMDEwNTU2LCAwLjAxMDg3MSwgMC4wMTA5NiwgMC4wMTA5OTMsIDAuMDExMDI1LCAwLjAxMTA0MiwgMC4wMTEwNTciLCBcCi0gICAgICAgICAgIjAuMDEwNTM4LCAwLjAxMDg0MSwgMC4wMTA5MzYsIDAuMDEwOTcyLCAwLjAxMTAwNiwgMC4wMTEwMjUsIDAuMDExMDQ0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDc2MjcsIDAuMDA3ODUzLCAwLjAwNzg4NywgMC4wMDc4OTgsIDAuMDA3OTE5LCAwLjAwNzkxNiwgMC4wMDc5MTYiLCBcCi0gICAgICAgICAgIjAuMDA3NTYxLCAwLjAwNzc5NSwgMC4wMDc4MzIsIDAuMDA3ODQxLCAwLjAwNzg1MSwgMC4wMDc4NTcsIDAuMDA3ODYyIiwgXAotICAgICAgICAgICIwLjAwNzUwMywgMC4wMDc3NCwgMC4wMDc3ODIsIDAuMDA3Nzk4LCAwLjAwNzgxLCAwLjAwNzgxNywgMC4wMDc4MjIiLCBcCi0gICAgICAgICAgIjAuMDA3NDU5LCAwLjAwNzY5MSwgMC4wMDc3NDYsIDAuMDA3NzYzLCAwLjAwNzc3OCwgMC4wMDc3ODUsIDAuMDA3NzkzIiwgXAotICAgICAgICAgICIwLjAwNzQyMywgMC4wMDc2NjEsIDAuMDA3NzIsIDAuMDA3NzQ0LCAwLjAwNzc1OSwgMC4wMDc3NjcsIDAuMDA3Nzc4IiwgXAotICAgICAgICAgICIwLjAwNzM5NiwgMC4wMDc2MzEsIDAuMDA3Njk0LCAwLjAwNzcxOCwgMC4wMDc3NCwgMC4wMDc3NTIsIDAuMDA3NzYzIiwgXAotICAgICAgICAgICIwLjAwNzM4NywgMC4wMDc2MTIsIDAuMDA3NjgxLCAwLjAwNzcwOCwgMC4wMDc3MzIsIDAuMDA3NzQ2LCAwLjAwNzc1NiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA5NTU2LCAwLjAwOTg1NywgMC4wMDk5MDQsIDAuMDA5OTE4LCAwLjAwOTkzMSwgMC4wMDk5MzcsIDAuMDA5OTQzIiwgXAotICAgICAgICAgICIwLjAwOTQ3NywgMC4wMDk3OTMsIDAuMDA5ODQyLCAwLjAwOTg1NywgMC4wMDk4NywgMC4wMDk4NzcsIDAuMDA5ODgzIiwgXAotICAgICAgICAgICIwLjAwOTM5MSwgMC4wMDk3MSwgMC4wMDk3NjcsIDAuMDA5Nzg2LCAwLjAwOTgwMywgMC4wMDk4MTIsIDAuMDA5ODIiLCBcCi0gICAgICAgICAgIjAuMDA5MzIzLCAwLjAwOTY0MywgMC4wMDk3MTQsIDAuMDA5NzM4LCAwLjAwOTc1OCwgMC4wMDk3NjksIDAuMDA5Nzc5IiwgXAotICAgICAgICAgICIwLjAwOTI3MywgMC4wMDk1ODksIDAuMDA5NjcyLCAwLjAwOTcwMSwgMC4wMDk3MjcsIDAuMDA5NzQxLCAwLjAwOTc1NCIsIFwKLSAgICAgICAgICAiMC4wMDkyNDMsIDAuMDA5NTUxLCAwLjAwOTYzOSwgMC4wMDk2NzEsIDAuMDA5NzAyLCAwLjAwOTcxOCwgMC4wMDk3MzMiLCBcCi0gICAgICAgICAgIjAuMDA5MjExLCAwLjAwOTUxNiwgMC4wMDk2MDksIDAuMDA5NjQ1LCAwLjAwOTY3OCwgMC4wMDk2OTcsIDAuMDA5NzE4Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IENMS01YMlgyICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChDTEtNWDJYMikgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjEyODM0MzsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjQ0MjY4OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDY0MjMwNDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2NDQyNjg7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMTU0LCAwLjAwMDE1NywgMC4wMDAxNTgsIDAuMDAwMTU5LCAwLjAwMDE1OSwgMC4wMDAxNTksIDAuMDAwMTYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxNywgMC4wMDAxNjcsIDAuMDAwMTY2LCAwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjQ3MDMyOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDY0NTM5OTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2NDcwMzI7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMTU5LCAwLjAwMDE2MSwgMC4wMDAxNjEsIDAuMDAwMTYyLCAwLjAwMDE2MiwgMC4wMDAxNjIsIDAuMDAwMTYyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMTY3LCAwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY2Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxMjMwODY7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxMjMwMjg7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxMjMwODY7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjAxLCAwLjAwMDE4MywgMC4wMDAxNzIsIDAuMDAwMTY4LCAwLjAwMDE2NywgMC4wMDAxNjcsIDAuMDAwMTY2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxNTk1LCAwLjAwMTU4MywgMC4wMDE1NzUsIDAuMDAxNTcyLCAwLjAwMTU3MSwgMC4wMDE1NjksIDAuMDAxNTY5Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMjYxNTc3OwotICAgIGZ1bmN0aW9uIDogIigoUzAgQikgKyAoIVMwIEEpKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTg3MDM0LCAwLjM3MjY1NywgMC41MTYyMTUsIDAuNjk1NTY0LCAwLjg3NDY4LCAxLjA1Mzc0LCAxLjIzMjc0IiwgXAotICAgICAgICAgICIwLjE5ODUyOCwgMC4zODQxMjYsIDAuNTI3Njc2LCAwLjcwNzAxLCAwLjg4NjEwMywgMS4wNjUxMywgMS4yNDQyMSIsIFwKLSAgICAgICAgICAiMC4yMTIxNDIsIDAuMzk3Nzg1LCAwLjU0MTMzNSwgMC43MjA1NjgsIDAuODk5NzU0LCAxLjA3ODgyLCAxLjI1Nzg2IiwgXAotICAgICAgICAgICIwLjIyNTgwNCwgMC40MTEzOCwgMC41NTQ5MzUsIDAuNzM0MTYxLCAwLjkxMzMxOCwgMS4wOTI0MywgMS4yNzE2NCIsIFwKLSAgICAgICAgICAiMC4yMzk1NjQsIDAuNDI1MTY1LCAwLjU2ODcwNSwgMC43NDgwMzYsIDAuOTI3MTE5LCAxLjEwNjE3LCAxLjI4NTI2IiwgXAotICAgICAgICAgICIwLjI2MTI3NiwgMC40NDY4NywgMC41OTA0MTcsIDAuNzY5NzM2LCAwLjk0ODgyMiwgMS4xMjc4OSwgMS4zMDcwOSIsIFwKLSAgICAgICAgICAiMC4yODA0MTksIDAuNDY1ODg3LCAwLjYwOTQ0OCwgMC43ODg2OTMsIDAuOTY3ODg1LCAxLjE0Njk3LCAxLjMyNTk4Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwOTU2MiwgMC40NTkxNywgMC43NDcwMTMsIDEuMTA5MzUsIDEuNDc2NTQsIDEuODM3MTgsIDIuMjAyNTIiLCBcCi0gICAgICAgICAgIjAuMTA5NTIyLCAwLjQ1OTIxNCwgMC43NDcwMDQsIDEuMTA5MTYsIDEuNDczMTgsIDEuODQwODksIDIuMjAyNDIiLCBcCi0gICAgICAgICAgIjAuMTA5NDc5LCAwLjQ1OTEzMiwgMC43NDcwMjIsIDEuMTExNjYsIDEuNDczMzMsIDEuODM4MDMsIDIuMjAyNDIiLCBcCi0gICAgICAgICAgIjAuMTA5MzgyLCAwLjQ1OTEyNCwgMC43NDcwMTgsIDEuMTExNzYsIDEuNDc2MzIsIDEuODQxMTIsIDIuMjAwNzMiLCBcCi0gICAgICAgICAgIjAuMTA5NDQxLCAwLjQ1OTE4LCAwLjc0NzAwNCwgMS4xMTIyOCwgMS40NzY0MiwgMS44NDA3OCwgMi4yMDIyMyIsIFwKLSAgICAgICAgICAiMC4xMDkzMTksIDAuNDU5MDIyLCAwLjc0Nzg5MywgMS4xMTIyMSwgMS40NzYzNCwgMS44Mzc4OCwgMi4yMDU5MiIsIFwKLSAgICAgICAgICAiMC4xMDk0MSwgMC40NTkwOCwgMC43NDcwMjIsIDEuMTExNzksIDEuNDc2NTEsIDEuODQxMTYsIDIuMjAyMTQiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTc4NjgsIDAuMzkwMTE2LCAwLjU1NTI4NCwgMC43NjE1NDYsIDAuOTY3NzgzLCAxLjE3Mzk5LCAxLjM4MDA5IiwgXAotICAgICAgICAgICIwLjE5MDAzMiwgMC40MDE1ODIsIDAuNTY2NzgzLCAwLjc3MzA0LCAwLjk3OTIwOCwgMS4xODUzOSwgMS4zOTE1NiIsIFwKLSAgICAgICAgICAiMC4yMDMxOTYsIDAuNDE0NzYxLCAwLjU3OTk0NywgMC43ODYyMTksIDAuOTkyNDU2LCAxLjE5ODY5LCAxLjQwNDc2IiwgXAotICAgICAgICAgICIwLjIxNTc1MiwgMC40MjczMDgsIDAuNTkyNDk1LCAwLjc5ODc3OCwgMS4wMDUwMSwgMS4yMTEyMSwgMS40MTczMSIsIFwKLSAgICAgICAgICAiMC4yMjgxNjksIDAuNDM5NzM2LCAwLjYwNDkwMywgMC44MTEyMDQsIDEuMDE3MzgsIDEuMjIzNTUsIDEuNDI5NzMiLCBcCi0gICAgICAgICAgIjAuMjQ3OTE1LCAwLjQ1OTQxNCwgMC42MjQ2MTgsIDAuODMwODk2LCAxLjAzNzE1LCAxLjI0MzI4LCAxLjQ0OTQ0IiwgXAotICAgICAgICAgICIwLjI2NDc3NCwgMC40NzYzMzYsIDAuNjQxNTI4LCAwLjg0Nzg3MSwgMS4wNTQxMSwgMS4yNjAxOSwgMS40NjYzNSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTY1NTQsIDAuNTEzMTEyLCAwLjgzOTc4OCwgMS4yNTAyNiwgMS42NjI5LCAyLjA3Mjg0LCAyLjQ4MjMiLCBcCi0gICAgICAgICAgIjAuMTE2NDksIDAuNTE0NjU5LCAwLjgzOTk4NSwgMS4yNTE4MiwgMS42NjM0NCwgMi4wNzA5NSwgMi40ODUxMSIsIFwKLSAgICAgICAgICAiMC4xMTY1NDgsIDAuNTEzMzYyLCAwLjg0MDc3OCwgMS4yNTAwNSwgMS42NTkyOCwgMi4wNzMwOSwgMi40ODQ5OCIsIFwKLSAgICAgICAgICAiMC4xMTY0NiwgMC41MTM5MDUsIDAuODQwODY3LCAxLjI1MTQ4LCAxLjY1OTQ0LCAyLjA3MzY0LCAyLjQ4NDk5IiwgXAotICAgICAgICAgICIwLjExNjQyNSwgMC41MTQ2MzEsIDAuODQwMTQ2LCAxLjI1MTc0LCAxLjY2MDUxLCAyLjA3MDc0LCAyLjQ4NTE1IiwgXAotICAgICAgICAgICIwLjExNjM1NiwgMC41MTQ1NzcsIDAuODQwNjUzLCAxLjI1MjA1LCAxLjY2MjQyLCAyLjA3MTIyLCAyLjQ4MzEiLCBcCi0gICAgICAgICAgIjAuMTE2NTc1LCAwLjUxNDY0MiwgMC44NDA2ODQsIDEuMjUxNjQsIDEuNjYyMjMsIDIuMDc0NDcsIDIuNDg0MDUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTg3MTIzLCAwLjM3MjY3OSwgMC41MTYyMjQsIDAuNjk1NSwgMC44NzQ1NzYsIDEuMDUzNjUsIDEuMjMyNzYiLCBcCi0gICAgICAgICAgIjAuMTk4ODQ1LCAwLjM4NDQxMSwgMC41Mjc5NTMsIDAuNzA3MjI2LCAwLjg4NjMwMSwgMS4wNjUzNiwgMS4yNDQ0NiIsIFwKLSAgICAgICAgICAiMC4yMTI4NDQsIDAuMzk4NDMsIDAuNTQxOTUzLCAwLjcyMTIwNiwgMC45MDA0MjIsIDEuMDc5NDMsIDEuMjU4NDQiLCBcCi0gICAgICAgICAgIjAuMjI2NTksIDAuNDEyMTY3LCAwLjU1NTY5NywgMC43MzQ5MDksIDAuOTE0MDUxLCAxLjA5MzE2LCAxLjI3MjIiLCBcCi0gICAgICAgICAgIjAuMjQwMzc0LCAwLjQyNTg5NSwgMC41Njk0MjMsIDAuNzQ4NjQ3LCAwLjkyNzc3OSwgMS4xMDY4NiwgMS4yODU5NyIsIFwKLSAgICAgICAgICAiMC4yNjI1MjQsIDAuNDQ4MDQ1LCAwLjU5MTU3NCwgMC43NzA4MjMsIDAuOTQ5OTMzLCAxLjEyOSwgMS4zMDgwNiIsIFwKLSAgICAgICAgICAiMC4yODE0NzQsIDAuNDY3MDAyLCAwLjYxMDUyNiwgMC43ODk4NiwgMC45Njg4ODMsIDEuMTQ3OTgsIDEuMzI3MDMiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTA5NTI1LCAwLjQ1OTAxNywgMC43NDcwMzUsIDEuMTEyMiwgMS40NzYzNCwgMS44MzgwMSwgMi4yMDYxIiwgXAotICAgICAgICAgICIwLjEwOTUxNCwgMC40NTkwNjgsIDAuNzQ2NTYxLCAxLjExMjE5LCAxLjQ3NjMsIDEuODM3ODUsIDIuMjA1ODciLCBcCi0gICAgICAgICAgIjAuMTA5NDYzLCAwLjQ1OTA5NSwgMC43NDY5NzUsIDEuMTEwMTQsIDEuNDczMDUsIDEuODM3MTUsIDIuMjAyNDEiLCBcCi0gICAgICAgICAgIjAuMTA5NDA3LCAwLjQ1OTA4NSwgMC43NDY5NzEsIDEuMTExNzMsIDEuNDc2MjYsIDEuODQxMDQsIDIuMjAyMjEiLCBcCi0gICAgICAgICAgIjAuMTA5MzcyLCAwLjQ1OTAxOSwgMC43NDY5NjMsIDEuMTA5ODYsIDEuNDc2MjYsIDEuODQwODgsIDIuMjA2MDYiLCBcCi0gICAgICAgICAgIjAuMTA5MjYzLCAwLjQ1ODk5NiwgMC43NDY5NzIsIDEuMTA5OTYsIDEuNDc2MjYsIDEuODM5OTgsIDIuMjA1NjIiLCBcCi0gICAgICAgICAgIjAuMTA5MjMyLCAwLjQ1OTA0OCwgMC43NDY5MzcsIDEuMTA5MDgsIDEuNDczNzMsIDEuODQwODksIDIuMjAyNDciKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTgwODU4LCAwLjM5MjU5MSwgMC41NTc3OTYsIDAuNzY0MTM3LCAwLjk3MDMzMywgMS4xNzY1MiwgMS4zODI3MSIsIFwKLSAgICAgICAgICAiMC4xOTIyMTMsIDAuNDAzOTUxLCAwLjU2OTE3NSwgMC43NzU0OTYsIDAuOTgxNjg4LCAxLjE4Nzg5LCAxLjM5NDA3IiwgXAotICAgICAgICAgICIwLjIwNTMzNywgMC40MTY5NTEsIDAuNTgyMTczLCAwLjc4ODUxOCwgMC45OTQ4MzIsIDEuMjAwOTIsIDEuNDA3MDciLCBcCi0gICAgICAgICAgIjAuMjE3NjIsIDAuNDI5MzQyLCAwLjU5NDU2OCwgMC44MDA4OSwgMS4wMDcwOCwgMS4yMTMyOSwgMS40MTk1OCIsIFwKLSAgICAgICAgICAiMC4yMjk5NDcsIDAuNDQxNjksIDAuNjA2ODk5LCAwLjgxMzI0MywgMS4wMTk0NCwgMS4yMjU2MiwgMS40MzE4MiIsIFwKLSAgICAgICAgICAiMC4yNDk0OTUsIDAuNDYxMjMxLCAwLjYyNjQxOSwgMC44MzI3OTYsIDEuMDM5LCAxLjI0NTE5LCAxLjQ1MTM3IiwgXAotICAgICAgICAgICIwLjI2NjU1NywgMC40NzgyMDgsIDAuNjQzNDQ4LCAwLjg0OTY2NiwgMS4wNTU5MywgMS4yNjIxNywgMS40NjgyNyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTY4OTIsIDAuNTE0OTQyLCAwLjg0MDYxOCwgMS4yNTE4MSwgMS42NjMzNiwgMi4wNzE1OCwgMi40ODQ5NyIsIFwKLSAgICAgICAgICAiMC4xMTY5MSwgMC41MTQ5NTYsIDAuODQyMjQ1LCAxLjI1MTk1LCAxLjY2MzQ1LCAyLjA3MTM4LCAyLjQ4NjAyIiwgXAotICAgICAgICAgICIwLjExNjk2NywgMC41MTQ5MjUsIDAuODQwNTQyLCAxLjI1MTExLCAxLjY2MTUsIDIuMDc0MjUsIDIuNDgyNjgiLCBcCi0gICAgICAgICAgIjAuMTE2ODQsIDAuNTE0OTY2LCAwLjg0MjI0MywgMS4yNTE5OSwgMS42NjM1NCwgMi4wNzE2NCwgMi40ODQ2NiIsIFwKLSAgICAgICAgICAiMC4xMTY4MjcsIDAuNTE0OTIsIDAuODQxMDc1LCAxLjI1MTc4LCAxLjY2MzIzLCAyLjA3MiwgMi40ODUyMyIsIFwKLSAgICAgICAgICAiMC4xMTY2NjIsIDAuNTE0OTM2LCAwLjg0MjA1NCwgMS4yNTE4NSwgMS42NjM0MSwgMi4wNzExNCwgMi40ODM4OCIsIFwKLSAgICAgICAgICAiMC4xMTY4NDQsIDAuNTE0OTU2LCAwLjgzOTc1OSwgMS4yNTAyLCAxLjY2MzAzLCAyLjA3MzMzLCAyLjQ4MjE1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlMwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNzI2ODYsIDAuMzU4MjE3LCAwLjUwMTczNCwgMC42ODEwMTgsIDAuODYwMDk2LCAxLjAzOTE2LCAxLjIxODMiLCBcCi0gICAgICAgICAgIjAuMTgzMjE5LCAwLjM2ODc1LCAwLjUxMjI3NiwgMC42OTE1NTIsIDAuODcwNjI3LCAxLjA0OTY5LCAxLjIyODc2IiwgXAotICAgICAgICAgICIwLjE5Njg2OSwgMC4zODIzODQsIDAuNTI1ODk2LCAwLjcwNTIsIDAuODg0MjczLCAxLjA2MzMyLCAxLjI0MjQiLCBcCi0gICAgICAgICAgIjAuMjEwMzY4LCAwLjM5NTg2NCwgMC41MzkzOTgsIDAuNzE4NzA0LCAwLjg5Nzc3OCwgMS4wNzY4MywgMS4yNTU5MSIsIFwKLSAgICAgICAgICAiMC4yMjM5NTQsIDAuNDA5NDk1LCAwLjU1MzAxOCwgMC43MzIzMTUsIDAuOTExMzg5LCAxLjA5MDQ0LCAxLjI2OTUyIiwgXAotICAgICAgICAgICIwLjI0NTkxOSwgMC40MzE0OCwgMC41NzUwMTksIDAuNzU0MzMsIDAuOTMzNDA2LCAxLjExMjQ3LCAxLjI5MTU3IiwgXAotICAgICAgICAgICIwLjI2NTM1MSwgMC40NTA5MjUsIDAuNTk0NDc3LCAwLjc3MzgwNCwgMC45NTI4ODEsIDEuMTMxOTMsIDEuMzExMDEiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTA5MDU2LCAwLjQ1OTA2MiwgMC43NDY5MzgsIDEuMTEyMiwgMS40NzY0LCAxLjgzNzk4LCAyLjIwNjI2IiwgXAotICAgICAgICAgICIwLjEwOTA1MSwgMC40NTkwMiwgMC43NDgyMDgsIDEuMTEyMTcsIDEuNDc2MzQsIDEuODM5ODgsIDIuMjAyMjEiLCBcCi0gICAgICAgICAgIjAuMTA5MTcsIDAuNDU5MDExLCAwLjc0NjkwMywgMS4xMTIxOSwgMS40NzYzNCwgMS44NDA3MywgMi4yMDIxNyIsIFwKLSAgICAgICAgICAiMC4xMDkwNDUsIDAuNDU4NDc0LCAwLjc0NjkwMSwgMS4xMTIxOSwgMS40NzYzMywgMS44NDA1LCAyLjIwMjAxIiwgXAotICAgICAgICAgICIwLjEwOTE4MSwgMC40NTkwMjQsIDAuNzQ4MDkyLCAxLjExMjE4LCAxLjQ3NjMxLCAxLjg0MDcsIDIuMjAyMjIiLCBcCi0gICAgICAgICAgIjAuMTA5MjM5LCAwLjQ1OTE1LCAwLjc0Nzk5OCwgMS4xMTIxNywgMS40NzYyOSwgMS44NDAzLCAyLjIwNTg0IiwgXAotICAgICAgICAgICIwLjEwOTMxNSwgMC40NTg5MjMsIDAuNzQ2OTQ1LCAxLjExMjIyLCAxLjQ3NjM2LCAxLjg0MDY1LCAyLjIwMjE5Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE2NjE4LCAwLjM3NzY4NiwgMC41NDI4ODUsIDAuNzQ5MTQxLCAwLjk1NTMxLCAxLjE2MTQ5LCAxLjM2NzY2IiwgXAotICAgICAgICAgICIwLjE3NjQ4NSwgMC4zODc5OTUsIDAuNTUzMTksIDAuNzU5NDg4LCAwLjk2NTY5NSwgMS4xNzE4MiwgMS4zNzgiLCBcCi0gICAgICAgICAgIjAuMTg5NTMxLCAwLjQwMTEwOCwgMC41NjYyNjQsIDAuNzcyNTY1LCAwLjk3ODczLCAxLjE4NDkzLCAxLjM5MTE1IiwgXAotICAgICAgICAgICIwLjIwMjY3NCwgMC40MTQxNzIsIDAuNTc5MzYyLCAwLjc4NTYyNywgMC45OTE4NTcsIDEuMTk4MDcsIDEuNDA0MTYiLCBcCi0gICAgICAgICAgIjAuMjE1OTA4LCAwLjQyNzM1OSwgMC41OTI1NDUsIDAuNzk4ODM4LCAxLjAwNTAxLCAxLjIxMTIxLCAxLjQxNzM1IiwgXAotICAgICAgICAgICIwLjIzNzAyMywgMC40NDg1NjcsIDAuNjEzNzc1LCAwLjgyMDA1MSwgMS4wMjYyOSwgMS4yMzI1MiwgMS40Mzg2IiwgXAotICAgICAgICAgICIwLjI1NTQzLCAwLjQ2NzAzOCwgMC42MzIyNDMsIDAuODM4NTUzLCAxLjA0NDczLCAxLjI1MDkzLCAxLjQ1NzEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTE2MjY4LCAwLjUxNDYzNSwgMC44Mzk4NjIsIDEuMjUxNzgsIDEuNjYzMjcsIDIuMDcwOTQsIDIuNDg1MDkiLCBcCi0gICAgICAgICAgIjAuMTE2MjYyLCAwLjUxMzcxOSwgMC44Mzk1MDYsIDEuMjUxNjgsIDEuNjYyNjMsIDIuMDcxNzMsIDIuNDg1MTEiLCBcCi0gICAgICAgICAgIjAuMTE2MjU1LCAwLjUxNDY0OSwgMC44NDAzMjcsIDEuMjUxODgsIDEuNjYzNTQsIDIuMDcxNTMsIDIuNDg0MTkiLCBcCi0gICAgICAgICAgIjAuMTE2MzMxLCAwLjUxNDY3NCwgMC44NDA2NDYsIDEuMjQ5NjIsIDEuNjYzMDEsIDIuMDcyNjgsIDIuNDgyMTYiLCBcCi0gICAgICAgICAgIjAuMTE2NDQsIDAuNTE0NjU1LCAwLjgzOTIzNCwgMS4yNTE4MywgMS42NjM2MSwgMi4wNzEzNSwgMi40ODYzOSIsIFwKLSAgICAgICAgICAiMC4xMTYzODgsIDAuNTE0Njc5LCAwLjg0MDE3OSwgMS4yNTAyNSwgMS42NjI5MiwgMi4wNzMwOSwgMi40ODIwOCIsIFwKLSAgICAgICAgICAiMC4xMTY2MDIsIDAuNTE0Njc4LCAwLjgzOTUwNiwgMS4yNTE5MiwgMS42NjM2OSwgMi4wNzEzOCwgMi40ODE4NyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjA4MDg2LCAwLjM5MzY0LCAwLjUzNzE5OCwgMC43MTY0NiwgMC44OTU1ODUsIDEuMDc0NjYsIDEuMjUzNzIiLCBcCi0gICAgICAgICAgIjAuMjIwMzQ0LCAwLjQwNTc0MiwgMC41NDkyOTIsIDAuNzI4NTcyLCAwLjkwNzY4OSwgMS4wODY3NiwgMS4yNjU4NyIsIFwKLSAgICAgICAgICAiMC4yMzUwODMsIDAuNDIwNjgyLCAwLjU2NDI3NCwgMC43NDM1NDcsIDAuOTIyNjMsIDEuMTAxNywgMS4yODA4NSIsIFwKLSAgICAgICAgICAiMC4yNDk0NTcsIDAuNDM1MDc5LCAwLjU3ODY1MywgMC43NTc5MzgsIDAuOTM3MDI1LCAxLjExNjA5LCAxLjI5NTE2IiwgXAotICAgICAgICAgICIwLjI2MjczNSwgMC40NDgyMDMsIDAuNTkxNzQ3LCAwLjc3MTA5NSwgMC45NTAxMjgsIDEuMTI5MjMsIDEuMzA4MjgiLCBcCi0gICAgICAgICAgIjAuMjgxMzgsIDAuNDY2OTczLCAwLjYxMDU0OSwgMC43ODk4NDksIDAuOTY4OTMyLCAxLjE0Nzk5LCAxLjMyNzA3IiwgXAotICAgICAgICAgICIwLjI5NjAzNywgMC40ODE1OTksIDAuNjI1MTUzLCAwLjgwNDQxOSwgMC45ODM1NCwgMS4xNjI2MSwgMS4zNDE2OCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDk0NzgsIDAuNDU5MTExLCAwLjc0NzAyNSwgMS4xMTAwMywgMS40NzYzMywgMS44NDA0MSwgMi4yMDU2MSIsIFwKLSAgICAgICAgICAiMC4xMDk2MDksIDAuNDU5MTEyLCAwLjc0Njk4OCwgMS4xMTAzMywgMS40NzYzNCwgMS44NDAxLCAyLjIwMjkxIiwgXAotICAgICAgICAgICIwLjEwOTUwMiwgMC40NTkxMDQsIDAuNzQ4MzM5LCAxLjExMjIzLCAxLjQ3NjM2LCAxLjg0MDEsIDIuMjA2IiwgXAotICAgICAgICAgICIwLjEwOTUxNCwgMC40NTkwOTIsIDAuNzQ4MzI5LCAxLjExMjI1LCAxLjQ3NjM3LCAxLjg0MDY3LCAyLjIwMjQzIiwgXAotICAgICAgICAgICIwLjEwOTUxMSwgMC40NTkxNjcsIDAuNzQ3MDEsIDEuMTA5MTIsIDEuNDc1NDgsIDEuODQxLCAyLjIwMjQ4IiwgXAotICAgICAgICAgICIwLjEwOTQ4NCwgMC40NTg5OTUsIDAuNzQ4MjU2LCAxLjExMjI1LCAxLjQ3NjM2LCAxLjg0MDc1LCAyLjIwMjM3IiwgXAotICAgICAgICAgICIwLjEwOTQwNywgMC40NTkwMzQsIDAuNzQ3MDIzLCAxLjExMDA4LCAxLjQ3NjMxLCAxLjg0MDMsIDIuMjA1NTEiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjA1NjAxLCAwLjQxNzE4MSwgMC41ODI0MTgsIDAuNzg4NzQsIDAuOTk0OTUzLCAxLjIwMTE3LCAxLjQwNzM5IiwgXAotICAgICAgICAgICIwLjIxNzQ0NSwgMC40MjkyMTIsIDAuNTk0NDExLCAwLjgwMDc3NSwgMS4wMDY5NywgMS4yMTMxOSwgMS40MTkzNiIsIFwKLSAgICAgICAgICAiMC4yMzMxODUsIDAuNDQ0ODk0LCAwLjYxMDA4NywgMC44MTY0NTQsIDEuMDIyNjUsIDEuMjI4OSwgMS40MzUxIiwgXAotICAgICAgICAgICIwLjI0Nzk3NSwgMC40NTk1MiwgMC42MjQ2OTcsIDAuODMxMDgxLCAxLjAzNzI4LCAxLjI0MzQ4LCAxLjQ0OTY2IiwgXAotICAgICAgICAgICIwLjI2Mjc5OSwgMC40NzQ1MzUsIDAuNjM5NzQxLCAwLjg0NjA5NywgMS4wNTIyOSwgMS4yNTg1MSwgMS40NjQ3OSIsIFwKLSAgICAgICAgICAiMC4yODQ0MTksIDAuNDk2MDk0LCAwLjY2MTM0NiwgMC44Njc2OTgsIDEuMDczOSwgMS4yODAxMiwgMS40ODYyNyIsIFwKLSAgICAgICAgICAiMC4zMDE3OTIsIDAuNTEzNTMzLCAwLjY3ODc0OCwgMC44ODUwOTUsIDEuMDkxMywgMS4yOTc0OCwgMS41MDM2OCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTY5MzQsIDAuNTE1MDYxLCAwLjg0MTAwOCwgMS4yNTIzNywgMS42NjE1MSwgMi4wNzE5NywgMi40ODU1NyIsIFwKLSAgICAgICAgICAiMC4xMTY3OSwgMC41MTUwMTMsIDAuODQyMTc3LCAxLjI1MjIzLCAxLjY2MzY2LCAyLjA3MTY2LCAyLjQ4MTkzIiwgXAotICAgICAgICAgICIwLjExNjkzNCwgMC41MTQ5NzksIDAuODQyMTU0LCAxLjI1MjA1LCAxLjY2Mzc0LCAyLjA3MTkzLCAyLjQ4NTI1IiwgXAotICAgICAgICAgICIwLjExNjg4MywgMC41MTQ4MzgsIDAuODQxOTg3LCAxLjI1MTg3LCAxLjY2MzQ1LCAyLjA3MDk5LCAyLjQ4NTA3IiwgXAotICAgICAgICAgICIwLjExNjg0NSwgMC41MTQ5NjksIDAuODQyMjU0LCAxLjI1MTk5LCAxLjY2MzYzLCAyLjA3MTcxLCAyLjQ4NDMzIiwgXAotICAgICAgICAgICIwLjExNjg3NCwgMC41MTQxNDUsIDAuODQwOTEsIDEuMjUxODEsIDEuNjYwNjMsIDIuMDczODksIDIuNDgzODQiLCBcCi0gICAgICAgICAgIjAuMTE2ODA5LCAwLjUxNDgyLCAwLjg0MTIxNCwgMS4yNTE5MSwgMS42NjM0LCAyLjA3MTQ3LCAyLjQ4NTI0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyMjQ0LCAwLjAwMjI5NCwgMC4wMDIzMDEsIDAuMDAyMzA1LCAwLjAwMjMwNywgMC4wMDIzMDgsIDAuMDAyMzA4IiwgXAotICAgICAgICAgICIwLjAwMjIzNCwgMC4wMDIyODUsIDAuMDAyMjkyLCAwLjAwMjI5NSwgMC4wMDIyOTcsIDAuMDAyMjk4LCAwLjAwMjI5OSIsIFwKLSAgICAgICAgICAiMC4wMDIyMjcsIDAuMDAyMjc5LCAwLjAwMjI4NiwgMC4wMDIyOSwgMC4wMDIyOTEsIDAuMDAyMjkyLCAwLjAwMjI5MyIsIFwKLSAgICAgICAgICAiMC4wMDIyMjIsIDAuMDAyMjc0LCAwLjAwMjI4MSwgMC4wMDIyODUsIDAuMDAyMjg3LCAwLjAwMjI4OCwgMC4wMDIyODkiLCBcCi0gICAgICAgICAgIjAuMDAyMjE4LCAwLjAwMjI3LCAwLjAwMjI3OCwgMC4wMDIyODIsIDAuMDAyMjg0LCAwLjAwMjI4NSwgMC4wMDIyODYiLCBcCi0gICAgICAgICAgIjAuMDAyMjExLCAwLjAwMjI2NSwgMC4wMDIyNzMsIDAuMDAyMjc3LCAwLjAwMjI4LCAwLjAwMjI4MSwgMC4wMDIyODIiLCBcCi0gICAgICAgICAgIjAuMDAyMjA2LCAwLjAwMjI2MSwgMC4wMDIyNywgMC4wMDIyNzQsIDAuMDAyMjc3LCAwLjAwMjI3OCwgMC4wMDIyNzkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI5OTEsIDAuMDAzMDU2LCAwLjAwMzA2NSwgMC4wMDMwNywgMC4wMDMwNzIsIDAuMDAzMDczLCAwLjAwMzA3NCIsIFwKLSAgICAgICAgICAiMC4wMDI5ODYsIDAuMDAzMDUyLCAwLjAwMzA2LCAwLjAwMzA2NSwgMC4wMDMwNjcsIDAuMDAzMDY5LCAwLjAwMzA2OSIsIFwKLSAgICAgICAgICAiMC4wMDI5ODIsIDAuMDAzMDQ5LCAwLjAwMzA1OCwgMC4wMDMwNjIsIDAuMDAzMDY0LCAwLjAwMzA2NiwgMC4wMDMwNjciLCBcCi0gICAgICAgICAgIjAuMDAyOTc4LCAwLjAwMzA0NiwgMC4wMDMwNTUsIDAuMDAzMDYsIDAuMDAzMDYyLCAwLjAwMzA2MywgMC4wMDMwNjQiLCBcCi0gICAgICAgICAgIjAuMDAyOTc0LCAwLjAwMzA0MywgMC4wMDMwNTIsIDAuMDAzMDU4LCAwLjAwMzA2LCAwLjAwMzA2MiwgMC4wMDMwNjMiLCBcCi0gICAgICAgICAgIjAuMDAyOTY5LCAwLjAwMzAzOSwgMC4wMDMwNDksIDAuMDAzMDU1LCAwLjAwMzA1NywgMC4wMDMwNTksIDAuMDAzMDYiLCBcCi0gICAgICAgICAgIjAuMDAyOTYzLCAwLjAwMzAzNSwgMC4wMDMwNDYsIDAuMDAzMDUyLCAwLjAwMzA1NiwgMC4wMDMwNTgsIDAuMDAzMDU5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyMTA0LCAwLjAwMjE0MywgMC4wMDIxNDksIDAuMDAyMTUsIDAuMDAyMTUzLCAwLjAwMjE1MywgMC4wMDIxNTQiLCBcCi0gICAgICAgICAgIjAuMDAyMDk0LCAwLjAwMjEzNSwgMC4wMDIxMzksIDAuMDAyMTQxLCAwLjAwMjE0MywgMC4wMDIxNDQsIDAuMDAyMTQ1IiwgXAotICAgICAgICAgICIwLjAwMjA4OCwgMC4wMDIxMjksIDAuMDAyMTMzLCAwLjAwMjEzNiwgMC4wMDIxMzcsIDAuMDAyMTM4LCAwLjAwMjEzOSIsIFwKLSAgICAgICAgICAiMC4wMDIwODMsIDAuMDAyMTI0LCAwLjAwMjEyOSwgMC4wMDIxMzIsIDAuMDAyMTMzLCAwLjAwMjEzNCwgMC4wMDIxMzUiLCBcCi0gICAgICAgICAgIjAuMDAyMDc4LCAwLjAwMjEyMiwgMC4wMDIxMjYsIDAuMDAyMTMsIDAuMDAyMTMxLCAwLjAwMjEzMSwgMC4wMDIxMzIiLCBcCi0gICAgICAgICAgIjAuMDAyMDc0LCAwLjAwMjExNywgMC4wMDIxMjMsIDAuMDAyMTI2LCAwLjAwMjEyOCwgMC4wMDIxMjgsIDAuMDAyMTI5IiwgXAotICAgICAgICAgICIwLjAwMjA2OCwgMC4wMDIxMTMsIDAuMDAyMTIsIDAuMDAyMTIzLCAwLjAwMjEyNSwgMC4wMDIxMjYsIDAuMDAyMTI3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzMTUxLCAwLjAwMzIwOCwgMC4wMDMyMTYsIDAuMDAzMjE5LCAwLjAwMzIyMSwgMC4wMDMyMjMsIDAuMDAzMjIzIiwgXAotICAgICAgICAgICIwLjAwMzE0NywgMC4wMDMyMDQsIDAuMDAzMjExLCAwLjAwMzIxNSwgMC4wMDMyMTcsIDAuMDAzMjE4LCAwLjAwMzIxOSIsIFwKLSAgICAgICAgICAiMC4wMDMxNDMsIDAuMDAzMjAxLCAwLjAwMzIwOSwgMC4wMDMyMTIsIDAuMDAzMjE0LCAwLjAwMzIxNSwgMC4wMDMyMTYiLCBcCi0gICAgICAgICAgIjAuMDAzMTM5LCAwLjAwMzE5OSwgMC4wMDMyMDYsIDAuMDAzMjEsIDAuMDAzMjEyLCAwLjAwMzIxNCwgMC4wMDMyMTQiLCBcCi0gICAgICAgICAgIjAuMDAzMTM2LCAwLjAwMzE5NiwgMC4wMDMyMDQsIDAuMDAzMjA5LCAwLjAwMzIxMSwgMC4wMDMyMTIsIDAuMDAzMjEzIiwgXAotICAgICAgICAgICIwLjAwMzEzLCAwLjAwMzE5MiwgMC4wMDMyMDEsIDAuMDAzMjA2LCAwLjAwMzIwOCwgMC4wMDMyMSwgMC4wMDMyMTEiLCBcCi0gICAgICAgICAgIjAuMDAzMTI2LCAwLjAwMzE5LCAwLjAwMzIsIDAuMDAzMjA0LCAwLjAwMzIwNywgMC4wMDMyMDksIDAuMDAzMjEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTMCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzNzk3LCAwLjAwMzg0NywgMC4wMDM4NTUsIDAuMDAzODU5LCAwLjAwMzg2MSwgMC4wMDM4NjMsIDAuMDAzODY0IiwgXAotICAgICAgICAgICIwLjAwMzc5NSwgMC4wMDM4NDYsIDAuMDAzODU0LCAwLjAwMzg1OCwgMC4wMDM4NiwgMC4wMDM4NjEsIDAuMDAzODYyIiwgXAotICAgICAgICAgICIwLjAwMzc5MywgMC4wMDM4NDQsIDAuMDAzODUxLCAwLjAwMzg1NiwgMC4wMDM4NTcsIDAuMDAzODU5LCAwLjAwMzg2IiwgXAotICAgICAgICAgICIwLjAwMzc5MSwgMC4wMDM4NDIsIDAuMDAzODQ5LCAwLjAwMzg1NCwgMC4wMDM4NTUsIDAuMDAzODU3LCAwLjAwMzg1NyIsIFwKLSAgICAgICAgICAiMC4wMDM3ODksIDAuMDAzODQsIDAuMDAzODQ3LCAwLjAwMzg1MSwgMC4wMDM4NTMsIDAuMDAzODU1LCAwLjAwMzg1NiIsIFwKLSAgICAgICAgICAiMC4wMDM3ODcsIDAuMDAzODM4LCAwLjAwMzg0NSwgMC4wMDM4NDksIDAuMDAzODUxLCAwLjAwMzg1MywgMC4wMDM4NTQiLCBcCi0gICAgICAgICAgIjAuMDAzNzg1LCAwLjAwMzgzNiwgMC4wMDM4NDMsIDAuMDAzODQ4LCAwLjAwMzg1LCAwLjAwMzg1MSwgMC4wMDM4NTIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI5MTcsIDAuMDAyOTc5LCAwLjAwMjk4OCwgMC4wMDI5OTMsIDAuMDAyOTk2LCAwLjAwMjk5NywgMC4wMDI5OTgiLCBcCi0gICAgICAgICAgIjAuMDAyOTA5LCAwLjAwMjk3LCAwLjAwMjk3OSwgMC4wMDI5ODQsIDAuMDAyOTg3LCAwLjAwMjk4OCwgMC4wMDI5ODkiLCBcCi0gICAgICAgICAgIjAuMDAyOTA0LCAwLjAwMjk2NiwgMC4wMDI5NzQsIDAuMDAyOTc5LCAwLjAwMjk4MiwgMC4wMDI5ODMsIDAuMDAyOTg1IiwgXAotICAgICAgICAgICIwLjAwMjksIDAuMDAyOTYxLCAwLjAwMjk3LCAwLjAwMjk3NSwgMC4wMDI5NzgsIDAuMDAyOTgsIDAuMDAyOTgxIiwgXAotICAgICAgICAgICIwLjAwMjg5OCwgMC4wMDI5NiwgMC4wMDI5NjgsIDAuMDAyOTczLCAwLjAwMjk3NiwgMC4wMDI5NzcsIDAuMDAyOTc4IiwgXAotICAgICAgICAgICIwLjAwMjg5NiwgMC4wMDI5NTgsIDAuMDAyOTY3LCAwLjAwMjk3MiwgMC4wMDI5NzUsIDAuMDAyOTc2LCAwLjAwMjk3NyIsIFwKLSAgICAgICAgICAiMC4wMDI4OTYsIDAuMDAyOTU4LCAwLjAwMjk2NywgMC4wMDI5NzIsIDAuMDAyOTc0LCAwLjAwMjk3NiwgMC4wMDI5NzciKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogQ0xLTVgyWDMgKgotICogLS0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKENMS01YMlgzKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMjAwNjExOwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA4NDE4Mjk7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwODM4MDI1OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDg0MTgyOTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyODUsIDAuMDAwMjksIDAuMDAwMjkyLCAwLjAwMDI5MywgMC4wMDAyOTQsIDAuMDAwMjk1LCAwLjAwMDI5NSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDMxNiwgMC4wMDAzMDksIDAuMDAwMzA4LCAwLjAwMDMwOCwgMC4wMDAzMDgsIDAuMDAwMzA4LCAwLjAwMDMwOCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwODE2MDIzOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDgxMjcyOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDgxNjAyMzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyOTQsIDAuMDAwMjk3LCAwLjAwMDI5OCwgMC4wMDAyOTksIDAuMDAwMjk5LCAwLjAwMDMsIDAuMDAwMyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDMxMiwgMC4wMDAzMDgsIDAuMDAwMzA4LCAwLjAwMDMwOCwgMC4wMDAzMDgsIDAuMDAwMzA4LCAwLjAwMDMwOCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUzApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTQ1MjM4OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTQ1MTY4OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTQ1MjM4OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDM4OSwgMC4wMDAzNzEsIDAuMDAwMzYyLCAwLjAwMDM1NywgMC4wMDAzNTUsIDAuMDAwMzU1LCAwLjAwMDM1NiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTgzOCwgMC4wMDE4MjcsIDAuMDAxODIsIDAuMDAxODE3LCAwLjAwMTgxNSwgMC4wMDE4MTIsIDAuMDAxODEzIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMzc5MzIyOwotICAgIGZ1bmN0aW9uIDogIigoUzAgQikgKyAoIVMwIEEpKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTQ5OTIxLCAwLjI3NjMzNywgMC4zNzI3MTYsIDAuNDkyOTM5LCAwLjYxMzExLCAwLjczMzIzLCAwLjg1MzIzMyIsIFwKLSAgICAgICAgICAiMC4xNjExNDUsIDAuMjg3NDQsIDAuMzgzODI0LCAwLjUwNDA4MywgMC42MjQyMzQsIDAuNzQ0MjksIDAuODY0MzU3IiwgXAotICAgICAgICAgICIwLjE3NDI4NiwgMC4zMDA3MDUsIDAuMzk3MDY3LCAwLjUxNzI4MiwgMC42Mzc0NiwgMC43NTc1OTksIDAuODc3NTc4IiwgXAotICAgICAgICAgICIwLjE4NzQ4MywgMC4zMTM5MjksIDAuNDEwMjk1LCAwLjUzMDUzOCwgMC42NTA2OTgsIDAuNzcwNzY2LCAwLjg5MDgxNiIsIFwKLSAgICAgICAgICAiMC4yMDA4NzksIDAuMzI3Mjg0LCAwLjQyMzY4MiwgMC41NDM5MzMsIDAuNjY0MDk3LCAwLjc4NDE0OSwgMC45MDQxOTgiLCBcCi0gICAgICAgICAgIjAuMjIxOTY3LCAwLjM0ODQxNywgMC40NDQ4MTEsIDAuNTY1MDY1LCAwLjY4NTI0NCwgMC44MDUyOTcsIDAuOTI1MzM5IiwgXAotICAgICAgICAgICIwLjI0MDQxOSwgMC4zNjY3NiwgMC40NjMxNTgsIDAuNTgzNDIxLCAwLjcwMzU5MywgMC44MjM2NDgsIDAuOTQzNjk3Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4MTMxNSwgMC4zMTM4NzgsIDAuNTA3MDc3LCAwLjc0ODkwMywgMC45OTQzMDYsIDEuMjM4NiwgMS40ODI2NyIsIFwKLSAgICAgICAgICAiMC4wODE0NiwgMC4zMTQxNTcsIDAuNTA2NDY2LCAwLjc0ODY2MSwgMC45OTQyODQsIDEuMjM4MywgMS40ODAzNyIsIFwKLSAgICAgICAgICAiMC4wODEyMzksIDAuMzE0MTE0LCAwLjUwNjA3NiwgMC43NTAwNDksIDAuOTk0MjM3LCAxLjIzODM2LCAxLjQ4MjUzIiwgXAotICAgICAgICAgICIwLjA4MTMxNywgMC4zMTQxMSwgMC41MDYyMzgsIDAuNzUwMjA1LCAwLjk5MjYyMSwgMS4yMzYzMiwgMS40ODI0OSIsIFwKLSAgICAgICAgICAiMC4wODEyNDgsIDAuMzE0MTI4LCAwLjUwNjA0LCAwLjc0ODUxMSwgMC45OTQzMDUsIDEuMjM4MzEsIDEuNDc5OTYiLCBcCi0gICAgICAgICAgIjAuMDgxMDkzLCAwLjMxMzgyOSwgMC41MDYwMDEsIDAuNzQ5MDY4LCAwLjk5NDM1OCwgMS4yMzgzNSwgMS40Nzg1NCIsIFwKLSAgICAgICAgICAiMC4wODEzOCwgMC4zMTQxMjEsIDAuNTA2MDE5LCAwLjc0ODU4MSwgMC45OTQzMDksIDEuMjM4MywgMS40ODI0MiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNDUxNDYsIDAuMjg5NzQ0LCAwLjQwMTIzNywgMC41NDA0MDksIDAuNjc5NDg3LCAwLjgxODQ5OCwgMC45NTc1MTkiLCBcCi0gICAgICAgICAgIjAuMTU2NiwgMC4zMDEyMjksIDAuNDEyNjk2LCAwLjU1MTkxMiwgMC42OTA5NTYsIDAuODI5OTU3LCAwLjk2OTAyOCIsIFwKLSAgICAgICAgICAiMC4xNjk3NDksIDAuMzE0MzgsIDAuNDI1ODYzLCAwLjU2NTA1OCwgMC43MDQxMDksIDAuODQzMTI4LCAwLjk4MjIwMiIsIFwKLSAgICAgICAgICAiMC4xODIyNjQsIDAuMzI2OTAxLCAwLjQzODM4OCwgMC41Nzc1OTIsIDAuNzE2NjQsIDAuODU1NjQyLCAwLjk5NDY4IiwgXAotICAgICAgICAgICIwLjE5NDY5LCAwLjMzOTM0LCAwLjQ1MDg1NSwgMC41OTAwMzMsIDAuNzI5MDg2LCAwLjg2ODEwOSwgMS4wMDcxMyIsIFwKLSAgICAgICAgICAiMC4yMTQzNDUsIDAuMzU4OTU3LCAwLjQ3MDQ3NCwgMC42MDk2OTEsIDAuNzQ4NzQxLCAwLjg4Nzc0NCwgMS4wMjY3OSIsIFwKLSAgICAgICAgICAiMC4yMzA5MzcsIDAuMzc1NzE3LCAwLjQ4NzIyOSwgMC42MjY0NDQsIDAuNzY1NSwgMC45MDQ1MDUsIDEuMDQzNTUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg3MDA3LCAwLjM1MzIxMiwgMC41NzE0MTksIDAuODQ5MDY3LCAxLjEyNTI4LCAxLjQwMjU3LCAxLjY3NjE2IiwgXAotICAgICAgICAgICIwLjA4Njk5MywgMC4zNTMxNjksIDAuNTcyODg3LCAwLjg0OTAzOCwgMS4xMjUzNCwgMS40MDI3OCwgMS42Nzg5MyIsIFwKLSAgICAgICAgICAiMC4wODcsIDAuMzUzMjYzLCAwLjU3MzA3MywgMC44NDkwMjUsIDEuMTI1NDEsIDEuNDAwNDYsIDEuNjc2NTciLCBcCi0gICAgICAgICAgIjAuMDg3MDI1LCAwLjM1MzAyNywgMC41NzIzNTksIDAuODQ5MDEyLCAxLjEyNTM0LCAxLjQwMjgsIDEuNjc5NDkiLCBcCi0gICAgICAgICAgIjAuMDg2ODk3LCAwLjM1MzI1OSwgMC41NzMyOSwgMC44NDkwMTEsIDEuMTI1NDYsIDEuNDAwMzIsIDEuNjc2NDciLCBcCi0gICAgICAgICAgIjAuMDg2OTU4LCAwLjM1MzIwNSwgMC41NzIyOTIsIDAuODQ4OTUsIDEuMTI1MjgsIDEuNDAyNTksIDEuNjc2NzIiLCBcCi0gICAgICAgICAgIjAuMDg3MzQ2LCAwLjM1MzE5LCAwLjU3MjI4MSwgMC44NDg5NDcsIDEuMTI1MjUsIDEuNDAyNzMsIDEuNjc2NjMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTQ4NjY3LCAwLjI3NDk1NiwgMC4zNzEzMjUsIDAuNDkxNTUsIDAuNjExNjU0LCAwLjczMTc0NiwgMC44NTE3OTIiLCBcCi0gICAgICAgICAgIjAuMTYwMDM5LCAwLjI4NjMzMywgMC4zODI2OTEsIDAuNTAyOTIsIDAuNjIzMDY3LCAwLjc0MzExMywgMC44NjMxNjMiLCBcCi0gICAgICAgICAgIjAuMTczNzksIDAuMjk5OTQzLCAwLjM5NjI5NiwgMC41MTY1MzEsIDAuNjM2Njc2LCAwLjc1NjcyMiwgMC44NzY4MjIiLCBcCi0gICAgICAgICAgIjAuMTg3MDMyLCAwLjMxMzI5NCwgMC40MDk2NjQsIDAuNTI5ODkzLCAwLjY1MDA0OSwgMC43NzAwOTQsIDAuODkwMTQxIiwgXAotICAgICAgICAgICIwLjIwMDY1NCwgMC4zMjY3NjcsIDAuNDIzMTM2LCAwLjU0MzM2MSwgMC42NjM1MjcsIDAuNzgzNTcsIDAuOTAzNjA3IiwgXAotICAgICAgICAgICIwLjIyMTk5NiwgMC4zNDgxOTEsIDAuNDQ0NTYsIDAuNTY0ODA1LCAwLjY4NDk1LCAwLjgwNSwgMC45MjUwOTIiLCBcCi0gICAgICAgICAgIjAuMjQwNDgyLCAwLjM2NjczMSwgMC40NjMwNzYsIDAuNTgzMjkzLCAwLjcwMzUyNywgMC44MjM2MDEsIDAuOTQzNTcxIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4MTE2NiwgMC4zMTQwODEsIDAuNTA1OTg5LCAwLjc0ODQ1NCwgMC45OTQwODIsIDEuMjM4MzUsIDEuNDgwMTYiLCBcCi0gICAgICAgICAgIjAuMDgxMTc4LCAwLjMxNDA3NywgMC41MDU5OTQsIDAuNzQ4NDk5LCAwLjk5NDIzNSwgMS4yMzgyNiwgMS40ODAxNiIsIFwKLSAgICAgICAgICAiMC4wODEyNSwgMC4zMTQwNDYsIDAuNTA1OTE1LCAwLjc0ODU3OSwgMC45OTQyMDgsIDEuMjM4MjIsIDEuNDgyOCIsIFwKLSAgICAgICAgICAiMC4wODExMTEsIDAuMzE0MDYsIDAuNTA1OTQxLCAwLjc0ODk3NSwgMC45OTQyMzgsIDEuMjM4MjYsIDEuNDgwMTUiLCBcCi0gICAgICAgICAgIjAuMDgxMTU3LCAwLjMxNDA0MywgMC41MDU4NzksIDAuNzQ4OTc5LCAwLjk5NDI3NSwgMS4yMzgyOCwgMS40ODE3OCIsIFwKLSAgICAgICAgICAiMC4wODA5NSwgMC4zMTM5OTYsIDAuNTA1ODc1LCAwLjc0ODU2MiwgMC45OTQxODUsIDEuMjM4MjEsIDEuNDgyNzQiLCBcCi0gICAgICAgICAgIjAuMDgwOTk0LCAwLjMxMzk3OSwgMC41MDY4NjcsIDAuNzQ5OTYzLCAwLjk5MTU1NywgMS4yMzg0NCwgMS40ODI0MSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNDc4NTIsIDAuMjkyNzA3LCAwLjQwNDIyNSwgMC41NDMzOTksIDAuNjgyNTExLCAwLjgyMTUzMywgMC45NjA1NTIiLCBcCi0gICAgICAgICAgIjAuMTU5MTY4LCAwLjMwNDAwMSwgMC40MTU1MTksIDAuNTU0NjY5LCAwLjY5Mzg0OCwgMC44MzI4NDQsIDAuOTcxODQzIiwgXAotICAgICAgICAgICIwLjE3MjA1OSwgMC4zMTY3NiwgMC40MjgyODMsIDAuNTY3NTI3LCAwLjcwNjYxMywgMC44NDU1OTQsIDAuOTg0NjQxIiwgXAotICAgICAgICAgICIwLjE4NDE4MiwgMC4zMjkwOTUsIDAuNDQwNjA1LCAwLjU3OTgzLCAwLjcxODg5NiwgMC44NTc5MSwgMC45OTY5NTIiLCBcCi0gICAgICAgICAgIjAuMTk2NDY3LCAwLjM0MTMwOSwgMC40NTI4MzksIDAuNTkyMDUxLCAwLjczMTE2MSwgMC44NzAxOTMsIDEuMDA5MjEiLCBcCi0gICAgICAgICAgIjAuMjE1ODIzLCAwLjM2MDcxNCwgMC40NzIyNTIsIDAuNjExNDk5LCAwLjc1MDU1OSwgMC44ODk1NzUsIDEuMDI4NiIsIFwKLSAgICAgICAgICAiMC4yMzI1NTIsIDAuMzc3NDE4LCAwLjQ4ODk0MSwgMC42MjgxOCwgMC43NjcyNDgsIDAuOTA2MjY1LCAxLjA0NTM1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4NzM4NCwgMC4zNTM1NjEsIDAuNTcxNzQ3LCAwLjg0OTIwOSwgMS4xMjQ4OCwgMS40MDI1MSwgMS42NzcxNCIsIFwKLSAgICAgICAgICAiMC4wODc0MjgsIDAuMzUzNTQ0LCAwLjU3MTgyNiwgMC44NDkyMjEsIDEuMTI0OTUsIDEuNDAxNzEsIDEuNjc3MzkiLCBcCi0gICAgICAgICAgIjAuMDg3MzQ0LCAwLjM1MzUxOCwgMC41NzE2MzIsIDAuODQ2NzY3LCAxLjEyNDk1LCAxLjQwMjIzLCAxLjY3NjI3IiwgXAotICAgICAgICAgICIwLjA4NzQ0MiwgMC4zNTM1MjMsIDAuNTcyNCwgMC44NDg5NzgsIDEuMTI1MjgsIDEuNDAyNjksIDEuNjc5MzgiLCBcCi0gICAgICAgICAgIjAuMDg3Mjk5LCAwLjM1MzU0LCAwLjU3MTY1OCwgMC44NDg5NTQsIDEuMTI1MjgsIDEuNDAyNiwgMS42Nzk3NyIsIFwKLSAgICAgICAgICAiMC4wODcyMjgsIDAuMzUzNDI5LCAwLjU3MTk4OCwgMC44NDcxMDEsIDEuMTI1MTMsIDEuNDAyMzIsIDEuNjc2MjkiLCBcCi0gICAgICAgICAgIjAuMDg3NywgMC4zNTM1MjYsIDAuNTczMTg4LCAwLjg0ODk1NCwgMS4xMjUyNSwgMS40MDI2NSwgMS42NzU0NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTM0NTU1LCAwLjI2MDg2OSwgMC4zNTcyNDMsIDAuNDc3NTI0LCAwLjU5NzYxOSwgMC43MTc2NzEsIDAuODM3ODU2IiwgXAotICAgICAgICAgICIwLjE0NDc2MiwgMC4yNzEwOTUsIDAuMzY3NDU4LCAwLjQ4NzY5OSwgMC42MDc4NCwgMC43Mjc4ODgsIDAuODQ3OTMzIiwgXAotICAgICAgICAgICIwLjE1ODEwOSwgMC4yODQzOTgsIDAuMzgwNzU4LCAwLjUwMTAwMSwgMC42MjExNTMsIDAuNzQxMTk4LCAwLjg2MTIzOSIsIFwKLSAgICAgICAgICAiMC4xNzEzNDgsIDAuMjk3NTc2LCAwLjM5Mzk2LCAwLjUxNDIxNiwgMC42MzQzNTYsIDAuNzU0NDA4LCAwLjg3NDQ2NyIsIFwKLSAgICAgICAgICAiMC4xODQ2NTQsIDAuMzEwOTIxLCAwLjQwNzMxMiwgMC41Mjc1NTksIDAuNjQ3NzE1LCAwLjc2Nzc2NSwgMC44ODc4NDUiLCBcCi0gICAgICAgICAgIjAuMjA2MTg5LCAwLjMzMjUyMiwgMC40Mjg5MjEsIDAuNTQ5MTc1LCAwLjY2OTMzOCwgMC43ODkzOSwgMC45MDk0OTciLCBcCi0gICAgICAgICAgIjAuMjI1MTgyLCAwLjM1MTYxMywgMC40NDc5OTcsIDAuNTY4MjUxLCAwLjY4ODM1OSwgMC44MDg0NDksIDAuOTI4NTA3Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4MDk2NSwgMC4zMTQxMzQsIDAuNTA2MDc5LCAwLjc0ODM5NiwgMC45OTQyNjQsIDEuMjM4MzEsIDEuNDc5MTEiLCBcCi0gICAgICAgICAgIjAuMDgwOTk1LCAwLjMxNDExNywgMC41MDYwMzUsIDAuNzQ4NjUxLCAwLjk5NDI2NCwgMS4yMzgyOCwgMS40ODIiLCBcCi0gICAgICAgICAgIjAuMDgxMDY0LCAwLjMxMzg5MiwgMC41MDYwNzksIDAuNzQ4NjM5LCAwLjk5NDMwMiwgMS4yMzgyOSwgMS40ODE4NSIsIFwKLSAgICAgICAgICAiMC4wODEzMTgsIDAuMzE0MTgxLCAwLjUwNjQyOCwgMC43NDg2NDIsIDAuOTk0MjM1LCAxLjIzODI0LCAxLjQ4MDMyIiwgXAotICAgICAgICAgICIwLjA4MTQxOSwgMC4zMTQxNjksIDAuNTA2MDk1LCAwLjc0ODY2NCwgMC45OTQyNzcsIDEuMjM4MjYsIDEuNDgyNjkiLCBcCi0gICAgICAgICAgIjAuMDgxNTg3LCAwLjMxNDI1LCAwLjUwNjEyNCwgMC43NDg2MzIsIDAuOTk0MTk2LCAxLjIzODI3LCAxLjQ4MjYiLCBcCi0gICAgICAgICAgIjAuMDgxOTYsIDAuMzE0MDY3LCAwLjUwNjUwNSwgMC43NTAzMTUsIDAuOTkzNzM2LCAxLjIzODE3LCAxLjQ4MjQ4Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEzMjcyNiwgMC4yNzczNjIsIDAuMzg4ODQ1LCAwLjUyODAzNiwgMC42NjcwODMsIDAuODA2MDg0LCAwLjk0NTE0MSIsIFwKLSAgICAgICAgICAiMC4xNDI5OTksIDAuMjg3NjA5LCAwLjM5OTEwNSwgMC41MzgyNjUsIDAuNjc3MzcxLCAwLjgxNjM1OCwgMC45NTUzNyIsIFwKLSAgICAgICAgICAiMC4xNTYwNzEsIDAuMzAwNzI4LCAwLjQxMjIyOSwgMC41NTE0MjgsIDAuNjkwNDc2LCAwLjgyOTQ3OCwgMC45Njg1MDYiLCBcCi0gICAgICAgICAgIjAuMTY5MDQxLCAwLjMxMzc4MSwgMC40MjUyODQsIDAuNTY0NDgzLCAwLjcwMzUzNiwgMC44NDI1NzgsIDAuOTgxNjE5IiwgXAotICAgICAgICAgICIwLjE4MjMyMywgMC4zMjY5OTYsIDAuNDM4NTE3LCAwLjU3NzcxLCAwLjcxNjc2LCAwLjg1NTgyOSwgMC45OTQ4MTYiLCBcCi0gICAgICAgICAgIjAuMjAzNDQ3LCAwLjM0ODE3OCwgMC40NTk3MjMsIDAuNTk4OTU3LCAwLjczODAxMywgMC44NzcwMjQsIDEuMDE2MDUiLCBcCi0gICAgICAgICAgIjAuMjIxNTQ5LCAwLjM2NjM2OSwgMC40Nzc5MTMsIDAuNjE3MTAxLCAwLjc1NjIwNCwgMC44OTUyMzYsIDEuMDM0MjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg2ODczLCAwLjM1MzI2OSwgMC41NzE1NzgsIDAuODQ4NzUsIDEuMTI1MTYsIDEuNDAyNSwgMS42Nzg4NiIsIFwKLSAgICAgICAgICAiMC4wODY4NzYsIDAuMzUzMjk0LCAwLjU3MjExNywgMC44NDg4MjksIDEuMTI0OCwgMS40MDIxOCwgMS42NzYwMyIsIFwKLSAgICAgICAgICAiMC4wODY4ODIsIDAuMzUzMTIxLCAwLjU3MTg4OCwgMC44NDg3LCAxLjEyNTA4LCAxLjQwMjQxLCAxLjY3OTI4IiwgXAotICAgICAgICAgICIwLjA4NjkyNiwgMC4zNTMzMjMsIDAuNTczMDQ5LCAwLjg0ODcwOCwgMS4xMjUxNiwgMS40MDE5MywgMS42NzUzMiIsIFwKLSAgICAgICAgICAiMC4wODcwNTQsIDAuMzUzMzUzLCAwLjU3MTUzNSwgMC44NDcxNTgsIDEuMTIzMjksIDEuNDAxNTYsIDEuNjc2NjMiLCBcCi0gICAgICAgICAgIjAuMDg3MjM0LCAwLjM1MzM1NiwgMC41NzIxNDYsIDAuODQ3MTI3LCAxLjEyNDgzLCAxLjQwMjE4LCAxLjY3NjIiLCBcCi0gICAgICAgICAgIjAuMDg3NzQsIDAuMzUzNDY1LCAwLjU3MTMxLCAwLjg0ODg3MiwgMS4xMjUxLCAxLjQwMjEyLCAxLjY3NjUyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlMwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNzYyNDQsIDAuMzAyNjMsIDAuMzk5MDI3LCAwLjUxOTI3LCAwLjYzOTQ1OSwgMC43NTk1MTMsIDAuODc5NTUiLCBcCi0gICAgICAgICAgIjAuMTg4NTMzLCAwLjMxNDczOSwgMC40MTExMzgsIDAuNTMxMzg0LCAwLjY1MTU2NSwgMC43NzE2MTcsIDAuODkxNjU3IiwgXAotICAgICAgICAgICIwLjIwMzMzMiwgMC4zMjk3NjEsIDAuNDI2MTQxLCAwLjU0NjM2OSwgMC42NjY2MTEsIDAuNzg2NzAxLCAwLjkwNjY3IiwgXAotICAgICAgICAgICIwLjIxNzY1NiwgMC4zNDQwNDIsIDAuNDQwNDM3LCAwLjU2MDY4NiwgMC42ODA4NTYsIDAuODAwOTEsIDAuOTIwOTU3IiwgXAotICAgICAgICAgICIwLjIzMTczNSwgMC4zNTgxMDIsIDAuNDU0NDkyLCAwLjU3NDc0NiwgMC42OTQ5MDgsIDAuODE0OTYzLCAwLjkzNTAxMyIsIFwKLSAgICAgICAgICAiMC4yNTE1MzcsIDAuMzc3OTU1LCAwLjQ3NDMxOSwgMC41OTQ1NSwgMC43MTQ3MzgsIDAuODM0ODM0LCAwLjk1NDg0NyIsIFwKLSAgICAgICAgICAiMC4yNjcyMTIsIDAuMzkzNTg2LCAwLjQ4OTk2NSwgMC42MTAyMjIsIDAuNzMwMzgxLCAwLjg1MDQzNSwgMC45NzA1MjciKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDgxMjk0LCAwLjMxNDE1NiwgMC41MDU5NDcsIDAuNzQ4OTg2LCAwLjk5NDM4LCAxLjIzODM2LCAxLjQ4MjQ3IiwgXAotICAgICAgICAgICIwLjA4MTM1MiwgMC4zMTQxNjEsIDAuNTA2MDA2LCAwLjc0OTA3MywgMC45OTQzNiwgMS4yMzgzNSwgMS40ODIzOSIsIFwKLSAgICAgICAgICAiMC4wODEyNjgsIDAuMzEzODc0LCAwLjUwNjMwNSwgMC43NTAwNTQsIDAuOTkxODcxLCAxLjIzODM5LCAxLjQ4MjUiLCBcCi0gICAgICAgICAgIjAuMDgxMzIzLCAwLjMxNDE1NiwgMC41MDYwNTQsIDAuNzQ4NDM5LCAwLjk5NDMwOCwgMS4yMzgzMiwgMS40ODE5MiIsIFwKLSAgICAgICAgICAiMC4wODExNzcsIDAuMzE0MTUxLCAwLjUwNjA2LCAwLjc0ODU4MiwgMC45OTQyNzksIDEuMjM4MywgMS40ODIwNCIsIFwKLSAgICAgICAgICAiMC4wODEzNDUsIDAuMzE0MTIsIDAuNTA2OTc1LCAwLjc1MDA4MywgMC45OTIwMjksIDEuMjM1NzksIDEuNDgyNDgiLCBcCi0gICAgICAgICAgIjAuMDgxMTMyLCAwLjMxNDA5NiwgMC41MDU5ODYsIDAuNzQ4Njc3LCAwLjk5NDI3NCwgMS4yMzgyNywgMS40ODI3MiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNzgzNzIsIDAuMzIzMjU5LCAwLjQzNDgwMiwgMC41NzQwMzgsIDAuNzEzMTAzLCAwLjg1MjEyMSwgMC45OTExNjQiLCBcCi0gICAgICAgICAgIjAuMTkwNDczLCAwLjMzNTM0MSwgMC40NDY4NzMsIDAuNTg2MTE2LCAwLjcyNTE1NywgMC44NjQyMywgMS4wMDMyMyIsIFwKLSAgICAgICAgICAiMC4yMDYxNTIsIDAuMzUwOTQ2LCAwLjQ2MjQ1OSwgMC42MDE2OTYsIDAuNzQwNzY1LCAwLjg3OTc4NiwgMS4wMTg5MiIsIFwKLSAgICAgICAgICAiMC4yMjExNTksIDAuMzY1OTEyLCAwLjQ3NzQ1MywgMC42MTY2OTIsIDAuNzU1NzU3LCAwLjg5NDc3MywgMS4wMzM4MSIsIFwKLSAgICAgICAgICAiMC4yMzYyNTcsIDAuMzgxMDc4LCAwLjQ5MjYwNiwgMC42MzE4MjksIDAuNzcwOSwgMC45MDk5NzksIDEuMDQ4OTUiLCBcCi0gICAgICAgICAgIjAuMjU4OTE4LCAwLjQwMzc5OSwgMC41MTUzMzYsIDAuNjU0NTgzLCAwLjc5MzYzNiwgMC45MzI2NjIsIDEuMDcxNjkiLCBcCi0gICAgICAgICAgIjAuMjc3MjY4LCAwLjQyMjEwNiwgMC41MzM2NCwgMC42NzI4NTksIDAuODExOTI5LCAwLjk1MTAxNiwgMS4wODk5OCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODczMzQsIDAuMzUzNTkzLCAwLjU3MTI1MywgMC44NDkwODYsIDEuMTI1NCwgMS40MDI3NiwgMS42NzY2NiIsIFwKLSAgICAgICAgICAiMC4wODczOTQsIDAuMzUzNTcyLCAwLjU3MTcwNywgMC44NDcyOTQsIDEuMTIzMzQsIDEuNDAxMzUsIDEuNjc2NTciLCBcCi0gICAgICAgICAgIjAuMDg3NDIxLCAwLjM1MzU1MywgMC41NzMwODMsIDAuODQ5MDgyLCAxLjEyNTQsIDEuNDAyODcsIDEuNjc4NDEiLCBcCi0gICAgICAgICAgIjAuMDg3MzYyLCAwLjM1MzQ0MiwgMC41NzIzODYsIDAuODQ4OTU3LCAxLjEyNTIxLCAxLjQwMjUzLCAxLjY3NjQ2IiwgXAotICAgICAgICAgICIwLjA4NzQwMSwgMC4zNTM0ODgsIDAuNTczMjUyLCAwLjg0OTA0NCwgMS4xMjUzNiwgMS40MDE4MiwgMS42Nzk2NiIsIFwKLSAgICAgICAgICAiMC4wODczMDMsIDAuMzUzNDk1LCAwLjU3MTkyLCAwLjg0Njg5NSwgMS4xMjQwNSwgMS40MDI0MiwgMS42NzYyNiIsIFwKLSAgICAgICAgICAiMC4wODczNDEsIDAuMzUzNDc4LCAwLjU3MjI2MSwgMC44NDkwNDUsIDEuMTI1MzQsIDEuNDAxNzYsIDEuNjc5NjgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDM0MjYsIDAuMDAzNTA4LCAwLjAwMzUyLCAwLjAwMzUyNiwgMC4wMDM1MywgMC4wMDM1MzIsIDAuMDAzNTMzIiwgXAotICAgICAgICAgICIwLjAwMzQwNywgMC4wMDM0ODksIDAuMDAzNTAxLCAwLjAwMzUwNywgMC4wMDM1MSwgMC4wMDM1MTIsIDAuMDAzNTE0IiwgXAotICAgICAgICAgICIwLjAwMzM5NCwgMC4wMDM0NzgsIDAuMDAzNDg5LCAwLjAwMzQ5NiwgMC4wMDM0OTksIDAuMDAzNTAxLCAwLjAwMzUwMyIsIFwKLSAgICAgICAgICAiMC4wMDMzODQsIDAuMDAzNDY3LCAwLjAwMzQ4LCAwLjAwMzQ4NywgMC4wMDM0OTEsIDAuMDAzNDk0LCAwLjAwMzQ5NSIsIFwKLSAgICAgICAgICAiMC4wMDMzNzYsIDAuMDAzNDYsIDAuMDAzNDczLCAwLjAwMzQ4MiwgMC4wMDM0ODUsIDAuMDAzNDg3LCAwLjAwMzQ4OSIsIFwKLSAgICAgICAgICAiMC4wMDMzNjQsIDAuMDAzNDQ4LCAwLjAwMzQ2NCwgMC4wMDM0NzIsIDAuMDAzNDc2LCAwLjAwMzQ3OCwgMC4wMDM0ODIiLCBcCi0gICAgICAgICAgIjAuMDAzMzU0LCAwLjAwMzQ0LCAwLjAwMzQ1NywgMC4wMDM0NjYsIDAuMDAzNDcxLCAwLjAwMzQ3NCwgMC4wMDM0NzYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQ0NTksIDAuMDA0NTY1LCAwLjAwNDU4LCAwLjAwNDU4OCwgMC4wMDQ1OTMsIDAuMDA0NTk1LCAwLjAwNDU5NyIsIFwKLSAgICAgICAgICAiMC4wMDQ0NDksIDAuMDA0NTU1LCAwLjAwNDU3LCAwLjAwNDU3OCwgMC4wMDQ1ODMsIDAuMDA0NTg1LCAwLjAwNDU4NyIsIFwKLSAgICAgICAgICAiMC4wMDQ0NDEsIDAuMDA0NTQ4LCAwLjAwNDU2NCwgMC4wMDQ1NzMsIDAuMDA0NTc3LCAwLjAwNDU4LCAwLjAwNDU4MiIsIFwKLSAgICAgICAgICAiMC4wMDQ0MzMsIDAuMDA0NTQyLCAwLjAwNDU1OSwgMC4wMDQ1NjgsIDAuMDA0NTcyLCAwLjAwNDU3NSwgMC4wMDQ1NzciLCBcCi0gICAgICAgICAgIjAuMDA0NDI2LCAwLjAwNDUzNiwgMC4wMDQ1NTQsIDAuMDA0NTYzLCAwLjAwNDU2OCwgMC4wMDQ1NzEsIDAuMDA0NTczIiwgXAotICAgICAgICAgICIwLjAwNDQxNiwgMC4wMDQ1MjgsIDAuMDA0NTQ3LCAwLjAwNDU1OCwgMC4wMDQ1NjMsIDAuMDA0NTY3LCAwLjAwNDU2OSIsIFwKLSAgICAgICAgICAiMC4wMDQ0MDYsIDAuMDA0NTIxLCAwLjAwNDU0MiwgMC4wMDQ1NTMsIDAuMDA0NTYsIDAuMDA0NTYzLCAwLjAwNDU2NiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzE2NywgMC4wMDMyMzEsIDAuMDAzMjQsIDAuMDAzMjQ0LCAwLjAwMzI0NiwgMC4wMDMyNDgsIDAuMDAzMjQ3IiwgXAotICAgICAgICAgICIwLjAwMzE0OCwgMC4wMDMyMTMsIDAuMDAzMjIxLCAwLjAwMzIyNiwgMC4wMDMyMjgsIDAuMDAzMjI4LCAwLjAwMzIzIiwgXAotICAgICAgICAgICIwLjAwMzEzNSwgMC4wMDMyMDMsIDAuMDAzMjEsIDAuMDAzMjE1LCAwLjAwMzIxOCwgMC4wMDMyMTksIDAuMDAzMjIiLCBcCi0gICAgICAgICAgIjAuMDAzMTI2LCAwLjAwMzE5NCwgMC4wMDMyMDMsIDAuMDAzMjA4LCAwLjAwMzIxMSwgMC4wMDMyMTIsIDAuMDAzMjEzIiwgXAotICAgICAgICAgICIwLjAwMzExNywgMC4wMDMxODcsIDAuMDAzMTk3LCAwLjAwMzIwMiwgMC4wMDMyMDUsIDAuMDAzMjA2LCAwLjAwMzIwNyIsIFwKLSAgICAgICAgICAiMC4wMDMxMDcsIDAuMDAzMTc4LCAwLjAwMzE5LCAwLjAwMzE5NSwgMC4wMDMxOTksIDAuMDAzMjAxLCAwLjAwMzIwMiIsIFwKLSAgICAgICAgICAiMC4wMDMwOTgsIDAuMDAzMTcxLCAwLjAwMzE4NCwgMC4wMDMxOTEsIDAuMDAzMTk0LCAwLjAwMzE5NiwgMC4wMDMxOTgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQ3MywgMC4wMDQ4MjIsIDAuMDA0ODM1LCAwLjAwNDg0MSwgMC4wMDQ4NDUsIDAuMDA0ODQ3LCAwLjAwNDg0OSIsIFwKLSAgICAgICAgICAiMC4wMDQ3MiwgMC4wMDQ4MTIsIDAuMDA0ODI1LCAwLjAwNDgzMiwgMC4wMDQ4MzUsIDAuMDA0ODM3LCAwLjAwNDgzOSIsIFwKLSAgICAgICAgICAiMC4wMDQ3MTMsIDAuMDA0ODA2LCAwLjAwNDgxOSwgMC4wMDQ4MjYsIDAuMDA0ODMsIDAuMDA0ODMyLCAwLjAwNDgzMyIsIFwKLSAgICAgICAgICAiMC4wMDQ3MDQsIDAuMDA0ODAxLCAwLjAwNDgxNCwgMC4wMDQ4MjIsIDAuMDA0ODI1LCAwLjAwNDgyOCwgMC4wMDQ4MjkiLCBcCi0gICAgICAgICAgIjAuMDA0Njk4LCAwLjAwNDc5NSwgMC4wMDQ4MSwgMC4wMDQ4MTgsIDAuMDA0ODIyLCAwLjAwNDgyNCwgMC4wMDQ4MjYiLCBcCi0gICAgICAgICAgIjAuMDA0Njg4LCAwLjAwNDc4OSwgMC4wMDQ4MDUsIDAuMDA0ODE0LCAwLjAwNDgxOCwgMC4wMDQ4MjEsIDAuMDA0ODIzIiwgXAotICAgICAgICAgICIwLjAwNDY4MSwgMC4wMDQ3ODQsIDAuMDA0ODAxLCAwLjAwNDgxMSwgMC4wMDQ4MTYsIDAuMDA0ODE5LCAwLjAwNDgyMSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlMwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDUyMDksIDAuMDA1Mjg5LCAwLjAwNTMwMywgMC4wMDUzMSwgMC4wMDUzMTUsIDAuMDA1MzE4LCAwLjAwNTMxOSIsIFwKLSAgICAgICAgICAiMC4wMDUyMTgsIDAuMDA1Mjk3LCAwLjAwNTMxMSwgMC4wMDUzMTgsIDAuMDA1MzI0LCAwLjAwNTMyNSwgMC4wMDUzMjciLCBcCi0gICAgICAgICAgIjAuMDA1MjE3LCAwLjAwNTI5NiwgMC4wMDUzMSwgMC4wMDUzMTgsIDAuMDA1MzIyLCAwLjAwNTMyNCwgMC4wMDUzMjYiLCBcCi0gICAgICAgICAgIjAuMDA1MjE0LCAwLjAwNTI5NCwgMC4wMDUzMDcsIDAuMDA1MzE0LCAwLjAwNTMxOCwgMC4wMDUzMjEsIDAuMDA1MzIzIiwgXAotICAgICAgICAgICIwLjAwNTIwOSwgMC4wMDUyOSwgMC4wMDUzMDMsIDAuMDA1MzExLCAwLjAwNTMxNCwgMC4wMDUzMTgsIDAuMDA1MzE4IiwgXAotICAgICAgICAgICIwLjAwNTIwMiwgMC4wMDUyODMsIDAuMDA1Mjk2LCAwLjAwNTMwMywgMC4wMDUzMDgsIDAuMDA1MzEsIDAuMDA1MzEyIiwgXAotICAgICAgICAgICIwLjAwNTE5OSwgMC4wMDUyOCwgMC4wMDUyOTMsIDAuMDA1MywgMC4wMDUzMDQsIDAuMDA1MzA3LCAwLjAwNTMwOCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDM3NSwgMC4wMDQ0NzIsIDAuMDA0NDg5LCAwLjAwNDQ5OCwgMC4wMDQ1MDMsIDAuMDA0NTA2LCAwLjAwNDUwOCIsIFwKLSAgICAgICAgICAiMC4wMDQzNzUsIDAuMDA0NDczLCAwLjAwNDQ4OSwgMC4wMDQ0OTgsIDAuMDA0NTA0LCAwLjAwNDUwNywgMC4wMDQ1MDkiLCBcCi0gICAgICAgICAgIjAuMDA0MzcyLCAwLjAwNDQ2OSwgMC4wMDQ0ODUsIDAuMDA0NDk1LCAwLjAwNDUsIDAuMDA0NTAzLCAwLjAwNDUwNSIsIFwKLSAgICAgICAgICAiMC4wMDQzNjYsIDAuMDA0NDY0LCAwLjAwNDQ4LCAwLjAwNDQ4OSwgMC4wMDQ0OTQsIDAuMDA0NDk3LCAwLjAwNDQ5OSIsIFwKLSAgICAgICAgICAiMC4wMDQzNiwgMC4wMDQ0NTksIDAuMDA0NDc1LCAwLjAwNDQ4NCwgMC4wMDQ0ODgsIDAuMDA0NDkyLCAwLjAwNDQ5MyIsIFwKLSAgICAgICAgICAiMC4wMDQzNTYsIDAuMDA0NDU1LCAwLjAwNDQ3MSwgMC4wMDQ0OCwgMC4wMDQ0ODUsIDAuMDA0NDg4LCAwLjAwNDQ5IiwgXAotICAgICAgICAgICIwLjAwNDM1MSwgMC4wMDQ0NTEsIDAuMDA0NDY3LCAwLjAwNDQ3NiwgMC4wMDQ0ODEsIDAuMDA0NDg0LCAwLjAwNDQ4NiIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBDTEtNWDJYNCAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoQ0xLTVgyWDQpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4yMTYyMzU7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDc0NzE3MTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA3NDM5NDM7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNzQ3MTcxOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDIyNSwgMC4wMDAyMjksIDAuMDAwMjMxLCAwLjAwMDIzMiwgMC4wMDAyMzMsIDAuMDAwMjMzLCAwLjAwMDIzMyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDI0OCwgMC4wMDAyNDQsIDAuMDAwMjQ0LCAwLjAwMDI0NCwgMC4wMDAyNDQsIDAuMDAwMjQ0LCAwLjAwMDI0NCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNzU5MzA0OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDc1NjEwNTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA3NTkzMDQ7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjMzLCAwLjAwMDIzNSwgMC4wMDAyMzYsIDAuMDAwMjM3LCAwLjAwMDIzNywgMC4wMDAyMzcsIDAuMDAwMjM3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjQ5LCAwLjAwMDI0NSwgMC4wMDAyNDQsIDAuMDAwMjQ0LCAwLjAwMDI0NCwgMC4wMDAyNDQsIDAuMDAwMjQzIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNDMyOTU7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNDMxNzk7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNDMyOTU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjE3LCAwLjAwMDE5OCwgMC4wMDAxODksIDAuMDAwMTg1LCAwLjAwMDE4MywgMC4wMDAxODQsIDAuMDAwMTg2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxNzIsIDAuMDAxNzA5LCAwLjAwMTcwMSwgMC4wMDE2OTgsIDAuMDAxNjk0LCAwLjAwMTY5NCwgMC4wMDE2OTQiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC41MjQ5NTU7Ci0gICAgZnVuY3Rpb24gOiAiKChTMCBCKSArICghUzAgQSkpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNzY5MzIsIDAuMjgwNTI4LCAwLjM1MzI0MiwgMC40NDMyOTgsIDAuNTMzMDg2LCAwLjYyMjgxOCwgMC43MTI1NTIiLCBcCi0gICAgICAgICAgIjAuMTg4MTc1LCAwLjI5MTc1MiwgMC4zNjQ1MzEsIDAuNDU0NTkyLCAwLjU0NDM1OCwgMC42MzQwOSwgMC43MjM4NDMiLCBcCi0gICAgICAgICAgIjAuMjAxNjg1LCAwLjMwNTMwOSwgMC4zNzgwMTksIDAuNDY4MDc0LCAwLjU1Nzg2LCAwLjY0NzU5LCAwLjczNzI4MyIsIFwKLSAgICAgICAgICAiMC4yMTUxMTMsIDAuMzE4NjI2LCAwLjM5MTM1NCwgMC40ODEzOTQsIDAuNTcxMTg5LCAwLjY2MDkyMSwgMC43NTA2NyIsIFwKLSAgICAgICAgICAiMC4yMjg1MjIsIDAuMzMyMDY5LCAwLjQwNDc5NiwgMC40OTQ4MjMsIDAuNTg0NjM2LCAwLjY3NDM2OSwgMC43NjQwOTEiLCBcCi0gICAgICAgICAgIjAuMjUwMDM2LCAwLjM1MzY1OCwgMC40MjYzNzcsIDAuNTE2MzgxLCAwLjYwNjIyMiwgMC42OTU5NTMsIDAuNzg1NzQ3IiwgXAotICAgICAgICAgICIwLjI2ODYwOSwgMC4zNzIyMDgsIDAuNDQ0OTY1LCAwLjUzNSwgMC42MjQ4MTQsIDAuNzE0NTUxLCAwLjgwNDMwNiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODIxMDksIDAuMjUxNDYxLCAwLjM5MjAzNywgMC41NzA0OSwgMC43NTExNDgsIDAuOTMyMzA5LCAxLjExMzk5IiwgXAotICAgICAgICAgICIwLjA4MTk4NiwgMC4yNTEyODEsIDAuMzkxODA5LCAwLjU3MTQxNywgMC43NTEwMzMsIDAuOTMzNTczLCAxLjExMzIzIiwgXAotICAgICAgICAgICIwLjA4MjA2OSwgMC4yNTE0MywgMC4zOTE5MzcsIDAuNTcxNDc5LCAwLjc1MTAwMywgMC45MzIxNTcsIDEuMTE1NDQiLCBcCi0gICAgICAgICAgIjAuMDgxOTQ5LCAwLjI1MTQyMSwgMC4zOTIxNTEsIDAuNTcxNDAzLCAwLjc1MTAwMSwgMC45MzIxNjUsIDEuMTEzMTQiLCBcCi0gICAgICAgICAgIjAuMDgxODg2LCAwLjI1MTQsIDAuMzkyMTYxLCAwLjU3MDU3LCAwLjc1MDk4NiwgMC45MzIxNzQsIDEuMTE1NyIsIFwKLSAgICAgICAgICAiMC4wODE3NjUsIDAuMjUxNDAyLCAwLjM5MTg5NSwgMC41NzA0NjcsIDAuNzUwODkxLCAwLjkzMjE1NSwgMS4xMTYxMiIsIFwKLSAgICAgICAgICAiMC4wODE0NjQsIDAuMjUxMjkyLCAwLjM5MTk5NywgMC41NzEyNjgsIDAuNzUwOTQyLCAwLjkzMjE2MSwgMS4xMTMyNiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNjkzMjMsIDAuMjg1NTE2LCAwLjM2OTY2NiwgMC40NzQwMjksIDAuNTc4MjMsIDAuNjgyNDM4LCAwLjc4NjQ4MSIsIFwKLSAgICAgICAgICAiMC4xODA2NDQsIDAuMjk2OTQ4LCAwLjM4MTExNCwgMC40ODU0OCwgMC41ODk2NSwgMC42OTM4MTgsIDAuNzk3OTM0IiwgXAotICAgICAgICAgICIwLjE5MzcyOSwgMC4zMDk5MywgMC4zOTQwNDYsIDAuNDk4NDM5LCAwLjYwMjYyMiwgMC43MDY4MTksIDAuODEwODU0IiwgXAotICAgICAgICAgICIwLjIwNjE5OCwgMC4zMjIzNjYsIDAuNDA2NTI1LCAwLjUxMDg4OSwgMC42MTUwNzksIDAuNzE5MzAzLCAwLjgyMzM0NCIsIFwKLSAgICAgICAgICAiMC4yMTgyOTUsIDAuMzM0NjIzLCAwLjQxODc4NywgMC41MjMxNjYsIDAuNjI3MzU0LCAwLjczMTQ2NCwgMC44MzU2MjgiLCBcCi0gICAgICAgICAgIjAuMjM4MTQzLCAwLjM1NDMyMiwgMC40Mzg0ODksIDAuNTQyODkxLCAwLjY0NzA2MywgMC43NTEyLCAwLjg1NTMzNSIsIFwKLSAgICAgICAgICAiMC4yNTUyNzUsIDAuMzcxNDExLCAwLjQ1NTU3NiwgMC41NTk5ODUsIDAuNjY0MTU5LCAwLjc2ODI5MywgMC44NzI0NCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODQ2NjksIDAuMjc5ODc3LCAwLjQ0MTExMywgMC42NDYyNjIsIDAuODUyODIsIDEuMDU2OTgsIDEuMjY2MjMiLCBcCi0gICAgICAgICAgIjAuMDg0NDgsIDAuMjc5ODgsIDAuNDQxMTAzLCAwLjY0NTM4OCwgMC44NTI1NTMsIDEuMDU2NzQsIDEuMjY2MTgiLCBcCi0gICAgICAgICAgIjAuMDg0Mzk5LCAwLjI3OTkxMywgMC40NDExMjUsIDAuNjQ0OTk1LCAwLjg1MTc2LCAxLjA1Njc1LCAxLjI2NTQiLCBcCi0gICAgICAgICAgIjAuMDg0NTQ4LCAwLjI3OTgzNywgMC40NDExMSwgMC42NDYyMjQsIDAuODUyNjI1LCAxLjA1NjM0LCAxLjI2NjIzIiwgXAotICAgICAgICAgICIwLjA4NDQ1LCAwLjI3OTgxNSwgMC40NDEyOCwgMC42NDQ5MzIsIDAuODUwMjcsIDEuMDU5NjQsIDEuMjY2MTMiLCBcCi0gICAgICAgICAgIjAuMDg0MzAxLCAwLjI3OTc5MywgMC40NDEyNzMsIDAuNjQ0MjY5LCAwLjg1MDMzLCAxLjA1NzEsIDEuMjY2MTMiLCBcCi0gICAgICAgICAgIjAuMDg0MjQ4LCAwLjI3OTc5MiwgMC40NDEyNjcsIDAuNjQ0NDk2LCAwLjg1MDIyNSwgMS4wNTk2NiwgMS4yNjYwOSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNzU2MTQsIDAuMjc5MDc1LCAwLjM1MTg1NywgMC40NDE5MjIsIDAuNTMxNzA0LCAwLjYyMTQzNSwgMC43MTEyNjQiLCBcCi0gICAgICAgICAgIjAuMTg2OTM4LCAwLjI5MDQxOCwgMC4zNjMyNTUsIDAuNDUzMjk0LCAwLjU0MzA2LCAwLjYzMjgxNSwgMC43MjI2MjIiLCBcCi0gICAgICAgICAgIjAuMjAwNjI4LCAwLjMwNDE0MSwgMC4zNzY4MzcsIDAuNDY2ODM0LCAwLjU1NjY3MSwgMC42NDY0MDYsIDAuNzM2MTUxIiwgXAotICAgICAgICAgICIwLjIxNDIyNiwgMC4zMTc2MzksIDAuMzkwNDAxLCAwLjQ4MDQxOSwgMC41NzAyMjgsIDAuNjU5OTYzLCAwLjc0OTcxNiIsIFwKLSAgICAgICAgICAiMC4yMjc2MzEsIDAuMzMxMTExLCAwLjQwMzk2OCwgMC40OTM5NzMsIDAuNTgzNzUyLCAwLjY3MzU2NiwgMC43NjMzMiIsIFwKLSAgICAgICAgICAiMC4yNDkxMDYsIDAuMzUyNDg3LCAwLjQyNTI1OCwgMC41MTUzNCwgMC42MDUxMTksIDAuNjk0OTA4LCAwLjc4NDYyNSIsIFwKLSAgICAgICAgICAiMC4yNjc4NjUsIDAuMzcxMzY2LCAwLjQ0NDExLCAwLjUzNDE0NCwgMC42MjM5NjIsIDAuNzEzNzAxLCAwLjgwMzQ2Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4MTc4OCwgMC4yNTEzMTQsIDAuMzkyMTEzLCAwLjU3MTQ1LCAwLjc1MTE5OSwgMC45MzM1OTUsIDEuMTEzMDMiLCBcCi0gICAgICAgICAgIjAuMDgxODQ5LCAwLjI1MTI5NCwgMC4zOTE5MTIsIDAuNTcxNDksIDAuNzUxMDAyLCAwLjkzMjIxNywgMS4xMTI5OSIsIFwKLSAgICAgICAgICAiMC4wODE3NzUsIDAuMjUxMzYxLCAwLjM5MTg4OSwgMC41NzA0MDEsIDAuNzUwOTk1LCAwLjkzMjE1NCwgMS4xMTM0IiwgXAotICAgICAgICAgICIwLjA4MTY0MywgMC4yNTEzMTEsIDAuMzkxNzY0LCAwLjU3MDU2OCwgMC43NTA5ODMsIDAuOTMyMTg3LCAxLjExMzI1IiwgXAotICAgICAgICAgICIwLjA4MTY5NCwgMC4yNTEyMjksIDAuMzkxOTAyLCAwLjU3MTMxOSwgMC43NTEwMzQsIDAuOTMxNzUsIDEuMTEzMDciLCBcCi0gICAgICAgICAgIjAuMDgxNTIyLCAwLjI1MTI5MSwgMC4zOTIwNTEsIDAuNTcxMzkzLCAwLjc1MDk3MSwgMC45MzM4OSwgMS4xMTMzOCIsIFwKLSAgICAgICAgICAiMC4wODEzMjgsIDAuMjUxMjE1LCAwLjM5MTk2NiwgMC41NzEyNTMsIDAuNzUwOTQ0LCAwLjkzMjE4MywgMS4xMTMzNSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNzA1MzIsIDAuMjg2ODc2LCAwLjM3MTAxLCAwLjQ3NTM3MywgMC41Nzk1MzUsIDAuNjgzNzU4LCAwLjc4Nzc5NyIsIFwKLSAgICAgICAgICAiMC4xODIwMDEsIDAuMjk4MTk3LCAwLjM4MjMzNywgMC40ODY2OTQsIDAuNTkwODU0LCAwLjY5NTA4NiwgMC43OTkxMjQiLCBcCi0gICAgICAgICAgIjAuMTk0NzU0LCAwLjMxMDk4MSwgMC4zOTUwOTgsIDAuNDk5NDYyLCAwLjYwMzY1MywgMC43MDc4NTIsIDAuODExODkzIiwgXAotICAgICAgICAgICIwLjIwNzE3LCAwLjMyMzM1NCwgMC40MDc0OTcsIDAuNTExODczLCAwLjYxNjA2MywgMC43MjAyNTEsIDAuODI0Mjg3IiwgXAotICAgICAgICAgICIwLjIxOTMyOSwgMC4zMzU0NDcsIDAuNDE5NjQzLCAwLjUyNDAyOSwgMC42MjgxNjksIDAuNzMyMzgyLCAwLjgzNjQ0NyIsIFwKLSAgICAgICAgICAiMC4yMzg5MTgsIDAuMzU1MTE5LCAwLjQzOTI3NSwgMC41NDM2NjMsIDAuNjQ3ODI0LCAwLjc1MTkxOCwgMC44NTYwODciLCBcCi0gICAgICAgICAgIjAuMjU1OTQ5LCAwLjM3MjIzNSwgMC40NTYzODQsIDAuNTYwNzU5LCAwLjY2NDk0MiwgMC43NjkwNDEsIDAuODczMjIyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4NDU0OCwgMC4yNzk4NjUsIDAuNDQxMDgsIDAuNjQ2MzgsIDAuODUyNDcsIDEuMDU3NTEsIDEuMjY2MDYiLCBcCi0gICAgICAgICAgIjAuMDg0NzU1LCAwLjI3OTg4OCwgMC40NDExMDcsIDAuNjQ1NjcxLCAwLjg1MjM0MiwgMS4wNTc2MywgMS4yNjYwMiIsIFwKLSAgICAgICAgICAiMC4wODQ0NjEsIDAuMjc5OTEzLCAwLjQ0MTA4NSwgMC42NDYxODEsIDAuODUxNzkxLCAxLjA1NTc4LCAxLjI2MjgyIiwgXAotICAgICAgICAgICIwLjA4NDY0NiwgMC4yNzk4NTksIDAuNDQxMDU2LCAwLjY0NDI3OCwgMC44NTI5NzMsIDEuMDU3NTQsIDEuMjY2MDMiLCBcCi0gICAgICAgICAgIjAuMDg0NjEsIDAuMjc5OTQ2LCAwLjQ0MTI0NiwgMC42NDQyMDUsIDAuODUyNDE3LCAxLjA1NzQ5LCAxLjI2NTk4IiwgXAotICAgICAgICAgICIwLjA4NDMwMywgMC4yNzk4MTEsIDAuNDQxMjQ4LCAwLjY0NDE0NywgMC44NTAyMDksIDEuMDU5MjksIDEuMjY1OTciLCBcCi0gICAgICAgICAgIjAuMDg0MzE1LCAwLjI3OTc5MywgMC40NDEyMDQsIDAuNjQ1MjU5LCAwLjg0OTg4NSwgMS4wNTkzOSwgMS4yNjU5NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTYyNzk0LCAwLjI2NjIwOCwgMC4zMzg5MTQsIDAuNDI4OTQ0LCAwLjUxODczNSwgMC42MDg0OTUsIDAuNjk4MTc4IiwgXAotICAgICAgICAgICIwLjE3MzA1OCwgMC4yNzY1NTEsIDAuMzQ5MzYyLCAwLjQzOTM2OSwgMC41MjkxNTQsIDAuNjE4OTE2LCAwLjcwODcwOCIsIFwKLSAgICAgICAgICAiMC4xODY2NzUsIDAuMjg5OTQ2LCAwLjM2Mjc5OCwgMC40NTI4NDMsIDAuNTQyNjU0LCAwLjYzMjM3LCAwLjcyMjE2OSIsIFwKLSAgICAgICAgICAiMC4xOTk4NzIsIDAuMzAzMjc1LCAwLjM3NjA0MSwgMC40NjYxMywgMC41NTU5MSwgMC42NDU3MDcsIDAuNzM1NDc4IiwgXAotICAgICAgICAgICIwLjIxMzI0NywgMC4zMTY2NDIsIDAuMzg5NDc5LCAwLjQ3OTUyMSwgMC41NjkzMDUsIDAuNjU5MDQ2LCAwLjc0ODg3MyIsIFwKLSAgICAgICAgICAiMC4yMzQ5MTksIDAuMzM4MzIxLCAwLjQxMTA5OCwgMC41MDExOTUsIDAuNTkwOTc5LCAwLjY4MDc0NywgMC43NzA0OTUiLCBcCi0gICAgICAgICAgIjAuMjU0MTIyLCAwLjM1NzQyOCwgMC40MzAyOTUsIDAuNTIwMzM5LCAwLjYxMDE4OCwgMC42OTk4OTgsIDAuNzg5NzA5Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4MTM5NCwgMC4yNTEyMDQsIDAuMzkxNTY1LCAwLjU3MTUzNCwgMC43NTA5MTgsIDAuOTMxOTU0LCAxLjExNTYzIiwgXAotICAgICAgICAgICIwLjA4MTIyNCwgMC4yNTEwOTYsIDAuMzkxNDc0LCAwLjU3MTM3OSwgMC43NTAyNTksIDAuOTMzNzk2LCAxLjExMjk1IiwgXAotICAgICAgICAgICIwLjA4MTM3LCAwLjI1MTEzNSwgMC4zOTE4NTQsIDAuNTcwMDU1LCAwLjc1MjI4LCAwLjkzMjE2OSwgMS4xMTMiLCBcCi0gICAgICAgICAgIjAuMDgxMzA1LCAwLjI1MTE3OSwgMC4zOTIwMDYsIDAuNTcxMjY3LCAwLjc1MTAzOSwgMC45MzM5MTMsIDEuMTEzMTUiLCBcCi0gICAgICAgICAgIjAuMDgxMjEyLCAwLjI1MTEzMSwgMC4zOTE3NCwgMC41NzEyNzksIDAuNzUxMDM5LCAwLjkzMjE3MywgMS4xMTMxIiwgXAotICAgICAgICAgICIwLjA4MTQwNiwgMC4yNTEyMDMsIDAuMzkyMDMxLCAwLjU3MTM1OCwgMC43NTA5NiwgMC45MzM3OTMsIDEuMTEzNDUiLCBcCi0gICAgICAgICAgIjAuMDgxNDY4LCAwLjI1MTE1MSwgMC4zOTE4MTIsIDAuNTcwMzc4LCAwLjc1MDMyLCAwLjkzMjE5NCwgMS4xMTI5OSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNTc2NDUsIDAuMjczODEsIDAuMzU3OTcyLCAwLjQ2MjMzOCwgMC41NjY1MTksIDAuNjcwNzAxLCAwLjc3NDcyMSIsIFwKLSAgICAgICAgICAiMC4xNjc5NzgsIDAuMjg0MTU1LCAwLjM2ODMxNywgMC40NzI2NzksIDAuNTc2ODYsIDAuNjgxMDQ3LCAwLjc4NTEwOSIsIFwKLSAgICAgICAgICAiMC4xODEwMDksIDAuMjk3Mjc2LCAwLjM4MTQyMywgMC40ODU3OTgsIDAuNTg5OTgsIDAuNjk0MDgyLCAwLjc5ODI1NyIsIFwKLSAgICAgICAgICAiMC4xOTQxNDEsIDAuMzEwMzM4LCAwLjM5NDQ4OSwgMC40OTg4NjcsIDAuNjAzMDUzLCAwLjcwNzE2OCwgMC44MTEzMzciLCBcCi0gICAgICAgICAgIjAuMjA3MjU1LCAwLjMyMzM5OSwgMC40MDc1NzMsIDAuNTExOTU0LCAwLjYxNjE0MiwgMC43MjAzMjksIDAuODI0NDM0IiwgXAotICAgICAgICAgICIwLjIyODQyNiwgMC4zNDQ1NzYsIDAuNDI4NzM0LCAwLjUzMzEzLCAwLjYzNzMzNSwgMC43NDE1NDIsIDAuODQ1NTYiLCBcCi0gICAgICAgICAgIjAuMjQ3MDM3LCAwLjM2MzE4OCwgMC40NDczNDQsIDAuNTUxNzU5LCAwLjY1NTk1OCwgMC43NjAxNjgsIDAuODY0MjExIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4NDMwMywgMC4yNzk4MzcsIDAuNDQxMjQxLCAwLjY0NTY4OSwgMC44NTAwODMsIDEuMDU5NDQsIDEuMjYzNzUiLCBcCi0gICAgICAgICAgIjAuMDg0Mjg3LCAwLjI3OTgxOCwgMC40NDEyMzMsIDAuNjQ1NzI3LCAwLjg0OTk3NSwgMS4wNTk0NCwgMS4yNjYxOSIsIFwKLSAgICAgICAgICAiMC4wODQyMDcsIDAuMjc5NzUsIDAuNDQxMjQ2LCAwLjY0NDk0MSwgMC44NTAyMSwgMS4wNTc4MywgMS4yNjYwNSIsIFwKLSAgICAgICAgICAiMC4wODQxOTIsIDAuMjc5NzM3LCAwLjQ0MTIzNSwgMC42NDU1NiwgMC44NTAxNzQsIDEuMDU3MjUsIDEuMjY2MDEiLCBcCi0gICAgICAgICAgIjAuMDg0MzI3LCAwLjI3OTc1MiwgMC40NDEyMzMsIDAuNjQ1NzQ4LCAwLjg1MDExMiwgMS4wNTk0MywgMS4yNjYiLCBcCi0gICAgICAgICAgIjAuMDg0MzQ2LCAwLjI3OTczNSwgMC40NDEwMjYsIDAuNjQ2MzE4LCAwLjg1MTU4MiwgMS4wNTY1NCwgMS4yNjM4MSIsIFwKLSAgICAgICAgICAiMC4wODQ0NjUsIDAuMjc5ODQ5LCAwLjQ0MTA0LCAwLjY0NTQwMiwgMC44NTE3MjYsIDEuMDU2NTMsIDEuMjY1NCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTk4NTUyLCAwLjMwMjE2MywgMC4zNzQ5MDYsIDAuNDY0OTMyLCAwLjU1NDczNSwgMC42NDQ0NjgsIDAuNzM0MjE4IiwgXAotICAgICAgICAgICIwLjIxMDcyNiwgMC4zMTQyNywgMC4zODY5OTUsIDAuNDc3MDIsIDAuNTY2ODMyLCAwLjY1NjU2MywgMC43NDYyNzgiLCBcCi0gICAgICAgICAgIjAuMjI1Njg2LCAwLjMyOTE4NCwgMC40MDIwMTIsIDAuNDkyMDk5LCAwLjU4MTg3OSwgMC42NzE2MTMsIDAuNzYxMzc5IiwgXAotICAgICAgICAgICIwLjI0MDAxNywgMC4zNDM1ODgsIDAuNDE2NDIyLCAwLjUwNjQ2LCAwLjU5NjIzOSwgMC42ODU5NzksIDAuNzc1ODA3IiwgXAotICAgICAgICAgICIwLjI1MzYyMiwgMC4zNTcyLCAwLjQyOTkxNCwgMC41MTk5NjQsIDAuNjA5NzUyLCAwLjY5OTQ4MywgMC43ODkxNzUiLCBcCi0gICAgICAgICAgIjAuMjcyNjY2LCAwLjM3NjI1OSwgMC40NDkwMzMsIDAuNTM5MTEzLCAwLjYyODg4NCwgMC43MTg2NCwgMC44MDgzODIiLCBcCi0gICAgICAgICAgIjAuMjg3NjMzLCAwLjM5MTEyNSwgMC40NjM5NTgsIDAuNTUzOTkxLCAwLjY0Mzc1NywgMC43MzM1MDgsIDAuODIzMzIxIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4MTczNSwgMC4yNTEzOTUsIDAuMzkyMDgxLCAwLjU3MTMxOSwgMC43NTA5NTksIDAuOTMyMTcyLCAxLjExMzEyIiwgXAotICAgICAgICAgICIwLjA4MTg4OSwgMC4yNTE0MywgMC4zOTIxMDYsIDAuNTcwNjE3LCAwLjc1MDk2LCAwLjkzMjE2MywgMS4xMTU2NiIsIFwKLSAgICAgICAgICAiMC4wODE4MjcsIDAuMjUxMzA0LCAwLjM5MjE0NiwgMC41NzE0MDEsIDAuNzUxMDQ0LCAwLjkzMjE5NSwgMS4xMTM0MiIsIFwKLSAgICAgICAgICAiMC4wODE3NzEsIDAuMjUxMzI2LCAwLjM5MTY4NSwgMC41NzE0MTYsIDAuNzUxMDE2LCAwLjkzMjE1MywgMS4xMTI5NyIsIFwKLSAgICAgICAgICAiMC4wODE1OTgsIDAuMjUxNDQyLCAwLjM5MTkwOSwgMC41NzE0MzQsIDAuNzUwOTQyLCAwLjkzMjE2MSwgMS4xMTU0NCIsIFwKLSAgICAgICAgICAiMC4wODE3MTQsIDAuMjUxMTg1LCAwLjM5MjExNCwgMC41NzEzOCwgMC43NTA5NzUsIDAuOTMzNzM1LCAxLjExMzMzIiwgXAotICAgICAgICAgICIwLjA4MTYsIDAuMjUxMjE1LCAwLjM5MTkyNywgMC41NzE0NjYsIDAuNzUwOTksIDAuOTMyMjU3LCAxLjExMzA2Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE5NjUwOCwgMC4zMTI3MTgsIDAuMzk2ODcxLCAwLjUwMTI1NywgMC42MDU0MjQsIDAuNzA5NTQxLCAwLjgxMzY3IiwgXAotICAgICAgICAgICIwLjIwODg0MiwgMC4zMjQ5OTcsIDAuNDA5MTUsIDAuNTEzNTA5LCAwLjYxNzY4NSwgMC43MjE4NjUsIDAuODI1OTY0IiwgXAotICAgICAgICAgICIwLjIyNDE3NSwgMC4zNDA1MDEsIDAuNDI0NjMzLCAwLjUyODk5NywgMC42MzMxNzQsIDAuNzM3Mjc2LCAwLjg0MTQ0NyIsIFwKLSAgICAgICAgICAiMC4yMzkwOTgsIDAuMzU1MjY5LCAwLjQzOTQxNSwgMC41NDM3OTgsIDAuNjQ3OTczLCAwLjc1MjEyNSwgMC44NTYyMTciLCBcCi0gICAgICAgICAgIjAuMjU0MjUsIDAuMzcwNDE1LCAwLjQ1NDU3NywgMC41NTg5MzIsIDAuNjYzMTA4LCAwLjc2NzI5LCAwLjg3MTMwNyIsIFwKLSAgICAgICAgICAiMC4yNzYyNTYsIDAuMzkyNDI1LCAwLjQ3NjU3NCwgMC41ODA5NTYsIDAuNjg1MTA4LCAwLjc4OTMzOSwgMC44OTMzNzUiLCBcCi0gICAgICAgICAgIjAuMjkzODgsIDAuNDEwMDEzLCAwLjQ5NDEzNiwgMC41OTg1MDMsIDAuNzAyNjk4LCAwLjgwNjksIDAuOTEwOTQ0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4NDU4MywgMC4yNzk4NjYsIDAuNDQxMzY2LCAwLjY0NjYzNiwgMC44NDk4NiwgMS4wNTU2NCwgMS4yNjYyMyIsIFwKLSAgICAgICAgICAiMC4wODQ2MDgsIDAuMjc5OTgzLCAwLjQ0MTI4NSwgMC42NDQyMjgsIDAuODUwMDYzLCAxLjA1OTU1LCAxLjI2NjEzIiwgXAotICAgICAgICAgICIwLjA4NDUxNSwgMC4yNzk4NTgsIDAuNDQxMjY5LCAwLjY0NTIxLCAwLjg1MDA5OSwgMS4wNTY4OCwgMS4yNjYwNCIsIFwKLSAgICAgICAgICAiMC4wODQ2MzQsIDAuMjc5ODYxLCAwLjQ0MTA5LCAwLjY0NDIzOCwgMC44NTI4ODMsIDEuMDU4MSwgMS4yNjYwNiIsIFwKLSAgICAgICAgICAiMC4wODQ2MDgsIDAuMjc5ODMsIDAuNDQxMjIzLCAwLjY0NTcxNywgMC44NTAyMTYsIDEuMDU5NDMsIDEuMjY2NDgiLCBcCi0gICAgICAgICAgIjAuMDg0NjI0LCAwLjI3OTg1MywgMC40NDExNDgsIDAuNjQ0MzU3LCAwLjg1MjU3LCAxLjA1NjQxLCAxLjI2NjA1IiwgXAotICAgICAgICAgICIwLjA4NDYwMywgMC4yNzk5MjYsIDAuNDQxMDcxLCAwLjY0NjE1NywgMC44NTE3ODksIDEuMDU1NzcsIDEuMjYyNjIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDM5MTEsIDAuMDA0MDMzLCAwLjAwNDA1NywgMC4wMDQwNzEsIDAuMDA0MDc5LCAwLjAwNDA4NCwgMC4wMDQwODciLCBcCi0gICAgICAgICAgIjAuMDAzODk3LCAwLjAwNDAyLCAwLjAwNDA0NSwgMC4wMDQwNTgsIDAuMDA0MDY3LCAwLjAwNDA2OSwgMC4wMDQwNzIiLCBcCi0gICAgICAgICAgIjAuMDAzODksIDAuMDA0MDEyLCAwLjAwNDAzNiwgMC4wMDQwNSwgMC4wMDQwNTgsIDAuMDA0MDYyLCAwLjAwNDA2NiIsIFwKLSAgICAgICAgICAiMC4wMDM4ODIsIDAuMDA0MDA1LCAwLjAwNDAyOSwgMC4wMDQwNDMsIDAuMDA0MDUxLCAwLjAwNDA1NiwgMC4wMDQwNTkiLCBcCi0gICAgICAgICAgIjAuMDAzODc1LCAwLjAwMzk5NiwgMC4wMDQwMjIsIDAuMDA0MDM4LCAwLjAwNDA0NSwgMC4wMDQwNSwgMC4wMDQwNTQiLCBcCi0gICAgICAgICAgIjAuMDAzODY4LCAwLjAwMzk4NywgMC4wMDQwMTQsIDAuMDA0MDMxLCAwLjAwNDAzNywgMC4wMDQwNDQsIDAuMDA0MDQ3IiwgXAotICAgICAgICAgICIwLjAwMzg2LCAwLjAwMzk3NywgMC4wMDQwMDUsIDAuMDA0MDIyLCAwLjAwNDAzMiwgMC4wMDQwMzgsIDAuMDA0MDQzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0OTg4LCAwLjAwNTE0OSwgMC4wMDUxODEsIDAuMDA1MTk5LCAwLjAwNTIwOSwgMC4wMDUyMTUsIDAuMDA1MjIiLCBcCi0gICAgICAgICAgIjAuMDA0OTgsIDAuMDA1MTQyLCAwLjAwNTE3NCwgMC4wMDUxOTMsIDAuMDA1MjAyLCAwLjAwNTIwOSwgMC4wMDUyMTMiLCBcCi0gICAgICAgICAgIjAuMDA0OTc1LCAwLjAwNTEzNywgMC4wMDUxNjksIDAuMDA1MTg4LCAwLjAwNTE5OCwgMC4wMDUyMDQsIDAuMDA1MjA5IiwgXAotICAgICAgICAgICIwLjAwNDk3LCAwLjAwNTEzMSwgMC4wMDUxNjUsIDAuMDA1MTg0LCAwLjAwNTE5NCwgMC4wMDUyMDEsIDAuMDA1MjA1IiwgXAotICAgICAgICAgICIwLjAwNDk2MywgMC4wMDUxMjQsIDAuMDA1MTU5LCAwLjAwNTE3OSwgMC4wMDUxOSwgMC4wMDUxOTcsIDAuMDA1MjAyIiwgXAotICAgICAgICAgICIwLjAwNDk1OCwgMC4wMDUxMTYsIDAuMDA1MTUyLCAwLjAwNTE3MywgMC4wMDUxODUsIDAuMDA1MTkyLCAwLjAwNTE5NyIsIFwKLSAgICAgICAgICAiMC4wMDQ5NTUsIDAuMDA1MTA3LCAwLjAwNTE0NSwgMC4wMDUxNjcsIDAuMDA1MTgsIDAuMDA1MTg4LCAwLjAwNTE5MyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzc1LCAwLjAwMzg1NiwgMC4wMDM4NzcsIDAuMDAzODg5LCAwLjAwMzg5MywgMC4wMDM4OTgsIDAuMDAzOSIsIFwKLSAgICAgICAgICAiMC4wMDM3MzUsIDAuMDAzODQzLCAwLjAwMzg2NSwgMC4wMDM4NzQsIDAuMDAzODgsIDAuMDAzODg0LCAwLjAwMzg4NyIsIFwKLSAgICAgICAgICAiMC4wMDM3MjgsIDAuMDAzODM1LCAwLjAwMzg1NSwgMC4wMDM4NjcsIDAuMDAzODc0LCAwLjAwMzg3OCwgMC4wMDM4NzgiLCBcCi0gICAgICAgICAgIjAuMDAzNzIsIDAuMDAzODI3LCAwLjAwMzg0OSwgMC4wMDM4NjEsIDAuMDAzODY3LCAwLjAwMzg3MSwgMC4wMDM4NzQiLCBcCi0gICAgICAgICAgIjAuMDAzNzE0LCAwLjAwMzgyMiwgMC4wMDM4NDQsIDAuMDAzODU2LCAwLjAwMzg2NCwgMC4wMDM4NjcsIDAuMDAzODcxIiwgXAotICAgICAgICAgICIwLjAwMzcwNSwgMC4wMDM4MTEsIDAuMDAzODM1LCAwLjAwMzg0OCwgMC4wMDM4NTUsIDAuMDAzODYsIDAuMDAzODY0IiwgXAotICAgICAgICAgICIwLjAwMzY5OSwgMC4wMDM4MDUsIDAuMDAzODI4LCAwLjAwMzg0MywgMC4wMDM4NSwgMC4wMDM4NTUsIDAuMDAzODU5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1MTQsIDAuMDA1Mjk1LCAwLjAwNTMyNSwgMC4wMDUzNDIsIDAuMDA1MzUyLCAwLjAwNTM1OCwgMC4wMDUzNjEiLCBcCi0gICAgICAgICAgIjAuMDA1MTMzLCAwLjAwNTI4OSwgMC4wMDUzMTksIDAuMDA1MzM2LCAwLjAwNTM0NSwgMC4wMDUzNTEsIDAuMDA1MzU1IiwgXAotICAgICAgICAgICIwLjAwNTEzLCAwLjAwNTI4NCwgMC4wMDUzMTUsIDAuMDA1MzMyLCAwLjAwNTM0MSwgMC4wMDUzNDcsIDAuMDA1MzUxIiwgXAotICAgICAgICAgICIwLjAwNTEyNCwgMC4wMDUyNzksIDAuMDA1MzEsIDAuMDA1MzI4LCAwLjAwNTMzOCwgMC4wMDUzNDQsIDAuMDA1MzQ4IiwgXAotICAgICAgICAgICIwLjAwNTExOCwgMC4wMDUyNzIsIDAuMDA1MzA1LCAwLjAwNTMyNCwgMC4wMDUzMzQsIDAuMDA1MzQxLCAwLjAwNTM0NSIsIFwKLSAgICAgICAgICAiMC4wMDUxMTIsIDAuMDA1MjY1LCAwLjAwNTI5OSwgMC4wMDUzMTksIDAuMDA1MzMsIDAuMDA1MzM2LCAwLjAwNTM0MSIsIFwKLSAgICAgICAgICAiMC4wMDUxMDksIDAuMDA1MjU4LCAwLjAwNTI5MywgMC4wMDUzMTQsIDAuMDA1MzI2LCAwLjAwNTMzMywgMC4wMDUzMzgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTMCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1NTUxLCAwLjAwNTY3LCAwLjAwNTY5NCwgMC4wMDU3MDksIDAuMDA1NzE3LCAwLjAwNTcyMywgMC4wMDU3MjYiLCBcCi0gICAgICAgICAgIjAuMDA1NTU1LCAwLjAwNTY3MiwgMC4wMDU2OTcsIDAuMDA1NzEzLCAwLjAwNTcyMSwgMC4wMDU3MjYsIDAuMDA1NzMiLCBcCi0gICAgICAgICAgIjAuMDA1NTU1LCAwLjAwNTY3MywgMC4wMDU2OTgsIDAuMDA1NzEzLCAwLjAwNTcyMSwgMC4wMDU3MjYsIDAuMDA1NzMiLCBcCi0gICAgICAgICAgIjAuMDA1NTU0LCAwLjAwNTY3MywgMC4wMDU2OTgsIDAuMDA1NzEzLCAwLjAwNTcyMSwgMC4wMDU3MjYsIDAuMDA1NzI5IiwgXAotICAgICAgICAgICIwLjAwNTU1MiwgMC4wMDU2NzIsIDAuMDA1Njk3LCAwLjAwNTcxMSwgMC4wMDU3MTksIDAuMDA1NzI1LCAwLjAwNTcyOCIsIFwKLSAgICAgICAgICAiMC4wMDU1NSwgMC4wMDU2NywgMC4wMDU2OTUsIDAuMDA1NzA5LCAwLjAwNTcxNywgMC4wMDU3MjMsIDAuMDA1NzI3IiwgXAotICAgICAgICAgICIwLjAwNTU0OCwgMC4wMDU2NjksIDAuMDA1NjkzLCAwLjAwNTcwNywgMC4wMDU3MTYsIDAuMDA1NzIxLCAwLjAwNTcyNCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDc5MiwgMC4wMDQ5NDUsIDAuMDA0OTc3LCAwLjAwNDk5NywgMC4wMDUwMDcsIDAuMDA1MDE0LCAwLjAwNTAxOCIsIFwKLSAgICAgICAgICAiMC4wMDQ3ODksIDAuMDA0OTQyLCAwLjAwNDk3NCwgMC4wMDQ5OTQsIDAuMDA1MDA0LCAwLjAwNTAxMSwgMC4wMDUwMTYiLCBcCi0gICAgICAgICAgIjAuMDA0Nzg2LCAwLjAwNDkzOSwgMC4wMDQ5NzIsIDAuMDA0OTkxLCAwLjAwNTAwMSwgMC4wMDUwMDgsIDAuMDA1MDEzIiwgXAotICAgICAgICAgICIwLjAwNDc4NCwgMC4wMDQ5MzcsIDAuMDA0OTY5LCAwLjAwNDk4OCwgMC4wMDQ5OTksIDAuMDA1MDA1LCAwLjAwNTAxIiwgXAotICAgICAgICAgICIwLjAwNDc4MiwgMC4wMDQ5MzUsIDAuMDA0OTY3LCAwLjAwNDk4NiwgMC4wMDQ5OTcsIDAuMDA1MDAzLCAwLjAwNTAwOCIsIFwKLSAgICAgICAgICAiMC4wMDQ3OCwgMC4wMDQ5MzQsIDAuMDA0OTY2LCAwLjAwNDk4NSwgMC4wMDQ5OTUsIDAuMDA1MDAyLCAwLjAwNTAwNiIsIFwKLSAgICAgICAgICAiMC4wMDQ3NzgsIDAuMDA0OTMyLCAwLjAwNDk2NSwgMC4wMDQ5ODQsIDAuMDA0OTk1LCAwLjAwNTAwMSwgMC4wMDUwMDYiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IERGRlFYTCAqCi0gKiAtLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKERGRlFYTCkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjE4NTQyNTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBmZiAoTjMwLFFCSU5UKSB7Ci0gICAgbmV4dF9zdGF0ZSA6ICJEIjsKLSAgICBjbG9ja2VkX29uIDogIkNLIjsKLSAgfQotICBwaW4oQ0spICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDU4NTI2ODsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA1ODQ5MTc7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNTg1MjY4OwotICAgIGNsb2NrIDogdHJ1ZTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDI0NTksIDAuMDAyNDQ4LCAwLjAwMjQzNiwgMC4wMDI0MzEsIDAuMDAyNDI2LCAwLjAwMjQxOCwgMC4wMDI0MTUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDUzMzcsIDAuMDA1MzMsIDAuMDA1MzIyLCAwLjAwNTMxNywgMC4wMDUzMTIsIDAuMDA1MzA1LCAwLjAwNTMwMyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQiOwotICAgICAgc2RmX2NvbmQgOiAiRCA9PSAxJ2IwIjsKLSAgICAgIHJpc2VfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjM4NDg5NCwgMC4zOTcwMjcsIDAuNDEyMDMsIDAuNDI3NDQyLCAwLjQ0MjkzLCAwLjQ2NzMyOCwgMC40ODgzOTEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjIyMTU2NSwgMC4yMzMxMTcsIDAuMjQ4MDQ5LCAwLjI2MjkzMiwgMC4yNzc2MDMsIDAuMzAwNTE2LCAwLjMxOTk3MiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjU5NDYzOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDY1NzMzNTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2NTk0NjM7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxODUxLCAwLjAwMTgzOSwgMC4wMDE4MzIsIDAuMDAxODI3LCAwLjAwMTgyNCwgMC4wMDE4MiwgMC4wMDE4MTUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDIyNjksIDAuMDAyMjYzLCAwLjAwMjI1OSwgMC4wMDIyNTYsIDAuMDAyMjU0LCAwLjAwMjI1LCAwLjAwMjI0OCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjA0Mzc1LCAtMC4wMzI1LCAtMC4wMiwgLTAuMDEzNzUsIC0wLjAwMTI1LCAwLjAxNSwgMC4wMjM3NSIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNDM3NSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDEyNSwgMC4wMDM3NSwgMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wNjc1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjAzNzUsIC0wLjAyNSwgLTAuMDA4NzUsIDAiLCBcCi0gICAgICAgICAgIi0wLjA4NjI1LCAtMC4wNzUsIC0wLjA2MjUsIC0wLjA1LCAtMC4wMzc1LCAtMC4wMjEyNSwgLTAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDk4NzUsIC0wLjA4NzUsIC0wLjA3NSwgLTAuMDYyNSwgLTAuMDUsIC0wLjA0LCAtMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjEyMTI1LCAtMC4xMSwgLTAuMDk3NSwgLTAuMDg1LCAtMC4wNzI1LCAtMC4wNTYyNSwgLTAuMDQ3NSIsIFwKLSAgICAgICAgICAiLTAuMTM2MjUsIC0wLjEyNSwgLTAuMTEyNSwgLTAuMSwgLTAuMDkzNzUsIC0wLjA3NzUsIC0wLjA2MjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1NjI1LCAwLjA2NzUsIDAuMDgsIDAuMDk4NzUsIDAuMTExMjUsIDAuMTMzNzUsIDAuMTU1IiwgXAotICAgICAgICAgICIwLjA0NSwgMC4wNTYyNSwgMC4wNjg3NSwgMC4wODEyNSwgMC4xLCAwLjEyMjUsIDAuMTQzNzUiLCBcCi0gICAgICAgICAgIjAuMDMyNSwgMC4wNDM3NSwgMC4wNTYyNSwgMC4wNjg3NSwgMC4wODc1LCAwLjExLCAwLjEzMTI1IiwgXAotICAgICAgICAgICIwLjAyLCAwLjAzMTI1LCAwLjA0Mzc1LCAwLjA2MjUsIDAuMDc1LCAwLjA5NzUsIDAuMTE4NzUiLCBcCi0gICAgICAgICAgIjAuMDA3NSwgMC4wMTg3NSwgMC4wMzEyNSwgMC4wNSwgMC4wNjI1LCAwLjA5MTI1LCAwLjEwNjI1IiwgXAotICAgICAgICAgICItMC4wMDg3NSwgMC4wMDg3NSwgMC4wMjEyNSwgMC4wMzM3NSwgMC4wNTI1LCAwLjA3NSwgMC4wOTYyNSIsIFwKLSAgICAgICAgICAiLTAuMDE3NSwgLTAuMDA2MjUsIDAuMDA2MjUsIDAuMDI1LCAwLjAzNzUsIDAuMDYsIDAuMDgxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDkzNzUsIDAuMDgyNSwgMC4wNywgMC4wNTc1LCAwLjA0NSwgMC4wMjg3NSwgMC4wMTM3NSIsIFwKLSAgICAgICAgICAiMC4xMDUsIDAuMDkzNzUsIDAuMDgxMjUsIDAuMDY4NzUsIDAuMDU2MjUsIDAuMDQsIDAuMDI1IiwgXAotICAgICAgICAgICIwLjExNzUsIDAuMTA2MjUsIDAuMDkzNzUsIDAuMDgxMjUsIDAuMDY4NzUsIDAuMDUyNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4xMzYyNSwgMC4xMTg3NSwgMC4xMDYyNSwgMC4wOTM3NSwgMC4wODEyNSwgMC4wNjUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIjAuMTQ4NzUsIDAuMTM3NSwgMC4xMTg3NSwgMC4xMDYyNSwgMC4xLCAwLjA4Mzc1LCAwLjA2ODc1IiwgXAotICAgICAgICAgICIwLjE3MTI1LCAwLjE1Mzc1LCAwLjE0MTI1LCAwLjEyODc1LCAwLjExNjI1LCAwLjEsIDAuMDkxMjUiLCBcCi0gICAgICAgICAgIjAuMTg2MjUsIDAuMTc1LCAwLjE2MjUsIDAuMTUsIDAuMTM3NSwgMC4xMjEyNSwgMC4xMDYyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyNSwgMC4wMTM3NSwgMC4wMDEyNSwgLTAuMDE3NSwgLTAuMDMsIC0wLjA1ODc1LCAtMC4wOCIsIFwKLSAgICAgICAgICAiMC4wMzYyNSwgMC4wMjUsIDAuMDEyNSwgLTAuMDA2MjUsIC0wLjAxODc1LCAtMC4wNDc1LCAtMC4wNjg3NSIsIFwKLSAgICAgICAgICAiMC4wNTUsIDAuMDM3NSwgMC4wMjUsIDAuMDA2MjUsIC0wLjAwNjI1LCAtMC4wMzUsIC0wLjA1NjI1IiwgXAotICAgICAgICAgICIwLjA2MTI1LCAwLjA1LCAwLjAzNzUsIDAuMDE4NzUsIDAuMDA2MjUsIC0wLjAyMjUsIC0wLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjA3Mzc1LCAwLjA2MjUsIDAuMDUsIDAuMDMxMjUsIDAuMDE4NzUsIC0wLjAxLCAtMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4wOTYyNSwgMC4wODUsIDAuMDY2MjUsIDAuMDUzNzUsIDAuMDM1LCAwLjAxMjUsIC0wLjAwODc1IiwgXAotICAgICAgICAgICIwLjExMTI1LCAwLjEsIDAuMDg3NSwgMC4wNjg3NSwgMC4wNTYyNSwgMC4wMjc1LCAwLjAwNjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihRKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMDcyNTE5NTsKLSAgICBmdW5jdGlvbiA6ICJOMzAiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5vbl91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcmlzaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMzMjEwNiwgMC4zNTczMTUsIDAuNTg0MzM3LCAwLjk2Mjg1MywgMS4zNDE0NiwgMi4yMjQ5LCAyLjcyOTYyIiwgXAotICAgICAgICAgICIwLjM0NDMzNiwgMC4zNjk1NDUsIDAuNTk2NTU1LCAwLjk3NTA4NiwgMS4zNTM2OSwgMi4yMzcxMywgMi43NDE4NSIsIFwKLSAgICAgICAgICAiMC4zNTkyMDEsIDAuMzg0NDEzLCAwLjYxMTQ0NywgMC45ODk5NDksIDEuMzY4NDgsIDIuMjUyMDEsIDIuNzU2NzMiLCBcCi0gICAgICAgICAgIjAuMzc0NzQsIDAuMzk5OTUsIDAuNjI2OTg0LCAxLjAwNTYsIDEuMzg0MDIsIDIuMjY3NTIsIDIuNzcyMzUiLCBcCi0gICAgICAgICAgIjAuMzkwMTA5LCAwLjQxNTMyMSwgMC42NDIzNTUsIDEuMDIwODksIDEuMzk5MzksIDIuMjgyODgsIDIuNzg3NzIiLCBcCi0gICAgICAgICAgIjAuNDE0Mzg5LCAwLjQzOTYsIDAuNjY2NjYsIDEuMDQ1MTQsIDEuNDIzNzYsIDIuMzA3MTksIDIuODExOTUiLCBcCi0gICAgICAgICAgIjAuNDM1Mzg1LCAwLjQ2MDYsIDAuNjg3NjQ1LCAxLjA2NjE0LCAxLjQ0NDY3LCAyLjMyODE5LCAyLjgzMjkiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjcxNTM1LCAwLjMyMTk4NCwgMC43ODM3MjMsIDEuNTUzMjksIDIuMzIzMDUsIDQuMTA5OTYsIDUuMTM1NzMiLCBcCi0gICAgICAgICAgIjAuMjcxNTM0LCAwLjMyMjM0MSwgMC43ODM2NTYsIDEuNTUzMjYsIDIuMzIzMDMsIDQuMTA5OSwgNS4xMzU3OCIsIFwKLSAgICAgICAgICAiMC4yNzE1MzEsIDAuMzIyNDU1LCAwLjc4MjQ0MywgMS41NTMyNCwgMi4zMjIyNSwgNC4xMTAwNSwgNS4xMzgyNyIsIFwKLSAgICAgICAgICAiMC4yNzE1MzMsIDAuMzIyNDQ1LCAwLjc4MjM2MSwgMS41NDk4LCAyLjMyMjIzLCA0LjEwOTQ5LCA1LjEzMzA0IiwgXAotICAgICAgICAgICIwLjI3MTUzNiwgMC4zMjIwMDksIDAuNzgyMzMxLCAxLjU1MzQsIDIuMzE4NzMsIDQuMTA5MDQsIDUuMTMzMDgiLCBcCi0gICAgICAgICAgIjAuMjcxNTM1LCAwLjMyMTk4NiwgMC43ODE5OTEsIDEuNTUzMjIsIDIuMzIzMDksIDQuMTEwMDMsIDUuMTM4MSIsIFwKLSAgICAgICAgICAiMC4yNzE1MTksIDAuMzIyNDUzLCAwLjc4MjQ1MywgMS41NTMyNCwgMi4zMjIzNCwgNC4xMDk5MywgNS4xMzgyOSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zODQ4OTQsIDAuNDE0NjA4LCAwLjY4MTk5OCwgMS4xMjc0LCAxLjU3MjgxLCAyLjYxMjM3LCAzLjIwNTgiLCBcCi0gICAgICAgICAgIjAuMzk3MDI3LCAwLjQyNjc2NCwgMC42OTQxMywgMS4xMzk1NCwgMS41ODUsIDIuNjI0MjksIDMuMjE4MTYiLCBcCi0gICAgICAgICAgIjAuNDEyMDMsIDAuNDQxNzUxLCAwLjcwOTEzNiwgMS4xNTQ1MiwgMS41OTk5NSwgMi42MzkxMywgMy4yMzMxIiwgXAotICAgICAgICAgICIwLjQyNzQ0MiwgMC40NTcxNTcsIDAuNzI0NTUxLCAxLjE2OTk2LCAxLjYxNTM5LCAyLjY1NDk0LCAzLjI0ODQxIiwgXAotICAgICAgICAgICIwLjQ0MjkzLCAwLjQ3MjY1MSwgMC43NDAwMzQsIDEuMTg1NDIsIDEuNjMwODUsIDIuNjcwMDMsIDMuMjY0IiwgXAotICAgICAgICAgICIwLjQ2NzMyOCwgMC40OTcwMjYsIDAuNzY0NDI5LCAxLjIwOTgyLCAxLjY1NTM2LCAyLjY5NDgsIDMuMjg4NDEiLCBcCi0gICAgICAgICAgIjAuNDg4MzkxLCAwLjUxODEzLCAwLjc4NTQ5NywgMS4yMzA5MSwgMS42NzYzNywgMi43MTU2NywgMy4zMDk1MyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMTEyOTEsIDAuMzY5OTQ3LCAwLjg5NzM1NSwgMS43ODQ1NCwgMi42Njc3OCwgNC43MTk3LCA1Ljg5MTQiLCBcCi0gICAgICAgICAgIjAuMzEwNDg4LCAwLjM2OTk0NywgMC45MDA2MSwgMS43ODQ3LCAyLjY2ODA5LCA0LjcxODU3LCA1Ljg5MDQ4IiwgXAotICAgICAgICAgICIwLjMxMTI5NSwgMC4zNjk5NjgsIDAuODk3MjYxLCAxLjc4NDc5LCAyLjY2ODQ3LCA0LjcyMDc2LCA1Ljg4OTcxIiwgXAotICAgICAgICAgICIwLjMxMTI4NywgMC4zNjk5NDcsIDAuODk3MzIxLCAxLjc4NDQ1LCAyLjY2NzkyLCA0LjcxOTg5LCA1Ljg5MDgzIiwgXAotICAgICAgICAgICIwLjMxMTI5NCwgMC4zNjk5NjksIDAuODk3MzE0LCAxLjc4NDc5LCAyLjY2ODQ3LCA0LjcyMDc4LCA1Ljg4OTcxIiwgXAotICAgICAgICAgICIwLjMxMTI3OSwgMC4zNzAwMTMsIDAuODk3NDg3LCAxLjc4NDY3LCAyLjY2NzA3LCA0LjcxNzk4LCA1Ljg5MTU4IiwgXAotICAgICAgICAgICIwLjMxMDQ4NywgMC4zNjk5NDgsIDAuOTAwNjA2LCAxLjc4NDcyLCAyLjY2ODExLCA0LjcyMDIyLCA1Ljg5MDQ4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDc4NiwgMC4wMDQ3ODQsIDAuMDA0Nzc1LCAwLjAwNDc2OCwgMC4wMDQ3NjYsIDAuMDA0NzYzLCAwLjAwNDc2MyIsIFwKLSAgICAgICAgICAiMC4wMDQ3NzYsIDAuMDA0Nzc0LCAwLjAwNDc2NCwgMC4wMDQ3NTksIDAuMDA0NzU2LCAwLjAwNDc1NCwgMC4wMDQ3NTMiLCBcCi0gICAgICAgICAgIjAuMDA0NzYzLCAwLjAwNDc2MSwgMC4wMDQ3NTIsIDAuMDA0NzQ2LCAwLjAwNDc0MywgMC4wMDQ3NCwgMC4wMDQ3NCIsIFwKLSAgICAgICAgICAiMC4wMDQ3NTUsIDAuMDA0NzUzLCAwLjAwNDc0NCwgMC4wMDQ3MzcsIDAuMDA0NzM1LCAwLjAwNDczMiwgMC4wMDQ3MzEiLCBcCi0gICAgICAgICAgIjAuMDA0NzQ4LCAwLjAwNDc0NywgMC4wMDQ3MzcsIDAuMDA0NzMxLCAwLjAwNDcyOSwgMC4wMDQ3MjYsIDAuMDA0NzI1IiwgXAotICAgICAgICAgICIwLjAwNDczNywgMC4wMDQ3MzYsIDAuMDA0NzI2LCAwLjAwNDcyLCAwLjAwNDcxOCwgMC4wMDQ3MTUsIDAuMDA0NzE0IiwgXAotICAgICAgICAgICIwLjAwNDczNSwgMC4wMDQ3MzMsIDAuMDA0NzI0LCAwLjAwNDcxOCwgMC4wMDQ3MTUsIDAuMDA0NzEyLCAwLjAwNDcxMiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNTA4NCwgMC4wMDUwODUsIDAuMDA1MDg4LCAwLjAwNTA5LCAwLjAwNTA5LCAwLjAwNTA5MSwgMC4wMDUwOTEiLCBcCi0gICAgICAgICAgIjAuMDA1MDcyLCAwLjAwNTA3MywgMC4wMDUwNzYsIDAuMDA1MDc4LCAwLjAwNTA3OCwgMC4wMDUwNzksIDAuMDA1MDc5IiwgXAotICAgICAgICAgICIwLjAwNTA2MSwgMC4wMDUwNjIsIDAuMDA1MDY1LCAwLjAwNTA2NiwgMC4wMDUwNjcsIDAuMDA1MDY3LCAwLjAwNTA2NyIsIFwKLSAgICAgICAgICAiMC4wMDUwNTIsIDAuMDA1MDUzLCAwLjAwNTA1NiwgMC4wMDUwNTcsIDAuMDA1MDU4LCAwLjAwNTA1OCwgMC4wMDUwNTkiLCBcCi0gICAgICAgICAgIjAuMDA1MDQ5LCAwLjAwNTA1LCAwLjAwNTA1MywgMC4wMDUwNTUsIDAuMDA1MDU1LCAwLjAwNTA1NiwgMC4wMDUwNTYiLCBcCi0gICAgICAgICAgIjAuMDA1MDQ1LCAwLjAwNTA0NiwgMC4wMDUwNDksIDAuMDA1MDUsIDAuMDA1MDUxLCAwLjAwNTA1MSwgMC4wMDUwNTIiLCBcCi0gICAgICAgICAgIjAuMDA1MDQ5LCAwLjAwNTA1LCAwLjAwNTA1MywgMC4wMDUwNTQsIDAuMDA1MDU1LCAwLjAwNTA1NSwgMC4wMDUwNTYiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogREZGUkhRWDggKgotICogLS0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKERGRlJIUVg4KSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuNjczOTA2OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIGZmIChOMzAsUUJJTlQpIHsKLSAgICBuZXh0X3N0YXRlIDogIkQiOwotICAgIGNsb2NrZWRfb24gOiAiQ0siOwotICAgIGNsZWFyIDogIighUk4pIjsKLSAgfQotICBwaW4oQ0spICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDU5MTY2NTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA1OTE0Mzg7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNTkxNjY1OwotICAgIGNsb2NrIDogdHJ1ZTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDMwOTksIDAuMDAzMDg3LCAwLjAwMzA3OCwgMC4wMDMwNjksIDAuMDAzMDY2LCAwLjAwMzA1OCwgMC4wMDMwNTMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDY2MDUsIDAuMDA2NTk3LCAwLjAwNjU5LCAwLjAwNjU4NCwgMC4wMDY1OCwgMC4wMDY1NzQsIDAuMDA2NTcyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRCZSTiI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fUk5fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjI5MzAyMSwgMC4zMDQ3MjYsIDAuMzE5OTc2LCAwLjMzNTM5NywgMC4zNTA5MTMsIDAuMzc1Mjg3LCAwLjM5NjU2MyIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMjMyNDg0LCAwLjI0NDEzNywgMC4yNTg5NzQsIDAuMjczOTIyLCAwLjI4ODU2OSwgMC4zMTE3MzEsIDAuMzMxMjMzIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihEKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA3NDg0OTc7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNzQ1ODA5OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDc0ODQ5NzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDIzMTYsIDAuMDAyMjk5LCAwLjAwMjI4OCwgMC4wMDIyODEsIDAuMDAyMjc2LCAwLjAwMjI2NywgMC4wMDIyNjIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDMwNDgsIDAuMDAzMDM5LCAwLjAwMzAzMywgMC4wMDMwMjksIDAuMDAzMDI1LCAwLjAwMzAyLCAwLjAwMzAxNiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJSTiI7Ci0gICAgICBzZGZfY29uZCA6ICJSTiA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMzc1LCAtMC4wMjYyNSwgLTAuMDIsIC0wLjAwNzUsIDAuMDA1LCAwLjAyMTI1LCAwLjAzIiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAxODc1LCAtMC4wMDYyNSwgMC4wMSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDYxMjUsIC0wLjA1NjI1LCAtMC4wNDM3NSwgLTAuMDMxMjUsIC0wLjAxODc1LCAtMC4wMDI1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wOCwgLTAuMDY4NzUsIC0wLjA1NjI1LCAtMC4wNDM3NSwgLTAuMDMxMjUsIC0wLjAxNSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA5MjUsIC0wLjA4MTI1LCAtMC4wNjg3NSwgLTAuMDU2MjUsIC0wLjA0Mzc1LCAtMC4wMzM3NSwgLTAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjEwODc1LCAtMC4xMDM3NSwgLTAuMDkxMjUsIC0wLjA3ODc1LCAtMC4wNjYyNSwgLTAuMDUsIC0wLjA0MTI1IiwgXAotICAgICAgICAgICItMC4xMywgLTAuMTE4NzUsIC0wLjEwNjI1LCAtMC4wOTM3NSwgLTAuMDgxMjUsIC0wLjA2NSwgLTAuMDU2MjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3NSwgMC4wODYyNSwgMC4wOTg3NSwgMC4xMTc1LCAwLjEzLCAwLjE1ODc1LCAwLjE3Mzc1IiwgXAotICAgICAgICAgICIwLjA2Mzc1LCAwLjA3NSwgMC4wODc1LCAwLjEwNjI1LCAwLjExODc1LCAwLjE0MTI1LCAwLjE2MjUiLCBcCi0gICAgICAgICAgIjAuMDUxMjUsIDAuMDYyNSwgMC4wNzUsIDAuMDkzNzUsIDAuMTA2MjUsIDAuMTI4NzUsIDAuMTUiLCBcCi0gICAgICAgICAgIjAuMDM4NzUsIDAuMDUsIDAuMDY4NzUsIDAuMDgxMjUsIDAuMDkzNzUsIDAuMTIyNSwgMC4xNDM3NSIsIFwKLSAgICAgICAgICAiMC4wMzI1LCAwLjA0Mzc1LCAwLjA1NjI1LCAwLjA3NSwgMC4wODc1LCAwLjExLCAwLjEzMTI1IiwgXAotICAgICAgICAgICIwLjAxNjI1LCAwLjAyNzUsIDAuMDQ2MjUsIDAuMDU4NzUsIDAuMDc3NSwgMC4xLCAwLjEyMTI1IiwgXAotICAgICAgICAgICIwLjAwNzUsIDAuMDI1LCAwLjAzNzUsIDAuMDUsIDAuMDY4NzUsIDAuMDkxMjUsIDAuMTEyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiUk4iOwotICAgICAgc2RmX2NvbmQgOiAiUk4gPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMSwgMC4wODg3NSwgMC4wNywgMC4wNTc1LCAwLjA1MTI1LCAwLjAzNSwgMC4wMiIsIFwKLSAgICAgICAgICAiMC4xMTEyNSwgMC4xLCAwLjA4NzUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNDYyNSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4xMjM3NSwgMC4xMTI1LCAwLjEsIDAuMDg3NSwgMC4wNzUsIDAuMDU4NzUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMTM2MjUsIDAuMTI1LCAwLjExMjUsIDAuMSwgMC4wODc1LCAwLjA3MTI1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICIwLjE0ODc1LCAwLjEzNzUsIDAuMTI1LCAwLjExMjUsIDAuMSwgMC4wODM3NSwgMC4wNjg3NSIsIFwKLSAgICAgICAgICAiMC4xNzEyNSwgMC4xNiwgMC4xNDc1LCAwLjEzNSwgMC4xMjI1LCAwLjEwNjI1LCAwLjA5MTI1IiwgXAotICAgICAgICAgICIwLjE5MjUsIDAuMTgxMjUsIDAuMTYyNSwgMC4xNSwgMC4xMzc1LCAwLjEyMTI1LCAwLjEwNjI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEyNSwgMC4wMDEyNSwgLTAuMDE3NSwgLTAuMDMsIC0wLjA0ODc1LCAtMC4wNzEyNSwgLTAuMDkyNSIsIFwKLSAgICAgICAgICAiMC4wMjM3NSwgMC4wMTI1LCAtMC4wMDYyNSwgLTAuMDE4NzUsIC0wLjAzNzUsIC0wLjA2LCAtMC4wODEyNSIsIFwKLSAgICAgICAgICAiMC4wMzYyNSwgMC4wMjUsIDAuMDA2MjUsIC0wLjAwNjI1LCAtMC4wMjUsIC0wLjA0NzUsIC0wLjA2ODc1IiwgXAotICAgICAgICAgICIwLjA0ODc1LCAwLjAzNzUsIDAuMDE4NzUsIDAuMDA2MjUsIC0wLjAxMjUsIC0wLjAzNSwgLTAuMDU2MjUiLCBcCi0gICAgICAgICAgIjAuMDYxMjUsIDAuMDUsIDAuMDMxMjUsIDAuMDE4NzUsIDAsIC0wLjAyMjUsIC0wLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjA3NzUsIDAuMDY2MjUsIDAuMDUzNzUsIDAuMDM1LCAwLjAyMjUsIC0wLjAwNjI1LCAtMC4wMjc1IiwgXAotICAgICAgICAgICIwLjA5ODc1LCAwLjA4NzUsIDAuMDY4NzUsIDAuMDUsIDAuMDM3NSwgMC4wMDg3NSwgLTAuMDEyNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAxLjA0MjU7Ci0gICAgZnVuY3Rpb24gOiAiTjMwIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBub25fdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJpc2luZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMwMDg3NywgMC4zNzQxMiwgMC40Mzc4MzcsIDAuNDgyOTMsIDAuNTU0OTk0LCAwLjYxODAzOCwgMC43MDgwNzEiLCBcCi0gICAgICAgICAgIjAuMzEyNzkzLCAwLjM4NjA0NSwgMC40NDk3NDgsIDAuNDk0ODQ0LCAwLjU2NjkwNiwgMC42Mjk5MzksIDAuNzE5OTQ2IiwgXAotICAgICAgICAgICIwLjMyNzc4NywgMC40MDEwMzUsIDAuNDY0NzI3LCAwLjUwOTgyMywgMC41ODE4OTMsIDAuNjQ0OTI0LCAwLjczNDk1OCIsIFwKLSAgICAgICAgICAiMC4zNDM3NDQsIDAuNDE2OTkzLCAwLjQ4MDY5OCwgMC41MjU3OTMsIDAuNTk3ODQzLCAwLjY2MDg4NSwgMC43NTA5MTQiLCBcCi0gICAgICAgICAgIjAuMzU5MjA3LCAwLjQzMjQ1OSwgMC40OTYxNjUsIDAuNTQxMjU2LCAwLjYxMzMxOSwgMC42NzYzNTIsIDAuNzY2Mzg1IiwgXAotICAgICAgICAgICIwLjM4MzY4NCwgMC40NTY5MzMsIDAuNTIwNjM4LCAwLjU2NTcxOSwgMC42Mzc3ODQsIDAuNzAwODU5LCAwLjc5MDg1NCIsIFwKLSAgICAgICAgICAiMC40MDQ2MjQsIDAuNDc3ODY5LCAwLjU0MTU3NSwgMC41ODY2NzUsIDAuNjU4NzM4LCAwLjcyMTc3MSwgMC44MTE4MDQiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTA4MzcsIDAuMTY5NzY1LCAwLjI5Mzg2NywgMC4zODM0MjgsIDAuNTI4NTk1LCAwLjY1NjA4NiwgMC44MzgzNDUiLCBcCi0gICAgICAgICAgIjAuMDUwNzcxLCAwLjE2OTc3NCwgMC4yOTM4OTMsIDAuMzgzNDI0LCAwLjUyODYzNiwgMC42NTYyMTUsIDAuODM5OTQ1IiwgXAotICAgICAgICAgICIwLjA1MDc5MiwgMC4xNjk3MzMsIDAuMjkzODY1LCAwLjM4MzQyOCwgMC41Mjk0MjcsIDAuNjU2MDgzLCAwLjgzOTk5NCIsIFwKLSAgICAgICAgICAiMC4wNTA4MTYsIDAuMTY5Nzk0LCAwLjI5Mzg2NSwgMC4zODM0MzMsIDAuNTI4NjcxLCAwLjY1NjExMywgMC44Mzg4NDUiLCBcCi0gICAgICAgICAgIjAuMDUwODIzLCAwLjE2OTc3OCwgMC4yOTM0NDYsIDAuMzgzNDA5LCAwLjUyODU4MywgMC42NTUzOCwgMC44MzgzNjEiLCBcCi0gICAgICAgICAgIjAuMDUwODIsIDAuMTY5Nzk2LCAwLjI5Mzg2MywgMC4zODM1OTUsIDAuNTI4NjYsIDAuNjU3Mzc5LCAwLjgzODgzMiIsIFwKLSAgICAgICAgICAiMC4wNTA4MjUsIDAuMTY5NzQ5LCAwLjI5MzQ5LCAwLjM4MzQwOCwgMC41Mjg1ODUsIDAuNjU1MzgsIDAuODM4MzU5Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjkzMDIxLCAwLjM3MDgsIDAuNDQ1MjgxLCAwLjQ5ODQyOCwgMC41ODMzNjcsIDAuNjU3NzA2LCAwLjc2Mzg4NyIsIFwKLSAgICAgICAgICAiMC4zMDQ3MjYsIDAuMzgyNTA1LCAwLjQ1NzAxMywgMC41MTAxMjIsIDAuNTk1MDgyLCAwLjY2OTQzLCAwLjc3NTYzIiwgXAotICAgICAgICAgICIwLjMxOTk3NiwgMC4zOTc3NTMsIDAuNDcyMjY3LCAwLjUyNTM3NSwgMC42MTAzMzgsIDAuNjg0NzA0LCAwLjc5MDg4NSIsIFwKLSAgICAgICAgICAiMC4zMzUzOTcsIDAuNDEzMTc4LCAwLjQ4NzY4OSwgMC41NDA3OTksIDAuNjI1NzYyLCAwLjcwMDEyOCwgMC44MDYzMDYiLCBcCi0gICAgICAgICAgIjAuMzUwOTEzLCAwLjQyODY5MiwgMC41MDMxOTksIDAuNTU2MzA4LCAwLjY0MTI2OSwgMC43MTU2MTYsIDAuODIxODE3IiwgXAotICAgICAgICAgICIwLjM3NTI4NywgMC40NTMwNjcsIDAuNTI3NTc2LCAwLjU4MDY4NSwgMC42NjU2NDcsIDAuNzQwMDE0LCAwLjg0NjE5MyIsIFwKLSAgICAgICAgICAiMC4zOTY1NjMsIDAuNDc0MzIsIDAuNTQ4ODE5LCAwLjYwMTkzNSwgMC42ODY4OTcsIDAuNzYxMjYyLCAwLjg2NzQ0MSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0Mjk2NCwgMC4xODQ0MywgMC4zMzA5NDEsIDAuNDM1ODUsIDAuNjA1NTY2LCAwLjc1NTQzNSwgMC45Njc2MTMiLCBcCi0gICAgICAgICAgIjAuMDQzMDE2LCAwLjE4NDUzNCwgMC4zMzA4OTgsIDAuNDM2MzAyLCAwLjYwNTg5LCAwLjc1MzAyMSwgMC45Njc0MzEiLCBcCi0gICAgICAgICAgIjAuMDQzMDE0LCAwLjE4NDYzMSwgMC4zMzA2NDMsIDAuNDM2NjExLCAwLjYwNDkyMiwgMC43NTU0NTIsIDAuOTY3NDMyIiwgXAotICAgICAgICAgICIwLjA0MzAyLCAwLjE4NDQ2MiwgMC4zMzEwMTcsIDAuNDM2NjI2LCAwLjYwNDg5NywgMC43NTU0ODQsIDAuOTY3NDI2IiwgXAotICAgICAgICAgICIwLjA0MzAxNSwgMC4xODQ1NDQsIDAuMzMwODk5LCAwLjQzNjI4NCwgMC42MDU4NzksIDAuNzUzMDMxLCAwLjk2NzQzMSIsIFwKLSAgICAgICAgICAiMC4wNDMwMjcsIDAuMTg0NDc2LCAwLjMzMDg2MSwgMC40MzY1MDksIDAuNjA0Nzk1LCAwLjc1NTQ5MSwgMC45Njc0MjkiLCBcCi0gICAgICAgICAgIjAuMDQzMDE3LCAwLjE4NDYzNiwgMC4zMzA3MDksIDAuNDM2Mjg1LCAwLjYwNTA4MywgMC43NTU0OCwgMC45Njc0MyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogY2xlYXI7Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY2MDI0LCAwLjE0MzU1NywgMC4yMTg1MSwgMC4yNzE2ODEsIDAuMzU2NTY1LCAwLjQzMDgwOSwgMC41MzY5MDgiLCBcCi0gICAgICAgICAgIjAuMDc3Njk5LCAwLjE1NTIxNSwgMC4yMzAxNzQsIDAuMjgzMzQ4LCAwLjM2ODI3MiwgMC40NDI1MjIsIDAuNTQ4NTk4IiwgXAotICAgICAgICAgICIwLjA5MjQxNywgMC4xNjk5OTIsIDAuMjQ0OTY2LCAwLjI5ODE0MywgMC4zODMwNzQsIDAuNDU3MzIyLCAwLjU2MzQwMyIsIFwKLSAgICAgICAgICAiMC4xMDcxMjcsIDAuMTg0Njc2LCAwLjI1OTY2MywgMC4zMTI4OSwgMC4zOTc4NTQsIDAuNDcyMTA2LCAwLjU3ODE5NyIsIFwKLSAgICAgICAgICAiMC4xMjE1ODQsIDAuMTk5MjEyLCAwLjI3NDIwNiwgMC4zMjczOSwgMC40MTIyNzUsIDAuNDg2NTM5LCAwLjU5MjY1NiIsIFwKLSAgICAgICAgICAiMC4xNDI5OTcsIDAuMjIwNzg1LCAwLjI5NTc3NCwgMC4zNDg5NTksIDAuNDMzODY4LCAwLjUwODEyOSwgMC42MTQyNCIsIFwKLSAgICAgICAgICAiMC4xNjAwMDUsIDAuMjM4MTQ4LCAwLjMxMzExOSwgMC4zNjYzMDQsIDAuNDUxMjU5LCAwLjUyNTUxOSwgMC42MzE2MTciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDAxNTksIDAuMTg0MTkxLCAwLjMzMDUzNCwgMC40MzU1OCwgMC42MDQ3OTEsIDAuNzUzMTAzLCAwLjk2NTQ5MyIsIFwKLSAgICAgICAgICAiMC4wNDAxNjgsIDAuMTg0MjE0LCAwLjMzMDUzMiwgMC40MzU1NzgsIDAuNjA0NjYsIDAuNzUzODYxLCAwLjk2NTQ5MSIsIFwKLSAgICAgICAgICAiMC4wNDAxODcsIDAuMTg0MTc5LCAwLjMzMDUyOSwgMC40MzU1NzQsIDAuNjA0NTc1LCAwLjc1MzA3OSwgMC45NjU0NDciLCBcCi0gICAgICAgICAgIjAuMDQwMzEyLCAwLjE4NDE3OSwgMC4zMzA1MDMsIDAuNDM1NTY5LCAwLjYwNDQ3NiwgMC43NTMxODUsIDAuOTY1MzQyIiwgXAotICAgICAgICAgICIwLjA0MDY1NiwgMC4xODQyNjIsIDAuMzMwNTIzLCAwLjQzNTUwNiwgMC42MDQzNjksIDAuNzUzNjk4LCAwLjk2NTI0NyIsIFwKLSAgICAgICAgICAiMC4wNDIwMywgMC4xODQ1MDQsIDAuMzMwNTU1LCAwLjQzNTUxOCwgMC42MDQ3NjQsIDAuNzUzMDI5LCAwLjk2NTUxNiIsIFwKLSAgICAgICAgICAiMC4wNDM3MzQsIDAuMTg0OTA4LCAwLjMzMDcwMywgMC40MzU2MjgsIDAuNjA0NzQsIDAuNzUzODg2LCAwLjk2NTA2MSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxNDY5NiwgMC4wMTQ5NDEsIDAuMDE1MDA0LCAwLjAxNTAyOSwgMC4wMTUwNDUsIDAuMDE1MDU0LCAwLjAxNTA2OCIsIFwKLSAgICAgICAgICAiMC4wMTQ2NzksIDAuMDE0OTI5LCAwLjAxNDk5MiwgMC4wMTUwMTMsIDAuMDE1MDMyLCAwLjAxNTA0NSwgMC4wMTUwNTMiLCBcCi0gICAgICAgICAgIjAuMDE0NjY2LCAwLjAxNDkxNiwgMC4wMTQ5NzksIDAuMDE1MDAxLCAwLjAxNTAyLCAwLjAxNTAzLCAwLjAxNTAzOSIsIFwKLSAgICAgICAgICAiMC4wMTQ2NjMsIDAuMDE0OTA4LCAwLjAxNDk3LCAwLjAxNDk5MywgMC4wMTUwMTIsIDAuMDE1MDIzLCAwLjAxNTAzMiIsIFwKLSAgICAgICAgICAiMC4wMTQ2NTYsIDAuMDE0OSwgMC4wMTQ5NjMsIDAuMDE0OTg4LCAwLjAxNTAwNSwgMC4wMTUwMTUsIDAuMDE1MDI1IiwgXAotICAgICAgICAgICIwLjAxNDY0MiwgMC4wMTQ4ODgsIDAuMDE0OTUsIDAuMDE0OTczLCAwLjAxNDk5MiwgMC4wMTUwMDEsIDAuMDE1MDEyIiwgXAotICAgICAgICAgICIwLjAxNDYzNiwgMC4wMTQ4ODIsIDAuMDE0OTQ1LCAwLjAxNDk2NywgMC4wMTQ5ODYsIDAuMDE0OTk1LCAwLjAxNTAwNiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE0MTE2LCAwLjAxNDQ0MywgMC4wMTQ1MTYsIDAuMDE0NTQxLCAwLjAxNDU2MywgMC4wMTQ1NzUsIDAuMDE0NTg1IiwgXAotICAgICAgICAgICIwLjAxNDA5NiwgMC4wMTQ0MjgsIDAuMDE0NTAzLCAwLjAxNDUyNywgMC4wMTQ1NSwgMC4wMTQ1NjIsIDAuMDE0NTcyIiwgXAotICAgICAgICAgICIwLjAxNDA4NSwgMC4wMTQ0MTYsIDAuMDE0NDkxLCAwLjAxNDUxNiwgMC4wMTQ1NCwgMC4wMTQ1NTEsIDAuMDE0NTYyIiwgXAotICAgICAgICAgICIwLjAxNDA3MywgMC4wMTQ0MDYsIDAuMDE0NDgyLCAwLjAxNDUwOCwgMC4wMTQ1MzEsIDAuMDE0NTQzLCAwLjAxNDU1MyIsIFwKLSAgICAgICAgICAiMC4wMTQwNzQsIDAuMDE0NDA2LCAwLjAxNDQ4MSwgMC4wMTQ1MDYsIDAuMDE0NTI5LCAwLjAxNDU0MSwgMC4wMTQ1NTEiLCBcCi0gICAgICAgICAgIjAuMDE0MDY5LCAwLjAxNDQwMiwgMC4wMTQ0NzcsIDAuMDE0NTAyLCAwLjAxNDUyNSwgMC4wMTQ1MzcsIDAuMDE0NTQ4IiwgXAotICAgICAgICAgICIwLjAxNDA5MywgMC4wMTQ0MTQsIDAuMDE0NDg3LCAwLjAxNDUxMSwgMC4wMTQ1MzMsIDAuMDE0NTQ0LCAwLjAxNDU1NSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxNTkyNywgMC4wMTYyMDEsIDAuMDE2MjQsIDAuMDE2MjUyLCAwLjAxNjI2MywgMC4wMTYyNjgsIDAuMDE2Mjc0IiwgXAotICAgICAgICAgICIwLjAxNTg1MywgMC4wMTYxMzcsIDAuMDE2MTgsIDAuMDE2MTkzLCAwLjAxNjIwNCwgMC4wMTYyMTEsIDAuMDE2MjE2IiwgXAotICAgICAgICAgICIwLjAxNTc2NiwgMC4wMTYwNjUsIDAuMDE2MTE5LCAwLjAxNjEzNiwgMC4wMTYxNTEsIDAuMDE2MTYsIDAuMDE2MTY4IiwgXAotICAgICAgICAgICIwLjAxNTY4NSwgMC4wMTU5OTksIDAuMDE2MDY2LCAwLjAxNjA4NywgMC4wMTYxMDgsIDAuMDE2MTE4LCAwLjAxNjEyOCIsIFwKLSAgICAgICAgICAiMC4wMTU2MjQsIDAuMDE1OTQ1LCAwLjAxNjAyMSwgMC4wMTYwNDcsIDAuMDE2MDcxLCAwLjAxNjA4NCwgMC4wMTYwOTUiLCBcCi0gICAgICAgICAgIjAuMDE1NTUzLCAwLjAxNTg2MSwgMC4wMTU5NDcsIDAuMDE1OTc4LCAwLjAxNjAwNywgMC4wMTYwMjMsIDAuMDE2MDM4IiwgXAotICAgICAgICAgICIwLjAxNTUxNCwgMC4wMTU4MiwgMC4wMTU5MDUsIDAuMDE1OTQ2LCAwLjAxNTk3OSwgMC4wMTU5OTcsIDAuMDE2MDE0Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3Bvd2VyKHNjYWxhcikgewotICAgICAgICB2YWx1ZXMoIjAiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFJOKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDMyODQwNTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDI5OTY2NzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDMyODQwNTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDExNjEsIDAuMDAxMTYsIDAuMDAxMTYsIDAuMDAxMTU5LCAwLjAwMTE2LCAwLjAwMTE1OSwgMC4wMDExNTkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDExODgsIDAuMDAxMTY5LCAwLjAwMTE2NywgMC4wMDExNjYsIDAuMDAxMTY2LCAwLjAwMTE2NiwgMC4wMDExNjYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUk4iOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFEIjsKLSAgICAgIHNkZl9jb25kIDogIkQgPT0gMSdiMCI7Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4xOTM1NDcsIDAuMjA1MTMxLCAwLjIxOTEwNiwgMC4yMzIxMDIsIDAuMjQ0NTQxLCAwLjI2MzgzNCwgMC4yODAyNTQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiByZWNvdmVyeV9yaXNpbmc7Ci0gICAgICB3aGVuIDogIkQiOwotICAgICAgc2RmX2NvbmQgOiAiRCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChyZWNvdmVyeV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDYyNSwgLTAuMDgsIC0wLjA5MjUsIC0wLjExMTI1LCAtMC4xMjM3NSwgLTAuMTUyNSwgLTAuMTY3NSIsIFwKLSAgICAgICAgICAiLTAuMDcsIC0wLjA4NzUsIC0wLjEsIC0wLjExODc1LCAtMC4xMzEyNSwgLTAuMTYsIC0wLjE4MTI1IiwgXAotICAgICAgICAgICItMC4wODI1LCAtMC4wOTM3NSwgLTAuMTA2MjUsIC0wLjEyNSwgLTAuMTM3NSwgLTAuMTY2MjUsIC0wLjE4NzUiLCBcCi0gICAgICAgICAgIi0wLjA4MjUsIC0wLjEsIC0wLjExMjUsIC0wLjEzMTI1LCAtMC4xNDM3NSwgLTAuMTcyNSwgLTAuMTkzNzUiLCBcCi0gICAgICAgICAgIi0wLjA4ODc1LCAtMC4xLCAtMC4xMTI1LCAtMC4xMzEyNSwgLTAuMTUsIC0wLjE3MjUsIC0wLjE5Mzc1IiwgXAotICAgICAgICAgICItMC4wODUsIC0wLjA5NjI1LCAtMC4xMTUsIC0wLjEyNzUsIC0wLjE0NjI1LCAtMC4xNzUsIC0wLjE5IiwgXAotICAgICAgICAgICItMC4wNzYyNSwgLTAuMDg3NSwgLTAuMTA2MjUsIC0wLjEyNSwgLTAuMTM3NSwgLTAuMTY2MjUsIC0wLjE4NzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiByZW1vdmFsX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiRCI7Ci0gICAgICBzZGZfY29uZCA6ICJEID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHJlbW92YWxfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTA2MjUsIDAuMTE3NSwgMC4xMywgMC4xNDg3NSwgMC4xNjEyNSwgMC4xOSwgMC4yMTEyNSIsIFwKLSAgICAgICAgICAiMC4xMTM3NSwgMC4xMjUsIDAuMTQzNzUsIDAuMTU2MjUsIDAuMTc1LCAwLjE5NzUsIDAuMjE4NzUiLCBcCi0gICAgICAgICAgIjAuMTI2MjUsIDAuMTM3NSwgMC4xNSwgMC4xNjg3NSwgMC4xODEyNSwgMC4yMSwgMC4yMzEyNSIsIFwKLSAgICAgICAgICAiMC4xMzg3NSwgMC4xNSwgMC4xNjI1LCAwLjE3NSwgMC4xOTM3NSwgMC4yMTYyNSwgMC4yMzc1IiwgXAotICAgICAgICAgICIwLjE0NSwgMC4xNTYyNSwgMC4xNzUsIDAuMTg3NSwgMC4yLCAwLjIyODc1LCAwLjI1IiwgXAotICAgICAgICAgICIwLjE2LCAwLjE3MTI1LCAwLjE4Mzc1LCAwLjIwMjUsIDAuMjE1LCAwLjIzNzUsIDAuMjU4NzUiLCBcCi0gICAgICAgICAgIjAuMTcsIDAuMTgxMjUsIDAuMTkzNzUsIDAuMjEyNSwgMC4yMjUsIDAuMjQ3NSwgMC4yNjg3NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IERGRlNSWDQgKgotICogLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoREZGU1JYNCkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjU2NzgwNjsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBmZiAoTjM1LFFCSU5UKSB7Ci0gICAgbmV4dF9zdGF0ZSA6ICJEIjsKLSAgICBjbG9ja2VkX29uIDogIkNLIjsKLSAgICBjbGVhciA6ICIoIVJOKSI7Ci0gICAgcHJlc2V0IDogIighU04pIjsKLSAgICBjbGVhcl9wcmVzZXRfdmFyMSA6IEg7Ci0gICAgY2xlYXJfcHJlc2V0X3ZhcjIgOiBMOwotICB9Ci0gIHBpbihDSykgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjAyODQ2OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYwMjU5OTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2MDI4NDY7Ci0gICAgY2xvY2sgOiB0cnVlOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjcxLCAwLjAwMjY5OCwgMC4wMDI2ODcsIDAuMDAyNjgxLCAwLjAwMjY3NiwgMC4wMDI2NjgsIDAuMDAyNjY1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA2NjIyLCAwLjAwNjYxMSwgMC4wMDY2MDIsIDAuMDA2NTk0LCAwLjAwNjU4NywgMC4wMDY1NzgsIDAuMDA2NTcyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRCZSTiZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fUk5fRVFfMV9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMzc2MjgyLCAwLjM4ODA5NCwgMC40MDMzMzcsIDAuNDE4NzQ2LCAwLjQzNDIyNSwgMC40NTg3MDYsIDAuNDc5ODUzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4yOTMzNjYsIDAuMzA0NjgzLCAwLjMxOTgzNywgMC4zMzQ3MTIsIDAuMzQ5NDIsIDAuMzcyMjQ2LCAwLjM5MTk2NyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNTU5MDMxOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDU1NzA2NzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA1NTkwMzE7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyOTQxLCAwLjAwMjkzLCAwLjAwMjkyMywgMC4wMDI5MTgsIDAuMDAyOTE0LCAwLjAwMjkwOSwgMC4wMDI5MDUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDI3NjgsIDAuMDAyNzYyLCAwLjAwMjc1OSwgMC4wMDI3NTYsIDAuMDAyNzUzLCAwLjAwMjc0OSwgMC4wMDI3NDYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiUk4mU04iOwotICAgICAgc2RmX2NvbmQgOiAiUk5fRVFfMV9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjA1LCAtMC4wMzg3NSwgLTAuMDI2MjUsIC0wLjAxMzc1LCAtMC4wMDc1LCAwLjAwODc1LCAwLjAxNzUiLCBcCi0gICAgICAgICAgIi0wLjA2MTI1LCAtMC4wNSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAxODc1LCAtMC4wMDI1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wNzM3NSwgLTAuMDYyNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wMzEyNSwgLTAuMDE1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDg2MjUsIC0wLjA3NSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA0Mzc1LCAtMC4wMjc1LCAtMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMTA1LCAtMC4wOTM3NSwgLTAuMDgxMjUsIC0wLjA2ODc1LCAtMC4wNTYyNSwgLTAuMDQ2MjUsIC0wLjAzMTI1IiwgXAotICAgICAgICAgICItMC4xMjEyNSwgLTAuMTE2MjUsIC0wLjEwMzc1LCAtMC4wOTEyNSwgLTAuMDc4NzUsIC0wLjA2MjUsIC0wLjA1Mzc1IiwgXAotICAgICAgICAgICItMC4xNDI1LCAtMC4xMzEyNSwgLTAuMTE4NzUsIC0wLjExMjUsIC0wLjEsIC0wLjA4Mzc1LCAtMC4wNjg3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU2MjUsIDAuMDY3NSwgMC4wODYyNSwgMC4wOTg3NSwgMC4xMTc1LCAwLjE0LCAwLjE2MTI1IiwgXAotICAgICAgICAgICIwLjA0NSwgMC4wNTYyNSwgMC4wNzUsIDAuMDg3NSwgMC4xLCAwLjEyODc1LCAwLjE0Mzc1IiwgXAotICAgICAgICAgICIwLjAzMjUsIDAuMDQzNzUsIDAuMDU2MjUsIDAuMDc1LCAwLjA4NzUsIDAuMTEsIDAuMTMxMjUiLCBcCi0gICAgICAgICAgIjAuMDIsIDAuMDMxMjUsIDAuMDQzNzUsIDAuMDYyNSwgMC4wNzUsIDAuMDk3NSwgMC4xMTg3NSIsIFwKLSAgICAgICAgICAiMC4wMDc1LCAwLjAxODc1LCAwLjAzNzUsIDAuMDUsIDAuMDYyNSwgMC4wOTEyNSwgMC4xMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDAyNSwgMC4wMDg3NSwgMC4wMjEyNSwgMC4wMzM3NSwgMC4wNTI1LCAwLjA3NSwgMC4wOTYyNSIsIFwKLSAgICAgICAgICAiLTAuMDE3NSwgLTAuMDA2MjUsIDAuMDA2MjUsIDAuMDI1LCAwLjAzNzUsIDAuMDYsIDAuMDgxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlJOJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIlJOX0VRXzFfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMDYyNSwgMC4xOTUsIDAuMTc2MjUsIDAuMTU3NSwgMC4xMzg3NSwgMC4xMTYyNSwgMC4wOTUiLCBcCi0gICAgICAgICAgIjAuMjE3NSwgMC4yMDYyNSwgMC4xODc1LCAwLjE2ODc1LCAwLjE1LCAwLjEyNzUsIDAuMTA2MjUiLCBcCi0gICAgICAgICAgIjAuMjMsIDAuMjE4NzUsIDAuMiwgMC4xODEyNSwgMC4xNjg3NSwgMC4xNCwgMC4xMTg3NSIsIFwKLSAgICAgICAgICAiMC4yNDg3NSwgMC4yMzEyNSwgMC4yMTg3NSwgMC4yLCAwLjE4MTI1LCAwLjE1MjUsIDAuMTMxMjUiLCBcCi0gICAgICAgICAgIjAuMjYxMjUsIDAuMjQzNzUsIDAuMjMxMjUsIDAuMjEyNSwgMC4xOTM3NSwgMC4xNjUsIDAuMTQzNzUiLCBcCi0gICAgICAgICAgIjAuMjgzNzUsIDAuMjY2MjUsIDAuMjUzNzUsIDAuMjM1LCAwLjIxNjI1LCAwLjE4NzUsIDAuMTY2MjUiLCBcCi0gICAgICAgICAgIjAuMjk4NzUsIDAuMjg3NSwgMC4yNjg3NSwgMC4yNSwgMC4yMzEyNSwgMC4yMDg3NSwgMC4xODc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTU2MjUsIDAuMTQ1LCAwLjEyNjI1LCAwLjEwNzUsIDAuMDk1LCAwLjA2NjI1LCAwLjA0NSIsIFwKLSAgICAgICAgICAiMC4xNjc1LCAwLjE1NjI1LCAwLjEzNzUsIDAuMTI1LCAwLjEwNjI1LCAwLjA3NzUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIjAuMTgsIDAuMTY4NzUsIDAuMTUsIDAuMTM3NSwgMC4xMTg3NSwgMC4wOSwgMC4wNjg3NSIsIFwKLSAgICAgICAgICAiMC4xOTI1LCAwLjE4MTI1LCAwLjE2MjUsIDAuMTUsIDAuMTMxMjUsIDAuMTA4NzUsIDAuMDgxMjUiLCBcCi0gICAgICAgICAgIjAuMjA1LCAwLjE5Mzc1LCAwLjE3NSwgMC4xNjI1LCAwLjE0Mzc1LCAwLjExNSwgMC4wOTM3NSIsIFwKLSAgICAgICAgICAiMC4yMjc1LCAwLjIxLCAwLjE5NzUsIDAuMTc4NzUsIDAuMTYsIDAuMTM3NSwgMC4xMTYyNSIsIFwKLSAgICAgICAgICAiMC4yNDI1LCAwLjIzMTI1LCAwLjIxMjUsIDAuMTkzNzUsIDAuMTgxMjUsIDAuMTUyNSwgMC4xMzEyNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjUyNDQxMzsKLSAgICBmdW5jdGlvbiA6ICJOMzUiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5vbl91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcmlzaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjk2OTUsIDAuNDI3ODMzLCAwLjU1NDYzNiwgMC42NDUzMzEsIDAuNzkxMjk4LCAwLjkxNzY5MSwgMS4xMDA5NiIsIFwKLSAgICAgICAgICAiMC4zMDg3MzEsIDAuNDM5NjIzLCAwLjU2NjU4NSwgMC42NTc3NzcsIDAuODAzMDg5LCAwLjkzMDEyLCAxLjExMTIiLCBcCi0gICAgICAgICAgIjAuMzIzNjQ3LCAwLjQ1NDU0NCwgMC41ODEzNTcsIDAuNjcyMTA0LCAwLjgxODAwMywgMC45NDQxOTgsIDEuMTI4MjMiLCBcCi0gICAgICAgICAgIjAuMzM5MjU3LCAwLjQ3MDE0NSwgMC41OTcxNCwgMC42ODgzMDYsIDAuODMzNjIyLCAwLjk2MTA1OCwgMS4xNDMwNSIsIFwKLSAgICAgICAgICAiMC4zNTQ2MTcsIDAuNDg1NTA2LCAwLjYxMjUsIDAuNzAzNjY5LCAwLjg0ODk4NCwgMC45NzYwMzMsIDEuMTU4NTEiLCBcCi0gICAgICAgICAgIjAuMzc4ODY2LCAwLjUwOTcyOSwgMC42MzcxOTIsIDAuNzI3OTIxLCAwLjg3MzIxOCwgMS4wMDA1OSwgMS4xODI5OCIsIFwKLSAgICAgICAgICAiMC4zOTk3MiwgMC41MzA2MTYsIDAuNjU3NTg4LCAwLjc0ODgyMiwgMC44OTQwNTcsIDEuMDE5OSwgMS4yMDM4NiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2NDE4MSwgMC4zMDk3OTQsIDAuNTcyMjYsIDAuNzYxMDI4LCAxLjA1Nzg3LCAxLjMxMzUsIDEuNjg2NzgiLCBcCi0gICAgICAgICAgIjAuMDY0MjcyLCAwLjMxNTY2MiwgMC41NzQxNDYsIDAuNzU3Mjg5LCAxLjA1NjgyLCAxLjMwMjk5LCAxLjY4MDEiLCBcCi0gICAgICAgICAgIjAuMDY0MzI3LCAwLjMxNDMyOCwgMC41NzQwMzEsIDAuNzYxMDU3LCAxLjA1Nzg3LCAxLjMyMTI0LCAxLjY4Nzk4IiwgXAotICAgICAgICAgICIwLjA2NDM2OSwgMC4zMTAzMzIsIDAuNTc0MTIyLCAwLjc1NzE3LCAxLjA1NjY4LCAxLjMxNDk2LCAxLjY5MTA5IiwgXAotICAgICAgICAgICIwLjA2NDM2NSwgMC4zMTAzMDcsIDAuNTc0MTI2LCAwLjc1NzAxNSwgMS4wNTcwMSwgMS4zMDE5NywgMS42NzgxNCIsIFwKLSAgICAgICAgICAiMC4wNjQzOTksIDAuMzA5ODQxLCAwLjU3MzQ0NCwgMC43NTI3NjQsIDEuMDQ5MjQsIDEuMzA5MiwgMS42NzcxOSIsIFwKLSAgICAgICAgICAiMC4wNjM5NDksIDAuMzA5ODUsIDAuNTcxMjA1LCAwLjc1MjYyLCAxLjA1NTcxLCAxLjMyMTIxLCAxLjY3ODc1Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzI3MzM5LCAwLjQ3Njc1NiwgMC42MjI3OTEsIDAuNzI3MTU2LCAwLjg5NDMyLCAxLjA0MDU4LCAxLjI0OTA3IiwgXAotICAgICAgICAgICIwLjMzOTE0MiwgMC40ODg1NDUsIDAuNjM0NTgsIDAuNzM4OTQ1LCAwLjkwNTkxMSwgMS4wNTIzOSwgMS4yNjA4IiwgXAotICAgICAgICAgICIwLjM1NDM4NywgMC41MDM3NDMsIDAuNjQ5Nzc5LCAwLjc1NDEyMywgMC45MjE0MTcsIDEuMDY3NTksIDEuMjc2ODkiLCBcCi0gICAgICAgICAgIjAuMzY5ODE0LCAwLjUxOTA1OSwgMC42NjUyODQsIDAuNzY5NTc4LCAwLjkzNjc4NCwgMS4wODMxMSwgMS4yOTI0MiIsIFwKLSAgICAgICAgICAiMC4zODUyNywgMC41MzQ2ODMsIDAuNjgwNzE5LCAwLjc4NTE3MiwgMC45NTE5ODUsIDEuMDk4NTgsIDEuMzA3MDkiLCBcCi0gICAgICAgICAgIjAuNDA5Nzc0LCAwLjU1OTE3NywgMC43MDUyMTQsIDAuODA5NTc1LCAwLjk3NzUxMiwgMS4xMjMsIDEuMzMyMDciLCBcCi0gICAgICAgICAgIjAuNDMwODc5LCAwLjU4MDI3MiwgMC43MjYzMDgsIDAuODMwNjQ4LCAwLjk5NzkzMiwgMS4xNDM5MywgMS4zNTMyMiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2NjA4MywgMC4zNDcwMDcsIDAuNjM3MDI0LCAwLjg0NTExMSwgMS4xNzUzMiwgMS40NjY1NiwgMS44ODQ0MyIsIFwKLSAgICAgICAgICAiMC4wNjYxOTEsIDAuMzQ2OTk0LCAwLjYzNzAxMSwgMC44NDUwOCwgMS4xNzU0MiwgMS40NjY3NywgMS44ODM4MiIsIFwKLSAgICAgICAgICAiMC4wNjU5NTgsIDAuMzQ2OTY1LCAwLjYzNzA0LCAwLjg0NTA0OCwgMS4xNzU5NSwgMS40NjY1MSwgMS44ODU3OSIsIFwKLSAgICAgICAgICAiMC4wNjYxNjUsIDAuMzQ3NjY3LCAwLjYzNjk0OCwgMC44NDM3MTYsIDEuMTc1NDQsIDEuNDY3MTMsIDEuODgyODgiLCBcCi0gICAgICAgICAgIjAuMDY2MTkxLCAwLjM0Njk3NCwgMC42MzcwMDYsIDAuODQ0MDQ4LCAxLjE3Njg1LCAxLjQ2NzE4LCAxLjg4MzgzIiwgXAotICAgICAgICAgICIwLjA2NjM1NywgMC4zNDY5OTQsIDAuNjM3MDIsIDAuODQ1MTEzLCAxLjE3OCwgMS40NjYyNSwgMS44ODQxMiIsIFwKLSAgICAgICAgICAiMC4wNjY0NzYsIDAuMzQ2OTcxLCAwLjYzNzA1MywgMC44NDM0OTMsIDEuMTc1NzUsIDEuNDY4MDIsIDEuODg0MjMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUk4iOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGNsZWFyOwotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjQzMjk0NSwgMC41ODIxOTYsIDAuNzI4MTcyLCAwLjgzMjQ5MSwgMC45OTk1OTYsIDEuMTQ1NDYsIDEuMzU0MjEiLCBcCi0gICAgICAgICAgIjAuNDQ0MzYxLCAwLjU5MzU4NywgMC43Mzk1NzksIDAuODQzOTAyLCAxLjAxMTAxLCAxLjE1Njg4LCAxLjM2NTYxIiwgXAotICAgICAgICAgICIwLjQ1OTI1OSwgMC42MDg0NzYsIDAuNzU0NDY3LCAwLjg1ODc5MywgMS4wMjU5LCAxLjE3MTcxLCAxLjM4MDUiLCBcCi0gICAgICAgICAgIjAuNDc0MDQ4LCAwLjYyMzI2NywgMC43NjkwNzcsIDAuODczNTY3LCAxLjA0MDYxLCAxLjE4NjYsIDEuMzk1MyIsIFwKLSAgICAgICAgICAiMC40ODgwOTMsIDAuNjM3MzQ4LCAwLjc4MzMyLCAwLjg4NzY0MiwgMS4wNTQ3NiwgMS4yMDA2LCAxLjQwOTM1IiwgXAotICAgICAgICAgICIwLjUxMDY2NiwgMC42NTk5MiwgMC44MDU4OTIsIDAuOTEwMjEzLCAxLjA3NzM0LCAxLjIyMzE0LCAxLjQzMTkyIiwgXAotICAgICAgICAgICIwLjUyODAyMywgMC42NzcyNzksIDAuODIzMjUsIDAuOTI3NTczLCAxLjA5NDcsIDEuMjQwNTMsIDEuNDQ5MjgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjc1MzMsIDAuMzQ3Njc5LCAwLjYzNzE1NywgMC44NDQ3MjksIDEuMTc3ODcsIDEuNDY3MjUsIDEuODg1MzMiLCBcCi0gICAgICAgICAgIjAuMDY2NzUzLCAwLjM0NzY2NywgMC42MzcxNTQsIDAuODQ0MTgsIDEuMTc2OTgsIDEuNDY3NTEsIDEuODg3NCIsIFwKLSAgICAgICAgICAiMC4wNjY1OTgsIDAuMzQ3NjYsIDAuNjM3MTUyLCAwLjg0NTAzMywgMS4xNzc5NCwgMS40Njc2MSwgMS44ODcyMiIsIFwKLSAgICAgICAgICAiMC4wNjc1MzksIDAuMzQ3NTA1LCAwLjYzNzA3NywgMC44NDQ3NjMsIDEuMTc2ODMsIDEuNDcwNjcsIDEuODg0ODIiLCBcCi0gICAgICAgICAgIjAuMDY3NjM1LCAwLjM0NzU2MiwgMC42MzcxNjMsIDAuODQ0NjUxLCAxLjE3Nzg3LCAxLjQ2OTEsIDEuODg0ODUiLCBcCi0gICAgICAgICAgIjAuMDY2NjkzLCAwLjM0NzY3NCwgMC42MzcxNTMsIDAuODQ1MDYyLCAxLjE3NzEsIDEuNDY3NTMsIDEuODg1NDciLCBcCi0gICAgICAgICAgIjAuMDY2NjgyLCAwLjM0NjkxOSwgMC42MzcxNjMsIDAuODQ1MDQyLCAxLjE3NzA4LCAxLjQ2OTIxLCAxLjg4NTEzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiBwcmVzZXQ7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjQ4MzY5LCAwLjM3ODMwMiwgMC41MDU4NzcsIDAuNTk2Nzc5LCAwLjc0MTM2NSwgMC44Njg3NjMsIDEuMDQ5ODYiLCBcCi0gICAgICAgICAgIjAuMjU5OTM3LCAwLjM4OTg1MSwgMC41MTc0MzEsIDAuNjA4Mzg1LCAwLjc1MzYyOCwgMC44ODAwNSwgMS4wNjE4NiIsIFwKLSAgICAgICAgICAiMC4yNzQwNTYsIDAuNDA0MDcyLCAwLjUzMTY1NCwgMC42MjI1NDMsIDAuNzY3MTI4LCAwLjg5NDUzNCwgMS4wNzU2MiIsIFwKLSAgICAgICAgICAiMC4yODkyMjYsIDAuNDE5MjQxLCAwLjU0NjgyMiwgMC42Mzc3MTcsIDAuNzgyMjk3LCAwLjkwOTcsIDEuMDkwODEiLCBcCi0gICAgICAgICAgIjAuMzAzNjUxLCAwLjQzMzU4MSwgMC41NjExNDksIDAuNjUyMDYsIDAuNzk2NjM3LCAwLjkyNDA1LCAxLjEwNTM2IiwgXAotICAgICAgICAgICIwLjMyNjUyNywgMC40NTY0NjgsIDAuNTgzMzI0LCAwLjY3NDA4NiwgMC44MjAwMTYsIDAuOTQ3MDMsIDEuMTI4MjkiLCBcCi0gICAgICAgICAgIjAuMzQ2NzM4LCAwLjQ3NjY1MywgMC42MDQyMjMsIDAuNjk1MTksIDAuODM5NDMyLCAwLjk2Njg5NSwgMS4xNDg2NyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2MTk1NSwgMC4zMTE3NDIsIDAuNTcyOTM2LCAwLjc1OTc0MSwgMS4wNTk4LCAxLjMyMTUsIDEuNjk0NjMiLCBcCi0gICAgICAgICAgIjAuMDYxOTc0LCAwLjMwOTc3NiwgMC41NzM3NjgsIDAuNzU5MjY3LCAxLjA1OTcxLCAxLjMyMTMzLCAxLjY5NDYzIiwgXAotICAgICAgICAgICIwLjA2MTk4MiwgMC4zMTI3NjksIDAuNTczMzE1LCAwLjc1OTM0LCAxLjA1OTgsIDEuMzIxMzcsIDEuNjk0NjIiLCBcCi0gICAgICAgICAgIjAuMDYxOTM4LCAwLjMxMDg0MSwgMC41NzI4ODIsIDAuNzYwMTU5LCAxLjA1OTgsIDEuMzIxMzcsIDEuNjk0NjIiLCBcCi0gICAgICAgICAgIjAuMDYxOTU1LCAwLjMxNDUyMSwgMC41NzM1NzIsIDAuNzU5NzUyLCAxLjA1OTgsIDEuMzIxMzgsIDEuNjk0NjEiLCBcCi0gICAgICAgICAgIjAuMDYxODcxLCAwLjMxNDA2NCwgMC41NzI5NjcsIDAuNzYwODExLCAxLjA1OTkxLCAxLjMyMTQxLCAxLjY5NDYxIiwgXAotICAgICAgICAgICIwLjA2MTkwNywgMC4zMTI2MTksIDAuNTczMjk1LCAwLjc1OTg2OSwgMS4wNTk4MSwgMS4zMjE0NCwgMS42OTQ2MSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjQwMzAzOCwgMC41NTIyNDcsIDAuNjk4MjQxLCAwLjgwMjU2OCwgMC45Njk2NDcsIDEuMTE1NSwgMS4zMjQyOCIsIFwKLSAgICAgICAgICAiMC40MTUxMjcsIDAuNTY0Mzc1LCAwLjcxMDM1MywgMC44MTQ2NzUsIDAuOTgxNzg0LCAxLjEyNzY1LCAxLjMzNjM5IiwgXAotICAgICAgICAgICIwLjQzMDA4MywgMC41NzkyMDYsIDAuNzI1MzExLCAwLjgyOTYzMiwgMC45OTY3NDcsIDEuMTQyNiwgMS4zNTEzNSIsIFwKLSAgICAgICAgICAiMC40NDQ1NywgMC41OTM4MjYsIDAuNzM5Nzk4LCAwLjg0NDEyLCAxLjAxMTI1LCAxLjE1NzA1LCAxLjM2NTgzIiwgXAotICAgICAgICAgICIwLjQ1ODU1NSwgMC42MDc4MTUsIDAuNzUzNzg1LCAwLjg1ODEwOCwgMS4wMjUyMywgMS4xNzEwOCwgMS4zNzk4MiIsIFwKLSAgICAgICAgICAiMC40ODA2MjgsIDAuNjI5ODU4LCAwLjc3NTg0NiwgMC44ODAxNzYsIDEuMDQ3MywgMS4xOTMwNywgMS40MDE4OCIsIFwKLSAgICAgICAgICAiMC40OTk2OTMsIDAuNjQ4OTE5LCAwLjc5NDY4NywgMC44OTkyMjEsIDEuMDY2MywgMS4yMTIyNSwgMS40MjA5NCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2NjgxMSwgMC4zNDc2NjMsIDAuNjM3MTUyLCAwLjg0NDA3LCAxLjE3NjM2LCAxLjQ2NzgyLCAxLjg4NzEzIiwgXAotICAgICAgICAgICIwLjA2NzEyMywgMC4zNDc2NzgsIDAuNjM3MTU5LCAwLjg0NDE4MSwgMS4xNzc5MiwgMS40NzAzLCAxLjg4NTQ0IiwgXAotICAgICAgICAgICIwLjA2NjYzNSwgMC4zNDc0NTUsIDAuNjM3MTU3LCAwLjg0NDE0MSwgMS4xNzc5MiwgMS40Njc0OCwgMS44ODU0NiIsIFwKLSAgICAgICAgICAiMC4wNjc1NCwgMC4zNDc2NzQsIDAuNjM3MTUyLCAwLjg0NDIxOSwgMS4xNzg1OSwgMS40NjY0NiwgMS44ODU0MiIsIFwKLSAgICAgICAgICAiMC4wNjc0NDcsIDAuMzQ3NDY1LCAwLjYzNzE1NywgMC44NDQwODQsIDEuMTc3MDksIDEuNDY3NDYsIDEuODg1NSIsIFwKLSAgICAgICAgICAiMC4wNjYzMzQsIDAuMzQ3NjY2LCAwLjYzNzE1MSwgMC44NDQxNDgsIDEuMTc3MDEsIDEuNDY3NDUsIDEuODg3MTMiLCBcCi0gICAgICAgICAgIjAuMDY3MTY5LCAwLjM0NzM3NywgMC42MzcwNjksIDAuODQ1MDI5LCAxLjE3NjM4LCAxLjQ3MDc0LCAxLjg4NTQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDY2NzYsIDAuMDA2Nzk4LCAwLjAwNjgxNSwgMC4wMDY4MiwgMC4wMDY4MjUsIDAuMDA2ODI3LCAwLjAwNjgyOSIsIFwKLSAgICAgICAgICAiMC4wMDY2NzEsIDAuMDA2NzkzLCAwLjAwNjgxLCAwLjAwNjgxNSwgMC4wMDY4MTksIDAuMDA2ODIxLCAwLjAwNjgyMyIsIFwKLSAgICAgICAgICAiMC4wMDY2NjQsIDAuMDA2Nzg2LCAwLjAwNjgwNCwgMC4wMDY4MDgsIDAuMDA2ODEzLCAwLjAwNjgxNSwgMC4wMDY4MTciLCBcCi0gICAgICAgICAgIjAuMDA2NjYyLCAwLjAwNjc4MywgMC4wMDY4LCAwLjAwNjgwNSwgMC4wMDY4MDksIDAuMDA2ODExLCAwLjAwNjgxMyIsIFwKLSAgICAgICAgICAiMC4wMDY2NTgsIDAuMDA2NzgsIDAuMDA2Nzk3LCAwLjAwNjgwMiwgMC4wMDY4MDYsIDAuMDA2ODA4LCAwLjAwNjgxIiwgXAotICAgICAgICAgICIwLjAwNjY1NCwgMC4wMDY3NzQsIDAuMDA2NzkxLCAwLjAwNjc5NywgMC4wMDY4MDEsIDAuMDA2ODAyLCAwLjAwNjgwNSIsIFwKLSAgICAgICAgICAiMC4wMDY2NSwgMC4wMDY3NzIsIDAuMDA2Nzg5LCAwLjAwNjc5NSwgMC4wMDY3OTgsIDAuMDA2OCwgMC4wMDY4MDIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjY4NCwgMC4wMDY4MDMsIDAuMDA2ODIsIDAuMDA2ODI2LCAwLjAwNjgzLCAwLjAwNjgzMywgMC4wMDY4MzUiLCBcCi0gICAgICAgICAgIjAuMDA2NjgzLCAwLjAwNjc5OSwgMC4wMDY4MTYsIDAuMDA2ODIxLCAwLjAwNjgyNSwgMC4wMDY4MjgsIDAuMDA2ODI5IiwgXAotICAgICAgICAgICIwLjAwNjY3OSwgMC4wMDY3OTQsIDAuMDA2ODExLCAwLjAwNjgxOCwgMC4wMDY4MiwgMC4wMDY4MjIsIDAuMDA2ODI0IiwgXAotICAgICAgICAgICIwLjAwNjY2OSwgMC4wMDY3ODksIDAuMDA2ODA2LCAwLjAwNjgxLCAwLjAwNjgxNSwgMC4wMDY4MTYsIDAuMDA2ODE5IiwgXAotICAgICAgICAgICIwLjAwNjY3MSwgMC4wMDY3ODgsIDAuMDA2ODA0LCAwLjAwNjgwOCwgMC4wMDY4MTQsIDAuMDA2ODE2LCAwLjAwNjgyIiwgXAotICAgICAgICAgICIwLjAwNjY3LCAwLjAwNjc4NiwgMC4wMDY4MDQsIDAuMDA2ODEsIDAuMDA2ODEyLCAwLjAwNjgxNCwgMC4wMDY4MTgiLCBcCi0gICAgICAgICAgIjAuMDA2NjcyLCAwLjAwNjc4NywgMC4wMDY4MDYsIDAuMDA2ODA5LCAwLjAwNjgxMywgMC4wMDY4MTUsIDAuMDA2ODE3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUk4iOwotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA3NjgyLCAwLjAwNzgwMiwgMC4wMDc4MjEsIDAuMDA3ODI2LCAwLjAwNzgzLCAwLjAwNzgzMywgMC4wMDc4MzQiLCBcCi0gICAgICAgICAgIjAuMDA3Njc3LCAwLjAwNzc5NywgMC4wMDc4MTUsIDAuMDA3ODIsIDAuMDA3ODI1LCAwLjAwNzgyNywgMC4wMDc4MyIsIFwKLSAgICAgICAgICAiMC4wMDc2NzMsIDAuMDA3NzkzLCAwLjAwNzgxMSwgMC4wMDc4MTcsIDAuMDA3ODIzLCAwLjAwNzgyNCwgMC4wMDc4MjYiLCBcCi0gICAgICAgICAgIjAuMDA3NjcsIDAuMDA3NzksIDAuMDA3ODA4LCAwLjAwNzgxNCwgMC4wMDc4MTgsIDAuMDA3ODIxLCAwLjAwNzgyMyIsIFwKLSAgICAgICAgICAiMC4wMDc2NjcsIDAuMDA3Nzg3LCAwLjAwNzgwNSwgMC4wMDc4MTIsIDAuMDA3ODE2LCAwLjAwNzgxOCwgMC4wMDc4MiIsIFwKLSAgICAgICAgICAiMC4wMDc2NjYsIDAuMDA3Nzg1LCAwLjAwNzgwMywgMC4wMDc4MDksIDAuMDA3ODE0LCAwLjAwNzgxNiwgMC4wMDc4MTgiLCBcCi0gICAgICAgICAgIjAuMDA3NjY0LCAwLjAwNzc4MywgMC4wMDc4MDIsIDAuMDA3ODA3LCAwLjAwNzgxMiwgMC4wMDc4MTQsIDAuMDA3ODE2Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3Bvd2VyKHNjYWxhcikgewotICAgICAgICB2YWx1ZXMoIjAiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDczNzIsIDAuMDA3NDg3LCAwLjAwNzUwMSwgMC4wMDc1MDQsIDAuMDA3NTA4LCAwLjAwNzUwOSwgMC4wMDc1MSIsIFwKLSAgICAgICAgICAiMC4wMDczNjYsIDAuMDA3NDgxLCAwLjAwNzQ5NSwgMC4wMDc0OTksIDAuMDA3NTAyLCAwLjAwNzUwMywgMC4wMDc1MDYiLCBcCi0gICAgICAgICAgIjAuMDA3MzYxLCAwLjAwNzQ3NywgMC4wMDc0OTEsIDAuMDA3NDk1LCAwLjAwNzQ5OCwgMC4wMDc1LCAwLjAwNzUwMSIsIFwKLSAgICAgICAgICAiMC4wMDczNTgsIDAuMDA3NDc1LCAwLjAwNzQ4OSwgMC4wMDc0OTIsIDAuMDA3NDk1LCAwLjAwNzUwMiwgMC4wMDc0OTYiLCBcCi0gICAgICAgICAgIjAuMDA3MzU3LCAwLjAwNzQ3MiwgMC4wMDc0ODYsIDAuMDA3NDksIDAuMDA3NDkzLCAwLjAwNzQ5NSwgMC4wMDc0OTYiLCBcCi0gICAgICAgICAgIjAuMDA3MzU1LCAwLjAwNzQ3LCAwLjAwNzQ4NCwgMC4wMDc0ODgsIDAuMDA3NDkxLCAwLjAwNzQ5MywgMC4wMDc0OTQiLCBcCi0gICAgICAgICAgIjAuMDA3MzUyLCAwLjAwNzQ2NywgMC4wMDc0ODEsIDAuMDA3NDg1LCAwLjAwNzQ4OSwgMC4wMDc0OTIsIDAuMDA3NDkxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDY1NjEsIDAuMDA2NjgxLCAwLjAwNjcsIDAuMDA2NzA1LCAwLjAwNjcxLCAwLjAwNjcxNCwgMC4wMDY3MTUiLCBcCi0gICAgICAgICAgIjAuMDA2NTU1LCAwLjAwNjY3NSwgMC4wMDY2OTQsIDAuMDA2NywgMC4wMDY3MDQsIDAuMDA2NzA3LCAwLjAwNjcwOCIsIFwKLSAgICAgICAgICAiMC4wMDY1NTEsIDAuMDA2NjcsIDAuMDA2Njg5LCAwLjAwNjY5NiwgMC4wMDY2OTksIDAuMDA2NzAyLCAwLjAwNjcwNCIsIFwKLSAgICAgICAgICAiMC4wMDY1NDgsIDAuMDA2NjY3LCAwLjAwNjY4NywgMC4wMDY2OTEsIDAuMDA2Njk2LCAwLjAwNjY5OCwgMC4wMDY3IiwgXAotICAgICAgICAgICIwLjAwNjU0NSwgMC4wMDY2NjUsIDAuMDA2Njg0LCAwLjAwNjY5LCAwLjAwNjY5NCwgMC4wMDY2OTYsIDAuMDA2Njk4IiwgXAotICAgICAgICAgICIwLjAwNjU0MSwgMC4wMDY2NjEsIDAuMDA2NjgyLCAwLjAwNjY4NiwgMC4wMDY2OTMsIDAuMDA2NjkzLCAwLjAwNjY5NSIsIFwKLSAgICAgICAgICAiMC4wMDY1MzksIDAuMDA2NjU5LCAwLjAwNjY3OCwgMC4wMDY2ODQsIDAuMDA2Njg5LCAwLjAwNjY5MSwgMC4wMDY2OTMiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFFOKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuNTI1NTA5OwotICAgIGZ1bmN0aW9uIDogIlFCSU5UIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBub25fdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJpc2luZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjM3NjI4MiwgMC41MDMwNjgsIDAuNjI5ODQ2LCAwLjcyMDQzMywgMC44NjU0MjEsIDAuOTkyMywgMS4xNzM2MSIsIFwKLSAgICAgICAgICAiMC4zODgwOTQsIDAuNTE0ODc3LCAwLjY0MTY1OCwgMC43MzIyNDQsIDAuODc3MjQyLCAxLjAwNDExLCAxLjE4NTQzIiwgXAotICAgICAgICAgICIwLjQwMzMzNywgMC41MzAwNTYsIDAuNjU2ODQzLCAwLjc0NzQzMywgMC44OTI0MTUsIDEuMDE5MywgMS4yMDA1NyIsIFwKLSAgICAgICAgICAiMC40MTg3NDYsIDAuNTQ1NTMyLCAwLjY3MjMyNCwgMC43NjI4OTgsIDAuOTA3ODgzLCAxLjAzNDc2LCAxLjIxNjA0IiwgXAotICAgICAgICAgICIwLjQzNDIyNSwgMC41NjEwMDUsIDAuNjg3Nzg2LCAwLjc3ODM2OSwgMC45MjMzNzEsIDEuMDUwMjQsIDEuMjMxNTQiLCBcCi0gICAgICAgICAgIjAuNDU4NzA2LCAwLjU4NTQ5MiwgMC43MTIyNzQsIDAuODAyODYxLCAwLjk0NzkwMywgMS4wNzQ3MywgMS4yNTYwMSIsIFwKLSAgICAgICAgICAiMC40Nzk4NTMsIDAuNjA2NTgzLCAwLjczMzM3LCAwLjgyMzk2LCAwLjk2ODk0MywgMS4wOTU4MywgMS4yNzcxMSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1Nzg4LCAwLjMwODgzNSwgMC41NjcwODYsIDAuNzUxODU4LCAxLjA0NTcsIDEuMzAzOCwgMS42NzI0MSIsIFwKLSAgICAgICAgICAiMC4wNTc4NTMsIDAuMzA4ODEzLCAwLjU2NzA2OCwgMC43NTE4MjgsIDEuMDQ1NzIsIDEuMzAzNzcsIDEuNjcyNTEiLCBcCi0gICAgICAgICAgIjAuMDU3OTA3LCAwLjMwODc4NCwgMC41NjcxMTEsIDAuNzUxNDQ0LCAxLjA0NTU1LCAxLjMwMzc4LCAxLjY3NDA2IiwgXAotICAgICAgICAgICIwLjA1NzkyLCAwLjMwOTQ4OSwgMC41NjcwMDIsIDAuNzUwNjM2LCAxLjA0NTY5LCAxLjMwMzczLCAxLjY3MDQ2IiwgXAotICAgICAgICAgICIwLjA1NzkxMSwgMC4zMDg4MDIsIDAuNTY3MDY0LCAwLjc1MTgwNiwgMS4wNDU4NiwgMS4zMDM3MSwgMS42NzIzNyIsIFwKLSAgICAgICAgICAiMC4wNTc5MDgsIDAuMzA4ODEyLCAwLjU2NzA4OSwgMC43NTE4MTYsIDEuMDQ3NjMsIDEuMzAzODEsIDEuNjcyMzgiLCBcCi0gICAgICAgICAgIjAuMDU3OTM0LCAwLjMwODc4OCwgMC41NjcxMjgsIDAuNzUwNTczLCAxLjA0NTU3LCAxLjMwMzY1LCAxLjY3MjMzIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzUwNTY2LCAwLjQ5NjE3OCwgMC42NDIyNDQsIDAuNzQ2NTU3LCAwLjkxMzU1MiwgMS4wNTk3MSwgMS4yNjg1NCIsIFwKLSAgICAgICAgICAiMC4zNjIzODIsIDAuNTA3OTc0LCAwLjY1NDAwMiwgMC43NTgzNTMsIDAuOTI1MzUsIDEuMDcxNDcsIDEuMjgwMjYiLCBcCi0gICAgICAgICAgIjAuMzc3MjgsIDAuNTIyODgyLCAwLjY2ODkzLCAwLjc3MzI1MSwgMC45NDAyNTQsIDEuMDg2NCwgMS4yOTUzNCIsIFwKLSAgICAgICAgICAiMC4zOTI5MTgsIDAuNTM4NDksIDAuNjg0NTI2LCAwLjc4ODg4MiwgMC45NTU4NzksIDEuMTAyLCAxLjMxMDgyIiwgXAotICAgICAgICAgICIwLjQwODI3OCwgMC41NTM4NTEsIDAuNjk5ODg4LCAwLjgwNDI0MywgMC45NzEyNDEsIDEuMTE3MzYsIDEuMzI2MjIiLCBcCi0gICAgICAgICAgIjAuNDMyNTMxLCAwLjU3ODA2NSwgMC43MjQwOTEsIDAuODI4NDQ1LCAwLjk5NTQ2MSwgMS4xNDE1OSwgMS4zNTA0NSIsIFwKLSAgICAgICAgICAiMC40NTMzNDgsIDAuNTk4OTUsIDAuNzQ1MDI5LCAwLjg0OTMyOSwgMS4wMTYzMiwgMS4xNjI0NSwgMS4zNzEzMyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2MTgzMiwgMC4zNDY5MjgsIDAuNjM2OTY4LCAwLjg0NDgzNywgMS4xNzY2NiwgMS40NjgyMSwgMS44ODI1NyIsIFwKLSAgICAgICAgICAiMC4wNjE4ODcsIDAuMzQ3MzUyLCAwLjYzNzIyOSwgMC44NDQxOTcsIDEuMTc2NywgMS40NjcyNSwgMS44ODI3NyIsIFwKLSAgICAgICAgICAiMC4wNjE4NDMsIDAuMzQ2OTIsIDAuNjM3MjI1LCAwLjg0NDgyNSwgMS4xNzY2NiwgMS40Njc3MywgMS44ODIzOCIsIFwKLSAgICAgICAgICAiMC4wNjE4NjcsIDAuMzQ2NjU4LCAwLjYzNzIyMywgMC44NDQxODUsIDEuMTc2NywgMS40NjczMSwgMS44ODIzOCIsIFwKLSAgICAgICAgICAiMC4wNjE4NjcsIDAuMzQ2NjYxLCAwLjYzNzIyNCwgMC44NDQxNzEsIDEuMTc2NjksIDEuNDY3MjIsIDEuODgyMjgiLCBcCi0gICAgICAgICAgIjAuMDYxODYsIDAuMzQ2OTMxLCAwLjYzNzE1NywgMC44NDQ0NCwgMS4xNzY0NiwgMS40NjY4MywgMS44ODIyOSIsIFwKLSAgICAgICAgICAiMC4wNjE4NTcsIDAuMzQ2OTI5LCAwLjYzNjc0NywgMC44NDQ0MzQsIDEuMTc2MTksIDEuNDY3NzMsIDEuODgyMzQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUk4iOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHByZXNldDsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC40ODE3MTEsIDAuNjA4NTM0LCAwLjczNTI5NCwgMC44MjU4OTEsIDAuOTcwODg4LCAxLjA5Nzg4LCAxLjI3OTIzIiwgXAotICAgICAgICAgICIwLjQ5MzExNiwgMC42MTk5NDUsIDAuNzQ2NzA0LCAwLjgzNzI5OSwgMC45ODIyOTYsIDEuMTA5MjksIDEuMjkwNjQiLCBcCi0gICAgICAgICAgIjAuNTA4MDA0LCAwLjYzNDgyOCwgMC43NjE1ODcsIDAuODUyMTgyLCAwLjk5NzE3OSwgMS4xMjQxMSwgMS4zMDU1MyIsIFwKLSAgICAgICAgICAiMC41MjI4NzcsIDAuNjQ5NjA1LCAwLjc3NjMxMSwgMC44NjY5NjYsIDEuMDExOTcsIDEuMTM4ODgsIDEuMzIwMzMiLCBcCi0gICAgICAgICAgIjAuNTM2ODUxLCAwLjY2MzY3OCwgMC43OTA0MzgsIDAuODgxMDM0LCAxLjAyNjAzLCAxLjE1MzAyLCAxLjMzNDM4IiwgXAotICAgICAgICAgICIwLjU1OTQyNiwgMC42ODYyNDksIDAuODEzMDA5LCAwLjkwMzYwNiwgMS4wNDg2LCAxLjE3NTU5LCAxLjM1Njk1IiwgXAotICAgICAgICAgICIwLjU3Njc4MSwgMC43MDM2MDgsIDAuODMwMzY4LCAwLjkyMDk2NCwgMS4wNjU5NiwgMS4xOTI5NSwgMS4zNzQzMSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1ODAxMiwgMC4zMDk2NTQsIDAuNTY3NDkzLCAwLjc1MTkxOCwgMS4wNDc0MywgMS4zMDMxOCwgMS42NzU4NSIsIFwKLSAgICAgICAgICAiMC4wNTgwMDQsIDAuMzA5NjQ3LCAwLjU2NzQ5NSwgMC43NTE4MDIsIDEuMDQ1NjYsIDEuMzAyODcsIDEuNjc1NzciLCBcCi0gICAgICAgICAgIjAuMDU4MDI4LCAwLjMwOTY0NiwgMC41Njc0OTQsIDAuNzUxNzkxLCAxLjA0NzQzLCAxLjMwMzE2LCAxLjY3NTc4IiwgXAotICAgICAgICAgICIwLjA1ODA2NywgMC4zMDk0NjgsIDAuNTY3NDMxLCAwLjc1MTc4NCwgMS4wNDU3NCwgMS4zMDMxMSwgMS42NzU4NSIsIFwKLSAgICAgICAgICAiMC4wNTgwMDksIDAuMzA5NTM5LCAwLjU2NzQ5OSwgMC43NTE5MDEsIDEuMDQ3NDcsIDEuMzAzNjUsIDEuNjc1ODMiLCBcCi0gICAgICAgICAgIjAuMDU4MDQzLCAwLjMwOTY1MSwgMC41Njc0ODQsIDAuNzUxNzg2LCAxLjA0NTcyLCAxLjMwMjYzLCAxLjY3NTkxIiwgXAotICAgICAgICAgICIwLjA1ODA0NCwgMC4zMDg4LCAwLjU2NzQ5OCwgMC43NTE3MzYsIDEuMDQ1NzIsIDEuMzAyNjQsIDEuNjc1ODgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiU04iOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGNsZWFyOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjQ1MTg2NywgMC41Nzg2LCAwLjcwNTM2MiwgMC43OTU5NTgsIDAuOTQwOTU3LCAxLjA2Nzg4LCAxLjI0OTMxIiwgXAotICAgICAgICAgICIwLjQ2Mzg5LCAwLjU5MDcxMSwgMC43MTc0NzEsIDAuODA4MDY3LCAwLjk1MzA2MywgMS4wODAwNiwgMS4yNjE0MSIsIFwKLSAgICAgICAgICAiMC40Nzg4NDMsIDAuNjA1NTQxLCAwLjczMjQzLCAwLjgyMzAyNiwgMC45NjgwMjIsIDEuMDk1MDIsIDEuMjc2MzciLCBcCi0gICAgICAgICAgIjAuNDkzMzQ4LCAwLjYyMDE1MywgMC43NDY5MTMsIDAuODM3NTA5LCAwLjk4MjUwNCwgMS4xMDk1LCAxLjI5MDg1IiwgXAotICAgICAgICAgICIwLjUwNzMxNywgMC42MzQxNDUsIDAuNzYwOTA2LCAwLjg1MTUwMSwgMC45OTY0OTcsIDEuMTIzNDksIDEuMzA0ODQiLCBcCi0gICAgICAgICAgIjAuNTI5Mzg1LCAwLjY1NjIwMSwgMC43ODI5NjEsIDAuODczNTU0LCAxLjAxODU1LCAxLjE0NTQ4LCAxLjMyNjkxIiwgXAotICAgICAgICAgICIwLjU0ODUyOCwgMC42NzUyNTIsIDAuODAxOTUsIDAuODkyNjExLCAxLjAzNzYxLCAxLjE2NDUyLCAxLjM0NTk3Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU4MDU0LCAwLjMwOTY1MiwgMC41Njc1MDEsIDAuNzUxNzkzLCAxLjA0NTcsIDEuMzAzMTksIDEuNjc1ODEiLCBcCi0gICAgICAgICAgIjAuMDU4MDIsIDAuMzA5NjU1LCAwLjU2NzQ5NiwgMC43NTE3OTUsIDEuMDQ3NiwgMS4zMDMxNiwgMS42NzU3NyIsIFwKLSAgICAgICAgICAiMC4wNTgwMjMsIDAuMzA5NDUxLCAwLjU2NzQ5MSwgMC43NTE3ODksIDEuMDQ3MDUsIDEuMzAzMDMsIDEuNjc1NzYiLCBcCi0gICAgICAgICAgIjAuMDU4MDI3LCAwLjMwOTY1MSwgMC41Njc0ODMsIDAuNzUxNzg1LCAxLjA0NTcyLCAxLjMwMzAyLCAxLjY3NTY3IiwgXAotICAgICAgICAgICIwLjA1Nzk5NSwgMC4zMDk0NjQsIDAuNTY3NDg3LCAwLjc1MTc4MywgMS4wNDU3MiwgMS4zMDMwNiwgMS42NzU3NyIsIFwKLSAgICAgICAgICAiMC4wNTgwMTcsIDAuMzA5NjQ2LCAwLjU2NzQ4OSwgMC43NTE3ODgsIDEuMDQ1NjIsIDEuMzAzMTUsIDEuNjc1NzYiLCBcCi0gICAgICAgICAgIjAuMDU4MDYzLCAwLjMwOTM0MiwgMC41NjczNzMsIDAuNzUxNzUsIDEuMDQ1NjQsIDEuMzAyNzksIDEuNjc1NzciKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMDEzODYsIDAuNDQ3MTU4LCAwLjU5MzIyLCAwLjY5NzYzLCAwLjg2NDYyOSwgMS4wMTA3OSwgMS4yMTk1MyIsIFwKLSAgICAgICAgICAiMC4zMTI5NTEsIDAuNDU4NzI4LCAwLjYwNDc3NSwgMC43MDkxNzgsIDAuODc2MjI4LCAxLjAyMjMyLCAxLjIzMTEyIiwgXAotICAgICAgICAgICIwLjMyNzA2NiwgMC40NzI5MjYsIDAuNjE4OTg4LCAwLjcyMzM5OCwgMC44OTAzOTYsIDEuMDM2NTUsIDEuMjQ1MyIsIFwKLSAgICAgICAgICAiMC4zNDIyMywgMC40ODgwOTMsIDAuNjM0MTU3LCAwLjczODU2NywgMC45MDU1NjUsIDEuMDUxNzIsIDEuMjYwNDYiLCBcCi0gICAgICAgICAgIjAuMzU2NjY2LCAwLjUwMjQzOSwgMC42NDg1LCAwLjc1MjkwOSwgMC45MTk5MDksIDEuMDY2MDcsIDEuMjc0ODIiLCBcCi0gICAgICAgICAgIjAuMzc5NTAyLCAwLjUyNTM0LCAwLjY3MTMxOSwgMC43NzU2ODMsIDAuOTQyODI2LCAxLjA4ODkyLCAxLjI5NzcxIiwgXAotICAgICAgICAgICIwLjM5OTc1MywgMC41NDU1MywgMC42OTE1NzYsIDAuNzk1OTc1LCAwLjk2Mjk2NiwgMS4xMDkxMiwgMS4zMTc5MiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2MTc2NSwgMC4zNDcwNiwgMC42MzcxNjcsIDAuODQ1MDkzLCAxLjE3NzM5LCAxLjQ2NzkyLCAxLjg4MzIyIiwgXAotICAgICAgICAgICIwLjA2MTc4NiwgMC4zNDY5MjUsIDAuNjM3MjUyLCAwLjg0NTA5NCwgMS4xNzc0MiwgMS40Njc4MiwgMS44ODMyNiIsIFwKLSAgICAgICAgICAiMC4wNjE3NjYsIDAuMzQ3MTQxLCAwLjYzNzE2MiwgMC44NDUwNDUsIDEuMTc3MDYsIDEuNDY3ODYsIDEuODgzMjIiLCBcCi0gICAgICAgICAgIjAuMDYxNzY5LCAwLjM0Njk3OSwgMC42MzcxNjIsIDAuODQ0Nzg5LCAxLjE3NzQxLCAxLjQ2Nzg2LCAxLjg4MzIyIiwgXAotICAgICAgICAgICIwLjA2MTc5MSwgMC4zNDcxMTIsIDAuNjM3MjM3LCAwLjg0NTA1MiwgMS4xNzc0MiwgMS40Njc4NiwgMS44ODMyNSIsIFwKLSAgICAgICAgICAiMC4wNjE3MzMsIDAuMzQ2OTg1LCAwLjYzNzE2NywgMC44NDUwNjQsIDEuMTc3NSwgMS40Njc5MiwgMS44ODMyMiIsIFwKLSAgICAgICAgICAiMC4wNjE3NDUsIDAuMzQ3MTAzLCAwLjYzNzIwNCwgMC44NDQ3MywgMS4xNzc1MiwgMS40Njc5LCAxLjg4MzI2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2Njg0LCAwLjAwNjgwMywgMC4wMDY4MiwgMC4wMDY4MjYsIDAuMDA2ODMsIDAuMDA2ODMzLCAwLjAwNjgzNSIsIFwKLSAgICAgICAgICAiMC4wMDY2ODMsIDAuMDA2Nzk5LCAwLjAwNjgxNiwgMC4wMDY4MjEsIDAuMDA2ODI1LCAwLjAwNjgyOCwgMC4wMDY4MjkiLCBcCi0gICAgICAgICAgIjAuMDA2Njc5LCAwLjAwNjc5NCwgMC4wMDY4MTEsIDAuMDA2ODE4LCAwLjAwNjgyLCAwLjAwNjgyMiwgMC4wMDY4MjQiLCBcCi0gICAgICAgICAgIjAuMDA2NjY5LCAwLjAwNjc4OSwgMC4wMDY4MDYsIDAuMDA2ODEsIDAuMDA2ODE1LCAwLjAwNjgxNiwgMC4wMDY4MTkiLCBcCi0gICAgICAgICAgIjAuMDA2NjcxLCAwLjAwNjc4OCwgMC4wMDY4MDQsIDAuMDA2ODA4LCAwLjAwNjgxNCwgMC4wMDY4MTYsIDAuMDA2ODIiLCBcCi0gICAgICAgICAgIjAuMDA2NjcsIDAuMDA2Nzg2LCAwLjAwNjgwNCwgMC4wMDY4MSwgMC4wMDY4MTIsIDAuMDA2ODE0LCAwLjAwNjgxOCIsIFwKLSAgICAgICAgICAiMC4wMDY2NzIsIDAuMDA2Nzg3LCAwLjAwNjgwNiwgMC4wMDY4MDksIDAuMDA2ODEzLCAwLjAwNjgxNSwgMC4wMDY4MTciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjY3NiwgMC4wMDY3OTgsIDAuMDA2ODE1LCAwLjAwNjgyLCAwLjAwNjgyNSwgMC4wMDY4MjcsIDAuMDA2ODI5IiwgXAotICAgICAgICAgICIwLjAwNjY3MSwgMC4wMDY3OTMsIDAuMDA2ODEsIDAuMDA2ODE1LCAwLjAwNjgxOSwgMC4wMDY4MjEsIDAuMDA2ODIzIiwgXAotICAgICAgICAgICIwLjAwNjY2NCwgMC4wMDY3ODYsIDAuMDA2ODA0LCAwLjAwNjgwOCwgMC4wMDY4MTMsIDAuMDA2ODE1LCAwLjAwNjgxNyIsIFwKLSAgICAgICAgICAiMC4wMDY2NjIsIDAuMDA2NzgzLCAwLjAwNjgsIDAuMDA2ODA1LCAwLjAwNjgwOSwgMC4wMDY4MTEsIDAuMDA2ODEzIiwgXAotICAgICAgICAgICIwLjAwNjY1OCwgMC4wMDY3OCwgMC4wMDY3OTcsIDAuMDA2ODAyLCAwLjAwNjgwNiwgMC4wMDY4MDgsIDAuMDA2ODEiLCBcCi0gICAgICAgICAgIjAuMDA2NjU0LCAwLjAwNjc3NCwgMC4wMDY3OTEsIDAuMDA2Nzk3LCAwLjAwNjgwMSwgMC4wMDY4MDIsIDAuMDA2ODA1IiwgXAotICAgICAgICAgICIwLjAwNjY1LCAwLjAwNjc3MiwgMC4wMDY3ODksIDAuMDA2Nzk1LCAwLjAwNjc5OCwgMC4wMDY4LCAwLjAwNjgwMiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNzY4MiwgMC4wMDc4MDIsIDAuMDA3ODIxLCAwLjAwNzgyNiwgMC4wMDc4MywgMC4wMDc4MzMsIDAuMDA3ODM0IiwgXAotICAgICAgICAgICIwLjAwNzY3NywgMC4wMDc3OTcsIDAuMDA3ODE1LCAwLjAwNzgyLCAwLjAwNzgyNSwgMC4wMDc4MjcsIDAuMDA3ODMiLCBcCi0gICAgICAgICAgIjAuMDA3NjczLCAwLjAwNzc5MywgMC4wMDc4MTEsIDAuMDA3ODE3LCAwLjAwNzgyMywgMC4wMDc4MjQsIDAuMDA3ODI2IiwgXAotICAgICAgICAgICIwLjAwNzY3LCAwLjAwNzc5LCAwLjAwNzgwOCwgMC4wMDc4MTQsIDAuMDA3ODE4LCAwLjAwNzgyMSwgMC4wMDc4MjMiLCBcCi0gICAgICAgICAgIjAuMDA3NjY3LCAwLjAwNzc4NywgMC4wMDc4MDUsIDAuMDA3ODEyLCAwLjAwNzgxNiwgMC4wMDc4MTgsIDAuMDA3ODIiLCBcCi0gICAgICAgICAgIjAuMDA3NjY2LCAwLjAwNzc4NSwgMC4wMDc4MDMsIDAuMDA3ODA5LCAwLjAwNzgxNCwgMC4wMDc4MTYsIDAuMDA3ODE4IiwgXAotICAgICAgICAgICIwLjAwNzY2NCwgMC4wMDc3ODMsIDAuMDA3ODAyLCAwLjAwNzgwNywgMC4wMDc4MTIsIDAuMDA3ODE0LCAwLjAwNzgxNiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihzY2FsYXIpIHsKLSAgICAgICAgdmFsdWVzKCIwIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiU04iOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2NTYxLCAwLjAwNjY4MSwgMC4wMDY3LCAwLjAwNjcwNSwgMC4wMDY3MSwgMC4wMDY3MTQsIDAuMDA2NzE1IiwgXAotICAgICAgICAgICIwLjAwNjU1NSwgMC4wMDY2NzUsIDAuMDA2Njk0LCAwLjAwNjcsIDAuMDA2NzA0LCAwLjAwNjcwNywgMC4wMDY3MDgiLCBcCi0gICAgICAgICAgIjAuMDA2NTUxLCAwLjAwNjY3LCAwLjAwNjY4OSwgMC4wMDY2OTYsIDAuMDA2Njk5LCAwLjAwNjcwMiwgMC4wMDY3MDQiLCBcCi0gICAgICAgICAgIjAuMDA2NTQ4LCAwLjAwNjY2NywgMC4wMDY2ODcsIDAuMDA2NjkxLCAwLjAwNjY5NiwgMC4wMDY2OTgsIDAuMDA2NyIsIFwKLSAgICAgICAgICAiMC4wMDY1NDUsIDAuMDA2NjY1LCAwLjAwNjY4NCwgMC4wMDY2OSwgMC4wMDY2OTQsIDAuMDA2Njk2LCAwLjAwNjY5OCIsIFwKLSAgICAgICAgICAiMC4wMDY1NDEsIDAuMDA2NjYxLCAwLjAwNjY4MiwgMC4wMDY2ODYsIDAuMDA2NjkzLCAwLjAwNjY5MywgMC4wMDY2OTUiLCBcCi0gICAgICAgICAgIjAuMDA2NTM5LCAwLjAwNjY1OSwgMC4wMDY2NzgsIDAuMDA2Njg0LCAwLjAwNjY4OSwgMC4wMDY2OTEsIDAuMDA2NjkzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDczNzIsIDAuMDA3NDg3LCAwLjAwNzUwMSwgMC4wMDc1MDQsIDAuMDA3NTA4LCAwLjAwNzUwOSwgMC4wMDc1MSIsIFwKLSAgICAgICAgICAiMC4wMDczNjYsIDAuMDA3NDgxLCAwLjAwNzQ5NSwgMC4wMDc0OTksIDAuMDA3NTAyLCAwLjAwNzUwMywgMC4wMDc1MDYiLCBcCi0gICAgICAgICAgIjAuMDA3MzYxLCAwLjAwNzQ3NywgMC4wMDc0OTEsIDAuMDA3NDk1LCAwLjAwNzQ5OCwgMC4wMDc1LCAwLjAwNzUwMSIsIFwKLSAgICAgICAgICAiMC4wMDczNTgsIDAuMDA3NDc1LCAwLjAwNzQ4OSwgMC4wMDc0OTIsIDAuMDA3NDk1LCAwLjAwNzUwMiwgMC4wMDc0OTYiLCBcCi0gICAgICAgICAgIjAuMDA3MzU3LCAwLjAwNzQ3MiwgMC4wMDc0ODYsIDAuMDA3NDksIDAuMDA3NDkzLCAwLjAwNzQ5NSwgMC4wMDc0OTYiLCBcCi0gICAgICAgICAgIjAuMDA3MzU1LCAwLjAwNzQ3LCAwLjAwNzQ4NCwgMC4wMDc0ODgsIDAuMDA3NDkxLCAwLjAwNzQ5MywgMC4wMDc0OTQiLCBcCi0gICAgICAgICAgIjAuMDA3MzUyLCAwLjAwNzQ2NywgMC4wMDc0ODEsIDAuMDA3NDg1LCAwLjAwNzQ4OSwgMC4wMDc0OTIsIDAuMDA3NDkxIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihSTikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNTY4MzcxOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDU2ODA1NjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA1NjgzNzE7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNDg4LCAwLjAwMDQ3NCwgMC4wMDA0NjQsIDAuMDAwNDU5LCAwLjAwMDQ1NiwgMC4wMDA0NTMsIDAuMDAwNDUyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyMDA4LCAwLjAwMTk5OSwgMC4wMDE5OTMsIDAuMDAxOTg4LCAwLjAwMTk4NiwgMC4wMDE5ODUsIDAuMDAxOTgzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRCZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjQ4MTcxMSwgMC40OTMxMTYsIDAuNTA4MDA0LCAwLjUyMjg3NywgMC41MzY4NTEsIDAuNTU5NDI2LCAwLjU3Njc4MSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJlY292ZXJ5X3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiRCZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzFfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChyZWNvdmVyeV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNjI1LCAwLjE1MTI1LCAwLjEzODc1LCAwLjEyLCAwLjEwMTI1LCAwLjA3MjUsIDAuMDUxMjUiLCBcCi0gICAgICAgICAgIjAuMTczNzUsIDAuMTYyNSwgMC4xNSwgMC4xMzEyNSwgMC4xMTI1LCAwLjA4Mzc1LCAwLjA2MjUiLCBcCi0gICAgICAgICAgIjAuMTkyNSwgMC4xNzUsIDAuMTYyNSwgMC4xNDM3NSwgMC4xMjUsIDAuMTAyNSwgMC4wODEyNSIsIFwKLSAgICAgICAgICAiMC4yMDUsIDAuMTkzNzUsIDAuMTc1LCAwLjE2MjUsIDAuMTQzNzUsIDAuMTE1LCAwLjA5Mzc1IiwgXAotICAgICAgICAgICIwLjIyMzc1LCAwLjIwNjI1LCAwLjE5Mzc1LCAwLjE3NSwgMC4xNTYyNSwgMC4xMzM3NSwgMC4xMTI1IiwgXAotICAgICAgICAgICIwLjI0NjI1LCAwLjIzNSwgMC4yMTYyNSwgMC4xOTc1LCAwLjE4NSwgMC4xNTYyNSwgMC4xMzUiLCBcCi0gICAgICAgICAgIjAuMjY3NSwgMC4yNSwgMC4yMzc1LCAwLjIxODc1LCAwLjIsIDAuMTc3NSwgMC4xNTYyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJlY292ZXJ5X3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUQiOwotICAgICAgc2RmX2NvbmQgOiAiRCA9PSAxJ2IwIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChyZWNvdmVyeV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMTI1LCAwLjIyMzc1LCAwLjIzNjI1LCAwLjI1NSwgMC4yNjc1LCAwLjI5LCAwLjMwNSIsIFwKLSAgICAgICAgICAiMC4yMDEyNSwgMC4yMTI1LCAwLjIyNSwgMC4yMzc1LCAwLjI1NjI1LCAwLjI3ODc1LCAwLjI5Mzc1IiwgXAotICAgICAgICAgICIwLjE4ODc1LCAwLjIsIDAuMjEyNSwgMC4yMjUsIDAuMjQzNzUsIDAuMjYsIDAuMjgxMjUiLCBcCi0gICAgICAgICAgIjAuMTc2MjUsIDAuMTg3NSwgMC4yLCAwLjIxMjUsIDAuMjMxMjUsIDAuMjUzNzUsIDAuMjY4NzUiLCBcCi0gICAgICAgICAgIjAuMTYzNzUsIDAuMTc1LCAwLjE4NzUsIDAuMjA2MjUsIDAuMjE4NzUsIDAuMjQxMjUsIDAuMjU2MjUiLCBcCi0gICAgICAgICAgIjAuMTQ3NSwgMC4xNTg3NSwgMC4xNzc1LCAwLjE5LCAwLjIwMjUsIDAuMjI1LCAwLjI0NjI1IiwgXAotICAgICAgICAgICIwLjEzODc1LCAwLjE1LCAwLjE2MjUsIDAuMTgxMjUsIDAuMTkzNzUsIDAuMjE2MjUsIDAuMjMxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiByZW1vdmFsX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiRCZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzFfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChyZW1vdmFsX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMzEyNSwgLTAuMDIsIC0wLjAwNzUsIDAuMDExMjUsIDAuMDIzNzUsIDAuMDQ2MjUsIDAuMDY3NSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAuMDEyNSwgMC4wMzUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIi0wLjA2MTI1LCAtMC4wNSwgLTAuMDMxMjUsIC0wLjAxODc1LCAtMC4wMDYyNSwgMC4wMjI1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICItMC4wNzM3NSwgLTAuMDYyNSwgLTAuMDUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgMC4wMDM3NSwgMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjA5MjUsIC0wLjA4MTI1LCAtMC4wNjI1LCAtMC4wNSwgLTAuMDMxMjUsIC0wLjAwODc1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjExNSwgLTAuMTAzNzUsIC0wLjA5MTI1LCAtMC4wNzI1LCAtMC4wNiwgLTAuMDMxMjUsIC0wLjAxNjI1IiwgXAotICAgICAgICAgICItMC4xMzYyNSwgLTAuMTI1LCAtMC4xMDYyNSwgLTAuMDkzNzUsIC0wLjA4MTI1LCAtMC4wNTI1LCAtMC4wMzc1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTTikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNDAwMTk7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNDAwMTk7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNDAwMDE7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzMxLCAwLjAwMDMzLCAwLjAwMDMzLCAwLjAwMDMzLCAwLjAwMDMzLCAwLjAwMDMzLCAwLjAwMDMzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzMxLCAwLjAwMDMzMSwgMC4wMDAzMzEsIDAuMDAwMzMyLCAwLjAwMDMzMiwgMC4wMDAzMzEsIDAuMDAwMzMyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRCYhUk4iOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1JOX0VRXzAgPT0gMSdiMSI7Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4zMDEzODYsIDAuMzEyOTUxLCAwLjMyNzA2NiwgMC4zNDIyMywgMC4zNTY2NjYsIDAuMzc5NTAyLCAwLjM5OTc1MyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJlY292ZXJ5X3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUQmUk4iOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1JOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQocmVjb3ZlcnlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDgxMjUsIDAuMDYzNzUsIDAuMDUxMjUsIDAuMDMyNSwgMC4wMTM3NSwgLTAuMDA4NzUsIC0wLjAzNjI1IiwgXAotICAgICAgICAgICIwLjA5MjUsIDAuMDc1LCAwLjA2MjUsIDAuMDQzNzUsIDAuMDI1LCAwLjAwMjUsIC0wLjAyNSIsIFwKLSAgICAgICAgICAiMC4xMDUsIDAuMDkzNzUsIDAuMDc1LCAwLjA1NjI1LCAwLjA0Mzc1LCAwLjAxNSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMTE3NSwgMC4xMDYyNSwgMC4wOTM3NSwgMC4wNzUsIDAuMDU2MjUsIDAuMDI3NSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiMC4xMzYyNSwgMC4xMTg3NSwgMC4xMDYyNSwgMC4wODc1LCAwLjA2ODc1LCAwLjA0NjI1LCAwLjAxODc1IiwgXAotICAgICAgICAgICIwLjE1ODc1LCAwLjE0MTI1LCAwLjEyODc1LCAwLjExLCAwLjA5MTI1LCAwLjA2ODc1LCAwLjA0MTI1IiwgXAotICAgICAgICAgICIwLjE3Mzc1LCAwLjE2MjUsIDAuMTQzNzUsIDAuMTMxMjUsIDAuMTEyNSwgMC4wODM3NSwgMC4wNjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogcmVtb3ZhbF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEJlJOIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9STl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHJlbW92YWxfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU2MjUsIDAuMDY3NSwgMC4wODYyNSwgMC4wOTg3NSwgMC4xMTc1LCAwLjE0LCAwLjE2MTI1IiwgXAotICAgICAgICAgICIwLjA0NSwgMC4wNjI1LCAwLjA3NSwgMC4wODc1LCAwLjEwNjI1LCAwLjEyODc1LCAwLjE1IiwgXAotICAgICAgICAgICIwLjAzMjUsIDAuMDQzNzUsIDAuMDYyNSwgMC4wNzUsIDAuMDkzNzUsIDAuMTE2MjUsIDAuMTM3NSIsIFwKLSAgICAgICAgICAiMC4wMiwgMC4wMzEyNSwgMC4wNDM3NSwgMC4wNjI1LCAwLjA3NSwgMC4xMDM3NSwgMC4xMjUiLCBcCi0gICAgICAgICAgIjAuMDA3NSwgMC4wMTg3NSwgMC4wMzEyNSwgMC4wNSwgMC4wNjI1LCAwLjA4NSwgMC4xMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDE1LCAtMC4wMDM3NSwgMC4wMDg3NSwgMC4wMjc1LCAwLjA0LCAwLjA2MjUsIDAuMDgzNzUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMjUsIC0wLjAxMjUsIDAuMDA2MjUsIDAuMDE4NzUsIDAuMDQ3NSwgMC4wNjg3NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogREZGU1gxICoKLSAqIC0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoREZGU1gxKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMjczNzc3OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIGZmIChOMzUsUUJJTlQpIHsKLSAgICBuZXh0X3N0YXRlIDogIkQiOwotICAgIGNsb2NrZWRfb24gOiAiQ0siOwotICAgIHByZXNldCA6ICIoIVNOKSI7Ci0gIH0KLSAgcGluKENLKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA1OTI4NTc7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNTkyNTQxOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDU5Mjg1NzsKLSAgICBjbG9jayA6IHRydWU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxOTgzLCAwLjAwMTk2OSwgMC4wMDE5NiwgMC4wMDE5NTMsIDAuMDAxOTQ3LCAwLjAwMTk0MSwgMC4wMDE5MzkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDU5MjgsIDAuMDA1OTIsIDAuMDA1OTEyLCAwLjAwNTkwNiwgMC4wMDU5LCAwLjAwNTg5NSwgMC4wMDU4OTMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFEJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMzc1NzkzLCAwLjM4NzUwNywgMC40MDI1OTEsIDAuNDE4MDg1LCAwLjQzMzQyNCwgMC40NTc4OTksIDAuNDc4Njc4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4yNTQ4NDIsIDAuMjY2NDA2LCAwLjI4MTI0MSwgMC4yOTYxNDIsIDAuMzEwNTY3LCAwLjMzMzQxMiwgMC4zNTI1NDkiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEQpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYwNDg0MzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MDMzMDY7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjA0ODQzOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjM4MiwgMC4wMDIzNzIsIDAuMDAyMzY0LCAwLjAwMjM2LCAwLjAwMjM1NiwgMC4wMDIzNTEsIDAuMDAyMzQ2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyNjU0LCAwLjAwMjY0OCwgMC4wMDI2NDQsIDAuMDAyNjQxLCAwLjAwMjYzOSwgMC4wMDI2MzUsIDAuMDAyNjM0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlNOIjsKLSAgICAgIHNkZl9jb25kIDogIlNOID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjA0Mzc1LCAtMC4wMzI1LCAtMC4wMjYyNSwgLTAuMDEzNzUsIC0wLjAwMTI1LCAwLjAwODc1LCAwLjAyMzc1IiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAxMjUsIC0wLjAwMjUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDY3NSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAxNSwgMCIsIFwKLSAgICAgICAgICAiLTAuMDg2MjUsIC0wLjA3NSwgLTAuMDYyNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wMjc1LCAtMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDk4NzUsIC0wLjA4NzUsIC0wLjA3NSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA0LCAtMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMTIxMjUsIC0wLjExLCAtMC4wOTc1LCAtMC4wODUsIC0wLjA3ODc1LCAtMC4wNjI1LCAtMC4wNDc1IiwgXAotICAgICAgICAgICItMC4xMzYyNSwgLTAuMTI1LCAtMC4xMTI1LCAtMC4xMDYyNSwgLTAuMDkzNzUsIC0wLjA3NzUsIC0wLjA2ODc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNSwgMC4wNjEyNSwgMC4wNzM3NSwgMC4wODYyNSwgMC4xMDUsIDAuMTI3NSwgMC4xNDg3NSIsIFwKLSAgICAgICAgICAiMC4wMzI1LCAwLjA0Mzc1LCAwLjA2MjUsIDAuMDc1LCAwLjA4NzUsIDAuMTE2MjUsIDAuMTMxMjUiLCBcCi0gICAgICAgICAgIjAuMDIsIDAuMDMxMjUsIDAuMDUsIDAuMDYyNSwgMC4wNzUsIDAuMTAzNzUsIDAuMTE4NzUiLCBcCi0gICAgICAgICAgIjAuMDA3NSwgMC4wMTg3NSwgMC4wMzc1LCAwLjA1LCAwLjA2ODc1LCAwLjA5MTI1LCAwLjEwNjI1IiwgXAotICAgICAgICAgICIwLjAwMTI1LCAwLjAxMjUsIDAuMDI1LCAwLjAzNzUsIDAuMDU2MjUsIDAuMDc4NzUsIDAuMSIsIFwKLSAgICAgICAgICAiLTAuMDE1LCAtMC4wMDM3NSwgMC4wMDg3NSwgMC4wMjc1LCAwLjA0LCAwLjA2MjUsIDAuMDgzNzUiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTI1LCAwLCAwLjAxMjUsIDAuMDMxMjUsIDAuMDUzNzUsIDAuMDc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJTTiA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTg3NSwgMC4xMDc1LCAwLjA5NSwgMC4wNzYyNSwgMC4wNjM3NSwgMC4wNDc1LCAwLjAzODc1IiwgXAotICAgICAgICAgICIwLjEzLCAwLjExODc1LCAwLjEwNjI1LCAwLjA4NzUsIDAuMDc1LCAwLjA1ODc1LCAwLjA1IiwgXAotICAgICAgICAgICIwLjE0ODc1LCAwLjEzMTI1LCAwLjExODc1LCAwLjEwNjI1LCAwLjA5Mzc1LCAwLjA3NzUsIDAuMDYyNSIsIFwKLSAgICAgICAgICAiMC4xNjEyNSwgMC4xNSwgMC4xMzEyNSwgMC4xMTg3NSwgMC4xMDYyNSwgMC4wOSwgMC4wNzUiLCBcCi0gICAgICAgICAgIjAuMTczNzUsIDAuMTYyNSwgMC4xNDM3NSwgMC4xMzEyNSwgMC4xMTg3NSwgMC4xMDI1LCAwLjA4NzUiLCBcCi0gICAgICAgICAgIjAuMTk2MjUsIDAuMTg1LCAwLjE2NjI1LCAwLjE1Mzc1LCAwLjE0MTI1LCAwLjEyNSwgMC4xMSIsIFwKLSAgICAgICAgICAiMC4yMTEyNSwgMC4yLCAwLjE4NzUsIDAuMTY4NzUsIDAuMTU2MjUsIDAuMTQsIDAuMTMxMjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMzEyNSwgMC4xMiwgMC4xMDc1LCAwLjA4ODc1LCAwLjA3LCAwLjA0NzUsIDAuMDI2MjUiLCBcCi0gICAgICAgICAgIjAuMTQyNSwgMC4xMzEyNSwgMC4xMTg3NSwgMC4xLCAwLjA4MTI1LCAwLjA1ODc1LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIjAuMTU1LCAwLjE0Mzc1LCAwLjEzMTI1LCAwLjExMjUsIDAuMDkzNzUsIDAuMDcxMjUsIDAuMDUiLCBcCi0gICAgICAgICAgIjAuMTY3NSwgMC4xNTYyNSwgMC4xNDM3NSwgMC4xMjUsIDAuMTA2MjUsIDAuMDgzNzUsIDAuMDYyNSIsIFwKLSAgICAgICAgICAiMC4xOCwgMC4xNjg3NSwgMC4xNTYyNSwgMC4xMzc1LCAwLjExODc1LCAwLjA5NjI1LCAwLjA3NSIsIFwKLSAgICAgICAgICAiMC4yMDI1LCAwLjE5MTI1LCAwLjE3MjUsIDAuMTUzNzUsIDAuMTQxMjUsIDAuMTEyNSwgMC4wOTEyNSIsIFwKLSAgICAgICAgICAiMC4yMTc1LCAwLjIwNjI1LCAwLjE4NzUsIDAuMTc1LCAwLjE1NjI1LCAwLjEyNzUsIDAuMTA2MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFEpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4xMjk3MjsKLSAgICBmdW5jdGlvbiA6ICJOMzUiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5vbl91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcmlzaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI5NTA5OSwgMC4zMzg1MTksIDAuNTg0MTcxLCAwLjgwMDQ4NywgMS4wODc1OCwgMS42NjQ5NSwgMi4wMjYyMSIsIFwKLSAgICAgICAgICAiMC4zMDY2NjksIDAuMzUwMDQ3LCAwLjU5NTA2NiwgMC44MTIxOTgsIDEuMDk5MzMsIDEuNjc3MTQsIDIuMDM3NTEiLCBcCi0gICAgICAgICAgIjAuMzIxOTczLCAwLjM2NTM5OCwgMC42MTA0ODYsIDAuODI3NTQyLCAxLjExNDczLCAxLjY5NDQ5LCAyLjA1Mjc3IiwgXAotICAgICAgICAgICIwLjMzNzQ3NiwgMC4zODA4NTIsIDAuNjI2OTE3LCAwLjg0MjkzNywgMS4xMzAyMywgMS43MDc0NywgMi4wNjg0NSIsIFwKLSAgICAgICAgICAiMC4zNTI3NTksIDAuMzk2MTU0LCAwLjY0MjEzNywgMC44NTgxOTUsIDEuMTQ1NDksIDEuNzIyNzUsIDIuMDgzNzQiLCBcCi0gICAgICAgICAgIjAuMzc2OTk2LCAwLjQyMDQwNiwgMC42NjUzMTgsIDAuODgzMTQ2LCAxLjE2ODg3LCAxLjc0Njk2LCAyLjExMDE2IiwgXAotICAgICAgICAgICIwLjM5NzczNiwgMC40NDExNTYsIDAuNjg2ODQsIDAuOTAzMDg1LCAxLjE5MDExLCAxLjc2NzY2LCAyLjEyODk2Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE2NTAzLCAwLjI1MjcwNiwgMC43NDY4MTMsIDEuMTg2NjMsIDEuNzY4ODcsIDIuOTY2MDYsIDMuNzA0MTgiLCBcCi0gICAgICAgICAgIjAuMTY0OTY2LCAwLjI1MjgwNywgMC43NTI2OTYsIDEuMTk1NTgsIDEuNzY2MzEsIDIuOTY2MzMsIDMuNzA0MjYiLCBcCi0gICAgICAgICAgIjAuMTY1MDEyLCAwLjI1MjcxOCwgMC43NTA3NCwgMS4xOTU4MywgMS43NjU2OCwgMi45NTMzMiwgMy43MDQzMiIsIFwKLSAgICAgICAgICAiMC4xNjUwMTksIDAuMjUzNDU3LCAwLjc1MzAwNCwgMS4xOTUyMSwgMS43NjU1NSwgMi45NjYwOSwgMy43MDQzIiwgXAotICAgICAgICAgICIwLjE2NTAyLCAwLjI1MzY1LCAwLjc1MjQ1NCwgMS4xODg5OCwgMS43NjUzNiwgMi45NjYwOSwgMy43MDQzIiwgXAotICAgICAgICAgICIwLjE2NDg5MiwgMC4yNTI2NzIsIDAuNzUyODYxLCAxLjE5Mjk2LCAxLjc3NDk2LCAyLjk2NjM1LCAzLjY3MDkxIiwgXAotICAgICAgICAgICIwLjE2NDk5MywgMC4yNTI2OTYsIDAuNzQ3MTk4LCAxLjE4NTQ5LCAxLjc2OTc3LCAyLjk2NjE4LCAzLjcwNDM0Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjM1NDcwOCwgMC40MDQzMTIsIDAuNjg0MTk1LCAwLjkzMzM3NiwgMS4yNjQxMSwgMS45MjQ4OSwgMi4zMzc2NyIsIFwKLSAgICAgICAgICAiMC4zNjY0MTYsIDAuNDE1ODg5LCAwLjY5NTg2MywgMC45NDI3MDcsIDEuMjc1ODQsIDEuOTM2MjksIDIuMzQ5NDciLCBcCi0gICAgICAgICAgIjAuMzgxNTI0LCAwLjQzMDk5OCwgMC43MTA5OTYsIDAuOTU3ODE0LCAxLjI5MDkyLCAxLjk1MTYxLCAyLjM2NDUyIiwgXAotICAgICAgICAgICIwLjM5NzAzMywgMC40NDY2NDQsIDAuNzI2NDc4LCAwLjk3MzI5NSwgMS4zMDY0MywgMS45NjY5MSwgMi4zODAwNSIsIFwKLSAgICAgICAgICAiMC40MTIzMSwgMC40NjE5NzcsIDAuNzQxNzU1LCAwLjk4OTMwOSwgMS4zMTc5LCAxLjk4MjM3LCAyLjM5NTU2IiwgXAotICAgICAgICAgICIwLjQzNjc2NSwgMC40ODY0MjQsIDAuNzY2MTc3LCAxLjAxNTQ0LCAxLjM0MjMxLCAyLjAwNjc4LCAyLjQxOTk5IiwgXAotICAgICAgICAgICIwLjQ1NzU1OSwgMC41MDcxOTYsIDAuNzg2OTc2LCAxLjAzNjI3LCAxLjM2MzEzLCAyLjAyNzYxLCAyLjQ0MDg0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE4MjgwNCwgMC4yNzgwMDcsIDAuODMzMTE4LCAxLjMyMTc1LCAxLjk3NjY0LCAzLjI4MjQ4LCA0LjA5OTQzIiwgXAotICAgICAgICAgICIwLjE4Mjc2OSwgMC4yNzgyNDMsIDAuODMxNzgzLCAxLjMyMjQzLCAxLjk3NjUyLCAzLjI4NzY0LCA0LjEwNDk2IiwgXAotICAgICAgICAgICIwLjE4MjgyNiwgMC4yNzgyNjEsIDAuODMzMjYsIDEuMzIzMDIsIDEuOTc2NTksIDMuMjg3MywgNC4xMDUwOCIsIFwKLSAgICAgICAgICAiMC4xODI4NjksIDAuMjc4MDM5LCAwLjgzMTcyLCAxLjMyMTU2LCAxLjk3NjU2LCAzLjI4NzY0LCA0LjEwNTAyIiwgXAotICAgICAgICAgICIwLjE4MjgzMSwgMC4yNzg3NzMsIDAuODMxNDM1LCAxLjMyMjgyLCAxLjk3NTYzLCAzLjI4NjkyLCA0LjEwNDc0IiwgXAotICAgICAgICAgICIwLjE4Mjc5LCAwLjI3Nzk5NiwgMC44MzE5MDYsIDEuMzIzMywgMS45NzMyMSwgMy4yODY5NCwgNC4xMDQ3NiIsIFwKLSAgICAgICAgICAiMC4xODI4MDIsIDAuMjc4NzQyLCAwLjgzMTg3NCwgMS4zMjMwOCwgMS45NzU5NiwgMy4yODY5NSwgNC4xMDQ2OCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcHJlc2V0OwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yNzYyMjgsIDAuMzE5NjA0LCAwLjU2NTE2OSwgMC43ODIxMTcsIDEuMDY4OTgsIDEuNjQ3MzMsIDIuMDA4MSIsIFwKLSAgICAgICAgICAiMC4yODc2MDgsIDAuMzMwOTg3LCAwLjU3NjkxMywgMC43OTIyMTIsIDEuMDgwOTUsIDEuNjU4NywgMi4wMTk4IiwgXAotICAgICAgICAgICIwLjMwMjE1OCwgMC4zNDU1NzUsIDAuNTkwNjM5LCAwLjgwODA3MiwgMS4wOTYxNiwgMS42NzMyOSwgMi4wMzQxOCIsIFwKLSAgICAgICAgICAiMC4zMTY3MSwgMC4zNjAwOTEsIDAuNjA1MDY2LCAwLjgyMjcyMywgMS4xMTE1LCAxLjY4Nzc0LCAyLjA0Nzc5IiwgXAotICAgICAgICAgICIwLjMzMTI3NSwgMC4zNzQ2NjUsIDAuNjIwMzM2LCAwLjgzNjgyMiwgMS4xMjQxOSwgMS43MDIwNiwgMi4wNjIwMyIsIFwKLSAgICAgICAgICAiMC4zNTQ2NzUsIDAuMzk4MDk1LCAwLjY0MzA1MywgMC44NjA3NTIsIDEuMTQ5NCwgMS43MjU2MiwgMi4wODE1MyIsIFwKLSAgICAgICAgICAiMC4zNzQ2NTMsIDAuNDE4MDY0LCAwLjY2MzcwMywgMC44ODA1MDUsIDEuMTY3MTUsIDEuNzQ1MzQsIDIuMTA1NTEiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTY3MjYsIDAuMjUyMjM4LCAwLjc1MzA3NywgMS4xODU2MSwgMS43ODk1OSwgMi45NjU2NSwgMy43MDM3NSIsIFwKLSAgICAgICAgICAiMC4xNjczMjgsIDAuMjUyMjQyLCAwLjc1MzI4MSwgMS4xOTUxNiwgMS43ODk2LCAyLjk3MTU2LCAzLjcwMzc2IiwgXAotICAgICAgICAgICIwLjE2NDY0OCwgMC4yNTM0MTMsIDAuNzUzMjI4LCAxLjE4NTI4LCAxLjc4OTU5LCAyLjk2NTYsIDMuNzA5MzgiLCBcCi0gICAgICAgICAgIjAuMTY3MTM0LCAwLjI1MjY4MywgMC43NTMyOTksIDEuMTk1MjksIDEuNzg5NjgsIDIuOTY1NTksIDMuNzA5NzkiLCBcCi0gICAgICAgICAgIjAuMTY0NjY0LCAwLjI1MzAxMywgMC43NTE3NTksIDEuMTk0ODUsIDEuNzg5NjgsIDIuOTY1NjcsIDMuNzAzODYiLCBcCi0gICAgICAgICAgIjAuMTY3MTMsIDAuMjUzMDY4LCAwLjc1MjQ2NywgMS4xODUzLCAxLjc4OTY0LCAyLjk2NjY0LCAzLjcwMzg5IiwgXAotICAgICAgICAgICIwLjE2NDY0OCwgMC4yNTMzOTksIDAuNzUxNjU0LCAxLjE4NDU4LCAxLjc4OTY2LCAyLjk2NTcxLCAzLjcwMzkyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzQ1NywgMC4wMDM0NjEsIDAuMDAzNDY3LCAwLjAwMzQ2OCwgMC4wMDM0NjgsIDAuMDAzNDY4LCAwLjAwMzQ2OSIsIFwKLSAgICAgICAgICAiMC4wMDM0NTEsIDAuMDAzNDU1LCAwLjAwMzQ2LCAwLjAwMzQ2MSwgMC4wMDM0NjEsIDAuMDAzNDYyLCAwLjAwMzQ2MiIsIFwKLSAgICAgICAgICAiMC4wMDM0NDUsIDAuMDAzNDQ5LCAwLjAwMzQ1NCwgMC4wMDM0NTUsIDAuMDAzNDU2LCAwLjAwMzQ1NiwgMC4wMDM0NTYiLCBcCi0gICAgICAgICAgIjAuMDAzNDQsIDAuMDAzNDQ0LCAwLjAwMzQ1LCAwLjAwMzQ1MSwgMC4wMDM0NTEsIDAuMDAzNDUxLCAwLjAwMzQ1MSIsIFwKLSAgICAgICAgICAiMC4wMDM0MzcsIDAuMDAzNDQxLCAwLjAwMzQ0NiwgMC4wMDM0NDcsIDAuMDAzNDQ4LCAwLjAwMzQ0OCwgMC4wMDM0NDgiLCBcCi0gICAgICAgICAgIjAuMDAzNDMyLCAwLjAwMzQzNiwgMC4wMDM0NDEsIDAuMDAzNDQyLCAwLjAwMzQ0MywgMC4wMDM0NDMsIDAuMDAzNDQzIiwgXAotICAgICAgICAgICIwLjAwMzQzLCAwLjAwMzQzNCwgMC4wMDM0MzksIDAuMDAzNDQsIDAuMDAzNDQsIDAuMDAzNDQxLCAwLjAwMzQ0MSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzAxNywgMC4wMDMwMjIsIDAuMDAzMDI4LCAwLjAwMzAzLCAwLjAwMzAzLCAwLjAwMzAzMSwgMC4wMDMwMzEiLCBcCi0gICAgICAgICAgIjAuMDAzMDExLCAwLjAwMzAxNSwgMC4wMDMwMjIsIDAuMDAzMDIzLCAwLjAwMzAyNCwgMC4wMDMwMjQsIDAuMDAzMDI0IiwgXAotICAgICAgICAgICIwLjAwMzAwMiwgMC4wMDMwMDcsIDAuMDAzMDE0LCAwLjAwMzAxNSwgMC4wMDMwMTYsIDAuMDAzMDE3LCAwLjAwMzAxNyIsIFwKLSAgICAgICAgICAiMC4wMDMsIDAuMDAzMDA1LCAwLjAwMzAxMiwgMC4wMDMwMTMsIDAuMDAzMDEzLCAwLjAwMzAxNiwgMC4wMDMwMTQiLCBcCi0gICAgICAgICAgIjAuMDAyOTk4LCAwLjAwMzAwMiwgMC4wMDMwMDksIDAuMDAzMDEsIDAuMDAzMDExLCAwLjAwMzAxMiwgMC4wMDMwMTIiLCBcCi0gICAgICAgICAgIjAuMDAyOTk4LCAwLjAwMzAwMywgMC4wMDMwMDksIDAuMDAzMDEsIDAuMDAzMDExLCAwLjAwMzAxMiwgMC4wMDMwMTIiLCBcCi0gICAgICAgICAgIjAuMDAyOTk5LCAwLjAwMzAwNCwgMC4wMDMwMTEsIDAuMDAzMDEyLCAwLjAwMzAxMiwgMC4wMDMwMTMsIDAuMDAzMDEzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiU04iOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzkyMiwgMC4wMDM5MjYsIDAuMDAzOTMxLCAwLjAwMzkzMiwgMC4wMDM5MzMsIDAuMDAzOTMzLCAwLjAwMzkzMyIsIFwKLSAgICAgICAgICAiMC4wMDM5MTYsIDAuMDAzOTIsIDAuMDAzOTI1LCAwLjAwMzkyNiwgMC4wMDM5MjYsIDAuMDAzOTI3LCAwLjAwMzkyNiIsIFwKLSAgICAgICAgICAiMC4wMDM5MTIsIDAuMDAzOTE2LCAwLjAwMzkyMSwgMC4wMDM5MjIsIDAuMDAzOTIyLCAwLjAwMzkyMiwgMC4wMDM5MjMiLCBcCi0gICAgICAgICAgIjAuMDAzOTA5LCAwLjAwMzkxMywgMC4wMDM5MTksIDAuMDAzOTE5LCAwLjAwMzkyLCAwLjAwMzkyLCAwLjAwMzkyIiwgXAotICAgICAgICAgICIwLjAwMzkwNywgMC4wMDM5MTEsIDAuMDAzOTE2LCAwLjAwMzkxNywgMC4wMDM5MTgsIDAuMDAzOTE4LCAwLjAwMzkxOSIsIFwKLSAgICAgICAgICAiMC4wMDM5MDUsIDAuMDAzOTA5LCAwLjAwMzkxNCwgMC4wMDM5MTUsIDAuMDAzOTE2LCAwLjAwMzkxNywgMC4wMDM5MTciLCBcCi0gICAgICAgICAgIjAuMDAzOTAzLCAwLjAwMzkwNywgMC4wMDM5MTIsIDAuMDAzOTEzLCAwLjAwMzkxNCwgMC4wMDM5MTQsIDAuMDAzOTE0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHNjYWxhcikgewotICAgICAgICB2YWx1ZXMoIjAiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFFOKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMTMyMzE4OwotICAgIGZ1bmN0aW9uIDogIlFCSU5UIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBub25fdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJpc2luZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zNzU3OTMsIDAuNDE4ODU4LCAwLjY2MzI3MywgMC44NzkwNzMsIDEuMTY2NzYsIDEuNzQyMDIsIDIuMTAxNyIsIFwKLSAgICAgICAgICAiMC4zODc1MDcsIDAuNDMwNTU4LCAwLjY3NDk5MSwgMC44OTA3ODcsIDEuMTc4NDYsIDEuNzUzOCwgMi4xMTMzOSIsIFwKLSAgICAgICAgICAiMC40MDI1OTEsIDAuNDQ1NjQzLCAwLjY5MDA3MiwgMC45MDU4NzksIDEuMTkzNTYsIDEuNzY4ODIsIDIuMTI4NDgiLCBcCi0gICAgICAgICAgIjAuNDE4MDg1LCAwLjQ2MTE0OSwgMC43MDU1NjYsIDAuOTIxMzY4LCAxLjIwOTA1LCAxLjc4NDM2LCAyLjE0Mzk3IiwgXAotICAgICAgICAgICIwLjQzMzQyNCwgMC40NzY0OTksIDAuNzIwOTIxLCAwLjkzNjYyNiwgMS4yMjQzNiwgMS43OTk3MywgMi4xNTkyNyIsIFwKLSAgICAgICAgICAiMC40NTc4OTksIDAuNTAwOTY2LCAwLjc0NTM5NywgMC45NjExMDcsIDEuMjQ4ODksIDEuODI0MjMsIDIuMTgzNzUiLCBcCi0gICAgICAgICAgIjAuNDc4Njc4LCAwLjUyMTc0OSwgMC43NjYxNzgsIDAuOTgxOTQxLCAxLjI2OTY4LCAxLjg0NDk4LCAyLjIwNDUxIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE1OTY2NiwgMC4yNDYxMjUsIDAuNzQyNDg2LCAxLjE4NDEzLCAxLjc3MDExLCAyLjk0MTE2LCAzLjY3NDA3IiwgXAotICAgICAgICAgICIwLjE1OTY3MSwgMC4yNDYxOTIsIDAuNzQyNjY4LCAxLjE4MDc1LCAxLjc3MDA2LCAyLjk0MTQ4LCAzLjY3Mzg5IiwgXAotICAgICAgICAgICIwLjE1OTY3LCAwLjI0NjE5MiwgMC43NDI1NzYsIDEuMTgxMDMsIDEuNzcwMTIsIDIuOTQxMDksIDMuNjczOTkiLCBcCi0gICAgICAgICAgIjAuMTU5Njc2LCAwLjI0NjE0OCwgMC43NDI2MzgsIDEuMTgxMTcsIDEuNzcwMDksIDIuOTQxNDIsIDMuNjczOTIiLCBcCi0gICAgICAgICAgIjAuMTU5MzcxLCAwLjI0Njg5MSwgMC43NDI4MzksIDEuMTgxNzIsIDEuNzY2OTIsIDIuOTQxNTksIDMuNjczNjEiLCBcCi0gICAgICAgICAgIjAuMTU5MzcxLCAwLjI0NjEzNiwgMC43NDI4NzUsIDEuMTgzOCwgMS43NjUxLCAyLjk0MTc1LCAzLjY3MzY1IiwgXAotICAgICAgICAgICIwLjE1OTM3MywgMC4yNDY4NiwgMC43NDI4OCwgMS4xODQwNiwgMS43NjUwOCwgMi45NDE2MiwgMy42NzM1NyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMzQ2OTksIDAuMzg0MDM0LCAwLjY2Mzc4LCAwLjkxMDYzNSwgMS4yMzk3LCAxLjg5NzkyLCAyLjMwOTM5IiwgXAotICAgICAgICAgICIwLjM0NjI5OSwgMC4zOTU2MSwgMC42NzUzNTQsIDAuOTIyMjI4LCAxLjI1MTI5LCAxLjkwOTU4LCAyLjMyMDk2IiwgXAotICAgICAgICAgICIwLjM2MTU4NiwgMC40MTA5MDEsIDAuNjkwNjMyLCAwLjkzNzUxOSwgMS4yNjY1OCwgMS45MjUwNSwgMi4zMzYyNSIsIFwKLSAgICAgICAgICAiMC4zNzcwNzgsIDAuNDI2Mzk5LCAwLjcwNjE4NiwgMC45NTMwMTQsIDEuMjgyMDgsIDEuOTQwMzEsIDIuMzUxNzYiLCBcCi0gICAgICAgICAgIjAuMzkyMzYzLCAwLjQ0MTY4MSwgMC43MjE0NjQsIDAuOTY4Mjk1LCAxLjI5NzM2LCAxLjk1NTU5LCAyLjM2NzA0IiwgXAotICAgICAgICAgICIwLjQxNjU2NCwgMC40NjU5LCAwLjc0NTYyOSwgMC45OTI1ODMsIDEuMzIxNTcsIDEuOTc5ODEsIDIuMzkxNDYiLCBcCi0gICAgICAgICAgIjAuNDM3MzQ2LCAwLjQ4NjY4MiwgMC43NjY0NDYsIDEuMDEzMjgsIDEuMzQyMzQsIDIuMDAwNTcsIDIuNDEyMDQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTc3MjYsIDAuMjc0NzUyLCAwLjgyOTcyMywgMS4zMTk0OCwgMS45NzI5NiwgMy4yODExOCwgNC4wOTg0IiwgXAotICAgICAgICAgICIwLjE3NzI2MSwgMC4yNzQ3NDQsIDAuODI5ODk5LCAxLjMxOTAzLCAxLjk3Mjg4LCAzLjI4MTA3LCA0LjA5ODA3IiwgXAotICAgICAgICAgICIwLjE3NzI2MywgMC4yNzQ3NDIsIDAuODMwMTIyLCAxLjMxOTEzLCAxLjk3Mjg2LCAzLjI3ODY1LCA0LjA5ODI2IiwgXAotICAgICAgICAgICIwLjE3NzI1NiwgMC4yNzQ3MTksIDAuODI5NDEyLCAxLjMxODkxLCAxLjk3Mjg2LCAzLjI4MTAyLCA0LjA5ODA5IiwgXAotICAgICAgICAgICIwLjE3NzI1OCwgMC4yNzQ3NDUsIDAuODI5Mjk3LCAxLjMxOTMzLCAxLjk3Mjg2LCAzLjI4MTAyLCA0LjA5ODA5IiwgXAotICAgICAgICAgICIwLjE3NzI0OSwgMC4yNzQ3NTEsIDAuODI5ODk4LCAxLjMxOTQyLCAxLjk3MzA3LCAzLjI4MTE1LCA0LjA5NDA2IiwgXAotICAgICAgICAgICIwLjE3NzI2LCAwLjI3NDc1MSwgMC44Mjk0MTUsIDEuMzE5NTMsIDEuOTcyOTUsIDMuMjgwOTksIDQuMDk4MzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiU04iOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGNsZWFyOwotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMTYxNDcsIDAuMzY1NDc1LCAwLjY0NTIxNywgMC44OTIxMDEsIDEuMjIxMSwgMS44Nzk0MiwgMi4yOTA0NiIsIFwKLSAgICAgICAgICAiMC4zMjc1MjYsIDAuMzc2ODQ5LCAwLjY1NjYxOCwgMC45MDMyMTUsIDEuMjMyNTIsIDEuODkwNzgsIDIuMzAxNzQiLCBcCi0gICAgICAgICAgIjAuMzQyMDYxLCAwLjM5MTM5NSwgMC42NzExMDcsIDAuOTE4MDIzLCAxLjI0NzA5LCAxLjkwNTM0LCAyLjMxNjYzIiwgXAotICAgICAgICAgICIwLjM1NjYwMywgMC40MDU5MTksIDAuNjg1NjMzLCAwLjkzMjU2NiwgMS4yNjE3MSwgMS45MTk4NywgMi4zMzA5MyIsIFwKLSAgICAgICAgICAiMC4zNzEwNjcsIDAuNDIwNDExLCAwLjcwMDEzMiwgMC45NDY5ODUsIDEuMjc2MDUsIDEuOTM0MzMsIDIuMzQ1NjkiLCBcCi0gICAgICAgICAgIjAuMzk0NTkyLCAwLjQ0MzkyMiwgMC43MjM2MjEsIDAuOTcwNTU4LCAxLjI5OTY5LCAxLjk1Nzg0LCAyLjM2ODciLCBcCi0gICAgICAgICAgIjAuNDE0NTYxLCAwLjQ2Mzg5NywgMC43NDM2NCwgMC45OTA1MTQsIDEuMzE5NSwgMS45Nzc4MSwgMi4zODkxOSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNzc0NjIsIDAuMjc0NzM5LCAwLjgzMDE5LCAxLjMxOTY3LCAxLjk3Mzg3LCAzLjI4MTc5LCA0LjA5OTA0IiwgXAotICAgICAgICAgICIwLjE3NzQ3NSwgMC4yNzQ3MzksIDAuODMwMTkxLCAxLjMxOTY3LCAxLjk3Mzg3LCAzLjI4MTc5LCA0LjA5OTA0IiwgXAotICAgICAgICAgICIwLjE3NzI1MiwgMC4yNzQ3OTksIDAuODMwMDc3LCAxLjMxOTYzLCAxLjk3Mzg3LCAzLjI4MTc5LCA0LjA5OTA0IiwgXAotICAgICAgICAgICIwLjE3NzI4NCwgMC4yNzQ3NTcsIDAuODMwMDkyLCAxLjMxOTU4LCAxLjk3Mzg3LCAzLjI4MTc5LCA0LjA5OTA0IiwgXAotICAgICAgICAgICIwLjE3NzI1NCwgMC4yNzQ3OTMsIDAuODI5OTAxLCAxLjMxOTYyLCAxLjk3Mzg1LCAzLjI4MTc1LCA0LjA5OSIsIFwKLSAgICAgICAgICAiMC4xNzcyOTYsIDAuMjc0OCwgMC44MzAwODgsIDEuMzE5NjEsIDEuOTczODUsIDMuMjgxNzUsIDQuMDk4OTkiLCBcCi0gICAgICAgICAgIjAuMTc3MjUxLCAwLjI3NDgwMywgMC44MzAxNDUsIDEuMzE5NTksIDEuOTczODUsIDMuMjgxNzUsIDQuMDk5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzAxNywgMC4wMDMwMjIsIDAuMDAzMDI4LCAwLjAwMzAzLCAwLjAwMzAzLCAwLjAwMzAzMSwgMC4wMDMwMzEiLCBcCi0gICAgICAgICAgIjAuMDAzMDExLCAwLjAwMzAxNSwgMC4wMDMwMjIsIDAuMDAzMDIzLCAwLjAwMzAyNCwgMC4wMDMwMjQsIDAuMDAzMDI0IiwgXAotICAgICAgICAgICIwLjAwMzAwMiwgMC4wMDMwMDcsIDAuMDAzMDE0LCAwLjAwMzAxNSwgMC4wMDMwMTYsIDAuMDAzMDE3LCAwLjAwMzAxNyIsIFwKLSAgICAgICAgICAiMC4wMDMsIDAuMDAzMDA1LCAwLjAwMzAxMiwgMC4wMDMwMTMsIDAuMDAzMDEzLCAwLjAwMzAxNiwgMC4wMDMwMTQiLCBcCi0gICAgICAgICAgIjAuMDAyOTk4LCAwLjAwMzAwMiwgMC4wMDMwMDksIDAuMDAzMDEsIDAuMDAzMDExLCAwLjAwMzAxMiwgMC4wMDMwMTIiLCBcCi0gICAgICAgICAgIjAuMDAyOTk4LCAwLjAwMzAwMywgMC4wMDMwMDksIDAuMDAzMDEsIDAuMDAzMDExLCAwLjAwMzAxMiwgMC4wMDMwMTIiLCBcCi0gICAgICAgICAgIjAuMDAyOTk5LCAwLjAwMzAwNCwgMC4wMDMwMTEsIDAuMDAzMDEyLCAwLjAwMzAxMiwgMC4wMDMwMTMsIDAuMDAzMDEzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzNDU3LCAwLjAwMzQ2MSwgMC4wMDM0NjcsIDAuMDAzNDY4LCAwLjAwMzQ2OCwgMC4wMDM0NjgsIDAuMDAzNDY5IiwgXAotICAgICAgICAgICIwLjAwMzQ1MSwgMC4wMDM0NTUsIDAuMDAzNDYsIDAuMDAzNDYxLCAwLjAwMzQ2MSwgMC4wMDM0NjIsIDAuMDAzNDYyIiwgXAotICAgICAgICAgICIwLjAwMzQ0NSwgMC4wMDM0NDksIDAuMDAzNDU0LCAwLjAwMzQ1NSwgMC4wMDM0NTYsIDAuMDAzNDU2LCAwLjAwMzQ1NiIsIFwKLSAgICAgICAgICAiMC4wMDM0NCwgMC4wMDM0NDQsIDAuMDAzNDUsIDAuMDAzNDUxLCAwLjAwMzQ1MSwgMC4wMDM0NTEsIDAuMDAzNDUxIiwgXAotICAgICAgICAgICIwLjAwMzQzNywgMC4wMDM0NDEsIDAuMDAzNDQ2LCAwLjAwMzQ0NywgMC4wMDM0NDgsIDAuMDAzNDQ4LCAwLjAwMzQ0OCIsIFwKLSAgICAgICAgICAiMC4wMDM0MzIsIDAuMDAzNDM2LCAwLjAwMzQ0MSwgMC4wMDM0NDIsIDAuMDAzNDQzLCAwLjAwMzQ0MywgMC4wMDM0NDMiLCBcCi0gICAgICAgICAgIjAuMDAzNDMsIDAuMDAzNDM0LCAwLjAwMzQzOSwgMC4wMDM0NCwgMC4wMDM0NCwgMC4wMDM0NDEsIDAuMDAzNDQxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiU04iOwotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzkyMiwgMC4wMDM5MjYsIDAuMDAzOTMxLCAwLjAwMzkzMiwgMC4wMDM5MzMsIDAuMDAzOTMzLCAwLjAwMzkzMyIsIFwKLSAgICAgICAgICAiMC4wMDM5MTYsIDAuMDAzOTIsIDAuMDAzOTI1LCAwLjAwMzkyNiwgMC4wMDM5MjYsIDAuMDAzOTI3LCAwLjAwMzkyNiIsIFwKLSAgICAgICAgICAiMC4wMDM5MTIsIDAuMDAzOTE2LCAwLjAwMzkyMSwgMC4wMDM5MjIsIDAuMDAzOTIyLCAwLjAwMzkyMiwgMC4wMDM5MjMiLCBcCi0gICAgICAgICAgIjAuMDAzOTA5LCAwLjAwMzkxMywgMC4wMDM5MTksIDAuMDAzOTE5LCAwLjAwMzkyLCAwLjAwMzkyLCAwLjAwMzkyIiwgXAotICAgICAgICAgICIwLjAwMzkwNywgMC4wMDM5MTEsIDAuMDAzOTE2LCAwLjAwMzkxNywgMC4wMDM5MTgsIDAuMDAzOTE4LCAwLjAwMzkxOSIsIFwKLSAgICAgICAgICAiMC4wMDM5MDUsIDAuMDAzOTA5LCAwLjAwMzkxNCwgMC4wMDM5MTUsIDAuMDAzOTE2LCAwLjAwMzkxNywgMC4wMDM5MTciLCBcCi0gICAgICAgICAgIjAuMDAzOTAzLCAwLjAwMzkwNywgMC4wMDM5MTIsIDAuMDAzOTEzLCAwLjAwMzkxNCwgMC4wMDM5MTQsIDAuMDAzOTE0Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3Bvd2VyKHNjYWxhcikgewotICAgICAgICB2YWx1ZXMoIjAiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFNOKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA5NTMzMjk7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwODcwMzI2OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDk1MzMyOTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAzMzEsIDAuMDAwMzMsIDAuMDAwMzMsIDAuMDAwMzMsIDAuMDAwMzMsIDAuMDAwMzMsIDAuMDAwMzMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAzMzIsIDAuMDAwMzMyLCAwLjAwMDMzMiwgMC4wMDAzMzIsIDAuMDAwMzMyLCAwLjAwMDMzMiwgMC4wMDAzMzIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiU04iOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFEIjsKLSAgICAgIHNkZl9jb25kIDogIkQgPT0gMSdiMCI7Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4zMTYxNDcsIDAuMzI3NTI2LCAwLjM0MjA2MSwgMC4zNTY2MDMsIDAuMzcxMDY3LCAwLjM5NDU5MiwgMC40MTQ1NjEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiByZWNvdmVyeV9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEIjsKLSAgICAgIHNkZl9jb25kIDogIkQgPT0gMSdiMCI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQocmVjb3ZlcnlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDUsIDAuMDM4NzUsIDAuMDIsIDAuMDA3NSwgLTAuMDExMjUsIC0wLjA0LCAtMC4wNjEyNSIsIFwKLSAgICAgICAgICAiMC4wNjEyNSwgMC4wNSwgMC4wMzEyNSwgMC4wMTg3NSwgMCwgLTAuMDI4NzUsIC0wLjA1IiwgXAotICAgICAgICAgICIwLjA3Mzc1LCAwLjA2MjUsIDAuMDUsIDAuMDMxMjUsIDAuMDEyNSwgLTAuMDEsIC0wLjAzMTI1IiwgXAotICAgICAgICAgICIwLjA5MjUsIDAuMDc1LCAwLjA2MjUsIDAuMDQzNzUsIDAuMDI1LCAwLjAwMjUsIC0wLjAxODc1IiwgXAotICAgICAgICAgICIwLjEwNSwgMC4wOTM3NSwgMC4wNzUsIDAuMDU2MjUsIDAuMDQzNzUsIDAuMDE1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiMC4xMjc1LCAwLjExLCAwLjA5NzUsIDAuMDc4NzUsIDAuMDYsIDAuMDM3NSwgMC4wMTYyNSIsIFwKLSAgICAgICAgICAiMC4xNDI1LCAwLjEzMTI1LCAwLjExMjUsIDAuMSwgMC4wODEyNSwgMC4wNTg3NSwgMC4wMzEyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJlbW92YWxfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRCI7Ci0gICAgICBzZGZfY29uZCA6ICJEID09IDEnYjAiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHJlbW92YWxfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDYyNSwgMC4wNzM3NSwgMC4wODYyNSwgMC4xMDUsIDAuMTE3NSwgMC4xNDYyNSwgMC4xNjc1IiwgXAotICAgICAgICAgICIwLjA1MTI1LCAwLjA2MjUsIDAuMDc1LCAwLjA5Mzc1LCAwLjEwNjI1LCAwLjEzNSwgMC4xNTYyNSIsIFwKLSAgICAgICAgICAiMC4wMzg3NSwgMC4wNSwgMC4wNjI1LCAwLjA4MTI1LCAwLjA5Mzc1LCAwLjEyMjUsIDAuMTM3NSIsIFwKLSAgICAgICAgICAiMC4wMjYyNSwgMC4wMzc1LCAwLjA1LCAwLjA2ODc1LCAwLjA4MTI1LCAwLjEwMzc1LCAwLjEyNSIsIFwKLSAgICAgICAgICAiMC4wMDc1LCAwLjAyNSwgMC4wMzc1LCAwLjA1LCAwLjA2ODc1LCAwLjA5MTI1LCAwLjExMjUiLCBcCi0gICAgICAgICAgIi0wLjAwODc1LCAwLjAwMjUsIDAuMDE1LCAwLjAzMzc1LCAwLjA0NjI1LCAwLjA2ODc1LCAwLjA5IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDE4NzUsIDAsIDAuMDEyNSwgMC4wMzEyNSwgMC4wNTM3NSwgMC4wNzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBERkZUUlhMICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKERGRlRSWEwpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4yNDExNzc7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgZmYgKE4zMCxRQklOVCkgewotICAgIG5leHRfc3RhdGUgOiAiKEQgUk4pIjsKLSAgICBjbG9ja2VkX29uIDogIkNLIjsKLSAgfQotICBwaW4oQ0spICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDU3NjczNjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA1NzY1MTc7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNTc2NzM2OwotICAgIGNsb2NrIDogdHJ1ZTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDIzOTIsIDAuMDAyMzc5LCAwLjAwMjM2NywgMC4wMDIzNjEsIDAuMDAyMzU1LCAwLjAwMjM0OCwgMC4wMDIzNDciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDQ3MjQsIDAuMDA0NzE0LCAwLjAwNDcwNCwgMC4wMDQ2OTksIDAuMDA0Njk3LCAwLjAwNDcsIDAuMDA0NyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQmIVJOIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9STl9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMzc5MzI4LCAwLjM5MTA2NCwgMC40MDY1MzUsIDAuNDIxOTUyLCAwLjQzNzA2LCAwLjQ2MTM0MiwgMC40ODIwNDQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjE3NjMwMSwgMC4xODc4NjMsIDAuMjAyNzI4LCAwLjIxNzU3LCAwLjIzMjE1LCAwLjI1NDc3NiwgMC4yNzMzNDQiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEQpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDU2MDQ1MzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA1NjAwMjc7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNTYwNDUzOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTk4OCwgMC4wMDE5NzcsIDAuMDAxOTY4LCAwLjAwMTk2NCwgMC4wMDE5NiwgMC4wMDE5NTcsIDAuMDAxOTU2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyOTE0LCAwLjAwMjkwOSwgMC4wMDI5MDIsIDAuMDAyODk3LCAwLjAwMjg5MywgMC4wMDI4ODcsIDAuMDAyODgzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlJOIjsKLSAgICAgIHNkZl9jb25kIDogIlJOID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjEwNjI1LCAtMC4wOTUsIC0wLjA4MjUsIC0wLjA3LCAtMC4wNjM3NSwgLTAuMDQ3NSwgLTAuMDMyNSIsIFwKLSAgICAgICAgICAiLTAuMTExMjUsIC0wLjEwNjI1LCAtMC4wOTM3NSwgLTAuMDgxMjUsIC0wLjA2ODc1LCAtMC4wNTg3NSwgLTAuMDQzNzUiLCBcCi0gICAgICAgICAgIi0wLjEyMzc1LCAtMC4xMTg3NSwgLTAuMTA2MjUsIC0wLjA5Mzc1LCAtMC4wODc1LCAtMC4wNzEyNSwgLTAuMDU2MjUiLCBcCi0gICAgICAgICAgIi0wLjE0MjUsIC0wLjEzMTI1LCAtMC4xMTg3NSwgLTAuMTA2MjUsIC0wLjEsIC0wLjA4Mzc1LCAtMC4wNjg3NSIsIFwKLSAgICAgICAgICAiLTAuMTU1LCAtMC4xNDM3NSwgLTAuMTMxMjUsIC0wLjExODc1LCAtMC4xMTI1LCAtMC4wOTYyNSwgLTAuMDg3NSIsIFwKLSAgICAgICAgICAiLTAuMTc3NSwgLTAuMTY2MjUsIC0wLjE1Mzc1LCAtMC4xNDEyNSwgLTAuMTM1LCAtMC4xMTg3NSwgLTAuMTEiLCBcCi0gICAgICAgICAgIi0wLjE5ODc1LCAtMC4xODc1LCAtMC4xNzUsIC0wLjE2MjUsIC0wLjE1NjI1LCAtMC4xNCwgLTAuMTI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjUsIDAuMDM2MjUsIDAuMDQ4NzUsIDAuMDYxMjUsIDAuMDgsIDAuMTAyNSwgMC4xMjM3NSIsIFwKLSAgICAgICAgICAiMC4wMTM3NSwgMC4wMjUsIDAuMDM3NSwgMC4wNSwgMC4wNjg3NSwgMC4wOTEyNSwgMC4xMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDA1LCAwLjAwNjI1LCAwLjAyNSwgMC4wMzc1LCAwLjA1NjI1LCAwLjA3ODc1LCAwLjA5Mzc1IiwgXAotICAgICAgICAgICItMC4wMTc1LCAtMC4wMDYyNSwgMC4wMTI1LCAwLjAyNSwgMC4wMzc1LCAwLjA2LCAwLjA4MTI1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLjAxMjUsIDAuMDI1LCAwLjA0NzUsIDAuMDY4NzUiLCBcCi0gICAgICAgICAgIi0wLjA0NjI1LCAtMC4wMzUsIC0wLjAyMjUsIC0wLjAxLCAwLjAwODc1LCAwLjAzMTI1LCAwLjA0NjI1IiwgXAotICAgICAgICAgICItMC4wNjEyNSwgLTAuMDUsIC0wLjAzNzUsIC0wLjAyNSwgLTAuMDA2MjUsIDAuMDE2MjUsIDAuMDMxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlJOIjsKLSAgICAgIHNkZl9jb25kIDogIlJOID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE2ODc1LCAwLjE1NzUsIDAuMTQ1LCAwLjEzMjUsIDAuMTIsIDAuMTAzNzUsIDAuMDg4NzUiLCBcCi0gICAgICAgICAgIjAuMTgsIDAuMTY4NzUsIDAuMTUsIDAuMTM3NSwgMC4xMzEyNSwgMC4xMTUsIDAuMSIsIFwKLSAgICAgICAgICAiMC4xOTI1LCAwLjE4MTI1LCAwLjE2ODc1LCAwLjE1LCAwLjE0Mzc1LCAwLjEyNzUsIDAuMTEyNSIsIFwKLSAgICAgICAgICAiMC4yMTEyNSwgMC4xOTM3NSwgMC4xODEyNSwgMC4xNjg3NSwgMC4xNTYyNSwgMC4xNCwgMC4xMjUiLCBcCi0gICAgICAgICAgIjAuMjIzNzUsIDAuMjA2MjUsIDAuMTkzNzUsIDAuMTgxMjUsIDAuMTY4NzUsIDAuMTUyNSwgMC4xMzc1IiwgXAotICAgICAgICAgICIwLjI0NjI1LCAwLjIyODc1LCAwLjIxNjI1LCAwLjIwMzc1LCAwLjE5MTI1LCAwLjE3NSwgMC4xNiIsIFwKLSAgICAgICAgICAiMC4yNjEyNSwgMC4yNSwgMC4yMzc1LCAwLjIyNSwgMC4yMTI1LCAwLjE5NjI1LCAwLjE4MTI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQzNzUsIDAuMDMyNSwgMC4wMiwgMC4wMDEyNSwgLTAuMDExMjUsIC0wLjAzMzc1LCAtMC4wNTUiLCBcCi0gICAgICAgICAgIjAuMDU1LCAwLjA0Mzc1LCAwLjAzMTI1LCAwLjAxMjUsIDAsIC0wLjAyMjUsIC0wLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjA3Mzc1LCAwLjA1NjI1LCAwLjA0Mzc1LCAwLjAyNSwgMC4wMTI1LCAtMC4wMSwgLTAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMDg2MjUsIDAuMDc1LCAwLjA1NjI1LCAwLjA0Mzc1LCAwLjAyNSwgMC4wMDI1LCAtMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4wOTg3NSwgMC4wODc1LCAwLjA3NSwgMC4wNTYyNSwgMC4wNDM3NSwgMC4wMTUsIDAiLCBcCi0gICAgICAgICAgIjAuMTIxMjUsIDAuMTEsIDAuMDk3NSwgMC4wNzg3NSwgMC4wNjYyNSwgMC4wMzc1LCAwLjAxNjI1IiwgXAotICAgICAgICAgICIwLjE0MjUsIDAuMTI1LCAwLjExMjUsIDAuMDkzNzUsIDAuMDgxMjUsIDAuMDU4NzUsIDAuMDM3NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjA3MzE5MzsKLSAgICBmdW5jdGlvbiA6ICJOMzAiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5vbl91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcmlzaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMyODk1MywgMC4zNTQ1ODgsIDAuNTgxODIzLCAwLjk2MTg2LCAxLjM0MTEyLCAyLjIyODY5LCAyLjczNDI1IiwgXAotICAgICAgICAgICIwLjM0MDU5NiwgMC4zNjYyNjIsIDAuNTk0NjIxLCAwLjk3NDMyOCwgMS4zNTIyMiwgMi4yNDA0OCwgMi43NDU3OSIsIFwKLSAgICAgICAgICAiMC4zNTU5ODgsIDAuMzgxNTE1LCAwLjYwOTQ4NSwgMC45ODc4NDMsIDEuMzY3MjgsIDIuMjUzNjUsIDIuNzYyMDgiLCBcCi0gICAgICAgICAgIjAuMzcxMzYyLCAwLjM5NjczMywgMC42MjYsIDEuMDA1NDIsIDEuMzgyNTksIDIuMjcxMjYsIDIuNzc2MiIsIFwKLSAgICAgICAgICAiMC4zODY1MTEsIDAuNDExODMxLCAwLjY0MDM0MywgMS4wMTk1NSwgMS40MDAwMSwgMi4yODY0NCwgMi43ODgzNyIsIFwKLSAgICAgICAgICAiMC40MTA3OSwgMC40MzYzMjMsIDAuNjY0MjIxLCAxLjA0Mjc4LCAxLjQyMTk2LCAyLjMwODY1LCAyLjgxNjc3IiwgXAotICAgICAgICAgICIwLjQzMDk5OCwgMC40NTYzMjcsIDAuNjg0ODIxLCAxLjA2NDA0LCAxLjQ0NDE2LCAyLjMzMTAyLCAyLjgzMjc5Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI3ODA3NywgMC4zMzAwODcsIDAuNzk1OTM0LCAxLjU1Mzg3LCAyLjM1Njk5LCA0LjE3MjM2LCA1LjE4NjEiLCBcCi0gICAgICAgICAgIjAuMjc4MDkzLCAwLjMzMDA5MiwgMC43OTQxNTQsIDEuNTYxNTYsIDIuMzU2OTEsIDQuMTcxNDYsIDUuMTg5MTIiLCBcCi0gICAgICAgICAgIjAuMjc4MDU5LCAwLjMyODkzMSwgMC43ODgyOTgsIDEuNTY1MTMsIDIuMzU2ODksIDQuMTczNjUsIDUuMTk4MTYiLCBcCi0gICAgICAgICAgIjAuMjc4MDgxLCAwLjMyOTc4NywgMC43OTAxNjgsIDEuNTY0ODUsIDIuMzM0NDcsIDQuMTcxMjcsIDUuMTg4MzUiLCBcCi0gICAgICAgICAgIjAuMjc4MDYxLCAwLjMyOTc4MSwgMC43OTQ2NzcsIDEuNTc3MzcsIDIuMzQ1NDgsIDQuMTcxMTMsIDUuMTg3OTMiLCBcCi0gICAgICAgICAgIjAuMjc4MDgzLCAwLjMyODcyNSwgMC43ODk1NzYsIDEuNTYzNzEsIDIuMzU2OTcsIDQuMTU5NzMsIDUuMTkyNDkiLCBcCi0gICAgICAgICAgIjAuMjc4MDc0LCAwLjMyOTc5OCwgMC43OTQ0MzksIDEuNTc3NDUsIDIuMzQ0ODcsIDQuMTcwOTQsIDUuMTg3OTIiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzc5MzI4LCAwLjQwOTE5LCAwLjY3NjcyMiwgMS4xMjIxOSwgMS41NzMxLCAyLjYxNTg0LCAzLjIxMTczIiwgXAotICAgICAgICAgICIwLjM5MTA2NCwgMC40MjEwMzIsIDAuNjg4NTcxLCAxLjEzNDA0LCAxLjU4NDc2LCAyLjYyNzY0LCAzLjIyMzUyIiwgXAotICAgICAgICAgICIwLjQwNjUzNSwgMC40MzY0OSwgMC43MDM5MjksIDEuMTQ5NDIsIDEuNjAwMzIsIDIuNjQzMDYsIDMuMjM4OTYiLCBcCi0gICAgICAgICAgIjAuNDIxOTUyLCAwLjQ1MTgxNSwgMC43MTkzNzEsIDEuMTY0ODEsIDEuNjE1NzMsIDIuNjU4NDcsIDMuMjU0MzUiLCBcCi0gICAgICAgICAgIjAuNDM3MDYsIDAuNDY3MDEyLCAwLjczNDcwOCwgMS4xNzk5LCAxLjYzMDYzLCAyLjY2NTc5LCAzLjI2OTI2IiwgXAotICAgICAgICAgICIwLjQ2MTM0MiwgMC40OTEzMDEsIDAuNzU4NzM4LCAxLjIwNDIzLCAxLjY1NTA0LCAyLjY5Nzg3LCAzLjI5Mzc2IiwgXAotICAgICAgICAgICIwLjQ4MjA0NCwgMC41MTE5OTYsIDAuNzc5NjQ0LCAxLjIyNDgxLCAxLjY3NTU1LCAyLjcxMDkxLCAzLjMxNDI2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMxNDQ2LCAwLjM3MjUxOSwgMC45MDE2NTUsIDEuNzg0MjksIDIuNjcwMzQsIDQuNzI3NTQsIDUuOTE0NDQiLCBcCi0gICAgICAgICAgIjAuMzE0NTQ1LCAwLjM3MjkxNSwgMC45MDE2NjMsIDEuNzg0OCwgMi42Njg5OSwgNC43MjE0NSwgNS45MjAyMSIsIFwKLSAgICAgICAgICAiMC4zMTQ1NDYsIDAuMzcyOTIxLCAwLjkwMjM0NSwgMS43ODYsIDIuNjY5MjUsIDQuNzIwNDcsIDUuOTIwMjYiLCBcCi0gICAgICAgICAgIjAuMzE0NTM0LCAwLjM3MjUwMiwgMC45MDIwOCwgMS43ODYxNSwgMi42NjkxNiwgNC43MjAyMiwgNS45MjAzIiwgXAotICAgICAgICAgICIwLjMxNDU1NywgMC4zNzI5MjUsIDAuOTAwNTU4LCAxLjc4NjQ3LCAyLjY2NzA0LCA0LjcyMTQ1LCA1LjkyMDciLCBcCi0gICAgICAgICAgIjAuMzE0NTM2LCAwLjM3MjkwNywgMC45MDIyNTMsIDEuNzg1NzksIDIuNjY4NTgsIDQuNzIwNTcsIDUuOTIwMjMiLCBcCi0gICAgICAgICAgIjAuMzE0NTU3LCAwLjM3MjkyNSwgMC45MDA5MDQsIDEuNzg2OCwgMi42NjYzMSwgNC43MTk2NCwgNS45MjA2NiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDMwMTMsIDAuMDAzMDEzLCAwLjAwMzAxLCAwLjAwMzAwOCwgMC4wMDMwMDcsIDAuMDAzMDA2LCAwLjAwMzAwNiIsIFwKLSAgICAgICAgICAiMC4wMDMwMDYsIDAuMDAzMDA2LCAwLjAwMzAwMywgMC4wMDMwMDEsIDAuMDAzLCAwLjAwMjk5OSwgMC4wMDI5OTkiLCBcCi0gICAgICAgICAgIjAuMDAzLCAwLjAwMjk5OSwgMC4wMDI5OTYsIDAuMDAyOTk0LCAwLjAwMjk5MywgMC4wMDI5OTMsIDAuMDAyOTkyIiwgXAotICAgICAgICAgICIwLjAwMjk5NSwgMC4wMDI5OTUsIDAuMDAyOTkyLCAwLjAwMjk5LCAwLjAwMjk4OSwgMC4wMDI5ODgsIDAuMDAyOTg4IiwgXAotICAgICAgICAgICIwLjAwMjk5MSwgMC4wMDI5OSwgMC4wMDI5ODcsIDAuMDAyOTg1LCAwLjAwMjk4NCwgMC4wMDI5ODMsIDAuMDAyOTgzIiwgXAotICAgICAgICAgICIwLjAwMjk4NiwgMC4wMDI5ODYsIDAuMDAyOTgzLCAwLjAwMjk4MSwgMC4wMDI5OCwgMC4wMDI5NzksIDAuMDAyOTc5IiwgXAotICAgICAgICAgICIwLjAwMjk4NCwgMC4wMDI5ODQsIDAuMDAyOTgxLCAwLjAwMjk3OCwgMC4wMDI5NzcsIDAuMDAyOTc2LCAwLjAwMjk3NiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzAxNiwgMC4wMDMwMTYsIDAuMDAzMDE5LCAwLjAwMzAxOSwgMC4wMDMwMiwgMC4wMDMwMiwgMC4wMDMwMiIsIFwKLSAgICAgICAgICAiMC4wMDMwMDksIDAuMDAzMDA5LCAwLjAwMzAxMiwgMC4wMDMwMTIsIDAuMDAzMDEzLCAwLjAwMzAxMywgMC4wMDMwMTMiLCBcCi0gICAgICAgICAgIjAuMDAzMDAzLCAwLjAwMzAwNCwgMC4wMDMwMDYsIDAuMDAzMDA3LCAwLjAwMzAwNywgMC4wMDMwMDcsIDAuMDAzMDA3IiwgXAotICAgICAgICAgICIwLjAwMjk5OSwgMC4wMDMsIDAuMDAzMDAyLCAwLjAwMzAwMywgMC4wMDMwMDQsIDAuMDAzMDA0LCAwLjAwMzAwNCIsIFwKLSAgICAgICAgICAiMC4wMDI5OTgsIDAuMDAyOTk4LCAwLjAwMzAwMSwgMC4wMDMwMDEsIDAuMDAzMDAyLCAwLjAwMzAwMiwgMC4wMDMwMDIiLCBcCi0gICAgICAgICAgIjAuMDAyOTk3LCAwLjAwMjk5OCwgMC4wMDMsIDAuMDAzMDAxLCAwLjAwMzAwMSwgMC4wMDMwMDEsIDAuMDAzMDAxIiwgXAotICAgICAgICAgICIwLjAwMywgMC4wMDMsIDAuMDAzMDAyLCAwLjAwMzAwMywgMC4wMDMwMDQsIDAuMDAzMDA0LCAwLjAwMzAwNCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUU4pICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4wNzI2NzY4OwotICAgIGZ1bmN0aW9uIDogIlFCSU5UIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBub25fdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJpc2luZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zNzkxMTcsIDAuNDA0MzQ5LCAwLjYzMTU5MSwgMS4wMTAyMSwgMS4zODg4LCAyLjI3MjUsIDIuNzc3NCIsIFwKLSAgICAgICAgICAiMC4zOTA4NTEsIDAuNDE2MTAxLCAwLjY0MzMyMSwgMS4wMjE5NCwgMS40MDA1NSwgMi4yODQyMiwgMi43ODkxMiIsIFwKLSAgICAgICAgICAiMC40MDYzMjQsIDAuNDMxNTYsIDAuNjU4Nzk5LCAxLjAzNzQxLCAxLjQxNjAxLCAyLjI5OTcxLCAyLjgwNDYxIiwgXAotICAgICAgICAgICIwLjQyMTc0NiwgMC40NDY5NzgsIDAuNjc0MjE5LCAxLjA1Mjg0LCAxLjQzMTQzLCAyLjMxNTEzLCAyLjgyMDAzIiwgXAotICAgICAgICAgICIwLjQzNjg0NywgMC40NjIwNzcsIDAuNjg5MzA0LCAxLjA2NzkzLCAxLjQ0NjUyLCAyLjMzMDA1LCAyLjgzNTIiLCBcCi0gICAgICAgICAgIjAuNDYxMTIsIDAuNDg2MzYxLCAwLjcxMzU5NiwgMS4wOTIyMSwgMS40NzA4MSwgMi4zNTQ1LCAyLjg1OTQiLCBcCi0gICAgICAgICAgIjAuNDgxODMyLCAwLjUwNzA2MSwgMC43MzQyOTYsIDEuMTEyOTIsIDEuNDkxNSwgMi4zNzUwMywgMi44ODAxOCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yNzA0NDgsIDAuMzIxNjM1LCAwLjc4MjI0NywgMS41NTA2NywgMi4zMjI3NSwgNC4xMTg4MywgNS4xMzg0NyIsIFwKLSAgICAgICAgICAiMC4yNzA0NDgsIDAuMzIxNzU0LCAwLjc4MjE4NCwgMS41NTA3MSwgMi4zMjI4MSwgNC4xMTg3OSwgNS4xMzg0NyIsIFwKLSAgICAgICAgICAiMC4yNzA0NSwgMC4zMjE3MTEsIDAuNzgyMjUzLCAxLjU1MDY5LCAyLjMyMjc4LCA0LjExODc5LCA1LjEzODMiLCBcCi0gICAgICAgICAgIjAuMjcwNDQ4LCAwLjMyMTYyNSwgMC43ODIyNDUsIDEuNTUwNjYsIDIuMzIyNzUsIDQuMTE4NzksIDUuMTM4NDYiLCBcCi0gICAgICAgICAgIjAuMjcwNDU2LCAwLjMyMTY4LCAwLjc4MjA2OSwgMS41NTA2NiwgMi4zMjI2NiwgNC4xMTE5NiwgNS4xMzg0IiwgXAotICAgICAgICAgICIwLjI3MDQ0NiwgMC4zMjE3MTQsIDAuNzgyMjQ3LCAxLjU1MDY4LCAyLjMyMjc1LCA0LjExODc4LCA1LjEzODMiLCBcCi0gICAgICAgICAgIjAuMjcwNDU2LCAwLjMyMTY4MiwgMC43ODIxMDQsIDEuNTUwNjIsIDIuMzIyNjMsIDQuMTExODMsIDUuMTM4MjQiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzczNDg2LCAwLjQwMzE2NiwgMC42NzA0NjgsIDEuMTE1ODcsIDEuNTYxMjgsIDIuNjAwNywgMy4xOTQ0NCIsIFwKLSAgICAgICAgICAiMC4zODUxOCwgMC40MTQ4NTYsIDAuNjgyMTksIDEuMTI3NjEsIDEuNTcyOTMsIDIuNjEyMzksIDMuMjA2MTIiLCBcCi0gICAgICAgICAgIjAuNDAwMzQ4LCAwLjQzMDA0NywgMC42OTczNTksIDEuMTQyNzIsIDEuNTg4MTEsIDIuNjI3NDYsIDMuMjIxNCIsIFwKLSAgICAgICAgICAiMC40MTU5MDYsIDAuNDQ1NTgxLCAwLjcxMzAwNiwgMS4xNTg0LCAxLjYwMzY2LCAyLjY0MzEzLCAzLjIzNjk2IiwgXAotICAgICAgICAgICIwLjQzMDk5NywgMC40NjA2NzUsIDAuNzI4MDQsIDEuMTczNDMsIDEuNjE4ODYsIDIuNjU4MjMsIDMuMjUxODMiLCBcCi0gICAgICAgICAgIjAuNDU1MTUzLCAwLjQ4NDg1MiwgMC43NTIxNTksIDEuMTk3NTIsIDEuNjQyOTEsIDIuNjgyMjIsIDMuMjc2MTkiLCBcCi0gICAgICAgICAgIjAuNDc1NDczLCAwLjUwNTE1MSwgMC43NzI1MTQsIDEuMjE3OSwgMS42NjMzLCAyLjcwMjcxLCAzLjI5NjMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzA5MjgxLCAwLjM2ODAwMSwgMC44OTY5NTIsIDEuNzc3ODIsIDIuNjYwMzYsIDQuNzE3NTMsIDUuODkiLCBcCi0gICAgICAgICAgIjAuMzA5Mjg0LCAwLjM2OCwgMC44OTYzNiwgMS43Nzc2MSwgMi42NjAyOSwgNC43MTc0NiwgNS44ODk4MSIsIFwKLSAgICAgICAgICAiMC4zMDkyNjQsIDAuMzY3ODg5LCAwLjg5NjYxNSwgMS43NzgwOSwgMi42NjAyLCA0LjcxNzQ5LCA1Ljg4ODM2IiwgXAotICAgICAgICAgICIwLjMwOTI4MiwgMC4zNjc5ODcsIDAuODk2NDU5LCAxLjc3NzU0LCAyLjY1OTM1LCA0LjcxNzQ1LCA1Ljg5MTQ1IiwgXAotICAgICAgICAgICIwLjMwOTI0NCwgMC4zNjc5NDYsIDAuODk2NjEyLCAxLjc3ODcxLCAyLjY1NzU4LCA0LjcxNzQ1LCA1Ljg5MTIxIiwgXAotICAgICAgICAgICIwLjMwOTI2MywgMC4zNjc4NzQsIDAuODk2NjQ5LCAxLjc3ODA0LCAyLjY2MDE5LCA0LjcxMzMxLCA1Ljg4NyIsIFwKLSAgICAgICAgICAiMC4zMDkyNzcsIDAuMzY3OTg4LCAwLjg5NjYwMSwgMS43Nzg3MywgMi42NTkxMywgNC43MTc0NCwgNS44OTEyMSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDMwMTYsIDAuMDAzMDE2LCAwLjAwMzAxOSwgMC4wMDMwMTksIDAuMDAzMDIsIDAuMDAzMDIsIDAuMDAzMDIiLCBcCi0gICAgICAgICAgIjAuMDAzMDA5LCAwLjAwMzAwOSwgMC4wMDMwMTIsIDAuMDAzMDEyLCAwLjAwMzAxMywgMC4wMDMwMTMsIDAuMDAzMDEzIiwgXAotICAgICAgICAgICIwLjAwMzAwMywgMC4wMDMwMDQsIDAuMDAzMDA2LCAwLjAwMzAwNywgMC4wMDMwMDcsIDAuMDAzMDA3LCAwLjAwMzAwNyIsIFwKLSAgICAgICAgICAiMC4wMDI5OTksIDAuMDAzLCAwLjAwMzAwMiwgMC4wMDMwMDMsIDAuMDAzMDA0LCAwLjAwMzAwNCwgMC4wMDMwMDQiLCBcCi0gICAgICAgICAgIjAuMDAyOTk4LCAwLjAwMjk5OCwgMC4wMDMwMDEsIDAuMDAzMDAxLCAwLjAwMzAwMiwgMC4wMDMwMDIsIDAuMDAzMDAyIiwgXAotICAgICAgICAgICIwLjAwMjk5NywgMC4wMDI5OTgsIDAuMDAzLCAwLjAwMzAwMSwgMC4wMDMwMDEsIDAuMDAzMDAxLCAwLjAwMzAwMSIsIFwKLSAgICAgICAgICAiMC4wMDMsIDAuMDAzLCAwLjAwMzAwMiwgMC4wMDMwMDMsIDAuMDAzMDA0LCAwLjAwMzAwNCwgMC4wMDMwMDQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDMwMTMsIDAuMDAzMDEzLCAwLjAwMzAxLCAwLjAwMzAwOCwgMC4wMDMwMDcsIDAuMDAzMDA2LCAwLjAwMzAwNiIsIFwKLSAgICAgICAgICAiMC4wMDMwMDYsIDAuMDAzMDA2LCAwLjAwMzAwMywgMC4wMDMwMDEsIDAuMDAzLCAwLjAwMjk5OSwgMC4wMDI5OTkiLCBcCi0gICAgICAgICAgIjAuMDAzLCAwLjAwMjk5OSwgMC4wMDI5OTYsIDAuMDAyOTk0LCAwLjAwMjk5MywgMC4wMDI5OTMsIDAuMDAyOTkyIiwgXAotICAgICAgICAgICIwLjAwMjk5NSwgMC4wMDI5OTUsIDAuMDAyOTkyLCAwLjAwMjk5LCAwLjAwMjk4OSwgMC4wMDI5ODgsIDAuMDAyOTg4IiwgXAotICAgICAgICAgICIwLjAwMjk5MSwgMC4wMDI5OSwgMC4wMDI5ODcsIDAuMDAyOTg1LCAwLjAwMjk4NCwgMC4wMDI5ODMsIDAuMDAyOTgzIiwgXAotICAgICAgICAgICIwLjAwMjk4NiwgMC4wMDI5ODYsIDAuMDAyOTgzLCAwLjAwMjk4MSwgMC4wMDI5OCwgMC4wMDI5NzksIDAuMDAyOTc5IiwgXAotICAgICAgICAgICIwLjAwMjk4NCwgMC4wMDI5ODQsIDAuMDAyOTgxLCAwLjAwMjk3OCwgMC4wMDI5NzcsIDAuMDAyOTc2LCAwLjAwMjk3NiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUk4pICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDU1MDIzOTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA1NTAyMzk7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNTQ4OTI5OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTk5LCAwLjAwMTk4LCAwLjAwMTk3MywgMC4wMDE5NjgsIDAuMDAxOTY0LCAwLjAwMTk2LCAwLjAwMTk1OCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzEzNiwgMC4wMDMxMjgsIDAuMDAzMTIzLCAwLjAwMzEyLCAwLjAwMzExNywgMC4wMDMxMTMsIDAuMDAzMTEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiRCI7Ci0gICAgICBzZGZfY29uZCA6ICJEID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjEwNjI1LCAtMC4xMDEyNSwgLTAuMDg4NzUsIC0wLjA3NjI1LCAtMC4wNywgLTAuMDUzNzUsIC0wLjAzODc1IiwgXAotICAgICAgICAgICItMC4xMjM3NSwgLTAuMTEyNSwgLTAuMSwgLTAuMDg3NSwgLTAuMDgxMjUsIC0wLjA2NSwgLTAuMDUiLCBcCi0gICAgICAgICAgIi0wLjEzNjI1LCAtMC4xMjUsIC0wLjExMjUsIC0wLjEsIC0wLjA5Mzc1LCAtMC4wNzc1LCAtMC4wNjg3NSIsIFwKLSAgICAgICAgICAiLTAuMTQ4NzUsIC0wLjEzNzUsIC0wLjEyNSwgLTAuMTE4NzUsIC0wLjEwNjI1LCAtMC4wOSwgLTAuMDgxMjUiLCBcCi0gICAgICAgICAgIi0wLjE2MTI1LCAtMC4xNSwgLTAuMTQzNzUsIC0wLjEzMTI1LCAtMC4xMTg3NSwgLTAuMTAyNSwgLTAuMDkzNzUiLCBcCi0gICAgICAgICAgIi0wLjE4Mzc1LCAtMC4xNzI1LCAtMC4xNiwgLTAuMTUzNzUsIC0wLjE0MTI1LCAtMC4xMjUsIC0wLjExNjI1IiwgXAotICAgICAgICAgICItMC4yMDUsIC0wLjE5Mzc1LCAtMC4xODEyNSwgLTAuMTY4NzUsIC0wLjE2MjUsIC0wLjE0NjI1LCAtMC4xMzEyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE4NzUsIDAuMDMsIDAuMDQ4NzUsIDAuMDYxMjUsIDAuMDczNzUsIDAuMDk2MjUsIDAuMTE3NSIsIFwKLSAgICAgICAgICAiMC4wMDc1LCAwLjAxODc1LCAwLjAzNzUsIDAuMDUsIDAuMDYyNSwgMC4wODUsIDAuMTA2MjUiLCBcCi0gICAgICAgICAgIi0wLjAwNSwgMC4wMDYyNSwgMC4wMTg3NSwgMC4wMzc1LCAwLjA1LCAwLjA3MjUsIDAuMDkzNzUiLCBcCi0gICAgICAgICAgIi0wLjAxNzUsIC0wLjAwNjI1LCAwLjAwNjI1LCAwLjAxODc1LCAwLjAzNzUsIDAuMDYsIDAuMDgxMjUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAuMDA2MjUsIDAuMDI1LCAwLjA0NzUsIDAuMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDUyNSwgLTAuMDQxMjUsIC0wLjAyODc1LCAtMC4wMSwgMC4wMDI1LCAwLjAyNSwgMC4wNDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDY3NSwgLTAuMDU2MjUsIC0wLjA0Mzc1LCAtMC4wMjUsIC0wLjAxMjUsIDAuMDEsIDAuMDI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJEIjsKLSAgICAgIHNkZl9jb25kIDogIkQgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTc1LCAwLjE2Mzc1LCAwLjE1MTI1LCAwLjEzODc1LCAwLjEyNjI1LCAwLjExLCAwLjA5NSIsIFwKLSAgICAgICAgICAiMC4xODYyNSwgMC4xNzUsIDAuMTYyNSwgMC4xNSwgMC4xMzc1LCAwLjEyMTI1LCAwLjEwNjI1IiwgXAotICAgICAgICAgICIwLjIwNSwgMC4xODc1LCAwLjE3NSwgMC4xNjI1LCAwLjE1LCAwLjEzMzc1LCAwLjExODc1IiwgXAotICAgICAgICAgICIwLjIxNzUsIDAuMjA2MjUsIDAuMTg3NSwgMC4xNzUsIDAuMTYyNSwgMC4xNDYyNSwgMC4xMzc1IiwgXAotICAgICAgICAgICIwLjIzLCAwLjIxODc1LCAwLjIsIDAuMTg3NSwgMC4xNzUsIDAuMTU4NzUsIDAuMTUiLCBcCi0gICAgICAgICAgIjAuMjUyNSwgMC4yNDEyNSwgMC4yMjI1LCAwLjIxLCAwLjE5NzUsIDAuMTgxMjUsIDAuMTcyNSIsIFwKLSAgICAgICAgICAiMC4yNjc1LCAwLjI1NjI1LCAwLjI0Mzc1LCAwLjIzMTI1LCAwLjIxODc1LCAwLjIwMjUsIDAuMTg3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1LCAwLjAzODc1LCAwLjAyLCAwLjAwNzUsIC0wLjAxMTI1LCAtMC4wMzM3NSwgLTAuMDU1IiwgXAotICAgICAgICAgICIwLjA2MTI1LCAwLjA1LCAwLjAzMTI1LCAwLjAxODc1LCAwLCAtMC4wMjI1LCAtMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4wNzM3NSwgMC4wNjI1LCAwLjA1LCAwLjAzMTI1LCAwLjAxODc1LCAtMC4wMSwgLTAuMDI1IiwgXAotICAgICAgICAgICIwLjA5MjUsIDAuMDc1LCAwLjA2MjUsIDAuMDQzNzUsIDAuMDMxMjUsIDAuMDA4NzUsIC0wLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMTA1LCAwLjA5Mzc1LCAwLjA3NSwgMC4wNjI1LCAwLjA0Mzc1LCAwLjAyMTI1LCAwIiwgXAotICAgICAgICAgICIwLjEyNzUsIDAuMTE2MjUsIDAuMDk3NSwgMC4wODUsIDAuMDY2MjUsIDAuMDQzNzUsIDAuMDIyNSIsIFwKLSAgICAgICAgICAiMC4xNDI1LCAwLjEzMTI1LCAwLjExODc1LCAwLjEsIDAuMDg3NSwgMC4wNjUsIDAuMDQzNzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogREZGWEwgKgotICogLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKERGRlhMKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMjIzNzMyOwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIGZmIChOMzAsUUJJTlQpIHsKLSAgICBuZXh0X3N0YXRlIDogIkQiOwotICAgIGNsb2NrZWRfb24gOiAiQ0siOwotICB9Ci0gIHBpbihDSykgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNTM3Mzk4OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDUzNzE4NjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA1MzczOTg7Ci0gICAgY2xvY2sgOiB0cnVlOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjQzMSwgMC4wMDI0MiwgMC4wMDI0MSwgMC4wMDI0MDMsIDAuMDAyMzk4LCAwLjAwMjM5MSwgMC4wMDIzODciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDUzOTgsIDAuMDA1Mzg5LCAwLjAwNTM4MiwgMC4wMDUzNzcsIDAuMDA1MzcyLCAwLjAwNTM2NSwgMC4wMDUzNjEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFEIjsKLSAgICAgIHNkZl9jb25kIDogIkQgPT0gMSdiMCI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4zOTk0MzYsIDAuNDExMzA1LCAwLjQyNjQyLCAwLjQ0MTg4NCwgMC40NTczMTcsIDAuNDgxNzI0LCAwLjUwMjkyMSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMjIxNDM0LCAwLjIzMjc1LCAwLjI0Nzc3OCwgMC4yNjI2MDIsIDAuMjc3MzQxLCAwLjMwMDE3MiwgMC4zMTk3NTQiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEQpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY2MjY3MjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2NjA2NDk7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjYyNjcyOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTg2NSwgMC4wMDE4NTMsIDAuMDAxODQ2LCAwLjAwMTg0MSwgMC4wMDE4MzcsIDAuMDAxODMzLCAwLjAwMTgyOCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjI0NywgMC4wMDIyNDEsIDAuMDAyMjM3LCAwLjAwMjIzNCwgMC4wMDIyMzIsIDAuMDAyMjI3LCAwLjAwMjIyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjA0Mzc1LCAtMC4wMzI1LCAtMC4wMiwgLTAuMDEzNzUsIC0wLjAwMTI1LCAwLjAxNSwgMC4wMyIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNDM3NSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDEyNSwgMC4wMDM3NSwgMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wNjc1LCAtMC4wNTYyNSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAyNSwgLTAuMDA4NzUsIDAiLCBcCi0gICAgICAgICAgIi0wLjA4NjI1LCAtMC4wNzUsIC0wLjA2MjUsIC0wLjA1LCAtMC4wMzc1LCAtMC4wMjEyNSwgLTAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDk4NzUsIC0wLjA4NzUsIC0wLjA3NSwgLTAuMDYyNSwgLTAuMDUsIC0wLjAzMzc1LCAtMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjEyMTI1LCAtMC4xMSwgLTAuMDk3NSwgLTAuMDg1LCAtMC4wNzI1LCAtMC4wNTYyNSwgLTAuMDQ3NSIsIFwKLSAgICAgICAgICAiLTAuMTM2MjUsIC0wLjEyNSwgLTAuMTEyNSwgLTAuMSwgLTAuMDkzNzUsIC0wLjA3NzUsIC0wLjA2MjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1NjI1LCAwLjA2NzUsIDAuMDgsIDAuMDk4NzUsIDAuMTExMjUsIDAuMTQsIDAuMTU1IiwgXAotICAgICAgICAgICIwLjA0NSwgMC4wNTYyNSwgMC4wNjg3NSwgMC4wODc1LCAwLjEsIDAuMTIyNSwgMC4xNDM3NSIsIFwKLSAgICAgICAgICAiMC4wMzI1LCAwLjA0Mzc1LCAwLjA1NjI1LCAwLjA3NSwgMC4wODc1LCAwLjExLCAwLjEzMTI1IiwgXAotICAgICAgICAgICIwLjAyLCAwLjAzMTI1LCAwLjA0Mzc1LCAwLjA2MjUsIDAuMDc1LCAwLjA5NzUsIDAuMTE4NzUiLCBcCi0gICAgICAgICAgIjAuMDA3NSwgMC4wMTg3NSwgMC4wMzEyNSwgMC4wNSwgMC4wNjI1LCAwLjA5MTI1LCAwLjEwNjI1IiwgXAotICAgICAgICAgICItMC4wMDI1LCAwLjAwODc1LCAwLjAyMTI1LCAwLjAzMzc1LCAwLjA1MjUsIDAuMDc1LCAwLjA5NjI1IiwgXAotICAgICAgICAgICItMC4wMTc1LCAtMC4wMDYyNSwgMC4wMDYyNSwgMC4wMjUsIDAuMDM3NSwgMC4wNiwgMC4wODEyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTM3NSwgMC4wODI1LCAwLjA3LCAwLjA1NzUsIDAuMDQ1LCAwLjAyODc1LCAwLjAxMzc1IiwgXAotICAgICAgICAgICIwLjEwNSwgMC4wOTM3NSwgMC4wODEyNSwgMC4wNjg3NSwgMC4wNTYyNSwgMC4wNCwgMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMTE3NSwgMC4xMDYyNSwgMC4wOTM3NSwgMC4wODEyNSwgMC4wNjg3NSwgMC4wNTI1LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIjAuMTMsIDAuMTE4NzUsIDAuMTA2MjUsIDAuMDkzNzUsIDAuMDgxMjUsIDAuMDY1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICIwLjE0ODc1LCAwLjEzMTI1LCAwLjExODc1LCAwLjEwNjI1LCAwLjA5Mzc1LCAwLjA3NzUsIDAuMDY4NzUiLCBcCi0gICAgICAgICAgIjAuMTY1LCAwLjE1Mzc1LCAwLjE0MTI1LCAwLjEyODc1LCAwLjExNjI1LCAwLjEsIDAuMDkxMjUiLCBcCi0gICAgICAgICAgIjAuMTg2MjUsIDAuMTc1LCAwLjE2MjUsIDAuMTUsIDAuMTM3NSwgMC4xMjEyNSwgMC4xMDYyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyNSwgMC4wMTM3NSwgMC4wMDEyNSwgLTAuMDE3NSwgLTAuMDM2MjUsIC0wLjA1ODc1LCAtMC4wOCIsIFwKLSAgICAgICAgICAiMC4wMzYyNSwgMC4wMjUsIDAuMDEyNSwgLTAuMDA2MjUsIC0wLjAyNSwgLTAuMDQ3NSwgLTAuMDY4NzUiLCBcCi0gICAgICAgICAgIjAuMDQ4NzUsIDAuMDM3NSwgMC4wMjUsIDAuMDA2MjUsIC0wLjAwNjI1LCAtMC4wMzUsIC0wLjA1NjI1IiwgXAotICAgICAgICAgICIwLjA2MTI1LCAwLjA1LCAwLjAzNzUsIDAuMDE4NzUsIDAuMDA2MjUsIC0wLjAyMjUsIC0wLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjA3Mzc1LCAwLjA2MjUsIDAuMDUsIDAuMDMxMjUsIDAuMDEyNSwgLTAuMDEsIC0wLjAzMTI1IiwgXAotICAgICAgICAgICIwLjA5NjI1LCAwLjA4NSwgMC4wNjYyNSwgMC4wNTM3NSwgMC4wMzUsIDAuMDEyNSwgLTAuMDA4NzUiLCBcCi0gICAgICAgICAgIjAuMTExMjUsIDAuMSwgMC4wODEyNSwgMC4wNjg3NSwgMC4wNSwgMC4wMjc1LCAwLjAwNjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihRKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMDc0NzQ4MjsKLSAgICBmdW5jdGlvbiA6ICJOMzAiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5vbl91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcmlzaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjM0ODQ5NywgMC4zNzQwMTksIDAuNjAyNTQ1LCAwLjk4MDQzOSwgMS4zNjAyMywgMi4yNDg3NCwgMi43NTEyNCIsIFwKLSAgICAgICAgICAiMC4zNjAzNDksIDAuMzg1ODE4LCAwLjYxMzE2NCwgMC45OTIzODQsIDEuMzcxNywgMi4yNTg1NywgMi43NjU2MiIsIFwKLSAgICAgICAgICAiMC4zNzUyNTYsIDAuNDAwNjM2LCAwLjYyOTE2LCAxLjAwNzU0LCAxLjM4NywgMi4yNzUzMywgMi43ODEwMyIsIFwKLSAgICAgICAgICAiMC4zOTA3NjUsIDAuNDE2MTQ3LCAwLjY0NDg2MSwgMS4wMjMxLCAxLjQwMjYsIDIuMjkwODIsIDIuNzk2MjIiLCBcCi0gICAgICAgICAgIjAuNDA2MzY5LCAwLjQzMTU4MywgMC42NTkxMzUsIDEuMDM4MzcsIDEuNDE3NzUsIDIuMzA0ODMsIDIuODExNTYiLCBcCi0gICAgICAgICAgIjAuNDMwNzA2LCAwLjQ1NjExMSwgMC42ODQwMTYsIDEuMDYyNDUsIDEuNDQyNDMsIDIuMzMxMjUsIDIuODM4NTgiLCBcCi0gICAgICAgICAgIjAuNDUxNTQzLCAwLjQ3Njg5OCwgMC43MDU4MTEsIDEuMDgzODIsIDEuNDYzMzcsIDIuMzUxNjQsIDIuODU3MSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yNzgxNTEsIDAuMzI4NDc0LCAwLjc5MjQ4OSwgMS41NzY5OCwgMi4zNTY3OSwgNC4xNzA4MSwgNS4xNDQ4NSIsIFwKLSAgICAgICAgICAiMC4yNzgwOTMsIDAuMzI5ODI3LCAwLjc5NDUwMywgMS41NjIyMiwgMi4zNTY2NSwgNC4xNjU2OSwgNS4xODI1NCIsIFwKLSAgICAgICAgICAiMC4yNzgxNDMsIDAuMzI5NzA0LCAwLjc5NDUxLCAxLjU3NjkzLCAyLjM1NjY1LCA0LjE3MDcsIDUuMTU1MDEiLCBcCi0gICAgICAgICAgIjAuMjc4MTQzLCAwLjMyOTcwNywgMC43OTUzNjIsIDEuNTc2OTQsIDIuMzU2NjYsIDQuMTcwNzIsIDUuMTgyMTIiLCBcCi0gICAgICAgICAgIjAuMjc4MTY2LCAwLjMyOTc5MiwgMC43OTQ4MywgMS41NjI2MiwgMi4zNTY1OCwgNC4xNjUwNSwgNS4xODQ5MSIsIFwKLSAgICAgICAgICAiMC4yNzgxMDgsIDAuMzI5NTA1LCAwLjc5MDUxMiwgMS41NzY4OSwgMi4zNTY3OSwgNC4xNjk3MywgNS4xOTUwMiIsIFwKLSAgICAgICAgICAiMC4yNzgxODUsIDAuMzI5NzIxLCAwLjc5NDU5NCwgMS41NzcwMSwgMi4zNTY2OSwgNC4xNzA2NiwgNS4xNzIwOCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zOTk0MzYsIDAuNDI5Mzg4LCAwLjY5NzMwNCwgMS4xNDIzMSwgMS41OTMwMSwgMi42MjcwOSwgMy4yMzE4NCIsIFwKLSAgICAgICAgICAiMC40MTEzMDUsIDAuNDQxMjU3LCAwLjcwOTE1NywgMS4xNTQyNiwgMS42MDQ4OSwgMi42NDgxLCAzLjI0MzcyIiwgXAotICAgICAgICAgICIwLjQyNjQyLCAwLjQ1NjM2NiwgMC43MjQzNjQsIDEuMTY5NTMsIDEuNjIwMDksIDIuNjU0MiwgMy4yNTg2MiIsIFwKLSAgICAgICAgICAiMC40NDE4ODQsIDAuNDcxODM1LCAwLjczOTU3MywgMS4xODQ3NywgMS42MzU1NCwgMi42Nzg0NiwgMy4yNzQzMiIsIFwKLSAgICAgICAgICAiMC40NTczMTcsIDAuNDg3MDY5LCAwLjc1NTIyOSwgMS4yMDA3NCwgMS42NTA5OCwgMi42OTQwNSwgMy4yODA2NSIsIFwKLSAgICAgICAgICAiMC40ODE3MjQsIDAuNTExNjg4LCAwLjc3OTU1OCwgMS4yMjQ2NywgMS42NzUzNywgMi43MTgyOSwgMy4zMTQxNCIsIFwKLSAgICAgICAgICAiMC41MDI5MjEsIDAuNTMyODczLCAwLjgwMDc5OSwgMS4yNDU4MiwgMS42OTY0OSwgMi43Mzk2MiwgMy4zMzUzNCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMTQxNDUsIDAuMzcyMzY2LCAwLjkwMTUzMSwgMS43ODA0OCwgMi42Njk0NiwgNC43MzY3NSwgNS45MDk3OSIsIFwKLSAgICAgICAgICAiMC4zMTQzMDMsIDAuMzcyNjE3LCAwLjkwMjA0OSwgMS43ODQxMSwgMi42NjcyNCwgNC43MjY0MywgNS45MTk5NyIsIFwKLSAgICAgICAgICAiMC4zMTQzMjIsIDAuMzcyNjM3LCAwLjkwMjU5MSwgMS43ODI3OCwgMi42Njg0LCA0LjcyMzU1LCA1LjkyMDQyIiwgXAotICAgICAgICAgICIwLjMxNDMwNCwgMC4zNzI2MTgsIDAuODk5NDk2LCAxLjc4NDQ0LCAyLjY2ODA3LCA0LjcyMiwgNS45MTk5MSIsIFwKLSAgICAgICAgICAiMC4zMTQzMDcsIDAuMzcyMDU2LCAwLjkwMjQ1MywgMS43ODAyNywgMi42Njg5NCwgNC43MjQ4NywgNS45MTQ4OCIsIFwKLSAgICAgICAgICAiMC4zMTQzMTMsIDAuMzcyNTgyLCAwLjkwMTk4NywgMS43ODQwOSwgMi42Njc5NywgNC43MjE3OSwgNS45MTk5NSIsIFwKLSAgICAgICAgICAiMC4zMTQzMDEsIDAuMzcyNjEsIDAuOTAyMjk1LCAxLjc4NDM1LCAyLjY2NzE0LCA0LjcyNTIzLCA1LjkxOTk1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzA3NSwgMC4wMDMwNzQsIDAuMDAzMDcsIDAuMDAzMDY3LCAwLjAwMzA2NiwgMC4wMDMwNjUsIDAuMDAzMDY0IiwgXAotICAgICAgICAgICIwLjAwMzA2OSwgMC4wMDMwNjksIDAuMDAzMDY0LCAwLjAwMzA2MiwgMC4wMDMwNiwgMC4wMDMwNTksIDAuMDAzMDU5IiwgXAotICAgICAgICAgICIwLjAwMzA2MywgMC4wMDMwNjIsIDAuMDAzMDU4LCAwLjAwMzA1NiwgMC4wMDMwNTQsIDAuMDAzMDUzLCAwLjAwMzA1MyIsIFwKLSAgICAgICAgICAiMC4wMDMwNTksIDAuMDAzMDU4LCAwLjAwMzA1NCwgMC4wMDMwNTEsIDAuMDAzMDUsIDAuMDAzMDQ5LCAwLjAwMzA0OCIsIFwKLSAgICAgICAgICAiMC4wMDMwNTYsIDAuMDAzMDU1LCAwLjAwMzA1MSwgMC4wMDMwNDgsIDAuMDAzMDQ3LCAwLjAwMzA0NiwgMC4wMDMwNDYiLCBcCi0gICAgICAgICAgIjAuMDAzMDUsIDAuMDAzMDUsIDAuMDAzMDQ2LCAwLjAwMzA0MywgMC4wMDMwNDIsIDAuMDAzMDQsIDAuMDAzMDQiLCBcCi0gICAgICAgICAgIjAuMDAzMDQ4LCAwLjAwMzA0NywgMC4wMDMwNDMsIDAuMDAzMDQxLCAwLjAwMzAzOSwgMC4wMDMwMzgsIDAuMDAzMDM3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzMDQ2LCAwLjAwMzA0NywgMC4wMDMwNDksIDAuMDAzMDUsIDAuMDAzMDUsIDAuMDAzMDUsIDAuMDAzMDUxIiwgXAotICAgICAgICAgICIwLjAwMzAzOSwgMC4wMDMwNCwgMC4wMDMwNDMsIDAuMDAzMDQzLCAwLjAwMzA0NCwgMC4wMDMwNDQsIDAuMDAzMDQ0IiwgXAotICAgICAgICAgICIwLjAwMzAzNCwgMC4wMDMwMzUsIDAuMDAzMDM3LCAwLjAwMzAzOCwgMC4wMDMwMzgsIDAuMDAzMDM5LCAwLjAwMzAzOSIsIFwKLSAgICAgICAgICAiMC4wMDMwMywgMC4wMDMwMzEsIDAuMDAzMDMzLCAwLjAwMzAzNCwgMC4wMDMwMzQsIDAuMDAzMDM0LCAwLjAwMzAzNCIsIFwKLSAgICAgICAgICAiMC4wMDMwMjgsIDAuMDAzMDI5LCAwLjAwMzAzMSwgMC4wMDMwMzIsIDAuMDAzMDMyLCAwLjAwMzAzMiwgMC4wMDMwMzMiLCBcCi0gICAgICAgICAgIjAuMDAzMDI2LCAwLjAwMzAyNywgMC4wMDMwMjksIDAuMDAzMDMsIDAuMDAzMDMsIDAuMDAzMDMsIDAuMDAzMDMxIiwgXAotICAgICAgICAgICIwLjAwMzAyOSwgMC4wMDMwMjksIDAuMDAzMDMxLCAwLjAwMzAzMiwgMC4wMDMwMzMsIDAuMDAzMDMzLCAwLjAwMzAzMyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUU4pICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4wNzEzNjE4OwotICAgIGZ1bmN0aW9uIDogIlFCSU5UIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBub25fdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJpc2luZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zOTgzOTEsIDAuNDIzNjMsIDAuNjUwODQsIDEuMDI5NSwgMS40MDgwOSwgMi4yOTIsIDIuNzk2NzMiLCBcCi0gICAgICAgICAgIjAuNDEwMjQyLCAwLjQzNTQ4MSwgMC42NjI3MSwgMS4wNDEzNywgMS40MTk5NiwgMi4zMDM1MywgMi44MDg2IiwgXAotICAgICAgICAgICIwLjQyNTM1MiwgMC40NTA1ODIsIDAuNjc3Nzk1LCAxLjA1NjQ1LCAxLjQzNTA1LCAyLjMxODkyLCAyLjgyMzc3IiwgXAotICAgICAgICAgICIwLjQ0MDgyMSwgMC40NjYwNiwgMC42OTMyNzUsIDEuMDcxOTMsIDEuNDUwNTMsIDIuMzM0MjQsIDIuODM5MTUiLCBcCi0gICAgICAgICAgIjAuNDU2MjU0LCAwLjQ4MTQ5NiwgMC43MDg3MDQsIDEuMDg3MzYsIDEuNDY1OTgsIDIuMzQ5NjEsIDIuODU0NDIiLCBcCi0gICAgICAgICAgIjAuNDgwNjU5LCAwLjUwNTkxNiwgMC43MzMxMTIsIDEuMTExNzcsIDEuNDkwMzcsIDIuMzc0MDgsIDIuODc5IiwgXAotICAgICAgICAgICIwLjUwMTg3NywgMC41MjcxMTYsIDAuNzU0MzI2LCAxLjEzMjk4LCAxLjUxMTU4LCAyLjM5NTE2LCAyLjkwMDIxIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI2OTQyMywgMC4zMjA2ODksIDAuNzgyNDExLCAxLjU0OTcxLCAyLjMyMTcsIDQuMTA4OTIsIDUuMTM3NTYiLCBcCi0gICAgICAgICAgIjAuMjY5NDI1LCAwLjMyMDY4NCwgMC43ODI0MSwgMS41NDk2OCwgMi4zMjE2OCwgNC4xMTc4MSwgNS4xMzc1NiIsIFwKLSAgICAgICAgICAiMC4yNjk0MzUsIDAuMzIwNjYsIDAuNzgyMzY4LCAxLjU0OTU3LCAyLjMyMTczLCA0LjEwODgsIDUuMTM3MzQiLCBcCi0gICAgICAgICAgIjAuMjY5NDI1LCAwLjMyMDY4NCwgMC43ODIxNzUsIDEuNTQ5NzEsIDIuMzIxNzEsIDQuMTE3ODcsIDUuMTM3NTciLCBcCi0gICAgICAgICAgIjAuMjY5NDE1LCAwLjMyMDEyNywgMC43ODIzNzksIDEuNTQ5MzksIDIuMzIxODUsIDQuMTE3ODcsIDUuMTM0IiwgXAotICAgICAgICAgICIwLjI2OTQyMywgMC4zMjA3NTksIDAuNzgyMzg3LCAxLjU0OTY3LCAyLjMyMTcxLCA0LjExNzg3LCA1LjEzNzU2IiwgXAotICAgICAgICAgICIwLjI2OTQyMywgMC4zMjA2ODksIDAuNzgyMzg3LCAxLjU0OTcsIDIuMzIxNjcsIDQuMTE3OCwgNS4xMzc1NyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zOTE5MTYsIDAuNDIxNjIsIDAuNjg4OTgyLCAxLjEzNDMyLCAxLjU3OTc2LCAyLjYxOTI4LCAzLjIxMjg5IiwgXAotICAgICAgICAgICIwLjQwMzc1OCwgMC40MzM0NTQsIDAuNzAwNzY1LCAxLjE0NjE2LCAxLjU5MTU2LCAyLjYzMDksIDMuMjI0ODMiLCBcCi0gICAgICAgICAgIjAuNDE4ODUxLCAwLjQ0ODUyOCwgMC43MTU5MDUsIDEuMTYxMjQsIDEuNjA2NjYsIDIuNjQ2MTYsIDMuMjM5OTYiLCBcCi0gICAgICAgICAgIjAuNDM0MzU5LCAwLjQ2NDAzNSwgMC43MzE0MjUsIDEuMTc2NzUsIDEuNjIyMTgsIDIuNjYxNjcsIDMuMjU1NDQiLCBcCi0gICAgICAgICAgIjAuNDQ5NzczLCAwLjQ3OTQ2OCwgMC43NDY3ODMsIDEuMTkyMTcsIDEuNjM3NTgsIDIuNjc2OTMsIDMuMjcwODUiLCBcCi0gICAgICAgICAgIjAuNDc0MTExLCAwLjUwMzg0NCwgMC43NzExNDMsIDEuMjE2NSwgMS42NjE5NSwgMi43MDE0OSwgMy4yOTU0OSIsIFwKLSAgICAgICAgICAiMC40OTUwOTgsIDAuNTI0NzcyLCAwLjc5MjE3NiwgMS4yMzc0OSwgMS42ODI5MSwgMi43MjI0MSwgMy4zMTYxOCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMDgxMDUsIDAuMzY2NzI3LCAwLjg5NDk0OSwgMS43Nzc0NSwgMi42NTkyMSwgNC43MTY0OCwgNS44ODg3NyIsIFwKLSAgICAgICAgICAiMC4zMDgwNzIsIDAuMzY2ODM1LCAwLjg5NTc0OSwgMS43NzY5LCAyLjY1ODg0LCA0LjcxMzcxLCA1Ljg4OTE5IiwgXAotICAgICAgICAgICIwLjMwODEyMywgMC4zNjY4MjksIDAuODk1NDc1LCAxLjc3NzQ5LCAyLjY1ODkzLCA0LjcxNjQzLCA1Ljg4ODM3IiwgXAotICAgICAgICAgICIwLjMwODA5LCAwLjM2NjgyOCwgMC44OTU0NTYsIDEuNzc3NSwgMi42NTg5NCwgNC43MTY0MywgNS44ODkyMyIsIFwKLSAgICAgICAgICAiMC4zMDgwNywgMC4zNjY4MzEsIDAuODk1Njk2LCAxLjc3NjgzLCAyLjY1OTExLCA0LjcxNDM1LCA1Ljg4OTA3IiwgXAotICAgICAgICAgICIwLjMwODEwMywgMC4zNjY3MjcsIDAuODk2MTA2LCAxLjc3NzQyLCAyLjY1OTIxLCA0LjcxNjQzLCA1Ljg4NzU2IiwgXAotICAgICAgICAgICIwLjMwODEyOCwgMC4zNjY4MywgMC44OTUyOCwgMS43Nzc1LCAyLjY1OTI0LCA0LjcxNjQzLCA1Ljg4ODgyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzA0NiwgMC4wMDMwNDcsIDAuMDAzMDQ5LCAwLjAwMzA1LCAwLjAwMzA1LCAwLjAwMzA1LCAwLjAwMzA1MSIsIFwKLSAgICAgICAgICAiMC4wMDMwMzksIDAuMDAzMDQsIDAuMDAzMDQzLCAwLjAwMzA0MywgMC4wMDMwNDQsIDAuMDAzMDQ0LCAwLjAwMzA0NCIsIFwKLSAgICAgICAgICAiMC4wMDMwMzQsIDAuMDAzMDM1LCAwLjAwMzAzNywgMC4wMDMwMzgsIDAuMDAzMDM4LCAwLjAwMzAzOSwgMC4wMDMwMzkiLCBcCi0gICAgICAgICAgIjAuMDAzMDMsIDAuMDAzMDMxLCAwLjAwMzAzMywgMC4wMDMwMzQsIDAuMDAzMDM0LCAwLjAwMzAzNCwgMC4wMDMwMzQiLCBcCi0gICAgICAgICAgIjAuMDAzMDI4LCAwLjAwMzAyOSwgMC4wMDMwMzEsIDAuMDAzMDMyLCAwLjAwMzAzMiwgMC4wMDMwMzIsIDAuMDAzMDMzIiwgXAotICAgICAgICAgICIwLjAwMzAyNiwgMC4wMDMwMjcsIDAuMDAzMDI5LCAwLjAwMzAzLCAwLjAwMzAzLCAwLjAwMzAzLCAwLjAwMzAzMSIsIFwKLSAgICAgICAgICAiMC4wMDMwMjksIDAuMDAzMDI5LCAwLjAwMzAzMSwgMC4wMDMwMzIsIDAuMDAzMDMzLCAwLjAwMzAzMywgMC4wMDMwMzMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDMwNzUsIDAuMDAzMDc0LCAwLjAwMzA3LCAwLjAwMzA2NywgMC4wMDMwNjYsIDAuMDAzMDY1LCAwLjAwMzA2NCIsIFwKLSAgICAgICAgICAiMC4wMDMwNjksIDAuMDAzMDY5LCAwLjAwMzA2NCwgMC4wMDMwNjIsIDAuMDAzMDYsIDAuMDAzMDU5LCAwLjAwMzA1OSIsIFwKLSAgICAgICAgICAiMC4wMDMwNjMsIDAuMDAzMDYyLCAwLjAwMzA1OCwgMC4wMDMwNTYsIDAuMDAzMDU0LCAwLjAwMzA1MywgMC4wMDMwNTMiLCBcCi0gICAgICAgICAgIjAuMDAzMDU5LCAwLjAwMzA1OCwgMC4wMDMwNTQsIDAuMDAzMDUxLCAwLjAwMzA1LCAwLjAwMzA0OSwgMC4wMDMwNDgiLCBcCi0gICAgICAgICAgIjAuMDAzMDU2LCAwLjAwMzA1NSwgMC4wMDMwNTEsIDAuMDAzMDQ4LCAwLjAwMzA0NywgMC4wMDMwNDYsIDAuMDAzMDQ2IiwgXAotICAgICAgICAgICIwLjAwMzA1LCAwLjAwMzA1LCAwLjAwMzA0NiwgMC4wMDMwNDMsIDAuMDAzMDQyLCAwLjAwMzA0LCAwLjAwMzA0IiwgXAotICAgICAgICAgICIwLjAwMzA0OCwgMC4wMDMwNDcsIDAuMDAzMDQzLCAwLjAwMzA0MSwgMC4wMDMwMzksIDAuMDAzMDM4LCAwLjAwMzAzNyIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogRExZMlgxICoKLSAqIC0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoRExZMlgxKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMTQ2MTY3OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA1NTI0MzI7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNTUxODE2OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDU1MjQzMjsKLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjEzMDI4OTsKLSAgICBmdW5jdGlvbiA6ICJBIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC40MDA0NTMsIDAuNDQzNzE2LCAwLjY4ODQyNCwgMC45MDQxODgsIDEuMTkxOTIsIDEuNzY3NDcsIDIuMTI3MTciLCBcCi0gICAgICAgICAgIjAuNDEyMjI4LCAwLjQ1NTQ1NiwgMC43MDAxODksIDAuOTE1OTM4LCAxLjIwMzY2LCAxLjc3OTI1LCAyLjEzODk1IiwgXAotICAgICAgICAgICIwLjQyNzQ4MywgMC40NzA3MzYsIDAuNzE1NDQxLCAwLjkzMTE5OCwgMS4yMTg5MywgMS43OTQ1LCAyLjE1NDIxIiwgXAotICAgICAgICAgICIwLjQ0MjYwMSwgMC40ODU4MiwgMC43MzA1NDMsIDAuOTQ2MzQ4LCAxLjIzNDA1LCAxLjgwOTU2LCAyLjE2OTIyIiwgXAotICAgICAgICAgICIwLjQ1NzE5NiwgMC41MDA0MjcsIDAuNzQ1MTUzLCAwLjk2MDkxNCwgMS4yNDg2NCwgMS44MjQyMiwgMi4xODM5MiIsIFwKLSAgICAgICAgICAiMC40Nzg3OTUsIDAuNTIyMDA5LCAwLjc2NjcyMiwgMC45ODI0OTMsIDEuMjcwMjIsIDEuODQ1NzcsIDIuMjA1NDkiLCBcCi0gICAgICAgICAgIjAuNDk1OTM1LCAwLjUzOTE4LCAwLjc4Mzg2MSwgMC45OTk2NDQsIDEuMjg3MzEsIDEuODYyOTMsIDIuMjIyNzQiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTYyMTE4LCAwLjI0ODkwMiwgMC43NDQyOTksIDEuMTg1ODMsIDEuNzcxOTksIDIuOTQ1MDMsIDMuNjc4MTQiLCBcCi0gICAgICAgICAgIjAuMTYyMTA1LCAwLjI0ODMyNCwgMC43NDQyNDYsIDEuMTg1NzYsIDEuNzcxODQsIDIuOTQ1MDQsIDMuNjc3ODgiLCBcCi0gICAgICAgICAgIjAuMTYyMDk2LCAwLjI0ODg3MywgMC43NDQyNjMsIDEuMTg1NzUsIDEuNzcxODYsIDIuOTQ1LCAzLjY3Nzg3IiwgXAotICAgICAgICAgICIwLjE2MTkxLCAwLjI0ODkxNywgMC43NDQyNjUsIDEuMTgzMjUsIDEuNzcyMDEsIDIuOTQ0NjgsIDMuNjc3MzgiLCBcCi0gICAgICAgICAgIjAuMTYyMTAxLCAwLjI0ODQ4OSwgMC43NDQyNjMsIDEuMTg1NzUsIDEuNzcxODcsIDIuOTQ0OTksIDMuNjc3ODciLCBcCi0gICAgICAgICAgIjAuMTYxODc3LCAwLjI0ODkwOCwgMC43NDQyOTQsIDEuMTg1ODIsIDEuNzcxOTYsIDIuOTQ0OTEsIDMuNjc3OSIsIFwKLSAgICAgICAgICAiMC4xNjIxMTQsIDAuMjQ4ODkzLCAwLjc0NDkxNywgMS4xODU3MiwgMS43NzE3MywgMi45NDQ4NiwgMy42Njg0Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjQwOTU2LCAwLjQ1OTA0LCAwLjczODk1NSwgMC45ODU3ODMsIDEuMzE0OTYsIDEuOTczMzMsIDIuMzg0NTQiLCBcCi0gICAgICAgICAgIjAuNDIxMDk0LCAwLjQ3MDU2MSwgMC43NTA1LCAwLjk5NzMyNywgMS4zMjY0NywgMS45ODQ3OSwgMi4zOTYyIiwgXAotICAgICAgICAgICIwLjQzNTczLCAwLjQ4NTIxMiwgMC43NjUxMiwgMS4wMTE5NiwgMS4zNDExMSwgMS45OTkzMSwgMi40MTA4MiIsIFwKLSAgICAgICAgICAiMC40NDk5ODgsIDAuNDk5NDU1LCAwLjc3OTM5NCwgMS4wMjYyMiwgMS4zNTUzNiwgMi4wMTM2OCwgMi40MjUwOSIsIFwKLSAgICAgICAgICAiMC40NjMwNTMsIDAuNTEyNTE5LCAwLjc5MjQ1OSwgMS4wMzkyOSwgMS4zNjg0MywgMi4wMjY3NCwgMi40MzgxNiIsIFwKLSAgICAgICAgICAiMC40ODE3MTQsIDAuNTMxMTgxLCAwLjgxMTExOSwgMS4wNTc5NSwgMS4zODcwOSwgMi4wNDU0MSwgMi40NTY4MiIsIFwKLSAgICAgICAgICAiMC40OTYzNjEsIDAuNTQ1ODI4LCAwLjgyNTc3MywgMS4wNzI1OSwgMS40MDE3MywgMi4wNjAwNCwgMi40NzE0NiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNzk4MzEsIDAuMjc2NDM3LCAwLjgzNDMxOSwgMS4zMjU4OCwgMS45ODAxLCAzLjI4OTYzLCA0LjEwNjk0IiwgXAotICAgICAgICAgICIwLjE3OTgzMSwgMC4yNzcwMjMsIDAuODM0MTQzLCAxLjMyNTcyLCAxLjk4MDQ3LCAzLjI4NDY0LCA0LjEwNTgzIiwgXAotICAgICAgICAgICIwLjE3OTgzNSwgMC4yNzc0MjUsIDAuODM0Mjk1LCAxLjMyNTk0LCAxLjk4MDc1LCAzLjI5MTczLCA0LjA5OTc3IiwgXAotICAgICAgICAgICIwLjE3OTgzMywgMC4yNzcwMiwgMC44MzQxMjgsIDEuMzI1NywgMS45ODA0NSwgMy4yODU5MiwgNC4xMDU5NiIsIFwKLSAgICAgICAgICAiMC4xNzk4MjYsIDAuMjc3MDE3LCAwLjgzNDExNSwgMS4zMjU2NywgMS45ODA0MSwgMy4yODY5NywgNC4xMDU5NyIsIFwKLSAgICAgICAgICAiMC4xNzk4MjYsIDAuMjc3MDE4LCAwLjgzNDEyMiwgMS4zMjU2NSwgMS45ODAzNSwgMy4yODU3NSwgNC4xMDU5OSIsIFwKLSAgICAgICAgICAiMC4xNzk4MjIsIDAuMjc2ODY2LCAwLjgzMTcyMywgMS4zMjU3NCwgMS45ODA1NSwgMy4yODc5NywgNC4xMDUzNSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDc2NCwgMC4wMDQ3NjgsIDAuMDA0NzczLCAwLjAwNDc3NSwgMC4wMDQ3NzUsIDAuMDA0Nzc2LCAwLjAwNDc3NyIsIFwKLSAgICAgICAgICAiMC4wMDQ3NDYsIDAuMDA0NzUsIDAuMDA0NzU1LCAwLjAwNDc1NiwgMC4wMDQ3NTcsIDAuMDA0NzU3LCAwLjAwNDc1OCIsIFwKLSAgICAgICAgICAiMC4wMDQ3MzQsIDAuMDA0NzM4LCAwLjAwNDc0NCwgMC4wMDQ3NDUsIDAuMDA0NzQ1LCAwLjAwNDc0NiwgMC4wMDQ3NDciLCBcCi0gICAgICAgICAgIjAuMDA0NzI4LCAwLjAwNDczMiwgMC4wMDQ3MzgsIDAuMDA0NzM5LCAwLjAwNDc0LCAwLjAwNDc0MSwgMC4wMDQ3NCIsIFwKLSAgICAgICAgICAiMC4wMDQ3MjQsIDAuMDA0NzI4LCAwLjAwNDczNCwgMC4wMDQ3MzUsIDAuMDA0NzM2LCAwLjAwNDczNywgMC4wMDQ3MzgiLCBcCi0gICAgICAgICAgIjAuMDA0NzIzLCAwLjAwNDcyOCwgMC4wMDQ3MzMsIDAuMDA0NzM1LCAwLjAwNDczNSwgMC4wMDQ3MzYsIDAuMDA0NzM3IiwgXAotICAgICAgICAgICIwLjAwNDcyMywgMC4wMDQ3MjgsIDAuMDA0NzMzLCAwLjAwNDczNSwgMC4wMDQ3MzUsIDAuMDA0NzM2LCAwLjAwNDczNiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjI3MiwgMC4wMDYyNzgsIDAuMDA2Mjg2LCAwLjAwNjI4NywgMC4wMDYyODgsIDAuMDA2Mjg5LCAwLjAwNjI4OSIsIFwKLSAgICAgICAgICAiMC4wMDYyNTksIDAuMDA2MjY0LCAwLjAwNjI3MywgMC4wMDYyNzQsIDAuMDA2Mjc1LCAwLjAwNjI3NiwgMC4wMDYyNzYiLCBcCi0gICAgICAgICAgIjAuMDA2MjQ5LCAwLjAwNjI1NCwgMC4wMDYyNjIsIDAuMDA2MjY0LCAwLjAwNjI2NSwgMC4wMDYyNjUsIDAuMDA2MjY2IiwgXAotICAgICAgICAgICIwLjAwNjI0MywgMC4wMDYyNDgsIDAuMDA2MjU2LCAwLjAwNjI1OCwgMC4wMDYyNTksIDAuMDA2MjYsIDAuMDA2MjYiLCBcCi0gICAgICAgICAgIjAuMDA2MjM4LCAwLjAwNjI0MywgMC4wMDYyNTEsIDAuMDA2MjUzLCAwLjAwNjI1NCwgMC4wMDYyNTUsIDAuMDA2MjU2IiwgXAotICAgICAgICAgICIwLjAwNjIzNSwgMC4wMDYyNDEsIDAuMDA2MjQ5LCAwLjAwNjI1MSwgMC4wMDYyNTEsIDAuMDA2MjUyLCAwLjAwNjI1MyIsIFwKLSAgICAgICAgICAiMC4wMDYyMzMsIDAuMDA2MjM5LCAwLjAwNjI0NywgMC4wMDYyNDksIDAuMDA2MjUsIDAuMDA2MjUxLCAwLjAwNjI1MSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogRExZM1gxICoKLSAqIC0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoRExZM1gxKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMTk3NDYzOwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2MTkzMjQ7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjE5MDI0OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDYxOTMyNDsKLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjEyNTAxMzsKLSAgICBmdW5jdGlvbiA6ICJBIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC41NTYyNjgsIDAuNTk5NDIzLCAwLjg0MzgyMSwgMS4wNTk2MiwgMS4zNDczNCwgMS45MjI3NCwgMi4yODI1MiIsIFwKLSAgICAgICAgICAiMC41NjgwNSwgMC42MTEyMzQsIDAuODU1NzQyLCAxLjA3MTQ1LCAxLjM1OTE1LCAxLjkzNDU2LCAyLjI5NDUiLCBcCi0gICAgICAgICAgIjAuNTgzMjQ0LCAwLjYyNjQwOCwgMC44NzA4ODgsIDEuMDg2NiwgMS4zNzQzNCwgMS45NDk4OSwgMi4zMDkzNiIsIFwKLSAgICAgICAgICAiMC41OTg0NDMsIDAuNjQxNjIsIDAuODg2LCAxLjEwMTgzLCAxLjM4OTU0LCAxLjk2NDk2LCAyLjMyNDY4IiwgXAotICAgICAgICAgICIwLjYxMzA1NywgMC42NTYyMiwgMC45MDA1OTksIDEuMTE2NDUsIDEuNDA0MTEsIDEuOTc5NywgMi4zMzkzIiwgXAotICAgICAgICAgICIwLjYzNDY5NiwgMC42Nzc4NTYsIDAuOTIyMzUsIDEuMTM3OTIsIDEuNDI1NzcsIDIuMDAxMzgsIDIuMzYxMTEiLCBcCi0gICAgICAgICAgIjAuNjUxODQ4LCAwLjY5NTAyOCwgMC45Mzk0OTIsIDEuMTU1MjMsIDEuNDQyOTUsIDIuMDE4NTIsIDIuMzc4MDgiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTYwOTMyLCAwLjI0NzQ2NCwgMC43NDUyNTUsIDEuMTg0OSwgMS43NzA5MywgMi45NDA2LCAzLjY2NzI2IiwgXAotICAgICAgICAgICIwLjE2MDY3OSwgMC4yNDc5ODMsIDAuNzQ1NzAyLCAxLjE4NDkzLCAxLjc3MDgxLCAyLjkzNzQ0LCAzLjY2NjM1IiwgXAotICAgICAgICAgICIwLjE2MDkzOSwgMC4yNDc2NTQsIDAuNzQ1NjI0LCAxLjE4NDE3LCAxLjc3MDk0LCAyLjk0MzI2LCAzLjY3NDQiLCBcCi0gICAgICAgICAgIjAuMTYwNjY1LCAwLjI0Nzk1MywgMC43NDQzMTYsIDEuMTg0ODYsIDEuNzcwODgsIDIuOTM3NTgsIDMuNjY2NzIiLCBcCi0gICAgICAgICAgIjAuMTYwOTM4LCAwLjI0NzY2MywgMC43NDI5ODEsIDEuMTgyOSwgMS43NzA0NywgMi45NDMyOCwgMy42NjcyMSIsIFwKLSAgICAgICAgICAiMC4xNjA5NDQsIDAuMjQ3NjYyLCAwLjc0NTY2MSwgMS4xODIyMiwgMS43NzA4MiwgMi45MzQ4NSwgMy42NjcxNiIsIFwKLSAgICAgICAgICAiMC4xNjA2NjQsIDAuMjQ3NDc4LCAwLjc0NTI2NCwgMS4xODQ4NywgMS43NzA4OSwgMi45NDMyLCAzLjY2NjI2Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjU2NTY1MywgMC42MTUwODYsIDAuODk0ODU1LCAxLjE0MTY5LCAxLjQ3MDg2LCAyLjEyOTQ3LCAyLjU0MDczIiwgXAotICAgICAgICAgICIwLjU3NzE4MSwgMC42MjY1OTYsIDAuOTA2MzgyLCAxLjE1MzI1LCAxLjQ4MjQ1LCAyLjE0MDk4LCAyLjU1MjIyIiwgXAotICAgICAgICAgICIwLjU5MTg1MiwgMC42NDEyODQsIDAuOTIxMDU0LCAxLjE2Nzg3LCAxLjQ5NzA4LCAyLjE1NTUzLCAyLjU2Njg5IiwgXAotICAgICAgICAgICIwLjYwNjAyMSwgMC42NTU0NTMsIDAuOTM1MjMxLCAxLjE4MjA3LCAxLjUxMTI4LCAyLjE2OTY3LCAyLjU4MTE4IiwgXAotICAgICAgICAgICIwLjYxOTIxOSwgMC42Njg2NSwgMC45NDg0MiwgMS4xOTUyOSwgMS41MjQ0MSwgMi4xODMwMywgMi41OTQzNiIsIFwKLSAgICAgICAgICAiMC42MzgsIDAuNjg3NDMyLCAwLjk2NzIwMSwgMS4yMTQwNCwgMS41NDMyLCAyLjIwMTY4LCAyLjYxMzA4IiwgXAotICAgICAgICAgICIwLjY1Mjc1MywgMC43MDIxNTksIDAuOTgxOTQ3LCAxLjIyODc4LCAxLjU1Nzk0LCAyLjIxNjQxLCAyLjYyNzgzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE3OTA3OSwgMC4yNzY4ODksIDAuODM0MDIxLCAxLjMyNTUzLCAxLjk3Nzk4LCAzLjI4ODE5LCA0LjEwNzciLCBcCi0gICAgICAgICAgIjAuMTc4OTU3LCAwLjI3NjIzNiwgMC44MzM5OSwgMS4zMjQ5NCwgMS45Nzk2OCwgMy4yODI3OSwgNC4xMDc3NyIsIFwKLSAgICAgICAgICAiMC4xNzkwNzIsIDAuMjc2ODg4LCAwLjgzMzk5OSwgMS4zMjU3OCwgMS45Nzk5LCAzLjI4NTAyLCA0LjEwNzczIiwgXAotICAgICAgICAgICIwLjE3OTAzOSwgMC4yNzU4OTMsIDAuODMzODU3LCAxLjMyNTIzLCAxLjk3OTkxLCAzLjI4NDUsIDQuMTAxMzEiLCBcCi0gICAgICAgICAgIjAuMTc5MDE1LCAwLjI3Njg4OSwgMC44MzM5NzksIDEuMzI0ODQsIDEuOTc3MTcsIDMuMjg4MjQsIDQuMTA3MzkiLCBcCi0gICAgICAgICAgIjAuMTc4NzE0LCAwLjI3Njg5LCAwLjgzMzk3MywgMS4zMjUzLCAxLjk3NzI1LCAzLjI4NTMzLCA0LjEwNzYyIiwgXAotICAgICAgICAgICIwLjE3OTAzNCwgMC4yNzY4OTMsIDAuODMzODg3LCAxLjMyNTQyLCAxLjk3NzcyLCAzLjI4NDg2LCA0LjEwNzM3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2ODc3LCAwLjAwNjg3NiwgMC4wMDY4NjMsIDAuMDA2ODU3LCAwLjAwNjg1MywgMC4wMDY4NDksIDAuMDA2ODQ4IiwgXAotICAgICAgICAgICIwLjAwNjg1OSwgMC4wMDY4NTgsIDAuMDA2ODQ1LCAwLjAwNjgzOSwgMC4wMDY4MzQsIDAuMDA2ODMyLCAwLjAwNjgzIiwgXAotICAgICAgICAgICIwLjAwNjg0OCwgMC4wMDY4NDYsIDAuMDA2ODM0LCAwLjAwNjgyOCwgMC4wMDY4MjMsIDAuMDA2ODIsIDAuMDA2ODE4IiwgXAotICAgICAgICAgICIwLjAwNjg0MSwgMC4wMDY4NCwgMC4wMDY4MjcsIDAuMDA2ODIyLCAwLjAwNjgxNywgMC4wMDY4MTQsIDAuMDA2ODEyIiwgXAotICAgICAgICAgICIwLjAwNjgzOSwgMC4wMDY4MzcsIDAuMDA2ODI1LCAwLjAwNjgxOSwgMC4wMDY4MTQsIDAuMDA2ODEsIDAuMDA2ODA5IiwgXAotICAgICAgICAgICIwLjAwNjgzNiwgMC4wMDY4MzYsIDAuMDA2ODIzLCAwLjAwNjgxNywgMC4wMDY4MTMsIDAuMDA2ODA5LCAwLjAwNjgwNyIsIFwKLSAgICAgICAgICAiMC4wMDY4MzcsIDAuMDA2ODM2LCAwLjAwNjgyMywgMC4wMDY4MTcsIDAuMDA2ODEzLCAwLjAwNjgwOSwgMC4wMDY4MDgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDgxLCAwLjAwODEwMSwgMC4wMDgwOTMsIDAuMDA4MDg5LCAwLjAwODA4NiwgMC4wMDgwODMsIDAuMDA4MDgyIiwgXAotICAgICAgICAgICIwLjAwODA4NiwgMC4wMDgwODgsIDAuMDA4MDgsIDAuMDA4MDc2LCAwLjAwODA3MywgMC4wMDgwNywgMC4wMDgwNjkiLCBcCi0gICAgICAgICAgIjAuMDA4MDc2LCAwLjAwODA3OCwgMC4wMDgwNywgMC4wMDgwNjUsIDAuMDA4MDYzLCAwLjAwODA2LCAwLjAwODA1OCIsIFwKLSAgICAgICAgICAiMC4wMDgwNywgMC4wMDgwNzIsIDAuMDA4MDY0LCAwLjAwODA2LCAwLjAwODA1NiwgMC4wMDgwNTMsIDAuMDA4MDUzIiwgXAotICAgICAgICAgICIwLjAwODA2NywgMC4wMDgwNjgsIDAuMDA4MDYxLCAwLjAwODA1NiwgMC4wMDgwNTMsIDAuMDA4MDUsIDAuMDA4MDQ5IiwgXAotICAgICAgICAgICIwLjAwODA2MywgMC4wMDgwNjQsIDAuMDA4MDU3LCAwLjAwODA1MiwgMC4wMDgwNDksIDAuMDA4MDQ2LCAwLjAwODA0NSIsIFwKLSAgICAgICAgICAiMC4wMDgwNjEsIDAuMDA4MDYzLCAwLjAwODA1NSwgMC4wMDgwNSwgMC4wMDgwNDgsIDAuMDA4MDQ0LCAwLjAwODA0NCIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogRExZNFg0ICoKLSAqIC0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoRExZNFg0KSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMzY2NzI2OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA1NjkwMjU7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNTY4OTA0OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDU2OTAyNTsKLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjUxNTUyOTsKLSAgICBmdW5jdGlvbiA6ICJBIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjY3NDg2MiwgMC44MDM5NzgsIDAuOTMxMjQsIDEuMDIyMTYsIDEuMTY3NTQsIDEuMjk0NzIsIDEuNDc2NDQiLCBcCi0gICAgICAgICAgIjAuNjg2NzQ3LCAwLjgxNTc3OSwgMC45NDMwNDUsIDEuMDM0MDEsIDEuMTc5MzQsIDEuMzA2NTMsIDEuNDg4MjQiLCBcCi0gICAgICAgICAgIjAuNzAxOTA4LCAwLjgzMTAxMSwgMC45NTgyNzcsIDEuMDQ5MTYsIDEuMTk0NTcsIDEuMzIxNzQsIDEuNTAzNDYiLCBcCi0gICAgICAgICAgIjAuNzE2ODkyLCAwLjg0NTk4OCwgMC45NzMyNTQsIDEuMDY0MTQsIDEuMjA5NTUsIDEuMzM2NzIsIDEuNTE4NDMiLCBcCi0gICAgICAgICAgIjAuNzMwOTU0LCAwLjg1OTk1OSwgMC45ODcyMjUsIDEuMDc4MDQsIDEuMjIzNTMsIDEuMzUwNywgMS41MzI0MiIsIFwKLSAgICAgICAgICAiMC43NTEsIDAuODgwMTIsIDEuMDA3MzksIDEuMDk4MjksIDEuMjQzNjgsIDEuMzcwODUsIDEuNTUyNTUiLCBcCi0gICAgICAgICAgIjAuNzY2ODM3LCAwLjg5NjAxNywgMS4wMjMyNiwgMS4xMTQxNiwgMS4yNTk1NCwgMS4zODY3NiwgMS41Njg0NiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1NzM3NSwgMC4zMDk4NTUsIDAuNTcwMTM1LCAwLjc1MzMxMywgMS4wNTM1NCwgMS4zMTM2MywgMS42ODU0IiwgXAotICAgICAgICAgICIwLjA1NzE1MiwgMC4zMTA1MzQsIDAuNTcwMTM4LCAwLjc1MzkyOCwgMS4wNTE2NCwgMS4zMTE1NiwgMS42ODUzNCIsIFwKLSAgICAgICAgICAiMC4wNTczNDMsIDAuMzEwMDUyLCAwLjU3MDE1LCAwLjc1NDY1OCwgMS4wNTM0OCwgMS4zMTI5NiwgMS42ODUyNSIsIFwKLSAgICAgICAgICAiMC4wNTczNDcsIDAuMzEwMDU1LCAwLjU3MDE1MSwgMC43NTQ2NDUsIDEuMDUzNDgsIDEuMzExMzUsIDEuNjg1MjIiLCBcCi0gICAgICAgICAgIjAuMDU3NDM4LCAwLjMxMDA2NywgMC41NzAxMjgsIDAuNzU1NTgxLCAxLjA1MzUyLCAxLjMxMzU3LCAxLjY4NTMzIiwgXAotICAgICAgICAgICIwLjA1NzMzMiwgMC4zMTAwNTQsIDAuNTcwMTU3LCAwLjc1NDQyNSwgMS4wNTM0OSwgMS4zMTE2LCAxLjY4NTA1IiwgXAotICAgICAgICAgICIwLjA1NzMwNSwgMC4zMTAwMjIsIDAuNTY5OTY0LCAwLjc1NDc3NCwgMS4wNTMxMiwgMS4zMTM2MywgMS42ODUyOCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjY4NTg3NSwgMC44MzMxMTQsIDAuOTc4NzQxLCAxLjA4MjgxLCAxLjI0OTA5LCAxLjM5NDYyLCAxLjYwMjU4IiwgXAotICAgICAgICAgICIwLjY5NzQxMywgMC44NDQ2NjEsIDAuOTkwMjQ3LCAxLjA5NDM1LCAxLjI2MDYzLCAxLjQwNjE1LCAxLjYxNDA2IiwgXAotICAgICAgICAgICIwLjcxMTkzNiwgMC44NTkxOCwgMS4wMDQ3NywgMS4xMDg4OSwgMS4yNzUxNiwgMS40MjA2NywgMS42Mjg1OCIsIFwKLSAgICAgICAgICAiMC43MjU2MDcsIDAuODcyNzk0LCAxLjAxODQxLCAxLjEyMjUxLCAxLjI4ODc5LCAxLjQzNDMxLCAxLjY0MjIyIiwgXAotICAgICAgICAgICIwLjczNzc5LCAwLjg4NDk3MSwgMS4wMzA1OSwgMS4xMzQ2OSwgMS4zMDA5NywgMS40NDY0OSwgMS42NTQ0IiwgXAotICAgICAgICAgICIwLjc1NDk0NiwgMC45MDIxNjQsIDEuMDQ3NzgsIDEuMTUxOSwgMS4zMTgxOCwgMS40NjM2OCwgMS42NzE1OSIsIFwKLSAgICAgICAgICAiMC43NjgzMzYsIDAuOTE1NTc4LCAxLjA2MTIzLCAxLjE2NTI5LCAxLjMzMTU2LCAxLjQ3NzA5LCAxLjY4NTA0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDYwODQzLCAwLjM0NTA0NSwgMC42MzYwMjYsIDAuODQwODkxLCAxLjE3NTY5LCAxLjQ2NjA4LCAxLjg4MDE2IiwgXAotICAgICAgICAgICIwLjA2MDg1NSwgMC4zNDQ5NjYsIDAuNjM2MDQzLCAwLjg0MjE1MywgMS4xNzU1NCwgMS40NjYxNCwgMS44ODA5IiwgXAotICAgICAgICAgICIwLjA2MDgyNCwgMC4zNDQ3NTQsIDAuNjM1OTg3LCAwLjg0MDc3LCAxLjE3NTQ5LCAxLjQ2NjE2LCAxLjg4MDkiLCBcCi0gICAgICAgICAgIjAuMDYwODY4LCAwLjM0NTc4MSwgMC42MzUyMjEsIDAuODQwNzkzLCAxLjE3NTU1LCAxLjQ2NjEsIDEuODgwODIiLCBcCi0gICAgICAgICAgIjAuMDYwODY4LCAwLjM0NTcyOSwgMC42MzUyMzgsIDAuODQwODQ2LCAxLjE3NTUyLCAxLjQ2NjA5LCAxLjg4MDgxIiwgXAotICAgICAgICAgICIwLjA2MDgwNiwgMC4zNDU3ODcsIDAuNjM1OTYsIDAuODQwNTAyLCAxLjE3NTQzLCAxLjQ2NjEyLCAxLjg4MDg0IiwgXAotICAgICAgICAgICIwLjA2MDg1MywgMC4zNDQ4MzUsIDAuNjM0Mzg5LCAwLjg0MTk2LCAxLjE3NTYsIDEuNDY1OTMsIDEuODc4MzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMjAwOSwgMC4wMTIxMDYsIDAuMDEyMTE3LCAwLjAxMjEyMSwgMC4wMTIxMjMsIDAuMDEyMTIzLCAwLjAxMjEyNCIsIFwKLSAgICAgICAgICAiMC4wMTE5ODgsIDAuMDEyMDg2LCAwLjAxMjA5OSwgMC4wMTIxMDEsIDAuMDEyMTA0LCAwLjAxMjEwNCwgMC4wMTIxMDYiLCBcCi0gICAgICAgICAgIjAuMDExOTc4LCAwLjAxMjA3NiwgMC4wMTIwODcsIDAuMDEyMDg5LCAwLjAxMjA5MiwgMC4wMTIwOTQsIDAuMDEyMDk1IiwgXAotICAgICAgICAgICIwLjAxMTk3MywgMC4wMTIwNzEsIDAuMDEyMDgyLCAwLjAxMjA4NiwgMC4wMTIwODgsIDAuMDEyMDg5LCAwLjAxMjA5MiIsIFwKLSAgICAgICAgICAiMC4wMTE5NzEsIDAuMDEyMDY5LCAwLjAxMjA4LCAwLjAxMjA4MywgMC4wMTIwODQsIDAuMDEyMDg3LCAwLjAxMjA4OCIsIFwKLSAgICAgICAgICAiMC4wMTE5NjksIDAuMDEyMDY4LCAwLjAxMjA3OCwgMC4wMTIwODIsIDAuMDEyMDg1LCAwLjAxMjA4NSwgMC4wMTIwODgiLCBcCi0gICAgICAgICAgIjAuMDExOTcxLCAwLjAxMjA3LCAwLjAxMjA4LCAwLjAxMjA4NCwgMC4wMTIwODUsIDAuMDEyMDg3LCAwLjAxMjA4OSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDExNzczLCAwLjAxMTkwOCwgMC4wMTE5MjYsIDAuMDExOTMxLCAwLjAxMTkzNiwgMC4wMTE5MzgsIDAuMDExOTQiLCBcCi0gICAgICAgICAgIjAuMDExNzU5LCAwLjAxMTg5NCwgMC4wMTE5MTIsIDAuMDExOTE3LCAwLjAxMTkyMSwgMC4wMTE5MjQsIDAuMDExOTI1IiwgXAotICAgICAgICAgICIwLjAxMTc0OSwgMC4wMTE4ODMsIDAuMDExOTAyLCAwLjAxMTkwNiwgMC4wMTE5MTEsIDAuMDExOTEzLCAwLjAxMTkxNSIsIFwKLSAgICAgICAgICAiMC4wMTE3NDEsIDAuMDExODc3LCAwLjAxMTg5NCwgMC4wMTE4OTksIDAuMDExOTA0LCAwLjAxMTkwNiwgMC4wMTE5MDgiLCBcCi0gICAgICAgICAgIjAuMDExNzM5LCAwLjAxMTg3NSwgMC4wMTE4OTIsIDAuMDExODk3LCAwLjAxMTkwMSwgMC4wMTE5MDQsIDAuMDExOTA2IiwgXAotICAgICAgICAgICIwLjAxMTczOCwgMC4wMTE4NzMsIDAuMDExODksIDAuMDExODk0LCAwLjAxMTksIDAuMDExOTAyLCAwLjAxMTkwMyIsIFwKLSAgICAgICAgICAiMC4wMTE3MzQsIDAuMDExODcxLCAwLjAxMTg4OCwgMC4wMTE4OTMsIDAuMDExODk4LCAwLjAxMTksIDAuMDExOTAyIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IEVERkZIUVg4ICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChFREZGSFFYOCkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjY3MDk2OTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBmZiAoTjMwLFFCSU5UKSB7Ci0gICAgbmV4dF9zdGF0ZSA6ICIoKEUgRCkgKyAoIUUgKCEoIU4zMCkpKSkiOwotICAgIGNsb2NrZWRfb24gOiAiQ0siOwotICB9Ci0gIHBpbihDSykgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjQzMjg3OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDY0MzA0MjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2NDMyODc7Ci0gICAgY2xvY2sgOiB0cnVlOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjkxMywgMC4wMDI5MDEsIDAuMDAyODksIDAuMDAyODgyLCAwLjAwMjg3NywgMC4wMDI4NywgMC4wMDI4NyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNTU1MiwgMC4wMDU1NDMsIDAuMDA1NTM0LCAwLjAwNTUyOCwgMC4wMDU1MywgMC4wMDU1MzYsIDAuMDA1NTM4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRCZFIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9FX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4yNjE1MzMsIDAuMjczMzIsIDAuMjg4ODY4LCAwLjMwNDE2NSwgMC4zMTkzNjcsIDAuMzQzNTY3LCAwLjM2NDQ1MyIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMTg2OTA4LCAwLjE5ODQ5NCwgMC4yMTMyNTIsIDAuMjI4MTc5LCAwLjI0MjY5MywgMC4yNjU0MTYsIDAuMjgzOTg2Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihEKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA4ODg1NDQ7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwODg0NzI5OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDg4ODU0NDsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDI4OTgsIDAuMDAyODgsIDAuMDAyODcxLCAwLjAwMjg2NSwgMC4wMDI4NiwgMC4wMDI4NTMsIDAuMDAyODUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDU5MDIsIDAuMDA1ODkzLCAwLjAwNTg4OCwgMC4wMDU4ODUsIDAuMDA1ODgyLCAwLjAwNTg3OSwgMC4wMDU4NzciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiRSI7Ci0gICAgICBzZGZfY29uZCA6ICJFID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjExODc1LCAtMC4xMDc1LCAtMC4wOTUsIC0wLjA4ODc1LCAtMC4wNzYyNSwgLTAuMDYsIC0wLjA1MTI1IiwgXAotICAgICAgICAgICItMC4xMywgLTAuMTE4NzUsIC0wLjEwNjI1LCAtMC4xLCAtMC4wODc1LCAtMC4wNzEyNSwgLTAuMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMTQyNSwgLTAuMTMxMjUsIC0wLjExODc1LCAtMC4xMTI1LCAtMC4xLCAtMC4wOSwgLTAuMDc1IiwgXAotICAgICAgICAgICItMC4xNTUsIC0wLjE0Mzc1LCAtMC4xMzc1LCAtMC4xMjUsIC0wLjExMjUsIC0wLjEwMjUsIC0wLjA4NzUiLCBcCi0gICAgICAgICAgIi0wLjE2NzUsIC0wLjE1NjI1LCAtMC4xNSwgLTAuMTM3NSwgLTAuMTI1LCAtMC4xMTUsIC0wLjEiLCBcCi0gICAgICAgICAgIi0wLjE5LCAtMC4xNzg3NSwgLTAuMTY2MjUsIC0wLjE2LCAtMC4xNDc1LCAtMC4xMzc1LCAtMC4xMjI1IiwgXAotICAgICAgICAgICItMC4yMTEyNSwgLTAuMiwgLTAuMTg3NSwgLTAuMTc1LCAtMC4xNjg3NSwgLTAuMTUyNSwgLTAuMTQzNzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMTg3NSwgLTAuMDA3NSwgMC4wMTEyNSwgMC4wMjM3NSwgMC4wMzYyNSwgMC4wNTI1LCAwLjA3Mzc1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDE4NzUsIDAsIDAuMDEyNSwgMC4wMjUsIDAuMDQxMjUsIDAuMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDMxMjUsIC0wLjAxMjUsIDAsIDAuMDEyNSwgMC4wMjg3NSwgMC4wNSIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNDM3NSwgLTAuMDI1LCAtMC4wMTI1LCAwLCAwLjAxNjI1LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjA2MTI1LCAtMC4wNSwgLTAuMDM3NSwgLTAuMDI1LCAtMC4wMTI1LCAwLjAxLCAwLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDgzNzUsIC0wLjA3MjUsIC0wLjA1Mzc1LCAtMC4wNDEyNSwgLTAuMDI4NzUsIC0wLjAxMjUsIDAuMDA4NzUiLCBcCi0gICAgICAgICAgIi0wLjA5MjUsIC0wLjA4MTI1LCAtMC4wNjg3NSwgLTAuMDU2MjUsIC0wLjA0Mzc1LCAtMC4wMjc1LCAtMC4wMTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJFIjsKLSAgICAgIHNkZl9jb25kIDogIkUgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMiwgMC4xODI1LCAwLjE3LCAwLjE1NzUsIDAuMTQ1LCAwLjEyODc1LCAwLjExMzc1IiwgXAotICAgICAgICAgICIwLjIxMTI1LCAwLjE5Mzc1LCAwLjE4MTI1LCAwLjE2ODc1LCAwLjE1NjI1LCAwLjE0LCAwLjEyNSIsIFwKLSAgICAgICAgICAiMC4yMjM3NSwgMC4yMTI1LCAwLjE5Mzc1LCAwLjE4MTI1LCAwLjE2ODc1LCAwLjE1MjUsIDAuMTM3NSIsIFwKLSAgICAgICAgICAiMC4yMzYyNSwgMC4yMjUsIDAuMjA2MjUsIDAuMTkzNzUsIDAuMTgxMjUsIDAuMTY1LCAwLjE1IiwgXAotICAgICAgICAgICIwLjI0ODc1LCAwLjIzNzUsIDAuMjE4NzUsIDAuMjA2MjUsIDAuMTkzNzUsIDAuMTc3NSwgMC4xNjg3NSIsIFwKLSAgICAgICAgICAiMC4yNzEyNSwgMC4yNiwgMC4yNDEyNSwgMC4yMjg3NSwgMC4yMTYyNSwgMC4yLCAwLjE4NSIsIFwKLSAgICAgICAgICAiMC4yOTI1LCAwLjI3NSwgMC4yNjI1LCAwLjI1LCAwLjIzMTI1LCAwLjIyMTI1LCAwLjIwNjI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTMxMjUsIDAuMTEzNzUsIDAuMTAxMjUsIDAuMDgyNSwgMC4wNywgMC4wNDEyNSwgMC4wMiIsIFwKLSAgICAgICAgICAiMC4xNDI1LCAwLjEyNSwgMC4xMTI1LCAwLjA5Mzc1LCAwLjA4MTI1LCAwLjA1MjUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMTU1LCAwLjEzNzUsIDAuMTI1LCAwLjEwNjI1LCAwLjA5Mzc1LCAwLjA2NSwgMC4wNSIsIFwKLSAgICAgICAgICAiMC4xNjc1LCAwLjE1LCAwLjEzNzUsIDAuMTE4NzUsIDAuMTA2MjUsIDAuMDc3NSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiMC4xOCwgMC4xNjI1LCAwLjE1LCAwLjEzMTI1LCAwLjExODc1LCAwLjA5LCAwLjA2ODc1IiwgXAotICAgICAgICAgICIwLjE5NjI1LCAwLjE4NSwgMC4xNjYyNSwgMC4xNTM3NSwgMC4xMzUsIDAuMTEyNSwgMC4wOTEyNSIsIFwKLSAgICAgICAgICAiMC4yMTEyNSwgMC4yLCAwLjE4NzUsIDAuMTY4NzUsIDAuMTUsIDAuMTI3NSwgMC4xMDYyNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNjc1NjE7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNjc0Njc7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNjc1NjE7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA1NTQsIDAuMDA1NTM5LCAwLjAwNTUzMywgMC4wMDU1MjcsIDAuMDA1NTIzLCAwLjAwNTUxNywgMC4wMDU1MTQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDYzNTgsIDAuMDA2MzM2LCAwLjAwNjMxNywgMC4wMDYzMDQsIDAuMDA2Mjk2LCAwLjAwNjI4NSwgMC4wMDYyOCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRCI7Ci0gICAgICBzZGZfY29uZCA6ICJEID09IDEnYjAiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjExODc1LCAtMC4xMDc1LCAtMC4wODg3NSwgLTAuMDc2MjUsIC0wLjA1NzUsIC0wLjAzNSwgLTAuMDIiLCBcCi0gICAgICAgICAgIi0wLjEzLCAtMC4xMTg3NSwgLTAuMSwgLTAuMDg3NSwgLTAuMDc1LCAtMC4wNDYyNSwgLTAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjE0ODc1LCAtMC4xMzEyNSwgLTAuMTE4NzUsIC0wLjEsIC0wLjA4NzUsIC0wLjA2NSwgLTAuMDQzNzUiLCBcCi0gICAgICAgICAgIi0wLjE2MTI1LCAtMC4xNSwgLTAuMTMxMjUsIC0wLjExODc1LCAtMC4xLCAtMC4wNzc1LCAtMC4wNjI1IiwgXAotICAgICAgICAgICItMC4xNzM3NSwgLTAuMTYyNSwgLTAuMTUsIC0wLjEzMTI1LCAtMC4xMTg3NSwgLTAuMDk2MjUsIC0wLjA3NSIsIFwKLSAgICAgICAgICAiLTAuMTk2MjUsIC0wLjE4NSwgLTAuMTcyNSwgLTAuMTUzNzUsIC0wLjE0MTI1LCAtMC4xMTg3NSwgLTAuMDk3NSIsIFwKLSAgICAgICAgICAiLTAuMjE3NSwgLTAuMiwgLTAuMTg3NSwgLTAuMTY4NzUsIC0wLjE1NjI1LCAtMC4xMzM3NSwgLTAuMTEyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjA0Mzc1LCAtMC4wNTEyNSwgLTAuMDM4NzUsIC0wLjAzMjUsIC0wLjAyNjI1LCAtMC4wMSwgLTAuMDAxMjUiLCBcCi0gICAgICAgICAgIi0wLjA1NSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMjEyNSwgLTAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDY3NSwgLTAuMDc1LCAtMC4wNjg3NSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNCwgLTAuMDI1IiwgXAotICAgICAgICAgICItMC4wODYyNSwgLTAuMDkzNzUsIC0wLjA4MTI1LCAtMC4wNzUsIC0wLjA2ODc1LCAtMC4wNTI1LCAtMC4wNDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDk4NzUsIC0wLjEwNjI1LCAtMC4xLCAtMC4wODc1LCAtMC4wODEyNSwgLTAuMDcxMjUsIC0wLjA1NjI1IiwgXAotICAgICAgICAgICItMC4xMjEyNSwgLTAuMTI4NzUsIC0wLjEyMjUsIC0wLjExLCAtMC4xMDM3NSwgLTAuMDg3NSwgLTAuMDc4NzUiLCBcCi0gICAgICAgICAgIi0wLjEzNjI1LCAtMC4xNDM3NSwgLTAuMTM3NSwgLTAuMTI1LCAtMC4xMTg3NSwgLTAuMTA4NzUsIC0wLjA5Mzc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIkQiOwotICAgICAgc2RmX2NvbmQgOiAiRCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4xMzc1LCAtMC4xMjYyNSwgLTAuMTEzNzUsIC0wLjEwNzUsIC0wLjA5NSwgLTAuMDc4NzUsIC0wLjA3IiwgXAotICAgICAgICAgICItMC4xNDg3NSwgLTAuMTM3NSwgLTAuMTI1LCAtMC4xMTI1LCAtMC4xMDYyNSwgLTAuMDksIC0wLjA4MTI1IiwgXAotICAgICAgICAgICItMC4xNjEyNSwgLTAuMTUsIC0wLjEzNzUsIC0wLjEyNSwgLTAuMTE4NzUsIC0wLjEwMjUsIC0wLjA5Mzc1IiwgXAotICAgICAgICAgICItMC4xNzM3NSwgLTAuMTYyNSwgLTAuMTUsIC0wLjE0Mzc1LCAtMC4xMzEyNSwgLTAuMTE1LCAtMC4xMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMTg2MjUsIC0wLjE3NSwgLTAuMTYyNSwgLTAuMTU2MjUsIC0wLjE0Mzc1LCAtMC4xMzM3NSwgLTAuMTE4NzUiLCBcCi0gICAgICAgICAgIi0wLjIwODc1LCAtMC4xOTc1LCAtMC4xODUsIC0wLjE3ODc1LCAtMC4xNjYyNSwgLTAuMTUsIC0wLjE0MTI1IiwgXAotICAgICAgICAgICItMC4yMywgLTAuMjE4NzUsIC0wLjIwNjI1LCAtMC4xOTM3NSwgLTAuMTg3NSwgLTAuMTcxMjUsIC0wLjE2MjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyNSwgMC4wMzYyNSwgMC4wNDg3NSwgMC4wNjEyNSwgMC4wNzM3NSwgMC4wOTYyNSwgMC4xMTc1IiwgXAotICAgICAgICAgICIwLjAxMzc1LCAwLjAyNSwgMC4wMzc1LCAwLjA1LCAwLjA2MjUsIDAuMDg1LCAwLjEwNjI1IiwgXAotICAgICAgICAgICIwLjAwMTI1LCAwLjAwNjI1LCAwLjAyNSwgMC4wMzc1LCAwLjA1LCAwLjA3MjUsIDAuMDkzNzUiLCBcCi0gICAgICAgICAgIi0wLjAxMTI1LCAwLCAwLjAxMjUsIDAuMDI1LCAwLjAzNzUsIDAuMDYsIDAuMDgxMjUiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTI1LCAwLCAwLjAxMjUsIDAuMDI1LCAwLjA0NzUsIDAuMDY4NzUiLCBcCi0gICAgICAgICAgIi0wLjAzMzc1LCAtMC4wMjI1LCAtMC4wMTYyNSwgMC4wMDI1LCAwLjAwODc1LCAwLjAzMTI1LCAwLjA0NjI1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDM3NSwgLTAuMDI1LCAtMC4wMTI1LCAwLCAwLjAxNjI1LCAwLjAzMTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRCI7Ci0gICAgICBzZGZfY29uZCA6ICJEID09IDEnYjAiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE1NjI1LCAwLjEzODc1LCAwLjEyNjI1LCAwLjEwNzUsIDAuMDk1LCAwLjA2NjI1LCAwLjA1MTI1IiwgXAotICAgICAgICAgICIwLjE2NzUsIDAuMTU2MjUsIDAuMTM3NSwgMC4xMTg3NSwgMC4xMDYyNSwgMC4wODM3NSwgMC4wNjI1IiwgXAotICAgICAgICAgICIwLjE4LCAwLjE2ODc1LCAwLjE1LCAwLjEzNzUsIDAuMTE4NzUsIDAuMDk2MjUsIDAuMDc1IiwgXAotICAgICAgICAgICIwLjE5ODc1LCAwLjE4MTI1LCAwLjE2ODc1LCAwLjE1LCAwLjEzNzUsIDAuMTA4NzUsIDAuMDg3NSIsIFwKLSAgICAgICAgICAiMC4yMTEyNSwgMC4yLCAwLjE4MTI1LCAwLjE2ODc1LCAwLjE1LCAwLjEyNzUsIDAuMTA2MjUiLCBcCi0gICAgICAgICAgIjAuMjMzNzUsIDAuMjIyNSwgMC4yMDM3NSwgMC4xODUsIDAuMTcyNSwgMC4xNSwgMC4xMjg3NSIsIFwKLSAgICAgICAgICAiMC4yNDg3NSwgMC4yMzc1LCAwLjIxODc1LCAwLjIwNjI1LCAwLjE4NzUsIDAuMTY1LCAwLjE0Mzc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDkzNzUsIDAuMDgyNSwgMC4wNywgMC4wNjM3NSwgMC4wNTEyNSwgMC4wMzUsIDAuMDI2MjUiLCBcCi0gICAgICAgICAgIjAuMTA1LCAwLjA5Mzc1LCAwLjA4NzUsIDAuMDc1LCAwLjA2MjUsIDAuMDQ2MjUsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiMC4xMjM3NSwgMC4xMTI1LCAwLjEsIDAuMDg3NSwgMC4wODEyNSwgMC4wNjUsIDAuMDUiLCBcCi0gICAgICAgICAgIjAuMTM2MjUsIDAuMTI1LCAwLjExMjUsIDAuMTA2MjUsIDAuMDkzNzUsIDAuMDc3NSwgMC4wNjg3NSIsIFwKLSAgICAgICAgICAiMC4xNTUsIDAuMTQzNzUsIDAuMTMxMjUsIDAuMTE4NzUsIDAuMTEyNSwgMC4wOTYyNSwgMC4wODEyNSIsIFwKLSAgICAgICAgICAiMC4xNzEyNSwgMC4xNjYyNSwgMC4xNTM3NSwgMC4xNDEyNSwgMC4xMjg3NSwgMC4xMTg3NSwgMC4xMDM3NSIsIFwKLSAgICAgICAgICAiMC4xOTI1LCAwLjE4MTI1LCAwLjE2ODc1LCAwLjE1NjI1LCAwLjE1LCAwLjEzMzc1LCAwLjExODc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJEIjsKLSAgICAgIHNkZl9jb25kIDogIkQgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTg3NSwgMC4xNywgMC4xNTc1LCAwLjE0NSwgMC4xMzI1LCAwLjExNjI1LCAwLjEwMTI1IiwgXAotICAgICAgICAgICIwLjE5ODc1LCAwLjE4MTI1LCAwLjE2ODc1LCAwLjE1NjI1LCAwLjE0Mzc1LCAwLjEyNzUsIDAuMTEyNSIsIFwKLSAgICAgICAgICAiMC4yMTEyNSwgMC4xOTM3NSwgMC4xODEyNSwgMC4xNjg3NSwgMC4xNTYyNSwgMC4xNCwgMC4xMjUiLCBcCi0gICAgICAgICAgIjAuMjIzNzUsIDAuMjA2MjUsIDAuMTkzNzUsIDAuMTgxMjUsIDAuMTY4NzUsIDAuMTUyNSwgMC4xMzc1IiwgXAotICAgICAgICAgICIwLjIzNjI1LCAwLjIyNSwgMC4yMDYyNSwgMC4xOTM3NSwgMC4xODEyNSwgMC4xNjUsIDAuMTUiLCBcCi0gICAgICAgICAgIjAuMjU4NzUsIDAuMjQxMjUsIDAuMjI4NzUsIDAuMjE2MjUsIDAuMjAzNzUsIDAuMTg3NSwgMC4xNzI1IiwgXAotICAgICAgICAgICIwLjI3Mzc1LCAwLjI2MjUsIDAuMjUsIDAuMjMxMjUsIDAuMjE4NzUsIDAuMjAyNSwgMC4xOTM3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxODc1LCAwLjAwNzUsIC0wLjAxMTI1LCAtMC4wMjM3NSwgLTAuMDM2MjUsIC0wLjA1ODc1LCAtMC4wOCIsIFwKLSAgICAgICAgICAiMC4wMywgMC4wMTg3NSwgMCwgLTAuMDEyNSwgLTAuMDI1LCAtMC4wNDc1LCAtMC4wNjg3NSIsIFwKLSAgICAgICAgICAiMC4wNDI1LCAwLjAzMTI1LCAwLjAxMjUsIDAsIC0wLjAxMjUsIC0wLjAzNSwgLTAuMDU2MjUiLCBcCi0gICAgICAgICAgIjAuMDU1LCAwLjA0Mzc1LCAwLjAzMTI1LCAwLjAxMjUsIDAsIC0wLjAyMjUsIC0wLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDU2MjUsIDAuMDQzNzUsIDAuMDI1LCAwLjAxMjUsIC0wLjAxLCAtMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4wOSwgMC4wNzg3NSwgMC4wNjYyNSwgMC4wNDc1LCAwLjAzNSwgMC4wMTI1LCAtMC4wMDg3NSIsIFwKLSAgICAgICAgICAiMC4xMTEyNSwgMC4xLCAwLjA4MTI1LCAwLjA2ODc1LCAwLjA1LCAwLjAyNzUsIDAuMDEyNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAxLjA1MDczOwotICAgIGZ1bmN0aW9uIDogIk4zMCI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3NlbnNlIDogbm9uX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiByaXNpbmdfZWRnZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMzU2NjQsIDAuMzAzNTUxLCAwLjM2ODMwMywgMC40MTQ1MTMsIDAuNDg4NDI1LCAwLjU1MzEwNSwgMC42NDU1MTciLCBcCi0gICAgICAgICAgIjAuMjQ3MzE5LCAwLjMxNTIwNCwgMC4zNzk5NTcsIDAuNDI2MTY2LCAwLjUwMDA4NiwgMC41NjQ3NDMsIDAuNjU3MTkxIiwgXAotICAgICAgICAgICIwLjI2MjY0MywgMC4zMzA1MjUsIDAuMzk1Mjc2LCAwLjQ0MTQ4MywgMC41MTUzOTQsIDAuNTgwMDY0LCAwLjY3MjQ0NiIsIFwKLSAgICAgICAgICAiMC4yNzgxMzksIDAuMzQ2MDI2LCAwLjQxMDc3OSwgMC40NTY5ODcsIDAuNTMwODk4LCAwLjU5NTU3NCwgMC42ODgwMDEiLCBcCi0gICAgICAgICAgIjAuMjkzMzEsIDAuMzYxMTk0LCAwLjQyNTk0NCwgMC40NzIxNTIsIDAuNTQ2MDY0LCAwLjYxMDczOCwgMC43MDMxNzMiLCBcCi0gICAgICAgICAgIjAuMzE3NDk3LCAwLjM4NTM4OSwgMC40NTAxMzcsIDAuNDk2MzQ4LCAwLjU3MDI2MSwgMC42MzQ5NDEsIDAuNzI3MzUiLCBcCi0gICAgICAgICAgIjAuMzM3OTY1LCAwLjQwNTg0MSwgMC40NzA1OTYsIDAuNTE2ODA0LCAwLjU5MDcxNiwgMC42NTUzOSwgMC43NDc4MjciKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDAxODIsIDAuMTY1MjI2LCAwLjI5NTQ0OSwgMC4zODkzMjUsIDAuNTM5OTY0LCAwLjY3MTY2MiwgMC44NjIxMiIsIFwKLSAgICAgICAgICAiMC4wNDAxOSwgMC4xNjUyMjgsIDAuMjk1NDI0LCAwLjM4OTM4MSwgMC41NDA3ODgsIDAuNjcxOTc3LCAwLjg1OTkiLCBcCi0gICAgICAgICAgIjAuMDQwMTg4LCAwLjE2NTIzMSwgMC4yOTU2MzMsIDAuMzg5Mjg4LCAwLjU0MDY5NCwgMC42NzI4NTEsIDAuODYxNzQ4IiwgXAotICAgICAgICAgICIwLjA0MDE4MSwgMC4xNjUyMjIsIDAuMjk1NDY2LCAwLjM4OTM0OCwgMC41NDAwMDIsIDAuNjcyMTE5LCAwLjg2MjE0MyIsIFwKLSAgICAgICAgICAiMC4wNDAyMDQsIDAuMTY1MjQ0LCAwLjI5NTQzNywgMC4zODg5OTMsIDAuNTQwMDcxLCAwLjY3MjAyNSwgMC44NTk0MjIiLCBcCi0gICAgICAgICAgIjAuMDQwMTgzLCAwLjE2NTIzMSwgMC4yOTU2MzYsIDAuMzg5MzcxLCAwLjUzOTk1OCwgMC42NzE2ODIsIDAuODYyMDkyIiwgXAotICAgICAgICAgICIwLjA0MDIwNiwgMC4xNjUyMjUsIDAuMjk1NDQ3LCAwLjM4ODk4NywgMC41NDAwNjQsIDAuNjcxOTgxLCAwLjg2MjE4Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjYxNTMzLCAwLjMzODg1NCwgMC40MTM0OCwgMC40NjY3MDcsIDAuNTUxODUsIDAuNjI2MzI1LCAwLjczMjczOSIsIFwKLSAgICAgICAgICAiMC4yNzMzMiwgMC4zNTA2MzUsIDAuNDI1MjY5LCAwLjQ3ODQ5LCAwLjU2MzYyMywgMC42MzgxMjgsIDAuNzQ0NTYiLCBcCi0gICAgICAgICAgIjAuMjg4ODY4LCAwLjM2NjE3NiwgMC40NDA3OTEsIDAuNDk0MDEsIDAuNTc5MTQ1LCAwLjY1MzY3MywgMC43NjAwNzYiLCBcCi0gICAgICAgICAgIjAuMzA0MTY1LCAwLjM4MTQ4LCAwLjQ1NjExMiwgMC41MDkzMzMsIDAuNTk0NDY4LCAwLjY2ODk3MywgMC43NzU0MDQiLCBcCi0gICAgICAgICAgIjAuMzE5MzY3LCAwLjM5NjY3NCwgMC40NzEyOSwgMC41MjQ1MSwgMC42MDk2NDIsIDAuNjg0MTQ1LCAwLjc5MDU4NCIsIFwKLSAgICAgICAgICAiMC4zNDM1NjcsIDAuNDIwODkyLCAwLjQ5NTUxMywgMC41NDg3NSwgMC42MzM4ODQsIDAuNzA4MzYsIDAuODE0NzY5IiwgXAotICAgICAgICAgICIwLjM2NDQ1MywgMC40NDE3NzIsIDAuNTE2Mzg4LCAwLjU2OTYwNywgMC42NTQ3NTEsIDAuNzI5MjQyLCAwLjgzNTY4MSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0MTQxMiwgMC4xODM5NzQsIDAuMzMxMTA4LCAwLjQzNzExNiwgMC42MDYzMDQsIDAuNzU0Njk1LCAwLjk2NjUzMSIsIFwKLSAgICAgICAgICAiMC4wNDEzODksIDAuMTgzOTY2LCAwLjMzMTQxNCwgMC40MzY5OTEsIDAuNjA3MTM1LCAwLjc1NTQxLCAwLjk2OTA0IiwgXAotICAgICAgICAgICIwLjA0MTM4MSwgMC4xODM5ODksIDAuMzMxNDE3LCAwLjQzNjkyNSwgMC42MDY4OTksIDAuNzUzOTE5LCAwLjk2OTAzNyIsIFwKLSAgICAgICAgICAiMC4wNDEzODgsIDAuMTgzOTY2LCAwLjMzMDkxOSwgMC40MzcwODksIDAuNjA3MTM5LCAwLjc1NTQ0MiwgMC45NjkwNCIsIFwKLSAgICAgICAgICAiMC4wNDE0MDEsIDAuMTgzOTg0LCAwLjMzMDk5OCwgMC40MzczMTMsIDAuNjA2ODk2LCAwLjc1NDQzOCwgMC45NjkwNSIsIFwKLSAgICAgICAgICAiMC4wNDE0MDksIDAuMTgzOTgxLCAwLjMzMDg5NiwgMC40MzY3OTksIDAuNjA2ODY4LCAwLjc1NjUwNywgMC45NjkyMjEiLCBcCi0gICAgICAgICAgIjAuMDQxMzYxLCAwLjE4Mzk4NCwgMC4zMzEwODgsIDAuNDM3MzQ0LCAwLjYwNzg1NCwgMC43NTQzOTksIDAuOTY5MDQ5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEzMzQsIDAuMDEzNTg5LCAwLjAxMzYzOSwgMC4wMTM2NTUsIDAuMDEzNjcxLCAwLjAxMzY3NiwgMC4wMTM2ODMiLCBcCi0gICAgICAgICAgIjAuMDEzMzI0LCAwLjAxMzU3NCwgMC4wMTM2MjMsIDAuMDEzNjQsIDAuMDEzNjU1LCAwLjAxMzY2MywgMC4wMTM2NjkiLCBcCi0gICAgICAgICAgIjAuMDEzMzE4LCAwLjAxMzU2MywgMC4wMTM2MTIsIDAuMDEzNjMyLCAwLjAxMzY0MiwgMC4wMTM2NSwgMC4wMTM2NTQiLCBcCi0gICAgICAgICAgIjAuMDEzMzAzLCAwLjAxMzU1MywgMC4wMTM2MDIsIDAuMDEzNjE4LCAwLjAxMzYzMywgMC4wMTM2MzksIDAuMDEzNjQ2IiwgXAotICAgICAgICAgICIwLjAxMzI5NywgMC4wMTM1NDQsIDAuMDEzNTkzLCAwLjAxMzYwOSwgMC4wMTM2MjcsIDAuMDEzNjMxLCAwLjAxMzYzNSIsIFwKLSAgICAgICAgICAiMC4wMTMyODUsIDAuMDEzNTM0LCAwLjAxMzU4MywgMC4wMTM1OTksIDAuMDEzNjE1LCAwLjAxMzYyMSwgMC4wMTM2MjciLCBcCi0gICAgICAgICAgIjAuMDEzMjgzLCAwLjAxMzUyOSwgMC4wMTM1NzksIDAuMDEzNTk3LCAwLjAxMzYwOSwgMC4wMTM2MTgsIDAuMDEzNjI2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTI4OSwgMC4wMTMyMiwgMC4wMTMyODksIDAuMDEzMzExLCAwLjAxMzMzMiwgMC4wMTMzNDIsIDAuMDEzMzUyIiwgXAotICAgICAgICAgICIwLjAxMjg4NywgMC4wMTMyMTIsIDAuMDEzMjgsIDAuMDEzMzAyLCAwLjAxMzMyMiwgMC4wMTMzMzIsIDAuMDEzMzQxIiwgXAotICAgICAgICAgICIwLjAxMjg5MywgMC4wMTMyMDYsIDAuMDEzMjcyLCAwLjAxMzI5MywgMC4wMTMzMTMsIDAuMDEzMzIyLCAwLjAxMzMzMSIsIFwKLSAgICAgICAgICAiMC4wMTI4NjksIDAuMDEzMTk1LCAwLjAxMzI2MiwgMC4wMTMyODUsIDAuMDEzMzA1LCAwLjAxMzMxNSwgMC4wMTMzMjQiLCBcCi0gICAgICAgICAgIjAuMDEyODgxLCAwLjAxMzE5NywgMC4wMTMyNjMsIDAuMDEzMjg1LCAwLjAxMzMwNCwgMC4wMTMzMTQsIDAuMDEzMzIzIiwgXAotICAgICAgICAgICIwLjAxMjg2LCAwLjAxMzE4OSwgMC4wMTMyNTgsIDAuMDEzMjgxLCAwLjAxMzMwMiwgMC4wMTMzMTIsIDAuMDEzMzIyIiwgXAotICAgICAgICAgICIwLjAxMjg4NywgMC4wMTMyMDcsIDAuMDEzMjc0LCAwLjAxMzI5NSwgMC4wMTMzMTUsIDAuMDEzMzI1LCAwLjAxMzMzNCIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBJTlZYNiAqCi0gKiAtLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoSU5WWDYpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4xOTY4MTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDA0MjA0OTU7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDA0MjAzOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwNDIwNDk1OwotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuNzU4MTc1OwotICAgIGZ1bmN0aW9uIDogIighQSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDIxNDIzLCAwLjEwNjc4OCwgMC4xOTIxLCAwLjI1MzAzNiwgMC4zNTAzNTcsIDAuNDM1ODk3LCAwLjU1NzQ2OCIsIFwKLSAgICAgICAgICAiMC4wMzMwNzcsIDAuMTE4NTYxLCAwLjIwMzg1MiwgMC4yNjQ3NzUsIDAuMzYyMjE4LCAwLjQ0NzYsIDAuNTY5MzYyIiwgXAotICAgICAgICAgICIwLjA0NzcwOCwgMC4xMzI4NTcsIDAuMjE4MTI3LCAwLjI3OTA0NCwgMC4zNzY1NTEsIDAuNDYxNzA5LCAwLjU4MzkxOSIsIFwKLSAgICAgICAgICAiMC4wNjA2MTksIDAuMTQ3NzQxLCAwLjIzMjc2NSwgMC4yOTM1MjksIDAuMzg5MzY3LCAwLjQ3NDU3MywgMC41OTY1OTIiLCBcCi0gICAgICAgICAgIjAuMDcxMzc1LCAwLjE2MjcwOCwgMC4yNDc0MDksIDAuMzA4MTgyLCAwLjQwNTU2OSwgMC40OTA2OTYsIDAuNjEyNTg3IiwgXAotICAgICAgICAgICIwLjA4NzU3MiwgMC4xODY1NTIsIDAuMjcxNzEsIDAuMzMyNTk5LCAwLjQyOTczOCwgMC41MTQ3MTgsIDAuNjM2NTU5IiwgXAotICAgICAgICAgICIwLjA5OTE2MSwgMC4yMDcxNjIsIDAuMjkyNDExLCAwLjM1MjY2OSwgMC40NDk4ODgsIDAuNTM0NzA5LCAwLjY1NjIxMiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzNDI2MywgMC4yMDc0NzEsIDAuMzgwNzE3LCAwLjUwNDQ4OSwgMC43MDQzMDMsIDAuODc2MTcxLCAxLjEyMjk1IiwgXAotICAgICAgICAgICIwLjAzNTk2NywgMC4yMDc0NDgsIDAuMzgxNjAyLCAwLjUwNTY4NywgMC43MDMwMzQsIDAuODc2NTAyLCAxLjEyNDMiLCBcCi0gICAgICAgICAgIjAuMDQyNjgyLCAwLjIwNzQ5LCAwLjM4MDc4LCAwLjUwNTYxNSwgMC43MDMwODksIDAuODc3NzMxLCAxLjEyMzczIiwgXAotICAgICAgICAgICIwLjA1MTU1MSwgMC4yMDg4MjEsIDAuMzgwNjQ1LCAwLjUwNTM2NiwgMC43MDI0ODcsIDAuODc1NTM3LCAxLjEyMzU1IiwgXAotICAgICAgICAgICIwLjA2MTYyMSwgMC4yMTIzNzQsIDAuMzgxODM5LCAwLjUwNDM4NCwgMC43MDI0ODQsIDAuODc1NjAyLCAxLjEyNDE4IiwgXAotICAgICAgICAgICIwLjA3NTg3OCwgMC4yMTk1MjIsIDAuMzgzNTc1LCAwLjUwNjI5LCAwLjcwMjQ5MiwgMC44NzU0MTgsIDEuMTIzNzUiLCBcCi0gICAgICAgICAgIjAuMDg4MzY1LCAwLjIyNzkwOSwgMC4zODgzMTEsIDAuNTA3NzAyLCAwLjcwMjY3NywgMC44Nzc5NzEsIDEuMTIzMDMiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjQ4MjQsIDAuMTI0MTc3LCAwLjIyMzQwMSwgMC4yOTQzMTQsIDAuNDA3NjU0LCAwLjUwNjgyNiwgMC42NDg3MjQiLCBcCi0gICAgICAgICAgIjAuMDM2NTI3LCAwLjEzNjAyNCwgMC4yMzUyNzgsIDAuMzA2MTY4LCAwLjQxOTUzMywgMC41MTg3MjIsIDAuNjYwMzg2IiwgXAotICAgICAgICAgICIwLjA1MTQzMiwgMC4xNTA0NTksIDAuMjQ5NzE2LCAwLjMyMDYyLCAwLjQzMzkxMSwgMC41MzMyODgsIDAuNjc0ODkiLCBcCi0gICAgICAgICAgIjAuMDY1NDY2LCAwLjE2NTQ2OSwgMC4yNjQzNjcsIDAuMzM0MTE5LCAwLjQ0NzQ3MSwgMC41NDY2ODMsIDAuNjg4NDg5IiwgXAotICAgICAgICAgICIwLjA3NzcyNywgMC4xODAzMDIsIDAuMjc5Mjg1LCAwLjM0OTk1MywgMC40NjMyNTYsIDAuNTYyNTg1LCAwLjcwMTQwMyIsIFwKLSAgICAgICAgICAiMC4wOTUzMzMsIDAuMjA0NDk3LCAwLjMwMzY3NSwgMC4zNzM0MzQsIDAuNDg2NzkzLCAwLjU4NTk3OSwgMC43Mjc4ODkiLCBcCi0gICAgICAgICAgIjAuMTA5MDM1LCAwLjIyNTYxLCAwLjMyMzQ5NywgMC4zOTQzNzUsIDAuNTA3NDc0LCAwLjYwNjYyLCAwLjc0ODcwOCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzODQyMSwgMC4yMzU0ODQsIDAuNDMyNTIsIDAuNTcyNDAyLCAwLjc5ODQyLCAwLjk5NTIxNywgMS4yNzQ2MiIsIFwKLSAgICAgICAgICAiMC4wMzk1MzYsIDAuMjM1ODk0LCAwLjQzMjYxMSwgMC41NzE5MzQsIDAuNzk2NjYyLCAwLjk5MzQzOCwgMS4yNzUxMiIsIFwKLSAgICAgICAgICAiMC4wNDUyMTQsIDAuMjM1ODk1LCAwLjQzMjA2MywgMC41NzIzMDUsIDAuNzk5NzI3LCAwLjk5NTI1MSwgMS4yNzQ2IiwgXAotICAgICAgICAgICIwLjA1MzI0OCwgMC4yMzU5MzksIDAuNDMzMjI0LCAwLjU3MjA3NSwgMC43OTk3ODMsIDAuOTkzODM3LCAxLjI3NTExIiwgXAotICAgICAgICAgICIwLjA2MzAwNCwgMC4yMzg2ODksIDAuNDMzMjU0LCAwLjU3NDIyNSwgMC43OTk3OTIsIDAuOTk1NDE2LCAxLjI3NTk1IiwgXAotICAgICAgICAgICIwLjA3ODQxNywgMC4yNDQ1MTQsIDAuNDMzOTA3LCAwLjU3NDI0MywgMC43OTg0MTMsIDAuOTk2MTI2LCAxLjI3NDU5IiwgXAotICAgICAgICAgICIwLjA5MDY0MSwgMC4yNTE1NDgsIDAuNDM3OTcsIDAuNTczNzIyLCAwLjc5OTc4MSwgMC45OTM0ODYsIDEuMjc0OTciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNTEzMiwgMC4wMDUxNzMsIDAuMDA1MTc5LCAwLjAwNTE4LCAwLjAwNTE3OSwgMC4wMDUxODEsIDAuMDA1MTgyIiwgXAotICAgICAgICAgICIwLjAwNDk5NSwgMC4wMDUxNDIsIDAuMDA1MTYsIDAuMDA1MTYzLCAwLjAwNTE3LCAwLjAwNTE3MiwgMC4wMDUxNzMiLCBcCi0gICAgICAgICAgIjAuMDA0OTA5LCAwLjAwNTA5NiwgMC4wMDUxMzYsIDAuMDA1MTQ4LCAwLjAwNTE2LCAwLjAwNTE2MywgMC4wMDUxNjYiLCBcCi0gICAgICAgICAgIjAuMDA0ODY0LCAwLjAwNTA3NSwgMC4wMDUxMTIsIDAuMDA1MTM1LCAwLjAwNTE0NSwgMC4wMDUxNTMsIDAuMDA1MTYiLCBcCi0gICAgICAgICAgIjAuMDA0ODQyLCAwLjAwNTA1NCwgMC4wMDUxMDEsIDAuMDA1MTE2LCAwLjAwNTEzNiwgMC4wMDUxNDQsIDAuMDA1MTUxIiwgXAotICAgICAgICAgICIwLjAwNDg0MiwgMC4wMDUwMjIsIDAuMDA1MDgsIDAuMDA1MSwgMC4wMDUxMjMsIDAuMDA1MTMzLCAwLjAwNTE0MyIsIFwKLSAgICAgICAgICAiMC4wMDQ4NDUsIDAuMDA0OTk0LCAwLjAwNTA1OSwgMC4wMDUwODYsIDAuMDA1MTA4LCAwLjAwNTEyNCwgMC4wMDUxMzIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDI4NSwgMC4wMDAzNDcsIDAuMDAwMzUyLCAwLjAwMDM1NCwgMC4wMDAzNTYsIDAuMDAwMzU3LCAwLjAwMDM1NyIsIFwKLSAgICAgICAgICAiMC4wMDAxLCAwLjAwMDMwMSwgMC4wMDAzMjcsIDAuMDAwMzM1LCAwLjAwMDM0MiwgMC4wMDAzNDYsIDAuMDAwMzQ5IiwgXAotICAgICAgICAgICIwLjAwMDAxNywgMC4wMDAyNDYsIDAuMDAwMjk1LCAwLjAwMDMxLCAwLjAwMDMyNCwgMC4wMDAzMzEsIDAuMDAwMzM3IiwgXAotICAgICAgICAgICIwLjAwMDA3MSwgMC4wMDAyMDQsIDAuMDAwMjY2LCAwLjAwMDI4NiwgMC4wMDAzMDYsIDAuMDAwMzE2LCAwLjAwMDMyNiIsIFwKLSAgICAgICAgICAiMC4wMDAwOTMsIDAuMDAwMTY4LCAwLjAwMDI0MSwgMC4wMDAyNjcsIDAuMDAwMjkxLCAwLjAwMDMwNCwgMC4wMDAzMTUiLCBcCi0gICAgICAgICAgIjAuMDAwMDkxLCAwLjAwMDEyNSwgMC4wMDAyMDksIDAuMDAwMjQsIDAuMDAwMjY5LCAwLjAwMDI4NiwgMC4wMDAzMDEiLCBcCi0gICAgICAgICAgIjAuMDAwMTA3LCAwLjAwMDA5LCAwLjAwMDE3NywgMC4wMDAyMTMsIDAuMDAwMjQ4LCAwLjAwMDI2OCwgMC4wMDAyODciKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogTVgzWEwgKgotICogLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKE1YM1hMKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMTU4NjY0OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2MDQyMzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MDI0MTI7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjA0MjM7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNzE1LCAwLjAwMDcwNCwgMC4wMDA2OTgsIDAuMDAwNjk0LCAwLjAwMDY5MSwgMC4wMDA2ODcsIDAuMDAwNjg1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxODQ2LCAwLjAwMTg0LCAwLjAwMTgzNywgMC4wMDE4MzUsIDAuMDAxODMzLCAwLjAwMTgzMiwgMC4wMDE4MyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjI2NzQ7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjI1MDY7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjI2NzQ7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMTU5LCAwLjAwMDE2LCAwLjAwMDE2MSwgMC4wMDAxNjEsIDAuMDAwMTYyLCAwLjAwMDE2MiwgMC4wMDAxNjIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxNjgsIDAuMDAwMTY2LCAwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiwgMC4wMDAxNjYiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEMpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY0NjQzMjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2NDQ3ODM7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjQ2NDMyOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDE1OSwgMC4wMDAxNjEsIDAuMDAwMTYxLCAwLjAwMDE2MiwgMC4wMDAxNjEsIDAuMDAwMTYyLCAwLjAwMDE2MiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDE2OCwgMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUzApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTE3MjExOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTE3MTgxOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTE3MjExOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDE5NiwgMC4wMDAxNzgsIDAuMDAwMTY4LCAwLjAwMDE2NCwgMC4wMDAxNjIsIDAuMDAwMTYsIDAuMDAwMTYxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxNTQ2LCAwLjAwMTUzNCwgMC4wMDE1MjYsIDAuMDAxNTI0LCAwLjAwMTUyMiwgMC4wMDE1MiwgMC4wMDE1MiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUzEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTE1MjE2OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTE1MTUyOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTE1MjE2OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDE5MywgMC4wMDAxNzUsIDAuMDAwMTY1LCAwLjAwMDE2LCAwLjAwMDE1OSwgMC4wMDAxNTcsIDAuMDAwMTU4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxNDg3LCAwLjAwMTQ3NSwgMC4wMDE0NjgsIDAuMDAxNDY1LCAwLjAwMTQ2MywgMC4wMDE0NjEsIDAuMDAxNDYxIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMDY5NTI2OTsKLSAgICBmdW5jdGlvbiA6ICIoKFMxIEMpICsgKCFTMSAoKFMwIEIpICsgKCFTMCBBKSkpKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzYwMTI4LCAwLjM4NTk4NSwgMC42MTQzNDIsIDAuOTkzNDI0LCAxLjM3MjE4LCAyLjI1NjEsIDIuNzYxMjEiLCBcCi0gICAgICAgICAgIjAuMzcxNjI5LCAwLjM5NzQ4NiwgMC42MjU4MzgsIDEuMDA0OTMsIDEuMzgzNjcsIDIuMjY3NjEsIDIuNzcyNyIsIFwKLSAgICAgICAgICAiMC4zODU0MzcsIDAuNDExMjkzLCAwLjYzOTYyMSwgMS4wMTg3NCwgMS4zOTc0OCwgMi4yODE0MSwgMi43ODY1MiIsIFwKLSAgICAgICAgICAiMC4zOTkwMjgsIDAuNDI0ODg3LCAwLjY1MzIzNCwgMS4wMzIzMywgMS40MTEwNywgMi4yOTUsIDIuNzk5ODgiLCBcCi0gICAgICAgICAgIjAuNDEyODQ4LCAwLjQzODcyMiwgMC42NjcwNzksIDEuMDQ2MiwgMS40MjQ5NCwgMi4zMDg4NywgMi44MTM3NiIsIFwKLSAgICAgICAgICAiMC40MzQ3NTUsIDAuNDYwNjM4LCAwLjY4ODkyMywgMS4wNjgwMywgMS40NDY4LCAyLjMzMDU2LCAyLjgzNTc1IiwgXAotICAgICAgICAgICIwLjQ1MzkwMSwgMC40Nzk3ODYsIDAuNzA4MDcsIDEuMDg3MiwgMS40NjU5NSwgMi4zNDk3NCwgMi44NTQ5MiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yODg1NTQsIDAuMzM3Njc2LCAwLjc5MDcwNCwgMS41NTcxMywgMi4zMjQyNSwgNC4xMjE0LCA1LjEzMjcyIiwgXAotICAgICAgICAgICIwLjI4ODU5OCwgMC4zMzc3MDksIDAuNzg4NTI0LCAxLjU1NzA5LCAyLjMyNDg2LCA0LjEyMTI2LCA1LjEzNTYxIiwgXAotICAgICAgICAgICIwLjI4ODU5OCwgMC4zMzc3MSwgMC43ODkyMTksIDEuNTU3MDgsIDIuMzI1MDMsIDQuMTIxMjgsIDUuMTM1MzkiLCBcCi0gICAgICAgICAgIjAuMjg4NjEsIDAuMzM3NzE3LCAwLjc4ODUwNywgMS41NTcwNywgMi4zMjUwMiwgNC4xMjEyOCwgNS4xMzY3OSIsIFwKLSAgICAgICAgICAiMC4yODg1ODMsIDAuMzM3Njk4LCAwLjc4OTE3OSwgMS41NTcwNywgMi4zMjQ5OSwgNC4xMjEyOSwgNS4xMzY4NCIsIFwKLSAgICAgICAgICAiMC4yODg1NiwgMC4zMzc2NjYsIDAuNzkwMzU3LCAxLjU1MzA1LCAyLjMyNTMyLCA0LjExNDMyLCA1LjE0MDI5IiwgXAotICAgICAgICAgICIwLjI4ODU2NywgMC4zMzc2NDcsIDAuNzkwMjI5LCAxLjU1MzM0LCAyLjMyNTMxLCA0LjExNDAxLCA1LjE0MDI5Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjM2MTU4NiwgMC4zOTE4NDcsIDAuNjYwMDU2LCAxLjEwNTcyLCAxLjU1MTI4LCAyLjU5MSwgMy4xODQ3NSIsIFwKLSAgICAgICAgICAiMC4zNzMxNCwgMC40MDMzNjIsIDAuNjcxNTk5LCAxLjExNzMsIDEuNTYyOTMsIDIuNjAyMzUsIDMuMTk2MTgiLCBcCi0gICAgICAgICAgIjAuMzg2MzE2LCAwLjQxNjU2MywgMC42ODQ3NzEsIDEuMTMwNDgsIDEuNTc2MDEsIDIuNjE1NTUsIDMuMjA5MzgiLCBcCi0gICAgICAgICAgIjAuMzk4ODI1LCAwLjQyOTA4NywgMC42OTcyNDEsIDEuMTQyOTgsIDEuNTg4NTEsIDIuNjI4MDEsIDMuMjIyMTgiLCBcCi0gICAgICAgICAgIjAuNDExMjA2LCAwLjQ0MTQ2OSwgMC43MDk2MiwgMS4xNTUzNiwgMS42MDA5LCAyLjY0MDQ2LCAzLjIzNDU3IiwgXAotICAgICAgICAgICIwLjQzMDg5NywgMC40NjExNTQsIDAuNzI5MzE1LCAxLjE3NTA1LCAxLjYyMDU4LCAyLjY2MDE2LCAzLjI1NDI4IiwgXAotICAgICAgICAgICIwLjQ0Nzg1MiwgMC40NzgxMiwgMC43NDYzMDMsIDEuMTkyMDMsIDEuNjM3NTYsIDIuNjc2OTgsIDMuMjcxMjQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzI3OTI5LCAwLjM4NDU2OCwgMC45MDQxMDYsIDEuNzg4MjQsIDIuNjY1OTUsIDQuNzE5MSwgNS44OTE5IiwgXAotICAgICAgICAgICIwLjMyNzgwNSwgMC4zODQ0MDYsIDAuOTA2OTE1LCAxLjc4ODM2LCAyLjY2OTc0LCA0LjcyMzI2LCA1Ljg5MzQiLCBcCi0gICAgICAgICAgIjAuMzI3ODcsIDAuMzg0MzMxLCAwLjkwNjkwOCwgMS43ODgzNywgMi42NjY1OCwgNC43MjE2OCwgNS44OTM4MSIsIFwKLSAgICAgICAgICAiMC4zMjc5MDQsIDAuMzg0NTQ4LCAwLjkwNDkzNSwgMS43ODgzMywgMi42NjYxMywgNC43MjMxNCwgNS44OTM3MiIsIFwKLSAgICAgICAgICAiMC4zMjc5MSwgMC4zODQ1NTMsIDAuOTA2MjM5LCAxLjc4ODMzLCAyLjY2NiwgNC43MjMwMiwgNS44OTQwOCIsIFwKLSAgICAgICAgICAiMC4zMjc4MTksIDAuMzg0NDcxLCAwLjkwNjU1MiwgMS43ODgzNiwgMi42NjczNCwgNC43MjMwNSwgNS44OTM3NCIsIFwKLSAgICAgICAgICAiMC4zMjc5MDksIDAuMzg0NTU1LCAwLjkwNDQwMiwgMS43ODgzNSwgMi42NjY3OCwgNC43MjMzNSwgNS44OTM3MyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zNTg5MSwgMC4zODQ3NTQsIDAuNjEzMDU2LCAwLjk5MjEwNiwgMS4zNzA4OSwgMi4yNTQ3OSwgMi43NTk0NiIsIFwKLSAgICAgICAgICAiMC4zNzA1ODQsIDAuMzk2NDM2LCAwLjYyNDc2NSwgMS4wMDM4NCwgMS4zODI1NywgMi4yNjY0NiwgMi43NzE1OCIsIFwKLSAgICAgICAgICAiMC4zODQ1MDYsIDAuNDEwMzU3LCAwLjYzODY2LCAxLjAxNzc2LCAxLjM5NjQ5LCAyLjI4MDQsIDIuNzg1NDkiLCBcCi0gICAgICAgICAgIjAuMzk4MjY3LCAwLjQyNDEzNywgMC42NTI0NjIsIDEuMDMxNTcsIDEuNDEwMjksIDIuMjk0MiwgMi43OTkyOSIsIFwKLSAgICAgICAgICAiMC40MTE5NiwgMC40Mzc4MTEsIDAuNjY2MTIzLCAxLjA0NTIzLCAxLjQyMzk1LCAyLjMwNzg3LCAyLjgxMjk2IiwgXAotICAgICAgICAgICIwLjQzNDAyOSwgMC40NTk5MDYsIDAuNjg4MTc1LCAxLjA2NzI1LCAxLjQ0NjAzLCAyLjMyOTc0LCAyLjgzNDkzIiwgXAotICAgICAgICAgICIwLjQ1MzMzLCAwLjQ3OTIxLCAwLjcwNzQ3NCwgMS4wODY1OSwgMS40NjUzMiwgMi4zNDkxNiwgMi44NTQyNiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yODg0NTQsIDAuMzM3NjEyLCAwLjc5MDYzMSwgMS41NTcwMSwgMi4zMjU2OCwgNC4xMjEzNCwgNS4xNDEyIiwgXAotICAgICAgICAgICIwLjI4ODQ3NywgMC4zMzc1OTgsIDAuNzg4NDYyLCAxLjU1NzAyLCAyLjMyNTAyLCA0LjEyMTI5LCA1LjEzMjk2IiwgXAotICAgICAgICAgICIwLjI4ODUyNSwgMC4zMzc2NCwgMC43ODkyMjksIDEuNTU3MDIsIDIuMzI0OTgsIDQuMTIxMjQsIDUuMTMzMDQiLCBcCi0gICAgICAgICAgIjAuMjg4NDQ4LCAwLjMzNzU2NywgMC43ODkwOTQsIDEuNTU3MDIsIDIuMzI0OTYsIDQuMTIxMjMsIDUuMTMzOTEiLCBcCi0gICAgICAgICAgIjAuMjg4NDUzLCAwLjMzNzU3MiwgMC43ODkxNjQsIDEuNTU3MDEsIDIuMzI0OTUsIDQuMTIxMjQsIDUuMTMzMDgiLCBcCi0gICAgICAgICAgIjAuMjg4NDg1LCAwLjMzNzU5NSwgMC43OTAxOTUsIDEuNTU0MjMsIDIuMzI0OTEsIDQuMTE5MDMsIDUuMTQwMjgiLCBcCi0gICAgICAgICAgIjAuMjg4NDkyLCAwLjMzNzU3NCwgMC43ODkzMTgsIDEuNTUzMzUsIDIuMzI1MjYsIDQuMTExMjYsIDUuMTQwMjUiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzYyODYzLCAwLjM5MzEyOSwgMC42NjEyOTIsIDEuMTA3MDYsIDEuNTUyNTksIDIuNTkyMSwgMy4xODYyOCIsIFwKLSAgICAgICAgICAiMC4zNzQyODgsIDAuNDA0NTMyLCAwLjY3Mjc3LCAxLjExODQ5LCAxLjU2NDA4LCAyLjYwMzU2LCAzLjE5NzM4IiwgXAotICAgICAgICAgICIwLjM4NzI5MiwgMC40MTc1NDMsIDAuNjg1NzcyLCAxLjEzMTQ5LCAxLjU3NzAyLCAyLjYxNjU3LCAzLjIxMDczIiwgXAotICAgICAgICAgICIwLjM5OTcsIDAuNDI5OTMzLCAwLjY5ODE4NCwgMS4xNDM5LCAxLjU4OTUzLCAyLjYyODk3LCAzLjIyMjc2IiwgXAotICAgICAgICAgICIwLjQxMjAxOCwgMC40NDIzMDMsIDAuNzEwNTEsIDEuMTU2MjIsIDEuNjAxOTksIDIuNjQxMTMsIDMuMjM1NTYiLCBcCi0gICAgICAgICAgIjAuNDMxNTI0LCAwLjQ2MTc4MywgMC43MzAwMjEsIDEuMTc1NzUsIDEuNjIxMzEsIDIuNjYwODMsIDMuMjU0NzMiLCBcCi0gICAgICAgICAgIjAuNDQ4NTI5LCAwLjQ3ODczMiwgMC43NDY5ODcsIDEuMTkyNzIsIDEuNjM4MjUsIDIuNjc3OCwgMy4yNzIwMiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMjc5NjMsIDAuMzg0NjA4LCAwLjkwNjI0MSwgMS43ODg0NiwgMi42NjY3MiwgNC43MjMzOCwgNS44OTQxNiIsIFwKLSAgICAgICAgICAiMC4zMjc4NjgsIDAuMzg0ODM2LCAwLjkwNjk1NiwgMS43ODgzMSwgMi42NzA2MiwgNC43MjMzMiwgNS44OTI5MiIsIFwKLSAgICAgICAgICAiMC4zMjc5MzEsIDAuMzg0NzMzLCAwLjkwNjk1NiwgMS43ODgzNywgMi42NzE4NywgNC43MjI4NSwgNS44OTQxOCIsIFwKLSAgICAgICAgICAiMC4zMjc5MjUsIDAuMzg0NzM3LCAwLjkwNjk2NCwgMS43ODg0MSwgMi42NzAxMywgNC43MjMzNSwgNS44OTM0MiIsIFwKLSAgICAgICAgICAiMC4zMjc4NjcsIDAuMzg0NTMsIDAuOTA2OTY3LCAxLjc4ODQyLCAyLjY2ODE1LCA0LjcyMzU2LCA1Ljg5MTQzIiwgXAotICAgICAgICAgICIwLjMyNzg4OSwgMC4zODQ3NjIsIDAuOTA2OTUsIDEuNzg4MjksIDIuNjcxMjMsIDQuNzIzMDgsIDUuODkxNjkiLCBcCi0gICAgICAgICAgIjAuMzI3OTUxLCAwLjM4NDg0MywgMC45MDY5NTQsIDEuNzg4MzEsIDIuNjcxNTYsIDQuNzIzMDUsIDUuODkxMzkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjM3MDM4LCAwLjI2MjQwMSwgMC40OTAwMzUsIDAuODY4OTQ0LCAxLjI0Nzc1LCAyLjEzMTQsIDIuNjM2MzMiLCBcCi0gICAgICAgICAgIjAuMjQ4NjA3LCAwLjI3Mzk2MSwgMC41MDE1OTgsIDAuODgwNTA2LCAxLjI1OTMsIDIuMTQyODksIDIuNjQ3OTQiLCBcCi0gICAgICAgICAgIjAuMjYyNDUxLCAwLjI4NzgwMiwgMC41MTU0NTQsIDAuODk0MzUsIDEuMjczMTMsIDIuMTU2NzcsIDIuNjYxNjgiLCBcCi0gICAgICAgICAgIjAuMjc2MTU2LCAwLjMwMTUxMywgMC41MjkxNTMsIDAuOTA4MDgyLCAxLjI4Njg0LCAyLjE3MDU0LCAyLjY3NTM3IiwgXAotICAgICAgICAgICIwLjI4OTkzOSwgMC4zMTUyOTEsIDAuNTQyOTUxLCAwLjkyMTg0MSwgMS4zMDA2MSwgMi4xODQyNywgMi42ODkxNyIsIFwKLSAgICAgICAgICAiMC4zMTE2MzQsIDAuMzM2OTc5LCAwLjU2NDY2MSwgMC45NDM1NTUsIDEuMzIyMzUsIDIuMjA1OTgsIDIuNzEwODkiLCBcCi0gICAgICAgICAgIjAuMzMwMjYyLCAwLjM1NTU5MywgMC41ODMyOTYsIDAuOTYyMTg4LCAxLjM0MDk3LCAyLjIyNDYxLCAyLjcyOTUzIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI3NTQzMywgMC4zMjUyMjIsIDAuNzg1NzIyLCAxLjU1Mjg5LCAyLjMxOTQ5LCA0LjExMzQ3LCA1LjEzOTk5IiwgXAotICAgICAgICAgICIwLjI3NTQzMywgMC4zMjU5OTksIDAuNzg1NjgxLCAxLjU1NDg5LCAyLjMxODk5LCA0LjExOTUxLCA1LjEzNDM0IiwgXAotICAgICAgICAgICIwLjI3NTM5MSwgMC4zMjU5NDUsIDAuNzg1NzAzLCAxLjU1MjU2LCAyLjMyMDkyLCA0LjExMzQ2LCA1LjEzNzQ3IiwgXAotICAgICAgICAgICIwLjI3NTQxNSwgMC4zMjU5NDYsIDAuNzg1NjQyLCAxLjU1MTUsIDIuMzIwNzMsIDQuMTE5OTMsIDUuMTM2MjIiLCBcCi0gICAgICAgICAgIjAuMjc1Mzk5LCAwLjMyNTI1OSwgMC43ODU3MDcsIDEuNTUyNTEsIDIuMzI0MiwgNC4xMTM2NywgNS4xMzc1MyIsIFwKLSAgICAgICAgICAiMC4yNzUzOTgsIDAuMzI1NTQ5LCAwLjc4NTcyMSwgMS41NTI0NSwgMi4zMjA4MywgNC4xMTM2NywgNS4xMzc3NCIsIFwKLSAgICAgICAgICAiMC4yNzU0MTksIDAuMzI1NDIxLCAwLjc4NTczMSwgMS41NTI0NCwgMi4zMjQyMSwgNC4xMTMwMywgNS4xMzc5MyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yNTE1NTcsIDAuMjgxMzM2LCAwLjU0ODk0MywgMC45OTQ1NTUsIDEuNDQwMDYsIDIuNDc5NTksIDMuMDczMzMiLCBcCi0gICAgICAgICAgIjAuMjYyODgxLCAwLjI5MjY3MiwgMC41NjAyODIsIDEuMDA1ODgsIDEuNDUxNDEsIDIuNDkwNzgsIDMuMDg0NjgiLCBcCi0gICAgICAgICAgIjAuMjc1Njk3LCAwLjMwNTQ3MiwgMC41NzMxMzMsIDEuMDE4NzEsIDEuNDY0MjEsIDIuNTAzNTksIDMuMDk3NTEiLCBcCi0gICAgICAgICAgIjAuMjg4MDMxLCAwLjMxNzgwNSwgMC41ODU0NTcsIDEuMDMxMDYsIDEuNDc2NjEsIDIuNTE1OTMsIDMuMTA5ODUiLCBcCi0gICAgICAgICAgIjAuMzAwMjI0LCAwLjMzMDAyLCAwLjU5NzY0NiwgMS4wNDMyNSwgMS40ODg3OCwgMi41MjgxNSwgMy4xMjIzMyIsIFwKLSAgICAgICAgICAiMC4zMTk0MjksIDAuMzQ5MjA5LCAwLjYxNjg4OCwgMS4wNjI0OCwgMS41MDc5OSwgMi41NDczNiwgMy4xNDEyNyIsIFwKLSAgICAgICAgICAiMC4zMzU4OTMsIDAuMzY1NzAxLCAwLjYzMzM0NCwgMS4wNzg5OCwgMS41MjQ0NywgMi41NjM4NSwgMy4xNTc3OCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMTQ2NzIsIDAuMzczMTcyLCAwLjkwMTI3NiwgMS43ODQ2OSwgMi42NjU0MywgNC43MjA0MiwgNS44OTI0NyIsIFwKLSAgICAgICAgICAiMC4zMTQ3MTEsIDAuMzczMTY1LCAwLjkwMTE2OCwgMS43ODQ4LCAyLjY2ODY5LCA0LjcyMzM3LCA1Ljg5MjA3IiwgXAotICAgICAgICAgICIwLjMxNDcwOCwgMC4zNzI0OTksIDAuOTAwODU4LCAxLjc4NDg3LCAyLjY2ODUyLCA0LjcyMzA2LCA1Ljg5MjA2IiwgXAotICAgICAgICAgICIwLjMxNDcwNSwgMC4zNzI5ODksIDAuODk5NTk0LCAxLjc4NDg4LCAyLjY2NzM1LCA0LjcyMzA3LCA1Ljg5MTg3IiwgXAotICAgICAgICAgICIwLjMxNDY3OCwgMC4zNzMxMzQsIDAuOTAxMTQ1LCAxLjc4MzMzLCAyLjY2ODU0LCA0LjcyMzM2LCA1Ljg5Mjc2IiwgXAotICAgICAgICAgICIwLjMxNDcwMywgMC4zNzI0NjIsIDAuOTAwNjkzLCAxLjc4NDkxLCAyLjY2ODU0LCA0LjcyMjM2LCA1Ljg5MTg5IiwgXAotICAgICAgICAgICIwLjMxNDY3OSwgMC4zNzMyNiwgMC45MDEwMTcsIDEuNzg0MjMsIDIuNjY2NzMsIDQuNzIyNjIsIDUuODkyNDkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUzAiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjM0NDg4OSwgMC4zNzA3NiwgMC41OTkwNzksIDAuOTc4MDQ2LCAxLjM1Njg3LCAyLjI0MDU1LCAyLjc0NTczIiwgXAotICAgICAgICAgICIwLjM1NTQ3OSwgMC4zODEzNjgsIDAuNjA5NjY3LCAwLjk4ODY0MywgMS4zNjc0OCwgMi4yNTEyMSwgMi43NTYzNiIsIFwKLSAgICAgICAgICAiMC4zNjkyNjksIDAuMzk1MTM5LCAwLjYyMzQxLCAxLjAwMjQ5LCAxLjM4MTMzLCAyLjI2NDkzLCAyLjc3MDA1IiwgXAotICAgICAgICAgICIwLjM4Mjc0NSwgMC40MDg2MDQsIDAuNjM2ODg1LCAxLjAxNTk3LCAxLjM5NDczLCAyLjI3ODQzLCAyLjc4MzM0IiwgXAotICAgICAgICAgICIwLjM5NjI5MiwgMC40MjIxNjcsIDAuNjUwNTEyLCAxLjAyOTYyLCAxLjQwODM1LCAyLjI5MjI1LCAyLjc5NzM2IiwgXAotICAgICAgICAgICIwLjQxODIwNiwgMC40NDQwNDcsIDAuNjcyMzM4LCAxLjA1MTQ1LCAxLjQzMDMyLCAyLjMxNDE5LCAyLjgxOTI0IiwgXAotICAgICAgICAgICIwLjQzNzM3LCAwLjQ2MzIzNSwgMC42OTE1NjMsIDEuMDcwNjksIDEuNDQ5NDEsIDIuMzMzMzQsIDIuODM4NDEiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjg4NDgzLCAwLjMzNzU5MywgMC43ODgzNTcsIDEuNTU0MTUsIDIuMzI1MjUsIDQuMTIwOSwgNS4xNDA5NSIsIFwKLSAgICAgICAgICAiMC4yODg0NjEsIDAuMzM3NTYxLCAwLjc4OTEyNCwgMS41NTM4NiwgMi4zMjUwMywgNC4xMTQ0NSwgNS4xNDA4NSIsIFwKLSAgICAgICAgICAiMC4yODg0ODYsIDAuMzM3NTksIDAuNzg4OTcxLCAxLjU1NjkzLCAyLjMyNTc4LCA0LjEyMDUxLCA1LjE0MDMxIiwgXAotICAgICAgICAgICIwLjI4ODQ4OCwgMC4zMzc1NDIsIDAuNzg4OTMzLCAxLjU1NjkzLCAyLjMyNTM0LCA0LjEyMDI2LCA1LjE0MDcyIiwgXAotICAgICAgICAgICIwLjI4ODQ5NiwgMC4zMzc2MDEsIDAuNzg5MTAyLCAxLjU1NzAxLCAyLjMyNDk0LCA0LjEyMTI2LCA1LjEzNjE4IiwgXAotICAgICAgICAgICIwLjI4ODQ4NSwgMC4zMzc2NCwgMC43ODkwMjQsIDEuNTU2OTIsIDIuMzI1NzcsIDQuMTIxMTcsIDUuMTQwNzYiLCBcCi0gICAgICAgICAgIjAuMjg4NTM1LCAwLjMzNzY0MywgMC43ODkwMzgsIDEuNTU3MDMsIDIuMzI0OTIsIDQuMTIxMjEsIDUuMTMzODUiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzQ5MDM4LCAwLjM3OTI5OCwgMC42NDc1MTMsIDEuMDkzMzUsIDEuNTM4NzEsIDIuNTc4MjcsIDMuMTcyNDQiLCBcCi0gICAgICAgICAgIjAuMzU5NDk3LCAwLjM4OTc2MSwgMC42NTc5MDcsIDEuMTAzNjQsIDEuNTQ5MTcsIDIuNTg4NzEsIDMuMTgyODMiLCBcCi0gICAgICAgICAgIjAuMzcyNTA0LCAwLjQwMjc2NywgMC42NzA5NzYsIDEuMTE2NjUsIDEuNTYyMiwgMi42MDE5MSwgMy4xOTU2NyIsIFwKLSAgICAgICAgICAiMC4zODU2NDcsIDAuNDE1OTExLCAwLjY4NDEyNSwgMS4xMjk4MywgMS41NzUzNSwgMi42MTUwNiwgMy4yMDg4MiIsIFwKLSAgICAgICAgICAiMC4zOTg3MjYsIDAuNDI4OTMxLCAwLjY5NzE1NywgMS4xNDI4NywgMS41ODg0MywgMi42Mjc5MywgMy4yMjE3OSIsIFwKLSAgICAgICAgICAiMC40MTk3NDcsIDAuNDUwMDIsIDAuNzE4MjA1LCAxLjE2Mzk0LCAxLjYwOTQ4LCAyLjY0ODk2LCAzLjI0MzE1IiwgXAotICAgICAgICAgICIwLjQzODIzLCAwLjQ2ODUxMiwgMC43MzY3MzEsIDEuMTgyNDUsIDEuNjI4MDMsIDIuNjY3MzksIDMuMjYxNzQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzI3OTEsIDAuMzg0NTUxLCAwLjkwMzQ1NCwgMS43ODMyNiwgMi42NjUwNywgNC43MjIwMSwgNS44OTE1NiIsIFwKLSAgICAgICAgICAiMC4zMjc4OTIsIDAuMzg0NTQxLCAwLjkwNTI1NywgMS43ODgzMywgMi42NjY0MywgNC43MjMyMiwgNS44OTQxIiwgXAotICAgICAgICAgICIwLjMyNzkyMiwgMC4zODQ1NjMsIDAuOTA0MzY0LCAxLjc4ODM1LCAyLjY2NTk1LCA0LjcxOTA4LCA1Ljg5MjE1IiwgXAotICAgICAgICAgICIwLjMyNzkzLCAwLjM4NDU3MSwgMC45MDQ0OSwgMS43ODgzNSwgMi42NjU5OSwgNC43MjAyNiwgNS44OTIzMSIsIFwKLSAgICAgICAgICAiMC4zMjc4NDMsIDAuMzg0ODIyLCAwLjkwNjkxLCAxLjc4ODMxLCAyLjY3MTE1LCA0LjcyMjk1LCA1Ljg5MjM2IiwgXAotICAgICAgICAgICIwLjMyNzg2NiwgMC4zODQ1MDMsIDAuOTAzOTE4LCAxLjc4ODM1LCAyLjY2NjYxLCA0LjcyMjg0LCA1Ljg5MzcyIiwgXAotICAgICAgICAgICIwLjMyNzg4NSwgMC4zODQ1NSwgMC45MDY5MjUsIDEuNzg4NCwgMi42Njk4LCA0LjcyMzQxLCA1Ljg5MDI0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlMwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zNzg3MjgsIDAuNDA0NTg0LCAwLjYzMjkxOCwgMS4wMTIwNCwgMS4zOTA3OCwgMi4yNzQ3MiwgMi43Nzk4MiIsIFwKLSAgICAgICAgICAiMC4zOTA2NTksIDAuNDE2NTI3LCAwLjY0NDg3NCwgMS4wMjQsIDEuNDAyNzMsIDIuMjg2NjcsIDIuNzkxNzgiLCBcCi0gICAgICAgICAgIjAuNDA1NTYyLCAwLjQzMTQyOCwgMC42NTk3NzUsIDEuMDM4OSwgMS40MTc2MywgMi4zMDE1OCwgMi44MDY2NyIsIFwKLSAgICAgICAgICAiMC40MTk5NzksIDAuNDQ1ODQ5LCAwLjY3NDE5MywgMS4wNTMzMiwgMS40MzIwNSwgMi4zMTYsIDIuODIxMDkiLCBcCi0gICAgICAgICAgIjAuNDMyOTA2LCAwLjQ1ODc2MSwgMC42ODcwOTYsIDEuMDY2MjIsIDEuNDQ0OTUsIDIuMzI4OSwgMi44MzQiLCBcCi0gICAgICAgICAgIjAuNDUxMzEyLCAwLjQ3NzE3OSwgMC43MDU1MTgsIDEuMDg0NjQsIDEuNDYzMzcsIDIuMzQ3MzMsIDIuODUyNDEiLCBcCi0gICAgICAgICAgIjAuNDY1OTksIDAuNDkxODcsIDAuNzIwMTY0LCAxLjA5OTI0LCAxLjQ3ODAyLCAyLjM2MTc1LCAyLjg2Njk4Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI4ODYwNCwgMC4zMzc3MTgsIDAuNzg5MjI5LCAxLjU1NzA5LCAyLjMyNSwgNC4xMjEyOSwgNS4xMzU3MiIsIFwKLSAgICAgICAgICAiMC4yODg1NjIsIDAuMzM3Njc0LCAwLjc4OTE5NywgMS41NTcwOCwgMi4zMjUwMSwgNC4xMjEzNCwgNS4xMzUzMiIsIFwKLSAgICAgICAgICAiMC4yODg1OTMsIDAuMzM3NzA4LCAwLjc4OTE4MiwgMS41NTcwOCwgMi4zMjUwOSwgNC4xMjEyOCwgNS4xMzU1IiwgXAotICAgICAgICAgICIwLjI4ODUyMSwgMC4zMzc2NDMsIDAuNzg5MTgzLCAxLjU1NzA2LCAyLjMyNDk4LCA0LjEyMTI3LCA1LjEzNTY2IiwgXAotICAgICAgICAgICIwLjI4ODU1NywgMC4zMzc2NzksIDAuNzg5MjQ5LCAxLjU1NzA3LCAyLjMyNDk3LCA0LjEyMTI5LCA1LjEzNTMxIiwgXAotICAgICAgICAgICIwLjI4ODUyNCwgMC4zMzc2NDYsIDAuNzg5MTE3LCAxLjU1NzA2LCAyLjMyNDk3LCA0LjEyMTI3LCA1LjEzNTM0IiwgXAotICAgICAgICAgICIwLjI4ODU1NSwgMC4zMzc2NjIsIDAuNzkwMjgyLCAxLjU1NDM5LCAyLjMyNTMsIDQuMTIwMDYsIDUuMTQwMjkiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzg1NzEzLCAwLjQxNTk4NiwgMC42ODQyMjIsIDEuMTMwMDYsIDEuNTc1NDgsIDIuNjE1MjIsIDMuMjA5MiIsIFwKLSAgICAgICAgICAiMC4zOTc4NjksIDAuNDI4MTUzLCAwLjY5NjM1NiwgMS4xNDIwNywgMS41ODc3LCAyLjYyNzAyLCAzLjIyMTM1IiwgXAotICAgICAgICAgICIwLjQxMzM1NSwgMC40NDM2MDksIDAuNzExODM2LCAxLjE1NzU1LCAxLjYwMzEsIDIuNjQyNzksIDMuMjM2NTgiLCBcCi0gICAgICAgICAgIjAuNDI4MzcxLCAwLjQ1ODY0NCwgMC43MjY4MjQsIDEuMTcyNTcsIDEuNjE4MTEsIDIuNjU3NjcsIDMuMjUxODEiLCBcCi0gICAgICAgICAgIjAuNDQyOTksIDAuNDczMjQ0LCAwLjc0MTQ2MSwgMS4xODcyLCAxLjYzMjczLCAyLjY3MjQ2LCAzLjI2NjE4IiwgXAotICAgICAgICAgICIwLjQ2NDQ4OSwgMC40OTQ3NTcsIDAuNzYyOTcyLCAxLjIwODcsIDEuNjU0MjQsIDIuNjkzOTgsIDMuMjg3NjciLCBcCi0gICAgICAgICAgIjAuNDgxMzEzLCAwLjUxMTU3OSwgMC43Nzk4MTQsIDEuMjI1NTMsIDEuNjcxMDcsIDIuNzEwOCwgMy4zMDQ1NiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMjc5NDUsIDAuMzg0NTc5LCAwLjkwNzExMywgMS43ODIwMSwgMi42NjU4NiwgNC43MTgzNiwgNS44OTE5NiIsIFwKLSAgICAgICAgICAiMC4zMjc5MjMsIDAuMzg0NTgzLCAwLjkwNzA2OSwgMS43ODg0MywgMi42NjM4OSwgNC43MjM1MiwgNS44OTIzNSIsIFwKLSAgICAgICAgICAiMC4zMjc5NzcsIDAuMzg0NjQ5LCAwLjkwNzAwOCwgMS43ODYyMiwgMi42NjYyOSwgNC43MjMwMywgNS44OTI3OCIsIFwKLSAgICAgICAgICAiMC4zMjc4OTgsIDAuMzg0NTM5LCAwLjkwNTIzMSwgMS43ODgzOSwgMi42NjYxNSwgNC43MjI4NywgNS44OTM3OCIsIFwKLSAgICAgICAgICAiMC4zMjgwMDYsIDAuMzg0NTgzLCAwLjkwNjk1OSwgMS43ODgxNCwgMi42NjY0OCwgNC43MTk0NiwgNS44OTI2NSIsIFwKLSAgICAgICAgICAiMC4zMjc4NzEsIDAuMzg0NTg1LCAwLjkwNjk0OCwgMS43ODgyNiwgMi42NjY1OSwgNC43MjE4NywgNS44OTI0MyIsIFwKLSAgICAgICAgICAiMC4zMjc5NTEsIDAuMzg0NTgsIDAuOTA0NDg0LCAxLjc4ODM4LCAyLjY2NjAxLCA0LjcxOTA4LCA1Ljg5MjU4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlMxIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMjMxMTMsIDAuMjQ4NDcsIDAuNDc2MTA1LCAwLjg1NTAxMiwgMS4yMzM4LCAyLjExNzQ0LCAyLjYyMjM2IiwgXAotICAgICAgICAgICIwLjIzMzY5NCwgMC4yNTkwNjMsIDAuNDg2NzIzLCAwLjg2NTY0NiwgMS4yNDQzOSwgMi4xMjgxOSwgMi42MzI5NCIsIFwKLSAgICAgICAgICAiMC4yNDcyMTIsIDAuMjcyNTU1LCAwLjUwMDI0OSwgMC44NzkxMTQsIDEuMjU3OTIsIDIuMTQxNTQsIDIuNjQ2NDYiLCBcCi0gICAgICAgICAgIjAuMjYwODA5LCAwLjI4NjE1MSwgMC41MTM4NTMsIDAuODkyNzI3LCAxLjI3MTUyLCAyLjE1NTE3LCAyLjY2MDExIiwgXAotICAgICAgICAgICIwLjI3NDU0MiwgMC4yOTk4OTEsIDAuNTI3NTYxLCAwLjkwNjQ2NSwgMS4yODUzMiwgMi4xNjg4OCwgMi42NzM4MSIsIFwKLSAgICAgICAgICAiMC4yOTY1MzcsIDAuMzIxOTE0LCAwLjU0OTYxOSwgMC45Mjg1MjIsIDEuMzA3MjksIDIuMTkwOTcsIDIuNjk1OTkiLCBcCi0gICAgICAgICAgIjAuMzE1NTI5LCAwLjM0MDkwMywgMC41Njg2MjEsIDAuOTQ3NTM3LCAxLjMyNjMsIDIuMjA5OTUsIDIuNzE1MTMiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjc1NTIsIDAuMzI2MTE0LCAwLjc4NDM3NiwgMS41NTIyOCwgMi4zMjA5LCA0LjExOTc0LCA1LjEzNjk4IiwgXAotICAgICAgICAgICIwLjI3NTU1MiwgMC4zMjYwOTUsIDAuNzgzOTk5LCAxLjU1NDgzLCAyLjMyMDksIDQuMTIwMTQsIDUuMTM2NDQiLCBcCi0gICAgICAgICAgIjAuMjc1NTUsIDAuMzI2MTksIDAuNzg1NjE3LCAxLjU1MjQ2LCAyLjMyMDksIDQuMTE5MDksIDUuMTM3MTUiLCBcCi0gICAgICAgICAgIjAuMjc1NTYxLCAwLjMyNTcwOSwgMC43ODU2MDYsIDEuNTUyMjgsIDIuMzIwNzMsIDQuMTEyNjcsIDUuMTM5NTIiLCBcCi0gICAgICAgICAgIjAuMjc1NTgxLCAwLjMyNjIzLCAwLjc4NTYxOSwgMS41NTIxOSwgMi4zMjQzLCA0LjExOTI4LCA1LjEzNjY2IiwgXAotICAgICAgICAgICIwLjI3NTY3NCwgMC4zMjYxNzYsIDAuNzg1NTc1LCAxLjU1MjM1LCAyLjMyMDYzLCA0LjExOTU4LCA1LjEzOTI2IiwgXAotICAgICAgICAgICIwLjI3NTgyMiwgMC4zMjYzMDQsIDAuNzg1NTY2LCAxLjU1NDg2LCAyLjMyMDU1LCA0LjExMjU0LCA1LjEzOTAyIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI2NzQ1MSwgMC4yOTc2MTgsIDAuNTY1NDU2LCAxLjAxMDg3LCAxLjQ1NjcyLCAyLjQ5NjU0LCAzLjA5MDQ1IiwgXAotICAgICAgICAgICIwLjI3NzU1MSwgMC4zMDc3MjYsIDAuNTc1NTU2LCAxLjAyMDk3LCAxLjQ2NjgsIDIuNTA2NzgsIDMuMTAwMzIiLCBcCi0gICAgICAgICAgIjAuMjkwMTI3LCAwLjMyMDMxMywgMC41ODgxMDcsIDEuMDMzNiwgMS40Nzk1NCwgMi41MTg2LCAzLjExMjg4IiwgXAotICAgICAgICAgICIwLjMwMjc1NCwgMC4zMzI5NDIsIDAuNjAwNzg1LCAxLjA0NjI2LCAxLjQ5MjAyLCAyLjUzMTkzLCAzLjEyNTUyIiwgXAotICAgICAgICAgICIwLjMxNTE5LCAwLjM0NTM3NiwgMC42MTMyNDMsIDEuMDU4NzMsIDEuNTA0NDksIDIuNTQ0MjYsIDMuMTM4MyIsIFwKLSAgICAgICAgICAiMC4zMzUxMTUsIDAuMzY1MjgzLCAwLjYzMzE2OSwgMS4wNzg2NywgMS41MjQ0NCwgMi41NjQxNywgMy4xNTgzNiIsIFwKLSAgICAgICAgICAiMC4zNTE3NzksIDAuMzgxOTQ4LCAwLjY0OTg1NCwgMS4wOTUzNiwgMS41NDE0NiwgMi41ODEyMiwgMy4xNzQ2MiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMjY5NDEsIDAuMzgzNjM1LCAwLjkwNjE5MywgMS43ODUwMiwgMi42NjYyNywgNC43MjI0MywgNS44OTE3MiIsIFwKLSAgICAgICAgICAiMC4zMjY5MTgsIDAuMzgzNjQ4LCAwLjkwNjIwMSwgMS43ODczMywgMi42NjM3NywgNC43MjIyNiwgNS44OTIxOSIsIFwKLSAgICAgICAgICAiMC4zMjY4ODgsIDAuMzgzNTkxLCAwLjkwNTkyNywgMS43ODczOSwgMi42Njc3NCwgNC43MjQwNCwgNS44OTIwMiIsIFwKLSAgICAgICAgICAiMC4zMjY3OTIsIDAuMzgzNTc1LCAwLjkwNjE2OCwgMS43ODc0LCAyLjY2MjY0LCA0LjcyMjE2LCA1Ljg5MTkyIiwgXAotICAgICAgICAgICIwLjMyNjkyNywgMC4zODM0NzIsIDAuOTA2MTMzLCAxLjc4NzM5LCAyLjY2MjYyLCA0LjcyMTU2LCA1Ljg5MjYxIiwgXAotICAgICAgICAgICIwLjMyNjU3NSwgMC4zODMyMjYsIDAuOTA2MDk1LCAxLjc4NzM4LCAyLjY2Mjg0LCA0LjcyMDgyLCA1Ljg5MjEzIiwgXAotICAgICAgICAgICIwLjMyNjMwMywgMC4zODMwOSwgMC45MDYwNzUsIDEuNzg3MzcsIDIuNjYzNiwgNC43MjIyOCwgNS44OTI4NCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTMSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjYyMDU3LCAwLjI4NzgzOCwgMC41MTU3MTQsIDAuODk0NDg3LCAxLjI3MzEyLCAyLjE1NzU2LCAyLjY2MjE2IiwgXAotICAgICAgICAgICIwLjI3NDM2MiwgMC4zMDAxMjcsIDAuNTI4MDQ5LCAwLjkwNjgzMiwgMS4yODYwMywgMi4xNjk0NywgMi42NzQ0MSIsIFwKLSAgICAgICAgICAiMC4yODk0NjcsIDAuMzE1MjQzLCAwLjU0MzE0NiwgMC45MjE5MTksIDEuMzAxMDEsIDIuMTg0OTMsIDIuNjg5ODIiLCBcCi0gICAgICAgICAgIjAuMzAzNzcsIDAuMzI5NTcyLCAwLjU1NzQ1NSwgMC45MzYzNDQsIDEuMzE1MjEsIDIuMTk4OCwgMi43MDM4NiIsIFwKLSAgICAgICAgICAiMC4zMTc2MDEsIDAuMzQzMzgsIDAuNTcxMjg2LCAwLjk1MDA2NCwgMS4zMjkxNiwgMi4yMTMxMSwgMi43MTc5MSIsIFwKLSAgICAgICAgICAiMC4zMzc5MDEsIDAuMzYzNjkzLCAwLjU5MTU4NywgMC45NzAzNywgMS4zNDkwNCwgMi4yMzMzOCwgMi43Mzc4MyIsIFwKLSAgICAgICAgICAiMC4zNTM0MzEsIDAuMzc5MjA3LCAwLjYwNzEwNCwgMC45ODU4NzcsIDEuMzY1MDYsIDIuMjQ5MDYsIDIuNzU0MDUiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjg3MjQ0LCAwLjMzNjQ1MywgMC43ODgxMjMsIDEuNTU1OTYsIDIuMzI0ODMsIDQuMTExMDEsIDUuMTMzNCIsIFwKLSAgICAgICAgICAiMC4yODcyNzcsIDAuMzM2MzQ5LCAwLjc4OTMxOCwgMS41NTI0MSwgMi4zMjAxMywgNC4xMTAxLCA1LjEzMzc5IiwgXAotICAgICAgICAgICIwLjI4NzI5NiwgMC4zMzY0NTMsIDAuNzg3NjQsIDEuNTU2MDQsIDIuMzE5MzksIDQuMTExMDYsIDUuMTM1NzciLCBcCi0gICAgICAgICAgIjAuMjg3MjY0LCAwLjMzNjM2NywgMC43ODc4NTYsIDEuNTUxNzEsIDIuMzIsIDQuMTE5ODksIDUuMTMzNjYiLCBcCi0gICAgICAgICAgIjAuMjg3MjI1LCAwLjMzNjM4OSwgMC43ODc2MzgsIDEuNTU2MDQsIDIuMzE5MzksIDQuMTExMDEsIDUuMTM1OTMiLCBcCi0gICAgICAgICAgIjAuMjg3MTA0LCAwLjMzNjM0NywgMC43ODgxMDksIDEuNTU1OTcsIDIuMzI0MTUsIDQuMTExMTUsIDUuMTMzOCIsIFwKLSAgICAgICAgICAiMC4yODcxMTYsIDAuMzM2MzIyLCAwLjc4OTUyNiwgMS41NTU5NywgMi4zMTk0NSwgNC4xMTExNywgNS4xMzQ4OSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yNzY4NTEsIDAuMzA2NjM5LCAwLjU3NDMsIDEuMDE5OTQsIDEuNDY1NDYsIDIuNTA0ODUsIDMuMDk4NyIsIFwKLSAgICAgICAgICAiMC4yODkwMjUsIDAuMzE4ODA2LCAwLjU4NjQ1OCwgMS4wMzIxLCAxLjQ3NzY0LCAyLjUxNywgMy4xMTA5MSIsIFwKLSAgICAgICAgICAiMC4zMDQ0MTEsIDAuMzM0MjE1LCAwLjYwMTg1NywgMS4wNDc0OCwgMS40OTMsIDIuNTMyMzgsIDMuMTI2MzUiLCBcCi0gICAgICAgICAgIjAuMzE5MjA2LCAwLjM0OTAwNSwgMC42MTY2NDcsIDEuMDYyMjcsIDEuNTA3OCwgMi41NDcxOCwgMy4xNDEwNiIsIFwKLSAgICAgICAgICAiMC4zMzQyODEsIDAuMzY0MDg2LCAwLjYzMTcyMywgMS4wNzczNCwgMS41MjI4NiwgMi41NjIyNSwgMy4xNTYxOSIsIFwKLSAgICAgICAgICAiMC4zNTYwNTUsIDAuMzg1ODM5LCAwLjY1MzU0MiwgMS4wOTkxMSwgMS41NDQ2NSwgMi41ODM5OSwgMy4xNzc5MiIsIFwKLSAgICAgICAgICAiMC4zNzMzNzgsIDAuNDAzMTYxLCAwLjY3MDgwMiwgMS4xMTY0MiwgMS41NjE5MywgMi42MDEzMSwgMy4xOTUyMiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMTQ3OCwgMC4zNzMwNzIsIDAuOTAxMzI2LCAxLjc4MjgxLCAyLjY2OTA5LCA0LjcyMzI4LCA1Ljg5MjgzIiwgXAotICAgICAgICAgICIwLjMxNDcyMiwgMC4zNzMwNywgMC44OTk4NjIsIDEuNzg0MjUsIDIuNjY1NjIsIDQuNzIzMTcsIDUuODkyMDMiLCBcCi0gICAgICAgICAgIjAuMzE0NzEyLCAwLjM3MzE2NCwgMC45MDEyMTEsIDEuNzg0ODEsIDIuNjY4NzEsIDQuNzIzMzMsIDUuODkyNTUiLCBcCi0gICAgICAgICAgIjAuMzE0NzEyLCAwLjM3MzE3MSwgMC45MDEyNTksIDEuNzg0OCwgMi42Njg4MSwgNC43MjMzOSwgNS44OTI0NiIsIFwKLSAgICAgICAgICAiMC4zMTQ2OTgsIDAuMzczMTQ3LCAwLjkwMDk5OSwgMS43ODQ4MSwgMi42Njg1OCwgNC43MjI3LCA1Ljg5MjUyIiwgXAotICAgICAgICAgICIwLjMxNDY0NywgMC4zNzMxNzIsIDAuOTAwNzMyLCAxLjc4MzI3LCAyLjY2Nzc5LCA0LjcyMjA3LCA1Ljg5MTk1IiwgXAotICAgICAgICAgICIwLjMxNDY0MywgMC4zNzMxNjMsIDAuOTAxMjgyLCAxLjc4MjI4LCAyLjY2NTE3LCA0LjcyMjM3LCA1Ljg5MjMzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxNzc4LCAwLjAwMTc4LCAwLjAwMTc4NSwgMC4wMDE3ODgsIDAuMDAxNzg5LCAwLjAwMTc5LCAwLjAwMTc5IiwgXAotICAgICAgICAgICIwLjAwMTc2OCwgMC4wMDE3NywgMC4wMDE3NzYsIDAuMDAxNzc4LCAwLjAwMTc3OSwgMC4wMDE3OCwgMC4wMDE3OCIsIFwKLSAgICAgICAgICAiMC4wMDE3NjQsIDAuMDAxNzY1LCAwLjAwMTc3MSwgMC4wMDE3NzMsIDAuMDAxNzc0LCAwLjAwMTc3NSwgMC4wMDE3NzUiLCBcCi0gICAgICAgICAgIjAuMDAxNzYsIDAuMDAxNzYyLCAwLjAwMTc2OCwgMC4wMDE3NywgMC4wMDE3NzEsIDAuMDAxNzcyLCAwLjAwMTc3MiIsIFwKLSAgICAgICAgICAiMC4wMDE3NTgsIDAuMDAxNzU5LCAwLjAwMTc2NSwgMC4wMDE3NjgsIDAuMDAxNzY5LCAwLjAwMTc2OSwgMC4wMDE3NyIsIFwKLSAgICAgICAgICAiMC4wMDE3NTQsIDAuMDAxNzU2LCAwLjAwMTc2MiwgMC4wMDE3NjQsIDAuMDAxNzY1LCAwLjAwMTc2NiwgMC4wMDE3NjYiLCBcCi0gICAgICAgICAgIjAuMDAxNzUyLCAwLjAwMTc1MywgMC4wMDE3NiwgMC4wMDE3NjIsIDAuMDAxNzYzLCAwLjAwMTc2NCwgMC4wMDE3NjQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDMyNDYsIDAuMDAzMjQ4LCAwLjAwMzI1NiwgMC4wMDMyNTksIDAuMDAzMjYxLCAwLjAwMzI2MSwgMC4wMDMyNjIiLCBcCi0gICAgICAgICAgIjAuMDAzMjQxLCAwLjAwMzI0MywgMC4wMDMyNTEsIDAuMDAzMjU1LCAwLjAwMzI1NiwgMC4wMDMyNTcsIDAuMDAzMjU3IiwgXAotICAgICAgICAgICIwLjAwMzIzOSwgMC4wMDMyNDEsIDAuMDAzMjQ5LCAwLjAwMzI1MiwgMC4wMDMyNTQsIDAuMDAzMjU1LCAwLjAwMzI1NSIsIFwKLSAgICAgICAgICAiMC4wMDMyMzcsIDAuMDAzMjM5LCAwLjAwMzI0NywgMC4wMDMyNSwgMC4wMDMyNTIsIDAuMDAzMjUzLCAwLjAwMzI1MyIsIFwKLSAgICAgICAgICAiMC4wMDMyMzUsIDAuMDAzMjM4LCAwLjAwMzI0NiwgMC4wMDMyNDksIDAuMDAzMjUsIDAuMDAzMjUyLCAwLjAwMzI1MiIsIFwKLSAgICAgICAgICAiMC4wMDMyMzMsIDAuMDAzMjM1LCAwLjAwMzI0NCwgMC4wMDMyNDcsIDAuMDAzMjQ5LCAwLjAwMzI1LCAwLjAwMzI1IiwgXAotICAgICAgICAgICIwLjAwMzIzMiwgMC4wMDMyMzQsIDAuMDAzMjQyLCAwLjAwMzI0NiwgMC4wMDMyNDgsIDAuMDAzMjQ5LCAwLjAwMzI0OSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTY0NSwgMC4wMDE2NDYsIDAuMDAxNjUyLCAwLjAwMTY1NSwgMC4wMDE2NTYsIDAuMDAxNjU2LCAwLjAwMTY1NiIsIFwKLSAgICAgICAgICAiMC4wMDE2MzUsIDAuMDAxNjM3LCAwLjAwMTY0MiwgMC4wMDE2NDUsIDAuMDAxNjQ2LCAwLjAwMTY0NywgMC4wMDE2NDYiLCBcCi0gICAgICAgICAgIjAuMDAxNjMsIDAuMDAxNjMyLCAwLjAwMTYzOCwgMC4wMDE2NCwgMC4wMDE2NDEsIDAuMDAxNjQyLCAwLjAwMTY0MiIsIFwKLSAgICAgICAgICAiMC4wMDE2MjcsIDAuMDAxNjI5LCAwLjAwMTYzNCwgMC4wMDE2MzcsIDAuMDAxNjM4LCAwLjAwMTYzOCwgMC4wMDE2MzkiLCBcCi0gICAgICAgICAgIjAuMDAxNjI0LCAwLjAwMTYyNiwgMC4wMDE2MzIsIDAuMDAxNjM0LCAwLjAwMTYzNSwgMC4wMDE2MzYsIDAuMDAxNjM2IiwgXAotICAgICAgICAgICIwLjAwMTYyMSwgMC4wMDE2MjMsIDAuMDAxNjI5LCAwLjAwMTYzMSwgMC4wMDE2MzIsIDAuMDAxNjMzLCAwLjAwMTYzMyIsIFwKLSAgICAgICAgICAiMC4wMDE2MTgsIDAuMDAxNjIsIDAuMDAxNjI2LCAwLjAwMTYyOSwgMC4wMDE2MywgMC4wMDE2MzEsIDAuMDAxNjMxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzMzc0LCAwLjAwMzM3NiwgMC4wMDMzODQsIDAuMDAzMzg4LCAwLjAwMzM4OSwgMC4wMDMzOSwgMC4wMDMzOSIsIFwKLSAgICAgICAgICAiMC4wMDMzNjksIDAuMDAzMzcyLCAwLjAwMzM3OSwgMC4wMDMzODMsIDAuMDAzMzg0LCAwLjAwMzM4NSwgMC4wMDMzODUiLCBcCi0gICAgICAgICAgIjAuMDAzMzY3LCAwLjAwMzM2OSwgMC4wMDMzNzcsIDAuMDAzMzgxLCAwLjAwMzM4MiwgMC4wMDMzODMsIDAuMDAzMzgzIiwgXAotICAgICAgICAgICIwLjAwMzM2NSwgMC4wMDMzNjcsIDAuMDAzMzc2LCAwLjAwMzM3OSwgMC4wMDMzOCwgMC4wMDMzODEsIDAuMDAzMzgxIiwgXAotICAgICAgICAgICIwLjAwMzM2NCwgMC4wMDMzNjYsIDAuMDAzMzc0LCAwLjAwMzM3NywgMC4wMDMzNzgsIDAuMDAzMzgsIDAuMDAzMzgiLCBcCi0gICAgICAgICAgIjAuMDAzMzYxLCAwLjAwMzM2MywgMC4wMDMzNzIsIDAuMDAzMzc1LCAwLjAwMzM3NywgMC4wMDMzNzgsIDAuMDAzMzc4IiwgXAotICAgICAgICAgICIwLjAwMzM2LCAwLjAwMzM2MiwgMC4wMDMzNzEsIDAuMDAzMzc0LCAwLjAwMzM3NiwgMC4wMDMzNzcsIDAuMDAzMzc3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxMDM2LCAwLjAwMTAzNiwgMC4wMDEwMzcsIDAuMDAxMDM4LCAwLjAwMTAzOCwgMC4wMDEwMzgsIDAuMDAxMDM4IiwgXAotICAgICAgICAgICIwLjAwMTAyNSwgMC4wMDEwMjUsIDAuMDAxMDI2LCAwLjAwMTAyNywgMC4wMDEwMjgsIDAuMDAxMDI4LCAwLjAwMTAyNyIsIFwKLSAgICAgICAgICAiMC4wMDEwMTgsIDAuMDAxMDE4LCAwLjAwMTAyLCAwLjAwMTAyLCAwLjAwMTAyMSwgMC4wMDEwMiwgMC4wMDEwMiIsIFwKLSAgICAgICAgICAiMC4wMDEwMTQsIDAuMDAxMDE0LCAwLjAwMTAxNiwgMC4wMDEwMTYsIDAuMDAxMDE2LCAwLjAwMTAxNywgMC4wMDEwMTciLCBcCi0gICAgICAgICAgIjAuMDAxMDExLCAwLjAwMTAxMSwgMC4wMDEwMTMsIDAuMDAxMDEzLCAwLjAwMTAxNCwgMC4wMDEwMTQsIDAuMDAxMDE0IiwgXAotICAgICAgICAgICIwLjAwMTAwNywgMC4wMDEwMDcsIDAuMDAxMDEsIDAuMDAxMDEsIDAuMDAxMDEsIDAuMDAxMDEsIDAuMDAxMDExIiwgXAotICAgICAgICAgICIwLjAwMTAwNCwgMC4wMDEwMDUsIDAuMDAxMDA4LCAwLjAwMTAwOCwgMC4wMDEwMDksIDAuMDAxMDA5LCAwLjAwMTAwOSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTk4LCAwLjAwMTk4MSwgMC4wMDE5ODMsIDAuMDAxOTg0LCAwLjAwMTk4NCwgMC4wMDE5ODQsIDAuMDAxOTg0IiwgXAotICAgICAgICAgICIwLjAwMTk3NSwgMC4wMDE5NzUsIDAuMDAxOTc4LCAwLjAwMTk3OCwgMC4wMDE5NzksIDAuMDAxOTc5LCAwLjAwMTk3OSIsIFwKLSAgICAgICAgICAiMC4wMDE5NzIsIDAuMDAxOTcyLCAwLjAwMTk3NSwgMC4wMDE5NzUsIDAuMDAxOTc2LCAwLjAwMTk3NiwgMC4wMDE5NzYiLCBcCi0gICAgICAgICAgIjAuMDAxOTY5LCAwLjAwMTk3LCAwLjAwMTk3MiwgMC4wMDE5NzMsIDAuMDAxOTczLCAwLjAwMTk3NCwgMC4wMDE5NzQiLCBcCi0gICAgICAgICAgIjAuMDAxOTY3LCAwLjAwMTk2OCwgMC4wMDE5NzEsIDAuMDAxOTcyLCAwLjAwMTk3MiwgMC4wMDE5NzIsIDAuMDAxOTcyIiwgXAotICAgICAgICAgICIwLjAwMTk2NSwgMC4wMDE5NjYsIDAuMDAxOTY5LCAwLjAwMTk3LCAwLjAwMTk3MSwgMC4wMDE5NzEsIDAuMDAxOTcxIiwgXAotICAgICAgICAgICIwLjAwMTk2NCwgMC4wMDE5NjUsIDAuMDAxOTY5LCAwLjAwMTk3LCAwLjAwMTk3LCAwLjAwMTk3MSwgMC4wMDE5NzEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTMCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzMjU1LCAwLjAwMzI1NiwgMC4wMDMyNjIsIDAuMDAzMjY1LCAwLjAwMzI2NiwgMC4wMDMyNjcsIDAuMDAzMjY3IiwgXAotICAgICAgICAgICIwLjAwMzI1MSwgMC4wMDMyNTIsIDAuMDAzMjU4LCAwLjAwMzI2MSwgMC4wMDMyNjEsIDAuMDAzMjYyLCAwLjAwMzI2MiIsIFwKLSAgICAgICAgICAiMC4wMDMyNDgsIDAuMDAzMjUsIDAuMDAzMjU1LCAwLjAwMzI1OCwgMC4wMDMyNTksIDAuMDAzMjYsIDAuMDAzMjYiLCBcCi0gICAgICAgICAgIjAuMDAzMjQ2LCAwLjAwMzI0OCwgMC4wMDMyNTQsIDAuMDAzMjU2LCAwLjAwMzI1NywgMC4wMDMyNTgsIDAuMDAzMjU4IiwgXAotICAgICAgICAgICIwLjAwMzI0NiwgMC4wMDMyNDcsIDAuMDAzMjUzLCAwLjAwMzI1NSwgMC4wMDMyNTcsIDAuMDAzMjU3LCAwLjAwMzI1NyIsIFwKLSAgICAgICAgICAiMC4wMDMyNDQsIDAuMDAzMjQ2LCAwLjAwMzI1MiwgMC4wMDMyNTUsIDAuMDAzMjU1LCAwLjAwMzI1NiwgMC4wMDMyNTciLCBcCi0gICAgICAgICAgIjAuMDAzMjQ0LCAwLjAwMzI0NiwgMC4wMDMyNTIsIDAuMDAzMjU1LCAwLjAwMzI1NSwgMC4wMDMyNTYsIDAuMDAzMjU2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzMTQ2LCAwLjAwMzE0OCwgMC4wMDMxNTYsIDAuMDAzMTYsIDAuMDAzMTYxLCAwLjAwMzE2MiwgMC4wMDMxNjIiLCBcCi0gICAgICAgICAgIjAuMDAzMTM2LCAwLjAwMzEzOCwgMC4wMDMxNDYsIDAuMDAzMTQ5LCAwLjAwMzE1MSwgMC4wMDMxNTIsIDAuMDAzMTUyIiwgXAotICAgICAgICAgICIwLjAwMzEzLCAwLjAwMzEzMiwgMC4wMDMxNCwgMC4wMDMxNDQsIDAuMDAzMTQ1LCAwLjAwMzE0NiwgMC4wMDMxNDYiLCBcCi0gICAgICAgICAgIjAuMDAzMTI2LCAwLjAwMzEyOSwgMC4wMDMxMzcsIDAuMDAzMTQsIDAuMDAzMTQxLCAwLjAwMzE0MiwgMC4wMDMxNDMiLCBcCi0gICAgICAgICAgIjAuMDAzMTI1LCAwLjAwMzEyNywgMC4wMDMxMzUsIDAuMDAzMTM5LCAwLjAwMzE0LCAwLjAwMzE0MSwgMC4wMDMxNDEiLCBcCi0gICAgICAgICAgIjAuMDAzMTI1LCAwLjAwMzEyOCwgMC4wMDMxMzYsIDAuMDAzMTM5LCAwLjAwMzE0LCAwLjAwMzE0MSwgMC4wMDMxNDIiLCBcCi0gICAgICAgICAgIjAuMDAzMTI2LCAwLjAwMzEyOCwgMC4wMDMxMzYsIDAuMDAzMTQsIDAuMDAzMTQxLCAwLjAwMzE0MiwgMC4wMDMxNDMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTMSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyNjA5LCAwLjAwMjYxLCAwLjAwMjYxMywgMC4wMDI2MTQsIDAuMDAyNjE1LCAwLjAwMjYxNSwgMC4wMDI2MTUiLCBcCi0gICAgICAgICAgIjAuMDAyNjIxLCAwLjAwMjYyMiwgMC4wMDI2MjYsIDAuMDAyNjI3LCAwLjAwMjYyNywgMC4wMDI2MjgsIDAuMDAyNjI4IiwgXAotICAgICAgICAgICIwLjAwMjY0NSwgMC4wMDI2NDcsIDAuMDAyNjUsIDAuMDAyNjUyLCAwLjAwMjY1MiwgMC4wMDI2NTMsIDAuMDAyNjUzIiwgXAotICAgICAgICAgICIwLjAwMjY2LCAwLjAwMjY2MSwgMC4wMDI2NjQsIDAuMDAyNjY2LCAwLjAwMjY2NywgMC4wMDI2NjgsIDAuMDAyNjY3IiwgXAotICAgICAgICAgICIwLjAwMjY3OSwgMC4wMDI2OCwgMC4wMDI2ODQsIDAuMDAyNjg2LCAwLjAwMjY4NiwgMC4wMDI2ODcsIDAuMDAyNjg3IiwgXAotICAgICAgICAgICIwLjAwMjcwMywgMC4wMDI3MDQsIDAuMDAyNzA5LCAwLjAwMjcxMSwgMC4wMDI3MTEsIDAuMDAyNzEyLCAwLjAwMjcxMiIsIFwKLSAgICAgICAgICAiMC4wMDI3MjEsIDAuMDAyNzIyLCAwLjAwMjcyNywgMC4wMDI3MjksIDAuMDAyNzI5LCAwLjAwMjczLCAwLjAwMjczIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxNzc5LCAwLjAwMTc4LCAwLjAwMTc4MywgMC4wMDE3ODUsIDAuMDAxNzg1LCAwLjAwMTc4NiwgMC4wMDE3ODYiLCBcCi0gICAgICAgICAgIjAuMDAxNzY4LCAwLjAwMTc2OSwgMC4wMDE3NzMsIDAuMDAxNzc0LCAwLjAwMTc3NSwgMC4wMDE3NzUsIDAuMDAxNzc1IiwgXAotICAgICAgICAgICIwLjAwMTc2MiwgMC4wMDE3NjMsIDAuMDAxNzY2LCAwLjAwMTc2OCwgMC4wMDE3NjgsIDAuMDAxNzY5LCAwLjAwMTc2OSIsIFwKLSAgICAgICAgICAiMC4wMDE3NTgsIDAuMDAxNzU5LCAwLjAwMTc2MiwgMC4wMDE3NjQsIDAuMDAxNzY0LCAwLjAwMTc2NSwgMC4wMDE3NjUiLCBcCi0gICAgICAgICAgIjAuMDAxNzU2LCAwLjAwMTc1NywgMC4wMDE3NjEsIDAuMDAxNzYyLCAwLjAwMTc2MywgMC4wMDE3NjMsIDAuMDAxNzY0IiwgXAotICAgICAgICAgICIwLjAwMTc1NiwgMC4wMDE3NTcsIDAuMDAxNzYxLCAwLjAwMTc2MiwgMC4wMDE3NjMsIDAuMDAxNzYzLCAwLjAwMTc2MyIsIFwKLSAgICAgICAgICAiMC4wMDE3NTcsIDAuMDAxNzU4LCAwLjAwMTc2MSwgMC4wMDE3NjMsIDAuMDAxNzYzLCAwLjAwMTc2NCwgMC4wMDE3NjQiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBOQU5EMlgyICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKE5BTkQyWDIpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4xMzIwODc7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTY3NDc0OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTY3NDc0OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTY3MDM5OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDYxMiwgMC4wMDA2MTIsIDAuMDAwNjEyLCAwLjAwMDYxMSwgMC4wMDA2MTEsIDAuMDAwNjExLCAwLjAwMDYxMSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDYzNSwgMC4wMDA2MTksIDAuMDAwNjE3LCAwLjAwMDYxNiwgMC4wMDA2MTYsIDAuMDAwNjE2LCAwLjAwMDYxNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNTQ4ODg7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNTQ3NDk7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNTQ4ODg7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzI5LCAwLjAwMDMyOSwgMC4wMDAzMjgsIDAuMDAwMzI4LCAwLjAwMDMyOCwgMC4wMDAzMjgsIDAuMDAwMzI4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNjk1LCAwLjAwMDY5NSwgMC4wMDA2OTUsIDAuMDAwNjk2LCAwLjAwMDY5NiwgMC4wMDA2OTYsIDAuMDAwNjk2Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMTE3NDAxOwotICAgIGZ1bmN0aW9uIDogIighKEEgQikpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDk5NTEsIDAuMjI5MTI0LCAwLjM3MjM1NSwgMC41NTEzMDUsIDAuNzMwMDgyLCAwLjkwOTIwNSwgMS4wODgwNCIsIFwKLSAgICAgICAgICAiMC4wNjE0ODUsIDAuMjQwNzI5LCAwLjM4MzkzOCwgMC41NjMwMDQsIDAuNzQxNjY3LCAwLjkyMDc1LCAxLjA5OTc2IiwgXAotICAgICAgICAgICIwLjA3NjM1OCwgMC4yNTUxMjUsIDAuMzk3NjIyLCAwLjU3NDU0LCAwLjc1MzU1NSwgMC45MzI3MjMsIDEuMTExNDMiLCBcCi0gICAgICAgICAgIjAuMDkxMTI5LCAwLjI2OTY2NSwgMC40MTI3ODcsIDAuNTkxNjIzLCAwLjc2NjY2MSwgMC45NDU5MTksIDEuMTI0NzUiLCBcCi0gICAgICAgICAgIjAuMTA1OTUxLCAwLjI4NDMwNCwgMC40MjczMTcsIDAuNjA2Mjg0LCAwLjc4NTM2MywgMC45NTkzMDIsIDEuMTM4MzQiLCBcCi0gICAgICAgICAgIjAuMTI5NDM4LCAwLjMwNzk3OCwgMC40NTA1ODcsIDAuNjI5NDEyLCAwLjgwODI5LCAwLjk4MjEyOCwgMS4xNjEiLCBcCi0gICAgICAgICAgIjAuMTQ3OTE2LCAwLjMyODc0LCAwLjQ3MTM2NywgMC42NDk4NTgsIDAuODI4ODM4LCAxLjAwMjQ5LCAxLjE4MTI2Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5MDU0NiwgMC40NTM2OSwgMC43NDQ0MDMsIDEuMTA3NTMsIDEuNDcxMTEsIDEuODMzOTQsIDIuMTk2OTYiLCBcCi0gICAgICAgICAgIjAuMDkwNTIyLCAwLjQ1NDEzNiwgMC43NDQ3ODksIDEuMTA3NTksIDEuNDcxMSwgMS44MzM4MywgMi4xOTcyOCIsIFwKLSAgICAgICAgICAiMC4wOTMwNTgsIDAuNDUzNzMxLCAwLjc0NDM3LCAxLjEwNzkzLCAxLjQ3MTE5LCAxLjgzNCwgMi4xOTcwMSIsIFwKLSAgICAgICAgICAiMC4wOTgyOCwgMC40NTM3MSwgMC43NDQ3NDcsIDEuMTA3MzYsIDEuNDcwMzEsIDEuODM0LCAyLjE5Njc1IiwgXAotICAgICAgICAgICIwLjEwNTA5NiwgMC40NTM4NjgsIDAuNzQ0MzI1LCAxLjEwNzU4LCAxLjQ3MDk3LCAxLjgzMzk4LCAyLjE5NzIxIiwgXAotICAgICAgICAgICIwLjExNzE0OSwgMC40NTUxNjUsIDAuNzQ0MjU3LCAxLjEwNzIyLCAxLjQ3MTExLCAxLjgzMzQxLCAyLjE5NjUyIiwgXAotICAgICAgICAgICIwLjEyOTI4NywgMC40NTg3MzcsIDAuNzQ0MTgyLCAxLjEwNzg5LCAxLjQ3MDgyLCAxLjgzNDQ1LCAyLjE5Njg4Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExMDM3NywgMC41MTgwMjQsIDAuODQzNzY1LCAxLjI1MTE2LCAxLjY1ODMxLCAyLjA2NTM2LCAyLjQ3Mjc4IiwgXAotICAgICAgICAgICIwLjEyMTcyNCwgMC41Mjk1LCAwLjg1NTg3NSwgMS4yNjM5NCwgMS42NzA0OCwgMi4wNzg0NiwgMi40ODY1NCIsIFwKLSAgICAgICAgICAiMC4xMzUxMjgsIDAuNTQzMzIxLCAwLjg2OTQ1MywgMS4yNzc1NCwgMS42ODQyLCAyLjA5MzM5LCAyLjUwMDE4IiwgXAotICAgICAgICAgICIwLjE0ODQwNiwgMC41NTY3MzYsIDAuODgyODg1LCAxLjI5MDYzLCAxLjY5OTI4LCAyLjEwNTg5LCAyLjUxMjk2IiwgXAotICAgICAgICAgICIwLjE2MTcwOSwgMC41NzAyMjIsIDAuODk3MDIyLCAxLjMwNDQxLCAxLjcxMTM0LCAyLjExOTkyLCAyLjUyNzExIiwgXAotICAgICAgICAgICIwLjE4MzAwNiwgMC41OTE4MTksIDAuOTE4MDM4LCAxLjMyNTY1LCAxLjczMzExLCAyLjE0MTk1LCAyLjU0ODM2IiwgXAotICAgICAgICAgICIwLjIwMTg5NywgMC42MTA5MzYsIDAuOTM3MjE0LCAxLjM0NDQ0LCAxLjc1MjIzLCAyLjE1OTY4LCAyLjU2NzU2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE4OTk1NSwgMC45NzQ2NjgsIDEuNTk5NSwgMi4zODI4NSwgMy4xNjUwOCwgMy45NDY5OSwgNC43MTQ2MiIsIFwKLSAgICAgICAgICAiMC4xODk4MjQsIDAuOTczMTIzLCAxLjU5MzU4LCAyLjM3NjQsIDMuMTYyMjQsIDMuOTM5NDQsIDQuNzEzNzIiLCBcCi0gICAgICAgICAgIjAuMTg5OTgxLCAwLjk3NDc4MSwgMS42MDI3MywgMi4zNzYyNiwgMy4xNjYyMywgMy45Mzc3MywgNC43MTQyIiwgXAotICAgICAgICAgICIwLjE5MDM0LCAwLjk3Mzk1MywgMS41OTk4MiwgMi4zODczMSwgMy4xNTQ4MywgMy45NDk3LCA0LjcyMzE3IiwgXAotICAgICAgICAgICIwLjE5MjE0MiwgMC45NzQ0NDYsIDEuNTk0OTUsIDIuMzc5ODEsIDMuMTY3ODcsIDMuOTM1ODUsIDQuNzE0NDIiLCBcCi0gICAgICAgICAgIjAuMTk2NjUyLCAwLjk3MjkyNiwgMS42MDA5NSwgMi4zODMwMSwgMy4xNjY5NCwgMy45Mzg5NSwgNC43MjMyMiIsIFwKLSAgICAgICAgICAiMC4yMDI1OTIsIDAuOTY5MzY4LCAxLjU5MzU1LCAyLjM4Mjg5LCAzLjE2NTk3LCAzLjk0OTIsIDQuNzE5MzIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQ4NjcsIDAuMjMxNDIyLCAwLjM3NzYxNSwgMC41NjAzNDQsIDAuNzQzNDgsIDAuOTI1OTM0LCAxLjEwODUyIiwgXAotICAgICAgICAgICIwLjA2MDA2MiwgMC4yNDMwNDEsIDAuMzg5MjYzLCAwLjU3MTQ0LCAwLjc1NDU4NCwgMC45MzY5OSwgMS4xMjAwMyIsIFwKLSAgICAgICAgICAiMC4wNzUxMDIsIDAuMjU3NjM1LCAwLjQwMzgwNiwgMC41ODY2OTQsIDAuNzY5NDA3LCAwLjk1MjE4MiwgMS4xMzQ1NyIsIFwKLSAgICAgICAgICAiMC4wODk3NDQsIDAuMjcxOTAxLCAwLjQxODAzNSwgMC42MDAyNTEsIDAuNzc5NTcxLCAwLjk2MjY5OSwgMS4xNDUwNSIsIFwKLSAgICAgICAgICAiMC4xMDQ2NzMsIDAuMjg2NTI4LCAwLjQzMjU4NCwgMC42MTUyMTIsIDAuNzk3Mzk4LCAwLjk3NTUxMywgMS4xNTgyNiIsIFwKLSAgICAgICAgICAiMC4xMjc1MywgMC4zMTAxNDQsIDAuNDU1ODk0LCAwLjYzODQ3NywgMC44MjEyMSwgMC45OTkwMzIsIDEuMTgxNjciLCBcCi0gICAgICAgICAgIjAuMTQ1ODA5LCAwLjMzMDc4NSwgMC40NzYyMjEsIDAuNjU4ODQyLCAwLjg0MTc5OCwgMS4wMTg3MiwgMS4yMDEyNyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODk2OTMsIDAuNDYwOTUsIDAuNzU3ODk1LCAxLjEyODIzLCAxLjQ5OTQyLCAxLjg2OTg1LCAyLjI0MTA3IiwgXAotICAgICAgICAgICIwLjA4OTc3LCAwLjQ2MTY1NywgMC43NTg4NTEsIDEuMTI3NTgsIDEuNDk5NjgsIDEuODcsIDIuMjQwNTUiLCBcCi0gICAgICAgICAgIjAuMDkyNTc1LCAwLjQ2MDM3OSwgMC43NTcwMjQsIDEuMTI4MTMsIDEuNTAwNCwgMS44Njk4NywgMi4yNDU4NiIsIFwKLSAgICAgICAgICAiMC4wOTgwMjIsIDAuNDYxNjA3LCAwLjc1OTAxOCwgMS4xMjc4OCwgMS41MDI1NywgMS44Njk2NywgMi4yMzk2IiwgXAotICAgICAgICAgICIwLjEwNDUyNywgMC40NjA2NzYsIDAuNzU3ODkyLCAxLjEyNzkxLCAxLjQ5OTY2LCAxLjg3NDI1LCAyLjI0NTk2IiwgXAotICAgICAgICAgICIwLjExNzE3LCAwLjQ2MTk1NywgMC43NTcyNzIsIDEuMTI4MjUsIDEuNDk5MDYsIDEuODcwNzIsIDIuMjQwNDciLCBcCi0gICAgICAgICAgIjAuMTI5ODI1LCAwLjQ2NjEyNSwgMC43NTcxNDgsIDEuMTI4MzQsIDEuNDk5NjUsIDEuODcxNSwgMi4yMzk5OCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDU5ODQsIDAuNTEzNzU3LCAwLjg0MDE2NywgMS4yNDczNSwgMS42NTU2NiwgMi4wNjI1NCwgMi40Njg2OSIsIFwKLSAgICAgICAgICAiMC4xMTYxMywgMC41MjQwNTgsIDAuODUwMDYsIDEuMjU3NzQsIDEuNjY1MTIsIDIuMDczMDEsIDIuNDc5ODUiLCBcCi0gICAgICAgICAgIjAuMTI4OTY5LCAwLjUzNzIyMywgMC44NjM0ODIsIDEuMjcxNDksIDEuNjc4MzEsIDIuMDg3MzksIDIuNDkzOTgiLCBcCi0gICAgICAgICAgIjAuMTQyMDc0LCAwLjU1MDQ0LCAwLjg3NjU4NSwgMS4yODQzNSwgMS42OTMsIDIuMDk5NiwgMi41MDY1NCIsIFwKLSAgICAgICAgICAiMC4xNTUyMjgsIDAuNTYzNjU0LCAwLjg5MDM3NywgMS4yOTc3MSwgMS43MDQ4NywgMi4xMTMzLCAyLjUyMDkxIiwgXAotICAgICAgICAgICIwLjE3NzQxNywgMC41ODQ3MzgsIDAuOTExNTgsIDEuMzE5MTYsIDEuNzI2MzQsIDIuMTM0MzEsIDIuNTQwOTYiLCBcCi0gICAgICAgICAgIjAuMTk2NjA1LCAwLjYwMzQ3NywgMC45Mjk4MTMsIDEuMzM3MTIsIDEuNzQ1MTgsIDIuMTUyNTQsIDIuNTYwODIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTg5ODU2LCAwLjk2OTQwOSwgMS41OTU1MywgMi4zODMyNCwgMy4xNTc4MiwgMy45NDk3OSwgNC43MjE2MSIsIFwKLSAgICAgICAgICAiMC4xODk5MjIsIDAuOTczNzA3LCAxLjU5OTY5LCAyLjM4NTI1LCAzLjE2NTY3LCAzLjkzMTg5LCA0LjcyMjg4IiwgXAotICAgICAgICAgICIwLjE4OTQ0NiwgMC45NzM3ODEsIDEuNTkzNjEsIDIuMzc1OTMsIDMuMTY5NzIsIDMuOTM5MSwgNC43MTQ1MSIsIFwKLSAgICAgICAgICAiMC4xOTExOTMsIDAuOTc0MjY4LCAxLjU5OTk0LCAyLjM4Nzc0LCAzLjE1NDg2LCAzLjk0OTY5LCA0LjcyMjk4IiwgXAotICAgICAgICAgICIwLjE5NTExOSwgMC45NzQ0MTksIDEuNTk1MTksIDIuMzc3MDIsIDMuMTY5NywgMy45NDQ2MywgNC43MTMzMiIsIFwKLSAgICAgICAgICAiMC4yMDI4MjcsIDAuOTczMDk5LCAxLjU5NTEsIDIuMzcyNjksIDMuMTY1OTksIDMuOTM0MTMsIDQuNzIyOTIiLCBcCi0gICAgICAgICAgIjAuMjExMTEzLCAwLjk2OTM4OSwgMS41OTMzNiwgMi4zODQ1NywgMy4xNTM5MywgMy45NDc2NiwgNC43MTI4NSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjg1NywgMC4wMDI4NTgsIDAuMDAyODU4LCAwLjAwMjg1OCwgMC4wMDI4NTgsIDAuMDAyODU4LCAwLjAwMjg1NyIsIFwKLSAgICAgICAgICAiMC4wMDI4MzQsIDAuMDAyODQ1LCAwLjAwMjg0NiwgMC4wMDI4NDcsIDAuMDAyODQ3LCAwLjAwMjg0NiwgMC4wMDI4NDYiLCBcCi0gICAgICAgICAgIjAuMDAyODIsIDAuMDAyODQxLCAwLjAwMjg0MywgMC4wMDI4NDIsIDAuMDAyODQzLCAwLjAwMjg0MywgMC4wMDI4NDEiLCBcCi0gICAgICAgICAgIjAuMDAyODEyLCAwLjAwMjgzNywgMC4wMDI4NCwgMC4wMDI4NDEsIDAuMDAyODQxLCAwLjAwMjg0MywgMC4wMDI4NDEiLCBcCi0gICAgICAgICAgIjAuMDAyODA0LCAwLjAwMjgzNSwgMC4wMDI4MzksIDAuMDAyODQsIDAuMDAyODQyLCAwLjAwMjg0MSwgMC4wMDI4NDEiLCBcCi0gICAgICAgICAgIjAuMDAyNzk2LCAwLjAwMjgzMSwgMC4wMDI4MzYsIDAuMDAyODM4LCAwLjAwMjg0LCAwLjAwMjgzOSwgMC4wMDI4NCIsIFwKLSAgICAgICAgICAiMC4wMDI3OTEsIDAuMDAyODI3LCAwLjAwMjgzNCwgMC4wMDI4MzcsIDAuMDAyODM4LCAwLjAwMjgzOSwgMC4wMDI4NCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDU2NSwgMC4wMDA1NzEsIDAuMDAwNTcyLCAwLjAwMDU3MiwgMC4wMDA1NzIsIDAuMDAwNTcyLCAwLjAwMDU3MiIsIFwKLSAgICAgICAgICAiMC4wMDA1MzgsIDAuMDAwNTY1LCAwLjAwMDU2OCwgMC4wMDA1NywgMC4wMDA1NzEsIDAuMDAwNTcxLCAwLjAwMDU3MSIsIFwKLSAgICAgICAgICAiMC4wMDA1MTIsIDAuMDAwNTU4LCAwLjAwMDU2MywgMC4wMDA1NjcsIDAuMDAwNTY4LCAwLjAwMDU2OSwgMC4wMDA1NyIsIFwKLSAgICAgICAgICAiMC4wMDA0OTQsIDAuMDAwNTUxLCAwLjAwMDU1OSwgMC4wMDA1NjQsIDAuMDAwNTY2LCAwLjAwMDU2NywgMC4wMDA1NjgiLCBcCi0gICAgICAgICAgIjAuMDAwNDc5LCAwLjAwMDU0NSwgMC4wMDA1NTUsIDAuMDAwNTYxLCAwLjAwMDU2NCwgMC4wMDA1NjUsIDAuMDAwNTY3IiwgXAotICAgICAgICAgICIwLjAwMDQ2MywgMC4wMDA1MzUsIDAuMDAwNTQ4LCAwLjAwMDU1NiwgMC4wMDA1NiwgMC4wMDA1NjMsIDAuMDAwNTY0IiwgXAotICAgICAgICAgICIwLjAwMDQ1MywgMC4wMDA1MjgsIDAuMDAwNTQzLCAwLjAwMDU1MiwgMC4wMDA1NTcsIDAuMDAwNTYsIDAuMDAwNTYyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyMjQzLCAwLjAwMjI0NywgMC4wMDIyNDgsIDAuMDAyMjQ4LCAwLjAwMjI0OSwgMC4wMDIyNDksIDAuMDAyMjQ5IiwgXAotICAgICAgICAgICIwLjAwMjIzLCAwLjAwMjI1NSwgMC4wMDIyNTYsIDAuMDAyMjU4LCAwLjAwMjI1OSwgMC4wMDIyNTksIDAuMDAyMjYiLCBcCi0gICAgICAgICAgIjAuMDAyMjE0LCAwLjAwMjI1MSwgMC4wMDIyNTUsIDAuMDAyMjU3LCAwLjAwMjI1NiwgMC4wMDIyNTksIDAuMDAyMjU3IiwgXAotICAgICAgICAgICIwLjAwMjE5OCwgMC4wMDIyNDYsIDAuMDAyMjUzLCAwLjAwMjI1NywgMC4wMDIyNTgsIDAuMDAyMjU4LCAwLjAwMjI1OSIsIFwKLSAgICAgICAgICAiMC4wMDIxODUsIDAuMDAyMjQxLCAwLjAwMjI1LCAwLjAwMjI1NCwgMC4wMDIyNTcsIDAuMDAyMjU4LCAwLjAwMjI1NiIsIFwKLSAgICAgICAgICAiMC4wMDIxNywgMC4wMDIyMzYsIDAuMDAyMjQ1LCAwLjAwMjI1MSwgMC4wMDIyNTQsIDAuMDAyMjU1LCAwLjAwMjI1NyIsIFwKLSAgICAgICAgICAiMC4wMDIxNjIsIDAuMDAyMjI5LCAwLjAwMjI0MSwgMC4wMDIyNDksIDAuMDAyMjUyLCAwLjAwMjI1NCwgMC4wMDIyNTYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDA1NjYsIDAuMDAwNTczLCAwLjAwMDU3NCwgMC4wMDA1NzQsIDAuMDAwNTc1LCAwLjAwMDU3NSwgMC4wMDA1NzUiLCBcCi0gICAgICAgICAgIjAuMDAwNTMyLCAwLjAwMDU2NiwgMC4wMDA1NjksIDAuMDAwNTcxLCAwLjAwMDU3MywgMC4wMDA1NzMsIDAuMDAwNTczIiwgXAotICAgICAgICAgICIwLjAwMDUwMiwgMC4wMDA1NTcsIDAuMDAwNTY0LCAwLjAwMDU2OCwgMC4wMDA1NywgMC4wMDA1NzEsIDAuMDAwNTcyIiwgXAotICAgICAgICAgICIwLjAwMDQ4MSwgMC4wMDA1NDksIDAuMDAwNTU5LCAwLjAwMDU2NCwgMC4wMDA1NjcsIDAuMDAwNTY4LCAwLjAwMDU3IiwgXAotICAgICAgICAgICIwLjAwMDQ2NiwgMC4wMDA1NDIsIDAuMDAwNTU0LCAwLjAwMDU2MSwgMC4wMDA1NjQsIDAuMDAwNTY2LCAwLjAwMDU2OCIsIFwKLSAgICAgICAgICAiMC4wMDA0NTIsIDAuMDAwNTMxLCAwLjAwMDU0NiwgMC4wMDA1NTUsIDAuMDAwNTYsIDAuMDAwNTYzLCAwLjAwMDU2NSIsIFwKLSAgICAgICAgICAiMC4wMDA0NDUsIDAuMDAwNTIzLCAwLjAwMDU0MSwgMC4wMDA1NTEsIDAuMDAwNTU3LCAwLjAwMDU2LCAwLjAwMDU2MyIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IE5BTkQyWDggKgotICogLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoTkFORDJYOCkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjUxOTM2NDsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDA2MDAyNjU7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDA2MDAyNjU7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDA1OTg1Mjk7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyNDUsIDAuMDAyNDQ4LCAwLjAwMjQ0NywgMC4wMDI0NDUsIDAuMDAyNDQ2LCAwLjAwMjQ0NSwgMC4wMDI0NDQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDI1MzIsIDAuMDAyNDc0LCAwLjAwMjQ2NiwgMC4wMDI0NjQsIDAuMDAyNDYzLCAwLjAwMjQ2MiwgMC4wMDI0NjEiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwNjA4MDkxOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwNjA3NTAzOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwNjA4MDkxOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTIwNiwgMC4wMDEyMDQsIDAuMDAxMjAyLCAwLjAwMTIwMiwgMC4wMDEyMDIsIDAuMDAxMjAyLCAwLjAwMTIwMyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjc3OCwgMC4wMDI3ODEsIDAuMDAyNzgyLCAwLjAwMjc4MSwgMC4wMDI3ODUsIDAuMDAyNzg2LCAwLjAwMjc4NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjUzNzUwODsKLSAgICBmdW5jdGlvbiA6ICIoIShBIEIpKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjMyNDksIDAuMDg3OTkxLCAwLjE1MjM4NywgMC4xOTgzNTksIDAuMjcxODU2LCAwLjMzNjExNSwgMC40MjgwNjUiLCBcCi0gICAgICAgICAgIjAuMDM0ODk5LCAwLjA5OTU0MiwgMC4xNjM5NSwgMC4yMDk5MDQsIDAuMjgzMzg3LCAwLjM0NzY4LCAwLjQzOTUyNSIsIFwKLSAgICAgICAgICAiMC4wNDk3MzcsIDAuMTE0MTYzLCAwLjE3ODM4NCwgMC4yMjQzMDcsIDAuMjk3Nzk5LCAwLjM2MDU2NiwgMC40NTI0MjEiLCBcCi0gICAgICAgICAgIjAuMDYzMjYsIDAuMTI5MTY0LCAwLjE5MzAwOCwgMC4yMzk0NywgMC4zMTI5OCwgMC4zNzczMTUsIDAuNDY5MTE2IiwgXAotICAgICAgICAgICIwLjA3NDkyMSwgMC4xNDM4OSwgMC4yMDc3NDEsIDAuMjUzNTM4LCAwLjMyNjg2NCwgMC4zOTExLCAwLjQ4Mjk3NSIsIFwKLSAgICAgICAgICAiMC4wOTE1NzcsIDAuMTY3NTM4LCAwLjIzMTk2NywgMC4yNzcyMjksIDAuMzUwNDUyLCAwLjQxNDU4NiwgMC41MDYxOTciLCBcCi0gICAgICAgICAgIjAuMTA0NDE1LCAwLjE4ODQzNCwgMC4yNTI2NTIsIDAuMjk4MDE2LCAwLjM3MTIwMiwgMC40MzUyNTksIDAuNTI2NzU0Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM2NTAzLCAwLjE2NzA0NCwgMC4yOTc2NiwgMC4zOTA3NzMsIDAuNTM5Nzc3LCAwLjY3MDAwMiwgMC44NTY1NjIiLCBcCi0gICAgICAgICAgIjAuMDM3Nzk2LCAwLjE2NzAyNiwgMC4yOTc0NjYsIDAuMzkwOTU1LCAwLjUzOTY4NiwgMC42NzAwNTIsIDAuODU2NDM5IiwgXAotICAgICAgICAgICIwLjA0Mzg2NSwgMC4xNjcyOSwgMC4yOTc0NDksIDAuMzkwOTU1LCAwLjUzOTYxOSwgMC42NzAxNzcsIDAuODU2NDg1IiwgXAotICAgICAgICAgICIwLjA1MjA5OCwgMC4xNjk2MzIsIDAuMjk3NTcxLCAwLjM5MDk1OSwgMC41Mzk2OTIsIDAuNjcwNjI3LCAwLjg1NjI5MiIsIFwKLSAgICAgICAgICAiMC4wNjE1OCwgMC4xNzM3ODIsIDAuMjk4ODUsIDAuMzkxMDU2LCAwLjUzOTg4NywgMC42NzAwOTgsIDAuODU2NTQxIiwgXAotICAgICAgICAgICIwLjA3NjAyMywgMC4xODI3NywgMC4zMDM0NTIsIDAuMzkzNDQ1LCAwLjUzOTg4OCwgMC42NzAxNzksIDAuODU2NDA0IiwgXAotICAgICAgICAgICIwLjA4ODE4LCAwLjE5MjM1MiwgMC4zMDk2MzYsIDAuMzk3Nzc3LCAwLjU0MTg5NiwgMC42NzA0MTksIDAuODU2NDMiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDk4MTgsIDAuMTk2MDE5LCAwLjM0MjAwNiwgMC40NDYzMzIsIDAuNjEyNzI2LCAwLjc1ODc1MywgMC45Njc1MTciLCBcCi0gICAgICAgICAgIjAuMDYwODQ0LCAwLjIwNzYwNywgMC4zNTM2NTIsIDAuNDU3ODc3LCAwLjYyNDc1OSwgMC43NzA2NDgsIDAuOTc5NDI0IiwgXAotICAgICAgICAgICIwLjA3NDExMiwgMC4yMjEwMDgsIDAuMzY3MTY0LCAwLjQ3MTU5NiwgMC42Mzg1MTEsIDAuNzg0NDc5LCAwLjk5Mjg5MiIsIFwKLSAgICAgICAgICAiMC4wODc0MDIsIDAuMjM0NDQ0LCAwLjM4MDU5MiwgMC40ODQ5MzcsIDAuNjUxODM1LCAwLjc5Nzg1NCwgMS4wMDY0NyIsIFwKLSAgICAgICAgICAiMC4xMDA0OTUsIDAuMjQ3Njk1LCAwLjM5MzkyNywgMC40OTgzOTYsIDAuNjY1MTk1LCAwLjgxMTU3NiwgMS4wMTk3OCIsIFwKLSAgICAgICAgICAiMC4xMjAxOTYsIDAuMjY4OTczLCAwLjQxNTQ0NiwgMC41MTk4MTIsIDAuNjg2NzY3LCAwLjgzMjcxMiwgMS4wNDEyOSIsIFwKLSAgICAgICAgICAiMC4xMzU4NjEsIDAuMjg3NTk2LCAwLjQzNDA3NiwgMC41Mzg0ODEsIDAuNzA1NjE0LCAwLjg1MTYsIDEuMDYwNTkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzI5MDksIDAuMzUyOTksIDAuNjM0NTA2LCAwLjgzMTEyMywgMS4xNTQ0NSwgMS40MzUzNiwgMS44MzkyMyIsIFwKLSAgICAgICAgICAiMC4wNzI5MDYsIDAuMzUyMDM4LCAwLjYzMTU0OSwgMC44MzMwMjksIDEuMTU2OTYsIDEuNDM0MjQsIDEuODI4NzYiLCBcCi0gICAgICAgICAgIjAuMDczODg0LCAwLjM1MzQ3OSwgMC42MzM5MjQsIDAuODMxMTEsIDEuMTUyNDIsIDEuNDI5ODIsIDEuODMxMzgiLCBcCi0gICAgICAgICAgIjAuMDc2ODE0LCAwLjM1MzY1MSwgMC42MzQwOTQsIDAuODM1LCAxLjE1NjE0LCAxLjQzNTE4LCAxLjgzNzg3IiwgXAotICAgICAgICAgICIwLjA4MDk1NiwgMC4zNTI2NTQsIDAuNjMzODg4LCAwLjgzNTMxMywgMS4xNTYwMSwgMS40MzA2NiwgMS44MzYyMSIsIFwKLSAgICAgICAgICAiMC4wODk4NSwgMC4zNTUwNzUsIDAuNjM0NDU5LCAwLjgzMjE4MiwgMS4xNTYzMywgMS40MzY4OCwgMS44Mzg5IiwgXAotICAgICAgICAgICIwLjA5OTUzMiwgMC4zNTcyMjYsIDAuNjM0MDc5LCAwLjgzNTEyNiwgMS4xNTYyNSwgMS40MzUyNCwgMS44Mjg1NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyMTA5NCwgMC4wODU1NzgsIDAuMTQ5OTU2LCAwLjE5NjAyMiwgMC4yNjk2MDksIDAuMzM0MDIyLCAwLjQyNjAxNyIsIFwKLSAgICAgICAgICAiMC4wMzI3NzUsIDAuMDk3Mzk5LCAwLjE2MTc5OSwgMC4yMDc3OTIsIDAuMjgxNDA5LCAwLjM0NTk0NSwgMC40Mzc5MSIsIFwKLSAgICAgICAgICAiMC4wNDczNzEsIDAuMTExODc5LCAwLjE3NjA4OCwgMC4yMjEyNywgMC4yOTQ4MjksIDAuMzU5MjM3LCAwLjQ1MTQzNyIsIFwKLSAgICAgICAgICAiMC4wNjAxMTYsIDAuMTI2NzU5LCAwLjE5MDc1MywgMC4yMzY2MywgMC4zMTAyNzYsIDAuMzc0NTU5LCAwLjQ2NjU2MiIsIFwKLSAgICAgICAgICAiMC4wNzA4NywgMC4xNDE2NTcsIDAuMjA1OTc3LCAwLjI1MTMzMywgMC4zMjUyNTMsIDAuMzg5NjQsIDAuNDgxNDQ1IiwgXAotICAgICAgICAgICIwLjA4NjYzNywgMC4xNjUxODEsIDAuMjI5NTc2LCAwLjI3NTQ3OCwgMC4zNDgzLCAwLjQxMjQ4NywgMC41MDQ0ODEiLCBcCi0gICAgICAgICAgIjAuMDk4NywgMC4xODYxNTksIDAuMjUwMzM4LCAwLjI5NTEwNCwgMC4zNjg2MzcsIDAuNDMyODk2LCAwLjUyNDc4MSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzMzc2OSwgMC4xNjQ4OTYsIDAuMjk1MjE2LCAwLjM4ODY2MSwgMC41Mzg1NCwgMC42Njg4NDcsIDAuODU2MjM5IiwgXAotICAgICAgICAgICIwLjAzNTQ0NCwgMC4xNjQ1NTIsIDAuMjk1MTkxLCAwLjM4OTY2NywgMC41MzkzNDEsIDAuNjY4ODE5LCAwLjg1NTU5NSIsIFwKLSAgICAgICAgICAiMC4wNDIxNTYsIDAuMTY0NzUsIDAuMjk1MTYxLCAwLjM4ODY0OSwgMC41MzgzNjcsIDAuNjY4NzExLCAwLjg1NTcwMSIsIFwKLSAgICAgICAgICAiMC4wNTEyNDEsIDAuMTY3Njg2LCAwLjI5NjA5OSwgMC4zODk2NDcsIDAuNTM4MDg5LCAwLjY3MDQyOCwgMC44NTUyNCIsIFwKLSAgICAgICAgICAiMC4wNjA4ODQsIDAuMTcxNzYyLCAwLjI5NjgzOSwgMC4zODk3NzYsIDAuNTM4NDk0LCAwLjY2ODc4OCwgMC44NTUyOTMiLCBcCi0gICAgICAgICAgIjAuMDc1NzE5LCAwLjE4MDg4NCwgMC4zMDE2NDMsIDAuMzkyOTIsIDAuNTM4MjksIDAuNjcwMzM2LCAwLjg1NTU5OSIsIFwKLSAgICAgICAgICAiMC4wODc3OTIsIDAuMTkwMjc3LCAwLjMwODI4NiwgMC4zOTY0MTYsIDAuNTQwMjg3LCAwLjY3MDk3OSwgMC44NTYxNzEiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDQ5NjYsIDAuMTkxMjI5LCAwLjMzNzIzLCAwLjQ0MTM3NiwgMC42MDgzNDMsIDAuNzUzOTcsIDAuOTYzMjMiLCBcCi0gICAgICAgICAgIjAuMDU0OTA3LCAwLjIwMTY5OSwgMC4zNDc4MjQsIDAuNDUxOTgxLCAwLjYxODc3OSwgMC43NjQ2NzMsIDAuOTczMTUzIiwgXAotICAgICAgICAgICIwLjA2NzgzLCAwLjIxNDQ1MiwgMC4zNjA2MDIsIDAuNDY1MDEzLCAwLjYzMTcxOSwgMC43NzgwNiwgMC45ODYyMjQiLCBcCi0gICAgICAgICAgIjAuMDgxMTgsIDAuMjI3NDMsIDAuMzczODY1LCAwLjQ3ODEwOSwgMC42NDQ4OTYsIDAuNzkwODY3LCAwLjk5OTI2MSIsIFwKLSAgICAgICAgICAiMC4wOTQ0MTIsIDAuMjQwNDUsIDAuMzg2NzA3LCAwLjQ5MTA0MSwgMC42NTc4OTksIDAuODAzOTcxLCAxLjAxMjUyIiwgXAotICAgICAgICAgICIwLjExMzcxNywgMC4yNjE2OTYsIDAuNDA3OTg1LCAwLjUxMjUxNCwgMC42Nzk2MTgsIDAuODI1Mjk2LCAxLjAzNDE0IiwgXAotICAgICAgICAgICIwLjEyNzcxOSwgMC4yODAwMSwgMC40MjYxOTEsIDAuNTMwNzE0LCAwLjY5NzUyOSwgMC44NDM0NTgsIDEuMDUyMyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3Mjc1NiwgMC4zNTIxMzUsIDAuNjMxNTQzLCAwLjgzMTk1MywgMS4xNTA0NCwgMS40MzUxNCwgMS44Mjk0MiIsIFwKLSAgICAgICAgICAiMC4wNzI4NjEsIDAuMzUzNTY3LCAwLjYzNDIyLCAwLjgzNDMxLCAxLjE1NDkxLCAxLjQzMTI1LCAxLjgzNjA4IiwgXAotICAgICAgICAgICIwLjA3NTk2NiwgMC4zNTM2NDEsIDAuNjMzMDc4LCAwLjgzMjE0MywgMS4xNTQ5MSwgMS40Mjk1MiwgMS44MzYyOCIsIFwKLSAgICAgICAgICAiMC4wODE3NjUsIDAuMzUzMzQ3LCAwLjYzMTkyMiwgMC44MzUyNDQsIDEuMTUxNjUsIDEuNDM1NSwgMS44MzYwNyIsIFwKLSAgICAgICAgICAiMC4wODkxNjQsIDAuMzU0LCAwLjYzMzc3NywgMC44MzQxOTcsIDEuMTU0OCwgMS40MzU0NCwgMS44Mzg2NyIsIFwKLSAgICAgICAgICAiMC4xMDI5MjMsIDAuMzU3MjMyLCAwLjYzMzc1MiwgMC44MzEwOTcsIDEuMTUxMTIsIDEuNDM0NTQsIDEuODMxNTQiLCBcCi0gICAgICAgICAgIjAuMTE2ODI1LCAwLjM2MjY1NiwgMC42MzQ4MDksIDAuODMxMDk4LCAxLjE1NTc0LCAxLjQzNTM1LCAxLjgzMzA5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTEyMDQsIDAuMDExMjE3LCAwLjAxMTIxOSwgMC4wMTEyMTksIDAuMDExMjE4LCAwLjAxMTIxOSwgMC4wMTEyMTkiLCBcCi0gICAgICAgICAgIjAuMDExMDYxLCAwLjAxMTE0NiwgMC4wMTExNTksIDAuMDExMTYzLCAwLjAxMTE2NiwgMC4wMTExNjcsIDAuMDExMTcyIiwgXAotICAgICAgICAgICIwLjAxMDk3MSwgMC4wMTExMDksIDAuMDExMTMyLCAwLjAxMTE0LCAwLjAxMTE0OCwgMC4wMTExNSwgMC4wMTExNTMiLCBcCi0gICAgICAgICAgIjAuMDEwOTI0LCAwLjAxMTA4MywgMC4wMTEwOTcsIDAuMDExMTI5LCAwLjAxMTEzOSwgMC4wMTExNDksIDAuMDExMTQ5IiwgXAotICAgICAgICAgICIwLjAxMDg3OSwgMC4wMTEwNTgsIDAuMDExMDk0LCAwLjAxMTExMywgMC4wMTExMjYsIDAuMDExMTMzLCAwLjAxMTEzOSIsIFwKLSAgICAgICAgICAiMC4wMTA4NjcsIDAuMDExMDI3LCAwLjAxMTA3OCwgMC4wMTEwOTUsIDAuMDExMTAyLCAwLjAxMTEyMSwgMC4wMTExMjkiLCBcCi0gICAgICAgICAgIjAuMDEwODY4LCAwLjAxMTAwOCwgMC4wMTEwNjIsIDAuMDExMDgyLCAwLjAxMTEwMiwgMC4wMTExMSwgMC4wMTExMjEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjIwNCwgMC4wMDIyNjQsIDAuMDAyMjcxLCAwLjAwMjI3MywgMC4wMDIyNzYsIDAuMDAyMjc3LCAwLjAwMjI3OCIsIFwKLSAgICAgICAgICAiMC4wMDE5OTEsIDAuMDAyMTk4LCAwLjAwMjIzMywgMC4wMDIyNDUsIDAuMDAyMjU1LCAwLjAwMjI2LCAwLjAwMjI2NSIsIFwKLSAgICAgICAgICAiMC4wMDE4NTIsIDAuMDAyMTMsIDAuMDAyMTkxLCAwLjAwMjIxMSwgMC4wMDIyMywgMC4wMDIyNCwgMC4wMDIyNDkiLCBcCi0gICAgICAgICAgIjAuMDAxNzc1LCAwLjAwMjA2OCwgMC4wMDIxNDksIDAuMDAyMTc3LCAwLjAwMjIwNCwgMC4wMDIyMTksIDAuMDAyMjMyIiwgXAotICAgICAgICAgICIwLjAwMTczMSwgMC4wMDIwMTgsIDAuMDAyMTEyLCAwLjAwMjE0NywgMC4wMDIxODEsIDAuMDAyMTk5LCAwLjAwMjIxNiIsIFwKLSAgICAgICAgICAiMC4wMDE2ODMsIDAuMDAxOTU4LCAwLjAwMjA2NSwgMC4wMDIxMDcsIDAuMDAyMTQ5LCAwLjAwMjE3MiwgMC4wMDIxOTQiLCBcCi0gICAgICAgICAgIjAuMDAxNjU4LCAwLjAwMTkxMywgMC4wMDIwMjMsIDAuMDAyMDcxLCAwLjAwMjExOSwgMC4wMDIxNDYsIDAuMDAyMTcyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDg1OTUsIDAuMDA4NjQ0LCAwLjAwODY0OSwgMC4wMDg2NTEsIDAuMDA4NjUyLCAwLjAwODY1MywgMC4wMDg2NTgiLCBcCi0gICAgICAgICAgIjAuMDA4NDU0LCAwLjAwODY0LCAwLjAwODY2NywgMC4wMDg2NzYsIDAuMDA4NjgzLCAwLjAwODY4NSwgMC4wMDg2OSIsIFwKLSAgICAgICAgICAiMC4wMDgzMjEsIDAuMDA4NTkzLCAwLjAwODY0MSwgMC4wMDg2NTUsIDAuMDA4NjcxLCAwLjAwODY3NywgMC4wMDg2ODQiLCBcCi0gICAgICAgICAgIjAuMDA4MjU0LCAwLjAwODU1MSwgMC4wMDg2MTYsIDAuMDA4NjM4LCAwLjAwODY1OCwgMC4wMDg2NjUsIDAuMDA4Njc4IiwgXAotICAgICAgICAgICIwLjAwODIwNCwgMC4wMDg1MTQsIDAuMDA4NTkxLCAwLjAwODYwMiwgMC4wMDg2NDQsIDAuMDA4NjU0LCAwLjAwODY2OCIsIFwKLSAgICAgICAgICAiMC4wMDgxODUsIDAuMDA4NDY1LCAwLjAwODU1NiwgMC4wMDg1OTIsIDAuMDA4NjE5LCAwLjAwODYzNywgMC4wMDg2NTMiLCBcCi0gICAgICAgICAgIjAuMDA4MTYxLCAwLjAwODQxNSwgMC4wMDg1MTksIDAuMDA4NTU2LCAwLjAwODU5OSwgMC4wMDg2MTcsIDAuMDA4NjM2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDIxODYsIDAuMDAyMjYsIDAuMDAyMjcsIDAuMDAyMjczLCAwLjAwMjI3NSwgMC4wMDIyNzYsIDAuMDAyMjc4IiwgXAotICAgICAgICAgICIwLjAwMTk0LCAwLjAwMjE4NCwgMC4wMDIyMjYsIDAuMDAyMjM5LCAwLjAwMjI1MSwgMC4wMDIyNTcsIDAuMDAyMjYzIiwgXAotICAgICAgICAgICIwLjAwMTc4MSwgMC4wMDIwOTgsIDAuMDAyMTcxLCAwLjAwMjE5NiwgMC4wMDIyMTksIDAuMDAyMjMxLCAwLjAwMjI0MiIsIFwKLSAgICAgICAgICAiMC4wMDE3MDksIDAuMDAyMDMsIDAuMDAyMTI1LCAwLjAwMjE1OSwgMC4wMDIxOTEsIDAuMDAyMjA4LCAwLjAwMjIyMyIsIFwKLSAgICAgICAgICAiMC4wMDE2ODYsIDAuMDAxOTc4LCAwLjAwMjA4NiwgMC4wMDIxMjYsIDAuMDAyMTY1LCAwLjAwMjE4NiwgMC4wMDIyMDYiLCBcCi0gICAgICAgICAgIjAuMDAxNjUxLCAwLjAwMTkwNSwgMC4wMDIwMjgsIDAuMDAyMDc1LCAwLjAwMjEyMywgMC4wMDIxNTEsIDAuMDAyMTc3IiwgXAotICAgICAgICAgICIwLjAwMTY4NCwgMC4wMDE4NzIsIDAuMDAxOTkxLCAwLjAwMjA0MywgMC4wMDIwOTcsIDAuMDAyMTI4LCAwLjAwMjE1NyIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBOQU5EM0JYMSAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoTkFORDNCWDEpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4xMTcxNDQ7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEFOKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA1ODY4OTc7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNTg2NzQ4OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDU4Njg5NzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAzODQsIDAuMDAwMzY3LCAwLjAwMDM1NywgMC4wMDAzNTMsIDAuMDAwMzUxLCAwLjAwMDM0OSwgMC4wMDAzNDkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDExNTEsIDAuMDAxMTM5LCAwLjAwMTEzMywgMC4wMDExMjgsIDAuMDAxMTI3LCAwLjAwMTEyNiwgMC4wMDExMjYiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDg1MjM1NTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA4NTIzNTU7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwODUwMzg2OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDMwNiwgMC4wMDAzMDYsIDAuMDAwMzA2LCAwLjAwMDMwNiwgMC4wMDAzMDYsIDAuMDAwMzA2LCAwLjAwMDMwNiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDMyMiwgMC4wMDAzMTEsIDAuMDAwMzA5LCAwLjAwMDMwOCwgMC4wMDAzMDgsIDAuMDAwMzA4LCAwLjAwMDMwOCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQykgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwODYzMDUxOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDg2MjI2NDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA4NjMwNTE7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMTYxLCAwLjAwMDE2MSwgMC4wMDAxNjEsIDAuMDAwMTYxLCAwLjAwMDE2MSwgMC4wMDAxNjEsIDAuMDAwMTYxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzQ3LCAwLjAwMDM0OCwgMC4wMDAzNDgsIDAuMDAwMzQ4LCAwLjAwMDM0OCwgMC4wMDAzNDgsIDAuMDAwMzQ4Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMDQ0MzAyMzsKLSAgICBmdW5jdGlvbiA6ICIoISgoKCFBTikgQikgQykpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTI4NTM1LCAwLjE3MTk0OCwgMC40MTcwMzUsIDAuNjMzMDg0LCAwLjkyMDk0OSwgMS40OTY2NywgMS44NTY0OCIsIFwKLSAgICAgICAgICAiMC4xNDA0MzksIDAuMTgzODU1LCAwLjQyODk3MSwgMC42NDUwMTksIDAuOTMyODA4LCAxLjUwODQ3LCAxLjg2ODMiLCBcCi0gICAgICAgICAgIjAuMTU1ODMyLCAwLjE5OTI0NCwgMC40NDQzNTksIDAuNjYwNDA3LCAwLjk0ODE4NywgMS41MjM4NSwgMS44ODM2NSIsIFwKLSAgICAgICAgICAiMC4xNzA4MzcsIDAuMjE0MjYsIDAuNDU5MzcyLCAwLjY3NTQxLCAwLjk2MzAxNSwgMS41MzkxNywgMS44OTg2MiIsIFwKLSAgICAgICAgICAiMC4xODU2NjEsIDAuMjI5MDczLCAwLjQ3NDE4NiwgMC42OTAyMjUsIDAuOTc4MjcxLCAxLjU1MzY5LCAxLjkxMzQ4IiwgXAotICAgICAgICAgICIwLjIwNjk3NywgMC4yNTAzNjMsIDAuNDk1NDcyLCAwLjcxMTQ4NSwgMC45OTk1MiwgMS41NzU0MiwgMS45MzQ3NSIsIFwKLSAgICAgICAgICAiMC4yMjUwMSwgMC4yNjg0MTIsIDAuNTEzNTEsIDAuNzI5NTI5LCAxLjAxNzQ0LCAxLjU5Mjk5LCAxLjk1MjgyIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE3NDk2NiwgMC4yNjIzMzcsIDAuNzU4Nzk1LCAxLjE5NzM1LCAxLjc4MTYsIDIuOTQ5OSwgMy42ODA1NSIsIFwKLSAgICAgICAgICAiMC4xNzQ5NjMsIDAuMjYyMzI3LCAwLjc1OTA1MSwgMS4xOTgxNSwgMS43ODEzOCwgMi45NTE2LCAzLjY4MDQ1IiwgXAotICAgICAgICAgICIwLjE3NDk4NywgMC4yNjIzMSwgMC43NTkwMjUsIDEuMTk4MTQsIDEuNzgxMzcsIDIuOTUxNTgsIDMuNjgwNDQiLCBcCi0gICAgICAgICAgIjAuMTc0OTUzLCAwLjI2MjMxNywgMC43NTkzMDksIDEuMTk3NCwgMS43ODI5NiwgMi45NTA5OSwgMy42ODA3OSIsIFwKLSAgICAgICAgICAiMC4xNzUxMTIsIDAuMjYyMzQ1LCAwLjc1OTQ4LCAxLjE5NzM2LCAxLjc4Mjg4LCAyLjk1MDQxLCAzLjY4MDQyIiwgXAotICAgICAgICAgICIwLjE3NTU3MiwgMC4yNjI0OTEsIDAuNzU5NDk4LCAxLjE5NzM0LCAxLjc4MjA1LCAyLjk1MTAyLCAzLjY4MTY3IiwgXAotICAgICAgICAgICIwLjE3NjAzMywgMC4yNjI3NDQsIDAuNzU5NDc3LCAxLjE5NzMzLCAxLjc4MTgyLCAyLjk1MDA1LCAzLjY4MDQ0Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMzMzQ4NiwgMC40ODAyMTUsIDEuMzEyNzUsIDIuMDQ2MzMsIDMuMDI0MiwgNC45Nzg5MSwgNi4yMDA3MiIsIFwKLSAgICAgICAgICAiMC4zNDUwMjMsIDAuNDkxODkxLCAxLjMyMzcsIDIuMDU3NDgsIDMuMDM1OSwgNC45OTA1LCA2LjIxMjI2IiwgXAotICAgICAgICAgICIwLjM1OTcwNiwgMC41MDY1NjQsIDEuMzM4NzEsIDIuMDcyNjMsIDMuMDUwNjQsIDUuMDA1MzEsIDYuMjI3MDgiLCBcCi0gICAgICAgICAgIjAuMzczODU2LCAwLjUyMDc4NiwgMS4zNTMxLCAyLjA4NzcsIDMuMDY0MzEsIDUuMDE5NzMsIDYuMjQxNCIsIFwKLSAgICAgICAgICAiMC4zODY4OTEsIDAuNTMzNzM1LCAxLjM2NjE3LCAyLjEwMDc2LCAzLjA3NzI5LCA1LjAzMjc3LCA2LjI1NDQ5IiwgXAotICAgICAgICAgICIwLjQwNTMyLCAwLjU1MjE2MiwgMS4zODQ1NCwgMi4xMTg0NywgMy4wOTY0OCwgNS4wNTEyMywgNi4yNzMwNiIsIFwKLSAgICAgICAgICAiMC40MTk2NSwgMC41NjY3MTQsIDEuMzk5MTYsIDIuMTMzNDIsIDMuMTEwNDQsIDUuMDY1NSwgNi4yODc1OSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC41MzM1MjcsIDAuODEwNTg1LCAyLjM2OTEzLCAzLjc1NjA3LCA1LjU4OTE0LCA5LjI0ODg5LCAxMS41Mzg1IiwgXAotICAgICAgICAgICIwLjUzMzYxMSwgMC44MDYyMzEsIDIuMzcxNjgsIDMuNzUxNTYsIDUuNTg5MjksIDkuMjUwMDgsIDExLjUzOTIiLCBcCi0gICAgICAgICAgIjAuNTMzNTgyLCAwLjgxMTIxMSwgMi4zNzUyMywgMy43NTIyOCwgNS41ODkxOSwgOS4yNTAwNSwgMTEuNTM5MiIsIFwKLSAgICAgICAgICAiMC41MzM0NDMsIDAuODExNjk0LCAyLjM4ODg2LCAzLjc0ODI5LCA1LjU4ODI2LCA5LjI0ODQ5LCAxMS41MzkiLCBcCi0gICAgICAgICAgIjAuNTMzNDksIDAuODA2NDIyLCAyLjM4ODc5LCAzLjc0NjY3LCA1LjU4ODM1LCA5LjI0OTYxLCAxMS41MzkxIiwgXAotICAgICAgICAgICIwLjUzMDIxNSwgMC44MTE1NTQsIDIuMzc1MTIsIDMuNzUyODIsIDUuNTg5MTQsIDkuMjQ4NjEsIDExLjUzODgiLCBcCi0gICAgICAgICAgIjAuNTMzMzcxLCAwLjgxMTUyMiwgMi4zODg2NCwgMy43NjY0MiwgNS41ODg1MSwgOS4yNDksIDExLjUzODUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg5Mjk1LCAwLjEzMjU0OCwgMC4zNzcyNzcsIDAuNTkzMzQ4LCAwLjg4MTIzMywgMS40NTcyOSwgMS44MTY2MyIsIFwKLSAgICAgICAgICAiMC4xMDA4ODQsIDAuMTQ0MTM5LCAwLjM4ODk5OCwgMC42MDQ5MDksIDAuODkyODc0LCAxLjQ2ODkzLCAxLjgyODI3IiwgXAotICAgICAgICAgICIwLjExNTc0OSwgMC4xNTg5OTUsIDAuNDAzNzMsIDAuNjE5ODE3LCAwLjkwNzkzMywgMS40ODM4MiwgMS44NDMyMiIsIFwKLSAgICAgICAgICAiMC4xMzA0MzUsIDAuMTczNjUzLCAwLjQxNzc1NywgMC42MzI5NTcsIDAuOTE4MDA2LCAxLjQ5MzkyLCAxLjg1MzE5IiwgXAotICAgICAgICAgICIwLjE0NTIyMiwgMC4xODgzOTIsIDAuNDMyMzM0LCAwLjY0ODE4NiwgMC45MzA3MDgsIDEuNTA2NzgsIDEuODY2NjciLCBcCi0gICAgICAgICAgIjAuMTY4ODczLCAwLjIxMjIxNiwgMC40NTU2MzQsIDAuNjcxMjY2LCAwLjk1OTE2MywgMS41Mjc1NCwgMS44ODc2NiIsIFwKLSAgICAgICAgICAiMC4xODk2NjEsIDAuMjMyNzg5LCAwLjQ3NTYzOSwgMC42OTE3NDcsIDAuOTc5NTUxLCAxLjU0NjM4LCAxLjkwNjc4Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE3MDQ1NywgMC4yNTgxMjQsIDAuNzU0Njg1LCAxLjE5MzMyLCAxLjc3NzgsIDIuOTQ2ODYsIDMuNjc3NjEiLCBcCi0gICAgICAgICAgIjAuMTcwNDAyLCAwLjI1ODA4OCwgMC43NTUzODUsIDEuMTkzMjUsIDEuNzc3ODEsIDIuOTQ2ODcsIDMuNjc3NjQiLCBcCi0gICAgICAgICAgIjAuMTcwNTU4LCAwLjI1ODE4MiwgMC43NTQ3NjYsIDEuMTkzMzMsIDEuNzc3ODQsIDIuOTQ2NTIsIDMuNjc3NTMiLCBcCi0gICAgICAgICAgIjAuMTcyODQyLCAwLjI1ODUzOSwgMC43NTQ2OSwgMS4xOTMzMSwgMS43Nzc4NSwgMi45NDY5MiwgMy42Nzc2MSIsIFwKLSAgICAgICAgICAiMC4xNzY4ODUsIDAuMjYwMzg5LCAwLjc1NTI4MiwgMS4xOTMxNywgMS43NzcyLCAyLjk0NjgzLCAzLjY3Nzk4IiwgXAotICAgICAgICAgICIwLjE4NTcxMiwgMC4yNjYyMzIsIDAuNzU0OTU1LCAxLjE5MzA5LCAxLjc3NzI2LCAyLjk0NzQ1LCAzLjY3NzUiLCBcCi0gICAgICAgICAgIjAuMTk1MzgxLCAwLjI3MzMzMiwgMC43NTQ3MTksIDEuMTkyOTIsIDEuNzc4MjgsIDIuOTQ2NTksIDMuNjc3NTciKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjk4ODI4LCAwLjQ0NTQ1OSwgMS4yNzcxNCwgMi4wMTAyMywgMi45ODc1NywgNC45NDI5NiwgNi4xNjU4NSIsIFwKLSAgICAgICAgICAiMC4zMDkyMTMsIDAuNDU2MDA1LCAxLjI4Nzk4LCAyLjAyMjA3LCAyLjk5OTY1LCA0Ljk1NDYzLCA2LjE3Njc0IiwgXAotICAgICAgICAgICIwLjMyMTg4OCwgMC40Njg5MTEsIDEuMzAwODksIDIuMDM0OCwgMy4wMTI3NCwgNC45Njc5LCA2LjE4OTgiLCBcCi0gICAgICAgICAgIjAuMzM0NTYyLCAwLjQ4MTU5MywgMS4zMTM5MSwgMi4wNDc2NSwgMy4wMjU3NywgNC45ODA3MiwgNi4yMDI4MiIsIFwKLSAgICAgICAgICAiMC4zNDcyMzQsIDAuNDk0Mzg0LCAxLjMyNjc0LCAyLjA2MDMzLCAzLjAzOTE3LCA0Ljk5MzY3LCA2LjIxNTc1IiwgXAotICAgICAgICAgICIwLjM2NjcxOSwgMC41MTQ3NjksIDEuMzQ3MjksIDIuMDgxNzEsIDMuMDU4OTEsIDUuMDE0MTIsIDYuMjM2MTciLCBcCi0gICAgICAgICAgIjAuMzg1MjAyLCAwLjUzMjQ1MiwgMS4zNjU0NSwgMi4wOTkxMywgMy4wNzc0NywgNS4wMzI0MiwgNi4yNTQ1MSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC41MzM2MjIsIDAuODExNjk1LCAyLjM4MDAxLCAzLjc2NDcxLCA1LjU4NzQxLCA5LjI0ODU0LCAxMS41Mzk0IiwgXAotICAgICAgICAgICIwLjUzMjM2NSwgMC44MDk1ODUsIDIuMzgwMDMsIDMuNzY1ODcsIDUuNTg5NSwgOS4yNDkzNSwgMTEuNTM4NyIsIFwKLSAgICAgICAgICAiMC41MzMxMDQsIDAuODA2Mzg4LCAyLjM3MTU5LCAzLjc2NTU0LCA1LjU5MTQ1LCA5LjI0OTAxLCAxMS41Mzg4IiwgXAotICAgICAgICAgICIwLjUzMzU4NCwgMC44MTEwMzcsIDIuMzg3NTYsIDMuNzY1MzgsIDUuNTkwMzgsIDkuMjQ5NDcsIDExLjUzODUiLCBcCi0gICAgICAgICAgIjAuNTMyNTMyLCAwLjgxMTUzMSwgMi4zNzE1MiwgMy43NTAzLCA1LjU4OTM0LCA5LjI0OTk1LCAxMS41MzgxIiwgXAotICAgICAgICAgICIwLjUzMTM2MiwgMC44MDU2MjQsIDIuMzY5MTMsIDMuNzY2MjcsIDUuNTg4MzgsIDkuMjQ5MywgMTEuNTM5MiIsIFwKLSAgICAgICAgICAiMC41MzM1MTEsIDAuODExNTg0LCAyLjM3NDMxLCAzLjc2NTM2LCA1LjU4NDYzLCA5LjI0OTgyLCAxMS41MzgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg2NzQ3LCAwLjEyOTk0NSwgMC4zNzQ1ODQsIDAuNTkwNTQ0LCAwLjg3ODYxNiwgMS40NTQ3OSwgMS44MTM5MyIsIFwKLSAgICAgICAgICAiMC4wOTg0MTMsIDAuMTQxNjY3LCAwLjM4NjU1MiwgMC42MDIzMjEsIDAuODkwMDMyLCAxLjQ2NTQ0LCAxLjgyNjQ1IiwgXAotICAgICAgICAgICIwLjExMzI0NywgMC4xNTYwNDIsIDAuMzk5OTk4LCAwLjYxMzk4NiwgMC45MDIwNTMsIDEuNDc3OTEsIDEuODM3NjkiLCBcCi0gICAgICAgICAgIjAuMTI4MDE4LCAwLjE3MDc2NCwgMC40MTUxODcsIDAuNjMwNDg5LCAwLjkxNTM3LCAxLjQ5MTEzLCAxLjg1MDM1IiwgXAotICAgICAgICAgICIwLjE0Mjc4MSwgMC4xODU4OTcsIDAuNDI5Njk1LCAwLjY0NTU2NywgMC45MjgwNzksIDEuNTA0MzMsIDEuODYzOTMiLCBcCi0gICAgICAgICAgIjAuMTY2NDUyLCAwLjIwOTU4OSwgMC40NTMxMzksIDAuNjY5MDY3LCAwLjk1NjU1MywgMS41MjU5NiwgMS44ODYyOCIsIFwKLSAgICAgICAgICAiMC4xODcyMzksIDAuMjMwMzE5LCAwLjQ3MzQ0OCwgMC42ODkxNTMsIDAuOTc2ODk4LCAxLjU0NiwgMS45MDUxOCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNjc4MTUsIDAuMjU1NTEyLCAwLjc1MjI1NSwgMS4xOTEyMywgMS43NzU4NCwgMi45NDY5LCAzLjY3Njg5IiwgXAotICAgICAgICAgICIwLjE2ODEyNCwgMC4yNTU0NTQsIDAuNzUyNzUsIDEuMTkyMjgsIDEuNzgwMjMsIDIuOTQ1MTIsIDMuNjc4MzEiLCBcCi0gICAgICAgICAgIjAuMTY4MzcyLCAwLjI1NjA3NCwgMC43NTM5OTcsIDEuMTkyMTcsIDEuNzc2MDMsIDIuOTQ1NjQsIDMuNjc2NzMiLCBcCi0gICAgICAgICAgIjAuMTcwNDk3LCAwLjI1NjQyOSwgMC43NTI0MDYsIDEuMTkwOTMsIDEuNzc1NzUsIDIuOTQ1NDksIDMuNjc1MTIiLCBcCi0gICAgICAgICAgIjAuMTc0ODY3LCAwLjI1ODU1NSwgMC43NTQ0ODUsIDEuMTkwNjksIDEuNzgwNjUsIDIuOTQ1NDcsIDMuNjc5NzUiLCBcCi0gICAgICAgICAgIjAuMTgzNzE0LCAwLjI2NDQyMiwgMC43NTI1NDcsIDEuMTkxNDMsIDEuNzc1NSwgMi45NTI1MSwgMy42NzY3MiIsIFwKLSAgICAgICAgICAiMC4xOTM0MjMsIDAuMjcxNTc3LCAwLjc1NDUzNCwgMS4xOTA5NywgMS43ODAyNCwgMi45NDU2MSwgMy42ODUyNCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yODk0MTcsIDAuNDM2MTUzLCAxLjI2ODA2LCAyLjAwMjA2LCAyLjk3OTYyLCA0LjkzNDgxLCA2LjE1NjcxIiwgXAotICAgICAgICAgICIwLjI5ODg3OSwgMC40NDU3NiwgMS4yNzc2NywgMi4wMTEyOCwgMi45ODk1NiwgNC45NDQ2NywgNi4xNjY0NyIsIFwKLSAgICAgICAgICAiMC4zMTA5ODgsIDAuNDU4MjM3LCAxLjI5MDE0LCAyLjAyNDMyLCAzLjAwMTg5LCA0Ljk1NzE1LCA2LjE3OTAxIiwgXAotICAgICAgICAgICIwLjMyMjg4NSwgMC40NzAwMzksIDEuMzAyMjgsIDIuMDM2MzgsIDMuMDE0MDcsIDQuOTY5MjYsIDYuMTkxMjIiLCBcCi0gICAgICAgICAgIjAuMzM1MDg1LCAwLjQ4MjExNywgMS4zMTQzNCwgMi4wNDg0MSwgMy4wMjY5NSwgNC45ODE2NSwgNi4yMDM1MSIsIFwKLSAgICAgICAgICAiMC4zNTQ0MSwgMC41MDE2MjQsIDEuMzMzODYsIDIuMDY4MjgsIDMuMDQ2MDIsIDUuMDAxMDcsIDYuMjIzMjUiLCBcCi0gICAgICAgICAgIjAuMzcxNDgxLCAwLjUxNzc0NiwgMS4zNTE5NiwgMi4wODU1NywgMy4wNjM0NywgNS4wMTg1MSwgNi4yNDA2MiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC41MzI1NTgsIDAuODA5NTc5LCAyLjM4MDEsIDMuNzY1ODksIDUuNTg5NjcsIDkuMjQ5NzIsIDExLjUzODgiLCBcCi0gICAgICAgICAgIjAuNTMyNTU2LCAwLjgwOTYwMSwgMi4zNzEyNywgMy43NDk4LCA1LjU4NDg0LCA5LjI0ODgyLCAxMS41MzkyIiwgXAotICAgICAgICAgICIwLjUzMzI1NCwgMC44MTE3NjEsIDIuMzgwMDEsIDMuNzY1OTEsIDUuNTg5MzgsIDkuMjQ5MzksIDExLjUzODciLCBcCi0gICAgICAgICAgIjAuNTMyNTIsIDAuODExODQ0LCAyLjM3OTk2LCAzLjc2NTY4LCA1LjU4OTc5LCA5LjI0ODQsIDExLjUzODYiLCBcCi0gICAgICAgICAgIjAuNTMzNDE5LCAwLjgxMDE5NiwgMi4zNjk2OCwgMy43NTAyMiwgNS41ODkyNCwgOS4yNDgzOSwgMTEuNTM4NiIsIFwKLSAgICAgICAgICAiMC41MzE2NjYsIDAuODA2MzQ5LCAyLjM4MTgyLCAzLjc1MjU0LCA1LjU4ODE1LCA5LjI0ODkzLCAxMS41Mzg1IiwgXAotICAgICAgICAgICIwLjUzNDk2MywgMC44MDk0OTMsIDIuMzY4NzksIDMuNzY1NzMsIDUuNTkwODcsIDkuMjQ5NjgsIDExLjUzODEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyMDY2LCAwLjAwMjA2NiwgMC4wMDIwNjcsIDAuMDAyMDY2LCAwLjAwMjA2NSwgMC4wMDIwNjgsIDAuMDAyMDY0IiwgXAotICAgICAgICAgICIwLjAwMjA0OCwgMC4wMDIwNDksIDAuMDAyMDQ5LCAwLjAwMjA0OSwgMC4wMDIwNDgsIDAuMDAyMDQ3LCAwLjAwMjA0NiIsIFwKLSAgICAgICAgICAiMC4wMDIwMzcsIDAuMDAyMDM4LCAwLjAwMjAzOCwgMC4wMDIwMzgsIDAuMDAyMDM3LCAwLjAwMjAzNywgMC4wMDIwMzciLCBcCi0gICAgICAgICAgIjAuMDAyMDMyLCAwLjAwMjAzMiwgMC4wMDIwMzQsIDAuMDAyMDMzLCAwLjAwMjAzMywgMC4wMDIwMzIsIDAuMDAyMDMyIiwgXAotICAgICAgICAgICIwLjAwMjAyOCwgMC4wMDIwMjksIDAuMDAyMDMxLCAwLjAwMjAzMSwgMC4wMDIwMzEsIDAuMDAyMDI5LCAwLjAwMjAyOSIsIFwKLSAgICAgICAgICAiMC4wMDIwMjYsIDAuMDAyMDI3LCAwLjAwMjAyOSwgMC4wMDIwMjksIDAuMDAyMDI5LCAwLjAwMjAyOSwgMC4wMDIwMjgiLCBcCi0gICAgICAgICAgIjAuMDAyMDI2LCAwLjAwMjAyOCwgMC4wMDIwMzEsIDAuMDAyMDMxLCAwLjAwMjAzMSwgMC4wMDIwMywgMC4wMDIwMyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjA3MiwgMC4wMDIwNzMsIDAuMDAyMDc1LCAwLjAwMjA3NSwgMC4wMDIwNzYsIDAuMDAyMDc2LCAwLjAwMjA3NiIsIFwKLSAgICAgICAgICAiMC4wMDIwNTksIDAuMDAyMDYxLCAwLjAwMjA2NCwgMC4wMDIwNjQsIDAuMDAyMDY0LCAwLjAwMjA2NSwgMC4wMDIwNjUiLCBcCi0gICAgICAgICAgIjAuMDAyMDQ5LCAwLjAwMjA1MiwgMC4wMDIwNTYsIDAuMDAyMDU3LCAwLjAwMjA1OCwgMC4wMDIwNTgsIDAuMDAyMDU4IiwgXAotICAgICAgICAgICIwLjAwMjA0MywgMC4wMDIwNDcsIDAuMDAyMDUyLCAwLjAwMjA1MywgMC4wMDIwNTQsIDAuMDAyMDU0LCAwLjAwMjA1NCIsIFwKLSAgICAgICAgICAiMC4wMDIwMzgsIDAuMDAyMDQzLCAwLjAwMjA1LCAwLjAwMjA1MSwgMC4wMDIwNTIsIDAuMDAyMDUyLCAwLjAwMjA1MiIsIFwKLSAgICAgICAgICAiMC4wMDIwMzQsIDAuMDAyMDQsIDAuMDAyMDQ4LCAwLjAwMjA1LCAwLjAwMjA1MSwgMC4wMDIwNTIsIDAuMDAyMDUyIiwgXAotICAgICAgICAgICIwLjAwMjAzMiwgMC4wMDIwMzgsIDAuMDAyMDQ3LCAwLjAwMjA0OSwgMC4wMDIwNTEsIDAuMDAyMDUyLCAwLjAwMjA1MiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTYyNSwgMC4wMDE2MjUsIDAuMDAxNjI1LCAwLjAwMTYyNSwgMC4wMDE2MjUsIDAuMDAxNjI0LCAwLjAwMTYyNCIsIFwKLSAgICAgICAgICAiMC4wMDE2MjEsIDAuMDAxNjIzLCAwLjAwMTYyNCwgMC4wMDE2MjQsIDAuMDAxNjI0LCAwLjAwMTYyNCwgMC4wMDE2MjQiLCBcCi0gICAgICAgICAgIjAuMDAxNjE3LCAwLjAwMTYyLCAwLjAwMTYyNCwgMC4wMDE2MjQsIDAuMDAxNjI0LCAwLjAwMTYyNSwgMC4wMDE2MjQiLCBcCi0gICAgICAgICAgIjAuMDAxNjE0LCAwLjAwMTYxOCwgMC4wMDE2MjIsIDAuMDAxNjIzLCAwLjAwMTYyNCwgMC4wMDE2MjMsIDAuMDAxNjI0IiwgXAotICAgICAgICAgICIwLjAwMTYxMSwgMC4wMDE2MTUsIDAuMDAxNjIxLCAwLjAwMTYyMywgMC4wMDE2MjMsIDAuMDAxNjIzLCAwLjAwMTYyMyIsIFwKLSAgICAgICAgICAiMC4wMDE2MDcsIDAuMDAxNjEyLCAwLjAwMTYyLCAwLjAwMTYyMiwgMC4wMDE2MjMsIDAuMDAxNjIzLCAwLjAwMTYyMyIsIFwKLSAgICAgICAgICAiMC4wMDE2MDQsIDAuMDAxNjEsIDAuMDAxNjE4LCAwLjAwMTYyMSwgMC4wMDE2MjIsIDAuMDAxNjIzLCAwLjAwMTYyMyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDU5NCwgMC4wMDA1OTUsIDAuMDAwNTk1LCAwLjAwMDU5NiwgMC4wMDA1OTYsIDAuMDAwNTk2LCAwLjAwMDU5NiIsIFwKLSAgICAgICAgICAiMC4wMDA1ODYsIDAuMDAwNTg5LCAwLjAwMDU5NCwgMC4wMDA1OTUsIDAuMDAwNTk1LCAwLjAwMDU5NSwgMC4wMDA1OTUiLCBcCi0gICAgICAgICAgIjAuMDAwNTc3LCAwLjAwMDU4MywgMC4wMDA1OTEsIDAuMDAwNTkzLCAwLjAwMDU5NCwgMC4wMDA1OTUsIDAuMDAwNTk1IiwgXAotICAgICAgICAgICIwLjAwMDU3MSwgMC4wMDA1NzgsIDAuMDAwNTg5LCAwLjAwMDU5MiwgMC4wMDA1OTMsIDAuMDAwNTk0LCAwLjAwMDU5NCIsIFwKLSAgICAgICAgICAiMC4wMDA1NjUsIDAuMDAwNTczLCAwLjAwMDU4NywgMC4wMDA1OSwgMC4wMDA1OTIsIDAuMDAwNTkzLCAwLjAwMDU5NCIsIFwKLSAgICAgICAgICAiMC4wMDA1NTUsIDAuMDAwNTY2LCAwLjAwMDU4NCwgMC4wMDA1ODgsIDAuMDAwNTksIDAuMDAwNTkzLCAwLjAwMDU5MyIsIFwKLSAgICAgICAgICAiMC4wMDA1NTEsIDAuMDAwNTYxLCAwLjAwMDU4MSwgMC4wMDA1ODYsIDAuMDAwNTg5LCAwLjAwMDU5MiwgMC4wMDA1OTIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDEzMDYsIDAuMDAxMzA3LCAwLjAwMTMwOCwgMC4wMDEzMDgsIDAuMDAxMzA4LCAwLjAwMTMwOCwgMC4wMDEzMDgiLCBcCi0gICAgICAgICAgIjAuMDAxMzExLCAwLjAwMTMxMywgMC4wMDEzMTYsIDAuMDAxMzE3LCAwLjAwMTMxNywgMC4wMDEzMTcsIDAuMDAxMzE4IiwgXAotICAgICAgICAgICIwLjAwMTMwNywgMC4wMDEzMTIsIDAuMDAxMzE4LCAwLjAwMTMxOCwgMC4wMDEzMTksIDAuMDAxMzIsIDAuMDAxMzIiLCBcCi0gICAgICAgICAgIjAuMDAxMzAzLCAwLjAwMTMwOCwgMC4wMDEzMTYsIDAuMDAxMzE4LCAwLjAwMTMxOSwgMC4wMDEzMiwgMC4wMDEzMiIsIFwKLSAgICAgICAgICAiMC4wMDEyOTgsIDAuMDAxMzA2LCAwLjAwMTMxNiwgMC4wMDEzMTcsIDAuMDAxMzE5LCAwLjAwMTMyLCAwLjAwMTMxOSIsIFwKLSAgICAgICAgICAiMC4wMDEyOTMsIDAuMDAxMzAxLCAwLjAwMTMxMywgMC4wMDEzMTYsIDAuMDAxMzE4LCAwLjAwMTMxOSwgMC4wMDEzMTkiLCBcCi0gICAgICAgICAgIjAuMDAxMjg4LCAwLjAwMTI5OCwgMC4wMDEzMTIsIDAuMDAxMzE1LCAwLjAwMTMxNywgMC4wMDEzMTksIDAuMDAxMzE5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwNTkzLCAwLjAwMDU5NCwgMC4wMDA1OTUsIDAuMDAwNTk1LCAwLjAwMDU5NiwgMC4wMDA1OTYsIDAuMDAwNTk2IiwgXAotICAgICAgICAgICIwLjAwMDU4NCwgMC4wMDA1ODgsIDAuMDAwNTkzLCAwLjAwMDU5NCwgMC4wMDA1OTUsIDAuMDAwNTk1LCAwLjAwMDU5NSIsIFwKLSAgICAgICAgICAiMC4wMDA1NzQsIDAuMDAwNTgsIDAuMDAwNTksIDAuMDAwNTkyLCAwLjAwMDU5NCwgMC4wMDA1OTMsIDAuMDAwNTk1IiwgXAotICAgICAgICAgICIwLjAwMDU2NiwgMC4wMDA1NzQsIDAuMDAwNTg4LCAwLjAwMDU5MSwgMC4wMDA1OTIsIDAuMDAwNTk0LCAwLjAwMDU5NCIsIFwKLSAgICAgICAgICAiMC4wMDA1NTksIDAuMDAwNTY5LCAwLjAwMDU4NSwgMC4wMDA1ODksIDAuMDAwNTkxLCAwLjAwMDU5MywgMC4wMDA1OTQiLCBcCi0gICAgICAgICAgIjAuMDAwNTUxLCAwLjAwMDU2MiwgMC4wMDA1ODIsIDAuMDAwNTg3LCAwLjAwMDU5LCAwLjAwMDU5MiwgMC4wMDA1OTMiLCBcCi0gICAgICAgICAgIjAuMDAwNTQ2LCAwLjAwMDU1NiwgMC4wMDA1NzksIDAuMDAwNTg1LCAwLjAwMDU4OCwgMC4wMDA1OTEsIDAuMDAwNTkyIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogTkFORDNYOCAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChOQU5EM1g4KSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuNzY3OTc0OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDYyOTQ3NDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDYyOTQ3NDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDYyNzI3NTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDI0NSwgMC4wMDI0NDcsIDAuMDAyNDQ2LCAwLjAwMjQ0NiwgMC4wMDI0NDYsIDAuMDAyNDQ2LCAwLjAwMjQ0NSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjQ1MiwgMC4wMDI0NTUsIDAuMDAyNDU1LCAwLjAwMjQ1NiwgMC4wMDI0NTYsIDAuMDAyNDU2LCAwLjAwMjQ1NiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDA2NTAzODQ7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDA2NTAzODQ7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDA2NDg3ODE7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyNDUsIDAuMDAyNDQ4LCAwLjAwMjQ0NiwgMC4wMDI0NDUsIDAuMDAyNDQ1LCAwLjAwMjQ0LCAwLjAwMjQ0NSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjQ1OSwgMC4wMDI0NjIsIDAuMDAyNDYxLCAwLjAwMjQ2MSwgMC4wMDI0NjIsIDAuMDAyNDY0LCAwLjAwMjQ2NCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQykgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDA2MzAyMjg7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDA2Mjk3MTc7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDA2MzAyMjg7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxMjUyLCAwLjAwMTI1LCAwLjAwMTI0OCwgMC4wMDEyNDgsIDAuMDAxMjQ3LCAwLjAwMTI0NywgMC4wMDEyNDgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDI3NzksIDAuMDAyNzgxLCAwLjAwMjc4MSwgMC4wMDI3ODUsIDAuMDAyNzg0LCAwLjAwMjc4NCwgMC4wMDI3ODQiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4zMzk4MDU7Ci0gICAgZnVuY3Rpb24gOiAiKCEoKEEgQikgQykpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyNzIzMiwgMC4wOTI3NzYsIDAuMTU3NDM2LCAwLjIwMzUzMSwgMC4yNzcyLCAwLjM0MTU5MywgMC40MzM2NDYiLCBcCi0gICAgICAgICAgIjAuMDM4NzE4LCAwLjEwNDI3MSwgMC4xNjg5NDMsIDAuMjE1MDI0LCAwLjI4ODcwMSwgMC4zNTMxMjEsIDAuNDQ1MTU1IiwgXAotICAgICAgICAgICIwLjA1MzcwMywgMC4xMTg5MTIsIDAuMTgzMzcxLCAwLjIyOTQxMiwgMC4zMDMwNzUsIDAuMzY2MDc0LCAwLjQ1ODA4NCIsIFwKLSAgICAgICAgICAiMC4wNjg0MDksIDAuMTM0MDIyLCAwLjE5ODExMywgMC4yNDQ2NTMsIDAuMzE4MjkyLCAwLjM4MjY5NCwgMC40NzQ2MTUiLCBcCi0gICAgICAgICAgIjAuMDgxMTkzLCAwLjE0ODYwNCwgMC4yMTI3MTQsIDAuMjU4NjYzLCAwLjMzMjExNCwgMC4zOTY1MjQsIDAuNDg4NDczIiwgXAotICAgICAgICAgICIwLjA5OTQxOCwgMC4xNzIzNSwgMC4yMzY4NjQsIDAuMjgyMjk0LCAwLjM1NTcyLCAwLjQxOTk0OSwgMC41MTE3OTUiLCBcCi0gICAgICAgICAgIjAuMTEzNTQ1LCAwLjE5MzAyNywgMC4yNTc2MDYsIDAuMzAzNjUsIDAuMzc2NDA1LCAwLjQ0MDYxNywgMC41MzIzMTMiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDQ1NDgsIDAuMTc1MzY1LCAwLjMwNjIwNSwgMC4zOTk1NSwgMC41NDg4MjcsIDAuNjc5OTQ1LCAwLjg2NjY4MiIsIFwKLSAgICAgICAgICAiMC4wNDUyMTYsIDAuMTc1Mzc1LCAwLjMwNjA5MiwgMC4zOTk1NDQsIDAuNTQ5MTY3LCAwLjY4MDEwMiwgMC44NjcwMDMiLCBcCi0gICAgICAgICAgIjAuMDUwMzI3LCAwLjE3NTQ4NSwgMC4zMDYxMTUsIDAuMzk5NTMsIDAuNTQ5MTQ1LCAwLjY3OTU0MiwgMC44NjYyNTgiLCBcCi0gICAgICAgICAgIjAuMDU3NDM3LCAwLjE3NzM0OCwgMC4zMDYxMjMsIDAuMzk5NTU0LCAwLjU0ODk4LCAwLjY4MDEzMSwgMC44NjYyODciLCBcCi0gICAgICAgICAgIjAuMDY2MjU5LCAwLjE4MTMxMywgMC4zMDcyNjIsIDAuMzk5NzI2LCAwLjU0OTExOCwgMC42Nzk5NDksIDAuODY2NDg4IiwgXAotICAgICAgICAgICIwLjA4MDk4MiwgMC4xODk3MzgsIDAuMzExNDc4LCAwLjQwMTk3MywgMC41NDkwMzMsIDAuNjc5OTgsIDAuODY2MjY5IiwgXAotICAgICAgICAgICIwLjA5MzE0MSwgMC4xOTg4OCwgMC4zMTczNTEsIDAuNDA1ODUsIDAuNTUwODQ2LCAwLjY4MDAyNywgMC44NjY2NDkiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODgxMzksIDAuMzA2OTI5LCAwLjUyNTYxOSwgMC42ODEzNzQsIDAuOTMxNDMxLCAxLjE0OTQ3LCAxLjQ2MTc4IiwgXAotICAgICAgICAgICIwLjA5ODkxNiwgMC4zMTgzNjgsIDAuNTM2OTQ0LCAwLjY5MzQyNywgMC45NDI2OTksIDEuMTYxNTYsIDEuNDczNzIiLCBcCi0gICAgICAgICAgIjAuMTExNDY4LCAwLjMzMTIwNSwgMC41NTAxMywgMC43MDYyMiwgMC45NTU4ODgsIDEuMTc0NzIsIDEuNDg2MzUiLCBcCi0gICAgICAgICAgIjAuMTIzNDc2LCAwLjM0MzM0OSwgMC41NjI0MjgsIDAuNzE4MjM5LCAwLjk2ODE1NywgMS4xODY1MywgMS40OTg4OSIsIFwKLSAgICAgICAgICAiMC4xMzUyNSwgMC4zNTUyMiwgMC41NzM5NjYsIDAuNzMwMTE1LCAwLjk4MDIzMywgMS4xOTg4NywgMS41MTExNyIsIFwKLSAgICAgICAgICAiMC4xNTM5MjcsIDAuMzczODAzLCAwLjU5Mjc5NSwgMC43NDkwNjEsIDAuOTk4Njg3LCAxLjIxNzQsIDEuNTI5ODkiLCBcCi0gICAgICAgICAgIjAuMTY5OTE5LCAwLjM4OTg4LCAwLjYwODkxNywgMC43NjU0NDMsIDEuMDE0OTcsIDEuMjMzNDksIDEuNTQ2NzMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMjUwNTEsIDAuNTM2MjczLCAwLjk1MzY0MiwgMS4yNDU5NSwgMS43MjMzMywgMi4xMzA4NSwgMi43Mjg5NSIsIFwKLSAgICAgICAgICAiMC4xMjUwNTMsIDAuNTM5MjkxLCAwLjk1MTAzLCAxLjIzOTkyLCAxLjcxNzg5LCAyLjEyMDE0LCAyLjczMDY0IiwgXAotICAgICAgICAgICIwLjEyNTAyOCwgMC41MzU5NDcsIDAuOTUzNTM0LCAxLjI1MDE3LCAxLjcyMzI1LCAyLjEzODM3LCAyLjcyMDYyIiwgXAotICAgICAgICAgICIwLjEyNTI5NCwgMC41MzkxMTgsIDAuOTUzNDYyLCAxLjI0MDY0LCAxLjcyMjE5LCAyLjEyODA2LCAyLjcyMDk1IiwgXAotICAgICAgICAgICIwLjEyNzA2NCwgMC41MzkwNDIsIDAuOTUyMzE5LCAxLjI0MDY1LCAxLjcyNDA5LCAyLjEzNzI0LCAyLjczMDg3IiwgXAotICAgICAgICAgICIwLjEzMDU5NSwgMC41Mzg5MSwgMC45NDc3MTksIDEuMjQ5NTEsIDEuNzIwNzEsIDIuMTI5MDQsIDIuNzI4NjkiLCBcCi0gICAgICAgICAgIjAuMTM1MDA5LCAwLjUzODU2MSwgMC45NDk3NDEsIDEuMjQ5MTcsIDEuNzIwNDQsIDIuMTM0MzYsIDIuNzA3ODEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjUzMzMsIDAuMDg5MjQ4LCAwLjE1Mjg0NCwgMC4xOTgyNTMsIDAuMjcwODQ1LCAwLjMzNDMwMywgMC40MjUxMTIiLCBcCi0gICAgICAgICAgIjAuMDM3MDM1LCAwLjEwMDg0OCwgMC4xNjQ0NjUsIDAuMjA5ODU0LCAwLjI4MjQyNCwgMC4zNDYwMTMsIDAuNDM2NjMiLCBcCi0gICAgICAgICAgIjAuMDUxODcxLCAwLjExNTM5MiwgMC4xNzg5MzQsIDAuMjI0MzIxLCAwLjI5NjkwNywgMC4zNjA0ODcsIDAuNDUxMTM5IiwgXAotICAgICAgICAgICIwLjA2NTgzLCAwLjEzMDQyNiwgMC4xOTM1MjUsIDAuMjM4Nzg2LCAwLjMxMTM5NywgMC4zNzQ4NTgsIDAuNDY1NTg5IiwgXAotICAgICAgICAgICIwLjA3ODA4MSwgMC4xNDUyNTksIDAuMjA4NzQzLCAwLjI1MzUyOSwgMC4zMjU5NDYsIDAuMzg5NDczLCAwLjQ4MDAxOCIsIFwKLSAgICAgICAgICAiMC4wOTU0ODEsIDAuMTY4OTM1LCAwLjIzMjU2NCwgMC4yNzc3NDEsIDAuMzQ5NTA1LCAwLjQxMjg1MSwgMC41MDM0MTQiLCBcCi0gICAgICAgICAgIjAuMTA4ODI1LCAwLjE4OTY2NCwgMC4yNTMxOSwgMC4yOTg1ODksIDAuMzcwMTcyLCAwLjQzMzQ1NCwgMC41MjM4NiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0MTAyNywgMC4xNzAxMzIsIDAuMjk5MjcsIDAuMzkxNDU1LCAwLjUzOTE1NCwgMC42Njc4MzYsIDAuODUyMzQiLCBcCi0gICAgICAgICAgIjAuMDQyMDY5LCAwLjE3MDE3MiwgMC4yOTkyNTksIDAuMzkxNDkyLCAwLjUzODg2LCAwLjY2ODAxNCwgMC44NTIyMzkiLCBcCi0gICAgICAgICAgIjAuMDQ3NjU2LCAwLjE3MDM5LCAwLjI5OTE4LCAwLjM5MTY5NCwgMC41Mzg3NzQsIDAuNjY4NDQ5LCAwLjg1MjA3OCIsIFwKLSAgICAgICAgICAiMC4wNTU2MTMsIDAuMTcyNjE4LCAwLjI5OTQ1MywgMC4zOTE2OTYsIDAuNTM4OTM2LCAwLjY2Nzk2NSwgMC44NTIyOTkiLCBcCi0gICAgICAgICAgIjAuMDY0NzM1LCAwLjE3NjYxNiwgMC4zMDA0NzMsIDAuMzkxNTIyLCAwLjUzODg0NywgMC42NjgxMzksIDAuODUyNDE0IiwgXAotICAgICAgICAgICIwLjA3OTg5MSwgMC4xODU0MDUsIDAuMzA1MTE2LCAwLjM5MzkwNSwgMC41MzkwNjEsIDAuNjY4MTAzLCAwLjg1MjA4MyIsIFwKLSAgICAgICAgICAiMC4wOTIzNzgsIDAuMTk1MDA5LCAwLjMxMTIzNSwgMC4zOTgxMTgsIDAuNTQxMDgyLCAwLjY2ODIwNiwgMC44NTIxODgiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODMwODIsIDAuMzAxOTI1LCAwLjUyMDQxOCwgMC42NzYyODQsIDAuOTI2MjM3LCAxLjE0NDM3LCAxLjQ1NzI0IiwgXAotICAgICAgICAgICIwLjA5Mjk2MywgMC4zMTIzMjgsIDAuNTMwOTk0LCAwLjY4NzA3NSwgMC45MzY4MzksIDEuMTU1MjIsIDEuNDY3NDIiLCBcCi0gICAgICAgICAgIjAuMTA1Mjk3LCAwLjMyNTAwNywgMC41NDM4MTQsIDAuNzAwMDM0LCAwLjk0OTU3OSwgMS4xNjg0NSwgMS40ODA4NiIsIFwKLSAgICAgICAgICAiMC4xMTc3NjEsIDAuMzM3NjU5LCAwLjU1NjQ0OSwgMC43MTI2NzcsIDAuOTYyNzI2LCAxLjE4MTIxLCAxLjQ5Mzg1IiwgXAotICAgICAgICAgICIwLjEzMDI4NywgMC4zNTAxOTQsIDAuNTY5MTAyLCAwLjcyNTQzNSwgMC45NzU0NTIsIDEuMTkzODYsIDEuNTA2MjEiLCBcCi0gICAgICAgICAgIjAuMTUwNjE5LCAwLjM2OTM5NywgMC41ODk3MzEsIDAuNzQ1NzE4LCAwLjk5NTc4MiwgMS4yMTQwMiwgMS41MjY4NiIsIFwKLSAgICAgICAgICAiMC4xNjc3MzEsIDAuMzg4MTM2LCAwLjYwNzM4MywgMC43NjM1ODEsIDEuMDEzNzUsIDEuMjMyMDEsIDEuNTQ0MDgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMjUwNDQsIDAuNTM5MTIxLCAwLjk1MzgyNiwgMS4yNDkwNSwgMS43MjM0NCwgMi4xMzA3OCwgMi43MDgzNyIsIFwKLSAgICAgICAgICAiMC4xMjQ3ODQsIDAuNTM1OTUxLCAwLjk0NzU1NSwgMS4yNDYwMSwgMS43MTMwNCwgMi4xMzA4NywgMi43Mjg5NyIsIFwKLSAgICAgICAgICAiMC4xMjUxNDYsIDAuNTM4NjQsIDAuOTUzNDcyLCAxLjI1MDAyLCAxLjcxNzgyLCAyLjEzODUsIDIuNzA3NjkiLCBcCi0gICAgICAgICAgIjAuMTI2NDY2LCAwLjUzOTE0OCwgMC45NTA5OTQsIDEuMjQ5MDYsIDEuNzIzNTcsIDIuMTM2MjgsIDIuNzA3NzUiLCBcCi0gICAgICAgICAgIjAuMTI5MzQ2LCAwLjUzNzk1NCwgMC45NTA5MiwgMS4yNDkwMiwgMS43MjM3LCAyLjEzNzI3LCAyLjczMDU4IiwgXAotICAgICAgICAgICIwLjEzNTcwNCwgMC41MzU2LCAwLjk1MzEzMSwgMS4yNDc2LCAxLjcxMjEzLCAyLjEzMzk0LCAyLjczMDkzIiwgXAotICAgICAgICAgICIwLjE0MjcyMiwgMC41Mzg4NjQsIDAuOTUyODYzLCAxLjI0NzExLCAxLjcyMjM3LCAyLjEyMTgsIDIuNzI0OTUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjMwOTcsIDAuMDg2NzcxLCAwLjE1MDQyMSwgMC4xOTU4NDEsIDAuMjY4NTc2LCAwLjMzMjE1NCwgMC40MjMxOCIsIFwKLSAgICAgICAgICAiMC4wMzQ4MywgMC4wOTg0NzQsIDAuMTYyMTQyLCAwLjIwNzYzLCAwLjI4MDI5NCwgMC4zNDM4ODUsIDAuNDM0NzY4IiwgXAotICAgICAgICAgICIwLjA0OTY4OCwgMC4xMTMxNTEsIDAuMTc2NjMyLCAwLjIyMjA5MiwgMC4yOTQ3MTcsIDAuMzU4MzE4LCAwLjQ0NzMwMyIsIFwKLSAgICAgICAgICAiMC4wNjMwMzIsIDAuMTI3NjQ2LCAwLjE5MTIxMSwgMC4yMzY2MTYsIDAuMzA5MzA1LCAwLjM3MjkwOCwgMC40NjM4MzUiLCBcCi0gICAgICAgICAgIjAuMDc0NTQsIDAuMTQyODczLCAwLjIwNjA2NCwgMC4yNTE0MTUsIDAuMzIzOTUzLCAwLjM4NzQxOSwgMC40NzgzNzciLCBcCi0gICAgICAgICAgIjAuMDkwNzMxLCAwLjE2NjUxNiwgMC4yMzAxOTEsIDAuMjc1MDAzLCAwLjM0NzQ5OCwgMC40MTA5NzYsIDAuNTAxNTgzIiwgXAotICAgICAgICAgICIwLjEwMzMxMywgMC4xODc2OTgsIDAuMjUwODc0LCAwLjI5NjM0MSwgMC4zNjgyMjgsIDAuNDMxNjA2LCAwLjUyMjMyNyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzODQ2OSwgMC4xNjg3MzIsIDAuMjk4Mjc4LCAwLjM5MTg1NSwgMC41MzkwNjIsIDAuNjY5MjE2LCAwLjg1NTgwMSIsIFwKLSAgICAgICAgICAiMC4wMzk4NzksIDAuMTY4NzMxLCAwLjI5ODI4MSwgMC4zOTEwNDUsIDAuNTQwNjM0LCAwLjY3MDg4OCwgMC44NTU1MzkiLCBcCi0gICAgICAgICAgIjAuMDQ2MDk1LCAwLjE2ODU1MSwgMC4yOTgyMDYsIDAuMzkxMDQ4LCAwLjUzOTI2NywgMC42NjkyOTUsIDAuODU0NzE0IiwgXAotICAgICAgICAgICIwLjA1NDM5MSwgMC4xNzE1ODMsIDAuMjk5MDEyLCAwLjM5MDk2OSwgMC41Mzk1NTMsIDAuNjY5MTc3LCAwLjg1NDk0NCIsIFwKLSAgICAgICAgICAiMC4wNjQxNjEsIDAuMTc1MTE0LCAwLjI5OTc0MSwgMC4zOTExODksIDAuNTM5NDc5LCAwLjY2OTg2MywgMC44NTQ5NzkiLCBcCi0gICAgICAgICAgIjAuMDc5Mzk0LCAwLjE4NDI1NywgMC4zMDQzMjYsIDAuMzk0NzcyLCAwLjU0MTA5OSwgMC42Njk5MjYsIDAuODU0ODEiLCBcCi0gICAgICAgICAgIjAuMDkyMjM3LCAwLjE5MzQ3OCwgMC4zMTA5OTIsIDAuMzk3OTIxLCAwLjU0MTk3LCAwLjY3MTQxNCwgMC44NTU1MDIiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzMwODEsIDAuMjkxODExLCAwLjUxMDQwOSwgMC42NjYzNzQsIDAuOTE1NTk3LCAxLjEzNDQ3LCAxLjQ0NTc2IiwgXAotICAgICAgICAgICIwLjA4MTczMiwgMC4zMDEzMTksIDAuNTE5ODY3LCAwLjY3NTg4OCwgMC45MjU1MDcsIDEuMTQzODksIDEuNDU1ODYiLCBcCi0gICAgICAgICAgIjAuMDkzMjgxLCAwLjMxMzE2NSwgMC41MzE5MiwgMC42ODgwODYsIDAuOTM3OTQyLCAxLjE1NjExLCAxLjQ2OTA1IiwgXAotICAgICAgICAgICIwLjEwNTY4OCwgMC4zMjUwNjksIDAuNTQzODc5LCAwLjcwMDUxMywgMC45NDk4NzgsIDEuMTY4NDUsIDEuNDgwNTIiLCBcCi0gICAgICAgICAgIjAuMTE4MzI5LCAwLjMzNzYyMiwgMC41NTY3MzIsIDAuNzEyOTcsIDAuOTYzMDc3LCAxLjE4MTU1LCAxLjQ5Mzc5IiwgXAotICAgICAgICAgICIwLjEzODM5MSwgMC4zNTY2MDUsIDAuNTc1ODI3LCAwLjczMjAyMiwgMC45ODE3MDUsIDEuMjAwMTcsIDEuNTEyODYiLCBcCi0gICAgICAgICAgIjAuMTU1MjE5LCAwLjM3MzYzNCwgMC41OTI4MTgsIDAuNzQ4OTA2LCAwLjk5ODcxNiwgMS4yMTcyOCwgMS41Mjk0MSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEyNTExOCwgMC41MzgwMDUsIDAuOTQ3Nzk0LCAxLjI0OTc1LCAxLjcxNjI1LCAyLjEzMDg4LCAyLjcwOTg1IiwgXAotICAgICAgICAgICIwLjEyNDg3OSwgMC41Mzg5MzYsIDAuOTQ3MTc0LCAxLjI0NTc4LCAxLjcxNzU5LCAyLjEyMDA5LCAyLjcyMDI5IiwgXAotICAgICAgICAgICIwLjEyNTM0NSwgMC41MzU4MjIsIDAuOTUxNzA5LCAxLjI0NTg4LCAxLjcxMTgxLCAyLjEzMDQ5LCAyLjcwNjE3IiwgXAotICAgICAgICAgICIwLjEyODg3NCwgMC41Mzg0MzMsIDAuOTUxNTk2LCAxLjI0MDQ3LCAxLjcxMTAxLCAyLjEzNywgMi43MTcwNCIsIFwKLSAgICAgICAgICAiMC4xMzM1NjYsIDAuNTM4ODA1LCAwLjk0NjM2NCwgMS4yMzk0MSwgMS43MDk4MSwgMi4xMjEwOSwgMi43MzA4NyIsIFwKLSAgICAgICAgICAiMC4xNDQ0MzEsIDAuNTM2NDcxLCAwLjk1Mjk2MywgMS4yNDkyNywgMS43MTA2NSwgMi4xMzUzNiwgMi43MzEwNyIsIFwKLSAgICAgICAgICAiMC4xNTUyNDIsIDAuNTQwMjQ1LCAwLjk0NjAyMSwgMS4yNDc1NiwgMS43MjAzLCAyLjEzMDg0LCAyLjcyNjAyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTUxMjUsIDAuMDE1MTI1LCAwLjAxNTEyNiwgMC4wMTUxMjQsIDAuMDE1MTIzLCAwLjAxNTEyNSwgMC4wMTUxMjMiLCBcCi0gICAgICAgICAgIjAuMDE0OTk0LCAwLjAxNTAzMywgMC4wMTUwNDEsIDAuMDE1MDQsIDAuMDE1MDQyLCAwLjAxNTA0MSwgMC4wMTUwNCIsIFwKLSAgICAgICAgICAiMC4wMTQ5MjIsIDAuMDE0OTk4LCAwLjAxNTAwOSwgMC4wMTUwMTUsIDAuMDE1MDE2LCAwLjAxNTAxNiwgMC4wMTUwMTciLCBcCi0gICAgICAgICAgIjAuMDE0ODc5LCAwLjAxNDk3NiwgMC4wMTQ5NywgMC4wMTUwMDMsIDAuMDE1MDA2LCAwLjAxNTAxLCAwLjAxNTAxMiIsIFwKLSAgICAgICAgICAiMC4wMTQ4NTEsIDAuMDE0OTU3LCAwLjAxNDk4MiwgMC4wMTQ5ODksIDAuMDE0OTk1LCAwLjAxNTAwMSwgMC4wMTUwMDMiLCBcCi0gICAgICAgICAgIjAuMDE0ODE5LCAwLjAxNDkzNSwgMC4wMTQ5NiwgMC4wMTQ5NzIsIDAuMDE0OTczLCAwLjAxNDk5LCAwLjAxNDk5MiIsIFwKLSAgICAgICAgICAiMC4wMTQ4MDcsIDAuMDE0OTE3LCAwLjAxNDk1NCwgMC4wMTQ5NjYsIDAuMDE0OTc4LCAwLjAxNDk4LCAwLjAxNDk4OCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0MDgsIDAuMDA0MTI5LCAwLjAwNDEzNiwgMC4wMDQxMzgsIDAuMDA0MTQsIDAuMDA0MTQxLCAwLjAwNDE0MiIsIFwKLSAgICAgICAgICAiMC4wMDM4ODcsIDAuMDA0MDY2LCAwLjAwNDA5OSwgMC4wMDQxMSwgMC4wMDQxMiwgMC4wMDQxMjUsIDAuMDA0MTI5IiwgXAotICAgICAgICAgICIwLjAwMzc1MSwgMC4wMDM5OTgsIDAuMDA0MDU2LCAwLjAwNDA3OCwgMC4wMDQwOTYsIDAuMDA0MTA2LCAwLjAwNDExNCIsIFwKLSAgICAgICAgICAiMC4wMDM2NzEsIDAuMDAzOTQ0LCAwLjAwNDAxNiwgMC4wMDQwNDQsIDAuMDA0MDcsIDAuMDA0MDgzLCAwLjAwNDA5NiIsIFwKLSAgICAgICAgICAiMC4wMDM2MTksIDAuMDAzODkxLCAwLjAwMzk4LCAwLjAwNDAxNCwgMC4wMDQwNDYsIDAuMDA0MDY0LCAwLjAwNDA4MSIsIFwKLSAgICAgICAgICAiMC4wMDM1NjgsIDAuMDAzODMxLCAwLjAwMzkzNCwgMC4wMDM5NzUsIDAuMDA0MDE1LCAwLjAwNDAzOCwgMC4wMDQwNTkiLCBcCi0gICAgICAgICAgIjAuMDAzNTM4LCAwLjAwMzc4MywgMC4wMDM4OTMsIDAuMDAzOTM4LCAwLjAwMzk4NSwgMC4wMDQwMTIsIDAuMDA0MDM3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTI1MjYsIDAuMDEyNTM2LCAwLjAxMjUzNywgMC4wMTI1MzgsIDAuMDEyNTM4LCAwLjAxMjUzNiwgMC4wMTI1MzgiLCBcCi0gICAgICAgICAgIjAuMDEyNDMxLCAwLjAxMjUxMywgMC4wMTI1MjYsIDAuMDEyNTI4LCAwLjAxMjUzMywgMC4wMTI1MzQsIDAuMDEyNTM1IiwgXAotICAgICAgICAgICIwLjAxMjMzNCwgMC4wMTI0NzksIDAuMDEyNTA1LCAwLjAxMjUxNCwgMC4wMTI1MjEsIDAuMDEyNTI1LCAwLjAxMjUyOCIsIFwKLSAgICAgICAgICAiMC4wMTIyNzksIDAuMDEyNDU3LCAwLjAxMjQ5MSwgMC4wMTI1MDEsIDAuMDEyNTEzLCAwLjAxMjUxNywgMC4wMTI1MjQiLCBcCi0gICAgICAgICAgIjAuMDEyMjQxLCAwLjAxMjQyNCwgMC4wMTI0NzUsIDAuMDEyNDg5LCAwLjAxMjUsIDAuMDEyNTEsIDAuMDEyNTE5IiwgXAotICAgICAgICAgICIwLjAxMjIsIDAuMDEyMzk4LCAwLjAxMjQ1LCAwLjAxMjQ2OCwgMC4wMTI0ODgsIDAuMDEyNSwgMC4wMTI1MDQiLCBcCi0gICAgICAgICAgIjAuMDEyMTg1LCAwLjAxMjM3MiwgMC4wMTI0MzIsIDAuMDEyNDU2LCAwLjAxMjQ3NiwgMC4wMTI0ODksIDAuMDEyNDk5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQwNzQsIDAuMDA0MTIzLCAwLjAwNDEzLCAwLjAwNDEzMiwgMC4wMDQxMzQsIDAuMDA0MTM1LCAwLjAwNDEzNiIsIFwKLSAgICAgICAgICAiMC4wMDM4ODMsIDAuMDA0MDYsIDAuMDA0MDkzLCAwLjAwNDEwNCwgMC4wMDQxMTQsIDAuMDA0MTE5LCAwLjAwNDEyMyIsIFwKLSAgICAgICAgICAiMC4wMDM3NDcsIDAuMDAzOTkyLCAwLjAwNDA1LCAwLjAwNDA3LCAwLjAwNDA4OCwgMC4wMDQwOTgsIDAuMDA0MTA3IiwgXAotICAgICAgICAgICIwLjAwMzY2OSwgMC4wMDM5MzcsIDAuMDA0MDEyLCAwLjAwNDAzOSwgMC4wMDQwNjQsIDAuMDA0MDc4LCAwLjAwNDA5MSIsIFwKLSAgICAgICAgICAiMC4wMDM2MTksIDAuMDAzODksIDAuMDAzOTc5LCAwLjAwNDAxMiwgMC4wMDQwNDMsIDAuMDA0MDYxLCAwLjAwNDA3NyIsIFwKLSAgICAgICAgICAiMC4wMDM1NjgsIDAuMDAzODIxLCAwLjAwMzkyOSwgMC4wMDM5NjksIDAuMDA0MDA5LCAwLjAwNDAzMSwgMC4wMDQwNTMiLCBcCi0gICAgICAgICAgIjAuMDAzNTQxLCAwLjAwMzc4MywgMC4wMDM4OTEsIDAuMDAzOTM2LCAwLjAwMzk4MiwgMC4wMDQwMDgsIDAuMDA0MDM0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDk4MzEsIDAuMDA5ODczLCAwLjAwOTg3NiwgMC4wMDk4NzksIDAuMDA5ODgxLCAwLjAwOTg4LCAwLjAwOTg4MSIsIFwKLSAgICAgICAgICAiMC4wMDk3NTEsIDAuMDA5OTA3LCAwLjAwOTkzMywgMC4wMDk5NDQsIDAuMDA5OTQ3LCAwLjAwOTk1MSwgMC4wMDk5NTMiLCBcCi0gICAgICAgICAgIjAuMDA5NjQ0LCAwLjAwOTg4MSwgMC4wMDk5MjMsIDAuMDA5OTM3LCAwLjAwOTk0OSwgMC4wMDk5NTYsIDAuMDA5OTY1IiwgXAotICAgICAgICAgICIwLjAwOTU2LCAwLjAwOTg0MiwgMC4wMDk5LCAwLjAwOTkxOSwgMC4wMDk5NCwgMC4wMDk5NDcsIDAuMDA5OTU1IiwgXAotICAgICAgICAgICIwLjAwOTUxMSwgMC4wMDk4MiwgMC4wMDk4ODcsIDAuMDA5OTA5LCAwLjAwOTkzMSwgMC4wMDk5NDIsIDAuMDA5OTUiLCBcCi0gICAgICAgICAgIjAuMDA5NDY1LCAwLjAwOTc3LCAwLjAwOTg1MywgMC4wMDk4ODMsIDAuMDA5OTEyLCAwLjAwOTkyNiwgMC4wMDk5MzgiLCBcCi0gICAgICAgICAgIjAuMDA5NDQxLCAwLjAwOTczNSwgMC4wMDk4MzMsIDAuMDA5ODYzLCAwLjAwOTg4NywgMC4wMDk5MTQsIDAuMDA5OTMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDA1MywgMC4wMDQxMTIsIDAuMDA0MTIsIDAuMDA0MTIyLCAwLjAwNDEyNSwgMC4wMDQxMjYsIDAuMDA0MTI3IiwgXAotICAgICAgICAgICIwLjAwMzgyNCwgMC4wMDQwMzcsIDAuMDA0MDc2LCAwLjAwNDA4OCwgMC4wMDQxLCAwLjAwNDEwNiwgMC4wMDQxMTEiLCBcCi0gICAgICAgICAgIjAuMDAzNjcxLCAwLjAwMzk1NywgMC4wMDQwMjUsIDAuMDA0MDQ4LCAwLjAwNDA3LCAwLjAwNDA4MSwgMC4wMDQwOTIiLCBcCi0gICAgICAgICAgIjAuMDAzNjA4LCAwLjAwMzg5NSwgMC4wMDM5ODIsIDAuMDA0MDEzLCAwLjAwNDA0MywgMC4wMDQwNTksIDAuMDA0MDczIiwgXAotICAgICAgICAgICIwLjAwMzU1NSwgMC4wMDM4NCwgMC4wMDM5NDEsIDAuMDAzOTgsIDAuMDA0MDE3LCAwLjAwNDAzNywgMC4wMDQwNTYiLCBcCi0gICAgICAgICAgIjAuMDAzNTQyLCAwLjAwMzc3OCwgMC4wMDM4OTEsIDAuMDAzOTM3LCAwLjAwMzk4MiwgMC4wMDQwMDgsIDAuMDA0MDMyIiwgXAotICAgICAgICAgICIwLjAwMzU0MiwgMC4wMDM3MzYsIDAuMDAzODUzLCAwLjAwMzkwMiwgMC4wMDM5NTMsIDAuMDAzOTgzLCAwLjAwNDAxMSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBOQU5ENEJYMiAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoTkFORDRCWDIpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4yNzg2MjE7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEFOKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA1MDE2NTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA1MDEyNDg7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNTAxNjU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNjc1LCAwLjAwMDY2LCAwLjAwMDY1LCAwLjAwMDY0NSwgMC4wMDA2NDIsIDAuMDAwNjQxLCAwLjAwMDYzOSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTQwOSwgMC4wMDEzOTksIDAuMDAxMzkzLCAwLjAwMTM5LCAwLjAwMTM4OCwgMC4wMDEzODYsIDAuMDAxMzg1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE1MTA2NTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE1MTA2NTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE1MDQyODsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA2MTIsIDAuMDAwNjExLCAwLjAwMDYxMSwgMC4wMDA2MTEsIDAuMDAwNjEyLCAwLjAwMDYxMSwgMC4wMDA2MTEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA2MTMsIDAuMDAwNjE0LCAwLjAwMDYxNCwgMC4wMDA2MTQsIDAuMDAwNjE0LCAwLjAwMDYxNCwgMC4wMDA2MTQiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEMpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTU0MTk0OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTU0MTk0OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTUzNzU0OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDYxMiwgMC4wMDA2MTEsIDAuMDAwNjExLCAwLjAwMDYxMSwgMC4wMDA2MTEsIDAuMDAwNjExLCAwLjAwMDYxMSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDYxMywgMC4wMDA2MTQsIDAuMDAwNjE0LCAwLjAwMDYxNCwgMC4wMDA2MTQsIDAuMDAwNjE0LCAwLjAwMDYxNCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNTMwNzE7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNTI5MjE7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNTMwNzE7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMDYxLCAwLjAwMDA2MSwgMC4wMDAwNiwgMC4wMDAwNiwgMC4wMDAwNiwgMC4wMDAwNjEsIDAuMDAwMDYxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNjk1LCAwLjAwMDY5NiwgMC4wMDA2OTgsIDAuMDAwNjk2LCAwLjAwMDY5NiwgMC4wMDA2OTYsIDAuMDAwNjk2Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMDYzOTM2NzsKLSAgICBmdW5jdGlvbiA6ICIoISgoKCghQU4pIEIpIEMpIEQpKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQU4iOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExMTE3MiwgMC4yOTM5NzgsIDAuNDM4NjA5LCAwLjYxOTA2NSwgMC43OTkzNDMsIDAuOTc5NjIxLCAxLjE1OTc1IiwgXAotICAgICAgICAgICIwLjEyMjg5NiwgMC4zMDU2OCwgMC40NTAzOTgsIDAuNjMwODEyLCAwLjgxMTEsIDAuOTkxNDA1LCAxLjE3MTQ5IiwgXAotICAgICAgICAgICIwLjEzODM2MiwgMC4zMjEyMzgsIDAuNDY1ODgyLCAwLjY0NjM0NiwgMC44MjY2NTcsIDEuMDA2OTMsIDEuMTg3MTIiLCBcCi0gICAgICAgICAgIjAuMTUzNzE4LCAwLjMzNjU2MywgMC40ODEyMTksIDAuNjYxNjYsIDAuODQxOTg4LCAxLjAyMjIyLCAxLjIwMjMzIiwgXAotICAgICAgICAgICIwLjE2ODczLCAwLjM1MTU4OCwgMC40OTYyMjcsIDAuNjc2NjQxLCAwLjg1Njk0NCwgMS4wMzY4NywgMS4yMTczOSIsIFwKLSAgICAgICAgICAiMC4xOTI0NTYsIDAuMzc1MjM4LCAwLjUxOTg5NCwgMC43MDAzMzcsIDAuODgwNTk0LCAxLjA2MDksIDEuMjQxMDIiLCBcCi0gICAgICAgICAgIjAuMjExNywgMC4zOTQ0OTcsIDAuNTM5MTIyLCAwLjcxOTU4MSwgMC44OTk4OTEsIDEuMDgwMDksIDEuMjYwMzYiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTE2NTQyLCAwLjQ4MDc1NiwgMC43NzM5ODEsIDEuMTM5NzUsIDEuNTA1OTYsIDEuODcyNjYsIDIuMjQiLCBcCi0gICAgICAgICAgIjAuMTE2NDY5LCAwLjQ4MDU2OCwgMC43NzM1OTUsIDEuMTM5NzYsIDEuNTA2NTIsIDEuODcyMjksIDIuMjM5NzYiLCBcCi0gICAgICAgICAgIjAuMTE2NDMsIDAuNDgwNjcyLCAwLjc3Mzg5NiwgMS4xNDAyMywgMS41MDYxOSwgMS44NzMwMiwgMi4yMzgzMSIsIFwKLSAgICAgICAgICAiMC4xMTY0NTcsIDAuNDgwNjQxLCAwLjc3MzgzNiwgMS4xMzk4MywgMS41MDYwMiwgMS44NzIxNSwgMi4yMzg2MiIsIFwKLSAgICAgICAgICAiMC4xMTY1MzMsIDAuNDgwNzc2LCAwLjc3MzYwNiwgMS4xNDAyMywgMS41MDU5NSwgMS44NzIwOCwgMi4yMzg4NSIsIFwKLSAgICAgICAgICAiMC4xMTY5NDksIDAuNDgwNzQ2LCAwLjc3MzU2MSwgMS4xNDAwOSwgMS41MDY1OSwgMS44NzIyNiwgMi4yMzkxOSIsIFwKLSAgICAgICAgICAiMC4xMTgwMDMsIDAuNDgwNzUyLCAwLjc3Mzc3NSwgMS4xNDAzLCAxLjUwNjYyLCAxLjg3MjksIDIuMjM4MzkiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzIxNDYsIDEuMTYxMjQsIDEuODMyLCAyLjY3MTI1LCAzLjUwODc1LCA0LjM0NzA2LCA1LjE4NDk2IiwgXAotICAgICAgICAgICIwLjMzMjc1NywgMS4xNzI2LCAxLjg0MzMzLCAyLjY4MjQ4LCAzLjUxOTk5LCA0LjM1ODQ3LCA1LjE5NjQiLCBcCi0gICAgICAgICAgIjAuMzQ3NTU5LCAxLjE4NzYsIDEuODU5MDksIDIuNjk3MzgsIDMuNTM1MjksIDQuMzczMjIsIDUuMjExMyIsIFwKLSAgICAgICAgICAiMC4zNjE5ODYsIDEuMjAyMTUsIDEuODczMDUsIDIuNzEyMTIsIDMuNTQ5NTUsIDQuMzg4MTQsIDUuMjI2MDciLCBcCi0gICAgICAgICAgIjAuMzc2MTQ4LCAxLjIxNjQ4LCAxLjg4ODA0LCAyLjcyNjM2LCAzLjU2NDI3LCA0LjQwMjIxLCA1LjI0MDMxIiwgXAotICAgICAgICAgICIwLjM5Njg3MSwgMS4yMzcyNCwgMS45MDg2NSwgMi43NDcxMywgMy41ODUzMywgNC40MjMxOCwgNS4yNjEyOSIsIFwKLSAgICAgICAgICAiMC40MTMzMDQsIDEuMjU0MTMsIDEuOTI1MjIsIDIuNzYzODIsIDMuNjAxNjEsIDQuNDM5ODQsIDUuMjc3ODYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuNDM4NTQxLCAyLjAxMTcsIDMuMjc2NDUsIDQuODMyMywgNi4zODUzOCwgNy45NDIwMiwgOS41MDAzNCIsIFwKLSAgICAgICAgICAiMC40Mzg1MSwgMi4wMTE2NiwgMy4yNzYzNiwgNC44MzIxMSwgNi4zODQ3OSwgNy45NDE4MSwgOS41MDAzNiIsIFwKLSAgICAgICAgICAiMC40Mzk0NiwgMi4wMTE3MywgMy4yNzcxNCwgNC44MzIwNCwgNi4zODEzNiwgNy45NDE1NiwgOS40OTkyIiwgXAotICAgICAgICAgICIwLjQzODUwOSwgMi4wMTE1NywgMy4yNzY0NywgNC44MzIsIDYuMzg0OTcsIDcuOTQxNywgOS41MDAxNiIsIFwKLSAgICAgICAgICAiMC40Mzk0OTUsIDIuMDExNzQsIDMuMjc3MTUsIDQuODMyMDYsIDYuMzgxNTYsIDcuOTQxNzcsIDkuNDk5NDIiLCBcCi0gICAgICAgICAgIjAuNDM5NTA2LCAyLjAxMTUsIDMuMjc2ODUsIDQuODIyOSwgNi4zODA5MiwgNy45NDE5NywgOS40OTkxOCIsIFwKLSAgICAgICAgICAiMC40Mzk1NiwgMi4wMDE1NSwgMy4yNTM4OCwgNC44MzE4NywgNi4zODQ4OSwgNy45NDE1MiwgOS40OTkxNCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTkwNzEsIDAuMjQwNSwgMC4zODQ4MDQsIDAuNTY1MDk0LCAwLjc0NTM0NSwgMC45MjU0NjQsIDEuMTA1NDciLCBcCi0gICAgICAgICAgIjAuMDcwNjMyLCAwLjI1MjA2MiwgMC4zOTY0LCAwLjU3NjcwNSwgMC43NTY5OTYsIDAuOTM3MTE5LCAxLjExNzM2IiwgXAotICAgICAgICAgICIwLjA4NTMzMywgMC4yNjY0MzcsIDAuNDA4NzU4LCAwLjU4OTAyNCwgMC43NjkyODksIDAuOTQ5Mzg4LCAxLjEyOTU2IiwgXAotICAgICAgICAgICIwLjEwMDMwNywgMC4yODA5OTEsIDAuNDI1Mjk4LCAwLjYwNTYxNSwgMC43ODU4NjMsIDAuOTY2MTMsIDEuMTQ2MTUiLCBcCi0gICAgICAgICAgIjAuMTE0OTkxLCAwLjI5NTQ4NSwgMC40Mzk3MDQsIDAuNjE5OTMxLCAwLjgwMDE3OCwgMC45NzUxMSwgMS4xNTUxMyIsIFwKLSAgICAgICAgICAiMC4xMzkwNjYsIDAuMzE5MDQ4LCAwLjQ2Mjk2MywgMC42NDMxNSwgMC44MjMyOTMsIDEuMDAzNDYsIDEuMTgzOCIsIFwKLSAgICAgICAgICAiMC4xNTg4OTcsIDAuMzQwNDM4LCAwLjQ4MzU5LCAwLjY2MzU2OSwgMC44NDM2MTQsIDEuMDIzNzMsIDEuMjAzOTEiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTA3NzAxLCAwLjQ3NDQ1MywgMC43Njc2NzQsIDEuMTMzOCwgMS40OTk3NCwgMS44NjY1NSwgMi4yMzE3NiIsIFwKLSAgICAgICAgICAiMC4xMDc2MTksIDAuNDc0MTUsIDAuNzY3MzY3LCAxLjEzMzkyLCAxLjQ5OTY3LCAxLjg2NzU2LCAyLjIzMjY2IiwgXAotICAgICAgICAgICIwLjEwODk4MiwgMC40NzQxODUsIDAuNzY3NDM5LCAxLjEzMzM0LCAxLjUwMDIsIDEuODY2NTUsIDIuMjMzNzUiLCBcCi0gICAgICAgICAgIjAuMTEzMDgyLCAwLjQ3NDI2NCwgMC43NjczOTcsIDEuMTM0MjQsIDEuNTAwMzMsIDEuODY2MDEsIDIuMjMyNSIsIFwKLSAgICAgICAgICAiMC4xMTkwNTIsIDAuNDc0MjM2LCAwLjc2NzE0NiwgMS4xMzM0NCwgMS41MDAxNCwgMS44NjY1NiwgMi4yMzE3NyIsIFwKLSAgICAgICAgICAiMC4xMjk5MzksIDAuNDc1MTUzLCAwLjc2NzM3NCwgMS4xMzQzNSwgMS40OTk5MywgMS44NjU2OCwgMi4yMzI1MSIsIFwKLSAgICAgICAgICAiMC4xNDExNDgsIDAuNDc3OTUxLCAwLjc2NzMzNywgMS4xMzM2MywgMS41MDAyMiwgMS44NjU5NiwgMi4yMzIzMSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yNzI1NDksIDEuMTEyMDEsIDEuNzgxNzIsIDIuNjE5ODIsIDMuNDU4MjYsIDQuMjk3NDIsIDUuMTM0NDYiLCBcCi0gICAgICAgICAgIjAuMjgyODIxLCAxLjEyMjQ1LCAxLjc5MzQyLCAyLjYzMjMsIDMuNDcwMDIsIDQuMzA4MzUsIDUuMTQ2NDQiLCBcCi0gICAgICAgICAgIjAuMjk1NTQyLCAxLjEzNTQ2LCAxLjgwNjk2LCAyLjY0NTQ3LCAzLjQ4MzU4LCA0LjMyMTQ5LCA1LjE1OTczIiwgXAotICAgICAgICAgICIwLjMwNzQ0OCwgMS4xNDc3MiwgMS44MTkwNywgMi42NTc4OCwgMy40OTYwNiwgNC4zMzQsIDUuMTcyMDIiLCBcCi0gICAgICAgICAgIjAuMzE5MDc1LCAxLjE2MDE2LCAxLjgzMTgzLCAyLjY2OTY5LCAzLjUwNzY4LCA0LjM0NTk1LCA1LjE4NDE5IiwgXAotICAgICAgICAgICIwLjMzNzQ0OCwgMS4xNzgwNywgMS44NDk4NiwgMi42ODg1OCwgMy41MjY4NSwgNC4zNjQ2MSwgNS4yMDI4MiIsIFwKLSAgICAgICAgICAiMC4zNTMyNDksIDEuMTkzOTMsIDEuODY1NDksIDIuNzA0NjIsIDMuNTQyNDEsIDQuMzgwNzgsIDUuMjE4ODUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuNDM3MTA5LCAyLjAxMTg5LCAzLjI2NDY4LCA0LjgxOTgyLCA2LjM4NDAyLCA3Ljk0MTkxLCA5LjQ5ODc2IiwgXAotICAgICAgICAgICIwLjQzODUzOSwgMi4wMDE0MSwgMy4yNTYzNCwgNC44MzE5LCA2LjM4NTA5LCA3Ljk0MTY1LCA5LjQ5OTIxIiwgXAotICAgICAgICAgICIwLjQzNjkzOSwgMi4wMTEzNywgMy4yNzY4LCA0LjgzMTg4LCA2LjM4MTQyLCA3Ljk0MTQ2LCA5LjQ5OTE4IiwgXAotICAgICAgICAgICIwLjQzNzEzLCAyLjAxMTIxLCAzLjI3NjU3LCA0LjgyMTc5LCA2LjM4MTE4LCA3Ljk0MDU5LCA5LjQ5OTE4IiwgXAotICAgICAgICAgICIwLjQzOTU4NCwgMi4wMDExNiwgMy4yNTI4LCA0LjgzMTY5LCA2LjM4NDksIDcuOTQxNTQsIDkuNDk5NCIsIFwKLSAgICAgICAgICAiMC40Mzg1MTUsIDIuMDEwNTUsIDMuMjc2NzIsIDQuODIyNDYsIDYuMzgyNDUsIDcuOTQxMzgsIDkuNDk5MTciLCBcCi0gICAgICAgICAgIjAuNDM5MzEzLCAyLjAxNTUzLCAzLjI1NDE3LCA0LjgzMTg0LCA2LjM4NTA3LCA3Ljk0MTUxLCA5LjQ5OTgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU2NTE4LCAwLjIzNzA5NiwgMC4zODEyOTUsIDAuNTYxNDM2LCAwLjc0MTY1NiwgMC45MjE5MTMsIDEuMTAxNzEiLCBcCi0gICAgICAgICAgIjAuMDY4MTg4LCAwLjI0ODgwNiwgMC4zOTI5NTksIDAuNTczMjQ5LCAwLjc1MzI1OSwgMC45MzMyODYsIDEuMTEzNjkiLCBcCi0gICAgICAgICAgIjAuMDgyOTAxLCAwLjI2MzIyOSwgMC40MDczODIsIDAuNTg1MTc5LCAwLjc2NTMwMiwgMC45NDU0NTYsIDEuMTI1ODYiLCBcCi0gICAgICAgICAgIjAuMDk3ODYyLCAwLjI3Njk3OCwgMC40MjExNjMsIDAuNjAxMjUzLCAwLjc4MTUwNCwgMC45NjE3MzgsIDEuMTQxNzUiLCBcCi0gICAgICAgICAgIjAuMTEyNTc2LCAwLjI5MjI5NSwgMC40MzYzODEsIDAuNjE2NDcsIDAuNzk2NTIxLCAwLjk3MTM4MiwgMS4xNTE5OSIsIFwKLSAgICAgICAgICAiMC4xMzY0NzgsIDAuMzE1ODg4LCAwLjQ1OTY1OCwgMC42Mzk3NDksIDAuODE5OTE1LCAwLjk5OTg4MywgMS4xODA0MiIsIFwKLSAgICAgICAgICAiMC4xNTU4MTYsIDAuMzM3MjM5LCAwLjQ3OTk1MywgMC42NjAxMjgsIDAuODM5OTk0LCAxLjAyMDI0LCAxLjIwMDMiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTAzODk3LCAwLjQ3MDYyLCAwLjc2MzUyOCwgMS4xMjk1NCwgMS40OTY3OSwgMS44NjI1NCwgMi4yMjgwNiIsIFwKLSAgICAgICAgICAiMC4xMDM5NTYsIDAuNDcwNDYyLCAwLjc2MzMwNiwgMS4xMzA1MywgMS40OTY3MSwgMS44NjE4NSwgMi4yMjg3NSIsIFwKLSAgICAgICAgICAiMC4xMDU3NjUsIDAuNDcwMzczLCAwLjc2MzUwMywgMS4xMjk1MywgMS40OTU3NCwgMS44NjMxLCAyLjIyODg4IiwgXAotICAgICAgICAgICIwLjExMDAyNywgMC40NzA0NTYsIDAuNzYzNTMyLCAxLjEyOTUzLCAxLjQ5Njc4LCAxLjg2MjU1LCAyLjIyOTQ5IiwgXAotICAgICAgICAgICIwLjExNjMyNywgMC40NzA0MzIsIDAuNzYzNTM2LCAxLjEyOTUzLCAxLjQ5NTkxLCAxLjg2MjE5LCAyLjIyOSIsIFwKLSAgICAgICAgICAiMC4xMjc2MDQsIDAuNDcxNTgsIDAuNzYzNjg3LCAxLjEyOTgzLCAxLjQ5NjE2LCAxLjg2MTksIDIuMjI4ODgiLCBcCi0gICAgICAgICAgIjAuMTM5Mjk2LCAwLjQ3NDE2MiwgMC43NjM0MywgMS4xMjk3NywgMS40OTU5MywgMS44NjI1NywgMi4yMjgxMyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yNTgxNDksIDEuMDk3NDUsIDEuNzY5LCAyLjYwNjgyLCAzLjQ0NDc1LCA0LjI4Mjk2LCA1LjEyMTE3IiwgXAotICAgICAgICAgICIwLjI2Nzg4NiwgMS4xMDc0MiwgMS43NzkwOSwgMi42MTY4MiwgMy40NTUxNCwgNC4yOTMyMywgNS4xMzEzNyIsIFwKLSAgICAgICAgICAiMC4yNzk4NjksIDEuMTE5OTIsIDEuNzkxMDIsIDIuNjI5OTEsIDMuNDY3NjEsIDQuMzA2MDgsIDUuMTQ0MDQiLCBcCi0gICAgICAgICAgIjAuMjkxNjg4LCAxLjEzMjAzLCAxLjgwMjY4LCAyLjY0MjQ4LCAzLjQ3OTc1LCA0LjMxODM3LCA1LjE1NjI1IiwgXAotICAgICAgICAgICIwLjMwMzUxOSwgMS4xNDM5MiwgMS44MTUzNiwgMi42NTQzNiwgMy40OTI1NiwgNC4zMzAyMSwgNS4xNjg0NiIsIFwKLSAgICAgICAgICAiMC4zMjI4MzMsIDEuMTYzNTMsIDEuODM1MTEsIDIuNjczOTUsIDMuNTExODMsIDQuMzUwMjEsIDUuMTg4MzgiLCBcCi0gICAgICAgICAgIjAuMzM5NjM0LCAxLjE4MDQsIDEuODUxNjMsIDIuNjkxNSwgMy41Mjg5NCwgNC4zNjc1MSwgNS4yMDU0NyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC40MzczNDUsIDIuMDExNzUsIDMuMjc3MywgNC44MzE3NywgNi4zODQ4OCwgNy45NDE4NSwgOS40OTk2IiwgXAotICAgICAgICAgICIwLjQzOTYzMSwgMi4wMTE1NiwgMy4yNzcxNSwgNC44MjEzNiwgNi4zODQ2NywgNy45NDE2MSwgOS40OTg1NSIsIFwKLSAgICAgICAgICAiMC40MzcxMSwgMi4wMTE0NiwgMy4yNzY0OSwgNC44MTk2MiwgNi4zODUwOCwgNy45NDE2NywgOS41MDAxNiIsIFwKLSAgICAgICAgICAiMC40Mzk1MjcsIDIuMDExMzIsIDMuMjY2NTMsIDQuODE2MTcsIDYuMzg1LCA3Ljk0MTcxLCA5LjQ5OTc0IiwgXAotICAgICAgICAgICIwLjQzOTU4NywgMi4wMDMyNywgMy4yNzY0OSwgNC44MTczOSwgNi4zODEwOCwgNy45NDEzMiwgOS40OTkzOSIsIFwKLSAgICAgICAgICAiMC40MzcxOTQsIDIuMDAyMzksIDMuMjU2NTEsIDQuODMxNzIsIDYuMzg1MDcsIDcuOTQxNTMsIDkuNDk5NSIsIFwKLSAgICAgICAgICAiMC40Mzk5NTEsIDIuMDAyMzcsIDMuMjY2NTQsIDQuODMyMTgsIDYuMzg0NzYsIDcuOTQxNzEsIDkuNTAwMTciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDUyOTQzLCAwLjIzMjMzMiwgMC4zNzU5MzYsIDAuNTU1Mjg5LCAwLjczNDY1NCwgMC45MTQyMDEsIDEuMDkzNDYiLCBcCi0gICAgICAgICAgIjAuMDY0NjY3LCAwLjI0MzcxOCwgMC4zODcxOTEsIDAuNTY2NTg4LCAwLjc0NjE5OCwgMC45MjU1OTksIDEuMTA0NzciLCBcCi0gICAgICAgICAgIjAuMDc5NjM1LCAwLjI1ODk4OCwgMC40MDI0MTUsIDAuNTgxNzk5LCAwLjc2MTYyMSwgMC45NDA1MDYsIDEuMTIwMjYiLCBcCi0gICAgICAgICAgIjAuMDk0Mjk2LCAwLjI3MzE1MywgMC40MTY1OTEsIDAuNTk1OTY3LCAwLjc3MjEyNywgMC45NTIwNTgsIDEuMTMxMDUiLCBcCi0gICAgICAgICAgIjAuMTA5MDg1LCAwLjI4Nzc5OCwgMC40MzExMTYsIDAuNjEwNTA5LCAwLjc4NTgwNywgMC45NjUxMjMsIDEuMTQ0NDciLCBcCi0gICAgICAgICAgIjAuMTMyNjY5LCAwLjMxMTQ3NywgMC40NTQ1MzIsIDAuNjMzODY2LCAwLjgxMzA2MiwgMC45ODczOTUsIDEuMTY2OTciLCBcCi0gICAgICAgICAgIjAuMTUxNzcyLCAwLjMzMjExNSwgMC40NzQ5NTksIDAuNjU0MzgzLCAwLjgzMzU4OSwgMS4wMTI4NCwgMS4xODYwMiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTk2MTgsIDAuNDY1NzcyLCAwLjc1Njk5OCwgMS4xMjQ2OCwgMS40ODcxLCAxLjg1MjU1LCAyLjIyMjcyIiwgXAotICAgICAgICAgICIwLjA5OTgxNywgMC40NjQ4MzYsIDAuNzU2ODMyLCAxLjEyMTk2LCAxLjQ4ODQzLCAxLjg1NDM2LCAyLjIxNzMiLCBcCi0gICAgICAgICAgIjAuMTAxNzc4LCAwLjQ2NDcxMSwgMC43NTY3NzIsIDEuMTIyMjEsIDEuNDg3OTMsIDEuODUyMjQsIDIuMjE5NzYiLCBcCi0gICAgICAgICAgIjAuMTA2ODM3LCAwLjQ2NDg1OCwgMC43NTY3NzcsIDEuMTI0NzEsIDEuNDg3MDQsIDEuODUzMzUsIDIuMjE5NTciLCBcCi0gICAgICAgICAgIjAuMTEzMTYxLCAwLjQ2NTk2NCwgMC43NTg1NzIsIDEuMTIyOTUsIDEuNDkwODUsIDEuODUzOTcsIDIuMjIyNyIsIFwKLSAgICAgICAgICAiMC4xMjQ5MzgsIDAuNDY2MDk1LCAwLjc1NzQ5MSwgMS4xMjIxNCwgMS40OTA3LCAxLjg1MTk0LCAyLjIxOTgzIiwgXAotICAgICAgICAgICIwLjEzNjc1OCwgMC40NzAyMDcsIDAuNzU4NTY1LCAxLjEyMjE0LCAxLjQ4ODk4LCAxLjg1Njc4LCAyLjIxNjc0Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIzNTAwNiwgMS4wNzQwMywgMS43NDUwOSwgMi41ODM5LCAzLjQyMjA0LCA0LjI1OTY2LCA1LjA5Nzg3IiwgXAotICAgICAgICAgICIwLjI0Mzc5OCwgMS4wODMzLCAxLjc1NDE2LCAyLjU5Mjg1LCAzLjQzMTE2LCA0LjI2OTQ2LCA1LjEwNzUyIiwgXAotICAgICAgICAgICIwLjI1NDgwNCwgMS4wOTU0NCwgMS43NjY1MywgMi42MDUzNywgMy40NDMsIDQuMjgxNDMsIDUuMTE5MzIiLCBcCi0gICAgICAgICAgIjAuMjY2MzE5LCAxLjEwNjk3LCAxLjc3OTI1LCAyLjYxNzMsIDMuNDU1MjgsIDQuMjkzMzEsIDUuMTMxMzUiLCBcCi0gICAgICAgICAgIjAuMjc3NDA2LCAxLjExODA5LCAxLjc5MDUyLCAyLjYyODQzLCAzLjQ2NjcyLCA0LjMwNDY2LCA1LjE0Mjc0IiwgXAotICAgICAgICAgICIwLjI5NTg0MSwgMS4xMzY2NSwgMS44MDkxMiwgMi42NDcwNCwgMy40ODU0MywgNC4zMjM0OSwgNS4xNjE0NCIsIFwKLSAgICAgICAgICAiMC4zMTE4NTEsIDEuMTUyNzksIDEuODI0NDIsIDIuNjYzNjksIDMuNTAxNDIsIDQuMzM5NzIsIDUuMTc3NzciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuNDM3MDQxLCAyLjAxMTI4LCAzLjI3NjUxLCA0LjgxNzQ5LCA2LjM4MzI2LCA3Ljk0MTY2LCA5LjQ5OTYyIiwgXAotICAgICAgICAgICIwLjQzOTQwMywgMi4wMTAyNCwgMy4yNjY1OCwgNC44MzEzNCwgNi4zODUxNCwgNy45Mzk1NiwgOS40OTk2MiIsIFwKLSAgICAgICAgICAiMC40MzgzNTEsIDIuMDExODEsIDMuMjc2NzUsIDQuODE2MzMsIDYuMzg1MjksIDcuOTQyMDYsIDkuNTAwMzYiLCBcCi0gICAgICAgICAgIjAuNDM3OTQzLCAyLjAwMjEsIDMuMjUzODQsIDQuODMyMDIsIDYuMzgxMzUsIDcuOTQxNTEsIDkuNDk5MTgiLCBcCi0gICAgICAgICAgIjAuNDM1OTE0LCAyLjAwMjQ0LCAzLjI1MjE4LCA0LjgyMTU4LCA2LjM4MTExLCA3Ljk0MDUsIDkuNDk5MTkiLCBcCi0gICAgICAgICAgIjAuNDM4NjYsIDIuMDExMDUsIDMuMjU0MTksIDQuODIxNDYsIDYuMzgyMDcsIDcuOTQwNywgOS40OTk1MyIsIFwKLSAgICAgICAgICAiMC40NDA5MzcsIDIuMDEwMzYsIDMuMjc2NDksIDQuODMyMDIsIDYuMzg1MjMsIDcuOTQxNTUsIDkuNTAwMDkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1ODU3LCAwLjAwNTg1NywgMC4wMDU4NTUsIDAuMDA1ODU0LCAwLjAwNTg1NywgMC4wMDU4NTMsIDAuMDA1ODUiLCBcCi0gICAgICAgICAgIjAuMDA1ODQzLCAwLjAwNTg0MywgMC4wMDU4NCwgMC4wMDU4NDIsIDAuMDA1ODQsIDAuMDA1ODQzLCAwLjAwNTg0MSIsIFwKLSAgICAgICAgICAiMC4wMDU4MjksIDAuMDA1ODMyLCAwLjAwNTgzLCAwLjAwNTgyOSwgMC4wMDU4MjgsIDAuMDA1ODI4LCAwLjAwNTgyNiIsIFwKLSAgICAgICAgICAiMC4wMDU4MTksIDAuMDA1ODIzLCAwLjAwNTgyMywgMC4wMDU4MjIsIDAuMDA1ODE5LCAwLjAwNTgxOCwgMC4wMDU4MTgiLCBcCi0gICAgICAgICAgIjAuMDA1ODExLCAwLjAwNTgxOCwgMC4wMDU4MTYsIDAuMDA1ODE2LCAwLjAwNTgxNSwgMC4wMDU4MTUsIDAuMDA1ODE0IiwgXAotICAgICAgICAgICIwLjAwNTgwNSwgMC4wMDU4MTQsIDAuMDA1ODE0LCAwLjAwNTgxMywgMC4wMDU4MTEsIDAuMDA1ODExLCAwLjAwNTgxMSIsIFwKLSAgICAgICAgICAiMC4wMDU4MDIsIDAuMDA1ODA5LCAwLjAwNTgxMiwgMC4wMDU4MSwgMC4wMDU4MDksIDAuMDA1ODA5LCAwLjAwNTgwNyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzY5LCAwLjAwMzcxLCAwLjAwMzcxMiwgMC4wMDM3MTMsIDAuMDAzNzE0LCAwLjAwMzcxNCwgMC4wMDM3MTQiLCBcCi0gICAgICAgICAgIjAuMDAzNjc2LCAwLjAwMzY5OSwgMC4wMDM3MDIsIDAuMDAzNzAzLCAwLjAwMzcwNCwgMC4wMDM3MDQsIDAuMDAzNzA0IiwgXAotICAgICAgICAgICIwLjAwMzY2MiwgMC4wMDM2OSwgMC4wMDM2OTQsIDAuMDAzNjk1LCAwLjAwMzY5NiwgMC4wMDM2OTcsIDAuMDAzNjk3IiwgXAotICAgICAgICAgICIwLjAwMzY0OCwgMC4wMDM2ODMsIDAuMDAzNjg4LCAwLjAwMzY5LCAwLjAwMzY5MSwgMC4wMDM2OTIsIDAuMDAzNjkzIiwgXAotICAgICAgICAgICIwLjAwMzY0LCAwLjAwMzY3OSwgMC4wMDM2ODQsIDAuMDAzNjg3LCAwLjAwMzY4OSwgMC4wMDM2OSwgMC4wMDM2OSIsIFwKLSAgICAgICAgICAiMC4wMDM2MjcsIDAuMDAzNjcxLCAwLjAwMzY3OCwgMC4wMDM2ODIsIDAuMDAzNjg0LCAwLjAwMzY4NiwgMC4wMDM2ODYiLCBcCi0gICAgICAgICAgIjAuMDAzNjE5LCAwLjAwMzY2NywgMC4wMDM2NzUsIDAuMDAzNjgsIDAuMDAzNjgyLCAwLjAwMzY4NCwgMC4wMDM2ODUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQ4MTYsIDAuMDA0ODE1LCAwLjAwNDgxNSwgMC4wMDQ4MTUsIDAuMDA0ODEzLCAwLjAwNDgxMiwgMC4wMDQ4MTIiLCBcCi0gICAgICAgICAgIjAuMDA0ODAxLCAwLjAwNDgwNCwgMC4wMDQ4MDUsIDAuMDA0ODAzLCAwLjAwNDgwMywgMC4wMDQ4MDIsIDAuMDA0ODAyIiwgXAotICAgICAgICAgICIwLjAwNDc4NywgMC4wMDQ3OTgsIDAuMDA0Nzk4LCAwLjAwNDc5OCwgMC4wMDQ3OTcsIDAuMDA0Nzk2LCAwLjAwNDc5NiIsIFwKLSAgICAgICAgICAiMC4wMDQ3NzksIDAuMDA0Nzk1LCAwLjAwNDc5NywgMC4wMDQ3OTYsIDAuMDA0Nzk1LCAwLjAwNDc5NiwgMC4wMDQ3OTUiLCBcCi0gICAgICAgICAgIjAuMDA0Nzc2LCAwLjAwNDc5MiwgMC4wMDQ3OTQsIDAuMDA0Nzk0LCAwLjAwNDc5NSwgMC4wMDQ3OTIsIDAuMDA0NzkyIiwgXAotICAgICAgICAgICIwLjAwNDc2NywgMC4wMDQ3ODksIDAuMDA0NzkxLCAwLjAwNDc5MiwgMC4wMDQ3OTMsIDAuMDA0NzkyLCAwLjAwNDc5MSIsIFwKLSAgICAgICAgICAiMC4wMDQ3NjEsIDAuMDA0Nzg2LCAwLjAwNDc4OSwgMC4wMDQ3OTEsIDAuMDA0NzkyLCAwLjAwNDc5MSwgMC4wMDQ3OTEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDE2MjQsIDAuMDAxNjI5LCAwLjAwMTYzLCAwLjAwMTYzLCAwLjAwMTYzLCAwLjAwMTYzLCAwLjAwMTYzIiwgXAotICAgICAgICAgICIwLjAwMTYsIDAuMDAxNjIzLCAwLjAwMTYyNiwgMC4wMDE2MjgsIDAuMDAxNjI4LCAwLjAwMTYyOSwgMC4wMDE2MjkiLCBcCi0gICAgICAgICAgIjAuMDAxNTc2LCAwLjAwMTYxNiwgMC4wMDE2MjIsIDAuMDAxNjI1LCAwLjAwMTYyNiwgMC4wMDE2MjcsIDAuMDAxNjI1IiwgXAotICAgICAgICAgICIwLjAwMTU1OCwgMC4wMDE2MDksIDAuMDAxNjE3LCAwLjAwMTYyMSwgMC4wMDE2MjQsIDAuMDAxNjI1LCAwLjAwMTYyNiIsIFwKLSAgICAgICAgICAiMC4wMDE1NDUsIDAuMDAxNjAzLCAwLjAwMTYxMywgMC4wMDE2MTksIDAuMDAxNjIxLCAwLjAwMTYyMywgMC4wMDE2MjQiLCBcCi0gICAgICAgICAgIjAuMDAxNTI4LCAwLjAwMTU5NSwgMC4wMDE2MDcsIDAuMDAxNjE0LCAwLjAwMTYxOCwgMC4wMDE2MiwgMC4wMDE2MjIiLCBcCi0gICAgICAgICAgIjAuMDAxNTE3LCAwLjAwMTU4NywgMC4wMDE2MDEsIDAuMDAxNjEsIDAuMDAxNjE1LCAwLjAwMTYxOCwgMC4wMDE2MiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzkzMiwgMC4wMDM5MzIsIDAuMDAzOTMzLCAwLjAwMzkzMSwgMC4wMDM5MzEsIDAuMDAzOTMsIDAuMDAzOTMiLCBcCi0gICAgICAgICAgIjAuMDAzOTMzLCAwLjAwMzk0MSwgMC4wMDM5NDEsIDAuMDAzOTQxLCAwLjAwMzk0MSwgMC4wMDM5NCwgMC4wMDM5NDEiLCBcCi0gICAgICAgICAgIjAuMDAzOTI1LCAwLjAwMzk0MiwgMC4wMDM5NDQsIDAuMDAzOTQ1LCAwLjAwMzk0NSwgMC4wMDM5NDUsIDAuMDAzOTQyIiwgXAotICAgICAgICAgICIwLjAwMzkxNSwgMC4wMDM5NCwgMC4wMDM5NDMsIDAuMDAzOTQ0LCAwLjAwMzk0NSwgMC4wMDM5NDUsIDAuMDAzOTQ2IiwgXAotICAgICAgICAgICIwLjAwMzkxLCAwLjAwMzkzOSwgMC4wMDM5NDIsIDAuMDAzOTQ0LCAwLjAwMzk0NSwgMC4wMDM5NDUsIDAuMDAzOTQ0IiwgXAotICAgICAgICAgICIwLjAwMzg5OCwgMC4wMDM5MzUsIDAuMDAzOTQsIDAuMDAzOTQzLCAwLjAwMzk0NCwgMC4wMDM5NDQsIDAuMDAzOTQ0IiwgXAotICAgICAgICAgICIwLjAwMzg5MSwgMC4wMDM5MzIsIDAuMDAzOTM1LCAwLjAwMzk0MiwgMC4wMDM5NDMsIDAuMDAzOTQzLCAwLjAwMzk0MyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTYyNCwgMC4wMDE2MjksIDAuMDAxNjMsIDAuMDAxNjMsIDAuMDAxNjMsIDAuMDAxNjMsIDAuMDAxNjMiLCBcCi0gICAgICAgICAgIjAuMDAxNiwgMC4wMDE2MjMsIDAuMDAxNjI2LCAwLjAwMTYyOCwgMC4wMDE2MjgsIDAuMDAxNjI5LCAwLjAwMTYyOSIsIFwKLSAgICAgICAgICAiMC4wMDE1NzcsIDAuMDAxNjE2LCAwLjAwMTYyMywgMC4wMDE2MjYsIDAuMDAxNjI3LCAwLjAwMTYyOCwgMC4wMDE2MjgiLCBcCi0gICAgICAgICAgIjAuMDAxNTU5LCAwLjAwMTYxLCAwLjAwMTYxNywgMC4wMDE2MjIsIDAuMDAxNjI0LCAwLjAwMTYyNSwgMC4wMDE2MjYiLCBcCi0gICAgICAgICAgIjAuMDAxNTQ1LCAwLjAwMTYwMywgMC4wMDE2MTMsIDAuMDAxNjE5LCAwLjAwMTYyMSwgMC4wMDE2MjMsIDAuMDAxNjI0IiwgXAotICAgICAgICAgICIwLjAwMTUyOCwgMC4wMDE1OTQsIDAuMDAxNjA3LCAwLjAwMTYxNCwgMC4wMDE2MTgsIDAuMDAxNjIsIDAuMDAxNjIxIiwgXAotICAgICAgICAgICIwLjAwMTUxNywgMC4wMDE1ODcsIDAuMDAxNjAyLCAwLjAwMTYxMSwgMC4wMDE2MTUsIDAuMDAxNjE4LCAwLjAwMTYyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyOTcyLCAwLjAwMjk3NiwgMC4wMDI5NzcsIDAuMDAyOTc3LCAwLjAwMjk3NywgMC4wMDI5NzcsIDAuMDAyOTc3IiwgXAotICAgICAgICAgICIwLjAwMjk3OSwgMC4wMDI5OTgsIDAuMDAzLCAwLjAwMzAwMSwgMC4wMDMwMDIsIDAuMDAzMDAyLCAwLjAwMzAwMiIsIFwKLSAgICAgICAgICAiMC4wMDI5NzIsIDAuMDAzMDAxLCAwLjAwMzAwNCwgMC4wMDMwMDYsIDAuMDAzMDA3LCAwLjAwMzAwOCwgMC4wMDMwMDgiLCBcCi0gICAgICAgICAgIjAuMDAyOTYzLCAwLjAwMzAwMSwgMC4wMDMwMDYsIDAuMDAzMDA4LCAwLjAwMzAxLCAwLjAwMzAxMSwgMC4wMDMwMTQiLCBcCi0gICAgICAgICAgIjAuMDAyOTUzLCAwLjAwMjk5NywgMC4wMDMwMDUsIDAuMDAzMDA4LCAwLjAwMzAxMSwgMC4wMDMwMTMsIDAuMDAzMDExIiwgXAotICAgICAgICAgICIwLjAwMjk0LCAwLjAwMjk5NSwgMC4wMDMwMDMsIDAuMDAzMDA4LCAwLjAwMzAwOSwgMC4wMDMwMTEsIDAuMDAzMDEyIiwgXAotICAgICAgICAgICIwLjAwMjkzMiwgMC4wMDI5OTIsIDAuMDAyOTk4LCAwLjAwMzAwNiwgMC4wMDMwMDksIDAuMDAzMDEsIDAuMDAzMDEyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxNjIyLCAwLjAwMTYyOSwgMC4wMDE2MjksIDAuMDAxNjI5LCAwLjAwMTYyOSwgMC4wMDE2MjksIDAuMDAxNjI5IiwgXAotICAgICAgICAgICIwLjAwMTU5MywgMC4wMDE2MjEsIDAuMDAxNjI1LCAwLjAwMTYyNiwgMC4wMDE2MjcsIDAuMDAxNjI4LCAwLjAwMTYyOCIsIFwKLSAgICAgICAgICAiMC4wMDE1NjUsIDAuMDAxNjEzLCAwLjAwMTYxOSwgMC4wMDE2MjMsIDAuMDAxNjI0LCAwLjAwMTYyNSwgMC4wMDE2MjYiLCBcCi0gICAgICAgICAgIjAuMDAxNTQ1LCAwLjAwMTYwNSwgMC4wMDE2MTQsIDAuMDAxNjE5LCAwLjAwMTYyMiwgMC4wMDE2MjMsIDAuMDAxNjI0IiwgXAotICAgICAgICAgICIwLjAwMTUzLCAwLjAwMTU5OCwgMC4wMDE2MSwgMC4wMDE2MTYsIDAuMDAxNjE5LCAwLjAwMTYyMSwgMC4wMDE2MjMiLCBcCi0gICAgICAgICAgIjAuMDAxNTE0LCAwLjAwMTU4OCwgMC4wMDE2MDIsIDAuMDAxNjExLCAwLjAwMTYxNSwgMC4wMDE2MTgsIDAuMDAxNjIiLCBcCi0gICAgICAgICAgIjAuMDAxNTA1LCAwLjAwMTU4LCAwLjAwMTU5NywgMC4wMDE2MDYsIDAuMDAxNjEyLCAwLjAwMTYxNSwgMC4wMDE2MTciKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogTkFORDRCWEwgKgotICogLS0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKE5BTkQ0QlhMKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMDk0MTIwNTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQU4pICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDU5MDg4NDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA1OTA1MDE7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNTkwODg0OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDI1OSwgMC4wMDAyNDEsIDAuMDAwMjMxLCAwLjAwMDIyNywgMC4wMDAyMjYsIDAuMDAwMjIzLCAwLjAwMDIyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTAzNiwgMC4wMDEwMjMsIDAuMDAxMDE2LCAwLjAwMTAxMywgMC4wMDEwMTEsIDAuMDAxMDEsIDAuMDAxMDEiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYxMTA0NzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MTEwNDc7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjA5NjQxOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDE2NSwgMC4wMDAxNjUsIDAuMDAwMTY1LCAwLjAwMDE2NSwgMC4wMDAxNjUsIDAuMDAwMTY1LCAwLjAwMDE2NSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQykgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjI3MTIxOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYyNzEyMTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2MjYwOTk7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMTY1LCAwLjAwMDE2NSwgMC4wMDAxNjUsIDAuMDAwMTY1LCAwLjAwMDE2NSwgMC4wMDAxNjUsIDAuMDAwMTY1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMTY2LCAwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY2Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihEKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2MzA5MTI7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjMwNjM3OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDYzMDkxMjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAwODEsIDAuMDAwMDgsIDAuMDAwMDgsIDAuMDAwMDgsIDAuMDAwMDgsIDAuMDAwMDgsIDAuMDAwMDgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxODgsIDAuMDAwMTg4LCAwLjAwMDE4OCwgMC4wMDAxODgsIDAuMDAwMTg4LCAwLjAwMDE4OCwgMC4wMDAxODgiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4wMTc4NDU1OwotICAgIGZ1bmN0aW9uIDogIighKCgoKCFBTikgQikgQykgRCkpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTg0NjI5LCAwLjIxMDAyOCwgMC40Mzc5NjMsIDAuODE3MDk4LCAxLjE5NjAyLCAyLjA4MDE2LCAyLjU4NTE1IiwgXAotICAgICAgICAgICIwLjE5NjU2NiwgMC4yMjE5NzQsIDAuNDQ5ODc0LCAwLjgyOTA5MiwgMS4yMDgxMSwgMi4wOTE3NywgMi41OTc0IiwgXAotICAgICAgICAgICIwLjIxMTcxOSwgMC4yMzcxMDYsIDAuNDY1MDYsIDAuODQ0MjMsIDEuMjIzMTQsIDIuMTA2OTEsIDIuNjEyNzMiLCBcCi0gICAgICAgICAgIjAuMjI2NzU1LCAwLjI1MjE1OSwgMC40ODAwNjYsIDAuODU5Mjg0LCAxLjIzODMxLCAyLjEyMTkyLCAyLjYyNzYzIiwgXAotICAgICAgICAgICIwLjI0MDkzMywgMC4yNjYzNjMsIDAuNDk0MjkxLCAwLjg3MzM5NSwgMS4yNTI1NCwgMi4xMzY3NiwgMi42NDA5NSIsIFwKLSAgICAgICAgICAiMC4yNjE3NjMsIDAuMjg3MTc3LCAwLjUxNTA5OCwgMC44OTQyOCwgMS4yNzMzLCAyLjE1NywgMi42NjI5MSIsIFwKLSAgICAgICAgICAiMC4yNzc4MzcsIDAuMzAzMjU0LCAwLjUzMTE3MywgMC45MTAzNDIsIDEuMjg5MzksIDIuMTcyOTgsIDIuNjc4NjgiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjk3NDU5LCAwLjM0ODU3MiwgMC44MDkyMTQsIDEuNTc2MywgMi4zNDM1LCA0LjEzNjA2LCA1LjE1NjI0IiwgXAotICAgICAgICAgICIwLjI5NzQyNywgMC4zNDg2MTksIDAuODA5MjY3LCAxLjU3NzU1LCAyLjM0NTI5LCA0LjEzNTg0LCA1LjE1ODI5IiwgXAotICAgICAgICAgICIwLjI5NzQzMSwgMC4zNDg1NjMsIDAuODA4OTgyLCAxLjU3NjMxLCAyLjM0NTI1LCA0LjEzMzM4LCA1LjE1NzciLCBcCi0gICAgICAgICAgIjAuMjk3MzU2LCAwLjM0ODU3OCwgMC44MDkzMDEsIDEuNTc3NTQsIDIuMzQ1MzgsIDQuMTM0MDIsIDUuMTU3NyIsIFwKLSAgICAgICAgICAiMC4yOTc0MjEsIDAuMzQ4NjM4LCAwLjgwODk2MSwgMS41NzY4MiwgMi4zNDM5NywgNC4xMzQ2OSwgNS4xNTY3NCIsIFwKLSAgICAgICAgICAiMC4yOTc0NjMsIDAuMzQ4NjI4LCAwLjgwOTI1MywgMS41NzYzNSwgMi4zNDUxOSwgNC4xMzMzNSwgNS4xNTgxNiIsIFwKLSAgICAgICAgICAiMC4yOTc2MzgsIDAuMzQ4NzQyLCAwLjgwOTE1LCAxLjU3NjU0LCAyLjM0NTI5LCA0LjEzMzg4LCA1LjE1Njg3Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjczMjcwNCwgMC44NTA5NDcsIDEuOTE4MTIsIDMuNjkyOTMsIDUuNDY4NTEsIDkuNjExNCwgMTEuOTc4OSIsIFwKLSAgICAgICAgICAiMC43NDQzNjMsIDAuODYyNjA2LCAxLjkyODg3LCAzLjcwNDc1LCA1LjQ4MDE2LCA5LjYyMzA5LCAxMS45OTA2IiwgXAotICAgICAgICAgICIwLjc1ODgyOCwgMC44NzcyNzIsIDEuOTQzMSwgMy43MTkyMywgNS40OTQ4MSwgOS42Mzc3NywgMTIuMDA1MyIsIFwKLSAgICAgICAgICAiMC43NzI2MjcsIDAuODkwODkyLCAxLjk1ODIxLCAzLjczMzA2LCA1LjUwODY1LCA5LjY1MTU2LCAxMi4wMTkxIiwgXAotICAgICAgICAgICIwLjc4NDYyOSwgMC45MDI4ODEsIDEuOTcwMjUsIDMuNzQ1MjYsIDUuNTIwNzQsIDkuNjYzODMsIDEyLjAzMTQiLCBcCi0gICAgICAgICAgIjAuODAxODUzLCAwLjkyMDQ0NCwgMS45ODY4NywgMy43NjI2MSwgNS41MzgwOCwgOS42ODExNSwgMTIuMDQ4NyIsIFwKLSAgICAgICAgICAiMC44MTUzNzksIDAuOTMzNDQ2LCAyLjAwMDE4LCAzLjc3NjIxLCA1LjU1MTU0LCA5LjY5NDU2LCAxMi4wNjIxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIxLjI1NjkxLCAxLjQ3MzI1LCAzLjQ0NTA3LCA2Ljc0Nzg3LCAxMC4wMzI0LCAxNy43MDYzLCAyMi4wOTM2IiwgXAotICAgICAgICAgICIxLjI1Njk3LCAxLjQ3MzI3LCAzLjQ2MzU5LCA2Ljc0NDE4LCAxMC4wMzI0LCAxNy43MDYzLCAyMi4wOTM5IiwgXAotICAgICAgICAgICIxLjI0NTg5LCAxLjQ3MzEzLCAzLjQ0NzI3LCA2Ljc0NzgxLCAxMC4wMzI1LCAxNy43MDYzLCAyMi4wOTMxIiwgXAotICAgICAgICAgICIxLjI1Njk0LCAxLjQ3MzI3LCAzLjQ0NDY3LCA2Ljc0Nzg3LCAxMC4wMzI0LCAxNy43MDYzLCAyMi4wOTMxIiwgXAotICAgICAgICAgICIxLjI1MjA2LCAxLjQ2NjM2LCAzLjQ2NDQ0LCA2Ljc0NzgyLCAxMC4wMzIzLCAxNy43MDYzLCAyMi4wOTQiLCBcCi0gICAgICAgICAgIjEuMjUyMDUsIDEuNDc4ODEsIDMuNDYzNTYsIDYuNzQ3ODcsIDEwLjAzMjEsIDE3LjcwNjMsIDIyLjA5MjkiLCBcCi0gICAgICAgICAgIjEuMjQ1NDIsIDEuNDY2MzgsIDMuNDYzNDcsIDYuNzQ0MDYsIDEwLjAzMjIsIDE3LjcwNjMsIDIyLjA5MzkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTUxMjMzLCAwLjE3NjU0NCwgMC40MDQxNTYsIDAuNzgzMjExLCAxLjE2MTc2LCAyLjA0NTg1LCAyLjU1MTUzIiwgXAotICAgICAgICAgICIwLjE2Mjc2MiwgMC4xODgwODMsIDAuNDE1NjQyLCAwLjc5NDcyMywgMS4xNzM1OSwgMi4wNTc1NSwgMi41NjMwNiIsIFwKLSAgICAgICAgICAiMC4xNzc0LCAwLjIwMjY2OCwgMC40MzAxNjIsIDAuODA5MTkzLCAxLjE4Nzk4LCAyLjA3MiwgMi41NzcyMyIsIFwKLSAgICAgICAgICAiMC4xOTE5MjQsIDAuMjE3NzQ1LCAwLjQ0NDk4OSwgMC44MjM3MTcsIDEuMjAyNzgsIDIuMDg2NzEsIDIuNTkyMjEiLCBcCi0gICAgICAgICAgIjAuMjA2ODIsIDAuMjMxNTYsIDAuNDU4ODI0LCAwLjgzNjcwMSwgMS4yMTEzLCAyLjA5NjAxLCAyLjYwMDU2IiwgXAotICAgICAgICAgICIwLjIzMDUsIDAuMjU1NjUxLCAwLjQ4MjA3NiwgMC44NjA5MTgsIDEuMjMyMzgsIDIuMTE2NzksIDIuNjIxNzYiLCBcCi0gICAgICAgICAgIjAuMjUxMDU1LCAwLjI3NjQ1MiwgMC41MDIzNzcsIDAuODgxMTY0LCAxLjI1OTg2LCAyLjEzNDQzLCAyLjY0MDM0Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI5MzkwOSwgMC4zNDUwMTksIDAuODA2MDI3LCAxLjU3MzAyLCAyLjMzOTU2LCA0LjEzMDM3LCA1LjE1MzgyIiwgXAotICAgICAgICAgICIwLjI5Mzc1MiwgMC4zNDUwNjQsIDAuODA1NDk5LCAxLjU3Mzc5LCAyLjM0MDI1LCA0LjEzMDUsIDUuMTUzMzgiLCBcCi0gICAgICAgICAgIjAuMjkzODI1LCAwLjM0NSwgMC44MDYwMjIsIDEuNTczODYsIDIuMzQwMTksIDQuMTMwNTYsIDUuMTUzNyIsIFwKLSAgICAgICAgICAiMC4yOTM4NzYsIDAuMzQ0OTc2LCAwLjgwNTc5MSwgMS41NzI0NiwgMi4zNDEyLCA0LjEzMDU1LCA1LjE1MzE3IiwgXAotICAgICAgICAgICIwLjI5NTI1MSwgMC4zNDU1NDcsIDAuODA2MDA2LCAxLjU3MzA5LCAyLjMzOTc4LCA0LjEzMTA5LCA1LjE1MzUzIiwgXAotICAgICAgICAgICIwLjI5OTg5MSwgMC4zNDksIDAuODA1NTE3LCAxLjU3Mjg4LCAyLjM0MTA5LCA0LjEzMDc2LCA1LjE1MzciLCBcCi0gICAgICAgICAgIjAuMzA2MTA5LCAwLjM1NDAzMiwgMC44MDUzMzgsIDEuNTczNzEsIDIuMzM5NjcsIDQuMTMwMTEsIDUuMTUzNjYiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuNzAxNjc0LCAwLjgxOTkwMywgMS44ODY1NCwgMy42NjE3OSwgNS40MzczOSwgOS41ODAzMiwgMTEuOTQ3OCIsIFwKLSAgICAgICAgICAiMC43MTI2NDUsIDAuODMwODc2LCAxLjg5Njg0LCAzLjY3MzEzLCA1LjQ0ODQ2LCA5LjU5MTQzLCAxMS45NTg5IiwgXAotICAgICAgICAgICIwLjcyNTI5OSwgMC44NDM5OTgsIDEuOTEwMTIsIDMuNjg2MywgNS40NjE1OCwgOS42MDQ2LCAxMS45NzIxIiwgXAotICAgICAgICAgICIwLjczNzE4MywgMC44NTU5NzYsIDEuOTIyNDcsIDMuNjk4NTcsIDUuNDczOTMsIDkuNjE2OTgsIDExLjk4NDUiLCBcCi0gICAgICAgICAgIjAuNzQ5MjUzLCAwLjg2NzkzNiwgMS45MzQ2MiwgMy43MTA1MSwgNS40ODYwOCwgOS42MjkxNiwgMTEuOTk2NyIsIFwKLSAgICAgICAgICAiMC43Njc3NDQsIDAuODg2MzEsIDEuOTUzNTUsIDMuNzI5NTQsIDUuNTA0OTUsIDkuNjQ4MDIsIDEyLjAxNTUiLCBcCi0gICAgICAgICAgIjAuNzgzOTk0LCAwLjkwMjU5MSwgMS45NjkzNCwgMy43NDU5LCA1LjUyMTQ3LCA5LjY2NDUxLCAxMi4wMzIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjEuMjU2OTksIDEuNDczMjcsIDMuNDY0MDcsIDYuNzQ3MDYsIDEwLjAzMjUsIDE3LjcwNjMsIDIyLjA5MzkiLCBcCi0gICAgICAgICAgIjEuMjQ2MDgsIDEuNDczMTIsIDMuNDYzMTEsIDYuNzQ4MDYsIDEwLjAzMjIsIDE3LjcwNjMsIDIyLjA5MyIsIFwKLSAgICAgICAgICAiMS4yNDU2OCwgMS40Nzk0MiwgMy40NjMyOSwgNi43NDQ1MywgMTAuMDMyMiwgMTcuNzA2MywgMjIuMDkzOSIsIFwKLSAgICAgICAgICAiMS4yNTQxNiwgMS40NjY4NCwgMy40NjMzOCwgNi43NDM4OCwgMTAuMDMyMiwgMTcuNzA2NSwgMjIuMDkzOSIsIFwKLSAgICAgICAgICAiMS4yNDYyOSwgMS40NzMwOSwgMy40NjM0NCwgNi43NDc4MywgMTAuMDMyMSwgMTcuNzA2NiwgMjIuMDkzOSIsIFwKLSAgICAgICAgICAiMS4yNTQ0NiwgMS40NzQ2MiwgMy40NjM2NywgNi43NDM4NCwgMTAuMDMyMiwgMTcuNzA2MywgMjIuMDkzOSIsIFwKLSAgICAgICAgICAiMS4yNTUwMiwgMS40NzQ3OSwgMy40NjIxLCA2Ljc0Nzk3LCAxMC4wMzIyLCAxNy43MDYzLCAyMi4wOTQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTQ4NzgxLCAwLjE3NDA1OSwgMC40MDEzNTIsIDAuNzgwMzE0LCAxLjE1OTQ3LCAyLjA0MzY4LCAyLjU0ODE3IiwgXAotICAgICAgICAgICIwLjE2MDUxLCAwLjE4NTc2OSwgMC40MTMwOTYsIDAuNzkxODk0LCAxLjE3MDU4LCAyLjA1NDI5LCAyLjU2MDE0IiwgXAotICAgICAgICAgICIwLjE3NTA4NCwgMC4yMDAzMTYsIDAuNDI3NTI2LCAwLjgwNjY3MiwgMS4xODU0MSwgMi4wNjg3MiwgMi41NzQzNyIsIFwKLSAgICAgICAgICAiMC4xODk2MTIsIDAuMjE1MzkzLCAwLjQ0MjU3MiwgMC44MjE0MjUsIDEuMjAwMTEsIDIuMDgzNzgsIDIuNTg5NDgiLCBcCi0gICAgICAgICAgIjAuMjA0NTExLCAwLjIyOTI0LCAwLjQ1NjIxNCwgMC44MzQxMTksIDEuMjA5MzEsIDIuMDkzMTcsIDIuNTk3NjkiLCBcCi0gICAgICAgICAgIjAuMjI4MjExLCAwLjI1MzMyNiwgMC40Nzk1OTgsIDAuODU4MjY0LCAxLjIyOTk0LCAyLjExMzk5LCAyLjYxODg5IiwgXAotICAgICAgICAgICIwLjI0ODc3MywgMC4yNzQwOTgsIDAuNDk5ODIxLCAwLjg3ODYwMSwgMS4yNTcxLCAyLjEzMjk2LCAyLjYzNzQ2Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI5MTAxMiwgMC4zNDI0MTcsIDAuODAzMDkxLCAxLjU3MDEzLCAyLjMzNzI5LCA0LjEyNzkyLCA1LjE1MTg2IiwgXAotICAgICAgICAgICIwLjI5MTAzOSwgMC4zNDIxNjksIDAuODAzMDgyLCAxLjU3MDQ4LCAyLjMzNjk1LCA0LjEyODUyLCA1LjE1MDkzIiwgXAotICAgICAgICAgICIwLjI5MTEzMywgMC4zNDI0MTYsIDAuODAyNDMyLCAxLjU3MDE0LCAyLjMzNzUsIDQuMTI4NzYsIDUuMTUyNjUiLCBcCi0gICAgICAgICAgIjAuMjkxMjM1LCAwLjM0MjIyOSwgMC44MDI2NDEsIDEuNTcwMTUsIDIuMzM4MTMsIDQuMTI4MTQsIDUuMTUxMjEiLCBcCi0gICAgICAgICAgIjAuMjkyNTQyLCAwLjM0MzAwNywgMC44MDI1NzIsIDEuNTcwMTEsIDIuMzM3NjEsIDQuMTI4MjcsIDUuMTUyMzIiLCBcCi0gICAgICAgICAgIjAuMjk3NDg5LCAwLjM0NjM4MiwgMC44MDI1MiwgMS41Njk5MywgMi4zMzczLCA0LjEyODI2LCA1LjE1MTY0IiwgXAotICAgICAgICAgICIwLjMwMzcxNCwgMC4zNTE2NzYsIDAuODAzMSwgMS41NzAxMSwgMi4zMzY4LCA0LjEyODA1LCA1LjE1MTAyIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjY5MTU1MSwgMC44MTAwMSwgMS44NzY2OCwgMy42NTIwNCwgNS40MjczOCwgOS41NzA0NiwgMTEuOTM3OSIsIFwKLSAgICAgICAgICAiMC43MDE5OTMsIDAuODIwMjQ3LCAxLjg4NjY0LCAzLjY2MjMzLCA1LjQzNzkyLCA5LjU4MDg4LCAxMS45NDg0IiwgXAotICAgICAgICAgICIwLjcxNDM3MywgMC44MzI3MTgsIDEuODk5MDMsIDMuNjc1MDUsIDUuNDUwNiwgOS41OTM1OCwgMTEuOTYxMSIsIFwKLSAgICAgICAgICAiMC43MjYzMjcsIDAuODQ1MTAyLCAxLjkxMTYyLCAzLjY4Nzc0LCA1LjQ2MzA5LCA5LjYwNjExLCAxMS45NzM2IiwgXAotICAgICAgICAgICIwLjczODgzNSwgMC44NTgwMTIsIDEuOTIzOTQsIDMuNzAwMjIsIDUuNDc1ODEsIDkuNjE4ODQsIDExLjk4NjQiLCBcCi0gICAgICAgICAgIjAuNzU4NjQ2LCAwLjg3NzIzNCwgMS45NDQ1NSwgMy43MjA0NywgNS40OTU5LCA5LjYzODk2LCAxMi4wMDY1IiwgXAotICAgICAgICAgICIwLjc3NjMzOCwgMC44OTQ4NzEsIDEuOTYyNiwgMy43MzgxNCwgNS41MTM1NywgOS42NTY2OSwgMTIuMDI0MiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMS4yNTE5MywgMS40NjU1OSwgMy40NjQwOSwgNi43NDc3NywgMTAuMDMyMywgMTcuNzA2MywgMjIuMDkzOSIsIFwKLSAgICAgICAgICAiMS4yNTY4NiwgMS40NzMxOSwgMy40NDcxOSwgNi43NDM2MywgMTAuMDMyNSwgMTcuNzA2MywgMjIuMDkzIiwgXAotICAgICAgICAgICIxLjI1Njk2LCAxLjQ3MzE5LCAzLjQ0OTM3LCA2Ljc0Nzg2LCAxMC4wMzIyLCAxNy43MDYzLCAyMi4wOTQxIiwgXAotICAgICAgICAgICIxLjI1Mzk0LCAxLjQ2NzUyLCAzLjQ2MzM4LCA2Ljc0NDAxLCAxMC4wMzIyLCAxNy43MDYzLCAyMi4wOTM5IiwgXAotICAgICAgICAgICIxLjI1MzgsIDEuNDY2MDcsIDMuNDYyNjcsIDYuNzQ3ODUsIDEwLjAzMjIsIDE3LjcwNjMsIDIyLjA5MzUiLCBcCi0gICAgICAgICAgIjEuMjUzNDMsIDEuNDY2MjksIDMuNDYzNzQsIDYuNzQzNjUsIDEwLjAzMjIsIDE3LjcwNjMsIDIyLjA5MzkiLCBcCi0gICAgICAgICAgIjEuMjU2MTUsIDEuNDczMDEsIDMuNDY0MjMsIDYuNzQzNjIsIDEwLjAzMjEsIDE3LjcwNjMsIDIyLjA5MzEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTQ2MDcxLCAwLjE3MTMyMywgMC4zOTg2MzUsIDAuNzc3NjcyLCAxLjE1Njc1LCAyLjA0MDgsIDIuNTQ1MjUiLCBcCi0gICAgICAgICAgIjAuMTU3Nzk5LCAwLjE4MzA3NSwgMC40MTAzNjUsIDAuNzg5MDU0LCAxLjE2NzgsIDIuMDUyNTYsIDIuNTU3MSIsIFwKLSAgICAgICAgICAiMC4xNzIyNTUsIDAuMTk3NDUxLCAwLjQyNDEzNywgMC44MDEwNzksIDEuMTc5NzQsIDIuMDY0MiwgMi41Njg4OSIsIFwKLSAgICAgICAgICAiMC4xODY4NDYsIDAuMjEyMDMzLCAwLjQzOTE1MSwgMC44MTQyMjksIDEuMTkyOSwgMi4wNzY5NiwgMi41ODIwNiIsIFwKLSAgICAgICAgICAiMC4yMDE1NzIsIDAuMjI2NzQ1LCAwLjQ1MzY3OCwgMC44Mjc3ODIsIDEuMjA2NzEsIDIuMDkxMSwgMi41OTU2IiwgXAotICAgICAgICAgICIwLjIyNTYxNSwgMC4yNTA3NjYsIDAuNDc3MDY5LCAwLjg1NTYxOCwgMS4yMjkzNywgMi4xMTM0MywgMi42MTc3OCIsIFwKLSAgICAgICAgICAiMC4yNDYyNSwgMC4yNzE0NDUsIDAuNDk3MzU2LCAwLjg3NTczMSwgMS4yNDg5NywgMi4xMzI1OCwgMi42MzcxMSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yODkwMjUsIDAuMzQwMjU5LCAwLjgwMDkxNCwgMS41NjgxNCwgMi4zMzU1MiwgNC4xMjc0NywgNS4xNTI0OSIsIFwKLSAgICAgICAgICAiMC4yODg2MjMsIDAuMzM5NiwgMC44MDIxNDYsIDEuNTcxODcsIDIuMzM1NSwgNC4xMjczMiwgNS4xNTIwOCIsIFwKLSAgICAgICAgICAiMC4yODgyODQsIDAuMzQwMjU5LCAwLjgwMDQ3OSwgMS41Njk1OCwgMi4zNDE2MywgNC4xMjksIDUuMTUyMTIiLCBcCi0gICAgICAgICAgIjAuMjg5MDcxLCAwLjM0MDM5LCAwLjgwMDEzOCwgMS41NzE3MywgMi4zNDE1NywgNC4xMzA4NiwgNS4xNTIxMiIsIFwKLSAgICAgICAgICAiMC4yOTAyNDQsIDAuMzQwMzIyLCAwLjgwMDM1OSwgMS41Njc3NywgMi4zMzgzMywgNC4xMjc1LCA1LjE1NDY1IiwgXAotICAgICAgICAgICIwLjI5NTY0NywgMC4zNDQxMjksIDAuODAwMjAxLCAxLjU2ODI5LCAyLjMzNTcxLCA0LjEyOTQyLCA1LjE1NTE2IiwgXAotICAgICAgICAgICIwLjMwMTYxOSwgMC4zNDk0MTgsIDAuODAyMTQzLCAxLjU2Nzg5LCAyLjMzNzE5LCA0LjEyNzg5LCA1LjE1NDQ1Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjY3NjMwNSwgMC43OTQ1MDQsIDEuODYwOTMsIDMuNjM2NzksIDUuNDEyMDksIDkuNTU1MDgsIDExLjkyMjYiLCBcCi0gICAgICAgICAgIjAuNjg1NDQ3LCAwLjgwMzgyMSwgMS44Njk5MiwgMy42NDYwOSwgNS40MjE3NCwgOS41NjQ3MiwgMTEuOTMyMiIsIFwKLSAgICAgICAgICAiMC42OTcyNjgsIDAuODE2MDQxLCAxLjg4MzM4LCAzLjY1ODI4LCA1LjQzMzg1LCA5LjU3Njg5LCAxMS45NDQ0IiwgXAotICAgICAgICAgICIwLjcwODg2MywgMC44MjcyNzcsIDEuODkzNzIsIDMuNjcwMTQsIDUuNDQ1NjQsIDkuNTg4NjMsIDExLjk1NjEiLCBcCi0gICAgICAgICAgIjAuNzIwOTg4LCAwLjgzOTY2NiwgMS45MDY1NiwgMy42ODI1LCA1LjQ1ODA5LCA5LjYwMTIsIDExLjk2ODciLCBcCi0gICAgICAgICAgIjAuNzQwMywgMC44NTg5NDQsIDEuOTI2NDEsIDMuNzAxODksIDUuNDc3MywgOS42MjA0LCAxMS45ODc5IiwgXAotICAgICAgICAgICIwLjc1NjU4MSwgMC44NzUxNjYsIDEuOTQxOTgsIDMuNzE4NiwgNS40OTQwNCwgOS42MzcyNSwgMTIuMDA0NyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMS4yNTY4NiwgMS40NjYzMywgMy40NjM2MiwgNi43NDQsIDEwLjAzMjQsIDE3LjcwNjMsIDIyLjA5MzciLCBcCi0gICAgICAgICAgIjEuMjQ2MDIsIDEuNDcyMzksIDMuNDQ2OCwgNi43NDcwOSwgMTAuMDMyNCwgMTcuNzA2MywgMjIuMDkzOSIsIFwKLSAgICAgICAgICAiMS4yNDYzLCAxLjQ3MzE5LCAzLjQ0NTQ1LCA2Ljc0NzgyLCAxMC4wMzIyLCAxNy43MDYzLCAyMi4wOTM5IiwgXAotICAgICAgICAgICIxLjI1MTkzLCAxLjQ3NTMxLCAzLjQ0NzQsIDYuNzQ0NDMsIDEwLjAzMjMsIDE3LjcwNjMsIDIyLjA5NDEiLCBcCi0gICAgICAgICAgIjEuMjUxMzYsIDEuNDc2OTIsIDMuNDQ5MjMsIDYuNzQ3ODEsIDEwLjAzMjIsIDE3LjcwNjMsIDIyLjA5MzkiLCBcCi0gICAgICAgICAgIjEuMjQ1NiwgMS40Nzg3NSwgMy40NjQyOCwgNi43NDM4MiwgMTAuMDMyMiwgMTcuNzA2MywgMjIuMDkzOSIsIFwKLSAgICAgICAgICAiMS4yNTQzNywgMS40NzIyNiwgMy40NjI3NSwgNi43NDc5NywgMTAuMDMyMSwgMTcuNzA2MywgMjIuMDkzOSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkFOIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDE2MzIsIDAuMDAxNjMyLCAwLjAwMTYzMSwgMC4wMDE2MzEsIDAuMDAxNjMxLCAwLjAwMTYyOSwgMC4wMDE2MjgiLCBcCi0gICAgICAgICAgIjAuMDAxNjEzLCAwLjAwMTYxMywgMC4wMDE2MTMsIDAuMDAxNjEyLCAwLjAwMTYxMSwgMC4wMDE2MSwgMC4wMDE2MDkiLCBcCi0gICAgICAgICAgIjAuMDAxNjAyLCAwLjAwMTYwMiwgMC4wMDE2MDIsIDAuMDAxNjAxLCAwLjAwMTYwMSwgMC4wMDE2LCAwLjAwMTU5OCIsIFwKLSAgICAgICAgICAiMC4wMDE1OTgsIDAuMDAxNTk4LCAwLjAwMTU5OCwgMC4wMDE1OTcsIDAuMDAxNTk3LCAwLjAwMTU5NiwgMC4wMDE1OTQiLCBcCi0gICAgICAgICAgIjAuMDAxNTk2LCAwLjAwMTU5NiwgMC4wMDE1OTYsIDAuMDAxNTk2LCAwLjAwMTU5NSwgMC4wMDE1OTMsIDAuMDAxNTkzIiwgXAotICAgICAgICAgICIwLjAwMTU5NSwgMC4wMDE1OTUsIDAuMDAxNTk2LCAwLjAwMTU5NSwgMC4wMDE1OTUsIDAuMDAxNTk0LCAwLjAwMTU5MyIsIFwKLSAgICAgICAgICAiMC4wMDE1OTcsIDAuMDAxNTk3LCAwLjAwMTU5NywgMC4wMDE1OTcsIDAuMDAxNTk3LCAwLjAwMTU5NSwgMC4wMDE1OTUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDE4MzYsIDAuMDAxODM2LCAwLjAwMTgzNywgMC4wMDE4MzcsIDAuMDAxODM3LCAwLjAwMTgzNiwgMC4wMDE4MzIiLCBcCi0gICAgICAgICAgIjAuMDAxODIzLCAwLjAwMTgyNCwgMC4wMDE4MjQsIDAuMDAxODI0LCAwLjAwMTgyNCwgMC4wMDE4MjQsIDAuMDAxODE5IiwgXAotICAgICAgICAgICIwLjAwMTgxNiwgMC4wMDE4MTYsIDAuMDAxODE3LCAwLjAwMTgxOCwgMC4wMDE4MTgsIDAuMDAxODE3LCAwLjAwMTgxMyIsIFwKLSAgICAgICAgICAiMC4wMDE4MTIsIDAuMDAxODEyLCAwLjAwMTgxNCwgMC4wMDE4MTUsIDAuMDAxODE1LCAwLjAwMTgxNCwgMC4wMDE4MDkiLCBcCi0gICAgICAgICAgIjAuMDAxODA5LCAwLjAwMTgwOSwgMC4wMDE4MTIsIDAuMDAxODEzLCAwLjAwMTgxMywgMC4wMDE4MTMsIDAuMDAxODA4IiwgXAotICAgICAgICAgICIwLjAwMTgwNywgMC4wMDE4MDgsIDAuMDAxODExLCAwLjAwMTgxMSwgMC4wMDE4MTIsIDAuMDAxODExLCAwLjAwMTgwNyIsIFwKLSAgICAgICAgICAiMC4wMDE4MDcsIDAuMDAxODA4LCAwLjAwMTgxMiwgMC4wMDE4MTMsIDAuMDAxODE0LCAwLjAwMTgxMywgMC4wMDE4MDkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDEzMjEsIDAuMDAxMzIxLCAwLjAwMTMyMSwgMC4wMDEzMjEsIDAuMDAxMzIsIDAuMDAxMzE5LCAwLjAwMTMxOSIsIFwKLSAgICAgICAgICAiMC4wMDEzMTgsIDAuMDAxMzE4LCAwLjAwMTMxOCwgMC4wMDEzMTgsIDAuMDAxMzE3LCAwLjAwMTMxNiwgMC4wMDEzMTciLCBcCi0gICAgICAgICAgIjAuMDAxMzE2LCAwLjAwMTMxNywgMC4wMDEzMTYsIDAuMDAxMzE3LCAwLjAwMTMxNywgMC4wMDEzMTYsIDAuMDAxMzE1IiwgXAotICAgICAgICAgICIwLjAwMTMxMywgMC4wMDEzMTYsIDAuMDAxMzE2LCAwLjAwMTMxNywgMC4wMDEzMTYsIDAuMDAxMzE2LCAwLjAwMTMxNSIsIFwKLSAgICAgICAgICAiMC4wMDEzMTQsIDAuMDAxMzE1LCAwLjAwMTMxNiwgMC4wMDEzMTYsIDAuMDAxMzE2LCAwLjAwMTMxNSwgMC4wMDEzMTQiLCBcCi0gICAgICAgICAgIjAuMDAxMzEzLCAwLjAwMTMxNCwgMC4wMDEzMTUsIDAuMDAxMzE2LCAwLjAwMTMxNSwgMC4wMDEzMTUsIDAuMDAxMzE0IiwgXAotICAgICAgICAgICIwLjAwMTMxMiwgMC4wMDEzMTMsIDAuMDAxMzE0LCAwLjAwMTMxNiwgMC4wMDEzMTYsIDAuMDAxMzE1LCAwLjAwMTMxNCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDYyMywgMC4wMDA2MjMsIDAuMDAwNjIzLCAwLjAwMDYyMywgMC4wMDA2MjMsIDAuMDAwNjIzLCAwLjAwMDYxOCIsIFwKLSAgICAgICAgICAiMC4wMDA2MiwgMC4wMDA2MjEsIDAuMDAwNjIyLCAwLjAwMDYyMywgMC4wMDA2MjMsIDAuMDAwNjIzLCAwLjAwMDYxOCIsIFwKLSAgICAgICAgICAiMC4wMDA2MTgsIDAuMDAwNjE4LCAwLjAwMDYyMSwgMC4wMDA2MjIsIDAuMDAwNjIzLCAwLjAwMDYyMiwgMC4wMDA2MTgiLCBcCi0gICAgICAgICAgIjAuMDAwNjE1LCAwLjAwMDYxNiwgMC4wMDA2MiwgMC4wMDA2MjIsIDAuMDAwNjIyLCAwLjAwMDYyMiwgMC4wMDA2MTgiLCBcCi0gICAgICAgICAgIjAuMDAwNjEyLCAwLjAwMDYxNCwgMC4wMDA2MTksIDAuMDAwNjIxLCAwLjAwMDYyMiwgMC4wMDA2MjIsIDAuMDAwNjE4IiwgXAotICAgICAgICAgICIwLjAwMDYwOSwgMC4wMDA2MTEsIDAuMDAwNjE3LCAwLjAwMDYyLCAwLjAwMDYyMSwgMC4wMDA2MjIsIDAuMDAwNjE3IiwgXAotICAgICAgICAgICIwLjAwMDYwNiwgMC4wMDA2MDgsIDAuMDAwNjE2LCAwLjAwMDYxOSwgMC4wMDA2MjEsIDAuMDAwNjIxLCAwLjAwMDYxNyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTE0LCAwLjAwMTE0LCAwLjAwMTE0LCAwLjAwMTE0LCAwLjAwMTE0LCAwLjAwMTEzOSwgMC4wMDExMzkiLCBcCi0gICAgICAgICAgIjAuMDAxMTQyLCAwLjAwMTE0MiwgMC4wMDExNDMsIDAuMDAxMTQ0LCAwLjAwMTE0MiwgMC4wMDExNDIsIDAuMDAxMTQzIiwgXAotICAgICAgICAgICIwLjAwMTE0MiwgMC4wMDExNDIsIDAuMDAxMTQzLCAwLjAwMTE0MywgMC4wMDExNDQsIDAuMDAxMTQzLCAwLjAwMTE0MiIsIFwKLSAgICAgICAgICAiMC4wMDExMzksIDAuMDAxMTQxLCAwLjAwMTE0MywgMC4wMDExNDMsIDAuMDAxMTQzLCAwLjAwMTE0MywgMC4wMDExNDMiLCBcCi0gICAgICAgICAgIjAuMDAxMTQsIDAuMDAxMTQxLCAwLjAwMTE0MywgMC4wMDExNDMsIDAuMDAxMTQ0LCAwLjAwMTE0MywgMC4wMDExNDMiLCBcCi0gICAgICAgICAgIjAuMDAxMTM5LCAwLjAwMTEzOSwgMC4wMDExNDIsIDAuMDAxMTQzLCAwLjAwMTE0MywgMC4wMDExNDMsIDAuMDAxMTQzIiwgXAotICAgICAgICAgICIwLjAwMTEzNywgMC4wMDExMzgsIDAuMDAxMTQxLCAwLjAwMTE0MywgMC4wMDExNDMsIDAuMDAxMTQzLCAwLjAwMTE0MyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDYyMywgMC4wMDA2MjMsIDAuMDAwNjIzLCAwLjAwMDYyNCwgMC4wMDA2MjMsIDAuMDAwNjIzLCAwLjAwMDYxOCIsIFwKLSAgICAgICAgICAiMC4wMDA2MiwgMC4wMDA2MjEsIDAuMDAwNjIzLCAwLjAwMDYyMywgMC4wMDA2MjMsIDAuMDAwNjIzLCAwLjAwMDYyIiwgXAotICAgICAgICAgICIwLjAwMDYxOCwgMC4wMDA2MTgsIDAuMDAwNjIxLCAwLjAwMDYyMiwgMC4wMDA2MjMsIDAuMDAwNjIyLCAwLjAwMDYxOCIsIFwKLSAgICAgICAgICAiMC4wMDA2MTUsIDAuMDAwNjE2LCAwLjAwMDYyLCAwLjAwMDYyMiwgMC4wMDA2MjIsIDAuMDAwNjIyLCAwLjAwMDYxOCIsIFwKLSAgICAgICAgICAiMC4wMDA2MTIsIDAuMDAwNjE0LCAwLjAwMDYxOSwgMC4wMDA2MjEsIDAuMDAwNjIyLCAwLjAwMDYyMiwgMC4wMDA2MTciLCBcCi0gICAgICAgICAgIjAuMDAwNjA5LCAwLjAwMDYxMSwgMC4wMDA2MTcsIDAuMDAwNjIsIDAuMDAwNjIxLCAwLjAwMDYyMiwgMC4wMDA2MTciLCBcCi0gICAgICAgICAgIjAuMDAwNjA2LCAwLjAwMDYwOCwgMC4wMDA2MTYsIDAuMDAwNjE5LCAwLjAwMDYyMSwgMC4wMDA2MjEsIDAuMDAwNjE3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwOTUyLCAwLjAwMDk1MiwgMC4wMDA5NTIsIDAuMDAwOTUyLCAwLjAwMDk1MiwgMC4wMDA5NTIsIDAuMDAwOTUyIiwgXAotICAgICAgICAgICIwLjAwMDk1NywgMC4wMDA5NTcsIDAuMDAwOTU4LCAwLjAwMDk1OCwgMC4wMDA5NTgsIDAuMDAwOTU5LCAwLjAwMDk1OSIsIFwKLSAgICAgICAgICAiMC4wMDA5NTcsIDAuMDAwOTU3LCAwLjAwMDk1OSwgMC4wMDA5NTksIDAuMDAwOTYsIDAuMDAwOTYxLCAwLjAwMDk2IiwgXAotICAgICAgICAgICIwLjAwMDk1NiwgMC4wMDA5NTcsIDAuMDAwOTU5LCAwLjAwMDk2LCAwLjAwMDk2MSwgMC4wMDA5NjEsIDAuMDAwOTYxIiwgXAotICAgICAgICAgICIwLjAwMDk1NSwgMC4wMDA5NTYsIDAuMDAwOTU5LCAwLjAwMDk2LCAwLjAwMDk2MSwgMC4wMDA5NjEsIDAuMDAwOTYxIiwgXAotICAgICAgICAgICIwLjAwMDk1MywgMC4wMDA5NTQsIDAuMDAwOTU4LCAwLjAwMDk2LCAwLjAwMDk2LCAwLjAwMDk2MSwgMC4wMDA5NjEiLCBcCi0gICAgICAgICAgIjAuMDAwOTUyLCAwLjAwMDk1MywgMC4wMDA5NTcsIDAuMDAwOTU5LCAwLjAwMDk2LCAwLjAwMDk2MSwgMC4wMDA5NjEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDA2MjMsIDAuMDAwNjIzLCAwLjAwMDYyMywgMC4wMDA2MjMsIDAuMDAwNjIzLCAwLjAwMDYyMywgMC4wMDA2MTgiLCBcCi0gICAgICAgICAgIjAuMDAwNjIsIDAuMDAwNjIsIDAuMDAwNjIyLCAwLjAwMDYyMywgMC4wMDA2MjMsIDAuMDAwNjIzLCAwLjAwMDYxOCIsIFwKLSAgICAgICAgICAiMC4wMDA2MTYsIDAuMDAwNjE3LCAwLjAwMDYyMSwgMC4wMDA2MjIsIDAuMDAwNjIzLCAwLjAwMDYyMiwgMC4wMDA2MTgiLCBcCi0gICAgICAgICAgIjAuMDAwNjEzLCAwLjAwMDYxNCwgMC4wMDA2MTksIDAuMDAwNjIxLCAwLjAwMDYyMiwgMC4wMDA2MjIsIDAuMDAwNjE4IiwgXAotICAgICAgICAgICIwLjAwMDYxLCAwLjAwMDYxMiwgMC4wMDA2MTgsIDAuMDAwNjIxLCAwLjAwMDYyMiwgMC4wMDA2MjIsIDAuMDAwNjE3IiwgXAotICAgICAgICAgICIwLjAwMDYwNywgMC4wMDA2MDksIDAuMDAwNjE2LCAwLjAwMDYyLCAwLjAwMDYyMSwgMC4wMDA2MjEsIDAuMDAwNjE3IiwgXAotICAgICAgICAgICIwLjAwMDYwNCwgMC4wMDA2MDYsIDAuMDAwNjE1LCAwLjAwMDYxOSwgMC4wMDA2MiwgMC4wMDA2MjEsIDAuMDAwNjE3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogTkFORDRYMSAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChOQU5ENFgxKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMTMwMTA0OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA4MjQzMjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA4MjQzMjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA4MjExNjE7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzA2LCAwLjAwMDMwNiwgMC4wMDAzMDYsIDAuMDAwMzA2LCAwLjAwMDMwNiwgMC4wMDAzMDYsIDAuMDAwMzA1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzA3LCAwLjAwMDMwNywgMC4wMDAzMDcsIDAuMDAwMzA3LCAwLjAwMDMwNywgMC4wMDAzMDcsIDAuMDAwMzA3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA4NDcxMTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA4NDcxMTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA4NDQ0MTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAzMDYsIDAuMDAwMzA2LCAwLjAwMDMwNiwgMC4wMDAzMDYsIDAuMDAwMzA2LCAwLjAwMDMwNSwgMC4wMDAzMDUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAzMDcsIDAuMDAwMzA3LCAwLjAwMDMwNywgMC4wMDAzMDcsIDAuMDAwMzA3LCAwLjAwMDMwNywgMC4wMDAzMDciKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEMpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDg1NDMzNTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA4NTQzMzU7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwODUyNDIyOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDMwNiwgMC4wMDAzMDYsIDAuMDAwMzA2LCAwLjAwMDMwNiwgMC4wMDAzMDYsIDAuMDAwMzA2LCAwLjAwMDMwNiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDMwNywgMC4wMDAzMDcsIDAuMDAwMzA3LCAwLjAwMDMwNywgMC4wMDAzMDcsIDAuMDAwMzA3LCAwLjAwMDMwNyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwODMyNzM4OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDgzMTg0NjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA4MzI3Mzg7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMTU5LCAwLjAwMDE1OSwgMC4wMDAxNTgsIDAuMDAwMTU5LCAwLjAwMDE1OSwgMC4wMDAxNTksIDAuMDAwMTU5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzQ4LCAwLjAwMDM0OCwgMC4wMDAzNDgsIDAuMDAwMzQ4LCAwLjAwMDM0OCwgMC4wMDAzNDgsIDAuMDAwMzQ4Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMDMzMDYxNDsKLSAgICBmdW5jdGlvbiA6ICIoISgoKEEgQikgQykgRCkpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTQ1NjEsIDAuMTM3NzcsIDAuMzgxMjUzLCAwLjU5NTYwNSwgMC44ODE0NTUsIDEuNDUyODQsIDEuODA5NCIsIFwKLSAgICAgICAgICAiMC4xMDYwMDIsIDAuMTQ5MjM3LCAwLjM5MjczMSwgMC42MDcwNzYsIDAuODkyODkzLCAxLjQ2Mzk2LCAxLjgyMDg2IiwgXAotICAgICAgICAgICIwLjEyMDU0MywgMC4xNjM2NjYsIDAuNDA2NTg0LCAwLjYxODg4OSwgMC45MDQ2NCwgMS40NzYwOCwgMS44MzI2OCIsIFwKLSAgICAgICAgICAiMC4xMzU2LCAwLjE3ODM3MSwgMC40MjE2MDIsIDAuNjM1MTYyLCAwLjkxNzgzLCAxLjQ4OTI3LCAxLjg0NjE3IiwgXAotICAgICAgICAgICIwLjE1MDQwNiwgMC4xOTM1NTIsIDAuNDM2MTE1LCAwLjY1MDUwNiwgMC45MzExNTIsIDEuNTAyMzksIDEuODU5MDUiLCBcCi0gICAgICAgICAgIjAuMTc0MTY3LCAwLjIxNzI1OSwgMC40NTk0NjgsIDAuNjczNjk2LCAwLjk1OTQ0NSwgMS41MjQ3LCAxLjg4MTk2IiwgXAotICAgICAgICAgICIwLjE5NDk3MSwgMC4yMzgwMzQsIDAuNDc5Nzg5LCAwLjY5NDE0OSwgMC45Nzk4MDEsIDEuNTQ0MTcsIDEuOTAwOTQiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTc4ODI5LCAwLjI2NTc4NSwgMC43NTkwMDIsIDEuMTkzNjIsIDEuNzc0MTgsIDIuOTM0MTQsIDMuNjU4IiwgXAotICAgICAgICAgICIwLjE3ODYyOSwgMC4yNjU3NDEsIDAuNzU5MTIxLCAxLjE5NDE3LCAxLjc3NTA0LCAyLjkzMzIyLCAzLjY2MDI3IiwgXAotICAgICAgICAgICIwLjE3ODY0MSwgMC4yNjU3NDQsIDAuNzU5MTQ3LCAxLjE5NDYxLCAxLjc3NDQyLCAyLjkzNDQ1LCAzLjY1ODE1IiwgXAotICAgICAgICAgICIwLjE4MDY0MiwgMC4yNjU5NjMsIDAuNzU4OTMxLCAxLjE5NDUzLCAxLjc3NDA0LCAyLjkzNDM3LCAzLjY1OTE2IiwgXAotICAgICAgICAgICIwLjE4NDI0NSwgMC4yNjc1NzksIDAuNzU4OTkzLCAxLjE5Mzk5LCAxLjc3NTE4LCAyLjkzNDAzLCAzLjY1ODYxIiwgXAotICAgICAgICAgICIwLjE5MjM2MywgMC4yNzI5ODMsIDAuNzU4OTUxLCAxLjE5NDYzLCAxLjc3Mzk5LCAyLjkzNTE3LCAzLjY1OTMzIiwgXAotICAgICAgICAgICIwLjIwMTQ1MiwgMC4yNzk2NTEsIDAuNzU4OTcsIDEuMTkzNzEsIDEuNzc1MDksIDIuOTMzNzUsIDMuNjYwMjYiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuNDIxNzg1LCAwLjYxNzk0LCAxLjcyOTAxLCAyLjcwOTY4LCA0LjAxNTIzLCA2LjYyNzgyLCA4LjI2MDYzIiwgXAotICAgICAgICAgICIwLjQzMzExNywgMC42MjkyODYsIDEuNzQwNTEsIDIuNzIxMjUsIDQuMDI2OTgsIDYuNjM5NDMsIDguMjcyMTkiLCBcCi0gICAgICAgICAgIjAuNDQ1NDczLCAwLjY0MTk0OCwgMS43NTQxMSwgMi43MzM5NiwgNC4wMzk4NywgNi42NTIzNiwgOC4yODUxOSIsIFwKLSAgICAgICAgICAiMC40NTcyNTIsIDAuNjUzNjc1LCAxLjc2NTU1LCAyLjc0NjEzLCA0LjA1MjIxLCA2LjY2NDU3LCA4LjI5NzM4IiwgXAotICAgICAgICAgICIwLjQ2ODQzMSwgMC42NjQ5NTksIDEuNzc3NCwgMi43NTczOCwgNC4wNjM1NiwgNi42NzYwMiwgOC4zMDg4NCIsIFwKLSAgICAgICAgICAiMC40ODU5NSwgMC42ODIzNzMsIDEuNzk0OSwgMi43NzUyNSwgNC4wODExOCwgNi42OTM3NiwgOC4zMjY2IiwgXAotICAgICAgICAgICIwLjUwMDgzOCwgMC42OTcyODEsIDEuODA5ODUsIDIuNzkwNiwgNC4wOTY1NCwgNi43MDg5MSwgOC4zNDE3NCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC43MjIxMTYsIDEuMDk2MDksIDMuMTc5NzIsIDQuOTgxNCwgNy40MDg3NCwgMTIuMjU3LCAxNS4yODg1IiwgXAotICAgICAgICAgICIwLjcyNzc0MiwgMS4wODcxMiwgMy4xNzk2OSwgNC45OTI3NywgNy40MTAyOSwgMTIuMjU2OSwgMTUuMjg4NiIsIFwKLSAgICAgICAgICAiMC43MjI3OSwgMS4wOTI0MSwgMy4xODAzNywgNC45ODE3NSwgNy40MDg2NywgMTIuMjU2NiwgMTUuMjg4NiIsIFwKLSAgICAgICAgICAiMC43MjY1ODcsIDEuMDkzODcsIDMuMTc5NzYsIDQuOTgwMjksIDcuNDA4ODgsIDEyLjI1NjksIDE1LjI4ODUiLCBcCi0gICAgICAgICAgIjAuNzI3MDU3LCAxLjA4NzU4LCAzLjE4MDIyLCA0Ljk4NTIzLCA3LjQwODgzLCAxMi4yNTY5LCAxNS4yODg2IiwgXAotICAgICAgICAgICIwLjcyNzU5OSwgMS4wODc2MiwgMy4xNTUzLCA0Ljk3ODMxLCA3LjQwODY3LCAxMi4yNTY3LCAxNS4yODg2IiwgXAotICAgICAgICAgICIwLjcyNzQzMSwgMS4wOTE2NywgMy4xNzk5NywgNC45NzgyNSwgNy40MDg5MSwgMTIuMjU2NCwgMTUuMjg4NiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTM0OTQsIDAuMTM2ODg2LCAwLjM4MTk0OSwgMC41OTc5NTUsIDAuODg2MDAyLCAxLjQ2MTg3LCAxLjgyMTMzIiwgXAotICAgICAgICAgICIwLjEwNTMxNywgMC4xNDg3NCwgMC4zOTM4MTMsIDAuNjA5ODA5LCAwLjg5NzkwNCwgMS40NzMzMSwgMS44MzM0OCIsIFwKLSAgICAgICAgICAiMC4xMTk3MDksIDAuMTYzMjQ0LCAwLjQwNzk5NiwgMC42MjQxMDIsIDAuOTEyMTIsIDEuNDg3NDgsIDEuODQ3NjYiLCBcCi0gICAgICAgICAgIjAuMTM0ODgsIDAuMTc4MTgxLCAwLjQyMzE1NSwgMC42MzkyMTksIDAuOTI2OTU1LCAxLjUwMzIyLCAxLjg2MjI3IiwgXAotICAgICAgICAgICIwLjE0OTU0MiwgMC4xOTI3NTEsIDAuNDM2OTEyLCAwLjY1MjkzOSwgMC45MzU2MjEsIDEuNTExMDcsIDEuODcxNjkiLCBcCi0gICAgICAgICAgIjAuMTczMTY2LCAwLjIxNjU1MywgMC40NjAyMTYsIDAuNjc2MTE5LCAwLjk2NDAxNCwgMS41MzI1NywgMS44OTI2MiIsIFwKLSAgICAgICAgICAiMC4xOTM4MywgMC4yMzcxMzMsIDAuNDgwNjkyLCAwLjY5NjQ3MiwgMC45ODQ0MDgsIDEuNTUxODQsIDEuOTExMyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNzc2MzUsIDAuMjY1Mzg5LCAwLjc2MjI2MywgMS4yMDA4MSwgMS43ODUxOCwgMi45NTQzLCAzLjY4Mzc0IiwgXAotICAgICAgICAgICIwLjE3NzU1OCwgMC4yNjUyOTgsIDAuNzYyMDc2LCAxLjIwMDU0LCAxLjc4NTI0LCAyLjk1NDgsIDMuNjg0NTUiLCBcCi0gICAgICAgICAgIjAuMTc3NjIsIDAuMjY1MjgyLCAwLjc2MjIxMiwgMS4yMDA0NiwgMS43ODQ5NCwgMi45NTQ3OSwgMy42ODQ1NyIsIFwKLSAgICAgICAgICAiMC4xNzk1NzcsIDAuMjY1NTczLCAwLjc2MjM1MSwgMS4yMDA2MSwgMS43ODYyMSwgMi45NTQzMiwgMy42ODQ3NCIsIFwKLSAgICAgICAgICAiMC4xODMzMTcsIDAuMjY3Mzc4LCAwLjc2MjIzMywgMS4yMDA2MywgMS43ODU5OCwgMi45NTQ3LCAzLjY4NTE4IiwgXAotICAgICAgICAgICIwLjE5MTc4MiwgMC4yNzI3MjksIDAuNzYyMTExLCAxLjIwMDU0LCAxLjc4NTAxLCAyLjk1NDk2LCAzLjY4NDkyIiwgXAotICAgICAgICAgICIwLjIwMTA1NywgMC4yNzk0NjIsIDAuNzYyMjA5LCAxLjIwMDI5LCAxLjc4NjEsIDIuOTU0MzIsIDMuNjg1NjQiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuNDE3NzgxLCAwLjYxMzgyMywgMS43MjQ0NSwgMi43MDM5OCwgNC4wMTAzNCwgNi42MjMzNiwgOC4yNTYzNCIsIFwKLSAgICAgICAgICAiMC40MjgwNjUsIDAuNjI0MzgxLCAxLjczNjIxLCAyLjcxNTkxLCA0LjAyMjE5LCA2LjYzNDU2LCA4LjI2NzM3IiwgXAotICAgICAgICAgICIwLjQ0MDQ2NywgMC42MzY2ODYsIDEuNzQ4NSwgMi43Mjg4NSwgNC4wMzQ5MywgNi42NDczMywgOC4yODAxMSIsIFwKLSAgICAgICAgICAiMC40NTIxNDIsIDAuNjQ4NTc0LCAxLjc2MDQsIDIuNzQxMjUsIDQuMDQ2OTEsIDYuNjU5NDUsIDguMjkyMjIiLCBcCi0gICAgICAgICAgIjAuNDYzNjE4LCAwLjY2MDA0MSwgMS43NzI5NywgMi43NTI0NCwgNC4wNTg1NiwgNi42NzEwOCwgOC4zMDM5MyIsIFwKLSAgICAgICAgICAiMC40ODE2MzMsIDAuNjc4MzE0LCAxLjc5MTE5LCAyLjc3MDc3LCA0LjA3NzA0LCA2LjY4OTUzLCA4LjMyMjMiLCBcCi0gICAgICAgICAgIjAuNDk3NDk1LCAwLjY5Mzk0LCAxLjgwNTg5LCAyLjc4NzA1LCA0LjA5MzE0LCA2LjcwNTQ5LCA4LjMzODM5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjcyMjM3NCwgMS4wOTI0OCwgMy4xNjgyMSwgNC45ODE2MSwgNy40MDc5LCAxMi4yNTczLCAxNS4yODc2IiwgXAotICAgICAgICAgICIwLjcyMjQwMiwgMS4wOTI0NiwgMy4xODAxOSwgNC45OTIzNSwgNy40MDg3OSwgMTIuMjU2OCwgMTUuMjg4NyIsIFwKLSAgICAgICAgICAiMC43MjI3MTYsIDEuMDk0MTcsIDMuMTc5ODYsIDQuOTc5NzEsIDcuNDA5MTQsIDEyLjI1NjksIDE1LjI4ODQiLCBcCi0gICAgICAgICAgIjAuNzI1MzY4LCAxLjA5NTA5LCAzLjE3OTc0LCA0Ljk3ODAyLCA3LjQwODksIDEyLjI1NjksIDE1LjI4ODYiLCBcCi0gICAgICAgICAgIjAuNzI3Njc3LCAxLjA5NDY1LCAzLjE1NDEyLCA0Ljk4NTYyLCA3LjQwODY4LCAxMi4yNTY2LCAxNS4yODg2IiwgXAotICAgICAgICAgICIwLjcyNzU0MywgMS4wOTYxMSwgMy4xNTYyNSwgNC45ODQ0MywgNy40MDg4NiwgMTIuMjU2OSwgMTUuMjg4NiIsIFwKLSAgICAgICAgICAiMC43MjE3NjgsIDEuMDk0NDQsIDMuMTU2NDgsIDQuOTkyNjcsIDcuNDA4ODYsIDEyLjI1NzQsIDE1LjI4ODYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDkxMzQzLCAwLjEzNDYwNywgMC4zNzkzOTksIDAuNTk1MjIsIDAuODgzMjg2LCAxLjQ1OTEyLCAxLjgxOTExIiwgXAotICAgICAgICAgICIwLjEwMzE4OCwgMC4xNDY0MSwgMC4zOTEyOSwgMC42MDczNDcsIDAuODk1MTc2LCAxLjQ3MTA0LCAxLjgzMDkyIiwgXAotICAgICAgICAgICIwLjExNzYxLCAwLjE2MTAyMywgMC40MDU0NjEsIDAuNjIxNDQxLCAwLjkwOTQwNywgMS40ODUyNiwgMS44NDUwOSIsIFwKLSAgICAgICAgICAiMC4xMzI4MiwgMC4xNzYwODMsIDAuNDIwNjg2LCAwLjYzNjQ0NywgMC45MjQ2MjMsIDEuNTAwNDIsIDEuODU5NzciLCBcCi0gICAgICAgICAgIjAuMTQ3NDY3LCAwLjE5MDUyNiwgMC40MzQ1MTEsIDAuNjUwMzYyLCAwLjkzMjk3MywgMS41MDg5NywgMS44NjkwNCIsIFwKLSAgICAgICAgICAiMC4xNzEwNjcsIDAuMjE0MzU0LCAwLjQ1NzgwMSwgMC42NzM0NTQsIDAuOTYxMzcxLCAxLjUyOTg2LCAxLjg4OTg0IiwgXAotICAgICAgICAgICIwLjE5MTY4NSwgMC4yMzQ5MTYsIDAuNDc4MjksIDAuNjkzOTA1LCAwLjk4MTc1NSwgMS41NDg2MiwgMS45MDkxIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE3NDg3NywgMC4yNjI1ODYsIDAuNzU5MjQ2LCAxLjE5NzYyLCAxLjc4MjI2LCAyLjk1MTQyLCAzLjY4MTk1IiwgXAotICAgICAgICAgICIwLjE3NDg2OSwgMC4yNjI2MzksIDAuNzU5MzkyLCAxLjE5Nzg4LCAxLjc4MjI2LCAyLjk1MTQzLCAzLjY4MTU1IiwgXAotICAgICAgICAgICIwLjE3NTA1MywgMC4yNjI2NTMsIDAuNzU5MjE5LCAxLjE5NzgsIDEuNzgyMzgsIDIuOTUxNDQsIDMuNjgxNjEiLCBcCi0gICAgICAgICAgIjAuMTc3MDEsIDAuMjYyNzUxLCAwLjc1OTM0OCwgMS4xOTgxOSwgMS43ODIzOSwgMi45NTE0NCwgMy42ODE4MSIsIFwKLSAgICAgICAgICAiMC4xODA5OCwgMC4yNjQ5MSwgMC43NTkyOTcsIDEuMTk3NzEsIDEuNzgyNzIsIDIuOTUxNDEsIDMuNjgyMTUiLCBcCi0gICAgICAgICAgIjAuMTg5NjY2LCAwLjI3MDQzMiwgMC43NTk0NDksIDEuMTk3NjQsIDEuNzgxODEsIDIuOTUyMTEsIDMuNjgyMTMiLCBcCi0gICAgICAgICAgIjAuMTk5MDgxLCAwLjI3NzI1NSwgMC43NTkyOTcsIDEuMTk3NDYsIDEuNzgyODUsIDIuOTUxMDksIDMuNjgyMTUiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuNDA4NTczLCAwLjYwNDgxLCAxLjcxNjE1LCAyLjY5NjExLCA0LjAwMjE5LCA2LjYxNDU3LCA4LjI0NzM5IiwgXAotICAgICAgICAgICIwLjQxODMxMywgMC42MTQ0NDcsIDEuNzI1OTgsIDIuNzA2NTcsIDQuMDEyNTcsIDYuNjI0NzMsIDguMjU3NTgiLCBcCi0gICAgICAgICAgIjAuNDMwMzY0LCAwLjYyNjk4OSwgMS43Mzg1MSwgMi43MTg3NywgNC4wMjQ4NCwgNi42MzcyNSwgOC4yNzAwMiIsIFwKLSAgICAgICAgICAiMC40NDIzNjksIDAuNjM4ODU0LCAxLjc1MDQ5LCAyLjczMTA4LCA0LjAzNzE4LCA2LjY0OTUyLCA4LjI4MjQxIiwgXAotICAgICAgICAgICIwLjQ1NDQzOCwgMC42NTA3NDgsIDEuNzYyODksIDIuNzQzMzYsIDQuMDQ5NDYsIDYuNjYxNzksIDguMjk0NjgiLCBcCi0gICAgICAgICAgIjAuNDczNzIzLCAwLjY3MDU5MiwgMS43ODIxNiwgMi43NjMyMywgNC4wNjkyMywgNi42ODE2MiwgOC4zMTQ1MyIsIFwKLSAgICAgICAgICAiMC40OTA1MjUsIDAuNjg3MTQ0LCAxLjgwMDE3LCAyLjc4MDI1LCA0LjA4NjQ1LCA2LjY5ODcxLCA4LjMzMTYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuNzI3OTgxLCAxLjA5NjcyLCAzLjE4MDAzLCA0Ljk4NDA3LCA3LjQwODksIDEyLjI1NzYsIDE1LjI4ODciLCBcCi0gICAgICAgICAgIjAuNzIyNzk2LCAxLjA5MTc3LCAzLjE3OTc2LCA0Ljk3ODI2LCA3LjQwODU1LCAxMi4yNTc2LCAxNS4yODg3IiwgXAotICAgICAgICAgICIwLjcyNTU2NywgMS4wOTY1NCwgMy4xNzk5NCwgNC45OTI2MSwgNy40MDg4MSwgMTIuMjU3MiwgMTUuMjg4NiIsIFwKLSAgICAgICAgICAiMC43MjI1MTEsIDEuMDg3NTEsIDMuMTc5NjQsIDQuOTkyNSwgNy40MDg3OSwgMTIuMjU3NCwgMTUuMjg4NiIsIFwKLSAgICAgICAgICAiMC43Mjc0MjYsIDEuMDkxNjgsIDMuMTU1MDUsIDQuOTkyNTUsIDcuNDA4ODEsIDEyLjI1NzQsIDE1LjI4ODYiLCBcCi0gICAgICAgICAgIjAuNzI2NCwgMS4wOTYwNywgMy4xNzU1NCwgNC45OTI2NSwgNy40MDg3OCwgMTIuMjU3NCwgMTUuMjg4NiIsIFwKLSAgICAgICAgICAiMC43MjUzNjIsIDEuMDg3NjIsIDMuMTU1NjIsIDQuOTgyMTYsIDcuNDA4OTYsIDEyLjI1NzQsIDE1LjI4ODYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg4NjQ1LCAwLjEzMTg1NCwgMC4zNzY0NzUsIDAuNTkyNTA1LCAwLjg4MDMzNiwgMS40NTYxNSwgMS44MTYxMyIsIFwKLSAgICAgICAgICAiMC4xMDAzNjksIDAuMTQzNTcyLCAwLjM4ODI3MSwgMC42MDQ1NzEsIDAuODkyMTI0LCAxLjQ2ODA1LCAxLjgyNzgyIiwgXAotICAgICAgICAgICIwLjExNDk3NCwgMC4xNTgwMzEsIDAuNDAyMTgxLCAwLjYxNjA4NywgMC45MDQzNTgsIDEuNDc5NzksIDEuODM5NDkiLCBcCi0gICAgICAgICAgIjAuMTMwMDA3LCAwLjE3Mjc2NCwgMC40MTcyMDksIDAuNjMyMjk0LCAwLjkxNzQzNywgMS40OTI5OCwgMS44NTI3NSIsIFwKLSAgICAgICAgICAiMC4xNDQ3OTgsIDAuMTg3OTA5LCAwLjQzMTc1MywgMC42NDc2MSwgMC45MzA1MzIsIDEuNTA2MTYsIDEuODY2NzEiLCBcCi0gICAgICAgICAgIjAuMTY4NDA3LCAwLjIxMTU5MiwgMC40NTUxNTMsIDAuNjcxMTA3LCAwLjk1ODYzMSwgMS41Mjg0NCwgMS44ODg2MyIsIFwKLSAgICAgICAgICAiMC4xODkyNjMsIDAuMjMyMzM0LCAwLjQ3NTQ1MywgMC42OTExODcsIDAuOTc4OTg0LCAxLjU0NzY5LCAxLjkwODQ3Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE3MjM5MywgMC4yNTk4NDEsIDAuNzU4OTAxLCAxLjE5NjcyLCAxLjc4MDYsIDIuOTUwNTIsIDMuNjg0NDciLCBcCi0gICAgICAgICAgIjAuMTcyNDA2LCAwLjI1OTc1NCwgMC43NTg3MDgsIDEuMTk1OTQsIDEuNzgxOCwgMi45NTI3NiwgMy42ODE1OSIsIFwKLSAgICAgICAgICAiMC4xNzI2OTIsIDAuMjYwNDM2LCAwLjc1Njc5NCwgMS4xOTY1OSwgMS43ODEzMywgMi45NTA0MiwgMy42ODg1NSIsIFwKLSAgICAgICAgICAiMC4xNzQ2NDUsIDAuMjYwNjc1LCAwLjc1NjczNiwgMS4xOTg1LCAxLjc4MDI5LCAyLjk1MDQ1LCAzLjY4NDMzIiwgXAotICAgICAgICAgICIwLjE3ODU2OCwgMC4yNjIyMiwgMC43NTc1MywgMS4xOTUxNSwgMS43ODAxLCAyLjk1NzEsIDMuNjgxMTMiLCBcCi0gICAgICAgICAgIjAuMTg3NTAyLCAwLjI2ODQ3NCwgMC43NTY5NSwgMS4xOTUzOCwgMS43ODAwMiwgMi45NTcxNiwgMy42ODE1MiIsIFwKLSAgICAgICAgICAiMC4xOTcxNzMsIDAuMjc1NTM4LCAwLjc1ODY2NSwgMS4xOTU0MiwgMS43ODQ3NiwgMi45NDk1NiwgMy42ODMxOCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zOTMzNzUsIDAuNTg5NDg4LCAxLjcwMDc5LCAyLjY4MDg4LCAzLjk4NzIyLCA2LjU5OTU1LCA4LjIzMjMyIiwgXAotICAgICAgICAgICIwLjQwMjMxOCwgMC41OTg3NjEsIDEuNzEwMzcsIDIuNjkwNTksIDMuOTk2NDEsIDYuNjA4ODMsIDguMjQxNzQiLCBcCi0gICAgICAgICAgIjAuNDEzNzg1LCAwLjYxMDA4MSwgMS43MjIyMSwgMi43MDIzOCwgNC4wMDg0NCwgNi42MjA3NSwgOC4yNTM2NCIsIFwKLSAgICAgICAgICAiMC40MjUwNzEsIDAuNjIxMzk5LCAxLjczMzQxLCAyLjcxNDE1LCA0LjAyMDExLCA2LjYzMjQyLCA4LjI2NTIxIiwgXAotICAgICAgICAgICIwLjQzNjI0NywgMC42MzI5OSwgMS43NDUyNSwgMi43MjUzOSwgNC4wMzE1NiwgNi42NDQwMywgOC4yNzY4OSIsIFwKLSAgICAgICAgICAiMC40NTQ2MSwgMC42NTExNjIsIDEuNzYzMiwgMi43NDM4OSwgNC4wNTAwNCwgNi42NjI3NSwgOC4yOTU1OCIsIFwKLSAgICAgICAgICAiMC40NzA1NTQsIDAuNjY3NTYsIDEuNzgwNSwgMi43NjA3MSwgNC4wNjY2LCA2LjY3ODk4LCA4LjMxMTkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuNzIyNDkxLCAxLjA4NzU3LCAzLjE1NzI2LCA0Ljk4MzQ4LCA3LjQwNzc4LCAxMi4yNTcsIDE1LjI4ODciLCBcCi0gICAgICAgICAgIjAuNzIyNDY3LCAxLjA4NzUzLCAzLjE4MDAyLCA0Ljk3OTU0LCA3LjQwOTA5LCAxMi4yNTc1LCAxNS4yODg3IiwgXAotICAgICAgICAgICIwLjcyNzQwNCwgMS4wOTE4OCwgMy4xODAwNiwgNC45OTI2MSwgNy40MDg4LCAxMi4yNTc2LCAxNS4yODg3IiwgXAotICAgICAgICAgICIwLjcyNzM4OSwgMS4wOTQxNiwgMy4xNzk4LCA0Ljk4MTU4LCA3LjQwODkzLCAxMi4yNTY3LCAxNS4yODg2IiwgXAotICAgICAgICAgICIwLjcyNTE5NiwgMS4wOTI0NCwgMy4xODAwNiwgNC45Nzk3LCA3LjQwODc0LCAxMi4yNTc0LCAxNS4yODg2IiwgXAotICAgICAgICAgICIwLjcyNzI3NywgMS4wOTQwOSwgMy4xNjg1LCA0Ljk4Mjg2LCA3LjQwODU5LCAxMi4yNTY5LCAxNS4yODg2IiwgXAotICAgICAgICAgICIwLjcyNDU4OSwgMS4wOTU5MywgMy4xODA1MywgNC45ODEwNiwgNy40MDg4NCwgMTIuMjU3NCwgMTUuMjg4NiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjQyMywgMC4wMDI0MjMsIDAuMDAyNDIzLCAwLjAwMjQyMiwgMC4wMDI0MjEsIDAuMDAyNDIsIDAuMDAyNDE4IiwgXAotICAgICAgICAgICIwLjAwMjQxLCAwLjAwMjQxLCAwLjAwMjQxLCAwLjAwMjQxLCAwLjAwMjQwOSwgMC4wMDI0MDgsIDAuMDAyNDA3IiwgXAotICAgICAgICAgICIwLjAwMjQwNiwgMC4wMDI0MDcsIDAuMDAyNDA3LCAwLjAwMjQwNiwgMC4wMDI0MDUsIDAuMDAyNDA0LCAwLjAwMjQwMyIsIFwKLSAgICAgICAgICAiMC4wMDI0MDMsIDAuMDAyNDA0LCAwLjAwMjQwNiwgMC4wMDI0MDUsIDAuMDAyNDA1LCAwLjAwMjQwNCwgMC4wMDI0MDIiLCBcCi0gICAgICAgICAgIjAuMDAyNDAxLCAwLjAwMjQwMiwgMC4wMDI0MDQsIDAuMDAyNDA0LCAwLjAwMjQwNCwgMC4wMDI0MDIsIDAuMDAyNDAyIiwgXAotICAgICAgICAgICIwLjAwMjM5OSwgMC4wMDI0LCAwLjAwMjQwMywgMC4wMDI0MDMsIDAuMDAyNDA0LCAwLjAwMjQwMSwgMC4wMDI0MDEiLCBcCi0gICAgICAgICAgIjAuMDAyMzk3LCAwLjAwMjQsIDAuMDAyNCwgMC4wMDI0MDMsIDAuMDAyNDAzLCAwLjAwMjQwMSwgMC4wMDI0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwNzQzLCAwLjAwMDc0MywgMC4wMDA3NDQsIDAuMDAwNzQ0LCAwLjAwMDc0NCwgMC4wMDA3NDQsIDAuMDAwNzQxIiwgXAotICAgICAgICAgICIwLjAwMDczNSwgMC4wMDA3MzgsIDAuMDAwNzQyLCAwLjAwMDc0MywgMC4wMDA3NDMsIDAuMDAwNzQ0LCAwLjAwMDc0NCIsIFwKLSAgICAgICAgICAiMC4wMDA3MjcsIDAuMDAwNzMyLCAwLjAwMDc0LCAwLjAwMDc0MiwgMC4wMDA3NDMsIDAuMDAwNzQzLCAwLjAwMDc0MyIsIFwKLSAgICAgICAgICAiMC4wMDA3MiwgMC4wMDA3MjcsIDAuMDAwNzM4LCAwLjAwMDc0LCAwLjAwMDc0MiwgMC4wMDA3NDMsIDAuMDAwNzQzIiwgXAotICAgICAgICAgICIwLjAwMDcxNCwgMC4wMDA3MjIsIDAuMDAwNzM2LCAwLjAwMDczOSwgMC4wMDA3NDEsIDAuMDAwNzQyLCAwLjAwMDc0MiIsIFwKLSAgICAgICAgICAiMC4wMDA3MDYsIDAuMDAwNzE1LCAwLjAwMDczMiwgMC4wMDA3MzcsIDAuMDAwNzM5LCAwLjAwMDc0MSwgMC4wMDA3NDEiLCBcCi0gICAgICAgICAgIjAuMDAwNzAxLCAwLjAwMDcxMSwgMC4wMDA3MywgMC4wMDA3MzUsIDAuMDAwNzM4LCAwLjAwMDc0LCAwLjAwMDc0MSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjE0NywgMC4wMDIxNDcsIDAuMDAyMTQ2LCAwLjAwMjE0NywgMC4wMDIxNDYsIDAuMDAyMTQ1LCAwLjAwMjE0NCIsIFwKLSAgICAgICAgICAiMC4wMDIxNCwgMC4wMDIxNDEsIDAuMDAyMTQyLCAwLjAwMjE0MSwgMC4wMDIxNCwgMC4wMDIxNCwgMC4wMDIxMzkiLCBcCi0gICAgICAgICAgIjAuMDAyMTMyLCAwLjAwMjEzOCwgMC4wMDIxMzksIDAuMDAyMTM5LCAwLjAwMjEzOSwgMC4wMDIxMzgsIDAuMDAyMTM4IiwgXAotICAgICAgICAgICIwLjAwMjEzMywgMC4wMDIxMzUsIDAuMDAyMTM4LCAwLjAwMjEzOSwgMC4wMDIxMzgsIDAuMDAyMTM4LCAwLjAwMjEzNyIsIFwKLSAgICAgICAgICAiMC4wMDIxMzEsIDAuMDAyMTMzLCAwLjAwMjEzNywgMC4wMDIxMzcsIDAuMDAyMTM3LCAwLjAwMjEzNywgMC4wMDIxMzYiLCBcCi0gICAgICAgICAgIjAuMDAyMTI4LCAwLjAwMjEzMSwgMC4wMDIxMzYsIDAuMDAyMTM3LCAwLjAwMjEzNywgMC4wMDIxMzUsIDAuMDAyMTM1IiwgXAotICAgICAgICAgICIwLjAwMjEyNSwgMC4wMDIxMjksIDAuMDAyMTM0LCAwLjAwMjEzNiwgMC4wMDIxMzYsIDAuMDAyMTM2LCAwLjAwMjEzNSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDc0MywgMC4wMDA3NDQsIDAuMDAwNzQ0LCAwLjAwMDc0NSwgMC4wMDA3NDUsIDAuMDAwNzQ1LCAwLjAwMDc0NCIsIFwKLSAgICAgICAgICAiMC4wMDA3MzUsIDAuMDAwNzM4LCAwLjAwMDc0MywgMC4wMDA3NDMsIDAuMDAwNzQ0LCAwLjAwMDc0NCwgMC4wMDA3NDQiLCBcCi0gICAgICAgICAgIjAuMDAwNzI3LCAwLjAwMDczMiwgMC4wMDA3NCwgMC4wMDA3NDIsIDAuMDAwNzQzLCAwLjAwMDc0NCwgMC4wMDA3NDQiLCBcCi0gICAgICAgICAgIjAuMDAwNzIsIDAuMDAwNzI3LCAwLjAwMDczOCwgMC4wMDA3NCwgMC4wMDA3NDIsIDAuMDAwNzQzLCAwLjAwMDc0MyIsIFwKLSAgICAgICAgICAiMC4wMDA3MTQsIDAuMDAwNzIyLCAwLjAwMDczNiwgMC4wMDA3MzksIDAuMDAwNzQxLCAwLjAwMDc0MiwgMC4wMDA3NDMiLCBcCi0gICAgICAgICAgIjAuMDAwNzA2LCAwLjAwMDcxNiwgMC4wMDA3MzMsIDAuMDAwNzM3LCAwLjAwMDczOSwgMC4wMDA3NDEsIDAuMDAwNzQyIiwgXAotICAgICAgICAgICIwLjAwMDcwMSwgMC4wMDA3MTEsIDAuMDAwNzMsIDAuMDAwNzM1LCAwLjAwMDczOCwgMC4wMDA3NDEsIDAuMDAwNzQxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxODM4LCAwLjAwMTgzOCwgMC4wMDE4MzgsIDAuMDAxODM4LCAwLjAwMTgzNywgMC4wMDE4MzcsIDAuMDAxODM3IiwgXAotICAgICAgICAgICIwLjAwMTg0LCAwLjAwMTg0MSwgMC4wMDE4NDMsIDAuMDAxODQzLCAwLjAwMTg0MywgMC4wMDE4NDIsIDAuMDAxODQyIiwgXAotICAgICAgICAgICIwLjAwMTgzNCwgMC4wMDE4NCwgMC4wMDE4NDMsIDAuMDAxODQ0LCAwLjAwMTg0MywgMC4wMDE4NDMsIDAuMDAxODQyIiwgXAotICAgICAgICAgICIwLjAwMTgzNSwgMC4wMDE4MzgsIDAuMDAxODQzLCAwLjAwMTg0NCwgMC4wMDE4NDQsIDAuMDAxODQ0LCAwLjAwMTg0NCIsIFwKLSAgICAgICAgICAiMC4wMDE4MzMsIDAuMDAxODM3LCAwLjAwMTg0MiwgMC4wMDE4NDQsIDAuMDAxODQ0LCAwLjAwMTg0NCwgMC4wMDE4NDQiLCBcCi0gICAgICAgICAgIjAuMDAxODI5LCAwLjAwMTgzNCwgMC4wMDE4NDIsIDAuMDAxODQzLCAwLjAwMTg0NCwgMC4wMDE4NDMsIDAuMDAxODQ0IiwgXAotICAgICAgICAgICIwLjAwMTgyNSwgMC4wMDE4MzEsIDAuMDAxODQsIDAuMDAxODQyLCAwLjAwMTg0MywgMC4wMDE4NDQsIDAuMDAxODQ0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwNzQzLCAwLjAwMDc0NCwgMC4wMDA3NDQsIDAuMDAwNzQ1LCAwLjAwMDc0NSwgMC4wMDA3NDUsIDAuMDAwNzQ0IiwgXAotICAgICAgICAgICIwLjAwMDczNSwgMC4wMDA3MzgsIDAuMDAwNzQzLCAwLjAwMDc0NCwgMC4wMDA3NDUsIDAuMDAwNzQ0LCAwLjAwMDc0NCIsIFwKLSAgICAgICAgICAiMC4wMDA3MjcsIDAuMDAwNzMyLCAwLjAwMDc0LCAwLjAwMDc0MiwgMC4wMDA3NDMsIDAuMDAwNzQ0LCAwLjAwMDc0NCIsIFwKLSAgICAgICAgICAiMC4wMDA3MiwgMC4wMDA3MjcsIDAuMDAwNzM4LCAwLjAwMDc0MSwgMC4wMDA3NDIsIDAuMDAwNzQzLCAwLjAwMDc0MyIsIFwKLSAgICAgICAgICAiMC4wMDA3MTQsIDAuMDAwNzIyLCAwLjAwMDczNiwgMC4wMDA3MzksIDAuMDAwNzQxLCAwLjAwMDc0MiwgMC4wMDA3NDMiLCBcCi0gICAgICAgICAgIjAuMDAwNzA2LCAwLjAwMDcxNiwgMC4wMDA3MzMsIDAuMDAwNzM3LCAwLjAwMDczOSwgMC4wMDA3NDEsIDAuMDAwNzQyIiwgXAotICAgICAgICAgICIwLjAwMDcwMSwgMC4wMDA3MTEsIDAuMDAwNzMsIDAuMDAwNzM1LCAwLjAwMDczOCwgMC4wMDA3NDEsIDAuMDAwNzQxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxNSwgMC4wMDE1MDEsIDAuMDAxNTAxLCAwLjAwMTUwMSwgMC4wMDE1MDEsIDAuMDAxNTAxLCAwLjAwMTUwMSIsIFwKLSAgICAgICAgICAiMC4wMDE1MDcsIDAuMDAxNTA5LCAwLjAwMTUxMiwgMC4wMDE1MTMsIDAuMDAxNTEzLCAwLjAwMTUxMywgMC4wMDE1MTMiLCBcCi0gICAgICAgICAgIjAuMDAxNTA1LCAwLjAwMTUwOSwgMC4wMDE1MTQsIDAuMDAxNTE1LCAwLjAwMTUxNiwgMC4wMDE1MTYsIDAuMDAxNTE2IiwgXAotICAgICAgICAgICIwLjAwMTUwMiwgMC4wMDE1MDcsIDAuMDAxNTE0LCAwLjAwMTUxNSwgMC4wMDE1MTYsIDAuMDAxNTE3LCAwLjAwMTUxNyIsIFwKLSAgICAgICAgICAiMC4wMDE0OTgsIDAuMDAxNTA0LCAwLjAwMTUxMywgMC4wMDE1MTUsIDAuMDAxNTE3LCAwLjAwMTUxNywgMC4wMDE1MTgiLCBcCi0gICAgICAgICAgIjAuMDAxNDkzLCAwLjAwMTUsIDAuMDAxNTEyLCAwLjAwMTUxNCwgMC4wMDE1MTYsIDAuMDAxNTE3LCAwLjAwMTUxNyIsIFwKLSAgICAgICAgICAiMC4wMDE0ODksIDAuMDAxNDk4LCAwLjAwMTUwOSwgMC4wMDE1MTQsIDAuMDAxNTE1LCAwLjAwMTUxNywgMC4wMDE1MTciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDA3NDMsIDAuMDAwNzQzLCAwLjAwMDc0NCwgMC4wMDA3NDUsIDAuMDAwNzQ1LCAwLjAwMDc0NSwgMC4wMDA3NDQiLCBcCi0gICAgICAgICAgIjAuMDAwNzMzLCAwLjAwMDczNywgMC4wMDA3NDIsIDAuMDAwNzQzLCAwLjAwMDc0NCwgMC4wMDA3NDQsIDAuMDAwNzQ0IiwgXAotICAgICAgICAgICIwLjAwMDcyMywgMC4wMDA3MywgMC4wMDA3MzksIDAuMDAwNzQxLCAwLjAwMDc0MywgMC4wMDA3NDMsIDAuMDAwNzQzIiwgXAotICAgICAgICAgICIwLjAwMDcxNiwgMC4wMDA3MjQsIDAuMDAwNzM3LCAwLjAwMDc0LCAwLjAwMDc0MSwgMC4wMDA3NDMsIDAuMDAwNzQzIiwgXAotICAgICAgICAgICIwLjAwMDcwOSwgMC4wMDA3MTgsIDAuMDAwNzM0LCAwLjAwMDczOCwgMC4wMDA3NCwgMC4wMDA3NDIsIDAuMDAwNzQyIiwgXAotICAgICAgICAgICIwLjAwMDcwMSwgMC4wMDA3MTEsIDAuMDAwNzMxLCAwLjAwMDczNiwgMC4wMDA3MzksIDAuMDAwNzQxLCAwLjAwMDc0MSIsIFwKLSAgICAgICAgICAiMC4wMDA2OTUsIDAuMDAwNzA2LCAwLjAwMDcyOCwgMC4wMDA3MzQsIDAuMDAwNzM3LCAwLjAwMDc0LCAwLjAwMDc0MSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IE5BTkQ0WEwgKgotICogLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoTkFORDRYTCkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjA3NTMzODM7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDUwODQ3NTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA1MDg0NzU7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNTA2NjgyOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDE2NSwgMC4wMDAxNjUsIDAuMDAwMTY1LCAwLjAwMDE2NSwgMC4wMDAxNjUsIDAuMDAwMTY1LCAwLjAwMDE2NSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNTY4NTg2OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDU2ODU4NjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA1NjcxMDQ7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMTY1LCAwLjAwMDE2NSwgMC4wMDAxNjUsIDAuMDAwMTY1LCAwLjAwMDE2NSwgMC4wMDAxNjUsIDAuMDAwMTY1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMTY2LCAwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY2Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihDKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA1Njc0OTg7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNTY3NDk4OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDU2NjI1NDsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxNjUsIDAuMDAwMTY1LCAwLjAwMDE2NSwgMC4wMDAxNjUsIDAuMDAwMTY1LCAwLjAwMDE2NSwgMC4wMDAxNjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiwgMC4wMDAxNjYiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEQpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDU2Mzg3MjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA1NjM0MDQ7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNTYzODcyOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDA3MiwgMC4wMDAwNzEsIDAuMDAwMDcxLCAwLjAwMDA3MSwgMC4wMDAwNzEsIDAuMDAwMDcxLCAwLjAwMDA3MSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDE4OCwgMC4wMDAxODgsIDAuMDAwMTg4LCAwLjAwMDE4OCwgMC4wMDAxODgsIDAuMDAwMTg5LCAwLjAwMDE4OCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjAxODA1MzY7Ci0gICAgZnVuY3Rpb24gOiAiKCEoKChBIEIpIEMpIEQpKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTUzMjYsIDAuMTc4Njg2LCAwLjQwNjY0NSwgMC43ODU4NDIsIDEuMTY0ODcsIDIuMDQ5MSwgMi41NTQyIiwgXAotICAgICAgICAgICIwLjE2NDcwNCwgMC4xOTAxMTEsIDAuNDE4MDk0LCAwLjc5NzMyNSwgMS4xNzYzOCwgMi4wNjA0NywgMi41NjU3NSIsIFwKLSAgICAgICAgICAiMC4xNzkwNzQsIDAuMjA0NDkzLCAwLjQzMTgyMywgMC44MDg5NTYsIDEuMTg3OTUsIDIuMDcxNzIsIDIuNTc2NjgiLCBcCi0gICAgICAgICAgIjAuMTkzNzEzLCAwLjIxOTAzNywgMC40NDY4MzMsIDAuODIyNjQsIDEuMjAxNiwgMi4wODUyNCwgMi41OTA5NyIsIFwKLSAgICAgICAgICAiMC4yMDg0MTYsIDAuMjMzNzUyLCAwLjQ2MTI4OCwgMC44MzYyMDUsIDEuMjE1MjEsIDIuMDk5NTcsIDIuNjA0NTUiLCBcCi0gICAgICAgICAgIjAuMjMyNTQyLCAwLjI1NzMyNCwgMC40ODQ1NywgMC44NjM1ODEsIDEuMjM3NDIsIDIuMTIxNzEsIDIuNjI2OTQiLCBcCi0gICAgICAgICAgIjAuMjUzMTI5LCAwLjI3ODQ2LCAwLjUwNTA5OCwgMC44ODM4MTcsIDEuMjU2NzQsIDIuMTQwOTIsIDIuNjQ1NzIiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjk2MzE5LCAwLjM0NzUyLCAwLjgwODEzMywgMS41NzU4NCwgMi4zNDQyNCwgNC4xMzM0LCA1LjE1NjUiLCBcCi0gICAgICAgICAgIjAuMjk2MjU4LCAwLjM0NzQ1MywgMC44MDgxMTksIDEuNTc1NDcsIDIuMzQyNDgsIDQuMTMzMzksIDUuMTU2NDEiLCBcCi0gICAgICAgICAgIjAuMjk2MjQ5LCAwLjM0NzQ1NiwgMC44MDgyNTksIDEuNTc2NCwgMi4zNDQxMSwgNC4xMzIyLCA1LjE1NzU4IiwgXAotICAgICAgICAgICIwLjI5NjEyOSwgMC4zNDc0MDQsIDAuODA3ODQyLCAxLjU3NjE5LCAyLjM0NDE0LCA0LjEzMjIsIDUuMTU2NTYiLCBcCi0gICAgICAgICAgIjAuMjk3NTYxLCAwLjM0Nzg3NiwgMC44MDgxNDMsIDEuNTc2NDgsIDIuMzQ0NDQsIDQuMTMzNjcsIDUuMTU1NjYiLCBcCi0gICAgICAgICAgIjAuMzAxOTM3LCAwLjM1MTI1MiwgMC44MDgwNDgsIDEuNTc1NDgsIDIuMzQyMjQsIDQuMTMzNDUsIDUuMTU2ODQiLCBcCi0gICAgICAgICAgIjAuMzA4MDIsIDAuMzU2MDM2LCAwLjgwODA2MSwgMS41NzU5NCwgMi4zNDI3NSwgNC4xMzQ4MywgNS4xNTUyOCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC43MDYyOTcsIDAuODI0ODM2LCAxLjg5MTI1LCAzLjY2NjgsIDUuNDQyMTUsIDkuNTg1MDEsIDExLjk1MjUiLCBcCi0gICAgICAgICAgIjAuNzE3OTY3LCAwLjgzNzA2NywgMS45MDI5NiwgMy42Nzg5LCA1LjQ1NDIxLCA5LjU5NzEzLCAxMS45NjQ2IiwgXAotICAgICAgICAgICIwLjczMTgwNSwgMC44NTA2MjEsIDEuOTE2ODQsIDMuNjkyNjEsIDUuNDY4MDEsIDkuNjEwODYsIDExLjk3ODMiLCBcCi0gICAgICAgICAgIjAuNzQ0MTgsIDAuODYyODI2LCAxLjkyOTY5LCAzLjcwNTMyLCA1LjQ4MDY5LCA5LjYyMzY2LCAxMS45OTExIiwgXAotICAgICAgICAgICIwLjc1NjM5LCAwLjg3NTAyOCwgMS45NDE0MywgMy43MTc3MiwgNS40OTI5NSwgOS42MzU5NCwgMTIuMDAzNCIsIFwKLSAgICAgICAgICAiMC43NzUwNDEsIDAuODkzMTI0LCAxLjk2MDMsIDMuNzM2MjgsIDUuNTExNjksIDkuNjU0NjksIDEyLjAyMjEiLCBcCi0gICAgICAgICAgIjAuNzkwMTgsIDAuOTA5MDE4LCAxLjk3NTg0LCAzLjc1MTcyLCA1LjUyNzUyLCA5LjY3MDUsIDEyLjAzOCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMS4yNDg0OCwgMS40Njk2NywgMy40NjAzNSwgNi43NDM1MiwgMTAuMDI3NiwgMTcuNzAyNSwgMjIuMDkwMSIsIFwKLSAgICAgICAgICAiMS4yNDc4NSwgMS40NjE5OCwgMy40NTk5OCwgNi43NDA0NCwgMTAuMDI4OCwgMTcuNzAyOSwgMjIuMDkwMSIsIFwKLSAgICAgICAgICAiMS4yNDI3MSwgMS40NjE3NCwgMy40NjAyMywgNi43NDM0MywgMTAuMDI4NSwgMTcuNzAyNSwgMjIuMDkwMSIsIFwKLSAgICAgICAgICAiMS4yNDg0NywgMS40Njk2MSwgMy40NjAyOSwgNi43NDM2NiwgMTAuMDI4MSwgMTcuNzAyNywgMjIuMDkwMSIsIFwKLSAgICAgICAgICAiMS4yNTI5LCAxLjQ2MjIzLCAzLjQ1OTc0LCA2Ljc0MDg0LCAxMC4wMjg1LCAxNy43MDI1LCAyMi4wOTAyIiwgXAotICAgICAgICAgICIxLjI0MjUsIDEuNDcxMzIsIDMuNDYwMDcsIDYuNzQwMDQsIDEwLjAyODYsIDE3LjcwMjcsIDIyLjA5MDEiLCBcCi0gICAgICAgICAgIjEuMjQ4MjUsIDEuNDY5NjQsIDMuNDQyNjMsIDYuNzQ0MTIsIDEwLjAyODcsIDE3LjcwMjUsIDIyLjA5MDEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTUxMDQ3LCAwLjE3NjM1OCwgMC40MDM5ODYsIDAuNzgzMDgzLCAxLjE2MTY3LCAyLjA0NTM5LCAyLjU1MTQ0IiwgXAotICAgICAgICAgICIwLjE2Mjc1OSwgMC4xODgwODcsIDAuNDE1NzA2LCAwLjc5NDgxMSwgMS4xNzM1OSwgMi4wNTczNSwgMi41NjMwMSIsIFwKLSAgICAgICAgICAiMC4xNzcyMTMsIDAuMjAyNTEsIDAuNDMwMTI5LCAwLjgwOTE4MSwgMS4xODgxLCAyLjA3MjI5LCAyLjU3NzQyIiwgXAotICAgICAgICAgICIwLjE5MTQ2NCwgMC4yMTY3MjQsIDAuNDQ1MTIsIDAuODI0MDY5LCAxLjIwMzAzLCAyLjA4Njk4LCAyLjU5MjM5IiwgXAotICAgICAgICAgICIwLjIwNjYxNSwgMC4yMzEzODYsIDAuNDU4NjY0LCAwLjgzNjU5LCAxLjIxMTE4LCAyLjA5NDk3LCAyLjYwMDUyIiwgXAotICAgICAgICAgICIwLjIzMDMxOCwgMC4yNTU0NzksIDAuNDgxOTQ2LCAwLjg2MDc5OCwgMS4yMzIyOSwgMi4xMTU4LCAyLjYyMTczIiwgXAotICAgICAgICAgICIwLjI1MDg3NCwgMC4yNzYyOCwgMC41MDIyNzUsIDAuODgxMDI0LCAxLjI1OTc4LCAyLjEzNDM4LCAyLjYzOTU4Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI5MzMzNSwgMC4zNDQzNDksIDAuODA1MDE2LCAxLjU3MjQ4LCAyLjMzOTA4LCA0LjEyOTQ2LCA1LjE1MzcxIiwgXAotICAgICAgICAgICIwLjI5MzE4NSwgMC4zNDQ0OTIsIDAuODA0NzgzLCAxLjU3MzM4LCAyLjM0MDcxLCA0LjEyOTE4LCA1LjE1MzkzIiwgXAotICAgICAgICAgICIwLjI5MzM0LCAwLjM0NDQ1MSwgMC44MDU0MiwgMS41NzM0MSwgMi4zNDAwMywgNC4xMzA1OSwgNS4xNTQwMSIsIFwKLSAgICAgICAgICAiMC4yOTMzMSwgMC4zNDQ0NDgsIDAuODA1MTc0LCAxLjU3MzQxLCAyLjM0MDU3LCA0LjEzMDIyLCA1LjE1Mjg3IiwgXAotICAgICAgICAgICIwLjI5NDYyMiwgMC4zNDUwMSwgMC44MDUyOTEsIDEuNTcyNDksIDIuMzM5NDksIDQuMTMwOTMsIDUuMTUzMDkiLCBcCi0gICAgICAgICAgIjAuMjk5MzI4LCAwLjM0ODQ1NCwgMC44MDU0NTMsIDEuNTcyMDcsIDIuMzQwNzksIDQuMTI5NDMsIDUuMTUzMjMiLCBcCi0gICAgICAgICAgIjAuMzA1NTU4LCAwLjM1MzQ2NSwgMC44MDUwODksIDEuNTcyMzQsIDIuMzM5MTcsIDQuMTI5NjQsIDUuMTUxOTciKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuNzAwOTI4LCAwLjgxOTA5NywgMS44ODU5LCAzLjY2MTMyLCA1LjQzNjY0LCA5LjU3OTUzLCAxMS45NDciLCBcCi0gICAgICAgICAgIjAuNzExNzMyLCAwLjgzMDUyOSwgMS44OTY0NCwgMy42NzI1LCA1LjQ0Nzc1LCA5LjU5MDY3LCAxMS45NTgxIiwgXAotICAgICAgICAgICIwLjcyNDYxNCwgMC44NDMxMDYsIDEuOTA5OTUsIDMuNjg1NTgsIDUuNDYwOTEsIDkuNjAzODQsIDExLjk3MTMiLCBcCi0gICAgICAgICAgIjAuNzM3MTksIDAuODU1NDY0LCAxLjkyMjgyLCAzLjY5Nzg1LCA1LjQ3MzQ0LCA5LjYxNjM4LCAxMS45ODM4IiwgXAotICAgICAgICAgICIwLjc0ODkyNywgMC44Njc2NTMsIDEuOTM0NTksIDMuNzEwMTQsIDUuNDg1NzYsIDkuNjI4NjUsIDExLjk5NjEiLCBcCi0gICAgICAgICAgIjAuNzY3NTUxLCAwLjg4NjA3NiwgMS45NTM2OCwgMy43MjkxMiwgNS41MDQ2NywgOS42NDc2MSwgMTIuMDE1MSIsIFwKLSAgICAgICAgICAiMC43ODM3ODYsIDAuOTAyNTk4LCAxLjk2OTM0LCAzLjc0NTU2LCA1LjUyMTE2LCA5LjY2NDEsIDEyLjAzMTYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjEuMjUzNDIsIDEuNDcxOTYsIDMuNDYwNTIsIDYuNzQwMDUsIDEwLjAyODgsIDE3LjcwMjUsIDIyLjA4OTEiLCBcCi0gICAgICAgICAgIjEuMjQzNTgsIDEuNDc1NTIsIDMuNDU5ODgsIDYuNzQwODcsIDEwLjAyODcsIDE3LjcwMjUsIDIyLjA5MDEiLCBcCi0gICAgICAgICAgIjEuMjQ4NDgsIDEuNDY5NTgsIDMuNDYwMjMsIDYuNzQzNjYsIDEwLjAyODUsIDE3LjcwMjksIDIyLjA5MDEiLCBcCi0gICAgICAgICAgIjEuMjUzMjUsIDEuNDY5NjksIDMuNDYwNzYsIDYuNzQ0MjQsIDEwLjAyODYsIDE3LjcwMjUsIDIyLjA5MDEiLCBcCi0gICAgICAgICAgIjEuMjQyOCwgMS40Njk2NSwgMy40NDIyNCwgNi43NDQzLCAxMC4wMjgyLCAxNy43MDI1LCAyMi4wOSIsIFwKLSAgICAgICAgICAiMS4yNDgzMSwgMS40NzE3OSwgMy40NDA4NCwgNi43NDQzNywgMTAuMDI4NiwgMTcuNzAyNSwgMjIuMDg5MiIsIFwKLSAgICAgICAgICAiMS4yNDgzNiwgMS40Njk2MywgMy40NDU3OSwgNi43NDQzNywgMTAuMDI4MiwgMTcuNzAyNSwgMjIuMDkwMSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNDg1MDgsIDAuMTczNzg1LCAwLjQwMTE5NSwgMC43ODAxOSwgMS4xNTkzNCwgMi4wNDM2NCwgMi41NDgwMyIsIFwKLSAgICAgICAgICAiMC4xNjAzMzksIDAuMTg1NjI0LCAwLjQxMjk2OCwgMC43OTE5ODcsIDEuMTcxMjEsIDIuMDU1NDEsIDIuNTU5NzUiLCBcCi0gICAgICAgICAgIjAuMTc1MDEyLCAwLjIwMDEwNiwgMC40MjczNDUsIDAuODA2NTMsIDEuMTg1MTcsIDIuMDY5MTUsIDIuNTc0NCIsIFwKLSAgICAgICAgICAiMC4xODkwOTUsIDAuMjE0Mjg5LCAwLjQ0MjM3NCwgMC44MjExOTIsIDEuMjAwMSwgMi4wODQ2NywgMi41ODkwMSIsIFwKLSAgICAgICAgICAiMC4yMDQyNDIsIDAuMjI4OTc2LCAwLjQ1NTk2OCwgMC44MzM5MSwgMS4yMDg4NywgMi4wOTI5NSwgMi41OTY5OSIsIFwKLSAgICAgICAgICAiMC4yMjc5NDQsIDAuMjUzMDY1LCAwLjQ3OTI4MywgMC44NTgwNDMsIDEuMjI5OTQsIDIuMTEzNDUsIDIuNjE4NzMiLCBcCi0gICAgICAgICAgIjAuMjQ4NTA2LCAwLjI3Mzg1NywgMC40OTk2NiwgMC44NzgzNzksIDEuMjU2ODksIDIuMTMyNzQsIDIuNjM2NDgiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjkwMjk2LCAwLjM0MTU0MiwgMC44MDI0MDgsIDEuNTY5NDUsIDIuMzM2NjIsIDQuMTI3NjQsIDUuMTUxMDciLCBcCi0gICAgICAgICAgIjAuMjkwMzY2LCAwLjM0MTU0NywgMC44MDE3OTMsIDEuNTY5NDMsIDIuMzM2OTUsIDQuMTI3NzIsIDUuMTUxMjEiLCBcCi0gICAgICAgICAgIjAuMjkwNDkyLCAwLjM0MTcsIDAuODAxODY0LCAxLjU2OTY2LCAyLjMzNzM0LCA0LjEyNzUyLCA1LjE1MTY5IiwgXAotICAgICAgICAgICIwLjI5MDUyNCwgMC4zNDE1MjMsIDAuODAxODM3LCAxLjU2OTksIDIuMzM2NzksIDQuMTI3NywgNS4xNTA5OSIsIFwKLSAgICAgICAgICAiMC4yOTE4MjgsIDAuMzQyMjY0LCAwLjgwMTg4MiwgMS41Njk0NCwgMi4zMzY4NiwgNC4xMjc1OCwgNS4xNDkzNCIsIFwKLSAgICAgICAgICAiMC4yOTY3ODQsIDAuMzQ1NzQzLCAwLjgwMjM5OSwgMS41NjkyNSwgMi4zMzY4NCwgNC4xMjcyNCwgNS4xNTEwOSIsIFwKLSAgICAgICAgICAiMC4zMDMwNzksIDAuMzUwNzc3LCAwLjgwMTgxLCAxLjU2OTQzLCAyLjMzNjA5LCA0LjEyNzcsIDUuMTQ5NTQiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuNjkwMDE4LCAwLjgwODU4OSwgMS44NzQ0MSwgMy42NTA0NywgNS40MjYwMiwgOS41Njg5NCwgMTEuOTM2NCIsIFwKLSAgICAgICAgICAiMC43MDA1NywgMC44MTkyMywgMS44ODUxOSwgMy42NjEyNywgNS40MzY1MSwgOS41Nzk0MywgMTEuOTQ2OSIsIFwKLSAgICAgICAgICAiMC43MTMwNzQsIDAuODMxNDU5LCAxLjg5ODI4LCAzLjY3MzY1LCA1LjQ0OTI3LCA5LjU5MjE3LCAxMS45NTk3IiwgXAotICAgICAgICAgICIwLjcyNTI0OCwgMC44NDM3ODUsIDEuOTEwODgsIDMuNjg2MzgsIDUuNDYxNzcsIDkuNjA0NzEsIDExLjk3MjIiLCBcCi0gICAgICAgICAgIjAuNzM3NjU4LCAwLjg1NjI4NiwgMS45MjI5NiwgMy42OTkxNSwgNS40NzQ0NSwgOS42MTc0MiwgMTEuOTg0OSIsIFwKLSAgICAgICAgICAiMC43NTc0NDQsIDAuODc1OTk5LCAxLjk0MzMsIDMuNzE5MTgsIDUuNDk0NTgsIDkuNjM3NTcsIDEyLjAwNSIsIFwKLSAgICAgICAgICAiMC43NzUwNzYsIDAuODkzNjMzLCAxLjk2MTI0LCAzLjczNjYzLCA1LjUxMjI1LCA5LjY1NTMxLCAxMi4wMjI4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIxLjI0NzgyLCAxLjQ2MzU3LCAzLjQ0Mzc2LCA2Ljc0NDE5LCAxMC4wMjg3LCAxNy43MDI1LCAyMi4wOTAxIiwgXAotICAgICAgICAgICIxLjI0MjE5LCAxLjQ3NTY1LCAzLjQ1OTg5LCA2Ljc0MTAyLCAxMC4wMjg3LCAxNy43MDI1LCAyMi4wOTAxIiwgXAotICAgICAgICAgICIxLjI0ODU0LCAxLjQ2OTY5LCAzLjQ2MDI5LCA2Ljc0NDA4LCAxMC4wMjg3LCAxNy43MDI1LCAyMi4wOTAxIiwgXAotICAgICAgICAgICIxLjI0ODM4LCAxLjQ2MzMxLCAzLjQ2MDQ1LCA2Ljc0MzM5LCAxMC4wMjcxLCAxNy43MDI1LCAyMi4wOTAxIiwgXAotICAgICAgICAgICIxLjI0ODI5LCAxLjQ2Mjg5LCAzLjQ1OTgsIDYuNzQwNiwgMTAuMDI4NSwgMTcuNzAyNSwgMjIuMDkwMSIsIFwKLSAgICAgICAgICAiMS4yNDc5NCwgMS40NjI4LCAzLjQ2MDE5LCA2Ljc0MDA5LCAxMC4wMjg2LCAxNy43MDI1LCAyMi4wOTAxIiwgXAotICAgICAgICAgICIxLjI0ODQxLCAxLjQ2OTU5LCAzLjQ2MDU1LCA2Ljc0NDIzLCAxMC4wMjg1LCAxNy43MDI1LCAyMi4wOTAxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkQiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE0NTU5OCwgMC4xNzA4NDYsIDAuMzk4MTM3LCAwLjc3NzMzNiwgMS4xNTY1MSwgMi4wNDA2NSwgMi41NDQ5MyIsIFwKLSAgICAgICAgICAiMC4xNTczMTIsIDAuMTgyNTkxLCAwLjQwOTg1MSwgMC43ODg2MTksIDEuMTY4MDEsIDIuMDUxNDYsIDIuNTU2NjQiLCBcCi0gICAgICAgICAgIjAuMTcxNzc3LCAwLjE5Njk4OCwgMC40MjM2NTksIDAuODAwNTE0LCAxLjE3OTI3LCAyLjA2MzY4LCAyLjU2ODU2IiwgXAotICAgICAgICAgICIwLjE4NjQyMiwgMC4yMTE2MTcsIDAuNDM4Njk0LCAwLjgxNDQ1MSwgMS4xOTI3NCwgMi4wNzc5OCwgMi41ODE3MSIsIFwKLSAgICAgICAgICAiMC4yMDExMjEsIDAuMjI2MzE2LCAwLjQ1MzE4NywgMC44Mjc2NzYsIDEuMjA2ODcsIDIuMDkwNDUsIDIuNTk1MjQiLCBcCi0gICAgICAgICAgIjAuMjI1MTU1LCAwLjI0OTg3NCwgMC40NzY0MDUsIDAuODU1MjE0LCAxLjIyODQ2LCAyLjExMzMxLCAyLjYxNzg2IiwgXAotICAgICAgICAgICIwLjI0NTc3MywgMC4yNzA5ODEsIDAuNDk2OTIzLCAwLjg3NTU5NywgMS4yNDgyNywgMi4xMzIzMywgMi42MzcxNSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yODgxLCAwLjMzOTQyMSwgMC43OTkyMSwgMS41NjY5NywgMi4zMzYyOSwgNC4xMjg4OSwgNS4xNTE2NCIsIFwKLSAgICAgICAgICAiMC4yODc3MTIsIDAuMzM4NjgsIDAuODAxMTg1LCAxLjU3MDgyLCAyLjMzNDc5LCA0LjEzMDE5LCA1LjE1Mzk1IiwgXAotICAgICAgICAgICIwLjI4NzM4MywgMC4zMzk0NzIsIDAuNzk5MjAxLCAxLjU3MDkxLCAyLjM0MDYyLCA0LjEzMTM1LCA1LjE1MTM0IiwgXAotICAgICAgICAgICIwLjI4NzYzNSwgMC4zMzg2NywgMC43OTkyMzksIDEuNTY4MDksIDIuMzQwNTgsIDQuMTI4NTcsIDUuMTUxMzgiLCBcCi0gICAgICAgICAgIjAuMjg5MTk5LCAwLjMzOTI0OSwgMC44MDAwNiwgMS41Njg0OCwgMi4zMzQ4MSwgNC4xMjc0LCA1LjE1NDE2IiwgXAotICAgICAgICAgICIwLjI5NDc5MiwgMC4zNDM4ODIsIDAuODAxNDM3LCAxLjU2NzM1LCAyLjMzOTk2LCA0LjEyNjUsIDUuMTUyODUiLCBcCi0gICAgICAgICAgIjAuMzAxMDMxLCAwLjM0ODUyMiwgMC44MDEyNzEsIDEuNTY3MzMsIDIuMzM1MjQsIDQuMTI3MSwgNS4xNTM4MiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC42NzMyOTcsIDAuNzkxNjg0LCAxLjg1NzUyLCAzLjYzNDExLCA1LjQwOTQ0LCA5LjU1MjIxLCAxMS45MTk3IiwgXAotICAgICAgICAgICIwLjY4MjkyLCAwLjgwMTMzMSwgMS44Njc2OSwgMy42NDM3MSwgNS40MTg5NywgOS41NjE4OSwgMTEuOTI5MyIsIFwKLSAgICAgICAgICAiMC42OTQ0MjksIDAuODEzMzczLCAxLjg3OTk3LCAzLjY1NTQ2LCA1LjQzMDg1LCA5LjU3MzkzLCAxMS45NDE0IiwgXAotICAgICAgICAgICIwLjcwNjM5NywgMC44MjQ2NjIsIDEuODkxOTUsIDMuNjY3NDEsIDUuNDQyOTYsIDkuNTg1ODQsIDExLjk1MzMiLCBcCi0gICAgICAgICAgIjAuNzE4NDAxLCAwLjgzNzA1NywgMS45MDQwOCwgMy42ODAwMSwgNS40NTU0NSwgOS41OTg0MSwgMTEuOTY1OSIsIFwKLSAgICAgICAgICAiMC43Mzc0OTUsIDAuODU2MzYzLCAxLjkyMzY4LCAzLjY5OTI1LCA1LjQ3NDU5LCA5LjYxNzYzLCAxMS45ODUxIiwgXAotICAgICAgICAgICIwLjc1MzkxMiwgMC44NzI1NzUsIDEuOTM5MjMsIDMuNzE1OTIsIDUuNDkxMzksIDkuNjM0NDEsIDEyLjAwMTkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjEuMjQ3NzIsIDEuNDY4NDEsIDMuNDQzMDIsIDYuNzQ0NTYsIDEwLjAyODksIDE3LjcwMjUsIDIyLjA5MDEiLCBcCi0gICAgICAgICAgIjEuMjUyNzEsIDEuNDYyOSwgMy40NTk5NSwgNi43NDA4OCwgMTAuMDI4NywgMTcuNzAyNSwgMjIuMDkwMSIsIFwKLSAgICAgICAgICAiMS4yNTAzNywgMS40NzU4MiwgMy40NDI3LCA2Ljc0NDI4LCAxMC4wMjg0LCAxNy43MDI1LCAyMi4wOTAxIiwgXAotICAgICAgICAgICIxLjI0MTY0LCAxLjQ3MjQzLCAzLjQ2MDQ2LCA2Ljc0NDM2LCAxMC4wMjg2LCAxNy43MDI1LCAyMi4wODk3IiwgXAotICAgICAgICAgICIxLjI1MDEsIDEuNDY5MzcsIDMuNDQ0OTcsIDYuNzQzNDYsIDEwLjAyODYsIDE3LjcwMjgsIDIyLjA5MDEiLCBcCi0gICAgICAgICAgIjEuMjQ0MzYsIDEuNDc1MTcsIDMuNDYwNjIsIDYuNzQwNCwgMTAuMDI4NSwgMTcuNzAyNSwgMjIuMDkwMSIsIFwKLSAgICAgICAgICAiMS4yNDc2NywgMS40Njg4MywgMy40NTg0NiwgNi43NDQzOSwgMTAuMDI4NiwgMTcuNzAyNSwgMjIuMDkwMSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTUxNiwgMC4wMDE1MTYsIDAuMDAxNTE2LCAwLjAwMTUxNSwgMC4wMDE1MTQsIDAuMDAxNTEzLCAwLjAwMTUxMiIsIFwKLSAgICAgICAgICAiMC4wMDE1MDksIDAuMDAxNTA5LCAwLjAwMTUwOSwgMC4wMDE1MDksIDAuMDAxNTA4LCAwLjAwMTUwNywgMC4wMDE1MDUiLCBcCi0gICAgICAgICAgIjAuMDAxNTA3LCAwLjAwMTUwNywgMC4wMDE1MDcsIDAuMDAxNTA2LCAwLjAwMTUwNSwgMC4wMDE1MDQsIDAuMDAxNTA0IiwgXAotICAgICAgICAgICIwLjAwMTUwNiwgMC4wMDE1MDYsIDAuMDAxNTA2LCAwLjAwMTUwNSwgMC4wMDE1MDUsIDAuMDAxNTA0LCAwLjAwMTUwMyIsIFwKLSAgICAgICAgICAiMC4wMDE1MDUsIDAuMDAxNTA1LCAwLjAwMTUwNiwgMC4wMDE1MDUsIDAuMDAxNTA1LCAwLjAwMTUwMywgMC4wMDE1MDMiLCBcCi0gICAgICAgICAgIjAuMDAxNTA0LCAwLjAwMTUwNCwgMC4wMDE1MDUsIDAuMDAxNTA1LCAwLjAwMTUwNCwgMC4wMDE1MDIsIDAuMDAxNTAyIiwgXAotICAgICAgICAgICIwLjAwMTUwMywgMC4wMDE1MDQsIDAuMDAxNTA0LCAwLjAwMTUwNCwgMC4wMDE1MDQsIDAuMDAxNTAyLCAwLjAwMTUwMiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDYwNiwgMC4wMDA2MDYsIDAuMDAwNjA2LCAwLjAwMDYwNiwgMC4wMDA2MDYsIDAuMDAwNjA1LCAwLjAwMDYwMSIsIFwKLSAgICAgICAgICAiMC4wMDA2MDMsIDAuMDAwNjAzLCAwLjAwMDYwNSwgMC4wMDA2MDYsIDAuMDAwNjA2LCAwLjAwMDYwNSwgMC4wMDA2MDEiLCBcCi0gICAgICAgICAgIjAuMDAwNiwgMC4wMDA2MDEsIDAuMDAwNjA0LCAwLjAwMDYwNSwgMC4wMDA2MDUsIDAuMDAwNjA1LCAwLjAwMDYwMSIsIFwKLSAgICAgICAgICAiMC4wMDA1OTcsIDAuMDAwNTk5LCAwLjAwMDYwMywgMC4wMDA2MDQsIDAuMDAwNjA1LCAwLjAwMDYwNSwgMC4wMDA2MDEiLCBcCi0gICAgICAgICAgIjAuMDAwNTk1LCAwLjAwMDU5NiwgMC4wMDA2MDIsIDAuMDAwNjA0LCAwLjAwMDYwNSwgMC4wMDA2MDUsIDAuMDAwNiIsIFwKLSAgICAgICAgICAiMC4wMDA1OTEsIDAuMDAwNTkzLCAwLjAwMDYsIDAuMDAwNjAzLCAwLjAwMDYwNCwgMC4wMDA2MDQsIDAuMDAwNiIsIFwKLSAgICAgICAgICAiMC4wMDA1ODksIDAuMDAwNTkxLCAwLjAwMDU5OCwgMC4wMDA2MDIsIDAuMDAwNjAzLCAwLjAwMDYwNCwgMC4wMDA2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxMzIzLCAwLjAwMTMyMywgMC4wMDEzMjIsIDAuMDAxMzIyLCAwLjAwMTMyMiwgMC4wMDEzMjEsIDAuMDAxMzIiLCBcCi0gICAgICAgICAgIjAuMDAxMzE5LCAwLjAwMTMxOSwgMC4wMDEzMiwgMC4wMDEzMTksIDAuMDAxMzE5LCAwLjAwMTMxOCwgMC4wMDEzMTciLCBcCi0gICAgICAgICAgIjAuMDAxMzE4LCAwLjAwMTMxOCwgMC4wMDEzMTksIDAuMDAxMzE4LCAwLjAwMTMxOCwgMC4wMDEzMTcsIDAuMDAxMzE2IiwgXAotICAgICAgICAgICIwLjAwMTMxNiwgMC4wMDEzMTcsIDAuMDAxMzE4LCAwLjAwMTMxOCwgMC4wMDEzMTgsIDAuMDAxMzE3LCAwLjAwMTMxNiIsIFwKLSAgICAgICAgICAiMC4wMDEzMTUsIDAuMDAxMzE2LCAwLjAwMTMxNywgMC4wMDEzMTgsIDAuMDAxMzE3LCAwLjAwMTMxNiwgMC4wMDEzMTUiLCBcCi0gICAgICAgICAgIjAuMDAxMzE0LCAwLjAwMTMxNSwgMC4wMDEzMTcsIDAuMDAxMzE3LCAwLjAwMTMxNywgMC4wMDEzMTUsIDAuMDAxMzE1IiwgXAotICAgICAgICAgICIwLjAwMTMxNCwgMC4wMDEzMTQsIDAuMDAxMzE1LCAwLjAwMTMxNywgMC4wMDEzMTcsIDAuMDAxMzE2LCAwLjAwMTMxNSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDYwNiwgMC4wMDA2MDYsIDAuMDAwNjA2LCAwLjAwMDYwNiwgMC4wMDA2MDYsIDAuMDAwNjA1LCAwLjAwMDYiLCBcCi0gICAgICAgICAgIjAuMDAwNjAzLCAwLjAwMDYwMywgMC4wMDA2MDUsIDAuMDAwNjA2LCAwLjAwMDYwNiwgMC4wMDA2MDUsIDAuMDAwNjAxIiwgXAotICAgICAgICAgICIwLjAwMDYsIDAuMDAwNjAxLCAwLjAwMDYwNCwgMC4wMDA2MDUsIDAuMDAwNjA1LCAwLjAwMDYwNSwgMC4wMDA2MDEiLCBcCi0gICAgICAgICAgIjAuMDAwNTk3LCAwLjAwMDU5OSwgMC4wMDA2MDMsIDAuMDAwNjA0LCAwLjAwMDYwNSwgMC4wMDA2MDUsIDAuMDAwNjAxIiwgXAotICAgICAgICAgICIwLjAwMDU5NSwgMC4wMDA1OTYsIDAuMDAwNjAyLCAwLjAwMDYwNCwgMC4wMDA2MDUsIDAuMDAwNjA1LCAwLjAwMDYiLCBcCi0gICAgICAgICAgIjAuMDAwNTkyLCAwLjAwMDU5MywgMC4wMDA2LCAwLjAwMDYwMywgMC4wMDA2MDQsIDAuMDAwNjA0LCAwLjAwMDYiLCBcCi0gICAgICAgICAgIjAuMDAwNTg5LCAwLjAwMDU5MSwgMC4wMDA1OTgsIDAuMDAwNjAyLCAwLjAwMDYwMywgMC4wMDA2MDQsIDAuMDAwNiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTEzMSwgMC4wMDExMzEsIDAuMDAxMTMxLCAwLjAwMTEzMSwgMC4wMDExMzEsIDAuMDAxMTMsIDAuMDAxMTMiLCBcCi0gICAgICAgICAgIjAuMDAxMTMzLCAwLjAwMTEzMywgMC4wMDExMzQsIDAuMDAxMTMzLCAwLjAwMTEzNCwgMC4wMDExMzMsIDAuMDAxMTMyIiwgXAotICAgICAgICAgICIwLjAwMTEzMywgMC4wMDExMzMsIDAuMDAxMTM0LCAwLjAwMTEzNCwgMC4wMDExMzQsIDAuMDAxMTM0LCAwLjAwMTEzMyIsIFwKLSAgICAgICAgICAiMC4wMDExMzIsIDAuMDAxMTMyLCAwLjAwMTEzNCwgMC4wMDExMzQsIDAuMDAxMTM0LCAwLjAwMTEzMywgMC4wMDExMzMiLCBcCi0gICAgICAgICAgIjAuMDAxMTMxLCAwLjAwMTEzMiwgMC4wMDExMzQsIDAuMDAxMTM0LCAwLjAwMTEzNCwgMC4wMDExMzQsIDAuMDAxMTM0IiwgXAotICAgICAgICAgICIwLjAwMTEzLCAwLjAwMTEzLCAwLjAwMTEzMywgMC4wMDExMzQsIDAuMDAxMTM0LCAwLjAwMTEzNCwgMC4wMDExMzQiLCBcCi0gICAgICAgICAgIjAuMDAxMTI5LCAwLjAwMTEyOSwgMC4wMDExMzIsIDAuMDAxMTM0LCAwLjAwMTEzNCwgMC4wMDExMzQsIDAuMDAxMTMzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwNjA2LCAwLjAwMDYwNiwgMC4wMDA2MDYsIDAuMDAwNjA2LCAwLjAwMDYwNiwgMC4wMDA2MDUsIDAuMDAwNjAxIiwgXAotICAgICAgICAgICIwLjAwMDYwMywgMC4wMDA2MDMsIDAuMDAwNjA1LCAwLjAwMDYwNiwgMC4wMDA2MDYsIDAuMDAwNjA1LCAwLjAwMDYwMSIsIFwKLSAgICAgICAgICAiMC4wMDA2LCAwLjAwMDYwMSwgMC4wMDA2MDQsIDAuMDAwNjA1LCAwLjAwMDYwNSwgMC4wMDA2MDUsIDAuMDAwNjAxIiwgXAotICAgICAgICAgICIwLjAwMDU5NywgMC4wMDA1OTksIDAuMDAwNjAzLCAwLjAwMDYwNCwgMC4wMDA2MDUsIDAuMDAwNjA1LCAwLjAwMDYwMSIsIFwKLSAgICAgICAgICAiMC4wMDA1OTUsIDAuMDAwNTk2LCAwLjAwMDYwMiwgMC4wMDA2MDQsIDAuMDAwNjA1LCAwLjAwMDYwNSwgMC4wMDA2IiwgXAotICAgICAgICAgICIwLjAwMDU5MSwgMC4wMDA1OTMsIDAuMDAwNiwgMC4wMDA2MDMsIDAuMDAwNjA0LCAwLjAwMDYwNCwgMC4wMDA2IiwgXAotICAgICAgICAgICIwLjAwMDU4OSwgMC4wMDA1OTEsIDAuMDAwNTk4LCAwLjAwMDYwMiwgMC4wMDA2MDMsIDAuMDAwNjA0LCAwLjAwMDYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJEIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDA5MjgsIDAuMDAwOTI4LCAwLjAwMDkyOCwgMC4wMDA5MjgsIDAuMDAwOTI4LCAwLjAwMDkyOCwgMC4wMDA5MjgiLCBcCi0gICAgICAgICAgIjAuMDAwOTMzLCAwLjAwMDkzMywgMC4wMDA5MzQsIDAuMDAwOTM0LCAwLjAwMDkzNSwgMC4wMDA5MzQsIDAuMDAwOTM1IiwgXAotICAgICAgICAgICIwLjAwMDkzMywgMC4wMDA5MzQsIDAuMDAwOTM1LCAwLjAwMDkzNiwgMC4wMDA5MzYsIDAuMDAwOTM2LCAwLjAwMDkzNyIsIFwKLSAgICAgICAgICAiMC4wMDA5MzIsIDAuMDAwOTMzLCAwLjAwMDkzNSwgMC4wMDA5MzYsIDAuMDAwOTM3LCAwLjAwMDkzNywgMC4wMDA5MzciLCBcCi0gICAgICAgICAgIjAuMDAwOTMxLCAwLjAwMDkzMiwgMC4wMDA5MzUsIDAuMDAwOTM2LCAwLjAwMDkzNywgMC4wMDA5MzcsIDAuMDAwOTM3IiwgXAotICAgICAgICAgICIwLjAwMDkyOSwgMC4wMDA5MywgMC4wMDA5MzQsIDAuMDAwOTM2LCAwLjAwMDkzNywgMC4wMDA5MzcsIDAuMDAwOTM3IiwgXAotICAgICAgICAgICIwLjAwMDkyOCwgMC4wMDA5MjksIDAuMDAwOTMzLCAwLjAwMDkzNiwgMC4wMDA5MzcsIDAuMDAwOTM3LCAwLjAwMDkzNyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDYwNiwgMC4wMDA2MDYsIDAuMDAwNjA2LCAwLjAwMDYwNiwgMC4wMDA2MDYsIDAuMDAwNjA1LCAwLjAwMDYwMSIsIFwKLSAgICAgICAgICAiMC4wMDA2MDIsIDAuMDAwNjAzLCAwLjAwMDYwNSwgMC4wMDA2MDUsIDAuMDAwNjA2LCAwLjAwMDYwNSwgMC4wMDA2MDEiLCBcCi0gICAgICAgICAgIjAuMDAwNTk5LCAwLjAwMDYsIDAuMDAwNjAzLCAwLjAwMDYwNSwgMC4wMDA2MDUsIDAuMDAwNjA1LCAwLjAwMDYwMSIsIFwKLSAgICAgICAgICAiMC4wMDA1OTYsIDAuMDAwNTk3LCAwLjAwMDYwMiwgMC4wMDA2MDQsIDAuMDAwNjA1LCAwLjAwMDYwNSwgMC4wMDA2IiwgXAotICAgICAgICAgICIwLjAwMDU5MywgMC4wMDA1OTUsIDAuMDAwNjAxLCAwLjAwMDYwMywgMC4wMDA2MDQsIDAuMDAwNjA0LCAwLjAwMDYiLCBcCi0gICAgICAgICAgIjAuMDAwNTg5LCAwLjAwMDU5MSwgMC4wMDA1OTksIDAuMDAwNjAyLCAwLjAwMDYwMywgMC4wMDA2MDQsIDAuMDAwNiIsIFwKLSAgICAgICAgICAiMC4wMDA1ODcsIDAuMDAwNTg5LCAwLjAwMDU5NywgMC4wMDA2MDEsIDAuMDAwNjAzLCAwLjAwMDYwNCwgMC4wMDA2Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogTk9SM0JYNCAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChOT1IzQlg0KSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMjg4Nzg2OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBTikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwODgwMDA4OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDg3OTMzMzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA4ODAwMDg7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxNjEsIDAuMDAxNTg3LCAwLjAwMTU3LCAwLjAwMTU1OSwgMC4wMDE1NTMsIDAuMDAxNTQ5LCAwLjAwMTU0OCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzQyNiwgMC4wMDM0MSwgMC4wMDMzOTMsIDAuMDAzMzg1LCAwLjAwMzM3NSwgMC4wMDMzNjcsIDAuMDAzMzYyIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDMzNTIwMzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDMzMjcyNjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDMzNTIwMzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA1ODUsIDAuMDAwNTg1LCAwLjAwMDU4NSwgMC4wMDA1ODUsIDAuMDAwNTg2LCAwLjAwMDU4NSwgMC4wMDA1ODYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDEyODQsIDAuMDAxMjg2LCAwLjAwMTI4MywgMC4wMDEyODUsIDAuMDAxMjgzLCAwLjAwMTI4MywgMC4wMDEyODMiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEMpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMzA3NDc4OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMzA3NDQ3OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMzA3NDc4OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDM3LCAwLjAwMDM3LCAwLjAwMDM3LCAwLjAwMDM3LCAwLjAwMDM3LCAwLjAwMDM3LCAwLjAwMDM3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyNDQ1LCAwLjAwMjQ0OCwgMC4wMDI0NDcsIDAuMDAyNDQ3LCAwLjAwMjQ0NSwgMC4wMDI0NDcsIDAuMDAyNDQ1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMTk1MTI5OwotICAgIGZ1bmN0aW9uIDogIighKCgoIUFOKStCKStDKSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkFOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE2ODczNywgMC41NjU1MTgsIDAuOTYyMTUyLCAxLjI0NTk1LCAxLjY5OTU5LCAyLjA5NDc0LCAyLjY2MTUyIiwgXAotICAgICAgICAgICIwLjE4MDQxNSwgMC41Nzc1NiwgMC45NzM5MTcsIDEuMjU3MTMsIDEuNzEwNTksIDIuMTA2ODIsIDIuNjczNjIiLCBcCi0gICAgICAgICAgIjAuMTk1MjY0LCAwLjU5MjExNCwgMC45ODg4MDYsIDEuMjcyNjIsIDEuNzI1MzksIDIuMTIxOTUsIDIuNjg4MTMiLCBcCi0gICAgICAgICAgIjAuMjEwMzE2LCAwLjYwNzI2NCwgMS4wMDM4OCwgMS4yODcxLCAxLjc0MDIyLCAyLjEzNzgxLCAyLjcwMjc5IiwgXAotICAgICAgICAgICIwLjIyNTIxLCAwLjYyMjQ3NSwgMS4wMTg3MiwgMS4zMDI2MiwgMS43NTYyMywgMi4xNTIyMiwgMi43MTgyNyIsIFwKLSAgICAgICAgICAiMC4yNDg4NzksIDAuNjQ2MDkyLCAxLjA0MjQxLCAxLjMyNTc5LCAxLjc3ODkyLCAyLjE3NjQsIDIuNzQxNjQiLCBcCi0gICAgICAgICAgIjAuMjY4NTQzLCAwLjY2NTU5OCwgMS4wNjI0NSwgMS4zNDU1MSwgMS43OTg2NCwgMi4xOTYwOSwgMi43NjEzNyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE3MjQ3OSwgMC45MzQ2LCAxLjY5OTQyLCAyLjI0Njk4LCAzLjExMjA0LCAzLjg3NzcxLCA0Ljk2ODM0IiwgXAotICAgICAgICAgICIwLjE3MjM2OCwgMC45MzYyNSwgMS42OTk1MSwgMi4yNDUxMSwgMy4xMTk0NSwgMy44Nzc2LCA0Ljk3NzAzIiwgXAotICAgICAgICAgICIwLjE3MjQ3OSwgMC45MzQ0NjQsIDEuNjk5NDUsIDIuMjQ2OTcsIDMuMTE1MzQsIDMuODg2MDUsIDQuOTY4MDEiLCBcCi0gICAgICAgICAgIjAuMTcyMzg2LCAwLjkzNDg1NSwgMS43MDA4MiwgMi4yNDQ4MSwgMy4xMTc2LCAzLjg3NDExLCA0Ljk2NzE5IiwgXAotICAgICAgICAgICIwLjE3MjQ4NywgMC45MzYxNjIsIDEuNzAwNTEsIDIuMjQ2NjksIDMuMTIxMywgMy44ODYyNywgNC45Njg1MSIsIFwKLSAgICAgICAgICAiMC4xNzIzOTMsIDAuOTM0MDE0LCAxLjY5OTg4LCAyLjI0MzI2LCAzLjExNzYyLCAzLjg4NzIyLCA0Ljk3NDc0IiwgXAotICAgICAgICAgICIwLjE3MjQzOSwgMC45MzQ4NTEsIDEuNjk1MTQsIDIuMjQzMSwgMy4xMTc1NiwgMy44ODcxNywgNC45NjcwMiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5OTU4NywgMC4yNDgyMTQsIDAuMzk0MTgsIDAuNDk4MjUzLCAwLjY2NDU4OCwgMC44MTAxOTQsIDEuMDE4MDQiLCBcCi0gICAgICAgICAgIjAuMTExMjA3LCAwLjI1OTg3MiwgMC40MDU4MjcsIDAuNTA5OTIxLCAwLjY3NjMyMSwgMC44MjE4MjEsIDEuMDI5NDUiLCBcCi0gICAgICAgICAgIjAuMTI2MzAxLCAwLjI3NDk1LCAwLjQyMDkxNCwgMC41MjUwMDYsIDAuNjkxMzg5LCAwLjgzNjk0MywgMS4wNDQ3NCIsIFwKLSAgICAgICAgICAiMC4xNDExMzYsIDAuMjg5NzczLCAwLjQzNTc0NiwgMC41Mzk4MzUsIDAuNzA2MjI1LCAwLjg1MTgwOSwgMS4wNTk1MSIsIFwKLSAgICAgICAgICAiMC4xNTU1MzIsIDAuMzA0MjE2LCAwLjQ1MDE5NSwgMC41NTQyNzgsIDAuNzIwNjkyLCAwLjg2NjI1NSwgMS4wNzM5OCIsIFwKLSAgICAgICAgICAiMC4xNzg1MzcsIDAuMzI3MjU3LCAwLjQ3MzIyNSwgMC41NzczMDYsIDAuNzQzNzE3LCAwLjg4OTI3MiwgMS4wOTcwOCIsIFwKLSAgICAgICAgICAiMC4xOTY4NzgsIDAuMzQ1NTA5LCAwLjQ5MTUwNiwgMC41OTU1OTQsIDAuNzYxOTk5LCAwLjkwNzUxMywgMS4xMTUzMiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3OTkxMSwgMC4zNjQwNjcsIDAuNjUxOTYzLCAwLjg1NzQ3OSwgMS4xODY3OSwgMS40NzUwOSwgMS44ODY5MiIsIFwKLSAgICAgICAgICAiMC4wNzk3NTgsIDAuMzYzOTMzLCAwLjY1MTk3NywgMC44NTc3NDMsIDEuMTg3NDYsIDEuNDc1NjUsIDEuODg2MjkiLCBcCi0gICAgICAgICAgIjAuMDc5NzQzLCAwLjM2NDA4NCwgMC42NTE5NzEsIDAuODU3NjQ1LCAxLjE4NzUsIDEuNDc1MzcsIDEuODg3MDUiLCBcCi0gICAgICAgICAgIjAuMDc5NzY3LCAwLjM2NCwgMC42NTE5NzEsIDAuODU3NzA3LCAxLjE4NzE4LCAxLjQ3NTMsIDEuODg2OTEiLCBcCi0gICAgICAgICAgIjAuMDgwMTg4LCAwLjM2NDA0MywgMC42NTE5NzUsIDAuODU3NzIxLCAxLjE4NzQ0LCAxLjQ3NTI3LCAxLjg4NjkzIiwgXAotICAgICAgICAgICIwLjA4MDM3NSwgMC4zNjQxMjUsIDAuNjUxNzQxLCAwLjg1NzYzMSwgMS4xODc0OCwgMS40NzUzOCwgMS44ODcwNCIsIFwKLSAgICAgICAgICAiMC4wODE1MDIsIDAuMzY0MjE1LCAwLjY1MTg4NCwgMC44NTc0LCAxLjE4NzQ5LCAxLjQ3NDk1LCAxLjg4NzM1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTA0MzEsIDAuNTAwODI2LCAwLjg5NzkzOCwgMS4xODA1MywgMS42MzQ1MywgMi4wMzA1LCAyLjU5NjY3IiwgXAotICAgICAgICAgICIwLjExNDY3NiwgMC41MTE5MzcsIDAuOTA4NDQ5LCAxLjE5MTQsIDEuNjQ0OTIsIDIuMDQwNzIsIDIuNjA3NjUiLCBcCi0gICAgICAgICAgIjAuMTI3MDU1LCAwLjUyNDIyNCwgMC45MjA4OTQsIDEuMjA0MzEsIDEuNjU3NjgsIDIuMDU0MTksIDIuNjIwMjkiLCBcCi0gICAgICAgICAgIjAuMTM5MDgxLCAwLjUzNjM4MiwgMC45MzMwOTcsIDEuMjE2NDMsIDEuNjcwMzgsIDIuMDY2MTgsIDIuNjMyNjciLCBcCi0gICAgICAgICAgIjAuMTUwODc5LCAwLjU0ODMxMSwgMC45NDQ5MjIsIDEuMjI4NDgsIDEuNjgxODEsIDIuMDc4MTcsIDIuNjQ0NyIsIFwKLSAgICAgICAgICAiMC4xNjk2NjUsIDAuNTY3MTkxLCAwLjk2Mzk1LCAxLjI0NzU3LCAxLjcwMTQsIDIuMDk3MTQsIDIuNjYzNDEiLCBcCi0gICAgICAgICAgIjAuMTg1OTc3LCAwLjU4Mzk1NSwgMC45ODA0NzIsIDEuMjYzNzcsIDEuNzE2OTEsIDIuMTEzODcsIDIuNjgwMjQiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNzE3MjEsIDAuOTMyMzQ5LCAxLjcwMDkzLCAyLjI0MjcxLCAzLjEyMDU4LCAzLjg4NTgsIDQuOTc1NTIiLCBcCi0gICAgICAgICAgIjAuMTcxNjQ5LCAwLjkzNjYyMiwgMS43MDA0MywgMi4yNDI5OCwgMy4xMTk1MSwgMy44Nzc0OCwgNC45NjM1OCIsIFwKLSAgICAgICAgICAiMC4xNzIwMTksIDAuOTM2NDI3LCAxLjY5Nzc4LCAyLjI0NTg4LCAzLjExMjc0LCAzLjg4NjQ1LCA0Ljk3NjA3IiwgXAotICAgICAgICAgICIwLjE3MjU5MiwgMC45MzQ2NjMsIDEuNjk3ODMsIDIuMjQ1NTksIDMuMTIxMjEsIDMuODg1OTMsIDQuOTc2NDgiLCBcCi0gICAgICAgICAgIjAuMTczOTg1LCAwLjkzNDY2MSwgMS42OTc4NiwgMi4yNDU5NSwgMy4xMTI1MywgMy44ODYwMSwgNC45NzY2MyIsIFwKLSAgICAgICAgICAiMC4xNzg2NjksIDAuOTM2NDI0LCAxLjY5OTU2LCAyLjI0NjE3LCAzLjExMjMyLCAzLjg4NTkzLCA0Ljk2ODMzIiwgXAotICAgICAgICAgICIwLjE4NDAzMiwgMC45MzYyNDEsIDEuNjk5MzgsIDIuMjQ0ODcsIDMuMTE3NTQsIDMuODc0NjUsIDQuOTc2NDUiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDA4OTYsIDAuMTg1ODczLCAwLjMzMDIxNCwgMC40MzMyMzcsIDAuNTk4MTgyLCAwLjc0MjIxMSwgMC45NDg0MjMiLCBcCi0gICAgICAgICAgIjAuMDUyNDY3LCAwLjE5NzEwOCwgMC4zNDEzOTgsIDAuNDQ0NDI4LCAwLjYwOTI2NSwgMC43NTMyODgsIDAuOTU5NDI0IiwgXAotICAgICAgICAgICIwLjA2NzYyOCwgMC4yMTI0MzgsIDAuMzU2NzI2LCAwLjQ1OTgyLCAwLjYyNDY2NywgMC43Njg3MjksIDAuOTc0ODM5IiwgXAotICAgICAgICAgICIwLjA4MjcyOCwgMC4yMjc1NzMsIDAuMzcxOTA2LCAwLjQ3NTAxMSwgMC42Mzk2NTgsIDAuNzgzODI4LCAwLjk5MDEwMSIsIFwKLSAgICAgICAgICAiMC4wOTc2ODMsIDAuMjQyMDk5LCAwLjM4NTk1OSwgMC40ODkwMDYsIDAuNjUwNTI4LCAwLjc5NDczMywgMS4wMDA3NyIsIFwKLSAgICAgICAgICAiMC4xMTk4NDgsIDAuMjY2MzAxLCAwLjQxMDcxMywgMC41MTI0MTYsIDAuNjc3MDc0LCAwLjgyMTIyOSwgMS4wMjcyNyIsIFwKLSAgICAgICAgICAiMC4xMzcyMzYsIDAuMjg3MzcxLCAwLjQzMDg5NSwgMC41MzI5MDEsIDAuNjk3NjY3LCAwLjg0MTgwMiwgMS4wNDc2OCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2NjM5NCwgMC4zNTIzMzksIDAuNjM4NDI2LCAwLjg0MjUwMiwgMS4xNjkwMiwgMS40NTQ4MSwgMS44NjMzOCIsIFwKLSAgICAgICAgICAiMC4wNjY0MDcsIDAuMzUyNDE4LCAwLjYzODE3NCwgMC44NDIxMjUsIDEuMTY5MjksIDEuNDU0NDgsIDEuODYyODEiLCBcCi0gICAgICAgICAgIjAuMDY5MjM3LCAwLjM1MjQzMywgMC42MzgyMzcsIDAuODQyNDkzLCAxLjE2ODk4LCAxLjQ1NTA1LCAxLjg2Mjk0IiwgXAotICAgICAgICAgICIwLjA3NDY0OSwgMC4zNTI0MjIsIDAuNjM4MjMzLCAwLjg0MjMzMSwgMS4xNjkxNSwgMS40NTQ2NCwgMS44NjI5MyIsIFwKLSAgICAgICAgICAiMC4wODE2MTIsIDAuMzUyNTk2LCAwLjYzODIzLCAwLjg0MjI5MSwgMS4xNjg2NywgMS40NTQ2MywgMS44NjI5MyIsIFwKLSAgICAgICAgICAiMC4wOTQ3ODUsIDAuMzU1MTY3LCAwLjYzODIxLCAwLjg0MjU0OSwgMS4xNjg5LCAxLjQ1NDY5LCAxLjg2MzE0IiwgXAotICAgICAgICAgICIwLjEwODE4NCwgMC4zNTk0OSwgMC42Mzg1MzksIDAuODQyMzE2LCAxLjE2ODc0LCAxLjQ1NDY5LCAxLjg2Mjg0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg4MzgsIDAuNDg1MTAyLCAwLjg4MjEzLCAxLjE2NDgzLCAxLjYxODY3LCAyLjAxNTQ2LCAyLjU4MDU3IiwgXAotICAgICAgICAgICIwLjA5NzQ2NywgMC40OTQ2NzQsIDAuODkxMjEsIDEuMTc0OTQsIDEuNjI3NzYsIDIuMDI0MzgsIDIuNTkwNTYiLCBcCi0gICAgICAgICAgIjAuMTA5MTcxLCAwLjUwNjgxMSwgMC45MDMzMzEsIDEuMTg2NTYsIDEuNjQwMywgMi4wMzcwNCwgMi42MDI1MiIsIFwKLSAgICAgICAgICAiMC4xMjE0ODQsIDAuNTE5NDA1LCAwLjkxNTc3MywgMS4xOTk4NSwgMS42NTIyNiwgMi4wNDkyOSwgMi42MTU1NCIsIFwKLSAgICAgICAgICAiMC4xMzM4NzYsIDAuNTMwOTUyLCAwLjkyNzYzLCAxLjIxMTc0LCAxLjY2NDExLCAyLjA2MTE0LCAyLjYyNzExIiwgXAotICAgICAgICAgICIwLjE1MzcxNCwgMC41NTAzMDQsIDAuOTQ3MDc1LCAxLjIzMDM2LCAxLjY4MzUzLCAyLjA4MDg4LCAyLjY0NzEyIiwgXAotICAgICAgICAgICIwLjE3MTQxOCwgMC41Njc1NDQsIDAuOTY0Mzg0LCAxLjI0NzU1LCAxLjcwMDc2LCAyLjA5Nzg3LCAyLjY2MzkiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNzE0MzQsIDAuOTM1NjE2LCAxLjcwMTEsIDIuMjQyNDYsIDMuMTExNjgsIDMuODg3NDYsIDQuOTY2ODUiLCBcCi0gICAgICAgICAgIjAuMTcxNDA4LCAwLjkzNTY2NCwgMS42OTc1NywgMi4yNDY0MywgMy4xMTUwOCwgMy44ODYwMSwgNC45Njc4OCIsIFwKLSAgICAgICAgICAiMC4xNzA3NjYsIDAuOTM1ODQsIDEuNjk3NzEsIDIuMjQ0ODIsIDMuMTE5OTgsIDMuODg2ODYsIDQuOTc1MSIsIFwKLSAgICAgICAgICAiMC4xNzM2MjUsIDAuOTM2NDE0LCAxLjY5NzQzLCAyLjI0MDE5LCAzLjExNDM0LCAzLjg4NjQ2LCA0Ljk3NjQ2IiwgXAotICAgICAgICAgICIwLjE3Nzk3NiwgMC45MzQ2MDYsIDEuNzAwODYsIDIuMjQwNzMsIDMuMTE0MjIsIDMuODg2MzksIDQuOTY3MzYiLCBcCi0gICAgICAgICAgIjAuMTg3Njc4LCAwLjkzNjM1NiwgMS42OTc3NiwgMi4yNDQ4MywgMy4xMTQ3NiwgMy44ODY5NSwgNC45NjIxNyIsIFwKLSAgICAgICAgICAiMC4xOTc4MDUsIDAuOTM1NTE3LCAxLjY5OTU4LCAyLjI0MjkyLCAzLjExNDM3LCAzLjg4NjMyLCA0Ljk2OCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzNTk3OCwgMC4xODA0MSwgMC4zMjQ4NTgsIDAuNDI3OTQ2LCAwLjU5MjkxOSwgMC43MzcyMTksIDAuOTQ0MjQyIiwgXAotICAgICAgICAgICIwLjA0Nzc2NSwgMC4xOTI0MjEsIDAuMzM2ODcxLCAwLjQzOTkzNywgMC42MDQ5OTcsIDAuNzQ5MjczLCAwLjk1NTUyNCIsIFwKLSAgICAgICAgICAiMC4wNjI3NzksIDAuMjA3MDY4LCAwLjM1MDM0NCwgMC40NTM0ODcsIDAuNjE4MzM2LCAwLjc2Mjc1NSwgMC45Njg5OTUiLCBcCi0gICAgICAgICAgIjAuMDc3OTA2LCAwLjIyMTg4MSwgMC4zNjYzNDIsIDAuNDY5MzA2LCAwLjYzNDI0NCwgMC43NzYwNjMsIDAuOTgyNjc5IiwgXAotICAgICAgICAgICIwLjA5MjQ1NCwgMC4yMzY2MjcsIDAuMzgxMDc5LCAwLjQ4NDA1OSwgMC42NDkxNDMsIDAuNzkwMjg0LCAwLjk5NjY2MSIsIFwKLSAgICAgICAgICAiMC4xMTMzNTcsIDAuMjYxMTcsIDAuNDA1NzAyLCAwLjUwNzQ0OSwgMC42NzI2MjksIDAuODE2NzgzLCAxLjAyMzA2IiwgXAotICAgICAgICAgICIwLjEyOTc1NCwgMC4yODIyNjEsIDAuNDI1ODAzLCAwLjUyODI5OCwgMC42OTMxMzgsIDAuODM3NDU4LCAxLjA0MzU5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDYxMTAyLCAwLjM0OTE2MSwgMC42MzY2NTIsIDAuODQzNDI3LCAxLjE3MzUxLCAxLjQ1NjUxLCAxLjg2ODkyIiwgXAotICAgICAgICAgICIwLjA2MTIxOSwgMC4zNDk0OTMsIDAuNjM2ODI1LCAwLjg0MDk5NCwgMS4xNjk5MSwgMS40NTY1MiwgMS44NjgzIiwgXAotICAgICAgICAgICIwLjA2NDkxNSwgMC4zNDk0ODUsIDAuNjM2Njc4LCAwLjg0MjM4NSwgMS4xNzM1LCAxLjQ2MTE4LCAxLjg2NjgzIiwgXAotICAgICAgICAgICIwLjA3MDk4OCwgMC4zNDg0MTEsIDAuNjM2MDksIDAuODQyNjc3LCAxLjE3MTM3LCAxLjQ1NjM5LCAxLjg2NzIyIiwgXAotICAgICAgICAgICIwLjA3ODQ1NiwgMC4zNDg2ODEsIDAuNjM2NjQ0LCAwLjg0MzEwNCwgMS4xNjk5MSwgMS40NjE5NSwgMS44NzEzMyIsIFwKLSAgICAgICAgICAiMC4wOTI4MDgsIDAuMzUyNTk4LCAwLjYzNjczNywgMC44NDA5ODUsIDEuMTcwMDEsIDEuNDU2NDUsIDEuODY3NzMiLCBcCi0gICAgICAgICAgIjAuMTA2NjU4LCAwLjM1NzA5NiwgMC42Mzc0NSwgMC44NDIyMzYsIDEuMTcxMTMsIDEuNDU3MTIsIDEuODczODciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDgxNjEsIDAuMDA4MTk4LCAwLjAwODIwMiwgMC4wMDgyMDEsIDAuMDA4MjA1LCAwLjAwODIwNiwgMC4wMDgyMDUiLCBcCi0gICAgICAgICAgIjAuMDA4MTM1LCAwLjAwODE3NiwgMC4wMDgxODIsIDAuMDA4MTgyLCAwLjAwODE4NCwgMC4wMDgxODMsIDAuMDA4MTgxIiwgXAotICAgICAgICAgICIwLjAwODExLCAwLjAwODE1NywgMC4wMDgxNjIsIDAuMDA4MTY0LCAwLjAwODE2NiwgMC4wMDgxNjYsIDAuMDA4MTY3IiwgXAotICAgICAgICAgICIwLjAwODA5MSwgMC4wMDgxNDgsIDAuMDA4MTU1LCAwLjAwODE1LCAwLjAwODE1NCwgMC4wMDgxNTcsIDAuMDA4MTU2IiwgXAotICAgICAgICAgICIwLjAwODA3NCwgMC4wMDgxMzIsIDAuMDA4MTQxLCAwLjAwODE0LCAwLjAwODE0NywgMC4wMDgxNDUsIDAuMDA4MTQ4IiwgXAotICAgICAgICAgICIwLjAwODA2MywgMC4wMDgxMjQsIDAuMDA4MTM4LCAwLjAwODEzOSwgMC4wMDgxNDIsIDAuMDA4MTQzLCAwLjAwODE0MyIsIFwKLSAgICAgICAgICAiMC4wMDgwNTYsIDAuMDA4MTIsIDAuMDA4MTMzLCAwLjAwODEzNywgMC4wMDgxNDQsIDAuMDA4MTQzLCAwLjAwODE0NSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA3OTI3LCAwLjAwNzk0LCAwLjAwNzkzOSwgMC4wMDc5MzksIDAuMDA3OTQyLCAwLjAwNzkzNywgMC4wMDc5MzciLCBcCi0gICAgICAgICAgIjAuMDA3OTEsIDAuMDA3OTIzLCAwLjAwNzkyNSwgMC4wMDc5MjQsIDAuMDA3OTI0LCAwLjAwNzkyNCwgMC4wMDc5MjQiLCBcCi0gICAgICAgICAgIjAuMDA3ODk1LCAwLjAwNzkxMywgMC4wMDc5MTIsIDAuMDA3OTEyLCAwLjAwNzkxNCwgMC4wMDc5MTQsIDAuMDA3OTExIiwgXAotICAgICAgICAgICIwLjAwNzg3MywgMC4wMDc4OTcsIDAuMDA3ODk5LCAwLjAwNzksIDAuMDA3OSwgMC4wMDc5LCAwLjAwNzg5OCIsIFwKLSAgICAgICAgICAiMC4wMDc4NSwgMC4wMDc4ODEsIDAuMDA3ODg0LCAwLjAwNzg4NSwgMC4wMDc4ODYsIDAuMDA3ODg1LCAwLjAwNzg4NSIsIFwKLSAgICAgICAgICAiMC4wMDc4NDEsIDAuMDA3ODc4LCAwLjAwNzg4MywgMC4wMDc4ODMsIDAuMDA3ODg0LCAwLjAwNzg4NiwgMC4wMDc4ODQiLCBcCi0gICAgICAgICAgIjAuMDA3ODI1LCAwLjAwNzg2NCwgMC4wMDc4NywgMC4wMDc4NzIsIDAuMDA3ODc0LCAwLjAwNzg3NCwgMC4wMDc4NzMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNzE3OCwgMC4wMDcxODksIDAuMDA3MTksIDAuMDA3MTksIDAuMDA3MTg3LCAwLjAwNzE4OCwgMC4wMDcxODkiLCBcCi0gICAgICAgICAgIjAuMDA3MTM2LCAwLjAwNzE3OSwgMC4wMDcxODIsIDAuMDA3MTg1LCAwLjAwNzE4NywgMC4wMDcxODcsIDAuMDA3MTg4IiwgXAotICAgICAgICAgICIwLjAwNzEwMSwgMC4wMDcxNjgsIDAuMDA3MTc4LCAwLjAwNzE3OSwgMC4wMDcxODMsIDAuMDA3MTg0LCAwLjAwNzE4NSIsIFwKLSAgICAgICAgICAiMC4wMDcwNzksIDAuMDA3MTU4LCAwLjAwNzE3MywgMC4wMDcxNzcsIDAuMDA3MTgxLCAwLjAwNzE3OSwgMC4wMDcxODQiLCBcCi0gICAgICAgICAgIjAuMDA3MDYzLCAwLjAwNzE0OSwgMC4wMDcxNzMsIDAuMDA3MTcxLCAwLjAwNzE3NywgMC4wMDcxNzksIDAuMDA3MTc5IiwgXAotICAgICAgICAgICIwLjAwNzA0NiwgMC4wMDcxMzYsIDAuMDA3MTU4LCAwLjAwNzE2NSwgMC4wMDcxNzEsIDAuMDA3MTc1LCAwLjAwNzE3OCIsIFwKLSAgICAgICAgICAiMC4wMDcwMzcsIDAuMDA3MTI2LCAwLjAwNzE1MiwgMC4wMDcxNTksIDAuMDA3MTczLCAwLjAwNzE3MSwgMC4wMDcxNzMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTg0OCwgMC4wMDE4NTEsIDAuMDAxODUxLCAwLjAwMTg1MSwgMC4wMDE4NTEsIDAuMDAxODUsIDAuMDAxODQ5IiwgXAotICAgICAgICAgICIwLjAwMTc5NywgMC4wMDE4NDIsIDAuMDAxODQ1LCAwLjAwMTg0NywgMC4wMDE4NDcsIDAuMDAxODQ3LCAwLjAwMTg0NyIsIFwKLSAgICAgICAgICAiMC4wMDE3NTUsIDAuMDAxODI5LCAwLjAwMTgzOCwgMC4wMDE4NDEsIDAuMDAxODQzLCAwLjAwMTg0NCwgMC4wMDE4NDQiLCBcCi0gICAgICAgICAgIjAuMDAxNzE4LCAwLjAwMTgxNiwgMC4wMDE4MywgMC4wMDE4MzUsIDAuMDAxODM5LCAwLjAwMTg0LCAwLjAwMTg0MSIsIFwKLSAgICAgICAgICAiMC4wMDE2OTUsIDAuMDAxOCwgMC4wMDE4MjMsIDAuMDAxODI4LCAwLjAwMTgzNCwgMC4wMDE4MzYsIDAuMDAxODM4IiwgXAotICAgICAgICAgICIwLjAwMTY2MiwgMC4wMDE3OTIsIDAuMDAxODE1LCAwLjAwMTgyMywgMC4wMDE4MjksIDAuMDAxODMyLCAwLjAwMTgzNSIsIFwKLSAgICAgICAgICAiMC4wMDE2NDgsIDAuMDAxNzgyLCAwLjAwMTgwMywgMC4wMDE4MTgsIDAuMDAxODI1LCAwLjAwMTgyOSwgMC4wMDE4MzMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjEyNCwgMC4wMDYxNCwgMC4wMDYxNDEsIDAuMDA2MTQzLCAwLjAwNjE0MiwgMC4wMDYxNDEsIDAuMDA2MTQ0IiwgXAotICAgICAgICAgICIwLjAwNjA1NiwgMC4wMDYxMjQsIDAuMDA2MTM0LCAwLjAwNjEzNSwgMC4wMDYxNDEsIDAuMDA2MTM4LCAwLjAwNjEzOSIsIFwKLSAgICAgICAgICAiMC4wMDYwMDMsIDAuMDA2MTA3LCAwLjAwNjEyMywgMC4wMDYxMjcsIDAuMDA2MTMxLCAwLjAwNjEzMiwgMC4wMDYxMzUiLCBcCi0gICAgICAgICAgIjAuMDA1OTcxLCAwLjAwNjA5MiwgMC4wMDYxMTIsIDAuMDA2MTE5LCAwLjAwNjEyNCwgMC4wMDYxMjgsIDAuMDA2MTMiLCBcCi0gICAgICAgICAgIjAuMDA1OTUzLCAwLjAwNjA3OSwgMC4wMDYxMDYsIDAuMDA2MTE0LCAwLjAwNjEyMiwgMC4wMDYxMjMsIDAuMDA2MTI4IiwgXAotICAgICAgICAgICIwLjAwNTkzNiwgMC4wMDYwNiwgMC4wMDYwOTEsIDAuMDA2MTAyLCAwLjAwNjExOCwgMC4wMDYxMTgsIDAuMDA2MTI0IiwgXAotICAgICAgICAgICIwLjAwNTkzMSwgMC4wMDYwNDYsIDAuMDA2MDgyLCAwLjAwNjA5MywgMC4wMDYxMDYsIDAuMDA2MTEyLCAwLjAwNjExOCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwMzYyLCAwLjAwMDM4NywgMC4wMDAzOSwgMC4wMDAzOTEsIDAuMDAwMzkxLCAwLjAwMDM5MiwgMC4wMDAzOTIiLCBcCi0gICAgICAgICAgIjAuMDAwMzQ4LCAwLjAwMDQ0NSwgMC4wMDA0NTYsIDAuMDAwNDYsIDAuMDAwNDYyLCAwLjAwMDQ2NCwgMC4wMDA0NjUiLCBcCi0gICAgICAgICAgIjAuMDAwMjkyLCAwLjAwMDQ0NiwgMC4wMDA0NjksIDAuMDAwNDc1LCAwLjAwMDQ4MSwgMC4wMDA0ODQsIDAuMDAwNDg2IiwgXAotICAgICAgICAgICIwLjAwMDI0OSwgMC4wMDA0MzYsIDAuMDAwNDY0LCAwLjAwMDQ3MywgMC4wMDA0OCwgMC4wMDA0ODcsIDAuMDAwNDkxIiwgXAotICAgICAgICAgICIwLjAwMDIwMSwgMC4wMDA0MTksIDAuMDAwNDU2LCAwLjAwMDQ2OCwgMC4wMDA0NzgsIDAuMDAwNDg1LCAwLjAwMDQ5IiwgXAotICAgICAgICAgICIwLjAwMDE2OSwgMC4wMDA0MDMsIDAuMDAwNDQ0LCAwLjAwMDQ2LCAwLjAwMDQ3MywgMC4wMDA0OCwgMC4wMDA0ODYiLCBcCi0gICAgICAgICAgIjAuMDAwMTUsIDAuMDAwMzg3LCAwLjAwMDQzMywgMC4wMDA0NTMsIDAuMDAwNDY4LCAwLjAwMDQ3NiwgMC4wMDA0ODMiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IE5PUjNYMiAqCi0gKiAtLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKE5PUjNYMikgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjEyNzY4NjsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxODQzNDY7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxODI5NTI7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxODQzNDY7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNTI5LCAwLjAwMDU0OSwgMC4wMDA1NTksIDAuMDAwNTY1LCAwLjAwMDU2OCwgMC4wMDA1NzIsIDAuMDAwNTc0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNzc4LCAwLjAwMDc3OSwgMC4wMDA3NzksIDAuMDAwNzc2LCAwLjAwMDc3OSwgMC4wMDA3NzksIDAuMDAwNzc5Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE2ODA3MzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE2Njg4MTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE2ODA3MzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA1MywgMC4wMDA1NjUsIDAuMDAwNTc4LCAwLjAwMDU4MywgMC4wMDA1ODUsIDAuMDAwNTg4LCAwLjAwMDU5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNjI3LCAwLjAwMDYyOCwgMC4wMDA2MjcsIDAuMDAwNjI4LCAwLjAwMDYyOCwgMC4wMDA2MjgsIDAuMDAwNjI4Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihDKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE0NjU1OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTQ2NTMzOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTQ2NTU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMTgxLCAwLjAwMDE4MSwgMC4wMDAxODEsIDAuMDAwMTgxLCAwLjAwMDE4MSwgMC4wMDAxODEsIDAuMDAwMTgxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNjg3LCAwLjAwMDY4NywgMC4wMDA2ODcsIDAuMDAwNjg3LCAwLjAwMDY4NywgMC4wMDA2ODcsIDAuMDAwNjg3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMDk0MDk0NTsKLSAgICBmdW5jdGlvbiA6ICIoISgoQStCKStDKSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE2NDE3NSwgMC43Mjg1MzMsIDEuMTc5ODgsIDEuNzQ0MDIsIDIuMzA4OTMsIDIuODcyNDQsIDMuNDM1NzIiLCBcCi0gICAgICAgICAgIjAuMTc1NDg2LCAwLjc0MDM0NywgMS4xOTE5NywgMS43NTU1MywgMi4zMjA1LCAyLjg4NDAzLCAzLjQ0NzYzIiwgXAotICAgICAgICAgICIwLjE4ODA1LCAwLjc1Mjc2MywgMS4yMDQzLCAxLjc2OTIyLCAyLjMzMjYzLCAyLjg5NjQsIDMuNDU5OTYiLCBcCi0gICAgICAgICAgIjAuMTk5NzI4LCAwLjc2NDc4NSwgMS4yMTY0NiwgMS43ODA0NywgMi4zNDQ3NywgMi45MDg1MSwgMy40NzIzIiwgXAotICAgICAgICAgICIwLjIxMDgzNSwgMC43NzU2MDYsIDEuMjI2OTYsIDEuNzkxNzQsIDIuMzU2MzgsIDIuOTE5NDEsIDMuNDgzMzciLCBcCi0gICAgICAgICAgIjAuMjI4MDA3LCAwLjc5MjkzNywgMS4yNDQzMiwgMS44MDg2NSwgMi4zNzM3NiwgMi45MzcyLCAzLjUwMDY5IiwgXAotICAgICAgICAgICIwLjI0MjgwOSwgMC44MDgxMDIsIDEuMjU5MTUsIDEuODIzOTQsIDIuMzg3ODksIDIuOTUyMzMsIDMuNTE1NTMiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjc2OTI4LCAxLjM2MjY5LCAyLjIzMTQ5LCAzLjMyNDY2LCA0LjQwMTEsIDUuNDk1NjIsIDYuNTc0OTMiLCBcCi0gICAgICAgICAgIjAuMjc2OTA0LCAxLjM2MjM5LCAyLjIzMDUsIDMuMzI0MzksIDQuNDAyODUsIDUuNDk1NjYsIDYuNTczNzUiLCBcCi0gICAgICAgICAgIjAuMjc3MTAxLCAxLjM2NTMzLCAyLjIzNjUxLCAzLjMxNzU5LCA0LjQxNjY0LCA1LjQ5NDk2LCA2LjU3OTc1IiwgXAotICAgICAgICAgICIwLjI3NjkwMiwgMS4zNjYxNCwgMi4yMzc1MywgMy4zMjU1OSwgNC40MTcyOSwgNS40OTQ5OSwgNi41NzE5OCIsIFwKLSAgICAgICAgICAiMC4yNzY4MTEsIDEuMzYzNCwgMi4yMzczLCAzLjMyNTgzLCA0LjQxNzc2LCA1LjQ5NDQ3LCA2LjU3NTAxIiwgXAotICAgICAgICAgICIwLjI3OTAzNiwgMS4zNjQ5OCwgMi4yMzUyNywgMy4zMjQwNiwgNC40MDE4NCwgNS40OTUzMiwgNi41NzU2NiIsIFwKLSAgICAgICAgICAiMC4yODEwMzYsIDEuMzY1ODEsIDIuMjMyODQsIDMuMzI1NzYsIDQuNDA4MDgsIDUuNDk1MjcsIDYuNTc5NjEiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY0NTE4LCAwLjI3MjAyLCAwLjQzNzAxOCwgMC42NDMwOCwgMC44NDg5OTcsIDEuMDU0NjcsIDEuMjYwNjciLCBcCi0gICAgICAgICAgIjAuMDc2MDY0LCAwLjI4MzU1NiwgMC40NDg0NCwgMC42NTQ0NzksIDAuODYwNDE5LCAxLjA2NjE5LCAxLjI3MjEzIiwgXAotICAgICAgICAgICIwLjA5MTA1OCwgMC4yOTgwODksIDAuNDYxMTYxLCAwLjY2NzIwOCwgMC44NzMyOTIsIDEuMDc5MDIsIDEuMjg1MjEiLCBcCi0gICAgICAgICAgIjAuMTA2MDgxLCAwLjMxMjc4OCwgMC40NzU0NjcsIDAuNjgxNDg0LCAwLjg4NzQzNSwgMS4wOTMxNCwgMS4yOTkyIiwgXAotICAgICAgICAgICIwLjEyMDk4OCwgMC4zMjc1ODIsIDAuNDkyNDIxLCAwLjY5NTMyMywgMC45MDExMDgsIDEuMTA0NDEsIDEuMzEwMSIsIFwKLSAgICAgICAgICAiMC4xNDU1NDQsIDAuMzUxMjM0LCAwLjUxNTk2NSwgMC43MjE4NDQsIDAuOTI3OTE4LCAxLjEzMzU3LCAxLjMzNzU1IiwgXAotICAgICAgICAgICIwLjE2NjUwOCwgMC4zNzMxMjQsIDAuNTM2NTE5LCAwLjc0MjU2NywgMC45NDgzOTksIDEuMTU0MDEsIDEuMzU5OTgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTExMTMzLCAwLjUxOTMyNSwgMC44NDYxMTMsIDEuMjUzODIsIDEuNjYyMzksIDIuMDY5ODYsIDIuNDc4NDMiLCBcCi0gICAgICAgICAgIjAuMTExMDA1LCAwLjUxOTI3OCwgMC44NDU2NjMsIDEuMjUzODgsIDEuNjYxNTUsIDIuMDY5OTEsIDIuNDc3MjYiLCBcCi0gICAgICAgICAgIjAuMTExNzk3LCAwLjUxOTEwOSwgMC44NDYwMTQsIDEuMjU0MjEsIDEuNjYyMDcsIDIuMDcwMzYsIDIuNDc3OTMiLCBcCi0gICAgICAgICAgIjAuMTE1MTIzLCAwLjUxOTM3OCwgMC44NDYwOTUsIDEuMjU0MjYsIDEuNjYyMzIsIDIuMDY5ODgsIDIuNDc4NDYiLCBcCi0gICAgICAgICAgIjAuMTIwMzA5LCAwLjUxOTMwOSwgMC44NDYwMzMsIDEuMjU0MjEsIDEuNjYxNTIsIDIuMDY5NzgsIDIuNDc3MzkiLCBcCi0gICAgICAgICAgIjAuMTMwMTE0LCAwLjUxOTUzMywgMC44NDYwNSwgMS4yNTQwNSwgMS42NjIxOCwgMi4wNjk3NywgMi40NzgxNyIsIFwKLSAgICAgICAgICAiMC4xNDA3MzYsIDAuNTIwODY3LCAwLjg0NjA3LCAxLjI1NDIxLCAxLjY2MjAyLCAyLjA2OTM0LCAyLjQ3NzgyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE1ODMzMiwgMC43MjI4NCwgMS4xNzQ1MiwgMS43MzgxNSwgMi4zMDMxOCwgMi44NjY1NSwgMy40Mjk5NiIsIFwKLSAgICAgICAgICAiMC4xNjg3NTEsIDAuNzMzNDg4LCAxLjE4NTE3LCAxLjc0OSwgMi4zMTM4MiwgMi44NzcyMSwgMy40NDA1IiwgXAotICAgICAgICAgICIwLjE4MTMwNSwgMC43NDYyMzgsIDEuMTk3OTIsIDEuNzYxNzksIDIuMzI2NTgsIDIuODg5OTcsIDMuNDUzNDgiLCBcCi0gICAgICAgICAgIjAuMTkzMDkzLCAwLjc1Nzc2NSwgMS4yMDkzOCwgMS43NzQxLCAyLjMzODEyLCAyLjkwMTUsIDMuNDY1NDIiLCBcCi0gICAgICAgICAgIjAuMjA0ODc3LCAwLjc2OTcwNywgMS4yMjEyMywgMS43ODU5OCwgMi4zNTAxNywgMi45MTMyNCwgMy40NzcyMSIsIFwKLSAgICAgICAgICAiMC4yMjM2NTcsIDAuNzg4NjM1LCAxLjI0MDE3LCAxLjgwNDY5LCAyLjM2ODcsIDIuOTMyODIsIDMuNDk2NTEiLCBcCi0gICAgICAgICAgIjAuMjQwMDM3LCAwLjgwNTI5MywgMS4yNTY3LCAxLjgyMTU2LCAyLjM4NjIsIDIuOTQ5NzMsIDMuNTEzMDkiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjc3MDg2LCAxLjM2NTk5LCAyLjIzNzU4LCAzLjMyNDMzLCA0LjQxODA1LCA1LjQ5NTU3LCA2LjU4MDAxIiwgXAotICAgICAgICAgICIwLjI3NjQzNiwgMS4zNjYwOSwgMi4yMzA0NCwgMy4zMjUwNywgNC40MDIyOSwgNS40OTU1NiwgNi41Nzk5IiwgXAotICAgICAgICAgICIwLjI3NzA1LCAxLjM2NjI0LCAyLjIzMTQsIDMuMzI1MjgsIDQuNDAzMjQsIDUuNDk1NTcsIDYuNTgwMDciLCBcCi0gICAgICAgICAgIjAuMjc2NjEsIDEuMzY2MDgsIDIuMjM2MDYsIDMuMzI2NTMsIDQuNDE3LCA1LjQ5NDE3LCA2LjU3NjE5IiwgXAotICAgICAgICAgICIwLjI3NzgyOSwgMS4zNjQ5NSwgMi4yMzM0OSwgMy4zMjYxOCwgNC40MTc0MywgNS40OTQ2NSwgNi41Nzk4MyIsIFwKLSAgICAgICAgICAiMC4yODAwNzUsIDEuMzY0OTMsIDIuMjMxNDgsIDMuMzI1NTksIDQuNDA4MjIsIDUuNDg3NjIsIDYuNTc2MDkiLCBcCi0gICAgICAgICAgIjAuMjg0MjE5LCAxLjM2NTI1LCAyLjIzMzEzLCAzLjMyNTU2LCA0LjQwMzk0LCA1LjQ5NTA5LCA2LjU3OTU2Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2MTAyMSwgMC4yNjc0ODYsIDAuNDMyMjk3LCAwLjYzODI2NSwgMC44NDM4MDEsIDEuMDQ5OTUsIDEuMjU1NjUiLCBcCi0gICAgICAgICAgIjAuMDcyNzI4LCAwLjI3OTIwMywgMC40NDM5MjMsIDAuNjQ5ODY3LCAwLjg1NTYzMSwgMS4wNjE0NSwgMS4yNjcwNiIsIFwKLSAgICAgICAgICAiMC4wODc0MTQsIDAuMjkzNzgyLCAwLjQ1ODU4MywgMC42NjQ1NDUsIDAuODcwNTI3LCAxLjA3NjI0LCAxLjI4MTkzIiwgXAotICAgICAgICAgICIwLjEwMjc3NiwgMC4zMDg1MjYsIDAuNDcxMDExLCAwLjY3NzAyMSwgMC44ODI2NzcsIDEuMDg4NjEsIDEuMjk0NjUiLCBcCi0gICAgICAgICAgIjAuMTE3ODU4LCAwLjMyNDE2LCAwLjQ4NzkxNiwgMC42OTA3OSwgMC44OTY0NDYsIDEuMTAyNDYsIDEuMzA4NDQiLCBcCi0gICAgICAgICAgIjAuMTQyMDc0LCAwLjM0NzA1LCAwLjUxMjc5MiwgMC43MTcyNDksIDAuOTIzNDQ4LCAxLjEyODc0LCAxLjMzMzIxIiwgXAotICAgICAgICAgICIwLjE2MjU5NywgMC4zNjg3NCwgMC41MzQxMTMsIDAuNzM3OTQ4LCAwLjk0Mzc4MiwgMS4xNDk3NiwgMS4zNTUxMiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDU5NjgsIDAuNTE0MjI4LCAwLjg0MDcwNSwgMS4yNDg3LCAxLjY1NjkxLCAyLjA2NDc2LCAyLjQ3Mjc0IiwgXAotICAgICAgICAgICIwLjEwNTkzOCwgMC41MTQyMzMsIDAuODQwMzk3LCAxLjI0ODcxLCAxLjY1Njk0LCAyLjA2NDQ5LCAyLjQ3MjExIiwgXAotICAgICAgICAgICIwLjEwNzEyMywgMC41MTM5OTgsIDAuODQwODEzLCAxLjI0ODcxLCAxLjY1NjYzLCAyLjA2NDY2LCAyLjQ3Mjk4IiwgXAotICAgICAgICAgICIwLjExMDY5OSwgMC41MTQzODIsIDAuODQwOTAzLCAxLjI0ODY5LCAxLjY1Njk5LCAyLjA2NDU2LCAyLjQ3MjYiLCBcCi0gICAgICAgICAgIjAuMTE1OTE4LCAwLjUxNDIwNCwgMC44NDA4MDIsIDEuMjQ4NjcsIDEuNjU2ODUsIDIuMDY0NTEsIDIuNDczMTUiLCBcCi0gICAgICAgICAgIjAuMTI2NjM0LCAwLjUxNDQzNywgMC44NDA4MywgMS4yNDg2OCwgMS42NTY3NCwgMi4wNjQ1OSwgMi40NzI2NCIsIFwKLSAgICAgICAgICAiMC4xMzc1MzEsIDAuNTE1OTQsIDAuODQwODM3LCAxLjI0ODY0LCAxLjY1NjYyLCAyLjA2NDg0LCAyLjQ3MjYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTQzNjc1LCAwLjcwNzg5OCwgMS4xNTkzNywgMS43MjM5NCwgMi4yODc4NCwgMi44NTE0NywgMy40MTUzNyIsIFwKLSAgICAgICAgICAiMC4xNTI5MzgsIDAuNzE3NTI2LCAxLjE2OTA1LCAxLjczMzk5LCAyLjI5NzM3LCAyLjg2MTA3LCAzLjQyNDg1IiwgXAotICAgICAgICAgICIwLjE2NDY4MSwgMC43Mjk2MTQsIDEuMTgxMSwgMS43NDYxOCwgMi4zMDk1LCAyLjg3MzY5LCAzLjQzNjk4IiwgXAotICAgICAgICAgICIwLjE3NjczMSwgMC43NDE4ODEsIDEuMTkzMzEsIDEuNzU4MTcsIDIuMzIyMzcsIDIuODg1NjMsIDMuNDQ5NDIiLCBcCi0gICAgICAgICAgIjAuMTg4NzU5LCAwLjc1NDAwNSwgMS4yMDU0OSwgMS43Njk1NCwgMi4zMzQwOSwgMi44OTc4MywgMy40NjE0MSIsIFwKLSAgICAgICAgICAiMC4yMDgyMjgsIDAuNzczMzQ0LCAxLjIyNDc0LCAxLjc4ODg1LCAyLjM1Mzc5LCAyLjkxNzA5LCAzLjQ4MDkzIiwgXAotICAgICAgICAgICIwLjIyNjMwOSwgMC43OTA0LCAxLjI0MTkxLCAxLjgwNjI0LCAyLjM3MDIsIDIuOTM0MzIsIDMuNDk4MzUiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjc2NTIyLCAxLjM2MzQ4LCAyLjIzNTkyLCAzLjMyNjA5LCA0LjQxNjU0LCA1LjQ5NDU2LCA2LjU3NTgyIiwgXAotICAgICAgICAgICIwLjI3NjM1LCAxLjM2MzUxLCAyLjIzMTkxLCAzLjMyNzM2LCA0LjQxNjM3LCA1LjQ5MzY2LCA2LjU3ODQ2IiwgXAotICAgICAgICAgICIwLjI3NjU1NCwgMS4zNjI1MSwgMi4yMzE1MSwgMy4zMTY5MywgNC40MTY0MywgNS40OTUzLCA2LjU3NjA1IiwgXAotICAgICAgICAgICIwLjI3NjgxOSwgMS4zNjUwMSwgMi4yMzI5OCwgMy4zMjYxNSwgNC40MTc0MywgNS40OTM4MSwgNi41Nzk1MSIsIFwKLSAgICAgICAgICAiMC4yNzkwNDcsIDEuMzY1MzgsIDIuMjM1OTIsIDMuMzE5OTMsIDQuNDE2NzksIDUuNDg5NDQsIDYuNTc5NzMiLCBcCi0gICAgICAgICAgIjAuMjg1MDk4LCAxLjM2NTEzLCAyLjIzNTM3LCAzLjMyNDI1LCA0LjQxNzI4LCA1LjQ5NDE2LCA2LjU3OTUxIiwgXAotICAgICAgICAgICIwLjI5MTkyNCwgMS4zNjYxLCAyLjIzMzI3LCAzLjMxOTksIDQuNDE1NDQsIDUuNDkzMzksIDYuNTc1MTUiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU2MjA4LCAwLjI2MjQ0MiwgMC40MjcyNTgsIDAuNjMzNjI4LCAwLjgzOTcwNywgMS4wNDU3MywgMS4yNTE5IiwgXAotICAgICAgICAgICIwLjA2ODA4NCwgMC4yNzM4ODMsIDAuNDM4OTYyLCAwLjY0NTExMywgMC44NTEwMzksIDEuMDU3MjUsIDEuMjYzMyIsIFwKLSAgICAgICAgICAiMC4wODMxNjcsIDAuMjg5NDksIDAuNDU0MzQ2LCAwLjY2MDQ2OCwgMC44NjY1NiwgMS4wNzI2NSwgMS4yNzkyNyIsIFwKLSAgICAgICAgICAiMC4wOTc5NjksIDAuMzAzNjg3LCAwLjQ2ODY3OCwgMC42NzQ3NDQsIDAuODc2OTQ5LCAxLjA4NDc2LCAxLjI5MTg3IiwgXAotICAgICAgICAgICIwLjExMzIyOCwgMC4zMTg1ODEsIDAuNDgzMzMsIDAuNjg2Mzc5LCAwLjg5Mjk2NywgMS4wOTg3MSwgMS4zMDU0OCIsIFwKLSAgICAgICAgICAiMC4xMzcyNDcsIDAuMzQyMjgxLCAwLjUwODE0NywgMC43MTI5NSwgMC45MTkwODgsIDEuMTI1MjgsIDEuMzMxODQiLCBcCi0gICAgICAgICAgIjAuMTU2OTY3LCAwLjM2NDAxNCwgMC41MjkzMjQsIDAuNzMzNjI0LCAwLjkzOTg5OCwgMS4xNDY1NSwgMS4zNTE5MSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDEzMjIsIDAuNTEyMDg3LCAwLjg0MjE4NSwgMS4yNTAxLCAxLjY2MjA3LCAyLjA3MTcsIDIuNDg4NTEiLCBcCi0gICAgICAgICAgIjAuMTAxMDYzLCAwLjUxMzA3NywgMC44Mzk4OTYsIDEuMjUxMzcsIDEuNjYxNTUsIDIuMDY5NzcsIDIuNDg4OTgiLCBcCi0gICAgICAgICAgIjAuMTAyNTQ2LCAwLjUxMTY2NiwgMC44NDAxNzUsIDEuMjQ5NDEsIDEuNjU5NzMsIDIuMDcxMDUsIDIuNDgyOTQiLCBcCi0gICAgICAgICAgIjAuMTA3MDI3LCAwLjUxMTY1OCwgMC44NDEyMjIsIDEuMjQ5NTMsIDEuNjY0NzMsIDIuMDcwMDMsIDIuNDg0ODQiLCBcCi0gICAgICAgICAgIjAuMTEyNTQxLCAwLjUxMjQzOCwgMC44NDIyOTYsIDEuMjUwMDMsIDEuNjYxMTMsIDIuMDc3ODksIDIuNDgxODQiLCBcCi0gICAgICAgICAgIjAuMTIzODUxLCAwLjUxMjAyMiwgMC44NDE5NzksIDEuMjQ5NiwgMS42NjI4NSwgMi4wNzY5NiwgMi40ODA5OSIsIFwKLSAgICAgICAgICAiMC4xMzUxNDUsIDAuNTEzMzQzLCAwLjg0MDA3NCwgMS4yNTI4NSwgMS42NjA1MSwgMi4wNzQ2NiwgMi40Nzk5NyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzk2NywgMC4wMDM5NjksIDAuMDAzOTcsIDAuMDAzOTcyLCAwLjAwMzk3NywgMC4wMDM5NywgMC4wMDM5NyIsIFwKLSAgICAgICAgICAiMC4wMDM5NTIsIDAuMDAzOTY2LCAwLjAwMzk2OCwgMC4wMDM5NjksIDAuMDAzOTcxLCAwLjAwMzk2OSwgMC4wMDM5NjkiLCBcCi0gICAgICAgICAgIjAuMDAzOTM5LCAwLjAwMzk2MywgMC4wMDM5NjYsIDAuMDAzOTY4LCAwLjAwMzk3LCAwLjAwMzk3LCAwLjAwMzk2OSIsIFwKLSAgICAgICAgICAiMC4wMDM5MjksIDAuMDAzOTU5LCAwLjAwMzk2MywgMC4wMDM5NjYsIDAuMDAzOTY3LCAwLjAwMzk2OCwgMC4wMDM5NjciLCBcCi0gICAgICAgICAgIjAuMDAzOTIxLCAwLjAwMzk1NiwgMC4wMDM5NjEsIDAuMDAzOTY1LCAwLjAwMzk2NiwgMC4wMDM5NjcsIDAuMDAzOTY4IiwgXAotICAgICAgICAgICIwLjAwMzkxMiwgMC4wMDM5NTIsIDAuMDAzOTU4LCAwLjAwMzk2MiwgMC4wMDM5NjUsIDAuMDAzOTY1LCAwLjAwMzk2NiIsIFwKLSAgICAgICAgICAiMC4wMDM5MDYsIDAuMDAzOTQ3LCAwLjAwMzk1NiwgMC4wMDM5NiwgMC4wMDM5NjQsIDAuMDAzOTcxLCAwLjAwMzk2NSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTM3NiwgMC4wMDEzNzcsIDAuMDAxMzc2LCAwLjAwMTM3NSwgMC4wMDEzNzUsIDAuMDAxMzc0LCAwLjAwMTM3MyIsIFwKLSAgICAgICAgICAiMC4wMDEzMzUsIDAuMDAxMzM4LCAwLjAwMTMzOCwgMC4wMDEzMzcsIDAuMDAxMzM3LCAwLjAwMTMzNywgMC4wMDEzMzYiLCBcCi0gICAgICAgICAgIjAuMDAxMzE3LCAwLjAwMTMyNiwgMC4wMDEzMjQsIDAuMDAxMzI0LCAwLjAwMTMyNCwgMC4wMDEzMjQsIDAuMDAxMzIzIiwgXAotICAgICAgICAgICIwLjAwMTMwNywgMC4wMDEzMiwgMC4wMDEzMiwgMC4wMDEzMiwgMC4wMDEzMiwgMC4wMDEzMiwgMC4wMDEzMiIsIFwKLSAgICAgICAgICAiMC4wMDEyOTksIDAuMDAxMzE2LCAwLjAwMTMxOSwgMC4wMDEzMTcsIDAuMDAxMzE3LCAwLjAwMTMxNSwgMC4wMDEzMTYiLCBcCi0gICAgICAgICAgIjAuMDAxMjkyLCAwLjAwMTMwOCwgMC4wMDEzMTUsIDAuMDAxMzE2LCAwLjAwMTMxNiwgMC4wMDEzMTcsIDAuMDAxMzE1IiwgXAotICAgICAgICAgICIwLjAwMTI4OCwgMC4wMDEzMTEsIDAuMDAxMzE0LCAwLjAwMTMxNSwgMC4wMDEzMTUsIDAuMDAxMzE2LCAwLjAwMTMxNSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzQ4MSwgMC4wMDM0ODYsIDAuMDAzNDg0LCAwLjAwMzQ4NCwgMC4wMDM0ODQsIDAuMDAzNDg0LCAwLjAwMzQ4NCIsIFwKLSAgICAgICAgICAiMC4wMDM0NjYsIDAuMDAzNDgsIDAuMDAzNDgyLCAwLjAwMzQ4MywgMC4wMDM0ODIsIDAuMDAzNDgxLCAwLjAwMzQ4MyIsIFwKLSAgICAgICAgICAiMC4wMDM0NTMsIDAuMDAzNDc3LCAwLjAwMzQ4LCAwLjAwMzQ4MSwgMC4wMDM0ODEsIDAuMDAzNDgyLCAwLjAwMzQ4MyIsIFwKLSAgICAgICAgICAiMC4wMDM0NDMsIDAuMDAzNDczLCAwLjAwMzQ3OCwgMC4wMDM0OCwgMC4wMDM0ODEsIDAuMDAzNDgxLCAwLjAwMzQ4MiIsIFwKLSAgICAgICAgICAiMC4wMDM0MzUsIDAuMDAzNDY5LCAwLjAwMzQ3NSwgMC4wMDM0NzgsIDAuMDAzNDc5LCAwLjAwMzQ4MiwgMC4wMDM0ODMiLCBcCi0gICAgICAgICAgIjAuMDAzNDI0LCAwLjAwMzQ2NSwgMC4wMDM0NzIsIDAuMDAzNDc2LCAwLjAwMzQ3NywgMC4wMDM0NzgsIDAuMDAzNDc5IiwgXAotICAgICAgICAgICIwLjAwMzQyLCAwLjAwMzQ1OSwgMC4wMDM0NjksIDAuMDAzNDc0LCAwLjAwMzQ3NiwgMC4wMDM0ODIsIDAuMDAzNDc4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwODIzLCAwLjAwMDgyNCwgMC4wMDA4MjQsIDAuMDAwODIzLCAwLjAwMDgyMywgMC4wMDA4MjMsIDAuMDAwODIyIiwgXAotICAgICAgICAgICIwLjAwMDgwOCwgMC4wMDA4MiwgMC4wMDA4MjEsIDAuMDAwODIxLCAwLjAwMDgyMSwgMC4wMDA4MjEsIDAuMDAwODIxIiwgXAotICAgICAgICAgICIwLjAwMDc4OCwgMC4wMDA4MTUsIDAuMDAwODE4LCAwLjAwMDgxOSwgMC4wMDA4MiwgMC4wMDA4MiwgMC4wMDA4MiIsIFwKLSAgICAgICAgICAiMC4wMDA3NzYsIDAuMDAwODExLCAwLjAwMDgxNCwgMC4wMDA4MTYsIDAuMDAwODE4LCAwLjAwMDgxOSwgMC4wMDA4MTgiLCBcCi0gICAgICAgICAgIjAuMDAwNzYyLCAwLjAwMDgwNywgMC4wMDA4MTIsIDAuMDAwODE0LCAwLjAwMDgxNiwgMC4wMDA4MTcsIDAuMDAwODE3IiwgXAotICAgICAgICAgICIwLjAwMDc0OCwgMC4wMDA3OTgsIDAuMDAwODA5LCAwLjAwMDgxMywgMC4wMDA4MTUsIDAuMDAwODE2LCAwLjAwMDgxNyIsIFwKLSAgICAgICAgICAiMC4wMDA3NDEsIDAuMDAwNzk4LCAwLjAwMDgwNiwgMC4wMDA4MTEsIDAuMDAwODEzLCAwLjAwMDgxNSwgMC4wMDA4MTYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI5NjMsIDAuMDAyOTY4LCAwLjAwMjk2OSwgMC4wMDI5NywgMC4wMDI5NjksIDAuMDAyOTY5LCAwLjAwMjk2OSIsIFwKLSAgICAgICAgICAiMC4wMDI5NCwgMC4wMDI5NjMsIDAuMDAyOTY2LCAwLjAwMjk2NywgMC4wMDI5NjcsIDAuMDAyOTY3LCAwLjAwMjk2NyIsIFwKLSAgICAgICAgICAiMC4wMDI5MTksIDAuMDAyOTU2LCAwLjAwMjk2MSwgMC4wMDI5NjMsIDAuMDAyOTY1LCAwLjAwMjk2NiwgMC4wMDI5NjYiLCBcCi0gICAgICAgICAgIjAuMDAyOTA0LCAwLjAwMjk1MSwgMC4wMDI5NTcsIDAuMDAyOTYxLCAwLjAwMjk2MywgMC4wMDI5NjQsIDAuMDAyOTY1IiwgXAotICAgICAgICAgICIwLjAwMjg5MywgMC4wMDI5NDYsIDAuMDAyOTU0LCAwLjAwMjk1OCwgMC4wMDI5NjEsIDAuMDAyOTYyLCAwLjAwMjk2MyIsIFwKLSAgICAgICAgICAiMC4wMDI4ODEsIDAuMDAyOTM4LCAwLjAwMjk0OSwgMC4wMDI5NTUsIDAuMDAyOTU4LCAwLjAwMjk2LCAwLjAwMjk2MSIsIFwKLSAgICAgICAgICAiMC4wMDI4NzYsIDAuMDAyOTMzLCAwLjAwMjk0NCwgMC4wMDI5NTEsIDAuMDAyOTU2LCAwLjAwMjk1OCwgMC4wMDI5NTkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDAxNTYsIDAuMDAwMTYzLCAwLjAwMDE2NCwgMC4wMDAxNjQsIDAuMDAwMTY0LCAwLjAwMDE2NSwgMC4wMDAxNjQiLCBcCi0gICAgICAgICAgIjAuMDAwMTY2LCAwLjAwMDE5NywgMC4wMDAyLCAwLjAwMDIwMiwgMC4wMDAyMDMsIDAuMDAwMjAzLCAwLjAwMDIwNCIsIFwKLSAgICAgICAgICAiMC4wMDAxNDgsIDAuMDAwMTk4LCAwLjAwMDIwNCwgMC4wMDAyMDcsIDAuMDAwMjA5LCAwLjAwMDIxLCAwLjAwMDIxIiwgXAotICAgICAgICAgICIwLjAwMDEzMSwgMC4wMDAxOTcsIDAuMDAwMjA1LCAwLjAwMDIxLCAwLjAwMDIxNCwgMC4wMDAyMTUsIDAuMDAwMjE2IiwgXAotICAgICAgICAgICIwLjAwMDExNCwgMC4wMDAxOTIsIDAuMDAwMjAzLCAwLjAwMDIwOSwgMC4wMDAyMTMsIDAuMDAwMjE1LCAwLjAwMDIxNiIsIFwKLSAgICAgICAgICAiMC4wMDAwOTMsIDAuMDAwMTgzLCAwLjAwMDE5OCwgMC4wMDAyMDYsIDAuMDAwMjEsIDAuMDAwMjEyLCAwLjAwMDIxNCIsIFwKLSAgICAgICAgICAiMC4wMDAwOCwgMC4wMDAxNzksIDAuMDAwMTk0LCAwLjAwMDIwNCwgMC4wMDAyMDgsIDAuMDAwMjExLCAwLjAwMDIxMyIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogTk9SNFgxICoKLSAqIC0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoTk9SNFgxKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMDc5MDgzODsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwODQzNTQ1OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDgzNTg1ODsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA4NDM1NDU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjYxLCAwLjAwMDI3LCAwLjAwMDI3NSwgMC4wMDAyNzgsIDAuMDAwMjgsIDAuMDAwMjgyLCAwLjAwMDI4MyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDU1OSwgMC4wMDA1NiwgMC4wMDA1NiwgMC4wMDA1NiwgMC4wMDA1NiwgMC4wMDA1NiwgMC4wMDA1NiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwODUzODczOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDg0Njg1NjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA4NTM4NzM7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjYsIDAuMDAwMjY4LCAwLjAwMDI3NSwgMC4wMDAyNzksIDAuMDAwMjgyLCAwLjAwMDI4NSwgMC4wMDAyODYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAzOSwgMC4wMDAzOSwgMC4wMDAzOSwgMC4wMDAzOSwgMC4wMDAzOSwgMC4wMDAzOSwgMC4wMDAzOSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQykgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwODM2NTE5OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDgzMDQ0NTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA4MzY1MTk7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjY1LCAwLjAwMDI4MSwgMC4wMDAyODgsIDAuMDAwMjkxLCAwLjAwMDI5MiwgMC4wMDAyOTQsIDAuMDAwMjk1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzEzLCAwLjAwMDMxNCwgMC4wMDAzMTQsIDAuMDAwMzE0LCAwLjAwMDMxNCwgMC4wMDAzMTQsIDAuMDAwMzE0Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihEKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA4NDY0MTc7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwODQ2MjUzOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDg0NjQxNzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAwOTIsIDAuMDAwMDkyLCAwLjAwMDA5MiwgMC4wMDAwOTIsIDAuMDAwMDkyLCAwLjAwMDA5MiwgMC4wMDAwOTIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAzNTcsIDAuMDAwMzU3LCAwLjAwMDM1NywgMC4wMDAzNTcsIDAuMDAwMzU2LCAwLjAwMDM1NiwgMC4wMDAzNTYiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4wMzYzOTM5OwotICAgIGZ1bmN0aW9uIDogIighKCgoQStCKStDKStEKSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjM4OTQsIDAuNTcxNjc2LCAxLjYwNDE3LCAyLjUxNjQzLCAzLjczMDQxLCA2LjE1OTM2LCA3LjY3NzQ2IiwgXAotICAgICAgICAgICIwLjQwMDc0MSwgMC41ODMxMDEsIDEuNjE2MDMsIDIuNTI3NzMsIDMuNzQyMDEsIDYuMTcwOTMsIDcuNjg5IiwgXAotICAgICAgICAgICIwLjQxMzMxMSwgMC41OTU3NSwgMS42Mjk2NCwgMi41NDA2OSwgMy43NTQ3NiwgNi4xODM3NSwgNy43MDE4MSIsIFwKLSAgICAgICAgICAiMC40MjQ5NzEsIDAuNjA3NTY1LCAxLjY0MDc0LCAyLjU1MjcxLCAzLjc2NjQ3LCA2LjE5NTU5LCA3LjcxMzUyIiwgXAotICAgICAgICAgICIwLjQzNTg3NCwgMC42MTgzODQsIDEuNjUyNTMsIDIuNTYzMDQsIDMuNzc3NTgsIDYuMjA2NTcsIDcuNzI0NjciLCBcCi0gICAgICAgICAgIjAuNDUyNDEsIDAuNjM0OTE0LCAxLjY2ODY4LCAyLjU4MDA3LCAzLjc5NDE5LCA2LjIyMzM3LCA3Ljc0MTMxIiwgXAotICAgICAgICAgICIwLjQ2NjI2NSwgMC42NDg5NjMsIDEuNjgyMTksIDIuNTkzNjYsIDMuODA4MywgNi4yMzczNCwgNy43NTU0NCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC42NzUzNTksIDEuMDIyODgsIDIuOTkxMzMsIDQuNzE4MjUsIDcuMDMzOTIsIDExLjY0NiwgMTQuNTMiLCBcCi0gICAgICAgICAgIjAuNjc1MzUsIDEuMDIyNTIsIDIuOTg5NzUsIDQuNzM0OTIsIDcuMDM3MzEsIDExLjY0NzEsIDE0LjUyOTkiLCBcCi0gICAgICAgICAgIjAuNjc1NzE4LCAxLjAyMjUsIDIuOTkwOTcsIDQuNzM1MzMsIDcuMDM0MDcsIDExLjY0NTcsIDE0LjUzIiwgXAotICAgICAgICAgICIwLjY3NTEsIDEuMDIyNzYsIDIuOTkwMDUsIDQuNzM2LCA3LjAzNDI3LCAxMS42NDcyLCAxNC41MyIsIFwKLSAgICAgICAgICAiMC42NzUzNjYsIDEuMDIyNTQsIDIuOTg3MDEsIDQuNzIzMzYsIDcuMDMzODksIDExLjY0NjMsIDE0LjUzIiwgXAotICAgICAgICAgICIwLjY3NDgwNywgMS4wMjI1MywgMi45OTA0MywgNC43MjE2MiwgNy4wMzcxOCwgMTEuNjQ3MSwgMTQuNTMiLCBcCi0gICAgICAgICAgIjAuNjc2NTQsIDEuMDIyNjcsIDIuOTg5NzYsIDQuNzMzOTgsIDcuMDMzNzUsIDExLjY0NjMsIDE0LjUyOTkiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTExNywgMC4xNjE5NzksIDAuNDQzNTM2LCAwLjY5MDg3OSwgMS4wMjA0OSwgMS42NzksIDIuMDkwNjQiLCBcCi0gICAgICAgICAgIjAuMTIzMTgzLCAwLjE3MzQ3MSwgMC40NTQ5ODcsIDAuNzAyNDExLCAxLjAzMTg5LCAxLjY5MDczLCAyLjEwMjgzIiwgXAotICAgICAgICAgICIwLjEzODAxNSwgMC4xODgxODIsIDAuNDY5NTE0LCAwLjcxNzAyNSwgMS4wNDY2OSwgMS43MDU0NSwgMi4xMTY3NiIsIFwKLSAgICAgICAgICAiMC4xNTMwMjQsIDAuMjAyMDEsIDAuNDg0MTI4LCAwLjcyNzM0NSwgMS4wNTY5NiwgMS43MTYxNiwgMi4xMjc2OSIsIFwKLSAgICAgICAgICAiMC4xNjgwNSwgMC4yMTgyMjEsIDAuNDk4NzY4LCAwLjc0NjIxMiwgMS4wNzAyNiwgMS43Mjg4NCwgMi4xNDAzMSIsIFwKLSAgICAgICAgICAiMC4xOTIyMjksIDAuMjQyMjY5LCAwLjUyMzYzOSwgMC43NzEwNiwgMS4xMDA2MSwgMS43NTk2MSwgMi4xNzE4NyIsIFwKLSAgICAgICAgICAiMC4yMTMxMDQsIDAuMjYzNjQ2LCAwLjU0Mjk0MSwgMC43OTAzMzcsIDEuMTE5OTQsIDEuNzY5MTksIDIuMTgwMzMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjAxNzQzLCAwLjI5OTY3NywgMC44NTQ2MjksIDEuMzQ0NjUsIDEuOTk3MDcsIDMuMzAxOTMsIDQuMTE3NzQiLCBcCi0gICAgICAgICAgIjAuMjAxNDc3LCAwLjI5OTU2MSwgMC44NTQyNzksIDEuMzQ0MDQsIDEuOTk2NTYsIDMuMzAyMTYsIDQuMTE4OTYiLCBcCi0gICAgICAgICAgIjAuMjAxMjk4LCAwLjI5OTQ2NSwgMC44NTQzNzIsIDEuMzQ0NzQsIDEuOTk3NTIsIDMuMzAyNzQsIDQuMTE3NTMiLCBcCi0gICAgICAgICAgIjAuMjAxOTY3LCAwLjI5OTMyMywgMC44NTQyNzQsIDEuMzQ0NzcsIDEuOTk3NjMsIDMuMzAyNzIsIDQuMTE5NTkiLCBcCi0gICAgICAgICAgIjAuMjA0NDE2LCAwLjI5OTk2LCAwLjg1NDY4MSwgMS4zNDQyMiwgMS45OTc3MywgMy4zMDI0NCwgNC4xMTc1OCIsIFwKLSAgICAgICAgICAiMC4yMTA3MDcsIDAuMzAzNTQ3LCAwLjg1NDQ1MSwgMS4zNDM3OCwgMS45OTY5MiwgMy4zMDMzNCwgNC4xMTg2NCIsIFwKLSAgICAgICAgICAiMC4yMTgzMzYsIDAuMzA4NDU5LCAwLjg1NDI2MSwgMS4zNDQyOCwgMS45OTc1NiwgMy4zMDI1NywgNC4xMTgyNiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zODM4MjcsIDAuNTY2MTE0LCAxLjU5OTM4LCAyLjUxMDcxLCAzLjcyNDg3LCA2LjE1Mzg1LCA3LjY3MTg5IiwgXAotICAgICAgICAgICIwLjM5NDI3MSwgMC41NzY4NzEsIDEuNjA5OTcsIDIuNTIxMzEsIDMuNzM1NjIsIDYuMTY0NTEsIDcuNjgyNDQiLCBcCi0gICAgICAgICAgIjAuNDA2NTMzLCAwLjU4OTEzMiwgMS42MjI0MSwgMi41MzM2MiwgMy43NDc5MiwgNi4xNzY4NiwgNy42OTQ5OSIsIFwKLSAgICAgICAgICAiMC40MTgxOCwgMC42MDA2MzgsIDEuNjM0NzIsIDIuNTQ1MjIsIDMuNzU5NzQsIDYuMTg4NzIsIDcuNzA2ODMiLCBcCi0gICAgICAgICAgIjAuNDI5MjQ0LCAwLjYxMTcxMiwgMS42NDUyNCwgMi41NTYxOSwgMy43NzA5NCwgNi4xOTk5MywgNy43MTgwNCIsIFwKLSAgICAgICAgICAiMC40NDYyNzIsIDAuNjI4ODk5LCAxLjY2MjExLCAyLjU3MzU0LCAzLjc4ODE3LCA2LjIxNzE4LCA3LjczNTI1IiwgXAotICAgICAgICAgICIwLjQ2MDc2LCAwLjY0MzQyMSwgMS42NzY2OSwgMi41ODg0NSwgMy44MDI4NiwgNi4yMzE4NywgNy43NDk5NiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC42NzUzNTcsIDEuMDIyNjEsIDIuOTkwMzQsIDQuNzM1MDgsIDcuMDM0MTIsIDExLjY0NTgsIDE0LjUzIiwgXAotICAgICAgICAgICIwLjY3NTExNiwgMS4wMjM5LCAyLjk5MDM5LCA0LjcyMTY0LCA3LjAzNzQ0LCAxMS42NDcyLCAxNC41MzAyIiwgXAotICAgICAgICAgICIwLjY3NDk0NCwgMS4wMjI4LCAyLjk5MDM1LCA0LjczNDc1LCA3LjAzNzI2LCAxMS42NDYsIDE0LjUzIiwgXAotICAgICAgICAgICIwLjY3NTM3NiwgMS4wMjI1MywgMi45ODcwNSwgNC43MzQxOSwgNy4wMzM4NSwgMTEuNjQ2MiwgMTQuNTMiLCBcCi0gICAgICAgICAgIjAuNjc1MzgsIDEuMDI0MzIsIDIuOTg3NzksIDQuNzMwNTksIDcuMDMzNzYsIDExLjY0NjMsIDE0LjUyOTkiLCBcCi0gICAgICAgICAgIjAuNjc1MzU2LCAxLjAyMjYyLCAyLjk4OTg4LCA0LjczMzk1LCA3LjAzMzc1LCAxMS42NDYyLCAxNC41Mjk5IiwgXAotICAgICAgICAgICIwLjY3NjE4NCwgMS4wMjI1OCwgMi45OTExNCwgNC43MjMxNiwgNy4wMzczLCAxMS42NDYxLCAxNC41Mjk5Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwODU4MywgMC4xNTg0MiwgMC40MzkxMDMsIDAuNjg2NTA1LCAxLjAxNjA1LCAxLjY3NTExLCAyLjA4NjMiLCBcCi0gICAgICAgICAgIjAuMTIwMTk2LCAwLjE2OTcwMSwgMC40NTA0MjksIDAuNjk3NTg4LCAxLjAyNjk3LCAxLjY4NTcyLCAyLjA5ODAxIiwgXAotICAgICAgICAgICIwLjEzNTA5MywgMC4xODQ4NCwgMC40NjUzNzYsIDAuNzEyNjIxLCAxLjA0MTksIDEuNzAwNzEsIDIuMTEyOTEiLCBcCi0gICAgICAgICAgIjAuMTUwMTY1LCAwLjE5ODc0NSwgMC40ODAwMzQsIDAuNzI3MTAzLCAxLjA1NjYsIDEuNzE1NDYsIDIuMTI3NDgiLCBcCi0gICAgICAgICAgIjAuMTY1MDksIDAuMjE0OTIyLCAwLjQ5NDk5MSwgMC43NDIxODgsIDEuMDcxNTYsIDEuNzI3MzYsIDIuMTM5NDEiLCBcCi0gICAgICAgICAgIjAuMTg5MjQxLCAwLjIzODg2NywgMC41MTk1ODQsIDAuNzY2NTgxLCAxLjA5NTU4LCAxLjc1NDUyLCAyLjE2NjM1IiwgXAotICAgICAgICAgICIwLjIxMDAzMiwgMC4yNTk4NTksIDAuNTM4NjYzLCAwLjc4NzUzMSwgMS4xMTY2NCwgMS43NzUzOCwgMi4xODY3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE5NjQyNywgMC4yOTQ0NDEsIDAuODQ5MjkzLCAxLjMzOTIzLCAxLjk5MjIzLCAzLjI5ODA0LCA0LjExMzcxIiwgXAotICAgICAgICAgICIwLjE5NjQ0OCwgMC4yOTQ0NTMsIDAuODQ5MzYxLCAxLjMzODk5LCAxLjk5MTcsIDMuMjk4MTUsIDQuMTEzNzkiLCBcCi0gICAgICAgICAgIjAuMTk2MjksIDAuMjk0MzY5LCAwLjg0OTU3NiwgMS4zMzk1OCwgMS45OTE4NCwgMy4yOTc3NSwgNC4xMTM5NyIsIFwKLSAgICAgICAgICAiMC4xOTcxNTEsIDAuMjk0MzgxLCAwLjg0OTUzNywgMS4zMzkwNCwgMS45OTIxNCwgMy4yOTc3NCwgNC4xMTM0OSIsIFwKLSAgICAgICAgICAiMC4xOTk3NzQsIDAuMjk1MTMyLCAwLjg0OTUwOCwgMS4zMzkyOSwgMS45OTE5OCwgMy4yOTc1OCwgNC4xMTM3MyIsIFwKLSAgICAgICAgICAiMC4yMDY0MDIsIDAuMjk4OTI4LCAwLjg0OTY1NCwgMS4zMzk1NiwgMS45OTIwNSwgMy4yOTgzNiwgNC4xMTM1MiIsIFwKLSAgICAgICAgICAiMC4yMTQzNDYsIDAuMzA0MjgxLCAwLjg0OTUyNiwgMS4zMzkyNiwgMS45OTE5NCwgMy4yOTc1NywgNC4xMTQzNCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zNzAwMDcsIDAuNTUyMjkxLCAxLjU4NjA3LCAyLjQ5Njk5LCAzLjcxMDk5LCA2LjEzOTk0LCA3LjY1ODA0IiwgXAotICAgICAgICAgICIwLjM3OTcyNCwgMC41NjIwOCwgMS41OTU0NiwgMi41MDY2OSwgMy43MjA5NSwgNi4xNDk4OCwgNy42NjgiLCBcCi0gICAgICAgICAgIjAuMzkxNzA5LCAwLjU3NDE1MSwgMS42MDc1NSwgMi41MTg4MSwgMy43MzMxMiwgNi4xNjIwNSwgNy42ODAxOCIsIFwKLSAgICAgICAgICAiMC40MDMwODYsIDAuNTg1NzM3LCAxLjYxOTAzLCAyLjUzMDU1LCAzLjc0NDU2LCA2LjE3Mzc1LCA3LjY5MTcyIiwgXAotICAgICAgICAgICIwLjQxNDYzMywgMC41OTcxMTUsIDEuNjMwOTYsIDIuNTQyMDYsIDMuNzU2MzcsIDYuMTg1MjYsIDcuNzAzNDEiLCBcCi0gICAgICAgICAgIjAuNDMyNjM0LCAwLjYxNTMxNSwgMS42NDg3OCwgMi41NjA2NSwgMy43NzQ1MSwgNi4yMDM1MiwgNy43MjE2NCIsIFwKLSAgICAgICAgICAiMC40NDg0NzQsIDAuNjMxMDU0LCAxLjY2NDYyLCAyLjU3NjM2LCAzLjc5MDY0LCA2LjIxOTU0LCA3LjczNzciKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuNjc1MzU0LCAxLjAyMjY3LCAyLjk4NzAzLCA0LjczNTI5LCA3LjAzMzg3LCAxMS42NDYsIDE0LjUzIiwgXAotICAgICAgICAgICIwLjY3NTM1NSwgMS4wMjI1MiwgMi45OTAzNSwgNC43MzQ4NCwgNy4wMzcyNiwgMTEuNjQ2LCAxNC41Mjk3IiwgXAotICAgICAgICAgICIwLjY3NTMwOSwgMS4wMjI0NiwgMi45OTAyNywgNC43MzQ3MiwgNy4wMzcyNywgMTEuNjQ2LCAxNC41MyIsIFwKLSAgICAgICAgICAiMC42NzUzNzMsIDEuMDIyNzcsIDIuOTkwMjYsIDQuNzIxMzEsIDcuMDM3MTQsIDExLjY0NzEsIDE0LjUyOTciLCBcCi0gICAgICAgICAgIjAuNjc1NDAyLCAxLjAyMjU0LCAyLjk5MDY5LCA0LjczNDk0LCA3LjAzNzI5LCAxMS42NDY5LCAxNC41Mjk5IiwgXAotICAgICAgICAgICIwLjY3NTAzMywgMS4wMjI2OSwgMi45OTAyMiwgNC43MzU5MSwgNy4wMzM5MiwgMTEuNjQ1OSwgMTQuNTI5OSIsIFwKLSAgICAgICAgICAiMC42NzYzNzMsIDEuMDI0MywgMi45ODk5NSwgNC43MzUxOSwgNy4wMzczMiwgMTEuNjQ2LCAxNC41Mjk5Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwNDIxMywgMC4xNTM3NDYsIDAuNDMzODkyLCAwLjY4MTIzOCwgMS4wMTA2MSwgMS42NjkxOCwgMi4wODA3MyIsIFwKLSAgICAgICAgICAiMC4xMTU1MDcsIDAuMTY1MTU5LCAwLjQ0NTQyLCAwLjY5MjQ5MiwgMS4wMjE2NiwgMS42ODAyOSwgMi4wOTI0OCIsIFwKLSAgICAgICAgICAiMC4xMzExNTQsIDAuMTgwNDk1LCAwLjQ2MDU4OCwgMC43MDc1NjEsIDEuMDM3MjcsIDEuNjk1MiwgMi4xMDgwMSIsIFwKLSAgICAgICAgICAiMC4xNDYxMjcsIDAuMTk1Njk1LCAwLjQ3NTE0NywgMC43MjE5OSwgMS4wNTE0MywgMS43MDk3NCwgMi4xMjIwNiIsIFwKLSAgICAgICAgICAiMC4xNjExNzksIDAuMjEwNTYsIDAuNDkwNDY2LCAwLjczNzM0MSwgMS4wNjY1NCwgMS43MjUyNiwgMi4xMzczNCIsIFwKLSAgICAgICAgICAiMC4xODQ5MjksIDAuMjM0NDQ5LCAwLjUxNTA3LCAwLjc2MTgxMiwgMS4wOTA5NywgMS43NDk3NywgMi4xNjE1MSIsIFwKLSAgICAgICAgICAiMC4yMDYwMjIsIDAuMjU1NTYsIDAuNTMzODkyLCAwLjc4MjgzNywgMS4xMTE2NiwgMS43NzA1NywgMi4xODIxNiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xOTEwNTQsIDAuMjg5MDQ0LCAwLjg0Mzg5LCAxLjMzMzkzLCAxLjk4NjksIDMuMjkyMiwgNC4xMDgwOCIsIFwKLSAgICAgICAgICAiMC4xOTEwOTgsIDAuMjg5MTcxLCAwLjg0Mzg5NywgMS4zMzM5OSwgMS45ODYwNSwgMy4yOTIzOCwgNC4xMDgwNCIsIFwKLSAgICAgICAgICAiMC4xOTEwNywgMC4yODkwMTMsIDAuODQ0MzAxLCAxLjMzMzcsIDEuOTg2NTMsIDMuMjkxODQsIDQuMTA5MDEiLCBcCi0gICAgICAgICAgIjAuMTkyMTg1LCAwLjI4OTEzMSwgMC44NDQyOTgsIDEuMzMzNzIsIDEuOTg2NDQsIDMuMjkyMjYsIDQuMTA4NTciLCBcCi0gICAgICAgICAgIjAuMTk1MDgyLCAwLjI5MDAyNCwgMC44NDM5NjksIDEuMzMzNzIsIDEuOTg2NDcsIDMuMjkyNTEsIDQuMTA3ODUiLCBcCi0gICAgICAgICAgIjAuMjAyMjg4LCAwLjI5NDIxNiwgMC44NDQzNTgsIDEuMzMzNzQsIDEuOTg2NDQsIDMuMjkyNTYsIDQuMTA3ODIiLCBcCi0gICAgICAgICAgIjAuMjEwNDE4LCAwLjI5OTY2LCAwLjg0NDE3OCwgMS4zMzM3MSwgMS45ODYzLCAzLjI5MTg1LCA0LjEwOTEzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkQiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjM0NjI4NCwgMC41Mjg2MTQsIDEuNTYxODEsIDIuNDczNTEsIDMuNjg3NDYsIDYuMTE2MjcsIDcuNjM0MzgiLCBcCi0gICAgICAgICAgIjAuMzU1MzE4LCAwLjUzNzcyNywgMS41NzA3MSwgMi40ODIzMiwgMy42OTY2NywgNi4xMjU3MSwgNy42NDM1NiIsIFwKLSAgICAgICAgICAiMC4zNjY2NjIsIDAuNTQ4OTk3LCAxLjU4Mjc3LCAyLjQ5NDQ2LCAzLjcwODQ2LCA2LjEzNzMsIDcuNjU1MzgiLCBcCi0gICAgICAgICAgIjAuMzc4MTM2LCAwLjU2MDkzNywgMS41OTQyNCwgMi41MDU3LCAzLjcyMDE4LCA2LjE0OTE2LCA3LjY2NzE5IiwgXAotICAgICAgICAgICIwLjM4OTYwNiwgMC41NzIxOTUsIDEuNjA2NDcsIDIuNTE3NDIsIDMuNzMxNjQsIDYuMTYwNzUsIDcuNjc4NzciLCBcCi0gICAgICAgICAgIjAuNDA3ODQ3LCAwLjU5MDU4NCwgMS42MjQxMiwgMi41MzU4NCwgMy43NTAxOCwgNi4xNzkxOCwgNy42OTczNSIsIFwKLSAgICAgICAgICAiMC40MjM5MzQsIDAuNjA2ODAyLCAxLjY0MTIyLCAyLjU1MjUxLCAzLjc2NjUzLCA2LjE5NTUyLCA3LjcxMzY4Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjY3NTM1NywgMS4wMjI1NiwgMi45OTAyNywgNC43MzU4MywgNy4wMzczOSwgMTEuNjQ3MSwgMTQuNTMiLCBcCi0gICAgICAgICAgIjAuNjc1NDM3LCAxLjAyMjU5LCAyLjk4ODI4LCA0LjcyMzczLCA3LjAzNDQ2LCAxMS42NDcyLCAxNC41MzAzIiwgXAotICAgICAgICAgICIwLjY3NjQ4NCwgMS4wMjEzNSwgMi45OTAzNSwgNC43MTk4LCA3LjAzMTkzLCAxMS42NDcxLCAxNC41MzAxIiwgXAotICAgICAgICAgICIwLjY3NjQ2MSwgMS4wMjI3OSwgMi45ODg2MywgNC43MjM3NSwgNy4wMzczNiwgMTEuNjQ3MSwgMTQuNTMwNCIsIFwKLSAgICAgICAgICAiMC42NzUxNzgsIDEuMDIzNjQsIDIuOTkwOTcsIDQuNzIyMTEsIDcuMDMzOTQsIDExLjY0NzEsIDE0LjUzIiwgXAotICAgICAgICAgICIwLjY3NDkyMiwgMS4wMjIzNSwgMi45ODk1NCwgNC43MjM2NSwgNy4wMzM3MiwgMTEuNjQ2OSwgMTQuNTMiLCBcCi0gICAgICAgICAgIjAuNjc0OTYzLCAxLjAyMjQ2LCAyLjk5NDAyLCA0LjczNTc0LCA3LjAzNzI2LCAxMS42NDU5LCAxNC41MyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTg4OCwgMC4xNDgyNjcsIDAuNDI4MjQ2LCAwLjY3NTI3OSwgMS4wMDQyOCwgMS42NjI3NSwgMi4wNzU0MSIsIFwKLSAgICAgICAgICAiMC4xMTA4NTUsIDAuMTYwMjc3LCAwLjQ0MDI0MSwgMC42ODcxODgsIDEuMDE2NDEsIDEuNjc0NzYsIDIuMDg3NzgiLCBcCi0gICAgICAgICAgIjAuMTI1NTMsIDAuMTc0OTU1LCAwLjQ1MjU1MSwgMC42OTk2NjIsIDEuMDI5MzEsIDEuNjg3NTcsIDIuMTAwNTQiLCBcCi0gICAgICAgICAgIjAuMTQwODYzLCAwLjE4OTc2MywgMC40Njk2NjEsIDAuNzE1NTUsIDEuMDQxNzgsIDEuNzAwMDQsIDIuMTEyMTQiLCBcCi0gICAgICAgICAgIjAuMTU1OTE3LCAwLjIwNTIzOCwgMC40ODQ0NjcsIDAuNzMxMjUsIDEuMDU0OTcsIDEuNzEzMzIsIDIuMTI1OTciLCBcCi0gICAgICAgICAgIjAuMTc5ODAzLCAwLjIyOTI4NiwgMC41MDc4NzksIDAuNzU0NzksIDEuMDg1NCwgMS43NDM5MywgMi4xNTYwNyIsIFwKLSAgICAgICAgICAiMC4yMDEyODYsIDAuMjUwMjQ1LCAwLjUyODYwMywgMC43NzU3NTMsIDEuMTA0NjEsIDEuNzY0ODMsIDIuMTc1NTciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTg2MDE4LCAwLjI4NDU5NiwgMC44MzkyNTgsIDEuMzI5ODYsIDEuOTg4NTcsIDMuMjg5NzIsIDQuMTA1OTQiLCBcCi0gICAgICAgICAgIjAuMTg2MjQsIDAuMjgzODg5LCAwLjgzOTEwMywgMS4zMjk1NywgMS45ODIyNSwgMy4yOTEzMSwgNC4xMTIzNyIsIFwKLSAgICAgICAgICAiMC4xODU2NjcsIDAuMjg0NjI1LCAwLjg0MDQ4OSwgMS4zMjg3NSwgMS45ODU4NiwgMy4yOTkyLCA0LjExMTgyIiwgXAotICAgICAgICAgICIwLjE4NzAzNiwgMC4yODQ2NDYsIDAuODQwNDg1LCAxLjMyODcyLCAxLjk4NDc5LCAzLjI4ODc2LCA0LjExMjU5IiwgXAotICAgICAgICAgICIwLjE5MDcyLCAwLjI4NTczOSwgMC44MzkwNjYsIDEuMzI4ODQsIDEuOTg1MDksIDMuMjg5MTgsIDQuMTA3ODMiLCBcCi0gICAgICAgICAgIjAuMTk4MjE0LCAwLjI4OTQ5MSwgMC44Mzg5MDEsIDEuMzI5MzksIDEuOTgyOTIsIDMuMzAwNDUsIDQuMTA4MjUiLCBcCi0gICAgICAgICAgIjAuMjA2MDE0LCAwLjI5NjAwNCwgMC44NDA0ODMsIDEuMzI5NTUsIDEuOTg5NTQsIDMuMjkwODQsIDQuMTE0NzMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI0NjcsIDAuMDAyNDY3LCAwLjAwMjQ2NywgMC4wMDI0NjgsIDAuMDAyNDY3LCAwLjAwMjQ2NiwgMC4wMDI0MTUiLCBcCi0gICAgICAgICAgIjAuMDAyNDYyLCAwLjAwMjQ2NCwgMC4wMDI0NjYsIDAuMDAyNDY3LCAwLjAwMjQ2NywgMC4wMDI0NjUsIDAuMDAyNDEzIiwgXAotICAgICAgICAgICIwLjAwMjQ1OCwgMC4wMDI0NjEsIDAuMDAyNDY1LCAwLjAwMjQ2NiwgMC4wMDI0NjcsIDAuMDAyNDY1LCAwLjAwMjQxNCIsIFwKLSAgICAgICAgICAiMC4wMDI0NTUsIDAuMDAyNDU5LCAwLjAwMjQ2NCwgMC4wMDI0NjYsIDAuMDAyNDY2LCAwLjAwMjQ2NCwgMC4wMDI0MTEiLCBcCi0gICAgICAgICAgIjAuMDAyNDUxLCAwLjAwMjQ1NiwgMC4wMDI0NjMsIDAuMDAyNDY1LCAwLjAwMjQ2NiwgMC4wMDI0NjQsIDAuMDAyNDE0IiwgXAotICAgICAgICAgICIwLjAwMjQ0NywgMC4wMDI0NTEsIDAuMDAyNDYxLCAwLjAwMjQ2MywgMC4wMDI0NjUsIDAuMDAyNDY0LCAwLjAwMjQxNyIsIFwKLSAgICAgICAgICAiMC4wMDI0NDQsIDAuMDAyNDUsIDAuMDAyNDYsIDAuMDAyNDYzLCAwLjAwMjQ2NCwgMC4wMDI0NjMsIDAuMDAyNDE3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxMDAzLCAwLjAwMTAwMywgMC4wMDEwMDMsIDAuMDAxMDAyLCAwLjAwMTAwMSwgMC4wMDEsIDAuMDAwOTk5IiwgXAotICAgICAgICAgICIwLjAwMDk4MSwgMC4wMDA5ODEsIDAuMDAwOTgsIDAuMDAwOTgsIDAuMDAwOTc4LCAwLjAwMDk3OCwgMC4wMDA5NzgiLCBcCi0gICAgICAgICAgIjAuMDAwOTczLCAwLjAwMDk3MywgMC4wMDA5NzMsIDAuMDAwOTczLCAwLjAwMDk3MiwgMC4wMDA5NzEsIDAuMDAwOTcxIiwgXAotICAgICAgICAgICIwLjAwMDk2OSwgMC4wMDA5NjYsIDAuMDAwOTcsIDAuMDAwOTY3LCAwLjAwMDk2OCwgMC4wMDA5NjYsIDAuMDAwOTY1IiwgXAotICAgICAgICAgICIwLjAwMDk2NiwgMC4wMDA5NjcsIDAuMDAwOTY4LCAwLjAwMDk2OCwgMC4wMDA5NjYsIDAuMDAwOTY0LCAwLjAwMDk2NCIsIFwKLSAgICAgICAgICAiMC4wMDA5NjMsIDAuMDAwOTY1LCAwLjAwMDk2NywgMC4wMDA5NjcsIDAuMDAwOTY3LCAwLjAwMDk2NiwgMC4wMDA5NjUiLCBcCi0gICAgICAgICAgIjAuMDAwOTYxLCAwLjAwMDk2NCwgMC4wMDA5NjUsIDAuMDAwOTY1LCAwLjAwMDk2NSwgMC4wMDA5NjEsIDAuMDAwOTYxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyMjI3LCAwLjAwMjIyNywgMC4wMDIyMjcsIDAuMDAyMjI4LCAwLjAwMjIyOCwgMC4wMDIyMjYsIDAuMDAyMTgxIiwgXAotICAgICAgICAgICIwLjAwMjIyMywgMC4wMDIyMjQsIDAuMDAyMjI3LCAwLjAwMjIyNywgMC4wMDIyMjcsIDAuMDAyMjI2LCAwLjAwMjE3OSIsIFwKLSAgICAgICAgICAiMC4wMDIyMTgsIDAuMDAyMjIxLCAwLjAwMjIyNiwgMC4wMDIyMjcsIDAuMDAyMjI3LCAwLjAwMjIyNSwgMC4wMDIxOCIsIFwKLSAgICAgICAgICAiMC4wMDIyMTUsIDAuMDAyMjE5LCAwLjAwMjIyNSwgMC4wMDIyMjUsIDAuMDAyMjI2LCAwLjAwMjIyNSwgMC4wMDIxNzkiLCBcCi0gICAgICAgICAgIjAuMDAyMjExLCAwLjAwMjIxNiwgMC4wMDIyMjMsIDAuMDAyMjI1LCAwLjAwMjIyNSwgMC4wMDIyMjUsIDAuMDAyMTc0IiwgXAotICAgICAgICAgICIwLjAwMjIwNywgMC4wMDIyMTMsIDAuMDAyMjIyLCAwLjAwMjIyNCwgMC4wMDIyMjUsIDAuMDAyMjI0LCAwLjAwMjE3MiIsIFwKLSAgICAgICAgICAiMC4wMDIyMDQsIDAuMDAyMjEsIDAuMDAyMjIsIDAuMDAyMjIzLCAwLjAwMjIyNSwgMC4wMDIyMjQsIDAuMDAyMTc3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwNzM4LCAwLjAwMDczOCwgMC4wMDA3MzgsIDAuMDAwNzM4LCAwLjAwMDczNywgMC4wMDA3MzYsIDAuMDAwNzM2IiwgXAotICAgICAgICAgICIwLjAwMDcyOCwgMC4wMDA3MjgsIDAuMDAwNzI4LCAwLjAwMDcyOCwgMC4wMDA3MjgsIDAuMDAwNzI3LCAwLjAwMDcyNiIsIFwKLSAgICAgICAgICAiMC4wMDA3MjEsIDAuMDAwNzIyLCAwLjAwMDcyNCwgMC4wMDA3MjQsIDAuMDAwNzI0LCAwLjAwMDcyMywgMC4wMDA3MjIiLCBcCi0gICAgICAgICAgIjAuMDAwNzE2LCAwLjAwMDcxNCwgMC4wMDA3MjEsIDAuMDAwNzIyLCAwLjAwMDcyMiwgMC4wMDA3MjEsIDAuMDAwNzIxIiwgXAotICAgICAgICAgICIwLjAwMDcxMywgMC4wMDA3MTYsIDAuMDAwNzIsIDAuMDAwNzIxLCAwLjAwMDcyMSwgMC4wMDA3MiwgMC4wMDA3MTkiLCBcCi0gICAgICAgICAgIjAuMDAwNzA4LCAwLjAwMDcxMiwgMC4wMDA3MTksIDAuMDAwNzIsIDAuMDAwNzIsIDAuMDAwNzIsIDAuMDAwNzE5IiwgXAotICAgICAgICAgICIwLjAwMDcwNiwgMC4wMDA3MTEsIDAuMDAwNzE3LCAwLjAwMDcxOSwgMC4wMDA3MTksIDAuMDAwNzE5LCAwLjAwMDcxOSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTk3NiwgMC4wMDE5NzYsIDAuMDAxOTc3LCAwLjAwMTk3NywgMC4wMDE5NzcsIDAuMDAxOTc1LCAwLjAwMTkzIiwgXAotICAgICAgICAgICIwLjAwMTk3MiwgMC4wMDE5NzQsIDAuMDAxOTc2LCAwLjAwMTk3NiwgMC4wMDE5NzcsIDAuMDAxOTc2LCAwLjAwMTkyNSIsIFwKLSAgICAgICAgICAiMC4wMDE5NjcsIDAuMDAxOTcsIDAuMDAxOTc0LCAwLjAwMTk3NSwgMC4wMDE5NzYsIDAuMDAxOTc0LCAwLjAwMTkyNCIsIFwKLSAgICAgICAgICAiMC4wMDE5NjMsIDAuMDAxOTY3LCAwLjAwMTk3MywgMC4wMDE5NzQsIDAuMDAxOTc3LCAwLjAwMTk3MywgMC4wMDE5MiIsIFwKLSAgICAgICAgICAiMC4wMDE5NiwgMC4wMDE5NjUsIDAuMDAxOTcyLCAwLjAwMTk3NCwgMC4wMDE5NzUsIDAuMDAxOTc0LCAwLjAwMTkyOCIsIFwKLSAgICAgICAgICAiMC4wMDE5NTYsIDAuMDAxOTYxLCAwLjAwMTk3LCAwLjAwMTk3MywgMC4wMDE5NzQsIDAuMDAxOTczLCAwLjAwMTkyMiIsIFwKLSAgICAgICAgICAiMC4wMDE5NTMsIDAuMDAxOTU5LCAwLjAwMTk2OSwgMC4wMDE5NzIsIDAuMDAxOTc0LCAwLjAwMTk3MiwgMC4wMDE5MjEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDA0MzMsIDAuMDAwNDMzLCAwLjAwMDQzMywgMC4wMDA0MzMsIDAuMDAwNDMzLCAwLjAwMDQzMiwgMC4wMDA0MzIiLCBcCi0gICAgICAgICAgIjAuMDAwNDM4LCAwLjAwMDQzOSwgMC4wMDA0NDEsIDAuMDAwNDQxLCAwLjAwMDQ0MSwgMC4wMDA0NCwgMC4wMDA0NCIsIFwKLSAgICAgICAgICAiMC4wMDA0MzUsIDAuMDAwNDM4LCAwLjAwMDQ0MywgMC4wMDA0NDMsIDAuMDAwNDQzLCAwLjAwMDQ0NCwgMC4wMDA0NDMiLCBcCi0gICAgICAgICAgIjAuMDAwNDMyLCAwLjAwMDQzNywgMC4wMDA0NDMsIDAuMDAwNDQ0LCAwLjAwMDQ0NCwgMC4wMDA0NDUsIDAuMDAwNDQ0IiwgXAotICAgICAgICAgICIwLjAwMDQyOCwgMC4wMDA0MzQsIDAuMDAwNDQyLCAwLjAwMDQ0NCwgMC4wMDA0NDUsIDAuMDAwNDQ1LCAwLjAwMDQ0NSIsIFwKLSAgICAgICAgICAiMC4wMDA0MjQsIDAuMDAwNDMxLCAwLjAwMDQ0MSwgMC4wMDA0NDMsIDAuMDAwNDQ0LCAwLjAwMDQ0NSwgMC4wMDA0NDUiLCBcCi0gICAgICAgICAgIjAuMDAwNDIsIDAuMDAwNDI4LCAwLjAwMDQ0LCAwLjAwMDQ0MiwgMC4wMDA0NDQsIDAuMDAwNDQ1LCAwLjAwMDQ0NSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkQiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTcyMiwgMC4wMDE3MjMsIDAuMDAxNzIzLCAwLjAwMTcyNCwgMC4wMDE3MjMsIDAuMDAxNzIyLCAwLjAwMTY3OCIsIFwKLSAgICAgICAgICAiMC4wMDE3MTUsIDAuMDAxNzE4LCAwLjAwMTcyMiwgMC4wMDE3MjIsIDAuMDAxNzIzLCAwLjAwMTcyMSwgMC4wMDE2NjkiLCBcCi0gICAgICAgICAgIjAuMDAxNzA4LCAwLjAwMTcxMywgMC4wMDE3MiwgMC4wMDE3MjMsIDAuMDAxNzIyLCAwLjAwMTcyLCAwLjAwMTY3MiIsIFwKLSAgICAgICAgICAiMC4wMDE3MDIsIDAuMDAxNzA4LCAwLjAwMTcxOCwgMC4wMDE3MiwgMC4wMDE3MjMsIDAuMDAxNzE5LCAwLjAwMTY3NSIsIFwKLSAgICAgICAgICAiMC4wMDE2OTgsIDAuMDAxNzA0LCAwLjAwMTcxNiwgMC4wMDE3MTksIDAuMDAxNzIsIDAuMDAxNzIsIDAuMDAxNjY2IiwgXAotICAgICAgICAgICIwLjAwMTY5MSwgMC4wMDE2OTksIDAuMDAxNzEzLCAwLjAwMTcxNywgMC4wMDE3MTksIDAuMDAxNzE4LCAwLjAwMTY2NCIsIFwKLSAgICAgICAgICAiMC4wMDE2ODcsIDAuMDAxNjk2LCAwLjAwMTcxLCAwLjAwMTcxNSwgMC4wMDE3MTgsIDAuMDAxNzE4LCAwLjAwMTY2NyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDA4NiwgMC4wMDAwODcsIDAuMDAwMDg4LCAwLjAwMDA4OSwgMC4wMDAwODksIDAuMDAwMDg5LCAwLjAwMDA4OSIsIFwKLSAgICAgICAgICAiMC4wMDAxLCAwLjAwMDEwNCwgMC4wMDAxMDksIDAuMDAwMTA5LCAwLjAwMDExLCAwLjAwMDExLCAwLjAwMDExMSIsIFwKLSAgICAgICAgICAiMC4wMDAxLCAwLjAwMDEwNiwgMC4wMDAxMTUsIDAuMDAwMTE3LCAwLjAwMDExOCwgMC4wMDAxMTksIDAuMDAwMTE5IiwgXAotICAgICAgICAgICIwLjAwMDA5NiwgMC4wMDAxMDQsIDAuMDAwMTE1LCAwLjAwMDExOCwgMC4wMDAxMiwgMC4wMDAxMjIsIDAuMDAwMTIyIiwgXAotICAgICAgICAgICIwLjAwMDA5MSwgMC4wMDAxMDEsIDAuMDAwMTE1LCAwLjAwMDExOCwgMC4wMDAxMjEsIDAuMDAwMTIzLCAwLjAwMDEyMyIsIFwKLSAgICAgICAgICAiMC4wMDAwODQsIDAuMDAwMDk2LCAwLjAwMDExNCwgMC4wMDAxMTgsIDAuMDAwMTE5LCAwLjAwMDEyMSwgMC4wMDAxMjEiLCBcCi0gICAgICAgICAgIjAuMDAwMDc5LCAwLjAwMDA5MiwgMC4wMDAxMTIsIDAuMDAwMTE3LCAwLjAwMDEyLCAwLjAwMDEyMSwgMC4wMDAxMjEiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IE5PUjRYTCAqCi0gKiAtLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKE5PUjRYTCkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjA0MjU1NTE7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDU1NTgwMzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA1NTE0NjU7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNTU1ODAzOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDE0MiwgMC4wMDAxNDcsIDAuMDAwMTQ5LCAwLjAwMDE1MSwgMC4wMDAxNTIsIDAuMDAwMTUzLCAwLjAwMDE1NCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDI5LCAwLjAwMDI5LCAwLjAwMDI5LCAwLjAwMDI5LCAwLjAwMDI5LCAwLjAwMDI5LCAwLjAwMDI5Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA1Nzc4MjQ7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNTc0MDEzOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDU3NzgyNDsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxNDIsIDAuMDAwMTQ2LCAwLjAwMDE0OSwgMC4wMDAxNTEsIDAuMDAwMTUzLCAwLjAwMDE1NCwgMC4wMDAxNTUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyMDcsIDAuMDAwMjA3LCAwLjAwMDIwOCwgMC4wMDAyMDcsIDAuMDAwMjA3LCAwLjAwMDIwNywgMC4wMDAyMDciKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEMpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDU4NzMxNDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA1ODQ0Mjk7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNTg3MzE0OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDE0NSwgMC4wMDAxNTIsIDAuMDAwMTU2LCAwLjAwMDE1NywgMC4wMDAxNTgsIDAuMDAwMTU5LCAwLjAwMDE1OSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDE3LCAwLjAwMDE3LCAwLjAwMDE3LCAwLjAwMDE3LCAwLjAwMDE3LCAwLjAwMDE3LCAwLjAwMDE3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihEKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA1ODc3ODsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA1ODc3ODsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA1ODc3NTU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMDUsIDAuMDAwMDUsIDAuMDAwMDUsIDAuMDAwMDUsIDAuMDAwMDUsIDAuMDAwMDUsIDAuMDAwMDUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyMTUsIDAuMDAwMjE1LCAwLjAwMDIxNSwgMC4wMDAyMTUsIDAuMDAwMjE1LCAwLjAwMDIxNSwgMC4wMDAyMTUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4wMjE1OTY7Ci0gICAgZnVuY3Rpb24gOiAiKCEoKChBK0IpK0MpK0QpKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuNjI4NDM1LCAwLjczNDUxNywgMS42ODY3OSwgMy4yNzMyNiwgNC44NTk0MywgOC41NjA3NywgMTAuNjc1OCIsIFwKLSAgICAgICAgICAiMC42NDAzMDYsIDAuNzQ2MDUxLCAxLjY5ODg0LCAzLjI4NTA2LCA0Ljg3MTI3LCA4LjU3MjQ0LCAxMC42ODc0IiwgXAotICAgICAgICAgICIwLjY1MjgxMiwgMC43NTg4MzEsIDEuNzEyMDEsIDMuMjk3OCwgNC44ODQxMiwgOC41ODU0LCAxMC43MDA0IiwgXAotICAgICAgICAgICIwLjY2NDgxMywgMC43NzA0OTMsIDEuNzIyOTksIDMuMzA5NjEsIDQuODk2MDksIDguNTk3MjQsIDEwLjcxMjIiLCBcCi0gICAgICAgICAgIjAuNjc2MDk0LCAwLjc4MTY0NCwgMS43MzQ1LCAzLjMyMTU2LCA0LjkwNzI4LCA4LjYwODU5LCAxMC43MjM2IiwgXAotICAgICAgICAgICIwLjY5MjU5NCwgMC43OTg1MywgMS43NTE5NSwgMy4zMzg0NSwgNC45MjQyMywgOC42MjU1LCAxMC43NDA1IiwgXAotICAgICAgICAgICIwLjcwNjcsIDAuODEyNTM5LCAxLjc2NTEzLCAzLjM1MjAxLCA0LjkzODQ4LCA4LjYzOTYzLCAxMC43NTQ3Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIxLjEyNzU5LCAxLjMyOTM4LCAzLjE0MjY4LCA2LjE3MDE0LCA5LjE4MzI2LCAxNi4yMjE2LCAyMC4yNDQ4IiwgXAotICAgICAgICAgICIxLjEyODg3LCAxLjMyOTM2LCAzLjE0NTc2LCA2LjE2NjM2LCA5LjE4MzU2LCAxNi4yMjE2LCAyMC4yNDQ4IiwgXAotICAgICAgICAgICIxLjEyNzI2LCAxLjMyOTMxLCAzLjE0OTM0LCA2LjE3MDA3LCA5LjE4MzM2LCAxNi4yMjE2LCAyMC4yNDQ4IiwgXAotICAgICAgICAgICIxLjEyNjAyLCAxLjMyODU5LCAzLjE0NDkyLCA2LjE3MDc4LCA5LjE4MjMsIDE2LjIyMTYsIDIwLjI0MzciLCBcCi0gICAgICAgICAgIjEuMTI4ODQsIDEuMzI4OTgsIDMuMTQ1MjIsIDYuMTYyODgsIDkuMTgzMzcsIDE2LjIyMTYsIDIwLjI0NDgiLCBcCi0gICAgICAgICAgIjEuMTI3MzksIDEuMzI4NTYsIDMuMTQ5MjQsIDYuMTYyNTcsIDkuMTgyMjksIDE2LjIyMTYsIDIwLjI0NDgiLCBcCi0gICAgICAgICAgIjEuMTI3NCwgMS4zMjkwNywgMy4xNDQ2NSwgNi4xNzAyMSwgOS4xODE5MywgMTYuMjIwNSwgMjAuMjQ0OCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xODM3MDksIDAuMjEzNzc0LCAwLjQ4MjUyMywgMC45Mjg4MDQsIDEuMzc0NjQsIDIuNDE0ODUsIDMuMDA4NTgiLCBcCi0gICAgICAgICAgIjAuMTk1NTMzLCAwLjIyNTU2LCAwLjQ5NDM5OCwgMC45NDA3OTUsIDEuMzg2ODMsIDIuNDI3MTUsIDMuMDIwOTIiLCBcCi0gICAgICAgICAgIjAuMjEwMTMyLCAwLjI0MDIwNiwgMC41MDY2MDUsIDAuOTUzMDkzLCAxLjM5OTIxLCAyLjQzOTMzLCAzLjAzMzEyIiwgXAotICAgICAgICAgICIwLjIyNTUxOCwgMC4yNTUwNjEsIDAuNTIzODQ3LCAwLjk2NTcsIDEuNDExNTYsIDIuNDUyMTYsIDMuMDQ2MjYiLCBcCi0gICAgICAgICAgIjAuMjQwMjM1LCAwLjI3MDk2NiwgMC41Mzg3MjgsIDAuOTc5NTk5LCAxLjQyNTY1LCAyLjQ2NTc4LCAzLjA1OTUyIiwgXAotICAgICAgICAgICIwLjI2NTI4NSwgMC4yOTUyNjQsIDAuNTYyNjU3LCAxLjAwOTA2LCAxLjQ0NzQ5LCAyLjQ4Nzk0LCAzLjA4MTM5IiwgXAotICAgICAgICAgICIwLjI4Njc1NywgMC4zMTY2ODcsIDAuNTgzNTQ5LCAxLjAyOTkyLCAxLjQ3MzU3LCAyLjUwNjgxLCAzLjEwMDE5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjM0MDgxOCwgMC4zOTkzODYsIDAuOTI3ODg2LCAxLjgwODk3LCAyLjY4OTcsIDQuNzQ0MzEsIDUuOTE4MjMiLCBcCi0gICAgICAgICAgIjAuMzQwNjg2LCAwLjM5OTQ1NCwgMC45MjgyMjcsIDEuODA5NDksIDIuNjkwNTIsIDQuNzQ0ODYsIDUuOTE4ODkiLCBcCi0gICAgICAgICAgIjAuMzQwNDg5LCAwLjM5OTMsIDAuOTI4MTYsIDEuODA5NTEsIDIuNjg5NjcsIDQuNzQ0OTEsIDUuOTE5ODEiLCBcCi0gICAgICAgICAgIjAuMzQwNTE3LCAwLjM5OTM0OCwgMC45MjgwMTgsIDEuODA5MzYsIDIuNjg5ODIsIDQuNzQ1NDMsIDUuOTE4NjMiLCBcCi0gICAgICAgICAgIjAuMzQwNTg5LCAwLjM5OTE5NywgMC45MjgyNDIsIDEuODA5MzksIDIuNjkwMjIsIDQuNzQ0OSwgNS45MTk3OSIsIFwKLSAgICAgICAgICAiMC4zNDI5MTYsIDAuNDAwMjg3LCAwLjkyODE5OSwgMS44MDk1MSwgMi42OTA0NCwgNC43NDQ3MSwgNS45MTk3NyIsIFwKLSAgICAgICAgICAiMC4zNDY5MTIsIDAuNDAzMzIxLCAwLjkyNzc4NiwgMS44MDg5NiwgMi42ODk2MSwgNC43NDQ3NiwgNS45MTgyNCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC42MjIxMTYsIDAuNzI3ODMyLCAxLjY4MDUzLCAzLjI2Njg2LCA0Ljg1Mjg1LCA4LjU1NDA3LCAxMC42NjkxIiwgXAotICAgICAgICAgICIwLjYzMjQsIDAuNzM4NDIzLCAxLjY5MTU0LCAzLjI3NzI4LCA0Ljg2Mzc0LCA4LjU2NDg4LCAxMC42Nzk4IiwgXAotICAgICAgICAgICIwLjY0NDcyNywgMC43NTA4NzIsIDEuNzAzNDQsIDMuMjg5NzQsIDQuODc2MzMsIDguNTc3MzUsIDEwLjY5MjQiLCBcCi0gICAgICAgICAgIjAuNjU2NzMyLCAwLjc2MjM5OCwgMS43MTUwNCwgMy4zMDIyMiwgNC44ODgwMiwgOC41ODkyNCwgMTAuNzA0MiIsIFwKLSAgICAgICAgICAiMC42Njc2NDEsIDAuNzczNTc1LCAxLjcyNjY2LCAzLjMxMjg1LCA0Ljg5OTQzLCA4LjYwMDUsIDEwLjcxNTUiLCBcCi0gICAgICAgICAgIjAuNjg0OTM5LCAwLjc5MDc1MSwgMS43NDM4MywgMy4zMzA3MiwgNC45MTY0NiwgOC42MTc3NywgMTAuNzMyOCIsIFwKLSAgICAgICAgICAiMC42OTk0NTIsIDAuODA1MzUxLCAxLjc1Nzg2LCAzLjM0NSwgNC45MzEzNywgOC42MzI0NiwgMTAuNzQ3NSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMS4xMjg5MywgMS4zMjkzOSwgMy4xNDU3MiwgNi4xNjUwNywgOS4xODMzNywgMTYuMjIxNiwgMjAuMjQ0OCIsIFwKLSAgICAgICAgICAiMS4xMjcyNiwgMS4zMjkzNSwgMy4xNDExMSwgNi4xNzAxLCA5LjE4MzYyLCAxNi4yMjE3LCAyMC4yNDQ4IiwgXAotICAgICAgICAgICIxLjEyNzQzLCAxLjMyOTQ1LCAzLjE0MjMyLCA2LjE3MDM1LCA5LjE4MzYsIDE2LjIyMTcsIDIwLjI0NDEiLCBcCi0gICAgICAgICAgIjEuMTI3NiwgMS4zMjg5MywgMy4xNDQ5NywgNi4xNjMzMSwgOS4xODE3NiwgMTYuMjIxNiwgMjAuMjQ0OCIsIFwKLSAgICAgICAgICAiMS4xMjc0NiwgMS4zMjg5OSwgMy4xNDU1NywgNi4xNzA1LCA5LjE4MTUyLCAxNi4yMjE2LCAyMC4yNDM4IiwgXAotICAgICAgICAgICIxLjEyNzQ3LCAxLjMyOTA0LCAzLjE0NTU0LCA2LjE2MjgsIDkuMTgzMzgsIDE2LjIyMTYsIDIwLjI0NDgiLCBcCi0gICAgICAgICAgIjEuMTI2MzUsIDEuMzI5MTIsIDMuMTQ0NjgsIDYuMTY0OTIsIDkuMTgxNjcsIDE2LjIyMTYsIDIwLjI0NDQiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTc5NTU1LCAwLjIwOTQ2NSwgMC40Nzc0NzUsIDAuOTIzNDE1LCAxLjM2OTEsIDIuNDA4NzQsIDMuMDAzMDciLCBcCi0gICAgICAgICAgIjAuMTkxNjYyLCAwLjIyMTU2NSwgMC40ODk2MzcsIDAuOTM1ODA2LCAxLjM4MTcxLCAyLjQyMTY3LCAzLjAxNDgzIiwgXAotICAgICAgICAgICIwLjIwNjcwNywgMC4yMzY1OTcsIDAuNTA0Njc0LCAwLjk1MDkzNSwgMS4zOTYxOCwgMi40MzcwOCwgMy4wMzA2OSIsIFwKLSAgICAgICAgICAiMC4yMjE1NDQsIDAuMjUxMzI2LCAwLjUxOTE5NywgMC45NjU0NTEsIDEuNDExMjYsIDIuNDUxNTcsIDMuMDQ1MjIiLCBcCi0gICAgICAgICAgIjAuMjM2OTY5LCAwLjI2NjgsIDAuNTM0OTMyLCAwLjk4MTE2MywgMS40MjcwNywgMi40NjY4NywgMy4wNjA1MSIsIFwKLSAgICAgICAgICAiMC4yNjEyOTMsIDAuMjkxMTA3LCAwLjU1Nzg3OCwgMS4wMDM4NCwgMS40NDE1MywgMi40ODE0MSwgMy4wNzQ5NCIsIFwKLSAgICAgICAgICAiMC4yODI3MzgsIDAuMzEyNDgyLCAwLjU3ODczMSwgMS4wMjQ3MywgMS40NjgxMiwgMi41MDA1LCAzLjA5NDI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMzNDg3OSwgMC4zOTM2NTksIDAuOTIyMjU4LCAxLjgwMjg3LCAyLjY4NDMxLCA0LjczNzkxLCA1LjkxMzg4IiwgXAotICAgICAgICAgICIwLjMzNDc3MSwgMC4zOTM2MTcsIDAuOTIyNTUyLCAxLjgwMzM3LCAyLjY4NDA3LCA0LjczODgsIDUuOTExMDciLCBcCi0gICAgICAgICAgIjAuMzM0ODE3LCAwLjM5MzQ5LCAwLjkyMjMyMiwgMS44MDM0LCAyLjY4MzE3LCA0LjczOTQ2LCA1LjkxMjkzIiwgXAotICAgICAgICAgICIwLjMzNDgwOSwgMC4zOTM1MTEsIDAuOTIyMjQyLCAxLjgwMzE5LCAyLjY4NDM0LCA0LjczOTMsIDUuOTEyOTIiLCBcCi0gICAgICAgICAgIjAuMzM1MDAxLCAwLjM5MzU3MSwgMC45MjIxNzIsIDEuODAzMjMsIDIuNjgzOTIsIDQuNzM4NzcsIDUuOTEyMTIiLCBcCi0gICAgICAgICAgIjAuMzM3NjQ0LCAwLjM5NDc3MSwgMC45MjI2MTcsIDEuODAzMzYsIDIuNjgzOTMsIDQuNzM4NTcsIDUuOTEzNzgiLCBcCi0gICAgICAgICAgIjAuMzQxNjU2LCAwLjM5ODA2NCwgMC45MjIzMDEsIDEuODAzMzEsIDIuNjgzODIsIDQuNzM4OSwgNS45MTI5MSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC42MDY0MzcsIDAuNzEyMjI5LCAxLjY2NDc1LCAzLjI1MTgzLCA0LjgzNzUzLCA4LjUzODgsIDEwLjY1MzgiLCBcCi0gICAgICAgICAgIjAuNjE2Njk1LCAwLjcyMjE1NywgMS42NzUzNCwgMy4yNjEzLCA0Ljg0Nzc1LCA4LjU0ODgsIDEwLjY2MzgiLCBcCi0gICAgICAgICAgIjAuNjI4MzQ1LCAwLjczNDU2OSwgMS42ODY3NSwgMy4yNzMyOCwgNC44NTk3MiwgOC41NjA5MywgMTAuNjc1OSIsIFwKLSAgICAgICAgICAiMC42Mzk4ODcsIDAuNzQ1NjQzLCAxLjY5ODM2LCAzLjI4NTQ3LCA0Ljg3MTE5LCA4LjU3MjQ0LCAxMC42ODc1IiwgXAotICAgICAgICAgICIwLjY1MTMyLCAwLjc1NzE3MiwgMS43MTA2NiwgMy4yOTY0OCwgNC44ODMwNiwgOC41ODQxMywgMTAuNjk5MiIsIFwKLSAgICAgICAgICAiMC42NjkzMDQsIDAuNzc1Mjg1LCAxLjcyODEsIDMuMzE0NiwgNC45MDEwOSwgOC42MDIzLCAxMC43MTczIiwgXAotICAgICAgICAgICIwLjY4NTEzOCwgMC43OTA5NSwgMS43NDQwNCwgMy4zMzA1NSwgNC45MTcwMywgOC42MTgyMiwgMTAuNzMzMiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMS4xMjczNCwgMS4zMjkyLCAzLjE0NTA0LCA2LjE2Mzg1LCA5LjE4MzYxLCAxNi4yMjE3LCAyMC4yNDQ4IiwgXAotICAgICAgICAgICIxLjEyODg0LCAxLjMyODk3LCAzLjE0NTkxLCA2LjE2OTI2LCA5LjE4MTYsIDE2LjIyMTYsIDIwLjI0NDgiLCBcCi0gICAgICAgICAgIjEuMTI3MjYsIDEuMzMwOSwgMy4xNDQ5NiwgNi4xNjY4NSwgOS4xODE4NiwgMTYuMjIxNiwgMjAuMjQ0OCIsIFwKLSAgICAgICAgICAiMS4xMjc0NiwgMS4zMjkwMSwgMy4xNDUxLCA2LjE2Mjg0LCA5LjE4MzM2LCAxNi4yMjEsIDIwLjI0NDgiLCBcCi0gICAgICAgICAgIjEuMTI3MzUsIDEuMzI5MDYsIDMuMTQxODcsIDYuMTcwNTMsIDkuMTgxNTcsIDE2LjIyMTcsIDIwLjI0NDkiLCBcCi0gICAgICAgICAgIjEuMTI3NTIsIDEuMzI5MTYsIDMuMTQyNTMsIDYuMTcwMzksIDkuMTgzMzIsIDE2LjIyMTYsIDIwLjI0NDgiLCBcCi0gICAgICAgICAgIjEuMTI2NzcsIDEuMzI5MDgsIDMuMTQ1MjcsIDYuMTcwODIsIDkuMTgyMjQsIDE2LjIyMTYsIDIwLjI0NDQiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTc0Mzk2LCAwLjIwNDE3NCwgMC40NzE3MjMsIDAuOTE3Mzc0LCAxLjM2Mjk1LCAyLjQwMjUsIDIuOTk2NjMiLCBcCi0gICAgICAgICAgIjAuMTg2NTIyLCAwLjIxNjI4NSwgMC40ODM4NjgsIDAuOTI5ODM0LCAxLjM3NTYzLCAyLjQxNTY5LCAzLjAwOTM2IiwgXAotICAgICAgICAgICIwLjIwMTgwNywgMC4yMzE2MDUsIDAuNDk5MjE0LCAwLjk0NTE1NiwgMS4zOTExLCAyLjQzMTEsIDMuMDI0NzUiLCBcCi0gICAgICAgICAgIjAuMjE3MDE0LCAwLjI0NjQ1OSwgMC41MTQwMDQsIDAuOTU5OTUxLCAxLjQwNTc3LCAyLjQ0NTY3LCAzLjAzOTMyIiwgXAotICAgICAgICAgICIwLjIzMjMyNiwgMC4yNjIsIDAuNTI5NTc5LCAwLjk3NTI2MiwgMS40MjExNiwgMi40NjA4MywgMy4wNTQ1NyIsIFwKLSAgICAgICAgICAiMC4yNTY0NiwgMC4yODYxOTQsIDAuNTUyNTgzLCAwLjk5ODMxOCwgMS40MzU3OCwgMi40NzU2OCwgMy4wNjg5NCIsIFwKLSAgICAgICAgICAiMC4yNzc5NDIsIDAuMzA3NTc4LCAwLjU3MzM0MywgMS4wMTkwNywgMS40NjIzNCwgMi40OTQ0NywgMy4wODgzMyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMjg4OTMsIDAuMzg3NzE4LCAwLjkxNjE3MSwgMS43OTY1MywgMi42NzY4OCwgNC43MzIyNywgNS45MTE1MiIsIFwKLSAgICAgICAgICAiMC4zMjkwMTgsIDAuMzg3OCwgMC45MTYzMjQsIDEuNzk3MDMsIDIuNjc4LCA0LjczMzQzLCA1LjkwNzU1IiwgXAotICAgICAgICAgICIwLjMyODg5NCwgMC4zODc3NjksIDAuOTE2MzA2LCAxLjc5Njk2LCAyLjY3NzY1LCA0LjczMzkxLCA1LjkwNzI4IiwgXAotICAgICAgICAgICIwLjMyODk4MywgMC4zODc3MzYsIDAuOTE2Mjk3LCAxLjc5NzAzLCAyLjY3ODI5LCA0LjczNCwgNS45MDc0NSIsIFwKLSAgICAgICAgICAiMC4zMjkxOTgsIDAuMzg3NzM4LCAwLjkxNjI5NiwgMS43OTcyNiwgMi42Nzc1OCwgNC43MzMwMiwgNS45MDg1NSIsIFwKLSAgICAgICAgICAiMC4zMzIxMTQsIDAuMzg5MTg3LCAwLjkxNjM2MSwgMS43OTY5MywgMi42Nzc1NiwgNC43MzM4LCA1LjkxMTU3IiwgXAotICAgICAgICAgICIwLjMzNjUyMywgMC4zOTI3NzgsIDAuOTE2Mjg3LCAxLjc5NzAzLCAyLjY3NzgyLCA0LjczMiwgNS45MDc0NiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJEIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC41ODE4MDgsIDAuNjg4MDExLCAxLjY0MDgyLCAzLjIyNjgxLCA0LjgxMjg3LCA4LjUxNDA3LCAxMC42MjkyIiwgXAotICAgICAgICAgICIwLjU5MTI3NCwgMC42OTY4ODksIDEuNjQ5MzksIDMuMjM2LCA0LjgyMjM3LCA4LjUyMzYyLCAxMC42Mzg2IiwgXAotICAgICAgICAgICIwLjYwMjYwOCwgMC43MDg0MzUsIDEuNjYxMTEsIDMuMjQ3NzMsIDQuODM0MSwgOC41MzUyNywgMTAuNjUwMyIsIFwKLSAgICAgICAgICAiMC42MTM5OTMsIDAuNzIwMDE3LCAxLjY3MzIzLCAzLjI1OTg2LCA0Ljg0NTY1LCA4LjU0Njk3LCAxMC42NjIiLCBcCi0gICAgICAgICAgIjAuNjI1ODIzLCAwLjczMTc2NSwgMS42ODQ2NywgMy4yNzA4NiwgNC44NTczMywgOC41NTg1OCwgMTAuNjczNiIsIFwKLSAgICAgICAgICAiMC42NDM5MiwgMC43NDk3NCwgMS43MDM0MSwgMy4yODk4OCwgNC44NzU4NCwgOC41NzcwOCwgMTAuNjkyMSIsIFwKLSAgICAgICAgICAiMC42NTk4MjIsIDAuNzY1ODEzLCAxLjcxODQ5LCAzLjMwNTY2LCA0Ljg5MTgyLCA4LjU5MzIzLCAxMC43MDgzIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIxLjEyNzM2LCAxLjMzMDk2LCAzLjE0OTIyLCA2LjE2NTk2LCA5LjE4MzI1LCAxNi4yMjE2LCAyMC4yNDQ4IiwgXAotICAgICAgICAgICIxLjEyNzY1LCAxLjMyOTA4LCAzLjE0NDUsIDYuMTcwNDMsIDkuMTgzNTIsIDE2LjIyMTcsIDIwLjI0NDgiLCBcCi0gICAgICAgICAgIjEuMTI3NDUsIDEuMzI4MTEsIDMuMTQ1MDYsIDYuMTcwODgsIDkuMTgyMzMsIDE2LjIyMTYsIDIwLjI0NDQiLCBcCi0gICAgICAgICAgIjEuMTI3MjgsIDEuMzI5MTYsIDMuMTQ1ODEsIDYuMTYyMjEsIDkuMTgzNDIsIDE2LjIyMTYsIDIwLjI0NDgiLCBcCi0gICAgICAgICAgIjEuMTI2MDIsIDEuMzI3NywgMy4xNDU2NCwgNi4xNjY5NiwgOS4xODE4NCwgMTYuMjIxNiwgMjAuMjQ0OCIsIFwKLSAgICAgICAgICAiMS4xMjYzNywgMS4zMzEzNiwgMy4xNDkyLCA2LjE3MTMsIDkuMTgyMjcsIDE2LjIyMTYsIDIwLjI0NDQiLCBcCi0gICAgICAgICAgIjEuMTI5MTYsIDEuMzMwNDksIDMuMTQ4MjUsIDYuMTcwOSwgOS4xODI5MiwgMTYuMjIxMiwgMjAuMjQ0OCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNjg1ODgsIDAuMTk4MjksIDAuNDY1NjgxLCAwLjkxMTE0NywgMS4zNTY2OCwgMi4zOTY0NiwgMi45OTAyNCIsIFwKLSAgICAgICAgICAiMC4xODA5MTYsIDAuMjEwNjM2LCAwLjQ3ODAyNSwgMC45MjM0ODEsIDEuMzY5NzMsIDIuNDA4NzEsIDMuMDAyNyIsIFwKLSAgICAgICAgICAiMC4xOTU3MjYsIDAuMjI1NDIyLCAwLjQ5MDExNiwgMC45MzYxNDIsIDEuMzgyMywgMi40MjIwNSwgMy4wMTUyNSIsIFwKLSAgICAgICAgICAiMC4yMTEzMjgsIDAuMjQwMzczLCAwLjUwNzg0MiwgMC45NDg5MjcsIDEuMzk0NTEsIDIuNDM1MDMsIDMuMDI4MDQiLCBcCi0gICAgICAgICAgIjAuMjI1ODU1LCAwLjI1NjA4MywgMC41MjI3ODYsIDAuOTYyODEzLCAxLjQwODIyLCAyLjQ0ODA3LCAzLjA0MjA2IiwgXAotICAgICAgICAgICIwLjI1MDk0MywgMC4yODA1NzUsIDAuNTQ2NjY1LCAwLjk5MjIxNiwgMS40MzA4MiwgMi40NzA1MywgMy4wNjM3MSIsIFwKLSAgICAgICAgICAiMC4yNzI0LCAwLjMwMjAxOSwgMC41Njc1OSwgMS4wMTMyNSwgMS40NTY2LCAyLjQ4OTMyLCAzLjA4MjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzI0MjQ0LCAwLjM4MzIzMSwgMC45MTExMjksIDEuNzkyNDksIDIuNjczNzUsIDQuNzMyODYsIDUuOTA2MDkiLCBcCi0gICAgICAgICAgIjAuMzIzOTYsIDAuMzgyNzg3LCAwLjkxMzAxLCAxLjc5ODUzLCAyLjY3NDI1LCA0LjczNjEsIDUuOTA2MTQiLCBcCi0gICAgICAgICAgIjAuMzI0MjYzLCAwLjM4MjM3NCwgMC45MTE3MjQsIDEuNzk0OTYsIDIuNjc1MywgNC43MzIzNiwgNS45MDU1OSIsIFwKLSAgICAgICAgICAiMC4zMjQyNTYsIDAuMzgyNTA3LCAwLjkxMjg1NCwgMS43OTg2MywgMi42ODI5LCA0LjczNDU2LCA1LjkwMzc3IiwgXAotICAgICAgICAgICIwLjMyNDI4NywgMC4zODIxODUsIDAuOTEyNzIsIDEuNzk3MTMsIDIuNjc1NTEsIDQuNzM0MjgsIDUuOTA1MjgiLCBcCi0gICAgICAgICAgIjAuMzI3NzQ0LCAwLjM4NTA2NiwgMC45MTI4ODYsIDEuNzk5MjEsIDIuNjc1NzYsIDQuNzMzNDMsIDUuOTA1ODQiLCBcCi0gICAgICAgICAgIjAuMzMyMzgxLCAwLjM4NzU3NywgMC45MTI4MzIsIDEuNzk2MzcsIDIuNjczNTUsIDQuNzMzNzgsIDUuOTA1ODQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDE2NDMsIDAuMDAxNjQ0LCAwLjAwMTY0NCwgMC4wMDE2NDMsIDAuMDAxNjQzLCAwLjAwMTUxNCwgMC4wMDAzMDkiLCBcCi0gICAgICAgICAgIjAuMDAxNjQyLCAwLjAwMTY0MiwgMC4wMDE2NDMsIDAuMDAxNjQyLCAwLjAwMTY0MywgMC4wMDE1MTQsIDAuMDAwMzA1IiwgXAotICAgICAgICAgICIwLjAwMTY0MSwgMC4wMDE2NDIsIDAuMDAxNjQ0LCAwLjAwMTY0MywgMC4wMDE2NDQsIDAuMDAxNTEzLCAwLjAwMDMwMSIsIFwKLSAgICAgICAgICAiMC4wMDE2NCwgMC4wMDE2NCwgMC4wMDE2NDIsIDAuMDAxNjQzLCAwLjAwMTY0NSwgMC4wMDE1MTIsIDAuMDAwMzI1IiwgXAotICAgICAgICAgICIwLjAwMTYzOCwgMC4wMDE2MzksIDAuMDAxNjQyLCAwLjAwMTY0MywgMC4wMDE2NDMsIDAuMDAxNTExLCAwLjAwMDI5MSIsIFwKLSAgICAgICAgICAiMC4wMDE2MzYsIDAuMDAxNjM3LCAwLjAwMTY0MSwgMC4wMDE2NDIsIDAuMDAxNjQzLCAwLjAwMTUxLCAwLjAwMDI4NCIsIFwKLSAgICAgICAgICAiMC4wMDE2MzUsIDAuMDAxNjM2LCAwLjAwMTY0LCAwLjAwMTY0MiwgMC4wMDE2NDIsIDAuMDAxNTA5LCAwLjAwMDI3OCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDY1NiwgMC4wMDA2NTYsIDAuMDAwNjU2LCAwLjAwMDY1NSwgMC4wMDA2NTUsIDAuMDAwNjUzLCAwLjAwMDY1MiIsIFwKLSAgICAgICAgICAiMC4wMDA2NDUsIDAuMDAwNjQ0LCAwLjAwMDY0NCwgMC4wMDA2NDMsIDAuMDAwNjQzLCAwLjAwMDY0MiwgMC4wMDA2NDEiLCBcCi0gICAgICAgICAgIjAuMDAwNjQsIDAuMDAwNjQsIDAuMDAwNjM5LCAwLjAwMDYzOCwgMC4wMDA2MzgsIDAuMDAwNjM2LCAwLjAwMDYzNSIsIFwKLSAgICAgICAgICAiMC4wMDA2MzgsIDAuMDAwNjM4LCAwLjAwMDYzOCwgMC4wMDA2MzYsIDAuMDAwNjM2LCAwLjAwMDYzNCwgMC4wMDA2MzQiLCBcCi0gICAgICAgICAgIjAuMDAwNjM0LCAwLjAwMDYzNywgMC4wMDA2MzcsIDAuMDAwNjM2LCAwLjAwMDYzNSwgMC4wMDA2MzQsIDAuMDAwNjMzIiwgXAotICAgICAgICAgICIwLjAwMDYzNSwgMC4wMDA2MzUsIDAuMDAwNjM2LCAwLjAwMDYzNiwgMC4wMDA2MzQsIDAuMDAwNjMzLCAwLjAwMDYzMiIsIFwKLSAgICAgICAgICAiMC4wMDA2MzQsIDAuMDAwNjM0LCAwLjAwMDYzNSwgMC4wMDA2MzUsIDAuMDAwNjM0LCAwLjAwMDYzMiwgMC4wMDA2MzEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDE1MDUsIDAuMDAxNTA1LCAwLjAwMTUwNSwgMC4wMDE1MDUsIDAuMDAxNTA1LCAwLjAwMTM5MiwgMC4wMDAxNzEiLCBcCi0gICAgICAgICAgIjAuMDAxNTA0LCAwLjAwMTUwNCwgMC4wMDE1MDUsIDAuMDAxNTA0LCAwLjAwMTUwNSwgMC4wMDEzNzUsIDAuMDAwMTY4IiwgXAotICAgICAgICAgICIwLjAwMTUwMiwgMC4wMDE1MDMsIDAuMDAxNTA0LCAwLjAwMTUwNSwgMC4wMDE1MDUsIDAuMDAxMzc0LCAwLjAwMDExNiIsIFwKLSAgICAgICAgICAiMC4wMDE1MDEsIDAuMDAxNTAxLCAwLjAwMTUwNCwgMC4wMDE1MDQsIDAuMDAxNTA0LCAwLjAwMTM3NCwgMC4wMDAxNTgiLCBcCi0gICAgICAgICAgIjAuMDAxNDk5LCAwLjAwMTUsIDAuMDAxNTAzLCAwLjAwMTUwNCwgMC4wMDE1MDQsIDAuMDAxMzczLCAwLjAwMDIwMiIsIFwKLSAgICAgICAgICAiMC4wMDE0OTgsIDAuMDAxNDk5LCAwLjAwMTUwMiwgMC4wMDE1MDQsIDAuMDAxNTA1LCAwLjAwMTM3MiwgMC4wMDAxNDciLCBcCi0gICAgICAgICAgIjAuMDAxNDk2LCAwLjAwMTQ5OCwgMC4wMDE1MDIsIDAuMDAxNTAzLCAwLjAwMTUwNCwgMC4wMDEzNzEsIDAuMDAwMTQxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwNDczLCAwLjAwMDQ3MywgMC4wMDA0NzMsIDAuMDAwNDcyLCAwLjAwMDQ3MiwgMC4wMDA0NzEsIDAuMDAwNDciLCBcCi0gICAgICAgICAgIjAuMDAwNDY4LCAwLjAwMDQ2OCwgMC4wMDA0NjgsIDAuMDAwNDY4LCAwLjAwMDQ2NywgMC4wMDA0NjYsIDAuMDAwNDY2IiwgXAotICAgICAgICAgICIwLjAwMDQ2NSwgMC4wMDA0NjUsIDAuMDAwNDY1LCAwLjAwMDQ2NSwgMC4wMDA0NjUsIDAuMDAwNDY0LCAwLjAwMDQ2MyIsIFwKLSAgICAgICAgICAiMC4wMDA0NjMsIDAuMDAwNDYzLCAwLjAwMDQ2NCwgMC4wMDA0NjQsIDAuMDAwNDY0LCAwLjAwMDQ2MywgMC4wMDA0NjMiLCBcCi0gICAgICAgICAgIjAuMDAwNDYxLCAwLjAwMDQ2MiwgMC4wMDA0NjMsIDAuMDAwNDY0LCAwLjAwMDQ2MywgMC4wMDA0NjMsIDAuMDAwNDYyIiwgXAotICAgICAgICAgICIwLjAwMDQ2LCAwLjAwMDQ2LCAwLjAwMDQ2MiwgMC4wMDA0NjMsIDAuMDAwNDYyLCAwLjAwMDQ2MSwgMC4wMDA0NjEiLCBcCi0gICAgICAgICAgIjAuMDAwNDU5LCAwLjAwMDQ1OSwgMC4wMDA0NjEsIDAuMDAwNDYyLCAwLjAwMDQ2MiwgMC4wMDA0NjEsIDAuMDAwNDYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDEzNjIsIDAuMDAxMzYyLCAwLjAwMTM2MiwgMC4wMDEzNjMsIDAuMDAxMzYyLCAwLjAwMTI0OSwgMC4wMDAwMzEiLCBcCi0gICAgICAgICAgIjAuMDAxMzYxLCAwLjAwMTM2MSwgMC4wMDEzNjIsIDAuMDAxMzYyLCAwLjAwMTM2MiwgMC4wMDEyMzMsIDAuMDAwMDI3IiwgXAotICAgICAgICAgICIwLjAwMTM1OSwgMC4wMDEzNiwgMC4wMDEzNjEsIDAuMDAxMzYyLCAwLjAwMTM2MiwgMC4wMDEyMzIsIDAuMDAwMDIyIiwgXAotICAgICAgICAgICIwLjAwMTM1OCwgMC4wMDEzNTksIDAuMDAxMzYxLCAwLjAwMTM2MSwgMC4wMDEzNjMsIDAuMDAxMjQzLCAwLjAwMDAxOCIsIFwKLSAgICAgICAgICAiMC4wMDEzNTYsIDAuMDAxMzU3LCAwLjAwMTM2LCAwLjAwMTM2MSwgMC4wMDEzNiwgMC4wMDEyMywgMC4wMDAwMTIiLCBcCi0gICAgICAgICAgIjAuMDAxMzU1LCAwLjAwMTM1NiwgMC4wMDEzNTksIDAuMDAxMzYsIDAuMDAxMzYsIDAuMDAxMjI5LCAwLjAwMDAwNiIsIFwKLSAgICAgICAgICAiMC4wMDEzNTQsIDAuMDAxMzU1LCAwLjAwMTM1OSwgMC4wMDEzNiwgMC4wMDEzNjEsIDAuMDAxMjI4LCAwIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwMjcyLCAwLjAwMDI3MiwgMC4wMDAyNzIsIDAuMDAwMjcyLCAwLjAwMDI3MiwgMC4wMDAyNzEsIDAuMDAwMjcxIiwgXAotICAgICAgICAgICIwLjAwMDI3NiwgMC4wMDAyNzYsIDAuMDAwMjc3LCAwLjAwMDI3NywgMC4wMDAyNzYsIDAuMDAwMjc2LCAwLjAwMDI3NiIsIFwKLSAgICAgICAgICAiMC4wMDAyNzYsIDAuMDAwMjc2LCAwLjAwMDI3OCwgMC4wMDAyNzgsIDAuMDAwMjc4LCAwLjAwMDI3OCwgMC4wMDAyNzgiLCBcCi0gICAgICAgICAgIjAuMDAwMjc1LCAwLjAwMDI3NSwgMC4wMDAyNzgsIDAuMDAwMjc4LCAwLjAwMDI3OSwgMC4wMDAyNzgsIDAuMDAwMjc4IiwgXAotICAgICAgICAgICIwLjAwMDI3MywgMC4wMDAyNzUsIDAuMDAwMjc4LCAwLjAwMDI3OCwgMC4wMDAyNzksIDAuMDAwMjc5LCAwLjAwMDI3OCIsIFwKLSAgICAgICAgICAiMC4wMDAyNzIsIDAuMDAwMjczLCAwLjAwMDI3NywgMC4wMDAyNzksIDAuMDAwMjc5LCAwLjAwMDI3OSwgMC4wMDAyNzkiLCBcCi0gICAgICAgICAgIjAuMDAwMjcsIDAuMDAwMjcyLCAwLjAwMDI3NywgMC4wMDAyNzgsIDAuMDAwMjc5LCAwLjAwMDI3OSwgMC4wMDAyNzkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJEIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDEyMTksIDAuMDAxMjIsIDAuMDAxMjIsIDAuMDAxMjIsIDAuMDAxMjIxLCAwLjAwMTEwNywgMC4wMDAxMDkiLCBcCi0gICAgICAgICAgIjAuMDAxMjE3LCAwLjAwMTIxOCwgMC4wMDEyMTksIDAuMDAxMjE5LCAwLjAwMTIxOSwgMC4wMDExMDcsIDAuMDAwMTEzIiwgXAotICAgICAgICAgICIwLjAwMTIxNSwgMC4wMDEyMTYsIDAuMDAxMjE4LCAwLjAwMTIxOSwgMC4wMDEyMiwgMC4wMDEwOSwgMC4wMDAxMiIsIFwKLSAgICAgICAgICAiMC4wMDEyMTMsIDAuMDAxMjE0LCAwLjAwMTIxNywgMC4wMDEyMTgsIDAuMDAxMjE5LCAwLjAwMTA4OSwgMC4wMDAxMjIiLCBcCi0gICAgICAgICAgIjAuMDAxMjExLCAwLjAwMTIxMiwgMC4wMDEyMTYsIDAuMDAxMjE4LCAwLjAwMTIxOCwgMC4wMDEwODgsIDAuMDAwMTI3IiwgXAotICAgICAgICAgICIwLjAwMTIwOCwgMC4wMDEyMSwgMC4wMDEyMTUsIDAuMDAxMjE3LCAwLjAwMTIxOCwgMC4wMDEwODcsIDAuMDAwMTQ4IiwgXAotICAgICAgICAgICIwLjAwMTIwNywgMC4wMDEyMDgsIDAuMDAxMjE0LCAwLjAwMTIxNywgMC4wMDEyMTgsIDAuMDAxMDg0LCAwLjAwMDE0MSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDA2MSwgMC4wMDAwNjEsIDAuMDAwMDYyLCAwLjAwMDA2MiwgMC4wMDAwNjIsIDAuMDAwMDYyLCAwLjAwMDA2MiIsIFwKLSAgICAgICAgICAiMC4wMDAwNywgMC4wMDAwNywgMC4wMDAwNzIsIDAuMDAwMDczLCAwLjAwMDA3MywgMC4wMDAwNzMsIDAuMDAwMDczIiwgXAotICAgICAgICAgICIwLjAwMDA3MSwgMC4wMDAwNzIsIDAuMDAwMDc2LCAwLjAwMDA3OCwgMC4wMDAwNzgsIDAuMDAwMDc4LCAwLjAwMDA3OCIsIFwKLSAgICAgICAgICAiMC4wMDAwNzEsIDAuMDAwMDcyLCAwLjAwMDA3NiwgMC4wMDAwNzksIDAuMDAwMDc5LCAwLjAwMDA4LCAwLjAwMDA4IiwgXAotICAgICAgICAgICIwLjAwMDA2OSwgMC4wMDAwNzEsIDAuMDAwMDc2LCAwLjAwMDA3OSwgMC4wMDAwOCwgMC4wMDAwODEsIDAuMDAwMDgxIiwgXAotICAgICAgICAgICIwLjAwMDA2NywgMC4wMDAwNjksIDAuMDAwMDc2LCAwLjAwMDA3OCwgMC4wMDAwOCwgMC4wMDAwODEsIDAuMDAwMDgxIiwgXAotICAgICAgICAgICIwLjAwMDA2NSwgMC4wMDAwNjcsIDAuMDAwMDc1LCAwLjAwMDA3OCwgMC4wMDAwOCwgMC4wMDAwODEsIDAuMDAwMDgyIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBPQTIxWDIgKgotICogLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChPQTIxWDIpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4xMDM3ODk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA1NTc1MjU7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNTU2MTAzOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDU1NzUyNTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxNjUsIDAuMDAwMTY1LCAwLjAwMDE2NSwgMC4wMDAxNjUsIDAuMDAwMTY1LCAwLjAwMDE2NSwgMC4wMDAxNjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiwgMC4wMDAxNjUsIDAuMDAwMTY2LCAwLjAwMDE2NiwgMC4wMDAxNjYiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEExKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA1NTQ0MzQ7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNTU0NDM0OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDU1MjU0OTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxNjUsIDAuMDAwMTY1LCAwLjAwMDE2NSwgMC4wMDAxNjUsIDAuMDAwMTY1LCAwLjAwMDE2NSwgMC4wMDAxNjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiwgMC4wMDAxNjUsIDAuMDAwMTY2LCAwLjAwMDE2NiwgMC4wMDAxNjYiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA1OTgzNDc7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNTk4MDI4OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDU5ODM0NzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyMjgsIDAuMDAwMjI4LCAwLjAwMDIyOCwgMC4wMDAyMjksIDAuMDAwMjI4LCAwLjAwMDIyOCwgMC4wMDAyMjgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxODgsIDAuMDAwMTg4LCAwLjAwMDE4OCwgMC4wMDAxODgsIDAuMDAwMTg4LCAwLjAwMDE4OCwgMC4wMDAxODgiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4yNTY2MzM7Ci0gICAgZnVuY3Rpb24gOiAiKChBMCtBMSkgQjApIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTg1MzUsIDAuMzY5NDMxLCAwLjUxMjM5MiwgMC42OTA5MzEsIDAuODY5MjksIDEuMDQ3NjYsIDEuMjI2MDIiLCBcCi0gICAgICAgICAgIjAuMTk3MDExLCAwLjM4MTI5OCwgMC41MjQyNDMsIDAuNzAyODAxLCAwLjg4MTE2MSwgMS4wNTk1MiwgMS4yMzc5MiIsIFwKLSAgICAgICAgICAiMC4yMTE4OTIsIDAuMzk2MTUzLCAwLjUzOTExOCwgMC43MTc2MSwgMC44OTYwNTMsIDEuMDc0MzgsIDEuMjUyNzIiLCBcCi0gICAgICAgICAgIjAuMjI2MTA4LCAwLjQxMDM1NiwgMC41NTMzMjYsIDAuNzMxOTAxLCAwLjkxMDIzLCAxLjA4ODY5LCAxLjI2NjkzIiwgXAotICAgICAgICAgICIwLjI0MDIyOCwgMC40MjQzMzcsIDAuNTY3MjkyLCAwLjc0NTgzOCwgMC45MjQyLCAxLjEwMjU1LCAxLjI4MDkxIiwgXAotICAgICAgICAgICIwLjI2MjM3NSwgMC40NDY2MDksIDAuNTg5NTc5LCAwLjc2ODE1MSwgMC45NDY1MTQsIDEuMTI0ODMsIDEuMzAzMiIsIFwKLSAgICAgICAgICAiMC4yODE1NDksIDAuNDY1NzYzLCAwLjYwODczOSwgMC43ODczMTIsIDAuOTY1Njc3LCAxLjE0NDAxLCAxLjMyMjM3Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwNzU2OCwgMC40NTY5ODcsIDAuNzQ0MDA0LCAxLjEwNTI1LCAxLjQ3MDcsIDEuODMxMTUsIDIuMTk3NjQiLCBcCi0gICAgICAgICAgIjAuMTA3NDE5LCAwLjQ1Njk2MiwgMC43NDQ4OTMsIDEuMTA3ODQsIDEuNDcwNjUsIDEuODMxMDYsIDIuMTkyOTEiLCBcCi0gICAgICAgICAgIjAuMTA3NDA2LCAwLjQ1NzA0LCAwLjc0MzkyOCwgMS4xMDc1LCAxLjQ2ODc2LCAxLjgzMzg3LCAyLjE5MzkzIiwgXAotICAgICAgICAgICIwLjEwNzQxLCAwLjQ1NzA0NiwgMC43NDM5OTIsIDEuMTA3OTEsIDEuNDY5OTIsIDEuODM0MDEsIDIuMTkzODQiLCBcCi0gICAgICAgICAgIjAuMTA3NTA2LCAwLjQ1Njg3NywgMC43NDM5MSwgMS4xMDc4MSwgMS40NzA2MSwgMS44MzA4MSwgMi4xOTM5NSIsIFwKLSAgICAgICAgICAiMC4xMDczNDIsIDAuNDU2ODIxLCAwLjc0Mzk4NCwgMS4xMDc5LCAxLjQ3MDcyLCAxLjgzMzczLCAyLjE5MzgiLCBcCi0gICAgICAgICAgIjAuMTA3MTg2LCAwLjQ1NjgyNiwgMC43NDQsIDEuMTA3ODksIDEuNDcwNywgMS44MzM3LCAyLjE5Mzc5Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE3NzIsIDAuMzg4OTc3LCAwLjU1NDUyNywgMC43NjEwNTMsIDAuOTY3MzU2LCAxLjE3MzY5LCAxLjM3OTkxIiwgXAotICAgICAgICAgICIwLjE4ODYyMywgMC40MDA0MjUsIDAuNTY1OTQyLCAwLjc3MjQ1MiwgMC45Nzg3OSwgMS4xODUxMSwgMS4zOTEzNyIsIFwKLSAgICAgICAgICAiMC4yMDE3NzksIDAuNDEzNTQ2LCAwLjU3OTEwMSwgMC43ODU1NzEsIDAuOTkxOTEsIDEuMTk4MjMsIDEuNDA0NTMiLCBcCi0gICAgICAgICAgIjAuMjE0Mjc0LCAwLjQyNjA2OCwgMC41OTE1ODksIDAuNzk4MTAxLCAxLjAwNDQ0LCAxLjIxMDc2LCAxLjQxNzA1IiwgXAotICAgICAgICAgICIwLjIyNjUwOCwgMC40MzgzOSwgMC42MDM5NTQsIDAuODEwNDMsIDEuMDE2ODIsIDEuMjIzMTUsIDEuNDI5MzUiLCBcCi0gICAgICAgICAgIjAuMjQ2MTQyLCAwLjQ1ODAxMSwgMC42MjM1ODksIDAuODMwMTA1LCAxLjAzNjQ4LCAxLjI0MjksIDEuNDQ5MDEiLCBcCi0gICAgICAgICAgIjAuMjYzMDc4LCAwLjQ3NDk3OSwgMC42NDA1NjIsIDAuODQ3MDY4LCAxLjA1MzQsIDEuMjU5ODIsIDEuNDY1OTciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTE1NzkyLCAwLjUxNTc5OSwgMC44NDAyOCwgMS4yNTI1OSwgMS42NjIzNCwgMi4wNzQ4NywgMi40ODMwNSIsIFwKLSAgICAgICAgICAiMC4xMTU5ODksIDAuNTE1Nzk4LCAwLjg0MTkxLCAxLjI1MjczLCAxLjY2NDQ3LCAyLjA3MjUyLCAyLjQ4MzAzIiwgXAotICAgICAgICAgICIwLjExNTg0LCAwLjUxNTc5MiwgMC44NDE2OTksIDEuMjUyOTYsIDEuNjY0NDcsIDIuMDcyNTIsIDIuNDg1NzgiLCBcCi0gICAgICAgICAgIjAuMTE1ODgsIDAuNTE1NzgyLCAwLjg0Mjg5OSwgMS4yNTI5LCAxLjY2NDM1LCAyLjA3MjY3LCAyLjQ4NTkiLCBcCi0gICAgICAgICAgIjAuMTE1ODYzLCAwLjUxNTY5NywgMC44NDA0MjQsIDEuMjUxNjksIDEuNjYzODUsIDIuMDcxOTMsIDIuNDgzNCIsIFwKLSAgICAgICAgICAiMC4xMTU2NjQsIDAuNTE0ODEyLCAwLjg0MjgyNywgMS4yNTA3MSwgMS42NjEwNCwgMi4wNzM4MiwgMi40ODQyNiIsIFwKLSAgICAgICAgICAiMC4xMTU4MTksIDAuNTE1NjYsIDAuODQwNTUxLCAxLjI1MDE2LCAxLjY2NDU0LCAyLjA3Mzk5LCAyLjQ4MzQyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkExIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNzE3MzYsIDAuMzU0Njc1LCAwLjQ5NzQxLCAwLjY3NTgxMSwgMC44NTQxMDUsIDEuMDMyNTQsIDEuMjEwNjgiLCBcCi0gICAgICAgICAgIjAuMTgzOTU3LCAwLjM2Njk5NywgMC41MDk2ODksIDAuNjg4MDc5LCAwLjg2NjM4OSwgMS4wNDQ3OCwgMS4yMjMwNCIsIFwKLSAgICAgICAgICAiMC4xOTg0MDQsIDAuMzgxODI0LCAwLjUyNDU0MSwgMC43MDI5NzIsIDAuODgxMzA1LCAxLjA1OTU2LCAxLjIzNzg1IiwgXAotICAgICAgICAgICIwLjIxMjcxOCwgMC4zOTU5MjksIDAuNTM4NjUyLCAwLjcxNjk4OSwgMC44OTUyOTksIDEuMDczNzIsIDEuMjUxODEiLCBcCi0gICAgICAgICAgIjAuMjI2NTQsIDAuNDA5OTY5LCAwLjU1MjY3OCwgMC43MzA5OTQsIDAuOTA5MzE5LCAxLjA4ODExLCAxLjI2NjAxIiwgXAotICAgICAgICAgICIwLjI0ODY5LCAwLjQzMjA2MSwgMC41NzQ3OTUsIDAuNzUzMTcyLCAwLjkzMTUzMywgMS4xMDk4NiwgMS4yODgzMyIsIFwKLSAgICAgICAgICAiMC4yNjc5NDQsIDAuNDUxMjE5LCAwLjU5Mzk3OSwgMC43NzIzNzQsIDAuOTUwODM0LCAxLjEyODgsIDEuMzA3NDQiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTA2MDU1LCAwLjQ1NDgyMSwgMC43NDI3OTYsIDEuMTA4MjUsIDEuNDcwMDcsIDEuODI4MDQsIDIuMTk2MzkiLCBcCi0gICAgICAgICAgIjAuMTA1OTIsIDAuNDU1NzI4LCAwLjc0Mjc2NCwgMS4xMDY3OSwgMS40NjcxNSwgMS44MjgzOCwgMi4xOTY0NiIsIFwKLSAgICAgICAgICAiMC4xMDYyMDksIDAuNDU1Njk1LCAwLjc0Mjc0OSwgMS4xMDM3LCAxLjQ2NzYxLCAxLjgzMzY2LCAyLjE5NjQ4IiwgXAotICAgICAgICAgICIwLjEwNjI3LCAwLjQ1NDgyNywgMC43NDI3NDIsIDEuMTA2NTQsIDEuNDY5ODUsIDEuODMwMDMsIDIuMTk2NjYiLCBcCi0gICAgICAgICAgIjAuMTA1OTM2LCAwLjQ1NDYxMSwgMC43NDI2NTIsIDEuMTA2MzgsIDEuNDY5NDMsIDEuODI4ODYsIDIuMTk2NDQiLCBcCi0gICAgICAgICAgIjAuMTA1ODEzLCAwLjQ1NTM5MiwgMC43NDI3NTIsIDEuMTA2NjcsIDEuNDY3MzEsIDEuODI4NDgsIDIuMTkzMSIsIFwKLSAgICAgICAgICAiMC4xMDU3NDMsIDAuNDU0OTIzLCAwLjc0MjcwMiwgMS4xMDY3NSwgMS40NjY1NSwgMS44MzI0MywgMi4xOTMwNyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNjk5OTYsIDAuMzgxODU4LCAwLjU0NzQxLCAwLjc1Mzg5NCwgMC45NjAyODgsIDEuMTY2NjIsIDEuMzcyODEiLCBcCi0gICAgICAgICAgIjAuMTgwMjM3LCAwLjM5MjEwMywgMC41NTc2NTYsIDAuNzY0MTQ3LCAwLjk3MDU0MiwgMS4xNzY5MywgMS4zODMwNiIsIFwKLSAgICAgICAgICAiMC4xOTI4MTMsIDAuNDA0NzA0LCAwLjU3MDI3OSwgMC43NzY3NjIsIDAuOTgzMDk5LCAxLjE4OTUsIDEuMzk1NjciLCBcCi0gICAgICAgICAgIjAuMjA1OTE2LCAwLjQxNzc5NywgMC41ODMzMywgMC43ODk4NDQsIDAuOTk2MTY4LCAxLjIwMjQ2LCAxLjQwODc1IiwgXAotICAgICAgICAgICIwLjIxOTU0NCwgMC40MzE0NTYsIDAuNTk3MDE0LCAwLjgwMzQ4OCwgMS4wMDk5LCAxLjIxNjE5LCAxLjQyMjQzIiwgXAotICAgICAgICAgICIwLjI0MTA4NSwgMC40NTI4NDgsIDAuNjE4Mzk0LCAwLjgyNDkxNywgMS4wMzEyNywgMS4yMzc1NywgMS40NDM4NCIsIFwKLSAgICAgICAgICAiMC4yNTk1MjMsIDAuNDcxMzgxLCAwLjYzNjk3LCAwLjg0MzQ2NiwgMS4wNDk4NiwgMS4yNTYyLCAxLjQ2MjQxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExNTk3NywgMC41MTU3MDMsIDAuODQyODMzLCAxLjI1MjkzLCAxLjY2MTYzLCAyLjA3MzgyLCAyLjQ4NDEzIiwgXAotICAgICAgICAgICIwLjExNjAyLCAwLjUxNTcwMiwgMC44NDA1MjQsIDEuMjUyOSwgMS42NjA4NiwgMi4wNzM5OSwgMi40ODQwMiIsIFwKLSAgICAgICAgICAiMC4xMTYwMjYsIDAuNTE1NjU4LCAwLjg0MTk1OCwgMS4yNTI3MiwgMS42NjQ0MywgMi4wNzQzNCwgMi40ODMxMiIsIFwKLSAgICAgICAgICAiMC4xMTU4MTgsIDAuNTE0MDY4LCAwLjg0MjgzOSwgMS4yNTI3MSwgMS42NjQ1NCwgMi4wNzU4NiwgMi40ODUwMiIsIFwKLSAgICAgICAgICAiMC4xMTU3OTYsIDAuNTE1NzM0LCAwLjg0Mjc4OSwgMS4yNTEyOSwgMS42NjM1LCAyLjA3NTE0LCAyLjQ4MzYyIiwgXAotICAgICAgICAgICIwLjExNTgwMywgMC41MTU3NTIsIDAuODQyODk5LCAxLjI1MjYzLCAxLjY2NDE4LCAyLjA3MjYzLCAyLjQ4MzgxIiwgXAotICAgICAgICAgICIwLjExNTg3MiwgMC41MTU3MDYsIDAuODQxNDE1LCAxLjI1MjMyLCAxLjY2MzcxLCAyLjA3MTA5LCAyLjQ4MzY0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNjk5ODQsIDAuMzU0MjQzLCAwLjQ5NzIwMiwgMC42NzU3NDYsIDAuODU0MTA5LCAxLjAzMjQ3LCAxLjIxMDgiLCBcCi0gICAgICAgICAgIjAuMTgwNDM1LCAwLjM2NDcxOCwgMC41MDc2NjEsIDAuNjg2MjI4LCAwLjg2NDU4NywgMS4wNDI5NCwgMS4yMjEzNiIsIFwKLSAgICAgICAgICAiMC4xOTM2MTEsIDAuMzc3ODY1LCAwLjUyMDgyNCwgMC42OTkzOTQsIDAuODc3NzU3LCAxLjA1NjA4LCAxLjIzNDQ0IiwgXAotICAgICAgICAgICIwLjIwNzU3OCwgMC4zOTE4NDksIDAuNTM0Nzg2LCAwLjcxMzM1LCAwLjg5MTcxMywgMS4wNzAwNSwgMS4yNDg0IiwgXAotICAgICAgICAgICIwLjIyMTIyNiwgMC40MDU0NjYsIDAuNTQ4NDY1LCAwLjcyNjk4NCwgMC45MDUzNDYsIDEuMDgzNywgMS4yNjIwNCIsIFwKLSAgICAgICAgICAiMC4yNDM0MTMsIDAuNDI3NjY5LCAwLjU3MDYxNCwgMC43NDkxOTQsIDAuOTI3NTU5LCAxLjEwNTg5LCAxLjI4NDI1IiwgXAotICAgICAgICAgICIwLjI2Mjg1OSwgMC40NDcxMTcsIDAuNTkwMDg4LCAwLjc2ODYxOCwgMC45NDcwNzEsIDEuMTI1NDksIDEuMzAzNzEiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTA3NDc5LCAwLjQ1Njk4MywgMC43NDM5ODUsIDEuMTA3ODIsIDEuNDcwNjYsIDEuODMxMDcsIDIuMTk3MjkiLCBcCi0gICAgICAgICAgIjAuMTA3NDUxLCAwLjQ1Njk3MSwgMC43NDQ4NjksIDEuMTA3ODUsIDEuNDcwNjYsIDEuODMzNjEsIDIuMTkzMjYiLCBcCi0gICAgICAgICAgIjAuMTA3NDY3LCAwLjQ1Njg3NCwgMC43NDM5OSwgMS4xMDc5LCAxLjQ3MDcyLCAxLjgzMzc2LCAyLjE5MzgxIiwgXAotICAgICAgICAgICIwLjEwNzM4OCwgMC40NTY4NDcsIDAuNzQzOTYsIDEuMTA3ODcsIDEuNDcwNjgsIDEuODMzNzIsIDIuMTk2MzciLCBcCi0gICAgICAgICAgIjAuMTA3MTg4LCAwLjQ1NjkyNiwgMC43NDUzMzYsIDEuMTA3ODQsIDEuNDcwNjQsIDEuODMzNTcsIDIuMTkzODgiLCBcCi0gICAgICAgICAgIjAuMTA3MzIxLCAwLjQ1NjkxLCAwLjc0Mzk4MSwgMS4xMDgwOCwgMS40NzA3MSwgMS44MzM2OCwgMi4xOTY1MyIsIFwKLSAgICAgICAgICAiMC4xMDcyMzEsIDAuNDU2OTc5LCAwLjc0Mzk1MiwgMS4xMDc1OSwgMS40NzA4MSwgMS44MzQwMSwgMi4xOTM4MiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTE1NzEsIDAuMzE4ODMsIDAuNDgzNzg5LCAwLjY4OTk4NiwgMC44OTY0OTQsIDEuMTAyNjcsIDEuMzA4NiIsIFwKLSAgICAgICAgICAiMC4xMjMzNjIsIDAuMzMwNjM4LCAwLjQ5NTY0NywgMC43MDE3ODEsIDAuOTA4MzUzLCAxLjExNDMyLCAxLjMyMDU3IiwgXAotICAgICAgICAgICIwLjEzODAyNiwgMC4zNDUzNDIsIDAuNTEwMzE0LCAwLjcxNjUxNSwgMC45MjMwNDQsIDEuMTI5MDksIDEuMzM0OTUiLCBcCi0gICAgICAgICAgIjAuMTUyNzUxLCAwLjM2MDEzNCwgMC41MjUxMTYsIDAuNzMxMzEyLCAwLjkzNzksIDEuMTQzOCwgMS4zNDk5IiwgXAotICAgICAgICAgICIwLjE2NzM1NywgMC4zNzQ3NjgsIDAuNTM5NzUsIDAuNzQ1OTYzLCAwLjk1MjU2MiwgMS4xNTg0NCwgMS4zNjQ1MSIsIFwKLSAgICAgICAgICAiMC4xODk4NywgMC4zOTczMzgsIDAuNTYyNDAzLCAwLjc2ODU0LCAwLjk3NDcsIDEuMTgwOTUsIDEuMzg3MjkiLCBcCi0gICAgICAgICAgIjAuMjA4NDUyLCAwLjQxNTkxLCAwLjU4MDg5LCAwLjc4NzE0NSwgMC45OTM4MzMsIDEuMTk5NTYsIDEuNDA1OTQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTAzODUyLCAwLjUwNzkyNCwgMC44MzcyMzYsIDEuMjQ1NzcsIDEuNjU3MjEsIDIuMDY4NjYsIDIuNDg0IiwgXAotICAgICAgICAgICIwLjEwMzg2MSwgMC41MDg0MzIsIDAuODM1MjkyLCAxLjI0NzA4LCAxLjY1NTAzLCAyLjA3MjUxLCAyLjQ3ODkiLCBcCi0gICAgICAgICAgIjAuMTAzODU2LCAwLjUwNzg5OCwgMC44MzcyNCwgMS4yNDg0NiwgMS42NTU0NCwgMi4wNzI0NiwgMi40NzY4OSIsIFwKLSAgICAgICAgICAiMC4xMDM5NjYsIDAuNTA4NDIxLCAwLjgzNzI4LCAxLjI0NTMsIDEuNjU1ODYsIDIuMDY2OTEsIDIuNDgzNzciLCBcCi0gICAgICAgICAgIjAuMTA0MDUzLCAwLjUwODQxNywgMC44MzcyNjEsIDEuMjQ1MzUsIDEuNjU1NzcsIDIuMDcwMTksIDIuNDc2NzYiLCBcCi0gICAgICAgICAgIjAuMTA0NjY4LCAwLjUwNzM2OCwgMC44MzYxNjYsIDEuMjQ0NzcsIDEuNjU5MjksIDIuMDY3MzYsIDIuNDgyNDgiLCBcCi0gICAgICAgICAgIjAuMTA1NzA0LCAwLjUwODUxNiwgMC44MzcyNTEsIDEuMjQ2MDMsIDEuNjU3OTEsIDIuMDY0NjgsIDIuNDgwNzEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyMTUsIDAuMDAyMTk5LCAwLjAwMjIwNSwgMC4wMDIyMDgsIDAuMDAyMjEsIDAuMDAyMjExLCAwLjAwMjIxMSIsIFwKLSAgICAgICAgICAiMC4wMDIxMzksIDAuMDAyMTg4LCAwLjAwMjE5NCwgMC4wMDIxOTgsIDAuMDAyMTk5LCAwLjAwMjIsIDAuMDAyMjAxIiwgXAotICAgICAgICAgICIwLjAwMjEzNCwgMC4wMDIxODMsIDAuMDAyMTg5LCAwLjAwMjE5MywgMC4wMDIxOTQsIDAuMDAyMTk1LCAwLjAwMjE5NSIsIFwKLSAgICAgICAgICAiMC4wMDIxMjksIDAuMDAyMTc5LCAwLjAwMjE4NSwgMC4wMDIxODgsIDAuMDAyMTksIDAuMDAyMTkyLCAwLjAwMjE5MiIsIFwKLSAgICAgICAgICAiMC4wMDIxMjQsIDAuMDAyMTc1LCAwLjAwMjE4MiwgMC4wMDIxODUsIDAuMDAyMTg3LCAwLjAwMjE4OCwgMC4wMDIxODgiLCBcCi0gICAgICAgICAgIjAuMDAyMTE4LCAwLjAwMjE3LCAwLjAwMjE3NywgMC4wMDIxODEsIDAuMDAyMTgzLCAwLjAwMjE4NCwgMC4wMDIxODQiLCBcCi0gICAgICAgICAgIjAuMDAyMTEzLCAwLjAwMjE2NiwgMC4wMDIxNzMsIDAuMDAyMTc4LCAwLjAwMjE4LCAwLjAwMjE4MSwgMC4wMDIxODEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDMxNTEsIDAuMDAzMjE3LCAwLjAwMzIyNSwgMC4wMDMyMywgMC4wMDMyMzMsIDAuMDAzMjM0LCAwLjAwMzIzNSIsIFwKLSAgICAgICAgICAiMC4wMDMxNDYsIDAuMDAzMjEyLCAwLjAwMzIyLCAwLjAwMzIyNSwgMC4wMDMyMjcsIDAuMDAzMjI5LCAwLjAwMzIzIiwgXAotICAgICAgICAgICIwLjAwMzE0MiwgMC4wMDMyMDksIDAuMDAzMjE3LCAwLjAwMzIyMiwgMC4wMDMyMjQsIDAuMDAzMjI2LCAwLjAwMzIyNyIsIFwKLSAgICAgICAgICAiMC4wMDMxMzgsIDAuMDAzMjA1LCAwLjAwMzIxNCwgMC4wMDMyMiwgMC4wMDMyMjIsIDAuMDAzMjI0LCAwLjAwMzIyNCIsIFwKLSAgICAgICAgICAiMC4wMDMxMzMsIDAuMDAzMjAyLCAwLjAwMzIxMiwgMC4wMDMyMTcsIDAuMDAzMjIsIDAuMDAzMjIyLCAwLjAwMzIyMiIsIFwKLSAgICAgICAgICAiMC4wMDMxMjcsIDAuMDAzMTk3LCAwLjAwMzIwOCwgMC4wMDMyMTQsIDAuMDAzMjE3LCAwLjAwMzIxOSwgMC4wMDMyMiIsIFwKLSAgICAgICAgICAiMC4wMDMxMjIsIDAuMDAzMTk0LCAwLjAwMzIwNSwgMC4wMDMyMTIsIDAuMDAzMjE1LCAwLjAwMzIxNywgMC4wMDMyMTgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxOTU0LCAwLjAwMTk5NywgMC4wMDIwMDMsIDAuMDAyMDA0LCAwLjAwMjAwOCwgMC4wMDIwMDgsIDAuMDAyMDEiLCBcCi0gICAgICAgICAgIjAuMDAxOTQ5LCAwLjAwMTk5NSwgMC4wMDE5OTksIDAuMDAyMDAxLCAwLjAwMjAwMywgMC4wMDIwMDMsIDAuMDAyMDA0IiwgXAotICAgICAgICAgICIwLjAwMTkzOCwgMC4wMDE5ODUsIDAuMDAxOTksIDAuMDAxOTkzLCAwLjAwMTk5NCwgMC4wMDE5OTQsIDAuMDAxOTk1IiwgXAotICAgICAgICAgICIwLjAwMTkzLCAwLjAwMTk3NywgMC4wMDE5ODMsIDAuMDAxOTg2LCAwLjAwMTk4NiwgMC4wMDE5ODcsIDAuMDAxOTg3IiwgXAotICAgICAgICAgICIwLjAwMTkyMywgMC4wMDE5NzEsIDAuMDAxOTc3LCAwLjAwMTk3OSwgMC4wMDE5ODEsIDAuMDAxOTgyLCAwLjAwMTk4MSIsIFwKLSAgICAgICAgICAiMC4wMDE5MTQsIDAuMDAxOTYzLCAwLjAwMTk2OSwgMC4wMDE5NzIsIDAuMDAxOTc0LCAwLjAwMTk3NSwgMC4wMDE5NzUiLCBcCi0gICAgICAgICAgIjAuMDAxOTA1LCAwLjAwMTk1NiwgMC4wMDE5NjQsIDAuMDAxOTY4LCAwLjAwMTk2OSwgMC4wMDE5NywgMC4wMDE5NzEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDMwMDgsIDAuMDAzMDc0LCAwLjAwMzA4MiwgMC4wMDMwODcsIDAuMDAzMDg5LCAwLjAwMzA5MSwgMC4wMDMwOTIiLCBcCi0gICAgICAgICAgIjAuMDAzLCAwLjAwMzA2NywgMC4wMDMwNzUsIDAuMDAzMDgsIDAuMDAzMDgyLCAwLjAwMzA4NCwgMC4wMDMwODUiLCBcCi0gICAgICAgICAgIjAuMDAyOTkxLCAwLjAwMzA1OSwgMC4wMDMwNjgsIDAuMDAzMDc0LCAwLjAwMzA3NiwgMC4wMDMwNzgsIDAuMDAzMDc5IiwgXAotICAgICAgICAgICIwLjAwMjk4NSwgMC4wMDMwNTMsIDAuMDAzMDYzLCAwLjAwMzA2OSwgMC4wMDMwNzIsIDAuMDAzMDc0LCAwLjAwMzA3NSIsIFwKLSAgICAgICAgICAiMC4wMDI5NzksIDAuMDAzMDQ4LCAwLjAwMzA1OSwgMC4wMDMwNjUsIDAuMDAzMDY4LCAwLjAwMzA3MSwgMC4wMDMwNzIiLCBcCi0gICAgICAgICAgIjAuMDAyOTcsIDAuMDAzMDQxLCAwLjAwMzA1NCwgMC4wMDMwNiwgMC4wMDMwNjQsIDAuMDAzMDY3LCAwLjAwMzA2OCIsIFwKLSAgICAgICAgICAiMC4wMDI5NjQsIDAuMDAzMDM3LCAwLjAwMzA1LCAwLjAwMzA1OCwgMC4wMDMwNjIsIDAuMDAzMDY0LCAwLjAwMzA2NiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDIxNTQsIDAuMDAyMjAzLCAwLjAwMjIwOSwgMC4wMDIyMTIsIDAuMDAyMjE0LCAwLjAwMjIxNSwgMC4wMDIyMTYiLCBcCi0gICAgICAgICAgIjAuMDAyMTQzLCAwLjAwMjE5MiwgMC4wMDIxOTgsIDAuMDAyMjAxLCAwLjAwMjIwNCwgMC4wMDIyMDMsIDAuMDAyMjA0IiwgXAotICAgICAgICAgICIwLjAwMjEzMiwgMC4wMDIxODIsIDAuMDAyMTg4LCAwLjAwMjE5MiwgMC4wMDIxOTMsIDAuMDAyMTk1LCAwLjAwMjE5NiIsIFwKLSAgICAgICAgICAiMC4wMDIxMjUsIDAuMDAyMTc1LCAwLjAwMjE4MiwgMC4wMDIxODYsIDAuMDAyMTg4LCAwLjAwMjE4OSwgMC4wMDIxOSIsIFwKLSAgICAgICAgICAiMC4wMDIxMTgsIDAuMDAyMTY5LCAwLjAwMjE3NywgMC4wMDIxODEsIDAuMDAyMTgzLCAwLjAwMjE4NSwgMC4wMDIxODYiLCBcCi0gICAgICAgICAgIjAuMDAyMTEyLCAwLjAwMjE2MywgMC4wMDIxNzEsIDAuMDAyMTc3LCAwLjAwMjE3OSwgMC4wMDIxOCwgMC4wMDIxODEiLCBcCi0gICAgICAgICAgIjAuMDAyMTA1LCAwLjAwMjE1OCwgMC4wMDIxNjgsIDAuMDAyMTczLCAwLjAwMjE3NiwgMC4wMDIxNzksIDAuMDAyMTc5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyNjg2LCAwLjAwMjcyLCAwLjAwMjcyMywgMC4wMDI3MjUsIDAuMDAyNzI2LCAwLjAwMjcyNiwgMC4wMDI3MjciLCBcCi0gICAgICAgICAgIjAuMDAyNjc5LCAwLjAwMjcxNSwgMC4wMDI3MTksIDAuMDAyNzIxLCAwLjAwMjcyMiwgMC4wMDI3MjIsIDAuMDAyNzIzIiwgXAotICAgICAgICAgICIwLjAwMjY2MywgMC4wMDI3MDcsIDAuMDAyNzExLCAwLjAwMjcxNCwgMC4wMDI3MTUsIDAuMDAyNzE2LCAwLjAwMjcxNiIsIFwKLSAgICAgICAgICAiMC4wMDI2NDksIDAuMDAyNjk5LCAwLjAwMjcwNSwgMC4wMDI3MDgsIDAuMDAyNzEsIDAuMDAyNzExLCAwLjAwMjcxMSIsIFwKLSAgICAgICAgICAiMC4wMDI2MzgsIDAuMDAyNjkzLCAwLjAwMjcsIDAuMDAyNzA0LCAwLjAwMjcwNiwgMC4wMDI3MDcsIDAuMDAyNzA4IiwgXAotICAgICAgICAgICIwLjAwMjYyNCwgMC4wMDI2ODQsIDAuMDAyNjkzLCAwLjAwMjY5OCwgMC4wMDI3MDEsIDAuMDAyNzAyLCAwLjAwMjcwMyIsIFwKLSAgICAgICAgICAiMC4wMDI2MTQsIDAuMDAyNjc5LCAwLjAwMjY4OSwgMC4wMDI2OTUsIDAuMDAyNjk4LCAwLjAwMjY5OSwgMC4wMDI3MDEiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IE9BMjFYTCAqCi0gKiAtLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKE9BMjFYTCkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjA1NjQ0MzQ7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA1ODQ5NjQ7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNTgzNTI4OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDU4NDk2NDsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxNjUsIDAuMDAwMTY1LCAwLjAwMDE2NSwgMC4wMDAxNjUsIDAuMDAwMTY1LCAwLjAwMDE2NSwgMC4wMDAxNjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiwgMC4wMDAxNjYiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEExKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2MjQ0Nzk7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjI0NDc5OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDYyMjY5MTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxNjUsIDAuMDAwMTY1LCAwLjAwMDE2NSwgMC4wMDAxNjUsIDAuMDAwMTY1LCAwLjAwMDE2NSwgMC4wMDAxNjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiwgMC4wMDAxNjYiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2MjEzNzM7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjIxMTAyOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDYyMTM3MzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyMjIsIDAuMDAwMjIyLCAwLjAwMDIyMSwgMC4wMDAyMjIsIDAuMDAwMjIyLCAwLjAwMDIyMiwgMC4wMDAyMjEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxODgsIDAuMDAwMTg4LCAwLjAwMDE4OCwgMC4wMDAxODgsIDAuMDAwMTg4LCAwLjAwMDE4OCwgMC4wMDAxODgiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4wNjk1MjkyOwotICAgIGZ1bmN0aW9uIDogIigoQTArQTEpIEIwKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTAiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIzNDQ5NSwgMC4yNTk4NjQsIDAuNDg3NTMyLCAwLjg2NjQ3NSwgMS4yNDUyNywgMi4xMjg5NiwgMi42MzM5MSIsIFwKLSAgICAgICAgICAiMC4yNDYzNDksIDAuMjcxNzE4LCAwLjQ5OTM4NSwgMC44NzgzMjEsIDEuMjU3MTIsIDIuMTQwODEsIDIuNjQ1NzUiLCBcCi0gICAgICAgICAgIjAuMjYxMDk2LCAwLjI4NjQ0OSwgMC41MTQxMzEsIDAuODkzMDU5LCAxLjI3MTk3LCAyLjE1NTU1LCAyLjY2MDQ5IiwgXAotICAgICAgICAgICIwLjI3NTMwNCwgMC4zMDA2NDYsIDAuNTI4MzQ4LCAwLjkwNzI3MiwgMS4yODYwNiwgMi4xNjk3NiwgMi42NzQ3IiwgXAotICAgICAgICAgICIwLjI4OTIxNywgMC4zMTQ1NjcsIDAuNTQyMjUzLCAwLjkyMTE4NywgMS4zMDAwOCwgMi4xODM2OCwgMi42ODg2MiIsIFwKLSAgICAgICAgICAiMC4zMTE0NjksIDAuMzM2ODM3LCAwLjU2NDUyMiwgMC45NDM0OTQsIDEuMzIyMjYsIDIuMjA1OTcsIDIuNzExMDEiLCBcCi0gICAgICAgICAgIjAuMzMwMjM0LCAwLjM1NTU5MiwgMC41ODMyODMsIDAuOTYyMjE3LCAxLjM0MTAzLCAyLjIyNSwgMi43Mjk2NSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yNzQ1NjgsIDAuMzI1MzEsIDAuNzg1NDEsIDEuNTUwNjIsIDIuMzIwNjIsIDQuMTEzNDYsIDUuMTQwMjYiLCBcCi0gICAgICAgICAgIjAuMjc0NTE1LCAwLjMyNTMwNywgMC43ODUzNjUsIDEuNTUyMjksIDIuMzIwNTIsIDQuMTEzMjIsIDUuMTM3MyIsIFwKLSAgICAgICAgICAiMC4yNzQ1NDUsIDAuMzI1MjIxLCAwLjc4NTMzOSwgMS41NTIxNCwgMi4zMjQwNiwgNC4xMTgxNSwgNS4xMzcyMiIsIFwKLSAgICAgICAgICAiMC4yNzQ1MDgsIDAuMzI1MTI1LCAwLjc4NTMxLCAxLjU1MjAxLCAyLjMyMzE3LCA0LjExMjQsIDUuMTM2ODUiLCBcCi0gICAgICAgICAgIjAuMjc0NTM2LCAwLjMyNTIxMSwgMC43ODUyOTEsIDEuNTUyMTYsIDIuMzI0MjUsIDQuMTE4NzYsIDUuMTM2NjUiLCBcCi0gICAgICAgICAgIjAuMjc0NDg3LCAwLjMyNTI2OCwgMC43ODUzMjEsIDEuNTU0NjMsIDIuMzIwNTIsIDQuMTE5NDMsIDUuMTM0MTMiLCBcCi0gICAgICAgICAgIjAuMjc0MDE0LCAwLjMyNDU1MSwgMC43ODUzMDUsIDEuNTU0MTgsIDIuMzIwNjcsIDQuMTE5NywgNS4xMzYyIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI0NzY2MywgMC4yNzc1NzUsIDAuNTQ1NzkxLCAwLjk5MTg2NywgMS40Mzc1NywgMi40NzcyNCwgMy4wNzE0NyIsIFwKLSAgICAgICAgICAiMC4yNTkwOTUsIDAuMjg4OTk1LCAwLjU1NzI0MSwgMS4wMDMyNywgMS40NDksIDIuNDg4NjksIDMuMDgyNzYiLCBcCi0gICAgICAgICAgIjAuMjcyMDQsIDAuMzAxOTQ4LCAwLjU3MDE2NSwgMS4wMTYyMywgMS40NjE5NSwgMi41MDE4OCwgMy4wOTU2OSIsIFwKLSAgICAgICAgICAiMC4yODQ1MzgsIDAuMzE0NDQ4LCAwLjU4MjY3MSwgMS4wMjg3MiwgMS40NzQ0NiwgMi41MTQ0OSwgMy4xMDgyIiwgXAotICAgICAgICAgICIwLjI5Njc3NiwgMC4zMjY3MDYsIDAuNTk0OTQxLCAxLjA0MDk4LCAxLjQ4NjczLCAyLjUyNjQ0LCAzLjEyMDY2IiwgXAotICAgICAgICAgICIwLjMxNjAzMywgMC4zNDU5NTUsIDAuNjE0MjU5LCAxLjA2MDI1LCAxLjUwNTk4LCAyLjU0NTcsIDMuMTM5NjkiLCBcCi0gICAgICAgICAgIjAuMzMyNDYyLCAwLjM2MjM4OCwgMC42MzA2MzksIDEuMDc2NjgsIDEuNTIyNDQsIDIuNTYyMTYsIDMuMTU2NTEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzE1MjA5LCAwLjM3Mzg3MiwgMC45MDIsIDEuNzg0NjUsIDIuNjY1NzYsIDQuNzIzMTYsIDUuODk0MTMiLCBcCi0gICAgICAgICAgIjAuMzE1MjQ0LCAwLjM3MzEyOCwgMC45MDE4NzQsIDEuNzgzNzQsIDIuNjY1NTQsIDQuNzIzMzQsIDUuODkzNDEiLCBcCi0gICAgICAgICAgIjAuMzE1MjI3LCAwLjM3Mzg3NCwgMC45MDIwNDksIDEuNzg1NzUsIDIuNjY1MjUsIDQuNzIyODYsIDUuODkzOTYiLCBcCi0gICAgICAgICAgIjAuMzE1MjI1LCAwLjM3Mzg3MiwgMC45MDIwOSwgMS43ODMwOCwgMi42NjUzNywgNC43MjAzMSwgNS44OTM1OCIsIFwKLSAgICAgICAgICAiMC4zMTUyMjQsIDAuMzczODM5LCAwLjkwMTk2LCAxLjc4MzQyLCAyLjY2NTY0LCA0LjcyMzQyLCA1Ljg5Mzc5IiwgXAotICAgICAgICAgICIwLjMxNTE4NCwgMC4zNzM4NDksIDAuOTAxNDg2LCAxLjc4Mzc0LCAyLjY2ODk3LCA0LjcyMzEyLCA1Ljg5MzU0IiwgXAotICAgICAgICAgICIwLjMxNTI1MiwgMC4zNzM4OTgsIDAuOTAxOTE4LCAxLjc4MzIsIDIuNjY1NTUsIDQuNzIzMDEsIDUuODkzOTIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTEiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIyMTQzOCwgMC4yNDY2OTksIDAuNDczOTg3LCAwLjg1MzEzOCwgMS4yMzE0NiwgMi4xMTUyOCwgMi42MjA5IiwgXAotICAgICAgICAgICIwLjIzMzMzMiwgMC4yNTg2MDcsIDAuNDg1ODU2LCAwLjg2NDkzNSwgMS4yNDM1NSwgMi4xMjgxNiwgMi42MzIzMSIsIFwKLSAgICAgICAgICAiMC4yNDc5NDksIDAuMjczMjE4LCAwLjUwMDQ4MiwgMC44Nzk2MDcsIDEuMjU4MDgsIDIuMTQxODQsIDIuNjQ3NjQiLCBcCi0gICAgICAgICAgIjAuMjYyMTM3LCAwLjI4NzQwNCwgMC41MTQ2NDgsIDAuODkzNDMxLCAxLjI3MjM1LCAyLjE1NzA2LCAyLjY2MTA2IiwgXAotICAgICAgICAgICIwLjI3NjA1NywgMC4zMDEzMTgsIDAuNTI4NTk1LCAwLjkwNzc3NSwgMS4yODY2MiwgMi4xNzAwNywgMi42NzU3MSIsIFwKLSAgICAgICAgICAiMC4yOTc3NzIsIDAuMzIzMDQ2LCAwLjU1MDMzNSwgMC45Mjk0MzUsIDEuMzA3OTcsIDIuMTkxNzMsIDIuNjk3NDIiLCBcCi0gICAgICAgICAgIjAuMzE2MzIxLCAwLjM0MTU5NywgMC41Njg4OTcsIDAuOTQ4MDIsIDEuMzI2NTIsIDIuMjEwMjgsIDIuNzE2MDUiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjczMzUzLCAwLjMyMzU3MiwgMC43ODQ0MSwgMS41NTA5LCAyLjMyNDI4LCA0LjEwOTI3LCA1LjEzNjg3IiwgXAotICAgICAgICAgICIwLjI3Mjg1NiwgMC4zMjQxMjgsIDAuNzg0MTM4LCAxLjU1MDI0LCAyLjMxNzE0LCA0LjEwOTg3LCA1LjEzODg4IiwgXAotICAgICAgICAgICIwLjI3MzMzOSwgMC4zMjM0MzYsIDAuNzg0MzE4LCAxLjU1MDIyLCAyLjMyMzgyLCA0LjEwOTE4LCA1LjEzNjE4IiwgXAotICAgICAgICAgICIwLjI3MzI3NywgMC4zMjM0NDcsIDAuNzg0MDg4LCAxLjU1MzY4LCAyLjMxNzAyLCA0LjEwOTQ3LCA1LjEzOTEzIiwgXAotICAgICAgICAgICIwLjI3MzMxLCAwLjMyMzU2NywgMC43ODQyNjksIDEuNTUwMjEsIDIuMzE4MTQsIDQuMTE5NDIsIDUuMTM0MDciLCBcCi0gICAgICAgICAgIjAuMjczMzE4LCAwLjMyMzQ1OCwgMC43ODQyOTcsIDEuNTUwMjEsIDIuMzIzNTMsIDQuMTA5MTMsIDUuMTM1OTIiLCBcCi0gICAgICAgICAgIjAuMjczNDY0LCAwLjMyMzUxNiwgMC43ODQzMDcsIDEuNTUwMjEsIDIuMzIzNjMsIDQuMTA5MTcsIDUuMTM1NjYiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjQxMDAyLCAwLjI3MDkwNSwgMC41MzkxODksIDAuOTg1MTcxLCAxLjQzMDkzLCAyLjQ3MDYyLCAzLjA2NDYyIiwgXAotICAgICAgICAgICIwLjI1MTIxMiwgMC4yODExMjIsIDAuNTQ5MzM3LCAwLjk5NTQ1OSwgMS40NDExMiwgMi40ODA4NSwgMy4wNzQ4NSIsIFwKLSAgICAgICAgICAiMC4yNjM4MTYsIDAuMjkzNzQxLCAwLjU2MTk2OCwgMS4wMDgwNSwgMS40NTM3NiwgMi40OTM1MywgMy4wODc4MiIsIFwKLSAgICAgICAgICAiMC4yNzcyNzUsIDAuMzA3MTk5LCAwLjU3NTQ0MiwgMS4wMjE1OCwgMS40NjcyNCwgMi41MDcwOCwgMy4xMDA5OSIsIFwKLSAgICAgICAgICAiMC4yOTA1ODEsIDAuMzIwNTEsIDAuNTg4NzYzLCAxLjAzNDkyLCAxLjQ4MDU3LCAyLjUyMDQzLCAzLjExNDMyIiwgXAotICAgICAgICAgICIwLjMxMTU1NiwgMC4zNDE0NjUsIDAuNjA5NzQyLCAxLjA1NTgxLCAxLjUwMTY1LCAyLjU0MTI4LCAzLjEzNTI3IiwgXAotICAgICAgICAgICIwLjMyODk1MywgMC4zNTg4NjksIDAuNjI3MTQsIDEuMDczMjMsIDEuNTE5MSwgMi41NTg2NiwgMy4xNTI3MyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMTUyNSwgMC4zNzM4MTIsIDAuOTAxNTgzLCAxLjc4MzUzLCAyLjY2NzM0LCA0LjcyMzI5LCA1Ljg5MzkyIiwgXAotICAgICAgICAgICIwLjMxNTIzOSwgMC4zNzM4NjYsIDAuOTAyMDk1LCAxLjc4NDI0LCAyLjY2NTU1LCA0LjcyMzY5LCA1Ljg5Mzk1IiwgXAotICAgICAgICAgICIwLjMxNTI0MSwgMC4zNzM4NzMsIDAuOTAyMDY5LCAxLjc4NDYzLCAyLjY2NTc3LCA0LjcyMzE1LCA1Ljg5NDI5IiwgXAotICAgICAgICAgICIwLjMxNDcwNiwgMC4zNzM4NDcsIDAuOTAyMDU2LCAxLjc4NDI5LCAyLjY2NTY1LCA0LjcyMzA1LCA1Ljg5MzYiLCBcCi0gICAgICAgICAgIjAuMzE1MTcyLCAwLjM3Mzg0MSwgMC45MDE5OTEsIDEuNzg0MTEsIDIuNjY1MjUsIDQuNzIyOTIsIDUuODkzNTkiLCBcCi0gICAgICAgICAgIjAuMzE1MTYxLCAwLjM3MzEzNywgMC45MDIwNzksIDEuNzgzNTMsIDIuNjY3NTQsIDQuNzIzMDksIDUuODkzNTQiLCBcCi0gICAgICAgICAgIjAuMzE1Mjg1LCAwLjM3MzI0OSwgMC45MDIxODQsIDEuNzg1MSwgMi42NjcwOCwgNC43MjMwMiwgNS44OTMzNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjE5NTEyLCAwLjI0NDg4MywgMC40NzI1NTMsIDAuODUxNDg5LCAxLjIzMDI5LCAyLjExMzk5LCAyLjYxODkyIiwgXAotICAgICAgICAgICIwLjIyOTgwOCwgMC4yNTUxNTksIDAuNDgyODUsIDAuODYxNzc0LCAxLjI0MDczLCAyLjEyNDI2LCAyLjYyOTIxIiwgXAotICAgICAgICAgICIwLjI0MzM5MiwgMC4yNjg3MzksIDAuNDk2NDE4LCAwLjg3NTM1NiwgMS4yNTQxOCwgMi4xMzc4NSwgMi42NDI3OSIsIFwKLSAgICAgICAgICAiMC4yNTcyMiwgMC4yODI1NywgMC41MTAyNjYsIDAuODg5MTkyLCAxLjI2Nzk5LCAyLjE1MTc4LCAyLjY1NjYzIiwgXAotICAgICAgICAgICIwLjI3MDc4LCAwLjI5NjE0OCwgMC41MjM4NDYsIDAuOTAyNzc2LCAxLjI4MTU5LCAyLjE2NTU3LCAyLjY3MDIyIiwgXAotICAgICAgICAgICIwLjI5MjkwOSwgMC4zMTgyNywgMC41NDU5ODMsIDAuOTI0OTMyLCAxLjMwMzc0LCAyLjE4NzQzLCAyLjY5MjQiLCBcCi0gICAgICAgICAgIjAuMzExOTgyLCAwLjMzNzMyOCwgMC41NjUwMzksIDAuOTQzOTg0LCAxLjMyMjc5LCAyLjIwNjU5LCAyLjcxMTQzIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI3NDU1OCwgMC4zMjUzMTMsIDAuNzg1Mzc2LCAxLjU1MjEsIDIuMzIzMzksIDQuMTE4NTUsIDUuMTM3MzYiLCBcCi0gICAgICAgICAgIjAuMjc0NTQ1LCAwLjMyNTE2OSwgMC43ODUzNjksIDEuNTUzOSwgMi4zMjMwNCwgNC4xMTgyOCwgNS4xMzcyIiwgXAotICAgICAgICAgICIwLjI3NDUyNSwgMC4zMjUzLCAwLjc4NDAxNiwgMS41NTIyOSwgMi4zMjQwNiwgNC4xMTg5MSwgNS4xMzY4NSIsIFwKLSAgICAgICAgICAiMC4yNzQ1MTUsIDAuMzI1Mjk1LCAwLjc4NDQwNCwgMS41NTM4OCwgMi4zMjA0OCwgNC4xMTQwNCwgNS4xMzY2NyIsIFwKLSAgICAgICAgICAiMC4yNzQ0NTUsIDAuMzI1MjY5LCAwLjc4NTMwMiwgMS41NTQzOCwgMi4zMjM0NCwgNC4xMiwgNS4xMzc1OCIsIFwKLSAgICAgICAgICAiMC4yNzQ1MzgsIDAuMzI0NzE2LCAwLjc4NTMyMSwgMS41NTIxNSwgMi4zMjA0MiwgNC4xMTk3MSwgNS4xMzk0MyIsIFwKLSAgICAgICAgICAiMC4yNzQ2OTksIDAuMzI1MjU5LCAwLjc4NDMyMywgMS41NTIxLCAyLjMyMjk4LCA0LjExOTg5LCA1LjEzNjI4Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIwMDAzNywgMC4yMjk3MzQsIDAuNDk3MDc5LCAwLjk0MjcxOCwgMS4zODg0NiwgMi40Mjg3MywgMy4wMjE4NSIsIFwKLSAgICAgICAgICAiMC4yMTE3MTksIDAuMjQxNDI0LCAwLjUwODc4NiwgMC45NTQ3NzUsIDEuMzk5ODQsIDIuNDQwMDUsIDMuMDMzNSIsIFwKLSAgICAgICAgICAiMC4yMjY1MTEsIDAuMjU2MjE0LCAwLjUyMzY1NCwgMC45NjkyMjcsIDEuNDE1NzIsIDIuNDU0OTEsIDMuMDQ4MjgiLCBcCi0gICAgICAgICAgIjAuMjQwODkzLCAwLjI3MDYwNCwgMC41Mzc5OTksIDAuOTgzNTMyLCAxLjQyODk5LCAyLjQ2OTExLCAzLjA2MjczIiwgXAotICAgICAgICAgICIwLjI1NDQ0NywgMC4yODQxNTksIDAuNTUxNTcyLCAwLjk5NzIyLCAxLjQ0MzYzLCAyLjQ4MjExLCAzLjA3NjI3IiwgXAotICAgICAgICAgICIwLjI3NDI4MywgMC4zMDQwMDcsIDAuNTcxNDc1LCAxLjAxNzA5LCAxLjQ2MjY2LCAyLjUwMjQ5LCAzLjA5NjQ5IiwgXAotICAgICAgICAgICIwLjI5MDMwNiwgMC4zMjAwMjksIDAuNTg3NTQ4LCAxLjAzMzMzLCAxLjQ3ODYyLCAyLjUxODM4LCAzLjExMjQxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMxMDg4MywgMC4zNjk0OTEsIDAuOTAwMDIxLCAxLjc4MTMzLCAyLjY2NDI0LCA0LjcyMDQzLCA1Ljg5MTY2IiwgXAotICAgICAgICAgICIwLjMxMDc3OCwgMC4zNjk1ODIsIDAuODk4NDQxLCAxLjc4MDU2LCAyLjY2NzM3LCA0LjcyMDMxLCA1Ljg5MTczIiwgXAotICAgICAgICAgICIwLjMxMDkwNywgMC4zNjk1NTQsIDAuOTAwMDIsIDEuNzg0NCwgMi42NjQ4MywgNC43MjA1MSwgNS44OTIiLCBcCi0gICAgICAgICAgIjAuMzEwOTAyLCAwLjM2OTU5MiwgMC44OTgxOSwgMS43ODMzNCwgMi42NjQ2NiwgNC43MjIyLCA1Ljg5MTQ3IiwgXAotICAgICAgICAgICIwLjMxMDk5OSwgMC4zNjk2MzksIDAuODk3MzAzLCAxLjc4NDE3LCAyLjY2NzcxLCA0LjcyMiwgNS44OTE2NSIsIFwKLSAgICAgICAgICAiMC4zMTEwNjMsIDAuMzY5ODI2LCAwLjg5NzE3MywgMS43ODQ3OCwgMi42NjgxMSwgNC43MjEyMywgNS44OTA3MiIsIFwKLSAgICAgICAgICAiMC4zMTExNDYsIDAuMzY5NDYzLCAwLjg5OTc3NCwgMS43ODM0MiwgMi42Njg1OCwgNC43MjA1OSwgNS44OTE2MyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDEwNTEsIDAuMDAxMDUyLCAwLjAwMTA1NSwgMC4wMDEwNTUsIDAuMDAxMDU2LCAwLjAwMTA1NSwgMC4wMDEwNTYiLCBcCi0gICAgICAgICAgIjAuMDAxMDQsIDAuMDAxMDQsIDAuMDAxMDQyLCAwLjAwMTA0MywgMC4wMDEwNDMsIDAuMDAxMDQzLCAwLjAwMTA0NCIsIFwKLSAgICAgICAgICAiMC4wMDEwMzMsIDAuMDAxMDMzLCAwLjAwMTAzNiwgMC4wMDEwMzcsIDAuMDAxMDM3LCAwLjAwMTAzNywgMC4wMDEwMzciLCBcCi0gICAgICAgICAgIjAuMDAxMDI4LCAwLjAwMTAyOSwgMC4wMDEwMzEsIDAuMDAxMDMzLCAwLjAwMTAzMiwgMC4wMDEwMzIsIDAuMDAxMDMzIiwgXAotICAgICAgICAgICIwLjAwMTAyNSwgMC4wMDEwMjUsIDAuMDAxMDI4LCAwLjAwMTAyOSwgMC4wMDEwMjksIDAuMDAxMDI5LCAwLjAwMTAyOSIsIFwKLSAgICAgICAgICAiMC4wMDEwMjEsIDAuMDAxMDIyLCAwLjAwMTAyNCwgMC4wMDEwMjUsIDAuMDAxMDI2LCAwLjAwMTAyNiwgMC4wMDEwMjYiLCBcCi0gICAgICAgICAgIjAuMDAxMDE4LCAwLjAwMTAxOSwgMC4wMDEwMjIsIDAuMDAxMDIzLCAwLjAwMTAyNCwgMC4wMDEwMjQsIDAuMDAxMDI0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxOTkzLCAwLjAwMTk5NCwgMC4wMDE5OTcsIDAuMDAxOTk5LCAwLjAwMTk5OSwgMC4wMDE5OTksIDAuMDAxOTk5IiwgXAotICAgICAgICAgICIwLjAwMTk4NywgMC4wMDE5ODgsIDAuMDAxOTkxLCAwLjAwMTk5MiwgMC4wMDE5OTMsIDAuMDAxOTkzLCAwLjAwMTk5MyIsIFwKLSAgICAgICAgICAiMC4wMDE5ODMsIDAuMDAxOTg0LCAwLjAwMTk4OCwgMC4wMDE5ODksIDAuMDAxOTg5LCAwLjAwMTk5LCAwLjAwMTk4OSIsIFwKLSAgICAgICAgICAiMC4wMDE5OCwgMC4wMDE5ODEsIDAuMDAxOTg1LCAwLjAwMTk4NiwgMC4wMDE5ODcsIDAuMDAxOTg3LCAwLjAwMTk4NyIsIFwKLSAgICAgICAgICAiMC4wMDE5NzcsIDAuMDAxOTc5LCAwLjAwMTk4MywgMC4wMDE5ODQsIDAuMDAxOTg1LCAwLjAwMTk4NSwgMC4wMDE5ODUiLCBcCi0gICAgICAgICAgIjAuMDAxOTc1LCAwLjAwMTk3NiwgMC4wMDE5ODEsIDAuMDAxOTgzLCAwLjAwMTk4MywgMC4wMDE5ODQsIDAuMDAxOTg0IiwgXAotICAgICAgICAgICIwLjAwMTk3MywgMC4wMDE5NzQsIDAuMDAxOTc5LCAwLjAwMTk4MSwgMC4wMDE5ODIsIDAuMDAxOTgyLCAwLjAwMTk4MyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkExIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDA4NTgsIDAuMDAwODU4LCAwLjAwMDg2LCAwLjAwMDg2LCAwLjAwMDg2LCAwLjAwMDg2LCAwLjAwMDg2IiwgXAotICAgICAgICAgICIwLjAwMDg0OCwgMC4wMDA4NDgsIDAuMDAwODUsIDAuMDAwODUsIDAuMDAwODUsIDAuMDAwODUsIDAuMDAwODUiLCBcCi0gICAgICAgICAgIjAuMDAwODM2LCAwLjAwMDgzNywgMC4wMDA4MzgsIDAuMDAwODM4LCAwLjAwMDgzOSwgMC4wMDA4MzksIDAuMDAwODM4IiwgXAotICAgICAgICAgICIwLjAwMDgyOCwgMC4wMDA4MjksIDAuMDAwODMsIDAuMDAwODMxLCAwLjAwMDgzMSwgMC4wMDA4MzEsIDAuMDAwODMxIiwgXAotICAgICAgICAgICIwLjAwMDgyMywgMC4wMDA4MjMsIDAuMDAwODI1LCAwLjAwMDgyNiwgMC4wMDA4MjYsIDAuMDAwODI2LCAwLjAwMDgyNiIsIFwKLSAgICAgICAgICAiMC4wMDA4MTcsIDAuMDAwODE3LCAwLjAwMDgyLCAwLjAwMDgyMSwgMC4wMDA4MjEsIDAuMDAwODIxLCAwLjAwMDgyMSIsIFwKLSAgICAgICAgICAiMC4wMDA4MTMsIDAuMDAwODE0LCAwLjAwMDgxNywgMC4wMDA4MTgsIDAuMDAwODE4LCAwLjAwMDgxOCwgMC4wMDA4MTgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDE4NTUsIDAuMDAxODU2LCAwLjAwMTg1OSwgMC4wMDE4NjEsIDAuMDAxODYxLCAwLjAwMTg2MiwgMC4wMDE4NjIiLCBcCi0gICAgICAgICAgIjAuMDAxODQ2LCAwLjAwMTg0NywgMC4wMDE4NTEsIDAuMDAxODUyLCAwLjAwMTg1MiwgMC4wMDE4NTMsIDAuMDAxODUzIiwgXAotICAgICAgICAgICIwLjAwMTgzOSwgMC4wMDE4MzksIDAuMDAxODQzLCAwLjAwMTg0NSwgMC4wMDE4NDUsIDAuMDAxODQ2LCAwLjAwMTg0NiIsIFwKLSAgICAgICAgICAiMC4wMDE4MzQsIDAuMDAxODM1LCAwLjAwMTgzOSwgMC4wMDE4NDEsIDAuMDAxODQxLCAwLjAwMTg0MiwgMC4wMDE4NDIiLCBcCi0gICAgICAgICAgIjAuMDAxODMsIDAuMDAxODMxLCAwLjAwMTgzNiwgMC4wMDE4MzgsIDAuMDAxODM5LCAwLjAwMTg0LCAwLjAwMTgzOSIsIFwKLSAgICAgICAgICAiMC4wMDE4MjYsIDAuMDAxODI4LCAwLjAwMTgzNCwgMC4wMDE4MzYsIDAuMDAxODM3LCAwLjAwMTgzOCwgMC4wMDE4MzgiLCBcCi0gICAgICAgICAgIjAuMDAxODI0LCAwLjAwMTgyNiwgMC4wMDE4MzMsIDAuMDAxODM1LCAwLjAwMTgzNiwgMC4wMDE4MzcsIDAuMDAxODM3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTA1NCwgMC4wMDEwNTUsIDAuMDAxMDU3LCAwLjAwMTA1OCwgMC4wMDEwNTksIDAuMDAxMDU4LCAwLjAwMTA1OSIsIFwKLSAgICAgICAgICAiMC4wMDEwNCwgMC4wMDEwNCwgMC4wMDEwNDMsIDAuMDAxMDQzLCAwLjAwMTA0MywgMC4wMDEwNDQsIDAuMDAxMDQ0IiwgXAotICAgICAgICAgICIwLjAwMTAzLCAwLjAwMTAzMSwgMC4wMDEwMzMsIDAuMDAxMDM0LCAwLjAwMTAzNCwgMC4wMDEwMzQsIDAuMDAxMDM1IiwgXAotICAgICAgICAgICIwLjAwMTAyNCwgMC4wMDEwMjUsIDAuMDAxMDI4LCAwLjAwMTAyOSwgMC4wMDEwMjksIDAuMDAxMDI5LCAwLjAwMTAyOSIsIFwKLSAgICAgICAgICAiMC4wMDEwMiwgMC4wMDEwMjEsIDAuMDAxMDI0LCAwLjAwMTAyNiwgMC4wMDEwMjYsIDAuMDAxMDI2LCAwLjAwMTAyNiIsIFwKLSAgICAgICAgICAiMC4wMDEwMTcsIDAuMDAxMDE4LCAwLjAwMTAyMiwgMC4wMDEwMjMsIDAuMDAxMDI0LCAwLjAwMTAyNCwgMC4wMDEwMjQiLCBcCi0gICAgICAgICAgIjAuMDAxMDE2LCAwLjAwMTAxNywgMC4wMDEwMjEsIDAuMDAxMDIzLCAwLjAwMTAyNCwgMC4wMDEwMjUsIDAuMDAxMDI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxNDkzLCAwLjAwMTQ5NCwgMC4wMDE0OTQsIDAuMDAxNDk1LCAwLjAwMTQ5NSwgMC4wMDE0OTUsIDAuMDAxNDk1IiwgXAotICAgICAgICAgICIwLjAwMTQ4NSwgMC4wMDE0ODYsIDAuMDAxNDg3LCAwLjAwMTQ4NywgMC4wMDE0ODcsIDAuMDAxNDg3LCAwLjAwMTQ4NyIsIFwKLSAgICAgICAgICAiMC4wMDE0NzcsIDAuMDAxNDc3LCAwLjAwMTQ3OSwgMC4wMDE0NzksIDAuMDAxNDgsIDAuMDAxNDgsIDAuMDAxNDgiLCBcCi0gICAgICAgICAgIjAuMDAxNDcxLCAwLjAwMTQ3MSwgMC4wMDE0NzQsIDAuMDAxNDc1LCAwLjAwMTQ3NSwgMC4wMDE0NzUsIDAuMDAxNDc1IiwgXAotICAgICAgICAgICIwLjAwMTQ2NSwgMC4wMDE0NjYsIDAuMDAxNDcsIDAuMDAxNDcxLCAwLjAwMTQ3MSwgMC4wMDE0NzEsIDAuMDAxNDcxIiwgXAotICAgICAgICAgICIwLjAwMTQ2MywgMC4wMDE0NjQsIDAuMDAxNDY4LCAwLjAwMTQ3LCAwLjAwMTQ3LCAwLjAwMTQ3MSwgMC4wMDE0NzEiLCBcCi0gICAgICAgICAgIjAuMDAxNDYxLCAwLjAwMTQ2MiwgMC4wMDE0NjcsIDAuMDAxNDY5LCAwLjAwMTQ3LCAwLjAwMTQ3LCAwLjAwMTQ3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogT0FJMjFYMiAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChPQUkyMVgyKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMTYyNTM5OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNjM1MzE7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNjI5MTY7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNjM1MzE7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNjEyLCAwLjAwMDYxMiwgMC4wMDA2MTEsIDAuMDAwNjExLCAwLjAwMDYxMSwgMC4wMDA2MTEsIDAuMDAwNjEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA2MTUsIDAuMDAwNjE0LCAwLjAwMDYxNCwgMC4wMDA2MTQsIDAuMDAwNjE0LCAwLjAwMDYxNCwgMC4wMDA2MTQiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEExKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE1NzgwNTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE1NzgwNTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE1NzIwNTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA2MTIsIDAuMDAwNjEyLCAwLjAwMDYxMiwgMC4wMDA2MTIsIDAuMDAwNjEyLCAwLjAwMDYxMiwgMC4wMDA2MTIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA2MTQsIDAuMDAwNjE0LCAwLjAwMDYxNCwgMC4wMDA2MTQsIDAuMDAwNjE0LCAwLjAwMDYxNCwgMC4wMDA2MTQiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE0ODU1MzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE0ODQ4ODsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE0ODU1MzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAzNTksIDAuMDAwMzU5LCAwLjAwMDM1OSwgMC4wMDAzNiwgMC4wMDAzNiwgMC4wMDAzNTgsIDAuMDAwMzU5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNjk1LCAwLjAwMDY5NiwgMC4wMDA2OTUsIDAuMDAwNjk2LCAwLjAwMDY5NiwgMC4wMDA2OTcsIDAuMDAwNjk3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMTM0Njc2OwotICAgIGZ1bmN0aW9uIDogIighKChBMCtBMSkgQjApKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTAiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwOTcxOSwgMC40ODAxMjMsIDAuNzc1NzM4LCAxLjE0NTIsIDEuNTE0NzEsIDEuODgzODUsIDIuMjUyNDQiLCBcCi0gICAgICAgICAgIjAuMTIxMTA3LCAwLjQ5MTc3NSwgMC43ODc0MDMsIDEuMTU2NDQsIDEuNTI2MDMsIDEuODk1MjksIDIuMjY0MTciLCBcCi0gICAgICAgICAgIjAuMTM0MTM1LCAwLjUwNDcwOSwgMC44MDA1MjQsIDEuMTY5NTQsIDEuNTM5MTYsIDEuOTA3ODYsIDIuMjc4MDIiLCBcCi0gICAgICAgICAgIjAuMTQ2NjQ5LCAwLjUxNzM3OCwgMC44MTMwNjMsIDEuMTgyMjgsIDEuNTUxMzEsIDEuOTIxLCAyLjI5MDQ1IiwgXAotICAgICAgICAgICIwLjE1OTA0NywgMC41Mjk4NywgMC44MjU0OTMsIDEuMTk1MDYsIDEuNTY0NTUsIDEuOTMzNjYsIDIuMzAyNCIsIFwKLSAgICAgICAgICAiMC4xNzg2OTEsIDAuNTQ5ODA2LCAwLjg0NTQ0LCAxLjIxNDU2LCAxLjU4Mzg0LCAxLjk1MzEsIDIuMzIyOTMiLCBcCi0gICAgICAgICAgIjAuMTk2MDI3LCAwLjU2NzEyOCwgMC44NjI4MDIsIDEuMjMyMjUsIDEuNjAxNSwgMS45NzA1LCAyLjM0MDMxIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE4NzE2OCwgMC45MTA1MywgMS40ODc4OSwgMi4yMDkxMywgMi45MzA2MiwgMy42NTU0LCA0LjM3MzY1IiwgXAotICAgICAgICAgICIwLjE4NzAzMSwgMC45MDk2MDQsIDEuNDg3MTUsIDIuMjA4NjEsIDIuOTMwODUsIDMuNjUyNjUsIDQuMzc2NzYiLCBcCi0gICAgICAgICAgIjAuMTg3MTU2LCAwLjkwOTk3LCAxLjQ4NzE1LCAyLjIwODYzLCAyLjkzMDc3LCAzLjY1MTk3LCA0LjM3NDE0IiwgXAotICAgICAgICAgICIwLjE4NzU1OCwgMC45MDk3NDMsIDEuNDg4NTcsIDIuMjA5MTQsIDIuOTMwMjcsIDMuNjUyNjQsIDQuMzczOTkiLCBcCi0gICAgICAgICAgIjAuMTg5NDQ2LCAwLjkxMDAzMSwgMS40ODg0NCwgMi4yMDg5MiwgMi45MzE2OCwgMy42NTIzNCwgNC4zNzQ0NSIsIFwKLSAgICAgICAgICAiMC4xOTM4MTksIDAuOTA5NzQyLCAxLjQ4NzMxLCAyLjIxMDY4LCAyLjkzMDI5LCAzLjY1NDY1LCA0LjM3NDg4IiwgXAotICAgICAgICAgICIwLjE5OTA5NSwgMC45MDk1MzYsIDEuNDg4ODEsIDIuMjA5MTYsIDIuOTMyNiwgMy42NTE5NSwgNC4zNzQzNSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMjU2MjIsIDAuNTM2Nzg0LCAwLjg2NTM2MywgMS4yNzU0OCwgMS42ODQ5LCAyLjA5NTcxLCAyLjUwNTgyIiwgXAotICAgICAgICAgICIwLjEzNzM4MiwgMC41NDg2NzUsIDAuODc3MDU5LCAxLjI4NzA4LCAxLjY5NzYzLCAyLjEwNzI5LCAyLjUxODM0IiwgXAotICAgICAgICAgICIwLjE1MTU4OCwgMC41NjI4ODgsIDAuODkxMjA3LCAxLjMwMTUsIDEuNzExODgsIDIuMTIyOTUsIDIuNTMyNjkiLCBcCi0gICAgICAgICAgIjAuMTY1MjQyLCAwLjU3NjU1MywgMC45MDUwMDgsIDEuMzE1MzEsIDEuNzI2MjYsIDIuMTM1OTEsIDIuNTQ1OTYiLCBcCi0gICAgICAgICAgIjAuMTc4NzE0LCAwLjU5MDIzMSwgMC45MTg0MTEsIDEuMzI5MTIsIDEuNzM5MjEsIDIuMTQ5NDEsIDIuNTU5OTkiLCBcCi0gICAgICAgICAgIjAuMjAwMTk5LCAwLjYxMTc5NywgMC45NDAxMzEsIDEuMzUwMjQsIDEuNzYxMzUsIDIuMTcwOTMsIDIuNTgxNTIiLCBcCi0gICAgICAgICAgIjAuMjE5MTksIDAuNjMwNzM4LCAwLjk1OTIzMSwgMS4zNjk1NywgMS43NzkzNSwgMi4xOTA3NCwgMi42MDAzMyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMDA0ODcsIDAuOTg1NjE1LCAxLjYxMzcyLCAyLjM5ODQ5LCAzLjE4MjQ5LCAzLjk2NzY3LCA0Ljc1MjU5IiwgXAotICAgICAgICAgICIwLjIwMDQ4NywgMC45ODUzNTQsIDEuNjEzNDEsIDIuMzk4NDcsIDMuMTgyODEsIDMuOTY3NjQsIDQuNzU0MDkiLCBcCi0gICAgICAgICAgIjAuMjAwNDcyLCAwLjk4NTUxNiwgMS42MTI5MiwgMi4zOTgwMSwgMy4xODI5NSwgMy45Njg0OCwgNC43NTM5OSIsIFwKLSAgICAgICAgICAiMC4yMDA1MjEsIDAuOTg1NDEzLCAxLjYxMzI3LCAyLjM5Nzk3LCAzLjE4Mjg1LCAzLjk2Nzk5LCA0Ljc1MzM1IiwgXAotICAgICAgICAgICIwLjIwMTExLCAwLjk4NTc4MSwgMS42MTM1MywgMi4zOTg5MiwgMy4xODI3OSwgMy45Njc3NCwgNC43NTU2MiIsIFwKLSAgICAgICAgICAiMC4yMDQ0MzUsIDAuOTg1NDIyLCAxLjYxMjkzLCAyLjM5NzY0LCAzLjE4MzI4LCAzLjk2NjEzLCA0Ljc1MDY4IiwgXAotICAgICAgICAgICIwLjIwODk2OSwgMC45ODUzNDcsIDEuNjEyODcsIDIuMzk4NTIsIDMuMTgyNjksIDMuOTY4MjcsIDQuNzUyNjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwMzUzOCwgMC40NzQwNzQsIDAuNzY5Nzk4LCAxLjEzODg0LCAxLjUwODEzLCAxLjg3NzE2LCAyLjI0NzIyIiwgXAotICAgICAgICAgICIwLjExMzU4NiwgMC40ODQyNTIsIDAuNzc5OTY0LCAxLjE0ODk5LCAxLjUxODI4LCAxLjg4NzM0LCAyLjI1NzQiLCBcCi0gICAgICAgICAgIjAuMTI2NDg0LCAwLjQ5NzIyNCwgMC43OTI3NDYsIDEuMTYyMTgsIDEuNTMxNiwgMS45MDAzNiwgMi4yNzAwNyIsIFwKLSAgICAgICAgICAiMC4xMzk2MzUsIDAuNTEwNDQ1LCAwLjgwNjA3OSwgMS4xNzU1MiwgMS41NDUxMywgMS45MTM4OSwgMi4yODM5MyIsIFwKLSAgICAgICAgICAiMC4xNTI1ODgsIDAuNTIzMzc2LCAwLjgxODg5MywgMS4xODgxOCwgMS41NTc1MSwgMS45MjY1MywgMi4yOTYzNCIsIFwKLSAgICAgICAgICAiMC4xNzQ1NTYsIDAuNTQ0MzU3LCAwLjgzOTg2NiwgMS4yMDkxNywgMS41Nzg3MiwgMS45NDgyNSwgMi4zMTY5NiIsIFwKLSAgICAgICAgICAiMC4xOTMyNjUsIDAuNTYyNzEyLCAwLjg1ODI1OCwgMS4yMjc2OCwgMS41OTczLCAxLjk2NjI3LCAyLjMzNiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xODcyMDQsIDAuOTA5NzM4LCAxLjQ4NzE0LCAyLjIxMDc1LCAyLjkzMjU4LCAzLjY1MTk2LCA0LjM3Mzk5IiwgXAotICAgICAgICAgICIwLjE4NzEyNywgMC45MDk3MjUsIDEuNDg3MTUsIDIuMjA4NTQsIDIuOTMwOSwgMy42NTE5NiwgNC4zNzQwNCIsIFwKLSAgICAgICAgICAiMC4xODcxNCwgMC45MTA1ODQsIDEuNDg3MjksIDIuMjEwNTcsIDIuOTMwODEsIDMuNjUxOTQsIDQuMzc0NTMiLCBcCi0gICAgICAgICAgIjAuMTg5MDE0LCAwLjkwOTc0MSwgMS40ODg0NywgMi4yMDk0MSwgMi45MzA3NiwgMy42NTMxMywgNC4zNzQ3OSIsIFwKLSAgICAgICAgICAiMC4xOTI3MjksIDAuOTA5NjM5LCAxLjQ4NjkzLCAyLjIwODY0LCAyLjkzMjYsIDMuNjUxOTQsIDQuMzc0MzQiLCBcCi0gICAgICAgICAgIjAuMjAwNzQ2LCAwLjkwOTYzMiwgMS40ODc4MSwgMi4yMDg1MywgMi45MzI3MSwgMy42NTIyOSwgNC4zNzY2NyIsIFwKLSAgICAgICAgICAiMC4yMDk2ODMsIDAuOTEwMzYsIDEuNDg2OTIsIDIuMjA5MTYsIDIuOTMwNjQsIDMuNjU0ODEsIDQuMzc0MTIiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTE3MjQ5LCAwLjUzMzEyNywgMC44NjUwNTgsIDEuMjgwNTcsIDEuNjk3MDQsIDIuMTExODQsIDIuNTI2OCIsIFwKLSAgICAgICAgICAiMC4xMjkzNDQsIDAuNTQ1MjI2LCAwLjg3NzM3OCwgMS4yOTM0NSwgMS43MDg3NSwgMi4xMjQwNSwgMi41Mzk4NCIsIFwKLSAgICAgICAgICAiMC4xNDMzNjgsIDAuNTU5NTAzLCAwLjg5MjA5MiwgMS4zMDgyMSwgMS43MjI4OCwgMi4xMzc4MSwgMi41NTI5OSIsIFwKLSAgICAgICAgICAiMC4xNTY4NTQsIDAuNTczMTY2LCAwLjkwNTcyMSwgMS4zMjEyLCAxLjczNzY2LCAyLjE1MjE4LCAyLjU2NzU2IiwgXAotICAgICAgICAgICIwLjE3MDE3MywgMC41ODY3NjIsIDAuOTE5NDkxLCAxLjMzNTA1LCAxLjc1MDE5LCAyLjE2NjIsIDIuNTgxNjMiLCBcCi0gICAgICAgICAgIjAuMTkxMzY1LCAwLjYwODA3OSwgMC45NDA1OSwgMS4zNTY0MSwgMS43NzI3LCAyLjE4NzIzLCAyLjYwMjczIiwgXAotICAgICAgICAgICIwLjIwOTg5LCAwLjYyNjkxNiwgMC45NTkzNDUsIDEuMzc1MDcsIDEuNzkwMDgsIDIuMjA2NjgsIDIuNjIxNjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTkzMjg1LCAwLjk4OTE4NSwgMS42MzQ1NywgMi40MzY5NSwgMy4yMjE0MywgNC4wMTQ3NywgNC44MjA1NCIsIFwKLSAgICAgICAgICAiMC4xOTMyNywgMC45ODg5MzcsIDEuNjMzODIsIDIuNDI0MzUsIDMuMjE4MjksIDQuMDE1NTIsIDQuODEyOSIsIFwKLSAgICAgICAgICAiMC4xOTMyOTYsIDAuOTkyMzI1LCAxLjYyNTksIDIuNDIzMDEsIDMuMjM0NTksIDQuMDI4ODgsIDQuODE4NjIiLCBcCi0gICAgICAgICAgIjAuMTkzMjA0LCAwLjk5Mjc1MywgMS42MzAzNSwgMi40MzY3NiwgMy4yMjE0MywgNC4wMzAzOCwgNC44MTE2MyIsIFwKLSAgICAgICAgICAiMC4xOTQyNjIsIDAuOTkwMTQ4LCAxLjYyNzAzLCAyLjQyODQ5LCAzLjIzNDU0LCA0LjAyMzE1LCA0LjgxNjMxIiwgXAotICAgICAgICAgICIwLjE5NzMyLCAwLjk5MzA1NywgMS42MzQxMywgMi40MjI0LCAzLjIyMTc0LCA0LjAzMDMyLCA0LjgxNzUzIiwgXAotICAgICAgICAgICIwLjIwMTk4NSwgMC45OTAxMDEsIDEuNjMzMDMsIDIuNDMwOTYsIDMuMjMxNDksIDQuMDE2OTYsIDQuODIwNDkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjAiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0Nzc0OSwgMC4yMjc5ODMsIDAuMzcxOTg4LCAwLjU1MjAwOCwgMC43MzIxOTMsIDAuOTEyNDE1LCAxLjA5MjE3IiwgXAotICAgICAgICAgICIwLjA1OTM5NywgMC4yMzkyNjcsIDAuMzgzMzMsIDAuNTYzMzM3LCAwLjc0MzQ1LCAwLjkyMzQ5NiwgMS4xMDM2NCIsIFwKLSAgICAgICAgICAiMC4wNzQxNDksIDAuMjU0MDQ0LCAwLjM5ODExMSwgMC41NzU0NjEsIDAuNzU1ODM5LCAwLjkzNTYzNSwgMS4xMTU2MyIsIFwKLSAgICAgICAgICAiMC4wODkwNzYsIDAuMjY4NjEsIDAuNDEyNjM1LCAwLjU5MDU1MywgMC43NzAzMTksIDAuOTUwMTkyLCAxLjEzMDM4IiwgXAotICAgICAgICAgICIwLjEwMzkzNiwgMC4yODMzNDEsIDAuNDI3MDIxLCAwLjYwNzI4MywgMC43ODQ5MjMsIDAuOTY0NDM2LCAxLjE0NDkiLCBcCi0gICAgICAgICAgIjAuMTI2NzQ4LCAwLjMwNjk0LCAwLjQ1MDQyLCAwLjYzMDM0NywgMC44MTA2OTMsIDAuOTg2OTgsIDEuMTY3NTkiLCBcCi0gICAgICAgICAgIjAuMTQ0ODQ1LCAwLjMyNzU2NiwgMC40NzEyMywgMC42NTA4NzUsIDAuODMwODAyLCAxLjAwNjc5LCAxLjE4NjcyIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5NzgwMSwgMC40NjMwMTQsIDAuNzU1NDQ0LCAxLjEyMTIxLCAxLjQ4NzQxLCAxLjg1MzQsIDIuMjE4ODMiLCBcCi0gICAgICAgICAgIjAuMDk3ODMyLCAwLjQ2Mjg5MSwgMC43NTU0MTYsIDEuMTIxMTgsIDEuNDg3MTYsIDEuODUyOTksIDIuMjE4OTMiLCBcCi0gICAgICAgICAgIjAuMTAwNTksIDAuNDYyOTg0LCAwLjc1NTUyNSwgMS4xMjExOCwgMS40ODcwMSwgMS44NTMzNSwgMi4yMTk1MiIsIFwKLSAgICAgICAgICAiMC4xMDU4NSwgMC40NjI4OTMsIDAuNzU1NDE5LCAxLjEyMTIsIDEuNDg3MDYsIDEuODUzMDEsIDIuMjE5ODkiLCBcCi0gICAgICAgICAgIjAuMTEyNzE4LCAwLjQ2Mjk1NiwgMC43NTU0NDQsIDEuMTIxNSwgMS40ODcwNCwgMS44NTMzOCwgMi4yMTkwNCIsIFwKLSAgICAgICAgICAiMC4xMjU1NTYsIDAuNDY0MjgxLCAwLjc1NTQ3OCwgMS4xMjEyNCwgMS40ODcwNSwgMS44NTMzNSwgMi4yMTg3NiIsIFwKLSAgICAgICAgICAiMC4xMzgwMzEsIDAuNDY3NTM2LCAwLjc1NTUxNCwgMS4xMjEzMiwgMS40ODcxOSwgMS44NTMyNSwgMi4yMTk1OCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTUyNzEsIDAuNTI2NTE3LCAwLjg1NTA5NCwgMS4yNjkwOCwgMS42ODU0NSwgMi4xMDAyMiwgMi41MTU4MyIsIFwKLSAgICAgICAgICAiMC4xMjU1MjIsIDAuNTM2OTc1LCAwLjg2NTE5NSwgMS4yNzk2NywgMS42OTUwNSwgMi4xMTAxMiwgMi41MjU1NCIsIFwKLSAgICAgICAgICAiMC4xMzg0NDQsIDAuNTUwMTAxLCAwLjg3ODY2NiwgMS4yOTM0NywgMS43MDg1LCAyLjEyNDYxLCAyLjUzOTcxIiwgXAotICAgICAgICAgICIwLjE1MjIzMywgMC41NjQwMTUsIDAuODkyMzY5LCAxLjMwNjk4LCAxLjcyMzQ1LCAyLjEzODEsIDIuNTUzMzkiLCBcCi0gICAgICAgICAgIjAuMTY0NzI0LCAwLjU3NjU2MywgMC45MDQ5MDYsIDEuMzE5NjMsIDEuNzM1NDcsIDIuMTUxMzQsIDIuNTY2MzUiLCBcCi0gICAgICAgICAgIjAuMTg2OTI1LCAwLjU5Nzc1OSwgMC45MjYyMDEsIDEuMzQwNzMsIDEuNzU2NzksIDIuMTcyMDIsIDIuNTg3NjIiLCBcCi0gICAgICAgICAgIjAuMjA1OTYxLCAwLjYxNjIwMywgMC45NDQ3MTIsIDEuMzYwMzYsIDEuNzc0ODQsIDIuMTkwOSwgMi42MDYxOCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMDA1MDIsIDAuOTg4Nzc0LCAxLjYyNzY3LCAyLjQzMTYzLCAzLjIyMjI5LCA0LjAzMDM1LCA0LjgxNzY5IiwgXAotICAgICAgICAgICIwLjIwMDQ3OSwgMC45OTI3NDcsIDEuNjMzNTEsIDIuNDMzMjksIDMuMjMwNjEsIDQuMDI5NjgsIDQuODE5OCIsIFwKLSAgICAgICAgICAiMC4yMDAxMjUsIDAuOTkyNzY1LCAxLjYyNTgxLCAyLjQyMjM2LCAzLjIzMDg2LCA0LjAxNDQsIDQuODIwNTMiLCBcCi0gICAgICAgICAgIjAuMjAxMDQ2LCAwLjk5NDA4NywgMS42MzI0NCwgMi40MzQ4NCwgMy4yMjI0MSwgNC4wMzA0LCA0LjgyMDI5IiwgXAotICAgICAgICAgICIwLjIwMzk0OCwgMC45OTM3ODYsIDEuNjMyOTUsIDIuNDMyMjEsIDMuMjE5MDMsIDQuMDE3NjcsIDQuODE3NDMiLCBcCi0gICAgICAgICAgIjAuMjEwNzExLCAwLjk5Mjc2NSwgMS42MzQ5MywgMi40MzMxMiwgMy4yMTg2MywgNC4wMTUyMiwgNC44MTc0NSIsIFwKLSAgICAgICAgICAiMC4yMTg3ODUsIDAuOTg4NTQ4LCAxLjYzMzgxLCAyLjQyNDQyLCAzLjIzMTkxLCA0LjAxNTE2LCA0LjgxNzQ2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzk4MywgMC4wMDM5ODEsIDAuMDAzOTgxLCAwLjAwMzk4LCAwLjAwMzk3OCwgMC4wMDM5NzYsIDAuMDAzOTc0IiwgXAotICAgICAgICAgICIwLjAwMzk2NSwgMC4wMDM5NjcsIDAuMDAzOTY2LCAwLjAwMzk2NSwgMC4wMDM5NjMsIDAuMDAzOTYyLCAwLjAwMzk2MSIsIFwKLSAgICAgICAgICAiMC4wMDM5NTYsIDAuMDAzOTY0LCAwLjAwMzk2NCwgMC4wMDM5NjIsIDAuMDAzOTU4LCAwLjAwMzk2MSwgMC4wMDM5NTciLCBcCi0gICAgICAgICAgIjAuMDAzOTQ5LCAwLjAwMzk2MSwgMC4wMDM5NjEsIDAuMDAzOTU5LCAwLjAwMzk1OSwgMC4wMDM5NTcsIDAuMDAzOTU1IiwgXAotICAgICAgICAgICIwLjAwMzk0NCwgMC4wMDM5NTksIDAuMDAzOTYsIDAuMDAzOTU4LCAwLjAwMzk1OSwgMC4wMDM5NiwgMC4wMDM5NTQiLCBcCi0gICAgICAgICAgIjAuMDAzOTM4LCAwLjAwMzk1NiwgMC4wMDM5NTcsIDAuMDAzOTU4LCAwLjAwMzk1NywgMC4wMDM5NTUsIDAuMDAzOTU0IiwgXAotICAgICAgICAgICIwLjAwMzkzNCwgMC4wMDM5NTQsIDAuMDAzOTU3LCAwLjAwMzk1NywgMC4wMDM5NTcsIDAuMDAzOTU3LCAwLjAwMzk1NCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTE2NCwgMC4wMDExNjMsIDAuMDAxMTYzLCAwLjAwMTE2MywgMC4wMDExNjIsIDAuMDAxMTU4LCAwLjAwMTE1NiIsIFwKLSAgICAgICAgICAiMC4wMDExMzEsIDAuMDAxMTM5LCAwLjAwMTEzOSwgMC4wMDExMzksIDAuMDAxMTQzLCAwLjAwMTEzOSwgMC4wMDExMzgiLCBcCi0gICAgICAgICAgIjAuMDAxMTE2LCAwLjAwMTEzMSwgMC4wMDExMzMsIDAuMDAxMTMzLCAwLjAwMTEzNiwgMC4wMDExMzMsIDAuMDAxMTMyIiwgXAotICAgICAgICAgICIwLjAwMTEwNCwgMC4wMDExMjcsIDAuMDAxMTMsIDAuMDAxMTMsIDAuMDAxMTMxLCAwLjAwMTEzMiwgMC4wMDExMzEiLCBcCi0gICAgICAgICAgIjAuMDAxMDk0LCAwLjAwMTEyNCwgMC4wMDExMjcsIDAuMDAxMTI5LCAwLjAwMTEzLCAwLjAwMTEzLCAwLjAwMTEyOSIsIFwKLSAgICAgICAgICAiMC4wMDEwODIsIDAuMDAxMTE5LCAwLjAwMTEyNCwgMC4wMDExMjYsIDAuMDAxMTI3LCAwLjAwMTEyNywgMC4wMDExMjciLCBcCi0gICAgICAgICAgIjAuMDAxMDc1LCAwLjAwMTExNCwgMC4wMDExMjEsIDAuMDAxMTI0LCAwLjAwMTEyNSwgMC4wMDExMjYsIDAuMDAxMTI3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzQ4MSwgMC4wMDM0OCwgMC4wMDM0NzksIDAuMDAzNDc3LCAwLjAwMzQ3NiwgMC4wMDM0NzQsIDAuMDAzNDc0IiwgXAotICAgICAgICAgICIwLjAwMzQ1NiwgMC4wMDM0NjMsIDAuMDAzNDYyLCAwLjAwMzQ2MSwgMC4wMDM0NjEsIDAuMDAzNDYsIDAuMDAzNDU4IiwgXAotICAgICAgICAgICIwLjAwMzQ0MSwgMC4wMDM0NTYsIDAuMDAzNDU2LCAwLjAwMzQ1NywgMC4wMDM0NTUsIDAuMDAzNDU1LCAwLjAwMzQ1MyIsIFwKLSAgICAgICAgICAiMC4wMDM0MjksIDAuMDAzNDUzLCAwLjAwMzQ1NSwgMC4wMDM0NTQsIDAuMDAzNDUzLCAwLjAwMzQ1MywgMC4wMDM0NTEiLCBcCi0gICAgICAgICAgIjAuMDAzNDIxLCAwLjAwMzQ0OSwgMC4wMDM0NTEsIDAuMDAzNDUzLCAwLjAwMzQ1MywgMC4wMDM0NTIsIDAuMDAzNDUyIiwgXAotICAgICAgICAgICIwLjAwMzQxMywgMC4wMDM0NDUsIDAuMDAzNDQ5LCAwLjAwMzQ1MSwgMC4wMDM0NTEsIDAuMDAzNDUsIDAuMDAzNDQ5IiwgXAotICAgICAgICAgICIwLjAwMzQwOCwgMC4wMDM0NDIsIDAuMDAzNDQ2LCAwLjAwMzQ0OCwgMC4wMDM0NDgsIDAuMDAzNDQ4LCAwLjAwMzQ0OCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDU2LCAwLjAwMDU2NiwgMC4wMDA1NjcsIDAuMDAwNTY3LCAwLjAwMDU2NywgMC4wMDA1NjcsIDAuMDAwNTY3IiwgXAotICAgICAgICAgICIwLjAwMDU1NiwgMC4wMDA1ODQsIDAuMDAwNTg3LCAwLjAwMDU4OSwgMC4wMDA1ODksIDAuMDAwNTksIDAuMDAwNTg4IiwgXAotICAgICAgICAgICIwLjAwMDUzMiwgMC4wMDA1ODEsIDAuMDAwNTg3LCAwLjAwMDU5LCAwLjAwMDU5MiwgMC4wMDA1OTMsIDAuMDAwNTkzIiwgXAotICAgICAgICAgICIwLjAwMDUxLCAwLjAwMDU3NSwgMC4wMDA1ODQsIDAuMDAwNTg4LCAwLjAwMDU5MSwgMC4wMDA1OTIsIDAuMDAwNTkzIiwgXAotICAgICAgICAgICIwLjAwMDQ5LCAwLjAwMDU2OSwgMC4wMDA1OCwgMC4wMDA1ODYsIDAuMDAwNTg5LCAwLjAwMDU5MSwgMC4wMDA1OTIiLCBcCi0gICAgICAgICAgIjAuMDAwNDY3LCAwLjAwMDU2LCAwLjAwMDU3NCwgMC4wMDA1ODIsIDAuMDAwNTg2LCAwLjAwMDU4OCwgMC4wMDA1OSIsIFwKLSAgICAgICAgICAiMC4wMDA0NTEsIDAuMDAwNTUxLCAwLjAwMDU2OCwgMC4wMDA1NzgsIDAuMDAwNTgzLCAwLjAwMDU4NiwgMC4wMDA1ODgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyNjQyLCAwLjAwMjY0NywgMC4wMDI2NDcsIDAuMDAyNjQ4LCAwLjAwMjY0OCwgMC4wMDI2NDgsIDAuMDAyNjQ3IiwgXAotICAgICAgICAgICIwLjAwMjYzNSwgMC4wMDI2NTcsIDAuMDAyNjU3LCAwLjAwMjY2LCAwLjAwMjY2MiwgMC4wMDI2NiwgMC4wMDI2NiIsIFwKLSAgICAgICAgICAiMC4wMDI2MTcsIDAuMDAyNjU0LCAwLjAwMjY1OSwgMC4wMDI2NjMsIDAuMDAyNjYzLCAwLjAwMjY2MywgMC4wMDI2NjQiLCBcCi0gICAgICAgICAgIjAuMDAyNjAyLCAwLjAwMjY1LCAwLjAwMjY1NywgMC4wMDI2NiwgMC4wMDI2NjIsIDAuMDAyNjYyLCAwLjAwMjY2MyIsIFwKLSAgICAgICAgICAiMC4wMDI1ODksIDAuMDAyNjQ3LCAwLjAwMjY1NCwgMC4wMDI2NTcsIDAuMDAyNjYxLCAwLjAwMjY1OSwgMC4wMDI2NiIsIFwKLSAgICAgICAgICAiMC4wMDI1NzQsIDAuMDAyNjQsIDAuMDAyNjQ5LCAwLjAwMjY1NiwgMC4wMDI2NTksIDAuMDAyNjYxLCAwLjAwMjY2MiIsIFwKLSAgICAgICAgICAiMC4wMDI1NjYsIDAuMDAyNjM1LCAwLjAwMjY0NywgMC4wMDI2NTMsIDAuMDAyNjU3LCAwLjAwMjY1OSwgMC4wMDI2NjEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDExODcsIDAuMDAxMTk0LCAwLjAwMTE5NCwgMC4wMDExOTQsIDAuMDAxMTkzLCAwLjAwMTE5MSwgMC4wMDExOTMiLCBcCi0gICAgICAgICAgIjAuMDAxMTU3LCAwLjAwMTE4NywgMC4wMDExODksIDAuMDAxMTksIDAuMDAxMTkyLCAwLjAwMTE5MiwgMC4wMDExOTEiLCBcCi0gICAgICAgICAgIjAuMDAxMTMsIDAuMDAxMTc4LCAwLjAwMTE4NCwgMC4wMDExODcsIDAuMDAxMTg5LCAwLjAwMTE4OSwgMC4wMDExODciLCBcCi0gICAgICAgICAgIjAuMDAxMTEyLCAwLjAwMTE3MSwgMC4wMDExOCwgMC4wMDExODMsIDAuMDAxMTg2LCAwLjAwMTE4NiwgMC4wMDExODYiLCBcCi0gICAgICAgICAgIjAuMDAxMDk2LCAwLjAwMTE2MywgMC4wMDExNzQsIDAuMDAxMTgsIDAuMDAxMTgzLCAwLjAwMTE4NSwgMC4wMDExODYiLCBcCi0gICAgICAgICAgIjAuMDAxMDgyLCAwLjAwMTE1MywgMC4wMDExNjgsIDAuMDAxMTc1LCAwLjAwMTE3OSwgMC4wMDExODIsIDAuMDAxMTgzIiwgXAotICAgICAgICAgICIwLjAwMTA3NCwgMC4wMDExNDUsIDAuMDAxMTYxLCAwLjAwMTE3MSwgMC4wMDExNzYsIDAuMDAxMTc5LCAwLjAwMTE4Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IE9BSTIyMVgxICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChPQUkyMjFYMSkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjEyODc2NDsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQTApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDg2NjQ4NTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA4NjM4Mzc7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwODY2NDg1OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDMwNiwgMC4wMDAzMDYsIDAuMDAwMzA2LCAwLjAwMDMwNiwgMC4wMDAzMDYsIDAuMDAwMzA2LCAwLjAwMDMwNiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDMwNywgMC4wMDAzMDcsIDAuMDAwMzA3LCAwLjAwMDMwNywgMC4wMDAzMDcsIDAuMDAwMzA3LCAwLjAwMDMwNyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQTEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDg2Njk5MjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA4NjY5OTI7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwODYzNTA5OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDMwNiwgMC4wMDAzMDYsIDAuMDAwMzA2LCAwLjAwMDMwNiwgMC4wMDAzMDYsIDAuMDAwMzA2LCAwLjAwMDMwNiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDMwNiwgMC4wMDAzMDcsIDAuMDAwMzA3LCAwLjAwMDMwNywgMC4wMDAzMDcsIDAuMDAwMzA3LCAwLjAwMDMwNyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQjApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDkwNjE0NTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA5MDI2NjQ7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwOTA2MTQ1OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDMwNiwgMC4wMDAzMDYsIDAuMDAwMzA2LCAwLjAwMDMwNiwgMC4wMDAzMDYsIDAuMDAwMzA2LCAwLjAwMDMwNiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDMwNywgMC4wMDAzMDcsIDAuMDAwMzA3LCAwLjAwMDMwNywgMC4wMDAzMDcsIDAuMDAwMzA3LCAwLjAwMDMwNyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQjEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDg5MzM3NjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA4OTMzNzY7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwODkwNzE0OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDMwNiwgMC4wMDAzMDYsIDAuMDAwMzA2LCAwLjAwMDMwNiwgMC4wMDAzMDYsIDAuMDAwMzA2LCAwLjAwMDMwNiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDMwNywgMC4wMDAzMDcsIDAuMDAwMzA3LCAwLjAwMDMwNywgMC4wMDAzMDcsIDAuMDAwMzA3LCAwLjAwMDMwNyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQzApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDg5NTk0ODsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA4OTU0NDk7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwODk1OTQ4OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDE2MSwgMC4wMDAxNjEsIDAuMDAwMTYyLCAwLjAwMDE2MiwgMC4wMDAxNjEsIDAuMDAwMTYxLCAwLjAwMDE2MSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDM0NywgMC4wMDAzNDgsIDAuMDAwMzQ4LCAwLjAwMDM0OCwgMC4wMDAzNDgsIDAuMDAwMzQ4LCAwLjAwMDM0OCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjA0NTMwMDg7Ci0gICAgZnVuY3Rpb24gOiAiKCEoKChBMCtBMSkgKEIwK0IxKSkgQzApKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTAiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIwNDYyLCAwLjI5NDIzMSwgMC43OTc2NjMsIDEuMjQwNjcsIDEuODMwOTksIDMuMDEwNDgsIDMuNzQ3NjgiLCBcCi0gICAgICAgICAgIjAuMjE2MDgzLCAwLjMwNTY5NSwgMC44MDkyNDgsIDEuMjUyMTksIDEuODQyMjIsIDMuMDIyMzgsIDMuNzU5MjUiLCBcCi0gICAgICAgICAgIjAuMjI5MTU3LCAwLjMxODc5NSwgMC44MjIxNjEsIDEuMjY1NDEsIDEuODU1MTcsIDMuMDM1MzYsIDMuNzcyMzciLCBcCi0gICAgICAgICAgIjAuMjQxODIsIDAuMzMxMzgzLCAwLjgzNDk1MiwgMS4yNzc5MSwgMS44Njg0OSwgMy4wNDgyNCwgMy43ODQ5MSIsIFwKLSAgICAgICAgICAiMC4yNTQyNSwgMC4zNDM4NTIsIDAuODQ3MywgMS4yOTA2MywgMS44ODAyOCwgMy4wNjAyMywgMy43OTczOCIsIFwKLSAgICAgICAgICAiMC4yNzQwMzEsIDAuMzYzNjM0LCAwLjg2NzMwMSwgMS4zMTAzNCwgMS45MDAyOSwgMy4wODAzOCwgMy44MTcyNiIsIFwKLSAgICAgICAgICAiMC4yOTEyNzYsIDAuMzgwOTE4LCAwLjg4NDc3MiwgMS4zMjc4NiwgMS45MTc3OSwgMy4wOTc2MywgMy44MzQ3OCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zNzkyNDUsIDAuNTUxOTczLCAxLjUzMTQ3LCAyLjM5NDY0LCAzLjU0Njc1LCA1Ljg0ODkxLCA3LjI4ODMyIiwgXAotICAgICAgICAgICIwLjM3OTE5MiwgMC41NTIwMzgsIDEuNTMxMjgsIDIuMzk0ODMsIDMuNTQ2MzksIDUuODUwNzEsIDcuMjg4NDIiLCBcCi0gICAgICAgICAgIjAuMzc5MjI2LCAwLjU1MjA0MiwgMS41MzEwNSwgMi4zOTU0MSwgMy41NDY1OSwgNS44NDkwNiwgNy4yOSIsIFwKLSAgICAgICAgICAiMC4zNzkyMDUsIDAuNTUxOTcxLCAxLjUzMDk3LCAyLjM5NDYyLCAzLjU0NjQ4LCA1Ljg1MTEsIDcuMjg5MTUiLCBcCi0gICAgICAgICAgIjAuMzc5MjIyLCAwLjU1MTk4MywgMS41MzA5NiwgMi4zOTUwNiwgMy41NDY3OCwgNS44NTA4MiwgNy4yODgzMyIsIFwKLSAgICAgICAgICAiMC4zODA3LCAwLjU1MjA0NiwgMS41MzA5OCwgMi4zOTU0NywgMy41NDYyOSwgNS44NTA4MSwgNy4yODgzNSIsIFwKLSAgICAgICAgICAiMC4zODMzMDYsIDAuNTUzMjA2LCAxLjUzMTEyLCAyLjM5NTQ3LCAzLjU0NjE3LCA1Ljg0OTgzLCA3LjI4ODMyIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjM2MDkzNiwgMC41MTAwMjYsIDEuMzUyMzUsIDIuMDk1MTYsIDMuMDg1MSwgNS4wNzQ3NSwgNi4zMTg3MiIsIFwKLSAgICAgICAgICAiMC4zNzI1NjMsIDAuNTIxNTIsIDEuMzY0MTIsIDIuMTA2ODIsIDMuMDk2ODYsIDUuMDg2NDYsIDYuMzMwNDYiLCBcCi0gICAgICAgICAgIjAuMzg2OTM0LCAwLjUzNjA5NiwgMS4zNzg0NiwgMi4xMjE0OSwgMy4xMTA2NiwgNS4xMDExNSwgNi4zNDQ4NCIsIFwKLSAgICAgICAgICAiMC40MDA0OTgsIDAuNTQ5NTc1LCAxLjM5MjUzLCAyLjEzMzk1LCAzLjEyNTA5LCA1LjExNDY4LCA2LjM1ODY5IiwgXAotICAgICAgICAgICIwLjQxMzU3NCwgMC41NjI4MjQsIDEuNDA1NjksIDIuMTQ3NjgsIDMuMTM4MjMsIDUuMTI3ODQsIDYuMzcxODUiLCBcCi0gICAgICAgICAgIjAuNDMzNjYzLCAwLjU4Mjc1OCwgMS40MjU0NCwgMi4xNjg1MSwgMy4xNTc2NywgNS4xNDgxOSwgNi4zOTE4OSIsIFwKLSAgICAgICAgICAiMC40NTA3MjIsIDAuNTk5OTU4LCAxLjQ0MjgsIDIuMTg1MjMsIDMuMTc0ODYsIDUuMTY1MTUsIDYuNDA5MDUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuNTc5Mjg1LCAwLjg1ODQ5LCAyLjQzODk3LCAzLjg0NDcsIDUuNzIzNzQsIDkuNDU2OTIsIDExLjc5MDQiLCBcCi0gICAgICAgICAgIjAuNTc5MjQsIDAuODU4NzQ0LCAyLjQzODk1LCAzLjg0Mzg1LCA1LjcyMzI3LCA5LjQ1NjQ0LCAxMS43OTAzIiwgXAotICAgICAgICAgICIwLjU3OTIzMSwgMC44NTg0NjQsIDIuNDM4OTksIDMuODQ0MjksIDUuNzIxNzcsIDkuNDU2MzcsIDExLjc5MDMiLCBcCi0gICAgICAgICAgIjAuNTc5NjIzLCAwLjg1ODMzMiwgMi40MzkwNywgMy44NDc0MiwgNS43MTc1MSwgOS40NTYxMSwgMTEuNzkwMyIsIFwKLSAgICAgICAgICAiMC41NzkyNTIsIDAuODU4Njc2LCAyLjQzOTYyLCAzLjg0MzM2LCA1LjcxNzk0LCA5LjQ1NjI0LCAxMS43OTAzIiwgXAotICAgICAgICAgICIwLjU3OTgzOCwgMC44NTg0NTgsIDIuNDM5MDEsIDMuODQ0NTYsIDUuNzIxNzksIDkuNDU2MTIsIDExLjc4OTQiLCBcCi0gICAgICAgICAgIjAuNTc4OTE4LCAwLjg1ODI0MSwgMi40Mzk3NSwgMy44NDQyNiwgNS43MjEyOSwgOS40NTY2MiwgMTEuNzg5NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTk3ODcsIDAuMjg3NDU3LCAwLjc5MDkxNSwgMS4yMzM4NSwgMS44MjQyOSwgMy4wMDQyNiwgMy43NDA5OSIsIFwKLSAgICAgICAgICAiMC4yMDgwMDMsIDAuMjk3NTQ0LCAwLjgwMTAxNywgMS4yNDQyMiwgMS44MzM5MSwgMy4wMTM4NiwgMy43NTEwMyIsIFwKLSAgICAgICAgICAiMC4yMjEwMzcsIDAuMzEwNiwgMC44MTQwMDcsIDEuMjU3MzMsIDEuODQ3MDEsIDMuMDI3MjQsIDMuNzY0MDYiLCBcCi0gICAgICAgICAgIjAuMjMzOTU4LCAwLjMyMzU2NywgMC44MjY5MTgsIDEuMjcwMTUsIDEuODYwMzksIDMuMDM5OTgsIDMuNzc3MSIsIFwKLSAgICAgICAgICAiMC4yNDcwMjIsIDAuMzM2Njk2LCAwLjg0MDEwOSwgMS4yODM0NSwgMS44NzMxLCAzLjA1MzA0LCAzLjc5MDE4IiwgXAotICAgICAgICAgICIwLjI2ODA0NywgMC4zNTc1OTUsIDAuODYxMTY3LCAxLjMwNDE4LCAxLjg5NDc4LCAzLjA3NDM3LCAzLjgxMDk3IiwgXAotICAgICAgICAgICIwLjI4NjQxNiwgMC4zNzU5OTcsIDAuODc5NDc2LCAxLjMyMjYyLCAxLjkxMjg0LCAzLjA5MjM3LCAzLjgyOTUiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzc5MjU2LCAwLjU1MTk3OSwgMS41MzEwOSwgMi4zOTU0OCwgMy41NDY3NSwgNS44NTAzNywgNy4yODk1NSIsIFwKLSAgICAgICAgICAiMC4zNzkyNDgsIDAuNTUxOTYzLCAxLjUzMSwgMi4zOTUxNywgMy41NDc1MywgNS44NTAyOCwgNy4yODg2IiwgXAotICAgICAgICAgICIwLjM3OTIyMywgMC41NTE5MzQsIDEuNTMxMSwgMi4zOTQ3NCwgMy41NDcxOCwgNS44NDkwMywgNy4yODgzMSIsIFwKLSAgICAgICAgICAiMC4zNzkxMDksIDAuNTUxOTQ5LCAxLjUzMTAyLCAyLjM5NTQ3LCAzLjU0Njg2LCA1Ljg0OTkzLCA3LjI4ODM1IiwgXAotICAgICAgICAgICIwLjM3OTMwMywgMC41NTE4OTYsIDEuNTMwOTMsIDIuMzk1MjksIDMuNTQ2NDQsIDUuODUwODIsIDcuMjg4MzIiLCBcCi0gICAgICAgICAgIjAuMzgyNTQ3LCAwLjU1MjE3OSwgMS41MzEyLCAyLjM5NTI0LCAzLjU0NjQ4LCA1Ljg1MDgsIDcuMjg5NjQiLCBcCi0gICAgICAgICAgIjAuMzg3NTQ1LCAwLjU1NDM2LCAxLjUzMTEsIDIuMzk0OTgsIDMuNTQ3MzMsIDUuODQ5NTcsIDcuMjg4MzIiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzQ0MjA1LCAwLjQ5Mjg5NSwgMS4zMzQ5MywgMi4wNzcyNiwgMy4wNjcyOSwgNS4wNTY4OCwgNi4zMDAxNyIsIFwKLSAgICAgICAgICAiMC4zNTY1NzcsIDAuNTA1MzY4LCAxLjM0NzY2LCAyLjA4OTIzLCAzLjA3OTk3LCA1LjA2OTQ4LCA2LjMxMzQ3IiwgXAotICAgICAgICAgICIwLjM3MTA2MiwgMC41MTk4ODcsIDEuMzYxODQsIDIuMTA0NjEsIDMuMDkzOTMsIDUuMDg0MzgsIDYuMzI4MDUiLCBcCi0gICAgICAgICAgIjAuMzg0NTU0LCAwLjUzMzM2NCwgMS4zNzUzOSwgMi4xMTc3NSwgMy4xMDc4MiwgNS4wOTc4MywgNi4zNDE4OSIsIFwKLSAgICAgICAgICAiMC4zOTc0MDEsIDAuNTQ2NjQ0LCAxLjM4OTIzLCAyLjEzMTE1LCAzLjEyMTU4LCA1LjExMTE0LCA2LjM1NTE0IiwgXAotICAgICAgICAgICIwLjQxNzI0MSwgMC41NjY0NzUsIDEuNDA4OTYsIDIuMTUxOTUsIDMuMTQxLCA1LjEzMTUsIDYuMzc1MTkiLCBcCi0gICAgICAgICAgIjAuNDM0MjE5LCAwLjU4MzMwNywgMS40MjY0MywgMi4xNjg4MSwgMy4xNTgxNywgNS4xNDgzOCwgNi4zOTIzNSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC41NjE4NDksIDAuODQwOTE0LCAyLjQ0Mjc2LCAzLjgzNjQxLCA1LjcwNTE0LCA5LjQyNjgzLCAxMS43Njk0IiwgXAotICAgICAgICAgICIwLjU2MTg4MSwgMC44NDA1NDUsIDIuNDIyMjYsIDMuODQ2MzEsIDUuNzA1MDcsIDkuNDM1OTUsIDExLjc2ODkiLCBcCi0gICAgICAgICAgIjAuNTYxMTY2LCAwLjg0MDQ4OCwgMi40MzM2NSwgMy44NDY5MiwgNS43MDQ4OSwgOS40MzYyMywgMTEuNzY5OSIsIFwKLSAgICAgICAgICAiMC41NjE1NDYsIDAuODQwNDkyLCAyLjQzMzU5LCAzLjg0NjAzLCA1LjcwNTExLCA5LjQzNTMxLCAxMS43NjkxIiwgXAotICAgICAgICAgICIwLjU2MTMxMSwgMC44NDA2MjYsIDIuNDIyNzksIDMuODQ2MjUsIDUuNjk3MDEsIDkuNDM1OTksIDExLjc2ODkiLCBcCi0gICAgICAgICAgIjAuNTYxMTY2LCAwLjg0MDAyNCwgMi40NDI4MSwgMy44Mjg2LCA1LjcwNTMxLCA5LjQzNjI1LCAxMS43Njg5IiwgXAotICAgICAgICAgICIwLjU2MTUzMiwgMC44NDA1MjQsIDIuNDQyODgsIDMuODQ2MzYsIDUuNzA0MTgsIDkuNDM1OCwgMTEuNzY5MSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTkzNTkyLCAwLjI4Mjg5OSwgMC43ODcxNjUsIDEuMjMxNTcsIDEuODI0MjksIDMuMDA4OTQsIDMuNzQ5NTMiLCBcCi0gICAgICAgICAgIjAuMjA1MzM3LCAwLjI5NDYyNSwgMC43OTg4MDEsIDEuMjQzNDQsIDEuODM1OSwgMy4wMjA4MywgMy43NjEyMSIsIFwKLSAgICAgICAgICAiMC4yMTg0MjksIDAuMzA3NzMzLCAwLjgxMTk1MSwgMS4yNTY2NCwgMS44NDg5NywgMy4wMzM4OSwgMy43NzQ0IiwgXAotICAgICAgICAgICIwLjIzMTAwOCwgMC4zMjAzNTEsIDAuODI0NzI1LCAxLjI2OTE3LCAxLjg2MTY3LCAzLjA0NjgxLCAzLjc4NzA5IiwgXAotICAgICAgICAgICIwLjI0MzM3OSwgMC4zMzI3NjQsIDAuODM3MTg4LCAxLjI4MTY0LCAxLjg3NDE2LCAzLjA1OTA3LCAzLjc5OTY1IiwgXAotICAgICAgICAgICIwLjI2MzI0OCwgMC4zNTI3MzEsIDAuODU3MjI4LCAxLjMwMTY4LCAxLjg5NDEzLCAzLjA3OTA0LCAzLjgxOTcxIiwgXAotICAgICAgICAgICIwLjI4MDQ4NCwgMC4zNjk5NzIsIDAuODc0NjA3LCAxLjMxOTE1LCAxLjkxMTYzLCAzLjA5NjYsIDMuODM3MTEiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzY3ODk1LCAwLjU0MTE5OSwgMS41MjM3NCwgMi4zOTA0OSwgMy41NDY3NiwgNS44NTg0MiwgNy4zMDM0NyIsIFwKLSAgICAgICAgICAiMC4zNjc5NDYsIDAuNTQxMzAzLCAxLjUyMzg1LCAyLjM5MDUsIDMuNTQ2NiwgNS44NTg0NCwgNy4zMDMxNCIsIFwKLSAgICAgICAgICAiMC4zNjc5MzEsIDAuNTQxMjM5LCAxLjUyMzU4LCAyLjM5MTA1LCAzLjU0NjY0LCA1Ljg1OTM5LCA3LjMwMzIzIiwgXAotICAgICAgICAgICIwLjM2Nzg3OSwgMC41NDExOTQsIDEuNTIzNTgsIDIuMzkwNjIsIDMuNTQ3MywgNS44NTg2MywgNy4zMDMzNCIsIFwKLSAgICAgICAgICAiMC4zNjgwMjQsIDAuNTQxMTkxLCAxLjUyMzc2LCAyLjM5MDM4LCAzLjU0NzIxLCA1Ljg1OTQ1LCA3LjMwNDU0IiwgXAotICAgICAgICAgICIwLjM2OTgyNywgMC41NDE0MjMsIDEuNTIzODMsIDIuMzkwMzksIDMuNTQ2NjIsIDUuODU4MjEsIDcuMzAzMjciLCBcCi0gICAgICAgICAgIjAuMzcyNzYxLCAwLjU0MjcyLCAxLjUyMzgyLCAyLjM5MTE1LCAzLjU0NjYxLCA1Ljg1OTUzLCA3LjMwMzI3Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjM0NzkzOSwgMC40OTY5NjQsIDEuMzM5MDYsIDIuMDgxOTcsIDMuMDcwMTMsIDUuMDQ3MzksIDYuMjgyOCIsIFwKLSAgICAgICAgICAiMC4zNTg0MDgsIDAuNTA3NTUyLCAxLjM0OTcsIDIuMDkxOTQsIDMuMDgxNDEsIDUuMDU3ODQsIDYuMjkzNTYiLCBcCi0gICAgICAgICAgIjAuMzcxNzI3LCAwLjUyMDc2NCwgMS4zNjM2LCAyLjEwNTU1LCAzLjA5NDk3LCA1LjA3MTI1LCA2LjMwNyIsIFwKLSAgICAgICAgICAiMC4zODQ3MDYsIDAuNTM0MDIyLCAxLjM3NjYzLCAyLjExODc4LCAzLjEwNzc1LCA1LjA4NDQsIDYuMzIwMTIiLCBcCi0gICAgICAgICAgIjAuMzk3NDkzLCAwLjU0NjgyMywgMS4zODk0LCAyLjEzMTgyLCAzLjEyMDc2LCA1LjA5NzQxLCA2LjMzMzE3IiwgXAotICAgICAgICAgICIwLjQxODE1MiwgMC41NjcxNzYsIDEuNDA5ODgsIDIuMTUyNTksIDMuMTQxLCA1LjExODE1LCA2LjM1MzY1IiwgXAotICAgICAgICAgICIwLjQzNTg4OSwgMC41ODUxNTcsIDEuNDI3OTksIDIuMTcwNCwgMy4xNTkwMSwgNS4xMzYxNiwgNi4zNzE2MiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC41Nzk3MjcsIDAuODU4MzMzLCAyLjQzOTQzLCAzLjgzMzk2LCA1LjY5Njg0LCA5LjQwMjQ4LCAxMS43MTgzIiwgXAotICAgICAgICAgICIwLjU3OTU2OCwgMC44NTg3MTEsIDIuNDQwMTEsIDMuODMzNDMsIDUuNjkyNzMsIDkuNDAzMDEsIDExLjcxNzMiLCBcCi0gICAgICAgICAgIjAuNTc5NTUxLCAwLjg1OTAzLCAyLjQzOTAzLCAzLjgzMzA2LCA1LjY5MjI2LCA5LjQwMjM2LCAxMS43MTczIiwgXAotICAgICAgICAgICIwLjU3OTY3MiwgMC44NTg3NTYsIDIuNDM5ODMsIDMuODM0MjksIDUuNjk2NjUsIDkuNDAyMDksIDExLjcxODEiLCBcCi0gICAgICAgICAgIjAuNTc5NzAyLCAwLjg1ODQwNywgMi40NDAwMiwgMy44MzM3NSwgNS42OTY3OCwgOS40MDIwNiwgMTEuNzE3MyIsIFwKLSAgICAgICAgICAiMC41Nzk2MzgsIDAuODU5MDAzLCAyLjQzOTE2LCAzLjgzMzA0LCA1LjY5NjQyLCA5LjQwMTk5LCAxMS43MTc0IiwgXAotICAgICAgICAgICIwLjU3OTUzNywgMC44NTgwNzcsIDIuNDM5MjcsIDMuODM1NDcsIDUuNjk3NDcsIDkuNDAxNDQsIDExLjcxODEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE4NjczNiwgMC4yNzYwMjYsIDAuNzgwMjg2LCAxLjIyNDczLCAxLjgxNzQsIDMuMDAyMjQsIDMuNzQyNjgiLCBcCi0gICAgICAgICAgIjAuMTk3MDczLCAwLjI4NjMyOCwgMC43OTA3NDMsIDEuMjM1MTEsIDEuODI3NjYsIDMuMDEyNDYsIDMuNzUzMDgiLCBcCi0gICAgICAgICAgIjAuMjEwMDAzLCAwLjI5OTMzNSwgMC44MDM2NTQsIDEuMjQ4MTEsIDEuODQwNzksIDMuMDI1NzYsIDMuNzY1OTQiLCBcCi0gICAgICAgICAgIjAuMjIzMDM4LCAwLjMxMjQxOSwgMC44MTY3MTgsIDEuMjYxMTEsIDEuODUzNjgsIDMuMDM4ODMsIDMuNzc4OTciLCBcCi0gICAgICAgICAgIjAuMjM2MDYzLCAwLjMyNTQ1NywgMC44Mjk3ODYsIDEuMjc0MjUsIDEuODY2NzIsIDMuMDUxNzEsIDMuNzkyMzMiLCBcCi0gICAgICAgICAgIjAuMjU3MDA1LCAwLjM0NjMyOCwgMC44NTEwMDIsIDEuMjk1MTgsIDEuODg3ODUsIDMuMDcyNjksIDMuODEzMTYiLCBcCi0gICAgICAgICAgIjAuMjc1MzY2LCAwLjM2NDY3MSwgMC44NjkwNjQsIDEuMzEzNTUsIDEuOTA2MDQsIDMuMDkwOTcsIDMuODMxNjMiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzY3OTM0LCAwLjU0MTIzNywgMS41MjM2OSwgMi4zOTExNCwgMy41NDY3OSwgNS44NTg0NiwgNy4zMDQwOCIsIFwKLSAgICAgICAgICAiMC4zNjc4ODgsIDAuNTQxMjQsIDEuNTIzOTUsIDIuMzkwNDksIDMuNTQ3MDEsIDUuODU4MjksIDcuMzA0NjciLCBcCi0gICAgICAgICAgIjAuMzY3OTEsIDAuNTQxMjA2LCAxLjUyMzU4LCAyLjM5MDQ2LCAzLjU0NjUxLCA1Ljg1ODU0LCA3LjMwMzM0IiwgXAotICAgICAgICAgICIwLjM2NzgzOSwgMC41NDEyNywgMS41MjM1NiwgMi4zOTA0NiwgMy41NDY2NSwgNS44NTkxOCwgNy4zMDMxMyIsIFwKLSAgICAgICAgICAiMC4zNjg0MzgsIDAuNTQxMjgxLCAxLjUyMzgxLCAyLjM5MDg3LCAzLjU0NjU3LCA1Ljg1ODQxLCA3LjMwMzI0IiwgXAotICAgICAgICAgICIwLjM3MjMxOCwgMC41NDE3NDEsIDEuNTIzNjksIDIuMzkwNDEsIDMuNTQ3MywgNS44NTkzNywgNy4zMDMxNyIsIFwKLSAgICAgICAgICAiMC4zNzc4NywgMC41NDQzNzQsIDEuNTIzNTYsIDIuMzkwMzcsIDMuNTQ2MzIsIDUuODU4MjcsIDcuMzAzNDgiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzMzMjk2LCAwLjQ4MzExNywgMS4zMzAzMSwgMi4wNzgxNiwgMy4wNzI3NSwgNS4wNjMxNSwgNi4zMDY5NCIsIFwKLSAgICAgICAgICAiMC4zNDQ1OSwgMC40OTQzOCwgMS4zNDE3OSwgMi4wODg1NCwgMy4wODQ2LCA1LjA3NDU2LCA2LjMxODU2IiwgXAotICAgICAgICAgICIwLjM1NzkxMiwgMC41MDc3MTMsIDEuMzU1ODMsIDIuMTAyNjcsIDMuMDk4NDEsIDUuMDg4MjYsIDYuMzMyMjgiLCBcCi0gICAgICAgICAgIjAuMzcwNjcxLCAwLjUyMDkyNCwgMS4zNjg1NCwgMi4xMTY0OCwgMy4xMTExMSwgNS4xMDE1NiwgNi4zNDUzMiIsIFwKLSAgICAgICAgICAiMC4zODM0OCwgMC41MzM1NCwgMS4zODE1NiwgMi4xMjg5NCwgMy4xMjQ0NiwgNS4xMTQzNiwgNi4zNTgzOSIsIFwKLSAgICAgICAgICAiMC40MDM3MDUsIDAuNTUzODY3LCAxLjQwMTk1LCAyLjE0OTU5LCAzLjE0NDYxLCA1LjEzNTA0LCA2LjM3ODg2IiwgXAotICAgICAgICAgICIwLjQyMTE4NSwgMC41NzE1MjEsIDEuNDIwMDYsIDIuMTY3MzksIDMuMTYyNDEsIDUuMTUzMDIsIDYuMzk2NzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuNTY1NTc5LCAwLjg0NjkxNywgMi40Mzg4MSwgMy44NDQ3MiwgNS43MjI2NiwgOS40NTU1NCwgMTEuNzg5OSIsIFwKLSAgICAgICAgICAiMC41NjU4MjMsIDAuODQ3MDM1LCAyLjQ0MDA1LCAzLjg0NjA5LCA1LjcyMDg4LCA5LjQ1NjMzLCAxMS43ODk3IiwgXAotICAgICAgICAgICIwLjU2NTQxMywgMC44NDcwMjQsIDIuNDM4ODMsIDMuODQzMzYsIDUuNzIyNDIsIDkuNDU2MjksIDExLjc5MDIiLCBcCi0gICAgICAgICAgIjAuNTY1NDAyLCAwLjg0Njg3LCAyLjQzODgyLCAzLjg0NDQyLCA1LjcxNzM3LCA5LjQ1NTA2LCAxMS43ODk2IiwgXAotICAgICAgICAgICIwLjU2NTU0NSwgMC44NDY1MTksIDIuNDM5MzUsIDMuODQ0MTcsIDUuNzIxOTQsIDkuNDU2MDIsIDExLjc5MDMiLCBcCi0gICAgICAgICAgIjAuNTY1NTc2LCAwLjg0NzA1OCwgMi40Mzg3MywgMy44NDY2OSwgNS43MjEyNSwgOS40NTU5LCAxMS43ODk1IiwgXAotICAgICAgICAgICIwLjU2NTU0NCwgMC44NDY1NzYsIDIuNDM5NTYsIDMuODQ2NTIsIDUuNzIyMDMsIDkuNDU1MzcsIDExLjc5MDIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQzAiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4NzU5NywgMC4xMzA3OTksIDAuMzc1NzQsIDAuNTkxNzEyLCAwLjg3OTc3NCwgMS40NTQ5OCwgMS44MTUxMiIsIFwKLSAgICAgICAgICAiMC4wOTkyODEsIDAuMTQyNTM4LCAwLjM4NzQyOSwgMC42MDM0NCwgMC44OTExNzMsIDEuNDY2NzcsIDEuODI2ODEiLCBcCi0gICAgICAgICAgIjAuMTEzOTI2LCAwLjE1NzAzOCwgMC40MDA1MTcsIDAuNjE1Nzc5LCAwLjkwMzM4OSwgMS40Nzg5OSwgMS44Mzg3NSIsIFwKLSAgICAgICAgICAiMC4xMjg5NzksIDAuMTcxNzg2LCAwLjQxNjM5NSwgMC42MzAxNzksIDAuOTE4MTY3LCAxLjQ5MzksIDEuODUzMDYiLCBcCi0gICAgICAgICAgIjAuMTQzNzExLCAwLjE4NjY5NSwgMC40MzA4NTYsIDAuNjQzOTgxLCAwLjkzMTc5NSwgMS41MDczOCwgMS44NjcxMyIsIFwKLSAgICAgICAgICAiMC4xNjczNDIsIDAuMjEwNTYzLCAwLjQ1NDExOCwgMC42Njk4NywgMC45NTQyMDksIDEuNTI5NzYsIDEuODg5NjMiLCBcCi0gICAgICAgICAgIjAuMTg4NTA4LCAwLjIzMTMsIDAuNDc0NTkxLCAwLjY5MDI1LCAwLjk3Mzk1LCAxLjU0OTM1LCAxLjkwODgyIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE4OTMxNiwgMC4yNzY0ODEsIDAuNzcxNzgsIDEuMjA5MjIsIDEuNzkyODEsIDIuOTU5OCwgMy42ODkyNiIsIFwKLSAgICAgICAgICAiMC4xODkzMjMsIDAuMjc2NTA4LCAwLjc3MTgyOCwgMS4yMDkyMiwgMS43OTI4OSwgMi45NTk0MywgMy42ODkzIiwgXAotICAgICAgICAgICIwLjE4OTU2NywgMC4yNzY1MDgsIDAuNzcxNzE3LCAxLjIwOTI3LCAxLjc5MjQzLCAyLjk1OTg4LCAzLjY4OTI5IiwgXAotICAgICAgICAgICIwLjE5MTg5NiwgMC4yNzY5MTgsIDAuNzcxNzEyLCAxLjIwOTExLCAxLjc5MjU3LCAyLjk2MDI5LCAzLjY4OTMyIiwgXAotICAgICAgICAgICIwLjE5NTk5LCAwLjI3OTAyNSwgMC43NzE3OTksIDEuMjA5MTEsIDEuNzkyODUsIDIuOTU5ODYsIDMuNjg5IiwgXAotICAgICAgICAgICIwLjIwNTAxNywgMC4yODQ4MjcsIDAuNzcxNywgMS4yMDkyNCwgMS43OTI5MywgMi45NTk0NiwgMy42ODkyNCIsIFwKLSAgICAgICAgICAiMC4yMTQxNzksIDAuMjkxODcyLCAwLjc3MTY5NywgMS4yMDkxMSwgMS43OTI2NSwgMi45NTk4NywgMy42ODk5MiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMjY5MzksIDAuNDc1OTU0LCAxLjMxODE0LCAyLjA2MDUsIDMuMDUwNjEsIDUuMDQwOTEsIDYuMjg0NzMiLCBcCi0gICAgICAgICAgIjAuMzM2NjQyLCAwLjQ4NTg0MiwgMS4zMjgxNiwgMi4wNzAyMSwgMy4wNjA1MiwgNS4wNTA4NywgNi4yOTQ4NiIsIFwKLSAgICAgICAgICAiMC4zNDkzMDUsIDAuNDk4NjU3LCAxLjM0MDcyLCAyLjA4MzM4LCAzLjA3MzY5LCA1LjA2MzkxLCA2LjMwNzg1IiwgXAotICAgICAgICAgICIwLjM2MTAyNSwgMC41MTAxODgsIDEuMzUzMjYsIDIuMDk2MDgsIDMuMDg1NDgsIDUuMDc2MDQsIDYuMzE5NzUiLCBcCi0gICAgICAgICAgIjAuMzczMTksIDAuNTIyNDEsIDEuMzY1NDQsIDIuMTA4MSwgMy4wOTc5MSwgNS4wODgxOSwgNi4zMzIxNCIsIFwKLSAgICAgICAgICAiMC4zOTI2MDEsIDAuNTQxOTYyLCAxLjM4NTMxLCAyLjEyNzcyLCAzLjExNzY0LCA1LjEwNzk4LCA2LjM1MTk0IiwgXAotICAgICAgICAgICIwLjQwOTcwOSwgMC41NTkxMjcsIDEuNDAxOTIsIDIuMTQ0MTMsIDMuMTM1NTksIDUuMTI1MzYsIDYuMzY5MjMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuNTc5MjYyLCAwLjg1ODY2NywgMi40MzkzMiwgMy44NDYxNiwgNS43MjE1NCwgOS40NTQ5NCwgMTEuNzg5OCIsIFwKLSAgICAgICAgICAiMC41Nzk1MTYsIDAuODU4Mzc4LCAyLjQ0MDEzLCAzLjg0NzQ1LCA1LjcyMjAxLCA5LjQ1NjA3LCAxMS43ODk5IiwgXAotICAgICAgICAgICIwLjU3OTU0MSwgMC44NTg2NjIsIDIuNDM5OTksIDMuODQ2MDIsIDUuNzIyNDIsIDkuNDU2MTQsIDExLjc4OTkiLCBcCi0gICAgICAgICAgIjAuNTc5NzUyLCAwLjg1ODk2OSwgMi40Mzg5NSwgMy44NDUwMywgNS43MjEyNCwgOS40NTU5NCwgMTEuNzkwMyIsIFwKLSAgICAgICAgICAiMC41NzkxMDYsIDAuODU5MDEyLCAyLjQ0MjYsIDMuODQ2NzQsIDUuNzIxMywgOS40NTY0OSwgMTEuNzg5NSIsIFwKLSAgICAgICAgICAiMC41Nzg5LCAwLjg1ODEwMSwgMi40MzksIDMuODQ2NjcsIDUuNzIxMjksIDkuNDU1ODIsIDExLjc4OTgiLCBcCi0gICAgICAgICAgIjAuNTc5NDYxLCAwLjg1ODE0NywgMi40NDA4LCAzLjg0NDI0LCA1LjcxNzQ0LCA5LjQ1NjM5LCAxMS43ODk1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzMzLCAwLjAwMzMzLCAwLjAwMzMyOCwgMC4wMDMzMjUsIDAuMDAzMzI0LCAwLjAwMzMxNywgMC4wMDMzMTMiLCBcCi0gICAgICAgICAgIjAuMDAzMzE5LCAwLjAwMzMxOSwgMC4wMDMzMTcsIDAuMDAzMzE1LCAwLjAwMzMxMiwgMC4wMDMzMDYsIDAuMDAzMzAzIiwgXAotICAgICAgICAgICIwLjAwMzMxNSwgMC4wMDMzMTUsIDAuMDAzMzE0LCAwLjAwMzMxMiwgMC4wMDMzMDksIDAuMDAzMzAyLCAwLjAwMzI5OSIsIFwKLSAgICAgICAgICAiMC4wMDMzMTMsIDAuMDAzMzEzLCAwLjAwMzMxMiwgMC4wMDMzMSwgMC4wMDMzMDcsIDAuMDAzMzAyLCAwLjAwMzI5NyIsIFwKLSAgICAgICAgICAiMC4wMDMzMTIsIDAuMDAzMzEyLCAwLjAwMzMxMSwgMC4wMDMzMDksIDAuMDAzMzA3LCAwLjAwMzMwMiwgMC4wMDMyOTciLCBcCi0gICAgICAgICAgIjAuMDAzMzEsIDAuMDAzMzEsIDAuMDAzMzA5LCAwLjAwMzMwOCwgMC4wMDMzMDYsIDAuMDAzMywgMC4wMDMyOTYiLCBcCi0gICAgICAgICAgIjAuMDAzMzA3LCAwLjAwMzMwOSwgMC4wMDMzMSwgMC4wMDMzMDgsIDAuMDAzMzA1LCAwLjAwMzMsIDAuMDAzMjk1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxMzE0LCAwLjAwMTMxMywgMC4wMDEzMTIsIDAuMDAxMzExLCAwLjAwMTMxLCAwLjAwMTMwNSwgMC4wMDEzMDMiLCBcCi0gICAgICAgICAgIjAuMDAxMjk5LCAwLjAwMTMsIDAuMDAxMywgMC4wMDEyOTksIDAuMDAxMjk3LCAwLjAwMTI5NCwgMC4wMDEyOTMiLCBcCi0gICAgICAgICAgIjAuMDAxMjk0LCAwLjAwMTI5NSwgMC4wMDEyOTYsIDAuMDAxMjk3LCAwLjAwMTI5NCwgMC4wMDEyOTEsIDAuMDAxMjg4IiwgXAotICAgICAgICAgICIwLjAwMTI5LCAwLjAwMTI5MiwgMC4wMDEyOTUsIDAuMDAxMjk0LCAwLjAwMTI5MywgMC4wMDEyOSwgMC4wMDEyODgiLCBcCi0gICAgICAgICAgIjAuMDAxMjg3LCAwLjAwMTI5LCAwLjAwMTI5NCwgMC4wMDEyOTQsIDAuMDAxMjkzLCAwLjAwMTI4OSwgMC4wMDEyODciLCBcCi0gICAgICAgICAgIjAuMDAxMjgyLCAwLjAwMTI4NiwgMC4wMDEyOTIsIDAuMDAxMjkyLCAwLjAwMTI5MSwgMC4wMDEyODgsIDAuMDAxMjg2IiwgXAotICAgICAgICAgICIwLjAwMTI3OSwgMC4wMDEyODQsIDAuMDAxMjkxLCAwLjAwMTI5MiwgMC4wMDEyOTEsIDAuMDAxMjg4LCAwLjAwMTI4NiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkExIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDMwOCwgMC4wMDMwOCwgMC4wMDMwNzcsIDAuMDAzMDc1LCAwLjAwMzA3MywgMC4wMDMwNjcsIDAuMDAzMDY1IiwgXAotICAgICAgICAgICIwLjAwMzA2OCwgMC4wMDMwNjgsIDAuMDAzMDY2LCAwLjAwMzA2NSwgMC4wMDMwNjIsIDAuMDAzMDU1LCAwLjAwMzA1MyIsIFwKLSAgICAgICAgICAiMC4wMDMwNjMsIDAuMDAzMDYzLCAwLjAwMzA2MiwgMC4wMDMwNiwgMC4wMDMwNTgsIDAuMDAzMDUyLCAwLjAwMzA0NyIsIFwKLSAgICAgICAgICAiMC4wMDMwNTgsIDAuMDAzMDYsIDAuMDAzMDYsIDAuMDAzMDU5LCAwLjAwMzA1NywgMC4wMDMwNSwgMC4wMDMwNDYiLCBcCi0gICAgICAgICAgIjAuMDAzMDU2LCAwLjAwMzA1NywgMC4wMDMwNTksIDAuMDAzMDU3LCAwLjAwMzA1NSwgMC4wMDMwNSwgMC4wMDMwNDUiLCBcCi0gICAgICAgICAgIjAuMDAzMDUzLCAwLjAwMzA1NCwgMC4wMDMwNTcsIDAuMDAzMDU2LCAwLjAwMzA1NCwgMC4wMDMwNDgsIDAuMDAzMDQ0IiwgXAotICAgICAgICAgICIwLjAwMzA0OSwgMC4wMDMwNTIsIDAuMDAzMDU2LCAwLjAwMzA1NSwgMC4wMDMwNTMsIDAuMDAzMDQ4LCAwLjAwMzA0MyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDk3NiwgMC4wMDA5NzYsIDAuMDAwOTgxLCAwLjAwMDk3NiwgMC4wMDA5NzUsIDAuMDAwOTczLCAwLjAwMDk3MyIsIFwKLSAgICAgICAgICAiMC4wMDA5ODEsIDAuMDAwOTg0LCAwLjAwMDk4OCwgMC4wMDA5ODgsIDAuMDAwOTg3LCAwLjAwMDk4NSwgMC4wMDA5ODYiLCBcCi0gICAgICAgICAgIjAuMDAwOTc1LCAwLjAwMDk4LCAwLjAwMDk4NywgMC4wMDA5ODksIDAuMDAwOTg4LCAwLjAwMDk4NywgMC4wMDA5ODYiLCBcCi0gICAgICAgICAgIjAuMDAwOTY4LCAwLjAwMDk3NiwgMC4wMDA5ODYsIDAuMDAwOTg4LCAwLjAwMDk4OCwgMC4wMDA5ODcsIDAuMDAwOTg2IiwgXAotICAgICAgICAgICIwLjAwMDk2MiwgMC4wMDA5NzEsIDAuMDAwOTg0LCAwLjAwMDk4NiwgMC4wMDA5ODcsIDAuMDAwOTg3LCAwLjAwMDk4NiIsIFwKLSAgICAgICAgICAiMC4wMDA5NTMsIDAuMDAwOTYzLCAwLjAwMDk4MSwgMC4wMDA5ODQsIDAuMDAwOTg2LCAwLjAwMDk4NiwgMC4wMDA5ODUiLCBcCi0gICAgICAgICAgIjAuMDAwOTQ2LCAwLjAwMDk1OCwgMC4wMDA5NzksIDAuMDAwOTgzLCAwLjAwMDk4NSwgMC4wMDA5ODYsIDAuMDAwOTg1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjU3OSwgMC4wMDI1NzksIDAuMDAyNTc4LCAwLjAwMjU3NywgMC4wMDI1NzUsIDAuMDAyNTczLCAwLjAwMjU3IiwgXAotICAgICAgICAgICIwLjAwMjU3OCwgMC4wMDI1NzksIDAuMDAyNTc4LCAwLjAwMjU3OCwgMC4wMDI1NzYsIDAuMDAyNTczLCAwLjAwMjU3MSIsIFwKLSAgICAgICAgICAiMC4wMDI1NzYsIDAuMDAyNTc3LCAwLjAwMjU3OCwgMC4wMDI1NzcsIDAuMDAyNTc3LCAwLjAwMjU3NCwgMC4wMDI1NzQiLCBcCi0gICAgICAgICAgIjAuMDAyNTc0LCAwLjAwMjU3NiwgMC4wMDI1NzcsIDAuMDAyNTc3LCAwLjAwMjU3NiwgMC4wMDI1NzQsIDAuMDAyNTcyIiwgXAotICAgICAgICAgICIwLjAwMjU3MSwgMC4wMDI1NzQsIDAuMDAyNTc3LCAwLjAwMjU3NywgMC4wMDI1NzYsIDAuMDAyNTc0LCAwLjAwMjU3MiIsIFwKLSAgICAgICAgICAiMC4wMDI1NjcsIDAuMDAyNTcxLCAwLjAwMjU3NiwgMC4wMDI1NzYsIDAuMDAyNTc2LCAwLjAwMjU3MywgMC4wMDI1NzEiLCBcCi0gICAgICAgICAgIjAuMDAyNTY1LCAwLjAwMjU2OSwgMC4wMDI1NzUsIDAuMDAyNTc2LCAwLjAwMjU3NSwgMC4wMDI1NzMsIDAuMDAyNTcxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxMzE0LCAwLjAwMTMxNCwgMC4wMDEzMTMsIDAuMDAxMzExLCAwLjAwMTMxLCAwLjAwMTMwNSwgMC4wMDEzMDMiLCBcCi0gICAgICAgICAgIjAuMDAxMywgMC4wMDEzMDEsIDAuMDAxMywgMC4wMDEzLCAwLjAwMTI5NiwgMC4wMDEyOTQsIDAuMDAxMjk0IiwgXAotICAgICAgICAgICIwLjAwMTI5NCwgMC4wMDEyOTUsIDAuMDAxMjk3LCAwLjAwMTI5NiwgMC4wMDEyOTYsIDAuMDAxMjkxLCAwLjAwMTI4NiIsIFwKLSAgICAgICAgICAiMC4wMDEyOSwgMC4wMDEyOTMsIDAuMDAxMjk1LCAwLjAwMTI5NSwgMC4wMDEyOTQsIDAuMDAxMjksIDAuMDAxMjg3IiwgXAotICAgICAgICAgICIwLjAwMTI4NywgMC4wMDEyOSwgMC4wMDEyOTQsIDAuMDAxMjk0LCAwLjAwMTI5MywgMC4wMDEyODksIDAuMDAxMjg2IiwgXAotICAgICAgICAgICIwLjAwMTI4MiwgMC4wMDEyODcsIDAuMDAxMjkyLCAwLjAwMTI5MywgMC4wMDEyOTIsIDAuMDAxMjg5LCAwLjAwMTI4NiIsIFwKLSAgICAgICAgICAiMC4wMDEyOCwgMC4wMDEyODMsIDAuMDAxMjkxLCAwLjAwMTI5MiwgMC4wMDEyOTEsIDAuMDAxMjg4LCAwLjAwMTI4NiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIxIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDIzMjksIDAuMDAyMzI4LCAwLjAwMjMyNywgMC4wMDIzMjYsIDAuMDAyMzI2LCAwLjAwMjMyMywgMC4wMDIzMiIsIFwKLSAgICAgICAgICAiMC4wMDIzMjYsIDAuMDAyMzI3LCAwLjAwMjMyNywgMC4wMDIzMjcsIDAuMDAyMzI1LCAwLjAwMjMyMywgMC4wMDIzMjEiLCBcCi0gICAgICAgICAgIjAuMDAyMzIzLCAwLjAwMjMyNCwgMC4wMDIzMjcsIDAuMDAyMzI2LCAwLjAwMjMyNSwgMC4wMDIzMjMsIDAuMDAyMzIxIiwgXAotICAgICAgICAgICIwLjAwMjMxOSwgMC4wMDIzMjIsIDAuMDAyMzI1LCAwLjAwMjMyNiwgMC4wMDIzMjUsIDAuMDAyMzIyLCAwLjAwMjMyMSIsIFwKLSAgICAgICAgICAiMC4wMDIzMTYsIDAuMDAyMzIsIDAuMDAyMzI1LCAwLjAwMjMyNSwgMC4wMDIzMjQsIDAuMDAyMzIyLCAwLjAwMjMyMSIsIFwKLSAgICAgICAgICAiMC4wMDIzMTEsIDAuMDAyMzE2LCAwLjAwMjMyMywgMC4wMDIzMjQsIDAuMDAyMzI0LCAwLjAwMjMyMiwgMC4wMDIzMTkiLCBcCi0gICAgICAgICAgIjAuMDAyMzA4LCAwLjAwMjMxMywgMC4wMDIzMjIsIDAuMDAyMzIzLCAwLjAwMjMyMywgMC4wMDIzMjIsIDAuMDAyMzIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDA5NzIsIDAuMDAwOTcyLCAwLjAwMDk3LCAwLjAwMDk3NiwgMC4wMDA5NzEsIDAuMDAwOTY5LCAwLjAwMDk2NiIsIFwKLSAgICAgICAgICAiMC4wMDA5NzcsIDAuMDAwOTgsIDAuMDAwOTgzLCAwLjAwMDk4MiwgMC4wMDA5ODMsIDAuMDAwOTgxLCAwLjAwMDk4IiwgXAotICAgICAgICAgICIwLjAwMDk3MSwgMC4wMDA5NzYsIDAuMDAwOTgzLCAwLjAwMDk4NSwgMC4wMDA5ODUsIDAuMDAwOTgzLCAwLjAwMDk4MiIsIFwKLSAgICAgICAgICAiMC4wMDA5NjQsIDAuMDAwOTcxLCAwLjAwMDk4MSwgMC4wMDA5ODQsIDAuMDAwOTg0LCAwLjAwMDk4MywgMC4wMDA5ODIiLCBcCi0gICAgICAgICAgIjAuMDAwOTU4LCAwLjAwMDk2NiwgMC4wMDA5OCwgMC4wMDA5ODIsIDAuMDAwOTgzLCAwLjAwMDk4MywgMC4wMDA5ODIiLCBcCi0gICAgICAgICAgIjAuMDAwOTQ4LCAwLjAwMDk1OSwgMC4wMDA5NzcsIDAuMDAwOTgsIDAuMDAwOTgyLCAwLjAwMDk4MiwgMC4wMDA5ODEiLCBcCi0gICAgICAgICAgIjAuMDAwOTQxLCAwLjAwMDk1MywgMC4wMDA5NzQsIDAuMDAwOTc5LCAwLjAwMDk4MSwgMC4wMDA5ODEsIDAuMDAwOTgxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQzAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTkwNiwgMC4wMDE5MDcsIDAuMDAxOTA3LCAwLjAwMTkwNywgMC4wMDE5MDgsIDAuMDAxOTA4LCAwLjAwMTkwNyIsIFwKLSAgICAgICAgICAiMC4wMDE5MTEsIDAuMDAxOTE0LCAwLjAwMTkxNywgMC4wMDE5MTcsIDAuMDAxOTE4LCAwLjAwMTkxOCwgMC4wMDE5MTgiLCBcCi0gICAgICAgICAgIjAuMDAxOTA5LCAwLjAwMTkxMywgMC4wMDE5MTksIDAuMDAxOTIyLCAwLjAwMTkyMSwgMC4wMDE5MjIsIDAuMDAxOTIyIiwgXAotICAgICAgICAgICIwLjAwMTkwNSwgMC4wMDE5MTEsIDAuMDAxOTE5LCAwLjAwMTkyMSwgMC4wMDE5MiwgMC4wMDE5MjIsIDAuMDAxOTIzIiwgXAotICAgICAgICAgICIwLjAwMTkwMiwgMC4wMDE5MDgsIDAuMDAxOTE4LCAwLjAwMTkyLCAwLjAwMTkyMiwgMC4wMDE5MjIsIDAuMDAxOTIzIiwgXAotICAgICAgICAgICIwLjAwMTg5NiwgMC4wMDE5MDQsIDAuMDAxOTE3LCAwLjAwMTkxOSwgMC4wMDE5MjEsIDAuMDAxOTIzLCAwLjAwMTkyMyIsIFwKLSAgICAgICAgICAiMC4wMDE4OTIsIDAuMDAxOTAxLCAwLjAwMTkxNCwgMC4wMDE5MTksIDAuMDAxOTIsIDAuMDAxOTIyLCAwLjAwMTkyMyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTMyNywgMC4wMDEzMjgsIDAuMDAxMzI5LCAwLjAwMTMyNSwgMC4wMDEzMjUsIDAuMDAxMzIxLCAwLjAwMTMxOCIsIFwKLSAgICAgICAgICAiMC4wMDEzMTksIDAuMDAxMzIyLCAwLjAwMTMyNiwgMC4wMDEzMjUsIDAuMDAxMzI0LCAwLjAwMTMyMSwgMC4wMDEzMTgiLCBcCi0gICAgICAgICAgIjAuMDAxMzExLCAwLjAwMTMxNiwgMC4wMDEzMjMsIDAuMDAxMzIzLCAwLjAwMTMyMywgMC4wMDEzMiwgMC4wMDEzMTgiLCBcCi0gICAgICAgICAgIjAuMDAxMzAzLCAwLjAwMTMxLCAwLjAwMTMyLCAwLjAwMTMyMiwgMC4wMDEzMjIsIDAuMDAxMzE5LCAwLjAwMTMxNyIsIFwKLSAgICAgICAgICAiMC4wMDEyOTcsIDAuMDAxMzA0LCAwLjAwMTMxOCwgMC4wMDEzMiwgMC4wMDEzMjEsIDAuMDAxMzE5LCAwLjAwMTMxNiIsIFwKLSAgICAgICAgICAiMC4wMDEyODksIDAuMDAxMjk4LCAwLjAwMTMxNCwgMC4wMDEzMTgsIDAuMDAxMzE5LCAwLjAwMTMxNywgMC4wMDEzMTUiLCBcCi0gICAgICAgICAgIjAuMDAxMjgzLCAwLjAwMTI5MywgMC4wMDEzMTIsIDAuMDAxMzE2LCAwLjAwMTMxOCwgMC4wMDEzMTcsIDAuMDAxMzE0Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogT0FJMjJYTCAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChPQUkyMlhMKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMDUzNjc2ODsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQTApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDU4MDk4MTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA1NzkzNzE7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNTgwOTgxOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDE2NSwgMC4wMDAxNjUsIDAuMDAwMTY1LCAwLjAwMDE2NSwgMC4wMDAxNjUsIDAuMDAwMTY1LCAwLjAwMDE2NSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQTEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYwMjMxMTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MDIzMTE7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjAwMjg4OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDE2NSwgMC4wMDAxNjUsIDAuMDAwMTY1LCAwLjAwMDE2NSwgMC4wMDAxNjUsIDAuMDAwMTY1LCAwLjAwMDE2NSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQjApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDU2NTM5NDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA1NjIyMjU7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNTY1Mzk0OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDM5MSwgMC4wMDAzOTEsIDAuMDAwMzksIDAuMDAwMzkxLCAwLjAwMDM5LCAwLjAwMDM5LCAwLjAwMDM5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMTg4LCAwLjAwMDE4OCwgMC4wMDAxODgsIDAuMDAwMTg4LCAwLjAwMDE4OCwgMC4wMDAxODgsIDAuMDAwMTg4Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCMSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNTg0MDYzOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDU4NDA2MzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA1ODM5MTg7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzksIDAuMDAwMzksIDAuMDAwMzkxLCAwLjAwMDM5LCAwLjAwMDM5LCAwLjAwMDM5LCAwLjAwMDM5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMTg4LCAwLjAwMDE4OCwgMC4wMDAxODgsIDAuMDAwMTg4LCAwLjAwMDE4OCwgMC4wMDAxODgsIDAuMDAwMTg4Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMDM3NTc3NzsKLSAgICBmdW5jdGlvbiA6ICIoISgoQjArQjEpIChBMCtBMSkpKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTAiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMxNDMwNiwgMC4zNjYxOSwgMC44MzE3OTcsIDEuNjA2NjIsIDIuMzgxNzMsIDQuMTg4ODcsIDUuMjIxNDMiLCBcCi0gICAgICAgICAgIjAuMzI1ODQ3LCAwLjM3Nzc4LCAwLjg0MzY3NCwgMS42MTg3NiwgMi4zOTM5OCwgNC4yMDAzLCA1LjIzMzA0IiwgXAotICAgICAgICAgICIwLjMzODk2NCwgMC4zOTA4NjYsIDAuODU2NjkxLCAxLjYzMTIyLCAyLjQwNjc2LCA0LjIxMzQ1LCA1LjI0NTk2IiwgXAotICAgICAgICAgICIwLjM1MTU3MSwgMC40MDM1MTUsIDAuODY5MTM3LCAxLjY0NDQ4LCAyLjQxOTg1LCA0LjIyNjE0LCA1LjI1ODciLCBcCi0gICAgICAgICAgIjAuMzY0MDU1LCAwLjQxNTkzMywgMC44ODE2MDgsIDEuNjU2NjEsIDIuNDMyMDMsIDQuMjM4NjQsIDUuMjcxMjYiLCBcCi0gICAgICAgICAgIjAuMzgzNTEzLCAwLjQzNTY2MywgMC45MDEzNiwgMS42NzY4MywgMi40NTA3NSwgNC4yNTg0MywgNS4yOTEiLCBcCi0gICAgICAgICAgIjAuNDAxMDI1LCAwLjQ1Mjk5NCwgMC45MTg5NywgMS42OTM5MSwgMi40Njg0MiwgNC4yNzU5LCA1LjMwODU3Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjU5MTQwNCwgMC42OTIzMTYsIDEuNTk5NDcsIDMuMTEyMzEsIDQuNjI0NTgsIDguMTUxODEsIDEwLjE2NjkiLCBcCi0gICAgICAgICAgIjAuNTkxMzM0LCAwLjY5MjIzMiwgMS41OTk4LCAzLjExMjM2LCA0LjYyNDU5LCA4LjE1MTkzLCAxMC4xNjY2IiwgXAotICAgICAgICAgICIwLjU5MTQ0MiwgMC42OTIzNTYsIDEuNTk5NDYsIDMuMTExNTUsIDQuNjI0MjMsIDguMTUyMTYsIDEwLjE2NzIiLCBcCi0gICAgICAgICAgIjAuNTkxNDksIDAuNjkyMjc0LCAxLjU5OTQzLCAzLjExMTM3LCA0LjYyNDY2LCA4LjE1MTgsIDEwLjE2NjYiLCBcCi0gICAgICAgICAgIjAuNTkxNDg3LCAwLjY5MjI1LCAxLjU5OTQxLCAzLjExMTM3LCA0LjYyNDE5LCA4LjE1MTY0LCAxMC4xNjY3IiwgXAotICAgICAgICAgICIwLjU5MTQyMiwgMC42OTIyNTcsIDEuNTk5OCwgMy4xMTEyNywgNC42MjQwNiwgOC4xNTIyNSwgMTAuMTY2NiIsIFwKLSAgICAgICAgICAiMC41OTIyOTcsIDAuNjkyNTA5LCAxLjU5OTcyLCAzLjExMTM2LCA0LjYyMjg3LCA4LjE1MTgsIDEwLjE2NjEiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzc0MjE4LCAwLjQzMzgwMiwgMC45Njk0LCAxLjg2MTA4LCAyLjc1MTgyLCA0LjgyOTI5LCA2LjAxNjM1IiwgXAotICAgICAgICAgICIwLjM4NjA3OSwgMC40NDU3OTIsIDAuOTgxMzI4LCAxLjg3Mjc1LCAyLjc2NDAxLCA0Ljg0MTIyLCA2LjAyODM5IiwgXAotICAgICAgICAgICIwLjQwMTYwMywgMC40NjEwNjcsIDAuOTk2ODUxLCAxLjg4ODk0LCAyLjc3OTQxLCA0Ljg1Njg2LCA2LjA0MzU3IiwgXAotICAgICAgICAgICIwLjQxNjMxOCwgMC40NzU4OTksIDEuMDExNzcsIDEuOTAzMTgsIDIuNzk0MSwgNC44NzE1MywgNi4wNTg2MSIsIFwKLSAgICAgICAgICAiMC40MzA2OTYsIDAuNDkwMjk3LCAxLjAyNTgzLCAxLjkxODIxLCAyLjgwODYzLCA0Ljg4NjE0LCA2LjA3MjgzIiwgXAotICAgICAgICAgICIwLjQ1MzEyMSwgMC41MTI3MjEsIDEuMDQ4ODMsIDEuOTQsIDIuODMxMjgsIDQuOTA4NSwgNi4wOTU2NyIsIFwKLSAgICAgICAgICAiMC40NzI2ODUsIDAuNTMyMjYsIDEuMDY3NjcsIDEuOTU5ODIsIDIuODUwNzYsIDQuOTI3ODQsIDYuMTE1MTMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuNjQ0MTEsIDAuNzU3MTg1LCAxLjc3NjYyLCAzLjQ3NTI4LCA1LjE3Mjg2LCA5LjEyNzMyLCAxMS4zODQiLCBcCi0gICAgICAgICAgIjAuNjQ0MjU1LCAwLjc1NzA4NiwgMS43NzY2MiwgMy40NzQ4OSwgNS4xNzUzMywgOS4xMjgyOSwgMTEuMzg0NiIsIFwKLSAgICAgICAgICAiMC42NDQwNTYsIDAuNzU2ODk3LCAxLjc3NjUxLCAzLjQ3NTM0LCA1LjE3MzUzLCA5LjEyODE0LCAxMS4zODQzIiwgXAotICAgICAgICAgICIwLjY0MzY0OSwgMC43NTcyMjUsIDEuNzc2NzYsIDMuNDc1MTksIDUuMTcyMDgsIDkuMTI3OTIsIDExLjM4MzYiLCBcCi0gICAgICAgICAgIjAuNjQzOTksIDAuNzU3MjA1LCAxLjc3NjgyLCAzLjQ3NTkxLCA1LjE3NjY1LCA5LjEyODE1LCAxMS4zODQzIiwgXAotICAgICAgICAgICIwLjY0NDI1NywgMC43NTc2NTIsIDEuNzc2NDgsIDMuNDc0OTIsIDUuMTc1NDksIDkuMTI4MjksIDExLjM4NDYiLCBcCi0gICAgICAgICAgIjAuNjQzNzU5LCAwLjc1NzIxNiwgMS43NzYzNiwgMy40NzYyNywgNS4xNzYzNywgOS4xMjcxNSwgMTEuMzg0NiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzA3MzUyLCAwLjM1OTI2NCwgMC44MjUxMSwgMS42MDAxNywgMi4zNzU1NiwgNC4xODE3OSwgNS4yMTQ1OSIsIFwKLSAgICAgICAgICAiMC4zMTc4MDIsIDAuMzY5NzAzLCAwLjgzNTUyOSwgMS42MTA1NSwgMi4zODU3NywgNC4xOTIzMiwgNS4yMjQ4MyIsIFwKLSAgICAgICAgICAiMC4zMzA1NCwgMC4zODI0NDgsIDAuODQ4MDgzLCAxLjYyMjk2LCAyLjM5NzYxLCA0LjIwNTExLCA1LjIzNzc0IiwgXAotICAgICAgICAgICIwLjM0MzUxNCwgMC4zOTU0NDIsIDAuODYxMTEyLCAxLjYzNjE3LCAyLjQxMTU5LCA0LjIxODE0LCA1LjI1MDc0IiwgXAotICAgICAgICAgICIwLjM1NjU1LCAwLjQwODQ5NSwgMC44NzQyMzksIDEuNjQ5NzMsIDIuNDIzNzcsIDQuMjMxMjIsIDUuMjYzODYiLCBcCi0gICAgICAgICAgIjAuMzc3NDYyLCAwLjQyOTMyNiwgMC44OTUxNzIsIDEuNjY5OTcsIDIuNDQ1MjcsIDQuMjUxODYsIDUuMjg0NTkiLCBcCi0gICAgICAgICAgIjAuMzk1Njk2LCAwLjQ0NzU4LCAwLjkxMzMwNSwgMS42ODgzNiwgMi40NjM1NSwgNC4yNzAzOSwgNS4zMDI5MyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC41OTE0MTEsIDAuNjkyMjQyLCAxLjU5OTc2LCAzLjExMjA5LCA0LjYyNDI4LCA4LjE1MTU0LCAxMC4xNjcxIiwgXAotICAgICAgICAgICIwLjU5MTQzMiwgMC42OTIyNiwgMS41OTk0MSwgMy4xMTE2MywgNC42MjQyOSwgOC4xNTIyMywgMTAuMTY3MiIsIFwKLSAgICAgICAgICAiMC41OTEzNjQsIDAuNjkyMjMyLCAxLjU5OTQ1LCAzLjExMTM4LCA0LjYyMzA3LCA4LjE1MTkxLCAxMC4xNjY0IiwgXAotICAgICAgICAgICIwLjU5MTQwNiwgMC42OTIyNzksIDEuNTk5NzcsIDMuMTExNTUsIDQuNjI0NTYsIDguMTUxNTksIDEwLjE2NzIiLCBcCi0gICAgICAgICAgIjAuNTkxMzgxLCAwLjY5MjM1MywgMS41OTk3MywgMy4xMTIwOCwgNC42MjMwMywgOC4xNTAyNCwgMTAuMTY2OSIsIFwKLSAgICAgICAgICAiMC41OTE0NzgsIDAuNjkyMjMsIDEuNTk5NzUsIDMuMTExMzcsIDQuNjIyODQsIDguMTUwNzUsIDEwLjE2NjMiLCBcCi0gICAgICAgICAgIjAuNTkzMjc0LCAwLjY5MjY4NiwgMS41OTk0MiwgMy4xMTEzMiwgNC42MjQ0NSwgOC4xNTIyMSwgMTAuMTY2Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjM2MjU1OCwgMC40MjIxMzEsIDAuOTU3MDEzLCAxLjg0ODI1LCAyLjczOTI5LCA0LjgxNjY1LCA2LjAwMzk1IiwgXAotICAgICAgICAgICIwLjM3NTEyNywgMC40MzQ2ODQsIDAuOTcwMDEyLCAxLjg2MTIzLCAyLjc1MjM3LCA0LjgyOTUzLCA2LjAxNjY3IiwgXAotICAgICAgICAgICIwLjM5MDU4MywgMC40NTAwNywgMC45ODU1NzUsIDEuODc3NTQsIDIuNzY3NTcsIDQuODQ1MjksIDYuMDMxOTciLCBcCi0gICAgICAgICAgIjAuNDA1MzQ3LCAwLjQ2NDg2MywgMS4wMDA1NywgMS44OTE4MiwgMi43ODI2OCwgNC44NjAwMSwgNi4wNDcwNiIsIFwKLSAgICAgICAgICAiMC40MTk3MTIsIDAuNDc5Mjc4LCAxLjAxNDY5LCAxLjkwNjgsIDIuNzk2OTksIDQuODc0NjMsIDYuMDYxMyIsIFwKLSAgICAgICAgICAiMC40NDIxNywgMC41MDE2MTYsIDEuMDM3NTMsIDEuOTI4NjMsIDIuODE5ODYsIDQuODk3MDEsIDYuMDg0MTQiLCBcCi0gICAgICAgICAgIjAuNDYxNTExLCAwLjUyMTA3MiwgMS4wNTYzNywgMS45NDg0OCwgMi44MzkzNiwgNC45MTYzNywgNi4xMDM2MSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC42MzE1MjEsIDAuNzQ0NTk1LCAxLjc2MzA4LCAzLjQ2MDk2LCA1LjE1OTMzLCA5LjExMjk1LCAxMS4zNyIsIFwKLSAgICAgICAgICAiMC42MzEwOTgsIDAuNzQ0NzQ1LCAxLjc2MzQzLCAzLjQ2MTE0LCA1LjE1ODU5LCA5LjExMzk3LCAxMS4zNzAxIiwgXAotICAgICAgICAgICIwLjYzMTM2NywgMC43NDQ3MjQsIDEuNzYzMjUsIDMuNDYxNTYsIDUuMTU3ODYsIDkuMTEzNDYsIDExLjM2OTgiLCBcCi0gICAgICAgICAgIjAuNjMxMzY3LCAwLjc0NDc4LCAxLjc2MzYyLCAzLjQ2MTUzLCA1LjE1ODEyLCA5LjExMzQzLCAxMS4zNjkyIiwgXAotICAgICAgICAgICIwLjYzMTUxOSwgMC43NDQ0NzIsIDEuNzYzMzIsIDMuNDYyMSwgNS4xNTgwMSwgOS4xMTM4MiwgMTEuMzY5OCIsIFwKLSAgICAgICAgICAiMC42MzE0NjcsIDAuNzQ0NDczLCAxLjc2MzY2LCAzLjQ2MTE0LCA1LjE2MTUsIDkuMTE0LCAxMS4zNyIsIFwKLSAgICAgICAgICAiMC42MzE0MDgsIDAuNzQ0NzQ1LCAxLjc2MzAyLCAzLjQ2Mjc5LCA1LjE2MDQ1LCA5LjExMjksIDExLjM3MDEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjAiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI5MzE5NywgMC4zNDQ4OTIsIDAuODA5NjUsIDEuNTg0NDYsIDIuMzU5MzEsIDQuMTY2NzYsIDUuMTk5MTkiLCBcCi0gICAgICAgICAgIjAuMzA1MTA4LCAwLjM1NjcyNiwgMC44MjE1MjQsIDEuNTk2MzQsIDIuMzcxMiwgNC4xNzg2NSwgNS4yMTExMSIsIFwKLSAgICAgICAgICAiMC4zMTgyNjMsIDAuMzcwMDY1LCAwLjgzNDgyOCwgMS42MDk2NSwgMi4zODQzMywgNC4xOTE4NiwgNS4yMjQyMSIsIFwKLSAgICAgICAgICAiMC4zMzA5MzcsIDAuMzgyNzczLCAwLjg0NzQ0NSwgMS42MjIzNywgMi4zOTcwNSwgNC4yMDQ2LCA1LjIzNjk2IiwgXAotICAgICAgICAgICIwLjM0MzMwNywgMC4zOTUxNjEsIDAuODU5OTQ4LCAxLjYzNDg3LCAyLjQwOTU3LCA0LjIxNzEzLCA1LjI0OTQ5IiwgXAotICAgICAgICAgICIwLjM2MzAxMSwgMC40MTQ3MzcsIDAuODc5OTQsIDEuNjU0NDYsIDIuNDI5MzMsIDQuMjM2OCwgNS4yNjk0MyIsIFwKLSAgICAgICAgICAiMC4zODAzMjgsIDAuNDMyMDU1LCAwLjg5NzQwNiwgMS42NzIxNSwgMi40NDY4NCwgNC4yNTQ0NiwgNS4yODY5NiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC41NjkzODgsIDAuNjY5OTc2LCAxLjU3NjA3LCAzLjA4NjkyLCA0LjYwMDc0LCA4LjEyNjU4LCAxMC4xNDExIiwgXAotICAgICAgICAgICIwLjU2OTMzNywgMC42Njk5OTIsIDEuNTc1ODcsIDMuMDg3MzgsIDQuNjAwNjcsIDguMTI2NTUsIDEwLjE0MDUiLCBcCi0gICAgICAgICAgIjAuNTY5Mzk5LCAwLjY3MDA5MywgMS41NzYzLCAzLjA4NzE1LCA0LjU5OTc4LCA4LjEyNzIxLCAxMC4xNDAzIiwgXAotICAgICAgICAgICIwLjU2OTQ2NiwgMC42NzAwNDgsIDEuNTc1OTcsIDMuMDg3MTQsIDQuNTk5NzgsIDguMTI1NTcsIDEwLjE0MSIsIFwKLSAgICAgICAgICAiMC41NjkzMjgsIDAuNjcwMDcsIDEuNTc2LCAzLjA4NzEyLCA0LjU5OTc3LCA4LjEyNTE2LCAxMC4xNDEiLCBcCi0gICAgICAgICAgIjAuNTY5NDgyLCAwLjY2OTk2MywgMS41NzYwNiwgMy4wODc5MywgNC42MDAxMiwgOC4xMjYzOCwgMTAuMTQwMyIsIFwKLSAgICAgICAgICAiMC41NzA2ODIsIDAuNjcwNDEsIDEuNTc2MSwgMy4wOTIzNCwgNC42MDAxMywgOC4xMjY2OCwgMTAuMTQwNyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zNTIxMjgsIDAuNDExNjg2LCAwLjk0NzA0NSwgMS44MzgzOCwgMi43MzAxNSwgNC44MDczLCA1Ljk5NDI0IiwgXAotICAgICAgICAgICIwLjM2MjgyLCAwLjQyMjMxNywgMC45NTc4MDUsIDEuODQ5ODksIDIuNzQwNDQsIDQuODE3OTUsIDYuMDA1IiwgXAotICAgICAgICAgICIwLjM3NjMxNSwgMC40MzU4NzMsIDAuOTcxMTc1LCAxLjg2MzI0LCAyLjc1NDI5LCA0LjgzMTcyLCA2LjAxODY1IiwgXAotICAgICAgICAgICIwLjM4OTgzNCwgMC40NDk0MTQsIDAuOTg1Mjk0LCAxLjg3NjgzLCAyLjc2ODIxLCA0Ljg0NTE1LCA2LjAzMjI5IiwgXAotICAgICAgICAgICIwLjQwMzU3LCAwLjQ2MzE5OSwgMC45OTg5NzYsIDEuODkwMzQsIDIuNzgxNywgNC44NTg5NCwgNi4wNDU4OSIsIFwKLSAgICAgICAgICAiMC40MjUyNywgMC40ODQ5NzIsIDEuMDIwNDksIDEuOTEyMTcsIDIuODAzNDIsIDQuODgwNjksIDYuMDY3NzUiLCBcCi0gICAgICAgICAgIjAuNDQ0MzI0LCAwLjUwMjY0NywgMS4wMzk5MSwgMS45MzA5MSwgMi44MjI3MiwgNC44OTk4NywgNi4wODY3OSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC42NDM5NjgsIDAuNzU3MTcsIDEuNzc3MDUsIDMuNDc0NzcsIDUuMTczMTQsIDkuMTI4MjgsIDExLjM4NCIsIFwKLSAgICAgICAgICAiMC42NDM4NzQsIDAuNzU2OTExLCAxLjc3NjgsIDMuNDc1NDUsIDUuMTcyNzQsIDkuMTI2NDIsIDExLjM4MzkiLCBcCi0gICAgICAgICAgIjAuNjQzOTMsIDAuNzU3MjI4LCAxLjc3NjMsIDMuNDc2MTgsIDUuMTczODIsIDkuMTI3NzksIDExLjM4NDMiLCBcCi0gICAgICAgICAgIjAuNjQzODEsIDAuNzU3NjQ2LCAxLjc3NjcsIDMuNDc1MDcsIDUuMTczMTUsIDkuMTI4NDMsIDExLjM4NDYiLCBcCi0gICAgICAgICAgIjAuNjQzODg4LCAwLjc1NzI4LCAxLjc3NjcxLCAzLjQ3NDgzLCA1LjE3NjU2LCA5LjEyNzg4LCAxMS4zODQ1IiwgXAotICAgICAgICAgICIwLjY0MzU2NCwgMC43NTcyMTMsIDEuNzc2MDEsIDMuNDc1MTUsIDUuMTczMDIsIDkuMTI2NDYsIDExLjM4MzYiLCBcCi0gICAgICAgICAgIjAuNjQzNzMzLCAwLjc1NjcyNywgMS43NzY3MywgMy40NzM5NSwgNS4xNzMxLCA5LjEyNzg0LCAxMS4zODM4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIxIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yODU5ODEsIDAuMzM3NjUxLCAwLjgwMjM0NywgMS41NzcxNSwgMi4zNTE4OCwgNC4xNTkzMSwgNS4xOTE5NCIsIFwKLSAgICAgICAgICAiMC4yOTY2MzksIDAuMzQ4Mjc3LCAwLjgxMzA2NCwgMS41ODc4NSwgMi4zNjI1NiwgNC4xNjk5MSwgNS4yMDI2MyIsIFwKLSAgICAgICAgICAiMC4zMDkzNzUsIDAuMzYxMTcxLCAwLjgyNjA0OSwgMS42MDA2MywgMi4zNzU0MiwgNC4xODMwOCwgNS4yMTU1MSIsIFwKLSAgICAgICAgICAiMC4zMjI0NDYsIDAuMzc0MTI1LCAwLjgzODk3MiwgMS42MTM4MSwgMi4zODg1MSwgNC4xOTU5MiwgNS4yMjg2MyIsIFwKLSAgICAgICAgICAiMC4zMzU0OTEsIDAuMzg3MDYsIDAuODUyMTk4LCAxLjYyNjc1LCAyLjQwMTUyLCA0LjIwOTA4LCA1LjI0MTY4IiwgXAotICAgICAgICAgICIwLjM1NjIyNiwgMC40MDc5OTgsIDAuODcyOTc3LCAxLjY0NzgsIDIuNDIyNDYsIDQuMjMwMTIsIDUuMjYyNDgiLCBcCi0gICAgICAgICAgIjAuMzc0NTI2LCAwLjQyNjM0MywgMC44OTExODcsIDEuNjY2MTMsIDIuNDQwOTQsIDQuMjQ4NDMsIDUuMjgwODMiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuNTY5NDIzLCAwLjY2OTk5NywgMS41NzU5OSwgMy4wODczNywgNC42MDA2OSwgOC4xMjY1NCwgMTAuMTQxMSIsIFwKLSAgICAgICAgICAiMC41NjkzOCwgMC42Njk5OTYsIDEuNTc2MTcsIDMuMDg3ODEsIDQuNjAwNywgOC4xMjY1MywgMTAuMTQxMSIsIFwKLSAgICAgICAgICAiMC41Njk0MjQsIDAuNjY5OTk5LCAxLjU3NjM2LCAzLjA4Nzk0LCA0LjU5OTY2LCA4LjEyNjcxLCAxMC4xNDA2IiwgXAotICAgICAgICAgICIwLjU2OTQ1MSwgMC42Njk5ODksIDEuNTc2MDgsIDMuMDg3NTQsIDQuNjAwOTYsIDguMTI2MywgMTAuMTQxMSIsIFwKLSAgICAgICAgICAiMC41NjkzODMsIDAuNjY5OTgzLCAxLjU3NjA0LCAzLjA4NjkyLCA0LjU5ODY2LCA4LjEyNjY1LCAxMC4xNDA1IiwgXAotICAgICAgICAgICIwLjU2OTc0OCwgMC42Njk4OTksIDEuNTc2MTUsIDMuMDg3ODYsIDQuNTk5NSwgOC4xMjcxLCAxMC4xNDA2IiwgXAotICAgICAgICAgICIwLjU3MjIzMywgMC42NzA5ODUsIDEuNTc1OTEsIDMuMDkzMzMsIDQuNjAwNjgsIDguMTI2NSwgMTAuMTQwNSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zNDAxMzgsIDAuMzk5NTkyLCAwLjkzNDQzMiwgMS44MjU1OSwgMi43MTYzNiwgNC43OTQyNSwgNS45ODEzNCIsIFwKLSAgICAgICAgICAiMC4zNTE1NCwgMC40MTEwMTMsIDAuOTQ2MzU0LCAxLjgzNzU0LCAyLjcyODY0LCA0LjgwNTc4LCA1Ljk5Mjg3IiwgXAotICAgICAgICAgICIwLjM2NTAxMywgMC40MjQ0NjMsIDAuOTU5NTE0LCAxLjg1MTMyLCAyLjc0MjMyLCA0LjgxOTQ2LCA2LjAwNjI5IiwgXAotICAgICAgICAgICIwLjM3ODMwOCwgMC40Mzc5NDcsIDAuOTczNjU0LCAxLjg2NDQyLCAyLjc1NjI0LCA0LjgzMzA3LCA2LjAyMDE1IiwgXAotICAgICAgICAgICIwLjM5MjA5OSwgMC40NTE2NzMsIDAuOTg3MDkyLCAxLjg3ODQ0LCAyLjc2OTcsIDQuODQ2OSwgNi4wMzM1OSIsIFwKLSAgICAgICAgICAiMC40MTM4MzgsIDAuNDczNDI1LCAxLjAwOTAzLCAxLjkwMDE4LCAyLjc5MTIsIDQuODY4MzgsIDYuMDU1NjMiLCBcCi0gICAgICAgICAgIjAuNDMyNzU4LCAwLjQ5MTMzNywgMS4wMjgwOSwgMS45MTk2LCAyLjgxMDYsIDQuODg3NzIsIDYuMDc0NjIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuNjMwOTMsIDAuNzQzOTc2LCAxLjc2MjkzLCAzLjQ2MDUzLCA1LjE1NzQ3LCA5LjExMjg5LCAxMS4zNjkxIiwgXAotICAgICAgICAgICIwLjYzMDg5MywgMC43NDQxMTgsIDEuNzYyOTgsIDMuNDYwNzUsIDUuMTU4MDgsIDkuMTEzMzUsIDExLjM2ODUiLCBcCi0gICAgICAgICAgIjAuNjMwNzc5LCAwLjc0NDA4NywgMS43NjI0MSwgMy40NjE4LCA1LjE2MTgsIDkuMTEzMTgsIDExLjM2ODgiLCBcCi0gICAgICAgICAgIjAuNjMwOTExLCAwLjc0Mzk2MSwgMS43NjMwOSwgMy40NjQwNCwgNS4xNTkwMiwgOS4xMTM0LCAxMS4zNjkzIiwgXAotICAgICAgICAgICIwLjYzMTAzNiwgMC43NDQwODcsIDEuNzYyODgsIDMuNDY0MTcsIDUuMTYyMDYsIDkuMTEyNCwgMTEuMzY5IiwgXAotICAgICAgICAgICIwLjYzMDczNiwgMC43NDM5ODEsIDEuNzYyNzcsIDMuNDY0MDEsIDUuMTU4MDEsIDkuMTEyMSwgMTEuMzY5MSIsIFwKLSAgICAgICAgICAiMC42MzEwODksIDAuNzQzOTU1LCAxLjc2MzA0LCAzLjQ2MTIxLCA1LjE2MTI5LCA5LjExMzM4LCAxMS4zNjg3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTg5MiwgMC4wMDE4OTIsIDAuMDAxODkxLCAwLjAwMTg4OSwgMC4wMDE4ODYsIDAuMDAxODgyLCAwLjAwMTg3NyIsIFwKLSAgICAgICAgICAiMC4wMDE4ODgsIDAuMDAxODg4LCAwLjAwMTg4NywgMC4wMDE4ODUsIDAuMDAxODgyLCAwLjAwMTg3NywgMC4wMDE4NzMiLCBcCi0gICAgICAgICAgIjAuMDAxODg2LCAwLjAwMTg4NiwgMC4wMDE4ODUsIDAuMDAxODg0LCAwLjAwMTg4MSwgMC4wMDE4NzYsIDAuMDAxODcyIiwgXAotICAgICAgICAgICIwLjAwMTg4NSwgMC4wMDE4ODUsIDAuMDAxODg0LCAwLjAwMTg4MywgMC4wMDE4OCwgMC4wMDE4NzUsIDAuMDAxODcxIiwgXAotICAgICAgICAgICIwLjAwMTg4NCwgMC4wMDE4ODQsIDAuMDAxODg0LCAwLjAwMTg4MywgMC4wMDE4OCwgMC4wMDE4NzQsIDAuMDAxODcxIiwgXAotICAgICAgICAgICIwLjAwMTg4MiwgMC4wMDE4ODQsIDAuMDAxODg0LCAwLjAwMTg4MiwgMC4wMDE4OCwgMC4wMDE4NzUsIDAuMDAxODcxIiwgXAotICAgICAgICAgICIwLjAwMTg4MiwgMC4wMDE4ODMsIDAuMDAxODgzLCAwLjAwMTg4MiwgMC4wMDE4OCwgMC4wMDE4NzQsIDAuMDAxODcxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwNjM5LCAwLjAwMDYzOSwgMC4wMDA2MzksIDAuMDAwNjM5LCAwLjAwMDYzNywgMC4wMDA2MzYsIDAuMDAwNjMzIiwgXAotICAgICAgICAgICIwLjAwMDYzMiwgMC4wMDA2MzIsIDAuMDAwNjMxLCAwLjAwMDYzMiwgMC4wMDA2MywgMC4wMDA2MjgsIDAuMDAwNjI2IiwgXAotICAgICAgICAgICIwLjAwMDYzLCAwLjAwMDYzLCAwLjAwMDYzLCAwLjAwMDYzLCAwLjAwMDYyOSwgMC4wMDA2MjYsIDAuMDAwNjI1IiwgXAotICAgICAgICAgICIwLjAwMDYyOCwgMC4wMDA2MjgsIDAuMDAwNjI5LCAwLjAwMDYyOSwgMC4wMDA2MjgsIDAuMDAwNjI2LCAwLjAwMDYyNSIsIFwKLSAgICAgICAgICAiMC4wMDA2MjYsIDAuMDAwNjI3LCAwLjAwMDYyOSwgMC4wMDA2MjksIDAuMDAwNjI4LCAwLjAwMDYyNiwgMC4wMDA2MjQiLCBcCi0gICAgICAgICAgIjAuMDAwNjI1LCAwLjAwMDYyNiwgMC4wMDA2MjgsIDAuMDAwNjI4LCAwLjAwMDYyNywgMC4wMDA2MjUsIDAuMDAwNjI0IiwgXAotICAgICAgICAgICIwLjAwMDYyMywgMC4wMDA2MjQsIDAuMDAwNjI3LCAwLjAwMDYyOCwgMC4wMDA2MjcsIDAuMDAwNjI1LCAwLjAwMDYyNCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkExIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDE3NTEsIDAuMDAxNzUxLCAwLjAwMTc0OSwgMC4wMDE3NDgsIDAuMDAxNzQ1LCAwLjAwMTc0LCAwLjAwMTczNiIsIFwKLSAgICAgICAgICAiMC4wMDE3NDYsIDAuMDAxNzQ2LCAwLjAwMTc0NSwgMC4wMDE3NDQsIDAuMDAxNzQxLCAwLjAwMTczNywgMC4wMDE3MzIiLCBcCi0gICAgICAgICAgIjAuMDAxNzQ0LCAwLjAwMTc0NCwgMC4wMDE3NDQsIDAuMDAxNzQyLCAwLjAwMTc0LCAwLjAwMTczNCwgMC4wMDE3MzEiLCBcCi0gICAgICAgICAgIjAuMDAxNzQyLCAwLjAwMTc0MiwgMC4wMDE3NDIsIDAuMDAxNzQyLCAwLjAwMTczOSwgMC4wMDE3MzQsIDAuMDAxNzMiLCBcCi0gICAgICAgICAgIjAuMDAxNzQxLCAwLjAwMTc0MSwgMC4wMDE3NDIsIDAuMDAxNzQxLCAwLjAwMTczOSwgMC4wMDE3MzMsIDAuMDAxNzMiLCBcCi0gICAgICAgICAgIjAuMDAxNzM5LCAwLjAwMTc0LCAwLjAwMTc0MSwgMC4wMDE3NCwgMC4wMDE3MzgsIDAuMDAxNzM0LCAwLjAwMTcyOSIsIFwKLSAgICAgICAgICAiMC4wMDE3MzgsIDAuMDAxNzM5LCAwLjAwMTc0LCAwLjAwMTc0LCAwLjAwMTczOCwgMC4wMDE3MzMsIDAuMDAxNzI5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwNDQyLCAwLjAwMDQ0MiwgMC4wMDA0NDEsIDAuMDAwNDQyLCAwLjAwMDQzOCwgMC4wMDA0NCwgMC4wMDA0MzkiLCBcCi0gICAgICAgICAgIjAuMDAwNDQ2LCAwLjAwMDQ0NiwgMC4wMDA0NDcsIDAuMDAwNDQ4LCAwLjAwMDQ0NywgMC4wMDA0NDYsIDAuMDAwNDQ1IiwgXAotICAgICAgICAgICIwLjAwMDQ0NCwgMC4wMDA0NDUsIDAuMDAwNDQ3LCAwLjAwMDQ0OCwgMC4wMDA0NDgsIDAuMDAwNDQ3LCAwLjAwMDQ0NiIsIFwKLSAgICAgICAgICAiMC4wMDA0NDEsIDAuMDAwNDQzLCAwLjAwMDQ0NywgMC4wMDA0NDgsIDAuMDAwNDQ4LCAwLjAwMDQ0NywgMC4wMDA0NDciLCBcCi0gICAgICAgICAgIjAuMDAwNDM5LCAwLjAwMDQ0MSwgMC4wMDA0NDYsIDAuMDAwNDQ4LCAwLjAwMDQ0OCwgMC4wMDA0NDgsIDAuMDAwNDQ3IiwgXAotICAgICAgICAgICIwLjAwMDQzNSwgMC4wMDA0MzcsIDAuMDAwNDQ0LCAwLjAwMDQ0NywgMC4wMDA0NDcsIDAuMDAwNDQ3LCAwLjAwMDQ0NyIsIFwKLSAgICAgICAgICAiMC4wMDA0MzIsIDAuMDAwNDM1LCAwLjAwMDQ0MywgMC4wMDA0NDYsIDAuMDAwNDQ3LCAwLjAwMDQ0NywgMC4wMDA0NDYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxMTkxLCAwLjAwMTE5MSwgMC4wMDExOTIsIDAuMDAxMTkxLCAwLjAwMTE5MSwgMC4wMDExOTIsIDAuMDAxMTkxIiwgXAotICAgICAgICAgICIwLjAwMTE5NCwgMC4wMDExOTQsIDAuMDAxMTk1LCAwLjAwMTE5NSwgMC4wMDExOTUsIDAuMDAxMTk1LCAwLjAwMTE5NSIsIFwKLSAgICAgICAgICAiMC4wMDExOTMsIDAuMDAxMTk0LCAwLjAwMTE5NiwgMC4wMDExOTYsIDAuMDAxMTk2LCAwLjAwMTE5NiwgMC4wMDExOTciLCBcCi0gICAgICAgICAgIjAuMDAxMTkzLCAwLjAwMTE5NCwgMC4wMDExOTYsIDAuMDAxMTk2LCAwLjAwMTE5NiwgMC4wMDExOTcsIDAuMDAxMTk2IiwgXAotICAgICAgICAgICIwLjAwMTE5MSwgMC4wMDExOTIsIDAuMDAxMTk1LCAwLjAwMTE5NiwgMC4wMDExOTYsIDAuMDAxMTk3LCAwLjAwMTE5NyIsIFwKLSAgICAgICAgICAiMC4wMDExODksIDAuMDAxMTkxLCAwLjAwMTE5NSwgMC4wMDExOTYsIDAuMDAxMTk2LCAwLjAwMTE5NywgMC4wMDExOTciLCBcCi0gICAgICAgICAgIjAuMDAxMTg4LCAwLjAwMTE4OSwgMC4wMDExOTQsIDAuMDAxMTk2LCAwLjAwMTE5NiwgMC4wMDExOTcsIDAuMDAxMTk3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwNjQsIDAuMDAwNjQsIDAuMDAwNjM5LCAwLjAwMDYzOCwgMC4wMDA2MzYsIDAuMDAwNjM1LCAwLjAwMDYzMyIsIFwKLSAgICAgICAgICAiMC4wMDA2MzEsIDAuMDAwNjMyLCAwLjAwMDYzMiwgMC4wMDA2MzEsIDAuMDAwNjMsIDAuMDAwNjI2LCAwLjAwMDYyNyIsIFwKLSAgICAgICAgICAiMC4wMDA2MjksIDAuMDAwNjI5LCAwLjAwMDYzLCAwLjAwMDYzLCAwLjAwMDYyOSwgMC4wMDA2MjcsIDAuMDAwNjI2IiwgXAotICAgICAgICAgICIwLjAwMDYyNywgMC4wMDA2MjcsIDAuMDAwNjI5LCAwLjAwMDYyOSwgMC4wMDA2MjksIDAuMDAwNjI2LCAwLjAwMDYyNCIsIFwKLSAgICAgICAgICAiMC4wMDA2MjUsIDAuMDAwNjI2LCAwLjAwMDYyOCwgMC4wMDA2MjgsIDAuMDAwNjI4LCAwLjAwMDYyNiwgMC4wMDA2MjQiLCBcCi0gICAgICAgICAgIjAuMDAwNjIzLCAwLjAwMDYyNCwgMC4wMDA2MjcsIDAuMDAwNjI4LCAwLjAwMDYyNywgMC4wMDA2MjUsIDAuMDAwNjI0IiwgXAotICAgICAgICAgICIwLjAwMDYyMiwgMC4wMDA2MjIsIDAuMDAwNjI3LCAwLjAwMDYyNywgMC4wMDA2MjcsIDAuMDAwNjI1LCAwLjAwMDYyMyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIxIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDEwNDcsIDAuMDAxMDQ4LCAwLjAwMTA0OCwgMC4wMDEwNDgsIDAuMDAxMDQ4LCAwLjAwMTA0OCwgMC4wMDEwNDciLCBcCi0gICAgICAgICAgIjAuMDAxMDUsIDAuMDAxMDUsIDAuMDAxMDUxLCAwLjAwMTA1MSwgMC4wMDEwNTEsIDAuMDAxMDUyLCAwLjAwMTA1MSIsIFwKLSAgICAgICAgICAiMC4wMDEwNDksIDAuMDAxMDQ5LCAwLjAwMTA1MiwgMC4wMDEwNTIsIDAuMDAxMDUyLCAwLjAwMTA1MywgMC4wMDEwNTIiLCBcCi0gICAgICAgICAgIjAuMDAxMDQ3LCAwLjAwMTA0OCwgMC4wMDEwNTEsIDAuMDAxMDUyLCAwLjAwMTA1MywgMC4wMDEwNTMsIDAuMDAxMDUzIiwgXAotICAgICAgICAgICIwLjAwMTA0NSwgMC4wMDEwNDcsIDAuMDAxMDUxLCAwLjAwMTA1MiwgMC4wMDEwNTMsIDAuMDAxMDUzLCAwLjAwMTA1MyIsIFwKLSAgICAgICAgICAiMC4wMDEwNDMsIDAuMDAxMDQ0LCAwLjAwMTA1LCAwLjAwMTA1MiwgMC4wMDEwNTIsIDAuMDAxMDUzLCAwLjAwMTA1MyIsIFwKLSAgICAgICAgICAiMC4wMDEwNDEsIDAuMDAxMDQzLCAwLjAwMTA0OSwgMC4wMDEwNTEsIDAuMDAxMDUyLCAwLjAwMTA1MywgMC4wMDEwNTMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDA0MzEsIDAuMDAwNDMsIDAuMDAwNDMxLCAwLjAwMDQzLCAwLjAwMDQzLCAwLjAwMDQyOSwgMC4wMDA0MjgiLCBcCi0gICAgICAgICAgIjAuMDAwNDM0LCAwLjAwMDQzNCwgMC4wMDA0MzYsIDAuMDAwNDM2LCAwLjAwMDQzNiwgMC4wMDA0MzUsIDAuMDAwNDM0IiwgXAotICAgICAgICAgICIwLjAwMDQzMiwgMC4wMDA0MzMsIDAuMDAwNDM2LCAwLjAwMDQzNywgMC4wMDA0MzcsIDAuMDAwNDM2LCAwLjAwMDQzNiIsIFwKLSAgICAgICAgICAiMC4wMDA0MjksIDAuMDAwNDMxLCAwLjAwMDQzNSwgMC4wMDA0MzcsIDAuMDAwNDM3LCAwLjAwMDQzNiwgMC4wMDA0MzYiLCBcCi0gICAgICAgICAgIjAuMDAwNDI3LCAwLjAwMDQyOCwgMC4wMDA0MzQsIDAuMDAwNDM2LCAwLjAwMDQzNywgMC4wMDA0MzYsIDAuMDAwNDM2IiwgXAotICAgICAgICAgICIwLjAwMDQyMywgMC4wMDA0MjUsIDAuMDAwNDMzLCAwLjAwMDQzNSwgMC4wMDA0MzYsIDAuMDAwNDM2LCAwLjAwMDQzNiIsIFwKLSAgICAgICAgICAiMC4wMDA0MiwgMC4wMDA0MjIsIDAuMDAwNDMxLCAwLjAwMDQzNSwgMC4wMDA0MzYsIDAuMDAwNDM2LCAwLjAwMDQzNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogT0FJMkJCMVhMICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoT0FJMkJCMVhMKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMDYxMjk0NzsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQTBOKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2Nzk5Njk7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjc5OTY5OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDY3ODc4NjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxNjUsIDAuMDAwMTY1LCAwLjAwMDE2NSwgMC4wMDAxNjUsIDAuMDAwMTY1LCAwLjAwMDE2NSwgMC4wMDAxNjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxNywgMC4wMDAxNjcsIDAuMDAwMTY2LCAwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQTFOKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2MjU3NTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MjUyOTY7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjI1NzU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMDgsIDAuMDAwMDgsIDAuMDAwMDgsIDAuMDAwMDgsIDAuMDAwMDgsIDAuMDAwMDgsIDAuMDAwMDgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxODgsIDAuMDAwMTg4LCAwLjAwMDE4OCwgMC4wMDAxODgsIDAuMDAwMTg4LCAwLjAwMDE4OCwgMC4wMDAxODgiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2NjA5MTg7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjYwOTE4OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDY1OTI3OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDE2NSwgMC4wMDAxNjUsIDAuMDAwMTY1LCAwLjAwMDE2NSwgMC4wMDAxNjUsIDAuMDAwMTY1LCAwLjAwMDE2NSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDE3LCAwLjAwMDE2NywgMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY2Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMDM3MDI5OwotICAgIGZ1bmN0aW9uIDogIighKCghKEEwTiBBMU4pKSBCMCkpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBME4iOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIyMzAzOCwgMC4yNDgyNzksIDAuNDc1NTYxLCAwLjg1NDcyNCwgMS4yMzMxNiwgMi4xMTY3MiwgMi42MjIzOSIsIFwKLSAgICAgICAgICAiMC4yMzQzOTYsIDAuMjU5NjM1LCAwLjQ4Njk2NSwgMC44NjU4NTcsIDEuMjQ0NzYsIDIuMTI4OCwgMi42MzI5OSIsIFwKLSAgICAgICAgICAiMC4yNDgxMzQsIDAuMjczNDIsIDAuNTAwNjU4LCAwLjg3OTU1OCwgMS4yNTgyOSwgMi4xNDE4NiwgMi42NDcwNCIsIFwKLSAgICAgICAgICAiMC4yNjE5MDQsIDAuMjg3MTQ4LCAwLjUxNDQ3LCAwLjg5MzY1NiwgMS4yNzIyMSwgMi4xNTcyOCwgMi42NjA0NyIsIFwKLSAgICAgICAgICAiMC4yNzU0OTcsIDAuMzAwNzQ3LCAwLjUyODA3OCwgMC45MDcyNzksIDEuMjg1ODEsIDIuMTcwNzgsIDIuNjc0MzQiLCBcCi0gICAgICAgICAgIjAuMjk2Nzk3LCAwLjMyMjA2NiwgMC41NDkzMywgMC45Mjg0NDEsIDEuMzA2OSwgMi4xOTA2MiwgMi42OTYyNiIsIFwKLSAgICAgICAgICAiMC4zMTUyNTMsIDAuMzQwNTA5LCAwLjU2Nzc4OSwgMC45NDcwMzMsIDEuMzI1MjcsIDIuMjA5ODcsIDIuNzEzOTciKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjgxMzUsIDAuMzMxMjg0LCAwLjc5MjIyNSwgMS41NTc4NywgMi4zMjc0NCwgNC4xMjcyNCwgNS4xNDE1NSIsIFwKLSAgICAgICAgICAiMC4yODEzMjQsIDAuMzMxMjczLCAwLjc5MDAxNiwgMS41NTk1OCwgMi4zMjU4NSwgNC4xMjE2MiwgNS4xNDI4NCIsIFwKLSAgICAgICAgICAiMC4yODA4NDMsIDAuMzMxMjA2LCAwLjc5MjEwMiwgMS41NTgzNiwgMi4zMjQ4OCwgNC4xMTY3NCwgNS4xNDMyIiwgXAotICAgICAgICAgICIwLjI4MTE4NCwgMC4zMzEzNDQsIDAuNzkwMDQ5LCAxLjU1ODU3LCAyLjMyNTkzLCA0LjExODg2LCA1LjE0Njk0IiwgXAotICAgICAgICAgICIwLjI4MTIxMywgMC4zMzEzNDMsIDAuNzkwMDUxLCAxLjU1ODM4LCAyLjMyNTk4LCA0LjExOTU5LCA1LjE0Mzg2IiwgXAotICAgICAgICAgICIwLjI4MTI2LCAwLjMzMTE2NCwgMC43OTIwOTcsIDEuNTU3OTQsIDIuMzMxMjksIDQuMTE2NjMsIDUuMTQzNDkiLCBcCi0gICAgICAgICAgIjAuMjgxNDEzLCAwLjMzMTk3NCwgMC43OTA2MjQsIDEuNTU3NTgsIDIuMzMxODgsIDQuMTIxOTksIDUuMTQwMzgiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzYyMDcsIDAuNDIxMDU3LCAwLjk1MTgyNiwgMS44MzYyNywgMi43MjA2NSwgNC43ODQwOCwgNS45NjMwNyIsIFwKLSAgICAgICAgICAiMC4zNzM1MTcsIDAuNDMyNTE3LCAwLjk2MzMwNywgMS44NDc3NCwgMi43MzIxNywgNC43OTU0OSwgNS45NzQ0NCIsIFwKLSAgICAgICAgICAiMC4zODg0MDksIDAuNDQ3NDI5LCAwLjk3ODIzNiwgMS44NjI3MSwgMi43NDcxMSwgNC44MTA0NiwgNS45ODk1IiwgXAotICAgICAgICAgICIwLjQwMjgxMywgMC40NjE4NzksIDAuOTkyNjcyLCAxLjg3NzI5LCAyLjc2MTYsIDQuODI0OTMsIDYuMDAzOTUiLCBcCi0gICAgICAgICAgIjAuNDE2NTU3LCAwLjQ3NTU5MSwgMS4wMDY1MiwgMS44OTEwNSwgMi43NzU0LCA0LjgzODczLCA2LjAxNzc4IiwgXAotICAgICAgICAgICIwLjQzNjM0NSwgMC40OTU0MzYsIDEuMDI2MywgMS45MTEsIDIuNzk1MjcsIDQuODU4NjEsIDYuMDM3NjQiLCBcCi0gICAgICAgICAgIjAuNDUyMTEzLCAwLjUxMTE0LCAxLjA0MjEsIDEuOTI2NjEsIDIuODExMDcsIDQuODc0NSwgNi4wNTM0OSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC42MDkwNjIsIDAuNzIyNzQsIDEuNzM1MiwgMy40MjIzLCA1LjExMDQyLCA5LjAyMjcxLCAxMS4yNjE3IiwgXAotICAgICAgICAgICIwLjYwOTgwNywgMC43MjI2NjUsIDEuNzM1MjksIDMuNDMzMDksIDUuMTA5MDIsIDkuMDIyNjQsIDExLjI2MjYiLCBcCi0gICAgICAgICAgIjAuNjA5NTQ4LCAwLjcyMzAxMywgMS43NDAxNSwgMy40MjM0MSwgNS4xMDg4MSwgOS4wMjI2MiwgMTEuMjYyIiwgXAotICAgICAgICAgICIwLjYxMDExMSwgMC43MjM3OTYsIDEuNzM3MTQsIDMuNDI1LCA1LjEwOTM5LCA5LjAyMjQyLCAxMS4yNjI1IiwgXAotICAgICAgICAgICIwLjYwOTg3LCAwLjcyNDE4OSwgMS43Mzk5LCAzLjQzMzgyLCA1LjEwOTMxLCA5LjAyMjQxLCAxMS4yNjIzIiwgXAotICAgICAgICAgICIwLjYwOTk4OSwgMC43MjM3NDMsIDEuNzM4MDcsIDMuNDMzMiwgNS4xMDkzNiwgOS4wMjI0MiwgMTEuMjYxNCIsIFwKLSAgICAgICAgICAiMC42MTEyMzEsIDAuNzI0MDM4LCAxLjczNDkxLCAzLjQyODc1LCA1LjEwODc0LCA5LjAyMjQ5LCAxMS4yNjEzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkExTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjE4MzI1LCAwLjI0MzU4NSwgMC40NzA5MDYsIDAuODQ5NjgxLCAxLjIyODg2LCAyLjExMjE1LCAyLjYxNjgzIiwgXAotICAgICAgICAgICIwLjIyODM5OSwgMC4yNTM2NCwgMC40ODA5MjQsIDAuODU5NjcxLCAxLjIzODYsIDIuMTIyMDEsIDIuNjI3MjgiLCBcCi0gICAgICAgICAgIjAuMjQxOTUxLCAwLjI2NzIxNCwgMC40OTQ0ODYsIDAuODczNTg3LCAxLjI1MjU1LCAyLjEzNTcxLCAyLjY0MTY1IiwgXAotICAgICAgICAgICIwLjI1NTc0OCwgMC4yODEwMzksIDAuNTA4MjkyLCAwLjg4NzI2NiwgMS4yNjU5NiwgMi4xNTA1NSwgMi42NTQ1OSIsIFwKLSAgICAgICAgICAiMC4yNjk2MjgsIDAuMjk0OSwgMC41MjIxOTgsIDAuOTAxMjUyLCAxLjI3OTkyLCAyLjE2NDc5LCAyLjY2OTAyIiwgXAotICAgICAgICAgICIwLjI5MTU1MiwgMC4zMTY4MTQsIDAuNTQ0MTA1LCAwLjkyMzMyMiwgMS4zMDE4MSwgMi4xODU3LCAyLjY5MDEyIiwgXAotICAgICAgICAgICIwLjMxMDUwNCwgMC4zMzU3NzksIDAuNTYzMDgxLCAwLjk0MjIwOSwgMS4zMjA2OCwgMi4yMDU1OSwgMi43MDk4OCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yODEyNDIsIDAuMzMxMjQ3LCAwLjc5MDM3OCwgMS41NTkxNiwgMi4zMjU4NSwgNC4xMjY3NCwgNS4xNDczNCIsIFwKLSAgICAgICAgICAiMC4yODEyOTksIDAuMzMxMjgsIDAuNzkwNzU0LCAxLjU2MDkzLCAyLjMyNjE5LCA0LjEyNzk5LCA1LjEzODciLCBcCi0gICAgICAgICAgIjAuMjgxMjgxLCAwLjMzMTQ3MywgMC43OTIxMjcsIDEuNTU3OTQsIDIuMzI1NjUsIDQuMTE2NzYsIDUuMTQxMzIiLCBcCi0gICAgICAgICAgIjAuMjgwNjY5LCAwLjMzMTk4MywgMC43OTIwNzYsIDEuNTU5NiwgMi4zMjQ3NCwgNC4xMTcyNiwgNS4xNDY0MiIsIFwKLSAgICAgICAgICAiMC4yODExOTIsIDAuMzMxNDA5LCAwLjc5MjE2NiwgMS41NTc5MywgMi4zMjYxMywgNC4xMTk3OCwgNS4xNDM0OCIsIFwKLSAgICAgICAgICAiMC4yODEyODEsIDAuMzMxODg5LCAwLjc5MjA2NiwgMS41NTc4MywgMi4zMjYzMSwgNC4xMjU3NSwgNS4xNDYyNSIsIFwKLSAgICAgICAgICAiMC4yODEwMDIsIDAuMzMxNDI0LCAwLjc5MjExOSwgMS41NTc5NCwgMi4zMzExMywgNC4xMTgxMiwgNS4xNDM5NyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zNTkxOTIsIDAuNDE4MiwgMC45NDk0NjksIDEuODMzODcsIDIuNzE5MzEsIDQuNzgxMzksIDUuOTYwMDIiLCBcCi0gICAgICAgICAgIjAuMzcwODk5LCAwLjQyOTg2NSwgMC45NjA3NzcsIDEuODQ1NTYsIDIuNzMwNzUsIDQuNzkzMTIsIDUuOTcxNjUiLCBcCi0gICAgICAgICAgIjAuMzg1NTQ1LCAwLjQ0NDgwMSwgMC45NzU1MzUsIDEuODYwNjcsIDIuNzQ1MjcsIDQuODA3NzQsIDUuOTg2NDQiLCBcCi0gICAgICAgICAgIjAuMzk5OTM3LCAwLjQ1OTA4MSwgMC45ODk4MTQsIDEuODc1MjcsIDIuNzU5NTUsIDQuODIyMDksIDYuMDAwODQiLCBcCi0gICAgICAgICAgIjAuNDEyOTg1LCAwLjQ3MjA3NSwgMS4wMDMzOSwgMS44ODg1MywgMi43NzMzNCwgNC44MzU0MSwgNi4wMTQwNCIsIFwKLSAgICAgICAgICAiMC40MzIwMTksIDAuNDkxMDUzLCAxLjAyMjA4LCAxLjkwNzUyLCAyLjc5MTg0LCA0Ljg1NDQsIDYuMDMzMTIiLCBcCi0gICAgICAgICAgIjAuNDQ2NjM5LCAwLjUwNTc3MiwgMS4wMzY4NywgMS45MjI1NCwgMi44MDY2LCA0Ljg2OTIsIDYuMDQ3OTIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuNjExMDQsIDAuNzIzOTQ4LCAxLjczNzE0LCAzLjQyMzEsIDUuMTA2MDgsIDkuMDIyMTYsIDExLjI2MjMiLCBcCi0gICAgICAgICAgIjAuNjEwODkzLCAwLjcyMzkzNSwgMS43NDAxNSwgMy40MzIwNywgNS4xMDc3NSwgOS4wMjI2MiwgMTEuMjYyIiwgXAotICAgICAgICAgICIwLjYxMDkxLCAwLjcyMDk2LCAxLjc0MDMsIDMuNDMyNDcsIDUuMTA5OTksIDkuMDIzNjcsIDExLjI2MjMiLCBcCi0gICAgICAgICAgIjAuNjExNDIxLCAwLjcyMDg4MywgMS43NDAxLCAzLjQxOTE5LCA1LjEwOTg5LCA5LjAyMzQ3LCAxMS4yNjIzIiwgXAotICAgICAgICAgICIwLjYxMTA0MiwgMC43MjQ0OTMsIDEuNzM2ODQsIDMuNDE4NjgsIDUuMTA3MTMsIDkuMDIyMDgsIDExLjI2MjIiLCBcCi0gICAgICAgICAgIjAuNjExMzc2LCAwLjcyMzcsIDEuNzQwOTEsIDMuNDE5MzksIDUuMTA5OTUsIDkuMDIzNTMsIDExLjI2MjMiLCBcCi0gICAgICAgICAgIjAuNjExMDgzLCAwLjcyNDI4NCwgMS43NDAzMSwgMy40MjA2NywgNS4xMDk1MiwgOS4wMjM1LCAxMS4yNjIzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNDMyMDksIDAuMTY4NDkzLCAwLjM5NTc4OSwgMC43NzQ1NzEsIDEuMTUzNzQsIDIuMDM3NDQsIDIuNTQyNzUiLCBcCi0gICAgICAgICAgIjAuMTU0NzI1LCAwLjE3OTk3NywgMC40MDczMjgsIDAuNzg2Mjk1LCAxLjE2NTUsIDIuMDQ5NywgMi41NTQwNyIsIFwKLSAgICAgICAgICAiMC4xNjkxMDUsIDAuMTk0MzkzLCAwLjQyMTA5NiwgMC43OTc4OTYsIDEuMTc2OTIsIDIuMDYwOTIsIDIuNTY1MjMiLCBcCi0gICAgICAgICAgIjAuMTgzNzQzLCAwLjIwODkxMywgMC40MzYxNzksIDAuODExMTE5LCAxLjE4OTc5LCAyLjA3NDEzLCAyLjU3OTA5IiwgXAotICAgICAgICAgICIwLjE5ODQ2OCwgMC4yMjM2NTEsIDAuNDUwNjEyLCAwLjgyNDg2LCAxLjIwMzg5LCAyLjA4ODExLCAyLjU5MjQ2IiwgXAotICAgICAgICAgICIwLjIyMjQ3OCwgMC4yNDczMDMsIDAuNDczOTA1LCAwLjg1MjY4MSwgMS4yMjY1NywgMi4xMTA3OSwgMi42MTU3NSIsIFwKLSAgICAgICAgICAiMC4yNDIxNTUsIDAuMjY4NDA1LCAwLjQ5MzA3NiwgMC44NzMwNTMsIDEuMjQ2ODcsIDIuMTMxNjgsIDIuNjM1NDYiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjc5MiwgMC4zMzAzMjUsIDAuNzkwNTIyLCAxLjU1ODUzLCAyLjMyNTU4LCA0LjExNjU0LCA1LjE0MDYzIiwgXAotICAgICAgICAgICIwLjI3OTIyNCwgMC4zMzA0MjYsIDAuNzkwODksIDEuNTU4MSwgMi4zMjU3LCA0LjExNjQ5LCA1LjE0MDI2IiwgXAotICAgICAgICAgICIwLjI3OTE2NCwgMC4zMzA1MjEsIDAuNzkwNjg2LCAxLjU1NzY5LCAyLjMyNTU5LCA0LjExNjQyLCA1LjE0MDEiLCBcCi0gICAgICAgICAgIjAuMjc5MzM5LCAwLjMzMDM3NiwgMC43OTA3NSwgMS41NTg2MiwgMi4zMjQ5MywgNC4xMTY0NCwgNS4xNDAyNiIsIFwKLSAgICAgICAgICAiMC4yODEwMDEsIDAuMzMxMTA5LCAwLjc5MDcyMSwgMS41NTgyNywgMi4zMjU5MSwgNC4xMTY1LCA1LjE0MDYyIiwgXAotICAgICAgICAgICIwLjI4NjI2OCwgMC4zMzUzMzgsIDAuNzkwNzEsIDEuNTU4MTgsIDIuMzI2MSwgNC4xMTY0NCwgNS4xNDIzMyIsIFwKLSAgICAgICAgICAiMC4yOTM3NiwgMC4zNDA1ODEsIDAuNzkxMTk5LCAxLjU1ODE5LCAyLjMyNTMxLCA0LjExNjU0LCA1LjEzOTU4Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMzMTUyMywgMC4zOTA1MzksIDAuOTIxNjcxLCAxLjgwNjQ1LCAyLjY5MTQ2LCA0Ljc1MzYxLCA1LjkzMjExIiwgXAotICAgICAgICAgICIwLjM0MzI4NywgMC40MDIyNzQsIDAuOTMzMTY4LCAxLjgxODM5LCAyLjcwMjk1LCA0Ljc2NTM1LCA1Ljk0NDE1IiwgXAotICAgICAgICAgICIwLjM1NzA5NiwgMC40MTYyNDUsIDAuOTQ3NDY1LCAxLjgzMjkyLCAyLjcxNjg3LCA0Ljc3OTM3LCA1Ljk1ODExIiwgXAotICAgICAgICAgICIwLjM3MDg4MiwgMC40Mjk4NzIsIDAuOTYxMjcsIDEuODQ2MDUsIDIuNzMwNzUsIDQuNzkzMjMsIDUuOTcxOTQiLCBcCi0gICAgICAgICAgIjAuMzg0NTE3LCAwLjQ0Mzc3OSwgMC45NzUxNzEsIDEuODYsIDIuNzQ0NzEsIDQuODA3MTgsIDUuOTg1NjgiLCBcCi0gICAgICAgICAgIjAuNDA2NDk2LCAwLjQ2NTU3OSwgMC45OTY4MDYsIDEuODgxNjQsIDIuNzY2ODgsIDQuODI5MTcsIDYuMDA3OTYiLCBcCi0gICAgICAgICAgIjAuNDI1NTM3LCAwLjQ4NDkxNCwgMS4wMTYxMiwgMS45MDA3MiwgMi43ODYxLCA0Ljg0ODY4LCA2LjAyNzE2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjYxMTAzNSwgMC43MjM4NjYsIDEuNzM1NDcsIDMuNDMyMjksIDUuMTA5NDMsIDkuMDIyNzIsIDExLjI2MjIiLCBcCi0gICAgICAgICAgIjAuNjExMDA1LCAwLjcyMzk3LCAxLjczOTk5LCAzLjQzMTc4LCA1LjEwODExLCA5LjAyMzI2LCAxMS4yNjI0IiwgXAotICAgICAgICAgICIwLjYxMDk5MSwgMC43MjI0MTIsIDEuNzM3NTEsIDMuNDMyNDgsIDUuMTExMjEsIDkuMDIzNTQsIDExLjI2MjMiLCBcCi0gICAgICAgICAgIjAuNjEwMDIsIDAuNzI0MjIxLCAxLjczNzQ5LCAzLjQzMjQsIDUuMTA5NzYsIDkuMDIzNjQsIDExLjI2MjMiLCBcCi0gICAgICAgICAgIjAuNjEwODU5LCAwLjcyMDk4OSwgMS43MzQxLCAzLjQyNzUzLCA1LjExMTY5LCA5LjAyMzIsIDExLjI2MjIiLCBcCi0gICAgICAgICAgIjAuNjExMzcyLCAwLjcyMzk3MywgMS43NDAyNCwgMy40MzM5NCwgNS4xMDc5NCwgOS4wMjI3OCwgMTEuMjYxNSIsIFwKLSAgICAgICAgICAiMC42MTEwNjYsIDAuNzIxMTkyLCAxLjc0MTUyLCAzLjQzMzcsIDUuMTA4OTIsIDkuMDIyMDksIDExLjI2MjMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBME4iOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTA0NCwgMC4wMDEwNDUsIDAuMDAxMDQ2LCAwLjAwMTA0NywgMC4wMDEwNDcsIDAuMDAxMDQ4LCAwLjAwMTA0NyIsIFwKLSAgICAgICAgICAiMC4wMDEwMzEsIDAuMDAxMDMxLCAwLjAwMTAzMiwgMC4wMDEwMzMsIDAuMDAxMDMzLCAwLjAwMTAzMywgMC4wMDEwMzMiLCBcCi0gICAgICAgICAgIjAuMDAxMDIxLCAwLjAwMTAyMiwgMC4wMDEwMjMsIDAuMDAxMDIzLCAwLjAwMTAyNCwgMC4wMDEwMjQsIDAuMDAxMDI0IiwgXAotICAgICAgICAgICIwLjAwMTAxNSwgMC4wMDEwMTYsIDAuMDAxMDE4LCAwLjAwMTAxOCwgMC4wMDEwMTgsIDAuMDAxMDE5LCAwLjAwMTAxOSIsIFwKLSAgICAgICAgICAiMC4wMDEwMTIsIDAuMDAxMDEzLCAwLjAwMTAxNCwgMC4wMDEwMTUsIDAuMDAxMDE1LCAwLjAwMTAxNSwgMC4wMDEwMTUiLCBcCi0gICAgICAgICAgIjAuMDAxMDA4LCAwLjAwMTAwOSwgMC4wMDEwMTEsIDAuMDAxMDEyLCAwLjAwMTAxMiwgMC4wMDEwMTIsIDAuMDAxMDEzIiwgXAotICAgICAgICAgICIwLjAwMTAwNiwgMC4wMDEwMDcsIDAuMDAxMDEsIDAuMDAxMDExLCAwLjAwMTAxMSwgMC4wMDEwMTEsIDAuMDAxMDExIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxODg1LCAwLjAwMTg4NiwgMC4wMDE4ODcsIDAuMDAxODg4LCAwLjAwMTg4OCwgMC4wMDE4ODgsIDAuMDAxODg2IiwgXAotICAgICAgICAgICIwLjAwMTg3NiwgMC4wMDE4NzYsIDAuMDAxODc4LCAwLjAwMTg3OSwgMC4wMDE4NzksIDAuMDAxODc5LCAwLjAwMTg3OSIsIFwKLSAgICAgICAgICAiMC4wMDE4NjksIDAuMDAxODcsIDAuMDAxODcyLCAwLjAwMTg3MywgMC4wMDE4NzMsIDAuMDAxODczLCAwLjAwMTg3NSIsIFwKLSAgICAgICAgICAiMC4wMDE4NjQsIDAuMDAxODY1LCAwLjAwMTg2OSwgMC4wMDE4NywgMC4wMDE4NywgMC4wMDE4NywgMC4wMDE4NzEiLCBcCi0gICAgICAgICAgIjAuMDAxODYxLCAwLjAwMTg2MiwgMC4wMDE4NjYsIDAuMDAxODY3LCAwLjAwMTg2OCwgMC4wMDE4NjgsIDAuMDAxODY4IiwgXAotICAgICAgICAgICIwLjAwMTg1NywgMC4wMDE4NTgsIDAuMDAxODYzLCAwLjAwMTg2NSwgMC4wMDE4NjUsIDAuMDAxODY2LCAwLjAwMTg2NiIsIFwKLSAgICAgICAgICAiMC4wMDE4NTUsIDAuMDAxODU3LCAwLjAwMTg2MiwgMC4wMDE4NjQsIDAuMDAxODY1LCAwLjAwMTg2NSwgMC4wMDE4NjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMU4iOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTA0NCwgMC4wMDEwNDUsIDAuMDAxMDQ2LCAwLjAwMTA0NywgMC4wMDEwNDcsIDAuMDAxMDQ3LCAwLjAwMTA0OCIsIFwKLSAgICAgICAgICAiMC4wMDEwMjcsIDAuMDAxMDI4LCAwLjAwMTAyOSwgMC4wMDEwMywgMC4wMDEwMywgMC4wMDEwMywgMC4wMDEwMyIsIFwKLSAgICAgICAgICAiMC4wMDEwMTcsIDAuMDAxMDE3LCAwLjAwMTAxOSwgMC4wMDEwMTksIDAuMDAxMDIsIDAuMDAxMDIsIDAuMDAxMDIiLCBcCi0gICAgICAgICAgIjAuMDAxMDExLCAwLjAwMTAxMiwgMC4wMDEwMTQsIDAuMDAxMDE1LCAwLjAwMTAxNSwgMC4wMDEwMTUsIDAuMDAxMDE1IiwgXAotICAgICAgICAgICIwLjAwMTAwOCwgMC4wMDEwMDksIDAuMDAxMDExLCAwLjAwMTAxMiwgMC4wMDEwMTMsIDAuMDAxMDEzLCAwLjAwMTAxMyIsIFwKLSAgICAgICAgICAiMC4wMDEwMDYsIDAuMDAxMDA3LCAwLjAwMTAxLCAwLjAwMTAxMiwgMC4wMDEwMTIsIDAuMDAxMDEyLCAwLjAwMTAxMiIsIFwKLSAgICAgICAgICAiMC4wMDEwMDYsIDAuMDAxMDA3LCAwLjAwMTAxLCAwLjAwMTAxMiwgMC4wMDEwMTIsIDAuMDAxMDEzLCAwLjAwMTAxMyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTcwNywgMC4wMDE3MDcsIDAuMDAxNzA5LCAwLjAwMTcwOSwgMC4wMDE3MSwgMC4wMDE3MDksIDAuMDAxNzA5IiwgXAotICAgICAgICAgICIwLjAwMTY5OCwgMC4wMDE2OTgsIDAuMDAxNywgMC4wMDE3LCAwLjAwMTcsIDAuMDAxNzAxLCAwLjAwMTcwMSIsIFwKLSAgICAgICAgICAiMC4wMDE2ODgsIDAuMDAxNjg5LCAwLjAwMTY5MSwgMC4wMDE2OTIsIDAuMDAxNjkyLCAwLjAwMTY5MiwgMC4wMDE2OTIiLCBcCi0gICAgICAgICAgIjAuMDAxNjgyLCAwLjAwMTY4MywgMC4wMDE2ODYsIDAuMDAxNjg3LCAwLjAwMTY4OCwgMC4wMDE2ODgsIDAuMDAxNjg4IiwgXAotICAgICAgICAgICIwLjAwMTY3OCwgMC4wMDE2NzksIDAuMDAxNjgyLCAwLjAwMTY4NCwgMC4wMDE2ODQsIDAuMDAxNjg1LCAwLjAwMTY4NSIsIFwKLSAgICAgICAgICAiMC4wMDE2NzMsIDAuMDAxNjc0LCAwLjAwMTY3OSwgMC4wMDE2ODEsIDAuMDAxNjgxLCAwLjAwMTY4MiwgMC4wMDE2ODIiLCBcCi0gICAgICAgICAgIjAuMDAxNjcxLCAwLjAwMTY3MiwgMC4wMDE2NzgsIDAuMDAxNjgsIDAuMDAxNjgxLCAwLjAwMTY4MSwgMC4wMDE2ODIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwODQ4LCAwLjAwMDg0OCwgMC4wMDA4NDgsIDAuMDAwODQ4LCAwLjAwMDg0OCwgMC4wMDA4NDgsIDAuMDAwODQ3IiwgXAotICAgICAgICAgICIwLjAwMDg0NSwgMC4wMDA4NDUsIDAuMDAwODQ1LCAwLjAwMDg0NiwgMC4wMDA4NDUsIDAuMDAwODQ1LCAwLjAwMDg0NSIsIFwKLSAgICAgICAgICAiMC4wMDA4NDMsIDAuMDAwODQzLCAwLjAwMDg0NCwgMC4wMDA4NDQsIDAuMDAwODQ0LCAwLjAwMDg0NCwgMC4wMDA4NDQiLCBcCi0gICAgICAgICAgIjAuMDAwODQyLCAwLjAwMDg0MSwgMC4wMDA4NDQsIDAuMDAwODQ0LCAwLjAwMDg0NCwgMC4wMDA4NDQsIDAuMDAwODQ0IiwgXAotICAgICAgICAgICIwLjAwMDg0MSwgMC4wMDA4NDEsIDAuMDAwODQzLCAwLjAwMDg0NCwgMC4wMDA4NDQsIDAuMDAwODQ0LCAwLjAwMDg0NCIsIFwKLSAgICAgICAgICAiMC4wMDA4MzksIDAuMDAwODQsIDAuMDAwODQzLCAwLjAwMDg0NCwgMC4wMDA4NDMsIDAuMDAwODQzLCAwLjAwMDg0MyIsIFwKLSAgICAgICAgICAiMC4wMDA4MzgsIDAuMDAwODM5LCAwLjAwMDg0LCAwLjAwMDg0MywgMC4wMDA4NDQsIDAuMDAwODQ0LCAwLjAwMDg0MyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDM3MSwgMC4wMDAzNzEsIDAuMDAwMzcyLCAwLjAwMDM3MiwgMC4wMDAzNzIsIDAuMDAwMzcyLCAwLjAwMDM3MiIsIFwKLSAgICAgICAgICAiMC4wMDAzNjgsIDAuMDAwMzY5LCAwLjAwMDM3MSwgMC4wMDAzNzEsIDAuMDAwMzcxLCAwLjAwMDM3MiwgMC4wMDAzNzIiLCBcCi0gICAgICAgICAgIjAuMDAwMzY1LCAwLjAwMDM2NiwgMC4wMDAzNjksIDAuMDAwMzcxLCAwLjAwMDM3MSwgMC4wMDAzNzEsIDAuMDAwMzcxIiwgXAotICAgICAgICAgICIwLjAwMDM2MywgMC4wMDAzNjQsIDAuMDAwMzY4LCAwLjAwMDM3LCAwLjAwMDM3MSwgMC4wMDAzNzEsIDAuMDAwMzcxIiwgXAotICAgICAgICAgICIwLjAwMDM2LCAwLjAwMDM2MiwgMC4wMDAzNjcsIDAuMDAwMzY5LCAwLjAwMDM3LCAwLjAwMDM3MSwgMC4wMDAzNzEiLCBcCi0gICAgICAgICAgIjAuMDAwMzU3LCAwLjAwMDM1OCwgMC4wMDAzNjUsIDAuMDAwMzY4LCAwLjAwMDM3LCAwLjAwMDM3LCAwLjAwMDM3MSIsIFwKLSAgICAgICAgICAiMC4wMDAzNTQsIDAuMDAwMzU2LCAwLjAwMDM2NCwgMC4wMDAzNjgsIDAuMDAwMzY5LCAwLjAwMDM3LCAwLjAwMDM3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBPQUkyQkIyWDIgKgotICogLS0tLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChPQUkyQkIyWDIpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4yMzExNzI7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEwTikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNTU5OTczOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDU1OTY0NTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA1NTk5NzM7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNjk3LCAwLjAwMDY4NCwgMC4wMDA2NzQsIDAuMDAwNjcsIDAuMDAwNjY2LCAwLjAwMDY2NCwgMC4wMDA2NjMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDE3ODYsIDAuMDAxNzc3LCAwLjAwMTc3MiwgMC4wMDE3NjgsIDAuMDAxNzY2LCAwLjAwMTc2NCwgMC4wMDE3NjMiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEExTikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNTg3ODQ7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNTg3NTk4OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDU4Nzg0OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDY5NCwgMC4wMDA2ODEsIDAuMDAwNjcxLCAwLjAwMDY2NywgMC4wMDA2NjMsIDAuMDAwNjYsIDAuMDAwNjU5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxOTg0LCAwLjAwMTk3NSwgMC4wMDE5NywgMC4wMDE5NjYsIDAuMDAxOTY0LCAwLjAwMTk2MiwgMC4wMDE5NjEiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE2ODk1ODsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE2NzY5NDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE2ODk1ODsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA1NDMsIDAuMDAwNTc1LCAwLjAwMDU4MiwgMC4wMDA1ODUsIDAuMDAwNTg3LCAwLjAwMDU4OSwgMC4wMDA1OSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDYyNywgMC4wMDA2MjcsIDAuMDAwNjI3LCAwLjAwMDYyOCwgMC4wMDA2MjgsIDAuMDAwNjI4LCAwLjAwMDYyOCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQjEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTU1MzU5OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTU1MzA4OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTU1MzU5OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDE4MSwgMC4wMDAxODEsIDAuMDAwMTgxLCAwLjAwMDE4MSwgMC4wMDAxODEsIDAuMDAwMTgxLCAwLjAwMDE4MSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDY2OCwgMC4wMDA2NjgsIDAuMDAwNjY4LCAwLjAwMDY2OCwgMC4wMDA2NjgsIDAuMDAwNjY3LCAwLjAwMDY2NyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjEzMjkwMzsKLSAgICBmdW5jdGlvbiA6ICIoISgoQjArQjEpICghKEEwTiBBMU4pKSkpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBME4iOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE4MDE4OCwgMC41NTEyNjcsIDAuODQ3MDE1LCAxLjIxNjIzLCAxLjU4NTUxLCAxLjk1NDU0LCAyLjMyMzg1IiwgXAotICAgICAgICAgICIwLjE5MjA3NywgMC41NjMwOTcsIDAuODU4ODg1LCAxLjIyODI4LCAxLjU5NzQsIDEuOTY2OCwgMi4zMzY1IiwgXAotICAgICAgICAgICIwLjIwNzI3OSwgMC41NzgzNzMsIDAuODczOTA5LCAxLjI0MzY3LCAxLjYxMjU4LCAxLjk4MjAyLCAyLjM1MTU5IiwgXAotICAgICAgICAgICIwLjIyMjU5OSwgMC41OTM3OTUsIDAuODg5NTMxLCAxLjI1ODgzLCAxLjYyODE4LCAxLjk5ODM5LCAyLjM2NjkiLCBcCi0gICAgICAgICAgIjAuMjM3NzcyLCAwLjYwODkyNCwgMC45MDQ2MTQsIDEuMjc0MDgsIDEuNjQzMjMsIDIuMDEyNzUsIDIuMzgyMzkiLCBcCi0gICAgICAgICAgIjAuMjYxODgxLCAwLjYzMzAzNiwgMC45Mjg4NjEsIDEuMjk4MzgsIDEuNjY3NDUsIDIuMDM3NDUsIDIuNDA2MTQiLCBcCi0gICAgICAgICAgIjAuMjgyMDI1LCAwLjY1MzI4OCwgMC45NDkwNTEsIDEuMzE4NDcsIDEuNjg3NjUsIDIuMDU3NzMsIDIuNDI2MzgiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjIwMzczLCAwLjk0MDI2MSwgMS41MTcsIDIuMjM4NSwgMi45NTg5NSwgMy42Nzk4OSwgNC40MDA1NiIsIFwKLSAgICAgICAgICAiMC4yMjAzNzYsIDAuOTQwMjU2LCAxLjUxNzI5LCAyLjIzNzkzLCAyLjk1OTExLCAzLjY4MDcxLCA0LjQwMTk4IiwgXAotICAgICAgICAgICIwLjIyMDM3OCwgMC45NDAyNTMsIDEuNTE2OTQsIDIuMjM4MDEsIDIuOTU5NDYsIDMuNjgwNjEsIDQuNDAwNDciLCBcCi0gICAgICAgICAgIjAuMjIwMzg4LCAwLjk0MDI5NywgMS41MTY5MSwgMi4yMzgxMSwgMi45NTkzMywgMy42ODA3NCwgNC40MDE4OCIsIFwKLSAgICAgICAgICAiMC4yMjA0LCAwLjk0MDI1NiwgMS41MTY5NiwgMi4yMzg2LCAyLjk1OTAyLCAzLjY3OTc1LCA0LjQwMTc5IiwgXAotICAgICAgICAgICIwLjIyMDQzMSwgMC45NDAxMjIsIDEuNTE3MDIsIDIuMjM3OTksIDIuOTU5MTQsIDMuNjc5ODgsIDQuNDAxMjgiLCBcCi0gICAgICAgICAgIjAuMjIwNTE3LCAwLjk0MDMxMywgMS41MTcwMiwgMi4yMzg0LCAyLjk1OTU0LCAzLjY4MDEyLCA0LjQwMDY0Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE5NTY3OSwgMC42MDc2MTcsIDAuOTM2MTYzLCAxLjM1MDk4LCAxLjc2NTgzLCAyLjE4MTQyLCAyLjU5NjI1IiwgXAotICAgICAgICAgICIwLjIwNzIzNCwgMC42MTkxMTMsIDAuOTQ3NDYsIDEuMzYxODYsIDEuNzc2OTYsIDIuMTkyNDUsIDIuNjA4NDQiLCBcCi0gICAgICAgICAgIjAuMjIyMDA4LCAwLjYzMzg4NywgMC45NjIzOSwgMS4zNzcyNCwgMS43OTI2MiwgMi4yMDgzNCwgMi42MjI4NSIsIFwKLSAgICAgICAgICAiMC4yMzY4OTcsIDAuNjQ4OTA2LCAwLjk3NzI1NiwgMS4zOTE2MSwgMS44MDc0NiwgMi4yMjE5NSwgMi42MzgxMiIsIFwKLSAgICAgICAgICAiMC4yNTE0NDEsIDAuNjYzNDAzLCAwLjk5MTc3MSwgMS40MDYzLCAxLjgyMTI2LCAyLjIzNzI5LCAyLjY1MjY4IiwgXAotICAgICAgICAgICIwLjI3MzY4OSwgMC42ODU3OSwgMS4wMTQwOCwgMS40Mjg3MiwgMS44NDM3MywgMi4yNTk3NSwgMi42NzQ4NSIsIFwKLSAgICAgICAgICAiMC4yOTE2MTcsIDAuNzAzNzY0LCAxLjAzMjIsIDEuNDQ3MDcsIDEuODYyMDQsIDIuMjc3NDYsIDIuNjkyNjkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjIxNzIxLCAxLjAwNzIxLCAxLjY0MzI1LCAyLjQzNjk4LCAzLjIzMSwgNC4wMjQ2MiwgNC44MTgyOCIsIFwKLSAgICAgICAgICAiMC4yMjE3MjQsIDEuMDA3NTIsIDEuNjQyMTEsIDIuNDM1NzQsIDMuMjMwNDEsIDQuMDI4MjIsIDQuODE5MDUiLCBcCi0gICAgICAgICAgIjAuMjIxNzMyLCAxLjAwNzQzLCAxLjY0MzEyLCAyLjQzNjc2LCAzLjIzMDk1LCA0LjAyNTIyLCA0LjgxODY4IiwgXAotICAgICAgICAgICIwLjIyMTQzOSwgMS4wMDc0MSwgMS42NDIyLCAyLjQzNTk5LCAzLjIzMDc2LCA0LjAyNDM4LCA0LjgxOTgxIiwgXAotICAgICAgICAgICIwLjIyMTQzLCAxLjAwNzI5LCAxLjY0MjMsIDIuNDM4MzUsIDMuMjMwMDIsIDQuMDI1NTQsIDQuODE5NDkiLCBcCi0gICAgICAgICAgIjAuMjIxNTUxLCAxLjAwNzM5LCAxLjY0MjQyLCAyLjQzNzA0LCAzLjIyOTYyLCA0LjAyNjI3LCA0LjgxOTA2IiwgXAotICAgICAgICAgICIwLjIyMTgwNCwgMS4wMDcyOSwgMS42NDMwOSwgMi40MzY4OSwgMy4yMzA5NSwgNC4wMjQ3MywgNC44MTg5NCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMU4iOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE3MjQ0NSwgMC41NDM1MDEsIDAuODM5MjAyLCAxLjIwODYsIDEuNTc4MDYsIDEuOTQ2OTIsIDIuMzE2NDgiLCBcCi0gICAgICAgICAgIjAuMTg0MTg0LCAwLjU1NTMzNywgMC44NTA5NjksIDEuMjIwNTQsIDEuNTg5NDksIDEuOTU4NzUsIDIuMzI4NTQiLCBcCi0gICAgICAgICAgIjAuMTk5NTg4LCAwLjU3MDY4LCAwLjg2NjQ0OCwgMS4yMzU5NSwgMS42MDUwMiwgMS45NzUwMSwgMi4zNDM1OSIsIFwKLSAgICAgICAgICAiMC4yMTUwNzMsIDAuNTg2MjQyLCAwLjg4MTkyOCwgMS4yNTExNywgMS42MjA2NCwgMS45OTAyNCwgMi4zNTkxIiwgXAotICAgICAgICAgICIwLjIyOTk0NywgMC42MDEyMDksIDAuODk2ODU4LCAxLjI2NjA2LCAxLjYzNTM0LCAyLjAwNDY1LCAyLjM3NDM4IiwgXAotICAgICAgICAgICIwLjI1NDE2NywgMC42MjUzNjgsIDAuOTIxMDk3LCAxLjI5MDU2LCAxLjY2MDI1LCAyLjAyOTEzLCAyLjM5OTExIiwgXAotICAgICAgICAgICIwLjI3NDMsIDAuNjQ1NTk3LCAwLjk0MTI0MiwgMS4zMTA2MywgMS42Nzk3OCwgMi4wNDk2NiwgMi40MTkwMyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMjA1NzUsIDAuOTQwMTU1LCAxLjUxNzIzLCAyLjIzNzg1LCAyLjk1OTUxLCAzLjY4MDEyLCA0LjQwMDY1IiwgXAotICAgICAgICAgICIwLjIyMDU3NiwgMC45NDAzMjQsIDEuNTE2OTksIDIuMjM3OTgsIDIuOTU5MzUsIDMuNjgwMTcsIDQuNDAxOTciLCBcCi0gICAgICAgICAgIjAuMjIwNTQ2LCAwLjk0MDE3MiwgMS41MTcwMiwgMi4yMzc5MywgMi45NTkxOCwgMy42Nzk5NSwgNC40MDA2NyIsIFwKLSAgICAgICAgICAiMC4yMjA1NDYsIDAuOTQwMjYsIDEuNTE3MTQsIDIuMjM3OTMsIDIuOTU5NTcsIDMuNjgwMDYsIDQuNDAxMjQiLCBcCi0gICAgICAgICAgIjAuMjIwNjEyLCAwLjk0MDIyNSwgMS41MTcwMSwgMi4yMzc4OSwgMi45NTk1LCAzLjY3OTc3LCA0LjQwMDk2IiwgXAotICAgICAgICAgICIwLjIyMDY4OCwgMC45NDAzMDYsIDEuNTE2OTksIDIuMjM4MjQsIDIuOTU5NDIsIDMuNjc5NjcsIDQuNDAwODkiLCBcCi0gICAgICAgICAgIjAuMjIwOTk0LCAwLjk0MDIwMiwgMS41MTcyOCwgMi4yMzg1OSwgMi45NTkzNiwgMy42ODAwNCwgNC40MDIxOCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xOTExMDIsIDAuNjA3NjY1LCAwLjk0MDE0LCAxLjM1NjE2LCAxLjc3MDY3LCAyLjE4NzgzLCAyLjYwNDciLCBcCi0gICAgICAgICAgIjAuMjAyNTY2LCAwLjYxOTIxOCwgMC45NTE2NDQsIDEuMzY3NDYsIDEuNzgyMjQsIDIuMTk5MTMsIDIuNjE3MDYiLCBcCi0gICAgICAgICAgIjAuMjE3NDIsIDAuNjM0MTMzLCAwLjk2NjU1MywgMS4zODIzNCwgMS43OTcyLCAyLjIxNCwgMi42MzE5OCIsIFwKLSAgICAgICAgICAiMC4yMzIwODMsIDAuNjQ4Njg0LCAwLjk4MTE4NCwgMS4zOTY1NSwgMS44MTE3LCAyLjIyODksIDIuNjQ2NyIsIFwKLSAgICAgICAgICAiMC4yNDY2NzksIDAuNjYzNTcsIDAuOTk1ODYzLCAxLjQxMTI0LCAxLjgyNjM3LCAyLjI0MzYzLCAyLjY2MTM5IiwgXAotICAgICAgICAgICIwLjI2OTMwNiwgMC42ODYyNzMsIDEuMDE4ODgsIDEuNDM0NDMsIDEuODQ5NzEsIDIuMjY2MTQsIDIuNjgzODYiLCBcCi0gICAgICAgICAgIjAuMjg3NjAyLCAwLjcwNDQ0NiwgMS4wMzcwNCwgMS40NTI3OSwgMS44Njc1MiwgMi4yODUyNCwgMi43MDI1MSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMTM0NDUsIDEuMDA3MTUsIDEuNjUwNzMsIDIuNDQ1OTksIDMuMjU3OTUsIDQuMDQzODYsIDQuODUxMTUiLCBcCi0gICAgICAgICAgIjAuMjEzNjE2LCAxLjAwNzI2LCAxLjY1MDU3LCAyLjQ0NzM5LCAzLjI1NzgxLCA0LjA0NDcxLCA0Ljg0NTgiLCBcCi0gICAgICAgICAgIjAuMjEzNDQ3LCAxLjAwNzAzLCAxLjY1MDYzLCAyLjQ0NzEyLCAzLjI1NzgsIDQuMDQ0NjIsIDQuODQ0NjciLCBcCi0gICAgICAgICAgIjAuMjEzNDM3LCAxLjAwNzQ1LCAxLjY1MTk4LCAyLjQ1Mzg2LCAzLjI1ODgsIDQuMDUwOTUsIDQuODQ0ODUiLCBcCi0gICAgICAgICAgIjAuMjEzNDQ1LCAxLjAwNzMsIDEuNjUxOTYsIDIuNDUzOTQsIDMuMjU4NDMsIDQuMDUxNzQsIDQuODQ0ODciLCBcCi0gICAgICAgICAgIjAuMjEzNDQyLCAxLjAwNzAzLCAxLjY1MDY5LCAyLjQ0NTIxLCAzLjI0ODU0LCA0LjA1OTQzLCA0Ljg0ODM2IiwgXAotICAgICAgICAgICIwLjIxMzU4NiwgMS4wMDc2MSwgMS42NTA5LCAyLjQ0NzU0LCAzLjI1NzcsIDQuMDQ4NTYsIDQuODQ3ODYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjAiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwNDYwNywgMC40NzUzNSwgMC43NzE5NjQsIDEuMTQyMzgsIDEuNTEzMDUsIDEuODgzMzUsIDIuMjU0MTIiLCBcCi0gICAgICAgICAgIjAuMTE2MjYyLCAwLjQ4NzI0MiwgMC43ODM2NDEsIDEuMTU0MiwgMS41MjQ1NCwgMS44OTUzLCAyLjI2NTkzIiwgXAotICAgICAgICAgICIwLjEyOTIzMSwgMC41MDAyNzgsIDAuNzk2ODg0LCAxLjE2NzI5LCAxLjUzOCwgMS45MDgyOCwgMi4yNzkwMyIsIFwKLSAgICAgICAgICAiMC4xNDE3MTgsIDAuNTEyODE4LCAwLjgwOTM1NiwgMS4xNzk4OSwgMS41NTA1MSwgMS45MjExMywgMi4yOTE1NSIsIFwKLSAgICAgICAgICAiMC4xNTQwNjcsIDAuNTI1Mjc4LCAwLjgyMTgxNCwgMS4xOTI0MywgMS41NjI5OSwgMS45MzM5MiwgMi4zMDQyIiwgXAotICAgICAgICAgICIwLjE3MzYxNywgMC41NDUyOTgsIDAuODQxODEsIDEuMjEyMjIsIDEuNTgyODcsIDEuOTUzMzcsIDIuMzI0MDYiLCBcCi0gICAgICAgICAgIjAuMTkwOTE3LCAwLjU2MjcwMywgMC44NTkyNjQsIDEuMjMwNDYsIDEuNjAwMzUsIDEuOTcxMzksIDIuMzQxNzgiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjA0MTYzLCAwLjkyNzczMiwgMS41MDc1MSwgMi4yMzI1NywgMi45NTc3OSwgMy42ODI1MywgNC40MDg4OCIsIFwKLSAgICAgICAgICAiMC4yMDQxMzIsIDAuOTI3NjI0LCAxLjUwNzU1LCAyLjIzMjE3LCAyLjk1NzIxLCAzLjY4Mjg2LCA0LjQwOTYxIiwgXAotICAgICAgICAgICIwLjIwNDEzNywgMC45Mjc4NDgsIDEuNTA3NTYsIDIuMjMyMDcsIDIuOTU3NzIsIDMuNjgyODEsIDQuNDA5OTYiLCBcCi0gICAgICAgICAgIjAuMjA0ODUyLCAwLjkyNzY0NSwgMS41MDczLCAyLjIzMTk3LCAyLjk1NzA3LCAzLjY4MjUzLCA0LjQxMDAzIiwgXAotICAgICAgICAgICIwLjIwNjc2NiwgMC45Mjc2NDUsIDEuNTA3MjcsIDIuMjMyNTgsIDIuOTYxNTIsIDMuNjgxOTYsIDQuNDA5OTEiLCBcCi0gICAgICAgICAgIjAuMjExNjExLCAwLjkyNzkzLCAxLjUwNzU0LCAyLjIzMTg2LCAyLjk1NzEyLCAzLjY4MjYsIDQuNDA4NDYiLCBcCi0gICAgICAgICAgIjAuMjE3MjI3LCAwLjkyNzgyLCAxLjUwNzI2LCAyLjIzMjgzLCAyLjk1NzAyLCAzLjY4MzA0LCA0LjQwOTYxIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEzMDAyOSwgMC41NDE4OTgsIDAuODcwMjQxLCAxLjI4NDAzLCAxLjY5OTg4LCAyLjExMzUzLCAyLjUyODYyIiwgXAotICAgICAgICAgICIwLjE0MDI1OSwgMC41NTIxMzgsIDAuODgwNDU1LCAxLjI5NDUyLCAxLjcxMDA2LCAyLjEyNTExLCAyLjU0MDkxIiwgXAotICAgICAgICAgICIwLjE1MzkyOSwgMC41NjU0MTIsIDAuODkzNzksIDEuMzA4NTMsIDEuNzIzMzEsIDIuMTM5MzgsIDIuNTUzNTciLCBcCi0gICAgICAgICAgIjAuMTY2NzA1LCAwLjU3ODg4OSwgMC45MDcyODEsIDEuMzIxNjgsIDEuNzM3MDQsIDIuMTUyNDIsIDIuNTY3NTQiLCBcCi0gICAgICAgICAgIjAuMTgwMTMsIDAuNTkyMTE3LCAwLjkyMDg1OSwgMS4zMzQ4MywgMS43NDk4NSwgMi4xNjU4MiwgMi41ODEwOCIsIFwKLSAgICAgICAgICAiMC4yMDA5MywgMC42MTQzNzYsIDAuOTQxOTc1LCAxLjM1NTgzLCAxLjc3MTc1LCAyLjE4NjY0LCAyLjYwMTY2IiwgXAotICAgICAgICAgICIwLjIyMDY3NywgMC42MzE2NDgsIDAuOTYwMjMzLCAxLjM3Mzk0LCAxLjc4OTEyLCAyLjIwNTI4LCAyLjYyMDI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIyMTIyNCwgMS4wMDc1OCwgMS42NDI4MSwgMi40MzU5NSwgMy4yMzA2NSwgNC4wMjIzOSwgNC44MTYwMyIsIFwKLSAgICAgICAgICAiMC4yMjEyOTgsIDEuMDA3NTYsIDEuNjQyNCwgMi40MzY2OCwgMy4yMzAxLCA0LjAyNzI4LCA0LjgxODM5IiwgXAotICAgICAgICAgICIwLjIyMTE1NCwgMS4wMDcwNywgMS42NDI0MywgMi40MzcwNiwgMy4yMjk2NSwgNC4wMjYyLCA0LjgxNzczIiwgXAotICAgICAgICAgICIwLjIyMTA0NSwgMS4wMDcwMywgMS42NDI3NiwgMi40MzY0NiwgMy4yMzA4LCA0LjAyNDkzLCA0LjgxNjg4IiwgXAotICAgICAgICAgICIwLjIyMzEyNywgMS4wMDcxMSwgMS42NDI5NSwgMi40MzY3OCwgMy4yMzIzOCwgNC4wMjYsIDQuODE4OTYiLCBcCi0gICAgICAgICAgIjAuMjI5MTYyLCAxLjAwNzQ5LCAxLjY0MTk1LCAyLjQzNjQxLCAzLjIzMDg2LCA0LjAyNDg4LCA0LjgxODM1IiwgXAotICAgICAgICAgICIwLjIzNjExNCwgMS4wMDc1NywgMS42NDI1LCAyLjQzNTczLCAzLjIyOTUzLCA0LjAyNjQ2LCA0LjgxODc2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIxIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTgzMTcsIDAuNDY4OTc5LCAwLjc2NTQyLCAxLjEzNjAzLCAxLjUwNjU3LCAxLjg3NzM4LCAyLjI0NzgzIiwgXAotICAgICAgICAgICIwLjEwODU4MywgMC40Nzk2ODIsIDAuNzc1OTc3LCAxLjE0NjUxLCAxLjUxNzEsIDEuODg3ODEsIDIuMjU4MzQiLCBcCi0gICAgICAgICAgIjAuMTIxNDE5LCAwLjQ5MjcwMywgMC43ODkzNDIsIDEuMTYwMDcsIDEuNTMwMTMsIDEuOTAwNTIsIDIuMjcxMTIiLCBcCi0gICAgICAgICAgIjAuMTM0NDExLCAwLjUwNTgyMywgMC44MDIwNDgsIDEuMTcyNjUsIDEuNTQzNDQsIDEuOTEzNywgMi4yODQ1OSIsIFwKLSAgICAgICAgICAiMC4xNDc0NTgsIDAuNTE4NjkxLCAwLjgxNTI3LCAxLjE4NTc2LCAxLjU1NjI2LCAxLjkyNjk3LCAyLjI5NzYzIiwgXAotICAgICAgICAgICIwLjE2OTM1NywgMC41Mzk3MDksIDAuODM2MTM5LCAxLjIwNjc0LCAxLjU3NzI1LCAxLjk0ODAyLCAyLjMxODQ2IiwgXAotICAgICAgICAgICIwLjE4ODAxMiwgMC41NTgwNTcsIDAuODU0NTA4LCAxLjIyNTI1LCAxLjU5NTY1LCAxLjk2NjE0LCAyLjMzNjkiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjA0MTMyLCAwLjkyNzU3NiwgMS41MDc1MSwgMi4yMzIzMSwgMi45NTcwNSwgMy42ODI1MywgNC40MDY5MyIsIFwKLSAgICAgICAgICAiMC4yMDQxMjYsIDAuOTI3NzM2LCAxLjUwNzU0LCAyLjIzMTk4LCAyLjk1NjgzLCAzLjY4MTkyLCA0LjQwOTY1IiwgXAotICAgICAgICAgICIwLjIwNDE5NywgMC45MjgwMDUsIDEuNTA3NTcsIDIuMjMyNDEsIDIuOTU3NDgsIDMuNjgyMjUsIDQuNDA2ODYiLCBcCi0gICAgICAgICAgIjAuMjA2NDg0LCAwLjkyNzc5NiwgMS41MDc1MSwgMi4yMzE5NSwgMi45NTc5NiwgMy42ODE4MiwgNC40MTA1NSIsIFwKLSAgICAgICAgICAiMC4yMTA3MDEsIDAuOTI3NzYxLCAxLjUwNzMxLCAyLjIzMjA4LCAyLjk1NzAyLCAzLjY4MjAyLCA0LjQwOTc2IiwgXAotICAgICAgICAgICIwLjIxOTMyNSwgMC45Mjc2OTgsIDEuNTA3NDcsIDIuMjMxOSwgMi45NTcwMywgMy42ODI2OSwgNC40MDk4NCIsIFwKLSAgICAgICAgICAiMC4yMjg3OTUsIDAuOTI3NTg0LCAxLjUwNzI1LCAyLjIzMjEzLCAyLjk1NzcsIDMuNjgyOSwgNC40MDk4NiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMjE1NzEsIDAuNTM3OTQ2LCAwLjg3MDI2NywgMS4yODU2MSwgMS43MDE3NiwgMi4xMTcxMywgMi41MzQ5MSIsIFwKLSAgICAgICAgICAiMC4xMzIyNjMsIDAuNTQ4ODIzLCAwLjg4MTE0OCwgMS4yOTY0NSwgMS43MTIxMiwgMi4xMjc1NiwgMi41NDU0NyIsIFwKLSAgICAgICAgICAiMC4xNDUyNjIsIDAuNTYyMjM5LCAwLjg5NTQ0NSwgMS4zMTA3NSwgMS43MjU1OCwgMi4xNDIxOSwgMi41NTk1OCIsIFwKLSAgICAgICAgICAiMC4xNTgzOTgsIDAuNTc1NDgzLCAwLjkwNzgwMSwgMS4zMjM2NiwgMS43MzkwMywgMi4xNTUzMywgMi41NzMwOCIsIFwKLSAgICAgICAgICAiMC4xNzIwMiwgMC41ODg4MTgsIDAuOTIxNzU0LCAxLjMzNzA0LCAxLjc1MjQ2LCAyLjE2ODc1LCAyLjU4NjY0IiwgXAotICAgICAgICAgICIwLjE5MjUxOCwgMC42MDk2MTksIDAuOTQyMTE5LCAxLjM1Nzc4LCAxLjc3Mzg4LCAyLjE4ODc4LCAyLjYwNzE1IiwgXAotICAgICAgICAgICIwLjIxMjIyNSwgMC42MjgyNDEsIDAuOTYwOTM1LCAxLjM3NjA0LCAxLjc5MTIzLCAyLjIwOTEyLCAyLjYyNTc4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIxMzI3OCwgMS4wMDg2MywgMS42NDc3NywgMi40NDgwNiwgMy4yNDU0NCwgNC4wNTk1LCA0Ljg1MzE0IiwgXAotICAgICAgICAgICIwLjIxMzE0OCwgMS4wMDgzOSwgMS42NTAzOSwgMi40NTM4OSwgMy4yNDk2NCwgNC4wNTg4MywgNC44NDcwNyIsIFwKLSAgICAgICAgICAiMC4yMTMxMjMsIDEuMDA3MjksIDEuNjQ0NCwgMi40NDgxNywgMy4yNTUxOCwgNC4wNDUxMSwgNC44NDg4NCIsIFwKLSAgICAgICAgICAiMC4yMTMyODgsIDEuMDA4ODQsIDEuNjQ1MzksIDIuNDQ3NCwgMy4yNTkyNywgNC4wNTM2NywgNC44NDQ2OSIsIFwKLSAgICAgICAgICAiMC4yMTU3OTcsIDEuMDA3NywgMS42NDYxNywgMi40NTM3NCwgMy4yNDQyNiwgNC4wNTE5OSwgNC44NDQ5IiwgXAotICAgICAgICAgICIwLjIyMjYzMiwgMS4wMDgyNywgMS42NTA5OSwgMi40NTcwOSwgMy4yNDgwNiwgNC4wNTg5MywgNC44NTAxNiIsIFwKLSAgICAgICAgICAiMC4yMjk3NDgsIDEuMDA3MzksIDEuNjQzNTMsIDIuNDU0MDcsIDMuMjU3NDMsIDQuMDQ1MDUsIDQuODUzMDciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBME4iOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNTU4NywgMC4wMDU1OSwgMC4wMDU1ODgsIDAuMDA1NTg3LCAwLjAwNTU4NSwgMC4wMDU1ODIsIDAuMDA1NTgiLCBcCi0gICAgICAgICAgIjAuMDA1NTc0LCAwLjAwNTU3NiwgMC4wMDU1NzQsIDAuMDA1NTcyLCAwLjAwNTU3MSwgMC4wMDU1NjgsIDAuMDA1NTY1IiwgXAotICAgICAgICAgICIwLjAwNTU2MiwgMC4wMDU1NjYsIDAuMDA1NTY0LCAwLjAwNTU2MywgMC4wMDU1NjEsIDAuMDA1NTU4LCAwLjAwNTU1NyIsIFwKLSAgICAgICAgICAiMC4wMDU1NTMsIDAuMDA1NTU4LCAwLjAwNTU1NywgMC4wMDU1NTYsIDAuMDA1NTUzLCAwLjAwNTU1MSwgMC4wMDU1NDkiLCBcCi0gICAgICAgICAgIjAuMDA1NTQ3LCAwLjAwNTU1MywgMC4wMDU1NTIsIDAuMDA1NTUyLCAwLjAwNTU0OSwgMC4wMDU1NDgsIDAuMDA1NTQ1IiwgXAotICAgICAgICAgICIwLjAwNTU0LCAwLjAwNTU1LCAwLjAwNTU1MSwgMC4wMDU1NTEsIDAuMDA1NTQ3LCAwLjAwNTU0NiwgMC4wMDU1NDQiLCBcCi0gICAgICAgICAgIjAuMDA1NTM3LCAwLjAwNTU0OCwgMC4wMDU1NDksIDAuMDA1NTQ3LCAwLjAwNTU0NSwgMC4wMDU1NDQsIDAuMDA1NTQxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0NDMsIDAuMDA0NDM2LCAwLjAwNDQzNiwgMC4wMDQ0MzUsIDAuMDA0NDM0LCAwLjAwNDQzNSwgMC4wMDQ0MzIiLCBcCi0gICAgICAgICAgIjAuMDA0NDIyLCAwLjAwNDQyOCwgMC4wMDQ0MywgMC4wMDQ0MjcsIDAuMDA0NDI4LCAwLjAwNDQyNiwgMC4wMDQ0MjQiLCBcCi0gICAgICAgICAgIjAuMDA0NDExLCAwLjAwNDQyMSwgMC4wMDQ0MjEsIDAuMDA0NDIxLCAwLjAwNDQyLCAwLjAwNDQxOCwgMC4wMDQ0MTYiLCBcCi0gICAgICAgICAgIjAuMDA0NDAzLCAwLjAwNDQxNSwgMC4wMDQ0MTYsIDAuMDA0NDE1LCAwLjAwNDQxNCwgMC4wMDQ0MTMsIDAuMDA0NDExIiwgXAotICAgICAgICAgICIwLjAwNDM5NywgMC4wMDQ0MTEsIDAuMDA0NDEyLCAwLjAwNDQxMiwgMC4wMDQ0MTEsIDAuMDA0NDEsIDAuMDA0NDA5IiwgXAotICAgICAgICAgICIwLjAwNDM4NywgMC4wMDQ0MDQsIDAuMDA0NDA2LCAwLjAwNDQwNywgMC4wMDQ0MDUsIDAuMDA0NDA1LCAwLjAwNDQwMyIsIFwKLSAgICAgICAgICAiMC4wMDQzODMsIDAuMDA0NDAyLCAwLjAwNDQwNCwgMC4wMDQ0MDUsIDAuMDA0NDA0LCAwLjAwNDQwMywgMC4wMDQ0MDIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMU4iOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNTA2MywgMC4wMDUwNzEsIDAuMDA1MDcsIDAuMDA1MDY5LCAwLjAwNTA2NywgMC4wMDUwNjQsIDAuMDA1MDYzIiwgXAotICAgICAgICAgICIwLjAwNTA0OSwgMC4wMDUwNTgsIDAuMDA1MDU3LCAwLjAwNTA1NiwgMC4wMDUwNTMsIDAuMDA1MDUxLCAwLjAwNTA1IiwgXAotICAgICAgICAgICIwLjAwNTAzOCwgMC4wMDUwNDksIDAuMDA1MDQ5LCAwLjAwNTA0NywgMC4wMDUwNDUsIDAuMDA1MDQ0LCAwLjAwNTA0IiwgXAotICAgICAgICAgICIwLjAwNTAyOSwgMC4wMDUwNDIsIDAuMDA1MDQxLCAwLjAwNTA0LCAwLjAwNTAzOCwgMC4wMDUwMzYsIDAuMDA1MDM0IiwgXAotICAgICAgICAgICIwLjAwNTAxOCwgMC4wMDUwMzQsIDAuMDA1MDM2LCAwLjAwNTAzNCwgMC4wMDUwMzIsIDAuMDA1MDMxLCAwLjAwNTAzIiwgXAotICAgICAgICAgICIwLjAwNTAxMSwgMC4wMDUwMzEsIDAuMDA1MDMyLCAwLjAwNTAzMiwgMC4wMDUwMywgMC4wMDUwMjksIDAuMDA1MDI3IiwgXAotICAgICAgICAgICIwLjAwNTAwMywgMC4wMDUwMjcsIDAuMDA1MDMsIDAuMDA1MDMsIDAuMDA1MDI3LCAwLjAwNTAyNiwgMC4wMDUwMjQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQwMzksIDAuMDA0MDY1LCAwLjAwNDA2NywgMC4wMDQwNjgsIDAuMDA0MDY4LCAwLjAwNDA2OSwgMC4wMDQwNjgiLCBcCi0gICAgICAgICAgIjAuMDA0MDI4LCAwLjAwNDA1NSwgMC4wMDQwNTksIDAuMDA0MDYsIDAuMDA0MDYxLCAwLjAwNDA1OSwgMC4wMDQwNiIsIFwKLSAgICAgICAgICAiMC4wMDQwMTUsIDAuMDA0MDQ4LCAwLjAwNDA1MSwgMC4wMDQwNTMsIDAuMDA0MDUzLCAwLjAwNDA1NSwgMC4wMDQwNTMiLCBcCi0gICAgICAgICAgIjAuMDA0MDAyLCAwLjAwNDA0MiwgMC4wMDQwNDYsIDAuMDA0MDQ4LCAwLjAwNDA1LCAwLjAwNDA0OSwgMC4wMDQwNSIsIFwKLSAgICAgICAgICAiMC4wMDM5OTIsIDAuMDA0MDM3LCAwLjAwNDA0MywgMC4wMDQwNDYsIDAuMDA0MDQ3LCAwLjAwNDA0NywgMC4wMDQwNDciLCBcCi0gICAgICAgICAgIjAuMDAzOTc5LCAwLjAwNDAzLCAwLjAwNDAzOCwgMC4wMDQwNDEsIDAuMDA0MDQzLCAwLjAwNDA0MywgMC4wMDQwNDMiLCBcCi0gICAgICAgICAgIjAuMDAzOTcsIDAuMDA0MDI4LCAwLjAwNDAzNiwgMC4wMDQwNDEsIDAuMDA0MDQzLCAwLjAwNDA0NCwgMC4wMDQwNDQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzNjQ3LCAwLjAwMzY1LCAwLjAwMzY1MSwgMC4wMDM2NTEsIDAuMDAzNjUxLCAwLjAwMzY1MSwgMC4wMDM2NTEiLCBcCi0gICAgICAgICAgIjAuMDAzNjQ4LCAwLjAwMzY2MywgMC4wMDM2NjQsIDAuMDAzNjY1LCAwLjAwMzY2NSwgMC4wMDM2NjUsIDAuMDAzNjY1IiwgXAotICAgICAgICAgICIwLjAwMzYzNiwgMC4wMDM2NjIsIDAuMDAzNjY0LCAwLjAwMzY2NiwgMC4wMDM2NjcsIDAuMDAzNjY0LCAwLjAwMzY2OCIsIFwKLSAgICAgICAgICAiMC4wMDM2MjUsIDAuMDAzNjU5LCAwLjAwMzY2MywgMC4wMDM2NjUsIDAuMDAzNjY3LCAwLjAwMzY2OCwgMC4wMDM2NjgiLCBcCi0gICAgICAgICAgIjAuMDAzNjEyLCAwLjAwMzY1NiwgMC4wMDM2NjIsIDAuMDAzNjY1LCAwLjAwMzY2NywgMC4wMDM2NjcsIDAuMDAzNjY4IiwgXAotICAgICAgICAgICIwLjAwMzYwMywgMC4wMDM2NTEsIDAuMDAzNjU5LCAwLjAwMzY2MywgMC4wMDM2NjUsIDAuMDAzNjY2LCAwLjAwMzY2NyIsIFwKLSAgICAgICAgICAiMC4wMDM1OTUsIDAuMDAzNjQ4LCAwLjAwMzY1NywgMC4wMDM2NjEsIDAuMDAzNjY0LCAwLjAwMzY2NiwgMC4wMDM2NjciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDIwMDEsIDAuMDAyMDAyLCAwLjAwMiwgMC4wMDE5OTksIDAuMDAyMDA0LCAwLjAwMTk5NywgMC4wMDE5OTUiLCBcCi0gICAgICAgICAgIjAuMDAxOTY1LCAwLjAwMTk3NCwgMC4wMDE5NzMsIDAuMDAxOTcxLCAwLjAwMTk3MywgMC4wMDE5NzIsIDAuMDAxOTciLCBcCi0gICAgICAgICAgIjAuMDAxOTUsIDAuMDAxOTY2LCAwLjAwMTk2OCwgMC4wMDE5NjgsIDAuMDAxOTY3LCAwLjAwMTk2MywgMC4wMDE5NjMiLCBcCi0gICAgICAgICAgIjAuMDAxOTM2LCAwLjAwMTk2MSwgMC4wMDE5NjIsIDAuMDAxOTY0LCAwLjAwMTk2MywgMC4wMDE5NjIsIDAuMDAxOTYxIiwgXAotICAgICAgICAgICIwLjAwMTkyNywgMC4wMDE5NTYsIDAuMDAxOTYsIDAuMDAxOTYxLCAwLjAwMTk2MSwgMC4wMDE5NiwgMC4wMDE5NTkiLCBcCi0gICAgICAgICAgIjAuMDAxOTE2LCAwLjAwMTk1MywgMC4wMDE5NTYsIDAuMDAxOTU5LCAwLjAwMTk1OSwgMC4wMDE5NTksIDAuMDAxOTU4IiwgXAotICAgICAgICAgICIwLjAwMTkxMywgMC4wMDE5NDcsIDAuMDAxOTUzLCAwLjAwMTk1NiwgMC4wMDE5NTcsIDAuMDAxOTU2LCAwLjAwMTk1NyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIxIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDMxNDQsIDAuMDAzMTQ4LCAwLjAwMzE0OSwgMC4wMDMxNDksIDAuMDAzMTQ5LCAwLjAwMzE0OSwgMC4wMDMxNDkiLCBcCi0gICAgICAgICAgIjAuMDAzMTM3LCAwLjAwMzE1OCwgMC4wMDMxNiwgMC4wMDMxNjEsIDAuMDAzMTYyLCAwLjAwMzE2MiwgMC4wMDMxNjMiLCBcCi0gICAgICAgICAgIjAuMDAzMTIsIDAuMDAzMTU2LCAwLjAwMzE2MiwgMC4wMDMxNjQsIDAuMDAzMTY0LCAwLjAwMzE2NSwgMC4wMDMxNjYiLCBcCi0gICAgICAgICAgIjAuMDAzMTA0LCAwLjAwMzE1MywgMC4wMDMxNTcsIDAuMDAzMTYyLCAwLjAwMzE2NCwgMC4wMDMxNjQsIDAuMDAzMTY1IiwgXAotICAgICAgICAgICIwLjAwMzA4OSwgMC4wMDMxNDgsIDAuMDAzMTU2LCAwLjAwMzE2LCAwLjAwMzE2MywgMC4wMDMxNjQsIDAuMDAzMTY0IiwgXAotICAgICAgICAgICIwLjAwMzA3NywgMC4wMDMxNDEsIDAuMDAzMTUxLCAwLjAwMzE1NywgMC4wMDMxNiwgMC4wMDMxNjIsIDAuMDAzMTYzIiwgXAotICAgICAgICAgICIwLjAwMzA2OSwgMC4wMDMxMzcsIDAuMDAzMTQ4LCAwLjAwMzE1NSwgMC4wMDMxNTgsIDAuMDAzMTYsIDAuMDAzMTYxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxMzgzLCAwLjAwMTM4OSwgMC4wMDEzODksIDAuMDAxMzkzLCAwLjAwMTM4OCwgMC4wMDEzOTQsIDAuMDAxMzg3IiwgXAotICAgICAgICAgICIwLjAwMTM4LCAwLjAwMTQwOCwgMC4wMDE0MDksIDAuMDAxNDEyLCAwLjAwMTQxMSwgMC4wMDE0MTEsIDAuMDAxNDExIiwgXAotICAgICAgICAgICIwLjAwMTM1OCwgMC4wMDE0MDQsIDAuMDAxNDEsIDAuMDAxNDEyLCAwLjAwMTQxMywgMC4wMDE0MTMsIDAuMDAxNDE0IiwgXAotICAgICAgICAgICIwLjAwMTMzNSwgMC4wMDEzOTcsIDAuMDAxNDA2LCAwLjAwMTQxLCAwLjAwMTQxMiwgMC4wMDE0MTIsIDAuMDAxNDEyIiwgXAotICAgICAgICAgICIwLjAwMTMyMywgMC4wMDEzOTMsIDAuMDAxNDAzLCAwLjAwMTQwOSwgMC4wMDE0MTEsIDAuMDAxNDEyLCAwLjAwMTQxMiIsIFwKLSAgICAgICAgICAiMC4wMDEyOTksIDAuMDAxMzgzLCAwLjAwMTM5NywgMC4wMDE0MDUsIDAuMDAxNDA4LCAwLjAwMTQxLCAwLjAwMTQxMSIsIFwKLSAgICAgICAgICAiMC4wMDEyODgsIDAuMDAxMzc2LCAwLjAwMTM5MiwgMC4wMDE0MDEsIDAuMDAxNDA1LCAwLjAwMTQwNywgMC4wMDE0MDkiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBPQUkzMVgyICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKE9BSTMxWDIpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4yMDQwOTc7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE3Njk0OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTc2MDgxOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTc2OTQ7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNjEyLCAwLjAwMDYxMSwgMC4wMDA2MTEsIDAuMDAwNjExLCAwLjAwMDYxMSwgMC4wMDA2MTEsIDAuMDAwNjExIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNjE0LCAwLjAwMDYxNCwgMC4wMDA2MTQsIDAuMDAwNjE0LCAwLjAwMDYxNCwgMC4wMDA2MTUsIDAuMDAwNjE1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihBMSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNTk2NjU7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNTkwNzE7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNTk2NjU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNjEyLCAwLjAwMDYxMiwgMC4wMDA2MTIsIDAuMDAwNjEyLCAwLjAwMDYxMiwgMC4wMDA2MTIsIDAuMDAwNjExIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNjEzLCAwLjAwMDYxNCwgMC4wMDA2MTMsIDAuMDAwNjEzLCAwLjAwMDYxMywgMC4wMDA2MTQsIDAuMDAwNjE0Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihBMikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNDU4NzM7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNDU4NzM7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNDUyODY7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNjEyLCAwLjAwMDYxMiwgMC4wMDA2MTIsIDAuMDAwNjEyLCAwLjAwMDYxMiwgMC4wMDA2MTIsIDAuMDAwNjEyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNjEzLCAwLjAwMDYxNCwgMC4wMDA2MTMsIDAuMDAwNjEzLCAwLjAwMDYxMywgMC4wMDA2MTQsIDAuMDAwNjE0Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNTM2NTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE1MzUzNTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE1MzY1OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDg0OSwgMC4wMDA4NTEsIDAuMDAwODUxLCAwLjAwMDg1MSwgMC4wMDA4NSwgMC4wMDA4NSwgMC4wMDA4NSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDY5NSwgMC4wMDA2OTUsIDAuMDAwNjk1LCAwLjAwMDY5NSwgMC4wMDA2OTYsIDAuMDAwNjk2LCAwLjAwMDY5NiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjA5MjQxMzc7Ci0gICAgZnVuY3Rpb24gOiAiKCEoKChBMCtBMSkrQTIpIEIwKSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xODE1MjQsIDAuNzQ4NTAzLCAxLjIwMDI5LCAxLjc2NTI0LCAyLjMyOTQ1LCAyLjg5MzkxLCAzLjQ1NzgyIiwgXAotICAgICAgICAgICIwLjE5MjgzLCAwLjc2MDAyNiwgMS4yMTE2NywgMS43NzYwNiwgMi4zNDEyOSwgMi45MDUyNywgMy40NjkxMSIsIFwKLSAgICAgICAgICAiMC4yMDU1MzIsIDAuNzcyNjYyLCAxLjIyNDY4LCAxLjc4OTUyLCAyLjM1MzUxLCAyLjkxNzg5LCAzLjQ4MTkxIiwgXAotICAgICAgICAgICIwLjIxNzMzOCwgMC43ODQ3MDEsIDEuMjM2NzEsIDEuODAwODYsIDIuMzY1NzMsIDIuOTI5ODYsIDMuNDkzNTgiLCBcCi0gICAgICAgICAgIjAuMjI4NTc2LCAwLjc5NTg3OSwgMS4yNDc4NSwgMS44MTIyLCAyLjM3Njg3LCAyLjk0MTEsIDMuNTA1MTYiLCBcCi0gICAgICAgICAgIjAuMjQ1ODU0LCAwLjgxMzIzMiwgMS4yNjUwNSwgMS44MzAyMSwgMi4zOTQ2MSwgMi45NTg3OCwgMy41MjI2NyIsIFwKLSAgICAgICAgICAiMC4yNjA3MDksIDAuODI4Mjc1LCAxLjI4MDIxLCAxLjg0NTEsIDIuNDA5NjUsIDIuOTczODksIDMuNTM3MiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yOTM3OTUsIDEuMzgxMDUsIDIuMjUyMDgsIDMuMzM1NjcsIDQuNDIxMDUsIDUuNTA3NCwgNi41OTMwOCIsIFwKLSAgICAgICAgICAiMC4yOTM1MTEsIDEuMzgxMywgMi4yNTIxMiwgMy4zMzc5MiwgNC40MjE2NSwgNS41MDY2OSwgNi41OTE0IiwgXAotICAgICAgICAgICIwLjI5MzU0NiwgMS4zODEwMywgMi4yNDk5NSwgMy4zMzU4NiwgNC40MjM3MSwgNS41MDY4OSwgNi41OTI5NSIsIFwKLSAgICAgICAgICAiMC4yOTM3OTQsIDEuMzgxMjksIDIuMjUwMTIsIDMuMzM1MzgsIDQuNDIxMzEsIDUuNTA3MzQsIDYuNTk1MzYiLCBcCi0gICAgICAgICAgIjAuMjkzODg2LCAxLjM4MTY3LCAyLjI0OTQzLCAzLjMzNzkxLCA0LjQyMzE4LCA1LjUwNzQ4LCA2LjU5MzAyIiwgXAotICAgICAgICAgICIwLjI5NTE3OCwgMS4zODEwNSwgMi4yNTIwNSwgMy4zMzU4NywgNC40MjE0OCwgNS41MDcxOSwgNi41OTMwOSIsIFwKLSAgICAgICAgICAiMC4yOTcyNDgsIDEuMzgxMTgsIDIuMjQ5NDQsIDMuMzM1ODUsIDQuNDIxNCwgNS41MDY4OCwgNi41OTE0OSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMzkxOTEsIDAuNTUyMTgxLCAwLjg4MDk2MiwgMS4yOTE1NywgMS43MDE4LCAyLjExMjI4LCAyLjUyMTU1IiwgXAotICAgICAgICAgICIwLjE1MDg3NSwgMC41NjM4NSwgMC44OTI1MDQsIDEuMzAyOTMsIDEuNzEzNywgMi4xMjM4NiwgMi41MzMzMyIsIFwKLSAgICAgICAgICAiMC4xNjU1MTQsIDAuNTc4NTMsIDAuOTA3MywgMS4zMTcyOCwgMS43Mjc2MSwgMi4xMzg0OCwgMi41NDkwNyIsIFwKLSAgICAgICAgICAiMC4xNzkzOTUsIDAuNTkyMzksIDAuOTIxMjYzLCAxLjMzMTg4LCAxLjc0MTY5LCAyLjE1Mjk2LCAyLjU2Mjc5IiwgXAotICAgICAgICAgICIwLjE5MzE0OCwgMC42MDYyODEsIDAuOTM1MTM1LCAxLjM0NTE5LCAxLjc1NTk5LCAyLjE2Njg5LCAyLjU3NzE0IiwgXAotICAgICAgICAgICIwLjIxNDc5NywgMC42MjgwNzYsIDAuOTU2NzQ0LCAxLjM2NzA1LCAxLjc3Nzg3LCAyLjE4ODYzLCAyLjU5ODQzIiwgXAotICAgICAgICAgICIwLjIzMzY0NCwgMC42NDY5OTksIDAuOTc1NzI3LCAxLjM4NjM3LCAxLjc5NjE5LCAyLjIwNzU2LCAyLjYxNzc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIxMjg2NSwgMC45OTgyNzQsIDEuNjI2NjYsIDIuNDExMjQsIDMuMTk2MTQsIDMuOTc5ODEsIDQuNzY0NTUiLCBcCi0gICAgICAgICAgIjAuMjEyODY0LCAwLjk5ODg2OCwgMS42MjY5OCwgMi40MTA2MywgMy4xOTU4OCwgMy45Nzk3NSwgNC43NjQ1NSIsIFwKLSAgICAgICAgICAiMC4yMTMyMjYsIDAuOTk4MzAxLCAxLjYyNjM1LCAyLjQxMDc2LCAzLjE5NjMyLCAzLjk3OTY5LCA0Ljc2NTM3IiwgXAotICAgICAgICAgICIwLjIxMjg0MSwgMC45OTg0NTEsIDEuNjI2OCwgMi40MTA3OSwgMy4xOTU3LCAzLjk4MDc5LCA0Ljc2NDA5IiwgXAotICAgICAgICAgICIwLjIxMzA3NywgMC45OTg4NTMsIDEuNjI2NjQsIDIuNDExMTIsIDMuMTk1MjgsIDMuOTgxLCA0Ljc2NTIiLCBcCi0gICAgICAgICAgIjAuMjE1MTIyLCAwLjk5ODQ2NSwgMS42MjYxOCwgMi40MTE2NiwgMy4xOTY4NSwgMy45ODA4MiwgNC43NjQxMSIsIFwKLSAgICAgICAgICAiMC4yMTgzNTksIDAuOTk4MzIzLCAxLjYyNjM1LCAyLjQxMTg0LCAzLjE5NjIsIDMuOTgwMzksIDQuNzY1MzIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE3NTQwNCwgMC43NDI0MzQsIDEuMTk0MzIsIDEuNzU5MjksIDIuMzIzMzcsIDIuODg3NTQsIDMuNDUxNTUiLCBcCi0gICAgICAgICAgIjAuMTg1NzE3LCAwLjc1Mjc4LCAxLjIwNDg0LCAxLjc2OTAyLCAyLjMzMzgyLCAyLjg5Nzg4LCAzLjQ2MTc5IiwgXAotICAgICAgICAgICIwLjE5ODI4MiwgMC43NjU0MjcsIDEuMjE3MzIsIDEuNzgyMTUsIDIuMzQ2MDQsIDIuOTExMDMsIDMuNDc0NDIiLCBcCi0gICAgICAgICAgIjAuMjEwMjYxLCAwLjc3NzQzLCAxLjIyOTY5LCAxLjc5MzgxLCAyLjM1ODY2LCAyLjkyMjg1LCAzLjQ4NjUyIiwgXAotICAgICAgICAgICIwLjIyMjEwNywgMC43ODkzNTYsIDEuMjQxMjQsIDEuODA1NzYsIDIuMzcwNTksIDIuOTM0NTcsIDMuNDk4NDkiLCBcCi0gICAgICAgICAgIjAuMjQwODk3LCAwLjgwODQ1LCAxLjI2MDI2LCAxLjgyNDY5LCAyLjM4OTAxLCAyLjk1MzkzLCAzLjUxNzM1IiwgXAotICAgICAgICAgICIwLjI1NzQzOCwgMC44MjUwMzUsIDEuMjc2ODksIDEuODQxODQsIDIuNDA1NjUsIDIuOTcwMTMsIDMuNTM0MTYiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjkzNTAxLCAxLjM4MTE4LCAyLjI1MTY4LCAzLjMzNTk4LCA0LjQyMTA3LCA1LjUwNzI5LCA2LjU5MjM5IiwgXAotICAgICAgICAgICIwLjI5MzUyMywgMS4zODI1MSwgMi4yNTAwOSwgMy4zMzgsIDQuNDIxMjIsIDUuNTA4OTUsIDYuNTk0OCIsIFwKLSAgICAgICAgICAiMC4yOTM1OTksIDEuMzgxMTEsIDIuMjQ5NzMsIDMuMzM1NzMsIDQuNDIwOTIsIDUuNTA2ODMsIDYuNTkxMTgiLCBcCi0gICAgICAgICAgIjAuMjkzODAxLCAxLjM4MjUsIDIuMjUwMTMsIDMuMzM1MzQsIDQuNDIxMjksIDUuNTA2NDUsIDYuNTk1MzQiLCBcCi0gICAgICAgICAgIjAuMjk0MTQ5LCAxLjM4MTA3LCAyLjI1MjQxLCAzLjMzNTIyLCA0LjQyMTI5LCA1LjUwOTcsIDYuNTk1MyIsIFwKLSAgICAgICAgICAiMC4yOTYxMTcsIDEuMzgwOCwgMi4yNDk3OSwgMy4zMzU0MSwgNC40MjM4LCA1LjUwNjc2LCA2LjU5NTIiLCBcCi0gICAgICAgICAgIjAuMjk5ODc4LCAxLjM4MDc5LCAyLjI0OTUsIDMuMzM1NTksIDQuNDIwNzksIDUuNTA1NDcsIDYuNTkxMSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMzE1MzIsIDAuNTQ1MjM1LCAwLjg3NTg0NCwgMS4yODc5MywgMS43MDA2LCAyLjExMzI3LCAyLjUyNjI4IiwgXAotICAgICAgICAgICIwLjE0MzU3NSwgMC41NTc1MzMsIDAuODg4MDIzLCAxLjMwMDkzLCAxLjcxMzk3LCAyLjEyNjk0LCAyLjUzOTQiLCBcCi0gICAgICAgICAgIjAuMTU4MTc5LCAwLjU3MjE0NywgMC45MDI1MSwgMS4zMTUzMiwgMS43MjkyNiwgMi4xNDE0NywgMi41NTQyMiIsIFwKLSAgICAgICAgICAiMC4xNzIwOTMsIDAuNTg2MTQ4LCAwLjkxNjg0MSwgMS4zMjk4LCAxLjc0MzEsIDIuMTU1OSwgMi41NjgyOCIsIFwKLSAgICAgICAgICAiMC4xODU2MjcsIDAuNTk5OTE0LCAwLjkzMDY4MywgMS4zNDQxNCwgMS43NTU5MywgMi4xNzAwOSwgMi41ODI0NSIsIFwKLSAgICAgICAgICAiMC4yMDcxMDcsIDAuNjIxNzMsIDAuOTUyNTQsIDEuMzY1NjUsIDEuNzc4MjksIDIuMTkxNjgsIDIuNjAzODciLCBcCi0gICAgICAgICAgIjAuMjI1ODk4LCAwLjY0MDQ5MSwgMC45NzExMiwgMS4zODQwNywgMS43OTcyMiwgMi4yMTAxNywgMi42MjMzNSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMDQxNjEsIDAuOTk0NjE5LCAxLjYyNjk2LCAyLjQxNjk5LCAzLjIwNjIxLCAzLjk5NjA5LCA0Ljc4NzA4IiwgXAotICAgICAgICAgICIwLjIwMzkyNCwgMC45OTUwMjUsIDEuNjI2NzUsIDIuNDE3MDMsIDMuMjA4MjgsIDMuOTk3OTksIDQuNzg3NjUiLCBcCi0gICAgICAgICAgIjAuMjA0MDY3LCAwLjk5NDU3LCAxLjYyNjc0LCAyLjQxNjY4LCAzLjIwNzc2LCAzLjk5NzQ0LCA0Ljc4NzczIiwgXAotICAgICAgICAgICIwLjIwNDE1NSwgMC45OTQ4NiwgMS42MjY0OCwgMi40MTcwNCwgMy4yMDc0LCAzLjk5Nzk3LCA0Ljc4NzY1IiwgXAotICAgICAgICAgICIwLjIwNDM4OCwgMC45OTQ2NDEsIDEuNjI2OTUsIDIuNDE3NTUsIDMuMjA2NTQsIDMuOTk4MzYsIDQuNzg4ODQiLCBcCi0gICAgICAgICAgIjAuMjA2OSwgMC45OTQ0NjQsIDEuNjI3MDQsIDIuNDE3MzcsIDMuMjA3MTUsIDMuOTk4LCA0Ljc4Nzc4IiwgXAotICAgICAgICAgICIwLjIxMDQ5MiwgMC45OTQ4NTgsIDEuNjI2NDYsIDIuNDE3MzcsIDMuMjA3MjgsIDMuOTk4MTksIDQuNzg4NzQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTIiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE2MDIzMiwgMC43MjczMjksIDEuMTc5MDEsIDEuNzQ0MTQsIDIuMzA4MDgsIDIuODcyNDYsIDMuNDM2NDkiLCBcCi0gICAgICAgICAgIjAuMTY5NDYzLCAwLjczNjYwNywgMS4xODg3NiwgMS43NTI5MSwgMi4zMTcxMSwgMi44ODIxLCAzLjQ0NTY2IiwgXAotICAgICAgICAgICIwLjE4MTQwNCwgMC43NDg3MjUsIDEuMjAwODksIDEuNzY1MDEsIDIuMzMwMjksIDIuODk0MTgsIDMuNDU3NzQiLCBcCi0gICAgICAgICAgIjAuMTkzNzA0LCAwLjc2MDk0NiwgMS4yMTMwOCwgMS43Nzc5MSwgMi4zNDI2MSwgMi45MDYyOCwgMy40NzAyMiIsIFwKLSAgICAgICAgICAiMC4yMDU1NzksIDAuNzczMTIyLCAxLjIyNDk0LCAxLjc4OTgzLCAyLjM1NDMzLCAyLjkxODYyLCAzLjQ4MjE0IiwgXAotICAgICAgICAgICIwLjIyNDk5LCAwLjc5MjQ2MywgMS4yNDQ1MiwgMS44MDkxMiwgMi4zNzM5MywgMi45MzgwNiwgMy41MDE2MyIsIFwKLSAgICAgICAgICAiMC4yNDIxMzEsIDAuODA5NTIxLCAxLjI2MTY2LCAxLjgyNiwgMi4zOTAyMSwgMi45NTQ4NywgMy41MTg5NiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yOTM2NDEsIDEuMzgxMjEsIDIuMjUyNjEsIDMuMzM1ODYsIDQuNDIzNzMsIDUuNTA3MDUsIDYuNTkyOTUiLCBcCi0gICAgICAgICAgIjAuMjkzNjIzLCAxLjM4MTA2LCAyLjI1MDExLCAzLjMzOCwgNC40MjA3NywgNS41MDY3NCwgNi41OTIwOCIsIFwKLSAgICAgICAgICAiMC4yOTM3MTEsIDEuMzgwNzksIDIuMjUwMTMsIDMuMzM1NDMsIDQuNDIxNjQsIDUuNTA2NzIsIDYuNTkxMzIiLCBcCi0gICAgICAgICAgIjAuMjkzMDYzLCAxLjM4MjAyLCAyLjI0OTQ2LCAzLjMzNzc1LCA0LjQyMTQ3LCA1LjUwNTQ1LCA2LjU5MTUyIiwgXAotICAgICAgICAgICIwLjI5NDY4NCwgMS4zODA4NSwgMi4yNDk1NSwgMy4zMzczOCwgNC40MjEzNiwgNS41MDY2OSwgNi41OTUzOCIsIFwKLSAgICAgICAgICAiMC4yOTk2NzMsIDEuMzgxMDMsIDIuMjQ5NDUsIDMuMzM3OSwgNC40MjE0NSwgNS41MDY2OSwgNi41OTU3NCIsIFwKLSAgICAgICAgICAiMC4zMDYwMDgsIDEuMzgxMDYsIDIuMjUxNjMsIDMuMzM1MDQsIDQuNDIwODYsIDUuNTA3NzEsIDYuNTkzMDgiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTIxOTQ1LCAwLjUzODg3NiwgMC44NzIyMTMsIDEuMjg5NDEsIDEuNzA2MjYsIDIuMTIyNTYsIDIuNTQwMTMiLCBcCi0gICAgICAgICAgIjAuMTM0MjkzLCAwLjU1MTc3OSwgMC44ODU2MTcsIDEuMzAxNjMsIDEuNzE5NDksIDIuMTM1NzIsIDIuNTUzMDIiLCBcCi0gICAgICAgICAgIjAuMTQ4OTQyLCAwLjU2NjUwMywgMC45MDAwNjIsIDEuMzE3NjQsIDEuNzMzNzcsIDIuMTUyMDYsIDIuNTY3OTciLCBcCi0gICAgICAgICAgIjAuMTYyNjQ1LCAwLjU4MDI2MSwgMC45MTM5MDYsIDEuMzMxMDUsIDEuNzQ3NzksIDIuMTY1NDEsIDIuNTgxNTkiLCBcCi0gICAgICAgICAgIjAuMTc2MTQ0LCAwLjU5NDUxNiwgMC45Mjc5NTMsIDEuMzQ1MSwgMS43NjE2NywgMi4xNzkwMiwgMi41OTU4MSIsIFwKLSAgICAgICAgICAiMC4xOTc1OTQsIDAuNjE1Nzg5LCAwLjk0OTc3LCAxLjM2NjgyLCAxLjc4MzQ0LCAyLjIwMDg1LCAyLjYxNzIiLCBcCi0gICAgICAgICAgIjAuMjE2MzUxLCAwLjYzNDgyOCwgMC45NjgzNDUsIDEuMzg1MjUsIDEuODAyNDgsIDIuMjE5NDMsIDIuNjM2NzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTk1NDM5LCAwLjk5NTY1LCAxLjYzODUsIDIuNDQ1MjcsIDMuMjQ0NzksIDQuMDQxNTQsIDQuODMyMDQiLCBcCi0gICAgICAgICAgIjAuMTk1NDM0LCAwLjk5NDI1NiwgMS42MzIwNCwgMi40NDAxOSwgMy4yMzIxNSwgNC4wNDI3LCA0LjgyNjYzIiwgXAotICAgICAgICAgICIwLjE5NDY4NCwgMC45OTMyNDksIDEuNjQxNjUsIDIuNDMyODMsIDMuMjQ0NjksIDQuMDI5NDksIDQuODMwNTIiLCBcCi0gICAgICAgICAgIjAuMTk1MzEyLCAwLjk5NzA5OCwgMS42NDAyMiwgMi40MzA2NiwgMy4yNDQ2OSwgNC4wMzA2NywgNC44MzQ3OCIsIFwKLSAgICAgICAgICAiMC4xOTU4MTcsIDAuOTk0MTAyLCAxLjYzMjA3LCAyLjQzNjE2LCAzLjI0NDcyLCA0LjAzNzI2LCA0LjgzMTIxIiwgXAotICAgICAgICAgICIwLjE5ODU5NywgMC45OTg0MjcsIDEuNjMxNjEsIDIuNDMwMDksIDMuMjM3NzQsIDQuMDI2NjksIDQuODM0NzUiLCBcCi0gICAgICAgICAgIjAuMjAyMTk2LCAwLjk5MzYyNCwgMS42NDA1MSwgMi40NDAzLCAzLjI0NDc4LCA0LjAzMjc3LCA0LjgyNTU1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDc4NjIsIDAuMjI3OTgyLCAwLjM3MjA5MSwgMC41NTIxNjEsIDAuNzMyMDUsIDAuOTEyMTYxLCAxLjA5MjQ0IiwgXAotICAgICAgICAgICIwLjA1OTQ3NSwgMC4yMzk3NjcsIDAuMzgzNzYzLCAwLjU2MzY5NywgMC43NDM3MjMsIDAuOTIzNzYsIDEuMTAzNzUiLCBcCi0gICAgICAgICAgIjAuMDc0MzIyLCAwLjI1NDEzMywgMC4zOTYxMzcsIDAuNTc2MDcxLCAwLjc1NjA5NiwgMC45MzYzMjQsIDEuMTE2MDEiLCBcCi0gICAgICAgICAgIjAuMDg5MTY2LCAwLjI2ODY5LCAwLjQxMjcxOCwgMC41OTI0OTIsIDAuNzcyODQsIDAuOTUyNTkzLCAxLjEzMjUzIiwgXAotICAgICAgICAgICIwLjEwNDEwNiwgMC4yODM0MzQsIDAuNDI3MTg2LCAwLjYwNDkyMiwgMC43ODQ5MTksIDAuOTY1MDM5LCAxLjE0NTA2IiwgXAotICAgICAgICAgICIwLjEyNjkzNiwgMC4zMDcwNjksIDAuNDUwNDgyLCAwLjYzMDMxMiwgMC44MDcwMjQsIDAuOTg2OTc5LCAxLjE2NzMyIiwgXAotICAgICAgICAgICIwLjE0NTA3MywgMC4zMjc2ODEsIDAuNDcxMjU0LCAwLjY1MDgsIDAuODI2Nzk0LCAxLjAwNjgyLCAxLjE4Njc1Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExMDExMywgMC40NzM1NjgsIDAuNzY1MzIxLCAxLjEzMDI5LCAxLjQ5NTM1LCAxLjg2MDE0LCAyLjIyNTczIiwgXAotICAgICAgICAgICIwLjExMDE0LCAwLjQ3MzU5LCAwLjc2NTMxNiwgMS4xMzAwMywgMS40OTUzMiwgMS44NjAxOSwgMi4yMjU2MSIsIFwKLSAgICAgICAgICAiMC4xMTI4ODQsIDAuNDczNTc1LCAwLjc2NTE4NiwgMS4xMzAwNSwgMS40OTUwNywgMS44NjA2OCwgMi4yMjU3NiIsIFwKLSAgICAgICAgICAiMC4xMTgyODQsIDAuNDczNTcyLCAwLjc2NTI3NSwgMS4xMjk5NywgMS40OTQ5OSwgMS44NjAxMywgMi4yMjU3MiIsIFwKLSAgICAgICAgICAiMC4xMjQ5ODMsIDAuNDczNTk0LCAwLjc2NTI3MiwgMS4xMzAyNSwgMS40OTQ5OSwgMS44NjA0NSwgMi4yMjUzNCIsIFwKLSAgICAgICAgICAiMC4xMzc4MDIsIDAuNDc0OTE5LCAwLjc2NTIwOCwgMS4xMjk5OSwgMS40OTQ5OSwgMS44NjA0OSwgMi4yMjUzMiIsIFwKLSAgICAgICAgICAiMC4xNTAyMjMsIDAuNDc4MTg2LCAwLjc2NTI4MiwgMS4xMzAyLCAxLjQ5NDk2LCAxLjg2MDQ4LCAyLjIyNTM0Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEyNDM2NiwgMC41Mzc0MSwgMC44NjYwMzMsIDEuMjc2NzQsIDEuNjkwMjcsIDIuMTA3OSwgMi41MjQwMiIsIFwKLSAgICAgICAgICAiMC4xMzQ3NjgsIDAuNTQ4MDk0LCAwLjg3NjgyMSwgMS4yODcwNSwgMS43MDAzMiwgMi4xMTcyOSwgMi41MzM3NCIsIFwKLSAgICAgICAgICAiMC4xNDc4MTEsIDAuNTYxMjg1LCAwLjg4OTkyMiwgMS4zMDA2NCwgMS43MTQ3OCwgMi4xMzA1NCwgMi41NDc5IiwgXAotICAgICAgICAgICIwLjE2MDgyLCAwLjU3NDQ2OSwgMC45MDMyMSwgMS4zMTQwNywgMS43Mjc1OCwgMi4xNDQ3NSwgMi41NjA1NSIsIFwKLSAgICAgICAgICAiMC4xNzQ4ODcsIDAuNTg4NTczLCAwLjkxNzIyNiwgMS4zMjc3MywgMS43NDE0NiwgMi4xNTkxNSwgMi41NzU3MSIsIFwKLSAgICAgICAgICAiMC4xOTYxODksIDAuNjA4ODg2LCAwLjkzNzcxNCwgMS4zNDgzNCwgMS43NjE1NywgMi4xNzkzOSwgMi41OTU5OCIsIFwKLSAgICAgICAgICAiMC4yMTU0NDQsIDAuNjI3NTU0LCAwLjk1NjUwOSwgMS4zNjcwMiwgMS43ODEwMiwgMi4xOTc1MywgMi42MTUwNyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMTI4NzIsIDAuOTk4ODY3LCAxLjYzODI2LCAyLjQ0NTU1LCAzLjI0NDczLCA0LjAzMTUsIDQuODM1MDMiLCBcCi0gICAgICAgICAgIjAuMjEyNzYzLCAwLjk5ODc3MSwgMS42Mzg0MiwgMi40NDAxNiwgMy4yNDE0OCwgNC4wNDEzNCwgNC44MzM4MiIsIFwKLSAgICAgICAgICAiMC4yMTI5NjYsIDAuOTk4NDYxLCAxLjYzODQ3LCAyLjQzNDc5LCAzLjIyODAxLCA0LjA0MjEyLCA0LjgzMTc0IiwgXAotICAgICAgICAgICIwLjIxMjcxOCwgMC45OTg4NiwgMS42MzE3NywgMi40MzA3MywgMy4yMzMzNSwgNC4wMjc0OCwgNC44MzQxMiIsIFwKLSAgICAgICAgICAiMC4yMTQ1OTYsIDAuOTk4ODE4LCAxLjYzNDksIDIuNDM0NjQsIDMuMjQ0NTEsIDQuMDM0MTQsIDQuODI2MjUiLCBcCi0gICAgICAgICAgIjAuMjIwNzQ2LCAwLjk5ODk1MiwgMS42NDA0NSwgMi40NDA0NiwgMy4yNDIxOCwgNC4wMzc4NCwgNC44MzQ5NCIsIFwKLSAgICAgICAgICAiMC4yMjc3MTUsIDAuOTk4ODc1LCAxLjY0MDMsIDIuNDQzMzIsIDMuMjI5MTIsIDQuMDQwOTEsIDQuODI1NTEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0OTg1LCAwLjAwNDk4MiwgMC4wMDQ5OCwgMC4wMDQ5NzIsIDAuMDA0OTY2LCAwLjAwNDk2NywgMC4wMDQ5NjIiLCBcCi0gICAgICAgICAgIjAuMDA0OTY1LCAwLjAwNDk2NSwgMC4wMDQ5NjMsIDAuMDA0OTYsIDAuMDA0OTU2LCAwLjAwNDk1MSwgMC4wMDQ5NDciLCBcCi0gICAgICAgICAgIjAuMDA0OTU2LCAwLjAwNDk2MiwgMC4wMDQ5NiwgMC4wMDQ5NTcsIDAuMDA0OTU1LCAwLjAwNDk1MywgMC4wMDQ5NDMiLCBcCi0gICAgICAgICAgIjAuMDA0OTQ5LCAwLjAwNDk1NywgMC4wMDQ5NTcsIDAuMDA0OTUzLCAwLjAwNDk1MSwgMC4wMDQ5NDYsIDAuMDA0OTQzIiwgXAotICAgICAgICAgICIwLjAwNDk0NSwgMC4wMDQ5NTYsIDAuMDA0OTU2LCAwLjAwNDk1MiwgMC4wMDQ5NSwgMC4wMDQ5NDgsIDAuMDA0OTQyIiwgXAotICAgICAgICAgICIwLjAwNDkzNywgMC4wMDQ5NTIsIDAuMDA0OTUyLCAwLjAwNDk1MiwgMC4wMDQ5NDcsIDAuMDA0OTQ2LCAwLjAwNDk0MiIsIFwKLSAgICAgICAgICAiMC4wMDQ5MzMsIDAuMDA0OTUsIDAuMDA0OTUyLCAwLjAwNDk1MiwgMC4wMDQ5NDcsIDAuMDA0OTQ0LCAwLjAwNDkzOSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTkxMywgMC4wMDE5MTIsIDAuMDAxOTEyLCAwLjAwMTkxLCAwLjAwMTkwOCwgMC4wMDE5MDcsIDAuMDAxOTA3IiwgXAotICAgICAgICAgICIwLjAwMTg3MywgMC4wMDE4NzUsIDAuMDAxODc0LCAwLjAwMTg3MSwgMC4wMDE4NzIsIDAuMDAxODcxLCAwLjAwMTg2NiIsIFwKLSAgICAgICAgICAiMC4wMDE4NTcsIDAuMDAxODYyLCAwLjAwMTg2MywgMC4wMDE4NjIsIDAuMDAxODYsIDAuMDAxODYxLCAwLjAwMTg1OCIsIFwKLSAgICAgICAgICAiMC4wMDE4NDksIDAuMDAxODU4LCAwLjAwMTg1OCwgMC4wMDE4NTcsIDAuMDAxODU3LCAwLjAwMTg1NiwgMC4wMDE4NTYiLCBcCi0gICAgICAgICAgIjAuMDAxODQsIDAuMDAxODU0LCAwLjAwMTg1NCwgMC4wMDE4NTUsIDAuMDAxODU0LCAwLjAwMTg1MywgMC4wMDE4NTIiLCBcCi0gICAgICAgICAgIjAuMDAxODMxLCAwLjAwMTg1LCAwLjAwMTg1MiwgMC4wMDE4NTMsIDAuMDAxODUyLCAwLjAwMTg1MSwgMC4wMDE4NTEiLCBcCi0gICAgICAgICAgIjAuMDAxODI1LCAwLjAwMTg0NywgMC4wMDE4NSwgMC4wMDE4NTEsIDAuMDAxODUsIDAuMDAxODUsIDAuMDAxODQ4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDQ5NCwgMC4wMDQ0OTEsIDAuMDA0NDg5LCAwLjAwNDQ4NCwgMC4wMDQ0ODEsIDAuMDA0NDc4LCAwLjAwNDQ3MiIsIFwKLSAgICAgICAgICAiMC4wMDQ0NzQsIDAuMDA0NDc2LCAwLjAwNDQ3NCwgMC4wMDQ0NjgsIDAuMDA0NDYzLCAwLjAwNDQ2LCAwLjAwNDQ1OCIsIFwKLSAgICAgICAgICAiMC4wMDQ0NjYsIDAuMDA0NDcsIDAuMDA0NDY3LCAwLjAwNDQ2NiwgMC4wMDQ0NjMsIDAuMDA0NDU2LCAwLjAwNDQ1MiIsIFwKLSAgICAgICAgICAiMC4wMDQ0NTksIDAuMDA0NDY2LCAwLjAwNDQ2NywgMC4wMDQ0NjQsIDAuMDA0NDU4LCAwLjAwNDQ1NSwgMC4wMDQ0NTIiLCBcCi0gICAgICAgICAgIjAuMDA0NDU0LCAwLjAwNDQ2NSwgMC4wMDQ0NjMsIDAuMDA0NDYyLCAwLjAwNDQ1NywgMC4wMDQ0NTYsIDAuMDA0NDUxIiwgXAotICAgICAgICAgICIwLjAwNDQ0NiwgMC4wMDQ0NjEsIDAuMDA0NDYsIDAuMDA0NDYsIDAuMDA0NDU4LCAwLjAwNDQ1MywgMC4wMDQ0NTEiLCBcCi0gICAgICAgICAgIjAuMDA0NDQyLCAwLjAwNDQ2LCAwLjAwNDQ1OSwgMC4wMDQ0NTgsIDAuMDA0NDU3LCAwLjAwNDQ1MiwgMC4wMDQ0NSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTMxOSwgMC4wMDEzMTgsIDAuMDAxMzIyLCAwLjAwMTMxOCwgMC4wMDEzMTgsIDAuMDAxMzE3LCAwLjAwMTMxNiIsIFwKLSAgICAgICAgICAiMC4wMDEzMDcsIDAuMDAxMzE2LCAwLjAwMTMxNywgMC4wMDEzMTQsIDAuMDAxMzE2LCAwLjAwMTMxNiwgMC4wMDEzMTkiLCBcCi0gICAgICAgICAgIjAuMDAxMjkxLCAwLjAwMTMxMiwgMC4wMDEzMTQsIDAuMDAxMzE0LCAwLjAwMTMxNCwgMC4wMDEzMTYsIDAuMDAxMzEzIiwgXAotICAgICAgICAgICIwLjAwMTI3OCwgMC4wMDEzMDksIDAuMDAxMzEyLCAwLjAwMTMxMywgMC4wMDEzMTMsIDAuMDAxMzE0LCAwLjAwMTMxNCIsIFwKLSAgICAgICAgICAiMC4wMDEyNjQsIDAuMDAxMzA1LCAwLjAwMTMwOSwgMC4wMDEzMTEsIDAuMDAxMzEyLCAwLjAwMTMxMywgMC4wMDEzMTIiLCBcCi0gICAgICAgICAgIjAuMDAxMjQ2LCAwLjAwMTI5OSwgMC4wMDEzMDUsIDAuMDAxMzA5LCAwLjAwMTMxLCAwLjAwMTMxMSwgMC4wMDEzMTEiLCBcCi0gICAgICAgICAgIjAuMDAxMjM0LCAwLjAwMTI5MywgMC4wMDEzMDEsIDAuMDAxMzA2LCAwLjAwMTMwOCwgMC4wMDEzMDksIDAuMDAxMzA5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTIiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzk4LCAwLjAwMzk3NywgMC4wMDM5NzUsIDAuMDAzOTcxLCAwLjAwMzk2NywgMC4wMDM5NjQsIDAuMDAzOTYiLCBcCi0gICAgICAgICAgIjAuMDAzOTU2LCAwLjAwMzk1OSwgMC4wMDM5NTcsIDAuMDAzOTU0LCAwLjAwMzk1MiwgMC4wMDM5NDgsIDAuMDAzOTQyIiwgXAotICAgICAgICAgICIwLjAwMzkzOCwgMC4wMDM5NTIsIDAuMDAzOTUxLCAwLjAwMzk0OCwgMC4wMDM5NDYsIDAuMDAzOTQxLCAwLjAwMzkzOCIsIFwKLSAgICAgICAgICAiMC4wMDM5MjgsIDAuMDAzOTQ4LCAwLjAwMzk0NywgMC4wMDM5NDcsIDAuMDAzOTQ1LCAwLjAwMzkzOCwgMC4wMDM5MzciLCBcCi0gICAgICAgICAgIjAuMDAzOTE5LCAwLjAwMzk0NCwgMC4wMDM5NDQsIDAuMDAzOTQ0LCAwLjAwMzkzOSwgMC4wMDM5MzgsIDAuMDAzOTM1IiwgXAotICAgICAgICAgICIwLjAwMzkwOSwgMC4wMDM5MzksIDAuMDAzOTQyLCAwLjAwMzk0MSwgMC4wMDM5MzksIDAuMDAzOTM1LCAwLjAwMzkzMiIsIFwKLSAgICAgICAgICAiMC4wMDM5MDEsIDAuMDAzOTM1LCAwLjAwMzkzOCwgMC4wMDM5MzksIDAuMDAzOTM3LCAwLjAwMzkzNCwgMC4wMDM5MyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDYxOSwgMC4wMDA2MjUsIDAuMDAwNjI2LCAwLjAwMDYyNiwgMC4wMDA2MjYsIDAuMDAwNjI2LCAwLjAwMDYyNiIsIFwKLSAgICAgICAgICAiMC4wMDA2MzIsIDAuMDAwNjU4LCAwLjAwMDY2MSwgMC4wMDA2NjIsIDAuMDAwNjYzLCAwLjAwMDY2NCwgMC4wMDA2NjQiLCBcCi0gICAgICAgICAgIjAuMDAwNjE3LCAwLjAwMDY2MiwgMC4wMDA2NjgsIDAuMDAwNjcsIDAuMDAwNjcyLCAwLjAwMDY3MiwgMC4wMDA2NzMiLCBcCi0gICAgICAgICAgIjAuMDAwNTk5LCAwLjAwMDY2LCAwLjAwMDY2OCwgMC4wMDA2NzIsIDAuMDAwNjc0LCAwLjAwMDY3NSwgMC4wMDA2NzYiLCBcCi0gICAgICAgICAgIjAuMDAwNTgxLCAwLjAwMDY1NiwgMC4wMDA2NjYsIDAuMDAwNjcsIDAuMDAwNjczLCAwLjAwMDY3NSwgMC4wMDA2NzYiLCBcCi0gICAgICAgICAgIjAuMDAwNTU1LCAwLjAwMDY0OCwgMC4wMDA2NjEsIDAuMDAwNjY4LCAwLjAwMDY3MSwgMC4wMDA2NzMsIDAuMDAwNjc1IiwgXAotICAgICAgICAgICIwLjAwMDUzNywgMC4wMDA2NCwgMC4wMDA2NTYsIDAuMDAwNjY1LCAwLjAwMDY2OSwgMC4wMDA2NzIsIDAuMDAwNjc0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzEzOSwgMC4wMDMxNDQsIDAuMDAzMTQ1LCAwLjAwMzE0NSwgMC4wMDMxNDUsIDAuMDAzMTQ1LCAwLjAwMzE0NSIsIFwKLSAgICAgICAgICAiMC4wMDMxMzMsIDAuMDAzMTU1LCAwLjAwMzE1NywgMC4wMDMxNTgsIDAuMDAzMTU5LCAwLjAwMzE1OSwgMC4wMDMxNiIsIFwKLSAgICAgICAgICAiMC4wMDMxMTYsIDAuMDAzMTU0LCAwLjAwMzE1OCwgMC4wMDMxNTgsIDAuMDAzMTYzLCAwLjAwMzE1OSwgMC4wMDMxNjMiLCBcCi0gICAgICAgICAgIjAuMDAzMSwgMC4wMDMxNDksIDAuMDAzMTU1LCAwLjAwMzE1OSwgMC4wMDMxNiwgMC4wMDMxNjEsIDAuMDAzMTYyIiwgXAotICAgICAgICAgICIwLjAwMzA4OSwgMC4wMDMxNDYsIDAuMDAzMTUzLCAwLjAwMzE1OCwgMC4wMDMxNjEsIDAuMDAzMTYzLCAwLjAwMzE2MyIsIFwKLSAgICAgICAgICAiMC4wMDMwNzQsIDAuMDAzMTQsIDAuMDAzMTUsIDAuMDAzMTU1LCAwLjAwMzE1OCwgMC4wMDMxNiwgMC4wMDMxNjEiLCBcCi0gICAgICAgICAgIjAuMDAzMDY1LCAwLjAwMzEzNSwgMC4wMDMxNDYsIDAuMDAzMTU0LCAwLjAwMzE1NywgMC4wMDMxNTksIDAuMDAzMTYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDE5MzksIDAuMDAxOTQ1LCAwLjAwMTk0NSwgMC4wMDE5NDQsIDAuMDAxOTQ0LCAwLjAwMTk0MywgMC4wMDE5NDUiLCBcCi0gICAgICAgICAgIjAuMDAxOTExLCAwLjAwMTkzOSwgMC4wMDE5NDEsIDAuMDAxOTQzLCAwLjAwMTk0MywgMC4wMDE5NDIsIDAuMDAxOTQzIiwgXAotICAgICAgICAgICIwLjAwMTg4NSwgMC4wMDE5MywgMC4wMDE5MzYsIDAuMDAxOTM3LCAwLjAwMTkzOSwgMC4wMDE5NCwgMC4wMDE5MzkiLCBcCi0gICAgICAgICAgIjAuMDAxODY5LCAwLjAwMTkyMiwgMC4wMDE5MzEsIDAuMDAxOTM0LCAwLjAwMTkzNiwgMC4wMDE5MzYsIDAuMDAxOTM4IiwgXAotICAgICAgICAgICIwLjAwMTg1NSwgMC4wMDE5MTYsIDAuMDAxOTI3LCAwLjAwMTkzMSwgMC4wMDE5MzMsIDAuMDAxOTM1LCAwLjAwMTkzNSIsIFwKLSAgICAgICAgICAiMC4wMDE4MzksIDAuMDAxOTA2LCAwLjAwMTkxOSwgMC4wMDE5MjUsIDAuMDAxOTI5LCAwLjAwMTkzMSwgMC4wMDE5MzIiLCBcCi0gICAgICAgICAgIjAuMDAxODMsIDAuMDAxODk3LCAwLjAwMTkxMywgMC4wMDE5MjEsIDAuMDAxOTI2LCAwLjAwMTkyOCwgMC4wMDE5MjkiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBPQUkzMlgyICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKE9BSTMyWDIpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4yMzk4NzM7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE3NjEwNzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE3NTMxOTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE3NjEwNzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA2MTIsIDAuMDAwNjExLCAwLjAwMDYxMSwgMC4wMDA2MTEsIDAuMDAwNjExLCAwLjAwMDYxMSwgMC4wMDA2MTEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA2MTQsIDAuMDAwNjE0LCAwLjAwMDYxNCwgMC4wMDA2MTQsIDAuMDAwNjE1LCAwLjAwMDYxNSwgMC4wMDA2MTUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEExKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE2MjEyOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTYxNjI7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNjIxMjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA2MTIsIDAuMDAwNjEyLCAwLjAwMDYxMiwgMC4wMDA2MTIsIDAuMDAwNjEyLCAwLjAwMDYxMiwgMC4wMDA2MTEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA2MTMsIDAuMDAwNjE0LCAwLjAwMDYxNCwgMC4wMDA2MTQsIDAuMDAwNjE0LCAwLjAwMDYxNCwgMC4wMDA2MTQiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEEyKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE0ODgzOTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE0ODgzOTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE0ODIyNTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA2MTIsIDAuMDAwNjEzLCAwLjAwMDYxMiwgMC4wMDA2MTIsIDAuMDAwNjEyLCAwLjAwMDYxMiwgMC4wMDA2MTIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA2MTQsIDAuMDAwNjEzLCAwLjAwMDYxNCwgMC4wMDA2MTMsIDAuMDAwNjEzLCAwLjAwMDYxNCwgMC4wMDA2MTQiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE2NjM1MzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE2NTA4ODsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE2NjM1MzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDExMTgsIDAuMDAxMTIsIDAuMDAxMTE5LCAwLjAwMTEyMSwgMC4wMDExMTksIDAuMDAxMTIsIDAuMDAxMTE5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNjk1LCAwLjAwMDY5NiwgMC4wMDA2OTYsIDAuMDAwNjk2LCAwLjAwMDY5NiwgMC4wMDA2OTYsIDAuMDAwNjk2Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCMSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNTIzNjM7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNTIzNTY7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNTIzNjM7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxMTIsIDAuMDAxMTIsIDAuMDAxMTIsIDAuMDAxMTIsIDAuMDAxMTE5LCAwLjAwMTExOCwgMC4wMDExMTkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA2OTUsIDAuMDAwNjk1LCAwLjAwMDY5NSwgMC4wMDA2OTUsIDAuMDAwNjk1LCAwLjAwMDY5NiwgMC4wMDA2OTYiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4wOTkxNTgzOwotICAgIGZ1bmN0aW9uIDogIighKChCMCtCMSkgKChBMCtBMSkrQTIpKSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xOTUyNTIsIDAuNzYyMjEzLCAxLjIxNDEyLCAxLjc3ODg1LCAyLjM0MjY3LCAyLjkwNjk2LCAzLjQ3MDg0IiwgXAotICAgICAgICAgICIwLjIwNjYyMSwgMC43NzM2MjQsIDEuMjI1NDEsIDEuNzkwMjMsIDIuMzU0NzYsIDIuOTE4NDYsIDMuNDgyMzUiLCBcCi0gICAgICAgICAgIjAuMjE5MzY1LCAwLjc4NjU2LCAxLjIzODMxLCAxLjgwMzE1LCAyLjM2NzY4LCAyLjkzMTM5LCAzLjQ5NTI5IiwgXAotICAgICAgICAgICIwLjIzMTIyMSwgMC43OTg0NjYsIDEuMjUwMjksIDEuODE1MTcsIDIuMzc5ODcsIDIuOTQzNTgsIDMuNTA2OTkiLCBcCi0gICAgICAgICAgIjAuMjQyNTMyLCAwLjgwOTgxMiwgMS4yNjIwOCwgMS44MjYwNCwgMi4zOTA3NywgMi45NTQ4NywgMy41MTgzNiIsIFwKLSAgICAgICAgICAiMC4yNTk4NTYsIDAuODI3MzgsIDEuMjc5MjEsIDEuODQ0MDIsIDIuNDA4NDksIDIuOTcyNTEsIDMuNTM2MTgiLCBcCi0gICAgICAgICAgIjAuMjc0NzE3LCAwLjg0MjMwMiwgMS4yOTQyMSwgMS44NTg2MSwgMi40MjM4MywgMi45ODY4MywgMy41NTA5NCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMzQ3NTcsIDEuNDE4NzksIDIuMjg2MzIsIDMuMzY5ODgsIDQuNDUzODYsIDUuNTM3NTgsIDYuNjE5OTUiLCBcCi0gICAgICAgICAgIjAuMzM0ODAzLCAxLjQxODgyLCAyLjI4NjI3LCAzLjM3LCA0LjQ1MzY1LCA1LjUzNjk3LCA2LjYyMDY5IiwgXAotICAgICAgICAgICIwLjMzNDc4OCwgMS40MTg3OSwgMi4yODU4NCwgMy4zNywgNC40NTM2NSwgNS41MzY5NywgNi42MjA2NCIsIFwKLSAgICAgICAgICAiMC4zMzQ3NjksIDEuNDE5MDMsIDIuMjg2MDgsIDMuMzcwMjUsIDQuNDUzOSwgNS41MzcyNCwgNi42MTk4NSIsIFwKLSAgICAgICAgICAiMC4zMzQ3OTMsIDEuNDE5MDMsIDIuMjg2MDYsIDMuMzcwMTEsIDQuNDUzNzcsIDUuNTM2OTYsIDYuNjIwMzIiLCBcCi0gICAgICAgICAgIjAuMzM1ODY3LCAxLjQxODk5LCAyLjI4NjMsIDMuMzY5ODgsIDQuNDU0NCwgNS41MzY4LCA2LjYxOTk4IiwgXAotICAgICAgICAgICIwLjMzNzcyMiwgMS40MTg4MSwgMi4yODYyNiwgMy4zNzAyNSwgNC40NTMxMywgNS41Mzc0MiwgNi42MjA5NCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNTY1NSwgMC41NzAwNTEsIDAuODk4ODQ1LCAxLjMxMzIyLCAxLjcyODM5LCAyLjE0NDM1LCAyLjU1OTEyIiwgXAotICAgICAgICAgICIwLjE2ODIyOSwgMC41ODE2MDYsIDAuOTEwNTEsIDEuMzI0ODIsIDEuNzQwNjcsIDIuMTU1MzMsIDIuNTcxODUiLCBcCi0gICAgICAgICAgIjAuMTgyOTg3LCAwLjU5NjUzMywgMC45MjUzMSwgMS4zMzk5NSwgMS43NTQ5NiwgMi4xNzA3NywgMi41ODYyNiIsIFwKLSAgICAgICAgICAiMC4xOTcyMzIsIDAuNjEwODc3LCAwLjkzOTY2NSwgMS4zNTM5NCwgMS43NjkyMSwgMi4xODUyNywgMi42MDAzMyIsIFwKLSAgICAgICAgICAiMC4yMTExNzMsIDAuNjI0NzQ4LCAwLjk1MzUxNywgMS4zNjc4NCwgMS43ODI5NywgMi4xOTgyNSwgMi42MTQzNCIsIFwKLSAgICAgICAgICAiMC4yMzI5NSwgMC42NDY3MDMsIDAuOTc1MzQ5LCAxLjM5MDI4LCAxLjgwNTY0LCAyLjIyMTE5LCAyLjYzNTU5IiwgXAotICAgICAgICAgICIwLjI1MTgxLCAwLjY2NTUyOSwgMC45OTQyNjgsIDEuNDA4ODIsIDEuODI0NDgsIDIuMjM5ODYsIDIuNjU1NSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMzEyMDIsIDEuMDE4MjIsIDEuNjU0MDUsIDIuNDQ3NzgsIDMuMjQxMDUsIDQuMDM1MDgsIDQuODI5NDUiLCBcCi0gICAgICAgICAgIjAuMjMxMjM2LCAxLjAxODEzLCAxLjY1MzA4LCAyLjQ0NjkyLCAzLjI0MDQyLCA0LjAzNDQ4LCA0LjgyODgyIiwgXAotICAgICAgICAgICIwLjIzMTE4NCwgMS4wMTg1LCAxLjY1Mzc2LCAyLjQ0Nzk3LCAzLjI0MTU0LCA0LjAzMzkxLCA0LjgyNzQyIiwgXAotICAgICAgICAgICIwLjIzMTE4NiwgMS4wMTg1MiwgMS42NTMyMywgMi40NDcxNywgMy4yNDA4NCwgNC4wMzQ5NSwgNC44MjczNSIsIFwKLSAgICAgICAgICAiMC4yMzEyNjUsIDEuMDE4MDQsIDEuNjUzMzIsIDIuNDQ3NzUsIDMuMjQxNCwgNC4wMzQ0NSwgNC44Mjc0NiIsIFwKLSAgICAgICAgICAiMC4yMzIyMDUsIDEuMDE4MTIsIDEuNjUzOSwgMi40NDc1MywgMy4yNDE4MywgNC4wMzQ5NywgNC44Mjc1NyIsIFwKLSAgICAgICAgICAiMC4yMzQ2OTQsIDEuMDE4MDcsIDEuNjUzMTYsIDIuNDQ3ODYsIDMuMjQxMjYsIDQuMDM2MDUsIDQuODI3NzQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE4ODc2NSwgMC43NTU3MDYsIDEuMjA3NSwgMS43NzIyMiwgMi4zMzcxNSwgMi45MDA4MSwgMy40NjQ0NyIsIFwKLSAgICAgICAgICAiMC4xOTkxNjgsIDAuNzY2Mjc5LCAxLjIxNzg3LCAxLjc4MzEzLCAyLjM0NjY1LCAyLjkxMDk0LCAzLjQ3NDczIiwgXAotICAgICAgICAgICIwLjIxMTYxNSwgMC43Nzg3NTUsIDEuMjMwNSwgMS43OTUzNCwgMi4zNTk3NywgMi45MjM1OSwgMy40ODc0OCIsIFwKLSAgICAgICAgICAiMC4yMjM2NjgsIDAuNzkxMDYzLCAxLjI0Mjc1LCAxLjgwNzksIDIuMzcxOSwgMi45MzU0OSwgMy40OTk0NCIsIFwKLSAgICAgICAgICAiMC4yMzU0NzYsIDAuODAzMDA2LCAxLjI1NTA0LCAxLjgxOTA0LCAyLjM4NDEyLCAyLjk0NzUxLCAzLjUxMTQ1IiwgXAotICAgICAgICAgICIwLjI1NDMyMiwgMC44MjIwMzQsIDEuMjc0MDksIDEuODM4NDMsIDIuNDAzMjksIDIuOTY2NDUsIDMuNTMwNDgiLCBcCi0gICAgICAgICAgIjAuMjcwNzM5LCAwLjgzODYyLCAxLjI5MDQsIDEuODU0ODQsIDIuNDE5NzMsIDIuOTgzMjIsIDMuNTQ3MzIiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzM0NzczLCAxLjQxODc4LCAyLjI4NiwgMy4zNzAzNiwgNC40NTM4NiwgNS41MzY4NiwgNi42MTk5NiIsIFwKLSAgICAgICAgICAiMC4zMzQ3NzQsIDEuNDE5MDMsIDIuMjg2MjEsIDMuMzY5ODYsIDQuNDUzNTgsIDUuNTM3MzYsIDYuNjE5NjIiLCBcCi0gICAgICAgICAgIjAuMzM0ODA0LCAxLjQxODc5LCAyLjI4NjAyLCAzLjM2OTk4LCA0LjQ1MzU4LCA1LjUzNTc4LCA2LjYyMDczIiwgXAotICAgICAgICAgICIwLjMzNDczOSwgMS40MTkyMiwgMi4yODYyNywgMy4zNzAxMSwgNC40NTM4NCwgNS41MzY0MywgNi42MjEwMyIsIFwKLSAgICAgICAgICAiMC4zMzQ5MzcsIDEuNDE5MzIsIDIuMjg2MzksIDMuMzcwMSwgNC40NTM2OSwgNS41MzY3OCwgNi42MjA4OSIsIFwKLSAgICAgICAgICAiMC4zMzY5MTYsIDEuNDE4ODEsIDIuMjg2MDgsIDMuMzY5OCwgNC40NTMxNSwgNS41MzY0NywgNi42MTkyMiIsIFwKLSAgICAgICAgICAiMC4zMzk5OCwgMS40MTg5LCAyLjI4NjMyLCAzLjM3MDMsIDQuNDUzODIsIDUuNTM2ODcsIDYuNjIwNCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNDg1NDcsIDAuNTYyODMxLCAwLjg5MzUyNSwgMS4zMDYxNiwgMS43MTkzMywgMi4xMzI1NCwgMi41NDgwOCIsIFwKLSAgICAgICAgICAiMC4xNjA2MjQsIDAuNTc1MDY2LCAwLjkwNTM5MSwgMS4zMTg3MywgMS43MzEwNywgMi4xNDU0NywgMi41NjA0OCIsIFwKLSAgICAgICAgICAiMC4xNzU0MjcsIDAuNTkwMTg0LCAwLjkyMDc3LCAxLjMzMzgsIDEuNzQ2MjUsIDIuMTU5ODEsIDIuNTc1NDYiLCBcCi0gICAgICAgICAgIjAuMTg5NjQ3LCAwLjYwNDIxOCwgMC45MzQ3NzYsIDEuMzQ3NzQsIDEuNzYwOTMsIDIuMTc1MTEsIDIuNTg5OTQiLCBcCi0gICAgICAgICAgIjAuMjAzMzQ1LCAwLjYxODEzOSwgMC45NDg3OTUsIDEuMzYxOSwgMS43NzQxMiwgMi4xODkwNCwgMi42MDM0MyIsIFwKLSAgICAgICAgICAiMC4yMjQ5ODUsIDAuNjQwMDEsIDAuOTcwNDA0LCAxLjM4MzU5LCAxLjc5NjUyLCAyLjIxMDE0LCAyLjYyNDc5IiwgXAotICAgICAgICAgICIwLjI0Mzc2OCwgMC42NTg4MzgsIDAuOTg5NDY0LCAxLjQwMjE4LCAxLjgxNTQ2LCAyLjIyOTExLCAyLjY0NDQyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIyMjM5NCwgMS4wMTIyOSwgMS42NDMxOCwgMi40MzU3MywgMy4yMzAzMywgNC4wMjUxOCwgNC44MTYwNyIsIFwKLSAgICAgICAgICAiMC4yMjI0MjYsIDEuMDEyMDUsIDEuNjQyOTcsIDIuNDM2MjMsIDMuMjMwMTMsIDQuMDI0NTcsIDQuODE4MDEiLCBcCi0gICAgICAgICAgIjAuMjIyMzk1LCAxLjAxMTkyLCAxLjY0MzI3LCAyLjQzNjIzLCAzLjIyOTkzLCA0LjAyMzU1LCA0LjgyMDEiLCBcCi0gICAgICAgICAgIjAuMjIyMzk4LCAxLjAxMTY3LCAxLjY0Mjc0LCAyLjQzNTg3LCAzLjIyOTcsIDQuMDI0OCwgNC44MTkwMyIsIFwKLSAgICAgICAgICAiMC4yMjIxOTksIDEuMDEyMDYsIDEuNjQyOCwgMi40MzYyNiwgMy4yMzA2OSwgNC4wMjQzOSwgNC44MTc4OSIsIFwKLSAgICAgICAgICAiMC4yMjM5NTEsIDEuMDEyMDgsIDEuNjQyOTksIDIuNDM2MDEsIDMuMjMxMTksIDQuMDI0MjYsIDQuODE3NzkiLCBcCi0gICAgICAgICAgIjAuMjI2NzkxLCAxLjAxMjI2LCAxLjY0Mjg0LCAyLjQzNTM3LCAzLjIzMDMsIDQuMDI0MDIsIDQuODE5ODYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTIiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE3MzYxOCwgMC43NDA3NjMsIDEuMTkyNTgsIDEuNzU3MjksIDIuMzIxMjQsIDIuODg1MzcsIDMuNDQ5MjYiLCBcCi0gICAgICAgICAgIjAuMTgyOTU2LCAwLjc1MDE4MywgMS4yMDE4NywgMS43NjY4MywgMi4zMzE0NiwgMi44OTUxNCwgMy40NTg4NiIsIFwKLSAgICAgICAgICAiMC4xOTQ4NzEsIDAuNzYyMjI5LCAxLjIxNDMxLCAxLjc3ODMxLCAyLjM0MjY0LCAyLjkwNjk0LCAzLjQ3MDc0IiwgXAotICAgICAgICAgICIwLjIwNjgxMywgMC43NzQ2MjQsIDEuMjI2NTMsIDEuNzkxMzEsIDIuMzU1ODIsIDIuOTE5MzMsIDMuNDgzMjYiLCBcCi0gICAgICAgICAgIjAuMjE4OTA3LCAwLjc4NjU5NywgMS4yMzgzNywgMS44MDMxOSwgMi4zNjc1NCwgMi45MzE3NCwgMy40OTUxIiwgXAotICAgICAgICAgICIwLjIzODM0MSwgMC44MDU4ODUsIDEuMjU3OTMsIDEuODIyNDcsIDIuMzg3MTMsIDIuOTUxMjMsIDMuNTE0NTkiLCBcCi0gICAgICAgICAgIjAuMjU1NjIsIDAuODIzMTQzLCAxLjI3NTMsIDEuODQwMjYsIDIuNDA0NiwgMi45NjgxMSwgMy41MzIwNyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMzQ4MTksIDEuNDE4OCwgMi4yODYxLCAzLjM2OTg5LCA0LjQ1Mzc2LCA1LjUzNzQ0LCA2LjYyMDAzIiwgXAotICAgICAgICAgICIwLjMzNDc4NywgMS40MTkyMSwgMi4yODU4NiwgMy4zNjk5MywgNC40NTQ0MywgNS41MzY2MiwgNi42MTk1IiwgXAotICAgICAgICAgICIwLjMzNDc2NSwgMS40MTg5MywgMi4yODYxMywgMy4zNjk3OSwgNC40NTQ0NCwgNS41MzY3NCwgNi42MTk2OSIsIFwKLSAgICAgICAgICAiMC4zMzQyMjEsIDEuNDE4OTgsIDIuMjg2MywgMy4zNjk3NywgNC40NTQxMywgNS41Mzc1NiwgNi42MTk3OCIsIFwKLSAgICAgICAgICAiMC4zMzUxOSwgMS40MTkwOCwgMi4yODYwNywgMy4zNjk3OSwgNC40NTM4MywgNS41MzYxNSwgNi42MTk4MiIsIFwKLSAgICAgICAgICAiMC4zMzk2ODMsIDEuNDE4NzUsIDIuMjg2MDcsIDMuMzY5NzIsIDQuNDU0LCA1LjUzNzAzLCA2LjYyMTA1IiwgXAotICAgICAgICAgICIwLjM0NTcwNiwgMS40MTg3OSwgMi4yODYyMSwgMy4zNzAxMSwgNC40NTM4MSwgNS41MzczNywgNi42MjAzOCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMzkwODMsIDAuNTU2ODM1LCAwLjg5MDQ4NSwgMS4zMDY4OCwgMS43MjM4OCwgMi4xNDEzMywgMi41NjA3OSIsIFwKLSAgICAgICAgICAiMC4xNTE0MSwgMC41NjkxNzQsIDAuOTAzMTI1LCAxLjMxOTQ3LCAxLjczNjY0LCAyLjE1MzU4LCAyLjU3MzYzIiwgXAotICAgICAgICAgICIwLjE2NjIxLCAwLjU4NDIyNSwgMC45MTgxNTYsIDEuMzM0NjQsIDEuNzUxNTgsIDIuMTY4NzcsIDIuNTg4NjQiLCBcCi0gICAgICAgICAgIjAuMTgwNDQ0LCAwLjU5ODY3MiwgMC45MzI0NDUsIDEuMzQ5MjIsIDEuNzY2MTEsIDIuMTgzODYsIDIuNjAyMjIiLCBcCi0gICAgICAgICAgIjAuMTk0MDI1LCAwLjYxMjQxNCwgMC45NDYxMDEsIDEuMzYyOTQsIDEuNzc5OSwgMi4xOTg0OCwgMi42MTY3NCIsIFwKLSAgICAgICAgICAiMC4yMTU1MDIsIDAuNjM0MjgxLCAwLjk2Nzc4MiwgMS4zODUwNiwgMS44MDE4MiwgMi4yMTk2NywgMi42Mzc4MyIsIFwKLSAgICAgICAgICAiMC4yMzQyNzQsIDAuNjUzMzI3LCAwLjk4Njg1NCwgMS40MDM1NiwgMS44MjA3OSwgMi4yMzgwNiwgMi42NTc2NiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMTI5NTYsIDEuMDA5NTcsIDEuNjQ4NCwgMi40NTQxOSwgMy4yNTIxMSwgNC4wNjg5LCA0Ljg2MTczIiwgXAotICAgICAgICAgICIwLjIxMjk3LCAxLjAwOTU3LCAxLjY0OTA4LCAyLjQ1OTQ5LCAzLjI1MTA5LCA0LjA2NjkzLCA0Ljg1ODg0IiwgXAotICAgICAgICAgICIwLjIxMzEsIDEuMDA5NjEsIDEuNjQ4NTksIDIuNDU3OTMsIDMuMjUxODQsIDQuMDY2NjEsIDQuODU3MzYiLCBcCi0gICAgICAgICAgIjAuMjEzMTE3LCAxLjAwOTY5LCAxLjY0OTYxLCAyLjQ2NDI4LCAzLjI1NjcyLCA0LjA1NDIxLCA0Ljg2MzgyIiwgXAotICAgICAgICAgICIwLjIxMzA0NCwgMS4wMTA4NCwgMS42NTcxOCwgMi40NDk2NSwgMy4yNTE2OSwgNC4wNTg4NiwgNC44NjQ1IiwgXAotICAgICAgICAgICIwLjIxNDg3MSwgMS4wMTA2MSwgMS42NTU5OCwgMi40NDkzOCwgMy4yNTU1NywgNC4wNTM3MiwgNC44NjI3NiIsIFwKLSAgICAgICAgICAiMC4yMTc4ODYsIDEuMDA5NDQsIDEuNjU2NDQsIDIuNDU5OTMsIDMuMjUyLCA0LjA2Njk2LCA0Ljg2MTYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjAiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwNDE1NSwgMC40NzM5MjEsIDAuNzY5NDkxLCAxLjEzODk1LCAxLjUwODQ1LCAxLjg3Nzg1LCAyLjI0NzM3IiwgXAotICAgICAgICAgICIwLjExNTg0NiwgMC40ODU3MTksIDAuNzgxMTk0LCAxLjE1MDcyLCAxLjUyMDIxLCAxLjg4OTU2LCAyLjI1OTIxIiwgXAotICAgICAgICAgICIwLjEyODgxNSwgMC40OTg4MjUsIDAuNzk0NTI1LCAxLjE2Mzc5LCAxLjUzMzI2LCAxLjkwMzAxLCAyLjI3MjM2IiwgXAotICAgICAgICAgICIwLjE0MTM0NiwgMC41MTE2MDMsIDAuODA3NDA0LCAxLjE3NjQ4LCAxLjU0NTk5LCAxLjkxNTU1LCAyLjI4NDg5IiwgXAotICAgICAgICAgICIwLjE1MzY4LCAwLjUyMzg1LCAwLjgxOTgxNywgMS4xODg5NCwgMS41NTg0MiwgMS45Mjc5NywgMi4yOTc1IiwgXAotICAgICAgICAgICIwLjE3MzI2LCAwLjU0Mzg3NywgMC44Mzk1MDgsIDEuMjA5MzgsIDEuNTc4MzgsIDEuOTQ3OTIsIDIuMzE3NCIsIFwKLSAgICAgICAgICAiMC4xOTA0NTEsIDAuNTYwOTg3LCAwLjg1NjczMSwgMS4yMjY0NSwgMS41OTU3NiwgMS45NjU2NiwgMi4zMzQ0OCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMjUzMjYsIDAuOTQ0Mjk1LCAxLjUyMTY4LCAyLjI0MzgzLCAyLjk2Njc0LCAzLjY4OTI4LCA0LjQxMTM0IiwgXAotICAgICAgICAgICIwLjIyNTMyMSwgMC45NDQzMTUsIDEuNTIxNzMsIDIuMjQzOTUsIDIuOTY2NiwgMy42ODkzMSwgNC40MTIyMiIsIFwKLSAgICAgICAgICAiMC4yMjUzMzIsIDAuOTQ0MzU3LCAxLjUyMTk0LCAyLjI0NDA0LCAyLjk2NjU0LCAzLjY4ODQ2LCA0LjQxMjMxIiwgXAotICAgICAgICAgICIwLjIyNjA0LCAwLjk0NDM3OSwgMS41MjE5NiwgMi4yNDQxNCwgMi45NjYyLCAzLjY4OTQ2LCA0LjQxMTI1IiwgXAotICAgICAgICAgICIwLjIyNzk0NCwgMC45NDQyNjYsIDEuNTIxOTUsIDIuMjQzODIsIDIuOTY2MTcsIDMuNjg4ODgsIDQuNDExMzYiLCBcCi0gICAgICAgICAgIjAuMjMyNzk2LCAwLjk0NDM5NSwgMS41MjE3NywgMi4yNDQzNCwgMi45NjYyMSwgMy42ODkzMywgNC40MTIxOCIsIFwKLSAgICAgICAgICAiMC4yMzg0NDUsIDAuOTQ0MzM1LCAxLjUyMTU2LCAyLjI0NDE0LCAyLjk2NjU4LCAzLjY4OTMxLCA0LjQxMjA5Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEzODMzNywgMC41NTE4MjUsIDAuODgwNjIxLCAxLjI5MDUsIDEuNzA0NzYsIDIuMTIwNzcsIDIuNTM3NzYiLCBcCi0gICAgICAgICAgIjAuMTQ4NjA4LCAwLjU2MjIwMSwgMC44OTA2NTEsIDEuMzAxNCwgMS43MTQ0OSwgMi4xMzExNywgMi41NDgzIiwgXAotICAgICAgICAgICIwLjE2MjI3NywgMC41NzU0MywgMC45MDQxNTEsIDEuMzE0NjgsIDEuNzI4NSwgMi4xNDQ3MSwgMi41NjA4NyIsIFwKLSAgICAgICAgICAiMC4xNzUxMzMsIDAuNTg4ODU2LCAwLjkxNzM4OCwgMS4zMjgyMywgMS43NDEzNSwgMi4xNTgyNCwgMi41NzUiLCBcCi0gICAgICAgICAgIjAuMTg4NTc0LCAwLjYwMjIxNiwgMC45MzA3ODcsIDEuMzQxMTMsIDEuNzU0NDQsIDIuMTcyMDEsIDIuNTg4MjYiLCBcCi0gICAgICAgICAgIjAuMjEwMzA5LCAwLjYyNDQyNywgMC45NTIzLCAxLjM2MjU1LCAxLjc3NTgsIDIuMTkyNDEsIDIuNjA5MDYiLCBcCi0gICAgICAgICAgIjAuMjI4MTA5LCAwLjY0MTU3OSwgMC45NzAzNjYsIDEuMzgwODMsIDEuNzkzNjYsIDIuMjExMzksIDIuNjI3MzkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjMxMjE4LCAxLjAxNjI4LCAxLjY0Njc0LCAyLjQ0MTQsIDMuMjM4NzQsIDQuMDM0MjcsIDQuODMxMTIiLCBcCi0gICAgICAgICAgIjAuMjMxMjAzLCAxLjAxNjMxLCAxLjY0NjM0LCAyLjQ0Mjk4LCAzLjIzNzgzLCA0LjAzNDc0LCA0LjgzMDY0IiwgXAotICAgICAgICAgICIwLjIzMTA2MSwgMS4wMTU5NCwgMS42NDY0MywgMi40NDI1OSwgMy4yMzg0NCwgNC4wMzQ3LCA0LjgyOTg4IiwgXAotICAgICAgICAgICIwLjIzMDY4OSwgMS4wMTU2NiwgMS42NDYyMiwgMi40NDI3LCAzLjIzODEyLCA0LjAzNTM1LCA0LjgzMDY3IiwgXAotICAgICAgICAgICIwLjIzMjExLCAxLjAxNjExLCAxLjY0NjI2LCAyLjQ0MjI5LCAzLjIzNzEsIDQuMDM0NzQsIDQuODMwNzEiLCBcCi0gICAgICAgICAgIjAuMjM3MDE5LCAxLjAxNjIxLCAxLjY0NjE5LCAyLjQ0MTQ4LCAzLjIzODU5LCA0LjAzNDQ0LCA0LjgyODc4IiwgXAotICAgICAgICAgICIwLjI0NDIyNSwgMS4wMTYyLCAxLjY0NjIxLCAyLjQ0MjU0LCAzLjIzNzMzLCA0LjAzNDgyLCA0LjgzMjM5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIxIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTc3NDQsIDAuNDY3NjAxLCAwLjc2MzA3NiwgMS4xMzIzNCwgMS41MDIwMywgMS44NzE0NSwgMi4yNDA5NSIsIFwKLSAgICAgICAgICAiMC4xMDc5OSwgMC40Nzc5NDYsIDAuNzczNDEzLCAxLjE0MzAxLCAxLjUxMjM2LCAxLjg4MTk5LCAyLjI1MTQ5IiwgXAotICAgICAgICAgICIwLjEyMDg1NywgMC40OTEwMzEsIDAuNzg2NTE0LCAxLjE1NTk1LCAxLjUyNTQ5LCAxLjg5NTMxLCAyLjI2NDQ5IiwgXAotICAgICAgICAgICIwLjEzMzk1MiwgMC41MDQwNzQsIDAuNzk5OTc0LCAxLjE2OTI2LCAxLjUzODcyLCAxLjkwODA2LCAyLjI3NzcxIiwgXAotICAgICAgICAgICIwLjE0NjkzMywgMC41MTcwNjEsIDAuODEyNzY2LCAxLjE4MjIsIDEuNTUxNiwgMS45MjEyMSwgMi4yOTA4MSIsIFwKLSAgICAgICAgICAiMC4xNjg4MjgsIDAuNTM4MTA0LCAwLjgzMzY0NSwgMS4yMDMxOCwgMS41NzI1OSwgMS45NDIyOSwgMi4zMTE2NCIsIFwKLSAgICAgICAgICAiMC4xODc0OTQsIDAuNTU2NDMsIDAuODUyMDE0LCAxLjIyMjEzLCAxLjU5MDk5LCAxLjk2MDQxLCAyLjMzMDA5Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIyNTMxOSwgMC45NDQ0OTEsIDEuNTIxODQsIDIuMjQ0MSwgMi45NjYyMiwgMy42ODg4OCwgNC40MTE5MiIsIFwKLSAgICAgICAgICAiMC4yMjUzMiwgMC45NDQzNjUsIDEuNTIxNzEsIDIuMjQ0MTMsIDIuOTY2NTcsIDMuNjg5MywgNC40MTE0NyIsIFwKLSAgICAgICAgICAiMC4yMjUzODUsIDAuOTQ0NDQ2LCAxLjUyMTU2LCAyLjI0MzgzLCAyLjk2NjMxLCAzLjY4OTMxLCA0LjQxMjI0IiwgXAotICAgICAgICAgICIwLjIyNzY3NSwgMC45NDQzNSwgMS41MjE2NCwgMi4yNDQxNSwgMi45NjY2NywgMy42ODg4LCA0LjQxMjE5IiwgXAotICAgICAgICAgICIwLjIzMTkzNCwgMC45NDQzNSwgMS41MjE3NSwgMi4yNDQxMSwgMi45NjYwNSwgMy42ODkzMywgNC40MTIzMiIsIFwKLSAgICAgICAgICAiMC4yNDA2LCAwLjk0NDM2MSwgMS41MjE2MSwgMi4yNDQxLCAyLjk2NTk3LCAzLjY4ODk4LCA0LjQxMTMiLCBcCi0gICAgICAgICAgIjAuMjUwMDg2LCAwLjk0NDM0NywgMS41MjE3LCAyLjI0NDQ0LCAyLjk2NjE3LCAzLjY4OTIxLCA0LjQxMTM2Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEyOTgyNSwgMC41NDc4ODksIDAuODgwMzkxLCAxLjI5NTg4LCAxLjcxMTA5LCAyLjEyNjk5LCAyLjU0MjU1IiwgXAotICAgICAgICAgICIwLjE0MDU0LCAwLjU1ODc2NCwgMC44OTE1NTQsIDEuMzA3MDksIDEuNzIyMjksIDIuMTM3ODYsIDIuNTUyNTkiLCBcCi0gICAgICAgICAgIjAuMTUzNTQxLCAwLjU3MjE1NCwgMC45MDUzMDUsIDEuMzIwNjMsIDEuNzM2MTksIDIuMTUxNTMsIDIuNTY2NTEiLCBcCi0gICAgICAgICAgIjAuMTY2NzAzLCAwLjU4NTU2NywgMC45MTgyMDIsIDEuMzM0MjMsIDEuNzQ5NjEsIDIuMTY1MjIsIDIuNTgwNzIiLCBcCi0gICAgICAgICAgIjAuMTgwMjQ5LCAwLjU5ODkzMywgMC45MzE1OTEsIDEuMzQ3MSwgMS43NjI2NywgMi4xNzc2NiwgMi41OTM3NiIsIFwKLSAgICAgICAgICAiMC4yMDEwMjIsIDAuNjE5NjM2LCAwLjk1MjYwMSwgMS4zNjg1LCAxLjc4NDI0LCAyLjIwMDIyLCAyLjYxNTQyIiwgXAotICAgICAgICAgICIwLjIyMDU0NCwgMC42MzgxNDksIDAuOTcxMTQ4LCAxLjM4NjkzLCAxLjgwMTk5LCAyLjIxNzExLCAyLjYzMjk3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIyMzgxMSwgMS4wMTg1OSwgMS42NTMzLCAyLjQ1OTMsIDMuMjU1NjUsIDQuMDY4OSwgNC44NTYwNSIsIFwKLSAgICAgICAgICAiMC4yMjMzNzEsIDEuMDE4MDMsIDEuNjUzOTQsIDIuNDU4NjIsIDMuMjY0OCwgNC4wNTg3NywgNC44NTg4MiIsIFwKLSAgICAgICAgICAiMC4yMjMxMzYsIDEuMDE3ODIsIDEuNjUzNzcsIDIuNDUyMDcsIDMuMjY0ODUsIDQuMDY4OTIsIDQuODU5NjciLCBcCi0gICAgICAgICAgIjAuMjIyOTI4LCAxLjAxODEyLCAxLjY1MzEzLCAyLjQ1NTQ1LCAzLjI2Njk3LCA0LjA1OTg1LCA0Ljg2MTIiLCBcCi0gICAgICAgICAgIjAuMjI0NjMzLCAxLjAxNzk1LCAxLjY1MzExLCAyLjQ0OTkzLCAzLjI2NTIyLCA0LjA1Njc4LCA0Ljg2NDU0IiwgXAotICAgICAgICAgICIwLjIzMDY4NCwgMS4wMTgwNiwgMS42NTM1MSwgMi40NjA5OCwgMy4yNTE1MSwgNC4wNjcwOCwgNC44NjE2OCIsIFwKLSAgICAgICAgICAiMC4yMzcwNjUsIDEuMDE4MTEsIDEuNjUzMDIsIDIuNDU4NzksIDMuMjY1NywgNC4wNTc2NCwgNC44NjQzMiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDY0LCAwLjAwNjM5NSwgMC4wMDYzOTIsIDAuMDA2Mzg4LCAwLjAwNjM4MiwgMC4wMDYzNzcsIDAuMDA2MzcyIiwgXAotICAgICAgICAgICIwLjAwNjM4LCAwLjAwNjM3OSwgMC4wMDYzNzYsIDAuMDA2MzczLCAwLjAwNjM2OCwgMC4wMDYzNjQsIDAuMDA2MzU4IiwgXAotICAgICAgICAgICIwLjAwNjM3MiwgMC4wMDYzNzQsIDAuMDA2MzcxLCAwLjAwNjM2OSwgMC4wMDYzNjQsIDAuMDA2MzU4LCAwLjAwNjM1NCIsIFwKLSAgICAgICAgICAiMC4wMDYzNjQsIDAuMDA2MzcyLCAwLjAwNjM3LCAwLjAwNjM2NywgMC4wMDYzNjIsIDAuMDA2MzU4LCAwLjAwNjM1NSIsIFwKLSAgICAgICAgICAiMC4wMDYzNTksIDAuMDA2MzY5LCAwLjAwNjM2OSwgMC4wMDYzNjMsIDAuMDA2MzYsIDAuMDA2MzU1LCAwLjAwNjM0OSIsIFwKLSAgICAgICAgICAiMC4wMDYzNTIsIDAuMDA2MzY0LCAwLjAwNjM2NSwgMC4wMDYzNjMsIDAuMDA2MzU3LCAwLjAwNjM1NCwgMC4wMDYzNDciLCBcCi0gICAgICAgICAgIjAuMDA2MzQ3LCAwLjAwNjM2MywgMC4wMDYzNjQsIDAuMDA2MzYsIDAuMDA2MzU5LCAwLjAwNjM1MywgMC4wMDYzNDciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI1OTIsIDAuMDAyNTksIDAuMDAyNTksIDAuMDAyNTg4LCAwLjAwMjU4NCwgMC4wMDI1ODMsIDAuMDAyNTgzIiwgXAotICAgICAgICAgICIwLjAwMjU1MywgMC4wMDI1NTMsIDAuMDAyNTUxLCAwLjAwMjU0OSwgMC4wMDI1NTEsIDAuMDAyNTQ3LCAwLjAwMjU0NSIsIFwKLSAgICAgICAgICAiMC4wMDI1MzgsIDAuMDAyNTQyLCAwLjAwMjU0LCAwLjAwMjUzOSwgMC4wMDI1MzcsIDAuMDAyNTM3LCAwLjAwMjUzNCIsIFwKLSAgICAgICAgICAiMC4wMDI1MjgsIDAuMDAyNTM2LCAwLjAwMjUzNiwgMC4wMDI1MzUsIDAuMDAyNTM0LCAwLjAwMjUzMSwgMC4wMDI1MjkiLCBcCi0gICAgICAgICAgIjAuMDAyNTIxLCAwLjAwMjUzMiwgMC4wMDI1MzIsIDAuMDAyNTMxLCAwLjAwMjUzMSwgMC4wMDI1MjgsIDAuMDAyNTI5IiwgXAotICAgICAgICAgICIwLjAwMjUxMiwgMC4wMDI1MjksIDAuMDAyNTI5LCAwLjAwMjUzLCAwLjAwMjUyNywgMC4wMDI1MjYsIDAuMDAyNTI1IiwgXAotICAgICAgICAgICIwLjAwMjUwNiwgMC4wMDI1MjYsIDAuMDAyNTI4LCAwLjAwMjUyOCwgMC4wMDI1MjcsIDAuMDAyNTI1LCAwLjAwMjUyMyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkExIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDU5MDcsIDAuMDA1OTAzLCAwLjAwNTkwMSwgMC4wMDU4OTYsIDAuMDA1ODkzLCAwLjAwNTg4NiwgMC4wMDU4ODIiLCBcCi0gICAgICAgICAgIjAuMDA1ODg4LCAwLjAwNTg4NywgMC4wMDU4ODQsIDAuMDA1ODc5LCAwLjAwNTg3NiwgMC4wMDU4NzIsIDAuMDA1ODY2IiwgXAotICAgICAgICAgICIwLjAwNTg3OCwgMC4wMDU4ODEsIDAuMDA1ODgsIDAuMDA1ODc2LCAwLjAwNTg2OSwgMC4wMDU4NjYsIDAuMDA1ODYiLCBcCi0gICAgICAgICAgIjAuMDA1ODcyLCAwLjAwNTg4LCAwLjAwNTg3NywgMC4wMDU4NzMsIDAuMDA1ODcsIDAuMDA1ODY0LCAwLjAwNTg2MiIsIFwKLSAgICAgICAgICAiMC4wMDU4NjYsIDAuMDA1ODc4LCAwLjAwNTg3NSwgMC4wMDU4NzEsIDAuMDA1ODY3LCAwLjAwNTg2NSwgMC4wMDU4NTgiLCBcCi0gICAgICAgICAgIjAuMDA1ODYsIDAuMDA1ODc0LCAwLjAwNTg3MywgMC4wMDU4NywgMC4wMDU4NjcsIDAuMDA1ODYzLCAwLjAwNTg1OCIsIFwKLSAgICAgICAgICAiMC4wMDU4NTUsIDAuMDA1ODcsIDAuMDA1ODcxLCAwLjAwNTg3LCAwLjAwNTg2NSwgMC4wMDU4NjMsIDAuMDA1ODU2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxOTU5LCAwLjAwMTk1OSwgMC4wMDE5NTgsIDAuMDAxOTU2LCAwLjAwMTk1LCAwLjAwMTk1NCwgMC4wMDE5NTMiLCBcCi0gICAgICAgICAgIjAuMDAxOTQ5LCAwLjAwMTk1NywgMC4wMDE5NTcsIDAuMDAxOTU1LCAwLjAwMTk1NCwgMC4wMDE5NTMsIDAuMDAxOTU4IiwgXAotICAgICAgICAgICIwLjAwMTkzNCwgMC4wMDE5NTIsIDAuMDAxOTUzLCAwLjAwMTk1MywgMC4wMDE5NTQsIDAuMDAxOTUsIDAuMDAxOTUxIiwgXAotICAgICAgICAgICIwLjAwMTkyMiwgMC4wMDE5NDksIDAuMDAxOTUyLCAwLjAwMTk1MiwgMC4wMDE5NTIsIDAuMDAxOTUxLCAwLjAwMTk1IiwgXAotICAgICAgICAgICIwLjAwMTkxLCAwLjAwMTk0NSwgMC4wMDE5NDksIDAuMDAxOTUsIDAuMDAxOTUsIDAuMDAxOTUsIDAuMDAxOTUiLCBcCi0gICAgICAgICAgIjAuMDAxODkzLCAwLjAwMTkzOSwgMC4wMDE5NDUsIDAuMDAxOTQ3LCAwLjAwMTk0OCwgMC4wMDE5NDgsIDAuMDAxOTQ3IiwgXAotICAgICAgICAgICIwLjAwMTg4MSwgMC4wMDE5MzMsIDAuMDAxOTQxLCAwLjAwMTk0NSwgMC4wMDE5NDYsIDAuMDAxOTQ2LCAwLjAwMTk0NiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEyIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDUzODksIDAuMDA1Mzg2LCAwLjAwNTM4MywgMC4wMDUzNzgsIDAuMDA1Mzc0LCAwLjAwNTM3LCAwLjAwNTM2NiIsIFwKLSAgICAgICAgICAiMC4wMDUzNjYsIDAuMDA1MzY5LCAwLjAwNTM2NSwgMC4wMDUzNjMsIDAuMDA1MzU4LCAwLjAwNTM1MywgMC4wMDUzNDciLCBcCi0gICAgICAgICAgIjAuMDA1MzUsIDAuMDA1MzYsIDAuMDA1MzYxLCAwLjAwNTM1NSwgMC4wMDUzNTQsIDAuMDA1MzQ3LCAwLjAwNTM0MyIsIFwKLSAgICAgICAgICAiMC4wMDUzMzksIDAuMDA1MzU2LCAwLjAwNTM1NSwgMC4wMDUzNTIsIDAuMDA1MzQ5LCAwLjAwNTM0NiwgMC4wMDUzNDIiLCBcCi0gICAgICAgICAgIjAuMDA1MzI5LCAwLjAwNTM1MiwgMC4wMDUzNTMsIDAuMDA1MzUsIDAuMDA1MzQ4LCAwLjAwNTM0MywgMC4wMDUzMzkiLCBcCi0gICAgICAgICAgIjAuMDA1MzE5LCAwLjAwNTM0NywgMC4wMDUzNDksIDAuMDA1MzQ4LCAwLjAwNTM0NSwgMC4wMDUzNCwgMC4wMDUzMzYiLCBcCi0gICAgICAgICAgIjAuMDA1MzEzLCAwLjAwNTM0NCwgMC4wMDUzNDcsIDAuMDA1MzQ1LCAwLjAwNTM0MywgMC4wMDUzMzksIDAuMDA1MzM1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxMjY0LCAwLjAwMTI2OSwgMC4wMDEyNywgMC4wMDEyNzQsIDAuMDAxMjYsIDAuMDAxMjY4LCAwLjAwMTI2OCIsIFwKLSAgICAgICAgICAiMC4wMDEyOCwgMC4wMDEzMDIsIDAuMDAxMzA1LCAwLjAwMTMwNSwgMC4wMDEzMDUsIDAuMDAxMzA1LCAwLjAwMTMwNSIsIFwKLSAgICAgICAgICAiMC4wMDEyNjcsIDAuMDAxMzA3LCAwLjAwMTMxMSwgMC4wMDEzMTMsIDAuMDAxMzE1LCAwLjAwMTMxNSwgMC4wMDEzMTQiLCBcCi0gICAgICAgICAgIjAuMDAxMjUsIDAuMDAxMzAzLCAwLjAwMTMxLCAwLjAwMTMxMywgMC4wMDEzMTUsIDAuMDAxMzE2LCAwLjAwMTMxNiIsIFwKLSAgICAgICAgICAiMC4wMDEyMzcsIDAuMDAxMywgMC4wMDEzMDksIDAuMDAxMzEzLCAwLjAwMTMxNSwgMC4wMDEzMTYsIDAuMDAxMzE3IiwgXAotICAgICAgICAgICIwLjAwMTIxMywgMC4wMDEyOTIsIDAuMDAxMzA0LCAwLjAwMTMxLCAwLjAwMTMxMywgMC4wMDEzMTQsIDAuMDAxMzE2IiwgXAotICAgICAgICAgICIwLjAwMTE5NCwgMC4wMDEyODUsIDAuMDAxMywgMC4wMDEzMDcsIDAuMDAxMzExLCAwLjAwMTMxMywgMC4wMDEzMTQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0MjE5LCAwLjAwNDIyMiwgMC4wMDQyMjMsIDAuMDA0MjIzLCAwLjAwNDIyMywgMC4wMDQyMjMsIDAuMDA0MjIzIiwgXAotICAgICAgICAgICIwLjAwNDIyLCAwLjAwNDIzNSwgMC4wMDQyMzYsIDAuMDA0MjM3LCAwLjAwNDIzOCwgMC4wMDQyMzgsIDAuMDA0MjM4IiwgXAotICAgICAgICAgICIwLjAwNDIxLCAwLjAwNDIzNSwgMC4wMDQyMzcsIDAuMDA0MjM5LCAwLjAwNDIzOSwgMC4wMDQyNDEsIDAuMDA0MjQxIiwgXAotICAgICAgICAgICIwLjAwNDE5OCwgMC4wMDQyMzIsIDAuMDA0MjM3LCAwLjAwNDIzOSwgMC4wMDQyNCwgMC4wMDQyNDIsIDAuMDA0MjQxIiwgXAotICAgICAgICAgICIwLjAwNDE4NywgMC4wMDQyMywgMC4wMDQyMzUsIDAuMDA0MjM4LCAwLjAwNDI0LCAwLjAwNDI0MSwgMC4wMDQyNDEiLCBcCi0gICAgICAgICAgIjAuMDA0MTc3LCAwLjAwNDIyNSwgMC4wMDQyMzIsIDAuMDA0MjM2LCAwLjAwNDIzOCwgMC4wMDQyNCwgMC4wMDQyNCIsIFwKLSAgICAgICAgICAiMC4wMDQxNjgsIDAuMDA0MjIsIDAuMDA0MjMsIDAuMDA0MjM1LCAwLjAwNDIzNywgMC4wMDQyMzksIDAuMDA0MjQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI1OTQsIDAuMDAyNTkzLCAwLjAwMjU5MiwgMC4wMDI1OTEsIDAuMDAyNTg5LCAwLjAwMjU4NywgMC4wMDI1ODQiLCBcCi0gICAgICAgICAgIjAuMDAyNTU5LCAwLjAwMjU2NywgMC4wMDI1NjYsIDAuMDAyNTY1LCAwLjAwMjU2NywgMC4wMDI1NjIsIDAuMDAyNTYiLCBcCi0gICAgICAgICAgIjAuMDAyNTQ2LCAwLjAwMjU1OSwgMC4wMDI1NTksIDAuMDAyNTU5LCAwLjAwMjU1OSwgMC4wMDI1NTUsIDAuMDAyNTUzIiwgXAotICAgICAgICAgICIwLjAwMjUzMiwgMC4wMDI1NTMsIDAuMDAyNTU1LCAwLjAwMjU1NCwgMC4wMDI1NTQsIDAuMDAyNTUyLCAwLjAwMjU1MSIsIFwKLSAgICAgICAgICAiMC4wMDI1MjMsIDAuMDAyNTQ5LCAwLjAwMjU1MywgMC4wMDI1NTMsIDAuMDAyNTUyLCAwLjAwMjU1MiwgMC4wMDI1NTEiLCBcCi0gICAgICAgICAgIjAuMDAyNTE0LCAwLjAwMjU0NSwgMC4wMDI1NDksIDAuMDAyNTUsIDAuMDAyNTUsIDAuMDAyNTQ5LCAwLjAwMjU0OSIsIFwKLSAgICAgICAgICAiMC4wMDI1MDYsIDAuMDAyNTQsIDAuMDAyNTQ2LCAwLjAwMjU0OCwgMC4wMDI1NDgsIDAuMDAyNTQ3LCAwLjAwMjU0NyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIxIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDM3MTUsIDAuMDAzNzIsIDAuMDAzNzIxLCAwLjAwMzcyMSwgMC4wMDM3MjEsIDAuMDAzNzIxLCAwLjAwMzcyMSIsIFwKLSAgICAgICAgICAiMC4wMDM3MDksIDAuMDAzNzMxLCAwLjAwMzczMywgMC4wMDM3MzQsIDAuMDAzNzM1LCAwLjAwMzczNSwgMC4wMDM3MzUiLCBcCi0gICAgICAgICAgIjAuMDAzNjkzLCAwLjAwMzczLCAwLjAwMzczNCwgMC4wMDM3MzYsIDAuMDAzNzM3LCAwLjAwMzczOCwgMC4wMDM3MzgiLCBcCi0gICAgICAgICAgIjAuMDAzNjc2LCAwLjAwMzcyNCwgMC4wMDM3MzEsIDAuMDAzNzM0LCAwLjAwMzczNiwgMC4wMDM3MzYsIDAuMDAzNzM3IiwgXAotICAgICAgICAgICIwLjAwMzY2NSwgMC4wMDM3MjIsIDAuMDAzNzMsIDAuMDAzNzM0LCAwLjAwMzczNiwgMC4wMDM3MzcsIDAuMDAzNzM4IiwgXAotICAgICAgICAgICIwLjAwMzY1MSwgMC4wMDM3MTUsIDAuMDAzNzI1LCAwLjAwMzczMSwgMC4wMDM3MzQsIDAuMDAzNzM1LCAwLjAwMzczNyIsIFwKLSAgICAgICAgICAiMC4wMDM2NDIsIDAuMDAzNzEsIDAuMDAzNzIyLCAwLjAwMzcyOCwgMC4wMDM3MzIsIDAuMDAzNzM0LCAwLjAwMzczNSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTk1NSwgMC4wMDE5NjEsIDAuMDAxOTYxLCAwLjAwMTk2MiwgMC4wMDE5NTgsIDAuMDAxOTYyLCAwLjAwMTk1NiIsIFwKLSAgICAgICAgICAiMC4wMDE5NTQsIDAuMDAxOTgsIDAuMDAxOTgyLCAwLjAwMTk4MiwgMC4wMDE5OCwgMC4wMDE5OCwgMC4wMDE5OCIsIFwKLSAgICAgICAgICAiMC4wMDE5MzUsIDAuMDAxOTc3LCAwLjAwMTk4MiwgMC4wMDE5ODMsIDAuMDAxOTg0LCAwLjAwMTk4NCwgMC4wMDE5ODQiLCBcCi0gICAgICAgICAgIjAuMDAxOTE0LCAwLjAwMTk3MSwgMC4wMDE5NzksIDAuMDAxOTgyLCAwLjAwMTk4MywgMC4wMDE5ODQsIDAuMDAxOTgzIiwgXAotICAgICAgICAgICIwLjAwMTkwMSwgMC4wMDE5NjYsIDAuMDAxOTc1LCAwLjAwMTk4LCAwLjAwMTk4MSwgMC4wMDE5ODMsIDAuMDAxOTgzIiwgXAotICAgICAgICAgICIwLjAwMTg4LCAwLjAwMTk1NiwgMC4wMDE5NjksIDAuMDAxOTc2LCAwLjAwMTk3OCwgMC4wMDE5OCwgMC4wMDE5OCIsIFwKLSAgICAgICAgICAiMC4wMDE4NjgsIDAuMDAxOTQ4LCAwLjAwMTk2NCwgMC4wMDE5NzMsIDAuMDAxOTc2LCAwLjAwMTk3NywgMC4wMDE5NzgiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBPQUkzM1g0ICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKE9BSTMzWDQpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC41Njg2OTk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDI4MzYwNjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDI4MTU5NTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDI4MzYwNjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDEyMjUsIDAuMDAxMjIzLCAwLjAwMTIyMywgMC4wMDEyMjMsIDAuMDAxMjIzLCAwLjAwMTIyMywgMC4wMDEyMjIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDEyMjksIDAuMDAxMjI5LCAwLjAwMTIyOSwgMC4wMDEyMjgsIDAuMDAxMjI4LCAwLjAwMTIzLCAwLjAwMTIzIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihBMSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAyNzk0OTg7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAyNzgxODM7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAyNzk0OTg7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxMjI1LCAwLjAwMTIyNCwgMC4wMDEyMjQsIDAuMDAxMjI0LCAwLjAwMTIyNCwgMC4wMDEyMjQsIDAuMDAxMjIzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxMjI4LCAwLjAwMTIyOCwgMC4wMDEyMjgsIDAuMDAxMjI3LCAwLjAwMTIyNywgMC4wMDEyMjgsIDAuMDAxMjI4Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihBMikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAyODQ1NTE7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAyODQ1NTE7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAyODMzNjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDEyMjUsIDAuMDAxMjI1LCAwLjAwMTIyNSwgMC4wMDEyMjUsIDAuMDAxMjI0LCAwLjAwMTIyNCwgMC4wMDEyMjQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDEyMjgsIDAuMDAxMjI3LCAwLjAwMTIyNywgMC4wMDEyMjcsIDAuMDAxMjI3LCAwLjAwMTIyNywgMC4wMDEyMjgiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDI4ODMzOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMjg1MTI5OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMjg4MzM7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyNDA4LCAwLjAwMjQwNywgMC4wMDI0MDcsIDAuMDAyNDA5LCAwLjAwMjQwNiwgMC4wMDI0MDUsIDAuMDAyNDA2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxMzksIDAuMDAxMzkxLCAwLjAwMTM5MiwgMC4wMDEzOTIsIDAuMDAxMzkyLCAwLjAwMTM5MiwgMC4wMDEzOTIiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIxKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDI4MzIxODsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDI4MDU4MjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDI4MzIxODsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDI0MDMsIDAuMDAyNDA2LCAwLjAwMjQwNSwgMC4wMDI0MDgsIDAuMDAyNDA1LCAwLjAwMjQwNCwgMC4wMDI0MDUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDEzOSwgMC4wMDEzOTEsIDAuMDAxMzksIDAuMDAxMzkxLCAwLjAwMTM5MSwgMC4wMDEzOTEsIDAuMDAxMzkxIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCMikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAyODMzOTQ7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAyODMzMTI7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAyODMzOTQ7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyNDA4LCAwLjAwMjQwNywgMC4wMDI0MDcsIDAuMDAyNDA3LCAwLjAwMjQwNSwgMC4wMDI0MDgsIDAuMDAyNDA0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxMzksIDAuMDAxMzksIDAuMDAxMzksIDAuMDAxMzksIDAuMDAxMzksIDAuMDAxMzksIDAuMDAxMzkiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4xODQxNjsKLSAgICBmdW5jdGlvbiA6ICIoISgoKEIwK0IxKStCMikgKChBMCtBMSkrQTIpKSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE1NzIwOSwgMC41NjY4MDUsIDAuOTczMzI5LCAxLjI2NDMxLCAxLjcyODA0LCAyLjEzNTI5LCAyLjcxNDc0IiwgXAotICAgICAgICAgICIwLjE2ODgwNSwgMC41Nzg0NTYsIDAuOTg1MjIsIDEuMjc1NiwgMS43NDA2NCwgMi4xNDYzLCAyLjcyNjIzIiwgXAotICAgICAgICAgICIwLjE4MjEwOSwgMC41OTE4NiwgMC45OTg5MDgsIDEuMjg5NDYsIDEuNzUzNjEsIDIuMTU5MzQsIDIuNzM5OTMiLCBcCi0gICAgICAgICAgIjAuMTk0Mjg1LCAwLjYwNDIyMSwgMS4wMTEzMywgMS4zMDE2LCAxLjc2NjQ4LCAyLjE3MjMxLCAyLjc1MjIiLCBcCi0gICAgICAgICAgIjAuMjA1Nzc3LCAwLjYxNTgwNCwgMS4wMjI4NSwgMS4zMTMxNywgMS43NzcxNywgMi4xODM3NSwgMi43NjQwMiIsIFwKLSAgICAgICAgICAiMC4yMjM3NDYsIDAuNjMzNzI4LCAxLjA0MDYzLCAxLjMzMTEzLCAxLjc5NTcsIDIuMjAxOTIsIDIuNzgyMTYiLCBcCi0gICAgICAgICAgIjAuMjM4Njk4LCAwLjY0ODg0LCAxLjA1NTcxLCAxLjM0NjM0LCAxLjgxMDQ5LCAyLjIxNzQ5LCAyLjc5Njc0Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjk4MzIyLCAxLjA3NDM1LCAxLjg1NDQ3LCAyLjQxMTc5LCAzLjMwNDc0LCA0LjA4NTA0LCA1LjIwMTc3IiwgXAotICAgICAgICAgICIwLjI5ODMyLCAxLjA3NDQxLCAxLjg1NDQyLCAyLjQxMjA0LCAzLjMwNDIyLCA0LjA4NTg2LCA1LjIwMTY2IiwgXAotICAgICAgICAgICIwLjI5ODMzNSwgMS4wNzQzOSwgMS44NTQ1MSwgMi40MTE2OSwgMy4zMDQ1MywgNC4wODUxMSwgNS4yMDE1MyIsIFwKLSAgICAgICAgICAiMC4yOTgzMSwgMS4wNzQzNCwgMS44NTQ0NSwgMi40MTIwOSwgMy4zMDQ0LCA0LjA4NTU4LCA1LjIwMDkzIiwgXAotICAgICAgICAgICIwLjI5ODQyMSwgMS4wNzQzOCwgMS44NTQzMiwgMi40MTE5OCwgMy4zMDQzMywgNC4wODU4MiwgNS4yMDA5NyIsIFwKLSAgICAgICAgICAiMC4yOTk2OTksIDEuMDc0MzMsIDEuODU0MzgsIDIuNDExOTksIDMuMzA0MzQsIDQuMDg1NjEsIDUuMjAxNTgiLCBcCi0gICAgICAgICAgIjAuMzAxNzMsIDEuMDc0MzQsIDEuODU0MTUsIDIuNDExNzgsIDMuMzA0NzQsIDQuMDg1MDQsIDUuMjAxNjEiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMzc4NjYsIDAuNDM5NjE0LCAwLjczNTU1OSwgMC45NDY0OTIsIDEuMjgyOTIsIDEuNTc3MiwgMS45OTgxNSIsIFwKLSAgICAgICAgICAiMC4xNDkzODIsIDAuNDUxMjExLCAwLjc0NzA5MywgMC45NTgwMywgMS4yOTQ2NiwgMS41ODg3MiwgMi4wMDkxMiIsIFwKLSAgICAgICAgICAiMC4xNjQyMjQsIDAuNDY2MDMyLCAwLjc2MjA5OCwgMC45NzI3NjcsIDEuMzA5MywgMS42MDQyOCwgMi4wMjQ2IiwgXAotICAgICAgICAgICIwLjE3ODUyNCwgMC40ODAzMiwgMC43NzYzODYsIDAuOTg3MjcyLCAxLjMyMzg4LCAxLjYxOCwgMi4wMzg5NSIsIFwKLSAgICAgICAgICAiMC4xOTIwMSwgMC40OTQyNzIsIDAuNzkwMjc4LCAxLjAwMTE1LCAxLjMzNzQ5LCAxLjYzMjM5LCAyLjA1MjEzIiwgXAotICAgICAgICAgICIwLjIxMzk4MSwgMC41MTYwMjcsIDAuODExOTQ4LCAxLjAyMjc0LCAxLjM1OTI1LCAxLjY1MzU2LCAyLjA3Mzg2IiwgXAotICAgICAgICAgICIwLjIzMjkxOSwgMC41MzQ5MTMsIDAuODMxMDg1LCAxLjA0MTg2LCAxLjM3ODY1LCAxLjY3MzI5LCAyLjA5MzczIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTgzNTQyLCAwLjc1MDcxOCwgMS4zMTQ4NywgMS43MTY4NywgMi4zNjA4NCwgMi45MjMsIDMuNzI3OTgiLCBcCi0gICAgICAgICAgIjAuMTgzMjIzLCAwLjc1MDc2MywgMS4zMTQyMywgMS43MTY4MSwgMi4zNjE1NSwgMi45MjQ3MywgMy43Mjg0OSIsIFwKLSAgICAgICAgICAiMC4xODMwNjMsIDAuNzUwNjM2LCAxLjMxNDM4LCAxLjcxNjY4LCAyLjM2MTQ0LCAyLjkyMzY4LCAzLjcyOTI2IiwgXAotICAgICAgICAgICIwLjE4MzE2LCAwLjc1MDI4MSwgMS4zMTQ3LCAxLjcxNjc2LCAyLjM2MTQyLCAyLjkyMjk2LCAzLjcyNzkzIiwgXAotICAgICAgICAgICIwLjE4MzA0OCwgMC43NDk3MTUsIDEuMzE0NzYsIDEuNzE3MSwgMi4zNTk5MywgMi45MjM3LCAzLjcyODE0IiwgXAotICAgICAgICAgICIwLjE4NDIyMywgMC43NTAyNTMsIDEuMzE0MTcsIDEuNzE3NCwgMi4zNjEzNywgMi45MjI5MSwgMy43MjcxMyIsIFwKLSAgICAgICAgICAiMC4xODY4NjcsIDAuNzUwMDAxLCAxLjMxMzk5LCAxLjcxNjk1LCAyLjM2MDU2LCAyLjkyNTA5LCAzLjcyNzk1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkExIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE0Nzk4LCAwLjU1NzU0OSwgMC45NjQzNTMsIDEuMjU0NSwgMS43MTg5NywgMi4xMjYwNCwgMi43MDU0OSIsIFwKLSAgICAgICAgICAiMC4xNTg0MjcsIDAuNTY4MTQ3LCAwLjk3NTExOSwgMS4yNjU0OCwgMS43Mjk4NiwgMi4xMzY1MSwgMi43MTYwMiIsIFwKLSAgICAgICAgICAiMC4xNzEwODQsIDAuNTgwODk2LCAwLjk4NzY4LCAxLjI3ODIzLCAxLjc0MzE2LCAyLjE0ODc5LCAyLjcyOTIyIiwgXAotICAgICAgICAgICIwLjE4Mjk2LCAwLjU5Mjk1NywgMC45OTk2ODgsIDEuMjksIDEuNzU1MTUsIDIuMTYwOCwgMi43NDA4MSIsIFwKLSAgICAgICAgICAiMC4xOTQ5MDksIDAuNjA0OTI1LCAxLjAxMTcyLCAxLjMwMjMxLCAxLjc2NjMsIDIuMTcyODYsIDIuNzUyODQiLCBcCi0gICAgICAgICAgIjAuMjEzNTczLCAwLjYyMzY2OCwgMS4wMzA1OSwgMS4zMjExOCwgMS43ODUyOCwgMi4xOTIzNCwgMi43NzE5NSIsIFwKLSAgICAgICAgICAiMC4yMzAwODQsIDAuNjQwMjIsIDEuMDQ3MzIsIDEuMzM3NjgsIDEuODAxOCwgMi4yMDgyMywgMi43ODgxMSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI5ODMxOSwgMS4wNzQyNCwgMS44NTQ0LCAyLjQxMTgyLCAzLjMwNDM5LCA0LjA4NTA0LCA1LjIwMTc3IiwgXAotICAgICAgICAgICIwLjI5ODMyNywgMS4wNzQ0LCAxLjg1NDUxLCAyLjQxMTgxLCAzLjMwNDMxLCA0LjA4NTUsIDUuMjAxNDgiLCBcCi0gICAgICAgICAgIjAuMjk4MzEsIDEuMDc0MzQsIDEuODU0NCwgMi40MTE5MywgMy4zMDQzMywgNC4wODU4NCwgNS4yMDE0NiIsIFwKLSAgICAgICAgICAiMC4yOTgzMzgsIDEuMDc0MzIsIDEuODU0NCwgMi40MTE5NCwgMy4zMDQyNCwgNC4wODU4NiwgNS4yMDE2NiIsIFwKLSAgICAgICAgICAiMC4yOTg5NzcsIDEuMDc0MjgsIDEuODU0NDMsIDIuNDEyLCAzLjMwNDM0LCA0LjA4NTg2LCA1LjIwMDkyIiwgXAotICAgICAgICAgICIwLjMwMTczMywgMS4wNzQzNSwgMS44NTQyOCwgMi40MTIwNCwgMy4zMDQyOSwgNC4wODUyMSwgNS4yMDE3OSIsIFwKLSAgICAgICAgICAiMC4zMDU1MTgsIDEuMDc0MzEsIDEuODU0MjMsIDIuNDExNzgsIDMuMzA0MTksIDQuMDg1OCwgNS4yMDA3OSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEyNzAwMywgMC40MjY0NCwgMC43MjE3OTQsIDAuOTMyNDA5LCAxLjI2ODg1LCAxLjU2MjYyLCAxLjk4MzE4IiwgXAotICAgICAgICAgICIwLjEzODk1MiwgMC40Mzg1MjIsIDAuNzMzNzM3LCAwLjk0NDQyNywgMS4yODA3MSwgMS41NzQ2MiwgMS45OTUzMiIsIFwKLSAgICAgICAgICAiMC4xNTM4NjYsIDAuNDUzNTE4LCAwLjc0ODkxMywgMC45NTk1MTQsIDEuMjk2MDMsIDEuNTkwMzEsIDIuMDEwMzkiLCBcCi0gICAgICAgICAgIjAuMTY4MDc3LCAwLjQ2NzgyNSwgMC43NjMzMTEsIDAuOTczODQ3LCAxLjMxMDM3LCAxLjYwNCwgMi4wMjQxNiIsIFwKLSAgICAgICAgICAiMC4xODE2OTYsIDAuNDgxNzAxLCAwLjc3NzE0NCwgMC45ODc2MiwgMS4zMjM3OCwgMS42MTgxOCwgMi4wMzgwOCIsIFwKLSAgICAgICAgICAiMC4yMDM0NiwgMC41MDM0NzQsIDAuNzk4ODkxLCAxLjAwOTQ1LCAxLjM0NTczLCAxLjYzOTc4LCAyLjA1OTkyIiwgXAotICAgICAgICAgICIwLjIyMjIwNSwgMC41MjIyOTYsIDAuODE3Nzg3LCAxLjAyODQ5LCAxLjM2NDYyLCAxLjY1OTI0LCAyLjA3ODk1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTcwNTU0LCAwLjczNTg5OCwgMS4zMDAyNCwgMS43MDIwMSwgMi4zNDY2NSwgMi45MDk1NywgMy43MTMwNCIsIFwKLSAgICAgICAgICAiMC4xNzA1NzUsIDAuNzM1OTA2LCAxLjI5OTM2LCAxLjcwMjQxLCAyLjM0NjUsIDIuOTA5NDcsIDMuNzEzMzIiLCBcCi0gICAgICAgICAgIjAuMTcwMDk0LCAwLjczNTY2MywgMS4zMDAxOSwgMS43MDI0MiwgMi4zNDU4NCwgMi45MDg1NSwgMy43MTI1NSIsIFwKLSAgICAgICAgICAiMC4xNzAyMTUsIDAuNzM1ODE2LCAxLjI5OTg4LCAxLjcwMjgsIDIuMzQ1NTgsIDIuOTA5MzUsIDMuNzEzNzYiLCBcCi0gICAgICAgICAgIjAuMTcwMTYzLCAwLjczNTk0NiwgMS4zMDAyMiwgMS43MDI3NCwgMi4zNDU3MiwgMi45MDg4NSwgMy43MTI5NCIsIFwKLSAgICAgICAgICAiMC4xNzE5OTUsIDAuNzM2MTcsIDEuMjk5NjUsIDEuNzAyNjYsIDIuMzQ2MzIsIDIuOTA3OCwgMy43MTE4NCIsIFwKLSAgICAgICAgICAiMC4xNzQ5NTcsIDAuNzM2MDg4LCAxLjI5OTU1LCAxLjcwMjEsIDIuMzQ1NjIsIDIuOTA5MTYsIDMuNzEyODYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTIiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTI5NDExLCAwLjUzODk0OCwgMC45NDU4NjIsIDEuMjM2MjUsIDEuNzAwNzUsIDIuMTA2OTMsIDIuNjg2NDQiLCBcCi0gICAgICAgICAgIjAuMTM4NjY5LCAwLjU0ODQ4NiwgMC45NTU0NDcsIDEuMjQ1OTIsIDEuNzEwNDQsIDIuMTE2NjUsIDIuNjk2NDMiLCBcCi0gICAgICAgICAgIjAuMTUwNjQ4LCAwLjU2MDcyMywgMC45NjcyOTgsIDEuMjU4MzMsIDEuNzIyNDYsIDIuMTI4NTEsIDIuNzA5MTUiLCBcCi0gICAgICAgICAgIjAuMTYyNDY4LCAwLjU3MjY2NiwgMC45Nzk1OTIsIDEuMjcwMjQsIDEuNzM0NTQsIDIuMTQwNzMsIDIuNzIwNjEiLCBcCi0gICAgICAgICAgIjAuMTc1MTA5LCAwLjU4NTI0OSwgMC45OTIzMTQsIDEuMjgyOTYsIDEuNzQ3NjEsIDIuMTUzNCwgMi43MzMzNSIsIFwKLSAgICAgICAgICAiMC4xOTQxMzQsIDAuNjA0MzkzLCAxLjAxMTIyLCAxLjMwMTU5LCAxLjc2NjE4LCAyLjE3MjYsIDIuNzUyNDUiLCBcCi0gICAgICAgICAgIjAuMjEyMjM0LCAwLjYyMTQsIDEuMDI4NiwgMS4zMTkwMiwgMS43ODMxMywgMi4xODk5NywgMi43Njk5MSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI5ODM2NCwgMS4wNzQzNiwgMS44NTQ1NywgMi40MTIwNCwgMy4zMDQxMiwgNC4wODU1MywgNS4yMDE2NCIsIFwKLSAgICAgICAgICAiMC4yOTgyOTUsIDEuMDc0MzcsIDEuODU0NzEsIDIuNDExODYsIDMuMzA0MDgsIDQuMDg1NTIsIDUuMjAxMzUiLCBcCi0gICAgICAgICAgIjAuMjk3MzE4LCAxLjA3NDM3LCAxLjg1NDM3LCAyLjQxMjAzLCAzLjMwNDI4LCA0LjA4NTU4LCA1LjIwMTciLCBcCi0gICAgICAgICAgIjAuMjk3ODI0LCAxLjA3NDI3LCAxLjg1NDM4LCAyLjQxMTczLCAzLjMwNDIsIDQuMDg1OCwgNS4yMDA5MyIsIFwKLSAgICAgICAgICAiMC4zMDAyMTQsIDEuMDc0MzUsIDEuODU0MjQsIDIuNDEyMDMsIDMuMzA0MjYsIDQuMDg1ODIsIDUuMjAwOTIiLCBcCi0gICAgICAgICAgIjAuMzA2OTAyLCAxLjA3NDMzLCAxLjg1NDQsIDIuNDExNjksIDMuMzA0NDIsIDQuMDg1NjgsIDUuMjAwOTIiLCBcCi0gICAgICAgICAgIjAuMzE0NjEyLCAxLjA3NDIzLCAxLjg1NDMzLCAyLjQxMTczLCAzLjMwNDM0LCA0LjA4NTU4LCA1LjIwMTUzIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTE0Mzk1LCAwLjQxMjgzNiwgMC43MDc4MTcsIDAuOTE4MzU1LCAxLjI1NDMzLCAxLjU0ODg5LCAxLjk2OTE5IiwgXAotICAgICAgICAgICIwLjEyNjczMiwgMC40MjU1MDYsIDAuNzIwNTk5LCAwLjkzMDg0MiwgMS4yNjY5NywgMS41NjEyNCwgMS45ODE3MiIsIFwKLSAgICAgICAgICAiMC4xNDE1NDEsIDAuNDQwNTUsIDAuNzM1NzM0LCAwLjk0NjA0OSwgMS4yODIxLCAxLjU3NjczLCAxLjk5NjE0IiwgXAotICAgICAgICAgICIwLjE1NTcxMywgMC40NTQ5MTcsIDAuNzQ5OTkzLCAwLjk2MDU2MywgMS4yOTY4OSwgMS41OTA2MiwgMi4wMTEyNCIsIFwKLSAgICAgICAgICAiMC4xNjk0NDgsIDAuNDY4ODEzLCAwLjc2Mzk3NSwgMC45NzQzNDYsIDEuMzExMDIsIDEuNjA0NjcsIDIuMDI0NTYiLCBcCi0gICAgICAgICAgIjAuMTkwOTEyLCAwLjQ5MDUwNiwgMC43ODU2NTMsIDAuOTk2MDEyLCAxLjMzMjIsIDEuNjI2NywgMi4wNDYzMiIsIFwKLSAgICAgICAgICAiMC4yMDk3MzUsIDAuNTA5MzA5LCAwLjgwNDY0NCwgMS4wMTQ5OSwgMS4zNTEzNiwgMS42NDUzLCAyLjA2NTQ3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTU3NTQ1LCAwLjcyMjI5MSwgMS4yODUxMiwgMS42ODc5OCwgMi4zMzA3MiwgMi44OTQzMiwgMy42OTcwOSIsIFwKLSAgICAgICAgICAiMC4xNTc4NTgsIDAuNzIxNzE5LCAxLjI4NTc5LCAxLjY4NzM3LCAyLjMzMTI5LCAyLjg5NDI5LCAzLjY5ODI0IiwgXAotICAgICAgICAgICIwLjE1NzU3NywgMC43MjE3MDYsIDEuMjg1MTYsIDEuNjg3OTYsIDIuMzI5NzgsIDIuODkzMDYsIDMuNjk4MTciLCBcCi0gICAgICAgICAgIjAuMTU3NTA5LCAwLjcyMTgxOSwgMS4yODU2OSwgMS42ODc1OCwgMi4zMzA5MiwgMi44OTQxOCwgMy42OTY4OSIsIFwKLSAgICAgICAgICAiMC4xNTc1MzcsIDAuNzIxNjA3LCAxLjI4NTc0LCAxLjY4Nzk4LCAyLjMzMTAyLCAyLjg5MzQxLCAzLjY5NzM0IiwgXAotICAgICAgICAgICIwLjE1OTkxMSwgMC43MjIxNzgsIDEuMjg1MTcsIDEuNjg3MywgMi4zMzEzMSwgMi44OTQ0NCwgMy42OTczMyIsIFwKLSAgICAgICAgICAiMC4xNjMxODQsIDAuNzIyMTA5LCAxLjI4NTYsIDEuNjg3MzEsIDIuMzMwNTUsIDIuODkzMzEsIDMuNjk3MzEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjAiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTIzMDIxLCAwLjUyOTk1NiwgMC45MzY3MjIsIDEuMjI2ODQsIDEuNjkxNTksIDIuMDk4MTYsIDIuNjc5MDYiLCBcCi0gICAgICAgICAgIjAuMTM0ODI2LCAwLjU0MjI3MywgMC45NDg3MzQsIDEuMjM5MzksIDEuNzAzNjgsIDIuMTEwNTIsIDIuNjkxMDYiLCBcCi0gICAgICAgICAgIjAuMTQ3OTc3LCAwLjU1NTgxNywgMC45NjIyMDIsIDEuMjUyNSwgMS43MTcyNCwgMi4xMjQwOSwgMi43MDQ1IiwgXAotICAgICAgICAgICIwLjE2MDE1LCAwLjU2ODExNiwgMC45NzQ1NTUsIDEuMjY1MzMsIDEuNzMwMDIsIDIuMTM2MywgMi43MTY4NCIsIFwKLSAgICAgICAgICAiMC4xNzE1ODUsIDAuNTc5Mzg0LCAwLjk4NjY2NywgMS4yNzY5NywgMS43NDEyNCwgMi4xNDc5NCwgMi43Mjg2NCIsIFwKLSAgICAgICAgICAiMC4xODkzNjgsIDAuNTk3NzQxLCAxLjAwNDIyLCAxLjI5NTI4LCAxLjc1OTMyLCAyLjE2NTg4LCAyLjc0NjY0IiwgXAotICAgICAgICAgICIwLjIwNDI5NywgMC42MTIzNTksIDEuMDE5NDEsIDEuMzEwMTQsIDEuNzc0MjYsIDIuMTgxMDksIDIuNzYxNyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI2NzQ0OSwgMS4wNDIyNywgMS44MjE3OSwgMi4zNzkyOSwgMy4yNzE3OCwgNC4wNTMwNiwgNS4xNjg5NCIsIFwKLSAgICAgICAgICAiMC4yNjc0MTcsIDEuMDQyNDEsIDEuODIxODYsIDIuMzc5MzIsIDMuMjcxNzksIDQuMDUzMjMsIDUuMTY5MDIiLCBcCi0gICAgICAgICAgIjAuMjY3NDMyLCAxLjA0MjQyLCAxLjgyMTkyLCAyLjM3OTMzLCAzLjI3MTcsIDQuMDUzMjIsIDUuMTY4MzYiLCBcCi0gICAgICAgICAgIjAuMjY3NDY3LCAxLjA0MjI1LCAxLjgyMTkxLCAyLjM3OTEzLCAzLjI3MTcyLCA0LjA1MzMzLCA1LjE2OTQiLCBcCi0gICAgICAgICAgIjAuMjY3ODY0LCAxLjA0MjI2LCAxLjgyMjAyLCAyLjM3OTE3LCAzLjI3MTU2LCA0LjA1MzM0LCA1LjE2OTE4IiwgXAotICAgICAgICAgICIwLjI2OTc1MSwgMS4wNDIzMywgMS44MjE3NCwgMi4zNzkzNywgMy4yNzE4LCA0LjA1MjQ3LCA1LjE2OTUxIiwgXAotICAgICAgICAgICIwLjI3MjMyNiwgMS4wNDIyNSwgMS44MjE3OCwgMi4zNzkzOCwgMy4yNzE0NywgNC4wNTMyNywgNS4xNjkxNyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExNzg5NCwgMC40MTk1NywgMC43MTU2MTQsIDAuOTI2Mjg5LCAxLjI2MzIsIDEuNTU3NjQsIDEuOTc3NjkiLCBcCi0gICAgICAgICAgIjAuMTI4MTQ4LCAwLjQyOTg5MiwgMC43MjU4OSwgMC45MzY0NCwgMS4yNzMzOSwgMS41Njc1OCwgMS45ODgwNiIsIFwKLSAgICAgICAgICAiMC4xNDA5MzIsIDAuNDQzMDE4LCAwLjczOTA2NCwgMC45NDk2ODksIDEuMjg2NTMsIDEuNTgxMDEsIDIuMDAxODMiLCBcCi0gICAgICAgICAgIjAuMTU0NDc1LCAwLjQ1NjQwMiwgMC43NTI0MTcsIDAuOTYzMzAxLCAxLjI5OTczLCAxLjU5NDYsIDIuMDE1MjUiLCBcCi0gICAgICAgICAgIjAuMTY3NTgzLCAwLjQ2OTM5MywgMC43NjU1NDIsIDAuOTc2NDUyLCAxLjMxMzI2LCAxLjYwNzg3LCAyLjAyODI2IiwgXAotICAgICAgICAgICIwLjE4ODkzNywgMC40OTA3MzUsIDAuNzg2Njk4LCAwLjk5NzM5NSwgMS4zMzQxMiwgMS42MjgyNywgMi4wNDkxNyIsIFwKLSAgICAgICAgICAiMC4yMDg2OTcsIDAuNTA4NjEsIDAuODA1MTUzLCAxLjAxNTkxLCAxLjM1MjU0LCAxLjY0NzMxLCAyLjA2NzA3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTgzMzg0LCAwLjc1MDY5MiwgMS4zMTQ5LCAxLjcxNjgxLCAyLjM2MTI3LCAyLjkyNDk1LCAzLjcyOTM1IiwgXAotICAgICAgICAgICIwLjE4MzM0NCwgMC43NDk4MjYsIDEuMzE0MSwgMS43MTY2NiwgMi4zNjE1NCwgMi45MjQwNCwgMy43Mjk0MiIsIFwKLSAgICAgICAgICAiMC4xODI2NCwgMC43NTAwNDgsIDEuMzE0NzMsIDEuNzE2MzMsIDIuMzYwNDQsIDIuOTI0OSwgMy43MjgwMSIsIFwKLSAgICAgICAgICAiMC4xODI0MjgsIDAuNzUwMDQzLCAxLjMxNCwgMS43MTcyLCAyLjM2MDU2LCAyLjkyMzcsIDMuNzI4NSIsIFwKLSAgICAgICAgICAiMC4xODQyMTIsIDAuNzUwNjMsIDEuMzE0MTUsIDEuNzE3NCwgMi4zNjE2MSwgMi45MjM3LCAzLjcyOTg1IiwgXAotICAgICAgICAgICIwLjE4OTk5NCwgMC43NDk4MiwgMS4zMTM5OCwgMS43MTY3NywgMi4zNjA5NCwgMi45MjQ2NywgMy43Mjk2MiIsIFwKLSAgICAgICAgICAiMC4xOTY1OTcsIDAuNzUwNTI1LCAxLjMxNDU5LCAxLjcxNjI5LCAyLjM2MDU5LCAyLjkyNDczLCAzLjcyNzEzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIxIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExMzcwNSwgMC41MjA4NzUsIDAuOTI3MTk3LCAxLjIxNzc2LCAxLjY4MjE3LCAyLjA4OTIxLCAyLjY2OTczIiwgXAotICAgICAgICAgICIwLjEyNDM1NiwgMC41MzE3MDksIDAuOTM4MTYxLCAxLjIyODY2LCAxLjY5MzI0LCAyLjA5OTcxLCAyLjY4MDQ3IiwgXAotICAgICAgICAgICIwLjEzNjk2OSwgMC41NDQ2MzcsIDAuOTUxMjIyLCAxLjI0MTkyLCAxLjcwNjQxLCAyLjExMjg5LCAyLjY5MzQyIiwgXAotICAgICAgICAgICIwLjE0ODcyOCwgMC41NTY3MzIsIDAuOTYzMTUyLCAxLjI1MzkxLCAxLjcxODM5LCAyLjEyNTA2LCAyLjcwNTYyIiwgXAotICAgICAgICAgICIwLjE2MDU3OSwgMC41Njg2OTEsIDAuOTc1MTc2LCAxLjI2NTc3LCAxLjczMDQ3LCAyLjEzNjc1LCAyLjcxNzc5IiwgXAotICAgICAgICAgICIwLjE3OTExMywgMC41ODczNTQsIDAuOTk0MTExLCAxLjI4NTE3LCAxLjc0OTI0LCAyLjE1NTY5LCAyLjczNjc2IiwgXAotICAgICAgICAgICIwLjE5NTQ2LCAwLjYwNDAyMiwgMS4wMTA2LCAxLjMwMTU4LCAxLjc2NjQyLCAyLjE3MjMzLCAyLjc1MzIyIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjY3NDAzLCAxLjA0MjIxLCAxLjgyMTg5LCAyLjM3OTIxLCAzLjI3MTgyLCA0LjA1MjY3LCA1LjE2ODg5IiwgXAotICAgICAgICAgICIwLjI2NzQzNiwgMS4wNDIzLCAxLjgyMTg2LCAyLjM3OTA3LCAzLjI3MTc1LCA0LjA1MjYzLCA1LjE2ODM2IiwgXAotICAgICAgICAgICIwLjI2NzQzMiwgMS4wNDIzOCwgMS44MjE4NSwgMi4zNzkxOSwgMy4yNzE4MSwgNC4wNTMzLCA1LjE2OTQ0IiwgXAotICAgICAgICAgICIwLjI2NzcxNSwgMS4wNDIzNCwgMS44MjE5MSwgMi4zNzkxOCwgMy4yNzE4MSwgNC4wNTMyMiwgNS4xNjg0NyIsIFwKLSAgICAgICAgICAiMC4yNjkwNzksIDEuMDQyNDIsIDEuODIxODMsIDIuMzc5MDYsIDMuMjcxNzMsIDQuMDUyOTQsIDUuMTY5NDQiLCBcCi0gICAgICAgICAgIjAuMjczMDI5LCAxLjA0MjIsIDEuODIxNzQsIDIuMzc5MzUsIDMuMjcxODUsIDQuMDUzMTMsIDUuMTY4OTMiLCBcCi0gICAgICAgICAgIjAuMjc4MDU2LCAxLjA0MjI1LCAxLjgyMTcsIDIuMzc5NjIsIDMuMjcxNDksIDQuMDUzMjUsIDUuMTY5NDYiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDcwNjMsIDAuNDA2MzksIDAuNzAxNTY0LCAwLjkxMjIwMywgMS4yNDg0MiwgMS41NDIzMSwgMS45NjI5MiIsIFwKLSAgICAgICAgICAiMC4xMTc1NjYsIDAuNDE3MTM0LCAwLjcxMjQyMiwgMC45MjI4MDUsIDEuMjU4OSwgMS41NTI5MiwgMS45NzI5OSIsIFwKLSAgICAgICAgICAiMC4xMzA5NzUsIDAuNDMwODQ0LCAwLjcyNjE3OCwgMC45MzY0NDgsIDEuMjcyNzIsIDEuNTY2NzMsIDEuOTg2ODEiLCBcCi0gICAgICAgICAgIjAuMTQ0NjY4LCAwLjQ0NDMyMywgMC43Mzk2NjIsIDAuOTUwMjU2LCAxLjI4NjMxLCAxLjU4MDk2LCAyLjAwMTIiLCBcCi0gICAgICAgICAgIjAuMTU3NjQyLCAwLjQ1NjkxNSwgMC43NTIyMjYsIDAuOTYyODMsIDEuMjk5MjQsIDEuNTkzNiwgMi4wMTM3IiwgXAotICAgICAgICAgICIwLjE3OTEzNCwgMC40Nzg0MDYsIDAuNzc0NjEzLCAwLjk4NDQxNiwgMS4zMjA0NCwgMS42MTUwOCwgMi4wMzQ1MyIsIFwKLSAgICAgICAgICAiMC4xOTgwNzMsIDAuNDk2MTY0LCAwLjc5MTc1NSwgMS4wMDIyMiwgMS4zMzg2OCwgMS42MzI5NSwgMi4wNTI1NiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE3MDIwNSwgMC43MzU0NTgsIDEuMjk4OTksIDEuNzAyMDIsIDIuMzQ1ODksIDIuOTA4NzQsIDMuNzEyNTkiLCBcCi0gICAgICAgICAgIjAuMTcwMjM1LCAwLjczNTY5OSwgMS4yOTk4NCwgMS43MDIwOCwgMi4zNDU2OCwgMi45MDg2LCAzLjcxMjgyIiwgXAotICAgICAgICAgICIwLjE2OTUwNiwgMC43MzU5NDMsIDEuMjk5NzUsIDEuNzAxNSwgMi4zNDU2MSwgMi45MDg1MSwgMy43MTI3MyIsIFwKLSAgICAgICAgICAiMC4xNjk4MjIsIDAuNzM1NTQ1LCAxLjI5OTM5LCAxLjcwMjA0LCAyLjM0NTE0LCAyLjkwNzc0LCAzLjcxMjg2IiwgXAotICAgICAgICAgICIwLjE3MjIxNCwgMC43MzU2NjIsIDEuMjk5MTUsIDEuNzAyMDcsIDIuMzQ1OTUsIDIuOTA3NzUsIDMuNzEzNDUiLCBcCi0gICAgICAgICAgIjAuMTc4NTIyLCAwLjczNTkxMywgMS4yOTk3NCwgMS43MDIyNCwgMi4zNDQ5NywgMi45MDc5MywgMy43MTE5IiwgXAotICAgICAgICAgICIwLjE4NjIzMSwgMC43MzU2NCwgMS4yOTk3NCwgMS43MDE3NiwgMi4zNDU4NSwgMi45MDc2NSwgMy43MTE5NiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTUwNTcsIDAuNTAyMjY2LCAwLjkwOTExNCwgMS4xOTkxLCAxLjY2MzU1LCAyLjA3MDI4LCAyLjY1MTAxIiwgXAotICAgICAgICAgICIwLjEwNDU2MSwgMC41MTIxMjQsIDAuOTE4NjM3LCAxLjIwOTE1LCAxLjY3MzU3LCAyLjA4MDMsIDIuNjYxMjEiLCBcCi0gICAgICAgICAgIjAuMTE2NDY0LCAwLjUyNDUwNSwgMC45MzA5NDksIDEuMjIxMzMsIDEuNjg2LCAyLjA5MjY4LCAyLjY3MzU1IiwgXAotICAgICAgICAgICIwLjEyODIwNCwgMC41MzYzMTIsIDAuOTQzMTI5LCAxLjIzMzU5LCAxLjY5ODAzLCAyLjEwNDc5LCAyLjY4NTUzIiwgXAotICAgICAgICAgICIwLjE0MDcxMywgMC41NDg4NTEsIDAuOTU1OTE0LCAxLjI0NjA4LCAxLjcxMDcxLCAyLjExNzU1LCAyLjY5ODEzIiwgXAotICAgICAgICAgICIwLjE2MDY3MywgMC41Njc5NzQsIDAuOTc0NzU0LCAxLjI2NTE5LCAxLjcyOTk5LCAyLjEzNjYzLCAyLjcxNzI5IiwgXAotICAgICAgICAgICIwLjE3ODQzNiwgMC41ODUxODUsIDAuOTkyMDU3LCAxLjI4MjM1LCAxLjc0NzE0LCAyLjE1MzYxLCAyLjczNDQ2Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjY3MTY4LCAxLjA0MjIyLCAxLjgyMjEzLCAyLjM3OTM5LCAzLjI3MTQ4LCA0LjA1MjYsIDUuMTY5MzkiLCBcCi0gICAgICAgICAgIjAuMjY2NzcyLCAxLjA0MjI4LCAxLjgyMTkyLCAyLjM3OTM0LCAzLjI3MTQyLCA0LjA1MjU0LCA1LjE2OTQ2IiwgXAotICAgICAgICAgICIwLjI2NjEzOSwgMS4wNDIzMiwgMS44MjE3NiwgMi4zNzkzMSwgMy4yNzE1NSwgNC4wNTI2LCA1LjE2OTQ2IiwgXAotICAgICAgICAgICIwLjI2ODQwNiwgMS4wNDIyOCwgMS44MjE3MiwgMi4zNzkyOCwgMy4yNzE0MywgNC4wNTMwNywgNS4xNjkiLCBcCi0gICAgICAgICAgIjAuMjcyNTA5LCAxLjA0MjE2LCAxLjgyMTc5LCAyLjM3OTM3LCAzLjI3MTQyLCA0LjA1MzM1LCA1LjE2ODg4IiwgXAotICAgICAgICAgICIwLjI4MTU1MSwgMS4wNDIyOCwgMS44MjE3OCwgMi4zNzkwNywgMy4yNzE2MSwgNC4wNTMyMywgNS4xNjg3NCIsIFwKLSAgICAgICAgICAiMC4yOTEyOTMsIDEuMDQyMTYsIDEuODIxOTMsIDIuMzc5MjYsIDMuMjcxNzUsIDQuMDUzMDYsIDUuMTY5MzciKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTQ0NjMsIDAuMzkyODI3LCAwLjY4NzY3NSwgMC44OTc5NjEsIDEuMjMzOTEsIDEuNTI3OTcsIDEuOTQ3NjYiLCBcCi0gICAgICAgICAgIjAuMTA1NTYzLCAwLjQwNDIxOSwgMC42OTkwOTYsIDAuOTA5NDMyLCAxLjI0NTM3LCAxLjUzOTQ4LCAxLjk1OTc3IiwgXAotICAgICAgICAgICIwLjExODQ3NywgMC40MTc0NzgsIDAuNzEyNDA1LCAwLjkyMjg0MSwgMS4yNTg5MywgMS41NTI4MiwgMS45NzI4MiIsIFwKLSAgICAgICAgICAiMC4xMzE1NTcsIDAuNDMwNjMxLCAwLjcyNTcyOSwgMC45MzU5MDcsIDEuMjcyMDksIDEuNTY1OTQsIDEuOTg2MDUiLCBcCi0gICAgICAgICAgIjAuMTQ1NzA2LCAwLjQ0NDc0NCwgMC43Mzg5MSwgMC45NDk0MTgsIDEuMjg1NjMsIDEuNTc5OTMsIDEuOTk5ODQiLCBcCi0gICAgICAgICAgIjAuMTY2ODE5LCAwLjQ2NDk3NiwgMC43NjAwNTIsIDAuOTcwMzkxLCAxLjMwNjU3LCAxLjYwMDM2LCAyLjAyMDczIiwgXAotICAgICAgICAgICIwLjE4NjIzMywgMC40ODQ2MywgMC43ODAyMDEsIDAuOTkwNTQ2LCAxLjMyNjg2LCAxLjYyMTE0LCAyLjA0MDI2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTU3ODcxLCAwLjcyMjA4NSwgMS4yODQ2LCAxLjY4NjQ0LCAyLjMzMDI1LCAyLjg5MjEzLCAzLjY5NjU0IiwgXAotICAgICAgICAgICIwLjE1NzQxMSwgMC43MjE1MiwgMS4yODQ0NiwgMS42ODYzNywgMi4zMzAxLCAyLjg5MjA0LCAzLjY5NjM4IiwgXAotICAgICAgICAgICIwLjE1NjQ4NSwgMC43MjEyOCwgMS4yODQ1NiwgMS42ODcwMSwgMi4zMzAzMSwgMi44OTE1OSwgMy42OTY2NiIsIFwKLSAgICAgICAgICAiMC4xNTc1OTEsIDAuNzIxNDUsIDEuMjg1MTUsIDEuNjg2NTIsIDIuMzMwMTUsIDIuODkyMDUsIDMuNjk2NiIsIFwKLSAgICAgICAgICAiMC4xNjAzNzYsIDAuNzIxMzc2LCAxLjI4NTA5LCAxLjY4NzIyLCAyLjMzMDM0LCAyLjg5MjQ4LCAzLjY5NzAzIiwgXAotICAgICAgICAgICIwLjE2Nzc3OSwgMC43MjEzMzksIDEuMjg0NjEsIDEuNjg2NCwgMi4zMjkzMiwgMi44OTI3NiwgMy42OTY4MSIsIFwKLSAgICAgICAgICAiMC4xNzU5MTMsIDAuNzIxMjM1LCAxLjI4NDU0LCAxLjY4NjY0LCAyLjMyOTcsIDIuODkzMTgsIDMuNjk2MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTc1NzcsIDAuMDE3NTY5LCAwLjAxNzU2MiwgMC4wMTc1NTcsIDAuMDE3NTUsIDAuMDE3NTQyLCAwLjAxNzUzNSIsIFwKLSAgICAgICAgICAiMC4wMTc1MzUsIDAuMDE3NTQsIDAuMDE3NTMzLCAwLjAxNzUyOCwgMC4wMTc1MTgsIDAuMDE3NTEyLCAwLjAxNzUwMyIsIFwKLSAgICAgICAgICAiMC4wMTc1MTIsIDAuMDE3NTI1LCAwLjAxNzUyMSwgMC4wMTc1MTgsIDAuMDE3NTEzLCAwLjAxNzUwNCwgMC4wMTc0OTUiLCBcCi0gICAgICAgICAgIjAuMDE3NDk1LCAwLjAxNzUxOCwgMC4wMTc1MTYsIDAuMDE3NTEsIDAuMDE3NTA3LCAwLjAxNzUsIDAuMDE3NDg5IiwgXAotICAgICAgICAgICIwLjAxNzQ4MSwgMC4wMTc1MTIsIDAuMDE3NTA5LCAwLjAxNzUwNiwgMC4wMTc1LCAwLjAxNzQ5NiwgMC4wMTc0ODgiLCBcCi0gICAgICAgICAgIjAuMDE3NDcsIDAuMDE3NTA1LCAwLjAxNzUwNSwgMC4wMTc1MDMsIDAuMDE3NDk4LCAwLjAxNzQ5NCwgMC4wMTc0ODUiLCBcCi0gICAgICAgICAgIjAuMDE3NDU4LCAwLjAxNzQ5OSwgMC4wMTc1MDIsIDAuMDE3NSwgMC4wMTc0OTQsIDAuMDE3NDg5LCAwLjAxNzQ4MiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2NjEsIDAuMDA2NjA4LCAwLjAwNjYwNSwgMC4wMDY2LCAwLjAwNjU5NiwgMC4wMDY1OTgsIDAuMDA2NTg1IiwgXAotICAgICAgICAgICIwLjAwNjUyNCwgMC4wMDY1MjksIDAuMDA2NTI2LCAwLjAwNjUyMiwgMC4wMDY1MiwgMC4wMDY1MTYsIDAuMDA2NTEzIiwgXAotICAgICAgICAgICIwLjAwNjQ5LCAwLjAwNjUsIDAuMDA2NDk3LCAwLjAwNjQ5NywgMC4wMDY0OSwgMC4wMDY0OTEsIDAuMDA2NDg1IiwgXAotICAgICAgICAgICIwLjAwNjQ3LCAwLjAwNjQ4OCwgMC4wMDY0ODcsIDAuMDA2NDgzLCAwLjAwNjQ3OSwgMC4wMDY0NzgsIDAuMDA2NDc0IiwgXAotICAgICAgICAgICIwLjAwNjQ0NywgMC4wMDY0NzgsIDAuMDA2NDc5LCAwLjAwNjQ4LCAwLjAwNjQ3NywgMC4wMDY0NzMsIDAuMDA2NDY3IiwgXAotICAgICAgICAgICIwLjAwNjQzOCwgMC4wMDY0NjcsIDAuMDA2NDcsIDAuMDA2NDcsIDAuMDA2NDY2LCAwLjAwNjQ2NSwgMC4wMDY0NjMiLCBcCi0gICAgICAgICAgIjAuMDA2NDIyLCAwLjAwNjQ1OCwgMC4wMDY0NjUsIDAuMDA2NDY4LCAwLjAwNjQ2NywgMC4wMDY0NjMsIDAuMDA2NDYxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE1Nzg4LCAwLjAxNTc4MiwgMC4wMTU3NzQsIDAuMDE1NzcyLCAwLjAxNTc2NCwgMC4wMTU3NTQsIDAuMDE1NzQ3IiwgXAotICAgICAgICAgICIwLjAxNTc0NiwgMC4wMTU3NDcsIDAuMDE1NzQ0LCAwLjAxNTc0MSwgMC4wMTU3MzQsIDAuMDE1NzI5LCAwLjAxNTcxNiIsIFwKLSAgICAgICAgICAiMC4wMTU3MjIsIDAuMDE1NzM3LCAwLjAxNTczMSwgMC4wMTU3MjksIDAuMDE1NzIsIDAuMDE1NzEzLCAwLjAxNTcwNSIsIFwKLSAgICAgICAgICAiMC4wMTU3MDcsIDAuMDE1NzI5LCAwLjAxNTcyNSwgMC4wMTU3MjMsIDAuMDE1NzE0LCAwLjAxNTcwOSwgMC4wMTU3IiwgXAotICAgICAgICAgICIwLjAxNTY5NywgMC4wMTU3MjIsIDAuMDE1NzI0LCAwLjAxNTcxOCwgMC4wMTU3MTIsIDAuMDE1NzA5LCAwLjAxNTY5NyIsIFwKLSAgICAgICAgICAiMC4wMTU2NzgsIDAuMDE1NzE3LCAwLjAxNTcxNywgMC4wMTU3MTMsIDAuMDE1NzA4LCAwLjAxNTcwNywgMC4wMTU2OTciLCBcCi0gICAgICAgICAgIjAuMDE1NjY4LCAwLjAxNTcwOSwgMC4wMTU3MTMsIDAuMDE1NzEsIDAuMDE1NzA2LCAwLjAxNTcsIDAuMDE1Njk0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDUzNDgsIDAuMDA1MzQ2LCAwLjAwNTM0MywgMC4wMDUzNDcsIDAuMDA1MzQxLCAwLjAwNTMzNiwgMC4wMDUzMzQiLCBcCi0gICAgICAgICAgIjAuMDA1MzI1LCAwLjAwNTM0MiwgMC4wMDUzNDMsIDAuMDA1MzQyLCAwLjAwNTMzNiwgMC4wMDUzMzcsIDAuMDA1MzMiLCBcCi0gICAgICAgICAgIjAuMDA1Mjk1LCAwLjAwNTMzMywgMC4wMDUzMzgsIDAuMDA1MzM3LCAwLjAwNTMzOCwgMC4wMDUzMzYsIDAuMDA1MzMyIiwgXAotICAgICAgICAgICIwLjAwNTI2OCwgMC4wMDUzMjIsIDAuMDA1MzMsIDAuMDA1MzMxLCAwLjAwNTMzNCwgMC4wMDUzMzMsIDAuMDA1MzI4IiwgXAotICAgICAgICAgICIwLjAwNTI0MywgMC4wMDUzMTMsIDAuMDA1MzI2LCAwLjAwNTMyNywgMC4wMDUzMywgMC4wMDUzMywgMC4wMDUzMjciLCBcCi0gICAgICAgICAgIjAuMDA1MjEyLCAwLjAwNTMsIDAuMDA1MzE1LCAwLjAwNTMyMSwgMC4wMDUzMjIsIDAuMDA1MzIzLCAwLjAwNTMyNCIsIFwKLSAgICAgICAgICAiMC4wMDUxODQsIDAuMDA1Mjg0LCAwLjAwNTMwNSwgMC4wMDUzMTMsIDAuMDA1MzE3LCAwLjAwNTMyMSwgMC4wMDUzMiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEyIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxNDI5NCwgMC4wMTQyOSwgMC4wMTQyODQsIDAuMDE0MjgxLCAwLjAxNDI3NSwgMC4wMTQyNywgMC4wMTQyNTYiLCBcCi0gICAgICAgICAgIjAuMDE0MjQzLCAwLjAxNDI1NSwgMC4wMTQyNTIsIDAuMDE0MjQ4LCAwLjAxNDIzOSwgMC4wMTQyMzMsIDAuMDE0MjIzIiwgXAotICAgICAgICAgICIwLjAxNDE5LCAwLjAxNDIzOCwgMC4wMTQyMzUsIDAuMDE0MjM2LCAwLjAxNDIyOSwgMC4wMTQyMTksIDAuMDE0MjEyIiwgXAotICAgICAgICAgICIwLjAxNDE3OCwgMC4wMTQyMjUsIDAuMDE0MjI1LCAwLjAxNDIyNywgMC4wMTQyMjIsIDAuMDE0MjE1LCAwLjAxNDIwNCIsIFwKLSAgICAgICAgICAiMC4wMTQxNTcsIDAuMDE0MjE2LCAwLjAxNDIyMSwgMC4wMTQyMiwgMC4wMTQyMTUsIDAuMDE0MjA5LCAwLjAxNDIwMSIsIFwKLSAgICAgICAgICAiMC4wMTQxMzUsIDAuMDE0MjA0LCAwLjAxNDIxMSwgMC4wMTQyMTIsIDAuMDE0MjExLCAwLjAxNDIwNiwgMC4wMTQxOTYiLCBcCi0gICAgICAgICAgIjAuMDE0MTI3LCAwLjAxNDE5NSwgMC4wMTQyMDUsIDAuMDE0MjA2LCAwLjAxNDIwMywgMC4wMTQyMDIsIDAuMDE0MTkzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDM5NiwgMC4wMDM5NzgsIDAuMDAzOTc4LCAwLjAwMzk3NiwgMC4wMDM5NzEsIDAuMDAzOTc0LCAwLjAwMzk3IiwgXAotICAgICAgICAgICIwLjAwMzk4MSwgMC4wMDQwMzYsIDAuMDA0MDQ0LCAwLjAwNDA0NiwgMC4wMDQwNDYsIDAuMDA0MDQzLCAwLjAwNDA0MyIsIFwKLSAgICAgICAgICAiMC4wMDM5NTEsIDAuMDA0MDQ0LCAwLjAwNDA1NywgMC4wMDQwNjIsIDAuMDA0MDY0LCAwLjAwNDA2NCwgMC4wMDQwNjMiLCBcCi0gICAgICAgICAgIjAuMDAzOTE4LCAwLjAwNDAzNSwgMC4wMDQwNTUsIDAuMDA0MDYyLCAwLjAwNDA2NywgMC4wMDQwNjcsIDAuMDA0MDY4IiwgXAotICAgICAgICAgICIwLjAwMzg4OCwgMC4wMDQwMjQsIDAuMDA0MDUsIDAuMDA0MDU4LCAwLjAwNDA2NCwgMC4wMDQwNjgsIDAuMDA0MDY5IiwgXAotICAgICAgICAgICIwLjAwMzg0MywgMC4wMDQwMDUsIDAuMDA0MDQxLCAwLjAwNDA1MiwgMC4wMDQwNTksIDAuMDA0MDY2LCAwLjAwNDA2OCIsIFwKLSAgICAgICAgICAiMC4wMDM4MDksIDAuMDAzOTksIDAuMDA0MDMsIDAuMDA0MDQzLCAwLjAwNDA1NCwgMC4wMDQwNTksIDAuMDA0MDYzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEyOTQxLCAwLjAxMjk1LCAwLjAxMjk1MSwgMC4wMTI5NSwgMC4wMTI5NTIsIDAuMDEyOTUzLCAwLjAxMjk1IiwgXAotICAgICAgICAgICIwLjAxMjkzMSwgMC4wMTI5NzMsIDAuMDEyOTc3LCAwLjAxMjk4LCAwLjAxMjk4LCAwLjAxMjk4MywgMC4wMTI5ODIiLCBcCi0gICAgICAgICAgIjAuMDEyOTAyLCAwLjAxMjk3MywgMC4wMTI5ODIsIDAuMDEyOTg2LCAwLjAxMjk4OCwgMC4wMTI5ODgsIDAuMDEyOTkiLCBcCi0gICAgICAgICAgIjAuMDEyODc1LCAwLjAxMjk2NiwgMC4wMTI5NzksIDAuMDEyOTg0LCAwLjAxMjk4OSwgMC4wMTI5OSwgMC4wMTI5ODkiLCBcCi0gICAgICAgICAgIjAuMDEyODUzLCAwLjAxMjk1NywgMC4wMTI5NzQsIDAuMDEyOTgsIDAuMDEyOTg0LCAwLjAxMjk4NywgMC4wMTI5ODgiLCBcCi0gICAgICAgICAgIjAuMDEyODI4LCAwLjAxMjk0NSwgMC4wMTI5NjYsIDAuMDEyOTc0LCAwLjAxMjk4MSwgMC4wMTI5ODQsIDAuMDEyOTg1IiwgXAotICAgICAgICAgICIwLjAxMjgxMSwgMC4wMTI5MzQsIDAuMDEyOTU5LCAwLjAxMjk3LCAwLjAxMjk3OCwgMC4wMTI5ODIsIDAuMDEyOTg3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDY2MDYsIDAuMDA2NjAyLCAwLjAwNjYwMSwgMC4wMDY1OTgsIDAuMDA2NTk2LCAwLjAwNjU5MiwgMC4wMDY1ODciLCBcCi0gICAgICAgICAgIjAuMDA2NTE4LCAwLjAwNjUyNSwgMC4wMDY1MiwgMC4wMDY1MjEsIDAuMDA2NTE5LCAwLjAwNjUxNiwgMC4wMDY1MDgiLCBcCi0gICAgICAgICAgIjAuMDA2NDY4LCAwLjAwNjQ5NSwgMC4wMDY0OTYsIDAuMDA2NDkxLCAwLjAwNjQ5LCAwLjAwNjQ4NSwgMC4wMDY0NzkiLCBcCi0gICAgICAgICAgIjAuMDA2NDU2LCAwLjAwNjQ3OSwgMC4wMDY0ODEsIDAuMDA2NDgxLCAwLjAwNjQ3NywgMC4wMDY0NzcsIDAuMDA2NDY5IiwgXAotICAgICAgICAgICIwLjAwNjQ0MywgMC4wMDY0NzIsIDAuMDA2NDczLCAwLjAwNjQ3NSwgMC4wMDY0NzIsIDAuMDA2NDY4LCAwLjAwNjQ2NyIsIFwKLSAgICAgICAgICAiMC4wMDY0MjEsIDAuMDA2NDU4LCAwLjAwNjQ2NCwgMC4wMDY0NjYsIDAuMDA2NDY2LCAwLjAwNjQ2NCwgMC4wMDY0NTciLCBcCi0gICAgICAgICAgIjAuMDA2NDE5LCAwLjAwNjQ0NiwgMC4wMDY0NTcsIDAuMDA2NDU5LCAwLjAwNjQ1OSwgMC4wMDY0NTgsIDAuMDA2NDU2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDExMTQ2LCAwLjAxMTE1NiwgMC4wMTExNTcsIDAuMDExMTU3LCAwLjAxMTE1OCwgMC4wMTExNTcsIDAuMDExMTU3IiwgXAotICAgICAgICAgICIwLjAxMTEzNiwgMC4wMTExNzksIDAuMDExMTgzLCAwLjAxMTE4NSwgMC4wMTExODYsIDAuMDExMTg2LCAwLjAxMTE4NiIsIFwKLSAgICAgICAgICAiMC4wMTExMDUsIDAuMDExMTc4LCAwLjAxMTE4NiwgMC4wMTExODcsIDAuMDExMTkyLCAwLjAxMTE5MiwgMC4wMTExOTMiLCBcCi0gICAgICAgICAgIjAuMDExMDc5LCAwLjAxMTE3LCAwLjAxMTE4NCwgMC4wMTExODcsIDAuMDExMTkyLCAwLjAxMTE5NCwgMC4wMTExOTUiLCBcCi0gICAgICAgICAgIjAuMDExMDU4LCAwLjAxMTE2MiwgMC4wMTExNzksIDAuMDExMTg0LCAwLjAxMTE4OSwgMC4wMTExOTIsIDAuMDExMTk1IiwgXAotICAgICAgICAgICIwLjAxMTAzMSwgMC4wMTExNSwgMC4wMTExNzIsIDAuMDExMTgsIDAuMDExMTg2LCAwLjAxMTE4OCwgMC4wMTExOSIsIFwKLSAgICAgICAgICAiMC4wMTEwMTYsIDAuMDExMTM5LCAwLjAxMTE2NCwgMC4wMTExNzMsIDAuMDExMTgsIDAuMDExMTg1LCAwLjAxMTE4OSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1MzQ2LCAwLjAwNTM0NywgMC4wMDUzNDYsIDAuMDA1MzQsIDAuMDA1MzQxLCAwLjAwNTMzOCwgMC4wMDUzMzEiLCBcCi0gICAgICAgICAgIjAuMDA1MzE4LCAwLjAwNTM0LCAwLjAwNTM0MSwgMC4wMDUzNCwgMC4wMDUzMzgsIDAuMDA1MzM3LCAwLjAwNTMzMyIsIFwKLSAgICAgICAgICAiMC4wMDUyNzYsIDAuMDA1MzMsIDAuMDA1MzM3LCAwLjAwNTMzNiwgMC4wMDUzMzMsIDAuMDA1MzM1LCAwLjAwNTMzIiwgXAotICAgICAgICAgICIwLjAwNTI1NiwgMC4wMDUzMTcsIDAuMDA1MzI5LCAwLjAwNTMzMiwgMC4wMDUzMzIsIDAuMDA1MzMsIDAuMDA1MzI4IiwgXAotICAgICAgICAgICIwLjAwNTIzNywgMC4wMDUzMDgsIDAuMDA1MzIxLCAwLjAwNTMyNywgMC4wMDUzMjgsIDAuMDA1MzI2LCAwLjAwNTMyNyIsIFwKLSAgICAgICAgICAiMC4wMDUyMDgsIDAuMDA1Mjk3LCAwLjAwNTMxNSwgMC4wMDUzMiwgMC4wMDUzMjIsIDAuMDA1MzIzLCAwLjAwNTMyNCIsIFwKLSAgICAgICAgICAiMC4wMDUxODksIDAuMDA1MjgxLCAwLjAwNTMwNiwgMC4wMDUzMTMsIDAuMDA1MzE5LCAwLjAwNTMxOSwgMC4wMDUzMTkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDk2NTcsIDAuMDA5NjcyLCAwLjAwOTY3NCwgMC4wMDk2NzQsIDAuMDA5Njc0LCAwLjAwOTY3NSwgMC4wMDk2NzQiLCBcCi0gICAgICAgICAgIjAuMDA5NjI3LCAwLjAwOTY5LCAwLjAwOTY5OCwgMC4wMDk2OTgsIDAuMDA5NzAxLCAwLjAwOTcwMSwgMC4wMDk3MDMiLCBcCi0gICAgICAgICAgIjAuMDA5NTgxLCAwLjAwOTY4MywgMC4wMDk2OTUsIDAuMDA5NzAxLCAwLjAwOTcwNCwgMC4wMDk3MDUsIDAuMDA5NzA3IiwgXAotICAgICAgICAgICIwLjAwOTU0NiwgMC4wMDk2NzMsIDAuMDA5NjkyLCAwLjAwOTY5OCwgMC4wMDk3MDQsIDAuMDA5NzA3LCAwLjAwOTcwOSIsIFwKLSAgICAgICAgICAiMC4wMDk1MTYsIDAuMDA5NjYsIDAuMDA5Njg0LCAwLjAwOTY5MiwgMC4wMDk2OTksIDAuMDA5NzAyLCAwLjAwOTcwNCIsIFwKLSAgICAgICAgICAiMC4wMDk0OTMsIDAuMDA5NjQ0LCAwLjAwOTY3NSwgMC4wMDk2ODUsIDAuMDA5NjkzLCAwLjAwOTcsIDAuMDA5NzAzIiwgXAotICAgICAgICAgICIwLjAwOTQ3OCwgMC4wMDk2MjksIDAuMDA5NjYyLCAwLjAwOTY3OCwgMC4wMDk2ODgsIDAuMDA5Njk0LCAwLjAwOTciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzk1OCwgMC4wMDM5NzcsIDAuMDAzOTc5LCAwLjAwMzk3NCwgMC4wMDM5NzYsIDAuMDAzOTc5LCAwLjAwMzk3IiwgXAotICAgICAgICAgICIwLjAwMzk3MSwgMC4wMDQwMzQsIDAuMDA0MDQxLCAwLjAwNDA0NSwgMC4wMDQwNDUsIDAuMDA0MDQyLCAwLjAwNDA0NCIsIFwKLSAgICAgICAgICAiMC4wMDM5MzYsIDAuMDA0MDM5LCAwLjAwNDA1NiwgMC4wMDQwNjIsIDAuMDA0MDYzLCAwLjAwNDA2MywgMC4wMDQwNjQiLCBcCi0gICAgICAgICAgIjAuMDAzOTAzLCAwLjAwNDAzMiwgMC4wMDQwNTQsIDAuMDA0MDYxLCAwLjAwNDA2NywgMC4wMDQwNjksIDAuMDA0MDY5IiwgXAotICAgICAgICAgICIwLjAwMzg3NiwgMC4wMDQwMTksIDAuMDA0MDQ5LCAwLjAwNDA1NywgMC4wMDQwNjUsIDAuMDA0MDY5LCAwLjAwNDA3MSIsIFwKLSAgICAgICAgICAiMC4wMDM4MzUsIDAuMDA0MDAyLCAwLjAwNDAzOSwgMC4wMDQwNTEsIDAuMDA0MDYsIDAuMDA0MDY2LCAwLjAwNDA2NyIsIFwKLSAgICAgICAgICAiMC4wMDM4MDUsIDAuMDAzOTgyLCAwLjAwNDAyNiwgMC4wMDQwNDEsIDAuMDA0MDUyLCAwLjAwNDA1OCwgMC4wMDQwNjMiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogT1I0WDEgKgotICogLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKE9SNFgxKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMTA4NTU1OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA1NjM0MTg7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNTU5MjE4OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDU2MzQxODsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxNDIsIDAuMDAwMTQ3LCAwLjAwMDE0OSwgMC4wMDAxNTEsIDAuMDAwMTUyLCAwLjAwMDE1MywgMC4wMDAxNTQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyODgsIDAuMDAwMjg5LCAwLjAwMDI4OCwgMC4wMDAyODgsIDAuMDAwMjg5LCAwLjAwMDI4OCwgMC4wMDAyODkiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDU5MjI5OTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA1ODg2NzY7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNTkyMjk5OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDE0MSwgMC4wMDAxNDUsIDAuMDAwMTQ5LCAwLjAwMDE1MSwgMC4wMDAxNTMsIDAuMDAwMTU0LCAwLjAwMDE1NSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDIwNiwgMC4wMDAyMDYsIDAuMDAwMjA2LCAwLjAwMDIwNiwgMC4wMDAyMDYsIDAuMDAwMjA2LCAwLjAwMDIwNiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQykgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjI1NDI1OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYyMjc1OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDYyNTQyNTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxNDIsIDAuMDAwMTUxLCAwLjAwMDE1NSwgMC4wMDAxNTcsIDAuMDAwMTU4LCAwLjAwMDE1OSwgMC4wMDAxNTkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxNywgMC4wMDAxNywgMC4wMDAxNywgMC4wMDAxNywgMC4wMDAxNywgMC4wMDAxNywgMC4wMDAxNyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjAzOTg0OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYwMzk4NDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2MDM5MzQ7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMDQ5LCAwLjAwMDA0OSwgMC4wMDAwNDksIDAuMDAwMDQ5LCAwLjAwMDA0OSwgMC4wMDAwNDksIDAuMDAwMDQ5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMTgsIDAuMDAwMTgsIDAuMDAwMTgsIDAuMDAwMTgsIDAuMDAwMTgsIDAuMDAwMTgsIDAuMDAwMTgiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4xMjEyNjsKLSAgICBmdW5jdGlvbiA6ICIoKChBK0IpK0MpK0QpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNTA3MzksIDAuMTk0MTgzLCAwLjQzODAyNiwgMC42NTI1MDUsIDAuOTM4MjQ2LCAxLjUwOTU3LCAxLjg2NjI5IiwgXAotICAgICAgICAgICIwLjE2MjQ0MiwgMC4yMDU4NzcsIDAuNDQ5NzE1LCAwLjY2NDE4NiwgMC45NDk5MzksIDEuNTIxMTUsIDEuODc4MDYiLCBcCi0gICAgICAgICAgIjAuMTc3Njg0LCAwLjIyMTA4MiwgMC40NjQ5MjgsIDAuNjc5NDA5LCAwLjk2NTEzLCAxLjUzNjQsIDEuODkzMyIsIFwKLSAgICAgICAgICAiMC4xOTI5MDIsIDAuMjM2MzI4LCAwLjQ4MDE2NiwgMC42OTQ2MzgsIDAuOTgwMzg4LCAxLjU1MTYsIDEuOTA4NDMiLCBcCi0gICAgICAgICAgIjAuMjA4NTA0LCAwLjI1MTk0NywgMC40OTU3OTcsIDAuNzEwMjc4LCAwLjk5NjAyNiwgMS41NjcyNywgMS45MjQxNyIsIFwKLSAgICAgICAgICAiMC4yMzI4NzEsIDAuMjc2MjQ2LCAwLjUyMDA5MiwgMC43MzQ1NTYsIDEuMDIwMzEsIDEuNTkxNTIsIDEuOTQ4NDQiLCBcCi0gICAgICAgICAgIjAuMjUzOTg4LCAwLjI5NzMzOCwgMC41NDExNDEsIDAuNzU1NjU2LCAxLjA0MTM0LCAxLjYxMjUyLCAxLjk2OTUxIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE2MzI4MSwgMC4yNDkyMTIsIDAuNzQxMTY5LCAxLjE3NjU3LCAxLjc1NzQ3LCAyLjkxMzUyLCAzLjY0MDgyIiwgXAotICAgICAgICAgICIwLjE2MzIyMSwgMC4yNDkxNzMsIDAuNzQxMDc3LCAxLjE3NjUxLCAxLjc1NzE0LCAyLjkxODg0LCAzLjYzOTgzIiwgXAotICAgICAgICAgICIwLjE2MzI0MywgMC4yNDkwOTcsIDAuNzQwMzM4LCAxLjE3NjU1LCAxLjc1NTc4LCAyLjkxODUsIDMuNjQ0NDgiLCBcCi0gICAgICAgICAgIjAuMTYyOTc2LCAwLjI0OTA5MSwgMC43NDExMDYsIDEuMTc2NTcsIDEuNzU3MTksIDIuOTE4NzksIDMuNjQxNzkiLCBcCi0gICAgICAgICAgIjAuMTYzMDI5LCAwLjI0ODk4MSwgMC43NDA1MDcsIDEuMTc2NTIsIDEuNzU3MjEsIDIuOTE4NjEsIDMuNjQ0OTMiLCBcCi0gICAgICAgICAgIjAuMTYzMDA1LCAwLjI0ODkwMywgMC43NDExMDksIDEuMTc2NjksIDEuNzU3MjksIDIuOTE4ODUsIDMuNjM5ODMiLCBcCi0gICAgICAgICAgIjAuMTYzMTQ2LCAwLjI0ODQ3LCAwLjc0MTE0MSwgMS4xNzYyNywgMS43NTcyOCwgMi45MTU4NSwgMy42NDQ1NyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMjE5MTMsIDAuMzc1Njk1LCAwLjY1ODY4MywgMC45MDU2NDQsIDEuMjM0ODksIDEuODkzMzcsIDIuMzA0OTMiLCBcCi0gICAgICAgICAgIjAuMzMzMTI3LCAwLjM4Njg5OCwgMC42Njk4OTUsIDAuOTE2ODU2LCAxLjI0NjE3LCAxLjkwNDY2LCAyLjMxNjE1IiwgXAotICAgICAgICAgICIwLjM0NTkxNiwgMC4zOTk2NzUsIDAuNjgyNzA2LCAwLjkyOTY2MywgMS4yNTg5MiwgMS45MTc1LCAyLjMyODk1IiwgXAotICAgICAgICAgICIwLjM1NzcyMywgMC40MTE0ODEsIDAuNjk0NDk1LCAwLjk0MTQ1MywgMS4yNzA2NywgMS45MjkyLCAyLjM0MTc0IiwgXAotICAgICAgICAgICIwLjM2ODc5NywgMC40MjI1ODEsIDAuNzA1NjA4LCAwLjk1MjU3NywgMS4yODE5NSwgMS45NDA5MiwgMi4zNTE4OCIsIFwKLSAgICAgICAgICAiMC4zODU4MjQsIDAuNDM5NjM3LCAwLjcyMjU3NCwgMC45Njk1NTIsIDEuMjk4OSwgMS45NTc3NCwgMi4zNjg5MSIsIFwKLSAgICAgICAgICAiMC40MDAwMTksIDAuNDUzNzIzLCAwLjczNjc4MiwgMC45ODM3NTcsIDEuMzEzMSwgMS45NzE5OCwgMi4zODMxMSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMTM4NDksIDAuMzA1NDA1LCAwLjg0NTI4MSwgMS4zMzA1OSwgMS45ODY2MiwgMy4yOTcxOSwgNC4xMDYwMSIsIFwKLSAgICAgICAgICAiMC4yMTM4NTIsIDAuMzA1NDAzLCAwLjg0NTI3NiwgMS4zMzA1NSwgMS45ODY3NCwgMy4yODgyLCA0LjExMjUiLCBcCi0gICAgICAgICAgIjAuMjEzNzk0LCAwLjMwNTQ3NCwgMC44NDUyOCwgMS4zMzE1MSwgMS45ODY2NiwgMy4yODY0MywgNC4xMTI0OSIsIFwKLSAgICAgICAgICAiMC4yMTM4MDgsIDAuMzA1MzYzLCAwLjg0NTMxMSwgMS4zMzE3NywgMS45ODY1OCwgMy4yOTcyMiwgNC4xMDI2OSIsIFwKLSAgICAgICAgICAiMC4yMTQ0NjQsIDAuMzA1NjU3LCAwLjg0MzQ5MSwgMS4zMzA2NiwgMS45ODAyMSwgMy4yODg3NCwgNC4xMDU0IiwgXAotICAgICAgICAgICIwLjIxMzkyMiwgMC4zMDU1MzMsIDAuODQ1NDExLCAxLjMzMDI2LCAxLjk4MTM4LCAzLjI5MTgzLCA0LjEwOTY5IiwgXAotICAgICAgICAgICIwLjIxMzY4LCAwLjMwNTE5OCwgMC44NDUxNjEsIDEuMzI5OTMsIDEuOTgwOTUsIDMuMjkxNTgsIDQuMTEwNTQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTQ2MTcxLCAwLjE4OTM0NSwgMC40MzI1ODIsIDAuNjQ2ODU2LCAwLjkzMjQwNSwgMS41MDM0MSwgMS44NjAyNSIsIFwKLSAgICAgICAgICAiMC4xNTgyNDYsIDAuMjAxMzg2LCAwLjQ0NDY4NiwgMC42NTg5MDEsIDAuOTQ0NTIsIDEuNTE1NDcsIDEuODcyMjkiLCBcCi0gICAgICAgICAgIjAuMTczNDI4LCAwLjIxNjU1MywgMC40NTk4MjMsIDAuNjc0MDgxLCAwLjk1OTY3NSwgMS41MzA2NSwgMS44ODc0NyIsIFwKLSAgICAgICAgICAiMC4xODg2MzQsIDAuMjMxODAzLCAwLjQ3NTA2OSwgMC42ODkzODIsIDAuOTc0OSwgMS41NDU4OCwgMS45MDI3NiIsIFwKLSAgICAgICAgICAiMC4yMDQwMjMsIDAuMjQ3MiwgMC40OTA0NzYsIDAuNzA0NzM5LCAwLjk5MDM1LCAxLjU2MTMxLCAxLjkxODE0IiwgXAotICAgICAgICAgICIwLjIyNzk5NSwgMC4yNzExNzUsIDAuNTE0NDcyLCAwLjcyODc0NywgMS4wMTQzMiwgMS41ODUzOCwgMS45NDIyMyIsIFwKLSAgICAgICAgICAiMC4yNDkxNTEsIDAuMjkyMjcxLCAwLjUzNTYwNCwgMC43NDk4NTEsIDEuMDM1NCwgMS42MDY0MiwgMS45NjMyNCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNjE3NTMsIDAuMjQ3NjgxLCAwLjc0MDI4MywgMS4xNzQ1NSwgMS43NTczNCwgMi45MTUzMiwgMy42NDY2NyIsIFwKLSAgICAgICAgICAiMC4xNjE2MDUsIDAuMjQ3MjI5LCAwLjc0MDAwOCwgMS4xNzUzNSwgMS43NTQyOCwgMi45MTk0NywgMy42NDYwMSIsIFwKLSAgICAgICAgICAiMC4xNjE3NiwgMC4yNDc2ODQsIDAuNzQwMjE1LCAxLjE3NDI4LCAxLjc1NjksIDIuOTE5MzUsIDMuNjQ2MTEiLCBcCi0gICAgICAgICAgIjAuMTYxNjk4LCAwLjI0NzY1NSwgMC43NDAxOTEsIDEuMTc1NjYsIDEuNzU3MTYsIDIuOTE5MzYsIDMuNjQ1NzIiLCBcCi0gICAgICAgICAgIjAuMTYxNzEsIDAuMjQ3NjM3LCAwLjc0MDE2LCAxLjE3NDMsIDEuNzU2NzcsIDIuOTE5MzYsIDMuNjQ2MDIiLCBcCi0gICAgICAgICAgIjAuMTYxNzgxLCAwLjI0NzU3LCAwLjc0MDI4MSwgMS4xNzQxNiwgMS43NTQzOCwgMi45MTg5MywgMy42Mzg5NCIsIFwKLSAgICAgICAgICAiMC4xNjE3NzIsIDAuMjQ3MzcyLCAwLjczOTk2LCAxLjE3NTc3LCAxLjc1NjgsIDIuOTE4OTEsIDMuNjQ1NDEiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzEzOTIzLCAwLjM2Nzc4OCwgMC42NTA3MzMsIDAuODk3NzE5LCAxLjIyNzA1LCAxLjg4NTg5LCAyLjI5NzE0IiwgXAotICAgICAgICAgICIwLjMyNDA2NiwgMC4zNzc5NTMsIDAuNjYwODgsIDAuOTA3ODcxLCAxLjIzNzIyLCAxLjg5NjA5LCAyLjMwNzI2IiwgXAotICAgICAgICAgICIwLjMzNjI5NywgMC4zODk3MTUsIDAuNjcyNzM5LCAwLjkxOTY2OCwgMS4yNDkwMywgMS45MDc5MiwgMi4zMTg5NSIsIFwKLSAgICAgICAgICAiMC4zNDc4MDIsIDAuNDAxNDcsIDAuNjg0NTE3LCAwLjkzMTQ4NiwgMS4yNjA3MSwgMS45MTkyMywgMi4zMzE4MSIsIFwKLSAgICAgICAgICAiMC4zNTg2NjksIDAuNDEyMzQ5LCAwLjY5NTM2OCwgMC45NDIyOTEsIDEuMjcxNjUsIDEuOTMwNDgsIDIuMzQxNjMiLCBcCi0gICAgICAgICAgIjAuMzc1NTg2LCAwLjQyOTI1NiwgMC43MTIzNTUsIDAuOTU5MzUxLCAxLjI4ODcxLCAxLjk0NzU4LCAyLjM1ODcyIiwgXAotICAgICAgICAgICIwLjM5MDA4MiwgMC40NDM3ODQsIDAuNzI2ODcyLCAwLjk3Mzg2MywgMS4zMDMwOCwgMS45NjE1OCwgMi4zNzMxNyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMTQyOCwgMC4zMDU0OTIsIDAuODQ1MjM4LCAxLjMyOTc3LCAxLjk4Njc4LCAzLjI5MTI0LCA0LjEwODk2IiwgXAotICAgICAgICAgICIwLjIxNDMxMSwgMC4zMDU0NjcsIDAuODQ1MzQ1LCAxLjMzMDI4LCAxLjk4MTA4LCAzLjI5MTczLCA0LjEwOTg3IiwgXAotICAgICAgICAgICIwLjIxNDAxMSwgMC4zMDYsIDAuODQ1MTA4LCAxLjMzMzExLCAxLjk4MTEsIDMuMjkxNTksIDQuMTEyNDgiLCBcCi0gICAgICAgICAgIjAuMjEzOTU3LCAwLjMwNTM3MSwgMC44NDUzMDgsIDEuMzMxOCwgMS45ODY1NywgMy4yOTcyMSwgNC4xMDI2IiwgXAotICAgICAgICAgICIwLjIxMzczMSwgMC4zMDU3NDQsIDAuODQ1MTEzLCAxLjMzMjkzLCAxLjk4NjgsIDMuMjkxMDMsIDQuMTEwMTQiLCBcCi0gICAgICAgICAgIjAuMjEzNzUyLCAwLjMwNTIyOCwgMC44NDUxOTksIDEuMzMwMDYsIDEuOTgwOTQsIDMuMjkxNjYsIDQuMTEwMzciLCBcCi0gICAgICAgICAgIjAuMjEzNTI5LCAwLjMwNTE0OCwgMC44NDUxMDksIDEuMzMwMDQsIDEuOTg2NTUsIDMuMjk3MTMsIDQuMTA1OTEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTQwOTg0LCAwLjE4Mzk0MSwgMC40MjY4MzMsIDAuNjQwOTc5LCAwLjkyNjUwNSwgMS40OTczMSwgMS44NTQwNyIsIFwKLSAgICAgICAgICAiMC4xNTI5NSwgMC4xOTU5NDYsIDAuNDM4ODI5LCAwLjY1Mjk3NiwgMC45Mzg0NCwgMS41MDkzMiwgMS44NjYwNSIsIFwKLSAgICAgICAgICAiMC4xNjg0LCAwLjIxMTM3OSwgMC40NTQyOTksIDAuNjY4NDc3LCAwLjk1Mzg3NCwgMS41MjQ3MywgMS44ODE1MSIsIFwKLSAgICAgICAgICAiMC4xODM1OTcsIDAuMjI2NjMyLCAwLjQ2OTU0MSwgMC42ODM1OCwgMC45NjkxNTQsIDEuNTQwMDgsIDEuODk2NzgiLCBcCi0gICAgICAgICAgIjAuMTk4ODg1LCAwLjI0MTg4NiwgMC40ODQ4MjcsIDAuNjk4OTgxLCAwLjk4NDQ0OCwgMS41NTUzMiwgMS45MTIyIiwgXAotICAgICAgICAgICIwLjIyMjg0NywgMC4yNjU4NDksIDAuNTA4Nzg0LCAwLjcyMjk3MiwgMS4wMDg0MSwgMS41NzkyNiwgMS45MzYwNCIsIFwKLSAgICAgICAgICAiMC4yNDM0ODEsIDAuMjg2NDY2LCAwLjUyOTQyNywgMC43NDM1NjEsIDEuMDI5MDMsIDEuNTk5ODgsIDEuOTU2NjYiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTYwODksIDAuMjQ2ODYyLCAwLjczODQ1OSwgMS4xNzEzNSwgMS43NTY5OSwgMi45MTQ3NCwgMy42NDAwMSIsIFwKLSAgICAgICAgICAiMC4xNjA4NSwgMC4yNDY3OTIsIDAuNzM5NDA1LCAxLjE3MzY5LCAxLjc1NDA0LCAyLjkxOTMzLCAzLjY0NTUzIiwgXAotICAgICAgICAgICIwLjE2MDY2MiwgMC4yNDYyMjUsIDAuNzM3NDU2LCAxLjE3NTQyLCAxLjc1NDA1LCAyLjkxODQxLCAzLjY0MzgiLCBcCi0gICAgICAgICAgIjAuMTYwODMyLCAwLjI0NjgxOSwgMC43Mzk0MzEsIDEuMTczNSwgMS43NTQxNSwgMi45MTk0OSwgMy42NDUyNiIsIFwKLSAgICAgICAgICAiMC4xNjA3MzEsIDAuMjQ2MzUsIDAuNzM5NDU4LCAxLjE3MzY3LCAxLjc1NDA2LCAyLjkxOTEzLCAzLjYzODk2IiwgXAotICAgICAgICAgICIwLjE2MTA5MiwgMC4yNDY0NywgMC43Mzk1NDgsIDEuMTczMTQsIDEuNzU0MDQsIDIuOTE4MzcsIDMuNjQ1MiIsIFwKLSAgICAgICAgICAiMC4xNjExNzksIDAuMjQ3MTAzLCAwLjczOTY2MiwgMS4xNzM2MSwgMS43NTM5OCwgMi45MTgzNSwgMy42NDQ4NyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yOTk0MTgsIDAuMzUzMzM1LCAwLjYzNjMsIDAuODgzMjg5LCAxLjIxMjY2LCAxLjg3MTYzLCAyLjI4MjYiLCBcCi0gICAgICAgICAgIjAuMzA5MzMxLCAwLjM2MjczOCwgMC42NDU3NzcsIDAuODkyNzE2LCAxLjIyMjA4LCAxLjg4MDk2LCAyLjI5MiIsIFwKLSAgICAgICAgICAiMC4zMjA5MDYsIDAuMzc0NTY5LCAwLjY1NzU3MSwgMC45MDQ1MTgsIDEuMjMzODUsIDEuODkyNjUsIDIuMzAzODkiLCBcCi0gICAgICAgICAgIjAuMzMyMzI5LCAwLjM4NjAxMSwgMC42NjkwNTgsIDAuOTE2MDI5LCAxLjI0NTI0LCAxLjkwMzc4LCAyLjMxNTM4IiwgXAotICAgICAgICAgICIwLjM0MzEzNiwgMC4zOTY5MDMsIDAuNjgwMDE3LCAwLjkyNjk4LCAxLjI1NjE2LCAxLjkxNDg3LCAyLjMyNjMyIiwgXAotICAgICAgICAgICIwLjM2MTM0NCwgMC40MTUxMSwgMC42OTgxNCwgMC45NDUwOTcsIDEuMjc0NDIsIDEuOTMzMjQsIDIuMzQ0NTQiLCBcCi0gICAgICAgICAgIjAuMzc3MTQ2LCAwLjQzMDk2LCAwLjcxMzk0OCwgMC45NjA5NDMsIDEuMjkwMjcsIDEuOTQ5MSwgMi4zNjAzOCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMTQ2MDMsIDAuMzA1ODI3LCAwLjg0NDAwNywgMS4zMzAzNCwgMS45ODA0OSwgMy4yODg5NCwgNC4xMDU4MiIsIFwKLSAgICAgICAgICAiMC4yMTQxMDMsIDAuMzA2MDI3LCAwLjg0NTEzLCAxLjMzMzE4LCAxLjk4MTQxLCAzLjI5MTY3LCA0LjExMjQ4IiwgXAotICAgICAgICAgICIwLjIxNDA4MiwgMC4zMDUzNzksIDAuODQ1MTQ2LCAxLjMzMzEyLCAxLjk4Njc2LCAzLjI4OTY5LCA0LjEwOTMzIiwgXAotICAgICAgICAgICIwLjIxMzk2NSwgMC4zMDUzMywgMC44NDUzMDEsIDEuMzMxOSwgMS45ODM1OSwgMy4yOTQyLCA0LjEwNDI5IiwgXAotICAgICAgICAgICIwLjIxNDM3MiwgMC4zMDU2NzQsIDAuODQ1MDk1LCAxLjMzMDk5LCAxLjk4NjYsIDMuMjg5MjUsIDQuMTA0ODMiLCBcCi0gICAgICAgICAgIjAuMjEzNjc2LCAwLjMwNTM1LCAwLjg0NTE1MywgMS4zMjkxMywgMS45ODY3NSwgMy4yODk4OCwgNC4xMDg1IiwgXAotICAgICAgICAgICIwLjIxMzUzOSwgMC4zMDUxODUsIDAuODQ1MDQ3LCAxLjMyODY5LCAxLjk4NjczLCAzLjI5MDIyLCA0LjEwODU5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkQiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEzNTEsIDAuMTc4MDA4LCAwLjQyMDc0MywgMC42MzUwMDksIDAuOTIwNDQ3LCAxLjQ5MTI1LCAxLjg0NzkyIiwgXAotICAgICAgICAgICIwLjE0NzEwOSwgMC4xODk5OTcsIDAuNDMyNzM5LCAwLjY0Njg2MSwgMC45MzI0MjUsIDEuNTAzNCwgMS44NjAzOCIsIFwKLSAgICAgICAgICAiMC4xNjI2NDksIDAuMjA1NTM2LCAwLjQ0ODM0NywgMC42NjI1NjcsIDAuOTQ4MjY0LCAxLjUxODgzLCAxLjg3NjU2IiwgXAotICAgICAgICAgICIwLjE3ODAwNCwgMC4yMjA5MiwgMC40NjM3MjYsIDAuNjc3OTM3LCAwLjk2MzE5NSwgMS41MzQ1NCwgMS44OTIyNyIsIFwKLSAgICAgICAgICAiMC4xOTI3MzcsIDAuMjM1NjMxLCAwLjQ3ODQzOCwgMC42OTI3MDEsIDAuOTc3OTM3LCAxLjU0OTYxLCAxLjkwNTgyIiwgXAotICAgICAgICAgICIwLjIxNjkwNSwgMC4yNTk3OTcsIDAuNTAyMzcsIDAuNzE2NjkyLCAxLjAwMTksIDEuNTcyOTMsIDEuOTMwNzYiLCBcCi0gICAgICAgICAgIjAuMjM2NTEzLCAwLjI3OTQxLCAwLjUyMjI5OCwgMC43MzY0ODQsIDEuMDIxODUsIDEuNTkyNzgsIDEuOTQ5OTMiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTYwMzI0LCAwLjI0NjI3MiwgMC43MzczMTgsIDEuMTcyNTUsIDEuNzUyNzYsIDIuOTE5NzMsIDMuNjQ3MTkiLCBcCi0gICAgICAgICAgIjAuMTYwMDI2LCAwLjI0NjMxNywgMC43MzcyOTYsIDEuMTcxOCwgMS43NTI4MywgMi45MTQ1OCwgMy42Mzc3NCIsIFwKLSAgICAgICAgICAiMC4xNjAwMjUsIDAuMjQ1OTY4LCAwLjczNzc2OSwgMS4xNzI1MywgMS43NTI0NSwgMi45MTE5NiwgMy42MzY4NyIsIFwKLSAgICAgICAgICAiMC4xNjAzMjYsIDAuMjQ2MzE4LCAwLjczNzY0OSwgMS4xNzI1NCwgMS43NTY1NCwgMi45MTUzNiwgMy42MzkxNSIsIFwKLSAgICAgICAgICAiMC4xNjAzMDYsIDAuMjQ1OTE0LCAwLjczNzc1LCAxLjE3MjUzLCAxLjc1MjE2LCAyLjkxMjIzLCAzLjY0NjA5IiwgXAotICAgICAgICAgICIwLjE2MDYzNCwgMC4yNDYwNjMsIDAuNzM4MTc3LCAxLjE3MjU1LCAxLjc1MjIxLCAyLjkxMTgxLCAzLjYzOTAyIiwgXAotICAgICAgICAgICIwLjE2MTE4MywgMC4yNDYyNzMsIDAuNzM3NzY4LCAxLjE3MjUyLCAxLjc1NjQzLCAyLjkxMTcyLCAzLjY0MDE5Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI3ODQ4NCwgMC4zMzIyOTIsIDAuNjE1MzAzLCAwLjg2MjI4LCAxLjE5MTU4LCAxLjg1MDM2LCAyLjI2MjY3IiwgXAotICAgICAgICAgICIwLjI4NzEzLCAwLjM0MDg2MSwgMC42MjM5NjIsIDAuODcwOTMyLCAxLjIwMDIzLCAxLjg1OTI0LCAyLjI3MDI4IiwgXAotICAgICAgICAgICIwLjI5Nzk1NSwgMC4zNTE3NzUsIDAuNjM0ODQxLCAwLjg4MTgxNCwgMS4yMTExMywgMS44NzAwOCwgMi4yODExNiIsIFwKLSAgICAgICAgICAiMC4zMDk0OTksIDAuMzYzMzEyLCAwLjY0NjMxMywgMC44OTMyOTMsIDEuMjIyNTksIDEuODgxMzYsIDIuMjkzMDEiLCBcCi0gICAgICAgICAgIjAuMzIwOTc1LCAwLjM3NDc5OCwgMC42NTc3OTksIDAuOTA0NzU2LCAxLjIzNDA4LCAxLjg5Mjg0LCAyLjMwNDM3IiwgXAotICAgICAgICAgICIwLjM0MDAxNiwgMC4zOTM4MjgsIDAuNjc2ODA1LCAwLjkyMzgyLCAxLjI1MzE1LCAxLjkxMTk3LCAyLjMyMzI3IiwgXAotICAgICAgICAgICIwLjM1NjQ1OCwgMC40MTAyODEsIDAuNjkzMzA4LCAwLjk0MDI5NCwgMS4yNjk2MSwgMS45MjgzOCwgMi4zMzk4NiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMTM3MDQsIDAuMzA1MzgyLCAwLjg0NTI3NSwgMS4zMzE4NCwgMS45ODA0MywgMy4yODY3OCwgNC4xMDIyNCIsIFwKLSAgICAgICAgICAiMC4yMTQxOTksIDAuMzA1NTkxLCAwLjg0NTA2MSwgMS4zMzA4LCAxLjk4MDc0LCAzLjI5MDQ1LCA0LjEwNDQ1IiwgXAotICAgICAgICAgICIwLjIxMzkzMiwgMC4zMDU0NzUsIDAuODQ1MDgxLCAxLjMzMDg2LCAxLjk4MzcyLCAzLjI5MTQzLCA0LjEwNDY4IiwgXAotICAgICAgICAgICIwLjIxMzYzNCwgMC4zMDUzMjMsIDAuODQ1MjUsIDEuMzMxOTYsIDEuOTg2NzMsIDMuMjg3NjUsIDQuMTA2MDUiLCBcCi0gICAgICAgICAgIjAuMjEzNTEsIDAuMzA1MjA3LCAwLjg0NTIyNywgMS4zMzAxOCwgMS45ODY3MSwgMy4yODcxMSwgNC4xMDA5MiIsIFwKLSAgICAgICAgICAiMC4yMTM0NjUsIDAuMzA1MTYzLCAwLjg0NDE3OCwgMS4zMjg3MSwgMS45ODY3MywgMy4yODk4NCwgNC4xMDg0OSIsIFwKLSAgICAgICAgICAiMC4yMTM0OTQsIDAuMzA1MjA3LCAwLjg0NTA5OCwgMS4zMzAwNCwgMS45ODY3MSwgMy4yODc0MSwgNC4xMDEzNCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTU5NiwgMC4wMDE1OTksIDAuMDAxNjAzLCAwLjAwMTYwMywgMC4wMDE2MDUsIDAuMDAxNjA0LCAwLjAwMTYwNCIsIFwKLSAgICAgICAgICAiMC4wMDE1ODMsIDAuMDAxNTg2LCAwLjAwMTU5LCAwLjAwMTU5MSwgMC4wMDE1OTIsIDAuMDAxNTkyLCAwLjAwMTU5MyIsIFwKLSAgICAgICAgICAiMC4wMDE1NzYsIDAuMDAxNTgsIDAuMDAxNTg0LCAwLjAwMTU4NSwgMC4wMDE1ODYsIDAuMDAxNTg2LCAwLjAwMTU4NiIsIFwKLSAgICAgICAgICAiMC4wMDE1NzEsIDAuMDAxNTc1LCAwLjAwMTU4LCAwLjAwMTU4MSwgMC4wMDE1ODIsIDAuMDAxNTgyLCAwLjAwMTU4MiIsIFwKLSAgICAgICAgICAiMC4wMDE1NjcsIDAuMDAxNTcxLCAwLjAwMTU3NywgMC4wMDE1NzgsIDAuMDAxNTc5LCAwLjAwMTU3OSwgMC4wMDE1OCIsIFwKLSAgICAgICAgICAiMC4wMDE1NjEsIDAuMDAxNTY2LCAwLjAwMTU3MywgMC4wMDE1NzUsIDAuMDAxNTc1LCAwLjAwMTU3NywgMC4wMDE1NzYiLCBcCi0gICAgICAgICAgIjAuMDAxNTU4LCAwLjAwMTU2NCwgMC4wMDE1NzEsIDAuMDAxNTczLCAwLjAwMTU3NCwgMC4wMDE1NzUsIDAuMDAxNTc2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyNzU1LCAwLjAwMjc2NCwgMC4wMDI3NzYsIDAuMDAyNzc5LCAwLjAwMjc4LCAwLjAwMjc4MSwgMC4wMDI3ODEiLCBcCi0gICAgICAgICAgIjAuMDAyNzQ5LCAwLjAwMjc1OCwgMC4wMDI3NzEsIDAuMDAyNzczLCAwLjAwMjc3NSwgMC4wMDI3NzYsIDAuMDAyNzc2IiwgXAotICAgICAgICAgICIwLjAwMjc0NSwgMC4wMDI3NTQsIDAuMDAyNzY2LCAwLjAwMjc2OSwgMC4wMDI3NywgMC4wMDI3NzEsIDAuMDAyNzcxIiwgXAotICAgICAgICAgICIwLjAwMjc0MSwgMC4wMDI3NSwgMC4wMDI3NjMsIDAuMDAyNzY2LCAwLjAwMjc2NywgMC4wMDI3NjgsIDAuMDAyNzY4IiwgXAotICAgICAgICAgICIwLjAwMjczOCwgMC4wMDI3NDcsIDAuMDAyNzYxLCAwLjAwMjc2MywgMC4wMDI3NjUsIDAuMDAyNzY2LCAwLjAwMjc2NiIsIFwKLSAgICAgICAgICAiMC4wMDI3MzYsIDAuMDAyNzQ1LCAwLjAwMjc1OSwgMC4wMDI3NjIsIDAuMDAyNzYzLCAwLjAwMjc2NCwgMC4wMDI3NjQiLCBcCi0gICAgICAgICAgIjAuMDAyNzM0LCAwLjAwMjc0NCwgMC4wMDI3NTgsIDAuMDAyNzYsIDAuMDAyNzYyLCAwLjAwMjc2MywgMC4wMDI3NjMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDEzODMsIDAuMDAxMzg3LCAwLjAwMTM5MywgMC4wMDEzOTMsIDAuMDAxMzk0LCAwLjAwMTM5NiwgMC4wMDEzOTYiLCBcCi0gICAgICAgICAgIjAuMDAxMzc2LCAwLjAwMTM4LCAwLjAwMTM4NiwgMC4wMDEzODcsIDAuMDAxMzg4LCAwLjAwMTM4OCwgMC4wMDEzODgiLCBcCi0gICAgICAgICAgIjAuMDAxMzY4LCAwLjAwMTM3MywgMC4wMDEzNzksIDAuMDAxMzgsIDAuMDAxMzgxLCAwLjAwMTM4MSwgMC4wMDEzODIiLCBcCi0gICAgICAgICAgIjAuMDAxMzYxLCAwLjAwMTM2NiwgMC4wMDEzNzMsIDAuMDAxMzc1LCAwLjAwMTM3NSwgMC4wMDEzNzYsIDAuMDAxMzc3IiwgXAotICAgICAgICAgICIwLjAwMTM1NSwgMC4wMDEzNjEsIDAuMDAxMzcsIDAuMDAxMzcyLCAwLjAwMTM3MywgMC4wMDEzNzQsIDAuMDAxMzczIiwgXAotICAgICAgICAgICIwLjAwMTM0NywgMC4wMDEzNTQsIDAuMDAxMzY1LCAwLjAwMTM2OCwgMC4wMDEzNjgsIDAuMDAxMzY5LCAwLjAwMTM3IiwgXAotICAgICAgICAgICIwLjAwMTM0NCwgMC4wMDEzNTEsIDAuMDAxMzYyLCAwLjAwMTM2NSwgMC4wMDEzNjYsIDAuMDAxMzY4LCAwLjAwMTM2OCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjYxMywgMC4wMDI2MjIsIDAuMDAyNjM2LCAwLjAwMjYzOSwgMC4wMDI2NDEsIDAuMDAyNjQyLCAwLjAwMjY0MyIsIFwKLSAgICAgICAgICAiMC4wMDI2MDcsIDAuMDAyNjE3LCAwLjAwMjYzMSwgMC4wMDI2MzQsIDAuMDAyNjM1LCAwLjAwMjYzNywgMC4wMDI2MzciLCBcCi0gICAgICAgICAgIjAuMDAyNjAzLCAwLjAwMjYxMSwgMC4wMDI2MjYsIDAuMDAyNjI5LCAwLjAwMjYzMSwgMC4wMDI2MzIsIDAuMDAyNjMyIiwgXAotICAgICAgICAgICIwLjAwMjYsIDAuMDAyNjA5LCAwLjAwMjYyMywgMC4wMDI2MjYsIDAuMDAyNjI4LCAwLjAwMjYyOSwgMC4wMDI2MyIsIFwKLSAgICAgICAgICAiMC4wMDI1OTcsIDAuMDAyNjA2LCAwLjAwMjYyMSwgMC4wMDI2MjQsIDAuMDAyNjI2LCAwLjAwMjYyNywgMC4wMDI2MjgiLCBcCi0gICAgICAgICAgIjAuMDAyNTk0LCAwLjAwMjYwNCwgMC4wMDI2MTksIDAuMDAyNjIyLCAwLjAwMjYyNCwgMC4wMDI2MjUsIDAuMDAyNjI2IiwgXAotICAgICAgICAgICIwLjAwMjU5MiwgMC4wMDI2MDIsIDAuMDAyNjE3LCAwLjAwMjYyLCAwLjAwMjYyMiwgMC4wMDI2MjQsIDAuMDAyNjI0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxMTk3LCAwLjAwMTIsIDAuMDAxMjA1LCAwLjAwMTIwNywgMC4wMDEyMDYsIDAuMDAxMjA1LCAwLjAwMTIwNyIsIFwKLSAgICAgICAgICAiMC4wMDExOTUsIDAuMDAxMTk5LCAwLjAwMTIwMywgMC4wMDEyMDQsIDAuMDAxMjA1LCAwLjAwMTIwNSwgMC4wMDEyMDUiLCBcCi0gICAgICAgICAgIjAuMDAxMTg3LCAwLjAwMTE5MiwgMC4wMDExOTcsIDAuMDAxMTk4LCAwLjAwMTE5OSwgMC4wMDExOTksIDAuMDAxMTk5IiwgXAotICAgICAgICAgICIwLjAwMTE4LCAwLjAwMTE4NSwgMC4wMDExOTIsIDAuMDAxMTkzLCAwLjAwMTE5NCwgMC4wMDExOTQsIDAuMDAxMTk0IiwgXAotICAgICAgICAgICIwLjAwMTE3MywgMC4wMDExNzksIDAuMDAxMTg3LCAwLjAwMTE4OCwgMC4wMDExODksIDAuMDAxMTksIDAuMDAxMTkxIiwgXAotICAgICAgICAgICIwLjAwMTE2NCwgMC4wMDExNzEsIDAuMDAxMTgxLCAwLjAwMTE4MywgMC4wMDExODQsIDAuMDAxMTg1LCAwLjAwMTE4NSIsIFwKLSAgICAgICAgICAiMC4wMDExNiwgMC4wMDExNjYsIDAuMDAxMTc3LCAwLjAwMTE3OSwgMC4wMDExODEsIDAuMDAxMTgyLCAwLjAwMTE4MyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjQ3NSwgMC4wMDI0ODUsIDAuMDAyNTAxLCAwLjAwMjUwNCwgMC4wMDI1MDYsIDAuMDAyNTA4LCAwLjAwMjUwOCIsIFwKLSAgICAgICAgICAiMC4wMDI0NzEsIDAuMDAyNDc5LCAwLjAwMjQ5NSwgMC4wMDI0OTgsIDAuMDAyNSwgMC4wMDI1MDIsIDAuMDAyNTAzIiwgXAotICAgICAgICAgICIwLjAwMjQ2NiwgMC4wMDI0NzYsIDAuMDAyNDkxLCAwLjAwMjQ5NCwgMC4wMDI0OTYsIDAuMDAyNDk3LCAwLjAwMjQ5OCIsIFwKLSAgICAgICAgICAiMC4wMDI0NjMsIDAuMDAyNDczLCAwLjAwMjQ4OCwgMC4wMDI0OTEsIDAuMDAyNDkzLCAwLjAwMjQ5NSwgMC4wMDI0OTUiLCBcCi0gICAgICAgICAgIjAuMDAyNDU5LCAwLjAwMjQ2OSwgMC4wMDI0ODUsIDAuMDAyNDg5LCAwLjAwMjQ5MSwgMC4wMDI0OTMsIDAuMDAyNDkzIiwgXAotICAgICAgICAgICIwLjAwMjQ1NiwgMC4wMDI0NjYsIDAuMDAyNDgzLCAwLjAwMjQ4NiwgMC4wMDI0ODksIDAuMDAyNDksIDAuMDAyNDkxIiwgXAotICAgICAgICAgICIwLjAwMjQ1NCwgMC4wMDI0NjQsIDAuMDAyNDgxLCAwLjAwMjQ4NSwgMC4wMDI0ODcsIDAuMDAyNDg5LCAwLjAwMjQ4OSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkQiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTAyMiwgMC4wMDEwMjYsIDAuMDAxMDI5LCAwLjAwMTAzLCAwLjAwMTAzLCAwLjAwMTAzMSwgMC4wMDEwMzEiLCBcCi0gICAgICAgICAgIjAuMDAxMDIsIDAuMDAxMDI0LCAwLjAwMTAyNywgMC4wMDEwMjgsIDAuMDAxMDI4LCAwLjAwMTAyOSwgMC4wMDEwMjkiLCBcCi0gICAgICAgICAgIjAuMDAxMDEyLCAwLjAwMTAxNiwgMC4wMDEwMjEsIDAuMDAxMDIxLCAwLjAwMTAyMiwgMC4wMDEwMjIsIDAuMDAxMDIyIiwgXAotICAgICAgICAgICIwLjAwMTAwMiwgMC4wMDEwMDcsIDAuMDAxMDEzLCAwLjAwMTAxNSwgMC4wMDEwMTUsIDAuMDAxMDE1LCAwLjAwMTAxNiIsIFwKLSAgICAgICAgICAiMC4wMDA5OTQsIDAuMDAxLCAwLjAwMTAwOCwgMC4wMDEwMDksIDAuMDAxMDEsIDAuMDAxMDExLCAwLjAwMTAxIiwgXAotICAgICAgICAgICIwLjAwMDk4NiwgMC4wMDA5OTIsIDAuMDAxMDAxLCAwLjAwMTAwMywgMC4wMDEwMDQsIDAuMDAxMDA1LCAwLjAwMTAwNSIsIFwKLSAgICAgICAgICAiMC4wMDA5OCwgMC4wMDA5ODYsIDAuMDAwOTk3LCAwLjAwMSwgMC4wMDEwMDEsIDAuMDAxMDAyLCAwLjAwMTAwMiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjMzOSwgMC4wMDIzNDksIDAuMDAyMzY1LCAwLjAwMjM2OSwgMC4wMDIzNzEsIDAuMDAyMzcyLCAwLjAwMjM3MyIsIFwKLSAgICAgICAgICAiMC4wMDIzMjksIDAuMDAyMzQsIDAuMDAyMzU2LCAwLjAwMjM1OSwgMC4wMDIzNjEsIDAuMDAyMzYzLCAwLjAwMjM2NCIsIFwKLSAgICAgICAgICAiMC4wMDIzMjIsIDAuMDAyMzMyLCAwLjAwMjM0OCwgMC4wMDIzNTIsIDAuMDAyMzU0LCAwLjAwMjM1NiwgMC4wMDIzNTYiLCBcCi0gICAgICAgICAgIjAuMDAyMzE3LCAwLjAwMjMyNywgMC4wMDIzNDQsIDAuMDAyMzQ3LCAwLjAwMjM1LCAwLjAwMjM1MSwgMC4wMDIzNTIiLCBcCi0gICAgICAgICAgIjAuMDAyMzEzLCAwLjAwMjMyMywgMC4wMDIzNCwgMC4wMDIzNDQsIDAuMDAyMzQ3LCAwLjAwMjM0OCwgMC4wMDIzNDkiLCBcCi0gICAgICAgICAgIjAuMDAyMzA5LCAwLjAwMjMxOSwgMC4wMDIzMzcsIDAuMDAyMzQxLCAwLjAwMjM0NCwgMC4wMDIzNDYsIDAuMDAyMzQ3IiwgXAotICAgICAgICAgICIwLjAwMjMwNywgMC4wMDIzMTYsIDAuMDAyMzM1LCAwLjAwMjM0LCAwLjAwMjM0MywgMC4wMDIzNDUsIDAuMDAyMzQ2Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IFNERkZIUVg0ICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChTREZGSFFYNCkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjQ2NjcwMjsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBmZiAoTjMwLFFCSU5UKSB7Ci0gICAgbmV4dF9zdGF0ZSA6ICIoKFNFIFNJKSArICghU0UgRCkpIjsKLSAgICBjbG9ja2VkX29uIDogIkNLIjsKLSAgfQotICBwaW4oQ0spICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDU4MzY3NjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA1ODMzOTU7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNTgzNjc2OwotICAgIGNsb2NrIDogdHJ1ZTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDI3OTEsIDAuMDAyNzc5LCAwLjAwMjc2OCwgMC4wMDI3NjIsIDAuMDAyNzU3LCAwLjAwMjc1LCAwLjAwMjc0NyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNjAyMiwgMC4wMDYwMTIsIDAuMDA2MDA0LCAwLjAwNTk5OCwgMC4wMDU5OTcsIDAuMDA2MDAzLCAwLjAwNjAwNiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQmIVNFJiFTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fU0VfRVFfMF9BTl9TSV9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMjU0NDQ5LCAwLjI2NjQ1OCwgMC4yODE1NDYsIDAuMjk2OTcsIDAuMzEyMzg4LCAwLjMzNjc1MywgMC4zNTc4NDQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjE5ODA5LCAwLjIwOTQyMiwgMC4yMjQ1MDEsIDAuMjM5NDI4LCAwLjI1NDEzNSwgMC4yNzcyMDksIDAuMjk2Njk4Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihEKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA4NDc5NDk7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwODQ0NzEyOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDg0Nzk0OTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDMwODcsIDAuMDAzMDY3LCAwLjAwMzA1NywgMC4wMDMwNSwgMC4wMDMwNDUsIDAuMDAzMDM5LCAwLjAwMzAzNSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNDcyMSwgMC4wMDQ3MTEsIDAuMDA0NzA1LCAwLjAwNDcwMSwgMC4wMDQ2OTgsIDAuMDA0Njk1LCAwLjAwNDY5MyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhU0UiOwotICAgICAgc2RmX2NvbmQgOiAiU0UgPT0gMSdiMCI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMSwgLTAuMDg4NzUsIC0wLjA3NjI1LCAtMC4wNjM3NSwgLTAuMDUxMjUsIC0wLjAzNSwgLTAuMDI2MjUiLCBcCi0gICAgICAgICAgIi0wLjExMTI1LCAtMC4xLCAtMC4wODc1LCAtMC4wNzUsIC0wLjA2MjUsIC0wLjA0NjI1LCAtMC4wMzc1IiwgXAotICAgICAgICAgICItMC4xMjM3NSwgLTAuMTEyNSwgLTAuMSwgLTAuMDg3NSwgLTAuMDgxMjUsIC0wLjA2NSwgLTAuMDUiLCBcCi0gICAgICAgICAgIi0wLjEzNjI1LCAtMC4xMjUsIC0wLjExMjUsIC0wLjEsIC0wLjA5Mzc1LCAtMC4wNzc1LCAtMC4wNjI1IiwgXAotICAgICAgICAgICItMC4xNDg3NSwgLTAuMTM3NSwgLTAuMTI1LCAtMC4xMTg3NSwgLTAuMTA2MjUsIC0wLjA5LCAtMC4wNzUiLCBcCi0gICAgICAgICAgIi0wLjE3MTI1LCAtMC4xNiwgLTAuMTQ3NSwgLTAuMTM1LCAtMC4xMjg3NSwgLTAuMTEyNSwgLTAuMDk3NSIsIFwKLSAgICAgICAgICAiLTAuMTkyNSwgLTAuMTgxMjUsIC0wLjE2ODc1LCAtMC4xNTYyNSwgLTAuMTQzNzUsIC0wLjEyNzUsIC0wLjExMjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjI1LCAwLjAxNzUsIDAuMDMsIDAuMDQyNSwgMC4wNTUsIDAuMDc3NSwgMC4wOTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDExMjUsIDAuMDA2MjUsIDAuMDE4NzUsIDAuMDMxMjUsIDAuMDQzNzUsIDAuMDcyNSwgMC4wODc1IiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDA2MjUsIDAuMDA2MjUsIDAuMDE4NzUsIDAuMDMxMjUsIDAuMDYsIDAuMDc1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLjAwNjI1LCAwLjAyNSwgMC4wNDc1LCAwLjA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAuMDEyNSwgMC4wMzUsIDAuMDUiLCBcCi0gICAgICAgICAgIi0wLjA1ODc1LCAtMC4wNDc1LCAtMC4wMzUsIC0wLjAyMjUsIC0wLjAxLCAwLjAxMjUsIDAuMDMzNzUiLCBcCi0gICAgICAgICAgIi0wLjA3Mzc1LCAtMC4wNjI1LCAtMC4wNSwgLTAuMDM3NSwgLTAuMDI1LCAtMC4wMDI1LCAwLjAxODc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhU0UiOwotICAgICAgc2RmX2NvbmQgOiAiU0UgPT0gMSdiMCI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTYyNSwgMC4xNTEyNSwgMC4xMzg3NSwgMC4xMiwgMC4xMDc1LCAwLjA5MTI1LCAwLjA4MjUiLCBcCi0gICAgICAgICAgIjAuMTczNzUsIDAuMTYyNSwgMC4xNSwgMC4xMzEyNSwgMC4xMTg3NSwgMC4xMDI1LCAwLjA4NzUiLCBcCi0gICAgICAgICAgIjAuMTkyNSwgMC4xNzUsIDAuMTYyNSwgMC4xNDM3NSwgMC4xMzc1LCAwLjExNSwgMC4xMDYyNSIsIFwKLSAgICAgICAgICAiMC4yMDUsIDAuMTg3NSwgMC4xNzUsIDAuMTYyNSwgMC4xNSwgMC4xMzM3NSwgMC4xMTg3NSIsIFwKLSAgICAgICAgICAiMC4yMTc1LCAwLjIsIDAuMTg3NSwgMC4xNzUsIDAuMTYyNSwgMC4xNDYyNSwgMC4xMzEyNSIsIFwKLSAgICAgICAgICAiMC4yNCwgMC4yMjI1LCAwLjIxLCAwLjE5MTI1LCAwLjE4NSwgMC4xNjI1LCAwLjE1Mzc1IiwgXAotICAgICAgICAgICIwLjI1NSwgMC4yNDM3NSwgMC4yMjUsIDAuMjEyNSwgMC4yLCAwLjE4Mzc1LCAwLjE2ODc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg3NSwgMC4wNzYyNSwgMC4wNTc1LCAwLjA0NSwgMC4wMjYyNSwgMC4wMDM3NSwgLTAuMDE3NSIsIFwKLSAgICAgICAgICAiMC4wOTg3NSwgMC4wODc1LCAwLjA2ODc1LCAwLjA1NjI1LCAwLjAzNzUsIDAuMDE1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiMC4xMTEyNSwgMC4xLCAwLjA4MTI1LCAwLjA2ODc1LCAwLjA1LCAwLjAyNzUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMTIzNzUsIDAuMTEyNSwgMC4wOTM3NSwgMC4wODEyNSwgMC4wNjI1LCAwLjA0LCAwLjAxODc1IiwgXAotICAgICAgICAgICIwLjEzNjI1LCAwLjEyNSwgMC4xMDYyNSwgMC4wOTM3NSwgMC4wNzUsIDAuMDUyNSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4xNTg3NSwgMC4xNDEyNSwgMC4xMjg3NSwgMC4xMSwgMC4wOTc1LCAwLjA3NSwgMC4wNTM3NSIsIFwKLSAgICAgICAgICAiMC4xNzM3NSwgMC4xNjI1LCAwLjE0Mzc1LCAwLjEzMTI1LCAwLjExMjUsIDAuMDksIDAuMDY4NzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFEpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC41MjQ2NDg7Ci0gICAgZnVuY3Rpb24gOiAiTjMwIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBub25fdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJpc2luZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIxODgyNiwgMC4zNDcyMzIsIDAuNDc0NDQsIDAuNTY1MjYsIDAuNzEwNjIzLCAwLjgzNzgyNiwgMS4wMTk0OCIsIFwKLSAgICAgICAgICAiMC4yMzA4MjMsIDAuMzU5MjMzLCAwLjQ4NjQxNywgMC41NzcyNDEsIDAuNzIyNjMsIDAuODQ5OSwgMS4wMzE1NyIsIFwKLSAgICAgICAgICAiMC4yNDU3MzksIDAuMzc0MTUsIDAuNTAxMzM3LCAwLjU5MjE2MSwgMC43Mzc1NDQsIDAuODY0ODIsIDEuMDQ2NDgiLCBcCi0gICAgICAgICAgIjAuMjYxMjIsIDAuMzg5NjQ5LCAwLjUxNjgyNCwgMC42MDc2NDksIDAuNzUzMDMzLCAwLjg4MDMwNCwgMS4wNjE5NyIsIFwKLSAgICAgICAgICAiMC4yNzY2NDIsIDAuNDA1MDUxLCAwLjUzMjIzOSwgMC42MjMxMDUsIDAuNzY4NDQ0LCAwLjg5NTY0NywgMS4wNzcxMSIsIFwKLSAgICAgICAgICAiMC4zMDA5MzMsIDAuNDI5MzQ0LCAwLjU1NjU1MywgMC42NDczNTMsIDAuNzkyNzQ1LCAwLjkyMDAxNSwgMS4xMDE2OCIsIFwKLSAgICAgICAgICAiMC4zMjE5NTYsIDAuNDUwMzY3LCAwLjU3NzU3OSwgMC42NjgzODQsIDAuODEzNzcyLCAwLjk0MTA0LCAxLjEyMjY0Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU0OTk2LCAwLjMwODY5MSwgMC41Njc1MzUsIDAuNzUzMDM0LCAxLjA1MDQxLCAxLjMwNzYzLCAxLjY4Mzk4IiwgXAotICAgICAgICAgICIwLjA1NTAxNCwgMC4zMDg2OCwgMC41Njg5MzEsIDAuNzU0NjExLCAxLjA1MDM5LCAxLjMwOTUyLCAxLjY4NDQ1IiwgXAotICAgICAgICAgICIwLjA1NDk3NiwgMC4zMDkwOTYsIDAuNTY4OTI3LCAwLjc1NDY0MywgMS4wNTA0MSwgMS4zMDk0OSwgMS42ODQ0NyIsIFwKLSAgICAgICAgICAiMC4wNTUwMiwgMC4zMDkyMDUsIDAuNTY4OTM1LCAwLjc1NDYzMSwgMS4wNTAzNywgMS4zMDg5NSwgMS42ODQ0NCIsIFwKLSAgICAgICAgICAiMC4wNTUwMDYsIDAuMzA4Njg3LCAwLjU2ODk1MSwgMC43NTQ4ODUsIDEuMDUwNDEsIDEuMzA3OTIsIDEuNjgzMzEiLCBcCi0gICAgICAgICAgIjAuMDU0OTk1LCAwLjMwODY4NSwgMC41Njc1MzYsIDAuNzU0NjE0LCAxLjA1MDQ5LCAxLjMwOTM1LCAxLjY4NDUiLCBcCi0gICAgICAgICAgIjAuMDU0OTk0LCAwLjMwODY4NiwgMC41Njg3NDUsIDAuNzU0NjI3LCAxLjA1MDQ5LCAxLjMwOTMxLCAxLjY4NDAzIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjU0NDUxLCAwLjQwMTIyOSwgMC41NDY4MDMsIDAuNjUwNzg0LCAwLjgxNzE1MywgMC45NjI3NTUsIDEuMTcwNjIiLCBcCi0gICAgICAgICAgIjAuMjY2NDYsIDAuNDEzMjMsIDAuNTU4ODAzLCAwLjY2Mjc3NSwgMC44MjkxNDQsIDAuOTc0NzYzLCAxLjE4MjYyIiwgXAotICAgICAgICAgICIwLjI4MTU0OCwgMC40MjgzMTUsIDAuNTczODksIDAuNjc3ODU3LCAwLjg0NDIwNSwgMC45ODk3OTIsIDEuMTk3NzIiLCBcCi0gICAgICAgICAgIjAuMjk2OTc0LCAwLjQ0MzczOCwgMC41ODkzMiwgMC42OTMyOTcsIDAuODU5Njc4LCAxLjAwNTI2LCAxLjIxMzA2IiwgXAotICAgICAgICAgICIwLjMxMjM4OSwgMC40NTkxNjIsIDAuNjA0NzM5LCAwLjcwODcwNSwgMC44NzUxNjQsIDEuMDIwNjMsIDEuMjI4NTgiLCBcCi0gICAgICAgICAgIjAuMzM2NzU5LCAwLjQ4MzUyNiwgMC42MjkxMDEsIDAuNzMzMDY5LCAwLjg5OTQ0LCAxLjA0NSwgMS4yNTI5NCIsIFwKLSAgICAgICAgICAiMC4zNTc4NDcsIDAuNTA0NjE4LCAwLjY1MDE5MywgMC43NTQxNjMsIDAuOTIwNTE5LCAxLjA2NjEsIDEuMjc0MDIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTg0MDYsIDAuMzQ0NDIsIDAuNjM0OTAzLCAwLjg0MDMzMywgMS4xNzEwMSwgMS40NjA3NiwgMS44Nzk1OSIsIFwKLSAgICAgICAgICAiMC4wNTgzNzgsIDAuMzQ0MzUxLCAwLjYzNDg1OCwgMC44NDA5OCwgMS4xNzMxOSwgMS40NjAzOCwgMS44Nzk2MiIsIFwKLSAgICAgICAgICAiMC4wNTgzOTMsIDAuMzQ0MzQ1LCAwLjYzNDg2LCAwLjg0MTQ5NiwgMS4xNzQ5NCwgMS40NjMxOCwgMS44Nzk1MiIsIFwKLSAgICAgICAgICAiMC4wNTgzOTgsIDAuMzQ0NTY4LCAwLjYzNDk2LCAwLjg0MDU5LCAxLjE3MTA2LCAxLjQ2MTE4LCAxLjg3NjQ4IiwgXAotICAgICAgICAgICIwLjA1ODM3LCAwLjM0NDM2LCAwLjYzNDg2LCAwLjg0MTU4NiwgMS4xNzI4NCwgMS40NjIxNiwgMS44Nzk0MyIsIFwKLSAgICAgICAgICAiMC4wNTgzNzEsIDAuMzQ0MzY5LCAwLjYzNDg1OCwgMC44NDE0OSwgMS4xNzM1NSwgMS40NjM0NCwgMS44Nzk0NiIsIFwKLSAgICAgICAgICAiMC4wNTgzOTMsIDAuMzQ0NDAzLCAwLjYzNDg1NywgMC44NDEzMiwgMS4xNzI4OSwgMS40NjM1OCwgMS44Nzk1MSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwODU0NiwgMC4wMDg2MjUsIDAuMDA4NjIxLCAwLjAwODYxOCwgMC4wMDg2MTQsIDAuMDA4NjEzLCAwLjAwODYxMSIsIFwKLSAgICAgICAgICAiMC4wMDg1MzYsIDAuMDA4NjE0LCAwLjAwODYxMSwgMC4wMDg2MDcsIDAuMDA4NjAzLCAwLjAwODYwMiwgMC4wMDg1OTkiLCBcCi0gICAgICAgICAgIjAuMDA4NTIyLCAwLjAwODYsIDAuMDA4NTk4LCAwLjAwODU5NSwgMC4wMDg1OSwgMC4wMDg1ODksIDAuMDA4NTg2IiwgXAotICAgICAgICAgICIwLjAwODUxMSwgMC4wMDg1OTEsIDAuMDA4NTg4LCAwLjAwODU4NSwgMC4wMDg1ODEsIDAuMDA4NTc5LCAwLjAwODU3NiIsIFwKLSAgICAgICAgICAiMC4wMDg1MDQsIDAuMDA4NTg0LCAwLjAwODU4MSwgMC4wMDg1NzgsIDAuMDA4NTc0LCAwLjAwODU3MywgMC4wMDg1NjkiLCBcCi0gICAgICAgICAgIjAuMDA4NDkyLCAwLjAwODU3MiwgMC4wMDg1NywgMC4wMDg1NjYsIDAuMDA4NTYzLCAwLjAwODU2LCAwLjAwODU1OSIsIFwKLSAgICAgICAgICAiMC4wMDg0ODksIDAuMDA4NTcsIDAuMDA4NTY5LCAwLjAwODU2NCwgMC4wMDg1NjIsIDAuMDA4NTYsIDAuMDA4NTU1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDg4NjUsIDAuMDA4OTk4LCAwLjAwOTAxNCwgMC4wMDkwMTksIDAuMDA5MDI0LCAwLjAwOTAyNSwgMC4wMDkwMjgiLCBcCi0gICAgICAgICAgIjAuMDA4ODU3LCAwLjAwODk4NSwgMC4wMDkwMDEsIDAuMDA5MDA2LCAwLjAwOTAxLCAwLjAwOTAxMSwgMC4wMDkwMTQiLCBcCi0gICAgICAgICAgIjAuMDA4ODQ3LCAwLjAwODk3NCwgMC4wMDg5OSwgMC4wMDg5OTUsIDAuMDA5LCAwLjAwOTAwMiwgMC4wMDkwMDQiLCBcCi0gICAgICAgICAgIjAuMDA4ODM0LCAwLjAwODk2NSwgMC4wMDg5ODEsIDAuMDA4OTg2LCAwLjAwODk5LCAwLjAwODk5MiwgMC4wMDg5OTQiLCBcCi0gICAgICAgICAgIjAuMDA4ODMxLCAwLjAwODk2MiwgMC4wMDg5NzgsIDAuMDA4OTgzLCAwLjAwODk4OCwgMC4wMDg5OSwgMC4wMDg5OTIiLCBcCi0gICAgICAgICAgIjAuMDA4ODI5LCAwLjAwODk2LCAwLjAwODk3NiwgMC4wMDg5ODEsIDAuMDA4OTg2LCAwLjAwODk4OCwgMC4wMDg5OSIsIFwKLSAgICAgICAgICAiMC4wMDg4MzQsIDAuMDA4OTY1LCAwLjAwODk4MSwgMC4wMDg5ODYsIDAuMDA4OTkxLCAwLjAwODk5MywgMC4wMDg5OTUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFNFKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE1MTU5MzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE1MTUyOTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE1MTU5MzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDQ0ODEsIDAuMDA0NDc5LCAwLjAwNDQ3MywgMC4wMDQ0NjcsIDAuMDA0NDYzLCAwLjAwNDQ1NywgMC4wMDQ0NTQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDU1MzUsIDAuMDA1NTA5LCAwLjAwNTQ5LCAwLjAwNTQ3OCwgMC4wMDU0NjksIDAuMDA1NDYsIDAuMDA1NDU2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEJlNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9TSV9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjA4NzUsIC0wLjA3NjI1LCAtMC4wNjM3NSwgLTAuMDUxMjUsIC0wLjAzODc1LCAtMC4wMjI1LCAtMC4wMDc1IiwgXAotICAgICAgICAgICItMC4wOTI1LCAtMC4wODc1LCAtMC4wNzUsIC0wLjA2MjUsIC0wLjA1LCAtMC4wMzM3NSwgLTAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjExMTI1LCAtMC4xLCAtMC4wODc1LCAtMC4wNzUsIC0wLjA2MjUsIC0wLjA0NjI1LCAtMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMTIzNzUsIC0wLjExMjUsIC0wLjEsIC0wLjA4NzUsIC0wLjA3NSwgLTAuMDU4NzUsIC0wLjA0Mzc1IiwgXAotICAgICAgICAgICItMC4xMzYyNSwgLTAuMTI1LCAtMC4xMTI1LCAtMC4xLCAtMC4wODc1LCAtMC4wNzEyNSwgLTAuMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMTU4NzUsIC0wLjE0NzUsIC0wLjEzNSwgLTAuMTIyNSwgLTAuMTEsIC0wLjA5Mzc1LCAtMC4wNzg3NSIsIFwKLSAgICAgICAgICAiLTAuMTczNzUsIC0wLjE2MjUsIC0wLjE1LCAtMC4xMzc1LCAtMC4xMzEyNSwgLTAuMTE1LCAtMC4xIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTI1LCAwLjAyMzc1LCAwLjA0MjUsIDAuMDU1LCAwLjA2NzUsIDAuMDksIDAuMTExMjUiLCBcCi0gICAgICAgICAgIjAuMDAxMjUsIDAuMDE4NzUsIDAuMDMxMjUsIDAuMDQzNzUsIDAuMDU2MjUsIDAuMDg1LCAwLjEiLCBcCi0gICAgICAgICAgIi0wLjAwNSwgMC4wMDYyNSwgMC4wMTg3NSwgMC4wMzEyNSwgMC4wNDM3NSwgMC4wNzI1LCAwLjA4NzUiLCBcCi0gICAgICAgICAgIi0wLjAxNzUsIC0wLjAwNjI1LCAwLjAwNjI1LCAwLjAxODc1LCAwLjAzNzUsIDAuMDYsIDAuMDc1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLjAwNjI1LCAwLjAyNSwgMC4wNDc1LCAwLjA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA0NjI1LCAtMC4wMzUsIC0wLjAyMjUsIC0wLjAxLCAwLjAwMjUsIDAuMDI1LCAwLjA0NjI1IiwgXAotICAgICAgICAgICItMC4wNjEyNSwgLTAuMDUsIC0wLjAzNzUsIC0wLjAyNSwgLTAuMDEyNSwgMC4wMSwgMC4wMzEyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJEJiFTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzFfQU5fU0lfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMjUsIC0wLjAwNzUsIDAuMDA1LCAwLjAxNzUsIDAuMDMsIDAuMDU4NzUsIDAuMDczNzUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMjUsIC0wLjAwNjI1LCAwLjAwNjI1LCAwLjAxODc1LCAwLjA0MTI1LCAwLjA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAwNjI1LCAwLjAwNjI1LCAwLjAyODc1LCAwLjA1IiwgXAotICAgICAgICAgICItMC4wNjEyNSwgLTAuMDUsIC0wLjAzNzUsIC0wLjAyNSwgLTAuMDEyNSwgMC4wMTYyNSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDgsIC0wLjA2ODc1LCAtMC4wNSwgLTAuMDM3NSwgLTAuMDI1LCAtMC4wMDI1LCAwLjAxODc1IiwgXAotICAgICAgICAgICItMC4xMDI1LCAtMC4wOTEyNSwgLTAuMDcyNSwgLTAuMDYsIC0wLjA0NzUsIC0wLjAyNSwgLTAuMDAzNzUiLCBcCi0gICAgICAgICAgIi0wLjExNzUsIC0wLjEwNjI1LCAtMC4wOTM3NSwgLTAuMDc1LCAtMC4wNjI1LCAtMC4wNCwgLTAuMDE4NzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4xMTg3NSwgLTAuMTA3NSwgLTAuMDk1LCAtMC4wODI1LCAtMC4wNzYyNSwgLTAuMDYsIC0wLjA0NSIsIFwKLSAgICAgICAgICAiLTAuMTMsIC0wLjExODc1LCAtMC4xMDYyNSwgLTAuMDkzNzUsIC0wLjA4NzUsIC0wLjA3MTI1LCAtMC4wNTYyNSIsIFwKLSAgICAgICAgICAiLTAuMTQyNSwgLTAuMTM3NSwgLTAuMTI1LCAtMC4xMTI1LCAtMC4xLCAtMC4wODM3NSwgLTAuMDY4NzUiLCBcCi0gICAgICAgICAgIi0wLjE2MTI1LCAtMC4xNSwgLTAuMTM3NSwgLTAuMTI1LCAtMC4xMTI1LCAtMC4wOTYyNSwgLTAuMDg3NSIsIFwKLSAgICAgICAgICAiLTAuMTczNzUsIC0wLjE2MjUsIC0wLjE1LCAtMC4xMzc1LCAtMC4xMjUsIC0wLjEwODc1LCAtMC4xIiwgXAotICAgICAgICAgICItMC4xOSwgLTAuMTg1LCAtMC4xNzI1LCAtMC4xNiwgLTAuMTQ3NSwgLTAuMTMxMjUsIC0wLjExNjI1IiwgXAotICAgICAgICAgICItMC4yMDUsIC0wLjE5Mzc1LCAtMC4xODEyNSwgLTAuMTc1LCAtMC4xNjI1LCAtMC4xNDYyNSwgLTAuMTMxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEJlNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9TSV9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE1LCAwLjEzODc1LCAwLjEyLCAwLjEwNzUsIDAuMDk1LCAwLjA3ODc1LCAwLjA2Mzc1IiwgXAotICAgICAgICAgICIwLjE2MTI1LCAwLjE1LCAwLjEzMTI1LCAwLjExODc1LCAwLjEwNjI1LCAwLjA5LCAwLjA3NSIsIFwKLSAgICAgICAgICAiMC4xNzM3NSwgMC4xNjI1LCAwLjE0Mzc1LCAwLjEzMTI1LCAwLjExODc1LCAwLjEwMjUsIDAuMDg3NSIsIFwKLSAgICAgICAgICAiMC4xODYyNSwgMC4xNzUsIDAuMTU2MjUsIDAuMTQzNzUsIDAuMTMxMjUsIDAuMTE1LCAwLjEiLCBcCi0gICAgICAgICAgIjAuMTk4NzUsIDAuMTg3NSwgMC4xNzUsIDAuMTU2MjUsIDAuMTQzNzUsIDAuMTI3NSwgMC4xMTI1IiwgXAotICAgICAgICAgICIwLjIyMTI1LCAwLjIxLCAwLjE5MTI1LCAwLjE3ODc1LCAwLjE2NjI1LCAwLjE1LCAwLjEzNSIsIFwKLSAgICAgICAgICAiMC4yNDI1LCAwLjIzMTI1LCAwLjIxMjUsIDAuMiwgMC4xODc1LCAwLjE3MTI1LCAwLjE1NjI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc1LCAwLjA2Mzc1LCAwLjA1MTI1LCAwLjAzMjUsIDAuMDEzNzUsIC0wLjAwODc1LCAtMC4wMyIsIFwKLSAgICAgICAgICAiMC4wODYyNSwgMC4wNzUsIDAuMDU2MjUsIDAuMDQzNzUsIDAuMDI1LCAwLjAwMjUsIC0wLjAxODc1IiwgXAotICAgICAgICAgICIwLjA5ODc1LCAwLjA4NzUsIDAuMDY4NzUsIDAuMDU2MjUsIDAuMDM3NSwgMC4wMTUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICIwLjExMTI1LCAwLjEsIDAuMDg3NSwgMC4wNjg3NSwgMC4wNSwgMC4wMjc1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICIwLjEyMzc1LCAwLjExMjUsIDAuMSwgMC4wODEyNSwgMC4wNjg3NSwgMC4wNCwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4xNDYyNSwgMC4xMzUsIDAuMTE2MjUsIDAuMTAzNzUsIDAuMDg1LCAwLjA2MjUsIDAuMDQxMjUiLCBcCi0gICAgICAgICAgIjAuMTY3NSwgMC4xNSwgMC4xMzc1LCAwLjExODc1LCAwLjEwNjI1LCAwLjA3NzUsIDAuMDU2MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIkQmIVNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMV9BTl9TSV9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExMjUsIDAuMTAxMjUsIDAuMDgyNSwgMC4wNywgMC4wNTEyNSwgMC4wMjg3NSwgMC4wMDc1IiwgXAotICAgICAgICAgICIwLjEyMzc1LCAwLjExMjUsIDAuMSwgMC4wODEyNSwgMC4wNjg3NSwgMC4wNCwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4xNDI1LCAwLjEzMTI1LCAwLjExMjUsIDAuMDkzNzUsIDAuMDgxMjUsIDAuMDU4NzUsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiMC4xNTUsIDAuMTQzNzUsIDAuMTI1LCAwLjExMjUsIDAuMDkzNzUsIDAuMDcxMjUsIDAuMDUiLCBcCi0gICAgICAgICAgIjAuMTczNzUsIDAuMTU2MjUsIDAuMTQzNzUsIDAuMTI1LCAwLjExMjUsIDAuMDgzNzUsIDAuMDY4NzUiLCBcCi0gICAgICAgICAgIjAuMTksIDAuMTc4NzUsIDAuMTY2MjUsIDAuMTQ3NSwgMC4xMzUsIDAuMTA2MjUsIDAuMDg1IiwgXAotICAgICAgICAgICIwLjIxMTI1LCAwLjIsIDAuMTgxMjUsIDAuMTYyNSwgMC4xNSwgMC4xMjc1LCAwLjEwNjI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTg3NSwgMC4xNywgMC4xNTc1LCAwLjEzODc1LCAwLjEzMjUsIDAuMTEsIDAuMTAxMjUiLCBcCi0gICAgICAgICAgIjAuMTk4NzUsIDAuMTgxMjUsIDAuMTY4NzUsIDAuMTU2MjUsIDAuMTQzNzUsIDAuMTI3NSwgMC4xMTI1IiwgXAotICAgICAgICAgICIwLjIxMTI1LCAwLjIsIDAuMTgxMjUsIDAuMTY4NzUsIDAuMTU2MjUsIDAuMTQsIDAuMTI1IiwgXAotICAgICAgICAgICIwLjIyMzc1LCAwLjIxMjUsIDAuMiwgMC4xODEyNSwgMC4xNjg3NSwgMC4xNTI1LCAwLjEzNzUiLCBcCi0gICAgICAgICAgIjAuMjM2MjUsIDAuMjI1LCAwLjIxMjUsIDAuMTkzNzUsIDAuMTgxMjUsIDAuMTY1LCAwLjE1IiwgXAotICAgICAgICAgICIwLjI1ODc1LCAwLjI0NzUsIDAuMjI4NzUsIDAuMjE2MjUsIDAuMjAzNzUsIDAuMTg3NSwgMC4xNzI1IiwgXAotICAgICAgICAgICIwLjI3Mzc1LCAwLjI2MjUsIDAuMjQzNzUsIDAuMjMxMjUsIDAuMjE4NzUsIDAuMjAyNSwgMC4xODc1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTSSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwODQxNzQ7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwODM4MTg2OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDg0MTc0OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjkxMiwgMC4wMDI4OTMsIDAuMDAyODgyLCAwLjAwMjg3NSwgMC4wMDI4NywgMC4wMDI4NjQsIDAuMDAyODU5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA0ODgyLCAwLjAwNDg3MiwgMC4wMDQ4NjcsIDAuMDA0ODYzLCAwLjAwNDg1OSwgMC4wMDQ4NTcsIDAuMDA0ODU0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlNFIjsKLSAgICAgIHNkZl9jb25kIDogIlNFID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjEsIC0wLjA4ODc1LCAtMC4wNzYyNSwgLTAuMDYzNzUsIC0wLjA1MTI1LCAtMC4wMzUsIC0wLjAyIiwgXAotICAgICAgICAgICItMC4xMDUsIC0wLjEsIC0wLjA4NzUsIC0wLjA3NSwgLTAuMDYyNSwgLTAuMDQ2MjUsIC0wLjAzMTI1IiwgXAotICAgICAgICAgICItMC4xMjM3NSwgLTAuMTEyNSwgLTAuMSwgLTAuMDg3NSwgLTAuMDc1LCAtMC4wNTg3NSwgLTAuMDQzNzUiLCBcCi0gICAgICAgICAgIi0wLjEzNjI1LCAtMC4xMjUsIC0wLjExMjUsIC0wLjEsIC0wLjA4NzUsIC0wLjA3MTI1LCAtMC4wNjI1IiwgXAotICAgICAgICAgICItMC4xNDg3NSwgLTAuMTM3NSwgLTAuMTI1LCAtMC4xMTI1LCAtMC4xMDYyNSwgLTAuMDksIC0wLjA3NSIsIFwKLSAgICAgICAgICAiLTAuMTcxMjUsIC0wLjE2LCAtMC4xNDc1LCAtMC4xMzUsIC0wLjEyMjUsIC0wLjEwNjI1LCAtMC4wOTc1IiwgXAotICAgICAgICAgICItMC4xODYyNSwgLTAuMTc1LCAtMC4xNjI1LCAtMC4xNTYyNSwgLTAuMTQzNzUsIC0wLjEyNzUsIC0wLjExMjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLCAwLjAxMTI1LCAwLjAzLCAwLjA0MjUsIDAuMDU1LCAwLjA3NzUsIDAuMDk4NzUiLCBcCi0gICAgICAgICAgIi0wLjAxMTI1LCAwLCAwLjAxODc1LCAwLjAzMTI1LCAwLjA0Mzc1LCAwLjA2NjI1LCAwLjA4NzUiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTI1LCAwLjAwNjI1LCAwLjAxODc1LCAwLjAzMTI1LCAwLjA1Mzc1LCAwLjA3NSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAyNSwgLTAuMDA2MjUsIDAuMDA2MjUsIDAuMDE4NzUsIDAuMDQxMjUsIDAuMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDMxMjUsIC0wLjAxODc1LCAtMC4wMDYyNSwgMC4wMDYyNSwgMC4wMjg3NSwgMC4wNSIsIFwKLSAgICAgICAgICAiLTAuMDY1LCAtMC4wNTM3NSwgLTAuMDM1LCAtMC4wMjI1LCAtMC4wMSwgMC4wMTI1LCAwLjAzMzc1IiwgXAotICAgICAgICAgICItMC4wOCwgLTAuMDYyNSwgLTAuMDUsIC0wLjAzNzUsIC0wLjAyNSwgLTAuMDAyNSwgMC4wMTg3NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiU0UiOwotICAgICAgc2RmX2NvbmQgOiAiU0UgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTYyNSwgMC4xNTEyNSwgMC4xMzI1LCAwLjEyLCAwLjEwNzUsIDAuMDkxMjUsIDAuMDc2MjUiLCBcCi0gICAgICAgICAgIjAuMTczNzUsIDAuMTYyNSwgMC4xNDM3NSwgMC4xMzEyNSwgMC4xMTg3NSwgMC4xMDI1LCAwLjA4NzUiLCBcCi0gICAgICAgICAgIjAuMTg2MjUsIDAuMTc1LCAwLjE1NjI1LCAwLjE0Mzc1LCAwLjEzMTI1LCAwLjExNSwgMC4xIiwgXAotICAgICAgICAgICIwLjE5ODc1LCAwLjE4NzUsIDAuMTc1LCAwLjE1NjI1LCAwLjE0Mzc1LCAwLjEyNzUsIDAuMTEyNSIsIFwKLSAgICAgICAgICAiMC4yMTEyNSwgMC4yLCAwLjE4NzUsIDAuMTY4NzUsIDAuMTU2MjUsIDAuMTQsIDAuMTMxMjUiLCBcCi0gICAgICAgICAgIjAuMjMzNzUsIDAuMjIyNSwgMC4yMSwgMC4xOTEyNSwgMC4xNzg3NSwgMC4xNjI1LCAwLjE0NzUiLCBcCi0gICAgICAgICAgIjAuMjU1LCAwLjI0Mzc1LCAwLjIyNSwgMC4yMTI1LCAwLjIsIDAuMTgzNzUsIDAuMTY4NzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODc1LCAwLjA3NjI1LCAwLjA2Mzc1LCAwLjA0NSwgMC4wMzI1LCAwLjAwMzc1LCAtMC4wMTc1IiwgXAotICAgICAgICAgICIwLjA5ODc1LCAwLjA4NzUsIDAuMDc1LCAwLjA1NjI1LCAwLjA0Mzc1LCAwLjAxNSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMTExMjUsIDAuMSwgMC4wODc1LCAwLjA2ODc1LCAwLjA1NjI1LCAwLjAyNzUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMTIzNzUsIDAuMTEyNSwgMC4xLCAwLjA4MTI1LCAwLjA2ODc1LCAwLjA0LCAwLjAxODc1IiwgXAotICAgICAgICAgICIwLjEzNjI1LCAwLjEyNSwgMC4xMTI1LCAwLjA5Mzc1LCAwLjA4MTI1LCAwLjA1MjUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMTU4NzUsIDAuMTQ3NSwgMC4xMjg3NSwgMC4xMTYyNSwgMC4wOTc1LCAwLjA3NSwgMC4wNTM3NSIsIFwKLSAgICAgICAgICAiMC4xNzM3NSwgMC4xNjI1LCAwLjE0Mzc1LCAwLjEzMTI1LCAwLjExMjUsIDAuMDksIDAuMDY4NzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IFNERkZOU1JYMSAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKFNERkZOU1JYMSkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjM1Mzk3OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIGZmIChOMzUsUUJJTlQpIHsKLSAgICBuZXh0X3N0YXRlIDogIigoU0UgU0kpICsgKCFTRSBEKSkiOwotICAgIGNsb2NrZWRfb24gOiAiKCFDS04pIjsKLSAgICBjbGVhciA6ICIoIVJOKSI7Ci0gICAgcHJlc2V0IDogIighU04pIjsKLSAgICBjbGVhcl9wcmVzZXRfdmFyMSA6IEg7Ci0gICAgY2xlYXJfcHJlc2V0X3ZhcjIgOiBMOwotICB9Ci0gIHBpbihDS04pICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDU5NjY4NzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA1OTY0MTE7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNTk2Njg3OwotICAgIGNsb2NrIDogdHJ1ZTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDU0NTgsIDAuMDA1NDQ0LCAwLjAwNTQzMSwgMC4wMDU0MjMsIDAuMDA1NDIyLCAwLjAwNTQyNCwgMC4wMDU0MjciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDI1MzgsIDAuMDAyNTI3LCAwLjAwMjUxOCwgMC4wMDI1MTEsIDAuMDAyNTA2LCAwLjAwMjUwMiwgMC4wMDI0OTkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0tOIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRCZSTiYhU0UmIVNJJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9STl9FUV8xX0FOX1NFX0VRXzBfQU5fU0lfRVFfMF9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMjM0OTUyLCAwLjI0NzAyMSwgMC4yNjIxMzksIDAuMjc3MjgyLCAwLjI5Mjc2OCwgMC4zMTY3NTcsIDAuMzM2NDcyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4zMzc4NSwgMC4zNDkzNjQsIDAuMzYzOTg4LCAwLjM3ODc4MSwgMC4zOTMxMjYsIDAuNDE1MDQ5LCAwLjQzMjY0MyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjU0MzU4OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDY1MjQ3ODsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2NTQzNTg7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyOTE0LCAwLjAwMjkwNCwgMC4wMDI4OTksIDAuMDAyODk2LCAwLjAwMjg5NCwgMC4wMDI4OSwgMC4wMDI4ODgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDM4MywgMC4wMDM4MjYsIDAuMDAzODIzLCAwLjAwMzgyMiwgMC4wMDM4MiwgMC4wMDM4MTcsIDAuMDAzODE2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfZmFsbGluZzsKLSAgICAgIHdoZW4gOiAiUk4mIVNFJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIlJOX0VRXzFfQU5fU0VfRVFfMF9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjA0Mzc1LCAtMC4wMzI1LCAtMC4wMiwgLTAuMDA3NSwgMC4wMDUsIDAuMDIxMjUsIDAuMDMiLCBcCi0gICAgICAgICAgIi0wLjA1NSwgLTAuMDQzNzUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAuMDEsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjA2NzUsIC0wLjA1NjI1LCAtMC4wNDM3NSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDA4NzUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA4LCAtMC4wNjg3NSwgLTAuMDU2MjUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMjEyNSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA5MjUsIC0wLjA4MTI1LCAtMC4wNjg3NSwgLTAuMDYyNSwgLTAuMDUsIC0wLjAzMzc1LCAtMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMTE1LCAtMC4xMDM3NSwgLTAuMDkxMjUsIC0wLjA3ODc1LCAtMC4wNzI1LCAtMC4wNTYyNSwgLTAuMDQxMjUiLCBcCi0gICAgICAgICAgIi0wLjEzLCAtMC4xMTg3NSwgLTAuMTA2MjUsIC0wLjEsIC0wLjA4NzUsIC0wLjA3MTI1LCAtMC4wNTYyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjEyNSwgLTAuMTIsIC0wLjEwNzUsIC0wLjEwMTI1LCAtMC4wOTUsIC0wLjA4NSwgLTAuMDc2MjUiLCBcCi0gICAgICAgICAgIi0wLjE0MjUsIC0wLjEzMTI1LCAtMC4xMTg3NSwgLTAuMTEyNSwgLTAuMTA2MjUsIC0wLjA5NjI1LCAtMC4wODc1IiwgXAotICAgICAgICAgICItMC4xNTUsIC0wLjE0Mzc1LCAtMC4xMzc1LCAtMC4xMjUsIC0wLjExODc1LCAtMC4xMDg3NSwgLTAuMSIsIFwKLSAgICAgICAgICAiLTAuMTY3NSwgLTAuMTU2MjUsIC0wLjE1LCAtMC4xMzc1LCAtMC4xMzEyNSwgLTAuMTIxMjUsIC0wLjExMjUiLCBcCi0gICAgICAgICAgIi0wLjE4LCAtMC4xNjg3NSwgLTAuMTYyNSwgLTAuMTUsIC0wLjE0Mzc1LCAtMC4xMzM3NSwgLTAuMTI1IiwgXAotICAgICAgICAgICItMC4xOTYyNSwgLTAuMTkxMjUsIC0wLjE3ODc1LCAtMC4xNzI1LCAtMC4xNjYyNSwgLTAuMTU2MjUsIC0wLjE0NzUiLCBcCi0gICAgICAgICAgIi0wLjIxMTI1LCAtMC4yMDYyNSwgLTAuMTkzNzUsIC0wLjE4NzUsIC0wLjE4MTI1LCAtMC4xNzEyNSwgLTAuMTYyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDS04iOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9mYWxsaW5nOwotICAgICAgd2hlbiA6ICJSTiYhU0UmU04iOwotICAgICAgc2RmX2NvbmQgOiAiUk5fRVFfMV9BTl9TRV9FUV8wX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjM3NSwgMC4yMjYyNSwgMC4yMDc1LCAwLjE4ODc1LCAwLjE3NjI1LCAwLjE1Mzc1LCAwLjEzMjUiLCBcCi0gICAgICAgICAgIjAuMjQ4NzUsIDAuMjM3NSwgMC4yMTg3NSwgMC4yMDYyNSwgMC4xODc1LCAwLjE2NSwgMC4xNDM3NSIsIFwKLSAgICAgICAgICAiMC4yNjEyNSwgMC4yNSwgMC4yMzEyNSwgMC4yMTg3NSwgMC4yLCAwLjE3NzUsIDAuMTYyNSIsIFwKLSAgICAgICAgICAiMC4yNzM3NSwgMC4yNjI1LCAwLjI0Mzc1LCAwLjIzMTI1LCAwLjIxMjUsIDAuMTksIDAuMTc1IiwgXAotICAgICAgICAgICIwLjI4NjI1LCAwLjI3NSwgMC4yNjI1LCAwLjI0Mzc1LCAwLjIzMTI1LCAwLjIwODc1LCAwLjE4NzUiLCBcCi0gICAgICAgICAgIjAuMzA4NzUsIDAuMjk3NSwgMC4yODUsIDAuMjY2MjUsIDAuMjUzNzUsIDAuMjI1LCAwLjIxIiwgXAotICAgICAgICAgICIwLjMzLCAwLjMxODc1LCAwLjMsIDAuMjg3NSwgMC4yNjg3NSwgMC4yNDYyNSwgMC4yMzEyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI4MTI1LCAwLjI3LCAwLjI1MTI1LCAwLjIzMjUsIDAuMjIsIDAuMTk3NSwgMC4xODI1IiwgXAotICAgICAgICAgICIwLjI5MjUsIDAuMjgxMjUsIDAuMjYyNSwgMC4yNDM3NSwgMC4yMzEyNSwgMC4yMDg3NSwgMC4xOTM3NSIsIFwKLSAgICAgICAgICAiMC4zMDUsIDAuMjkzNzUsIDAuMjc1LCAwLjI1NjI1LCAwLjI0Mzc1LCAwLjIyMTI1LCAwLjIwNjI1IiwgXAotICAgICAgICAgICIwLjMxNzUsIDAuMzA2MjUsIDAuMjg3NSwgMC4yNjg3NSwgMC4yNTYyNSwgMC4yMzM3NSwgMC4yMTg3NSIsIFwKLSAgICAgICAgICAiMC4zMywgMC4zMTg3NSwgMC4zLCAwLjI4MTI1LCAwLjI2ODc1LCAwLjI0NjI1LCAwLjIzMTI1IiwgXAotICAgICAgICAgICIwLjM0NjI1LCAwLjMzNSwgMC4zMjI1LCAwLjMwMzc1LCAwLjI5MTI1LCAwLjI2ODc1LCAwLjI0NzUiLCBcCi0gICAgICAgICAgIjAuMzY3NSwgMC4zNTYyNSwgMC4zMzc1LCAwLjMxODc1LCAwLjMwNjI1LCAwLjI4Mzc1LCAwLjI2ODc1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihRKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMTM0MzAxOwotICAgIGZ1bmN0aW9uIDogIk4zNSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0tOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5vbl91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogZmFsbGluZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zNTIxOTYsIDAuMzk1Njk2LCAwLjY0MDkwNiwgMC44NTcyNDcsIDEuMTQ1OTgsIDEuNzIzMDgsIDIuMDgzNjEiLCBcCi0gICAgICAgICAgIjAuMzYzODQ2LCAwLjQwNzMzNywgMC42NTI1NzUsIDAuODY5ODA4LCAxLjE1NzU5LCAxLjczMzQyLCAyLjA5NTQ0IiwgXAotICAgICAgICAgICIwLjM3ODU4NCwgMC40MjIxNywgMC42NjczODQsIDAuODgzMzk5LCAxLjE3MjUsIDEuNzQ2NjEsIDIuMTA5ODMiLCBcCi0gICAgICAgICAgIjAuMzkzMjY2LCAwLjQzNjgwNywgMC42ODIwMSwgMC44OTg0OCwgMS4xODcwNywgMS43NjQwNSwgMi4xMjQ3OCIsIFwKLSAgICAgICAgICAiMC40MDc4NDgsIDAuNDUxMzcxLCAwLjY5NjU5LCAwLjkxMzc4MSwgMS4yMDE2MywgMS43Nzg1OCwgMi4xMzkzMyIsIFwKLSAgICAgICAgICAiMC40Mjk4NywgMC40NzM0MTQsIDAuNzE4NjIzLCAwLjkzNTg0NiwgMS4yMjQwMywgMS44MDA3OCwgMi4xNjEzMSIsIFwKLSAgICAgICAgICAiMC40NDc4OSwgMC40OTEzNCwgMC43MzY2MDUsIDAuOTUzNzYyLCAxLjI0MTYsIDEuODE3ODIsIDIuMTc5NDYiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTY5ODg2LCAwLjI1NTUwMSwgMC43NDk1NzgsIDEuMTgxNDgsIDEuNzg0NjEsIDIuOTY2MDMsIDMuNzAzODMiLCBcCi0gICAgICAgICAgIjAuMTY4OTUsIDAuMjUzNTc4LCAwLjc0OTgxLCAxLjE5MzExLCAxLjc4NDYsIDIuOTY2MTcsIDMuNzAzNzciLCBcCi0gICAgICAgICAgIjAuMTY4MjA2LCAwLjI1NTY4MiwgMC43NDg3NDQsIDEuMTkzOTUsIDEuNzg0NjEsIDIuOTM1MzksIDMuNzAzODkiLCBcCi0gICAgICAgICAgIjAuMTY5NDIyLCAwLjI1NTQ3MSwgMC43NDk0NTIsIDEuMTgzMDYsIDEuNzg0NjgsIDIuOTY2MTMsIDMuNzAzODkiLCBcCi0gICAgICAgICAgIjAuMTY3NjcsIDAuMjU1NDY5LCAwLjc0OTQwNywgMS4xOTMxOCwgMS43ODQ2NywgMi45NjYxLCAzLjcwMzkiLCBcCi0gICAgICAgICAgIjAuMTY4MDgyLCAwLjI1NTY4OCwgMC43NTA0MzEsIDEuMTkzMjUsIDEuNzg0NywgMi45NjU5NSwgMy43MDQwNCIsIFwKLSAgICAgICAgICAiMC4xNjg2MjksIDAuMjUzNDgxLCAwLjc0OTQ4NCwgMS4xOTMyNiwgMS43ODQ3MiwgMi45NzA4LCAzLjcwMzkyIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMxNzc4MywgMC4zNjc2LCAwLjY0NzI5NywgMC44OTY2MTIsIDEuMjI3NDYsIDEuODg4NDYsIDIuMzAxNjIiLCBcCi0gICAgICAgICAgIjAuMzI5MzE0LCAwLjM3OTAxNiwgMC42NTk5MDIsIDAuOTA4MTY2LCAxLjIzOTAxLCAxLjg5NTA2LCAyLjMxMzE2IiwgXAotICAgICAgICAgICIwLjM0MzkzOSwgMC4zOTM0OSwgMC42NzQ1MjcsIDAuOTIyNzg5LCAxLjI1MzYzLCAxLjkxMDczLCAyLjMyNzgxIiwgXAotICAgICAgICAgICIwLjM1ODcxMywgMC40MDg1MiwgMC42ODkyMzUsIDAuOTM3NTYxLCAxLjI2ODQxLCAxLjkyOTQzLCAyLjM0MjUxIiwgXAotICAgICAgICAgICIwLjM3MzA2MiwgMC40MjI3MDMsIDAuNzAzNjQ4LCAwLjk1MDY1MiwgMS4yNzg4NCwgMS45NDM2NSwgMi4zNTU5NCIsIFwKLSAgICAgICAgICAiMC4zOTQ5ODUsIDAuNDQ0Nzg1LCAwLjcyNTUxMiwgMC45NzM4MzIsIDEuMzA0NjgsIDEuOTYyNDMsIDIuMzc4NzYiLCBcCi0gICAgICAgICAgIjAuNDEyNTkxLCAwLjQ2MjI5LCAwLjc0MzE3OCwgMC45OTE0NDEsIDEuMzIyMjksIDEuOTc4ODYsIDIuMzk2NDQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTgzNTI5LCAwLjI3OTQ3OSwgMC44MzIwNTYsIDEuMzIzMjcsIDEuOTc2NzEsIDMuMjg2NjcsIDQuMTAzOTIiLCBcCi0gICAgICAgICAgIjAuMTgzNTA3LCAwLjI3ODYxNywgMC44MzMwODMsIDEuMzIzMjQsIDEuOTc2NjgsIDMuMjg4MDgsIDQuMTAzOTUiLCBcCi0gICAgICAgICAgIjAuMTgzNTA4LCAwLjI3ODgyMywgMC44MzMwNzUsIDEuMzIzMjUsIDEuOTc2NjgsIDMuMjgyMjIsIDQuMTAzODgiLCBcCi0gICAgICAgICAgIjAuMTgzNTI5LCAwLjI3OTQ3NywgMC44MzMyMTMsIDEuMzIzMjgsIDEuOTc2NywgMy4yODY1NiwgNC4xMDM5NCIsIFwKLSAgICAgICAgICAiMC4xODM1MjEsIDAuMjc5MDQ4LCAwLjgzMjk5MywgMS4zMjE5MSwgMS45Nzk3MSwgMy4yODYyOCwgNC4xMDU4NyIsIFwKLSAgICAgICAgICAiMC4xODM1MzQsIDAuMjc5NDcxLCAwLjgzMzE4MywgMS4zMjMyNiwgMS45NzY2OSwgMy4yODA5NiwgNC4xMDM5OSIsIFwKLSAgICAgICAgICAiMC4xODM1MDYsIDAuMjc4NjE2LCAwLjgzMzA3OSwgMS4zMjMyNCwgMS45NzY2OSwgMy4yODc1OCwgNC4xMDM5NCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogY2xlYXI7Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjQ0NjE3MiwgMC40OTYwNCwgMC43NzY2NjUsIDEuMDI0OCwgMS4zNTUzNCwgMi4wMTYzOCwgMi40MjkzNCIsIFwKLSAgICAgICAgICAiMC40NTc3LCAwLjUwNzQsIDAuNzg3NTg0LCAxLjAzNjMzLCAxLjM2NjkzLCAyLjAyMzAyLCAyLjQ0MDk3IiwgXAotICAgICAgICAgICIwLjQ3MjU2NiwgMC41MjI0MDgsIDAuODAyNTQ3LCAxLjA1MTIsIDEuMzgxOCwgMi4wMzg4OSwgMi40NTU4NCIsIFwKLSAgICAgICAgICAiMC40ODczOTQsIDAuNTM3MDQ3LCAwLjgxNzg2LCAxLjA2NTk5LCAxLjM5NjU1LCAyLjA1NzU0LCAyLjQ3MDYxIiwgXAotICAgICAgICAgICIwLjUwMTMxOSwgMC41NTA5MDEsIDAuODMxODcsIDEuMDgwMDEsIDEuNDEwNTYsIDIuMDcxNTYsIDIuNDg0NjEiLCBcCi0gICAgICAgICAgIjAuNTIzOTc5LCAwLjU3MzUzOSwgMC44NTQ0MDYsIDEuMTAyNjIsIDEuNDMzMTksIDIuMDk0MTUsIDIuNTA3MjUiLCBcCi0gICAgICAgICAgIjAuNTQxNTI3LCAwLjU5MTI2MywgMC44NzE5ODksIDEuMTIwMTIsIDEuNDUwNzIsIDIuMTA1MTcsIDIuNTI0NjYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTgzNDMxLCAwLjI3ODYyLCAwLjgzMzAyNSwgMS4zMjM4NiwgMS45NzkxMSwgMy4yODk5NSwgNC4xMDk2MSIsIFwKLSAgICAgICAgICAiMC4xODMzNDQsIDAuMjc5MTA2LCAwLjgzMzAwMywgMS4zMjM4MiwgMS45NzkwOCwgMy4yODk0MywgNC4xMDk0OSIsIFwKLSAgICAgICAgICAiMC4xODMzNzIsIDAuMjc5MjUxLCAwLjgzMzAxLCAxLjMyMzgsIDEuOTc5MDcsIDMuMjg5MzcsIDQuMTA5NDgiLCBcCi0gICAgICAgICAgIjAuMTgzNDYyLCAwLjI3OTA4NCwgMC44MzMwMiwgMS4zMjMyOCwgMS45Nzk0NCwgMy4yODk4LCA0LjEwOTc1IiwgXAotICAgICAgICAgICIwLjE4MzQ4LCAwLjI3ODg0OCwgMC44MzI5OTMsIDEuMzIzOCwgMS45NzkwNywgMy4yOTAzLCA0LjEwOTQ2IiwgXAotICAgICAgICAgICIwLjE4MzQzNSwgMC4yNzkxNTgsIDAuODMzMDI2LCAxLjMyMzg2LCAxLjk3OTEyLCAzLjI5LCA0LjEwOTYiLCBcCi0gICAgICAgICAgIjAuMTgzNDgsIDAuMjc5MTkzLCAwLjgzMzAxNiwgMS4zMjM4NiwgMS45Nzk1LCAzLjI4OTg5LCA0LjEwOTc0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiBwcmVzZXQ7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI4NjI4MSwgMC4zMjk4LCAwLjU3NTE1LCAwLjc5MTE5OCwgMS4wNzk2MywgMS42NTczMywgMi4wMTk1NSIsIFwKLSAgICAgICAgICAiMC4yOTgwMzksIDAuMzQxNTIxLCAwLjU4Njk3NywgMC44MDQyNTMsIDEuMDkyNCwgMS42Njk1NCwgMi4wMjk4MSIsIFwKLSAgICAgICAgICAiMC4zMTIzMjQsIDAuMzU1ODUxLCAwLjYwMTI4MywgMC44MTc1MTcsIDEuMTA2NjUsIDEuNjgzODIsIDIuMDQ0OTkiLCBcCi0gICAgICAgICAgIjAuMzI1Njg4LCAwLjM2OTI3NywgMC42MTU4MjIsIDAuODMxMjU4LCAxLjEyMDAyLCAxLjY5Njk2LCAyLjA1ODgiLCBcCi0gICAgICAgICAgIjAuMzM4NTg4LCAwLjM4MjExMiwgMC42Mjc1NDksIDAuODQzNjMzLCAxLjEzMjQ0LCAxLjcxMDYsIDIuMDcxODMiLCBcCi0gICAgICAgICAgIjAuMzYxNzM2LCAwLjQwNTIxNiwgMC42NTA1NzcsIDAuODY3NzUsIDEuMTU1MTgsIDEuNzMzNjEsIDIuMDkzNTciLCBcCi0gICAgICAgICAgIjAuMzgxODg1LCAwLjQyNTM2MSwgMC42NzA3MzYsIDAuODg2NzA4LCAxLjE3NTMyLCAxLjc1MzgyLCAyLjExNTIyIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE2ODA1NSwgMC4yNTQxMjQsIDAuNzUzMTM2LCAxLjE5NDYsIDEuNzg5MTcsIDIuOTY2MjQsIDMuNzA5NjMiLCBcCi0gICAgICAgICAgIjAuMTY4NTU5LCAwLjI1NDEzLCAwLjc1MDc0MSwgMS4xOTgxOSwgMS43ODUzMSwgMi45NjYzNiwgMy43MDk0MiIsIFwKLSAgICAgICAgICAiMC4xNjkzMTcsIDAuMjU0MTI2LCAwLjc1MDc1MSwgMS4xOTgyNSwgMS43ODU5NCwgMi45NjYzNSwgMy43MDg2NSIsIFwKLSAgICAgICAgICAiMC4xNjY0NTYsIDAuMjU0MDkyLCAwLjc1MzY3NCwgMS4xOTgzOSwgMS43ODkzLCAyLjk2NjEyLCAzLjcwODYxIiwgXAotICAgICAgICAgICIwLjE2Nzg3OSwgMC4yNTQxMzYsIDAuNzUwNzMxLCAxLjE5ODM5LCAxLjc4OTI0LCAyLjk2NjIxLCAzLjcwNDE0IiwgXAotICAgICAgICAgICIwLjE2NjQ4NiwgMC4yNTQwOTUsIDAuNzUyMDA1LCAxLjE5ODM5LCAxLjc4OTMsIDIuOTY5ODUsIDMuNzAyNjEiLCBcCi0gICAgICAgICAgIjAuMTY4MDkzLCAwLjI1NDEzOCwgMC43NTMyOTUsIDEuMTk4MzYsIDEuNzg5MTYsIDIuOTY2MiwgMy43MDgxMyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC40MTI0NjEsIDAuNDYyMjczLCAwLjc0MzA1OSwgMC45ODg5MjQsIDEuMzIxOTMsIDEuOTgzMDgsIDIuMzk2MDUiLCBcCi0gICAgICAgICAgIjAuNDI0NTAzLCAwLjQ3NDIxNywgMC43NTUxNDUsIDEuMDAzMzcsIDEuMzM0MDIsIDEuOTk1MSwgMi40MDgxOSIsIFwKLSAgICAgICAgICAiMC40MzkzMDQsIDAuNDg5MDA0LCAwLjc2OTk2NCwgMS4wMTgxOSwgMS4zNDg4MywgMi4wMDk5LCAyLjQyMjk5IiwgXAotICAgICAgICAgICIwLjQ1MzQwMiwgMC41MDMyODQsIDAuNzg0MDUyLCAxLjAzMjI4LCAxLjM2MDc3LCAyLjAyNDAzLCAyLjQzNzEiLCBcCi0gICAgICAgICAgIjAuNDY3MjY1LCAwLjUxNzA4NCwgMC43OTc4NjcsIDEuMDQ2MSwgMS4zNzY3MSwgMi4wMzc4MiwgMi40NTA4IiwgXAotICAgICAgICAgICIwLjQ4OTIxMSwgMC41Mzg3ODMsIDAuODE5NzgyLCAxLjA2ODA5LCAxLjM5ODcyLCAyLjA1OTc2LCAyLjQ3Mjg5IiwgXAotICAgICAgICAgICIwLjUwODQzOCwgMC41NTc5OTEsIDAuODM5MDkxLCAxLjA4NzMzLCAxLjQxNTA2LCAyLjA3OTA1LCAyLjQ5MjQxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE4MzQ4MSwgMC4yNzkyODksIDAuODMyNjI2LCAxLjMyNDY4LCAxLjk3ODMsIDMuMjg2NzcsIDQuMTA2MTkiLCBcCi0gICAgICAgICAgIjAuMTgzNDQ3LCAwLjI3ODg0NywgMC44MzMwMTUsIDEuMzIzODEsIDEuOTc5MDUsIDMuMjg5NywgNC4xMDk1NSIsIFwKLSAgICAgICAgICAiMC4xODMzNzUsIDAuMjc4NzU5LCAwLjgzMzAxNiwgMS4zMjM4NCwgMS45NzkxLCAzLjI4OTg4LCA0LjEwOTcyIiwgXAotICAgICAgICAgICIwLjE4MzIwMiwgMC4yNzg4NTMsIDAuODMzMDAzLCAxLjMyMzgzLCAxLjk3OTExLCAzLjI4OTQ3LCA0LjEwOTYzIiwgXAotICAgICAgICAgICIwLjE4MzM2NiwgMC4yNzkyODksIDAuODMzMDE2LCAxLjMyMzg1LCAxLjk3OTExLCAzLjI4OTkyLCA0LjEwOTczIiwgXAotICAgICAgICAgICIwLjE4MzQwMiwgMC4yNzg4NTIsIDAuODMzMDI3LCAxLjMyMzg1LCAxLjk3OTc3LCAzLjI5MDEsIDQuMTA5NDciLCBcCi0gICAgICAgICAgIjAuMTgzMjM2LCAwLjI3ODgzMiwgMC44MzI5OTksIDEuMzIzODQsIDEuOTc5MDcsIDMuMjkwNDYsIDQuMTA5MzMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDS04iOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzc0OSwgMC4wMDM3NTQsIDAuMDAzNzYyLCAwLjAwMzc2NCwgMC4wMDM3NjUsIDAuMDAzNzY1LCAwLjAwMzc2NSIsIFwKLSAgICAgICAgICAiMC4wMDM3NDQsIDAuMDAzNzQ5LCAwLjAwMzc1NywgMC4wMDM3NTksIDAuMDAzNzU5LCAwLjAwMzc2LCAwLjAwMzc2MSIsIFwKLSAgICAgICAgICAiMC4wMDM3MzksIDAuMDAzNzQ0LCAwLjAwMzc1MiwgMC4wMDM3NTQsIDAuMDAzNzU1LCAwLjAwMzc1NSwgMC4wMDM3NTUiLCBcCi0gICAgICAgICAgIjAuMDAzNzM2LCAwLjAwMzc0MSwgMC4wMDM3NDksIDAuMDAzNzUxLCAwLjAwMzc1MiwgMC4wMDM3NTIsIDAuMDAzNzUyIiwgXAotICAgICAgICAgICIwLjAwMzczNSwgMC4wMDM3NDEsIDAuMDAzNzQ5LCAwLjAwMzc1LCAwLjAwMzc1MSwgMC4wMDM3NTIsIDAuMDAzNzUyIiwgXAotICAgICAgICAgICIwLjAwMzczNiwgMC4wMDM3NDEsIDAuMDAzNzQ5LCAwLjAwMzc1MSwgMC4wMDM3NTIsIDAuMDAzNzUzLCAwLjAwMzc1MyIsIFwKLSAgICAgICAgICAiMC4wMDM3MzcsIDAuMDAzNzQyLCAwLjAwMzc1LCAwLjAwMzc1MiwgMC4wMDM3NTMsIDAuMDAzNzUzLCAwLjAwMzc1MyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzM5MiwgMC4wMDMzOTgsIDAuMDAzNDA2LCAwLjAwMzQwOCwgMC4wMDM0MDgsIDAuMDAzNDA5LCAwLjAwMzQwOSIsIFwKLSAgICAgICAgICAiMC4wMDMzODYsIDAuMDAzMzkyLCAwLjAwMzQsIDAuMDAzNDAyLCAwLjAwMzQwMiwgMC4wMDM0MDMsIDAuMDAzNDAzIiwgXAotICAgICAgICAgICIwLjAwMzM4LCAwLjAwMzM4NiwgMC4wMDMzOTUsIDAuMDAzMzk1LCAwLjAwMzM5NiwgMC4wMDMzOTcsIDAuMDAzMzk4IiwgXAotICAgICAgICAgICIwLjAwMzM3NiwgMC4wMDMzODEsIDAuMDAzMzg5LCAwLjAwMzM5MiwgMC4wMDMzOTIsIDAuMDAzMzkzLCAwLjAwMzM5NCIsIFwKLSAgICAgICAgICAiMC4wMDMzNzIsIDAuMDAzMzc4LCAwLjAwMzM4NiwgMC4wMDMzODcsIDAuMDAzMzg4LCAwLjAwMzM4OSwgMC4wMDMzODkiLCBcCi0gICAgICAgICAgIjAuMDAzMzY5LCAwLjAwMzM3NCwgMC4wMDMzODIsIDAuMDAzMzg0LCAwLjAwMzM4NCwgMC4wMDMzODUsIDAuMDAzMzg1IiwgXAotICAgICAgICAgICIwLjAwMzM2NSwgMC4wMDMzNzEsIDAuMDAzMzc5LCAwLjAwMzM4MSwgMC4wMDMzODEsIDAuMDAzMzgyLCAwLjAwMzM4MyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQ0MjcsIDAuMDA0NDMyLCAwLjAwNDQzNiwgMC4wMDQ0MzUsIDAuMDA0NDMyLCAwLjAwNDQzLCAwLjAwNDQzIiwgXAotICAgICAgICAgICIwLjAwNDQyMywgMC4wMDQ0MjgsIDAuMDA0NDMxLCAwLjAwNDQyOSwgMC4wMDQ0MjksIDAuMDA0NDI1LCAwLjAwNDQyNCIsIFwKLSAgICAgICAgICAiMC4wMDQ0MTksIDAuMDA0NDI0LCAwLjAwNDQyNywgMC4wMDQ0MjUsIDAuMDA0NDI0LCAwLjAwNDQyMiwgMC4wMDQ0MiIsIFwKLSAgICAgICAgICAiMC4wMDQ0MTUsIDAuMDA0NDIxLCAwLjAwNDQyNCwgMC4wMDQ0MjQsIDAuMDA0NDIsIDAuMDA0NDE5LCAwLjAwNDQxOSIsIFwKLSAgICAgICAgICAiMC4wMDQ0MTIsIDAuMDA0NDE4LCAwLjAwNDQyMSwgMC4wMDQ0MiwgMC4wMDQ0MTcsIDAuMDA0NDE1LCAwLjAwNDQxNCIsIFwKLSAgICAgICAgICAiMC4wMDQ0MTEsIDAuMDA0NDE3LCAwLjAwNDQyLCAwLjAwNDQxOCwgMC4wMDQ0MTYsIDAuMDA0NDE0LCAwLjAwNDQxMyIsIFwKLSAgICAgICAgICAiMC4wMDQ0MDksIDAuMDA0NDE1LCAwLjAwNDQxOCwgMC4wMDQ0MTYsIDAuMDA0NDE0LCAwLjAwNDQxMiwgMC4wMDQ0MTEiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfcG93ZXIoc2NhbGFyKSB7Ci0gICAgICAgIHZhbHVlcygiMCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQwODcsIDAuMDA0MDkyLCAwLjAwNDA5OCwgMC4wMDQxLCAwLjAwNDEsIDAuMDA0MSwgMC4wMDQxMDEiLCBcCi0gICAgICAgICAgIjAuMDA0MDgsIDAuMDA0MDg2LCAwLjAwNDA5MiwgMC4wMDQwOTMsIDAuMDA0MDk0LCAwLjAwNDA5NCwgMC4wMDQwOTYiLCBcCi0gICAgICAgICAgIjAuMDA0MDc2LCAwLjAwNDA4MSwgMC4wMDQwODgsIDAuMDA0MDg5LCAwLjAwNDA5LCAwLjAwNDA5LCAwLjAwNDA4OSIsIFwKLSAgICAgICAgICAiMC4wMDQwNzMsIDAuMDA0MDc4LCAwLjAwNDA4NCwgMC4wMDQwODYsIDAuMDA0MDg2LCAwLjAwNDA4NywgMC4wMDQwODciLCBcCi0gICAgICAgICAgIjAuMDA0MDcsIDAuMDA0MDc2LCAwLjAwNDA4MywgMC4wMDQwODMsIDAuMDA0MDg0LCAwLjAwNDA4NSwgMC4wMDQwODUiLCBcCi0gICAgICAgICAgIjAuMDA0MDY4LCAwLjAwNDA3MiwgMC4wMDQwNzksIDAuMDA0MDgxLCAwLjAwNDA4MSwgMC4wMDQwODIsIDAuMDA0MDgzIiwgXAotICAgICAgICAgICIwLjAwNDA2NCwgMC4wMDQwNjksIDAuMDA0MDc2LCAwLjAwNDA3NywgMC4wMDQwNzgsIDAuMDA0MDc4LCAwLjAwNDA3OSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzI2LCAwLjAwMzI2NiwgMC4wMDMyNzUsIDAuMDAzMjc2LCAwLjAwMzI3NywgMC4wMDMyNzcsIDAuMDAzMjc4IiwgXAotICAgICAgICAgICIwLjAwMzI1NCwgMC4wMDMyNiwgMC4wMDMyNjgsIDAuMDAzMjcsIDAuMDAzMjcsIDAuMDAzMjcxLCAwLjAwMzI3MSIsIFwKLSAgICAgICAgICAiMC4wMDMyNDksIDAuMDAzMjU1LCAwLjAwMzI2MywgMC4wMDMyNjUsIDAuMDAzMjY2LCAwLjAwMzI2NiwgMC4wMDMyNjciLCBcCi0gICAgICAgICAgIjAuMDAzMjQ1LCAwLjAwMzI1MSwgMC4wMDMyNTksIDAuMDAzMjYxLCAwLjAwMzI2MiwgMC4wMDMyNjMsIDAuMDAzMjYzIiwgXAotICAgICAgICAgICIwLjAwMzI0MywgMC4wMDMyNDksIDAuMDAzMjU3LCAwLjAwMzI1OSwgMC4wMDMyNiwgMC4wMDMyNjEsIDAuMDAzMjYxIiwgXAotICAgICAgICAgICIwLjAwMzI0LCAwLjAwMzI0NiwgMC4wMDMyNTQsIDAuMDAzMjU3LCAwLjAwMzI1NywgMC4wMDMyNTgsIDAuMDAzMjU4IiwgXAotICAgICAgICAgICIwLjAwMzIzOCwgMC4wMDMyNDMsIDAuMDAzMjUyLCAwLjAwMzI1MywgMC4wMDMyNTQsIDAuMDAzMjU2LCAwLjAwMzI1NiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUU4pICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4xMzMyNTsKLSAgICBmdW5jdGlvbiA6ICJRQklOVCI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0tOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5vbl91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogZmFsbGluZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMzc4NSwgMC4zODA5MzUsIDAuNjI1NDIyLCAwLjg0MTA5MywgMS4xMjg5MSwgMS43MDQxMywgMi4wNjM3NSIsIFwKLSAgICAgICAgICAiMC4zNDkzNjQsIDAuMzkyNDQxLCAwLjYzNjkxNywgMC44NTI2NDEsIDEuMTQwMzMsIDEuNzE1NjgsIDIuMDc1MjciLCBcCi0gICAgICAgICAgIjAuMzYzOTg4LCAwLjQwNzA0OCwgMC42NTE1NDIsIDAuODY3MjY1LCAxLjE1NDk1LCAxLjczMDI4LCAyLjA4OTkiLCBcCi0gICAgICAgICAgIjAuMzc4NzgxLCAwLjQyMTg2NSwgMC42NjYzMzgsIDAuODgyMDQ1LCAxLjE2OTczLCAxLjc0NTA1LCAyLjEwNDcxIiwgXAotICAgICAgICAgICIwLjM5MzEyNiwgMC40MzYxOTQsIDAuNjgwNjI2LCAwLjg5NjI0LCAxLjE4NDIzLCAxLjc1OTQxLCAyLjExOTIzIiwgXAotICAgICAgICAgICIwLjQxNTA0OSwgMC40NTgxMzIsIDAuNzAyNTk5LCAwLjkxODMxMywgMS4yMDYsIDEuNzgxMzMsIDIuMTQwOTgiLCBcCi0gICAgICAgICAgIjAuNDMyNjQzLCAwLjQ3NTcyMSwgMC43MjAxOTcsIDAuOTM1OTIsIDEuMjIzNjEsIDEuNzk4OTQsIDIuMTU4NTUiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTU5Mjk4LCAwLjI0NjYxOSwgMC43NDI0NDUsIDEuMTgzNjEsIDEuNzY5NTEsIDIuOTQxMDIsIDMuNjczMzkiLCBcCi0gICAgICAgICAgIjAuMTU5MzEsIDAuMjQ1NzIzLCAwLjc0NDMzNCwgMS4xODM2MSwgMS43Njk1MywgMi45MzU4NiwgMy42NzMyNiIsIFwKLSAgICAgICAgICAiMC4xNTkzMDYsIDAuMjQ1ODMxLCAwLjc0NDMyNywgMS4xODM2MSwgMS43Njk1MywgMi45NDA3NiwgMy42NzMyNSIsIFwKLSAgICAgICAgICAiMC4xNTkyOTgsIDAuMjQ2NjE2LCAwLjc0NDM4NSwgMS4xODM1OCwgMS43Njk1MiwgMi45NDA2NiwgMy42NzMzOSIsIFwKLSAgICAgICAgICAiMC4xNTkyOTksIDAuMjQ2MTA5LCAwLjc0NDI2OCwgMS4xODMwMiwgMS43NjQ0NiwgMi45NDEsIDMuNjc0OCIsIFwKLSAgICAgICAgICAiMC4xNTkyOTksIDAuMjQ2NjEzLCAwLjc0NDM1MywgMS4xODM1OSwgMS43Njk1MSwgMi45NDAzMSwgMy42NzM0MSIsIFwKLSAgICAgICAgICAiMC4xNTkzMSwgMC4yNDU3MjQsIDAuNzQ0MzMxLCAxLjE4MzYxLCAxLjc2OTUzLCAyLjkzOTA1LCAzLjY3MzI2Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjM4OTQ1OSwgMC40Mzg3OCwgMC43MTg1MDcsIDAuOTY1MzcyLCAxLjI5NDU0LCAxLjk1Mjg4LCAyLjM2NDMiLCBcCi0gICAgICAgICAgIjAuNDAxMTYsIDAuNDUwNDc0LCAwLjczMDIwNCwgMC45NzcxMzQsIDEuMzA2MjMsIDEuOTY0NDUsIDIuMzc2MDEiLCBcCi0gICAgICAgICAgIjAuNDE1ODIsIDAuNDY1MTQ4LCAwLjc0NDg3LCAwLjk5MTcxMywgMS4zMjA5MiwgMS45NzkxNCwgMi4zOTA2NSIsIFwKLSAgICAgICAgICAiMC40MzA1MjMsIDAuNDc5ODQ0LCAwLjc1OTU3MywgMS4wMDY0NCwgMS4zMzU2MSwgMS45OTM5MywgMi40MDUzNyIsIFwKLSAgICAgICAgICAiMC40NDUxMzIsIDAuNDk0NDUzLCAwLjc3NDE4MSwgMS4wMjExMSwgMS4zNTAyMSwgMi4wMDg1MywgMi40MTk5NyIsIFwKLSAgICAgICAgICAiMC40NjcxMjgsIDAuNTE2NDUsIDAuNzk2MzIzLCAxLjA0MzI0LCAxLjM3MjQzLCAyLjAzMDcyLCAyLjQ0MjE1IiwgXAotICAgICAgICAgICIwLjQ4NTE0OCwgMC41MzQ0NywgMC44MTQyLCAxLjA2MTEyLCAxLjM5MDIzLCAyLjA0ODQ3LCAyLjQ2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE3Njg3NCwgMC4yNzQ0MSwgMC44MjkzNzUsIDEuMzE5MjYsIDEuOTczODIsIDMuMjgxMTUsIDQuMDk4MjgiLCBcCi0gICAgICAgICAgIjAuMTc2OTgsIDAuMjc0MjYyLCAwLjgyOTM4MiwgMS4zMjAzLCAxLjk3MzgsIDMuMjgwODEsIDQuMDk4MzMiLCBcCi0gICAgICAgICAgIjAuMTc2OTE5LCAwLjI3NDQzMSwgMC44MjkzNTIsIDEuMzIwMDQsIDEuOTczODQsIDMuMjc5MywgNC4wOTgyMyIsIFwKLSAgICAgICAgICAiMC4xNzcwMTUsIDAuMjc0NDA1LCAwLjgyOTMxNSwgMS4zMTkyMywgMS45NzM3LCAzLjI4MTA4LCA0LjA5ODA1IiwgXAotICAgICAgICAgICIwLjE3Njg3NywgMC4yNzQ0MDYsIDAuODI5MzY3LCAxLjMyMDI4LCAxLjk3MzcsIDMuMjgxMDgsIDQuMDk4MjciLCBcCi0gICAgICAgICAgIjAuMTc2OTE4LCAwLjI3NDM4NywgMC44MjkzOTYsIDEuMzIwMzEsIDEuOTczODUsIDMuMjgxMTIsIDQuMDk4MjEiLCBcCi0gICAgICAgICAgIjAuMTc2OTYyLCAwLjI3NDI1NywgMC44MjkzNjcsIDEuMzIwMjYsIDEuOTczNjgsIDMuMjgwMSwgNC4wOTgyNyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcHJlc2V0OwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC40NjY0MDQsIDAuNTA5NTE4LCAwLjc1MzkzNywgMC45Njk3ODYsIDEuMjU3NDUsIDEuODMyODIsIDIuMTkyNDYiLCBcCi0gICAgICAgICAgIjAuNDc3OTY1LCAwLjUyMTA1MywgMC43NjU0ODQsIDAuOTgxMjMyLCAxLjI2ODkyLCAxLjg0NDI1LCAyLjIwMzkyIiwgXAotICAgICAgICAgICIwLjQ5MjgzMywgMC41MzU5NCwgMC43ODAzNTIsIDAuOTk2MSwgMS4yODM3OCwgMS44NTkxLCAyLjIxODc5IiwgXAotICAgICAgICAgICIwLjUwNzY1NywgMC41NTA3MjMsIDAuNzk1MTgzLCAxLjAxMDkyLCAxLjI5ODU4LCAxLjg3Mzk3LCAyLjIzMzU4IiwgXAotICAgICAgICAgICIwLjUyMTU4OSwgMC41NjQ2NTUsIDAuODA5MjI0LCAxLjAyNDk2LCAxLjMxMjYyLCAxLjg4ODAyLCAyLjI0NzYyIiwgXAotICAgICAgICAgICIwLjU0NDI5MiwgMC41ODczNywgMC44MzE3NjgsIDEuMDQ3NTYsIDEuMzM1MjMsIDEuOTEwNjQsIDIuMjcwMjIiLCBcCi0gICAgICAgICAgIjAuNTYxODI1LCAwLjYwNDkwNSwgMC44NDkzNTEsIDEuMDY1MDgsIDEuMzUyNzcsIDEuOTI4MzMsIDIuMjg3OCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNTkzMTIsIDAuMjQ1ODkyLCAwLjc0NDMyMSwgMS4xODM4MSwgMS43Njk2NywgMi45NDE1NiwgMy42NzQyNSIsIFwKLSAgICAgICAgICAiMC4xNTkyODEsIDAuMjQ2NTQyLCAwLjc0NDI0OSwgMS4xODM3MywgMS43Njk1NywgMi45NDA4NiwgMy42NzM5MiIsIFwKLSAgICAgICAgICAiMC4xNTkwMTksIDAuMjQ2NjQ1LCAwLjc0NDI3NywgMS4xODM3MywgMS43Njk1NiwgMi45NDEwNywgMy42NzM4OSIsIFwKLSAgICAgICAgICAiMC4xNTkzNDcsIDAuMjQ2NTUzLCAwLjc0NDM3NiwgMS4xODM3NCwgMS43Njk3LCAyLjk0MTQ4LCAzLjY3NDE3IiwgXAotICAgICAgICAgICIwLjE1OTMwNiwgMC4yNDYxMzksIDAuNzQ0MzkzLCAxLjE4Mzc5LCAxLjc2OTYzLCAyLjk0MTcxLCAzLjY3NDExIiwgXAotICAgICAgICAgICIwLjE1OTMwOCwgMC4yNDY1MDQsIDAuNzQ0Mjk2LCAxLjE4Mzc5LCAxLjc2OTYzLCAyLjk0MTc2LCAzLjY3NDA4IiwgXAotICAgICAgICAgICIwLjE1OTMyOCwgMC4yNDY2MTgsIDAuNzQ0MzU1LCAxLjE4Mzc0LCAxLjc2OTcxLCAyLjk0MTI4LCAzLjY3NDM2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiBjbGVhcjsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuNDMyNzU4LCAwLjQ3NTg1MywgMC43MjAyOTEsIDAuOTM2MTU2LCAxLjIyMzcxLCAxLjc5OTA4LCAyLjE1ODcyIiwgXAotICAgICAgICAgICIwLjQ0NDgyLCAwLjQ4Nzg5OSwgMC43MzIzNTEsIDAuOTQ4MDg2LCAxLjIzNTc1LCAxLjgxMTE1LCAyLjE3MDc1IiwgXAotICAgICAgICAgICIwLjQ1OTYzOCwgMC41MDI3MTgsIDAuNzQ3MTczLCAwLjk2MjkwOCwgMS4yNTA1NywgMS44MjU5NywgMi4xODU1NyIsIFwKLSAgICAgICAgICAiMC40NzM2NDQsIDAuNTE2NzYsIDAuNzYxMTg4LCAwLjk3NjkyNSwgMS4yNjQ1OSwgMS44Mzk5NSwgMi4xOTk1NCIsIFwKLSAgICAgICAgICAiMC40ODc1NjUsIDAuNTMwNjU4LCAwLjc3NTA5NywgMC45OTA4NDUsIDEuMjc4NTEsIDEuODUzODksIDIuMjEzNTIiLCBcCi0gICAgICAgICAgIjAuNTA5NTI3LCAwLjU1MjYwNSwgMC43OTcwMDUsIDEuMDEyOCwgMS4zMDA0NywgMS44NzU4NywgMi4yMzU0NiIsIFwKLSAgICAgICAgICAiMC41Mjg3MDQsIDAuNTcxNzYsIDAuODE2MjQzLCAxLjAzMjAxLCAxLjMxOTY2LCAxLjg5NTAxLCAyLjI1NDU1Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE1OTMzOSwgMC4yNDY2NzQsIDAuNzQ0MzUzLCAxLjE4MzU5LCAxLjc2OTcxLCAyLjk0MTY0LCAzLjY3NDMzIiwgXAotICAgICAgICAgICIwLjE1OTM2MSwgMC4yNDYyMjMsIDAuNzQ0Mzk2LCAxLjE4MzgsIDEuNzY5NjUsIDIuOTQxNzMsIDMuNjc0MTUiLCBcCi0gICAgICAgICAgIjAuMTU5MDEzLCAwLjI0NjEyOSwgMC43NDQzOSwgMS4xODM4LCAxLjc2OTY0LCAyLjk0MTcsIDMuNjc0MTIiLCBcCi0gICAgICAgICAgIjAuMTU4OTA5LCAwLjI0NjEzOSwgMC43NDQzMzYsIDEuMTgzNzUsIDEuNzY5MjcsIDIuOTQxMjgsIDMuNjczNTMiLCBcCi0gICAgICAgICAgIjAuMTU5MzIxLCAwLjI0NjY3MywgMC43NDQzNDksIDEuMTgzNzksIDEuNzY5NjUsIDIuOTQxNTUsIDMuNjc0MTkiLCBcCi0gICAgICAgICAgIjAuMTU5MzIxLCAwLjI0NjQsIDAuNzQ0MjkyLCAxLjE4Mzc4LCAxLjc2OTYxLCAyLjk0MTc0LCAzLjY3NDA1IiwgXAotICAgICAgICAgICIwLjE1OTA3MSwgMC4yNDYxMzksIDAuNzQ0MzE0LCAxLjE4MzksIDEuNzY5MjYsIDIuOTQxMjQsIDMuNjczMTIiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzI0NDE1LCAwLjM3Mzc1OSwgMC42NTM0OTEsIDAuOTAwMzI2LCAxLjIyOTQ2LCAxLjg4NzgsIDIuMjk5NCIsIFwKLSAgICAgICAgICAiMC4zMzYxMDIsIDAuMzg1NDQ2LCAwLjY2NTE5OSwgMC45MTIxMzQsIDEuMjQxMTcsIDEuODk5NTIsIDIuMzEwOTIiLCBcCi0gICAgICAgICAgIjAuMzUwMzk4LCAwLjM5OTgxLCAwLjY3OTU1MiwgMC45MjYzODMsIDEuMjU1NTYsIDEuOTEzOSwgMi4zMjUzOCIsIFwKLSAgICAgICAgICAiMC4zNjM4MzUsIDAuNDEzMTY4LCAwLjY5Mjk3OSwgMC45Mzk4MDMsIDEuMjY4OTUsIDEuOTI3MjUsIDIuMzM4NzQiLCBcCi0gICAgICAgICAgIjAuMzc2NjY0LCAwLjQyNjAwNSwgMC43MDU4MTUsIDAuOTUyNjQ1LCAxLjI4MTgyLCAxLjk0MDE2LCAyLjM1MTY0IiwgXAotICAgICAgICAgICIwLjM5OTk5MywgMC40NDkzMzQsIDAuNzI5MDg5LCAwLjk3NjAxNCwgMS4zMDUwNywgMS45NjM0OCwgMi4zNzQ4NCIsIFwKLSAgICAgICAgICAiMC40MjAxNCwgMC40Njk0ODIsIDAuNzQ5MjM5LCAwLjk5NjA2NiwgMS4zMjUyMiwgMS45ODM2NCwgMi4zOTUxNSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNzY4ODQsIDAuMjc0Mzc0LCAwLjgyOTkwNSwgMS4zMjAxMiwgMS45NzM2NiwgMy4yODE0LCA0LjA5NjkxIiwgXAotICAgICAgICAgICIwLjE3Njk2NywgMC4yNzQzNzYsIDAuODI5OTI1LCAxLjMyMDA0LCAxLjk3MzcyLCAzLjI4MTU3LCA0LjA5Njg5IiwgXAotICAgICAgICAgICIwLjE3Njk5OSwgMC4yNzQzOCwgMC44Mjk5MTksIDEuMzIwMDQsIDEuOTczODMsIDMuMjgxNTEsIDQuMDk4ODUiLCBcCi0gICAgICAgICAgIjAuMTc2ODg3LCAwLjI3NDM2OCwgMC44Mjk5MzEsIDEuMzIwMDksIDEuOTczNjcsIDMuMjgxNTgsIDQuMDk4ODYiLCBcCi0gICAgICAgICAgIjAuMTc2OTY2LCAwLjI3NDM4LCAwLjgyOTkxNSwgMS4zMjAwNCwgMS45NzM4MSwgMy4yODE0NiwgNC4wOTg3MSIsIFwKLSAgICAgICAgICAiMC4xNzY4ODYsIDAuMjc0MzY5LCAwLjgyOTkxMywgMS4zMiwgMS45NzM2OSwgMy4yODE0NywgNC4wOTU5OCIsIFwKLSAgICAgICAgICAiMC4xNzY5MzQsIDAuMjc0MzgxLCAwLjgyOTkxOSwgMS4zMjAwNCwgMS45NzM2NSwgMy4yODE0OCwgNC4wOTcxNyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzMzkyLCAwLjAwMzM5OCwgMC4wMDM0MDYsIDAuMDAzNDA4LCAwLjAwMzQwOCwgMC4wMDM0MDksIDAuMDAzNDA5IiwgXAotICAgICAgICAgICIwLjAwMzM4NiwgMC4wMDMzOTIsIDAuMDAzNCwgMC4wMDM0MDIsIDAuMDAzNDAyLCAwLjAwMzQwMywgMC4wMDM0MDMiLCBcCi0gICAgICAgICAgIjAuMDAzMzgsIDAuMDAzMzg2LCAwLjAwMzM5NSwgMC4wMDMzOTUsIDAuMDAzMzk2LCAwLjAwMzM5NywgMC4wMDMzOTgiLCBcCi0gICAgICAgICAgIjAuMDAzMzc2LCAwLjAwMzM4MSwgMC4wMDMzODksIDAuMDAzMzkyLCAwLjAwMzM5MiwgMC4wMDMzOTMsIDAuMDAzMzk0IiwgXAotICAgICAgICAgICIwLjAwMzM3MiwgMC4wMDMzNzgsIDAuMDAzMzg2LCAwLjAwMzM4NywgMC4wMDMzODgsIDAuMDAzMzg5LCAwLjAwMzM4OSIsIFwKLSAgICAgICAgICAiMC4wMDMzNjksIDAuMDAzMzc0LCAwLjAwMzM4MiwgMC4wMDMzODQsIDAuMDAzMzg0LCAwLjAwMzM4NSwgMC4wMDMzODUiLCBcCi0gICAgICAgICAgIjAuMDAzMzY1LCAwLjAwMzM3MSwgMC4wMDMzNzksIDAuMDAzMzgxLCAwLjAwMzM4MSwgMC4wMDMzODIsIDAuMDAzMzgzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzNzQ5LCAwLjAwMzc1NCwgMC4wMDM3NjIsIDAuMDAzNzY0LCAwLjAwMzc2NSwgMC4wMDM3NjUsIDAuMDAzNzY1IiwgXAotICAgICAgICAgICIwLjAwMzc0NCwgMC4wMDM3NDksIDAuMDAzNzU3LCAwLjAwMzc1OSwgMC4wMDM3NTksIDAuMDAzNzYsIDAuMDAzNzYxIiwgXAotICAgICAgICAgICIwLjAwMzczOSwgMC4wMDM3NDQsIDAuMDAzNzUyLCAwLjAwMzc1NCwgMC4wMDM3NTUsIDAuMDAzNzU1LCAwLjAwMzc1NSIsIFwKLSAgICAgICAgICAiMC4wMDM3MzYsIDAuMDAzNzQxLCAwLjAwMzc0OSwgMC4wMDM3NTEsIDAuMDAzNzUyLCAwLjAwMzc1MiwgMC4wMDM3NTIiLCBcCi0gICAgICAgICAgIjAuMDAzNzM1LCAwLjAwMzc0MSwgMC4wMDM3NDksIDAuMDAzNzUsIDAuMDAzNzUxLCAwLjAwMzc1MiwgMC4wMDM3NTIiLCBcCi0gICAgICAgICAgIjAuMDAzNzM2LCAwLjAwMzc0MSwgMC4wMDM3NDksIDAuMDAzNzUxLCAwLjAwMzc1MiwgMC4wMDM3NTMsIDAuMDAzNzUzIiwgXAotICAgICAgICAgICIwLjAwMzczNywgMC4wMDM3NDIsIDAuMDAzNzUsIDAuMDAzNzUyLCAwLjAwMzc1MywgMC4wMDM3NTMsIDAuMDAzNzUzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUk4iOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDQyNywgMC4wMDQ0MzIsIDAuMDA0NDM2LCAwLjAwNDQzNSwgMC4wMDQ0MzIsIDAuMDA0NDMsIDAuMDA0NDMiLCBcCi0gICAgICAgICAgIjAuMDA0NDIzLCAwLjAwNDQyOCwgMC4wMDQ0MzEsIDAuMDA0NDI5LCAwLjAwNDQyOSwgMC4wMDQ0MjUsIDAuMDA0NDI0IiwgXAotICAgICAgICAgICIwLjAwNDQxOSwgMC4wMDQ0MjQsIDAuMDA0NDI3LCAwLjAwNDQyNSwgMC4wMDQ0MjQsIDAuMDA0NDIyLCAwLjAwNDQyIiwgXAotICAgICAgICAgICIwLjAwNDQxNSwgMC4wMDQ0MjEsIDAuMDA0NDI0LCAwLjAwNDQyNCwgMC4wMDQ0MiwgMC4wMDQ0MTksIDAuMDA0NDE5IiwgXAotICAgICAgICAgICIwLjAwNDQxMiwgMC4wMDQ0MTgsIDAuMDA0NDIxLCAwLjAwNDQyLCAwLjAwNDQxNywgMC4wMDQ0MTUsIDAuMDA0NDE0IiwgXAotICAgICAgICAgICIwLjAwNDQxMSwgMC4wMDQ0MTcsIDAuMDA0NDIsIDAuMDA0NDE4LCAwLjAwNDQxNiwgMC4wMDQ0MTQsIDAuMDA0NDEzIiwgXAotICAgICAgICAgICIwLjAwNDQwOSwgMC4wMDQ0MTUsIDAuMDA0NDE4LCAwLjAwNDQxNiwgMC4wMDQ0MTQsIDAuMDA0NDEyLCAwLjAwNDQxMSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihzY2FsYXIpIHsKLSAgICAgICAgdmFsdWVzKCIwIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiU04iOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzI2LCAwLjAwMzI2NiwgMC4wMDMyNzUsIDAuMDAzMjc2LCAwLjAwMzI3NywgMC4wMDMyNzcsIDAuMDAzMjc4IiwgXAotICAgICAgICAgICIwLjAwMzI1NCwgMC4wMDMyNiwgMC4wMDMyNjgsIDAuMDAzMjcsIDAuMDAzMjcsIDAuMDAzMjcxLCAwLjAwMzI3MSIsIFwKLSAgICAgICAgICAiMC4wMDMyNDksIDAuMDAzMjU1LCAwLjAwMzI2MywgMC4wMDMyNjUsIDAuMDAzMjY2LCAwLjAwMzI2NiwgMC4wMDMyNjciLCBcCi0gICAgICAgICAgIjAuMDAzMjQ1LCAwLjAwMzI1MSwgMC4wMDMyNTksIDAuMDAzMjYxLCAwLjAwMzI2MiwgMC4wMDMyNjMsIDAuMDAzMjYzIiwgXAotICAgICAgICAgICIwLjAwMzI0MywgMC4wMDMyNDksIDAuMDAzMjU3LCAwLjAwMzI1OSwgMC4wMDMyNiwgMC4wMDMyNjEsIDAuMDAzMjYxIiwgXAotICAgICAgICAgICIwLjAwMzI0LCAwLjAwMzI0NiwgMC4wMDMyNTQsIDAuMDAzMjU3LCAwLjAwMzI1NywgMC4wMDMyNTgsIDAuMDAzMjU4IiwgXAotICAgICAgICAgICIwLjAwMzIzOCwgMC4wMDMyNDMsIDAuMDAzMjUyLCAwLjAwMzI1MywgMC4wMDMyNTQsIDAuMDAzMjU2LCAwLjAwMzI1NiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDA4NywgMC4wMDQwOTIsIDAuMDA0MDk4LCAwLjAwNDEsIDAuMDA0MSwgMC4wMDQxLCAwLjAwNDEwMSIsIFwKLSAgICAgICAgICAiMC4wMDQwOCwgMC4wMDQwODYsIDAuMDA0MDkyLCAwLjAwNDA5MywgMC4wMDQwOTQsIDAuMDA0MDk0LCAwLjAwNDA5NiIsIFwKLSAgICAgICAgICAiMC4wMDQwNzYsIDAuMDA0MDgxLCAwLjAwNDA4OCwgMC4wMDQwODksIDAuMDA0MDksIDAuMDA0MDksIDAuMDA0MDg5IiwgXAotICAgICAgICAgICIwLjAwNDA3MywgMC4wMDQwNzgsIDAuMDA0MDg0LCAwLjAwNDA4NiwgMC4wMDQwODYsIDAuMDA0MDg3LCAwLjAwNDA4NyIsIFwKLSAgICAgICAgICAiMC4wMDQwNywgMC4wMDQwNzYsIDAuMDA0MDgzLCAwLjAwNDA4MywgMC4wMDQwODQsIDAuMDA0MDg1LCAwLjAwNDA4NSIsIFwKLSAgICAgICAgICAiMC4wMDQwNjgsIDAuMDA0MDcyLCAwLjAwNDA3OSwgMC4wMDQwODEsIDAuMDA0MDgxLCAwLjAwNDA4MiwgMC4wMDQwODMiLCBcCi0gICAgICAgICAgIjAuMDA0MDY0LCAwLjAwNDA2OSwgMC4wMDQwNzYsIDAuMDA0MDc3LCAwLjAwNDA3OCwgMC4wMDQwNzgsIDAuMDA0MDc5Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihSTikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNTc5NTQ3OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDU3OTI0OTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA1Nzk1NDc7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNDM5LCAwLjAwMDQyNiwgMC4wMDA0MTUsIDAuMDAwNDEsIDAuMDAwNDA3LCAwLjAwMDQwNSwgMC4wMDA0MDQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDIxMDEsIDAuMDAyMDkyLCAwLjAwMjA4NiwgMC4wMDIwODIsIDAuMDAyMDgsIDAuMDAyMDc5LCAwLjAwMjA3NyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQmIVNFJiFTSSZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fU0VfRVFfMF9BTl9TSV9FUV8wX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC40NjY0MDQsIDAuNDc3OTY1LCAwLjQ5MjgzMywgMC41MDc2NTcsIDAuNTIxNTg5LCAwLjU0NDI5MiwgMC41NjE4MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0tOIjsKLSAgICAgIHRpbWluZ190eXBlIDogcmVjb3ZlcnlfZmFsbGluZzsKLSAgICAgIHdoZW4gOiAiU04iOwotICAgICAgc2RmX2NvbmQgOiAiU04gPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQocmVjb3ZlcnlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg3NSwgMC4wNzYyNSwgMC4wNTc1LCAwLjA0NSwgMC4wMjYyNSwgMC4wMDM3NSwgLTAuMDExMjUiLCBcCi0gICAgICAgICAgIjAuMDk4NzUsIDAuMDg3NSwgMC4wNzUsIDAuMDU2MjUsIDAuMDM3NSwgMC4wMTUsIDAiLCBcCi0gICAgICAgICAgIjAuMTE3NSwgMC4xLCAwLjA4NzUsIDAuMDY4NzUsIDAuMDU2MjUsIDAuMDMzNzUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4xMywgMC4xMTg3NSwgMC4xLCAwLjA4NzUsIDAuMDY4NzUsIDAuMDQ2MjUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMTQ4NzUsIDAuMTMxMjUsIDAuMTE4NzUsIDAuMSwgMC4wODc1LCAwLjA2NSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4xNzEyNSwgMC4xNiwgMC4xNDEyNSwgMC4xMjg3NSwgMC4xMSwgMC4wODc1LCAwLjA2NjI1IiwgXAotICAgICAgICAgICIwLjE5MjUsIDAuMTc1LCAwLjE2MjUsIDAuMTQzNzUsIDAuMTMxMjUsIDAuMTA4NzUsIDAuMDg3NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJlY292ZXJ5X3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUQmIVNFJiFTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fU0VfRVFfMF9BTl9TSV9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHJlY292ZXJ5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE4NzUsIDAuMTk4NzUsIDAuMjExMjUsIDAuMjIzNzUsIDAuMjQyNSwgMC4yNTg3NSwgMC4yOCIsIFwKLSAgICAgICAgICAiMC4xNzYyNSwgMC4xODc1LCAwLjIsIDAuMjEyNSwgMC4yMzEyNSwgMC4yNDc1LCAwLjI2ODc1IiwgXAotICAgICAgICAgICIwLjE2Mzc1LCAwLjE3NSwgMC4xODc1LCAwLjIsIDAuMjE4NzUsIDAuMjM1LCAwLjI1NjI1IiwgXAotICAgICAgICAgICIwLjE1MTI1LCAwLjE2MjUsIDAuMTc1LCAwLjE4NzUsIDAuMjA2MjUsIDAuMjIyNSwgMC4yNDM3NSIsIFwKLSAgICAgICAgICAiMC4xMzg3NSwgMC4xNSwgMC4xNjI1LCAwLjE4MTI1LCAwLjE5Mzc1LCAwLjIxNjI1LCAwLjIzMTI1IiwgXAotICAgICAgICAgICIwLjEyMjUsIDAuMTMzNzUsIDAuMTUyNSwgMC4xNjUsIDAuMTc3NSwgMC4yLCAwLjIxNSIsIFwKLSAgICAgICAgICAiMC4xMTM3NSwgMC4xMjUsIDAuMTM3NSwgMC4xNTYyNSwgMC4xNjg3NSwgMC4xOTEyNSwgMC4yMDYyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDS04iOwotICAgICAgdGltaW5nX3R5cGUgOiByZW1vdmFsX2ZhbGxpbmc7Ci0gICAgICB3aGVuIDogIlNOIjsKLSAgICAgIHNkZl9jb25kIDogIlNOID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHJlbW92YWxfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAsIDAuMDExMjUsIDAuMDIzNzUsIDAuMDQyNSwgMC4wNTUsIDAuMDc3NSwgMC4wOTI1IiwgXAotICAgICAgICAgICItMC4wMTEyNSwgMCwgMC4wMTI1LCAwLjAzMTI1LCAwLjA0Mzc1LCAwLjA2NjI1LCAwLjA4MTI1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDE4NzUsIDAsIDAuMDEyNSwgMC4wMjUsIDAuMDQ3NSwgMC4wNjg3NSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDMxMjUsIC0wLjAxODc1LCAwLCAwLjAxMjUsIDAuMDM1LCAwLjA1IiwgXAotICAgICAgICAgICItMC4wNjEyNSwgLTAuMDUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgMCwgMC4wMjI1LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjA4Mzc1LCAtMC4wNzI1LCAtMC4wNTM3NSwgLTAuMDQxMjUsIC0wLjAyODc1LCAtMC4wMDYyNSwgMC4wMTUiLCBcCi0gICAgICAgICAgIi0wLjEwNSwgLTAuMDkzNzUsIC0wLjA3NSwgLTAuMDYyNSwgLTAuMDUsIC0wLjAyNzUsIC0wLjAwNjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTRSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxMTQxNDE7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxMTQwOTg7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxMTQxNDE7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzNzI2LCAwLjAwMzcxOCwgMC4wMDM3MTEsIDAuMDAzNzA3LCAwLjAwMzcwNSwgMC4wMDM3MDIsIDAuMDAzNzAyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA1MTMyLCAwLjAwNTExNywgMC4wMDUxMDQsIDAuMDA1MDk3LCAwLjAwNTA5MSwgMC4wMDUwODQsIDAuMDA1MDgxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfZmFsbGluZzsKLSAgICAgIHdoZW4gOiAiUk4mU04iOwotICAgICAgc2RmX2NvbmQgOiAiUk5fRVFfMV9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAzMTI1LCAtMC4wMiwgLTAuMDA3NSwgMC4wMDUsIDAuMDE3NSwgMC4wMzM3NSwgMC4wNDg3NSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLjAwNjI1LCAwLjAyMjUsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNDM3NSwgLTAuMDMxMjUsIC0wLjAxODc1LCAtMC4wMDYyNSwgMC4wMSwgMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjA2NzUsIC0wLjA1NjI1LCAtMC4wNDM3NSwgLTAuMDMxMjUsIC0wLjAxODc1LCAtMC4wMDI1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjA4LCAtMC4wNjg3NSwgLTAuMDU2MjUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMTUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wOTYyNSwgLTAuMDg1LCAtMC4wNzI1LCAtMC4wNjYyNSwgLTAuMDUzNzUsIC0wLjAzNzUsIC0wLjAyMjUiLCBcCi0gICAgICAgICAgIi0wLjExMTI1LCAtMC4xLCAtMC4wODc1LCAtMC4wODEyNSwgLTAuMDY4NzUsIC0wLjA1MjUsIC0wLjA0Mzc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDYyNSwgLTAuMDUxMjUsIC0wLjAzODc1LCAtMC4wMzI1LCAtMC4wMiwgLTAuMDAzNzUsIDAuMDExMjUiLCBcCi0gICAgICAgICAgIi0wLjA3Mzc1LCAtMC4wNjI1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjAzMTI1LCAtMC4wMTUsIDAiLCBcCi0gICAgICAgICAgIi0wLjA5MjUsIC0wLjA4MTI1LCAtMC4wNjg3NSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wMjc1LCAtMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMTA1LCAtMC4wOTM3NSwgLTAuMDgxMjUsIC0wLjA2ODc1LCAtMC4wNjI1LCAtMC4wNDYyNSwgLTAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjExNzUsIC0wLjEwNjI1LCAtMC4wOTM3NSwgLTAuMDg3NSwgLTAuMDc1LCAtMC4wNTg3NSwgLTAuMDQzNzUiLCBcCi0gICAgICAgICAgIi0wLjE0LCAtMC4xMjg3NSwgLTAuMTE2MjUsIC0wLjEwMzc1LCAtMC4wOTc1LCAtMC4wODEyNSwgLTAuMDY2MjUiLCBcCi0gICAgICAgICAgIi0wLjE1NSwgLTAuMTQzNzUsIC0wLjEzMTI1LCAtMC4xMTg3NSwgLTAuMTEyNSwgLTAuMDk2MjUsIC0wLjA4MTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX2ZhbGxpbmc7Ci0gICAgICB3aGVuIDogIlJOJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIlJOX0VRXzFfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMDYyNSwgMC4yOTUsIDAuMjc2MjUsIDAuMjYzNzUsIDAuMjUxMjUsIDAuMjI4NzUsIDAuMjA3NSIsIFwKLSAgICAgICAgICAiMC4zMjM3NSwgMC4zMDYyNSwgMC4yOTM3NSwgMC4yNzUsIDAuMjYyNSwgMC4yNCwgMC4yMTg3NSIsIFwKLSAgICAgICAgICAiMC4zMzYyNSwgMC4zMjUsIDAuMzA2MjUsIDAuMjkzNzUsIDAuMjc1LCAwLjI1MjUsIDAuMjM3NSIsIFwKLSAgICAgICAgICAiMC4zNDg3NSwgMC4zMzc1LCAwLjMxODc1LCAwLjMwNjI1LCAwLjI5Mzc1LCAwLjI3MTI1LCAwLjI1IiwgXAotICAgICAgICAgICIwLjM2NzUsIDAuMzUsIDAuMzM3NSwgMC4zMTg3NSwgMC4zMDYyNSwgMC4yODM3NSwgMC4yNjg3NSIsIFwKLSAgICAgICAgICAiMC4zOSwgMC4zNzI1LCAwLjM2LCAwLjM0MTI1LCAwLjMyODc1LCAwLjMwNjI1LCAwLjI5MTI1IiwgXAotICAgICAgICAgICIwLjQwNSwgMC4zOTM3NSwgMC4zNzUsIDAuMzYyNSwgMC4zNDM3NSwgMC4zMjEyNSwgMC4zMDYyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI2ODc1LCAwLjI1MTI1LCAwLjIzODc1LCAwLjIyLCAwLjIwNzUsIDAuMTg1LCAwLjE3IiwgXAotICAgICAgICAgICIwLjI4LCAwLjI2MjUsIDAuMjUsIDAuMjMxMjUsIDAuMjE4NzUsIDAuMTk2MjUsIDAuMTgxMjUiLCBcCi0gICAgICAgICAgIjAuMjkyNSwgMC4yNzUsIDAuMjYyNSwgMC4yNDM3NSwgMC4yMzEyNSwgMC4yMDg3NSwgMC4xOTM3NSIsIFwKLSAgICAgICAgICAiMC4zMDUsIDAuMjg3NSwgMC4yNzUsIDAuMjU2MjUsIDAuMjQzNzUsIDAuMjIxMjUsIDAuMjA2MjUiLCBcCi0gICAgICAgICAgIjAuMzE3NSwgMC4zMDYyNSwgMC4yODc1LCAwLjI2ODc1LCAwLjI1NjI1LCAwLjIzMzc1LCAwLjIxODc1IiwgXAotICAgICAgICAgICIwLjM0LCAwLjMyMjUsIDAuMzEsIDAuMjkxMjUsIDAuMjc4NzUsIDAuMjU2MjUsIDAuMjQxMjUiLCBcCi0gICAgICAgICAgIjAuMzU1LCAwLjM0Mzc1LCAwLjMyNSwgMC4zMTI1LCAwLjI5Mzc1LCAwLjI3NzUsIDAuMjU2MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFNJKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2NjkyNTE7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjY3NTkxOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDY2OTI1MTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDI3NzUsIDAuMDAyNzY2LCAwLjAwMjc2MSwgMC4wMDI3NTcsIDAuMDAyNzU1LCAwLjAwMjc1MSwgMC4wMDI3NDkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDM5NDUsIDAuMDAzOTQsIDAuMDAzOTM4LCAwLjAwMzkzNiwgMC4wMDM5MzQsIDAuMDAzOTMzLCAwLjAwMzkzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfZmFsbGluZzsKLSAgICAgIHdoZW4gOiAiUk4mU0UmU04iOwotICAgICAgc2RmX2NvbmQgOiAiUk5fRVFfMV9BTl9TRV9FUV8xX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDM3NSwgLTAuMDI2MjUsIC0wLjAxMzc1LCAtMC4wMDc1LCAwLjAwNSwgMC4wMjEyNSwgMC4wMzYyNSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAuMDEsIDAuMDI1IiwgXAotICAgICAgICAgICItMC4wNjc1LCAtMC4wNTYyNSwgLTAuMDQzNzUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgLTAuMDAyNSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDgsIC0wLjA2ODc1LCAtMC4wNTYyNSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAyMTI1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDkyNSwgLTAuMDgxMjUsIC0wLjA2ODc1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjAzMzc1LCAtMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMTE1LCAtMC4xMDM3NSwgLTAuMDkxMjUsIC0wLjA3ODc1LCAtMC4wNzI1LCAtMC4wNTYyNSwgLTAuMDQxMjUiLCBcCi0gICAgICAgICAgIi0wLjEzLCAtMC4xMTg3NSwgLTAuMTA2MjUsIC0wLjEsIC0wLjA4NzUsIC0wLjA3MTI1LCAtMC4wNTYyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjEzMTI1LCAtMC4xMiwgLTAuMTEzNzUsIC0wLjEwMTI1LCAtMC4wOTUsIC0wLjA4NSwgLTAuMDc2MjUiLCBcCi0gICAgICAgICAgIi0wLjE0MjUsIC0wLjEzMTI1LCAtMC4xMjUsIC0wLjExMjUsIC0wLjEwNjI1LCAtMC4wOTYyNSwgLTAuMDg3NSIsIFwKLSAgICAgICAgICAiLTAuMTU1LCAtMC4xNDM3NSwgLTAuMTM3NSwgLTAuMTI1LCAtMC4xMTg3NSwgLTAuMTA4NzUsIC0wLjEiLCBcCi0gICAgICAgICAgIi0wLjE2NzUsIC0wLjE1NjI1LCAtMC4xNSwgLTAuMTM3NSwgLTAuMTMxMjUsIC0wLjEyMTI1LCAtMC4xMTI1IiwgXAotICAgICAgICAgICItMC4xOCwgLTAuMTY4NzUsIC0wLjE2MjUsIC0wLjE1LCAtMC4xNDM3NSwgLTAuMTMzNzUsIC0wLjEyNSIsIFwKLSAgICAgICAgICAiLTAuMTk2MjUsIC0wLjE5MTI1LCAtMC4xNzg3NSwgLTAuMTcyNSwgLTAuMTY2MjUsIC0wLjE1NjI1LCAtMC4xNDc1IiwgXAotICAgICAgICAgICItMC4yMTEyNSwgLTAuMjA2MjUsIC0wLjE5Mzc1LCAtMC4xODc1LCAtMC4xODEyNSwgLTAuMTcxMjUsIC0wLjE2MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0tOIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfZmFsbGluZzsKLSAgICAgIHdoZW4gOiAiUk4mU0UmU04iOwotICAgICAgc2RmX2NvbmQgOiAiUk5fRVFfMV9BTl9TRV9FUV8xX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjMxMjUsIDAuMjIsIDAuMjA3NSwgMC4xODg3NSwgMC4xNzYyNSwgMC4xNTM3NSwgMC4xMzI1IiwgXAotICAgICAgICAgICIwLjI0MjUsIDAuMjMxMjUsIDAuMjE4NzUsIDAuMiwgMC4xODc1LCAwLjE2NSwgMC4xNDM3NSIsIFwKLSAgICAgICAgICAiMC4yNjEyNSwgMC4yNSwgMC4yMzEyNSwgMC4yMTI1LCAwLjIsIDAuMTc3NSwgMC4xNTYyNSIsIFwKLSAgICAgICAgICAiMC4yNzM3NSwgMC4yNjI1LCAwLjI0Mzc1LCAwLjIzMTI1LCAwLjIxMjUsIDAuMTksIDAuMTc1IiwgXAotICAgICAgICAgICIwLjI4NjI1LCAwLjI3NSwgMC4yNTYyNSwgMC4yNDM3NSwgMC4yMjUsIDAuMjAyNSwgMC4xODc1IiwgXAotICAgICAgICAgICIwLjMwODc1LCAwLjI5NzUsIDAuMjc4NzUsIDAuMjY2MjUsIDAuMjQ3NSwgMC4yMjUsIDAuMjEiLCBcCi0gICAgICAgICAgIjAuMzMsIDAuMzE4NzUsIDAuMywgMC4yODc1LCAwLjI2ODc1LCAwLjI0NjI1LCAwLjIyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI4MTI1LCAwLjI3LCAwLjI1MTI1LCAwLjIzMjUsIDAuMjIsIDAuMTk3NSwgMC4xODI1IiwgXAotICAgICAgICAgICIwLjI5MjUsIDAuMjgxMjUsIDAuMjYyNSwgMC4yNDM3NSwgMC4yMzEyNSwgMC4yMDg3NSwgMC4xOTM3NSIsIFwKLSAgICAgICAgICAiMC4zMDUsIDAuMjkzNzUsIDAuMjc1LCAwLjI1NjI1LCAwLjI0Mzc1LCAwLjIyMTI1LCAwLjIwNjI1IiwgXAotICAgICAgICAgICIwLjMxNzUsIDAuMzA2MjUsIDAuMjg3NSwgMC4yNjg3NSwgMC4yNTYyNSwgMC4yMzM3NSwgMC4yMTg3NSIsIFwKLSAgICAgICAgICAiMC4zMywgMC4zMTg3NSwgMC4zLCAwLjI4MTI1LCAwLjI2ODc1LCAwLjI0NjI1LCAwLjIzMTI1IiwgXAotICAgICAgICAgICIwLjM0NjI1LCAwLjMzNSwgMC4zMTYyNSwgMC4zMDM3NSwgMC4yOTEyNSwgMC4yNjg3NSwgMC4yNDc1IiwgXAotICAgICAgICAgICIwLjM2NzUsIDAuMzUsIDAuMzM3NSwgMC4zMTg3NSwgMC4zMDYyNSwgMC4yODM3NSwgMC4yNjg3NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oU04pICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTU1OTgyOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTU1OTgyOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTU1OTc0OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDMzMSwgMC4wMDAzMywgMC4wMDAzMywgMC4wMDAzMywgMC4wMDAzMywgMC4wMDAzMywgMC4wMDAzMyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDMzMSwgMC4wMDAzMzEsIDAuMDAwMzMyLCAwLjAwMDMzMSwgMC4wMDAzMzIsIDAuMDAwMzMyLCAwLjAwMDMzMiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQmIVJOJiFTRSYhU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1JOX0VRXzBfQU5fU0VfRVFfMF9BTl9TSV9FUV8wID09IDEnYjEiOwotICAgICAgZmFsbF9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMzI0Mzg1LCAwLjMzNjAzNiwgMC4zNTAzMTksIDAuMzYzNzc5LCAwLjM3NjY2MSwgMC4zOTk5OTMsIDAuNDIwMTQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0tOIjsKLSAgICAgIHRpbWluZ190eXBlIDogcmVjb3ZlcnlfZmFsbGluZzsKLSAgICAgIHdoZW4gOiAiUk4iOwotICAgICAgc2RmX2NvbmQgOiAiUk4gPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQocmVjb3ZlcnlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMSwgMC4wODg3NSwgMC4wNywgMC4wNTc1LCAwLjA0NSwgMC4wMTYyNSwgMC4wMDEyNSIsIFwKLSAgICAgICAgICAiMC4xMTEyNSwgMC4xLCAwLjA4MTI1LCAwLjA2ODc1LCAwLjA1NjI1LCAwLjAyNzUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4xMywgMC4xMTI1LCAwLjEsIDAuMDgxMjUsIDAuMDY4NzUsIDAuMDQ2MjUsIDAuMDI1IiwgXAotICAgICAgICAgICIwLjE0MjUsIDAuMTMxMjUsIDAuMTEyNSwgMC4wOTM3NSwgMC4wODEyNSwgMC4wNTg3NSwgMC4wMzc1IiwgXAotICAgICAgICAgICIwLjE1NSwgMC4xNDM3NSwgMC4xMjUsIDAuMTEyNSwgMC4wOTM3NSwgMC4wNzEyNSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiMC4xNzc1LCAwLjE2NjI1LCAwLjE0NzUsIDAuMTM1LCAwLjExNjI1LCAwLjA5Mzc1LCAwLjA3ODc1IiwgXAotICAgICAgICAgICIwLjE5ODc1LCAwLjE4MTI1LCAwLjE2ODc1LCAwLjE1LCAwLjEzNzUsIDAuMTE1LCAwLjA5Mzc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJlbW92YWxfZmFsbGluZzsKLSAgICAgIHdoZW4gOiAiUk4iOwotICAgICAgc2RmX2NvbmQgOiAiUk4gPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQocmVtb3ZhbF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTI1LCAwLjAyMzc1LCAwLjAzNjI1LCAwLjA1NSwgMC4wNjc1LCAwLjA5LCAwLjEwNSIsIFwKLSAgICAgICAgICAiMC4wMDEyNSwgMC4wMTI1LCAwLjAyNSwgMC4wNDM3NSwgMC4wNTYyNSwgMC4wNzg3NSwgMC4wOTM3NSIsIFwKLSAgICAgICAgICAiLTAuMDExMjUsIDAsIDAuMDEyNSwgMC4wMjUsIDAuMDQzNzUsIDAuMDYsIDAuMDgxMjUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMTg3NSwgMCwgMC4wMTI1LCAwLjAyNSwgMC4wNDc1LCAwLjA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzMTI1LCAtMC4wMTI1LCAwLCAwLjAxMjUsIDAuMDM1LCAwLjA1IiwgXAotICAgICAgICAgICItMC4wNjUsIC0wLjA1Mzc1LCAtMC4wMzUsIC0wLjAyMjUsIC0wLjAxLCAwLjAxMjUsIDAuMDI3NSIsIFwKLSAgICAgICAgICAiLTAuMDgsIC0wLjA2ODc1LCAtMC4wNSwgLTAuMDM3NSwgLTAuMDI1LCAtMC4wMDI1LCAwLjAxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IFNERkZOU1JYNCAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKFNERkZOU1JYNCkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjYxMTc4OTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBmZiAoTjM1LFFCSU5UKSB7Ci0gICAgbmV4dF9zdGF0ZSA6ICIoKFNFIFNJKSArICghU0UgRCkpIjsKLSAgICBjbG9ja2VkX29uIDogIighQ0tOKSI7Ci0gICAgY2xlYXIgOiAiKCFSTikiOwotICAgIHByZXNldCA6ICIoIVNOKSI7Ci0gICAgY2xlYXJfcHJlc2V0X3ZhcjEgOiBIOwotICAgIGNsZWFyX3ByZXNldF92YXIyIDogTDsKLSAgfQotICBwaW4oQ0tOKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2MDIzMzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MDIwODE7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjAyMzM7Ci0gICAgY2xvY2sgOiB0cnVlOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNTQyOCwgMC4wMDU0MTYsIDAuMDA1NDA2LCAwLjAwNTQwMSwgMC4wMDUzOTUsIDAuMDA1MzkyLCAwLjAwNTM5NCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzgzNywgMC4wMDM4MywgMC4wMDM4MjQsIDAuMDAzODE4LCAwLjAwMzgxNCwgMC4wMDM4MDgsIDAuMDAzODA4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQmUk4mIVNFJiFTSSZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fUk5fRVFfMV9BTl9TRV9FUV8wX0FOX1NJX0VRXzBfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjI4NTIwNiwgMC4yOTY4MjgsIDAuMzExNDM0LCAwLjMyNzU1NiwgMC4zNDI4NjcsIDAuMzY3NDcsIDAuMzg4NTg1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4zNTA4NjIsIDAuMzYyNDk1LCAwLjM3NzEwMSwgMC4zOTE3MzMsIDAuNDA2NzY1LCAwLjQyOTg0MywgMC40NDk3NjMiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEQpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYzMjg0ODsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MzA3Nzk7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjMyODQ4OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzI2NywgMC4wMDMyNTcsIDAuMDAzMjUyLCAwLjAwMzI0OSwgMC4wMDMyNDYsIDAuMDAzMjQzLCAwLjAwMzI0MSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNDA0OCwgMC4wMDQwNDMsIDAuMDA0MDQxLCAwLjAwNDAzOSwgMC4wMDQwMzgsIDAuMDA0MDM2LCAwLjAwNDAzMyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDS04iOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX2ZhbGxpbmc7Ci0gICAgICB3aGVuIDogIlJOJiFTRSZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJSTl9FUV8xX0FOX1NFX0VRXzBfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMzEyNSwgLTAuMDIsIC0wLjAwMTI1LCAwLjAxMTI1LCAwLjAyMzc1LCAwLjA0LCAwLjA1NSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDMxMjUsIC0wLjAxODc1LCAwLCAwLjAxMjUsIDAuMDI4NzUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIi0wLjA1NSwgLTAuMDQzNzUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAuMDE2MjUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjA2NzUsIC0wLjA1NjI1LCAtMC4wNDM3NSwgLTAuMDMxMjUsIC0wLjAxODc1LCAwLjAwMzc1LCAwLjAxODc1IiwgXAotICAgICAgICAgICItMC4wOCwgLTAuMDY4NzUsIC0wLjA1NjI1LCAtMC4wNDM3NSwgLTAuMDMxMjUsIC0wLjAwODc1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICItMC4xMDI1LCAtMC4wOTEyNSwgLTAuMDc4NzUsIC0wLjA2NjI1LCAtMC4wNTM3NSwgLTAuMDMxMjUsIC0wLjAxNjI1IiwgXAotICAgICAgICAgICItMC4xMTc1LCAtMC4xMDYyNSwgLTAuMDkzNzUsIC0wLjA4MTI1LCAtMC4wNjg3NSwgLTAuMDUyNSwgLTAuMDMxMjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4xMTg3NSwgLTAuMTA3NSwgLTAuMTAxMjUsIC0wLjA4ODc1LCAtMC4wNzYyNSwgLTAuMDY2MjUsIC0wLjA1MTI1IiwgXAotICAgICAgICAgICItMC4xMywgLTAuMTE4NzUsIC0wLjExMjUsIC0wLjEsIC0wLjA4NzUsIC0wLjA3NzUsIC0wLjA2MjUiLCBcCi0gICAgICAgICAgIi0wLjE0MjUsIC0wLjEzMTI1LCAtMC4xMjUsIC0wLjExMjUsIC0wLjEwNjI1LCAtMC4wOSwgLTAuMDgxMjUiLCBcCi0gICAgICAgICAgIi0wLjE1NSwgLTAuMTQzNzUsIC0wLjEzNzUsIC0wLjEyNSwgLTAuMTE4NzUsIC0wLjEwMjUsIC0wLjA5Mzc1IiwgXAotICAgICAgICAgICItMC4xNjc1LCAtMC4xNTYyNSwgLTAuMTUsIC0wLjEzNzUsIC0wLjEzMTI1LCAtMC4xMTUsIC0wLjEwNjI1IiwgXAotICAgICAgICAgICItMC4xOSwgLTAuMTc4NzUsIC0wLjE2NjI1LCAtMC4xNiwgLTAuMTQ3NSwgLTAuMTMxMjUsIC0wLjEyMjUiLCBcCi0gICAgICAgICAgIi0wLjIwNSwgLTAuMTkzNzUsIC0wLjE4MTI1LCAtMC4xNzUsIC0wLjE2MjUsIC0wLjE1MjUsIC0wLjEzNzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0tOIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfZmFsbGluZzsKLSAgICAgIHdoZW4gOiAiUk4mIVNFJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIlJOX0VRXzFfQU5fU0VfRVFfMF9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI1LCAwLjIzODc1LCAwLjIyLCAwLjIwNzUsIDAuMTg4NzUsIDAuMTY2MjUsIDAuMTQ1IiwgXAotICAgICAgICAgICIwLjI2MTI1LCAwLjI1LCAwLjIzMTI1LCAwLjIxODc1LCAwLjIsIDAuMTc3NSwgMC4xNTYyNSIsIFwKLSAgICAgICAgICAiMC4yNzM3NSwgMC4yNjI1LCAwLjI0Mzc1LCAwLjIzMTI1LCAwLjIxMjUsIDAuMTksIDAuMTY4NzUiLCBcCi0gICAgICAgICAgIjAuMjg2MjUsIDAuMjc1LCAwLjI2MjUsIDAuMjQzNzUsIDAuMjMxMjUsIDAuMjAyNSwgMC4xODEyNSIsIFwKLSAgICAgICAgICAiMC4zMDUsIDAuMjg3NSwgMC4yNzUsIDAuMjU2MjUsIDAuMjQzNzUsIDAuMjE1LCAwLjE5Mzc1IiwgXAotICAgICAgICAgICIwLjMyNzUsIDAuMzEsIDAuMjk3NSwgMC4yNzg3NSwgMC4yNjYyNSwgMC4yMzc1LCAwLjIxNjI1IiwgXAotICAgICAgICAgICIwLjM0MjUsIDAuMzMxMjUsIDAuMzEyNSwgMC4zLCAwLjI4MTI1LCAwLjI1ODc1LCAwLjIzNzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zLCAwLjI4ODc1LCAwLjI3LCAwLjI1NzUsIDAuMjM4NzUsIDAuMjE2MjUsIDAuMTk1IiwgXAotICAgICAgICAgICIwLjMxMTI1LCAwLjMsIDAuMjgxMjUsIDAuMjY4NzUsIDAuMjUsIDAuMjI3NSwgMC4yMDYyNSIsIFwKLSAgICAgICAgICAiMC4zMjM3NSwgMC4zMTI1LCAwLjI5Mzc1LCAwLjI4MTI1LCAwLjI2MjUsIDAuMjQsIDAuMjE4NzUiLCBcCi0gICAgICAgICAgIjAuMzM2MjUsIDAuMzI1LCAwLjMwNjI1LCAwLjI5Mzc1LCAwLjI3NSwgMC4yNTI1LCAwLjIzMTI1IiwgXAotICAgICAgICAgICIwLjM0ODc1LCAwLjMzNzUsIDAuMzE4NzUsIDAuMzA2MjUsIDAuMjg3NSwgMC4yNjUsIDAuMjQzNzUiLCBcCi0gICAgICAgICAgIjAuMzcxMjUsIDAuMzYsIDAuMzQxMjUsIDAuMzIyNSwgMC4zMSwgMC4yODEyNSwgMC4yNiIsIFwKLSAgICAgICAgICAiMC4zODYyNSwgMC4zNzUsIDAuMzU2MjUsIDAuMzQzNzUsIDAuMzI1LCAwLjI5NjI1LCAwLjI4MTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihRKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuNTIyMDIzOwotICAgIGZ1bmN0aW9uIDogIk4zNSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0tOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5vbl91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogZmFsbGluZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMyNzQyMiwgMC40NTczODUsIDAuNTgzOTYzLCAwLjY3NDAyNCwgMC44MTczMjIsIDAuOTQ0OTE3LCAxLjEyNTg0IiwgXAotICAgICAgICAgICIwLjMzODkwNSwgMC40Njg4NDQsIDAuNTk1MDAxLCAwLjY4NTQ4NiwgMC44Mjk3MjIsIDAuOTU0Njc4LCAxLjEzNzU4IiwgXAotICAgICAgICAgICIwLjM1MzgwNSwgMC40ODM3MjksIDAuNjA5NzEyLCAwLjY5OTcxMiwgMC44NDQ2MzIsIDAuOTcxMDQ4LCAxLjE1MjEyIiwgXAotICAgICAgICAgICIwLjM2ODQzNCwgMC40OTgzNzcsIDAuNjI0ODY1LCAwLjcxNTAzMSwgMC44NTkyNTIsIDAuOTg0MDIxLCAxLjE2NzA2IiwgXAotICAgICAgICAgICIwLjM4MzM3LCAwLjUxMzMyMywgMC42Mzk0NzgsIDAuNzI5MzMyLCAwLjg3Mjk2NSwgMS4wMDAwOSwgMS4xODE5MiIsIFwKLSAgICAgICAgICAiMC40MDcwMTksIDAuNTM2OTQzLCAwLjY2Mjc5OCwgMC43NTI5NTcsIDAuODk3ODQzLCAxLjAyMzMsIDEuMjA1MzciLCBcCi0gICAgICAgICAgIjAuNDI3MTAxLCAwLjU1NzAyNSwgMC42ODI5MzEsIDAuNzczMDUyLCAwLjkxNzkwNiwgMS4wNDMzLCAxLjIyNTQ3Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDYzNDM0LCAwLjMwNzkwNSwgMC41Njk0MTgsIDAuNzQ1OTc3LCAxLjA1MjUyLCAxLjMwMjMzLCAxLjY3NTYiLCBcCi0gICAgICAgICAgIjAuMDYzNTQ4LCAwLjMwNzkyNCwgMC41Njk2OSwgMC43NTI2NTUsIDEuMDQ4MDEsIDEuMzEyNTEsIDEuNjc0MjYiLCBcCi0gICAgICAgICAgIjAuMDYzNTI4LCAwLjMxMTc1OCwgMC41NjQ1MSwgMC43NTU3MiwgMS4wNDg0MywgMS4yOTIwNCwgMS42Nzg0NCIsIFwKLSAgICAgICAgICAiMC4wNjQxNzEsIDAuMzA3OTU0LCAwLjU2NDk2NywgMC43NDk5NTcsIDEuMDQ3NTEsIDEuMzEyNTcsIDEuNjU2ODQiLCBcCi0gICAgICAgICAgIjAuMDYzOTgxLCAwLjMwNzk0MiwgMC41Njk3NDEsIDAuNzU1NzgzLCAxLjA1MjM3LCAxLjMwMzQyLCAxLjY2MzcyIiwgXAotICAgICAgICAgICIwLjA2MzUxMiwgMC4zMTMxMjMsIDAuNTY5ODAyLCAwLjc1NTc4LCAxLjA0OTIxLCAxLjMxMjUxLCAxLjY3NzQ3IiwgXAotICAgICAgICAgICIwLjA2MzUxMiwgMC4zMTMzODgsIDAuNTY5ODEsIDAuNzU1NzcxLCAxLjA1MDg1LCAxLjMxMjQ5LCAxLjY2NTQ4Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzAxNTc2LCAwLjQ1MTAwOSwgMC41OTcxMywgMC43MDE1MTIsIDAuODY4ODc0LCAxLjAxNTI1LCAxLjIyNjc2IiwgXAotICAgICAgICAgICIwLjMxMzIzNSwgMC40NjI0MzEsIDAuNjA4ODEsIDAuNzEzMTYzLCAwLjg4MDQ4OSwgMS4wMjY4MSwgMS4yMzYwOCIsIFwKLSAgICAgICAgICAiMC4zMjc4MjYsIDAuNDc3MTY2LCAwLjYyMzI4NiwgMC43Mjc3NjEsIDAuODk0OTc0LCAxLjA0MTU3LCAxLjI1MzA2IiwgXAotICAgICAgICAgICIwLjM0MjQzNywgMC40OTE2NjMsIDAuNjM4MDQ2LCAwLjc0MjM5OSwgMC45MDk3MjIsIDEuMDU2MDYsIDEuMjY1MzQiLCBcCi0gICAgICAgICAgIjAuMzU3NSwgMC41MDY5MTQsIDAuNjUzMTExLCAwLjc1NzQyNSwgMC45MjQ2ODYsIDEuMDcxMTQsIDEuMjgwNDgiLCBcCi0gICAgICAgICAgIjAuMzgwNTQ4LCAwLjUyOTc3OSwgMC42NzYxNTksIDAuNzgwNTA4LCAwLjk0NzgyOCwgMS4wOTQxOCwgMS4zMDM0NyIsIFwKLSAgICAgICAgICAiMC40MDA0OTMsIDAuNTQ5NzEsIDAuNjk1OTEyLCAwLjgwMDQyNCwgMC45Njc2MzEsIDEuMTE0MTgsIDEuMzI1NzEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjU5NzgsIDAuMzQ3Nzk1LCAwLjYzNzM0LCAwLjg0MzkzNywgMS4xNzc0NywgMS40NjgzOSwgMS44ODUwMyIsIFwKLSAgICAgICAgICAiMC4wNjU5MjUsIDAuMzQ3NzM4LCAwLjYzNzI1LCAwLjg0Mzk5OCwgMS4xNzU3NywgMS40NjcyMiwgMS44ODUxNSIsIFwKLSAgICAgICAgICAiMC4wNjYwNDcsIDAuMzQ3ODA0LCAwLjYzNjgwMSwgMC44NDM4OTcsIDEuMTc3NDQsIDEuNDY4NTgsIDEuODg0NjQiLCBcCi0gICAgICAgICAgIjAuMDY2NDIxLCAwLjM0Nzc1NCwgMC42MzcyNTksIDAuODQzOTkxLCAxLjE3NTc0LCAxLjQ2NzI4LCAxLjg4NTE2IiwgXAotICAgICAgICAgICIwLjA2NTkwMywgMC4zNDc4NCwgMC42MzcyMDYsIDAuODQ0MDE2LCAxLjE3NzA1LCAxLjQ2Nzg3LCAxLjg4NjgiLCBcCi0gICAgICAgICAgIjAuMDY2NDA4LCAwLjM0Nzc1NiwgMC42MzcyNTcsIDAuODQ0MDMyLCAxLjE3NTc4LCAxLjQ2NzM1LCAxLjg4NTE2IiwgXAotICAgICAgICAgICIwLjA2NTgwMiwgMC4zNDc3NTMsIDAuNjM2OTUsIDAuODQzOTU4LCAxLjE3NzQ5LCAxLjQ2ODI2LCAxLjg4NDg3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiBjbGVhcjsKLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC40MjIyMDQsIDAuNTcxNDc1LCAwLjcxNzU0NCwgMC44MjE5MDQsIDAuOTg5MDY3LCAxLjEzNTA2LCAxLjM0MzkyIiwgXAotICAgICAgICAgICIwLjQzMzYxMSwgMC41ODI4ODEsIDAuNzI4OTUxLCAwLjgzMzMxLCAxLjAwMDQ4LCAxLjE0NjQ3LCAxLjM1NTMyIiwgXAotICAgICAgICAgICIwLjQ0ODQ3NiwgMC41OTc3MjMsIDAuNzQzNjM5LCAwLjg0ODE1OSwgMS4wMTUyOSwgMS4xNjEyOSwgMS4zNzAxNSIsIFwKLSAgICAgICAgICAiMC40NjMzMzMsIDAuNjEyNTczLCAwLjc1ODY1MiwgMC44NjMwMjEsIDEuMDMwMTksIDEuMTc2MSwgMS4zODUwMiIsIFwKLSAgICAgICAgICAiMC40NzczMTksIDAuNjI2NTY2LCAwLjc3MjY0NiwgMC44NzcwMTgsIDEuMDQ0MjIsIDEuMTkwMTcsIDEuMzk5MDIiLCBcCi0gICAgICAgICAgIjAuNDk5ODg2LCAwLjY0OTEyOSwgMC43OTUyMDMsIDAuODk5NTc3LCAxLjA2Njc2LCAxLjIxMjY1LCAxLjQyMTU3IiwgXAotICAgICAgICAgICIwLjUxNzM3MiwgMC42NjY2NSwgMC44MTI3MTQsIDAuOTE3MDc0LCAxLjA4NDI1LCAxLjIzMDIyLCAxLjQzOTA4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY2NTE0LCAwLjM0Nzc2MSwgMC42Mzc0MTQsIDAuODQ1NDQ1LCAxLjE3ODM2LCAxLjQ2NzIzLCAxLjg4NTYiLCBcCi0gICAgICAgICAgIjAuMDY3NTI3LCAwLjM0Nzc2MSwgMC42Mzc0MTMsIDAuODQ1MDkyLCAxLjE3ODQsIDEuNDY4OTMsIDEuODg2MiIsIFwKLSAgICAgICAgICAiMC4wNjczNTksIDAuMzQ3NTc2LCAwLjYzNzM1OCwgMC44NDU0MDksIDEuMTc2NjQsIDEuNDY4NDEsIDEuODg3OTQiLCBcCi0gICAgICAgICAgIjAuMDY3NTUsIDAuMzQ3NzQ2LCAwLjYzNzQxLCAwLjg0NTA4NSwgMS4xNzg0LCAxLjQ2ODU3LCAxLjg4NTYiLCBcCi0gICAgICAgICAgIjAuMDY3NDU5LCAwLjM0Nzc0NywgMC42Mzc0MSwgMC44NDU0MiwgMS4xNzg0MywgMS40Njg4LCAxLjg4NjAzIiwgXAotICAgICAgICAgICIwLjA2NjY4NSwgMC4zNDc3NDMsIDAuNjM3NDA5LCAwLjg0NDQ3LCAxLjE3NzQ0LCAxLjQ2ODExLCAxLjg4NjMzIiwgXAotICAgICAgICAgICIwLjA2NjUzNSwgMC4zNDc3NjEsIDAuNjM3NDEzLCAwLjg0NTQxNCwgMS4xNzY5NiwgMS40Njk4LCAxLjg4NjMzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiBwcmVzZXQ7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjQzOTI5LCAwLjM3MjkzMSwgMC40OTg4OTksIDAuNTg4NzM3LCAwLjczNDA4OSwgMC44NTk4MjIsIDEuMDM5NzkiLCBcCi0gICAgICAgICAgIjAuMjU1MzM0LCAwLjM4NDQzMSwgMC41MTA1MzYsIDAuNjAxNDg0LCAwLjc0NDc0NCwgMC44NzEyNTksIDEuMDUxNDEiLCBcCi0gICAgICAgICAgIjAuMjY5NjU3LCAwLjM5ODY5NywgMC41MjQ2NiwgMC42MTQ0MDIsIDAuNzYwMzI0LCAwLjg4NjIyNCwgMS4wNjU1OCIsIFwKLSAgICAgICAgICAiMC4yODQ4MzIsIDAuNDEzODU1LCAwLjU0MDUxMiwgMC42Mjk1NzksIDAuNzc0NTQzLCAwLjkwMTc0NiwgMS4wODA3NiIsIFwKLSAgICAgICAgICAiMC4yOTkxNDUsIDAuNDI4MTgsIDAuNTU0MTQyLCAwLjY0Mzg5MSwgMC43ODg3NzgsIDAuOTE1OTIzLCAxLjA5NTA4IiwgXAotICAgICAgICAgICIwLjMyMjU1NywgMC40NTE2MjksIDAuNTc3MzkxLCAwLjY2ODY5OSwgMC44MTE4MDMsIDAuOTM4MTYzLCAxLjExODc1IiwgXAotICAgICAgICAgICIwLjM0MjUwNiwgMC40NzE1OTUsIDAuNTk3NjI5LCAwLjY4ODY2LCAwLjgzMTkyNywgMC45NTg0NjIsIDEuMTQwMiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2MTY4NywgMC4zMTEzODIsIDAuNTY5MzQ5LCAwLjc1NDc5NCwgMS4wNTI2OSwgMS4zMTI5MSwgMS42ODM5MiIsIFwKLSAgICAgICAgICAiMC4wNjE0MzksIDAuMzEwOTYxLCAwLjU2OTIwNCwgMC43NTUxMjYsIDEuMDUyNjksIDEuMzEyODcsIDEuNjgzOTciLCBcCi0gICAgICAgICAgIjAuMDYxNjUxLCAwLjMxMjkyOSwgMC41NzAwNjcsIDAuNzU0ODQ3LCAxLjA1MjU5LCAxLjMxMjkyLCAxLjY4MzkzIiwgXAotICAgICAgICAgICIwLjA2MTY5MSwgMC4zMTExOTMsIDAuNTY5NjU2LCAwLjc1NDUzMywgMS4wNTI4MSwgMS4zMTI3NiwgMS42ODM5NyIsIFwKLSAgICAgICAgICAiMC4wNjE2NzIsIDAuMzEyMDA5LCAwLjU2OTYyNywgMC43NTQ2MTQsIDEuMDUyOTQsIDEuMzEyNzUsIDEuNjgzOTgiLCBcCi0gICAgICAgICAgIjAuMDYxNjA4LCAwLjMxMjA5NiwgMC41Njk5MzQsIDAuNzU0ODAzLCAxLjA1MjcxLCAxLjMxMjc3LCAxLjY4Mzk5IiwgXAotICAgICAgICAgICIwLjA2MDg4LCAwLjMxMTcxNiwgMC41Njk4NzYsIDAuNzU0OTI0LCAxLjA1Mjc2LCAxLjMxMjg5LCAxLjY4Mzk3Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzkzMDY2LCAwLjU0MjMyMSwgMC42ODg0MDMsIDAuNzkyNzYyLCAwLjk1OTkxNywgMS4xMDU5MiwgMS4zMTQ3OCIsIFwKLSAgICAgICAgICAiMC40MDUwNzEsIDAuNTU0MzA3LCAwLjcwMDM4OCwgMC44MDQ3NTcsIDAuOTcxOTE3LCAxLjExNzg0LCAxLjMyNjc2IiwgXAotICAgICAgICAgICIwLjQyMDE0MSwgMC41Njk0MTQsIDAuNzE1NDgzLCAwLjgxOTg0NCwgMC45ODcwMTMsIDEuMTMzLCAxLjM0MTg2IiwgXAotICAgICAgICAgICIwLjQzNDY5MSwgMC41ODM5NjcsIDAuNzMwMDMzLCAwLjgzNDM5NCwgMS4wMDE1NywgMS4xNDc1MiwgMS4zNTY0MSIsIFwKLSAgICAgICAgICAiMC40NDg3MDcsIDAuNTk3OTg2LCAwLjc0NDA1MSwgMC44NDg0MTMsIDEuMDE1NTksIDEuMTYxNTcsIDEuMzcwNDMiLCBcCi0gICAgICAgICAgIjAuNDcwOTMxLCAwLjYyMDIxNCwgMC43NjYyNzUsIDAuODcwNjM3LCAxLjAzNzgyLCAxLjE4Mzc5LCAxLjM5MjY1IiwgXAotICAgICAgICAgICIwLjQ4OTk4OCwgMC42MzkyNjYsIDAuNzg1MzMyLCAwLjg4OTY5NiwgMS4wNTY4OCwgMS4yMDI4NCwgMS40MTE3MSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2NjI2NCwgMC4zNDc3NiwgMC42Mzc0MDgsIDAuODQ1MTk2LCAxLjE3NzA2LCAxLjQ2OTk0LCAxLjg4NTgiLCBcCi0gICAgICAgICAgIjAuMDY3NTIsIDAuMzQ3NzQ2LCAwLjYzNzQxLCAwLjg0NDQ0NSwgMS4xNzcyNCwgMS40Njg1OCwgMS44ODYyNyIsIFwKLSAgICAgICAgICAiMC4wNjY1MDEsIDAuMzQ3NzYxLCAwLjYzNzQwOCwgMC44NDQ0NDEsIDEuMTc4MzgsIDEuNDY5NzQsIDEuODg2MzEiLCBcCi0gICAgICAgICAgIjAuMDY3NDE3LCAwLjM0Nzc1OCwgMC42Mzc0MDksIDAuODQ0NTU4LCAxLjE3NzEsIDEuNDY4MTQsIDEuODg2MzMiLCBcCi0gICAgICAgICAgIjAuMDY3MzAzLCAwLjM0Nzc2MSwgMC42Mzc0MTMsIDAuODQ1MjIsIDEuMTc3MjksIDEuNDY5NzQsIDEuODg2MjgiLCBcCi0gICAgICAgICAgIjAuMDY2Mjc4LCAwLjM0NzU3OCwgMC42Mzc0MTIsIDAuODQ0NDMzLCAxLjE3NzIyLCAxLjQ2OTkyLCAxLjg4NjM3IiwgXAotICAgICAgICAgICIwLjA2NzUzMSwgMC4zNDc3NjEsIDAuNjM3NDA2LCAwLjg0NDM0OCwgMS4xNzcyLCAxLjQ3MDksIDEuODg2MzgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDS04iOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA3MzY1LCAwLjAwNzQ4NiwgMC4wMDc1MDIsIDAuMDA3NTA3LCAwLjAwNzUxMSwgMC4wMDc1MTMsIDAuMDA3NTE1IiwgXAotICAgICAgICAgICIwLjAwNzM2MiwgMC4wMDc0ODIsIDAuMDA3NDk5LCAwLjAwNzUwNCwgMC4wMDc1MDgsIDAuMDA3NTEsIDAuMDA3NTEyIiwgXAotICAgICAgICAgICIwLjAwNzM1OCwgMC4wMDc0NzgsIDAuMDA3NDk1LCAwLjAwNzQ5OSwgMC4wMDc1MDMsIDAuMDA3NTA1LCAwLjAwNzUwNyIsIFwKLSAgICAgICAgICAiMC4wMDczNTMsIDAuMDA3NDczLCAwLjAwNzQ5LCAwLjAwNzQ5NSwgMC4wMDc0OTksIDAuMDA3NTAxLCAwLjAwNzUwMyIsIFwKLSAgICAgICAgICAiMC4wMDczNTEsIDAuMDA3NDcxLCAwLjAwNzQ4OCwgMC4wMDc0OTQsIDAuMDA3NDk3LCAwLjAwNzQ5OSwgMC4wMDc1MDEiLCBcCi0gICAgICAgICAgIjAuMDA3MzUzLCAwLjAwNzQ3MiwgMC4wMDc0ODksIDAuMDA3NDkzLCAwLjAwNzQ5OCwgMC4wMDc1LCAwLjAwNzUwMiIsIFwKLSAgICAgICAgICAiMC4wMDczNTUsIDAuMDA3NDc1LCAwLjAwNzQ5MSwgMC4wMDc0OTYsIDAuMDA3NSwgMC4wMDc1MDIsIDAuMDA3NTA0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDcxMTUsIDAuMDA3MjMzLCAwLjAwNzI0OSwgMC4wMDcyNTQsIDAuMDA3MjU5LCAwLjAwNzI2LCAwLjAwNzI2MiIsIFwKLSAgICAgICAgICAiMC4wMDcxMTEsIDAuMDA3MjI5LCAwLjAwNzI0NywgMC4wMDcyNTEsIDAuMDA3MjU1LCAwLjAwNzI1NywgMC4wMDcyNTkiLCBcCi0gICAgICAgICAgIjAuMDA3MTA3LCAwLjAwNzIyNSwgMC4wMDcyNDIsIDAuMDA3MjQ2LCAwLjAwNzI1MiwgMC4wMDcyNTMsIDAuMDA3MjUzIiwgXAotICAgICAgICAgICIwLjAwNzEsIDAuMDA3MjE5LCAwLjAwNzIzNiwgMC4wMDcyNDEsIDAuMDA3MjQ2LCAwLjAwNzI0OCwgMC4wMDcyNSIsIFwKLSAgICAgICAgICAiMC4wMDcxLCAwLjAwNzIxOCwgMC4wMDcyMzYsIDAuMDA3MjM5LCAwLjAwNzI0NiwgMC4wMDcyNDYsIDAuMDA3MjUiLCBcCi0gICAgICAgICAgIjAuMDA3MDkzLCAwLjAwNzIxMiwgMC4wMDcyMjksIDAuMDA3MjM0LCAwLjAwNzIzOSwgMC4wMDcyNDEsIDAuMDA3MjQyIiwgXAotICAgICAgICAgICIwLjAwNzA5NSwgMC4wMDcyMTIsIDAuMDA3MjMxLCAwLjAwNzIzNCwgMC4wMDcyMzgsIDAuMDA3MjQsIDAuMDA3MjQyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUk4iOwotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA3NjMxLCAwLjAwNzc0OSwgMC4wMDc3NjgsIDAuMDA3NzczLCAwLjAwNzc3NywgMC4wMDc3NzksIDAuMDA3NzgxIiwgXAotICAgICAgICAgICIwLjAwNzYyNywgMC4wMDc3NDUsIDAuMDA3NzYzLCAwLjAwNzc2OCwgMC4wMDc3NzIsIDAuMDA3Nzc0LCAwLjAwNzc3NiIsIFwKLSAgICAgICAgICAiMC4wMDc2MjIsIDAuMDA3NzQsIDAuMDA3NzYsIDAuMDA3NzY0LCAwLjAwNzc2OCwgMC4wMDc3NzMsIDAuMDA3NzcyIiwgXAotICAgICAgICAgICIwLjAwNzYxOSwgMC4wMDc3MzcsIDAuMDA3NzU1LCAwLjAwNzc2LCAwLjAwNzc2NSwgMC4wMDc3NjcsIDAuMDA3NzY5IiwgXAotICAgICAgICAgICIwLjAwNzYxNiwgMC4wMDc3MzUsIDAuMDA3NzUyLCAwLjAwNzc1OCwgMC4wMDc3NjIsIDAuMDA3NzY0LCAwLjAwNzc2NiIsIFwKLSAgICAgICAgICAiMC4wMDc2MTQsIDAuMDA3NzMzLCAwLjAwNzc1MSwgMC4wMDc3NTYsIDAuMDA3NzYsIDAuMDA3NzYyLCAwLjAwNzc2NCIsIFwKLSAgICAgICAgICAiMC4wMDc2MTMsIDAuMDA3NzMxLCAwLjAwNzc0OSwgMC4wMDc3NTQsIDAuMDA3NzU5LCAwLjAwNzc2MSwgMC4wMDc3NjMiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfcG93ZXIoc2NhbGFyKSB7Ci0gICAgICAgIHZhbHVlcygiMCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNzMxMywgMC4wMDc0MjcsIDAuMDA3NDQxLCAwLjAwNzQ0NCwgMC4wMDc0NDcsIDAuMDA3NDU1LCAwLjAwNzQ1IiwgXAotICAgICAgICAgICIwLjAwNzMwNywgMC4wMDc0MjEsIDAuMDA3NDM1LCAwLjAwNzQzOCwgMC4wMDc0NDcsIDAuMDA3NDQzLCAwLjAwNzQ0NCIsIFwKLSAgICAgICAgICAiMC4wMDczMDMsIDAuMDA3NDE4LCAwLjAwNzQzMSwgMC4wMDc0MzcsIDAuMDA3NDM4LCAwLjAwNzQ0MiwgMC4wMDc0NDIiLCBcCi0gICAgICAgICAgIjAuMDA3MzAxLCAwLjAwNzQxNSwgMC4wMDc0MjgsIDAuMDA3NDMyLCAwLjAwNzQzNSwgMC4wMDc0NDMsIDAuMDA3NDM4IiwgXAotICAgICAgICAgICIwLjAwNzI5OCwgMC4wMDc0MTMsIDAuMDA3NDI2LCAwLjAwNzQzLCAwLjAwNzQzMywgMC4wMDc0MzQsIDAuMDA3NDM1IiwgXAotICAgICAgICAgICIwLjAwNzI5NiwgMC4wMDc0MSwgMC4wMDc0MjMsIDAuMDA3NDI3LCAwLjAwNzQzLCAwLjAwNzQzMiwgMC4wMDc0MzMiLCBcCi0gICAgICAgICAgIjAuMDA3MjkzLCAwLjAwNzQwNywgMC4wMDc0MiwgMC4wMDc0MjQsIDAuMDA3NDI3LCAwLjAwNzQyOSwgMC4wMDc0MyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2NTMzLCAwLjAwNjY1MSwgMC4wMDY2NjksIDAuMDA2Njc1LCAwLjAwNjY3OSwgMC4wMDY2ODEsIDAuMDA2NjgzIiwgXAotICAgICAgICAgICIwLjAwNjUyNiwgMC4wMDY2NDQsIDAuMDA2NjYyLCAwLjAwNjY2OCwgMC4wMDY2NzIsIDAuMDA2Njc0LCAwLjAwNjY3NiIsIFwKLSAgICAgICAgICAiMC4wMDY1MjIsIDAuMDA2NjQsIDAuMDA2NjU5LCAwLjAwNjY2NCwgMC4wMDY2NjgsIDAuMDA2NjcsIDAuMDA2NjcyIiwgXAotICAgICAgICAgICIwLjAwNjUxOSwgMC4wMDY2MzcsIDAuMDA2NjU2LCAwLjAwNjY2MSwgMC4wMDY2NjUsIDAuMDA2NjY3LCAwLjAwNjY2OSIsIFwKLSAgICAgICAgICAiMC4wMDY1MTYsIDAuMDA2NjM0LCAwLjAwNjY1MywgMC4wMDY2NTcsIDAuMDA2NjYyLCAwLjAwNjY2NCwgMC4wMDY2NjYiLCBcCi0gICAgICAgICAgIjAuMDA2NTEzLCAwLjAwNjYzMiwgMC4wMDY2NDksIDAuMDA2NjU0LCAwLjAwNjY1OSwgMC4wMDY2NjIsIDAuMDA2NjYzIiwgXAotICAgICAgICAgICIwLjAwNjUxMSwgMC4wMDY2MjksIDAuMDA2NjQ3LCAwLjAwNjY1MiwgMC4wMDY2NTcsIDAuMDA2NjU5LCAwLjAwNjY2MSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUU4pICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC41MjUxNTc7Ci0gICAgZnVuY3Rpb24gOiAiUUJJTlQiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBub25fdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGZhbGxpbmdfZWRnZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zNTA4NjIsIDAuNDc3NjY1LCAwLjYwNDUwNywgMC42OTUxMzksIDAuODQwMTkxLCAwLjk2NzEzNywgMS4xNDg1MSIsIFwKLSAgICAgICAgICAiMC4zNjI0OTUsIDAuNDg5MzIzLCAwLjYxNjE3NCwgMC43MDY3OTMsIDAuODUxODQ2LCAwLjk3ODc4OCwgMS4xNjAxNiIsIFwKLSAgICAgICAgICAiMC4zNzcxMDEsIDAuNTAzOTI1LCAwLjYzMDc2MywgMC43MjEzOTgsIDAuODY2NDU2LCAwLjk5MzM4OCwgMS4xNzQ4MyIsIFwKLSAgICAgICAgICAiMC4zOTE3MzMsIDAuNTE4NTM4LCAwLjY0NTM5LCAwLjczNjAwOSwgMC44ODEwNjIsIDEuMDA4LCAxLjE4OTM3IiwgXAotICAgICAgICAgICIwLjQwNjc2NSwgMC41MzM2MDgsIDAuNjYwNDYsIDAuNzUxMDY0LCAwLjg5NjExOSwgMS4wMjMwNiwgMS4yMDQ0MiIsIFwKLSAgICAgICAgICAiMC40Mjk4NDMsIDAuNTU2NjUsIDAuNjgzNTAxLCAwLjc3NDExOSwgMC45MTkxNzMsIDEuMDQ2MTEsIDEuMjI3NDgiLCBcCi0gICAgICAgICAgIjAuNDQ5NzYzLCAwLjU3NjU5NiwgMC43MDM0MzksIDAuNzk0MDYzLCAwLjkzOTEyMSwgMS4wNjYwNSwgMS4yNDc0NSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1Nzk2MSwgMC4zMDk1ODcsIDAuNTY3MzQ0LCAwLjc1MDg0MSwgMS4wNDU5OCwgMS4zMDQyMywgMS42NzYwNCIsIFwKLSAgICAgICAgICAiMC4wNTc5NDMsIDAuMzA5NTI0LCAwLjU2NzIzNywgMC43NTA4NTgsIDEuMDQ2MDQsIDEuMzA0MjYsIDEuNjcyOTIiLCBcCi0gICAgICAgICAgIjAuMDU3OTM3LCAwLjMwOTYxLCAwLjU2NzA1MSwgMC43NTA4MzEsIDEuMDQ1OTIsIDEuMzA0MDgsIDEuNjc2MiIsIFwKLSAgICAgICAgICAiMC4wNTc5NjksIDAuMzA5NTIxLCAwLjU2NzI0NywgMC43NTA4NTYsIDEuMDQ2MDQsIDEuMzA0MjUsIDEuNjcyOSIsIFwKLSAgICAgICAgICAiMC4wNTc5NCwgMC4zMDk2NDMsIDAuNTY3MjAxLCAwLjc1MDg2MywgMS4wNDU5OCwgMS4zMDQxOSwgMS42NzQ2MyIsIFwKLSAgICAgICAgICAiMC4wNTc5NzEsIDAuMzA5NTIzLCAwLjU2NzI0NCwgMC43NTA4NjgsIDEuMDQ2MDQsIDEuMzA0MjQsIDEuNjcyODkiLCBcCi0gICAgICAgICAgIjAuMDU3OTM5LCAwLjMwOTU0MywgMC41NjY3NDYsIDAuNzUwODQ3LCAxLjA0NTkyLCAxLjMwNDE0LCAxLjY3NTk2Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzgxNTcxLCAwLjUyNzIwOCwgMC42NzMzMTQsIDAuNzc3NzI5LCAwLjk0NDg0MSwgMS4wOTEwNywgMS4zMDAwMSIsIFwKLSAgICAgICAgICAiMC4zOTI5ODEsIDAuNTM4NjY2LCAwLjY4NDc2MiwgMC43ODkxNzcsIDAuOTU2MjY3LCAxLjEwMjQ5LCAxLjMxMTUiLCBcCi0gICAgICAgICAgIjAuNDA3ODY5LCAwLjU1MzU2MiwgMC42OTk2ODMsIDAuODA0MDgsIDAuOTcxMTYsIDEuMTE3MzksIDEuMzI2MzUiLCBcCi0gICAgICAgICAgIjAuNDIyNTI5LCAwLjU2ODE4OSwgMC43MTQyOTksIDAuODE4NzAyLCAwLjk4NTc4OSwgMS4xMzIsIDEuMzQxMDEiLCBcCi0gICAgICAgICAgIjAuNDM3NDY4LCAwLjU4MzEzMywgMC43MjkyMywgMC44MzM2NTEsIDEuMDAwNzQsIDEuMTQ3MDEsIDEuMzU1OTUiLCBcCi0gICAgICAgICAgIjAuNDYxMDg0LCAwLjYwNjc3NywgMC43NTI5MTUsIDAuODU3MjksIDEuMDI0MzgsIDEuMTcwNjIsIDEuMzc5NTciLCBcCi0gICAgICAgICAgIjAuNDgxMTY2LCAwLjYyNjg1OSwgMC43NzI5OTQsIDAuODc3MzcxLCAxLjA0NDQ2LCAxLjE5MDY5LCAxLjM5OTY2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDYxODQ3LCAwLjM0NzA0MSwgMC42MzczNzgsIDAuODQ0NzA5LCAxLjE3NzUyLCAxLjQ2Nzc4LCAxLjg4MzQxIiwgXAotICAgICAgICAgICIwLjA2MTg1MSwgMC4zNDcwNDIsIDAuNjM3NDQyLCAwLjg0NDk3MSwgMS4xNzY2OCwgMS40NjgzNywgMS44ODI3OCIsIFwKLSAgICAgICAgICAiMC4wNjE4MjksIDAuMzQ2OTg1LCAwLjYzNjg2MSwgMC44NDUxNzUsIDEuMTc2NzMsIDEuNDY3NzQsIDEuODgzNDEiLCBcCi0gICAgICAgICAgIjAuMDYxODM3LCAwLjM0NzA0LCAwLjYzNzEyMSwgMC44NDQ4MjgsIDEuMTc2NjQsIDEuNDY4MzcsIDEuODgyODciLCBcCi0gICAgICAgICAgIjAuMDYxODIzLCAwLjM0NzA0LCAwLjYzNzQ0NywgMC44NDUxNzEsIDEuMTc3NDksIDEuNDY4ODgsIDEuODgyOTkiLCBcCi0gICAgICAgICAgIjAuMDYxODMsIDAuMzQ3MTYsIDAuNjM3NDY5LCAwLjg0NTE3NywgMS4xNzY4NCwgMS40NjgzOSwgMS44ODM0MSIsIFwKLSAgICAgICAgICAiMC4wNjE4MjcsIDAuMzQ3MjMxLCAwLjYzNzQ3MSwgMC44NDUxNzIsIDEuMTc3MTcsIDEuNDY4MzksIDEuODgzMDYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUk4iOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHByZXNldDsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC40NzEyOCwgMC41OTgxODksIDAuNzI1MDA2LCAwLjgxNTY0NywgMC45NjA3MTUsIDEuMDg3NzcsIDEuMjY5MTkiLCBcCi0gICAgICAgICAgIjAuNDgyNzI4LCAwLjYwOTU5NSwgMC43MzY0MTMsIDAuODI3MDUzLCAwLjk3MjEyMSwgMS4wOTkxOCwgMS4yODA2IiwgXAotICAgICAgICAgICIwLjQ5NzYzOSwgMC42MjQ0MjcsIDAuNzUxMTk0LCAwLjg0MTg4OCwgMC45ODY5NiwgMS4xMTM5MywgMS4yOTU0NSIsIFwKLSAgICAgICAgICAiMC41MTI0MDQsIDAuNjM5MjkzLCAwLjc2NjExMSwgMC44NTY3NDgsIDEuMDAxODIsIDEuMTI4ODEsIDEuMzEwMyIsIFwKLSAgICAgICAgICAiMC41MjYzOTYsIDAuNjUzMjg1LCAwLjc4MDEwMywgMC44NzA3NCwgMS4wMTU4MSwgMS4xNDI4NywgMS4zMjQyOSIsIFwKLSAgICAgICAgICAiMC41NDkwNDMsIDAuNjc1ODM5LCAwLjgwMjY1OSwgMC44OTMyOTUsIDEuMDM4MzYsIDEuMTY1MzUsIDEuMzQ2ODUiLCBcCi0gICAgICAgICAgIjAuNTY2NDcxLCAwLjY5MzM1NywgMC44MjAxNzUsIDAuOTEwODE1LCAxLjA1NTg4LCAxLjE4Mjk0LCAxLjM2NDM2Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU4MDQ2LCAwLjMwOTczMSwgMC41Njc2NjgsIDAuNzUyMDc4LCAxLjA0NzU3LCAxLjMwMzQ4LCAxLjY3NjQyIiwgXAotICAgICAgICAgICIwLjA1ODA2NywgMC4zMDk3MzEsIDAuNTY3NjY3LCAwLjc1MjE3MywgMS4wNDc4NCwgMS4zMDQzMiwgMS42NzY0OCIsIFwKLSAgICAgICAgICAiMC4wNTgwNzgsIDAuMzA5NTM1LCAwLjU2NzYxMywgMC43NTIwNDEsIDEuMDQ1OTgsIDEuMzAzNTcsIDEuNjc2NDgiLCBcCi0gICAgICAgICAgIjAuMDU4MDc3LCAwLjMwOTcyOCwgMC41Njc2NjksIDAuNzUyMTY5LCAxLjA0NzgxLCAxLjMwNDM2LCAxLjY3NjQ2IiwgXAotICAgICAgICAgICIwLjA1ODAyMywgMC4zMDk3MjQsIDAuNTY3NjY0LCAwLjc1MjA4OCwgMS4wNDc3NywgMS4zMDM1MywgMS42NzY0NyIsIFwKLSAgICAgICAgICAiMC4wNTgwNjQsIDAuMzA5NzI5LCAwLjU2NzY2OCwgMC43NTIwNzQsIDEuMDQ1OTksIDEuMzAzNjIsIDEuNjc2NTIiLCBcCi0gICAgICAgICAgIjAuMDU4MDExLCAwLjMwOTczMSwgMC41Njc2NjQsIDAuNzUyMDQxLCAxLjA0NjEzLCAxLjMwMzEsIDEuNjc2NTIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiU04iOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGNsZWFyOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjQ0MjE3LCAwLjU2OTA0MywgMC42OTU4NiwgMC43ODY1MDEsIDAuOTMxNTY5LCAxLjA1ODYyLCAxLjI0MDA0IiwgXAotICAgICAgICAgICIwLjQ1NDIzMiwgMC41ODEwMjgsIDAuNzA3ODQ3LCAwLjc5ODQ4NCwgMC45NDM1NTMsIDEuMDcwNTQsIDEuMjUyMDQiLCBcCi0gICAgICAgICAgIjAuNDY5MjQ2LCAwLjU5NjEyNSwgMC43MjI5NDMsIDAuODEzNTgyLCAwLjk1ODY1LCAxLjA4NTcsIDEuMjY3MTMiLCBcCi0gICAgICAgICAgIjAuNDgzNzkyLCAwLjYxMDY3MywgMC43Mzc0OSwgMC44MjgxMywgMC45NzMxOTYsIDEuMTAwMjUsIDEuMjgxNjciLCBcCi0gICAgICAgICAgIjAuNDk3NzkxLCAwLjYyNDY5MywgMC43NTE1MTEsIDAuODQyMTUsIDAuOTg3MjE3LCAxLjExNDI3LCAxLjI5NTciLCBcCi0gICAgICAgICAgIjAuNTIwMDI1LCAwLjY0NjkxNiwgMC43NzM3MzUsIDAuODY0MzczLCAxLjAwOTQ0LCAxLjEzNjQ5LCAxLjMxNzkyIiwgXAotICAgICAgICAgICIwLjUzOTEwOCwgMC42NjU5NzQsIDAuNzkyNzkzLCAwLjg4MzQzMSwgMS4wMjg1LCAxLjE1NTU1LCAxLjMzNjk4Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU4MDEzLCAwLjMwOTczMywgMC41Njc2NjUsIDAuNzUyMjIzLCAxLjA0NjE5LCAxLjMwNjcsIDEuNjc2NDMiLCBcCi0gICAgICAgICAgIjAuMDU4MDY4LCAwLjMwOTczMSwgMC41Njc2NzMsIDAuNzUyMDQyLCAxLjA0NjA0LCAxLjMwMzYyLCAxLjY3NjQxIiwgXAotICAgICAgICAgICIwLjA1ODAwNywgMC4zMDk3MzEsIDAuNTY3NjU5LCAwLjc1MjAzNiwgMS4wNDc1OSwgMS4zMDMwOSwgMS42NzY0IiwgXAotICAgICAgICAgICIwLjA1ODA1LCAwLjMwOTcyOCwgMC41Njc2NTgsIDAuNzUyMDQsIDEuMDQ2MTEsIDEuMzAzNTQsIDEuNjc2MzciLCBcCi0gICAgICAgICAgIjAuMDU4MDA3LCAwLjMwOTczLCAwLjU2NzY2MiwgMC43NTIxODgsIDEuMDQ2MTUsIDEuMzAzNTgsIDEuNjc2MjciLCBcCi0gICAgICAgICAgIjAuMDU4MDAzLCAwLjMwOTUwNSwgMC41Njc2NjEsIDAuNzUyMDMsIDEuMDQ2MTIsIDEuMzAzMDksIDEuNjc2NDIiLCBcCi0gICAgICAgICAgIjAuMDU4MDYxLCAwLjMwOTczMSwgMC41Njc2NTMsIDAuNzUyMDIsIDEuMDQ2MDgsIDEuMzAzMDksIDEuNjc2NCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI5NzM4MiwgMC40NDMyNzQsIDAuNTg5MzMsIDAuNjkzNzI3LCAwLjg2MDk0LCAxLjAwNzE5LCAxLjIxNjA3IiwgXAotICAgICAgICAgICIwLjMwODc5MiwgMC40NTQ3NDIsIDAuNjAwODkzLCAwLjcwNTM5OCwgMC44NzI0NCwgMS4wMTg2OCwgMS4yMjc1NiIsIFwKLSAgICAgICAgICAiMC4zMjMxMzYsIDAuNDY5MDI0LCAwLjYxNTA4MiwgMC43MTk0NjcsIDAuODg2NzIsIDEuMDMyOTIsIDEuMjQxODIiLCBcCi0gICAgICAgICAgIjAuMzM4Mjg0LCAwLjQ4NDE4NywgMC42MzAzMTEsIDAuNzM0NjI3LCAwLjkwMTg4OCwgMS4wNDgxMiwgMS4yNTY5OCIsIFwKLSAgICAgICAgICAiMC4zNTI2MTMsIDAuNDk4NTA4LCAwLjY0NDU2NiwgMC43NDg5NDksIDAuOTE2MjA1LCAxLjA2MjQyLCAxLjI3MTMiLCBcCi0gICAgICAgICAgIjAuMzc2MDM4LCAwLjUyMTk1NiwgMC42Njc5OTQsIDAuNzcyNiwgMC45Mzk2MzIsIDEuMDg1ODYsIDEuMjk0NzgiLCBcCi0gICAgICAgICAgIjAuMzk1OTYzLCAwLjU0MTkwNSwgMC42ODgwNjMsIDAuNzkyNTU4LCAwLjk1OTYwMSwgMS4xMDU4NCwgMS4zMTQ4MyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2MTc1NiwgMC4zNDcwMzQsIDAuNjM3NTk4LCAwLjg0NTE0NSwgMS4xNzc1OCwgMS40Njg1MywgMS44ODQwNyIsIFwKLSAgICAgICAgICAiMC4wNjE3MDEsIDAuMzQ3MDk5LCAwLjYzNzQwNiwgMC44NDUwNjksIDEuMTc3NiwgMS40Njg1MSwgMS44ODQxMSIsIFwKLSAgICAgICAgICAiMC4wNjE3NDMsIDAuMzQ3Mjc4LCAwLjYzNzQxMiwgMC44NDUxMywgMS4xNzc1NiwgMS40Njg1MywgMS44ODQwNyIsIFwKLSAgICAgICAgICAiMC4wNjE3NjMsIDAuMzQ3MDUyLCAwLjYzNzQ3OSwgMC44NDUzNjcsIDEuMTc3OTMsIDEuNDY4NDUsIDEuODg0MDgiLCBcCi0gICAgICAgICAgIjAuMDYxNzY2LCAwLjM0NzIsIDAuNjM3NjA3LCAwLjg0NTM2NywgMS4xNzc5MiwgMS40Njg0NSwgMS44ODQwOCIsIFwKLSAgICAgICAgICAiMC4wNjE3MzIsIDAuMzQ3MTAzLCAwLjYzNzQ2NSwgMC44NDUxMjksIDEuMTc3OTEsIDEuNDY4NDcsIDEuODg0MTIiLCBcCi0gICAgICAgICAgIjAuMDYxNzMsIDAuMzQ3MzA5LCAwLjYzNzQ4LCAwLjg0NTAzOSwgMS4xNzc5LCAxLjQ2ODUyLCAxLjg4NDA5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0tOIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNzExNSwgMC4wMDcyMzMsIDAuMDA3MjQ5LCAwLjAwNzI1NCwgMC4wMDcyNTksIDAuMDA3MjYsIDAuMDA3MjYyIiwgXAotICAgICAgICAgICIwLjAwNzExMSwgMC4wMDcyMjksIDAuMDA3MjQ3LCAwLjAwNzI1MSwgMC4wMDcyNTUsIDAuMDA3MjU3LCAwLjAwNzI1OSIsIFwKLSAgICAgICAgICAiMC4wMDcxMDcsIDAuMDA3MjI1LCAwLjAwNzI0MiwgMC4wMDcyNDYsIDAuMDA3MjUyLCAwLjAwNzI1MywgMC4wMDcyNTMiLCBcCi0gICAgICAgICAgIjAuMDA3MSwgMC4wMDcyMTksIDAuMDA3MjM2LCAwLjAwNzI0MSwgMC4wMDcyNDYsIDAuMDA3MjQ4LCAwLjAwNzI1IiwgXAotICAgICAgICAgICIwLjAwNzEsIDAuMDA3MjE4LCAwLjAwNzIzNiwgMC4wMDcyMzksIDAuMDA3MjQ2LCAwLjAwNzI0NiwgMC4wMDcyNSIsIFwKLSAgICAgICAgICAiMC4wMDcwOTMsIDAuMDA3MjEyLCAwLjAwNzIyOSwgMC4wMDcyMzQsIDAuMDA3MjM5LCAwLjAwNzI0MSwgMC4wMDcyNDIiLCBcCi0gICAgICAgICAgIjAuMDA3MDk1LCAwLjAwNzIxMiwgMC4wMDcyMzEsIDAuMDA3MjM0LCAwLjAwNzIzOCwgMC4wMDcyNCwgMC4wMDcyNDIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNzM2NSwgMC4wMDc0ODYsIDAuMDA3NTAyLCAwLjAwNzUwNywgMC4wMDc1MTEsIDAuMDA3NTEzLCAwLjAwNzUxNSIsIFwKLSAgICAgICAgICAiMC4wMDczNjIsIDAuMDA3NDgyLCAwLjAwNzQ5OSwgMC4wMDc1MDQsIDAuMDA3NTA4LCAwLjAwNzUxLCAwLjAwNzUxMiIsIFwKLSAgICAgICAgICAiMC4wMDczNTgsIDAuMDA3NDc4LCAwLjAwNzQ5NSwgMC4wMDc0OTksIDAuMDA3NTAzLCAwLjAwNzUwNSwgMC4wMDc1MDciLCBcCi0gICAgICAgICAgIjAuMDA3MzUzLCAwLjAwNzQ3MywgMC4wMDc0OSwgMC4wMDc0OTUsIDAuMDA3NDk5LCAwLjAwNzUwMSwgMC4wMDc1MDMiLCBcCi0gICAgICAgICAgIjAuMDA3MzUxLCAwLjAwNzQ3MSwgMC4wMDc0ODgsIDAuMDA3NDk0LCAwLjAwNzQ5NywgMC4wMDc0OTksIDAuMDA3NTAxIiwgXAotICAgICAgICAgICIwLjAwNzM1MywgMC4wMDc0NzIsIDAuMDA3NDg5LCAwLjAwNzQ5MywgMC4wMDc0OTgsIDAuMDA3NSwgMC4wMDc1MDIiLCBcCi0gICAgICAgICAgIjAuMDA3MzU1LCAwLjAwNzQ3NSwgMC4wMDc0OTEsIDAuMDA3NDk2LCAwLjAwNzUsIDAuMDA3NTAyLCAwLjAwNzUwNCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNzYzMSwgMC4wMDc3NDksIDAuMDA3NzY4LCAwLjAwNzc3MywgMC4wMDc3NzcsIDAuMDA3Nzc5LCAwLjAwNzc4MSIsIFwKLSAgICAgICAgICAiMC4wMDc2MjcsIDAuMDA3NzQ1LCAwLjAwNzc2MywgMC4wMDc3NjgsIDAuMDA3NzcyLCAwLjAwNzc3NCwgMC4wMDc3NzYiLCBcCi0gICAgICAgICAgIjAuMDA3NjIyLCAwLjAwNzc0LCAwLjAwNzc2LCAwLjAwNzc2NCwgMC4wMDc3NjgsIDAuMDA3NzczLCAwLjAwNzc3MiIsIFwKLSAgICAgICAgICAiMC4wMDc2MTksIDAuMDA3NzM3LCAwLjAwNzc1NSwgMC4wMDc3NiwgMC4wMDc3NjUsIDAuMDA3NzY3LCAwLjAwNzc2OSIsIFwKLSAgICAgICAgICAiMC4wMDc2MTYsIDAuMDA3NzM1LCAwLjAwNzc1MiwgMC4wMDc3NTgsIDAuMDA3NzYyLCAwLjAwNzc2NCwgMC4wMDc3NjYiLCBcCi0gICAgICAgICAgIjAuMDA3NjE0LCAwLjAwNzczMywgMC4wMDc3NTEsIDAuMDA3NzU2LCAwLjAwNzc2LCAwLjAwNzc2MiwgMC4wMDc3NjQiLCBcCi0gICAgICAgICAgIjAuMDA3NjEzLCAwLjAwNzczMSwgMC4wMDc3NDksIDAuMDA3NzU0LCAwLjAwNzc1OSwgMC4wMDc3NjEsIDAuMDA3NzYzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHNjYWxhcikgewotICAgICAgICB2YWx1ZXMoIjAiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDY1MzMsIDAuMDA2NjUxLCAwLjAwNjY2OSwgMC4wMDY2NzUsIDAuMDA2Njc5LCAwLjAwNjY4MSwgMC4wMDY2ODMiLCBcCi0gICAgICAgICAgIjAuMDA2NTI2LCAwLjAwNjY0NCwgMC4wMDY2NjIsIDAuMDA2NjY4LCAwLjAwNjY3MiwgMC4wMDY2NzQsIDAuMDA2Njc2IiwgXAotICAgICAgICAgICIwLjAwNjUyMiwgMC4wMDY2NCwgMC4wMDY2NTksIDAuMDA2NjY0LCAwLjAwNjY2OCwgMC4wMDY2NywgMC4wMDY2NzIiLCBcCi0gICAgICAgICAgIjAuMDA2NTE5LCAwLjAwNjYzNywgMC4wMDY2NTYsIDAuMDA2NjYxLCAwLjAwNjY2NSwgMC4wMDY2NjcsIDAuMDA2NjY5IiwgXAotICAgICAgICAgICIwLjAwNjUxNiwgMC4wMDY2MzQsIDAuMDA2NjUzLCAwLjAwNjY1NywgMC4wMDY2NjIsIDAuMDA2NjY0LCAwLjAwNjY2NiIsIFwKLSAgICAgICAgICAiMC4wMDY1MTMsIDAuMDA2NjMyLCAwLjAwNjY0OSwgMC4wMDY2NTQsIDAuMDA2NjU5LCAwLjAwNjY2MiwgMC4wMDY2NjMiLCBcCi0gICAgICAgICAgIjAuMDA2NTExLCAwLjAwNjYyOSwgMC4wMDY2NDcsIDAuMDA2NjUyLCAwLjAwNjY1NywgMC4wMDY2NTksIDAuMDA2NjYxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDczMTMsIDAuMDA3NDI3LCAwLjAwNzQ0MSwgMC4wMDc0NDQsIDAuMDA3NDQ3LCAwLjAwNzQ1NSwgMC4wMDc0NSIsIFwKLSAgICAgICAgICAiMC4wMDczMDcsIDAuMDA3NDIxLCAwLjAwNzQzNSwgMC4wMDc0MzgsIDAuMDA3NDQ3LCAwLjAwNzQ0MywgMC4wMDc0NDQiLCBcCi0gICAgICAgICAgIjAuMDA3MzAzLCAwLjAwNzQxOCwgMC4wMDc0MzEsIDAuMDA3NDM3LCAwLjAwNzQzOCwgMC4wMDc0NDIsIDAuMDA3NDQyIiwgXAotICAgICAgICAgICIwLjAwNzMwMSwgMC4wMDc0MTUsIDAuMDA3NDI4LCAwLjAwNzQzMiwgMC4wMDc0MzUsIDAuMDA3NDQzLCAwLjAwNzQzOCIsIFwKLSAgICAgICAgICAiMC4wMDcyOTgsIDAuMDA3NDEzLCAwLjAwNzQyNiwgMC4wMDc0MywgMC4wMDc0MzMsIDAuMDA3NDM0LCAwLjAwNzQzNSIsIFwKLSAgICAgICAgICAiMC4wMDcyOTYsIDAuMDA3NDEsIDAuMDA3NDIzLCAwLjAwNzQyNywgMC4wMDc0MywgMC4wMDc0MzIsIDAuMDA3NDMzIiwgXAotICAgICAgICAgICIwLjAwNzI5MywgMC4wMDc0MDcsIDAuMDA3NDIsIDAuMDA3NDI0LCAwLjAwNzQyNywgMC4wMDc0MjksIDAuMDA3NDMiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFJOKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA1Njg3MDg7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNTY4Mzg5OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDU2ODcwODsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA1NDcsIDAuMDAwNTM0LCAwLjAwMDUyMywgMC4wMDA1MTksIDAuMDAwNTE1LCAwLjAwMDUxMywgMC4wMDA1MTIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDE5NjQsIDAuMDAxOTU1LCAwLjAwMTk0OSwgMC4wMDE5NDUsIDAuMDAxOTQzLCAwLjAwMTk0MiwgMC4wMDE5NCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQmIVNFJiFTSSZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fU0VfRVFfMF9BTl9TSV9FUV8wX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC40NzEyOCwgMC40ODI3MjgsIDAuNDk3NjM5LCAwLjUxMjQwNCwgMC41MjYzOTYsIDAuNTQ5MDQzLCAwLjU2NjQ3MSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDS04iOwotICAgICAgdGltaW5nX3R5cGUgOiByZWNvdmVyeV9mYWxsaW5nOwotICAgICAgd2hlbiA6ICJTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJTTiA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChyZWNvdmVyeV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTM3NSwgMC4wODI1LCAwLjA2Mzc1LCAwLjA1MTI1LCAwLjAzMjUsIDAuMDEsIC0wLjAxNzUiLCBcCi0gICAgICAgICAgIjAuMTA1LCAwLjA5Mzc1LCAwLjA3NSwgMC4wNjI1LCAwLjA0Mzc1LCAwLjAyMTI1LCAwIiwgXAotICAgICAgICAgICIwLjExNzUsIDAuMTA2MjUsIDAuMDkzNzUsIDAuMDc1LCAwLjA2MjUsIDAuMDMzNzUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4xMzYyNSwgMC4xMjUsIDAuMTA2MjUsIDAuMDkzNzUsIDAuMDc1LCAwLjA1MjUsIDAuMDI1IiwgXAotICAgICAgICAgICIwLjE0ODc1LCAwLjEzNzUsIDAuMTI1LCAwLjEwNjI1LCAwLjA4NzUsIDAuMDY1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjE3NzUsIDAuMTYsIDAuMTQ3NSwgMC4xMjg3NSwgMC4xMTYyNSwgMC4wODc1LCAwLjA2NjI1IiwgXAotICAgICAgICAgICIwLjE5ODc1LCAwLjE4MTI1LCAwLjE2ODc1LCAwLjE1LCAwLjEzMTI1LCAwLjEwODc1LCAwLjA4NzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiU04iOwotICAgICAgdGltaW5nX3R5cGUgOiByZWNvdmVyeV9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEJiFTRSYhU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1NFX0VRXzBfQU5fU0lfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChyZWNvdmVyeV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMTI1LCAwLjIyMzc1LCAwLjIzNjI1LCAwLjI1NSwgMC4yNjc1LCAwLjI5LCAwLjMwNSIsIFwKLSAgICAgICAgICAiMC4yMDEyNSwgMC4yMTI1LCAwLjIyNSwgMC4yNDM3NSwgMC4yNTYyNSwgMC4yNzg3NSwgMC4yOTM3NSIsIFwKLSAgICAgICAgICAiMC4xODg3NSwgMC4yLCAwLjIxMjUsIDAuMjMxMjUsIDAuMjQzNzUsIDAuMjYsIDAuMjgxMjUiLCBcCi0gICAgICAgICAgIjAuMTc2MjUsIDAuMTg3NSwgMC4yLCAwLjIxODc1LCAwLjIzMTI1LCAwLjI1Mzc1LCAwLjI2ODc1IiwgXAotICAgICAgICAgICIwLjE2Mzc1LCAwLjE3NSwgMC4xOTM3NSwgMC4yMDYyNSwgMC4yMTg3NSwgMC4yNDEyNSwgMC4yNTYyNSIsIFwKLSAgICAgICAgICAiMC4xNDc1LCAwLjE1ODc1LCAwLjE3NzUsIDAuMTksIDAuMjAyNSwgMC4yMjUsIDAuMjQiLCBcCi0gICAgICAgICAgIjAuMTM4NzUsIDAuMTUsIDAuMTYyNSwgMC4xODEyNSwgMC4xOTM3NSwgMC4yMSwgMC4yMzEyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDS04iOwotICAgICAgdGltaW5nX3R5cGUgOiByZW1vdmFsX2ZhbGxpbmc7Ci0gICAgICB3aGVuIDogIlNOIjsKLSAgICAgIHNkZl9jb25kIDogIlNOID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHJlbW92YWxfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEyNSwgMC4wMjM3NSwgMC4wMzYyNSwgMC4wNDg3NSwgMC4wNjc1LCAwLjA5LCAwLjExMTI1IiwgXAotICAgICAgICAgICIwLjAwMTI1LCAwLjAxMjUsIDAuMDI1LCAwLjAzNzUsIDAuMDU2MjUsIDAuMDc4NzUsIDAuMSIsIFwKLSAgICAgICAgICAiLTAuMDE3NSwgLTAuMDA2MjUsIDAuMDEyNSwgMC4wMjUsIDAuMDM3NSwgMC4wNjYyNSwgMC4wODEyNSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAxODc1LCAtMC4wMDYyNSwgMC4wMTI1LCAwLjAyNSwgMC4wNDc1LCAwLjA2ODc1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDM3NSwgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLjAxMjUsIDAuMDM1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICItMC4wNzEyNSwgLTAuMDYsIC0wLjA0NzUsIC0wLjAyODc1LCAtMC4wMTYyNSwgMC4wMDYyNSwgMC4wMjc1IiwgXAotICAgICAgICAgICItMC4wOTI1LCAtMC4wODEyNSwgLTAuMDYyNSwgLTAuMDUsIC0wLjAzNzUsIC0wLjAwODc1LCAwLjAwNjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTRSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNDY4ODQ7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNDY4MzQ7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNDY4ODQ7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzOTI2LCAwLjAwMzkxNCwgMC4wMDM5MDgsIDAuMDAzOTA1LCAwLjAwMzkwNSwgMC4wMDM5MDIsIDAuMDAzOTAzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA0OTk4LCAwLjAwNDk4MSwgMC4wMDQ5NjksIDAuMDA0OTYyLCAwLjAwNDk1NiwgMC4wMDQ5NDksIDAuMDA0OTQ3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfZmFsbGluZzsKLSAgICAgIHdoZW4gOiAiUk4mU04iOwotICAgICAgc2RmX2NvbmQgOiAiUk5fRVFfMV9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAxMjUsIC0wLjAwMTI1LCAwLjAxMTI1LCAwLjAyMzc1LCAwLjAzNjI1LCAwLjA1MjUsIDAuMDczNzUiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTI1LCAwLCAwLjAxMjUsIDAuMDI1LCAwLjA0MTI1LCAwLjA2MjUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMzEyNSwgLTAuMDEyNSwgMCwgMC4wMTI1LCAwLjAyODc1LCAwLjA1IiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA0Mzc1LCAtMC4wMjUsIC0wLjAxMjUsIDAsIDAuMDE2MjUsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDY3NSwgLTAuMDU2MjUsIC0wLjA0Mzc1LCAtMC4wMjUsIC0wLjAxMjUsIDAuMDAzNzUsIDAuMDI1IiwgXAotICAgICAgICAgICItMC4wODM3NSwgLTAuMDcyNSwgLTAuMDYsIC0wLjA0NzUsIC0wLjAzNSwgLTAuMDEyNSwgMC4wMDI1IiwgXAotICAgICAgICAgICItMC4wOTg3NSwgLTAuMDg3NSwgLTAuMDc1LCAtMC4wNjI1LCAtMC4wNSwgLTAuMDMzNzUsIC0wLjAxODc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDQzNzUsIC0wLjAzMjUsIC0wLjAyLCAtMC4wMDc1LCAwLjAwNSwgMC4wMjc1LCAwLjA0MjUiLCBcCi0gICAgICAgICAgIi0wLjA1NSwgLTAuMDQzNzUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAuMDE2MjUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjA3Mzc1LCAtMC4wNTYyNSwgLTAuMDQzNzUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgLTAuMDAyNSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDg2MjUsIC0wLjA3NSwgLTAuMDYyNSwgLTAuMDUsIC0wLjAzNzUsIC0wLjAxNSwgMCIsIFwKLSAgICAgICAgICAiLTAuMDk4NzUsIC0wLjA4NzUsIC0wLjA3NSwgLTAuMDYyNSwgLTAuMDUsIC0wLjAyNzUsIC0wLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjExNSwgLTAuMTAzNzUsIC0wLjA5MTI1LCAtMC4wNzg3NSwgLTAuMDY2MjUsIC0wLjA0Mzc1LCAtMC4wMjg3NSIsIFwKLSAgICAgICAgICAiLTAuMTMsIC0wLjExODc1LCAtMC4xMDYyNSwgLTAuMDkzNzUsIC0wLjA4MTI1LCAtMC4wNTg3NSwgLTAuMDQzNzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0tOIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfZmFsbGluZzsKLSAgICAgIHdoZW4gOiAiUk4mU04iOwotICAgICAgc2RmX2NvbmQgOiAiUk5fRVFfMV9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMxODc1LCAwLjMwNzUsIDAuMjg4NzUsIDAuMjc2MjUsIDAuMjU3NSwgMC4yMzUsIDAuMjEzNzUiLCBcCi0gICAgICAgICAgIjAuMzM2MjUsIDAuMzE4NzUsIDAuMywgMC4yODc1LCAwLjI2ODc1LCAwLjI0NjI1LCAwLjIyNSIsIFwKLSAgICAgICAgICAiMC4zNDg3NSwgMC4zMzc1LCAwLjMxODc1LCAwLjMsIDAuMjg3NSwgMC4yNTg3NSwgMC4yMzc1IiwgXAotICAgICAgICAgICIwLjM2MTI1LCAwLjM1LCAwLjMzMTI1LCAwLjMxODc1LCAwLjMsIDAuMjc3NSwgMC4yNTYyNSIsIFwKLSAgICAgICAgICAiMC4zOCwgMC4zNjI1LCAwLjM0Mzc1LCAwLjMzMTI1LCAwLjMxMjUsIDAuMjksIDAuMjY4NzUiLCBcCi0gICAgICAgICAgIjAuMzk2MjUsIDAuMzg1LCAwLjM2NjI1LCAwLjM1Mzc1LCAwLjMzNSwgMC4zMTI1LCAwLjI5MTI1IiwgXAotICAgICAgICAgICIwLjQxNzUsIDAuNCwgMC4zODEyNSwgMC4zNjg3NSwgMC4zNSwgMC4zMjc1LCAwLjMwNjI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjg3NSwgMC4yNzYyNSwgMC4yNTc1LCAwLjIzODc1LCAwLjIyNjI1LCAwLjE5NzUsIDAuMTc2MjUiLCBcCi0gICAgICAgICAgIjAuMjk4NzUsIDAuMjg3NSwgMC4yNjg3NSwgMC4yNSwgMC4yMzc1LCAwLjIwODc1LCAwLjE4NzUiLCBcCi0gICAgICAgICAgIjAuMzExMjUsIDAuMywgMC4yODEyNSwgMC4yNjI1LCAwLjI1LCAwLjIyMTI1LCAwLjIwNjI1IiwgXAotICAgICAgICAgICIwLjMyMzc1LCAwLjMxMjUsIDAuMjkzNzUsIDAuMjc1LCAwLjI2MjUsIDAuMjMzNzUsIDAuMjE4NzUiLCBcCi0gICAgICAgICAgIjAuMzM2MjUsIDAuMzI1LCAwLjMwNjI1LCAwLjI5Mzc1LCAwLjI3NSwgMC4yNTI1LCAwLjIzMTI1IiwgXAotICAgICAgICAgICIwLjM1ODc1LCAwLjM0NzUsIDAuMzI4NzUsIDAuMzEsIDAuMjk3NSwgMC4yNjg3NSwgMC4yNDc1IiwgXAotICAgICAgICAgICIwLjM4LCAwLjM2MjUsIDAuMzUsIDAuMzMxMjUsIDAuMzEyNSwgMC4yOSwgMC4yNjg3NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oU0kpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYyMjUyNDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MjEwMzc7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjIyNTI0OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzA5MiwgMC4wMDMwODMsIDAuMDAzMDc4LCAwLjAwMzA3NSwgMC4wMDMwNzIsIDAuMDAzMDY5LCAwLjAwMzA2NyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNDE2MywgMC4wMDQxNTgsIDAuMDA0MTU3LCAwLjAwNDE1NSwgMC4wMDQxNTMsIDAuMDA0MTUsIDAuMDA0MTQ5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfZmFsbGluZzsKLSAgICAgIHdoZW4gOiAiUk4mU0UmU04iOwotICAgICAgc2RmX2NvbmQgOiAiUk5fRVFfMV9BTl9TRV9FUV8xX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDI1LCAtMC4wMTM3NSwgLTAuMDAxMjUsIDAuMDExMjUsIDAuMDIzNzUsIDAuMDQsIDAuMDYxMjUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMjUsIC0wLjAxMjUsIDAsIDAuMDEyNSwgMC4wMjg3NSwgMC4wNSIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAxMjUsIDAsIDAuMDE2MjUsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDY3NSwgLTAuMDU2MjUsIC0wLjA0Mzc1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIDAuMDAzNzUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjA4LCAtMC4wNjg3NSwgLTAuMDU2MjUsIC0wLjA0Mzc1LCAtMC4wMzEyNSwgLTAuMDA4NzUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjEwMjUsIC0wLjA5MTI1LCAtMC4wNzg3NSwgLTAuMDY2MjUsIC0wLjA0NzUsIC0wLjAzMTI1LCAtMC4wMTYyNSIsIFwKLSAgICAgICAgICAiLTAuMTE3NSwgLTAuMTA2MjUsIC0wLjA5Mzc1LCAtMC4wODEyNSwgLTAuMDY4NzUsIC0wLjA0NjI1LCAtMC4wMzEyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjExODc1LCAtMC4xMDc1LCAtMC4xMDEyNSwgLTAuMDg4NzUsIC0wLjA3NjI1LCAtMC4wNjYyNSwgLTAuMDUxMjUiLCBcCi0gICAgICAgICAgIi0wLjEzLCAtMC4xMTg3NSwgLTAuMTEyNSwgLTAuMSwgLTAuMDg3NSwgLTAuMDc3NSwgLTAuMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMTQyNSwgLTAuMTMxMjUsIC0wLjEyNSwgLTAuMTEyNSwgLTAuMSwgLTAuMDksIC0wLjA3NSIsIFwKLSAgICAgICAgICAiLTAuMTU1LCAtMC4xNDM3NSwgLTAuMTM3NSwgLTAuMTI1LCAtMC4xMTI1LCAtMC4xMDI1LCAtMC4wODc1IiwgXAotICAgICAgICAgICItMC4xNjc1LCAtMC4xNTYyNSwgLTAuMTUsIC0wLjEzNzUsIC0wLjEyNSwgLTAuMTE1LCAtMC4xIiwgXAotICAgICAgICAgICItMC4xODM3NSwgLTAuMTc4NzUsIC0wLjE2NjI1LCAtMC4xNTM3NSwgLTAuMTQ3NSwgLTAuMTMxMjUsIC0wLjEyMjUiLCBcCi0gICAgICAgICAgIi0wLjIwNSwgLTAuMTkzNzUsIC0wLjE4MTI1LCAtMC4xNzUsIC0wLjE2MjUsIC0wLjE1MjUsIC0wLjEzNzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0tOIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfZmFsbGluZzsKLSAgICAgIHdoZW4gOiAiUk4mU0UmU04iOwotICAgICAgc2RmX2NvbmQgOiAiUk5fRVFfMV9BTl9TRV9FUV8xX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjUsIDAuMjMyNSwgMC4yMiwgMC4yMDEyNSwgMC4xODg3NSwgMC4xNiwgMC4xMzg3NSIsIFwKLSAgICAgICAgICAiMC4yNjEyNSwgMC4yNDM3NSwgMC4yMzEyNSwgMC4yMTI1LCAwLjIsIDAuMTcxMjUsIDAuMTUiLCBcCi0gICAgICAgICAgIjAuMjczNzUsIDAuMjU2MjUsIDAuMjQzNzUsIDAuMjI1LCAwLjIxMjUsIDAuMTgzNzUsIDAuMTY4NzUiLCBcCi0gICAgICAgICAgIjAuMjg2MjUsIDAuMjc1LCAwLjI1NjI1LCAwLjI0Mzc1LCAwLjIyNSwgMC4yMDI1LCAwLjE4MTI1IiwgXAotICAgICAgICAgICIwLjI5ODc1LCAwLjI4NzUsIDAuMjY4NzUsIDAuMjU2MjUsIDAuMjM3NSwgMC4yMTUsIDAuMTkzNzUiLCBcCi0gICAgICAgICAgIjAuMzIxMjUsIDAuMzEsIDAuMjkxMjUsIDAuMjc4NzUsIDAuMjYsIDAuMjM3NSwgMC4yMTYyNSIsIFwKLSAgICAgICAgICAiMC4zNDI1LCAwLjMyNSwgMC4zMTI1LCAwLjI5Mzc1LCAwLjI4MTI1LCAwLjI1MjUsIDAuMjM3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMsIDAuMjg4NzUsIDAuMjcsIDAuMjUxMjUsIDAuMjM4NzUsIDAuMjE2MjUsIDAuMTg4NzUiLCBcCi0gICAgICAgICAgIjAuMzExMjUsIDAuMywgMC4yODEyNSwgMC4yNjI1LCAwLjI1LCAwLjIyMTI1LCAwLjIwNjI1IiwgXAotICAgICAgICAgICIwLjMyMzc1LCAwLjMxMjUsIDAuMjkzNzUsIDAuMjc1LCAwLjI2MjUsIDAuMjMzNzUsIDAuMjE4NzUiLCBcCi0gICAgICAgICAgIjAuMzM2MjUsIDAuMzI1LCAwLjMwNjI1LCAwLjI4NzUsIDAuMjc1LCAwLjI0NjI1LCAwLjIzMTI1IiwgXAotICAgICAgICAgICIwLjM0ODc1LCAwLjMzNzUsIDAuMzE4NzUsIDAuMywgMC4yODc1LCAwLjI1ODc1LCAwLjI0Mzc1IiwgXAotICAgICAgICAgICIwLjM3MTI1LCAwLjM1Mzc1LCAwLjM0MTI1LCAwLjMyMjUsIDAuMzAzNzUsIDAuMjgxMjUsIDAuMjYiLCBcCi0gICAgICAgICAgIjAuMzg2MjUsIDAuMzc1LCAwLjM1NjI1LCAwLjMzNzUsIDAuMzI1LCAwLjI5NjI1LCAwLjI3NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oU04pICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTM5NTk5OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTM5NTk5OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTM5NTQ0OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDMzMSwgMC4wMDAzMywgMC4wMDAzMzEsIDAuMDAwMzMsIDAuMDAwMzMsIDAuMDAwMzMsIDAuMDAwMzMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAzMzEsIDAuMDAwMzMxLCAwLjAwMDMzMSwgMC4wMDAzMzEsIDAuMDAwMzMyLCAwLjAwMDMzMSwgMC4wMDAzMzEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiU04iOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFEJiFSTiYhU0UmIVNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9STl9FUV8wX0FOX1NFX0VRXzBfQU5fU0lfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjI5NzM4MiwgMC4zMDg3OTIsIDAuMzIzMTM2LCAwLjMzODI4NCwgMC4zNTI2MTMsIDAuMzc2MDM3LCAwLjM5NTk2MyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDS04iOwotICAgICAgdGltaW5nX3R5cGUgOiByZWNvdmVyeV9mYWxsaW5nOwotICAgICAgd2hlbiA6ICJSTiI7Ci0gICAgICBzZGZfY29uZCA6ICJSTiA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChyZWNvdmVyeV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTg3NSwgMC4xMDc1LCAwLjA4ODc1LCAwLjA3NjI1LCAwLjA1NzUsIDAuMDM1LCAwLjAxMzc1IiwgXAotICAgICAgICAgICIwLjEzLCAwLjExODc1LCAwLjEsIDAuMDg3NSwgMC4wNjg3NSwgMC4wNDYyNSwgMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMTQ4NzUsIDAuMTMxMjUsIDAuMTE4NzUsIDAuMSwgMC4wODEyNSwgMC4wNTg3NSwgMC4wMzc1IiwgXAotICAgICAgICAgICIwLjE2MTI1LCAwLjE1LCAwLjEzMTI1LCAwLjExMjUsIDAuMSwgMC4wNzEyNSwgMC4wNSIsIFwKLSAgICAgICAgICAiMC4xNzM3NSwgMC4xNjI1LCAwLjE0Mzc1LCAwLjEzMTI1LCAwLjExMjUsIDAuMDksIDAuMDY4NzUiLCBcCi0gICAgICAgICAgIjAuMTk2MjUsIDAuMTg1LCAwLjE2NjI1LCAwLjE1Mzc1LCAwLjEzNSwgMC4xMTI1LCAwLjA5MTI1IiwgXAotICAgICAgICAgICIwLjIxNzUsIDAuMjA2MjUsIDAuMTg3NSwgMC4xNjg3NSwgMC4xNTYyNSwgMC4xMjc1LCAwLjEwNjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJlbW92YWxfZmFsbGluZzsKLSAgICAgIHdoZW4gOiAiUk4iOwotICAgICAgc2RmX2NvbmQgOiAiUk4gPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQocmVtb3ZhbF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTg3NSwgMC4wMywgMC4wNDg3NSwgMC4wNjEyNSwgMC4wOCwgMC4xMDI1LCAwLjExNzUiLCBcCi0gICAgICAgICAgIjAuMDA3NSwgMC4wMTg3NSwgMC4wMzc1LCAwLjA1LCAwLjA2MjUsIDAuMDkxMjUsIDAuMTA2MjUiLCBcCi0gICAgICAgICAgIi0wLjAwNSwgMC4wMDYyNSwgMC4wMTg3NSwgMC4wMzc1LCAwLjA1LCAwLjA3MjUsIDAuMDkzNzUiLCBcCi0gICAgICAgICAgIi0wLjAxNzUsIC0wLjAwNjI1LCAwLjAwNjI1LCAwLjAxODc1LCAwLjAzNzUsIDAuMDYsIDAuMDgxMjUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMjUsIC0wLjAwNjI1LCAwLjAwNjI1LCAwLjAyNSwgMC4wNDc1LCAwLjA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA1MjUsIC0wLjA0MTI1LCAtMC4wMjg3NSwgLTAuMDE2MjUsIDAuMDAyNSwgMC4wMjUsIDAuMDQiLCBcCi0gICAgICAgICAgIi0wLjA3Mzc1LCAtMC4wNjI1LCAtMC4wNDM3NSwgLTAuMDMxMjUsIC0wLjAxODc1LCAwLjAwMzc1LCAwLjAyNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogU0RGRlJIUVgyICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoU0RGRlJIUVgyKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuNDA2Mjg2OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIGZmIChOMzAsUUJJTlQpIHsKLSAgICBuZXh0X3N0YXRlIDogIigoU0UgU0kpICsgKCFTRSBEKSkiOwotICAgIGNsb2NrZWRfb24gOiAiQ0siOwotICAgIGNsZWFyIDogIighUk4pIjsKLSAgfQotICBwaW4oQ0spICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYwMTkwNzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MDE2NDg7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjAxOTA3OwotICAgIGNsb2NrIDogdHJ1ZTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDI1NjQsIDAuMDAyNTUzLCAwLjAwMjU0MiwgMC4wMDI1MzcsIDAuMDAyNTMyLCAwLjAwMjUyNSwgMC4wMDI1MjEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDY1MDQsIDAuMDA2NDk2LCAwLjAwNjQ4OCwgMC4wMDY0ODIsIDAuMDA2NDgyLCAwLjAwNjQ4MywgMC4wMDY0OTEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFEJlJOJiFTRSYhU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1JOX0VRXzFfQU5fU0VfRVFfMF9BTl9TSV9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMjg5MDYxLCAwLjMwMDg0MSwgMC4zMTYxMzcsIDAuMzMxNTk1LCAwLjM0NzA1MSwgMC4zNzE0NzMsIDAuMzkyNjAzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4yMDE0MDksIDAuMjEyOTA0LCAwLjIyNzg4MiwgMC4yNDI2OTcsIDAuMjU3NTA2LCAwLjI4MDgwNywgMC4zMDAyNzciKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEQpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDgwNzgwOTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA4MDQzMTE7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwODA3ODA5OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzI2OCwgMC4wMDMyNDgsIDAuMDAzMjM4LCAwLjAwMzIzMSwgMC4wMDMyMjYsIDAuMDAzMjIsIDAuMDAzMjE2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA0ODY1LCAwLjAwNDg1NSwgMC4wMDQ4NSwgMC4wMDQ4NDYsIDAuMDA0ODQzLCAwLjAwNDg0LCAwLjAwNDgzNyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJSTiYhU0UiOwotICAgICAgc2RmX2NvbmQgOiAiUk5fRVFfMV9BTl9TRV9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjEwNjI1LCAtMC4wOTUsIC0wLjA4MjUsIC0wLjA3LCAtMC4wNTc1LCAtMC4wNDEyNSwgLTAuMDMyNSIsIFwKLSAgICAgICAgICAiLTAuMTE3NSwgLTAuMTA2MjUsIC0wLjA5Mzc1LCAtMC4wODEyNSwgLTAuMDY4NzUsIC0wLjA1MjUsIC0wLjA0Mzc1IiwgXAotICAgICAgICAgICItMC4xMywgLTAuMTE4NzUsIC0wLjEwNjI1LCAtMC4wOTM3NSwgLTAuMDg3NSwgLTAuMDY1LCAtMC4wNTYyNSIsIFwKLSAgICAgICAgICAiLTAuMTQyNSwgLTAuMTMxMjUsIC0wLjExODc1LCAtMC4xMDYyNSwgLTAuMSwgLTAuMDgzNzUsIC0wLjA2ODc1IiwgXAotICAgICAgICAgICItMC4xNTUsIC0wLjE0Mzc1LCAtMC4xMzEyNSwgLTAuMTI1LCAtMC4xMTI1LCAtMC4wOTYyNSwgLTAuMDgxMjUiLCBcCi0gICAgICAgICAgIi0wLjE3NzUsIC0wLjE2NjI1LCAtMC4xNTM3NSwgLTAuMTQxMjUsIC0wLjEzNSwgLTAuMTE4NzUsIC0wLjEwMzc1IiwgXAotICAgICAgICAgICItMC4xOTg3NSwgLTAuMTg3NSwgLTAuMTc1LCAtMC4xNjI1LCAtMC4xNSwgLTAuMTMzNzUsIC0wLjExODc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMCwgMC4wMTEyNSwgMC4wMywgMC4wNDI1LCAwLjA1NSwgMC4wNzc1LCAwLjA5ODc1IiwgXAotICAgICAgICAgICItMC4wMTEyNSwgMCwgMC4wMTg3NSwgMC4wMzEyNSwgMC4wNDM3NSwgMC4wNzI1LCAwLjA4NzUiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTI1LCAwLjAwNjI1LCAwLjAxODc1LCAwLjAzMTI1LCAwLjA1Mzc1LCAwLjA3NSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAyNSwgLTAuMDA2MjUsIDAuMDA2MjUsIDAuMDE4NzUsIDAuMDQ3NSwgMC4wNjI1IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLjAxMjUsIDAuMDM1LCAwLjA1IiwgXAotICAgICAgICAgICItMC4wNjUsIC0wLjA1Mzc1LCAtMC4wMzUsIC0wLjAyMjUsIC0wLjAxLCAwLjAxMjUsIDAuMDMzNzUiLCBcCi0gICAgICAgICAgIi0wLjA4LCAtMC4wNjg3NSwgLTAuMDUsIC0wLjAzNzUsIC0wLjAyNSwgLTAuMDAyNSwgMC4wMTg3NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiUk4mIVNFIjsKLSAgICAgIHNkZl9jb25kIDogIlJOX0VRXzFfQU5fU0VfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNjg3NSwgMC4xNTc1LCAwLjE0NSwgMC4xMjYyNSwgMC4xMiwgMC4wOTc1LCAwLjA4ODc1IiwgXAotICAgICAgICAgICIwLjE4LCAwLjE2ODc1LCAwLjE1NjI1LCAwLjEzNzUsIDAuMTMxMjUsIDAuMTA4NzUsIDAuMSIsIFwKLSAgICAgICAgICAiMC4xOTI1LCAwLjE4MTI1LCAwLjE2ODc1LCAwLjE1NjI1LCAwLjE0Mzc1LCAwLjEyMTI1LCAwLjExMjUiLCBcCi0gICAgICAgICAgIjAuMjExMjUsIDAuMTkzNzUsIDAuMTgxMjUsIDAuMTY4NzUsIDAuMTU2MjUsIDAuMTQsIDAuMTI1IiwgXAotICAgICAgICAgICIwLjIyMzc1LCAwLjIxMjUsIDAuMTkzNzUsIDAuMTgxMjUsIDAuMTY4NzUsIDAuMTUyNSwgMC4xMzc1IiwgXAotICAgICAgICAgICIwLjI0NjI1LCAwLjIyODc1LCAwLjIxNjI1LCAwLjIwMzc1LCAwLjE5MTI1LCAwLjE3NSwgMC4xNiIsIFwKLSAgICAgICAgICAiMC4yNjEyNSwgMC4yNSwgMC4yMzc1LCAwLjIxODc1LCAwLjIwNjI1LCAwLjE5LCAwLjE3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4NzUsIDAuMDc2MjUsIDAuMDU3NSwgMC4wNDUsIDAuMDI2MjUsIDAuMDAzNzUsIC0wLjAxNzUiLCBcCi0gICAgICAgICAgIjAuMDk4NzUsIDAuMDg3NSwgMC4wNjg3NSwgMC4wNTYyNSwgMC4wMzc1LCAwLjAxNSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMTExMjUsIDAuMSwgMC4wODEyNSwgMC4wNjg3NSwgMC4wNSwgMC4wMjc1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICIwLjEyMzc1LCAwLjExMjUsIDAuMDkzNzUsIDAuMDgxMjUsIDAuMDYyNSwgMC4wNCwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4xMzYyNSwgMC4xMjUsIDAuMTA2MjUsIDAuMDkzNzUsIDAuMDc1LCAwLjA1MjUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMTU4NzUsIDAuMTQxMjUsIDAuMTI4NzUsIDAuMTEsIDAuMDk3NSwgMC4wNjg3NSwgMC4wNTM3NSIsIFwKLSAgICAgICAgICAiMC4xNzM3NSwgMC4xNjI1LCAwLjE0Mzc1LCAwLjEzMTI1LCAwLjExMjUsIDAuMDksIDAuMDY4NzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFEpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4yNDAyODM7Ci0gICAgZnVuY3Rpb24gOiAiTjMwIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBub25fdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJpc2luZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMDc0LCAwLjQ5MTc4NiwgMC42MzQ5NTQsIDAuODEzOTksIDAuOTkyODM5LCAxLjE3MTkyLCAxLjM1MDc5IiwgXAotICAgICAgICAgICIwLjMxOTQ1NiwgMC41MDM4MjYsIDAuNjQ2OTY3LCAwLjgyNTk4NSwgMS4wMDQ4NywgMS4xODM5NiwgMS4zNjI2OCIsIFwKLSAgICAgICAgICAiMC4zMzQ0MTIsIDAuNTE4Nzg5LCAwLjY2MTk1OCwgMC44NDEwMDcsIDEuMDE5OTEsIDEuMTk4ODMsIDEuMzc3ODQiLCBcCi0gICAgICAgICAgIjAuMzQ5OTQ4LCAwLjUzNDMyNywgMC42Nzc0OTUsIDAuODU2NTI1LCAxLjAzNTQ0LCAxLjIxNDM2LCAxLjM5MzM4IiwgXAotICAgICAgICAgICIwLjM2NTQ0MSwgMC41NDk4MjMsIDAuNjkyOTc1LCAwLjg3MTk4MSwgMS4wNTA4NywgMS4yMjk5NiwgMS40MDg3MSIsIFwKLSAgICAgICAgICAiMC4zODk2NzEsIDAuNTc0MDU0LCAwLjcxNzIyNCwgMC44OTYyNzgsIDEuMDc1MTgsIDEuMjU0MSwgMS40MzMxIiwgXAotICAgICAgICAgICIwLjQxMDc0LCAwLjU5NTEyNSwgMC43MzgyOTUsIDAuOTE3MjI1LCAxLjA5NjMsIDEuMjc1MjYsIDEuNDU0MTYiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTA2NzgsIDAuNDU1ODE2LCAwLjc0MzU2MSwgMS4xMDU1OCwgMS40NzI4OCwgMS44MzI4NCwgMi4yMDI3NyIsIFwKLSAgICAgICAgICAiMC4xMDY2NjQsIDAuNDU1ODg5LCAwLjc0NDU5LCAxLjEwODY5LCAxLjQ3MjU2LCAxLjgzMzA5LCAyLjIwMTk1IiwgXAotICAgICAgICAgICIwLjEwNjY5OSwgMC40NTQ5NDUsIDAuNzQzNTk4LCAxLjEwNTU5LCAxLjQ3MzE1LCAxLjgzNzc1LCAyLjE5NjY3IiwgXAotICAgICAgICAgICIwLjEwNjcsIDAuNDU0OTU1LCAwLjc0MzU5OCwgMS4xMDU1OCwgMS40NzMxMiwgMS44Mzc3MSwgMi4xOTY2NyIsIFwKLSAgICAgICAgICAiMC4xMDY3MzgsIDAuNDU1OTE1LCAwLjc0MzU2MywgMS4xMDg2OSwgMS40NzI1NiwgMS44MzI5NiwgMi4yMDIxNCIsIFwKLSAgICAgICAgICAiMC4xMDY3MDMsIDAuNDU0OTQ5LCAwLjc0MzU5NCwgMS4xMDU1OCwgMS40NzMxNSwgMS44Mzc3NiwgMi4xOTY2NyIsIFwKLSAgICAgICAgICAiMC4xMDY3MDIsIDAuNDU1MzY1LCAwLjc0MzU3NSwgMS4xMDgyNywgMS40NjkwNywgMS44MzI4NCwgMi4yMDI5MSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yODkwNjMsIDAuNDk2MDgsIDAuNjYwOTk3LCAwLjg2NzA4LCAxLjA3MzExLCAxLjI3OTIxLCAxLjQ4NTI0IiwgXAotICAgICAgICAgICIwLjMwMDg0MywgMC41MDc4NDgsIDAuNjcyOCwgMC44Nzg4NDksIDEuMDg0ODgsIDEuMjkwOTUsIDEuNDk3MDIiLCBcCi0gICAgICAgICAgIjAuMzE2MTM5LCAwLjUyMzE0NywgMC42ODgwOTMsIDAuODk0MjQsIDEuMTAwMjYsIDEuMzA2MjQsIDEuNTEyMzYiLCBcCi0gICAgICAgICAgIjAuMzMxNTk4LCAwLjUzODYxMSwgMC43MDM1MzksIDAuOTA5NjAzLCAxLjExNTY2LCAxLjMyMTcyLCAxLjUyNzc5IiwgXAotICAgICAgICAgICIwLjM0NzA1MywgMC41NTQwNTUsIDAuNzE5MDAxLCAwLjkyNTE2OCwgMS4xMzExOCwgMS4zMzcxNSwgMS41NDMyNyIsIFwKLSAgICAgICAgICAiMC4zNzE0NzUsIDAuNTc4NDgyLCAwLjc0MzQyNywgMC45NDk1MzQsIDEuMTU1NTcsIDEuMzYxNTgsIDEuNTY3NyIsIFwKLSAgICAgICAgICAiMC4zOTI2MDYsIDAuNTk5NjEzLCAwLjc2NDU2LCAwLjk3MDcwMiwgMS4xNzY3MiwgMS4zODI3MSwgMS41ODg4MyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDA0NjMsIDAuNTA2MDg1LCAwLjgzNTczMywgMS4yNDc4NCwgMS42NTk1LCAyLjA3MDYyLCAyLjQ4MjUyIiwgXAotICAgICAgICAgICIwLjEwMDU1NiwgMC41MDY3MzgsIDAuODMzMDEzLCAxLjI0Nzc5LCAxLjY1OTY2LCAyLjA3MTEsIDIuNDc3OTQiLCBcCi0gICAgICAgICAgIjAuMTAwNTIsIDAuNTA2NzM4LCAwLjgzMzk1MSwgMS4yNDI4LCAxLjY1ODUyLCAyLjA3MTI2LCAyLjQ4MTYxIiwgXAotICAgICAgICAgICIwLjEwMDU1OCwgMC41MDY3NDEsIDAuODM0ODE4LCAxLjI0Nzg3LCAxLjY1OTQ1LCAyLjA3MTIyLCAyLjQ4MjIyIiwgXAotICAgICAgICAgICIwLjEwMDUyOCwgMC41MDY3MzksIDAuODMzOTQsIDEuMjQ1MzksIDEuNjU4NDIsIDIuMDcxMjcsIDIuNDgxNjIiLCBcCi0gICAgICAgICAgIjAuMTAwNTMyLCAwLjUwNjczOCwgMC44MzQxMzksIDEuMjQ0MDEsIDEuNjU4NzksIDIuMDcxMjksIDIuNDgxNjMiLCBcCi0gICAgICAgICAgIjAuMTAwNTE5LCAwLjUwNjczOCwgMC44MzM5NjEsIDEuMjQyODUsIDEuNjU4NTUsIDIuMDcxMjYsIDIuNDgxNjQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUk4iOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGNsZWFyOwotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTM2MjksIDAuMzIxMTA5LCAwLjQ4NTkxOSwgMC42OTE5MzQsIDAuODk4MDA4LCAxLjEwNDA2LCAxLjMxMDE1IiwgXAotICAgICAgICAgICIwLjEyNTI0MiwgMC4zMzI3MiwgMC40OTc1MzIsIDAuNzAzNTU1LCAwLjkwOTU4LCAxLjExNTY0LCAxLjMyMTY2IiwgXAotICAgICAgICAgICIwLjEzOTc5OSwgMC4zNDczMDYsIDAuNTEyMTI0LCAwLjcxODE3LCAwLjkyNDE5NiwgMS4xMzAzMiwgMS4zMzYyMyIsIFwKLSAgICAgICAgICAiMC4xNTQ2MzIsIDAuMzYyMTcyLCAwLjUyNjk5NywgMC43MzMwMjEsIDAuOTM5MDc3LCAxLjE0NTEsIDEuMzUxMjUiLCBcCi0gICAgICAgICAgIjAuMTY5MzE0LCAwLjM3Njg4MSwgMC41NDE3MjcsIDAuNzQ3NzQ5LCAwLjk1MzgyMSwgMS4xNTk4OCwgMS4zNjU4OCIsIFwKLSAgICAgICAgICAiMC4xOTIzOTcsIDAuMzk5OTk3LCAwLjU2NDg0OCwgMC43NzA4NzgsIDAuOTc2OTA2LCAxLjE4MzAyLCAxLjM4OTA2IiwgXAotICAgICAgICAgICIwLjIxMTQ2NiwgMC40MTkwNjYsIDAuNTgzOTE0LCAwLjc4OTk1NiwgMC45OTYwMTEsIDEuMjAyMDgsIDEuNDA4MTkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTAxMDY0LCAwLjUwNTQzLCAwLjgzNDAxLCAxLjI0NDc4LCAxLjY1NCwgMi4wNjU5MywgMi40NzYxNyIsIFwKLSAgICAgICAgICAiMC4xMDEwNjcsIDAuNTA1NDczLCAwLjgzMjk3NiwgMS4yNDUzNCwgMS42NTQ1NCwgMi4wNjUyLCAyLjQ3NjcyIiwgXAotICAgICAgICAgICIwLjEwMTA3OSwgMC41MDU0MDksIDAuODMyOTUxLCAxLjI0NTE2LCAxLjY1NDUxLCAyLjA2NjcsIDIuNDc3MyIsIFwKLSAgICAgICAgICAiMC4xMDExLCAwLjUwNTQ0MSwgMC44MzM5MzgsIDEuMjQzMTQsIDEuNjUzOTgsIDIuMDY1NjIsIDIuNDc1OTYiLCBcCi0gICAgICAgICAgIjAuMTAxMTU0LCAwLjUwNTgxNSwgMC44MzMyOTQsIDEuMjQzMDcsIDEuNjU1MjgsIDIuMDY1MjUsIDIuNDc5MDgiLCBcCi0gICAgICAgICAgIjAuMTAxNDQxLCAwLjUwNTM5MSwgMC44MzM5MjUsIDEuMjQzMDcsIDEuNjU0NTgsIDIuMDY3NjEsIDIuNDc3MzYiLCBcCi0gICAgICAgICAgIjAuMTAyMDY1LCAwLjUwNTM3MiwgMC44MzI4NTUsIDEuMjQ0MTcsIDEuNjU2MzgsIDIuMDY1MTgsIDIuNDc2NTciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2Nzk5LCAwLjAwNjgyNSwgMC4wMDY4MTksIDAuMDA2ODE1LCAwLjAwNjgxMSwgMC4wMDY4MDksIDAuMDA2ODA3IiwgXAotICAgICAgICAgICIwLjAwNjc4OCwgMC4wMDY4MTQsIDAuMDA2ODA5LCAwLjAwNjgwNCwgMC4wMDY4MDEsIDAuMDA2Nzk4LCAwLjAwNjc5NiIsIFwKLSAgICAgICAgICAiMC4wMDY3NzUsIDAuMDA2ODAxLCAwLjAwNjc5NiwgMC4wMDY3OTEsIDAuMDA2Nzg3LCAwLjAwNjc4NSwgMC4wMDY3ODQiLCBcCi0gICAgICAgICAgIjAuMDA2NzY2LCAwLjAwNjc5MywgMC4wMDY3ODgsIDAuMDA2NzgzLCAwLjAwNjc3OSwgMC4wMDY3NzcsIDAuMDA2Nzc1IiwgXAotICAgICAgICAgICIwLjAwNjc2LCAwLjAwNjc4NywgMC4wMDY3ODMsIDAuMDA2Nzc3LCAwLjAwNjc3NCwgMC4wMDY3NzEsIDAuMDA2NzY5IiwgXAotICAgICAgICAgICIwLjAwNjc0NywgMC4wMDY3NzUsIDAuMDA2NzcsIDAuMDA2NzY0LCAwLjAwNjc2MSwgMC4wMDY3NTksIDAuMDA2NzU2IiwgXAotICAgICAgICAgICIwLjAwNjc0MiwgMC4wMDY3NywgMC4wMDY3NjUsIDAuMDA2NzYsIDAuMDA2NzU2LCAwLjAwNjc1NCwgMC4wMDY3NTIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDcwOTEsIDAuMDA3MTQ0LCAwLjAwNzE1LCAwLjAwNzE1MywgMC4wMDcxNTUsIDAuMDA3MTU2LCAwLjAwNzE1NyIsIFwKLSAgICAgICAgICAiMC4wMDcwNzgsIDAuMDA3MTMxLCAwLjAwNzEzNywgMC4wMDcxNCwgMC4wMDcxNDIsIDAuMDA3MTQzLCAwLjAwNzE0NCIsIFwKLSAgICAgICAgICAiMC4wMDcwNjcsIDAuMDA3MTIsIDAuMDA3MTI2LCAwLjAwNzEyOSwgMC4wMDcxMzEsIDAuMDA3MTMyLCAwLjAwNzEzMyIsIFwKLSAgICAgICAgICAiMC4wMDcwNTgsIDAuMDA3MTExLCAwLjAwNzExNywgMC4wMDcxMiwgMC4wMDcxMjIsIDAuMDA3MTIzLCAwLjAwNzEyNCIsIFwKLSAgICAgICAgICAiMC4wMDcwNTUsIDAuMDA3MTA4LCAwLjAwNzExNCwgMC4wMDcxMTcsIDAuMDA3MTE5LCAwLjAwNzEyLCAwLjAwNzEyMSIsIFwKLSAgICAgICAgICAiMC4wMDcwNTEsIDAuMDA3MTA0LCAwLjAwNzExLCAwLjAwNzExMywgMC4wMDcxMTUsIDAuMDA3MTE2LCAwLjAwNzExNyIsIFwKLSAgICAgICAgICAiMC4wMDcwNTYsIDAuMDA3MTA5LCAwLjAwNzExNSwgMC4wMDcxMTgsIDAuMDA3MTIsIDAuMDA3MTIxLCAwLjAwNzEyMiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDc5OTQsIDAuMDA4MDM2LCAwLjAwODA0MSwgMC4wMDgwNDMsIDAuMDA4MDQ0LCAwLjAwODA0NSwgMC4wMDgwNDUiLCBcCi0gICAgICAgICAgIjAuMDA3OTcxLCAwLjAwODAxNSwgMC4wMDgwMiwgMC4wMDgwMjIsIDAuMDA4MDIzLCAwLjAwODAyNCwgMC4wMDgwMjUiLCBcCi0gICAgICAgICAgIjAuMDA3OTUsIDAuMDA3OTk5LCAwLjAwODAwNSwgMC4wMDgwMDgsIDAuMDA4MDEsIDAuMDA4MDExLCAwLjAwODAxMSIsIFwKLSAgICAgICAgICAiMC4wMDc5MywgMC4wMDc5ODUsIDAuMDA3OTkyLCAwLjAwNzk5NiwgMC4wMDc5OTgsIDAuMDA3OTk5LCAwLjAwOCIsIFwKLSAgICAgICAgICAiMC4wMDc5MTEsIDAuMDA3OTcyLCAwLjAwNzk4MSwgMC4wMDc5ODYsIDAuMDA3OTg4LCAwLjAwNzk4OSwgMC4wMDc5OSIsIFwKLSAgICAgICAgICAiMC4wMDc4ODgsIDAuMDA3OTU1LCAwLjAwNzk2NSwgMC4wMDc5NzEsIDAuMDA3OTc0LCAwLjAwNzk3NSwgMC4wMDc5NzYiLCBcCi0gICAgICAgICAgIjAuMDA3ODcyLCAwLjAwNzkzOCwgMC4wMDc5NSwgMC4wMDc5NTYsIDAuMDA3OTU5LCAwLjAwNzk2MSwgMC4wMDc5NjMiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfcG93ZXIoc2NhbGFyKSB7Ci0gICAgICAgIHZhbHVlcygiMCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUk4pICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTU2MTE1OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTQ0OTIzOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTU2MTE1OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDQ4NSwgMC4wMDA0ODUsIDAuMDAwNDg0LCAwLjAwMDQ4NCwgMC4wMDA0ODQsIDAuMDAwNDg0LCAwLjAwMDQ4NCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDQ4OCwgMC4wMDA0ODYsIDAuMDAwNDg2LCAwLjAwMDQ4NiwgMC4wMDA0ODYsIDAuMDAwNDg2LCAwLjAwMDQ4NiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQmIVNFJiFTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fU0VfRVFfMF9BTl9TSV9FUV8wID09IDEnYjEiOwotICAgICAgZmFsbF9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMTY1Nzk2LCAwLjE3NzM1MSwgMC4xOTEyMDIsIDAuMjA0MzA0LCAwLjIxNjc5NCwgMC4yMzYxMywgMC4yNTI3MyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJlY292ZXJ5X3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUQmU0UmU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1NFX0VRXzFfQU5fU0lfRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChyZWNvdmVyeV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDc1LCAtMC4wODYyNSwgLTAuMDk4NzUsIC0wLjExNzUsIC0wLjEzNjI1LCAtMC4xNTg3NSwgLTAuMTgiLCBcCi0gICAgICAgICAgIi0wLjA4MjUsIC0wLjA5Mzc1LCAtMC4xMDYyNSwgLTAuMTI1LCAtMC4xNDM3NSwgLTAuMTY2MjUsIC0wLjE4NzUiLCBcCi0gICAgICAgICAgIi0wLjA4ODc1LCAtMC4xLCAtMC4xMTg3NSwgLTAuMTMxMjUsIC0wLjE1LCAtMC4xNzI1LCAtMC4xOTM3NSIsIFwKLSAgICAgICAgICAiLTAuMDg4NzUsIC0wLjEsIC0wLjExODc1LCAtMC4xMzc1LCAtMC4xNSwgLTAuMTc4NzUsIC0wLjIiLCBcCi0gICAgICAgICAgIi0wLjA4MjUsIC0wLjA5Mzc1LCAtMC4xMTI1LCAtMC4xMzEyNSwgLTAuMTQzNzUsIC0wLjE3MjUsIC0wLjE5Mzc1IiwgXAotICAgICAgICAgICItMC4wNjYyNSwgLTAuMDc3NSwgLTAuMDksIC0wLjEwODc1LCAtMC4xMjc1LCAtMC4xNSwgLTAuMTc3NSIsIFwKLSAgICAgICAgICAiLTAuMDM4NzUsIC0wLjA1NjI1LCAtMC4wNjg3NSwgLTAuMDg3NSwgLTAuMTA2MjUsIC0wLjEyODc1LCAtMC4xNTYyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJlbW92YWxfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRCZTRSZTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fU0VfRVFfMV9BTl9TSV9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHJlbW92YWxfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTE4NzUsIDAuMTMsIDAuMTQyNSwgMC4xNjEyNSwgMC4xNzM3NSwgMC4xOTYyNSwgMC4yMTc1IiwgXAotICAgICAgICAgICIwLjEyNjI1LCAwLjEzNzUsIDAuMTUsIDAuMTY4NzUsIDAuMTgxMjUsIDAuMjEsIDAuMjMxMjUiLCBcCi0gICAgICAgICAgIjAuMTM4NzUsIDAuMTUsIDAuMTYyNSwgMC4xODEyNSwgMC4xOTM3NSwgMC4yMTYyNSwgMC4yMzc1IiwgXAotICAgICAgICAgICIwLjE0NSwgMC4xNTYyNSwgMC4xNzUsIDAuMTg3NSwgMC4yMDYyNSwgMC4yMjg3NSwgMC4yNSIsIFwKLSAgICAgICAgICAiMC4xNTc1LCAwLjE2ODc1LCAwLjE4MTI1LCAwLjIsIDAuMjEyNSwgMC4yNDEyNSwgMC4yNjI1IiwgXAotICAgICAgICAgICIwLjE3MjUsIDAuMTgzNzUsIDAuMTk2MjUsIDAuMjE1LCAwLjIyNzUsIDAuMjU2MjUsIDAuMjcxMjUiLCBcCi0gICAgICAgICAgIjAuMTgyNSwgMC4xOTM3NSwgMC4yMTI1LCAwLjIyNSwgMC4yNDM3NSwgMC4yNjYyNSwgMC4yODc1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTRSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNDg3NjU7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNDg3MTI7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNDg3NjU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA0NjI4LCAwLjAwNDYyNywgMC4wMDQ2MjEsIDAuMDA0NjE1LCAwLjAwNDYxLCAwLjAwNDYwNiwgMC4wMDQ2MDIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDU3MTcsIDAuMDA1NjkzLCAwLjAwNTY3MywgMC4wMDU2NjEsIDAuMDA1NjUyLCAwLjAwNTY0MywgMC4wMDU2NCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJSTiI7Ci0gICAgICBzZGZfY29uZCA6ICJSTiA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMjUsIC0wLjAxMzc1LCAwLjAwNSwgMC4wMTc1LCAwLjAzLCAwLjA1ODc1LCAwLjA3Mzc1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDI1LCAtMC4wMDYyNSwgMC4wMDYyNSwgMC4wMTg3NSwgMC4wNDEyNSwgMC4wNjI1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDM3NSwgLTAuMDI1LCAtMC4wMTI1LCAwLjAwNjI1LCAwLjAyODc1LCAwLjA1IiwgXAotICAgICAgICAgICItMC4wNjc1LCAtMC4wNTYyNSwgLTAuMDM3NSwgLTAuMDI1LCAtMC4wMTI1LCAwLjAxNjI1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wOCwgLTAuMDY4NzUsIC0wLjA1NjI1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAwMjUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjEwMjUsIC0wLjA5MTI1LCAtMC4wNzg3NSwgLTAuMDYsIC0wLjA0NzUsIC0wLjAyNSwgLTAuMDAzNzUiLCBcCi0gICAgICAgICAgIi0wLjExNzUsIC0wLjEwNjI1LCAtMC4wOTM3NSwgLTAuMDgxMjUsIC0wLjA2MjUsIC0wLjA0LCAtMC4wMTg3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEyNSwgMC4wMjM3NSwgMC4wNDI1LCAwLjA1NSwgMC4wNjc1LCAwLjA5LCAwLjExMTI1IiwgXAotICAgICAgICAgICIwLjAwMTI1LCAwLjAxODc1LCAwLjAzMTI1LCAwLjA0Mzc1LCAwLjA2MjUsIDAuMDg1LCAwLjEiLCBcCi0gICAgICAgICAgIi0wLjAwNSwgMC4wMDYyNSwgMC4wMTg3NSwgMC4wMzEyNSwgMC4wNSwgMC4wNzI1LCAwLjA4NzUiLCBcCi0gICAgICAgICAgIi0wLjAxNzUsIC0wLjAwNjI1LCAwLjAwNjI1LCAwLjAxODc1LCAwLjAzNzUsIDAuMDYsIDAuMDc1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLjAwNjI1LCAwLjAyNSwgMC4wNDc1LCAwLjA2ODc1IiwgXAotICAgICAgICAgICItMC4wNDYyNSwgLTAuMDM1LCAtMC4wMjI1LCAtMC4wMSwgMC4wMDI1LCAwLjAyNSwgMC4wNDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDYxMjUsIC0wLjA1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAwNjI1LCAwLjAxNjI1LCAwLjAzMTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJSTiI7Ci0gICAgICBzZGZfY29uZCA6ICJSTiA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNTYyNSwgMC4xNDUsIDAuMTI2MjUsIDAuMTEzNzUsIDAuMTAxMjUsIDAuMDg1LCAwLjA3IiwgXAotICAgICAgICAgICIwLjE2NzUsIDAuMTU2MjUsIDAuMTM3NSwgMC4xMjUsIDAuMTEyNSwgMC4wOTYyNSwgMC4wODEyNSIsIFwKLSAgICAgICAgICAiMC4xOCwgMC4xNjg3NSwgMC4xNSwgMC4xMzc1LCAwLjEyNSwgMC4xMDg3NSwgMC4wOTM3NSIsIFwKLSAgICAgICAgICAiMC4xOTI1LCAwLjE4MTI1LCAwLjE2MjUsIDAuMTUsIDAuMTM3NSwgMC4xMjEyNSwgMC4xMDYyNSIsIFwKLSAgICAgICAgICAiMC4yMDUsIDAuMTkzNzUsIDAuMTgxMjUsIDAuMTYyNSwgMC4xNSwgMC4xMzM3NSwgMC4xMTg3NSIsIFwKLSAgICAgICAgICAiMC4yMjc1LCAwLjIxNjI1LCAwLjE5NzUsIDAuMTg1LCAwLjE3MjUsIDAuMTU2MjUsIDAuMTQxMjUiLCBcCi0gICAgICAgICAgIjAuMjQ4NzUsIDAuMjMxMjUsIDAuMjE4NzUsIDAuMjA2MjUsIDAuMTkzNzUsIDAuMTcxMjUsIDAuMTYyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE5Mzc1LCAwLjE3NjI1LCAwLjE2Mzc1LCAwLjE1MTI1LCAwLjEzODc1LCAwLjEyMjUsIDAuMTA3NSIsIFwKLSAgICAgICAgICAiMC4yMDUsIDAuMTkzNzUsIDAuMTc1LCAwLjE2MjUsIDAuMTUsIDAuMTMzNzUsIDAuMTE4NzUiLCBcCi0gICAgICAgICAgIjAuMjE3NSwgMC4yMDYyNSwgMC4xOTM3NSwgMC4xNzUsIDAuMTYyNSwgMC4xNDYyNSwgMC4xMzEyNSIsIFwKLSAgICAgICAgICAiMC4yMywgMC4yMTg3NSwgMC4yMDYyNSwgMC4xOTM3NSwgMC4xODEyNSwgMC4xNTg3NSwgMC4xNSIsIFwKLSAgICAgICAgICAiMC4yNDg3NSwgMC4yMzEyNSwgMC4yMTg3NSwgMC4yMDYyNSwgMC4xOTM3NSwgMC4xNzc1LCAwLjE2MjUiLCBcCi0gICAgICAgICAgIjAuMjY1LCAwLjI1Mzc1LCAwLjIzNSwgMC4yMjI1LCAwLjIxLCAwLjE5Mzc1LCAwLjE3ODc1IiwgXAotICAgICAgICAgICIwLjI4LCAwLjI2ODc1LCAwLjI1LCAwLjIzNzUsIDAuMjI1LCAwLjIwODc1LCAwLjE5Mzc1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTSSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwODg4NjM3OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDg4NTA4OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDg4ODYzNzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDMwMjksIDAuMDAzMDA5LCAwLjAwMywgMC4wMDI5OTMsIDAuMDAyOTg4LCAwLjAwMjk4MiwgMC4wMDI5NzgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDUwNDIsIDAuMDA1MDMyLCAwLjAwNTAyNywgMC4wMDUwMjMsIDAuMDA1MDIsIDAuMDA1MDE3LCAwLjAwNTAxNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJSTiZTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJSTl9FUV8xX0FOX1NFX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMSwgLTAuMDk1LCAtMC4wODI1LCAtMC4wNywgLTAuMDU3NSwgLTAuMDQxMjUsIC0wLjAyNjI1IiwgXAotICAgICAgICAgICItMC4xMTEyNSwgLTAuMTA2MjUsIC0wLjA5Mzc1LCAtMC4wODEyNSwgLTAuMDY4NzUsIC0wLjA1MjUsIC0wLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjEyMzc1LCAtMC4xMTg3NSwgLTAuMTA2MjUsIC0wLjA5Mzc1LCAtMC4wODEyNSwgLTAuMDY1LCAtMC4wNSIsIFwKLSAgICAgICAgICAiLTAuMTQyNSwgLTAuMTMxMjUsIC0wLjExODc1LCAtMC4xMDYyNSwgLTAuMDkzNzUsIC0wLjA3NzUsIC0wLjA2MjUiLCBcCi0gICAgICAgICAgIi0wLjE1NSwgLTAuMTQzNzUsIC0wLjEzMTI1LCAtMC4xMTg3NSwgLTAuMTA2MjUsIC0wLjA5LCAtMC4wODEyNSIsIFwKLSAgICAgICAgICAiLTAuMTc3NSwgLTAuMTY2MjUsIC0wLjE1Mzc1LCAtMC4xNDEyNSwgLTAuMTI4NzUsIC0wLjExMjUsIC0wLjA5NzUiLCBcCi0gICAgICAgICAgIi0wLjE5MjUsIC0wLjE4MTI1LCAtMC4xNjg3NSwgLTAuMTU2MjUsIC0wLjE1LCAtMC4xMzM3NSwgLTAuMTE4NzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLCAwLjAxMTI1LCAwLjAzLCAwLjA0MjUsIDAuMDU1LCAwLjA3NzUsIDAuMDk4NzUiLCBcCi0gICAgICAgICAgIi0wLjAxMTI1LCAwLCAwLjAxODc1LCAwLjAzMTI1LCAwLjA0Mzc1LCAwLjA2NjI1LCAwLjA4NzUiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTI1LCAwLjAwNjI1LCAwLjAxODc1LCAwLjAzMTI1LCAwLjA1Mzc1LCAwLjA3NSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAyNSwgLTAuMDA2MjUsIDAuMDA2MjUsIDAuMDE4NzUsIDAuMDQxMjUsIDAuMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDMxMjUsIC0wLjAxODc1LCAtMC4wMDYyNSwgMC4wMTI1LCAwLjAzNSwgMC4wNSIsIFwKLSAgICAgICAgICAiLTAuMDY1LCAtMC4wNTM3NSwgLTAuMDM1LCAtMC4wMjI1LCAtMC4wMSwgMC4wMTI1LCAwLjAzMzc1IiwgXAotICAgICAgICAgICItMC4wOCwgLTAuMDY4NzUsIC0wLjA1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAwMjUsIDAuMDE4NzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlJOJlNFIjsKLSAgICAgIHNkZl9jb25kIDogIlJOX0VRXzFfQU5fU0VfRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNjg3NSwgMC4xNTc1LCAwLjEzODc1LCAwLjEyNjI1LCAwLjExMzc1LCAwLjA5NzUsIDAuMDgyNSIsIFwKLSAgICAgICAgICAiMC4xOCwgMC4xNjg3NSwgMC4xNSwgMC4xMzc1LCAwLjEyNSwgMC4xMDg3NSwgMC4wOTM3NSIsIFwKLSAgICAgICAgICAiMC4xOTI1LCAwLjE4MTI1LCAwLjE2MjUsIDAuMTUsIDAuMTM3NSwgMC4xMjEyNSwgMC4xMDYyNSIsIFwKLSAgICAgICAgICAiMC4yMDUsIDAuMTkzNzUsIDAuMTgxMjUsIDAuMTYyNSwgMC4xNSwgMC4xMzM3NSwgMC4xMTg3NSIsIFwKLSAgICAgICAgICAiMC4yMTc1LCAwLjIwNjI1LCAwLjE5Mzc1LCAwLjE3NSwgMC4xNjI1LCAwLjE0NjI1LCAwLjEzNzUiLCBcCi0gICAgICAgICAgIjAuMjQsIDAuMjI4NzUsIDAuMjE2MjUsIDAuMTk3NSwgMC4xODUsIDAuMTY4NzUsIDAuMTUzNzUiLCBcCi0gICAgICAgICAgIjAuMjYxMjUsIDAuMjUsIDAuMjMxMjUsIDAuMjE4NzUsIDAuMjA2MjUsIDAuMTksIDAuMTc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg3NSwgMC4wNzYyNSwgMC4wNTc1LCAwLjA0NSwgMC4wMjYyNSwgMC4wMDM3NSwgLTAuMDE3NSIsIFwKLSAgICAgICAgICAiMC4wOTg3NSwgMC4wODc1LCAwLjA3NSwgMC4wNTYyNSwgMC4wMzc1LCAwLjAxNSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMTExMjUsIDAuMSwgMC4wODc1LCAwLjA2ODc1LCAwLjA1LCAwLjAyNzUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMTIzNzUsIDAuMTEyNSwgMC4wOTM3NSwgMC4wODEyNSwgMC4wNjI1LCAwLjA0LCAwLjAxODc1IiwgXAotICAgICAgICAgICIwLjEzNjI1LCAwLjEyNSwgMC4xMDYyNSwgMC4wOTM3NSwgMC4wNzUsIDAuMDUyNSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4xNTg3NSwgMC4xNDEyNSwgMC4xMjg3NSwgMC4xMSwgMC4wOTc1LCAwLjA3NSwgMC4wNTM3NSIsIFwKLSAgICAgICAgICAiMC4xNzM3NSwgMC4xNjI1LCAwLjE0Mzc1LCAwLjEzMTI1LCAwLjExMjUsIDAuMDksIDAuMDY4NzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IFNERkZTSFFYNCAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKFNERkZTSFFYNCkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjQ5Mzg2OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIGZmIChOMzAsUUJJTlQpIHsKLSAgICBuZXh0X3N0YXRlIDogIigoU0UgU0kpICsgKCFTRSBEKSkiOwotICAgIGNsb2NrZWRfb24gOiAiQ0siOwotICAgIHByZXNldCA6ICIoIVNOKSI7Ci0gIH0KLSAgcGluKENLKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2Mjk1ODU7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjI5MzI5OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDYyOTU4NTsKLSAgICBjbG9jayA6IHRydWU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyNTk0LCAwLjAwMjU4MywgMC4wMDI1NzQsIDAuMDAyNTY2LCAwLjAwMjU2MywgMC4wMDI1NTUsIDAuMDAyNTUyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA2NDQ5LCAwLjAwNjQ0MywgMC4wMDY0MzMsIDAuMDA2NDI4LCAwLjAwNjQyNiwgMC4wMDY0MywgMC4wMDY0MzciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFEJiFTRSYhU0kmU04iOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1NFX0VRXzBfQU5fU0lfRVFfMF9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMjkxMjA5LCAwLjMwMjkyMywgMC4zMTgxOTgsIDAuMzMzNDc2LCAwLjM0ODkzNiwgMC4zNzMxMzgsIDAuMzk0Nzk5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4yMzE1MjMsIDAuMjQzMjU5LCAwLjI1NzE4NywgMC4yNzI5MjUsIDAuMjg3NjQyLCAwLjMxMDk2NSwgMC4zMzA5MjQiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEQpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDg0OTU2MzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA4NDYwNDE7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwODQ5NTYzOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzYxNCwgMC4wMDM1OTUsIDAuMDAzNTg1LCAwLjAwMzU3OCwgMC4wMDM1NzMsIDAuMDAzNTY2LCAwLjAwMzU2MiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNTA0OSwgMC4wMDUwMzksIDAuMDA1MDMzLCAwLjAwNTAzLCAwLjAwNTAyNywgMC4wMDUwMjMsIDAuMDA1MDIxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFTRSZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJTRV9FUV8wX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMSwgLTAuMDk1LCAtMC4wODI1LCAtMC4wNywgLTAuMDU3NSwgLTAuMDQxMjUsIC0wLjAyNjI1IiwgXAotICAgICAgICAgICItMC4xMTEyNSwgLTAuMTA2MjUsIC0wLjA5Mzc1LCAtMC4wODEyNSwgLTAuMDY4NzUsIC0wLjA1MjUsIC0wLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjEzLCAtMC4xMTg3NSwgLTAuMTA2MjUsIC0wLjA5Mzc1LCAtMC4wODEyNSwgLTAuMDY1LCAtMC4wNSIsIFwKLSAgICAgICAgICAiLTAuMTQyNSwgLTAuMTMxMjUsIC0wLjExODc1LCAtMC4xMDYyNSwgLTAuMDkzNzUsIC0wLjA3NzUsIC0wLjA2MjUiLCBcCi0gICAgICAgICAgIi0wLjE1NSwgLTAuMTQzNzUsIC0wLjEzMTI1LCAtMC4xMTg3NSwgLTAuMTA2MjUsIC0wLjA5LCAtMC4wNzUiLCBcCi0gICAgICAgICAgIi0wLjE3NzUsIC0wLjE2NjI1LCAtMC4xNTM3NSwgLTAuMTQxMjUsIC0wLjEyODc1LCAtMC4xMTI1LCAtMC4wOTc1IiwgXAotICAgICAgICAgICItMC4xOTI1LCAtMC4xODEyNSwgLTAuMTY4NzUsIC0wLjE1NjI1LCAtMC4xNSwgLTAuMTI3NSwgLTAuMTE4NzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLCAwLjAxMTI1LCAwLjAyMzc1LCAwLjA0MjUsIDAuMDU1LCAwLjA3NzUsIDAuMDk4NzUiLCBcCi0gICAgICAgICAgIi0wLjAxMTI1LCAwLCAwLjAxMjUsIDAuMDMxMjUsIDAuMDQzNzUsIDAuMDY2MjUsIDAuMDg3NSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxMjUsIDAsIDAuMDE4NzUsIDAuMDMxMjUsIDAuMDUzNzUsIDAuMDc1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDI1LCAtMC4wMTI1LCAwLjAwNjI1LCAwLjAxODc1LCAwLjA0MTI1LCAwLjA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wMzc1LCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAuMDA2MjUsIDAuMDI4NzUsIDAuMDUiLCBcCi0gICAgICAgICAgIi0wLjA2NSwgLTAuMDUzNzUsIC0wLjA0MTI1LCAtMC4wMjI1LCAtMC4wMSwgMC4wMTI1LCAwLjAyNzUiLCBcCi0gICAgICAgICAgIi0wLjA4LCAtMC4wNjg3NSwgLTAuMDU2MjUsIC0wLjA0Mzc1LCAtMC4wMjUsIC0wLjAwMjUsIDAuMDEyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIVNFJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIlNFX0VRXzBfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNzUsIDAuMTYzNzUsIDAuMTQ1LCAwLjEzMjUsIDAuMTIsIDAuMTAzNzUsIDAuMDg4NzUiLCBcCi0gICAgICAgICAgIjAuMTg2MjUsIDAuMTc1LCAwLjE1NjI1LCAwLjE0Mzc1LCAwLjEzMTI1LCAwLjEwODc1LCAwLjEiLCBcCi0gICAgICAgICAgIjAuMTk4NzUsIDAuMTg3NSwgMC4xNjg3NSwgMC4xNTYyNSwgMC4xNDM3NSwgMC4xMjc1LCAwLjExMjUiLCBcCi0gICAgICAgICAgIjAuMjExMjUsIDAuMiwgMC4xODEyNSwgMC4xNjg3NSwgMC4xNTYyNSwgMC4xNCwgMC4xMjUiLCBcCi0gICAgICAgICAgIjAuMjIzNzUsIDAuMjEyNSwgMC4yLCAwLjE4MTI1LCAwLjE2ODc1LCAwLjE1MjUsIDAuMTM3NSIsIFwKLSAgICAgICAgICAiMC4yNDYyNSwgMC4yMzUsIDAuMjE2MjUsIDAuMjAzNzUsIDAuMTkxMjUsIDAuMTc1LCAwLjE2IiwgXAotICAgICAgICAgICIwLjI2NzUsIDAuMjUsIDAuMjM3NSwgMC4yMjUsIDAuMjEyNSwgMC4xOSwgMC4xNzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNDM3NSwgMC4xMzI1LCAwLjExMzc1LCAwLjA5NSwgMC4wODI1LCAwLjA1Mzc1LCAwLjAzMjUiLCBcCi0gICAgICAgICAgIjAuMTU1LCAwLjE0Mzc1LCAwLjEyNSwgMC4xMDYyNSwgMC4wOTM3NSwgMC4wNjUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMTY3NSwgMC4xNTYyNSwgMC4xMzc1LCAwLjEyNSwgMC4xMDYyNSwgMC4wNzc1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICIwLjE4LCAwLjE2ODc1LCAwLjE1LCAwLjEzNzUsIDAuMTE4NzUsIDAuMDksIDAuMDY4NzUiLCBcCi0gICAgICAgICAgIjAuMTkyNSwgMC4xODEyNSwgMC4xNjI1LCAwLjE1LCAwLjEzMTI1LCAwLjEwMjUsIDAuMDgxMjUiLCBcCi0gICAgICAgICAgIjAuMjA4NzUsIDAuMTk3NSwgMC4xODUsIDAuMTY2MjUsIDAuMTQ3NSwgMC4xMjUsIDAuMTAzNzUiLCBcCi0gICAgICAgICAgIjAuMjMsIDAuMjE4NzUsIDAuMiwgMC4xODEyNSwgMC4xNjg3NSwgMC4xNCwgMC4xMTg3NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjUyNDU3ODsKLSAgICBmdW5jdGlvbiA6ICJOMzAiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5vbl91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcmlzaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjMyODIyLCAwLjM1OTcyNiwgMC40ODUwMzIsIDAuNTc0NTEzLCAwLjcxNzcxNywgMC44NDMwOTgsIDEuMDIyIiwgXAotICAgICAgICAgICIwLjI0NDcyMywgMC4zNzE2MjQsIDAuNDk2OTMyLCAwLjU4NjQwNSwgMC43Mjk2MTksIDAuODU0OTU5LCAxLjAzMzkiLCBcCi0gICAgICAgICAgIjAuMjU5ODk1LCAwLjM4Njc3NCwgMC41MTIwODUsIDAuNjAxNTc5LCAwLjc0NDc3OSwgMC44NzAwNTQsIDEuMDQ5MDQiLCBcCi0gICAgICAgICAgIjAuMjc1Mjc2LCAwLjQwMjE3NiwgMC41Mjc0ODYsIDAuNjE2OTYzLCAwLjc2MDE3NCwgMC44ODU1LCAxLjA2NDQ1IiwgXAotICAgICAgICAgICIwLjI5MDcxMywgMC40MTc1NjQsIDAuNTQyOSwgMC42MzIzNTksIDAuNzc1NTU2LCAwLjkwMDg3OCwgMS4wNzk5MiIsIFwKLSAgICAgICAgICAiMC4zMTQ3MzQsIDAuNDQxNjA0LCAwLjU2NjkxNSwgMC42NTYzODcsIDAuNzk5NjEyLCAwLjkyNDg2NywgMS4xMDM4NSIsIFwKLSAgICAgICAgICAiMC4zMzYxOTMsIDAuNDYzMDU5LCAwLjU4ODM3NSwgMC42Nzc4NTYsIDAuODIxMDc0LCAwLjk0NjM3NywgMS4xMjU0Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU1NTk3LCAwLjMwNDIxLCAwLjU1ODgxOSwgMC43NDEzNTEsIDEuMDMxNTQsIDEuMjg1OTQsIDEuNjUzNzgiLCBcCi0gICAgICAgICAgIjAuMDU1NTk2LCAwLjMwNDIxOSwgMC41NTc4MDYsIDAuNzQxMTU5LCAxLjAzMTUyLCAxLjI4ODg1LCAxLjY1MDAyIiwgXAotICAgICAgICAgICIwLjA1NTUyOSwgMC4zMDQyMDUsIDAuNTU3NzY5LCAwLjc0MTM2LCAxLjAzMTQ2LCAxLjI4ODYxLCAxLjY0OTU2IiwgXAotICAgICAgICAgICIwLjA1NTU5OCwgMC4zMDQyMjQsIDAuNTU3OCwgMC43NDAwOTksIDEuMDMxNSwgMS4yODg4NiwgMS42NDk5NyIsIFwKLSAgICAgICAgICAiMC4wNTU1MjMsIDAuMzAzNzU1LCAwLjU1NzU2NCwgMC43NDEyNjgsIDEuMDMzMDQsIDEuMjg1ODksIDEuNjQ5MzgiLCBcCi0gICAgICAgICAgIjAuMDU1NTksIDAuMzA0MTkzLCAwLjU1Nzc0OCwgMC43NDExNDYsIDEuMDMxNDQsIDEuMjg4MzgsIDEuNjUwNzIiLCBcCi0gICAgICAgICAgIjAuMDU1NTk4LCAwLjMwNDE1MywgMC41NTg5OTEsIDAuNzQxMjU5LCAxLjAzMTQ2LCAxLjI4NTg4LCAxLjY1Mzc0Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjkxMjIyLCAwLjQzODM1MywgMC41ODM5MTcsIDAuNjg3ODk0LCAwLjg1NDIxNywgMC45OTk3MjgsIDEuMjA3NjEiLCBcCi0gICAgICAgICAgIjAuMzAyOTI0LCAwLjQ1MDA5MSwgMC41OTU2NjgsIDAuNjk5NjIsIDAuODY1OTM4LCAxLjAxMTQ2LCAxLjIxOTM0IiwgXAotICAgICAgICAgICIwLjMxODE5OCwgMC40NjUzNCwgMC42MTA4OTMsIDAuNzE0ODQ3LCAwLjg4MTEzOSwgMS4wMjY3MSwgMS4yMzQ1OCIsIFwKLSAgICAgICAgICAiMC4zMzM0NzYsIDAuNDgwNjc3LCAwLjYyNjI0LCAwLjczMDE2LCAwLjg5NjUyNywgMS4wNDIxNSwgMS4yNDk5NCIsIFwKLSAgICAgICAgICAiMC4zNDg5MzYsIDAuNDk2MTEzLCAwLjY0MTY1NSwgMC43NDU2MywgMC45MTE5NDcsIDEuMDU3NDcsIDEuMjY1NDYiLCBcCi0gICAgICAgICAgIjAuMzczMTM4LCAwLjUyMDMwMiwgMC42NjU4OCwgMC43Njk4MzIsIDAuOTM2MTUxLCAxLjA4MTY3LCAxLjI4OTU1IiwgXAotICAgICAgICAgICIwLjM5NDc5OSwgMC41NDE5NjIsIDAuNjg3NDk4LCAwLjc5MTQ2LCAwLjk1NzgxMywgMS4xMDMzNCwgMS4zMTEyNyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2MDg4NSwgMC4zNDQzMDEsIDAuNjM0NDUzLCAwLjgzOTg2OCwgMS4xNzUxNywgMS40NjU5MiwgMS44ODA3OSIsIFwKLSAgICAgICAgICAiMC4wNjA4NjQsIDAuMzQ0MzIyLCAwLjYzMzExNSwgMC44NDMyODcsIDEuMTc1MSwgMS40NjU5MywgMS44ODA4OSIsIFwKLSAgICAgICAgICAiMC4wNjA4ODEsIDAuMzQ0MzAzLCAwLjYzNDA0NSwgMC44NDAzODYsIDEuMTc1MTMsIDEuNDY1ODgsIDEuODgwNzUiLCBcCi0gICAgICAgICAgIjAuMDYwODkyLCAwLjM0NDkxNCwgMC42MzQ1MzUsIDAuODQyNzcxLCAxLjE3NTE3LCAxLjQ2MDc5LCAxLjg4MDU3IiwgXAotICAgICAgICAgICIwLjA2MDg4OSwgMC4zNDQzNDQsIDAuNjM0ODE3LCAwLjg0MzI2NSwgMS4xNzUxLCAxLjQ2NTg3LCAxLjg3OTg1IiwgXAotICAgICAgICAgICIwLjA2MDg1NCwgMC4zNDQzMjIsIDAuNjMzMDMyLCAwLjg0MzI5NiwgMS4xNzUxLCAxLjQ2NTkyLCAxLjg4MDg4IiwgXAotICAgICAgICAgICIwLjA2MDg0NSwgMC4zNDQ5MTksIDAuNjM1MTU0LCAwLjg0MzA1NiwgMS4xNzUxOCwgMS40NjMyMiwgMS44NzUzMyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcHJlc2V0OwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE4NDg0OSwgMC4zMTE2NTgsIDAuNDM2OTU2LCAwLjUyNjUxLCAwLjY2OTY2OSwgMC43OTQ5MzYsIDAuOTczOTEyIiwgXAotICAgICAgICAgICIwLjE5NjQxMiwgMC4zMjMyMjEsIDAuNDQ4NTE2LCAwLjUzODA3LCAwLjY4MTIzLCAwLjgwNjQ5NiwgMC45ODU0NzEiLCBcCi0gICAgICAgICAgIjAuMjExMDI2LCAwLjMzNzgzMywgMC40NjMxNjUsIDAuNTUyNjg1LCAwLjY5NTg0NCwgMC44MjExMTEsIDEuMDAwMDkiLCBcCi0gICAgICAgICAgIjAuMjI1MzEyLCAwLjM1MjA5MywgMC40Nzc0MTksIDAuNTY2OTQyLCAwLjcxMDExNSwgMC44MzUzNjYsIDEuMDE0MzQiLCBcCi0gICAgICAgICAgIjAuMjM5Nzk1LCAwLjM2NjU4NywgMC40OTE5MTgsIDAuNTgxNDQyLCAwLjcyNDU5OSwgMC44NDk4NjUsIDEuMDI4ODQiLCBcCi0gICAgICAgICAgIjAuMjYyNjU0LCAwLjM4OTQyMiwgMC41MTQ3NDIsIDAuNjA0Mjg0LCAwLjc0NzQ0NCwgMC44NzI3ODQsIDEuMDUxNjkiLCBcCi0gICAgICAgICAgIjAuMjgxODE1LCAwLjQwODU3OCwgMC41MzM4OTgsIDAuNjIzNDQzLCAwLjc2NjU5OSwgMC44OTE5MjYsIDEuMDcwODYiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTUzMjksIDAuMzAzOTc3LCAwLjU1ODc4OCwgMC43NDE0MTgsIDEuMDMzMiwgMS4yODgxMSwgMS42NTM1NCIsIFwKLSAgICAgICAgICAiMC4wNTUyODUsIDAuMzA0MDc1LCAwLjU1ODg0MSwgMC43NDE0MTEsIDEuMDMzMiwgMS4yODg2LCAxLjY1MzYyIiwgXAotICAgICAgICAgICIwLjA1NTMzLCAwLjMwNDEzMywgMC41NTc5OTUsIDAuNzQxNDEyLCAxLjAzMzE5LCAxLjI4Nzk4LCAxLjY1MzQ0IiwgXAotICAgICAgICAgICIwLjA1NTI1MSwgMC4zMDM5NzEsIDAuNTU4OTkyLCAwLjc0MTM5NSwgMS4wMzE2NiwgMS4yODgzLCAxLjY1MDc5IiwgXAotICAgICAgICAgICIwLjA1NTI2NiwgMC4zMDM5NzUsIDAuNTU5MDUyLCAwLjc0MTM5NywgMS4wMzMxOCwgMS4yODg2LCAxLjY1MDkxIiwgXAotICAgICAgICAgICIwLjA1NTMyNCwgMC4zMDQxMTgsIDAuNTU4OTcyLCAwLjc0MTM2NSwgMS4wMzMyMywgMS4yODg1OSwgMS42NTEwNSIsIFwKLSAgICAgICAgICAiMC4wNTUzNDEsIDAuMzA0MDk4LCAwLjU1ODk2NiwgMC43NDEzNTgsIDEuMDMzMjQsIDEuMjg4NDksIDEuNjUwNzciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDkwNTYsIDAuMDA5MTU3LCAwLjAwOTE2OSwgMC4wMDkxNzMsIDAuMDA5MTc1LCAwLjAwOTE3NywgMC4wMDkxNzgiLCBcCi0gICAgICAgICAgIjAuMDA5MDQ1LCAwLjAwOTE0NiwgMC4wMDkxNTgsIDAuMDA5MTYyLCAwLjAwOTE2NSwgMC4wMDkxNjUsIDAuMDA5MTY3IiwgXAotICAgICAgICAgICIwLjAwOTAzNCwgMC4wMDkxMzUsIDAuMDA5MTQ2LCAwLjAwOTE1LCAwLjAwOTE1MywgMC4wMDkxNTQsIDAuMDA5MTU1IiwgXAotICAgICAgICAgICIwLjAwOTAyNSwgMC4wMDkxMjYsIDAuMDA5MTM4LCAwLjAwOTE0MSwgMC4wMDkxNDQsIDAuMDA5MTQ1LCAwLjAwOTE0NiIsIFwKLSAgICAgICAgICAiMC4wMDkwMTksIDAuMDA5MTE4LCAwLjAwOTEzMSwgMC4wMDkxMzMsIDAuMDA5MTM3LCAwLjAwOTEzNywgMC4wMDkxMzgiLCBcCi0gICAgICAgICAgIjAuMDA5MDA1LCAwLjAwOTEwNSwgMC4wMDkxMTgsIDAuMDA5MTIxLCAwLjAwOTEyNCwgMC4wMDkxMjUsIDAuMDA5MTI2IiwgXAotICAgICAgICAgICIwLjAwODk5OCwgMC4wMDkwOTksIDAuMDA5MTExLCAwLjAwOTExNSwgMC4wMDkxMTgsIDAuMDA5MTE5LCAwLjAwOTEyMSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA4Nzg5LCAwLjAwODkzLCAwLjAwODk1LCAwLjAwODk1NiwgMC4wMDg5NjEsIDAuMDA4OTY0LCAwLjAwODk2NyIsIFwKLSAgICAgICAgICAiMC4wMDg3NjcsIDAuMDA4OTE2LCAwLjAwODkzNywgMC4wMDg5NDQsIDAuMDA4OTUsIDAuMDA4OTUzLCAwLjAwODk1NSIsIFwKLSAgICAgICAgICAiMC4wMDg3NjYsIDAuMDA4OTA3LCAwLjAwODkyNywgMC4wMDg5MzMsIDAuMDA4OTM5LCAwLjAwODk0MSwgMC4wMDg5NDQiLCBcCi0gICAgICAgICAgIjAuMDA4NzUxLCAwLjAwODg5OSwgMC4wMDg5MiwgMC4wMDg5MjYsIDAuMDA4OTMyLCAwLjAwODkzNSwgMC4wMDg5MzciLCBcCi0gICAgICAgICAgIjAuMDA4NzQ0LCAwLjAwODg5NCwgMC4wMDg5MTUsIDAuMDA4OTIxLCAwLjAwODkyNywgMC4wMDg5MywgMC4wMDg5MzIiLCBcCi0gICAgICAgICAgIjAuMDA4NzQ1LCAwLjAwODg5NCwgMC4wMDg5MTYsIDAuMDA4OTIyLCAwLjAwODkyOCwgMC4wMDg5MzEsIDAuMDA4OTM0IiwgXAotICAgICAgICAgICIwLjAwODc1LCAwLjAwODg5NiwgMC4wMDg5MTcsIDAuMDA4OTIzLCAwLjAwODkyOSwgMC4wMDg5MzIsIDAuMDA4OTM0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiU04iOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA5NzAyLCAwLjAwOTgwMSwgMC4wMDk4MTMsIDAuMDA5ODE3LCAwLjAwOTgyLCAwLjAwOTgyNSwgMC4wMDk4MjciLCBcCi0gICAgICAgICAgIjAuMDA5NjgsIDAuMDA5Nzc5LCAwLjAwOTc5NSwgMC4wMDk3OTUsIDAuMDA5Nzk4LCAwLjAwOTgwMywgMC4wMDk4MDUiLCBcCi0gICAgICAgICAgIjAuMDA5NjYyLCAwLjAwOTc2MiwgMC4wMDk3NzQsIDAuMDA5Nzc4LCAwLjAwOTc4MSwgMC4wMDk3ODcsIDAuMDA5Nzg5IiwgXAotICAgICAgICAgICIwLjAwOTY0OCwgMC4wMDk3NDgsIDAuMDA5NzU5LCAwLjAwOTc2MywgMC4wMDk3NjgsIDAuMDA5NzcsIDAuMDA5NzcxIiwgXAotICAgICAgICAgICIwLjAwOTYzMywgMC4wMDk3MzMsIDAuMDA5NzQ2LCAwLjAwOTc0OSwgMC4wMDk3NTIsIDAuMDA5NzU4LCAwLjAwOTc2MSIsIFwKLSAgICAgICAgICAiMC4wMDk2MTcsIDAuMDA5NzE2LCAwLjAwOTcyOCwgMC4wMDk3MzIsIDAuMDA5NzM1LCAwLjAwOTczNywgMC4wMDk3MzgiLCBcCi0gICAgICAgICAgIjAuMDA5NjAzLCAwLjAwOTcwMiwgMC4wMDk3MTQsIDAuMDA5NzE5LCAwLjAwOTcyMSwgMC4wMDk3MjMsIDAuMDA5NzI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHNjYWxhcikgewotICAgICAgICB2YWx1ZXMoIjAiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFNFKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE0MTIyOTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE0MTIyODsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE0MTIyOTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDQ4MDYsIDAuMDA0ODA2LCAwLjAwNDgsIDAuMDA0Nzk0LCAwLjAwNDc4OSwgMC4wMDQ3ODQsIDAuMDA0NzgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDYxODIsIDAuMDA2MTU5LCAwLjAwNjE0LCAwLjAwNjEyOCwgMC4wMDYxMTgsIDAuMDA2MTA5LCAwLjAwNjEwNCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJTTiA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMzEyNSwgLTAuMDIsIC0wLjAwMTI1LCAwLjAxMTI1LCAwLjAyMzc1LCAwLjA0NjI1LCAwLjA2NzUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgMCwgMC4wMTI1LCAwLjAzNSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiLTAuMDYxMjUsIC0wLjA0Mzc1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLjAxNjI1LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjA3Mzc1LCAtMC4wNjI1LCAtMC4wNSwgLTAuMDMxMjUsIC0wLjAxODc1LCAwLjAwMzc1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDg2MjUsIC0wLjA3NSwgLTAuMDYyNSwgLTAuMDUsIC0wLjAzMTI1LCAtMC4wMDg3NSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMTA4NzUsIC0wLjA5NzUsIC0wLjA4NSwgLTAuMDcyNSwgLTAuMDUzNzUsIC0wLjAzMTI1LCAtMC4wMTYyNSIsIFwKLSAgICAgICAgICAiLTAuMTMsIC0wLjExODc1LCAtMC4xMDYyNSwgLTAuMDg3NSwgLTAuMDc1LCAtMC4wNTI1LCAtMC4wMzEyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEyNSwgMC4wMjM3NSwgMC4wMzYyNSwgMC4wNTUsIDAuMDY3NSwgMC4wOSwgMC4xMTEyNSIsIFwKLSAgICAgICAgICAiMC4wMDEyNSwgMC4wMTI1LCAwLjAzMTI1LCAwLjA0Mzc1LCAwLjA1NjI1LCAwLjA3ODc1LCAwLjEiLCBcCi0gICAgICAgICAgIi0wLjAxMTI1LCAwLCAwLjAxODc1LCAwLjAzMTI1LCAwLjA0Mzc1LCAwLjA2NjI1LCAwLjA4NzUiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTI1LCAwLjAwNjI1LCAwLjAxODc1LCAwLjAzMTI1LCAwLjA1Mzc1LCAwLjA3NSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAxODc1LCAtMC4wMDYyNSwgMC4wMDYyNSwgMC4wMTg3NSwgMC4wNDEyNSwgMC4wNjI1IiwgXAotICAgICAgICAgICItMC4wNTI1LCAtMC4wNDEyNSwgLTAuMDI4NzUsIC0wLjAxLCAwLjAwMjUsIDAuMDI1LCAwLjA0NjI1IiwgXAotICAgICAgICAgICItMC4wNjc1LCAtMC4wNTYyNSwgLTAuMDQzNzUsIC0wLjAyNSwgLTAuMDEyNSwgMC4wMSwgMC4wMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlNOIjsKLSAgICAgIHNkZl9jb25kIDogIlNOID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE3NSwgMC4xNjM3NSwgMC4xNDUsIDAuMTMyNSwgMC4xMTM3NSwgMC4wODUsIDAuMDciLCBcCi0gICAgICAgICAgIjAuMTg2MjUsIDAuMTc1LCAwLjE1NjI1LCAwLjE0Mzc1LCAwLjEyNSwgMC4wOTYyNSwgMC4wODEyNSIsIFwKLSAgICAgICAgICAiMC4xOTg3NSwgMC4xODc1LCAwLjE3NSwgMC4xNTYyNSwgMC4xMzc1LCAwLjExNSwgMC4wOTM3NSIsIFwKLSAgICAgICAgICAiMC4yMTc1LCAwLjIwNjI1LCAwLjE4NzUsIDAuMTc1LCAwLjE1NjI1LCAwLjEyNzUsIDAuMTA2MjUiLCBcCi0gICAgICAgICAgIjAuMjMsIDAuMjE4NzUsIDAuMjA2MjUsIDAuMTg3NSwgMC4xNjg3NSwgMC4xNDYyNSwgMC4xMjUiLCBcCi0gICAgICAgICAgIjAuMjUyNSwgMC4yNDEyNSwgMC4yMjg3NSwgMC4yMSwgMC4xOTEyNSwgMC4xNjg3NSwgMC4xNDc1IiwgXAotICAgICAgICAgICIwLjI3Mzc1LCAwLjI2MjUsIDAuMjQzNzUsIDAuMjMxMjUsIDAuMjEyNSwgMC4xODM3NSwgMC4xNjI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMiwgMC4xODg3NSwgMC4xNywgMC4xNTc1LCAwLjE0NSwgMC4xMjg3NSwgMC4xMTM3NSIsIFwKLSAgICAgICAgICAiMC4yMTEyNSwgMC4yLCAwLjE4NzUsIDAuMTY4NzUsIDAuMTU2MjUsIDAuMTQsIDAuMTI1IiwgXAotICAgICAgICAgICIwLjIzLCAwLjIxMjUsIDAuMiwgMC4xODc1LCAwLjE2ODc1LCAwLjE1MjUsIDAuMTM3NSIsIFwKLSAgICAgICAgICAiMC4yNDI1LCAwLjIzMTI1LCAwLjIxMjUsIDAuMiwgMC4xODc1LCAwLjE2NSwgMC4xNTYyNSIsIFwKLSAgICAgICAgICAiMC4yNTUsIDAuMjQzNzUsIDAuMjI1LCAwLjIxMjUsIDAuMiwgMC4xODM3NSwgMC4xNjg3NSIsIFwKLSAgICAgICAgICAiMC4yNzc1LCAwLjI2NjI1LCAwLjI0NzUsIDAuMjM1LCAwLjIyMjUsIDAuMiwgMC4xODUiLCBcCi0gICAgICAgICAgIjAuMjkyNSwgMC4yODEyNSwgMC4yNjI1LCAwLjI1LCAwLjIzNzUsIDAuMjIxMjUsIDAuMjA2MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFNJKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA4Njk2NDk7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwODY2NTI7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwODY5NjQ5OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzI3NSwgMC4wMDMyNTYsIDAuMDAzMjQ3LCAwLjAwMzIzOSwgMC4wMDMyMzUsIDAuMDAzMjI4LCAwLjAwMzIyNCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNTI0OCwgMC4wMDUyMzgsIDAuMDA1MjMyLCAwLjAwNTIyOSwgMC4wMDUyMjYsIDAuMDA1MjIzLCAwLjAwNTIyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlNFJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIlNFX0VRXzFfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4xLCAtMC4wODg3NSwgLTAuMDc2MjUsIC0wLjA2Mzc1LCAtMC4wNTEyNSwgLTAuMDM1LCAtMC4wMiIsIFwKLSAgICAgICAgICAiLTAuMTExMjUsIC0wLjEsIC0wLjA4NzUsIC0wLjA3NSwgLTAuMDYyNSwgLTAuMDQ2MjUsIC0wLjAzMTI1IiwgXAotICAgICAgICAgICItMC4xMjM3NSwgLTAuMTEyNSwgLTAuMSwgLTAuMDg3NSwgLTAuMDc1LCAtMC4wNTg3NSwgLTAuMDQzNzUiLCBcCi0gICAgICAgICAgIi0wLjEzNjI1LCAtMC4xMjUsIC0wLjExMjUsIC0wLjEsIC0wLjA5Mzc1LCAtMC4wNzEyNSwgLTAuMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMTQ4NzUsIC0wLjE0Mzc1LCAtMC4xMzEyNSwgLTAuMTE4NzUsIC0wLjEwNjI1LCAtMC4wOSwgLTAuMDc1IiwgXAotICAgICAgICAgICItMC4xNzEyNSwgLTAuMTYsIC0wLjE0NzUsIC0wLjEzNSwgLTAuMTI4NzUsIC0wLjExMjUsIC0wLjA5NzUiLCBcCi0gICAgICAgICAgIi0wLjE5MjUsIC0wLjE4MTI1LCAtMC4xNjg3NSwgLTAuMTU2MjUsIC0wLjE0Mzc1LCAtMC4xMjc1LCAtMC4xMTI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMCwgMC4wMTEyNSwgMC4wMjM3NSwgMC4wNDI1LCAwLjA1NSwgMC4wNzc1LCAwLjA5ODc1IiwgXAotICAgICAgICAgICItMC4wMTEyNSwgMCwgMC4wMTI1LCAwLjAzMTI1LCAwLjA0Mzc1LCAwLjA2NjI1LCAwLjA4NzUiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTI1LCAwLCAwLjAxODc1LCAwLjAzMTI1LCAwLjA1Mzc1LCAwLjA3NSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAyNSwgLTAuMDA2MjUsIDAuMDA2MjUsIDAuMDE4NzUsIDAuMDQxMjUsIDAuMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjAzNzUsIC0wLjAxODc1LCAtMC4wMDYyNSwgMC4wMDYyNSwgMC4wMjg3NSwgMC4wNSIsIFwKLSAgICAgICAgICAiLTAuMDY1LCAtMC4wNTM3NSwgLTAuMDM1LCAtMC4wMjI1LCAtMC4wMSwgMC4wMTI1LCAwLjAzMzc1IiwgXAotICAgICAgICAgICItMC4wOCwgLTAuMDY4NzUsIC0wLjA1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAwMjUsIDAuMDE4NzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlNFJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIlNFX0VRXzFfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNjg3NSwgMC4xNTc1LCAwLjEzODc1LCAwLjEyNjI1LCAwLjExMzc1LCAwLjA5NzUsIDAuMDgyNSIsIFwKLSAgICAgICAgICAiMC4xOCwgMC4xNjg3NSwgMC4xNSwgMC4xMzc1LCAwLjEyNSwgMC4xMDg3NSwgMC4wOTM3NSIsIFwKLSAgICAgICAgICAiMC4xOTI1LCAwLjE4MTI1LCAwLjE2ODc1LCAwLjE1NjI1LCAwLjEzNzUsIDAuMTIxMjUsIDAuMTA2MjUiLCBcCi0gICAgICAgICAgIjAuMjExMjUsIDAuMTkzNzUsIDAuMTgxMjUsIDAuMTY4NzUsIDAuMTUsIDAuMTMzNzUsIDAuMTE4NzUiLCBcCi0gICAgICAgICAgIjAuMjIzNzUsIDAuMjA2MjUsIDAuMTkzNzUsIDAuMTgxMjUsIDAuMTY4NzUsIDAuMTQ2MjUsIDAuMTMxMjUiLCBcCi0gICAgICAgICAgIjAuMjQ2MjUsIDAuMjI4NzUsIDAuMjE2MjUsIDAuMjAzNzUsIDAuMTg1LCAwLjE2ODc1LCAwLjE1Mzc1IiwgXAotICAgICAgICAgICIwLjI2MTI1LCAwLjI1LCAwLjIzMTI1LCAwLjIxODc1LCAwLjIwNjI1LCAwLjE5LCAwLjE3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE0Mzc1LCAwLjEzMjUsIDAuMTEzNzUsIDAuMTAxMjUsIDAuMDgyNSwgMC4wNTM3NSwgMC4wMzI1IiwgXAotICAgICAgICAgICIwLjE1NSwgMC4xNDM3NSwgMC4xMjUsIDAuMTEyNSwgMC4wOTM3NSwgMC4wNjUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMTY3NSwgMC4xNTYyNSwgMC4xMzc1LCAwLjEyNSwgMC4xMDYyNSwgMC4wNzc1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICIwLjE4LCAwLjE2ODc1LCAwLjE1LCAwLjEzNzUsIDAuMTE4NzUsIDAuMDksIDAuMDY4NzUiLCBcCi0gICAgICAgICAgIjAuMTkyNSwgMC4xODEyNSwgMC4xNjI1LCAwLjE0Mzc1LCAwLjEzMTI1LCAwLjEwMjUsIDAuMDgxMjUiLCBcCi0gICAgICAgICAgIjAuMjA4NzUsIDAuMTk3NSwgMC4xODUsIDAuMTY2MjUsIDAuMTQ3NSwgMC4xMjUsIDAuMTAzNzUiLCBcCi0gICAgICAgICAgIjAuMjMsIDAuMjEyNSwgMC4yLCAwLjE4MTI1LCAwLjE2ODc1LCAwLjE0LCAwLjExODc1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTTikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNjI4NzQ7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNTA3Njk7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNjI4NzQ7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNDg1LCAwLjAwMDQ4NCwgMC4wMDA0ODQsIDAuMDAwNDg0LCAwLjAwMDQ4NCwgMC4wMDA0ODQsIDAuMDAwNDg0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNDkzLCAwLjAwMDQ4OCwgMC4wMDA0ODcsIDAuMDAwNDg3LCAwLjAwMDQ4NywgMC4wMDA0ODcsIDAuMDAwNDg3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRCYhU0UmIVNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9TRV9FUV8wX0FOX1NJX0VRXzAgPT0gMSdiMSI7Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4xODQ4NDksIDAuMTk2NDEyLCAwLjIxMTAyNiwgMC4yMjUzMTIsIDAuMjM5Nzk1LCAwLjI2MjY1MywgMC4yODE4MTUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiByZWNvdmVyeV9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEJiFTRSYhU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1NFX0VRXzBfQU5fU0lfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChyZWNvdmVyeV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMCwgLTAuMDE3NSwgLTAuMDMsIC0wLjA0ODc1LCAtMC4wNjEyNSwgLTAuMDksIC0wLjExMTI1IiwgXAotICAgICAgICAgICIwLjAxMTI1LCAtMC4wMDYyNSwgLTAuMDE4NzUsIC0wLjAzNzUsIC0wLjA1NjI1LCAtMC4wNzg3NSwgLTAuMSIsIFwKLSAgICAgICAgICAiMC4wMjM3NSwgMC4wMDYyNSwgLTAuMDA2MjUsIC0wLjAyNSwgLTAuMDQzNzUsIC0wLjA2NjI1LCAtMC4wODc1IiwgXAotICAgICAgICAgICIwLjAzNjI1LCAwLjAyNSwgMC4wMDYyNSwgLTAuMDEyNSwgLTAuMDI1LCAtMC4wNTM3NSwgLTAuMDc1IiwgXAotICAgICAgICAgICIwLjA0ODc1LCAwLjAzNzUsIDAuMDE4NzUsIDAsIC0wLjAxMjUsIC0wLjA0MTI1LCAtMC4wNjI1IiwgXAotICAgICAgICAgICIwLjA3MTI1LCAwLjA1Mzc1LCAwLjA0MTI1LCAwLjAyMjUsIDAuMDAzNzUsIC0wLjAxODc1LCAtMC4wNCIsIFwKLSAgICAgICAgICAiMC4wODYyNSwgMC4wNzUsIDAuMDU2MjUsIDAuMDQzNzUsIDAuMDI1LCAtMC4wMDM3NSwgLTAuMDI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogcmVtb3ZhbF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEJiFTRSYhU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1NFX0VRXzBfQU5fU0lfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChyZW1vdmFsX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5Mzc1LCAwLjEwNSwgMC4xMTc1LCAwLjEzNjI1LCAwLjE0ODc1LCAwLjE3NzUsIDAuMTk4NzUiLCBcCi0gICAgICAgICAgIjAuMDgyNSwgMC4wOTM3NSwgMC4xMDYyNSwgMC4xMjUsIDAuMTM3NSwgMC4xNjYyNSwgMC4xODc1IiwgXAotICAgICAgICAgICIwLjA3LCAwLjA4MTI1LCAwLjA5Mzc1LCAwLjExMjUsIDAuMTI1LCAwLjE1Mzc1LCAwLjE3NSIsIFwKLSAgICAgICAgICAiMC4wNTc1LCAwLjA2ODc1LCAwLjA4MTI1LCAwLjEsIDAuMTEyNSwgMC4xNDEyNSwgMC4xNjI1IiwgXAotICAgICAgICAgICIwLjA0NSwgMC4wNTYyNSwgMC4wNjg3NSwgMC4wODc1LCAwLjEsIDAuMTI4NzUsIDAuMTUiLCBcCi0gICAgICAgICAgIjAuMDIyNSwgMC4wMzM3NSwgMC4wNTI1LCAwLjA2NSwgMC4wODM3NSwgMC4xMDYyNSwgMC4xMjc1IiwgXAotICAgICAgICAgICIwLjAwNzUsIDAuMDE4NzUsIDAuMDMxMjUsIDAuMDUsIDAuMDYyNSwgMC4wOTEyNSwgMC4xMDYyNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogU0RGRlNIUVg4ICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoU0RGRlNIUVg4KSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuNjgwNzM1OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIGZmIChOMzAsUUJJTlQpIHsKLSAgICBuZXh0X3N0YXRlIDogIigoU0UgU0kpICsgKCFTRSBEKSkiOwotICAgIGNsb2NrZWRfb24gOiAiQ0siOwotICAgIHByZXNldCA6ICIoIVNOKSI7Ci0gIH0KLSAgcGluKENLKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA1NzA2NTU7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNTcwMzk3OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDU3MDY1NTsKLSAgICBjbG9jayA6IHRydWU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyNjA3LCAwLjAwMjU5NywgMC4wMDI1ODYsIDAuMDAyNTgxLCAwLjAwMjU3NywgMC4wMDI1NywgMC4wMDI1NjYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDY1MTIsIDAuMDA2NTAzLCAwLjAwNjQ5NSwgMC4wMDY0ODksIDAuMDA2NDg2LCAwLjAwNjQ5MywgMC4wMDY0OTIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFEJiFTRSYhU0kmU04iOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1NFX0VRXzBfQU5fU0lfRVFfMF9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMzA4OTY4LCAwLjMyMDU1NywgMC4zMzU5NiwgMC4zNTEzODgsIDAuMzY2NzU5LCAwLjM5MTE4OSwgMC40MTI1OTUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjIzMzEwMiwgMC4yNDQ1NjksIDAuMjU5NDY2LCAwLjI3NDM1MywgMC4yODkwODMsIDAuMzEyNDM0LCAwLjMzMjciKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEQpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDgxMTAxMTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA4MDcxNDM7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwODExMDExOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzY1OSwgMC4wMDM2NDEsIDAuMDAzNjMxLCAwLjAwMzYyMywgMC4wMDM2MTksIDAuMDAzNjEyLCAwLjAwMzYwNyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNTIyMiwgMC4wMDUyMTIsIDAuMDA1MjA3LCAwLjAwNTIwMywgMC4wMDUyLCAwLjAwNTE5NiwgMC4wMDUxOTMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIVNFJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIlNFX0VRXzBfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4xLCAtMC4wODg3NSwgLTAuMDgyNSwgLTAuMDcsIC0wLjA1NzUsIC0wLjA0MTI1LCAtMC4wMjYyNSIsIFwKLSAgICAgICAgICAiLTAuMTExMjUsIC0wLjEwNjI1LCAtMC4wOTM3NSwgLTAuMDgxMjUsIC0wLjA2ODc1LCAtMC4wNTI1LCAtMC4wMzc1IiwgXAotICAgICAgICAgICItMC4xMjM3NSwgLTAuMTE4NzUsIC0wLjEwNjI1LCAtMC4wOTM3NSwgLTAuMDgxMjUsIC0wLjA2NSwgLTAuMDUiLCBcCi0gICAgICAgICAgIi0wLjE0MjUsIC0wLjEzMTI1LCAtMC4xMTg3NSwgLTAuMTA2MjUsIC0wLjA5Mzc1LCAtMC4wNzc1LCAtMC4wNjI1IiwgXAotICAgICAgICAgICItMC4xNTUsIC0wLjE0Mzc1LCAtMC4xMzEyNSwgLTAuMTE4NzUsIC0wLjEwNjI1LCAtMC4wOSwgLTAuMDc1IiwgXAotICAgICAgICAgICItMC4xNzc1LCAtMC4xNjYyNSwgLTAuMTUzNzUsIC0wLjE0MTI1LCAtMC4xMjg3NSwgLTAuMTEyNSwgLTAuMDk3NSIsIFwKLSAgICAgICAgICAiLTAuMTkyNSwgLTAuMTgxMjUsIC0wLjE2ODc1LCAtMC4xNTYyNSwgLTAuMTUsIC0wLjEyNzUsIC0wLjExMjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLCAwLjAxMTI1LCAwLjAyMzc1LCAwLjAzNjI1LCAwLjA1NSwgMC4wNzc1LCAwLjA5MjUiLCBcCi0gICAgICAgICAgIi0wLjAxMTI1LCAwLCAwLjAxMjUsIDAuMDI1LCAwLjA0Mzc1LCAwLjA2NjI1LCAwLjA4MTI1IiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDEyNSwgMCwgMC4wMTI1LCAwLjAzMTI1LCAwLjA1Mzc1LCAwLjA2ODc1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDI1LCAtMC4wMTI1LCAwLCAwLjAxODc1LCAwLjA0MTI1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDM3NSwgLTAuMDI1LCAtMC4wMTI1LCAwLjAwNjI1LCAwLjAyODc1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICItMC4wNzEyNSwgLTAuMDUzNzUsIC0wLjA0MTI1LCAtMC4wMjg3NSwgLTAuMDE2MjUsIDAuMDA2MjUsIDAuMDI3NSIsIFwKLSAgICAgICAgICAiLTAuMDg2MjUsIC0wLjA3NSwgLTAuMDU2MjUsIC0wLjA0Mzc1LCAtMC4wMzEyNSwgLTAuMDA4NzUsIDAuMDEyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIVNFJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIlNFX0VRXzBfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xODEyNSwgMC4xNywgMC4xNTEyNSwgMC4xMzg3NSwgMC4xMjYyNSwgMC4xMDM3NSwgMC4wODg3NSIsIFwKLSAgICAgICAgICAiMC4xOTI1LCAwLjE4MTI1LCAwLjE2MjUsIDAuMTUsIDAuMTM3NSwgMC4xMTUsIDAuMSIsIFwKLSAgICAgICAgICAiMC4yMDUsIDAuMTkzNzUsIDAuMTc1LCAwLjE2MjUsIDAuMTUsIDAuMTI3NSwgMC4xMTI1IiwgXAotICAgICAgICAgICIwLjIxNzUsIDAuMjA2MjUsIDAuMTg3NSwgMC4xNzUsIDAuMTYyNSwgMC4xNDYyNSwgMC4xMzEyNSIsIFwKLSAgICAgICAgICAiMC4yMywgMC4yMTg3NSwgMC4yMDYyNSwgMC4xODc1LCAwLjE3NSwgMC4xNTg3NSwgMC4xNDM3NSIsIFwKLSAgICAgICAgICAiMC4yNTI1LCAwLjI0MTI1LCAwLjIyMjUsIDAuMjEsIDAuMTk3NSwgMC4xNzUsIDAuMTY2MjUiLCBcCi0gICAgICAgICAgIjAuMjczNzUsIDAuMjU2MjUsIDAuMjQzNzUsIDAuMjI1LCAwLjIxMjUsIDAuMTk2MjUsIDAuMTgxMjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNSwgMC4xMzI1LCAwLjEyLCAwLjEwMTI1LCAwLjA4ODc1LCAwLjA2LCAwLjAzODc1IiwgXAotICAgICAgICAgICIwLjE2MTI1LCAwLjE0Mzc1LCAwLjEzMTI1LCAwLjExMjUsIDAuMSwgMC4wNzEyNSwgMC4wNSIsIFwKLSAgICAgICAgICAiMC4xNzM3NSwgMC4xNjI1LCAwLjE0Mzc1LCAwLjEyNSwgMC4xMTI1LCAwLjA4Mzc1LCAwLjA2MjUiLCBcCi0gICAgICAgICAgIjAuMTg2MjUsIDAuMTc1LCAwLjE1NjI1LCAwLjEzNzUsIDAuMTI1LCAwLjA5NjI1LCAwLjA3NSIsIFwKLSAgICAgICAgICAiMC4xOTg3NSwgMC4xODc1LCAwLjE2ODc1LCAwLjE1LCAwLjEzNzUsIDAuMTA4NzUsIDAuMDg3NSIsIFwKLSAgICAgICAgICAiMC4yMTUsIDAuMjAzNzUsIDAuMTkxMjUsIDAuMTcyNSwgMC4xNTM3NSwgMC4xMzEyNSwgMC4xMSIsIFwKLSAgICAgICAgICAiMC4yMzYyNSwgMC4yMjUsIDAuMjA2MjUsIDAuMTg3NSwgMC4xNzUsIDAuMTQ2MjUsIDAuMTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihRKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDEuMDQ3MTY7Ci0gICAgZnVuY3Rpb24gOiAiTjMwIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBub25fdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJpc2luZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI0ODQzMiwgMC4zMTQ4NDYsIDAuMzc4MDIsIDAuNDIzMTA5LCAwLjQ5NTE4NCwgMC41NTgyNzgsIDAuNjQ4NDE0IiwgXAotICAgICAgICAgICIwLjI2MDI2NSwgMC4zMjY2NzcsIDAuMzg5ODUyLCAwLjQzNDk0NSwgMC41MDcwMTksIDAuNTcwMTExLCAwLjY2MDI1IiwgXAotICAgICAgICAgICIwLjI3NTM2NSwgMC4zNDE3ODksIDAuNDA0OTYzLCAwLjQ1MDA1LCAwLjUyMjEyNiwgMC41ODUyMTcsIDAuNjc1MzU5IiwgXAotICAgICAgICAgICIwLjI5MDc3LCAwLjM1NzE4NywgMC40MjAzNTcsIDAuNDY1NDQ5LCAwLjUzNzUyMywgMC42MDA2MTYsIDAuNjkwNzU0IiwgXAotICAgICAgICAgICIwLjMwNjEzMSwgMC4zNzI1ODcsIDAuNDM1NzY0LCAwLjQ4MDg0OCwgMC41NTI5MzcsIDAuNjE2MDA0LCAwLjcwNjE2IiwgXAotICAgICAgICAgICIwLjMzMDM3MSwgMC4zOTY4MDEsIDAuNDU5OTc3LCAwLjUwNTA0OCwgMC41NzcxNDEsIDAuNjQwMjMsIDAuNzMwMzM4IiwgXAotICAgICAgICAgICIwLjM1MTg1NCwgMC40MTgyNywgMC40ODE0MzQsIDAuNTI2NTEsIDAuNTk4NTc0LCAwLjY2MTY5LCAwLjc1MTczMiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0MDAwOSwgMC4xNjEyOTQsIDAuMjg3OTcsIDAuMzc5MjM0LCAwLjUyNTQ5MSwgMC42NTM0ODQsIDAuODM4NzU1IiwgXAotICAgICAgICAgICIwLjA0MDAwMywgMC4xNjEyODQsIDAuMjg3ODAxLCAwLjM3ODkzNCwgMC41MjU0NzksIDAuNjUyNzE1LCAwLjgzODc1MyIsIFwKLSAgICAgICAgICAiMC4wMzk4MjksIDAuMTYxMjYyLCAwLjI4NzkyMywgMC4zNzkyMzIsIDAuNTI1NTAyLCAwLjY1MjQ2LCAwLjgzODc2MiIsIFwKLSAgICAgICAgICAiMC4wMzk5OTcsIDAuMTYxMjgzLCAwLjI4Nzk1OCwgMC4zNzg5MzQsIDAuNTI1NDc3LCAwLjY1MjQ1NywgMC44Mzg3NDgiLCBcCi0gICAgICAgICAgIjAuMDQwMDMyLCAwLjE2MTI4LCAwLjI4Nzk0LCAwLjM3OTI0LCAwLjUyNjM1NSwgMC42NTQ3MzQsIDAuODM4NzU1IiwgXAotICAgICAgICAgICIwLjAzOTkxMSwgMC4xNjExNDIsIDAuMjg3OTQxLCAwLjM3ODk2NiwgMC41MjYyNDksIDAuNjUzNDI0LCAwLjgzNjAxMiIsIFwKLSAgICAgICAgICAiMC4wMzk4NTIsIDAuMTYxMjY1LCAwLjI4Nzk0NSwgMC4zNzgzOCwgMC41MjYxODksIDAuNjUyNDUxLCAwLjgzNjkyMSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMwODk2OCwgMC4zODY1OSwgMC40NjEwODgsIDAuNTE0MjA0LCAwLjU5OTEzOSwgMC42NzM0NDUsIDAuNzc5NjAzIiwgXAotICAgICAgICAgICIwLjMyMDU1NywgMC4zOTgxOTEsIDAuNDcyNjgxLCAwLjUyNTc5NiwgMC42MTA3MzksIDAuNjg1MDQ4LCAwLjc5MTIiLCBcCi0gICAgICAgICAgIjAuMzM1OTYsIDAuNDEzNTY0LCAwLjQ4ODA1NCwgMC41NDExNzksIDAuNjI2MTAxLCAwLjcwMDQxLCAwLjgwNjU1NyIsIFwKLSAgICAgICAgICAiMC4zNTEzODgsIDAuNDI5MDIxLCAwLjUwMzUwOCwgMC41NTY2MjIsIDAuNjQxNTY0LCAwLjcxNTg3MSwgMC44MjIwMjMiLCBcCi0gICAgICAgICAgIjAuMzY2NzU5LCAwLjQ0NDM4NSwgMC41MTg4NzMsIDAuNTcxOTk4LCAwLjY1NjkzNiwgMC43MzEyNDUsIDAuODM3Mzk3IiwgXAotICAgICAgICAgICIwLjM5MTE4OSwgMC40Njg4MDcsIDAuNTQzMjk1LCAwLjU5NjQxLCAwLjY4MTM0MywgMC43NTU2NDksIDAuODYxODA1IiwgXAotICAgICAgICAgICIwLjQxMjU5NSwgMC40OTAyMTQsIDAuNTY0NzEsIDAuNjE3ODI2LCAwLjcwMjc4LCAwLjc3NzA4MSwgMC44ODMyNTEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDM2ODksIDAuMTg0ODA4LCAwLjMzMDgzNywgMC40MzY2MzIsIDAuNjA1MDQ5LCAwLjc1MzQ3MywgMC45NjYxMyIsIFwKLSAgICAgICAgICAiMC4wNDM3MjQsIDAuMTg0OCwgMC4zMzA4MSwgMC40MzYzMSwgMC42MDQ3OTIsIDAuNzUyNjc5LCAwLjk2NjExMiIsIFwKLSAgICAgICAgICAiMC4wNDM2MTMsIDAuMTg0NjM4LCAwLjMzMDk3NiwgMC40MzYxNjgsIDAuNjA0OTk5LCAwLjc1NDM3NywgMC45NjY3MTEiLCBcCi0gICAgICAgICAgIjAuMDQzNjUxLCAwLjE4NDc4OSwgMC4zMzA4NDYsIDAuNDM2Mjc2LCAwLjYwNTk3OCwgMC43NTM1MSwgMC45NjU3NjQiLCBcCi0gICAgICAgICAgIjAuMDQzNjQ3LCAwLjE4NDc5MSwgMC4zMzA4LCAwLjQzNjEyMSwgMC42MDQ4NjIsIDAuNzUyNzI0LCAwLjk2NjIxOSIsIFwKLSAgICAgICAgICAiMC4wNDM2MjgsIDAuMTg0ODAyLCAwLjMzMDg4MywgMC40MzYwNjQsIDAuNjA2MTU5LCAwLjc1NDE3MSwgMC45NjYxNjEiLCBcCi0gICAgICAgICAgIjAuMDQzNzM4LCAwLjE4NDY1MSwgMC4zMzA4OTQsIDAuNDM1OTkzLCAwLjYwNDg4MSwgMC43NTM3MTQsIDAuOTY3MDU5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiBwcmVzZXQ7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTk3MjU3LCAwLjI2MzY1LCAwLjMyNjgwNCwgMC4zNzE4OTUsIDAuNDQ0MDA3LCAwLjUwNzEyOSwgMC41OTcyMjkiLCBcCi0gICAgICAgICAgIjAuMjA4ODk2LCAwLjI3NTI4OCwgMC4zMzg0NDIsIDAuMzgzNTMzLCAwLjQ1NTY0NiwgMC41MTg3NjgsIDAuNjA4ODY4IiwgXAotICAgICAgICAgICIwLjIyMjkxLCAwLjI4OTMwMSwgMC4zNTI0NTUsIDAuMzk3NTQ2LCAwLjQ2OTY1NywgMC41MzI3ODEsIDAuNjIyODgxIiwgXAotICAgICAgICAgICIwLjIzNjAwNiwgMC4zMDIzOTUsIDAuMzY1NTUsIDAuNDEwNjQxLCAwLjQ4Mjc1MiwgMC41NDU4NzYsIDAuNjM1OTc2IiwgXAotICAgICAgICAgICIwLjI0OTQwNCwgMC4zMTU1NjQsIDAuMzc4NzM3LCAwLjQyMzc4NywgMC40OTU5MjQsIDAuNTU5MDQyLCAwLjY0OTE0NCIsIFwKLSAgICAgICAgICAiMC4yNzIwODMsIDAuMzM4MzI1LCAwLjQwMTUxLCAwLjQ0NjU5NSwgMC41MTg3MDYsIDAuNTgxODAxLCAwLjY3MTkyMyIsIFwKLSAgICAgICAgICAiMC4yOTE1NDcsIDAuMzU3NzIxLCAwLjQyMDg5MSwgMC40NjU5NjMsIDAuNTM4MDc0LCAwLjYwMTIsIDAuNjkxMyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzOTg3NSwgMC4xNjEwMzMsIDAuMjg3NjU3LCAwLjM3OTQ1MiwgMC41MjYwMjksIDAuNjU1MTQ3LCAwLjgzODY5MyIsIFwKLSAgICAgICAgICAiMC4wMzk4NjUsIDAuMTYwOTQyLCAwLjI4NzU4NCwgMC4zNzk0MjcsIDAuNTI1NDU0LCAwLjY1NTE0OCwgMC44Mzg2ODgiLCBcCi0gICAgICAgICAgIjAuMDM5ODY1LCAwLjE2MTA1MywgMC4yODcxNTcsIDAuMzc4OTY1LCAwLjUyNTM5NywgMC42NTUxNDcsIDAuODM4Njc0IiwgXAotICAgICAgICAgICIwLjAzOTgyNywgMC4xNjEwNTcsIDAuMjg3MTU3LCAwLjM3ODk1NywgMC41MjU0MDgsIDAuNjU1MTM4LCAwLjgzODY2NCIsIFwKLSAgICAgICAgICAiMC4wMzk5OTMsIDAuMTYxMDU1LCAwLjI4Nzc0OCwgMC4zNzg5NTUsIDAuNTI1NTAxLCAwLjY1NTEzNywgMC44Mzg3NjMiLCBcCi0gICAgICAgICAgIjAuMDM5ODY0LCAwLjE2MDkzMywgMC4yODc5NDksIDAuMzc5NDU3LCAwLjUyNjAwNiwgMC42NTUxMjcsIDAuODM4NjYzIiwgXAotICAgICAgICAgICIwLjAzOTkxMiwgMC4xNjA5MjMsIDAuMjg3OTA0LCAwLjM3ODkzOCwgMC41MjU1MjMsIDAuNjU1MTA3LCAwLjgzODczNyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMzE2NywgMC4wMTM0MTcsIDAuMDEzNDY3LCAwLjAxMzQ4MywgMC4wMTM0OTcsIDAuMDEzNTA4LCAwLjAxMzUwNiIsIFwKLSAgICAgICAgICAiMC4wMTMxNTUsIDAuMDEzNDA2LCAwLjAxMzQ1NywgMC4wMTM0NzIsIDAuMDEzNDg4LCAwLjAxMzQ5NiwgMC4wMTM0OTkiLCBcCi0gICAgICAgICAgIjAuMDEzMTQ5LCAwLjAxMzM5NywgMC4wMTM0NDYsIDAuMDEzNDYyLCAwLjAxMzQ3NSwgMC4wMTM0ODIsIDAuMDEzNDkzIiwgXAotICAgICAgICAgICIwLjAxMzEzNiwgMC4wMTMzODYsIDAuMDEzNDM2LCAwLjAxMzQ1MiwgMC4wMTM0NjYsIDAuMDEzNDczLCAwLjAxMzQ3OSIsIFwKLSAgICAgICAgICAiMC4wMTMxMjUsIDAuMDEzMzc4LCAwLjAxMzQyOCwgMC4wMTM0NDQsIDAuMDEzNDU4LCAwLjAxMzQ2NSwgMC4wMTM0NzIiLCBcCi0gICAgICAgICAgIjAuMDEzMTIsIDAuMDEzMzY4LCAwLjAxMzQxOCwgMC4wMTM0MzMsIDAuMDEzNDQ3LCAwLjAxMzQ1NywgMC4wMTM0NjEiLCBcCi0gICAgICAgICAgIjAuMDEzMTE1LCAwLjAxMzM2MiwgMC4wMTM0MTEsIDAuMDEzNDMsIDAuMDEzNDQxLCAwLjAxMzQ0OCwgMC4wMTM0NTgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMjg5NCwgMC4wMTMyMjYsIDAuMDEzMzA3LCAwLjAxMzMzNSwgMC4wMTMzNiwgMC4wMTMzNzMsIDAuMDEzMzg2IiwgXAotICAgICAgICAgICIwLjAxMjg4NCwgMC4wMTMyMTUsIDAuMDEzMjk3LCAwLjAxMzMyNSwgMC4wMTMzNTEsIDAuMDEzMzY0LCAwLjAxMzM3NiIsIFwKLSAgICAgICAgICAiMC4wMTI4ODQsIDAuMDEzMjExLCAwLjAxMzI5LCAwLjAxMzMxOCwgMC4wMTMzNDIsIDAuMDEzMzU1LCAwLjAxMzM2NyIsIFwKLSAgICAgICAgICAiMC4wMTI4NzUsIDAuMDEzMjAzLCAwLjAxMzI4MiwgMC4wMTMzMDksIDAuMDEzMzM0LCAwLjAxMzM0OCwgMC4wMTMzNTkiLCBcCi0gICAgICAgICAgIjAuMDEyODU3LCAwLjAxMzE5LCAwLjAxMzI3MiwgMC4wMTMzLCAwLjAxMzMyNiwgMC4wMTMzNCwgMC4wMTMzNTIiLCBcCi0gICAgICAgICAgIjAuMDEyODgzLCAwLjAxMzIwMiwgMC4wMTMyOCwgMC4wMTMzMDcsIDAuMDEzMzMxLCAwLjAxMzM0NCwgMC4wMTMzNTYiLCBcCi0gICAgICAgICAgIjAuMDEyODYyLCAwLjAxMzE5MSwgMC4wMTMyNzMsIDAuMDEzMzAxLCAwLjAxMzMyNywgMC4wMTMzNCwgMC4wMTMzNTMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTM3NTgsIDAuMDE0MDExLCAwLjAxNDA2NCwgMC4wMTQwNzYsIDAuMDE0MDkxLCAwLjAxNDEwMiwgMC4wMTQxMDQiLCBcCi0gICAgICAgICAgIjAuMDEzNzM2LCAwLjAxMzk4OCwgMC4wMTQwMzgsIDAuMDE0MDU0LCAwLjAxNDA2OCwgMC4wMTQwNzYsIDAuMDE0MDgyIiwgXAotICAgICAgICAgICIwLjAxMzcyNSwgMC4wMTM5NzMsIDAuMDE0MDMyLCAwLjAxNDAzOSwgMC4wMTQwNTMsIDAuMDE0MDY1LCAwLjAxNDA2NyIsIFwKLSAgICAgICAgICAiMC4wMTM3MDgsIDAuMDEzOTU3LCAwLjAxNDAxNSwgMC4wMTQwMjMsIDAuMDE0MDM3LCAwLjAxNDA0NCwgMC4wMTQwNTEiLCBcCi0gICAgICAgICAgIjAuMDEzNjk4LCAwLjAxMzk0NSwgMC4wMTM5OTQsIDAuMDE0MDE1LCAwLjAxNDAyNSwgMC4wMTQwMzcsIDAuMDE0MDM5IiwgXAotICAgICAgICAgICIwLjAxMzY3MywgMC4wMTM5MjQsIDAuMDEzOTc3LCAwLjAxMzk5MywgMC4wMTQwMDUsIDAuMDE0MDE0LCAwLjAxNDAxOSIsIFwKLSAgICAgICAgICAiMC4wMTM2NjYsIDAuMDEzOTEyLCAwLjAxMzk2MiwgMC4wMTM5NzgsIDAuMDE0LCAwLjAxNDAwNSwgMC4wMTQwMTIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoc2NhbGFyKSB7Ci0gICAgICAgIHZhbHVlcygiMCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oU0UpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTQwNzM5OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTQwNjc0OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTQwNzM5OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNDkyMSwgMC4wMDQ5MiwgMC4wMDQ5MTUsIDAuMDA0OTA2LCAwLjAwNDkwNCwgMC4wMDQ4OTgsIDAuMDA0ODk1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA2Mzc3LCAwLjAwNjM1NSwgMC4wMDYzMzcsIDAuMDA2MzI0LCAwLjAwNjMxNSwgMC4wMDYzMDUsIDAuMDA2MzAxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlNOIjsKLSAgICAgIHNkZl9jb25kIDogIlNOID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAzMTI1LCAtMC4wMiwgLTAuMDA3NSwgMC4wMTEyNSwgMC4wMjM3NSwgMC4wNDYyNSwgMC4wNjc1IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLjAxMjUsIDAuMDM1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICItMC4wNjEyNSwgLTAuMDUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAuMDE2MjUsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDczNzUsIC0wLjA2MjUsIC0wLjA1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIDAuMDAzNzUsIDAuMDI1IiwgXAotICAgICAgICAgICItMC4wOTI1LCAtMC4wNzUsIC0wLjA2MjUsIC0wLjA1LCAtMC4wMzc1LCAtMC4wMTUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjExNSwgLTAuMTAzNzUsIC0wLjA4NSwgLTAuMDcyNSwgLTAuMDYsIC0wLjAzNzUsIC0wLjAxNjI1IiwgXAotICAgICAgICAgICItMC4xMywgLTAuMTE4NzUsIC0wLjEwNjI1LCAtMC4wOTM3NSwgLTAuMDc1LCAtMC4wNTI1LCAtMC4wMzEyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEyNSwgMC4wMjM3NSwgMC4wMzYyNSwgMC4wNTUsIDAuMDY3NSwgMC4wOSwgMC4xMTEyNSIsIFwKLSAgICAgICAgICAiMC4wMDEyNSwgMC4wMTI1LCAwLjAzMTI1LCAwLjA0Mzc1LCAwLjA1NjI1LCAwLjA3ODc1LCAwLjEiLCBcCi0gICAgICAgICAgIi0wLjAxMTI1LCAwLCAwLjAxODc1LCAwLjAzMTI1LCAwLjA0Mzc1LCAwLjA2NjI1LCAwLjA4NzUiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTI1LCAwLjAwNjI1LCAwLjAxODc1LCAwLjAzMTI1LCAwLjA1Mzc1LCAwLjA3NSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAyNSwgLTAuMDA2MjUsIDAuMDA2MjUsIDAuMDE4NzUsIDAuMDQxMjUsIDAuMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDUyNSwgLTAuMDQxMjUsIC0wLjAyODc1LCAtMC4wMTYyNSwgMC4wMDI1LCAwLjAyNSwgMC4wNCIsIFwKLSAgICAgICAgICAiLTAuMDY3NSwgLTAuMDU2MjUsIC0wLjA0Mzc1LCAtMC4wMjUsIC0wLjAxMjUsIDAuMDEsIDAuMDI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJTTiA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xODEyNSwgMC4xNjM3NSwgMC4xNTEyNSwgMC4xMzI1LCAwLjEyLCAwLjA5MTI1LCAwLjA3IiwgXAotICAgICAgICAgICIwLjE5MjUsIDAuMTgxMjUsIDAuMTYyNSwgMC4xNDM3NSwgMC4xMzEyNSwgMC4xMDI1LCAwLjA4MTI1IiwgXAotICAgICAgICAgICIwLjIwNSwgMC4xOTM3NSwgMC4xODEyNSwgMC4xNjI1LCAwLjE0Mzc1LCAwLjEyMTI1LCAwLjEiLCBcCi0gICAgICAgICAgIjAuMjIzNzUsIDAuMjA2MjUsIDAuMTkzNzUsIDAuMTc1LCAwLjE2MjUsIDAuMTMzNzUsIDAuMTEyNSIsIFwKLSAgICAgICAgICAiMC4yMzYyNSwgMC4yMjUsIDAuMjA2MjUsIDAuMTkzNzUsIDAuMTc1LCAwLjE1MjUsIDAuMTI1IiwgXAotICAgICAgICAgICIwLjI1ODc1LCAwLjI0NzUsIDAuMjI4NzUsIDAuMjE2MjUsIDAuMTk3NSwgMC4xNzUsIDAuMTUzNzUiLCBcCi0gICAgICAgICAgIjAuMjgsIDAuMjYyNSwgMC4yNSwgMC4yMzEyNSwgMC4yMTg3NSwgMC4xOSwgMC4xNjg3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIwNjI1LCAwLjE5NSwgMC4xNzYyNSwgMC4xNjM3NSwgMC4xNTEyNSwgMC4xMjg3NSwgMC4xMiIsIFwKLSAgICAgICAgICAiMC4yMTc1LCAwLjIwNjI1LCAwLjE5Mzc1LCAwLjE3NSwgMC4xNjI1LCAwLjE0NjI1LCAwLjEzMTI1IiwgXAotICAgICAgICAgICIwLjIzLCAwLjIxODc1LCAwLjIwNjI1LCAwLjE4NzUsIDAuMTc1LCAwLjE1ODc1LCAwLjE0Mzc1IiwgXAotICAgICAgICAgICIwLjI0ODc1LCAwLjIzNzUsIDAuMjE4NzUsIDAuMjA2MjUsIDAuMTkzNzUsIDAuMTcxMjUsIDAuMTU2MjUiLCBcCi0gICAgICAgICAgIjAuMjYxMjUsIDAuMjUsIDAuMjMxMjUsIDAuMjE4NzUsIDAuMjA2MjUsIDAuMTksIDAuMTc1IiwgXAotICAgICAgICAgICIwLjI4Mzc1LCAwLjI2NjI1LCAwLjI1Mzc1LCAwLjI0MTI1LCAwLjIyMjUsIDAuMjA2MjUsIDAuMTkxMjUiLCBcCi0gICAgICAgICAgIjAuMjk4NzUsIDAuMjg3NSwgMC4yNjg3NSwgMC4yNTYyNSwgMC4yNDM3NSwgMC4yMjEyNSwgMC4yMDYyNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oU0kpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDg5ODE2OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDg5NDYzOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDg5ODE2OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzI3NiwgMC4wMDMyNTcsIDAuMDAzMjQ3LCAwLjAwMzI0LCAwLjAwMzIzNSwgMC4wMDMyMjksIDAuMDAzMjI0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA1MzQsIDAuMDA1MzMxLCAwLjAwNTMyNSwgMC4wMDUzMjEsIDAuMDA1MzE4LCAwLjAwNTMxNSwgMC4wMDUzMTMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiU0UmU04iOwotICAgICAgc2RmX2NvbmQgOiAiU0VfRVFfMV9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjA5Mzc1LCAtMC4wODg3NSwgLTAuMDc2MjUsIC0wLjA2Mzc1LCAtMC4wNTEyNSwgLTAuMDM1LCAtMC4wMiIsIFwKLSAgICAgICAgICAiLTAuMTA1LCAtMC4xLCAtMC4wODc1LCAtMC4wNzUsIC0wLjA2MjUsIC0wLjA0NjI1LCAtMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMTIzNzUsIC0wLjExMjUsIC0wLjEsIC0wLjA4NzUsIC0wLjA3NSwgLTAuMDU4NzUsIC0wLjA0Mzc1IiwgXAotICAgICAgICAgICItMC4xMzYyNSwgLTAuMTI1LCAtMC4xMTI1LCAtMC4xLCAtMC4wODc1LCAtMC4wNzEyNSwgLTAuMDU2MjUiLCBcCi0gICAgICAgICAgIi0wLjE0ODc1LCAtMC4xMzc1LCAtMC4xMjUsIC0wLjExMjUsIC0wLjEsIC0wLjA4Mzc1LCAtMC4wNjg3NSIsIFwKLSAgICAgICAgICAiLTAuMTcxMjUsIC0wLjE2LCAtMC4xNDc1LCAtMC4xMzUsIC0wLjEyMjUsIC0wLjEwNjI1LCAtMC4wOTEyNSIsIFwKLSAgICAgICAgICAiLTAuMTg2MjUsIC0wLjE3NSwgLTAuMTYyNSwgLTAuMTU2MjUsIC0wLjE0Mzc1LCAtMC4xMjc1LCAtMC4xMTI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMCwgMC4wMTEyNSwgMC4wMjM3NSwgMC4wNDI1LCAwLjA1NSwgMC4wNzc1LCAwLjA5ODc1IiwgXAotICAgICAgICAgICItMC4wMTEyNSwgMCwgMC4wMTg3NSwgMC4wMzEyNSwgMC4wNDM3NSwgMC4wNjYyNSwgMC4wODc1IiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDEyNSwgMC4wMDYyNSwgMC4wMTg3NSwgMC4wMzEyNSwgMC4wNTM3NSwgMC4wNzUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMjUsIC0wLjAwNjI1LCAwLjAwNjI1LCAwLjAxODc1LCAwLjA0MTI1LCAwLjA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wMzc1LCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAuMDA2MjUsIDAuMDI4NzUsIDAuMDUiLCBcCi0gICAgICAgICAgIi0wLjA2NSwgLTAuMDUzNzUsIC0wLjAzNSwgLTAuMDIyNSwgLTAuMDEsIDAuMDEyNSwgMC4wMzM3NSIsIFwKLSAgICAgICAgICAiLTAuMDgsIC0wLjA2ODc1LCAtMC4wNSwgLTAuMDM3NSwgLTAuMDI1LCAtMC4wMDI1LCAwLjAxODc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJTRSZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJTRV9FUV8xX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTc1LCAwLjE1NzUsIDAuMTQ1LCAwLjEzMjUsIDAuMTEzNzUsIDAuMDk3NSwgMC4wODI1IiwgXAotICAgICAgICAgICIwLjE4NjI1LCAwLjE2ODc1LCAwLjE1NjI1LCAwLjE0Mzc1LCAwLjEyNSwgMC4xMDg3NSwgMC4wOTM3NSIsIFwKLSAgICAgICAgICAiMC4xOTg3NSwgMC4xODc1LCAwLjE2ODc1LCAwLjE1NjI1LCAwLjE0Mzc1LCAwLjEyMTI1LCAwLjEwNjI1IiwgXAotICAgICAgICAgICIwLjIxMTI1LCAwLjIsIDAuMTgxMjUsIDAuMTY4NzUsIDAuMTU2MjUsIDAuMTMzNzUsIDAuMTI1IiwgXAotICAgICAgICAgICIwLjIyMzc1LCAwLjIxMjUsIDAuMTkzNzUsIDAuMTgxMjUsIDAuMTY4NzUsIDAuMTUyNSwgMC4xMzc1IiwgXAotICAgICAgICAgICIwLjI0NjI1LCAwLjIzNSwgMC4yMTYyNSwgMC4yMDM3NSwgMC4xOTEyNSwgMC4xNjg3NSwgMC4xNiIsIFwKLSAgICAgICAgICAiMC4yNjc1LCAwLjI1LCAwLjIzNzUsIDAuMjE4NzUsIDAuMjA2MjUsIDAuMTksIDAuMTc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTQzNzUsIDAuMTMyNSwgMC4xMiwgMC4xMDEyNSwgMC4wODI1LCAwLjA2LCAwLjAzODc1IiwgXAotICAgICAgICAgICIwLjE1NSwgMC4xNDM3NSwgMC4xMzEyNSwgMC4xMTI1LCAwLjA5Mzc1LCAwLjA3MTI1LCAwLjA1IiwgXAotICAgICAgICAgICIwLjE2NzUsIDAuMTU2MjUsIDAuMTQzNzUsIDAuMTI1LCAwLjEwNjI1LCAwLjA4Mzc1LCAwLjA2MjUiLCBcCi0gICAgICAgICAgIjAuMTgsIDAuMTY4NzUsIDAuMTU2MjUsIDAuMTM3NSwgMC4xMTg3NSwgMC4wOTYyNSwgMC4wNzUiLCBcCi0gICAgICAgICAgIjAuMTkyNSwgMC4xODEyNSwgMC4xNjg3NSwgMC4xNSwgMC4xMzEyNSwgMC4xMDg3NSwgMC4wODc1IiwgXAotICAgICAgICAgICIwLjIxNSwgMC4yMDM3NSwgMC4xODUsIDAuMTY2MjUsIDAuMTUzNzUsIDAuMTI1LCAwLjEwMzc1IiwgXAotICAgICAgICAgICIwLjIzLCAwLjIxODc1LCAwLjIsIDAuMTg3NSwgMC4xNjg3NSwgMC4xNDYyNSwgMC4xMTg3NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oU04pICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTYxNzI4OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTQ5NjAxOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTYxNzI4OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDQ4NSwgMC4wMDA0ODQsIDAuMDAwNDg0LCAwLjAwMDQ4NCwgMC4wMDA0ODQsIDAuMDAwNDg0LCAwLjAwMDQ4NCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDQ5MywgMC4wMDA0ODgsIDAuMDAwNDg3LCAwLjAwMDQ4NywgMC4wMDA0ODcsIDAuMDAwNDg3LCAwLjAwMDQ4NyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQmIVNFJiFTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fU0VfRVFfMF9BTl9TSV9FUV8wID09IDEnYjEiOwotICAgICAgZmFsbF9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMTk3MjU3LCAwLjIwODg5NiwgMC4yMjI5MSwgMC4yMzYwMDYsIDAuMjQ5NDA0LCAwLjI3MjA4MiwgMC4yOTE1NDYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiByZWNvdmVyeV9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEJiFTRSYhU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1NFX0VRXzBfQU5fU0lfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChyZWNvdmVyeV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMCwgLTAuMDExMjUsIC0wLjAzLCAtMC4wNDg3NSwgLTAuMDYxMjUsIC0wLjA5LCAtMC4xMTEyNSIsIFwKLSAgICAgICAgICAiMC4wMTEyNSwgMCwgLTAuMDE4NzUsIC0wLjAzNzUsIC0wLjA1LCAtMC4wNzg3NSwgLTAuMSIsIFwKLSAgICAgICAgICAiMC4wMjM3NSwgMC4wMTI1LCAtMC4wMDYyNSwgLTAuMDI1LCAtMC4wMzc1LCAtMC4wNjYyNSwgLTAuMDg3NSIsIFwKLSAgICAgICAgICAiMC4wMzYyNSwgMC4wMjUsIDAuMDA2MjUsIC0wLjAxMjUsIC0wLjAyNSwgLTAuMDUzNzUsIC0wLjA3NSIsIFwKLSAgICAgICAgICAiMC4wNDg3NSwgMC4wMzc1LCAwLjAxODc1LCAwLCAtMC4wMTI1LCAtMC4wNDEyNSwgLTAuMDYyNSIsIFwKLSAgICAgICAgICAiMC4wNzEyNSwgMC4wNiwgMC4wNDEyNSwgMC4wMjI1LCAwLjAxLCAtMC4wMTg3NSwgLTAuMDQiLCBcCi0gICAgICAgICAgIjAuMDg2MjUsIDAuMDc1LCAwLjA1NjI1LCAwLjA0Mzc1LCAwLjAyNSwgMC4wMDI1LCAtMC4wMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiByZW1vdmFsX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUQmIVNFJiFTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fU0VfRVFfMF9BTl9TSV9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHJlbW92YWxfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg3NSwgMC4wOTg3NSwgMC4xMTEyNSwgMC4xMywgMC4xNDI1LCAwLjE3MTI1LCAwLjE5MjUiLCBcCi0gICAgICAgICAgIjAuMDc2MjUsIDAuMDg3NSwgMC4xMDYyNSwgMC4xMTg3NSwgMC4xMzc1LCAwLjE2LCAwLjE4MTI1IiwgXAotICAgICAgICAgICIwLjA2Mzc1LCAwLjA3NSwgMC4wOTM3NSwgMC4xMDYyNSwgMC4xMTg3NSwgMC4xNDc1LCAwLjE2ODc1IiwgXAotICAgICAgICAgICIwLjA1MTI1LCAwLjA2MjUsIDAuMDgxMjUsIDAuMDkzNzUsIDAuMTA2MjUsIDAuMTM1LCAwLjE1NjI1IiwgXAotICAgICAgICAgICIwLjAzODc1LCAwLjA1LCAwLjA2MjUsIDAuMDgxMjUsIDAuMDkzNzUsIDAuMTIyNSwgMC4xNDM3NSIsIFwKLSAgICAgICAgICAiMC4wMTYyNSwgMC4wMjc1LCAwLjA0NjI1LCAwLjA1ODc1LCAwLjA3NzUsIDAuMSwgMC4xMjEyNSIsIFwKLSAgICAgICAgICAiMC4wMDEyNSwgMC4wMTI1LCAwLjAyNSwgMC4wNDM3NSwgMC4wNTYyNSwgMC4wNzg3NSwgMC4xIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogU0RGRlNSSFFYOCAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChTREZGU1JIUVg4KSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuNzE3OTkxOwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIGZmIChOMzUsUUJJTlQpIHsKLSAgICBuZXh0X3N0YXRlIDogIigoU0UgU0kpICsgKCFTRSBEKSkiOwotICAgIGNsb2NrZWRfb24gOiAiQ0siOwotICAgIGNsZWFyIDogIighUk4pIjsKLSAgICBwcmVzZXQgOiAiKCFTTikiOwotICAgIGNsZWFyX3ByZXNldF92YXIxIDogSDsKLSAgfQotICBwaW4oQ0spICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDU4NjA0OTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA1ODU3OTU7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNTg2MDQ5OwotICAgIGNsb2NrIDogdHJ1ZTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDMwNTQsIDAuMDAzMDQ0LCAwLjAwMzAzNCwgMC4wMDMwMjgsIDAuMDAzMDIzLCAwLjAwMzAxNiwgMC4wMDMwMTIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDcyOTIsIDAuMDA3MjgzLCAwLjAwNzI3NiwgMC4wMDcyNywgMC4wMDcyNjcsIDAuMDA3MjY2LCAwLjAwNzI3MSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQmUk4mIVNFJiFTSSZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fUk5fRVFfMV9BTl9TRV9FUV8wX0FOX1NJX0VRXzBfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjM0MDU5LCAwLjM1MjI1LCAwLjM2NzU2NCwgMC4zODMxNDMsIDAuMzk4NDU1LCAwLjQyMjk1NSwgMC40NDQ1MTkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjI2MDI5OCwgMC4yNzE1NTQsIDAuMjg2NDUsIDAuMzAxMzUyLCAwLjMxNjE5NywgMC4zMzk3ODYsIDAuMzU5ODc5Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihEKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA4NzI5OTg7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwODY5NzkxOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDg3Mjk5ODsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDQwMzksIDAuMDA0MDE5LCAwLjAwNDAxLCAwLjAwNDAwMiwgMC4wMDM5OTcsIDAuMDAzOTksIDAuMDAzOTg1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA1MTM3LCAwLjAwNTEyNywgMC4wMDUxMjIsIDAuMDA1MTE4LCAwLjAwNTExNSwgMC4wMDUxMSwgMC4wMDUxMDciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiUk4mIVNFJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIlJOX0VRXzFfQU5fU0VfRVFfMF9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjEsIC0wLjA5NSwgLTAuMDgyNSwgLTAuMDcsIC0wLjA1NzUsIC0wLjAzNSwgLTAuMDIiLCBcCi0gICAgICAgICAgIi0wLjExMTI1LCAtMC4xLCAtMC4wOTM3NSwgLTAuMDgxMjUsIC0wLjA2ODc1LCAtMC4wNDYyNSwgLTAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjEyMzc1LCAtMC4xMTg3NSwgLTAuMTA2MjUsIC0wLjA5Mzc1LCAtMC4wODEyNSwgLTAuMDU4NzUsIC0wLjA1IiwgXAotICAgICAgICAgICItMC4xNDI1LCAtMC4xMzEyNSwgLTAuMTE4NzUsIC0wLjEwNjI1LCAtMC4wOTM3NSwgLTAuMDc3NSwgLTAuMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMTU1LCAtMC4xNDM3NSwgLTAuMTMxMjUsIC0wLjExODc1LCAtMC4xMDYyNSwgLTAuMDksIC0wLjA3NSIsIFwKLSAgICAgICAgICAiLTAuMTcxMjUsIC0wLjE2NjI1LCAtMC4xNTM3NSwgLTAuMTQxMjUsIC0wLjEyODc1LCAtMC4xMTI1LCAtMC4wOTc1IiwgXAotICAgICAgICAgICItMC4xOTI1LCAtMC4xODEyNSwgLTAuMTY4NzUsIC0wLjE1NjI1LCAtMC4xNDM3NSwgLTAuMTI3NSwgLTAuMTEyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2MjUsIDAuMDE3NSwgMC4wMzYyNSwgMC4wNDg3NSwgMC4wNjEyNSwgMC4wODM3NSwgMC4xMDUiLCBcCi0gICAgICAgICAgIi0wLjAwNSwgMC4wMDYyNSwgMC4wMjUsIDAuMDM3NSwgMC4wNSwgMC4wNzg3NSwgMC4wOTM3NSIsIFwKLSAgICAgICAgICAiLTAuMDE3NSwgLTAuMDA2MjUsIDAuMDEyNSwgMC4wMjUsIDAuMDM3NSwgMC4wNjYyNSwgMC4wODEyNSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAxMjUsIDAsIDAuMDEyNSwgMC4wMzEyNSwgMC4wNTM3NSwgMC4wNjg3NSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAyNSwgLTAuMDEyNSwgMCwgMC4wMTg3NSwgMC4wNDEyNSwgMC4wNjI1IiwgXAotICAgICAgICAgICItMC4wNTg3NSwgLTAuMDQ3NSwgLTAuMDI4NzUsIC0wLjAxNjI1LCAtMC4wMDM3NSwgMC4wMTg3NSwgMC4wNCIsIFwKLSAgICAgICAgICAiLTAuMDczNzUsIC0wLjA2MjUsIC0wLjA0Mzc1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIDAuMDAzNzUsIDAuMDI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJSTiYhU0UmU04iOwotICAgICAgc2RmX2NvbmQgOiAiUk5fRVFfMV9BTl9TRV9FUV8wX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjE4NzUsIDAuMjAxMjUsIDAuMTg4NzUsIDAuMTcsIDAuMTUxMjUsIDAuMTI4NzUsIDAuMTEzNzUiLCBcCi0gICAgICAgICAgIjAuMjMsIDAuMjE4NzUsIDAuMiwgMC4xODEyNSwgMC4xNjI1LCAwLjE0LCAwLjEyNSIsIFwKLSAgICAgICAgICAiMC4yNDI1LCAwLjIzMTI1LCAwLjIxMjUsIDAuMTkzNzUsIDAuMTc1LCAwLjE1MjUsIDAuMTM3NSIsIFwKLSAgICAgICAgICAiMC4yNTUsIDAuMjQzNzUsIDAuMjI1LCAwLjIwNjI1LCAwLjE5Mzc1LCAwLjE2NSwgMC4xNSIsIFwKLSAgICAgICAgICAiMC4yNjc1LCAwLjI1NjI1LCAwLjIzNzUsIDAuMjE4NzUsIDAuMjA2MjUsIDAuMTgzNzUsIDAuMTYyNSIsIFwKLSAgICAgICAgICAiMC4yOSwgMC4yNzg3NSwgMC4yNiwgMC4yNDEyNSwgMC4yMjI1LCAwLjIsIDAuMTg1IiwgXAotICAgICAgICAgICIwLjMwNSwgMC4yOTM3NSwgMC4yNzUsIDAuMjYyNSwgMC4yNDM3NSwgMC4yMjEyNSwgMC4yIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTUsIDAuMTM4NzUsIDAuMTI2MjUsIDAuMTA3NSwgMC4wODg3NSwgMC4wNjYyNSwgMC4wNDUiLCBcCi0gICAgICAgICAgIjAuMTYxMjUsIDAuMTUsIDAuMTM3NSwgMC4xMTg3NSwgMC4xMDYyNSwgMC4wNzc1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICIwLjE4LCAwLjE2MjUsIDAuMTUsIDAuMTMxMjUsIDAuMTE4NzUsIDAuMDksIDAuMDY4NzUiLCBcCi0gICAgICAgICAgIjAuMTkyNSwgMC4xNzUsIDAuMTYyNSwgMC4xNDM3NSwgMC4xMzEyNSwgMC4xMDI1LCAwLjA4MTI1IiwgXAotICAgICAgICAgICIwLjIwNSwgMC4xODc1LCAwLjE3NSwgMC4xNTYyNSwgMC4xNDM3NSwgMC4xMTUsIDAuMDkzNzUiLCBcCi0gICAgICAgICAgIjAuMjIxMjUsIDAuMjEsIDAuMTkxMjUsIDAuMTc4NzUsIDAuMTYsIDAuMTMxMjUsIDAuMTEiLCBcCi0gICAgICAgICAgIjAuMjM2MjUsIDAuMjI1LCAwLjIxMjUsIDAuMTkzNzUsIDAuMTc1LCAwLjE1MjUsIDAuMTMxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFEpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMS4wMzMwMTsKLSAgICBmdW5jdGlvbiA6ICJOMzUiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5vbl91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcmlzaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzE1NjI5LCAwLjM4MzQyNCwgMC40NDY0ODEsIDAuNDkxNDYzLCAwLjU2MzQzNSwgMC42MjYzNzcsIDAuNzE2MjQ5IiwgXAotICAgICAgICAgICIwLjMyNzM1NCwgMC4zOTUxNDUsIDAuNDU4MjQsIDAuNTAzMjEzLCAwLjU3NTE3MywgMC42MzgxMzUsIDAuNzI4MDciLCBcCi0gICAgICAgICAgIjAuMzQyNCwgMC40MTAyMDcsIDAuNDczMzAzLCAwLjUxODI4MSwgMC41OTAyMjUsIDAuNjUzMTYzLCAwLjc0MzA4OCIsIFwKLSAgICAgICAgICAiMC4zNTc2NSwgMC40MjU0NDgsIDAuNDg4NTI3LCAwLjUzMzUxLCAwLjYwNTQ4MSwgMC42Njg0MiwgMC43NTgyOTUiLCBcCi0gICAgICAgICAgIjAuMzczMTUzLCAwLjQ0MDk2MSwgMC41MDQwMTYsIDAuNTQ4OTk4LCAwLjYyMDk3MSwgMC42ODM5MSwgMC43NzM4NTMiLCBcCi0gICAgICAgICAgIjAuMzk3NjQ3LCAwLjQ2NTQ0NCwgMC41Mjg1MDksIDAuNTczNDk3LCAwLjY0NTQ2MywgMC43MDg0LCAwLjc5ODMyOSIsIFwKLSAgICAgICAgICAiMC40MTg3NzYsIDAuNDg2NTc5LCAwLjU0OTYzNywgMC41OTQ2MiwgMC42NjY1OTIsIDAuNzI5NTMxLCAwLjgxOTQ3NCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0NDMsIDAuMTYyNTU4LCAwLjI4ODQ4OSwgMC4zNzg4NSwgMC41MjQ2OSwgMC42NTE2MDgsIDAuODM0MDkzIiwgXAotICAgICAgICAgICIwLjA0NDQ1LCAwLjE2MjY3NiwgMC4yODg0NjgsIDAuMzc5MTIxLCAwLjUyNDcwMSwgMC42NTI2MTIsIDAuODM1MzE3IiwgXAotICAgICAgICAgICIwLjA0NDM3NiwgMC4xNjI2NiwgMC4yODgxMjEsIDAuMzc4ODQ3LCAwLjUyNDgzNiwgMC42NTI1OTUsIDAuODM2Mjg5IiwgXAotICAgICAgICAgICIwLjA0NDI5NSwgMC4xNjI2NTEsIDAuMjg4NDgzLCAwLjM3ODg1LCAwLjUyMzkwMSwgMC42NTI1OTIsIDAuODM0NzQ2IiwgXAotICAgICAgICAgICIwLjA0NDE4MSwgMC4xNjI1NTYsIDAuMjg4NDg1LCAwLjM3ODg0OCwgMC41MjQ2OTMsIDAuNjUyNTkyLCAwLjgzNDE0NiIsIFwKLSAgICAgICAgICAiMC4wNDQzNzYsIDAuMTYyNjU4LCAwLjI4ODQ5MSwgMC4zNzkxMTUsIDAuNTI0Njk4LCAwLjY1MjU5NiwgMC44MzU4NTQiLCBcCi0gICAgICAgICAgIjAuMDQ0Mjc5LCAwLjE2MjU1NCwgMC4yODg0ODMsIDAuMzc4ODQ4LCAwLjUyNDY5MiwgMC42NTI1OTIsIDAuODMzOTk1Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzQwNjkzLCAwLjQxODYwNiwgMC40OTMxMjIsIDAuNTQ2MjU0LCAwLjYzMTIwMSwgMC43MDU1MDMsIDAuODExNjU1IiwgXAotICAgICAgICAgICIwLjM1MjI1LCAwLjQzMDEzMSwgMC41MDQ2NTYsIDAuNTU3Nzc3LCAwLjY0MjcyMywgMC43MTcwMjksIDAuODIzMTg0IiwgXAotICAgICAgICAgICIwLjM2NzU2NCwgMC40NDU1MTYsIDAuNTIwMDI5LCAwLjU3MzE2NCwgMC42NTgxMjksIDAuNzMyNDE2LCAwLjgzODU3IiwgXAotICAgICAgICAgICIwLjM4MzE0MywgMC40NjEwNDUsIDAuNTM1NTU1LCAwLjU4ODY2NCwgMC42NzM2MDgsIDAuNzQ3OTMxLCAwLjg1NDA2OSIsIFwKLSAgICAgICAgICAiMC4zOTg0NTUsIDAuNDc2Mzk1LCAwLjU1MDkyNCwgMC42MDQwNDEsIDAuNjg5MDA2LCAwLjc2MzI5NCwgMC44Njk0NDkiLCBcCi0gICAgICAgICAgIjAuNDIyOTU1LCAwLjUwMDkwMiwgMC41NzU0MzMsIDAuNjI4NTQ5LCAwLjcxMzUwMSwgMC43ODc4MDEsIDAuODkzOTU2IiwgXAotICAgICAgICAgICIwLjQ0NDUxOSwgMC41MjI0MjUsIDAuNTk2OTI5LCAwLjY1MDA2OCwgMC43MzUwMTMsIDAuODA5MzE1LCAwLjkxNTQ3MSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0NDc4NSwgMC4xODUxMzUsIDAuMzMxMDUyLCAwLjQzNjcsIDAuNjA1MjYzLCAwLjc1MzQ2OSwgMC45NjY0ODEiLCBcCi0gICAgICAgICAgIjAuMDQ0ODQ0LCAwLjE4NDk1NywgMC4zMzEwNzMsIDAuNDM2NjYzLCAwLjYwNTgxNywgMC43NTM1MDIsIDAuOTY1NTUiLCBcCi0gICAgICAgICAgIjAuMDQ0NzI4LCAwLjE4NTEyOSwgMC4zMzE0ODgsIDAuNDM2NjI4LCAwLjYwNTI5OSwgMC43NTM0NTYsIDAuOTY1MjI1IiwgXAotICAgICAgICAgICIwLjA0NDc5MiwgMC4xODUwOTMsIDAuMzMxMjc1LCAwLjQzNjU1NywgMC42MDUyNTMsIDAuNzUzMTYzLCAwLjk2NTI3NiIsIFwKLSAgICAgICAgICAiMC4wNDQ4MDEsIDAuMTg1MSwgMC4zMzEwNzMsIDAuNDM2NjYzLCAwLjYwNTMwMSwgMC43NTM0OTYsIDAuOTY1MzIzIiwgXAotICAgICAgICAgICIwLjA0NDc5NywgMC4xODUwOTYsIDAuMzMxMDc2LCAwLjQzNjY2LCAwLjYwNTY5OSwgMC43NTM0NjMsIDAuOTY1MjUxIiwgXAotICAgICAgICAgICIwLjA0NDc4NCwgMC4xODUwOTYsIDAuMzMxMjY0LCAwLjQzNjY3OCwgMC42MDUyNjQsIDAuNzUzMDU5LCAwLjk2NTAzNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogY2xlYXI7Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzk1ODE1LCAwLjQ3MzY1NywgMC41NDgxOTksIDAuNjAxMzEyLCAwLjY4NjI3LCAwLjc2MDU4MiwgMC44NjY3NTkiLCBcCi0gICAgICAgICAgIjAuNDA3MzYsIDAuNDg1MTQxLCAwLjU1OTY3OSwgMC42MTI3ODQsIDAuNjk3NzMzLCAwLjc3MjA0OSwgMC44NzgyMjEiLCBcCi0gICAgICAgICAgIjAuNDIyMzIsIDAuNTAwMTI4LCAwLjU3NDY1NCwgMC42Mjc3NjMsIDAuNzEyNzE0LCAwLjc4NzAzMSwgMC44OTMyMDIiLCBcCi0gICAgICAgICAgIjAuNDM3MDUxLCAwLjUxNDg4MywgMC41ODk0MjIsIDAuNjQyNTM2LCAwLjcyNzQ5NSwgMC44MDE4MDUsIDAuOTA3OTgzIiwgXAotICAgICAgICAgICIwLjQ1MTIwMSwgMC41Mjg4NjcsIDAuNjAzMzUxLCAwLjY1NjQ4NCwgMC43NDE0MzMsIDAuODE1NzQzLCAwLjkyMTkxIiwgXAotICAgICAgICAgICIwLjQ3MzgxNSwgMC41NTE2ODYsIDAuNjI2MjIxLCAwLjY3OTMzNSwgMC43NjQzMTMsIDAuODM4NjA2LCAwLjk0NDc4MiIsIFwKLSAgICAgICAgICAiMC40OTE1OCwgMC41Njk0NTUsIDAuNjQzOTkyLCAwLjY5NzEwNywgMC43ODIwNjcsIDAuODU2MzczLCAwLjk2MjU0OSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0NTEwOSwgMC4xODUyMTksIDAuMzMxMzYzLCAwLjQzNjUzOSwgMC42MDU4ODMsIDAuNzU0ODc3LCAwLjk2NzgxNCIsIFwKLSAgICAgICAgICAiMC4wNDUxMDgsIDAuMTg1MTg2LCAwLjMzMTQwNSwgMC40MzY1MzksIDAuNjA2MTE3LCAwLjc1NDgwNSwgMC45NjY5OTkiLCBcCi0gICAgICAgICAgIjAuMDQ1MTg3LCAwLjE4NTE0OCwgMC4zMzEwNjcsIDAuNDM2NzEsIDAuNjA2MjA3LCAwLjc1NDk0NCwgMC45NjY5NDEiLCBcCi0gICAgICAgICAgIjAuMDQ1MTA2LCAwLjE4NTIzLCAwLjMzMTM1NywgMC40MzY1MjQsIDAuNjA1MTM4LCAwLjc1NDk2MywgMC45Njc1NSIsIFwKLSAgICAgICAgICAiMC4wNDUxMDMsIDAuMTg1MTI4LCAwLjMzMTM2NiwgMC40MzY4MDQsIDAuNjA1NDA1LCAwLjc1NDg5MiwgMC45NjY3MzkiLCBcCi0gICAgICAgICAgIjAuMDQ1MSwgMC4xODUyNzMsIDAuMzMxMzQyLCAwLjQzNjUyMywgMC42MDUxNCwgMC43NTQ4MiwgMC45Njc0OSIsIFwKLSAgICAgICAgICAiMC4wNDUxNSwgMC4xODUyOTcsIDAuMzMxMzM4LCAwLjQzNjU5NSwgMC42MDUyOTIsIDAuNzU0NjQ5LCAwLjk2NzQ3OCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcHJlc2V0OwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIyOTc1NiwgMC4yOTY0NTgsIDAuMzU5NTU5LCAwLjQwNDU2MywgMC40NzY0OTIsIDAuNTM5NDYxLCAwLjYyOTQwNSIsIFwKLSAgICAgICAgICAiMC4yNDEzODgsIDAuMzA4MTI2LCAwLjM3MTIyNiwgMC40MTYyMTQsIDAuNDg4MTM1LCAwLjU1MTExMiwgMC42NDEwNzciLCBcCi0gICAgICAgICAgIjAuMjU1NDM5LCAwLjMyMjIyNSwgMC4zODUzMjMsIDAuNDMwMzA5LCAwLjUwMjI3LCAwLjU2NTE5NywgMC42NTUxOTQiLCBcCi0gICAgICAgICAgIjAuMjY4NTU4LCAwLjMzNTMwNywgMC4zOTg0MDcsIDAuNDQzMzk0LCAwLjUxNTMxNiwgMC41NzgyNywgMC42NjgyNzciLCBcCi0gICAgICAgICAgIjAuMjgxMjYsIDAuMzQ3OTY0LCAwLjQxMTA2NywgMC40NTYwODUsIDAuNTI4MDMzLCAwLjU5MDk5NCwgMC42ODA5NTUiLCBcCi0gICAgICAgICAgIjAuMzAxMzg0LCAwLjM2ODIwOSwgMC40MzEyOTEsIDAuNDc2MjY2LCAwLjU0ODIyMywgMC42MTExOTEsIDAuNzAxMTcxIiwgXAotICAgICAgICAgICIwLjMyMTQxNSwgMC4zODgyNDIsIDAuNDUxMzI0LCAwLjQ5NjI5OCwgMC41NjgyNTYsIDAuNjMxMjI0LCAwLjcyMTIwNCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0MTM0NCwgMC4xNjE2NTIsIDAuMjg3MzIyLCAwLjM3ODc3OSwgMC41MjUyNCwgMC42NTI3ODMsIDAuODM3MjkzIiwgXAotICAgICAgICAgICIwLjA0MTQxNCwgMC4xNjE3MTMsIDAuMjg3NDk3LCAwLjM3ODU5NSwgMC41MjUyNjUsIDAuNjUzODUsIDAuODM3MjIyIiwgXAotICAgICAgICAgICIwLjA0MTMxLCAwLjE2MTY3MiwgMC4yODc0OTEsIDAuMzc4NTc2LCAwLjUyNTM3MywgMC42NTM2NjcsIDAuODM3MzA3IiwgXAotICAgICAgICAgICIwLjA0MTM5NCwgMC4xNjE2NDcsIDAuMjg3NTgxLCAwLjM3ODc2NiwgMC41MjUxNjMsIDAuNjUyNjMxLCAwLjgzNzE2MiIsIFwKLSAgICAgICAgICAiMC4wNDEzMjMsIDAuMTYxNjU3LCAwLjI4NzU4NiwgMC4zNzg3ODksIDAuNTI1MjQsIDAuNjUzNDg3LCAwLjgzNzIwMSIsIFwKLSAgICAgICAgICAiMC4wNDEzNzEsIDAuMTYxNDk0LCAwLjI4NzU5MiwgMC4zNzgzNjgsIDAuNTI1MjQ3LCAwLjY1MjU5OSwgMC44MzcyMDYiLCBcCi0gICAgICAgICAgIjAuMDQxNDAyLCAwLjE2MTY4MywgMC4yODc1ODIsIDAuMzc4Nzg4LCAwLjUyNTI0MSwgMC42NTI3ODUsIDAuODM3MTg3Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzU3OTc5LCAwLjQzNTc5NywgMC41MTAxNjgsIDAuNTYzMzA1LCAwLjY0ODI0OSwgMC43MjI1NjUsIDAuODI4NzM1IiwgXAotICAgICAgICAgICIwLjM2OTcwNiwgMC40NDc1ODksIDAuNTIyMDc3LCAwLjU3NTIxLCAwLjY2MDE1MSwgMC43MzQ0ODIsIDAuODQwNjQzIiwgXAotICAgICAgICAgICIwLjM4NDIyNiwgMC40NjIwMSwgMC41MzY1NTgsIDAuNTg5NjYyLCAwLjY3NDYxMiwgMC43NDg5MjksIDAuODU1MTAxIiwgXAotICAgICAgICAgICIwLjM5NzgyNCwgMC40NzU2MiwgMC41NTAxNywgMC42MDMyNzQsIDAuNjg4MjI1LCAwLjc2MjU0MSwgMC44Njg3MTQiLCBcCi0gICAgICAgICAgIjAuNDExMTA1LCAwLjQ4ODk4MywgMC41NjM1MjEsIDAuNjE2NjM0LCAwLjcwMTU5MywgMC43NzU5MDQsIDAuODgyMDgzIiwgXAotICAgICAgICAgICIwLjQzMjY0NiwgMC41MTA0ODYsIDAuNTg1MDI2LCAwLjYzODEzNiwgMC43MjMwOTYsIDAuNzk3NDA2LCAwLjkwMzU4NSIsIFwKLSAgICAgICAgICAiMC40NTE0MzcsIDAuNTI5MjgsIDAuNjAzODE2LCAwLjY1NjkyNCwgMC43NDE4NzEsIDAuODE2MTg1LCAwLjkyMjM1NiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0NTA0MSwgMC4xODUyNTQsIDAuMzMxMDksIDAuNDM2MzY0LCAwLjYwNjQ2NCwgMC43NTQ1NzgsIDAuOTY1OTYyIiwgXAotICAgICAgICAgICIwLjA0NTY5NywgMC4xODUyNzIsIDAuMzMxMywgMC40MzY1NTYsIDAuNjA1MTM0LCAwLjc1NDc1NCwgMC45NjY4NjQiLCBcCi0gICAgICAgICAgIjAuMDQ1MTQyLCAwLjE4NTI2LCAwLjMzMTQzMSwgMC40MzY4MTQsIDAuNjA1NDQzLCAwLjc1NDU0MywgMC45NjY2MjQiLCBcCi0gICAgICAgICAgIjAuMDQ1MDM5LCAwLjE4NTI1NywgMC4zMzE0NDYsIDAuNDM2MzkyLCAwLjYwNTI5OCwgMC43NTQ3NDYsIDAuOTY2ODA0IiwgXAotICAgICAgICAgICIwLjA0NDk0NCwgMC4xODUyNTksIDAuMzMxMzkzLCAwLjQzNjQwOSwgMC42MDUxNjQsIDAuNzU0NzczLCAwLjk2NzUyIiwgXAotICAgICAgICAgICIwLjA0NDk4OCwgMC4xODUyNjQsIDAuMzMxMjAyLCAwLjQzNjM5MiwgMC42MDUyMTEsIDAuNzU0NzMsIDAuOTY3NDkiLCBcCi0gICAgICAgICAgIjAuMDQ1MDM5LCAwLjE4NTE1NCwgMC4zMzExMywgMC40MzY3NzgsIDAuNjA1MjQ3LCAwLjc1NDI5NywgMC45NjU2NzQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTQxMTksIDAuMDE0MzU3LCAwLjAxNDQxNSwgMC4wMTQ0MzUsIDAuMDE0NDUyLCAwLjAxNDQ2MiwgMC4wMTQ0NyIsIFwKLSAgICAgICAgICAiMC4wMTQxMTEsIDAuMDE0MzQ1LCAwLjAxNDQwNCwgMC4wMTQ0MjMsIDAuMDE0NDQ4LCAwLjAxNDQ1MSwgMC4wMTQ0NjQiLCBcCi0gICAgICAgICAgIjAuMDE0MDkxLCAwLjAxNDMzNCwgMC4wMTQzOTMsIDAuMDE0NDEzLCAwLjAxNDQzMywgMC4wMTQ0NCwgMC4wMTQ0NDkiLCBcCi0gICAgICAgICAgIjAuMDE0MDkxLCAwLjAxNDMyNywgMC4wMTQzODUsIDAuMDE0NDA1LCAwLjAxNDQyMywgMC4wMTQ0MzIsIDAuMDE0NDQxIiwgXAotICAgICAgICAgICIwLjAxNDA3MywgMC4wMTQzMTcsIDAuMDE0Mzc2LCAwLjAxNDM5NiwgMC4wMTQ0MTcsIDAuMDE0NDI0LCAwLjAxNDQzNSIsIFwKLSAgICAgICAgICAiMC4wMTQwNjUsIDAuMDE0MzA5LCAwLjAxNDM2OCwgMC4wMTQzODgsIDAuMDE0NDA2LCAwLjAxNDQxNSwgMC4wMTQ0MjQiLCBcCi0gICAgICAgICAgIjAuMDE0MDU2LCAwLjAxNDMsIDAuMDE0MzU5LCAwLjAxNDM3OSwgMC4wMTQzOTgsIDAuMDE0NDA3LCAwLjAxNDQxNiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEzNjAzLCAwLjAxMzkyNCwgMC4wMTQwMDksIDAuMDE0MDM4LCAwLjAxNDA2NiwgMC4wMTQwOCwgMC4wMTQwOTMiLCBcCi0gICAgICAgICAgIjAuMDEzNTgzLCAwLjAxMzkxMiwgMC4wMTM5OTgsIDAuMDE0MDI4LCAwLjAxNDA1NSwgMC4wMTQwNywgMC4wMTQwODMiLCBcCi0gICAgICAgICAgIjAuMDEzNTgzLCAwLjAxMzkwNywgMC4wMTM5ODksIDAuMDE0MDE5LCAwLjAxNDA0NiwgMC4wMTQwNiwgMC4wMTQwNzMiLCBcCi0gICAgICAgICAgIjAuMDEzNTgyLCAwLjAxMzkwMiwgMC4wMTM5ODQsIDAuMDE0MDEzLCAwLjAxNDA0LCAwLjAxNDA1NSwgMC4wMTQwNjgiLCBcCi0gICAgICAgICAgIjAuMDEzNTYxLCAwLjAxMzg5LCAwLjAxMzk3NCwgMC4wMTQwMDMsIDAuMDE0MDMxLCAwLjAxNDA0NSwgMC4wMTQwNTkiLCBcCi0gICAgICAgICAgIjAuMDEzNTYyLCAwLjAxMzg4OSwgMC4wMTM5NzUsIDAuMDE0MDA0LCAwLjAxNDAzMSwgMC4wMTQwNDYsIDAuMDE0MDU5IiwgXAotICAgICAgICAgICIwLjAxMzU3NSwgMC4wMTM4OTMsIDAuMDEzOTc2LCAwLjAxNDAwNSwgMC4wMTQwMzEsIDAuMDE0MDQ1LCAwLjAxNDA1OCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxNTQ5NSwgMC4wMTU4MTgsIDAuMDE1OTA2LCAwLjAxNTkzNywgMC4wMTU5NjYsIDAuMDE1OTgyLCAwLjAxNTk5NiIsIFwKLSAgICAgICAgICAiMC4wMTU0ODgsIDAuMDE1ODA3LCAwLjAxNTg5NSwgMC4wMTU5MjcsIDAuMDE1OTU2LCAwLjAxNTk3MiwgMC4wMTU5ODciLCBcCi0gICAgICAgICAgIjAuMDE1NDgxLCAwLjAxNTgwMSwgMC4wMTU4ODksIDAuMDE1OTIsIDAuMDE1OTQ5LCAwLjAxNTk2NSwgMC4wMTU5NzkiLCBcCi0gICAgICAgICAgIjAuMDE1NDcsIDAuMDE1Nzk0LCAwLjAxNTg4MSwgMC4wMTU5MTIsIDAuMDE1OTQyLCAwLjAxNTk1OCwgMC4wMTU5NzIiLCBcCi0gICAgICAgICAgIjAuMDE1NDY2LCAwLjAxNTc4NSwgMC4wMTU4NzMsIDAuMDE1OTA1LCAwLjAxNTkzNCwgMC4wMTU5NSwgMC4wMTU5NjQiLCBcCi0gICAgICAgICAgIjAuMDE1NDYsIDAuMDE1Nzg0LCAwLjAxNTg3MSwgMC4wMTU5MDIsIDAuMDE1OTMxLCAwLjAxNTk0NywgMC4wMTU5NjIiLCBcCi0gICAgICAgICAgIjAuMDE1NDU1LCAwLjAxNTc3OCwgMC4wMTU4NjUsIDAuMDE1ODk3LCAwLjAxNTkyNiwgMC4wMTU5NDIsIDAuMDE1OTU2Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3Bvd2VyKHNjYWxhcikgewotICAgICAgICB2YWx1ZXMoIjAiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTU0MjEsIDAuMDE1NjYzLCAwLjAxNTcxNSwgMC4wMTU3MzIsIDAuMDE1NzUsIDAuMDE1NzU5LCAwLjAxNTc2OCIsIFwKLSAgICAgICAgICAiMC4wMTU0MDIsIDAuMDE1NjQ0LCAwLjAxNTY5NiwgMC4wMTU3MTMsIDAuMDE1NzI4LCAwLjAxNTczNiwgMC4wMTU3NDMiLCBcCi0gICAgICAgICAgIjAuMDE1Mzg5LCAwLjAxNTYzMiwgMC4wMTU2ODQsIDAuMDE1NzAxLCAwLjAxNTcxNiwgMC4wMTU3MjQsIDAuMDE1NzM2IiwgXAotICAgICAgICAgICIwLjAxNTM4MSwgMC4wMTU2MjQsIDAuMDE1Njc2LCAwLjAxNTY5MywgMC4wMTU3MDksIDAuMDE1NzE2LCAwLjAxNTcyMyIsIFwKLSAgICAgICAgICAiMC4wMTUzNzgsIDAuMDE1NjIsIDAuMDE1NjcyLCAwLjAxNTY4OSwgMC4wMTU3MDQsIDAuMDE1NzEyLCAwLjAxNTcyMyIsIFwKLSAgICAgICAgICAiMC4wMTUzNzEsIDAuMDE1NjE0LCAwLjAxNTY2NSwgMC4wMTU2ODEsIDAuMDE1Njk2LCAwLjAxNTcwNCwgMC4wMTU3MTEiLCBcCi0gICAgICAgICAgIjAuMDE1MzY1LCAwLjAxNTYwNiwgMC4wMTU2NTgsIDAuMDE1Njc2LCAwLjAxNTY5MSwgMC4wMTU2OTksIDAuMDE1NzEyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTMxMTMsIDAuMDEzNDMyLCAwLjAxMzUyLCAwLjAxMzU1MiwgMC4wMTM1ODEsIDAuMDEzNTk3LCAwLjAxMzYxMiIsIFwKLSAgICAgICAgICAiMC4wMTMwODksIDAuMDEzNDEzLCAwLjAxMzUwMSwgMC4wMTM1MzIsIDAuMDEzNTYyLCAwLjAxMzU3OCwgMC4wMTM1OTMiLCBcCi0gICAgICAgICAgIjAuMDEzMDgsIDAuMDEzNCwgMC4wMTM0ODcsIDAuMDEzNTE5LCAwLjAxMzU0OSwgMC4wMTM1NjUsIDAuMDEzNTc5IiwgXAotICAgICAgICAgICIwLjAxMzA3MSwgMC4wMTMzOTEsIDAuMDEzNDc5LCAwLjAxMzUxMSwgMC4wMTM1NDEsIDAuMDEzNTU2LCAwLjAxMzU3MSIsIFwKLSAgICAgICAgICAiMC4wMTMwNjIsIDAuMDEzMzg1LCAwLjAxMzQ3MywgMC4wMTM1MDUsIDAuMDEzNTM0LCAwLjAxMzU1LCAwLjAxMzU2NCIsIFwKLSAgICAgICAgICAiMC4wMTMwNTMsIDAuMDEzMzc3LCAwLjAxMzQ2NCwgMC4wMTM0OTYsIDAuMDEzNTI1LCAwLjAxMzU0MSwgMC4wMTM1NTUiLCBcCi0gICAgICAgICAgIjAuMDEzMDUyLCAwLjAxMzM3MiwgMC4wMTM0NTksIDAuMDEzNDkxLCAwLjAxMzUyLCAwLjAxMzUzNiwgMC4wMTM1NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUk4pICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDU1OTk2OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDU1OTY7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNTU5OTY7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNjA5LCAwLjAwMDU5NSwgMC4wMDA1ODUsIDAuMDAwNTgsIDAuMDAwNTc3LCAwLjAwMDU3NSwgMC4wMDA1NzMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDIwNDEsIDAuMDAyMDMyLCAwLjAwMjAyNywgMC4wMDIwMjIsIDAuMDAyMDIsIDAuMDAyMDE4LCAwLjAwMjAxNyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQmIVNFJiFTSSZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fU0VfRVFfMF9BTl9TSV9FUV8wX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4zOTU4MTUsIDAuNDA3MzYsIDAuNDIyMzIsIDAuNDM3MDUxLCAwLjQ1MTIwMSwgMC40NzM4MTUsIDAuNDkxNTgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiByZWNvdmVyeV9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlNOIjsKLSAgICAgIHNkZl9jb25kIDogIlNOID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHJlY292ZXJ5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExODc1LCAwLjEwNzUsIDAuMDg4NzUsIDAuMDcsIDAuMDU3NSwgMC4wMjg3NSwgMC4wMDc1IiwgXAotICAgICAgICAgICIwLjEzLCAwLjExODc1LCAwLjEsIDAuMDg3NSwgMC4wNjg3NSwgMC4wNCwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4xNDI1LCAwLjEzMTI1LCAwLjExMjUsIDAuMSwgMC4wODEyNSwgMC4wNTg3NSwgMC4wMzc1IiwgXAotICAgICAgICAgICIwLjE2MTI1LCAwLjE1LCAwLjEzMTI1LCAwLjExMjUsIDAuMSwgMC4wNzEyNSwgMC4wNSIsIFwKLSAgICAgICAgICAiMC4xNzM3NSwgMC4xNjI1LCAwLjE1LCAwLjEzMTI1LCAwLjExMjUsIDAuMDgzNzUsIDAuMDY4NzUiLCBcCi0gICAgICAgICAgIjAuMTk2MjUsIDAuMTg1LCAwLjE3MjUsIDAuMTUzNzUsIDAuMTM1LCAwLjExMjUsIDAuMDkxMjUiLCBcCi0gICAgICAgICAgIjAuMjE3NSwgMC4yMDYyNSwgMC4xODc1LCAwLjE3NSwgMC4xNTYyNSwgMC4xMzM3NSwgMC4xMTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIHRpbWluZ190eXBlIDogcmVjb3ZlcnlfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRCYhU0UmIVNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9TRV9FUV8wX0FOX1NJX0VRXzAgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQocmVjb3ZlcnlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjE4NzUsIDAuMjMsIDAuMjQyNSwgMC4yNjEyNSwgMC4yNzM3NSwgMC4yOSwgMC4zMTEyNSIsIFwKLSAgICAgICAgICAiMC4yMDc1LCAwLjIxODc1LCAwLjIzMTI1LCAwLjI1LCAwLjI2MjUsIDAuMjc4NzUsIDAuMjkzNzUiLCBcCi0gICAgICAgICAgIjAuMTk1LCAwLjIwNjI1LCAwLjIxODc1LCAwLjIzMTI1LCAwLjI1LCAwLjI2NjI1LCAwLjI4MTI1IiwgXAotICAgICAgICAgICIwLjE4MjUsIDAuMTkzNzUsIDAuMjA2MjUsIDAuMjE4NzUsIDAuMjMxMjUsIDAuMjUzNzUsIDAuMjY4NzUiLCBcCi0gICAgICAgICAgIjAuMTcsIDAuMTgxMjUsIDAuMiwgMC4yMTI1LCAwLjIyNSwgMC4yNDEyNSwgMC4yNjI1IiwgXAotICAgICAgICAgICIwLjE1Mzc1LCAwLjE2NSwgMC4xODM3NSwgMC4xOTYyNSwgMC4yMDg3NSwgMC4yMjUsIDAuMjQ2MjUiLCBcCi0gICAgICAgICAgIjAuMTQ1LCAwLjE1NjI1LCAwLjE2ODc1LCAwLjE4MTI1LCAwLjIsIDAuMjE2MjUsIDAuMjMxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiByZW1vdmFsX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiU04iOwotICAgICAgc2RmX2NvbmQgOiAiU04gPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQocmVtb3ZhbF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDI1LCAtMC4wMTM3NSwgMC4wMDUsIDAuMDE3NSwgMC4wMzYyNSwgMC4wNTg3NSwgMC4wOCIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAyNSwgLTAuMDA2MjUsIDAuMDA2MjUsIDAuMDI1LCAwLjA0NzUsIDAuMDY4NzUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAwNjI1LCAwLjAwNjI1LCAwLjAyODc1LCAwLjA1IiwgXAotICAgICAgICAgICItMC4wNjc1LCAtMC4wNTYyNSwgLTAuMDM3NSwgLTAuMDI1LCAtMC4wMDYyNSwgMC4wMTYyNSwgMC4wMzc1IiwgXAotICAgICAgICAgICItMC4wOCwgLTAuMDY4NzUsIC0wLjA1NjI1LCAtMC4wMzc1LCAtMC4wMjUsIDAuMDAzNzUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjEwMjUsIC0wLjA5MTI1LCAtMC4wNzg3NSwgLTAuMDY2MjUsIC0wLjA0NzUsIC0wLjAyNSwgLTAuMDAzNzUiLCBcCi0gICAgICAgICAgIi0wLjEyMzc1LCAtMC4xMTI1LCAtMC4xLCAtMC4wODEyNSwgLTAuMDY4NzUsIC0wLjA0NjI1LCAtMC4wMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFNFKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE1NzE3MjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE1NzEwNjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE1NzE3MjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDQ4OTcsIDAuMDA0ODk0LCAwLjAwNDg5LCAwLjAwNDg4NCwgMC4wMDQ4OCwgMC4wMDQ4NzQsIDAuMDA0ODcxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA2MDk2LCAwLjAwNjA3MywgMC4wMDYwNTMsIDAuMDA2MDQxLCAwLjAwNjAzMSwgMC4wMDYwMTksIDAuMDA2MDEzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlJOJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIlJOX0VRXzFfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMTg3NSwgLTAuMDA3NSwgMC4wMDUsIDAuMDIzNzUsIDAuMDM2MjUsIDAuMDU4NzUsIDAuMDgiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAuMDEyNSwgMC4wMjUsIDAuMDQ3NSwgMC4wNjg3NSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjAzNzUsIC0wLjAxODc1LCAtMC4wMDYyNSwgMC4wMDYyNSwgMC4wMzUsIDAuMDUiLCBcCi0gICAgICAgICAgIi0wLjA2MTI1LCAtMC4wNSwgLTAuMDM3NSwgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLjAxNjI1LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjA4LCAtMC4wNjI1LCAtMC4wNSwgLTAuMDM3NSwgLTAuMDE4NzUsIDAuMDAzNzUsIDAuMDI1IiwgXAotICAgICAgICAgICItMC4wOTYyNSwgLTAuMDg1LCAtMC4wNzI1LCAtMC4wNiwgLTAuMDQxMjUsIC0wLjAxODc1LCAwLjAwMjUiLCBcCi0gICAgICAgICAgIi0wLjExNzUsIC0wLjEwNjI1LCAtMC4wODc1LCAtMC4wNzUsIC0wLjA2MjUsIC0wLjA0LCAtMC4wMTg3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE4NzUsIDAuMDMsIDAuMDQ4NzUsIDAuMDYxMjUsIDAuMDczNzUsIDAuMDk2MjUsIDAuMTE3NSIsIFwKLSAgICAgICAgICAiMC4wMDc1LCAwLjAxODc1LCAwLjAzNzUsIDAuMDUsIDAuMDYyNSwgMC4wOTEyNSwgMC4xMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDA1LCAwLjAwNjI1LCAwLjAyNSwgMC4wMzc1LCAwLjA1NjI1LCAwLjA3ODc1LCAwLjEiLCBcCi0gICAgICAgICAgIi0wLjAxMTI1LCAtMC4wMDYyNSwgMC4wMTI1LCAwLjAyNSwgMC4wNDM3NSwgMC4wNjYyNSwgMC4wODc1IiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDEyNSwgMCwgMC4wMTI1LCAwLjAzMTI1LCAwLjA1Mzc1LCAwLjA3NSIsIFwKLSAgICAgICAgICAiLTAuMDQ2MjUsIC0wLjAzNSwgLTAuMDE2MjUsIC0wLjAwMzc1LCAwLjAwODc1LCAwLjAzMTI1LCAwLjA1MjUiLCBcCi0gICAgICAgICAgIi0wLjA2MTI1LCAtMC4wNSwgLTAuMDMxMjUsIC0wLjAxODc1LCAtMC4wMDYyNSwgMC4wMTYyNSwgMC4wMzc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJSTiZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJSTl9FUV8xX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMiwgMC4xODg3NSwgMC4xNywgMC4xNTc1LCAwLjEzODc1LCAwLjExNjI1LCAwLjA5NSIsIFwKLSAgICAgICAgICAiMC4yMTEyNSwgMC4yLCAwLjE4MTI1LCAwLjE2MjUsIDAuMTUsIDAuMTI3NSwgMC4xMDYyNSIsIFwKLSAgICAgICAgICAiMC4yMjM3NSwgMC4yMTI1LCAwLjE5Mzc1LCAwLjE3NSwgMC4xNjI1LCAwLjE0LCAwLjExODc1IiwgXAotICAgICAgICAgICIwLjIzNjI1LCAwLjIyNSwgMC4yMDYyNSwgMC4xODc1LCAwLjE3NSwgMC4xNTI1LCAwLjEzMTI1IiwgXAotICAgICAgICAgICIwLjI1NSwgMC4yMzc1LCAwLjIxODc1LCAwLjIwNjI1LCAwLjE4NzUsIDAuMTY1LCAwLjE0Mzc1IiwgXAotICAgICAgICAgICIwLjI3MTI1LCAwLjI2LCAwLjI0MTI1LCAwLjIyMjUsIDAuMjEsIDAuMTg3NSwgMC4xNjYyNSIsIFwKLSAgICAgICAgICAiMC4yOTI1LCAwLjI4MTI1LCAwLjI2MjUsIDAuMjQzNzUsIDAuMjI1LCAwLjIwMjUsIDAuMTg3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIzNzUsIDAuMjI2MjUsIDAuMjA3NSwgMC4xODg3NSwgMC4xNzYyNSwgMC4xNTM3NSwgMC4xMzI1IiwgXAotICAgICAgICAgICIwLjI0ODc1LCAwLjIzNzUsIDAuMjE4NzUsIDAuMiwgMC4xODc1LCAwLjE2NSwgMC4xNDM3NSIsIFwKLSAgICAgICAgICAiMC4yNjc1LCAwLjI1NjI1LCAwLjIzNzUsIDAuMjE4NzUsIDAuMiwgMC4xNzc1LCAwLjE2MjUiLCBcCi0gICAgICAgICAgIjAuMjgsIDAuMjY4NzUsIDAuMjUsIDAuMjMxMjUsIDAuMjE4NzUsIDAuMTksIDAuMTc1IiwgXAotICAgICAgICAgICIwLjI5MjUsIDAuMjgxMjUsIDAuMjYyNSwgMC4yNDM3NSwgMC4yMzEyNSwgMC4yMDg3NSwgMC4xODc1IiwgXAotICAgICAgICAgICIwLjMxNSwgMC4zMDM3NSwgMC4yODUsIDAuMjY2MjUsIDAuMjQ3NSwgMC4yMjUsIDAuMjEiLCBcCi0gICAgICAgICAgIjAuMzMsIDAuMzE4NzUsIDAuMywgMC4yODEyNSwgMC4yNjI1LCAwLjI0LCAwLjIyNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oU0kpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDg3NTEyNjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA4NzE0ODE7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwODc1MTI2OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzgyOSwgMC4wMDM4MSwgMC4wMDM4LCAwLjAwMzc5MywgMC4wMDM3ODgsIDAuMDAzNzgxLCAwLjAwMzc3NiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNTMxNywgMC4wMDUzMDgsIDAuMDA1MzAzLCAwLjAwNTI5OCwgMC4wMDUyOTUsIDAuMDA1MjksIDAuMDA1Mjg4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlJOJlNFJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIlJOX0VRXzFfQU5fU0VfRVFfMV9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjEsIC0wLjA4ODc1LCAtMC4wNzYyNSwgLTAuMDYzNzUsIC0wLjA1MTI1LCAtMC4wMzUsIC0wLjAyIiwgXAotICAgICAgICAgICItMC4xMTEyNSwgLTAuMSwgLTAuMDg3NSwgLTAuMDc1LCAtMC4wNjI1LCAtMC4wNDYyNSwgLTAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjEyMzc1LCAtMC4xMTI1LCAtMC4xLCAtMC4wODc1LCAtMC4wODEyNSwgLTAuMDU4NzUsIC0wLjA0Mzc1IiwgXAotICAgICAgICAgICItMC4xMzYyNSwgLTAuMTI1LCAtMC4xMTg3NSwgLTAuMTA2MjUsIC0wLjA5Mzc1LCAtMC4wNzEyNSwgLTAuMDU2MjUiLCBcCi0gICAgICAgICAgIi0wLjE0ODc1LCAtMC4xNDM3NSwgLTAuMTMxMjUsIC0wLjExODc1LCAtMC4xMDYyNSwgLTAuMDksIC0wLjA3NSIsIFwKLSAgICAgICAgICAiLTAuMTcxMjUsIC0wLjE2LCAtMC4xNDc1LCAtMC4xMzUsIC0wLjEyODc1LCAtMC4xMDYyNSwgLTAuMDk3NSIsIFwKLSAgICAgICAgICAiLTAuMTkyNSwgLTAuMTgxMjUsIC0wLjE2ODc1LCAtMC4xNTYyNSwgLTAuMTQzNzUsIC0wLjEyNzUsIC0wLjExMjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjI1LCAwLjAxNzUsIDAuMDM2MjUsIDAuMDQ4NzUsIDAuMDYxMjUsIDAuMDgzNzUsIDAuMTA1IiwgXAotICAgICAgICAgICItMC4wMDUsIDAuMDA2MjUsIDAuMDI1LCAwLjAzNzUsIDAuMDUsIDAuMDcyNSwgMC4wOTM3NSIsIFwKLSAgICAgICAgICAiLTAuMDE3NSwgLTAuMDA2MjUsIDAuMDEyNSwgMC4wMjUsIDAuMDM3NSwgMC4wNiwgMC4wODEyNSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAxODc1LCAwLCAwLjAxMjUsIDAuMDI1LCAwLjA0NzUsIDAuMDY4NzUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzMTI1LCAtMC4wMTI1LCAwLCAwLjAxODc1LCAwLjA0MTI1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICItMC4wNTg3NSwgLTAuMDQ3NSwgLTAuMDI4NzUsIC0wLjAxNjI1LCAtMC4wMDM3NSwgMC4wMTg3NSwgMC4wNCIsIFwKLSAgICAgICAgICAiLTAuMDczNzUsIC0wLjA2MjUsIC0wLjA0Mzc1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIDAuMDAzNzUsIDAuMDI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJSTiZTRSZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJSTl9FUV8xX0FOX1NFX0VRXzFfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMTI1LCAwLjIwMTI1LCAwLjE4MjUsIDAuMTcsIDAuMTUxMjUsIDAuMTI4NzUsIDAuMTA3NSIsIFwKLSAgICAgICAgICAiMC4yMjM3NSwgMC4yMTI1LCAwLjE5Mzc1LCAwLjE3NSwgMC4xNjI1LCAwLjE0LCAwLjExODc1IiwgXAotICAgICAgICAgICIwLjIzNjI1LCAwLjIyNSwgMC4yMDYyNSwgMC4xOTM3NSwgMC4xNzUsIDAuMTUyNSwgMC4xMzEyNSIsIFwKLSAgICAgICAgICAiMC4yNTUsIDAuMjM3NSwgMC4yMjUsIDAuMjA2MjUsIDAuMTg3NSwgMC4xNjUsIDAuMTQzNzUiLCBcCi0gICAgICAgICAgIjAuMjY3NSwgMC4yNTYyNSwgMC4yMzc1LCAwLjIxODc1LCAwLjIsIDAuMTc3NSwgMC4xNjI1IiwgXAotICAgICAgICAgICIwLjI5LCAwLjI3MjUsIDAuMjUzNzUsIDAuMjQxMjUsIDAuMjIyNSwgMC4yLCAwLjE3ODc1IiwgXAotICAgICAgICAgICIwLjMwNSwgMC4yOTM3NSwgMC4yNzUsIDAuMjU2MjUsIDAuMjQzNzUsIDAuMjIxMjUsIDAuMiIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE1NjI1LCAwLjE0NSwgMC4xMjYyNSwgMC4xMDc1LCAwLjA5NSwgMC4wNjYyNSwgMC4wNDUiLCBcCi0gICAgICAgICAgIjAuMTY3NSwgMC4xNTYyNSwgMC4xMzc1LCAwLjExODc1LCAwLjEwNjI1LCAwLjA3NzUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIjAuMTgsIDAuMTY4NzUsIDAuMTUsIDAuMTMxMjUsIDAuMTE4NzUsIDAuMDksIDAuMDY4NzUiLCBcCi0gICAgICAgICAgIjAuMTkyNSwgMC4xODEyNSwgMC4xNjI1LCAwLjE0Mzc1LCAwLjEzMTI1LCAwLjEwMjUsIDAuMDgxMjUiLCBcCi0gICAgICAgICAgIjAuMjA1LCAwLjE5Mzc1LCAwLjE3NSwgMC4xNTYyNSwgMC4xNDM3NSwgMC4xMTUsIDAuMDkzNzUiLCBcCi0gICAgICAgICAgIjAuMjIxMjUsIDAuMjEsIDAuMTkxMjUsIDAuMTc4NzUsIDAuMTYsIDAuMTM3NSwgMC4xMSIsIFwKLSAgICAgICAgICAiMC4yMzYyNSwgMC4yMjUsIDAuMjEyNSwgMC4xOTM3NSwgMC4xODEyNSwgMC4xNTI1LCAwLjEzMTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTTikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxOTA2ODk7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxOTA2NDU7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxOTA2ODk7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNDg1LCAwLjAwMDQ4NCwgMC4wMDA0ODQsIDAuMDAwNDg0LCAwLjAwMDQ4NCwgMC4wMDA0ODQsIDAuMDAwNDg0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNDg2LCAwLjAwMDQ4NiwgMC4wMDA0ODYsIDAuMDAwNDg2LCAwLjAwMDQ4NiwgMC4wMDA0ODcsIDAuMDAwNDg3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRCYhUk4mIVNFJiFTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fUk5fRVFfMF9BTl9TRV9FUV8wX0FOX1NJX0VRXzAgPT0gMSdiMSI7Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4yMjk2ODIsIDAuMjQxMzg4LCAwLjI1NTQyMSwgMC4yNjg1MzcsIDAuMjgxMjM0LCAwLjMwMTM4MywgMC4zMjE0MTUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiByZWNvdmVyeV9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlJOIjsKLSAgICAgIHNkZl9jb25kIDogIlJOID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHJlY292ZXJ5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMjUsIDAuMDAxMjUsIC0wLjAxMTI1LCAtMC4wMywgLTAuMDQ4NzUsIC0wLjA3MTI1LCAtMC4wOTg3NSIsIFwKLSAgICAgICAgICAiMC4wMjM3NSwgMC4wMTI1LCAwLCAtMC4wMTg3NSwgLTAuMDM3NSwgLTAuMDYsIC0wLjA4NzUiLCBcCi0gICAgICAgICAgIjAuMDQyNSwgMC4wMzEyNSwgMC4wMTI1LCAtMC4wMDYyNSwgLTAuMDE4NzUsIC0wLjA0NzUsIC0wLjA2ODc1IiwgXAotICAgICAgICAgICIwLjA1NSwgMC4wNDM3NSwgMC4wMjUsIDAuMDA2MjUsIC0wLjAwNjI1LCAtMC4wMzUsIC0wLjA1NjI1IiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDU2MjUsIDAuMDM3NSwgMC4wMjUsIDAuMDA2MjUsIC0wLjAyMjUsIC0wLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjA5LCAwLjA3ODc1LCAwLjA2LCAwLjA0MTI1LCAwLjAyODc1LCAwLCAtMC4wMjEyNSIsIFwKLSAgICAgICAgICAiMC4xMDUsIDAuMDkzNzUsIDAuMDgxMjUsIDAuMDYyNSwgMC4wNDM3NSwgMC4wMjEyNSwgLTAuMDA2MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiByZW1vdmFsX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiUk4iOwotICAgICAgc2RmX2NvbmQgOiAiUk4gPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQocmVtb3ZhbF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODc1LCAwLjA5ODc1LCAwLjExMTI1LCAwLjEzLCAwLjE0MjUsIDAuMTY1LCAwLjE4NjI1IiwgXAotICAgICAgICAgICIwLjA3NjI1LCAwLjA4NzUsIDAuMSwgMC4xMTg3NSwgMC4xMzEyNSwgMC4xNTM3NSwgMC4xNzUiLCBcCi0gICAgICAgICAgIjAuMDYzNzUsIDAuMDc1LCAwLjA4NzUsIDAuMSwgMC4xMTg3NSwgMC4xNDEyNSwgMC4xNjI1IiwgXAotICAgICAgICAgICIwLjA0NSwgMC4wNTYyNSwgMC4wNzUsIDAuMDg3NSwgMC4xMDYyNSwgMC4xMjg3NSwgMC4xNSIsIFwKLSAgICAgICAgICAiMC4wMzI1LCAwLjA0Mzc1LCAwLjA2MjUsIDAuMDc1LCAwLjA5Mzc1LCAwLjExNjI1LCAwLjEzNzUiLCBcCi0gICAgICAgICAgIjAuMDEsIDAuMDIxMjUsIDAuMDQsIDAuMDUyNSwgMC4wNzEyNSwgMC4wOTM3NSwgMC4xMTUiLCBcCi0gICAgICAgICAgIi0wLjAwNSwgMC4wMDYyNSwgMC4wMTg3NSwgMC4wMzc1LCAwLjA1LCAwLjA3ODc1LCAwLjA5Mzc1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBTRURGRlRSWDEgKgotICogLS0tLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChTRURGRlRSWDEpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC40MTc2NTU7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgZmYgKE4zMCxRQklOVCkgewotICAgIG5leHRfc3RhdGUgOiAiKChTRSBTSSkgKyAoIVNFICgoKCEoKCFEKSBFKSkgKCEoKCFFKSAoIU4zMCkpKSkgUk4pKSkiOwotICAgIGNsb2NrZWRfb24gOiAiQ0siOwotICB9Ci0gIHBpbihDSykgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNTc5NTYzOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDU3OTI3MjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA1Nzk1NjM7Ci0gICAgY2xvY2sgOiB0cnVlOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjQxNSwgMC4wMDI0MDEsIDAuMDAyMzg5LCAwLjAwMjM4MywgMC4wMDIzNzcsIDAuMDAyMzcyLCAwLjAwMjM3MSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNDQ0MSwgMC4wMDQ0MywgMC4wMDQ0MjEsIDAuMDA0NDE2LCAwLjAwNDQxNiwgMC4wMDQ0MTcsIDAuMDA0NDE3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRCYhRSYhUk4mIVNFJiFTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fRV9FUV8wX0FOX1JOX0VRXzBfQU5fU0VfRVFfMF9BTl9TSV9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMzYzNTg2LCAwLjM3NTI5OCwgMC4zOTA3MzUsIDAuNDA2MTUsIDAuNDIxMDk4LCAwLjQ0NTM4NCwgMC40NjU3MTIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjE5MDI1MSwgMC4yMDE3MTMsIDAuMjE2NiwgMC4yMzE0NDcsIDAuMjQ1OTg0LCAwLjI2ODE4NSwgMC4yODY1MTEiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEQpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDU2ODc3MzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA1Njg1Mjk7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNTY4NzczOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNTEwNCwgMC4wMDUwODUsIDAuMDA1MDcyLCAwLjAwNTA2NCwgMC4wMDUwNiwgMC4wMDUwNTYsIDAuMDA1MDU1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA1MjI0LCAwLjAwNTIxMSwgMC4wMDUyMDEsIDAuMDA1MTk2LCAwLjAwNTE5MSwgMC4wMDUxODgsIDAuMDA1MTg2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIkUmUk4mIVNFIjsKLSAgICAgIHNkZl9jb25kIDogIkVfRVFfMV9BTl9STl9FUV8xX0FOX1NFX0VRXzAgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMywgLTAuMjg4NzUsIC0wLjI4MjUsIC0wLjI3LCAtMC4yNjM3NSwgLTAuMjQ3NSwgLTAuMjM4NzUiLCBcCi0gICAgICAgICAgIi0wLjMxMTI1LCAtMC4zLCAtMC4yOTM3NSwgLTAuMjgxMjUsIC0wLjI3NSwgLTAuMjU4NzUsIC0wLjI1IiwgXAotICAgICAgICAgICItMC4zMywgLTAuMzE4NzUsIC0wLjMwNjI1LCAtMC4zLCAtMC4yODc1LCAtMC4yNzc1LCAtMC4yNjI1IiwgXAotICAgICAgICAgICItMC4zNDI1LCAtMC4zMzEyNSwgLTAuMzI1LCAtMC4zMTI1LCAtMC4zLCAtMC4yOSwgLTAuMjgxMjUiLCBcCi0gICAgICAgICAgIi0wLjM1NSwgLTAuMzQzNzUsIC0wLjMzNzUsIC0wLjMyNSwgLTAuMzE4NzUsIC0wLjMwMjUsIC0wLjI5Mzc1IiwgXAotICAgICAgICAgICItMC4zNzc1LCAtMC4zNjYyNSwgLTAuMzYsIC0wLjM0NzUsIC0wLjM0MTI1LCAtMC4zMjUsIC0wLjMxNjI1IiwgXAotICAgICAgICAgICItMC4zOTI1LCAtMC4zODEyNSwgLTAuMzc1LCAtMC4zNjI1LCAtMC4zNTYyNSwgLTAuMzQsIC0wLjMzMTI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMTc1LCAtMC4xNjM3NSwgLTAuMTUxMjUsIC0wLjEzODc1LCAtMC4xMjYyNSwgLTAuMTEsIC0wLjA4ODc1IiwgXAotICAgICAgICAgICItMC4xODYyNSwgLTAuMTc1LCAtMC4xNjI1LCAtMC4xNSwgLTAuMTM3NSwgLTAuMTIxMjUsIC0wLjEiLCBcCi0gICAgICAgICAgIi0wLjIwNSwgLTAuMTkzNzUsIC0wLjE3NSwgLTAuMTYyNSwgLTAuMTUsIC0wLjEzMzc1LCAtMC4xMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMjE3NSwgLTAuMjA2MjUsIC0wLjE5Mzc1LCAtMC4xODEyNSwgLTAuMTY4NzUsIC0wLjE0NjI1LCAtMC4xMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMjMsIC0wLjIxODc1LCAtMC4yMDYyNSwgLTAuMTkzNzUsIC0wLjE4MTI1LCAtMC4xNTg3NSwgLTAuMTQzNzUiLCBcCi0gICAgICAgICAgIi0wLjI0NjI1LCAtMC4yMzUsIC0wLjIyMjUsIC0wLjIxLCAtMC4xOTc1LCAtMC4xNzUsIC0wLjE2IiwgXAotICAgICAgICAgICItMC4yNjEyNSwgLTAuMjUsIC0wLjIzNzUsIC0wLjIyNSwgLTAuMjEyNSwgLTAuMTksIC0wLjE3NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiRSZSTiYhU0UiOwotICAgICAgc2RmX2NvbmQgOiAiRV9FUV8xX0FOX1JOX0VRXzFfQU5fU0VfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC40MTI1LCAwLjQwMTI1LCAwLjM4MjUsIDAuMzcsIDAuMzU3NSwgMC4zNDEyNSwgMC4zMzI1IiwgXAotICAgICAgICAgICIwLjQyMzc1LCAwLjQxMjUsIDAuMzkzNzUsIDAuMzgxMjUsIDAuMzY4NzUsIDAuMzUyNSwgMC4zNDM3NSIsIFwKLSAgICAgICAgICAiMC40MzYyNSwgMC40MjUsIDAuNDEyNSwgMC40LCAwLjM4NzUsIDAuMzcxMjUsIDAuMzU2MjUiLCBcCi0gICAgICAgICAgIjAuNDU1LCAwLjQ0Mzc1LCAwLjQyNSwgMC40MTI1LCAwLjQsIDAuMzgzNzUsIDAuMzY4NzUiLCBcCi0gICAgICAgICAgIjAuNDY3NSwgMC40NTYyNSwgMC40Mzc1LCAwLjQyNSwgMC40MTI1LCAwLjM5NjI1LCAwLjM4NzUiLCBcCi0gICAgICAgICAgIjAuNDksIDAuNDc4NzUsIDAuNDYsIDAuNDQ3NSwgMC40MzUsIDAuNDE4NzUsIDAuNDAzNzUiLCBcCi0gICAgICAgICAgIjAuNTA1LCAwLjQ5Mzc1LCAwLjQ3NSwgMC40NjI1LCAwLjQ1LCAwLjQzMzc1LCAwLjQyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI5Mzc1LCAwLjI4MjUsIDAuMjYzNzUsIDAuMjQ1LCAwLjIzMjUsIDAuMjEsIDAuMTg4NzUiLCBcCi0gICAgICAgICAgIjAuMzA1LCAwLjI5Mzc1LCAwLjI3NSwgMC4yNTYyNSwgMC4yNDM3NSwgMC4yMjEyNSwgMC4yIiwgXAotICAgICAgICAgICIwLjMxNzUsIDAuMzA2MjUsIDAuMjg3NSwgMC4yNzUsIDAuMjU2MjUsIDAuMjMzNzUsIDAuMjEyNSIsIFwKLSAgICAgICAgICAiMC4zMywgMC4zMTg3NSwgMC4zMDYyNSwgMC4yODc1LCAwLjI2ODc1LCAwLjI0NjI1LCAwLjIyNSIsIFwKLSAgICAgICAgICAiMC4zNDI1LCAwLjMzMTI1LCAwLjMxODc1LCAwLjMsIDAuMjgxMjUsIDAuMjU4NzUsIDAuMjM3NSIsIFwKLSAgICAgICAgICAiMC4zNjUsIDAuMzQ3NSwgMC4zMzUsIDAuMzE2MjUsIDAuMzAzNzUsIDAuMjc1LCAwLjI2IiwgXAotICAgICAgICAgICIwLjM3Mzc1LCAwLjM2MjUsIDAuMzUsIDAuMzMxMjUsIDAuMzE4NzUsIDAuMjksIDAuMjY4NzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEUpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTE2NTQ1OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTE2NTQ1OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTE2MzkzOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNTQ4MywgMC4wMDU0NzEsIDAuMDA1NDYzLCAwLjAwNTQ1OSwgMC4wMDU0NTYsIDAuMDA1NDUzLCAwLjAwNTQ1MyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNjE2NywgMC4wMDYxNDgsIDAuMDA2MTM2LCAwLjAwNjEyOSwgMC4wMDYxMjUsIDAuMDA2MTE5LCAwLjAwNjExNiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJSTiYhU0UiOwotICAgICAgc2RmX2NvbmQgOiAiUk5fRVFfMV9BTl9TRV9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjIzMTI1LCAtMC4yMiwgLTAuMjAxMjUsIC0wLjE4ODc1LCAtMC4xNywgLTAuMTQ3NSwgLTAuMTI2MjUiLCBcCi0gICAgICAgICAgIi0wLjI0MjUsIC0wLjIzMTI1LCAtMC4yMTI1LCAtMC4yLCAtMC4xODEyNSwgLTAuMTU4NzUsIC0wLjE0Mzc1IiwgXAotICAgICAgICAgICItMC4yNTUsIC0wLjI0Mzc1LCAtMC4yMjUsIC0wLjIxMjUsIC0wLjE5Mzc1LCAtMC4xNzEyNSwgLTAuMTU2MjUiLCBcCi0gICAgICAgICAgIi0wLjI2NzUsIC0wLjI1NjI1LCAtMC4yNDM3NSwgLTAuMjI1LCAtMC4yMTI1LCAtMC4xOSwgLTAuMTY4NzUiLCBcCi0gICAgICAgICAgIi0wLjI4LCAtMC4yNjg3NSwgLTAuMjU2MjUsIC0wLjIzNzUsIC0wLjIyNSwgLTAuMjAyNSwgLTAuMTgxMjUiLCBcCi0gICAgICAgICAgIi0wLjMwMjUsIC0wLjI5MTI1LCAtMC4yNzg3NSwgLTAuMjYsIC0wLjI0NzUsIC0wLjIyNSwgLTAuMjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjMyMzc1LCAtMC4zMTI1LCAtMC4yOTM3NSwgLTAuMjgxMjUsIC0wLjI2MjUsIC0wLjI0LCAtMC4yMTg3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjIwNjI1LCAtMC4xOTUsIC0wLjE4MjUsIC0wLjE3LCAtMC4xNTc1LCAtMC4xMzUsIC0wLjEyIiwgXAotICAgICAgICAgICItMC4yMTc1LCAtMC4yMDYyNSwgLTAuMTkzNzUsIC0wLjE4MTI1LCAtMC4xNjg3NSwgLTAuMTQ2MjUsIC0wLjEzMTI1IiwgXAotICAgICAgICAgICItMC4yMywgLTAuMjE4NzUsIC0wLjIwNjI1LCAtMC4xOTM3NSwgLTAuMTgxMjUsIC0wLjE2NSwgLTAuMTQzNzUiLCBcCi0gICAgICAgICAgIi0wLjI0ODc1LCAtMC4yMzc1LCAtMC4yMjUsIC0wLjIxMjUsIC0wLjIsIC0wLjE3NzUsIC0wLjE2MjUiLCBcCi0gICAgICAgICAgIi0wLjI2MTI1LCAtMC4yNSwgLTAuMjM3NSwgLTAuMjI1LCAtMC4yMTI1LCAtMC4xOSwgLTAuMTc1IiwgXAotICAgICAgICAgICItMC4yNzc1LCAtMC4yNjYyNSwgLTAuMjUzNzUsIC0wLjI0MTI1LCAtMC4yMjg3NSwgLTAuMjA2MjUsIC0wLjE5MTI1IiwgXAotICAgICAgICAgICItMC4yOTI1LCAtMC4yODEyNSwgLTAuMjY4NzUsIC0wLjI1NjI1LCAtMC4yNDM3NSwgLTAuMjIxMjUsIC0wLjIwNjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJSTiYhU0UiOwotICAgICAgc2RmX2NvbmQgOiAiUk5fRVFfMV9BTl9TRV9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjQ1NjI1LCAwLjQ0NSwgMC40MjYyNSwgMC40MTM3NSwgMC40MDEyNSwgMC4zODUsIDAuMzciLCBcCi0gICAgICAgICAgIjAuNDY3NSwgMC40NTYyNSwgMC40Mzc1LCAwLjQyNSwgMC40MTI1LCAwLjM5NjI1LCAwLjM4NzUiLCBcCi0gICAgICAgICAgIjAuNDgsIDAuNDY4NzUsIDAuNDU2MjUsIDAuNDQzNzUsIDAuNDMxMjUsIDAuNDE1LCAwLjQiLCBcCi0gICAgICAgICAgIjAuNDk4NzUsIDAuNDg3NSwgMC40Njg3NSwgMC40NTYyNSwgMC40NDM3NSwgMC40Mjc1LCAwLjQxMjUiLCBcCi0gICAgICAgICAgIjAuNTExMjUsIDAuNSwgMC40ODc1LCAwLjQ2ODc1LCAwLjQ1NjI1LCAwLjQ0LCAwLjQzMTI1IiwgXAotICAgICAgICAgICIwLjUzMzc1LCAwLjUyMjUsIDAuNTAzNzUsIDAuNDkxMjUsIDAuNDc4NzUsIDAuNDYyNSwgMC40NTM3NSIsIFwKLSAgICAgICAgICAiMC41NDg3NSwgMC41Mzc1LCAwLjUyNSwgMC41MDYyNSwgMC40OTM3NSwgMC40Nzc1LCAwLjQ2ODc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzEyNSwgMC4zMDc1LCAwLjI5NSwgMC4yODI1LCAwLjI3NjI1LCAwLjI2LCAwLjI1MTI1IiwgXAotICAgICAgICAgICIwLjMyMzc1LCAwLjMxMjUsIDAuMzA2MjUsIDAuMjkzNzUsIDAuMjgxMjUsIDAuMjcxMjUsIDAuMjU2MjUiLCBcCi0gICAgICAgICAgIjAuMzM2MjUsIDAuMzI1LCAwLjMxODc1LCAwLjMwNjI1LCAwLjMsIDAuMjgzNzUsIDAuMjY4NzUiLCBcCi0gICAgICAgICAgIjAuMzQ4NzUsIDAuMzM3NSwgMC4zMzEyNSwgMC4zMTg3NSwgMC4zMDYyNSwgMC4yOTYyNSwgMC4yODEyNSIsIFwKLSAgICAgICAgICAiMC4zNjEyNSwgMC4zNSwgMC4zNDM3NSwgMC4zMzEyNSwgMC4zMjUsIDAuMzA4NzUsIDAuMjkzNzUiLCBcCi0gICAgICAgICAgIjAuMzgzNzUsIDAuMzcyNSwgMC4zNiwgMC4zNTM3NSwgMC4zNDEyNSwgMC4zMzEyNSwgMC4zMTYyNSIsIFwKLSAgICAgICAgICAiMC4zOTg3NSwgMC4zOTM3NSwgMC4zODEyNSwgMC4zNjg3NSwgMC4zNjI1LCAwLjM0NjI1LCAwLjMzNzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFEpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4xMzMxODI7Ci0gICAgZnVuY3Rpb24gOiAiTjMwIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBub25fdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJpc2luZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMTQ4NDUsIDAuMzU4ODcsIDAuNjA0NzIyLCAwLjgyMTkwNiwgMS4xMTAwOCwgMS42ODksIDIuMDQ4ODYiLCBcCi0gICAgICAgICAgIjAuMzI2MzM1LCAwLjM3MDQsIDAuNjE2MjgyLCAwLjgzMzQ3MSwgMS4xMjMzOCwgMS42OTk4OSwgMi4wNjAxOCIsIFwKLSAgICAgICAgICAiMC4zNDE4NzUsIDAuMzg1OTQ3LCAwLjYzMTg2OSwgMC44NDkwNDEsIDEuMTM4MzEsIDEuNzE1MDcsIDIuMDc1NyIsIFwKLSAgICAgICAgICAiMC4zNTcyNTIsIDAuNDAxMjcsIDAuNjQ3NTcsIDAuODYzNjQsIDEuMTUyNSwgMS43MzE4OCwgMi4wOTA0OCIsIFwKLSAgICAgICAgICAiMC4zNzIwMywgMC40MTYwNjMsIDAuNjYyMzY4LCAwLjg3ODcyNiwgMS4xNjczMywgMS43NDYwNSwgMi4xMDUyNCIsIFwKLSAgICAgICAgICAiMC4zOTYyNzQsIDAuNDQwMzI5LCAwLjY4NjIyMywgMC45MDM0MTMsIDEuMTkzLCAxLjc2OTUyLCAyLjEzMDExIiwgXAotICAgICAgICAgICIwLjQxNjE1NCwgMC40NjAxOSwgMC43MDY0ODcsIDAuOTIyNDQ0LCAxLjIxMTQ1LCAxLjc5Mjg5LCAyLjE0OTQ3Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE3MjcxMiwgMC4yNTgyODEsIDAuNzU1NDUyLCAxLjE5NzQ3LCAxLjc5MDM5LCAyLjk3NDY0LCAzLjcxNDc1IiwgXAotICAgICAgICAgICIwLjE3MjQ1MiwgMC4yNTgzMjYsIDAuNzU1NDU5LCAxLjE5ODI2LCAxLjc4OTM3LCAyLjk3OTAzLCAzLjcxOTIiLCBcCi0gICAgICAgICAgIjAuMTcyNzAxLCAwLjI1ODI3MSwgMC43NTU0NTgsIDEuMTk4MjEsIDEuNzg5MzksIDIuOTc4ODIsIDMuNzE1NDMiLCBcCi0gICAgICAgICAgIjAuMTcxODk4LCAwLjI1ODIyLCAwLjc1NTM5OSwgMS4xOTk0NCwgMS43ODQyMywgMi45Nzc3NCwgMy43MTkwNSIsIFwKLSAgICAgICAgICAiMC4xNzE5OCwgMC4yNTgyNTMsIDAuNzU1Mzc4LCAxLjE5OTEzLCAxLjc5MDQzLCAyLjk3NzgzLCAzLjcxOTE1IiwgXAotICAgICAgICAgICIwLjE3MjY3MywgMC4yNTgyMjYsIDAuNzU1NDU4LCAxLjE5ODIyLCAxLjc4OTY4LCAyLjk3OTA5LCAzLjcxNzg1IiwgXAotICAgICAgICAgICIwLjE3MTk2LCAwLjI1ODIzMiwgMC43NTUzODQsIDEuMTk5NDgsIDEuNzkwMzgsIDIuOTc3NjUsIDMuNzE4OTYiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzQ2NzA1LCAwLjM5NjgyNiwgMC42Nzc3MDQsIDAuOTI2MjM5LCAxLjI1NzIzLCAxLjkxNzIxLCAyLjMzMDc2IiwgXAotICAgICAgICAgICIwLjM1ODQwMiwgMC40MDg1MzQsIDAuNjg5NDA0LCAwLjkzNzY5OSwgMS4yNjgxMywgMS45MjksIDIuMzQzNTgiLCBcCi0gICAgICAgICAgIjAuMzczODU1LCAwLjQyMzk3NiwgMC43MDQ4NTQsIDAuOTUzMzksIDEuMjg0MzUsIDEuOTQ0NDIsIDIuMzU3NzkiLCBcCi0gICAgICAgICAgIjAuMzg5MjY5LCAwLjQzOTM4OSwgMC43MjAyNjgsIDAuOTY4ODAzLCAxLjI5OTc3LCAxLjk1OTgzLCAyLjM3MzE1IiwgXAotICAgICAgICAgICIwLjQwNDIzOSwgMC40NTQzNjYsIDAuNzM1MjI5LCAwLjk4Mjk3NSwgMS4zMTM4OCwgMS45NzM2MiwgMi4zODk1MSIsIFwKLSAgICAgICAgICAiMC40Mjg1MjIsIDAuNDc4NjUsIDAuNzU5NTIsIDEuMDA4MDYsIDEuMzM5MDIsIDEuOTk5MTEsIDIuNDEzMDIiLCBcCi0gICAgICAgICAgIjAuNDQ4ODMzLCAwLjQ5ODk1NCwgMC43Nzk4MzEsIDEuMDI4MzcsIDEuMzU5MzMsIDIuMDE5NCwgMi40MzI3MSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xODU4NTIsIDAuMjgwNDkzLCAwLjgzMjE5NCwgMS4zMjIxLCAxLjk3ODU5LCAzLjI4OTM2LCA0LjEwODk1IiwgXAotICAgICAgICAgICIwLjE4NTcyLCAwLjI4MDY3NCwgMC44MzI1NzksIDEuMzIzNzEsIDEuOTc4OTMsIDMuMjkxNTYsIDQuMTExOTUiLCBcCi0gICAgICAgICAgIjAuMTg1ODUxLCAwLjI4MDQ5MiwgMC44MzI1NzMsIDEuMzIxNzksIDEuOTc3ODYsIDMuMjkxNDYsIDQuMTExOSIsIFwKLSAgICAgICAgICAiMC4xODU4NTQsIDAuMjgwNDk0LCAwLjgzMjU3OCwgMS4zMjM0NCwgMS45Nzg4MiwgMy4yOTE0NiwgNC4xMTE5IiwgXAotICAgICAgICAgICIwLjE4NTgzNywgMC4yODA2MzEsIDAuODMyNzE0LCAxLjMyMzk0LCAxLjk3ODIzLCAzLjI5MDc5LCA0LjExMjA4IiwgXAotICAgICAgICAgICIwLjE4NTg1MSwgMC4yODA1NjEsIDAuODMyNTgsIDEuMzIzNDQsIDEuOTc4OTIsIDMuMjkxNTgsIDQuMTExOSIsIFwKLSAgICAgICAgICAiMC4xODU4NTEsIDAuMjgwNDk5LCAwLjgzMjU3NywgMS4zMjM0NCwgMS45Nzg4MSwgMy4yOTE0NiwgNC4xMTE5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDYxLCAwLjAwNDYxNywgMC4wMDQ2MjUsIDAuMDA0NjI3LCAwLjAwNDYyNywgMC4wMDQ2MjgsIDAuMDA0NjI4IiwgXAotICAgICAgICAgICIwLjAwNDYwMywgMC4wMDQ2MDksIDAuMDA0NjE3LCAwLjAwNDYxOSwgMC4wMDQ2MiwgMC4wMDQ2MiwgMC4wMDQ2MjEiLCBcCi0gICAgICAgICAgIjAuMDA0NTk3LCAwLjAwNDYwMywgMC4wMDQ2MTEsIDAuMDA0NjEzLCAwLjAwNDYxNCwgMC4wMDQ2MTQsIDAuMDA0NjE1IiwgXAotICAgICAgICAgICIwLjAwNDU5MiwgMC4wMDQ1OTgsIDAuMDA0NjA3LCAwLjAwNDYwOCwgMC4wMDQ2MDksIDAuMDA0NjEsIDAuMDA0NjEiLCBcCi0gICAgICAgICAgIjAuMDA0NTg3LCAwLjAwNDU5MywgMC4wMDQ2MDEsIDAuMDA0NjAzLCAwLjAwNDYwNCwgMC4wMDQ2MDUsIDAuMDA0NjA0IiwgXAotICAgICAgICAgICIwLjAwNDU4MywgMC4wMDQ1OSwgMC4wMDQ1OTgsIDAuMDA0NiwgMC4wMDQ2LCAwLjAwNDYwMSwgMC4wMDQ2MDEiLCBcCi0gICAgICAgICAgIjAuMDA0NTgxLCAwLjAwNDU4NywgMC4wMDQ1OTYsIDAuMDA0NTk4LCAwLjAwNDU5OCwgMC4wMDQ1OTksIDAuMDA0NTk5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0NjM4LCAwLjAwNDY0MywgMC4wMDQ2NTEsIDAuMDA0NjUzLCAwLjAwNDY1NCwgMC4wMDQ2NTUsIDAuMDA0NjU1IiwgXAotICAgICAgICAgICIwLjAwNDYzMSwgMC4wMDQ2MzcsIDAuMDA0NjQ1LCAwLjAwNDY0NiwgMC4wMDQ2NDcsIDAuMDA0NjQ4LCAwLjAwNDY0OCIsIFwKLSAgICAgICAgICAiMC4wMDQ2MjUsIDAuMDA0NjMxLCAwLjAwNDYzOSwgMC4wMDQ2NDEsIDAuMDA0NjQyLCAwLjAwNDY0MywgMC4wMDQ2NDMiLCBcCi0gICAgICAgICAgIjAuMDA0NjIyLCAwLjAwNDYyOCwgMC4wMDQ2MzYsIDAuMDA0NjM4LCAwLjAwNDYzOCwgMC4wMDQ2MzksIDAuMDA0NjM5IiwgXAotICAgICAgICAgICIwLjAwNDYyMSwgMC4wMDQ2MjcsIDAuMDA0NjM1LCAwLjAwNDYzNiwgMC4wMDQ2MzcsIDAuMDA0NjM4LCAwLjAwNDYzOCIsIFwKLSAgICAgICAgICAiMC4wMDQ2MjEsIDAuMDA0NjI3LCAwLjAwNDYzNSwgMC4wMDQ2MzcsIDAuMDA0NjM3LCAwLjAwNDYzOCwgMC4wMDQ2MzkiLCBcCi0gICAgICAgICAgIjAuMDA0NjI0LCAwLjAwNDYzLCAwLjAwNDYzOCwgMC4wMDQ2MzksIDAuMDA0NjQsIDAuMDA0NjQxLCAwLjAwNDY0MSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUU4pICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4xMzA4OTc7Ci0gICAgZnVuY3Rpb24gOiAiUUJJTlQiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5vbl91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcmlzaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjM2NDkzNiwgMC40MDc1NjYsIDAuNjQ5NDU0LCAwLjg2MjkxOSwgMS4xNDc2LCAxLjcxNjczLCAyLjA3MjU5IiwgXAotICAgICAgICAgICIwLjM3NjYzMywgMC40MTkyNzMsIDAuNjYxMjA3LCAwLjg3NDQzNiwgMS4xNTkzNSwgMS43Mjg0NCwgMi4wODQyNCIsIFwKLSAgICAgICAgICAiMC4zOTIwODIsIDAuNDM0NzE2LCAwLjY3NjYwNCwgMC44OTAwNjksIDEuMTc0NjksIDEuNzQzODgsIDIuMSIsIFwKLSAgICAgICAgICAiMC40MDc0OTgsIDAuNDUwMTI4LCAwLjY5MjAxNywgMC45MDU0ODEsIDEuMTkwMTEsIDEuNzU5MjksIDIuMTE1NDEiLCBcCi0gICAgICAgICAgIjAuNDIyNDczLCAwLjQ2NTExNiwgMC43MDcwMjYsIDAuOTIwNTQ1LCAxLjIwNTA4LCAxLjc3NDI2LCAyLjEzMDA1IiwgXAotICAgICAgICAgICIwLjQ0Njc0OSwgMC40ODkzNzgsIDAuNzMxMjcxLCAwLjk0NDczNSwgMS4yMjkzNiwgMS43OTg1NCwgMi4xNTQ2NyIsIFwKLSAgICAgICAgICAiMC40NjcwNiwgMC41MDk2ODksIDAuNzUxNTgyLCAwLjk2NTA0NywgMS4yNDk2NywgMS44MTg4NSwgMi4xNzQ5NyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNTc4NDYsIDAuMjQ0MDk2LCAwLjczNjM1NSwgMS4xNzE2NywgMS43NTE4MSwgMi45MTA2OSwgMy42MzUyNSIsIFwKLSAgICAgICAgICAiMC4xNTc4NjgsIDAuMjQ0MTczLCAwLjczNjM1NSwgMS4xNzE2OCwgMS43NTE1NCwgMi45MTA2OCwgMy42MzU3OCIsIFwKLSAgICAgICAgICAiMC4xNTc4NDIsIDAuMjQ0MTU4LCAwLjczNjM0OSwgMS4xNzE2NiwgMS43NTE1NywgMi45MTIwMiwgMy42MzU1OSIsIFwKLSAgICAgICAgICAiMC4xNTc4NDMsIDAuMjQ0MDkyLCAwLjczNjMxOCwgMS4xNzE2NywgMS43NTE1NiwgMi45MTA2OSwgMy42MzUwNSIsIFwKLSAgICAgICAgICAiMC4xNTc4NSwgMC4yNDQxODYsIDAuNzM2MzM5LCAxLjE3MTY4LCAxLjc1MTg1LCAyLjkxMDY5LCAzLjYzNzQyIiwgXAotICAgICAgICAgICIwLjE1Nzg0NiwgMC4yNDQwODIsIDAuNzM2MzE0LCAxLjE3MTY5LCAxLjc1MTU3LCAyLjkxMDgsIDMuNjM1ODEiLCBcCi0gICAgICAgICAgIjAuMTU3ODQzLCAwLjI0NDA5MSwgMC43MzYzMTgsIDEuMTcxNjcsIDEuNzUxNTYsIDIuOTEwNywgMy42MzU2MyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zNTAxNDMsIDAuMzk5NTA5LCAwLjY3OTI0NiwgMC45MjYxODYsIDEuMjU1MjcsIDEuOTEzNDUsIDIuMzI0OTEiLCBcCi0gICAgICAgICAgIjAuMzYxNjU0LCAwLjQxMTAyNCwgMC42OTA3NzYsIDAuOTM3NzA0LCAxLjI2Njk1LCAxLjkyNDkzLCAyLjMzNjQyIiwgXAotICAgICAgICAgICIwLjM3NzE5OSwgMC40MjY1NiwgMC43MDYzMjEsIDAuOTUzMjQ5LCAxLjI4MjQzLCAxLjk0MDQ3LCAyLjM1MTk2IiwgXAotICAgICAgICAgICIwLjM5MjU2OCwgMC40NDE5MzQsIDAuNzIxNzA4LCAwLjk2ODU5OCwgMS4yOTc2OCwgMS45NTU5MywgMi4zNjcyNyIsIFwKLSAgICAgICAgICAiMC40MDczNDUsIDAuNDU2NzA0LCAwLjczNjQ4LCAwLjk4MzM4LCAxLjMxMjQ1LCAxLjk3MDY0LCAyLjM4MjA0IiwgXAotICAgICAgICAgICIwLjQzMTU5LCAwLjQ4MDk2NiwgMC43NjA3MTIsIDEuMDA3NjQsIDEuMzM2ODUsIDEuOTk0ODYsIDIuNDA2MzYiLCBcCi0gICAgICAgICAgIjAuNDUxNDg3LCAwLjUwMDg0OSwgMC43ODA2MjMsIDEuMDI3NTEsIDEuMzU2NTksIDIuMDE1MDQsIDIuNDI2MTkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTc2OTk3LCAwLjI3NDQ0MywgMC44Mjk4MjgsIDEuMzIwMjcsIDEuOTc0MDMsIDMuMjgxNDUsIDQuMDk4MzkiLCBcCi0gICAgICAgICAgIjAuMTc2ODg0LCAwLjI3NDQzNSwgMC44MjkzMTYsIDEuMzE5MjUsIDEuOTcyMjksIDMuMjgxMTEsIDQuMDk3NyIsIFwKLSAgICAgICAgICAiMC4xNzY5OTUsIDAuMjc0Mzg4LCAwLjgyOTI1MSwgMS4zMTkyMywgMS45NzI2OSwgMy4yODExOCwgNC4wOTc2NiIsIFwKLSAgICAgICAgICAiMC4xNzcwMDIsIDAuMjc0NDM1LCAwLjgyOTMxMywgMS4zMTk1MSwgMS45NzI2LCAzLjI4MTQ3LCA0LjA5NzUzIiwgXAotICAgICAgICAgICIwLjE3NzAwOSwgMC4yNzQ0MzYsIDAuODI5MzEyLCAxLjMxOTUxLCAxLjk3MjYsIDMuMjgwODEsIDQuMDk3NzMiLCBcCi0gICAgICAgICAgIjAuMTc3MDE3LCAwLjI3NDM5LCAwLjgyOTMwOSwgMS4zMjAxMiwgMS45NzM0OSwgMy4yODExOCwgNC4wOTc4NiIsIFwKLSAgICAgICAgICAiMC4xNzcsIDAuMjc0NCwgMC44MjkyNTIsIDEuMzIwMTIsIDEuOTczNDIsIDMuMjgwOCwgNC4wOTc1OSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQ2MzgsIDAuMDA0NjQzLCAwLjAwNDY1MSwgMC4wMDQ2NTMsIDAuMDA0NjU0LCAwLjAwNDY1NSwgMC4wMDQ2NTUiLCBcCi0gICAgICAgICAgIjAuMDA0NjMxLCAwLjAwNDYzNywgMC4wMDQ2NDUsIDAuMDA0NjQ2LCAwLjAwNDY0NywgMC4wMDQ2NDgsIDAuMDA0NjQ4IiwgXAotICAgICAgICAgICIwLjAwNDYyNSwgMC4wMDQ2MzEsIDAuMDA0NjM5LCAwLjAwNDY0MSwgMC4wMDQ2NDIsIDAuMDA0NjQzLCAwLjAwNDY0MyIsIFwKLSAgICAgICAgICAiMC4wMDQ2MjIsIDAuMDA0NjI4LCAwLjAwNDYzNiwgMC4wMDQ2MzgsIDAuMDA0NjM4LCAwLjAwNDYzOSwgMC4wMDQ2MzkiLCBcCi0gICAgICAgICAgIjAuMDA0NjIxLCAwLjAwNDYyNywgMC4wMDQ2MzUsIDAuMDA0NjM2LCAwLjAwNDYzNywgMC4wMDQ2MzgsIDAuMDA0NjM4IiwgXAotICAgICAgICAgICIwLjAwNDYyMSwgMC4wMDQ2MjcsIDAuMDA0NjM1LCAwLjAwNDYzNywgMC4wMDQ2MzcsIDAuMDA0NjM4LCAwLjAwNDYzOSIsIFwKLSAgICAgICAgICAiMC4wMDQ2MjQsIDAuMDA0NjMsIDAuMDA0NjM4LCAwLjAwNDYzOSwgMC4wMDQ2NCwgMC4wMDQ2NDEsIDAuMDA0NjQxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0NjEsIDAuMDA0NjE3LCAwLjAwNDYyNSwgMC4wMDQ2MjcsIDAuMDA0NjI3LCAwLjAwNDYyOCwgMC4wMDQ2MjgiLCBcCi0gICAgICAgICAgIjAuMDA0NjAzLCAwLjAwNDYwOSwgMC4wMDQ2MTcsIDAuMDA0NjE5LCAwLjAwNDYyLCAwLjAwNDYyLCAwLjAwNDYyMSIsIFwKLSAgICAgICAgICAiMC4wMDQ1OTcsIDAuMDA0NjAzLCAwLjAwNDYxMSwgMC4wMDQ2MTMsIDAuMDA0NjE0LCAwLjAwNDYxNCwgMC4wMDQ2MTUiLCBcCi0gICAgICAgICAgIjAuMDA0NTkyLCAwLjAwNDU5OCwgMC4wMDQ2MDcsIDAuMDA0NjA4LCAwLjAwNDYwOSwgMC4wMDQ2MSwgMC4wMDQ2MSIsIFwKLSAgICAgICAgICAiMC4wMDQ1ODcsIDAuMDA0NTkzLCAwLjAwNDYwMSwgMC4wMDQ2MDMsIDAuMDA0NjA0LCAwLjAwNDYwNSwgMC4wMDQ2MDQiLCBcCi0gICAgICAgICAgIjAuMDA0NTgzLCAwLjAwNDU5LCAwLjAwNDU5OCwgMC4wMDQ2LCAwLjAwNDYsIDAuMDA0NjAxLCAwLjAwNDYwMSIsIFwKLSAgICAgICAgICAiMC4wMDQ1ODEsIDAuMDA0NTg3LCAwLjAwNDU5NiwgMC4wMDQ1OTgsIDAuMDA0NTk4LCAwLjAwNDU5OSwgMC4wMDQ1OTkiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFJOKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA1NjkyNjY7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNTY4OTk7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNTY5MjY2OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNjAwNSwgMC4wMDU5ODYsIDAuMDA1OTc0LCAwLjAwNTk2OCwgMC4wMDU5NjUsIDAuMDA1OTYzLCAwLjAwNTk2MyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNiwgMC4wMDU5ODYsIDAuMDA1OTc2LCAwLjAwNTk3MSwgMC4wMDU5NjcsIDAuMDA1OTY0LCAwLjAwNTk2MiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhU0UiOwotICAgICAgc2RmX2NvbmQgOiAiU0UgPT0gMSdiMCI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMzkzNzUsIC0wLjM4MjUsIC0wLjM3NjI1LCAtMC4zNjM3NSwgLTAuMzU3NSwgLTAuMzQxMjUsIC0wLjMzMjUiLCBcCi0gICAgICAgICAgIi0wLjQwNSwgLTAuMzkzNzUsIC0wLjM4NzUsIC0wLjM3NSwgLTAuMzY4NzUsIC0wLjM1MjUsIC0wLjM0Mzc1IiwgXAotICAgICAgICAgICItMC40MjM3NSwgLTAuNDEyNSwgLTAuNCwgLTAuMzkzNzUsIC0wLjM4MTI1LCAtMC4zNzEyNSwgLTAuMzU2MjUiLCBcCi0gICAgICAgICAgIi0wLjQzNjI1LCAtMC40MjUsIC0wLjQxODc1LCAtMC40MDYyNSwgLTAuNCwgLTAuMzgzNzUsIC0wLjM3NSIsIFwKLSAgICAgICAgICAiLTAuNDQ4NzUsIC0wLjQ0Mzc1LCAtMC40MzEyNSwgLTAuNDE4NzUsIC0wLjQxMjUsIC0wLjM5NjI1LCAtMC4zODc1IiwgXAotICAgICAgICAgICItMC40NzEyNSwgLTAuNDYsIC0wLjQ1Mzc1LCAtMC40NDEyNSwgLTAuNDM1LCAtMC40MTg3NSwgLTAuNDEiLCBcCi0gICAgICAgICAgIi0wLjQ4NjI1LCAtMC40ODEyNSwgLTAuNDY4NzUsIC0wLjQ1NjI1LCAtMC40NSwgLTAuNDMzNzUsIC0wLjQyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjE1LCAtMC4xMzg3NSwgLTAuMTIsIC0wLjEwNzUsIC0wLjA5NSwgLTAuMDc4NzUsIC0wLjA1NzUiLCBcCi0gICAgICAgICAgIi0wLjE2MTI1LCAtMC4xNSwgLTAuMTMxMjUsIC0wLjExODc1LCAtMC4xMDYyNSwgLTAuMDksIC0wLjA3NSIsIFwKLSAgICAgICAgICAiLTAuMTczNzUsIC0wLjE2MjUsIC0wLjE1LCAtMC4xMzc1LCAtMC4xMjUsIC0wLjEwMjUsIC0wLjA4NzUiLCBcCi0gICAgICAgICAgIi0wLjE4NjI1LCAtMC4xNzUsIC0wLjE2MjUsIC0wLjE1LCAtMC4xMzc1LCAtMC4xMTUsIC0wLjEiLCBcCi0gICAgICAgICAgIi0wLjE5ODc1LCAtMC4xODc1LCAtMC4xNzUsIC0wLjE2MjUsIC0wLjE1LCAtMC4xMjc1LCAtMC4xMTI1IiwgXAotICAgICAgICAgICItMC4yMjEyNSwgLTAuMjEsIC0wLjE5MTI1LCAtMC4xNzg3NSwgLTAuMTY2MjUsIC0wLjE1LCAtMC4xMzUiLCBcCi0gICAgICAgICAgIi0wLjIzNjI1LCAtMC4yMjUsIC0wLjIwNjI1LCAtMC4xOTM3NSwgLTAuMTgxMjUsIC0wLjE2NSwgLTAuMTQzNzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJTRSA9PSAxJ2IwIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC40NzUsIDAuNDYzNzUsIDAuNDQ1LCAwLjQzMjUsIDAuNDIsIDAuNDAzNzUsIDAuMzk1IiwgXAotICAgICAgICAgICIwLjQ4NjI1LCAwLjQ3NSwgMC40NjI1LCAwLjQ0Mzc1LCAwLjQzMTI1LCAwLjQxNSwgMC40MDYyNSIsIFwKLSAgICAgICAgICAiMC40OTg3NSwgMC40ODc1LCAwLjQ3NSwgMC40NjI1LCAwLjQ1LCAwLjQzMzc1LCAwLjQxODc1IiwgXAotICAgICAgICAgICIwLjUxNzUsIDAuNTA2MjUsIDAuNDg3NSwgMC40NzUsIDAuNDYyNSwgMC40NDYyNSwgMC40Mzc1IiwgXAotICAgICAgICAgICIwLjUzLCAwLjUxODc1LCAwLjUwNjI1LCAwLjQ4NzUsIDAuNDgxMjUsIDAuNDY1LCAwLjQ1IiwgXAotICAgICAgICAgICIwLjU1MjUsIDAuNTQxMjUsIDAuNTIyNSwgMC41MSwgMC40OTc1LCAwLjQ4MTI1LCAwLjQ3MjUiLCBcCi0gICAgICAgICAgIjAuNTY3NSwgMC41NTYyNSwgMC41NDM3NSwgMC41MjUsIDAuNTE4NzUsIDAuNTAyNSwgMC40ODc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjY4NzUsIDAuMjUxMjUsIDAuMjM4NzUsIDAuMjIsIDAuMjA3NSwgMC4xNzg3NSwgMC4xNjM3NSIsIFwKLSAgICAgICAgICAiMC4yOCwgMC4yNjg3NSwgMC4yNSwgMC4yMzEyNSwgMC4yMTg3NSwgMC4xOSwgMC4xNzUiLCBcCi0gICAgICAgICAgIjAuMjkyNSwgMC4yODEyNSwgMC4yNjI1LCAwLjI1LCAwLjIzMTI1LCAwLjIwODc1LCAwLjE4NzUiLCBcCi0gICAgICAgICAgIjAuMzA1LCAwLjI5Mzc1LCAwLjI4MTI1LCAwLjI2MjUsIDAuMjQzNzUsIDAuMjIxMjUsIDAuMiIsIFwKLSAgICAgICAgICAiMC4zMTc1LCAwLjMwNjI1LCAwLjI5Mzc1LCAwLjI3NSwgMC4yNTYyNSwgMC4yMzM3NSwgMC4yMTI1IiwgXAotICAgICAgICAgICIwLjM0LCAwLjMyODc1LCAwLjMxLCAwLjI5MTI1LCAwLjI3ODc1LCAwLjI1LCAwLjIzNSIsIFwKLSAgICAgICAgICAiMC4zNTUsIDAuMzM3NSwgMC4zMjUsIDAuMzA2MjUsIDAuMjkzNzUsIDAuMjY1LCAwLjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTRSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxMTMxMzM7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxMTMwNzE7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxMTMxMzM7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzNjQ2LCAwLjAwMzYzOCwgMC4wMDM2MywgMC4wMDM2MjUsIDAuMDAzNjI1LCAwLjAwMzYyMSwgMC4wMDM2MjEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDQ5NzIsIDAuMDA0OTU4LCAwLjAwNDk0NiwgMC4wMDQ5MzksIDAuMDA0OTMzLCAwLjAwNDkyNywgMC4wMDQ5MjQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUQmIUUmIVJOJlNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9FX0VRXzBfQU5fUk5fRVFfMF9BTl9TSV9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjEzMTI1LCAtMC4xMiwgLTAuMTEzNzUsIC0wLjEwMTI1LCAtMC4wOTUsIC0wLjA3ODc1LCAtMC4wNyIsIFwKLSAgICAgICAgICAiLTAuMTQyNSwgLTAuMTMxMjUsIC0wLjExODc1LCAtMC4xMTI1LCAtMC4xLCAtMC4wOSwgLTAuMDgxMjUiLCBcCi0gICAgICAgICAgIi0wLjE1NSwgLTAuMTQzNzUsIC0wLjEzNzUsIC0wLjEyNSwgLTAuMTE4NzUsIC0wLjEwMjUsIC0wLjA5Mzc1IiwgXAotICAgICAgICAgICItMC4xNjc1LCAtMC4xNTYyNSwgLTAuMTUsIC0wLjEzNzUsIC0wLjEzMTI1LCAtMC4xMTUsIC0wLjEwNjI1IiwgXAotICAgICAgICAgICItMC4xOCwgLTAuMTc1LCAtMC4xNjI1LCAtMC4xNSwgLTAuMTQzNzUsIC0wLjEyNzUsIC0wLjExODc1IiwgXAotICAgICAgICAgICItMC4yMDI1LCAtMC4xOTc1LCAtMC4xODUsIC0wLjE3MjUsIC0wLjE2NjI1LCAtMC4xNSwgLTAuMTQxMjUiLCBcCi0gICAgICAgICAgIi0wLjIyMzc1LCAtMC4yMTI1LCAtMC4yMDYyNSwgLTAuMTkzNzUsIC0wLjE4NzUsIC0wLjE3MTI1LCAtMC4xNjI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDE4NzUsIC0wLjAwNzUsIDAuMDA1LCAwLjAxNzUsIDAuMDMsIDAuMDUyNSwgMC4wNjc1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLjAwNjI1LCAwLjAxODc1LCAwLjA0MTI1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLjAwNjI1LCAwLjAyODc1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA0Mzc1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLjAxNjI1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wNjc1LCAtMC4wNTYyNSwgLTAuMDQzNzUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgMC4wMDM3NSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDksIC0wLjA3ODc1LCAtMC4wNjYyNSwgLTAuMDUzNzUsIC0wLjA0MTI1LCAtMC4wMTg3NSwgLTAuMDAzNzUiLCBcCi0gICAgICAgICAgIi0wLjA5ODc1LCAtMC4wODc1LCAtMC4wNzUsIC0wLjA2ODc1LCAtMC4wNTYyNSwgLTAuMDMzNzUsIC0wLjAxODc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEJiFFJlJOJiFTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fRV9FUV8wX0FOX1JOX0VRXzFfQU5fU0lfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4xNzUsIC0wLjE2Mzc1LCAtMC4xNTEyNSwgLTAuMTQ1LCAtMC4xMzI1LCAtMC4xMjI1LCAtMC4xMDc1IiwgXAotICAgICAgICAgICItMC4xODYyNSwgLTAuMTc1LCAtMC4xNjI1LCAtMC4xNTYyNSwgLTAuMTQzNzUsIC0wLjEzMzc1LCAtMC4xMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMTk4NzUsIC0wLjE4NzUsIC0wLjE4MTI1LCAtMC4xNjg3NSwgLTAuMTYyNSwgLTAuMTQ2MjUsIC0wLjEzNzUiLCBcCi0gICAgICAgICAgIi0wLjIxMTI1LCAtMC4yMDYyNSwgLTAuMTkzNzUsIC0wLjE4MTI1LCAtMC4xNzUsIC0wLjE1ODc1LCAtMC4xNSIsIFwKLSAgICAgICAgICAiLTAuMjMsIC0wLjIxODc1LCAtMC4yMDYyNSwgLTAuMiwgLTAuMTg3NSwgLTAuMTc3NSwgLTAuMTYyNSIsIFwKLSAgICAgICAgICAiLTAuMjQ2MjUsIC0wLjI0MTI1LCAtMC4yMjg3NSwgLTAuMjE2MjUsIC0wLjIxLCAtMC4xOTM3NSwgLTAuMTg1IiwgXAotICAgICAgICAgICItMC4yNjEyNSwgLTAuMjU2MjUsIC0wLjI0Mzc1LCAtMC4yMzEyNSwgLTAuMjI1LCAtMC4yMDg3NSwgLTAuMiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJEJkUmUk4mIVNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMV9BTl9FX0VRXzFfQU5fUk5fRVFfMV9BTl9TSV9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjA2ODc1LCAtMC4wNTc1LCAtMC4wMzg3NSwgLTAuMDI2MjUsIC0wLjAxMzc1LCAwLjAwMjUsIDAuMDE3NSIsIFwKLSAgICAgICAgICAiLTAuMDgsIC0wLjA2ODc1LCAtMC4wNTYyNSwgLTAuMDQzNzUsIC0wLjAzMTI1LCAtMC4wMDg3NSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDkyNSwgLTAuMDgxMjUsIC0wLjA2ODc1LCAtMC4wNTYyNSwgLTAuMDQzNzUsIC0wLjAyMTI1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMTExMjUsIC0wLjEsIC0wLjA4MTI1LCAtMC4wNzUsIC0wLjA1NjI1LCAtMC4wNCwgLTAuMDI1IiwgXAotICAgICAgICAgICItMC4xMjM3NSwgLTAuMTEyNSwgLTAuMSwgLTAuMDg3NSwgLTAuMDc1LCAtMC4wNTI1LCAtMC4wMzc1IiwgXAotICAgICAgICAgICItMC4xNDYyNSwgLTAuMTM1LCAtMC4xMjI1LCAtMC4xMSwgLTAuMDk3NSwgLTAuMDc1LCAtMC4wNiIsIFwKLSAgICAgICAgICAiLTAuMTY3NSwgLTAuMTU2MjUsIC0wLjE0Mzc1LCAtMC4xMzEyNSwgLTAuMTE4NzUsIC0wLjA5NjI1LCAtMC4wODEyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUQmIUUmIVJOJlNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9FX0VRXzBfQU5fUk5fRVFfMF9BTl9TSV9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIwNjI1LCAwLjE5NSwgMC4xODI1LCAwLjE2Mzc1LCAwLjE1NzUsIDAuMTQxMjUsIDAuMTI2MjUiLCBcCi0gICAgICAgICAgIjAuMjE3NSwgMC4yMDYyNSwgMC4xOTM3NSwgMC4xNzUsIDAuMTY4NzUsIDAuMTQ2MjUsIDAuMTM3NSIsIFwKLSAgICAgICAgICAiMC4yMywgMC4yMTg3NSwgMC4yMDYyNSwgMC4xOTM3NSwgMC4xODEyNSwgMC4xNjUsIDAuMTUiLCBcCi0gICAgICAgICAgIjAuMjQyNSwgMC4yMzEyNSwgMC4yMTg3NSwgMC4yMDYyNSwgMC4xOTM3NSwgMC4xNzc1LCAwLjE2MjUiLCBcCi0gICAgICAgICAgIjAuMjYxMjUsIDAuMjQzNzUsIDAuMjMxMjUsIDAuMjE4NzUsIDAuMjA2MjUsIDAuMTksIDAuMTc1IiwgXAotICAgICAgICAgICIwLjI4Mzc1LCAwLjI2NjI1LCAwLjI1Mzc1LCAwLjI0MTI1LCAwLjIyODc1LCAwLjIxMjUsIDAuMTk3NSIsIFwKLSAgICAgICAgICAiMC4yOTg3NSwgMC4yODc1LCAwLjI3NSwgMC4yNTYyNSwgMC4yNSwgMC4yMzM3NSwgMC4yMTg3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEzNzUsIDAuMTI2MjUsIDAuMTA3NSwgMC4wOTUsIDAuMDc2MjUsIDAuMDUzNzUsIDAuMDMyNSIsIFwKLSAgICAgICAgICAiMC4xNDg3NSwgMC4xMzc1LCAwLjExODc1LCAwLjEwNjI1LCAwLjA4NzUsIDAuMDY1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjE2MTI1LCAwLjE1LCAwLjEzMTI1LCAwLjExODc1LCAwLjEsIDAuMDc3NSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiMC4xNzM3NSwgMC4xNjI1LCAwLjE1LCAwLjEzMTI1LCAwLjExMjUsIDAuMDksIDAuMDY4NzUiLCBcCi0gICAgICAgICAgIjAuMTg2MjUsIDAuMTc1LCAwLjE2MjUsIDAuMTQzNzUsIDAuMTMxMjUsIDAuMTAyNSwgMC4wODEyNSIsIFwKLSAgICAgICAgICAiMC4yMDg3NSwgMC4xOTc1LCAwLjE3ODc1LCAwLjE2NjI1LCAwLjE0NzUsIDAuMTI1LCAwLjEwMzc1IiwgXAotICAgICAgICAgICIwLjIzLCAwLjIxODc1LCAwLjIsIDAuMTgxMjUsIDAuMTY4NzUsIDAuMTQ2MjUsIDAuMTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRCYhRSZSTiYhU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX0VfRVFfMF9BTl9STl9FUV8xX0FOX1NJX0VRXzAgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTg3NSwgMC4xNzYyNSwgMC4xNTc1LCAwLjE0NSwgMC4xMjYyNSwgMC4xMDM3NSwgMC4wODI1IiwgXAotICAgICAgICAgICIwLjE5ODc1LCAwLjE4NzUsIDAuMTY4NzUsIDAuMTU2MjUsIDAuMTM3NSwgMC4xMTUsIDAuMDkzNzUiLCBcCi0gICAgICAgICAgIjAuMjExMjUsIDAuMiwgMC4xODc1LCAwLjE2ODc1LCAwLjE1NjI1LCAwLjEyNzUsIDAuMTA2MjUiLCBcCi0gICAgICAgICAgIjAuMjMsIDAuMjE4NzUsIDAuMiwgMC4xODEyNSwgMC4xNjg3NSwgMC4xNDYyNSwgMC4xMjUiLCBcCi0gICAgICAgICAgIjAuMjQyNSwgMC4yMzEyNSwgMC4yMTg3NSwgMC4yLCAwLjE4MTI1LCAwLjE1ODc1LCAwLjEzNzUiLCBcCi0gICAgICAgICAgIjAuMjY1LCAwLjI1Mzc1LCAwLjI0MTI1LCAwLjIyMjUsIDAuMjAzNzUsIDAuMTgxMjUsIDAuMTYiLCBcCi0gICAgICAgICAgIjAuMjg2MjUsIDAuMjc1LCAwLjI1NjI1LCAwLjI0Mzc1LCAwLjIyNSwgMC4yMDI1LCAwLjE4MTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJEJkUmUk4mIVNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMV9BTl9FX0VRXzFfQU5fUk5fRVFfMV9BTl9TSV9FUV8wID09IDEnYjEiOwotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI1LCAwLjIzODc1LCAwLjIyLCAwLjIwNzUsIDAuMTk1LCAwLjE3ODc1LCAwLjE3IiwgXAotICAgICAgICAgICIwLjI2MTI1LCAwLjI1LCAwLjIzMTI1LCAwLjIxODc1LCAwLjIwNjI1LCAwLjE5LCAwLjE4MTI1IiwgXAotICAgICAgICAgICIwLjI3Mzc1LCAwLjI2MjUsIDAuMjUsIDAuMjMxMjUsIDAuMjI1LCAwLjIwODc1LCAwLjE5Mzc1IiwgXAotICAgICAgICAgICIwLjI5MjUsIDAuMjc1LCAwLjI2MjUsIDAuMjUsIDAuMjM3NSwgMC4yMjEyNSwgMC4yMDYyNSIsIFwKLSAgICAgICAgICAiMC4zMDUsIDAuMjkzNzUsIDAuMjc1LCAwLjI2MjUsIDAuMjUsIDAuMjMzNzUsIDAuMjI1IiwgXAotICAgICAgICAgICIwLjMyMTI1LCAwLjMxLCAwLjI5NzUsIDAuMjg1LCAwLjI3MjUsIDAuMjU2MjUsIDAuMjQxMjUiLCBcCi0gICAgICAgICAgIjAuMzQyNSwgMC4zMjUsIDAuMzEyNSwgMC4zLCAwLjI4NzUsIDAuMjcxMjUsIDAuMjU2MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFNJKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA1MzM0ODc7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNTMxNjA5OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDUzMzQ4NzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDIzNzgsIDAuMDAyMzY4LCAwLjAwMjM2NCwgMC4wMDIzNiwgMC4wMDIzNTgsIDAuMDAyMzU1LCAwLjAwMjM1MiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzgxMSwgMC4wMDM4MDYsIDAuMDAzODA0LCAwLjAwMzgwMiwgMC4wMDM4MDEsIDAuMDAzNzk5LCAwLjAwMzc5OCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJTRSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4xNSwgLTAuMTM4NzUsIC0wLjEyNjI1LCAtMC4xMiwgLTAuMTA3NSwgLTAuMDk3NSwgLTAuMDgyNSIsIFwKLSAgICAgICAgICAiLTAuMTYxMjUsIC0wLjE1LCAtMC4xMzc1LCAtMC4xMzEyNSwgLTAuMTE4NzUsIC0wLjEwODc1LCAtMC4wOTM3NSIsIFwKLSAgICAgICAgICAiLTAuMTczNzUsIC0wLjE2MjUsIC0wLjE1NjI1LCAtMC4xNDM3NSwgLTAuMTM3NSwgLTAuMTIxMjUsIC0wLjExMjUiLCBcCi0gICAgICAgICAgIi0wLjE4NjI1LCAtMC4xNzUsIC0wLjE2ODc1LCAtMC4xNTYyNSwgLTAuMTUsIC0wLjEzMzc1LCAtMC4xMjUiLCBcCi0gICAgICAgICAgIi0wLjE5ODc1LCAtMC4xOTM3NSwgLTAuMTgxMjUsIC0wLjE2ODc1LCAtMC4xNjI1LCAtMC4xNDYyNSwgLTAuMTM3NSIsIFwKLSAgICAgICAgICAiLTAuMjIxMjUsIC0wLjIxNjI1LCAtMC4yMDM3NSwgLTAuMTkxMjUsIC0wLjE4NSwgLTAuMTY4NzUsIC0wLjE2IiwgXAotICAgICAgICAgICItMC4yNDI1LCAtMC4yMzEyNSwgLTAuMjI1LCAtMC4yMTI1LCAtMC4yMDYyNSwgLTAuMTksIC0wLjE4MTI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDM3NSwgLTAuMDI2MjUsIC0wLjAxMzc1LCAtMC4wMDEyNSwgMC4wMTEyNSwgMC4wMzM3NSwgMC4wNDg3NSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjAzNzUsIC0wLjAyNSwgLTAuMDEyNSwgMCwgMC4wMjI1LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjA2MTI1LCAtMC4wNSwgLTAuMDM3NSwgLTAuMDI1LCAtMC4wMTI1LCAwLjAxLCAwLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDczNzUsIC0wLjA2MjUsIC0wLjA1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAwMjUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDg2MjUsIC0wLjA3NSwgLTAuMDYyNSwgLTAuMDUsIC0wLjAzNzUsIC0wLjAxNSwgMCIsIFwKLSAgICAgICAgICAiLTAuMTAyNSwgLTAuMDkxMjUsIC0wLjA3ODc1LCAtMC4wNjYyNSwgLTAuMDUzNzUsIC0wLjAzNzUsIC0wLjAxNjI1IiwgXAotICAgICAgICAgICItMC4xMTc1LCAtMC4xMDYyNSwgLTAuMDkzNzUsIC0wLjA4MTI1LCAtMC4wNjg3NSwgLTAuMDUyNSwgLTAuMDM3NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiU0UiOwotICAgICAgc2RmX2NvbmQgOiAiU0UgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjI1LCAwLjIxMzc1LCAwLjE5NSwgMC4xODI1LCAwLjE3LCAwLjE1Mzc1LCAwLjE0NSIsIFwKLSAgICAgICAgICAiMC4yMzYyNSwgMC4yMjUsIDAuMjA2MjUsIDAuMTkzNzUsIDAuMTgxMjUsIDAuMTY1LCAwLjE1NjI1IiwgXAotICAgICAgICAgICIwLjI0ODc1LCAwLjIzNzUsIDAuMjI1LCAwLjIwNjI1LCAwLjIsIDAuMTgzNzUsIDAuMTY4NzUiLCBcCi0gICAgICAgICAgIjAuMjYxMjUsIDAuMjUsIDAuMjM3NSwgMC4yMjUsIDAuMjEyNSwgMC4xOTYyNSwgMC4xODEyNSIsIFwKLSAgICAgICAgICAiMC4yOCwgMC4yNjI1LCAwLjI1LCAwLjIzNzUsIDAuMjI1LCAwLjIwODc1LCAwLjE5Mzc1IiwgXAotICAgICAgICAgICIwLjMwMjUsIDAuMjg1LCAwLjI3MjUsIDAuMjYsIDAuMjQ3NSwgMC4yMzEyNSwgMC4yMTYyNSIsIFwKLSAgICAgICAgICAiMC4zMTc1LCAwLjMwNjI1LCAwLjI5Mzc1LCAwLjI3NSwgMC4yNjg3NSwgMC4yNTI1LCAwLjIzNzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNTYyNSwgMC4xNDUsIDAuMTI2MjUsIDAuMTEzNzUsIDAuMDk1LCAwLjA3MjUsIDAuMDUxMjUiLCBcCi0gICAgICAgICAgIjAuMTY3NSwgMC4xNTYyNSwgMC4xMzc1LCAwLjEyNSwgMC4xMDYyNSwgMC4wODM3NSwgMC4wNjI1IiwgXAotICAgICAgICAgICIwLjE4LCAwLjE2ODc1LCAwLjE1NjI1LCAwLjEzNzUsIDAuMTE4NzUsIDAuMDk2MjUsIDAuMDc1IiwgXAotICAgICAgICAgICIwLjE5MjUsIDAuMTgxMjUsIDAuMTY4NzUsIDAuMTUsIDAuMTMxMjUsIDAuMTA4NzUsIDAuMDg3NSIsIFwKLSAgICAgICAgICAiMC4yMDUsIDAuMTkzNzUsIDAuMTgxMjUsIDAuMTYyNSwgMC4xNDM3NSwgMC4xMjEyNSwgMC4xIiwgXAotICAgICAgICAgICIwLjIyNzUsIDAuMjE2MjUsIDAuMTk3NSwgMC4xNzg3NSwgMC4xNjYyNSwgMC4xNDM3NSwgMC4xMjI1IiwgXAotICAgICAgICAgICIwLjI0MjUsIDAuMjMxMjUsIDAuMjEyNSwgMC4yLCAwLjE4MTI1LCAwLjE1ODc1LCAwLjEzNzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBTRURGRlgxICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKFNFREZGWDEpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4zNzI2OTk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgZmYgKE4zMCxORVQ1MzYpIHsKLSAgICBuZXh0X3N0YXRlIDogIigoU0UgU0kpICsgKCFTRSAoKEUgRCkgKyAoIUUgKCEoIU4zMCkpKSkpKSI7Ci0gICAgY2xvY2tlZF9vbiA6ICJDSyI7Ci0gIH0KLSAgcGluKENLKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA1NTU5NjE7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNTU1Njg4OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDU1NTk2MTsKLSAgICBjbG9jayA6IHRydWU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyNDY2LCAwLjAwMjQ1MywgMC4wMDI0NDIsIDAuMDAyNDM2LCAwLjAwMjQzLCAwLjAwMjQyNCwgMC4wMDI0MjMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDQ3OTQsIDAuMDA0Nzg0LCAwLjAwNDc3NiwgMC4wMDQ3NzEsIDAuMDA0NzY5LCAwLjAwNDc3MywgMC4wMDQ3NzEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFEJiFFJlNFJiFTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fRV9FUV8wX0FOX1NFX0VRXzFfQU5fU0lfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjM2MTA1NiwgMC4zNzI3ODUsIDAuMzg4MjkxLCAwLjQwMzcxLCAwLjQxODg2NiwgMC40NDMxOTgsIDAuNDYzOTQzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4yMDQ1MDUsIDAuMjE1ODI5LCAwLjIzMDkzNCwgMC4yNDU3NzQsIDAuMjYwNDIzLCAwLjI4MzA1NCwgMC4zMDE2MjEiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEQpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDU0NTkwMzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA1NDM3Nzg7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNTQ1OTAzOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjk4NywgMC4wMDI5NzgsIDAuMDAyOTczLCAwLjAwMjk3LCAwLjAwMjk2OCwgMC4wMDI5NjYsIDAuMDAyOTY0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA1NTgyLCAwLjAwNTU3NywgMC4wMDU1NzUsIDAuMDA1NTc0LCAwLjAwNTU3MywgMC4wMDU1NzEsIDAuMDA1NTcxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIkUmIVNFIjsKLSAgICAgIHNkZl9jb25kIDogIkVfRVFfMV9BTl9TRV9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjI4MTI1LCAtMC4yNywgLTAuMjU3NSwgLTAuMjUxMjUsIC0wLjI0NSwgLTAuMjI4NzUsIC0wLjIyIiwgXAotICAgICAgICAgICItMC4yOTI1LCAtMC4yODEyNSwgLTAuMjc1LCAtMC4yNjI1LCAtMC4yNTYyNSwgLTAuMjQsIC0wLjIzMTI1IiwgXAotICAgICAgICAgICItMC4zMDUsIC0wLjI5Mzc1LCAtMC4yODc1LCAtMC4yNzUsIC0wLjI2ODc1LCAtMC4yNTg3NSwgLTAuMjQzNzUiLCBcCi0gICAgICAgICAgIi0wLjMxNzUsIC0wLjMxMjUsIC0wLjMsIC0wLjI5Mzc1LCAtMC4yODEyNSwgLTAuMjcxMjUsIC0wLjI2MjUiLCBcCi0gICAgICAgICAgIi0wLjMzLCAtMC4zMjUsIC0wLjMxMjUsIC0wLjMwNjI1LCAtMC4zLCAtMC4yODM3NSwgLTAuMjc1IiwgXAotICAgICAgICAgICItMC4zNTI1LCAtMC4zNDc1LCAtMC4zMzUsIC0wLjMyODc1LCAtMC4zMTYyNSwgLTAuMzA2MjUsIC0wLjI5NzUiLCBcCi0gICAgICAgICAgIi0wLjM3Mzc1LCAtMC4zNjI1LCAtMC4zNTYyNSwgLTAuMzUsIC0wLjMzNzUsIC0wLjMyNzUsIC0wLjMxMjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wODEyNSwgLTAuMDcsIC0wLjA1MTI1LCAtMC4wNDUsIC0wLjAzODc1LCAtMC4wMjg3NSwgLTAuMDIiLCBcCi0gICAgICAgICAgIi0wLjA5MjUsIC0wLjA4MTI1LCAtMC4wNjg3NSwgLTAuMDYyNSwgLTAuMDUsIC0wLjA0LCAtMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMTA1LCAtMC4wOTM3NSwgLTAuMDgxMjUsIC0wLjA3NSwgLTAuMDY4NzUsIC0wLjA1MjUsIC0wLjA0Mzc1IiwgXAotICAgICAgICAgICItMC4xMTc1LCAtMC4xMDYyNSwgLTAuMDkzNzUsIC0wLjA4NzUsIC0wLjA4MTI1LCAtMC4wNjUsIC0wLjA1NjI1IiwgXAotICAgICAgICAgICItMC4xMywgLTAuMTE4NzUsIC0wLjEwNjI1LCAtMC4xLCAtMC4wODc1LCAtMC4wNzc1LCAtMC4wNjg3NSIsIFwKLSAgICAgICAgICAiLTAuMTQ2MjUsIC0wLjEzNSwgLTAuMTIyNSwgLTAuMTE2MjUsIC0wLjExLCAtMC4xLCAtMC4wOTEyNSIsIFwKLSAgICAgICAgICAiLTAuMTYxMjUsIC0wLjE1NjI1LCAtMC4xNDM3NSwgLTAuMTMxMjUsIC0wLjEyNSwgLTAuMTE1LCAtMC4xMDYyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiRSYhU0UiOwotICAgICAgc2RmX2NvbmQgOiAiRV9FUV8xX0FOX1NFX0VRXzAgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuNCwgMC4zODI1LCAwLjM3LCAwLjM1MTI1LCAwLjMzODc1LCAwLjMyMjUsIDAuMzA3NSIsIFwKLSAgICAgICAgICAiMC40MTEyNSwgMC4zOTM3NSwgMC4zODEyNSwgMC4zNjI1LCAwLjM1LCAwLjMzMzc1LCAwLjMxODc1IiwgXAotICAgICAgICAgICIwLjQyMzc1LCAwLjQxMjUsIDAuMzkzNzUsIDAuMzgxMjUsIDAuMzYyNSwgMC4zNDYyNSwgMC4zMzEyNSIsIFwKLSAgICAgICAgICAiMC40MzYyNSwgMC40MjUsIDAuNDA2MjUsIDAuMzkzNzUsIDAuMzgxMjUsIDAuMzU4NzUsIDAuMzUiLCBcCi0gICAgICAgICAgIjAuNDQ4NzUsIDAuNDM3NSwgMC40MjUsIDAuNDA2MjUsIDAuMzkzNzUsIDAuMzc3NSwgMC4zNjI1IiwgXAotICAgICAgICAgICIwLjQ3MTI1LCAwLjQ2LCAwLjQ0NzUsIDAuNDI4NzUsIDAuNDE2MjUsIDAuNCwgMC4zODUiLCBcCi0gICAgICAgICAgIjAuNDkyNSwgMC40ODEyNSwgMC40NjI1LCAwLjQ1LCAwLjQzNzUsIDAuNDE1LCAwLjQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zLCAwLjI4ODc1LCAwLjI3LCAwLjI1NzUsIDAuMjM4NzUsIDAuMjE2MjUsIDAuMTk1IiwgXAotICAgICAgICAgICIwLjMxMTI1LCAwLjMsIDAuMjgxMjUsIDAuMjY4NzUsIDAuMjUsIDAuMjI3NSwgMC4yMDYyNSIsIFwKLSAgICAgICAgICAiMC4zMjM3NSwgMC4zMTI1LCAwLjI5Mzc1LCAwLjI4MTI1LCAwLjI2MjUsIDAuMjQsIDAuMjE4NzUiLCBcCi0gICAgICAgICAgIjAuMzM2MjUsIDAuMzI1LCAwLjMwNjI1LCAwLjI5Mzc1LCAwLjI3NSwgMC4yNTI1LCAwLjIzMTI1IiwgXAotICAgICAgICAgICIwLjM0ODc1LCAwLjMzNzUsIDAuMzI1LCAwLjMwNjI1LCAwLjI4NzUsIDAuMjY1LCAwLjI0Mzc1IiwgXAotICAgICAgICAgICIwLjM3MTI1LCAwLjM2LCAwLjM0MTI1LCAwLjMyMjUsIDAuMzEsIDAuMjg3NSwgMC4yNjYyNSIsIFwKLSAgICAgICAgICAiMC4zODYyNSwgMC4zNzUsIDAuMzU2MjUsIDAuMzQzNzUsIDAuMzI1LCAwLjMwMjUsIDAuMjgxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEUpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTQ0NTI4OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTQ0NDg7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNDQ1Mjg7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA1MzA3LCAwLjAwNTI5MywgMC4wMDUyODUsIDAuMDA1MjgyLCAwLjAwNTI4MiwgMC4wMDUyOCwgMC4wMDUyODIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDYzMjYsIDAuMDA2MzEsIDAuMDA2MywgMC4wMDYyOTQsIDAuMDA2Mjg5LCAwLjAwNjI4NiwgMC4wMDYyODQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIVNFIjsKLSAgICAgIHNkZl9jb25kIDogIlNFID09IDEnYjAiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjI2ODc1LCAtMC4yNTc1LCAtMC4yMzg3NSwgLTAuMjI2MjUsIC0wLjIwNzUsIC0wLjE4NSwgLTAuMTYzNzUiLCBcCi0gICAgICAgICAgIi0wLjI4LCAtMC4yNjg3NSwgLTAuMjUsIC0wLjIzNzUsIC0wLjIxODc1LCAtMC4xOTYyNSwgLTAuMTc1IiwgXAotICAgICAgICAgICItMC4yOTI1LCAtMC4yODEyNSwgLTAuMjY4NzUsIC0wLjI1LCAtMC4yMzc1LCAtMC4yMTUsIC0wLjE5Mzc1IiwgXAotICAgICAgICAgICItMC4zMTEyNSwgLTAuMjkzNzUsIC0wLjI4MTI1LCAtMC4yNjg3NSwgLTAuMjUsIC0wLjIyNzUsIC0wLjIwNjI1IiwgXAotICAgICAgICAgICItMC4zMjM3NSwgLTAuMzEyNSwgLTAuMjkzNzUsIC0wLjI4MTI1LCAtMC4yNjI1LCAtMC4yNCwgLTAuMjE4NzUiLCBcCi0gICAgICAgICAgIi0wLjM0NjI1LCAtMC4zMjg3NSwgLTAuMzE2MjUsIC0wLjI5NzUsIC0wLjI4NSwgLTAuMjYyNSwgLTAuMjQxMjUiLCBcCi0gICAgICAgICAgIi0wLjM2MTI1LCAtMC4zNSwgLTAuMzMxMjUsIC0wLjMxODc1LCAtMC4zLCAtMC4yNzc1LCAtMC4yNTYyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjA2MjUsIC0wLjA1MTI1LCAtMC4wMzg3NSwgLTAuMDMyNSwgLTAuMDI2MjUsIC0wLjAxNjI1LCAtMC4wMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDczNzUsIC0wLjA2MjUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDMxMjUsIC0wLjAyMTI1LCAtMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wODYyNSwgLTAuMDc1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjA0LCAtMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjA5ODc1LCAtMC4wODc1LCAtMC4wNzUsIC0wLjA2ODc1LCAtMC4wNjI1LCAtMC4wNTI1LCAtMC4wMzc1IiwgXAotICAgICAgICAgICItMC4xMTEyNSwgLTAuMSwgLTAuMDg3NSwgLTAuMDgxMjUsIC0wLjA3NSwgLTAuMDY1LCAtMC4wNSIsIFwKLSAgICAgICAgICAiLTAuMTMzNzUsIC0wLjEyMjUsIC0wLjExLCAtMC4wOTc1LCAtMC4wOTEyNSwgLTAuMDgxMjUsIC0wLjA3MjUiLCBcCi0gICAgICAgICAgIi0wLjE0MjUsIC0wLjEzNzUsIC0wLjEyNSwgLTAuMTE4NzUsIC0wLjEwNjI1LCAtMC4wOTYyNSwgLTAuMDg3NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIVNFIjsKLSAgICAgIHNkZl9jb25kIDogIlNFID09IDEnYjAiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjM4MTI1LCAwLjM3LCAwLjM1MTI1LCAwLjMzODc1LCAwLjMyNjI1LCAwLjMxLCAwLjI5NSIsIFwKLSAgICAgICAgICAiMC4zOTI1LCAwLjM4MTI1LCAwLjM2ODc1LCAwLjM1LCAwLjMzNzUsIDAuMzIxMjUsIDAuMzA2MjUiLCBcCi0gICAgICAgICAgIjAuNDA1LCAwLjM5Mzc1LCAwLjM4MTI1LCAwLjM2MjUsIDAuMzUsIDAuMzMzNzUsIDAuMzE4NzUiLCBcCi0gICAgICAgICAgIjAuNDIzNzUsIDAuNDA2MjUsIDAuMzkzNzUsIDAuMzc1LCAwLjM2MjUsIDAuMzQ2MjUsIDAuMzMxMjUiLCBcCi0gICAgICAgICAgIjAuNDM2MjUsIDAuNDE4NzUsIDAuNDA2MjUsIDAuMzg3NSwgMC4zNzUsIDAuMzU4NzUsIDAuMzQzNzUiLCBcCi0gICAgICAgICAgIjAuNDU4NzUsIDAuNDQxMjUsIDAuNDI4NzUsIDAuNDEsIDAuMzk3NSwgMC4zODEyNSwgMC4zNjYyNSIsIFwKLSAgICAgICAgICAiMC40NzM3NSwgMC40NjI1LCAwLjQ1LCAwLjQzMTI1LCAwLjQxODc1LCAwLjQwMjUsIDAuMzg3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMxODc1LCAwLjMwNzUsIDAuMzAxMjUsIDAuMjg4NzUsIDAuMjgyNSwgMC4yNjYyNSwgMC4yNTc1IiwgXAotICAgICAgICAgICIwLjMzLCAwLjMxODc1LCAwLjMxMjUsIDAuMywgMC4yOTM3NSwgMC4yNzc1LCAwLjI2ODc1IiwgXAotICAgICAgICAgICIwLjM0ODc1LCAwLjMzNzUsIDAuMzI1LCAwLjMxODc1LCAwLjMwNjI1LCAwLjI5NjI1LCAwLjI4MTI1IiwgXAotICAgICAgICAgICIwLjM2MTI1LCAwLjM1LCAwLjMzNzUsIDAuMzMxMjUsIDAuMzE4NzUsIDAuMzA4NzUsIDAuMjkzNzUiLCBcCi0gICAgICAgICAgIjAuMzczNzUsIDAuMzYyNSwgMC4zNSwgMC4zNDM3NSwgMC4zMzEyNSwgMC4zMjEyNSwgMC4zMDYyNSIsIFwKLSAgICAgICAgICAiMC4zOSwgMC4zNzg3NSwgMC4zNjYyNSwgMC4zNiwgMC4zNTM3NSwgMC4zMzc1LCAwLjMyODc1IiwgXAotICAgICAgICAgICIwLjQwNSwgMC4zOTM3NSwgMC4zODEyNSwgMC4zNzUsIDAuMzYyNSwgMC4zNTI1LCAwLjMzNzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFEpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4xMzMyODM7Ci0gICAgZnVuY3Rpb24gOiAiTjMwIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBub25fdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJpc2luZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yODg0MzIsIDAuMzMxOTgzLCAwLjU3OTU4MiwgMC43OTYxNDksIDEuMDg0MTIsIDEuNjYwNTMsIDIuMDIxMTgiLCBcCi0gICAgICAgICAgIjAuMjk5OTUxLCAwLjM0MzQ3OCwgMC41OTEyOTcsIDAuODA3NzUyLCAxLjA5NTYzLCAxLjY3MjQsIDIuMDMyNzUiLCBcCi0gICAgICAgICAgIjAuMzE1MjksIDAuMzU4ODE3LCAwLjYwNTkwMywgMC44MjMwMDUsIDEuMTA5ODMsIDEuNjg2NzgsIDIuMDQ4NTMiLCBcCi0gICAgICAgICAgIjAuMzMwNzE1LCAwLjM3NDI1MiwgMC42MjAwNywgMC44Mzc3MDUsIDEuMTI2MSwgMS43MDIxNiwgMi4wNjY1MSIsIFwKLSAgICAgICAgICAiMC4zNDU4OTMsIDAuMzg5NDEzLCAwLjYzNjMzOSwgMC44NTM0MjMsIDEuMTQxNjEsIDEuNzE3ODIsIDIuMDc5MDkiLCBcCi0gICAgICAgICAgIjAuMzcwMDczLCAwLjQxMzU5OSwgMC42NjAzMjQsIDAuODc3NzU3LCAxLjE2NTcyLCAxLjc0MjQyLCAyLjEwMzk1IiwgXAotICAgICAgICAgICIwLjM5MDU4NSwgMC40MzQxMTEsIDAuNjc5OTMzLCAwLjg5NzY1NywgMS4xODUzNywgMS43NjQ1MiwgMi4xMjYyNSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNjc2NzcsIDAuMjUyMzIxLCAwLjc1NTQzLCAxLjE5OTQ4LCAxLjc4OTEyLCAyLjk3ODY4LCAzLjcxNTI1IiwgXAotICAgICAgICAgICIwLjE2NzY3NywgMC4yNTU1ODgsIDAuNzU1ODE4LCAxLjE5ODg5LCAxLjc5MTMsIDIuOTc1NjQsIDMuNzE1MyIsIFwKLSAgICAgICAgICAiMC4xNjc2NzYsIDAuMjUyMjg5LCAwLjc1NjMyNSwgMS4xOTkyNSwgMS43ODk3NSwgMi45NzgzMywgMy43MTUyMyIsIFwKLSAgICAgICAgICAiMC4xNjc2OCwgMC4yNTIzMTcsIDAuNzU3NzM2LCAxLjIwMDA4LCAxLjc5MjQ5LCAyLjk3NzQsIDMuNzE1MTQiLCBcCi0gICAgICAgICAgIjAuMTY3Njc5LCAwLjI1MjMwMywgMC43NTQzMjksIDEuMjAwMjQsIDEuNzkxMzEsIDIuOTc2ODksIDMuNzE2MTIiLCBcCi0gICAgICAgICAgIjAuMTY3NjYzLCAwLjI1MjMwMiwgMC43NTU3NjUsIDEuMjAwMzksIDEuNzkxOTIsIDIuOTc0OTUsIDMuNzE1MjYiLCBcCi0gICAgICAgICAgIjAuMTY4Mjc5LCAwLjI1MjI4NywgMC43NTc4MzksIDEuMTk4NjEsIDEuNzg3NjksIDIuOTc3MzEsIDMuNzE2NTIiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzIzNjc0LCAwLjM3MzI5MiwgMC42NTM2MjMsIDAuOTAwOTM4LCAxLjIzMDkyLCAxLjg5MzA5LCAyLjMwNzk1IiwgXAotICAgICAgICAgICIwLjMzNTQyMiwgMC4zODUwNzEsIDAuNjY1MzY3LCAwLjkxMzIwNywgMS4yNDM3MiwgMS45MDUxMSwgMi4zMTk3MiIsIFwKLSAgICAgICAgICAiMC4zNTA5MjgsIDAuNDAwNTEsIDAuNjgwODczLCAwLjkyNzc3OSwgMS4yNTkxMywgMS45MjA2MywgMi4zMzUyMiIsIFwKLSAgICAgICAgICAiMC4zNjYzNDQsIDAuNDE1OTQ2LCAwLjY5NjI4OSwgMC45NDMwNDksIDEuMjc0NzQsIDEuOTM1ODEsIDIuMzUwNjQiLCBcCi0gICAgICAgICAgIjAuMzgxNTAzLCAwLjQzMTE4LCAwLjcxMTQ0OCwgMC45NTkyMjQsIDEuMjg5NzUsIDEuOTUxMiwgMi4zNjU4IiwgXAotICAgICAgICAgICIwLjQwNTgzMSwgMC40NTU0MzQsIDAuNzM1NzgsIDAuOTgzNTksIDEuMzEyODgsIDEuOTc1NDYsIDIuMzg5MTUiLCBcCi0gICAgICAgICAgIjAuNDI2NTc5LCAwLjQ3NjIyNCwgMC43NTY1MjYsIDEuMDA0MzYsIDEuMzM0ODcsIDEuOTk2MjIsIDIuNDEwODkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTgzMTMxLCAwLjI3ODkwMSwgMC44MzI0NTgsIDEuMzIyMTEsIDEuOTc3NDgsIDMuMjg4NzQsIDQuMTA1MjUiLCBcCi0gICAgICAgICAgIjAuMTgzMTExLCAwLjI3ODkwNywgMC44MzI1NTEsIDEuMzIyNywgMS45NzYxMSwgMy4yOTAyMiwgNC4xMDY4IiwgXAotICAgICAgICAgICIwLjE4MzA0LCAwLjI3ODkwNSwgMC44MzI1MzgsIDEuMzIyNjQsIDEuOTc3MDgsIDMuMjkwMTgsIDQuMTA3NzMiLCBcCi0gICAgICAgICAgIjAuMTgyOTkzLCAwLjI3ODg2OSwgMC44MzI1MTksIDEuMzIzNjcsIDEuOTc1ODQsIDMuMjg4OTksIDQuMTA3MzMiLCBcCi0gICAgICAgICAgIjAuMTgzNjEsIDAuMjc4OTA2LCAwLjgzMjUzOSwgMS4zMjMyNSwgMS45NzcwOCwgMy4yOTAxOCwgNC4xMDc2OSIsIFwKLSAgICAgICAgICAiMC4xODMxNCwgMC4yNzg4OTcsIDAuODMyNTMsIDEuMzIzMTMsIDEuOTc3MzUsIDMuMjg5ODcsIDQuMTA4NTUiLCBcCi0gICAgICAgICAgIjAuMTgzNDA3LCAwLjI3ODg5OSwgMC44MzI1NDQsIDEuMzIyOSwgMS45NzYwMiwgMy4yOTAxOSwgNC4xMDY3OCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDM5MjgsIDAuMDAzOTMzLCAwLjAwMzk0MSwgMC4wMDM5NDIsIDAuMDAzOTQzLCAwLjAwMzk0NCwgMC4wMDM5NDQiLCBcCi0gICAgICAgICAgIjAuMDAzOTIsIDAuMDAzOTI2LCAwLjAwMzkzMywgMC4wMDM5MzUsIDAuMDAzOTM2LCAwLjAwMzkzNiwgMC4wMDM5MzciLCBcCi0gICAgICAgICAgIjAuMDAzOTE0LCAwLjAwMzkyLCAwLjAwMzkyOCwgMC4wMDM5MjksIDAuMDAzOTMsIDAuMDAzOTMsIDAuMDAzOTMiLCBcCi0gICAgICAgICAgIjAuMDAzOTEsIDAuMDAzOTE1LCAwLjAwMzkyMywgMC4wMDM5MjQsIDAuMDAzOTI1LCAwLjAwMzkyNiwgMC4wMDM5MjYiLCBcCi0gICAgICAgICAgIjAuMDAzOTA2LCAwLjAwMzkxMSwgMC4wMDM5MTksIDAuMDAzOTIsIDAuMDAzOTIxLCAwLjAwMzkyMiwgMC4wMDM5MjIiLCBcCi0gICAgICAgICAgIjAuMDAzOTAxLCAwLjAwMzkwNywgMC4wMDM5MTQsIDAuMDAzOTE2LCAwLjAwMzkxNywgMC4wMDM5MTgsIDAuMDAzOTE4IiwgXAotICAgICAgICAgICIwLjAwMzksIDAuMDAzOTA1LCAwLjAwMzkxMywgMC4wMDM5MTQsIDAuMDAzOTE1LCAwLjAwMzkxNiwgMC4wMDM5MTYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQ1MDMsIDAuMDA0NTA5LCAwLjAwNDUxNiwgMC4wMDQ1MTgsIDAuMDA0NTE4LCAwLjAwNDUxOSwgMC4wMDQ1MTkiLCBcCi0gICAgICAgICAgIjAuMDA0NDk2LCAwLjAwNDUwMiwgMC4wMDQ1MDksIDAuMDA0NTEsIDAuMDA0NTExLCAwLjAwNDUxMiwgMC4wMDQ1MTIiLCBcCi0gICAgICAgICAgIjAuMDA0NDkxLCAwLjAwNDQ5NywgMC4wMDQ1MDQsIDAuMDA0NTA1LCAwLjAwNDUwNiwgMC4wMDQ1MDcsIDAuMDA0NTA3IiwgXAotICAgICAgICAgICIwLjAwNDQ4NywgMC4wMDQ0OTMsIDAuMDA0NSwgMC4wMDQ1MDIsIDAuMDA0NTAzLCAwLjAwNDUwMywgMC4wMDQ1MDQiLCBcCi0gICAgICAgICAgIjAuMDA0NDg2LCAwLjAwNDQ5MiwgMC4wMDQ0OTksIDAuMDA0NSwgMC4wMDQ1MDEsIDAuMDA0NTAyLCAwLjAwNDUwMiIsIFwKLSAgICAgICAgICAiMC4wMDQ0ODYsIDAuMDA0NDkxLCAwLjAwNDQ5OSwgMC4wMDQ1LCAwLjAwNDUwMSwgMC4wMDQ1MDEsIDAuMDA0NTAyIiwgXAotICAgICAgICAgICIwLjAwNDQ4OCwgMC4wMDQ0OTQsIDAuMDA0NTAxLCAwLjAwNDUwMiwgMC4wMDQ1MDMsIDAuMDA0NTA0LCAwLjAwNDUwNCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUU4pICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4xMzAzMDI7Ci0gICAgZnVuY3Rpb24gOiAiTkVUNTM2IjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBub25fdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJpc2luZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zNjEwNTYsIDAuNDA0Mzg0LCAwLjY0OTE5OSwgMC44NjUyMjgsIDEuMTUzMjIsIDEuNzI5MjQsIDIuMDg5NCIsIFwKLSAgICAgICAgICAiMC4zNzI3ODUsIDAuNDE2MTA5LCAwLjY2MDkyNCwgMC44NzY5MzgsIDEuMTY0OTcsIDEuNzQwOTksIDIuMTAxMTMiLCBcCi0gICAgICAgICAgIjAuMzg4MjkxLCAwLjQzMTYxOSwgMC42NzY0MywgMC44OTI1MDQsIDEuMTgwNTEsIDEuNzU2NSwgMi4xMTY1MiIsIFwKLSAgICAgICAgICAiMC40MDM3MSwgMC40NDcwMzgsIDAuNjkxODU2LCAwLjkwNzg4MywgMS4xOTU4NywgMS43NzE5LCAyLjEzMjA1IiwgXAotICAgICAgICAgICIwLjQxODg2NiwgMC40NjIxOTQsIDAuNzA3MDA1LCAwLjkyMzA2MSwgMS4yMTEwNywgMS43ODcwNywgMi4xNDcxMSIsIFwKLSAgICAgICAgICAiMC40NDMxOTgsIDAuNDg2NTI4LCAwLjczMTM0MiwgMC45NDczNzYsIDEuMjM1MzcsIDEuODExNCwgMi4xNzE1MyIsIFwKLSAgICAgICAgICAiMC40NjM5NDMsIDAuNTA3MjY5LCAwLjc1MjA4MiwgMC45NjgxMDksIDEuMjU2MTQsIDEuODMyMTUsIDIuMTkyMjQiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTYyMjU5LCAwLjI0ODg5LCAwLjc0NzY1LCAxLjE4NjI2LCAxLjc3Mjk4LCAyLjk1MTAzLCAzLjY4NTkiLCBcCi0gICAgICAgICAgIjAuMTYyMjYzLCAwLjI0ODg4MiwgMC43NDc2NjcsIDEuMTg3MTUsIDEuNzc0NjYsIDIuOTUxMDcsIDMuNjg1OTMiLCBcCi0gICAgICAgICAgIjAuMTYyMjYzLCAwLjI0ODg4MywgMC43NDc2NjIsIDEuMTg2NjEsIDEuNzc0MzksIDIuOTUxMDgsIDMuNjg2NiIsIFwKLSAgICAgICAgICAiMC4xNjIyNjIsIDAuMjQ4ODc4LCAwLjc0NzY1NCwgMS4xODU4NSwgMS43NzQ5OSwgMi45NTEwOCwgMy42ODU5MyIsIFwKLSAgICAgICAgICAiMC4xNjIyNjMsIDAuMjQ4ODgyLCAwLjc0NzY2MiwgMS4xODY5MywgMS43NzQ0MywgMi45NTEwOCwgMy42ODY1NiIsIFwKLSAgICAgICAgICAiMC4xNjIyNTYsIDAuMjQ4ODg5LCAwLjc0NzY1OCwgMS4xODc3NCwgMS43NzMyMSwgMi45NTExMiwgMy42ODc0NiIsIFwKLSAgICAgICAgICAiMC4xNjIyNjIsIDAuMjQ4ODc5LCAwLjc0NzY2NCwgMS4xODY5OCwgMS43NzQ0OSwgMi45NTA5NywgMy42ODU5NCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zNDIxMzEsIDAuMzkxNjc4LCAwLjY3MTUzNCwgMC45MTg0MzIsIDEuMjQ3NzMsIDEuOTA2MDIsIDIuMzE3NTUiLCBcCi0gICAgICAgICAgIjAuMzUzNjUsIDAuNDAzMjA5LCAwLjY4MzA1MSwgMC45Mjk5NjQsIDEuMjU5MTksIDEuOTE3NTksIDIuMzI5MTMiLCBcCi0gICAgICAgICAgIjAuMzY4OTk1LCAwLjQxODU0NywgMC42OTgzOTMsIDAuOTQ1MzAxLCAxLjI3NDU0LCAxLjkzMjg4LCAyLjM0NDQ4IiwgXAotICAgICAgICAgICIwLjM4NDQxOSwgMC40MzM5NjksIDAuNzEzODE4LCAwLjk2MDc1MiwgMS4yODk5MywgMS45NDgzLCAyLjM1OTkiLCBcCi0gICAgICAgICAgIjAuMzk5NjAzLCAwLjQ0OTE1MywgMC43MjkwMDEsIDAuOTc1OTY4LCAxLjMwNTExLCAxLjk2MzQ4LCAyLjM3NTA5IiwgXAotICAgICAgICAgICIwLjQyMzc4OSwgMC40NzMzMzksIDAuNzUzMTksIDEuMDAwMDksIDEuMzI5MjgsIDEuOTg3NzgsIDIuMzk5MzgiLCBcCi0gICAgICAgICAgIjAuNDQ0Mjk1LCAwLjQ5Mzg0NSwgMC43NzM2ODcsIDEuMDIwNiwgMS4zNDk4MiwgMi4wMDgxOSwgMi40MTk3NCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNzk0NSwgMC4yNzYyOTIsIDAuODMxMDYzLCAxLjMyMDk4LCAxLjk3NTQxLCAzLjI4MjcxLCA0LjA5OTgiLCBcCi0gICAgICAgICAgIjAuMTc5NDMzLCAwLjI3NjI5LCAwLjgzMTAwMywgMS4zMjA5NywgMS45NzM5NCwgMy4yODI3OSwgNC4wOTk5OSIsIFwKLSAgICAgICAgICAiMC4xNzk0MTcsIDAuMjc2MjkyLCAwLjgzMDg1OSwgMS4zMjA5NywgMS45NzUxMywgMy4yODI1NywgNC4wOTk5OCIsIFwKLSAgICAgICAgICAiMC4xNzk0MTQsIDAuMjc2Mjk2LCAwLjgzMDk1OCwgMS4zMjA2MywgMS45NzQ0NCwgMy4yODI1LCA0LjEwMDQzIiwgXAotICAgICAgICAgICIwLjE3OTQxLCAwLjI3NjI5NCwgMC44MzA5NDQsIDEuMzIwODMsIDEuOTc0MjUsIDMuMjgyMzYsIDQuMDk5NzgiLCBcCi0gICAgICAgICAgIjAuMTc5NDMsIDAuMjc2Mjg5LCAwLjgzMTAwMywgMS4zMjA4NSwgMS45NzQyNiwgMy4yODI2MywgNC4wOTk4IiwgXAotICAgICAgICAgICIwLjE3OTQxMSwgMC4yNzYyODcsIDAuODMwOTQ3LCAxLjMyMDg1LCAxLjk3NDMyLCAzLjI4MzAyLCA0LjA5OTg1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDUwMywgMC4wMDQ1MDksIDAuMDA0NTE2LCAwLjAwNDUxOCwgMC4wMDQ1MTgsIDAuMDA0NTE5LCAwLjAwNDUxOSIsIFwKLSAgICAgICAgICAiMC4wMDQ0OTYsIDAuMDA0NTAyLCAwLjAwNDUwOSwgMC4wMDQ1MSwgMC4wMDQ1MTEsIDAuMDA0NTEyLCAwLjAwNDUxMiIsIFwKLSAgICAgICAgICAiMC4wMDQ0OTEsIDAuMDA0NDk3LCAwLjAwNDUwNCwgMC4wMDQ1MDUsIDAuMDA0NTA2LCAwLjAwNDUwNywgMC4wMDQ1MDciLCBcCi0gICAgICAgICAgIjAuMDA0NDg3LCAwLjAwNDQ5MywgMC4wMDQ1LCAwLjAwNDUwMiwgMC4wMDQ1MDMsIDAuMDA0NTAzLCAwLjAwNDUwNCIsIFwKLSAgICAgICAgICAiMC4wMDQ0ODYsIDAuMDA0NDkyLCAwLjAwNDQ5OSwgMC4wMDQ1LCAwLjAwNDUwMSwgMC4wMDQ1MDIsIDAuMDA0NTAyIiwgXAotICAgICAgICAgICIwLjAwNDQ4NiwgMC4wMDQ0OTEsIDAuMDA0NDk5LCAwLjAwNDUsIDAuMDA0NTAxLCAwLjAwNDUwMSwgMC4wMDQ1MDIiLCBcCi0gICAgICAgICAgIjAuMDA0NDg4LCAwLjAwNDQ5NCwgMC4wMDQ1MDEsIDAuMDA0NTAyLCAwLjAwNDUwMywgMC4wMDQ1MDQsIDAuMDA0NTA0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzOTI4LCAwLjAwMzkzMywgMC4wMDM5NDEsIDAuMDAzOTQyLCAwLjAwMzk0MywgMC4wMDM5NDQsIDAuMDAzOTQ0IiwgXAotICAgICAgICAgICIwLjAwMzkyLCAwLjAwMzkyNiwgMC4wMDM5MzMsIDAuMDAzOTM1LCAwLjAwMzkzNiwgMC4wMDM5MzYsIDAuMDAzOTM3IiwgXAotICAgICAgICAgICIwLjAwMzkxNCwgMC4wMDM5MiwgMC4wMDM5MjgsIDAuMDAzOTI5LCAwLjAwMzkzLCAwLjAwMzkzLCAwLjAwMzkzIiwgXAotICAgICAgICAgICIwLjAwMzkxLCAwLjAwMzkxNSwgMC4wMDM5MjMsIDAuMDAzOTI0LCAwLjAwMzkyNSwgMC4wMDM5MjYsIDAuMDAzOTI2IiwgXAotICAgICAgICAgICIwLjAwMzkwNiwgMC4wMDM5MTEsIDAuMDAzOTE5LCAwLjAwMzkyLCAwLjAwMzkyMSwgMC4wMDM5MjIsIDAuMDAzOTIyIiwgXAotICAgICAgICAgICIwLjAwMzkwMSwgMC4wMDM5MDcsIDAuMDAzOTE0LCAwLjAwMzkxNiwgMC4wMDM5MTcsIDAuMDAzOTE4LCAwLjAwMzkxOCIsIFwKLSAgICAgICAgICAiMC4wMDM5LCAwLjAwMzkwNSwgMC4wMDM5MTMsIDAuMDAzOTE0LCAwLjAwMzkxNSwgMC4wMDM5MTYsIDAuMDAzOTE2Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTRSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxMDcyNDQ7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxMDcxOTU7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxMDcyNDQ7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA0MDExLCAwLjAwNCwgMC4wMDM5OTYsIDAuMDAzOTk1LCAwLjAwMzk5NiwgMC4wMDM5OTYsIDAuMDAzOTk4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA1MDMzLCAwLjAwNTAxNywgMC4wMDUwMDUsIDAuMDA0OTk5LCAwLjAwNDk5NCwgMC4wMDQ5ODcsIDAuMDA0OTg1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEJiFFJiFTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fRV9FUV8wX0FOX1NJX0VRXzAgPT0gMSdiMSI7Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMTc1LCAtMC4xNjM3NSwgLTAuMTU3NSwgLTAuMTUxMjUsIC0wLjEzODc1LCAtMC4xMjg3NSwgLTAuMTIiLCBcCi0gICAgICAgICAgIi0wLjE4NjI1LCAtMC4xNzUsIC0wLjE2ODc1LCAtMC4xNjI1LCAtMC4xNSwgLTAuMTQsIC0wLjEzMTI1IiwgXAotICAgICAgICAgICItMC4xOTg3NSwgLTAuMTkzNzUsIC0wLjE4MTI1LCAtMC4xNzUsIC0wLjE2ODc1LCAtMC4xNTI1LCAtMC4xNDM3NSIsIFwKLSAgICAgICAgICAiLTAuMjE3NSwgLTAuMjA2MjUsIC0wLjIsIC0wLjE4NzUsIC0wLjE4MTI1LCAtMC4xNjUsIC0wLjE1NjI1IiwgXAotICAgICAgICAgICItMC4yMywgLTAuMjE4NzUsIC0wLjIxMjUsIC0wLjIwNjI1LCAtMC4xOTM3NSwgLTAuMTgzNzUsIC0wLjE2ODc1IiwgXAotICAgICAgICAgICItMC4yNTI1LCAtMC4yNDEyNSwgLTAuMjI4NzUsIC0wLjIyMjUsIC0wLjIxNjI1LCAtMC4yLCAtMC4xOTEyNSIsIFwKLSAgICAgICAgICAiLTAuMjY3NSwgLTAuMjU2MjUsIC0wLjI1LCAtMC4yMzc1LCAtMC4yMzEyNSwgLTAuMjIxMjUsIC0wLjIwNjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEJiFFJlNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9FX0VRXzBfQU5fU0lfRVFfMSA9PSAxJ2IxIjsKLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMjUsIC0wLjAxMzc1LCAtMC4wMDEyNSwgMC4wMTEyNSwgMC4wMTc1LCAwLjAzMzc1LCAwLjA0ODc1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDI1LCAtMC4wMTI1LCAwLCAwLjAwNjI1LCAwLjAyMjUsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjAzNzUsIC0wLjAyNSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAuMDEsIDAuMDI1IiwgXAotICAgICAgICAgICItMC4wNjEyNSwgLTAuMDUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgLTAuMDAyNSwgMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wNzM3NSwgLTAuMDYyNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wMzEyNSwgLTAuMDE1LCAwIiwgXAotICAgICAgICAgICItMC4wOTYyNSwgLTAuMDg1LCAtMC4wNzI1LCAtMC4wNiwgLTAuMDUzNzUsIC0wLjAzMTI1LCAtMC4wMTYyNSIsIFwKLSAgICAgICAgICAiLTAuMTExMjUsIC0wLjEsIC0wLjA4NzUsIC0wLjA3NSwgLTAuMDY4NzUsIC0wLjA1MjUsIC0wLjAzNzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUQmRSZTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fRV9FUV8xX0FOX1NJX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMTQzNzUsIC0wLjEzMjUsIC0wLjEyLCAtMC4xMTM3NSwgLTAuMTAxMjUsIC0wLjA5MTI1LCAtMC4wNzYyNSIsIFwKLSAgICAgICAgICAiLTAuMTU1LCAtMC4xNDM3NSwgLTAuMTMxMjUsIC0wLjEyNSwgLTAuMTEyNSwgLTAuMDk2MjUsIC0wLjA4NzUiLCBcCi0gICAgICAgICAgIi0wLjE2NzUsIC0wLjE1NjI1LCAtMC4xNSwgLTAuMTM3NSwgLTAuMTI1LCAtMC4xMTUsIC0wLjEiLCBcCi0gICAgICAgICAgIi0wLjE4LCAtMC4xNjg3NSwgLTAuMTYyNSwgLTAuMTUsIC0wLjEzNzUsIC0wLjEyNzUsIC0wLjExMjUiLCBcCi0gICAgICAgICAgIi0wLjE5MjUsIC0wLjE4MTI1LCAtMC4xNzUsIC0wLjE2MjUsIC0wLjE1NjI1LCAtMC4xNCwgLTAuMTMxMjUiLCBcCi0gICAgICAgICAgIi0wLjIxNSwgLTAuMjAzNzUsIC0wLjE5NzUsIC0wLjE4NSwgLTAuMTc4NzUsIC0wLjE2MjUsIC0wLjE1Mzc1IiwgXAotICAgICAgICAgICItMC4yMzYyNSwgLTAuMjI1LCAtMC4yMTI1LCAtMC4yMDYyNSwgLTAuMTkzNzUsIC0wLjE4Mzc1LCAtMC4xNjg3NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJEJkUmIVNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMV9BTl9FX0VRXzFfQU5fU0lfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wNjI1LCAtMC4wNTEyNSwgLTAuMDMyNSwgLTAuMDI2MjUsIC0wLjAxMzc1LCAwLjAwODc1LCAwLjAyMzc1IiwgXAotICAgICAgICAgICItMC4wNzM3NSwgLTAuMDYyNSwgLTAuMDUsIC0wLjAzNzUsIC0wLjAyNSwgLTAuMDAyNSwgMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wODYyNSwgLTAuMDc1LCAtMC4wNjI1LCAtMC4wNSwgLTAuMDM3NSwgLTAuMDIxMjUsIDAiLCBcCi0gICAgICAgICAgIi0wLjEwNSwgLTAuMDkzNzUsIC0wLjA3NSwgLTAuMDY4NzUsIC0wLjA1NjI1LCAtMC4wMzM3NSwgLTAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjExNzUsIC0wLjEwNjI1LCAtMC4wOTM3NSwgLTAuMDgxMjUsIC0wLjA2ODc1LCAtMC4wNDYyNSwgLTAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjE0LCAtMC4xMjg3NSwgLTAuMTE2MjUsIC0wLjEwMzc1LCAtMC4wOTEyNSwgLTAuMDc1LCAtMC4wNTM3NSIsIFwKLSAgICAgICAgICAiLTAuMTYxMjUsIC0wLjE0Mzc1LCAtMC4xMzEyNSwgLTAuMTI1LCAtMC4xMDYyNSwgLTAuMDksIC0wLjA3NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUQmIUUmIVNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9FX0VRXzBfQU5fU0lfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xODc1LCAwLjE3NjI1LCAwLjE1NzUsIDAuMTQ1LCAwLjEyNjI1LCAwLjEwMzc1LCAwLjA4MjUiLCBcCi0gICAgICAgICAgIjAuMTk4NzUsIDAuMTg3NSwgMC4xNzUsIDAuMTU2MjUsIDAuMTM3NSwgMC4xMTUsIDAuMDkzNzUiLCBcCi0gICAgICAgICAgIjAuMjE3NSwgMC4yMDYyNSwgMC4xODc1LCAwLjE2ODc1LCAwLjE1NjI1LCAwLjEzMzc1LCAwLjExMjUiLCBcCi0gICAgICAgICAgIjAuMjMsIDAuMjE4NzUsIDAuMiwgMC4xODc1LCAwLjE2ODc1LCAwLjE0NjI1LCAwLjEyNSIsIFwKLSAgICAgICAgICAiMC4yNDg3NSwgMC4yMzEyNSwgMC4yMTg3NSwgMC4yLCAwLjE4NzUsIDAuMTU4NzUsIDAuMTM3NSIsIFwKLSAgICAgICAgICAiMC4yNzEyNSwgMC4yNTM3NSwgMC4yNDEyNSwgMC4yMjI1LCAwLjIxLCAwLjE4MTI1LCAwLjE2IiwgXAotICAgICAgICAgICIwLjI4NjI1LCAwLjI3NSwgMC4yNTYyNSwgMC4yNDM3NSwgMC4yMjUsIDAuMjAyNSwgMC4xODEyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUQmIUUmU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX0VfRVFfMF9BTl9TSV9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIyNSwgMC4yMTM3NSwgMC4xOTUsIDAuMTgyNSwgMC4xNywgMC4xNTM3NSwgMC4xMzg3NSIsIFwKLSAgICAgICAgICAiMC4yMzYyNSwgMC4yMjUsIDAuMjA2MjUsIDAuMTkzNzUsIDAuMTgxMjUsIDAuMTY1LCAwLjE1IiwgXAotICAgICAgICAgICIwLjI0ODc1LCAwLjIzNzUsIDAuMjE4NzUsIDAuMjA2MjUsIDAuMTkzNzUsIDAuMTc3NSwgMC4xNjI1IiwgXAotICAgICAgICAgICIwLjI2MTI1LCAwLjI1LCAwLjIzNzUsIDAuMjE4NzUsIDAuMjA2MjUsIDAuMTksIDAuMTgxMjUiLCBcCi0gICAgICAgICAgIjAuMjczNzUsIDAuMjYyNSwgMC4yNSwgMC4yMzEyNSwgMC4yMTg3NSwgMC4yMDI1LCAwLjE5Mzc1IiwgXAotICAgICAgICAgICIwLjI5NjI1LCAwLjI4NSwgMC4yNzI1LCAwLjI1Mzc1LCAwLjI0MTI1LCAwLjIyNSwgMC4yMTYyNSIsIFwKLSAgICAgICAgICAiMC4zMTc1LCAwLjMwNjI1LCAwLjI4NzUsIDAuMjc1LCAwLjI2MjUsIDAuMjQ2MjUsIDAuMjMxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEJkUmU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX0VfRVFfMV9BTl9TSV9FUV8xID09IDEnYjEiOwotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIwNjI1LCAwLjE5NSwgMC4xODI1LCAwLjE2Mzc1LCAwLjE0NSwgMC4xMjI1LCAwLjEwMTI1IiwgXAotICAgICAgICAgICIwLjIxNzUsIDAuMjA2MjUsIDAuMTg3NSwgMC4xNzUsIDAuMTU2MjUsIDAuMTMzNzUsIDAuMTEyNSIsIFwKLSAgICAgICAgICAiMC4yMywgMC4yMTg3NSwgMC4yLCAwLjE4NzUsIDAuMTY4NzUsIDAuMTQ2MjUsIDAuMTI1IiwgXAotICAgICAgICAgICIwLjI0MjUsIDAuMjMxMjUsIDAuMjE4NzUsIDAuMiwgMC4xODEyNSwgMC4xNTg3NSwgMC4xMzc1IiwgXAotICAgICAgICAgICIwLjI1NSwgMC4yNDM3NSwgMC4yMjUsIDAuMjEyNSwgMC4xOTM3NSwgMC4xNzEyNSwgMC4xNSIsIFwKLSAgICAgICAgICAiMC4yNzc1LCAwLjI2NjI1LCAwLjI0NzUsIDAuMjI4NzUsIDAuMjE2MjUsIDAuMTkzNzUsIDAuMTcyNSIsIFwKLSAgICAgICAgICAiMC4yOTI1LCAwLjI4MTI1LCAwLjI2MjUsIDAuMjUsIDAuMjMxMjUsIDAuMjA4NzUsIDAuMTg3NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiRCZFJiFTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzFfQU5fRV9FUV8xX0FOX1NJX0VRXzAgPT0gMSdiMSI7Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjkzNzUsIDAuMjc2MjUsIDAuMjYzNzUsIDAuMjQ1LCAwLjIzMjUsIDAuMjE2MjUsIDAuMjAxMjUiLCBcCi0gICAgICAgICAgIjAuMzA1LCAwLjI5Mzc1LCAwLjI3NSwgMC4yNjI1LCAwLjI0Mzc1LCAwLjIyNzUsIDAuMjEyNSIsIFwKLSAgICAgICAgICAiMC4zMTc1LCAwLjMwNjI1LCAwLjI4NzUsIDAuMjc1LCAwLjI2MjUsIDAuMjQsIDAuMjMxMjUiLCBcCi0gICAgICAgICAgIjAuMzMsIDAuMzE4NzUsIDAuMzA2MjUsIDAuMjg3NSwgMC4yNzUsIDAuMjU4NzUsIDAuMjQzNzUiLCBcCi0gICAgICAgICAgIjAuMzQ4NzUsIDAuMzMxMjUsIDAuMzE4NzUsIDAuMywgMC4yODc1LCAwLjI3MTI1LCAwLjI1NjI1IiwgXAotICAgICAgICAgICIwLjM2NSwgMC4zNTM3NSwgMC4zNDEyNSwgMC4zMjI1LCAwLjMxLCAwLjI5Mzc1LCAwLjI3ODc1IiwgXAotICAgICAgICAgICIwLjM4NjI1LCAwLjM2ODc1LCAwLjM1NjI1LCAwLjMzNzUsIDAuMzI1LCAwLjMwODc1LCAwLjI5Mzc1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTSSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjAwNDMxOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDU5ODUxNjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2MDA0MzE7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyMjg5LCAwLjAwMjI3OSwgMC4wMDIyNzUsIDAuMDAyMjcxLCAwLjAwMjI2OSwgMC4wMDIyNjYsIDAuMDAyMjY0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA0MTU4LCAwLjAwNDE1MywgMC4wMDQxNTEsIDAuMDA0MTUsIDAuMDA0MTQ5LCAwLjAwNDE0NywgMC4wMDQxNDYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiU0UiOwotICAgICAgc2RmX2NvbmQgOiAiU0UgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMTU2MjUsIC0wLjE0NSwgLTAuMTM4NzUsIC0wLjEyNjI1LCAtMC4xMiwgLTAuMTAzNzUsIC0wLjA4ODc1IiwgXAotICAgICAgICAgICItMC4xNjc1LCAtMC4xNTYyNSwgLTAuMTUsIC0wLjEzNzUsIC0wLjEzMTI1LCAtMC4xMTUsIC0wLjEwNjI1IiwgXAotICAgICAgICAgICItMC4xOCwgLTAuMTY4NzUsIC0wLjE2MjUsIC0wLjE1LCAtMC4xNDM3NSwgLTAuMTI3NSwgLTAuMTE4NzUiLCBcCi0gICAgICAgICAgIi0wLjE5MjUsIC0wLjE4NzUsIC0wLjE3NSwgLTAuMTYyNSwgLTAuMTU2MjUsIC0wLjE0LCAtMC4xMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMjExMjUsIC0wLjIsIC0wLjE4NzUsIC0wLjE4MTI1LCAtMC4xNjg3NSwgLTAuMTU4NzUsIC0wLjE0Mzc1IiwgXAotICAgICAgICAgICItMC4yMzM3NSwgLTAuMjIyNSwgLTAuMjEsIC0wLjIwMzc1LCAtMC4xOTEyNSwgLTAuMTgxMjUsIC0wLjE2NjI1IiwgXAotICAgICAgICAgICItMC4yNDg3NSwgLTAuMjQzNzUsIC0wLjIzMTI1LCAtMC4yMTg3NSwgLTAuMjEyNSwgLTAuMTk2MjUsIC0wLjE4NzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMzc1LCAtMC4wMjYyNSwgLTAuMDEzNzUsIC0wLjAwMTI1LCAwLjAxMTI1LCAwLjAzMzc1LCAwLjA0ODc1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDM3NSwgLTAuMDI1LCAtMC4wMTI1LCAwLCAwLjAyMjUsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDYxMjUsIC0wLjA1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAxMjUsIDAuMDEsIDAuMDI1IiwgXAotICAgICAgICAgICItMC4wNzM3NSwgLTAuMDYyNSwgLTAuMDUsIC0wLjAzNzUsIC0wLjAyNSwgLTAuMDAyNSwgMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wODYyNSwgLTAuMDc1LCAtMC4wNjI1LCAtMC4wNSwgLTAuMDM3NSwgLTAuMDE1LCAwIiwgXAotICAgICAgICAgICItMC4xMDI1LCAtMC4wOTEyNSwgLTAuMDc4NzUsIC0wLjA2NjI1LCAtMC4wNTM3NSwgLTAuMDM3NSwgLTAuMDE2MjUiLCBcCi0gICAgICAgICAgIi0wLjExNzUsIC0wLjEwNjI1LCAtMC4wOTM3NSwgLTAuMDgxMjUsIC0wLjA2ODc1LCAtMC4wNTI1LCAtMC4wMzc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJTRSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMzc1LCAwLjIyNjI1LCAwLjIwNzUsIDAuMTk1LCAwLjE4MjUsIDAuMTY2MjUsIDAuMTUxMjUiLCBcCi0gICAgICAgICAgIjAuMjQ4NzUsIDAuMjM3NSwgMC4yMjUsIDAuMjA2MjUsIDAuMTkzNzUsIDAuMTc3NSwgMC4xNjI1IiwgXAotICAgICAgICAgICIwLjI2MTI1LCAwLjI1LCAwLjIzNzUsIDAuMjE4NzUsIDAuMjA2MjUsIDAuMTksIDAuMTgxMjUiLCBcCi0gICAgICAgICAgIjAuMjgsIDAuMjYyNSwgMC4yNSwgMC4yMzc1LCAwLjIyNSwgMC4yMDg3NSwgMC4xOTM3NSIsIFwKLSAgICAgICAgICAiMC4yOTI1LCAwLjI4MTI1LCAwLjI2MjUsIDAuMjUsIDAuMjM3NSwgMC4yMjEyNSwgMC4yMDYyNSIsIFwKLSAgICAgICAgICAiMC4zMTUsIDAuMzAzNzUsIDAuMjg1LCAwLjI3MjUsIDAuMjYsIDAuMjQzNzUsIDAuMjI4NzUiLCBcCi0gICAgICAgICAgIjAuMzMsIDAuMzE4NzUsIDAuMzA2MjUsIDAuMjg3NSwgMC4yODEyNSwgMC4yNTg3NSwgMC4yNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE2MjUsIDAuMTUxMjUsIDAuMTM4NzUsIDAuMTIsIDAuMTAxMjUsIDAuMDc4NzUsIDAuMDU3NSIsIFwKLSAgICAgICAgICAiMC4xNzM3NSwgMC4xNjI1LCAwLjE1LCAwLjEzMTI1LCAwLjExMjUsIDAuMDksIDAuMDY4NzUiLCBcCi0gICAgICAgICAgIjAuMTg2MjUsIDAuMTc1LCAwLjE2MjUsIDAuMTQzNzUsIDAuMTMxMjUsIDAuMTAyNSwgMC4wODEyNSIsIFwKLSAgICAgICAgICAiMC4xOTg3NSwgMC4xODc1LCAwLjE3NSwgMC4xNTYyNSwgMC4xNDM3NSwgMC4xMTUsIDAuMDkzNzUiLCBcCi0gICAgICAgICAgIjAuMjExMjUsIDAuMiwgMC4xODc1LCAwLjE2ODc1LCAwLjE1NjI1LCAwLjEyNzUsIDAuMTA2MjUiLCBcCi0gICAgICAgICAgIjAuMjMzNzUsIDAuMjIyNSwgMC4yMDM3NSwgMC4xOTEyNSwgMC4xNzI1LCAwLjE1LCAwLjEyODc1IiwgXAotICAgICAgICAgICIwLjI0ODc1LCAwLjIzNzUsIDAuMjI1LCAwLjIwNjI1LCAwLjE4NzUsIDAuMTY1LCAwLjE0Mzc1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBUQlVGWDIgKgotICogLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChUQlVGWDIpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4xNDgxMzE7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTI0NTYyOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTI0Mzk5OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTI0NTYyOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDMyMSwgMC4wMDAzMjUsIDAuMDAwMzI2LCAwLjAwMDMyNywgMC4wMDAzMjcsIDAuMDAwMzI3LCAwLjAwMDMyNyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDMzNywgMC4wMDAzMzUsIDAuMDAwMzM0LCAwLjAwMDMzNCwgMC4wMDAzMzQsIDAuMDAwMzM0LCAwLjAwMDMzNCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oT0UpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTA1OTY2OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTA1ODg1OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTA1OTY2OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihzY2FsYXIpIHsKLSAgICAgICAgdmFsdWVzKCIwIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyNTAxLCAwLjAwMjQ4LCAwLjAwMjQ2NCwgMC4wMDI0NTIsIDAuMDAyNDQyLCAwLjAwMjQzMywgMC4wMDI0MjciKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxMjM1MDM7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxMjM1MDM7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxMjM0MjQ7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4yNTg3NjE7Ci0gICAgZnVuY3Rpb24gOiAiQSI7Ci0gICAgdGhyZWVfc3RhdGUgOiAiKCFPRSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDExMjM1LCAwLjA2MTIzNSwgMC4xMDEyMzUsIDAuMTUxMjM1LCAwLjIwMTIzNSwgMC4yNTEyMzUsIDAuMzAxMjM1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNTAwMjUsIDAuMzMyNjgyLCAwLjQ3NTk2OSwgMC42NTQ5OTcsIDAuODM0MDM3LCAxLjAxMjk4LCAxLjE5MjA5IiwgXAotICAgICAgICAgICIwLjE2MTY2NiwgMC4zNDQxOTYsIDAuNDg3NDUyLCAwLjY2NjUxNywgMC44NDU0OTQsIDEuMDI0NiwgMS4yMDM0OCIsIFwKLSAgICAgICAgICAiMC4xNzUzMDQsIDAuMzU3ODYyLCAwLjUwMTE0OSwgMC42ODAyMTksIDAuODU5MTk1LCAxLjAzODI0LCAxLjIxNzMiLCBcCi0gICAgICAgICAgIjAuMTg4ODA3LCAwLjM3MTQzLCAwLjUxNDcyLCAwLjY5Mzc0NSwgMC44NzI3OTMsIDEuMDUxNzUsIDEuMjMwODciLCBcCi0gICAgICAgICAgIjAuMjAyMzg3LCAwLjM4NTExNywgMC41MjgzNywgMC43MDc0MjEsIDAuODg2NDQ2LCAxLjA2NTQzLCAxLjI0NDUxIiwgXAotICAgICAgICAgICIwLjIyNDAzNCwgMC40MDY3MTksIDAuNTUwMDA3LCAwLjcyOTA5MSwgMC45MDgwNTQsIDEuMDg3MDMsIDEuMjY2MTkiLCBcCi0gICAgICAgICAgIjAuMjQyNjkzLCAwLjQyNTQwNSwgMC41Njg2OTQsIDAuNzQ3ODE5LCAwLjkyNjc0NCwgMS4xMDU3OSwgMS4yODQ3NCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxMTIzNSwgMC4wNjEyMzUsIDAuMTAxMjM1LCAwLjE1MTIzNSwgMC4yMDEyMzUsIDAuMjUxMjM1LCAwLjMwMTIzNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTAxNTE3LCAwLjQ1MzUyNSwgMC43NDI3NjgsIDEuMTA3ODksIDEuNDczNjEsIDEuODM4MDIsIDIuMjAzNjciLCBcCi0gICAgICAgICAgIjAuMTAxNjcsIDAuNDU0NTE4LCAwLjc0MzExLCAxLjEwODgyLCAxLjQ3MDc3LCAxLjgzODQ5LCAyLjE5OTM0IiwgXAotICAgICAgICAgICIwLjEwMTY4MSwgMC40NTM0OTEsIDAuNzQyNjU2LCAxLjEwNjE0LCAxLjQ3MzMzLCAxLjgzNDI4LCAyLjIwMzI4IiwgXAotICAgICAgICAgICIwLjEwMTYyOSwgMC40NTM0NjEsIDAuNzQyNjYyLCAxLjEwODM0LCAxLjQ3MzQ1LCAxLjgzNTExLCAyLjIwMzMyIiwgXAotICAgICAgICAgICIwLjEwMTY2NSwgMC40NTQ0NTIsIDAuNzQyNzI1LCAxLjEwODY5LCAxLjQ3MzQ1LCAxLjgzNTMxLCAyLjIwMzM0IiwgXAotICAgICAgICAgICIwLjEwMTc0NywgMC40NTM2NTQsIDAuNzQzMjY4LCAxLjEwNjI1LCAxLjQ3MDkyLCAxLjgzNzgyLCAyLjIwMzEyIiwgXAotICAgICAgICAgICIwLjEwMTk4MywgMC40NTM1ODgsIDAuNzQzMTc5LCAxLjEwNTgyLCAxLjQ3MDc3LCAxLjgzNDMxLCAyLjIwMjkyIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDExMjM0MiwgMC4wNjEyMzQyLCAwLjEwMTIzNCwgMC4xNTEyMzQsIDAuMjAxMjM0LCAwLjI1MTIzNCwgMC4zMDEyMzQiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEyNDY0NSwgMC4zMzIxNDYsIDAuNDk3MDg2LCAwLjcwMzI0OSwgMC45MDkzMjgsIDEuMTE1NDYsIDEuMzIxNjMiLCBcCi0gICAgICAgICAgIjAuMTM1OTMzLCAwLjM0MzUxOSwgMC41MDg0NTksIDAuNzE0NTkxLCAwLjkyMDc0MiwgMS4xMjY5LCAxLjMzMzAyIiwgXAotICAgICAgICAgICIwLjE0ODk4OCwgMC4zNTY1NDksIDAuNTIxNDk2LCAwLjcyNzY2MywgMC45MzM3NzUsIDEuMTM5ODgsIDEuMzQ2MDQiLCBcCi0gICAgICAgICAgIjAuMTYxMzM0LCAwLjM2ODk2NSwgMC41MzM5NDgsIDAuNzQwMDg0LCAwLjk0NjIzMSwgMS4xNTIzNCwgMS4zNTg0OSIsIFwKLSAgICAgICAgICAiMC4xNzMzODEsIDAuMzgxMDc1LCAwLjU0NjA0MSwgMC43NTIxNzgsIDAuOTU4MzIzLCAxLjE2NDQ2LCAxLjM3MDU5IiwgXAotICAgICAgICAgICIwLjE5MjEyNCwgMC4zOTk4NDUsIDAuNTY0ODU0LCAwLjc3MDk3OSwgMC45NzcxMjEsIDEuMTgzMjUsIDEuMzg5NDIiLCBcCi0gICAgICAgICAgIjAuMjA3NTk3LCAwLjQxNTQ0NiwgMC41ODA0NjYsIDAuNzg2NTkxLCAwLjk5MjczNSwgMS4xOTg4NSwgMS40MDUwMiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxMTIzNDIsIDAuMDYxMjM0MiwgMC4xMDEyMzQsIDAuMTUxMjM0LCAwLjIwMTIzNCwgMC4yNTEyMzQsIDAuMzAxMjM0Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDI4MDMsIDAuNTA2Nzk1LCAwLjgzNjAyLCAxLjI0Njc4LCAxLjY1ODk1LCAyLjA2NjY4LCAyLjQ3NTk3IiwgXAotICAgICAgICAgICIwLjEwMjc5OCwgMC41MDY4MzgsIDAuODM1OTgsIDEuMjQ3MiwgMS42NTQ1NSwgMi4wNjg1NSwgMi40NzkwOCIsIFwKLSAgICAgICAgICAiMC4xMDI4NDcsIDAuNTA2Nzc1LCAwLjgzNTkyLCAxLjI0NjY0LCAxLjY1NjA5LCAyLjA2NjY0LCAyLjQ3NTQyIiwgXAotICAgICAgICAgICIwLjEwMjg2MSwgMC41MDY0MTgsIDAuODM1NzcsIDEuMjQ1MzIsIDEuNjU1MTgsIDIuMDY5MjgsIDIuNDc2NjYiLCBcCi0gICAgICAgICAgIjAuMTAzMDAyLCAwLjUwNjg5NSwgMC44MzU3MiwgMS4yNDUxNywgMS42NTc5LCAyLjA2OTUyLCAyLjQ3Nzc3IiwgXAotICAgICAgICAgICIwLjEwMzQwOSwgMC41MDc1OTUsIDAuODM1NDg3LCAxLjI0NDkzLCAxLjY1NzUzLCAyLjA2OTMsIDIuNDgwNDUiLCBcCi0gICAgICAgICAgIjAuMTA0MjU5LCAwLjUwNzYwMiwgMC44MzUzOTgsIDEuMjQ1MTMsIDEuNjU3ODcsIDIuMDY2OTcsIDIuNDc2NjMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiT0UiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHRocmVlX3N0YXRlX2VuYWJsZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMTEyMzUsIDAuMDYxMjM1LCAwLjEwMTIzNSwgMC4xNTEyMzUsIDAuMjAxMjM1LCAwLjI1MTIzNSwgMC4zMDEyMzUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE0NDEyMSwgMC4zMjY4ODMsIDAuNDcwMTQ2LCAwLjY0OTIxMywgMC44MjgyMjUsIDEuMDA3MjksIDEuMTg2MjkiLCBcCi0gICAgICAgICAgIjAuMTU0NDI1LCAwLjMzNzA5NCwgMC40ODAzMzUsIDAuNjU5NDI4LCAwLjgzODQxOCwgMS4wMTc0NywgMS4xOTY1MyIsIFwKLSAgICAgICAgICAiMC4xNjc5NjYsIDAuMzUwNTA1LCAwLjQ5MzgwMiwgMC42NzI4NTcsIDAuODUxOTIsIDEuMDMwOTQsIDEuMjA5OTYiLCBcCi0gICAgICAgICAgIjAuMTgxMzk2LCAwLjM2NDEwNiwgMC41MDczNSwgMC42ODY0NDIsIDAuODY1NDMsIDEuMDQ0NDgsIDEuMjIzNTIiLCBcCi0gICAgICAgICAgIjAuMTk1MjkxLCAwLjM3Nzg0OCwgMC41MjExNCwgMC43MDAyMDksIDAuODc5MjMxLCAxLjA1ODMyLCAxLjIzNzI3IiwgXAotICAgICAgICAgICIwLjIxNzQ3LCAwLjQwMDExNSwgMC41NDMzNTgsIDAuNzIyNDUxLCAwLjkwMTQ0OSwgMS4wODA0NiwgMS4yNTk1MyIsIFwKLSAgICAgICAgICAiMC4yMzY3LCAwLjQxOTMzOCwgMC41NjI1OTMsIDAuNzQxNjg3LCAwLjkyMDY3MywgMS4wOTk3MSwgMS4yNzg3NiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxMTIzNSwgMC4wNjEyMzUsIDAuMTAxMjM1LCAwLjE1MTIzNSwgMC4yMDEyMzUsIDAuMjUxMjM1LCAwLjMwMTIzNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTAyNDQzLCAwLjQ1NDg5MywgMC43NDM1NywgMS4xMDk0MiwgMS40NzE2NiwgMS44MzQ5NSwgMi4yMDA3OSIsIFwKLSAgICAgICAgICAiMC4xMDI0OTgsIDAuNDU0ODQ4LCAwLjc0NDc2NywgMS4xMDk0MSwgMS40NzQwMSwgMS44MzYxOSwgMi4xOTk4NCIsIFwKLSAgICAgICAgICAiMC4xMDI1NTIsIDAuNDU0MjEyLCAwLjc0Mzc0MywgMS4xMDc0LCAxLjQ3NDMxLCAxLjgzNjUyLCAyLjIwMTE5IiwgXAotICAgICAgICAgICIwLjEwMjQyNCwgMC40NTQ4NTksIDAuNzQ0NzE2LCAxLjEwOTM2LCAxLjQ3MzkzLCAxLjgzNjE1LCAyLjE5OTEyIiwgXAotICAgICAgICAgICIwLjEwMjQwOSwgMC40NTQyMDYsIDAuNzQzNjEsIDEuMTA5MjgsIDEuNDc0MDgsIDEuODM5MjcsIDIuMjAwNDciLCBcCi0gICAgICAgICAgIjAuMTAyNDc5LCAwLjQ1NDgzMywgMC43NDM2OCwgMS4xMDkzOSwgMS40NzQwNiwgMS44MzYwNSwgMi4xOTk4MyIsIFwKLSAgICAgICAgICAiMC4xMDI4NzYsIDAuNDUzNzQxLCAwLjc0MzU5MywgMS4xMDk0LCAxLjQ3Mzg5LCAxLjgzNjA3LCAyLjE5OTM1Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDExMjM0MiwgMC4wNjEyMzQyLCAwLjEwMTIzNCwgMC4xNTEyMzQsIDAuMjAxMjM0LCAwLjI1MTIzNCwgMC4zMDEyMzQiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE0MTgwNywgMC4zNDkzMTUsIDAuNTE0MjQzLCAwLjcyMDUxMSwgMC45MjY2MDksIDEuMTMyNzksIDEuMzM5MDEiLCBcCi0gICAgICAgICAgIjAuMTUzNDg0LCAwLjM2MDk3MiwgMC41MjU5NjcsIDAuNzMyMTc4LCAwLjkzODM1NywgMS4xNDQ0NywgMS4zNTA2OCIsIFwKLSAgICAgICAgICAiMC4xNjgzOCwgMC4zNzU4NDUsIDAuNTQwODE2LCAwLjc0NzExOCwgMC45NTMyMTMsIDEuMTU5MzMsIDEuMzY1NTMiLCBcCi0gICAgICAgICAgIjAuMTgzMTk1LCAwLjM5MDY3NCwgMC41NTU2NjgsIDAuNzYxODQzLCAwLjk2ODEyMSwgMS4xNzQxOSwgMS4zODA0MiIsIFwKLSAgICAgICAgICAiMC4xOTY4ODEsIDAuNDA0MzM0LCAwLjU2OTMwNywgMC43NzU1MTYsIDAuOTgxNzE4LCAxLjE4NzkxLCAxLjM5NDA2IiwgXAotICAgICAgICAgICIwLjIxNjg5LCAwLjQyNDMwNiwgMC41ODkyNzUsIDAuNzk1NDM5LCAxLjAwMTYxLCAxLjIwNzksIDEuNDEzOTgiLCBcCi0gICAgICAgICAgIjAuMjMyNTQ3LCAwLjQzOTk5MiwgMC42MDQ5NTQsIDAuODExMTEyLCAxLjAxNzI4LCAxLjIyMzQ4LCAxLjQyOTU5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDExMjM0MiwgMC4wNjEyMzQyLCAwLjEwMTIzNCwgMC4xNTEyMzQsIDAuMjAxMjM0LCAwLjI1MTIzNCwgMC4zMDEyMzQiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwMzg0NCwgMC41MDcyMjEsIDAuODM2OTMsIDEuMjQ0OTksIDEuNjYxMTIsIDIuMDczNDEsIDIuNDgzODUiLCBcCi0gICAgICAgICAgIjAuMTAzODIyLCAwLjUwNzQ1NywgMC44MzQ5MDQsIDEuMjQ1NjgsIDEuNjYwMjcsIDIuMDcyODIsIDIuNDgzNzMiLCBcCi0gICAgICAgICAgIjAuMTAzODQ1LCAwLjUwNzU4NywgMC44MzY5NDQsIDEuMjQ2MjIsIDEuNjYwMjEsIDIuMDY4MDMsIDIuNDgzODEiLCBcCi0gICAgICAgICAgIjAuMTAzODUsIDAuNTA2NzMsIDAuODM2OTkzLCAxLjI0NzQ4LCAxLjY1NDQ0LCAyLjA3MTY4LCAyLjQ4MyIsIFwKLSAgICAgICAgICAiMC4xMDM4MzQsIDAuNTA3NTQ0LCAwLjgzNjk0NSwgMS4yNDQ4NSwgMS42NTk2MSwgMi4wNzExLCAyLjQ4Mjk4IiwgXAotICAgICAgICAgICIwLjEwMzc3OCwgMC41MDY0MzYsIDAuODM2OTYsIDEuMjQ1NzksIDEuNjU5OTIsIDIuMDY1MzQsIDIuNDc3OSIsIFwKLSAgICAgICAgICAiMC4xMDM5ODQsIDAuNTA2NTA0LCAwLjgzNTE0NSwgMS4yNDYxOSwgMS42NTgxOCwgMi4wNjY3LCAyLjQ4MzQ1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIk9FIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiB0aHJlZV9zdGF0ZV9kaXNhYmxlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDYwNDc0LCAwLjA3MjE2MiwgMC4wODY2NzksIDAuMTAwMjk3LCAwLjExMjUyMywgMC4xMjk4MDMsIDAuMTQzNTMiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihzY2FsYXIpIHsKLSAgICAgICAgdmFsdWVzKCIwIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wNDAyMzgsIDAuMDUxOTI4LCAwLjA2NjY1OCwgMC4wODE0OTcsIDAuMDk2MTM3LCAwLjExNzEwMiwgMC4xMzM5MzEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihzY2FsYXIpIHsKLSAgICAgICAgdmFsdWVzKCIwIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMTEyMzUsIDAuMDYxMjM1LCAwLjEwMTIzNSwgMC4xNTEyMzUsIDAuMjAxMjM1LCAwLjI1MTIzNSwgMC4zMDEyMzUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjIxOCwgMC4wMDIyMzEsIDAuMDAyMjMyLCAwLjAwMjIzMiwgMC4wMDIyMzMsIDAuMDAyMjMzLCAwLjAwMjIzMyIsIFwKLSAgICAgICAgICAiMC4wMDIxOTIsIDAuMDAyMjA2LCAwLjAwMjIwNywgMC4wMDIyMDgsIDAuMDAyMjA4LCAwLjAwMjIwOCwgMC4wMDIyMDkiLCBcCi0gICAgICAgICAgIjAuMDAyMTY5LCAwLjAwMjE4OCwgMC4wMDIxODksIDAuMDAyMTksIDAuMDAyMTkxLCAwLjAwMjE5MSwgMC4wMDIxOTEiLCBcCi0gICAgICAgICAgIjAuMDAyMTUzLCAwLjAwMjE3NiwgMC4wMDIxNzgsIDAuMDAyMTgsIDAuMDAyMTgsIDAuMDAyMTgxLCAwLjAwMjE4MSIsIFwKLSAgICAgICAgICAiMC4wMDIxNDEsIDAuMDAyMTY4LCAwLjAwMjE3MSwgMC4wMDIxNzMsIDAuMDAyMTczLCAwLjAwMjE3NCwgMC4wMDIxNzQiLCBcCi0gICAgICAgICAgIjAuMDAyMTI3LCAwLjAwMjE1OSwgMC4wMDIxNjMsIDAuMDAyMTY1LCAwLjAwMjE2NiwgMC4wMDIxNjcsIDAuMDAyMTY3IiwgXAotICAgICAgICAgICIwLjAwMjEyLCAwLjAwMjE1NCwgMC4wMDIxNTksIDAuMDAyMTYyLCAwLjAwMjE2MiwgMC4wMDIxNjMsIDAuMDAyMTY0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMTEyMzQyLCAwLjA2MTIzNDIsIDAuMTAxMjM0LCAwLjE1MTIzNCwgMC4yMDEyMzQsIDAuMjUxMjM0LCAwLjMwMTIzNCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0MTQ4LCAwLjAwNDE3OCwgMC4wMDQxODIsIDAuMDA0MTgzLCAwLjAwNDE4NCwgMC4wMDQxODQsIDAuMDA0MTg1IiwgXAotICAgICAgICAgICIwLjAwNDEzMSwgMC4wMDQxNjMsIDAuMDA0MTY2LCAwLjAwNDE2OCwgMC4wMDQxNjksIDAuMDA0MTY5LCAwLjAwNDE3IiwgXAotICAgICAgICAgICIwLjAwNDExMiwgMC4wMDQxNTEsIDAuMDA0MTU1LCAwLjAwNDE1NywgMC4wMDQxNTgsIDAuMDA0MTU5LCAwLjAwNDE1OSIsIFwKLSAgICAgICAgICAiMC4wMDQwOTYsIDAuMDA0MTQxLCAwLjAwNDE0NywgMC4wMDQxNDksIDAuMDA0MTUxLCAwLjAwNDE1MiwgMC4wMDQxNTIiLCBcCi0gICAgICAgICAgIjAuMDA0MDgzLCAwLjAwNDEzNSwgMC4wMDQxNDEsIDAuMDA0MTQ1LCAwLjAwNDE0NiwgMC4wMDQxNDcsIDAuMDA0MTQ4IiwgXAotICAgICAgICAgICIwLjAwNDA2NiwgMC4wMDQxMjMsIDAuMDA0MTMxLCAwLjAwNDEzNiwgMC4wMDQxMzgsIDAuMDA0MTM5LCAwLjAwNDE0IiwgXAotICAgICAgICAgICIwLjAwNDA1OSwgMC4wMDQxMiwgMC4wMDQxMywgMC4wMDQxMzUsIDAuMDA0MTM3LCAwLjAwNDEzOSwgMC4wMDQxNCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIk9FIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxMTIzNSwgMC4wNjEyMzUsIDAuMTAxMjM1LCAwLjE1MTIzNSwgMC4yMDEyMzUsIDAuMjUxMjM1LCAwLjMwMTIzNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyMTA3LCAwLjAwMjA4OCwgMC4wMDIwNzIsIDAuMDAyMDUyLCAwLjAwMjAyOCwgMC4wMDE5NzYsIDAuMDAxOTgyIiwgXAotICAgICAgICAgICIwLjAwMjA2OSwgMC4wMDIwNDMsIDAuMDAyMDMzLCAwLjAwMjAwNSwgMC4wMDE5ODIsIDAuMDAxOTU4LCAwLjAwMTkzMSIsIFwKLSAgICAgICAgICAiMC4wMDIwNDYsIDAuMDAyMDIzLCAwLjAwMjAwMSwgMC4wMDE5ODcsIDAuMDAxOTU4LCAwLjAwMTk0NSwgMC4wMDE4ODkiLCBcCi0gICAgICAgICAgIjAuMDAyMDMyLCAwLjAwMjAwNiwgMC4wMDE5OTcsIDAuMDAxOTY4LCAwLjAwMTk0NSwgMC4wMDE5MjEsIDAuMDAxOTA4IiwgXAotICAgICAgICAgICIwLjAwMjAyNCwgMC4wMDIwMDIsIDAuMDAxOTc1LCAwLjAwMTk2LCAwLjAwMTkzNywgMC4wMDE5MTMsIDAuMDAxODg2IiwgXAotICAgICAgICAgICIwLjAwMjAxNSwgMC4wMDE5ODksIDAuMDAxOTY3LCAwLjAwMTk1MiwgMC4wMDE5MjksIDAuMDAxOTA3LCAwLjAwMTg3NSIsIFwKLSAgICAgICAgICAiMC4wMDIwMTEsIDAuMDAxOTg4LCAwLjAwMTk3NywgMC4wMDE5NDcsIDAuMDAxOTE1LCAwLjAwMTg4LCAwLjAwMTg1OCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDExMjM0MiwgMC4wNjEyMzQyLCAwLjEwMTIzNCwgMC4xNTEyMzQsIDAuMjAxMjM0LCAwLjI1MTIzNCwgMC4zMDEyMzQiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjI2NSwgMC4wMDIyNjUsIDAuMDAyMjY1LCAwLjAwMjI2NSwgMC4wMDIyNjUsIDAuMDAyMjY1LCAwLjAwMjI2NSIsIFwKLSAgICAgICAgICAiMC4wMDIyNDMsIDAuMDAyMjQzLCAwLjAwMjI0MywgMC4wMDIyNDMsIDAuMDAyMjQzLCAwLjAwMjI0MywgMC4wMDIyNDMiLCBcCi0gICAgICAgICAgIjAuMDAyMjI5LCAwLjAwMjIyOSwgMC4wMDIyMjksIDAuMDAyMjI5LCAwLjAwMjIyOSwgMC4wMDIyMjksIDAuMDAyMjI5IiwgXAotICAgICAgICAgICIwLjAwMjIyNCwgMC4wMDIyMjQsIDAuMDAyMjI0LCAwLjAwMjIyNCwgMC4wMDIyMjQsIDAuMDAyMjI0LCAwLjAwMjIyNCIsIFwKLSAgICAgICAgICAiMC4wMDIyMiwgMC4wMDIyMiwgMC4wMDIyMiwgMC4wMDIyMiwgMC4wMDIyMiwgMC4wMDIyMiwgMC4wMDIyMiIsIFwKLSAgICAgICAgICAiMC4wMDIyMiwgMC4wMDIyMTksIDAuMDAyMjIsIDAuMDAyMjE5LCAwLjAwMjIxOSwgMC4wMDIyMTksIDAuMDAyMjE5IiwgXAotICAgICAgICAgICIwLjAwMjIyLCAwLjAwMjIyMSwgMC4wMDIyMjEsIDAuMDAyMjIxLCAwLjAwMjIyMSwgMC4wMDIyMjEsIDAuMDAyMjIxIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBUTEFUTkNBWDQgKgotICogLS0tLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChUTEFUTkNBWDQpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4yNjkzMDY7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgY2xvY2tfZ2F0aW5nX2ludGVncmF0ZWRfY2VsbCA6ICJsYXRjaF9wb3NlZGdlIjsKLSAgc3RhdGV0YWJsZSgiIENLICBFICIsICIgRUlOVCAiKSB7Ci0gICAgIHRhYmxlIDogIiAgTCAgTCA6IC0gOiBMICwgXAotICAgICAgICAgICAgICAgIEwgIEggOiAtIDogSCAsIFwKLSAgICAgICAgICAgICAgICBIICAtIDogLSA6IE4gIjsKLSAgfQotICBwaW4oRUlOVCkgewotICAgIGRpcmVjdGlvbiA6IGludGVybmFsOwotICAgIGludGVybmFsX25vZGUgOiAiRUlOVCI7Ci0gIH0KLSAgcGluKENLKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA1NDMzOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDU0MzAxOTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA1NDMzOwotICAgIGNsb2NrX2dhdGVfY2xvY2tfcGluIDogdHJ1ZTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDE5NjcsIDAuMDAxOTUyLCAwLjAwMTkzOSwgMC4wMDE5MywgMC4wMDE5MjYsIDAuMDAxOTIyLCAwLjAwMTkyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyNzIyLCAwLjAwMjcxLCAwLjAwMjcwMSwgMC4wMDI2OTQsIDAuMDAyNjg5LCAwLjAwMjY4NSwgMC4wMDI2ODEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFFIjsKLSAgICAgIHNkZl9jb25kIDogIkUgPT0gMSdiMCI7Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4yMDU5MDMsIDAuMjE3MjgsIDAuMjMyMjczLCAwLjI0NjcyNiwgMC4yNjEyMTIsIDAuMjgyNDY3LCAwLjI5OTQ2OSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNTYyODc4OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDU2MTI0NjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA1NjI4Nzg7Ci0gICAgY2xvY2tfZ2F0ZV9lbmFibGVfcGluIDogdHJ1ZTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDIxNzcsIDAuMDAyMTY1LCAwLjAwMjE1OSwgMC4wMDIxNTQsIDAuMDAyMTUsIDAuMDAyMTQ2LCAwLjAwMjE0MiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjQsIDAuMDAyMzk0LCAwLjAwMjM5LCAwLjAwMjM4NywgMC4wMDIzODUsIDAuMDAyMzgxLCAwLjAwMjM3OSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjA3NSwgLTAuMDYzNzUsIC0wLjA1MTI1LCAtMC4wNDUsIC0wLjAzMjUsIC0wLjAyMjUsIC0wLjAxMzc1IiwgXAotICAgICAgICAgICItMC4wODYyNSwgLTAuMDc1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDQzNzUsIC0wLjAzMzc1LCAtMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjA5ODc1LCAtMC4wODc1LCAtMC4wNzUsIC0wLjA2ODc1LCAtMC4wNTYyNSwgLTAuMDQ2MjUsIC0wLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjExMTI1LCAtMC4xLCAtMC4wODc1LCAtMC4wODEyNSwgLTAuMDc1LCAtMC4wNTg3NSwgLTAuMDUiLCBcCi0gICAgICAgICAgIi0wLjEzLCAtMC4xMTg3NSwgLTAuMTA2MjUsIC0wLjA5Mzc1LCAtMC4wODc1LCAtMC4wNzEyNSwgLTAuMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMTQ2MjUsIC0wLjEzNSwgLTAuMTI4NzUsIC0wLjExNjI1LCAtMC4xMSwgLTAuMDkzNzUsIC0wLjA4NSIsIFwKLSAgICAgICAgICAiLTAuMTY3NSwgLTAuMTU2MjUsIC0wLjE0Mzc1LCAtMC4xMzEyNSwgLTAuMTI1LCAtMC4xMTUsIC0wLjEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMTI1LCAtMC4wMDEyNSwgMC4wMTEyNSwgMC4wMywgMC4wNDI1LCAwLjA2NSwgMC4wODYyNSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxMjUsIDAsIDAuMDE4NzUsIDAuMDMxMjUsIDAuMDUzNzUsIDAuMDc1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDI1LCAtMC4wMTI1LCAwLjAwNjI1LCAwLjAxODc1LCAwLjA0MTI1LCAwLjA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAwNjI1LCAwLjAwNjI1LCAwLjAyODc1LCAwLjA1IiwgXAotICAgICAgICAgICItMC4wNjEyNSwgLTAuMDUsIC0wLjAzNzUsIC0wLjAxODc1LCAtMC4wMDYyNSwgMC4wMTYyNSwgMC4wMzc1IiwgXAotICAgICAgICAgICItMC4wODM3NSwgLTAuMDcyNSwgLTAuMDUzNzUsIC0wLjA0MTI1LCAtMC4wMjI1LCAwLCAwLjAyMTI1IiwgXAotICAgICAgICAgICItMC4wOTg3NSwgLTAuMDg3NSwgLTAuMDY4NzUsIC0wLjA1NjI1LCAtMC4wMzc1LCAtMC4wMTUsIDAiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDgxMjUsIDAuMDcsIDAuMDU3NSwgMC4wNTEyNSwgMC4wMzg3NSwgMC4wMjg3NSwgMC4wMiIsIFwKLSAgICAgICAgICAiMC4wOTI1LCAwLjA4MTI1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDUsIDAuMDQsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMTA1LCAwLjA5Mzc1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNjI1LCAwLjA1MjUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMTE3NSwgMC4xMDYyNSwgMC4wOTM3NSwgMC4wODc1LCAwLjA4MTI1LCAwLjA2NSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiMC4xMzYyNSwgMC4xMjUsIDAuMTEyNSwgMC4xLCAwLjA5Mzc1LCAwLjA3NzUsIDAuMDY4NzUiLCBcCi0gICAgICAgICAgIjAuMTUyNSwgMC4xNDEyNSwgMC4xMzUsIDAuMTIyNSwgMC4xMTYyNSwgMC4xLCAwLjA5MTI1IiwgXAotICAgICAgICAgICIwLjE3Mzc1LCAwLjE2MjUsIDAuMTUsIDAuMTM3NSwgMC4xMzEyNSwgMC4xMjEyNSwgMC4xMDYyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxODc1LCAwLjAwNzUsIC0wLjAwNSwgLTAuMDIzNzUsIC0wLjAzNjI1LCAtMC4wNTg3NSwgLTAuMDgiLCBcCi0gICAgICAgICAgIjAuMDMsIDAuMDE4NzUsIDAuMDA2MjUsIC0wLjAxMjUsIC0wLjAyNSwgLTAuMDQ3NSwgLTAuMDY4NzUiLCBcCi0gICAgICAgICAgIjAuMDQyNSwgMC4wMzEyNSwgMC4wMTg3NSwgMCwgLTAuMDEyNSwgLTAuMDM1LCAtMC4wNTYyNSIsIFwKLSAgICAgICAgICAiMC4wNTUsIDAuMDQzNzUsIDAuMDMxMjUsIDAuMDEyNSwgMCwgLTAuMDIyNSwgLTAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMDY3NSwgMC4wNTYyNSwgMC4wNDM3NSwgMC4wMjUsIDAuMDEyNSwgLTAuMDEsIC0wLjAzMTI1IiwgXAotICAgICAgICAgICIwLjA5LCAwLjA3ODc1LCAwLjA2LCAwLjA0NzUsIDAuMDI4NzUsIDAuMDA2MjUsIC0wLjAxNSIsIFwKLSAgICAgICAgICAiMC4xMDUsIDAuMDkzNzUsIDAuMDc1LCAwLjA2MjUsIDAuMDQzNzUsIDAuMDIxMjUsIDAuMDA2MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEVDSykgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjUxOTUxMzsKLSAgICBjbG9ja19nYXRlX291dF9waW4gOiB0cnVlOwotICAgIHN0YXRlX2Z1bmN0aW9uIDogIihDSyBFSU5UKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjIzOTY4LCAwLjM1OTk5MywgMC40ODc0MzYsIDAuNTc4MzM5LCAwLjcyMzgxLCAwLjg1MTA2MiwgMS4wMzI4OCIsIFwKLSAgICAgICAgICAiMC4yMzU4NzIsIDAuMzcxODE4LCAwLjQ5OTI2NywgMC41OTAxODUsIDAuNzM1NzI2LCAwLjg2Mjk1NCwgMS4wNDQ2MSIsIFwKLSAgICAgICAgICAiMC4yNTEwNTksIDAuMzg3MDM5LCAwLjUxNDQ4NSwgMC42MDU0MDgsIDAuNzUwODY2LCAwLjg3ODEwNSwgMS4wNTk5NCIsIFwKLSAgICAgICAgICAiMC4yNjYzNTgsIDAuNDAyMzU1LCAwLjUyOTgxNiwgMC42MjA3MzUsIDAuNzY2MjA1LCAwLjg5MzQyNSwgMS4wNzUzMSIsIFwKLSAgICAgICAgICAiMC4yODE0OTMsIDAuNDE3NDg0LCAwLjU0NDkzMiwgMC42MzU4NDgsIDAuNzgxMzkzLCAwLjkwODYxNywgMS4wOTAyNyIsIFwKLSAgICAgICAgICAiMC4zMDUxOTEsIDAuNDQxMTg4LCAwLjU2ODY0NywgMC42NTk1NjcsIDAuODA1MDM2LCAwLjkzMjI1MywgMS4xMTQxNSIsIFwKLSAgICAgICAgICAiMC4zMjUwMzcsIDAuNDYwOTExLCAwLjU4ODM3MywgMC42NzkyOTUsIDAuODI0NzUsIDAuOTUxOTcsIDEuMTMzODQiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzIwNTksIDAuMzE4ODY1LCAwLjU3NDMyMSwgMC43NjAzNCwgMS4wNTc0MywgMS4zMTUyNSwgMS42ODQ5OCIsIFwKLSAgICAgICAgICAiMC4wNzIwODQsIDAuMzE4ODQ0LCAwLjU3NDc4OSwgMC43NjAzNjYsIDEuMDU0NzUsIDEuMzE0MTUsIDEuNjg5MDEiLCBcCi0gICAgICAgICAgIjAuMDcyMDk2LCAwLjMxODg5MywgMC41NzQ3NzQsIDAuNzU5NDA3LCAxLjA1NzQ0LCAxLjMxNTExLCAxLjY4NDk3IiwgXAotICAgICAgICAgICIwLjA3MjA5LCAwLjMxODcyLCAwLjU3NDc0MywgMC43NTkzMTYsIDEuMDU3NDgsIDEuMzE3MTEsIDEuNjg0ODMiLCBcCi0gICAgICAgICAgIjAuMDcyMDQyLCAwLjMxODg0MSwgMC41NzQ4MTEsIDAuNzYwMzMxLCAxLjA1NDc0LCAxLjMxNDE0LCAxLjY4ODYzIiwgXAotICAgICAgICAgICIwLjA3MjA5NSwgMC4zMTg2OSwgMC41NzQ3NTIsIDAuNzU5MzE4LCAxLjA1NzQ4LCAxLjMxNjk5LCAxLjY4NDY5IiwgXAotICAgICAgICAgICIwLjA3MjE3LCAwLjMxODg3NCwgMC41NzQ4NTMsIDAuNzYwNDc0LCAxLjA1NzQyLCAxLjMxNzQsIDEuNjg0OTgiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xODA5NzksIDAuMzI4ODExLCAwLjQ3NDE3NiwgMC41NzgwODgsIDAuNzQ0Mzk3LCAwLjg4OTkxMiwgMS4wOTc3OCIsIFwKLSAgICAgICAgICAiMC4xOTI0MTEsIDAuMzQwMTkxLCAwLjQ4NTU1MiwgMC41ODk0NywgMC43NTU3ODIsIDAuOTAxMzA0LCAxLjEwOTEzIiwgXAotICAgICAgICAgICIwLjIwNzQzOCwgMC4zNTUxNjMsIDAuNTAwNTMsIDAuNjA0NDQxLCAwLjc3MDgwMSwgMC45MTYyMjgsIDEuMTI0MTQiLCBcCi0gICAgICAgICAgIjAuMjIxODk1LCAwLjM2OTYxOSwgMC41MTQ5ODYsIDAuNjE4ODk4LCAwLjc4NTIzMiwgMC45MzA2ODQsIDEuMTM4NTkiLCBcCi0gICAgICAgICAgIjAuMjM2MzUsIDAuMzg0MDc3LCAwLjUyOTQ0NCwgMC42MzMzNTUsIDAuNzk5NzI4LCAwLjk0NTE0MiwgMS4xNTMwNSIsIFwKLSAgICAgICAgICAiMC4yNTc1OCwgMC40MDUzNzEsIDAuNTUwNzM4LCAwLjY1NDY1MSwgMC44MjA5NTksIDAuOTY2NDgxLCAxLjE3NDM0IiwgXAotICAgICAgICAgICIwLjI3NDYyNCwgMC40MjI0MDEsIDAuNTY3NzY3LCAwLjY3MTY4NCwgMC44Mzc5OTQsIDAuOTgzNDg4LCAxLjE5MTM3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDYxOTE2LCAwLjM0NTQ5NCwgMC42MzU5MzcsIDAuODQyOTY0LCAxLjE3NTExLCAxLjQ2NTYxLCAxLjg3ODk4IiwgXAotICAgICAgICAgICIwLjA2MTkxNywgMC4zNDUzOTIsIDAuNjM1OTM5LCAwLjg0Mjc1MSwgMS4xNzUwMiwgMS40NjUxNCwgMS44NzkwOCIsIFwKLSAgICAgICAgICAiMC4wNjIwMTcsIDAuMzQ2NDM1LCAwLjYzNTk2OCwgMC44NDIwNjQsIDEuMTczNTQsIDEuNDYzNzgsIDEuODgwMDQiLCBcCi0gICAgICAgICAgIjAuMDYyMDE1LCAwLjM0NTYzNSwgMC42MzU1ODcsIDAuODQyOTQ0LCAxLjE3MzMyLCAxLjQ2MzM4LCAxLjg3OTE0IiwgXAotICAgICAgICAgICIwLjA2MjAxMywgMC4zNDUzMDcsIDAuNjM1OTE4LCAwLjg0MjA2LCAxLjE3NDM2LCAxLjQ2NDQ1LCAxLjg3NzYzIiwgXAotICAgICAgICAgICIwLjA2MTkwOCwgMC4zNDU2NTksIDAuNjM1OTA2LCAwLjg0Mjc5NiwgMS4xNzUwMSwgMS40NjUzOCwgMS44Nzk0NCIsIFwKLSAgICAgICAgICAiMC4wNjE5MTEsIDAuMzQ1MjUxLCAwLjYzNTkyMiwgMC44NDIwODUsIDEuMTcyODEsIDEuNDY1MDksIDEuODc4ODYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDU3ODQsIDAuMDA1ODk5LCAwLjAwNTkwNywgMC4wMDU5MDgsIDAuMDA1OTA5LCAwLjAwNTkwOSwgMC4wMDU5MDkiLCBcCi0gICAgICAgICAgIjAuMDA1NzY4LCAwLjAwNTg4MywgMC4wMDU4OTIsIDAuMDA1ODkzLCAwLjAwNTg5NCwgMC4wMDU4OTMsIDAuMDA1ODk0IiwgXAotICAgICAgICAgICIwLjAwNTc1NiwgMC4wMDU4NzEsIDAuMDA1ODgsIDAuMDA1ODgxLCAwLjAwNTg4MiwgMC4wMDU4ODMsIDAuMDA1ODgyIiwgXAotICAgICAgICAgICIwLjAwNTc0OCwgMC4wMDU4NjMsIDAuMDA1ODcyLCAwLjAwNTg3MywgMC4wMDU4NzQsIDAuMDA1ODc0LCAwLjAwNTg3NCIsIFwKLSAgICAgICAgICAiMC4wMDU3NDIsIDAuMDA1ODU3LCAwLjAwNTg2NiwgMC4wMDU4NjcsIDAuMDA1ODY3LCAwLjAwNTg2OSwgMC4wMDU4NyIsIFwKLSAgICAgICAgICAiMC4wMDU3MzcsIDAuMDA1ODU2LCAwLjAwNTg2MiwgMC4wMDU4NjQsIDAuMDA1ODYzLCAwLjAwNTg2NSwgMC4wMDU4NjUiLCBcCi0gICAgICAgICAgIjAuMDA1NzM2LCAwLjAwNTg1MiwgMC4wMDU4NjIsIDAuMDA1ODY0LCAwLjAwNTg2MywgMC4wMDU4NjQsIDAuMDA1ODY0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDg5NzksIDAuMDA5MTAzLCAwLjAwOTExMSwgMC4wMDkxMTMsIDAuMDA5MTE1LCAwLjAwOTExNSwgMC4wMDkxMTUiLCBcCi0gICAgICAgICAgIjAuMDA4OTY3LCAwLjAwOTA5MSwgMC4wMDkxLCAwLjAwOTEwMSwgMC4wMDkxMDMsIDAuMDA5MTAzLCAwLjAwOTEwMyIsIFwKLSAgICAgICAgICAiMC4wMDg5NTcsIDAuMDA5MDgyLCAwLjAwOTA5MSwgMC4wMDkwOTIsIDAuMDA5MDk0LCAwLjAwOTA5NCwgMC4wMDkwOTQiLCBcCi0gICAgICAgICAgIjAuMDA4OTQ4LCAwLjAwOTA3MiwgMC4wMDkwODEsIDAuMDA5MDgzLCAwLjAwOTA4NCwgMC4wMDkwODUsIDAuMDA5MDg1IiwgXAotICAgICAgICAgICIwLjAwODk0NSwgMC4wMDkwNywgMC4wMDkwNzksIDAuMDA5MDgxLCAwLjAwOTA4MiwgMC4wMDkwODMsIDAuMDA5MDgzIiwgXAotICAgICAgICAgICIwLjAwODkzNywgMC4wMDkwNjIsIDAuMDA5MDcxLCAwLjAwOTA3MywgMC4wMDkwNzQsIDAuMDA5MDc0LCAwLjAwOTA3NCIsIFwKLSAgICAgICAgICAiMC4wMDg5MzEsIDAuMDA5MDU2LCAwLjAwOTA2NSwgMC4wMDkwNjcsIDAuMDA5MDY4LCAwLjAwOTA2OCwgMC4wMDkwNjgiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBUTEFUTlgxICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKFRMQVROWDEpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4yMDQzMjM7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgbGF0Y2ggKFFJTlQsTjApIHsKLSAgICBkYXRhX2luIDogIkQiOwotICAgIGVuYWJsZSA6ICIoIUdOKSI7Ci0gIH0KLSAgcGluKEQpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYzNjI1MjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MzM4MzM7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjM2MjUyOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDE1OSwgMC4wMDAxNjEsIDAuMDAwMTYxLCAwLjAwMDE2MiwgMC4wMDAxNjIsIDAuMDAwMTYyLCAwLjAwMDE2MiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDE3LCAwLjAwMDE2NywgMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkdOIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDc1LCAtMC4wNjM3NSwgLTAuMDUxMjUsIC0wLjAzODc1LCAtMC4wMzI1LCAtMC4wMTYyNSwgLTAuMDA3NSIsIFwKLSAgICAgICAgICAiLTAuMDg2MjUsIC0wLjA3NSwgLTAuMDYyNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wMjc1LCAtMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDk4NzUsIC0wLjA4NzUsIC0wLjA3NSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA0LCAtMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMTExMjUsIC0wLjEsIC0wLjA4NzUsIC0wLjA4MTI1LCAtMC4wNjg3NSwgLTAuMDU4NzUsIC0wLjA0Mzc1IiwgXAotICAgICAgICAgICItMC4xMjM3NSwgLTAuMTEyNSwgLTAuMSwgLTAuMDkzNzUsIC0wLjA4MTI1LCAtMC4wNzEyNSwgLTAuMDU2MjUiLCBcCi0gICAgICAgICAgIi0wLjE0NjI1LCAtMC4xMzUsIC0wLjEyMjUsIC0wLjExLCAtMC4xMDM3NSwgLTAuMDkzNzUsIC0wLjA3ODc1IiwgXAotICAgICAgICAgICItMC4xNjc1LCAtMC4xNTYyNSwgLTAuMTQzNzUsIC0wLjEzMTI1LCAtMC4xMjUsIC0wLjEwODc1LCAtMC4xIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDE4NzUsIC0wLjAwNzUsIDAuMDExMjUsIDAuMDIzNzUsIDAuMDQyNSwgMC4wNjUsIDAuMDgiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMTg3NSwgMCwgMC4wMTI1LCAwLjAyNSwgMC4wNTM3NSwgMC4wNjg3NSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDMxMjUsIC0wLjAxMjUsIDAsIDAuMDEyNSwgMC4wNDEyNSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNDM3NSwgLTAuMDI1LCAtMC4wMTI1LCAwLCAwLjAyODc1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICItMC4wNjc1LCAtMC4wNTYyNSwgLTAuMDM3NSwgLTAuMDI1LCAtMC4wMDYyNSwgMC4wMTYyNSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDksIC0wLjA3MjUsIC0wLjA2LCAtMC4wNDEyNSwgLTAuMDI4NzUsIC0wLjAwNjI1LCAwLjAxNSIsIFwKLSAgICAgICAgICAiLTAuMTA1LCAtMC4wOTM3NSwgLTAuMDc1LCAtMC4wNjI1LCAtMC4wNDM3NSwgLTAuMDIxMjUsIDAiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiR04iOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMSwgMC4wODg3NSwgMC4wNzYyNSwgMC4wNjM3NSwgMC4wNTc1LCAwLjA0NzUsIDAuMDM4NzUiLCBcCi0gICAgICAgICAgIjAuMTExMjUsIDAuMSwgMC4wODc1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNTg3NSwgMC4wNSIsIFwKLSAgICAgICAgICAiMC4xMjM3NSwgMC4xMTI1LCAwLjEsIDAuMDg3NSwgMC4wODEyNSwgMC4wNzEyNSwgMC4wNjI1IiwgXAotICAgICAgICAgICIwLjEzNjI1LCAwLjEyNSwgMC4xMTI1LCAwLjEsIDAuMDkzNzUsIDAuMDgzNzUsIDAuMDc1IiwgXAotICAgICAgICAgICIwLjE0ODc1LCAwLjEzNzUsIDAuMTI1LCAwLjExODc1LCAwLjEwNjI1LCAwLjA5NjI1LCAwLjA4NzUiLCBcCi0gICAgICAgICAgIjAuMTcxMjUsIDAuMTYsIDAuMTQ3NSwgMC4xMzUsIDAuMTI4NzUsIDAuMTE4NzUsIDAuMTEiLCBcCi0gICAgICAgICAgIjAuMTg2MjUsIDAuMTc1LCAwLjE2MjUsIDAuMTU2MjUsIDAuMTUsIDAuMTMzNzUsIDAuMTI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU2MjUsIDAuMDM4NzUsIDAuMDI2MjUsIDAuMDA3NSwgLTAuMDA1LCAtMC4wMjc1LCAtMC4wNDg3NSIsIFwKLSAgICAgICAgICAiMC4wNjc1LCAwLjA1LCAwLjAzNzUsIDAuMDE4NzUsIDAuMDA2MjUsIC0wLjAxNjI1LCAtMC4wMzc1IiwgXAotICAgICAgICAgICIwLjA3Mzc1LCAwLjA2MjUsIDAuMDUsIDAuMDMxMjUsIDAuMDE4NzUsIC0wLjAxLCAtMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMDg2MjUsIDAuMDc1LCAwLjA2MjUsIDAuMDQzNzUsIDAuMDMxMjUsIDAuMDAyNSwgLTAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4wOTg3NSwgMC4wODc1LCAwLjA2ODc1LCAwLjA1NjI1LCAwLjAzNzUsIDAuMDE1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiMC4xMTUsIDAuMTAzNzUsIDAuMDkxMjUsIDAuMDcyNSwgMC4wNiwgMC4wMzEyNSwgMC4wMTYyNSIsIFwKLSAgICAgICAgICAiMC4xMzYyNSwgMC4xMjUsIDAuMTA2MjUsIDAuMDg3NSwgMC4wNzUsIDAuMDUyNSwgMC4wMzEyNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oR04pICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDUzODgzMjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA1Mzg1Mjc7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNTM4ODMyOwotICAgIGNsb2NrIDogdHJ1ZTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDE1MTEsIDAuMDAxNDk2LCAwLjAwMTQ4NCwgMC4wMDE0NzgsIDAuMDAxNDcyLCAwLjAwMTQ2NiwgMC4wMDE0NjciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDI0NTYsIDAuMDAyNDQ2LCAwLjAwMjQzOCwgMC4wMDI0MzIsIDAuMDAyNDI3LCAwLjAwMjQyMywgMC4wMDI0MjEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiR04iOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFEIjsKLSAgICAgIHNkZl9jb25kIDogIkQgPT0gMSdiMCI7Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4zNDEwMDksIDAuMzUyNDY2LCAwLjM2NzQ5MiwgMC4zODIwODYsIDAuMzk2NzA0LCAwLjQxODU4MywgMC40MzU4OSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjEzNDIxNDsKLSAgICBmdW5jdGlvbiA6ICJRSU5UIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJEIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yNjM3NDUsIDAuMzA2MTM5LCAwLjU0OTgxMiwgMC43NjM2OSwgMS4wNDg3OCwgMS42MTk0MSwgMS45NzczNiIsIFwKLSAgICAgICAgICAiMC4yNzUxNTUsIDAuMzE3NTAxLCAwLjU2MTA1MiwgMC43NzQ5OTMsIDEuMDU5ODQsIDEuNjMxMjIsIDEuOTg4MTkiLCBcCi0gICAgICAgICAgIjAuMjg4NDY5LCAwLjMzMTA4OSwgMC41NzQwMzUsIDAuNzg4NzM0LCAxLjA3Mzc3LCAxLjY0NDM4LCAyLjAwMjQyIiwgXAotICAgICAgICAgICIwLjMwMjIzMywgMC4zNDQ2MjcsIDAuNTg3NTQ3LCAwLjgwMjIzMywgMS4wODczMiwgMS42NTc4OCwgMi4wMTU5NyIsIFwKLSAgICAgICAgICAiMC4zMTU3NDEsIDAuMzU4NDQ4LCAwLjYwMTQxOCwgMC44MTYxOTYsIDEuMTAwOTgsIDEuNjcxODEsIDIuMDI5NTgiLCBcCi0gICAgICAgICAgIjAuMzM3NTMzLCAwLjM3OTkyNSwgMC42MjM1MTksIDAuODM3ODkzLCAxLjEyMjMxLCAxLjY5NTUyLCAyLjA1MDY1IiwgXAotICAgICAgICAgICIwLjM1NTk3MSwgMC4zOTgzNzMsIDAuNjQxMTI4LCAwLjg1NDA3OSwgMS4xNDA3OSwgMS43MDg3OCwgMi4wNjkzNSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNTY0OTcsIDAuMjQzMzk2LCAwLjczODAyNSwgMS4xNzI0OSwgMS43NjQ5NCwgMi45MzQ4MiwgMy42NjU4NyIsIFwKLSAgICAgICAgICAiMC4xNTY0ODYsIDAuMjQzMzEzLCAwLjc0MDMzLCAxLjE3OTgyLCAxLjc2NTA2LCAyLjkzNDk5LCAzLjY2NTk5IiwgXAotICAgICAgICAgICIwLjE1NjI3NywgMC4yNDM4NDksIDAuNzQxMzQsIDEuMTcwMTQsIDEuNzY1MDUsIDIuOTM0NzYsIDMuNjY2MDkiLCBcCi0gICAgICAgICAgIjAuMTU2NDg5LCAwLjI0MzMzMiwgMC43NDEzMzksIDEuMTcwOTksIDEuNzY0OTgsIDIuOTM0NzYsIDMuNjY1OTUiLCBcCi0gICAgICAgICAgIjAuMTU2MjA4LCAwLjI0MzM3OCwgMC43NDEzMjYsIDEuMTcwNTYsIDEuNzY1MDUsIDIuOTM0NzEsIDMuNjY2MDYiLCBcCi0gICAgICAgICAgIjAuMTU2NDkyLCAwLjI0MzM3NSwgMC43NDA0NDIsIDEuMTc1MjksIDEuNzY1MDEsIDIuOTMzNDEsIDMuNjY1OTMiLCBcCi0gICAgICAgICAgIjAuMTU2NDksIDAuMjQzMzY2LCAwLjczNTA1NSwgMS4xNzE3OCwgMS43NjUsIDIuOTExMDgsIDMuNjY1OTQiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjcwNTQ0LCAwLjMyMDEzMywgMC41OTk5MDYsIDAuODQ2Nzg5LCAxLjE3ODI5LCAxLjg0MjE2LCAyLjI1NDY0IiwgXAotICAgICAgICAgICIwLjI4MjAyNSwgMC4zMzEyODQsIDAuNjExNTAyLCAwLjg1ODA4OCwgMS4xOTE5OCwgMS44NTI5MiwgMi4yNjYzNCIsIFwKLSAgICAgICAgICAiMC4yOTQ5NDQsIDAuMzQ0MjkxLCAwLjYyNDI2MiwgMC44NzEzNjcsIDEuMjA1MDUsIDEuODYwMjIsIDIuMjc5NDUiLCBcCi0gICAgICAgICAgIjAuMzA3MzYzLCAwLjM1NjY2NCwgMC42MzY1NTMsIDAuODg0MDIzLCAxLjIxNzI5LCAxLjg3ODQ5LCAyLjI5MTU4IiwgXAotICAgICAgICAgICIwLjMxOTY1NywgMC4zNjkwOTYsIDAuNjQ4ODg1LCAwLjg5NTc0OCwgMS4yMjk0NywgMS44OTEwNywgMi4zMDM3NSIsIFwKLSAgICAgICAgICAiMC4zMzg3MzMsIDAuMzg4MjM4LCAwLjY2Nzk1NCwgMC45MTQ4NDUsIDEuMjQ4NTIsIDEuOTEwMTIsIDIuMzIyOCIsIFwKLSAgICAgICAgICAiMC4zNTQ5MzUsIDAuNDA0Mzg0LCAwLjY4NDE4MSwgMC45MzE3MzgsIDEuMjY0OSwgMS45MjYsIDIuMzM4NDIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTc2MzkzLCAwLjI3NDEzNywgMC44MzAyNzMsIDEuMzIwNTQsIDEuOTc4NDcsIDMuMjc5NjUsIDQuMDk5NTciLCBcCi0gICAgICAgICAgIjAuMTc3MDM2LCAwLjI3NTYxOCwgMC44MzAzOTEsIDEuMzIzMDksIDEuOTczMDUsIDMuMjgyOTQsIDQuMTAwNjIiLCBcCi0gICAgICAgICAgIjAuMTc1OTQ1LCAwLjI3NDg1NSwgMC44MzExOTIsIDEuMzE4MiwgMS45NzMwNiwgMy4yODcwNCwgNC4xMDEwNSIsIFwKLSAgICAgICAgICAiMC4xNzcxMDIsIDAuMjc1NTg5LCAwLjgzMDI4MSwgMS4zMTg2NSwgMS45NzMwOSwgMy4yODI4LCA0LjEwMjEyIiwgXAotICAgICAgICAgICIwLjE3Njg3NywgMC4yNzQzMTgsIDAuODI4NzYxLCAxLjMyMDc5LCAxLjk3MzQzLCAzLjI4MjIsIDQuMTAxNzciLCBcCi0gICAgICAgICAgIjAuMTc2ODcyLCAwLjI3NTAwNCwgMC44MjkxMzMsIDEuMzIwMiwgMS45NzMzOCwgMy4yODE5OCwgNC4xMDE1NSIsIFwKLSAgICAgICAgICAiMC4xNzcxMTYsIDAuMjc0MTI5LCAwLjgzMDM1NSwgMS4zMjQxMiwgMS45NzMyNywgMy4yODMxNywgNC4xMDM2MyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJHTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBub25fdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGZhbGxpbmdfZWRnZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjk5MDk3LCAwLjM0MTc2NiwgMC41ODQzOTUsIDAuNzk3NDkxLCAxLjA4NDIzLCAxLjY1MjA1LCAyLjAxMjk0IiwgXAotICAgICAgICAgICIwLjMxMDg2NiwgMC4zNTMyNDUsIDAuNTk2MjMyLCAwLjgwOTUyMywgMS4wOTU1NiwgMS42Njc0MywgMi4wMjQ3MiIsIFwKLSAgICAgICAgICAiMC4zMjU1NTcsIDAuMzY3OTgzLCAwLjYxMDcwNCwgMC44MjM5MjYsIDEuMTEwNDEsIDEuNjc4MDksIDIuMDM5MTMiLCBcCi0gICAgICAgICAgIjAuMzM5ODUxLCAwLjM4MjUyOCwgMC42MjYyMDcsIDAuODM5NjMyLCAxLjEyNDk2LCAxLjY5NjY2LCAyLjA1MzQ5IiwgXAotICAgICAgICAgICIwLjM1NDMxMiwgMC4zOTY5NTksIDAuNjM5ODk4LCAwLjg1NDc0MSwgMS4xMzk1MywgMS43MTA0NiwgMi4wNjgzMSIsIFwKLSAgICAgICAgICAiMC4zNzYzMTQsIDAuNDE4NzE2LCAwLjY2MTY0NywgMC44NzYzMDYsIDEuMTU5NTgsIDEuNzMyMDcsIDIuMDg4MTMiLCBcCi0gICAgICAgICAgIjAuMzkzOTA4LCAwLjQzNjMxMywgMC42NzkyNTksIDAuODk0MTMzLCAxLjE3ODg4LCAxLjc0OTgyLCAyLjEwNzY3Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE1NjQxNSwgMC4yNDMzMiwgMC43MzgzNzcsIDEuMTcxOTYsIDEuNzY0OTksIDIuOTA4MjUsIDMuNjY1ODgiLCBcCi0gICAgICAgICAgIjAuMTU2NDg0LCAwLjI0MzYyOCwgMC43NDEzMDksIDEuMTc2MjksIDEuNzY1MDIsIDIuOTM0NzksIDMuNjY1NzMiLCBcCi0gICAgICAgICAgIjAuMTU2NDgyLCAwLjI0MzM3MiwgMC43MzU5NDYsIDEuMTczMzgsIDEuNzY0OTksIDIuOTAzMTUsIDMuNjY1OTEiLCBcCi0gICAgICAgICAgIjAuMTU2NDU1LCAwLjI0MzMxMSwgMC43MzkxNDQsIDEuMTY4MTMsIDEuNzY0OTksIDIuOTMzNzgsIDMuNjY1ODgiLCBcCi0gICAgICAgICAgIjAuMTU2NjM2LCAwLjI0MzMyNiwgMC43NDEzMzMsIDEuMTcwOTksIDEuNzY0OTgsIDIuOTM0NywgMy42NjU4OSIsIFwKLSAgICAgICAgICAiMC4xNTY0ODUsIDAuMjQzMjY5LCAwLjc0MTMyNywgMS4xNzE5NywgMS43NTE1NywgMi45MzQ4MiwgMy42NjY0MSIsIFwKLSAgICAgICAgICAiMC4xNTY0NzcsIDAuMjQzMjcyLCAwLjc0MTMyNSwgMS4xNzE5MiwgMS43NjUwMywgMi45MzQ2OCwgMy42NjU5MSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zNDEwMDksIDAuMzkwNDk4LCAwLjY3MDIwOCwgMC45MTcwOTEsIDEuMjQ3ODMsIDEuOTEyMjcsIDIuMzE2NjIiLCBcCi0gICAgICAgICAgIjAuMzUyNDY2LCAwLjQwMTk1MiwgMC42ODE3MjMsIDAuOTI4NTU5LCAxLjI2MjMzLCAxLjkyMzg4LCAyLjMzNjY2IiwgXAotICAgICAgICAgICIwLjM2NzQ5MiwgMC40MTY3ODksIDAuNjk2NzI4LCAwLjk0MzU5LCAxLjI3MzQ2LCAxLjkzODcxLCAyLjM1MTY5IiwgXAotICAgICAgICAgICIwLjM4MjA4NiwgMC40MzE0OTcsIDAuNzExMzM4LCAwLjk1ODIxLCAxLjI4ODMsIDEuOTUzMywgMi4zNjYyNiIsIFwKLSAgICAgICAgICAiMC4zOTY3MDQsIDAuNDQ2MjE4LCAwLjcyNTkyMSwgMC45NzI3NCwgMS4zMDY0NSwgMS45NjgwMSwgMi4zODA4MSIsIFwKLSAgICAgICAgICAiMC40MTg1ODMsIDAuNDY4MTI2LCAwLjc0NzgzOSwgMC45OTQ2ODEsIDEuMzI4NTEsIDEuOTg5OTcsIDIuNDAyNzIiLCBcCi0gICAgICAgICAgIjAuNDM1ODksIDAuNDg1NDUxLCAwLjc2NTA4MSwgMS4wMTE5OCwgMS4zNDU4NSwgMi4wMDcwNiwgMi40MjAyMSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNzcxMjYsIDAuMjc0MTAzLCAwLjgzMTIzMywgMS4zMjExMywgMS45NzQ5NywgMy4yODIyMSwgNC4xMDIxMyIsIFwKLSAgICAgICAgICAiMC4xNzcxMjYsIDAuMjc0MTAyLCAwLjgyOTQwOSwgMS4zMjE1LCAxLjk3MzAyLCAzLjI4MTg2LCA0LjEwMTE1IiwgXAotICAgICAgICAgICIwLjE3NzEzNCwgMC4yNzU1MTksIDAuODMwMzg0LCAxLjMyMDU1LCAxLjk3OSwgMy4yODI4LCA0LjEwMTEzIiwgXAotICAgICAgICAgICIwLjE3NzAzNCwgMC4yNzQ5NDQsIDAuODMwMTM4LCAxLjMyMDQzLCAxLjk3ODk0LCAzLjI4MzEyLCA0LjEwMTUiLCBcCi0gICAgICAgICAgIjAuMTc1OTU5LCAwLjI3NTAwOSwgMC44MzAzOTcsIDEuMzIyMDUsIDEuOTcyOTgsIDMuMjgyMjQsIDQuMTAxNTEiLCBcCi0gICAgICAgICAgIjAuMTc3MDYzLCAwLjI3NDkxNCwgMC44Mjg1NiwgMS4zMjE0LCAxLjk3MzI4LCAzLjI4MjI3LCA0LjEwMTYzIiwgXAotICAgICAgICAgICIwLjE3NzA3NiwgMC4yNzQ4NjEsIDAuODMwNTI4LCAxLjMyMjEzLCAxLjk3MywgMy4yODI2OSwgNC4xMDE5NiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkQiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjIyMSwgMC4wMDIyMjYsIDAuMDAyMjMxLCAwLjAwMjIzMywgMC4wMDIyMzMsIDAuMDAyMjMzLCAwLjAwMjIzNSIsIFwKLSAgICAgICAgICAiMC4wMDIyMTUsIDAuMDAyMjIsIDAuMDAyMjI2LCAwLjAwMjIyNywgMC4wMDIyMjcsIDAuMDAyMjI4LCAwLjAwMjIyOCIsIFwKLSAgICAgICAgICAiMC4wMDIyMTEsIDAuMDAyMjE2LCAwLjAwMjIyMiwgMC4wMDIyMjMsIDAuMDAyMjIzLCAwLjAwMjIyNCwgMC4wMDIyMjQiLCBcCi0gICAgICAgICAgIjAuMDAyMjA5LCAwLjAwMjIxMywgMC4wMDIyMTksIDAuMDAyMjIsIDAuMDAyMjIxLCAwLjAwMjIyMSwgMC4wMDIyMjEiLCBcCi0gICAgICAgICAgIjAuMDAyMjA3LCAwLjAwMjIxMiwgMC4wMDIyMTgsIDAuMDAyMjE5LCAwLjAwMjIxOSwgMC4wMDIyMiwgMC4wMDIyMiIsIFwKLSAgICAgICAgICAiMC4wMDIyMDUsIDAuMDAyMjEsIDAuMDAyMjE1LCAwLjAwMjIxNiwgMC4wMDIyMTcsIDAuMDAyMjE3LCAwLjAwMjIxOCIsIFwKLSAgICAgICAgICAiMC4wMDIyMDMsIDAuMDAyMjA3LCAwLjAwMjIxMywgMC4wMDIyMTUsIDAuMDAyMjE1LCAwLjAwMjIxNSwgMC4wMDIyMTUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI0OTUsIDAuMDAyNDk5LCAwLjAwMjUwNSwgMC4wMDI1MDYsIDAuMDAyNTA3LCAwLjAwMjUwOCwgMC4wMDI1MDgiLCBcCi0gICAgICAgICAgIjAuMDAyNDkxLCAwLjAwMjQ5NiwgMC4wMDI1MDIsIDAuMDAyNTAzLCAwLjAwMjUwNCwgMC4wMDI1MDUsIDAuMDAyNTA1IiwgXAotICAgICAgICAgICIwLjAwMjQ5LCAwLjAwMjQ5NCwgMC4wMDI1MDEsIDAuMDAyNTAyLCAwLjAwMjUwMiwgMC4wMDI1MDMsIDAuMDAyNTAzIiwgXAotICAgICAgICAgICIwLjAwMjQ4OCwgMC4wMDI0OTMsIDAuMDAyNDk5LCAwLjAwMjUsIDAuMDAyNTAxLCAwLjAwMjUwMSwgMC4wMDI1MDIiLCBcCi0gICAgICAgICAgIjAuMDAyNDg3LCAwLjAwMjQ5MSwgMC4wMDI0OTgsIDAuMDAyNDk5LCAwLjAwMjQ5OSwgMC4wMDI1LCAwLjAwMjUwMSIsIFwKLSAgICAgICAgICAiMC4wMDI0ODUsIDAuMDAyNDg5LCAwLjAwMjQ5NSwgMC4wMDI0OTcsIDAuMDAyNDk3LCAwLjAwMjQ5OCwgMC4wMDI0OTgiLCBcCi0gICAgICAgICAgIjAuMDAyNDgzLCAwLjAwMjQ4OCwgMC4wMDI0OTQsIDAuMDAyNDk1LCAwLjAwMjQ5NiwgMC4wMDI0OTYsIDAuMDAyNDk2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiR04iOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzQwNiwgMC4wMDM0MDgsIDAuMDAzNDA2LCAwLjAwMzQwNCwgMC4wMDM0MDMsIDAuMDAzNDAyLCAwLjAwMzQwMSIsIFwKLSAgICAgICAgICAiMC4wMDM0LCAwLjAwMzQwMywgMC4wMDM0LCAwLjAwMzM5OCwgMC4wMDMzOTcsIDAuMDAzMzk2LCAwLjAwMzM5NSIsIFwKLSAgICAgICAgICAiMC4wMDMzOTQsIDAuMDAzMzk2LCAwLjAwMzM5NCwgMC4wMDMzOTIsIDAuMDAzMzkxLCAwLjAwMzM5LCAwLjAwMzM4OSIsIFwKLSAgICAgICAgICAiMC4wMDMzODksIDAuMDAzMzkxLCAwLjAwMzM4OSwgMC4wMDMzODcsIDAuMDAzMzg2LCAwLjAwMzM4NCwgMC4wMDMzODQiLCBcCi0gICAgICAgICAgIjAuMDAzMzg1LCAwLjAwMzM4NywgMC4wMDMzODYsIDAuMDAzMzg0LCAwLjAwMzM4MiwgMC4wMDMzODEsIDAuMDAzMzgiLCBcCi0gICAgICAgICAgIjAuMDAzMzgyLCAwLjAwMzM4NCwgMC4wMDMzODIsIDAuMDAzMzgsIDAuMDAzMzc5LCAwLjAwMzM3OCwgMC4wMDMzNzciLCBcCi0gICAgICAgICAgIjAuMDAzMzc5LCAwLjAwMzM4MiwgMC4wMDMzOCwgMC4wMDMzNzgsIDAuMDAzMzc3LCAwLjAwMzM3NSwgMC4wMDMzNzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDM1NTIsIDAuMDAzNTU2LCAwLjAwMzU2MiwgMC4wMDM1NjMsIDAuMDAzNTY1LCAwLjAwMzU2NCwgMC4wMDM1NjUiLCBcCi0gICAgICAgICAgIjAuMDAzNTQ2LCAwLjAwMzU1MSwgMC4wMDM1NTcsIDAuMDAzNTU5LCAwLjAwMzU1OSwgMC4wMDM1NiwgMC4wMDM1NiIsIFwKLSAgICAgICAgICAiMC4wMDM1NDIsIDAuMDAzNTQ3LCAwLjAwMzU1MywgMC4wMDM1NTQsIDAuMDAzNTU1LCAwLjAwMzU1NSwgMC4wMDM1NTYiLCBcCi0gICAgICAgICAgIjAuMDAzNTM4LCAwLjAwMzU0MywgMC4wMDM1NDksIDAuMDAzNTUsIDAuMDAzNTUxLCAwLjAwMzU1MiwgMC4wMDM1NTIiLCBcCi0gICAgICAgICAgIjAuMDAzNTM3LCAwLjAwMzU0MiwgMC4wMDM1NDgsIDAuMDAzNTQ5LCAwLjAwMzU1LCAwLjAwMzU1LCAwLjAwMzU1MSIsIFwKLSAgICAgICAgICAiMC4wMDM1MzUsIDAuMDAzNTM5LCAwLjAwMzU0NiwgMC4wMDM1NDcsIDAuMDAzNTQ4LCAwLjAwMzU0OCwgMC4wMDM1NDgiLCBcCi0gICAgICAgICAgIjAuMDAzNTMzLCAwLjAwMzUzOCwgMC4wMDM1NDQsIDAuMDAzNTQ1LCAwLjAwMzU0NiwgMC4wMDM1NDYsIDAuMDAzNTQ2Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihRTikgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjEyNjAzNjsKLSAgICBmdW5jdGlvbiA6ICJOMCI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjQzNTg0LCAwLjI4Njk0OCwgMC41MzE3MTQsIDAuNzQ3NjI4LCAxLjAzNTI2LCAxLjYxMDcyLCAxLjk3MDUiLCBcCi0gICAgICAgICAgIjAuMjU0OTU2LCAwLjI5ODM0MywgMC41NDMwMywgMC43NTg5MjksIDEuMDQ2NjQsIDEuNjIyMTksIDEuOTgxODUiLCBcCi0gICAgICAgICAgIjAuMjY3OTI1LCAwLjMxMTI5NiwgMC41NTYwNjMsIDAuNzcxOTIxLCAxLjA1OTYsIDEuNjM1MSwgMS45OTQ3OSIsIFwKLSAgICAgICAgICAiMC4yODAyNzYsIDAuMzIzNjM1LCAwLjU2ODQxMywgMC43ODQyNTEsIDEuMDcxOTYsIDEuNjQ3NDUsIDIuMDA3MTMiLCBcCi0gICAgICAgICAgIjAuMjkyNTUzLCAwLjMzNTkxMSwgMC41ODA2NjgsIDAuNzk2NTg2LCAxLjA4NDI0LCAxLjY1OTY4LCAyLjAxOTQ1IiwgXAotICAgICAgICAgICIwLjMxMTYyNiwgMC4zNTQ5ODQsIDAuNTk5NzQ4LCAwLjgxNTY2OCwgMS4xMDMzMiwgMS42Nzg3NiwgMi4wMzg1MyIsIFwKLSAgICAgICAgICAiMC4zMjc4OTIsIDAuMzcxMjYyLCAwLjYxNjA0MiwgMC44MzE4NjYsIDEuMTE5NTksIDEuNjk1MSwgMi4wNTQ5MSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNjY3MDcsIDAuMjUxNzY4LCAwLjc0NDQ1NSwgMS4xODIyOSwgMS43NzExNywgMi45NDMsIDMuNjc1ODEiLCBcCi0gICAgICAgICAgIjAuMTY2ODE4LCAwLjI1MTk1OSwgMC43NDYxMDcsIDEuMTgzNjUsIDEuNzcxMzgsIDIuOTQzMzEsIDMuNjc1NTMiLCBcCi0gICAgICAgICAgIjAuMTY2Nzk1LCAwLjI1MTY4OSwgMC43NDQzNzksIDEuMTgzMDUsIDEuNzcxNDEsIDIuOTM4MjYsIDMuNjc1NDciLCBcCi0gICAgICAgICAgIjAuMTY2ODIxLCAwLjI1MTgyMSwgMC43NDQzNTYsIDEuMTgyOTMsIDEuNzcxNTIsIDIuOTQzMTgsIDMuNjc1NDMiLCBcCi0gICAgICAgICAgIjAuMTY2ODI2LCAwLjI1MTc3MiwgMC43NDQ0NDgsIDEuMTgyMzEsIDEuNzcxNTUsIDIuOTQyOTQsIDMuNjc1NzciLCBcCi0gICAgICAgICAgIjAuMTY2ODEyLCAwLjI1MTc2MSwgMC43NDQ0NDksIDEuMTgyMjYsIDEuNzcxNTYsIDIuOTQyOTQsIDMuNjc1NzciLCBcCi0gICAgICAgICAgIjAuMTY2NzkyLCAwLjI1MTY4MSwgMC43NDQzNjEsIDEuMTgzNzQsIDEuNzcxNDksIDIuOTQzMjIsIDMuNjc2MzYiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjU3MjQxLCAwLjMwNjc4OCwgMC41ODY5MjcsIDAuODMzODI0LCAxLjE2MzAyLCAxLjgyMTQ2LCAyLjIzMzEiLCBcCi0gICAgICAgICAgIjAuMjY4NjQsIDAuMzE4MTksIDAuNTk4MzA2LCAwLjg0NTIyOCwgMS4xNzQ0LCAxLjgzMjkyLCAyLjI0NDQ3IiwgXAotICAgICAgICAgICIwLjI4MjIzLCAwLjMzMTc4LCAwLjYxMTc5MywgMC44NTg4MzMsIDEuMTg4MDIsIDEuODQ2NDYsIDIuMjU4MTEiLCBcCi0gICAgICAgICAgIjAuMjk1NzI4LCAwLjM0NTI3MSwgMC42MjUyODQsIDAuODcyMzIzLCAxLjIwMTUyLCAxLjg1OTk1LCAyLjI3MTYxIiwgXAotICAgICAgICAgICIwLjMwOTU3MywgMC4zNTkxMywgMC42MzkxNDIsIDAuODg2MTkxLCAxLjIxNTM1LCAxLjg3MzgxLCAyLjI4NTQ0IiwgXAotICAgICAgICAgICIwLjMzMTAzNCwgMC4zODA1NzUsIDAuNjYwNjk5LCAwLjkwNzY4LCAxLjIzNjc4LCAxLjg5NTUsIDIuMzA2ODYiLCBcCi0gICAgICAgICAgIjAuMzQ5NDc4LCAwLjM5OTAyLCAwLjY3OTA4NywgMC45MjYwMjEsIDEuMjU1MjQsIDEuOTEzNjcsIDIuMzI1MzMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTgzMjg0LCAwLjI3OTMzNiwgMC44MzE0NjUsIDEuMzIwOTcsIDEuOTc2NTIsIDMuMjg0MDcsIDQuMTAxNjkiLCBcCi0gICAgICAgICAgIjAuMTgzMjk4LCAwLjI3OTI0OSwgMC44MzEzNjEsIDEuMzIyOSwgMS45NzYzOSwgMy4yODQxNywgNC4xMDE1IiwgXAotICAgICAgICAgICIwLjE4MzExMSwgMC4yNzkwNTYsIDAuODMyNDU2LCAxLjMyMTA2LCAxLjk3NjQ4LCAzLjI4NDA5LCA0LjEwMTYzIiwgXAotICAgICAgICAgICIwLjE4MzMxNCwgMC4yNzkyNDgsIDAuODMyNDIyLCAxLjMyMTAzLCAxLjk3NjUyLCAzLjI4MzkyLCA0LjEwMTciLCBcCi0gICAgICAgICAgIjAuMTgzMDIsIDAuMjc5MzIzLCAwLjgzMjQ5NSwgMS4zMjEyNywgMS45NzY0NCwgMy4yODQxMiwgNC4xMDE2IiwgXAotICAgICAgICAgICIwLjE4MzI4OCwgMC4yNzkyNjgsIDAuODMxMjgxLCAxLjMyMTI5LCAxLjk3NjQyLCAzLjI4MDAyLCA0LjEwMTUzIiwgXAotICAgICAgICAgICIwLjE4MzMxNCwgMC4yNzkyNjcsIDAuODMxNTc2LCAxLjMyMTY5LCAxLjk3NjQ0LCAzLjI4MjMyLCA0LjEwMTYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiR04iOwotICAgICAgdGltaW5nX3NlbnNlIDogbm9uX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiBmYWxsaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMxNDA0NSwgMC4zNTc0MTQsIDAuNjAyMTg5LCAwLjgxODA5LCAxLjEwNTc0LCAxLjY4MTIyLCAyLjA0MDk1IiwgXAotICAgICAgICAgICIwLjMyNTU1NiwgMC4zNjg5MTYsIDAuNjEzNjgxLCAwLjgyOTU5LCAxLjExNzMsIDEuNjkyNzEsIDIuMDUyNDgiLCBcCi0gICAgICAgICAgIjAuMzQwNTI2LCAwLjM4Mzg4NSwgMC42Mjg2NDEsIDAuODQ0NTY3LCAxLjEzMjI1LCAxLjcwNzY2LCAyLjA2NzQ0IiwgXAotICAgICAgICAgICIwLjM1NTE0MiwgMC4zOTg1MDcsIDAuNjQzMjY0LCAwLjg1OTE5MiwgMS4xNDY4OCwgMS43MjIyOCwgMi4wODIwNiIsIFwKLSAgICAgICAgICAiMC4zNjk3MjUsIDAuNDEzMDkxLCAwLjY1Nzg1OCwgMC44NzM3NjEsIDEuMTYxNTEsIDEuNzM2ODksIDIuMDk2NjYiLCBcCi0gICAgICAgICAgIjAuMzkxNjQ1LCAwLjQzNTAwNSwgMC42Nzk3NjksIDAuODk1NjgxLCAxLjE4MzMzLCAxLjc1ODc5LCAyLjExODU3IiwgXAotICAgICAgICAgICIwLjQwODk1NSwgMC40NTIzMTQsIDAuNjk3MDk1LCAwLjkxMjk3OSwgMS4yMDA2NSwgMS43NzYxNCwgMi4xMzU4MSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNjY5OTUsIDAuMjUxODU3LCAwLjc0NDM5MiwgMS4xODIzNCwgMS43NzEzNCwgMi45NDMxMywgMy42Njk0MyIsIFwKLSAgICAgICAgICAiMC4xNjcwMjIsIDAuMjUxODgzLCAwLjc0NDQ2LCAxLjE4MjM4LCAxLjc3MTgxLCAyLjk0MzA3LCAzLjY3NTg3IiwgXAotICAgICAgICAgICIwLjE2Njk5NywgMC4yNTE5MzIsIDAuNzQ0NDU3LCAxLjE4MjMsIDEuNzY4NTcsIDIuOTQyOTEsIDMuNjc1OCIsIFwKLSAgICAgICAgICAiMC4xNjcwMDIsIDAuMjUxODksIDAuNzQ0NDUyLCAxLjE4MjI4LCAxLjc2ODgxLCAyLjk0MjgzLCAzLjY3NTczIiwgXAotICAgICAgICAgICIwLjE2Njk3MywgMC4yNTE4NiwgMC43NDQ0NTEsIDEuMTgyNDIsIDEuNzcxOTUsIDIuOTQzMDQsIDMuNjc1ODMiLCBcCi0gICAgICAgICAgIjAuMTY3MDAxLCAwLjI1MTg1OSwgMC43NDQ0NTQsIDEuMTgyMzYsIDEuNzcxNDUsIDIuOTQyOTYsIDMuNjc1NzciLCBcCi0gICAgICAgICAgIjAuMTY3MDAxLCAwLjI1MTg3NiwgMC43NDQzNzgsIDEuMTgyNDMsIDEuNzcxNTEsIDIuOTQzMTQsIDMuNjc1MzIiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjkyODMsIDAuMzQyMzIyLCAwLjYyMjE3NiwgMC44NjkwMzYsIDEuMTk4MjEsIDEuODU2NTksIDIuMjY4MjUiLCBcCi0gICAgICAgICAgIjAuMzA0MzMsIDAuMzUzODI3LCAwLjYzMzYzNCwgMC44ODA1NDYsIDEuMjA5NjksIDEuODY4MjEsIDIuMjc5NzciLCBcCi0gICAgICAgICAgIjAuMzE5MDIzLCAwLjM2ODUyOCwgMC42NDgzOCwgMC44OTUyMzYsIDEuMjI0NCwgMS44ODI3OSwgMi4yOTQ0NCIsIFwKLSAgICAgICAgICAiMC4zMzM1OTUsIDAuMzgzMDg5LCAwLjY2MzAzNCwgMC45MDk4NTEsIDEuMjM4OTgsIDEuODk3NSwgMi4zMDkiLCBcCi0gICAgICAgICAgIjAuMzQ4MDIxLCAwLjM5NzUyMiwgMC42NzczMzUsIDAuOTI0MzE2LCAxLjI1MzQyLCAxLjkxMTg1LCAyLjMyMzQ2IiwgXAotICAgICAgICAgICIwLjM2OTc4NCwgMC40MTkyNzcsIDAuNjk5MDk0LCAwLjk0NjA1LCAxLjI3NTE3LCAxLjkzMzU5LCAyLjM0NTExIiwgXAotICAgICAgICAgICIwLjM4NzM2NCwgMC40MzY4NjEsIDAuNzE2Njg2LCAwLjk2MzY3LCAxLjI5Mjc3LCAxLjk1MTE5LCAyLjM2MjgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTgzMjg0LCAwLjI3OTI5LCAwLjgzMTU1NSwgMS4zMjE2OSwgMS45NzY0NCwgMy4yODIyNSwgNC4xMDE0NiIsIFwKLSAgICAgICAgICAiMC4xODMzNTgsIDAuMjc4OTkxLCAwLjgzMjQ4NywgMS4zMjE0OSwgMS45NzYzOSwgMy4yODQzMywgNC4xMDE3NyIsIFwKLSAgICAgICAgICAiMC4xODMzNiwgMC4yNzkzNzcsIDAuODMxNTgsIDEuMzIxNjYsIDEuOTc2MzUsIDMuMjgyMTYsIDQuMTAxNDUiLCBcCi0gICAgICAgICAgIjAuMTgzMjc1LCAwLjI3OTI4MywgMC44MzEyOSwgMS4zMjE0NCwgMS45NzY0MywgMy4yNzk5NSwgNC4xMDE0IiwgXAotICAgICAgICAgICIwLjE4MzM0NiwgMC4yNzkzMTIsIDAuODMyNDQ1LCAxLjMyMTMxLCAxLjk3NjQ4LCAzLjI4NCwgNC4xMDE1MSIsIFwKLSAgICAgICAgICAiMC4xODMzNTcsIDAuMjc5MjczLCAwLjgzMjQ2LCAxLjMyMDk5LCAxLjk3NTEsIDMuMjg0MDgsIDQuMDk3NjgiLCBcCi0gICAgICAgICAgIjAuMTgzMzUyLCAwLjI3OTI3MSwgMC44MzI0NTMsIDEuMzIxMzEsIDEuOTc2MzYsIDMuMjg0MDEsIDQuMTAxNTEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJEIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI0OTUsIDAuMDAyNDk5LCAwLjAwMjUwNSwgMC4wMDI1MDYsIDAuMDAyNTA3LCAwLjAwMjUwOCwgMC4wMDI1MDgiLCBcCi0gICAgICAgICAgIjAuMDAyNDkxLCAwLjAwMjQ5NiwgMC4wMDI1MDIsIDAuMDAyNTAzLCAwLjAwMjUwNCwgMC4wMDI1MDUsIDAuMDAyNTA1IiwgXAotICAgICAgICAgICIwLjAwMjQ5LCAwLjAwMjQ5NCwgMC4wMDI1MDEsIDAuMDAyNTAyLCAwLjAwMjUwMiwgMC4wMDI1MDMsIDAuMDAyNTAzIiwgXAotICAgICAgICAgICIwLjAwMjQ4OCwgMC4wMDI0OTMsIDAuMDAyNDk5LCAwLjAwMjUsIDAuMDAyNTAxLCAwLjAwMjUwMSwgMC4wMDI1MDIiLCBcCi0gICAgICAgICAgIjAuMDAyNDg3LCAwLjAwMjQ5MSwgMC4wMDI0OTgsIDAuMDAyNDk5LCAwLjAwMjQ5OSwgMC4wMDI1LCAwLjAwMjUwMSIsIFwKLSAgICAgICAgICAiMC4wMDI0ODUsIDAuMDAyNDg5LCAwLjAwMjQ5NSwgMC4wMDI0OTcsIDAuMDAyNDk3LCAwLjAwMjQ5OCwgMC4wMDI0OTgiLCBcCi0gICAgICAgICAgIjAuMDAyNDgzLCAwLjAwMjQ4OCwgMC4wMDI0OTQsIDAuMDAyNDk1LCAwLjAwMjQ5NiwgMC4wMDI0OTYsIDAuMDAyNDk2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyMjIxLCAwLjAwMjIyNiwgMC4wMDIyMzEsIDAuMDAyMjMzLCAwLjAwMjIzMywgMC4wMDIyMzMsIDAuMDAyMjM1IiwgXAotICAgICAgICAgICIwLjAwMjIxNSwgMC4wMDIyMiwgMC4wMDIyMjYsIDAuMDAyMjI3LCAwLjAwMjIyNywgMC4wMDIyMjgsIDAuMDAyMjI4IiwgXAotICAgICAgICAgICIwLjAwMjIxMSwgMC4wMDIyMTYsIDAuMDAyMjIyLCAwLjAwMjIyMywgMC4wMDIyMjMsIDAuMDAyMjI0LCAwLjAwMjIyNCIsIFwKLSAgICAgICAgICAiMC4wMDIyMDksIDAuMDAyMjEzLCAwLjAwMjIxOSwgMC4wMDIyMiwgMC4wMDIyMjEsIDAuMDAyMjIxLCAwLjAwMjIyMSIsIFwKLSAgICAgICAgICAiMC4wMDIyMDcsIDAuMDAyMjEyLCAwLjAwMjIxOCwgMC4wMDIyMTksIDAuMDAyMjE5LCAwLjAwMjIyLCAwLjAwMjIyIiwgXAotICAgICAgICAgICIwLjAwMjIwNSwgMC4wMDIyMSwgMC4wMDIyMTUsIDAuMDAyMjE2LCAwLjAwMjIxNywgMC4wMDIyMTcsIDAuMDAyMjE4IiwgXAotICAgICAgICAgICIwLjAwMjIwMywgMC4wMDIyMDcsIDAuMDAyMjEzLCAwLjAwMjIxNSwgMC4wMDIyMTUsIDAuMDAyMjE1LCAwLjAwMjIxNSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkdOIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDM1NTIsIDAuMDAzNTU2LCAwLjAwMzU2MiwgMC4wMDM1NjMsIDAuMDAzNTY1LCAwLjAwMzU2NCwgMC4wMDM1NjUiLCBcCi0gICAgICAgICAgIjAuMDAzNTQ2LCAwLjAwMzU1MSwgMC4wMDM1NTcsIDAuMDAzNTU5LCAwLjAwMzU1OSwgMC4wMDM1NiwgMC4wMDM1NiIsIFwKLSAgICAgICAgICAiMC4wMDM1NDIsIDAuMDAzNTQ3LCAwLjAwMzU1MywgMC4wMDM1NTQsIDAuMDAzNTU1LCAwLjAwMzU1NSwgMC4wMDM1NTYiLCBcCi0gICAgICAgICAgIjAuMDAzNTM4LCAwLjAwMzU0MywgMC4wMDM1NDksIDAuMDAzNTUsIDAuMDAzNTUxLCAwLjAwMzU1MiwgMC4wMDM1NTIiLCBcCi0gICAgICAgICAgIjAuMDAzNTM3LCAwLjAwMzU0MiwgMC4wMDM1NDgsIDAuMDAzNTQ5LCAwLjAwMzU1LCAwLjAwMzU1LCAwLjAwMzU1MSIsIFwKLSAgICAgICAgICAiMC4wMDM1MzUsIDAuMDAzNTM5LCAwLjAwMzU0NiwgMC4wMDM1NDcsIDAuMDAzNTQ4LCAwLjAwMzU0OCwgMC4wMDM1NDgiLCBcCi0gICAgICAgICAgIjAuMDAzNTMzLCAwLjAwMzUzOCwgMC4wMDM1NDQsIDAuMDAzNTQ1LCAwLjAwMzU0NiwgMC4wMDM1NDYsIDAuMDAzNTQ2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzNDA2LCAwLjAwMzQwOCwgMC4wMDM0MDYsIDAuMDAzNDA0LCAwLjAwMzQwMywgMC4wMDM0MDIsIDAuMDAzNDAxIiwgXAotICAgICAgICAgICIwLjAwMzQsIDAuMDAzNDAzLCAwLjAwMzQsIDAuMDAzMzk4LCAwLjAwMzM5NywgMC4wMDMzOTYsIDAuMDAzMzk1IiwgXAotICAgICAgICAgICIwLjAwMzM5NCwgMC4wMDMzOTYsIDAuMDAzMzk0LCAwLjAwMzM5MiwgMC4wMDMzOTEsIDAuMDAzMzksIDAuMDAzMzg5IiwgXAotICAgICAgICAgICIwLjAwMzM4OSwgMC4wMDMzOTEsIDAuMDAzMzg5LCAwLjAwMzM4NywgMC4wMDMzODYsIDAuMDAzMzg0LCAwLjAwMzM4NCIsIFwKLSAgICAgICAgICAiMC4wMDMzODUsIDAuMDAzMzg3LCAwLjAwMzM4NiwgMC4wMDMzODQsIDAuMDAzMzgyLCAwLjAwMzM4MSwgMC4wMDMzOCIsIFwKLSAgICAgICAgICAiMC4wMDMzODIsIDAuMDAzMzg0LCAwLjAwMzM4MiwgMC4wMDMzOCwgMC4wMDMzNzksIDAuMDAzMzc4LCAwLjAwMzM3NyIsIFwKLSAgICAgICAgICAiMC4wMDMzNzksIDAuMDAzMzgyLCAwLjAwMzM4LCAwLjAwMzM3OCwgMC4wMDMzNzcsIDAuMDAzMzc1LCAwLjAwMzM3NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogVExBVFg0ICoKLSAqIC0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoVExBVFg0KSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuNTU2MTg1OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIGxhdGNoIChRSU5ULE4wKSB7Ci0gICAgZGF0YV9pbiA6ICJEIjsKLSAgICBlbmFibGUgOiAiRyI7Ci0gIH0KLSAgcGluKEQpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDU2OTg3NjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA1NjgwMjY7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNTY5ODc2OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDE1OCwgMC4wMDAxNiwgMC4wMDAxNjEsIDAuMDAwMTYxLCAwLjAwMDE2MSwgMC4wMDAxNjIsIDAuMDAwMTYyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMTY4LCAwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkciOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX2ZhbGxpbmc7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDU2MjUsIC0wLjA0NSwgLTAuMDMyNSwgLTAuMDEzNzUsIC0wLjAwMTI1LCAwLjAyMTI1LCAwLjA0MjUiLCBcCi0gICAgICAgICAgIi0wLjA2NzUsIC0wLjA1NjI1LCAtMC4wNDM3NSwgLTAuMDI1LCAtMC4wMTI1LCAwLjAxLCAwLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wOCwgLTAuMDY4NzUsIC0wLjA1NjI1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAwMjUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjA5ODc1LCAtMC4wODEyNSwgLTAuMDY4NzUsIC0wLjA1NjI1LCAtMC4wMzc1LCAtMC4wMTUsIDAiLCBcCi0gICAgICAgICAgIi0wLjExMTI1LCAtMC4xLCAtMC4wODEyNSwgLTAuMDY4NzUsIC0wLjA1LCAtMC4wMjc1LCAtMC4wMTI1IiwgXAotICAgICAgICAgICItMC4xMzM3NSwgLTAuMTIyNSwgLTAuMTAzNzUsIC0wLjA5MTI1LCAtMC4wNzI1LCAtMC4wNSwgLTAuMDM1IiwgXAotICAgICAgICAgICItMC4xNDg3NSwgLTAuMTM3NSwgLTAuMTI1LCAtMC4xMDYyNSwgLTAuMDkzNzUsIC0wLjA3MTI1LCAtMC4wNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjA4NzUsIC0wLjA3NjI1LCAtMC4wNjM3NSwgLTAuMDU3NSwgLTAuMDQ1LCAtMC4wMzUsIC0wLjAyNjI1IiwgXAotICAgICAgICAgICItMC4wOTg3NSwgLTAuMDg3NSwgLTAuMDc1LCAtMC4wNjg3NSwgLTAuMDU2MjUsIC0wLjA0NjI1LCAtMC4wMzc1IiwgXAotICAgICAgICAgICItMC4xMTEyNSwgLTAuMSwgLTAuMDg3NSwgLTAuMDgxMjUsIC0wLjA2ODc1LCAtMC4wNTg3NSwgLTAuMDUiLCBcCi0gICAgICAgICAgIi0wLjEyMzc1LCAtMC4xMTI1LCAtMC4xLCAtMC4wOTM3NSwgLTAuMDgxMjUsIC0wLjA3MTI1LCAtMC4wNjI1IiwgXAotICAgICAgICAgICItMC4xMzYyNSwgLTAuMTI1LCAtMC4xMTI1LCAtMC4xMDYyNSwgLTAuMDkzNzUsIC0wLjA4Mzc1LCAtMC4wNzUiLCBcCi0gICAgICAgICAgIi0wLjE1MjUsIC0wLjE0MTI1LCAtMC4xMzUsIC0wLjEyMjUsIC0wLjExNjI1LCAtMC4xMDYyNSwgLTAuMDk3NSIsIFwKLSAgICAgICAgICAiLTAuMTczNzUsIC0wLjE2MjUsIC0wLjE1LCAtMC4xMzc1LCAtMC4xMzEyNSwgLTAuMTIxMjUsIC0wLjExMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX2ZhbGxpbmc7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDkzNzUsIDAuMDgyNSwgMC4wNjM3NSwgMC4wNTEyNSwgMC4wMzI1LCAwLjAxLCAtMC4wMDUiLCBcCi0gICAgICAgICAgIjAuMTA1LCAwLjA5Mzc1LCAwLjA3NSwgMC4wNjI1LCAwLjA0Mzc1LCAwLjAyMTI1LCAwIiwgXAotICAgICAgICAgICIwLjExNzUsIDAuMTA2MjUsIDAuMDg3NSwgMC4wNzUsIDAuMDU2MjUsIDAuMDMzNzUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMTMsIDAuMTE4NzUsIDAuMSwgMC4wODc1LCAwLjA2ODc1LCAwLjA0NjI1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICIwLjE0MjUsIDAuMTMxMjUsIDAuMTE4NzUsIDAuMSwgMC4wODc1LCAwLjA1ODc1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjE2NSwgMC4xNTM3NSwgMC4xMzUsIDAuMTIyNSwgMC4xMDM3NSwgMC4wODEyNSwgMC4wNjYyNSIsIFwKLSAgICAgICAgICAiMC4xODYyNSwgMC4xNjg3NSwgMC4xNTYyNSwgMC4xMzc1LCAwLjEyNSwgMC4xMDI1LCAwLjA4MTI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTI1LCAwLjExMzc1LCAwLjEwMTI1LCAwLjA4ODc1LCAwLjA4MjUsIDAuMDc4NzUsIDAuMDciLCBcCi0gICAgICAgICAgIjAuMTM2MjUsIDAuMTI1LCAwLjExMjUsIDAuMSwgMC4wOTM3NSwgMC4wOSwgMC4wODEyNSIsIFwKLSAgICAgICAgICAiMC4xNDg3NSwgMC4xMzc1LCAwLjEyNSwgMC4xMTI1LCAwLjEwNjI1LCAwLjEwMjUsIDAuMDkzNzUiLCBcCi0gICAgICAgICAgIjAuMTU1LCAwLjE1LCAwLjEzNzUsIDAuMTI1LCAwLjExODc1LCAwLjEwODc1LCAwLjEwNjI1IiwgXAotICAgICAgICAgICIwLjE2NzUsIDAuMTU2MjUsIDAuMTUsIDAuMTM3NSwgMC4xMzEyNSwgMC4xMjEyNSwgMC4xMTg3NSIsIFwKLSAgICAgICAgICAiMC4xOSwgMC4xNzg3NSwgMC4xNjYyNSwgMC4xNTM3NSwgMC4xNDc1LCAwLjEzNzUsIDAuMTM1IiwgXAotICAgICAgICAgICIwLjIwNSwgMC4xOTM3NSwgMC4xODEyNSwgMC4xNzUsIDAuMTYyNSwgMC4xNTI1LCAwLjE1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihHKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA1ODQ1NDQ7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNTg0NDc0OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDU4NDU0NDsKLSAgICBjbG9jayA6IHRydWU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxNTg3LCAwLjAwMTU3MywgMC4wMDE1NjEsIDAuMDAxNTU1LCAwLjAwMTU0OSwgMC4wMDE1NDMsIDAuMDAxNTQzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyNzU5LCAwLjAwMjc0OSwgMC4wMDI3NDEsIDAuMDAyNzM1LCAwLjAwMjczMSwgMC4wMDI3MjcsIDAuMDAyNzI0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkciOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFEIjsKLSAgICAgIHNkZl9jb25kIDogIkQgPT0gMSdiMCI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4yODA5MTksIDAuMjkyNDcyLCAwLjMwNzk1MiwgMC4zMjMyMjEsIDAuMzM4MDQ4LCAwLjM2MjMzNCwgMC4zODI1OCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjUzNDM0MjsKLSAgICBmdW5jdGlvbiA6ICJRSU5UIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJEIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI0MDY3MywgMC4zNjcxNDMsIDAuNDkzNzIyLCAwLjU4NTIwNSwgMC43Mjk0NTUsIDAuODU4MzA5LCAxLjAzOTE5IiwgXAotICAgICAgICAgICIwLjI1MjM2MiwgMC4zNzg4MTEsIDAuNTA1NjA4LCAwLjU5NzAxNSwgMC43NDE3NjIsIDAuODY5Njk5LCAxLjA1MDgiLCBcCi0gICAgICAgICAgIjAuMjY2MDQ5LCAwLjM5MjUwNCwgMC41MTkxNzMsIDAuNjEwNTgsIDAuNzU0Nzc4LCAwLjg4MzY3NSwgMS4wNjQ1NSIsIFwKLSAgICAgICAgICAiMC4yNzk2ODcsIDAuNDA2MDMsIDAuNTMzMTE2LCAwLjYyNDIwMSwgMC43Njg3NDYsIDAuODk3MTQsIDEuMDc4MDQiLCBcCi0gICAgICAgICAgIjAuMjkzNDY5LCAwLjQxOTkyMiwgMC41NDcwNDUsIDAuNjM4MDgsIDAuNzgyNzM0LCAwLjkxMDg2MSwgMS4wOTE5IiwgXAotICAgICAgICAgICIwLjMxNTI3NiwgMC40NDE2OTMsIDAuNTY4ODg1LCAwLjY1OTc4MywgMC44MDQzNzIsIDAuOTMyNzAxLCAxLjExMzYzIiwgXAotICAgICAgICAgICIwLjMzNDQyNywgMC40NjA4NzcsIDAuNTg3ODMsIDAuNjc5MDY4LCAwLjgyMzcxMiwgMC45NTE4MjYsIDEuMTMyODkiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTAzOTMsIDAuMzA2NTAzLCAwLjU2NjA1MywgMC43NTMyNDMsIDEuMDQ1ODgsIDEuMzAxMTIsIDEuNjgyNTciLCBcCi0gICAgICAgICAgIjAuMDUwNDA0LCAwLjMwNjQ1NSwgMC41NjM1NjMsIDAuNzUzMTc3LCAxLjA0OTc0LCAxLjMwMzA1LCAxLjY4MjY0IiwgXAotICAgICAgICAgICIwLjA1MDM4OSwgMC4zMDY1MTIsIDAuNTY1MDIyLCAwLjc1MzIzNiwgMS4wNDU3MiwgMS4zMDExOCwgMS42ODI1NyIsIFwKLSAgICAgICAgICAiMC4wNTA1OTcsIDAuMzA2NjE2LCAwLjU2NzI3MSwgMC43NTMyMzQsIDEuMDQ4NTUsIDEuMjk3NzYsIDEuNjgyNjQiLCBcCi0gICAgICAgICAgIjAuMDUwNTk4LCAwLjMwNjQ3MiwgMC41Njc0NywgMC43NTMxOTksIDEuMDUwMTQsIDEuMzAxMzUsIDEuNjgyNjQiLCBcCi0gICAgICAgICAgIjAuMDUwMzcyLCAwLjMwNjU4NCwgMC41NjE5MzIsIDAuNzUzMjM3LCAxLjA1MDQ2LCAxLjI5ODUsIDEuNjgyNjciLCBcCi0gICAgICAgICAgIjAuMDUwNTUyLCAwLjMwNjQ1NSwgMC41NjI4MDQsIDAuNzUzMTgzLCAxLjA1MDA3LCAxLjMwMTA5LCAxLjY4MjYzIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjM0NTQ5LCAwLjM4MDM1MiwgMC41Mjc0MzUsIDAuNjMwMzc4LCAwLjc5OTQ2OSwgMC45NDU5NDEsIDEuMTU0NzIiLCBcCi0gICAgICAgICAgIjAuMjQ2MDAxLCAwLjM5MTgwMSwgMC41Mzg3ODgsIDAuNjQxNjQ1LCAwLjgwNzk1MSwgMC45NTM3NDMsIDEuMTYyNzIiLCBcCi0gICAgICAgICAgIjAuMjU5MDg5LCAwLjQwNDk1NCwgMC41NTA2MzQsIDAuNjU0MzExLCAwLjgyMzk1LCAwLjk2Njk3NywgMS4xNzkyNSIsIFwKLSAgICAgICAgICAiMC4yNzE1NjQsIDAuNDE3NTA2LCAwLjU2NDQ3NSwgMC42NjkxMDQsIDAuODM2NTAyLCAwLjk3OTUxMywgMS4xOTE3OSIsIFwKLSAgICAgICAgICAiMC4yODM4NywgMC40Mjk3MzEsIDAuNTc2NzA2LCAwLjY3OTY0OSwgMC44NDg3MzIsIDAuOTkxMzk0LCAxLjIwMzk5IiwgXAotICAgICAgICAgICIwLjMwMzM0MiwgMC40NDkyODYsIDAuNTk2MjY0LCAwLjY5OTA5MSwgMC44NjgyODcsIDEuMDExMTksIDEuMjIzNTYiLCBcCi0gICAgICAgICAgIjAuMzIwMzE4LCAwLjQ2NjE3LCAwLjYxMzIwMSwgMC43MTYxNjYsIDAuODg1MjI2LCAxLjAyOTk5LCAxLjI0MDQ2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU1MTcsIDAuMzQzOTgzLCAwLjYzNDc4MywgMC44NDEwNzUsIDEuMTc0NjcsIDEuNDY1MzQsIDEuODgwMDMiLCBcCi0gICAgICAgICAgIjAuMDU1MzU0LCAwLjM0MzgwNCwgMC42MzQ4OTEsIDAuODQwNjk5LCAxLjE3MDksIDEuNDYyNzgsIDEuODc2NTciLCBcCi0gICAgICAgICAgIjAuMDU1NDUxLCAwLjM0NDIyMiwgMC42MzQzMjQsIDAuODM5MDIyLCAxLjE3NDQ0LCAxLjQ2MTU4LCAxLjg3ODg0IiwgXAotICAgICAgICAgICIwLjA1NTEyMywgMC4zNDQzMSwgMC42MzQ5NDQsIDAuODQyNzUxLCAxLjE3NDI0LCAxLjQ2MTg2LCAxLjg3ODEzIiwgXAotICAgICAgICAgICIwLjA1NTU1NiwgMC4zNDM4NjUsIDAuNjM0ODYyLCAwLjg0MTA0NSwgMS4xNzQ1MSwgMS40NjQxOCwgMS44Nzk2OCIsIFwKLSAgICAgICAgICAiMC4wNTU3MjgsIDAuMzQ0MDY5LCAwLjYzNDkzMSwgMC44Mzk5OCwgMS4xNzQ1NiwgMS40NjQ2MiwgMS44Nzk2IiwgXAotICAgICAgICAgICIwLjA1NTcwMSwgMC4zNDM4NTEsIDAuNjM0NzU4LCAwLjgzOTk5NiwgMS4xNzQ0NSwgMS40NjUwMiwgMS44Nzk4NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJHIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5vbl91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcmlzaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzIwMTk3LCAwLjQ0NjY3NSwgMC41NzMzNzIsIDAuNjY0ODE5LCAwLjgwOTk0NywgMC45MzU3NTcsIDEuMTE4MTYiLCBcCi0gICAgICAgICAgIjAuMzMxODIxLCAwLjQ1ODI5OSwgMC41ODQ5OTUsIDAuNjc2MTAzLCAwLjgyMTU3NCwgMC45NDcxNSwgMS4xMjg1NiIsIFwKLSAgICAgICAgICAiMC4zNDcyNDUsIDAuNDczNjgxLCAwLjYwMDQzOCwgMC42OTE2OTksIDAuODM1OTYsIDAuOTY0NzY3LCAxLjE0NTY0IiwgXAotICAgICAgICAgICIwLjM2MjY2NCwgMC40ODkxNCwgMC42MTU4MzksIDAuNzA3MjksIDAuODUyMzU4LCAwLjk3ODMxMSwgMS4xNjA2OCIsIFwKLSAgICAgICAgICAiMC4zNzc3MzIsIDAuNTA0MTY4LCAwLjYzMDg3MiwgMC43MjI1ODYsIDAuODY3NDUyLCAwLjk5NTEyNCwgMS4xNzQ3MyIsIFwKLSAgICAgICAgICAiMC40MDIxNzcsIDAuNTI4NjI0LCAwLjY1NTMyNiwgMC43NDcwNjEsIDAuODkxODkzLCAxLjAxODIxLCAxLjE5OTAxIiwgXAotICAgICAgICAgICIwLjQyMjQ1OCwgMC41NDg5NzMsIDAuNjc1NjU3LCAwLjc2NjkxMiwgMC45MTEyMjMsIDEuMDM5OTcsIDEuMjIwODUiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTAzODEsIDAuMzA2NDkxLCAwLjU2NDgwOCwgMC43NTMxODIsIDEuMDQwMjcsIDEuMjk3OTQsIDEuNjgyOCIsIFwKLSAgICAgICAgICAiMC4wNTAzODEsIDAuMzA2NDg4LCAwLjU2NDgxNywgMC43NTMzNywgMS4wNDAzNCwgMS4zMDE2MywgMS42NjY4MiIsIFwKLSAgICAgICAgICAiMC4wNTA0NzUsIDAuMzA2MzgsIDAuNTYzNzUzLCAwLjc1MzI0LCAxLjA0NTg1LCAxLjMwMDc0LCAxLjY4MjU1IiwgXAotICAgICAgICAgICIwLjA1MDM3OCwgMC4zMDY0ODUsIDAuNTY0ODAyLCAwLjc1MzE4LCAxLjA0MTk2LCAxLjI5ODY5LCAxLjY4Mjc3IiwgXAotICAgICAgICAgICIwLjA1MDUwMiwgMC4zMDY0ODEsIDAuNTY0NzA4LCAwLjc1MjIyMiwgMS4wNDAwNywgMS4yOTgyNCwgMS42NzM5MyIsIFwKLSAgICAgICAgICAiMC4wNTAzMjEsIDAuMzA2NDc5LCAwLjU2NDc0MiwgMC43NDc2ODksIDEuMDQwNTksIDEuMzEwNzcsIDEuNjcyODEiLCBcCi0gICAgICAgICAgIjAuMDUwMTkzLCAwLjMwNjcwNiwgMC41NjM4NDQsIDAuNzUzMjUsIDEuMDQ2MDQsIDEuMzAwMywgMS42ODI1NiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI4MDkxOSwgMC40MjY4MDEsIDAuNTczNzMzLCAwLjY3NjIyNCwgMC44NDMzODgsIDAuOTg5MjY1LCAxLjE5NjY0IiwgXAotICAgICAgICAgICIwLjI5MjQ3MiwgMC40MzgzNjksIDAuNTg1MjUyLCAwLjY4NzkzOCwgMC44NTczMiwgMS4wMDAzOSwgMS4yMTI2IiwgXAotICAgICAgICAgICIwLjMwNzk1MiwgMC40NTM4NywgMC42MDA3NzUsIDAuNzAzMjM5LCAwLjg3MjgsIDEuMDE1ODgsIDEuMjI4MDkiLCBcCi0gICAgICAgICAgIjAuMzIzMjIxLCAwLjQ2OTExNCwgMC42MTU5OTIsIDAuNzE4ODg5LCAwLjg4ODA4NCwgMS4wMzE4MiwgMS4yNDMzNCIsIFwKLSAgICAgICAgICAiMC4zMzgwNDgsIDAuNDgzOTQ4LCAwLjYzMDgwOSwgMC43MzM2OTcsIDAuOTAyOTA0LCAxLjA0NjM5LCAxLjI1ODE1IiwgXAotICAgICAgICAgICIwLjM2MjMzNCwgMC41MDgyNjMsIDAuNjU1MTczLCAwLjc1OTgwOCwgMC45MjcyMDIsIDEuMDcwMjgsIDEuMjgyNDkiLCBcCi0gICAgICAgICAgIjAuMzgyNTgsIDAuNTI4NDUyLCAwLjY3NTM1OCwgMC43NzgwMDMsIDAuOTQ3MzgzLCAxLjA5MDQ2LCAxLjMwMjY2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU1NDAzLCAwLjM0NDI4NiwgMC42MzQ4NjEsIDAuODM5NzQyLCAxLjE3MjA5LCAxLjQ1OTcsIDEuODgxMDMiLCBcCi0gICAgICAgICAgIjAuMDU1Mzg5LCAwLjM0NDUyOSwgMC42MzQzMDIsIDAuODQyNjA3LCAxLjE3MzM4LCAxLjQ2MTg3LCAxLjg3NTg1IiwgXAotICAgICAgICAgICIwLjA1NTA5MiwgMC4zNDQ0NzMsIDAuNjMzNzgsIDAuODM5NDIyLCAxLjE3MzQzLCAxLjQ2NTU1LCAxLjg3NTU2IiwgXAotICAgICAgICAgICIwLjA1NTM2LCAwLjM0NDU4NSwgMC42MzI4MDQsIDAuODM5NzQ4LCAxLjE3MzEsIDEuNDY0MDksIDEuODc1NjQiLCBcCi0gICAgICAgICAgIjAuMDU1MzgsIDAuMzQ0NTU0LCAwLjYzMzk3NiwgMC44MzkxNzgsIDEuMTczODMsIDEuNDYyOTcsIDEuODc1NTMiLCBcCi0gICAgICAgICAgIjAuMDU1MzQ1LCAwLjM0NDUxNSwgMC42MzQ1NTUsIDAuODQzMTMyLCAxLjE3MzMzLCAxLjQ2MTIsIDEuODc1NjMiLCBcCi0gICAgICAgICAgIjAuMDU1MzY5LCAwLjM0NDQ3NCwgMC42MzQ2MjQsIDAuODQyNDA1LCAxLjE3MzQxLCAxLjQ2NTMyLCAxLjg3NTQxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDYxNjYsIDAuMDA2MjgyLCAwLjAwNjI5OCwgMC4wMDYzMDIsIDAuMDA2MzA2LCAwLjAwNjMwOCwgMC4wMDYzMSIsIFwKLSAgICAgICAgICAiMC4wMDYxNjYsIDAuMDA2MjgsIDAuMDA2Mjk1LCAwLjAwNjMsIDAuMDA2MzA0LCAwLjAwNjMwNiwgMC4wMDYzMDgiLCBcCi0gICAgICAgICAgIjAuMDA2MTYsIDAuMDA2Mjc1LCAwLjAwNjI5MSwgMC4wMDYyOTQsIDAuMDA2MywgMC4wMDYzMDMsIDAuMDA2MzAzIiwgXAotICAgICAgICAgICIwLjAwNjE1NiwgMC4wMDYyNzIsIDAuMDA2Mjg4LCAwLjAwNjI5LCAwLjAwNjI5NywgMC4wMDYyOTksIDAuMDA2Mjk5IiwgXAotICAgICAgICAgICIwLjAwNjE1NywgMC4wMDYyNzEsIDAuMDA2Mjg2LCAwLjAwNjI5MSwgMC4wMDYyOTUsIDAuMDA2Mjk3LCAwLjAwNjI5NyIsIFwKLSAgICAgICAgICAiMC4wMDYxNTQsIDAuMDA2MjY5LCAwLjAwNjI4NCwgMC4wMDYyODksIDAuMDA2MjkzLCAwLjAwNjI5NSwgMC4wMDYyOTciLCBcCi0gICAgICAgICAgIjAuMDA2MTUzLCAwLjAwNjI2NywgMC4wMDYyODIsIDAuMDA2Mjg3LCAwLjAwNjI5MSwgMC4wMDYyOTIsIDAuMDA2Mjk1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDY0NzksIDAuMDA2NTkyLCAwLjAwNjYwMywgMC4wMDY2MDksIDAuMDA2NjEyLCAwLjAwNjYxNCwgMC4wMDY2MTUiLCBcCi0gICAgICAgICAgIjAuMDA2NDc2LCAwLjAwNjU4NywgMC4wMDY2LCAwLjAwNjYwNCwgMC4wMDY2MDcsIDAuMDA2NjA5LCAwLjAwNjYxMSIsIFwKLSAgICAgICAgICAiMC4wMDY0NzUsIDAuMDA2NTg1LCAwLjAwNjU5OSwgMC4wMDY2MDYsIDAuMDA2NiwgMC4wMDY2MDgsIDAuMDA2NjA2IiwgXAotICAgICAgICAgICIwLjAwNjQ3MywgMC4wMDY1ODQsIDAuMDA2NTk1LCAwLjAwNjYwMSwgMC4wMDY2MDIsIDAuMDA2NjA4LCAwLjAwNjYwOCIsIFwKLSAgICAgICAgICAiMC4wMDY0NzEsIDAuMDA2NTgyLCAwLjAwNjU5NSwgMC4wMDY1OTksIDAuMDA2NjAyLCAwLjAwNjYwNCwgMC4wMDY2MDUiLCBcCi0gICAgICAgICAgIjAuMDA2NDY4LCAwLjAwNjU4LCAwLjAwNjU5MywgMC4wMDY1OTksIDAuMDA2NTk3LCAwLjAwNjYwMSwgMC4wMDY2MDMiLCBcCi0gICAgICAgICAgIjAuMDA2NDY5LCAwLjAwNjU3OSwgMC4wMDY1ODksIDAuMDA2NTk1LCAwLjAwNjU5NiwgMC4wMDY2MDIsIDAuMDA2NjAyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDY5MzgsIDAuMDA3MDUyLCAwLjAwNzA2MywgMC4wMDcwNjUsIDAuMDA3MDY1LCAwLjAwNzA2NSwgMC4wMDcwNjQiLCBcCi0gICAgICAgICAgIjAuMDA2OTM2LCAwLjAwNzA0OCwgMC4wMDcwNTgsIDAuMDA3MDYzLCAwLjAwNzA2MSwgMC4wMDcwNjEsIDAuMDA3MDU4IiwgXAotICAgICAgICAgICIwLjAwNjkyNSwgMC4wMDcwMzksIDAuMDA3MDUsIDAuMDA3MDUxLCAwLjAwNzA1MiwgMC4wMDcwNTIsIDAuMDA3MDUxIiwgXAotICAgICAgICAgICIwLjAwNjkyMywgMC4wMDcwMzYsIDAuMDA3MDQ3LCAwLjAwNzA0OSwgMC4wMDcwNSwgMC4wMDcwNTEsIDAuMDA3MDQ5IiwgXAotICAgICAgICAgICIwLjAwNjkxOCwgMC4wMDcwMzIsIDAuMDA3MDQzLCAwLjAwNzA0NSwgMC4wMDcwNDYsIDAuMDA3MDQ2LCAwLjAwNzA0NSIsIFwKLSAgICAgICAgICAiMC4wMDY5MjMsIDAuMDA3MDM1LCAwLjAwNzA0NCwgMC4wMDcwNDgsIDAuMDA3MDUsIDAuMDA3MDUxLCAwLjAwNzA0OCIsIFwKLSAgICAgICAgICAiMC4wMDY5MTUsIDAuMDA3MDI5LCAwLjAwNzA0LCAwLjAwNzA0MiwgMC4wMDcwNDQsIDAuMDA3MDQzLCAwLjAwNzA0MiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA3MDQ4LCAwLjAwNzE1OCwgMC4wMDcxNjksIDAuMDA3MTc1LCAwLjAwNzE3OCwgMC4wMDcxNzksIDAuMDA3MTgxIiwgXAotICAgICAgICAgICIwLjAwNzA0LCAwLjAwNzE1LCAwLjAwNzE2MywgMC4wMDcxNjcsIDAuMDA3MTcxLCAwLjAwNzE3MiwgMC4wMDcxNzMiLCBcCi0gICAgICAgICAgIjAuMDA3MDM1LCAwLjAwNzE0NSwgMC4wMDcxNTgsIDAuMDA3MTYyLCAwLjAwNzE2NSwgMC4wMDcxNjcsIDAuMDA3MTY4IiwgXAotICAgICAgICAgICIwLjAwNzAzLCAwLjAwNzE0LCAwLjAwNzE1NSwgMC4wMDcxNTcsIDAuMDA3MTYsIDAuMDA3MTYsIDAuMDA3MTYzIiwgXAotICAgICAgICAgICIwLjAwNzAyMywgMC4wMDcxMzMsIDAuMDA3MTQ3LCAwLjAwNzE1MiwgMC4wMDcxNTUsIDAuMDA3MTU3LCAwLjAwNzE1NyIsIFwKLSAgICAgICAgICAiMC4wMDcwMjEsIDAuMDA3MTMxLCAwLjAwNzE0NCwgMC4wMDcxNDksIDAuMDA3MTUxLCAwLjAwNzE1MiwgMC4wMDcxNTQiLCBcCi0gICAgICAgICAgIjAuMDA3MDIsIDAuMDA3MTMsIDAuMDA3MTQyLCAwLjAwNzE0NywgMC4wMDcxNSwgMC4wMDcxNTEsIDAuMDA3MTUzIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihRTikgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjUyMzUzNTsKLSAgICBmdW5jdGlvbiA6ICJOMCI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMTI4MjcsIDAuMzQ0MzUsIDAuNDcwODU3LCAwLjU2MTIxOCwgMC43MDU3NzQsIDAuODMyMjUsIDEuMDEyOTciLCBcCi0gICAgICAgICAgIjAuMjI0MzQsIDAuMzU1NzYzLCAwLjQ4MjI3NSwgMC41NzI2MzcsIDAuNzE3MDM5LCAwLjg0Mzc1NCwgMS4wMjQxMSIsIFwKLSAgICAgICAgICAiMC4yMzc0MSwgMC4zNjg4MzgsIDAuNDk1MzUxLCAwLjU4NTYxNiwgMC43MzAyMzksIDAuODU2ODAxLCAxLjAzNzQ0IiwgXAotICAgICAgICAgICIwLjI0OTkzLCAwLjM4MTM2MywgMC41MDc4NzcsIDAuNTk4MjQsIDAuNzQyNzY0LCAwLjg2OTMyNywgMS4wNDk5NyIsIFwKLSAgICAgICAgICAiMC4yNjIyNTIsIDAuMzkzNjYsIDAuNTIwMTc0LCAwLjYxMDUzNiwgMC43NTUwNTYsIDAuODgxMzcsIDEuMDYyMjciLCBcCi0gICAgICAgICAgIjAuMjgxNzgxLCAwLjQxMzE3NiwgMC41Mzk2ODksIDAuNjMwMDI1LCAwLjc3NDU3NSwgMC45MDEyMjcsIDEuMDgxNzgiLCBcCi0gICAgICAgICAgIjAuMjk4NzE0LCAwLjQzMDExMSwgMC41NTY2MiwgMC42NDY5ODIsIDAuNzkxNTAzLCAwLjkxNzk5NCwgMS4wOTg3MiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2NDUyNiwgMC4zMDk4OTQsIDAuNTY1NDI5LCAwLjc0NzM3NywgMS4wNDM5OCwgMS4zMDE5NSwgMS42NzA2NSIsIFwKLSAgICAgICAgICAiMC4wNjQ0NjIsIDAuMzA5ODI3LCAwLjU2NTQzLCAwLjc0NjQzMiwgMS4wNDIsIDEuMjk4NTcsIDEuNjY3MTQiLCBcCi0gICAgICAgICAgIjAuMDY0NTA4LCAwLjMwOTgxMywgMC41NjM2NDIsIDAuNzQ2MjYzLCAxLjA0Mzg1LCAxLjI5OTA4LCAxLjY3MDU2IiwgXAotICAgICAgICAgICIwLjA2NDM3NCwgMC4zMDk4MTMsIDAuNTY1NDA3LCAwLjc0OTI5NCwgMS4wNDM4NCwgMS4yOTkwNSwgMS42NzA1NiIsIFwKLSAgICAgICAgICAiMC4wNjQ0MzcsIDAuMzA5ODE5LCAwLjU2NTQyMiwgMC43NDczNzUsIDEuMDQzODMsIDEuMjk5NTEsIDEuNjcwNTkiLCBcCi0gICAgICAgICAgIjAuMDY0NDE5LCAwLjMwOTgxNSwgMC41NjU0MDksIDAuNzQ4ODE0LCAxLjA0Mzg0LCAxLjI5ODUxLCAxLjY3MDU3IiwgXAotICAgICAgICAgICIwLjA2NDMzNSwgMC4zMDk4NDksIDAuNTY1NDE4LCAwLjc0NzMwMiwgMS4wNDM4MywgMS4zMDE1MSwgMS42NzA2Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjI0MzQxLCAwLjM3MzgzNywgMC41MTk1MzUsIDAuNjIzNzA3LCAwLjc5MDI1OSwgMC45MzYwMiwgMS4xNDQwNSIsIFwKLSAgICAgICAgICAiMC4yMzU5ODgsIDAuMzg1NDc4LCAwLjUzMTI0LCAwLjYzNTM2MywgMC44MDE5MjUsIDAuOTQ3NjIyLCAxLjE1NTY5IiwgXAotICAgICAgICAgICIwLjI0OTY5MSwgMC4zOTkxOTQsIDAuNTQ0OTA3LCAwLjY0OTA2NSwgMC44MTU2MTQsIDAuOTYxMzc3LCAxLjE2OTQxIiwgXAotICAgICAgICAgICIwLjI2MzMyNCwgMC40MTI4MjEsIDAuNTU4NTU0LCAwLjY2MjY5NCwgMC44MjkyNTcsIDAuOTc0OTg1LCAxLjE4MzAyIiwgXAotICAgICAgICAgICIwLjI3NzEwOCwgMC40MjY2LCAwLjU3MjM2MywgMC42NzY0NzgsIDAuODQzMDM4LCAwLjk4ODc0OCwgMS4xOTY4IiwgXAotICAgICAgICAgICIwLjI5ODkxMywgMC40NDgzOTQsIDAuNTk0MTQ4LCAwLjY5ODI2NSwgMC44NjQ4MjgsIDEuMDEwNTUsIDEuMjE4NTkiLCBcCi0gICAgICAgICAgIjAuMzE4MDYxLCAwLjQ2NzU1LCAwLjYxMzMyNywgMC43MTc0MzEsIDAuODgzOTg3LCAxLjAyOTcsIDEuMjM3NzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjY3MDcsIDAuMzQ2MzkzLCAwLjYzMzY3OSwgMC44NDE4NDgsIDEuMTcyMjQsIDEuNDYxNzEsIDEuODc3NjgiLCBcCi0gICAgICAgICAgIjAuMDY2NzIxLCAwLjM0NjM3MSwgMC42MzQyOTUsIDAuODQxOTI5LCAxLjE3MTkzLCAxLjQ2MTM1LCAxLjg3NzYzIiwgXAotICAgICAgICAgICIwLjA2NjkwMiwgMC4zNDY0MDgsIDAuNjM0MDM1LCAwLjg0MTg1NywgMS4xNzIyNCwgMS40NjE3MSwgMS44Nzc2OCIsIFwKLSAgICAgICAgICAiMC4wNjY4NTksIDAuMzQ2MTgyLCAwLjYzNDYxNywgMC44NDE4NjEsIDEuMTcyMDEsIDEuNDYxNTUsIDEuODc3NjEiLCBcCi0gICAgICAgICAgIjAuMDY2NzMsIDAuMzQ2MzkzLCAwLjYzNDc5NiwgMC44NDE5MDIsIDEuMTcxNzQsIDEuNDYxNDEsIDEuODc3NjMiLCBcCi0gICAgICAgICAgIjAuMDY2ODM0LCAwLjM0NjQwNywgMC42MzQwODksIDAuODQxODYxLCAxLjE3MTYxLCAxLjQ2MTUyLCAxLjg3NzYiLCBcCi0gICAgICAgICAgIjAuMDY2NzIzLCAwLjM0NjM3LCAwLjYzNDEyMywgMC44NDE5MiwgMS4xNzE3NywgMS40NjE0MiwgMS44Nzc2NCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJHIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5vbl91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcmlzaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjU5MjQ0LCAwLjM5MDY4NywgMC41MTcxOTUsIDAuNjA3NTc2LCAwLjc1MjEyMiwgMC44Nzg2MzgsIDEuMDU5MDQiLCBcCi0gICAgICAgICAgIjAuMjcwNzkyLCAwLjQwMjIzNywgMC41Mjg3NDksIDAuNjE5MTUzLCAwLjc2MzYzNiwgMC44OTAyNzYsIDEuMDcwODUiLCBcCi0gICAgICAgICAgIjAuMjg2MjY2LCAwLjQxNzcwNywgMC41NDQyMiwgMC42MzQ2MzIsIDAuNzc5MTA5LCAwLjkwNTc1MiwgMS4wODYzMSIsIFwKLSAgICAgICAgICAiMC4zMDE1NDUsIDAuNDMyOTc5LCAwLjU1OTQ5MSwgMC42NDk4NjcsIDAuNzk0NDAzLCAwLjkyMDg4NCwgMS4xMDE2IiwgXAotICAgICAgICAgICIwLjMxNjM4MiwgMC40NDc4MzUsIDAuNTc0MzQ2LCAwLjY2NDcxOSwgMC44MDkyNTMsIDAuOTM1NzQsIDEuMTE2NDUiLCBcCi0gICAgICAgICAgIjAuMzQwNjY0LCAwLjQ3MjExNiwgMC41OTg2MjksIDAuNjg5MDI2LCAwLjgzMzUxNywgMC45NjAxNTcsIDEuMTQwNzIiLCBcCi0gICAgICAgICAgIjAuMzYwODQ5LCAwLjQ5MjI5MiwgMC42MTg4MDUsIDAuNzA5MjA5LCAwLjg1MzY5MywgMC45ODAzMzcsIDEuMTYwOSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2NDM5MiwgMC4zMDk4MjQsIDAuNTY1NCwgMC43NDc3MTEsIDEuMDQyMTIsIDEuMjk3NzYsIDEuNjY0MTgiLCBcCi0gICAgICAgICAgIjAuMDY0NDI3LCAwLjMwOTgwNSwgMC41NjUzODUsIDAuNzQ3MzU1LCAxLjA0MzgzLCAxLjI5ODc2LCAxLjY3MDU4IiwgXAotICAgICAgICAgICIwLjA2NDQxNSwgMC4zMDk4MTEsIDAuNTY1NDA4LCAwLjc0NzA5MywgMS4wNDM4NCwgMS4yOTg2NSwgMS42NzA1NSIsIFwKLSAgICAgICAgICAiMC4wNjQzODcsIDAuMzA5NzkzLCAwLjU2NTM3LCAwLjc0NzU0NiwgMS4wNDM5MSwgMS4zMDE2NSwgMS42NzA1OCIsIFwKLSAgICAgICAgICAiMC4wNjQ0OTgsIDAuMzA5OCwgMC41NjUzNjcsIDAuNzQ3NTYzLCAxLjA0Mzg5LCAxLjI5OTUxLCAxLjY3MDU3IiwgXAotICAgICAgICAgICIwLjA2NDQwNCwgMC4zMDk3OTYsIDAuNTY1Mzk0LCAwLjc0OTQyLCAxLjA0MzgzLCAxLjI5ODczLCAxLjY3MDU0IiwgXAotICAgICAgICAgICIwLjA2NDQyNiwgMC4zMDk4MTEsIDAuNTY1NDAxLCAwLjc0NzM1NSwgMS4wNDM4NCwgMS4yOTg2NCwgMS42NzA1NSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMwMzg0NywgMC40NTMzNDQsIDAuNTk5MTA2LCAwLjcwMzIyNSwgMC44Njk4LCAxLjAxNTQyLCAxLjIyMzUiLCBcCi0gICAgICAgICAgIjAuMzE1NDYsIDAuNDY0OTUsIDAuNjEwNzExLCAwLjcxNDc4NywgMC44ODE0MDYsIDEuMDI3MDQsIDEuMjM1MTMiLCBcCi0gICAgICAgICAgIjAuMzMwODYsIDAuNDgwMzU3LCAwLjYyNjExNywgMC43MzAyMjQsIDAuODk2Nzc2LCAxLjA0MjUzLCAxLjI1MDU2IiwgXAotICAgICAgICAgICIwLjM0NjMxMiwgMC40OTU4MDksIDAuNjQxNTcyLCAwLjc0NTY5MSwgMC45MTIyNjMsIDEuMDU3ODksIDEuMjY1OTciLCBcCi0gICAgICAgICAgIjAuMzYxMzUzLCAwLjUxMDg1MSwgMC42NTY2MTMsIDAuNzYwNzc2LCAwLjkyNzMwOSwgMS4wNzMwMSwgMS4yODEwNiIsIFwKLSAgICAgICAgICAiMC4zODU3OTUsIDAuNTM1Mjg0LCAwLjY4MTA0NSwgMC43ODUyMTIsIDAuOTUxNzQsIDEuMDk3MzksIDEuMzA1NDgiLCBcCi0gICAgICAgICAgIjAuNDA2MDczLCAwLjU1NTU4OSwgMC43MDEzMzMsIDAuODA1NDQsIDAuOTcxOTkzLCAxLjExNzc1LCAxLjMyNTc4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY2NzAxLCAwLjM0NjM5MywgMC42MzQyNjYsIDAuODQxODgxLCAxLjE3MjA3LCAxLjQ2MjIzLCAxLjg3NzQ3IiwgXAotICAgICAgICAgICIwLjA2NjcxOSwgMC4zNDYzOTYsIDAuNjM0MjY2LCAwLjg0MTY0MSwgMS4xNzIwNiwgMS40NjIxNSwgMS44NzY0IiwgXAotICAgICAgICAgICIwLjA2NjcwMiwgMC4zNDYzNTcsIDAuNjM0MjQ5LCAwLjg0MTgxNSwgMS4xNzIyNSwgMS40NjE2NiwgMS44Nzc2OSIsIFwKLSAgICAgICAgICAiMC4wNjY2OTUsIDAuMzQ2MzkyLCAwLjYzNDI2NSwgMC44NDE4ODMsIDEuMTcyMDYsIDEuNDYyMjYsIDEuODc3NDkiLCBcCi0gICAgICAgICAgIjAuMDY2NzAzLCAwLjM0NjM5MSwgMC42MzQyNjgsIDAuODQwMzg3LCAxLjE3MjA3LCAxLjQ2MTUzLCAxLjg3NjIxIiwgXAotICAgICAgICAgICIwLjA2NjcyNCwgMC4zNDYzOTQsIDAuNjM0MjY3LCAwLjg0MDY5MywgMS4xNzIwNiwgMS40NjEzMSwgMS44NzYyMyIsIFwKLSAgICAgICAgICAiMC4wNjY2NzcsIDAuMzQ2NDY5LCAwLjYzNDI4OCwgMC44NDE4MzksIDEuMTcyMjYsIDEuNDYxNjcsIDEuODc3NjgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJEIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjQ3OSwgMC4wMDY1OTIsIDAuMDA2NjAzLCAwLjAwNjYwOSwgMC4wMDY2MTIsIDAuMDA2NjE0LCAwLjAwNjYxNSIsIFwKLSAgICAgICAgICAiMC4wMDY0NzYsIDAuMDA2NTg3LCAwLjAwNjYsIDAuMDA2NjA0LCAwLjAwNjYwNywgMC4wMDY2MDksIDAuMDA2NjExIiwgXAotICAgICAgICAgICIwLjAwNjQ3NSwgMC4wMDY1ODUsIDAuMDA2NTk5LCAwLjAwNjYwNiwgMC4wMDY2LCAwLjAwNjYwOCwgMC4wMDY2MDYiLCBcCi0gICAgICAgICAgIjAuMDA2NDczLCAwLjAwNjU4NCwgMC4wMDY1OTUsIDAuMDA2NjAxLCAwLjAwNjYwMiwgMC4wMDY2MDgsIDAuMDA2NjA4IiwgXAotICAgICAgICAgICIwLjAwNjQ3MSwgMC4wMDY1ODIsIDAuMDA2NTk1LCAwLjAwNjU5OSwgMC4wMDY2MDIsIDAuMDA2NjA0LCAwLjAwNjYwNSIsIFwKLSAgICAgICAgICAiMC4wMDY0NjgsIDAuMDA2NTgsIDAuMDA2NTkzLCAwLjAwNjU5OSwgMC4wMDY1OTcsIDAuMDA2NjAxLCAwLjAwNjYwMyIsIFwKLSAgICAgICAgICAiMC4wMDY0NjksIDAuMDA2NTc5LCAwLjAwNjU4OSwgMC4wMDY1OTUsIDAuMDA2NTk2LCAwLjAwNjYwMiwgMC4wMDY2MDIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjE2NiwgMC4wMDYyODIsIDAuMDA2Mjk4LCAwLjAwNjMwMiwgMC4wMDYzMDYsIDAuMDA2MzA4LCAwLjAwNjMxIiwgXAotICAgICAgICAgICIwLjAwNjE2NiwgMC4wMDYyOCwgMC4wMDYyOTUsIDAuMDA2MywgMC4wMDYzMDQsIDAuMDA2MzA2LCAwLjAwNjMwOCIsIFwKLSAgICAgICAgICAiMC4wMDYxNiwgMC4wMDYyNzUsIDAuMDA2MjkxLCAwLjAwNjI5NCwgMC4wMDYzLCAwLjAwNjMwMywgMC4wMDYzMDMiLCBcCi0gICAgICAgICAgIjAuMDA2MTU2LCAwLjAwNjI3MiwgMC4wMDYyODgsIDAuMDA2MjksIDAuMDA2Mjk3LCAwLjAwNjI5OSwgMC4wMDYyOTkiLCBcCi0gICAgICAgICAgIjAuMDA2MTU3LCAwLjAwNjI3MSwgMC4wMDYyODYsIDAuMDA2MjkxLCAwLjAwNjI5NSwgMC4wMDYyOTcsIDAuMDA2Mjk3IiwgXAotICAgICAgICAgICIwLjAwNjE1NCwgMC4wMDYyNjksIDAuMDA2Mjg0LCAwLjAwNjI4OSwgMC4wMDYyOTMsIDAuMDA2Mjk1LCAwLjAwNjI5NyIsIFwKLSAgICAgICAgICAiMC4wMDYxNTMsIDAuMDA2MjY3LCAwLjAwNjI4MiwgMC4wMDYyODcsIDAuMDA2MjkxLCAwLjAwNjI5MiwgMC4wMDYyOTUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJHIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNzA0OCwgMC4wMDcxNTgsIDAuMDA3MTY5LCAwLjAwNzE3NSwgMC4wMDcxNzgsIDAuMDA3MTc5LCAwLjAwNzE4MSIsIFwKLSAgICAgICAgICAiMC4wMDcwNCwgMC4wMDcxNSwgMC4wMDcxNjMsIDAuMDA3MTY3LCAwLjAwNzE3MSwgMC4wMDcxNzIsIDAuMDA3MTczIiwgXAotICAgICAgICAgICIwLjAwNzAzNSwgMC4wMDcxNDUsIDAuMDA3MTU4LCAwLjAwNzE2MiwgMC4wMDcxNjUsIDAuMDA3MTY3LCAwLjAwNzE2OCIsIFwKLSAgICAgICAgICAiMC4wMDcwMywgMC4wMDcxNCwgMC4wMDcxNTUsIDAuMDA3MTU3LCAwLjAwNzE2LCAwLjAwNzE2LCAwLjAwNzE2MyIsIFwKLSAgICAgICAgICAiMC4wMDcwMjMsIDAuMDA3MTMzLCAwLjAwNzE0NywgMC4wMDcxNTIsIDAuMDA3MTU1LCAwLjAwNzE1NywgMC4wMDcxNTciLCBcCi0gICAgICAgICAgIjAuMDA3MDIxLCAwLjAwNzEzMSwgMC4wMDcxNDQsIDAuMDA3MTQ5LCAwLjAwNzE1MSwgMC4wMDcxNTIsIDAuMDA3MTU0IiwgXAotICAgICAgICAgICIwLjAwNzAyLCAwLjAwNzEzLCAwLjAwNzE0MiwgMC4wMDcxNDcsIDAuMDA3MTUsIDAuMDA3MTUxLCAwLjAwNzE1MyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2OTM4LCAwLjAwNzA1MiwgMC4wMDcwNjMsIDAuMDA3MDY1LCAwLjAwNzA2NSwgMC4wMDcwNjUsIDAuMDA3MDY0IiwgXAotICAgICAgICAgICIwLjAwNjkzNiwgMC4wMDcwNDgsIDAuMDA3MDU4LCAwLjAwNzA2MywgMC4wMDcwNjEsIDAuMDA3MDYxLCAwLjAwNzA1OCIsIFwKLSAgICAgICAgICAiMC4wMDY5MjUsIDAuMDA3MDM5LCAwLjAwNzA1LCAwLjAwNzA1MSwgMC4wMDcwNTIsIDAuMDA3MDUyLCAwLjAwNzA1MSIsIFwKLSAgICAgICAgICAiMC4wMDY5MjMsIDAuMDA3MDM2LCAwLjAwNzA0NywgMC4wMDcwNDksIDAuMDA3MDUsIDAuMDA3MDUxLCAwLjAwNzA0OSIsIFwKLSAgICAgICAgICAiMC4wMDY5MTgsIDAuMDA3MDMyLCAwLjAwNzA0MywgMC4wMDcwNDUsIDAuMDA3MDQ2LCAwLjAwNzA0NiwgMC4wMDcwNDUiLCBcCi0gICAgICAgICAgIjAuMDA2OTIzLCAwLjAwNzAzNSwgMC4wMDcwNDQsIDAuMDA3MDQ4LCAwLjAwNzA1LCAwLjAwNzA1MSwgMC4wMDcwNDgiLCBcCi0gICAgICAgICAgIjAuMDA2OTE1LCAwLjAwNzAyOSwgMC4wMDcwNCwgMC4wMDcwNDIsIDAuMDA3MDQ0LCAwLjAwNzA0MywgMC4wMDcwNDIiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBBRERGSFgxICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKEFEREZIWDEpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4yNjExODE7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMjkzMjE5OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMjkyNjExOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMjkzMjE5OwotICB9Ci0gIHBpbihCKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDI4MDgzODsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDI3OTQyNTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDI4MDgzODsKLSAgfQotICBwaW4oQ0kpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMjE2ODA2OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMjE1NDg3OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMjE2ODA2OwotICB9Ci0gIHBpbihDTykgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjEzMTA4MTsKLSAgICBmdW5jdGlvbiA6ICIoKChBIEIpKyhCIENJKSkrKENJIEEpKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjMwMTEsIDAuMjc1NDQ4LCAwLjUyMjQ4OCwgMC43Mzg2NDcsIDEuMDI4ODYsIDEuNjA3MzgsIDEuOTY2MjMiLCBcCi0gICAgICAgICAgIjAuMjQxNDg4LCAwLjI4Njg0MiwgMC41MzQwMDQsIDAuNzUwMTUsIDEuMDQxNjMsIDEuNjE1OTUsIDEuOTc4MDIiLCBcCi0gICAgICAgICAgIjAuMjU0OTYxLCAwLjMwMDMxMSwgMC41NDc0NzUsIDAuNzYzNTk0LCAxLjA1MzI0LCAxLjYzMjEyLCAxLjk5MTI0IiwgXAotICAgICAgICAgICIwLjI2ODcxMywgMC4zMTQwMjEsIDAuNTYxMDE2LCAwLjc3NzY4OSwgMS4wNjg5OCwgMS42NDQyNSwgMi4wMDYyNSIsIFwKLSAgICAgICAgICAiMC4yODIzOTksIDAuMzI3NjksIDAuNTc0NTU3LCAwLjc5MDQ3MSwgMS4wODAxOSwgMS42NTY5NCwgMi4wMTgyOSIsIFwKLSAgICAgICAgICAiMC4zMDQxMjUsIDAuMzQ5NDE3LCAwLjU5NjMxNSwgMC44MTI1MTMsIDEuMTA0MDcsIDEuNjc5NTMsIDIuMDM4NjgiLCBcCi0gICAgICAgICAgIjAuMzIzMDg4LCAwLjM2ODM3OSwgMC42MTQ4MTgsIDAuODMwOTU1LCAxLjEyMDcyLCAxLjY5ODU2LCAyLjA1ODYiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTc5MDM3LCAwLjI2NDI0MiwgMC43NjA3MDksIDEuMjAzNTEsIDEuNzkxMzksIDIuOTcxNDMsIDMuNzE2MjMiLCBcCi0gICAgICAgICAgIjAuMTc4OTE4LCAwLjI2Mzk5MSwgMC43NTkxNCwgMS4yMDMxNiwgMS43OTA5NywgMi45Njk0MywgMy43MDc2MiIsIFwKLSAgICAgICAgICAiMC4xNzg4NTIsIDAuMjY0MjI3LCAwLjc1ODQyMiwgMS4yMDMyOCwgMS43ODk2NCwgMi45NzAzNiwgMy43MDgwOCIsIFwKLSAgICAgICAgICAiMC4xNzkyNjEsIDAuMjY0MTY0LCAwLjc2MDMyOCwgMS4xOTM4OCwgMS43OTA3NiwgMi45Njk5NywgMy43MDgzNiIsIFwKLSAgICAgICAgICAiMC4xNzg5MjEsIDAuMjYzODI0LCAwLjc1Njc0NCwgMS4yMDMyNSwgMS43OTA4OCwgMi45NzY4NSwgMy43MDgzNCIsIFwKLSAgICAgICAgICAiMC4xNzk2ODgsIDAuMjY0MDQ5LCAwLjc1OTIyMiwgMS4yMDMxNSwgMS43OTE1NywgMi45NzY2NSwgMy43MDgiLCBcCi0gICAgICAgICAgIjAuMTc4MywgMC4yNjQxNSwgMC43NTg5OTYsIDEuMjAzMTIsIDEuNzg4ODMsIDIuOTc5MjQsIDMuNzA4NDgiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjI5NTgyLCAwLjI4MDgzNCwgMC41NjIzMSwgMC44MDg5ODQsIDEuMTQwMDQsIDEuODAxMTgsIDIuMjE0NDQiLCBcCi0gICAgICAgICAgIjAuMjQxMjc2LCAwLjI5MjU2MSwgMC41NzM4MjUsIDAuODIwNTAxLCAxLjE1MDkyLCAxLjgxMzEsIDIuMjI1NzIiLCBcCi0gICAgICAgICAgIjAuMjU1NTEsIDAuMzA2NzYyLCAwLjU4ODE5LCAwLjgzNDc3NiwgMS4xNjQ0NCwgMS44MjUyNiwgMi4yNDA0OCIsIFwKLSAgICAgICAgICAiMC4yNjg3OTQsIDAuMzIwMDU0LCAwLjYwMDk0NiwgMC44NDc5NiwgMS4xNzc0OCwgMS44MzgwNSwgMi4yNTExMSIsIFwKLSAgICAgICAgICAiMC4yODE2NTksIDAuMzMyOTE2LCAwLjYxNDM4NSwgMC44NjA5NjMsIDEuMTkyMDcsIDEuODUwMzcsIDIuMjYzNSIsIFwKLSAgICAgICAgICAiMC4zMDE2NjYsIDAuMzUyOTY1LCAwLjYzNDQ2LCAwLjg4MTE1MywgMS4yMTAzMywgMS44NzAwMSwgMi4yODMzNyIsIFwKLSAgICAgICAgICAiMC4zMTg4NjcsIDAuMzcwMTM3LCAwLjY1MTA4NiwgMC44OTgwNiwgMS4yMjc2NCwgMS44ODY5OSwgMi4zMDM1OCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xOTU1MDMsIDAuMjkwODI1LCAwLjgzNzUwMiwgMS4zMjcwOCwgMS45ODIwMywgMy4yOTE3OCwgNC4xMTA1NSIsIFwKLSAgICAgICAgICAiMC4xOTU2ODQsIDAuMjkwODE5LCAwLjgzNzc0MSwgMS4zMjcwNCwgMS45ODE5OSwgMy4yOTE3MywgNC4xMTA2NCIsIFwKLSAgICAgICAgICAiMC4xOTU1MDYsIDAuMjkwNjIxLCAwLjgzNjU3MywgMS4zMjcxNiwgMS45ODA0NiwgMy4yOTIyMiwgNC4xMTAzIiwgXAotICAgICAgICAgICIwLjE5NTQxMiwgMC4yOTA4NTQsIDAuODM3NDA1LCAxLjMyNjQsIDEuOTgyMSwgMy4yOTE2NiwgNC4xMTA4IiwgXAotICAgICAgICAgICIwLjE5NTQzLCAwLjI5MDY0NywgMC44Mzc3MjMsIDEuMzI2NDQsIDEuOTgxOTcsIDMuMjkxNzEsIDQuMTEwNjciLCBcCi0gICAgICAgICAgIjAuMTk1NTcsIDAuMjkwNzMzLCAwLjgzNzYyMSwgMS4zMjYxMSwgMS45ODE5OSwgMy4yOTE3MSwgNC4xMTAyNyIsIFwKLSAgICAgICAgICAiMC4xOTUyNzIsIDAuMjkwNzMxLCAwLjgzNjM0NiwgMS4zMjYxMiwgMS45ODIxNSwgMy4yOTE2LCA0LjExMDY2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIzMDEwOSwgMC4yNzU0MjMsIDAuNTIyMjIzLCAwLjczODc1NCwgMS4wMjk5NSwgMS42MDYzNiwgMS45NjY2OCIsIFwKLSAgICAgICAgICAiMC4yNDA0OTgsIDAuMjg1ODI5LCAwLjUzMzIwMSwgMC43NDkxODUsIDEuMDQwNDIsIDEuNjE1ODksIDEuOTc3MTIiLCBcCi0gICAgICAgICAgIjAuMjUzMjcsIDAuMjk4NjM5LCAwLjU0NTU1LCAwLjc2MTc3NCwgMS4wNTI5OCwgMS42Mjg5NywgMS45OTAzNiIsIFwKLSAgICAgICAgICAiMC4yNjYzMjMsIDAuMzExNjUzLCAwLjU1ODgwOCwgMC43NzUwMzQsIDEuMDY2NSwgMS42NDIyMiwgMi4wMDMwMyIsIFwKLSAgICAgICAgICAiMC4yNzk2ODEsIDAuMzI1MDE0LCAwLjU3MjIwMiwgMC43ODg1MDIsIDEuMDc5NzcsIDEuNjU1NzksIDIuMDE4NzgiLCBcCi0gICAgICAgICAgIjAuMzAxMDk5LCAwLjM0NjQ3NSwgMC41OTM0NDksIDAuODA5NjU5LCAxLjEwMDkzLCAxLjY3Njg3LCAyLjAzODQ1IiwgXAotICAgICAgICAgICIwLjMyMDkyNiwgMC4zNjYyNTksIDAuNjEzMzQzLCAwLjgyOTc1MywgMS4xMjExMSwgMS42OTczMiwgMi4wNTQ3NiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xODAyODIsIDAuMjYzOTcyLCAwLjc1ODEwNCwgMS4xOTM2NiwgMS43ODcxOCwgMi45NzE0NiwgMy43MDQ5IiwgXAotICAgICAgICAgICIwLjE4MDE5NCwgMC4yNjQwMzksIDAuNzYwMDQ2LCAxLjIwMjY1LCAxLjc4OTc1LCAyLjk2ODQxLCAzLjcwNzEzIiwgXAotICAgICAgICAgICIwLjE4MDUyNCwgMC4yNjQ1MTQsIDAuNzYwNDUsIDEuMTk3NjksIDEuNzg2OTEsIDIuOTY5MjMsIDMuNzA3NjciLCBcCi0gICAgICAgICAgIjAuMTgwMTgzLCAwLjI2NDE0NCwgMC43NTgyMTgsIDEuMjAyNTYsIDEuNzkwOCwgMi45NzY0MiwgMy43MDc2NyIsIFwKLSAgICAgICAgICAiMC4xODAxMzksIDAuMjY0NDczLCAwLjc1OTIzNywgMS4xOTc4MywgMS43ODk2LCAyLjk2OTg0LCAzLjY3MTIzIiwgXAotICAgICAgICAgICIwLjE3OTk0MywgMC4yNjQyMTEsIDAuNzYxMjk3LCAxLjIwMjYxLCAxLjc5MDc5LCAyLjk3NjAxLCAzLjcwODI1IiwgXAotICAgICAgICAgICIwLjE3OTkyOSwgMC4yNjQxNjIsIDAuNzU5MDk3LCAxLjIwMjYzLCAxLjc4OTk0LCAyLjk3MDE4LCAzLjY5MTM3Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIyNzc1NywgMC4yNzk2NDksIDAuNTYxNDk1LCAwLjgwNzU4MywgMS4xMzg0MywgMS43OTczOCwgMi4yMDk1NiIsIFwKLSAgICAgICAgICAiMC4yMzk0NTQsIDAuMjkxMzU0LCAwLjU3MzE1NiwgMC44MTkyODgsIDEuMTUwMTIsIDEuODA4NTUsIDIuMjIxMjQiLCBcCi0gICAgICAgICAgIjAuMjUzNDY2LCAwLjMwNTM0NywgMC41ODcyNDEsIDAuODMzMzExLCAxLjE2MzA1LCAxLjgyNTIsIDIuMjM4NTYiLCBcCi0gICAgICAgICAgIjAuMjY2NjA1LCAwLjMxODQ5NiwgMC42MDAyOSwgMC44NDY0MzIsIDEuMTc2NDcsIDEuODM1NTQsIDIuMjUxNDciLCBcCi0gICAgICAgICAgIjAuMjc5MzUxLCAwLjMzMTIyMiwgMC42MTMwOCwgMC44NTkyMDYsIDEuMTg4OTUsIDEuODUxMTEsIDIuMjY0NDQiLCBcCi0gICAgICAgICAgIjAuMjk5Mjc0LCAwLjM1MTE0OSwgMC42MzI2OTQsIDAuODc5MTQ2LCAxLjIwODgzLCAxLjg2ODk4LCAyLjI4NDM0IiwgXAotICAgICAgICAgICIwLjMxNjI2NywgMC4zNjgxNSwgMC42NDk5OTgsIDAuODk2MTA3LCAxLjIyNjk0LCAxLjg4NTk3LCAyLjI5OSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xOTk2NjksIDAuMjkyOTE1LCAwLjgzNzQyOCwgMS4zMjY5NCwgMS45ODIxLCAzLjI5MTc0LCA0LjEwNzg4IiwgXAotICAgICAgICAgICIwLjE5OTU1LCAwLjI5Mjc0NCwgMC44Mzc2NjgsIDEuMzI2NTksIDEuOTgxOTgsIDMuMjkxNzQsIDQuMTExNzkiLCBcCi0gICAgICAgICAgIjAuMTk5OTc4LCAwLjI5MzAxOSwgMC44Mzc1MjIsIDEuMzI2MzcsIDEuOTgyLCAzLjI5MTcxLCA0LjExMDI2IiwgXAotICAgICAgICAgICIwLjE5OTczNSwgMC4yOTI4OTUsIDAuODM3NCwgMS4zMjcyMywgMS45ODE5OSwgMy4yOTE2OSwgNC4xMTAyMyIsIFwKLSAgICAgICAgICAiMC4xOTk3OTcsIDAuMjkyMjk2LCAwLjgzNzU4NCwgMS4zMjY3OCwgMS45ODE5NSwgMy4yOTE3OCwgNC4xMTAyNCIsIFwKLSAgICAgICAgICAiMC4xOTk5MDYsIDAuMjkyOTk4LCAwLjgzNzAzNCwgMS4zMjY2MSwgMS45ODE5NywgMy4yOTIxMSwgNC4xMDk5OCIsIFwKLSAgICAgICAgICAiMC4yMDAxMiwgMC4yOTI4NDUsIDAuODM3MTQ1LCAxLjMyNzM2LCAxLjk3NzI2LCAzLjI5MTUzLCA0LjExMDYzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNJIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMTUzNjMsIDAuMjYwNjU3LCAwLjUwNjkzMSwgMC43MjI2ODEsIDEuMDEyNzYsIDEuNTg5NjgsIDEuOTUxNjciLCBcCi0gICAgICAgICAgIjAuMjI2MDIxLCAwLjI3MTMxNCwgMC41MTc4ODksIDAuNzM0OTIxLCAxLjAyMzQ2LCAxLjU5ODQ2LCAxLjk1OTQyIiwgXAotICAgICAgICAgICIwLjIzOTAzOCwgMC4yODQzNDIsIDAuNTMwNTg1LCAwLjc0NjMwNSwgMS4wMzYzNCwgMS42MTMxMywgMS45NzU0NiIsIFwKLSAgICAgICAgICAiMC4yNTIzMTUsIDAuMjk3NTY2LCAwLjU0Mzg4NCwgMC43NjAwNjksIDEuMDQ5NzEsIDEuNjI2MzQsIDEuOTg1MTMiLCBcCi0gICAgICAgICAgIjAuMjY1OTI2LCAwLjMxMTIyLCAwLjU1NzQyNSwgMC43NzQ0NzYsIDEuMDYzMDksIDEuNjQwMjMsIDEuOTk4OTkiLCBcCi0gICAgICAgICAgIjAuMjg3NjIzLCAwLjMzMjkxLCAwLjU3OTA4NSwgMC43OTYxNjcsIDEuMDg0MDMsIDEuNjYxOTQsIDIuMDIxODIiLCBcCi0gICAgICAgICAgIjAuMzA2NzAxLCAwLjM1MTk5NCwgMC41OTgxODIsIDAuODE1MjI3LCAxLjEwMzkxLCAxLjY4MDkzLCAyLjA0MDE4Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE4MDYzLCAwLjI2NDU0NSwgMC43NTk0NTcsIDEuMjAzMzQsIDEuNzg4NTgsIDIuOTcwODksIDMuNzE0NiIsIFwKLSAgICAgICAgICAiMC4xODA0ODYsIDAuMjYzMjczLCAwLjc1ODczNSwgMS4yMDIwNSwgMS43OTA5NiwgMi45NzY4NywgMy43MTQ5IiwgXAotICAgICAgICAgICIwLjE4MDM4NCwgMC4yNjQyMDYsIDAuNzU5Mzg2LCAxLjIwMzM2LCAxLjc3NDUzLCAyLjk2OTgyLCAzLjcxNTAyIiwgXAotICAgICAgICAgICIwLjE4MDU5MSwgMC4yNjUzNTgsIDAuNzU5MzU0LCAxLjIwMzI1LCAxLjc4ODczLCAyLjk2OTE3LCAzLjcxNDc1IiwgXAotICAgICAgICAgICIwLjE4MDUzMywgMC4yNjQxNzEsIDAuNzU5NDk1LCAxLjIwMjc4LCAxLjc3MDQ5LCAyLjk3MDg5LCAzLjcxNTU3IiwgXAotICAgICAgICAgICIwLjE4MDUwNiwgMC4yNjQ1NTYsIDAuNzU5NTM3LCAxLjIwMjYxLCAxLjc5NDE1LCAyLjk3MDg4LCAzLjY4NzMyIiwgXAotICAgICAgICAgICIwLjE4MDQ5OCwgMC4yNjM1NjMsIDAuNzU5NjAyLCAxLjIwMjE2LCAxLjc2NzU4LCAyLjk3MDI3LCAzLjcxNTM0Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIxOTM3NywgMC4yNzEzMDYsIDAuNTUzMDU0LCAwLjc5OTMxMywgMS4xMjkxNywgMS43ODg3NSwgMi4xOTgyOCIsIFwKLSAgICAgICAgICAiMC4yMjk2NTYsIDAuMjgxNjE2LCAwLjU2MzQzMywgMC44MDk1NiwgMS4xMzk0NSwgMS43OTcwNywgMi4yMTE1OSIsIFwKLSAgICAgICAgICAiMC4yNDI5MzUsIDAuMjk0ODg5LCAwLjU3NjY4OCwgMC44MjI4MzYsIDEuMTUzNjcsIDEuODEyNDEsIDIuMjI0NTciLCBcCi0gICAgICAgICAgIjAuMjU1OTQsIDAuMzA3OTAyLCAwLjU4OTcwMSwgMC44MzU4NzIsIDEuMTY1OTUsIDEuODI1MjgsIDIuMjM3NjMiLCBcCi0gICAgICAgICAgIjAuMjY5MjY0LCAwLjMyMTIzNCwgMC42MDI3NTYsIDAuODQ5MjMxLCAxLjE3OTA1LCAxLjg0MTAyLCAyLjI1NDQ4IiwgXAotICAgICAgICAgICIwLjI5MDQzNywgMC4zNDIzODIsIDAuNjIzOTk4LCAwLjg3MDQ2NSwgMS4yMDAyLCAxLjg2MjMzLCAyLjI3NTcxIiwgXAotICAgICAgICAgICIwLjMwODkwOSwgMC4zNjA4OTUsIDAuNjQyMjA2LCAwLjg4ODk2OCwgMS4yMTg3NSwgMS44ODA4MSwgMi4yOTQyMSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMDEwMTgsIDAuMjk0MDkxLCAwLjgzNzI2MywgMS4zMjUxOSwgMS45NzY3OCwgMy4yOTAzMywgNC4xMDUzMyIsIFwKLSAgICAgICAgICAiMC4yMDEwNzksIDAuMjk0MDI4LCAwLjgzNzI0LCAxLjMyNDgyLCAxLjk3Njc3LCAzLjI5MDMxLCA0LjEwNjUzIiwgXAotICAgICAgICAgICIwLjIwMDk0MywgMC4yOTQwMTEsIDAuODM3MjYzLCAxLjMyNDgsIDEuOTc4MjMsIDMuMjkwMzksIDQuMTA5NTUiLCBcCi0gICAgICAgICAgIjAuMjAwOTg0LCAwLjI5NDAwMiwgMC44MzcyNjcsIDEuMzI0NzgsIDEuOTgwMiwgMy4yOTAwNSwgNC4xMDc5OCIsIFwKLSAgICAgICAgICAiMC4yMDA1MzcsIDAuMjk0NzM5LCAwLjgzNzExMSwgMS4zMjU1LCAxLjk3OSwgMy4yODgyMSwgNC4xMDgzOCIsIFwKLSAgICAgICAgICAiMC4yMDEyMywgMC4yOTQxODgsIDAuODM2NjA1LCAxLjMyNDg1LCAxLjk3NzUyLCAzLjI5MDMsIDQuMTA4MzgiLCBcCi0gICAgICAgICAgIjAuMjAxMjYzLCAwLjI5NDQ5NSwgMC44MzcwNjYsIDEuMzI0ODYsIDEuOTc3MDUsIDMuMjkwMTEsIDQuMTA4MzkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDE4MDMsIDAuMDAxODEsIDAuMDAxODIyLCAwLjAwMTgyNCwgMC4wMDE4MjUsIDAuMDAxODI3LCAwLjAwMTgyNyIsIFwKLSAgICAgICAgICAiMC4wMDE3ODgsIDAuMDAxNzk2LCAwLjAwMTgwNywgMC4wMDE4MSwgMC4wMDE4MTEsIDAuMDAxODEyLCAwLjAwMTgxMSIsIFwKLSAgICAgICAgICAiMC4wMDE3ODEsIDAuMDAxNzg5LCAwLjAwMTgwMSwgMC4wMDE4MDMsIDAuMDAxODA1LCAwLjAwMTgwNSwgMC4wMDE4MDUiLCBcCi0gICAgICAgICAgIjAuMDAxNzc3LCAwLjAwMTc4NCwgMC4wMDE3OTYsIDAuMDAxNzk5LCAwLjAwMTgsIDAuMDAxODAxLCAwLjAwMTgwMiIsIFwKLSAgICAgICAgICAiMC4wMDE3NzMsIDAuMDAxNzgxLCAwLjAwMTc5MywgMC4wMDE3OTUsIDAuMDAxNzk3LCAwLjAwMTc5OCwgMC4wMDE3OTkiLCBcCi0gICAgICAgICAgIjAuMDAxNzY5LCAwLjAwMTc3NywgMC4wMDE3ODksIDAuMDAxNzkyLCAwLjAwMTc5MywgMC4wMDE3OTUsIDAuMDAxNzk1IiwgXAotICAgICAgICAgICIwLjAwMTc2NiwgMC4wMDE3NzQsIDAuMDAxNzg2LCAwLjAwMTc4OSwgMC4wMDE3OTEsIDAuMDAxNzkyLCAwLjAwMTc5MiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzI1MiwgMC4wMDMyNTksIDAuMDAzMjcsIDAuMDAzMjcyLCAwLjAwMzI3MywgMC4wMDMyNzUsIDAuMDAzMjc1IiwgXAotICAgICAgICAgICIwLjAwMzI0OCwgMC4wMDMyNTYsIDAuMDAzMjY3LCAwLjAwMzI2OSwgMC4wMDMyNywgMC4wMDMyNzIsIDAuMDAzMjcyIiwgXAotICAgICAgICAgICIwLjAwMzI0NiwgMC4wMDMyNTQsIDAuMDAzMjY1LCAwLjAwMzI2NywgMC4wMDMyNjksIDAuMDAzMjY5LCAwLjAwMzI3MSIsIFwKLSAgICAgICAgICAiMC4wMDMyNDQsIDAuMDAzMjUyLCAwLjAwMzI2MywgMC4wMDMyNjUsIDAuMDAzMjY3LCAwLjAwMzI2OCwgMC4wMDMyNjgiLCBcCi0gICAgICAgICAgIjAuMDAzMjQyLCAwLjAwMzI1LCAwLjAwMzI2MSwgMC4wMDMyNjQsIDAuMDAzMjY1LCAwLjAwMzI2NiwgMC4wMDMyNjciLCBcCi0gICAgICAgICAgIjAuMDAzMjM4LCAwLjAwMzI0NiwgMC4wMDMyNTcsIDAuMDAzMjYsIDAuMDAzMjYxLCAwLjAwMzI2MywgMC4wMDMyNjMiLCBcCi0gICAgICAgICAgIjAuMDAzMjM3LCAwLjAwMzI0NSwgMC4wMDMyNTcsIDAuMDAzMjYsIDAuMDAzMjYxLCAwLjAwMzI2MywgMC4wMDMyNjMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDE5MTMsIDAuMDAxOTIsIDAuMDAxOTMxLCAwLjAwMTkzNCwgMC4wMDE5MzUsIDAuMDAxOTM0LCAwLjAwMTkzNCIsIFwKLSAgICAgICAgICAiMC4wMDE5MDUsIDAuMDAxOTEzLCAwLjAwMTkyNCwgMC4wMDE5MjYsIDAuMDAxOTI3LCAwLjAwMTkyOCwgMC4wMDE5MjgiLCBcCi0gICAgICAgICAgIjAuMDAxODk1LCAwLjAwMTkwMiwgMC4wMDE5MTMsIDAuMDAxOTE1LCAwLjAwMTkxNywgMC4wMDE5MTcsIDAuMDAxOTE4IiwgXAotICAgICAgICAgICIwLjAwMTg4NiwgMC4wMDE4OTMsIDAuMDAxOTA1LCAwLjAwMTkwNywgMC4wMDE5MDgsIDAuMDAxOTA5LCAwLjAwMTkwOSIsIFwKLSAgICAgICAgICAiMC4wMDE4NzgsIDAuMDAxODg2LCAwLjAwMTg5OCwgMC4wMDE5LCAwLjAwMTkwMSwgMC4wMDE5MDIsIDAuMDAxOTAyIiwgXAotICAgICAgICAgICIwLjAwMTg2OSwgMC4wMDE4NzcsIDAuMDAxODg5LCAwLjAwMTg5MSwgMC4wMDE4OTMsIDAuMDAxODk0LCAwLjAwMTg5NCIsIFwKLSAgICAgICAgICAiMC4wMDE4NjUsIDAuMDAxODczLCAwLjAwMTg4NSwgMC4wMDE4ODgsIDAuMDAxODksIDAuMDAxODkxLCAwLjAwMTg5MSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzI0NCwgMC4wMDMyNTEsIDAuMDAzMjYyLCAwLjAwMzI2NSwgMC4wMDMyNjYsIDAuMDAzMjY3LCAwLjAwMzI2OCIsIFwKLSAgICAgICAgICAiMC4wMDMyNDMsIDAuMDAzMjUsIDAuMDAzMjYxLCAwLjAwMzI2NCwgMC4wMDMyNjUsIDAuMDAzMjY2LCAwLjAwMzI2NiIsIFwKLSAgICAgICAgICAiMC4wMDMyMzgsIDAuMDAzMjQ2LCAwLjAwMzI1NywgMC4wMDMyNTksIDAuMDAzMjYxLCAwLjAwMzI2MiwgMC4wMDMyNjMiLCBcCi0gICAgICAgICAgIjAuMDAzMjMyLCAwLjAwMzI0LCAwLjAwMzI1MSwgMC4wMDMyNTQsIDAuMDAzMjU1LCAwLjAwMzI1NiwgMC4wMDMyNTciLCBcCi0gICAgICAgICAgIjAuMDAzMjI2LCAwLjAwMzIzNCwgMC4wMDMyNDUsIDAuMDAzMjQ4LCAwLjAwMzI0OSwgMC4wMDMyNSwgMC4wMDMyNTEiLCBcCi0gICAgICAgICAgIjAuMDAzMjE2LCAwLjAwMzIyNCwgMC4wMDMyMzYsIDAuMDAzMjM5LCAwLjAwMzI0MSwgMC4wMDMyNDIsIDAuMDAzMjQzIiwgXAotICAgICAgICAgICIwLjAwMzIwOSwgMC4wMDMyMTcsIDAuMDAzMjMsIDAuMDAzMjMzLCAwLjAwMzIzNSwgMC4wMDMyMzYsIDAuMDAzMjM3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0kiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTg4MiwgMC4wMDE4ODksIDAuMDAxODk5LCAwLjAwMTkwMiwgMC4wMDE5MDMsIDAuMDAxOTA0LCAwLjAwMTkwNCIsIFwKLSAgICAgICAgICAiMC4wMDE4OCwgMC4wMDE4ODcsIDAuMDAxODk4LCAwLjAwMTksIDAuMDAxOTAxLCAwLjAwMTkwMSwgMC4wMDE5MDQiLCBcCi0gICAgICAgICAgIjAuMDAxODczLCAwLjAwMTg4LCAwLjAwMTg5MSwgMC4wMDE4OTMsIDAuMDAxODk1LCAwLjAwMTg5NiwgMC4wMDE4OTciLCBcCi0gICAgICAgICAgIjAuMDAxODY1LCAwLjAwMTg3MiwgMC4wMDE4ODMsIDAuMDAxODg2LCAwLjAwMTg4NywgMC4wMDE4ODksIDAuMDAxODg5IiwgXAotICAgICAgICAgICIwLjAwMTg1OCwgMC4wMDE4NjUsIDAuMDAxODc3LCAwLjAwMTg4LCAwLjAwMTg4MSwgMC4wMDE4ODIsIDAuMDAxODgyIiwgXAotICAgICAgICAgICIwLjAwMTg0NywgMC4wMDE4NTUsIDAuMDAxODY3LCAwLjAwMTg3LCAwLjAwMTg3MiwgMC4wMDE4NzMsIDAuMDAxODczIiwgXAotICAgICAgICAgICIwLjAwMTgzOSwgMC4wMDE4NDcsIDAuMDAxODYsIDAuMDAxODYzLCAwLjAwMTg2NSwgMC4wMDE4NjYsIDAuMDAxODY3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyOTY2LCAwLjAwMjk3NCwgMC4wMDI5ODUsIDAuMDAyOTg3LCAwLjAwMjk4OSwgMC4wMDI5OSwgMC4wMDI5OSIsIFwKLSAgICAgICAgICAiMC4wMDI5NjcsIDAuMDAyOTc0LCAwLjAwMjk4NSwgMC4wMDI5ODcsIDAuMDAyOTg5LCAwLjAwMjk5LCAwLjAwMjk5IiwgXAotICAgICAgICAgICIwLjAwMjk2MiwgMC4wMDI5NywgMC4wMDI5ODEsIDAuMDAyOTg0LCAwLjAwMjk4NSwgMC4wMDI5ODcsIDAuMDAyOTg3IiwgXAotICAgICAgICAgICIwLjAwMjk1NywgMC4wMDI5NjUsIDAuMDAyOTc3LCAwLjAwMjk3OSwgMC4wMDI5ODEsIDAuMDAyOTgyLCAwLjAwMjk4MiIsIFwKLSAgICAgICAgICAiMC4wMDI5NTIsIDAuMDAyOTU5LCAwLjAwMjk3MiwgMC4wMDI5NzUsIDAuMDAyOTc3LCAwLjAwMjk3OCwgMC4wMDI5NzgiLCBcCi0gICAgICAgICAgIjAuMDAyOTQ0LCAwLjAwMjk1MiwgMC4wMDI5NjYsIDAuMDAyOTY5LCAwLjAwMjk3MSwgMC4wMDI5NzIsIDAuMDAyOTcyIiwgXAotICAgICAgICAgICIwLjAwMjkzOSwgMC4wMDI5NDgsIDAuMDAyOTYyLCAwLjAwMjk2NSwgMC4wMDI5NjgsIDAuMDAyOTY5LCAwLjAwMjk3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMTI2OTM5OwotICAgIGZ1bmN0aW9uIDogIigoQV5CKV5DSSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI0OTI5MiwgMC4yOTQwNTEsIDAuNTQxMjM1LCAwLjc1ODA0MiwgMS4wNDY1NywgMS42MjMxNywgMS45ODMyMyIsIFwKLSAgICAgICAgICAiMC4yNjAxNzcsIDAuMzA1MTc2LCAwLjU1MjM2NCwgMC43NjkxNzIsIDEuMDU3NjcsIDEuNjM0MTcsIDEuOTk0MjkiLCBcCi0gICAgICAgICAgIjAuMjcyODc4LCAwLjMxNzg4MywgMC41NjUwNTgsIDAuNzgxODg0LCAxLjA3MDM4LCAxLjY0Njg2LCAyLjAwNzE2IiwgXAotICAgICAgICAgICIwLjI4NTA3NSwgMC4zMjk5MDIsIDAuNTc3MTM4LCAwLjc5MzkwOSwgMS4wODI0MSwgMS42NTg5MSwgMi4wMTkwMSIsIFwKLSAgICAgICAgICAiMC4yOTY4MzYsIDAuMzQxODUzLCAwLjU4OTA0NCwgMC44MDU4NCwgMS4wOTQzNCwgMS42NzA4NSwgMi4wMzA5MSIsIFwKLSAgICAgICAgICAiMC4zMTU1MzgsIDAuMzYwNDc1LCAwLjYwNzczMywgMC44MjQ1MjcsIDEuMTEzMDMsIDEuNjg5NTUsIDIuMDQ5NjEiLCBcCi0gICAgICAgICAgIjAuMzMyMTEyLCAwLjM3NzEyNSwgMC42MjQzMzcsIDAuODQxMTU1LCAxLjEyOTY0LCAxLjcwNjE0LCAyLjA2NjIiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTc3MzA5LCAwLjI2MTE2MSwgMC43NTI2MzgsIDEuMTkxMzEsIDEuNzc2ODgsIDIuOTQ4NTcsIDMuNjc2NjUiLCBcCi0gICAgICAgICAgIjAuMTc3MTgzLCAwLjI2MTEyMiwgMC43NDk4MjEsIDEuMTkxMjgsIDEuNzczNjEsIDIuOTQzOCwgMy42ODEyIiwgXAotICAgICAgICAgICIwLjE3NzEzMiwgMC4yNjExMjMsIDAuNzUyNTU1LCAxLjE5MTI1LCAxLjc3MzU3LCAyLjk0Mzk3LCAzLjY4MDM0IiwgXAotICAgICAgICAgICIwLjE3NzIzMSwgMC4yNjExMTYsIDAuNzUyODE3LCAxLjE5MTE4LCAxLjc3NjU0LCAyLjk0ODUyLCAzLjY3NjQ3IiwgXAotICAgICAgICAgICIwLjE3NzExNSwgMC4yNjEwODEsIDAuNzUwOTY5LCAxLjE5MTE3LCAxLjc3NTk5LCAyLjk0MzM0LCAzLjY3NDU2IiwgXAotICAgICAgICAgICIwLjE3NzA2MywgMC4yNjExNjIsIDAuNzUwOTQ3LCAxLjE4OTIzLCAxLjc3NjI4LCAyLjk0MjA5LCAzLjY3NTA5IiwgXAotICAgICAgICAgICIwLjE3NjkxOSwgMC4yNjA5NjEsIDAuNzUxMTIxLCAxLjE5MTI0LCAxLjc3NTksIDIuOTQzNzYsIDMuNjc2MzQiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjQ1MTQ0LCAwLjI5NjMzOCwgMC41NzgyNjUsIDAuODI1ODY5LCAxLjE1NTU5LCAxLjgxNDY5LCAyLjIyNjQ3IiwgXAotICAgICAgICAgICIwLjI1NjM3LCAwLjMwNzQ5OCwgMC41ODk0NDcsIDAuODM3MDU0LCAxLjE2NjgsIDEuODI1ODksIDIuMjM3NjgiLCBcCi0gICAgICAgICAgIjAuMjY4OTkxLCAwLjMyMDE0LCAwLjYwMjA4OCwgMC44NDk2OTEsIDEuMTc5NTUsIDEuODM4NDksIDIuMjUwMzIiLCBcCi0gICAgICAgICAgIjAuMjgwNjk2LCAwLjMzMTgwNywgMC42MTM3MTgsIDAuODYxMzYyLCAxLjE5MTEyLCAxLjg1MDM0LCAyLjI2MTk3IiwgXAotICAgICAgICAgICIwLjI5MTgzOSwgMC4zNDI5OTEsIDAuNjI0OTI4LCAwLjg3MjU1NywgMS4yMDIyMywgMS44NjEzNCwgMi4yNzMxOSIsIFwKLSAgICAgICAgICAiMC4zMDkwMzksIDAuMzYwMjUxLCAwLjY0MjE5LCAwLjg4OTc4OSwgMS4yMTk1MSwgMS44Nzg2LCAyLjI5MDQiLCBcCi0gICAgICAgICAgIjAuMzIzNzAyLCAwLjM3NDkwOSwgMC42NTY4NywgMC45MDQ0NTQsIDEuMjM0MTgsIDEuODkzMjksIDIuMzA1MDYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTk1MjQzLCAwLjI4OTUwOCwgMC44MzgxNTUsIDEuMzI5MDgsIDEuOTg0NDYsIDMuMjkzMDUsIDQuMTA4NjciLCBcCi0gICAgICAgICAgIjAuMTk1MzU2LCAwLjI4OTYyMSwgMC44Mzc1NDksIDEuMzI5MzQsIDEuOTgzNzgsIDMuMjkzNzcsIDQuMTExNDgiLCBcCi0gICAgICAgICAgIjAuMTk1MzkzLCAwLjI4OTQ4NywgMC44Mzc3NjUsIDEuMzI5MzMsIDEuOTgyNzYsIDMuMjkwMzUsIDQuMTExMzUiLCBcCi0gICAgICAgICAgIjAuMTk1MjYzLCAwLjI4OTcxMiwgMC44Mzk3NTYsIDEuMzI5MywgMS45ODM3MywgMy4yOTI1NywgNC4xMTAxMSIsIFwKLSAgICAgICAgICAiMC4xOTUyOTMsIDAuMjg5NTI3LCAwLjgzODk5MiwgMS4zMjkxNywgMS45ODQ2OSwgMy4yOTA3LCA0LjExMTQyIiwgXAotICAgICAgICAgICIwLjE5NTE2NiwgMC4yODk0NTksIDAuODM4NDc4LCAxLjMyOTM4LCAxLjk4NDM5LCAzLjI5MTIsIDQuMTA4ODEiLCBcCi0gICAgICAgICAgIjAuMTk1MDkyLCAwLjI4OTQ0MSwgMC44Mzg4NzksIDEuMzI5NjIsIDEuOTg0NjgsIDMuMjkyLCA0LjEwNzgxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI5NzQ0NSwgMC4zNDA4NiwgMC41ODU4NjMsIDAuODAxNzc0LCAxLjA4OTY4LCAxLjY2NTM4LCAyLjAyNTE2IiwgXAotICAgICAgICAgICIwLjMwOTE4NCwgMC4zNTI2NDIsIDAuNTk3NTc5LCAwLjgxMzU1OSwgMS4xMDE0NiwgMS42NzcxMywgMi4wMzY5IiwgXAotICAgICAgICAgICIwLjMyMzM4OSwgMC4zNjY4MDUsIDAuNjExODA3LCAwLjgyNzczOSwgMS4xMTU2NCwgMS42OTEzNSwgMi4wNTExNCIsIFwKLSAgICAgICAgICAiMC4zMzY2NTUsIDAuMzgwMDkyLCAwLjYyNTA3MywgMC44NDEwNTcsIDEuMTI4OTQsIDEuNzA0NjIsIDIuMDY0NjQiLCBcCi0gICAgICAgICAgIjAuMzQ5NSwgMC4zOTI5MTgsIDAuNjM3OTE4LCAwLjg1Mzg0LCAxLjE0MTc5LCAxLjcxNzQ0LCAyLjA3NzIzIiwgXAotICAgICAgICAgICIwLjM2OTUzMSwgMC40MTI5NjEsIDAuNjU3OTY5LCAwLjg3Mzk0MywgMS4xNjE4MSwgMS43Mzc0NywgMi4wOTcyNCIsIFwKLSAgICAgICAgICAiMC4zODY2MzMsIDAuNDMwMDcxLCAwLjY3NTA1MiwgMC44OTEwNDgsIDEuMTc4OTIsIDEuNzU0NiwgMi4xMTQ0NiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNjkyMzksIDAuMjUzMzkzLCAwLjc0NzE1NiwgMS4xODU4MSwgMS43NzE2NywgMi45NDMwOCwgMy42NzUzOCIsIFwKLSAgICAgICAgICAiMC4xNjkyMjUsIDAuMjUzMzkzLCAwLjc0Njg5LCAxLjE4NTI5LCAxLjc3MTM4LCAyLjk0MzMsIDMuNjc1NTEiLCBcCi0gICAgICAgICAgIjAuMTY5MjY0LCAwLjI1MzQyOCwgMC43NDcwODMsIDEuMTg1NjcsIDEuNzcwMTMsIDIuOTQzNDEsIDMuNjc1ODciLCBcCi0gICAgICAgICAgIjAuMTY5MjMzLCAwLjI1MzM5MywgMC43NDYyMzEsIDEuMTgzMjQsIDEuNzcxNTQsIDIuOTQzLCAzLjY3NiIsIFwKLSAgICAgICAgICAiMC4xNjkyMTksIDAuMjUzMzc5LCAwLjc0NzEzMywgMS4xODU3MywgMS43NzE4NywgMi45NDMwNiwgMy42NzU1NyIsIFwKLSAgICAgICAgICAiMC4xNjkxOTUsIDAuMjUzMzkzLCAwLjc0NzE0OCwgMS4xODYsIDEuNzcxMzksIDIuOTQzMDQsIDMuNjc1MTMiLCBcCi0gICAgICAgICAgIjAuMTY5MjMzLCAwLjI1MzM2NCwgMC43NDU3OTgsIDEuMTgzNTMsIDEuNzcxNjEsIDIuOTQyOTQsIDMuNjc2MjYiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzE3MDUxLCAwLjM2NzEsIDAuNjQ3MDM5LCAwLjg5Mzk1OCwgMS4yMjMyMiwgMS44ODE4LCAyLjI5MzE5IiwgXAotICAgICAgICAgICIwLjMyODM4OCwgMC4zNzg0NDUsIDAuNjU4MzcyLCAwLjkwNTMxMiwgMS4yMzQ3MSwgMS44OTI5OCwgMi4zMDQ1OCIsIFwKLSAgICAgICAgICAiMC4zNDE4OTYsIDAuMzkxOTUsIDAuNjcxODgxLCAwLjkxODgxOSwgMS4yNDgwNywgMS45MDY2NiwgMi4zMTgwNyIsIFwKLSAgICAgICAgICAiMC4zNTUzOCwgMC40MDU0NDUsIDAuNjg1MzUxLCAwLjkzMjM0NSwgMS4yNjE3NSwgMS45MjAwNSwgMi4zMzE2OCIsIFwKLSAgICAgICAgICAiMC4zNjg3MywgMC40MTg3ODgsIDAuNjk4NzA5LCAwLjk0NTY1MSwgMS4yNzQ5MywgMS45MzMzNCwgMi4zNDQ5MiIsIFwKLSAgICAgICAgICAiMC4zOTA1NDcsIDAuNDQwNjE0LCAwLjcyMDUzNCwgMC45Njc1LCAxLjI5NjkxLCAxLjk1NTIzLCAyLjM2NjY4IiwgXAotICAgICAgICAgICIwLjQwOTIzOSwgMC40NTkyOTUsIDAuNzM5MjEzLCAwLjk4NjE1OCwgMS4zMTU0LCAxLjk3Mzk0LCAyLjM4NTQxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE5MDQ2MiwgMC4yODQzNjgsIDAuODMyNTMsIDEuMzIyMTIsIDEuOTc0OTcsIDMuMjgzODIsIDQuMTAwODgiLCBcCi0gICAgICAgICAgIjAuMTkwNDY0LCAwLjI4NDM5NiwgMC44MzIxODEsIDEuMzIyMDMsIDEuOTc0OTYsIDMuMjgxOTYsIDQuMTAwNzQiLCBcCi0gICAgICAgICAgIjAuMTkwNDQ4LCAwLjI4NDM4MiwgMC44MzIwMjEsIDEuMzIyMDYsIDEuOTc1MDUsIDMuMjgzNTQsIDQuMTAwNTkiLCBcCi0gICAgICAgICAgIjAuMTkwNDUxLCAwLjI4NDM2MywgMC44MzI1MjcsIDEuMzIyMTQsIDEuOTc0OTIsIDMuMjgzMjgsIDQuMTAwODgiLCBcCi0gICAgICAgICAgIjAuMTkwNDU4LCAwLjI4NDM5NSwgMC44MzE5NTYsIDEuMzIyMDUsIDEuOTc1NTksIDMuMjgyODksIDQuMTAwNTciLCBcCi0gICAgICAgICAgIjAuMTkwNDY1LCAwLjI4NDM3NiwgMC44MzI0NzksIDEuMzIyMDIsIDEuOTczOTQsIDMuMjgzMDgsIDQuMDk4NzciLCBcCi0gICAgICAgICAgIjAuMTkwNDE5LCAwLjI4NDM3NywgMC44MzIxNDUsIDEuMzIxOTgsIDEuOTc0ODksIDMuMjgyOTUsIDQuMTAwNTEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjQ0NTMxLCAwLjI4OTM2LCAwLjUzNjYwMywgMC43NTMzODcsIDEuMDQxOTEsIDEuNjE4NDUsIDEuOTc4NzgiLCBcCi0gICAgICAgICAgIjAuMjU0NzE3LCAwLjI5OTQ5NSwgMC41NDY3MSwgMC43NjM1MzQsIDEuMDUyMDcsIDEuNjI4NjcsIDEuOTg4NzUiLCBcCi0gICAgICAgICAgIjAuMjY3MjUsIDAuMzEyMDg3LCAwLjU1OTMzNiwgMC43NzYxMTgsIDEuMDY0NjcsIDEuNjQxMjMsIDIuMDAxNDkiLCBcCi0gICAgICAgICAgIjAuMjc5ODUxLCAwLjMyNDY5MSwgMC41NzE5MSwgMC43ODg3MzIsIDEuMDc3MjcsIDEuNjUzODYsIDIuMDEzOTYiLCBcCi0gICAgICAgICAgIjAuMjkyNTk2LCAwLjMzNzU5NSwgMC41ODQ5MDQsIDAuODAxNzE5LCAxLjA5MDE4LCAxLjY2Njg4LCAyLjAyNjgzIiwgXAotICAgICAgICAgICIwLjMxMzAwNCwgMC4zNTgwMzMsIDAuNjA1MzI2LCAwLjgyMjA2NiwgMS4xMTA2LCAxLjY4NzE3LCAyLjA0NzI1IiwgXAotICAgICAgICAgICIwLjMzMTAyNywgMC4zNzYwMTksIDAuNjIzMzA2LCAwLjg0MDA4NywgMS4xMjg2MiwgMS43MDUxNSwgMi4wNjUzIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE3NzI2NSwgMC4yNjExNzYsIDAuNzUxMTQzLCAxLjE5MTMyLCAxLjc3Njc2LCAyLjk0MTk1LCAzLjY3MjMzIiwgXAotICAgICAgICAgICIwLjE3NzMwMSwgMC4yNjExNDgsIDAuNzUyMzg3LCAxLjE5MTMxLCAxLjc3NjgzLCAyLjk0ODYsIDMuNjczNyIsIFwKLSAgICAgICAgICAiMC4xNzcxODcsIDAuMjYxMTUsIDAuNzUxMTUsIDEuMTkxMywgMS43NzM4NiwgMi45NDI3NSwgMy42NzU4NyIsIFwKLSAgICAgICAgICAiMC4xNzcyMywgMC4yNjExMTcsIDAuNzUyNTg3LCAxLjE5MTMsIDEuNzc2ODEsIDIuOTQ4NjUsIDMuNjczNzUiLCBcCi0gICAgICAgICAgIjAuMTc3MTczLCAwLjI2MTE0NywgMC43NTEwMzMsIDEuMTkxNTgsIDEuNzc1NTEsIDIuOTQyMDQsIDMuNjcyIiwgXAotICAgICAgICAgICIwLjE3NzA5NSwgMC4yNjEwMDMsIDAuNzUxMTI1LCAxLjE5MTI2LCAxLjc3NTg5LCAyLjk0MzA5LCAzLjY3MjIyIiwgXAotICAgICAgICAgICIwLjE3Njk4NCwgMC4yNjEwMDIsIDAuNzUyOTgsIDEuMTkxMzMsIDEuNzczOTQsIDIuOTQyLCAzLjY4MTU3Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIzODYyMiwgMC4yODk3NjgsIDAuNTcxNzQ2LCAwLjgxOTMyOCwgMS4xNDkxLCAxLjgwODI1LCAyLjIyMDA0IiwgXAotICAgICAgICAgICIwLjI0ODgyMywgMC4yOTk5NjUsIDAuNTgxOTc1LCAwLjgyOTYwMiwgMS4xNTk0MSwgMS44MTg0MiwgMi4yMzAyOCIsIFwKLSAgICAgICAgICAiMC4yNjEwMTEsIDAuMzEyMjMyLCAwLjU5NDIwOCwgMC44NDE5MDksIDEuMTcxNTcsIDEuODMwNywgMi4yNDI1IiwgXAotICAgICAgICAgICIwLjI3MjkyLCAwLjMyNDA4NCwgMC42MDYwODcsIDAuODUzNzEzLCAxLjE4MzQ1LCAxLjg0MjYyLCAyLjI1NDM4IiwgXAotICAgICAgICAgICIwLjI4NDUyMiwgMC4zMzU2ODksIDAuNjE3NzA1LCAwLjg2NTMzNSwgMS4xOTUwOCwgMS44NTQyMywgMi4yNjYwNCIsIFwKLSAgICAgICAgICAiMC4zMDMyMzksIDAuMzU0NDAyLCAwLjYzNjQzNCwgMC44ODQwNjQsIDEuMjEzODMsIDEuODczMDIsIDIuMjg0NzUiLCBcCi0gICAgICAgICAgIjAuMzE5NTc3LCAwLjM3MDc0OSwgMC42NTI4MDksIDAuOTAwNDMxLCAxLjIzMDE1LCAxLjg4OTI3LCAyLjMwMTIzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE5NTI0NCwgMC4yODk1NzUsIDAuODM4NTUsIDEuMzMwMDQsIDEuOTg0NjksIDMuMjkzMTksIDQuMTA4MTgiLCBcCi0gICAgICAgICAgIjAuMTk1MjE2LCAwLjI4OTY4MywgMC44Mzc2MDQsIDEuMzI5MzQsIDEuOTgyMjMsIDMuMjk1NDQsIDQuMTExNzEiLCBcCi0gICAgICAgICAgIjAuMTk1MjEzLCAwLjI4OTQ4OSwgMC44MzgxMjcsIDEuMzI1ODQsIDEuOTg0NDgsIDMuMjkxODEsIDQuMTA4OSIsIFwKLSAgICAgICAgICAiMC4xOTUxNDMsIDAuMjg5Njk2LCAwLjg0MDIyOCwgMS4zMjkwMywgMS45ODIwMiwgMy4yOTM4NCwgNC4xMDc4OSIsIFwKLSAgICAgICAgICAiMC4xOTU0MDksIDAuMjg5NDg2LCAwLjgzNzY2OCwgMS4zMjk0LCAxLjk4NDUxLCAzLjI5NDI5LCA0LjExMTQ5IiwgXAotICAgICAgICAgICIwLjE5NTI3MSwgMC4yODk2MzUsIDAuODM3NTkzLCAxLjMyOTExLCAxLjk4MjI5LCAzLjI5MzIsIDQuMTExNjgiLCBcCi0gICAgICAgICAgIjAuMTk1MTI1LCAwLjI4OTY1NCwgMC44MzgzNywgMS4zMjkxNiwgMS45ODE5LCAzLjI5MDYyLCA0LjExMTE4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMwMzEzNSwgMC4zNDY4NjIsIDAuNTkyNDk5LCAwLjgwODY1NCwgMS4wOTY3NywgMS42NzI2NSwgMi4wMzI1MSIsIFwKLSAgICAgICAgICAiMC4zMTUwNjEsIDAuMzU4NzM3LCAwLjYwNDM2OCwgMC44MjA1MywgMS4xMDg2NywgMS42ODQ1NSwgMi4wNDQ0IiwgXAotICAgICAgICAgICIwLjMyOTE4NSwgMC4zNzI4NTgsIDAuNjE4NTMyLCAwLjgzNDY5NCwgMS4xMjI3OCwgMS42OTg3NiwgMi4wNTg1NSIsIFwKLSAgICAgICAgICAiMC4zNDIyNTQsIDAuMzg1OTI2LCAwLjYzMTU1OCwgMC44NDc3MjMsIDEuMTM1ODIsIDEuNzExNzQsIDIuMDcxNjYiLCBcCi0gICAgICAgICAgIjAuMzU0ODg1LCAwLjM5ODUzMSwgMC42NDQyLCAwLjg2MDM3NSwgMS4xNDg0NiwgMS43MjQ0NCwgMi4wODQyMyIsIFwKLSAgICAgICAgICAiMC4zNzQ0OTYsIDAuNDE4MTY4LCAwLjY2Mzc1MywgMC44ODAwMDUsIDEuMTY4MDcsIDEuNzQzOTgsIDIuMTAzODUiLCBcCi0gICAgICAgICAgIjAuMzkxMTcsIDAuNDM0ODMxLCAwLjY4MDQ3LCAwLjg5NjYzLCAxLjE4NDgxLCAxLjc2MDY0LCAyLjEyMDUxIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE2ODkyOSwgMC4yNTM3MTYsIDAuNzQ4MiwgMS4xODcwMiwgMS43NzI1OCwgMi45NDMwNSwgMy42NzUwOSIsIFwKLSAgICAgICAgICAiMC4xNjg4ODksIDAuMjUzNzE5LCAwLjc0ODI0LCAxLjE4NywgMS43NzI1MywgMi45NDMxLCAzLjY3NTg3IiwgXAotICAgICAgICAgICIwLjE2ODg2LCAwLjI1Mzc1NSwgMC43NDY2NTksIDEuMTg3MDcsIDEuNzcxMzksIDIuOTQ0MDcsIDMuNjc2MyIsIFwKLSAgICAgICAgICAiMC4xNjg5MjIsIDAuMjUzNzI1LCAwLjc0ODIxNiwgMS4xODY5OCwgMS43NzE5NywgMi45NDMwNywgMy42NzY2MSIsIFwKLSAgICAgICAgICAiMC4xNjkwNTMsIDAuMjUzNTMsIDAuNzQ4MjI2LCAxLjE4NzA3LCAxLjc3MTMyLCAyLjk0NDA5LCAzLjY3NjI1IiwgXAotICAgICAgICAgICIwLjE2ODg2MSwgMC4yNTM3NTksIDAuNzQ4MDk3LCAxLjE4Njk0LCAxLjc3MTM0LCAyLjk0MzE0LCAzLjY3NjMxIiwgXAotICAgICAgICAgICIwLjE2ODkzOSwgMC4yNTM3MjcsIDAuNzQ4MjEyLCAxLjE4NzAyLCAxLjc3MjM0LCAyLjk0MzAzLCAzLjY3NTg2Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMxNDk3NCwgMC4zNjQ5OTIsIDAuNjQ0OTgyLCAwLjg5MTg1OCwgMS4yMjEyNCwgMS44Nzk2MywgMi4yOTExIiwgXAotICAgICAgICAgICIwLjMyNTM2MywgMC4zNzUzOTYsIDAuNjU1MzAxLCAwLjkwMjI1NywgMS4yMzE2NCwgMS44ODk5NCwgMi4zMDE1MyIsIFwKLSAgICAgICAgICAiMC4zMzgxNzUsIDAuMzg4MjAyLCAwLjY2ODE0NywgMC45MTUwNTksIDEuMjQ0NDQsIDEuOTAyNzksIDIuMzE0MzgiLCBcCi0gICAgICAgICAgIjAuMzUxMjA0LCAwLjQwMTIzNSwgMC42ODExODIsIDAuOTI4MTA0LCAxLjI1NzUxLCAxLjkxNTgsIDIuMzI3MzkiLCBcCi0gICAgICAgICAgIjAuMzY0NjE5LCAwLjQxNDY1NCwgMC42OTQ1OTksIDAuOTQxNTI4LCAxLjI3MDkxLCAxLjkyOTI4LCAyLjM0MDk5IiwgXAotICAgICAgICAgICIwLjM4NjA2MywgMC40MzYwOTQsIDAuNzE2MDMsIDAuOTYyOTQ1LCAxLjI5MjI2LCAxLjk1MDY4LCAyLjM2MjI4IiwgXAotICAgICAgICAgICIwLjQwNTc4LCAwLjQ1NTgwOSwgMC43MzU3MzgsIDAuOTgyNjgxLCAxLjMxMjA3LCAxLjk3MDQ1LCAyLjM4MTg2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE4OTg1NCwgMC4yODQzMjksIDAuODMyOTM1LCAxLjMyMjU0LCAxLjk3NTQxLCAzLjI4MzcxLCA0LjEwMTY0IiwgXAotICAgICAgICAgICIwLjE4OTg4OSwgMC4yODQwOSwgMC44MzI5MTQsIDEuMzIyNTcsIDEuOTc1MTUsIDMuMjg0ODEsIDQuMTAwOSIsIFwKLSAgICAgICAgICAiMC4xODk5MiwgMC4yODQwOTIsIDAuODMyOTY5LCAxLjMyMjYzLCAxLjk3NDQ5LCAzLjI4MzQsIDQuMTAwODkiLCBcCi0gICAgICAgICAgIjAuMTg5OTMzLCAwLjI4NDA5LCAwLjgzMjg0OSwgMS4zMjI3MSwgMS45NzUyNywgMy4yODM0NiwgNC4xMDA3OSIsIFwKLSAgICAgICAgICAiMC4xODk4NzksIDAuMjg0MDYyLCAwLjgzMjg4MywgMS4zMjI2MiwgMS45NzU3NCwgMy4yODMzOSwgNC4wOTkzNCIsIFwKLSAgICAgICAgICAiMC4xODk5MDEsIDAuMjg0MDkzLCAwLjgzMjYyOCwgMS4zMjI1NywgMS45NzQ2MiwgMy4yODM3NCwgNC4xMDA3OSIsIFwKLSAgICAgICAgICAiMC4xODk4NzUsIDAuMjg0MDg5LCAwLjgzMjk2OSwgMS4zMjI1OCwgMS45NzQ4NiwgMy4yODMzOCwgNC4wOTk2NCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjQyMzM2LCAwLjI4NzM2NywgMC41MzQ1OTcsIDAuNzUxNDI2LCAxLjAzOTk3LCAxLjYxNjQ0LCAxLjk3NjgyIiwgXAotICAgICAgICAgICIwLjI1MTQzNiwgMC4yOTY0OTEsIDAuNTQzNzEyLCAwLjc2MDU0LCAxLjA0OTA4LCAxLjYyNTY4LCAxLjk4NTczIiwgXAotICAgICAgICAgICIwLjI2MzQ3NSwgMC4zMDg1MTMsIDAuNTU1NzQ3LCAwLjc3MjU1NywgMS4wNjEwNywgMS42Mzc1NSwgMS45OTc2NSIsIFwKLSAgICAgICAgICAiMC4yNzQ0MjksIDAuMzE5NDc4LCAwLjU2NjcxNSwgMC43ODM1NzYsIDEuMDcyMDMsIDEuNjQ4NTUsIDIuMDA4NjEiLCBcCi0gICAgICAgICAgIjAuMjg2MzIsIDAuMzMxMzEsIDAuNTc4NTYzLCAwLjc5NTM1NywgMS4wODM5MywgMS42NjAzOSwgMi4wMjA1MyIsIFwKLSAgICAgICAgICAiMC4zMDcwNDEsIDAuMzUyMDU3LCAwLjU5OTMxMSwgMC44MTYxMDcsIDEuMTA0NjMsIDEuNjgxMTUsIDIuMDQxMjEiLCBcCi0gICAgICAgICAgIjAuMzI0NzY4LCAwLjM2OTc3NiwgMC42MTcwODksIDAuODMzODcyLCAxLjEyMjQxLCAxLjY5ODk2LCAyLjA1OTAzIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE3NzI2OSwgMC4yNjExOTYsIDAuNzUyNzEsIDEuMTkxMzksIDEuNzc0MDEsIDIuOTQ4NzksIDMuNjgxMDgiLCBcCi0gICAgICAgICAgIjAuMTc3MTQsIDAuMjYxMTM4LCAwLjc1MjU2LCAxLjE5MTI4LCAxLjc3Njg2LCAyLjk0ODU5LCAzLjY3NTc4IiwgXAotICAgICAgICAgICIwLjE3NzE0NywgMC4yNjExMTIsIDAuNzUxNjc1LCAxLjE5MTI3LCAxLjc3MzYsIDIuOTQ4NTYsIDMuNjc0OTciLCBcCi0gICAgICAgICAgIjAuMTc3MTE5LCAwLjI2MTA2OSwgMC43NTExMjQsIDEuMTkxNDgsIDEuNzczNTIsIDIuOTQxODMsIDMuNjc0OCIsIFwKLSAgICAgICAgICAiMC4xNzcxMzQsIDAuMjYxMDU2LCAwLjc1MTAxMiwgMS4xOTExNywgMS43NzY4NSwgMi45NDQwMywgMy42NzI5OSIsIFwKLSAgICAgICAgICAiMC4xNzcwOTMsIDAuMjYxMDMsIDAuNzUxMTI5LCAxLjE4OTA4LCAxLjc3MzQ2LCAyLjk0Mjg0LCAzLjY3NDU5IiwgXAotICAgICAgICAgICIwLjE3Njk5MiwgMC4yNjEwMDcsIDAuNzUyNzkzLCAxLjE5MTE2LCAxLjc3NjY0LCAyLjk0ODE0LCAzLjY3MTg1Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIyODAxNSwgMC4yNzkxOCwgMC41NjEyMTYsIDAuODA4ODU2LCAxLjEzODYyLCAxLjc5Nzc0LCAyLjIwOTU3IiwgXAotICAgICAgICAgICIwLjIzNzA4NSwgMC4yODgyODYsIDAuNTcwMjgxLCAwLjgxNzkxLCAxLjE0NzY2LCAxLjgwNjc3LCAyLjIxODU4IiwgXAotICAgICAgICAgICIwLjI0ODc1MiwgMC4yOTk5MjksIDAuNTgxOTQ3LCAwLjgyOTU3MSwgMS4xNTkzLCAxLjgxODQ1LCAyLjIzMDIxIiwgXAotICAgICAgICAgICIwLjI2MDk2MywgMC4zMTIxMzgsIDAuNTk0MTUzLCAwLjg0MTc2NiwgMS4xNzE0NSwgMS44MzA1NSwgMi4yNDI1OSIsIFwKLSAgICAgICAgICAiMC4yNzMwNDYsIDAuMzI0MjA3LCAwLjYwNjI0MSwgMC44NTM4ODIsIDEuMTgzNjEsIDEuODQyNzQsIDIuMjU0NjMiLCBcCi0gICAgICAgICAgIjAuMjkyNzI5LCAwLjM0MzkwNywgMC42MjU5NDksIDAuODczNjQsIDEuMjAzMywgMS44NjI0MiwgMi4yNzQyIiwgXAotICAgICAgICAgICIwLjMwOTc2MywgMC4zNjA5MjUsIDAuNjQzMDE5LCAwLjg5MDY0MywgMS4yMjAzNCwgMS44Nzk0NywgMi4yOTEyOCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xOTUzMTgsIDAuMjg5NDQ4LCAwLjgzNzU2MSwgMS4zMjk0LCAxLjk4NDE4LCAzLjI5MDg1LCA0LjExMTQyIiwgXAotICAgICAgICAgICIwLjE5NTM2NCwgMC4yODk0ODgsIDAuODM3NjA3LCAxLjMyOTM3LCAxLjk4NDE4LCAzLjI5MDc3LCA0LjExMTMzIiwgXAotICAgICAgICAgICIwLjE5NTA4NywgMC4yODk2NiwgMC44NDAyMzIsIDEuMzI5MjMsIDEuOTgxNzcsIDMuMjkzNzcsIDQuMTA3OSIsIFwKLSAgICAgICAgICAiMC4xOTUyNDUsIDAuMjg5NDkyLCAwLjgzODgyNywgMS4zMjkwNCwgMS45ODQ2NiwgMy4yOTM0MywgNC4xMDcxNSIsIFwKLSAgICAgICAgICAiMC4xOTUyNDcsIDAuMjg5NjgyLCAwLjg0MDIsIDEuMzI5MjYsIDEuOTgxNzYsIDMuMjkzOTcsIDQuMTEwNzMiLCBcCi0gICAgICAgICAgIjAuMTk1MTQ4LCAwLjI4OTQ4NSwgMC44MzgzNDEsIDEuMzI5MDgsIDEuOTg0NzIsIDMuMjkwOTQsIDQuMTA3NTEiLCBcCi0gICAgICAgICAgIjAuMTk1MjI4LCAwLjI4OTQ3MiwgMC44Mzg1NzEsIDEuMzI4NTgsIDEuOTg0NzUsIDMuMjkxMDksIDQuMTExNTkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0kiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI5MjQzOCwgMC4zMzYxMTMsIDAuNTgxNzQsIDAuNzk3OTUzLCAxLjA4NjAxLCAxLjY2MTkyLCAyLjAyMTg3IiwgXAotICAgICAgICAgICIwLjMwMjk4OCwgMC4zNDY3MDQsIDAuNTkyMzQxLCAwLjgwODQ5NywgMS4wOTY1OCwgMS42NzI3MSwgMi4wMzIzNyIsIFwKLSAgICAgICAgICAiMC4zMTY0MTIsIDAuMzYwMDc5LCAwLjYwNTcxMSwgMC44MjE4NzEsIDEuMTEwMDcsIDEuNjg1ODgsIDIuMDQ1NzUiLCBcCi0gICAgICAgICAgIjAuMzI5Mzg0LCAwLjM3MzA1OCwgMC42MTg2ODksIDAuODM0ODUsIDEuMTIyOTUsIDEuNjk4ODYsIDIuMDU4NzMiLCBcCi0gICAgICAgICAgIjAuMzQyNjUzLCAwLjM4NjM2NSwgMC42MzE5MTEsIDAuODQ4MTQsIDEuMTM2MjIsIDEuNzEyMjcsIDIuMDcxOTkiLCBcCi0gICAgICAgICAgIjAuMzYzNTkzLCAwLjQwNzI1OSwgMC42NTI4ODgsIDAuODY5MDgxLCAxLjE1NzE3LCAxLjczMzE1LCAyLjA5MjkzIiwgXAotICAgICAgICAgICIwLjM4MTg3MSwgMC40MjU1ODcsIDAuNjcxMTI3LCAwLjg4NzM1OCwgMS4xNzU0NCwgMS43NTE0NywgMi4xMTEyMSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNjg0NjEsIDAuMjUzNzc2LCAwLjc0ODIyNywgMS4xODY5NSwgMS43NzAwOSwgMi45NDM0NiwgMy42Njk5OCIsIFwKLSAgICAgICAgICAiMC4xNjg0NTEsIDAuMjUzNzQ4LCAwLjc0ODIxNywgMS4xODcwNCwgMS43NzAxMSwgMi45NDM0NCwgMy42NzQ5OCIsIFwKLSAgICAgICAgICAiMC4xNjg0MTksIDAuMjUzNzQ4LCAwLjc0ODIyLCAxLjE4NzAxLCAxLjc3MjMsIDIuOTQyNzYsIDMuNjc2MTciLCBcCi0gICAgICAgICAgIjAuMTY4NDQ1LCAwLjI1Mzc0LCAwLjc0ODIyMiwgMS4xODY5OSwgMS43NzE4NCwgMi45NDMwMSwgMy42NzQ4OSIsIFwKLSAgICAgICAgICAiMC4xNjgzODksIDAuMjUzNjEsIDAuNzQ4MDgzLCAxLjE4NzA3LCAxLjc3MTU4LCAyLjk0Mzc5LCAzLjY3NjI0IiwgXAotICAgICAgICAgICIwLjE2ODQ0OSwgMC4yNTM3ODksIDAuNzQ3MTM1LCAxLjE4NzA1LCAxLjc3MDE4LCAyLjk0NDIsIDMuNjc2MjIiLCBcCi0gICAgICAgICAgIjAuMTY4Mzc4LCAwLjI1MzU5NSwgMC43NDc5MTEsIDEuMTg3MDksIDEuNzcwMSwgMi45NDM4MywgMy42NzYyMiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yOTQyOCwgMC4zNDM5NTUsIDAuNjI0MDY5LCAwLjg3MTA2NiwgMS4yMDAzOCwgMS44NTg5NCwgMi4yNzA3MSIsIFwKLSAgICAgICAgICAiMC4zMDQ5ODMsIDAuMzU0NjczLCAwLjYzNDc3OCwgMC44ODE3OTcsIDEuMjExMDgsIDEuODY5NTksIDIuMjgxMTciLCBcCi0gICAgICAgICAgIjAuMzE3OTE2LCAwLjM2NzYwMywgMC42NDc3MDgsIDAuODk0NzIyLCAxLjIyNDAxLCAxLjg4MjU3LCAyLjI5NDM2IiwgXAotICAgICAgICAgICIwLjMzMTA4NCwgMC4zODA3NzQsIDAuNjYwODc0LCAwLjkwNzkxLCAxLjIzNzE4LCAxLjg5NTczLCAyLjMwNzI4IiwgXAotICAgICAgICAgICIwLjM0NDUxOSwgMC4zOTQyMDEsIDAuNjc0MzIyLCAwLjkyMTMwNCwgMS4yNTA2MSwgMS45MDkxOCwgMi4zMjA3MiIsIFwKLSAgICAgICAgICAiMC4zNjU4OSwgMC40MTU1ODYsIDAuNjk1NzE1LCAwLjk0MjY5NSwgMS4yNzIwNSwgMS45MzA1OCwgMi4zNDIxMyIsIFwKLSAgICAgICAgICAiMC4zODQ2NSwgMC40MzQzMzMsIDAuNzE0NDYzLCAwLjk2MTQ0NCwgMS4yOTA3NSwgMS45NDkzMiwgMi4zNjA4OSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xODYwNTksIDAuMjgxNTUxLCAwLjgzMjk5OCwgMS4zMjI1NiwgMS45NzU3LCAzLjI4MjQzLCA0LjEwMDcxIiwgXAotICAgICAgICAgICIwLjE4NjA2MywgMC4yODE5MzIsIDAuODMyODkzLCAxLjMyMjgsIDEuOTc1NCwgMy4yODI4MiwgNC4xMDA2NSIsIFwKLSAgICAgICAgICAiMC4xODYwNTIsIDAuMjgxODAxLCAwLjgzMjg5MywgMS4zMjIzMiwgMS45NzUyNiwgMy4yODI1MSwgNC4xMDA0NyIsIFwKLSAgICAgICAgICAiMC4xODYwNTEsIDAuMjgxNTQ5LCAwLjgzMjkwNCwgMS4zMjI0NSwgMS45NzU2MSwgMy4yODIxOCwgNC4xMDAxMiIsIFwKLSAgICAgICAgICAiMC4xODYwNjMsIDAuMjgxNzg4LCAwLjgzMjkwNCwgMS4zMjI2NiwgMS45NzU0NCwgMy4yODIyOCwgNC4wOTk4OSIsIFwKLSAgICAgICAgICAiMC4xODYwNjEsIDAuMjgxNTIsIDAuODMyOTk1LCAxLjMyMjY1LCAxLjk3NTYyLCAzLjI4MjQyLCA0LjA5OTE5IiwgXAotICAgICAgICAgICIwLjE4NjA2MSwgMC4yODE4OTUsIDAuODMyODk3LCAxLjMyMjY1LCAxLjk3NTM0LCAzLjI4MjMzLCA0LjEwMDEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDMyNTIsIDAuMDAzMjU5LCAwLjAwMzI3LCAwLjAwMzI3MiwgMC4wMDMyNzMsIDAuMDAzMjc1LCAwLjAwMzI3NSIsIFwKLSAgICAgICAgICAiMC4wMDMyNDgsIDAuMDAzMjU2LCAwLjAwMzI2NywgMC4wMDMyNjksIDAuMDAzMjcsIDAuMDAzMjcyLCAwLjAwMzI3MiIsIFwKLSAgICAgICAgICAiMC4wMDMyNDYsIDAuMDAzMjU0LCAwLjAwMzI2NSwgMC4wMDMyNjcsIDAuMDAzMjY5LCAwLjAwMzI2OSwgMC4wMDMyNzEiLCBcCi0gICAgICAgICAgIjAuMDAzMjQ0LCAwLjAwMzI1MiwgMC4wMDMyNjMsIDAuMDAzMjY1LCAwLjAwMzI2NywgMC4wMDMyNjgsIDAuMDAzMjY4IiwgXAotICAgICAgICAgICIwLjAwMzI0MiwgMC4wMDMyNSwgMC4wMDMyNjEsIDAuMDAzMjY0LCAwLjAwMzI2NSwgMC4wMDMyNjYsIDAuMDAzMjY3IiwgXAotICAgICAgICAgICIwLjAwMzIzOCwgMC4wMDMyNDYsIDAuMDAzMjU3LCAwLjAwMzI2LCAwLjAwMzI2MSwgMC4wMDMyNjMsIDAuMDAzMjYzIiwgXAotICAgICAgICAgICIwLjAwMzIzNywgMC4wMDMyNDUsIDAuMDAzMjU3LCAwLjAwMzI2LCAwLjAwMzI2MSwgMC4wMDMyNjMsIDAuMDAzMjYzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxODAzLCAwLjAwMTgxLCAwLjAwMTgyMiwgMC4wMDE4MjQsIDAuMDAxODI1LCAwLjAwMTgyNywgMC4wMDE4MjciLCBcCi0gICAgICAgICAgIjAuMDAxNzg4LCAwLjAwMTc5NiwgMC4wMDE4MDcsIDAuMDAxODEsIDAuMDAxODExLCAwLjAwMTgxMiwgMC4wMDE4MTEiLCBcCi0gICAgICAgICAgIjAuMDAxNzgxLCAwLjAwMTc4OSwgMC4wMDE4MDEsIDAuMDAxODAzLCAwLjAwMTgwNSwgMC4wMDE4MDUsIDAuMDAxODA1IiwgXAotICAgICAgICAgICIwLjAwMTc3NywgMC4wMDE3ODQsIDAuMDAxNzk2LCAwLjAwMTc5OSwgMC4wMDE4LCAwLjAwMTgwMSwgMC4wMDE4MDIiLCBcCi0gICAgICAgICAgIjAuMDAxNzczLCAwLjAwMTc4MSwgMC4wMDE3OTMsIDAuMDAxNzk1LCAwLjAwMTc5NywgMC4wMDE3OTgsIDAuMDAxNzk5IiwgXAotICAgICAgICAgICIwLjAwMTc2OSwgMC4wMDE3NzcsIDAuMDAxNzg5LCAwLjAwMTc5MiwgMC4wMDE3OTMsIDAuMDAxNzk1LCAwLjAwMTc5NSIsIFwKLSAgICAgICAgICAiMC4wMDE3NjYsIDAuMDAxNzc0LCAwLjAwMTc4NiwgMC4wMDE3ODksIDAuMDAxNzkxLCAwLjAwMTc5MiwgMC4wMDE3OTIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDMyNDQsIDAuMDAzMjUxLCAwLjAwMzI2MiwgMC4wMDMyNjUsIDAuMDAzMjY2LCAwLjAwMzI2NywgMC4wMDMyNjgiLCBcCi0gICAgICAgICAgIjAuMDAzMjQzLCAwLjAwMzI1LCAwLjAwMzI2MSwgMC4wMDMyNjQsIDAuMDAzMjY1LCAwLjAwMzI2NiwgMC4wMDMyNjYiLCBcCi0gICAgICAgICAgIjAuMDAzMjM4LCAwLjAwMzI0NiwgMC4wMDMyNTcsIDAuMDAzMjU5LCAwLjAwMzI2MSwgMC4wMDMyNjIsIDAuMDAzMjYzIiwgXAotICAgICAgICAgICIwLjAwMzIzMiwgMC4wMDMyNCwgMC4wMDMyNTEsIDAuMDAzMjU0LCAwLjAwMzI1NSwgMC4wMDMyNTYsIDAuMDAzMjU3IiwgXAotICAgICAgICAgICIwLjAwMzIyNiwgMC4wMDMyMzQsIDAuMDAzMjQ1LCAwLjAwMzI0OCwgMC4wMDMyNDksIDAuMDAzMjUsIDAuMDAzMjUxIiwgXAotICAgICAgICAgICIwLjAwMzIxNiwgMC4wMDMyMjQsIDAuMDAzMjM2LCAwLjAwMzIzOSwgMC4wMDMyNDEsIDAuMDAzMjQyLCAwLjAwMzI0MyIsIFwKLSAgICAgICAgICAiMC4wMDMyMDksIDAuMDAzMjE3LCAwLjAwMzIzLCAwLjAwMzIzMywgMC4wMDMyMzUsIDAuMDAzMjM2LCAwLjAwMzIzNyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTkxMywgMC4wMDE5MiwgMC4wMDE5MzEsIDAuMDAxOTM0LCAwLjAwMTkzNSwgMC4wMDE5MzQsIDAuMDAxOTM0IiwgXAotICAgICAgICAgICIwLjAwMTkwNSwgMC4wMDE5MTMsIDAuMDAxOTI0LCAwLjAwMTkyNiwgMC4wMDE5MjcsIDAuMDAxOTI4LCAwLjAwMTkyOCIsIFwKLSAgICAgICAgICAiMC4wMDE4OTUsIDAuMDAxOTAyLCAwLjAwMTkxMywgMC4wMDE5MTUsIDAuMDAxOTE3LCAwLjAwMTkxNywgMC4wMDE5MTgiLCBcCi0gICAgICAgICAgIjAuMDAxODg2LCAwLjAwMTg5MywgMC4wMDE5MDUsIDAuMDAxOTA3LCAwLjAwMTkwOCwgMC4wMDE5MDksIDAuMDAxOTA5IiwgXAotICAgICAgICAgICIwLjAwMTg3OCwgMC4wMDE4ODYsIDAuMDAxODk4LCAwLjAwMTksIDAuMDAxOTAxLCAwLjAwMTkwMiwgMC4wMDE5MDIiLCBcCi0gICAgICAgICAgIjAuMDAxODY5LCAwLjAwMTg3NywgMC4wMDE4ODksIDAuMDAxODkxLCAwLjAwMTg5MywgMC4wMDE4OTQsIDAuMDAxODk0IiwgXAotICAgICAgICAgICIwLjAwMTg2NSwgMC4wMDE4NzMsIDAuMDAxODg1LCAwLjAwMTg4OCwgMC4wMDE4OSwgMC4wMDE4OTEsIDAuMDAxODkxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0kiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjk2NiwgMC4wMDI5NzQsIDAuMDAyOTg1LCAwLjAwMjk4NywgMC4wMDI5ODksIDAuMDAyOTksIDAuMDAyOTkiLCBcCi0gICAgICAgICAgIjAuMDAyOTY3LCAwLjAwMjk3NCwgMC4wMDI5ODUsIDAuMDAyOTg3LCAwLjAwMjk4OSwgMC4wMDI5OSwgMC4wMDI5OSIsIFwKLSAgICAgICAgICAiMC4wMDI5NjIsIDAuMDAyOTcsIDAuMDAyOTgxLCAwLjAwMjk4NCwgMC4wMDI5ODUsIDAuMDAyOTg3LCAwLjAwMjk4NyIsIFwKLSAgICAgICAgICAiMC4wMDI5NTcsIDAuMDAyOTY1LCAwLjAwMjk3NywgMC4wMDI5NzksIDAuMDAyOTgxLCAwLjAwMjk4MiwgMC4wMDI5ODIiLCBcCi0gICAgICAgICAgIjAuMDAyOTUyLCAwLjAwMjk1OSwgMC4wMDI5NzIsIDAuMDAyOTc1LCAwLjAwMjk3NywgMC4wMDI5NzgsIDAuMDAyOTc4IiwgXAotICAgICAgICAgICIwLjAwMjk0NCwgMC4wMDI5NTIsIDAuMDAyOTY2LCAwLjAwMjk2OSwgMC4wMDI5NzEsIDAuMDAyOTcyLCAwLjAwMjk3MiIsIFwKLSAgICAgICAgICAiMC4wMDI5MzksIDAuMDAyOTQ4LCAwLjAwMjk2MiwgMC4wMDI5NjUsIDAuMDAyOTY4LCAwLjAwMjk2OSwgMC4wMDI5NyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTg4MiwgMC4wMDE4ODksIDAuMDAxODk5LCAwLjAwMTkwMiwgMC4wMDE5MDMsIDAuMDAxOTA0LCAwLjAwMTkwNCIsIFwKLSAgICAgICAgICAiMC4wMDE4OCwgMC4wMDE4ODcsIDAuMDAxODk4LCAwLjAwMTksIDAuMDAxOTAxLCAwLjAwMTkwMSwgMC4wMDE5MDQiLCBcCi0gICAgICAgICAgIjAuMDAxODczLCAwLjAwMTg4LCAwLjAwMTg5MSwgMC4wMDE4OTMsIDAuMDAxODk1LCAwLjAwMTg5NiwgMC4wMDE4OTciLCBcCi0gICAgICAgICAgIjAuMDAxODY1LCAwLjAwMTg3MiwgMC4wMDE4ODMsIDAuMDAxODg2LCAwLjAwMTg4NywgMC4wMDE4ODksIDAuMDAxODg5IiwgXAotICAgICAgICAgICIwLjAwMTg1OCwgMC4wMDE4NjUsIDAuMDAxODc3LCAwLjAwMTg4LCAwLjAwMTg4MSwgMC4wMDE4ODIsIDAuMDAxODgyIiwgXAotICAgICAgICAgICIwLjAwMTg0NywgMC4wMDE4NTUsIDAuMDAxODY3LCAwLjAwMTg3LCAwLjAwMTg3MiwgMC4wMDE4NzMsIDAuMDAxODczIiwgXAotICAgICAgICAgICIwLjAwMTgzOSwgMC4wMDE4NDcsIDAuMDAxODYsIDAuMDAxODYzLCAwLjAwMTg2NSwgMC4wMDE4NjYsIDAuMDAxODY3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBBRERGWDEgKgotICogLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChBRERGWDEpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4xOTYwNDE7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMjUyOTQzOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMjUyNTU4OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMjUyOTQzOwotICB9Ci0gIHBpbihCKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDIzODY0NzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDIzNzcxODsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDIzODY0NzsKLSAgfQotICBwaW4oQ0kpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTg3MjMzOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTg2MzAyOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTg3MjMzOwotICB9Ci0gIHBpbihDTykgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjEzMjM0NjsKLSAgICBmdW5jdGlvbiA6ICIoKChBIEIpKyhCIENJKSkrKENJIEEpKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjYxMDgsIDAuMzA3MTUzLCAwLjU1NTEwNCwgMC43NzE1NTgsIDEuMDYzMjQsIDEuNjM4MzUsIDEuOTk4MTMiLCBcCi0gICAgICAgICAgIjAuMjcyNTQyLCAwLjMxODYxMywgMC41NjY0OTMsIDAuNzgyODM3LCAxLjA3MTkyLCAxLjY0OTczLCAyLjAxMDQ1IiwgXAotICAgICAgICAgICIwLjI4NzM3NSwgMC4zMzM0NjMsIDAuNTgwODI2LCAwLjc5NjcsIDEuMDg3MDcsIDEuNjY1ODYsIDIuMDI0MDgiLCBcCi0gICAgICAgICAgIjAuMzAxODQ5LCAwLjM0NzkwOCwgMC41OTUxNDksIDAuODExMzQ2LCAxLjEwMDk2LCAxLjY3ODM0LCAyLjAzODI5IiwgXAotICAgICAgICAgICIwLjMxNTgzNCwgMC4zNjE5MjIsIDAuNjA5MTQ4LCAwLjgyNTE0NSwgMS4xMTUxNSwgMS42OTE3OSwgMi4wNTMxIiwgXAotICAgICAgICAgICIwLjMzODAxNCwgMC4zODQxMDIsIDAuNjMxMjUsIDAuODQ4NjA3LCAxLjEzNzI0LCAxLjcxNDA2LCAyLjA3NDYxIiwgXAotICAgICAgICAgICIwLjM1NzI5MiwgMC40MDMzNTEsIDAuNjUwNjEyLCAwLjg2NjY3OSwgMS4xNTY1NCwgMS43MzQzMSwgMi4wOTQxNCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xODU0ODEsIDAuMjY4MjA0LCAwLjc2MDQ1NCwgMS4yMDUwOCwgMS43OTUzLCAyLjk3OTY0LCAzLjcwOTY1IiwgXAotICAgICAgICAgICIwLjE4NTU0MiwgMC4yNzAzNTUsIDAuNzYwNTEzLCAxLjIwNTA5LCAxLjc4NTMxLCAyLjk3NzIsIDMuNzEyMDEiLCBcCi0gICAgICAgICAgIjAuMTg1NDI2LCAwLjI3MDYyOCwgMC43NTkyNTQsIDEuMjA1MjQsIDEuNzg5MTEsIDIuOTcwNzcsIDMuNzA5OTYiLCBcCi0gICAgICAgICAgIjAuMTg1MzI1LCAwLjI3MDA0OSwgMC43NTk5MjMsIDEuMjA1NzIsIDEuNzg1NjgsIDIuOTgyMiwgMy43MDkyNiIsIFwKLSAgICAgICAgICAiMC4xODUzNjUsIDAuMjcwNjE3LCAwLjc2MDQzMywgMS4yMDUxNiwgMS43ODk3OSwgMi45NTY3OCwgMy43MTc0MyIsIFwKLSAgICAgICAgICAiMC4xODUzMDgsIDAuMjcwNjIsIDAuNzYzMDMsIDEuMTk5MDUsIDEuNzg3MjcsIDIuOTcxMzgsIDMuNzIwODUiLCBcCi0gICAgICAgICAgIjAuMTg1MjIzLCAwLjI3MDM4LCAwLjc2MjE5MSwgMS4yMDUxMiwgMS43ODY1OSwgMi45Nzk0NSwgMy43MTEwNiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yNTQxNCwgMC4zMDU5NiwgMC41ODgwNDYsIDAuODM1NDU3LCAxLjE2NDc2LCAxLjgyMzQ0LCAyLjI0MTg5IiwgXAotICAgICAgICAgICIwLjI2NTkzMiwgMC4zMTc3NzEsIDAuNTk5NjU5LCAwLjg0Njg2NCwgMS4xNzYzNSwgMS44Mzk4MywgMi4yNTM0NSIsIFwKLSAgICAgICAgICAiMC4yODAyOTcsIDAuMzMyMTA5LCAwLjYxNDA2OSwgMC44NjEwMDgsIDEuMTkxMDgsIDEuODUyODgsIDIuMjY2MSIsIFwKLSAgICAgICAgICAiMC4yOTM3NywgMC4zNDU1NTcsIDAuNjI3NTk5LCAwLjg3NDQ2NCwgMS4yMDM0OCwgMS44NjU0NiwgMi4yNzg3NyIsIFwKLSAgICAgICAgICAiMC4zMDY3MzEsIDAuMzU4NTc0LCAwLjY0MDQ2OCwgMC44ODczMDUsIDEuMjE2NzksIDEuODc3ODQsIDIuMjkyNDIiLCBcCi0gICAgICAgICAgIjAuMzI2OTM5LCAwLjM3ODc0OSwgMC42NjA4MzIsIDAuOTA3NDg1LCAxLjIzNzEsIDEuODk3NzMsIDIuMzExMTQiLCBcCi0gICAgICAgICAgIjAuMzQ0MzI0LCAwLjM5NjA5NCwgMC42NzgxMiwgMC45MjUwNjUsIDEuMjU1MTMsIDEuOTEzNjEsIDIuMzI4NDMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjAxMTAzLCAwLjI5NjM2NSwgMC44MzkwMjMsIDEuMzI3MDUsIDEuOTgyNDcsIDMuMjgzMywgNC4xMTE1OCIsIFwKLSAgICAgICAgICAiMC4yMDExNTYsIDAuMjk2MTMsIDAuODM5NTg5LCAxLjMyODQyLCAxLjk3ODY4LCAzLjI5MzAyLCA0LjExMTM4IiwgXAotICAgICAgICAgICIwLjIwMDk1MywgMC4yOTU1MzEsIDAuODM5MDEzLCAxLjMyODM5LCAxLjk3ODQ3LCAzLjI5MzEsIDQuMTEyMTciLCBcCi0gICAgICAgICAgIjAuMjAwOTcyLCAwLjI5NDg3NCwgMC44Mzg5NjMsIDEuMzI4MjIsIDEuOTc4ODUsIDMuMjkyOTIsIDQuMTExODYiLCBcCi0gICAgICAgICAgIjAuMjAxNDQ2LCAwLjI5NDY5NywgMC44Mzk1NjcsIDEuMzI4MzgsIDEuOTc4NzcsIDMuMjkzMTIsIDQuMTEyNjEiLCBcCi0gICAgICAgICAgIjAuMjAwOTY3LCAwLjI5NjI1LCAwLjgzODk0NiwgMS4zMjgyMSwgMS45NzkyNywgMy4yOTI5NCwgNC4xMTE3IiwgXAotICAgICAgICAgICIwLjIwMDgzMiwgMC4yOTYyNDIsIDAuODM4OTM1LCAxLjMyODM0LCAxLjk3ODc0LCAzLjI5NDMzLCA0LjExMTQxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI2MDczLCAwLjMwNjgxMiwgMC41NTQ3MzUsIDAuNzcxMTcxLCAxLjA2MDYsIDEuNjM3MjMsIDEuOTk4MzgiLCBcCi0gICAgICAgICAgIjAuMjcxMzIyLCAwLjMxNzQwMSwgMC41NjUyMjgsIDAuNzgxNjI3LCAxLjA3MDU2LCAxLjY0ODU3LCAyLjAwOTIyIiwgXAotICAgICAgICAgICIwLjI4NDM0MSwgMC4zMzA0MzIsIDAuNTc4MjQ5LCAwLjc5NDczMiwgMS4wODYyNSwgMS42NjE2MywgMi4wMjA4NCIsIFwKLSAgICAgICAgICAiMC4yOTc2MDcsIDAuMzQzNjk2LCAwLjU5MTU0MywgMC44MDc5MzIsIDEuMDk4MjUsIDEuNjc3MTIsIDIuMDM1NDIiLCBcCi0gICAgICAgICAgIjAuMzExMDMsIDAuMzU3MTIsIDAuNjA0OTU1LCAwLjgyMTMwMSwgMS4xMTA3NiwgMS42ODg2OCwgMi4wNDg5OCIsIFwKLSAgICAgICAgICAiMC4zMzI3OSwgMC4zNzg4NzYsIDAuNjI2Njc5LCAwLjg0Mjk1LCAxLjEzMTk4LCAxLjcwOTgyLCAyLjA3MDg2IiwgXAotICAgICAgICAgICIwLjM1MTk2OCwgMC4zOTgwMzksIDAuNjQ1OTYyLCAwLjg2Mzk2OCwgMS4xNTM3NSwgMS43MjkyOCwgMi4wOTA1NiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xODYxMTcsIDAuMjY5MTk3LCAwLjc2MjY5LCAxLjIwNDAxLCAxLjc4NDU0LCAyLjk2NTM3LCAzLjcwOTcyIiwgXAotICAgICAgICAgICIwLjE4NTcyMywgMC4yNzA2NjgsIDAuNzYxOTM1LCAxLjIwNDUsIDEuNzg5MDcsIDIuOTc5MDksIDMuNzA4MyIsIFwKLSAgICAgICAgICAiMC4xODYxMjksIDAuMjcwMDg3LCAwLjc2MTM2OSwgMS4yMDQzMiwgMS43OTMwOSwgMi45NzA1MSwgMy43MTQ3NyIsIFwKLSAgICAgICAgICAiMC4xODYxNTIsIDAuMjY5ODQyLCAwLjc1ODQsIDEuMjAzNDIsIDEuNzg2MjUsIDIuOTcwNDUsIDMuNzE3ODEiLCBcCi0gICAgICAgICAgIjAuMTg1ODI0LCAwLjI3MTA4NSwgMC43NTgxMjYsIDEuMjA0NDgsIDEuNzg1OTgsIDIuOTc4OTgsIDMuNzA5MTgiLCBcCi0gICAgICAgICAgIjAuMTg1NDExLCAwLjI2OTk1LCAwLjc1ODg0MSwgMS4yMDUyMywgMS43ODY1MSwgMi45ODIwMywgMy43MDkzNyIsIFwKLSAgICAgICAgICAiMC4xODU4NzUsIDAuMjcwMTk1LCAwLjc1OTQzMiwgMS4yMDUxNywgMS43OTQyMywgMi45NzEyNCwgMy43MDk3NyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yNTIwNSwgMC4zMDQ0OTEsIDAuNTg3MDAxLCAwLjgzMzkxNCwgMS4xNjI4NSwgMS44MjM0LCAyLjIzNzk2IiwgXAotICAgICAgICAgICIwLjI2Mzc3NywgMC4zMTYyMzIsIDAuNTk4ODQ0LCAwLjg0NTY0OSwgMS4xNzQ1OSwgMS44MzQyNiwgMi4yNDcwNSIsIFwKLSAgICAgICAgICAiMC4yNzc4ODQsIDAuMzMwMzYxLCAwLjYxMjg3LCAwLjg1OTc2OSwgMS4xODkxMywgMS44NDc2OSwgMi4yNjAzMSIsIFwKLSAgICAgICAgICAiMC4yOTEyNjMsIDAuMzQzNjgxLCAwLjYyNTk5NiwgMC44NzMxMzcsIDEuMjAyMDcsIDEuODYxODUsIDIuMjc3MDQiLCBcCi0gICAgICAgICAgIjAuMzA0MDYxLCAwLjM1NjQ3OSwgMC42Mzg4NywgMC44ODU5MzYsIDEuMjE0ODgsIDEuODc0NjgsIDIuMjg5NzEiLCBcCi0gICAgICAgICAgIjAuMzI0MTg0LCAwLjM3NjY1NCwgMC42NTkxNDMsIDAuOTA2MDYzLCAxLjIzNTA2LCAxLjg5Njc0LCAyLjMwNzI1IiwgXAotICAgICAgICAgICIwLjM0MTQ5MiwgMC4zOTM5NTUsIDAuNjc2NzYzLCAwLjkyMzM3MywgMS4yNTIzMywgMS45MTI5NiwgMi4zMjY0MSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMDQ4NzksIDAuMjk2NTg0LCAwLjgzOTUzOSwgMS4zMjgzMSwgMS45NzkxMSwgMy4yOTMxNywgNC4xMTI1MSIsIFwKLSAgICAgICAgICAiMC4yMDUyNDQsIDAuMjk2Njk1LCAwLjgzOTAyNCwgMS4zMjgyOSwgMS45ODA2MywgMy4yOTI4OSwgNC4xMTE3NiIsIFwKLSAgICAgICAgICAiMC4yMDUyNTUsIDAuMjk2NjMxLCAwLjgzOTAyMSwgMS4zMjc3MiwgMS45NzkyNSwgMy4yOTI5NSwgNC4xMTE3MSIsIFwKLSAgICAgICAgICAiMC4yMDUyMTQsIDAuMjk2NTYxLCAwLjgzOTg5MywgMS4zMjgzLCAxLjk4MDEsIDMuMjkzMTEsIDQuMTEyMjMiLCBcCi0gICAgICAgICAgIjAuMjA1MjQ4LCAwLjI5NjUxNSwgMC44Mzk5NjcsIDEuMzI4MjgsIDEuOTc5NDksIDMuMjkzMTIsIDQuMTExNDYiLCBcCi0gICAgICAgICAgIjAuMjA1MjA4LCAwLjI5ODk5NiwgMC44Mzg5OTMsIDEuMzI4MjcsIDEuOTgzMjIsIDMuMjkzMjUsIDQuMTExNDQiLCBcCi0gICAgICAgICAgIjAuMjA1MTQxLCAwLjI5NjYsIDAuODQwMjA0LCAxLjMyODMxLCAxLjk4MDM2LCAzLjI5MzA1LCA0LjExMTY2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNJIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yNDQ2MjMsIDAuMjkwNjg0LCAwLjUzNzg1LCAwLjc1NDM0MywgMS4wNDM3MSwgMS42MjExOSwgMS45ODA5MiIsIFwKLSAgICAgICAgICAiMC4yNTUzODksIDAuMzAxNDkxLCAwLjU0ODYxNywgMC43NjQ4MzEsIDEuMDU0NTUsIDEuNjMxNCwgMS45OTA4IiwgXAotICAgICAgICAgICIwLjI2OTMxOSwgMC4zMTU0MDgsIDAuNTYyNTksIDAuNzc4ODc3LCAxLjA2ODQ3LCAxLjY0NTQ5LCAyLjAwNDQ5IiwgXAotICAgICAgICAgICIwLjI4MjE0NCwgMC4zMjgyMzMsIDAuNTc1Mzc3LCAwLjc5MTU2NywgMS4wNzkxNiwgMS42NTg0OSwgMi4wMTg5MSIsIFwKLSAgICAgICAgICAiMC4yOTU3NTgsIDAuMzQxODQxLCAwLjU4ODk5NiwgMC44MDUxOTMsIDEuMDk0NjEsIDEuNjcyMzgsIDIuMDMyMjYiLCBcCi0gICAgICAgICAgIjAuMzE3ODE5LCAwLjM2MzkxNCwgMC42MTEwNTcsIDAuODI3MjU1LCAxLjExNjM0LCAxLjY5NDMzLCAyLjA1NDQ5IiwgXAotICAgICAgICAgICIwLjMzNzIwOCwgMC4zODMyODYsIDAuNjMwNDY1LCAwLjg0Nzc1OCwgMS4xMzYzLCAxLjcxMzM3LCAyLjA3MiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xODYyMjQsIDAuMjY5OTU3LCAwLjc2MDQ3LCAxLjIwNTk1LCAxLjc3ODIyLCAyLjk3MDY5LCAzLjcxNTQ4IiwgXAotICAgICAgICAgICIwLjE4NjI4OCwgMC4yNzE0OTcsIDAuNzYwMTI1LCAxLjIwNTI3LCAxLjc3MjU5LCAyLjk3MDk4LCAzLjcxNzMiLCBcCi0gICAgICAgICAgIjAuMTg2MjIyLCAwLjI3MDc2NSwgMC43NjAxOTcsIDEuMjA1MDIsIDEuNzgyMDIsIDIuOTcyMjMsIDMuNzE4NDQiLCBcCi0gICAgICAgICAgIjAuMTg2NDQ3LCAwLjI3MTM4NiwgMC43NjMyNywgMS4yMDUxMywgMS43OTY5MiwgMi45NzgwNywgMy43MTExMyIsIFwKLSAgICAgICAgICAiMC4xODYyNDQsIDAuMjY5MjkyLCAwLjc2MDM2NSwgMS4yMDUxLCAxLjc4Mjc3LCAyLjk2NDA2LCAzLjcwOTUiLCBcCi0gICAgICAgICAgIjAuMTg2Mjc2LCAwLjI3MDMzNSwgMC43NjMyOSwgMS4yMDUxOCwgMS43OTU5NCwgMi45NzM2MywgMy43MTA0OSIsIFwKLSAgICAgICAgICAiMC4xODY0MzUsIDAuMjY5MTM4LCAwLjc2MDMsIDEuMjA0NTYsIDEuNzg1MDgsIDIuOTcyMjIsIDMuNzE4NTIiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjQzMzAyLCAwLjI5NTg1OCwgMC41NzgwMzksIDAuODI1MjI5LCAxLjE1NDI3LCAxLjgxNDE2LCAyLjIyNDk4IiwgXAotICAgICAgICAgICIwLjI1MzY0OSwgMC4zMDYyMzQsIDAuNTg4NTE3LCAwLjgzNTYyNiwgMS4xNjQ2NSwgMS44MjQxMiwgMi4yMzk1IiwgXAotICAgICAgICAgICIwLjI2Njk0MSwgMC4zMTk0OTgsIDAuNjAxODcsIDAuODQ4OTE0LCAxLjE3NzkyLCAxLjgzNzY3LCAyLjI1Mjg1IiwgXAotICAgICAgICAgICIwLjI3OTU2MiwgMC4zMzIxMTIsIDAuNjE0NTE5LCAwLjg2MTUzNywgMS4xOTA1NSwgMS44NTAzMSwgMi4yNjU0NCIsIFwKLSAgICAgICAgICAiMC4yOTMxOTEsIDAuMzQ1Nzg2LCAwLjYyODA5NywgMC44NzUyMjMsIDEuMjA0MjUsIDEuODYzNywgMi4yNzkxNiIsIFwKLSAgICAgICAgICAiMC4zMTQ1MzcsIDAuMzY3MTA0LCAwLjY0OTg4NSwgMC44OTY1NTQsIDEuMjI1NiwgMS44ODUzNywgMi4zMDAxMSIsIFwKLSAgICAgICAgICAiMC4zMzMwODcsIDAuMzg1NjU5LCAwLjY2ODEwMiwgMC45MTUxMzUsIDEuMjQ0MTgsIDEuOTAzOTMsIDIuMzE5MTMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjA2NjE1LCAwLjI5Nzg0MSwgMC44Mzk3NiwgMS4zMjcwNiwgMS45Nzg3NSwgMy4yOTEzLCA0LjEwOTYzIiwgXAotICAgICAgICAgICIwLjIwNjUyNiwgMC4yOTc1NDYsIDAuODM5OTY1LCAxLjMyNzAyLCAxLjk3ODU0LCAzLjI5MDU1LCA0LjEwNzg2IiwgXAotICAgICAgICAgICIwLjIwNTY0OCwgMC4yOTc4MjcsIDAuODQwMDIxLCAxLjMyNzA5LCAxLjk4MTEyLCAzLjI4NjIyLCA0LjEwODA4IiwgXAotICAgICAgICAgICIwLjIwNjY0NywgMC4yOTk5NDYsIDAuODQwMDUxLCAxLjMyNzA5LCAxLjk3ODM2LCAzLjI4NjI1LCA0LjEwNzA2IiwgXAotICAgICAgICAgICIwLjIwNjYxMiwgMC4yOTc2MDgsIDAuODM5OTY0LCAxLjMyNzAzLCAxLjk3ODU0LCAzLjI4OTg3LCA0LjEwNzE1IiwgXAotICAgICAgICAgICIwLjIwNjczNSwgMC4zMDAwOCwgMC44NDAyNiwgMS4zMjcxLCAxLjk3NzYyLCAzLjI4NjMxLCA0LjEwMTQ2IiwgXAotICAgICAgICAgICIwLjIwNjgwMSwgMC4yOTc3MjUsIDAuODQwMDE2LCAxLjMyNzA5LCAxLjk3ODY4LCAzLjI4NjIzLCA0LjEwNzk1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxNjc4LCAwLjAwMTY4NiwgMC4wMDE2OTksIDAuMDAxNzAyLCAwLjAwMTcwNCwgMC4wMDE3MDUsIDAuMDAxNzA2IiwgXAotICAgICAgICAgICIwLjAwMTY2OCwgMC4wMDE2NzcsIDAuMDAxNjksIDAuMDAxNjkzLCAwLjAwMTY5NCwgMC4wMDE2OTYsIDAuMDAxNjk2IiwgXAotICAgICAgICAgICIwLjAwMTY2NCwgMC4wMDE2NzIsIDAuMDAxNjg1LCAwLjAwMTY4OCwgMC4wMDE2OSwgMC4wMDE2OTIsIDAuMDAxNjkyIiwgXAotICAgICAgICAgICIwLjAwMTY2MSwgMC4wMDE2NjksIDAuMDAxNjgzLCAwLjAwMTY4NiwgMC4wMDE2ODcsIDAuMDAxNjg5LCAwLjAwMTY5IiwgXAotICAgICAgICAgICIwLjAwMTY1OSwgMC4wMDE2NjcsIDAuMDAxNjgxLCAwLjAwMTY4MywgMC4wMDE2ODUsIDAuMDAxNjg3LCAwLjAwMTY4NyIsIFwKLSAgICAgICAgICAiMC4wMDE2NTUsIDAuMDAxNjY0LCAwLjAwMTY3OCwgMC4wMDE2ODEsIDAuMDAxNjgzLCAwLjAwMTY4NCwgMC4wMDE2ODUiLCBcCi0gICAgICAgICAgIjAuMDAxNjU0LCAwLjAwMTY2MiwgMC4wMDE2NzYsIDAuMDAxNjc5LCAwLjAwMTY4MSwgMC4wMDE2ODMsIDAuMDAxNjgzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyODAzLCAwLjAwMjgxMSwgMC4wMDI4MjQsIDAuMDAyODI3LCAwLjAwMjgyOCwgMC4wMDI4MywgMC4wMDI4MyIsIFwKLSAgICAgICAgICAiMC4wMDI4MDEsIDAuMDAyODA5LCAwLjAwMjgyMiwgMC4wMDI4MjUsIDAuMDAyODI2LCAwLjAwMjgyOCwgMC4wMDI4MjgiLCBcCi0gICAgICAgICAgIjAuMDAyOCwgMC4wMDI4MDgsIDAuMDAyODIxLCAwLjAwMjgyMywgMC4wMDI4MjUsIDAuMDAyODI3LCAwLjAwMjgyNyIsIFwKLSAgICAgICAgICAiMC4wMDI3OTgsIDAuMDAyODA3LCAwLjAwMjgyLCAwLjAwMjgyMiwgMC4wMDI4MjUsIDAuMDAyODI1LCAwLjAwMjgyNSIsIFwKLSAgICAgICAgICAiMC4wMDI3OTcsIDAuMDAyODA2LCAwLjAwMjgxOCwgMC4wMDI4MjIsIDAuMDAyODIzLCAwLjAwMjgyNCwgMC4wMDI4MjUiLCBcCi0gICAgICAgICAgIjAuMDAyNzk1LCAwLjAwMjgwNCwgMC4wMDI4MTcsIDAuMDAyODIsIDAuMDAyODIxLCAwLjAwMjgyMywgMC4wMDI4MjMiLCBcCi0gICAgICAgICAgIjAuMDAyNzkzLCAwLjAwMjgwMiwgMC4wMDI4MTYsIDAuMDAyODE5LCAwLjAwMjgyLCAwLjAwMjgyMiwgMC4wMDI4MjIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDE3NTMsIDAuMDAxNzYxLCAwLjAwMTc3NCwgMC4wMDE3NzcsIDAuMDAxNzc4LCAwLjAwMTc4LCAwLjAwMTc4IiwgXAotICAgICAgICAgICIwLjAwMTc0OSwgMC4wMDE3NTcsIDAuMDAxNzcsIDAuMDAxNzczLCAwLjAwMTc3NSwgMC4wMDE3NzYsIDAuMDAxNzc3IiwgXAotICAgICAgICAgICIwLjAwMTc0MiwgMC4wMDE3NTEsIDAuMDAxNzY0LCAwLjAwMTc2NywgMC4wMDE3NjgsIDAuMDAxNzY5LCAwLjAwMTc3IiwgXAotICAgICAgICAgICIwLjAwMTczNywgMC4wMDE3NDUsIDAuMDAxNzU5LCAwLjAwMTc2MSwgMC4wMDE3NjMsIDAuMDAxNzY0LCAwLjAwMTc2NSIsIFwKLSAgICAgICAgICAiMC4wMDE3MzIsIDAuMDAxNzQsIDAuMDAxNzU0LCAwLjAwMTc1NywgMC4wMDE3NTgsIDAuMDAxNzYsIDAuMDAxNzYiLCBcCi0gICAgICAgICAgIjAuMDAxNzI1LCAwLjAwMTczMywgMC4wMDE3NDgsIDAuMDAxNzUxLCAwLjAwMTc1MywgMC4wMDE3NTQsIDAuMDAxNzU0IiwgXAotICAgICAgICAgICIwLjAwMTcyMSwgMC4wMDE3MywgMC4wMDE3NDQsIDAuMDAxNzQ3LCAwLjAwMTc0OSwgMC4wMDE3NSwgMC4wMDE3NTEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI3OTMsIDAuMDAyODAxLCAwLjAwMjgxNCwgMC4wMDI4MTcsIDAuMDAyODE4LCAwLjAwMjgyLCAwLjAwMjgyIiwgXAotICAgICAgICAgICIwLjAwMjc5MywgMC4wMDI4MDEsIDAuMDAyODE0LCAwLjAwMjgxOCwgMC4wMDI4MTgsIDAuMDAyODE5LCAwLjAwMjgxOSIsIFwKLSAgICAgICAgICAiMC4wMDI3OSwgMC4wMDI3OTksIDAuMDAyODExLCAwLjAwMjgxNCwgMC4wMDI4MTYsIDAuMDAyODE3LCAwLjAwMjgxOCIsIFwKLSAgICAgICAgICAiMC4wMDI3ODcsIDAuMDAyNzk1LCAwLjAwMjgwOCwgMC4wMDI4MTEsIDAuMDAyODEzLCAwLjAwMjgxNCwgMC4wMDI4MTUiLCBcCi0gICAgICAgICAgIjAuMDAyNzgzLCAwLjAwMjc5MSwgMC4wMDI4MDQsIDAuMDAyODA3LCAwLjAwMjgwOSwgMC4wMDI4MTEsIDAuMDAyODExIiwgXAotICAgICAgICAgICIwLjAwMjc3NywgMC4wMDI3ODUsIDAuMDAyNzk5LCAwLjAwMjgwMiwgMC4wMDI4MDQsIDAuMDAyODA1LCAwLjAwMjgwNiIsIFwKLSAgICAgICAgICAiMC4wMDI3NzEsIDAuMDAyNzgsIDAuMDAyNzk0LCAwLjAwMjc5NywgMC4wMDI3OTksIDAuMDAyOCwgMC4wMDI4MDEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxNzQzLCAwLjAwMTc1MSwgMC4wMDE3NjMsIDAuMDAxNzY3LCAwLjAwMTc2OCwgMC4wMDE3NjksIDAuMDAxNzciLCBcCi0gICAgICAgICAgIjAuMDAxNzQyLCAwLjAwMTc1LCAwLjAwMTc2MywgMC4wMDE3NjYsIDAuMDAxNzY3LCAwLjAwMTc2OSwgMC4wMDE3NjkiLCBcCi0gICAgICAgICAgIjAuMDAxNzM4LCAwLjAwMTc0NywgMC4wMDE3NiwgMC4wMDE3NjIsIDAuMDAxNzY0LCAwLjAwMTc2NSwgMC4wMDE3NjYiLCBcCi0gICAgICAgICAgIjAuMDAxNzMzLCAwLjAwMTc0MiwgMC4wMDE3NTUsIDAuMDAxNzU4LCAwLjAwMTc1OSwgMC4wMDE3NjEsIDAuMDAxNzYxIiwgXAotICAgICAgICAgICIwLjAwMTcyOSwgMC4wMDE3MzcsIDAuMDAxNzUxLCAwLjAwMTc1NCwgMC4wMDE3NTUsIDAuMDAxNzU3LCAwLjAwMTc1NyIsIFwKLSAgICAgICAgICAiMC4wMDE3MjIsIDAuMDAxNzMxLCAwLjAwMTc0NCwgMC4wMDE3NDgsIDAuMDAxNzUsIDAuMDAxNzUxLCAwLjAwMTc1MiIsIFwKLSAgICAgICAgICAiMC4wMDE3MTcsIDAuMDAxNzI2LCAwLjAwMTc0LCAwLjAwMTc0MywgMC4wMDE3NDUsIDAuMDAxNzQ3LCAwLjAwMTc0OCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjU3NSwgMC4wMDI1ODMsIDAuMDAyNTk2LCAwLjAwMjU5OCwgMC4wMDI2LCAwLjAwMjYwMiwgMC4wMDI2MDIiLCBcCi0gICAgICAgICAgIjAuMDAyNTc1LCAwLjAwMjU4NCwgMC4wMDI1OTYsIDAuMDAyNTk5LCAwLjAwMjYwMSwgMC4wMDI2MDIsIDAuMDAyNjAzIiwgXAotICAgICAgICAgICIwLjAwMjU3MywgMC4wMDI1ODIsIDAuMDAyNTk0LCAwLjAwMjU5NywgMC4wMDI1OTksIDAuMDAyNjAxLCAwLjAwMjYwMSIsIFwKLSAgICAgICAgICAiMC4wMDI1NjksIDAuMDAyNTc3LCAwLjAwMjU5MSwgMC4wMDI1OTQsIDAuMDAyNTk2LCAwLjAwMjU5NywgMC4wMDI1OTgiLCBcCi0gICAgICAgICAgIjAuMDAyNTY2LCAwLjAwMjU3NCwgMC4wMDI1ODgsIDAuMDAyNTkxLCAwLjAwMjU5MywgMC4wMDI1OTUsIDAuMDAyNTk2IiwgXAotICAgICAgICAgICIwLjAwMjU2LCAwLjAwMjU2OSwgMC4wMDI1ODMsIDAuMDAyNTg3LCAwLjAwMjU4OSwgMC4wMDI1OTEsIDAuMDAyNTkyIiwgXAotICAgICAgICAgICIwLjAwMjU1NiwgMC4wMDI1NjQsIDAuMDAyNTgsIDAuMDAyNTg0LCAwLjAwMjU4NiwgMC4wMDI1ODgsIDAuMDAyNTg4Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMTI1ODAyOwotICAgIGZ1bmN0aW9uIDogIigoQV5CKV5DSSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI5MDc1OCwgMC4zMzcwMjEsIDAuNTg1MzA3LCAwLjgwMjM1NywgMS4wOTA5NywgMS42Njc2NiwgMi4wMjgwNCIsIFwKLSAgICAgICAgICAiMC4zMDIxNjksIDAuMzQ4NDM3LCAwLjU5NjU1MywgMC44MTM2MjQsIDEuMTAyMjksIDEuNjc5LCAyLjAzOTE1IiwgXAotICAgICAgICAgICIwLjMxNTAyNywgMC4zNjEzMjIsIDAuNjA5NTIsIDAuODI2NjExLCAxLjExNTI2LCAxLjY5MTkzLCAyLjA1MjEyIiwgXAotICAgICAgICAgICIwLjMyNzU5MiwgMC4zNzM3MzEsIDAuNjIxOTM3LCAwLjgzOTAzMiwgMS4xMjc2MywgMS43MDQzLCAyLjA2NDU5IiwgXAotICAgICAgICAgICIwLjMzOTY2LCAwLjM4NTk1MiwgMC42MzQxNDYsIDAuODUxMjQ0LCAxLjEzOTg4LCAxLjcxNjU3LCAyLjA3NjcyIiwgXAotICAgICAgICAgICIwLjM1ODgxOSwgMC40MDUxMTIsIDAuNjUzMzE4LCAwLjg3MDMyOSwgMS4xNTg5OSwgMS43MzU2MSwgMi4wOTU4NSIsIFwKLSAgICAgICAgICAiMC4zNzU3MTcsIDAuNDIxODQxLCAwLjY3MDA2OCwgMC44ODcxNjgsIDEuMTc1ODgsIDEuNzUyNDQsIDIuMTEyNjUiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTg2MDU5LCAwLjI2ODgzNSwgMC43NTY3ODMsIDEuMTk0NDYsIDEuNzc5MjEsIDIuOTQ1ODMsIDMuNjgzIiwgXAotICAgICAgICAgICIwLjE4NjI5NywgMC4yNjg5MywgMC43NTU1ODgsIDEuMTk0MzQsIDEuNzc5MTgsIDIuOTQ0MywgMy42NzQ2NiIsIFwKLSAgICAgICAgICAiMC4xODYxNjUsIDAuMjY4NzY2LCAwLjc1NDk2LCAxLjE5MDgsIDEuNzc2MywgMi45NTA3OCwgMy42ODMwOCIsIFwKLSAgICAgICAgICAiMC4xODYyNzcsIDAuMjY4NzY4LCAwLjc1NTA1MiwgMS4xOTA5NCwgMS43Nzg5OSwgMi45NDU1OSwgMy42ODI2NiIsIFwKLSAgICAgICAgICAiMC4xODYxMDcsIDAuMjY4NzUzLCAwLjc1NTQ5OCwgMS4xOTA4NCwgMS43NzkwNCwgMi45NDM0NiwgMy42NzcyNSIsIFwKLSAgICAgICAgICAiMC4xODU5OTYsIDAuMjY4NzczLCAwLjc1NDkwOSwgMS4xOTQyNywgMS43NzkwNSwgMi45NDU4NywgMy42NzYiLCBcCi0gICAgICAgICAgIjAuMTg2MDE0LCAwLjI2ODY4MSwgMC43NTUwMjQsIDEuMTkxMjMsIDEuNzc5MDgsIDIuOTQ1NTMsIDMuNjc3NDEiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjc2NTAyLCAwLjMyODUzMSwgMC42MTEyODgsIDAuODU5MTExLCAxLjE4ODk1LCAxLjg0ODE0LCAyLjI2MDAzIiwgXAotICAgICAgICAgICIwLjI4Nzc2MywgMC4zMzk3NjQsIDAuNjIyNTA4LCAwLjg3MDM2MiwgMS4yMDAxOSwgMS44NTk0MywgMi4yNzEyNCIsIFwKLSAgICAgICAgICAiMC4zMDAzNzMsIDAuMzUyMzY5LCAwLjYzNTE1MiwgMC44ODI5ODIsIDEuMjEyODQsIDEuODcyMTEsIDIuMjgzODYiLCBcCi0gICAgICAgICAgIjAuMzExODQ3LCAwLjM2Mzg4MSwgMC42NDY2NDksIDAuODk0NTA3LCAxLjIyNDMzLCAxLjg4MzU3LCAyLjI5NTM5IiwgXAotICAgICAgICAgICIwLjMyMzA1MSwgMC4zNzUwODYsIDAuNjU3ODY0LCAwLjkwNTcyNywgMS4yMzU1MSwgMS44OTQ3MywgMi4zMDY2NiIsIFwKLSAgICAgICAgICAiMC4zNDAyMDgsIDAuMzkyMjQ4LCAwLjY3NTAzMiwgMC45MjI4NDksIDEuMjUyNywgMS45MTE4OSwgMi4zMjM3NyIsIFwKLSAgICAgICAgICAiMC4zNTUwNiwgMC40MDcxMTksIDAuNjg5ODg3LCAwLjkzNzYxNCwgMS4yNjc1NCwgMS45MjY3NywgMi4zMzg2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIwMjI4OSwgMC4yOTU1NTQsIDAuODQwNzMyLCAxLjMzMjExLCAxLjk4NTkzLCAzLjI5MTQ3LCA0LjExMzMzIiwgXAotICAgICAgICAgICIwLjIwMjA5MywgMC4yOTU0NDIsIDAuODQxMjk4LCAxLjMzMjA1LCAxLjk4NjA1LCAzLjI5NjQsIDQuMTEwMTkiLCBcCi0gICAgICAgICAgIjAuMjAyMTA1LCAwLjI5NTQ0MywgMC44NDIzNTIsIDEuMzMyMDUsIDEuOTgyNDMsIDMuMjk0ODcsIDQuMTEwMDYiLCBcCi0gICAgICAgICAgIjAuMjAyMTY4LCAwLjI5NTUwNywgMC44NDI4NDgsIDEuMzMyMDYsIDEuOTg0NzgsIDMuMjk2NDMsIDQuMTEwMjgiLCBcCi0gICAgICAgICAgIjAuMjAyMjU0LCAwLjI5NTQ3OCwgMC44NDIyMjksIDEuMzI5MzksIDEuOTg2MjMsIDMuMjkyODIsIDQuMTEzMiIsIFwKLSAgICAgICAgICAiMC4yMDIxNDEsIDAuMjk1NDY0LCAwLjg0MDc0NCwgMS4zMzIxNiwgMS45ODU2MiwgMy4yOTE0NywgNC4xMTMzMSIsIFwKLSAgICAgICAgICAiMC4yMDIwMTQsIDAuMjk1MzQ4LCAwLjg0MjIzMiwgMS4zMzI3LCAxLjk4NjMxLCAzLjI5NDI0LCA0LjEwOTg1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjM0NjIxOCwgMC4zODk4ODgsIDAuNjM0NjU4LCAwLjg1MDYwOCwgMS4xMzg0MywgMS43MTQxLCAyLjA3MzgyIiwgXAotICAgICAgICAgICIwLjM1ODAyMywgMC40MDE3MDcsIDAuNjQ2NDY2LCAwLjg2MjM4OSwgMS4xNTAyNiwgMS43MjU5MiwgMi4wODU2OCIsIFwKLSAgICAgICAgICAiMC4zNzIzODksIDAuNDE1OTkzLCAwLjY2MDc5LCAwLjg3NjczMiwgMS4xNjQ1NywgMS43NDAzNywgMi4wOTk5OSIsIFwKLSAgICAgICAgICAiMC4zODU4MTIsIDAuNDI5NDIsIDAuNjc0MjYsIDAuODkwMTk1LCAxLjE3ODA5LCAxLjc1MzcxLCAyLjExMzQ2IiwgXAotICAgICAgICAgICIwLjM5ODc5MiwgMC40NDI0NzksIDAuNjg3MjM3LCAwLjkwMzE2NSwgMS4xOTEwMywgMS43NjY2OSwgMi4xMjY0NiIsIFwKLSAgICAgICAgICAiMC40MTg5NzIsIDAuNDYyNjI4LCAwLjcwNzM5MSwgMC45MjMzMDUsIDEuMjExMTYsIDEuNzg2ODUsIDIuMTQ2NTciLCBcCi0gICAgICAgICAgIjAuNDM2MzUxLCAwLjQ3OTk0OCwgMC43MjQ3NTcsIDAuOTQwNywgMS4yMjg1OCwgMS44MDQxOCwgMi4xNjM5NyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNzQ3NzMsIDAuMjU3OTUxLCAwLjc0NzIsIDEuMTg2OTYsIDEuNzY5NzUsIDIuOTM5NjIsIDMuNjc2MDciLCBcCi0gICAgICAgICAgIjAuMTc0Nzc0LCAwLjI1Nzk0MSwgMC43NDgxMjMsIDEuMTg2NzEsIDEuNzY5NzUsIDIuOTQzODQsIDMuNjc2NTUiLCBcCi0gICAgICAgICAgIjAuMTc0ODE4LCAwLjI1Nzg3NiwgMC43NDY5NzMsIDEuMTg2OTEsIDEuNzcyMzksIDIuOTQ0MzUsIDMuNjc2NTQiLCBcCi0gICAgICAgICAgIjAuMTc0ODE5LCAwLjI1NzkxLCAwLjc0NzA2MywgMS4xODY4OSwgMS43Njg4NywgMi45NDM3NiwgMy42NzYyNCIsIFwKLSAgICAgICAgICAiMC4xNzQ4MzIsIDAuMjU3NzQ3LCAwLjc0ODEyLCAxLjE4NjYyLCAxLjc2OTc1LCAyLjk0Mzk2LCAzLjY3NjYyIiwgXAotICAgICAgICAgICIwLjE3NDcyMSwgMC4yNTc5NTQsIDAuNzQ3MTQ2LCAxLjE4NjYyLCAxLjc2OTU2LCAyLjk0Mzc4LCAzLjY3NjIyIiwgXAotICAgICAgICAgICIwLjE3NDc1NywgMC4yNTc5MjksIDAuNzQ2OTg4LCAxLjE4NjkyLCAxLjc3MjcsIDIuOTQxNjUsIDMuNjc1OTYiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzY2NDAxLCAwLjQxNjY5OSwgMC42OTY2MDksIDAuOTQzNTE1LCAxLjI3Mjk0LCAxLjkzMTIsIDIuMzQyNjUiLCBcCi0gICAgICAgICAgIjAuMzc3ODU5LCAwLjQyODE1MSwgMC43MDgwNTgsIDAuOTU0OTg1LCAxLjI4NDIxLCAxLjk0MjY3LCAyLjM1NDE5IiwgXAotICAgICAgICAgICIwLjM5MTY0LCAwLjQ0MTkzNSwgMC43MjE4MzgsIDAuOTY4NzY5LCAxLjI5ODEsIDEuOTU2NTUsIDIuMzY3OTYiLCBcCi0gICAgICAgICAgIjAuNDA1MzM2LCAwLjQ1NTYzMSwgMC43MzU1MzcsIDAuOTgyNDcsIDEuMzExNywgMS45NzAxNSwgMi4zODE2NyIsIFwKLSAgICAgICAgICAiMC40MTkxNDgsIDAuNDY5NDQxLCAwLjc0OTM0OSwgMC45OTYyODgsIDEuMzI1NTEsIDEuOTgzOTIsIDIuMzk1NiIsIFwKLSAgICAgICAgICAiMC40NDA5NDIsIDAuNDkxMjM3LCAwLjc3MTE1LCAxLjAxODA4LCAxLjM0NzMsIDIuMDA1NzMsIDIuNDE3MjciLCBcCi0gICAgICAgICAgIjAuNDYwMzcyLCAwLjUxMDY3MiwgMC43OTA1NzcsIDEuMDM3NTIsIDEuMzY2ODEsIDIuMDI1MzQsIDIuNDM2NzIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTk0NDM0LCAwLjI4NzU4LCAwLjgzMzkyNSwgMS4zMjMxNCwgMS45NzUwOSwgMy4yODQyNSwgNC4xMDEzNyIsIFwKLSAgICAgICAgICAiMC4xOTQzNDQsIDAuMjg3NzQ3LCAwLjgzMzcxOCwgMS4zMjMwNiwgMS45NzY0OCwgMy4yODM4NSwgNC4xMDEyIiwgXAotICAgICAgICAgICIwLjE5NDQsIDAuMjg3NzQ2LCAwLjgzMzczLCAxLjMyMzA0LCAxLjk3NDg1LCAzLjI4MDU2LCA0LjEwMTI4IiwgXAotICAgICAgICAgICIwLjE5NDM4NSwgMC4yODc3MjcsIDAuODMzNzU5LCAxLjMyMywgMS45NzYzNywgMy4yODMxNiwgNC4xMDEwOSIsIFwKLSAgICAgICAgICAiMC4xOTQzNzYsIDAuMjg3NzI2LCAwLjgzMzc3OSwgMS4zMjMwMSwgMS45NzU2LCAzLjI4MjM3LCA0LjEwMTI1IiwgXAotICAgICAgICAgICIwLjE5NDM3NSwgMC4yODc3MjYsIDAuODM0MjQxLCAxLjMyMzAxLCAxLjk3NTY0LCAzLjI4MjMzLCA0LjA5OTc4IiwgXAotICAgICAgICAgICIwLjE5NDQyNywgMC4yODc3NTQsIDAuODMzNzY5LCAxLjMyMzA0LCAxLjk3NjUxLCAzLjI4NDA5LCA0LjEwMTAxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI4NjEyNCwgMC4zMzIzNzEsIDAuNTgwNjM3LCAwLjc5NzcxMSwgMS4wODYzOSwgMS42NjMwMywgMi4wMjMzNCIsIFwKLSAgICAgICAgICAiMC4yOTY0MiwgMC4zNDI3MTksIDAuNTkxMDE5LCAwLjgwODA3OCwgMS4wOTY3MSwgMS42NzM0MiwgMi4wMzM2NyIsIFwKLSAgICAgICAgICAiMC4zMDk0ODIsIDAuMzU1NDI3LCAwLjYwMzcyNCwgMC44MjA3OTQsIDEuMTA5NDUsIDEuNjg2MTgsIDIuMDQ2NCIsIFwKLSAgICAgICAgICAiMC4zMjIzMSwgMC4zNjg2MTMsIDAuNjE2Nzg2LCAwLjgzMzgyLCAxLjEyMjUsIDEuNjk5MTgsIDIuMDU5NDYiLCBcCi0gICAgICAgICAgIjAuMzM1MDk0LCAwLjM4MTQwMywgMC42Mjk2MTYsIDAuODQ2Njk1LCAxLjEzNTQyLCAxLjcxMjAyLCAyLjA3MjMxIiwgXAotICAgICAgICAgICIwLjM1NjAwMSwgMC40MDIyNDQsIDAuNjUwNTE1LCAwLjg2NzQ1OSwgMS4xNTYyMSwgMS43MzI5NiwgMi4wOTMxNCIsIFwKLSAgICAgICAgICAiMC4zNzQzNzgsIDAuNDIwNTA2LCAwLjY2ODc0LCAwLjg4NTY4MSwgMS4xNzQ0NCwgMS43NTExNywgMi4xMTEzOSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xODYyNTEsIDAuMjY4ODUyLCAwLjc1NjU5MSwgMS4xOTQ0NCwgMS43Nzk0LCAyLjk1MDg1LCAzLjY3Njg3IiwgXAotICAgICAgICAgICIwLjE4NjA1MiwgMC4yNjg3NzksIDAuNzU2ODExLCAxLjE5NDQ3LCAxLjc3OTI0LCAyLjk0NTk5LCAzLjY3NDgzIiwgXAotICAgICAgICAgICIwLjE4NjE1MiwgMC4yNjg3MjMsIDAuNzU1MjU2LCAxLjE5NDQyLCAxLjc3OTI0LCAyLjk0NjQyLCAzLjY3NTI3IiwgXAotICAgICAgICAgICIwLjE4NjI5MywgMC4yNjg5MSwgMC43NTY3ODQsIDEuMTk0NDEsIDEuNzc5MzcsIDIuOTQ1OTUsIDMuNjc2MzgiLCBcCi0gICAgICAgICAgIjAuMTg2MTg2LCAwLjI2ODc3MSwgMC43NTUxMjgsIDEuMTk0NDIsIDEuNzc5MzgsIDIuOTUwMzYsIDMuNjc1MjYiLCBcCi0gICAgICAgICAgIjAuMTg2MDQzLCAwLjI2ODY4MiwgMC43NTY3NSwgMS4xOTM4NywgMS43NzkyNSwgMi45NDM3OCwgMy42NzY3NSIsIFwKLSAgICAgICAgICAiMC4xODU5NzQsIDAuMjY4Njc1LCAwLjc1NjcxNywgMS4xOTM3MSwgMS43NzkyNiwgMi45NDM3NywgMy42NzUzMSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yNzAzMjQsIDAuMzIyMzc3LCAwLjYwNTE2NiwgMC44NTI5MjIsIDEuMTgyODYsIDEuODQyMDgsIDIuMjUzOTYiLCBcCi0gICAgICAgICAgIjAuMjgwNTQ2LCAwLjMzMjU3MiwgMC42MTUzNTQsIDAuODYzMjE4LCAxLjE5MzA3LCAxLjg1MjMxLCAyLjI2NDE2IiwgXAotICAgICAgICAgICIwLjI5Mjg5OSwgMC4zNDQ5MDUsIDAuNjI3NzI4LCAwLjg3NTU3NSwgMS4yMDU1MiwgMS44NjQ3NywgMi4yNzY1OCIsIFwKLSAgICAgICAgICAiMC4zMDQ1NTQsIDAuMzU2NjM2LCAwLjYzOTUwMywgMC44ODczMjksIDEuMjE3MywgMS44NzY1NiwgMi4yODgyOCIsIFwKLSAgICAgICAgICAiMC4zMTYzMjgsIDAuMzY4MzY0LCAwLjY1MTE3LCAwLjg5OTA2MiwgMS4yMjg4NywgMS44ODgxMiwgMi4zMDAwMyIsIFwKLSAgICAgICAgICAiMC4zMzUzMDEsIDAuMzg3MzM4LCAwLjY3MDE1NywgMC45MTc5MDcsIDEuMjQ3ODQsIDEuOTA3MDksIDIuMzE4OTQiLCBcCi0gICAgICAgICAgIjAuMzUxNjM1LCAwLjQwMzY0NywgMC42ODY0NjksIDAuOTM0Mjg2LCAxLjI2NDE2LCAxLjkyMzQxLCAyLjMzNTI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIwMjE1MywgMC4yOTU0ODcsIDAuODQxMDY0LCAxLjMyOTksIDEuOTg2MDksIDMuMjkyMTEsIDQuMTExNjEiLCBcCi0gICAgICAgICAgIjAuMjAyMTA2LCAwLjI5NTQ0MiwgMC44NDI4MjgsIDEuMzMyMDgsIDEuOTg1OSwgMy4yOTYzNywgNC4xMTA3NCIsIFwKLSAgICAgICAgICAiMC4yMDIwOTQsIDAuMjk1NDMxLCAwLjg0MzM0OCwgMS4zMzIwNiwgMS45ODUxOCwgMy4yOTQ3LCA0LjEwOTk0IiwgXAotICAgICAgICAgICIwLjIwMjEzOSwgMC4yOTU0OTEsIDAuODQzNDI5LCAxLjMzMjA3LCAxLjk4MTgsIDMuMjk0NDcsIDQuMTEwMjMiLCBcCi0gICAgICAgICAgIjAuMjAyMTQ5LCAwLjI5NTQ3NSwgMC44NDI4NDEsIDEuMzI5ODYsIDEuOTg2NDEsIDMuMjkyNTcsIDQuMTEyNzQiLCBcCi0gICAgICAgICAgIjAuMjAyMTA3LCAwLjI5NTM5MywgMC44NDIyMDYsIDEuMzMwNTcsIDEuOTg2MzUsIDMuMjk0MjgsIDQuMTA5OTYiLCBcCi0gICAgICAgICAgIjAuMjAyMDI1LCAwLjI5NTM2LCAwLjg0MjMxNCwgMS4zMzAzNCwgMS45ODYzLCAzLjI5Mzg0LCA0LjEwOTczIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjM1MjIzMSwgMC4zOTYyMzEsIDAuNjQxNTU4LCAwLjg1Nzc0MiwgMS4xNDU3NCwgMS43MjE1OCwgMi4wODE0MSIsIFwKLSAgICAgICAgICAiMC4zNjQxOTEsIDAuNDA4MTMzLCAwLjY1MzQ3LCAwLjg2OTY0NywgMS4xNTc2NCwgMS43MzM0OSwgMi4wOTMzNCIsIFwKLSAgICAgICAgICAiMC4zNzg0ODIsIDAuNDIyMjg3LCAwLjY2NzY0MSwgMC44ODM4MTYsIDEuMTcxODcsIDEuNzQ3NywgMi4xMDc1MiIsIFwKLSAgICAgICAgICAiMC4zOTE4NDIsIDAuNDM1NjYzLCAwLjY4MDk4NSwgMC44OTcxNzcsIDEuMTg1MTgsIDEuNzYxMDIsIDIuMTIwOTQiLCBcCi0gICAgICAgICAgIjAuNDA0NTIxLCAwLjQ0ODM0MiwgMC42OTM2NzEsIDAuOTA5ODU0LCAxLjE5Nzg1LCAxLjc3MzcsIDIuMTMzNjciLCBcCi0gICAgICAgICAgIjAuNDI0MzcxLCAwLjQ2ODE3NywgMC43MTM1MzEsIDAuOTI5NzA1LCAxLjIxNzcxLCAxLjc5MzY2LCAyLjE1MzQiLCBcCi0gICAgICAgICAgIjAuNDQxMzEyLCAwLjQ4NTI3MSwgMC43MzA2NDMsIDAuOTQ2Nzg0LCAxLjIzNDc4LCAxLjgxMDYzLCAyLjE3MDUyIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE3NDYwMiwgMC4yNTc4MTksIDAuNzQ4MTcsIDEuMTg3NzgsIDEuNzcwNzMsIDIuOTQzOTUsIDMuNjc2OTUiLCBcCi0gICAgICAgICAgIjAuMTc0NTI5LCAwLjI1Nzc1NywgMC43NDc2NjEsIDEuMTg3ODMsIDEuNzcwNjYsIDIuOTQzNjgsIDMuNjc2MzIiLCBcCi0gICAgICAgICAgIjAuMTc0NTE1LCAwLjI1Nzc0LCAwLjc0ODE4MSwgMS4xODc4NSwgMS43NzMyNSwgMi45NDM3NywgMy42NzYyNCIsIFwKLSAgICAgICAgICAiMC4xNzQ1NzEsIDAuMjU3NjA1LCAwLjc0OTMxMiwgMS4xODc3OSwgMS43NzA3MSwgMi45NDM5MiwgMy42NzcxNSIsIFwKLSAgICAgICAgICAiMC4xNzQ1MywgMC4yNTc2NjMsIDAuNzQ5MzgxLCAxLjE4Nzc5LCAxLjc3MDcsIDIuOTQzODUsIDMuNjc2NTgiLCBcCi0gICAgICAgICAgIjAuMTc0NTQsIDAuMjU3NTUsIDAuNzQ4MTg0LCAxLjE4Nzc5LCAxLjc3MjIzLCAyLjk0NDY2LCAzLjY3NjA1IiwgXAotICAgICAgICAgICIwLjE3NDUxOCwgMC4yNTc1NzEsIDAuNzQ5NTk5LCAxLjE4Nzc3LCAxLjc3MDcxLCAyLjk0Mzg2LCAzLjY3NTk1Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjM2NDA3OCwgMC40MTQzNzMsIDAuNjk0Mjg5LCAwLjk0MTE5MywgMS4yNzA0NSwgMS45Mjg4NSwgMi4zNDAzOSIsIFwKLSAgICAgICAgICAiMC4zNzQ2NDIsIDAuNDI0OTQsIDAuNzA0ODQ4LCAwLjk1MTc2NSwgMS4yODA5OCwgMS45Mzk0NiwgMi4zNTA5NyIsIFwKLSAgICAgICAgICAiMC4zODc2OTYsIDAuNDM3OTkzLCAwLjcxNzg3NSwgMC45NjQ4MzcsIDEuMjk0MTIsIDEuOTUyNTEsIDIuMzYzOTciLCBcCi0gICAgICAgICAgIjAuNDAwOTczLCAwLjQ1MTI1OCwgMC43MzExNjUsIDAuOTc4MDg3LCAxLjMwNzQxLCAxLjk2NTg3LCAyLjM3NzI5IiwgXAotICAgICAgICAgICIwLjQxNDM5NCwgMC40NjQ2OCwgMC43NDQ1OTEsIDAuOTkxNTE1LCAxLjMyMDc2LCAxLjk3OTIzLCAyLjM5MDcyIiwgXAotICAgICAgICAgICIwLjQzNjA4MywgMC40ODYzODYsIDAuNzY2Mjg4LCAxLjAxMzIyLCAxLjM0MjQyLCAyLjAwMDg4LCAyLjQxMjQyIiwgXAotICAgICAgICAgICIwLjQ1NTI5MSwgMC41MDU1NzcsIDAuNzg1NDczLCAxLjAzMjQxLCAxLjM2MTY4LCAyLjAyMDA5LCAyLjQzMTY2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE5Mzk3OSwgMC4yODczNTIsIDAuODM0MjM4LCAxLjMyMzU0LCAxLjk3Njc1LCAzLjI4MzQ3LCA0LjEwMTU3IiwgXAotICAgICAgICAgICIwLjE5NDAwNSwgMC4yODczMzYsIDAuODM0MTgyLCAxLjMyMzQ2LCAxLjk3NjQ3LCAzLjI4NDIyLCA0LjEwMTQ5IiwgXAotICAgICAgICAgICIwLjE5Mzk2MiwgMC4yODczMTUsIDAuODM0MTc5LCAxLjMyMzQ0LCAxLjk3NjI0LCAzLjI4NDA3LCA0LjEwMTE5IiwgXAotICAgICAgICAgICIwLjE5Mzk2NCwgMC4yODcyOTIsIDAuODM0MTg1LCAxLjMyMzQ3LCAxLjk3NjYyLCAzLjI4MjQ5LCA0LjEwMTExIiwgXAotICAgICAgICAgICIwLjE5Mzk2LCAwLjI4NzUxMiwgMC44MzQyMzYsIDEuMzIzNDcsIDEuOTc2MzksIDMuMjg0MDUsIDQuMTAxMTEiLCBcCi0gICAgICAgICAgIjAuMTk0MDA2LCAwLjI4NzM1MiwgMC44MzQxOTgsIDEuMzIzNjIsIDEuOTc2NDUsIDMuMjgzMTQsIDQuMTAxMzEiLCBcCi0gICAgICAgICAgIjAuMTk0MDMxLCAwLjI4NzQ5LCAwLjgzNDE5NSwgMS4zMjM1MywgMS45NzY1LCAzLjI4Mzc3LCA0LjEwMTE2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNJIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yODM2MzgsIDAuMzI5OTQsIDAuNTc4MTkyLCAwLjc5NTI3MSwgMS4wODM5NiwgMS42NjA2OCwgMi4wMjA5MiIsIFwKLSAgICAgICAgICAiMC4yOTMzNTIsIDAuMzM5NjIxLCAwLjU4Nzk0MSwgMC44MDUwMDQsIDEuMDkzNjMsIDEuNjcwMzIsIDIuMDMwNjUiLCBcCi0gICAgICAgICAgIjAuMzA1Njc0LCAwLjM1MTYzNSwgMC41OTk5MjcsIDAuODE3MDExLCAxLjEwNTY1LCAxLjY4MjQ2LCAyLjA0MjUxIiwgXAotICAgICAgICAgICIwLjMxNjc5OCwgMC4zNjI4NjYsIDAuNjExMTI1LCAwLjgyODIxLCAxLjExNjkyLCAxLjY5MzQ5LCAyLjA1MzciLCBcCi0gICAgICAgICAgIjAuMzI4NzAxLCAwLjM3NTAxMSwgMC42MjMyNTEsIDAuODQwMjI4LCAxLjEyODk0LCAxLjcwNTYyLCAyLjA2NTgyIiwgXAotICAgICAgICAgICIwLjM0ODE2NCwgMC4zOTQzOTksIDAuNjQyNzMxLCAwLjg1OTY1OCwgMS4xNDg0MywgMS43MjUwOCwgMi4wODUzMSIsIFwKLSAgICAgICAgICAiMC4zNjc1NjksIDAuNDEzNzEzLCAwLjY2MjAxNywgMC44Nzg5NzIsIDEuMTY3NzEsIDEuNzQ0NCwgMi4xMDQ1OCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xODYyNDMsIDAuMjY4Nzg3LCAwLjc1NTE2MiwgMS4xOTQ0NiwgMS43Nzk0NSwgMi45NDQzNCwgMy42NzY4OCIsIFwKLSAgICAgICAgICAiMC4xODYxNTIsIDAuMjY4Nzg1LCAwLjc1Njc2MywgMS4xOTEzNCwgMS43NzkxNywgMi45NDU4NCwgMy42ODMwNiIsIFwKLSAgICAgICAgICAiMC4xODYxNzksIDAuMjY4NzIsIDAuNzU1MDgxLCAxLjE5NDM4LCAxLjc3NjA4LCAyLjk1MDUyLCAzLjY3Njk5IiwgXAotICAgICAgICAgICIwLjE4NjEyNywgMC4yNjg3NDQsIDAuNzU1MjIyLCAxLjE5NDM1LCAxLjc3OTI2LCAyLjk1MDQyLCAzLjY3NjgiLCBcCi0gICAgICAgICAgIjAuMTg2MDI5LCAwLjI2ODgxMiwgMC43NTY2NzEsIDEuMTk0MDIsIDEuNzc5MDgsIDIuOTQ2MTUsIDMuNjc0MDIiLCBcCi0gICAgICAgICAgIjAuMTg1OTM0LCAwLjI2ODczNiwgMC43NTQ3MDcsIDEuMTkzNjUsIDEuNzc5MDcsIDIuOTQ1NjIsIDMuNjc2MjciLCBcCi0gICAgICAgICAgIjAuMTg1ODEzLCAwLjI2ODY5NSwgMC43NTQ2NjMsIDEuMTkzODYsIDEuNzc5MDMsIDIuOTQ2MjIsIDMuNjc3MzQiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjYwOTc5LCAwLjMxMjk5NiwgMC41OTU4MzIsIDAuODQzNjgyLCAxLjE3MzQ5LCAxLjgzMjc1LCAyLjI0NDYzIiwgXAotICAgICAgICAgICIwLjI3MDM2NywgMC4zMjIzNTUsIDAuNjA1MTksIDAuODUzMDQ3LCAxLjE4Mjg4LCAxLjg0MjEzLCAyLjI1Mzk2IiwgXAotICAgICAgICAgICIwLjI4MjA1LCAwLjMzNDA2NSwgMC42MTY4OTcsIDAuODY0NzUzLCAxLjE5NDU3LCAxLjg1MzgxLCAyLjI2NTY2IiwgXAotICAgICAgICAgICIwLjI5MzQ0NCwgMC4zNDU1MDQsIDAuNjI4MzMzLCAwLjg3NjIxMywgMS4yMDYsIDEuODY1MjQsIDIuMjc3MTUiLCBcCi0gICAgICAgICAgIjAuMzA2MywgMC4zNTgzMDksIDAuNjQxMTY1LCAwLjg4OTA0NiwgMS4yMTg4NCwgMS44NzgwOCwgMi4yODk5MSIsIFwKLSAgICAgICAgICAiMC4zMjU4MzUsIDAuMzc3OTA4LCAwLjY2MDc0NywgMC45MDg1MDUsIDEuMjM4NDQsIDEuODk3NjYsIDIuMzA5NTIiLCBcCi0gICAgICAgICAgIjAuMzQzMDgyLCAwLjM5NTEyMSwgMC42Nzc5OSwgMC45MjU4NDQsIDEuMjU1NjgsIDEuOTE0OTMsIDIuMzI2NzciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjAyMTEyLCAwLjI5NTQ0NiwgMC44NDMzMjQsIDEuMzMyMDcsIDEuOTg2NzYsIDMuMjkyNDcsIDQuMTEwNTIiLCBcCi0gICAgICAgICAgIjAuMjAyMjI4LCAwLjI5NTQ5NywgMC44NDMwMTcsIDEuMzMyMDMsIDEuOTgzNjgsIDMuMjkzNjEsIDQuMTEwMzIiLCBcCi0gICAgICAgICAgIjAuMjAyMjE5LCAwLjI5NTUwMywgMC44NDMxMSwgMS4zMzIwNSwgMS45ODM3MiwgMy4yOTE3OCwgNC4xMTA0NiIsIFwKLSAgICAgICAgICAiMC4yMDIyNDUsIDAuMjk1NDU5LCAwLjg0MjI1NywgMS4zMjkzNywgMS45ODYyOCwgMy4yOTMwMywgNC4xMTMyNSIsIFwKLSAgICAgICAgICAiMC4yMDIwOTYsIDAuMjk1NTQ5LCAwLjg0MjI3OCwgMS4zMjkzMywgMS45ODYyMiwgMy4yOTQyOCwgNC4xMDk2NyIsIFwKLSAgICAgICAgICAiMC4yMDIwODEsIDAuMjk1NDMsIDAuODQxNDQyLCAxLjMyOTgzLCAxLjk4NjAxLCAzLjI5MjI3LCA0LjExMTI2IiwgXAotICAgICAgICAgICIwLjIwMjA1OCwgMC4yOTU0MzYsIDAuODQyMTQ2LCAxLjMzMjEzLCAxLjk4NjE2LCAzLjI5NDExLCA0LjExMDE4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNJIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zNDE3NzgsIDAuMzg1NTgzLCAwLjYzMDkxMiwgMC44NDcxMTQsIDEuMTM1MTEsIDEuNzEwOTYsIDIuMDcwODQiLCBcCi0gICAgICAgICAgIjAuMzUyMzE1LCAwLjM5NjIwNSwgMC42NDE1MTgsIDAuODU3NzE1LCAxLjE0NTcxLCAxLjcyMTU2LCAyLjA4MTUxIiwgXAotICAgICAgICAgICIwLjM2NTczOCwgMC40MDk2MTEsIDAuNjU0OTMyLCAwLjg3MTExOCwgMS4xNTkxMiwgMS43MzQ5NiwgMi4wOTQ5IiwgXAotICAgICAgICAgICIwLjM3ODM0NSwgMC40MjIxNTMsIDAuNjY3NDkxLCAwLjg4MzY3NCwgMS4xNzE2NywgMS43NDc1MiwgMi4xMDc0NyIsIFwKLSAgICAgICAgICAiMC4zOTE5MjMsIDAuNDM1NzgyLCAwLjY4MTA5MSwgMC44OTcyOSwgMS4xODUyOCwgMS43NjExMywgMi4xMjEwNyIsIFwKLSAgICAgICAgICAiMC40MTMwODYsIDAuNDU2ODksIDAuNzAyMjY0LCAwLjkxODQxMiwgMS4yMDY0MSwgMS43ODIyNiwgMi4xNDIzMyIsIFwKLSAgICAgICAgICAiMC40MzE0NTEsIDAuNDc1MjYxLCAwLjcyMDU5NywgMC45MzY3ODEsIDEuMjI0NzgsIDEuODAwNjIsIDIuMTYwNTYiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTczNDM0LCAwLjI1NzIwMSwgMC43NDkyMDksIDEuMTg3NzcsIDEuNzcwNjQsIDIuOTQzNTIsIDMuNjc2NjUiLCBcCi0gICAgICAgICAgIjAuMTczMzQyLCAwLjI1NzM0NSwgMC43NDkzMDIsIDEuMTg3NzQsIDEuNzcwNDcsIDIuOTQ0MDcsIDMuNjc2MzUiLCBcCi0gICAgICAgICAgIjAuMTczMzM3LCAwLjI1NzM2NCwgMC43NDkzNjIsIDEuMTg3OCwgMS43NzE4OCwgMi45NDAyMiwgMy42NzcwMiIsIFwKLSAgICAgICAgICAiMC4xNzM0MjksIDAuMjU3MzIsIDAuNzQ5Mzg2LCAxLjE4NzgsIDEuNzcyNTYsIDIuOTQwMjEsIDMuNjc2OTUiLCBcCi0gICAgICAgICAgIjAuMTczMzU2LCAwLjI1NzM1LCAwLjc0OTI5NCwgMS4xODc3NiwgMS43NzIzNiwgMi45NDQyOSwgMy42NzY4OCIsIFwKLSAgICAgICAgICAiMC4xNzM0MzEsIDAuMjU3MjcyLCAwLjc0OTU0MiwgMS4xODc4MSwgMS43NzA1MiwgMi45Mzk5MiwgMy42NzU5MSIsIFwKLSAgICAgICAgICAiMC4xNzM0MzIsIDAuMjU3MjEyLCAwLjc0OTM4LCAxLjE4NzgsIDEuNzcyNTQsIDIuOTQwMjIsIDMuNjc2OSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zNDMyNCwgMC4zOTMwODUsIDAuNjczMTI0LCAwLjkyMDEzNSwgMS4yNDkzNCwgMS45MDc5MiwgMi4zMTk0NCIsIFwKLSAgICAgICAgICAiMC4zNTQwNzEsIDAuNDAzOTA2LCAwLjY4MzkwNCwgMC45MzA5MDIsIDEuMjYwMTksIDEuOTE4NzIsIDIuMzMwMjgiLCBcCi0gICAgICAgICAgIjAuMzY3OTcyLCAwLjQxNzgxNCwgMC42OTc4NzEsIDAuOTQ0Nzk0LCAxLjI3NDEsIDEuOTMyNjQsIDIuMzQ0MjIiLCBcCi0gICAgICAgICAgIjAuMzgwNzAxLCAwLjQzMDU2OSwgMC43MTA2MjEsIDAuOTU3NTUyLCAxLjI4NjgzLCAxLjk0NTM5LCAyLjM1Njk2IiwgXAotICAgICAgICAgICIwLjM5NDI0OSwgMC40NDQwNzgsIDAuNzI0MTI3LCAwLjk3MTA1NywgMS4zMDAzMywgMS45NTg5MiwgMi4zNzA0NSIsIFwKLSAgICAgICAgICAiMC40MTYwNzIsIDAuNDY1OTQ3LCAwLjc0NjAwNCwgMC45OTI5MzUsIDEuMzIyMywgMS45ODA3OCwgMi4zOTIzNCIsIFwKLSAgICAgICAgICAiMC40MzUyNDIsIDAuNDg1MTE1LCAwLjc2NTEyNCwgMS4wMTIwNywgMS4zNDEzNSwgMS45OTk5LCAyLjQxMTQ1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE5MDE3MSwgMC4yODQ5MjksIDAuODM0MzE3LCAxLjMyMzYyLCAxLjk3NjQzLCAzLjI4MzA2LCA0LjEwMTQzIiwgXAotICAgICAgICAgICIwLjE5MDE4MSwgMC4yODQ5MTcsIDAuODM0MjU5LCAxLjMyMzY3LCAxLjk3NjI0LCAzLjI4MzE4LCA0LjEwMTQxIiwgXAotICAgICAgICAgICIwLjE5MDE5OSwgMC4yODQ3MjYsIDAuODM0MjI1LCAxLjMyMzYsIDEuOTc2NDMsIDMuMjgyNzcsIDQuMTAwNzEiLCBcCi0gICAgICAgICAgIjAuMTkwMTg4LCAwLjI4NDkxMywgMC44MzQxNTYsIDEuMzIzNjcsIDEuOTc2MjMsIDMuMjgzOTUsIDQuMDk5ODEiLCBcCi0gICAgICAgICAgIjAuMTkwMTk0LCAwLjI4NDkzNiwgMC44MzQyMzYsIDEuMzIzNTEsIDEuOTc2MTMsIDMuMjgzMDYsIDQuMDk5ODQiLCBcCi0gICAgICAgICAgIjAuMTkwMTc2LCAwLjI4NDczNCwgMC44MzQzMjksIDEuMzIzNiwgMS45NzY0MywgMy4yODI3NSwgNC4wOTk4NCIsIFwKLSAgICAgICAgICAiMC4xOTAxOTcsIDAuMjg0OTg0LCAwLjgzNDIzMSwgMS4zMjM0OCwgMS45NzY1LCAzLjI4MTUzLCA0LjEwMDIxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyODAzLCAwLjAwMjgxMSwgMC4wMDI4MjQsIDAuMDAyODI3LCAwLjAwMjgyOCwgMC4wMDI4MywgMC4wMDI4MyIsIFwKLSAgICAgICAgICAiMC4wMDI4MDEsIDAuMDAyODA5LCAwLjAwMjgyMiwgMC4wMDI4MjUsIDAuMDAyODI2LCAwLjAwMjgyOCwgMC4wMDI4MjgiLCBcCi0gICAgICAgICAgIjAuMDAyOCwgMC4wMDI4MDgsIDAuMDAyODIxLCAwLjAwMjgyMywgMC4wMDI4MjUsIDAuMDAyODI3LCAwLjAwMjgyNyIsIFwKLSAgICAgICAgICAiMC4wMDI3OTgsIDAuMDAyODA3LCAwLjAwMjgyLCAwLjAwMjgyMiwgMC4wMDI4MjUsIDAuMDAyODI1LCAwLjAwMjgyNSIsIFwKLSAgICAgICAgICAiMC4wMDI3OTcsIDAuMDAyODA2LCAwLjAwMjgxOCwgMC4wMDI4MjIsIDAuMDAyODIzLCAwLjAwMjgyNCwgMC4wMDI4MjUiLCBcCi0gICAgICAgICAgIjAuMDAyNzk1LCAwLjAwMjgwNCwgMC4wMDI4MTcsIDAuMDAyODIsIDAuMDAyODIxLCAwLjAwMjgyMywgMC4wMDI4MjMiLCBcCi0gICAgICAgICAgIjAuMDAyNzkzLCAwLjAwMjgwMiwgMC4wMDI4MTYsIDAuMDAyODE5LCAwLjAwMjgyLCAwLjAwMjgyMiwgMC4wMDI4MjIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDE2NzgsIDAuMDAxNjg2LCAwLjAwMTY5OSwgMC4wMDE3MDIsIDAuMDAxNzA0LCAwLjAwMTcwNSwgMC4wMDE3MDYiLCBcCi0gICAgICAgICAgIjAuMDAxNjY4LCAwLjAwMTY3NywgMC4wMDE2OSwgMC4wMDE2OTMsIDAuMDAxNjk0LCAwLjAwMTY5NiwgMC4wMDE2OTYiLCBcCi0gICAgICAgICAgIjAuMDAxNjY0LCAwLjAwMTY3MiwgMC4wMDE2ODUsIDAuMDAxNjg4LCAwLjAwMTY5LCAwLjAwMTY5MiwgMC4wMDE2OTIiLCBcCi0gICAgICAgICAgIjAuMDAxNjYxLCAwLjAwMTY2OSwgMC4wMDE2ODMsIDAuMDAxNjg2LCAwLjAwMTY4NywgMC4wMDE2ODksIDAuMDAxNjkiLCBcCi0gICAgICAgICAgIjAuMDAxNjU5LCAwLjAwMTY2NywgMC4wMDE2ODEsIDAuMDAxNjgzLCAwLjAwMTY4NSwgMC4wMDE2ODcsIDAuMDAxNjg3IiwgXAotICAgICAgICAgICIwLjAwMTY1NSwgMC4wMDE2NjQsIDAuMDAxNjc4LCAwLjAwMTY4MSwgMC4wMDE2ODMsIDAuMDAxNjg0LCAwLjAwMTY4NSIsIFwKLSAgICAgICAgICAiMC4wMDE2NTQsIDAuMDAxNjYyLCAwLjAwMTY3NiwgMC4wMDE2NzksIDAuMDAxNjgxLCAwLjAwMTY4MywgMC4wMDE2ODMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI3OTMsIDAuMDAyODAxLCAwLjAwMjgxNCwgMC4wMDI4MTcsIDAuMDAyODE4LCAwLjAwMjgyLCAwLjAwMjgyIiwgXAotICAgICAgICAgICIwLjAwMjc5MywgMC4wMDI4MDEsIDAuMDAyODE0LCAwLjAwMjgxOCwgMC4wMDI4MTgsIDAuMDAyODE5LCAwLjAwMjgxOSIsIFwKLSAgICAgICAgICAiMC4wMDI3OSwgMC4wMDI3OTksIDAuMDAyODExLCAwLjAwMjgxNCwgMC4wMDI4MTYsIDAuMDAyODE3LCAwLjAwMjgxOCIsIFwKLSAgICAgICAgICAiMC4wMDI3ODcsIDAuMDAyNzk1LCAwLjAwMjgwOCwgMC4wMDI4MTEsIDAuMDAyODEzLCAwLjAwMjgxNCwgMC4wMDI4MTUiLCBcCi0gICAgICAgICAgIjAuMDAyNzgzLCAwLjAwMjc5MSwgMC4wMDI4MDQsIDAuMDAyODA3LCAwLjAwMjgwOSwgMC4wMDI4MTEsIDAuMDAyODExIiwgXAotICAgICAgICAgICIwLjAwMjc3NywgMC4wMDI3ODUsIDAuMDAyNzk5LCAwLjAwMjgwMiwgMC4wMDI4MDQsIDAuMDAyODA1LCAwLjAwMjgwNiIsIFwKLSAgICAgICAgICAiMC4wMDI3NzEsIDAuMDAyNzgsIDAuMDAyNzk0LCAwLjAwMjc5NywgMC4wMDI3OTksIDAuMDAyOCwgMC4wMDI4MDEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDE3NTMsIDAuMDAxNzYxLCAwLjAwMTc3NCwgMC4wMDE3NzcsIDAuMDAxNzc4LCAwLjAwMTc4LCAwLjAwMTc4IiwgXAotICAgICAgICAgICIwLjAwMTc0OSwgMC4wMDE3NTcsIDAuMDAxNzcsIDAuMDAxNzczLCAwLjAwMTc3NSwgMC4wMDE3NzYsIDAuMDAxNzc3IiwgXAotICAgICAgICAgICIwLjAwMTc0MiwgMC4wMDE3NTEsIDAuMDAxNzY0LCAwLjAwMTc2NywgMC4wMDE3NjgsIDAuMDAxNzY5LCAwLjAwMTc3IiwgXAotICAgICAgICAgICIwLjAwMTczNywgMC4wMDE3NDUsIDAuMDAxNzU5LCAwLjAwMTc2MSwgMC4wMDE3NjMsIDAuMDAxNzY0LCAwLjAwMTc2NSIsIFwKLSAgICAgICAgICAiMC4wMDE3MzIsIDAuMDAxNzQsIDAuMDAxNzU0LCAwLjAwMTc1NywgMC4wMDE3NTgsIDAuMDAxNzYsIDAuMDAxNzYiLCBcCi0gICAgICAgICAgIjAuMDAxNzI1LCAwLjAwMTczMywgMC4wMDE3NDgsIDAuMDAxNzUxLCAwLjAwMTc1MywgMC4wMDE3NTQsIDAuMDAxNzU0IiwgXAotICAgICAgICAgICIwLjAwMTcyMSwgMC4wMDE3MywgMC4wMDE3NDQsIDAuMDAxNzQ3LCAwLjAwMTc0OSwgMC4wMDE3NSwgMC4wMDE3NTEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyNTc1LCAwLjAwMjU4MywgMC4wMDI1OTYsIDAuMDAyNTk4LCAwLjAwMjYsIDAuMDAyNjAyLCAwLjAwMjYwMiIsIFwKLSAgICAgICAgICAiMC4wMDI1NzUsIDAuMDAyNTg0LCAwLjAwMjU5NiwgMC4wMDI1OTksIDAuMDAyNjAxLCAwLjAwMjYwMiwgMC4wMDI2MDMiLCBcCi0gICAgICAgICAgIjAuMDAyNTczLCAwLjAwMjU4MiwgMC4wMDI1OTQsIDAuMDAyNTk3LCAwLjAwMjU5OSwgMC4wMDI2MDEsIDAuMDAyNjAxIiwgXAotICAgICAgICAgICIwLjAwMjU2OSwgMC4wMDI1NzcsIDAuMDAyNTkxLCAwLjAwMjU5NCwgMC4wMDI1OTYsIDAuMDAyNTk3LCAwLjAwMjU5OCIsIFwKLSAgICAgICAgICAiMC4wMDI1NjYsIDAuMDAyNTc0LCAwLjAwMjU4OCwgMC4wMDI1OTEsIDAuMDAyNTkzLCAwLjAwMjU5NSwgMC4wMDI1OTYiLCBcCi0gICAgICAgICAgIjAuMDAyNTYsIDAuMDAyNTY5LCAwLjAwMjU4MywgMC4wMDI1ODcsIDAuMDAyNTg5LCAwLjAwMjU5MSwgMC4wMDI1OTIiLCBcCi0gICAgICAgICAgIjAuMDAyNTU2LCAwLjAwMjU2NCwgMC4wMDI1OCwgMC4wMDI1ODQsIDAuMDAyNTg2LCAwLjAwMjU4OCwgMC4wMDI1ODgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDE3NDMsIDAuMDAxNzUxLCAwLjAwMTc2MywgMC4wMDE3NjcsIDAuMDAxNzY4LCAwLjAwMTc2OSwgMC4wMDE3NyIsIFwKLSAgICAgICAgICAiMC4wMDE3NDIsIDAuMDAxNzUsIDAuMDAxNzYzLCAwLjAwMTc2NiwgMC4wMDE3NjcsIDAuMDAxNzY5LCAwLjAwMTc2OSIsIFwKLSAgICAgICAgICAiMC4wMDE3MzgsIDAuMDAxNzQ3LCAwLjAwMTc2LCAwLjAwMTc2MiwgMC4wMDE3NjQsIDAuMDAxNzY1LCAwLjAwMTc2NiIsIFwKLSAgICAgICAgICAiMC4wMDE3MzMsIDAuMDAxNzQyLCAwLjAwMTc1NSwgMC4wMDE3NTgsIDAuMDAxNzU5LCAwLjAwMTc2MSwgMC4wMDE3NjEiLCBcCi0gICAgICAgICAgIjAuMDAxNzI5LCAwLjAwMTczNywgMC4wMDE3NTEsIDAuMDAxNzU0LCAwLjAwMTc1NSwgMC4wMDE3NTcsIDAuMDAxNzU3IiwgXAotICAgICAgICAgICIwLjAwMTcyMiwgMC4wMDE3MzEsIDAuMDAxNzQ0LCAwLjAwMTc0OCwgMC4wMDE3NSwgMC4wMDE3NTEsIDAuMDAxNzUyIiwgXAotICAgICAgICAgICIwLjAwMTcxNywgMC4wMDE3MjYsIDAuMDAxNzQsIDAuMDAxNzQzLCAwLjAwMTc0NSwgMC4wMDE3NDcsIDAuMDAxNzQ4Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBBRERIWDQgKgotICogLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChBRERIWDQpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC40MTU1NTQ7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTU3ODA1OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTU3ODA1OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTU3NTY5OwotICB9Ci0gIHBpbihCKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDI2Nzg1MTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDI2NTUzODsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDI2Nzg1MTsKLSAgfQotICBwaW4oQ08pICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC41MjcxMTQ7Ci0gICAgZnVuY3Rpb24gOiAiKEEgQikiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTMxMDM1LCAwLjI2NTUyNCwgMC4zOTI5NDMsIDAuNDg0MDE3LCAwLjYyODc3NSwgMC43NTU4NTEsIDAuOTM5MjAyIiwgXAotICAgICAgICAgICIwLjE0MjE5MywgMC4yNzY2OTIsIDAuNDA0MTA0LCAwLjQ5NDY3MSwgMC42Mzk5MzcsIDAuNzY3MDA4LCAwLjk1MDM3MSIsIFwKLSAgICAgICAgICAiMC4xNTU0MTUsIDAuMjg5OTg5LCAwLjQxNzE1MiwgMC41MDgyNywgMC42NTMzMTksIDAuNzgxMjg3LCAwLjk2MzU0NSIsIFwKLSAgICAgICAgICAiMC4xNjg3MiwgMC4zMDMyOTUsIDAuNDMwNzEzLCAwLjUyMTMxMiwgMC42NjY2MTQsIDAuNzkzNjU0LCAwLjk3Njk3MyIsIFwKLSAgICAgICAgICAiMC4xODE5NjQsIDAuMzE2NTU1LCAwLjQ0Mzk3NywgMC41MzQ2NTMsIDAuNjc5OTYsIDAuODA3MDExLCAwLjk5MDI2NiIsIFwKLSAgICAgICAgICAiMC4yMDMxNjEsIDAuMzM3NzM3LCAwLjQ2NTE0MiwgMC41NTU3NjcsIDAuNzAxMzc2LCAwLjgyODA5MywgMS4wMTEiLCBcCi0gICAgICAgICAgIjAuMjIxMjc4LCAwLjM1NTkzMywgMC40ODMzNDMsIDAuNTc0MTAyLCAwLjcxOTQ0NiwgMC44NDY0NywgMS4wMjk2OCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3MTcwMSwgMC4zMjA2NDgsIDAuNTc2OTc5LCAwLjc2NTI4LCAxLjA3MDA1LCAxLjMzMzI0LCAxLjY4MTc2IiwgXAotICAgICAgICAgICIwLjA3MTY3MiwgMC4zMjA3MDgsIDAuNTgxMDk1LCAwLjc2ODMyNywgMS4wNzAwNywgMS4zMzMyNywgMS42ODE2IiwgXAotICAgICAgICAgICIwLjA3MTM5OSwgMC4zMjA3MjQsIDAuNTc4MjY2LCAwLjc2NzUyOSwgMS4wNjk5NSwgMS4zMzM2NSwgMS43MDc3NCIsIFwKLSAgICAgICAgICAiMC4wNzEzNTgsIDAuMzIwODYzLCAwLjU4MzA1NSwgMC43Njc5MjYsIDEuMDY5OTgsIDEuMzMzMzMsIDEuNjg0MjEiLCBcCi0gICAgICAgICAgIjAuMDcxNjkxLCAwLjMyMDkxMywgMC41ODMxOCwgMC43Njc1MTcsIDEuMDY5ODQsIDEuMzMzMjgsIDEuNjgyNjEiLCBcCi0gICAgICAgICAgIjAuMDcxNjA3LCAwLjMyMTE1OSwgMC41NzYyMDUsIDAuNzYzODQ0LCAxLjA2NTYsIDEuMzMzNDMsIDEuNjk5NjUiLCBcCi0gICAgICAgICAgIjAuMDcyMTUzLCAwLjMyMTE4NiwgMC41ODIxNiwgMC43NjY2NjcsIDEuMDY5NDcsIDEuMzMzMiwgMS42ODQ4NyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4MzQ1OSwgMC4yMzA5MzgsIDAuMzc2NzAyLCAwLjQ4MTI1NSwgMC42NDgzNzcsIDAuNzkzNTkzLCAxLjAwMDczIiwgXAotICAgICAgICAgICIwLjA5NTE3NSwgMC4yNDI2ODQsIDAuMzg4NDQ4LCAwLjQ5MjQ3NiwgMC42NTk3OTYsIDAuODA1MTUyLCAxLjAxMjQ0IiwgXAotICAgICAgICAgICIwLjEwOTk3MywgMC4yNTc0NjksIDAuNDAzMjg1LCAwLjUwNzkxMiwgMC42NzQ5NzMsIDAuODE5NjQsIDEuMDI3MzIiLCBcCi0gICAgICAgICAgIjAuMTI0NjkzLCAwLjI3MjI5NywgMC40MTgwNTgsIDAuNTIyNDg1LCAwLjY4OTQzNCwgMC44MzQ5MjIsIDEuMDQyMDkiLCBcCi0gICAgICAgICAgIjAuMTM5MzYyLCAwLjI4Njk0NywgMC40MzI3NjIsIDAuNTM3MzY5LCAwLjcwNDAyLCAwLjg0ODg0MSwgMS4wNTY4NSIsIFwKLSAgICAgICAgICAiMC4xNjE2ODEsIDAuMzA5NDA4LCAwLjQ1NTE3MSwgMC41NTk4MTQsIDAuNzI2NjQyLCAwLjg3MTgwNSwgMS4wNzkxOSIsIFwKLSAgICAgICAgICAiMC4xNzk3NDksIDAuMzI3NTQxLCAwLjQ3MzI5MiwgMC41Nzc5MzQsIDAuNzQ0ODYsIDAuODg5OTcxLCAxLjA5NzMyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDYyNzg4LCAwLjM0NzA3MiwgMC42MzU1OSwgMC44NDM3NjYsIDEuMTcyODMsIDEuNDYyODEsIDEuODc5MTgiLCBcCi0gICAgICAgICAgIjAuMDYyNzg1LCAwLjM0NzEyNywgMC42MzU2NTEsIDAuODQzNjE0LCAxLjE3NDk3LCAxLjQ2NTMzLCAxLjg3ODk3IiwgXAotICAgICAgICAgICIwLjA2MjgwNiwgMC4zNDczMzksIDAuNjM1NDMyLCAwLjg0MzgwMSwgMS4xNzI3OSwgMS40NjI4NCwgMS44NzkxNiIsIFwKLSAgICAgICAgICAiMC4wNjI4NDcsIDAuMzQ4ODk3LCAwLjYzNTQxMSwgMC44NDM3MDYsIDEuMTc0OTYsIDEuNDY1NSwgMS44NzkxIiwgXAotICAgICAgICAgICIwLjA2MywgMC4zNDczNDUsIDAuNjM1MjM2LCAwLjg0MjczMSwgMS4xNzMyMiwgMS40NjMzLCAxLjg3OTM1IiwgXAotICAgICAgICAgICIwLjA2MzEyNywgMC4zNDk3NTgsIDAuNjM1NCwgMC44NDI3ODksIDEuMTc1MDIsIDEuNDY1MTIsIDEuODc3OTIiLCBcCi0gICAgICAgICAgIjAuMDY0MzIzLCAwLjM0NzQ3MywgMC42MzY1ODYsIDAuODQyNjExLCAxLjE3NTE1LCAxLjQ2NTE0LCAxLjg3ODg3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTI2NTg1LCAwLjI2MTE3NCwgMC4zODgzOTUsIDAuNDc5OTExLCAwLjYyNDUxNCwgMC43NTEzMDEsIDAuOTM0Njk2IiwgXAotICAgICAgICAgICIwLjEzNjQ2OSwgMC4yNzExMSwgMC4zOTgyMzMsIDAuNDg5NzUsIDAuNjM0MzMzLCAwLjc2MTYxLCAwLjk0Mjc5MyIsIFwKLSAgICAgICAgICAiMC4xNDk2NDgsIDAuMjg0MjA0LCAwLjQxMTUzMiwgMC41MDI5NjcsIDAuNjQ3NDc2LCAwLjc3NDI1OCwgMC45NTc3MTMiLCBcCi0gICAgICAgICAgIjAuMTYzMTU2LCAwLjI5NzcxMiwgMC40MjUwNjQsIDAuNTE2MTMzLCAwLjY2MjM3NiwgMC43ODk1MDMsIDAuOTcxNDg0IiwgXAotICAgICAgICAgICIwLjE3NjU3MywgMC4zMTExNSwgMC40Mzg2MDIsIDAuNTI5NjczLCAwLjY3NTYzMSwgMC44MDMxOSwgMC45ODQ4MzMiLCBcCi0gICAgICAgICAgIjAuMTk4MjY3LCAwLjMzMjg0LCAwLjQ2MDQxNywgMC41NTEyODgsIDAuNjk3MzA3LCAwLjgyNDc4LCAxLjAwNjA1IiwgXAotICAgICAgICAgICIwLjIxNzE4NywgMC4zNTE4NDgsIDAuNDc5MjM2LCAwLjU3MDA0LCAwLjcxNTExNCwgMC44NDE5NjUsIDEuMDI1MzciKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzIwMjgsIDAuMzE4MTYsIDAuNTc4NDI4LCAwLjc2MTk2NCwgMS4wNzAyNSwgMS4zMzI4MSwgMS42ODQ3MSIsIFwKLSAgICAgICAgICAiMC4wNzE2MzUsIDAuMzE4MjE3LCAwLjU4MTA5MywgMC43NjQ3MjEsIDEuMDcwMzMsIDEuMzMyOTcsIDEuNzA3ODIiLCBcCi0gICAgICAgICAgIjAuMDcxNzYyLCAwLjMxODg5NCwgMC41NzcwMTgsIDAuNzYzOTY1LCAxLjA3MDM1LCAxLjMzMjk5LCAxLjY4MjAyIiwgXAotICAgICAgICAgICIwLjA3MTgzNCwgMC4zMTkyMDksIDAuNTgxMzIsIDAuNzY5MDM0LCAxLjA2NjQ3LCAxLjMxNzY2LCAxLjY4NTQ5IiwgXAotICAgICAgICAgICIwLjA3MTQ4LCAwLjMxOTU3MSwgMC41ODA0NywgMC43NjMwNjgsIDEuMDY1MDMsIDEuMzI4NzUsIDEuNjgxODEiLCBcCi0gICAgICAgICAgIjAuMDcxODczLCAwLjMxOTgyNywgMC41Nzk5MzUsIDAuNzY1OTM5LCAxLjA2NjkzLCAxLjMxNjY0LCAxLjY5NTY4IiwgXAotICAgICAgICAgICIwLjA3MjM0MiwgMC4zMTk3NTgsIDAuNTgyODYzLCAwLjc2NzAxMiwgMS4wNzAyOSwgMS4zMzMxNSwgMS42ODY0OSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4MTAzNywgMC4yMjg0MzksIDAuMzc0MTA4LCAwLjQ3ODM1NCwgMC42NDQ1NzYsIDAuNzg5OTQ1LCAwLjk5NzgzNyIsIFwKLSAgICAgICAgICAiMC4wOTI3NDEsIDAuMjQwMTk2LCAwLjM4NTkyNCwgMC40OTAwMTIsIDAuNjU2MTg5LCAwLjgwMTU3OCwgMS4wMDk2NiIsIFwKLSAgICAgICAgICAiMC4xMDc0MzgsIDAuMjU0OTUxLCAwLjQwMDY3OCwgMC41MDQ5MDEsIDAuNjcwNzk0LCAwLjgxNjM0OCwgMS4wMjQ0MyIsIFwKLSAgICAgICAgICAiMC4xMjIxNTMsIDAuMjY5NzIxLCAwLjQxNTQxNCwgMC41MTk3MywgMC42ODYyMjIsIDAuODMxMjAzLCAxLjAzOTI5IiwgXAotICAgICAgICAgICIwLjEzNjU3OSwgMC4yODQxNzcsIDAuNDI5OTU2LCAwLjUzNDExOCwgMC43MDA0MTYsIDAuODQ1NzczLCAxLjA1MzYiLCBcCi0gICAgICAgICAgIjAuMTU4Mzc4LCAwLjMwNjA0NywgMC40NTE3ODEsIDAuNTU1OTYzLCAwLjcyMjM1OSwgMC44NjgxNDgsIDEuMDc1NSIsIFwKLSAgICAgICAgICAiMC4xNzYxNTIsIDAuMzIzODIyLCAwLjQ2OTYyNSwgMC41NzM4ODUsIDAuNzQwMjE1LCAwLjg4NTM1MSwgMS4wOTM0NyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2MjU0NSwgMC4zNDkwNTIsIDAuNjM2NzI2LCAwLjg0MzUxNCwgMS4xNzMxNSwgMS40NjI0MSwgMS44NzY2NSIsIFwKLSAgICAgICAgICAiMC4wNjI0ODMsIDAuMzQ3NTkyLCAwLjYzNjQ4OCwgMC44NDM1MTYsIDEuMTczMDIsIDEuNDYyMjIsIDEuODc4NzkiLCBcCi0gICAgICAgICAgIjAuMDYyNDcyLCAwLjM0ODY0MiwgMC42MzY1MSwgMC44NDE4NDQsIDEuMTcyOTEsIDEuNDYyMjcsIDEuODc4OCIsIFwKLSAgICAgICAgICAiMC4wNjIyNTIsIDAuMzQ5MDU4LCAwLjYzNjY0OSwgMC44NDE3MzMsIDEuMTc0MzEsIDEuNDYyODQsIDEuODc5ODYiLCBcCi0gICAgICAgICAgIjAuMDYyODczLCAwLjM0OTAyLCAwLjYzNTg1NSwgMC44NDM1MywgMS4xNzMxOCwgMS40NjI0NiwgMS44NzcyOCIsIFwKLSAgICAgICAgICAiMC4wNjQyODEsIDAuMzQ5MDM2LCAwLjYzNjcxNywgMC44NDM1MTcsIDEuMTczMjMsIDEuNDY0NzQsIDEuODc3ODMiLCBcCi0gICAgICAgICAgIjAuMDY1ODUzLCAwLjM0ODQzMSwgMC42MzY3MDcsIDAuODQxNzc4LCAxLjE3NDExLCAxLjQ2MjM0LCAxLjg3ODg1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQ3MzIsIDAuMDA0ODU0LCAwLjAwNDg3LCAwLjAwNDg3NSwgMC4wMDQ4OCwgMC4wMDQ4ODIsIDAuMDA0ODg0IiwgXAotICAgICAgICAgICIwLjAwNDcxNSwgMC4wMDQ4MzgsIDAuMDA0ODU0LCAwLjAwNDg2LCAwLjAwNDg2NCwgMC4wMDQ4NjcsIDAuMDA0ODY4IiwgXAotICAgICAgICAgICIwLjAwNDcsIDAuMDA0ODI1LCAwLjAwNDg0MiwgMC4wMDQ4NDcsIDAuMDA0ODUxLCAwLjAwNDg1MywgMC4wMDQ4NTYiLCBcCi0gICAgICAgICAgIjAuMDA0NjksIDAuMDA0ODE2LCAwLjAwNDgzMywgMC4wMDQ4MzksIDAuMDA0ODQzLCAwLjAwNDg0NSwgMC4wMDQ4NDciLCBcCi0gICAgICAgICAgIjAuMDA0NjgxLCAwLjAwNDgwOSwgMC4wMDQ4MjcsIDAuMDA0ODMzLCAwLjAwNDgzOCwgMC4wMDQ4NCwgMC4wMDQ4NDIiLCBcCi0gICAgICAgICAgIjAuMDA0NjcxLCAwLjAwNDgsIDAuMDA0ODIsIDAuMDA0ODI2LCAwLjAwNDgzMSwgMC4wMDQ4MzQsIDAuMDA0ODM1IiwgXAotICAgICAgICAgICIwLjAwNDY2MywgMC4wMDQ3OTUsIDAuMDA0ODE2LCAwLjAwNDgyMiwgMC4wMDQ4MjgsIDAuMDA0ODMyLCAwLjAwNDgzMyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1MzgsIDAuMDA1NDg1LCAwLjAwNTQ5NywgMC4wMDU1MDEsIDAuMDA1NTA1LCAwLjAwNTUwNiwgMC4wMDU1MDgiLCBcCi0gICAgICAgICAgIjAuMDA1MzY0LCAwLjAwNTQ3MiwgMC4wMDU0ODYsIDAuMDA1NDksIDAuMDA1NDkzLCAwLjAwNTQ5NSwgMC4wMDU0OTYiLCBcCi0gICAgICAgICAgIjAuMDA1MzQ3LCAwLjAwNTQ2MSwgMC4wMDU0NzUsIDAuMDA1NDgsIDAuMDA1NDg0LCAwLjAwNTQ4NiwgMC4wMDU0ODgiLCBcCi0gICAgICAgICAgIjAuMDA1MzMsIDAuMDA1NDQ5LCAwLjAwNTQ2NiwgMC4wMDU0NzEsIDAuMDA1NDc2LCAwLjAwNTQ3OSwgMC4wMDU0ODEiLCBcCi0gICAgICAgICAgIjAuMDA1MzE4LCAwLjAwNTQ0MiwgMC4wMDU0NjEsIDAuMDA1NDY2LCAwLjAwNTQ3MSwgMC4wMDU0NzQsIDAuMDA1NDc2IiwgXAotICAgICAgICAgICIwLjAwNTMwMiwgMC4wMDU0MywgMC4wMDU0NTIsIDAuMDA1NDU4LCAwLjAwNTQ2NCwgMC4wMDU0NjcsIDAuMDA1NDcxIiwgXAotICAgICAgICAgICIwLjAwNTI5MSwgMC4wMDU0MjEsIDAuMDA1NDQ0LCAwLjAwNTQ1MSwgMC4wMDU0NTcsIDAuMDA1NDYxLCAwLjAwNTQ2NSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0MzE1LCAwLjAwNDQ0NywgMC4wMDQ0NjgsIDAuMDA0NDc0LCAwLjAwNDQ4LCAwLjAwNDQ4NCwgMC4wMDQ0ODYiLCBcCi0gICAgICAgICAgIjAuMDA0MzAzLCAwLjAwNDQzNSwgMC4wMDQ0NTQsIDAuMDA0NDYzLCAwLjAwNDQ2NywgMC4wMDQ0NzIsIDAuMDA0NDczIiwgXAotICAgICAgICAgICIwLjAwNDI5NCwgMC4wMDQ0MjcsIDAuMDA0NDQ4LCAwLjAwNDQ1NSwgMC4wMDQ0NjEsIDAuMDA0NDY1LCAwLjAwNDQ2OCIsIFwKLSAgICAgICAgICAiMC4wMDQyODcsIDAuMDA0NDIxLCAwLjAwNDQ0MiwgMC4wMDQ0NSwgMC4wMDQ0NTYsIDAuMDA0NDYsIDAuMDA0NDYzIiwgXAotICAgICAgICAgICIwLjAwNDI3OSwgMC4wMDQ0MTUsIDAuMDA0NDM4LCAwLjAwNDQ0NSwgMC4wMDQ0NTIsIDAuMDA0NDU2LCAwLjAwNDQ1OSIsIFwKLSAgICAgICAgICAiMC4wMDQyNzEsIDAuMDA0NDA4LCAwLjAwNDQzMywgMC4wMDQ0NDEsIDAuMDA0NDQ4LCAwLjAwNDQ1MiwgMC4wMDQ0NTYiLCBcCi0gICAgICAgICAgIjAuMDA0MjY2LCAwLjAwNDQwNCwgMC4wMDQ0MywgMC4wMDQ0MzksIDAuMDA0NDQ3LCAwLjAwNDQ1MSwgMC4wMDQ0NTQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNTIyNCwgMC4wMDUzNDgsIDAuMDA1MzY3LCAwLjAwNTM3MywgMC4wMDUzNzcsIDAuMDA1MzgsIDAuMDA1MzgzIiwgXAotICAgICAgICAgICIwLjAwNTIyOSwgMC4wMDUzNTYsIDAuMDA1Mzc1LCAwLjAwNTM4MSwgMC4wMDUzODksIDAuMDA1Mzg5LCAwLjAwNTM5MSIsIFwKLSAgICAgICAgICAiMC4wMDUyMzIsIDAuMDA1MzY0LCAwLjAwNTM4NiwgMC4wMDUzOSwgMC4wMDUzOTgsIDAuMDA1NDAxLCAwLjAwNTQwNCIsIFwKLSAgICAgICAgICAiMC4wMDUyMzcsIDAuMDA1Mzc2LCAwLjAwNTM5OCwgMC4wMDU0MDYsIDAuMDA1NDEzLCAwLjAwNTQxNiwgMC4wMDU0MiIsIFwKLSAgICAgICAgICAiMC4wMDUyNDEsIDAuMDA1MzgxLCAwLjAwNTQwNywgMC4wMDU0MTUsIDAuMDA1NDIzLCAwLjAwNTQyNywgMC4wMDU0MyIsIFwKLSAgICAgICAgICAiMC4wMDUyNSwgMC4wMDUzOTQsIDAuMDA1NDIyLCAwLjAwNTQzMSwgMC4wMDU0NDEsIDAuMDA1NDQ1LCAwLjAwNTQ1IiwgXAotICAgICAgICAgICIwLjAwNTI2NCwgMC4wMDU0MDQsIDAuMDA1NDM1LCAwLjAwNTQ0NSwgMC4wMDU0NTUsIDAuMDA1NDYsIDAuMDA1NDY1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuNDk5NTg3OwotICAgIGZ1bmN0aW9uIDogIihBXkIpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIxMjQ1NSwgMC4zNTk0OTUsIDAuNDg3MDI0LCAwLjU3NzM4NiwgMC43MjE3OCwgMC44NDgwODYsIDEuMDI4NTUiLCBcCi0gICAgICAgICAgIjAuMjI0NTAxLCAwLjM3MTQ5NywgMC40OTkwMjIsIDAuNTg5NDM0LCAwLjczMzgxLCAwLjg2MDE2LCAxLjA0MDY2IiwgXAotICAgICAgICAgICIwLjIzOTY5OSwgMC4zODY2NzYsIDAuNTE0MjM4LCAwLjYwNDYwOCwgMC43NDg5OTMsIDAuODc1MzcxLCAxLjA1NTc1IiwgXAotICAgICAgICAgICIwLjI1NDgyOCwgMC40MDE4OTUsIDAuNTI5NDU0LCAwLjYxOTgxOCwgMC43NjQyMDgsIDAuODkwNTEyLCAxLjA3MDk1IiwgXAotICAgICAgICAgICIwLjI2OTk2LCAwLjQxNjk1NiwgMC41NDQ0NzMsIDAuNjM0ODk0LCAwLjc3OTI2NiwgMC45MDU2MTYsIDEuMDg2MTMiLCBcCi0gICAgICAgICAgIjAuMjk0MzQxLCAwLjQ0MTM4NywgMC41Njg5NTYsIDAuNjU5MzI3LCAwLjgwMzcyLCAwLjkzMDA0LCAxLjExMDUyIiwgXAotICAgICAgICAgICIwLjMxNTUxMywgMC40NjI0OSwgMC41OTAwMywgMC42ODA0NTEsIDAuODI0ODMyLCAwLjk1MTE4NSwgMS4xMzE3Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg5MzE4LCAwLjMzMTM1OSwgMC41ODEyODMsIDAuNzYyNzM1LCAxLjA1MzI3LCAxLjMxMTIzLCAxLjY3OTE4IiwgXAotICAgICAgICAgICIwLjA4OTM2NSwgMC4zMzEyODgsIDAuNTgxMjg5LCAwLjc2MjY5OCwgMS4wNTMwNSwgMS4zMDg2LCAxLjY3OTUiLCBcCi0gICAgICAgICAgIjAuMDg5MjY3LCAwLjMzMTI0NywgMC41ODEyNTksIDAuNzYyNjkxLCAxLjA1MzE3LCAxLjMxMTY3LCAxLjY3ODY4IiwgXAotICAgICAgICAgICIwLjA4OTM1NCwgMC4zMzEyMzYsIDAuNTgxMjQ4LCAwLjc2MjU3MiwgMS4wNTMxNSwgMS4zMTA5MiwgMS42Nzg4NCIsIFwKLSAgICAgICAgICAiMC4wODkzMzYsIDAuMzMxMjYyLCAwLjU4MTIzLCAwLjc2MjU2MSwgMS4wNTMwNSwgMS4zMDg0MSwgMS42Nzk0OSIsIFwKLSAgICAgICAgICAiMC4wODkzNTksIDAuMzMxMjU2LCAwLjU4MTI1MSwgMC43NjI3MDIsIDEuMDUzMTQsIDEuMzExMjQsIDEuNjc5MTgiLCBcCi0gICAgICAgICAgIjAuMDg5NDE0LCAwLjMzMTMxNywgMC41ODEzMSwgMC43NjI3LCAxLjA1MzA1LCAxLjMwODQ5LCAxLjY3OTUiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xOTkzNTYsIDAuMzYzMzU2LCAwLjUxMDAzNCwgMC42MTQyNzEsIDAuNzgwOTI5LCAwLjkyNjY0NSwgMS4xMzUwNSIsIFwKLSAgICAgICAgICAiMC4yMTEwODYsIDAuMzc0OTQ1LCAwLjUyMTYyMSwgMC42MjU4MzMsIDAuNzkyNDQsIDAuOTM4MjkxLCAxLjE0NjQxIiwgXAotICAgICAgICAgICIwLjIyNTUyNywgMC4zODk1MzEsIDAuNTM2MTk2LCAwLjY0MDQzNSwgMC44MDcxLCAwLjk1Mjc2NiwgMS4xNjA5NyIsIFwKLSAgICAgICAgICAiMC4yMzk0MzMsIDAuNDAzMzc1LCAwLjU1MDA5MywgMC42NTQzMzQsIDAuODIxMDAxLCAwLjk2NjcxNSwgMS4xNzUxMiIsIFwKLSAgICAgICAgICAiMC4yNTQ0ODIsIDAuNDE4MzM5LCAwLjU2NTA0MywgMC42NjkyODMsIDAuODM1OTUyLCAwLjk4MTY4LCAxLjE4OTg4IiwgXAotICAgICAgICAgICIwLjI3Nzk5NywgMC40NDE4NywgMC41ODg1ODYsIDAuNjkyODI4LCAwLjg1OTUwMywgMS4wMDUyMywgMS4yMTMzNyIsIFwKLSAgICAgICAgICAiMC4yOTgxMjksIDAuNDYxOTc2LCAwLjYwODY2NywgMC43MTI5NSwgMC44Nzk2MzIsIDEuMDI1MzYsIDEuMjMzNSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5MTk3MSwgMC4zNjY4NCwgMC42NTA5MjksIDAuODU2OTI3LCAxLjE4NzA4LCAxLjQ3NTc0LCAxLjg4ODI3IiwgXAotICAgICAgICAgICIwLjA5MjA3MywgMC4zNjY3NDEsIDAuNjUwOTM1LCAwLjg1NDcxLCAxLjE4Njg1LCAxLjQ3NywgMS44OTE4MiIsIFwKLSAgICAgICAgICAiMC4wOTE5OTUsIDAuMzY2ODQ2LCAwLjY1MDkyOSwgMC44NTY5MzMsIDEuMTg3MDgsIDEuNDc1MTQsIDEuODkwMDQiLCBcCi0gICAgICAgICAgIjAuMDkxOTk2LCAwLjM2NjkxNiwgMC42NTA5MjUsIDAuODU2OTM0LCAxLjE4NzA4LCAxLjQ3NTc5LCAxLjg4ODE0IiwgXAotICAgICAgICAgICIwLjA5MjEyMywgMC4zNjY4NjUsIDAuNjUwOTEsIDAuODU2OTQyLCAxLjE4NzA4LCAxLjQ3Njk3LCAxLjg5MTkxIiwgXAotICAgICAgICAgICIwLjA5MjE4NCwgMC4zNjY4NzYsIDAuNjUwOTA1LCAwLjg1Njk0NiwgMS4xODcwOSwgMS40NzY5NywgMS44OTE4MSIsIFwKLSAgICAgICAgICAiMC4wOTIxNjQsIDAuMzY2ODc3LCAwLjY1MDkxNywgMC44NTY5NDEsIDEuMTg0NDIsIDEuNDc2OTgsIDEuODkxODIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xOTkyMSwgMC4zMzUzMTUsIDAuNDYyMTUyLCAwLjU1MjU5NCwgMC42OTcyMTUsIDAuODIzNjQyLCAxLjAwNDExIiwgXAotICAgICAgICAgICIwLjIxMDg3NSwgMC4zNDY5NjMsIDAuNDczODMsIDAuNTY0MjM0LCAwLjcwODgyNSwgMC44MzUyNTcsIDEuMDE1NzYiLCBcCi0gICAgICAgICAgIjAuMjI1NjQsIDAuMzYxNzM1LCAwLjQ4ODU2NCwgMC41NzkwMTMsIDAuNzIzNjI5LCAwLjg0OTk5MiwgMS4wMzA1MyIsIFwKLSAgICAgICAgICAiMC4yNDAyMzIsIDAuMzc2MzM3LCAwLjUwMzE3MiwgMC41OTM2MDMsIDAuNzM4MTcsIDAuODY0NjQzLCAxLjA0NTEyIiwgXAotICAgICAgICAgICIwLjI1NDgwNiwgMC4zOTA5MDUsIDAuNTE3NzM2LCAwLjYwODE0OCwgMC43NTI3NDYsIDAuODc5MTM5LCAxLjA1OTczIiwgXAotICAgICAgICAgICIwLjI3NjcxOSwgMC40MTI4NzIsIDAuNTM5NzI0LCAwLjYzMDEyNiwgMC43NzQ3MjcsIDAuOTAxMTA1LCAxLjA4MTY0IiwgXAotICAgICAgICAgICIwLjI5NDQ0LCAwLjQzMDUwNCwgMC41NTczNTcsIDAuNjQ3NzU3LCAwLjc5MjM4MSwgMC45MTg3NTMsIDEuMDk5MjciKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzQyNTUsIDAuMzE4NjIzLCAwLjU3MjExLCAwLjc1NjY2OCwgMS4wNDgyLCAxLjMwNTM2LCAxLjY3Njk1IiwgXAotICAgICAgICAgICIwLjA3NDI2OSwgMC4zMTg2ODcsIDAuNTcyMTE1LCAwLjc1NjQ2OSwgMS4wNTA4NCwgMS4zMDg2MiwgMS42NzY3NyIsIFwKLSAgICAgICAgICAiMC4wNzQzMDksIDAuMzE4NTc3LCAwLjU3MjA4MSwgMC43NTY2ODMsIDEuMDQ4MTksIDEuMzA1OTUsIDEuNjc2OTUiLCBcCi0gICAgICAgICAgIjAuMDc0MzA2LCAwLjMxODc1MSwgMC41NzIwNzQsIDAuNzU2NjI4LCAxLjA1MDg0LCAxLjMwODgsIDEuNjc2ODgiLCBcCi0gICAgICAgICAgIjAuMDc0MzA3LCAwLjMxODYxLCAwLjU3MjA0NiwgMC43NTUyNTUsIDEuMDQ4NTcsIDEuMzA2NDYsIDEuNjc3MSIsIFwKLSAgICAgICAgICAiMC4wNzQzMjIsIDAuMzE4NzU4LCAwLjU3MjA0MiwgMC43NTUzMjgsIDEuMDUwODksIDEuMzA4NDMsIDEuNjc0MTMiLCBcCi0gICAgICAgICAgIjAuMDc0MjU4LCAwLjMxODY3OSwgMC41NzI1ODksIDAuNzU1MjE0LCAxLjA1MDk5LCAxLjMwODQ0LCAxLjY3NjcyIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjA0NTM3LCAwLjM1OTM5NywgMC41MDU2MjcsIDAuNjA5ODc2LCAwLjc3NjYyLCAwLjkyMjQxMywgMS4xMzA3MyIsIFwKLSAgICAgICAgICAiMC4yMTY1MDgsIDAuMzcxMzg5LCAwLjUxNzYyMiwgMC42MjE5MjgsIDAuNzg4NjE5LCAwLjkzNDQxMiwgMS4xNDI3MiIsIFwKLSAgICAgICAgICAiMC4yMzE3MTIsIDAuMzg2NTY2LCAwLjUzMjc4OSwgMC42MzcwNzQsIDAuODAzNzkyLCAwLjk0OTY5MSwgMS4xNTgiLCBcCi0gICAgICAgICAgIjAuMjQ3MDk4LCAwLjQwMTkzMiwgMC41NDgxMzMsIDAuNjUyNDQ3LCAwLjgxOTEzNiwgMC45NjQ5MjksIDEuMTczMjMiLCBcCi0gICAgICAgICAgIjAuMjYyMzQ1LCAwLjQxNzE5NiwgMC41NjM0MjMsIDAuNjY3NzMxLCAwLjgzNDQyMiwgMC45ODAyMTUsIDEuMTg4NTIiLCBcCi0gICAgICAgICAgIjAuMjg2NTAyLCAwLjQ0MTMzMywgMC41ODc1NywgMC42OTE4OTgsIDAuODU4NjI5LCAxLjAwNDM4LCAxLjIxMjY1IiwgXAotICAgICAgICAgICIwLjMwNjY4MSwgMC40NjE0MzcsIDAuNjA3NjY5LCAwLjcxMTk4MiwgMC44Nzg2NzcsIDEuMDI0NDcsIDEuMjMyNzciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzgzNSwgMC4zNTYyMjcsIDAuNjQyMzIyLCAwLjg0ODQ3NSwgMS4xNzk0NywgMS40NjkyNCwgMS44ODI4MiIsIFwKLSAgICAgICAgICAiMC4wNzgzNDEsIDAuMzU2MjI4LCAwLjY0MjUxOSwgMC44NDg3NjcsIDEuMTc5NDgsIDEuNDY5MjUsIDEuODgyNzkiLCBcCi0gICAgICAgICAgIjAuMDc4MzU4LCAwLjM1NjIzMSwgMC42NDI1ODksIDAuODQ4Njk3LCAxLjE3OTQ4LCAxLjQ2OTQ0LCAxLjg4MzY1IiwgXAotICAgICAgICAgICIwLjA3ODM2OSwgMC4zNTYyMzIsIDAuNjQyOTk2LCAwLjg0ODc3NiwgMS4xNzk0OSwgMS40NjkyNiwgMS44ODI3OSIsIFwKLSAgICAgICAgICAiMC4wNzgzNDMsIDAuMzU2MjMsIDAuNjQyNzksIDAuODQ4NzY0LCAxLjE3OTQ4LCAxLjQ2OTI1LCAxLjg4MjczIiwgXAotICAgICAgICAgICIwLjA3ODMzLCAwLjM1NjIzOSwgMC42NDI0NDgsIDAuODQ4NDA4LCAxLjE3OTEyLCAxLjQ2OTI5LCAxLjg4MzI4IiwgXAotICAgICAgICAgICIwLjA3ODQwNSwgMC4zNTYyMTQsIDAuNjQzMDQsIDAuODQ4NzYxLCAxLjE3OTM0LCAxLjQ2OTA4LCAxLjg4Mjc2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTM2Nzc1LCAwLjI3Mjc1OCwgMC4zOTk1NDMsIDAuNDg5OTE2LCAwLjYzNDQzOCwgMC43NjA4MTEsIDAuOTQxMjcxIiwgXAotICAgICAgICAgICIwLjE0NzYzNCwgMC4yODM2MjUsIDAuNDEwNDE3LCAwLjUwMDc5MiwgMC42NDUzMjcsIDAuNzcxNzQ3LCAwLjk1MjE4MyIsIFwKLSAgICAgICAgICAiMC4xNjEwNDYsIDAuMjk3MTkzLCAwLjQyMzk5NCwgMC41MTQzNiwgMC42NTg5MjQsIDAuNzg1MjUxLCAwLjk2NTciLCBcCi0gICAgICAgICAgIjAuMTc0NTUzLCAwLjMxMDYzLCAwLjQzNzQzNCwgMC41Mjc4MDMsIDAuNjcyMzE2LCAwLjc5ODcwMSwgMC45NzkxNTIiLCBcCi0gICAgICAgICAgIjAuMTg3ODgzLCAwLjMyMzk5MSwgMC40NTA3OTIsIDAuNTQxMTU2LCAwLjY4NTY2NCwgMC44MTIwNywgMC45OTI1NTkiLCBcCi0gICAgICAgICAgIjAuMjA5Mjg0LCAwLjM0NTQzLCAwLjQ3MjI3OSwgMC41NjI2NDgsIDAuNzA3MjE3LCAwLjgzMzU1MywgMS4wMTQwMiIsIFwKLSAgICAgICAgICAiMC4yMjgyMDUsIDAuMzY0NDEzLCAwLjQ5MTI0LCAwLjU4MTYxNiwgMC43MjYxMzMsIDAuODUyNDkzLCAxLjAzMzA0Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc0NTEyLCAwLjMxODUzLCAwLjU3MzI0NiwgMC43NTUxNTUsIDEuMDUwNTYsIDEuMzA4MjIsIDEuNjczODQiLCBcCi0gICAgICAgICAgIjAuMDc0NTEzLCAwLjMxODYwNiwgMC41NzIwNDgsIDAuNzU2MzgxLCAxLjA1MDYxLCAxLjMwODM1LCAxLjY3NjU1IiwgXAotICAgICAgICAgICIwLjA3NDQ0NiwgMC4zMTg4MjUsIDAuNTcxOTcyLCAwLjc1NTE4NCwgMS4wNTA3MywgMS4zMDgxNiwgMS42NzYyNCIsIFwKLSAgICAgICAgICAiMC4wNzQ2MDUsIDAuMzE4ODUsIDAuNTcyMjMyLCAwLjc1NTE0NSwgMS4wNTA0NSwgMS4zMDgxNiwgMS42NzYyNiIsIFwKLSAgICAgICAgICAiMC4wNzQ3MDUsIDAuMzE4ODM5LCAwLjU3MzIwOCwgMC43NTUxNTIsIDEuMDUwMzQsIDEuMzA2MjQsIDEuNjc2NDQiLCBcCi0gICAgICAgICAgIjAuMDc0OTM4LCAwLjMxOTExNSwgMC41NzIxMjEsIDAuNzU2MTExLCAxLjA1MDY3LCAxLjMwODA3LCAxLjY3NjEyIiwgXAotICAgICAgICAgICIwLjA3NTMwMiwgMC4zMTg5ODEsIDAuNTczMzQsIDAuNzU1MTQzLCAxLjA1MDQyLCAxLjMwNzgzLCAxLjY3NjYiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNTk5OTYsIDAuMzIzNzc4LCAwLjQ3MDM5OCwgMC41NzQ2MjEsIDAuNzQxMTc3LCAwLjg4NzA0OCwgMS4wOTUxNSIsIFwKLSAgICAgICAgICAiMC4xNzAwMTQsIDAuMzMzODIzLCAwLjQ4MDQ4MiwgMC41ODQ2NzgsIDAuNzUxMjksIDAuODk3MDg4LCAxLjEwNTIiLCBcCi0gICAgICAgICAgIjAuMTgyNTI0LCAwLjM0NjMwOCwgMC40OTI5MzQsIDAuNTk3MTU2LCAwLjc2MzczMSwgMC45MDk1ODcsIDEuMTE3NjkiLCBcCi0gICAgICAgICAgIjAuMTk0OTI3LCAwLjM1ODgxNywgMC41MDU0NTgsIDAuNjA5NjkyLCAwLjc3NjI5MywgMC45MjE5OTksIDEuMTMwMjYiLCBcCi0gICAgICAgICAgIjAuMjA3NTI3LCAwLjM3MTMxLCAwLjUxNzk0NywgMC42MjIxNDcsIDAuNzg4NzU4LCAwLjkzNDYyLCAxLjE0MjcyIiwgXAotICAgICAgICAgICIwLjIyNzQyMiwgMC4zOTEyNDQsIDAuNTM3ODk3LCAwLjY0MjE0MiwgMC44MDg3NjcsIDAuOTU0NTg0LCAxLjE2MjciLCBcCi0gICAgICAgICAgIjAuMjQ1MDY2LCAwLjQwODc4LCAwLjU1NTQ3NSwgMC42NTk2OTUsIDAuODI2MzI2LCAwLjk3MjEzOCwgMS4xODAyNiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5MTY0NiwgMC4zNjY3NzMsIDAuNjUwNjUzLCAwLjg1NTE1MiwgMS4xODY0NCwgMS40NzMwNywgMS44OTE4NCIsIFwKLSAgICAgICAgICAiMC4wOTE2NTEsIDAuMzY2NzU4LCAwLjY1MDU0MSwgMC44NTQzMDQsIDEuMTgzMjMsIDEuNDc3MDEsIDEuODkxODIiLCBcCi0gICAgICAgICAgIjAuMDkxNjE0LCAwLjM2Njc2NiwgMC42NTA2NDUsIDAuODU1MDc3LCAxLjE4NDMxLCAxLjQ3MzAzLCAxLjg5MTg0IiwgXAotICAgICAgICAgICIwLjA5MTQ5LCAwLjM2NjgxNiwgMC42NTA2ODEsIDAuODUzNjk4LCAxLjE4NTA0LCAxLjQ3MzI2LCAxLjg4OTg1IiwgXAotICAgICAgICAgICIwLjA5MTYyNCwgMC4zNjY3NzMsIDAuNjUwNjc5LCAwLjg1NjI1OSwgMS4xODY3OSwgMS40NzI4OSwgMS44OTE4NSIsIFwKLSAgICAgICAgICAiMC4wOTE0ODEsIDAuMzY2NzkzLCAwLjY1MDYwMywgMC44NTU1MDcsIDEuMTgzMTcsIDEuNDc3MDIsIDEuODkxODMiLCBcCi0gICAgICAgICAgIjAuMDkxNTYzLCAwLjM2Njc5OSwgMC42NTA0NzcsIDAuODU0ODkyLCAxLjE4MzI5LCAxLjQ3NzAyLCAxLjg5MTgzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTczODYxLCAwLjMyMzMxNSwgMC40NTI1NzQsIDAuNTQ0MjExLCAwLjY5MDU4NywgMC44MTg2OCwgMS4wMDE2NyIsIFwKLSAgICAgICAgICAiMC4xODYwNjMsIDAuMzM1NDE0LCAwLjQ2NDc0NSwgMC41NTYzNzYsIDAuNzAyNzc1LCAwLjgzMDg2MywgMS4wMTM4NSIsIFwKLSAgICAgICAgICAiMC4yMDA5MTYsIDAuMzUwMjc4LCAwLjQ3OTU5NSwgMC41NzEyMDEsIDAuNzE3NjA1LCAwLjg0NTcxMywgMS4wMjg3IiwgXAotICAgICAgICAgICIwLjIxNTkwOSwgMC4zNjUzMjEsIDAuNDk0NjU5LCAwLjU4NjI1NSwgMC43MzI2NzYsIDAuODYwNzYyLCAxLjA0Mzc3IiwgXAotICAgICAgICAgICIwLjIzMDMxMiwgMC4zNzk3NDMsIDAuNTA5MDM3LCAwLjYwMDY1OSwgMC43NDcwNDQsIDAuODc1MTQsIDEuMDU4MDQiLCBcCi0gICAgICAgICAgIjAuMjUyNzc0LCAwLjQwMjE0NiwgMC41MzE0NzksIDAuNjIzMTAyLCAwLjc2OTQ4OSwgMC44OTc1NzYsIDEuMDgwNTEiLCBcCi0gICAgICAgICAgIjAuMjcwODgsIDAuNDIwMjU1LCAwLjU0OTU4OSwgMC42NDExODYsIDAuNzg3NTk1LCAwLjkxNTcxMiwgMS4wOTg3MSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4OTE4OCwgMC4zMzQyNTUsIDAuNTg2MDg4LCAwLjc3MDMzNSwgMS4wNjM4MiwgMS4zMjIyMiwgMS42OTI5MSIsIFwKLSAgICAgICAgICAiMC4wODkxOTYsIDAuMzM0MDI1LCAwLjU4Njk5LCAwLjc3MDMwNCwgMS4wNjM3MiwgMS4zMjIwMiwgMS42OTY4OSIsIFwKLSAgICAgICAgICAiMC4wODkxODEsIDAuMzM0MDQ4LCAwLjU4Njk4LCAwLjc2ODUwNSwgMS4wNjM3MywgMS4zMjE5NSwgMS42OTY5MSIsIFwKLSAgICAgICAgICAiMC4wODkwNDgsIDAuMzM0MjkxLCAwLjU4NjkxNiwgMC43Njg4NTcsIDEuMDY1MzksIDEuMzIyOTcsIDEuNjk5MTEiLCBcCi0gICAgICAgICAgIjAuMDg5MTI4LCAwLjMzNDI2OCwgMC41ODY3MzYsIDAuNzcwMzM2LCAxLjA2Mzg2LCAxLjMyMjIxLCAxLjY5MzgyIiwgXAotICAgICAgICAgICIwLjA4OTEyMiwgMC4zMzQyMzcsIDAuNTg2OTExLCAwLjc3MDMxOCwgMS4wNjM5NCwgMS4zMjUwMSwgMS42OTM2MiIsIFwKLSAgICAgICAgICAiMC4wODg5OTcsIDAuMzM0MTYxLCAwLjU4NjkyNywgMC43Njg3MzUsIDEuMDY1MTgsIDEuMzIxODMsIDEuNjk2OSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE4MjQ0OSwgMC4zMzczMTQsIDAuNDgzNTg2LCAwLjU4NzgxNiwgMC43NTQ1NjgsIDAuOTAwMzY1LCAxLjEwODY4IiwgXAotICAgICAgICAgICIwLjE5NDY1NiwgMC4zNDk1MDEsIDAuNDk1NzUzLCAwLjYwMDA5LCAwLjc2Njc2LCAwLjkxMjU4NiwgMS4xMjA4NCIsIFwKLSAgICAgICAgICAiMC4yMTAyMDEsIDAuMzY1MDU0LCAwLjUxMTI5NCwgMC42MTU1NTIsIDAuNzgyMzA4LCAwLjkyODEwNSwgMS4xMzY0MSIsIFwKLSAgICAgICAgICAiMC4yMjU3MTYsIDAuMzgwNTIsIDAuNTI2NzYyLCAwLjYzMTAxOSwgMC43OTc4MDUsIDAuOTQzNTkxLCAxLjE1MTg5IiwgXAotICAgICAgICAgICIwLjI0MDg3NSwgMC4zOTU3MSwgMC41NDE5NDksIDAuNjQ2MywgMC44MTI5NDcsIDAuOTU4ODA3LCAxLjE2NzA4IiwgXAotICAgICAgICAgICIwLjI2NDI5MSwgMC40MTkwOTEsIDAuNTY1MzM2LCAwLjY2OTYzOCwgMC44MzYzMjUsIDAuOTgyMTY4LCAxLjE5MDQ1IiwgXAotICAgICAgICAgICIwLjI4MzA2MiwgMC40Mzc4ODQsIDAuNTg0MTQ3LCAwLjY4ODQ3LCAwLjg1NTE2OCwgMS4wMDA5NiwgMS4yMDkyNSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3ODQ3LCAwLjM1NjIxNCwgMC42NDIwOCwgMC44NDg0MSwgMS4xNzk0OCwgMS40NjkyNSwgMS44ODI4NSIsIFwKLSAgICAgICAgICAiMC4wNzgzOTcsIDAuMzU2MjI2LCAwLjY0MjQ0LCAwLjg0ODM3NywgMS4xNzk0OSwgMS40NjkyOCwgMS44ODM0OSIsIFwKLSAgICAgICAgICAiMC4wNzgzOCwgMC4zNTYyMTYsIDAuNjQyMjk2LCAwLjg0ODQzOCwgMS4xNzk0OSwgMS40NjkyNSwgMS44ODI4MyIsIFwKLSAgICAgICAgICAiMC4wNzg0NTYsIDAuMzU2MjE3LCAwLjY0MjU0NywgMC44NDg2NjEsIDEuMTc4NjksIDEuNDY4ODIsIDEuODgyNzEiLCBcCi0gICAgICAgICAgIjAuMDc4Mzc5LCAwLjM1NjIxOCwgMC42NDI0NzgsIDAuODQ4MzE5LCAxLjE3OTMyLCAxLjQ2ODE5LCAxLjg4MjgyIiwgXAotICAgICAgICAgICIwLjA3ODQ1LCAwLjM1NjIyNCwgMC42NDI0NzYsIDAuODQ4MTcsIDEuMTc5NCwgMS40Njg3NywgMS44ODMyIiwgXAotICAgICAgICAgICIwLjA3ODM4NSwgMC4zNTYyNTEsIDAuNjQyNjY5LCAwLjg0ODQ4OCwgMS4xNzkzNSwgMS40NjkwOSwgMS44ODI4MyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0NDIzLCAwLjAwNDU2NywgMC4wMDQ1OTgsIDAuMDA0NjA3LCAwLjAwNDYxNywgMC4wMDQ2MjIsIDAuMDA0NjI2IiwgXAotICAgICAgICAgICIwLjAwNDQxNiwgMC4wMDQ1NTgsIDAuMDA0NTkyLCAwLjAwNDYwMiwgMC4wMDQ2MSwgMC4wMDQ2MTYsIDAuMDA0NjIiLCBcCi0gICAgICAgICAgIjAuMDA0NDEsIDAuMDA0NTUzLCAwLjAwNDU4NSwgMC4wMDQ1OTQsIDAuMDA0NjA1LCAwLjAwNDYwOSwgMC4wMDQ2MTMiLCBcCi0gICAgICAgICAgIjAuMDA0NDA2LCAwLjAwNDU0NiwgMC4wMDQ1NzgsIDAuMDA0NTkyLCAwLjAwNDYsIDAuMDA0NiwgMC4wMDQ2MDgiLCBcCi0gICAgICAgICAgIjAuMDA0NDAyLCAwLjAwNDU0LCAwLjAwNDU3MSwgMC4wMDQ1ODQsIDAuMDA0NTk0LCAwLjAwNDYsIDAuMDA0NjA0IiwgXAotICAgICAgICAgICIwLjAwNDM5NywgMC4wMDQ1MywgMC4wMDQ1NjUsIDAuMDA0NTc3LCAwLjAwNDU4OCwgMC4wMDQ1OTUsIDAuMDA0NTk5IiwgXAotICAgICAgICAgICIwLjAwNDM5MiwgMC4wMDQ1MjIsIDAuMDA0NTU4LCAwLjAwNDU3MSwgMC4wMDQ1ODMsIDAuMDA0NTg5LCAwLjAwNDU5NSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0NzMyLCAwLjAwNDg1NCwgMC4wMDQ4NywgMC4wMDQ4NzUsIDAuMDA0ODgsIDAuMDA0ODgyLCAwLjAwNDg4NCIsIFwKLSAgICAgICAgICAiMC4wMDQ3MTUsIDAuMDA0ODM4LCAwLjAwNDg1NCwgMC4wMDQ4NiwgMC4wMDQ4NjQsIDAuMDA0ODY3LCAwLjAwNDg2OCIsIFwKLSAgICAgICAgICAiMC4wMDQ3LCAwLjAwNDgyNSwgMC4wMDQ4NDIsIDAuMDA0ODQ3LCAwLjAwNDg1MSwgMC4wMDQ4NTMsIDAuMDA0ODU2IiwgXAotICAgICAgICAgICIwLjAwNDY5LCAwLjAwNDgxNiwgMC4wMDQ4MzMsIDAuMDA0ODM5LCAwLjAwNDg0MywgMC4wMDQ4NDUsIDAuMDA0ODQ3IiwgXAotICAgICAgICAgICIwLjAwNDY4MSwgMC4wMDQ4MDksIDAuMDA0ODI3LCAwLjAwNDgzMywgMC4wMDQ4MzgsIDAuMDA0ODQsIDAuMDA0ODQyIiwgXAotICAgICAgICAgICIwLjAwNDY3MSwgMC4wMDQ4LCAwLjAwNDgyLCAwLjAwNDgyNiwgMC4wMDQ4MzEsIDAuMDA0ODM0LCAwLjAwNDgzNSIsIFwKLSAgICAgICAgICAiMC4wMDQ2NjMsIDAuMDA0Nzk1LCAwLjAwNDgxNiwgMC4wMDQ4MjIsIDAuMDA0ODI4LCAwLjAwNDgzMiwgMC4wMDQ4MzMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNTIyNCwgMC4wMDUzNDgsIDAuMDA1MzY3LCAwLjAwNTM3MywgMC4wMDUzNzcsIDAuMDA1MzgsIDAuMDA1MzgzIiwgXAotICAgICAgICAgICIwLjAwNTIyOSwgMC4wMDUzNTYsIDAuMDA1Mzc1LCAwLjAwNTM4MSwgMC4wMDUzODksIDAuMDA1Mzg5LCAwLjAwNTM5MSIsIFwKLSAgICAgICAgICAiMC4wMDUyMzIsIDAuMDA1MzY0LCAwLjAwNTM4NiwgMC4wMDUzOSwgMC4wMDUzOTgsIDAuMDA1NDAxLCAwLjAwNTQwNCIsIFwKLSAgICAgICAgICAiMC4wMDUyMzcsIDAuMDA1Mzc2LCAwLjAwNTM5OCwgMC4wMDU0MDYsIDAuMDA1NDEzLCAwLjAwNTQxNiwgMC4wMDU0MiIsIFwKLSAgICAgICAgICAiMC4wMDUyNDEsIDAuMDA1MzgxLCAwLjAwNTQwNywgMC4wMDU0MTUsIDAuMDA1NDIzLCAwLjAwNTQyNywgMC4wMDU0MyIsIFwKLSAgICAgICAgICAiMC4wMDUyNSwgMC4wMDUzOTQsIDAuMDA1NDIyLCAwLjAwNTQzMSwgMC4wMDU0NDEsIDAuMDA1NDQ1LCAwLjAwNTQ1IiwgXAotICAgICAgICAgICIwLjAwNTI2NCwgMC4wMDU0MDQsIDAuMDA1NDM1LCAwLjAwNTQ0NSwgMC4wMDU0NTUsIDAuMDA1NDYsIDAuMDA1NDY1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQzMTUsIDAuMDA0NDQ3LCAwLjAwNDQ2OCwgMC4wMDQ0NzQsIDAuMDA0NDgsIDAuMDA0NDg0LCAwLjAwNDQ4NiIsIFwKLSAgICAgICAgICAiMC4wMDQzMDMsIDAuMDA0NDM1LCAwLjAwNDQ1NCwgMC4wMDQ0NjMsIDAuMDA0NDY3LCAwLjAwNDQ3MiwgMC4wMDQ0NzMiLCBcCi0gICAgICAgICAgIjAuMDA0Mjk0LCAwLjAwNDQyNywgMC4wMDQ0NDgsIDAuMDA0NDU1LCAwLjAwNDQ2MSwgMC4wMDQ0NjUsIDAuMDA0NDY4IiwgXAotICAgICAgICAgICIwLjAwNDI4NywgMC4wMDQ0MjEsIDAuMDA0NDQyLCAwLjAwNDQ1LCAwLjAwNDQ1NiwgMC4wMDQ0NiwgMC4wMDQ0NjMiLCBcCi0gICAgICAgICAgIjAuMDA0Mjc5LCAwLjAwNDQxNSwgMC4wMDQ0MzgsIDAuMDA0NDQ1LCAwLjAwNDQ1MiwgMC4wMDQ0NTYsIDAuMDA0NDU5IiwgXAotICAgICAgICAgICIwLjAwNDI3MSwgMC4wMDQ0MDgsIDAuMDA0NDMzLCAwLjAwNDQ0MSwgMC4wMDQ0NDgsIDAuMDA0NDUyLCAwLjAwNDQ1NiIsIFwKLSAgICAgICAgICAiMC4wMDQyNjYsIDAuMDA0NDA0LCAwLjAwNDQzLCAwLjAwNDQzOSwgMC4wMDQ0NDcsIDAuMDA0NDUxLCAwLjAwNDQ1NCIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogQU5EMlgyICoKLSAqIC0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoQU5EMlgyKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMDg5MjUwNDsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjA3NTEyOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYwNzUxMjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2MDYyMzc7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMTY1LCAwLjAwMDE2NSwgMC4wMDAxNjUsIDAuMDAwMTY1LCAwLjAwMDE2NSwgMC4wMDAxNjUsIDAuMDAwMTY1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMTY5LCAwLjAwMDE2NywgMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY2Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2MTgyOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYxODExOTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2MTgyOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDA2NywgMC4wMDAwNjcsIDAuMDAwMDY3LCAwLjAwMDA2NywgMC4wMDAwNjcsIDAuMDAwMDY3LCAwLjAwMDA2NyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDE4OCwgMC4wMDAxODgsIDAuMDAwMTg4LCAwLjAwMDE4OCwgMC4wMDAxODgsIDAuMDAwMTg4LCAwLjAwMDE4OCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjI1MDM0ODsKLSAgICBmdW5jdGlvbiA6ICIoQSBCKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTY2MjA4LCAwLjM0OTg4NSwgMC40OTMxNDUsIDAuNjcyMTY0LCAwLjg1MTE3NCwgMS4wMzA2NywgMS4yMDkyNiIsIFwKLSAgICAgICAgICAiMC4xNzc3MjcsIDAuMzYxNDEzLCAwLjUwNDY3NCwgMC42ODM2ODksIDAuODYyODYyLCAxLjA0MjA4LCAxLjIyMDc3IiwgXAotICAgICAgICAgICIwLjE5MTQyNSwgMC4zNzQ4NTUsIDAuNTE4MTQ2LCAwLjY5NzIyOSwgMC44NzYyMjYsIDEuMDU1MywgMS4yMzQ0NSIsIFwKLSAgICAgICAgICAiMC4yMDQ5MjQsIDAuMzg4ODgzLCAwLjUzMjEyMywgMC43MTExOTEsIDAuODkwMjY5LCAxLjA2OTI1LCAxLjI0ODUzIiwgXAotICAgICAgICAgICIwLjIxODc0NCwgMC40MDI2NzQsIDAuNTQ1OTgyLCAwLjcyNTAyOSwgMC45MDQxMjksIDEuMDgzMDgsIDEuMjYyMzQiLCBcCi0gICAgICAgICAgIjAuMjQwMzg4LCAwLjQyNDQxNSwgMC41Njc2ODEsIDAuNzQ2NzUsIDAuOTI1NjE1LCAxLjEwNDgsIDEuMjg0MDUiLCBcCi0gICAgICAgICAgIjAuMjU5Mjg1LCAwLjQ0MzE0NywgMC41ODY0NDIsIDAuNzY1NDgsIDAuOTQ0NDczLCAxLjEyNDAyLCAxLjMwMjYiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTA2MDI5LCAwLjQ1NjkyNiwgMC43NDUwNjYsIDEuMTEwMjEsIDEuNDc0NjIsIDEuODM1ODgsIDIuMjA0MzkiLCBcCi0gICAgICAgICAgIjAuMTA2MDIyLCAwLjQ1Njg3OSwgMC43NDUwODUsIDEuMTA5OTksIDEuNDcxNzYsIDEuODM1MjQsIDIuMjA1MDQiLCBcCi0gICAgICAgICAgIjAuMTA2MzAxLCAwLjQ1NjMyOCwgMC43NDUwOTIsIDEuMTEwNDgsIDEuNDc1MDksIDEuODM0OSwgMi4yMDA5IiwgXAotICAgICAgICAgICIwLjEwNjI1OCwgMC40NTY4NjEsIDAuNzQ1MDM1LCAxLjExMDQsIDEuNDcyMjksIDEuODM0OTIsIDIuMjAxNDYiLCBcCi0gICAgICAgICAgIjAuMTA2MDU3LCAwLjQ1NjY0OSwgMC43NDYzMDIsIDEuMTEwMzcsIDEuNDcyMzksIDEuODQwMDYsIDIuMjAxMTgiLCBcCi0gICAgICAgICAgIjAuMTA1ODk0LCAwLjQ1NjgwMywgMC43NDYwOTYsIDEuMTEwMzUsIDEuNDc0MTUsIDEuODQwMDIsIDIuMjAwOTQiLCBcCi0gICAgICAgICAgIjAuMTA1ODU3LCAwLjQ1NTk5NCwgMC43NDUwMSwgMS4xMTAyMywgMS40NzQ4MywgMS44MzUwMSwgMi4yMDQzOCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDkzNDcsIDAuMzE2NDk0LCAwLjQ4MTQzNCwgMC42ODc1NzYsIDAuODkzNzA0LCAxLjA5OTc5LCAxLjMwNTg4IiwgXAotICAgICAgICAgICIwLjEyMTA0MSwgMC4zMjgxMzcsIDAuNDkzMDk0LCAwLjY5OTI0MywgMC45MDUzNjEsIDEuMTExNDcsIDEuMzE3NjgiLCBcCi0gICAgICAgICAgIjAuMTM1NTg3LCAwLjM0Mjc4MSwgMC41MDc3NDcsIDAuNzEzOTE0LCAwLjkyMDA1NCwgMS4xMjYxMywgMS4zMzIyNiIsIFwKLSAgICAgICAgICAiMC4xNTA1MDMsIDAuMzU3NjgyLCAwLjUyMjY1NiwgMC43Mjg4MTIsIDAuOTM0OTM2LCAxLjE0MTA1LCAxLjM0NzI4IiwgXAotICAgICAgICAgICIwLjE2NTEzOCwgMC4zNzIzNjIsIDAuNTM3MzcxLCAwLjc0MzUzLCAwLjk0OTY1LCAxLjE1NTc1LCAxLjM2MTg1IiwgXAotICAgICAgICAgICIwLjE4Nzk5MSwgMC4zOTUyNTEsIDAuNTYwMjkxLCAwLjc2NjQyLCAwLjk3MjU2LCAxLjE3ODY1LCAxLjM4NDc0IiwgXAotICAgICAgICAgICIwLjIwNjU3NiwgMC40MTM4NDksIDAuNTc4ODE4LCAwLjc4NTAzMSwgMC45OTExNDYsIDEuMTk3MjMsIDEuNDAzMzMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTAwNDYyLCAwLjUwNzI5NCwgMC44MzYyMTcsIDEuMjQ2NTQsIDEuNjU4MzEsIDIuMDY3MywgMi40NzgxOSIsIFwKLSAgICAgICAgICAiMC4xMDA0NDYsIDAuNTA3MzU5LCAwLjgzNTA5OCwgMS4yNDU0NiwgMS42NTY3NiwgMi4wNjgyOSwgMi40ODAyMiIsIFwKLSAgICAgICAgICAiMC4xMDA0MDMsIDAuNTA3MzM0LCAwLjgzNTAyNywgMS4yNDcxLCAxLjY1ODA3LCAyLjA2NzU2LCAyLjQ4MDg4IiwgXAotICAgICAgICAgICIwLjEwMDQyMiwgMC41MDczNTYsIDAuODM1MDU2LCAxLjI0NTY0LCAxLjY1Njk1LCAyLjA2ODQ5LCAyLjQ4MDAyIiwgXAotICAgICAgICAgICIwLjEwMDU1LCAwLjUwNzYxMiwgMC44MzUxOTIsIDEuMjQ3MiwgMS42NTczNiwgMi4wNzAyLCAyLjQ3NzU4IiwgXAotICAgICAgICAgICIwLjEwMTA2LCAwLjUwNjcxLCAwLjgzNTU5OSwgMS4yNDcxMiwgMS42NTg2MiwgMi4wNjczNiwgMi40Nzc4OCIsIFwKLSAgICAgICAgICAiMC4xMDE3NzQsIDAuNTA3MzkzLCAwLjgzNjI3MiwgMS4yNDY3LCAxLjY1ODEsIDIuMDY3MjksIDIuNDc4MTgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTYwOTY1LCAwLjM0NDQ5NSwgMC40ODc3ODYsIDAuNjY2ODc0LCAwLjg0NjA3NiwgMS4wMjQ4MywgMS4yMDM4NiIsIFwKLSAgICAgICAgICAiMC4xNzA5NTgsIDAuMzU0Nzg0LCAwLjQ5ODA1NCwgMC42NzcwOTcsIDAuODU2MDgsIDEuMDM1MjEsIDEuMjE0MTciLCBcCi0gICAgICAgICAgIjAuMTg0MDk4LCAwLjM2ODA4NSwgMC41MTEzOTQsIDAuNjkwNDA0LCAwLjg2OTUxOSwgMS4wNDg0NSwgMS4yMjc1NCIsIFwKLSAgICAgICAgICAiMC4xOTc5MDcsIDAuMzgxOTQxLCAwLjUyNTIyMiwgMC43MDQyOTEsIDAuODgzMjY3LCAxLjA2MjQzLCAxLjI0MTM2IiwgXAotICAgICAgICAgICIwLjIxMTkwMiwgMC4zOTU3OTksIDAuNTM5MDc5LCAwLjcxODE1NiwgMC44OTcyMywgMS4wNzYyMiwgMS4yNTU0OCIsIFwKLSAgICAgICAgICAiMC4yMzQwODEsIDAuNDE4MDExLCAwLjU2MTMwNywgMC43NDAzOTMsIDAuOTE5NDc3LCAxLjA5ODQ3LCAxLjI3Nzc0IiwgXAotICAgICAgICAgICIwLjI1MzM5NywgMC40MzcyMzksIDAuNTgwNDkxLCAwLjc1OTU4OSwgMC45Mzg2NDksIDEuMTE3NjYsIDEuMjk2ODkiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTA2MTUxLCAwLjQ1NTk2OCwgMC43NDUwNzksIDEuMTEwNTIsIDEuNDcxNDEsIDEuODM5ODgsIDIuMjA0MjkiLCBcCi0gICAgICAgICAgIjAuMTA2NzMzLCAwLjQ1NjE2NSwgMC43NDUwOTMsIDEuMTEwMjgsIDEuNDc0ODYsIDEuODM2NTgsIDIuMjA0MjUiLCBcCi0gICAgICAgICAgIjAuMTA2Mjc5LCAwLjQ1Njg4MiwgMC43NDY0NTgsIDEuMTEwMzgsIDEuNDcyNjYsIDEuODQwMDIsIDIuMTk4NzciLCBcCi0gICAgICAgICAgIjAuMTA2MTc1LCAwLjQ1NjI2NSwgMC43NDUwNDksIDEuMTEwMzgsIDEuNDc0OSwgMS44MzY3NCwgMi4yMDQyNiIsIFwKLSAgICAgICAgICAiMC4xMDYwMjMsIDAuNDU1ODk1LCAwLjc0NTAwNiwgMS4xMTAzOCwgMS40NzIyOSwgMS44MzQ5LCAyLjIwMTMxIiwgXAotICAgICAgICAgICIwLjEwNTk4NCwgMC40NTY3MTQsIDAuNzQ0OTY5LCAxLjExMDM5LCAxLjQ3MjMsIDEuODM0OSwgMi4yMDEyNiIsIFwKLSAgICAgICAgICAiMC4xMDcxNDEsIDAuNDU2ODUzLCAwLjc0NTAyNiwgMS4xMTA0MiwgMS40NzIzNiwgMS44MzQ5LCAyLjIwMTE3Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwNjM4MiwgMC4zMTMyOTQsIDAuNDc4Mjk5LCAwLjY4NDc5LCAwLjg5MDgxNCwgMS4wOTY4NywgMS4zMDI5OSIsIFwKLSAgICAgICAgICAiMC4xMTc5MDksIDAuMzI0ODE5LCAwLjQ4OTgyNSwgMC42OTU5ODgsIDAuOTAyMTU2LCAxLjEwODI1LCAxLjMxNDM1IiwgXAotICAgICAgICAgICIwLjEzMjgzOSwgMC4zMzk3ODUsIDAuNTA0ODEyLCAwLjcxMTEzOCwgMC45MTcyNTQsIDEuMTIzMTksIDEuMzI5NDIiLCBcCi0gICAgICAgICAgIjAuMTQ3NTQyLCAwLjM1NDQ4NywgMC41MTk1MjUsIDAuNzI1NjU1LCAwLjkzMTc4MiwgMS4xMzgxMSwgMS4zNDQxOCIsIFwKLSAgICAgICAgICAiMC4xNjE4NDcsIDAuMzY4ODM1LCAwLjUzMzg3OSwgMC43NDAyNTEsIDAuOTQ2Mzg5LCAxLjE1MjUxLCAxLjM1ODU3IiwgXAotICAgICAgICAgICIwLjE4NDYyMywgMC4zOTE2NywgMC41NTY3MjIsIDAuNzYzMTI3LCAwLjk2OTI3NywgMS4xNzUzNSwgMS4zODE0MiIsIFwKLSAgICAgICAgICAiMC4yMDI2OTEsIDAuNDA5NjM3LCAwLjU3NDcyNywgMC43ODA4MTksIDAuOTg3MDA1LCAxLjE5MzIsIDEuMzk5MjgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTAwMDE4LCAwLjUwNzQ1OSwgMC44MzMzNzIsIDEuMjQ1OCwgMS42NTU0NywgMi4wNzAwNiwgMi40NzYzNCIsIFwKLSAgICAgICAgICAiMC4xMDAwNjcsIDAuNTA3NDU3LCAwLjgzMzM4NSwgMS4yNDM0NiwgMS42NTUwMSwgMi4wNjQ0NywgMi40NzQ4NSIsIFwKLSAgICAgICAgICAiMC4xMDAwNTYsIDAuNTA3NDY4LCAwLjgzNDIzNSwgMS4yNDQ0NiwgMS42NTcwNCwgMi4wNjQ1NiwgMi40NzQxMSIsIFwKLSAgICAgICAgICAiMC4xMDAwMiwgMC41MDc0NywgMC44MzQxODIsIDEuMjQzODYsIDEuNjU0MywgMi4wNjk5LCAyLjQ3NTMiLCBcCi0gICAgICAgICAgIjAuMTAwNTQzLCAwLjUwNzQ5LCAwLjgzNDEyNiwgMS4yNDQxNywgMS42NTU0MiwgMi4wNjkyOCwgMi40NzYwMiIsIFwKLSAgICAgICAgICAiMC4xMDA2NjEsIDAuNTA3NTI0LCAwLjgzNDM2MywgMS4yNDQwMywgMS42NTQ4LCAyLjA2OTMyLCAyLjQ3NjA3IiwgXAotICAgICAgICAgICIwLjEwMTk5LCAwLjUwNTg0MiwgMC44MzQ5OTEsIDEuMjQ3MDEsIDEuNjU2NTcsIDIuMDcxMjUsIDIuNDgxNjciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDE5MywgMC4wMDE5NjYsIDAuMDAxOTcsIDAuMDAxOTcyLCAwLjAwMTk3MywgMC4wMDE5NzMsIDAuMDAxOTc0IiwgXAotICAgICAgICAgICIwLjAwMTkxOSwgMC4wMDE5NTUsIDAuMDAxOTYsIDAuMDAxOTYyLCAwLjAwMTk2MywgMC4wMDE5NjMsIDAuMDAxOTY0IiwgXAotICAgICAgICAgICIwLjAwMTkwOSwgMC4wMDE5NDcsIDAuMDAxOTUxLCAwLjAwMTk1MywgMC4wMDE5NTUsIDAuMDAxOTU1LCAwLjAwMTk1NSIsIFwKLSAgICAgICAgICAiMC4wMDE5MDEsIDAuMDAxOTQyLCAwLjAwMTk0NywgMC4wMDE5NDksIDAuMDAxOTQ5LCAwLjAwMTk1LCAwLjAwMTk1MSIsIFwKLSAgICAgICAgICAiMC4wMDE4OTYsIDAuMDAxOTM3LCAwLjAwMTk0MiwgMC4wMDE5NDUsIDAuMDAxOTQ2LCAwLjAwMTk0NywgMC4wMDE5NDciLCBcCi0gICAgICAgICAgIjAuMDAxODg3LCAwLjAwMTkzMiwgMC4wMDE5MzcsIDAuMDAxOTQsIDAuMDAxOTQxLCAwLjAwMTk0MiwgMC4wMDE5NDQiLCBcCi0gICAgICAgICAgIjAuMDAxODgyLCAwLjAwMTkyNywgMC4wMDE5MzQsIDAuMDAxOTM4LCAwLjAwMTkzOSwgMC4wMDE5NCwgMC4wMDE5NDEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI3NjksIDAuMDAyODA1LCAwLjAwMjgwOCwgMC4wMDI4MSwgMC4wMDI4MTEsIDAuMDAyODEyLCAwLjAwMjgxMiIsIFwKLSAgICAgICAgICAiMC4wMDI3NTksIDAuMDAyNzk3LCAwLjAwMjgwMSwgMC4wMDI4MDMsIDAuMDAyODA0LCAwLjAwMjgwNSwgMC4wMDI4MDUiLCBcCi0gICAgICAgICAgIjAuMDAyNzQ2LCAwLjAwMjc5LCAwLjAwMjc5NSwgMC4wMDI3OTgsIDAuMDAyNzk5LCAwLjAwMjgsIDAuMDAyOCIsIFwKLSAgICAgICAgICAiMC4wMDI3MzYsIDAuMDAyNzg1LCAwLjAwMjc5MSwgMC4wMDI3OTQsIDAuMDAyNzk2LCAwLjAwMjc5NywgMC4wMDI3OTciLCBcCi0gICAgICAgICAgIjAuMDAyNzI1LCAwLjAwMjc3OSwgMC4wMDI3ODcsIDAuMDAyNzkxLCAwLjAwMjc5MywgMC4wMDI3OTQsIDAuMDAyNzk1IiwgXAotICAgICAgICAgICIwLjAwMjcxMywgMC4wMDI3NzQsIDAuMDAyNzgzLCAwLjAwMjc4NywgMC4wMDI3OSwgMC4wMDI3OTIsIDAuMDAyNzkzIiwgXAotICAgICAgICAgICIwLjAwMjcwNywgMC4wMDI3NjksIDAuMDAyNzc5LCAwLjAwMjc4NCwgMC4wMDI3ODcsIDAuMDAyNzg5LCAwLjAwMjc5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxOTI5LCAwLjAwMTk2OCwgMC4wMDE5NzMsIDAuMDAxOTc0LCAwLjAwMTk3NiwgMC4wMDE5NzcsIDAuMDAxOTc2IiwgXAotICAgICAgICAgICIwLjAwMTkxMywgMC4wMDE5NTUsIDAuMDAxOTYsIDAuMDAxOTYyLCAwLjAwMTk2NCwgMC4wMDE5NjQsIDAuMDAxOTY1IiwgXAotICAgICAgICAgICIwLjAwMTkwMiwgMC4wMDE5NDQsIDAuMDAxOTUsIDAuMDAxOTUzLCAwLjAwMTk1NCwgMC4wMDE5NTUsIDAuMDAxOTU1IiwgXAotICAgICAgICAgICIwLjAwMTg5NCwgMC4wMDE5MzgsIDAuMDAxOTQ0LCAwLjAwMTk0NywgMC4wMDE5NDgsIDAuMDAxOTQ5LCAwLjAwMTk1IiwgXAotICAgICAgICAgICIwLjAwMTg4OCwgMC4wMDE5MzIsIDAuMDAxOTM5LCAwLjAwMTk0MywgMC4wMDE5NDUsIDAuMDAxOTQ2LCAwLjAwMTk0NiIsIFwKLSAgICAgICAgICAiMC4wMDE4ODEsIDAuMDAxOTI3LCAwLjAwMTkzNCwgMC4wMDE5MzgsIDAuMDAxOTQxLCAwLjAwMTk0MiwgMC4wMDE5NDMiLCBcCi0gICAgICAgICAgIjAuMDAxODczLCAwLjAwMTkyNCwgMC4wMDE5MywgMC4wMDE5MzYsIDAuMDAxOTM4LCAwLjAwMTk0LCAwLjAwMTk0MSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjU5LCAwLjAwMjYyOCwgMC4wMDI2MzIsIDAuMDAyNjM0LCAwLjAwMjYzNSwgMC4wMDI2MzYsIDAuMDAyNjM2IiwgXAotICAgICAgICAgICIwLjAwMjU4MiwgMC4wMDI2MjIsIDAuMDAyNjI3LCAwLjAwMjYyOSwgMC4wMDI2MywgMC4wMDI2MywgMC4wMDI2MzEiLCBcCi0gICAgICAgICAgIjAuMDAyNTY4LCAwLjAwMjYxNCwgMC4wMDI2MTksIDAuMDAyNjIxLCAwLjAwMjYyMywgMC4wMDI2MjMsIDAuMDAyNjI0IiwgXAotICAgICAgICAgICIwLjAwMjU1MSwgMC4wMDI2MDUsIDAuMDAyNjExLCAwLjAwMjYxNSwgMC4wMDI2MTcsIDAuMDAyNjE4LCAwLjAwMjYxOCIsIFwKLSAgICAgICAgICAiMC4wMDI1MzYsIDAuMDAyNTk4LCAwLjAwMjYwNiwgMC4wMDI2MSwgMC4wMDI2MTIsIDAuMDAyNjE0LCAwLjAwMjYxNCIsIFwKLSAgICAgICAgICAiMC4wMDI1MjUsIDAuMDAyNTg5LCAwLjAwMjU5OSwgMC4wMDI2MDQsIDAuMDAyNjA2LCAwLjAwMjYwOCwgMC4wMDI2MDkiLCBcCi0gICAgICAgICAgIjAuMDAyNTE1LCAwLjAwMjU4MiwgMC4wMDI1OTMsIDAuMDAyNTk5LCAwLjAwMjYwMiwgMC4wMDI2MDQsIDAuMDAyNjA1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBBTkQyWDggKgotICogLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChBTkQyWDgpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4zNTE5NTQ7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTY2MDUxOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTY2MDUxOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTY1NjE5OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDYxMiwgMC4wMDA2MTIsIDAuMDAwNjEyLCAwLjAwMDYxMiwgMC4wMDA2MTEsIDAuMDAwNjExLCAwLjAwMDYxMSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDYzNCwgMC4wMDA2MTksIDAuMDAwNjE3LCAwLjAwMDYxNiwgMC4wMDA2MTYsIDAuMDAwNjE1LCAwLjAwMDYxNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNTM2NjY7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNTM1MTE7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNTM2NjY7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzIxLCAwLjAwMDMyLCAwLjAwMDMyLCAwLjAwMDMyLCAwLjAwMDMyLCAwLjAwMDMyLCAwLjAwMDMyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNjk1LCAwLjAwMDY5NSwgMC4wMDA2OTYsIDAuMDAwNjk2LCAwLjAwMDY5NiwgMC4wMDA2OTYsIDAuMDAwNjk2Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDEuMDM0NjI7Ci0gICAgZnVuY3Rpb24gOiAiKEEgQikiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTE5ODg3LCAwLjE5NDc4OCwgMC4yNTkyNDMsIDAuMzA0NzMzLCAwLjM3NzY3MSwgMC40NDExNjUsIDAuNTMxODU0IiwgXAotICAgICAgICAgICIwLjEzMTAzNywgMC4yMDYxMDQsIDAuMjcwNTE0LCAwLjMxNjAxNSwgMC4zODg2MzQsIDAuNDUyMTQyLCAwLjU0Mjg2MyIsIFwKLSAgICAgICAgICAiMC4xNDQzMzUsIDAuMjE5Mzk1LCAwLjI4MzkxMywgMC4zMjkzODUsIDAuNDAyMDQsIDAuNDY1NTMzLCAwLjU1NjMwNCIsIFwKLSAgICAgICAgICAiMC4xNTc2MDgsIDAuMjMyODY2LCAwLjI5NzM5NiwgMC4zNDI4ODcsIDAuNDE1NTMzLCAwLjQ3OTAyOCwgMC41Njk3OTciLCBcCi0gICAgICAgICAgIjAuMTcwOTQ3LCAwLjI0NjI4NywgMC4zMTA3NDksIDAuMzU2MjYxLCAwLjQyODg5MiwgMC40OTI0MzksIDAuNTgzMTkxIiwgXAotICAgICAgICAgICIwLjE5MjMyMiwgMC4yNjc3MDgsIDAuMzMyMTUsIDAuMzc3NjQxLCAwLjQ1MDI4MSwgMC41MTM3ODcsIDAuNjA0NDg1IiwgXAotICAgICAgICAgICIwLjIxMDU5OSwgMC4yODU4OTQsIDAuMzUwMzM1LCAwLjM5NTg2LCAwLjQ2ODQ4LCAwLjUzMTk4NiwgMC42MjI3MzEiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTM1NzUsIDAuMTc0NzU1LCAwLjI5ODg4MywgMC4zODk3NTksIDAuNTMzNjY0LCAwLjY2MzEzLCAwLjg0ODIxNyIsIFwKLSAgICAgICAgICAiMC4wNTM2NjQsIDAuMTc0NzE5LCAwLjI5OTA2MywgMC4zODk3MTIsIDAuNTMzNzEsIDAuNjY0MDkxLCAwLjg0NjI4NyIsIFwKLSAgICAgICAgICAiMC4wNTM2MTUsIDAuMTc0NTIxLCAwLjI5ODg2OSwgMC4zODkwOTksIDAuNTM0ODcsIDAuNjYzMTI0LCAwLjg0NjIxMiIsIFwKLSAgICAgICAgICAiMC4wNTM3MjYsIDAuMTc0NDQ4LCAwLjI5ODc5NywgMC4zODg3NjQsIDAuNTM0OTMyLCAwLjY2MzA5NSwgMC44NDYyMDMiLCBcCi0gICAgICAgICAgIjAuMDUzNTE1LCAwLjE3NDQsIDAuMjk4OTM1LCAwLjM4OTU4NywgMC41MzQ0NTgsIDAuNjY0MzcsIDAuODQ2MjI2IiwgXAotICAgICAgICAgICIwLjA1NDA1NSwgMC4xNzQ0NDcsIDAuMjk4ODEyLCAwLjM4OTU1NywgMC41MzQ5MDcsIDAuNjYzMTE4LCAwLjg0NzcwNCIsIFwKLSAgICAgICAgICAiMC4wNTQyMDksIDAuMTc0NDA5LCAwLjI5ODk4MywgMC4zODk1NDgsIDAuNTM0OTU1LCAwLjY2NDA4MiwgMC44NDg0NzMiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzI0MzcsIDAuMTUwMjE1LCAwLjIyNDg1MSwgMC4yNzgwNjcsIDAuMzYzMTI3LCAwLjQzNzUyMywgMC41NDM4MDciLCBcCi0gICAgICAgICAgIjAuMDg0MDcyLCAwLjE2MTg4OCwgMC4yMzY1MjMsIDAuMjg5NzI1LCAwLjM3NDc4OCwgMC40NDkxOTUsIDAuNTU1NDgiLCBcCi0gICAgICAgICAgIjAuMDk4NzU1LCAwLjE3NjYyLCAwLjI1MTI3MSwgMC4zMDQ0NzksIDAuMzg5NTQ4LCAwLjQ2Mzk1NywgMC41NzAyNDYiLCBcCi0gICAgICAgICAgIjAuMTEzNjEzLCAwLjE5MTQ2LCAwLjI2NjE0OCwgMC4zMTkzNiwgMC40MDQ0MzUsIDAuNDc4ODM4LCAwLjU4NTEzMyIsIFwKLSAgICAgICAgICAiMC4xMjgyMiwgMC4yMDYxMDQsIDAuMjgwNzc4LCAwLjMzNDAxMywgMC40MTkwOTUsIDAuNDkzNSwgMC41OTk3OTciLCBcCi0gICAgICAgICAgIjAuMTUwNTkxLCAwLjIyODcyNCwgMC4zMDMzODcsIDAuMzU2NjIsIDAuNDQxNzI1LCAwLjUxNjE1NiwgMC42MjI0NSIsIFwKLSAgICAgICAgICAiMC4xNjg3MTMsIDAuMjQ2OTgyLCAwLjMyMTYzMiwgMC4zNzQ4ODYsIDAuNDYsIDAuNTM0NCwgMC42NDA2OTciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDIzMDcsIDAuMTg1NjUxLCAwLjMzMjU4LCAwLjQzODYyMiwgMC42MDc4ODIsIDAuNzU2NDIxLCAwLjk2NjgwNyIsIFwKLSAgICAgICAgICAiMC4wNDIzMTMsIDAuMTg1NjU5LCAwLjMzMzE3MywgMC40Mzg2NDQsIDAuNjA4MDA5LCAwLjc1NTM3NiwgMC45NjcxMTUiLCBcCi0gICAgICAgICAgIjAuMDQyMzUsIDAuMTg1NjY5LCAwLjMzMzE1OCwgMC40Mzg2NTQsIDAuNjA3OTgxLCAwLjc1NTQ0OSwgMC45NjcxMjMiLCBcCi0gICAgICAgICAgIjAuMDQyNDE5LCAwLjE4NTY1NSwgMC4zMzIzNzUsIDAuNDM4NjI1LCAwLjYwNzk0LCAwLjc1NjQ5NywgMC45NjY5MiIsIFwKLSAgICAgICAgICAiMC4wNDI4NTIsIDAuMTg1NjksIDAuMzMyNjYzLCAwLjQzODY1LCAwLjYwNzkyOCwgMC43NTY0OTgsIDAuOTY2OTA5IiwgXAotICAgICAgICAgICIwLjA0NDAyOCwgMC4xODU3MTgsIDAuMzMzMTc0LCAwLjQzODg0NywgMC42MDc5ODEsIDAuNzU2MjUzLCAwLjk2ODMxMiIsIFwKLSAgICAgICAgICAiMC4wNDU3NTUsIDAuMTg2MDM4LCAwLjMzMzI0MSwgMC40Mzg3OTIsIDAuNjA3NzE2LCAwLjc1NjE3NSwgMC45NjgxNDkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTU0MzQsIDAuMTkwNTMyLCAwLjI1NDk4NiwgMC4zMDA0ODgsIDAuMzczMTA1LCAwLjQzNjYxOCwgMC41MjczNTIiLCBcCi0gICAgICAgICAgIjAuMTI1MjU5LCAwLjIwMDQ1NSwgMC4yNjQ4NTksIDAuMzEwMzc2LCAwLjM4Mjk4OSwgMC40NDY0ODUsIDAuNTM3MjExIiwgXAotICAgICAgICAgICIwLjEzODAxMywgMC4yMTM0MTksIDAuMjc3ODI3LCAwLjMyMzMzOSwgMC4zOTU5NjgsIDAuNDU5NDgyLCAwLjU1MDE5NSIsIFwKLSAgICAgICAgICAiMC4xNTE4NCwgMC4yMjcxNjcsIDAuMjkxNjIzLCAwLjMzNzEyOSwgMC40MDk3NiwgMC40NzMyNTksIDAuNTY0MDU0IiwgXAotICAgICAgICAgICIwLjE2NTM0NywgMC4yNDA2MjIsIDAuMzA1MTg5LCAwLjM1MDcxLCAwLjQyMzM1LCAwLjQ4Njg1NCwgMC41Nzc1ODciLCBcCi0gICAgICAgICAgIjAuMTg3MTgyLCAwLjI2MjQ5NiwgMC4zMjY5NzMsIDAuMzcyNDk5LCAwLjQ0NTEzLCAwLjUwODYzOCwgMC41OTk0NDEiLCBcCi0gICAgICAgICAgIjAuMjA2MjIsIDAuMjgxNDYzLCAwLjM0NTI1MSwgMC4zOTA3MzQsIDAuNDYzMzYsIDAuNTI2ODY4LCAwLjYxNzYxMyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1Mzc3NiwgMC4xNzQ1NywgMC4yOTg3OTUsIDAuMzg5Njk0LCAwLjUzMzcyNSwgMC42NjE4MDksIDAuODQ2NDkxIiwgXAotICAgICAgICAgICIwLjA1MzY5NCwgMC4xNzQ2MjQsIDAuMjk4ODg0LCAwLjM4ODc4MiwgMC41MzQzOTcsIDAuNjYzMTIzLCAwLjg0ODQ0NCIsIFwKLSAgICAgICAgICAiMC4wNTM4OTgsIDAuMTc0NTA0LCAwLjI5ODgwOSwgMC4zODk2MDEsIDAuNTM0NTAyLCAwLjY2NDI0MiwgMC44NDY0MTIiLCBcCi0gICAgICAgICAgIjAuMDUzNTc1LCAwLjE3NDQzMywgMC4yOTg5MTYsIDAuMzg5NTM1LCAwLjUzNDQ5MiwgMC42NjM5MTEsIDAuODQ2MzM4IiwgXAotICAgICAgICAgICIwLjA1MzU0NCwgMC4xNzQyMywgMC4yOTg3NywgMC4zODk0NjcsIDAuNTM0OTYxLCAwLjY2MzA3LCAwLjg0ODQwNiIsIFwKLSAgICAgICAgICAiMC4wNTM4MDEsIDAuMTc0Mjg5LCAwLjI5ODg4OCwgMC4zODk1MjUsIDAuNTM0OTM5LCAwLjY2NDA0NywgMC44NDY0MTIiLCBcCi0gICAgICAgICAgIjAuMDU0MTgsIDAuMTc0NTczLCAwLjI5OTIwMywgMC4zODk4ODMsIDAuNTM1Nzg2LCAwLjY2MzE1MiwgMC44NDY0OTEiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzA3OTQsIDAuMTQ4NDQ1LCAwLjIyMzAyNiwgMC4yNzYxOSwgMC4zNjEyMjMsIDAuNDM1NzM5LCAwLjU0MTk0NSIsIFwKLSAgICAgICAgICAiMC4wODIyMiwgMC4xNTk5MTYsIDAuMjM0NDU1LCAwLjI4NzYzNywgMC4zNzI2ODQsIDAuNDQ3MTg2LCAwLjU1MzUzNyIsIFwKLSAgICAgICAgICAiMC4wOTcxOTUsIDAuMTc0ODkzLCAwLjI0OTQ3MywgMC4zMDI2NiwgMC4zODc3MTIsIDAuNDYyMjI0LCAwLjU2ODQwMSIsIFwKLSAgICAgICAgICAiMC4xMTE4MDUsIDAuMTg5NTQ5LCAwLjI2NDE1MSwgMC4zMTczNTIsIDAuNDAyNDI2LCAwLjQ3NjgxNSwgMC41ODMxMTYiLCBcCi0gICAgICAgICAgIjAuMTI2MzEzLCAwLjIwNDA3NywgMC4yNzg2OSwgMC4zMzE2MDUsIDAuNDE2NjYzLCAwLjQ5MTE4NSwgMC41OTc0IiwgXAotICAgICAgICAgICIwLjE0ODIwMiwgMC4yMjYyOTYsIDAuMzAwOTYxLCAwLjM1NDE3OSwgMC40MzkyMjEsIDAuNTEzNzgsIDAuNjE5OTY2IiwgXAotICAgICAgICAgICIwLjE2NjAzOCwgMC4yNDM5NDcsIDAuMzE4NTM0LCAwLjM3MTcxOCwgMC40NTY3OTUsIDAuNTMxMjA4LCAwLjYzNzYzNyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0MjMwOCwgMC4xODU0NzcsIDAuMzMyMzM5LCAwLjQzODczMywgMC42MDc2NTgsIDAuNzU1NDk5LCAwLjk2ODU4NCIsIFwKLSAgICAgICAgICAiMC4wNDIzNTcsIDAuMTg1NTExLCAwLjMzMjIyOCwgMC40MzgxNzYsIDAuNjA3NTI2LCAwLjc1NTA5NSwgMC45NjcwMTUiLCBcCi0gICAgICAgICAgIjAuMDQyMzMzLCAwLjE4NTQ5MSwgMC4zMzIwNjcsIDAuNDM4NzM0LCAwLjYwNzExNywgMC43NTU0NTIsIDAuOTY5MTI1IiwgXAotICAgICAgICAgICIwLjA0MjQwMywgMC4xODU0ODgsIDAuMzMyMDIxLCAwLjQzODczNiwgMC42MDYzMDMsIDAuNzU2NDIzLCAwLjk2NjQ1OSIsIFwKLSAgICAgICAgICAiMC4wNDI3NDIsIDAuMTg1NDEzLCAwLjMzMjI0NiwgMC40MzgyNjcsIDAuNjA3NzQ2LCAwLjc1NTI4MSwgMC45Njg1OTEiLCBcCi0gICAgICAgICAgIjAuMDQ0MzY1LCAwLjE4NTc2MywgMC4zMzIxNDksIDAuNDM4Mzc3LCAwLjYwODMwMiwgMC43NTUzNDEsIDAuOTY4Nzc0IiwgXAotICAgICAgICAgICIwLjA0NTk1NywgMC4xODYzNjQsIDAuMzMyOTA4LCAwLjQzNzkwOSwgMC42MDgzNTIsIDAuNzU2MTg3LCAwLjk2NzE2NiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2OTc2LCAwLjAwNzIzMiwgMC4wMDcyNzQsIDAuMDA3MzA0LCAwLjAwNzMxLCAwLjAwNzMxMiwgMC4wMDczMTkiLCBcCi0gICAgICAgICAgIjAuMDA2OTMxLCAwLjAwNzE4NiwgMC4wMDcyMzYsIDAuMDA3MjUyLCAwLjAwNzI3MiwgMC4wMDcyNjksIDAuMDA3Mjg1IiwgXAotICAgICAgICAgICIwLjAwNjg5MywgMC4wMDcxNSwgMC4wMDcyMDcsIDAuMDA3MjE1LCAwLjAwNzIzMywgMC4wMDcyNCwgMC4wMDcyNDciLCBcCi0gICAgICAgICAgIjAuMDA2ODY0LCAwLjAwNzExOSwgMC4wMDcxNzcsIDAuMDA3MTk1LCAwLjAwNzIxMSwgMC4wMDcyMTksIDAuMDA3MjI2IiwgXAotICAgICAgICAgICIwLjAwNjg0NSwgMC4wMDcwOTcsIDAuMDA3MTU3LCAwLjAwNzE3NiwgMC4wMDcxOTQsIDAuMDA3MjA1LCAwLjAwNzIxMSIsIFwKLSAgICAgICAgICAiMC4wMDY4MzEsIDAuMDA3MDY1LCAwLjAwNzEyOSwgMC4wMDcxNTEsIDAuMDA3MTcxLCAwLjAwNzE4MiwgMC4wMDcxOTEiLCBcCi0gICAgICAgICAgIjAuMDA2ODAxLCAwLjAwNzA0OCwgMC4wMDcxMTIsIDAuMDA3MTQzLCAwLjAwNzE2MiwgMC4wMDcxNzMsIDAuMDA3MTgzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDk0MjgsIDAuMDA5NzEzLCAwLjAwOTc1OCwgMC4wMDk3NzEsIDAuMDA5NzgzLCAwLjAwOTc5LCAwLjAwOTc5NSIsIFwKLSAgICAgICAgICAiMC4wMDkzODUsIDAuMDA5Njc4LCAwLjAwOTcyNSwgMC4wMDk3NCwgMC4wMDk3NTMsIDAuMDA5NzYsIDAuMDA5NzY3IiwgXAotICAgICAgICAgICIwLjAwOTMzNCwgMC4wMDk2MzQsIDAuMDA5NjkxLCAwLjAwOTcwOSwgMC4wMDk3MjYsIDAuMDA5NzM1LCAwLjAwOTc0MyIsIFwKLSAgICAgICAgICAiMC4wMDkyODYsIDAuMDA5NTkzLCAwLjAwOTY2LCAwLjAwOTY4MiwgMC4wMDk3MDMsIDAuMDA5NzE0LCAwLjAwOTcyNCIsIFwKLSAgICAgICAgICAiMC4wMDkyNDcsIDAuMDA5NTU4LCAwLjAwOTYzNCwgMC4wMDk2NiwgMC4wMDk2ODUsIDAuMDA5Njk4LCAwLjAwOTcxIiwgXAotICAgICAgICAgICIwLjAwOTIwNSwgMC4wMDk1MTQsIDAuMDA5NjAxLCAwLjAwOTYzMiwgMC4wMDk2NjIsIDAuMDA5Njc4LCAwLjAwOTY5MyIsIFwKLSAgICAgICAgICAiMC4wMDkxOTIsIDAuMDA5NDg3LCAwLjAwOTU3NywgMC4wMDk2MTEsIDAuMDA5NjQ0LCAwLjAwOTY2MSwgMC4wMDk2NzkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjk3MSwgMC4wMDcyMjcsIDAuMDA3Mjc0LCAwLjAwNzI5MSwgMC4wMDczMTMsIDAuMDA3MzE4LCAwLjAwNzMyNSIsIFwKLSAgICAgICAgICAiMC4wMDY5MTcsIDAuMDA3MTcyLCAwLjAwNzIyOCwgMC4wMDcyNDcsIDAuMDA3MjUzLCAwLjAwNzI2MiwgMC4wMDcyNzUiLCBcCi0gICAgICAgICAgIjAuMDA2ODcsIDAuMDA3MTI3LCAwLjAwNzE4MywgMC4wMDcyMDIsIDAuMDA3MjE5LCAwLjAwNzIyOCwgMC4wMDcyMzYiLCBcCi0gICAgICAgICAgIjAuMDA2ODQ0LCAwLjAwNzA5NCwgMC4wMDcxNTQsIDAuMDA3MTc5LCAwLjAwNzE5MiwgMC4wMDcxOTgsIDAuMDA3MjEzIiwgXAotICAgICAgICAgICIwLjAwNjgzMiwgMC4wMDcwNjksIDAuMDA3MTMzLCAwLjAwNzE1OCwgMC4wMDcxNzgsIDAuMDA3MTg3LCAwLjAwNzIiLCBcCi0gICAgICAgICAgIjAuMDA2OCwgMC4wMDcwMzUsIDAuMDA3MTA3LCAwLjAwNzEzLCAwLjAwNzE1NSwgMC4wMDcxNjgsIDAuMDA3MTgiLCBcCi0gICAgICAgICAgIjAuMDA2Nzk3LCAwLjAwNzAxOSwgMC4wMDcwODgsIDAuMDA3MTE2LCAwLjAwNzE0LCAwLjAwNzE1OCwgMC4wMDcxNyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA4ODI0LCAwLjAwOTExNiwgMC4wMDkxNiwgMC4wMDkxNzQsIDAuMDA5MTg2LCAwLjAwOTE5MSwgMC4wMDkxOTciLCBcCi0gICAgICAgICAgIjAuMDA4NzgsIDAuMDA5MDg2LCAwLjAwOTEzNCwgMC4wMDkxNDgsIDAuMDA5MTYxLCAwLjAwOTE2OCwgMC4wMDkxNzQiLCBcCi0gICAgICAgICAgIjAuMDA4NzI2LCAwLjAwOTAzNywgMC4wMDkwOTQsIDAuMDA5MTEyLCAwLjAwOTEyOCwgMC4wMDkxMzYsIDAuMDA5MTQ0IiwgXAotICAgICAgICAgICIwLjAwODY2NCwgMC4wMDg5ODMsIDAuMDA5MDUzLCAwLjAwOTA3NiwgMC4wMDkwOTYsIDAuMDA5MTA3LCAwLjAwOTExNyIsIFwKLSAgICAgICAgICAiMC4wMDg2MjMsIDAuMDA4OTQyLCAwLjAwOTAyMSwgMC4wMDkwNDUsIDAuMDA5MDcxLCAwLjAwOTA4NSwgMC4wMDkwOTciLCBcCi0gICAgICAgICAgIjAuMDA4NTY1LCAwLjAwODg4OCwgMC4wMDg5ODEsIDAuMDA5MDEzLCAwLjAwOTA0MywgMC4wMDkwNTksIDAuMDA5MDczIiwgXAotICAgICAgICAgICIwLjAwODU1MiwgMC4wMDg4NTMsIDAuMDA4OTUxLCAwLjAwODk4NywgMC4wMDkwMjEsIDAuMDA5MDQsIDAuMDA5MDU3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBBTkQzWDIgKgotICogLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChBTkQzWDIpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4wOTM0ODY2OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA1OTQzODg7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNTk0Mzg4OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDU5Mjc0NzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxNjUsIDAuMDAwMTY1LCAwLjAwMDE2NSwgMC4wMDAxNjUsIDAuMDAwMTY1LCAwLjAwMDE2NSwgMC4wMDAxNjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiwgMC4wMDAxNjYiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYxMDAxODsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MTAwMTg7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjA4NzQ7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMTY1LCAwLjAwMDE2NSwgMC4wMDAxNjUsIDAuMDAwMTY1LCAwLjAwMDE2NSwgMC4wMDAxNjUsIDAuMDAwMTY1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMTY2LCAwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY2Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihDKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2MDU0MzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MDQ3NDc7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjA1NDM7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMDcxLCAwLjAwMDA3MSwgMC4wMDAwNzEsIDAuMDAwMDcxLCAwLjAwMDA3MSwgMC4wMDAwNzEsIDAuMDAwMDcxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMTg4LCAwLjAwMDE4OCwgMC4wMDAxODgsIDAuMDAwMTg4LCAwLjAwMDE4OCwgMC4wMDAxODgsIDAuMDAwMTg4Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMjU2ODcxOwotICAgIGZ1bmN0aW9uIDogIigoQSBCKSBDKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjQ4MDQ4LCAwLjQ0MTI3OCwgMC41ODQ5MDgsIDAuNzY0MDEyLCAwLjk0MzA1MiwgMS4xMjIxNSwgMS4zMDExMyIsIFwKLSAgICAgICAgICAiMC4yNTkzNjYsIDAuNDUzMTEyLCAwLjU5Njc3NCwgMC43NzU4MzUsIDAuOTU0OTEzLCAxLjEzMzk5LCAxLjMxMzA4IiwgXAotICAgICAgICAgICIwLjI3MjU3NywgMC40NjU2NDIsIDAuNjA5MjYyLCAwLjc4ODM4NiwgMC45Njc1MzQsIDEuMTQ2NjEsIDEuMzI1NSIsIFwKLSAgICAgICAgICAiMC4yODUyNjYsIDAuNDc4MjUzLCAwLjYyMTkyMiwgMC44MDEwMjMsIDAuOTgwMDcsIDEuMTU5MTgsIDEuMzM4MDkiLCBcCi0gICAgICAgICAgIjAuMjk3NDcxLCAwLjQ5MTE1NywgMC42MzQ4MTcsIDAuODEzODc2LCAwLjk5Mjk1OSwgMS4xNzIwNCwgMS4zNTEiLCBcCi0gICAgICAgICAgIjAuMzE2Njg0LCAwLjUxMDU5MiwgMC42NTQyNTYsIDAuODMzMzk2LCAxLjAxMjM5LCAxLjE5MTU1LCAxLjM3MDQ2IiwgXAotICAgICAgICAgICIwLjMzMzUxNSwgMC41Mjc0NTcsIDAuNjcxMDk4LCAwLjg1MDIxNiwgMS4wMjkyOSwgMS4yMDgyNywgMS4zODczMiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMjcwMDEsIDAuNDY5MjE3LCAwLjc1NDExNywgMS4xMTQ0NCwgMS40NzkxNiwgMS44NDM4MSwgMi4yMDgyMSIsIFwKLSAgICAgICAgICAiMC4xMjY1NDcsIDAuNDY5MjAyLCAwLjc1NDk0NSwgMS4xMTQ0MSwgMS40NzU2OCwgMS44NDM4OCwgMi4yMDIzNSIsIFwKLSAgICAgICAgICAiMC4xMjY1NTUsIDAuNDY5NjM3LCAwLjc1NDE0MSwgMS4xMTQzNywgMS40Nzk3NiwgMS44Mzg3OCwgMi4yMDgxMiIsIFwKLSAgICAgICAgICAiMC4xMjYzNDQsIDAuNDY5MTYzLCAwLjc1NDA0NiwgMS4xMTQzMywgMS40NzY3OSwgMS44NDM5MiwgMi4yMDgwNiIsIFwKLSAgICAgICAgICAiMC4xMjY2OTQsIDAuNDY5MTMyLCAwLjc1NDk0MSwgMS4xMTQzNSwgMS40NzcwNCwgMS44NDM4NywgMi4yMDQxNSIsIFwKLSAgICAgICAgICAiMC4xMjY3MywgMC40Njg5MiwgMC43NTQ2NzksIDEuMTE2MTgsIDEuNDc4NzQsIDEuODQ2NCwgMi4yMDgwMyIsIFwKLSAgICAgICAgICAiMC4xMjY0NzYsIDAuNDY4ODQ2LCAwLjc1MzM2MywgMS4xMTQxNywgMS40NzkzNiwgMS44NDI5NCwgMi4yMDgwNCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTg3NzIsIDAuMzI2NTg4LCAwLjQ5MTY4OSwgMC42OTc5MDQsIDAuOTA0MTY0LCAxLjExMDIxLCAxLjMxNjM1IiwgXAotICAgICAgICAgICIwLjEzMDEyLCAwLjMzNzk3MSwgMC41MDMwNzMsIDAuNzA5MjY4LCAwLjkxNTQ2MywgMS4xMjE2MiwgMS4zMjc3OCIsIFwKLSAgICAgICAgICAiMC4xNDQ5MDMsIDAuMzUyNzU2LCAwLjUxNzg3OSwgMC43MjQwNTksIDAuOTMwMjU0LCAxLjEzNjQxLCAxLjM0MjU4IiwgXAotICAgICAgICAgICIwLjE1OTcwOSwgMC4zNjc1NzgsIDAuNTMyNzIxLCAwLjczODkyNCwgMC45NDUxMTIsIDEuMTUxMjcsIDEuMzU3NTUiLCBcCi0gICAgICAgICAgIjAuMTc0NjMzLCAwLjM4MjU0NiwgMC41NDc2MzYsIDAuNzUzODg5LCAwLjk2MDA4MSwgMS4xNjYyNCwgMS4zNzI0MSIsIFwKLSAgICAgICAgICAiMC4xOTc5MTcsIDAuNDA1NzkzLCAwLjU3MDg4MSwgMC43NzcxMywgMC45ODMzMjIsIDEuMTg5NiwgMS4zOTU2MyIsIFwKLSAgICAgICAgICAiMC4yMTc1MTgsIDAuNDI1NDEsIDAuNTkwNTI5LCAwLjc5Njc4MiwgMS4wMDI5NywgMS4yMDkxOCwgMS40MTUyOCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDIzMzgsIDAuNTA4MDEzLCAwLjgzNjA0NiwgMS4yNDc4MiwgMS42NTc2MiwgMi4wNzAwOSwgMi40ODE0MSIsIFwKLSAgICAgICAgICAiMC4xMDIzNSwgMC41MDgwMjksIDAuODM2MDY4LCAxLjI0NzUzLCAxLjY1Njk4LCAyLjA2NzU0LCAyLjQ3ODkzIiwgXAotICAgICAgICAgICIwLjEwMjQwMSwgMC41MDgwMjksIDAuODM1OTM3LCAxLjI0NzU5LCAxLjY1Njg2LCAyLjA2NzY5LCAyLjQ4MTAxIiwgXAotICAgICAgICAgICIwLjEwMjMyMywgMC41MDgxMiwgMC44MzU5LCAxLjI0NjE0LCAxLjY1Njg2LCAyLjA2NzY4LCAyLjQ3OTMzIiwgXAotICAgICAgICAgICIwLjEwMjMzNiwgMC41MDgwNiwgMC44MzY0NjcsIDEuMjQ2MTMsIDEuNjU2ODIsIDIuMDY3NiwgMi40ODE4MSIsIFwKLSAgICAgICAgICAiMC4xMDI3NSwgMC41MDcxMjQsIDAuODM2MjcsIDEuMjQ2MjUsIDEuNjU2NzgsIDIuMDY4NTEsIDIuNDc4MzIiLCBcCi0gICAgICAgICAgIjAuMTAzMTE3LCAwLjUwNzk4NSwgMC44MzYyNjksIDEuMjQ2NDQsIDEuNjU3MTEsIDIuMDY5MTYsIDIuNDc4MzYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjQxNzczLCAwLjQzNTQ3NywgMC41NzkxMzksIDAuNzU4MTkyLCAwLjkzNzI0LCAxLjExNjM4LCAxLjI5NTI3IiwgXAotICAgICAgICAgICIwLjI1MjQ2OCwgMC40NDYyMDYsIDAuNTg5ODM3LCAwLjc2ODk2LCAwLjk0ODAwNywgMS4xMjcyNSwgMS4zMDYwNiIsIFwKLSAgICAgICAgICAiMC4yNjUzNzEsIDAuNDU4NjI2LCAwLjYwMjI2LCAwLjc4MTM1MSwgMC45NjA0MjUsIDEuMTM5NDEsIDEuMzE4NDgiLCBcCi0gICAgICAgICAgIjAuMjc3OTIyLCAwLjQ3MTU0MywgMC42MTUyMTIsIDAuNzk0Mjc1LCAwLjk3MzM1NSwgMS4xNTI0NCwgMS4zMzE0IiwgXAotICAgICAgICAgICIwLjI5MTAwMSwgMC40ODQ1NDMsIDAuNjI4MTg2LCAwLjgwNzI3OSwgMC45ODYzNjcsIDEuMTY1NDIsIDEuMzQ0NCIsIFwKLSAgICAgICAgICAiMC4zMTE3MTksIDAuNTA1NjU1LCAwLjY0OTMyNywgMC44MjgzOTcsIDEuMDA3NDksIDEuMTg2NTYsIDEuMzY1NDkiLCBcCi0gICAgICAgICAgIjAuMzI5NjUzLCAwLjUyMzUzMiwgMC42NjcyMzcsIDAuODQ2Mzc2LCAxLjAyNTM5LCAxLjIwNDU1LCAxLjM4MzQ2Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEyNzA1NiwgMC40NjkzOTIsIDAuNzU1MTE3LCAxLjExNDM1LCAxLjQ3NjgzLCAxLjg0NDAxLCAyLjIwODA0IiwgXAotICAgICAgICAgICIwLjEyNjQ0NiwgMC40NjkwMTQsIDAuNzUzNDkyLCAxLjExNDMzLCAxLjQ3OTIsIDEuODM4ODYsIDIuMjA4MTEiLCBcCi0gICAgICAgICAgIjAuMTI2OTExLCAwLjQ2OTM4OCwgMC43NTQwMDksIDEuMTE0MzksIDEuNDc3MDMsIDEuODQzLCAyLjIwODE4IiwgXAotICAgICAgICAgICIwLjEyNjUyMywgMC40NjkxODUsIDAuNzU0OTU1LCAxLjExNDM3LCAxLjQ3NzExLCAxLjg0Mzg1LCAyLjIwODE2IiwgXAotICAgICAgICAgICIwLjEyNjU0MSwgMC40NjkxNjksIDAuNzUzNDA3LCAxLjExNDMyLCAxLjQ3NjAzLCAxLjg0MDY1LCAyLjIwODEzIiwgXAotICAgICAgICAgICIwLjEyNzA5NywgMC40Njg5NjUsIDAuNzU0NjksIDEuMTE0MjcsIDEuNDc1OCwgMS44NDM3OSwgMi4yMDcxNiIsIFwKLSAgICAgICAgICAiMC4xMjY0MTgsIDAuNDY4ODQsIDAuNzUzNzI5LCAxLjExNjEzLCAxLjQ3NjgyLCAxLjg0NjQ5LCAyLjIwODAyIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExNTkzOCwgMC4zMjMzNTIsIDAuNDg4MzE0LCAwLjY5NDQ4NCwgMC45MDA2MjUsIDEuMTA2NzYsIDEuMzEyODkiLCBcCi0gICAgICAgICAgIjAuMTI3NTA1LCAwLjMzNDkzOCwgMC40OTk4OTYsIDAuNzA2MDcsIDAuOTEyMTk5LCAxLjExODM3LCAxLjMyNDQ1IiwgXAotICAgICAgICAgICIwLjE0MjI3MywgMC4zNDk3MzMsIDAuNTE0Njk4LCAwLjcyMDg2OSwgMC45MjcwMDUsIDEuMTMzMTcsIDEuMzM5MjQiLCBcCi0gICAgICAgICAgIjAuMTU2OTg5LCAwLjM2NDQ4MywgMC41Mjk1MTYsIDAuNzM1NjYsIDAuOTQxODA5LCAxLjE0NzkzLCAxLjM1NDEzIiwgXAotICAgICAgICAgICIwLjE3MTgyNywgMC4zNzkzODcsIDAuNTQ0NDA2LCAwLjc1MDU4NiwgMC45NTY3MzYsIDEuMTYyODUsIDEuMzY4OTYiLCBcCi0gICAgICAgICAgIjAuMTk0OTY2LCAwLjQwMjQwMywgMC41Njc0NDUsIDAuNzczNjI5LCAwLjk3OTc4OSwgMS4xODU5LCAxLjM5MjAxIiwgXAotICAgICAgICAgICIwLjIxNDA5NywgMC40MjE2NiwgMC41ODY3MDcsIDAuNzkyODkzLCAwLjk5OTA1NCwgMS4yMDUxNywgMS40MTEyOCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDE2ODEsIDAuNTA3NzQ3LCAwLjgzNjU0MywgMS4yNDU3MiwgMS42NTY4NiwgMi4wNjk5OCwgMi40ODE0IiwgXAotICAgICAgICAgICIwLjEwMTc1MywgMC41MDY4MzEsIDAuODM2NDQ1LCAxLjI0NzU4LCAxLjY1NjcyLCAyLjA2OTUzLCAyLjQ3OTE0IiwgXAotICAgICAgICAgICIwLjEwMTc3NSwgMC41MDY2NDcsIDAuODM2MzEzLCAxLjI0NjI0LCAxLjY1Njk3LCAyLjA2OTYyLCAyLjQ3ODUyIiwgXAotICAgICAgICAgICIwLjEwMTcyOCwgMC41MDc0OTIsIDAuODM1Nzk5LCAxLjI0NTk5LCAxLjY1ODc2LCAyLjA2NzgyLCAyLjQ4MDYyIiwgXAotICAgICAgICAgICIwLjEwMTc2OCwgMC41MDc5MDgsIDAuODM1Mjc1LCAxLjI0NjIsIDEuNjU4NjMsIDIuMDY3NTcsIDIuNDc3OTkiLCBcCi0gICAgICAgICAgIjAuMTAyMzE0LCAwLjUwODAzNiwgMC44MzUwODYsIDEuMjQ2MTUsIDEuNjU4NzksIDIuMDY3NjgsIDIuNDc3OTYiLCBcCi0gICAgICAgICAgIjAuMTAyNzgzLCAwLjUwNjg5NCwgMC44MzUyNTcsIDEuMjQ2LCAxLjY1ODc0LCAyLjA2Nzc1LCAyLjQ3Nzk5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIzMTM4MiwgMC40MjQ3ODYsIDAuNTY4NDQ0LCAwLjc0NzUyMSwgMC45MjY2MDMsIDEuMTA1NjEsIDEuMjg0NjYiLCBcCi0gICAgICAgICAgIjAuMjQwMzYxLCAwLjQzMzkwNiwgMC41Nzc1MjcsIDAuNzU2NTc4LCAwLjkzNTYxNywgMS4xMTQ3NywgMS4yOTM2NyIsIFwKLSAgICAgICAgICAiMC4yNTI0NzgsIDAuNDQ1Nzk3LCAwLjU4OTQ3MiwgMC43Njg1NzcsIDAuOTQ3NjUzLCAxLjEyNjc0LCAxLjMwNTY1IiwgXAotICAgICAgICAgICIwLjI2NDc4MiwgMC40NTgyMTEsIDAuNjAxODQ5LCAwLjc4MDk2NywgMC45NTk5OTksIDEuMTM5MDYsIDEuMzE4MDgiLCBcCi0gICAgICAgICAgIjAuMjc3MjI5LCAwLjQ3MDkyNCwgMC42MTQ1OTgsIDAuNzkzNjcyLCAwLjk3Mjc2NSwgMS4xNTE4MywgMS4zMzA3NSIsIFwKLSAgICAgICAgICAiMC4yOTgwNDUsIDAuNDkyMDU2LCAwLjYzNTcyNSwgMC44MTQ3OTgsIDAuOTkzODg5LCAxLjE3Mjk3LCAxLjM1MjAzIiwgXAotICAgICAgICAgICIwLjMxNjMwNywgMC41MTAzMTIsIDAuNjU0MDE3LCAwLjgzMzA5LCAxLjAxMjE5LCAxLjE5MTI1LCAxLjM3MDIxIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEyNzA0LCAwLjQ2OTM3MSwgMC43NTM3NjcsIDEuMTE0NDIsIDEuNDc3MTEsIDEuODQwMzcsIDIuMjA4MjEiLCBcCi0gICAgICAgICAgIjAuMTI2OTIyLCAwLjQ2OTI5OSwgMC43NTUxMDcsIDEuMTE0MjcsIDEuNDc2OTgsIDEuODQ0LCAyLjIwODEiLCBcCi0gICAgICAgICAgIjAuMTI2NTYxLCAwLjQ2OTIxMSwgMC43NTQ3NjksIDEuMTEzNzQsIDEuNDc2MTYsIDEuODQ2MTcsIDIuMjA4MDYiLCBcCi0gICAgICAgICAgIjAuMTI2ODY0LCAwLjQ2OTA1NCwgMC43NTM0MTUsIDEuMTE0MzcsIDEuNDc5MDIsIDEuODQzNDcsIDIuMjA4MDkiLCBcCi0gICAgICAgICAgIjAuMTI2NzI0LCAwLjQ2ODk5OSwgMC43NTQ3MTUsIDEuMTE0MjcsIDEuNDc1OCwgMS44NDM3OCwgMi4yMDc4OCIsIFwKLSAgICAgICAgICAiMC4xMjYzMDQsIDAuNDY4ODk2LCAwLjc1NDY5MSwgMS4xMTQxOSwgMS40NzY3NSwgMS44NDM4MywgMi4yMTEzNiIsIFwKLSAgICAgICAgICAiMC4xMjYzMSwgMC40Njg4NiwgMC43NTQ4NDQsIDEuMTE0MzYsIDEuNDc2MTMsIDEuODQzNzcsIDIuMjA4MDQiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTEyNzk4LCAwLjMxOTkzNSwgMC40ODQ4OTEsIDAuNjkxMSwgMC44OTc0NjEsIDEuMTAzNTUsIDEuMzA5NjkiLCBcCi0gICAgICAgICAgIjAuMTI0Mjc5LCAwLjMzMTQzMywgMC40OTYzOTMsIDAuNzAyNTU1LCAwLjkwOTAzOSwgMS4xMTUxNiwgMS4zMjA5IiwgXAotICAgICAgICAgICIwLjEzOTE5NiwgMC4zNDYzNzgsIDAuNTExMzk4LCAwLjcxNzYsIDAuOTIzOTMzLCAxLjEzMDQ0LCAxLjMzNjA1IiwgXAotICAgICAgICAgICIwLjE1NDEwNCwgMC4zNjEzNzIsIDAuNTI2MzM1LCAwLjczMjY5NywgMC45Mzg4MDgsIDEuMTQ1MDksIDEuMzUxMzciLCBcCi0gICAgICAgICAgIjAuMTY4NTUsIDAuMzc1ODQsIDAuNTQwOTYyLCAwLjc0NzA2NiwgMC45NTM2MTEsIDEuMTU5NDIsIDEuMzY1NjUiLCBcCi0gICAgICAgICAgIjAuMTkxNjg0LCAwLjM5ODkyLCAwLjU2Mzk5NiwgMC43NzAyNzksIDAuOTc2NDY1LCAxLjE4Mjc1LCAxLjM4ODk2IiwgXAotICAgICAgICAgICIwLjIxMDQyMywgMC40MTc3NSwgMC41ODI3NjksIDAuNzg5MDQ2LCAwLjk5NTMyMSwgMS4yMDEyNiwgMS40MDc2OCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDEzNSwgMC41MDY3NTIsIDAuODM2Nzg3LCAxLjI0NzQ0LCAxLjY1NzE0LCAyLjA2NTgyLCAyLjQ3ODI0IiwgXAotICAgICAgICAgICIwLjEwMTQwMiwgMC41MDY1OTIsIDAuODM2Nzg5LCAxLjI0ODU0LCAxLjY1NTI3LCAyLjA2Nzk1LCAyLjQ4Mzg5IiwgXAotICAgICAgICAgICIwLjEwMTM3NiwgMC41MDY0MjgsIDAuODM0MTMsIDEuMjQ1NjEsIDEuNjU1ODEsIDIuMDY2NTYsIDIuNDc0NjMiLCBcCi0gICAgICAgICAgIjAuMTAxMzYsIDAuNTA2MjE0LCAwLjgzNDgyNCwgMS4yNDY5MywgMS42NTU1NSwgMi4wNjgxMiwgMi40Nzg2MiIsIFwKLSAgICAgICAgICAiMC4xMDE3MjcsIDAuNTA3NzkyLCAwLjgzNDU2OCwgMS4yNDY4LCAxLjY1NDM3LCAyLjA3MjI1LCAyLjQ3NjUzIiwgXAotICAgICAgICAgICIwLjEwMTkzNiwgMC41MDc3MTUsIDAuODM1OTI0LCAxLjI0Njk4LCAxLjY1NjQ4LCAyLjA2NzQzLCAyLjQ3Nzg1IiwgXAotICAgICAgICAgICIwLjEwMjk2LCAwLjUwNjc1MywgMC44MzQ4NzksIDEuMjQ1NjcsIDEuNjU3MywgMi4wNjU1MywgMi40ODExMyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjAwOCwgMC4wMDIwNSwgMC4wMDIwNTgsIDAuMDAyMDYsIDAuMDAyMDYxLCAwLjAwMjA2MiwgMC4wMDIwNjMiLCBcCi0gICAgICAgICAgIjAuMDAxOTk5LCAwLjAwMjA0MywgMC4wMDIwNDgsIDAuMDAyMDUyLCAwLjAwMjA1MywgMC4wMDIwNTMsIDAuMDAyMDU0IiwgXAotICAgICAgICAgICIwLjAwMTk4OSwgMC4wMDIwMzMsIDAuMDAyMDM5LCAwLjAwMjA0MywgMC4wMDIwNDQsIDAuMDAyMDQ1LCAwLjAwMjA0NiIsIFwKLSAgICAgICAgICAiMC4wMDE5ODQsIDAuMDAyMDI4LCAwLjAwMjAzNSwgMC4wMDIwMzgsIDAuMDAyMDM5LCAwLjAwMjA0LCAwLjAwMjA0MSIsIFwKLSAgICAgICAgICAiMC4wMDE5NzgsIDAuMDAyMDI2LCAwLjAwMjAzMSwgMC4wMDIwMzQsIDAuMDAyMDM2LCAwLjAwMjAzNywgMC4wMDIwMzciLCBcCi0gICAgICAgICAgIjAuMDAxOTczLCAwLjAwMjAyLCAwLjAwMjAyNywgMC4wMDIwMywgMC4wMDIwMzIsIDAuMDAyMDMzLCAwLjAwMjAzNCIsIFwKLSAgICAgICAgICAiMC4wMDE5NjksIDAuMDAyMDE4LCAwLjAwMjAyNCwgMC4wMDIwMjgsIDAuMDAyMDMsIDAuMDAyMDMxLCAwLjAwMjAzMSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzIwMSwgMC4wMDMyNDEsIDAuMDAzMjQ2LCAwLjAwMzI0OCwgMC4wMDMyNSwgMC4wMDMyNSwgMC4wMDMyNTEiLCBcCi0gICAgICAgICAgIjAuMDAzMTkxLCAwLjAwMzIzNCwgMC4wMDMyMzksIDAuMDAzMjQxLCAwLjAwMzI0MiwgMC4wMDMyNDMsIDAuMDAzMjQ0IiwgXAotICAgICAgICAgICIwLjAwMzE4MSwgMC4wMDMyMjgsIDAuMDAzMjMzLCAwLjAwMzIzNiwgMC4wMDMyMzgsIDAuMDAzMjM5LCAwLjAwMzIzOSIsIFwKLSAgICAgICAgICAiMC4wMDMxNzMsIDAuMDAzMjIzLCAwLjAwMzIzLCAwLjAwMzIzMywgMC4wMDMyMzUsIDAuMDAzMjM2LCAwLjAwMzIzNyIsIFwKLSAgICAgICAgICAiMC4wMDMxNjMsIDAuMDAzMjE4LCAwLjAwMzIyNiwgMC4wMDMyMywgMC4wMDMyMzIsIDAuMDAzMjMzLCAwLjAwMzIzNSIsIFwKLSAgICAgICAgICAiMC4wMDMxNTMsIDAuMDAzMjEzLCAwLjAwMzIyMiwgMC4wMDMyMjcsIDAuMDAzMjMsIDAuMDAzMjMxLCAwLjAwMzIzMiIsIFwKLSAgICAgICAgICAiMC4wMDMxNDUsIDAuMDAzMjA4LCAwLjAwMzIxOSwgMC4wMDMyMjUsIDAuMDAzMjI4LCAwLjAwMzIzLCAwLjAwMzIzMSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjAwNywgMC4wMDIwNTUsIDAuMDAyMDYxLCAwLjAwMjA2NCwgMC4wMDIwNjcsIDAuMDAyMDY5LCAwLjAwMjA2OSIsIFwKLSAgICAgICAgICAiMC4wMDE5OTksIDAuMDAyMDQ2LCAwLjAwMjA1MiwgMC4wMDIwNTUsIDAuMDAyMDU3LCAwLjAwMjA1OCwgMC4wMDIwNTkiLCBcCi0gICAgICAgICAgIjAuMDAxOTg5LCAwLjAwMjAzNywgMC4wMDIwNDIsIDAuMDAyMDQ3LCAwLjAwMjA0OCwgMC4wMDIwNDksIDAuMDAyMDUxIiwgXAotICAgICAgICAgICIwLjAwMTk4MywgMC4wMDIwMzIsIDAuMDAyMDM4LCAwLjAwMjA0MiwgMC4wMDIwNDMsIDAuMDAyMDQ0LCAwLjAwMjA0NSIsIFwKLSAgICAgICAgICAiMC4wMDE5NzgsIDAuMDAyMDI3LCAwLjAwMjAzNCwgMC4wMDIwMzgsIDAuMDAyMDQsIDAuMDAyMDQxLCAwLjAwMjA0MiIsIFwKLSAgICAgICAgICAiMC4wMDE5NzIsIDAuMDAyMDIyLCAwLjAwMjAzLCAwLjAwMjAzNCwgMC4wMDIwMzUsIDAuMDAyMDM3LCAwLjAwMjAzNyIsIFwKLSAgICAgICAgICAiMC4wMDE5NjgsIDAuMDAyMDE5LCAwLjAwMjAyNywgMC4wMDIwMzEsIDAuMDAyMDMzLCAwLjAwMjAzNCwgMC4wMDIwMzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDMwMDUsIDAuMDAzMDQ5LCAwLjAwMzA1MywgMC4wMDMwNTYsIDAuMDAzMDU3LCAwLjAwMzA1OCwgMC4wMDMwNTgiLCBcCi0gICAgICAgICAgIjAuMDAyOTk5LCAwLjAwMzA0NCwgMC4wMDMwNDksIDAuMDAzMDUyLCAwLjAwMzA1MywgMC4wMDMwNTQsIDAuMDAzMDU0IiwgXAotICAgICAgICAgICIwLjAwMjk4NywgMC4wMDMwMzcsIDAuMDAzMDQzLCAwLjAwMzA0NiwgMC4wMDMwNDgsIDAuMDAzMDQ5LCAwLjAwMzA1IiwgXAotICAgICAgICAgICIwLjAwMjk3NSwgMC4wMDMwMzEsIDAuMDAzMDM4LCAwLjAwMzA0MiwgMC4wMDMwNDMsIDAuMDAzMDQ1LCAwLjAwMzA0NSIsIFwKLSAgICAgICAgICAiMC4wMDI5NjQsIDAuMDAzMDI1LCAwLjAwMzAzMywgMC4wMDMwMzgsIDAuMDAzMDQsIDAuMDAzMDQxLCAwLjAwMzA0MiIsIFwKLSAgICAgICAgICAiMC4wMDI5NSwgMC4wMDMwMTcsIDAuMDAzMDI3LCAwLjAwMzAzMywgMC4wMDMwMzYsIDAuMDAzMDM4LCAwLjAwMzAzOSIsIFwKLSAgICAgICAgICAiMC4wMDI5NDIsIDAuMDAzMDExLCAwLjAwMzAyMiwgMC4wMDMwMjksIDAuMDAzMDMyLCAwLjAwMzAzNCwgMC4wMDMwMzYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDIwMDcsIDAuMDAyMDU2LCAwLjAwMjA2MywgMC4wMDIwNjgsIDAuMDAyMDY5LCAwLjAwMjA3MSwgMC4wMDIwNzIiLCBcCi0gICAgICAgICAgIjAuMDAxOTk1LCAwLjAwMjA0NCwgMC4wMDIwNTQsIDAuMDAyMDU2LCAwLjAwMjA1OSwgMC4wMDIwNjEsIDAuMDAyMDYzIiwgXAotICAgICAgICAgICIwLjAwMTk4NSwgMC4wMDIwMzUsIDAuMDAyMDQyLCAwLjAwMjA0OCwgMC4wMDIwNDgsIDAuMDAyMDUsIDAuMDAyMDUxIiwgXAotICAgICAgICAgICIwLjAwMTk3NywgMC4wMDIwMjcsIDAuMDAyMDM2LCAwLjAwMjA0LCAwLjAwMjA0MiwgMC4wMDIwNDQsIDAuMDAyMDQ1IiwgXAotICAgICAgICAgICIwLjAwMTk3MiwgMC4wMDIwMjMsIDAuMDAyMDMyLCAwLjAwMjAzNywgMC4wMDIwMzgsIDAuMDAyMDQsIDAuMDAyMDQxIiwgXAotICAgICAgICAgICIwLjAwMTk2NywgMC4wMDIwMTgsIDAuMDAyMDI3LCAwLjAwMjAzMywgMC4wMDIwMzUsIDAuMDAyMDM3LCAwLjAwMjAzOCIsIFwKLSAgICAgICAgICAiMC4wMDE5NjYsIDAuMDAyMDE0LCAwLjAwMjAyNCwgMC4wMDIwMzEsIDAuMDAyMDMzLCAwLjAwMjAzNSwgMC4wMDIwMzYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI4MDksIDAuMDAyODUsIDAuMDAyODU0LCAwLjAwMjg1NywgMC4wMDI4NTgsIDAuMDAyODU4LCAwLjAwMjg1OSIsIFwKLSAgICAgICAgICAiMC4wMDI4MDQsIDAuMDAyODQ4LCAwLjAwMjg1MywgMC4wMDI4NTUsIDAuMDAyODU2LCAwLjAwMjg1NywgMC4wMDI4NTgiLCBcCi0gICAgICAgICAgIjAuMDAyNzkyLCAwLjAwMjg0MSwgMC4wMDI4NDYsIDAuMDAyODQ5LCAwLjAwMjg1MSwgMC4wMDI4NTEsIDAuMDAyODUyIiwgXAotICAgICAgICAgICIwLjAwMjc4LCAwLjAwMjgzNCwgMC4wMDI4NCwgMC4wMDI4NDQsIDAuMDAyODQ1LCAwLjAwMjg0NiwgMC4wMDI4NDciLCBcCi0gICAgICAgICAgIjAuMDAyNzY0LCAwLjAwMjgyNiwgMC4wMDI4MzQsIDAuMDAyODM4LCAwLjAwMjg0MSwgMC4wMDI4NDIsIDAuMDAyODQzIiwgXAotICAgICAgICAgICIwLjAwMjc1NCwgMC4wMDI4MTgsIDAuMDAyODI4LCAwLjAwMjgzMywgMC4wMDI4MzYsIDAuMDAyODM4LCAwLjAwMjgzOSIsIFwKLSAgICAgICAgICAiMC4wMDI3NDEsIDAuMDAyODExLCAwLjAwMjgyMiwgMC4wMDI4MjgsIDAuMDAyODMyLCAwLjAwMjgzNCwgMC4wMDI4MzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IEFORDRYMiAqCi0gKiAtLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKEFORDRYMikgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjExMTk0ODsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNTcwODY3OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDU3MDg2NzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA1NjkyNTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxNjUsIDAuMDAwMTY1LCAwLjAwMDE2NSwgMC4wMDAxNjUsIDAuMDAwMTY1LCAwLjAwMDE2NSwgMC4wMDAxNjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiwgMC4wMDAxNjYiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYwNTYyMjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MDU2MjI7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjA0MDY7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMTY1LCAwLjAwMDE2NSwgMC4wMDAxNjUsIDAuMDAwMTY1LCAwLjAwMDE2NSwgMC4wMDAxNjUsIDAuMDAwMTY1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMTY2LCAwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY2Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihDKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2MjgzMzQ7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjI4MzM0OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDYyNzE1MjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxNjUsIDAuMDAwMTY1LCAwLjAwMDE2NSwgMC4wMDAxNjUsIDAuMDAwMTY1LCAwLjAwMDE2NSwgMC4wMDAxNjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiwgMC4wMDAxNjYiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEQpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYwMjY1MzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MDIxNTU7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjAyNjUzOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDA5MiwgMC4wMDAwOTEsIDAuMDAwMDkxLCAwLjAwMDA5MSwgMC4wMDAwOTEsIDAuMDAwMDkxLCAwLjAwMDA5MSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDE4OCwgMC4wMDAxODgsIDAuMDAwMTg4LCAwLjAwMDE4OCwgMC4wMDAxODgsIDAuMDAwMTg5LCAwLjAwMDE4OCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjI1NjExMjsKLSAgICBmdW5jdGlvbiA6ICIoKChBIEIpIEMpIEQpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zNDQ5NTQsIDAuNTUzMDU4LCAwLjY5ODE0OSwgMC44Nzc1NTksIDEuMDU2NjgsIDEuMjM1NzMsIDEuNDE0NzUiLCBcCi0gICAgICAgICAgIjAuMzU1OTM0LCAwLjU2NTA0NywgMC43MTAwOTUsIDAuODg5NDg1LCAxLjA2ODYzLCAxLjI0NzY2LCAxLjQyNjY4IiwgXAotICAgICAgICAgICIwLjM2OTA5NywgMC41NzgxODksIDAuNzIzMjQ1LCAwLjkwMjYzMiwgMS4wODE3OSwgMS4yNjA4LCAxLjQzOTgzIiwgXAotICAgICAgICAgICIwLjM4MTY1MywgMC41OTAyNTksIDAuNzM1MjgxLCAwLjkxNDcyOSwgMS4wOTM4LCAxLjI3Mjg2LCAxLjQ1MTkxIiwgXAotICAgICAgICAgICIwLjM5Mzc0MSwgMC42MDI1NDEsIDAuNzQ3Njk1LCAwLjkyNzE3MSwgMS4xMDYyLCAxLjI4NTI3LCAxLjQ2NDM0IiwgXAotICAgICAgICAgICIwLjQxMjE3MywgMC42MjAyMjksIDAuNzY1MzQxLCAwLjk0NDczMSwgMS4xMjM4NSwgMS4zMDI4NiwgMS40ODE5OSIsIFwKLSAgICAgICAgICAiMC40Mjc2NzMsIDAuNjM2NTg1LCAwLjc4MTc5NCwgMC45NjEyNTgsIDEuMTQwMjksIDEuMzE5MzcsIDEuNDk4MzkiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTUwNjU3LCAwLjQ5MDI0MiwgMC43NjkzOTksIDEuMTI1NjgsIDEuNDg3MzEsIDEuODQ2ODUsIDIuMjEyOTgiLCBcCi0gICAgICAgICAgIjAuMTUxMDI1LCAwLjQ4OTQyNSwgMC43Njg5OTksIDEuMTI0NjEsIDEuNDg3MzcsIDEuODQ3MDIsIDIuMjEzMDYiLCBcCi0gICAgICAgICAgIjAuMTUxMjE3LCAwLjQ4OTQxNiwgMC43NjkwNTYsIDEuMTI0NTEsIDEuNDg3NTMsIDEuODQ2OTYsIDIuMjEzMDkiLCBcCi0gICAgICAgICAgIjAuMTUwNDczLCAwLjQ4OTk5MywgMC43NjkyNywgMS4xMjQ0NywgMS40ODUxMSwgMS44NDY2OCwgMi4yMDk1OCIsIFwKLSAgICAgICAgICAiMC4xNTA4NTMsIDAuNDg5MTgxLCAwLjc2ODg5LCAxLjEyNjg1LCAxLjQ4NTIsIDEuODQ2NTEsIDIuMjA5OTUiLCBcCi0gICAgICAgICAgIjAuMTUwMjUxLCAwLjQ4OTY0OCwgMC43Njg5ODgsIDEuMTI2NjcsIDEuNDg1MjIsIDEuODQ2ODQsIDIuMjA4NjEiLCBcCi0gICAgICAgICAgIjAuMTUwNjY1LCAwLjQ4OTEzMSwgMC43Njg1NTYsIDEuMTI2ODQsIDEuNDg1MTMsIDEuODQ5ODgsIDIuMjA5NTciKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTI4MjYsIDAuMzM2ODYxLCAwLjUwMjEzLCAwLjcwODQzOCwgMC45MTQ2ODgsIDEuMTIwOTEsIDEuMzI3MSIsIFwKLSAgICAgICAgICAiMC4xMzk4NTEsIDAuMzQ4NDI0LCAwLjUxMzY2OCwgMC43MjAwMDIsIDAuOTI2MjQ4LCAxLjEzMjQ3LCAxLjMzODcyIiwgXAotICAgICAgICAgICIwLjE1NDUwNCwgMC4zNjMxNTEsIDAuNTI4MzczLCAwLjczNDY5NSwgMC45NDA5NDIsIDEuMTQ3MTUsIDEuMzUzMzkiLCBcCi0gICAgICAgICAgIjAuMTY5MTg3LCAwLjM3Nzg0OCwgMC41NDMwODgsIDAuNzQ5Mzk5LCAwLjk1NTY0NywgMS4xNjE4NywgMS4zNjgxNSIsIFwKLSAgICAgICAgICAiMC4xODQxNzgsIDAuMzkyODQ2LCAwLjU1ODA5MiwgMC43NjQ0MTEsIDAuOTcwNjYsIDEuMTc2ODcsIDEuMzgzMjIiLCBcCi0gICAgICAgICAgIjAuMjA3NzM5LCAwLjQxNjM1MiwgMC41ODE2MTUsIDAuNzg3OTM5LCAwLjk5NDE5NSwgMS4yMDA0OCwgMS40MDY2IiwgXAotICAgICAgICAgICIwLjIyNzkwOSwgMC40MzY0NDcsIDAuNjAxNzIsIDAuODA4MDgzLCAxLjAxNDMxLCAxLjIyMDU0LCAxLjQyNjcyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwNDkxMSwgMC41MDkzNzUsIDAuODM2OTEsIDEuMjQ3OTcsIDEuNjU4OTQsIDIuMDY5NzUsIDIuNDgwNzEiLCBcCi0gICAgICAgICAgIjAuMTA0OTM4LCAwLjUwOTQ0MiwgMC44MzcxNDQsIDEuMjQ3OTQsIDEuNjU4OTQsIDIuMDY5ODYsIDIuNDgwMDYiLCBcCi0gICAgICAgICAgIjAuMTA0OTI1LCAwLjUwOTI3MiwgMC44MzYwMzEsIDEuMjQ3OSwgMS42NTg5LCAyLjA2OTk2LCAyLjQ3NzUyIiwgXAotICAgICAgICAgICIwLjEwNDg4OSwgMC41MDkyMDQsIDAuODM2ODcsIDEuMjQ4LCAxLjY1OTEyLCAyLjA2OTk4LCAyLjQ3OTk0IiwgXAotICAgICAgICAgICIwLjEwNDc0NywgMC41MDkzMzgsIDAuODM3NDg4LCAxLjI0Nzk3LCAxLjY1OTAzLCAyLjA3MDEsIDIuNDc3OSIsIFwKLSAgICAgICAgICAiMC4xMDUwMDEsIDAuNTA4Mzc4LCAwLjgzNzA3OCwgMS4yNDgyMiwgMS42NTkyNCwgMi4wNzA0NCwgMi40ODEzIiwgXAotICAgICAgICAgICIwLjEwNTU2MywgMC41MDg2MDEsIDAuODM3MDYsIDEuMjQ3NzIsIDEuNjU3NzEsIDIuMDY5MTIsIDIuNDc5MDciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzM3OTQyLCAwLjU0Njc2OSwgMC42OTIwMzYsIDAuODcxNTE0LCAxLjA1MDUzLCAxLjIyOTYxLCAxLjQwODYiLCBcCi0gICAgICAgICAgIjAuMzQ4MDU1LCAwLjU1NzA1NiwgMC43MDIzMjksIDAuODgxODEyLCAxLjA2MDgzLCAxLjIzOTkyLCAxLjQxODkxIiwgXAotICAgICAgICAgICIwLjM2MTMwNywgMC41Njk3NjcsIDAuNzE1MDQ0LCAwLjg5MzI2OSwgMS4wNzIzNywgMS4yNTE0LCAxLjQzMDUzIiwgXAotICAgICAgICAgICIwLjM3MzE1NiwgMC41ODE4OTksIDAuNzI3MTUzLCAwLjkwNjYzNywgMS4wODU2NywgMS4yNjQ3MywgMS40NDM4MiIsIFwKLSAgICAgICAgICAiMC4zODQ5NjgsIDAuNTkyNjY2LCAwLjczNzg2NSwgMC45MTcyNSwgMS4wOTYzNSwgMS4yNzUzNiwgMS40NTQ0NCIsIFwKLSAgICAgICAgICAiMC40MDM2MzYsIDAuNjEyMDcxLCAwLjc1NzEyMSwgMC45MzY1ODgsIDEuMTE1NjUsIDEuMjk0NzIsIDEuNDczODEiLCBcCi0gICAgICAgICAgIjAuNDE5NTM5LCAwLjYyODQ4MywgMC43NzM2MTQsIDAuOTUzMTU3LCAxLjEzMjIsIDEuMzExMjgsIDEuNDkwMzUiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTUxOTQ1LCAwLjQ4OTg3OSwgMC43NjkzMjQsIDEuMTI2OSwgMS40ODUyOSwgMS44NDk3NSwgMi4yMDk2NCIsIFwKLSAgICAgICAgICAiMC4xNTIzNDQsIDAuNDg5NzgyLCAwLjc2OTMwOCwgMS4xMjY5OCwgMS40ODUyNiwgMS44NDk4MiwgMi4yMDk3MiIsIFwKLSAgICAgICAgICAiMC4xNTA1OTMsIDAuNDg5MzgzLCAwLjc2OTEsIDEuMTI1NDksIDEuNDg1MjcsIDEuODQ2ODcsIDIuMjEzNzMiLCBcCi0gICAgICAgICAgIjAuMTUwODczLCAwLjQ4OTExMiwgMC43Njg4OTEsIDEuMTI2ODgsIDEuNDg1MTksIDEuODQ2NTMsIDIuMjEwMDUiLCBcCi0gICAgICAgICAgIjAuMTUwNTQ1LCAwLjQ5MDAyNywgMC43NjkxOTcsIDEuMTI2NzQsIDEuNDg1MjksIDEuODQ2NzYsIDIuMjEzMzgiLCBcCi0gICAgICAgICAgIjAuMTUwMzEzLCAwLjQ4OTIxLCAwLjc2ODk5NiwgMS4xMjQ3MiwgMS40ODUwOCwgMS44NDY1NywgMi4yMTAxOCIsIFwKLSAgICAgICAgICAiMC4xNTA5NDcsIDAuNDg5MDExLCAwLjc2ODM5NywgMS4xMjY1OCwgMS40ODUwNywgMS44NDY2OSwgMi4yMTAwNiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMjU4NDYsIDAuMzMzODM2LCAwLjQ5ODk0NiwgMC43MDUxMjEsIDAuOTExMzExLCAxLjExNzQ4LCAxLjMyMzY3IiwgXAotICAgICAgICAgICIwLjEzNzUyNSwgMC4zNDU1OTIsIDAuNTEwNjk5LCAwLjcxNjg3NCwgMC45MjMwNjgsIDEuMTI5MjMsIDEuMzM1NDgiLCBcCi0gICAgICAgICAgIjAuMTUyMTY5LCAwLjM2MDI3LCAwLjUyNTM0MiwgMC43MzE1NjUsIDAuOTM3ODU5LCAxLjE0MzkyLCAxLjM1MDA0IiwgXAotICAgICAgICAgICIwLjE2Njc5NiwgMC4zNzQ4NDgsIDAuNTM5OTQ4LCAwLjc0NjE5MiwgMC45NTIzNjEsIDEuMTU4NTMsIDEuMzY0NjgiLCBcCi0gICAgICAgICAgIjAuMTgxNjY3LCAwLjM4OTgyLCAwLjU1NDkyOCwgMC43NjExODEsIDAuOTY3MzUzLCAxLjE3MzUyLCAxLjM3OTY3IiwgXAotICAgICAgICAgICIwLjIwNTA2MiwgMC40MTMyMTUsIDAuNTc4MzM3LCAwLjc4NDYwOSwgMC45OTA3NzMsIDEuMTk2OTMsIDEuNDAzMSIsIFwKLSAgICAgICAgICAiMC4yMjUwMTYsIDAuNDMzMTg5LCAwLjU5ODMyNCwgMC44MDQ1OTcsIDEuMDEwNzksIDEuMjE2OTQsIDEuNDIzMDgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTA0MjQyLCAwLjUwNzYzNSwgMC44MzY0ODUsIDEuMjQ4MTEsIDEuNjU3MTksIDIuMDY4MjEsIDIuNDgwODMiLCBcCi0gICAgICAgICAgIjAuMTA0MTM1LCAwLjUwODgwNSwgMC44MzY0OTUsIDEuMjQ4MTQsIDEuNjU3MTUsIDIuMDY3OTYsIDIuNDgwNDEiLCBcCi0gICAgICAgICAgIjAuMTA0MTI5LCAwLjUwODI2LCAwLjgzNjc4NCwgMS4yNDgwMiwgMS42NTgwNSwgMi4wNjgzMywgMi40ODE5NSIsIFwKLSAgICAgICAgICAiMC4xMDQyMSwgMC41MDg1MjEsIDAuODM2NzU1LCAxLjI0Nzc1LCAxLjY1NzIsIDIuMDY4MzMsIDIuNDc4NyIsIFwKLSAgICAgICAgICAiMC4xMDQwNiwgMC41MDgyNjksIDAuODM2ODE4LCAxLjI0Nzc1LCAxLjY1NzIzLCAyLjA2Nzk3LCAyLjQ3ODg0IiwgXAotICAgICAgICAgICIwLjEwNDQyNSwgMC41MDc4MzcsIDAuODM2ODY0LCAxLjI0NzYzLCAxLjY1NzI5LCAyLjA3MDU0LCAyLjQ3OTE5IiwgXAotICAgICAgICAgICIwLjEwNDc4NSwgMC41MDc3ODksIDAuODM2ODA5LCAxLjI0NzU4LCAxLjY1OTU1LCAyLjA2ODQ3LCAyLjQ3ODciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzI3OTU4LCAwLjUzNjg2MywgMC42ODE4NTMsIDAuODYxMzI3LCAxLjA0MDQsIDEuMjE5NDcsIDEuMzk4NTciLCBcCi0gICAgICAgICAgIjAuMzM3MzQzLCAwLjU0NTIzMywgMC42OTA2NzQsIDAuODcwMDc3LCAxLjA0OTMsIDEuMjI4MjcsIDEuNDA3MzEiLCBcCi0gICAgICAgICAgIjAuMzQ5MzYzLCAwLjU1NzczNiwgMC43MDMsIDAuODgyNDczLCAxLjA2MTUyLCAxLjI0MDU4LCAxLjQxOTYyIiwgXAotICAgICAgICAgICIwLjM2MTQ2NywgMC41NzA1MzgsIDAuNzE1NTMyLCAwLjg5NDk4NywgMS4wNzQwNiwgMS4yNTMxMywgMS40MzIyMyIsIFwKLSAgICAgICAgICAiMC4zNzM4MTgsIDAuNTgxNjY4LCAwLjcyNjg3NCwgMC45MDYzMjMsIDEuMDg1NDEsIDEuMjY0NDMsIDEuNDQzNjEiLCBcCi0gICAgICAgICAgIjAuMzkzNDUxLCAwLjYwMTYzOCwgMC43NDY3NjQsIDAuOTI2MTg2LCAxLjEwNTMyLCAxLjI4NDM3LCAxLjQ2MzQiLCBcCi0gICAgICAgICAgIjAuNDEwMzA2LCAwLjYxOTM1OSwgMC43NjQ1NywgMC45NDM5NzIsIDEuMTIzMDgsIDEuMzAyMTMsIDEuNDgxMTYiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTUwNCwgMC40ODk0MzQsIDAuNzY4OTY5LCAxLjEyNDYyLCAxLjQ4NTE4LCAxLjg0Njg3LCAyLjIwODQ4IiwgXAotICAgICAgICAgICIwLjE1MDYwNywgMC40OTAyMDQsIDAuNzY5NDcxLCAxLjEyNTYzLCAxLjQ4Nzg0LCAxLjg0Njg1LCAyLjIxMzEyIiwgXAotICAgICAgICAgICIwLjE1MDcwOCwgMC40ODk4MjEsIDAuNzY5MzEsIDEuMTI0NTQsIDEuNDg1MTYsIDEuODQ5MzksIDIuMjA5NzIiLCBcCi0gICAgICAgICAgIjAuMTUwNjU1LCAwLjQ4OTM0NywgMC43Njg5NTEsIDEuMTI0NTMsIDEuNDg0OTksIDEuODQ2NjQsIDIuMjA4MTgiLCBcCi0gICAgICAgICAgIjAuMTUwODYxLCAwLjQ4OTk1NiwgMC43Njg5MzEsIDEuMTI2NzksIDEuNDg1MjksIDEuODQ2NzcsIDIuMjEzODUiLCBcCi0gICAgICAgICAgIjAuMTUwODY5LCAwLjQ4OTQ4NSwgMC43NjkyNCwgMS4xMjU2MywgMS40ODUxNywgMS44NDY3MiwgMi4yMTI5IiwgXAotICAgICAgICAgICIwLjE1MTA2MSwgMC40ODkwMDksIDAuNzY4ODgsIDEuMTI0NDEsIDEuNDg1MDMsIDEuODQ2NzgsIDIuMjEyODciKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTIzMDY4LCAwLjMzMDcyNSwgMC40OTU3NDIsIDAuNzAxOTA4LCAwLjkwODA1NywgMS4xMTQxOCwgMS4zMjAyNyIsIFwKLSAgICAgICAgICAiMC4xMzQ2MTEsIDAuMzQyMzU3LCAwLjUwNzM3NywgMC43MTM1MjQsIDAuOTE5NjczLCAxLjEyNTc5LCAxLjMzMTkxIiwgXAotICAgICAgICAgICIwLjE0OTU1MiwgMC4zNTczMTgsIDAuNTIyMzEsIDAuNzI4NDc5LCAwLjkzNDYyNCwgMS4xNDA3NSwgMS4zNDY4NyIsIFwKLSAgICAgICAgICAiMC4xNjQwOTcsIDAuMzcxODQ1LCAwLjUzNjg4MSwgMC43NDMwNTYsIDAuOTQ5MjAzLCAxLjE1NTM0LCAxLjM2MTQ2IiwgXAotICAgICAgICAgICIwLjE3OTEzMiwgMC4zODY4NTEsIDAuNTUxODM1LCAwLjc1ODA5MSwgMC45NjQxOTEsIDEuMTcwMywgMS4zNzY0MyIsIFwKLSAgICAgICAgICAiMC4yMDIyODQsIDAuNDEwMDk0LCAwLjU3NTEyLCAwLjc4MTM4NywgMC45ODc0ODMsIDEuMTkzNjIsIDEuMzk5NzIiLCBcCi0gICAgICAgICAgIjAuMjIxOTgzLCAwLjQyOTgyMiwgMC41OTQ5MjEsIDAuODAxMDQ3LCAxLjAwNzIxLCAxLjIxMzM2LCAxLjQxOTQ3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwMzU2NiwgMC41MDg2MDgsIDAuODM1NzcsIDEuMjQ2MzUsIDEuNjU5MDgsIDIuMDY5LCAyLjQ4MzExIiwgXAotICAgICAgICAgICIwLjEwMzU0NCwgMC41MDg2NDMsIDAuODM2NTY3LCAxLjI0NjQ4LCAxLjY1NzUsIDIuMDY4NSwgMi40NzgyOSIsIFwKLSAgICAgICAgICAiMC4xMDM2NDcsIDAuNTA4NjE5LCAwLjgzNjc5MywgMS4yNDY1NywgMS42NTg5OCwgMi4wNzA5NSwgMi40ODAxNCIsIFwKLSAgICAgICAgICAiMC4xMDM2MzYsIDAuNTA4NTg2LCAwLjgzNjc4MSwgMS4yNDY1NywgMS42NTkwMiwgMi4wNzA3OCwgMi40ODAzOSIsIFwKLSAgICAgICAgICAiMC4xMDM2NzMsIDAuNTA3Njk1LCAwLjgzNjkyOSwgMS4yNDc0LCAxLjY1OTEzLCAyLjA2Nzk3LCAyLjQ4MDQ3IiwgXAotICAgICAgICAgICIwLjEwNDA4NSwgMC41MDc4LCAwLjgzNjg5NSwgMS4yNDQ3MSwgMS42NTkxNSwgMi4wNzA1OSwgMi40ODA2MSIsIFwKLSAgICAgICAgICAiMC4xMDQ2MzMsIDAuNTA3NjExLCAwLjgzNTcsIDEuMjQ2MzksIDEuNjU3NjcsIDIuMDcwNjMsIDIuNDgyNiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJEIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMTI5NzYsIDAuNTIxMTIxLCAwLjY2NjIzOSwgMC44NDU2OTIsIDEuMDI0ODIsIDEuMjAzODUsIDEuMzgzMDQiLCBcCi0gICAgICAgICAgIjAuMzIxNjA0LCAwLjUzMDQ2LCAwLjY3NTY5NCwgMC44NTUxNzUsIDEuMDM0MjEsIDEuMjEzMjgsIDEuMzkyMzUiLCBcCi0gICAgICAgICAgIjAuMzMyNDkzLCAwLjU0MTI5MiwgMC42ODY1NDQsIDAuODY2MDg5LCAxLjA0NTExLCAxLjIyNDEzLCAxLjQwMzI0IiwgXAotICAgICAgICAgICIwLjM0NDMxMywgMC41NTI5OTUsIDAuNjk4MDE4LCAwLjg3NzUyLCAxLjA1NjU1LCAxLjIzNTYyLCAxLjQxNDcxIiwgXAotICAgICAgICAgICIwLjM1NjIzOCwgMC41NjUzNDYsIDAuNzEwNTcxLCAwLjg5MDA4MSwgMS4wNjkxMiwgMS4yNDgxOSwgMS40MjcyMyIsIFwKLSAgICAgICAgICAiMC4zNzUyMTYsIDAuNTg0NDM2LCAwLjcyOTY1NiwgMC45MDkyMywgMS4wODgyNywgMS4yNjczMSwgMS40NDYzNyIsIFwKLSAgICAgICAgICAiMC4zOTIyMjksIDAuNjAxMjExLCAwLjc0NjQ2NiwgMC45MjU4ODMsIDEuMTA0OTksIDEuMjg0MDUsIDEuNDYzMDgiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTUwODEyLCAwLjQ5MDI1MiwgMC43Njk0NDYsIDEuMTI1MzcsIDEuNDg1MiwgMS44NDcwNiwgMi4yMTQiLCBcCi0gICAgICAgICAgIjAuMTUwNjE0LCAwLjQ4OTIyNiwgMC43Njg5NSwgMS4xMjY4MiwgMS40ODUzNCwgMS44NDk1NSwgMi4yMDk3MiIsIFwKLSAgICAgICAgICAiMC4xNTEzMzgsIDAuNDg5NDY2LCAwLjc2ODkxNSwgMS4xMjQzNiwgMS40ODUyLCAxLjg0NjczLCAyLjIxMzQzIiwgXAotICAgICAgICAgICIwLjE1MDk1OCwgMC40ODkxNTUsIDAuNzY5MDA5LCAxLjEyNjkzLCAxLjQ4NTE2LCAxLjg0NjQ5LCAyLjIwOTk1IiwgXAotICAgICAgICAgICIwLjE1MTI0NSwgMC40ODkwNDksIDAuNzY4NDM3LCAxLjEyNjgsIDEuNDg1MSwgMS44NDk3MiwgMi4yMDk1NSIsIFwKLSAgICAgICAgICAiMC4xNTE2MzIsIDAuNDg4OTE2LCAwLjc2ODUzNSwgMS4xMjY3NiwgMS40ODQ5NiwgMS44NDcsIDIuMjA5NTciLCBcCi0gICAgICAgICAgIjAuMTUwNTI5LCAwLjQ4ODYyNiwgMC43Njg0NTIsIDEuMTI1NCwgMS40ODcwNSwgMS44NDY4OCwgMi4yMTI4MSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMjAxNDYsIDAuMzI3NTM4LCAwLjQ5MjUsIDAuNjk4ODc4LCAwLjkwNTMxMSwgMS4xMTA5OSwgMS4zMTczMSIsIFwKLSAgICAgICAgICAiMC4xMzE4NDksIDAuMzM5Mzk3LCAwLjUwNDM0MywgMC43MTA1NDEsIDAuOTE3MTM5LCAxLjEyMjk3LCAxLjMyOTAxIiwgXAotICAgICAgICAgICIwLjE0NjQ1MywgMC4zNTM5NzcsIDAuNTE4OTQzLCAwLjcyNTE0MywgMC45MzE3MDYsIDEuMTM3NzEsIDEuMzQzNzYiLCBcCi0gICAgICAgICAgIjAuMTYxNDgsIDAuMzY4OTkyLCAwLjUzMzk1OCwgMC43NDAxNzMsIDAuOTQ2NTM4LCAxLjE1MjU5LCAxLjM1ODkxIiwgXAotICAgICAgICAgICIwLjE3NjIsIDAuMzgzNzY2LCAwLjU0ODcyMiwgMC43NTQ5OTIsIDAuOTYxNDMsIDEuMTY3NzgsIDEuMzczNTEiLCBcCi0gICAgICAgICAgIjAuMTk5MzQ5LCAwLjQwNjkxNCwgMC41NzE5MiwgMC43NzgxMjgsIDAuOTg0NjIxLCAxLjE5MDg2LCAxLjM5Njg0IiwgXAotICAgICAgICAgICIwLjIxODkzOCwgMC40MjY1MTYsIDAuNTkxNTU1LCAwLjc5Nzc2NSwgMS4wMDQzNiwgMS4yMTAyOCwgMS40MTY0OCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDM0MzUsIDAuNTA2ODcyLCAwLjgzNjI5NywgMS4yNDY1NywgMS42NTQ5MSwgMi4wNjY4MywgMi40NzQ4MiIsIFwKLSAgICAgICAgICAiMC4xMDM0MTIsIDAuNTA4NDk2LCAwLjgzNTIwNiwgMS4yNDU0MSwgMS42NTQ5MiwgMi4wNjQ2MiwgMi40NzYxNSIsIFwKLSAgICAgICAgICAiMC4xMDMzMTgsIDAuNTA2OTY1LCAwLjgzNjUzMywgMS4yNDkwNywgMS42NTUxMywgMi4wNjg4NywgMi40ODQ1OSIsIFwKLSAgICAgICAgICAiMC4xMDMyODYsIDAuNTA4NTEsIDAuODM1MjE3LCAxLjI0NDg1LCAxLjY1NzU4LCAyLjA2NDcsIDIuNDc5ODgiLCBcCi0gICAgICAgICAgIjAuMTAzMzQzLCAwLjUwNzQ5LCAwLjgzNjI0NCwgMS4yNDQzMiwgMS42NTU0OSwgMi4wNjUzNSwgMi40NzUyOSIsIFwKLSAgICAgICAgICAiMC4xMDM3OTIsIDAuNTA3NDgsIDAuODM2NjUyLCAxLjI0OTA1LCAxLjY1NTgzLCAyLjA2NjI3LCAyLjQ4MzE3IiwgXAotICAgICAgICAgICIwLjEwNDUxNiwgMC41MDg0MzQsIDAuODM2NDM3LCAxLjI0NTI4LCAxLjY1NDk3LCAyLjA2NjYsIDIuNDc5MzQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDIzMTQsIDAuMDAyMzU4LCAwLjAwMjM2NiwgMC4wMDIzNywgMC4wMDIzNzIsIDAuMDAyMzczLCAwLjAwMjM3NCIsIFwKLSAgICAgICAgICAiMC4wMDIzMDksIDAuMDAyMzUyLCAwLjAwMjM1OSwgMC4wMDIzNjQsIDAuMDAyMzY0LCAwLjAwMjM2NiwgMC4wMDIzNjYiLCBcCi0gICAgICAgICAgIjAuMDAyMzAxLCAwLjAwMjM0NSwgMC4wMDIzNTIsIDAuMDAyMzU1LCAwLjAwMjM1NywgMC4wMDIzNTgsIDAuMDAyMzU5IiwgXAotICAgICAgICAgICIwLjAwMjI5MiwgMC4wMDIzMzcsIDAuMDAyMzQ1LCAwLjAwMjM0OCwgMC4wMDIzNTEsIDAuMDAyMzUyLCAwLjAwMjM1MyIsIFwKLSAgICAgICAgICAiMC4wMDIyODksIDAuMDAyMzM1LCAwLjAwMjM0MywgMC4wMDIzNDcsIDAuMDAyMzQ4LCAwLjAwMjM1LCAwLjAwMjM1IiwgXAotICAgICAgICAgICIwLjAwMjI4NCwgMC4wMDIzMywgMC4wMDIzMzgsIDAuMDAyMzQxLCAwLjAwMjM0NCwgMC4wMDIzNDQsIDAuMDAyMzQ2IiwgXAotICAgICAgICAgICIwLjAwMjI3OSwgMC4wMDIzMjYsIDAuMDAyMzM1LCAwLjAwMjMzOSwgMC4wMDIzNDEsIDAuMDAyMzQyLCAwLjAwMjM0MyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzQ3LCAwLjAwMzUxNSwgMC4wMDM1MiwgMC4wMDM1MjMsIDAuMDAzNTI0LCAwLjAwMzUyNSwgMC4wMDM1MjUiLCBcCi0gICAgICAgICAgIjAuMDAzNDYyLCAwLjAwMzUwNywgMC4wMDM1MTMsIDAuMDAzNTE1LCAwLjAwMzUxNywgMC4wMDM1MTgsIDAuMDAzNTE4IiwgXAotICAgICAgICAgICIwLjAwMzQ1NCwgMC4wMDM1MDIsIDAuMDAzNTA4LCAwLjAwMzUxMSwgMC4wMDM1MTMsIDAuMDAzNTE0LCAwLjAwMzUxNCIsIFwKLSAgICAgICAgICAiMC4wMDM0NDUsIDAuMDAzNDk3LCAwLjAwMzUwNCwgMC4wMDM1MDgsIDAuMDAzNTEsIDAuMDAzNTExLCAwLjAwMzUxMiIsIFwKLSAgICAgICAgICAiMC4wMDM0MzgsIDAuMDAzNDkzLCAwLjAwMzUwMSwgMC4wMDM1MDUsIDAuMDAzNTA4LCAwLjAwMzUwOSwgMC4wMDM1MSIsIFwKLSAgICAgICAgICAiMC4wMDM0MjcsIDAuMDAzNDg3LCAwLjAwMzQ5NywgMC4wMDM1MDIsIDAuMDAzNTA0LCAwLjAwMzUwNiwgMC4wMDM1MDciLCBcCi0gICAgICAgICAgIjAuMDAzNDIyLCAwLjAwMzQ4MywgMC4wMDM0OTQsIDAuMDAzNSwgMC4wMDM1MDMsIDAuMDAzNTA0LCAwLjAwMzUwNiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjMxNywgMC4wMDIzNjIsIDAuMDAyMzcsIDAuMDAyMzc2LCAwLjAwMjM3NywgMC4wMDIzNzgsIDAuMDAyMzgiLCBcCi0gICAgICAgICAgIjAuMDAyMzA3LCAwLjAwMjM1NCwgMC4wMDIzNjIsIDAuMDAyMzY2LCAwLjAwMjM2OCwgMC4wMDIzNywgMC4wMDIzNzEiLCBcCi0gICAgICAgICAgIjAuMDAyMjk4LCAwLjAwMjM0NywgMC4wMDIzNTQsIDAuMDAyMzU3LCAwLjAwMjM2LCAwLjAwMjM2MSwgMC4wMDIzNjIiLCBcCi0gICAgICAgICAgIjAuMDAyMjkzLCAwLjAwMjM0MSwgMC4wMDIzNDksIDAuMDAyMzU0LCAwLjAwMjM1NiwgMC4wMDIzNTcsIDAuMDAyMzU4IiwgXAotICAgICAgICAgICIwLjAwMjI4OSwgMC4wMDIzMzUsIDAuMDAyMzQ1LCAwLjAwMjM0OSwgMC4wMDIzNTIsIDAuMDAyMzUzLCAwLjAwMjM1NCIsIFwKLSAgICAgICAgICAiMC4wMDIyODIsIDAuMDAyMzMxLCAwLjAwMjM0LCAwLjAwMjM0NSwgMC4wMDIzNDcsIDAuMDAyMzUsIDAuMDAyMzUiLCBcCi0gICAgICAgICAgIjAuMDAyMjc4LCAwLjAwMjMyOCwgMC4wMDIzMzgsIDAuMDAyMzQyLCAwLjAwMjM0NiwgMC4wMDIzNDcsIDAuMDAyMzQ4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzMjY3LCAwLjAwMzMxNiwgMC4wMDMzMjIsIDAuMDAzMzI1LCAwLjAwMzMyNiwgMC4wMDMzMjcsIDAuMDAzMzI4IiwgXAotICAgICAgICAgICIwLjAwMzI2MiwgMC4wMDMzMTIsIDAuMDAzMzE4LCAwLjAwMzMyMSwgMC4wMDMzMjIsIDAuMDAzMzIzLCAwLjAwMzMyMyIsIFwKLSAgICAgICAgICAiMC4wMDMyNTIsIDAuMDAzMzA2LCAwLjAwMzMxMiwgMC4wMDMzMTYsIDAuMDAzMzE4LCAwLjAwMzMxOSwgMC4wMDMzMTkiLCBcCi0gICAgICAgICAgIjAuMDAzMjQyLCAwLjAwMzMsIDAuMDAzMzA4LCAwLjAwMzMxMiwgMC4wMDMzMTQsIDAuMDAzMzE1LCAwLjAwMzMxNiIsIFwKLSAgICAgICAgICAiMC4wMDMyMzMsIDAuMDAzMjk1LCAwLjAwMzMwMywgMC4wMDMzMDgsIDAuMDAzMzExLCAwLjAwMzMxMiwgMC4wMDMzMTMiLCBcCi0gICAgICAgICAgIjAuMDAzMjIsIDAuMDAzMjg3LCAwLjAwMzI5OCwgMC4wMDMzMDQsIDAuMDAzMzA3LCAwLjAwMzMwOSwgMC4wMDMzMSIsIFwKLSAgICAgICAgICAiMC4wMDMyMSwgMC4wMDMyODIsIDAuMDAzMjk0LCAwLjAwMzMwMSwgMC4wMDMzMDUsIDAuMDAzMzA3LCAwLjAwMzMwOCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjMxNywgMC4wMDIzNjQsIDAuMDAyMzczLCAwLjAwMjM3OCwgMC4wMDIzODEsIDAuMDAyMzgyLCAwLjAwMjM4NCIsIFwKLSAgICAgICAgICAiMC4wMDIzMDUsIDAuMDAyMzUzLCAwLjAwMjM2NCwgMC4wMDIzNjgsIDAuMDAyMzcyLCAwLjAwMjM3NCwgMC4wMDIzNzQiLCBcCi0gICAgICAgICAgIjAuMDAyMjk5LCAwLjAwMjM0OCwgMC4wMDIzNTcsIDAuMDAyMzYyLCAwLjAwMjM2NCwgMC4wMDIzNjYsIDAuMDAyMzY3IiwgXAotICAgICAgICAgICIwLjAwMjI5NCwgMC4wMDIzNDMsIDAuMDAyMzUyLCAwLjAwMjM1NiwgMC4wMDIzNTksIDAuMDAyMzYyLCAwLjAwMjM2MiIsIFwKLSAgICAgICAgICAiMC4wMDIyOSwgMC4wMDIzMzgsIDAuMDAyMzQ4LCAwLjAwMjM1MiwgMC4wMDIzNTYsIDAuMDAyMzU3LCAwLjAwMjM1OSIsIFwKLSAgICAgICAgICAiMC4wMDIyODIsIDAuMDAyMzMxLCAwLjAwMjM0MiwgMC4wMDIzNDcsIDAuMDAyMzUsIDAuMDAyMzUyLCAwLjAwMjM1MyIsIFwKLSAgICAgICAgICAiMC4wMDIyNzgsIDAuMDAyMzI5LCAwLjAwMjMzOCwgMC4wMDIzNDUsIDAuMDAyMzQ4LCAwLjAwMjM1LCAwLjAwMjM1MSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzA3NywgMC4wMDMxMjQsIDAuMDAzMTI5LCAwLjAwMzEzMSwgMC4wMDMxMzMsIDAuMDAzMTM0LCAwLjAwMzEzNCIsIFwKLSAgICAgICAgICAiMC4wMDMwNzUsIDAuMDAzMTIzLCAwLjAwMzEyOCwgMC4wMDMxMzEsIDAuMDAzMTMyLCAwLjAwMzEzMywgMC4wMDMxMzQiLCBcCi0gICAgICAgICAgIjAuMDAzMDY1LCAwLjAwMzExOCwgMC4wMDMxMjQsIDAuMDAzMTI3LCAwLjAwMzEyOCwgMC4wMDMxMjksIDAuMDAzMTMiLCBcCi0gICAgICAgICAgIjAuMDAzMDU0LCAwLjAwMzExMSwgMC4wMDMxMTgsIDAuMDAzMTIyLCAwLjAwMzEyNCwgMC4wMDMxMjYsIDAuMDAzMTI2IiwgXAotICAgICAgICAgICIwLjAwMzA0NCwgMC4wMDMxMDUsIDAuMDAzMTE0LCAwLjAwMzExOCwgMC4wMDMxMjEsIDAuMDAzMTIyLCAwLjAwMzEyMyIsIFwKLSAgICAgICAgICAiMC4wMDMwMzEsIDAuMDAzMDk3LCAwLjAwMzEwOCwgMC4wMDMxMTQsIDAuMDAzMTE2LCAwLjAwMzExOCwgMC4wMDMxMiIsIFwKLSAgICAgICAgICAiMC4wMDMwMiwgMC4wMDMwOTIsIDAuMDAzMTAzLCAwLjAwMzExLCAwLjAwMzExNCwgMC4wMDMxMTYsIDAuMDAzMTE3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyMzE0LCAwLjAwMjM2MywgMC4wMDIzNzMsIDAuMDAyMzc5LCAwLjAwMjM4MiwgMC4wMDIzODUsIDAuMDAyMzg1IiwgXAotICAgICAgICAgICIwLjAwMjMwMywgMC4wMDIzNTQsIDAuMDAyMzY0LCAwLjAwMjM3MSwgMC4wMDIzNzMsIDAuMDAyMzc1LCAwLjAwMjM3NSIsIFwKLSAgICAgICAgICAiMC4wMDIyOTQsIDAuMDAyMzQ1LCAwLjAwMjM1NiwgMC4wMDIzNjEsIDAuMDAyMzY0LCAwLjAwMjM2NiwgMC4wMDIzNjciLCBcCi0gICAgICAgICAgIjAuMDAyMjg3LCAwLjAwMjMzOCwgMC4wMDIzNDksIDAuMDAyMzU0LCAwLjAwMjM1NywgMC4wMDIzNiwgMC4wMDIzNjEiLCBcCi0gICAgICAgICAgIjAuMDAyMjgyLCAwLjAwMjMzNCwgMC4wMDIzNDUsIDAuMDAyMzUxLCAwLjAwMjM1NCwgMC4wMDIzNTYsIDAuMDAyMzU4IiwgXAotICAgICAgICAgICIwLjAwMjI3NywgMC4wMDIzMjksIDAuMDAyMzQxLCAwLjAwMjM0NywgMC4wMDIzNTEsIDAuMDAyMzUyLCAwLjAwMjM1MyIsIFwKLSAgICAgICAgICAiMC4wMDIyNzUsIDAuMDAyMzI2LCAwLjAwMjMzNiwgMC4wMDIzNDQsIDAuMDAyMzQ4LCAwLjAwMjM1LCAwLjAwMjM1MSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjksIDAuMDAyOTQ0LCAwLjAwMjk0OSwgMC4wMDI5NTIsIDAuMDAyOTUzLCAwLjAwMjk1NCwgMC4wMDI5NTQiLCBcCi0gICAgICAgICAgIjAuMDAyODk4LCAwLjAwMjk0NSwgMC4wMDI5NSwgMC4wMDI5NTIsIDAuMDAyOTUzLCAwLjAwMjk1NCwgMC4wMDI5NTUiLCBcCi0gICAgICAgICAgIjAuMDAyODg3LCAwLjAwMjkzOSwgMC4wMDI5NDQsIDAuMDAyOTQ4LCAwLjAwMjk0OSwgMC4wMDI5NSwgMC4wMDI5NTEiLCBcCi0gICAgICAgICAgIjAuMDAyODc3LCAwLjAwMjkzMywgMC4wMDI5NCwgMC4wMDI5NDMsIDAuMDAyOTQ1LCAwLjAwMjk0NiwgMC4wMDI5NDciLCBcCi0gICAgICAgICAgIjAuMDAyODY1LCAwLjAwMjkyNiwgMC4wMDI5MzQsIDAuMDAyOTM4LCAwLjAwMjk0MSwgMC4wMDI5NDIsIDAuMDAyOTQzIiwgXAotICAgICAgICAgICIwLjAwMjg1MiwgMC4wMDI5MTgsIDAuMDAyOTI4LCAwLjAwMjkzMywgMC4wMDI5MzYsIDAuMDAyOTM4LCAwLjAwMjkzOSIsIFwKLSAgICAgICAgICAiMC4wMDI4NDMsIDAuMDAyOTExLCAwLjAwMjkyMywgMC4wMDI5MjksIDAuMDAyOTMyLCAwLjAwMjkzNCwgMC4wMDI5MzYiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IEFORDRYNiAqCi0gKiAtLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKEFORDRYNikgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjM5NzQyNDsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxOTk1NDM7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxOTk1NDM7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxOTg5MDM7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNjEyLCAwLjAwMDYxMiwgMC4wMDA2MTIsIDAuMDAwNjExLCAwLjAwMDYxMSwgMC4wMDA2MTEsIDAuMDAwNjExIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNjEzLCAwLjAwMDYxNCwgMC4wMDA2MTQsIDAuMDAwNjE0LCAwLjAwMDYxNCwgMC4wMDA2MTQsIDAuMDAwNjE0Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE3OTA1ODsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE3OTA1ODsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE3ODUyNjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA2MTIsIDAuMDAwNjEyLCAwLjAwMDYxMSwgMC4wMDA2MTEsIDAuMDAwNjExLCAwLjAwMDYxMSwgMC4wMDA2MTEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA2MTMsIDAuMDAwNjE0LCAwLjAwMDYxNCwgMC4wMDA2MTQsIDAuMDAwNjE0LCAwLjAwMDYxNCwgMC4wMDA2MTQiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEMpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTYwNTM7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNjA1MzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE2MDExMzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA2MTIsIDAuMDAwNjEyLCAwLjAwMDYxMSwgMC4wMDA2MTEsIDAuMDAwNjExLCAwLjAwMDYxMSwgMC4wMDA2MTEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA2MTMsIDAuMDAwNjE0LCAwLjAwMDYxNCwgMC4wMDA2MTQsIDAuMDAwNjE0LCAwLjAwMDYxNCwgMC4wMDA2MTQiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEQpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTQ4NDY7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNDgzNDE7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNDg0NjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyODEsIDAuMDAwMjgxLCAwLjAwMDI4LCAwLjAwMDI4LCAwLjAwMDI4LCAwLjAwMDI4LCAwLjAwMDI4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNjk1LCAwLjAwMDY5NSwgMC4wMDA2OTUsIDAuMDAwNjk2LCAwLjAwMDY5NiwgMC4wMDA2OTYsIDAuMDAwNjk2Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuNzcwNjA5OwotICAgIGZ1bmN0aW9uIDogIigoKEEgQikgQykgRCkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjQ0MDYxLCAwLjM1OTUwNSwgMC40NDg4ODMsIDAuNTEwMTcxLCAwLjYwNzA2MSwgMC42OTE1NjQsIDAuODEyMDc3IiwgXAotICAgICAgICAgICIwLjI1NDcyMSwgMC4zNzAyNDEsIDAuNDU5NTk2LCAwLjUyMDg3NiwgMC42MTc3NjEsIDAuNzAyMjcxLCAwLjgyMjc4NiIsIFwKLSAgICAgICAgICAiMC4yNjcwNjEsIDAuMzgyNzcsIDAuNDcxMzYsIDAuNTMyNTM1LCAwLjYyOTQ5NywgMC43MTM5NTYsIDAuODM0NTI2IiwgXAotICAgICAgICAgICIwLjI3ODc4MywgMC4zOTQyNSwgMC40ODM2MjIsIDAuNTQ0OTI0LCAwLjY0MTc5NiwgMC43MjYzMTMsIDAuODQ2ODE3IiwgXAotICAgICAgICAgICIwLjI5MDIyMiwgMC40MDU1NjUsIDAuNDk0NzU5LCAwLjU1NjAzOSwgMC42NTI5MzQsIDAuNzM3NDU5LCAwLjg1Nzk1OCIsIFwKLSAgICAgICAgICAiMC4zMDc4MywgMC40MjMzNDQsIDAuNTEyNDYsIDAuNTczNjQ0LCAwLjY3MDYyNywgMC43NTUwNzgsIDAuODc1NjY1IiwgXAotICAgICAgICAgICIwLjMyMjkyNCwgMC40MzgzNzUsIDAuNTI3NzE2LCAwLjU4ODk1MSwgMC42ODU4OTYsIDAuNzcwMzUyLCAwLjg5MDkzNCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4NjAxNCwgMC4yNDg3NTMsIDAuNDA5NjM2LCAwLjUyNzEyNSwgMC43MTgxNzIsIDAuODg3NDM2LCAxLjEyODI5IiwgXAotICAgICAgICAgICIwLjA4NjA2MSwgMC4yNDg3MDcsIDAuNDA5NTY2LCAwLjUyNzA1MywgMC43MTgxNDcsIDAuODg3NDEzLCAxLjEyODMiLCBcCi0gICAgICAgICAgIjAuMDg2MjcsIDAuMjQ4NTQ2LCAwLjQxMDEzLCAwLjUyNzQwMSwgMC43MTg0MjEsIDAuODg2MzcsIDEuMTI4MzciLCBcCi0gICAgICAgICAgIjAuMDg2MTIzLCAwLjI0ODYwNCwgMC40MDk2MjYsIDAuNTI3MDg5LCAwLjcxODE4NCwgMC44ODc0NDUsIDEuMTI4MjYiLCBcCi0gICAgICAgICAgIjAuMDg2MDM5LCAwLjI0OTA5LCAwLjQwOTY5LCAwLjUyNjgzNSwgMC43MTgyMTIsIDAuODg3NTA0LCAxLjEyNjcyIiwgXAotICAgICAgICAgICIwLjA4NTkxLCAwLjI0ODY2MSwgMC40MDk0ODksIDAuNTI2OTIyLCAwLjcxODMxMiwgMC44ODYzMDMsIDEuMTI4MTgiLCBcCi0gICAgICAgICAgIjAuMDg1NzU5LCAwLjI0ODExLCAwLjQwOTMzNywgMC41MjY3OTksIDAuNzE4MTI5LCAwLjg4NzAwMywgMS4xMjgxMSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4NDIxOSwgMC4xODc4ODYsIDAuMjg3OTEyLCAwLjM1OTE2MiwgMC40NzMwNjQsIDAuNTcyNjY2LCAwLjcxNDkyMSIsIFwKLSAgICAgICAgICAiMC4wOTU4MDksIDAuMTk5NDY5LCAwLjI5OTQ5NywgMC4zNzA3NDksIDAuNDg0NjUsIDAuNTg0MjUzLCAwLjcyNjUxIiwgXAotICAgICAgICAgICIwLjExMDYwMSwgMC4yMTQyMzQsIDAuMzE0MjY4LCAwLjM4NTUyMywgMC40OTk0MjgsIDAuNTk5MDMyLCAwLjc0MTI4OCIsIFwKLSAgICAgICAgICAiMC4xMjUzNTgsIDAuMjI4OTg2LCAwLjMyOTA1NywgMC40MDAzMTMsIDAuNTE0MjUxLCAwLjYxMzg0MiwgMC43NTYwOTMiLCBcCi0gICAgICAgICAgIjAuMTQwMjU2LCAwLjI0MzkwMywgMC4zNDM5NDQsIDAuNDE1MjEyLCAwLjUyOTEyNCwgMC42Mjg3MzIsIDAuNzcwOTk1IiwgXAotICAgICAgICAgICIwLjE2MzQ5MSwgMC4yNjcwODIsIDAuMzY3MDk3LCAwLjQzODQwNSwgMC41NTIzMSwgMC42NTE5MzIsIDAuNzk0MTgyIiwgXAotICAgICAgICAgICIwLjE4MjczNywgMC4yODY0MjUsIDAuMzg2NDg0LCAwLjQ1Nzc1MiwgMC41NzE2NjUsIDAuNjcxMjg0LCAwLjgxMzU1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDUxMDE1LCAwLjI0Mjg2NSwgMC40MzkwMDgsIDAuNTc5NTYxLCAwLjgwNTEwMSwgMS4wMDI3NCwgMS4yODQ5NyIsIFwKLSAgICAgICAgICAiMC4wNTA5ODcsIDAuMjQyODYyLCAwLjQzOTAwNCwgMC41Nzk2MDEsIDAuODA1MTI1LCAxLjAwMjc3LCAxLjI4NDk1IiwgXAotICAgICAgICAgICIwLjA1MDk1MSwgMC4yNDI4NDQsIDAuNDM5MDI4LCAwLjU3OTYzLCAwLjgwNTEzNywgMS4wMDI4MiwgMS4yODUwMSIsIFwKLSAgICAgICAgICAiMC4wNTA4MjcsIDAuMjQyODM5LCAwLjQzODk5NiwgMC41Nzk1NzcsIDAuODA0OTM3LCAxLjAwMjU2LCAxLjI4NDg2IiwgXAotICAgICAgICAgICIwLjA1MDg4OCwgMC4yNDI4MDYsIDAuNDM5MDgxLCAwLjU3OTY3NywgMC44MDUyNjYsIDEuMDAyOTMsIDEuMjg1MTkiLCBcCi0gICAgICAgICAgIjAuMDUxMzc3LCAwLjI0Mjg0MSwgMC40MzkyODYsIDAuNTc5MDY4LCAwLjgwNTI2NSwgMS4wMDIwNCwgMS4yODUzNCIsIFwKLSAgICAgICAgICAiMC4wNTI3MDEsIDAuMjQyODk0LCAwLjQzOTMxNSwgMC41Nzk2ODQsIDAuODA1MjQzLCAxLjAwMjA3LCAxLjI4NDQ1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjM5NiwgMC4zNTU0MzQsIDAuNDQ0NTU0LCAwLjUwNTgwNiwgMC42MDI2NzcsIDAuNjg3MjA3LCAwLjgwNzczIiwgXAotICAgICAgICAgICIwLjI0OTQ4OCwgMC4zNjQ2MDQsIDAuNDU0MDcxLCAwLjUxNTM1OSwgMC42MTIyNCwgMC42OTY3NjMsIDAuODE3MjczIiwgXAotICAgICAgICAgICIwLjI2MTQ4MiwgMC4zNzcyMjksIDAuNDY2MzExLCAwLjUyNzYxMiwgMC42MjQ0OTIsIDAuNzA5MDA3LCAwLjgyOTUxNCIsIFwKLSAgICAgICAgICAiMC4yNzMzNTgsIDAuMzg4ODY0LCAwLjQ3NzU4MywgMC41Mzg3NzcsIDAuNjM1Njk4LCAwLjcyMDE0MywgMC44NDA3MzIiLCBcCi0gICAgICAgICAgIjAuMjg0ODI4LCAwLjQwMDE4OCwgMC40ODkzOCwgMC41NTA2NjYsIDAuNjQ3NTU4LCAwLjczMjAyOSwgMC44NTI1ODkiLCBcCi0gICAgICAgICAgIjAuMzAyODM5LCAwLjQxODExOCwgMC41MDc2MzgsIDAuNTY4ODUzLCAwLjY2NTcxNywgMC43NTAyNjQsIDAuODcwNzg5IiwgXAotICAgICAgICAgICIwLjMxODYxMiwgMC40MzQyNCwgMC41MjM1NjcsIDAuNTg0ODA4LCAwLjY4MTc0MSwgMC43NjYxOTksIDAuODg2Nzg3Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg2MDcxLCAwLjI0ODgzOCwgMC40MDk2MDIsIDAuNTI3MTA5LCAwLjcxODIwOCwgMC44ODc0MDgsIDEuMTI4MyIsIFwKLSAgICAgICAgICAiMC4wODYwMTIsIDAuMjQ5MzM0LCAwLjQwOTcwOSwgMC41MjczNTEsIDAuNzE3NzMsIDAuODg3NTc2LCAxLjEyODQyIiwgXAotICAgICAgICAgICIwLjA4NjIyMSwgMC4yNDgzNTcsIDAuNDA5NjM1LCAwLjUyNzA5NywgMC43MTgxNzQsIDAuODg3NDUzLCAxLjEyODI3IiwgXAotICAgICAgICAgICIwLjA4NjA5MiwgMC4yNDg0MzgsIDAuNDEwMDg2LCAwLjUyNzMyLCAwLjcxNjk1MSwgMC44ODQzMywgMS4xMjgyOSIsIFwKLSAgICAgICAgICAiMC4wODU4ODksIDAuMjQ4OTkzLCAwLjQwOTYzNywgMC41MjY4MDcsIDAuNzE4MjM0LCAwLjg4NzMwNiwgMS4xMjYwMiIsIFwKLSAgICAgICAgICAiMC4wODYzMjMsIDAuMjQ4NTA0LCAwLjQwOTQ4OCwgMC41MjY5OTUsIDAuNzE4MjM3LCAwLjg4NzMyMiwgMS4xMjgyMSIsIFwKLSAgICAgICAgICAiMC4wODYxMDYsIDAuMjQ4MDksIDAuNDA5MzA3LCAwLjUyNjc5MywgMC43MTgzMTEsIDAuODg2MjE3LCAxLjEyODE1Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDgyODMxLCAwLjE4NTk5OCwgMC4yODU4NjQsIDAuMzU3MDUsIDAuNDcwODc4LCAwLjU3MDQ0NSwgMC43MTI2NTMiLCBcCi0gICAgICAgICAgIjAuMDk0MzcyLCAwLjE5NzYwOSwgMC4yOTc0NzksIDAuMzY4NjY2LCAwLjQ4MjQ5NSwgMC41ODIwNjIsIDAuNzI0MjcxIiwgXAotICAgICAgICAgICIwLjEwOTExMiwgMC4yMTIzMzgsIDAuMzEyMTk1LCAwLjM4MzQwOCwgMC40OTcyMzgsIDAuNTk2ODEsIDAuNzM5MDE5IiwgXAotICAgICAgICAgICIwLjEyNDA2MywgMC4yMjczMzEsIDAuMzI3MjAyLCAwLjM5ODQxNCwgMC41MTIyNTUsIDAuNjExODUyLCAwLjc1NDEwOCIsIFwKLSAgICAgICAgICAiMC4xMzg2MDMsIDAuMjQxODk0LCAwLjM0MTc5LCAwLjQxMjk5NiwgMC41MjY4MzgsIDAuNjI2NDIxLCAwLjc2ODYzNSIsIFwKLSAgICAgICAgICAiMC4xNjE1NzMsIDAuMjY0OTQ3LCAwLjM2NDg0LCAwLjQzNjA4NCwgMC41NDk5MjMsIDAuNjQ5NTQxLCAwLjc5MTc3MiIsIFwKLSAgICAgICAgICAiMC4xODAzNDcsIDAuMjgzNzgzLCAwLjM4MzY5NCwgMC40NTQ5MzUsIDAuNTY4NzksIDAuNjY4MzcxLCAwLjgxMDU3NiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1MDQwOCwgMC4yNDIyNTMsIDAuNDM4NjI5LCAwLjU3OTI3NSwgMC44MDUwMDEsIDEuMDAxNzMsIDEuMjgzNzIiLCBcCi0gICAgICAgICAgIjAuMDUwMzUsIDAuMjQyMjUxLCAwLjQzODY1MiwgMC41NzkzNTUsIDAuODA1MDY5LCAxLjAwMTczLCAxLjI4MzciLCBcCi0gICAgICAgICAgIjAuMDUwNDM3LCAwLjI0MjI1MSwgMC40MzgzMzQsIDAuNTc5Mzc0LCAwLjgwNTEyOCwgMS4wMDE3MywgMS4yODM3NSIsIFwKLSAgICAgICAgICAiMC4wNTAzNTcsIDAuMjQyMjY1LCAwLjQzODc5OSwgMC41Nzg4ODUsIDAuODA1MjE0LCAxLjAwMjUsIDEuMjg0NDciLCBcCi0gICAgICAgICAgIjAuMDUwNTQ5LCAwLjI0MjI1OSwgMC40Mzg3NDEsIDAuNTc5NDI5LCAwLjgwNTIyMSwgMS4wMDE2NywgMS4yODM3IiwgXAotICAgICAgICAgICIwLjA1MTI2MywgMC4yNDIyNzYsIDAuNDM4OTQsIDAuNTc5MzY5LCAwLjgwNTIxNCwgMS4wMDIzOSwgMS4yODUyNiIsIFwKLSAgICAgICAgICAiMC4wNTI3MDIsIDAuMjQyNDk5LCAwLjQzODQxNSwgMC41NzkzMzMsIDAuODA0ODU1LCAxLjAwMTU0LCAxLjI4MzkxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjI5NDg2LCAwLjM0NTAxNSwgMC40MzQxNDYsIDAuNDk1NDMyLCAwLjU5MjMyOCwgMC42NzY4MzMsIDAuNzk3MzUiLCBcCi0gICAgICAgICAgIjAuMjM4NDksIDAuMzU0MjAxLCAwLjQ0Mjk5NCwgMC41MDQyNzgsIDAuNjAxMTU2LCAwLjY4NTYyOCwgMC44MDYxNzkiLCBcCi0gICAgICAgICAgIjAuMjUwMjMxLCAwLjM2NTkzMiwgMC40NTQ5NzMsIDAuNTE2MjUzLCAwLjYxMzE1NiwgMC42OTc2OCwgMC44MTgxODIiLCBcCi0gICAgICAgICAgIjAuMjYyMTYzLCAwLjM3NzI0NSwgMC40NjY2OSwgMC41Mjc5NTYsIDAuNjI0ODgsIDAuNzA5Mzg2LCAwLjgyOTkwNSIsIFwKLSAgICAgICAgICAiMC4yNzM5ODEsIDAuMzg5NTg2LCAwLjQ3ODcwMiwgMC41Mzk5MDEsIDAuNjM2ODY4LCAwLjcyMTMyLCAwLjg0MTkwOSIsIFwKLSAgICAgICAgICAiMC4yOTMyMjksIDAuNDA4NTA1LCAwLjQ5ODAxMSwgMC41NTkyNDQsIDAuNjU2MTEsIDAuNzQwNjUyLCAwLjg2MTE3OCIsIFwKLSAgICAgICAgICAiMC4zMTAzNTksIDAuNDI2MTI5LCAwLjUxNTM5MiwgMC41NzY2MDMsIDAuNjczNTQ2LCAwLjc1ODAxNywgMC44Nzg1ODEiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODU5MDIsIDAuMjQ4MjQ1LCAwLjQwOTY4MywgMC41MjcxNTksIDAuNzE4MjAxLCAwLjg4NzQ3NywgMS4xMjU5NCIsIFwKLSAgICAgICAgICAiMC4wODY3NDgsIDAuMjQ4NTcsIDAuNDEwMDM0LCAwLjUyNzA0OCwgMC43MTg0LCAwLjg4NDM1OCwgMS4xMjgzOCIsIFwKLSAgICAgICAgICAiMC4wODU5ODEsIDAuMjQ4MzcxLCAwLjQwOTczLCAwLjUyNjg5OSwgMC43MTgyMywgMC44ODc1MzIsIDEuMTI4MjkiLCBcCi0gICAgICAgICAgIjAuMDg1ODU1LCAwLjI0OTA5NiwgMC40MDk4MTIsIDAuNTI2OTQ5LCAwLjcxNzY1LCAwLjg4NzU0MSwgMS4xMjgzIiwgXAotICAgICAgICAgICIwLjA4NjQxNywgMC4yNDg5MDIsIDAuNDA5NjYzLCAwLjUyNzA2NCwgMC43MTgyMDMsIDAuODg2MjgyLCAxLjEyNjY4IiwgXAotICAgICAgICAgICIwLjA4NjEzNCwgMC4yNDg1NzUsIDAuNDA5NTI3LCAwLjUyNzAyOCwgMC43MTgyMzcsIDAuODg3MzQyLCAxLjEyODIyIiwgXAotICAgICAgICAgICIwLjA4NjExNywgMC4yNDgyNDcsIDAuNDA5MzEzLCAwLjUyNjc2NywgMC43MTgwNzYsIDAuODg1MzM0LCAxLjEyOTkzIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDgwMTUxLCAwLjE4Mjk0NywgMC4yODI2ODMsIDAuMzUzODAzLCAwLjQ2NzU2OSwgMC41NjcxMTgsIDAuNzA5MzE3IiwgXAotICAgICAgICAgICIwLjA5MTg2LCAwLjE5NDY3MSwgMC4yOTQzNzksIDAuMzY1NTcxLCAwLjQ3OTMzNywgMC41Nzg4NzEsIDAuNzIxMDQ5IiwgXAotICAgICAgICAgICIwLjEwNjc4MSwgMC4yMDk2MTEsIDAuMzA5MzUyLCAwLjM4MDQ4OCwgMC40OTQyNTUsIDAuNTkzNzk2LCAwLjczNTk3MiIsIFwKLSAgICAgICAgICAiMC4xMjE0MzYsIDAuMjI0MzEyLCAwLjMyNDA4NywgMC4zOTUyMjYsIDAuNTA5LCAwLjYwODU0MiwgMC43NTA3MjUiLCBcCi0gICAgICAgICAgIjAuMTM2MDgxLCAwLjIzODk5NiwgMC4zMzg3NywgMC40MDk5MTgsIDAuNTIzNzI3LCAwLjYyMzIzNiwgMC43NjU0MiIsIFwKLSAgICAgICAgICAiMC4xNTg3MzQsIDAuMjYxODEsIDAuMzYxNjAyLCAwLjQzMjc1NSwgMC41NDY1NDIsIDAuNjQ2MDgzLCAwLjc4ODI3MSIsIFwKLSAgICAgICAgICAiMC4xNzcxNjEsIDAuMjgwMzAyLCAwLjM4MDA1OSwgMC40NTEyNDcsIDAuNTY1MDM3LCAwLjY2NDU4NiwgMC44MDY3NyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0OTksIDAuMjQxNzI5LCAwLjQzODQyNywgMC41NzgzMDcsIDAuODA1MzAxLCAxLjAwMjgsIDEuMjg0NzMiLCBcCi0gICAgICAgICAgIjAuMDQ5OTYxLCAwLjI0MTcyMiwgMC40Mzc2NTIsIDAuNTc5MjQ2LCAwLjgwNTE2MiwgMS4wMDEyNCwgMS4yODUxNCIsIFwKLSAgICAgICAgICAiMC4wNDk5MzUsIDAuMjQxNzI5LCAwLjQzODQyMywgMC41NzkyNzcsIDAuODA1MjQsIDEuMDAxMzgsIDEuMjg0OTIiLCBcCi0gICAgICAgICAgIjAuMDQ5OTA2LCAwLjI0MTY5OSwgMC40Mzg0MiwgMC41NzkyNzUsIDAuODA1MjE0LCAxLjAwMTMyLCAxLjI4NTE5IiwgXAotICAgICAgICAgICIwLjA1MDIxOCwgMC4yNDE3MzgsIDAuNDM4NDQ4LCAwLjU3OTIzNSwgMC44MDQ1NCwgMS4wMDE0NywgMS4yODQ2NiIsIFwKLSAgICAgICAgICAiMC4wNTExMDEsIDAuMjQxOTE4LCAwLjQzODUwNCwgMC41NzkyNDksIDAuODA1MTk1LCAxLjAwMTI1LCAxLjI4NTA2IiwgXAotICAgICAgICAgICIwLjA1MjY5NywgMC4yNDIxMjksIDAuNDM4Njg2LCAwLjU3OTIwMSwgMC44MDUyMzcsIDEuMDAxMzUsIDEuMjgzOTYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMTMxMTgsIDAuMzI4NTkzLCAwLjQxNzk1NywgMC40NzkyNTUsIDAuNTc2MTM3LCAwLjY2MDY1NSwgMC43ODExNjgiLCBcCi0gICAgICAgICAgIjAuMjIxMjk3LCAwLjMzNjYzMiwgMC40MjU5NDcsIDAuNDg3MjUyLCAwLjU4NDExMiwgMC42Njg2NjUsIDAuNzg5MTgyIiwgXAotICAgICAgICAgICIwLjIzMjI0NiwgMC4zNDc2MDEsIDAuNDM2OTk1LCAwLjQ5ODI5NSwgMC41OTUxODEsIDAuNjc5NzAxLCAwLjgwMDIxNSIsIFwKLSAgICAgICAgICAiMC4yNDMzOCwgMC4zNTg3MTUsIDAuNDQ3OTEzLCAwLjUwOTI2MSwgMC42MDYxNDYsIDAuNjkwNjc3LCAwLjgxMTE4NSIsIFwKLSAgICAgICAgICAiMC4yNTU2OTcsIDAuMzcxMTU0LCAwLjQ2MDQ3OCwgMC41MjE2OTUsIDAuNjE4NTg1LCAwLjcwMzExLCAwLjgyMzYyMiIsIFwKLSAgICAgICAgICAiMC4yNzM5NTQsIDAuMzg5NzU2LCAwLjQ3OTAwNCwgMC41NDAyMjMsIDAuNjM3MTcxLCAwLjcyMTYzOCwgMC44NDIyMiIsIFwKLSAgICAgICAgICAiMC4yOTEwMjYsIDAuNDA2ODQ4LCAwLjQ5NjA1LCAwLjU1NzMzMywgMC42NTQyMywgMC43Mzg3MzcsIDAuODU5Mjc0Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg1OTU5LCAwLjI0ODUwOCwgMC40MDk1OTgsIDAuNTI3MDgzLCAwLjcxODE3OSwgMC44ODc0MzQsIDEuMTI4MjciLCBcCi0gICAgICAgICAgIjAuMDg2MDM2LCAwLjI0ODk4OSwgMC40MDk2MDIsIDAuNTI3MTM5LCAwLjcxODI2OCwgMC44ODc0MDgsIDEuMTI4MzEiLCBcCi0gICAgICAgICAgIjAuMDg2MDI1LCAwLjI0ODc0NywgMC40MDk1NjksIDAuNTI3MDQzLCAwLjcxODIwNiwgMC44ODczODIsIDEuMTI4MjUiLCBcCi0gICAgICAgICAgIjAuMDg2MDE1LCAwLjI0ODY2OSwgMC40MDk1MzUsIDAuNTI2OTUzLCAwLjcxODI2NywgMC44ODU0MDgsIDEuMTI4MzkiLCBcCi0gICAgICAgICAgIjAuMDg2MTQyLCAwLjI0ODQ4MSwgMC40MDk0MjQsIDAuNTI2NzE5LCAwLjcxODM0NiwgMC44ODc0MzUsIDEuMTI4MzMiLCBcCi0gICAgICAgICAgIjAuMDg1OTUsIDAuMjQ4MTIyLCAwLjQwOTMwMywgMC41MjY3NTgsIDAuNzE4MTUxLCAwLjg4NTY4MiwgMS4xMjc5NyIsIFwKLSAgICAgICAgICAiMC4wODU4MDQsIDAuMjQ3OTQyLCAwLjQwOTE1MiwgMC41MjY4MTEsIDAuNzE3OTU1LCAwLjg4NzI3NSwgMS4xMjgyMyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3Nzk0OSwgMC4xODA0MDYsIDAuMjgwMDUxLCAwLjM1MTE2MiwgMC40NjQ5MDQsIDAuNTY0NDUsIDAuNzA2NTgyIiwgXAotICAgICAgICAgICIwLjA4OTUwMywgMC4xOTIwMzgsIDAuMjkxNjQxLCAwLjM2Mjc3MywgMC40NzY1MzgsIDAuNTc2MDg0LCAwLjcxODI1OSIsIFwKLSAgICAgICAgICAiMC4xMDQzNjUsIDAuMjA2OTU1LCAwLjMwNjYwMSwgMC4zNzc2OTQsIDAuNDkxNjA2LCAwLjU5MTAwOCwgMC43MzMzMzciLCBcCi0gICAgICAgICAgIjAuMTE5MzEyLCAwLjIyMTkxLCAwLjMyMTU4OCwgMC4zOTI2ODQsIDAuNTA2NDc1LCAwLjYwNjAyLCAwLjc0ODU3MSIsIFwKLSAgICAgICAgICAiMC4xMzM3NTgsIDAuMjM2MTQ4LCAwLjMzNTgwNiwgMC40MDY5NDMsIDAuNTIwODcxLCAwLjYyMDI3MiwgMC43NjI4NSIsIFwKLSAgICAgICAgICAiMC4xNTYwNzQsIDAuMjU4OTMsIDAuMzU4NjExLCAwLjQyOTcyNSwgMC41NDM2NjcsIDAuNjQzMDc3LCAwLjc4NTMwMyIsIFwKLSAgICAgICAgICAiMC4xNzQxNDYsIDAuMjc2ODgzLCAwLjM3NjU1MywgMC40NDc3MDMsIDAuNTYxNTE2LCAwLjY2MTA3NiwgMC44MDMzNDUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDk3NDIsIDAuMjQxNDA2LCAwLjQzODM3NywgMC41Nzg5MTYsIDAuODA0MTIxLCAxLjAwMTQ0LCAxLjI4NDg2IiwgXAotICAgICAgICAgICIwLjA0OTc2OCwgMC4yNDE0MjUsIDAuNDM3NjIxLCAwLjU3Nzk2OSwgMC44MDQ2MTEsIDAuOTk5OTg2LCAxLjI4NDkxIiwgXAotICAgICAgICAgICIwLjA0OTc3NywgMC4yNDE0MzIsIDAuNDM4MzY1LCAwLjU3OTQ1LCAwLjgwNDE1OCwgMS4wMDM1OCwgMS4yODE3NSIsIFwKLSAgICAgICAgICAiMC4wNDk5NDgsIDAuMjQxNDI2LCAwLjQzODM3LCAwLjU3OTQ1MSwgMC44MDU2MTIsIDEuMDAwNTcsIDEuMjgxNyIsIFwKLSAgICAgICAgICAiMC4wNTAwODQsIDAuMjQxNTc3LCAwLjQzODI2MywgMC41Nzk0NzMsIDAuODA0MDk0LCAxLjAwMzU4LCAxLjI4NDIiLCBcCi0gICAgICAgICAgIjAuMDUxMTc3LCAwLjI0MTI3NSwgMC40Mzg0MTQsIDAuNTc4NjcxLCAwLjgwNDExNCwgMS4wMDM1OCwgMS4yODE3MyIsIFwKLSAgICAgICAgICAiMC4wNTI5NSwgMC4yNDE5MjYsIDAuNDM3NjQ3LCAwLjU3OTU2OCwgMC44MDI2MzQsIDAuOTk5Njk3LCAxLjI4MzciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjgwNiwgMC4wMDY5ODUsIDAuMDA3MDMyLCAwLjAwNzA0NiwgMC4wMDcwNiwgMC4wMDcwNjYsIDAuMDA3MDciLCBcCi0gICAgICAgICAgIjAuMDA2NzY5LCAwLjAwNjk0NywgMC4wMDY5OTcsIDAuMDA3MDA1LCAwLjAwNzAyMywgMC4wMDcwMywgMC4wMDcwMzYiLCBcCi0gICAgICAgICAgIjAuMDA2NzUsIDAuMDA2OTE3LCAwLjAwNjk2MiwgMC4wMDY5NzgsIDAuMDA2OTkyLCAwLjAwNzAwMiwgMC4wMDcwMDUiLCBcCi0gICAgICAgICAgIjAuMDA2NzE0LCAwLjAwNjg5NSwgMC4wMDY5NDUsIDAuMDA2OTU4LCAwLjAwNjk3MiwgMC4wMDY5OCwgMC4wMDY5ODYiLCBcCi0gICAgICAgICAgIjAuMDA2NywgMC4wMDY4NzYsIDAuMDA2OTI2LCAwLjAwNjk0MywgMC4wMDY5NTMsIDAuMDA2OTYxLCAwLjAwNjk3MSIsIFwKLSAgICAgICAgICAiMC4wMDY2ODMsIDAuMDA2ODYsIDAuMDA2OTE0LCAwLjAwNjkyNCwgMC4wMDY5NDIsIDAuMDA2OTUzLCAwLjAwNjk1NyIsIFwKLSAgICAgICAgICAiMC4wMDY2NzEsIDAuMDA2ODQ5LCAwLjAwNjksIDAuMDA2OTE1LCAwLjAwNjkzMywgMC4wMDY5NDUsIDAuMDA2OTQ1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDk4MzEsIDAuMDEwMDQ0LCAwLjAxMDA3NSwgMC4wMTAwODQsIDAuMDEwMDkzLCAwLjAxMDA5NywgMC4wMTAxMDEiLCBcCi0gICAgICAgICAgIjAuMDA5Nzk5LCAwLjAxMDAxNCwgMC4wMTAwNDYsIDAuMDEwMDU1LCAwLjAxMDA2NCwgMC4wMTAwNjgsIDAuMDEwMDczIiwgXAotICAgICAgICAgICIwLjAwOTc2OCwgMC4wMDk5ODYsIDAuMDEwMDI0LCAwLjAxMDAzNSwgMC4wMTAwNDYsIDAuMDEwMDUxLCAwLjAxMDA1NiIsIFwKLSAgICAgICAgICAiMC4wMDk3NDIsIDAuMDA5OTYxLCAwLjAxMDAwNSwgMC4wMTAwMTksIDAuMDEwMDMyLCAwLjAxMDAzOCwgMC4wMTAwNDMiLCBcCi0gICAgICAgICAgIjAuMDA5NzEsIDAuMDA5OTM4LCAwLjAwOTk4NywgMC4wMTAwMDMsIDAuMDEwMDE4LCAwLjAxMDAyNiwgMC4wMTAwMzMiLCBcCi0gICAgICAgICAgIjAuMDA5NjkyLCAwLjAwOTkxMSwgMC4wMDk5NjcsIDAuMDA5OTg3LCAwLjAxMDAwMywgMC4wMTAwMTMsIDAuMDEwMDIxIiwgXAotICAgICAgICAgICIwLjAwOTY3MywgMC4wMDk4OTIsIDAuMDA5OTUxLCAwLjAwOTk3MywgMC4wMDk5OTMsIDAuMDEwMDAyLCAwLjAxMDAxMiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2ODExLCAwLjAwNjk4NywgMC4wMDcwMzUsIDAuMDA3MDUxLCAwLjAwNzA2NiwgMC4wMDcwNzMsIDAuMDA3MDgiLCBcCi0gICAgICAgICAgIjAuMDA2NzY1LCAwLjAwNjk0MywgMC4wMDY5OTYsIDAuMDA3MDA4LCAwLjAwNzAyMywgMC4wMDcwMywgMC4wMDcwNDEiLCBcCi0gICAgICAgICAgIjAuMDA2NzM2LCAwLjAwNjkxNywgMC4wMDY5NjksIDAuMDA2OTgzLCAwLjAwNjk5NSwgMC4wMDcwMDUsIDAuMDA3MDEyIiwgXAotICAgICAgICAgICIwLjAwNjcyNCwgMC4wMDY4OTcsIDAuMDA2OTQ1LCAwLjAwNjk1OSwgMC4wMDY5ODEsIDAuMDA2OTg5LCAwLjAwNjk5OCIsIFwKLSAgICAgICAgICAiMC4wMDY2OTgsIDAuMDA2ODc2LCAwLjAwNjkzMiwgMC4wMDY5NDYsIDAuMDA2OTYyLCAwLjAwNjk3LCAwLjAwNjk3OCIsIFwKLSAgICAgICAgICAiMC4wMDY2ODIsIDAuMDA2ODYyLCAwLjAwNjkxNCwgMC4wMDY5MjgsIDAuMDA2OTQ1LCAwLjAwNjk1NSwgMC4wMDY5NjMiLCBcCi0gICAgICAgICAgIjAuMDA2NjcsIDAuMDA2ODQ4LCAwLjAwNjkwNCwgMC4wMDY5MiwgMC4wMDY5MzcsIDAuMDA2OTQ1LCAwLjAwNjk1MyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA5MjY1LCAwLjAwOTQ4NywgMC4wMDk1MTgsIDAuMDA5NTI4LCAwLjAwOTUzNywgMC4wMDk1NDIsIDAuMDA5NTQ2IiwgXAotICAgICAgICAgICIwLjAwOTIzOSwgMC4wMDk0NjQsIDAuMDA5NDk3LCAwLjAwOTUwNywgMC4wMDk1MTYsIDAuMDA5NTIxLCAwLjAwOTUyNSIsIFwKLSAgICAgICAgICAiMC4wMDkyLCAwLjAwOTQzMiwgMC4wMDk0NzIsIDAuMDA5NDg0LCAwLjAwOTQ5NCwgMC4wMDk1MDEsIDAuMDA5NTA2IiwgXAotICAgICAgICAgICIwLjAwOTE2NywgMC4wMDk0MDUsIDAuMDA5NDUxLCAwLjAwOTQ2NSwgMC4wMDk0NzgsIDAuMDA5NDg1LCAwLjAwOTQ5MSIsIFwKLSAgICAgICAgICAiMC4wMDkxMzQsIDAuMDA5Mzc2LCAwLjAwOTQyOSwgMC4wMDk0NDYsIDAuMDA5NDYyLCAwLjAwOTQ3MSwgMC4wMDk0NzkiLCBcCi0gICAgICAgICAgIjAuMDA5MDkzLCAwLjAwOTM0MiwgMC4wMDk0MDMsIDAuMDA5NDIzLCAwLjAwOTQ0MywgMC4wMDk0NTQsIDAuMDA5NDYzIiwgXAotICAgICAgICAgICIwLjAwOTA3MiwgMC4wMDkzMTksIDAuMDA5MzgzLCAwLjAwOTQwNiwgMC4wMDk0MjksIDAuMDA5NDQxLCAwLjAwOTQ1MiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2ODA2LCAwLjAwNjk4OCwgMC4wMDcwMzcsIDAuMDA3MDU0LCAwLjAwNzA2OSwgMC4wMDcwNzksIDAuMDA3MDg4IiwgXAotICAgICAgICAgICIwLjAwNjc4MSwgMC4wMDY5NSwgMC4wMDcsIDAuMDA3MDE3LCAwLjAwNzAyOCwgMC4wMDcwNDIsIDAuMDA3MDU1IiwgXAotICAgICAgICAgICIwLjAwNjczNSwgMC4wMDY5MjEsIDAuMDA2OTY5LCAwLjAwNjk4OCwgMC4wMDcwMDIsIDAuMDA3MDEyLCAwLjAwNzAyMiIsIFwKLSAgICAgICAgICAiMC4wMDY3MTQsIDAuMDA2ODkzLCAwLjAwNjk0OSwgMC4wMDY5NjYsIDAuMDA2OTc3LCAwLjAwNjk5MSwgMC4wMDY5OTkiLCBcCi0gICAgICAgICAgIjAuMDA2NywgMC4wMDY4NzgsIDAuMDA2OTMyLCAwLjAwNjk0OCwgMC4wMDY5NjgsIDAuMDA2OTc3LCAwLjAwNjk4NSIsIFwKLSAgICAgICAgICAiMC4wMDY2ODEsIDAuMDA2ODU1LCAwLjAwNjkxMywgMC4wMDY5MjgsIDAuMDA2OTQ5LCAwLjAwNjk1OCwgMC4wMDY5NjgiLCBcCi0gICAgICAgICAgIjAuMDA2NjcxLCAwLjAwNjg0NSwgMC4wMDY5MDEsIDAuMDA2OTIxLCAwLjAwNjkzOSwgMC4wMDY5NSwgMC4wMDY5NTgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwODU5NCwgMC4wMDg4MDksIDAuMDA4ODM5LCAwLjAwODg0NywgMC4wMDg4NTYsIDAuMDA4ODYsIDAuMDA4ODYzIiwgXAotICAgICAgICAgICIwLjAwODU3OCwgMC4wMDg4LCAwLjAwODgzMSwgMC4wMDg4NCwgMC4wMDg4NDgsIDAuMDA4ODUzLCAwLjAwODg1NiIsIFwKLSAgICAgICAgICAiMC4wMDg1NCwgMC4wMDg3NzEsIDAuMDA4ODA4LCAwLjAwODgxOSwgMC4wMDg4MjksIDAuMDA4ODM0LCAwLjAwODgzOSIsIFwKLSAgICAgICAgICAiMC4wMDg1MDEsIDAuMDA4NzM5LCAwLjAwODc4MywgMC4wMDg3OTgsIDAuMDA4ODEsIDAuMDA4ODE3LCAwLjAwODgyMiIsIFwKLSAgICAgICAgICAiMC4wMDg0NjIsIDAuMDA4NzA4LCAwLjAwODc2LCAwLjAwODc3NywgMC4wMDg3OTMsIDAuMDA4ODAxLCAwLjAwODgwOCIsIFwKLSAgICAgICAgICAiMC4wMDg0MjEsIDAuMDA4NjcyLCAwLjAwODczMSwgMC4wMDg3NTIsIDAuMDA4NzcxLCAwLjAwODc4MSwgMC4wMDg3OSIsIFwKLSAgICAgICAgICAiMC4wMDg0LCAwLjAwODY0MywgMC4wMDg3MDksIDAuMDA4NzMyLCAwLjAwODc1NCwgMC4wMDg3NjUsIDAuMDA4Nzc2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDY4MDQsIDAuMDA2OTg3LCAwLjAwNzA0MSwgMC4wMDcwNTYsIDAuMDA3MDc1LCAwLjAwNzA4NSwgMC4wMDcwOTMiLCBcCi0gICAgICAgICAgIjAuMDA2NzU4LCAwLjAwNjkzNywgMC4wMDY5OTIsIDAuMDA3MDExLCAwLjAwNzAyNSwgMC4wMDcwMzksIDAuMDA3MDUxIiwgXAotICAgICAgICAgICIwLjAwNjcxOCwgMC4wMDY5LCAwLjAwNjk1NywgMC4wMDY5NzUsIDAuMDA2OTkyLCAwLjAwNzAwMywgMC4wMDcwMSIsIFwKLSAgICAgICAgICAiMC4wMDY2OTcsIDAuMDA2ODgsIDAuMDA2OTMyLCAwLjAwNjk1MiwgMC4wMDY5NywgMC4wMDY5OCwgMC4wMDY5ODkiLCBcCi0gICAgICAgICAgIjAuMDA2NjgyLCAwLjAwNjg2MiwgMC4wMDY5MTgsIDAuMDA2OTM4LCAwLjAwNjk1NywgMC4wMDY5NjcsIDAuMDA2OTc2IiwgXAotICAgICAgICAgICIwLjAwNjY2OSwgMC4wMDY4NDMsIDAuMDA2OTAyLCAwLjAwNjkxOCwgMC4wMDY5MzgsIDAuMDA2OTUxLCAwLjAwNjk2MSIsIFwKLSAgICAgICAgICAiMC4wMDY2NjgsIDAuMDA2ODMyLCAwLjAwNjg4NiwgMC4wMDY5MDksIDAuMDA2OTMsIDAuMDA2OTQyLCAwLjAwNjk1MiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA3ODg0LCAwLjAwODA5LCAwLjAwODExNywgMC4wMDgxMjUsIDAuMDA4MTMyLCAwLjAwODEzNiwgMC4wMDgxMzkiLCBcCi0gICAgICAgICAgIjAuMDA3ODY2LCAwLjAwODA4MiwgMC4wMDgxMTIsIDAuMDA4MTIsIDAuMDA4MTI4LCAwLjAwODEzMiwgMC4wMDgxMzUiLCBcCi0gICAgICAgICAgIjAuMDA3ODIyLCAwLjAwODA1MSwgMC4wMDgwODcsIDAuMDA4MDk3LCAwLjAwODEwNywgMC4wMDgxMTIsIDAuMDA4MTE2IiwgXAotICAgICAgICAgICIwLjAwNzc3OSwgMC4wMDgwMTUsIDAuMDA4MDU4LCAwLjAwODA3MiwgMC4wMDgwODQsIDAuMDA4MDksIDAuMDA4MDk1IiwgXAotICAgICAgICAgICIwLjAwNzc0LCAwLjAwNzk4MiwgMC4wMDgwMzQsIDAuMDA4MDUxLCAwLjAwODA2NywgMC4wMDgwNzQsIDAuMDA4MDgxIiwgXAotICAgICAgICAgICIwLjAwNzcwNiwgMC4wMDc5NDksIDAuMDA4MDA3LCAwLjAwODAyNiwgMC4wMDgwNDQsIDAuMDA4MDU0LCAwLjAwODA2MiIsIFwKLSAgICAgICAgICAiMC4wMDc2NywgMC4wMDc5MSwgMC4wMDc5OCwgMC4wMDgwMDIsIDAuMDA4MDIzLCAwLjAwODAzNCwgMC4wMDgwNDUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogQU9JMjExWEwgKgotICogLS0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKEFPSTIxMVhMKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMDU2NjUzMTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQTApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYyNjAxOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYyMzU2MjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2MjYwMTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxNjUsIDAuMDAwMTY1LCAwLjAwMDE2NSwgMC4wMDAxNjUsIDAuMDAwMTY1LCAwLjAwMDE2NSwgMC4wMDAxNjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxNywgMC4wMDAxNjcsIDAuMDAwMTY2LCAwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQTEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYyNDA3NzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MTk2Nzg7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjI0MDc3OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDA3NCwgMC4wMDAwNzQsIDAuMDAwMDc0LCAwLjAwMDA3NCwgMC4wMDAwNzQsIDAuMDAwMDc0LCAwLjAwMDA3NCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDE4OCwgMC4wMDAxODgsIDAuMDAwMTg4LCAwLjAwMDE4OCwgMC4wMDAxODgsIDAuMDAwMTg4LCAwLjAwMDE4OCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQjApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDU5OTU5NzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA1OTYyMzg7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNTk5NTk3OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDE0OCwgMC4wMDAxNTUsIDAuMDAwMTU4LCAwLjAwMDE1OSwgMC4wMDAxNTksIDAuMDAwMTYsIDAuMDAwMTYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxNywgMC4wMDAxNywgMC4wMDAxNywgMC4wMDAxNywgMC4wMDAxNywgMC4wMDAxNywgMC4wMDAxNyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQzApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYxNDE5OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYxNDE5OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDYxNDEwNjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAwNTEsIDAuMDAwMDUxLCAwLjAwMDA1MSwgMC4wMDAwNTEsIDAuMDAwMDUxLCAwLjAwMDA1MSwgMC4wMDAwNTEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyMjksIDAuMDAwMjI5LCAwLjAwMDIyOSwgMC4wMDAyMjksIDAuMDAwMjI5LCAwLjAwMDIyOSwgMC4wMDAyMjkiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4wMjkxMDI3OwotICAgIGZ1bmN0aW9uIDogIighKCgoQTAgQTEpK0IwKStDMCkpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuNDcyNzQzLCAwLjU1MTc3LCAxLjI2MzM1LCAyLjQ0OTYyLCAzLjYzMzgsIDYuMzk3ODgsIDcuOTc3NDkiLCBcCi0gICAgICAgICAgIjAuNDg0NDUxLCAwLjU2MzQ3OSwgMS4yNzUzOCwgMi40NjEyNCwgMy42NDU2MywgNi40MDk3NSwgNy45ODkzMiIsIFwKLSAgICAgICAgICAiMC40OTg1NjMsIDAuNTc3NzM3LCAxLjI4OTY3LCAyLjQ3NTE5LCAzLjY1OTY2LCA2LjQyMzg2LCA4LjAwMzQxIiwgXAotICAgICAgICAgICIwLjUxMTY3LCAwLjU5MDc4NiwgMS4zMDI0OSwgMi40ODc2MSwgMy42NzI3NywgNi40MzY5NCwgOC4wMTY1MiIsIFwKLSAgICAgICAgICAiMC41MjM5NTgsIDAuNjAyOTg3LCAxLjMxNTExLCAyLjUwMDUzLCAzLjY4NTA2LCA2LjQ0OTMyLCA4LjAyODgyIiwgXAotICAgICAgICAgICIwLjU0Mjg5OSwgMC42MjIwODcsIDEuMzMzNjUsIDIuNTE5ODYsIDMuNzA0MTEsIDYuNDY4MzEsIDguMDQ3ODEiLCBcCi0gICAgICAgICAgIjAuNTU4NTY2LCAwLjYzNzYzMSwgMS4zNDk1NSwgMi41MzUyOSwgMy43MTk3NSwgNi40ODQwOSwgOC4wNjM1NSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC44NDM4NSwgMC45OTU4NzYsIDIuMzYzODgsIDQuNjQwNDUsIDYuOTIyMzMsIDEyLjIyNzEsIDE1LjI1OTQiLCBcCi0gICAgICAgICAgIjAuODQzODU2LCAwLjk5NTg4LCAyLjM2MzQ3LCA0LjY0MjI0LCA2LjkyMjM2LCAxMi4yMjcsIDE1LjI1OTQiLCBcCi0gICAgICAgICAgIjAuODQzOTk3LCAwLjk5NjAzLCAyLjM2MzEsIDQuNjQxODYsIDYuOTIyMTcsIDEyLjIyNjcsIDE1LjI1OTQiLCBcCi0gICAgICAgICAgIjAuODQzODQ4LCAwLjk5NjYyLCAyLjM2MzI3LCA0LjY0NDYxLCA2LjkyMDUyLCAxMi4yMjcyLCAxNS4yNTk0IiwgXAotICAgICAgICAgICIwLjg0Mzg2MSwgMC45OTU4NzcsIDIuMzYzMSwgNC42NDIwOCwgNi45MjE5NiwgMTIuMjI3MywgMTUuMjU5NCIsIFwKLSAgICAgICAgICAiMC44NDM5MDIsIDAuOTk2MDE1LCAyLjM2NDEyLCA0LjY0MTU1LCA2LjkyMjA2LCAxMi4yMjY2LCAxNS4yNTk0IiwgXAotICAgICAgICAgICIwLjg0Mzg3MiwgMC45OTU4NjcsIDIuMzYyOTUsIDQuNjQyMjksIDYuOTIxODksIDEyLjIyNjksIDE1LjI1OTMiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzY0MTksIDAuNDIzNjc1LCAwLjk1Njc3NCwgMS44NDI5OSwgMi43MjgzLCA0Ljc5MTYzLCA1Ljk3MDE3IiwgXAotICAgICAgICAgICIwLjM3NTY4OCwgMC40MzUxOCwgMC45NjgyOTUsIDEuODU0MjEsIDIuNzM5NzYsIDQuODAyOTIsIDUuOTgxODciLCBcCi0gICAgICAgICAgIjAuMzg5NjAyLCAwLjQ0OTA0NCwgMC45ODIxNzYsIDEuODY4NDQsIDIuNzUzNywgNC44MTY4NiwgNS45OTU3NyIsIFwKLSAgICAgICAgICAiMC40MDM0MTYsIDAuNDYyOTQ0LCAwLjk5NjA5OCwgMS44ODE2NiwgMi43NjY4NCwgNC44MzA1NCwgNi4wMDk2IiwgXAotICAgICAgICAgICIwLjQxNzE2MywgMC40NzY3NDQsIDEuMDA5ODUsIDEuODk2MTMsIDIuNzgxNDEsIDQuODQ0NTUsIDYuMDIzNDciLCBcCi0gICAgICAgICAgIjAuNDM5MTI1LCAwLjQ5ODY1MSwgMS4wMzE3OCwgMS45MTc0NCwgMi44MDMzMywgNC44NjY1OCwgNi4wNDU1MyIsIFwKLSAgICAgICAgICAiMC40NTc0NjQsIDAuNTE3ODY2LCAxLjA1MTE4LCAxLjkzNjkzLCAyLjgyMjk5LCA0Ljg4NjE0LCA2LjA2NDgyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjY0NTYsIDAuNzU4MDY1LCAxLjc3MDM3LCAzLjQ1NjI4LCA1LjEzODcsIDkuMDY2ODYsIDExLjMwNTkiLCBcCi0gICAgICAgICAgIjAuNjQ1OTQyLCAwLjc1ODA3NiwgMS43NzAwNSwgMy40NTU5MiwgNS4xMzk5NSwgOS4wNjY2LCAxMS4zMDU4IiwgXAotICAgICAgICAgICIwLjY0NTI5OSwgMC43NTg1NjcsIDEuNzcwNDksIDMuNDU1MzUsIDUuMTM5MTMsIDkuMDY2OTYsIDExLjMwNiIsIFwKLSAgICAgICAgICAiMC42NDUzNTQsIDAuNzU3NzI3LCAxLjc3MDE2LCAzLjQ1NDg4LCA1LjEzOTEsIDkuMDY1ODMsIDExLjMwNiIsIFwKLSAgICAgICAgICAiMC42NDU3MzcsIDAuNzU3ODQzLCAxLjc3MDQ2LCAzLjQ1NTM0LCA1LjEzOTA5LCA5LjA2NzAyLCAxMS4zMDYiLCBcCi0gICAgICAgICAgIjAuNjQ1OTQ1LCAwLjc1ODU1MiwgMS43Njk5LCAzLjQ1NTUxLCA1LjE0MTE2LCA5LjA2NjczLCAxMS4zMDYiLCBcCi0gICAgICAgICAgIjAuNjQ1NjM2LCAwLjc1ODA5NCwgMS43Njk4OCwgMy40NTU1MywgNS4xMzkzLCA5LjA2Njc3LCAxMS4zMDYxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkExIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC40NjE5ODEsIDAuNTQwMzcsIDEuMjQ4MSwgMi40MjcyNSwgMy42MDUzOCwgNi4zNTQ4MywgNy45MjYiLCBcCi0gICAgICAgICAgIjAuNDczNzgsIDAuNTUyNzA2LCAxLjI2MDAxLCAyLjQzOTczLCAzLjYxNzc0LCA2LjM2Njk3LCA3LjkzODEyIiwgXAotICAgICAgICAgICIwLjQ4ODAwOSwgMC41NjY1NzMsIDEuMjc0NzIsIDIuNDUzODYsIDMuNjMxODIsIDYuMzgxMjUsIDcuOTUyMzgiLCBcCi0gICAgICAgICAgIjAuNTAxMTYsIDAuNTc5NjM0LCAxLjI4NzE0LCAyLjQ2NjI2LCAzLjY0NDk3LCA2LjM5NDM4LCA3Ljk2NTUzIiwgXAotICAgICAgICAgICIwLjUxMzI2NywgMC41OTIyMjQsIDEuMzAwMTUsIDIuNDc5MTksIDMuNjU3MjYsIDYuNDA2NzUsIDcuOTc3ODYiLCBcCi0gICAgICAgICAgIjAuNTMxOTYzLCAwLjYxMDg5OSwgMS4zMTg1NywgMi40OTg0NywgMy42NzYyOSwgNi40MjU3OSwgNy45OTY4NSIsIFwKLSAgICAgICAgICAiMC41NDc4MDYsIDAuNjI2NTU1LCAxLjMzNDgyLCAyLjUxMzgxLCAzLjY5MjE1LCA2LjQ0MTYxLCA4LjAxMjY4Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjgzMzE1NSwgMC45ODI3NjIsIDIuMzQ3NTksIDQuNjIyOCwgNi44Nzg4NSwgMTIuMTUwNiwgMTUuMTY2NSIsIFwKLSAgICAgICAgICAiMC44MzIzNjksIDAuOTg0NzU5LCAyLjM0NDMyLCA0LjYwOTc4LCA2Ljg3OTA5LCAxMi4xNTA2LCAxNS4xNjYzIiwgXAotICAgICAgICAgICIwLjgzMTYwNywgMC45ODM3ODUsIDIuMzQ4NTEsIDQuNjIzMzksIDYuODc4OTMsIDEyLjE1LCAxNS4xNjY0IiwgXAotICAgICAgICAgICIwLjgzMjg5NCwgMC45ODI4NDMsIDIuMzQ4MzUsIDQuNjIxNzIsIDYuODc1MzgsIDEyLjE1MDcsIDE1LjE2NjUiLCBcCi0gICAgICAgICAgIjAuODMyMzg3LCAwLjk4NDc5MSwgMi4zNDg0LCA0LjYyMzExLCA2Ljg3ODYsIDEyLjE1MDcsIDE1LjE2NjUiLCBcCi0gICAgICAgICAgIjAuODMyNTg3LCAwLjk4Mzk5NSwgMi4zNDM5NCwgNC42MjM3MywgNi44Nzg2NSwgMTIuMTUwNywgMTUuMTY2NSIsIFwKLSAgICAgICAgICAiMC44MzIzMSwgMC45ODIyMjIsIDIuMzQyMDEsIDQuNjEzOSwgNi44Nzg3MSwgMTIuMTUwMSwgMTUuMTY2NCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zNTkzNjQsIDAuNDE4Nzc3LCAwLjk1MTcyMSwgMS44Mzc3OSwgMi43MjM0NSwgNC43ODY0LCA1Ljk2NTQxIiwgXAotICAgICAgICAgICIwLjM2OTU2MywgMC40MjkwNDQsIDAuOTYyMTY2LCAxLjg0ODE2LCAyLjczMjkzLCA0Ljc5Njc1LCA1Ljk3NTcyIiwgXAotICAgICAgICAgICIwLjM4MzAyNCwgMC40NDI1ODgsIDAuOTc1NTI5LCAxLjg2MTI1LCAyLjc0NzA3LCA0LjgxMDMyLCA1Ljk4OTI3IiwgXAotICAgICAgICAgICIwLjM5NjYwMiwgMC40NTYwNTMsIDAuOTg5MDgsIDEuODc0ODQsIDIuNzYwNjYsIDQuODIzNzksIDYuMDAyNzkiLCBcCi0gICAgICAgICAgIjAuNDA5NzA1LCAwLjQ2OTIzMSwgMS4wMDI4MywgMS44ODg0NywgMi43NzQyOSwgNC44Mzc1MiwgNi4wMTY0NSIsIFwKLSAgICAgICAgICAiMC40MzEyODMsIDAuNDkwNzg5LCAxLjAyMzg1LCAxLjkwOTYsIDIuNzk1NDMsIDQuODU4NywgNi4wMzc1NyIsIFwKLSAgICAgICAgICAiMC40NTAyMjgsIDAuNTA5Njk3LCAxLjA0Mjg1LCAxLjkyODU4LCAyLjgxNDc4LCA0Ljg3NzY5LCA2LjA1NjQyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjY0NTI1MiwgMC43NTgwNjgsIDEuNzY5OTQsIDMuNDU1MywgNS4xMzk0MiwgOS4wNjY2NiwgMTEuMzA1NyIsIFwKLSAgICAgICAgICAiMC42NDU5OTksIDAuNzU4MTAxLCAxLjc2OTcyLCAzLjQ1NiwgNS4xMzkxMiwgOS4wNjY2NywgMTEuMzA1MyIsIFwKLSAgICAgICAgICAiMC42NDU0MTIsIDAuNzU4MDA5LCAxLjc2OTk3LCAzLjQ1NDk4LCA1LjE0MTAzLCA5LjA2NjU2LCAxMS4zMDU3IiwgXAotICAgICAgICAgICIwLjY0NTQ5NywgMC43NTgwOTQsIDEuNzY5OTgsIDMuNDU0ODgsIDUuMTM5MDEsIDkuMDY2OCwgMTEuMzA1IiwgXAotICAgICAgICAgICIwLjY0NTQzMSwgMC43NTc5NDUsIDEuNzcwMzksIDMuNDU1NjEsIDUuMTQwOSwgOS4wNjY3OCwgMTEuMzA2IiwgXAotICAgICAgICAgICIwLjY0NTkxNywgMC43NTgyOTIsIDEuNzY5OSwgMy40NTQ4NywgNS4xMzg0NCwgOS4wNjY2MSwgMTEuMzA2IiwgXAotICAgICAgICAgICIwLjY0NTUwNCwgMC43NTg1MTQsIDEuNzY5ODMsIDMuNDU0NzksIDUuMTQwMjgsIDkuMDY1NzEsIDExLjMwNTgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjAiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjQ1Nzc1OSwgMC41MzY3OTUsIDEuMjQ4NTMsIDIuNDM0NDUsIDMuNjE4ODUsIDYuMzgzMDQsIDcuOTYyNTciLCBcCi0gICAgICAgICAgIjAuNDY4Mzg0LCAwLjU0NzU0NiwgMS4yNTkxNywgMi40NDQ4MywgMy42Mjk2NywgNi4zOTM4MywgNy45NzMyOCIsIFwKLSAgICAgICAgICAiMC40ODEwMzksIDAuNTYwMDQ2LCAxLjI3MTgsIDIuNDU3ODUsIDMuNjQyMjcsIDYuNDA2NDUsIDcuOTg1ODkiLCBcCi0gICAgICAgICAgIjAuNDkyOTM4LCAwLjU3MjA5MywgMS4yODQwNSwgMi40Njk1OSwgMy42NTQyLCA2LjQxODQ2LCA3Ljk5OCIsIFwKLSAgICAgICAgICAiMC41MDQ5NjMsIDAuNTg0MDg2LCAxLjI5NTkyLCAyLjQ4MTcxLCAzLjY2NjMxLCA2LjQzMDUsIDguMDEwMDUiLCBcCi0gICAgICAgICAgIjAuNTIzODQyLCAwLjYwMzAyNywgMS4zMTQ2OCwgMi41MDA1LCAzLjY4NTE1LCA2LjQ0OTM5LCA4LjAyOSIsIFwKLSAgICAgICAgICAiMC41NDAyOTQsIDAuNjE5NDcxLCAxLjMzMTEyLCAyLjUxNzM4LCAzLjcwMTkyLCA2LjQ2NjE2LCA4LjA0NTczIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjg0Mzg2LCAwLjk5NTg4MiwgMi4zNjI5MiwgNC42NDMwMSwgNi45MjAzNywgMTIuMjI2OSwgMTUuMjU4OSIsIFwKLSAgICAgICAgICAiMC44NDQwMTEsIDAuOTk2NTcyLCAyLjM2MzQxLCA0LjY0MjM4LCA2LjkyMjM4LCAxMi4yMjc0LCAxNS4yNTk0IiwgXAotICAgICAgICAgICIwLjg0NDY3NSwgMC45OTY2MiwgMi4zNjI5MiwgNC42NDI2NywgNi45MjA3NywgMTIuMjI2OSwgMTUuMjU5MiIsIFwKLSAgICAgICAgICAiMC44NDM5OTksIDAuOTk1NzExLCAyLjM2MzA2LCA0LjY0MjM3LCA2LjkyMTkyLCAxMi4yMjczLCAxNS4yNTk0IiwgXAotICAgICAgICAgICIwLjg0Mzg2LCAwLjk5NTY5NCwgMi4zNjI5OSwgNC42NDE4OSwgNi45MjIwMiwgMTIuMjI2NywgMTUuMjU5NCIsIFwKLSAgICAgICAgICAiMC44NDQ2MTksIDAuOTk1NzcxLCAyLjM2MywgNC42NDI0LCA2LjkyMDk5LCAxMi4yMjcxLCAxNS4yNTk0IiwgXAotICAgICAgICAgICIwLjg0NDYzLCAwLjk5NjgyNSwgMi4zNjI5NiwgNC42NDE4NSwgNi45MjAzOCwgMTIuMjI3LCAxNS4yNTk0Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE3MjcyMSwgMC4yMDI1MDgsIDAuNDcwMDc1LCAwLjkxNTkwOSwgMS4zNjE3OSwgMi40MDE3NCwgMi45OTQ4NyIsIFwKLSAgICAgICAgICAiMC4xODQ3MTIsIDAuMjE0NTA5LCAwLjQ4MjA2NSwgMC45Mjc4NjMsIDEuMzczMywgMi40MTI5MSwgMy4wMDcwNyIsIFwKLSAgICAgICAgICAiMC4yMDAwMDYsIDAuMjI5NzUyLCAwLjQ5NzI0NSwgMC45NDMyMTksIDEuMzg4OTMsIDIuNDI4OTYsIDMuMDIyNDUiLCBcCi0gICAgICAgICAgIjAuMjE1Mzg2LCAwLjI0NTAxOCwgMC41MTIzMTEsIDAuOTU4MjU0LCAxLjQwMzc1LCAyLjQ0MzUsIDMuMDM3MjkiLCBcCi0gICAgICAgICAgIjAuMjI5NTgyLCAwLjI1OTU1OSwgMC41MjY3MTksIDAuOTY2NjY5LCAxLjQxMjU0LCAyLjQ1MjM0LCAzLjA0NTUyIiwgXAotICAgICAgICAgICIwLjI1NDY2MiwgMC4yODQzNjMsIDAuNTUwNzE3LCAwLjk5NjMyOCwgMS40MzM4NCwgMi40NzMzOCwgMy4wNjcwMyIsIFwKLSAgICAgICAgICAiMC4yNzYxMjIsIDAuMzA1ODM1LCAwLjU3MTQ5OCwgMS4wMTcxOSwgMS40NjA3NiwgMi40OTI1NywgMy4wODY0MyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMzEwNDUsIDAuMzg5NzM2LCAwLjkxNzg1NywgMS43OTg2NCwgMi42Nzg2MSwgNC43MzE1OCwgNS45MDc4MiIsIFwKLSAgICAgICAgICAiMC4zMzEwNTQsIDAuMzg5NzM5LCAwLjkxNzk3MywgMS43OTg1OCwgMi42Nzg4NSwgNC43MzI5OCwgNS45MDU4IiwgXAotICAgICAgICAgICIwLjMzMTA1OSwgMC4zODk3MjYsIDAuOTE3OTk5LCAxLjc5ODU5LCAyLjY3ODA5LCA0LjczMTQ3LCA1LjkwNDk3IiwgXAotICAgICAgICAgICIwLjMzMTA1MSwgMC4zODk3MjYsIDAuOTE4MDExLCAxLjc5ODQ2LCAyLjY3ODYzLCA0LjczMjI4LCA1LjkwNTkyIiwgXAotICAgICAgICAgICIwLjMzMTQwMSwgMC4zODk2ODcsIDAuOTE3OTc3LCAxLjc5ODU5LCAyLjY3ODA4LCA0LjczMTY5LCA1LjkwNTQ3IiwgXAotICAgICAgICAgICIwLjMzNDM2MiwgMC4zOTEzOCwgMC45MTc4NCwgMS43OTg2MiwgMi42Nzg4NywgNC43MzE3OSwgNS45MDc3OCIsIFwKLSAgICAgICAgICAiMC4zMzg4NDQsIDAuMzk0ODkyLCAwLjkxNzk3NiwgMS43OTg1NSwgMi42Nzg3NCwgNC43MzI0MSwgNS45MDU2OSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuNDQwOTMxLCAwLjUyMDA2NiwgMS4yMzE3NywgMi40MTc3NCwgMy42MDIsIDYuMzY2MjIsIDcuOTQ1NjciLCBcCi0gICAgICAgICAgIjAuNDUwNTI4LCAwLjUyOTY0OCwgMS4yNDE1NCwgMi40Mjc1NiwgMy42MTE3NCwgNi4zNzU3OSwgNy45NTU0MSIsIFwKLSAgICAgICAgICAiMC40NjI2MDcsIDAuNTQxODM3LCAxLjI1MzY5LCAyLjQzOTM5LCAzLjYyNCwgNi4zODgyMywgNy45Njc2NyIsIFwKLSAgICAgICAgICAiMC40NzQ3MTgsIDAuNTUzODM5LCAxLjI2NjA3LCAyLjQ1MTQ0LCAzLjYzNjEyLCA2LjQwMDMzLCA3Ljk3OTk0IiwgXAotICAgICAgICAgICIwLjQ4Njg4MywgMC41NjYwODcsIDEuMjc4MTcsIDIuNDYzNzcsIDMuNjQ4NCwgNi40MTI2NSwgNy45OTIxNSIsIFwKLSAgICAgICAgICAiMC41MDYxNjcsIDAuNTg1NDA0LCAxLjI5NzYsIDIuNDgzNjIsIDMuNjY3ODQsIDYuNDMyMTIsIDguMDExNjkiLCBcCi0gICAgICAgICAgIjAuNTIyMzA0LCAwLjYwMjQyNSwgMS4zMTQ1MiwgMi41MDA0NCwgMy42ODUxLCA2LjQ0OTIsIDguMDI4NzMiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuODQ0NjY3LCAwLjk5NjY2MiwgMi4zNjMxNywgNC42NDIzNywgNi45MjIyNSwgMTIuMjI3LCAxNS4yNTkzIiwgXAotICAgICAgICAgICIwLjg0NDY0MywgMC45OTU3NzQsIDIuMzYzMDYsIDQuNjQxNTMsIDYuOTIxMTksIDEyLjIyNzEsIDE1LjI1OTMiLCBcCi0gICAgICAgICAgIjAuODQ0ODYyLCAwLjk5NTc1NCwgMi4zNjI3OSwgNC42NDE5LCA2LjkyMDEyLCAxMi4yMjcsIDE1LjI1OTIiLCBcCi0gICAgICAgICAgIjAuODQ0NjUxLCAwLjk5NjU2MiwgMi4zNjMxLCA0LjY0MjQxLCA2LjkyMDUyLCAxMi4yMjcxLCAxNS4yNTk0IiwgXAotICAgICAgICAgICIwLjg0Mzg1MSwgMC45OTYwMTcsIDIuMzYzMSwgNC42NDE5LCA2LjkyMDAxLCAxMi4yMjY5LCAxNS4yNTg5IiwgXAotICAgICAgICAgICIwLjg0NDYyNSwgMC45OTY1NTcsIDIuMzYzMzgsIDQuNjQxNTYsIDYuOTE5OCwgMTIuMjI2OSwgMTUuMjU4OCIsIFwKLSAgICAgICAgICAiMC44NDM1ODYsIDAuOTk1NjkxLCAyLjM2MzEzLCA0LjY0MjczLCA2LjkyMjI2LCAxMi4yMjczLCAxNS4yNTk0Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE2NjY3MiwgMC4xOTYzODYsIDAuNDYzNzMsIDAuOTA5NDAyLCAxLjM1NDk5LCAyLjM5NTI5LCAyLjk4ODM3IiwgXAotICAgICAgICAgICIwLjE3ODkwNSwgMC4yMDg2MDYsIDAuNDc1OTU4LCAwLjkyMTkwNywgMS4zNjczNywgMi40MDc2MSwgMy4wMDA2NSIsIFwKLSAgICAgICAgICAiMC4xOTM3MzcsIDAuMjIzNDcxLCAwLjQ4Nzg1NywgMC45MzM5MDcsIDEuMzgsIDIuNDE5MzksIDMuMDEzIiwgXAotICAgICAgICAgICIwLjIwOTMyMywgMC4yMzgzNjcsIDAuNTA1ODc5LCAwLjk0Njk2NiwgMS4zOTI0NCwgMi40MzI2OSwgMy4wMjY0MSIsIFwKLSAgICAgICAgICAiMC4yMjQ1MTksIDAuMjU0MDcyLCAwLjUyMDcwOCwgMC45NjA4NTQsIDEuNDA2NDMsIDIuNDQ2NTksIDMuMDQwMDkiLCBcCi0gICAgICAgICAgIjAuMjQ4OTI4LCAwLjI3ODU2MiwgMC41NDQ3MTQsIDAuOTkwMTU5LCAxLjQyODI2LCAyLjQ2ODMzLCAzLjA2MTYxIiwgXAotICAgICAgICAgICIwLjI3MDM3OSwgMC4zMDAwMiwgMC41NjU0NzksIDEuMDExMDgsIDEuNDU0MzcsIDIuNDg3MjMsIDMuMDgwNSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMjQ1NDMsIDAuMzgzMTQ3LCAwLjkxMDk4NiwgMS43OTE1MSwgMi42NzUxLCA0LjczMTE1LCA1LjkwMjYzIiwgXAotICAgICAgICAgICIwLjMyNDU4NywgMC4zODMyMDMsIDAuOTExMTQyLCAxLjc5NDY2LCAyLjY3NjEsIDQuNzMyMzksIDUuOTAyMjUiLCBcCi0gICAgICAgICAgIjAuMzI0NTY0LCAwLjM4MzIwMiwgMC45MTEyNDgsIDEuNzkxNzQsIDIuNjc4NiwgNC43MzE0LCA1LjkwMzEyIiwgXAotICAgICAgICAgICIwLjMyNDU1NSwgMC4zODMxOTksIDAuOTExMTI5LCAxLjc5MjYzLCAyLjY3Njg1LCA0LjczMTM4LCA1LjkwMzA1IiwgXAotICAgICAgICAgICIwLjMyNDk3OSwgMC4zODMxOTUsIDAuOTEwOTU0LCAxLjc5MjA4LCAyLjY3MTQ0LCA0LjczMTg0LCA1LjkwMTU3IiwgXAotICAgICAgICAgICIwLjMyODIyNCwgMC4zODUxMzYsIDAuOTExMDE1LCAxLjc5MTg4LCAyLjY3NTgsIDQuNzMxMTEsIDUuOTAxNDEiLCBcCi0gICAgICAgICAgIjAuMzMyOTY2LCAwLjM4ODgwNywgMC45MTA5MTcsIDEuNzkxNjcsIDIuNjcyMTcsIDQuNzMxODgsIDUuOTAxNCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDE3NjYsIDAuMDAxNzY2LCAwLjAwMTc2NSwgMC4wMDE3NjcsIDAuMDAxNzY0LCAwLjAwMTc1OCwgMC4wMDE2ODUiLCBcCi0gICAgICAgICAgIjAuMDAxNzYyLCAwLjAwMTc2MiwgMC4wMDE3NjMsIDAuMDAxNzYyLCAwLjAwMTc2MSwgMC4wMDE3NTcsIDAuMDAxNjg1IiwgXAotICAgICAgICAgICIwLjAwMTc2MSwgMC4wMDE3NjEsIDAuMDAxNzYyLCAwLjAwMTc2MSwgMC4wMDE3NjEsIDAuMDAxNzU1LCAwLjAwMTY4MSIsIFwKLSAgICAgICAgICAiMC4wMDE3NiwgMC4wMDE3NjEsIDAuMDAxNzYxLCAwLjAwMTc2MSwgMC4wMDE3NiwgMC4wMDE3NTUsIDAuMDAxNjgxIiwgXAotICAgICAgICAgICIwLjAwMTc2LCAwLjAwMTc2LCAwLjAwMTc2MSwgMC4wMDE3NiwgMC4wMDE3NiwgMC4wMDE3NTYsIDAuMDAxNjgiLCBcCi0gICAgICAgICAgIjAuMDAxNzU5LCAwLjAwMTc1OSwgMC4wMDE3NjEsIDAuMDAxNzYxLCAwLjAwMTc2LCAwLjAwMTc1NCwgMC4wMDE2OCIsIFwKLSAgICAgICAgICAiMC4wMDE3NTgsIDAuMDAxNzU5LCAwLjAwMTc2LCAwLjAwMTc2LCAwLjAwMTc2LCAwLjAwMTc1NCwgMC4wMDE2ODYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDA1ODcsIDAuMDAwNTg3LCAwLjAwMDU4NiwgMC4wMDA1ODUsIDAuMDAwNTg0LCAwLjAwMDU4MSwgMC4wMDA1NzkiLCBcCi0gICAgICAgICAgIjAuMDAwNTc2LCAwLjAwMDU3NiwgMC4wMDA1NzYsIDAuMDAwNTc1LCAwLjAwMDU3NCwgMC4wMDA1NzEsIDAuMDAwNTY4IiwgXAotICAgICAgICAgICIwLjAwMDU3MiwgMC4wMDA1NzIsIDAuMDAwNTcyLCAwLjAwMDU3MSwgMC4wMDA1NywgMC4wMDA1NjcsIDAuMDAwNTY1IiwgXAotICAgICAgICAgICIwLjAwMDU3LCAwLjAwMDU3LCAwLjAwMDU3LCAwLjAwMDU2OSwgMC4wMDA1NjgsIDAuMDAwNTY1LCAwLjAwMDU2MyIsIFwKLSAgICAgICAgICAiMC4wMDA1NjgsIDAuMDAwNTY5LCAwLjAwMDU2OSwgMC4wMDA1NjgsIDAuMDAwNTY3LCAwLjAwMDU2NCwgMC4wMDA1NjIiLCBcCi0gICAgICAgICAgIjAuMDAwNTY3LCAwLjAwMDU2NywgMC4wMDA1NjgsIDAuMDAwNTY3LCAwLjAwMDU2NiwgMC4wMDA1NjMsIDAuMDAwNTYyIiwgXAotICAgICAgICAgICIwLjAwMDU2NCwgMC4wMDA1NjYsIDAuMDAwNTY3LCAwLjAwMDU2NywgMC4wMDA1NjUsIDAuMDAwNTYzLCAwLjAwMDU2MSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkExIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDE1ODMsIDAuMDAxNTgzLCAwLjAwMTU4NCwgMC4wMDE1ODMsIDAuMDAxNTgzLCAwLjAwMTU4MSwgMC4wMDE1MjEiLCBcCi0gICAgICAgICAgIjAuMDAxNTg2LCAwLjAwMTU4NSwgMC4wMDE1ODUsIDAuMDAxNTg3LCAwLjAwMTU4NiwgMC4wMDE1ODUsIDAuMDAxNTEyIiwgXAotICAgICAgICAgICIwLjAwMTU4NCwgMC4wMDE1ODUsIDAuMDAxNTg2LCAwLjAwMTU4NywgMC4wMDE1ODcsIDAuMDAxNTg0LCAwLjAwMTUxNiIsIFwKLSAgICAgICAgICAiMC4wMDE1ODMsIDAuMDAxNTgzLCAwLjAwMTU4NiwgMC4wMDE1ODcsIDAuMDAxNTg3LCAwLjAwMTU4NSwgMC4wMDE1MTYiLCBcCi0gICAgICAgICAgIjAuMDAxNTgxLCAwLjAwMTU4MiwgMC4wMDE1ODUsIDAuMDAxNTg3LCAwLjAwMTU4NiwgMC4wMDE1ODQsIDAuMDAxNTE2IiwgXAotICAgICAgICAgICIwLjAwMTU3OSwgMC4wMDE1OCwgMC4wMDE1ODQsIDAuMDAxNTg2LCAwLjAwMTU4NiwgMC4wMDE1ODQsIDAuMDAxNTE1IiwgXAotICAgICAgICAgICIwLjAwMTU3OCwgMC4wMDE1NzksIDAuMDAxNTgzLCAwLjAwMTU4NSwgMC4wMDE1ODYsIDAuMDAxNTg0LCAwLjAwMTUxNSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDU4NywgMC4wMDA1ODcsIDAuMDAwNTg2LCAwLjAwMDU4NSwgMC4wMDA1ODQsIDAuMDAwNTgxLCAwLjAwMDU3OSIsIFwKLSAgICAgICAgICAiMC4wMDA1NzYsIDAuMDAwNTc2LCAwLjAwMDU3NiwgMC4wMDA1NzUsIDAuMDAwNTc0LCAwLjAwMDU3MSwgMC4wMDA1NjkiLCBcCi0gICAgICAgICAgIjAuMDAwNTcxLCAwLjAwMDU3MSwgMC4wMDA1NzEsIDAuMDAwNTcsIDAuMDAwNTcsIDAuMDAwNTY3LCAwLjAwMDU2NSIsIFwKLSAgICAgICAgICAiMC4wMDA1NjksIDAuMDAwNTY5LCAwLjAwMDU3LCAwLjAwMDU2OSwgMC4wMDA1NjgsIDAuMDAwNTY1LCAwLjAwMDU2MyIsIFwKLSAgICAgICAgICAiMC4wMDA1NjcsIDAuMDAwNTY4LCAwLjAwMDU2OCwgMC4wMDA1NjgsIDAuMDAwNTY3LCAwLjAwMDU2NCwgMC4wMDA1NjIiLCBcCi0gICAgICAgICAgIjAuMDAwNTY1LCAwLjAwMDU2NiwgMC4wMDA1NjcsIDAuMDAwNTY2LCAwLjAwMDU2NiwgMC4wMDA1NjMsIDAuMDAwNTYxIiwgXAotICAgICAgICAgICIwLjAwMDU2NCwgMC4wMDA1NjUsIDAuMDAwNTY2LCAwLjAwMDU2NiwgMC4wMDA1NjUsIDAuMDAwNTYyLCAwLjAwMDU2MSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDEzODgsIDAuMDAxMzg4LCAwLjAwMTM4NywgMC4wMDEzODcsIDAuMDAxMzg2LCAwLjAwMTM4MiwgMC4wMDEzMDQiLCBcCi0gICAgICAgICAgIjAuMDAxMzg2LCAwLjAwMTM4NywgMC4wMDEzODcsIDAuMDAxMzg3LCAwLjAwMTM4NiwgMC4wMDEzODEsIDAuMDAxMzE0IiwgXAotICAgICAgICAgICIwLjAwMTM4NSwgMC4wMDEzODUsIDAuMDAxMzg2LCAwLjAwMTM4NiwgMC4wMDEzODYsIDAuMDAxMzgxLCAwLjAwMTMwOSIsIFwKLSAgICAgICAgICAiMC4wMDEzODQsIDAuMDAxMzg0LCAwLjAwMTM4NiwgMC4wMDEzODYsIDAuMDAxMzg1LCAwLjAwMTM4MSwgMC4wMDEzMDciLCBcCi0gICAgICAgICAgIjAuMDAxMzgzLCAwLjAwMTM4MywgMC4wMDEzODYsIDAuMDAxMzg2LCAwLjAwMTM4NSwgMC4wMDEzODEsIDAuMDAxMzA2IiwgXAotICAgICAgICAgICIwLjAwMTM4MSwgMC4wMDEzODIsIDAuMDAxMzg1LCAwLjAwMTM4NSwgMC4wMDEzODUsIDAuMDAxMzgxLCAwLjAwMTMwNSIsIFwKLSAgICAgICAgICAiMC4wMDEzOCwgMC4wMDEzOCwgMC4wMDEzODQsIDAuMDAxMzg1LCAwLjAwMTM4NSwgMC4wMDEzODEsIDAuMDAxMzA1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwMjg2LCAwLjAwMDI4NiwgMC4wMDAyODUsIDAuMDAwMjg2LCAwLjAwMDI4NSwgMC4wMDAyODQsIDAuMDAwMjg0IiwgXAotICAgICAgICAgICIwLjAwMDI4NSwgMC4wMDAyODUsIDAuMDAwMjg2LCAwLjAwMDI4NiwgMC4wMDAyODYsIDAuMDAwMjg1LCAwLjAwMDI4NSIsIFwKLSAgICAgICAgICAiMC4wMDAyODQsIDAuMDAwMjg0LCAwLjAwMDI4NiwgMC4wMDAyODYsIDAuMDAwMjg2LCAwLjAwMDI4NiwgMC4wMDAyODYiLCBcCi0gICAgICAgICAgIjAuMDAwMjgyLCAwLjAwMDI4MywgMC4wMDAyODYsIDAuMDAwMjg2LCAwLjAwMDI4NiwgMC4wMDAyODYsIDAuMDAwMjg2IiwgXAotICAgICAgICAgICIwLjAwMDI4LCAwLjAwMDI4MSwgMC4wMDAyODUsIDAuMDAwMjg2LCAwLjAwMDI4NiwgMC4wMDAyODYsIDAuMDAwMjg2IiwgXAotICAgICAgICAgICIwLjAwMDI3OSwgMC4wMDAyOCwgMC4wMDAyODQsIDAuMDAwMjg2LCAwLjAwMDI4NiwgMC4wMDAyODYsIDAuMDAwMjg2IiwgXAotICAgICAgICAgICIwLjAwMDI3NywgMC4wMDAyNzksIDAuMDAwMjgzLCAwLjAwMDI4NSwgMC4wMDAyODYsIDAuMDAwMjg2LCAwLjAwMDI4NSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDEyNDQsIDAuMDAxMjQ0LCAwLjAwMTI0MywgMC4wMDEyNDMsIDAuMDAxMjQyLCAwLjAwMTIzOCwgMC4wMDExNTkiLCBcCi0gICAgICAgICAgIjAuMDAxMjQxLCAwLjAwMTI0MiwgMC4wMDEyNDMsIDAuMDAxMjQxLCAwLjAwMTI0MiwgMC4wMDEyMzcsIDAuMDAxMTYyIiwgXAotICAgICAgICAgICIwLjAwMTIzOSwgMC4wMDEyNCwgMC4wMDEyNDIsIDAuMDAxMjQxLCAwLjAwMTI0MiwgMC4wMDEyMzcsIDAuMDAxMTY1IiwgXAotICAgICAgICAgICIwLjAwMTIzNywgMC4wMDEyMzgsIDAuMDAxMjQxLCAwLjAwMTI0MiwgMC4wMDEyNDEsIDAuMDAxMjM3LCAwLjAwMTE2MiIsIFwKLSAgICAgICAgICAiMC4wMDEyMzUsIDAuMDAxMjM2LCAwLjAwMTI0LCAwLjAwMTI0MSwgMC4wMDEyNDEsIDAuMDAxMjM2LCAwLjAwMTE2OSIsIFwKLSAgICAgICAgICAiMC4wMDEyMzMsIDAuMDAxMjM0LCAwLjAwMTIzOSwgMC4wMDEyNDEsIDAuMDAxMjQxLCAwLjAwMTIzNSwgMC4wMDExNTQiLCBcCi0gICAgICAgICAgIjAuMDAxMjMsIDAuMDAxMjMyLCAwLjAwMTIzOCwgMC4wMDEyNCwgMC4wMDEyNCwgMC4wMDEyMzYsIDAuMDAxMTYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDAwNjMsIDAuMDAwMDYzLCAwLjAwMDA2MywgMC4wMDAwNjMsIDAuMDAwMDYzLCAwLjAwMDA2MywgMC4wMDAwNjMiLCBcCi0gICAgICAgICAgIjAuMDAwMDcsIDAuMDAwMDcsIDAuMDAwMDcyLCAwLjAwMDA3MywgMC4wMDAwNzMsIDAuMDAwMDc0LCAwLjAwMDA3MyIsIFwKLSAgICAgICAgICAiMC4wMDAwNywgMC4wMDAwNzEsIDAuMDAwMDc1LCAwLjAwMDA3NiwgMC4wMDAwNzcsIDAuMDAwMDc3LCAwLjAwMDA3NyIsIFwKLSAgICAgICAgICAiMC4wMDAwNjgsIDAuMDAwMDcsIDAuMDAwMDc0LCAwLjAwMDA3NywgMC4wMDAwNzcsIDAuMDAwMDc4LCAwLjAwMDA3OCIsIFwKLSAgICAgICAgICAiMC4wMDAwNjYsIDAuMDAwMDY4LCAwLjAwMDA3NCwgMC4wMDAwNzcsIDAuMDAwMDc4LCAwLjAwMDA3OCwgMC4wMDAwNzgiLCBcCi0gICAgICAgICAgIjAuMDAwMDYzLCAwLjAwMDA2NSwgMC4wMDAwNzMsIDAuMDAwMDc2LCAwLjAwMDA3NywgMC4wMDAwNzgsIDAuMDAwMDc5IiwgXAotICAgICAgICAgICIwLjAwMDA2MSwgMC4wMDAwNjMsIDAuMDAwMDcyLCAwLjAwMDA3NSwgMC4wMDAwNzcsIDAuMDAwMDc4LCAwLjAwMDA3OSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IEFPSTIyWDEgKgotICogLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoQU9JMjJYMSkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjA5NjUxMjk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA4MTc4MTk7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwODEzMjMxOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDgxNzgxOTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAzMDYsIDAuMDAwMzA2LCAwLjAwMDMwNiwgMC4wMDAzMDYsIDAuMDAwMzA2LCAwLjAwMDMwNiwgMC4wMDAzMDYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAzMTYsIDAuMDAwMzA5LCAwLjAwMDMwOCwgMC4wMDAzMDgsIDAuMDAwMzA4LCAwLjAwMDMwOCwgMC4wMDAzMDciKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEExKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA4NTI4Njk7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwODQ1NjA1OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDg1Mjg2OTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxNDEsIDAuMDAwMTQxLCAwLjAwMDE0LCAwLjAwMDE0LCAwLjAwMDE0LCAwLjAwMDE0LCAwLjAwMDE0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzQ3LCAwLjAwMDM0OCwgMC4wMDAzNDgsIDAuMDAwMzQ4LCAwLjAwMDM0OCwgMC4wMDAzNDgsIDAuMDAwMzQ4Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwODM2MDA4OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDgzNjAwODsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA4MzM2Njc7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzA2LCAwLjAwMDMwNiwgMC4wMDAzMDYsIDAuMDAwMzA2LCAwLjAwMDMwNiwgMC4wMDAzMDYsIDAuMDAwMzA2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzE1LCAwLjAwMDMwOSwgMC4wMDAzMDgsIDAuMDAwMzA3LCAwLjAwMDMwNywgMC4wMDAzMDcsIDAuMDAwMzA3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCMSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwODUwMTA2OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDg0OTY1MTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA4NTAxMDY7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMTI5LCAwLjAwMDEyOSwgMC4wMDAxMjksIDAuMDAwMTI5LCAwLjAwMDEyOSwgMC4wMDAxMjksIDAuMDAwMTI5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzQ3LCAwLjAwMDM0OCwgMC4wMDAzNDgsIDAuMDAwMzQ4LCAwLjAwMDM0OCwgMC4wMDAzNDgsIDAuMDAwMzQ4Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMDYyMDk4MzsKLSAgICBmdW5jdGlvbiA6ICIoISgoQjAgQjEpKyhBMCBBMSkpKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTAiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIwMjI5NywgMC4yOTE3NjUsIDAuNzk4MjAyLCAxLjI0NDY1LCAxLjg0MDQ1LCAzLjAzMDUsIDMuNzczNjMiLCBcCi0gICAgICAgICAgIjAuMjE0MDgyLCAwLjMwMzY5NCwgMC44MTAyNjEsIDEuMjU2NjcsIDEuODUxNzMsIDMuMDQyMDMsIDMuNzg1NjMiLCBcCi0gICAgICAgICAgIjAuMjI4NjY3LCAwLjMxODI2LCAwLjgyNDk3OCwgMS4yNzExMSwgMS44NjYzNSwgMy4wNTcyMywgMy44MDAxMyIsIFwKLSAgICAgICAgICAiMC4yNDIyOTksIDAuMzMxOTQ1LCAwLjgzODUzMywgMS4yODUyMSwgMS44ODExNSwgMy4wNzA1NywgMy44MTM5MSIsIFwKLSAgICAgICAgICAiMC4yNTUzODksIDAuMzQ1MDI2LCAwLjg1MTczMSwgMS4yOTgzNSwgMS44OTM0NywgMy4wODQxOCwgMy44MjcxOCIsIFwKLSAgICAgICAgICAiMC4yNzU3ODUsIDAuMzY1NDI4LCAwLjg3MTk2NywgMS4zMTkxLCAxLjkxNDIxLCAzLjEwMzk1LCAzLjg0NzUxIiwgXAotICAgICAgICAgICIwLjI5MzI5OCwgMC4zODI5NjgsIDAuODg5NTk0LCAxLjMzNjc3LCAxLjkzMjA3LCAzLjEyMTU3LCAzLjg2NTEzIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjM0NTUxMiwgMC41MjA4MzgsIDEuNTA5ODcsIDIuMzgzMSwgMy41NDcxOSwgNS44Nzg4NSwgNy4zMzI4OSIsIFwKLSAgICAgICAgICAiMC4zNDU1NzgsIDAuNTIwNDE0LCAxLjUxMDU1LCAyLjM4MzgyLCAzLjU0OTAzLCA1Ljg3NjM5LCA3LjMzMzEzIiwgXAotICAgICAgICAgICIwLjM0NTQ5OSwgMC41MjA0LCAxLjUxMDA4LCAyLjM4NDMzLCAzLjU0NzU0LCA1Ljg4MDI5LCA3LjMzMTkyIiwgXAotICAgICAgICAgICIwLjM0NTQ1OCwgMC41MjA0MiwgMS41MTAxNSwgMi4zODMwNywgMy41NDgzNiwgNS44NzkwOSwgNy4zMzMwMSIsIFwKLSAgICAgICAgICAiMC4zNDU1NjQsIDAuNTIwODgzLCAxLjUxMDQ2LCAyLjM4Mzc3LCAzLjU0ODExLCA1Ljg4MjAxLCA3LjMzMzM2IiwgXAotICAgICAgICAgICIwLjM0NjE3MywgMC41MjA1NiwgMS41MTA5NywgMi4zODMzMSwgMy41NDgxNiwgNS44NzgwNSwgNy4zMzI4NiIsIFwKLSAgICAgICAgICAiMC4zNDgzMzYsIDAuNTIxMjI4LCAxLjUxMDE5LCAyLjM4MzM1LCAzLjU0ODQyLCA1Ljg3Nzg4LCA3LjMzMjI4Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIyNDY0NCwgMC4zMjMyMDgsIDAuODc4NDEyLCAxLjM2NzMxLCAyLjAxOTkyLCAzLjMyMTk2LCA0LjEzNTUyIiwgXAotICAgICAgICAgICIwLjIzNjEyNCwgMC4zMzQ3MTYsIDAuODkwMTE5LCAxLjM3OTUyLCAyLjAzMjI1LCAzLjMzNDI0LCA0LjE0ODUxIiwgXAotICAgICAgICAgICIwLjI0OTczMywgMC4zNDgyOTIsIDAuOTAzOTg2LCAxLjM5MjgsIDIuMDQ1NTYsIDMuMzQ4MTEsIDQuMTYyMTYiLCBcCi0gICAgICAgICAgIjAuMjYzMTcyLCAwLjM2MTc4OCwgMC45MTc2MDksIDEuNDA2NDIsIDIuMDU4ODcsIDMuMzYxNzksIDQuMTc1OCIsIFwKLSAgICAgICAgICAiMC4yNzY2NiwgMC4zNzUyOTMsIDAuOTMwNzI4LCAxLjQxOTk4LCAyLjA3MjcxLCAzLjM3NTAxLCA0LjE4OTQ5IiwgXAotICAgICAgICAgICIwLjI5ODAxOSwgMC4zOTY2NjcsIDAuOTUyNTg0LCAxLjQ0MjUsIDIuMDk0ODgsIDMuMzk2OTYsIDQuMjExMDMiLCBcCi0gICAgICAgICAgIjAuMzE2ODA3LCAwLjQxNTU2MSwgMC45NzE2ODEsIDEuNDYwODUsIDIuMTEyNzQsIDMuNDE1ODIsIDQuMjMwMTkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzg4ODkxLCAwLjU3NTczMSwgMS42MzMzOSwgMi41NjY5OCwgMy44MDk3MSwgNi4yOTIzMiwgNy44NDYxNiIsIFwKLSAgICAgICAgICAiMC4zODg4NTksIDAuNTc1Njk3LCAxLjYzMzM4LCAyLjU2NjMyLCAzLjgxMDQxLCA2LjI5NzMzLCA3Ljg1MDQ2IiwgXAotICAgICAgICAgICIwLjM4ODkwMSwgMC41NzU2NTgsIDEuNjMzNjEsIDIuNTY3MDUsIDMuODA5NTcsIDYuMjk3MzIsIDcuODQ5NTIiLCBcCi0gICAgICAgICAgIjAuMzg4ODUxLCAwLjU3NTc1NSwgMS42MzM4MSwgMi41NjY4NiwgMy44MTEwMSwgNi4yOTczMSwgNy44NDk1MyIsIFwKLSAgICAgICAgICAiMC4zODg4NDMsIDAuNTc1NjUxLCAxLjYzMzcyLCAyLjU2NjQzLCAzLjgwOTE2LCA2LjI5NzM2LCA3Ljg1MDg1IiwgXAotICAgICAgICAgICIwLjM4OTY5LCAwLjU3NTYxLCAxLjYzMzY1LCAyLjU2Njc0LCAzLjgwOTksIDYuMjk3MDUsIDcuODUxMTUiLCBcCi0gICAgICAgICAgIjAuMzkyMDE5LCAwLjU3NjA1NiwgMS42MzM4NSwgMi41NjY1MywgMy44MTAyNiwgNi4yOTY4MSwgNy44NTEzMiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTk2NTczLCAwLjI4NjAzMywgMC43OTIwNDYsIDEuMjM5MTMsIDEuODMzNjYsIDMuMDI0NDYsIDMuNzY3NDQiLCBcCi0gICAgICAgICAgIjAuMjA4NTU4LCAwLjI5ODA2MSwgMC44MDQ0MzIsIDEuMjUwNzcsIDEuODQ1NywgMy4wMzU4OCwgMy43Nzk0MiIsIFwKLSAgICAgICAgICAiMC4yMjMxMTcsIDAuMzEyNjM4LCAwLjgxODk4NywgMS4yNjU0OCwgMS44NjA3NCwgMy4wNTA5NywgMy43OTQxNyIsIFwKLSAgICAgICAgICAiMC4yMzY3NjQsIDAuMzI2MzMzLCAwLjgzMjc0NywgMS4yNzk1MSwgMS44NzQzNCwgMy4wNjQ5LCAzLjgwNzY5IiwgXAotICAgICAgICAgICIwLjI0OTgxOSwgMC4zMzkzOTEsIDAuODQ1ODk1LCAxLjI5MjQ3LCAxLjg4NzQ4LCAzLjA3Nzk5LCAzLjgyMTExIiwgXAotICAgICAgICAgICIwLjI3MDEzOCwgMC4zNTk3MjcsIDAuODY2MjI2LCAxLjMxMzIyLCAxLjkwODI1LCAzLjA5NzkyLCAzLjg0MTQ0IiwgXAotICAgICAgICAgICIwLjI4NzYzNCwgMC4zNzcyMzYsIDAuODgzNzM4LCAxLjMzMDgsIDEuOTI2NDYsIDMuMTE1NTQsIDMuODU5MDciKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzM5Mzc2LCAwLjUxMzk4NSwgMS41MDI5OSwgMi4zNzY0MywgMy41NDE3MywgNS44Njg0MSwgNy4zMjU2OSIsIFwKLSAgICAgICAgICAiMC4zMzk1MzIsIDAuNTEzODksIDEuNTAzNzYsIDIuMzc2NDQsIDMuNTQxODYsIDUuODcxNTIsIDcuMzI1NTgiLCBcCi0gICAgICAgICAgIjAuMzM5NDEyLCAwLjUxNDAyMiwgMS41MDMzMywgMi4zNzYxOSwgMy41NDAyNSwgNS44NzE2MSwgNy4zMjQwNiIsIFwKLSAgICAgICAgICAiMC4zMzkyODYsIDAuNTEzOTM1LCAxLjUwMzI1LCAyLjM3Njg5LCAzLjU0MDIyLCA1Ljg2ODQ0LCA3LjMyNDcyIiwgXAotICAgICAgICAgICIwLjMzOTMxMiwgMC41MTM5NjcsIDEuNTAzNTYsIDIuMzc2NzgsIDMuNTQxMjIsIDUuODY4NjEsIDcuMzI1ODQiLCBcCi0gICAgICAgICAgIjAuMzQwMDY1LCAwLjUxNDAyMiwgMS41MDQzLCAyLjM3NjM2LCAzLjU0MDk5LCA1Ljg3MDY1LCA3LjMyNTM0IiwgXAotICAgICAgICAgICIwLjM0MjAwMiwgMC41MTQ1NzcsIDEuNTAzNDQsIDIuMzc2MzMsIDMuNTQwNjIsIDUuODcwNDMsIDcuMzI0NjciKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjE5Nzc3LCAwLjMxODI2NiwgMC44NzM4NTksIDEuMzYyOTMsIDIuMDE0ODEsIDMuMzE4MywgNC4xMzE4NyIsIFwKLSAgICAgICAgICAiMC4yMzAwMTgsIDAuMzI4NTQzLCAwLjg4Mzk2MSwgMS4zNzMxNCwgMi4wMjQ2NiwgMy4zMjgzMiwgNC4xNDI0NyIsIFwKLSAgICAgICAgICAiMC4yNDMwMzYsIDAuMzQxNjc3LCAwLjg5Njk3NCwgMS4zODY1OSwgMi4wMzkyLCAzLjM0MTQ4LCA0LjE1NTU5IiwgXAotICAgICAgICAgICIwLjI1NjMwNCwgMC4zNTQ5NSwgMC45MTA4MjMsIDEuMzk5NiwgMi4wNTI0NCwgMy4zNTQ5OSwgNC4xNjg3NiIsIFwKLSAgICAgICAgICAiMC4yNjk0MTksIDAuMzY4MDc3LCAwLjkyMzU3OSwgMS40MTM1MiwgMi4wNjU2MiwgMy4zNjc5MiwgNC4xODIyOSIsIFwKLSAgICAgICAgICAiMC4yOTA1NSwgMC4zODkyMzcsIDAuOTQ1MTExLCAxLjQzNDE5LCAyLjA4NjczLCAzLjM4OTM3LCA0LjIwMzMiLCBcCi0gICAgICAgICAgIjAuMzA5MTMxLCAwLjQwNzc1MiwgMC45NjM2MDksIDEuNDUyODUsIDIuMTA0OTEsIDMuNDA3ODQsIDQuMjIyMTEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzg4OTIsIDAuNTc1NjM0LCAxLjYzMzM4LCAyLjU2NzA0LCAzLjgxMDQyLCA2LjI5NzI4LCA3Ljg1MTIxIiwgXAotICAgICAgICAgICIwLjM4ODkwMywgMC41NzU2MzEsIDEuNjMzNjQsIDIuNTY2ODYsIDMuODEwMjgsIDYuMjk3LCA3Ljg1MDQzIiwgXAotICAgICAgICAgICIwLjM4ODg2MiwgMC41NzU2NDksIDEuNjMzNjQsIDIuNTY2NywgMy44MTAxMSwgNi4yOTc0NCwgNy44NDkzMyIsIFwKLSAgICAgICAgICAiMC4zODg4OCwgMC41NzU2NjQsIDEuNjMzNDMsIDIuNTY3MDQsIDMuODA5NTIsIDYuMjk2OTcsIDcuODUwNTkiLCBcCi0gICAgICAgICAgIjAuMzg4ODQ3LCAwLjU3NTYzMiwgMS42MzM4MSwgMi41NjY5LCAzLjgxMDA0LCA2LjI5NzE1LCA3Ljg1MTI1IiwgXAotICAgICAgICAgICIwLjM5MDk2MiwgMC41NzU2MzIsIDEuNjMzMzcsIDIuNTY2NjEsIDMuODA5NCwgNi4yOTcwOCwgNy44NDk1NCIsIFwKLSAgICAgICAgICAiMC4zOTQ5ODQsIDAuNTc2OTEyLCAxLjYzMzQyLCAyLjU2NzQ3LCAzLjgwOTQ1LCA2LjI5NjkxLCA3Ljg1MDkxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xODIxMTEsIDAuMjcxNjksIDAuNzc4MjM4LCAxLjIyNDgzLCAxLjgyMDEyLCAzLjAxMDUsIDMuNzUzNjkiLCBcCi0gICAgICAgICAgIjAuMTkyMzg3LCAwLjI4MTk5MSwgMC43ODg1NDEsIDEuMjM1MDcsIDEuODMwMTEsIDMuMDIwNTMsIDMuNzYzOTQiLCBcCi0gICAgICAgICAgIjAuMjA1NDE1LCAwLjI5NTA0MywgMC44MDE3NDYsIDEuMjQ4MzcsIDEuODQ0MDcsIDMuMDMzNTIsIDMuNzc3MDYiLCBcCi0gICAgICAgICAgIjAuMjE4NDI1LCAwLjMwODExNSwgMC44MTQ3MzksIDEuMjYxNDMsIDEuODU3MTYsIDMuMDQ2NjQsIDMuNzkwMTkiLCBcCi0gICAgICAgICAgIjAuMjMxNTk0LCAwLjMyMTIyMywgMC44MjgwNDcsIDEuMjc0MjQsIDEuODY5NDgsIDMuMDYwMzMsIDMuODAzNDkiLCBcCi0gICAgICAgICAgIjAuMjUyNTkxLCAwLjM0MjIxNywgMC44NDg2NDksIDEuMjk1NjEsIDEuODkwOCwgMy4wODA3OCwgMy44MjQzNCIsIFwKLSAgICAgICAgICAiMC4yNzExNTgsIDAuMzYwNjA1LCAwLjg2NzM3NSwgMS4zMTM3MiwgMS45MDk1NiwgMy4wOTkyNCwgMy44NDI5NiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zNDU2MTIsIDAuNTIwMjQsIDEuNTEwNjMsIDIuMzgzMjEsIDMuNTQ3NDUsIDUuODc4NjQsIDcuMzMxNjQiLCBcCi0gICAgICAgICAgIjAuMzQ1NzAxLCAwLjUyMDQwNCwgMS41MTAzNiwgMi4zODM1NSwgMy41NDkwNCwgNS44Nzg0NSwgNy4zMzMxIiwgXAotICAgICAgICAgICIwLjM0NTQyMywgMC41MjAyMjUsIDEuNTEwNDIsIDIuMzgzNzIsIDMuNTQ3NDEsIDUuODc3NzIsIDcuMzMyMiIsIFwKLSAgICAgICAgICAiMC4zNDUwMjgsIDAuNTIwMjI3LCAxLjUxMTA3LCAyLjM4MzE1LCAzLjU0NzI1LCA1Ljg3NzM0LCA3LjMzMjE4IiwgXAotICAgICAgICAgICIwLjM0NTYwNiwgMC41MjAxMDksIDEuNTEwNTgsIDIuMzgzMjUsIDMuNTQ3NDgsIDUuODc1OTEsIDcuMzMzNDEiLCBcCi0gICAgICAgICAgIjAuMzQ5NzEzLCAwLjUyMDY0NCwgMS41MTA4OCwgMi4zODM2MiwgMy41NDkwMywgNS44NzgsIDcuMzMyMzMiLCBcCi0gICAgICAgICAgIjAuMzU0OTk3LCAwLjUyMzA5OCwgMS41MTA1MSwgMi4zODMyNywgMy41NDg0MSwgNS44NzkxNywgNy4zMzMzNiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xOTU4NzQsIDAuMjkzNzYzLCAwLjg0ODA0LCAxLjMzNzA2LCAxLjk4Nzk3LCAzLjI5MTEsIDQuMTA1MjQiLCBcCi0gICAgICAgICAgIjAuMjA3ODM4LCAwLjMwNTg0OSwgMC44NTk4MDEsIDEuMzQ4NzQsIDIuMDAwMTQsIDMuMzAzNjksIDQuMTE4MjciLCBcCi0gICAgICAgICAgIjAuMjIxNTI5LCAwLjMxOTU0NiwgMC44NzM2ODksIDEuMzYzMDksIDIuMDE0NzIsIDMuMzE3OCwgNC4xMzIxNSIsIFwKLSAgICAgICAgICAiMC4yMzUwMzMsIDAuMzMzMTM3LCAwLjg4NzM0NSwgMS4zNzYzMSwgMi4wMjg2OCwgMy4zMzEwMywgNC4xNDU4OCIsIFwKLSAgICAgICAgICAiMC4yNDc2NjcsIDAuMzQ2NTY1LCAwLjkwMTI3NCwgMS4zODk1OSwgMi4wNDE0LCAzLjM0NTExLCA0LjE1OTIiLCBcCi0gICAgICAgICAgIjAuMjY5NjAyLCAwLjM2NjgyMSwgMC45MjI1MTYsIDEuNDExNTksIDIuMDYzMzIsIDMuMzY2NjMsIDQuMTgxMjMiLCBcCi0gICAgICAgICAgIjAuMjg4MzQ2LCAwLjM4NjYxMSwgMC45NDEyMzcsIDEuNDMwMjIsIDIuMDgxODYsIDMuMzg1MTMsIDQuMjAwMDMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzYxNjczLCAwLjU0Nzg3LCAxLjYwNDQ1LCAyLjUzNjkyLCAzLjc5MTM4LCA2LjI2Mzk5LCA3LjgxMzEiLCBcCi0gICAgICAgICAgIjAuMzYxNjg2LCAwLjU0ODAzNiwgMS42MDM5MiwgMi41MzY3NSwgMy43ODA2LCA2LjI2ODA1LCA3LjgxOTQiLCBcCi0gICAgICAgICAgIjAuMzYxNjMxLCAwLjU0Nzg3MSwgMS42MDQ0NCwgMi41MzcxNCwgMy43OTEzMSwgNi4yNjgwNCwgNy44MTk0IiwgXAotICAgICAgICAgICIwLjM2MTYzMiwgMC41NDc4ODMsIDEuNjA0NDMsIDIuNTQ1MiwgMy43ODA5NywgNi4yNjg2MiwgNy44MjEyOCIsIFwKLSAgICAgICAgICAiMC4zNjE3MTIsIDAuNTQ3ODgyLCAxLjYwNDU0LCAyLjUzODUsIDMuNzkxMzYsIDYuMjY5MTEsIDcuODE5MjgiLCBcCi0gICAgICAgICAgIjAuMzYzMjQyLCAwLjU0NzgxNywgMS42MDQzNCwgMi41NDAwOCwgMy43NzkxMSwgNi4yNjg3MywgNy44MTc4OCIsIFwKLSAgICAgICAgICAiMC4zNjYwNiwgMC41NDg3MjUsIDEuNjA0NDUsIDIuNTQxMDUsIDMuNzkxMDksIDYuMjY1NDEsIDcuODIxMTYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE3NjM4MSwgMC4yNjU5MTgsIDAuNzcyMzY0LCAxLjIxOTU3LCAxLjgxNjA1LCAzLjAwNjMsIDMuNzUwNTEiLCBcCi0gICAgICAgICAgIjAuMTg2OTE2LCAwLjI3NjQ5NSwgMC43ODMwMjgsIDEuMjMwMzMsIDEuODI2MTksIDMuMDE3MDcsIDMuNzYxMjIiLCBcCi0gICAgICAgICAgIjAuMjAwMDI4LCAwLjI4OTYyNSwgMC43OTYzODQsIDEuMjQzNjksIDEuODM5NzMsIDMuMDMwMjIsIDMuNzc0MzciLCBcCi0gICAgICAgICAgIjAuMjEyOTMyLCAwLjMwMjU3LCAwLjgwOTQ2NiwgMS4yNTY5NCwgMS44NTI1OSwgMy4wNDMzLCAzLjc4NzQ4IiwgXAotICAgICAgICAgICIwLjIyNTk3OCwgMC4zMTU2NDIsIDAuODIyNDkyLCAxLjI2OTgxLCAxLjg2NTAzLCAzLjA1NzEsIDMuODAwNzYiLCBcCi0gICAgICAgICAgIjAuMjQ2OTU3LCAwLjMzNjU5MSwgMC44NDMzNjQsIDEuMjkwNCwgMS44ODY0MiwgMy4wNzczOSwgMy44MjE2MSIsIFwKLSAgICAgICAgICAiMC4yNjUzOTYsIDAuMzU0OTcsIDAuODYyMDI0LCAxLjMwODc2LCAxLjkwNTE0LCAzLjA5NTcyLCAzLjg0MDIzIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMzOTc1MSwgMC41MTQzMDIsIDEuNTA0MjIsIDIuMzc4MzcsIDMuNTQ0NDQsIDUuODc2MTcsIDcuMzMyNDYiLCBcCi0gICAgICAgICAgIjAuMzM5NDU0LCAwLjUxNDM0OSwgMS41MDU0MiwgMi4zNzgyMywgMy41NDM0NSwgNS44NzQ3NSwgNy4zMzA4MyIsIFwKLSAgICAgICAgICAiMC4zMzkzNjcsIDAuNTE0MzA2LCAxLjUwNDY5LCAyLjM3ODM0LCAzLjU0NDYxLCA1Ljg3NjMyLCA3LjMzMDY0IiwgXAotICAgICAgICAgICIwLjMzODk2NCwgMC41MTQyOSwgMS41MDU1NywgMi4zNzg2NSwgMy41NDM0MSwgNS44NzM3OSwgNy4zMzA3NyIsIFwKLSAgICAgICAgICAiMC4zMzk5NDYsIDAuNTE0MTEsIDEuNTA0NjksIDIuMzc5MTEsIDMuNTQzNzIsIDUuODgwNDMsIDcuMzMzMDEiLCBcCi0gICAgICAgICAgIjAuMzQzNzM1LCAwLjUxNDU1LCAxLjUwNTQsIDIuMzc4NTYsIDMuNTQ1MTYsIDUuODc2MzIsIDcuMzMxOTMiLCBcCi0gICAgICAgICAgIjAuMzQ5NjgsIDAuNTE3ODAzLCAxLjUwNDk1LCAyLjM3ODU2LCAzLjU0MzM1LCA1Ljg3NzA0LCA3LjMzMjk1Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE5MDgxNCwgMC4yODg2MjQsIDAuODQyODI0LCAxLjMzMTE5LCAxLjk4MzMzLCAzLjI4NjI3LCA0LjEwMDMzIiwgXAotICAgICAgICAgICIwLjIwMTQ2OCwgMC4yOTkzMDMsIDAuODUzNTE3LCAxLjM0MjI4LCAxLjk5NDUyLCAzLjI5NzIsIDQuMTExOSIsIFwKLSAgICAgICAgICAiMC4yMTQ1NzMsIDAuMzEyNjA4LCAwLjg2NjgwMSwgMS4zNTU1NSwgMi4wMDc4NCwgMy4zMTA4NywgNC4xMjQ5OCIsIFwKLSAgICAgICAgICAiMC4yMjc5LCAwLjMyNTg2MSwgMC44ODAxNTIsIDEuMzY5MTMsIDIuMDIxODksIDMuMzI0MTMsIDQuMTM4NzMiLCBcCi0gICAgICAgICAgIjAuMjQwODg2LCAwLjMzODg3NCwgMC44OTM1NiwgMS4zODI2NSwgMi4wMzM5NSwgMy4zMzcyMiwgNC4xNTE4OCIsIFwKLSAgICAgICAgICAiMC4yNjIwMjEsIDAuMzYwMTUsIDAuOTE0NDc4LCAxLjQwMzQ2LCAyLjA1NTUsIDMuMzU4NDEsIDQuMTczMjIiLCBcCi0gICAgICAgICAgIjAuMjgwNDg1LCAwLjM3ODYxLCAwLjkzMzA2NywgMS40MjI2MywgMi4wNzM1OCwgMy4zNzY5MiwgNC4xOTE4MSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zNjE2NzYsIDAuNTQ3ODQsIDEuNjA0MTYsIDIuNTM5ODUsIDMuNzc4OTQsIDYuMjY1NTgsIDcuODE3MjUiLCBcCi0gICAgICAgICAgIjAuMzYxNjQ0LCAwLjU0Nzc5MSwgMS42MDQ0MywgMi41NDAyOCwgMy43ODIxNiwgNi4yNjY0OSwgNy44MTk1MSIsIFwKLSAgICAgICAgICAiMC4zNjE2NzMsIDAuNTQ3OTI4LCAxLjYwNDI4LCAyLjU0NDc4LCAzLjc5MTQzLCA2LjI2ODE0LCA3LjgxOTE3IiwgXAotICAgICAgICAgICIwLjM2MTY5NCwgMC41NDc4NzQsIDEuNjAzNzgsIDIuNTM3MDQsIDMuNzkxMjQsIDYuMjY4NDcsIDcuODE3NCIsIFwKLSAgICAgICAgICAiMC4zNjIwMjUsIDAuNTQ3NzkyLCAxLjYwNDMzLCAyLjUzNzA3LCAzLjc4MjQxLCA2LjI2ODYyLCA3LjgyMTE5IiwgXAotICAgICAgICAgICIwLjM2NTM4NCwgMC41NDgyMDMsIDEuNjA0MzEsIDIuNTQwMiwgMy43NzkxMywgNi4yNjg3NCwgNy44MTcxNSIsIFwKLSAgICAgICAgICAiMC4zNzA0NjcsIDAuNTUwMDM2LCAxLjYwNDM0LCAyLjU0MDYxLCAzLjc5MTI5LCA2LjI2NTQzLCA3LjgyMTI4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjgzOSwgMC4wMDI4MzksIDAuMDAyODM5LCAwLjAwMjgzOSwgMC4wMDI4MzksIDAuMDAyODM0LCAwLjAwMjgzMyIsIFwKLSAgICAgICAgICAiMC4wMDI4MzMsIDAuMDAyODMzLCAwLjAwMjgzMywgMC4wMDI4MzIsIDAuMDAyODM0LCAwLjAwMjgyOSwgMC4wMDI4MjciLCBcCi0gICAgICAgICAgIjAuMDAyODI5LCAwLjAwMjgzLCAwLjAwMjgzLCAwLjAwMjgzLCAwLjAwMjgzLCAwLjAwMjgyNywgMC4wMDI4MjUiLCBcCi0gICAgICAgICAgIjAuMDAyODI3LCAwLjAwMjgyOSwgMC4wMDI4MzEsIDAuMDAyODMsIDAuMDAyODI5LCAwLjAwMjgyNywgMC4wMDI4MjUiLCBcCi0gICAgICAgICAgIjAuMDAyODI2LCAwLjAwMjgyOCwgMC4wMDI4MywgMC4wMDI4MywgMC4wMDI4MjksIDAuMDAyODI4LCAwLjAwMjgyNSIsIFwKLSAgICAgICAgICAiMC4wMDI4MjMsIDAuMDAyODI2LCAwLjAwMjgyOSwgMC4wMDI4MywgMC4wMDI4MjksIDAuMDAyODI2LCAwLjAwMjgyNiIsIFwKLSAgICAgICAgICAiMC4wMDI4MjIsIDAuMDAyODI0LCAwLjAwMjgyOCwgMC4wMDI4MjksIDAuMDAyODI4LCAwLjAwMjgyNiwgMC4wMDI4MjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDEwNzUsIDAuMDAxMDc1LCAwLjAwMTA3NCwgMC4wMDEwNzMsIDAuMDAxMDczLCAwLjAwMTA2OSwgMC4wMDEwNjgiLCBcCi0gICAgICAgICAgIjAuMDAxMDY0LCAwLjAwMTA2NCwgMC4wMDEwNjUsIDAuMDAxMDY1LCAwLjAwMTA2MywgMC4wMDEwNjEsIDAuMDAxMDYiLCBcCi0gICAgICAgICAgIjAuMDAxMDU3LCAwLjAwMTA1OSwgMC4wMDEwNjEsIDAuMDAxMDYxLCAwLjAwMTA2MSwgMC4wMDEwNTksIDAuMDAxMDU3IiwgXAotICAgICAgICAgICIwLjAwMTA1MiwgMC4wMDEwNTUsIDAuMDAxMDYsIDAuMDAxMDYsIDAuMDAxMDYsIDAuMDAxMDU4LCAwLjAwMTA1NiIsIFwKLSAgICAgICAgICAiMC4wMDEwNDcsIDAuMDAxMDUxLCAwLjAwMTA1OCwgMC4wMDEwNTgsIDAuMDAxMDU5LCAwLjAwMTA1NywgMC4wMDEwNTYiLCBcCi0gICAgICAgICAgIjAuMDAxMDQxLCAwLjAwMTA0NywgMC4wMDEwNTUsIDAuMDAxMDU3LCAwLjAwMTA1NywgMC4wMDEwNTYsIDAuMDAxMDU0IiwgXAotICAgICAgICAgICIwLjAwMTAzNywgMC4wMDEwNDMsIDAuMDAxMDU0LCAwLjAwMTA1NSwgMC4wMDEwNTYsIDAuMDAxMDU1LCAwLjAwMTA1NCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkExIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI1MDcsIDAuMDAyNTA4LCAwLjAwMjUwOCwgMC4wMDI1MDgsIDAuMDAyNTA3LCAwLjAwMjUwNSwgMC4wMDI1MDQiLCBcCi0gICAgICAgICAgIjAuMDAyNTA5LCAwLjAwMjUxMSwgMC4wMDI1MTIsIDAuMDAyNTEyLCAwLjAwMjUxNCwgMC4wMDI1MDksIDAuMDAyNTA4IiwgXAotICAgICAgICAgICIwLjAwMjUwNSwgMC4wMDI1MDgsIDAuMDAyNTEyLCAwLjAwMjUxMiwgMC4wMDI1MTMsIDAuMDAyNTEyLCAwLjAwMjUxIiwgXAotICAgICAgICAgICIwLjAwMjUwMiwgMC4wMDI1MDYsIDAuMDAyNTExLCAwLjAwMjUxMiwgMC4wMDI1MTMsIDAuMDAyNTEyLCAwLjAwMjUxMSIsIFwKLSAgICAgICAgICAiMC4wMDI0OTgsIDAuMDAyNTAzLCAwLjAwMjUxMSwgMC4wMDI1MTMsIDAuMDAyNTEyLCAwLjAwMjUxLCAwLjAwMjUxIiwgXAotICAgICAgICAgICIwLjAwMjQ5MiwgMC4wMDI0OTksIDAuMDAyNTA5LCAwLjAwMjUxMSwgMC4wMDI1MTEsIDAuMDAyNTExLCAwLjAwMjUxIiwgXAotICAgICAgICAgICIwLjAwMjQ4OSwgMC4wMDI0OTYsIDAuMDAyNTA3LCAwLjAwMjUxLCAwLjAwMjUxLCAwLjAwMjUxLCAwLjAwMjUxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxMDc1LCAwLjAwMTA3NSwgMC4wMDEwNzQsIDAuMDAxMDczLCAwLjAwMTA3MywgMC4wMDEwNywgMC4wMDEwNjgiLCBcCi0gICAgICAgICAgIjAuMDAxMDYzLCAwLjAwMTA2MywgMC4wMDEwNjUsIDAuMDAxMDY0LCAwLjAwMTA2MywgMC4wMDEwNjEsIDAuMDAxMDYiLCBcCi0gICAgICAgICAgIjAuMDAxMDU0LCAwLjAwMTA1NywgMC4wMDEwNjEsIDAuMDAxMDYsIDAuMDAxMDYsIDAuMDAxMDU4LCAwLjAwMTA1NyIsIFwKLSAgICAgICAgICAiMC4wMDEwNDgsIDAuMDAxMDUyLCAwLjAwMTA1OSwgMC4wMDEwNTksIDAuMDAxMDU5LCAwLjAwMTA1NywgMC4wMDEwNTYiLCBcCi0gICAgICAgICAgIjAuMDAxMDQ0LCAwLjAwMTA0OSwgMC4wMDEwNTYsIDAuMDAxMDU4LCAwLjAwMTA1NywgMC4wMDEwNTYsIDAuMDAxMDU1IiwgXAotICAgICAgICAgICIwLjAwMTAzNywgMC4wMDEwNDQsIDAuMDAxMDU0LCAwLjAwMTA1NiwgMC4wMDEwNTYsIDAuMDAxMDU1LCAwLjAwMTA1NCIsIFwKLSAgICAgICAgICAiMC4wMDEwMzMsIDAuMDAxMDM5LCAwLjAwMTA1MiwgMC4wMDEwNTQsIDAuMDAxMDU1LCAwLjAwMTA1NCwgMC4wMDEwNTMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyMDAyLCAwLjAwMjAwMiwgMC4wMDIwMDIsIDAuMDAyMDAxLCAwLjAwMiwgMC4wMDE5OTcsIDAuMDAxOTk2IiwgXAotICAgICAgICAgICIwLjAwMTk5MywgMC4wMDE5OTQsIDAuMDAxOTk1LCAwLjAwMTk5NCwgMC4wMDE5OTQsIDAuMDAxOTkxLCAwLjAwMTk5IiwgXAotICAgICAgICAgICIwLjAwMTk4OCwgMC4wMDE5OTEsIDAuMDAxOTkzLCAwLjAwMTk5MiwgMC4wMDE5OTIsIDAuMDAxOTg5LCAwLjAwMTk4OCIsIFwKLSAgICAgICAgICAiMC4wMDE5ODQsIDAuMDAxOTg4LCAwLjAwMTk5MiwgMC4wMDE5OTIsIDAuMDAxOTksIDAuMDAxOTg5LCAwLjAwMTk4NyIsIFwKLSAgICAgICAgICAiMC4wMDE5ODIsIDAuMDAxOTg2LCAwLjAwMTk5LCAwLjAwMTk5MSwgMC4wMDE5OSwgMC4wMDE5ODcsIDAuMDAxOTg3IiwgXAotICAgICAgICAgICIwLjAwMTk3NywgMC4wMDE5ODIsIDAuMDAxOTg5LCAwLjAwMTk5LCAwLjAwMTk4OSwgMC4wMDE5ODgsIDAuMDAxOTg3IiwgXAotICAgICAgICAgICIwLjAwMTk3NSwgMC4wMDE5OCwgMC4wMDE5ODgsIDAuMDAxOTg5LCAwLjAwMTk4OSwgMC4wMDE5ODcsIDAuMDAxOTg2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwMzM4LCAwLjAwMDMzOCwgMC4wMDAzMzksIDAuMDAwMzQsIDAuMDAwMzQsIDAuMDAwMzQsIDAuMDAwMzQiLCBcCi0gICAgICAgICAgIjAuMDAwMzQzLCAwLjAwMDM0NywgMC4wMDAzNTEsIDAuMDAwMzUyLCAwLjAwMDM1MywgMC4wMDAzNTMsIDAuMDAwMzUzIiwgXAotICAgICAgICAgICIwLjAwMDMzOSwgMC4wMDAzNDUsIDAuMDAwMzUzLCAwLjAwMDM1NSwgMC4wMDAzNTYsIDAuMDAwMzU3LCAwLjAwMDM1NyIsIFwKLSAgICAgICAgICAiMC4wMDAzMzMsIDAuMDAwMzQxLCAwLjAwMDM1MywgMC4wMDAzNTUsIDAuMDAwMzU3LCAwLjAwMDM1OCwgMC4wMDAzNTgiLCBcCi0gICAgICAgICAgIjAuMDAwMzI2LCAwLjAwMDMzNiwgMC4wMDAzNTEsIDAuMDAwMzU1LCAwLjAwMDM1NywgMC4wMDAzNTgsIDAuMDAwMzU5IiwgXAotICAgICAgICAgICIwLjAwMDMxNywgMC4wMDAzMjksIDAuMDAwMzQ5LCAwLjAwMDM1MywgMC4wMDAzNTYsIDAuMDAwMzU4LCAwLjAwMDM1OCIsIFwKLSAgICAgICAgICAiMC4wMDAzMSwgMC4wMDAzMjQsIDAuMDAwMzQ2LCAwLjAwMDM1MiwgMC4wMDAzNTUsIDAuMDAwMzU3LCAwLjAwMDM1OCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIxIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDE2NTcsIDAuMDAxNjU4LCAwLjAwMTY1OCwgMC4wMDE2NTgsIDAuMDAxNjU3LCAwLjAwMTY1NiwgMC4wMDE2NTQiLCBcCi0gICAgICAgICAgIjAuMDAxNjU3LCAwLjAwMTY1OSwgMC4wMDE2NjIsIDAuMDAxNjYzLCAwLjAwMTY2MywgMC4wMDE2NjEsIDAuMDAxNjYiLCBcCi0gICAgICAgICAgIjAuMDAxNjUxLCAwLjAwMTY1NSwgMC4wMDE2NjEsIDAuMDAxNjYxLCAwLjAwMTY2MiwgMC4wMDE2NjEsIDAuMDAxNjYiLCBcCi0gICAgICAgICAgIjAuMDAxNjQ2LCAwLjAwMTY1MiwgMC4wMDE2NiwgMC4wMDE2NjEsIDAuMDAxNjYsIDAuMDAxNjYxLCAwLjAwMTY2MSIsIFwKLSAgICAgICAgICAiMC4wMDE2NCwgMC4wMDE2NDgsIDAuMDAxNjU4LCAwLjAwMTY2LCAwLjAwMTY2LCAwLjAwMTY2MSwgMC4wMDE2NiIsIFwKLSAgICAgICAgICAiMC4wMDE2MzMsIDAuMDAxNjQyLCAwLjAwMTY1NiwgMC4wMDE2NTksIDAuMDAxNjYsIDAuMDAxNjYsIDAuMDAxNjU5IiwgXAotICAgICAgICAgICIwLjAwMTYyOSwgMC4wMDE2MzgsIDAuMDAxNjU0LCAwLjAwMTY1NywgMC4wMDE2NTksIDAuMDAxNjU5LCAwLjAwMTY1OSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDMzNywgMC4wMDAzMzgsIDAuMDAwMzM5LCAwLjAwMDMzOSwgMC4wMDAzMzksIDAuMDAwMzQsIDAuMDAwMzQiLCBcCi0gICAgICAgICAgIjAuMDAwMzQyLCAwLjAwMDM0NiwgMC4wMDAzNTEsIDAuMDAwMzUyLCAwLjAwMDM1MywgMC4wMDAzNTMsIDAuMDAwMzUzIiwgXAotICAgICAgICAgICIwLjAwMDMzNywgMC4wMDAzNDQsIDAuMDAwMzUzLCAwLjAwMDM1NSwgMC4wMDAzNTYsIDAuMDAwMzU3LCAwLjAwMDM1OCIsIFwKLSAgICAgICAgICAiMC4wMDAzMjksIDAuMDAwMzM5LCAwLjAwMDM1MiwgMC4wMDAzNTUsIDAuMDAwMzU3LCAwLjAwMDM1OCwgMC4wMDAzNTkiLCBcCi0gICAgICAgICAgIjAuMDAwMzIzLCAwLjAwMDMzNCwgMC4wMDAzNTEsIDAuMDAwMzU1LCAwLjAwMDM1NywgMC4wMDAzNTksIDAuMDAwMzU5IiwgXAotICAgICAgICAgICIwLjAwMDMxNCwgMC4wMDAzMjcsIDAuMDAwMzQ4LCAwLjAwMDM1MywgMC4wMDAzNTYsIDAuMDAwMzU4LCAwLjAwMDM1OSIsIFwKLSAgICAgICAgICAiMC4wMDAzMDcsIDAuMDAwMzIxLCAwLjAwMDM0NiwgMC4wMDAzNTEsIDAuMDAwMzU1LCAwLjAwMDM1OCwgMC4wMDAzNTkiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogREZGU0hRWDEgKgotICogLS0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKERGRlNIUVgxKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMjkxMjE3OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIGZmIChOMzUsUUJJTlQpIHsKLSAgICBuZXh0X3N0YXRlIDogIkQiOwotICAgIGNsb2NrZWRfb24gOiAiQ0siOwotICAgIHByZXNldCA6ICIoIVNOKSI7Ci0gIH0KLSAgcGluKENLKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA1Nzg4ODE7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNTc4NjE3OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDU3ODg4MTsKLSAgICBjbG9jayA6IHRydWU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyNDMsIDAuMDAyNDIsIDAuMDAyNDA5LCAwLjAwMjQwMywgMC4wMDIzOTksIDAuMDAyMzkxLCAwLjAwMjM4OCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNjY4NywgMC4wMDY2NzgsIDAuMDA2NjY3LCAwLjAwNjY1OCwgMC4wMDY2NTEsIDAuMDA2NjQsIDAuMDA2NjM1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRCZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjMzMDQwOCwgMC4zNDE5NjksIDAuMzU3MzAyLCAwLjM3Mjc0NiwgMC4zODgyMDksIDAuNDEyNjkxLCAwLjQzMzgyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4yNDY2NjksIDAuMjU3OTg0LCAwLjI3MzE3OSwgMC4yODc5NjMsIDAuMzAyNzYyLCAwLjMyNTk4NiwgMC4zNDUzMjgiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEQpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDcyMDk1NjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA3MTgwMjQ7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNzIwOTU2OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjgyNCwgMC4wMDI4MDcsIDAuMDAyNzk1LCAwLjAwMjc4NywgMC4wMDI3ODIsIDAuMDAyNzcyLCAwLjAwMjc2NyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzEwNywgMC4wMDMwOTgsIDAuMDAzMDkyLCAwLjAwMzA4NywgMC4wMDMwODMsIDAuMDAzMDc4LCAwLjAwMzA3NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJTTiA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMzc1LCAtMC4wMjYyNSwgLTAuMDEzNzUsIC0wLjAwNzUsIDAuMDA1LCAwLjAyMTI1LCAwLjAzIiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDM3NSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAuMDEsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjA2MTI1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgLTAuMDAyNSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDgsIC0wLjA2ODc1LCAtMC4wNTYyNSwgLTAuMDQzNzUsIC0wLjAzMTI1LCAtMC4wMTUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wOTI1LCAtMC4wODEyNSwgLTAuMDY4NzUsIC0wLjA1NjI1LCAtMC4wNDM3NSwgLTAuMDI3NSwgLTAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjEwODc1LCAtMC4xMDM3NSwgLTAuMDkxMjUsIC0wLjA3ODc1LCAtMC4wNjYyNSwgLTAuMDUsIC0wLjAzNSIsIFwKLSAgICAgICAgICAiLTAuMTMsIC0wLjExODc1LCAtMC4xMDYyNSwgLTAuMDkzNzUsIC0wLjA4MTI1LCAtMC4wNjUsIC0wLjA1NjI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjI1LCAwLjA3Mzc1LCAwLjA4NjI1LCAwLjA5ODc1LCAwLjExNzUsIDAuMTQsIDAuMTYxMjUiLCBcCi0gICAgICAgICAgIjAuMDUxMjUsIDAuMDYyNSwgMC4wNzUsIDAuMDg3NSwgMC4xMDYyNSwgMC4xMjg3NSwgMC4xNSIsIFwKLSAgICAgICAgICAiMC4wMzI1LCAwLjA0Mzc1LCAwLjA2MjUsIDAuMDc1LCAwLjA5Mzc1LCAwLjExNjI1LCAwLjEzNzUiLCBcCi0gICAgICAgICAgIjAuMDIsIDAuMDMxMjUsIDAuMDUsIDAuMDYyNSwgMC4wODEyNSwgMC4xMDM3NSwgMC4xMjUiLCBcCi0gICAgICAgICAgIjAuMDEzNzUsIDAuMDI1LCAwLjAzNzUsIDAuMDU2MjUsIDAuMDY4NzUsIDAuMDkxMjUsIDAuMTEyNSIsIFwKLSAgICAgICAgICAiLTAuMDAyNSwgMC4wMDg3NSwgMC4wMjc1LCAwLjA0LCAwLjA1MjUsIDAuMDc1LCAwLjA5NjI1IiwgXAotICAgICAgICAgICItMC4wMTEyNSwgMCwgMC4wMTI1LCAwLjAyNSwgMC4wNDM3NSwgMC4wNjYyNSwgMC4wODc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJTTiA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODc1LCAwLjA3NjI1LCAwLjA2Mzc1LCAwLjA1MTI1LCAwLjAzODc1LCAwLjAyMjUsIDAuMDA3NSIsIFwKLSAgICAgICAgICAiMC4wOTg3NSwgMC4wODc1LCAwLjA3NSwgMC4wNjI1LCAwLjA1LCAwLjAzMzc1LCAwLjAxODc1IiwgXAotICAgICAgICAgICIwLjExMTI1LCAwLjEsIDAuMDg3NSwgMC4wNzUsIDAuMDYyNSwgMC4wNDYyNSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4xMywgMC4xMTI1LCAwLjEsIDAuMDg3NSwgMC4wNzUsIDAuMDU4NzUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMTQyNSwgMC4xMzEyNSwgMC4xMTI1LCAwLjEsIDAuMDg3NSwgMC4wNzEyNSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiMC4xNjUsIDAuMTQ3NSwgMC4xMzUsIDAuMTIyNSwgMC4xMSwgMC4wOTM3NSwgMC4wNzg3NSIsIFwKLSAgICAgICAgICAiMC4xOCwgMC4xNjg3NSwgMC4xNTYyNSwgMC4xMzc1LCAwLjEyNSwgMC4xMDg3NSwgMC4xIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc1LCAwLjA2Mzc1LCAwLjA1MTI1LCAwLjAzMjUsIDAuMDEzNzUsIC0wLjAwODc1LCAtMC4wMyIsIFwKLSAgICAgICAgICAiMC4wODYyNSwgMC4wNzUsIDAuMDYyNSwgMC4wNDM3NSwgMC4wMjUsIDAuMDAyNSwgLTAuMDI1IiwgXAotICAgICAgICAgICIwLjEwNSwgMC4wODc1LCAwLjA3NSwgMC4wNTYyNSwgMC4wMzc1LCAwLjAxNSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMTExMjUsIDAuMSwgMC4wODc1LCAwLjA2ODc1LCAwLjA1LCAwLjAyNzUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMTIzNzUsIDAuMTEyNSwgMC4xLCAwLjA4MTI1LCAwLjA2MjUsIDAuMDQsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4xNDYyNSwgMC4xMzUsIDAuMTE2MjUsIDAuMDk3NSwgMC4wODUsIDAuMDU2MjUsIDAuMDM1IiwgXAotICAgICAgICAgICIwLjE2MTI1LCAwLjE1LCAwLjEzMTI1LCAwLjExMjUsIDAuMSwgMC4wNzEyNSwgMC4wNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjExOTgxMjsKLSAgICBmdW5jdGlvbiA6ICJOMzUiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5vbl91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcmlzaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI2NTU1OCwgMC4zMDgzMTUsIDAuNTUwMjM2LCAwLjc2Mzg0OCwgMS4wNDg0MSwgMS42MTc3MiwgMS45NzMzNyIsIFwKLSAgICAgICAgICAiMC4yNzc3MDYsIDAuMzIwNDU1LCAwLjU2MjQzNCwgMC43NzU5ODYsIDEuMDYwNTksIDEuNjI5ODUsIDEuOTg1NTgiLCBcCi0gICAgICAgICAgIjAuMjkyNjQsIDAuMzM1Mzk2LCAwLjU3NzM3MSwgMC43OTA4NTUsIDEuMDc1NTYsIDEuNjQ0NzgsIDIuMDAwNTQiLCBcCi0gICAgICAgICAgIjAuMzA4MTEyLCAwLjM1MDg2OCwgMC41OTI4NDMsIDAuODA2MzI1LCAxLjA5MTA0LCAxLjY2MDIxLCAyLjAxNjAxIiwgXAotICAgICAgICAgICIwLjMyMzY1MSwgMC4zNjY0MDcsIDAuNjA4MzgxLCAwLjgyMTg2NCwgMS4xMDY1NywgMS42NzU4MSwgMi4wMzE1NSIsIFwKLSAgICAgICAgICAiMC4zNDc4MDcsIDAuMzkwNTYzLCAwLjYzMjUzOCwgMC44NDYwMjEsIDEuMTMwNzMsIDEuNjk5OTYsIDIuMDU1NyIsIFwKLSAgICAgICAgICAiMC4zNjg5OCwgMC40MTE3MzYsIDAuNjUzNzEyLCAwLjg2NzI2NiwgMS4xNTE5MSwgMS43MjExMiwgMi4wNzY5Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE1ODI0NywgMC4yNDQxOTQsIDAuNzM1Nzc5LCAxLjE3MTA3LCAxLjc0Nzc1LCAyLjkwNDU0LCAzLjYzNDU1IiwgXAotICAgICAgICAgICIwLjE1Nzk4MSwgMC4yNDQxNCwgMC43MzU5MzksIDEuMTcxMDcsIDEuNzQ3MjYsIDIuOTA0MDksIDMuNjM0ODQiLCBcCi0gICAgICAgICAgIjAuMTU4MjU3LCAwLjI0NDE4MiwgMC43MzU2NCwgMS4xNzAxMywgMS43NTA4OCwgMi45MDQwNSwgMy42Mjk0NSIsIFwKLSAgICAgICAgICAiMC4xNTgyNTgsIDAuMjQ0MTgsIDAuNzM1Nzc2LCAxLjE3MDcsIDEuNzUwODgsIDIuOTA1NjIsIDMuNjI2MjYiLCBcCi0gICAgICAgICAgIjAuMTU4MjM3LCAwLjI0NDE3OCwgMC43MzU3MjMsIDEuMTcwMzcsIDEuNzUwODYsIDIuOTA0MzQsIDMuNjI5ODYiLCBcCi0gICAgICAgICAgIjAuMTU4MjU4LCAwLjI0NDE4MiwgMC43MzU2OTMsIDEuMTcwMjMsIDEuNzUwODgsIDIuOTA0MDEsIDMuNjI5MzciLCBcCi0gICAgICAgICAgIjAuMTU4MjQzLCAwLjI0NDE3NywgMC43MzU5NjEsIDEuMTcxMDIsIDEuNzUwODUsIDIuOTA0MTcsIDMuNjI3MDkiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzMwNDA4LCAwLjM3OTg4LCAwLjY1OTc0NiwgMC45MDY1OTQsIDEuMjM1NzMsIDEuODk0MDQsIDIuMzA1NDMiLCBcCi0gICAgICAgICAgIjAuMzQxOTY5LCAwLjM5MTQ0MywgMC42NzEyODgsIDAuOTE4MTU4LCAxLjI0NzMyLCAxLjkwNTU2LCAyLjMxNzA0IiwgXAotICAgICAgICAgICIwLjM1NzMwMiwgMC40MDY3NzcsIDAuNjg2NjM0LCAwLjkzMzU3LCAxLjI2MjYzLCAxLjkyMDk0LCAyLjMzMjI3IiwgXAotICAgICAgICAgICIwLjM3Mjc0NiwgMC40MjIyMTksIDAuNzAyMDY2LCAwLjk0ODkzNCwgMS4yNzgxMSwgMS45MzYzNCwgMi4zNDc4MSIsIFwKLSAgICAgICAgICAiMC4zODgyMDksIDAuNDM3Njg1LCAwLjcxNzU0NCwgMC45NjQ0NjksIDEuMjkzNTQsIDEuOTUxODUsIDIuMzYzMTYiLCBcCi0gICAgICAgICAgIjAuNDEyNjkxLCAwLjQ2MjE2NSwgMC43NDIwMjIsIDAuOTg4ODgxLCAxLjMxODE2LCAxLjk3NjM4LCAyLjM4Nzc1IiwgXAotICAgICAgICAgICIwLjQzMzgyLCAwLjQ4MzI5NywgMC43NjMxMzgsIDEuMDEwMDIsIDEuMzM5MTcsIDEuOTk3NDQsIDIuNDA4ODYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTc3OTA4LCAwLjI3NDczOSwgMC44MzIwMzEsIDEuMzIzODQsIDEuOTc1OTcsIDMuMjgwNDgsIDQuMDk4OCIsIFwKLSAgICAgICAgICAiMC4xNzc5LCAwLjI3NDc0NCwgMC44MzIwMDEsIDEuMzIzODEsIDEuOTc4NTEsIDMuMjg3ODUsIDQuMTAyMzciLCBcCi0gICAgICAgICAgIjAuMTc3Nzc4LCAwLjI3NDczLCAwLjgzMTkxLCAxLjMyMzQ0LCAxLjk3NTU2LCAzLjI4MjM5LCA0LjEwNDg3IiwgXAotICAgICAgICAgICIwLjE3NzksIDAuMjc0NzQ2LCAwLjgzMiwgMS4zMjM4MSwgMS45Nzg0MSwgMy4yODc4NiwgNC4xMDE5MSIsIFwKLSAgICAgICAgICAiMC4xNzc3LCAwLjI3NDcyNSwgMC44MzE5NzIsIDEuMzIzNDksIDEuOTc1NzQsIDMuMjgxMzEsIDQuMTA0OTQiLCBcCi0gICAgICAgICAgIjAuMTc3ODcxLCAwLjI3NDc0LCAwLjgzMjAzMywgMS4zMjM4NiwgMS45NzM5MywgMy4yODYxNywgNC4wOTkiLCBcCi0gICAgICAgICAgIjAuMTc3NzA4LCAwLjI3NDc0NCwgMC44MzAwNzIsIDEuMzIzODYsIDEuOTc4NjQsIDMuMjg4MjYsIDQuMDk2NyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcHJlc2V0OwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMjkwMDIsIDAuMjcxNzM0LCAwLjUxMzczMiwgMC43MjcyMzIsIDEuMDExODEsIDEuNTgxMTEsIDEuOTM2ODEiLCBcCi0gICAgICAgICAgIjAuMjQwNjA1LCAwLjI4MzM0NSwgMC41MjUzMzMsIDAuNzM4ODMyLCAxLjAyMzQxLCAxLjU5Mjc1LCAxLjk0ODQxIiwgXAotICAgICAgICAgICIwLjI1NDc1MSwgMC4yOTc1MjQsIDAuNTM5NTA2LCAwLjc1MzAwNiwgMS4wMzc1OSwgMS42MDY4MiwgMS45NjI3MyIsIFwKLSAgICAgICAgICAiMC4yNjk1NTksIDAuMzEyMzE0LCAwLjU1NDMyMywgMC43Njc3ODEsIDEuMDUyMzksIDEuNjIxNjMsIDEuOTc3NDYiLCBcCi0gICAgICAgICAgIjAuMjg0MTc2LCAwLjMyNjkwNywgMC41Njg4OTgsIDAuNzgyMzk5LCAxLjA2Njk4LCAxLjYzNjI1LCAxLjk5MTk3IiwgXAotICAgICAgICAgICIwLjMwNzExLCAwLjM0OTgzOSwgMC41OTE4NCwgMC44MDUzMzMsIDEuMDkwMDUsIDEuNjU5MTUsIDIuMDE0OTMiLCBcCi0gICAgICAgICAgIjAuMzI2MzkzLCAwLjM2OTE2OCwgMC42MTExNTUsIDAuODI0NjY1LCAxLjEwOTIzLCAxLjY3ODQ3LCAyLjAzNDM3Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE1NzkyOSwgMC4yNDM0NDgsIDAuNzM2MDg3LCAxLjE3MDc1LCAxLjc0OTU0LCAyLjkxMDQ2LCAzLjYzNTYzIiwgXAotICAgICAgICAgICIwLjE1Nzk1LCAwLjI0MzQ0MiwgMC43MzU2ODEsIDEuMTcwNzYsIDEuNzQ5ODQsIDIuOTEwMzcsIDMuNjM0MzQiLCBcCi0gICAgICAgICAgIjAuMTU3OTQ2LCAwLjI0MzkyNiwgMC43MzYwMSwgMS4xNzA3NywgMS43NDk2NiwgMi45MTAxOCwgMy42MzU1MiIsIFwKLSAgICAgICAgICAiMC4xNTc5NDcsIDAuMjQzOTgyLCAwLjczNjA5MSwgMS4xNzA3NiwgMS43NTAxNCwgMi45MTAzMiwgMy42MzUyMiIsIFwKLSAgICAgICAgICAiMC4xNTc5MDQsIDAuMjQzNDQzLCAwLjczNTY3NiwgMS4xNzA3MywgMS43NDk1MSwgMi45MTAyOCwgMy42MzQ5IiwgXAotICAgICAgICAgICIwLjE1Nzk0OSwgMC4yNDM0NDUsIDAuNzM1NjU4LCAxLjE3MDc5LCAxLjc1MDUxLCAyLjkxMDQ1LCAzLjYzNDk5IiwgXAotICAgICAgICAgICIwLjE1NzkwNywgMC4yNDM0NTIsIDAuNzM1NjkyLCAxLjE3MDgzLCAxLjc1MDY1LCAyLjkwNTcyLCAzLjYzNDk5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNTk0MywgMC4wMDU5NDcsIDAuMDA1OTUyLCAwLjAwNTk1MiwgMC4wMDU5NTQsIDAuMDA1OTU0LCAwLjAwNTk1NCIsIFwKLSAgICAgICAgICAiMC4wMDU5MzMsIDAuMDA1OTM3LCAwLjAwNTk0MiwgMC4wMDU5NDIsIDAuMDA1OTQzLCAwLjAwNTk0MywgMC4wMDU5NDQiLCBcCi0gICAgICAgICAgIjAuMDA1OTIsIDAuMDA1OTI0LCAwLjAwNTkyOSwgMC4wMDU5MywgMC4wMDU5MzEsIDAuMDA1OTMxLCAwLjAwNTkzMSIsIFwKLSAgICAgICAgICAiMC4wMDU5MTEsIDAuMDA1OTE1LCAwLjAwNTkyLCAwLjAwNTkyMSwgMC4wMDU5MjEsIDAuMDA1OTIyLCAwLjAwNTkyMiIsIFwKLSAgICAgICAgICAiMC4wMDU5MDUsIDAuMDA1OTA4LCAwLjAwNTkxMywgMC4wMDU5MTQsIDAuMDA1OTE1LCAwLjAwNTkxNSwgMC4wMDU5MTUiLCBcCi0gICAgICAgICAgIjAuMDA1ODkyLCAwLjAwNTg5NiwgMC4wMDU5MDEsIDAuMDA1OTAyLCAwLjAwNTkwMiwgMC4wMDU5MDMsIDAuMDA1OTAzIiwgXAotICAgICAgICAgICIwLjAwNTg4NiwgMC4wMDU4OSwgMC4wMDU4OTUsIDAuMDA1ODk2LCAwLjAwNTg5OCwgMC4wMDU4OTcsIDAuMDA1ODk3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1NTksIDAuMDA1NTk2LCAwLjAwNTYwNSwgMC4wMDU2MDYsIDAuMDA1NjA3LCAwLjAwNTYwOCwgMC4wMDU2MDgiLCBcCi0gICAgICAgICAgIjAuMDA1NTc3LCAwLjAwNTU4NCwgMC4wMDU1OTIsIDAuMDA1NTk0LCAwLjAwNTU5NSwgMC4wMDU1OTYsIDAuMDA1NTk2IiwgXAotICAgICAgICAgICIwLjAwNTU2NiwgMC4wMDU1NzIsIDAuMDA1NTgxLCAwLjAwNTU4MywgMC4wMDU1ODQsIDAuMDA1NTg0LCAwLjAwNTU4NSIsIFwKLSAgICAgICAgICAiMC4wMDU1NTgsIDAuMDA1NTY0LCAwLjAwNTU3MywgMC4wMDU1NzUsIDAuMDA1NTc2LCAwLjAwNTU3NywgMC4wMDU1NzciLCBcCi0gICAgICAgICAgIjAuMDA1NTUzLCAwLjAwNTU2LCAwLjAwNTU2OCwgMC4wMDU1NywgMC4wMDU1NzEsIDAuMDA1NTcyLCAwLjAwNTU3MiIsIFwKLSAgICAgICAgICAiMC4wMDU1NSwgMC4wMDU1NTYsIDAuMDA1NTY1LCAwLjAwNTU2NywgMC4wMDU1NjgsIDAuMDA1NTY4LCAwLjAwNTU2OSIsIFwKLSAgICAgICAgICAiMC4wMDU1NTUsIDAuMDA1NTYxLCAwLjAwNTU3LCAwLjAwNTU3MiwgMC4wMDU1NzMsIDAuMDA1NTc0LCAwLjAwNTU3NCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDY5NDcsIDAuMDA2OTUxLCAwLjAwNjk1NywgMC4wMDY5NTgsIDAuMDA2OTU4LCAwLjAwNjk1OCwgMC4wMDY5NiIsIFwKLSAgICAgICAgICAiMC4wMDY5MjYsIDAuMDA2OTMxLCAwLjAwNjkzNSwgMC4wMDY5MzYsIDAuMDA2OTM3LCAwLjAwNjkzOCwgMC4wMDY5MzgiLCBcCi0gICAgICAgICAgIjAuMDA2OTEsIDAuMDA2OTE0LCAwLjAwNjkxOSwgMC4wMDY5MiwgMC4wMDY5MjEsIDAuMDA2OTIxLCAwLjAwNjkyMSIsIFwKLSAgICAgICAgICAiMC4wMDY4OTcsIDAuMDA2OTAxLCAwLjAwNjkwNywgMC4wMDY5MDgsIDAuMDA2OTA4LCAwLjAwNjkxLCAwLjAwNjkxMSIsIFwKLSAgICAgICAgICAiMC4wMDY4ODUsIDAuMDA2ODg5LCAwLjAwNjg5NCwgMC4wMDY4OTUsIDAuMDA2ODk3LCAwLjAwNjg5NiwgMC4wMDY4OTciLCBcCi0gICAgICAgICAgIjAuMDA2ODY5LCAwLjAwNjg3MywgMC4wMDY4NzgsIDAuMDA2ODc5LCAwLjAwNjg4LCAwLjAwNjg4MSwgMC4wMDY4OCIsIFwKLSAgICAgICAgICAiMC4wMDY4NTgsIDAuMDA2ODYyLCAwLjAwNjg2NywgMC4wMDY4NjgsIDAuMDA2ODY5LCAwLjAwNjg3MSwgMC4wMDY4NjkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoc2NhbGFyKSB7Ci0gICAgICAgIHZhbHVlcygiMCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oU04pICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTcyMDAxOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTU5ODYyOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTcyMDAxOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDQ4NSwgMC4wMDA0ODQsIDAuMDAwNDg0LCAwLjAwMDQ4NCwgMC4wMDA0ODQsIDAuMDAwNDg0LCAwLjAwMDQ4NCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDQ5MiwgMC4wMDA0ODcsIDAuMDAwNDg3LCAwLjAwMDQ4NywgMC4wMDA0ODcsIDAuMDAwNDg3LCAwLjAwMDQ4NiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQiOwotICAgICAgc2RmX2NvbmQgOiAiRCA9PSAxJ2IwIjsKLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjIyOTAwMiwgMC4yNDA2MDUsIDAuMjU0NzUxLCAwLjI2OTU1OSwgMC4yODQxNzYsIDAuMzA3MTEsIDAuMzI2MzkzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogcmVjb3ZlcnlfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRCI7Ci0gICAgICBzZGZfY29uZCA6ICJEID09IDEnYjAiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHJlY292ZXJ5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjI1LCAtMC4wMDUsIC0wLjAyMzc1LCAtMC4wMzYyNSwgLTAuMDU1LCAtMC4wODM3NSwgLTAuMTA1IiwgXAotICAgICAgICAgICIwLjAxNzUsIDAuMDA2MjUsIC0wLjAxMjUsIC0wLjAyNSwgLTAuMDQzNzUsIC0wLjA3MjUsIC0wLjA5Mzc1IiwgXAotICAgICAgICAgICIwLjAzLCAwLjAxODc1LCAwLCAtMC4wMTI1LCAtMC4wMzEyNSwgLTAuMDUzNzUsIC0wLjA4MTI1IiwgXAotICAgICAgICAgICIwLjA0MjUsIDAuMDMxMjUsIDAuMDE4NzUsIDAsIC0wLjAxODc1LCAtMC4wNDEyNSwgLTAuMDY4NzUiLCBcCi0gICAgICAgICAgIjAuMDU1LCAwLjA0Mzc1LCAwLjAzMTI1LCAwLjAxMjUsIC0wLjAwNjI1LCAtMC4wMjg3NSwgLTAuMDUiLCBcCi0gICAgICAgICAgIjAuMDc3NSwgMC4wNjYyNSwgMC4wNDc1LCAwLjAzNSwgMC4wMTYyNSwgLTAuMDEyNSwgLTAuMDMzNzUiLCBcCi0gICAgICAgICAgIjAuMDk4NzUsIDAuMDgxMjUsIDAuMDY4NzUsIDAuMDUsIDAuMDM3NSwgMC4wMDg3NSwgLTAuMDEyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJlbW92YWxfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRCI7Ci0gICAgICBzZGZfY29uZCA6ICJEID09IDEnYjAiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHJlbW92YWxfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg3NSwgMC4wOTg3NSwgMC4xMTEyNSwgMC4xMywgMC4xNDI1LCAwLjE3MTI1LCAwLjE5MjUiLCBcCi0gICAgICAgICAgIjAuMDc2MjUsIDAuMDg3NSwgMC4xLCAwLjExODc1LCAwLjEzMTI1LCAwLjE2LCAwLjE4MTI1IiwgXAotICAgICAgICAgICIwLjA2Mzc1LCAwLjA3NSwgMC4wODc1LCAwLjEwNjI1LCAwLjExODc1LCAwLjE0NzUsIDAuMTY4NzUiLCBcCi0gICAgICAgICAgIjAuMDUxMjUsIDAuMDYyNSwgMC4wNzUsIDAuMDkzNzUsIDAuMTA2MjUsIDAuMTM1LCAwLjE1NjI1IiwgXAotICAgICAgICAgICIwLjAzODc1LCAwLjA1LCAwLjA2MjUsIDAuMDgxMjUsIDAuMDkzNzUsIDAuMTIyNSwgMC4xNDM3NSIsIFwKLSAgICAgICAgICAiMC4wMTYyNSwgMC4wMjc1LCAwLjA0NjI1LCAwLjA1ODc1LCAwLjA3MTI1LCAwLjEsIDAuMTIxMjUiLCBcCi0gICAgICAgICAgIjAuMDAxMjUsIDAuMDEyNSwgMC4wMjUsIDAuMDQzNzUsIDAuMDU2MjUsIDAuMDc4NzUsIDAuMSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogREZGU1JIUVg4ICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoREZGU1JIUVg4KSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuNjUzMzY1OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIGZmIChOMzUsUUJJTlQpIHsKLSAgICBuZXh0X3N0YXRlIDogIkQiOwotICAgIGNsb2NrZWRfb24gOiAiQ0siOwotICAgIGNsZWFyIDogIighUk4pIjsKLSAgICBwcmVzZXQgOiAiKCFTTikiOwotICAgIGNsZWFyX3ByZXNldF92YXIxIDogSDsKLSAgfQotICBwaW4oQ0spICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDU3MjMzMTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA1NzI7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNTcyMzMxOwotICAgIGNsb2NrIDogdHJ1ZTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDMwOTQsIDAuMDAzMDgzLCAwLjAwMzA3MywgMC4wMDMwNjYsIDAuMDAzMDYxLCAwLjAwMzA1NCwgMC4wMDMwNTEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDY3NDgsIDAuMDA2NzM4LCAwLjAwNjcyOSwgMC4wMDY3MjQsIDAuMDA2NzE5LCAwLjAwNjcxMywgMC4wMDY3MDgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFEJlJOJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9STl9FUV8xX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4zMjAwOTUsIDAuMzMyMDM0LCAwLjM0NzI1LCAwLjM2MjY3MSwgMC4zNzgyNCwgMC40MDI2NjMsIDAuNDIzODY1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4yNjQwNzcsIDAuMjc1NDYyLCAwLjI5MDYxNSwgMC4zMDUzNDcsIDAuMzIwMTAzLCAwLjM0MzM1MiwgMC4zNjI1OTIiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEQpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDczMzQxMjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA3MzA3NTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA3MzM0MTI7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyOTUyLCAwLjAwMjkzNiwgMC4wMDI5MjUsIDAuMDAyOTE3LCAwLjAwMjkxMSwgMC4wMDI5MDMsIDAuMDAyODk4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzMjQ5LCAwLjAwMzI0LCAwLjAwMzIzNCwgMC4wMDMyMjksIDAuMDAzMjI0LCAwLjAwMzIxOSwgMC4wMDMyMTUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiUk4mU04iOwotICAgICAgc2RmX2NvbmQgOiAiUk5fRVFfMV9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAzNzUsIC0wLjAyNjI1LCAtMC4wMiwgLTAuMDA3NSwgMC4wMDUsIDAuMDIxMjUsIDAuMDMiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLjAxLCAwLjAxODc1IiwgXAotICAgICAgICAgICItMC4wNjEyNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIC0wLjAwMjUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA3Mzc1LCAtMC4wNjg3NSwgLTAuMDU2MjUsIC0wLjA0Mzc1LCAtMC4wMzEyNSwgLTAuMDE1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDkyNSwgLTAuMDgxMjUsIC0wLjA2ODc1LCAtMC4wNTYyNSwgLTAuMDQzNzUsIC0wLjAzMzc1LCAtMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMTA4NzUsIC0wLjA5NzUsIC0wLjA5MTI1LCAtMC4wNzg3NSwgLTAuMDY2MjUsIC0wLjA1LCAtMC4wNDEyNSIsIFwKLSAgICAgICAgICAiLTAuMTMsIC0wLjExODc1LCAtMC4xMDYyNSwgLTAuMDkzNzUsIC0wLjA4MTI1LCAtMC4wNjUsIC0wLjA1NjI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjg3NSwgMC4wOCwgMC4wOTI1LCAwLjExMTI1LCAwLjEyMzc1LCAwLjE0NjI1LCAwLjE2NzUiLCBcCi0gICAgICAgICAgIjAuMDU3NSwgMC4wNjg3NSwgMC4wODEyNSwgMC4wOTM3NSwgMC4xMTI1LCAwLjEzNSwgMC4xNTYyNSIsIFwKLSAgICAgICAgICAiMC4wMzg3NSwgMC4wNTYyNSwgMC4wNjg3NSwgMC4wODEyNSwgMC4xLCAwLjEyMjUsIDAuMTQzNzUiLCBcCi0gICAgICAgICAgIjAuMDMyNSwgMC4wNDM3NSwgMC4wNTYyNSwgMC4wNjg3NSwgMC4wODc1LCAwLjExLCAwLjEzMTI1IiwgXAotICAgICAgICAgICIwLjAyLCAwLjAzMTI1LCAwLjA1LCAwLjA2MjUsIDAuMDc1LCAwLjEwMzc1LCAwLjEyNSIsIFwKLSAgICAgICAgICAiMC4wMSwgMC4wMjEyNSwgMC4wMzM3NSwgMC4wNDYyNSwgMC4wNjUsIDAuMDg3NSwgMC4xMDg3NSIsIFwKLSAgICAgICAgICAiMC4wMDEyNSwgMC4wMTI1LCAwLjAyNSwgMC4wMzc1LCAwLjA1LCAwLjA3ODc1LCAwLjEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlJOJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIlJOX0VRXzFfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNDM3NSwgMC4xMzI1LCAwLjExMzc1LCAwLjA5NSwgMC4wNzYyNSwgMC4wNTM3NSwgMC4wMzg3NSIsIFwKLSAgICAgICAgICAiMC4xNTUsIDAuMTQzNzUsIDAuMTI1LCAwLjEwNjI1LCAwLjA4NzUsIDAuMDY1LCAwLjA1IiwgXAotICAgICAgICAgICIwLjE2NzUsIDAuMTU2MjUsIDAuMTM3NSwgMC4xMTg3NSwgMC4xMDYyNSwgMC4wODM3NSwgMC4wNjI1IiwgXAotICAgICAgICAgICIwLjE4LCAwLjE2ODc1LCAwLjE1LCAwLjEzMTI1LCAwLjExODc1LCAwLjA5NjI1LCAwLjA3NSIsIFwKLSAgICAgICAgICAiMC4xOTI1LCAwLjE4MTI1LCAwLjE2MjUsIDAuMTQzNzUsIDAuMTMxMjUsIDAuMTA4NzUsIDAuMDg3NSIsIFwKLSAgICAgICAgICAiMC4yMTUsIDAuMjAzNzUsIDAuMTg1LCAwLjE2NjI1LCAwLjE1Mzc1LCAwLjEyNSwgMC4xMSIsIFwKLSAgICAgICAgICAiMC4yMzYyNSwgMC4yMTg3NSwgMC4yLCAwLjE4NzUsIDAuMTY4NzUsIDAuMTQ2MjUsIDAuMTI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg3NSwgMC4wNzYyNSwgMC4wNjM3NSwgMC4wNDUsIDAuMDI2MjUsIDAuMDAzNzUsIC0wLjAxNzUiLCBcCi0gICAgICAgICAgIjAuMDk4NzUsIDAuMDg3NSwgMC4wNzUsIDAuMDU2MjUsIDAuMDM3NSwgMC4wMTUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICIwLjExMTI1LCAwLjEsIDAuMDg3NSwgMC4wNjg3NSwgMC4wNTYyNSwgMC4wMjc1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICIwLjEyMzc1LCAwLjExMjUsIDAuMSwgMC4wODEyNSwgMC4wNjI1LCAwLjA0LCAwLjAxODc1IiwgXAotICAgICAgICAgICIwLjEzNjI1LCAwLjEyNSwgMC4xMTI1LCAwLjA5Mzc1LCAwLjA3NSwgMC4wNTI1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICIwLjE1ODc1LCAwLjE0NzUsIDAuMTI4NzUsIDAuMTEsIDAuMDk3NSwgMC4wNjg3NSwgMC4wNDc1IiwgXAotICAgICAgICAgICIwLjE3Mzc1LCAwLjE2MjUsIDAuMTQzNzUsIDAuMTI1LCAwLjExMjUsIDAuMDgzNzUsIDAuMDYyNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAxLjAzMTg2OwotICAgIGZ1bmN0aW9uIDogIk4zNSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3NlbnNlIDogbm9uX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiByaXNpbmdfZWRnZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yOTM0NzMsIDAuMzYxMTAzLCAwLjQyNDE5MiwgMC40NjkxNzIsIDAuNTQxMTM3LCAwLjYwNDA5OSwgMC42OTQwMjYiLCBcCi0gICAgICAgICAgIjAuMzA1NDI4LCAwLjM3MzExNCwgMC40MzYyMTYsIDAuNDgxMTk3LCAwLjU1MzE3OSwgMC42MTYxMDgsIDAuNzA2MDUiLCBcCi0gICAgICAgICAgIjAuMzIwNTM1LCAwLjM4ODIyNSwgMC40NTEzMjEsIDAuNDk2MzE0LCAwLjU2ODI4NCwgMC42MzEyMjcsIDAuNzIxMTUzIiwgXAotICAgICAgICAgICIwLjMzNjAyMiwgMC40MDM2NDcsIDAuNDY2NzMsIDAuNTExNzEyLCAwLjU4MzY3NiwgMC42NDY2MjQsIDAuNzM2NTYyIiwgXAotICAgICAgICAgICIwLjM1MTM3NywgMC40MTkwNjcsIDAuNDgyMTYsIDAuNTI3MTQsIDAuNTk5MTEzLCAwLjY2MjA2OSwgMC43NTE5OTIiLCBcCi0gICAgICAgICAgIjAuMzc1NjM3LCAwLjQ0MzM2MSwgMC41MDY0MjcsIDAuNTUxNDIsIDAuNjIzMzQyLCAwLjY4NjMzMiwgMC43NzYyNTYiLCBcCi0gICAgICAgICAgIjAuMzk2NDgyLCAwLjQ2NDEyLCAwLjUyNzIwMywgMC41NzIxODYsIDAuNjQ0MTQ2LCAwLjcwNzA5OSwgMC43OTcwMzciKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDQwODgsIDAuMTYyNDUxLCAwLjI4ODAzNSwgMC4zNzg4MjQsIDAuNTI0NjczLCAwLjY1MjYxMiwgMC44MzUxOTciLCBcCi0gICAgICAgICAgIjAuMDQzODg4LCAwLjE2MjUsIDAuMjg4NDA5LCAwLjM3ODk0NywgMC41MjQ3MDcsIDAuNjUyNTg0LCAwLjgzNTM5MSIsIFwKLSAgICAgICAgICAiMC4wNDM4NywgMC4xNjI0MSwgMC4yODg0MDcsIDAuMzc4ODIzLCAwLjUyNDcxLCAwLjY1MjYzMiwgMC44MzUzMTgiLCBcCi0gICAgICAgICAgIjAuMDQ0Mjc5LCAwLjE2MjQ5MSwgMC4yODgyNDQsIDAuMzc4ODI3LCAwLjUyNDg4MiwgMC42NTI1OTMsIDAuODM1MTI3IiwgXAotICAgICAgICAgICIwLjA0NDA2NSwgMC4xNjI1NDksIDAuMjg4NDA3LCAwLjM3ODgyNCwgMC41MjQ2ODgsIDAuNjUyNjE5LCAwLjgzNTE1OCIsIFwKLSAgICAgICAgICAiMC4wNDQwOTUsIDAuMTYyNTQ0LCAwLjI4ODQxMiwgMC4zNzg4MywgMC41MjM4MzYsIDAuNjUxMzQ5LCAwLjgzNTIyIiwgXAotICAgICAgICAgICIwLjA0NDIzMywgMC4xNjI0OTgsIDAuMjg4MTQ3LCAwLjM3ODgzLCAwLjUyNDg0MywgMC42NTI1OTMsIDAuODM1MTI4Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzIwMDk1LCAwLjM5Nzk5MywgMC40NzI1MTUsIDAuNTI1NjM5LCAwLjYxMDU4OCwgMC42ODQ4OSwgMC43OTEwNDkiLCBcCi0gICAgICAgICAgIjAuMzMyMDM0LCAwLjQwOTg5LCAwLjQ4NDQwNiwgMC41Mzc1MzEsIDAuNjIyNDgzLCAwLjY5Njc4NiwgMC44MDI5NTEiLCBcCi0gICAgICAgICAgIjAuMzQ3MjUsIDAuNDI1MTY4LCAwLjQ5OTY4NSwgMC41NTI3OTcsIDAuNjM3NzQ4LCAwLjcxMjA0NywgMC44MTgyMDYiLCBcCi0gICAgICAgICAgIjAuMzYyNjcxLCAwLjQ0MDU4MywgMC41MTUxMTUsIDAuNTY4MjI5LCAwLjY1MzE3OSwgMC43Mjc0ODEsIDAuODMzNjQiLCBcCi0gICAgICAgICAgIjAuMzc4MjQsIDAuNDU2MTI0LCAwLjUzMDY1NSwgMC41ODM3NjYsIDAuNjY4NzIsIDAuNzQzMDE4LCAwLjg0OTE3NyIsIFwKLSAgICAgICAgICAiMC40MDI2NjMsIDAuNDgwNTQ0LCAwLjU1NTA3MiwgMC42MDgxODIsIDAuNjkzMTUsIDAuNzY3NDM0LCAwLjg3MzU5MyIsIFwKLSAgICAgICAgICAiMC40MjM4NjUsIDAuNTAxNjc3LCAwLjU3NjE5NywgMC42MjkzMTEsIDAuNzE0MjU1LCAwLjc4ODU2LCAwLjg5NDcxOSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0NDQ0NywgMC4xODUwNjIsIDAuMzMxMDUyLCAwLjQzNjgwMywgMC42MDUyNzYsIDAuNzUzMDUsIDAuOTY1MTA5IiwgXAotICAgICAgICAgICIwLjA0NDU1NiwgMC4xODUwMzQsIDAuMzMxMDU0LCAwLjQzNjc2MSwgMC42MDUyNzgsIDAuNzUzMDc0LCAwLjk2NDMzNyIsIFwKLSAgICAgICAgICAiMC4wNDQ0NjQsIDAuMTg0OTUxLCAwLjMzMTA3OCwgMC40MzY3MTIsIDAuNjA2MDEyLCAwLjc1MzA2NCwgMC45NjUxMjUiLCBcCi0gICAgICAgICAgIjAuMDQ0NDU5LCAwLjE4NTA2NiwgMC4zMzEwNzEsIDAuNDM2ODAxLCAwLjYwNTI3NSwgMC43NTMwNTEsIDAuOTY1MTE4IiwgXAotICAgICAgICAgICIwLjA0NDU0NCwgMC4xODUwMjIsIDAuMzMxMDc1LCAwLjQzNjcyMiwgMC42MDUyNzUsIDAuNzUzMDYzLCAwLjk2NTExOSIsIFwKLSAgICAgICAgICAiMC4wNDQ1NSwgMC4xODUwMjYsIDAuMzMxMDc1LCAwLjQzNjcxOSwgMC42MDQ5NDMsIDAuNzUzMDYzLCAwLjk2NTEzNCIsIFwKLSAgICAgICAgICAiMC4wNDQ1NzYsIDAuMTg1MTg2LCAwLjMzMTA3MiwgMC40MzY3NTgsIDAuNjA2MjQsIDAuNzUzMTgxLCAwLjk2NTIyMSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogY2xlYXI7Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzg1NzYyLCAwLjQ2MzUzLCAwLjUzODA2NCwgMC41OTExNjcsIDAuNjc2MTE1LCAwLjc1MDQzMiwgMC44NTY2MDgiLCBcCi0gICAgICAgICAgIjAuMzk3MTQ3LCAwLjQ3NDk4LCAwLjU0OTQ1NywgMC42MDI1OTIsIDAuNjg3NTM3LCAwLjc2MTg2MSwgMC44NjgwNSIsIFwKLSAgICAgICAgICAiMC40MTIxNjgsIDAuNDg5OTIyLCAwLjU2NDQ1OSwgMC42MTc1NjMsIDAuNzAyNTExLCAwLjc3NjgyOSwgMC44ODMwMDUiLCBcCi0gICAgICAgICAgIjAuNDI2OTMyLCAwLjUwNDg1OCwgMC41NzkyNDUsIDAuNjMyMzczLCAwLjcxNzMyNiwgMC43OTE2MjgsIDAuODk3ODA2IiwgXAotICAgICAgICAgICIwLjQ0MTAxOCwgMC41MTg4NDUsIDAuNTkzMzM3LCAwLjY0NjQ1OSwgMC43MzE0MDEsIDAuODA1NzQ5LCAwLjkxMTkwMSIsIFwKLSAgICAgICAgICAiMC40NjM4ODIsIDAuNTQxNzA1LCAwLjYxNjIwMywgMC42NjkzMzksIDAuNzU0MjY0LCAwLjgyODU5NSwgMC45MzQ3NTYiLCBcCi0gICAgICAgICAgIjAuNDgxODc2LCAwLjU1OTcwMSwgMC42MzQxOTUsIDAuNjg3MzA1LCAwLjc3MjI2LCAwLjg0NjU3MSwgMC45NTI3NTIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDQ4MzIsIDAuMTg1MTkxLCAwLjMzMTI0OCwgMC40MzYzOTQsIDAuNjA1MjQ2LCAwLjc1NDg5OCwgMC45NjY4NzciLCBcCi0gICAgICAgICAgIjAuMDQ0ODQ2LCAwLjE4NTE5MywgMC4zMzEyNjgsIDAuNDM2Mzk0LCAwLjYwNTcyOSwgMC43NTQ4OSwgMC45NjgwNTIiLCBcCi0gICAgICAgICAgIjAuMDQ0ODg3LCAwLjE4NTIzMiwgMC4zMzEzNTYsIDAuNDM2NTAzLCAwLjYwNTMwMywgMC43NTQ3MzYsIDAuOTY2ODM2IiwgXAotICAgICAgICAgICIwLjA0NDg4MywgMC4xODUyMTMsIDAuMzMxMzAzLCAwLjQzNjcxNiwgMC42MDUyNTgsIDAuNzU0OTUyLCAwLjk2NzY5OCIsIFwKLSAgICAgICAgICAiMC4wNDQ3OTcsIDAuMTg1MTg2LCAwLjMzMTI1LCAwLjQzNjQ4OCwgMC42MDYzMjgsIDAuNzU0ODk4LCAwLjk2Njg2OSIsIFwKLSAgICAgICAgICAiMC4wNDQ4MTksIDAuMTg1MTg1LCAwLjMzMTIyLCAwLjQzNjQ5MywgMC42MDUyNDYsIDAuNzU0OTAyLCAwLjk2Njk0IiwgXAotICAgICAgICAgICIwLjA0NDgwNCwgMC4xODUyMDQsIDAuMzMxMDk1LCAwLjQzNjQ3MywgMC42MDYxNDIsIDAuNzU0NzM5LCAwLjk2NzgxMyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcHJlc2V0OwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIyNDUzOCwgMC4yOTEyNTUsIDAuMzU0MzUxLCAwLjM5OTMyNiwgMC40NzEyOTMsIDAuNTM0MjYyLCAwLjYyNDI1NSIsIFwKLSAgICAgICAgICAiMC4yMzYyMTgsIDAuMzAyOTI3LCAwLjM2NjAyMywgMC40MTEwMDksIDAuNDgyOTcxLCAwLjU0NTk0MywgMC42MzU5MyIsIFwKLSAgICAgICAgICAiMC4yNTAzNjIsIDAuMzE3MDMyLCAwLjM4MDEyOSwgMC40MjUxMzksIDAuNDk3MDUzLCAwLjU2MDAzMiwgMC42NDk5NjMiLCBcCi0gICAgICAgICAgIjAuMjYzNTc2LCAwLjMzMDI3LCAwLjM5MzM2NSwgMC40MzgzNjMsIDAuNTEwMzE2LCAwLjU3MzI3NCwgMC42NjMyNjIiLCBcCi0gICAgICAgICAgIjAuMjc2MTUyLCAwLjM0Mjg5LCAwLjQwNTk3NywgMC40NTA5NzcsIDAuNTIyODk4LCAwLjU4NTg2NiwgMC42NzU4NjIiLCBcCi0gICAgICAgICAgIjAuMjk1ODgxLCAwLjM2MjU5NSwgMC40MjU2OTIsIDAuNDcwNjY1LCAwLjU0MjYzMiwgMC42MDU1NzYsIDAuNjk1NTk3IiwgXAotICAgICAgICAgICIwLjMxNTMxNSwgMC4zODIwOSwgMC40NDUxNzIsIDAuNDkwMTQzLCAwLjU2MjA2OSwgMC42MjUwNywgMC43MTUwNTUiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDEyODgsIDAuMTYxNjU1LCAwLjI4NzQ3NywgMC4zNzg4NzYsIDAuNTI1MjMzLCAwLjY1MzU1MywgMC44MzcwOTIiLCBcCi0gICAgICAgICAgIjAuMDQxMjAxLCAwLjE2MTY0NSwgMC4yODc1OTEsIDAuMzc4NTk1LCAwLjUyNTI1NiwgMC42NTM5MTEsIDAuODM3Mzg0IiwgXAotICAgICAgICAgICIwLjA0MTU3NiwgMC4xNjE2NjgsIDAuMjg3NDk1LCAwLjM3ODg4MywgMC41MjQ2OTksIDAuNjUzODY4LCAwLjgzNzMyOSIsIFwKLSAgICAgICAgICAiMC4wNDE0ODMsIDAuMTYxNjMsIDAuMjg3NTU5LCAwLjM3ODcxNSwgMC41MjUxNzYsIDAuNjUzNDQzLCAwLjgzNzMxMiIsIFwKLSAgICAgICAgICAiMC4wNDE1MzYsIDAuMTYxNjYzLCAwLjI4NzQ3NCwgMC4zNzg4ODksIDAuNTI1MTY5LCAwLjY1MzU4OSwgMC44MzczMjkiLCBcCi0gICAgICAgICAgIjAuMDQxMzI3LCAwLjE2MTY0MSwgMC4yODc0OTQsIDAuMzc4Njg2LCAwLjUyNDU1MSwgMC42NTM1NzEsIDAuODM3MTgzIiwgXAotICAgICAgICAgICIwLjA0MTE4OSwgMC4xNjE2MzQsIDAuMjg3NTc5LCAwLjM3ODQ5MSwgMC41MjUxODMsIDAuNjUzNjU1LCAwLjgzNzE5NyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjM0NzI5OCwgMC40MjUxMTksIDAuNDk5NjA1LCAwLjU1MjczMSwgMC42Mzc2OCwgMC43MTIwMDUsIDAuODE4MTY1IiwgXAotICAgICAgICAgICIwLjM1OTEyOCwgMC40MzY5NzEsIDAuNTExNDQ5LCAwLjU2NDU4NywgMC42NDk1MjgsIDAuNzIzODU0LCAwLjgzMDA0MyIsIFwKLSAgICAgICAgICAiMC4zNzM1NjQsIDAuNDUxMjUyLCAwLjUyNTc4NCwgMC41Nzg5MjMsIDAuNjYzODU5LCAwLjczODE4MywgMC44NDQzNTMiLCBcCi0gICAgICAgICAgIjAuMzg3MzY2LCAwLjQ2NTA1NywgMC41Mzk1ODgsIDAuNTkyNzI0LCAwLjY3NzY2NCwgMC43NTE5ODcsIDAuODU4MTU2IiwgXAotICAgICAgICAgICIwLjQwMDY4MSwgMC40Nzg1MDQsIDAuNTUyOTk4LCAwLjYwNjEwOCwgMC42OTEwNjQsIDAuNzY1Mzc3LCAwLjg3MTU1OSIsIFwKLSAgICAgICAgICAiMC40MjIyNDUsIDAuNTAwMDg2LCAwLjU3NDYwMywgMC42Mjc3MTgsIDAuNzEyNjcyLCAwLjc4Njk4OCwgMC44OTMxNjQiLCBcCi0gICAgICAgICAgIjAuNDQxMTEsIDAuNTE4ODgxLCAwLjU5MzQwOSwgMC42NDY1MjQsIDAuNzMxNDcyLCAwLjgwNTc4OSwgMC45MTE5NjQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDUxNTQsIDAuMTg1MjA2LCAwLjMzMTMyMywgMC40MzYzODksIDAuNjA1MzA4LCAwLjc1NDkzMSwgMC45NjY4NDEiLCBcCi0gICAgICAgICAgIjAuMDQ1MTMyLCAwLjE4NTE5NCwgMC4zMzEzMTUsIDAuNDM2Mzg2LCAwLjYwNTYxLCAwLjc1NDkyMywgMC45NjgwNzYiLCBcCi0gICAgICAgICAgIjAuMDQ0OTc5LCAwLjE4NTE4OCwgMC4zMzEzMDEsIDAuNDM2Mzg5LCAwLjYwNTMwNiwgMC43NTQ5NzEsIDAuOTY3ODQ5IiwgXAotICAgICAgICAgICIwLjA0NDc2OCwgMC4xODUxODUsIDAuMzMxMzU1LCAwLjQzNjM5OSwgMC42MDUyNiwgMC43NTQ5MDIsIDAuOTY3ODE0IiwgXAotICAgICAgICAgICIwLjA0NDgzLCAwLjE4NTEzNiwgMC4zMzEzNzksIDAuNDM2NTE2LCAwLjYwNjE0OCwgMC43NTQ2ODcsIDAuOTY3ODYyIiwgXAotICAgICAgICAgICIwLjA0NTQ2MSwgMC4xODUxNzksIDAuMzMxMzU1LCAwLjQzNjM5LCAwLjYwNTMzLCAwLjc1NDc3NCwgMC45NjcxOTYiLCBcCi0gICAgICAgICAgIjAuMDQ0ODk1LCAwLjE4NTE0NSwgMC4zMzEzMDgsIDAuNDM2Mzk3LCAwLjYwNTYzLCAwLjc1NDgyLCAwLjk2NjgxNCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMzkwOSwgMC4wMTQxNDcsIDAuMDE0MjA1LCAwLjAxNDIyNSwgMC4wMTQyNDIsIDAuMDE0MjUyLCAwLjAxNDI2NSIsIFwKLSAgICAgICAgICAiMC4wMTM4OSwgMC4wMTQxMzUsIDAuMDE0MTk0LCAwLjAxNDIxMiwgMC4wMTQyMzIsIDAuMDE0MjM5LCAwLjAxNDI0OSIsIFwKLSAgICAgICAgICAiMC4wMTM4NzgsIDAuMDE0MTI0LCAwLjAxNDE4NSwgMC4wMTQyMDIsIDAuMDE0MjIzLCAwLjAxNDIyOSwgMC4wMTQyMzciLCBcCi0gICAgICAgICAgIjAuMDEzODc1LCAwLjAxNDExMywgMC4wMTQxNzIsIDAuMDE0MTkyLCAwLjAxNDIxLCAwLjAxNDIyMywgMC4wMTQyMjMiLCBcCi0gICAgICAgICAgIjAuMDEzODcxLCAwLjAxNDEwOCwgMC4wMTQxNjYsIDAuMDE0MTgsIDAuMDE0MjA0LCAwLjAxNDIwOCwgMC4wMTQyMjYiLCBcCi0gICAgICAgICAgIjAuMDEzODU4LCAwLjAxNDA5NiwgMC4wMTQxNTQsIDAuMDE0MTc0LCAwLjAxNDE5MiwgMC4wMTQyMDQsIDAuMDE0MjA5IiwgXAotICAgICAgICAgICIwLjAxMzg0OSwgMC4wMTQwODgsIDAuMDE0MTQ1LCAwLjAxNDE2NywgMC4wMTQxODUsIDAuMDE0MiwgMC4wMTQxOTgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMzYyMywgMC4wMTM5NTIsIDAuMDE0MDM2LCAwLjAxNDA2NSwgMC4wMTQwOTIsIDAuMDE0MTA2LCAwLjAxNDExOSIsIFwKLSAgICAgICAgICAiMC4wMTM2MTEsIDAuMDEzOTQsIDAuMDE0MDI0LCAwLjAxNDA1MywgMC4wMTQwNzksIDAuMDE0MDkzLCAwLjAxNDEwNyIsIFwKLSAgICAgICAgICAiMC4wMTM2MTEsIDAuMDEzOTM1LCAwLjAxNDAxNiwgMC4wMTQwNDUsIDAuMDE0MDcxLCAwLjAxNDA4NSwgMC4wMTQwOTgiLCBcCi0gICAgICAgICAgIjAuMDEzNTkxLCAwLjAxMzkyLCAwLjAxNDAwNCwgMC4wMTQwMzMsIDAuMDE0MDYsIDAuMDE0MDc0LCAwLjAxNDA4NyIsIFwKLSAgICAgICAgICAiMC4wMTM1OTMsIDAuMDEzOTIsIDAuMDE0MDAzLCAwLjAxNDAzMiwgMC4wMTQwNTksIDAuMDE0MDczLCAwLjAxNDA4NSIsIFwKLSAgICAgICAgICAiMC4wMTM1ODgsIDAuMDEzOTE3LCAwLjAxNCwgMC4wMTQwMjgsIDAuMDE0MDU1LCAwLjAxNDA2OSwgMC4wMTQwODIiLCBcCi0gICAgICAgICAgIjAuMDEzNjAyLCAwLjAxMzkyNCwgMC4wMTQwMDYsIDAuMDE0MDM0LCAwLjAxNDA2MSwgMC4wMTQwNzQsIDAuMDE0MDg3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUk4iOwotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE1NjAxLCAwLjAxNTkyMSwgMC4wMTYwMDksIDAuMDE2MDM5LCAwLjAxNjA2OCwgMC4wMTYwODMsIDAuMDE2MDk3IiwgXAotICAgICAgICAgICIwLjAxNTU5MSwgMC4wMTU5MTQsIDAuMDE2LCAwLjAxNjAzMSwgMC4wMTYwNTksIDAuMDE2MDc1LCAwLjAxNjA4OSIsIFwKLSAgICAgICAgICAiMC4wMTU1ODQsIDAuMDE1OTA1LCAwLjAxNTk5MSwgMC4wMTYwMjIsIDAuMDE2MDUsIDAuMDE2MDY2LCAwLjAxNjA4IiwgXAotICAgICAgICAgICIwLjAxNTU3NCwgMC4wMTU4OTgsIDAuMDE1OTg1LCAwLjAxNjAxNSwgMC4wMTYwNDQsIDAuMDE2MDU5LCAwLjAxNjA3MyIsIFwKLSAgICAgICAgICAiMC4wMTU1NjgsIDAuMDE1ODkxLCAwLjAxNTk3OCwgMC4wMTYwMDgsIDAuMDE2MDM3LCAwLjAxNjA1MiwgMC4wMTYwNjYiLCBcCi0gICAgICAgICAgIjAuMDE1NTY0LCAwLjAxNTg4OCwgMC4wMTU5NzUsIDAuMDE2MDA1LCAwLjAxNjAzNCwgMC4wMTYwNDksIDAuMDE2MDYzIiwgXAotICAgICAgICAgICIwLjAxNTU2MSwgMC4wMTU4ODMsIDAuMDE1OTcsIDAuMDE2LCAwLjAxNjAyOSwgMC4wMTYwNDQsIDAuMDE2MDU4Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3Bvd2VyKHNjYWxhcikgewotICAgICAgICB2YWx1ZXMoIjAiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTUxMzcsIDAuMDE1Mzc5LCAwLjAxNTQzLCAwLjAxNTQ0NiwgMC4wMTU0NjIsIDAuMDE1NDY5LCAwLjAxNTQ3OSIsIFwKLSAgICAgICAgICAiMC4wMTUxMTksIDAuMDE1MzYsIDAuMDE1NDEyLCAwLjAxNTQyOSwgMC4wMTU0NDQsIDAuMDE1NDU4LCAwLjAxNTQ1OCIsIFwKLSAgICAgICAgICAiMC4wMTUxMDYsIDAuMDE1MzQ5LCAwLjAxNTQsIDAuMDE1NDE3LCAwLjAxNTQzMiwgMC4wMTU0MzksIDAuMDE1NDQ1IiwgXAotICAgICAgICAgICIwLjAxNTA5OSwgMC4wMTUzNDEsIDAuMDE1MzkyLCAwLjAxNTQwOSwgMC4wMTU0MjQsIDAuMDE1NDMyLCAwLjAxNTQ0NiIsIFwKLSAgICAgICAgICAiMC4wMTUwOTQsIDAuMDE1MzM2LCAwLjAxNTM4NywgMC4wMTU0MDEsIDAuMDE1NDE5LCAwLjAxNTQyNywgMC4wMTU0MzMiLCBcCi0gICAgICAgICAgIjAuMDE1MDgzLCAwLjAxNTMyNiwgMC4wMTUzNzgsIDAuMDE1Mzk0LCAwLjAxNTQxLCAwLjAxNTQxNywgMC4wMTU0MjYiLCBcCi0gICAgICAgICAgIjAuMDE1MDgyLCAwLjAxNTMyNCwgMC4wMTUzNzUsIDAuMDE1MzkxLCAwLjAxNTQwNSwgMC4wMTU0MTMsIDAuMDE1NDIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMzIxMSwgMC4wMTM1MzQsIDAuMDEzNjIxLCAwLjAxMzY1MSwgMC4wMTM2OCwgMC4wMTM2OTYsIDAuMDEzNzEiLCBcCi0gICAgICAgICAgIjAuMDEzMTkyLCAwLjAxMzUxNCwgMC4wMTM2LCAwLjAxMzYzMSwgMC4wMTM2NiwgMC4wMTM2NzYsIDAuMDEzNjkiLCBcCi0gICAgICAgICAgIjAuMDEzMTc5LCAwLjAxMzUsIDAuMDEzNTg2LCAwLjAxMzYxOCwgMC4wMTM2NDYsIDAuMDEzNjYyLCAwLjAxMzY3NiIsIFwKLSAgICAgICAgICAiMC4wMTMxNywgMC4wMTM0OSwgMC4wMTM1NzcsIDAuMDEzNjA4LCAwLjAxMzYzNywgMC4wMTM2NTMsIDAuMDEzNjY3IiwgXAotICAgICAgICAgICIwLjAxMzE2MywgMC4wMTM0ODYsIDAuMDEzNTcyLCAwLjAxMzYwMiwgMC4wMTM2MzEsIDAuMDEzNjQ2LCAwLjAxMzY2IiwgXAotICAgICAgICAgICIwLjAxMzE1NSwgMC4wMTM0NzYsIDAuMDEzNTYzLCAwLjAxMzU5MywgMC4wMTM2MjMsIDAuMDEzNjM4LCAwLjAxMzY1MiIsIFwKLSAgICAgICAgICAiMC4wMTMxNDksIDAuMDEzNDcsIDAuMDEzNTU3LCAwLjAxMzU4NywgMC4wMTM2MTYsIDAuMDEzNjMyLCAwLjAxMzY0NiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUk4pICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDU1MzIwNDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA1NTI4NDM7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNTUzMjA0OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDY2OSwgMC4wMDA2NTYsIDAuMDAwNjQ2LCAwLjAwMDY0MSwgMC4wMDA2MzcsIDAuMDAwNjM1LCAwLjAwMDYzNCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjA0NywgMC4wMDIwMzgsIDAuMDAyMDMzLCAwLjAwMjAyOSwgMC4wMDIwMjYsIDAuMDAyMDI1LCAwLjAwMjAyMyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQmU04iOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4zODU3NjIsIDAuMzk3MTQ3LCAwLjQxMjE2OCwgMC40MjY5MzIsIDAuNDQxMDE4LCAwLjQ2Mzg4MiwgMC40ODE4NzYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiByZWNvdmVyeV9yaXNpbmc7Ci0gICAgICB3aGVuIDogIkQmU04iOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8xX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQocmVjb3ZlcnlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTI1LCAwLjExMzc1LCAwLjA5NSwgMC4wNzYyNSwgMC4wNjM3NSwgMC4wMzUsIDAuMDEzNzUiLCBcCi0gICAgICAgICAgIjAuMTM2MjUsIDAuMTI1LCAwLjEwNjI1LCAwLjA5Mzc1LCAwLjA3NSwgMC4wNDYyNSwgMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMTU1LCAwLjEzNzUsIDAuMTI1LCAwLjEwNjI1LCAwLjA4NzUsIDAuMDY1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjE2NzUsIDAuMTU2MjUsIDAuMTM3NSwgMC4xMTg3NSwgMC4xMDYyNSwgMC4wNzc1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICIwLjE4LCAwLjE2ODc1LCAwLjE1NjI1LCAwLjEzNzUsIDAuMTE4NzUsIDAuMDk2MjUsIDAuMDc1IiwgXAotICAgICAgICAgICIwLjIwODc1LCAwLjE5MTI1LCAwLjE3ODc1LCAwLjE2LCAwLjE0NzUsIDAuMTE4NzUsIDAuMDk3NSIsIFwKLSAgICAgICAgICAiMC4yMywgMC4yMTI1LCAwLjIsIDAuMTgxMjUsIDAuMTYyNSwgMC4xNCwgMC4xMTg3NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJlY292ZXJ5X3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUQiOwotICAgICAgc2RmX2NvbmQgOiAiRCA9PSAxJ2IwIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChyZWNvdmVyeV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMTI1LCAwLjIyMzc1LCAwLjIzNjI1LCAwLjI0ODc1LCAwLjI2MTI1LCAwLjI4Mzc1LCAwLjI5ODc1IiwgXAotICAgICAgICAgICIwLjIwMTI1LCAwLjIxMjUsIDAuMjI1LCAwLjIzNzUsIDAuMjUsIDAuMjcyNSwgMC4yODc1IiwgXAotICAgICAgICAgICIwLjE4ODc1LCAwLjIsIDAuMjEyNSwgMC4yMjUsIDAuMjM3NSwgMC4yNiwgMC4yNzUiLCBcCi0gICAgICAgICAgIjAuMTc2MjUsIDAuMTg3NSwgMC4yLCAwLjIxMjUsIDAuMjI1LCAwLjI0NzUsIDAuMjYyNSIsIFwKLSAgICAgICAgICAiMC4xNjM3NSwgMC4xNzUsIDAuMTg3NSwgMC4yLCAwLjIxODc1LCAwLjIzNSwgMC4yNSIsIFwKLSAgICAgICAgICAiMC4xNDc1LCAwLjE1ODc1LCAwLjE3NzUsIDAuMTksIDAuMjAyNSwgMC4yMTg3NSwgMC4yNCIsIFwKLSAgICAgICAgICAiMC4xMzg3NSwgMC4xNSwgMC4xNjI1LCAwLjE3NSwgMC4xODc1LCAwLjIxLCAwLjIyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJlbW92YWxfcmlzaW5nOwotICAgICAgd2hlbiA6ICJEJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMV9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHJlbW92YWxfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAzMTI1LCAtMC4wMiwgLTAuMDA3NSwgMC4wMTEyNSwgMC4wMjM3NSwgMC4wNDYyNSwgMC4wNjc1IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIDAsIDAuMDEyNSwgMC4wMzUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIi0wLjA2MTI1LCAtMC4wNDM3NSwgLTAuMDMxMjUsIC0wLjAxODc1LCAwLCAwLjAyMjUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIi0wLjA3Mzc1LCAtMC4wNjI1LCAtMC4wNSwgLTAuMDMxMjUsIC0wLjAxODc1LCAwLjAwMzc1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDg2MjUsIC0wLjA3NSwgLTAuMDYyNSwgLTAuMDUsIC0wLjAzMTI1LCAtMC4wMDg3NSwgMC4wMTI1IiwgXAotICAgICAgICAgICItMC4xMTUsIC0wLjEwMzc1LCAtMC4wODUsIC0wLjA3MjUsIC0wLjA1Mzc1LCAtMC4wMzEyNSwgLTAuMDEiLCBcCi0gICAgICAgICAgIi0wLjEzNjI1LCAtMC4xMjUsIC0wLjEwNjI1LCAtMC4wOTM3NSwgLTAuMDc1LCAtMC4wNTI1LCAtMC4wMzEyNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oU04pICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTgwNjQxOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTgwNjQxOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTgwNjIzOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDQ4NSwgMC4wMDA0ODQsIDAuMDAwNDg0LCAwLjAwMDQ4NCwgMC4wMDA0ODQsIDAuMDAwNDg0LCAwLjAwMDQ4NCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDQ4NiwgMC4wMDA0ODYsIDAuMDAwNDg2LCAwLjAwMDQ4NiwgMC4wMDA0ODYsIDAuMDAwNDg3LCAwLjAwMDQ4NyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQmIVJOIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9STl9FUV8wID09IDEnYjEiOwotICAgICAgZmFsbF9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMjI0NTI4LCAwLjIzNjEyNCwgMC4yNTAwNDMsIDAuMjYzNDAyLCAwLjI3NTkzNSwgMC4yOTU4MTMsIDAuMzE1MzE0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogcmVjb3ZlcnlfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRCZSTiI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fUk5fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChyZWNvdmVyeV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjUsIDAuMDEzNzUsIC0wLjAwNSwgLTAuMDE3NSwgLTAuMDM2MjUsIC0wLjA2NSwgLTAuMDg2MjUiLCBcCi0gICAgICAgICAgIjAuMDM2MjUsIDAuMDI1LCAwLjAwNjI1LCAtMC4wMDYyNSwgLTAuMDI1LCAtMC4wNTM3NSwgLTAuMDc1IiwgXAotICAgICAgICAgICIwLjA0ODc1LCAwLjAzNzUsIDAuMDI1LCAwLjAwNjI1LCAtMC4wMTI1LCAtMC4wMzUsIC0wLjA1NjI1IiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDUsIDAuMDM3NSwgMC4wMTg3NSwgMCwgLTAuMDIyNSwgLTAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMDgsIDAuMDY4NzUsIDAuMDUsIDAuMDMxMjUsIDAuMDE4NzUsIC0wLjAxLCAtMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4xMDI1LCAwLjA4NSwgMC4wNzI1LCAwLjA1Mzc1LCAwLjAzNSwgMC4wMTI1LCAtMC4wMDg3NSIsIFwKLSAgICAgICAgICAiMC4xMTc1LCAwLjEwNjI1LCAwLjA4NzUsIDAuMDc1LCAwLjA1NjI1LCAwLjAyNzUsIDAuMDA2MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiByZW1vdmFsX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUQmUk4iOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1JOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQocmVtb3ZhbF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzUsIDAuMDg2MjUsIDAuMDk4NzUsIDAuMTE3NSwgMC4xMywgMC4xNTg3NSwgMC4xOCIsIFwKLSAgICAgICAgICAiMC4wNjM3NSwgMC4wNzUsIDAuMDg3NSwgMC4xMDYyNSwgMC4xMTg3NSwgMC4xNDc1LCAwLjE2ODc1IiwgXAotICAgICAgICAgICIwLjA1MTI1LCAwLjA2MjUsIDAuMDc1LCAwLjA5Mzc1LCAwLjEwNjI1LCAwLjEyODc1LCAwLjE1IiwgXAotICAgICAgICAgICIwLjAzODc1LCAwLjA1LCAwLjA2MjUsIDAuMDgxMjUsIDAuMDkzNzUsIDAuMTE2MjUsIDAuMTM3NSIsIFwKLSAgICAgICAgICAiMC4wMiwgMC4wMzc1LCAwLjA1LCAwLjA2MjUsIDAuMDgxMjUsIDAuMTAzNzUsIDAuMTI1IiwgXAotICAgICAgICAgICIwLjAwMzc1LCAwLjAxNSwgMC4wMjc1LCAwLjA0NjI1LCAwLjA1ODc1LCAwLjA4MTI1LCAwLjEwMjUiLCBcCi0gICAgICAgICAgIi0wLjAxNzUsIC0wLjAwNjI1LCAwLjAwNjI1LCAwLjAyNSwgMC4wMzc1LCAwLjA2NjI1LCAwLjA4NzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogRURGRlRSWEwgKgotICogLS0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKEVERkZUUlhMKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMzQyODYzOwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIGZmIChOMzAsUUJJTlQpIHsKLSAgICBuZXh0X3N0YXRlIDogIigoKCEoKCFEKSBFKSkgKCEoKCFFKSAoIU4zMCkpKSkgUk4pIjsKLSAgICBjbG9ja2VkX29uIDogIkNLIjsKLSAgfQotICBwaW4oQ0spICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDU3MzA5OTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA1NzI4Mjc7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNTczMDk5OwotICAgIGNsb2NrIDogdHJ1ZTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDE5NzksIDAuMDAxOTY3LCAwLjAwMTk1NywgMC4wMDE5NTEsIDAuMDAxOTQ1LCAwLjAwMTkzOSwgMC4wMDE5MzYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDUzNDEsIDAuMDA1MzMyLCAwLjAwNTMyNSwgMC4wMDUzMiwgMC4wMDUzMTUsIDAuMDA1MzA4LCAwLjAwNTMwNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQmIUUmIVJOIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9FX0VRXzBfQU5fUk5fRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjQwMjE1MiwgMC40MTM5OTgsIDAuNDI5MjI3LCAwLjQ0NDY1NSwgMC40NjAxMTMsIDAuNDg0NTE2LCAwLjUwNTUzOCIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMjA5LCAwLjIyMDE0MSwgMC4yMzUzMTYsIDAuMjUwMjAyLCAwLjI2NDg3NiwgMC4yODc3MjgsIDAuMzA3MTUyIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihEKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA1NzI3NTU7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNTcyMzk4OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDU3Mjc1NTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDQ0NDksIDAuMDA0NDMsIDAuMDA0NDE3LCAwLjAwNDQwOSwgMC4wMDQ0MDUsIDAuMDA0NDAxLCAwLjAwNDQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDM4NjQsIDAuMDAzODUxLCAwLjAwMzg0MSwgMC4wMDM4MzYsIDAuMDAzODMxLCAwLjAwMzgyNywgMC4wMDM4MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiRSZSTiI7Ci0gICAgICBzZGZfY29uZCA6ICJFX0VRXzFfQU5fUk5fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4xOTM3NSwgLTAuMTgyNSwgLTAuMTc2MjUsIC0wLjE2Mzc1LCAtMC4xNTEyNSwgLTAuMTM1LCAtMC4xMjYyNSIsIFwKLSAgICAgICAgICAiLTAuMjExMjUsIC0wLjIsIC0wLjE4NzUsIC0wLjE3NSwgLTAuMTYyNSwgLTAuMTQ2MjUsIC0wLjEzNzUiLCBcCi0gICAgICAgICAgIi0wLjIyMzc1LCAtMC4yMTI1LCAtMC4yLCAtMC4xODc1LCAtMC4xODEyNSwgLTAuMTY1LCAtMC4xNSIsIFwKLSAgICAgICAgICAiLTAuMjM2MjUsIC0wLjIyNSwgLTAuMjEyNSwgLTAuMjA2MjUsIC0wLjE5Mzc1LCAtMC4xNzc1LCAtMC4xNjI1IiwgXAotICAgICAgICAgICItMC4yNTUsIC0wLjI0Mzc1LCAtMC4yMzEyNSwgLTAuMjE4NzUsIC0wLjIwNjI1LCAtMC4xOSwgLTAuMTgxMjUiLCBcCi0gICAgICAgICAgIi0wLjI3MTI1LCAtMC4yNiwgLTAuMjQ3NSwgLTAuMjQxMjUsIC0wLjIyODc1LCAtMC4yMTI1LCAtMC4xOTc1IiwgXAotICAgICAgICAgICItMC4yOTI1LCAtMC4yODEyNSwgLTAuMjY4NzUsIC0wLjI1NjI1LCAtMC4yNDM3NSwgLTAuMjI3NSwgLTAuMjE4NzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wODc1LCAtMC4wNzYyNSwgLTAuMDYzNzUsIC0wLjA0NSwgLTAuMDMyNSwgLTAuMDEsIDAuMDExMjUiLCBcCi0gICAgICAgICAgIi0wLjA5ODc1LCAtMC4wODc1LCAtMC4wNzUsIC0wLjA2MjUsIC0wLjA0Mzc1LCAtMC4wMjEyNSwgMCIsIFwKLSAgICAgICAgICAiLTAuMTE3NSwgLTAuMTA2MjUsIC0wLjA4NzUsIC0wLjA3NSwgLTAuMDU2MjUsIC0wLjAzMzc1LCAtMC4wMTI1IiwgXAotICAgICAgICAgICItMC4xMywgLTAuMTE4NzUsIC0wLjEsIC0wLjA4NzUsIC0wLjA3NSwgLTAuMDQ2MjUsIC0wLjAzMTI1IiwgXAotICAgICAgICAgICItMC4xNDI1LCAtMC4xMzEyNSwgLTAuMTEyNSwgLTAuMSwgLTAuMDg3NSwgLTAuMDU4NzUsIC0wLjA0Mzc1IiwgXAotICAgICAgICAgICItMC4xNTg3NSwgLTAuMTQ3NSwgLTAuMTM1LCAtMC4xMTYyNSwgLTAuMTAzNzUsIC0wLjA4MTI1LCAtMC4wNiIsIFwKLSAgICAgICAgICAiLTAuMTczNzUsIC0wLjE2MjUsIC0wLjE1LCAtMC4xMzEyNSwgLTAuMTE4NzUsIC0wLjA5NjI1LCAtMC4wNzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIkUmUk4iOwotICAgICAgc2RmX2NvbmQgOiAiRV9FUV8xX0FOX1JOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjc1LCAwLjI2Mzc1LCAwLjI1MTI1LCAwLjIzODc1LCAwLjIyNjI1LCAwLjIxLCAwLjIwMTI1IiwgXAotICAgICAgICAgICIwLjI5MjUsIDAuMjc1LCAwLjI2MjUsIDAuMjUsIDAuMjM3NSwgMC4yMjEyNSwgMC4yMTI1IiwgXAotICAgICAgICAgICIwLjMwNSwgMC4yOTM3NSwgMC4yODEyNSwgMC4yNjg3NSwgMC4yNTYyNSwgMC4yNCwgMC4yMjUiLCBcCi0gICAgICAgICAgIjAuMzE3NSwgMC4zMDYyNSwgMC4yOTM3NSwgMC4yODEyNSwgMC4yNjg3NSwgMC4yNTI1LCAwLjIzNzUiLCBcCi0gICAgICAgICAgIjAuMzM2MjUsIDAuMzE4NzUsIDAuMzA2MjUsIDAuMjkzNzUsIDAuMjgxMjUsIDAuMjY1LCAwLjI1NjI1IiwgXAotICAgICAgICAgICIwLjM1MjUsIDAuMzQxMjUsIDAuMzI4NzUsIDAuMzE2MjUsIDAuMzAzNzUsIDAuMjg3NSwgMC4yNzI1IiwgXAotICAgICAgICAgICIwLjM3Mzc1LCAwLjM1NjI1LCAwLjM0Mzc1LCAwLjMzMTI1LCAwLjMxODc1LCAwLjMwMjUsIDAuMjkzNzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNjg3NSwgMC4xNTc1LCAwLjEzODc1LCAwLjEyLCAwLjEwNzUsIDAuMDc4NzUsIDAuMDU3NSIsIFwKLSAgICAgICAgICAiMC4xOCwgMC4xNjg3NSwgMC4xNSwgMC4xMzc1LCAwLjExODc1LCAwLjA5NjI1LCAwLjA3NSIsIFwKLSAgICAgICAgICAiMC4xOTI1LCAwLjE4MTI1LCAwLjE2MjUsIDAuMTUsIDAuMTMxMjUsIDAuMTA4NzUsIDAuMDg3NSIsIFwKLSAgICAgICAgICAiMC4yMDUsIDAuMTkzNzUsIDAuMTgxMjUsIDAuMTYyNSwgMC4xNSwgMC4xMjEyNSwgMC4xIiwgXAotICAgICAgICAgICIwLjIxNzUsIDAuMjA2MjUsIDAuMTkzNzUsIDAuMTc1LCAwLjE2MjUsIDAuMTMzNzUsIDAuMTEyNSIsIFwKLSAgICAgICAgICAiMC4yNCwgMC4yMjg3NSwgMC4yMSwgMC4xOTEyNSwgMC4xNzg3NSwgMC4xNSwgMC4xMjg3NSIsIFwKLSAgICAgICAgICAiMC4yNTUsIDAuMjM3NSwgMC4yMjUsIDAuMjA2MjUsIDAuMTkzNzUsIDAuMTY1LCAwLjE0Mzc1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihFKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDExNTE0MzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDExNTE0MzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDExNTEyNDsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDQ4MzcsIDAuMDA0ODI1LCAwLjAwNDgxNywgMC4wMDQ4MTIsIDAuMDA0ODEsIDAuMDA0ODA3LCAwLjAwNDgwNyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNTUxNCwgMC4wMDU0OTUsIDAuMDA1NDgzLCAwLjAwNTQ3NywgMC4wMDU0NzIsIDAuMDA1NDY2LCAwLjAwNTQ2NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJSTiI7Ci0gICAgICBzZGZfY29uZCA6ICJSTiA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4xMTI1LCAtMC4xMDEyNSwgLTAuMDgyNSwgLTAuMDcsIC0wLjA1MTI1LCAtMC4wMjg3NSwgLTAuMDA3NSIsIFwKLSAgICAgICAgICAiLTAuMTIzNzUsIC0wLjExMjUsIC0wLjA5Mzc1LCAtMC4wODEyNSwgLTAuMDY4NzUsIC0wLjA0LCAtMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMTM2MjUsIC0wLjEyNSwgLTAuMTEyNSwgLTAuMDkzNzUsIC0wLjA4MTI1LCAtMC4wNTI1LCAtMC4wMzc1IiwgXAotICAgICAgICAgICItMC4xNDg3NSwgLTAuMTM3NSwgLTAuMTI1LCAtMC4xMDYyNSwgLTAuMDkzNzUsIC0wLjA3MTI1LCAtMC4wNSIsIFwKLSAgICAgICAgICAiLTAuMTYxMjUsIC0wLjE1LCAtMC4xMzc1LCAtMC4xMjUsIC0wLjEwNjI1LCAtMC4wODM3NSwgLTAuMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMTgzNzUsIC0wLjE3MjUsIC0wLjE2LCAtMC4xNDEyNSwgLTAuMTI4NzUsIC0wLjEwNjI1LCAtMC4wODUiLCBcCi0gICAgICAgICAgIi0wLjIwNSwgLTAuMTkzNzUsIC0wLjE3NSwgLTAuMTYyNSwgLTAuMTQzNzUsIC0wLjEyMTI1LCAtMC4xIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMTE4NzUsIC0wLjEwNzUsIC0wLjA5NSwgLTAuMDc2MjUsIC0wLjA2Mzc1LCAtMC4wNDEyNSwgLTAuMDIiLCBcCi0gICAgICAgICAgIi0wLjEzLCAtMC4xMTg3NSwgLTAuMTA2MjUsIC0wLjA4NzUsIC0wLjA3NSwgLTAuMDUyNSwgLTAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjE0ODc1LCAtMC4xMzc1LCAtMC4xMTg3NSwgLTAuMTA2MjUsIC0wLjA4NzUsIC0wLjA2NSwgLTAuMDQzNzUiLCBcCi0gICAgICAgICAgIi0wLjE2MTI1LCAtMC4xNSwgLTAuMTMxMjUsIC0wLjExODc1LCAtMC4xMDYyNSwgLTAuMDc3NSwgLTAuMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMTczNzUsIC0wLjE2MjUsIC0wLjE1LCAtMC4xMzEyNSwgLTAuMTE4NzUsIC0wLjA5NjI1LCAtMC4wNzUiLCBcCi0gICAgICAgICAgIi0wLjE5LCAtMC4xNzg3NSwgLTAuMTY2MjUsIC0wLjE1Mzc1LCAtMC4xMzUsIC0wLjExMjUsIC0wLjA5MTI1IiwgXAotICAgICAgICAgICItMC4yMDUsIC0wLjE5Mzc1LCAtMC4xODEyNSwgLTAuMTYyNSwgLTAuMTUsIC0wLjEyNzUsIC0wLjEwNjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJSTiI7Ci0gICAgICBzZGZfY29uZCA6ICJSTiA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMTg3NSwgMC4zMDc1LCAwLjI5NSwgMC4yODI1LCAwLjI3LCAwLjI1Mzc1LCAwLjIzODc1IiwgXAotICAgICAgICAgICIwLjMzNjI1LCAwLjMxODc1LCAwLjMwNjI1LCAwLjI5Mzc1LCAwLjI4MTI1LCAwLjI2NSwgMC4yNTYyNSIsIFwKLSAgICAgICAgICAiMC4zNDg3NSwgMC4zMzc1LCAwLjMyNSwgMC4zMTI1LCAwLjMsIDAuMjgzNzUsIDAuMjY4NzUiLCBcCi0gICAgICAgICAgIjAuMzYxMjUsIDAuMzUsIDAuMzM3NSwgMC4zMjUsIDAuMzEyNSwgMC4yOTYyNSwgMC4yODEyNSIsIFwKLSAgICAgICAgICAiMC4zOCwgMC4zNjg3NSwgMC4zNSwgMC4zMzc1LCAwLjMyNSwgMC4zMDg3NSwgMC4zIiwgXAotICAgICAgICAgICIwLjM5NjI1LCAwLjM4NSwgMC4zNzI1LCAwLjM2LCAwLjM0NzUsIDAuMzMxMjUsIDAuMzIyNSIsIFwKLSAgICAgICAgICAiMC40MTc1LCAwLjQwNjI1LCAwLjM4NzUsIDAuMzc1LCAwLjM2MjUsIDAuMzUyNSwgMC4zMzc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjA2MjUsIDAuMTk1LCAwLjE4MjUsIDAuMTcsIDAuMTU3NSwgMC4xNDEyNSwgMC4xMzI1IiwgXAotICAgICAgICAgICIwLjIxMTI1LCAwLjIsIDAuMTkzNzUsIDAuMTgxMjUsIDAuMTY4NzUsIDAuMTUyNSwgMC4xMzc1IiwgXAotICAgICAgICAgICIwLjIzLCAwLjIxODc1LCAwLjIwNjI1LCAwLjE5Mzc1LCAwLjE4MTI1LCAwLjE2NSwgMC4xNSIsIFwKLSAgICAgICAgICAiMC4yNDI1LCAwLjIzMTI1LCAwLjIxODc1LCAwLjIwNjI1LCAwLjE5Mzc1LCAwLjE3NzUsIDAuMTYyNSIsIFwKLSAgICAgICAgICAiMC4yNTUsIDAuMjQzNzUsIDAuMjMxMjUsIDAuMjE4NzUsIDAuMjA2MjUsIDAuMTksIDAuMTc1IiwgXAotICAgICAgICAgICIwLjI3MTI1LCAwLjI2LCAwLjI0NzUsIDAuMjM1LCAwLjIyODc1LCAwLjIxMjUsIDAuMTk3NSIsIFwKLSAgICAgICAgICAiMC4yOTI1LCAwLjI4MTI1LCAwLjI2ODc1LCAwLjI1NjI1LCAwLjI0Mzc1LCAwLjIyNzUsIDAuMjE4NzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFEpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4wNzM1OTg0OwotICAgIGZ1bmN0aW9uIDogIk4zMCI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3NlbnNlIDogbm9uX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiByaXNpbmdfZWRnZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzU5MDc2LCAwLjM4NDQ5NiwgMC42MTMwMjgsIDAuOTkwNzc4LCAxLjM3MDA2LCAyLjI1ODEyLCAyLjc2NTM2IiwgXAotICAgICAgICAgICIwLjM3MDkxNiwgMC4zOTYxNTYsIDAuNjI0ODkyLCAxLjAwMjQ1LCAxLjM4MiwgMi4yNjk4OSwgMi43NzY5OSIsIFwKLSAgICAgICAgICAiMC4zODYxMDQsIDAuNDExMzUsIDAuNjQwNDgyLCAxLjAyMDYxLCAxLjM5NzgxLCAyLjI4NjA3LCAyLjc5MzE0IiwgXAotICAgICAgICAgICIwLjQwMTQ5MiwgMC40MjY3MywgMC42NTU1NDcsIDEuMDMzNDQsIDEuNDEzNTcsIDIuMzAwMjksIDIuODAzMjYiLCBcCi0gICAgICAgICAgIjAuNDE2ODYsIDAuNDQyMTMyLCAwLjY3MTI4NCwgMS4wNTA5OSwgMS40Mjg1OSwgMi4zMTY5MywgMi44MjM5OSIsIFwKLSAgICAgICAgICAiMC40NDEyMjIsIDAuNDY2NDY5LCAwLjY5NTMwMywgMS4wNzMyMywgMS40NTI2MywgMi4zMzk5NywgMi44NDciLCBcCi0gICAgICAgICAgIjAuNDYyMDA1LCAwLjQ4NzM2LCAwLjcxNjUwOSwgMS4wOTU4OSwgMS40NzM4NSwgMi4zNjIxMywgMi44NjkyIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI3OTc4NCwgMC4zMjkxMjUsIDAuNzkzOTQ2LCAxLjU2NTA3LCAyLjM1NTU4LCA0LjEzNTI4LCA1LjE4ODM5IiwgXAotICAgICAgICAgICIwLjI3OTc5OSwgMC4zMjg2NDksIDAuNzk0MDQxLCAxLjU2NjQxLCAyLjM1NTQ1LCA0LjE3MTg3LCA1LjE5MTAxIiwgXAotICAgICAgICAgICIwLjI3OTg2NywgMC4zMzA2ODMsIDAuNzkzNTI3LCAxLjU1MzIyLCAyLjM1NTU1LCA0LjE3MDY3LCA1LjE4Njk5IiwgXAotICAgICAgICAgICIwLjI3OTg4OSwgMC4zMzA2OSwgMC43OTQzMywgMS41NzU5MSwgMi4zNTU2NCwgNC4xNzIyMiwgNS4xNDIxMiIsIFwKLSAgICAgICAgICAiMC4yODAwMTMsIDAuMzMwNzAxLCAwLjc5MzQ5LCAxLjU2NTAzLCAyLjM1NTU1LCA0LjE3MDU3LCA1LjE4NyIsIFwKLSAgICAgICAgICAiMC4yNzk4NjksIDAuMzMwNjgzLCAwLjc5NDQxNSwgMS41NzU4NiwgMi4zNTU0OCwgNC4xNzIyNiwgNS4xNDQ5MyIsIFwKLSAgICAgICAgICAiMC4yNzgyNzMsIDAuMzMwNzA0LCAwLjc5MzUyNCwgMS41NjgzNywgMi4zNTU1NSwgNC4xNzA1NSwgNS4xODY4OSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC40MDM1MTcsIDAuNDMzNTMzLCAwLjcwMDYwMiwgMS4xNDg2NSwgMS41OTYwMywgMi42NDA2NCwgMy4yMzY0OCIsIFwKLSAgICAgICAgICAiMC40MTU0MywgMC40NDUzNzUsIDAuNzEzNDYzLCAxLjE1ODc0LCAxLjYwNzg4LCAyLjY1MjczLCAzLjI0ODQ5IiwgXAotICAgICAgICAgICIwLjQzMDU2MywgMC40NjA1OTksIDAuNzI4NzAzLCAxLjE3Mzk3LCAxLjYyMDQzLCAyLjY2Njg5LCAzLjI2MzcyIiwgXAotICAgICAgICAgICIwLjQ0NjA4OCwgMC40NzYwMzIsIDAuNzQ0MTIsIDEuMTkxNTcsIDEuNjM4NTQsIDIuNjgyNTMsIDMuMjc5MTUiLCBcCi0gICAgICAgICAgIjAuNDYxNDkxLCAwLjQ5MTQ5LCAwLjc2MDM3NywgMS4yMDU1NSwgMS42NTQxMywgMi42OTg1OSwgMy4yOTQ0NSIsIFwKLSAgICAgICAgICAiMC40ODU5MzUsIDAuNTE1ODkzLCAwLjc4NDc4MSwgMS4yMjk4OCwgMS42Nzk0MiwgMi43MjI5OSwgMy4zMTg4NyIsIFwKLSAgICAgICAgICAiMC41MDY5NjcsIDAuNTM2OTIxLCAwLjgwNTgwOSwgMS4yNTAxNSwgMS43MDAwNiwgMi43NDQyNCwgMy4zMzkyMyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMTQ1MzMsIDAuMzcyNTMyLCAwLjkwMTA0NCwgMS43ODUyOCwgMi42NjkxMSwgNC43MzMxOCwgNS45MDkxOSIsIFwKLSAgICAgICAgICAiMC4zMTQ2OTgsIDAuMzcyNzQxLCAwLjkwMTA5OSwgMS43ODY3OSwgMi42NzI5LCA0LjcyOTg1LCA1LjkxNjkxIiwgXAotICAgICAgICAgICIwLjMxNDY4NCwgMC4zNzMxNTQsIDAuOTAxMjY0LCAxLjc4NjMzLCAyLjY3Mjg2LCA0LjczODU5LCA1LjkxNzU5IiwgXAotICAgICAgICAgICIwLjMxNDcwMywgMC4zNzI3NDIsIDAuOTAxMDgxLCAxLjc4NjE0LCAyLjY3MjkxLCA0LjczOTIzLCA1LjkxNjkyIiwgXAotICAgICAgICAgICIwLjMxNDY4NCwgMC4zNzI3MSwgMC45MDEyNjMsIDEuNzg2ODMsIDIuNjcyODQsIDQuNzI4MDMsIDUuOTE3NTgiLCBcCi0gICAgICAgICAgIjAuMzE0Njg2LCAwLjM3MjcwNywgMC45MDEyODMsIDEuNzg2NiwgMi42NzI4MywgNC43Mjc5MywgNS45MTc1MyIsIFwKLSAgICAgICAgICAiMC4zMTQ2OTQsIDAuMzcyNjg0LCAwLjkwMTM4LCAxLjc4NzE1LCAyLjY3MjksIDQuNzMwMjUsIDUuOTE2ODkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyNzY5LCAwLjAwMjc2OSwgMC4wMDI3NjYsIDAuMDAyNzYzLCAwLjAwMjc2MiwgMC4wMDI3NjEsIDAuMDAyNzYiLCBcCi0gICAgICAgICAgIjAuMDAyNzY0LCAwLjAwMjc2MywgMC4wMDI3NiwgMC4wMDI3NTcsIDAuMDAyNzU2LCAwLjAwMjc1NSwgMC4wMDI3NTUiLCBcCi0gICAgICAgICAgIjAuMDAyNzU4LCAwLjAwMjc1OCwgMC4wMDI3NTQsIDAuMDAyNzUxLCAwLjAwMjc1LCAwLjAwMjc0OSwgMC4wMDI3NDkiLCBcCi0gICAgICAgICAgIjAuMDAyNzUzLCAwLjAwMjc1MywgMC4wMDI3NSwgMC4wMDI3NDcsIDAuMDAyNzQ2LCAwLjAwMjc0NSwgMC4wMDI3NDUiLCBcCi0gICAgICAgICAgIjAuMDAyNzUsIDAuMDAyNzUsIDAuMDAyNzQ3LCAwLjAwMjc0NCwgMC4wMDI3NDMsIDAuMDAyNzQyLCAwLjAwMjc0MiIsIFwKLSAgICAgICAgICAiMC4wMDI3NDUsIDAuMDAyNzQ1LCAwLjAwMjc0MiwgMC4wMDI3MzksIDAuMDAyNzM4LCAwLjAwMjczNywgMC4wMDI3MzYiLCBcCi0gICAgICAgICAgIjAuMDAyNzQzLCAwLjAwMjc0MywgMC4wMDI3NCwgMC4wMDI3MzcsIDAuMDAyNzM2LCAwLjAwMjczNCwgMC4wMDI3MzQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDMyOTEsIDAuMDAzMjkyLCAwLjAwMzI5NCwgMC4wMDMyOTUsIDAuMDAzMjk2LCAwLjAwMzI5NiwgMC4wMDMyOTYiLCBcCi0gICAgICAgICAgIjAuMDAzMjg0LCAwLjAwMzI4NSwgMC4wMDMyODgsIDAuMDAzMjg5LCAwLjAwMzI4OSwgMC4wMDMyODksIDAuMDAzMjg5IiwgXAotICAgICAgICAgICIwLjAwMzI3OSwgMC4wMDMyOCwgMC4wMDMyODIsIDAuMDAzMjgzLCAwLjAwMzI4NCwgMC4wMDMyODQsIDAuMDAzMjg0IiwgXAotICAgICAgICAgICIwLjAwMzI3NSwgMC4wMDMyNzYsIDAuMDAzMjc4LCAwLjAwMzI4LCAwLjAwMzI4LCAwLjAwMzI4LCAwLjAwMzI4IiwgXAotICAgICAgICAgICIwLjAwMzI3MywgMC4wMDMyNzQsIDAuMDAzMjc3LCAwLjAwMzI3OCwgMC4wMDMyNzgsIDAuMDAzMjc5LCAwLjAwMzI3OCIsIFwKLSAgICAgICAgICAiMC4wMDMyNzEsIDAuMDAzMjcyLCAwLjAwMzI3NSwgMC4wMDMyNzYsIDAuMDAzMjc2LCAwLjAwMzI3NiwgMC4wMDMyNzYiLCBcCi0gICAgICAgICAgIjAuMDAzMjczLCAwLjAwMzI3NCwgMC4wMDMyNzcsIDAuMDAzMjc4LCAwLjAwMzI3OCwgMC4wMDMyNzgsIDAuMDAzMjc4Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihRTikgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjA3MzkyMDc7Ci0gICAgZnVuY3Rpb24gOiAiUUJJTlQiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5vbl91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcmlzaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjQwMTQ4OCwgMC40MjY3MzUsIDAuNjUzOTc1LCAxLjAzMjU4LCAxLjQxMTIzLCAyLjI5NDc2LCAyLjc5OTc4IiwgXAotICAgICAgICAgICIwLjQxMzM1NywgMC40Mzg1ODQsIDAuNjY1ODE5LCAxLjA0NDQ1LCAxLjQyMzA2LCAyLjMwNjU0LCAyLjgxMTUzIiwgXAotICAgICAgICAgICIwLjQyODU2MiwgMC40NTM4MDIsIDAuNjgxMDM1LCAxLjA1OTY3LCAxLjQzODI3LCAyLjMyMTc2LCAyLjgyNjc1IiwgXAotICAgICAgICAgICIwLjQ0NDAxMiwgMC40NjkyNCwgMC42OTY0NzMsIDEuMDc1MSwgMS40NTM3MSwgMi4zMzcxOSwgMi44NDIxOSIsIFwKLSAgICAgICAgICAiMC40NTk0MzksIDAuNDg0Njg4LCAwLjcxMTkwNCwgMS4wOTA1NCwgMS40NjkxOCwgMi4zNTI3MSwgMi44NTc3MiIsIFwKLSAgICAgICAgICAiMC40ODM4NDMsIDAuNTA5MDkxLCAwLjczNjMxLCAxLjExNDk0LCAxLjQ5MzYxLCAyLjM3NzEyLCAyLjg4MjEyIiwgXAotICAgICAgICAgICIwLjUwNDg5MywgMC41MzAxMjQsIDAuNzU3MzU0LCAxLjEzNjA5LCAxLjUxNDc0LCAyLjM5ODEzLCAyLjkwMjk1Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI3MDM5NiwgMC4zMjE2MTgsIDAuNzgxOTU5LCAxLjU1MzI0LCAyLjMyMjc0LCA0LjExODg2LCA1LjEzODY4IiwgXAotICAgICAgICAgICIwLjI3MDM5LCAwLjMyMTYxNywgMC43ODM1NTcsIDEuNTUwOTUsIDIuMzIyNzIsIDQuMTE4ODcsIDUuMTM4NjciLCBcCi0gICAgICAgICAgIjAuMjcwMzkzLCAwLjMyMTYxOSwgMC43ODM1OTYsIDEuNTUyODgsIDIuMzIyNTUsIDQuMTE4NzUsIDUuMTM4NjciLCBcCi0gICAgICAgICAgIjAuMjcwMzk0LCAwLjMyMTYxNiwgMC43ODM1NTQsIDEuNTUzNjUsIDIuMzIyNzEsIDQuMTE4ODcsIDUuMTM4NjciLCBcCi0gICAgICAgICAgIjAuMjcwMzk0LCAwLjMyMTYxNiwgMC43ODM1OTYsIDEuNTUyOTUsIDIuMzIzMjcsIDQuMTE4NzYsIDUuMTM4NjQiLCBcCi0gICAgICAgICAgIjAuMjcwMzk3LCAwLjMyMTYxNiwgMC43ODM2MDEsIDEuNTUyOTYsIDIuMzIzMDEsIDQuMTE4NzYsIDUuMTM4NjUiLCBcCi0gICAgICAgICAgIjAuMjcwMzkxLCAwLjMyMTYwNywgMC43ODM2MTIsIDEuNTUyODksIDIuMzIzNTMsIDQuMTE4ODIsIDUuMTM4NTEiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuNDAwODIyLCAwLjQzMDUxLCAwLjY5Nzg3NCwgMS4xNDMyMiwgMS41ODg1NywgMi42Mjc5NSwgMy4yMjE5IiwgXAotICAgICAgICAgICIwLjQxMjY2MywgMC40NDIzNjIsIDAuNzA5NzE4LCAxLjE1NTA1LCAxLjYwMDQyLCAyLjYzOTg1LCAzLjIzMzcyIiwgXAotICAgICAgICAgICIwLjQyNzg3OCwgMC40NTc1NywgMC43MjQ5NzUsIDEuMTcwNDYsIDEuNjE1NjgsIDIuNjU1MTQsIDMuMjQ5MDkiLCBcCi0gICAgICAgICAgIjAuNDQzMjM2LCAwLjQ3MjkyOCwgMC43NDAyOTUsIDEuMTg1NjEsIDEuNjMxMDYsIDIuNjcwNDEsIDMuMjY0MTIiLCBcCi0gICAgICAgICAgIjAuNDU4Njc2LCAwLjQ4ODM2NiwgMC43NTU3NjIsIDEuMjAxMjEsIDEuNjQ2NDcsIDIuNjg1OTMsIDMuMjc5ODgiLCBcCi0gICAgICAgICAgIjAuNDgyOTg1LCAwLjUxMjY3NiwgMC43ODAwNDQsIDEuMjI1MzYsIDEuNjcwNzYsIDIuNzEwMTUsIDMuMzA0MDMiLCBcCi0gICAgICAgICAgIjAuNTAzOSwgMC41MzM1ODQsIDAuODAwOTgsIDEuMjQ2MzcsIDEuNjkxNjksIDIuNzMxMTUsIDMuMzI1MDkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzA5MjA4LCAwLjM2Nzc2NywgMC44OTY0NywgMS43NzgwMiwgMi42NiwgNC43MTQ2MiwgNS44ODkyOSIsIFwKLSAgICAgICAgICAiMC4zMDkyMDcsIDAuMzY3NTk1LCAwLjg5NjQ2NiwgMS43NzgwNywgMi42NjAwNSwgNC43MTczNiwgNS44ODY4MyIsIFwKLSAgICAgICAgICAiMC4zMDkyMTcsIDAuMzY3OTAxLCAwLjg5NjIxNiwgMS43NzcxNCwgMi42NTk4MywgNC43MTczNSwgNS44OTE0MSIsIFwKLSAgICAgICAgICAiMC4zMDkyMTcsIDAuMzY3OTAxLCAwLjg5NjQ2NiwgMS43Nzg0LCAyLjY2MDIyLCA0LjcxNzM2LCA1Ljg5MDEiLCBcCi0gICAgICAgICAgIjAuMzA5MjMxLCAwLjM2NzkwMSwgMC44OTYyMSwgMS43Nzc0NSwgMi42NTk4MiwgNC43MTczNSwgNS44OTE0MiIsIFwKLSAgICAgICAgICAiMC4zMDkyMTcsIDAuMzY3OTAxLCAwLjg5NjQ2NiwgMS43Nzg0LCAyLjY2MDA5LCA0LjcxNzM2LCA1Ljg4ODk5IiwgXAotICAgICAgICAgICIwLjMwODk2MywgMC4zNjc4NjIsIDAuODk2MjE2LCAxLjc3Njc4LCAyLjY1OTgzLCA0LjcxNzM0LCA1Ljg5MTA3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzI5MSwgMC4wMDMyOTIsIDAuMDAzMjk0LCAwLjAwMzI5NSwgMC4wMDMyOTYsIDAuMDAzMjk2LCAwLjAwMzI5NiIsIFwKLSAgICAgICAgICAiMC4wMDMyODQsIDAuMDAzMjg1LCAwLjAwMzI4OCwgMC4wMDMyODksIDAuMDAzMjg5LCAwLjAwMzI4OSwgMC4wMDMyODkiLCBcCi0gICAgICAgICAgIjAuMDAzMjc5LCAwLjAwMzI4LCAwLjAwMzI4MiwgMC4wMDMyODMsIDAuMDAzMjg0LCAwLjAwMzI4NCwgMC4wMDMyODQiLCBcCi0gICAgICAgICAgIjAuMDAzMjc1LCAwLjAwMzI3NiwgMC4wMDMyNzgsIDAuMDAzMjgsIDAuMDAzMjgsIDAuMDAzMjgsIDAuMDAzMjgiLCBcCi0gICAgICAgICAgIjAuMDAzMjczLCAwLjAwMzI3NCwgMC4wMDMyNzcsIDAuMDAzMjc4LCAwLjAwMzI3OCwgMC4wMDMyNzksIDAuMDAzMjc4IiwgXAotICAgICAgICAgICIwLjAwMzI3MSwgMC4wMDMyNzIsIDAuMDAzMjc1LCAwLjAwMzI3NiwgMC4wMDMyNzYsIDAuMDAzMjc2LCAwLjAwMzI3NiIsIFwKLSAgICAgICAgICAiMC4wMDMyNzMsIDAuMDAzMjc0LCAwLjAwMzI3NywgMC4wMDMyNzgsIDAuMDAzMjc4LCAwLjAwMzI3OCwgMC4wMDMyNzgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI3NjksIDAuMDAyNzY5LCAwLjAwMjc2NiwgMC4wMDI3NjMsIDAuMDAyNzYyLCAwLjAwMjc2MSwgMC4wMDI3NiIsIFwKLSAgICAgICAgICAiMC4wMDI3NjQsIDAuMDAyNzYzLCAwLjAwMjc2LCAwLjAwMjc1NywgMC4wMDI3NTYsIDAuMDAyNzU1LCAwLjAwMjc1NSIsIFwKLSAgICAgICAgICAiMC4wMDI3NTgsIDAuMDAyNzU4LCAwLjAwMjc1NCwgMC4wMDI3NTEsIDAuMDAyNzUsIDAuMDAyNzQ5LCAwLjAwMjc0OSIsIFwKLSAgICAgICAgICAiMC4wMDI3NTMsIDAuMDAyNzUzLCAwLjAwMjc1LCAwLjAwMjc0NywgMC4wMDI3NDYsIDAuMDAyNzQ1LCAwLjAwMjc0NSIsIFwKLSAgICAgICAgICAiMC4wMDI3NSwgMC4wMDI3NSwgMC4wMDI3NDcsIDAuMDAyNzQ0LCAwLjAwMjc0MywgMC4wMDI3NDIsIDAuMDAyNzQyIiwgXAotICAgICAgICAgICIwLjAwMjc0NSwgMC4wMDI3NDUsIDAuMDAyNzQyLCAwLjAwMjczOSwgMC4wMDI3MzgsIDAuMDAyNzM3LCAwLjAwMjczNiIsIFwKLSAgICAgICAgICAiMC4wMDI3NDMsIDAuMDAyNzQzLCAwLjAwMjc0LCAwLjAwMjczNywgMC4wMDI3MzYsIDAuMDAyNzM0LCAwLjAwMjczNCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUk4pICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDU2Nzg2NTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA1Njc2NTk7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNTY3ODY1OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNTM2MywgMC4wMDUzNDQsIDAuMDA1MzMyLCAwLjAwNTMyNiwgMC4wMDUzMjQsIDAuMDA1MzIyLCAwLjAwNTMyMSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNDY0NiwgMC4wMDQ2MzMsIDAuMDA0NjIyLCAwLjAwNDYxNywgMC4wMDQ2MTMsIDAuMDA0NjEsIDAuMDA0NjA4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEJiFFIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9FX0VRXzAgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMjg3NSwgLTAuMjc2MjUsIC0wLjI2Mzc1LCAtMC4yNTc1LCAtMC4yNDUsIC0wLjIyODc1LCAtMC4yMTM3NSIsIFwKLSAgICAgICAgICAiLTAuMjk4NzUsIC0wLjI4NzUsIC0wLjI4MTI1LCAtMC4yNjg3NSwgLTAuMjU2MjUsIC0wLjI0LCAtMC4yMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMzE3NSwgLTAuMzA2MjUsIC0wLjI5Mzc1LCAtMC4yODEyNSwgLTAuMjY4NzUsIC0wLjI1ODc1LCAtMC4yNDM3NSIsIFwKLSAgICAgICAgICAiLTAuMzMsIC0wLjMxODc1LCAtMC4zMDYyNSwgLTAuMjkzNzUsIC0wLjI4NzUsIC0wLjI3MTI1LCAtMC4yNTYyNSIsIFwKLSAgICAgICAgICAiLTAuMzQ4NzUsIC0wLjMzNzUsIC0wLjMyNSwgLTAuMzEyNSwgLTAuMywgLTAuMjgzNzUsIC0wLjI3NSIsIFwKLSAgICAgICAgICAiLTAuMzY1LCAtMC4zNTM3NSwgLTAuMzQxMjUsIC0wLjMzNSwgLTAuMzIyNSwgLTAuMzA2MjUsIC0wLjI5MTI1IiwgXAotICAgICAgICAgICItMC4zODYyNSwgLTAuMzc1LCAtMC4zNjI1LCAtMC4zNSwgLTAuMzM3NSwgLTAuMzIxMjUsIC0wLjMxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiRCZFIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMV9BTl9FX0VRXzEgPT0gMSdiMSI7Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDYyNSwgLTAuMDUxMjUsIC0wLjAzODc1LCAtMC4wMiwgLTAuMDA3NSwgMC4wMTUsIDAuMDM2MjUiLCBcCi0gICAgICAgICAgIi0wLjA3Mzc1LCAtMC4wNjI1LCAtMC4wNSwgLTAuMDMxMjUsIC0wLjAxODc1LCAwLjAwMzc1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDg2MjUsIC0wLjA3NSwgLTAuMDYyNSwgLTAuMDUsIC0wLjAzMTI1LCAtMC4wMDg3NSwgMC4wMTI1IiwgXAotICAgICAgICAgICItMC4xMDUsIC0wLjA5Mzc1LCAtMC4wNzUsIC0wLjA2MjUsIC0wLjA0Mzc1LCAtMC4wMjEyNSwgMCIsIFwKLSAgICAgICAgICAiLTAuMTE3NSwgLTAuMTA2MjUsIC0wLjA4NzUsIC0wLjA3NSwgLTAuMDU2MjUsIC0wLjAzMzc1LCAtMC4wMTI1IiwgXAotICAgICAgICAgICItMC4xMzM3NSwgLTAuMTIyNSwgLTAuMTEsIC0wLjA5MTI1LCAtMC4wNzg3NSwgLTAuMDU2MjUsIC0wLjAzNSIsIFwKLSAgICAgICAgICAiLTAuMTQ4NzUsIC0wLjEzNzUsIC0wLjEyNSwgLTAuMTA2MjUsIC0wLjA5Mzc1LCAtMC4wNzEyNSwgLTAuMDUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEJiFFIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9FX0VRXzAgPT0gMSdiMSI7Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTQzNzUsIDAuMTMyNSwgMC4xMTM3NSwgMC4xMDEyNSwgMC4wODI1LCAwLjA2LCAwLjAzODc1IiwgXAotICAgICAgICAgICIwLjE1NSwgMC4xNDM3NSwgMC4xMjUsIDAuMTEyNSwgMC4wOTM3NSwgMC4wNzEyNSwgMC4wNSIsIFwKLSAgICAgICAgICAiMC4xNjc1LCAwLjE1NjI1LCAwLjEzNzUsIDAuMTI1LCAwLjEwNjI1LCAwLjA4Mzc1LCAwLjA2MjUiLCBcCi0gICAgICAgICAgIjAuMTgsIDAuMTY4NzUsIDAuMTU2MjUsIDAuMTM3NSwgMC4xMjUsIDAuMDk2MjUsIDAuMDc1IiwgXAotICAgICAgICAgICIwLjE5ODc1LCAwLjE4MTI1LCAwLjE2ODc1LCAwLjE1LCAwLjEzNzUsIDAuMTA4NzUsIDAuMDg3NSIsIFwKLSAgICAgICAgICAiMC4yMTUsIDAuMjAzNzUsIDAuMTg1LCAwLjE3MjUsIDAuMTUzNzUsIDAuMTMxMjUsIDAuMTEiLCBcCi0gICAgICAgICAgIjAuMjMsIDAuMjE4NzUsIDAuMiwgMC4xODEyNSwgMC4xNjg3NSwgMC4xNDYyNSwgMC4xMTg3NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiRCZFIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMV9BTl9FX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzQzNzUsIDAuMzI2MjUsIDAuMzEzNzUsIDAuMzAxMjUsIDAuMjg4NzUsIDAuMjcyNSwgMC4yNjM3NSIsIFwKLSAgICAgICAgICAiMC4zNTUsIDAuMzQzNzUsIDAuMzI1LCAwLjMxMjUsIDAuMywgMC4yODM3NSwgMC4yNzUiLCBcCi0gICAgICAgICAgIjAuMzY3NSwgMC4zNTYyNSwgMC4zNDM3NSwgMC4zMzEyNSwgMC4zMTg3NSwgMC4zMDI1LCAwLjI4NzUiLCBcCi0gICAgICAgICAgIjAuMzg2MjUsIDAuMzY4NzUsIDAuMzU2MjUsIDAuMzQzNzUsIDAuMzMxMjUsIDAuMzE1LCAwLjMwNjI1IiwgXAotICAgICAgICAgICIwLjM5ODc1LCAwLjM4NzUsIDAuMzY4NzUsIDAuMzU2MjUsIDAuMzUsIDAuMzMzNzUsIDAuMzE4NzUiLCBcCi0gICAgICAgICAgIjAuNDIxMjUsIDAuNDAzNzUsIDAuMzkxMjUsIDAuMzc4NzUsIDAuMzY2MjUsIDAuMzUsIDAuMzQxMjUiLCBcCi0gICAgICAgICAgIjAuNDM2MjUsIDAuNDI1LCAwLjQwNjI1LCAwLjM5Mzc1LCAwLjM4NzUsIDAuMzcxMjUsIDAuMzU2MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IElOVlgxNiAqCi0gKiAtLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKElOVlgxNikgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjUzNDIyNDsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDExMDg0ODsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMTEwNzY3OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAxMTA4NDg7Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMi4wNDkzNDsKLSAgICBmdW5jdGlvbiA6ICIoIUEpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTM1MDksIDAuMDE2Mjk3LCAwLjAzMjAxNSwgMC4wNDU4NTIsIDAuMDY0MjYsIDAuMTAxMDk0LCAwLjEyNDE3NSIsIFwKLSAgICAgICAgICAiMC4wMjUxNTIsIDAuMDI3ODkxLCAwLjA0MzQ5OCwgMC4wNTczNTQsIDAuMDc1ODQ4LCAwLjExMjY3MiwgMC4xMzU2OTciLCBcCi0gICAgICAgICAgIjAuMDM3Mzg1LCAwLjA0MTUxNiwgMC4wNTgzNjMsIDAuMDcyMjA5LCAwLjA5MDYyMiwgMC4xMjY5NjIsIDAuMTUwMjI3IiwgXAotICAgICAgICAgICIwLjA0NzM0NCwgMC4wNTI0NjksIDAuMDczMjgsIDAuMDg3MTQsIDAuMTA1NTMzLCAwLjE0MjM3OCwgMC4xNjU0MDYiLCBcCi0gICAgICAgICAgIjAuMDU1ODExLCAwLjA2MTg3OCwgMC4wODY4NzgsIDAuMTAyMDc2LCAwLjEyMDE1MSwgMC4xNTcwMzQsIDAuMTc5OTgzIiwgXAotICAgICAgICAgICIwLjA2Nzk4NywgMC4wNzUwNjIsIDAuMTA1OTMxLCAwLjEyNDQ2MiwgMC4xNDQyMDUsIDAuMTgwNjYxLCAwLjIwMzY3MSIsIFwKLSAgICAgICAgICAiMC4wNzY4MjEsIDAuMDg2MDg5LCAwLjEyMDk5NiwgMC4xNDIyODMsIDAuMTY0MzY3LCAwLjIwMTQ3NSwgMC4yMjQzOTMiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE4MzgzLCAwLjAyMzk1NywgMC4wNTU3OTEsIDAuMDgzODcyLCAwLjEyMTI2MywgMC4xOTYyMzgsIDAuMjQzMTExIiwgXAotICAgICAgICAgICIwLjAyMTgxNywgMC4wMjY2OTYsIDAuMDU2NTg4LCAwLjA4MzkxOCwgMC4xMjEzMTUsIDAuMTk2MTc2LCAwLjI0MzU4MiIsIFwKLSAgICAgICAgICAiMC4wMzA4NDYsIDAuMDM0NzkzLCAwLjA2MTQwOCwgMC4wODcxNTIsIDAuMTIyODQ5LCAwLjE5NjI3MywgMC4yNDM1MDYiLCBcCi0gICAgICAgICAgIjAuMDM5ODcyLCAwLjA0NDMwNSwgMC4wNjgzMjUsIDAuMDkyNTk3LCAwLjEyNjc3MiwgMC4xOTc4MzIsIDAuMjQ0MTQ2IiwgXAotICAgICAgICAgICIwLjA0ODYxOCwgMC4wNTM3MDUsIDAuMDc2ODMyLCAwLjA5OTYyMSwgMC4xMzI1NSwgMC4yMDIxNDMsIDAuMjQ2MDU1IiwgXAotICAgICAgICAgICIwLjA2MDY0NiwgMC4wNjc1NTgsIDAuMDkyMTI2LCAwLjExMjY0OCwgMC4xNDMxOTUsIDAuMjA5MzI1LCAwLjI1Mjk1IiwgXAotICAgICAgICAgICIwLjA3MDk2LCAwLjA3NzM4LCAwLjEwNTcxMiwgMC4xMjU1ODYsIDAuMTU0MjIzLCAwLjIxODMxOCwgMC4yNTk5NjQiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE1NTUxLCAwLjAxODgxNSwgMC4wMzcwNDYsIDAuMDUzMDM0LCAwLjA3NDI5MywgMC4xMTY5MzMsIDAuMTQzNTAxIiwgXAotICAgICAgICAgICIwLjAyNzE1NSwgMC4wMzAzNjMsIDAuMDQ4NTA4LCAwLjA2NDU2LCAwLjA4NTk1NiwgMC4xMjg1OSwgMC4xNTUyMDgiLCBcCi0gICAgICAgICAgIjAuMDQwNjM1LCAwLjA0NDc5NSwgMC4wNjM1NywgMC4wNzk0ODgsIDAuMTAwNzE0LCAwLjE0MzMwNSwgMC4xNjk4MTciLCBcCi0gICAgICAgICAgIjAuMDUxNjAyLCAwLjA1Njk1NiwgMC4wNzg0NjIsIDAuMDk0MzIyLCAwLjExNTY2NywgMC4xNTgwMDEsIDAuMTg0MTE0IiwgXAotICAgICAgICAgICIwLjA2MTQyOCwgMC4wNjc4LCAwLjA5MzEzOSwgMC4xMDk1MDQsIDAuMTMwNzY5LCAwLjE3MzIzMiwgMC4xOTk4NjgiLCBcCi0gICAgICAgICAgIjAuMDc0ODgzLCAwLjA4MjkwNywgMC4xMTQyMjgsIDAuMTMzMiwgMC4xNTQ2NDMsIDAuMTk3MTEyLCAwLjIyMzY4NiIsIFwKLSAgICAgICAgICAiMC4wODU0ODUsIDAuMDk0NDk4LCAwLjEzMDc0NywgMC4xNTI3ODYsIDAuMTc1MzQsIDAuMjE3ODY5LCAwLjI0NDQ5OCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjAzOCwgMC4wMjY3NTgsIDAuMDYyOTEzLCAwLjA5NDU1LCAwLjEzNzE2LCAwLjIyMjAxMywgMC4yNzUxODQiLCBcCi0gICAgICAgICAgIjAuMDIyOTUzLCAwLjAyODY4NSwgMC4wNjMxMzQsIDAuMDk0NjU2LCAwLjEzNjkxMiwgMC4yMjE3NDcsIDAuMjc0OTkiLCBcCi0gICAgICAgICAgIjAuMDMxMDUyLCAwLjAzNTc1NiwgMC4wNjY4NTcsIDAuMDk2ODIxLCAwLjEzODAwMywgMC4yMjE5MzIsIDAuMjc1MDU3IiwgXAotICAgICAgICAgICIwLjA0MDc2NywgMC4wNDUyOTEsIDAuMDczMjgyLCAwLjEwMTYxOCwgMC4xNDA4MTEsIDAuMjIyOTE1LCAwLjI3NTMwMiIsIFwKLSAgICAgICAgICAiMC4wNDg5NDMsIDAuMDU0Nzg0LCAwLjA4MDg1MiwgMC4xMDc0NTgsIDAuMTQ1Mjg0LCAwLjIyNTIwMywgMC4yNzcyNTciLCBcCi0gICAgICAgICAgIjAuMDYyOTE0LCAwLjA2OTE3MSwgMC4wOTUxMTUsIDAuMTE5NTIyLCAwLjE1NTczMSwgMC4yMzIzMTIsIDAuMjgyMjQ4IiwgXAotICAgICAgICAgICIwLjA3MzU3NSwgMC4wODAyMDEsIDAuMTA4ODYyLCAwLjEzMTExMiwgMC4xNjQ4NjYsIDAuMjM5NTQ0LCAwLjI4ODE4OCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMjkxMiwgMC4wMTI5NjIsIDAuMDEzMDYxLCAwLjAxMzA4OCwgMC4wMTMxMDUsIDAuMDEzMTE5LCAwLjAxMzEyOSIsIFwKLSAgICAgICAgICAiMC4wMTI0MiwgMC4wMTI1MjcsIDAuMDEyNzk0LCAwLjAxMjg5NCwgMC4wMTI5NiwgMC4wMTMwMjksIDAuMDEzMDUyIiwgXAotICAgICAgICAgICIwLjAxMjI1NCwgMC4wMTIyOTksIDAuMDEyNTkxLCAwLjAxMjczMywgMC4wMTI4MjUsIDAuMDEyOTE3LCAwLjAxMjk2NyIsIFwKLSAgICAgICAgICAiMC4wMTIxODksIDAuMDEyMjQ1LCAwLjAxMjQ3NSwgMC4wMTI2MDgsIDAuMDEyNzI0LCAwLjAxMjg0NiwgMC4wMTI4OTEiLCBcCi0gICAgICAgICAgIjAuMDEyMjAzLCAwLjAxMjIyMiwgMC4wMTIzOTcsIDAuMDEyNTE4LCAwLjAxMjY0MSwgMC4wMTI3ODYsIDAuMDEyODM3IiwgXAotICAgICAgICAgICIwLjAxMjE0MiwgMC4wMTIyNDEsIDAuMDEyMzM3LCAwLjAxMjQzOCwgMC4wMTI1NDcsIDAuMDEyNywgMC4wMTI3NjIiLCBcCi0gICAgICAgICAgIjAuMDEyMTk4LCAwLjAxMjIyMiwgMC4wMTIzMjEsIDAuMDEyNDAxLCAwLjAxMjQ5NywgMC4wMTI2MzksIDAuMDEyNzA1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwNjM5LCAwLjAwMDcwOSwgMC4wMDA4NTQsIDAuMDAwODkzLCAwLjAwMDkxNiwgMC4wMDA5MzksIDAuMDAwOTQ1IiwgXAotICAgICAgICAgICIwLjAwMDAwMSwgMC4wMDAxMTksIDAuMDAwNDcxLCAwLjAwMDYxMSwgMC4wMDA3MSwgMC4wMDA4MDQsIDAuMDAwODM1IiwgXAotICAgICAgICAgICIwLjAwMDI0OSwgMC4wMDAxNjEsIDAuMDAwMTk1LCAwLjAwMDM3MiwgMC4wMDA1MTMsIDAuMDAwNjYyLCAwLjAwMDcxNSIsIFwKLSAgICAgICAgICAiMC4wMDAzMDksIDAuMDAwMjQ3LCAwLjAwMDAzMywgMC4wMDAyMDksIDAuMDAwMzY2LCAwLjAwMDU0NywgMC4wMDA2MDkiLCBcCi0gICAgICAgICAgIjAuMDAwMzU4LCAwLjAwMDMxLCAwLjAwMDA2NywgMC4wMDAwOTksIDAuMDAwMjU4LCAwLjAwMDQ1NSwgMC4wMDA1MzMiLCBcCi0gICAgICAgICAgIjAuMDAwMjMxLCAwLjAwMDIzLCAwLjAwMDEzOSwgMC4wMDAwMTUsIDAuMDAwMTMsIDAuMDAwMzM1LCAwLjAwMDQxOSIsIFwKLSAgICAgICAgICAiMC4wMDAyNzcsIDAuMDAwMjc3LCAwLjAwMDE4MywgMC4wMDAwODMsIDAuMDAwMDQxLCAwLjAwMDIzOSwgMC4wMDAzMjkiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogSU5WWDggKgotICogLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKElOVlg4KSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMjYyMTY0OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDU0MzcwOTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDU0MzI1ODsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDU0MzcwOTsKLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAxLjAyNzkyOwotICAgIGZ1bmN0aW9uIDogIighQSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE4MSwgMC4wODI1NzQsIDAuMTQ2OTA0LCAwLjE5Mjg2LCAwLjI2NjI3NywgMC4zMzA3NzQsIDAuNDIyNjc1IiwgXAotICAgICAgICAgICIwLjAyOTc0NSwgMC4wOTQyNzQsIDAuMTU4NzM4LCAwLjIwNDYsIDAuMjc4MjQzLCAwLjM0MjQwOCwgMC40MzQ1NjIiLCBcCi0gICAgICAgICAgIjAuMDQzODksIDAuMTA4NTk0LCAwLjE3MjkyNiwgMC4yMTg4NDgsIDAuMjkyMzYsIDAuMzU2NjU1LCAwLjQ0ODYwOCIsIFwKLSAgICAgICAgICAiMC4wNTU2MjIsIDAuMTIzNjg5LCAwLjE4NzE4MSwgMC4yMzM1NzYsIDAuMzA2ODIsIDAuMzcxMjIsIDAuNDYxMTc3IiwgXAotICAgICAgICAgICIwLjA2NTU3NywgMC4xMzgzODgsIDAuMjAyMzE1LCAwLjI0ODEwMiwgMC4zMjE0MzgsIDAuMzg1ODUsIDAuNDc3NTA1IiwgXAotICAgICAgICAgICIwLjA4MDI4MSwgMC4xNjIxNTEsIDAuMjI2MzksIDAuMjcyMjk5LCAwLjM0NTU2NSwgMC40MDk3MjIsIDAuNTAxNDQ3IiwgXAotICAgICAgICAgICIwLjA5MDk5NSwgMC4xODMyNzIsIDAuMjQ2MDgzLCAwLjI5MzAzMSwgMC4zNjU4NDgsIDAuNDI5OTMsIDAuNTIxNTcxIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDI3NTg4LCAwLjE1ODQ1NCwgMC4yODkyMDEsIDAuMzgyNjYyLCAwLjUzMjEwOSwgMC42NjI4ODgsIDAuODQ5ODQiLCBcCi0gICAgICAgICAgIjAuMDI5ODc1LCAwLjE1ODcxOSwgMC4yODkzMzQsIDAuMzgzNTU3LCAwLjUzMjA3OCwgMC42NjQ0MTMsIDAuODUwMjg2IiwgXAotICAgICAgICAgICIwLjAzNzQ1OSwgMC4xNTg3OTksIDAuMjg5MjMzLCAwLjM4MjczOCwgMC41MzIyOTIsIDAuNjY0NTk2LCAwLjg0OTkzNiIsIFwKLSAgICAgICAgICAiMC4wNDY5NTUsIDAuMTYxODMxLCAwLjI4OTMyMiwgMC4zODI3MSwgMC41MzM1NTQsIDAuNjYzMDE1LCAwLjg1MTYyIiwgXAotICAgICAgICAgICIwLjA1NjYzOCwgMC4xNjYzMTcsIDAuMjkyMDM3LCAwLjM4Mzc4MiwgMC41MzMzMzksIDAuNjYzMTYyLCAwLjg0OTY2NyIsIFwKLSAgICAgICAgICAiMC4wNzAwMTEsIDAuMTc1NzI5LCAwLjI5NTgzLCAwLjM4NTUzNSwgMC41MzI1NjMsIDAuNjYyOTA2LCAwLjg0OTc4OCIsIFwKLSAgICAgICAgICAiMC4wODIyNywgMC4xODQ5OTYsIDAuMzAzMjU3LCAwLjM5MDIyOSwgMC41MzQ1NTYsIDAuNjY1MTgsIDAuODUwNTE3Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDIwOTA2LCAwLjA5NTQ4NSwgMC4xNjk4NDEsIDAuMjIyOTI5LCAwLjMwNzk1NSwgMC4zODIyODksIDAuNDg4MzI5IiwgXAotICAgICAgICAgICIwLjAzMjUwMSwgMC4xMDcyMTIsIDAuMTgxNTksIDAuMjM0NjksIDAuMzE5NzA1LCAwLjM5NDA3NiwgMC41MDAxNzIiLCBcCi0gICAgICAgICAgIjAuMDQ3MTc3LCAwLjEyMTYzMiwgMC4xOTU5NjcsIDAuMjQ5MjEsIDAuMzM0MDY5LCAwLjQwODQ2NiwgMC41MTQ3MTIiLCBcCi0gICAgICAgICAgIjAuMDYwMTc3LCAwLjEzNjgyMywgMC4yMTA5MDgsIDAuMjYzODQ3LCAwLjM0NzQ4NCwgMC40MjE4MTcsIDAuNTI4MTYxIiwgXAotICAgICAgICAgICIwLjA3MTQ0MywgMC4xNTE2ODEsIDAuMjI1NjY4LCAwLjI3ODc1NiwgMC4zNjM1NjUsIDAuNDM3NzQ0LCAwLjU0NDAyMSIsIFwKLSAgICAgICAgICAiMC4wODc0ODQsIDAuMTc1NTI2LCAwLjI0OTg0OCwgMC4zMDIyNzEsIDAuMzg2OTQzLCAwLjQ2MTI3NCwgMC41NjczMjkiLCBcCi0gICAgICAgICAgIjAuMDk5NzQ4LCAwLjE5NjgzMywgMC4yNzA5MTQsIDAuMzIzOTM1LCAwLjQwODMwMywgMC40ODIyODksIDAuNTg4MjcyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDMwODI0LCAwLjE3ODg4MywgMC4zMjY5MjYsIDAuNDMzMTgsIDAuNjAxNzY1LCAwLjc1MDQzOSwgMC45NjE3NjgiLCBcCi0gICAgICAgICAgIjAuMDMyMzY0LCAwLjE3OTM4OCwgMC4zMjcwNzEsIDAuNDMzNjA5LCAwLjYwMTQ0OSwgMC43NDk4NDEsIDAuOTYzNTM2IiwgXAotICAgICAgICAgICIwLjAzODk5OCwgMC4xNzg3NTIsIDAuMzI3ODc3LCAwLjQzMjUzMSwgMC42MDI5NjksIDAuNzQ5OTA1LCAwLjk2MTc3MyIsIFwKLSAgICAgICAgICAiMC4wNDc5NzUsIDAuMTgxMTk2LCAwLjMyNzE4OCwgMC40MzMxNDUsIDAuNjAxNTA5LCAwLjc1MDI4NiwgMC45NjI0MDYiLCBcCi0gICAgICAgICAgIjAuMDU3Nzc4LCAwLjE4NDQzNSwgMC4zMjg0OTIsIDAuNDMyODE3LCAwLjYwMTk1NCwgMC43NTA1NTgsIDAuOTYyMzg2IiwgXAotICAgICAgICAgICIwLjA3MjIzNSwgMC4xOTI4ODMsIDAuMzMyMDA0LCAwLjQzMzg2OSwgMC42MDMxODYsIDAuNzUwODAyLCAwLjk2MDg2MSIsIFwKLSAgICAgICAgICAiMC4wODQxMTEsIDAuMjAxMDc0LCAwLjMzNzEzNSwgMC40MzgzNDMsIDAuNjAzNDM0LCAwLjc1MDExOSwgMC45NjIzNiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2NDM2LCAwLjAwNjUwMiwgMC4wMDY1MDgsIDAuMDA2NTExLCAwLjAwNjUxMywgMC4wMDY1MTQsIDAuMDA2NTEzIiwgXAotICAgICAgICAgICIwLjAwNjIzNSwgMC4wMDY0NTMsIDAuMDA2NDc5LCAwLjAwNjQ4OCwgMC4wMDY0OTcsIDAuMDA2NTAxLCAwLjAwNjUwNSIsIFwKLSAgICAgICAgICAiMC4wMDYxMjMsIDAuMDA2MzksIDAuMDA2NDQyLCAwLjAwNjQ2LCAwLjAwNjQ3NiwgMC4wMDY0ODMsIDAuMDA2NDkxIiwgXAotICAgICAgICAgICIwLjAwNjA3NCwgMC4wMDYzNDYsIDAuMDA2NDA1LCAwLjAwNjQzNCwgMC4wMDY0NTYsIDAuMDA2NDY4LCAwLjAwNjQ4NCIsIFwKLSAgICAgICAgICAiMC4wMDYwNjUsIDAuMDA2MzA1LCAwLjAwNjM4NiwgMC4wMDY0MTIsIDAuMDA2NDM5LCAwLjAwNjQ1MywgMC4wMDY0NjciLCBcCi0gICAgICAgICAgIjAuMDA2MDQ2LCAwLjAwNjI1OSwgMC4wMDYzNDcsIDAuMDA2Mzg0LCAwLjAwNjQxNSwgMC4wMDY0MzMsIDAuMDA2NDUzIiwgXAotICAgICAgICAgICIwLjAwNjA3NCwgMC4wMDYyMzEsIDAuMDA2MzIxLCAwLjAwNjM1NiwgMC4wMDYzOTQsIDAuMDA2NDExLCAwLjAwNjQzNSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwMzYzLCAwLjAwMDQ1OSwgMC4wMDA0NjgsIDAuMDAwNDcxLCAwLjAwMDQ3NCwgMC4wMDA0NzUsIDAuMDAwNDc2IiwgXAotICAgICAgICAgICIwLjAwMDA4OSwgMC4wMDAzOCwgMC4wMDA0MjQsIDAuMDAwNDM4LCAwLjAwMDQ1LCAwLjAwMDQ1NiwgMC4wMDA0NjEiLCBcCi0gICAgICAgICAgIjAuMDAwMDYyLCAwLjAwMDI5MSwgMC4wMDAzNjksIDAuMDAwMzk1LCAwLjAwMDQxOCwgMC4wMDA0MywgMC4wMDA0NDEiLCBcCi0gICAgICAgICAgIjAuMDAwMTIyLCAwLjAwMDIyNywgMC4wMDAzMjMsIDAuMDAwMzU3LCAwLjAwMDM4NywgMC4wMDA0MDUsIDAuMDAwNDIxIiwgXAotICAgICAgICAgICIwLjAwMDE0LCAwLjAwMDE3NCwgMC4wMDAyODUsIDAuMDAwMzI1LCAwLjAwMDM2MywgMC4wMDAzODUsIDAuMDAwNDA1IiwgXAotICAgICAgICAgICIwLjAwMDEzMSwgMC4wMDAxMTksIDAuMDAwMjM2LCAwLjAwMDI4MywgMC4wMDAzMzQsIDAuMDAwMzU1LCAwLjAwMDM4MSIsIFwKLSAgICAgICAgICAiMC4wMDAxMzUsIDAuMDAwMDcsIDAuMDAwMTkyLCAwLjAwMDI0NSwgMC4wMDAyOTgsIDAuMDAwMzMyLCAwLjAwMDM1NiIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBNWDJYOCAqCi0gKiAtLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoTVgyWDgpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4zNDU4Nzg7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDcyNTMxNjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA3MjI1NTk7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNzI1MzE2OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDIyNSwgMC4wMDAyMywgMC4wMDAyMzEsIDAuMDAwMjMyLCAwLjAwMDIzMywgMC4wMDAyMzMsIDAuMDAwMjM0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjQ3LCAwLjAwMDI0NCwgMC4wMDAyNDMsIDAuMDAwMjQ0LCAwLjAwMDI0NCwgMC4wMDAyNDQsIDAuMDAwMjQ0Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2NzEwOTY7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjY4MzMxOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDY3MTA5NjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyMzMsIDAuMDAwMjM1LCAwLjAwMDIzNiwgMC4wMDAyMzcsIDAuMDAwMjM3LCAwLjAwMDIzNywgMC4wMDAyMzciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyNDcsIDAuMDAwMjQ0LCAwLjAwMDI0NCwgMC4wMDAyNDQsIDAuMDAwMjQ0LCAwLjAwMDI0NCwgMC4wMDAyNDMiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFMwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDEzOTIzMzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDEzOTE5OTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDEzOTIzMzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyNzYsIDAuMDAwMjU4LCAwLjAwMDI0OCwgMC4wMDAyNDQsIDAuMDAwMjQyLCAwLjAwMDI0MywgMC4wMDAyNCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTY4MywgMC4wMDE2NzIsIDAuMDAxNjY0LCAwLjAwMTY2MSwgMC4wMDE2NTksIDAuMDAxNjU3LCAwLjAwMTY1NiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAxLjA5NzUyOwotICAgIGZ1bmN0aW9uIDogIigoUzAgQikgKyAoIVMwIEEpKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjI4MTY2LCAwLjMwMjM3OSwgMC4zNDU4OCwgMC4zOTUzNDcsIDAuNDQyMzc5LCAwLjQ4ODY2LCAwLjUzNDUzOSIsIFwKLSAgICAgICAgICAiMC4yMzk3NTIsIDAuMzEzODE1LCAwLjM1NzMzMSwgMC40MDY3NTgsIDAuNDUzNzg4LCAwLjUwMDA5NSwgMC41NDU5NTMiLCBcCi0gICAgICAgICAgIjAuMjUzMTA0LCAwLjMyNzI4MywgMC4zNzExODcsIDAuNDIwMjc0LCAwLjQ2NzU1NiwgMC41MTM1ODcsIDAuNTU5NDkiLCBcCi0gICAgICAgICAgIjAuMjY2Njc2LCAwLjM0MDg3MiwgMC4zODQyNzcsIDAuNDMzNzM0LCAwLjQ4MTAzNCwgMC41MjcwODUsIDAuNTcyOTc0IiwgXAotICAgICAgICAgICIwLjI4MDIxMiwgMC4zNTQyMzcsIDAuMzk4MDMsIDAuNDQ3MSwgMC40OTQzNDUsIDAuNTQwNDMxLCAwLjU4NjMyNSIsIFwKLSAgICAgICAgICAiMC4zMDE5NzEsIDAuMzc2MzYyLCAwLjQxOTQ1NiwgMC40Njg4NywgMC41MTYxMDMsIDAuNTYyMzUxLCAwLjYwODA5NSIsIFwKLSAgICAgICAgICAiMC4zMjA2MzgsIDAuMzk0NjMxLCAwLjQzODAzLCAwLjQ4NzQ3MywgMC41MzQ1MjksIDAuNTgwODE0LCAwLjYyNjY2MyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODkyMTcsIDAuMTc3MzgsIDAuMjQ1MDI5LCAwLjMzMDc3NiwgMC40MTc4NzksIDAuNTA2MjE1LCAwLjU5NTQ4IiwgXAotICAgICAgICAgICIwLjA4ODk5NiwgMC4xNzc0MDMsIDAuMjQ1MDA4LCAwLjMzMDc0NSwgMC40MTc4NTUsIDAuNTA2MjY2LCAwLjU5NTI5OSIsIFwKLSAgICAgICAgICAiMC4wODkzMTIsIDAuMTc3NDQ0LCAwLjI0NTI2OSwgMC4zMzA1NzYsIDAuNDE3OTk4LCAwLjUwNjIwNiwgMC41OTU1OTYiLCBcCi0gICAgICAgICAgIjAuMDg5MjY1LCAwLjE3NzYyMiwgMC4yNDQ5NjMsIDAuMzMwNzA3LCAwLjQxNzk3NCwgMC41MDYzNzcsIDAuNTk1Mzg1IiwgXAotICAgICAgICAgICIwLjA4ODc5MywgMC4xNzczNTMsIDAuMjQ1MjQ4LCAwLjMzMDYwOSwgMC40MTc4MjYsIDAuNTA2MzA1LCAwLjU5NTg3NCIsIFwKLSAgICAgICAgICAiMC4wODg5ODMsIDAuMTc3NjU1LCAwLjI0NDkwOCwgMC4zMzA2NzgsIDAuNDE3ODc1LCAwLjUwNjMwNCwgMC41OTU4NzkiLCBcCi0gICAgICAgICAgIjAuMDg4NTU5LCAwLjE3NzI3OCwgMC4yNDQ5NDcsIDAuMzMwNzM0LCAwLjQxNzg0NCwgMC41MDYxOTQsIDAuNTk1MzQzIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIxODg4MywgMC4yOTc3MTMsIDAuMzQ2MTIzLCAwLjQwMjM5OCwgMC40NTY5NjYsIDAuNTEwNzY0LCAwLjU2NDM0OCIsIFwKLSAgICAgICAgICAiMC4yMzAzNzQsIDAuMzA5MjE0LCAwLjM1NzcwNSwgMC40MTM5MTYsIDAuNDY4NDA5LCAwLjUyMjI5OSwgMC41NzU4NSIsIFwKLSAgICAgICAgICAiMC4yNDM1MTUsIDAuMzIyMTI4LCAwLjM3MDcwMiwgMC40MjY5ODQsIDAuNDgxNTc0LCAwLjUzNTQ0NiwgMC41ODg5NDkiLCBcCi0gICAgICAgICAgIjAuMjU1OTU3LCAwLjMzNDg4NCwgMC4zODMxNjgsIDAuNDM5NDk2LCAwLjQ5NDA1NiwgMC41NDc5MzQsIDAuNjAxNDM0IiwgXAotICAgICAgICAgICIwLjI2ODU0NiwgMC4zNDcwNTEsIDAuMzk1NjM2LCAwLjQ1MTg4NCwgMC41MDY0NDIsIDAuNTYwMzM4LCAwLjYxMzg0MiIsIFwKLSAgICAgICAgICAiMC4yODgxNTIsIDAuMzY2ODMyLCAwLjQxNTM5OCwgMC40NzE1OSwgMC41MjYxNzMsIDAuNTc5OTcsIDAuNjMzNTg5IiwgXAotICAgICAgICAgICIwLjMwNTMyNiwgMC4zODQwMjcsIDAuNDMyMzM4LCAwLjQ4ODcxNywgMC41NDMyMjEsIDAuNTk3MTI0LCAwLjY1MDY3NyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODcyODgsIDAuMTg5MTk0LCAwLjI2Nzc5OSwgMC4zNjc4NDYsIDAuNDY5MSwgMC41NzE1OTksIDAuNjc1NjI1IiwgXAotICAgICAgICAgICIwLjA4NzM3NCwgMC4xODkxMzYsIDAuMjY4MDA4LCAwLjM2NzU5NiwgMC40Njk0MDcsIDAuNTcyMDE5LCAwLjY3NTUwOSIsIFwKLSAgICAgICAgICAiMC4wODcwMTgsIDAuMTg4OTAyLCAwLjI2NzcyMywgMC4zNjc2MDksIDAuNDY5MTA1LCAwLjU3MTUwNCwgMC42NzUzMzkiLCBcCi0gICAgICAgICAgIjAuMDg3MDcxLCAwLjE4OTEzMiwgMC4yNjc3MTgsIDAuMzY3NjU4LCAwLjQ2OTEwOSwgMC41NzE4MjgsIDAuNjc1MzM0IiwgXAotICAgICAgICAgICIwLjA4NjgyMiwgMC4xODg5MzksIDAuMjY3OTEyLCAwLjM2NzU4NiwgMC40NjkwODgsIDAuNTcxOTMzLCAwLjY3NTMxMyIsIFwKLSAgICAgICAgICAiMC4wODY5OCwgMC4xODkwNjEsIDAuMjY3OTE3LCAwLjM2Nzg1MywgMC40NjkwNjEsIDAuNTcxNjQ0LCAwLjY3NTQyMyIsIFwKLSAgICAgICAgICAiMC4wODY4OTcsIDAuMTg5MTA4LCAwLjI2NzgwMSwgMC4zNjc1NTUsIDAuNDY5NDQ5LCAwLjU3MTQ1MiwgMC42NzU2MyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMjgyOTYsIDAuMzAyNzUxLCAwLjM0NjA2OCwgMC4zOTU1MTQsIDAuNDQyNzM0LCAwLjQ4OTAzNywgMC41MzQ5ODIiLCBcCi0gICAgICAgICAgIjAuMjQwMDMsIDAuMzE0MDk3LCAwLjM1NzU4NSwgMC40MDcxMjUsIDAuNDU0NDIsIDAuNTAwNDY1LCAwLjU0NjM4MSIsIFwKLSAgICAgICAgICAiMC4yNTM5ODIsIDAuMzI4MDM3LCAwLjM3MTY4LCAwLjQyMDc4OCwgMC40Njc5OTgsIDAuNTE0Mjk3LCAwLjU2MDE2NyIsIFwKLSAgICAgICAgICAiMC4yNjcyNjEsIDAuMzQxMzg3LCAwLjM4NDk0MywgMC40MzQzOTIsIDAuNDgxNjk3LCAwLjUyNzc1LCAwLjU3MzY2MSIsIFwKLSAgICAgICAgICAiMC4yODA5ODcsIDAuMzU1MTE0LCAwLjM5ODYzOCwgMC40NDgwNTMsIDAuNDk1MDk5LCAwLjU0MTQzLCAwLjU4NzI5MSIsIFwKLSAgICAgICAgICAiMC4zMDI4MTYsIDAuMzc2Nzc0LCAwLjQyMDYxNiwgMC40Njk2OTEsIDAuNTE2OTM2LCAwLjU2MzAzOSwgMC42MDg5NDgiLCBcCi0gICAgICAgICAgIjAuMzIxNDU0LCAwLjM5NTQ4MiwgMC40Mzg4ODUsIDAuNDg4MzM0LCAwLjUzNTM3OCwgMC41ODE3MDEsIDAuNjI3NTU4Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4OTc3NiwgMC4xNzc2MTMsIDAuMjQ1MTY1LCAwLjMzMDkwMywgMC40MTgxOTEsIDAuNTA2NDY4LCAwLjU5NTU4MyIsIFwKLSAgICAgICAgICAiMC4wODk0MDcsIDAuMTc3NTEzLCAwLjI0NTA1MSwgMC4zMzA4MjYsIDAuNDE4MTIsIDAuNTA2MjcxLCAwLjU5NTUyMiIsIFwKLSAgICAgICAgICAiMC4wODg2ODcsIDAuMTc3NDU2LCAwLjI0NTA3LCAwLjMzMDg2MywgMC40MTgxMzIsIDAuNTA2Mzk2LCAwLjU5NTQwNSIsIFwKLSAgICAgICAgICAiMC4wODkyMzcsIDAuMTc3NDcyLCAwLjI0NDk5OCwgMC4zMzA4MTEsIDAuNDE4MTAzLCAwLjUwNjMxMywgMC41OTU0ODUiLCBcCi0gICAgICAgICAgIjAuMDg5MDcsIDAuMTc3NDc1LCAwLjI0NTA5NiwgMC4zMzA4NDIsIDAuNDE3OTgxLCAwLjUwNjM0NSwgMC41OTU0OCIsIFwKLSAgICAgICAgICAiMC4wODg5MzIsIDAuMTc3MzA1LCAwLjI0NTI2NCwgMC4zMzA2NCwgMC40MTc4ODUsIDAuNTA2NDA4LCAwLjU5NTc2MSIsIFwKLSAgICAgICAgICAiMC4wODg2MzksIDAuMTc3MzM0LCAwLjI0NTAyMywgMC4zMzA4MzUsIDAuNDE3ODA2LCAwLjUwNjMyNywgMC41OTU0NjUiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjIxODc4LCAwLjMwMDY5OSwgMC4zNDkzMzgsIDAuNDA1NTk2LCAwLjQ2MDE4NSwgMC41MTQwNzksIDAuNTY3NTgzIiwgXAotICAgICAgICAgICIwLjIzMzI1NiwgMC4zMTIxNTIsIDAuMzYwODY3LCAwLjQxNzA3OSwgMC40NzE2ODcsIDAuNTI1NTMxLCAwLjU3OTEwMiIsIFwKLSAgICAgICAgICAiMC4yNDY2MDQsIDAuMzI1MzA5LCAwLjM3Mzk5NSwgMC40MzAyMzIsIDAuNDg0ODE3LCAwLjUzODcyMywgMC41OTIyMjciLCBcCi0gICAgICAgICAgIjAuMjU4OTcsIDAuMzM3Nzc0LCAwLjM4NjQ5NiwgMC40NDI2OTgsIDAuNDk3MzA2LCAwLjU1MTIwMiwgMC42MDQ3MjIiLCBcCi0gICAgICAgICAgIjAuMjcxMjg1LCAwLjM1MDEyNiwgMC4zOTg3OCwgMC40NTQ5NzYsIDAuNTA5NTksIDAuNTYzNDQ5LCAwLjYxNzAxNCIsIFwKLSAgICAgICAgICAiMC4yOTExNTQsIDAuMzY5NzcxLCAwLjQxODM1MiwgMC40NzQ3NjIsIDAuNTI5Mjc1LCAwLjU4MzE2OSwgMC42MzY2OTEiLCBcCi0gICAgICAgICAgIjAuMzA4MTIxLCAwLjM4NjkwOCwgMC40MzUzODQsIDAuNDkxNjYzLCAwLjU0NjI4OCwgMC42MDAwODksIDAuNjUzNzAzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4NzE4LCAwLjE4OTI3NywgMC4yNjgyNjUsIDAuMzY4MDIxLCAwLjQ2OTM1NSwgMC41NzE2MywgMC42NzU1NDUiLCBcCi0gICAgICAgICAgIjAuMDg3NDQyLCAwLjE4OTI4MywgMC4yNjgyNDMsIDAuMzY3ODczLCAwLjQ2OTM0MSwgMC41NzIxMjQsIDAuNjc1NDk1IiwgXAotICAgICAgICAgICIwLjA4NzIzNSwgMC4xODkyODYsIDAuMjY4MjYxLCAwLjM2Nzg3MSwgMC40NjkzNDMsIDAuNTcyMTU2LCAwLjY3NTQ3OCIsIFwKLSAgICAgICAgICAiMC4wODcwMjUsIDAuMTg5Mjg1LCAwLjI2ODI0NSwgMC4zNjc4NzMsIDAuNDY5MzM1LCAwLjU3MTc2OCwgMC42NzU0MTciLCBcCi0gICAgICAgICAgIjAuMDg2OTk4LCAwLjE4OTQzMSwgMC4yNjgyNCwgMC4zNjc4NjMsIDAuNDY5MzI4LCAwLjU3MTY3NiwgMC42NzU0MjUiLCBcCi0gICAgICAgICAgIjAuMDg3MzU4LCAwLjE4OTUzOSwgMC4yNjgyMjcsIDAuMzY4MTQyLCAwLjQ2OTQzNCwgMC41NzE2MTksIDAuNjc1NDEzIiwgXAotICAgICAgICAgICIwLjA4NzA3NiwgMC4xODk0NDgsIDAuMjY4MjUxLCAwLjM2Nzk4NiwgMC40Njk0MSwgMC41NzE4NTYsIDAuNjc1NTU0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlMwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMTQ3NCwgMC4yODkxMjQsIDAuMzMyMjIxLCAwLjM4MTY1NywgMC40Mjg5NTcsIDAuNDc1MDY5LCAwLjUyMDkxNiIsIFwKLSAgICAgICAgICAiMC4yMjU0NiwgMC4yOTk3NTMsIDAuMzQyODg5LCAwLjM5MjI5OSwgMC40MzkzNDYsIDAuNDg1NjUsIDAuNTMxNTIzIiwgXAotICAgICAgICAgICIwLjIzODkzNywgMC4zMTMwNjksIDAuMzU2NjE0LCAwLjQwNTgwOSwgMC40NTI5NywgMC40OTkyODMsIDAuNTQ1MiIsIFwKLSAgICAgICAgICAiMC4yNTIzMTUsIDAuMzI2NDIzLCAwLjM3MDA2NywgMC40MTkxODEsIDAuNDY2MzgzLCAwLjUxMjY4LCAwLjU1ODYxMiIsIFwKLSAgICAgICAgICAiMC4yNjU4NTIsIDAuMzQwMDcxLCAwLjM4MzE1NiwgMC40MzI1MDYsIDAuNDc5ODA5LCAwLjUyNjA3NCwgMC41NzE4MzIiLCBcCi0gICAgICAgICAgIjAuMjg3MzU2LCAwLjM2MTM5MSwgMC40MDQ3NSwgMC40NTQxOTYsIDAuNTAxNSwgMC41NDc1OTQsIDAuNTkzNDYxIiwgXAotICAgICAgICAgICIwLjMwNjQ2NSwgMC4zODAzLCAwLjQyMzgwOSwgMC40NzMxODIsIDAuNTIwNDE5LCAwLjU2NjU0NSwgMC42MTI0NjIiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg4NTY3LCAwLjE3NzYwMSwgMC4yNDQ5NTEsIDAuMzMwODMzLCAwLjQxODA2MywgMC41MDYzNzMsIDAuNTk1MTI0IiwgXAotICAgICAgICAgICIwLjA4ODg5LCAwLjE3NzU1OCwgMC4yNDUwMjUsIDAuMzMwODEsIDAuNDE3Nzk3LCAwLjUwNjMwMiwgMC41OTU0NzciLCBcCi0gICAgICAgICAgIjAuMDg4NTY4LCAwLjE3NzU0NCwgMC4yNDUwMjQsIDAuMzMwNTA1LCAwLjQxNzk1MSwgMC41MDYzNTksIDAuNTk1NTAyIiwgXAotICAgICAgICAgICIwLjA4ODU0OCwgMC4xNzczMjQsIDAuMjQ1MDM1LCAwLjMzMDUzMywgMC40MTgwNTQsIDAuNTA2MzQxLCAwLjU5NTQ3NiIsIFwKLSAgICAgICAgICAiMC4wODgzNjEsIDAuMTc3NTIxLCAwLjI0NDc3NCwgMC4zMzA1OTcsIDAuNDE3ODc4LCAwLjUwNjIzOSwgMC41OTU0MDYiLCBcCi0gICAgICAgICAgIjAuMDg4Njg0LCAwLjE3NzI2NywgMC4yNDQ4NzEsIDAuMzMwNzMsIDAuNDE3OTgsIDAuNTA2MTU2LCAwLjU5NTQyNSIsIFwKLSAgICAgICAgICAiMC4wODgyNTIsIDAuMTc3MTA5LCAwLjI0NDkzOSwgMC4zMzA1NTksIDAuNDE3OTA1LCAwLjUwNjQwMiwgMC41OTU5Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIwNjc1OCwgMC4yODUzNjgsIDAuMzMzNzg5LCAwLjM5MDEzLCAwLjQ0NDcwMiwgMC40OTg1MDQsIDAuNTUyMTA0IiwgXAotICAgICAgICAgICIwLjIxNzIxNiwgMC4yOTU4MTEsIDAuMzQ0MjI5LCAwLjQwMDU4MiwgMC40NTUxNTUsIDAuNTA4OTU4LCAwLjU2MjU2IiwgXAotICAgICAgICAgICIwLjIzMDQwMSwgMC4zMDg5MzEsIDAuMzU3NDcsIDAuNDEzODYsIDAuNDY4MzQ1LCAwLjUyMjIyNiwgMC41NzU3NjkiLCBcCi0gICAgICAgICAgIjAuMjQzMzk2LCAwLjMyMjA0NiwgMC4zNzA2MzMsIDAuNDI2ODcyLCAwLjQ4MTQzNiwgMC41MzUzMzUsIDAuNTg4ODM1IiwgXAotICAgICAgICAgICIwLjI1NjYyNywgMC4zMzUzMjQsIDAuMzgzNjE5LCAwLjQzOTk5OCwgMC40OTQ1ODcsIDAuNTQ4MzgyLCAwLjYwMTk1NyIsIFwKLSAgICAgICAgICAiMC4yNzc3OTMsIDAuMzU2NTAxLCAwLjQwNDc5LCAwLjQ2MTE2MSwgMC41MTU3NSwgMC41Njk1NDYsIDAuNjIzMTIiLCBcCi0gICAgICAgICAgIjAuMjk2MzE5LCAwLjM3NTA5OCwgMC40MjM0MTUsIDAuNDc5NzYsIDAuNTM0MjcxLCAwLjU4ODE3NiwgMC42NDE3MzMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg2ODQ2LCAwLjE4ODk5OSwgMC4yNjc2MDYsIDAuMzY3ODI3LCAwLjQ2OTAyMSwgMC41NzE2MjYsIDAuNjc1NTkiLCBcCi0gICAgICAgICAgIjAuMDg2ODE5LCAwLjE4OTAxMiwgMC4yNjc1OTYsIDAuMzY3ODMxLCAwLjQ2OTAxOCwgMC41NzE2NzksIDAuNjc1NTciLCBcCi0gICAgICAgICAgIjAuMDg2OTA4LCAwLjE4ODc1NiwgMC4yNjc3MDMsIDAuMzY3NzkyLCAwLjQ2OTQ1OSwgMC41NzIxNDYsIDAuNjc1MTIiLCBcCi0gICAgICAgICAgIjAuMDg2ODM1LCAwLjE4ODg4MiwgMC4yNjc4NTgsIDAuMzY3NTYsIDAuNDY5MDcyLCAwLjU3MTYxMiwgMC42NzUyNDciLCBcCi0gICAgICAgICAgIjAuMDg2Nzc3LCAwLjE4ODkzOSwgMC4yNjc2NTcsIDAuMzY3NTUxLCAwLjQ2ODk1LCAwLjU3MTU4NiwgMC42NzU1OTYiLCBcCi0gICAgICAgICAgIjAuMDg2Nzc2LCAwLjE4ODkyNSwgMC4yNjc1MzQsIDAuMzY3NDYsIDAuNDY4OTM3LCAwLjU3MTYxMywgMC42NzU2MTUiLCBcCi0gICAgICAgICAgIjAuMDg2NTE1LCAwLjE4ODkzNSwgMC4yNjc1MSwgMC4zNjc0NzUsIDAuNDY5MzYsIDAuNTcxNTE1LCAwLjY3NTU5NCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjQ4MDAyLCAwLjMyMjI5NywgMC4zNjU3OTksIDAuNDE0OTc0LCAwLjQ2MjE1LCAwLjUwODQ1LCAwLjU1NDM1NSIsIFwKLSAgICAgICAgICAiMC4yNTk5NDksIDAuMzM0Mjg2LCAwLjM3NzY3MSwgMC40MjcxNDIsIDAuNDc0MTgyLCAwLjUyMDQ2NiwgMC41NjYzNDkiLCBcCi0gICAgICAgICAgIjAuMjc1MDgsIDAuMzQ5MTY1LCAwLjM5MzAyOCwgMC40NDIxLCAwLjQ4OTM2MywgMC41MzUzNzUsIDAuNTgxMzE0IiwgXAotICAgICAgICAgICIwLjI4OTQ3OCwgMC4zNjM1NzksIDAuNDA3NDQxLCAwLjQ1NjUwOSwgMC41MDM3NTksIDAuNTQ5ODE0LCAwLjU5NTcwNiIsIFwKLSAgICAgICAgICAiMC4zMDMxMzMsIDAuMzc3NDY0LCAwLjQyMDU0MywgMC40Njk5MzYsIDAuNTE3MTg1LCAwLjU2MzQzNywgMC42MDkxNzkiLCBcCi0gICAgICAgICAgIjAuMzIyMTM1LCAwLjM5NjIwMywgMC40Mzk2ODYsIDAuNDg5MTMzLCAwLjUzNjE2MywgMC41ODI0NTMsIDAuNjI4MzIiLCBcCi0gICAgICAgICAgIjAuMzM2ODgsIDAuNDEwOTg0LCAwLjQ1NDQ1LCAwLjUwMzg5OSwgMC41NTA5NDYsIDAuNTk3MjI4LCAwLjY0MzA5NyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODg5MzQsIDAuMTc3MjU2LCAwLjI0NDg5MywgMC4zMzA1MjMsIDAuNDE3ODY1LCAwLjUwNjI1MSwgMC41OTUzMzEiLCBcCi0gICAgICAgICAgIjAuMDg5MDAxLCAwLjE3NzIyLCAwLjI0NDk5NCwgMC4zMzA3NDYsIDAuNDE3ODU2LCAwLjUwNjI2MiwgMC41OTUyOTIiLCBcCi0gICAgICAgICAgIjAuMDg4ODkxLCAwLjE3NzM0MiwgMC4yNDUyNDksIDAuMzMwNzQ3LCAwLjQxODAyMSwgMC41MDYxNzYsIDAuNTk1NzQ1IiwgXAotICAgICAgICAgICIwLjA4ODg5OCwgMC4xNzczMTcsIDAuMjQ1MjQsIDAuMzMwNzQ2LCAwLjQxODAyNSwgMC41MDYzMTcsIDAuNTk1NTU0IiwgXAotICAgICAgICAgICIwLjA4ODQ1OCwgMC4xNzc2NTgsIDAuMjQ0OTU4LCAwLjMzMDcwMSwgMC40MTc4NDEsIDAuNTA2MjE2LCAwLjU5NTg2NyIsIFwKLSAgICAgICAgICAiMC4wODg2MjQsIDAuMTc3MzUzLCAwLjI0NDk4LCAwLjMzMDcyOSwgMC40MTc1NDUsIDAuNTA2MTg3LCAwLjU5NTMyMiIsIFwKLSAgICAgICAgICAiMC4wODg3NDMsIDAuMTc3MzY0LCAwLjI0NDk4NywgMC4zMzA3MTgsIDAuNDE3ODM5LCAwLjUwNjE4OSwgMC41OTUyODEiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjQ0ODgzLCAwLjMyMzU0OSwgMC4zNzIyNTksIDAuNDI4NDg2LCAwLjQ4MzA3OSwgMC41MzY5OTMsIDAuNTkwNDkiLCBcCi0gICAgICAgICAgIjAuMjU2NzI4LCAwLjMzNTQ3NCwgMC4zODQxNTYsIDAuNDQwNDY0LCAwLjQ5NTA3NiwgMC41NDg5NjEsIDAuNjAyNDY1IiwgXAotICAgICAgICAgICIwLjI3MjQ5OSwgMC4zNTE0OTMsIDAuNDAwMDE2LCAwLjQ1NjI1MSwgMC41MTA4NDMsIDAuNTY0NjQ1LCAwLjYxODI1NSIsIFwKLSAgICAgICAgICAiMC4yODcyNDEsIDAuMzY2MzE4LCAwLjQxNDY2NSwgMC40NzEwODIsIDAuNTI1NjY4LCAwLjU3OTQ3MiwgMC42MzMwNTkiLCBcCi0gICAgICAgICAgIjAuMzAyNTI2LCAwLjM4MTQ5MywgMC40Mjk4LCAwLjQ4NjI0MiwgMC41NDA4MTcsIDAuNTk0NzA1LCAwLjY0ODIwNCIsIFwKLSAgICAgICAgICAiMC4zMjQzMDksIDAuNDAzNDA0LCAwLjQ1MTcwMywgMC41MDgwOTgsIDAuNTYyNzAxLCAwLjYxNjU5MSwgMC42NzAwOTEiLCBcCi0gICAgICAgICAgIjAuMzQyMDcxLCAwLjQyMTA0MSwgMC40NjkzODgsIDAuNTI1NzcsIDAuNTgwMzUsIDAuNjM0MjM5LCAwLjY4Nzc0MyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODcxNzgsIDAuMTg5Mjk5LCAwLjI2ODI4MywgMC4zNjc4NjYsIDAuNDY5MzM0LCAwLjU3MjIwMSwgMC42NzU2MzIiLCBcCi0gICAgICAgICAgIjAuMDg3NjQ2LCAwLjE4OTI3OSwgMC4yNjgwOTYsIDAuMzY3ODQxLCAwLjQ2OTM2MSwgMC41NzIzNTksIDAuNjc1NTIiLCBcCi0gICAgICAgICAgIjAuMDg3MTI1LCAwLjE4OTM4LCAwLjI2ODI2MywgMC4zNjgxMTcsIDAuNDY5MzA3LCAwLjU3MTg3NywgMC42NzU3NDQiLCBcCi0gICAgICAgICAgIjAuMDg3NDExLCAwLjE4OTM5NSwgMC4yNjgwNjIsIDAuMzY3ODksIDAuNDY5MzEyLCAwLjU3MTc4NSwgMC42NzU3MzQiLCBcCi0gICAgICAgICAgIjAuMDg3MjA1LCAwLjE4OTQ0NywgMC4yNjgwNzUsIDAuMzY3ODY4LCAwLjQ2OTMwOSwgMC41NzE5ODksIDAuNjc1NDY0IiwgXAotICAgICAgICAgICIwLjA4NzIyOCwgMC4xODkzNzksIDAuMjY4MDAzLCAwLjM2Nzg2MiwgMC40NjkzMDQsIDAuNTcyNDEsIDAuNjc1NDM2IiwgXAotICAgICAgICAgICIwLjA4NzM0NiwgMC4xODk0MTUsIDAuMjY4MDc3LCAwLjM2Nzg1OCwgMC40NjkyOTEsIDAuNTcxNjgyLCAwLjY3NTQyNiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjkzMSwgMC4wMDcxMDksIDAuMDA3MTg0LCAwLjAwNzIzNywgMC4wMDcyNywgMC4wMDcyOTYsIDAuMDA3MzA2IiwgXAotICAgICAgICAgICIwLjAwNjkyMSwgMC4wMDcwOTcsIDAuMDA3MTcyLCAwLjAwNzIyNSwgMC4wMDcyNTgsIDAuMDA3MjgsIDAuMDA3Mjk2IiwgXAotICAgICAgICAgICIwLjAwNjkxOCwgMC4wMDcwOTEsIDAuMDA3MTY2LCAwLjAwNzIyLCAwLjAwNzI1NSwgMC4wMDcyNzQsIDAuMDA3Mjg5IiwgXAotICAgICAgICAgICIwLjAwNjkxMSwgMC4wMDcwODQsIDAuMDA3MTU5LCAwLjAwNzIxMiwgMC4wMDcyNTEsIDAuMDA3MjcsIDAuMDA3Mjg1IiwgXAotICAgICAgICAgICIwLjAwNjkwMSwgMC4wMDcwNzYsIDAuMDA3MTUxLCAwLjAwNzIwNSwgMC4wMDcyMzksIDAuMDA3MjYxLCAwLjAwNzI3NyIsIFwKLSAgICAgICAgICAiMC4wMDY4OTIsIDAuMDA3MDY2LCAwLjAwNzE0LCAwLjAwNzE5NiwgMC4wMDcyMjksIDAuMDA3MjUyLCAwLjAwNzI3MSIsIFwKLSAgICAgICAgICAiMC4wMDY4ODMsIDAuMDA3MDU0LCAwLjAwNzEyNywgMC4wMDcxODIsIDAuMDA3MjIsIDAuMDA3MjQxLCAwLjAwNzI1OCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNzkxOSwgMC4wMDgxNTUsIDAuMDA4MjU1LCAwLjAwODMyOCwgMC4wMDgzNzIsIDAuMDA4NDAxLCAwLjAwODQyMiIsIFwKLSAgICAgICAgICAiMC4wMDc5MTIsIDAuMDA4MTQ5LCAwLjAwODI1LCAwLjAwODMyMiwgMC4wMDgzNjYsIDAuMDA4Mzk2LCAwLjAwODQxNiIsIFwKLSAgICAgICAgICAiMC4wMDc5MTIsIDAuMDA4MTQ2LCAwLjAwODI0NywgMC4wMDgzMTksIDAuMDA4MzYzLCAwLjAwODM5MywgMC4wMDg0MTQiLCBcCi0gICAgICAgICAgIjAuMDA3OTAxLCAwLjAwODEzOCwgMC4wMDgyMzgsIDAuMDA4MzEyLCAwLjAwODM1NiwgMC4wMDgzODcsIDAuMDA4NDA4IiwgXAotICAgICAgICAgICIwLjAwNzg5NywgMC4wMDgxMywgMC4wMDgyMzEsIDAuMDA4MzA1LCAwLjAwODM1LCAwLjAwODM4MSwgMC4wMDg0MDMiLCBcCi0gICAgICAgICAgIjAuMDA3ODg1LCAwLjAwODExOCwgMC4wMDgyMTgsIDAuMDA4MjkzLCAwLjAwODMzOSwgMC4wMDgzNzEsIDAuMDA4MzkzIiwgXAotICAgICAgICAgICIwLjAwNzg3OSwgMC4wMDgxMDcsIDAuMDA4MjA2LCAwLjAwODI4MiwgMC4wMDgzMjksIDAuMDA4MzYyLCAwLjAwODM4NSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjgyMSwgMC4wMDY5ODIsIDAuMDA3MDQ5LCAwLjAwNzA5NiwgMC4wMDcxMjUsIDAuMDA3MTQzLCAwLjAwNzE1NiIsIFwKLSAgICAgICAgICAiMC4wMDY4MTcsIDAuMDA2OTcyLCAwLjAwNzAzOCwgMC4wMDcwODUsIDAuMDA3MTE2LCAwLjAwNzEzMSwgMC4wMDcxNDUiLCBcCi0gICAgICAgICAgIjAuMDA2Nzk3LCAwLjAwNjk2MSwgMC4wMDcwMjksIDAuMDA3MDc3LCAwLjAwNzEwNSwgMC4wMDcxMjUsIDAuMDA3MTM3IiwgXAotICAgICAgICAgICIwLjAwNjgsIDAuMDA2OTU3LCAwLjAwNzAyMywgMC4wMDcwNzEsIDAuMDA3MSwgMC4wMDcxMTksIDAuMDA3MTMzIiwgXAotICAgICAgICAgICIwLjAwNjc5NCwgMC4wMDY5NSwgMC4wMDcwMTcsIDAuMDA3MDYyLCAwLjAwNzA5NCwgMC4wMDcxMTMsIDAuMDA3MTMiLCBcCi0gICAgICAgICAgIjAuMDA2Nzc3LCAwLjAwNjkzOCwgMC4wMDcwMDUsIDAuMDA3MDU0LCAwLjAwNzA4NCwgMC4wMDcxMDQsIDAuMDA3MTE5IiwgXAotICAgICAgICAgICIwLjAwNjc3LCAwLjAwNjkyNywgMC4wMDY5OTQsIDAuMDA3MDQzLCAwLjAwNzA3MiwgMC4wMDcwOTUsIDAuMDA3MTEyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA4MDg5LCAwLjAwODMxMywgMC4wMDg0MDcsIDAuMDA4NDczLCAwLjAwODUxNCwgMC4wMDg1NDEsIDAuMDA4NTYiLCBcCi0gICAgICAgICAgIjAuMDA4MDgsIDAuMDA4MzA3LCAwLjAwODQwMSwgMC4wMDg0NjgsIDAuMDA4NTA4LCAwLjAwODUzNSwgMC4wMDg1NTUiLCBcCi0gICAgICAgICAgIjAuMDA4MDgxLCAwLjAwODMwNSwgMC4wMDgzOTksIDAuMDA4NDY2LCAwLjAwODUwNywgMC4wMDg1MzMsIDAuMDA4NTUyIiwgXAotICAgICAgICAgICIwLjAwODA4LCAwLjAwODMwMSwgMC4wMDgzOTUsIDAuMDA4NDYyLCAwLjAwODUwMywgMC4wMDg1MywgMC4wMDg1NDkiLCBcCi0gICAgICAgICAgIjAuMDA4MDczLCAwLjAwODI5NCwgMC4wMDgzODcsIDAuMDA4NDU1LCAwLjAwODQ5NywgMC4wMDg1MjUsIDAuMDA4NTQ1IiwgXAotICAgICAgICAgICIwLjAwODA2MywgMC4wMDgyODEsIDAuMDA4Mzc1LCAwLjAwODQ0NSwgMC4wMDg0ODYsIDAuMDA4NTE1LCAwLjAwODUzNiIsIFwKLSAgICAgICAgICAiMC4wMDgwNTgsIDAuMDA4MjcyLCAwLjAwODM2NSwgMC4wMDg0MzUsIDAuMDA4NDc5LCAwLjAwODUwOCwgMC4wMDg1MyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlMwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDg0OSwgMC4wMDg2NjcsIDAuMDA4NzQxLCAwLjAwODc5NSwgMC4wMDg4MjksIDAuMDA4ODUsIDAuMDA4ODY2IiwgXAotICAgICAgICAgICIwLjAwODQ5MSwgMC4wMDg2NjksIDAuMDA4NzQzLCAwLjAwODc5NiwgMC4wMDg4MjksIDAuMDA4ODUxLCAwLjAwODg2NyIsIFwKLSAgICAgICAgICAiMC4wMDg0OTUsIDAuMDA4NjcyLCAwLjAwODc0NSwgMC4wMDg3OTgsIDAuMDA4ODMxLCAwLjAwODg1NCwgMC4wMDg4NjkiLCBcCi0gICAgICAgICAgIjAuMDA4NDk2LCAwLjAwODY3MywgMC4wMDg3NDcsIDAuMDA4OCwgMC4wMDg4MzIsIDAuMDA4ODU0LCAwLjAwODg3MSIsIFwKLSAgICAgICAgICAiMC4wMDg0OTYsIDAuMDA4NjczLCAwLjAwODc0NywgMC4wMDg4MDIsIDAuMDA4ODMzLCAwLjAwODg1NywgMC4wMDg4NzMiLCBcCi0gICAgICAgICAgIjAuMDA4NDk1LCAwLjAwODY3NSwgMC4wMDg3NDksIDAuMDA4OCwgMC4wMDg4MzUsIDAuMDA4ODU2LCAwLjAwODg3MyIsIFwKLSAgICAgICAgICAiMC4wMDg0OTMsIDAuMDA4Njc0LCAwLjAwODc0OSwgMC4wMDg4MDIsIDAuMDA4ODM0LCAwLjAwODg1NywgMC4wMDg4NzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDc3MzQsIDAuMDA3OTU2LCAwLjAwODA1MSwgMC4wMDgxMiwgMC4wMDgxNjIsIDAuMDA4MTkxLCAwLjAwODIxMiIsIFwKLSAgICAgICAgICAiMC4wMDc3MjYsIDAuMDA3OTUxLCAwLjAwODA0NSwgMC4wMDgxMTMsIDAuMDA4MTU2LCAwLjAwODE4NSwgMC4wMDgyMDUiLCBcCi0gICAgICAgICAgIjAuMDA3NzI2LCAwLjAwNzk1LCAwLjAwODA0NSwgMC4wMDgxMTMsIDAuMDA4MTU1LCAwLjAwODE4NCwgMC4wMDgyMDQiLCBcCi0gICAgICAgICAgIjAuMDA3NzI1LCAwLjAwNzk1MSwgMC4wMDgwNDQsIDAuMDA4MTEzLCAwLjAwODE1NSwgMC4wMDgxODQsIDAuMDA4MjA0IiwgXAotICAgICAgICAgICIwLjAwNzcyNiwgMC4wMDc5NTEsIDAuMDA4MDQ1LCAwLjAwODExNCwgMC4wMDgxNTYsIDAuMDA4MTg1LCAwLjAwODIwNSIsIFwKLSAgICAgICAgICAiMC4wMDc3MjYsIDAuMDA3OTUyLCAwLjAwODA0NiwgMC4wMDgxMTQsIDAuMDA4MTU3LCAwLjAwODE4NiwgMC4wMDgyMDYiLCBcCi0gICAgICAgICAgIjAuMDA3NzI3LCAwLjAwNzk1MywgMC4wMDgwNDcsIDAuMDA4MTE3LCAwLjAwODE1OSwgMC4wMDgxODcsIDAuMDA4MjA4Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogTkFORDJYMSAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChOQU5EMlgxKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMDY2MDEzNjsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwODM5MzYyOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDgzOTM2MjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA4MzcyMTI7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzA2LCAwLjAwMDMwNiwgMC4wMDAzMDYsIDAuMDAwMzA2LCAwLjAwMDMwNiwgMC4wMDAzMDYsIDAuMDAwMzA2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzE3LCAwLjAwMDMxLCAwLjAwMDMwOCwgMC4wMDAzMDgsIDAuMDAwMzA4LCAwLjAwMDMwOCwgMC4wMDAzMDgiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDg2NTE3NjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA4NjQ0NjQ7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwODY1MTc2OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDE1OCwgMC4wMDAxNTcsIDAuMDAwMTU3LCAwLjAwMDE1NywgMC4wMDAxNTcsIDAuMDAwMTU3LCAwLjAwMDE1NyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDM0NywgMC4wMDAzNDgsIDAuMDAwMzQ4LCAwLjAwMDM0OCwgMC4wMDAzNDgsIDAuMDAwMzQ4LCAwLjAwMDM0OCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjA2MTM2Nzc7Ci0gICAgZnVuY3Rpb24gOiAiKCEoQSBCKSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4NjU0NCwgMC4xMjk3ODksIDAuMzc0NTcyLCAwLjU5MDQxMSwgMC44NzgzNTEsIDEuNDU0MjIsIDEuODEzNDkiLCBcCi0gICAgICAgICAgIjAuMDk4MDYxLCAwLjE0MTMxLCAwLjM4NjE0OSwgMC42MDE5NzMsIDAuODg5ODg3LCAxLjQ2NTc4LCAxLjgyNTAyIiwgXAotICAgICAgICAgICIwLjExMjYzMSwgMC4xNTU3NDUsIDAuMzk5Nzg0LCAwLjYxMzYyLCAwLjkwMTY3MiwgMS40NzY5MywgMS44MzcxMSIsIFwKLSAgICAgICAgICAiMC4xMjc2NTUsIDAuMTcwNDU5LCAwLjQxNTAwOSwgMC42Mjk4MjcsIDAuOTE1MDEzLCAxLjQ5MDc4LCAxLjg0OTk1IiwgXAotICAgICAgICAgICIwLjE0MjQzOSwgMC4xODU1ODksIDAuNDI5NDU2LCAwLjY0NTI3MywgMC45MjgwNjEsIDEuNTAzNTYsIDEuODYzNzEiLCBcCi0gICAgICAgICAgIjAuMTY2MTY2LCAwLjIwOTMwOSwgMC40NTI3MywgMC42Njg0MDEsIDAuOTUxNjU1LCAxLjUyNjkzLCAxLjg4NjUyIiwgXAotICAgICAgICAgICIwLjE4NzMwMSwgMC4yMjkwNzUsIDAuNDczMjM4LCAwLjY4ODgzNCwgMC45NzE0MjYsIDEuNTQ3MjQsIDEuOTA2NjMiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTY0NTA3LCAwLjI1MjEwOSwgMC43NDg1NjMsIDEuMTg2NSwgMS43NzA1OCwgMi45Mzg3MiwgMy42Njg4IiwgXAotICAgICAgICAgICIwLjE2NDQ3NiwgMC4yNTIwOTYsIDAuNzQ4NTM0LCAxLjE4NjUzLCAxLjc3MDYxLCAyLjkzODczLCAzLjY2ODg4IiwgXAotICAgICAgICAgICIwLjE2NDc3OCwgMC4yNTIwNCwgMC43NDg1NDYsIDEuMTg2OTUsIDEuNzcwNjMsIDIuOTM4NCwgMy42Njg3OSIsIFwKLSAgICAgICAgICAiMC4xNjcyMDIsIDAuMjUyNjQsIDAuNzQ4ODksIDEuMTg2OTUsIDEuNzcwNjUsIDIuOTM4NzcsIDMuNjY4ODYiLCBcCi0gICAgICAgICAgIjAuMTcxMzk0LCAwLjI1NDczMywgMC43NDg0ODEsIDEuMTg2NDQsIDEuNzcwMDMsIDIuOTM3ODcsIDMuNjY4OTkiLCBcCi0gICAgICAgICAgIjAuMTgwNTk3LCAwLjI2MDc0MywgMC43NDg2LCAxLjE4NjM0LCAxLjc3MDY4LCAyLjkzODY1LCAzLjY2OTUzIiwgXAotICAgICAgICAgICIwLjE4OTY5NCwgMC4yNjg4OTgsIDAuNzQ4MzQxLCAxLjE4NjE5LCAxLjc3MDA0LCAyLjkzODY4LCAzLjY2OTUiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTkyMzYxLCAwLjI5MDA5NCwgMC44NDQyNjMsIDEuMzMzNjMsIDEuOTg0NTYsIDMuMjg2NiwgNC4xMDA1OSIsIFwKLSAgICAgICAgICAiMC4yMDM4MzEsIDAuMzAxNzI3LCAwLjg1NTkwMiwgMS4zNDUzLCAxLjk5NjE2LCAzLjI5OTM1LCA0LjExMjYiLCBcCi0gICAgICAgICAgIjAuMjE3MzI5LCAwLjMxNTM2MywgMC44NjkyNTUsIDEuMzU4MzMsIDIuMDExMDMsIDMuMzEyNzIsIDQuMTI2NTciLCBcCi0gICAgICAgICAgIjAuMjMwNzU4LCAwLjMyODY5OSwgMC44ODMwNzcsIDEuMzcxODYsIDIuMDIzNjMsIDMuMzI2NTMsIDQuMTQwMDkiLCBcCi0gICAgICAgICAgIjAuMjQzNjE3LCAwLjM0MjIxMywgMC44OTY0ODIsIDEuMzg1NDcsIDIuMDM3MTIsIDMuMzQwMzMsIDQuMTUzOSIsIFwKLSAgICAgICAgICAiMC4yNjUzNTQsIDAuMzYyODE2LCAwLjkxODAxNiwgMS40MDcyNywgMi4wNiwgMy4zNjEzNywgNC4xNzUzNCIsIFwKLSAgICAgICAgICAiMC4yODQ1NDQsIDAuMzgyMzAyLCAwLjkzNzE5MywgMS40MjU3MSwgMi4wNzczMiwgMy4zODAyNywgNC4xOTQ1NiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zNDUyNywgMC41MzQ3NiwgMS41OTA1MiwgMi41Mjc0NywgMy43ODU4MiwgNi4yNTg3LCA3LjgwNjcxIiwgXAotICAgICAgICAgICIwLjM0NTkxNCwgMC41MzQ3ODIsIDEuNTkwNzksIDIuNTI0MSwgMy43ODU2OSwgNi4yNTYzNSwgNy44MDY1MyIsIFwKLSAgICAgICAgICAiMC4zNDY1NjksIDAuNTMxOTY3LCAxLjU5NjkxLCAyLjUzOTU5LCAzLjc3NTAyLCA2LjI1ODQzLCA3LjgwNjM2IiwgXAotICAgICAgICAgICIwLjM0NjgwNCwgMC41MzQ2NzIsIDEuNTkyNzgsIDIuNTM4MSwgMy43ODU3NiwgNi4yNTcyNCwgNy44MDM4NCIsIFwKLSAgICAgICAgICAiMC4zNDY4MzgsIDAuNTM0NDk1LCAxLjU5NzE2LCAyLjUzMzc5LCAzLjc3NDg3LCA2LjI1NzUzLCA3LjgwNTY1IiwgXAotICAgICAgICAgICIwLjM0ODQwMiwgMC41MzQ1MzQsIDEuNTk3OTUsIDIuNTI3MDQsIDMuNzY5ODEsIDYuMjU4OTIsIDcuODA2MjYiLCBcCi0gICAgICAgICAgIjAuMzUxMTY1LCAwLjUzNTE4NywgMS41OTg2OSwgMi41MzQ3LCAzLjc4NTA1LCA2LjI1ODc5LCA3LjgwNjQyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4MzQxNCwgMC4xMjYyNDQsIDAuMzY4OTc2LCAwLjU4MzI3NywgMC44Njg2MzEsIDEuNDQwMTEsIDEuNzk2NTEiLCBcCi0gICAgICAgICAgIjAuMDk1MDczLCAwLjEzNzkwOSwgMC4zODA2MTgsIDAuNTk0ODAzLCAwLjg4MDQyOCwgMS40NTE5NSwgMS44MDgyNiIsIFwKLSAgICAgICAgICAiMC4xMDk4ODYsIDAuMTUyMzU2LCAwLjM5NDY2LCAwLjYwNjcyMSwgMC44OTIxNzgsIDEuNDYzMjIsIDEuODIwNDgiLCBcCi0gICAgICAgICAgIjAuMTI0Njc4LCAwLjE2NzQ5MSwgMC40MDk1MzksIDAuNjIzMDU0LCAwLjkwNTM5NCwgMS40NzY4MywgMS44MzMyNSIsIFwKLSAgICAgICAgICAiMC4xMzk0MjEsIDAuMTgyMjA3LCAwLjQyNDA1OCwgMC42MzgxNDUsIDAuOTE4NzQ4LCAxLjQ4OTksIDEuODQ2OCIsIFwKLSAgICAgICAgICAiMC4xNjM0OTksIDAuMjA1OTYzLCAwLjQ0NzU3OCwgMC42NjE0NjEsIDAuOTQyNDA3LCAxLjUxMzEsIDEuODY5NjQiLCBcCi0gICAgICAgICAgIjAuMTg0MjksIDAuMjI2Njc3LCAwLjQ2ODA5MiwgMC42ODE3MzksIDAuOTYyMDUyLCAxLjUzMzQ4LCAxLjg4OTc3Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE2MDg3NCwgMC4yNDc0NjMsIDAuNzQxMTA5LCAxLjE3NTI3LCAxLjc1NTUyLCAyLjkxNDc1LCAzLjY0MDY4IiwgXAotICAgICAgICAgICIwLjE2MDY0NSwgMC4yNDc0ODYsIDAuNzQyMjgyLCAxLjE3NTU1LCAxLjc1NTQzLCAyLjkxNjcyLCAzLjY0MDU0IiwgXAotICAgICAgICAgICIwLjE2MTE4NSwgMC4yNDc0ODUsIDAuNzQwMzc3LCAxLjE3NTY1LCAxLjc1NjkyLCAyLjkxNzg1LCAzLjY0MDA4IiwgXAotICAgICAgICAgICIwLjE2NDE0LCAwLjI0ODAzNiwgMC43NDIxOTQsIDEuMTc2MDIsIDEuNzU2ODgsIDIuOTE0NjUsIDMuNjQwNTMiLCBcCi0gICAgICAgICAgIjAuMTY4MiwgMC4yNTA4NzIsIDAuNzQwMjY0LCAxLjE3NDkyLCAxLjc1NTcsIDIuOTE1NTIsIDMuNjQzNjciLCBcCi0gICAgICAgICAgIjAuMTc3MDE5LCAwLjI1NzEwMSwgMC43NDA3NDksIDEuMTc2NTEsIDEuNzU2MTEsIDIuOTE1MzQsIDMuNjQ5MDkiLCBcCi0gICAgICAgICAgIjAuMTg2NjkzLCAwLjI2MzgyNSwgMC43NDI0MTMsIDEuMTc1MTQsIDEuNzU0OTYsIDIuOTE1MjcsIDMuNjQ4ODQiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTg3NzIzLCAwLjI4NTU5NywgMC44Mzk2MDksIDEuMzI4NTksIDEuOTc5OTUsIDMuMjgyMzcsIDQuMDk2NTciLCBcCi0gICAgICAgICAgIjAuMTk4MDQsIDAuMjk1OTQ1LCAwLjg1MDI3NCwgMS4zMzkyOSwgMS45OTAyOSwgMy4yOTI5NywgNC4xMDcwNyIsIFwKLSAgICAgICAgICAiMC4yMTEyMDIsIDAuMzA5MDYyLCAwLjg2MzU3MiwgMS4zNTMyNiwgMi4wMDQyOCwgMy4zMDcyMywgNC4xMjA1NSIsIFwKLSAgICAgICAgICAiMC4yMjQxNTEsIDAuMzIyMTQzLCAwLjg3NjM3OSwgMS4zNjUxLCAyLjAxNzI5LCAzLjMxOTYzLCA0LjEzMzQ5IiwgXAotICAgICAgICAgICIwLjIzNzI4MiwgMC4zMzUzODMsIDAuODkwMTkzLCAxLjM3OTMyLCAyLjAzMDYsIDMuMzMyOTEsIDQuMTQ3IiwgXAotICAgICAgICAgICIwLjI1ODQwOCwgMC4zNTY0NjEsIDAuOTExMzg3LCAxLjM5OTk4LCAyLjA1MjE2LCAzLjM1NDEzLCA0LjE2OCIsIFwKLSAgICAgICAgICAiMC4yNzcwMjksIDAuMzc0ODk0LCAwLjkyOTYxNywgMS40MTgxNiwgMi4wNjk5NywgMy4zNzI3MiwgNC4xODY4MSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zNDY1NzMsIDAuNTMyMTMyLCAxLjU5MDg5LCAyLjUyNDUzLCAzLjc3NTA4LCA2LjI1ODYxLCA3LjgwNjc4IiwgXAotICAgICAgICAgICIwLjM0NjUyMSwgMC41MzI4MTQsIDEuNTkwMjksIDIuNTI1NjksIDMuNzg0MzgsIDYuMjU5MDUsIDcuODA2NzEiLCBcCi0gICAgICAgICAgIjAuMzQ1MjQyLCAwLjUzNDczNywgMS41OTAxMSwgMi41MjcxMiwgMy43NzAyMiwgNi4yNTUxNCwgNy44MDY0NCIsIFwKLSAgICAgICAgICAiMC4zNDY1OTcsIDAuNTM0MDE2LCAxLjU5NzIxLCAyLjUzNjksIDMuNzcwNDksIDYuMjU5MDcsIDcuODA2MTciLCBcCi0gICAgICAgICAgIjAuMzQ3MSwgMC41MzIxMDQsIDEuNTkyNDgsIDIuNTI3NzEsIDMuNzc1OTUsIDYuMjU4OTYsIDcuODA2NDMiLCBcCi0gICAgICAgICAgIjAuMzUwNzI4LCAwLjUzNDY5NiwgMS41OTI0MywgMi41MjQ5NCwgMy43Njg3OSwgNi4yNTkxNywgNy44MDYxOCIsIFwKLSAgICAgICAgICAiMC4zNTYxMDMsIDAuNTM2NDEyLCAxLjU5MDU3LCAyLjUzNTAxLCAzLjc4NTY0LCA2LjI1NzI4LCA3LjgwNjM4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxNDczLCAwLjAwMTQ3MywgMC4wMDE0NzMsIDAuMDAxNDczLCAwLjAwMTQ3MywgMC4wMDE0NzIsIDAuMDAxNDcxIiwgXAotICAgICAgICAgICIwLjAwMTQ2NCwgMC4wMDE0NjUsIDAuMDAxNDY2LCAwLjAwMTQ2NywgMC4wMDE0NjYsIDAuMDAxNDY3LCAwLjAwMTQ2NiIsIFwKLSAgICAgICAgICAiMC4wMDE0NTksIDAuMDAxNDYyLCAwLjAwMTQ2NCwgMC4wMDE0NjQsIDAuMDAxNDY1LCAwLjAwMTQ2NSwgMC4wMDE0NjQiLCBcCi0gICAgICAgICAgIjAuMDAxNDU2LCAwLjAwMTQ1OSwgMC4wMDE0NjQsIDAuMDAxNDY1LCAwLjAwMTQ2NCwgMC4wMDE0NjQsIDAuMDAxNDY1IiwgXAotICAgICAgICAgICIwLjAwMTQ1MywgMC4wMDE0NTcsIDAuMDAxNDYzLCAwLjAwMTQ2NCwgMC4wMDE0NjQsIDAuMDAxNDY0LCAwLjAwMTQ2NSIsIFwKLSAgICAgICAgICAiMC4wMDE0NDksIDAuMDAxNDU0LCAwLjAwMTQ2MSwgMC4wMDE0NjMsIDAuMDAxNDYzLCAwLjAwMTQ2MywgMC4wMDE0NjMiLCBcCi0gICAgICAgICAgIjAuMDAxNDQ3LCAwLjAwMTQ1MSwgMC4wMDE0NiwgMC4wMDE0NjIsIDAuMDAxNDYzLCAwLjAwMTQ2MywgMC4wMDE0NjQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDAyNzksIDAuMDAwMjc5LCAwLjAwMDI4LCAwLjAwMDI4MSwgMC4wMDAyODEsIDAuMDAwMjgxLCAwLjAwMDI4MSIsIFwKLSAgICAgICAgICAiMC4wMDAyNzEsIDAuMDAwMjc0LCAwLjAwMDI3OSwgMC4wMDAyOCwgMC4wMDAyOCwgMC4wMDAyOCwgMC4wMDAyOCIsIFwKLSAgICAgICAgICAiMC4wMDAyNjIsIDAuMDAwMjY4LCAwLjAwMDI3NiwgMC4wMDAyNzgsIDAuMDAwMjc5LCAwLjAwMDI4LCAwLjAwMDI4IiwgXAotICAgICAgICAgICIwLjAwMDI1NSwgMC4wMDAyNjIsIDAuMDAwMjc0LCAwLjAwMDI3NywgMC4wMDAyNzgsIDAuMDAwMjc5LCAwLjAwMDI4IiwgXAotICAgICAgICAgICIwLjAwMDI0OCwgMC4wMDAyNTgsIDAuMDAwMjcyLCAwLjAwMDI3NSwgMC4wMDAyNzcsIDAuMDAwMjc5LCAwLjAwMDI3OSIsIFwKLSAgICAgICAgICAiMC4wMDAyNDEsIDAuMDAwMjUsIDAuMDAwMjY5LCAwLjAwMDI3MywgMC4wMDAyNzUsIDAuMDAwMjc4LCAwLjAwMDI3OCIsIFwKLSAgICAgICAgICAiMC4wMDAyMzUsIDAuMDAwMjQ2LCAwLjAwMDI2NiwgMC4wMDAyNzEsIDAuMDAwMjc0LCAwLjAwMDI3NywgMC4wMDAyNzgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDExNTksIDAuMDAxMTYsIDAuMDAxMTYxLCAwLjAwMTE2LCAwLjAwMTE2MSwgMC4wMDExNjEsIDAuMDAxMTYxIiwgXAotICAgICAgICAgICIwLjAwMTE1OCwgMC4wMDExNjEsIDAuMDAxMTY1LCAwLjAwMTE2NSwgMC4wMDExNjYsIDAuMDAxMTY2LCAwLjAwMTE2NiIsIFwKLSAgICAgICAgICAiMC4wMDExNTIsIDAuMDAxMTU3LCAwLjAwMTE2NCwgMC4wMDExNjUsIDAuMDAxMTY3LCAwLjAwMTE2NywgMC4wMDExNjYiLCBcCi0gICAgICAgICAgIjAuMDAxMTQ3LCAwLjAwMTE1NCwgMC4wMDExNjMsIDAuMDAxMTY0LCAwLjAwMTE2NSwgMC4wMDExNjYsIDAuMDAxMTY3IiwgXAotICAgICAgICAgICIwLjAwMTE0MiwgMC4wMDExNSwgMC4wMDExNjEsIDAuMDAxMTYzLCAwLjAwMTE2NSwgMC4wMDExNjYsIDAuMDAxMTY2IiwgXAotICAgICAgICAgICIwLjAwMTEzNiwgMC4wMDExNDMsIDAuMDAxMTU5LCAwLjAwMTE2MiwgMC4wMDExNjQsIDAuMDAxMTY1LCAwLjAwMTE2NiIsIFwKLSAgICAgICAgICAiMC4wMDExMzEsIDAuMDAxMTQxLCAwLjAwMTE1NywgMC4wMDExNjEsIDAuMDAxMTYzLCAwLjAwMTE2NSwgMC4wMDExNjYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDAyNzgsIDAuMDAwMjc5LCAwLjAwMDI4LCAwLjAwMDI4LCAwLjAwMDI4LCAwLjAwMDI4LCAwLjAwMDI4IiwgXAotICAgICAgICAgICIwLjAwMDI2OCwgMC4wMDAyNzIsIDAuMDAwMjc4LCAwLjAwMDI3OSwgMC4wMDAyNzksIDAuMDAwMjgsIDAuMDAwMjgiLCBcCi0gICAgICAgICAgIjAuMDAwMjU3LCAwLjAwMDI2NSwgMC4wMDAyNzUsIDAuMDAwMjc3LCAwLjAwMDI3OCwgMC4wMDAyNzksIDAuMDAwMjc5IiwgXAotICAgICAgICAgICIwLjAwMDI0OSwgMC4wMDAyNTgsIDAuMDAwMjcyLCAwLjAwMDI3NSwgMC4wMDAyNzcsIDAuMDAwMjc4LCAwLjAwMDI3OSIsIFwKLSAgICAgICAgICAiMC4wMDAyNDMsIDAuMDAwMjUzLCAwLjAwMDI3LCAwLjAwMDI3NCwgMC4wMDAyNzYsIDAuMDAwMjc4LCAwLjAwMDI3OCIsIFwKLSAgICAgICAgICAiMC4wMDAyMzQsIDAuMDAwMjQ2LCAwLjAwMDI2NiwgMC4wMDAyNzEsIDAuMDAwMjc0LCAwLjAwMDI3NywgMC4wMDAyNzciLCBcCi0gICAgICAgICAgIjAuMDAwMjI5LCAwLjAwMDI0MSwgMC4wMDAyNjMsIDAuMDAwMjY5LCAwLjAwMDI3MywgMC4wMDAyNzYsIDAuMDAwMjc3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IE5BTkQzQlgyICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChOQU5EM0JYMikgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjIxNTI5NjsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQU4pICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDU2Nzc3OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDU2NzY1NzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA1Njc3NzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA2OTEsIDAuMDAwNjc3LCAwLjAwMDY2OCwgMC4wMDA2NjMsIDAuMDAwNjU5LCAwLjAwMDY1NiwgMC4wMDA2NTYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDE4MTcsIDAuMDAxODA4LCAwLjAwMTgwMywgMC4wMDE3OTksIDAuMDAxNzk1LCAwLjAwMTc5NSwgMC4wMDE3OTQiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTY2NDY0OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTY2NDY0OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTY2MDU3OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDYxMiwgMC4wMDA2MTIsIDAuMDAwNjExLCAwLjAwMDYxMSwgMC4wMDA2MTEsIDAuMDAwNjExLCAwLjAwMDYxMSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDY0LCAwLjAwMDYyLCAwLjAwMDYxNywgMC4wMDA2MTYsIDAuMDAwNjE2LCAwLjAwMDYxNSwgMC4wMDA2MTUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEMpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTUzOTA4OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTUzNjk5OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTUzOTA4OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDI4NiwgMC4wMDAyODUsIDAuMDAwMjg1LCAwLjAwMDI4NSwgMC4wMDAyODUsIDAuMDAwMjg1LCAwLjAwMDI4NSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDY5NSwgMC4wMDA2OTYsIDAuMDAwNjk1LCAwLjAwMDY5OCwgMC4wMDA2OTYsIDAuMDAwNjk2LCAwLjAwMDY5NiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjA4NzIxNzk7Ci0gICAgZnVuY3Rpb24gOiAiKCEoKCghQU4pIEIpIEMpKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQU4iOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExNTIyNSwgMC4yOTYzNzUsIDAuNDQwNDkzLCAwLjYyMDUxNSwgMC44MDA1MTUsIDAuOTgwNTgyLCAxLjE2MDM4IiwgXAotICAgICAgICAgICIwLjEyNzAyOSwgMC4zMDgxOTYsIDAuNDUyMzM5LCAwLjYzMjM5LCAwLjgxMjQxLCAwLjk5MjM5MSwgMS4xNzIxNiIsIFwKLSAgICAgICAgICAiMC4xNDI0NjEsIDAuMzIzNzI1LCAwLjQ2Nzg0MiwgMC42NDc5MjQsIDAuODI3OTE3LCAxLjAwNzk3LCAxLjE4Nzg0IiwgXAotICAgICAgICAgICIwLjE1NzkyOCwgMC4zMzkyMDksIDAuNDgzMzMxLCAwLjY2MzQxMywgMC44NDM0NSwgMS4wMjMzNCwgMS4yMDMyOSIsIFwKLSAgICAgICAgICAiMC4xNzI5MzEsIDAuMzU0MTMsIDAuNDk4MjYyLCAwLjY3ODMzMywgMC44NTgzNDksIDEuMDM4MzIsIDEuMjE4MSIsIFwKLSAgICAgICAgICAiMC4xOTcyMTksIDAuMzc4MzkyLCAwLjUyMjUxNywgMC43MDI1OTUsIDAuODgyNjUzLCAxLjA2MjUxLCAxLjI0MjU2IiwgXAotICAgICAgICAgICIwLjIxNzY1MSwgMC4zOTg4NTEsIDAuNTQyOTc5LCAwLjcyMzAyNiwgMC45MDMwNTMsIDEuMDgzMDcsIDEuMjYyOTgiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTA3MDA1LCAwLjQ2NzgyNCwgMC43NjAxMjEsIDEuMTI1MDIsIDEuNDkwMDksIDEuODU1MzEsIDIuMjIxODEiLCBcCi0gICAgICAgICAgIjAuMTA2OTQ3LCAwLjQ2Nzg4OSwgMC43NTk2MTIsIDEuMTI1NCwgMS40OTA0NSwgMS44NTU3NiwgMi4yMjA0NiIsIFwKLSAgICAgICAgICAiMC4xMDY3ODYsIDAuNDY3Njk3LCAwLjc2MDA0NywgMS4xMjUzOCwgMS40OTEwNywgMS44NTY3NCwgMi4yMjEwMSIsIFwKLSAgICAgICAgICAiMC4xMDY4NTUsIDAuNDY3Nzc5LCAwLjc2MDAzMywgMS4xMjUwOSwgMS40OTAxOSwgMS44NTU2NiwgMi4yMjA1OCIsIFwKLSAgICAgICAgICAiMC4xMDcwNzksIDAuNDY3ODYxLCAwLjc1OTYzLCAxLjEyNTQsIDEuNDkwNDMsIDEuODU1NzMsIDIuMjIwNDUiLCBcCi0gICAgICAgICAgIjAuMTA3MjI4LCAwLjQ2NzkyMywgMC43NjAxMzIsIDEuMTI1MzEsIDEuNDkwNDMsIDEuODU1MjksIDIuMjIxOTIiLCBcCi0gICAgICAgICAgIjAuMTA3OTc0LCAwLjQ2NzkxNiwgMC43NjAxNiwgMS4xMjQ4MSwgMS40OTExNywgMS44NTY1OCwgMi4yMjA5OSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMjkxMDMsIDAuODQxMjYyLCAxLjMzMDc0LCAxLjk0MjM4LCAyLjU1NDIzLCAzLjE2NTA5LCAzLjc3NjIyIiwgXAotICAgICAgICAgICIwLjI0MDQ1NCwgMC44NTI3MjcsIDEuMzQyMDcsIDEuOTUzNzgsIDIuNTY1ODEsIDMuMTc2NjQsIDMuNzg3NzciLCBcCi0gICAgICAgICAgIjAuMjU1MTg0LCAwLjg2NzUxLCAxLjM1Njk2LCAxLjk2ODk0LCAyLjU4MDU4LCAzLjE5MTg2LCAzLjgwMjQ4IiwgXAotICAgICAgICAgICIwLjI2OTkyOSwgMC44ODIzNzEsIDEuMzcxNzYsIDEuOTgzNDksIDIuNTk1NTEsIDMuMjA2NDIsIDMuODE3NDkiLCBcCi0gICAgICAgICAgIjAuMjg0NDI3LCAwLjg5Njk2MywgMS4zODY3OSwgMS45OTg3MSwgMi42MDk5NiwgMy4yMjExMiwgMy44MzIyNiIsIFwKLSAgICAgICAgICAiMC4zMDY0NDIsIDAuOTE5MDczLCAxLjQwODc4LCAyLjAyMDQsIDIuNjMyMTksIDMuMjQzMSwgMy44NTQzNyIsIFwKLSAgICAgICAgICAiMC4zMjQwMTYsIDAuOTM2NjY2LCAxLjQyNjEzLCAyLjAzNzg4LCAyLjY1MDEyLCAzLjI2MDc1LCAzLjg3MjA0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMwMDA4NywgMS40NTYyMSwgMi4zODA2NywgMy41MjM1MywgNC42ODU0MywgNS44MjQ3NSwgNi45NzE5MSIsIFwKLSAgICAgICAgICAiMC4yOTk5NDQsIDEuNDU2MjMsIDIuMzcxMjIsIDMuNTIyOSwgNC42ODU1NSwgNS44MjU1NCwgNi45NzE5OSIsIFwKLSAgICAgICAgICAiMC4zMDAwOTQsIDEuNDU2MjEsIDIuMzcxNzQsIDMuNTM3OTEsIDQuNjc3MzcsIDUuODI1MTksIDYuOTY4OTIiLCBcCi0gICAgICAgICAgIjAuMzAwMTAyLCAxLjQ1NjIyLCAyLjM3MTI2LCAzLjUyMjkyLCA0LjY4NTUzLCA1LjgyMDk5LCA2Ljk3MTk5IiwgXAotICAgICAgICAgICIwLjI5OTc0MiwgMS40NTAxOCwgMi4zODkzNSwgMy41MzgyMywgNC42NzU5NCwgNS44MjczMywgNi45NjkyMyIsIFwKLSAgICAgICAgICAiMC4yOTk1ODIsIDEuNDU5OTcsIDIuMzczMTksIDMuNTM2MjEsIDQuNjg1MjksIDUuODI0NzIsIDYuOTcxODUiLCBcCi0gICAgICAgICAgIjAuMzAwMTQ5LCAxLjQ1ODIxLCAyLjM4MTU0LCAzLjUyMjUyLCA0LjY4NTUzLCA1LjgyNjQ2LCA2Ljk3MTc5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1MjgzNCwgMC4yMzMxMSwgMC4zNzcwMDEsIDAuNTU3MDkyLCAwLjczNzE1MywgMC45MTY5NDYsIDEuMDk2NjYiLCBcCi0gICAgICAgICAgIjAuMDY0NTA1LCAwLjI0NDc4NiwgMC4zODg4NDcsIDAuNTY4Nzg4LCAwLjc0ODU0MSwgMC45Mjg2NzEsIDEuMTA4NDkiLCBcCi0gICAgICAgICAgIjAuMDc5NDQ2LCAwLjI1OTYyMiwgMC40MDM1MjQsIDAuNTgzNzI0LCAwLjc2MzU3OSwgMC45NDM2NzUsIDEuMTIzNDYiLCBcCi0gICAgICAgICAgIjAuMDk0MDg1LCAwLjI3MzY4NywgMC40MTc2NDMsIDAuNTk2NjY0LCAwLjc3MzU0NiwgMC45NTM4NjcsIDEuMTMzNCIsIFwKLSAgICAgICAgICAiMC4xMDg4NDUsIDAuMjg4MjU0LCAwLjQzMjE0MywgMC42MTIwNDYsIDAuNzkxMjEsIDAuOTY2NjMzLCAxLjE0NjY4IiwgXAotICAgICAgICAgICIwLjEzMjYxNiwgMC4zMTE4MDksIDAuNDU1NDQ3LCAwLjYzNTE4NywgMC44MTUxODMsIDAuOTk1MDIsIDEuMTczNzgiLCBcCi0gICAgICAgICAgIjAuMTUxMzc0LCAwLjMzMzE3NSwgMC40NzU0NzMsIDAuNjU1NzExLCAwLjgzNTYxMSwgMS4wMTUyNywgMS4xOTUyMyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTY2NTksIDAuNDYyMTQ2LCAwLjc1NDMwNSwgMS4xMTk2NywgMS40ODUxNCwgMS44NTAzMSwgMi4yMTUwOSIsIFwKLSAgICAgICAgICAiMC4wOTY2NjYsIDAuNDYyNDEzLCAwLjc1NDQxNCwgMS4xMTk3MiwgMS40ODQ3MywgMS44NTAzMiwgMi4yMTYyMSIsIFwKLSAgICAgICAgICAiMC4wOTg3MjQsIDAuNDYyMTAyLCAwLjc1NDExMiwgMS4xMTk3NywgMS40ODU1MywgMS44NTA0OSwgMi4yMTU2NSIsIFwKLSAgICAgICAgICAiMC4xMDM2OTUsIDAuNDYyMTA0LCAwLjc1NDgwOSwgMS4xMTk0NSwgMS40ODQ2MiwgMS44NTA1MiwgMi4yMTUxNSIsIFwKLSAgICAgICAgICAiMC4xMTAxODUsIDAuNDYyMDkxLCAwLjc1NDg0NywgMS4xMTk2MiwgMS40ODUzMSwgMS44NDk4NSwgMi4yMTYzNiIsIFwKLSAgICAgICAgICAiMC4xMjIwNTgsIDAuNDYzMjYxLCAwLjc1NDQwOSwgMS4xMTkzNywgMS40ODQ5NSwgMS44NDk4NiwgMi4yMTU4NyIsIFwKLSAgICAgICAgICAiMC4xMzQwNzksIDAuNDY2MTE0LCAwLjc1NDE3NSwgMS4xMTk2NiwgMS40ODUyNCwgMS44NTA4MywgMi4yMTUxMiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNzU2MzksIDAuNzg3NjI5LCAxLjI3NzQzLCAxLjg4ODA2LCAyLjQ5OTM4LCAzLjExMTc4LCAzLjcyMTE1IiwgXAotICAgICAgICAgICIwLjE4NTk4MywgMC43OTgzNjIsIDEuMjg3NjEsIDEuODk5NDksIDIuNTExNDIsIDMuMTIyNDksIDMuNzMzMDIiLCBcCi0gICAgICAgICAgIjAuMTk4NTg5LCAwLjgxMTMzNSwgMS4zMDA3MiwgMS45MTMzNSwgMi41MjQwNywgMy4xMzUwOCwgMy43NDYzMiIsIFwKLSAgICAgICAgICAiMC4yMTExOCwgMC44MjM5NjEsIDEuMzEzNTgsIDEuOTI1MywgMi41MzcyMywgMy4xNDgzNSwgMy43NTkzNCIsIFwKLSAgICAgICAgICAiMC4yMjM3MTYsIDAuODM2NzE0LCAxLjMyNjQxLCAxLjkzODE2LCAyLjU1MDE5LCAzLjE2MTU4LCAzLjc3MjAxIiwgXAotICAgICAgICAgICIwLjI0MzgwNSwgMC44NTcyNiwgMS4zNDY3NSwgMS45NTg1NSwgMi41NzA3MSwgMy4xODE3NCwgMy43OTI3MiIsIFwKLSAgICAgICAgICAiMC4yNjE1NzYsIDAuODc1NDA1LCAxLjM2NTIzLCAxLjk3NzQyLCAyLjU4ODUyLCAzLjIwMDA0LCAzLjgxMDk5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMwMDQzLCAxLjQ2MTE0LCAyLjM3MDEzLCAzLjUzNzIsIDQuNjg0NTYsIDUuODIwNjgsIDYuOTcwODIiLCBcCi0gICAgICAgICAgIjAuMjk4OTU4LCAxLjQ0OTgsIDIuMzcyOTYsIDMuNTM3ODYsIDQuNjcyMzksIDUuODE5NDQsIDYuOTcxOCIsIFwKLSAgICAgICAgICAiMC4zMDA0MTUsIDEuNDYxNDEsIDIuMzgxMzMsIDMuNTIxMTcsIDQuNjg1MywgNS44MjQ5OSwgNi45NzIwMyIsIFwKLSAgICAgICAgICAiMC4zMDAzMjcsIDEuNDUwMzcsIDIuMzg4ODgsIDMuNTM3NTYsIDQuNjc3ODQsIDUuODIyNDMsIDYuOTY5MjgiLCBcCi0gICAgICAgICAgIjAuMzAwMTUyLCAxLjQ1NjQ1LCAyLjM3NzYyLCAzLjUzNzUyLCA0LjY4MDM1LCA1LjgyMDQ3LCA2Ljk2ODg0IiwgXAotICAgICAgICAgICIwLjMwMjQ5MywgMS40NTYyMywgMi4zNzExMSwgMy41MjI2MywgNC42ODU0MywgNS44MjM1OCwgNi45NzE3NSIsIFwKLSAgICAgICAgICAiMC4zMDYyNTYsIDEuNDYwMjQsIDIuMzc2MjcsIDMuNTM4MjUsIDQuNjc0OTcsIDUuODIzMjcsIDYuOTcxODkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDUwNDI4LCAwLjIzMDUzMiwgMC4zNzQ1NjEsIDAuNTU0NjY4LCAwLjczNTE5MywgMC45MTQ4NzcsIDEuMDk1MTEiLCBcCi0gICAgICAgICAgIjAuMDYxODU5LCAwLjI0MjIyOSwgMC4zODU4OTEsIDAuNTY1ODM2LCAwLjc0NjAwNiwgMC45MjYwNywgMS4xMDYzIiwgXAotICAgICAgICAgICIwLjA3Njk5NiwgMC4yNTY4NTQsIDAuNDAwOTg3LCAwLjU4MDg5MiwgMC43NjEzODMsIDAuOTQxMDkxLCAxLjEyMTIzIiwgXAotICAgICAgICAgICIwLjA5MTY3MywgMC4yNzExOTMsIDAuNDE1MTcyLCAwLjU5NTQ3NiwgMC43NzEzNTcsIDAuOTUxNjksIDEuMTMxNDYiLCBcCi0gICAgICAgICAgIjAuMTA2NDI4LCAwLjI4NTgwMywgMC40Mjk2NzQsIDAuNjA5Njg5LCAwLjc5MDAzMSwgMC45NjQ2MDMsIDEuMTQ0NzkiLCBcCi0gICAgICAgICAgIjAuMTI5NzQ5LCAwLjMwOTQ1MiwgMC40NTMxMTgsIDAuNjMzMSwgMC44MTMxOTUsIDAuOTkyOTcyLCAxLjE3MzYxIiwgXAotICAgICAgICAgICIwLjE0ODM3OSwgMC4zMzA2ODcsIDAuNDczNDczLCAwLjY1MzQzMiwgMC44MzM0MTgsIDEuMDEzOTYsIDEuMTkzMzUiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk0MjM5LCAwLjQ2MDMyNCwgMC43NTM0OCwgMS4xMjA4NiwgMS40ODY4OSwgMS44NTMwNywgMi4yMTk1IiwgXAotICAgICAgICAgICIwLjA5NDI1OSwgMC40NjE1MzgsIDAuNzU0MzYxLCAxLjEyMjQ4LCAxLjQ4NjYsIDEuODU0NDIsIDIuMjE5NDgiLCBcCi0gICAgICAgICAgIjAuMDk2NDkxLCAwLjQ2MDI4MywgMC43NTM2NDUsIDEuMTIyOTgsIDEuNDg3MTgsIDEuODUzMzYsIDIuMjIxMTkiLCBcCi0gICAgICAgICAgIjAuMTAxNzA3LCAwLjQ2MDU2MywgMC43NTUyMjQsIDEuMTE5OTMsIDEuNDg5OTgsIDEuODUzMDIsIDIuMjI0NDMiLCBcCi0gICAgICAgICAgIjAuMTA4NDA5LCAwLjQ2MDQwNywgMC43NTU1MzksIDEuMTIyMjgsIDEuNDg2OTksIDEuODU3MTcsIDIuMjIzNDQiLCBcCi0gICAgICAgICAgIjAuMTIwNTUyLCAwLjQ2MTg0LCAwLjc1MzYzNywgMS4xMjAxLCAxLjQ4NjU4LCAxLjg1MjcsIDIuMjE4OTUiLCBcCi0gICAgICAgICAgIjAuMTMyNzgzLCAwLjQ2NTg0NCwgMC43NTM1NDIsIDEuMTIxMDUsIDEuNDg4MSwgMS44NTM0OSwgMi4yMTg3NyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNjU2OTQsIDAuNzc3NjY0LCAxLjI2Njk0LCAxLjg3ODczLCAyLjQ5MDUyLCAzLjEwMDgsIDMuNzExMjkiLCBcCi0gICAgICAgICAgIjAuMTc0OTM3LCAwLjc4NzIwNSwgMS4yNzYyNSwgMS44ODg1LCAyLjQ5OTU1LCAzLjExMTE1LCAzLjcyMTk5IiwgXAotICAgICAgICAgICIwLjE4NjY4MiwgMC43OTk3NzEsIDEuMjg5MTEsIDEuOTAwODEsIDIuNTEyNjcsIDMuMTI0MDksIDMuNzM0NDQiLCBcCi0gICAgICAgICAgIjAuMTk4NTQ2LCAwLjgxMTc5NywgMS4zMDE1MywgMS45MTM0NywgMi41MjUxOSwgMy4xMzYyOSwgMy43NDczNyIsIFwKLSAgICAgICAgICAiMC4yMTA3MTMsIDAuODIzODUyLCAxLjMxMzQsIDEuOTI1NTgsIDIuNTM3NjgsIDMuMTQ3OTYsIDMuNzU5MzYiLCBcCi0gICAgICAgICAgIjAuMjMwMjI4LCAwLjg0Mzc0MywgMS4zMzMwNSwgMS45NDQ4NywgMi41NTY2NSwgMy4xNjc3NSwgMy43NzkwNyIsIFwKLSAgICAgICAgICAiMC4yNDg1OTgsIDAuODYwNDYzLCAxLjM1MDM2LCAxLjk2MjY1LCAyLjU3NCwgMy4xODU1MywgMy43OTYwOSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yOTk4NTIsIDEuNDUyMTMsIDIuMzczMDQsIDMuNTM3NzgsIDQuNjc3MDMsIDUuODI0NTEsIDYuOTcwNDQiLCBcCi0gICAgICAgICAgIjAuMjk5ODQsIDEuNDQ4MywgMi4zODA2NCwgMy41MjU0NCwgNC42ODQ3MSwgNS44MjY1NSwgNi45NzE2NSIsIFwKLSAgICAgICAgICAiMC4yOTk3OTIsIDEuNDYwNzksIDIuMzgxNDQsIDMuNTM3NjMsIDQuNjc2OTEsIDUuODIyNzUsIDYuOTcxNTkiLCBcCi0gICAgICAgICAgIjAuMjk4NDY4LCAxLjQ1NzEzLCAyLjM4ODI3LCAzLjUzNzc1LCA0LjY3NzYsIDUuODI1MTQsIDYuOTY5MTIiLCBcCi0gICAgICAgICAgIjAuMzAwOTMsIDEuNDU5OCwgMi4zNzEzMSwgMy41MjI1NywgNC42NzAyLCA1LjgyNDc0LCA2Ljk3MTgzIiwgXAotICAgICAgICAgICIwLjMwNTYyNSwgMS40NjAzMiwgMi4zNzEzOCwgMy41MjI5MSwgNC42NzU4LCA1LjgyNDY2LCA2Ljk3MTQ3IiwgXAotICAgICAgICAgICIwLjMxMTYyMywgMS40NTYwMywgMi4zNzA4NSwgMy41MzgwOSwgNC42NzU5NCwgNS44MTk0NSwgNi45NzE2MiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkFOIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDM5NywgMC4wMDM5NzUsIDAuMDAzOTc1LCAwLjAwMzk3NCwgMC4wMDM5NzQsIDAuMDAzOTcyLCAwLjAwMzk3MyIsIFwKLSAgICAgICAgICAiMC4wMDM5NTcsIDAuMDAzOTYyLCAwLjAwMzk2MSwgMC4wMDM5NjIsIDAuMDAzOTYxLCAwLjAwMzk2MSwgMC4wMDM5NTgiLCBcCi0gICAgICAgICAgIjAuMDAzOTQ3LCAwLjAwMzk1MywgMC4wMDM5NTQsIDAuMDAzOTU0LCAwLjAwMzk1MywgMC4wMDM5NTMsIDAuMDAzOTUzIiwgXAotICAgICAgICAgICIwLjAwMzkzOCwgMC4wMDM5NDcsIDAuMDAzOTQ3LCAwLjAwMzk0OCwgMC4wMDM5NDYsIDAuMDAzOTQ3LCAwLjAwMzk0NiIsIFwKLSAgICAgICAgICAiMC4wMDM5MjgsIDAuMDAzOTM5LCAwLjAwMzk0LCAwLjAwMzk0MSwgMC4wMDM5NCwgMC4wMDM5NDEsIDAuMDAzOTQxIiwgXAotICAgICAgICAgICIwLjAwMzkyMiwgMC4wMDM5MzgsIDAuMDAzOTM5LCAwLjAwMzk0LCAwLjAwMzkzOSwgMC4wMDM5MzksIDAuMDAzOTM4IiwgXAotICAgICAgICAgICIwLjAwMzkxOCwgMC4wMDM5MzUsIDAuMDAzOTM3LCAwLjAwMzkzOCwgMC4wMDM5MzcsIDAuMDAzOTM3LCAwLjAwMzkzNyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzY0OSwgMC4wMDM2NzEsIDAuMDAzNjczLCAwLjAwMzY3NCwgMC4wMDM2NzUsIDAuMDAzNjc1LCAwLjAwMzY3NiIsIFwKLSAgICAgICAgICAiMC4wMDM2MzcsIDAuMDAzNjYyLCAwLjAwMzY2NSwgMC4wMDM2NjYsIDAuMDAzNjY3LCAwLjAwMzY2NywgMC4wMDM2NjgiLCBcCi0gICAgICAgICAgIjAuMDAzNjIzLCAwLjAwMzY1NCwgMC4wMDM2NTcsIDAuMDAzNjU5LCAwLjAwMzY2LCAwLjAwMzY2MSwgMC4wMDM2NjEiLCBcCi0gICAgICAgICAgIjAuMDAzNjEyLCAwLjAwMzY0NywgMC4wMDM2NTIsIDAuMDAzNjU0LCAwLjAwMzY1NiwgMC4wMDM2NTYsIDAuMDAzNjU3IiwgXAotICAgICAgICAgICIwLjAwMzYwMywgMC4wMDM2NDMsIDAuMDAzNjQ5LCAwLjAwMzY1MSwgMC4wMDM2NTMsIDAuMDAzNjU0LCAwLjAwMzY1NCIsIFwKLSAgICAgICAgICAiMC4wMDM1OSwgMC4wMDM2MzYsIDAuMDAzNjQzLCAwLjAwMzY0NiwgMC4wMDM2NDgsIDAuMDAzNjUsIDAuMDAzNjUiLCBcCi0gICAgICAgICAgIjAuMDAzNTg2LCAwLjAwMzYzMywgMC4wMDM2NCwgMC4wMDM2NDUsIDAuMDAzNjQ3LCAwLjAwMzY0OSwgMC4wMDM2NSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzE1MiwgMC4wMDMxNTMsIDAuMDAzMTUzLCAwLjAwMzE1MywgMC4wMDMxNTMsIDAuMDAzMTUzLCAwLjAwMzE1MiIsIFwKLSAgICAgICAgICAiMC4wMDMxNDEsIDAuMDAzMTUxLCAwLjAwMzE1MSwgMC4wMDMxNTIsIDAuMDAzMTUyLCAwLjAwMzE1MSwgMC4wMDMxNTIiLCBcCi0gICAgICAgICAgIjAuMDAzMTI3LCAwLjAwMzE0OCwgMC4wMDMxNTEsIDAuMDAzMTUzLCAwLjAwMzE0OSwgMC4wMDMxNTMsIDAuMDAzMTUxIiwgXAotICAgICAgICAgICIwLjAwMzExOCwgMC4wMDMxNDUsIDAuMDAzMTQ4LCAwLjAwMzE0OCwgMC4wMDMxNDgsIDAuMDAzMTQ5LCAwLjAwMzE0OCIsIFwKLSAgICAgICAgICAiMC4wMDMxMDksIDAuMDAzMTQxLCAwLjAwMzE0NiwgMC4wMDMxNDgsIDAuMDAzMTUsIDAuMDAzMTQ5LCAwLjAwMzE0OCIsIFwKLSAgICAgICAgICAiMC4wMDMwOTgsIDAuMDAzMTM4LCAwLjAwMzE0MywgMC4wMDMxNDYsIDAuMDAzMTQ3LCAwLjAwMzE0OCwgMC4wMDMxNDgiLCBcCi0gICAgICAgICAgIjAuMDAzMDkyLCAwLjAwMzEzNSwgMC4wMDMxMzksIDAuMDAzMTQ0LCAwLjAwMzE0NiwgMC4wMDMxNDYsIDAuMDAzMTQ4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxMTksIDAuMDAxMTk2LCAwLjAwMTE5NywgMC4wMDExOTcsIDAuMDAxMTk3LCAwLjAwMTE5OCwgMC4wMDExOTciLCBcCi0gICAgICAgICAgIjAuMDAxMTY0LCAwLjAwMTE5LCAwLjAwMTE5MywgMC4wMDExOTUsIDAuMDAxMTk1LCAwLjAwMTE5NiwgMC4wMDExOTYiLCBcCi0gICAgICAgICAgIjAuMDAxMTQsIDAuMDAxMTgzLCAwLjAwMTE4OCwgMC4wMDExOTEsIDAuMDAxMTkzLCAwLjAwMTE5NCwgMC4wMDExOTQiLCBcCi0gICAgICAgICAgIjAuMDAxMTIyLCAwLjAwMTE3NiwgMC4wMDExODQsIDAuMDAxMTg4LCAwLjAwMTE5MSwgMC4wMDExOTIsIDAuMDAxMTkzIiwgXAotICAgICAgICAgICIwLjAwMTEwNywgMC4wMDExNywgMC4wMDExOCwgMC4wMDExODUsIDAuMDAxMTg4LCAwLjAwMTE5LCAwLjAwMTE5MSIsIFwKLSAgICAgICAgICAiMC4wMDEwOSwgMC4wMDExNiwgMC4wMDExNzMsIDAuMDAxMTgxLCAwLjAwMTE4NSwgMC4wMDExODcsIDAuMDAxMTg5IiwgXAotICAgICAgICAgICIwLjAwMTA4LCAwLjAwMTE1MywgMC4wMDExNjgsIDAuMDAxMTc3LCAwLjAwMTE4MSwgMC4wMDExODQsIDAuMDAxMTg2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyNDczLCAwLjAwMjQ3NywgMC4wMDI0NzgsIDAuMDAyNDc4LCAwLjAwMjQ3OCwgMC4wMDI0NzgsIDAuMDAyNDc4IiwgXAotICAgICAgICAgICIwLjAwMjQ2OCwgMC4wMDI0OTMsIDAuMDAyNDk2LCAwLjAwMjQ5NiwgMC4wMDI0OTcsIDAuMDAyNDk4LCAwLjAwMjQ5OCIsIFwKLSAgICAgICAgICAiMC4wMDI0NiwgMC4wMDI0OTIsIDAuMDAyNDk3LCAwLjAwMjUsIDAuMDAyNDk5LCAwLjAwMjQ5OSwgMC4wMDI1IiwgXAotICAgICAgICAgICIwLjAwMjQ0NywgMC4wMDI0OTEsIDAuMDAyNDk2LCAwLjAwMjQ5OSwgMC4wMDI1MDIsIDAuMDAyNTAxLCAwLjAwMjUiLCBcCi0gICAgICAgICAgIjAuMDAyNDM1LCAwLjAwMjQ4NiwgMC4wMDI0OTQsIDAuMDAyNDk5LCAwLjAwMjQ5OSwgMC4wMDI0OTksIDAuMDAyNSIsIFwKLSAgICAgICAgICAiMC4wMDI0MiwgMC4wMDI0ODIsIDAuMDAyNDksIDAuMDAyNDk1LCAwLjAwMjQ5NywgMC4wMDI1LCAwLjAwMjUiLCBcCi0gICAgICAgICAgIjAuMDAyNDEyLCAwLjAwMjQ3NywgMC4wMDI0ODYsIDAuMDAyNDkzLCAwLjAwMjQ5NiwgMC4wMDI0OTgsIDAuMDAyNDk5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxMTg4LCAwLjAwMTE5NSwgMC4wMDExOTYsIDAuMDAxMTk2LCAwLjAwMTE5NiwgMC4wMDExOTYsIDAuMDAxMTk2IiwgXAotICAgICAgICAgICIwLjAwMTE1NywgMC4wMDExODgsIDAuMDAxMTkxLCAwLjAwMTE5MywgMC4wMDExOTQsIDAuMDAxMTk0LCAwLjAwMTE5NSIsIFwKLSAgICAgICAgICAiMC4wMDExMjksIDAuMDAxMTgsIDAuMDAxMTg3LCAwLjAwMTE5LCAwLjAwMTE5MiwgMC4wMDExOTMsIDAuMDAxMTk0IiwgXAotICAgICAgICAgICIwLjAwMTEwNSwgMC4wMDExNzEsIDAuMDAxMTgsIDAuMDAxMTg1LCAwLjAwMTE4OCwgMC4wMDExOSwgMC4wMDExOTEiLCBcCi0gICAgICAgICAgIjAuMDAxMDkzLCAwLjAwMTE2NCwgMC4wMDExNzYsIDAuMDAxMTgyLCAwLjAwMTE4NiwgMC4wMDExODgsIDAuMDAxMTg5IiwgXAotICAgICAgICAgICIwLjAwMTA3NywgMC4wMDExNTQsIDAuMDAxMTY4LCAwLjAwMTE3NywgMC4wMDExODIsIDAuMDAxMTg0LCAwLjAwMTE4NiIsIFwKLSAgICAgICAgICAiMC4wMDEwNywgMC4wMDExNDUsIDAuMDAxMTYzLCAwLjAwMTE3MywgMC4wMDExNzgsIDAuMDAxMTgyLCAwLjAwMTE4NCIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogTk9SMlg4ICoKLSAqIC0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoTk9SMlg4KSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMzg2MzI2OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDU4NzM3MzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDU4MjMyMjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDU4NzM3MzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDIxNzgsIDAuMDAyMjk4LCAwLjAwMjMyOSwgMC4wMDIzNDIsIDAuMDAyMzUsIDAuMDAyMzU2LCAwLjAwMjM2MSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjUwNywgMC4wMDI1MSwgMC4wMDI1MTEsIDAuMDAyNTEyLCAwLjAwMjUxMiwgMC4wMDI1MDYsIDAuMDAyNTEyIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDYxMDI5OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwNjEwMDMzOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwNjEwMjk7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNzI4LCAwLjAwMDcyOCwgMC4wMDA3MjgsIDAuMDAwNzI4LCAwLjAwMDcyOCwgMC4wMDA3MjgsIDAuMDAwNzI4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyNzUsIDAuMDAyNzUxLCAwLjAwMjc1LCAwLjAwMjc1MSwgMC4wMDI3NDksIDAuMDAyNzQ4LCAwLjAwMjc1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuNTg0ODg4OwotICAgIGZ1bmN0aW9uIDogIighKEErQikpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0MzU5NCwgMC4xNzUyMTMsIDAuMzA2OTE4LCAwLjQwMDcyNSwgMC41NTExNSwgMC42ODIwNjIsIDAuODY5OTQ4IiwgXAotICAgICAgICAgICIwLjA1NDkxNywgMC4xODY4MTMsIDAuMzE4Mzk2LCAwLjQxMjMyNiwgMC41NjI2NiwgMC42OTQyODMsIDAuODgyMjc0IiwgXAotICAgICAgICAgICIwLjA2Nzg3NiwgMC4xOTk5MzUsIDAuMzMxNDkyLCAwLjQyNTYyNiwgMC41NzU4NzgsIDAuNzA3MjYyLCAwLjg5NTM5OCIsIFwKLSAgICAgICAgICAiMC4wODAzMywgMC4yMTI0NTQsIDAuMzQ0MTMsIDAuNDM4MDkyLCAwLjU4ODU3OCwgMC43MTk4MTQsIDAuOTA3OTM4IiwgXAotICAgICAgICAgICIwLjA5MjI3NywgMC4yMjQ5MTEsIDAuMzU2NTY1LCAwLjQ1MDUxNywgMC42MDA5MTksIDAuNzMyMzY4LCAwLjkyMDE4MiIsIFwKLSAgICAgICAgICAiMC4xMDkyNDksIDAuMjQ0NzM4LCAwLjM3NTgwMSwgMC40NzA1NTMsIDAuNjIxMTA0LCAwLjc1MjM4OCwgMC45NDAyMzIiLCBcCi0gICAgICAgICAgIjAuMTIyODIxLCAwLjI2MTk2NSwgMC4zOTM3MzQsIDAuNDg3MTYxLCAwLjYzODA0NCwgMC43Njk2ODEsIDAuOTU3NTQ5Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY0MzkzLCAwLjMyMjA0NywgMC41Nzc4MjMsIDAuNzY0MDg3LCAxLjA1NTI1LCAxLjMxMjY4LCAxLjY4MjUxIiwgXAotICAgICAgICAgICIwLjA2NDI3NSwgMC4zMjIwNDgsIDAuNTc4NjE4LCAwLjc2MjEwNCwgMS4wNTg0NSwgMS4zMTY1MiwgMS42NzkyIiwgXAotICAgICAgICAgICIwLjA2NTQzNSwgMC4zMjIxMjYsIDAuNTc5MzExLCAwLjc2MTYxNCwgMS4wNTg2LCAxLjMxNDk2LCAxLjY3ODk1IiwgXAotICAgICAgICAgICIwLjA2ODMxMiwgMC4zMjIwNzYsIDAuNTc4MTY1LCAwLjc2Mzk0NywgMS4wNTUyNCwgMS4zMTUxOSwgMS42ODQ2MyIsIFwKLSAgICAgICAgICAiMC4wNzIzNjksIDAuMzIxNDc2LCAwLjU3OTc5MSwgMC43NjM4MjUsIDEuMDU1MDIsIDEuMzIwMywgMS42ODI1IiwgXAotICAgICAgICAgICIwLjA4MDcwNiwgMC4zMjQ4NjUsIDAuNTc5NzQ2LCAwLjc2Mzg3OCwgMS4wNTUxLCAxLjMxNDk3LCAxLjY4NDE0IiwgXAotICAgICAgICAgICIwLjA4OTE0NywgMC4zMjc2MTMsIDAuNTgwODUyLCAwLjc2Mzk1NCwgMS4wNTczMiwgMS4zMTYwNCwgMS42ODA2Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDI3NDUzLCAwLjEwMjY1OCwgMC4xNzcxNTcsIDAuMjMwMjc0LCAwLjMxNTIyOSwgMC4zODk2MDgsIDAuNDk1NjA5IiwgXAotICAgICAgICAgICIwLjAzODkwNywgMC4xMTQyMjksIDAuMTg4NzE2LCAwLjI0MTg3MiwgMC4zMjY4NTUsIDAuNDAxMTQ4LCAwLjUwNzI2NyIsIFwKLSAgICAgICAgICAiMC4wNTQwNDcsIDAuMTI4OTUxLCAwLjIwMzQ1MywgMC4yNTY1MTksIDAuMzQxMzY0LCAwLjQxNTU5OSwgMC41MjE2NjIiLCBcCi0gICAgICAgICAgIjAuMDY4Njg3LCAwLjE0Mzc2MiwgMC4yMTgwMzksIDAuMjcxMDI1LCAwLjM1NTk5MywgMC40MzAyNjEsIDAuNTM2NDE3IiwgXAotICAgICAgICAgICIwLjA4MTg2NywgMC4xNTg5NzksIDAuMjMyOTU3LCAwLjI4NjIyOCwgMC4zNzEwOTMsIDAuNDQ1MzM0LCAwLjU1MTI4MSIsIFwKLSAgICAgICAgICAiMC4xMDA0NTQsIDAuMTgyODUyLCAwLjI1NzM0MSwgMC4zMTA0NjUsIDAuMzk1MzY2LCAwLjQ2ODMzOCwgMC41NzQ1NTMiLCBcCi0gICAgICAgICAgIjAuMTE1MjU5LCAwLjIwMzk3MSwgMC4yNzgzMTIsIDAuMzMwOTE2LCAwLjQxNTUzNiwgMC40ODk0NzQsIDAuNTkzMzE5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQwNDQyLCAwLjE4Nzg2OCwgMC4zMzUzMzQsIDAuNDQwNTQzLCAwLjYwODk1OSwgMC43NTY1MjUsIDAuOTY2NDk5IiwgXAotICAgICAgICAgICIwLjA0MDk5MiwgMC4xODc4MTIsIDAuMzM1MTg3LCAwLjQ0MDQ4NiwgMC42MDg3NjEsIDAuNzU2MDY0LCAwLjk2NjYxOCIsIFwKLSAgICAgICAgICAiMC4wNDU3ODUsIDAuMTg3ODI5LCAwLjMzNTE2MSwgMC40NDA1NjgsIDAuNjA4NzUyLCAwLjc1NjQyNywgMC45NjY1NjkiLCBcCi0gICAgICAgICAgIjAuMDUyOTQzLCAwLjE4OTI4NCwgMC4zMzUyOTEsIDAuNDQwMzk0LCAwLjYwOTA5NSwgMC43NTYyMDUsIDAuOTY2NjY0IiwgXAotICAgICAgICAgICIwLjA2MTQyNCwgMC4xOTIyOTMsIDAuMzM1NzIxLCAwLjQ0MDQwMiwgMC42MDkxMDYsIDAuNzU2MjMyLCAwLjk2NjkxOSIsIFwKLSAgICAgICAgICAiMC4wNzYzOTEsIDAuMTk5ODEsIDAuMzM4Nzc4LCAwLjQ0MTUyNiwgMC42MDg4OTEsIDAuNzU2MjE4LCAwLjk2Njg4MyIsIFwKLSAgICAgICAgICAiMC4wODc5NDYsIDAuMjA3ODYxLCAwLjM0MzU0NiwgMC40NDQ2MDUsIDAuNjA5NzU4LCAwLjc1NjEzOCwgMC45NjY3NDYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzY4MiwgMC4xNjg1MiwgMC4zMDAwNTMsIDAuMzk0MDAxLCAwLjU0NDU4MSwgMC42NzU4MjQsIDAuODYzNDY0IiwgXAotICAgICAgICAgICIwLjA0NjgxMywgMC4xNzg4NzIsIDAuMzEwNDY4LCAwLjQwNDM3NCwgMC41NTQ4OTUsIDAuNjg2MTMsIDAuODc0NTY1IiwgXAotICAgICAgICAgICIwLjA1OTgyNiwgMC4xOTE2ODEsIDAuMzIzMzY4LCAwLjQxNzI5NCwgMC41Njc4MDIsIDAuNjk5MjY1LCAwLjg4Njg0MiIsIFwKLSAgICAgICAgICAiMC4wNzI5ODgsIDAuMjA0NTY1LCAwLjMzNjI4NSwgMC40MzAzMDYsIDAuNTgwNTcsIDAuNzExOTE1LCAwLjg5OTg0NSIsIFwKLSAgICAgICAgICAiMC4wODUzMzMsIDAuMjE4NDU0LCAwLjM1MDMxOSwgMC40NDQxNjIsIDAuNTk0NTE1LCAwLjcyNjAxNiwgMC45MTM4MTIiLCBcCi0gICAgICAgICAgIjAuMTAxOTQ2LCAwLjIzODU5MywgMC4zNzAyNiwgMC40NjQyODQsIDAuNjE0NjQyLCAwLjc0NjA3NiwgMC45MzQwMjciLCBcCi0gICAgICAgICAgIjAuMTE1MzUyLCAwLjI1ODE2NSwgMC4zODg4ODMsIDAuNDgxODgsIDAuNjMzNDE2LCAwLjc2NDk2LCAwLjk1MjY1OSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2NDMzNywgMC4zMjIwNDEsIDAuNTc4NTQ3LCAwLjc2MzkyLCAxLjA1NTIzLCAxLjMxNjIyLCAxLjY4MjU3IiwgXAotICAgICAgICAgICIwLjA2NDQwMywgMC4zMjIwMjEsIDAuNTc5MzEzLCAwLjc2Mzc5NiwgMS4wNTg3NiwgMS4zMTQ5NywgMS42Nzg5NSIsIFwKLSAgICAgICAgICAiMC4wNjg4MDgsIDAuMzIyMDc4LCAwLjU3OTg4OSwgMC43NjIxOTUsIDEuMDU1MTcsIDEuMzEyLCAxLjY4NDA1IiwgXAotICAgICAgICAgICIwLjA3NjA1NywgMC4zMjE5OTIsIDAuNTc5NzYyLCAwLjc2MzkyNSwgMS4wNTgyOCwgMS4zMTU3NSwgMS42ODQxOCIsIFwKLSAgICAgICAgICAiMC4wODQyNDUsIDAuMzIzMDc3LCAwLjU3Nzk5LCAwLjc2MzEyMiwgMS4wNTgyOCwgMS4zMTUwNywgMS42ODQwMyIsIFwKLSAgICAgICAgICAiMC4wOTk3NzcsIDAuMzI4MTEzLCAwLjU3OTM3NiwgMC43NjM4MTMsIDEuMDU1OTksIDEuMzE1ODYsIDEuNjgyODMiLCBcCi0gICAgICAgICAgIjAuMTExOTE0LCAwLjMzMzUzOCwgMC41ODE4MDQsIDAuNzYzODUsIDEuMDU4NjIsIDEuMzE2MzEsIDEuNjg0MTUiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjMxMTMsIDAuMDk3NTQ3LCAwLjE3MTgyOCwgMC4yMjQ4OTUsIDAuMzA5NzQ2LCAwLjM4NDE3NSwgMC40OTAxMzMiLCBcCi0gICAgICAgICAgIjAuMDM0ODI5LCAwLjEwOTUyMywgMC4xODM4NTksIDAuMjM2ODc5LCAwLjMyMTgxMywgMC4zOTYxNjUsIDAuNTAyMDY3IiwgXAotICAgICAgICAgICIwLjA0OTY5MiwgMC4xMjQwNjUsIDAuMTk4Mzg5LCAwLjI1MTM5OCwgMC4zMzYxNTUsIDAuNDEwNDY5LCAwLjUxNjUxOCIsIFwKLSAgICAgICAgICAiMC4wNjMxMzUsIDAuMTM5MTI1LCAwLjIxMjk0MywgMC4yNjU5OTcsIDAuMzUwODQyLCAwLjQyNTE1NCwgMC41Mjg5NjEiLCBcCi0gICAgICAgICAgIjAuMDc0OTM3LCAwLjE1Mzk5OSwgMC4yMjc3MTYsIDAuMjgwNzEyLCAwLjM2NTQzNCwgMC40Mzk4NiwgMC41NDU4MzYiLCBcCi0gICAgICAgICAgIjAuMDkxNzg5LCAwLjE3ODA5MywgMC4yNTIyMzEsIDAuMzA0ODYzLCAwLjM4OTI4LCAwLjQ2MTkxNiwgMC41Njc4NzMiLCBcCi0gICAgICAgICAgIjAuMTA0ODgyLCAwLjE5ODg2MSwgMC4yNzMwMjQsIDAuMzI2MDUsIDAuNDA5OTI1LCAwLjQ4MzkxLCAwLjU4OTk4OCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzNDk2OCwgMC4xODI1NDMsIDAuMzMwODU4LCAwLjQzNjI4MiwgMC42MDU4OTMsIDAuNzUxMTI3LCAwLjk2NDg0NCIsIFwKLSAgICAgICAgICAiMC4wMzYwMDUsIDAuMTgyMjY4LCAwLjMzMDQ2OCwgMC40MzY2NTMsIDAuNjAzNDY2LCAwLjc1MjAwMSwgMC45NjUxNDYiLCBcCi0gICAgICAgICAgIjAuMDQxODU1LCAwLjE4MjUyNiwgMC4zMjk5MjcsIDAuNDM1MjA1LCAwLjYwNTAyOSwgMC43NTE5ODksIDAuOTYxNjgyIiwgXAotICAgICAgICAgICIwLjA1MDI2MiwgMC4xODQ0OTQsIDAuMzI5NjkzLCAwLjQzNTgwOCwgMC42MDQ5NjksIDAuNzUxODIxLCAwLjk2MzQwMiIsIFwKLSAgICAgICAgICAiMC4wNjAwNzMsIDAuMTg3OTEyLCAwLjMzMTQ1OCwgMC40MzU2NzUsIDAuNjAzOTgsIDAuNzUxNzA3LCAwLjk2MTQyOCIsIFwKLSAgICAgICAgICAiMC4wNzUwNjIsIDAuMTk1MzY2LCAwLjMzNDc1NywgMC40MzY1NywgMC42MDM4NTcsIDAuNzUxMjIzLCAwLjk2MTc0MyIsIFwKLSAgICAgICAgICAiMC4wODgxOTMsIDAuMjA0MDQxLCAwLjMzOTgxOSwgMC40MzkzMjIsIDAuNjA1NzQyLCAwLjc1MTg0MSwgMC45NjIyMDIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMDg4OCwgMC4wMTA5MjMsIDAuMDEwOTI1LCAwLjAxMDkyNywgMC4wMTA5MjcsIDAuMDEwOTMxLCAwLjAxMDkyOSIsIFwKLSAgICAgICAgICAiMC4wMTA3NjYsIDAuMDEwODg4LCAwLjAxMDkwNywgMC4wMTA5MTIsIDAuMDEwOTE2LCAwLjAxMDkxNywgMC4wMTA5MjIiLCBcCi0gICAgICAgICAgIjAuMDEwNjg5LCAwLjAxMDg1LCAwLjAxMDg4MywgMC4wMTA4OTQsIDAuMDEwOTAxLCAwLjAxMDkwOSwgMC4wMTA5MTMiLCBcCi0gICAgICAgICAgIjAuMDEwNjQ1LCAwLjAxMDgxOCwgMC4wMTA4NjIsIDAuMDEwODc3LCAwLjAxMDg5LCAwLjAxMDg5OSwgMC4wMTA5MDIiLCBcCi0gICAgICAgICAgIjAuMDEwNjIyLCAwLjAxMDc5NSwgMC4wMTA4NDYsIDAuMDEwODYyLCAwLjAxMDg3NywgMC4wMTA4OTMsIDAuMDEwOTA0IiwgXAotICAgICAgICAgICIwLjAxMDU4MSwgMC4wMTA3NTgsIDAuMDEwNzk5LCAwLjAxMDgzNSwgMC4wMTA4NjUsIDAuMDEwODc4LCAwLjAxMDg4MSIsIFwKLSAgICAgICAgICAiMC4wMTA1ODIsIDAuMDEwNzMzLCAwLjAxMDgwMiwgMC4wMTA4MjksIDAuMDEwODQ4LCAwLjAxMDg2MiwgMC4wMTA4NzciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzA0NywgMC4wMDMwNjEsIDAuMDAzMDY0LCAwLjAwMzA2NCwgMC4wMDMwNjQsIDAuMDAzMDYzLCAwLjAwMzA2NCIsIFwKLSAgICAgICAgICAiMC4wMDI4MzksIDAuMDAyOTM2LCAwLjAwMjk1LCAwLjAwMjk1NCwgMC4wMDI5NTgsIDAuMDAyOTYsIDAuMDAyOTYxIiwgXAotICAgICAgICAgICIwLjAwMjcyNSwgMC4wMDI4ODQsIDAuMDAyOTEyLCAwLjAwMjkyMiwgMC4wMDI5MjksIDAuMDAyOTM0LCAwLjAwMjkzNyIsIFwKLSAgICAgICAgICAiMC4wMDI2NjUsIDAuMDAyODQxLCAwLjAwMjg4LCAwLjAwMjg5NCwgMC4wMDI5MDYsIDAuMDAyOTEyLCAwLjAwMjkxOSIsIFwKLSAgICAgICAgICAiMC4wMDI2MTgsIDAuMDAyODA5LCAwLjAwMjg1OSwgMC4wMDI4NzcsIDAuMDAyODk0LCAwLjAwMjkwMiwgMC4wMDI5MTEiLCBcCi0gICAgICAgICAgIjAuMDAyNjA3LCAwLjAwMjc3NywgMC4wMDI4MzcsIDAuMDAyODYxLCAwLjAwMjg3OSwgMC4wMDI4ODgsIDAuMDAyODk1IiwgXAotICAgICAgICAgICIwLjAwMjU4MSwgMC4wMDI3NDQsIDAuMDAyODA5LCAwLjAwMjgzMywgMC4wMDI4NTYsIDAuMDAyODc1LCAwLjAwMjg3OSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA4ODMsIDAuMDA4ODg2LCAwLjAwODg5MSwgMC4wMDg4OTQsIDAuMDA4ODksIDAuMDA4ODk4LCAwLjAwODg5NyIsIFwKLSAgICAgICAgICAiMC4wMDg2MzYsIDAuMDA4ODMsIDAuMDA4ODYsIDAuMDA4ODY5LCAwLjAwODg3NywgMC4wMDg4ODIsIDAuMDA4ODg2IiwgXAotICAgICAgICAgICIwLjAwODUxOSwgMC4wMDg3NjksIDAuMDA4ODE5LCAwLjAwODgzOSwgMC4wMDg4NTUsIDAuMDA4ODYzLCAwLjAwODg2NyIsIFwKLSAgICAgICAgICAiMC4wMDg0NjksIDAuMDA4NzIsIDAuMDA4Nzg1LCAwLjAwODgxMiwgMC4wMDg4MzQsIDAuMDA4ODQ2LCAwLjAwODg1NyIsIFwKLSAgICAgICAgICAiMC4wMDg0NDMsIDAuMDA4Njg2LCAwLjAwODc2MywgMC4wMDg3OSwgMC4wMDg4MTQsIDAuMDA4ODMxLCAwLjAwODg0NiIsIFwKLSAgICAgICAgICAiMC4wMDg0NDMsIDAuMDA4NjM2LCAwLjAwODcyMywgMC4wMDg3NTgsIDAuMDA4NzksIDAuMDA4ODA4LCAwLjAwODgyNiIsIFwKLSAgICAgICAgICAiMC4wMDg0MzUsIDAuMDA4NjAyLCAwLjAwODY4OCwgMC4wMDg3MjMsIDAuMDA4NzY3LCAwLjAwODc4OCwgMC4wMDg4MDkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDQzNSwgMC4wMDA1MTcsIDAuMDAwNTI2LCAwLjAwMDUyOSwgMC4wMDA1MzIsIDAuMDAwNTMzLCAwLjAwMDUzNCIsIFwKLSAgICAgICAgICAiMC4wMDAyNTEsIDAuMDAwNTQsIDAuMDAwNTgxLCAwLjAwMDU5NCwgMC4wMDA2MDYsIDAuMDAwNjEyLCAwLjAwMDYxNyIsIFwKLSAgICAgICAgICAiMC4wMDAwNjcsIDAuMDAwNDc2LCAwLjAwMDU1MiwgMC4wMDA1NzYsIDAuMDAwNTk3LCAwLjAwMDYwOCwgMC4wMDA2MTkiLCBcCi0gICAgICAgICAgIjAuMDAwMDI5LCAwLjAwMDQxNywgMC4wMDA1MDksIDAuMDAwNTQ0LCAwLjAwMDU3OCwgMC4wMDA1OTUsIDAuMDAwNjEyIiwgXAotICAgICAgICAgICIwLjAwMDA4MSwgMC4wMDAzNTgsIDAuMDAwNDgxLCAwLjAwMDUyMiwgMC4wMDA1NiwgMC4wMDA1OCwgMC4wMDA1OTkiLCBcCi0gICAgICAgICAgIjAuMDAwMTMxLCAwLjAwMDI5LCAwLjAwMDQyOCwgMC4wMDA0NjksIDAuMDAwNTIzLCAwLjAwMDU0NCwgMC4wMDA1NyIsIFwKLSAgICAgICAgICAiMC4wMDAwOTgsIDAuMDAwMjM2LCAwLjAwMDM4NCwgMC4wMDA0NDIsIDAuMDAwNDk3LCAwLjAwMDUzMiwgMC4wMDA1NTciKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IE5PUjNYTCAqCi0gKiAtLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKE5PUjNYTCkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjAzNDc5NDM7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDU0ODA2NDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA1NDQzNTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA1NDgwNjQ7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMTQ0LCAwLjAwMDE0OSwgMC4wMDAxNTIsIDAuMDAwMTUzLCAwLjAwMDE1NCwgMC4wMDAxNTUsIDAuMDAwMTU1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjA3LCAwLjAwMDIwNywgMC4wMDAyMDcsIDAuMDAwMjA3LCAwLjAwMDIwNywgMC4wMDAyMDcsIDAuMDAwMjA3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2MDEyMzY7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNTk3ODkxOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDYwMTIzNjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxNDQsIDAuMDAwMTUzLCAwLjAwMDE1NywgMC4wMDAxNTgsIDAuMDAwMTU5LCAwLjAwMDE1OSwgMC4wMDAxNiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDE3LCAwLjAwMDE3LCAwLjAwMDE3LCAwLjAwMDE3LCAwLjAwMDE3LCAwLjAwMDE3LCAwLjAwMDE3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihDKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA1OTQ0Nzc7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNTk0MzgxOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDU5NDQ3NzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAwNSwgMC4wMDAwNSwgMC4wMDAwNSwgMC4wMDAwNSwgMC4wMDAwNSwgMC4wMDAwNSwgMC4wMDAwNSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDIwMiwgMC4wMDAyMDIsIDAuMDAwMjAyLCAwLjAwMDIwMiwgMC4wMDAyMDIsIDAuMDAwMjAyLCAwLjAwMDIwMiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjAyNjk2NjQ7Ci0gICAgZnVuY3Rpb24gOiAiKCEoKEErQikrQykpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC40NTEwNzcsIDAuNTI5NjMxLCAxLjIzNzYyLCAyLjQxNjc4LCAzLjU5NDYzLCA2LjM0NDA4LCA3LjkxNTE2IiwgXAotICAgICAgICAgICIwLjQ2MjQ0MywgMC41NDExMDQsIDEuMjQ4NzYsIDIuNDI3OTgsIDMuNjA2MTMsIDYuMzU1NjEsIDcuOTI2NzgiLCBcCi0gICAgICAgICAgIjAuNDc1MTYyLCAwLjU1Mzg4NSwgMS4yNjE1NCwgMi40NDA3NSwgMy42MTg5NywgNi4zNjg0NSwgNy45Mzk2MiIsIFwKLSAgICAgICAgICAiMC40ODcwMTgsIDAuNTY1NzAxLCAxLjI3MzU0LCAyLjQ1Mjk2LCAzLjYzMTA1LCA2LjM4MDQ3LCA3Ljk1MTQ3IiwgXAotICAgICAgICAgICIwLjQ5ODE0MiwgMC41NzY4NzQsIDEuMjg0NzIsIDIuNDYzNzUsIDMuNjQyMjYsIDYuMzkxNzEsIDcuOTYyNjkiLCBcCi0gICAgICAgICAgIjAuNTE1NDE2LCAwLjU5NDI1OCwgMS4zMDIwOSwgMi40ODEzNywgMy42NTk2NiwgNi40MDkxMSwgNy45ODAyMiIsIFwKLSAgICAgICAgICAiMC41MzAxOCwgMC42MDg5MTEsIDEuMzE3MzIsIDIuNDk2NjksIDMuNjc0NDcsIDYuNDIzOTgsIDcuOTk1MDIiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuODI5MzA4LCAwLjk4MDQ5NiwgMi4zNDUwNCwgNC42MTk5NiwgNi44NzUzNSwgMTIuMTQ2NSwgMTUuMTYyOCIsIFwKLSAgICAgICAgICAiMC44Mjc5MjcsIDAuOTc5MDcyLCAyLjM0MzY3LCA0LjYxOTA4LCA2Ljg3NTI0LCAxMi4xNDcsIDE1LjE2MjkiLCBcCi0gICAgICAgICAgIjAuODI4Njg2LCAwLjk3OTI0MSwgMi4zNDM1NiwgNC42MTg5MywgNi44NzQ2LCAxMi4xNDcxLCAxNS4xNjI5IiwgXAotICAgICAgICAgICIwLjgyNzkzNiwgMC45NzkyMzksIDIuMzQzODYsIDQuNjA2MDgsIDYuODcxNzgsIDEyLjE0NjUsIDE1LjE2MjciLCBcCi0gICAgICAgICAgIjAuODI4NzExLCAwLjk4MDMyMywgMi4zMzg1NywgNC42MTg3MiwgNi44NzI1NSwgMTIuMTQ2NSwgMTUuMTYyNyIsIFwKLSAgICAgICAgICAiMC44Mjc2MjYsIDAuOTgwNjA1LCAyLjM0MzgsIDQuNjA5MjcsIDYuODcxNzYsIDEyLjE0NjUsIDE1LjE2MjgiLCBcCi0gICAgICAgICAgIjAuODI3NjE0LCAwLjk4MDE2MSwgMi4zNDUxOCwgNC42MDQ2NiwgNi44NzIxMiwgMTIuMTQ2NSwgMTUuMTYyNSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNzY0MDgsIDAuMjA2MjYzLCAwLjQ3NDI0MywgMC45MTk5NjEsIDEuMzY1OTksIDIuNDA1MzgsIDIuOTk5MjYiLCBcCi0gICAgICAgICAgIjAuMTg4MTQ0LCAwLjIxNzk5NywgMC40ODU5NTQsIDAuOTMyMTY1LCAxLjM3NzY5LCAyLjQxNzc2LCAzLjAxMTc5IiwgXAotICAgICAgICAgICIwLjIwMjkwMiwgMC4yMzI3NDgsIDAuNDk3NzgyLCAwLjk0MzUsIDEuMzg5NjQsIDIuNDI5ODksIDMuMDIzNTkiLCBcCi0gICAgICAgICAgIjAuMjE4Mjk3LCAwLjI0NzY0NCwgMC41MTU3MSwgMC45NTcxMTUsIDEuNDAyODgsIDIuNDQzMjUsIDMuMDM3IiwgXAotICAgICAgICAgICIwLjIzMywgMC4yNjMzNTgsIDAuNTMwNTQ4LCAwLjk3MDM1NCwgMS40MTYwMSwgMi40NTY0NiwgMy4wNDk4MSIsIFwKLSAgICAgICAgICAiMC4yNTgwODksIDAuMjg3ODY1LCAwLjU1NDU0MSwgMS4wMDA0MiwgMS40Mzc2NSwgMi40NzgyNiwgMy4wNzE5MiIsIFwKLSAgICAgICAgICAiMC4yNzk1NDksIDAuMzA5MjU1LCAwLjU3NTI5OSwgMS4wMjEzMSwgMS40NjQ5NCwgMi40OTY2MywgMy4wOTA3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMyOTIwMSwgMC4zODgwMjMsIDAuOTE2MzQ4LCAxLjc5Njg5LCAyLjY3ODQxLCA0LjczMjE4LCA1LjkwNTY3IiwgXAotICAgICAgICAgICIwLjMyOTA3NywgMC4zODc3OTUsIDAuOTE2MzExLCAxLjc5NzQ3LCAyLjY3ODU1LCA0LjczMjUzLCA1LjkwNTkiLCBcCi0gICAgICAgICAgIjAuMzI5MTQxLCAwLjM4Nzc4NywgMC45MTY4ODcsIDEuNzk2ODUsIDIuNjc4NTIsIDQuNzMzMTQsIDUuOTA2OCIsIFwKLSAgICAgICAgICAiMC4zMjkwMTgsIDAuMzg3Nzk2LCAwLjkxNjkwNCwgMS43OTc3NCwgMi42Nzg2MSwgNC43MzI5NSwgNS45MDY3OSIsIFwKLSAgICAgICAgICAiMC4zMjk0MDIsIDAuMzg3OTMzLCAwLjkxNjYwMSwgMS43OTY5NywgMi42NzgzLCA0LjczMjYxLCA1LjkwNzU5IiwgXAotICAgICAgICAgICIwLjMzMjIzOCwgMC4zODk0MzEsIDAuOTE2NjYzLCAxLjc5NzE1LCAyLjY3Nzk1LCA0LjczMzEyLCA1LjkwNzA0IiwgXAotICAgICAgICAgICIwLjMzNjUzMSwgMC4zOTI3NCwgMC45MTY1LCAxLjc5NzQ5LCAyLjY3Nzk1LCA0LjczMzgyLCA1LjkwNjUzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjQ0NDczOCwgMC41MjM1NDEsIDEuMjMwOTEsIDIuNDEwNTcsIDMuNTg4NDksIDYuMzM3ODksIDcuOTA4OTkiLCBcCi0gICAgICAgICAgIjAuNDU1NTU1LCAwLjUzNDA0NCwgMS4yNDIxOCwgMi40MjE0OCwgMy41OTk0MiwgNi4zNDg2NCwgNy45MTk3MSIsIFwKLSAgICAgICAgICAiMC40Njc4ODksIDAuNTQ2MzQzLCAxLjI1NDI1LCAyLjQzMzQxLCAzLjYxMTUzLCA2LjM2MTA4LCA3LjkzMjE0IiwgXAotICAgICAgICAgICIwLjQ3OTc2MywgMC41NTg0NDIsIDEuMjY2MTgsIDIuNDQ1ODMsIDMuNjIzOTEsIDYuMzczMjgsIDcuOTQ0NDEiLCBcCi0gICAgICAgICAgIjAuNDkxNzA0LCAwLjU3MDIxNiwgMS4yNzgxLCAyLjQ1NjgxLCAzLjYzNTY1LCA2LjM4NTA5LCA3Ljk1NjIxIiwgXAotICAgICAgICAgICIwLjUxMDU1MywgMC41ODkxMjMsIDEuMjk3NiwgMi40NzY2NCwgMy42NTQ2MywgNi40MDQwNSwgNy45NzUyMyIsIFwKLSAgICAgICAgICAiMC41MjcsIDAuNjA1NzE2LCAxLjMxMzMxLCAyLjQ5MjkyLCAzLjY3MTE3LCA2LjQyMDYyLCA3Ljk5MTY4Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjgyNjM0OSwgMC45ODA4OTEsIDIuMzM4NjksIDQuNjE5ODEsIDYuODcyMzUsIDEyLjE0NjQsIDE1LjE2MjkiLCBcCi0gICAgICAgICAgIjAuODI5NDU3LCAwLjk4MDQ1MSwgMi4zNDUyMywgNC42MDU3MiwgNi44NzU2NSwgMTIuMTQ2NSwgMTUuMTYyOCIsIFwKLSAgICAgICAgICAiMC44MjkzMDgsIDAuOTc5MDQ4LCAyLjM0NDA2LCA0LjYxOTMsIDYuODc0OTIsIDEyLjE0NzEsIDE1LjE2MjkiLCBcCi0gICAgICAgICAgIjAuODI5MzM1LCAwLjk3ODkwNSwgMi4zNDA3NCwgNC42MDY2NSwgNi44NzE2OCwgMTIuMTQ2NSwgMTUuMTYyOCIsIFwKLSAgICAgICAgICAiMC44MjkwNDQsIDAuOTgwODU2LCAyLjM0MzU5LCA0LjYxNzc3LCA2Ljg3MTg4LCAxMi4xNDY5LCAxNS4xNjI5IiwgXAotICAgICAgICAgICIwLjgyODgxNCwgMC45Nzg5MjYsIDIuMzM4MTUsIDQuNjE5NzQsIDYuODc1MDIsIDEyLjE0NywgMTUuMTYyOSIsIFwKLSAgICAgICAgICAiMC44Mjg5OTMsIDAuOTgwMjM1LCAyLjMzOTg4LCA0LjYwOTcyLCA2Ljg3NTEyLCAxMi4xNDcyLCAxNS4xNjI5Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE3MTc1LCAwLjIwMTU0LCAwLjQ2OTAwOCwgMC45MTQ2MzcsIDEuMzYwMjEsIDIuMzk5OCwgMi45OTQwNSIsIFwKLSAgICAgICAgICAiMC4xODM5MTQsIDAuMjEzNzA1LCAwLjQ4MTQwOCwgMC45MjcwNjIsIDEuMzczMDcsIDIuNDEzMTIsIDMuMDA2NzYiLCBcCi0gICAgICAgICAgIjAuMTk4NzA5LCAwLjIyODQ0MiwgMC40OTYxMDMsIDAuOTQyMDQ3LCAxLjM4NzMyLCAyLjQyNzMsIDMuMDIwODciLCBcCi0gICAgICAgICAgIjAuMjE0MjQ0LCAwLjI0Mzk3NCwgMC41MTEzNzcsIDAuOTU3NTM5LCAxLjQwMjk4LCAyLjQ0MjkyLCAzLjAzNjQ1IiwgXAotICAgICAgICAgICIwLjIyODYxMSwgMC4yNTg4NDgsIDAuNTI1ODk3LCAwLjk2ODU3NywgMS40MTQ1OSwgMi40NTQ0MSwgMy4wNDgxMiIsIFwKLSAgICAgICAgICAiMC4yNTM3MDUsIDAuMjgzMzY5LCAwLjU0OTU3MSwgMC45OTU0MzcsIDEuNDMyODksIDIuNDcyMDUsIDMuMDY2MTEiLCBcCi0gICAgICAgICAgIjAuMjc1MTE4LCAwLjMwNDc1OSwgMC41NzA0NzYsIDEuMDE2MjIsIDEuNDU5NTQsIDIuNDkxNzIsIDMuMDg1NDkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzIzNjc4LCAwLjM4MjU1MSwgMC45MTA5OTIsIDEuNzkxNTIsIDIuNjcxODcsIDQuNzI3MDEsIDUuOTAyNDIiLCBcCi0gICAgICAgICAgIjAuMzIzNzk1LCAwLjM4MjYxMiwgMC45MTEwNDYsIDEuNzkxNzgsIDIuNjcyNCwgNC43Mjg0NSwgNS45MDIzOCIsIFwKLSAgICAgICAgICAiMC4zMjM3ODksIDAuMzgyNTQ1LCAwLjkxMTA0MSwgMS43OTE4LCAyLjY3Mjg2LCA0LjcyNzY0LCA1LjkwNjE2IiwgXAotICAgICAgICAgICIwLjMyMzc0NywgMC4zODI1MDQsIDAuOTEwOTksIDEuNzkyMTUsIDIuNjczLCA0LjcyNzYxLCA1LjkwMjA4IiwgXAotICAgICAgICAgICIwLjMyNDI0MiwgMC4zODI0LCAwLjkxMTA1NywgMS43OTE3MywgMi42NzI1NSwgNC43MjkwNCwgNS45MDE5MSIsIFwKLSAgICAgICAgICAiMC4zMjcxMjQsIDAuMzg0MTMyLCAwLjkxMDg4MywgMS43OTE4MSwgMi42NzIzNSwgNC43MjcxOSwgNS45MDY0MyIsIFwKLSAgICAgICAgICAiMC4zMzE2NzUsIDAuMzg3ODYyLCAwLjkxMTA1OSwgMS43OTE3OCwgMi42NzI1OSwgNC43MjcwNSwgNS45MDIyMyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC40Mjk5MDksIDAuNTA4NTQ5LCAxLjIxNjIxLCAyLjM5NTM3LCAzLjU3MzYzLCA2LjMyMzA3LCA3Ljg5NDIzIiwgXAotICAgICAgICAgICIwLjQzOTc0OSwgMC41MTgxNDksIDEuMjI1ODIsIDIuNDA0OTMsIDMuNTgzNDUsIDYuMzMyODksIDcuOTA0IiwgXAotICAgICAgICAgICIwLjQ1MTY0OSwgMC41MzAzNTQsIDEuMjM4NDIsIDIuNDE3MzksIDMuNTk1NDksIDYuMzQ0OTMsIDcuOTE2MDkiLCBcCi0gICAgICAgICAgIjAuNDYzNjg4LCAwLjU0MjQ1NiwgMS4yNTAxMSwgMi40Mjk3NywgMy42MDc3LCA2LjM1NzEzLCA3LjkyODI3IiwgXAotICAgICAgICAgICIwLjQ3NTczNCwgMC41NTQyODIsIDEuMjYyODksIDIuNDQxNjEsIDMuNjE5NzMsIDYuMzY5MjQsIDcuOTQwNDIiLCBcCi0gICAgICAgICAgIjAuNDk0ODk5LCAwLjU3MzcsIDEuMjgxNCwgMi40NjEyLCAzLjYzOTIyLCA2LjM4ODY1LCA3Ljk1OTg0IiwgXAotICAgICAgICAgICIwLjUxMTA4LCAwLjU5MDc2OSwgMS4yOTg2MywgMi40Nzc3NCwgMy42NTY0NCwgNi40MDU5OCwgNy45NzcwNCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC44MjkyOTksIDAuOTc5MDI2LCAyLjM0MzU4LCA0LjYxODkyLCA2Ljg3MzQ3LCAxMi4xNDcxLCAxNS4xNjI5IiwgXAotICAgICAgICAgICIwLjgyOTUxLCAwLjk4MDE3OCwgMi4zMzg0OSwgNC42MTg2NiwgNi44NzI2MiwgMTIuMTQ2NSwgMTUuMTYyOSIsIFwKLSAgICAgICAgICAiMC44MjkwMTEsIDAuOTc4NDA2LCAyLjM0NDk1LCA0LjYxOTQsIDYuODc1MywgMTIuMTQ3MSwgMTUuMTYyOSIsIFwKLSAgICAgICAgICAiMC44Mjg5MjYsIDAuOTgwNjY2LCAyLjM0MDgzLCA0LjYxOTg2LCA2Ljg3NDk2LCAxMi4xNDcxLCAxNS4xNjI5IiwgXAotICAgICAgICAgICIwLjgyNzM5OCwgMC45ODA4MTksIDIuMzM4NSwgNC42MTkyNSwgNi44NzUyMiwgMTIuMTQ3LCAxNS4xNjI5IiwgXAotICAgICAgICAgICIwLjgyNzc4NSwgMC45NzgyNDcsIDIuMzQyODIsIDQuNjE5NjksIDYuODc1MDIsIDEyLjE0NywgMTUuMTYyOSIsIFwKLSAgICAgICAgICAiMC44MjkwNDksIDAuOTgwMjc3LCAyLjM0MzEyLCA0LjYwODc2LCA2Ljg3MTg1LCAxMi4xNDY1LCAxNS4xNjI0Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE2NjE4NSwgMC4xOTU5LCAwLjQ2MzMyLCAwLjkwODYyLCAxLjM1NDMzLCAyLjM5MzgsIDIuOTg3NyIsIFwKLSAgICAgICAgICAiMC4xNzg0NTgsIDAuMjA4MjA0LCAwLjQ3NTU2MywgMC45MjE0NDQsIDEuMzY3MzcsIDIuNDA3MzEsIDMuMDAwODEiLCBcCi0gICAgICAgICAgIjAuMTkzMjQ2LCAwLjIyMjk1LCAwLjQ4NzM5OSwgMC45MzM0NzYsIDEuMzc4ODgsIDIuNDE4OTEsIDMuMDEyNiIsIFwKLSAgICAgICAgICAiMC4yMDg4MDUsIDAuMjM3ODQsIDAuNTA1MjM0LCAwLjk0NjYyMiwgMS4zOTIxLCAyLjQzMjMyLCAzLjAyNjA0IiwgXAotICAgICAgICAgICIwLjIyNDAwMiwgMC4yNTMwMjksIDAuNTIwMzU3LCAwLjk2MDQ0LCAxLjQwNjExLCAyLjQ0NTY5LCAzLjAzODg1IiwgXAotICAgICAgICAgICIwLjI0ODQzMywgMC4yNzgwMjIsIDAuNTQ0MjMxLCAwLjk5MDAxMSwgMS40Mjc0NiwgMi40NjcwNCwgMy4wNjA4NSIsIFwKLSAgICAgICAgICAiMC4yNjk4NTYsIDAuMjk5NDY2LCAwLjU2NSwgMS4wMTA3MSwgMS40NTQxOCwgMi40ODU3OCwgMy4wNzk3OSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMTkyODcsIDAuMzc3NjIzLCAwLjkwNzk3NiwgMS43OTMxOSwgMi42NzY0NiwgNC43MjUzOSwgNS44OTg0MiIsIFwKLSAgICAgICAgICAiMC4zMTgzMDgsIDAuMzc3MDExLCAwLjkwNTg2MiwgMS43ODgwMiwgMi42Njk5NCwgNC43MzA2OSwgNS44OTkzNSIsIFwKLSAgICAgICAgICAiMC4zMTgyMDMsIDAuMzc3NDA4LCAwLjkwNjI5MSwgMS43ODksIDIuNjc0ODgsIDQuNzI5MTksIDUuODk3MzIiLCBcCi0gICAgICAgICAgIjAuMzE5MjcyLCAwLjM3NzE2OCwgMC45MDYxNzQsIDEuNzkwNDgsIDIuNjc1MTcsIDQuNzI5NywgNS44OTkxIiwgXAotICAgICAgICAgICIwLjMxOTcwOCwgMC4zNzgzMTQsIDAuOTA2MTU3LCAxLjc4OTc0LCAyLjY3MDQyLCA0LjcyOTIzLCA1LjkwMDMzIiwgXAotICAgICAgICAgICIwLjMyMTk0NSwgMC4zODAyMTgsIDAuOTA3ODg0LCAxLjc4NzcyLCAyLjY3NDk2LCA0LjczMDc4LCA1Ljg5OTQ2IiwgXAotICAgICAgICAgICIwLjMyNzc1NiwgMC4zODMzMDQsIDAuOTA3NDE0LCAxLjc5MTI5LCAyLjY2ODY4LCA0LjczMSwgNS44OTk0MyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTMwNywgMC4wMDEzMDYsIDAuMDAxMzA2LCAwLjAwMTMwNiwgMC4wMDEzMDYsIDAuMDAxMzAzLCAwLjAwMTIzNiIsIFwKLSAgICAgICAgICAiMC4wMDEzMDUsIDAuMDAxMzA1LCAwLjAwMTMwNiwgMC4wMDEzMDcsIDAuMDAxMzA2LCAwLjAwMTMwNCwgMC4wMDEyMzYiLCBcCi0gICAgICAgICAgIjAuMDAxMzAzLCAwLjAwMTMwNCwgMC4wMDEzMDUsIDAuMDAxMzA2LCAwLjAwMTMwNiwgMC4wMDEzMDQsIDAuMDAxMjM2IiwgXAotICAgICAgICAgICIwLjAwMTMwMiwgMC4wMDEzMDMsIDAuMDAxMzA1LCAwLjAwMTMwNSwgMC4wMDEzMDYsIDAuMDAxMzA0LCAwLjAwMTI0MiIsIFwKLSAgICAgICAgICAiMC4wMDEzMDEsIDAuMDAxMzAyLCAwLjAwMTMwNCwgMC4wMDEzMDUsIDAuMDAxMzA2LCAwLjAwMTMwMiwgMC4wMDEyMzYiLCBcCi0gICAgICAgICAgIjAuMDAxMjk5LCAwLjAwMTMsIDAuMDAxMzAyLCAwLjAwMTMwNSwgMC4wMDEzMDUsIDAuMDAxMzAyLCAwLjAwMTIzNSIsIFwKLSAgICAgICAgICAiMC4wMDEyOTgsIDAuMDAxMjk5LCAwLjAwMTMwMywgMC4wMDEzMDQsIDAuMDAxMzA1LCAwLjAwMTMwMywgMC4wMDEyMjciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDA0MjUsIDAuMDAwNDI1LCAwLjAwMDQyNSwgMC4wMDA0MjIsIDAuMDAwNDI0LCAwLjAwMDQyMywgMC4wMDA0MjIiLCBcCi0gICAgICAgICAgIjAuMDAwNDE0LCAwLjAwMDQxNCwgMC4wMDA0MTQsIDAuMDAwNDE0LCAwLjAwMDQxNCwgMC4wMDA0MTMsIDAuMDAwNDEyIiwgXAotICAgICAgICAgICIwLjAwMDQxMSwgMC4wMDA0MTEsIDAuMDAwNDEsIDAuMDAwNDEsIDAuMDAwNDEsIDAuMDAwNDA5LCAwLjAwMDQwOCIsIFwKLSAgICAgICAgICAiMC4wMDA0MDksIDAuMDAwNDA5LCAwLjAwMDQxLCAwLjAwMDQwOSwgMC4wMDA0MDksIDAuMDAwNDA4LCAwLjAwMDQwOCIsIFwKLSAgICAgICAgICAiMC4wMDA0MDYsIDAuMDAwNDA4LCAwLjAwMDQwOSwgMC4wMDA0MDgsIDAuMDAwNDA4LCAwLjAwMDQwNywgMC4wMDA0MDciLCBcCi0gICAgICAgICAgIjAuMDAwNDA2LCAwLjAwMDQwNywgMC4wMDA0MDgsIDAuMDAwNDA5LCAwLjAwMDQwOCwgMC4wMDA0MDcsIDAuMDAwNDA2IiwgXAotICAgICAgICAgICIwLjAwMDQwNSwgMC4wMDA0MDYsIDAuMDAwNDA4LCAwLjAwMDQwOCwgMC4wMDA0MDgsIDAuMDAwNDA2LCAwLjAwMDQwNiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTE2OCwgMC4wMDExNjgsIDAuMDAxMTY4LCAwLjAwMTE2OCwgMC4wMDExNjgsIDAuMDAxMTY2LCAwLjAwMTA5OSIsIFwKLSAgICAgICAgICAiMC4wMDExNjcsIDAuMDAxMTY2LCAwLjAwMTE2OCwgMC4wMDExNywgMC4wMDExNjgsIDAuMDAxMTY1LCAwLjAwMTA5OCIsIFwKLSAgICAgICAgICAiMC4wMDExNjUsIDAuMDAxMTY2LCAwLjAwMTE2NiwgMC4wMDExNjgsIDAuMDAxMTcsIDAuMDAxMTY1LCAwLjAwMTA5OCIsIFwKLSAgICAgICAgICAiMC4wMDExNjQsIDAuMDAxMTY0LCAwLjAwMTE2NywgMC4wMDExNjcsIDAuMDAxMTY4LCAwLjAwMTE2NSwgMC4wMDEwOTgiLCBcCi0gICAgICAgICAgIjAuMDAxMTYzLCAwLjAwMTE2MywgMC4wMDExNjUsIDAuMDAxMTY3LCAwLjAwMTE2NywgMC4wMDExNjQsIDAuMDAxMDk3IiwgXAotICAgICAgICAgICIwLjAwMTE2MSwgMC4wMDExNjIsIDAuMDAxMTY1LCAwLjAwMTE2NywgMC4wMDExNjcsIDAuMDAxMTY1LCAwLjAwMTA5NyIsIFwKLSAgICAgICAgICAiMC4wMDExNiwgMC4wMDExNiwgMC4wMDExNjQsIDAuMDAxMTY2LCAwLjAwMTE2NywgMC4wMDExNjQsIDAuMDAxMDk2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwMjUzLCAwLjAwMDI1MywgMC4wMDAyNTMsIDAuMDAwMjUzLCAwLjAwMDI1MywgMC4wMDAyNTIsIDAuMDAwMjUyIiwgXAotICAgICAgICAgICIwLjAwMDI1MiwgMC4wMDAyNTIsIDAuMDAwMjUzLCAwLjAwMDI1MywgMC4wMDAyNTMsIDAuMDAwMjUyLCAwLjAwMDI1MiIsIFwKLSAgICAgICAgICAiMC4wMDAyNSwgMC4wMDAyNSwgMC4wMDAyNTIsIDAuMDAwMjUyLCAwLjAwMDI1MiwgMC4wMDAyNTIsIDAuMDAwMjUyIiwgXAotICAgICAgICAgICIwLjAwMDI0OCwgMC4wMDAyNDksIDAuMDAwMjUxLCAwLjAwMDI1MiwgMC4wMDAyNTIsIDAuMDAwMjUyLCAwLjAwMDI1MiIsIFwKLSAgICAgICAgICAiMC4wMDAyNDYsIDAuMDAwMjQ4LCAwLjAwMDI1MSwgMC4wMDAyNTIsIDAuMDAwMjUyLCAwLjAwMDI1MiwgMC4wMDAyNTIiLCBcCi0gICAgICAgICAgIjAuMDAwMjQ0LCAwLjAwMDI0NiwgMC4wMDAyNSwgMC4wMDAyNTEsIDAuMDAwMjUxLCAwLjAwMDI1MiwgMC4wMDAyNTEiLCBcCi0gICAgICAgICAgIjAuMDAwMjQzLCAwLjAwMDI0NCwgMC4wMDAyNDksIDAuMDAwMjUxLCAwLjAwMDI1MSwgMC4wMDAyNTEsIDAuMDAwMjUxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxMDI3LCAwLjAwMTAyNywgMC4wMDEwMjgsIDAuMDAxMDI4LCAwLjAwMTAyOCwgMC4wMDEwMjUsIDAuMDAwOTU4IiwgXAotICAgICAgICAgICIwLjAwMTAyNSwgMC4wMDEwMjYsIDAuMDAxMDI3LCAwLjAwMTAyNywgMC4wMDEwMjcsIDAuMDAxMDI1LCAwLjAwMDk1OCIsIFwKLSAgICAgICAgICAiMC4wMDEwMjMsIDAuMDAxMDIzLCAwLjAwMTAyNiwgMC4wMDEwMjcsIDAuMDAxMDI3LCAwLjAwMTAyNSwgMC4wMDA5NjQiLCBcCi0gICAgICAgICAgIjAuMDAxMDIxLCAwLjAwMTAyMiwgMC4wMDEwMjUsIDAuMDAxMDI2LCAwLjAwMTAyOCwgMC4wMDEwMjUsIDAuMDAwOTU3IiwgXAotICAgICAgICAgICIwLjAwMTAxOSwgMC4wMDEwMiwgMC4wMDEwMjQsIDAuMDAxMDI2LCAwLjAwMTAyNywgMC4wMDEwMjMsIDAuMDAwOTU2IiwgXAotICAgICAgICAgICIwLjAwMTAxNiwgMC4wMDEwMTgsIDAuMDAxMDIzLCAwLjAwMTAyNSwgMC4wMDEwMjUsIDAuMDAxMDIzLCAwLjAwMDk1NiIsIFwKLSAgICAgICAgICAiMC4wMDEwMTQsIDAuMDAxMDE2LCAwLjAwMTAyMywgMC4wMDEwMjQsIDAuMDAxMDI2LCAwLjAwMTAyMywgMC4wMDA5NiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDA1NywgMC4wMDAwNTgsIDAuMDAwMDU4LCAwLjAwMDA1OCwgMC4wMDAwNTgsIDAuMDAwMDU4LCAwLjAwMDA1OCIsIFwKLSAgICAgICAgICAiMC4wMDAwNjUsIDAuMDAwMDY1LCAwLjAwMDA2NywgMC4wMDAwNjgsIDAuMDAwMDY4LCAwLjAwMDA2OCwgMC4wMDAwNjgiLCBcCi0gICAgICAgICAgIjAuMDAwMDY1LCAwLjAwMDA2NiwgMC4wMDAwNywgMC4wMDAwNzEsIDAuMDAwMDcxLCAwLjAwMDA3MiwgMC4wMDAwNzIiLCBcCi0gICAgICAgICAgIjAuMDAwMDYzLCAwLjAwMDA2NCwgMC4wMDAwNjksIDAuMDAwMDcxLCAwLjAwMDA3MiwgMC4wMDAwNzIsIDAuMDAwMDczIiwgXAotICAgICAgICAgICIwLjAwMDA2MSwgMC4wMDAwNjIsIDAuMDAwMDY4LCAwLjAwMDA3MSwgMC4wMDAwNzIsIDAuMDAwMDczLCAwLjAwMDA3MyIsIFwKLSAgICAgICAgICAiMC4wMDAwNTgsIDAuMDAwMDYsIDAuMDAwMDY3LCAwLjAwMDA3LCAwLjAwMDA3MiwgMC4wMDAwNzMsIDAuMDAwMDczIiwgXAotICAgICAgICAgICIwLjAwMDA1NSwgMC4wMDAwNTcsIDAuMDAwMDY2LCAwLjAwMDA3LCAwLjAwMDA3MSwgMC4wMDAwNzMsIDAuMDAwMDczIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogTk9SNEJYMSAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChOT1I0QlgxKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMDk4MzM5OTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQU4pICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDU1ODQ3MzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA1NTgxNDk7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNTU4NDczOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDY4NywgMC4wMDA2NzEsIDAuMDAwNjYxLCAwLjAwMDY1NiwgMC4wMDA2NTQsIDAuMDAwNjUyLCAwLjAwMDY1MiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTI0NSwgMC4wMDEyMzMsIDAuMDAxMjI0LCAwLjAwMTIxOSwgMC4wMDEyMTYsIDAuMDAxMjEzLCAwLjAwMTIxMiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwODM2OTA1OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDgyOTkxMTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA4MzY5MDU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMTU4LCAwLjAwMDE1OCwgMC4wMDAxNTgsIDAuMDAwMTU4LCAwLjAwMDE1OCwgMC4wMDAxNTgsIDAuMDAwMTU4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjgsIDAuMDAwMjgsIDAuMDAwMjc5LCAwLjAwMDI4LCAwLjAwMDI3OSwgMC4wMDAyNzksIDAuMDAwMjc5Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihDKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA4NTY4Njk7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwODUxMzk4OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDg1Njg2OTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxMywgMC4wMDAxMywgMC4wMDAxMywgMC4wMDAxMywgMC4wMDAxMywgMC4wMDAxMywgMC4wMDAxMyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDUwNiwgMC4wMDA1MDYsIDAuMDAwNTA1LCAwLjAwMDUwNSwgMC4wMDA1MDUsIDAuMDAwNTA1LCAwLjAwMDUwNCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwOTExMDczOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDkxMTAwNzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA5MTEwNzM7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMDg4LCAwLjAwMDA4OCwgMC4wMDAwODgsIDAuMDAwMDg4LCAwLjAwMDA4OCwgMC4wMDAwODgsIDAuMDAwMDg4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNjE4LCAwLjAwMDYxNywgMC4wMDA2MTgsIDAuMDAwNjE3LCAwLjAwMDYxOCwgMC4wMDA2MTcsIDAuMDAwNjE4Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMDM2MjI4OwotICAgIGZ1bmN0aW9uIDogIighKCgoKCFBTikrQikrQykrRCkpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuNDI4MTAxLCAwLjYxMDQwOSwgMS42NDQzLCAyLjU1NTU3LCAzLjc2OTUyLCA2LjE5ODc2LCA3LjcxNjk1IiwgXAotICAgICAgICAgICIwLjQzOTgyMSwgMC42MjIxMTcsIDEuNjU0OTcsIDIuNTY2ODYsIDMuNzgxMTksIDYuMjEwMzYsIDcuNzI4NjQiLCBcCi0gICAgICAgICAgIjAuNDU1MjIsIDAuNjM3Njk3LCAxLjY3MTE1LCAyLjU4MjQzLCAzLjc5NjgsIDYuMjI2MDMsIDcuNzQ0MDYiLCBcCi0gICAgICAgICAgIjAuNDcwMzg0LCAwLjY1Mjg5MiwgMS42ODYzMywgMi41OTc2NywgMy44MTIwMywgNi4yNDEyNiwgNy43NTkzIiwgXAotICAgICAgICAgICIwLjQ4NTIyOCwgMC42Njc2MjMsIDEuNzAxMTEsIDIuNjEyNSwgMy44MjY4NCwgNi4yNTYwNSwgNy43NzQzMSIsIFwKLSAgICAgICAgICAiMC41MDcxNTYsIDAuNjg5NjY1LCAxLjcyMzI3LCAyLjYzNDU0LCAzLjg0ODkxLCA2LjI3ODE3LCA3Ljc5NjMyIiwgXAotICAgICAgICAgICIwLjUyNDcxMSwgMC43MDcwMTEsIDEuNzQwMjIsIDIuNjUxOTgsIDMuODY2NCwgNi4yOTU0NywgNy44MTM4MyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC42Nzc3MTIsIDEuMDI1NTEsIDIuOTk4MjQsIDQuNzQxMiwgNy4wNDA5OSwgMTEuNjU2NiwgMTQuNTQyNSIsIFwKLSAgICAgICAgICAiMC42Nzc3NjEsIDEuMDI1MTMsIDIuOTkzNzIsIDQuNzQwMzIsIDcuMDQ0MiwgMTEuNjU2NCwgMTQuNTQyNSIsIFwKLSAgICAgICAgICAiMC42Nzc2NzgsIDEuMDI0NDIsIDIuOTk0NTgsIDQuNzI3MDUsIDcuMDQxNTMsIDExLjY1NzYsIDE0LjU0MjgiLCBcCi0gICAgICAgICAgIjAuNjc3NjQsIDEuMDI0MzYsIDIuOTk0NTIsIDQuNzI2OTUsIDcuMDQxNjIsIDExLjY1NzYsIDE0LjU0MjYiLCBcCi0gICAgICAgICAgIjAuNjc3NzA2LCAxLjAyNTExLCAyLjk5MTQ4LCA0Ljc0MDEyLCA3LjA0MDg0LCAxMS42NTY2LCAxNC41NDI1IiwgXAotICAgICAgICAgICIwLjY3NzcwMSwgMS4wMjQ0OSwgMi45OTQ1OSwgNC43MjcxMSwgNy4wNDEzOSwgMTEuNjU2NCwgMTQuNTQyNSIsIFwKLSAgICAgICAgICAiMC42Nzc4MjUsIDEuMDI2ODksIDIuOTkyMjYsIDQuNzQwMSwgNy4wNDQyMSwgMTEuNjU3MywgMTQuNTQyNSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNDY5MjUsIDAuMTk3MzE2LCAwLjQ3ODk5MSwgMC43MjY0NDcsIDEuMDU2MjcsIDEuNzE1NDUsIDIuMTI3MTciLCBcCi0gICAgICAgICAgIjAuMTU4NDY3LCAwLjIwODg1LCAwLjQ5MDUxOCwgMC43MzgwNjcsIDEuMDY3NzYsIDEuNzI3MDQsIDIuMTM4MjIiLCBcCi0gICAgICAgICAgIjAuMTczMjQ2LCAwLjIyMzYyNiwgMC41MDUzMDUsIDAuNzUyODQ0LCAxLjA4MjUyLCAxLjc0MTU1LCAyLjE1Mjg0IiwgXAotICAgICAgICAgICIwLjE4NzcwNCwgMC4yMzgxMDUsIDAuNTE5ODEyLCAwLjc2NzM3MywgMS4wOTcwNiwgMS43NTYzLCAyLjE2NzkzIiwgXAotICAgICAgICAgICIwLjIwMTE3MSwgMC4yNTE1MjksIDAuNTMzMjUsIDAuNzgwNzg0LCAxLjExMDU0LCAxLjc2OTc2LCAyLjE4MTQxIiwgXAotICAgICAgICAgICIwLjIyMDcyLCAwLjI3MTA4OSwgMC41NTI3ODQsIDAuODAwMzIzLCAxLjEyOTk5LCAxLjc4OTE2LCAyLjIwMTE1IiwgXAotICAgICAgICAgICIwLjIzNTk5MiwgMC4yODYzNTcsIDAuNTY4MDU4LCAwLjgxNTU5NiwgMS4xNDUzNCwgMS44MDQ1NiwgMi4yMTYwMSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMDM4MSwgMC4zMDE1ODQsIDAuODU2NzU0LCAxLjM0Njc1LCAxLjk5OTg2LCAzLjMwNTE0LCA0LjEyMjA5IiwgXAotICAgICAgICAgICIwLjIwMzg4NywgMC4zMDE1ODMsIDAuODU2NjMyLCAxLjM0NjM2LCAxLjk5OTc2LCAzLjMwNDg3LCA0LjEyMTYiLCBcCi0gICAgICAgICAgIjAuMjAzOTE0LCAwLjMwMTU0NywgMC44NTY3NjksIDEuMzQ2NjYsIDEuOTk5NzgsIDMuMzA1MjksIDQuMTIwMTEiLCBcCi0gICAgICAgICAgIjAuMjAzOTM0LCAwLjMwMTU2NSwgMC44NTY0OSwgMS4zNDY3OSwgMS45OTk4NCwgMy4zMDQ5MywgNC4xMjEyMSIsIFwKLSAgICAgICAgICAiMC4yMDM4OTYsIDAuMzAxNjk4LCAwLjg1NjQwNywgMS4zNDYzMywgMS45OTk3NywgMy4zMDQ4NCwgNC4xMjEyIiwgXAotICAgICAgICAgICIwLjIwNDIwNSwgMC4zMDE3NzYsIDAuODU2NzY3LCAxLjM0NjI5LCAxLjk5OTIxLCAzLjMwNTgsIDQuMTIxIiwgXAotICAgICAgICAgICIwLjIwNDYzMiwgMC4zMDE4MzUsIDAuODU2MzA1LCAxLjM0NiwgMS45OTk3OCwgMy4zMDUzNSwgNC4xMjE4OCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zODQwOCwgMC41NjY0MywgMS41OTk0NiwgMi41MTEwNiwgMy43MjU1NSwgNi4xNTQ1MywgNy42NzI2NCIsIFwKLSAgICAgICAgICAiMC4zOTQ0MjQsIDAuNTc2OTg3LCAxLjYxMDE4LCAyLjUyMTY1LCAzLjczNTk1LCA2LjE2NTIsIDcuNjgzMzEiLCBcCi0gICAgICAgICAgIjAuNDA2NjM0LCAwLjU4OTIxMSwgMS42MjI0MSwgMi41MzQzLCAzLjc0ODUxLCA2LjE3NzU1LCA3LjY5NTc4IiwgXAotICAgICAgICAgICIwLjQxODI0NywgMC42MDA3MjIsIDEuNjM0ODgsIDIuNTQ1OCwgMy43NjAxNywgNi4xODkzOSwgNy43MDc2NCIsIFwKLSAgICAgICAgICAiMC40MjkyNzEsIDAuNjExNzk5LCAxLjY0NTU5LCAyLjU1NzAxLCAzLjc3MTU3LCA2LjIwMDY2LCA3LjcxODc4IiwgXAotICAgICAgICAgICIwLjQ0NjIyNSwgMC42Mjg5MjksIDEuNjYyMTcsIDIuNTc0MDcsIDMuNzg4NDcsIDYuMjE3NjksIDcuNzM1OTgiLCBcCi0gICAgICAgICAgIjAuNDYwNzU5LCAwLjY0MzI2NywgMS42NzY3OSwgMi41ODgxNCwgMy44MDMxMSwgNi4yMzI0MiwgNy43NTA2NCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC42NzY5ODEsIDEuMDI1NDcsIDIuOTk0MjQsIDQuNzI1MjEsIDcuMDM3MzEsIDExLjY1NzYsIDE0LjU0MjkiLCBcCi0gICAgICAgICAgIjAuNjc3MTgsIDEuMDI2NDQsIDIuOTk0MzcsIDQuNzI2OTEsIDcuMDQ0MjcsIDExLjY1NzYsIDE0LjU0MjQiLCBcCi0gICAgICAgICAgIjAuNjc3NDE3LCAxLjAyNTM0LCAyLjk5NDA1LCA0Ljc0MDksIDcuMDM3MzYsIDExLjY1NjcsIDE0LjU0MjciLCBcCi0gICAgICAgICAgIjAuNjc3NzA3LCAxLjAyNTExLCAyLjk5MDkyLCA0LjcyNjg5LCA3LjA0MDg4LCAxMS42NTY3LCAxNC41NDI1IiwgXAotICAgICAgICAgICIwLjY3NzcwMSwgMS4wMjUxMywgMi45OTQ0NywgNC43MjY5NCwgNy4wMzY2OCwgMTEuNjU3NiwgMTQuNTQyOSIsIFwKLSAgICAgICAgICAiMC42Nzc2OTEsIDEuMDI1MjgsIDIuOTkzNzcsIDQuNzQwMTUsIDcuMDQ0MjEsIDExLjY1NjMsIDE0LjU0MjUiLCBcCi0gICAgICAgICAgIjAuNjc3ODU3LCAxLjAyNjI0LCAyLjk5Mzc4LCA0LjczMjE0LCA3LjA0MDczLCAxMS42NTYsIDE0LjU0MjUiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTA4NjMsIDAuMTU4NDUsIDAuNDM5MTAxLCAwLjY4NjQ2OSwgMS4wMTU3NiwgMS42NzQ1NywgMi4wODY0OSIsIFwKLSAgICAgICAgICAiMC4xMTk4MzgsIDAuMTY5NjU0LCAwLjQ1MDMyNCwgMC42OTc1NSwgMS4wMjY5MywgMS42ODU2NSwgMi4wOTc0MiIsIFwKLSAgICAgICAgICAiMC4xMzUyODQsIDAuMTg0ODY0LCAwLjQ2NTQ1NiwgMC43MTI2MTcsIDEuMDQyMDIsIDEuNzAwNjMsIDIuMTEzMTciLCBcCi0gICAgICAgICAgIjAuMTUwMjIxLCAwLjE5OTc5OSwgMC40ODAwMDQsIDAuNzI3MDE0LCAxLjA1NjI3LCAxLjcxNDg5LCAyLjEyNzM0IiwgXAotICAgICAgICAgICIwLjE2NTEyNywgMC4yMTQ5NCwgMC40OTUxMDQsIDAuNzQyMjc3LCAxLjA3MTYzLCAxLjczMDUxLCAyLjE0MjY0IiwgXAotICAgICAgICAgICIwLjE4OTAzLCAwLjIzOTE2MiwgMC41MTk1NTcsIDAuNzY2NDY4LCAxLjA5NTc3LCAxLjc1NDIyLCAyLjE2NTk3IiwgXAotICAgICAgICAgICIwLjIxMDA4NywgMC4yNTk4OTEsIDAuNTQwNjA4LCAwLjc4NzQ5NiwgMS4xMTY2NSwgMS43NzUyOSwgMi4xODY2NiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xOTY3NSwgMC4yOTQ3ODIsIDAuODQ5ODc5LCAxLjMzOTg3LCAxLjk5MjgsIDMuMjk4NjksIDQuMTEzODgiLCBcCi0gICAgICAgICAgIjAuMTk2Nzg1LCAwLjI5NDcyNSwgMC44NDk3NzEsIDEuMzM5ODUsIDEuOTkyNywgMy4yOTg0MiwgNC4xMTM3IiwgXAotICAgICAgICAgICIwLjE5NjY2NiwgMC4yOTQ3NTksIDAuODUwMDg3LCAxLjMzOTUsIDEuOTkyNjQsIDMuMjk3NiwgNC4xMTQ1MyIsIFwKLSAgICAgICAgICAiMC4xOTc0OTUsIDAuMjk0Njg2LCAwLjg0OTgzMywgMS4zMzk1OSwgMS45OTIxNSwgMy4yOTc1LCA0LjExMzg2IiwgXAotICAgICAgICAgICIwLjIwMDE3MiwgMC4yOTUzNzIsIDAuODQ5Njc3LCAxLjMzOTU3LCAxLjk5MjIzLCAzLjI5ODU5LCA0LjExMzg3IiwgXAotICAgICAgICAgICIwLjIwNjk4OCwgMC4yOTkxNCwgMC44NDk4OTEsIDEuMzM5NiwgMS45OTI4MSwgMy4yOTg2NSwgNC4xMTM3OSIsIFwKLSAgICAgICAgICAiMC4yMTQ3MiwgMC4zMDQ2MjgsIDAuODQ5ODQ2LCAxLjMzOTc0LCAxLjk5MjMyLCAzLjI5NzgyLCA0LjExNDYxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjM2OTk2OCwgMC41NTIyNzQsIDEuNTg1NjcsIDIuNDk2NDgsIDMuNzExMzIsIDYuMTQwNTIsIDcuNjU4NzgiLCBcCi0gICAgICAgICAgIjAuMzc5NzIsIDAuNTYyMDg3LCAxLjU5NTgyLCAyLjUwNjUyLCAzLjcyMTU4LCA2LjE1MDUxLCA3LjY2ODczIiwgXAotICAgICAgICAgICIwLjM5MTY4NSwgMC41NzQxODUsIDEuNjA3ODYsIDIuNTE4ODMsIDMuNzMzMzgsIDYuMTYyNjEsIDcuNjgwODEiLCBcCi0gICAgICAgICAgIjAuNDAzMTM5LCAwLjU4NTYyMywgMS42MTkwNCwgMi41MzA3LCAzLjc0NTExLCA2LjE3NDM1LCA3LjY5MjUyIiwgXAotICAgICAgICAgICIwLjQxNDQ1MSwgMC41OTY4ODYsIDEuNjMxLCAyLjU0MjE4LCAzLjc1NjM3LCA2LjE4NTczLCA3LjcwMzkyIiwgXAotICAgICAgICAgICIwLjQzMjU2MywgMC42MTUxNjksIDEuNjQ5MDQsIDIuNTU5NzQsIDMuNzc0NjgsIDYuMjAzOTMsIDcuNzIyMjEiLCBcCi0gICAgICAgICAgIjAuNDQ4MjQzLCAwLjYzMDkwMywgMS42NjQzMSwgMi41NzYzLCAzLjc5MDcyLCA2LjIyMDExLCA3LjczODIzIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjY3NzY4NywgMS4wMjUyNywgMi45OTE0OCwgNC43MzA0MywgNy4wNDA5MiwgMTEuNjU2MywgMTQuNTQyNSIsIFwKLSAgICAgICAgICAiMC42Nzc2NDIsIDEuMDI1MSwgMi45OTQ3MSwgNC43Mjk5OSwgNy4wNDQ0OSwgMTEuNjU3NSwgMTQuNTQyNCIsIFwKLSAgICAgICAgICAiMC42Nzc4MjYsIDEuMDI1MzMsIDIuOTk0NzUsIDQuNzM5NzcsIDcuMDQxMTgsIDExLjY1NjEsIDE0LjU0MjUiLCBcCi0gICAgICAgICAgIjAuNjc3NjQ3LCAxLjAyNTAzLCAyLjk5Mzk4LCA0Ljc0MDE5LCA3LjA0NDI2LCAxMS42NTU3LCAxNC41NDI0IiwgXAotICAgICAgICAgICIwLjY3Nzc1NSwgMS4wMjYyMywgMi45OTQ4NiwgNC43MjY4MiwgNy4wNDQwOCwgMTEuNjU3NCwgMTQuNTQyNyIsIFwKLSAgICAgICAgICAiMC42NzY5NjIsIDEuMDI1MzMsIDIuOTk0NjcsIDQuNzMwNDMsIDcuMDQwODIsIDExLjY1NjMsIDE0LjU0MjUiLCBcCi0gICAgICAgICAgIjAuNjc3OTAxLCAxLjAyNTAzLCAyLjk5NDA2LCA0Ljc0MDEyLCA3LjA0MzIxLCAxMS42NTc1LCAxNC41NDI5Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwNDE2MiwgMC4xNTM2NzksIDAuNDMzODI2LCAwLjY4MDgyNCwgMS4wMTAxLCAxLjY2ODY3LCAyLjA4MDgyIiwgXAotICAgICAgICAgICIwLjExNTU3LCAwLjE2NTEwNywgMC40NDUyMzMsIDAuNjkyMjA5LCAxLjAyMTU3LCAxLjY4MDIxLCAyLjA5MTUxIiwgXAotICAgICAgICAgICIwLjEzMTE0OSwgMC4xODA2MjMsIDAuNDYwOTMyLCAwLjcwNzc5MSwgMS4wMzcxNCwgMS42OTYxNiwgMi4xMDgxOSIsIFwKLSAgICAgICAgICAiMC4xNDYwODksIDAuMTk1NTQyLCAwLjQ3NTE2LCAwLjcyMTk3MSwgMS4wNTExLCAxLjcwOTYxLCAyLjEyMjE1IiwgXAotICAgICAgICAgICIwLjE2MTAyOSwgMC4yMTA1MTYsIDAuNDkwMjA3LCAwLjczNzE0OCwgMS4wNjYzMywgMS43MjE2NCwgMi4xMzM3OCIsIFwKLSAgICAgICAgICAiMC4xODQ5MDMsIDAuMjM0ODIzLCAwLjUxNDc3MywgMC43NjE2OTksIDEuMDkwODUsIDEuNzQ5MjEsIDIuMTYwODYiLCBcCi0gICAgICAgICAgIjAuMjA1OTk5LCAwLjI1NTUyLCAwLjUzNTk1MiwgMC43ODI3NDMsIDEuMTExNTksIDEuNzY5ODUsIDIuMTgyNDUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTkxMzc3LCAwLjI4OTQzNCwgMC44NDQ0ODQsIDEuMzM0MjUsIDEuOTg3MDcsIDMuMjk0NjUsIDQuMTA4MzgiLCBcCi0gICAgICAgICAgIjAuMTkxNDIsIDAuMjg5MzQxLCAwLjg0NDI3NywgMS4zMzM1OSwgMS45ODcwNiwgMy4yOTI3OSwgNC4xMDc1NSIsIFwKLSAgICAgICAgICAiMC4xOTEzNzUsIDAuMjg5MzQ4LCAwLjg0NDQyOCwgMS4zMzM5MSwgMS45ODcwNCwgMy4yOTI5NCwgNC4xMDg0OCIsIFwKLSAgICAgICAgICAiMC4xOTI1MTksIDAuMjg5NDI1LCAwLjg0NDQzNCwgMS4zMzQyNSwgMS45ODY1MywgMy4yOTIzMywgNC4xMDkwMyIsIFwKLSAgICAgICAgICAiMC4xOTUzMjgsIDAuMjkwMzMxLCAwLjg0NDU1NCwgMS4zMzM5NywgMS45ODY3NiwgMy4yOTI3MSwgNC4xMDgyMiIsIFwKLSAgICAgICAgICAiMC4yMDI2MzgsIDAuMjk0MzE2LCAwLjg0NDYxNywgMS4zMzQsIDEuOTg2NzIsIDMuMjkyODYsIDQuMTA4MzIiLCBcCi0gICAgICAgICAgIjAuMjEwNzg0LCAwLjMwMDAyOSwgMC44NDQ1NDksIDEuMzMzOTYsIDEuOTg2NywgMy4yOTIyOSwgNC4xMDkxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkQiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjM0ODIzOCwgMC41MzA1NTIsIDEuNTYzODksIDIuNDc1NSwgMy42ODk3OSwgNi4xMTg3MiwgNy42MzciLCBcCi0gICAgICAgICAgIjAuMzU3MjkyLCAwLjUzOTYyMSwgMS41NzI5MiwgMi40ODQ2MywgMy42OTg5MiwgNi4xMjgyLCA3LjY0NjM0IiwgXAotICAgICAgICAgICIwLjM2ODkyMSwgMC41NTE0ODEsIDEuNTg1MDMsIDIuNDk2OTEsIDMuNzExMDcsIDYuMTQwMiwgNy42NTg0IiwgXAotICAgICAgICAgICIwLjM3OTk4OSwgMC41NjI4MTgsIDEuNTk1OTMsIDIuNTA3OTMsIDMuNzIyMywgNi4xNTE2MywgNy42Njk2NyIsIFwKLSAgICAgICAgICAiMC4zOTE0OTksIDAuNTc0MDY4LCAxLjYwODU0LCAyLjUxOTQzLCAzLjczMzgxLCA2LjE2MzI3LCA3LjY4MTM2IiwgXAotICAgICAgICAgICIwLjQwOTcwOCwgMC41OTI2MzYsIDEuNjI2MDUsIDIuNTM3ODgsIDMuNzUyMzQsIDYuMTgxNzgsIDcuNjk5OTMiLCBcCi0gICAgICAgICAgIjAuNDI1Nzc1LCAwLjYwODQ3LCAxLjY0MzIzLCAyLjU1NDY1LCAzLjc2ODc2LCA2LjE5Nzk0LCA3LjcxNjI2Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjY3NzcyOSwgMS4wMjUxMywgMi45OTEzNSwgNC43MjU3MiwgNy4wNDQzOSwgMTEuNjU2NSwgMTQuNTQyNyIsIFwKLSAgICAgICAgICAiMC42Nzc4MDEsIDEuMDI0NTQsIDIuOTkyNDcsIDQuNzQwMzQsIDcuMDQxMDksIDExLjY1NTgsIDE0LjU0MjkiLCBcCi0gICAgICAgICAgIjAuNjc4ODMyLCAxLjAyNTEyLCAyLjk5NDE3LCA0Ljc0MDk4LCA3LjA0NDMyLCAxMS42NTYxLCAxNC41NDI4IiwgXAotICAgICAgICAgICIwLjY3ODM1NSwgMS4wMjUzNywgMi45OTc0LCA0Ljc0MDM0LCA3LjA0MTI1LCAxMS42NTc2LCAxNC41NDI2IiwgXAotICAgICAgICAgICIwLjY3NzUxMywgMS4wMjYyMywgMi45OTA1NiwgNC43Mjg5MSwgNy4wNDQxLCAxMS42NTc1LCAxNC41NDI2IiwgXAotICAgICAgICAgICIwLjY3NjIxNSwgMS4wMjUyOSwgMi45OTQxOSwgNC43Mjg5MSwgNy4wNDQxMSwgMTEuNjU2MSwgMTQuNTQyNiIsIFwKLSAgICAgICAgICAiMC42Nzc0MjMsIDEuMDI0NzcsIDIuOTkwNTgsIDQuNzQxMTQsIDcuMDQ0MjcsIDExLjY1NjQsIDE0LjU0MjUiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk5MTcyLCAwLjE0ODU1NCwgMC40Mjg1NzMsIDAuNjc1MzM3LCAxLjAwNTAxLCAxLjY2MjkyLCAyLjA3NDc2IiwgXAotICAgICAgICAgICIwLjExMTE4MiwgMC4xNjA2MDgsIDAuNDQwNTg2LCAwLjY4NzM2OCwgMS4wMTY0NSwgMS42NzQ3NSwgMi4wODY0MSIsIFwKLSAgICAgICAgICAiMC4xMjU4OTUsIDAuMTc1MjY3LCAwLjQ1NDU5MSwgMC42OTk1MTksIDEuMDI4OSwgMS42ODc5LCAyLjA5OTQ2IiwgXAotICAgICAgICAgICIwLjE0MTAxLCAwLjE5MDI2OSwgMC40NjkxOTgsIDAuNzE2MjMxLCAxLjA0NTI0LCAxLjcwMzYyLCAyLjExNjQxIiwgXAotICAgICAgICAgICIwLjE1NjIxMywgMC4yMDU1MzYsIDAuNDg0NTkxLCAwLjczMTUxOCwgMS4wNTUxOSwgMS43MTM1MywgMi4xMjU3MyIsIFwKLSAgICAgICAgICAiMC4xODAwOTgsIDAuMjI5NTg0LCAwLjUwOTM3NiwgMC43NTY0ODcsIDEuMDg0MjIsIDEuNzM0ODgsIDIuMTQ2NTEiLCBcCi0gICAgICAgICAgIjAuMjAxNTc2LCAwLjI1MDUyMywgMC41Mjg4MzksIDAuNzc3Mjk0LCAxLjEwNDg1LCAxLjc1MzU4LCAyLjE2NDg4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE4NjYwNiwgMC4yODUyNjYsIDAuODM5ODI4LCAxLjMyOTQzLCAxLjk4NDM1LCAzLjI5NjQ1LCA0LjExMjY3IiwgXAotICAgICAgICAgICIwLjE4NjkyNywgMC4yODQyMzgsIDAuODQwODQxLCAxLjMyOTQ5LCAxLjk4NTc4LCAzLjI5NDQyLCA0LjEwNzQ2IiwgXAotICAgICAgICAgICIwLjE4NjIyOSwgMC4yODQ0OTQsIDAuODQxODE2LCAxLjMzNDM2LCAxLjk4NTcxLCAzLjI4OTgxLCA0LjEwNjk2IiwgXAotICAgICAgICAgICIwLjE4NzgyMywgMC4yODUzMTUsIDAuODQwMzQ1LCAxLjMzMDA2LCAxLjk4MjY1LCAzLjI4OTY0LCA0LjExMDI3IiwgXAotICAgICAgICAgICIwLjE5MTM4MiwgMC4yODU1NDksIDAuODQwNDEyLCAxLjMyOTk4LCAxLjk4NTg0LCAzLjMwMTQ0LCA0LjEwNzY0IiwgXAotICAgICAgICAgICIwLjE5ODg1OCwgMC4yOTAyNjgsIDAuODQwMzM2LCAxLjMzMTE3LCAxLjk4MjU3LCAzLjI5OTQ4LCA0LjExNTU1IiwgXAotICAgICAgICAgICIwLjIwNjY0LCAwLjI5NjUzMiwgMC44NDEwNiwgMS4zMzA0MiwgMS45ODksIDMuMjk1ODgsIDQuMTE1MjYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyNjcxLCAwLjAwMjY3MiwgMC4wMDI2NzMsIDAuMDAyNjczLCAwLjAwMjY3MywgMC4wMDI2NzIsIDAuMDAyNjE5IiwgXAotICAgICAgICAgICIwLjAwMjY1NSwgMC4wMDI2NTYsIDAuMDAyNjU4LCAwLjAwMjY1NywgMC4wMDI2NTcsIDAuMDAyNjU0LCAwLjAwMjYwMiIsIFwKLSAgICAgICAgICAiMC4wMDI2NDQsIDAuMDAyNjQ2LCAwLjAwMjY0NywgMC4wMDI2NDgsIDAuMDAyNjQ4LCAwLjAwMjY0NSwgMC4wMDI1OTIiLCBcCi0gICAgICAgICAgIjAuMDAyNjM4LCAwLjAwMjY0LCAwLjAwMjY0MiwgMC4wMDI2NDMsIDAuMDAyNjQzLCAwLjAwMjY0LCAwLjAwMjU5MSIsIFwKLSAgICAgICAgICAiMC4wMDI2MzYsIDAuMDAyNjM4LCAwLjAwMjY0MSwgMC4wMDI2NDEsIDAuMDAyNjQyLCAwLjAwMjYzOSwgMC4wMDI1ODciLCBcCi0gICAgICAgICAgIjAuMDAyNjMzLCAwLjAwMjYzNiwgMC4wMDI2NCwgMC4wMDI2NCwgMC4wMDI2NDEsIDAuMDAyNjM4LCAwLjAwMjU5MSIsIFwKLSAgICAgICAgICAiMC4wMDI2MzQsIDAuMDAyNjM3LCAwLjAwMjY0MiwgMC4wMDI2NDMsIDAuMDAyNjQzLCAwLjAwMjY0MywgMC4wMDI1OTMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI1NzUsIDAuMDAyNTc2LCAwLjAwMjU3NSwgMC4wMDI1NzQsIDAuMDAyNTczLCAwLjAwMjU3MywgMC4wMDI1NzEiLCBcCi0gICAgICAgICAgIjAuMDAyNTYyLCAwLjAwMjU2MiwgMC4wMDI1NjIsIDAuMDAyNTYxLCAwLjAwMjU2MSwgMC4wMDI1NTgsIDAuMDAyNTU4IiwgXAotICAgICAgICAgICIwLjAwMjU1MSwgMC4wMDI1NTIsIDAuMDAyNTUxLCAwLjAwMjU1LCAwLjAwMjU1LCAwLjAwMjU0OSwgMC4wMDI1NDkiLCBcCi0gICAgICAgICAgIjAuMDAyNTQ1LCAwLjAwMjU0NCwgMC4wMDI1NDUsIDAuMDAyNTQ0LCAwLjAwMjU0MywgMC4wMDI1NDIsIDAuMDAyNTQxIiwgXAotICAgICAgICAgICIwLjAwMjU0LCAwLjAwMjU0LCAwLjAwMjU0MSwgMC4wMDI1NCwgMC4wMDI1NCwgMC4wMDI1MzgsIDAuMDAyNTM3IiwgXAotICAgICAgICAgICIwLjAwMjUzNywgMC4wMDI1MzYsIDAuMDAyNTM4LCAwLjAwMjUzNywgMC4wMDI1MzcsIDAuMDAyNTM1LCAwLjAwMjUzNSIsIFwKLSAgICAgICAgICAiMC4wMDI1MzQsIDAuMDAyNTM1LCAwLjAwMjUzNiwgMC4wMDI1MzUsIDAuMDAyNTM1LCAwLjAwMjUzNCwgMC4wMDI1MzMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDIzMTIsIDAuMDAyMzEyLCAwLjAwMjMxMywgMC4wMDIzMTIsIDAuMDAyMzEzLCAwLjAwMjMxMSwgMC4wMDIyNTciLCBcCi0gICAgICAgICAgIjAuMDAyMzA4LCAwLjAwMjMwOSwgMC4wMDIzMTIsIDAuMDAyMzEzLCAwLjAwMjMxMiwgMC4wMDIzMSwgMC4wMDIyNjYiLCBcCi0gICAgICAgICAgIjAuMDAyMzAzLCAwLjAwMjMwNiwgMC4wMDIzMSwgMC4wMDIzMTEsIDAuMDAyMzEzLCAwLjAwMjMxLCAwLjAwMjI2MSIsIFwKLSAgICAgICAgICAiMC4wMDIzLCAwLjAwMjMwNCwgMC4wMDIzMSwgMC4wMDIzMTEsIDAuMDAyMzEyLCAwLjAwMjMxLCAwLjAwMjI2MyIsIFwKLSAgICAgICAgICAiMC4wMDIyOTYsIDAuMDAyMzAxLCAwLjAwMjMwOCwgMC4wMDIzMSwgMC4wMDIzMTEsIDAuMDAyMzEsIDAuMDAyMjU1IiwgXAotICAgICAgICAgICIwLjAwMjI5MiwgMC4wMDIyOTcsIDAuMDAyMzA2LCAwLjAwMjMwOSwgMC4wMDIzMSwgMC4wMDIzMDksIDAuMDAyMjU3IiwgXAotICAgICAgICAgICIwLjAwMjI4OSwgMC4wMDIyOTQsIDAuMDAyMzA1LCAwLjAwMjMwOCwgMC4wMDIzMSwgMC4wMDIzMDksIDAuMDAyMjU2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwNjYyLCAwLjAwMDY2MSwgMC4wMDA2NjEsIDAuMDAwNjYxLCAwLjAwMDY2MSwgMC4wMDA2NiwgMC4wMDA2NTkiLCBcCi0gICAgICAgICAgIjAuMDAwNjUxLCAwLjAwMDY1MiwgMC4wMDA2NTIsIDAuMDAwNjUyLCAwLjAwMDY1MiwgMC4wMDA2NTEsIDAuMDAwNjUiLCBcCi0gICAgICAgICAgIjAuMDAwNjQ1LCAwLjAwMDY0NiwgMC4wMDA2NDgsIDAuMDAwNjQ4LCAwLjAwMDY0OCwgMC4wMDA2NDcsIDAuMDAwNjQ3IiwgXAotICAgICAgICAgICIwLjAwMDY0LCAwLjAwMDY0MywgMC4wMDA2NDUsIDAuMDAwNjQ2LCAwLjAwMDY0NiwgMC4wMDA2NDYsIDAuMDAwNjQ1IiwgXAotICAgICAgICAgICIwLjAwMDYzNiwgMC4wMDA2NCwgMC4wMDA2NDQsIDAuMDAwNjQ1LCAwLjAwMDY0NSwgMC4wMDA2NDUsIDAuMDAwNjQ0IiwgXAotICAgICAgICAgICIwLjAwMDYzMywgMC4wMDA2MzcsIDAuMDAwNjQyLCAwLjAwMDY0NCwgMC4wMDA2NDQsIDAuMDAwNjQ0LCAwLjAwMDY0MyIsIFwKLSAgICAgICAgICAiMC4wMDA2MywgMC4wMDA2MzUsIDAuMDAwNjQxLCAwLjAwMDY0MywgMC4wMDA2NDQsIDAuMDAwNjQ0LCAwLjAwMDY0MyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjA2MiwgMC4wMDIwNjIsIDAuMDAyMDYzLCAwLjAwMjA2MywgMC4wMDIwNjIsIDAuMDAyMDYxLCAwLjAwMjAwOSIsIFwKLSAgICAgICAgICAiMC4wMDIwNTgsIDAuMDAyMDU5LCAwLjAwMjA2LCAwLjAwMjA2MiwgMC4wMDIwNjQsIDAuMDAyMDYsIDAuMDAyMDEiLCBcCi0gICAgICAgICAgIjAuMDAyMDUzLCAwLjAwMjA1NiwgMC4wMDIwNiwgMC4wMDIwNjEsIDAuMDAyMDYxLCAwLjAwMjA1OSwgMC4wMDIwMTQiLCBcCi0gICAgICAgICAgIjAuMDAyMDQ5LCAwLjAwMjA1NCwgMC4wMDIwNTksIDAuMDAyMDYsIDAuMDAyMDYyLCAwLjAwMjA2LCAwLjAwMjAwNSIsIFwKLSAgICAgICAgICAiMC4wMDIwNDUsIDAuMDAyMDUsIDAuMDAyMDU3LCAwLjAwMjA1OCwgMC4wMDIwNiwgMC4wMDIwNTgsIDAuMDAyMDEiLCBcCi0gICAgICAgICAgIjAuMDAyMDQyLCAwLjAwMjA0NywgMC4wMDIwNTcsIDAuMDAyMDU4LCAwLjAwMjA2LCAwLjAwMjA1OSwgMC4wMDIwMTIiLCBcCi0gICAgICAgICAgIjAuMDAyMDM5LCAwLjAwMjA0NSwgMC4wMDIwNTUsIDAuMDAyMDU4LCAwLjAwMjA1OSwgMC4wMDIwNTgsIDAuMDAyMDEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDAzNTEsIDAuMDAwMzUxLCAwLjAwMDM1MSwgMC4wMDAzNTEsIDAuMDAwMzUxLCAwLjAwMDM1MSwgMC4wMDAzNSIsIFwKLSAgICAgICAgICAiMC4wMDAzNTYsIDAuMDAwMzU4LCAwLjAwMDM1OSwgMC4wMDAzNiwgMC4wMDAzNiwgMC4wMDAzNTksIDAuMDAwMzU5IiwgXAotICAgICAgICAgICIwLjAwMDM1NCwgMC4wMDAzNTcsIDAuMDAwMzYyLCAwLjAwMDM2MiwgMC4wMDAzNjIsIDAuMDAwMzYyLCAwLjAwMDM2MiIsIFwKLSAgICAgICAgICAiMC4wMDAzNSwgMC4wMDAzNTUsIDAuMDAwMzYyLCAwLjAwMDM2MywgMC4wMDAzNjMsIDAuMDAwMzY0LCAwLjAwMDM2MyIsIFwKLSAgICAgICAgICAiMC4wMDAzNDcsIDAuMDAwMzUzLCAwLjAwMDM2MSwgMC4wMDAzNjMsIDAuMDAwMzY0LCAwLjAwMDM2NCwgMC4wMDAzNjUiLCBcCi0gICAgICAgICAgIjAuMDAwMzQzLCAwLjAwMDM0OSwgMC4wMDAzNiwgMC4wMDAzNjIsIDAuMDAwMzYzLCAwLjAwMDM2NCwgMC4wMDAzNjQiLCBcCi0gICAgICAgICAgIjAuMDAwMzM5LCAwLjAwMDM0NywgMC4wMDAzNTksIDAuMDAwMzYxLCAwLjAwMDM2MywgMC4wMDAzNjQsIDAuMDAwMzY0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxODExLCAwLjAwMTgxMiwgMC4wMDE4MTMsIDAuMDAxODEzLCAwLjAwMTgxMywgMC4wMDE4MSwgMC4wMDE3NjciLCBcCi0gICAgICAgICAgIjAuMDAxODA0LCAwLjAwMTgwNywgMC4wMDE4MTEsIDAuMDAxODEyLCAwLjAwMTgxMiwgMC4wMDE4MTEsIDAuMDAxNzU3IiwgXAotICAgICAgICAgICIwLjAwMTc5OCwgMC4wMDE4MDIsIDAuMDAxODA5LCAwLjAwMTgxLCAwLjAwMTgxMSwgMC4wMDE4MSwgMC4wMDE3NjYiLCBcCi0gICAgICAgICAgIjAuMDAxNzkxLCAwLjAwMTc5OCwgMC4wMDE4MDcsIDAuMDAxODA5LCAwLjAwMTgxLCAwLjAwMTgwOSwgMC4wMDE3NiIsIFwKLSAgICAgICAgICAiMC4wMDE3ODcsIDAuMDAxNzk0LCAwLjAwMTgwNSwgMC4wMDE4MDgsIDAuMDAxODEsIDAuMDAxODA3LCAwLjAwMTc1MyIsIFwKLSAgICAgICAgICAiMC4wMDE3ODEsIDAuMDAxNzg5LCAwLjAwMTgwMywgMC4wMDE4MDYsIDAuMDAxODA4LCAwLjAwMTgwNywgMC4wMDE3NiIsIFwKLSAgICAgICAgICAiMC4wMDE3NzcsIDAuMDAxNzg1LCAwLjAwMTgwMSwgMC4wMDE4MDUsIDAuMDAxODA3LCAwLjAwMTgwNiwgMC4wMDE3NiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDA0NSwgMC4wMDAwNDYsIDAuMDAwMDQ3LCAwLjAwMDA0NywgMC4wMDAwNDcsIDAuMDAwMDQ3LCAwLjAwMDA0NyIsIFwKLSAgICAgICAgICAiMC4wMDAwNTgsIDAuMDAwMDYyLCAwLjAwMDA2NywgMC4wMDAwNjcsIDAuMDAwMDY4LCAwLjAwMDA2OCwgMC4wMDAwNjkiLCBcCi0gICAgICAgICAgIjAuMDAwMDU4LCAwLjAwMDA2NCwgMC4wMDAwNzIsIDAuMDAwMDc1LCAwLjAwMDA3NiwgMC4wMDAwNzcsIDAuMDAwMDc3IiwgXAotICAgICAgICAgICIwLjAwMDA1MywgMC4wMDAwNjEsIDAuMDAwMDczLCAwLjAwMDA3NiwgMC4wMDAwNzcsIDAuMDAwMDc4LCAwLjAwMDA3OCIsIFwKLSAgICAgICAgICAiMC4wMDAwNDksIDAuMDAwMDU5LCAwLjAwMDA3MywgMC4wMDAwNzYsIDAuMDAwMDc5LCAwLjAwMDA4LCAwLjAwMDA4MSIsIFwKLSAgICAgICAgICAiMC4wMDAwNDIsIDAuMDAwMDU0LCAwLjAwMDA3MSwgMC4wMDAwNzQsIDAuMDAwMDc4LCAwLjAwMDA4MSwgMC4wMDAwODIiLCBcCi0gICAgICAgICAgIjAuMDAwMDM3LCAwLjAwMDA1LCAwLjAwMDA3LCAwLjAwMDA3NCwgMC4wMDAwNzcsIDAuMDAwMDgxLCAwLjAwMDA4MiIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogTk9SNFg4ICoKLSAqIC0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoTk9SNFg4KSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuNjMxOTU3OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDU0NDc0MzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDUzNzc5NjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDU0NDc0MzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDIwMDcsIDAuMDAyMDg5LCAwLjAwMjEzNywgMC4wMDIxNjYsIDAuMDAyMTg2LCAwLjAwMjIxMSwgMC4wMDIyMjMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDU0NDcsIDAuMDA1NDUsIDAuMDA1NDUsIDAuMDA1NDUxLCAwLjAwNTQ1MSwgMC4wMDU0NTEsIDAuMDA1NDUyIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDUyMjczMTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDUxNjU2OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwNTIyNzMxOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTk5MiwgMC4wMDIwNTQsIDAuMDAyMTIyLCAwLjAwMjE2MiwgMC4wMDIxOTEsIDAuMDAyMjIxLCAwLjAwMjIzNyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzQ0NSwgMC4wMDM0NDYsIDAuMDAzNDQ3LCAwLjAwMzQ0NywgMC4wMDM0NDgsIDAuMDAzNDQ4LCAwLjAwMzQ0OCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQykgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDA1NDQ0MzQ7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDA1MzkyNjc7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDA1NDQ0MzQ7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyMDQyLCAwLjAwMjE1LCAwLjAwMjIxNCwgMC4wMDIyNDksIDAuMDAyMjY5LCAwLjAwMjI4OCwgMC4wMDIyOTkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDI1NTYsIDAuMDAyNTU3LCAwLjAwMjU1NywgMC4wMDI1NTcsIDAuMDAyNTU5LCAwLjAwMjU1OCwgMC4wMDI1NTgiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEQpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwNTQ0OTk4OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwNTQ0ODY4OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwNTQ0OTk4OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDYzMSwgMC4wMDA2MzIsIDAuMDAwNjMyLCAwLjAwMDYzMiwgMC4wMDA2MzIsIDAuMDAwNjMyLCAwLjAwMDYzMiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjgxNSwgMC4wMDI4MTUsIDAuMDAyODE1LCAwLjAwMjgxNSwgMC4wMDI4MTMsIDAuMDAyODEzLCAwLjAwMjgxNCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjI4MTI1OwotICAgIGZ1bmN0aW9uIDogIighKCgoQStCKStDKStEKSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTMxNDQ0LCAwLjQwODk0OCwgMC42ODYzMTgsIDAuODg0MTksIDEuMjAwNzgsIDEuNDc4NzgsIDEuODc0MTIiLCBcCi0gICAgICAgICAgIjAuMTQyNTY0LCAwLjQyMDU4NSwgMC42OTc4NDYsIDAuODk2MDg2LCAxLjIxMjc4LCAxLjQ5MDAxLCAxLjg4NjA5IiwgXAotICAgICAgICAgICIwLjE1NTM5OCwgMC40MzM3MDEsIDAuNzExMDIxLCAwLjkwOTIxMywgMS4yMjY0NSwgMS41MDMyLCAxLjkiLCBcCi0gICAgICAgICAgIjAuMTY3MzU0LCAwLjQ0NTcyNCwgMC43MjI5MjEsIDAuOTIxMDI5LCAxLjIzODY4LCAxLjUxNTQsIDEuOTExNjEiLCBcCi0gICAgICAgICAgIjAuMTc4ODIzLCAwLjQ1NzIzLCAwLjczNTAxMywgMC45MzI3MzgsIDEuMjQ5NzcsIDEuNTI2OTYsIDEuOTIzMjEiLCBcCi0gICAgICAgICAgIjAuMTk2MjE3LCAwLjQ3NDU5OCwgMC43NTIxMDksIDAuOTUwNDExLCAxLjI2NzY0LCAxLjU0NDY3LCAxLjk0MTMyIiwgXAotICAgICAgICAgICIwLjIxMDY0MywgMC40ODg5NDQsIDAuNzY2NTI2LCAwLjk2NDY3NywgMS4yODE1LCAxLjU1OTAzLCAxLjk1NDkyIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTY3NDczLCAwLjY5NjY4MiwgMS4yMjU2MSwgMS42MDI1MSwgMi4yMTA0LCAyLjczMzkzLCAzLjQ5Mjc4IiwgXAotICAgICAgICAgICIwLjE2NzYxLCAwLjY5NjM1MiwgMS4yMjUzNiwgMS42MDM1MywgMi4yMDQ2OSwgMi43MzY5OSwgMy40OTMwOSIsIFwKLSAgICAgICAgICAiMC4xNjc2MzQsIDAuNjk2NDE0LCAxLjIyNTY2LCAxLjYwMzM3LCAyLjIwODQ5LCAyLjczNjg2LCAzLjQ4ODciLCBcCi0gICAgICAgICAgIjAuMTY3NjYxLCAwLjY5NjM5NSwgMS4yMjQxLCAxLjYwNTAyLCAyLjIwNTUsIDIuNzM2OSwgMy40ODk0NiIsIFwKLSAgICAgICAgICAiMC4xNjgwMDEsIDAuNjk2NDIsIDEuMjI1ODEsIDEuNjAzMzQsIDIuMjA3OTIsIDIuNzM1NDcsIDMuNDkzMTkiLCBcCi0gICAgICAgICAgIjAuMTY4Njc2LCAwLjY5NjQ0MiwgMS4yMjUzOSwgMS42MDM0NywgMi4yMDg0OCwgMi43MzcxOCwgMy40ODgzOCIsIFwKLSAgICAgICAgICAiMC4xNywgMC42OTcyMTEsIDEuMjI1MzgsIDEuNjAzMDMsIDIuMjA3OTYsIDIuNzM3MDIsIDMuNDkwNzMiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzU0MTYsIDAuMTE1NjM0LCAwLjE5MTY1OSwgMC4yNDU0NDQsIDAuMzMxMTU4LCAwLjQwNTk1OCwgMC41MTI2NjkiLCBcCi0gICAgICAgICAgIjAuMDQ3Mjg2LCAwLjEyNzMxNywgMC4yMDMzNjIsIDAuMjU3MTI4LCAwLjM0Mjc5OSwgMC40MTc2NTgsIDAuNTI0MjUzIiwgXAotICAgICAgICAgICIwLjA2MjQzNiwgMC4xNDE2NDEsIDAuMjE3NjE4LCAwLjI3MTM3NywgMC4zNTcwOTYsIDAuNDMxODc0LCAwLjUzODUwOCIsIFwKLSAgICAgICAgICAiMC4wNzgwMTUsIDAuMTU2Njg5LCAwLjIzMjQ0NywgMC4yODUxMTYsIDAuMzcwNzkxLCAwLjQ0NTYyOCwgMC41NTIyMzIiLCBcCi0gICAgICAgICAgIjAuMDkzNDQyLCAwLjE3MTgsIDAuMjQ2NjU2LCAwLjMwMDk0OCwgMC4zODYzOTUsIDAuNDYxMTEzLCAwLjU2Nzc2NCIsIFwKLSAgICAgICAgICAiMC4xMTU3NDMsIDAuMTk1ODYyLCAwLjI3MTY4LCAwLjMyNTQzNSwgMC40MTA2OCwgMC40ODUzMTgsIDAuNTkxODUiLCBcCi0gICAgICAgICAgIjAuMTMzMzIxLCAwLjIxNzIxMSwgMC4yOTE0MTEsIDAuMzQ1MDY1LCAwLjQzMDYwMywgMC41MDUzMTksIDAuNjEzNCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1OTIxMiwgMC4yMDkyLCAwLjM1NzMyMiwgMC40NjMxNDEsIDAuNjMyNDczLCAwLjc4MDY3OSwgMC45OTIyMiIsIFwKLSAgICAgICAgICAiMC4wNTg1ODMsIDAuMjA4OTYxLCAwLjM1NzMyMiwgMC40NjMwNTgsIDAuNjMyMzksIDAuNzgwNTE1LCAwLjk5MjI1NCIsIFwKLSAgICAgICAgICAiMC4wNjE1MTYsIDAuMjA4NTIyLCAwLjM1NzAwOCwgMC40NjI5ODcsIDAuNjMyMzg4LCAwLjc4MDI5LCAwLjk5MjIxNCIsIFwKLSAgICAgICAgICAiMC4wNjY5MDcsIDAuMjA5MDM3LCAwLjM1NzAxLCAwLjQ2Mjk0OSwgMC42MzIzMzksIDAuNzgwMjAzLCAwLjk5MjEzMSIsIFwKLSAgICAgICAgICAiMC4wNzM0MSwgMC4yMTEzOTMsIDAuMzU3MDM1LCAwLjQ2Mjg3MiwgMC42MzIzMjUsIDAuNzgwNDUxLCAwLjk5MTc5IiwgXAotICAgICAgICAgICIwLjA4NjI2MSwgMC4yMTc0MzgsIDAuMzU5MjgsIDAuNDYzMzA3LCAwLjYzMjIzMiwgMC43ODA0NzksIDAuOTkxOCIsIFwKLSAgICAgICAgICAiMC4wOTgyNCwgMC4yMjQyMjMsIDAuMzYzODMsIDAuNDY1OCwgMC42MzI1MjUsIDAuNzgwNDg1LCAwLjk5MjExNiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEyMzA1NiwgMC40MDA1ODIsIDAuNjc4MDAxLCAwLjg3NTc0NSwgMS4xOTIxMiwgMS40Njk5NCwgMS44NjU3NyIsIFwKLSAgICAgICAgICAiMC4xMzMxMywgMC40MTExMjUsIDAuNjg4MzkzLCAwLjg4NjQzOCwgMS4yMDM2OCwgMS40ODAyOCwgMS44NzcyNyIsIFwKLSAgICAgICAgICAiMC4xNDU0NTUsIDAuNDIzNzM5LCAwLjcwMTA3MywgMC44OTk0OTIsIDEuMjE1OTcsIDEuNDkzNTQsIDEuODg5MDEiLCBcCi0gICAgICAgICAgIjAuMTU3MTU4LCAwLjQzNTUzMSwgMC43MTMxODUsIDAuOTExMDI4LCAxLjIyNzksIDEuNTA1MzksIDEuOTAxMjIiLCBcCi0gICAgICAgICAgIjAuMTY4NTg1LCAwLjQ0Njk4NywgMC43MjQ1NTMsIDAuOTIyOTY0LCAxLjIzOTM5LCAxLjUxNjk0LCAxLjkxMzE0IiwgXAotICAgICAgICAgICIwLjE4NjEyNywgMC40NjQ0NzIsIDAuNzQyMDM4LCAwLjk0MDEwNSwgMS4yNTczMSwgMS41MzQ5OCwgMS45MzA0MyIsIFwKLSAgICAgICAgICAiMC4yMDA4ODYsIDAuNDc5MTk3LCAwLjc1NzAxMiwgMC45NTQ5MDEsIDEuMjcxNzIsIDEuNTQ5NjMsIDEuOTQ0OTYiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNjc3MzgsIDAuNjk2NDAxLCAxLjIyNTY5LCAxLjYwMzEsIDIuMjA3NjYsIDIuNzMyODcsIDMuNDkyODQiLCBcCi0gICAgICAgICAgIjAuMTY3ODM1LCAwLjY5NjQ4NywgMS4yMjU2NSwgMS42MDMyMiwgMi4yMDg0MSwgMi43MzY2MiwgMy40ODg3NyIsIFwKLSAgICAgICAgICAiMC4xNjc2NiwgMC42OTYzNSwgMS4yMjY3NSwgMS42MDM2OSwgMi4yMDc0OCwgMi43MzcyNiwgMy40OTIzMyIsIFwKLSAgICAgICAgICAiMC4xNjc5NDUsIDAuNjk2NDAzLCAxLjIyNTY4LCAxLjYwMzExLCAyLjIwNTk2LCAyLjczNDQ5LCAzLjQ5MjgzIiwgXAotICAgICAgICAgICIwLjE2ODA1LCAwLjY5NjQwNCwgMS4yMjU0OCwgMS42MDM3NywgMi4yMDc1OSwgMi43MzcxNSwgMy40OTMzNyIsIFwKLSAgICAgICAgICAiMC4xNjk4ODUsIDAuNjk3MTk1LCAxLjIyNTM4LCAxLjYwMzA2LCAyLjIwODExLCAyLjczNzY4LCAzLjQ5Mjc1IiwgXAotICAgICAgICAgICIwLjE3MjEzMywgMC42OTYzNTQsIDEuMjI1NjQsIDEuNjAzMTYsIDIuMjA3NTcsIDIuNzM3NDYsIDMuNDkyODgiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzQzNzIsIDAuMTExOTM5LCAwLjE4NzI0NCwgMC4yNDA3MDQsIDAuMzI2MTg2LCAwLjQwMDg1MiwgMC41MDczNzUiLCBcCi0gICAgICAgICAgIjAuMDQ2MDA2LCAwLjEyMzU3MSwgMC4xOTg4NDgsIDAuMjUyMzU2LCAwLjMzNzc4NiwgMC40MTI0ODQsIDAuNTE5MDE3IiwgXAotICAgICAgICAgICIwLjA2MTExOCwgMC4xMzgxNjIsIDAuMjEzMzc3LCAwLjI2Njg4LCAwLjM1MjMxNSwgMC40MjY5NywgMC41MzM1MjUiLCBcCi0gICAgICAgICAgIjAuMDc2MzczLCAwLjE1MzE4NSwgMC4yMjgyMzIsIDAuMjgxNTY2LCAwLjM2NTk2NCwgMC40NDA2MzQsIDAuNTQ3MTc5IiwgXAotICAgICAgICAgICIwLjA5MDk1NywgMC4xNjgyODcsIDAuMjQyNDE5LCAwLjI5NjQ2LCAwLjM4MTY1MywgMC40NTYyNDksIDAuNTYyODAyIiwgXAotICAgICAgICAgICIwLjExMjMyLCAwLjE5MjE1LCAwLjI2Njc1MywgMC4zMjAxMTgsIDAuNDA1MzE0LCAwLjQ3OTgzNCwgMC41ODYyNjYiLCBcCi0gICAgICAgICAgIjAuMTI5MjI4LCAwLjIxMzMwNCwgMC4yODcxNTYsIDAuMzQwNTY1LCAwLjQyNTg5NCwgMC41MDA0NjgsIDAuNjA2OTA4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU0MTA1LCAwLjIwMjU5LCAwLjM1MDg2NSwgMC40NTY4NDEsIDAuNjI2MTA5LCAwLjc3NDM4MSwgMC45ODY0NDgiLCBcCi0gICAgICAgICAgIjAuMDUzNjE3LCAwLjIwMjQxMywgMC4zNTA3NDgsIDAuNDU2NzA0LCAwLjYyNTk0LCAwLjc3NDExNywgMC45ODYzNDQiLCBcCi0gICAgICAgICAgIjAuMDU2ODQzLCAwLjIwMjM5MywgMC4zNTA3MzcsIDAuNDU2NDk4LCAwLjYyNjE5NiwgMC43NzQxMzcsIDAuOTg1ODUxIiwgXAotICAgICAgICAgICIwLjA2MjUwNSwgMC4yMDMwMTgsIDAuMzUwNzE2LCAwLjQ1NjUzNiwgMC42MjYwMzYsIDAuNzc0MDc1LCAwLjk4NjEwNiIsIFwKLSAgICAgICAgICAiMC4wNjk0NzcsIDAuMjA1NTMzLCAwLjM1MDg5OCwgMC40NTY2NzQsIDAuNjI2MTY5LCAwLjc3NDMxOSwgMC45ODU4MTQiLCBcCi0gICAgICAgICAgIjAuMDgzMzYzLCAwLjIxMjAwNywgMC4zNTM1MjgsIDAuNDU3MzYzLCAwLjYyNjE5NCwgMC43NzQzNjMsIDAuOTg1Nzc1IiwgXAotICAgICAgICAgICIwLjA5NTA4NSwgMC4yMTkzMjIsIDAuMzU4MDYsIDAuNDU5OTkzLCAwLjYyNjUxNiwgMC43NzQzNjgsIDAuOTg2Mzk1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTA1MDgsIDAuMzgyNTgyLCAwLjY1OTk5NywgMC44NTc3NDQsIDEuMTc0NjEsIDEuNDUxOSwgMS44NDczOSIsIFwKLSAgICAgICAgICAiMC4xMTQ0NTQsIDAuMzkyNDczLCAwLjY2OTkyOSwgMC44Njc4MDUsIDEuMTg0NjMsIDEuNDYyNDgsIDEuODU3ODIiLCBcCi0gICAgICAgICAgIjAuMTI2MzcsIDAuNDA0NjUzLCAwLjY4MjI5LCAwLjg4MDQxMiwgMS4xOTcxLCAxLjQ3NDUzLCAxLjg3MDY0IiwgXAotICAgICAgICAgICIwLjEzNzkxNSwgMC40MTYzMjcsIDAuNjkzODk0LCAwLjg5MTg5NCwgMS4yMDg3NywgMS40ODU5NCwgMS44ODIyNyIsIFwKLSAgICAgICAgICAiMC4xNDkzMTQsIDAuNDI3NzEzLCAwLjcwNTQwOSwgMC45MDMyOTksIDEuMjIwNDEsIDEuNDk3NTEsIDEuODkzNjIiLCBcCi0gICAgICAgICAgIjAuMTY3MzkzLCAwLjQ0NTg1MywgMC43MjM0ODYsIDAuOTIxNDYyLCAxLjIzODg5LCAxLjUxNTUyLCAxLjkxMjUyIiwgXAotICAgICAgICAgICIwLjE4MzEwNCwgMC40NjExOTUsIDAuNzM5MzAyLCAwLjkzNzU0NCwgMS4yNTQ2MywgMS41MzE1NCwgMS45Mjc0NyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE2NzgzNSwgMC42OTYzOTYsIDEuMjI1NjgsIDEuNjAzMTEsIDIuMjA3ODksIDIuNzM0NTUsIDMuNDkyMDYiLCBcCi0gICAgICAgICAgIjAuMTY3NDQ1LCAwLjY5NjQzMywgMS4yMjU2MSwgMS42MDI1MSwgMi4yMDc4NiwgMi43MzM4MywgMy40OTI4MSIsIFwKLSAgICAgICAgICAiMC4xNjczNzksIDAuNjk2MzY3LCAxLjIyNTc0LCAxLjYwMzY5LCAyLjIwODA1LCAyLjczNzM1LCAzLjQ5MzU5IiwgXAotICAgICAgICAgICIwLjE2NzcxMywgMC42OTYzNDgsIDEuMjI1NTcsIDEuNjAyNTEsIDIuMjA3ODksIDIuNzM2ODMsIDMuNDkzMjkiLCBcCi0gICAgICAgICAgIjAuMTY4NzI4LCAwLjY5NjM5NSwgMS4yMjU2NywgMS42MDMwNiwgMi4yMDU5OSwgMi43MzY5MiwgMy40ODk2OSIsIFwKLSAgICAgICAgICAiMC4xNzIxOTIsIDAuNjk2NDExLCAxLjIyNTQ5LCAxLjYwMzE2LCAyLjIwODQxLCAyLjczNjYsIDMuNDk3MjEiLCBcCi0gICAgICAgICAgIjAuMTc2OTAzLCAwLjY5NzIxNSwgMS4yMjQ2MywgMS42MDM0LCAyLjIwODE1LCAyLjczNjU1LCAzLjQ5MjI5Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDMxMzIyLCAwLjEwNjk1NSwgMC4xODE3NTUsIDAuMjM1MTA1LCAwLjMyMDQ1MiwgMC4zOTUwMDYsIDAuNTAxNTM3IiwgXAotICAgICAgICAgICIwLjA0MzIzOCwgMC4xMTgzODcsIDAuMTkzNTY4LCAwLjI0NjkyLCAwLjMzMjI3MSwgMC40MDY4NjcsIDAuNTEzMjk5IiwgXAotICAgICAgICAgICIwLjA1ODA0MywgMC4xMzM1NzIsIDAuMjA3NDgyLCAwLjI2MDgxNywgMC4zNDYxMzYsIDAuNDIwODA1LCAwLjUyNzMwNCIsIFwKLSAgICAgICAgICAiMC4wNzMxMSwgMC4xNDgzOTUsIDAuMjIzMDQ5LCAwLjI3NjI4OCwgMC4zNjE1MzMsIDAuNDM2MDk0LCAwLjU0MjY1NCIsIFwKLSAgICAgICAgICAiMC4wODcwNzEsIDAuMTYzODIzLCAwLjIzNzk2NywgMC4yOTE5OTYsIDAuMzc3MzIsIDAuNDUxNzM0LCAwLjU1ODE2NiIsIFwKLSAgICAgICAgICAiMC4xMDY2ODQsIDAuMTg3Mzk3LCAwLjI2MjExNiwgMC4zMTQ2MzcsIDAuMzk5NzAxLCAwLjQ3NTUxNiwgMC41ODIxOCIsIFwKLSAgICAgICAgICAiMC4xMjIyOTUsIDAuMjA5MDI3LCAwLjI4MzYwMiwgMC4zMzY4OTcsIDAuNDIxMDQ1LCAwLjQ5Njc5NSwgMC42MDM0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQ3NzI3LCAwLjE5NjA3MiwgMC4zNDQzNTUsIDAuNDUwNDU1LCAwLjYxOTgyMSwgMC43NjgxOTEsIDAuOTc5OTU3IiwgXAotICAgICAgICAgICIwLjA0NzgzMywgMC4xOTYwMTMsIDAuMzQ0MzY2LCAwLjQ1MDI1MSwgMC42MTk5NDIsIDAuNzY3OTgyLCAwLjk3OTY5NyIsIFwKLSAgICAgICAgICAiMC4wNTE3MTgsIDAuMTk2MTM3LCAwLjM0NDQ1LCAwLjQ1MDMsIDAuNjE5ODcsIDAuNzY4MTg0LCAwLjk3OTkwMyIsIFwKLSAgICAgICAgICAiMC4wNTgwMjMsIDAuMTk3MDk4LCAwLjM0NDQ4NCwgMC40NTAzOTYsIDAuNjIwMDYxLCAwLjc2ODM5NCwgMC45Nzk2NzkiLCBcCi0gICAgICAgICAgIjAuMDY1NzAzLCAwLjE5OTY3NiwgMC4zNDQ3MzcsIDAuNDUwMzI0LCAwLjYxOTg3MywgMC43NjgyOSwgMC45Nzk5NjYiLCBcCi0gICAgICAgICAgIjAuMDgwMzQ4LCAwLjIwNjc0NiwgMC4zNDc1MjIsIDAuNDUxMzg1LCAwLjYxOTY3OCwgMC43NjgxNTQsIDAuOTc5ODk2IiwgXAotICAgICAgICAgICIwLjA5MjY4OCwgMC4yMTQwODgsIDAuMzUxODE5LCAwLjQ1MzU2NiwgMC42MjAyNDEsIDAuNzY4MTIxLCAwLjk4MDI2NCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJEIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3NDY1NywgMC4zNTIzMDEsIDAuNjI5NTUsIDAuODI3OTA3LCAxLjE0NDM3LCAxLjQyMTU4LCAxLjgxNzU5IiwgXAotICAgICAgICAgICIwLjA4MzI4MSwgMC4zNjE3NCwgMC42Mzg5NzEsIDAuODM2OTg4LCAxLjE1Mzc5LCAxLjQzMTA5LCAxLjgyNjg5IiwgXAotICAgICAgICAgICIwLjA5NDI4NSwgMC4zNzMxMTQsIDAuNjUwMzM5LCAwLjg0ODMyMywgMS4xNjU0NywgMS40NDMzMywgMS44Mzg1NyIsIFwKLSAgICAgICAgICAiMC4xMDYwNzgsIDAuMzg0NTg3LCAwLjY2MjMzOCwgMC44NjAzNTEsIDEuMTc3MTIsIDEuNDU0ODcsIDEuODUwMjIiLCBcCi0gICAgICAgICAgIjAuMTE3ODA1LCAwLjM5NTc5LCAwLjY3MzQ2NywgMC44NzE3NDYsIDEuMTg4MjcsIDEuNDY2NDgsIDEuODYyNTkiLCBcCi0gICAgICAgICAgIjAuMTM4MTM0LCAwLjQxNTIwMywgMC42OTMxMywgMC44OTE1MDMsIDEuMjA4MTksIDEuNDg1MzcsIDEuODgxNDciLCBcCi0gICAgICAgICAgIjAuMTU0NzM4LCAwLjQzMDY4NCwgMC43MDg2NDgsIDAuOTA2NjE0LCAxLjIyMzU2LCAxLjUwMDg2LCAxLjg5NjkyIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTYzOTQyLCAwLjY5NjMxLCAxLjIyNTM5LCAxLjYwMzc1LCAyLjIwNjc4LCAyLjczNjkyLCAzLjQ4OTk3IiwgXAotICAgICAgICAgICIwLjE2MTk2MiwgMC42OTYzODQsIDEuMjI2NywgMS42MDIwNSwgMi4yMTAzOSwgMi43MzY2OCwgMy40OTE2IiwgXAotICAgICAgICAgICIwLjE2MjA0NSwgMC42OTU1NzIsIDEuMjI0MTIsIDEuNjAxNDYsIDIuMjA3NzEsIDIuNzM3NTYsIDMuNDkxNTgiLCBcCi0gICAgICAgICAgIjAuMTY1MjIsIDAuNjk2Mjk1LCAxLjIyNTY0LCAxLjYwMzMyLCAyLjIwNzcyLCAyLjczNzQxLCAzLjQ5MjQyIiwgXAotICAgICAgICAgICIwLjE3MDI1NywgMC42OTY3MTYsIDEuMjI2NzMsIDEuNjAzMjksIDIuMjA5NTQsIDIuNzM3NTgsIDMuNDkzOCIsIFwKLSAgICAgICAgICAiMC4xODAyMDQsIDAuNjk1NDA3LCAxLjIyNTUyLCAxLjYwMzUyLCAyLjIwNzcxLCAyLjczNzksIDMuNDkwNDQiLCBcCi0gICAgICAgICAgIjAuMTkwNzc1LCAwLjY5NTI5MywgMS4yMjU1MiwgMS42MDUwMywgMi4yMDczMSwgMi43MzY2NiwgMy40OTIzNiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyNTk1OSwgMC4xMDA2NzYsIDAuMTc1MjY0LCAwLjIyODU0MywgMC4zMTM3ODYsIDAuMzg4MzU5LCAwLjQ5NDk1MiIsIFwKLSAgICAgICAgICAiMC4wMzc4ODMsIDAuMTEyODUsIDAuMTg3NDgxLCAwLjI0MDc2NSwgMC4zMjYwMTcsIDAuNDAwNzY1LCAwLjUwNzE5OSIsIFwKLSAgICAgICAgICAiMC4wNTI3OTIsIDAuMTI2ODksIDAuMjAxOTMyLCAwLjI1NTI1MSwgMC4zNDA1MDIsIDAuNDE1MTg5LCAwLjUyMTgyMiIsIFwKLSAgICAgICAgICAiMC4wNjcwNTYsIDAuMTQyNTkzLCAwLjIxNjg4MiwgMC4yNjk5NiwgMC4zNTQxMjYsIDAuNDI4Njc2LCAwLjUzNTMzMSIsIFwKLSAgICAgICAgICAiMC4wNzk2OTIsIDAuMTU3NDcxLCAwLjIzMTc0NiwgMC4yODQ4OTUsIDAuMzcwMDAzLCAwLjQ0NDQ5OCwgMC41NTExOTUiLCBcCi0gICAgICAgICAgIjAuMDk3MzkxLCAwLjE4MDUxNSwgMC4yNTU4ODksIDAuMzA4NTExLCAwLjM5MzU1OSwgMC40NjgwMjEsIDAuNTc0NDciLCBcCi0gICAgICAgICAgIjAuMTExNDU5LCAwLjIwMjUzOSwgMC4yNzU4MDEsIDAuMzI5MDEsIDAuNDE0MTI3LCAwLjQ4ODU3LCAwLjU5NTE5NCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0MTA4LCAwLjE4OTY5NCwgMC4zMzkwOTYsIDAuNDQ1NTM1LCAwLjYxNTgzNSwgMC43NjQ4MywgMC45NzQ4MDMiLCBcCi0gICAgICAgICAgIjAuMDQxNzUxLCAwLjE4OTU0NiwgMC4zMzg2NiwgMC40NDQ5MTYsIDAuNjE0NCwgMC43NjI1NDgsIDAuOTc1NDE1IiwgXAotICAgICAgICAgICIwLjA0Njg3MywgMC4xODk1MTMsIDAuMzM5MTEyLCAwLjQ0Mzk3NiwgMC42MTU4NTgsIDAuNzYxOTcxLCAwLjk3NTQ5OCIsIFwKLSAgICAgICAgICAiMC4wNTQzNjUsIDAuMTkwODk4LCAwLjMzODIzNywgMC40NDU1MzksIDAuNjEzNzI4LCAwLjc2NDg2MSwgMC45NzQ5OCIsIFwKLSAgICAgICAgICAiMC4wNjM1ODgsIDAuMTk0MTEyLCAwLjMzODczNSwgMC40NDM5MzEsIDAuNjE0Njc3LCAwLjc2MTg5OSwgMC45NzQ1ODYiLCBcCi0gICAgICAgICAgIjAuMDc5MTQ3LCAwLjIwMjU1LCAwLjM0MjU5MywgMC40NDU4NSwgMC42MTU4NjIsIDAuNzYzMjk0LCAwLjk3NDUxMiIsIFwKLSAgICAgICAgICAiMC4wOTE0OTksIDAuMjA5ODM0LCAwLjM0Nzk1OCwgMC40NDk3NiwgMC42MTU2NSwgMC43NjQzNjEsIDAuOTc1Njc5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjA5ODQsIDAuMDIxMDExLCAwLjAyMTAxNCwgMC4wMjEwMTUsIDAuMDIxMDE2LCAwLjAyMTAxNiwgMC4wMjEwMTYiLCBcCi0gICAgICAgICAgIjAuMDIwODc3LCAwLjAyMDk4MSwgMC4wMjA5OTcsIDAuMDIxMDAyLCAwLjAyMDk5OSwgMC4wMjEwMTEsIDAuMDIxMDA5IiwgXAotICAgICAgICAgICIwLjAyMDgwMywgMC4wMjA5NDUsIDAuMDIwOTc1LCAwLjAyMDk4NiwgMC4wMjA5OTUsIDAuMDIxMDAxLCAwLjAyMTAwMyIsIFwKLSAgICAgICAgICAiMC4wMjA3NTcsIDAuMDIwOTE0LCAwLjAyMDk1NCwgMC4wMjA5NjksIDAuMDIwOTgxLCAwLjAyMDk4OSwgMC4wMjA5OTMiLCBcCi0gICAgICAgICAgIjAuMDIwNzMzLCAwLjAyMDg5MiwgMC4wMjA5NDEsIDAuMDIwOTU2LCAwLjAyMDk3NSwgMC4wMjA5ODcsIDAuMDIwOTkyIiwgXAotICAgICAgICAgICIwLjAyMDY5NSwgMC4wMjA4NTQsIDAuMDIwOTEsIDAuMDIwOTMxLCAwLjAyMDk1MywgMC4wMjA5NjQsIDAuMDIwOTgxIiwgXAotICAgICAgICAgICIwLjAyMDY4NCwgMC4wMjA4MjgsIDAuMDIwODksIDAuMDIwOTEsIDAuMDIwOTM4LCAwLjAyMDk1MiwgMC4wMjA5NjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwODMzNywgMC4wMDgzMzIsIDAuMDA4MzMsIDAuMDA4MzMzLCAwLjAwODMyNywgMC4wMDgzMjksIDAuMDA4MzI1IiwgXAotICAgICAgICAgICIwLjAwODE2LCAwLjAwODE2NywgMC4wMDgxNjUsIDAuMDA4MTY3LCAwLjAwODE2MywgMC4wMDgxNjEsIDAuMDA4MTYzIiwgXAotICAgICAgICAgICIwLjAwODA2LCAwLjAwODA4NSwgMC4wMDgwODMsIDAuMDA4MDkxLCAwLjAwODA5MSwgMC4wMDgwODYsIDAuMDA4MDg5IiwgXAotICAgICAgICAgICIwLjAwODAwOCwgMC4wMDgwNDgsIDAuMDA4MDUzLCAwLjAwODA0NCwgMC4wMDgwNTIsIDAuMDA4MDUyLCAwLjAwODA1NCIsIFwKLSAgICAgICAgICAiMC4wMDc5NjcsIDAuMDA4MDIyLCAwLjAwODAwNSwgMC4wMDgwMzIsIDAuMDA4MDM2LCAwLjAwODAzOSwgMC4wMDgwMzkiLCBcCi0gICAgICAgICAgIjAuMDA3OTM2LCAwLjAwNzk5NiwgMC4wMDgwMTcsIDAuMDA4MDIsIDAuMDA4MDIsIDAuMDA4MDI0LCAwLjAwODAyOCIsIFwKLSAgICAgICAgICAiMC4wMDc4OTgsIDAuMDA3OTkxLCAwLjAwNzk4NCwgMC4wMDc5OTUsIDAuMDA4MDAzLCAwLjAwODAwOSwgMC4wMDgwMTgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxNzkxNiwgMC4wMTc5NDMsIDAuMDE3OTQ2LCAwLjAxNzk0NywgMC4wMTc5NDcsIDAuMDE3OTQ3LCAwLjAxNzk0OCIsIFwKLSAgICAgICAgICAiMC4wMTc4MSwgMC4wMTc5MSwgMC4wMTc5MjgsIDAuMDE3OTM0LCAwLjAxNzkzOCwgMC4wMTc5MzYsIDAuMDE3OTQyIiwgXAotICAgICAgICAgICIwLjAxNzczMiwgMC4wMTc4NzUsIDAuMDE3OTA0LCAwLjAxNzkxNywgMC4wMTc5MjUsIDAuMDE3OTMsIDAuMDE3OTMyIiwgXAotICAgICAgICAgICIwLjAxNzY4OCwgMC4wMTc4NDYsIDAuMDE3ODgzLCAwLjAxNzg5OSwgMC4wMTc5MTUsIDAuMDE3OTIyLCAwLjAxNzkyNiIsIFwKLSAgICAgICAgICAiMC4wMTc2NiwgMC4wMTc4MTksIDAuMDE3ODY4LCAwLjAxNzg4NSwgMC4wMTc5MDIsIDAuMDE3OTExLCAwLjAxNzkxOSIsIFwKLSAgICAgICAgICAiMC4wMTc2MywgMC4wMTc3ODMsIDAuMDE3ODM5LCAwLjAxNzg2MSwgMC4wMTc4ODMsIDAuMDE3ODk3LCAwLjAxNzkwNiIsIFwKLSAgICAgICAgICAiMC4wMTc2MTMsIDAuMDE3NzYsIDAuMDE3ODE4LCAwLjAxNzg0NSwgMC4wMTc4NzIsIDAuMDE3ODgsIDAuMDE3ODk4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDU5MzIsIDAuMDA1OTMyLCAwLjAwNTkzNCwgMC4wMDU5MzEsIDAuMDA1OTMsIDAuMDA1OTI4LCAwLjAwNTkyOSIsIFwKLSAgICAgICAgICAiMC4wMDU4MzIsIDAuMDA1ODYsIDAuMDA1ODY1LCAwLjAwNTg2NiwgMC4wMDU4NjIsIDAuMDA1ODY2LCAwLjAwNTg2NiIsIFwKLSAgICAgICAgICAiMC4wMDU3MzIsIDAuMDA1ODAzLCAwLjAwNTgxOCwgMC4wMDU4MjMsIDAuMDA1ODIzLCAwLjAwNTgyNCwgMC4wMDU4MjUiLCBcCi0gICAgICAgICAgIjAuMDA1NjU5LCAwLjAwNTc2OCwgMC4wMDU3ODUsIDAuMDA1NzkyLCAwLjAwNTc5OCwgMC4wMDU4MDIsIDAuMDA1ODAzIiwgXAotICAgICAgICAgICIwLjAwNTYwNCwgMC4wMDU3MzYsIDAuMDA1NzQ0LCAwLjAwNTc3NywgMC4wMDU3ODYsIDAuMDA1NzkxLCAwLjAwNTc5MSIsIFwKLSAgICAgICAgICAiMC4wMDU1NDEsIDAuMDA1NzA0LCAwLjAwNTc0MywgMC4wMDU3NTYsIDAuMDA1NzY3LCAwLjAwNTc3MywgMC4wMDU3ODEiLCBcCi0gICAgICAgICAgIjAuMDA1NDk3LCAwLjAwNTY3LCAwLjAwNTcxLCAwLjAwNTczMiwgMC4wMDU3NDYsIDAuMDA1NzU5LCAwLjAwNTc2NSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE1MDg5LCAwLjAxNTExNiwgMC4wMTUxMiwgMC4wMTUxMjEsIDAuMDE1MTIxLCAwLjAxNTEyMiwgMC4wMTUxMjIiLCBcCi0gICAgICAgICAgIjAuMDE0OTc5LCAwLjAxNTA4MywgMC4wMTUxLCAwLjAxNTEwNSwgMC4wMTUxMSwgMC4wMTUxMTIsIDAuMDE1MTEyIiwgXAotICAgICAgICAgICIwLjAxNDg5OSwgMC4wMTUwNDEsIDAuMDE1MDcyLCAwLjAxNTA4MiwgMC4wMTUwOTEsIDAuMDE1MDk1LCAwLjAxNTEwMSIsIFwKLSAgICAgICAgICAiMC4wMTQ4NTIsIDAuMDE1MDE1LCAwLjAxNTA1NCwgMC4wMTUwNzEsIDAuMDE1MDgxLCAwLjAxNTA5MSwgMC4wMTUwOTUiLCBcCi0gICAgICAgICAgIjAuMDE0ODMzLCAwLjAxNDk5LCAwLjAxNTAzOCwgMC4wMTUwNTMsIDAuMDE1MDczLCAwLjAxNTA4NCwgMC4wMTUwODkiLCBcCi0gICAgICAgICAgIjAuMDE0ODAxLCAwLjAxNDk1NiwgMC4wMTUwMTQsIDAuMDE1MDMzLCAwLjAxNTA1NiwgMC4wMTUwNjcsIDAuMDE1MDc0IiwgXAotICAgICAgICAgICIwLjAxNDc4NSwgMC4wMTQ5MDksIDAuMDE0OTkxLCAwLjAxNTAxNiwgMC4wMTUwMzgsIDAuMDE1MDU0LCAwLjAxNTA2OCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzMzIsIDAuMDAzMzI4LCAwLjAwMzMyOSwgMC4wMDMzMjgsIDAuMDAzMzI4LCAwLjAwMzMyOSwgMC4wMDMzMjgiLCBcCi0gICAgICAgICAgIjAuMDAzMjgyLCAwLjAwMzM2NCwgMC4wMDMzNzcsIDAuMDAzMzc5LCAwLjAwMzM4MywgMC4wMDMzODUsIDAuMDAzMzg4IiwgXAotICAgICAgICAgICIwLjAwMzE4NSwgMC4wMDMzNTMsIDAuMDAzMzg0LCAwLjAwMzM5NSwgMC4wMDM0MDUsIDAuMDAzNDEsIDAuMDAzNDE0IiwgXAotICAgICAgICAgICIwLjAwMzEwOSwgMC4wMDMzMjgsIDAuMDAzMzcyLCAwLjAwMzM4OCwgMC4wMDM0MDIsIDAuMDAzNDEsIDAuMDAzNDE3IiwgXAotICAgICAgICAgICIwLjAwMzA0OSwgMC4wMDMzMDEsIDAuMDAzMzQ3LCAwLjAwMzM3NiwgMC4wMDMzOTMsIDAuMDAzNDAyLCAwLjAwMzQxMiIsIFwKLSAgICAgICAgICAiMC4wMDI5OTIsIDAuMDAzMjY2LCAwLjAwMzMzNywgMC4wMDMzNjIsIDAuMDAzMzg1LCAwLjAwMzM5MSwgMC4wMDM0MDUiLCBcCi0gICAgICAgICAgIjAuMDAyOTQsIDAuMDAzMjI1LCAwLjAwMzMwOCwgMC4wMDMzMzgsIDAuMDAzMzU1LCAwLjAwMzM4MywgMC4wMDMzOTYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJEIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMTk2OCwgMC4wMTIwMTMsIDAuMDEyMDE5LCAwLjAxMjAyMSwgMC4wMTIwMjEsIDAuMDEyMDIzLCAwLjAxMjAyIiwgXAotICAgICAgICAgICIwLjAxMTc5NiwgMC4wMTE5NiwgMC4wMTE5ODcsIDAuMDExOTk2LCAwLjAxMjAwNCwgMC4wMTIwMDgsIDAuMDEyMDExIiwgXAotICAgICAgICAgICIwLjAxMTY3NCwgMC4wMTE5MDEsIDAuMDExOTUsIDAuMDExOTY2LCAwLjAxMTk4MiwgMC4wMTE5OTIsIDAuMDExOTk2IiwgXAotICAgICAgICAgICIwLjAxMTYxNiwgMC4wMTE4NTMsIDAuMDExOTE3LCAwLjAxMTk0LCAwLjAxMTk2MiwgMC4wMTE5NzMsIDAuMDExOTgyIiwgXAotICAgICAgICAgICIwLjAxMTU4NywgMC4wMTE4MTMsIDAuMDExODgzLCAwLjAxMTkxNiwgMC4wMTE5NDIsIDAuMDExOTU1LCAwLjAxMTk2OSIsIFwKLSAgICAgICAgICAiMC4wMTE1NywgMC4wMTE3NywgMC4wMTE4NTQsIDAuMDExODg2LCAwLjAxMTkxNSwgMC4wMTE5MzIsIDAuMDExOTU1IiwgXAotICAgICAgICAgICIwLjAxMTU2LCAwLjAxMTczMywgMC4wMTE4MjEsIDAuMDExODU2LCAwLjAxMTg5NSwgMC4wMTE5MTUsIDAuMDExOTM2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDA1MTksIDAuMDAwNTg4LCAwLjAwMDU5NywgMC4wMDA2LCAwLjAwMDYwMiwgMC4wMDA2MDQsIDAuMDAwNjA1IiwgXAotICAgICAgICAgICIwLjAwMDQ1MywgMC4wMDA2OTEsIDAuMDAwNzI3LCAwLjAwMDczOSwgMC4wMDA3NDksIDAuMDAwNzU0LCAwLjAwMDc1OSIsIFwKLSAgICAgICAgICAiMC4wMDAzMzcsIDAuMDAwNjg2LCAwLjAwMDc1NywgMC4wMDA3NzgsIDAuMDAwNzk2LCAwLjAwMDgwNiwgMC4wMDA4MTUiLCBcCi0gICAgICAgICAgIjAuMDAwMjQ5LCAwLjAwMDY2MywgMC4wMDA3NDgsIDAuMDAwNzc3LCAwLjAwMDgwOCwgMC4wMDA4MjIsIDAuMDAwODM0IiwgXAotICAgICAgICAgICIwLjAwMDE5MSwgMC4wMDA2MzEsIDAuMDAwNzMyLCAwLjAwMDc2NywgMC4wMDA3OTksIDAuMDAwODE3LCAwLjAwMDgzMyIsIFwKLSAgICAgICAgICAiMC4wMDAxNDYsIDAuMDAwNTgzLCAwLjAwMDcwNiwgMC4wMDA3NDgsIDAuMDAwNzg3LCAwLjAwMDgwOCwgMC4wMDA4MjgiLCBcCi0gICAgICAgICAgIjAuMDAwMDc3LCAwLjAwMDUyOSwgMC4wMDA2NjQsIDAuMDAwNzE2LCAwLjAwMDc2NSwgMC4wMDA3OTQsIDAuMDAwODE2Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IE9BSTIxMVgxICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChPQUkyMTFYMSkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjExMzUxOTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQTApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDg1MjA4NzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA4NDkwMTk7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwODUyMDg3OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDMwNiwgMC4wMDAzMDYsIDAuMDAwMzA2LCAwLjAwMDMwNSwgMC4wMDAzMDYsIDAuMDAwMzA2LCAwLjAwMDMwNiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDMwNywgMC4wMDAzMDcsIDAuMDAwMzA3LCAwLjAwMDMwNywgMC4wMDAzMDcsIDAuMDAwMzA3LCAwLjAwMDMwNyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQTEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDg4ODQ1MTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA4ODg0NTE7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwODg1MTMzOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDMwNiwgMC4wMDAzMDYsIDAuMDAwMzA2LCAwLjAwMDMwNiwgMC4wMDAzMDYsIDAuMDAwMzA2LCAwLjAwMDMwNiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDMwNiwgMC4wMDAzMDcsIDAuMDAwMzA3LCAwLjAwMDMwNywgMC4wMDAzMDcsIDAuMDAwMzA3LCAwLjAwMDMwNyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQjApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDg1Njk0MTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA4NTY5NDE7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwODU0Njc2OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDMwNiwgMC4wMDAzMDYsIDAuMDAwMzA2LCAwLjAwMDMwNiwgMC4wMDAzMDYsIDAuMDAwMzA2LCAwLjAwMDMwNiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDMwOSwgMC4wMDAzMDgsIDAuMDAwMzA4LCAwLjAwMDMwOCwgMC4wMDAzMDgsIDAuMDAwMzA4LCAwLjAwMDMwOCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQzApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDg1MDY1NjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA4NDk4MDU7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwODUwNjU2OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDEzNywgMC4wMDAxMzYsIDAuMDAwMTM2LCAwLjAwMDEzNiwgMC4wMDAxMzYsIDAuMDAwMTM2LCAwLjAwMDEzNiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDM0NywgMC4wMDAzNDgsIDAuMDAwMzQ4LCAwLjAwMDM0OCwgMC4wMDAzNDgsIDAuMDAwMzQ4LCAwLjAwMDM0OCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjA0NTQ1NTY7Ci0gICAgZnVuY3Rpb24gOiAiKCEoKChBMCtBMSkgQjApIEMwKSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xOTQ4ODQsIDAuMjgzOTQ2LCAwLjc4NjU2MywgMS4yMjkzNSwgMS44MTg3MiwgMi45OTgzNCwgMy43MzUwMiIsIFwKLSAgICAgICAgICAiMC4yMDYyNTksIDAuMjk1MzU0LCAwLjc5Nzk3OSwgMS4yNDA3NSwgMS44MzAxMiwgMy4wMDk3NCwgMy43NDY0MiIsIFwKLSAgICAgICAgICAiMC4yMTkzMjIsIDAuMzA4NDAxLCAwLjgxMDkyNCwgMS4yNTM1LCAxLjg0MzgyLCAzLjAyMjg3LCAzLjc1OTUyIiwgXAotICAgICAgICAgICIwLjIzMTg2NSwgMC4zMjA5OTUsIDAuODIzNTI5LCAxLjI2NjA0LCAxLjg1NjMsIDMuMDM2MDgsIDMuNzcyMDYiLCBcCi0gICAgICAgICAgIjAuMjQ0MzE0LCAwLjMzMzQyNywgMC44MzYwMiwgMS4yNzg0NywgMS44NjgzNCwgMy4wNDgzMiwgMy43ODQ1OCIsIFwKLSAgICAgICAgICAiMC4yNjQxMDIsIDAuMzUzMzQ0LCAwLjg1NTk3OCwgMS4yOTg2NCwgMS44ODg4NSwgMy4wNjg1NCwgMy44MDQzOSIsIFwKLSAgICAgICAgICAiMC4yODE0MSwgMC4zNzA2MzksIDAuODczNDMsIDEuMzE2LCAxLjkwNTg3LCAzLjA4NTQsIDMuODIyMTEiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzQ5NTY4LCAwLjUyMjY3OCwgMS41MDIyNSwgMi4zNjYyMSwgMy41MTc2MiwgNS44MjQ2NywgNy4yNjM0NyIsIFwKLSAgICAgICAgICAiMC4zNDk0NDIsIDAuNTIyOTM1LCAxLjUwMjE0LCAyLjM2NjIzLCAzLjUxNzYzLCA1LjgyNDYsIDcuMjYzNDUiLCBcCi0gICAgICAgICAgIjAuMzQ5NDYyLCAwLjUyMjYzNCwgMS41MDM4MiwgMi4zNjY0NSwgMy41MTgxNywgNS44MjI5OSwgNy4yNjIzNSIsIFwKLSAgICAgICAgICAiMC4zNDk2NTgsIDAuNTIyNDkzLCAxLjUwMzc1LCAyLjM2NjM5LCAzLjUxODE4LCA1LjgyMjA4LCA3LjI2MjgzIiwgXAotICAgICAgICAgICIwLjM0OTc4MiwgMC41MjI2ODQsIDEuNTAyMzIsIDIuMzY4MzEsIDMuNTE3NjMsIDUuODIyMzEsIDcuMjY0NTEiLCBcCi0gICAgICAgICAgIjAuMzUxNTI1LCAwLjUyMzEzMiwgMS41MDM2MiwgMi4zNjc1NCwgMy41MTgwOCwgNS44MjIxOSwgNy4yNjAzNSIsIFwKLSAgICAgICAgICAiMC4zNTQzMTQsIDAuNTI0NDM2LCAxLjUwMzU2LCAyLjM2NjM0LCAzLjUxODMxLCA1LjgyNDY1LCA3LjI2MzM3Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMyODUwNSwgMC40NzcxOTksIDEuMzE4NTcsIDIuMDU5OTYsIDMuMDQ4MTEsIDUuMDI1MjQsIDYuMjYxODUiLCBcCi0gICAgICAgICAgIjAuMzM5OTM0LCAwLjQ4ODYyLCAxLjMyOTk3LCAyLjA3MjI3LCAzLjA2MTExLCA1LjAzNzg3LCA2LjI3MzQ5IiwgXAotICAgICAgICAgICIwLjM1Mzk4NSwgMC41MDI1NjgsIDEuMzQ0MjgsIDIuMDg2MjcsIDMuMDc1MjQsIDUuMDUyMTUsIDYuMjg3NTQiLCBcCi0gICAgICAgICAgIjAuMzY2ODUxLCAwLjUxNTY0NiwgMS4zNTc4LCAyLjEwMDIsIDMuMDg4ODcsIDUuMDY1MTksIDYuMzAwODUiLCBcCi0gICAgICAgICAgIjAuMzc5Mjg1LCAwLjUyODEzMywgMS4zNjk5MSwgMi4xMTI1MiwgMy4xMDEwOSwgNS4wNzc5NCwgNi4zMTMyNSIsIFwKLSAgICAgICAgICAiMC4zOTg2NjYsIDAuNTQ3NDA3LCAxLjM4OSwgMi4xMzE0OCwgMy4xMjAyMiwgNS4wOTcxOSwgNi4zMzI2OSIsIFwKLSAgICAgICAgICAiMC40MTUxMTksIDAuNTY0MDA5LCAxLjQwNTYyLCAyLjE0NzYsIDMuMTM3NDEsIDUuMTEzNzgsIDYuMzQ5NDYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuNTUzMTY4LCAwLjgzMjAxNCwgMi40MTE1NCwgMy44MDUxNiwgNS42NjE3NywgOS4zNzI2NywgMTEuNjg4MyIsIFwKLSAgICAgICAgICAiMC41NTMzNzYsIDAuODMxODAxLCAyLjQxMzM3LCAzLjgwNTYsIDUuNjY5ODIsIDkuMzczNTQsIDExLjY4ODMiLCBcCi0gICAgICAgICAgIjAuNTUzMDk3LCAwLjgzMjAyNSwgMi40MTE0NCwgMy44MDU1NiwgNS42NjI5MywgOS4zNzIzMiwgMTEuNjg4MiIsIFwKLSAgICAgICAgICAiMC41NTI4NDMsIDAuODMxODEsIDIuNDExMjUsIDMuODA2NDYsIDUuNjY5OCwgOS4zNzQxMSwgMTEuNjg4NCIsIFwKLSAgICAgICAgICAiMC41NTI5MjIsIDAuODMxNzg1LCAyLjQxMTQ0LCAzLjgwNTksIDUuNjY0ODIsIDkuMzcyNTUsIDExLjY4ODIiLCBcCi0gICAgICAgICAgIjAuNTUyOTI3LCAwLjgzMTc0NiwgMi40MTE3NCwgMy44MDU2LCA1LjY2OCwgOS4zNzMzLCAxMS42ODgzIiwgXAotICAgICAgICAgICIwLjU1MjksIDAuODMxNTk2LCAyLjQxMTgxLCAzLjgwNTU0LCA1LjY2NTYsIDkuMzczNjUsIDExLjY4ODQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE4ODU4MSwgMC4yNzc2MzIsIDAuNzgwMjA0LCAxLjIyMjc0LCAxLjgxMjQ3LCAyLjk5MjI5LCAzLjcyODc1IiwgXAotICAgICAgICAgICIwLjE5ODY1LCAwLjI4Nzc4OCwgMC43OTAyNzgsIDEuMjMzMTEsIDEuODIyNTQsIDMuMDAyMjIsIDMuNzM4ODgiLCBcCi0gICAgICAgICAgIjAuMjExNzI1LCAwLjMwMDc4NywgMC44MDMzNjUsIDEuMjQ1ODEsIDEuODM2MDYsIDMuMDE1NjIsIDMuNzUxODkiLCBcCi0gICAgICAgICAgIjAuMjI0NjgyLCAwLjMxMzgyLCAwLjgxNjM1OCwgMS4yNTg4NywgMS44NDg5NCwgMy4wMjg3OCwgMy43NjQ5MyIsIFwKLSAgICAgICAgICAiMC4yMzc3NTgsIDAuMzI2ODg1LCAwLjgyOTQ0NywgMS4yNzE5MSwgMS44NjE3NywgMy4wNDEzNCwgMy43NzgwMyIsIFwKLSAgICAgICAgICAiMC4yNTg3NDQsIDAuMzQ3ODUzLCAwLjg1MDQ0NiwgMS4yOTMzMiwgMS44ODI3MSwgMy4wNjI0NiwgMy43OTkwOCIsIFwKLSAgICAgICAgICAiMC4yNzcxMzksIDAuMzY2MTgzLCAwLjg2ODczNSwgMS4zMTEzLCAxLjkwMTM3LCAzLjA4MDk1LCAzLjgxNzI3Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjM0OTQ4MSwgMC41MjI1NCwgMS41MDIwMiwgMi4zNjY3NiwgMy41MjA0MywgNS44MjI4OCwgNy4yNjAxMyIsIFwKLSAgICAgICAgICAiMC4zNDk0NzgsIDAuNTIyNTA1LCAxLjUwMjA1LCAyLjM2NjI0LCAzLjUyMDM3LCA1LjgyMzYsIDcuMjYyNzYiLCBcCi0gICAgICAgICAgIjAuMzQ5NTM3LCAwLjUyMjY4LCAxLjUwMjMyLCAyLjM2NTc4LCAzLjUxODE5LCA1LjgyMjMxLCA3LjI2MDQ5IiwgXAotICAgICAgICAgICIwLjM0OTYzNiwgMC41MjI2NDQsIDEuNTAzODEsIDIuMzY2MzksIDMuNTE4NDMsIDUuODIyMzIsIDcuMjYyNiIsIFwKLSAgICAgICAgICAiMC4zNDk5MTUsIDAuNTIyNjU0LCAxLjUwMjc0LCAyLjM2ODMxLCAzLjUxNzYzLCA1LjgyNDY1LCA3LjI2MzU0IiwgXAotICAgICAgICAgICIwLjM1MzY5LCAwLjUyMzEzMSwgMS41MDMsIDIuMzY2NDIsIDMuNTIwMzYsIDUuODIyNCwgNy4yNjIwMyIsIFwKLSAgICAgICAgICAiMC4zNTkwNjksIDAuNTI1NjA4LCAxLjUwMjkyLCAyLjM2NjM2LCAzLjUyMDQzLCA1LjgyMTYxLCA3LjI2MDQ5Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMwOTM4NSwgMC40NTYwOTUsIDEuMjg3MTUsIDIuMDIxNTMsIDIuOTk4MDksIDQuOTUzNDYsIDYuMTc1NTkiLCBcCi0gICAgICAgICAgIjAuMzIxNzMxLCAwLjQ2ODU3NCwgMS4yOTk5NSwgMi4wMzQxNSwgMy4wMTIwMSwgNC45NjY5OCwgNi4xODg5OCIsIFwKLSAgICAgICAgICAiMC4zMzU3MDMsIDAuNDgyNTY3LCAxLjMxNDY4LCAyLjA0OTQyLCAzLjAyNjczLCA0Ljk4MTM4LCA2LjIwMzM4IiwgXAotICAgICAgICAgICIwLjM0ODQxLCAwLjQ5NTgxMywgMS4zMjgyMiwgMi4wNjEzLCAzLjAzOTk3LCA0Ljk5NDU2LCA2LjIxNjU5IiwgXAotICAgICAgICAgICIwLjM2MDc1OCwgMC41MDc5NDcsIDEuMzQwMjcsIDIuMDc0NzYsIDMuMDUyMjgsIDUuMDA3MzksIDYuMjI5MDgiLCBcCi0gICAgICAgICAgIjAuMzc5OTU0LCAwLjUyNzE1NCwgMS4zNTk3LCAyLjA5Mzg1LCAzLjA3MTQ5LCA1LjAyNjcyLCA2LjI0ODYyIiwgXAotICAgICAgICAgICIwLjM5NjI4MywgMC41NDM2MzYsIDEuMzc2MjcsIDIuMTA5OTQsIDMuMDg4NywgNS4wNDMzNiwgNi4yNjU0MiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC41MzM5MTUsIDAuODA3MjQ3LCAyLjM3OTUxLCAzLjc2NTc4LCA1LjU4ODMyLCA5LjI0ODY4LCAxMS41Mzg2IiwgXAotICAgICAgICAgICIwLjUzMzg1OCwgMC44MDc2NjEsIDIuMzc5NzQsIDMuNzY1NjMsIDUuNTkxNCwgOS4yNTAxOCwgMTEuNTM4OCIsIFwKLSAgICAgICAgICAiMC41MzM4NzcsIDAuODA5OTUsIDIuMzg3NjIsIDMuNzQ4MiwgNS41ODkzMSwgOS4yNTA1OSwgMTEuNTM4MSIsIFwKLSAgICAgICAgICAiMC41MzA3NDEsIDAuODA2MjMyLCAyLjM4ODU2LCAzLjc2NTMzLCA1LjU4OTM2LCA5LjI1MDUzLCAxMS41MzgyIiwgXAotICAgICAgICAgICIwLjUzMzgwOCwgMC44MDY2NjksIDIuMzgwMiwgMy43NjYzOCwgNS41ODM3OSwgOS4yNDk2MywgMTEuNTM4NSIsIFwKLSAgICAgICAgICAiMC41MzA0NjksIDAuODA3MDgsIDIuMzgwMjQsIDMuNzY1OTQsIDUuNTg5MzMsIDkuMjQ5NDksIDExLjUzODgiLCBcCi0gICAgICAgICAgIjAuNTMxMDUxLCAwLjgxMTg1NiwgMi4zNzE1NSwgMy43NjUyOCwgNS41ODY5NiwgOS4yNTAxMSwgMTEuNTM4MiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg5NjIsIDAuMTMyOTI3LCAwLjM3NzgxNSwgMC41OTM4MDQsIDAuODgxNTI2LCAxLjQ1NzU5LCAxLjgxNzY2IiwgXAotICAgICAgICAgICIwLjEwMTIxMywgMC4xNDQ1MTYsIDAuMzg5NTQ3LCAwLjYwNTMyOSwgMC44OTMzNjIsIDEuNDY5MDksIDEuODI4NTQiLCBcCi0gICAgICAgICAgIjAuMTE1OTAxLCAwLjE1OTQzMSwgMC40MDQxNDIsIDAuNjIwMjYxLCAwLjkwODA5NCwgMS40ODQxNiwgMS44NDM2NiIsIFwKLSAgICAgICAgICAiMC4xMzA3NjMsIDAuMTc0MDE5LCAwLjQxODQzOCwgMC42MzMyNDYsIDAuOTE4Mjc1LCAxLjQ5NDIzLCAxLjg1Mzc0IiwgXAotICAgICAgICAgICIwLjE0NTU3MiwgMC4xODg3NzMsIDAuNDMyODE0LCAwLjY0ODcxNywgMC45MzEzMjgsIDEuNTA3MDksIDEuODY3MDIiLCBcCi0gICAgICAgICAgIjAuMTY5MjMsIDAuMjEyNDU4LCAwLjQ1NjA2LCAwLjY3MTg2MSwgMC45NTk4MzIsIDEuNTI4NDEsIDEuODg4MDMiLCBcCi0gICAgICAgICAgIjAuMTg5OTI5LCAwLjIzMzE4OSwgMC40NzY0MDEsIDAuNjkyMzI2LCAwLjk4MDA4MywgMS41NDcyNywgMS45MDcwNSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xODAyMTUsIDAuMjY3Njg4LCAwLjc2Mzc2NiwgMS4yMDE3NSwgMS43ODU1NywgMi45NTQwMSwgMy42ODQ1NyIsIFwKLSAgICAgICAgICAiMC4xODAyMTUsIDAuMjY3NjcxLCAwLjc2Mzg3OSwgMS4yMDE3LCAxLjc4NTg0LCAyLjk1MzgsIDMuNjgzNzIiLCBcCi0gICAgICAgICAgIjAuMTgwMzk3LCAwLjI2NzY5MywgMC43NjM2NDIsIDEuMjAxNzQsIDEuNzg1NjYsIDIuOTUzNjQsIDMuNjgzODUiLCBcCi0gICAgICAgICAgIjAuMTgyNjQ0LCAwLjI2ODAyLCAwLjc2NDAwNCwgMS4yMDE2NywgMS43ODU5OSwgMi45NTM2MywgMy42ODQiLCBcCi0gICAgICAgICAgIjAuMTg2NjIxLCAwLjI3MDAxOSwgMC43NjM3NjcsIDEuMjAxNywgMS43ODU5NywgMi45NTQzNSwgMy42ODQ0NSIsIFwKLSAgICAgICAgICAiMC4xOTU0NTEsIDAuMjc1ODA2LCAwLjc2MzcwNiwgMS4yMDE4MiwgMS43ODYxMiwgMi45NTM3MywgMy42ODQ1MyIsIFwKLSAgICAgICAgICAiMC4yMDUwMSwgMC4yODI3NjcsIDAuNzYzODY0LCAxLjIwMTY3LCAxLjc4NTY0LCAyLjk1MzcyLCAzLjY4MzcxIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMxOTE5NiwgMC40Njc5OTksIDEuMzA5ODksIDIuMDUxMDQsIDMuMDQwODksIDUuMDE3MSwgNi4yNTI3OSIsIFwKLSAgICAgICAgICAiMC4zMjk3NjIsIDAuNDc4Njc5LCAxLjMyMDEyLCAyLjA2MjM1LCAzLjA1MTI0LCA1LjAyODAyLCA2LjI2MzY3IiwgXAotICAgICAgICAgICIwLjM0MjYyNCwgMC40OTE1NjMsIDEuMzMzNTYsIDIuMDc2MzksIDMuMDY0ODIsIDUuMDQxMTUsIDYuMjc2ODIiLCBcCi0gICAgICAgICAgIjAuMzU1MjU4LCAwLjUwNDA2OCwgMS4zNDU3NiwgMi4wODgzNCwgMy4wNzcwOSwgNS4wNTM4NywgNi4yODk1NiIsIFwKLSAgICAgICAgICAiMC4zNjc5OTEsIDAuNTE3MDAxLCAxLjM1OTMsIDIuMTAwNjksIDMuMDkwMzEsIDUuMDY2OTQsIDYuMzAyNjIiLCBcCi0gICAgICAgICAgIjAuMzg4MDYxLCAwLjUzNzEzMywgMS4zNzk1MiwgMi4xMjE3OSwgMy4xMTA4NywgNS4wODczOSwgNi4zMjMxIiwgXAotICAgICAgICAgICIwLjQwNTg0NiwgMC41NTQ4OTQsIDEuMzk3MDIsIDIuMTM5ODgsIDMuMTI5MDgsIDUuMTA1NDgsIDYuMzQwOTciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuNTUyOTM5LCAwLjgzMTk1NCwgMi40MTEzLCAzLjgwNTYzLCA1LjY2Mzk3LCA5LjM3MzU2LCAxMS42ODg0IiwgXAotICAgICAgICAgICIwLjU1MzQzNCwgMC44MzIwMjgsIDIuNDEyMjEsIDMuODA1NDYsIDUuNjYyOTMsIDkuMzczNCwgMTEuNjg4NyIsIFwKLSAgICAgICAgICAiMC41NTMwODQsIDAuODMxODQyLCAyLjQxMTE4LCAzLjgwNjA3LCA1LjY2OTc4LCA5LjM3NDAzLCAxMS42ODg0IiwgXAotICAgICAgICAgICIwLjU1MzA5NiwgMC44MzIwMiwgMi40MTE1NSwgMy44MDUzMiwgNS42Njg0NiwgOS4zNzI3OCwgMTEuNjg4MyIsIFwKLSAgICAgICAgICAiMC41NTI5MTksIDAuODMxODI0LCAyLjQxMTkzLCAzLjgwODcyLCA1LjY2NzQ4LCA5LjM3MzI5LCAxMS42ODgiLCBcCi0gICAgICAgICAgIjAuNTUyNzYyLCAwLjgzMjAzNSwgMi40MTExNCwgMy44MDQ4NywgNS42NjU3NiwgOS4zNzMzNiwgMTEuNjg4NCIsIFwKLSAgICAgICAgICAiMC41NTM1MDcsIDAuODMxNzQ2LCAyLjQxMTgzLCAzLjgwNTc2LCA1LjY2NDgyLCA5LjM3MzYyLCAxMS42ODg5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODY4NDQsIDAuMTMwMDk4LCAwLjM3NDg2OSwgMC41OTA4MDQsIDAuODc4NjUxLCAxLjQ1NDg0LCAxLjgxNDAyIiwgXAotICAgICAgICAgICIwLjA5ODUyMSwgMC4xNDE3OTksIDAuMzg2NjA1LCAwLjYwMjU5OSwgMC44OTAxODgsIDEuNDY1ODIsIDEuODI2NiIsIFwKLSAgICAgICAgICAiMC4xMTMxNjYsIDAuMTU2MjAyLCAwLjQwMDI3OCwgMC42MTQxNDQsIDAuOTAyMTY0LCAxLjQ3ODM2LCAxLjgzNzUiLCBcCi0gICAgICAgICAgIjAuMTI4MTI4LCAwLjE3MDkxMywgMC40MTU0NzcsIDAuNjMwNTYxLCAwLjkxNTU2MiwgMS40OTE1NSwgMS44NTA2NSIsIFwKLSAgICAgICAgICAiMC4xNDI4OTQsIDAuMTg2MDQzLCAwLjQyOTk3NCwgMC42NDU3NzgsIDAuOTI5MDE0LCAxLjUwNDMsIDEuODY0NjUiLCBcCi0gICAgICAgICAgIjAuMTY2NTExLCAwLjIwOTczMSwgMC40NTMyMzMsIDAuNjY5MDYzLCAwLjk1Njg1MiwgMS41MjY4LCAxLjg4Njk5IiwgXAotICAgICAgICAgICIwLjE4NzY3MywgMC4yMzA0NjMsIDAuNDczNzY4LCAwLjY4OTM3MywgMC45NzcxMzEsIDEuNTQ2NzYsIDEuOTA2NjQiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTc3MjM1LCAwLjI2NDYzMSwgMC43NjA2OSwgMS4xOTg1MSwgMS43ODIyOCwgMi45NTA0OSwgMy42ODE0NiIsIFwKLSAgICAgICAgICAiMC4xNzcyMywgMC4yNjQ2NTIsIDAuNzYwNjAxLCAxLjE5ODU2LCAxLjc4MjU3LCAyLjk1MDg0LCAzLjY4MDQ5IiwgXAotICAgICAgICAgICIwLjE3NzUwNiwgMC4yNjQ2MTgsIDAuNzYwNDIzLCAxLjE5ODM2LCAxLjc4MjMxLCAyLjk1MTE5LCAzLjY4MDQxIiwgXAotICAgICAgICAgICIwLjE3OTg3NiwgMC4yNjUwNTgsIDAuNzYwNjU0LCAxLjE5ODUsIDEuNzgyMjIsIDIuOTUxMDksIDMuNjgxMDQiLCBcCi0gICAgICAgICAgIjAuMTg0MDI1LCAwLjI2NzEyMSwgMC43NjA0OTYsIDEuMTk4MzQsIDEuNzgyNzcsIDIuOTUyNDMsIDMuNjgwNTgiLCBcCi0gICAgICAgICAgIjAuMTkzMTM4LCAwLjI3MzA5NiwgMC43NjA0NiwgMS4xOTg1LCAxLjc4MjQxLCAyLjk1MjU1LCAzLjY4MDcxIiwgXAotICAgICAgICAgICIwLjIwMjM0NSwgMC4yODAxNzUsIDAuNzYwNjQxLCAxLjE5ODM0LCAxLjc4MjI4LCAyLjk1MDMsIDMuNjgwNTgiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzA4NTYxLCAwLjQ1NzM0NSwgMS4yOTg4NywgMi4wNDA4NywgMy4wMjk4NCwgNS4wMDY1NCwgNi4yNDIxOSIsIFwKLSAgICAgICAgICAiMC4zMTgxNDksIDAuNDY3MDM2LCAxLjMwODkzLCAyLjA1MTExLCAzLjAzOTU0LCA1LjAxNjQzLCA2LjI1MjA5IiwgXAotICAgICAgICAgICIwLjMzMDYwNiwgMC40Nzk1ODIsIDEuMzIxNjYsIDIuMDYzMywgMy4wNTI4NywgNS4wMjkzLCA2LjI2NDk5IiwgXAotICAgICAgICAgICIwLjM0MjI1NCwgMC40OTExODQsIDEuMzMyODgsIDIuMDc1MzcsIDMuMDY0MjYsIDUuMDQxMTMsIDYuMjc2NzUiLCBcCi0gICAgICAgICAgIjAuMzU0MzMxLCAwLjUwMzM5NiwgMS4zNDUzOSwgMi4wODc3MiwgMy4wNzcxNSwgNS4wNTM1MiwgNi4yODg5NSIsIFwKLSAgICAgICAgICAiMC4zNzM2OTIsIDAuNTIyNzM0LCAxLjM2NDk2LCAyLjEwNzQ3LCAzLjA5NjMsIDUuMDczMiwgNi4zMDg3IiwgXAotICAgICAgICAgICIwLjM5MDc5NCwgMC41MzY1NTIsIDEuMzgxODcsIDIuMTI0MDksIDMuMTEzNzMsIDUuMDkwNCwgNi4zMjYxMSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC41NTI4MjQsIDAuODMyMTEyLCAyLjQxMTE4LCAzLjgwNTQ3LCA1LjY2NTA1LCA5LjM3MzQyLCAxMS42ODg4IiwgXAotICAgICAgICAgICIwLjU1MzA4NiwgMC44MzIwNTksIDIuNDExMTksIDMuODA1NzcsIDUuNjY4MDQsIDkuMzczMiwgMTEuNjg4OCIsIFwKLSAgICAgICAgICAiMC41NTMwOTUsIDAuODMxNTc0LCAyLjQxMTkzLCAzLjgwNTYzLCA1LjY2NDUsIDkuMzczNTIsIDExLjY4ODQiLCBcCi0gICAgICAgICAgIjAuNTUyOTQsIDAuODMxNjMsIDIuNDExNjMsIDMuODA1NDIsIDUuNjY5NDksIDkuMzcyODgsIDExLjY4OSIsIFwKLSAgICAgICAgICAiMC41NTMwNzcsIDAuODMyMTEzLCAyLjQxMjAxLCAzLjgwNiwgNS42Njk4OSwgOS4zNzM5MiwgMTEuNjg4OSIsIFwKLSAgICAgICAgICAiMC41NTI3NTcsIDAuODMyMDA3LCAyLjQxMTk5LCAzLjgwNTI3LCA1LjY2NzQ0LCA5LjM3MzU3LCAxMS42ODgxIiwgXAotICAgICAgICAgICIwLjU1NDI4NCwgMC44MzE2OSwgMi40MTE0NCwgMy44MDg3MywgNS42Njc5NiwgOS4zNzM2LCAxMS42ODg0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjU0LCAwLjAwMjUzOSwgMC4wMDI1MzgsIDAuMDAyNTM4LCAwLjAwMjUzNiwgMC4wMDI1MzEsIDAuMDAyNTI5IiwgXAotICAgICAgICAgICIwLjAwMjUyOSwgMC4wMDI1MjksIDAuMDAyNTI3LCAwLjAwMjUyNiwgMC4wMDI1MjUsIDAuMDAyNTIyLCAwLjAwMjUxOCIsIFwKLSAgICAgICAgICAiMC4wMDI1MjUsIDAuMDAyNTI1LCAwLjAwMjUyNSwgMC4wMDI1MjMsIDAuMDAyNTIyLCAwLjAwMjUxOCwgMC4wMDI1MTciLCBcCi0gICAgICAgICAgIjAuMDAyNTIyLCAwLjAwMjUyMywgMC4wMDI1MjMsIDAuMDAyNTIyLCAwLjAwMjUyMSwgMC4wMDI1MTgsIDAuMDAyNTE1IiwgXAotICAgICAgICAgICIwLjAwMjUyMSwgMC4wMDI1MjIsIDAuMDAyNTIyLCAwLjAwMjUyMiwgMC4wMDI1MiwgMC4wMDI1MTgsIDAuMDAyNTE0IiwgXAotICAgICAgICAgICIwLjAwMjUxOSwgMC4wMDI1MiwgMC4wMDI1MjEsIDAuMDAyNTIsIDAuMDAyNTIsIDAuMDAyNTE4LCAwLjAwMjUxMyIsIFwKLSAgICAgICAgICAiMC4wMDI1MTcsIDAuMDAyNTIsIDAuMDAyNTIxLCAwLjAwMjUyMSwgMC4wMDI1MTksIDAuMDAyNTE2LCAwLjAwMjUxMyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDg4LCAwLjAwMDg4LCAwLjAwMDg4MywgMC4wMDA4NzksIDAuMDAwODc4LCAwLjAwMDg3NiwgMC4wMDA4NzUiLCBcCi0gICAgICAgICAgIjAuMDAwODY2LCAwLjAwMDg2NiwgMC4wMDA4NjcsIDAuMDAwODY2LCAwLjAwMDg2NiwgMC4wMDA4NjQsIDAuMDAwODYzIiwgXAotICAgICAgICAgICIwLjAwMDg2LCAwLjAwMDg2MSwgMC4wMDA4NjQsIDAuMDAwODY0LCAwLjAwMDg2NCwgMC4wMDA4NjIsIDAuMDAwODYxIiwgXAotICAgICAgICAgICIwLjAwMDg1NSwgMC4wMDA4NTgsIDAuMDAwODYyLCAwLjAwMDg2MywgMC4wMDA4NjIsIDAuMDAwODYxLCAwLjAwMDg2IiwgXAotICAgICAgICAgICIwLjAwMDg1MiwgMC4wMDA4NTYsIDAuMDAwODYxLCAwLjAwMDg2MSwgMC4wMDA4NjEsIDAuMDAwODYsIDAuMDAwODU5IiwgXAotICAgICAgICAgICIwLjAwMDg0NywgMC4wMDA4NTIsIDAuMDAwODU5LCAwLjAwMDg2LCAwLjAwMDg2MSwgMC4wMDA4NTksIDAuMDAwODU4IiwgXAotICAgICAgICAgICIwLjAwMDg0NCwgMC4wMDA4NDksIDAuMDAwODU4LCAwLjAwMDg1OSwgMC4wMDA4NiwgMC4wMDA4NTksIDAuMDAwODU4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjI5MSwgMC4wMDIyOSwgMC4wMDIyODksIDAuMDAyMjg4LCAwLjAwMjI4NiwgMC4wMDIyODMsIDAuMDAyMjc3IiwgXAotICAgICAgICAgICIwLjAwMjI3OCwgMC4wMDIyNzgsIDAuMDAyMjc3LCAwLjAwMjI3NiwgMC4wMDIyNzUsIDAuMDAyMjcyLCAwLjAwMjI2OCIsIFwKLSAgICAgICAgICAiMC4wMDIyNzMsIDAuMDAyMjczLCAwLjAwMjI3NCwgMC4wMDIyNzQsIDAuMDAyMjcxLCAwLjAwMjI2NywgMC4wMDIyNjgiLCBcCi0gICAgICAgICAgIjAuMDAyMjY5LCAwLjAwMjI3MSwgMC4wMDIyNzIsIDAuMDAyMjcxLCAwLjAwMjI2OSwgMC4wMDIyNjYsIDAuMDAyMjY1IiwgXAotICAgICAgICAgICIwLjAwMjI2NiwgMC4wMDIyNjgsIDAuMDAyMjcxLCAwLjAwMjI3MSwgMC4wMDIyNywgMC4wMDIyNjYsIDAuMDAyMjYzIiwgXAotICAgICAgICAgICIwLjAwMjI2MywgMC4wMDIyNjYsIDAuMDAyMjcsIDAuMDAyMjY5LCAwLjAwMjI2OCwgMC4wMDIyNjUsIDAuMDAyMjYzIiwgXAotICAgICAgICAgICIwLjAwMjI2MSwgMC4wMDIyNjQsIDAuMDAyMjY4LCAwLjAwMjI2OSwgMC4wMDIyNjgsIDAuMDAyMjY1LCAwLjAwMjI2MiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDU3MSwgMC4wMDA1NzIsIDAuMDAwNTczLCAwLjAwMDU3MywgMC4wMDA1NzMsIDAuMDAwNTczLCAwLjAwMDU3MyIsIFwKLSAgICAgICAgICAiMC4wMDA1NzUsIDAuMDAwNTc4LCAwLjAwMDU4MiwgMC4wMDA1ODMsIDAuMDAwNTg0LCAwLjAwMDU4NCwgMC4wMDA1ODQiLCBcCi0gICAgICAgICAgIjAuMDAwNTY5LCAwLjAwMDU3NCwgMC4wMDA1ODMsIDAuMDAwNTg0LCAwLjAwMDU4NSwgMC4wMDA1ODYsIDAuMDAwNTg2IiwgXAotICAgICAgICAgICIwLjAwMDU2MSwgMC4wMDA1NjksIDAuMDAwNTgxLCAwLjAwMDU4MywgMC4wMDA1ODUsIDAuMDAwNTg2LCAwLjAwMDU4NiIsIFwKLSAgICAgICAgICAiMC4wMDA1NTUsIDAuMDAwNTY0LCAwLjAwMDU3OSwgMC4wMDA1ODIsIDAuMDAwNTg0LCAwLjAwMDU4NiwgMC4wMDA1ODYiLCBcCi0gICAgICAgICAgIjAuMDAwNTQ1LCAwLjAwMDU1NiwgMC4wMDA1NzYsIDAuMDAwNTgsIDAuMDAwNTgzLCAwLjAwMDU4NSwgMC4wMDA1ODYiLCBcCi0gICAgICAgICAgIjAuMDAwNTM3LCAwLjAwMDU1LCAwLjAwMDU3MywgMC4wMDA1NzksIDAuMDAwNTgyLCAwLjAwMDU4NCwgMC4wMDA1ODUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxOTM1LCAwLjAwMTkzNSwgMC4wMDE5MzUsIDAuMDAxOTM1LCAwLjAwMTkzNSwgMC4wMDE5MzQsIDAuMDAxOTM0IiwgXAotICAgICAgICAgICIwLjAwMTkzMywgMC4wMDE5MzUsIDAuMDAxOTM2LCAwLjAwMTkzNywgMC4wMDE5MzYsIDAuMDAxOTM2LCAwLjAwMTkzNSIsIFwKLSAgICAgICAgICAiMC4wMDE5MjcsIDAuMDAxOTMzLCAwLjAwMTkzNiwgMC4wMDE5MzYsIDAuMDAxOTM2LCAwLjAwMTkzNiwgMC4wMDE5MzYiLCBcCi0gICAgICAgICAgIjAuMDAxOTI3LCAwLjAwMTkzMSwgMC4wMDE5MzUsIDAuMDAxOTM1LCAwLjAwMTkzNiwgMC4wMDE5MzUsIDAuMDAxOTM2IiwgXAotICAgICAgICAgICIwLjAwMTkyNCwgMC4wMDE5MjgsIDAuMDAxOTM1LCAwLjAwMTkzNiwgMC4wMDE5MzYsIDAuMDAxOTM1LCAwLjAwMTkzNiIsIFwKLSAgICAgICAgICAiMC4wMDE5MTksIDAuMDAxOTI1LCAwLjAwMTkzMywgMC4wMDE5MzUsIDAuMDAxOTM1LCAwLjAwMTkzNSwgMC4wMDE5MzUiLCBcCi0gICAgICAgICAgIjAuMDAxOTE2LCAwLjAwMTkyMiwgMC4wMDE5MzEsIDAuMDAxOTM0LCAwLjAwMTkzNSwgMC4wMDE5MzUsIDAuMDAxOTM1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwODk0LCAwLjAwMDg5NCwgMC4wMDA4OTMsIDAuMDAwODk1LCAwLjAwMDg5NSwgMC4wMDA4OTIsIDAuMDAwODg2IiwgXAotICAgICAgICAgICIwLjAwMDg4NywgMC4wMDA4OSwgMC4wMDA4OTMsIDAuMDAwODkyLCAwLjAwMDg5MywgMC4wMDA4OTIsIDAuMDAwODkxIiwgXAotICAgICAgICAgICIwLjAwMDg3OSwgMC4wMDA4ODQsIDAuMDAwODkxLCAwLjAwMDg5MSwgMC4wMDA4OTIsIDAuMDAwODkxLCAwLjAwMDg5MSIsIFwKLSAgICAgICAgICAiMC4wMDA4NzIsIDAuMDAwODc5LCAwLjAwMDg4OSwgMC4wMDA4OSwgMC4wMDA4OTEsIDAuMDAwODksIDAuMDAwODg5IiwgXAotICAgICAgICAgICIwLjAwMDg2NiwgMC4wMDA4NzQsIDAuMDAwODg2LCAwLjAwMDg4OSwgMC4wMDA4OSwgMC4wMDA4OSwgMC4wMDA4ODkiLCBcCi0gICAgICAgICAgIjAuMDAwODU4LCAwLjAwMDg2NywgMC4wMDA4ODMsIDAuMDAwODg3LCAwLjAwMDg4OSwgMC4wMDA4ODksIDAuMDAwODg5IiwgXAotICAgICAgICAgICIwLjAwMDg1MywgMC4wMDA4NjIsIDAuMDAwODgxLCAwLjAwMDg4NSwgMC4wMDA4ODcsIDAuMDAwODg4LCAwLjAwMDg4NyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDE1ODUsIDAuMDAxNTg2LCAwLjAwMTU4NiwgMC4wMDE1ODcsIDAuMDAxNTg3LCAwLjAwMTU4NiwgMC4wMDE1ODciLCBcCi0gICAgICAgICAgIjAuMDAxNTksIDAuMDAxNTkyLCAwLjAwMTU5NSwgMC4wMDE1OTYsIDAuMDAxNTk2LCAwLjAwMTU5NiwgMC4wMDE1OTYiLCBcCi0gICAgICAgICAgIjAuMDAxNTg3LCAwLjAwMTU5MSwgMC4wMDE1OTcsIDAuMDAxNTk4LCAwLjAwMTU5OCwgMC4wMDE1OTksIDAuMDAxNTk5IiwgXAotICAgICAgICAgICIwLjAwMTU4MiwgMC4wMDE1ODgsIDAuMDAxNTk2LCAwLjAwMTU5OCwgMC4wMDE1OTgsIDAuMDAxNiwgMC4wMDE2IiwgXAotICAgICAgICAgICIwLjAwMTU3OCwgMC4wMDE1ODUsIDAuMDAxNTk1LCAwLjAwMTU5NywgMC4wMDE1OTksIDAuMDAxNiwgMC4wMDE2IiwgXAotICAgICAgICAgICIwLjAwMTU3MiwgMC4wMDE1ODEsIDAuMDAxNTkzLCAwLjAwMTU5NiwgMC4wMDE1OTgsIDAuMDAxNTk5LCAwLjAwMTU5OSIsIFwKLSAgICAgICAgICAiMC4wMDE1NjgsIDAuMDAxNTc3LCAwLjAwMTU5MSwgMC4wMDE1OTUsIDAuMDAxNTk3LCAwLjAwMTU5OSwgMC4wMDE1OTkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDA4OTQsIDAuMDAwODk0LCAwLjAwMDg5MywgMC4wMDA4OTcsIDAuMDAwODk0LCAwLjAwMDg5MiwgMC4wMDA4OTEiLCBcCi0gICAgICAgICAgIjAuMDAwODg1LCAwLjAwMDg4OCwgMC4wMDA4OTQsIDAuMDAwODkyLCAwLjAwMDg5MywgMC4wMDA4OTIsIDAuMDAwODkiLCBcCi0gICAgICAgICAgIjAuMDAwODc2LCAwLjAwMDg4MSwgMC4wMDA4OSwgMC4wMDA4OTEsIDAuMDAwODkyLCAwLjAwMDg5MSwgMC4wMDA4OTEiLCBcCi0gICAgICAgICAgIjAuMDAwODY3LCAwLjAwMDg3NSwgMC4wMDA4ODcsIDAuMDAwODg5LCAwLjAwMDg5LCAwLjAwMDg5LCAwLjAwMDg4OSIsIFwKLSAgICAgICAgICAiMC4wMDA4NjEsIDAuMDAwODcsIDAuMDAwODg1LCAwLjAwMDg4OCwgMC4wMDA4ODksIDAuMDAwODksIDAuMDAwODg5IiwgXAotICAgICAgICAgICIwLjAwMDg1MywgMC4wMDA4NjMsIDAuMDAwODgxLCAwLjAwMDg4NSwgMC4wMDA4ODgsIDAuMDAwODg4LCAwLjAwMDg4OCIsIFwKLSAgICAgICAgICAiMC4wMDA4NDgsIDAuMDAwODUzLCAwLjAwMDg3OCwgMC4wMDA4ODMsIDAuMDAwODg2LCAwLjAwMDg4NywgMC4wMDA4ODciKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBPQUkzMVgxICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKE9BSTMxWDEpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4xMDE1MzU7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA4NjAyODk7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwODU2MTM7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwODYwMjg5OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDMwNiwgMC4wMDAzMDYsIDAuMDAwMzA2LCAwLjAwMDMwNiwgMC4wMDAzMDUsIDAuMDAwMzA2LCAwLjAwMDMwNiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDMwNywgMC4wMDAzMDcsIDAuMDAwMzA3LCAwLjAwMDMwNywgMC4wMDAzMDcsIDAuMDAwMzA3LCAwLjAwMDMwNyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQTEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDg4NTIwNjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA4ODI0MTk7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwODg1MjA2OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDMwNiwgMC4wMDAzMDYsIDAuMDAwMzA2LCAwLjAwMDMwNiwgMC4wMDAzMDYsIDAuMDAwMzA2LCAwLjAwMDMwNiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDMwNywgMC4wMDAzMDcsIDAuMDAwMzA3LCAwLjAwMDMwNywgMC4wMDAzMDcsIDAuMDAwMzA3LCAwLjAwMDMwNyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQTIpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDg4NDAyNTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA4ODQwMjU7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwODgxMjE1OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDMwNiwgMC4wMDAzMDYsIDAuMDAwMzA2LCAwLjAwMDMwNiwgMC4wMDAzMDYsIDAuMDAwMzA2LCAwLjAwMDMwNiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDMwNywgMC4wMDAzMDcsIDAuMDAwMzA3LCAwLjAwMDMwNywgMC4wMDAzMDcsIDAuMDAwMzA3LCAwLjAwMDMwNyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQjApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDg2ODg3MzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA4Njg0MDk7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwODY4ODczOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDMsIDAuMDAwMywgMC4wMDAzLCAwLjAwMDMwMSwgMC4wMDAzLCAwLjAwMDMsIDAuMDAwMyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDM0NywgMC4wMDAzNDgsIDAuMDAwMzQ4LCAwLjAwMDM0OCwgMC4wMDAzNDgsIDAuMDAwMzQ4LCAwLjAwMDM0OCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjA0NzQ2NzY7Ci0gICAgZnVuY3Rpb24gOiAiKCEoKChBMCtBMSkrQTIpIEIwKSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yOTE5NzMsIDAuNDI3NjkzLCAxLjE5NDIzLCAxLjg3MDQ3LCAyLjc3MTI0LCA0LjU3MTQ1LCA1LjY5NjI1IiwgXAotICAgICAgICAgICIwLjMwMzIyOCwgMC40Mzg5NjYsIDEuMjA1NTMsIDEuODgxNTMsIDIuNzgyNTksIDQuNTgyNjgsIDUuNzA3NTUiLCBcCi0gICAgICAgICAgIjAuMzE1OTMzLCAwLjQ1MTY2OSwgMS4yMTg0MywgMS44OTQzMiwgMi43OTUzLCA0LjU5NTM2LCA1LjcyMDMzIiwgXAotICAgICAgICAgICIwLjMyNzYyLCAwLjQ2MzM2OSwgMS4yMzAwNCwgMS45MDU4NCwgMi44MDcyNywgNC42MDcxNSwgNS43MzIwNyIsIFwKLSAgICAgICAgICAiMC4zMzg4MjMsIDAuNDc0NjE0LCAxLjI0MTQ2LCAxLjkxNzQ0LCAyLjgxODEsIDQuNjE4NTEsIDUuNzQzMzEiLCBcCi0gICAgICAgICAgIjAuMzU1ODIsIDAuNDkxODUzLCAxLjI1ODQ3LCAxLjkzNDI1LCAyLjgzNTMxLCA0LjYzNTUyLCA1Ljc2MDc5IiwgXAotICAgICAgICAgICIwLjM3MDk0MSwgMC41MDY3NDQsIDEuMjczNjYsIDEuOTQ5MzgsIDIuODUwNzYsIDQuNjUwNzQsIDUuNzc1NjIiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuNTA4NDUxLCAwLjc2ODEzNSwgMi4yMzg4NCwgMy41MzY1MSwgNS4yNjYxMiwgOC43MjQ4MSwgMTAuODg1MiIsIFwKLSAgICAgICAgICAiMC41MDg0MzMsIDAuNzY4MTUzLCAyLjIzODg4LCAzLjUzNzE2LCA1LjI2NjM2LCA4LjcyNjIxLCAxMC44ODUyIiwgXAotICAgICAgICAgICIwLjUwODQxLCAwLjc2ODYxOSwgMi4yMzkwNywgMy41MzY1NCwgNS4yNjY2NCwgOC43MjYwMSwgMTAuODg1MiIsIFwKLSAgICAgICAgICAiMC41MDgwMzYsIDAuNzY4NTk0LCAyLjIzODU1LCAzLjUzODQ1LCA1LjI2NTQyLCA4LjcyNjA2LCAxMC44ODUyIiwgXAotICAgICAgICAgICIwLjUwODM4NSwgMC43Njc3NTQsIDIuMjM5MjMsIDMuNTM2NjQsIDUuMjY2NDIsIDguNzI1NywgMTAuODg1MiIsIFwKLSAgICAgICAgICAiMC41MDg1MDgsIDAuNzY3OTY3LCAyLjIzODkyLCAzLjUzNjI0LCA1LjI2OTE2LCA4LjcyNzU3LCAxMC44ODUzIiwgXAotICAgICAgICAgICIwLjUwOTQxOSwgMC43Njg1OTUsIDIuMjQwMzYsIDMuNTM1NzMsIDUuMjY2NzMsIDguNzI2MSwgMTAuODg1MSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMjE0MzIsIDAuMzIxMDkxLCAwLjg4MzE0NiwgMS4zNzkxLCAyLjAzOTE1LCAzLjM1OTA0LCA0LjE4Mjg3IiwgXAotICAgICAgICAgICIwLjIzMzE1LCAwLjMzMjc1MywgMC44OTUxOTcsIDEuMzkwNzEsIDIuMDUxLCAzLjM3LCA0LjE5NDg4IiwgXAotICAgICAgICAgICIwLjI0NzU3LCAwLjM0NzIzNiwgMC45MDk2NzEsIDEuNDA0OTEsIDIuMDY1NTMsIDMuMzg0NzQsIDQuMjA5MTMiLCBcCi0gICAgICAgICAgIjAuMjYxMzU2LCAwLjM2MTA4NCwgMC45MjM0NiwgMS40MTkxLCAyLjA3ODQ4LCAzLjM5ODgxLCA0LjIyMzE4IiwgXAotICAgICAgICAgICIwLjI3NDk3OSwgMC4zNzQ2NzksIDAuOTM2ODM4LCAxLjQzMjA3LCAyLjA5MjY3LCAzLjQxMjExLCA0LjIzNjk1IiwgXAotICAgICAgICAgICIwLjI5NjU1NiwgMC4zOTYzMzEsIDAuOTU4NTUsIDEuNDU0MzMsIDIuMTE1MDcsIDMuNDMzOTgsIDQuMjU4NDIiLCBcCi0gICAgICAgICAgIjAuMzE1MzM3LCAwLjQxNTE0MiwgMC45Nzc1OCwgMS40NzI4LCAyLjEzMzUzLCAzLjQ1MzE3LCA0LjI3NzE3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjM3MjE1MSwgMC41NjE2ODQsIDEuNjMzNzEsIDIuNTc5OTIsIDMuODQxMTgsIDYuMzY0MzgsIDcuOTM5NjciLCBcCi0gICAgICAgICAgIjAuMzcxOTA3LCAwLjU2MTM1OSwgMS42MzM1NywgMi41ODAwNywgMy44NDA3MiwgNi4zNjM0NywgNy45Mzk3MiIsIFwKLSAgICAgICAgICAiMC4zNzE4NzQsIDAuNTYxMjExLCAxLjYzNDM2LCAyLjU4MDE2LCAzLjg0MTE5LCA2LjM2Mzc5LCA3LjkzOTUxIiwgXAotICAgICAgICAgICIwLjM3MjEyMywgMC41NjExMTYsIDEuNjMzNTcsIDIuNTgwMTEsIDMuODQwNzEsIDYuMzYyOTIsIDcuOTM5NzMiLCBcCi0gICAgICAgICAgIjAuMzcxODg2LCAwLjU2MTU0NiwgMS42MzQyLCAyLjU3OTQ5LCAzLjgzOTk3LCA2LjM2MzY2LCA3LjkzOTc4IiwgXAotICAgICAgICAgICIwLjM3MjI4NiwgMC41NjE1NTYsIDEuNjMzODIsIDIuNTgwMDMsIDMuODQxMzIsIDYuMzYzNzUsIDcuOTM5NTUiLCBcCi0gICAgICAgICAgIjAuMzczODE5LCAwLjU2MTQ1NywgMS42MzM5NCwgMi41Nzk0OCwgMy44NDEyNCwgNi4zNjMyNiwgNy45MzcxNCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjg2MzQzLCAwLjQyMjA1NiwgMS4xODg5MSwgMS44NjQ4NSwgMi43NjU2NiwgNC41NjU3MiwgNS42OTA2MyIsIFwKLSAgICAgICAgICAiMC4yOTY3LCAwLjQzMjM0NSwgMS4xOTkyOSwgMS44NzUyNCwgMi43NzU3NSwgNC41NzU5OCwgNS43MDEwOCIsIFwKLSAgICAgICAgICAiMC4zMDkxMjEsIDAuNDQ0ODc0LCAxLjIxMTgzLCAxLjg4NzE1LCAyLjc4ODE1LCA0LjU4ODY5LCA1LjcxMzQ5IiwgXAotICAgICAgICAgICIwLjMyMTE0OSwgMC40NTY5NjEsIDEuMjIzODgsIDEuODk5MjYsIDIuODAwNTgsIDQuNjAwODEsIDUuNzI1NjEiLCBcCi0gICAgICAgICAgIjAuMzMzMDU5LCAwLjQ2ODc5NywgMS4yMzU0OCwgMS45MTExNiwgMi44MTIyNCwgNC42MTI3NSwgNS43Mzc1NCIsIFwKLSAgICAgICAgICAiMC4zNTE5OTgsIDAuNDg3OTE1LCAxLjI1NDQ2LCAxLjkzMDA5LCAyLjgzMTI2LCA0LjYzMTc4LCA1Ljc1NjgzIiwgXAotICAgICAgICAgICIwLjM2ODM3MSwgMC41MDQ0MDksIDEuMjcxNDMsIDEuOTQ3MzQsIDIuODQ4MzQsIDQuNjQ4MzUsIDUuNzczMjYiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuNTA4NTE1LCAwLjc2ODYyMSwgMi4yMzkxNiwgMy41MzY2NSwgNS4yNjYzMSwgOC43MjYwNCwgMTAuODg1MiIsIFwKLSAgICAgICAgICAiMC41MDc5OSwgMC43NjgwODYsIDIuMjM5MjIsIDMuNTM2NzEsIDUuMjY2NywgOC43MjY4OCwgMTAuODg1MyIsIFwKLSAgICAgICAgICAiMC41MDgzOTgsIDAuNzY4NTk0LCAyLjIzOTIzLCAzLjUzNjE2LCA1LjI2NTExLCA4LjcyNzAxLCAxMC44ODUxIiwgXAotICAgICAgICAgICIwLjUwODMyMSwgMC43Njc5NjgsIDIuMjM5MjIsIDMuNTM4NDIsIDUuMjY2MywgOC43MjQ2LCAxMC44ODUxIiwgXAotICAgICAgICAgICIwLjUwODAxMywgMC43Njc3NzEsIDIuMjQxMDYsIDMuNTM4NTgsIDUuMjY4OTMsIDguNzI1MzEsIDEwLjg4NTEiLCBcCi0gICAgICAgICAgIjAuNTA4NDMxLCAwLjc2Nzk0MiwgMi4yNDA5MSwgMy41MzgzNSwgNS4yNjg1MSwgOC43MjY4NywgMTAuODg1MyIsIFwKLSAgICAgICAgICAiMC41MDk4MjgsIDAuNzY4MTQ3LCAyLjI0MDAzLCAzLjUzNjU5LCA1LjI2NjM2LCA4LjcyNDQzLCAxMC44ODQzIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIxMjYwMywgMC4zMTE4NjQsIDAuODczMjI3LCAxLjM2ODU1LCAyLjAyOTQ1LCAzLjM0Nzc1LCA0LjE3MjQzIiwgXAotICAgICAgICAgICIwLjIyNDcyNywgMC4zMjM5NTEsIDAuODg1NjEyLCAxLjM4MTEsIDIuMDQwODgsIDMuMzU5ODksIDQuMTg0NyIsIFwKLSAgICAgICAgICAiMC4yMzkyMjksIDAuMzM4NDY1LCAwLjg5OTk2MiwgMS4zOTUzNCwgMi4wNTYwMSwgMy4zNzQ3LCA0LjE5OTIzIiwgXAotICAgICAgICAgICIwLjI1Mjk5MywgMC4zNTIzNDksIDAuOTE0MDI4LCAxLjQwOTU2LCAyLjA3MDI4LCAzLjM4ODQ4LCA0LjIxMzE0IiwgXAotICAgICAgICAgICIwLjI2NjU1NSwgMC4zNjU5NTksIDAuOTI3NDYzLCAxLjQyMjg3LCAyLjA4MzcyLCAzLjQwMjI0LCA0LjIyNjY4IiwgXAotICAgICAgICAgICIwLjI4ODA0MiwgMC4zODc0ODcsIDAuOTQ5MTc0LCAxLjQ0NDY1LCAyLjEwNTI2LCAzLjQyMzk4LCA0LjI0ODM4IiwgXAotICAgICAgICAgICIwLjMwNjcwMiwgMC40MDYzMTcsIDAuOTY4MjU5LCAxLjQ2MzU3LCAyLjEyMzgyLCAzLjQ0MzQ3LCA0LjI2NzM0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjM2MTk1OSwgMC41NTE2NDQsIDEuNjIzMiwgMi41Njk2NywgMy44MzE4MSwgNi4zNTY2MywgNy45MjkxMSIsIFwKLSAgICAgICAgICAiMC4zNjIwOTgsIDAuNTUxNzIyLCAxLjYyMzY5LCAyLjU2OTk5LCAzLjgzMTA5LCA2LjM1NjI3LCA3LjkyOSIsIFwKLSAgICAgICAgICAiMC4zNjI0MTEsIDAuNTUxMTksIDEuNjIzMjgsIDIuNTY5NTgsIDMuODMxNiwgNi4zNTQzOSwgNy45Mjg5NCIsIFwKLSAgICAgICAgICAiMC4zNjIyNDMsIDAuNTUxNDA1LCAxLjYyMzYzLCAyLjU2OTY2LCAzLjgzMTY1LCA2LjM1MjY5LCA3LjkyOTAzIiwgXAotICAgICAgICAgICIwLjM2MjQwNCwgMC41NTE1MjYsIDEuNjIzMjcsIDIuNTY5NTgsIDMuODMxNiwgNi4zNTY1OCwgNy45Mjg4OCIsIFwKLSAgICAgICAgICAiMC4zNjI1ODcsIDAuNTUxMzc4LCAxLjYyMzI0LCAyLjU2OTc0LCAzLjgzMTY0LCA2LjM1NjU2LCA3LjkyODgzIiwgXAotICAgICAgICAgICIwLjM2NDQ3NSwgMC41NTE0MjYsIDEuNjIzMTksIDIuNTcwNjUsIDMuODMxMzYsIDYuMzU3MDYsIDcuOTI4OCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjcyMzMsIDAuNDA4MDMxLCAxLjE3NDgyLCAxLjg1MDI5LCAyLjc1MTgsIDQuNTUxNjgsIDUuNjc2NTgiLCBcCi0gICAgICAgICAgIjAuMjgxNTEsIDAuNDE3MzEyLCAxLjE4Mzg2LCAxLjg1OTY5LCAyLjc2MTA4LCA0LjU2MTAxLCA1LjY4NTk0IiwgXAotICAgICAgICAgICIwLjI5MzU0MywgMC40MjkzMTYsIDEuMTk2MDQsIDEuODcyMTQsIDIuNzcyOTEsIDQuNTczMTcsIDUuNjk4MjIiLCBcCi0gICAgICAgICAgIjAuMzA1Njg5LCAwLjQ0MTQ4MywgMS4yMDg0MSwgMS44ODM4MywgMi43ODUyNiwgNC41ODU0NywgNS43MTAzOSIsIFwKLSAgICAgICAgICAiMC4zMTc3NjMsIDAuNDUzNjMyLCAxLjIyMDU2LCAxLjg5NjU4LCAyLjc5NzQ3LCA0LjU5NzYzLCA1LjcyMjM5IiwgXAotICAgICAgICAgICIwLjMzNzE4NSwgMC40NzI5ODMsIDEuMjM5OTcsIDEuOTE1ODMsIDIuODE2NDcsIDQuNjE3MTMsIDUuNzQxODgiLCBcCi0gICAgICAgICAgIjAuMzU0Mjk0LCAwLjQ5MDA3OSwgMS4yNTcxNiwgMS45MzI2NywgMi44MzM3LCA0LjYzNDA3LCA1Ljc1OTE3Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjUwODAyMSwgMC43Njc5NjUsIDIuMjM5MTQsIDMuNTM1NTYsIDUuMjY1MzgsIDguNzI1NzgsIDEwLjg4NTIiLCBcCi0gICAgICAgICAgIjAuNTA4MjYzLCAwLjc2ODYxNCwgMi4yNDEwMSwgMy41MzU3MywgNS4yNjY1OCwgOC43MjYwOCwgMTAuODg1MiIsIFwKLSAgICAgICAgICAiMC41MDgzNjcsIDAuNzY4MTc3LCAyLjIzODUzLCAzLjUzNjYsIDUuMjY2NzYsIDguNzI2OTcsIDEwLjg4NTMiLCBcCi0gICAgICAgICAgIjAuNTA4MzYyLCAwLjc2ODY4NiwgMi4yNDA2OSwgMy41MzgzNSwgNS4yNjYzMiwgOC43MjQ2NywgMTAuODg0IiwgXAotICAgICAgICAgICIwLjUwODA3MSwgMC43Njc5ODksIDIuMjQwNjYsIDMuNTM3LCA1LjI2NjI0LCA4LjcyNzAzLCAxMC44ODUiLCBcCi0gICAgICAgICAgIjAuNTA4OTE0LCAwLjc2Nzk1NCwgMi4yMzg1OCwgMy41Mzg2NywgNS4yNjg5MiwgOC43MjcwNiwgMTAuODg1MSIsIFwKLSAgICAgICAgICAiMC41MTE3NywgMC43Njc4NTQsIDIuMjM5MTMsIDMuNTM2MDMsIDUuMjY5MTcsIDguNzI2ODYsIDEwLjg4NTMiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTk5NjA5LCAwLjI5NzM5NiwgMC44NTEwNzgsIDEuMzM5MzYsIDEuOTkwNDMsIDMuMjkyOTEsIDQuMTA3NTYiLCBcCi0gICAgICAgICAgIjAuMjEyMjU1LCAwLjMxMDA5OSwgMC44NjQxOTcsIDEuMzUzNiwgMi4wMDQwNCwgMy4zMDc2NSwgNC4xMjA5MyIsIFwKLSAgICAgICAgICAiMC4yMjY3MDUsIDAuMzI0NjM3LCAwLjg3ODg1NiwgMS4zNjc3LCAyLjAxOTY1LCAzLjMyMTg4LCA0LjEzNTc3IiwgXAotICAgICAgICAgICIwLjI0MDU2MSwgMC4zMzg1NjUsIDAuODkyODc1LCAxLjM4MjAzLCAyLjAzNDcsIDMuMzM1NzcsIDQuMTQ5OTQiLCBcCi0gICAgICAgICAgIjAuMjU0MDUxLCAwLjM1MjEwNSwgMC45MDYyMjEsIDEuMzk1MzMsIDIuMDQ3NzgsIDMuMzUwMTMsIDQuMTYzNDMiLCBcCi0gICAgICAgICAgIjAuMjc1NjEsIDAuMzczNzQxLCAwLjkyODU0NCwgMS40MTczLCAyLjA2OTczLCAzLjM3MTQzLCA0LjE4NTM3IiwgXAotICAgICAgICAgICIwLjI5NDMzLCAwLjM5MjU4NCwgMC45NDcxMDYsIDEuNDM1ODIsIDIuMDg3NTMsIDMuMzkxMDEsIDQuMjA0NTkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzQ4MDM1LCAwLjUzNTU0OSwgMS41OTgzMSwgMi41MzU3NSwgMy43NjMsIDYuMjU4MSwgNy44MDczMSIsIFwKLSAgICAgICAgICAiMC4zNDY4MTMsIDAuNTMzMzM3LCAxLjU5MjI0LCAyLjUyOTE0LCAzLjc4NjU0LCA2LjI1ODM4LCA3LjgwODM3IiwgXAotICAgICAgICAgICIwLjM0ODI0NiwgMC41MzQyMDYsIDEuNTkzODcsIDIuNTI2MzUsIDMuNzcxODgsIDYuMjYwNzMsIDcuODA3NjMiLCBcCi0gICAgICAgICAgIjAuMzQ3MzA1LCAwLjUzNjAzMiwgMS41OTIyNywgMi41MjUxNCwgMy43NzUxNSwgNi4yNjAyOCwgNy44MDc4MiIsIFwKLSAgICAgICAgICAiMC4zNDgwMywgMC41MzUzMiwgMS41OTgxOSwgMi41NDEwNSwgMy43NzQ1OCwgNi4yNTk5MiwgNy44MDc5MSIsIFwKLSAgICAgICAgICAiMC4zNDg2NjUsIDAuNTM1OTMxLCAxLjU5Mjc3LCAyLjUyNjM4LCAzLjc3NTYyLCA2LjI2MDM0LCA3LjgwNzYzIiwgXAotICAgICAgICAgICIwLjM1MDc4MiwgMC41MzYxMzcsIDEuNjAwNzMsIDIuNTM2NjEsIDMuNzg2NTIsIDYuMjU3OTcsIDcuODA3MSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg0MjEzLCAwLjEyNzQ3MSwgMC4zNzIyMDMsIDAuNTg4MDY5LCAwLjg3NTg3NiwgMS40NTE4LCAxLjgxMjE0IiwgXAotICAgICAgICAgICIwLjA5NTgzNiwgMC4xMzkwNzEsIDAuMzgzOTA4LCAwLjU5OTcxMSwgMC44ODc3MzgsIDEuNDYzOTEsIDEuODIzMjUiLCBcCi0gICAgICAgICAgIjAuMTEwMzYyLCAwLjE1MzUzNSwgMC4zOTgzMDYsIDAuNjE0MjUsIDAuOTAyMzg2LCAxLjQ3NzkzLCAxLjgzNzkiLCBcCi0gICAgICAgICAgIjAuMTI1NDIsIDAuMTY4MzQyLCAwLjQxMjg4NCwgMC42MjY4OTcsIDAuOTE0OTQsIDEuNDkwOTcsIDEuODUwMTciLCBcCi0gICAgICAgICAgIjAuMTQwMjEsIDAuMTgzMDk0LCAwLjQyNzIzNiwgMC42NDA4NzgsIDAuOTI4NDYzLCAxLjUwNDIsIDEuODY0MyIsIFwKLSAgICAgICAgICAiMC4xNjM5MTgsIDAuMjA3MTAzLCAwLjQ1MDY3MiwgMC42NjMxMDQsIDAuOTUwOTc0LCAxLjUyNjQ3LCAxLjg4NjY0IiwgXAotICAgICAgICAgICIwLjE4NTAxNSwgMC4yMjc3NzMsIDAuNDcxMzkyLCAwLjY4NjY3LCAwLjk3MDcwNSwgMS41NDY2NiwgMS45MDYiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTgxODc1LCAwLjI2ODgyMSwgMC43NjM4ODIsIDEuMjAxMzUsIDEuNzg1MTksIDIuOTUzMDUsIDMuNjgyNSIsIFwKLSAgICAgICAgICAiMC4xODE4NzQsIDAuMjY4ODE2LCAwLjc2Mzg5MSwgMS4yMDEzMywgMS43ODUyLCAyLjk1MzEsIDMuNjgyMzgiLCBcCi0gICAgICAgICAgIjAuMTgyMjUsIDAuMjY4ODA4LCAwLjc2Mzg3MSwgMS4yMDEzMywgMS43ODQ5MywgMi45NTIzNCwgMy42ODI0OSIsIFwKLSAgICAgICAgICAiMC4xODQ3ODQsIDAuMjY5MzUyLCAwLjc2Mzk4OSwgMS4yMDEzNSwgMS43ODQ5MiwgMi45NTIyOCwgMy42ODI0IiwgXAotICAgICAgICAgICIwLjE4OTA4MywgMC4yNzE2MTksIDAuNzYzODYsIDEuMjAxMzgsIDEuNzg0OCwgMi45NTI1NSwgMy42ODIzMiIsIFwKLSAgICAgICAgICAiMC4xOTg0OTUsIDAuMjc3NjQxLCAwLjc2MzgxMiwgMS4yMDEyNywgMS43ODUwMywgMi45NTI5OCwgMy42ODI0MyIsIFwKLSAgICAgICAgICAiMC4yMDc3OSwgMC4yODQ4ODEsIDAuNzYzODk5LCAxLjIwMTI3LCAxLjc4NDg3LCAyLjk1MjU2LCAzLjY4MjM5Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIwOTIwMiwgMC4zMDg4NTYsIDAuODcxMTQ2LCAxLjM2NjIsIDIuMDI3MjEsIDMuMzQ2NDUsIDQuMTcwNzciLCBcCi0gICAgICAgICAgIjAuMjE5NTY2LCAwLjMxOTMzMSwgMC44ODE2ODMsIDEuMzc2OTksIDIuMDM3MDMsIDMuMzU3MTgsIDQuMTgxNTkiLCBcCi0gICAgICAgICAgIjAuMjMyNzIsIDAuMzMyNTAyLCAwLjg5NTIsIDEuMzkwNzEsIDIuMDUwMjIsIDMuMzcwMywgNC4xOTQ5NCIsIFwKLSAgICAgICAgICAiMC4yNDU4MTUsIDAuMzQ1NjU2LCAwLjkwODIzMywgMS40MDM4OCwgMi4wNjQ3NSwgMy4zODM2MiwgNC4yMDgxIiwgXAotICAgICAgICAgICIwLjI1ODk2OSwgMC4zNTg4NDMsIDAuOTIxNDQ0LCAxLjQxNzA3LCAyLjA3NzMsIDMuMzk3MzksIDQuMjIxMjYiLCBcCi0gICAgICAgICAgIjAuMjgwMDksIDAuMzc5OTcyLCAwLjk0MjcwNywgMS40MzgyNCwgMi4wOTg4LCAzLjQxODMxLCA0LjI0MjgyIiwgXAotICAgICAgICAgICIwLjI5ODY5LCAwLjM5ODUyNywgMC45NjEyMTMsIDEuNDU2NSwgMi4xMTc1OSwgMy40MzcwMywgNC4yNjExNiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zNzE4ODEsIDAuNTYxMjI1LCAxLjYzNDM3LCAyLjU3OTY2LCAzLjg0MTE3LCA2LjM2Mzk3LCA3LjkzNzU1IiwgXAotICAgICAgICAgICIwLjM3MTkwOSwgMC41NjEyOTYsIDEuNjM0MjUsIDIuNTgwMzksIDMuODQwMjksIDYuMzY0NjUsIDcuOTM2MDUiLCBcCi0gICAgICAgICAgIjAuMzcyMTI3LCAwLjU2MTQ5OSwgMS42MzQsIDIuNTgwMDQsIDMuODQwNjgsIDYuMzY0MzcsIDcuOTM5NzIiLCBcCi0gICAgICAgICAgIjAuMzcxNzE3LCAwLjU2MTM5NCwgMS42MzM1NywgMi41NzkzOCwgMy44NDEzNywgNi4zNjM3NSwgNy45Mzk2IiwgXAotICAgICAgICAgICIwLjM3MTc4OCwgMC41NjEzMTksIDEuNjMzNzYsIDIuNTgwNTQsIDMuODQxNDgsIDYuMzYzNTksIDcuOTM5NjEiLCBcCi0gICAgICAgICAgIjAuMzczNzY3LCAwLjU2MTU5NCwgMS42MzM2LCAyLjU4MDQ5LCAzLjg0MDk2LCA2LjM2MTY2LCA3LjkzNjMiLCBcCi0gICAgICAgICAgIjAuMzc3ODk5LCAwLjU2MjMyMSwgMS42MzM3OSwgMi41Nzk2NiwgMy44NDExNCwgNi4zNjQ4NywgNy45Mzc1MyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI0MzksIDAuMDAyNDM5LCAwLjAwMjQzNywgMC4wMDI0MzcsIDAuMDAyNDMyLCAwLjAwMjQyNCwgMC4wMDI0MjIiLCBcCi0gICAgICAgICAgIjAuMDAyNDMxLCAwLjAwMjQzMSwgMC4wMDI0MjksIDAuMDAyNDI4LCAwLjAwMjQyNCwgMC4wMDI0MiwgMC4wMDI0MTUiLCBcCi0gICAgICAgICAgIjAuMDAyNDI4LCAwLjAwMjQyOCwgMC4wMDI0MjgsIDAuMDAyNDI2LCAwLjAwMjQyNCwgMC4wMDI0MiwgMC4wMDI0MTMiLCBcCi0gICAgICAgICAgIjAuMDAyNDI1LCAwLjAwMjQyNywgMC4wMDI0MjcsIDAuMDAyNDI2LCAwLjAwMjQyMywgMC4wMDI0MTgsIDAuMDAyNDEzIiwgXAotICAgICAgICAgICIwLjAwMjQyMywgMC4wMDI0MjUsIDAuMDAyNDI2LCAwLjAwMjQyNiwgMC4wMDI0MjMsIDAuMDAyNDE2LCAwLjAwMjQxMyIsIFwKLSAgICAgICAgICAiMC4wMDI0MTksIDAuMDAyNDIzLCAwLjAwMjQyNSwgMC4wMDI0MjQsIDAuMDAyNDIyLCAwLjAwMjQxOCwgMC4wMDI0MTEiLCBcCi0gICAgICAgICAgIjAuMDAyNDE5LCAwLjAwMjQyMiwgMC4wMDI0MjUsIDAuMDAyNDI0LCAwLjAwMjQyMiwgMC4wMDI0MTcsIDAuMDAyNDEyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwODc3LCAwLjAwMDg3NiwgMC4wMDA4NzYsIDAuMDAwODc1LCAwLjAwMDg3NSwgMC4wMDA4NzMsIDAuMDAwODcxIiwgXAotICAgICAgICAgICIwLjAwMDg1NywgMC4wMDA4NTgsIDAuMDAwODU4LCAwLjAwMDg1NywgMC4wMDA4NTYsIDAuMDAwODU0LCAwLjAwMDg1MyIsIFwKLSAgICAgICAgICAiMC4wMDA4NTEsIDAuMDAwODUxLCAwLjAwMDg1MiwgMC4wMDA4NTIsIDAuMDAwODUxLCAwLjAwMDg0OSwgMC4wMDA4NDgiLCBcCi0gICAgICAgICAgIjAuMDAwODQ3LCAwLjAwMDg0OSwgMC4wMDA4NSwgMC4wMDA4NSwgMC4wMDA4NDksIDAuMDAwODQ4LCAwLjAwMDg0NiIsIFwKLSAgICAgICAgICAiMC4wMDA4NDUsIDAuMDAwODQ2LCAwLjAwMDg0OCwgMC4wMDA4NDksIDAuMDAwODQ4LCAwLjAwMDg0NiwgMC4wMDA4NDUiLCBcCi0gICAgICAgICAgIjAuMDAwODQxLCAwLjAwMDg0MywgMC4wMDA4NDcsIDAuMDAwODQ3LCAwLjAwMDg0NiwgMC4wMDA4NDUsIDAuMDAwODQ0IiwgXAotICAgICAgICAgICIwLjAwMDgzOCwgMC4wMDA4NDEsIDAuMDAwODQ1LCAwLjAwMDg0NiwgMC4wMDA4NDYsIDAuMDAwODQ0LCAwLjAwMDg0NCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkExIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDIxOTYsIDAuMDAyMTk2LCAwLjAwMjE5NCwgMC4wMDIxOTEsIDAuMDAyMTkyLCAwLjAwMjE4NCwgMC4wMDIxNzkiLCBcCi0gICAgICAgICAgIjAuMDAyMTg4LCAwLjAwMjE4OCwgMC4wMDIxODYsIDAuMDAyMTg2LCAwLjAwMjE4MiwgMC4wMDIxNzksIDAuMDAyMTcxIiwgXAotICAgICAgICAgICIwLjAwMjE4NCwgMC4wMDIxODUsIDAuMDAyMTg0LCAwLjAwMjE4MywgMC4wMDIxOCwgMC4wMDIxNzYsIDAuMDAyMTciLCBcCi0gICAgICAgICAgIjAuMDAyMTgyLCAwLjAwMjE4MywgMC4wMDIxODQsIDAuMDAyMTgyLCAwLjAwMjE4LCAwLjAwMjE3NCwgMC4wMDIxNyIsIFwKLSAgICAgICAgICAiMC4wMDIxOCwgMC4wMDIxODEsIDAuMDAyMTgyLCAwLjAwMjE4MSwgMC4wMDIxNzksIDAuMDAyMTc0LCAwLjAwMjE2OSIsIFwKLSAgICAgICAgICAiMC4wMDIxNzcsIDAuMDAyMTc5LCAwLjAwMjE4MiwgMC4wMDIxODEsIDAuMDAyMTc4LCAwLjAwMjE3MiwgMC4wMDIxNjkiLCBcCi0gICAgICAgICAgIjAuMDAyMTc0LCAwLjAwMjE3NywgMC4wMDIxODEsIDAuMDAyMTgsIDAuMDAyMTc5LCAwLjAwMjE3MywgMC4wMDIxNjkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDA2MDcsIDAuMDAwNjA3LCAwLjAwMDYwNywgMC4wMDA2MDcsIDAuMDAwNjA2LCAwLjAwMDYwNSwgMC4wMDA2MDUiLCBcCi0gICAgICAgICAgIjAuMDAwNjA0LCAwLjAwMDYwNSwgMC4wMDA2MDcsIDAuMDAwNjA2LCAwLjAwMDYwNCwgMC4wMDA2MDUsIDAuMDAwNjA0IiwgXAotICAgICAgICAgICIwLjAwMDU5OSwgMC4wMDA2MDIsIDAuMDAwNjA1LCAwLjAwMDYwNSwgMC4wMDA2MDUsIDAuMDAwNjA1LCAwLjAwMDYwNCIsIFwKLSAgICAgICAgICAiMC4wMDA1OTQsIDAuMDAwNTk4LCAwLjAwMDYwMywgMC4wMDA2MDUsIDAuMDAwNjA0LCAwLjAwMDYwNCwgMC4wMDA2MDQiLCBcCi0gICAgICAgICAgIjAuMDAwNTksIDAuMDAwNTk1LCAwLjAwMDYwMiwgMC4wMDA2MDQsIDAuMDAwNjA0LCAwLjAwMDYwNCwgMC4wMDA2MDMiLCBcCi0gICAgICAgICAgIjAuMDAwNTgzLCAwLjAwMDU5LCAwLjAwMDYsIDAuMDAwNjAyLCAwLjAwMDYwMywgMC4wMDA2MDMsIDAuMDAwNjAzIiwgXAotICAgICAgICAgICIwLjAwMDU3OCwgMC4wMDA1ODYsIDAuMDAwNTk5LCAwLjAwMDYwMSwgMC4wMDA2MDIsIDAuMDAwNjAzLCAwLjAwMDYwMiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEyIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDE5NDIsIDAuMDAxOTQyLCAwLjAwMTk0LCAwLjAwMTkzOSwgMC4wMDE5MzYsIDAuMDAxOTMxLCAwLjAwMTkyNSIsIFwKLSAgICAgICAgICAiMC4wMDE5MzIsIDAuMDAxOTMzLCAwLjAwMTkzMiwgMC4wMDE5MzEsIDAuMDAxOTI4LCAwLjAwMTkyMywgMC4wMDE5MTgiLCBcCi0gICAgICAgICAgIjAuMDAxOTI3LCAwLjAwMTkyOCwgMC4wMDE5MywgMC4wMDE5MjksIDAuMDAxOTI2LCAwLjAwMTkyMSwgMC4wMDE5MTYiLCBcCi0gICAgICAgICAgIjAuMDAxOTIzLCAwLjAwMTkyNSwgMC4wMDE5MjgsIDAuMDAxOTI3LCAwLjAwMTkyNiwgMC4wMDE5MjEsIDAuMDAxOTE1IiwgXAotICAgICAgICAgICIwLjAwMTkxOSwgMC4wMDE5MjMsIDAuMDAxOTI2LCAwLjAwMTkyNiwgMC4wMDE5MjYsIDAuMDAxOTIsIDAuMDAxOTE1IiwgXAotICAgICAgICAgICIwLjAwMTkxNCwgMC4wMDE5MTksIDAuMDAxOTI1LCAwLjAwMTkyNSwgMC4wMDE5MjQsIDAuMDAxOTE5LCAwLjAwMTkxNCIsIFwKLSAgICAgICAgICAiMC4wMDE5MTIsIDAuMDAxOTE3LCAwLjAwMTkyNCwgMC4wMDE5MjQsIDAuMDAxOTIyLCAwLjAwMTkxNywgMC4wMDE5MTMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDAyOTMsIDAuMDAwMjk0LCAwLjAwMDI5NSwgMC4wMDAyOTUsIDAuMDAwMjk1LCAwLjAwMDI5NSwgMC4wMDAyOTUiLCBcCi0gICAgICAgICAgIjAuMDAwMzA0LCAwLjAwMDMwNywgMC4wMDAzMTIsIDAuMDAwMzEyLCAwLjAwMDMxMywgMC4wMDAzMTMsIDAuMDAwMzEzIiwgXAotICAgICAgICAgICIwLjAwMDMwMSwgMC4wMDAzMDYsIDAuMDAwMzE0LCAwLjAwMDMxNiwgMC4wMDAzMTcsIDAuMDAwMzE4LCAwLjAwMDMxOCIsIFwKLSAgICAgICAgICAiMC4wMDAyOTUsIDAuMDAwMzAzLCAwLjAwMDMxNCwgMC4wMDAzMTYsIDAuMDAwMzE4LCAwLjAwMDMxOSwgMC4wMDAzMTkiLCBcCi0gICAgICAgICAgIjAuMDAwMjg5LCAwLjAwMDI5OSwgMC4wMDAzMTMsIDAuMDAwMzE2LCAwLjAwMDMxOCwgMC4wMDAzMTksIDAuMDAwMzIiLCBcCi0gICAgICAgICAgIjAuMDAwMjc5LCAwLjAwMDI5MiwgMC4wMDAzMTEsIDAuMDAwMzE1LCAwLjAwMDMxNywgMC4wMDAzMTksIDAuMDAwMzIiLCBcCi0gICAgICAgICAgIjAuMDAwMjcyLCAwLjAwMDI4NiwgMC4wMDAzMDksIDAuMDAwMzEzLCAwLjAwMDMxNiwgMC4wMDAzMTksIDAuMDAwMzE5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTY1MSwgMC4wMDE2NTIsIDAuMDAxNjUyLCAwLjAwMTY1MiwgMC4wMDE2NTMsIDAuMDAxNjUzLCAwLjAwMTY1MyIsIFwKLSAgICAgICAgICAiMC4wMDE2NTIsIDAuMDAxNjU1LCAwLjAwMTY1OSwgMC4wMDE2NTksIDAuMDAxNjU5LCAwLjAwMTY2LCAwLjAwMTY2IiwgXAotICAgICAgICAgICIwLjAwMTY0NywgMC4wMDE2NTIsIDAuMDAxNjU5LCAwLjAwMTY1OSwgMC4wMDE2NiwgMC4wMDE2NjEsIDAuMDAxNjYxIiwgXAotICAgICAgICAgICIwLjAwMTY0MiwgMC4wMDE2NDksIDAuMDAxNjU3LCAwLjAwMTY2LCAwLjAwMTY2MSwgMC4wMDE2NjIsIDAuMDAxNjYyIiwgXAotICAgICAgICAgICIwLjAwMTYzNywgMC4wMDE2NDUsIDAuMDAxNjU2LCAwLjAwMTY1OSwgMC4wMDE2NiwgMC4wMDE2NjEsIDAuMDAxNjYyIiwgXAotICAgICAgICAgICIwLjAwMTYzMSwgMC4wMDE2NCwgMC4wMDE2NTUsIDAuMDAxNjU4LCAwLjAwMTY2LCAwLjAwMTY2MSwgMC4wMDE2NjEiLCBcCi0gICAgICAgICAgIjAuMDAxNjI3LCAwLjAwMTYzNywgMC4wMDE2NTMsIDAuMDAxNjU2LCAwLjAwMTY1OCwgMC4wMDE2NjEsIDAuMDAxNjYxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwODkzLCAwLjAwMDg5NCwgMC4wMDA4OTQsIDAuMDAwODkxLCAwLjAwMDg5MywgMC4wMDA4OTEsIDAuMDAwODkiLCBcCi0gICAgICAgICAgIjAuMDAwODg0LCAwLjAwMDg4NywgMC4wMDA4OTIsIDAuMDAwODkyLCAwLjAwMDg5MSwgMC4wMDA4OTEsIDAuMDAwODg5IiwgXAotICAgICAgICAgICIwLjAwMDg3NSwgMC4wMDA4ODEsIDAuMDAwODg5LCAwLjAwMDg5MSwgMC4wMDA4OTEsIDAuMDAwODksIDAuMDAwODg4IiwgXAotICAgICAgICAgICIwLjAwMDg2NywgMC4wMDA4NzUsIDAuMDAwODg3LCAwLjAwMDg4OSwgMC4wMDA4ODksIDAuMDAwODg5LCAwLjAwMDg4OCIsIFwKLSAgICAgICAgICAiMC4wMDA4NjEsIDAuMDAwODcsIDAuMDAwODg0LCAwLjAwMDg4NywgMC4wMDA4ODgsIDAuMDAwODg4LCAwLjAwMDg4OCIsIFwKLSAgICAgICAgICAiMC4wMDA4NTMsIDAuMDAwODYzLCAwLjAwMDg4LCAwLjAwMDg4NSwgMC4wMDA4ODcsIDAuMDAwODg3LCAwLjAwMDg4NyIsIFwKLSAgICAgICAgICAiMC4wMDA4NDgsIDAuMDAwODU4LCAwLjAwMDg3OCwgMC4wMDA4ODIsIDAuMDAwODg1LCAwLjAwMDg4NiwgMC4wMDA4ODYiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBPQUkzMlgxICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKE9BSTMyWDEpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4xMTkxMjU7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA4MTMwOTY7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwODA5MTg4OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDgxMzA5NjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAzMDYsIDAuMDAwMzA2LCAwLjAwMDMwNiwgMC4wMDAzMDYsIDAuMDAwMzA2LCAwLjAwMDMwNiwgMC4wMDAzMDYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAzMDcsIDAuMDAwMzA3LCAwLjAwMDMwNywgMC4wMDAzMDcsIDAuMDAwMzA3LCAwLjAwMDMwNywgMC4wMDAzMDciKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEExKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA4MjMxMTI7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwODE5OTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA4MjMxMTI7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzA2LCAwLjAwMDMwNiwgMC4wMDAzMDYsIDAuMDAwMzA2LCAwLjAwMDMwNiwgMC4wMDAzMDYsIDAuMDAwMzA2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzA3LCAwLjAwMDMwNywgMC4wMDAzMDcsIDAuMDAwMzA3LCAwLjAwMDMwNywgMC4wMDAzMDcsIDAuMDAwMzA3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihBMikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwODM0ODk0OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDgzNDg5NDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA4MzE4NDQ7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzA2LCAwLjAwMDMwNiwgMC4wMDAzMDYsIDAuMDAwMzA2LCAwLjAwMDMwNiwgMC4wMDAzMDYsIDAuMDAwMzA2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzA3LCAwLjAwMDMwNywgMC4wMDAzMDcsIDAuMDAwMzA3LCAwLjAwMDMwNywgMC4wMDAzMDcsIDAuMDAwMzA3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwODU2NDQ0OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDg1MDE2MjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA4NTY0NDQ7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNTIzLCAwLjAwMDUyMywgMC4wMDA1MjMsIDAuMDAwNTIzLCAwLjAwMDUyMywgMC4wMDA1MjMsIDAuMDAwNTIzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzQ3LCAwLjAwMDM0OCwgMC4wMDAzNDgsIDAuMDAwMzQ4LCAwLjAwMDM0OCwgMC4wMDAzNDgsIDAuMDAwMzQ4Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCMSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwODU5MDMzOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDg1ODgzMjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA4NTkwMzM7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNTIzLCAwLjAwMDUyMywgMC4wMDA1MjIsIDAuMDAwNTIzLCAwLjAwMDUyMywgMC4wMDA1MjIsIDAuMDAwNTIzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzQ3LCAwLjAwMDM0OCwgMC4wMDAzNDgsIDAuMDAwMzQ4LCAwLjAwMDM0OCwgMC4wMDAzNDgsIDAuMDAwMzQ4Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMDQ4MTg1OwotICAgIGZ1bmN0aW9uIDogIighKChCMCtCMSkgKChBMCtBMSkrQTIpKSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMTA4OTksIDAuNDQ2ODAzLCAxLjIxNDc0LCAxLjg5MDc3LCAyLjc5Mjg4LCA0LjU5NjIzLCA1LjcyMzQ2IiwgXAotICAgICAgICAgICIwLjMyMjI1NSwgMC40NTgyMjUsIDEuMjI1ODEsIDEuOTAyODMsIDIuODA0NDUsIDQuNjA3NTUsIDUuNzM0NzciLCBcCi0gICAgICAgICAgIjAuMzM1MDU1LCAwLjQ3MTA2OSwgMS4yMzg5OCwgMS45MTUxMywgMi44MTY4MSwgNC42MjA1MSwgNS43NDc2NSIsIFwKLSAgICAgICAgICAiMC4zNDcwNTEsIDAuNDgzMTAyLCAxLjI1MDcxLCAxLjkyNzcxLCAyLjgyOTM2LCA0LjYzMjM5LCA1Ljc1OTYyIiwgXAotICAgICAgICAgICIwLjM1ODI5NSwgMC40OTQzOTUsIDEuMjYyMDUsIDEuOTM5MzksIDIuODQwMjIsIDQuNjQzODIsIDUuNzcxMDUiLCBcCi0gICAgICAgICAgIjAuMzc1NjY0LCAwLjUxMTc3OCwgMS4yNzk2OSwgMS45NTY0MywgMi44NTgxNywgNC42NjEyNiwgNS43ODg1MSIsIFwKLSAgICAgICAgICAiMC4zOTA1NzEsIDAuNTI2Njk1LCAxLjI5NDYsIDEuOTcxMjEsIDIuODcyNiwgNC42NzYyNywgNS44MDM0Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjU1NDYyMywgMC44MTQ0OCwgMi4yODU1OCwgMy41ODM4MiwgNS4zMTQ0OSwgOC43NzQ2LCAxMC45MzY5IiwgXAotICAgICAgICAgICIwLjU1NDYyNSwgMC44MTQ0NzcsIDIuMjg1NzgsIDMuNTgzODIsIDUuMzEzNTgsIDguNzc0NTcsIDEwLjkzNzIiLCBcCi0gICAgICAgICAgIjAuNTU0NjM0LCAwLjgxNDQzMywgMi4yODU4NiwgMy41ODM3OSwgNS4zMTQ3NCwgOC43NzU0MywgMTAuOTM3MiIsIFwKLSAgICAgICAgICAiMC41NTQ2ODUsIDAuODE0MzYyLCAyLjI4NTMyLCAzLjU4Mzg0LCA1LjMxNDg0LCA4Ljc3NTMzLCAxMC45Mzc0IiwgXAotICAgICAgICAgICIwLjU1NDY3LCAwLjgxNDM2NCwgMi4yODU4MSwgMy41ODQxMSwgNS4zMTM5MSwgOC43NzQ4NiwgMTAuOTM3MiIsIFwKLSAgICAgICAgICAiMC41NTQ2MTksIDAuODE0NDA5LCAyLjI4NTQ1LCAzLjU4Mzk1LCA1LjMxNDY5LCA4Ljc3NDEzLCAxMC45MzciLCBcCi0gICAgICAgICAgIjAuNTU1MjI4LCAwLjgxNDQ3LCAyLjI4NTc1LCAzLjU4Mzk2LCA1LjMxNDc0LCA4Ljc3NTE1LCAxMC45MzcyIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI0MzExOCwgMC4zNDMwMDgsIDAuOTA2MTcyLCAxLjQwMTg1LCAyLjA2MjE1LCAzLjM4MTcsIDQuMjA2NDMiLCBcCi0gICAgICAgICAgIjAuMjU0ODA3LCAwLjM1NDc0NSwgMC45MTc1OTIsIDEuNDEzNDksIDIuMDc0MDksIDMuMzkzMjUsIDQuMjE4MDQiLCBcCi0gICAgICAgICAgIjAuMjY5NjI4LCAwLjM2OTU3MSwgMC45MzI2NSwgMS40Mjc5NiwgMi4wODg5NywgMy40MDgyOCwgNC4yMzI4NSIsIFwKLSAgICAgICAgICAiMC4yODM2NzcsIDAuMzgzNjg0LCAwLjk0NjY0OSwgMS40NDIzMiwgMi4xMDIyNCwgMy40MjI0MiwgNC4yNDcwMiIsIFwKLSAgICAgICAgICAiMC4yOTc2MDIsIDAuMzk3NTkxLCAwLjk2MDYyNiwgMS40NTY0NSwgMi4xMTY2OSwgMy40MzY3OCwgNC4yNjA4NyIsIFwKLSAgICAgICAgICAiMC4zMTkzMTYsIDAuNDE5MzY1LCAwLjk4MjIwNSwgMS40Nzc2NywgMi4xMzg5LCAzLjQ1Nzk3LCA0LjI4MyIsIFwKLSAgICAgICAgICAiMC4zMzgyLCAwLjQzODIwNSwgMS4wMDE0MSwgMS40OTY2MSwgMi4xNTc4MywgMy40NzcwOCwgNC4zMDE4NyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zOTUwNDEsIDAuNTg0NTkzLCAxLjY1NzY4LCAyLjYwMzk5LCAzLjg2NjQxLCA2LjM4NzIzLCA3Ljk2NTQzIiwgXAotICAgICAgICAgICIwLjM5NDY2MiwgMC41ODQ3OTgsIDEuNjU3OTUsIDIuNjAzOTgsIDMuODY1OTYsIDYuMzg3ODQsIDcuOTY1MjYiLCBcCi0gICAgICAgICAgIjAuMzk1MDI4LCAwLjU4NDgyNiwgMS42NTg0LCAyLjYwNDczLCAzLjg2NTkyLCA2LjM4OTE3LCA3Ljk2NTI1IiwgXAotICAgICAgICAgICIwLjM5NDc3MSwgMC41ODQzODgsIDEuNjU4MDcsIDIuNjAzODIsIDMuODY2MjgsIDYuMzg5MTQsIDcuOTY1MjkiLCBcCi0gICAgICAgICAgIjAuMzk0OTU2LCAwLjU4NDM3NywgMS42NTgzNCwgMi42MDQyMSwgMy44NjQ5NCwgNi4zODgzMywgNy45NjQ5NCIsIFwKLSAgICAgICAgICAiMC4zOTQ4OTMsIDAuNTg0MjcyLCAxLjY1NzIsIDIuNjAzODQsIDMuODY1NjcsIDYuMzg3NzgsIDcuOTY1NDYiLCBcCi0gICAgICAgICAgIjAuMzk1NTc0LCAwLjU4NDU4MSwgMS42NTgzMSwgMi42MDM4NiwgMy44NjU2OSwgNi4zODc2OSwgNy45NjUzNyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzA0NjkzLCAwLjQ0MDY0NiwgMS4yMDgyMSwgMS44ODQ5NywgMi43ODY4OCwgNC41OTAwMSwgNS43MTcyNyIsIFwKLSAgICAgICAgICAiMC4zMTUxMzEsIDAuNDUxMDU4LCAxLjIxODU5LCAxLjg5NTU5LCAyLjc5NzA4LCA0LjYwMDIzLCA1LjcyNzY0IiwgXAotICAgICAgICAgICIwLjMyNzcxMSwgMC40NjM3MDQsIDEuMjMxMzMsIDEuOTA3NywgMi44MSwgNC42MTMwNCwgNS43NDAyNiIsIFwKLSAgICAgICAgICAiMC4zMzk4OTYsIDAuNDc1OTM2LCAxLjI0MzU3LCAxLjkyMDQ1LCAyLjgyMjEsIDQuNjI1MjksIDUuNzUyNTciLCBcCi0gICAgICAgICAgIjAuMzUxNzc2LCAwLjQ4NzgyMywgMS4yNTU1MywgMS45MzI3NSwgMi44MzM2LCA0LjYzNzI5LCA1Ljc2NDQ4IiwgXAotICAgICAgICAgICIwLjM3MDY3MiwgMC41MDY4MjksIDEuMjc0NjgsIDEuOTUxNDgsIDIuODUzMzEsIDQuNjU2MzIsIDUuNzgzNTciLCBcCi0gICAgICAgICAgIjAuMzg3MjAxLCAwLjUyMzI5LCAxLjI5MTI2LCAxLjk2NzU5LCAyLjg2OTY3LCA0LjY3Mjk1LCA1LjgwMDIzIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjU1NDY0MSwgMC44MTQ0OTcsIDIuMjg1NzksIDMuNTg0MDMsIDUuMzE0NTksIDguNzczOSwgMTAuOTM3MSIsIFwKLSAgICAgICAgICAiMC41NTQ2MjgsIDAuODE0NDY1LCAyLjI4NTQzLCAzLjU4Mzc2LCA1LjMxNDQ1LCA4Ljc3NDI3LCAxMC45MzY3IiwgXAotICAgICAgICAgICIwLjU1NDU4LCAwLjgxNDQwNywgMi4yODU1OCwgMy41ODM3OSwgNS4zMTM0MSwgOC43NzU1MywgMTAuOTM3MiIsIFwKLSAgICAgICAgICAiMC41NTQ1NzcsIDAuODE0NDIsIDIuMjg1NTEsIDMuNTg0MDEsIDUuMzE0NjMsIDguNzc0NDQsIDEwLjkzNjkiLCBcCi0gICAgICAgICAgIjAuNTU0NjE3LCAwLjgxNDI4NSwgMi4yODU3NiwgMy41ODQwMywgNS4zMTQ3MywgOC43NzUxNiwgMTAuOTM2NiIsIFwKLSAgICAgICAgICAiMC41NTQ3NjQsIDAuODE0MzksIDIuMjg1NzQsIDMuNTgzODksIDUuMzE0NzIsIDguNzc0MDYsIDEwLjkzNzQiLCBcCi0gICAgICAgICAgIjAuNTU1NzQzLCAwLjgxNDM5NywgMi4yODU1MiwgMy41ODM1OSwgNS4zMTQ0NiwgOC43NzQ4NywgMTAuOTM3MSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMzM3NzgsIDAuMzMzMTk2LCAwLjg5NTM3MywgMS4zOTEwNywgMi4wNTA5MiwgMy4zNzAyNiwgNC4xOTUwNyIsIFwKLSAgICAgICAgICAiMC4yNDU4MzMsIDAuMzQ1Mzc3LCAwLjkwNzU4NiwgMS40MDMwNCwgMi4wNjM0MSwgMy4zODI0NCwgNC4yMDcwOSIsIFwKLSAgICAgICAgICAiMC4yNjA3MiwgMC4zNjAyNDYsIDAuOTIyMTM2LCAxLjQxNzgyLCAyLjA3ODEsIDMuMzk3NTQsIDQuMjIxOTYiLCBcCi0gICAgICAgICAgIjAuMjc0ODc2LCAwLjM3NDQ0MywgMC45MzY1NzYsIDEuNDMyMiwgMi4wOTMzNywgMy40MTE3MywgNC4yMzY1MiIsIFwKLSAgICAgICAgICAiMC4yODg2NTEsIDAuMzg4MjU1LCAwLjk1MDc0OSwgMS40NDYyMSwgMi4xMDY1MSwgMy40MjYxNCwgNC4yNTAwOSIsIFwKLSAgICAgICAgICAiMC4zMTAyODMsIDAuNDA5OTc0LCAwLjk3MjE2NSwgMS40Njc5MSwgMi4xMjgyMywgMy40NDc1OSwgNC4yNzE5NyIsIFwKLSAgICAgICAgICAiMC4zMjkwNTMsIDAuNDI4ODEsIDAuOTkxMjEzLCAxLjQ4Njk1LCAyLjE0NzA2LCAzLjQ2NjkzLCA0LjI5MDkyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjM4NDU1MSwgMC41NzQ0NiwgMS42NDY2NCwgMi41OTM2NSwgMy44NTQ5OSwgNi4zODE1MywgNy45NTEzMyIsIFwKLSAgICAgICAgICAiMC4zODQ2NTUsIDAuNTczODY3LCAxLjY0NjYxLCAyLjU5MzM3LCAzLjg1NTAyLCA2LjM4MTI5LCA3Ljk1MzcyIiwgXAotICAgICAgICAgICIwLjM4NDU0OCwgMC41NzQwODgsIDEuNjQ2NzEsIDIuNTkzMTYsIDMuODU0ODMsIDYuMzgxMDIsIDcuOTUzNzciLCBcCi0gICAgICAgICAgIjAuMzg0NzA1LCAwLjU3MzkwNSwgMS42NDcyMywgMi41OTMzLCAzLjg1NTcsIDYuMzgwOSwgNy45NTM5NCIsIFwKLSAgICAgICAgICAiMC4zODQ2OCwgMC41NzM4NjIsIDEuNjQ2OTUsIDIuNTkzNDMsIDMuODU1MzksIDYuMzc5NDcsIDcuOTUzNzQiLCBcCi0gICAgICAgICAgIjAuMzg0NzUyLCAwLjU3MzkxNywgMS42NDY4MywgMi41OTMyMSwgMy44NTUxNCwgNi4zNzc1LCA3Ljk1MzciLCBcCi0gICAgICAgICAgIjAuMzg1NjYyLCAwLjU3Mzk1MiwgMS42NDY1OSwgMi41OTMzNywgMy44NTQ5LCA2LjM4MTQxLCA3Ljk1MzcyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEyIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yODg0MzEsIDAuNDI0MjY4LCAxLjE5MjI3LCAxLjg2ODM2LCAyLjc3MDA5LCA0LjU3Mzc5LCA1LjcwMDkyIiwgXAotICAgICAgICAgICIwLjI5Nzc5OSwgMC40MzM3OTUsIDEuMjAxMzcsIDEuODc4NjIsIDIuNzc5ODksIDQuNTgzMTgsIDUuNzEwMzkiLCBcCi0gICAgICAgICAgIjAuMzA5ODYxLCAwLjQ0NTgzMSwgMS4yMTM4NSwgMS44OTA3MywgMi43OTE5OCwgNC41OTUzMywgNS43MjIzOSIsIFwKLSAgICAgICAgICAiMC4zMjE5OTQsIDAuNDU4MTMyLCAxLjIyNTg2LCAxLjkwMjk3LCAyLjgwNDU4LCA0LjYwNzU2LCA1LjczNDciLCBcCi0gICAgICAgICAgIjAuMzM0MDM2LCAwLjQ3MDE4OSwgMS4yMzgwMSwgMS45MTUyNywgMi44MTY2OSwgNC42MTk1MiwgNS43NDY5NiIsIFwKLSAgICAgICAgICAiMC4zNTM0MjQsIDAuNDg5NTgsIDEuMjU3NTgsIDEuOTM0MzYsIDIuODM2MSwgNC42MzkyMSwgNS43NjY0NyIsIFwKLSAgICAgICAgICAiMC4zNzA3MTEsIDAuNTA1ODkxLCAxLjI3NDk3LCAxLjk1MjExLCAyLjg1MzE1LCA0LjY1NjM1LCA1Ljc4MzYzIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjU1NDY5MiwgMC44MTQyNzksIDIuMjg1ODUsIDMuNTgzODQsIDUuMzEzNzcsIDguNzc1MDksIDEwLjkzNzMiLCBcCi0gICAgICAgICAgIjAuNTU0NzAzLCAwLjgxNDQ4OSwgMi4yODU3MywgMy41ODM2NSwgNS4zMTM1MSwgOC43NzM5NSwgMTAuOTM2OCIsIFwKLSAgICAgICAgICAiMC41NTQ2MDMsIDAuODE0Mzc4LCAyLjI4NTcyLCAzLjU4MzY0LCA1LjMxNDQ5LCA4Ljc3NTIyLCAxMC45MzY2IiwgXAotICAgICAgICAgICIwLjU1NDY3NiwgMC44MTQ0NDksIDIuMjg1NzQsIDMuNTgzOTgsIDUuMzEzMTcsIDguNzc0ODYsIDEwLjkzNzIiLCBcCi0gICAgICAgICAgIjAuNTU0NTc5LCAwLjgxNDM5OSwgMi4yODU3MywgMy41ODM4OSwgNS4zMTQ2OCwgOC43NzUwOCwgMTAuOTM3MyIsIFwKLSAgICAgICAgICAiMC41NTQ2NjcsIDAuODE0MzEyLCAyLjI4NTc4LCAzLjU4MzczLCA1LjMxNDY2LCA4Ljc3NTAzLCAxMC45MzczIiwgXAotICAgICAgICAgICIwLjU1NzEyNiwgMC44MTQyMDMsIDIuMjg1NzgsIDMuNTgzNzgsIDUuMzE0MjIsIDguNzc0NjYsIDEwLjkzNyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMjE4MjIsIDAuMzIxMDAzLCAwLjg4MjY5MSwgMS4zNzgxMywgMi4wMzc5NSwgMy4zNTc0MiwgNC4xODE4NiIsIFwKLSAgICAgICAgICAiMC4yMzQzNTgsIDAuMzMzNjA3LCAwLjg5NTMzMywgMS4zOTA4NSwgMi4wNTA4NywgMy4zNzA1MSwgNC4xOTQ1NyIsIFwKLSAgICAgICAgICAiMC4yNDkyMywgMC4zNDg1OTgsIDAuOTEwMzg3LCAxLjQwNTU1LCAyLjA2NjMsIDMuMzg1MDIsIDQuMjA5NTMiLCBcCi0gICAgICAgICAgIjAuMjYzMzEsIDAuMzYyNzQ5LCAwLjkyNDkxMywgMS40MTk3NSwgMi4wNzk5OSwgMy4zOTkzOSwgNC4yMjM2NSIsIFwKLSAgICAgICAgICAiMC4yNzcwMzcsIDAuMzc2NTU5LCAwLjkzODIwMiwgMS40MzM5MywgMi4wOTM4OCwgMy40MTM3MSwgNC4yMzc3MSIsIFwKLSAgICAgICAgICAiMC4yOTg4MiwgMC4zOTgzOTMsIDAuOTYwNTMsIDEuNDU1NzQsIDIuMTE2NjEsIDMuNDM1MDMsIDQuMjU5NjQiLCBcCi0gICAgICAgICAgIjAuMzE3NDUyLCAwLjQxNzEwOCwgMC45NzkzMzUsIDEuNDc0MjcsIDIuMTM1MDEsIDMuNDU0MTgsIDQuMjc4NTEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzcyMjk4LCAwLjU2MTc5NCwgMS42MzM3LCAyLjU4MDAyLCAzLjg0MDksIDYuMzY3NSwgNy45MzkzOCIsIFwKLSAgICAgICAgICAiMC4zNzIyODksIDAuNTYxNTk4LCAxLjYzMzU2LCAyLjU3OTkzLCAzLjg0MTI4LCA2LjM2NTI0LCA3LjkzNjA4IiwgXAotICAgICAgICAgICIwLjM3MjE3MSwgMC41NjEyOTYsIDEuNjMzNTcsIDIuNTc4OSwgMy44NDE1LCA2LjM2NjY3LCA3LjkzOTEzIiwgXAotICAgICAgICAgICIwLjM3MTc5OCwgMC41NjEyOTMsIDEuNjMzODUsIDIuNTc5NDMsIDMuODQwOSwgNi4zNjM1NSwgNy45Mzg5OSIsIFwKLSAgICAgICAgICAiMC4zNzE3OTgsIDAuNTYxMTUyLCAxLjYzMzMxLCAyLjU4MDU2LCAzLjg0MDg2LCA2LjM2NzA5LCA3LjkzNjQ0IiwgXAotICAgICAgICAgICIwLjM3MjExMywgMC41NjEyNTIsIDEuNjMzNywgMi41Nzk2OSwgMy44NDE1NywgNi4zNjY3NCwgNy45MzkxMiIsIFwKLSAgICAgICAgICAiMC4zNzMzMTcsIDAuNTYxMzQ5LCAxLjYzNDExLCAyLjU4MTUyLCAzLjg0MTUyLCA2LjM2Mjk4LCA3LjkzOTAyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNzkyOTMsIDAuMjY4MDMsIDAuNzY5MTM2LCAxLjIxMTQ0LCAxLjgwMTMzLCAyLjk4MTEsIDMuNzE4MTIiLCBcCi0gICAgICAgICAgIjAuMTkxMDI5LCAwLjI3OTc2MywgMC43ODExMDEsIDEuMjIzNDIsIDEuODEzMzMsIDIuOTkyOTQsIDMuNzI5NzIiLCBcCi0gICAgICAgICAgIjAuMjA0MTkzLCAwLjI5MjcxMiwgMC43OTQzMTUsIDEuMjM2NjIsIDEuODI2MjEsIDMuMDA1NjksIDMuNzQzMjYiLCBcCi0gICAgICAgICAgIjAuMjE2NzAyLCAwLjMwNTMyOSwgMC44MDY3OSwgMS4yNDkyOSwgMS44MzkwMiwgMy4wMTg2OSwgMy43NTU4OSIsIFwKLSAgICAgICAgICAiMC4yMjkxNzIsIDAuMzE3NzE1LCAwLjgxOTMxNSwgMS4yNjE3NiwgMS44NTE0OCwgMy4wMzEwNSwgMy43Njg0NCIsIFwKLSAgICAgICAgICAiMC4yNDg3NjYsIDAuMzM3NDQxLCAwLjgzOTIyNSwgMS4yODE1MSwgMS44NzEyNywgMy4wNTA4NywgMy43ODgyNSIsIFwKLSAgICAgICAgICAiMC4yNjYwMzEsIDAuMzU0NjcsIDAuODU2NTk5LCAxLjI5OSwgMS44ODg3NiwgMy4wNjg0NywgMy44MDU3NiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zNzAwNTEsIDAuNTQxNjczLCAxLjUxNzM4LCAyLjM3OTM2LCAzLjUyOTc3LCA1LjgzMTE3LCA3LjI2NzgxIiwgXAotICAgICAgICAgICIwLjM3MDAxMSwgMC41NDE2NDIsIDEuNTE3NDcsIDIuMzc5NDgsIDMuNTI5NTQsIDUuODMxLCA3LjI2NzY0IiwgXAotICAgICAgICAgICIwLjM3MDA1OSwgMC41NDE2MTQsIDEuNTE3NDcsIDIuMzc5NDQsIDMuNTI5ODQsIDUuODMxMjUsIDcuMjY5NjkiLCBcCi0gICAgICAgICAgIjAuMzcwMDE1LCAwLjU0MTYxNCwgMS41MTc0OSwgMi4zNzk0NiwgMy41MjkyNywgNS44MzAyOSwgNy4yNjk3MyIsIFwKLSAgICAgICAgICAiMC4zNzAzNjQsIDAuNTQxNTU5LCAxLjUxNzQzLCAyLjM3OTc0LCAzLjUyOTksIDUuODMwNTMsIDcuMjY5MjIiLCBcCi0gICAgICAgICAgIjAuMzcyNjk1LCAwLjU0MTk1LCAxLjUxNzQ3LCAyLjM3OTc0LCAzLjUyOTI5LCA1LjgzMTA0LCA3LjI2OTYiLCBcCi0gICAgICAgICAgIjAuMzc2MSwgMC41NDM2MTQsIDEuNTE3NDgsIDIuMzc5MzcsIDMuNTI5MjgsIDUuODMxMDMsIDcuMjY5NjMiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjI1NjY1LCAwLjMyNTYyNSwgMC44ODg1NjksIDEuMzgzOTQsIDIuMDQ0ODYsIDMuMzY0MzEsIDQuMTg4ODEiLCBcCi0gICAgICAgICAgIjAuMjM1OTQ2LCAwLjMzNTkzNSwgMC44OTg3NTcsIDEuMzk0MjQsIDIuMDU0MzcsIDMuMzc0NzUsIDQuMTk5MzkiLCBcCi0gICAgICAgICAgIjAuMjQ5MTIzLCAwLjM0OTEwNCwgMC45MTIxOSwgMS40MDc5NCwgMi4wNjkxNywgMy4zODgzMSwgNC4yMTMxOCIsIFwKLSAgICAgICAgICAiMC4yNjIzNTcsIDAuMzYyNDA5LCAwLjkyNTQwNiwgMS40MjA5MiwgMi4wODEwMiwgMy40MDE5OCwgNC4yMjYxOSIsIFwKLSAgICAgICAgICAiMC4yNzUzMDIsIDAuMzc1NjMxLCAwLjkzODgsIDEuNDM0MjgsIDIuMDk1NjksIDMuNDE1LCA0LjIzOTU3IiwgXAotICAgICAgICAgICIwLjI5NjY3OCwgMC4zOTY1ODEsIDAuOTYwNDMzLCAxLjQ1NTY4LCAyLjExNTk5LCAzLjQzNjExLCA0LjI2MDg2IiwgXAotICAgICAgICAgICIwLjMxNTI2MSwgMC40MTUyNDUsIDAuOTc4NDIzLCAxLjQ3MzY2LCAyLjEzMzk2LCAzLjQ1NDA3LCA0LjI3ODgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzk0NjU0LCAwLjU4NDkwNCwgMS42NTgzNywgMi42MDM5OCwgMy44NjUxNiwgNi4zODkyLCA3Ljk2NTMzIiwgXAotICAgICAgICAgICIwLjM5NDk3MSwgMC41ODQzMDksIDEuNjU3NzgsIDIuNjA0MTUsIDMuODY1NDEsIDYuMzg3MTEsIDcuOTYxNzIiLCBcCi0gICAgICAgICAgIjAuMzk0OTk0LCAwLjU4NDMyMSwgMS42NTc2NywgMi42MDQ2MiwgMy44NjU3NiwgNi4zODkwNiwgNy45NjU0NyIsIFwKLSAgICAgICAgICAiMC4zOTQ4MDQsIDAuNTg0MjA2LCAxLjY1NzIsIDIuNjA0MTIsIDMuODY1MTMsIDYuMzg4NzIsIDcuOTY0NDQiLCBcCi0gICAgICAgICAgIjAuMzk0MjE1LCAwLjU4NDU4LCAxLjY1NzIyLCAyLjYwNDU1LCAzLjg2NTc2LCA2LjM4NzcyLCA3Ljk2NTM5IiwgXAotICAgICAgICAgICIwLjM5NTU3OCwgMC41ODQyNjUsIDEuNjU4MjUsIDIuNjAzMjIsIDMuODY1MzIsIDYuMzg3ODUsIDcuOTY1MjYiLCBcCi0gICAgICAgICAgIjAuMzk4OTk0LCAwLjU4NDk5MSwgMS42NTc2MywgMi42MDM5NiwgMy44NjU0NCwgNi4zODc4NCwgNy45NjUyNCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTcyNzU2LCAwLjI2MTMyMiwgMC43NjI4MjcsIDEuMjA1MDYsIDEuNzk0OCwgMi45NzQ1NCwgMy43MTE3MyIsIFwKLSAgICAgICAgICAiMC4xODMxNDgsIDAuMjcxNzU0LCAwLjc3MzI2MywgMS4yMTU1NywgMS44MDU0OCwgMi45ODQ4OCwgMy43MjIyMiIsIFwKLSAgICAgICAgICAiMC4xOTYyMDMsIDAuMjg0ODE4LCAwLjc4NjIyNiwgMS4yMjg1NiwgMS44MTg2MywgMi45OTgyLCAzLjczNTM0IiwgXAotICAgICAgICAgICIwLjIwOTExNywgMC4yOTc4NTQsIDAuNzk5MjEsIDEuMjQxNjgsIDEuODMxMzgsIDMuMDExLCAzLjc0ODM5IiwgXAotICAgICAgICAgICIwLjIyMjE4MSwgMC4zMTA5NTIsIDAuODEyNDM2LCAxLjI1NDkyLCAxLjg0NDY2LCAzLjAyNDEyLCAzLjc2MTUxIiwgXAotICAgICAgICAgICIwLjI0MzExMywgMC4zMzE4MTcsIDAuODMzMzgxLCAxLjI3NTkzLCAxLjg2NTY4LCAzLjA0NTI4LCAzLjc4MjUxIiwgXAotICAgICAgICAgICIwLjI2MTU1LCAwLjM1MDIxLCAwLjg1MTc0NiwgMS4yOTQzNSwgMS44ODM5MiwgMy4wNjM1OSwgMy44MDA4NiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zNzAwMTksIDAuNTQxNjQzLCAxLjUxNzQzLCAyLjM3OTM4LCAzLjUyOTM1LCA1LjgzMTQyLCA3LjI2OTY4IiwgXAotICAgICAgICAgICIwLjM3MDAxLCAwLjU0MTYzNiwgMS41MTcyOSwgMi4zNzk4OCwgMy41MjkzNCwgNS44MzAzLCA3LjI2OTcxIiwgXAotICAgICAgICAgICIwLjM3MDA0OCwgMC41NDE2MDYsIDEuNTE3MjIsIDIuMzc5MzcsIDMuNTI5NTMsIDUuODMxMzgsIDcuMjY5NjUiLCBcCi0gICAgICAgICAgIjAuMzY5OTc0LCAwLjU0MTYwMiwgMS41MTczMSwgMi4zNzk3NywgMy41Mjk3OSwgNS44MzExMSwgNy4yNjk2NiIsIFwKLSAgICAgICAgICAiMC4zNzEwMzUsIDAuNTQxNTkxLCAxLjUxNzQsIDIuMzc5ODksIDMuNTI5MzQsIDUuODMxMSwgNy4yNjk2NSIsIFwKLSAgICAgICAgICAiMC4zNzU3MTgsIDAuNTQyNTI0LCAxLjUxNzQyLCAyLjM3OTQ3LCAzLjUyOTI3LCA1LjgzMTMyLCA3LjI2OTU3IiwgXAotICAgICAgICAgICIwLjM4MTkxNywgMC41NDU2MzUsIDEuNTE3NDMsIDIuMzc5ODksIDMuNTI5ODQsIDUuODMwOTUsIDcuMjY5NjYiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjE1MDEzLCAwLjMxNDc1NCwgMC44NzcwMjMsIDEuMzcyNzEsIDIuMDMyODUsIDMuMzUyODUsIDQuMTc3MDgiLCBcCi0gICAgICAgICAgIjAuMjI1NzkzLCAwLjMyNTY1MywgMC44ODgwOTgsIDEuMzgzMzUsIDIuMDQzNiwgMy4zNjM3MSwgNC4xODgwNyIsIFwKLSAgICAgICAgICAiMC4yMzkwOSwgMC4zMzg4NzQsIDAuOTAxNTY5LCAxLjM5NzIyLCAyLjA1NzM4LCAzLjM3Nzc3LCA0LjIwMTY0IiwgXAotICAgICAgICAgICIwLjI1MjEyNiwgMC4zNTIyODIsIDAuOTE0ODc5LCAxLjQxMDI4LCAyLjA3MDk3LCAzLjM5MTE1LCA0LjIxNTMxIiwgXAotICAgICAgICAgICIwLjI2NTMwOCwgMC4zNjU1ODEsIDAuOTI4MjY0LCAxLjQyMzYzLCAyLjA4NDc5LCAzLjQwMzkyLCA0LjIyODc0IiwgXAotICAgICAgICAgICIwLjI4NjI4NCwgMC4zODYyNzQsIDAuOTQ5MjUzLCAxLjQ0NDYsIDIuMTA1MjcsIDMuNDI1MjksIDQuMjUiLCBcCi0gICAgICAgICAgIjAuMzA0NzgsIDAuNDA0NzQzLCAwLjk2Nzc3OSwgMS40NjI5OSwgMi4xMjMyMiwgMy40NDMyNSwgNC4yNjc5NCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zODM0LCAwLjU3MjgxOSwgMS42NDUzOSwgMi41OTI0NSwgMy44NTE4MiwgNi4zNzQ4MywgNy45NTA4OSIsIFwKLSAgICAgICAgICAiMC4zODM2NTcsIDAuNTcyODUsIDEuNjQ1NTQsIDIuNTkxNTEsIDMuODUzNDUsIDYuMzc1OTEsIDcuOTQ5NjMiLCBcCi0gICAgICAgICAgIjAuMzgzNjQzLCAwLjU3MzAyOSwgMS42NDYwOCwgMi41OTIxMSwgMy44NTI1OCwgNi4zNzM0OCwgNy45NTE4MyIsIFwKLSAgICAgICAgICAiMC4zODM1ODgsIDAuNTcyODU5LCAxLjY0NTQ5LCAyLjU5MTU0LCAzLjg1MzU0LCA2LjM3NTQyLCA3Ljk1MDc0IiwgXAotICAgICAgICAgICIwLjM4MjkwMiwgMC41NzI4MTIsIDEuNjQ1NDksIDIuNTkxNDIsIDMuODUyNzUsIDYuMzc1OCwgNy45NTE5OSIsIFwKLSAgICAgICAgICAiMC4zODQ2MzUsIDAuNTcyNTksIDEuNjQ1NjUsIDIuNTkxMzMsIDMuODUyNTcsIDYuMzc0NDEsIDcuOTUxODIiLCBcCi0gICAgICAgICAgIjAuMzg4NTM3LCAwLjU3MzQ1NywgMS42NDU1OCwgMi41OTE1NCwgMy44NTI1NywgNi4zNzQ0MSwgNy45NTE3OSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDMxOTgsIDAuMDAzMTk4LCAwLjAwMzE5NiwgMC4wMDMxOTIsIDAuMDAzMTg5LCAwLjAwMzE4MSwgMC4wMDMxNzQiLCBcCi0gICAgICAgICAgIjAuMDAzMTksIDAuMDAzMTg5LCAwLjAwMzE4NywgMC4wMDMxODQsIDAuMDAzMTgxLCAwLjAwMzE3MywgMC4wMDMxNjciLCBcCi0gICAgICAgICAgIjAuMDAzMTg2LCAwLjAwMzE4NywgMC4wMDMxODUsIDAuMDAzMTgzLCAwLjAwMzE3OSwgMC4wMDMxNzEsIDAuMDAzMTY0IiwgXAotICAgICAgICAgICIwLjAwMzE4NCwgMC4wMDMxODUsIDAuMDAzMTg0LCAwLjAwMzE4MiwgMC4wMDMxNzksIDAuMDAzMTcxLCAwLjAwMzE2MyIsIFwKLSAgICAgICAgICAiMC4wMDMxODEsIDAuMDAzMTgyLCAwLjAwMzE4MiwgMC4wMDMxOCwgMC4wMDMxNzcsIDAuMDAzMTY5LCAwLjAwMzE2MSIsIFwKLSAgICAgICAgICAiMC4wMDMxNzksIDAuMDAzMTgxLCAwLjAwMzE4MywgMC4wMDMxOCwgMC4wMDMxNzgsIDAuMDAzMTcsIDAuMDAzMTYzIiwgXAotICAgICAgICAgICIwLjAwMzE3NywgMC4wMDMxNzksIDAuMDAzMTgsIDAuMDAzMTc5LCAwLjAwMzE3NiwgMC4wMDMxNjksIDAuMDAzMTYxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxNDA3LCAwLjAwMTQwNywgMC4wMDE0MDgsIDAuMDAxNDA1LCAwLjAwMTQwMywgMC4wMDE0LCAwLjAwMTM5OCIsIFwKLSAgICAgICAgICAiMC4wMDEzODgsIDAuMDAxMzg4LCAwLjAwMTM4NywgMC4wMDEzODYsIDAuMDAxMzg0LCAwLjAwMTM4MywgMC4wMDEzNzkiLCBcCi0gICAgICAgICAgIjAuMDAxMzgxLCAwLjAwMTM4MiwgMC4wMDEzODIsIDAuMDAxMzgsIDAuMDAxMzc5LCAwLjAwMTM3NiwgMC4wMDEzNzQiLCBcCi0gICAgICAgICAgIjAuMDAxMzc3LCAwLjAwMTM3OCwgMC4wMDEzNzksIDAuMDAxMzc4LCAwLjAwMTM3NiwgMC4wMDEzNzQsIDAuMDAxMzcxIiwgXAotICAgICAgICAgICIwLjAwMTM3NSwgMC4wMDEzNzYsIDAuMDAxMzc3LCAwLjAwMTM3NywgMC4wMDEzNzUsIDAuMDAxMzcyLCAwLjAwMTM3IiwgXAotICAgICAgICAgICIwLjAwMTM3MiwgMC4wMDEzNzQsIDAuMDAxMzc2LCAwLjAwMTM3NiwgMC4wMDEzNzQsIDAuMDAxMzcyLCAwLjAwMTM2OSIsIFwKLSAgICAgICAgICAiMC4wMDEzNjksIDAuMDAxMzcxLCAwLjAwMTM3NSwgMC4wMDEzNzUsIDAuMDAxMzc0LCAwLjAwMTM3MSwgMC4wMDEzNjkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyOTUsIDAuMDAyOTUsIDAuMDAyOTQ4LCAwLjAwMjk0NCwgMC4wMDI5NCwgMC4wMDI5MzIsIDAuMDAyOTI3IiwgXAotICAgICAgICAgICIwLjAwMjk0MSwgMC4wMDI5NDEsIDAuMDAyOTM5LCAwLjAwMjkzNiwgMC4wMDI5MzIsIDAuMDAyOTI1LCAwLjAwMjkxOSIsIFwKLSAgICAgICAgICAiMC4wMDI5MzgsIDAuMDAyOTM4LCAwLjAwMjkzNiwgMC4wMDI5MzQsIDAuMDAyOTMxLCAwLjAwMjkyMywgMC4wMDI5MTUiLCBcCi0gICAgICAgICAgIjAuMDAyOTM1LCAwLjAwMjkzNiwgMC4wMDI5MzYsIDAuMDAyOTM0LCAwLjAwMjkyOSwgMC4wMDI5MjMsIDAuMDAyOTE1IiwgXAotICAgICAgICAgICIwLjAwMjkzMywgMC4wMDI5MzQsIDAuMDAyOTM1LCAwLjAwMjkzMywgMC4wMDI5MjksIDAuMDAyOTIxLCAwLjAwMjkxNiIsIFwKLSAgICAgICAgICAiMC4wMDI5MywgMC4wMDI5MzIsIDAuMDAyOTMzLCAwLjAwMjkzMiwgMC4wMDI5MjksIDAuMDAyOTIyLCAwLjAwMjkxMyIsIFwKLSAgICAgICAgICAiMC4wMDI5MjksIDAuMDAyOTMsIDAuMDAyOTMyLCAwLjAwMjkzMSwgMC4wMDI5MjgsIDAuMDAyOTIxLCAwLjAwMjkxNCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTEwNywgMC4wMDExMDcsIDAuMDAxMTA5LCAwLjAwMTEwNSwgMC4wMDEwOTcsIDAuMDAxMTAyLCAwLjAwMTEwMSIsIFwKLSAgICAgICAgICAiMC4wMDExMDQsIDAuMDAxMTA0LCAwLjAwMTEwNCwgMC4wMDExMDMsIDAuMDAxMTAzLCAwLjAwMTEwMSwgMC4wMDExIiwgXAotICAgICAgICAgICIwLjAwMTEsIDAuMDAxMTAxLCAwLjAwMTEwNCwgMC4wMDExMDQsIDAuMDAxMTAyLCAwLjAwMTEwMSwgMC4wMDEwOTkiLCBcCi0gICAgICAgICAgIjAuMDAxMDk1LCAwLjAwMTA5OCwgMC4wMDExMDIsIDAuMDAxMTAzLCAwLjAwMTEwMiwgMC4wMDExLCAwLjAwMTA5OSIsIFwKLSAgICAgICAgICAiMC4wMDEwOSwgMC4wMDEwOTUsIDAuMDAxMTAxLCAwLjAwMTEwMiwgMC4wMDExMDIsIDAuMDAxMSwgMC4wMDEwOTgiLCBcCi0gICAgICAgICAgIjAuMDAxMDg0LCAwLjAwMTA5LCAwLjAwMTA5OSwgMC4wMDExLCAwLjAwMTEwMSwgMC4wMDEwOTksIDAuMDAxMDk4IiwgXAotICAgICAgICAgICIwLjAwMTA3OSwgMC4wMDEwODYsIDAuMDAxMDk3LCAwLjAwMTA5OSwgMC4wMDExLCAwLjAwMTA5OSwgMC4wMDEwOTgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyNjkxLCAwLjAwMjY5MSwgMC4wMDI2ODksIDAuMDAyNjg2LCAwLjAwMjY4MiwgMC4wMDI2NzQsIDAuMDAyNjY3IiwgXAotICAgICAgICAgICIwLjAwMjY4MSwgMC4wMDI2ODIsIDAuMDAyNjgsIDAuMDAyNjc3LCAwLjAwMjY3NCwgMC4wMDI2NjYsIDAuMDAyNjYiLCBcCi0gICAgICAgICAgIjAuMDAyNjc2LCAwLjAwMjY3NiwgMC4wMDI2NzcsIDAuMDAyNjc0LCAwLjAwMjY3MSwgMC4wMDI2NjQsIDAuMDAyNjU4IiwgXAotICAgICAgICAgICIwLjAwMjY3MSwgMC4wMDI2NzMsIDAuMDAyNjc1LCAwLjAwMjY3NCwgMC4wMDI2NywgMC4wMDI2NjIsIDAuMDAyNjU1IiwgXAotICAgICAgICAgICIwLjAwMjY2OCwgMC4wMDI2NzEsIDAuMDAyNjc0LCAwLjAwMjY3MiwgMC4wMDI2NjksIDAuMDAyNjYyLCAwLjAwMjY1NSIsIFwKLSAgICAgICAgICAiMC4wMDI2NjQsIDAuMDAyNjY3LCAwLjAwMjY3MiwgMC4wMDI2NzEsIDAuMDAyNjY5LCAwLjAwMjY2MSwgMC4wMDI2NTMiLCBcCi0gICAgICAgICAgIjAuMDAyNjYsIDAuMDAyNjY1LCAwLjAwMjY3MSwgMC4wMDI2NywgMC4wMDI2NjcsIDAuMDAyNjYsIDAuMDAyNjU0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwNzI1LCAwLjAwMDcyNSwgMC4wMDA3MjgsIDAuMDAwNzI2LCAwLjAwMDcyNSwgMC4wMDA3MjQsIDAuMDAwNzI0IiwgXAotICAgICAgICAgICIwLjAwMDczNiwgMC4wMDA3MzksIDAuMDAwNzQyLCAwLjAwMDc0MywgMC4wMDA3NDUsIDAuMDAwNzQyLCAwLjAwMDc0MSIsIFwKLSAgICAgICAgICAiMC4wMDA3MzQsIDAuMDAwNzM5LCAwLjAwMDc0NiwgMC4wMDA3NDcsIDAuMDAwNzQ3LCAwLjAwMDc0NywgMC4wMDA3NDYiLCBcCi0gICAgICAgICAgIjAuMDAwNzMsIDAuMDAwNzM2LCAwLjAwMDc0NiwgMC4wMDA3NDgsIDAuMDAwNzQ5LCAwLjAwMDc0OSwgMC4wMDA3NDgiLCBcCi0gICAgICAgICAgIjAuMDAwNzI0LCAwLjAwMDczMywgMC4wMDA3NDUsIDAuMDAwNzQ4LCAwLjAwMDc0OSwgMC4wMDA3NDksIDAuMDAwNzQ5IiwgXAotICAgICAgICAgICIwLjAwMDcxNSwgMC4wMDA3MjYsIDAuMDAwNzQzLCAwLjAwMDc0NiwgMC4wMDA3NDgsIDAuMDAwNzQ5LCAwLjAwMDc0OSIsIFwKLSAgICAgICAgICAiMC4wMDA3MDgsIDAuMDAwNzIxLCAwLjAwMDc0MSwgMC4wMDA3NDUsIDAuMDAwNzQ3LCAwLjAwMDc0OSwgMC4wMDA3NDkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyMTUsIDAuMDAyMTUsIDAuMDAyMTUxLCAwLjAwMjE1MSwgMC4wMDIxNSwgMC4wMDIxNSwgMC4wMDIxNTEiLCBcCi0gICAgICAgICAgIjAuMDAyMTUzLCAwLjAwMjE1NSwgMC4wMDIxNTcsIDAuMDAyMTU4LCAwLjAwMjE1OCwgMC4wMDIxNTgsIDAuMDAyMTU4IiwgXAotICAgICAgICAgICIwLjAwMjE1LCAwLjAwMjE1NCwgMC4wMDIxNTgsIDAuMDAyMTU5LCAwLjAwMjE1OSwgMC4wMDIxNiwgMC4wMDIxNiIsIFwKLSAgICAgICAgICAiMC4wMDIxNDcsIDAuMDAyMTUxLCAwLjAwMjE1OCwgMC4wMDIxNTksIDAuMDAyMTU5LCAwLjAwMjE1OSwgMC4wMDIxNTkiLCBcCi0gICAgICAgICAgIjAuMDAyMTQ0LCAwLjAwMjE0OSwgMC4wMDIxNTcsIDAuMDAyMTU5LCAwLjAwMjE1OSwgMC4wMDIxNiwgMC4wMDIxNiIsIFwKLSAgICAgICAgICAiMC4wMDIxMzgsIDAuMDAyMTQ1LCAwLjAwMjE1NSwgMC4wMDIxNTgsIDAuMDAyMTU5LCAwLjAwMjE2LCAwLjAwMjE2IiwgXAotICAgICAgICAgICIwLjAwMjEzNSwgMC4wMDIxNDIsIDAuMDAyMTU0LCAwLjAwMjE1NywgMC4wMDIxNTksIDAuMDAyMTYsIDAuMDAyMTYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDE0MDgsIDAuMDAxNDA4LCAwLjAwMTQwNywgMC4wMDE0MDYsIDAuMDAxNDA0LCAwLjAwMTQwMiwgMC4wMDE0IiwgXAotICAgICAgICAgICIwLjAwMTM5NCwgMC4wMDEzOTQsIDAuMDAxMzk0LCAwLjAwMTM5NSwgMC4wMDEzOTQsIDAuMDAxMzg2LCAwLjAwMTM4NyIsIFwKLSAgICAgICAgICAiMC4wMDEzODcsIDAuMDAxMzg4LCAwLjAwMTM5MSwgMC4wMDEzOTIsIDAuMDAxMzksIDAuMDAxMzg3LCAwLjAwMTM4NCIsIFwKLSAgICAgICAgICAiMC4wMDEzODIsIDAuMDAxMzg1LCAwLjAwMTM4OSwgMC4wMDEzODksIDAuMDAxMzg4LCAwLjAwMTM4NSwgMC4wMDEzODQiLCBcCi0gICAgICAgICAgIjAuMDAxMzc2LCAwLjAwMTM4MiwgMC4wMDEzODgsIDAuMDAxMzg4LCAwLjAwMTM4NywgMC4wMDEzODUsIDAuMDAxMzgyIiwgXAotICAgICAgICAgICIwLjAwMTM3NCwgMC4wMDEzNzksIDAuMDAxMzg1LCAwLjAwMTM4NiwgMC4wMDEzODYsIDAuMDAxMzg0LCAwLjAwMTM4MiIsIFwKLSAgICAgICAgICAiMC4wMDEzNzIsIDAuMDAxMzc2LCAwLjAwMTM4NCwgMC4wMDEzODUsIDAuMDAxMzg1LCAwLjAwMTM4MywgMC4wMDEzODEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxODk4LCAwLjAwMTg5OSwgMC4wMDE5LCAwLjAwMTksIDAuMDAxOSwgMC4wMDE5LCAwLjAwMTkiLCBcCi0gICAgICAgICAgIjAuMDAxOSwgMC4wMDE5MDIsIDAuMDAxOTA2LCAwLjAwMTkwNywgMC4wMDE5MDcsIDAuMDAxOTA3LCAwLjAwMTkwNyIsIFwKLSAgICAgICAgICAiMC4wMDE4OTUsIDAuMDAxOSwgMC4wMDE5MDYsIDAuMDAxOTA3LCAwLjAwMTkwOCwgMC4wMDE5MDksIDAuMDAxOTA4IiwgXAotICAgICAgICAgICIwLjAwMTg5LCAwLjAwMTg5NiwgMC4wMDE5MDUsIDAuMDAxOTA3LCAwLjAwMTkwOCwgMC4wMDE5MDksIDAuMDAxOTA5IiwgXAotICAgICAgICAgICIwLjAwMTg4NSwgMC4wMDE4OTMsIDAuMDAxOTA0LCAwLjAwMTkwNiwgMC4wMDE5MDgsIDAuMDAxOTA5LCAwLjAwMTkwOSIsIFwKLSAgICAgICAgICAiMC4wMDE4NzksIDAuMDAxODg4LCAwLjAwMTkwMiwgMC4wMDE5MDUsIDAuMDAxOTA3LCAwLjAwMTkwOCwgMC4wMDE5MDkiLCBcCi0gICAgICAgICAgIjAuMDAxODc1LCAwLjAwMTg4NCwgMC4wMDE5LCAwLjAwMTkwNCwgMC4wMDE5MDYsIDAuMDAxOTA4LCAwLjAwMTkwOCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTA4NywgMC4wMDEwODksIDAuMDAxMDksIDAuMDAxMDg4LCAwLjAwMTA4MiwgMC4wMDEwODYsIDAuMDAxMDg0IiwgXAotICAgICAgICAgICIwLjAwMTA5MiwgMC4wMDEwOTUsIDAuMDAxMDk5LCAwLjAwMTEsIDAuMDAxMDk4LCAwLjAwMTA5NywgMC4wMDEwOTUiLCBcCi0gICAgICAgICAgIjAuMDAxMDg2LCAwLjAwMTA5LCAwLjAwMTA5OSwgMC4wMDEwOTksIDAuMDAxMSwgMC4wMDEwOTksIDAuMDAxMDk3IiwgXAotICAgICAgICAgICIwLjAwMTA3OCwgMC4wMDEwODYsIDAuMDAxMDk3LCAwLjAwMTA5OSwgMC4wMDExLCAwLjAwMTA5OSwgMC4wMDEwOTgiLCBcCi0gICAgICAgICAgIjAuMDAxMDcxLCAwLjAwMTA4MSwgMC4wMDEwOTUsIDAuMDAxMDk4LCAwLjAwMTA5OSwgMC4wMDEwOTgsIDAuMDAxMDk3IiwgXAotICAgICAgICAgICIwLjAwMTA2MywgMC4wMDEwNzQsIDAuMDAxMDkyLCAwLjAwMTA5NiwgMC4wMDEwOTgsIDAuMDAxMDk4LCAwLjAwMTA5NyIsIFwKLSAgICAgICAgICAiMC4wMDEwNTcsIDAuMDAxMDY4LCAwLjAwMTA5LCAwLjAwMTA5NCwgMC4wMDEwOTcsIDAuMDAxMDk3LCAwLjAwMTA5NiIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBPUjJYMSAqCi0gKiAtLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoT1IyWDEpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4wNzA5MDc1OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA1NDQyMDk7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNTQwOTIxOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDU0NDIwOTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxNDksIDAuMDAwMTU2LCAwLjAwMDE1OCwgMC4wMDAxNTksIDAuMDAwMTU5LCAwLjAwMDE2LCAwLjAwMDE2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMTcsIDAuMDAwMTcsIDAuMDAwMTcsIDAuMDAwMTcsIDAuMDAwMTcsIDAuMDAwMTcsIDAuMDAwMTciKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDU3MjE1NDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA1NzE5Nzg7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNTcyMTU0OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDA1MSwgMC4wMDAwNTEsIDAuMDAwMDUxLCAwLjAwMDA1MSwgMC4wMDAwNTEsIDAuMDAwMDUxLCAwLjAwMDA1MSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDIxMywgMC4wMDAyMTMsIDAuMDAwMjEzLCAwLjAwMDIxMywgMC4wMDAyMTMsIDAuMDAwMjEzLCAwLjAwMDIxMyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjEyNDk5OTsKLSAgICBmdW5jdGlvbiA6ICIoQStCKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTI4ODQxLCAwLjE3MjE1NCwgMC40MTY5ODYsIDAuNjMyODY2LCAwLjkyMDYxMiwgMS40OTU5NywgMS44NTU1OCIsIFwKLSAgICAgICAgICAiMC4xNDA3NDEsIDAuMTg0MDU0LCAwLjQyODg2NSwgMC42NDQ1OTYsIDAuOTMyNTA0LCAxLjUwNzg2LCAxLjg2NzQ3IiwgXAotICAgICAgICAgICIwLjE1NTk5NCwgMC4xOTkzMDIsIDAuNDQ0MTM4LCAwLjY1OTk4NywgMC45NDc3MjYsIDEuNTIzMjMsIDEuODgyNzYiLCBcCi0gICAgICAgICAgIjAuMTcxMjgxLCAwLjIxNDYxNSwgMC40NTk0NjQsIDAuNjc1MzQ1LCAwLjk2MzA2OCwgMS41Mzg0NywgMS44OTgwNiIsIFwKLSAgICAgICAgICAiMC4xODYyNjMsIDAuMjI5NjA0LCAwLjQ3NDQ2MywgMC42OTAzMTgsIDAuOTc4MDU0LCAxLjU1MzQ2LCAxLjkxMzA4IiwgXAotICAgICAgICAgICIwLjIwOTkwMiwgMC4yNTMyMjEsIDAuNDk4MDk2LCAwLjcxMzk2NCwgMS4wMDE3MywgMS41NzcxNCwgMS45MzY4OSIsIFwKLSAgICAgICAgICAiMC4yMjg4MiwgMC4yNzIxMjMsIDAuNTE2OTg2LCAwLjczMjkyMSwgMS4wMjA1OCwgMS41OTYsIDEuOTU1NTkiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTYwNjI2LCAwLjI0NzA3NSwgMC43NDM5MTIsIDEuMTg0MjgsIDEuNzcwMTEsIDIuOTQxMjEsIDMuNjczNTgiLCBcCi0gICAgICAgICAgIjAuMTYwNTksIDAuMjQ3MjY2LCAwLjc0MjQ0OSwgMS4xODIzNSwgMS43Njk3NiwgMi45NDA5OSwgMy42NzIyOSIsIFwKLSAgICAgICAgICAiMC4xNjA1NjYsIDAuMjQ3NzQyLCAwLjc0MzgyMSwgMS4xODIzMSwgMS43Njg5LCAyLjk0MTI3LCAzLjY3MzEyIiwgXAotICAgICAgICAgICIwLjE2MDY0NCwgMC4yNDcyOCwgMC43NDM5MTQsIDEuMTgxODksIDEuNzY5ODYsIDIuOTQxLCAzLjY3Mjg3IiwgXAotICAgICAgICAgICIwLjE2MDYzOSwgMC4yNDc0MTQsIDAuNzQzODAzLCAxLjE4MjU0LCAxLjc2OTI4LCAyLjk0MDM0LCAzLjY3MjMiLCBcCi0gICAgICAgICAgIjAuMTYwODY3LCAwLjI0NzQ3NiwgMC43NDUwMjcsIDEuMTgyNDMsIDEuNzY5MjEsIDIuOTQwMjksIDMuNjczNDQiLCBcCi0gICAgICAgICAgIjAuMTYxMzI4LCAwLjI0NzYyLCAwLjc0Mzc1OCwgMS4xODEwMywgMS43NjY4LCAyLjk0MDk2LCAzLjY3MjE2Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE3MzM0MywgMC4yMjI5NCwgMC41MDI5NzIsIDAuNzUwMDM1LCAxLjA3OTM0LCAxLjczNzM5LCAyLjE0OTE3IiwgXAotICAgICAgICAgICIwLjE4NDY0NSwgMC4yMzQyNDMsIDAuNTE0MTk1LCAwLjc2MTE2OSwgMS4wOTA3MiwgMS43NDk3MSwgMi4xNjA0NCIsIFwKLSAgICAgICAgICAiMC4xOTc1NjEsIDAuMjQ3MTY5LCAwLjUyNzIxMywgMC43NzQwOTcsIDEuMTAzNjgsIDEuNzYyNTUsIDIuMTczMzciLCBcCi0gICAgICAgICAgIjAuMjEwMTY3LCAwLjI1OTc2OSwgMC41Mzk3MTYsIDAuNzg2OTgxLCAxLjExNjEzLCAxLjc3NDM2LCAyLjE4Njg1IiwgXAotICAgICAgICAgICIwLjIyMjQ1OCwgMC4yNzIwNjQsIDAuNTUyMDIyLCAwLjc5OTMwOSwgMS4xMjg0NCwgMS43ODY2NCwgMi4xOTkwNSIsIFwKLSAgICAgICAgICAiMC4yNDE1MjgsIDAuMjkxMTUxLCAwLjU3MTI0OSwgMC44MTgxMjEsIDEuMTQ3NzIsIDEuODA2NTMsIDIuMjE3NDEiLCBcCi0gICAgICAgICAgIjAuMjU3NDQ5LCAwLjMwNzA4LCAwLjU4NzA3OSwgMC44MzQwNDYsIDEuMTYzNzUsIDEuODIxOTIsIDIuMjMzNjMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTgzNDE0LCAwLjI3OTczOCwgMC44MzE0NjQsIDEuMzIyMTMsIDEuOTc4NDksIDMuMjkzNzEsIDQuMTA3NTUiLCBcCi0gICAgICAgICAgIjAuMTgzNDM3LCAwLjI3OTc3NywgMC44MzQ2OTQsIDEuMzIyMTIsIDEuOTc2MjUsIDMuMjg0MzYsIDQuMDk3NzUiLCBcCi0gICAgICAgICAgIjAuMTgzNDQ5LCAwLjI3OTc0NSwgMC44MzE4NDYsIDEuMzIyMTQsIDEuOTc1ODIsIDMuMjg2NjksIDQuMDk3NzMiLCBcCi0gICAgICAgICAgIjAuMTgzMzU4LCAwLjI3OTcxNCwgMC44MzQ2NzMsIDEuMzIxOTUsIDEuOTc4MTQsIDMuMjkzMDUsIDQuMTA2MDgiLCBcCi0gICAgICAgICAgIjAuMTgzMzYyLCAwLjI3OTcxMiwgMC44MzQ2NzIsIDEuMzIxODYsIDEuOTc4MTQsIDMuMjgyNDcsIDQuMTA3ODYiLCBcCi0gICAgICAgICAgIjAuMTgzNTU4LCAwLjI3OTc5LCAwLjgzMTg1LCAxLjMyMjIyLCAxLjk3NTc2LCAzLjI5MTE2LCA0LjA5NzY4IiwgXAotICAgICAgICAgICIwLjE4NDA3LCAwLjI3OTYyOSwgMC44MzQ3MDgsIDEuMzIyOCwgMS45NzUyLCAzLjI5MjA2LCA0LjEwNTA2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEyMjc3LCAwLjE2NTk3NSwgMC40MTA1ODEsIDAuNjI2Mzg4LCAwLjkxNDM0NiwgMS40ODk2MSwgMS44NDkzNSIsIFwKLSAgICAgICAgICAiMC4xMzQ1NiwgMC4xNzc3NzEsIDAuNDIyNjA4LCAwLjYzODI1LCAwLjkyNjAyMiwgMS41MDE0MiwgMS44NjE5MyIsIFwKLSAgICAgICAgICAiMC4xNTAwNDgsIDAuMTkzMjcsIDAuNDM4MDAyLCAwLjY1Mzg1MywgMC45NDE1MTgsIDEuNTE3MDYsIDEuODc3MjMiLCBcCi0gICAgICAgICAgIjAuMTY0Nzk5LCAwLjIwODAyMSwgMC40NTI3MjMsIDAuNjY4MjQ3LCAwLjk1NjI4MiwgMS41MzIwMiwgMS44OTE4MyIsIFwKLSAgICAgICAgICAiMC4xNzk4MTcsIDAuMjIzMDM5LCAwLjQ2Nzg0NCwgMC42ODM2OTEsIDAuOTcxNjksIDEuNTQ3NSwgMS45MDcyNCIsIFwKLSAgICAgICAgICAiMC4yMDI0NTgsIDAuMjQ1NzAxLCAwLjQ5MDQwOCwgMC43MDYzMzQsIDAuOTkzOTg3LCAxLjU3LCAxLjkyOTUzIiwgXAotICAgICAgICAgICIwLjIyMDY4MywgMC4yNjM4ODMsIDAuNTA4NjkyLCAwLjcyNDM2NSwgMS4wMTIxMywgMS41ODc2NSwgMS45NDgxOCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNTk5NDcsIDAuMjQ2NjIzLCAwLjc0NDY0NiwgMS4xODMzOCwgMS43NjU2NywgMi45MzM5MSwgMy42NzM5OCIsIFwKLSAgICAgICAgICAiMC4xNTk5MzgsIDAuMjQ2NjMxLCAwLjc0Mjk5MSwgMS4xODA4MSwgMS43NjQ5NiwgMi45NDE1MiwgMy42NjQ2OSIsIFwKLSAgICAgICAgICAiMC4xNTk5MTQsIDAuMjQ2NjIxLCAwLjc0MzU3OCwgMS4xODEyNCwgMS43NjUxMywgMi45NDE1NywgMy42NjQ5NCIsIFwKLSAgICAgICAgICAiMC4xNjAwMjMsIDAuMjQ2ODAzLCAwLjc0MzQxMywgMS4xODA0MSwgMS43NjUyLCAyLjkzNjgzLCAzLjY2NTE0IiwgXAotICAgICAgICAgICIwLjE2MDA2MiwgMC4yNDY3ODIsIDAuNzQyNzM1LCAxLjE4MDkxLCAxLjc2Njk2LCAyLjkzNDM1LCAzLjY2NDk2IiwgXAotICAgICAgICAgICIwLjE2MDQ3LCAwLjI0NzM0NiwgMC43NDQ2MjQsIDEuMTgxMjUsIDEuNzY1MjcsIDIuOTM3NDYsIDMuNjY1MTciLCBcCi0gICAgICAgICAgIjAuMTYxMDUxLCAwLjI0NzU2MiwgMC43NDI4NjcsIDEuMTgzODMsIDEuNzY5MzIsIDIuOTQxNCwgMy42NjQ1NSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNjYzNTcsIDAuMjE1OTY4LCAwLjQ5NjAzNCwgMC43NDI5NjcsIDEuMDcyNTMsIDEuNzMwNDcsIDIuMTQyMTMiLCBcCi0gICAgICAgICAgIjAuMTc2NDAyLCAwLjIyNjAwOSwgMC41MDU5NjcsIDAuNzUyOTk1LCAxLjA4MjQ0LCAxLjc0MDU5LCAyLjE1MyIsIFwKLSAgICAgICAgICAiMC4xODkzNzMsIDAuMjM5MDA2LCAwLjUxODk4NywgMC43NjU5NSwgMS4wOTUyMSwgMS43NTM3MiwgMi4xNjU0OCIsIFwKLSAgICAgICAgICAiMC4yMDI1OTcsIDAuMjUyMjU0LCAwLjUzMjI1NCwgMC43NzkyMjcsIDEuMTA4NzMsIDEuNzY3MSwgMi4xNzk4MyIsIFwKLSAgICAgICAgICAiMC4yMTU2NTgsIDAuMjY1Mjg5LCAwLjU0NTMzNCwgMC43OTIzNTgsIDEuMTIxNzIsIDEuNzgwMTMsIDIuMTkyMDkiLCBcCi0gICAgICAgICAgIjAuMjM2NDAxLCAwLjI4NjA1MSwgMC41NjYwOTMsIDAuODEzMDg0LCAxLjE0MjM2LCAxLjgwMTI0LCAyLjIxMjQ0IiwgXAotICAgICAgICAgICIwLjI1Mjc2NSwgMC4zMDI0MzQsIDAuNTgyNDc3LCAwLjgyOTQ1OSwgMS4xNTkwOCwgMS44MTczLCAyLjIyODg1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE4MzQwOCwgMC4yNzk3NCwgMC44MzE5MywgMS4zMjExNCwgMS45NzU0OCwgMy4yODY4MSwgNC4wOTg0MyIsIFwKLSAgICAgICAgICAiMC4xODM0MzMsIDAuMjc5NzM2LCAwLjgzNDY3OCwgMS4zMjMwNSwgMS45Nzg1NiwgMy4yODI0LCA0LjEwNzkiLCBcCi0gICAgICAgICAgIjAuMTgzNTc2LCAwLjI3OTc0NCwgMC44MzQ2NzcsIDEuMzI2MzgsIDEuOTc1MTksIDMuMjgxMywgNC4xMDUzOSIsIFwKLSAgICAgICAgICAiMC4xODM1ODQsIDAuMjc5NTEsIDAuODM0NjcyLCAxLjMyNjM4LCAxLjk3ODYyLCAzLjI4Mjc0LCA0LjEwMjg4IiwgXAotICAgICAgICAgICIwLjE4MzU0NywgMC4yNzk3NjgsIDAuODM0NzE5LCAxLjMyNDg3LCAxLjk3Njk1LCAzLjI4MjU5LCA0LjEwNDIxIiwgXAotICAgICAgICAgICIwLjE4Mzg5NiwgMC4yNzk4NywgMC44MzQ2OSwgMS4zMjI0MiwgMS45NzQ4OCwgMy4yODYyMSwgNC4wOTczNiIsIFwKLSAgICAgICAgICAiMC4xODQzOTgsIDAuMjgwMzQyLCAwLjgzNDcyMywgMS4zMjYzOSwgMS45NzU4NCwgMy4yODA3OCwgNC4xMDMzNCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTE5LCAwLjAwMTE5MiwgMC4wMDExOTQsIDAuMDAxMTk1LCAwLjAwMTE5NSwgMC4wMDExOTUsIDAuMDAxMTk1IiwgXAotICAgICAgICAgICIwLjAwMTE3NywgMC4wMDExNzksIDAuMDAxMTgyLCAwLjAwMTE4MiwgMC4wMDExODIsIDAuMDAxMTgzLCAwLjAwMTE4MyIsIFwKLSAgICAgICAgICAiMC4wMDExNjgsIDAuMDAxMTcxLCAwLjAwMTE3NSwgMC4wMDExNzYsIDAuMDAxMTc2LCAwLjAwMTE3NiwgMC4wMDExNzYiLCBcCi0gICAgICAgICAgIjAuMDAxMTYxLCAwLjAwMTE2NSwgMC4wMDExNjksIDAuMDAxMTcsIDAuMDAxMTcxLCAwLjAwMTE3MiwgMC4wMDExNzEiLCBcCi0gICAgICAgICAgIjAuMDAxMTU2LCAwLjAwMTE2LCAwLjAwMTE2NiwgMC4wMDExNjcsIDAuMDAxMTY4LCAwLjAwMTE2OCwgMC4wMDExNjkiLCBcCi0gICAgICAgICAgIjAuMDAxMTUxLCAwLjAwMTE1NiwgMC4wMDExNjQsIDAuMDAxMTY1LCAwLjAwMTE2NiwgMC4wMDExNjYsIDAuMDAxMTY3IiwgXAotICAgICAgICAgICIwLjAwMTE0OSwgMC4wMDExNTQsIDAuMDAxMTYyLCAwLjAwMTE2NCwgMC4wMDExNjYsIDAuMDAxMTY2LCAwLjAwMTE2NiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTk2NCwgMC4wMDE5NjgsIDAuMDAxOTczLCAwLjAwMTk3NCwgMC4wMDE5NzUsIDAuMDAxOTc1LCAwLjAwMTk3NSIsIFwKLSAgICAgICAgICAiMC4wMDE5NTcsIDAuMDAxOTYyLCAwLjAwMTk2NywgMC4wMDE5NjgsIDAuMDAxOTY4LCAwLjAwMTk2OSwgMC4wMDE5NjkiLCBcCi0gICAgICAgICAgIjAuMDAxOTUyLCAwLjAwMTk1NywgMC4wMDE5NjIsIDAuMDAxOTYzLCAwLjAwMTk2NCwgMC4wMDE5NjQsIDAuMDAxOTY0IiwgXAotICAgICAgICAgICIwLjAwMTk0OCwgMC4wMDE5NTMsIDAuMDAxOTU5LCAwLjAwMTk2LCAwLjAwMTk2MSwgMC4wMDE5NjEsIDAuMDAxOTYyIiwgXAotICAgICAgICAgICIwLjAwMTk0NSwgMC4wMDE5NTEsIDAuMDAxOTU4LCAwLjAwMTk1OSwgMC4wMDE5NiwgMC4wMDE5NiwgMC4wMDE5NiIsIFwKLSAgICAgICAgICAiMC4wMDE5NDIsIDAuMDAxOTQ4LCAwLjAwMTk1NiwgMC4wMDE5NTgsIDAuMDAxOTU4LCAwLjAwMTk1OSwgMC4wMDE5NTkiLCBcCi0gICAgICAgICAgIjAuMDAxOTM3LCAwLjAwMTk0NSwgMC4wMDE5NTQsIDAuMDAxOTU2LCAwLjAwMTk1NywgMC4wMDE5NTgsIDAuMDAxOTU4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwOTk4LCAwLjAwMSwgMC4wMDEwMDMsIDAuMDAxMDAzLCAwLjAwMTAwMywgMC4wMDEwMDMsIDAuMDAxMDAzIiwgXAotICAgICAgICAgICIwLjAwMDk4NSwgMC4wMDA5ODgsIDAuMDAwOTkxLCAwLjAwMDk5MSwgMC4wMDA5OTIsIDAuMDAwOTkyLCAwLjAwMDk5MiIsIFwKLSAgICAgICAgICAiMC4wMDA5NzEsIDAuMDAwOTc1LCAwLjAwMDk3OSwgMC4wMDA5OCwgMC4wMDA5OCwgMC4wMDA5OCwgMC4wMDA5OCIsIFwKLSAgICAgICAgICAiMC4wMDA5NiwgMC4wMDA5NjQsIDAuMDAwOTcxLCAwLjAwMDk3MiwgMC4wMDA5NzIsIDAuMDAwOTczLCAwLjAwMDk3MyIsIFwKLSAgICAgICAgICAiMC4wMDA5NTMsIDAuMDAwOTU5LCAwLjAwMDk2NiwgMC4wMDA5NjcsIDAuMDAwOTY4LCAwLjAwMDk2OSwgMC4wMDA5NjkiLCBcCi0gICAgICAgICAgIjAuMDAwOTQ2LCAwLjAwMDk1MiwgMC4wMDA5NjEsIDAuMDAwOTYzLCAwLjAwMDk2NCwgMC4wMDA5NjUsIDAuMDAwOTY1IiwgXAotICAgICAgICAgICIwLjAwMDk0MywgMC4wMDA5NSwgMC4wMDA5NTksIDAuMDAwOTYxLCAwLjAwMDk2MiwgMC4wMDA5NjMsIDAuMDAwOTY0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxODI4LCAwLjAwMTgzMywgMC4wMDE4NCwgMC4wMDE4NDEsIDAuMDAxODQyLCAwLjAwMTg0MiwgMC4wMDE4NDIiLCBcCi0gICAgICAgICAgIjAuMDAxODE2LCAwLjAwMTgyMiwgMC4wMDE4MjksIDAuMDAxODMsIDAuMDAxODMxLCAwLjAwMTgzMSwgMC4wMDE4MzIiLCBcCi0gICAgICAgICAgIjAuMDAxODA3LCAwLjAwMTgxMywgMC4wMDE4MjEsIDAuMDAxODIyLCAwLjAwMTgyMywgMC4wMDE4MjQsIDAuMDAxODI0IiwgXAotICAgICAgICAgICIwLjAwMTgsIDAuMDAxODA3LCAwLjAwMTgxNiwgMC4wMDE4MTgsIDAuMDAxODE5LCAwLjAwMTgyLCAwLjAwMTgyIiwgXAotICAgICAgICAgICIwLjAwMTc5NCwgMC4wMDE4MDIsIDAuMDAxODEzLCAwLjAwMTgxNSwgMC4wMDE4MTcsIDAuMDAxODE4LCAwLjAwMTgxOCIsIFwKLSAgICAgICAgICAiMC4wMDE3OSwgMC4wMDE3OTgsIDAuMDAxODExLCAwLjAwMTgxNCwgMC4wMDE4MTYsIDAuMDAxODE3LCAwLjAwMTgxNyIsIFwKLSAgICAgICAgICAiMC4wMDE3ODcsIDAuMDAxNzk1LCAwLjAwMTgwOSwgMC4wMDE4MTMsIDAuMDAxODE1LCAwLjAwMTgxNiwgMC4wMDE4MTciKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogT1IyWDIgKgotICogLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKE9SMlgyKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMTA0MTE3OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA1ODc0NTE7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNTg0MTU3OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDU4NzQ1MTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxNDgsIDAuMDAwMTU2LCAwLjAwMDE1OCwgMC4wMDAxNTksIDAuMDAwMTU5LCAwLjAwMDE1OSwgMC4wMDAxNiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDE3LCAwLjAwMDE3LCAwLjAwMDE3LCAwLjAwMDE3LCAwLjAwMDE3LCAwLjAwMDE3LCAwLjAwMDE3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2MDM1NTY7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjAzNDQ1OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDYwMzU1NjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAwNSwgMC4wMDAwNSwgMC4wMDAwNSwgMC4wMDAwNSwgMC4wMDAwNSwgMC4wMDAwNSwgMC4wMDAwNSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDIwNywgMC4wMDAyMDcsIDAuMDAwMjA3LCAwLjAwMDIwNywgMC4wMDAyMDYsIDAuMDAwMjA2LCAwLjAwMDIwNiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjI1MjM0NzsKLSAgICBmdW5jdGlvbiA6ICIoQStCKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTA4NDk3LCAwLjI4ODc4LCAwLjQzMjIyMSwgMC42MTE1NDEsIDAuNzkwNzg3LCAwLjk2OTk4MywgMS4xNDkxOSIsIFwKLSAgICAgICAgICAiMC4xMjAxODIsIDAuMzAwNTAzLCAwLjQ0Mzk1MSwgMC42MjMzLCAwLjgwMjU2OCwgMC45ODE3MDYsIDEuMTYwOTUiLCBcCi0gICAgICAgICAgIjAuMTM1NDQ4LCAwLjMxNTc1NCwgMC40NTkyLCAwLjYzODQ3NywgMC44MTc3MTksIDAuOTk2OTU1LCAxLjE3NjE1IiwgXAotICAgICAgICAgICIwLjE1MDg2MSwgMC4zMzEyNDMsIDAuNDc0Njk3LCAwLjY1Mzk5NywgMC44MzMyNTEsIDEuMDEyNDYsIDEuMTkxNzEiLCBcCi0gICAgICAgICAgIjAuMTY2MTcyLCAwLjM0NjY0NCwgMC40OTAwOTYsIDAuNjY5Mzc5LCAwLjg0ODYyMSwgMS4wMjc4NCwgMS4yMDcwNiIsIFwKLSAgICAgICAgICAiMC4xOTAzMjMsIDAuMzcwNjUsIDAuNTE0MTE1LCAwLjY5MzQ2OSwgMC44NzI2ODcsIDEuMDUxODgsIDEuMjMxMDkiLCBcCi0gICAgICAgICAgIjAuMjExMTM5LCAwLjM5MTUzNCwgMC41MzUwMjYsIDAuNzE0MzQxLCAwLjg5MzU3MiwgMS4wNzI3OSwgMS4yNTIiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDkxODU2LCAwLjQ1MDc0NywgMC43NDM2NzUsIDEuMTA5MDEsIDEuNDc0MDQsIDEuODM2NTIsIDIuMjAxNDEiLCBcCi0gICAgICAgICAgIjAuMDkxNzkxLCAwLjQ1MDc1LCAwLjc0MzQ4MiwgMS4xMDg3NiwgMS40NzA2LCAxLjgzNjQ1LCAyLjIwNDc0IiwgXAotICAgICAgICAgICIwLjA5MTg0NiwgMC40NTA3MSwgMC43NDM2OTcsIDEuMTA3MTEsIDEuNDcxODMsIDEuODM5MzMsIDIuMjAxMDkiLCBcCi0gICAgICAgICAgIjAuMDkxNzYzLCAwLjQ1MDc0OSwgMC43NDM0OTIsIDEuMTA3MjYsIDEuNDcwNzUsIDEuODM2NDIsIDIuMjA0NjYiLCBcCi0gICAgICAgICAgIjAuMDkxODAzLCAwLjQ1MDYwNywgMC43NDM2OTYsIDEuMTA3MSwgMS40NzE3OSwgMS44MzY0MiwgMi4yMDEwNyIsIFwKLSAgICAgICAgICAiMC4wOTIyOCwgMC40NTE4NDcsIDAuNzQzNjM3LCAxLjEwODU2LCAxLjQ3NDE1LCAxLjgzNjU1LCAyLjIwMTI2IiwgXAotICAgICAgICAgICIwLjA5Mjc2NiwgMC40NTA5MjIsIDAuNzQzNjg3LCAxLjEwODg5LCAxLjQ3NDA5LCAxLjgzNjMxLCAyLjIwMTE4Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE1ODczMywgMC4zNjg0MDksIDAuNTMzNDU1LCAwLjczOTU2NSwgMC45NDU4MDEsIDEuMTUyMTMsIDEuMzU4NjciLCBcCi0gICAgICAgICAgIjAuMTcwMzI1LCAwLjM3OTgxOSwgMC41NDQ4NzQsIDAuNzUxMDY4LCAwLjk1NzI0NSwgMS4xNjM3NywgMS4zNzAwOCIsIFwKLSAgICAgICAgICAiMC4xODMxNDIsIDAuMzkyNjY4LCAwLjU1Nzc0LCAwLjc2MzgzOSwgMC45NzAxMTgsIDEuMTc2MywgMS4zODIzIiwgXAotICAgICAgICAgICIwLjE5NTY2NywgMC40MDUzNDIsIDAuNTcwMzg5LCAwLjc3NjYwMywgMC45ODI3NTksIDEuMTg5MzksIDEuMzk1NTUiLCBcCi0gICAgICAgICAgIjAuMjA4MTYxLCAwLjQxNzc2NywgMC41ODI3NTYsIDAuNzg4OTQ4LCAwLjk5NTI0NiwgMS4yMDE0MywgMS40MDc4NiIsIFwKLSAgICAgICAgICAiMC4yMjc1MjIsIDAuNDM3MTgxLCAwLjYwMjIyMywgMC44MDgzNjcsIDEuMDE0NTUsIDEuMjIwNzYsIDEuNDI3MyIsIFwKLSAgICAgICAgICAiMC4yNDQwNzksIDAuNDUzODIzLCAwLjYxODg3NywgMC44MjUxNCwgMS4wMzE0MSwgMS4yMzc1NiwgMS40NDQwMiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTI2NjcsIDAuNTEyOTgzLCAwLjgzODI4NywgMS4yNTE4NiwgMS42NTc2MywgMi4wNzE3LCAyLjQ3ODI0IiwgXAotICAgICAgICAgICIwLjExMjUxOSwgMC41MTI3NDgsIDAuODM4Mzg5LCAxLjI0NzQyLCAxLjY1NzMxLCAyLjA2ODMsIDIuNDc4MyIsIFwKLSAgICAgICAgICAiMC4xMTI1NDgsIDAuNTExNTQzLCAwLjgzNzc2NSwgMS4yNTA0MywgMS42NTcwNSwgMi4wNzExMywgMi40Nzk2OSIsIFwKLSAgICAgICAgICAiMC4xMTI1MzgsIDAuNTEyOTY5LCAwLjgzODMwMywgMS4yNDcyMiwgMS42NTczNiwgMi4wNjc5LCAyLjQ3ODUxIiwgXAotICAgICAgICAgICIwLjExMjQ2OSwgMC41MTIyNjgsIDAuODM4NTc2LCAxLjI1MDQ0LCAxLjY1Nzg5LCAyLjA3MDE1LCAyLjQ3OTY1IiwgXAotICAgICAgICAgICIwLjExMjQ3OCwgMC41MTE1NjMsIDAuODQwNzgzLCAxLjI1MDgyLCAxLjY2MzUzLCAyLjA2Nzg0LCAyLjQ3OTQyIiwgXAotICAgICAgICAgICIwLjExMjk2OSwgMC41MTMwMjQsIDAuODM4NjIzLCAxLjI0NzU2LCAxLjY2MDY1LCAyLjA3MDk5LCAyLjQ3ODY5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwMjU5MiwgMC4yODI1MzMsIDAuNDI1OTM4LCAwLjYwNTQ0NywgMC43ODQ0NzMsIDAuOTYzODA5LCAxLjE0MzEyIiwgXAotICAgICAgICAgICIwLjExNDQxMiwgMC4yOTQzMDEsIDAuNDM3NjEzLCAwLjYxNzA0OCwgMC43OTYyOTEsIDAuOTc1NTkxLCAxLjE1NDU2IiwgXAotICAgICAgICAgICIwLjEyOTcxNiwgMC4zMDk3NzQsIDAuNDUzMTQzLCAwLjYzMjcwNSwgMC44MTE2OTEsIDAuOTkwOTgsIDEuMTcwOTQiLCBcCi0gICAgICAgICAgIjAuMTQ1MDE0LCAwLjMyNTA5OSwgMC40Njg1MTMsIDAuNjQ3OTQ4LCAwLjgyNzA5OSwgMS4wMDYzMSwgMS4xODU1OCIsIFwKLSAgICAgICAgICAiMC4xNjAwNTQsIDAuMzQwMDUyLCAwLjQ4MzU0LCAwLjY2Mjc0NywgMC44NDE5NiwgMS4wMjEwNywgMS4yMDA1IiwgXAotICAgICAgICAgICIwLjE4NDE3LCAwLjM2NDEyLCAwLjUwNzU3NCwgMC42ODcxMTUsIDAuODY2MTI3LCAxLjA0NTQ0LCAxLjIyNDk3IiwgXAotICAgICAgICAgICIwLjIwMzk5NCwgMC4zODQxNjYsIDAuNTI3NjE3LCAwLjcwNzAyOSwgMC44ODYxODMsIDEuMDY1NSwgMS4yNDUiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDkxMTcyLCAwLjQ1MTQwNCwgMC43NDM0OTUsIDEuMTA1OSwgMS40NzAwNCwgMS44MzUxMSwgMi4yMDEzOSIsIFwKLSAgICAgICAgICAiMC4wOTExODcsIDAuNDUxMTg1LCAwLjc0MzAxLCAxLjEwNjc2LCAxLjQ2OTg1LCAxLjgzNTE5LCAyLjIwNDkxIiwgXAotICAgICAgICAgICIwLjA5MTA5MywgMC40NTAxMzYsIDAuNzQzNDE5LCAxLjEwNTcxLCAxLjQ3MDAyLCAxLjgzNDAyLCAyLjIwMDEzIiwgXAotICAgICAgICAgICIwLjA5MTAwOSwgMC40NTEyMjYsIDAuNzQzMzM2LCAxLjEwNjIyLCAxLjQ2OTk2LCAxLjgzNDU3LCAyLjE5ODc5IiwgXAotICAgICAgICAgICIwLjA5MTUyOCwgMC40NTAxNjgsIDAuNzQxNTg4LCAxLjEwNTY5LCAxLjQ3MDE2LCAxLjgzOTQ1LCAyLjE5ODYzIiwgXAotICAgICAgICAgICIwLjA5MTc5MiwgMC40NTEzNDEsIDAuNzQyMDU2LCAxLjEwNTg2LCAxLjQ2OTk4LCAxLjgzNTIzLCAyLjIwMTY0IiwgXAotICAgICAgICAgICIwLjA5MjkwOCwgMC40NTA1NzksIDAuNzQyMDE0LCAxLjEwNjI2LCAxLjQ2OTg5LCAxLjgzNTEzLCAyLjIwMTUyIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE1MjA4OCwgMC4zNjEzNiwgMC41MjYzNDEsIDAuNzMyNTA4LCAwLjkzODg2MiwgMS4xNDQ5NSwgMS4zNTExNCIsIFwKLSAgICAgICAgICAiMC4xNjIxMTgsIDAuMzcxNzI5LCAwLjUzNjc5LCAwLjc0MjkyMywgMC45NDkxNSwgMS4xNTUzMiwgMS4zNjEzMyIsIFwKLSAgICAgICAgICAiMC4xNzQ4NzYsIDAuMzg0NTI1LCAwLjU0OTUyMSwgMC43NTU3MDIsIDAuOTYyMDMsIDEuMTY4MTMsIDEuMzc0NjQiLCBcCi0gICAgICAgICAgIjAuMTg4MzI0LCAwLjM5Nzk4MiwgMC41NjI5ODEsIDAuNzY5MTg2LCAwLjk3NTQ1OSwgMS4xODE3NiwgMS4zODgxOSIsIFwKLSAgICAgICAgICAiMC4yMDE2MTUsIDAuNDExMzUsIDAuNTc2NDIzLCAwLjc4MjYxMywgMC45ODg3OTgsIDEuMTk1MzksIDEuNDAxNTgiLCBcCi0gICAgICAgICAgIjAuMjIyNjcxLCAwLjQzMjQxNSwgMC41OTc0ODMsIDAuODAzNjU2LCAxLjAwOTksIDEuMjE2MzIsIDEuNDIyNDYiLCBcCi0gICAgICAgICAgIjAuMjQxMTk0LCAwLjQ1MDkyOCwgMC42MTYwMTUsIDAuODIyMjc0LCAxLjAyODU2LCAxLjIzNDg4LCAxLjQ0MTIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTEyNjAxLCAwLjUxMTUzMiwgMC44NDA2NjUsIDEuMjUxODMsIDEuNjU4NzUsIDIuMDczMDMsIDIuNDc4MzIiLCBcCi0gICAgICAgICAgIjAuMTEyNTg3LCAwLjUxMTQ0NCwgMC44MzgwNDcsIDEuMjQ5MTQsIDEuNjU3NDIsIDIuMDcwOTUsIDIuNDg3MDYiLCBcCi0gICAgICAgICAgIjAuMTEyNjE1LCAwLjUxMTY5NiwgMC44MzkxMzksIDEuMjUwNywgMS42NTg2MiwgMi4wNzMxMiwgMi40Nzk0OCIsIFwKLSAgICAgICAgICAiMC4xMTI1NzcsIDAuNTEyMzIyLCAwLjg0MDc0MiwgMS4yNTAyMiwgMS42NTcwNCwgMi4wNzIzMiwgMi40Nzg2NCIsIFwKLSAgICAgICAgICAiMC4xMTI0MTIsIDAuNTEyNzU4LCAwLjgzODY0MiwgMS4yNDgxNCwgMS42NTc2NywgMi4wNjgxNSwgMi40Nzg2NCIsIFwKLSAgICAgICAgICAiMC4xMTMwMiwgMC41MTIzODcsIDAuODQwNzgyLCAxLjI0OTM0LCAxLjY1NzM3LCAyLjA3MTkyLCAyLjQ4MjE1IiwgXAotICAgICAgICAgICIwLjExMzE2NiwgMC41MTI1OTEsIDAuODM4MzM4LCAxLjI0NzAzLCAxLjY2MDQsIDIuMDY5MTEsIDIuNDc4NTkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDE5NDEsIDAuMDAxOTY2LCAwLjAwMTk2OSwgMC4wMDE5NywgMC4wMDE5NywgMC4wMDE5NzEsIDAuMDAxOTcyIiwgXAotICAgICAgICAgICIwLjAwMTkyOCwgMC4wMDE5NTUsIDAuMDAxOTU3LCAwLjAwMTk1OSwgMC4wMDE5NTksIDAuMDAxOTYsIDAuMDAxOTYiLCBcCi0gICAgICAgICAgIjAuMDAxOTE3LCAwLjAwMTk0OCwgMC4wMDE5NTEsIDAuMDAxOTUyLCAwLjAwMTk1MywgMC4wMDE5NTQsIDAuMDAxOTU0IiwgXAotICAgICAgICAgICIwLjAwMTkwNywgMC4wMDE5NDEsIDAuMDAxOTQ2LCAwLjAwMTk0OCwgMC4wMDE5NDgsIDAuMDAxOTQ5LCAwLjAwMTk1IiwgXAotICAgICAgICAgICIwLjAwMTg5OSwgMC4wMDE5MzYsIDAuMDAxOTQxLCAwLjAwMTk0NCwgMC4wMDE5NDQsIDAuMDAxOTQ1LCAwLjAwMTk0NiIsIFwKLSAgICAgICAgICAiMC4wMDE4ODksIDAuMDAxOTMxLCAwLjAwMTkzNywgMC4wMDE5NCwgMC4wMDE5NDIsIDAuMDAxOTQzLCAwLjAwMTk0NCIsIFwKLSAgICAgICAgICAiMC4wMDE4ODYsIDAuMDAxOTI4LCAwLjAwMTkzNSwgMC4wMDE5MzksIDAuMDAxOTQxLCAwLjAwMTk0MiwgMC4wMDE5NDMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI3NjksIDAuMDAyODIsIDAuMDAyODI2LCAwLjAwMjgzLCAwLjAwMjgzMSwgMC4wMDI4MzIsIDAuMDAyODMzIiwgXAotICAgICAgICAgICIwLjAwMjc2NiwgMC4wMDI4MTYsIDAuMDAyODIyLCAwLjAwMjgyNSwgMC4wMDI4MjYsIDAuMDAyODI3LCAwLjAwMjgyOCIsIFwKLSAgICAgICAgICAiMC4wMDI3NTgsIDAuMDAyODExLCAwLjAwMjgxNywgMC4wMDI4MiwgMC4wMDI4MjIsIDAuMDAyODIzLCAwLjAwMjgyMyIsIFwKLSAgICAgICAgICAiMC4wMDI3NTMsIDAuMDAyODA4LCAwLjAwMjgxNCwgMC4wMDI4MTcsIDAuMDAyODE5LCAwLjAwMjgyLCAwLjAwMjgyMSIsIFwKLSAgICAgICAgICAiMC4wMDI3NDksIDAuMDAyODA1LCAwLjAwMjgxMiwgMC4wMDI4MTUsIDAuMDAyODE3LCAwLjAwMjgxOCwgMC4wMDI4MTkiLCBcCi0gICAgICAgICAgIjAuMDAyNzQsIDAuMDAyOCwgMC4wMDI4MDgsIDAuMDAyODEzLCAwLjAwMjgxNSwgMC4wMDI4MTYsIDAuMDAyODE3IiwgXAotICAgICAgICAgICIwLjAwMjczNCwgMC4wMDI3OTcsIDAuMDAyODA2LCAwLjAwMjgxMSwgMC4wMDI4MTMsIDAuMDAyODE1LCAwLjAwMjgxNiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTc2MSwgMC4wMDE3ODYsIDAuMDAxNzg4LCAwLjAwMTc5LCAwLjAwMTc5MSwgMC4wMDE3OTEsIDAuMDAxNzkzIiwgXAotICAgICAgICAgICIwLjAwMTc1MSwgMC4wMDE3NzksIDAuMDAxNzgxLCAwLjAwMTc4NSwgMC4wMDE3ODQsIDAuMDAxNzg0LCAwLjAwMTc4NCIsIFwKLSAgICAgICAgICAiMC4wMDE3MzUsIDAuMDAxNzY3LCAwLjAwMTc3MSwgMC4wMDE3NzMsIDAuMDAxNzc0LCAwLjAwMTc3NCwgMC4wMDE3NzQiLCBcCi0gICAgICAgICAgIjAuMDAxNzIsIDAuMDAxNzU3LCAwLjAwMTc2MiwgMC4wMDE3NjQsIDAuMDAxNzY1LCAwLjAwMTc2NiwgMC4wMDE3NjYiLCBcCi0gICAgICAgICAgIjAuMDAxNzA2LCAwLjAwMTc1LCAwLjAwMTc1NSwgMC4wMDE3NTcsIDAuMDAxNzU5LCAwLjAwMTc2LCAwLjAwMTc2MSIsIFwKLSAgICAgICAgICAiMC4wMDE2OTUsIDAuMDAxNzQxLCAwLjAwMTc0OSwgMC4wMDE3NTIsIDAuMDAxNzU0LCAwLjAwMTc1NCwgMC4wMDE3NTUiLCBcCi0gICAgICAgICAgIjAuMDAxNjg3LCAwLjAwMTczNywgMC4wMDE3NDUsIDAuMDAxNzQ5LCAwLjAwMTc1MSwgMC4wMDE3NTIsIDAuMDAxNzUzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyNjMyLCAwLjAwMjY4NSwgMC4wMDI2OTIsIDAuMDAyNjk2LCAwLjAwMjY5NywgMC4wMDI2OTksIDAuMDAyNjk5IiwgXAotICAgICAgICAgICIwLjAwMjYyMywgMC4wMDI2NzgsIDAuMDAyNjg0LCAwLjAwMjY4OCwgMC4wMDI2ODksIDAuMDAyNjksIDAuMDAyNjkxIiwgXAotICAgICAgICAgICIwLjAwMjYxMSwgMC4wMDI2NjksIDAuMDAyNjc2LCAwLjAwMjY4LCAwLjAwMjY4MiwgMC4wMDI2ODMsIDAuMDAyNjg0IiwgXAotICAgICAgICAgICIwLjAwMjYwMiwgMC4wMDI2NjIsIDAuMDAyNjcxLCAwLjAwMjY3NSwgMC4wMDI2NzcsIDAuMDAyNjc5LCAwLjAwMjY3OSIsIFwKLSAgICAgICAgICAiMC4wMDI1OTYsIDAuMDAyNjU3LCAwLjAwMjY2NiwgMC4wMDI2NzEsIDAuMDAyNjc0LCAwLjAwMjY3NSwgMC4wMDI2NzYiLCBcCi0gICAgICAgICAgIjAuMDAyNTg0LCAwLjAwMjY1LCAwLjAwMjY2MSwgMC4wMDI2NjcsIDAuMDAyNjcsIDAuMDAyNjcyLCAwLjAwMjY3MyIsIFwKLSAgICAgICAgICAiMC4wMDI1OCwgMC4wMDI2NDcsIDAuMDAyNjU5LCAwLjAwMjY2NiwgMC4wMDI2NjksIDAuMDAyNjcxLCAwLjAwMjY3MyIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBPUjRYMiAqCi0gKiAtLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoT1I0WDIpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4xNDE4MjQ7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDUyNjUwMzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA1MjE5Nzc7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNTI2NTAzOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDE0NCwgMC4wMDAxNDgsIDAuMDAwMTUsIDAuMDAwMTUyLCAwLjAwMDE1MywgMC4wMDAxNTQsIDAuMDAwMTU1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjkxLCAwLjAwMDI5MSwgMC4wMDAyOTEsIDAuMDAwMjkxLCAwLjAwMDI5MSwgMC4wMDAyOTEsIDAuMDAwMjkxIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA1MzQzNTQ7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNTMwNDc1OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDUzNDM1NDsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxNDMsIDAuMDAwMTQ2LCAwLjAwMDE1LCAwLjAwMDE1MiwgMC4wMDAxNTMsIDAuMDAwMTU1LCAwLjAwMDE1NSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDIwOCwgMC4wMDAyMDgsIDAuMDAwMjA4LCAwLjAwMDIwOCwgMC4wMDAyMDgsIDAuMDAwMjA4LCAwLjAwMDIwOCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQykgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNTkzNTMxOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDU5MDE2MTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA1OTM1MzE7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMTQ1LCAwLjAwMDE1MywgMC4wMDAxNTYsIDAuMDAwMTU3LCAwLjAwMDE1OCwgMC4wMDAxNTksIDAuMDAwMTU5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMTcsIDAuMDAwMTcsIDAuMDAwMTcsIDAuMDAwMTcsIDAuMDAwMTcsIDAuMDAwMTcsIDAuMDAwMTciKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEQpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDU5OTA3NTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA1OTkwNzU7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNTk5MDMzOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDA1LCAwLjAwMDA1LCAwLjAwMDA1LCAwLjAwMDA1LCAwLjAwMDA1LCAwLjAwMDA1LCAwLjAwMDA1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjE3LCAwLjAwMDIxNywgMC4wMDAyMTcsIDAuMDAwMjE3LCAwLjAwMDIxNiwgMC4wMDAyMTYsIDAuMDAwMjE2Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMjU2ODczOwotICAgIGZ1bmN0aW9uIDogIigoKEErQikrQykrRCkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEzNTExOCwgMC4zMTY5MzcsIDAuNDYwMjM4LCAwLjYzODk2LCAwLjgxNzUwMywgMC45OTYwMDQsIDEuMTc0NDYiLCBcCi0gICAgICAgICAgIjAuMTQ2ODI0LCAwLjMyODgyNSwgMC40NzIxNDcsIDAuNjUwODM3LCAwLjgyOTQsIDEuMDA3OSwgMS4xODYzNSIsIFwKLSAgICAgICAgICAiMC4xNjIwODIsIDAuMzQzOTAzLCAwLjQ4NzE4OCwgMC42NjU4NzgsIDAuODQ0NDQ5LCAxLjAyMjk2LCAxLjIwMTQxIiwgXAotICAgICAgICAgICIwLjE3Njk3NiwgMC4zNTkwMDIsIDAuNTAyMzAxLCAwLjY4MDk5OCwgMC44NTk1NjcsIDEuMDM4MTYsIDEuMjE2NTMiLCBcCi0gICAgICAgICAgIjAuMTkyNjUzLCAwLjM3NDU5MywgMC41MTc5MjEsIDAuNjk2NjA0LCAwLjg3NTE3MywgMS4wNTM2OCwgMS4yMzIyMSIsIFwKLSAgICAgICAgICAiMC4yMTcyMzIsIDAuMzk5MTcxLCAwLjU0MjQ4OCwgMC43MjEyNTUsIDAuODk5NzU3LCAxLjA3ODI1LCAxLjI1NjcxIiwgXAotICAgICAgICAgICIwLjIzODcyNSwgMC40MjA0NTEsIDAuNTYzNzYyLCAwLjc0MjQ0NywgMC45MjEwMTUsIDEuMDk5NTEsIDEuMjc4MDIiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk3NTksIDAuNDUxODI3LCAwLjc0MjI0MywgMS4xMDI4MywgMS40Njg0LCAxLjgyOTkxLCAyLjE5NTAzIiwgXAotICAgICAgICAgICIwLjA5NzQwNywgMC40NTE4MywgMC43NDA2ODYsIDEuMTA1MTMsIDEuNDY4MjMsIDEuODMxNDksIDIuMTk0NjIiLCBcCi0gICAgICAgICAgIjAuMDk3NDg5LCAwLjQ1Mjc4NywgMC43NDIwMzMsIDEuMTA1MTksIDEuNDY4MTYsIDEuODMxMjQsIDIuMTk0NDIiLCBcCi0gICAgICAgICAgIjAuMDk3Mjk2LCAwLjQ1Mjc2NCwgMC43NDIxMjEsIDEuMTA1MTcsIDEuNDY4MzQsIDEuODMxMTEsIDIuMTk0NjgiLCBcCi0gICAgICAgICAgIjAuMDk3MTY5LCAwLjQ1MjE2NywgMC43NDIwMDksIDEuMTA1MjEsIDEuNDY4NDMsIDEuODMxNSwgMi4xOTQyOCIsIFwKLSAgICAgICAgICAiMC4wOTY5NTMsIDAuNDUyNDE1LCAwLjc0MjEwMywgMS4xMDI3OSwgMS40Njg0MywgMS44MzE3LCAyLjE5NDgxIiwgXAotICAgICAgICAgICIwLjA5NzIyOSwgMC40NTI1NzQsIDAuNzQxOTgxLCAxLjEwNTE5LCAxLjQ2ODQ1LCAxLjgzMTY3LCAyLjE5MTU2Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMzOTg5NCwgMC41NzI2MTYsIDAuNzM5MjIzLCAwLjk0NTcyOCwgMS4xNTE5NiwgMS4zNTgxOSwgMS41NjQ0NCIsIFwKLSAgICAgICAgICAiMC4zNTExMTksIDAuNTg0NTE2LCAwLjc1MTA5OSwgMC45NTc1OTQsIDEuMTYzODIsIDEuMzcwMDIsIDEuNTc2NDIiLCBcCi0gICAgICAgICAgIjAuMzYzOTg3LCAwLjU5NzUxMywgMC43NjQwODYsIDAuOTcwNjIsIDEuMTc2ODEsIDEuMzgzMDksIDEuNTg5NCIsIFwKLSAgICAgICAgICAiMC4zNzYzOTQsIDAuNjA5NjcyLCAwLjc3NjIzOCwgMC45ODI3MzMsIDEuMTg4OTYsIDEuMzk1MTUsIDEuNjAxNTciLCBcCi0gICAgICAgICAgIjAuMzg3NDYxLCAwLjYyMDk0NCwgMC43ODc0ODIsIDAuOTk0MDM4LCAxLjIwMDI0LCAxLjQwNjQ1LCAxLjYxMjgxIiwgXAotICAgICAgICAgICIwLjQwNTIyNywgMC42Mzg2MjUsIDAuODA1MjEyLCAxLjAxMTcxLCAxLjIxNzkzLCAxLjQyNDEsIDEuNjMwNTQiLCBcCi0gICAgICAgICAgIjAuNDE5NDQ4LCAwLjY1Mjk1NiwgMC44MTk2MjIsIDEuMDI2MTMsIDEuMjMyMzUsIDEuNDM4NiwgMS42NDQ4NCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNTY1NDIsIDAuNTQyNjc5LCAwLjg2MDUwMSwgMS4yNjQ5NywgMS42NzMzLCAyLjA3ODUxLCAyLjQ5MTIxIiwgXAotICAgICAgICAgICIwLjE1NjgxMiwgMC41NDIyMywgMC44NjA1MiwgMS4yNjM2OCwgMS42NzI1MSwgMi4wODQ2OSwgMi40ODY3MSIsIFwKLSAgICAgICAgICAiMC4xNTY4ODYsIDAuNTQyMjMzLCAwLjg2MDUzMywgMS4yNjI0MiwgMS42NzIzNCwgMi4wODQ4NiwgMi40ODcxIiwgXAotICAgICAgICAgICIwLjE1NjYyNCwgMC41NDIyNTIsIDAuODYwNTI1LCAxLjI2NDA0LCAxLjY3MjU3LCAyLjA4NDY0LCAyLjQ4NjY1IiwgXAotICAgICAgICAgICIwLjE1Nzg2NSwgMC41NDIyNTksIDAuODYwMzUyLCAxLjI2NjUxLCAxLjY3MTQxLCAyLjA4MjU0LCAyLjQ4NzczIiwgXAotICAgICAgICAgICIwLjE1NjU1LCAwLjU0MjE4LCAwLjg2MDQ2OSwgMS4yNjM3MSwgMS42NzI0MSwgMi4wODQzNCwgMi40ODY2NSIsIFwKLSAgICAgICAgICAiMC4xNTcwOTQsIDAuNTQyMjI5LCAwLjg2MDM2NSwgMS4yNjUzOCwgMS42NzMyLCAyLjA3ODYxLCAyLjQ5MTU0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEzMDM1NiwgMC4zMTEwMzksIDAuNDU0MDYzLCAwLjYzMjU0MywgMC44MTA5ODUsIDAuOTg5MzcxLCAxLjE2Nzc4IiwgXAotICAgICAgICAgICIwLjE0MjA3NCwgMC4zMjI5NCwgMC40NjU5MTcsIDAuNjQ0NDMyLCAwLjgyMjg2OSwgMS4wMDEyNiwgMS4xNzk3MiIsIFwKLSAgICAgICAgICAiMC4xNTc0NDcsIDAuMzM4Mjc2LCAwLjQ4MTI3OCwgMC42NTk4NCwgMC44MzgyMDMsIDEuMDE2NiwgMS4xOTQ5NyIsIFwKLSAgICAgICAgICAiMC4xNzI3MTMsIDAuMzUzNTc5LCAwLjQ5NjU3NiwgMC42NzUwOCwgMC44NTM1MTksIDEuMDMxOTEsIDEuMjEwMzciLCBcCi0gICAgICAgICAgIjAuMTg3OTIsIDAuMzY4ODAyLCAwLjUxMTc5MywgMC42OTAzMTQsIDAuODY4NzU0LCAxLjA0NzE1LCAxLjIyNTYzIiwgXAotICAgICAgICAgICIwLjIxMjU4OCwgMC4zOTMzOTMsIDAuNTM2NDIxLCAwLjcxNDkxNiwgMC44OTMzNTksIDEuMDcxNzUsIDEuMjUwMTIiLCBcCi0gICAgICAgICAgIjAuMjMzNjc3LCAwLjQxNDUwNiwgMC41NTc1MjcsIDAuNzM2MTE1LCAwLjkxNDQ3MywgMS4wOTI4NywgMS4yNzEyNCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTU5NjcsIDAuNDUwMjgsIDAuNzQxMTE0LCAxLjEwNDA4LCAxLjQ2NTc2LCAxLjgyODM0LCAyLjE5NDUxIiwgXAotICAgICAgICAgICIwLjA5NTc4NiwgMC40NTA2NDEsIDAuNzQwMDY3LCAxLjEwNDQsIDEuNDY1NDUsIDEuODI4MzEsIDIuMTkzOTciLCBcCi0gICAgICAgICAgIjAuMDk1ODY5LCAwLjQ1MDU5LCAwLjc0MTAzMiwgMS4xMDQwMywgMS40NjcwMywgMS44Mjg1MiwgMi4xOTExOSIsIFwKLSAgICAgICAgICAiMC4wOTU3OTksIDAuNDUwNTgyLCAwLjc0MDIwOSwgMS4xMDQzNSwgMS40NjcwMSwgMS44MzAxNywgMi4xOTM4NyIsIFwKLSAgICAgICAgICAiMC4wOTU3MjUsIDAuNDUwNTg1LCAwLjc0MTE4OSwgMS4xMDQzNiwgMS40NjU0MywgMS44MjgyOCwgMi4xOTM5MSIsIFwKLSAgICAgICAgICAiMC4wOTU3NTMsIDAuNDUwNDY0LCAwLjc0MTAyNiwgMS4xMDM4NCwgMS40NjU2MywgMS44MzAyNCwgMi4xOTM0MSIsIFwKLSAgICAgICAgICAiMC4wOTYwNTksIDAuNDUwNDYxLCAwLjc0MDk0OCwgMS4xMDIxMSwgMS40NjU0MywgMS44MzEwOCwgMi4xOTEzNSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMzA0NywgMC41NjQwNTYsIDAuNzMwNjQzLCAwLjkzNzE0MiwgMS4xNDMzNywgMS4zNDk1NywgMS41NTU5OCIsIFwKLSAgICAgICAgICAiMC4zNDA4NTUsIDAuNTc0MzY0LCAwLjc0MDk0LCAwLjk0NzQ0MiwgMS4xNTM2NywgMS4zNTk4OCwgMS41NjYyOCIsIFwKLSAgICAgICAgICAiMC4zNTM0MzIsIDAuNTg2NzQ1LCAwLjc1MzMzOCwgMC45NTk4MjksIDEuMTY2MDYsIDEuMzcyMywgMS41Nzg2NiIsIFwKLSAgICAgICAgICAiMC4zNjUxODIsIDAuNTk3OTI3LCAwLjc2NDUyOSwgMC45NzEwMzksIDEuMTc3MjcsIDEuMzgzNSwgMS41ODk2OSIsIFwKLSAgICAgICAgICAiMC4zNzY1MjEsIDAuNjA5NzU3LCAwLjc3NjM1MywgMC45ODI4NDcsIDEuMTg5MDgsIDEuMzk1MjUsIDEuNjAxNjkiLCBcCi0gICAgICAgICAgIjAuMzkzNjUyLCAwLjYyNzAyMywgMC43OTM2MTEsIDEuMDAwMTEsIDEuMjA2MzQsIDEuNDEyNTEsIDEuNjE4OTUiLCBcCi0gICAgICAgICAgIjAuNDA4MjgsIDAuNjQxNjY4LCAwLjgwODI0NCwgMS4wMTQ3NiwgMS4yMjA5OSwgMS40MjcyNSwgMS42MzM2MSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNTY2NjcsIDAuNTQyMjI5LCAwLjg2MDUxOCwgMS4yNjM3LCAxLjY3MjYyLCAyLjA4NDc1LCAyLjQ4NjcxIiwgXAotICAgICAgICAgICIwLjE1NjcxMiwgMC41NDIyMzMsIDAuODYwNTEzLCAxLjI2MzMsIDEuNjcyMzYsIDIuMDg0ODgsIDIuNDg2NzciLCBcCi0gICAgICAgICAgIjAuMTU2MjIsIDAuNTQyMzM3LCAwLjg2MDUzOSwgMS4yNjQ0NywgMS42NzMwMSwgMi4wODQ4LCAyLjQ4Njc2IiwgXAotICAgICAgICAgICIwLjE1NjU0MywgMC41NDI2ODgsIDAuODYwNDM5LCAxLjI2NTAyLCAxLjY3MzI5LCAyLjA3NzksIDIuNDkyODYiLCBcCi0gICAgICAgICAgIjAuMTU2NjEsIDAuNTQyMjA2LCAwLjg2MDQ5NCwgMS4yNjQwNSwgMS42NzI0LCAyLjA4NDM5LCAyLjQ4NjYzIiwgXAotICAgICAgICAgICIwLjE1NjU1MSwgMC41NDIxNTIsIDAuODYwNDM4LCAxLjI2MzIzLCAxLjY3MjIxLCAyLjA4NDMsIDIuNDg2NjkiLCBcCi0gICAgICAgICAgIjAuMTU2MzY1LCAwLjU0MjIwMSwgMC44NjAzMzgsIDEuMjY0NjYsIDEuNjcyNzQsIDIuMDc5OTgsIDIuNDg2NTIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTI0MjUsIDAuMzA0MzcyLCAwLjQ0NzIyMywgMC42MjU1MzYsIDAuODAzOTU3LCAwLjk4MjIzNywgMS4xNjA1MyIsIFwKLSAgICAgICAgICAiMC4xMzYzNTQsIDAuMzE2NDcyLCAwLjQ1OTI2MiwgMC42Mzc2MzcsIDAuODE1OTg4LCAwLjk5NDMzMSwgMS4xNzI2MiIsIFwKLSAgICAgICAgICAiMC4xNTE2MzQsIDAuMzMxNzU4LCAwLjQ3NDU2NSwgMC42NTI5NywgMC44MzEyOTIsIDEuMDA5NjEsIDEuMTg3OTIiLCBcCi0gICAgICAgICAgIjAuMTY2NjgzLCAwLjM0Njg2OSwgMC40ODk2OTQsIDAuNjY3OTI3LCAwLjg0NjQwNCwgMS4wMjQ3MiwgMS4yMDMwMiIsIFwKLSAgICAgICAgICAiMC4xODIyNDgsIDAuMzYyNDQ2LCAwLjUwNTI2OCwgMC42ODM2NDMsIDAuODYxOTk2LCAxLjA0MDMzLCAxLjIxODY3IiwgXAotICAgICAgICAgICIwLjIwNjcwNiwgMC4zODY5NzcsIDAuNTI5ODEzLCAwLjcwODE4LCAwLjg4NjU0MywgMS4wNjQ4NiwgMS4yNDMxOCIsIFwKLSAgICAgICAgICAiMC4yMjc3NDEsIDAuNDA3ODc1LCAwLjU1MDcyOSwgMC43MjkxMDIsIDAuOTA3NDU4LCAxLjA4NTgxLCAxLjI2NDEiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk0NzY2LCAwLjQ0OTE3NywgMC43Mzg3OTYsIDEuMTAzMjgsIDEuNDY3MiwgMS44MjYyMSwgMi4xOTA2MiIsIFwKLSAgICAgICAgICAiMC4wOTQ2ODYsIDAuNDQ5NjUxLCAwLjczOTA1NiwgMS4xMDM1NCwgMS40NjcwNiwgMS44Mjc5NSwgMi4xOTA4MSIsIFwKLSAgICAgICAgICAiMC4wOTQ3MzEsIDAuNDQ5NTc3LCAwLjc0MDQ0NSwgMS4xMDM2LCAxLjQ2NDg5LCAxLjgyNzYzLCAyLjE5MDQ3IiwgXAotICAgICAgICAgICIwLjA5NDc3NCwgMC40NTAyMzYsIDAuNzQwNDA2LCAxLjEwMDUyLCAxLjQ2NDc0LCAxLjgyNzYzLCAyLjE5MzQ3IiwgXAotICAgICAgICAgICIwLjA5NDY0MiwgMC40NDk2MDYsIDAuNzM5MTM1LCAxLjEwMzIxLCAxLjQ2NDc2LCAxLjgyNzYxLCAyLjE5NDExIiwgXAotICAgICAgICAgICIwLjA5NDg4MiwgMC40NTAxMjIsIDAuNzQwMzk3LCAxLjEwMTk1LCAxLjQ2NDk3LCAxLjgyNzcsIDIuMTkwNDgiLCBcCi0gICAgICAgICAgIjAuMDk1NTE5LCAwLjQ0OTU5NCwgMC43NDA0MDQsIDEuMTAzNDksIDEuNDY0OTIsIDEuODI3OTcsIDIuMTkwOCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMTI1MzcsIDAuNTQ2MDUsIDAuNzEyNjAzLCAwLjkxOTE2OCwgMS4xMjUzNiwgMS4zMzE1NSwgMS41Mzc5NCIsIFwKLSAgICAgICAgICAiMC4zMjI3MTEsIDAuNTU1Mjk1LCAwLjcyMTg5NiwgMC45Mjg0MDMsIDEuMTM0NjQsIDEuMzQwODYsIDEuNTQ3MjUiLCBcCi0gICAgICAgICAgIjAuMzM0MzQ1LCAwLjU2NzY1NCwgMC43MzQyMjUsIDAuOTQwNzM2LCAxLjE0Njk3LCAxLjM1MzI5LCAxLjU1OTU2IiwgXAotICAgICAgICAgICIwLjM0NTcyOSwgMC41Nzg5NDMsIDAuNzQ1NDUyLCAwLjk1MTk5NSwgMS4xNTgxOSwgMS4zNjQ0NSwgMS41NzA3NiIsIFwKLSAgICAgICAgICAiMC4zNTcxNDcsIDAuNTg5ODg3LCAwLjc1NjYyNywgMC45NjMxMywgMS4xNjkzNywgMS4zNzU2MSwgMS41ODE5NyIsIFwKLSAgICAgICAgICAiMC4zNzUwNjgsIDAuNjA4MDk2LCAwLjc3NDY5OSwgMC45ODEyMTQsIDEuMTg3NDUsIDEuMzkzNzgsIDEuNjAwMDUiLCBcCi0gICAgICAgICAgIjAuMzkwNTE5LCAwLjYyMzk3MSwgMC43OTA1MzQsIDAuOTk3MDk5LCAxLjIwMzI4LCAxLjQwOTU0LCAxLjYxNTg4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE1NzE0MywgMC41NDIyNjEsIDAuODYwMzQ0LCAxLjI2Mjg0LCAxLjY3MjAyLCAyLjA4NDYzLCAyLjQ4NzM1IiwgXAotICAgICAgICAgICIwLjE1NjUyNywgMC41NDMwNjMsIDAuODYwMzk5LCAxLjI2NjQyLCAxLjY3MTM0LCAyLjA4MDYyLCAyLjQ5MDM5IiwgXAotICAgICAgICAgICIwLjE1NjY1MiwgMC41NDIyOTksIDAuODYwMzY2LCAxLjI2MzU4LCAxLjY3MjgsIDIuMDg0OTQsIDIuNDg2OTUiLCBcCi0gICAgICAgICAgIjAuMTU2NDc1LCAwLjU0MjE3NiwgMC44NjAwNjYsIDEuMjYyMzIsIDEuNjc0MjUsIDIuMDgxNDksIDIuNDg4NDUiLCBcCi0gICAgICAgICAgIjAuMTU2NjIxLCAwLjU0MjU2NSwgMC44NjAwNzksIDEuMjYzMzgsIDEuNjcyMjYsIDIuMDc5NjMsIDIuNDg3MjQiLCBcCi0gICAgICAgICAgIjAuMTU2ODk2LCAwLjU0MjQ0OCwgMC44NjAzNiwgMS4yNjQ0NCwgMS42NzI4NiwgMi4wODQ5NSwgMi40ODY4OCIsIFwKLSAgICAgICAgICAiMC4xNTY1OTgsIDAuNTQyMzA3LCAwLjg2MDI3NywgMS4yNjI5NSwgMS42NzQ1NywgMi4wODI0MiwgMi40ODc1MSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJEIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTc3MTcsIDAuMjk3NDYzLCAwLjQ0MDE2NSwgMC42MTg1MiwgMC43OTY5MzcsIDAuOTc1NDc3LCAxLjE1MzQzIiwgXAotICAgICAgICAgICIwLjEyOTY3NywgMC4zMDk0OTgsIDAuNDUyMTgzLCAwLjYzMDU3LCAwLjgwODk3OSwgMC45ODc0NDcsIDEuMTY1NTYiLCBcCi0gICAgICAgICAgIjAuMTQ1MDc4LCAwLjMyNDg4OSwgMC40Njc1ODQsIDAuNjQ1OTcxLCAwLjgyNDQ0MSwgMS4wMDI3LCAxLjE4MTIyIiwgXAotICAgICAgICAgICIwLjE2MDU5NSwgMC4zNDA0MzEsIDAuNDgzMTE4LCAwLjY2MTUwOCwgMC44NDAwMDQsIDEuMDE4MjMsIDEuMTk2NzIiLCBcCi0gICAgICAgICAgIjAuMTc2MDExLCAwLjM1NTkyNiwgMC40OTg2MTEsIDAuNjc3MDM3LCAwLjg1NTM0NSwgMS4wMzM4LCAxLjIxMjEyIiwgXAotICAgICAgICAgICIwLjIwMDI2NiwgMC4zNzk0OTEsIDAuNTIyMTgsIDAuNzAwNzEsIDAuODc5MjA1LCAxLjA1NzYzLCAxLjIzNTU5IiwgXAotICAgICAgICAgICIwLjIyMTI1NSwgMC40MDA5NjksIDAuNTQzNjg0LCAwLjcyMjA2MywgMC45MDA3MjMsIDEuMDc5MDIsIDEuMjU3MSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTQyMzMsIDAuNDQ3OTk3LCAwLjc0MDAwMywgMS4xMDM2MywgMS40NjQzNiwgMS44MjYwOCwgMi4xOTQ0OSIsIFwKLSAgICAgICAgICAiMC4wOTQyMTMsIDAuNDQ4MDg5LCAwLjczOTk0NiwgMS4xMDA0OCwgMS40NjQ0NiwgMS44MjYwNiwgMi4xODgzOCIsIFwKLSAgICAgICAgICAiMC4wOTQxMTEsIDAuNDQ5NTE3LCAwLjczOTk1MiwgMS4xMDA0OCwgMS40NjQ3MywgMS44MjUzNCwgMi4xODg3NyIsIFwKLSAgICAgICAgICAiMC4wOTQwMjIsIDAuNDQ4OTkyLCAwLjczOTkyOCwgMS4xMDA0OCwgMS40NjQ4MSwgMS44MjU0NywgMi4xODg4MSIsIFwKLSAgICAgICAgICAiMC4wOTQwNTYsIDAuNDQ5NDgxLCAwLjczOTkzMywgMS4xMDE1OCwgMS40NjY3OSwgMS44MjYzOCwgMi4xODkxNiIsIFwKLSAgICAgICAgICAiMC4wOTQyNDQsIDAuNDQ5ODYzLCAwLjczOTk0NSwgMS4xMDA2OSwgMS40NjMzNywgMS44MjU5OCwgMi4xODgzOCIsIFwKLSAgICAgICAgICAiMC4wOTQ5OCwgMC40NDkwMjcsIDAuNzM5OTU3LCAxLjEwMDQ4LCAxLjQ2MzMzLCAxLjgyNjA0LCAyLjE4ODM4Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI4ODA2NCwgMC41MjE0MTcsIDAuNjg3OTk0LCAwLjg5NDUxMywgMS4xMDA3NSwgMS4zMDcsIDEuNTEzMyIsIFwKLSAgICAgICAgICAiMC4yOTY5NDksIDAuNTMwNDQ0LCAwLjY5NzA0LCAwLjkwMzU0MSwgMS4xMDk3NywgMS4zMTU5NCwgMS41MjIzOSIsIFwKLSAgICAgICAgICAiMC4zMDgxNDMsIDAuNTQxMTAyLCAwLjcwNzY3LCAwLjkxNDE4NCwgMS4xMjA0NiwgMS4zMjY2NiwgMS41MzMiLCBcCi0gICAgICAgICAgIjAuMzE5MjAxLCAwLjU1MjgsIDAuNzE5MzA0LCAwLjkyNTg2NSwgMS4xMzIwNywgMS4zMzgzMywgMS41NDQ2NCIsIFwKLSAgICAgICAgICAiMC4zMzEwMDMsIDAuNTY0MjQyLCAwLjczMDgyOSwgMC45MzczNDcsIDEuMTQzNTksIDEuMzQ5ODUsIDEuNTU2MjEiLCBcCi0gICAgICAgICAgIjAuMzQ5MzI4LCAwLjU4MjczMSwgMC43NDkyOTUsIDAuOTU1ODMsIDEuMTYyMDcsIDEuMzY4MjQsIDEuNTc0NjgiLCBcCi0gICAgICAgICAgIjAuMzY2MzY1LCAwLjU5OTU2MSwgMC43NjYxMzMsIDAuOTcyNzA1LCAxLjE3ODkxLCAxLjM4NTA5LCAxLjU5MTUyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE1NjY1NywgMC41NDIxMzYsIDAuODYwMzcxLCAxLjI2NTA4LCAxLjY3MzA2LCAyLjA3ODg4LCAyLjQ4ODQ3IiwgXAotICAgICAgICAgICIwLjE1NjQ5NSwgMC41NDIyMywgMC44NjA0ODIsIDEuMjYzNDUsIDEuNjcxMDgsIDIuMDg0MiwgMi40ODY1MyIsIFwKLSAgICAgICAgICAiMC4xNTY2NzIsIDAuNTQyNTU1LCAwLjg2MDI3NSwgMS4yNjU0OSwgMS42NzUyMiwgMi4wODE3NiwgMi40ODc0MiIsIFwKLSAgICAgICAgICAiMC4xNTY4NzYsIDAuNTQyMTQzLCAwLjg2MDA4NCwgMS4yNjI3OSwgMS42NzE1MSwgMi4wODA3NCwgMi40ODg2MiIsIFwKLSAgICAgICAgICAiMC4xNTY1MjcsIDAuNTQyMTYyLCAwLjg2MDM2LCAxLjI2NTExLCAxLjY3MjQ5LCAyLjA4MDA0LCAyLjQ4NjQ3IiwgXAotICAgICAgICAgICIwLjE1NjIzNCwgMC41NDIwMzksIDAuODYwMjk4LCAxLjI2MywgMS42NzE5NSwgMi4wODQxOSwgMi40ODY3MyIsIFwKLSAgICAgICAgICAiMC4xNTYyNzIsIDAuNTQxOTUsIDAuODYwMjYxLCAxLjI2MjIxLCAxLjY3MTU4LCAyLjA4MDc2LCAyLjQ4NjcxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyNDM2LCAwLjAwMjQ3LCAwLjAwMjQ3NCwgMC4wMDI0NzYsIDAuMDAyNDc4LCAwLjAwMjQ3OCwgMC4wMDI0NzgiLCBcCi0gICAgICAgICAgIjAuMDAyNDI1LCAwLjAwMjQ1OCwgMC4wMDI0NjIsIDAuMDAyNDY1LCAwLjAwMjQ2NiwgMC4wMDI0NjYsIDAuMDAyNDY4IiwgXAotICAgICAgICAgICIwLjAwMjQxNywgMC4wMDI0NTIsIDAuMDAyNDU2LCAwLjAwMjQ1OCwgMC4wMDI0NiwgMC4wMDI0NiwgMC4wMDI0NjEiLCBcCi0gICAgICAgICAgIjAuMDAyNDEsIDAuMDAyNDQ3LCAwLjAwMjQ1MiwgMC4wMDI0NTQsIDAuMDAyNDU1LCAwLjAwMjQ1NiwgMC4wMDI0NTciLCBcCi0gICAgICAgICAgIjAuMDAyNDA2LCAwLjAwMjQ0MywgMC4wMDI0NDgsIDAuMDAyNDUxLCAwLjAwMjQ1MiwgMC4wMDI0NTQsIDAuMDAyNDU0IiwgXAotICAgICAgICAgICIwLjAwMjM5NiwgMC4wMDI0MzcsIDAuMDAyNDQzLCAwLjAwMjQ0NywgMC4wMDI0NDksIDAuMDAyNDUsIDAuMDAyNDUxIiwgXAotICAgICAgICAgICIwLjAwMjM5LCAwLjAwMjQzMywgMC4wMDI0NCwgMC4wMDI0NDQsIDAuMDAyNDQ2LCAwLjAwMjQ0OCwgMC4wMDI0NDkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDM3MDksIDAuMDAzNzgxLCAwLjAwMzc5NSwgMC4wMDM4MDIsIDAuMDAzODA2LCAwLjAwMzgwOCwgMC4wMDM4MSIsIFwKLSAgICAgICAgICAiMC4wMDM3MDcsIDAuMDAzNzc5LCAwLjAwMzc5MiwgMC4wMDM3OTksIDAuMDAzODAyLCAwLjAwMzgwNCwgMC4wMDM4MDYiLCBcCi0gICAgICAgICAgIjAuMDAzNzAyLCAwLjAwMzc3NSwgMC4wMDM3ODgsIDAuMDAzNzk1LCAwLjAwMzc5OCwgMC4wMDM4LCAwLjAwMzgwMiIsIFwKLSAgICAgICAgICAiMC4wMDM3LCAwLjAwMzc3MiwgMC4wMDM3ODUsIDAuMDAzNzkyLCAwLjAwMzc5NSwgMC4wMDM3OTcsIDAuMDAzNzk5IiwgXAotICAgICAgICAgICIwLjAwMzY5NSwgMC4wMDM3NjksIDAuMDAzNzgyLCAwLjAwMzc4OSwgMC4wMDM3OTMsIDAuMDAzNzk1LCAwLjAwMzc5NyIsIFwKLSAgICAgICAgICAiMC4wMDM2OTMsIDAuMDAzNzY3LCAwLjAwMzc4LCAwLjAwMzc4NywgMC4wMDM3OTEsIDAuMDAzNzkzLCAwLjAwMzc5NCIsIFwKLSAgICAgICAgICAiMC4wMDM2ODksIDAuMDAzNzY0LCAwLjAwMzc3OCwgMC4wMDM3ODUsIDAuMDAzNzg5LCAwLjAwMzc5MSwgMC4wMDM3OTMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDIxODgsIDAuMDAyMjI3LCAwLjAwMjIzMiwgMC4wMDIyMzUsIDAuMDAyMjM0LCAwLjAwMjIzNSwgMC4wMDIyMzYiLCBcCi0gICAgICAgICAgIjAuMDAyMTgyLCAwLjAwMjIyMSwgMC4wMDIyMjYsIDAuMDAyMjI5LCAwLjAwMjIyOSwgMC4wMDIyMywgMC4wMDIyMyIsIFwKLSAgICAgICAgICAiMC4wMDIxNzMsIDAuMDAyMjE1LCAwLjAwMjIyLCAwLjAwMjIyMiwgMC4wMDIyMjMsIDAuMDAyMjI1LCAwLjAwMjIyNSIsIFwKLSAgICAgICAgICAiMC4wMDIxNjUsIDAuMDAyMjA5LCAwLjAwMjIxNCwgMC4wMDIyMTcsIDAuMDAyMjE5LCAwLjAwMjIxOSwgMC4wMDIyMiIsIFwKLSAgICAgICAgICAiMC4wMDIxNTcsIDAuMDAyMjAzLCAwLjAwMjIxLCAwLjAwMjIxNCwgMC4wMDIyMTUsIDAuMDAyMjE2LCAwLjAwMjIxNyIsIFwKLSAgICAgICAgICAiMC4wMDIxNDYsIDAuMDAyMTk2LCAwLjAwMjIwNCwgMC4wMDIyMDgsIDAuMDAyMjExLCAwLjAwMjIxMSwgMC4wMDIyMTMiLCBcCi0gICAgICAgICAgIjAuMDAyMTM4LCAwLjAwMjE5LCAwLjAwMjE5OSwgMC4wMDIyMDQsIDAuMDAyMjA2LCAwLjAwMjIwOCwgMC4wMDIyMDkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDM1NjcsIDAuMDAzNjQsIDAuMDAzNjU0LCAwLjAwMzY2MSwgMC4wMDM2NjUsIDAuMDAzNjY3LCAwLjAwMzY2OSIsIFwKLSAgICAgICAgICAiMC4wMDM1NjIsIDAuMDAzNjM2LCAwLjAwMzY0OSwgMC4wMDM2NTcsIDAuMDAzNjYxLCAwLjAwMzY2MywgMC4wMDM2NjUiLCBcCi0gICAgICAgICAgIjAuMDAzNTU4LCAwLjAwMzYzMiwgMC4wMDM2NDUsIDAuMDAzNjUzLCAwLjAwMzY1NywgMC4wMDM2NTksIDAuMDAzNjYxIiwgXAotICAgICAgICAgICIwLjAwMzU1MywgMC4wMDM2MjcsIDAuMDAzNjQxLCAwLjAwMzY0OSwgMC4wMDM2NTMsIDAuMDAzNjU2LCAwLjAwMzY1NyIsIFwKLSAgICAgICAgICAiMC4wMDM1NTIsIDAuMDAzNjI2LCAwLjAwMzY0LCAwLjAwMzY0OCwgMC4wMDM2NTIsIDAuMDAzNjU0LCAwLjAwMzY1NiIsIFwKLSAgICAgICAgICAiMC4wMDM1NDgsIDAuMDAzNjIzLCAwLjAwMzYzNywgMC4wMDM2NDUsIDAuMDAzNjQ5LCAwLjAwMzY1MiwgMC4wMDM2NTMiLCBcCi0gICAgICAgICAgIjAuMDAzNTQ1LCAwLjAwMzYyMSwgMC4wMDM2MzUsIDAuMDAzNjQzLCAwLjAwMzY0NywgMC4wMDM2NSwgMC4wMDM2NTEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDE5NTIsIDAuMDAxOTg3LCAwLjAwMTk5MiwgMC4wMDE5OTMsIDAuMDAxOTk1LCAwLjAwMTk5NSwgMC4wMDE5OTYiLCBcCi0gICAgICAgICAgIjAuMDAxOTUxLCAwLjAwMTk4OCwgMC4wMDE5OTMsIDAuMDAxOTk0LCAwLjAwMTk5NSwgMC4wMDE5OTUsIDAuMDAxOTk2IiwgXAotICAgICAgICAgICIwLjAwMTk0NCwgMC4wMDE5ODMsIDAuMDAxOTg3LCAwLjAwMTk5LCAwLjAwMTk5MSwgMC4wMDE5OTEsIDAuMDAxOTkyIiwgXAotICAgICAgICAgICIwLjAwMTkzNCwgMC4wMDE5NzcsIDAuMDAxOTgyLCAwLjAwMTk4NCwgMC4wMDE5ODYsIDAuMDAxOTg4LCAwLjAwMTk4NyIsIFwKLSAgICAgICAgICAiMC4wMDE5MjUsIDAuMDAxOTcxLCAwLjAwMTk3NywgMC4wMDE5OCwgMC4wMDE5ODIsIDAuMDAxOTgzLCAwLjAwMTk4MyIsIFwKLSAgICAgICAgICAiMC4wMDE5MTMsIDAuMDAxOTYzLCAwLjAwMTk3LCAwLjAwMTk3NCwgMC4wMDE5NzYsIDAuMDAxOTc3LCAwLjAwMTk3OCIsIFwKLSAgICAgICAgICAiMC4wMDE5MDQsIDAuMDAxOTU3LCAwLjAwMTk2NSwgMC4wMDE5NywgMC4wMDE5NzIsIDAuMDAxOTc0LCAwLjAwMTk3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzQxOCwgMC4wMDM0OTMsIDAuMDAzNTA3LCAwLjAwMzUxNSwgMC4wMDM1MiwgMC4wMDM1MjIsIDAuMDAzNTI0IiwgXAotICAgICAgICAgICIwLjAwMzQxMywgMC4wMDM0ODYsIDAuMDAzNTAxLCAwLjAwMzUxLCAwLjAwMzUxNCwgMC4wMDM1MTcsIDAuMDAzNTE5IiwgXAotICAgICAgICAgICIwLjAwMzQxNCwgMC4wMDM0ODcsIDAuMDAzNSwgMC4wMDM1MDgsIDAuMDAzNTEyLCAwLjAwMzUxNCwgMC4wMDM1MTYiLCBcCi0gICAgICAgICAgIjAuMDAzNDA3LCAwLjAwMzQ4MiwgMC4wMDM0OTYsIDAuMDAzNTA0LCAwLjAwMzUwOSwgMC4wMDM1MTEsIDAuMDAzNTEzIiwgXAotICAgICAgICAgICIwLjAwMzQwMywgMC4wMDM0NzcsIDAuMDAzNDkyLCAwLjAwMzUwMSwgMC4wMDM1MDUsIDAuMDAzNTA4LCAwLjAwMzUxIiwgXAotICAgICAgICAgICIwLjAwMzM5OCwgMC4wMDM0NzQsIDAuMDAzNDksIDAuMDAzNDk4LCAwLjAwMzUwMywgMC4wMDM1MDYsIDAuMDAzNTA3IiwgXAotICAgICAgICAgICIwLjAwMzM5NSwgMC4wMDM0NzIsIDAuMDAzNDg3LCAwLjAwMzQ5NiwgMC4wMDM1MDEsIDAuMDAzNTA0LCAwLjAwMzUwNiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkQiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTc0MywgMC4wMDE3NzUsIDAuMDAxNzc2LCAwLjAwMTc4MiwgMC4wMDE3ODEsIDAuMDAxNzgyLCAwLjAwMTc4MiIsIFwKLSAgICAgICAgICAiMC4wMDE3NDMsIDAuMDAxNzc3LCAwLjAwMTc4LCAwLjAwMTc4MiwgMC4wMDE3ODIsIDAuMDAxNzgzLCAwLjAwMTc4MyIsIFwKLSAgICAgICAgICAiMC4wMDE3MzMsIDAuMDAxNzcxLCAwLjAwMTc3NCwgMC4wMDE3NzcsIDAuMDAxNzc4LCAwLjAwMTc3OCwgMC4wMDE3NzkiLCBcCi0gICAgICAgICAgIjAuMDAxNzIyLCAwLjAwMTc2NCwgMC4wMDE3NjgsIDAuMDAxNzcsIDAuMDAxNzcyLCAwLjAwMTc3MywgMC4wMDE3NzMiLCBcCi0gICAgICAgICAgIjAuMDAxNzEyLCAwLjAwMTc1NywgMC4wMDE3NjIsIDAuMDAxNzY1LCAwLjAwMTc2NiwgMC4wMDE3NjcsIDAuMDAxNzY4IiwgXAotICAgICAgICAgICIwLjAwMTY5OCwgMC4wMDE3NDYsIDAuMDAxNzUzLCAwLjAwMTc1OCwgMC4wMDE3NiwgMC4wMDE3NjEsIDAuMDAxNzYxIiwgXAotICAgICAgICAgICIwLjAwMTY5LCAwLjAwMTc0MSwgMC4wMDE3NDksIDAuMDAxNzU0LCAwLjAwMTc1NiwgMC4wMDE3NTcsIDAuMDAxNzU4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzMjc0LCAwLjAwMzM1MiwgMC4wMDMzNjcsIDAuMDAzMzc1LCAwLjAwMzM4LCAwLjAwMzM4MiwgMC4wMDMzODQiLCBcCi0gICAgICAgICAgIjAuMDAzMjY3LCAwLjAwMzM0NSwgMC4wMDMzNiwgMC4wMDMzNjgsIDAuMDAzMzczLCAwLjAwMzM3NSwgMC4wMDMzNzciLCBcCi0gICAgICAgICAgIjAuMDAzMjYsIDAuMDAzMzM3LCAwLjAwMzM1MywgMC4wMDMzNjEsIDAuMDAzMzY2LCAwLjAwMzM2OSwgMC4wMDMzNyIsIFwKLSAgICAgICAgICAiMC4wMDMyNTQsIDAuMDAzMzMzLCAwLjAwMzM0OCwgMC4wMDMzNTcsIDAuMDAzMzYxLCAwLjAwMzM2NCwgMC4wMDMzNjYiLCBcCi0gICAgICAgICAgIjAuMDAzMjUxLCAwLjAwMzMyOSwgMC4wMDMzNDQsIDAuMDAzMzUzLCAwLjAwMzM1OCwgMC4wMDMzNjEsIDAuMDAzMzYzIiwgXAotICAgICAgICAgICIwLjAwMzI0NywgMC4wMDMzMjQsIDAuMDAzMzM5LCAwLjAwMzM0OSwgMC4wMDMzNTQsIDAuMDAzMzU3LCAwLjAwMzM1OSIsIFwKLSAgICAgICAgICAiMC4wMDMyNDUsIDAuMDAzMzIsIDAuMDAzMzM2LCAwLjAwMzM0NiwgMC4wMDMzNTEsIDAuMDAzMzU1LCAwLjAwMzM1NyIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBTREZGU1JYTCAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoU0RGRlNSWEwpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4zMjI0NDY7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgZmYgKE4zNSxRQklOVCkgewotICAgIG5leHRfc3RhdGUgOiAiKChTRSBTSSkgKyAoIVNFIEQpKSI7Ci0gICAgY2xvY2tlZF9vbiA6ICJDSyI7Ci0gICAgY2xlYXIgOiAiKCFSTikiOwotICAgIHByZXNldCA6ICIoIVNOKSI7Ci0gICAgY2xlYXJfcHJlc2V0X3ZhcjEgOiBIOwotICAgIGNsZWFyX3ByZXNldF92YXIyIDogTDsKLSAgfQotICBwaW4oQ0spICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDU5MTUzNzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA1OTEyMjY7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNTkxNTM3OwotICAgIGNsb2NrIDogdHJ1ZTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDE5OTgsIDAuMDAxOTg1LCAwLjAwMTk3NiwgMC4wMDE5NjksIDAuMDAxOTY0LCAwLjAwMTk1NywgMC4wMDE5NTQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDU2ODksIDAuMDA1NjgxLCAwLjAwNTY3MiwgMC4wMDU2NjYsIDAuMDA1NjY1LCAwLjAwNTY2MywgMC4wMDU2NjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFEJlJOJiFTRSYhU0kmU04iOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1JOX0VRXzFfQU5fU0VfRVFfMF9BTl9TSV9FUV8wX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC40MjI2MzIsIDAuNDM0MzkyLCAwLjQ0OTYzNiwgMC40NjUxMDQsIDAuNDgwNTUyLCAwLjUwNDk3NywgMC41MjU5MTgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjIzODcxNiwgMC4yNDk5NTIsIDAuMjY1MDc5LCAwLjI3OTg0NSwgMC4yOTQ2MDksIDAuMzE3ODI2LCAwLjMzNjg2MSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNTcyMTg5OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDU3MDUxMTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA1NzIxODk7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyNzY3LCAwLjAwMjc1NywgMC4wMDI3NTIsIDAuMDAyNzQ4LCAwLjAwMjc0NiwgMC4wMDI3NDIsIDAuMDAyNzQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDM3NzMsIDAuMDAzNzY4LCAwLjAwMzc2NiwgMC4wMDM3NjQsIDAuMDAzNzYyLCAwLjAwMzc2LCAwLjAwMzc1OSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJSTiYhU0UmU04iOwotICAgICAgc2RmX2NvbmQgOiAiUk5fRVFfMV9BTl9TRV9FUV8wX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMTM3NSwgLTAuMTI2MjUsIC0wLjEyLCAtMC4xMDc1LCAtMC4wOTUsIC0wLjA3ODc1LCAtMC4wNyIsIFwKLSAgICAgICAgICAiLTAuMTQ4NzUsIC0wLjE0Mzc1LCAtMC4xMzEyNSwgLTAuMTE4NzUsIC0wLjEwNjI1LCAtMC4wOSwgLTAuMDgxMjUiLCBcCi0gICAgICAgICAgIi0wLjE2MTI1LCAtMC4xNTYyNSwgLTAuMTQzNzUsIC0wLjEzMTI1LCAtMC4xMTg3NSwgLTAuMTA4NzUsIC0wLjA5Mzc1IiwgXAotICAgICAgICAgICItMC4xOCwgLTAuMTY4NzUsIC0wLjE1NjI1LCAtMC4xNDM3NSwgLTAuMTM3NSwgLTAuMTIxMjUsIC0wLjEwNjI1IiwgXAotICAgICAgICAgICItMC4xOTI1LCAtMC4xODEyNSwgLTAuMTY4NzUsIC0wLjE1NjI1LCAtMC4xNSwgLTAuMTMzNzUsIC0wLjExODc1IiwgXAotICAgICAgICAgICItMC4yMTUsIC0wLjIwMzc1LCAtMC4xOTEyNSwgLTAuMTc4NzUsIC0wLjE3MjUsIC0wLjE1NjI1LCAtMC4xNDEyNSIsIFwKLSAgICAgICAgICAiLTAuMjM2MjUsIC0wLjIyNSwgLTAuMjEyNSwgLTAuMiwgLTAuMTg3NSwgLTAuMTcxMjUsIC0wLjE2MjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMzEyNSwgLTAuMDIsIC0wLjAwMTI1LCAwLjAxMTI1LCAwLjAyMzc1LCAwLjA0NjI1LCAwLjA2MTI1IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzEyNSwgLTAuMDEyNSwgMCwgMC4wMTI1LCAwLjAzNSwgMC4wNSIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNDM3NSwgLTAuMDMxMjUsIC0wLjAxMjUsIDAsIDAuMDIyNSwgMC4wMzc1IiwgXAotICAgICAgICAgICItMC4wNjc1LCAtMC4wNTYyNSwgLTAuMDQzNzUsIC0wLjAyNSwgLTAuMDEyNSwgMC4wMSwgMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjA4LCAtMC4wNjg3NSwgLTAuMDU2MjUsIC0wLjAzNzUsIC0wLjAyNSwgLTAuMDAyNSwgMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wOTYyNSwgLTAuMDg1LCAtMC4wNzI1LCAtMC4wNiwgLTAuMDQxMjUsIC0wLjAyNSwgLTAuMDAzNzUiLCBcCi0gICAgICAgICAgIi0wLjExNzUsIC0wLjEsIC0wLjA4NzUsIC0wLjA3NSwgLTAuMDYyNSwgLTAuMDQsIC0wLjAxODc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJSTiYhU0UmU04iOwotICAgICAgc2RmX2NvbmQgOiAiUk5fRVFfMV9BTl9TRV9FUV8wX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjU2MjUsIDAuMjQ1LCAwLjIyNjI1LCAwLjIxMzc1LCAwLjE5NSwgMC4xNzI1LCAwLjE1NzUiLCBcCi0gICAgICAgICAgIjAuMjY3NSwgMC4yNTYyNSwgMC4yMzc1LCAwLjIyNSwgMC4yMDYyNSwgMC4xODM3NSwgMC4xNjg3NSIsIFwKLSAgICAgICAgICAiMC4yODYyNSwgMC4yNjg3NSwgMC4yNTYyNSwgMC4yMzc1LCAwLjIxODc1LCAwLjE5NjI1LCAwLjE4MTI1IiwgXAotICAgICAgICAgICIwLjI5ODc1LCAwLjI4NzUsIDAuMjY4NzUsIDAuMjUsIDAuMjM3NSwgMC4yMTUsIDAuMTkzNzUiLCBcCi0gICAgICAgICAgIjAuMzExMjUsIDAuMywgMC4yODEyNSwgMC4yNjI1LCAwLjI1LCAwLjIyNzUsIDAuMjA2MjUiLCBcCi0gICAgICAgICAgIjAuMzMzNzUsIDAuMzIyNSwgMC4zMDM3NSwgMC4yODUsIDAuMjcyNSwgMC4yNSwgMC4yMjg3NSIsIFwKLSAgICAgICAgICAiMC4zNTUsIDAuMzM3NSwgMC4zMjUsIDAuMzA2MjUsIDAuMjg3NSwgMC4yNjUsIDAuMjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yLCAwLjE4ODc1LCAwLjE3NjI1LCAwLjE1NzUsIDAuMTM4NzUsIDAuMTE2MjUsIDAuMDk1IiwgXAotICAgICAgICAgICIwLjIxMTI1LCAwLjIsIDAuMTg3NSwgMC4xNjg3NSwgMC4xNSwgMC4xMjc1LCAwLjEwNjI1IiwgXAotICAgICAgICAgICIwLjIzLCAwLjIxMjUsIDAuMiwgMC4xODEyNSwgMC4xNjg3NSwgMC4xNCwgMC4xMTg3NSIsIFwKLSAgICAgICAgICAiMC4yNDI1LCAwLjIyNSwgMC4yMTI1LCAwLjE5Mzc1LCAwLjE4MTI1LCAwLjE1MjUsIDAuMTMxMjUiLCBcCi0gICAgICAgICAgIjAuMjU1LCAwLjIzNzUsIDAuMjI1LCAwLjIwNjI1LCAwLjE5Mzc1LCAwLjE2NSwgMC4xNDM3NSIsIFwKLSAgICAgICAgICAiMC4yNzEyNSwgMC4yNiwgMC4yNDEyNSwgMC4yMjg3NSwgMC4yMSwgMC4xODc1LCAwLjE2NjI1IiwgXAotICAgICAgICAgICIwLjI4NjI1LCAwLjI3NSwgMC4yNjI1LCAwLjI0Mzc1LCAwLjIyNSwgMC4yMDI1LCAwLjE4MTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihRKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMDczNDQ5OwotICAgIGZ1bmN0aW9uIDogIk4zNSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3NlbnNlIDogbm9uX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiByaXNpbmdfZWRnZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzgsIDAuNDA1MjkyLCAwLjYzMzM4MSwgMS4wMTQxNywgMS4zOTMxLCAyLjI4MDYsIDIuNzg3NjUiLCBcCi0gICAgICAgICAgIjAuMzkxNzE2LCAwLjQxNzA3OSwgMC42NDQ4MjksIDEuMDI0MDgsIDEuNDA0NSwgMi4yODg4NSwgMi43OTk1MyIsIFwKLSAgICAgICAgICAiMC40MDY3NDQsIDAuNDMyMTMsIDAuNjU5ODg2LCAxLjAzOTY0LCAxLjQxOTU0LCAyLjMwMzIzLCAyLjgxNDciLCBcCi0gICAgICAgICAgIjAuNDIyMjYsIDAuNDQ3NjAxLCAwLjY3NTk2OSwgMS4wNTY4OSwgMS40MzUxMSwgMi4zMTk5OSwgMi44Mjk1NyIsIFwKLSAgICAgICAgICAiMC40Mzc2ODQsIDAuNDYyOTc2LCAwLjY5MTU5MSwgMS4wNzE3LCAxLjQ1MDQ4LCAyLjMzNTA5LCAyLjg0NDkiLCBcCi0gICAgICAgICAgIjAuNDYxODgxLCAwLjQ4NzE3LCAwLjcxNDk5MSwgMS4wOTU5NywgMS40NzM5MSwgMi4zNjIzNiwgMi44Njk4NSIsIFwKLSAgICAgICAgICAiMC40ODI1MjcsIDAuNTA3ODQyLCAwLjczNjQzMywgMS4xMTY5MiwgMS40OTUzNCwgMi4zODA2MiwgMi44ODk5MSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yNzg0NDEsIDAuMzI5NjQ3LCAwLjc5NTQwMiwgMS41NjY1NywgMi4zNTUwNCwgNC4xNzAxOCwgNS4xODY3OSIsIFwKLSAgICAgICAgICAiMC4yNzg1MDUsIDAuMzI5NTY4LCAwLjc4OTUyMSwgMS41NjM1NiwgMi4zNTUwMSwgNC4xNzQwMiwgNS4xODY3MiIsIFwKLSAgICAgICAgICAiMC4yNzg0NywgMC4zMjk1NjksIDAuNzg5NTM1LCAxLjU1ODgsIDIuMzU0OTIsIDQuMTc0MDEsIDUuMTg2NzMiLCBcCi0gICAgICAgICAgIjAuMjc4NTM0LCAwLjMyOTYxNywgMC43ODkyMjksIDEuNTY2MTIsIDIuMzU0NzEsIDQuMTE2NjUsIDUuMTg2NjkiLCBcCi0gICAgICAgICAgIjAuMjc4NDgxLCAwLjMyOTYxNiwgMC43OTI2NjMsIDEuNTcxMDgsIDIuMzU0NzEsIDQuMTczOTYsIDUuMTg2NyIsIFwKLSAgICAgICAgICAiMC4yNzg0MjEsIDAuMzI5NjM3LCAwLjc4OTQ3MiwgMS41NTQyOSwgMi4zMjcwMiwgNC4xNjk1NSwgNS4xODY4NSIsIFwKLSAgICAgICAgICAiMC4yNzg1MDgsIDAuMzI5NjIxLCAwLjc5MjY4LCAxLjU3MTg0LCAyLjM1NDY0LCA0LjE3Mzk1LCA1LjE4NjciKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuNDIyNjMyLCAwLjQ1MjQxMywgMC43MTk3NzYsIDEuMTY5MjQsIDEuNjE2MTcsIDIuNjU5NTQsIDMuMjU1NDciLCBcCi0gICAgICAgICAgIjAuNDM0MzkyLCAwLjQ2NDEzNCwgMC43MzE0NTMsIDEuMTgwOTksIDEuNjI3OSwgMi42NzEyOSwgMy4yNjY3OSIsIFwKLSAgICAgICAgICAiMC40NDk2MzYsIDAuNDc5MzgyLCAwLjc0NjcyMSwgMS4xOTYyMywgMS42NDMxNCwgMi42ODY1MywgMy4yODIwNCIsIFwKLSAgICAgICAgICAiMC40NjUxMDQsIDAuNDk1MTAyLCAwLjc2MjQxMywgMS4yMTE3LCAxLjY1ODY0LCAyLjY5Mzc5LCAzLjI5ODE1IiwgXAotICAgICAgICAgICIwLjQ4MDU1MiwgMC41MTAyOTcsIDAuNzc3NjUzLCAxLjIyNzE1LCAxLjY3NDA2LCAyLjcxNzQ0LCAzLjMxMjk2IiwgXAotICAgICAgICAgICIwLjUwNDk3NywgMC41MzQ3MjMsIDAuODAyMDg0LCAxLjI1MTU4LCAxLjY5ODQ5LCAyLjc0MTg3LCAzLjMzNzM4IiwgXAotICAgICAgICAgICIwLjUyNTkxOCwgMC41NTU2NjMsIDAuODI0Nzg4LCAxLjI3MjQyLCAxLjcxOTUsIDIuNzYyNzcsIDMuMzU4NjIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzEyODI2LCAwLjM3MDk3NCwgMC44OTkyMzIsIDEuNzg0MiwgMi42NjgyNywgNC43MjkwNywgNS45MDkxMyIsIFwKLSAgICAgICAgICAiMC4zMTI4NzYsIDAuMzcxMDIyLCAwLjkwMDIyNywgMS43ODUyMiwgMi42NjcyNSwgNC43MjMsIDUuOTE4MzkiLCBcCi0gICAgICAgICAgIjAuMzEyNzc4LCAwLjM3MDk4MSwgMC45MDAwNjUsIDEuNzg1MjMsIDIuNjY3MTMsIDQuNzIyODksIDUuOTE4MzciLCBcCi0gICAgICAgICAgIjAuMzEyNjQ2LCAwLjM3MTM4NCwgMC44OTkwODMsIDEuNzg0MTEsIDIuNjY2MjgsIDQuNzI2NiwgNS45MTY4NCIsIFwKLSAgICAgICAgICAiMC4zMTI3NzgsIDAuMzcwOTksIDAuODk5OTM0LCAxLjc4NTIsIDIuNjY3MTcsIDQuNzIyODksIDUuOTE4MzYiLCBcCi0gICAgICAgICAgIjAuMzEyNzgsIDAuMzcwOTkyLCAwLjg5OTgyNywgMS43ODUxOSwgMi42NjcxOCwgNC43MjI5MiwgNS45MTgzNyIsIFwKLSAgICAgICAgICAiMC4zMTI5NTgsIDAuMzcxMTIyLCAwLjg5NzgwOCwgMS43ODUxOSwgMi42NjY2OCwgNC43MjIwNiwgNS45MTc4NyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogY2xlYXI7Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjUwMTgzMiwgMC41MzE3OTMsIDAuODAwNTk3LCAxLjI0Nzk0LCAxLjY5NDg4LCAyLjczODAxLCAzLjMzNDYzIiwgXAotICAgICAgICAgICIwLjUxMzM4NiwgMC41NDMzNDcsIDAuODEyMTUzLCAxLjI1NjYyLCAxLjcwNTk1LCAyLjc1MDQyLCAzLjM0NTY5IiwgXAotICAgICAgICAgICIwLjUyODE5MiwgMC41NTgxNDksIDAuODI2OTYsIDEuMjc0MzEsIDEuNzIxMjMsIDIuNzY0MzgsIDMuMzYwOTYiLCBcCi0gICAgICAgICAgIjAuNTQyNzkyLCAwLjU3MjUzOCwgMC44NDE1NTcsIDEuMjg4ODksIDEuNzM1ODUsIDIuNzc4OTQsIDMuMzc0ODciLCBcCi0gICAgICAgICAgIjAuNTU3MjQ2LCAwLjU4Njk4NywgMC44NTYwMTMsIDEuMzAzMzQsIDEuNzUwMywgMi43OTMzOSwgMy4zODk0NCIsIFwKLSAgICAgICAgICAiMC41Nzg3NzcsIDAuNjA4NzQzLCAwLjg3NzU1MSwgMS4zMjQ4OSwgMS43NzE4MywgMi44MTQ5MiwgMy40MTE0MiIsIFwKLSAgICAgICAgICAiMC41OTU4MDIsIDAuNjI1NzY4LCAwLjg5NDQxOCwgMS4zMzg2NSwgMS43ODg5MywgMi44MzE0OSwgMy40MjgwMSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMTMwNDMsIDAuMzcxMjY0LCAwLjkwMDE2NCwgMS43ODQ4NywgMi42NjgxLCA0LjczMTcsIDUuOTE5MDIiLCBcCi0gICAgICAgICAgIjAuMzEzMDIyLCAwLjM3MTQ2OCwgMC45MDAyMjIsIDEuNzgwNTgsIDIuNjY1MjEsIDQuNzM3MjksIDUuOTE5MDUiLCBcCi0gICAgICAgICAgIjAuMzEzMDIxLCAwLjM3MDY2OSwgMC45MDAxODIsIDEuNzg0OTEsIDIuNjY4LCA0LjcxNzI5LCA1LjkxNjM3IiwgXAotICAgICAgICAgICIwLjMxMjk4NiwgMC4zNzE0MjksIDAuOTAwMzUyLCAxLjc4NDQ1LCAyLjY2ODEsIDQuNzE3NDYsIDUuOTE4MzIiLCBcCi0gICAgICAgICAgIjAuMzEyOTcsIDAuMzcxNDk2LCAwLjkwMDI3OCwgMS43ODQ0NSwgMi42NjgwNywgNC43MTc0MSwgNS45MTgwOSIsIFwKLSAgICAgICAgICAiMC4zMTMwMjYsIDAuMzcxMjg0LCAwLjkwMDIwOSwgMS43ODQ3NywgMi42Njc5LCA0LjczNTM5LCA1LjkxODE3IiwgXAotICAgICAgICAgICIwLjMxMzA2OSwgMC4zNzEyODYsIDAuODk5NDY2LCAxLjc4MSwgMi42Njc1OSwgNC43MTcyNywgNS45MTc5OCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcHJlc2V0OwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMzU2NjEsIDAuMzYwOTMzLCAwLjU4OTEyOSwgMC45Njk2OCwgMS4zNDg2MiwgMi4yMzQ1NSwgMi43NDAwNCIsIFwKLSAgICAgICAgICAiMC4zNDc0MiwgMC4zNzI2MDMsIDAuNjAxNjM5LCAwLjk4MDI0MiwgMS4zNjA0LCAyLjI0NTg1LCAyLjc1MTciLCBcCi0gICAgICAgICAgIjAuMzYxNzg2LCAwLjM4NzA1NywgMC42MTUwMzIsIDAuOTk0MzUzLCAxLjM3NTEyLCAyLjI2MDg1LCAyLjc2Nzc3IiwgXAotICAgICAgICAgICIwLjM3NTQyLCAwLjQwMDU5NiwgMC42Mjg3NzYsIDEuMDA4ODksIDEuMzg4MzcsIDIuMjc0MTksIDIuNzc5NSIsIFwKLSAgICAgICAgICAiMC4zODgyMzUsIDAuNDEzNjUzLCAwLjY0MTg2MSwgMS4wMjE1OCwgMS40MDE0NSwgMi4yODcwMSwgMi43OTE5MSIsIFwKLSAgICAgICAgICAiMC40MDk3NjgsIDAuNDM0ODksIDAuNjYyODczLCAxLjA0MjQsIDEuNDIyODQsIDIuMzA3MzQsIDIuODEzNjEiLCBcCi0gICAgICAgICAgIjAuNDI5ODE0LCAwLjQ1NTA3NywgMC42ODI5NTUsIDEuMDYyMzIsIDEuNDQzNDksIDIuMzI5MiwgMi44Mzc4MSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yNzcyMTIsIDAuMzI4NTAzLCAwLjc5NTM3MiwgMS41NzUzMiwgMi4zNTUxLCA0LjE3NDAxLCA1LjE5NzA4IiwgXAotICAgICAgICAgICIwLjI3Njg3LCAwLjMyODYxNSwgMC43OTU0MDIsIDEuNTc1NDIsIDIuMzU0ODYsIDQuMTcyMTYsIDUuMTk3NDEiLCBcCi0gICAgICAgICAgIjAuMjc2ODUsIDAuMzI4NTczLCAwLjc5NTM4MSwgMS41NzU0MSwgMi4zNTM5OCwgNC4xNzQwMSwgNS4xOTQxNSIsIFwKLSAgICAgICAgICAiMC4yNzcxMDMsIDAuMzI4NDcyLCAwLjc5NTM3LCAxLjU3NTMzLCAyLjM1NTE2LCA0LjE3Mzk4LCA1LjE5NTc3IiwgXAotICAgICAgICAgICIwLjI3NzEwOCwgMC4zMjg1MDksIDAuNzk1NDA4LCAxLjU3NTQzLCAyLjM1MzQ4LCA0LjE2NTExLCA1LjE4NjY4IiwgXAotICAgICAgICAgICIwLjI3Njg1OCwgMC4zMjg1NDIsIDAuNzk1NDEzLCAxLjU3NTQsIDIuMzUzNywgNC4xNzQsIDUuMTg2MiIsIFwKLSAgICAgICAgICAiMC4yNzcyMzUsIDAuMzI4NDA4LCAwLjc5NTM4MSwgMS41NzU0LCAyLjM1NDg4LCA0LjE2Mjg5LCA1LjE5NjM0Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjQ3MjQ5NCwgMC41MDIyNDQsIDAuNzcxMzk0LCAxLjIxODg3LCAxLjY2NTkyLCAyLjcwOTEyLCAzLjMwNDMiLCBcCi0gICAgICAgICAgIjAuNDg0NDc4LCAwLjUxNDQ0NywgMC43ODMzODIsIDEuMjI4NzQsIDEuNjcyODcsIDIuNzIxMTcsIDMuMzE3MTgiLCBcCi0gICAgICAgICAgIjAuNDk5MjU4LCAwLjUyOTIzMiwgMC43OTgxNjEsIDEuMjQyMDgsIDEuNjkyNywgMi43MjcwNywgMy4zMzE5NCIsIFwKLSAgICAgICAgICAiMC41MTM0MTQsIDAuNTQzMjU5LCAwLjgxMjMyNCwgMS4yNTk3NywgMS43MDY4LCAyLjc0OTg4LCAzLjMzNjU5IiwgXAotICAgICAgICAgICIwLjUyNzIxMywgMC41NTcxOSwgMC44MjYwMzYsIDEuMjcwMzksIDEuNzIwNjUsIDIuNzYyOTgsIDMuMzU5ODIiLCBcCi0gICAgICAgICAgIjAuNTQ5MTYzLCAwLjU3OTE0LCAwLjg0NzkxNywgMS4yOTIzLCAxLjc0MjYsIDIuNzg1MjUsIDMuMzgxNzUiLCBcCi0gICAgICAgICAgIjAuNTY4MTk2LCAwLjU5ODE2NCwgMC44NjcwOTksIDEuMzE0NTYsIDEuNzYxNTIsIDIuODA0NzQsIDMuNDAxMzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzEzMDI4LCAwLjM3MTI0MywgMC45MDAzLCAxLjc4NDc1LCAyLjY2OTA0LCA0LjcyNTA2LCA1LjkxMzk2IiwgXAotICAgICAgICAgICIwLjMxMzAwMSwgMC4zNzEzMDMsIDAuOTAwMDE5LCAxLjc4NjM3LCAyLjY2MzIsIDQuNzI2NTEsIDUuOTE4NzEiLCBcCi0gICAgICAgICAgIjAuMzEyODc4LCAwLjM3MTMwOCwgMC44OTk1OTMsIDEuNzg0NDQsIDIuNjY3NzcsIDQuNzI4MzEsIDUuOTE3ODQiLCBcCi0gICAgICAgICAgIjAuMzEyNjExLCAwLjM3MTMxMywgMC45MDAyMzgsIDEuNzg0NzYsIDIuNjY3NjMsIDQuNzMxMDYsIDUuOTA5ODgiLCBcCi0gICAgICAgICAgIjAuMzEzMDA1LCAwLjM3MTI3OSwgMC44OTk1NiwgMS43ODU4MywgMi42Njc1NCwgNC43MzIwOCwgNS45MTkwMyIsIFwKLSAgICAgICAgICAiMC4zMTMwMDUsIDAuMzcxMjc5LCAwLjg5OTU2OCwgMS43NzkwNiwgMi42Njc0NSwgNC43MzE5NCwgNS45MTkxMSIsIFwKLSAgICAgICAgICAiMC4zMTI5MTYsIDAuMzcxMzEzLCAwLjkwMDEwMywgMS43ODQ3NCwgMi42Njc2NCwgNC43MzU5LCA1LjkxNjMzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzA0NywgMC4wMDMwNDgsIDAuMDAzMDUsIDAuMDAzMDUxLCAwLjAwMzA1MSwgMC4wMDMwNTIsIDAuMDAzMDUxIiwgXAotICAgICAgICAgICIwLjAwMzA0MSwgMC4wMDMwNDIsIDAuMDAzMDQ0LCAwLjAwMzA0NSwgMC4wMDMwNDUsIDAuMDAzMDQ2LCAwLjAwMzA0NiIsIFwKLSAgICAgICAgICAiMC4wMDMwMzUsIDAuMDAzMDM2LCAwLjAwMzAzOCwgMC4wMDMwMzksIDAuMDAzMDQsIDAuMDAzMDQsIDAuMDAzMDQiLCBcCi0gICAgICAgICAgIjAuMDAzMDMxLCAwLjAwMzAzMiwgMC4wMDMwMzQsIDAuMDAzMDM1LCAwLjAwMzAzNSwgMC4wMDMwMzYsIDAuMDAzMDM2IiwgXAotICAgICAgICAgICIwLjAwMzAyOCwgMC4wMDMwMjksIDAuMDAzMDMxLCAwLjAwMzAzMiwgMC4wMDMwMzIsIDAuMDAzMDMzLCAwLjAwMzAzMyIsIFwKLSAgICAgICAgICAiMC4wMDMwMjMsIDAuMDAzMDIzLCAwLjAwMzAyNiwgMC4wMDMwMjcsIDAuMDAzMDI3LCAwLjAwMzAyOCwgMC4wMDMwMjgiLCBcCi0gICAgICAgICAgIjAuMDAzMDIsIDAuMDAzMDIxLCAwLjAwMzAyNCwgMC4wMDMwMjQsIDAuMDAzMDI1LCAwLjAwMzAyNSwgMC4wMDMwMjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI4ODEsIDAuMDAyODgyLCAwLjAwMjg4NSwgMC4wMDI4ODYsIDAuMDAyODg2LCAwLjAwMjg4NywgMC4wMDI4ODciLCBcCi0gICAgICAgICAgIjAuMDAyODc0LCAwLjAwMjg3NSwgMC4wMDI4NzgsIDAuMDAyODc5LCAwLjAwMjg3OSwgMC4wMDI4OCwgMC4wMDI4OCIsIFwKLSAgICAgICAgICAiMC4wMDI4NjksIDAuMDAyODcsIDAuMDAyODczLCAwLjAwMjg3NCwgMC4wMDI4NzQsIDAuMDAyODc0LCAwLjAwMjg3NCIsIFwKLSAgICAgICAgICAiMC4wMDI4NjYsIDAuMDAyODY3LCAwLjAwMjg3LCAwLjAwMjg3LCAwLjAwMjg3MSwgMC4wMDI4NzEsIDAuMDAyODcxIiwgXAotICAgICAgICAgICIwLjAwMjg2NCwgMC4wMDI4NjUsIDAuMDAyODY3LCAwLjAwMjg2OSwgMC4wMDI4NjksIDAuMDAyODY5LCAwLjAwMjg2OSIsIFwKLSAgICAgICAgICAiMC4wMDI4NjIsIDAuMDAyODYzLCAwLjAwMjg2NSwgMC4wMDI4NjcsIDAuMDAyODY3LCAwLjAwMjg2NywgMC4wMDI4NjciLCBcCi0gICAgICAgICAgIjAuMDAyODYzLCAwLjAwMjg2NCwgMC4wMDI4NjcsIDAuMDAyODY4LCAwLjAwMjg2OCwgMC4wMDI4NjgsIDAuMDAyODY4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUk4iOwotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzk1LCAwLjAwMzk1MSwgMC4wMDM5NTEsIDAuMDAzOTQ5LCAwLjAwMzk0OCwgMC4wMDM5NDcsIDAuMDAzOTQ2IiwgXAotICAgICAgICAgICIwLjAwMzk0NSwgMC4wMDM5NDUsIDAuMDAzOTQ2LCAwLjAwMzk0NCwgMC4wMDM5NDMsIDAuMDAzOTQyLCAwLjAwMzk0MiIsIFwKLSAgICAgICAgICAiMC4wMDM5NCwgMC4wMDM5NDEsIDAuMDAzOTQyLCAwLjAwMzk0LCAwLjAwMzkzOSwgMC4wMDM5MzgsIDAuMDAzOTM3IiwgXAotICAgICAgICAgICIwLjAwMzkzNywgMC4wMDM5MzgsIDAuMDAzOTM4LCAwLjAwMzkzNiwgMC4wMDM5MzUsIDAuMDAzOTM0LCAwLjAwMzkzNCIsIFwKLSAgICAgICAgICAiMC4wMDM5MzYsIDAuMDAzOTM2LCAwLjAwMzkzNiwgMC4wMDM5MzUsIDAuMDAzOTM0LCAwLjAwMzkzMywgMC4wMDM5MzIiLCBcCi0gICAgICAgICAgIjAuMDAzOTMzLCAwLjAwMzkzNCwgMC4wMDM5MzQsIDAuMDAzOTMyLCAwLjAwMzkzMiwgMC4wMDM5MywgMC4wMDM5MyIsIFwKLSAgICAgICAgICAiMC4wMDM5MzEsIDAuMDAzOTMxLCAwLjAwMzkzMiwgMC4wMDM5MywgMC4wMDM5MjksIDAuMDAzOTI4LCAwLjAwMzkyNyIpOwotICAgICAgfQotICAgICAgcmlzZV9wb3dlcihzY2FsYXIpIHsKLSAgICAgICAgdmFsdWVzKCIwIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiU04iOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzc3NiwgMC4wMDM3NzcsIDAuMDAzNzc5LCAwLjAwMzc3OSwgMC4wMDM3OCwgMC4wMDM3OCwgMC4wMDM3OCIsIFwKLSAgICAgICAgICAiMC4wMDM3NywgMC4wMDM3NzEsIDAuMDAzNzczLCAwLjAwMzc3MywgMC4wMDM3NzMsIDAuMDAzNzczLCAwLjAwMzc3NCIsIFwKLSAgICAgICAgICAiMC4wMDM3NjYsIDAuMDAzNzY3LCAwLjAwMzc2OSwgMC4wMDM3NjksIDAuMDAzNzY5LCAwLjAwMzc3LCAwLjAwMzc2OSIsIFwKLSAgICAgICAgICAiMC4wMDM3NjIsIDAuMDAzNzY0LCAwLjAwMzc2NiwgMC4wMDM3NjcsIDAuMDAzNzY3LCAwLjAwMzc2NiwgMC4wMDM3NjciLCBcCi0gICAgICAgICAgIjAuMDAzNzYsIDAuMDAzNzYxLCAwLjAwMzc2NCwgMC4wMDM3NjQsIDAuMDAzNzY0LCAwLjAwMzc2NSwgMC4wMDM3NjQiLCBcCi0gICAgICAgICAgIjAuMDAzNzU3LCAwLjAwMzc1OCwgMC4wMDM3NiwgMC4wMDM3NiwgMC4wMDM3NiwgMC4wMDM3NjEsIDAuMDAzNzYxIiwgXAotICAgICAgICAgICIwLjAwMzc1NSwgMC4wMDM3NTUsIDAuMDAzNzU3LCAwLjAwMzc1OCwgMC4wMDM3NTgsIDAuMDAzNzU4LCAwLjAwMzc1OCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjg3LCAwLjAwMjg3MSwgMC4wMDI4NzQsIDAuMDAyODc1LCAwLjAwMjg3NSwgMC4wMDI4NzYsIDAuMDAyODc2IiwgXAotICAgICAgICAgICIwLjAwMjg2NCwgMC4wMDI4NjUsIDAuMDAyODY4LCAwLjAwMjg2OSwgMC4wMDI4NjksIDAuMDAyODY5LCAwLjAwMjg3IiwgXAotICAgICAgICAgICIwLjAwMjg1OSwgMC4wMDI4NiwgMC4wMDI4NjMsIDAuMDAyODY0LCAwLjAwMjg2NCwgMC4wMDI4NjUsIDAuMDAyODY1IiwgXAotICAgICAgICAgICIwLjAwMjg1NiwgMC4wMDI4NTcsIDAuMDAyODYsIDAuMDAyODYxLCAwLjAwMjg2MSwgMC4wMDI4NjEsIDAuMDAyODYxIiwgXAotICAgICAgICAgICIwLjAwMjg1NCwgMC4wMDI4NTQsIDAuMDAyODU3LCAwLjAwMjg1OCwgMC4wMDI4NTksIDAuMDAyODU5LCAwLjAwMjg1OSIsIFwKLSAgICAgICAgICAiMC4wMDI4NTEsIDAuMDAyODUyLCAwLjAwMjg1NCwgMC4wMDI4NTUsIDAuMDAyODU2LCAwLjAwMjg1NiwgMC4wMDI4NTYiLCBcCi0gICAgICAgICAgIjAuMDAyODQ4LCAwLjAwMjg0OSwgMC4wMDI4NTIsIDAuMDAyODUzLCAwLjAwMjg1MywgMC4wMDI4NTQsIDAuMDAyODU0Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihRTikgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjA3MTA3OTM7Ci0gICAgZnVuY3Rpb24gOiAiUUJJTlQiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5vbl91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcmlzaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjQyMjEyMSwgMC40NDczODUsIDAuNjc0NTcsIDEuMDUzMywgMS40MzIwMSwgMi4zMTU0OSwgMi44MjA1IiwgXAotICAgICAgICAgICIwLjQzMzg3NCwgMC40NTkxMiwgMC42ODYzMDMsIDEuMDY1MDIsIDEuNDQzNzQsIDIuMzI3MjIsIDIuODMyMjUiLCBcCi0gICAgICAgICAgIjAuNDQ5MTI5LCAwLjQ3NDM3NywgMC43MDE1NiwgMS4wODAyOCwgMS40NTksIDIuMzQyNDgsIDIuODQ3NSIsIFwKLSAgICAgICAgICAiMC40NjQ1ODMsIDAuNDg5ODQsIDAuNzE3MDAzLCAxLjA5NTY3LCAxLjQ3NDQsIDIuMzU3OTgsIDIuODYyODMiLCBcCi0gICAgICAgICAgIjAuNDgwMDQyLCAwLjUwNTI5LCAwLjczMjQ3NCwgMS4xMTExOSwgMS40ODk5MSwgMi4zNzMzOSwgMi44Nzg0MSIsIFwKLSAgICAgICAgICAiMC41MDQ0NjcsIDAuNTI5NzE0LCAwLjc1Njg5OSwgMS4xMzU2MSwgMS41MTQzMywgMi4zOTc4MSwgMi45MDI4NCIsIFwKLSAgICAgICAgICAiMC41MjUzODYsIDAuNTUwNjQ4LCAwLjc3NzgyNywgMS4xNTY1OCwgMS41MzUyMywgMi40MTg3NiwgMi45MjM2NiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yNjk2MSwgMC4zMjA3NjgsIDAuNzgxNzQsIDEuNTUzMTksIDIuMzIzMDgsIDQuMTE4NTQsIDUuMTM4MzQiLCBcCi0gICAgICAgICAgIjAuMjcwMDA0LCAwLjMyMDU4NCwgMC43ODE5NzIsIDEuNTUzMTUsIDIuMzIzMDQsIDQuMTE4NTQsIDUuMTM4MTIiLCBcCi0gICAgICAgICAgIjAuMjY5OTk2LCAwLjMyMDU2MSwgMC43ODE5OTEsIDEuNTUzMTYsIDIuMzIzMDQsIDQuMTE4NTQsIDUuMTM4MTIiLCBcCi0gICAgICAgICAgIjAuMjY5NjA1LCAwLjMyMTM4MSwgMC43ODE3NDgsIDEuNTUyODUsIDIuMzIyODIsIDQuMTA5NywgNS4xMzgzOCIsIFwKLSAgICAgICAgICAiMC4yNjk5OTYsIDAuMzIwNTY1LCAwLjc4MjAwNywgMS41NTMxNSwgMi4zMjMwMywgNC4xMTg1NCwgNS4xMzgxMyIsIFwKLSAgICAgICAgICAiMC4yNjk5OTYsIDAuMzIwNTY2LCAwLjc4MTk5NCwgMS41NTMxNSwgMi4zMjMwMywgNC4xMTg1NCwgNS4xMzgxMyIsIFwKLSAgICAgICAgICAiMC4yNjk5NTQsIDAuMzIwNjUsIDAuNzgzMDY4LCAxLjU1MzI4LCAyLjMyMjg1LCA0LjExODUzLCA1LjEzODIiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuNDIyOTk2LCAwLjQ1MjY4OCwgMC43MTk5MzksIDEuMTY1NDksIDEuNjEwODIsIDIuNjUwMjYsIDMuMjQ0MiIsIFwKLSAgICAgICAgICAiMC40MzQ4MDIsIDAuNDY0NSwgMC43MzE3NzUsIDEuMTc3MiwgMS42MjI2NSwgMi42NjE4MywgMy4yNTYwMiIsIFwKLSAgICAgICAgICAiMC40NDk4NDYsIDAuNDc5NTQ2LCAwLjc0NjgyLCAxLjE5MjI2LCAxLjYzNzY5LCAyLjY3NjgzLCAzLjI3MTA3IiwgXAotICAgICAgICAgICIwLjQ2NTMwMywgMC40OTUsIDAuNzYyMzE0LCAxLjIwNzg0LCAxLjY1MzE2LCAyLjY5MjM1LCAzLjI4NjQ4IiwgXAotICAgICAgICAgICIwLjQ4MDcwNCwgMC41MTAzOTQsIDAuNzc3NzI4LCAxLjIyMzE2LCAxLjY2ODU2LCAyLjcwNzc1LCAzLjMwMTg3IiwgXAotICAgICAgICAgICIwLjUwNDgzNSwgMC41MzQ1MjgsIDAuODAxODExLCAxLjI0NzMyLCAxLjY5MjYzLCAyLjczMjA5LCAzLjMyNjA3IiwgXAotICAgICAgICAgICIwLjUyNTU0MywgMC41NTUyNDEsIDAuODIyNTU0LCAxLjI2ODA2LCAxLjcxMzQsIDIuNzUyNiwgMy4zNDY3MyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMDg5MTksIDAuMzY3NjE5LCAwLjg5NjQ2OSwgMS43Nzg1OSwgMi42NTk5NywgNC43MTcxMSwgNS44OTExNyIsIFwKLSAgICAgICAgICAiMC4zMDg5MSwgMC4zNjc2MTEsIDAuODk2NjQsIDEuNzc3NjksIDIuNjU5OTUsIDQuNzE3MDIsIDUuODkxMTgiLCBcCi0gICAgICAgICAgIjAuMzA4OTAxLCAwLjM2NzYxMSwgMC44OTY2ODEsIDEuNzc3NTUsIDIuNjU5OTQsIDQuNzE2OTEsIDUuODkxMTkiLCBcCi0gICAgICAgICAgIjAuMzA4OTI2LCAwLjM2NzYxNiwgMC44OTY3NzcsIDEuNzc3MjcsIDIuNjU5OTMsIDQuNzE1MDMsIDUuODkxMTMiLCBcCi0gICAgICAgICAgIjAuMzA4OTI2LCAwLjM2NzYxOCwgMC44OTU4ODUsIDEuNzc3NTEsIDIuNjU5OTQsIDQuNzE3MTEsIDUuODkxMTMiLCBcCi0gICAgICAgICAgIjAuMzA4OTIxLCAwLjM2NzYyMSwgMC44OTY2NTYsIDEuNzc2OCwgMi42NTg4MSwgNC43MTcwNCwgNS44OTEyIiwgXAotICAgICAgICAgICIwLjMwODkyMywgMC4zNjc2MTYsIDAuODk2Nzc1LCAxLjc3NzUxLCAyLjY1OTkzLCA0LjcxNzA2LCA1Ljg5MTE0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiBwcmVzZXQ7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjUwMTY4MiwgMC41MjY5MjQsIDAuNzU0MTE3LCAxLjEzMjc4LCAxLjUxMTQ3LCAyLjM5NTA4LCAyLjg5OTg0IiwgXAotICAgICAgICAgICIwLjUxMzIxNCwgMC41Mzg0NTQsIDAuNzY1NjQxLCAxLjE0NDMsIDEuNTIzMTEsIDIuNDA2NDEsIDIuOTExNTUiLCBcCi0gICAgICAgICAgIjAuNTI4MDE0LCAwLjU1MzI1MiwgMC43ODA0NTEsIDEuMTU5MTIsIDEuNTM3ODEsIDIuNDIxNDIsIDIuOTI2MTMiLCBcCi0gICAgICAgICAgIjAuNTQyNTk4LCAwLjU2NzgzNywgMC43OTUwMzUsIDEuMTczNywgMS41NTIzOCwgMi40MzYwMSwgMi45NDA5MSIsIFwKLSAgICAgICAgICAiMC41NTcwNSwgMC41ODIyOSwgMC44MDk0ODgsIDEuMTg4MTUsIDEuNTY2ODMsIDIuNDUwNDYsIDIuOTU1MzUiLCBcCi0gICAgICAgICAgIjAuNTc4NjI4LCAwLjYwMzg3NywgMC44MzEwNjcsIDEuMjA5NzMsIDEuNTg4NDEsIDIuNDcyMDQsIDIuOTc2ODQiLCBcCi0gICAgICAgICAgIjAuNTk1NjMsIDAuNjIwODcyLCAwLjg0ODAzNSwgMS4yMjY3OCwgMS42MDU0LCAyLjQ4OTEsIDIuOTkzOTkiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjcwMTM0LCAwLjMyMTQwNCwgMC43ODMzMjEsIDEuNTUzMjEsIDIuMzIzMjEsIDQuMTE4NDUsIDUuMTM4MjkiLCBcCi0gICAgICAgICAgIjAuMjcwMTE1LCAwLjMyMTM3MywgMC43ODMzNDksIDEuNTUzMDYsIDIuMzIzNywgNC4xMTg2MSwgNS4xMzgyNyIsIFwKLSAgICAgICAgICAiMC4yNzAxMjksIDAuMzIxMzc4LCAwLjc4MzMzNCwgMS41NTMyMSwgMi4zMjMyMSwgNC4xMTg1LCA1LjEzODM5IiwgXAotICAgICAgICAgICIwLjI3MDE0OCwgMC4zMjEzMzksIDAuNzgzMzg0LCAxLjU1MzE2LCAyLjMyMzIyLCA0LjExODUsIDUuMTM4MTQiLCBcCi0gICAgICAgICAgIjAuMjcwMTQ4LCAwLjMyMTMzOCwgMC43ODMzNjYsIDEuNTUzMTUsIDIuMzIzMjIsIDQuMTE4NSwgNS4xMzgxOSIsIFwKLSAgICAgICAgICAiMC4yNzAxMzQsIDAuMzIxNDMzLCAwLjc4MzM0OCwgMS41NTMyLCAyLjMyMzE5LCA0LjExODQ0LCA1LjEzODM4IiwgXAotICAgICAgICAgICIwLjI3MDE1MywgMC4zMjEzNzEsIDAuNzgzMjg1LCAxLjU1Mjg3LCAyLjMyMzAzLCA0LjExODM2LCA1LjEzODIzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiBjbGVhcjsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuNDcyMjc4LCAwLjQ5NzUxOSwgMC43MjQ3MTcsIDEuMTAzMzgsIDEuNDgyMDYsIDIuMzY1NjksIDIuODcwNzYiLCBcCi0gICAgICAgICAgIjAuNDg0Mjk3LCAwLjUwOTUzNCwgMC43MzY3MjksIDEuMTE1MzgsIDEuNDk0MjMsIDIuMzc3NjIsIDIuODgyNjMiLCBcCi0gICAgICAgICAgIjAuNDk5MDc0LCAwLjUyNDMxNywgMC43NTE0OTcsIDEuMTMwMTksIDEuNTA4ODUsIDIuMzkyMzQsIDIuODk3NDIiLCBcCi0gICAgICAgICAgIjAuNTEzMjU5LCAwLjUzODQ3MiwgMC43NjU3MDEsIDEuMTQ0MzcsIDEuNTIzMDQsIDIuNDA2NjgsIDIuOTExNDMiLCBcCi0gICAgICAgICAgIjAuNTI3MDMsIDAuNTUyMjczLCAwLjc3OTQ0MSwgMS4xNTgxNywgMS41MzY4LCAyLjQyMDU4LCAyLjkyNTM5IiwgXAotICAgICAgICAgICIwLjU0ODk3OSwgMC41NzQyMjMsIDAuODAxMzg3LCAxLjE4MDEzLCAxLjU1ODc1LCAyLjQ0MjQ1LCAyLjk0NzM1IiwgXAotICAgICAgICAgICIwLjU2ODAwNCwgMC41OTMyNDMsIDAuODIwNDQxLCAxLjE5OTExLCAxLjU3NzgsIDIuNDYxNDEsIDIuOTY2MDciKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjcwMTQ4LCAwLjMyMTM0OSwgMC43ODMzMzIsIDEuNTUzMiwgMi4zMjMyNiwgNC4xMTg1MiwgNS4xMzc5MiIsIFwKLSAgICAgICAgICAiMC4yNzAxMTYsIDAuMzIxMzczLCAwLjc4MzI5MSwgMS41NTI5NywgMi4zMjI1NCwgNC4xMTg0MiwgNS4xMzgxIiwgXAotICAgICAgICAgICIwLjI3MDA4MiwgMC4zMjEzNzIsIDAuNzgzMzA0LCAxLjU1MjkxLCAyLjMyMzA1LCA0LjExMjEzLCA1LjEzODI1IiwgXAotICAgICAgICAgICIwLjI2OTU3LCAwLjMyMTMyNCwgMC43ODMzMzgsIDEuNTUzMjEsIDIuMzIzMTEsIDQuMTE4NDgsIDUuMTM1MDYiLCBcCi0gICAgICAgICAgIjAuMjcwMTA0LCAwLjMyMTM3MSwgMC43ODMyOTEsIDEuNTUyODksIDIuMzIzMDIsIDQuMTE4MzQsIDUuMTM4MjIiLCBcCi0gICAgICAgICAgIjAuMjcwMTA0LCAwLjMyMTM3MSwgMC43ODMyOTMsIDEuNTUyODksIDIuMzIzMDEsIDQuMTE4MzUsIDUuMTM4MjEiLCBcCi0gICAgICAgICAgIjAuMjcwMTI2LCAwLjMyMTM3NSwgMC43ODMzMDcsIDEuNTUzMTksIDIuMzIzMjIsIDQuMTE4NDQsIDUuMTM4MzQiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzc5NTk5LCAwLjQwOTI5NSwgMC42NzY1OTYsIDEuMTIyMDcsIDEuNTY3MzYsIDIuNjA2NjQsIDMuMjAwNDgiLCBcCi0gICAgICAgICAgIjAuMzkxMjYxLCAwLjQyMDk1NiwgMC42ODgzMTYsIDEuMTMzNjYsIDEuNTc5MDksIDIuNjE4MjYsIDMuMjEyMSIsIFwKLSAgICAgICAgICAiMC40MDU3MTMsIDAuNDM1NDAyLCAwLjcwMjY5MywgMS4xNDgwOCwgMS41OTM1NiwgMi42MzI3MywgMy4yMjY2MiIsIFwKLSAgICAgICAgICAiMC40MTkyNTgsIDAuNDQ4OTUsIDAuNzE2MjQ3LCAxLjE2MTcsIDEuNjA3MDMsIDIuNjQ2MjcsIDMuMjQwMDciLCBcCi0gICAgICAgICAgIjAuNDMyMTc2LCAwLjQ2MTg4NSwgMC43MjkxNTUsIDEuMTc0NTYsIDEuNjIwMDIsIDIuNjU5MTQsIDMuMjUyOTkiLCBcCi0gICAgICAgICAgIjAuNDUzOTA0LCAwLjQ4MzYxNywgMC43NTA4ODEsIDEuMTk2MjgsIDEuNjQxNzMsIDIuNjgwOTEsIDMuMjc0NzUiLCBcCi0gICAgICAgICAgIjAuNDczOTg1LCAwLjUwMzY3NSwgMC43NzA5NjMsIDEuMjE2MzUsIDEuNjYxODYsIDIuNzAxMDUsIDMuMjk1MjEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzA4ODc3LCAwLjM2NzU4NSwgMC44OTY3ODcsIDEuNzc4MywgMi42NTk5NywgNC43MTcwMSwgNS44OTA3NyIsIFwKLSAgICAgICAgICAiMC4zMDg4NzEsIDAuMzY3NTkxLCAwLjg5Njc5OCwgMS43NzgzLCAyLjY1OTkzLCA0LjcxNzAyLCA1Ljg5MDQ4IiwgXAotICAgICAgICAgICIwLjMwODg3NSwgMC4zNjc1ODksIDAuODk2NzUyLCAxLjc3ODI1LCAyLjY1OTk0LCA0LjcxNywgNS44OTA3MiIsIFwKLSAgICAgICAgICAiMC4zMDg4NzEsIDAuMzY3NTg4LCAwLjg5Njc4OCwgMS43NzgyOCwgMi42NTk5OCwgNC43MTcwNiwgNS44OTA3NiIsIFwKLSAgICAgICAgICAiMC4zMDg4NzEsIDAuMzY3NTg2LCAwLjg5Njc3MiwgMS43NzgyOSwgMi42NTk5NiwgNC43MTUxMiwgNS44OTEwNyIsIFwKLSAgICAgICAgICAiMC4zMDg4NjcsIDAuMzY3NiwgMC44OTY3NDYsIDEuNzc4MjUsIDIuNjU5OTIsIDQuNzE3MDYsIDUuODkwOCIsIFwKLSAgICAgICAgICAiMC4zMDg4NzgsIDAuMzY3NTgyLCAwLjg5Njc5MiwgMS43NzgyOSwgMi42NTk5NywgNC43MTQ2NiwgNS44OTA3NyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI4ODEsIDAuMDAyODgyLCAwLjAwMjg4NSwgMC4wMDI4ODYsIDAuMDAyODg2LCAwLjAwMjg4NywgMC4wMDI4ODciLCBcCi0gICAgICAgICAgIjAuMDAyODc0LCAwLjAwMjg3NSwgMC4wMDI4NzgsIDAuMDAyODc5LCAwLjAwMjg3OSwgMC4wMDI4OCwgMC4wMDI4OCIsIFwKLSAgICAgICAgICAiMC4wMDI4NjksIDAuMDAyODcsIDAuMDAyODczLCAwLjAwMjg3NCwgMC4wMDI4NzQsIDAuMDAyODc0LCAwLjAwMjg3NCIsIFwKLSAgICAgICAgICAiMC4wMDI4NjYsIDAuMDAyODY3LCAwLjAwMjg3LCAwLjAwMjg3LCAwLjAwMjg3MSwgMC4wMDI4NzEsIDAuMDAyODcxIiwgXAotICAgICAgICAgICIwLjAwMjg2NCwgMC4wMDI4NjUsIDAuMDAyODY3LCAwLjAwMjg2OSwgMC4wMDI4NjksIDAuMDAyODY5LCAwLjAwMjg2OSIsIFwKLSAgICAgICAgICAiMC4wMDI4NjIsIDAuMDAyODYzLCAwLjAwMjg2NSwgMC4wMDI4NjcsIDAuMDAyODY3LCAwLjAwMjg2NywgMC4wMDI4NjciLCBcCi0gICAgICAgICAgIjAuMDAyODYzLCAwLjAwMjg2NCwgMC4wMDI4NjcsIDAuMDAyODY4LCAwLjAwMjg2OCwgMC4wMDI4NjgsIDAuMDAyODY4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzMDQ3LCAwLjAwMzA0OCwgMC4wMDMwNSwgMC4wMDMwNTEsIDAuMDAzMDUxLCAwLjAwMzA1MiwgMC4wMDMwNTEiLCBcCi0gICAgICAgICAgIjAuMDAzMDQxLCAwLjAwMzA0MiwgMC4wMDMwNDQsIDAuMDAzMDQ1LCAwLjAwMzA0NSwgMC4wMDMwNDYsIDAuMDAzMDQ2IiwgXAotICAgICAgICAgICIwLjAwMzAzNSwgMC4wMDMwMzYsIDAuMDAzMDM4LCAwLjAwMzAzOSwgMC4wMDMwNCwgMC4wMDMwNCwgMC4wMDMwNCIsIFwKLSAgICAgICAgICAiMC4wMDMwMzEsIDAuMDAzMDMyLCAwLjAwMzAzNCwgMC4wMDMwMzUsIDAuMDAzMDM1LCAwLjAwMzAzNiwgMC4wMDMwMzYiLCBcCi0gICAgICAgICAgIjAuMDAzMDI4LCAwLjAwMzAyOSwgMC4wMDMwMzEsIDAuMDAzMDMyLCAwLjAwMzAzMiwgMC4wMDMwMzMsIDAuMDAzMDMzIiwgXAotICAgICAgICAgICIwLjAwMzAyMywgMC4wMDMwMjMsIDAuMDAzMDI2LCAwLjAwMzAyNywgMC4wMDMwMjcsIDAuMDAzMDI4LCAwLjAwMzAyOCIsIFwKLSAgICAgICAgICAiMC4wMDMwMiwgMC4wMDMwMjEsIDAuMDAzMDI0LCAwLjAwMzAyNCwgMC4wMDMwMjUsIDAuMDAzMDI1LCAwLjAwMzAyNSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDM5NSwgMC4wMDM5NTEsIDAuMDAzOTUxLCAwLjAwMzk0OSwgMC4wMDM5NDgsIDAuMDAzOTQ3LCAwLjAwMzk0NiIsIFwKLSAgICAgICAgICAiMC4wMDM5NDUsIDAuMDAzOTQ1LCAwLjAwMzk0NiwgMC4wMDM5NDQsIDAuMDAzOTQzLCAwLjAwMzk0MiwgMC4wMDM5NDIiLCBcCi0gICAgICAgICAgIjAuMDAzOTQsIDAuMDAzOTQxLCAwLjAwMzk0MiwgMC4wMDM5NCwgMC4wMDM5MzksIDAuMDAzOTM4LCAwLjAwMzkzNyIsIFwKLSAgICAgICAgICAiMC4wMDM5MzcsIDAuMDAzOTM4LCAwLjAwMzkzOCwgMC4wMDM5MzYsIDAuMDAzOTM1LCAwLjAwMzkzNCwgMC4wMDM5MzQiLCBcCi0gICAgICAgICAgIjAuMDAzOTM2LCAwLjAwMzkzNiwgMC4wMDM5MzYsIDAuMDAzOTM1LCAwLjAwMzkzNCwgMC4wMDM5MzMsIDAuMDAzOTMyIiwgXAotICAgICAgICAgICIwLjAwMzkzMywgMC4wMDM5MzQsIDAuMDAzOTM0LCAwLjAwMzkzMiwgMC4wMDM5MzIsIDAuMDAzOTMsIDAuMDAzOTMiLCBcCi0gICAgICAgICAgIjAuMDAzOTMxLCAwLjAwMzkzMSwgMC4wMDM5MzIsIDAuMDAzOTMsIDAuMDAzOTI5LCAwLjAwMzkyOCwgMC4wMDM5MjciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoc2NhbGFyKSB7Ci0gICAgICAgIHZhbHVlcygiMCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI4NywgMC4wMDI4NzEsIDAuMDAyODc0LCAwLjAwMjg3NSwgMC4wMDI4NzUsIDAuMDAyODc2LCAwLjAwMjg3NiIsIFwKLSAgICAgICAgICAiMC4wMDI4NjQsIDAuMDAyODY1LCAwLjAwMjg2OCwgMC4wMDI4NjksIDAuMDAyODY5LCAwLjAwMjg2OSwgMC4wMDI4NyIsIFwKLSAgICAgICAgICAiMC4wMDI4NTksIDAuMDAyODYsIDAuMDAyODYzLCAwLjAwMjg2NCwgMC4wMDI4NjQsIDAuMDAyODY1LCAwLjAwMjg2NSIsIFwKLSAgICAgICAgICAiMC4wMDI4NTYsIDAuMDAyODU3LCAwLjAwMjg2LCAwLjAwMjg2MSwgMC4wMDI4NjEsIDAuMDAyODYxLCAwLjAwMjg2MSIsIFwKLSAgICAgICAgICAiMC4wMDI4NTQsIDAuMDAyODU0LCAwLjAwMjg1NywgMC4wMDI4NTgsIDAuMDAyODU5LCAwLjAwMjg1OSwgMC4wMDI4NTkiLCBcCi0gICAgICAgICAgIjAuMDAyODUxLCAwLjAwMjg1MiwgMC4wMDI4NTQsIDAuMDAyODU1LCAwLjAwMjg1NiwgMC4wMDI4NTYsIDAuMDAyODU2IiwgXAotICAgICAgICAgICIwLjAwMjg0OCwgMC4wMDI4NDksIDAuMDAyODUyLCAwLjAwMjg1MywgMC4wMDI4NTMsIDAuMDAyODU0LCAwLjAwMjg1NCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzc3NiwgMC4wMDM3NzcsIDAuMDAzNzc5LCAwLjAwMzc3OSwgMC4wMDM3OCwgMC4wMDM3OCwgMC4wMDM3OCIsIFwKLSAgICAgICAgICAiMC4wMDM3NywgMC4wMDM3NzEsIDAuMDAzNzczLCAwLjAwMzc3MywgMC4wMDM3NzMsIDAuMDAzNzczLCAwLjAwMzc3NCIsIFwKLSAgICAgICAgICAiMC4wMDM3NjYsIDAuMDAzNzY3LCAwLjAwMzc2OSwgMC4wMDM3NjksIDAuMDAzNzY5LCAwLjAwMzc3LCAwLjAwMzc2OSIsIFwKLSAgICAgICAgICAiMC4wMDM3NjIsIDAuMDAzNzY0LCAwLjAwMzc2NiwgMC4wMDM3NjcsIDAuMDAzNzY3LCAwLjAwMzc2NiwgMC4wMDM3NjciLCBcCi0gICAgICAgICAgIjAuMDAzNzYsIDAuMDAzNzYxLCAwLjAwMzc2NCwgMC4wMDM3NjQsIDAuMDAzNzY0LCAwLjAwMzc2NSwgMC4wMDM3NjQiLCBcCi0gICAgICAgICAgIjAuMDAzNzU3LCAwLjAwMzc1OCwgMC4wMDM3NiwgMC4wMDM3NiwgMC4wMDM3NiwgMC4wMDM3NjEsIDAuMDAzNzYxIiwgXAotICAgICAgICAgICIwLjAwMzc1NSwgMC4wMDM3NTUsIDAuMDAzNzU3LCAwLjAwMzc1OCwgMC4wMDM3NTgsIDAuMDAzNzU4LCAwLjAwMzc1OCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUk4pICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDU5MDIyOTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA1ODk1OTQ7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNTkwMjI5OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDM5MywgMC4wMDAzNzgsIDAuMDAwMzY4LCAwLjAwMDM2MywgMC4wMDAzNiwgMC4wMDAzNTgsIDAuMDAwMzU3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxOTI0LCAwLjAwMTkxNSwgMC4wMDE5MDgsIDAuMDAxOTA1LCAwLjAwMTkwMiwgMC4wMDE5MDEsIDAuMDAxOSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQmIVNFJiFTSSZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fU0VfRVFfMF9BTl9TSV9FUV8wX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC41MDE4MzIsIDAuNTEzMzg2LCAwLjUyODE5MiwgMC41NDI3OTIsIDAuNTU3MjQ2LCAwLjU3ODc3NywgMC41OTU4MDIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiByZWNvdmVyeV9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlNOIjsKLSAgICAgIHNkZl9jb25kIDogIlNOID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHJlY292ZXJ5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExMjUsIDAuMTAxMjUsIDAuMDg4NzUsIDAuMDcsIDAuMDUxMjUsIDAuMDI4NzUsIDAuMDA3NSIsIFwKLSAgICAgICAgICAiMC4xMjM3NSwgMC4xMTI1LCAwLjEsIDAuMDgxMjUsIDAuMDYyNSwgMC4wNCwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4xNDI1LCAwLjEzMTI1LCAwLjExMjUsIDAuMDkzNzUsIDAuMDgxMjUsIDAuMDUyNSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4xNTUsIDAuMTQzNzUsIDAuMTI1LCAwLjExMjUsIDAuMDkzNzUsIDAuMDcxMjUsIDAuMDUiLCBcCi0gICAgICAgICAgIjAuMTczNzUsIDAuMTYyNSwgMC4xNDM3NSwgMC4xMjUsIDAuMTEyNSwgMC4wODM3NSwgMC4wNjI1IiwgXAotICAgICAgICAgICIwLjE5NjI1LCAwLjE4NSwgMC4xNjYyNSwgMC4xNDc1LCAwLjEzNSwgMC4xMDYyNSwgMC4wODUiLCBcCi0gICAgICAgICAgIjAuMjE3NSwgMC4yMDYyNSwgMC4xODc1LCAwLjE2ODc1LCAwLjE1LCAwLjEyNzUsIDAuMTA2MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiU04iOwotICAgICAgdGltaW5nX3R5cGUgOiByZWNvdmVyeV9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEJiFTRSYhU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1NFX0VRXzBfQU5fU0lfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChyZWNvdmVyeV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xODc1LCAwLjE5ODc1LCAwLjIxMTI1LCAwLjIzLCAwLjI0MjUsIDAuMjY1LCAwLjI4IiwgXAotICAgICAgICAgICIwLjE3NjI1LCAwLjE4NzUsIDAuMiwgMC4yMTg3NSwgMC4yMzEyNSwgMC4yNTM3NSwgMC4yNjg3NSIsIFwKLSAgICAgICAgICAiMC4xNjM3NSwgMC4xNzUsIDAuMTg3NSwgMC4yMDYyNSwgMC4yMTg3NSwgMC4yNDEyNSwgMC4yNTYyNSIsIFwKLSAgICAgICAgICAiMC4xNTEyNSwgMC4xNjI1LCAwLjE3NSwgMC4xOTM3NSwgMC4yMDYyNSwgMC4yMjg3NSwgMC4yNDM3NSIsIFwKLSAgICAgICAgICAiMC4xMzg3NSwgMC4xNSwgMC4xNjg3NSwgMC4xODEyNSwgMC4xOTM3NSwgMC4yMTYyNSwgMC4yMzc1IiwgXAotICAgICAgICAgICIwLjEyODc1LCAwLjE0LCAwLjE1MjUsIDAuMTY1LCAwLjE4Mzc1LCAwLjIsIDAuMjIxMjUiLCBcCi0gICAgICAgICAgIjAuMTIsIDAuMTMxMjUsIDAuMTQzNzUsIDAuMTU2MjUsIDAuMTY4NzUsIDAuMTkxMjUsIDAuMjEyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJlbW92YWxfcmlzaW5nOwotICAgICAgd2hlbiA6ICJTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJTTiA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChyZW1vdmFsX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMzEyNSwgLTAuMDEzNzUsIC0wLjAwMTI1LCAwLjAxMTI1LCAwLjAzLCAwLjA1MjUsIDAuMDczNzUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzMTI1LCAtMC4wMTI1LCAwLCAwLjAxODc1LCAwLjA0MTI1LCAwLjA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA1NSwgLTAuMDQzNzUsIC0wLjAzMTI1LCAtMC4wMTI1LCAwLCAwLjAyODc1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICItMC4wNzM3NSwgLTAuMDU2MjUsIC0wLjA0Mzc1LCAtMC4wMzEyNSwgLTAuMDEyNSwgMC4wMSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDg2MjUsIC0wLjA3NSwgLTAuMDU2MjUsIC0wLjA0Mzc1LCAtMC4wMzEyNSwgLTAuMDAyNSwgMC4wMTI1IiwgXAotICAgICAgICAgICItMC4xMDg3NSwgLTAuMDk3NSwgLTAuMDg1LCAtMC4wNjYyNSwgLTAuMDUzNzUsIC0wLjAzMTI1LCAtMC4wMSIsIFwKLSAgICAgICAgICAiLTAuMTMsIC0wLjExODc1LCAtMC4xLCAtMC4wODc1LCAtMC4wNzUsIC0wLjA0NjI1LCAtMC4wMzEyNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oU0UpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTI3MDQzOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTI2OTk3OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTI3MDQzOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzU4LCAwLjAwMzU2OCwgMC4wMDM1NjQsIDAuMDAzNTYxLCAwLjAwMzU2LCAwLjAwMzU1NywgMC4wMDM1NTciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDQ3MDgsIDAuMDA0NjkxLCAwLjAwNDY3OCwgMC4wMDQ2NzEsIDAuMDA0NjY0LCAwLjAwNDY1OCwgMC4wMDQ2NTYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiUk4mU04iOwotICAgICAgc2RmX2NvbmQgOiAiUk5fRVFfMV9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjA1LCAtMC4wMzg3NSwgLTAuMDIsIC0wLjAwNzUsIDAuMDA1LCAwLjAyNzUsIDAuMDQ4NzUiLCBcCi0gICAgICAgICAgIi0wLjA2MTI1LCAtMC4wNSwgLTAuMDM3NSwgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLjAxNjI1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wNzM3NSwgLTAuMDYyNSwgLTAuMDUsIC0wLjAzNzUsIC0wLjAyNSwgLTAuMDAyNSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDkyNSwgLTAuMDgxMjUsIC0wLjA2MjUsIC0wLjA1LCAtMC4wMzc1LCAtMC4wMTUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjEwNSwgLTAuMDkzNzUsIC0wLjA4MTI1LCAtMC4wNjI1LCAtMC4wNSwgLTAuMDI3NSwgLTAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMTI3NSwgLTAuMTE2MjUsIC0wLjA5NzUsIC0wLjA4NSwgLTAuMDcyNSwgLTAuMDUsIC0wLjAyODc1IiwgXAotICAgICAgICAgICItMC4xNDI1LCAtMC4xMzEyNSwgLTAuMTE4NzUsIC0wLjEwNjI1LCAtMC4wODc1LCAtMC4wNjUsIC0wLjA1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDE4NzUsIC0wLjAwNzUsIDAuMDExMjUsIDAuMDIzNzUsIDAuMDM2MjUsIDAuMDU4NzUsIDAuMDczNzUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMTg3NSwgMCwgMC4wMTI1LCAwLjAyNSwgMC4wNDc1LCAwLjA2ODc1IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzEyNSwgLTAuMDEyNSwgMCwgMC4wMTI1LCAwLjAzNSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNDM3NSwgLTAuMDMxMjUsIC0wLjAxMjUsIDAsIDAuMDIyNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDY3NSwgLTAuMDU2MjUsIC0wLjA0Mzc1LCAtMC4wMjUsIC0wLjAxMjUsIDAuMDEsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjA4Mzc1LCAtMC4wNzI1LCAtMC4wNiwgLTAuMDQ3NSwgLTAuMDM1LCAtMC4wMTI1LCAwLjAwODc1IiwgXAotICAgICAgICAgICItMC4xMDUsIC0wLjA5Mzc1LCAtMC4wNzUsIC0wLjA2MjUsIC0wLjA1LCAtMC4wMjc1LCAtMC4wMTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJSTiZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJSTl9FUV8xX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjQzNzUsIDAuMjI2MjUsIDAuMjEzNzUsIDAuMTk1LCAwLjE3NjI1LCAwLjE1Mzc1LCAwLjEzODc1IiwgXAotICAgICAgICAgICIwLjI0ODc1LCAwLjIzNzUsIDAuMjE4NzUsIDAuMjA2MjUsIDAuMTg3NSwgMC4xNjUsIDAuMTUiLCBcCi0gICAgICAgICAgIjAuMjY3NSwgMC4yNSwgMC4yMzc1LCAwLjIxODc1LCAwLjIsIDAuMTc3NSwgMC4xNjI1IiwgXAotICAgICAgICAgICIwLjI4LCAwLjI2ODc1LCAwLjI1LCAwLjIzMTI1LCAwLjIxODc1LCAwLjE5LCAwLjE3NSIsIFwKLSAgICAgICAgICAiMC4yOTI1LCAwLjI4MTI1LCAwLjI2MjUsIDAuMjQzNzUsIDAuMjMxMjUsIDAuMjA4NzUsIDAuMTg3NSIsIFwKLSAgICAgICAgICAiMC4zMTUsIDAuMzAzNzUsIDAuMjg1LCAwLjI2NjI1LCAwLjI1Mzc1LCAwLjIzMTI1LCAwLjIxIiwgXAotICAgICAgICAgICIwLjMzNjI1LCAwLjMxODc1LCAwLjMwNjI1LCAwLjI4NzUsIDAuMjY4NzUsIDAuMjQ2MjUsIDAuMjMxMjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yNzUsIDAuMjU3NSwgMC4yNDUsIDAuMjI2MjUsIDAuMjA3NSwgMC4xODUsIDAuMTciLCBcCi0gICAgICAgICAgIjAuMjg2MjUsIDAuMjY4NzUsIDAuMjU2MjUsIDAuMjM3NSwgMC4yMTg3NSwgMC4xOTYyNSwgMC4xODEyNSIsIFwKLSAgICAgICAgICAiMC4yOTg3NSwgMC4yODc1LCAwLjI2ODc1LCAwLjI1LCAwLjIzNzUsIDAuMjE1LCAwLjE5Mzc1IiwgXAotICAgICAgICAgICIwLjMxMTI1LCAwLjMsIDAuMjgxMjUsIDAuMjY4NzUsIDAuMjUsIDAuMjI3NSwgMC4yMDYyNSIsIFwKLSAgICAgICAgICAiMC4zMjM3NSwgMC4zMTI1LCAwLjI5Mzc1LCAwLjI4MTI1LCAwLjI2MjUsIDAuMjQsIDAuMjI1IiwgXAotICAgICAgICAgICIwLjM0NjI1LCAwLjMyODc1LCAwLjMxLCAwLjI5NzUsIDAuMjc4NzUsIDAuMjU2MjUsIDAuMjQxMjUiLCBcCi0gICAgICAgICAgIjAuMzU1LCAwLjM0Mzc1LCAwLjMyNSwgMC4zMTI1LCAwLjI5Mzc1LCAwLjI3MTI1LCAwLjI1NjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTSSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjE5Nzc5OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYxODA1NjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2MTk3Nzk7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyNjEyLCAwLjAwMjYwMiwgMC4wMDI1OTcsIDAuMDAyNTk0LCAwLjAwMjU5MSwgMC4wMDI1ODgsIDAuMDAyNTg1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzODE3LCAwLjAwMzgxMiwgMC4wMDM4MSwgMC4wMDM4MDgsIDAuMDAzODA2LCAwLjAwMzgwNCwgMC4wMDM4MDMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiUk4mU0UmU04iOwotICAgICAgc2RmX2NvbmQgOiAiUk5fRVFfMV9BTl9TRV9FUV8xX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMTM3NSwgLTAuMTI2MjUsIC0wLjExMzc1LCAtMC4xMDEyNSwgLTAuMDk1LCAtMC4wNzg3NSwgLTAuMDYzNzUiLCBcCi0gICAgICAgICAgIi0wLjE0ODc1LCAtMC4xMzc1LCAtMC4xMjUsIC0wLjExMjUsIC0wLjEwNjI1LCAtMC4wOSwgLTAuMDc1IiwgXAotICAgICAgICAgICItMC4xNjEyNSwgLTAuMTUsIC0wLjEzNzUsIC0wLjEyNSwgLTAuMTE4NzUsIC0wLjEwMjUsIC0wLjA4NzUiLCBcCi0gICAgICAgICAgIi0wLjE3Mzc1LCAtMC4xNjI1LCAtMC4xNSwgLTAuMTQzNzUsIC0wLjEzMTI1LCAtMC4xMTUsIC0wLjEiLCBcCi0gICAgICAgICAgIi0wLjE4NjI1LCAtMC4xNzUsIC0wLjE2ODc1LCAtMC4xNTYyNSwgLTAuMTQzNzUsIC0wLjEyNzUsIC0wLjExODc1IiwgXAotICAgICAgICAgICItMC4yMDg3NSwgLTAuMTk3NSwgLTAuMTg1LCAtMC4xNzg3NSwgLTAuMTY2MjUsIC0wLjE1LCAtMC4xMzUiLCBcCi0gICAgICAgICAgIi0wLjIzLCAtMC4yMTg3NSwgLTAuMjA2MjUsIC0wLjE5Mzc1LCAtMC4xODc1LCAtMC4xNzEyNSwgLTAuMTU2MjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMzEyNSwgLTAuMDEzNzUsIC0wLjAwMTI1LCAwLjAxMTI1LCAwLjAyMzc1LCAwLjA0NjI1LCAwLjA2NzUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzMTI1LCAtMC4wMTI1LCAwLCAwLjAxMjUsIDAuMDM1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA0Mzc1LCAtMC4wMjUsIC0wLjAxMjUsIDAsIDAuMDIyNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDY3NSwgLTAuMDU2MjUsIC0wLjAzNzUsIC0wLjAyNSwgLTAuMDEyNSwgMC4wMSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDgsIC0wLjA2ODc1LCAtMC4wNSwgLTAuMDM3NSwgLTAuMDI1LCAtMC4wMDI1LCAwLjAxODc1IiwgXAotICAgICAgICAgICItMC4wOTYyNSwgLTAuMDg1LCAtMC4wNzI1LCAtMC4wNTM3NSwgLTAuMDQxMjUsIC0wLjAxODc1LCAtMC4wMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMTExMjUsIC0wLjEsIC0wLjA4NzUsIC0wLjA2ODc1LCAtMC4wNTYyNSwgLTAuMDMzNzUsIC0wLjAxODc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJSTiZTRSZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJSTl9FUV8xX0FOX1NFX0VRXzFfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yNTYyNSwgMC4yMzg3NSwgMC4yMiwgMC4yMDc1LCAwLjE4ODc1LCAwLjE2NjI1LCAwLjE1MTI1IiwgXAotICAgICAgICAgICIwLjI2NzUsIDAuMjUsIDAuMjM3NSwgMC4yMTg3NSwgMC4yLCAwLjE3NzUsIDAuMTYyNSIsIFwKLSAgICAgICAgICAiMC4yOCwgMC4yNjg3NSwgMC4yNSwgMC4yMzEyNSwgMC4yMTg3NSwgMC4xOSwgMC4xNzUiLCBcCi0gICAgICAgICAgIjAuMjkyNSwgMC4yODEyNSwgMC4yNjI1LCAwLjI0Mzc1LCAwLjIzMTI1LCAwLjIwODc1LCAwLjE4NzUiLCBcCi0gICAgICAgICAgIjAuMzA1LCAwLjI5Mzc1LCAwLjI3NSwgMC4yNjI1LCAwLjI0Mzc1LCAwLjIyMTI1LCAwLjIiLCBcCi0gICAgICAgICAgIjAuMzI3NSwgMC4zMTYyNSwgMC4yOTc1LCAwLjI3ODc1LCAwLjI2NjI1LCAwLjI0Mzc1LCAwLjIyMjUiLCBcCi0gICAgICAgICAgIjAuMzQ4NzUsIDAuMzM3NSwgMC4zMTg3NSwgMC4zLCAwLjI4NzUsIDAuMjU4NzUsIDAuMjQzNzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yLCAwLjE4ODc1LCAwLjE3LCAwLjE1NzUsIDAuMTM4NzUsIDAuMTEsIDAuMDk1IiwgXAotICAgICAgICAgICIwLjIxMTI1LCAwLjIsIDAuMTgxMjUsIDAuMTY4NzUsIDAuMTUsIDAuMTI3NSwgMC4xMDYyNSIsIFwKLSAgICAgICAgICAiMC4yMjM3NSwgMC4yMTI1LCAwLjE5Mzc1LCAwLjE4MTI1LCAwLjE2MjUsIDAuMTQsIDAuMTE4NzUiLCBcCi0gICAgICAgICAgIjAuMjM2MjUsIDAuMjI1LCAwLjIwNjI1LCAwLjE5Mzc1LCAwLjE3NSwgMC4xNTI1LCAwLjEzMTI1IiwgXAotICAgICAgICAgICIwLjI0ODc1LCAwLjIzNzUsIDAuMjE4NzUsIDAuMjA2MjUsIDAuMTg3NSwgMC4xNjUsIDAuMTQzNzUiLCBcCi0gICAgICAgICAgIjAuMjcxMjUsIDAuMjUzNzUsIDAuMjQxMjUsIDAuMjIyNSwgMC4yMSwgMC4xODEyNSwgMC4xNiIsIFwKLSAgICAgICAgICAiMC4yODYyNSwgMC4yNzUsIDAuMjU2MjUsIDAuMjQzNzUsIDAuMjI1LCAwLjE5NjI1LCAwLjE3NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oU04pICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTU0NTA1OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTU0NTA1OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTU0NDc1OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDMzMSwgMC4wMDAzMywgMC4wMDAzMywgMC4wMDAzMywgMC4wMDAzMywgMC4wMDAzMywgMC4wMDAzMyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDMzMSwgMC4wMDAzMzIsIDAuMDAwMzMyLCAwLjAwMDMzMSwgMC4wMDAzMzIsIDAuMDAwMzMyLCAwLjAwMDMzMiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQmIVJOJiFTRSYhU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1JOX0VRXzBfQU5fU0VfRVFfMF9BTl9TSV9FUV8wID09IDEnYjEiOwotICAgICAgZmFsbF9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMzc5NTk5LCAwLjM5MTI1NywgMC40MDU2NTYsIDAuNDE5MjIsIDAuNDMyMDkyLCAwLjQ1MzkwNCwgMC40NzM5ODUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiByZWNvdmVyeV9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlJOIjsKLSAgICAgIHNkZl9jb25kIDogIlJOID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHJlY292ZXJ5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzNzUsIDAuMDI2MjUsIDAuMDA3NSwgLTAuMDA1LCAtMC4wMjM3NSwgLTAuMDUyNSwgLTAuMDczNzUiLCBcCi0gICAgICAgICAgIjAuMDQ4NzUsIDAuMDM3NSwgMC4wMTg3NSwgMC4wMDYyNSwgLTAuMDEyNSwgLTAuMDQxMjUsIC0wLjA2MjUiLCBcCi0gICAgICAgICAgIjAuMDY3NSwgMC4wNSwgMC4wMzc1LCAwLjAxODc1LCAwLCAtMC4wMjI1LCAtMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4wOCwgMC4wNjI1LCAwLjA1LCAwLjAzMTI1LCAwLjAxODc1LCAtMC4wMSwgLTAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMDkyNSwgMC4wODEyNSwgMC4wNjI1LCAwLjA1LCAwLjAzMTI1LCAwLjAwMjUsIC0wLjAxODc1IiwgXAotICAgICAgICAgICIwLjExNSwgMC4xMDM3NSwgMC4wODUsIDAuMDY2MjUsIDAuMDUzNzUsIDAuMDI1LCAwLjAwMzc1IiwgXAotICAgICAgICAgICIwLjEzNjI1LCAwLjExODc1LCAwLjEwNjI1LCAwLjA4NzUsIDAuMDY4NzUsIDAuMDQ2MjUsIDAuMDI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogcmVtb3ZhbF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlJOIjsKLSAgICAgIHNkZl9jb25kIDogIlJOID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHJlbW92YWxfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU2MjUsIDAuMDY3NSwgMC4wODYyNSwgMC4wOTg3NSwgMC4xMTc1LCAwLjE0LCAwLjE2MTI1IiwgXAotICAgICAgICAgICIwLjA0NSwgMC4wNTYyNSwgMC4wNzUsIDAuMDg3NSwgMC4xMDYyNSwgMC4xMjg3NSwgMC4xNSIsIFwKLSAgICAgICAgICAiMC4wMzI1LCAwLjA0Mzc1LCAwLjA2MjUsIDAuMDc1LCAwLjA5Mzc1LCAwLjExNjI1LCAwLjEzNzUiLCBcCi0gICAgICAgICAgIjAuMDIsIDAuMDMxMjUsIDAuMDQzNzUsIDAuMDYyNSwgMC4wNzUsIDAuMTAzNzUsIDAuMTI1IiwgXAotICAgICAgICAgICIwLjAwNzUsIDAuMDE4NzUsIDAuMDMxMjUsIDAuMDUsIDAuMDYyNSwgMC4wODUsIDAuMTA2MjUiLCBcCi0gICAgICAgICAgIi0wLjAxNSwgLTAuMDAzNzUsIDAuMDA4NzUsIDAuMDI3NSwgMC4wNCwgMC4wNjI1LCAwLjA4Mzc1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDI1LCAtMC4wMDYyNSwgMC4wMDYyNSwgMC4wMjUsIDAuMDQ3NSwgMC4wNjg3NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IFNERkZTWDQgKgotICogLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoU0RGRlNYNCkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjU3ODA2MzsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBmZiAoTjM1LFFCSU5UKSB7Ci0gICAgbmV4dF9zdGF0ZSA6ICIoKFNFIFNJKSArICghU0UgRCkpIjsKLSAgICBjbG9ja2VkX29uIDogIkNLIjsKLSAgICBwcmVzZXQgOiAiKCFTTikiOwotICB9Ci0gIHBpbihDSykgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNTkyNDA5OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDU5MjA1MjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA1OTI0MDk7Ci0gICAgY2xvY2sgOiB0cnVlOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjMwNywgMC4wMDIyOTMsIDAuMDAyMjgxLCAwLjAwMjI3NiwgMC4wMDIyNywgMC4wMDIyNjMsIDAuMDAyMjYxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA1Mjg0LCAwLjAwNTI3NSwgMC4wMDUyNjUsIDAuMDA1MjYsIDAuMDA1MjU4LCAwLjAwNTI2MSwgMC4wMDUyNTkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFEJiFTRSYhU0kmU04iOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1NFX0VRXzBfQU5fU0lfRVFfMF9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMzYyNDg5LCAwLjM3NDIyNSwgMC4zODk1MDQsIDAuNDA1MDc2LCAwLjQyMDI4NywgMC40NDQ2NzgsIDAuNDY1NTk0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4yMzczNjcsIDAuMjQ4ODA3LCAwLjI2MzkwMywgMC4yNzg2NjIsIDAuMjkzMzM1LCAwLjMxNjA1OCwgMC4zMzUwNzciKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEQpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDU4MzgxNjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA1ODIxNTQ7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNTgzODE2OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjY1MiwgMC4wMDI2NDIsIDAuMDAyNjM3LCAwLjAwMjYzNCwgMC4wMDI2MzEsIDAuMDAyNjI3LCAwLjAwMjYyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzg3NywgMC4wMDM4NzIsIDAuMDAzODY5LCAwLjAwMzg2OCwgMC4wMDM4NjYsIDAuMDAzODY1LCAwLjAwMzg2NCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhU0UmU04iOwotICAgICAgc2RmX2NvbmQgOiAiU0VfRVFfMF9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjEyNSwgLTAuMTEzNzUsIC0wLjEwNzUsIC0wLjA5NSwgLTAuMDg4NzUsIC0wLjA3MjUsIC0wLjA2Mzc1IiwgXAotICAgICAgICAgICItMC4xMzYyNSwgLTAuMTMxMjUsIC0wLjExODc1LCAtMC4xMTI1LCAtMC4xLCAtMC4wODM3NSwgLTAuMDc1IiwgXAotICAgICAgICAgICItMC4xNDg3NSwgLTAuMTQzNzUsIC0wLjEzMTI1LCAtMC4xMjUsIC0wLjExMjUsIC0wLjA5NjI1LCAtMC4wODc1IiwgXAotICAgICAgICAgICItMC4xNjc1LCAtMC4xNTYyNSwgLTAuMTQzNzUsIC0wLjEzNzUsIC0wLjEyNSwgLTAuMTE1LCAtMC4xIiwgXAotICAgICAgICAgICItMC4xOCwgLTAuMTY4NzUsIC0wLjE2MjUsIC0wLjE1LCAtMC4xMzc1LCAtMC4xMjc1LCAtMC4xMTI1IiwgXAotICAgICAgICAgICItMC4yMDI1LCAtMC4xOTEyNSwgLTAuMTc4NzUsIC0wLjE3MjUsIC0wLjE2LCAtMC4xNSwgLTAuMTM1IiwgXAotICAgICAgICAgICItMC4yMTc1LCAtMC4yMTI1LCAtMC4yLCAtMC4xODc1LCAtMC4xODEyNSwgLTAuMTY1LCAtMC4xNTYyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAyNSwgLTAuMDA3NSwgMC4wMDUsIDAuMDE3NSwgMC4wMywgMC4wNTI1LCAwLjA2NzUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAuMDA2MjUsIDAuMDE4NzUsIDAuMDQxMjUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wMzc1LCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAuMDA2MjUsIDAuMDI4NzUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIi0wLjA2MTI1LCAtMC4wNSwgLTAuMDMxMjUsIC0wLjAxODc1LCAtMC4wMDYyNSwgMC4wMTYyNSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDczNzUsIC0wLjA1NjI1LCAtMC4wNDM3NSwgLTAuMDMxMjUsIC0wLjAxODc1LCAwLjAwMzc1LCAwLjAxODc1IiwgXAotICAgICAgICAgICItMC4wOSwgLTAuMDc4NzUsIC0wLjA2NjI1LCAtMC4wNDc1LCAtMC4wMzUsIC0wLjAxODc1LCAwLjAwMjUiLCBcCi0gICAgICAgICAgIi0wLjEwNSwgLTAuMDkzNzUsIC0wLjA4MTI1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDMzNzUsIC0wLjAxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFTRSZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJTRV9FUV8wX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjMxMjUsIDAuMjIsIDAuMjAxMjUsIDAuMTg4NzUsIDAuMTc2MjUsIDAuMTYsIDAuMTQ1IiwgXAotICAgICAgICAgICIwLjI0MjUsIDAuMjMxMjUsIDAuMjE4NzUsIDAuMiwgMC4xODc1LCAwLjE3MTI1LCAwLjE1NjI1IiwgXAotICAgICAgICAgICIwLjI2MTI1LCAwLjI0Mzc1LCAwLjIzMTI1LCAwLjIxMjUsIDAuMiwgMC4xODM3NSwgMC4xNjg3NSIsIFwKLSAgICAgICAgICAiMC4yNzM3NSwgMC4yNjI1LCAwLjI0Mzc1LCAwLjIzMTI1LCAwLjIxMjUsIDAuMTk2MjUsIDAuMTgxMjUiLCBcCi0gICAgICAgICAgIjAuMjg2MjUsIDAuMjc1LCAwLjI1NjI1LCAwLjI0Mzc1LCAwLjIzMTI1LCAwLjIwODc1LCAwLjE5Mzc1IiwgXAotICAgICAgICAgICIwLjMwODc1LCAwLjI5NzUsIDAuMjc4NzUsIDAuMjY2MjUsIDAuMjUzNzUsIDAuMjMxMjUsIDAuMjE2MjUiLCBcCi0gICAgICAgICAgIjAuMzMsIDAuMzEyNSwgMC4zLCAwLjI4MTI1LCAwLjI2ODc1LCAwLjI1MjUsIDAuMjM3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIxODc1LCAwLjIwMTI1LCAwLjE4ODc1LCAwLjE3LCAwLjE1NzUsIDAuMTI4NzUsIDAuMTA3NSIsIFwKLSAgICAgICAgICAiMC4yMywgMC4yMTg3NSwgMC4yLCAwLjE4MTI1LCAwLjE2ODc1LCAwLjE0LCAwLjExODc1IiwgXAotICAgICAgICAgICIwLjI0MjUsIDAuMjMxMjUsIDAuMjEyNSwgMC4xOTM3NSwgMC4xODEyNSwgMC4xNTI1LCAwLjEzMTI1IiwgXAotICAgICAgICAgICIwLjI1NSwgMC4yNDM3NSwgMC4yMjUsIDAuMjA2MjUsIDAuMTkzNzUsIDAuMTY1LCAwLjE0Mzc1IiwgXAotICAgICAgICAgICIwLjI2NzUsIDAuMjU2MjUsIDAuMjM3NSwgMC4yMTg3NSwgMC4yMDYyNSwgMC4xNzc1LCAwLjE1NjI1IiwgXAotICAgICAgICAgICIwLjI4Mzc1LCAwLjI3MjUsIDAuMjYsIDAuMjQxMjUsIDAuMjIyNSwgMC4yLCAwLjE3ODc1IiwgXAotICAgICAgICAgICIwLjMwNSwgMC4yOTM3NSwgMC4yNzUsIDAuMjU2MjUsIDAuMjM3NSwgMC4yMTUsIDAuMTkzNzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFEpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC41MjQ5MTg7Ci0gICAgZnVuY3Rpb24gOiAiTjM1IjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBub25fdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJpc2luZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI1MTU5LCAwLjM3OTYyNywgMC41MDU1MywgMC41OTUwMjEsIDAuNzM3NzgyLCAwLjg2MzY0MywgMS4wNDI0MyIsIFwKLSAgICAgICAgICAiMC4yNjMzNiwgMC4zOTEzOTMsIDAuNTE3MjE2LCAwLjYwNTY2MywgMC43NDkyOTgsIDAuODc1ODYsIDEuMDU0MTYiLCBcCi0gICAgICAgICAgIjAuMjc4NTI2LCAwLjQwNjU1OSwgMC41MzE4NjksIDAuNjIxMjczLCAwLjc2NDM2MywgMC44OTIwMDIsIDEuMDY4NzEiLCBcCi0gICAgICAgICAgIjAuMjk0MDY4LCAwLjQyMjA2OCwgMC41NDc5NiwgMC42MzczMjMsIDAuNzgwODQ2LCAwLjkwNjIxMSwgMS4wODQ3NiIsIFwKLSAgICAgICAgICAiMC4zMDkzMDUsIDAuNDM3MzMyLCAwLjU2MzIyNCwgMC42NTI1OTIsIDAuNzk2NTc5LCAwLjkyMTQ0NywgMS4wOTk5NyIsIFwKLSAgICAgICAgICAiMC4zMzM0NjUsIDAuNDYxNTA1LCAwLjU4NzQxLCAwLjY3Njk4NSwgMC44MjEzNDQsIDAuOTQ1Mjk5LCAxLjEyNDQ2IiwgXAotICAgICAgICAgICIwLjM1NDIxMSwgMC40ODIyNDgsIDAuNjA4MTUzLCAwLjY5NzkyNywgMC44NDEzOCwgMC45NjYxMzcsIDEuMTQ1MDUiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTg2MTIsIDAuMzA0Njg2LCAwLjU2MDg2NSwgMC43NDk5MzUsIDEuMDQ1NjUsIDEuMjk5MzYsIDEuNjY0MjgiLCBcCi0gICAgICAgICAgIjAuMDU4NjY1LCAwLjMwNDYzNywgMC41NTgzNzksIDAuNzQ4MjM5LCAxLjA0NTY1LCAxLjI5MTY4LCAxLjY2NDM4IiwgXAotICAgICAgICAgICIwLjA1ODQ3NywgMC4zMDQ2NDgsIDAuNTYzNzM4LCAwLjc0OTUyNywgMS4wNDU2MywgMS4zMDIxMiwgMS42NzM4NCIsIFwKLSAgICAgICAgICAiMC4wNTg2MDEsIDAuMzA0NjIzLCAwLjU1ODE3MiwgMC43NDkxMDYsIDEuMDM2ODEsIDEuMjk3ODcsIDEuNjY1MTciLCBcCi0gICAgICAgICAgIjAuMDU4NjIyLCAwLjMwNDYwMSwgMC41NTgxNywgMC43NDkxMDIsIDEuMDQzNTUsIDEuMjk4MDUsIDEuNjY1NjYiLCBcCi0gICAgICAgICAgIjAuMDU4Njc5LCAwLjMwNDY2LCAwLjU2MTc4NSwgMC43NDkwNzIsIDEuMDQxMzMsIDEuMzAwNzYsIDEuNjYyMzMiLCBcCi0gICAgICAgICAgIjAuMDU4NTg2LCAwLjMwNDY1NSwgMC41NjEzNTMsIDAuNzQ4ODY4LCAxLjAzODk5LCAxLjMwMDA0LCAxLjY2Mzg5Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzE1MTQ4LCAwLjQ2MzYwMiwgMC42MDk0NzcsIDAuNzEzMzg4LCAwLjg4MDA1NywgMS4wMjcwNCwgMS4yMzY2NyIsIFwKLSAgICAgICAgICAiMC4zMjY4NSwgMC40NzU1NjEsIDAuNjIxMTE0LCAwLjcyNTE4OCwgMC44OTI1OTksIDEuMDM3ODUsIDEuMjQ1ODEiLCBcCi0gICAgICAgICAgIjAuMzQyMTQ2LCAwLjQ5MDYyNywgMC42MzYzOTgsIDAuNzQwMzgyLCAwLjkwNzE5NiwgMS4wNTMxOSwgMS4yNjE2NCIsIFwKLSAgICAgICAgICAiMC4zNTc2NzksIDAuNTA2MTI3LCAwLjY1MTk4LCAwLjc1NTkwNywgMC45MjI1NzQsIDEuMDY5NTcsIDEuMjc5MTkiLCBcCi0gICAgICAgICAgIjAuMzcyOTE2LCAwLjUyMTU4MiwgMC42NjcxMjgsIDAuNzcxMjAzLCAwLjkzODY0NywgMS4wODQ5LCAxLjI5MTgiLCBcCi0gICAgICAgICAgIjAuMzk3MjU2LCAwLjU0NjAxLCAwLjY5MTU2NCwgMC43OTU2NDEsIDAuOTYyMDY5LCAxLjEwODI1LCAxLjMxNjA4IiwgXAotICAgICAgICAgICIwLjQxODE5NiwgMC41NjY2NjEsIDAuNzEyNTE0LCAwLjgxNjQ0NCwgMC45ODMxMTMsIDEuMTMwMSwgMS4zMzk3MyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2NDQ2LCAwLjM0NTkxLCAwLjYzNDQyNywgMC44NDA1ODEsIDEuMTcxNTUsIDEuNDYzODQsIDEuODc3MDEiLCBcCi0gICAgICAgICAgIjAuMDY0MzM3LCAwLjM0NTI5OCwgMC42MzQ2MiwgMC44NDExNzYsIDEuMTc0MzksIDEuNDY1MTEsIDEuODc3MjgiLCBcCi0gICAgICAgICAgIjAuMDY0NDIxLCAwLjM0NTkwMywgMC42MzQ2NTEsIDAuODQyMDksIDEuMTcyNjEsIDEuNDY0NywgMS44Nzg4IiwgXAotICAgICAgICAgICIwLjA2NDQyNywgMC4zNDU5MDMsIDAuNjM0NDI5LCAwLjg0MDY3MSwgMS4xNzIwMSwgMS40NjQ1MSwgMS44NzgzMyIsIFwKLSAgICAgICAgICAiMC4wNjQxNzgsIDAuMzQ1MzIsIDAuNjM0NjE3LCAwLjg0MTI1MywgMS4xNzQzMiwgMS40NjQ3MSwgMS44NzY3OCIsIFwKLSAgICAgICAgICAiMC4wNjQ1NjEsIDAuMzQ1MzMsIDAuNjM0NjI1LCAwLjg0MTE3MSwgMS4xNzI0NCwgMS40NjM0NCwgMS44NzY3NyIsIFwKLSAgICAgICAgICAiMC4wNjQ0OCwgMC4zNDU5MDMsIDAuNjM0NDQyLCAwLjg0MDY1MiwgMS4xNzE5NywgMS40NjQ0OSwgMS44NzgzMyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcHJlc2V0OwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIyMzU1OCwgMC4zNTEzNTcsIDAuNDc2OTE3LCAwLjU2NTgzMywgMC43MDg4NzksIDAuODM1NDY1LCAxLjAxNTI4IiwgXAotICAgICAgICAgICIwLjIzNTIxNiwgMC4zNjI4MzQsIDAuNDg5MzMxLCAwLjU3NzU5OSwgMC43MjA3MTgsIDAuODQ3NDgzLCAxLjAyNzA1IiwgXAotICAgICAgICAgICIwLjI0OTU3NSwgMC4zNzcxNDUsIDAuNTAyMjQxLCAwLjU5MzI0OSwgMC43MzQ4MzcsIDAuODYwNzYyLCAxLjA0MTE4IiwgXAotICAgICAgICAgICIwLjI2MzIzMiwgMC4zOTA5NCwgMC41MTcwNTIsIDAuNjA1NTkyLCAwLjc0OTUxMywgMC44NzU4MjIsIDEuMDU0NjUiLCBcCi0gICAgICAgICAgIjAuMjc3NjA1LCAwLjQwNTMyNywgMC41MzAzNCwgMC42MTk2OTcsIDAuNzY0NjI1LCAwLjg4OTE2NCwgMS4wNjc1NCIsIFwKLSAgICAgICAgICAiMC4zMDA3OTIsIDAuNDI4NTA4LCAwLjU1MzUxMiwgMC42NDMwMTEsIDAuNzg3Mzg2LCAwLjkxMjM5NiwgMS4wOTA2NiIsIFwKLSAgICAgICAgICAiMC4zMjA2NjIsIDAuNDQ4MjU3LCAwLjU3NDc3LCAwLjY2MzAyNiwgMC44MDU3NzYsIDAuOTMxMjI2LCAxLjExMjUxIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU4ODEzLCAwLjMwNDY5NCwgMC41NjQ5MTMsIDAuNzQ5NjY1LCAxLjA0NTk1LCAxLjMwNTA1LCAxLjY3Mzg4IiwgXAotICAgICAgICAgICIwLjA1OTAxMSwgMC4zMDQ1NDQsIDAuNTY0OSwgMC43NDk2NjQsIDEuMDQ1OTQsIDEuMzA0ODMsIDEuNjczODgiLCBcCi0gICAgICAgICAgIjAuMDU4NjM0LCAwLjMwNDU2OCwgMC41NjU2NTUsIDAuNzQ5NjYzLCAxLjA0NTk0LCAxLjMwNDgzLCAxLjY3Mzg4IiwgXAotICAgICAgICAgICIwLjA1ODk5NCwgMC4zMDQ1NCwgMC41NjQ5MiwgMC43NDk2NjgsIDEuMDQ1OTQsIDEuMzA0ODMsIDEuNjc0MDgiLCBcCi0gICAgICAgICAgIjAuMDU4NDE1LCAwLjMwNDYzNiwgMC41NjYxMzgsIDAuNzQ5ODEyLCAxLjA0NTk0LCAxLjMwNDgzLCAxLjY3NDAzIiwgXAotICAgICAgICAgICIwLjA1ODM2NCwgMC4zMDQ2NDUsIDAuNTY1NTIsIDAuNzQ5Mzk5LCAxLjA0NiwgMS4zMDUwMSwgMS42NzM5OCIsIFwKLSAgICAgICAgICAiMC4wNTg5MTEsIDAuMzA0NjU5LCAwLjU2NTg0MiwgMC43NDk0NjUsIDEuMDQ2LCAxLjMwNTA2LCAxLjY3Mzk1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2Mzg5LCAwLjAwNjUxMywgMC4wMDY1MjgsIDAuMDA2NTMzLCAwLjAwNjUzNywgMC4wMDY1MzgsIDAuMDA2NTQiLCBcCi0gICAgICAgICAgIjAuMDA2Mzg1LCAwLjAwNjUwNywgMC4wMDY1MjMsIDAuMDA2NTI3LCAwLjAwNjUzMiwgMC4wMDY1MzIsIDAuMDA2NTM0IiwgXAotICAgICAgICAgICIwLjAwNjM3NywgMC4wMDY1LCAwLjAwNjUxNiwgMC4wMDY1MiwgMC4wMDY1MjQsIDAuMDA2NTI2LCAwLjAwNjUyOSIsIFwKLSAgICAgICAgICAiMC4wMDYzNzMsIDAuMDA2NDk2LCAwLjAwNjUxMiwgMC4wMDY1MTUsIDAuMDA2NTE5LCAwLjAwNjUyMywgMC4wMDY1MjMiLCBcCi0gICAgICAgICAgIjAuMDA2MzY5LCAwLjAwNjQ5MiwgMC4wMDY1MDksIDAuMDA2NTEyLCAwLjAwNjUxNiwgMC4wMDY1MTgsIDAuMDA2NTE5IiwgXAotICAgICAgICAgICIwLjAwNjM2MywgMC4wMDY0ODcsIDAuMDA2NTAxLCAwLjAwNjUwNiwgMC4wMDY1MTEsIDAuMDA2NTEyLCAwLjAwNjUxNSIsIFwKLSAgICAgICAgICAiMC4wMDYzNjIsIDAuMDA2NDg1LCAwLjAwNjUsIDAuMDA2NTA1LCAwLjAwNjUwOSwgMC4wMDY1MDksIDAuMDA2NTEzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDYxMDIsIDAuMDA2MjM0LCAwLjAwNjI1MywgMC4wMDYyNTksIDAuMDA2MjY0LCAwLjAwNjI2NiwgMC4wMDYyNjkiLCBcCi0gICAgICAgICAgIjAuMDA2MDk1LCAwLjAwNjIyNywgMC4wMDYyNDYsIDAuMDA2MjUyLCAwLjAwNjI1NywgMC4wMDYyNTksIDAuMDA2MjYyIiwgXAotICAgICAgICAgICIwLjAwNjA4OSwgMC4wMDYyMjEsIDAuMDA2MjQsIDAuMDA2MjQ2LCAwLjAwNjI1MSwgMC4wMDYyNTQsIDAuMDA2MjU1IiwgXAotICAgICAgICAgICIwLjAwNjA4OCwgMC4wMDYyMTksIDAuMDA2MjM4LCAwLjAwNjI0MywgMC4wMDYyNDksIDAuMDA2MjUxLCAwLjAwNjI1MyIsIFwKLSAgICAgICAgICAiMC4wMDYwODIsIDAuMDA2MjE0LCAwLjAwNjIzNCwgMC4wMDYyNCwgMC4wMDYyNDUsIDAuMDA2MjQ3LCAwLjAwNjI1IiwgXAotICAgICAgICAgICIwLjAwNjA4MSwgMC4wMDYyMTQsIDAuMDA2MjM0LCAwLjAwNjIzOSwgMC4wMDYyNDQsIDAuMDA2MjQ3LCAwLjAwNjI0OSIsIFwKLSAgICAgICAgICAiMC4wMDYwODMsIDAuMDA2MjE3LCAwLjAwNjIzNiwgMC4wMDYyNDIsIDAuMDA2MjQ3LCAwLjAwNjI1LCAwLjAwNjI1MiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjQzMiwgMC4wMDY1NTQsIDAuMDA2NTcsIDAuMDA2NTc0LCAwLjAwNjU3OCwgMC4wMDY1ODIsIDAuMDA2NTg1IiwgXAotICAgICAgICAgICIwLjAwNjQyNiwgMC4wMDY1NDgsIDAuMDA2NTY1LCAwLjAwNjU2OCwgMC4wMDY1NzUsIDAuMDA2NTc0LCAwLjAwNjU3NiIsIFwKLSAgICAgICAgICAiMC4wMDY0MjEsIDAuMDA2NTQzLCAwLjAwNjU1OSwgMC4wMDY1NjYsIDAuMDA2NTY4LCAwLjAwNjU3MSwgMC4wMDY1NzEiLCBcCi0gICAgICAgICAgIjAuMDA2NDE4LCAwLjAwNjU0LCAwLjAwNjU1NywgMC4wMDY1NiwgMC4wMDY1NjYsIDAuMDA2NTY4LCAwLjAwNjU2OCIsIFwKLSAgICAgICAgICAiMC4wMDY0MTQsIDAuMDA2NTM2LCAwLjAwNjU1MSwgMC4wMDY1NTcsIDAuMDA2NTYsIDAuMDA2NTYyLCAwLjAwNjU2NCIsIFwKLSAgICAgICAgICAiMC4wMDY0MDgsIDAuMDA2NTMsIDAuMDA2NTQ2LCAwLjAwNjU1MiwgMC4wMDY1NTYsIDAuMDA2NTU3LCAwLjAwNjU1OCIsIFwKLSAgICAgICAgICAiMC4wMDY0MDQsIDAuMDA2NTI2LCAwLjAwNjU0MiwgMC4wMDY1NDcsIDAuMDA2NTUxLCAwLjAwNjU1MywgMC4wMDY1NTUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoc2NhbGFyKSB7Ci0gICAgICAgIHZhbHVlcygiMCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUU4pICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC41MTYxMzQ7Ci0gICAgZnVuY3Rpb24gOiAiUUJJTlQiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5vbl91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcmlzaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzYyNTQ3LCAwLjQ4OTc0NCwgMC42MTY5ODcsIDAuNzA3ODYyLCAwLjg1MzM0NSwgMC45ODA2NDgsIDEuMTYyNjEiLCBcCi0gICAgICAgICAgIjAuMzc0MjI1LCAwLjUwMTQ1NywgMC42Mjg2NywgMC43MTk1NjYsIDAuODY1MTA2LCAwLjk5MjM2LCAxLjE3NDI5IiwgXAotICAgICAgICAgICIwLjM4OTUwNCwgMC41MTY3NDYsIDAuNjQzOTU4LCAwLjczNDg1OSwgMC44ODAzMzgsIDEuMDA3NjUsIDEuMTg5NTYiLCBcCi0gICAgICAgICAgIjAuNDA1MDc2LCAwLjUzMjI3MSwgMC42NTk1MSwgMC43NTAzODgsIDAuODk1ODcsIDEuMDIzMTcsIDEuMjA1MTQiLCBcCi0gICAgICAgICAgIjAuNDIwMjg3LCAwLjU0NzQ0NywgMC42NzQ2NjIsIDAuNzY1NTY0LCAwLjkxMTA4OCwgMS4wMzgzNSwgMS4yMjAyOCIsIFwKLSAgICAgICAgICAiMC40NDQ2NzgsIDAuNTcxODg2LCAwLjY5OTA5OCwgMC43ODk5OTQsIDAuOTM1NDg1LCAxLjA2Mjc5LCAxLjI0NDczIiwgXAotICAgICAgICAgICIwLjQ2NTU5NCwgMC41OTI3ODcsIDAuNzIwMDI2LCAwLjgxMDkwNCwgMC45NTYzODYsIDEuMDgzNjksIDEuMjY1NjUiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTY1OTYsIDAuMzA4ODY0LCAwLjU2NjY4LCAwLjc1MDU0LCAxLjA0NTk1LCAxLjMwNjE0LCAxLjY3NjQ2IiwgXAotICAgICAgICAgICIwLjA1NjU5NSwgMC4zMDgyNjksIDAuNTY2ODUzLCAwLjc1MTc4OCwgMS4wNDc4OCwgMS4zMDU1OSwgMS42NzM0NSIsIFwKLSAgICAgICAgICAiMC4wNTY1OSwgMC4zMDg4NTksIDAuNTY2ODgyLCAwLjc1MTUwNiwgMS4wNDU3NCwgMS4zMDU4NCwgMS42NzU2MSIsIFwKLSAgICAgICAgICAiMC4wNTY1NjIsIDAuMzA4ODU2LCAwLjU2NjY3LCAwLjc1MDUzOCwgMS4wNDU5MiwgMS4zMDYxMywgMS42NzYzNyIsIFwKLSAgICAgICAgICAiMC4wNTY1OTYsIDAuMzA4MjY3LCAwLjU2Njg0MiwgMC43NTE4NTQsIDEuMDQ3NzgsIDEuMzA2MjEsIDEuNjczNDUiLCBcCi0gICAgICAgICAgIjAuMDU2NTk0LCAwLjMwODI1OSwgMC41NjY4NTIsIDAuNzUxNzgxLCAxLjA0NTg2LCAxLjMwNDA1LCAxLjY3MzMiLCBcCi0gICAgICAgICAgIjAuMDU2NTYyLCAwLjMwODg1NiwgMC41NjY2ODIsIDAuNzUwNTMzLCAxLjA0NTkyLCAxLjMwNjEzLCAxLjY3NjM3Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzAzMDU5LCAwLjQ0ODg5NiwgMC41OTUwMDgsIDAuNjk5NDYxLCAwLjg2NjQ3OCwgMS4wMTI2NiwgMS4yMjE0OCIsIFwKLSAgICAgICAgICAiMC4zMTQ4MzYsIDAuNDYwNjcsIDAuNjA2Nzg3LCAwLjcxMTA2OSwgMC44NzgyMzUsIDEuMDI0NSwgMS4yMzMyNCIsIFwKLSAgICAgICAgICAiMC4zMjk5ODksIDAuNDc1ODM0LCAwLjYyMTkwOSwgMC43MjYzNDIsIDAuODkzMzcyLCAxLjAzOTcxLCAxLjI0ODM2IiwgXAotICAgICAgICAgICIwLjM0NTU3OSwgMC40OTEzNTEsIDAuNjM3NDY0LCAwLjc0MTkwOCwgMC45MDg5NzcsIDEuMDU1MTIsIDEuMjYzOTMiLCBcCi0gICAgICAgICAgIjAuMzYwNzg4LCAwLjUwNjYwNywgMC42NTI3MiwgMC43NTcxNjQsIDAuOTI0MjU4LCAxLjA3MDM3LCAxLjI3OTE5IiwgXAotICAgICAgICAgICIwLjM4NDkzOSwgMC41MzA3NzEsIDAuNjc2ODc5LCAwLjc4MTI3MiwgMC45NDg0MTgsIDEuMDk0NTMsIDEuMzAzMzUiLCBcCi0gICAgICAgICAgIjAuNDA1Njc5LCAwLjU1MTUxOSwgMC42OTc2MjksIDAuODAyMTA0LCAwLjk2OTEwNiwgMS4xMTUyOCwgMS4zMjQxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDYwNDYxLCAwLjM0NTk2NSwgMC42MzU4NjMsIDAuODQzNTYzLCAxLjE3NjE1LCAxLjQ2NjI3LCAxLjg4MTMxIiwgXAotICAgICAgICAgICIwLjA2MDQzOSwgMC4zNDU5NzIsIDAuNjM1MDY2LCAwLjg0MzI3MSwgMS4xNzU3OCwgMS40NjU1NSwgMS44ODEyOSIsIFwKLSAgICAgICAgICAiMC4wNjA0NjYsIDAuMzQ1OTY4LCAwLjYzNjEyNSwgMC44NDM2OTMsIDEuMTc1NzcsIDEuNDY1ODcsIDEuODgxNTEiLCBcCi0gICAgICAgICAgIjAuMDYwNDY0LCAwLjM0NTk2OCwgMC42MzQ3OTMsIDAuODQzNDk4LCAxLjE3NTEzLCAxLjQ2NjIsIDEuODgxMzEiLCBcCi0gICAgICAgICAgIjAuMDYwNDk1LCAwLjM0NTk2OSwgMC42MzQ3OTIsIDAuODQzNDk3LCAxLjE3NTQ3LCAxLjQ2NjIxLCAxLjg4MTMzIiwgXAotICAgICAgICAgICIwLjA2MDQ1NSwgMC4zNDU5NjgsIDAuNjM1ODc1LCAwLjg0MzYzLCAxLjE3NTQ1LCAxLjQ2NjM2LCAxLjg4MTIyIiwgXAotICAgICAgICAgICIwLjA2MDQzNiwgMC4zNDU5NjgsIDAuNjM1ODc1LCAwLjg0MzM5LCAxLjE3NTU1LCAxLjQ2NjI4LCAxLjg4MTI3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiBjbGVhcjsKLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yNzQ4NTcsIDAuNDIwNywgMC41NjY4NjgsIDAuNjcxMDc2LCAwLjgzODI1NiwgMC45ODQ0OSwgMS4xOTMyMyIsIFwKLSAgICAgICAgICAiMC4yODY1MTgsIDAuNDMyMjk5LCAwLjU3ODUzNSwgMC42ODI4NTIsIDAuODQ5ODY4LCAwLjk5NjA0LCAxLjIwNDkzIiwgXAotICAgICAgICAgICIwLjMwMDg1LCAwLjQ0NjYzMiwgMC41OTI3MSwgMC42OTcyMjcsIDAuODY0MjM1LCAxLjAxMDQsIDEuMjE5MjEiLCBcCi0gICAgICAgICAgIjAuMzE0NDYsIDAuNDYwMzMyLCAwLjYwNjM0MywgMC43MTA4NjMsIDAuODc3ODkyLCAxLjAyNDEzLCAxLjIzMjg2IiwgXAotICAgICAgICAgICIwLjMyODgzOCwgMC40NzQ3MjYsIDAuNjIwNzc5LCAwLjcyNTEyNywgMC44OTIzMjIsIDEuMDM4NDUsIDEuMjQ3MjciLCBcCi0gICAgICAgICAgIjAuMzUyMDIyLCAwLjQ5NzkxMiwgMC42NDM5NjUsIDAuNzQ4MzU2LCAwLjkxNTQ4MywgMS4wNjE2NCwgMS4yNzA0NiIsIFwKLSAgICAgICAgICAiMC4zNzE5MzQsIDAuNTE3NzU1LCAwLjY2Mzk5NiwgMC43NjgzMTIsIDAuOTM1MzI4LCAxLjA4MTUsIDEuMjkwNDEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjA1NzQsIDAuMzQ1OTg1LCAwLjYzNjEyMSwgMC44NDM5NTIsIDEuMTc1NzgsIDEuNDY2NSwgMS44ODE1IiwgXAotICAgICAgICAgICIwLjA2MDU0LCAwLjM0NTk4NSwgMC42MzYxMiwgMC44NDM5NjksIDEuMTc1OCwgMS40NjY0MiwgMS44ODE1IiwgXAotICAgICAgICAgICIwLjA2MDUwNywgMC4zNDU5ODUsIDAuNjM2MTc4LCAwLjg0MzY5NywgMS4xNzU3OCwgMS40NjY0MiwgMS44ODE1IiwgXAotICAgICAgICAgICIwLjA2MDUzNSwgMC4zNDU5ODUsIDAuNjM2MTIyLCAwLjg0Mzk3LCAxLjE3NTc5LCAxLjQ2NjQzLCAxLjg4MTU5IiwgXAotICAgICAgICAgICIwLjA2MDUxMywgMC4zNDU5ODQsIDAuNjM2MTgzLCAwLjg0Mzk5NSwgMS4xNzU3NywgMS40NjY0MywgMS44ODE1NiIsIFwKLSAgICAgICAgICAiMC4wNjA1NTUsIDAuMzQ1OTc4LCAwLjYzNjE3MywgMC44NDM1OTcsIDEuMTc1NzksIDEuNDY2NDgsIDEuODgxNTUiLCBcCi0gICAgICAgICAgIjAuMDYwNTUyLCAwLjM0NTk3OCwgMC42MzYyMTgsIDAuODQzNjkyLCAxLjE3NTc5LCAxLjQ2NjUsIDEuODgxNTMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDYxMDIsIDAuMDA2MjM0LCAwLjAwNjI1MywgMC4wMDYyNTksIDAuMDA2MjY0LCAwLjAwNjI2NiwgMC4wMDYyNjkiLCBcCi0gICAgICAgICAgIjAuMDA2MDk1LCAwLjAwNjIyNywgMC4wMDYyNDYsIDAuMDA2MjUyLCAwLjAwNjI1NywgMC4wMDYyNTksIDAuMDA2MjYyIiwgXAotICAgICAgICAgICIwLjAwNjA4OSwgMC4wMDYyMjEsIDAuMDA2MjQsIDAuMDA2MjQ2LCAwLjAwNjI1MSwgMC4wMDYyNTQsIDAuMDA2MjU1IiwgXAotICAgICAgICAgICIwLjAwNjA4OCwgMC4wMDYyMTksIDAuMDA2MjM4LCAwLjAwNjI0MywgMC4wMDYyNDksIDAuMDA2MjUxLCAwLjAwNjI1MyIsIFwKLSAgICAgICAgICAiMC4wMDYwODIsIDAuMDA2MjE0LCAwLjAwNjIzNCwgMC4wMDYyNCwgMC4wMDYyNDUsIDAuMDA2MjQ3LCAwLjAwNjI1IiwgXAotICAgICAgICAgICIwLjAwNjA4MSwgMC4wMDYyMTQsIDAuMDA2MjM0LCAwLjAwNjIzOSwgMC4wMDYyNDQsIDAuMDA2MjQ3LCAwLjAwNjI0OSIsIFwKLSAgICAgICAgICAiMC4wMDYwODMsIDAuMDA2MjE3LCAwLjAwNjIzNiwgMC4wMDYyNDIsIDAuMDA2MjQ3LCAwLjAwNjI1LCAwLjAwNjI1MiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2Mzg5LCAwLjAwNjUxMywgMC4wMDY1MjgsIDAuMDA2NTMzLCAwLjAwNjUzNywgMC4wMDY1MzgsIDAuMDA2NTQiLCBcCi0gICAgICAgICAgIjAuMDA2Mzg1LCAwLjAwNjUwNywgMC4wMDY1MjMsIDAuMDA2NTI3LCAwLjAwNjUzMiwgMC4wMDY1MzIsIDAuMDA2NTM0IiwgXAotICAgICAgICAgICIwLjAwNjM3NywgMC4wMDY1LCAwLjAwNjUxNiwgMC4wMDY1MiwgMC4wMDY1MjQsIDAuMDA2NTI2LCAwLjAwNjUyOSIsIFwKLSAgICAgICAgICAiMC4wMDYzNzMsIDAuMDA2NDk2LCAwLjAwNjUxMiwgMC4wMDY1MTUsIDAuMDA2NTE5LCAwLjAwNjUyMywgMC4wMDY1MjMiLCBcCi0gICAgICAgICAgIjAuMDA2MzY5LCAwLjAwNjQ5MiwgMC4wMDY1MDksIDAuMDA2NTEyLCAwLjAwNjUxNiwgMC4wMDY1MTgsIDAuMDA2NTE5IiwgXAotICAgICAgICAgICIwLjAwNjM2MywgMC4wMDY0ODcsIDAuMDA2NTAxLCAwLjAwNjUwNiwgMC4wMDY1MTEsIDAuMDA2NTEyLCAwLjAwNjUxNSIsIFwKLSAgICAgICAgICAiMC4wMDYzNjIsIDAuMDA2NDg1LCAwLjAwNjUsIDAuMDA2NTA1LCAwLjAwNjUwOSwgMC4wMDY1MDksIDAuMDA2NTEzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiU04iOwotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2NDMyLCAwLjAwNjU1NCwgMC4wMDY1NywgMC4wMDY1NzQsIDAuMDA2NTc4LCAwLjAwNjU4MiwgMC4wMDY1ODUiLCBcCi0gICAgICAgICAgIjAuMDA2NDI2LCAwLjAwNjU0OCwgMC4wMDY1NjUsIDAuMDA2NTY4LCAwLjAwNjU3NSwgMC4wMDY1NzQsIDAuMDA2NTc2IiwgXAotICAgICAgICAgICIwLjAwNjQyMSwgMC4wMDY1NDMsIDAuMDA2NTU5LCAwLjAwNjU2NiwgMC4wMDY1NjgsIDAuMDA2NTcxLCAwLjAwNjU3MSIsIFwKLSAgICAgICAgICAiMC4wMDY0MTgsIDAuMDA2NTQsIDAuMDA2NTU3LCAwLjAwNjU2LCAwLjAwNjU2NiwgMC4wMDY1NjgsIDAuMDA2NTY4IiwgXAotICAgICAgICAgICIwLjAwNjQxNCwgMC4wMDY1MzYsIDAuMDA2NTUxLCAwLjAwNjU1NywgMC4wMDY1NiwgMC4wMDY1NjIsIDAuMDA2NTY0IiwgXAotICAgICAgICAgICIwLjAwNjQwOCwgMC4wMDY1MywgMC4wMDY1NDYsIDAuMDA2NTUyLCAwLjAwNjU1NiwgMC4wMDY1NTcsIDAuMDA2NTU4IiwgXAotICAgICAgICAgICIwLjAwNjQwNCwgMC4wMDY1MjYsIDAuMDA2NTQyLCAwLjAwNjU0NywgMC4wMDY1NTEsIDAuMDA2NTUzLCAwLjAwNjU1NSIpOwotICAgICAgfQotICAgICAgcmlzZV9wb3dlcihzY2FsYXIpIHsKLSAgICAgICAgdmFsdWVzKCIwIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTRSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxMzE4Mjc7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxMzE3ODQ7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxMzE4Mjc7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzNjg1LCAwLjAwMzY3MywgMC4wMDM2NjgsIDAuMDAzNjY1LCAwLjAwMzY2NSwgMC4wMDM2NjMsIDAuMDAzNjYyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA0Nzk2LCAwLjAwNDc3NywgMC4wMDQ3NjYsIDAuMDA0NzU5LCAwLjAwNDc1MywgMC4wMDQ3NDcsIDAuMDA0NzQ2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlNOIjsKLSAgICAgIHNkZl9jb25kIDogIlNOID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAzNzUsIC0wLjAyNjI1LCAtMC4wMTM3NSwgLTAuMDAxMjUsIDAuMDExMjUsIDAuMDMzNzUsIDAuMDQ4NzUiLCBcCi0gICAgICAgICAgIi0wLjA1NSwgLTAuMDM3NSwgLTAuMDI1LCAtMC4wMTI1LCAwLCAwLjAyMjUsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDY3NSwgLTAuMDU2MjUsIC0wLjA0Mzc1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIDAuMDAzNzUsIDAuMDI1IiwgXAotICAgICAgICAgICItMC4wOCwgLTAuMDY4NzUsIC0wLjA1NjI1LCAtMC4wNDM3NSwgLTAuMDMxMjUsIC0wLjAwODc1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wOTg3NSwgLTAuMDg3NSwgLTAuMDY4NzUsIC0wLjA1NjI1LCAtMC4wNDM3NSwgLTAuMDI3NSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjExNSwgLTAuMTAzNzUsIC0wLjA5MTI1LCAtMC4wNzg3NSwgLTAuMDY2MjUsIC0wLjA0Mzc1LCAtMC4wMjg3NSIsIFwKLSAgICAgICAgICAiLTAuMTMsIC0wLjEyNSwgLTAuMTA2MjUsIC0wLjA5Mzc1LCAtMC4wODEyNSwgLTAuMDU4NzUsIC0wLjA0Mzc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDEyNSwgMC4wMDUsIDAuMDE3NSwgMC4wMywgMC4wNDI1LCAwLjA2NSwgMC4wOCIsIFwKLSAgICAgICAgICAiLTAuMDE3NSwgLTAuMDA2MjUsIDAuMDA2MjUsIDAuMDE4NzUsIDAuMDMxMjUsIDAuMDUzNzUsIDAuMDY4NzUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAuMDA2MjUsIDAuMDE4NzUsIDAuMDQxMjUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzNzUsIC0wLjAxODc1LCAtMC4wMDYyNSwgMC4wMDYyNSwgMC4wMjg3NSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNDM3NSwgLTAuMDMxMjUsIC0wLjAxODc1LCAtMC4wMDYyNSwgMC4wMTYyNSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDcxMjUsIC0wLjA2LCAtMC4wNDc1LCAtMC4wMzUsIC0wLjAyMjUsIC0wLjAwNjI1LCAwLjAxNSIsIFwKLSAgICAgICAgICAiLTAuMDg2MjUsIC0wLjA3NSwgLTAuMDYyNSwgLTAuMDUsIC0wLjAzNzUsIC0wLjAyMTI1LCAtMC4wMDYyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiU04iOwotICAgICAgc2RmX2NvbmQgOiAiU04gPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjM3NSwgMC4yMiwgMC4yMDc1LCAwLjE4ODc1LCAwLjE3LCAwLjE0NzUsIDAuMTI2MjUiLCBcCi0gICAgICAgICAgIjAuMjQ4NzUsIDAuMjMxMjUsIDAuMjE4NzUsIDAuMiwgMC4xODc1LCAwLjE1ODc1LCAwLjEzNzUiLCBcCi0gICAgICAgICAgIjAuMjYxMjUsIDAuMjUsIDAuMjMxMjUsIDAuMjE4NzUsIDAuMiwgMC4xNzc1LCAwLjE1IiwgXAotICAgICAgICAgICIwLjI4LCAwLjI2MjUsIDAuMjUsIDAuMjMxMjUsIDAuMjEyNSwgMC4xOSwgMC4xNjg3NSIsIFwKLSAgICAgICAgICAiMC4yOTI1LCAwLjI4MTI1LCAwLjI2MjUsIDAuMjQzNzUsIDAuMjMxMjUsIDAuMjAyNSwgMC4xODEyNSIsIFwKLSAgICAgICAgICAiMC4zMDg3NSwgMC4yOTc1LCAwLjI4NSwgMC4yNjYyNSwgMC4yNDc1LCAwLjIyNSwgMC4yMDM3NSIsIFwKLSAgICAgICAgICAiMC4zMywgMC4zMTI1LCAwLjMsIDAuMjgxMjUsIDAuMjY4NzUsIDAuMjQsIDAuMjE4NzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yNSwgMC4yMzI1LCAwLjIyLCAwLjIwMTI1LCAwLjE4ODc1LCAwLjE3MjUsIDAuMTU3NSIsIFwKLSAgICAgICAgICAiMC4yNjEyNSwgMC4yNDM3NSwgMC4yMzEyNSwgMC4yMTI1LCAwLjIsIDAuMTgzNzUsIDAuMTY4NzUiLCBcCi0gICAgICAgICAgIjAuMjczNzUsIDAuMjYyNSwgMC4yNDM3NSwgMC4yMzEyNSwgMC4yMTg3NSwgMC4xOTYyNSwgMC4xODEyNSIsIFwKLSAgICAgICAgICAiMC4yODYyNSwgMC4yNzUsIDAuMjU2MjUsIDAuMjQzNzUsIDAuMjMxMjUsIDAuMjA4NzUsIDAuMiIsIFwKLSAgICAgICAgICAiMC4yOTg3NSwgMC4yODc1LCAwLjI2ODc1LCAwLjI1NjI1LCAwLjI0Mzc1LCAwLjIyMTI1LCAwLjIxMjUiLCBcCi0gICAgICAgICAgIjAuMzIxMjUsIDAuMzAzNzUsIDAuMjkxMjUsIDAuMjcyNSwgMC4yNiwgMC4yNDM3NSwgMC4yMjg3NSIsIFwKLSAgICAgICAgICAiMC4zMywgMC4zMTg3NSwgMC4zLCAwLjI4NzUsIDAuMjc1LCAwLjI1MjUsIDAuMjQzNzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFNJKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA1OTgxNTM7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNTk2MjQ2OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDU5ODE1MzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDI1MzIsIDAuMDAyNTIyLCAwLjAwMjUxNywgMC4wMDI1MTQsIDAuMDAyNTExLCAwLjAwMjUwOCwgMC4wMDI1MDYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDM5MywgMC4wMDM5MjUsIDAuMDAzOTIzLCAwLjAwMzkyMSwgMC4wMDM5MTksIDAuMDAzOTE3LCAwLjAwMzkxNiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJTRSZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJTRV9FUV8xX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMTI1LCAtMC4xMTM3NSwgLTAuMTAxMjUsIC0wLjA5NSwgLTAuMDgyNSwgLTAuMDcyNSwgLTAuMDU3NSIsIFwKLSAgICAgICAgICAiLTAuMTM2MjUsIC0wLjEyNSwgLTAuMTEyNSwgLTAuMTA2MjUsIC0wLjA5Mzc1LCAtMC4wODM3NSwgLTAuMDY4NzUiLCBcCi0gICAgICAgICAgIi0wLjE0ODc1LCAtMC4xMzc1LCAtMC4xMzEyNSwgLTAuMTE4NzUsIC0wLjExMjUsIC0wLjA5NjI1LCAtMC4wODEyNSIsIFwKLSAgICAgICAgICAiLTAuMTYxMjUsIC0wLjE1LCAtMC4xNDM3NSwgLTAuMTMxMjUsIC0wLjEyNSwgLTAuMTA4NzUsIC0wLjEiLCBcCi0gICAgICAgICAgIi0wLjE3Mzc1LCAtMC4xNjg3NSwgLTAuMTU2MjUsIC0wLjE1LCAtMC4xMzc1LCAtMC4xMjEyNSwgLTAuMTEyNSIsIFwKLSAgICAgICAgICAiLTAuMTk2MjUsIC0wLjE5MTI1LCAtMC4xNzg3NSwgLTAuMTY2MjUsIC0wLjE2LCAtMC4xNDM3NSwgLTAuMTM1IiwgXAotICAgICAgICAgICItMC4yMTc1LCAtMC4yMDYyNSwgLTAuMTkzNzUsIC0wLjE4NzUsIC0wLjE4MTI1LCAtMC4xNjUsIC0wLjE1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDI1LCAtMC4wMDc1LCAwLjAwNSwgMC4wMTc1LCAwLjAzLCAwLjA1MjUsIDAuMDY3NSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAxODc1LCAtMC4wMDYyNSwgMC4wMDYyNSwgMC4wMTg3NSwgMC4wNDEyNSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAuMDA2MjUsIDAuMDI4NzUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIi0wLjA2MTI1LCAtMC4wNDM3NSwgLTAuMDMxMjUsIC0wLjAxODc1LCAtMC4wMDYyNSwgMC4wMTYyNSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDY3NSwgLTAuMDU2MjUsIC0wLjA0Mzc1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIDAuMDAzNzUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjA5LCAtMC4wNzg3NSwgLTAuMDYsIC0wLjA0NzUsIC0wLjAzNSwgLTAuMDE4NzUsIDAuMDAyNSIsIFwKLSAgICAgICAgICAiLTAuMDk4NzUsIC0wLjA5Mzc1LCAtMC4wNzUsIC0wLjA2MjUsIC0wLjA1LCAtMC4wMzM3NSwgLTAuMDEyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiU0UmU04iOwotICAgICAgc2RmX2NvbmQgOiAiU0VfRVFfMV9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIzMTI1LCAwLjIyLCAwLjIwMTI1LCAwLjE4ODc1LCAwLjE3LCAwLjE1Mzc1LCAwLjEzODc1IiwgXAotICAgICAgICAgICIwLjI0MjUsIDAuMjMxMjUsIDAuMjEyNSwgMC4yLCAwLjE4MTI1LCAwLjE2NSwgMC4xNSIsIFwKLSAgICAgICAgICAiMC4yNTUsIDAuMjQzNzUsIDAuMjI1LCAwLjIxMjUsIDAuMiwgMC4xNzc1LCAwLjE2MjUiLCBcCi0gICAgICAgICAgIjAuMjY3NSwgMC4yNTYyNSwgMC4yMzc1LCAwLjIyNSwgMC4yMTI1LCAwLjE5LCAwLjE4MTI1IiwgXAotICAgICAgICAgICIwLjI4LCAwLjI2ODc1LCAwLjI1NjI1LCAwLjIzNzUsIDAuMjI1LCAwLjIwODc1LCAwLjE5Mzc1IiwgXAotICAgICAgICAgICIwLjMwMjUsIDAuMjkxMjUsIDAuMjcyNSwgMC4yNiwgMC4yNDc1LCAwLjIzMTI1LCAwLjIxNjI1IiwgXAotICAgICAgICAgICIwLjMyMzc1LCAwLjMxMjUsIDAuMjkzNzUsIDAuMjgxMjUsIDAuMjY4NzUsIDAuMjQ2MjUsIDAuMjMxMjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMTg3NSwgMC4yMDEyNSwgMC4xODg3NSwgMC4xNywgMC4xNTEyNSwgMC4xMjg3NSwgMC4xMDc1IiwgXAotICAgICAgICAgICIwLjIzLCAwLjIxMjUsIDAuMiwgMC4xODEyNSwgMC4xNjI1LCAwLjE0LCAwLjExODc1IiwgXAotICAgICAgICAgICIwLjI0MjUsIDAuMjI1LCAwLjIxMjUsIDAuMTkzNzUsIDAuMTc1LCAwLjE1MjUsIDAuMTMxMjUiLCBcCi0gICAgICAgICAgIjAuMjU1LCAwLjIzNzUsIDAuMjI1LCAwLjIwNjI1LCAwLjE4NzUsIDAuMTY1LCAwLjE0Mzc1IiwgXAotICAgICAgICAgICIwLjI2NzUsIDAuMjUsIDAuMjM3NSwgMC4yMTg3NSwgMC4yLCAwLjE3NzUsIDAuMTU2MjUiLCBcCi0gICAgICAgICAgIjAuMjgzNzUsIDAuMjcyNSwgMC4yNTM3NSwgMC4yNDEyNSwgMC4yMjI1LCAwLjIsIDAuMTc4NzUiLCBcCi0gICAgICAgICAgIjAuMjk4NzUsIDAuMjg3NSwgMC4yNzUsIDAuMjU2MjUsIDAuMjM3NSwgMC4yMTUsIDAuMTkzNzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFNOKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDEzNjYyNDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDEyODMyNjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDEzNjYyNDsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAzMzEsIDAuMDAwMzMsIDAuMDAwMzMsIDAuMDAwMzMsIDAuMDAwMzMsIDAuMDAwMzMsIDAuMDAwMzMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAzMzQsIDAuMDAwMzMyLCAwLjAwMDMzMiwgMC4wMDAzMzIsIDAuMDAwMzMyLCAwLjAwMDMzMSwgMC4wMDAzMzEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiU04iOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFEJiFTRSYhU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1NFX0VRXzBfQU5fU0lfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjI3NDg1NywgMC4yODY1MTgsIDAuMzAwODUsIDAuMzE0NDYsIDAuMzI4ODM4LCAwLjM1MjAyMiwgMC4zNzE5MzQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiByZWNvdmVyeV9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEJiFTRSYhU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1NFX0VRXzBfQU5fU0lfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChyZWNvdmVyeV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzc1LCAwLjAyNjI1LCAwLjAwNzUsIC0wLjAwNSwgLTAuMDIzNzUsIC0wLjA1MjUsIC0wLjA3Mzc1IiwgXAotICAgICAgICAgICIwLjA0ODc1LCAwLjAzNzUsIDAuMDE4NzUsIDAuMDA2MjUsIC0wLjAxMjUsIC0wLjAzNSwgLTAuMDYyNSIsIFwKLSAgICAgICAgICAiMC4wNjEyNSwgMC4wNSwgMC4wMzc1LCAwLjAxODc1LCAwLCAtMC4wMjI1LCAtMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4wNzM3NSwgMC4wNjI1LCAwLjA1LCAwLjAzMTI1LCAwLjAxMjUsIC0wLjAxLCAtMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4wOTI1LCAwLjA3NSwgMC4wNjI1LCAwLjA0Mzc1LCAwLjAyNSwgMC4wMDI1LCAtMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4xMDg3NSwgMC4wOTc1LCAwLjA4NSwgMC4wNjYyNSwgMC4wNDc1LCAwLjAyNSwgMC4wMDM3NSIsIFwKLSAgICAgICAgICAiMC4xMywgMC4xMTg3NSwgMC4xLCAwLjA4MTI1LCAwLjA2ODc1LCAwLjA0LCAwLjAxODc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogcmVtb3ZhbF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEJiFTRSYhU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1NFX0VRXzBfQU5fU0lfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChyZW1vdmFsX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1NjI1LCAwLjA2NzUsIDAuMDg2MjUsIDAuMDk4NzUsIDAuMTE3NSwgMC4xNCwgMC4xNjEyNSIsIFwKLSAgICAgICAgICAiMC4wNTEyNSwgMC4wNjI1LCAwLjA3NSwgMC4wODc1LCAwLjEwNjI1LCAwLjEyODc1LCAwLjE1IiwgXAotICAgICAgICAgICIwLjAzMjUsIDAuMDUsIDAuMDYyNSwgMC4wNzUsIDAuMDkzNzUsIDAuMTE2MjUsIDAuMTM3NSIsIFwKLSAgICAgICAgICAiMC4wMiwgMC4wMzEyNSwgMC4wNSwgMC4wNjI1LCAwLjA4MTI1LCAwLjEwMzc1LCAwLjEyNSIsIFwKLSAgICAgICAgICAiMC4wMDc1LCAwLjAxODc1LCAwLjAzNzUsIDAuMDUsIDAuMDY4NzUsIDAuMDkxMjUsIDAuMTEyNSIsIFwKLSAgICAgICAgICAiLTAuMDE1LCAtMC4wMDM3NSwgMC4wMTUsIDAuMDI3NSwgMC4wNDYyNSwgMC4wNjg3NSwgMC4wOSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAxODc1LCAtMC4wMDYyNSwgMC4wMTI1LCAwLjAyNSwgMC4wNDc1LCAwLjA2ODc1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IFRJRUhJICoKLSAqIC0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChUSUVISSkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjAxMzI4ODU7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBmdW5jdGlvbiA6ICIxIjsKLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogVExBVE5DQVgzICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoVExBVE5DQVgzKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMjM1OTM4OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIGNsb2NrX2dhdGluZ19pbnRlZ3JhdGVkX2NlbGwgOiAibGF0Y2hfcG9zZWRnZSI7Ci0gIHN0YXRldGFibGUoIiBDSyAgRSAiLCAiIEVJTlQgIikgewotICAgICB0YWJsZSA6ICIgIEwgIEwgOiAtIDogTCAsIFwKLSAgICAgICAgICAgICAgICBMICBIIDogLSA6IEggLCBcCi0gICAgICAgICAgICAgICAgSCAgLSA6IC0gOiBOICI7Ci0gIH0KLSAgcGluKEVJTlQpIHsKLSAgICBkaXJlY3Rpb24gOiBpbnRlcm5hbDsKLSAgICBpbnRlcm5hbF9ub2RlIDogIkVJTlQiOwotICB9Ci0gIHBpbihDSykgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNTI5MDU0OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDUyODgxODsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA1MjkwNTQ7Ci0gICAgY2xvY2tfZ2F0ZV9jbG9ja19waW4gOiB0cnVlOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjQ5MSwgMC4wMDI0NzQsIDAuMDAyNDYxLCAwLjAwMjQ1MiwgMC4wMDI0NDcsIDAuMDAyNDQ0LCAwLjAwMjQ0MyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjQxNSwgMC4wMDI0MDMsIDAuMDAyMzkzLCAwLjAwMjM4NiwgMC4wMDIzODIsIDAuMDAyMzc3LCAwLjAwMjM3MyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUUiOwotICAgICAgc2RmX2NvbmQgOiAiRSA9PSAxJ2IwIjsKLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjIwNTE4MiwgMC4yMTY4NDEsIDAuMjMxNjY3LCAwLjI0NjE2OCwgMC4yNjAxNTIsIDAuMjgwNjAxLCAwLjI5NjcyOSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjY5MjY1OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDY2Nzk2NjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2NjkyNjU7Ci0gICAgY2xvY2tfZ2F0ZV9lbmFibGVfcGluIDogdHJ1ZTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDIxNzQsIDAuMDAyMTYzLCAwLjAwMjE1NiwgMC4wMDIxNTEsIDAuMDAyMTQ3LCAwLjAwMjE0MiwgMC4wMDIxMzgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDIyMTEsIDAuMDAyMjA2LCAwLjAwMjIwMSwgMC4wMDIxOTgsIDAuMDAyMTk2LCAwLjAwMjE5MiwgMC4wMDIxODkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wNjg3NSwgLTAuMDU3NSwgLTAuMDQ1LCAtMC4wMzg3NSwgLTAuMDMyNSwgLTAuMDE2MjUsIC0wLjAwNzUiLCBcCi0gICAgICAgICAgIi0wLjA4LCAtMC4wNjg3NSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDI3NSwgLTAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjA5MjUsIC0wLjA4MTI1LCAtMC4wNzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNDYyNSwgLTAuMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMTExMjUsIC0wLjEsIC0wLjA4NzUsIC0wLjA3NSwgLTAuMDY4NzUsIC0wLjA1ODc1LCAtMC4wNSIsIFwKLSAgICAgICAgICAiLTAuMTIzNzUsIC0wLjExMjUsIC0wLjEsIC0wLjA4NzUsIC0wLjA4MTI1LCAtMC4wNzEyNSwgLTAuMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMTQ2MjUsIC0wLjEzNSwgLTAuMTIyNSwgLTAuMTEsIC0wLjEwMzc1LCAtMC4wOTM3NSwgLTAuMDg1IiwgXAotICAgICAgICAgICItMC4xNjEyNSwgLTAuMTUsIC0wLjE0Mzc1LCAtMC4xMzEyNSwgLTAuMTI1LCAtMC4xMDg3NSwgLTAuMSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAwNjI1LCAwLjAwNSwgMC4wMTc1LCAwLjAzNjI1LCAwLjA0ODc1LCAwLjA3MTI1LCAwLjA4NjI1IiwgXAotICAgICAgICAgICItMC4wMTc1LCAtMC4wMDYyNSwgMC4wMDYyNSwgMC4wMjUsIDAuMDM3NSwgMC4wNiwgMC4wNzUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAuMDEyNSwgMC4wMjUsIDAuMDQ3NSwgMC4wNjI1IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIDAsIDAuMDEyNSwgMC4wMzUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIi0wLjA1NSwgLTAuMDQzNzUsIC0wLjAzMTI1LCAtMC4wMTI1LCAwLCAwLjAyMjUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIi0wLjA3NzUsIC0wLjA2NjI1LCAtMC4wNDc1LCAtMC4wMzUsIC0wLjAxNjI1LCAwLjAwNjI1LCAwLjAyMTI1IiwgXAotICAgICAgICAgICItMC4wOTI1LCAtMC4wODEyNSwgLTAuMDYyNSwgLTAuMDUsIC0wLjAzNzUsIC0wLjAwODc1LCAwLjAwNjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3NSwgMC4wNjM3NSwgMC4wNTEyNSwgMC4wNDUsIDAuMDM4NzUsIDAuMDIyNSwgMC4wMTM3NSIsIFwKLSAgICAgICAgICAiMC4wODYyNSwgMC4wNzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNSwgMC4wMzM3NSwgMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMDk4NzUsIDAuMDg3NSwgMC4wODEyNSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1MjUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMTE3NSwgMC4xMDYyNSwgMC4wOTM3NSwgMC4wODEyNSwgMC4wNzUsIDAuMDY1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICIwLjEzLCAwLjExODc1LCAwLjEwNjI1LCAwLjA5Mzc1LCAwLjA4NzUsIDAuMDc3NSwgMC4wNjg3NSIsIFwKLSAgICAgICAgICAiMC4xNTI1LCAwLjE0MTI1LCAwLjEyODc1LCAwLjExNjI1LCAwLjExLCAwLjEsIDAuMDkxMjUiLCBcCi0gICAgICAgICAgIjAuMTY3NSwgMC4xNTYyNSwgMC4xNSwgMC4xMzc1LCAwLjEzMTI1LCAwLjExNSwgMC4xMDYyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMjUsIDAuMDAxMjUsIC0wLjAxMTI1LCAtMC4wMywgLTAuMDQyNSwgLTAuMDY1LCAtMC4wOCIsIFwKLSAgICAgICAgICAiMC4wMjM3NSwgMC4wMTI1LCAwLCAtMC4wMTg3NSwgLTAuMDMxMjUsIC0wLjA1Mzc1LCAtMC4wNjg3NSIsIFwKLSAgICAgICAgICAiMC4wMzYyNSwgMC4wMjUsIDAuMDEyNSwgLTAuMDA2MjUsIC0wLjAxODc1LCAtMC4wNDEyNSwgLTAuMDU2MjUiLCBcCi0gICAgICAgICAgIjAuMDQ4NzUsIDAuMDM3NSwgMC4wMjUsIDAuMDA2MjUsIC0wLjAwNjI1LCAtMC4wMjg3NSwgLTAuMDUiLCBcCi0gICAgICAgICAgIjAuMDYxMjUsIDAuMDUsIDAuMDM3NSwgMC4wMTg3NSwgMC4wMDYyNSwgLTAuMDE2MjUsIC0wLjAzNzUiLCBcCi0gICAgICAgICAgIjAuMDgzNzUsIDAuMDcyNSwgMC4wNTM3NSwgMC4wNDEyNSwgMC4wMjI1LCAwLCAtMC4wMTUiLCBcCi0gICAgICAgICAgIjAuMDk4NzUsIDAuMDg3NSwgMC4wNjg3NSwgMC4wNTYyNSwgMC4wNDM3NSwgMC4wMTUsIDAiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEVDSykgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjM5NTY3NTsKLSAgICBjbG9ja19nYXRlX291dF9waW4gOiB0cnVlOwotICAgIHN0YXRlX2Z1bmN0aW9uIDogIihDSyBFSU5UKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjE5OTY1LCAwLjM5NDUzMSwgMC41NjQ0NDMsIDAuNjg1NzkxLCAwLjg3OTk2NywgMS4wNDk3MSwgMS4yOTIyNyIsIFwKLSAgICAgICAgICAiMC4yMzE5NSwgMC40MDY0OTEsIDAuNTc2NDM0LCAwLjY5NzcwNywgMC44OTE4NzYsIDEuMDYxNjYsIDEuMzA0MTYiLCBcCi0gICAgICAgICAgIjAuMjQ3MzA2LCAwLjQyMTc1MSwgMC41OTE2OTcsIDAuNzEyOTY3LCAwLjkwNzA2OCwgMS4wNzY4NiwgMS4zMTk0OSIsIFwKLSAgICAgICAgICAiMC4yNjIzMzUsIDAuNDM2ODU2LCAwLjYwNjgyOSwgMC43MjgxMTgsIDAuOTIyMjc4LCAxLjA5MiwgMS4zMzQ1NCIsIFwKLSAgICAgICAgICAiMC4yNzc1NTQsIDAuNDUyMDA2LCAwLjYyMTk1MywgMC43NDMyMjMsIDAuOTM3MzA3LCAxLjEwNzI1LCAxLjM0OTciLCBcCi0gICAgICAgICAgIjAuMzAwNTA5LCAwLjQ3NTAxNiwgMC42NDQ5MjMsIDAuNzY2MzI1LCAwLjk2MDQzOSwgMS4xMzAxOCwgMS4zNzI3NSIsIFwKLSAgICAgICAgICAiMC4zMTk0NDYsIDAuNDkzOTgsIDAuNjYzODgsIDAuNzg1MjExLCAwLjk3OTQyNCwgMS4xNDkxNCwgMS4zOTE2OSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3ODQxNCwgMC40MTEzMDMsIDAuNzU2MywgMS4wMDMxNCwgMS4zOTQ1MywgMS43NDQxNSwgMi4yMzgxNCIsIFwKLSAgICAgICAgICAiMC4wNzg0NTcsIDAuNDEyMzkxLCAwLjc1NjU1NywgMS4wMDMwNCwgMS4zOTUxMiwgMS43NDQxMywgMi4yMzc4MSIsIFwKLSAgICAgICAgICAiMC4wNzg1MTYsIDAuNDExMzM1LCAwLjc1NDM5MSwgMS4wMDMwNywgMS4zOTU4MiwgMS43NDM4OSwgMi4yMzI5NiIsIFwKLSAgICAgICAgICAiMC4wNzg0MDMsIDAuNDExMjcxLCAwLjc1NDM4NCwgMS4wMDEyNSwgMS4zOTQ1MiwgMS43NDA5NywgMi4yMzc3NiIsIFwKLSAgICAgICAgICAiMC4wNzg1MTMsIDAuNDExMzIzLCAwLjc1NDM5NCwgMS4wMDMwNiwgMS4zOTc4MSwgMS43Mzk0NSwgMi4yMzc5MyIsIFwKLSAgICAgICAgICAiMC4wNzg0NTEsIDAuNDExNDYyLCAwLjc1NjE1OCwgMS4wMDA3OSwgMS4zOTg0OCwgMS43NDM5MywgMi4yMzc5OCIsIFwKLSAgICAgICAgICAiMC4wNzg0NSwgMC40MTE1MTIsIDAuNzU2MTU5LCAxLjAwMywgMS4zOTQ1MiwgMS43NDM5NCwgMi4yMzc4NSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE4NjA4NSwgMC4zODE5OTMsIDAuNTc2NTY3LCAwLjcxNTU4LCAwLjkzNzk2NywgMS4xMzI1NCwgMS40MTA1MyIsIFwKLSAgICAgICAgICAiMC4xOTc3NTEsIDAuMzkzNjM0LCAwLjU4ODIyNiwgMC43MjcxODcsIDAuOTQ5NTg0LCAxLjE0NDIxLCAxLjQyMjE3IiwgXAotICAgICAgICAgICIwLjIxMjUwNSwgMC40MDg0MDQsIDAuNjAyOTk1LCAwLjc0MTk2NCwgMC45NjQzNTcsIDEuMTU4OTgsIDEuNDM2OTUiLCBcCi0gICAgICAgICAgIjAuMjI3MDQzLCAwLjQyMjkyNiwgMC42MTc1LCAwLjc1NjUyMywgMC45Nzg4OTMsIDEuMTczNTIsIDEuNDUxNDYiLCBcCi0gICAgICAgICAgIjAuMjQxMDA1LCAwLjQzNjkxMywgMC42MzE0OTEsIDAuNzcwNTAxLCAwLjk5Mjg4NywgMS4xODc0OCwgMS40NjU0NSIsIFwKLSAgICAgICAgICAiMC4yNjE0NDYsIDAuNDU3MzU3LCAwLjY1MTkzNCwgMC43OTA5NDUsIDEuMDEzMzMsIDEuMjA3OTMsIDEuNDg1ODkiLCBcCi0gICAgICAgICAgIjAuMjc3Njc2LCAwLjQ3MzU1LCAwLjY2ODEwOCwgMC44MDcxNDIsIDEuMDI5NTIsIDEuMjI0MTQsIDEuNTAyMDgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzMzODUsIDAuNDU2Mzg0LCAwLjg0MzA4NSwgMS4xMTk3MSwgMS41NjIzMywgMS45NTExMSwgMi41MDcyNCIsIFwKLSAgICAgICAgICAiMC4wNzM0MjksIDAuNDU2NDE2LCAwLjg0Mzc0NCwgMS4xMjA4LCAxLjU2MjYyLCAxLjk1Mjg5LCAyLjUwNzI4IiwgXAotICAgICAgICAgICIwLjA3MzM5NiwgMC40NTYwMjksIDAuODQzMDYxLCAxLjExOTk3LCAxLjU2MjY2LCAxLjk1MDA1LCAyLjUwMjUzIiwgXAotICAgICAgICAgICIwLjA3MzQyNSwgMC40NTYyMzYsIDAuODQzMSwgMS4xMTk3NCwgMS41NjM2NiwgMS45NTE0MiwgMi41MDcxIiwgXAotICAgICAgICAgICIwLjA3MzM4OSwgMC40NTYyMjQsIDAuODQzMDMzLCAxLjExOTk2LCAxLjU2MjYsIDEuOTUwODQsIDIuNTA1NjgiLCBcCi0gICAgICAgICAgIjAuMDczMzc4LCAwLjQ1NjM4MSwgMC44NDMxNzQsIDEuMTE5OTEsIDEuNTY0MiwgMS45NTI4LCAyLjUwNzE2IiwgXAotICAgICAgICAgICIwLjA3MzQxOCwgMC40NTYwNDYsIDAuODQzMDc0LCAxLjExOTkzLCAxLjU2MzE1LCAxLjk1MDAyLCAyLjUwNTk1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1NzU4LCAwLjAwNTgzMiwgMC4wMDU4NCwgMC4wMDU4NDQsIDAuMDA1ODQ0LCAwLjAwNTg0NywgMC4wMDU4NDYiLCBcCi0gICAgICAgICAgIjAuMDA1NzQxLCAwLjAwNTgxNSwgMC4wMDU4MjMsIDAuMDA1ODI2LCAwLjAwNTgyOSwgMC4wMDU4MjksIDAuMDA1ODMiLCBcCi0gICAgICAgICAgIjAuMDA1NzI5LCAwLjAwNTgwMywgMC4wMDU4MTEsIDAuMDA1ODEzLCAwLjAwNTgxNSwgMC4wMDU4MTYsIDAuMDA1ODE3IiwgXAotICAgICAgICAgICIwLjAwNTcyLCAwLjAwNTc5NSwgMC4wMDU4MDMsIDAuMDA1ODA1LCAwLjAwNTgwNywgMC4wMDU4MDgsIDAuMDA1ODA5IiwgXAotICAgICAgICAgICIwLjAwNTcxNSwgMC4wMDU3ODksIDAuMDA1Nzk2LCAwLjAwNTc5OSwgMC4wMDU4MDEsIDAuMDA1ODAzLCAwLjAwNTgwMyIsIFwKLSAgICAgICAgICAiMC4wMDU3MSwgMC4wMDU3ODQsIDAuMDA1NzkyLCAwLjAwNTc5NCwgMC4wMDU3OTYsIDAuMDA1Nzk3LCAwLjAwNTc5OSIsIFwKLSAgICAgICAgICAiMC4wMDU3MSwgMC4wMDU3ODQsIDAuMDA1NzkyLCAwLjAwNTc5NCwgMC4wMDU3OTYsIDAuMDA1Nzk4LCAwLjAwNTc5OSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA3NjE1LCAwLjAwNzcwMywgMC4wMDc3MTIsIDAuMDA3NzE1LCAwLjAwNzcxNywgMC4wMDc3MTgsIDAuMDA3NzE5IiwgXAotICAgICAgICAgICIwLjAwNzYwMywgMC4wMDc2OTEsIDAuMDA3NzAxLCAwLjAwNzcwMywgMC4wMDc3MDYsIDAuMDA3NzA3LCAwLjAwNzcwNyIsIFwKLSAgICAgICAgICAiMC4wMDc1OTMsIDAuMDA3NjgxLCAwLjAwNzY5LCAwLjAwNzY5MywgMC4wMDc2OTUsIDAuMDA3Njk2LCAwLjAwNzY5NyIsIFwKLSAgICAgICAgICAiMC4wMDc1ODYsIDAuMDA3Njc1LCAwLjAwNzY4MywgMC4wMDc2ODYsIDAuMDA3Njg4LCAwLjAwNzY4OSwgMC4wMDc2OSIsIFwKLSAgICAgICAgICAiMC4wMDc1OCwgMC4wMDc2NjgsIDAuMDA3Njc3LCAwLjAwNzY4LCAwLjAwNzY4MiwgMC4wMDc2ODMsIDAuMDA3Njg0IiwgXAotICAgICAgICAgICIwLjAwNzU3NCwgMC4wMDc2NjMsIDAuMDA3NjcyLCAwLjAwNzY3NCwgMC4wMDc2NzcsIDAuMDA3Njc4LCAwLjAwNzY3OSIsIFwKLSAgICAgICAgICAiMC4wMDc1NjYsIDAuMDA3NjU1LCAwLjAwNzY2NCwgMC4wMDc2NjYsIDAuMDA3NjY4LCAwLjAwNzY2OSwgMC4wMDc2NyIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogVExBVE5DQVg4ICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoVExBVE5DQVg4KSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuNDUyNjUyOwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIGNsb2NrX2dhdGluZ19pbnRlZ3JhdGVkX2NlbGwgOiAibGF0Y2hfcG9zZWRnZSI7Ci0gIHN0YXRldGFibGUoIiBDSyAgRSAiLCAiIEVJTlQgIikgewotICAgICB0YWJsZSA6ICIgIEwgIEwgOiAtIDogTCAsIFwKLSAgICAgICAgICAgICAgICBMICBIIDogLSA6IEggLCBcCi0gICAgICAgICAgICAgICAgSCAgLSA6IC0gOiBOICI7Ci0gIH0KLSAgcGluKEVJTlQpIHsKLSAgICBkaXJlY3Rpb24gOiBpbnRlcm5hbDsKLSAgICBpbnRlcm5hbF9ub2RlIDogIkVJTlQiOwotICB9Ci0gIHBpbihDSykgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjE2Mjg2OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYxNjAxNjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2MTYyODY7Ci0gICAgY2xvY2tfZ2F0ZV9jbG9ja19waW4gOiB0cnVlOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjcxOCwgMC4wMDI3MDMsIDAuMDAyNjkxLCAwLjAwMjY4MiwgMC4wMDI2NzcsIDAuMDAyNjcyLCAwLjAwMjY3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzMTUyLCAwLjAwMzE0MSwgMC4wMDMxMzIsIDAuMDAzMTI1LCAwLjAwMzEyMSwgMC4wMDMxMTUsIDAuMDAzMTEzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRSI7Ci0gICAgICBzZGZfY29uZCA6ICJFID09IDEnYjAiOwotICAgICAgZmFsbF9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMjQ0MjM0LCAwLjI1NTk0NiwgMC4yNzA3MTQsIDAuMjg1Mjk5LCAwLjI5OTczOCwgMC4zMjE0OTgsIDAuMzM4OTkzIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihFKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2MDcyNzg7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjA1NDQ4OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDYwNzI3ODsKLSAgICBjbG9ja19nYXRlX2VuYWJsZV9waW4gOiB0cnVlOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjkxNSwgMC4wMDI5MDUsIDAuMDAyODk3LCAwLjAwMjg5MywgMC4wMDI4ODksIDAuMDAyODg0LCAwLjAwMjg4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzMDU1LCAwLjAwMzA1LCAwLjAwMzA0NiwgMC4wMDMwNDIsIDAuMDAzMDQsIDAuMDAzMDM2LCAwLjAwMzAzMyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjA4NzUsIC0wLjA3NjI1LCAtMC4wNjM3NSwgLTAuMDUxMjUsIC0wLjA0NSwgLTAuMDI4NzUsIC0wLjAyIiwgXAotICAgICAgICAgICItMC4wOTg3NSwgLTAuMDg3NSwgLTAuMDc1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDQsIC0wLjAzMTI1IiwgXAotICAgICAgICAgICItMC4xMTEyNSwgLTAuMSwgLTAuMDg3NSwgLTAuMDc1LCAtMC4wNjg3NSwgLTAuMDU4NzUsIC0wLjA0Mzc1IiwgXAotICAgICAgICAgICItMC4xMjM3NSwgLTAuMTEyNSwgLTAuMSwgLTAuMDkzNzUsIC0wLjA4MTI1LCAtMC4wNzEyNSwgLTAuMDU2MjUiLCBcCi0gICAgICAgICAgIi0wLjEzNjI1LCAtMC4xMjUsIC0wLjExMjUsIC0wLjEwNjI1LCAtMC4wOTM3NSwgLTAuMDgzNzUsIC0wLjA3NSIsIFwKLSAgICAgICAgICAiLTAuMTU4NzUsIC0wLjE0NzUsIC0wLjEzNSwgLTAuMTI4NzUsIC0wLjExNjI1LCAtMC4xMDYyNSwgLTAuMDkxMjUiLCBcCi0gICAgICAgICAgIi0wLjE4LCAtMC4xNjg3NSwgLTAuMTU2MjUsIC0wLjE0Mzc1LCAtMC4xMzc1LCAtMC4xMjEyNSwgLTAuMTEyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAxMjUsIC0wLjAwMTI1LCAwLjAxMTI1LCAwLjAzLCAwLjA0MjUsIDAuMDY1LCAwLjA4NjI1IiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDEyNSwgMCwgMC4wMTg3NSwgMC4wMzEyNSwgMC4wNTM3NSwgMC4wNzUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMjUsIC0wLjAxMjUsIDAuMDA2MjUsIDAuMDE4NzUsIDAuMDQxMjUsIDAuMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjAzNzUsIC0wLjAyNSwgLTAuMDA2MjUsIDAuMDA2MjUsIDAuMDI4NzUsIDAuMDUiLCBcCi0gICAgICAgICAgIi0wLjA2MTI1LCAtMC4wNSwgLTAuMDM3NSwgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLjAxNjI1LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjA4Mzc1LCAtMC4wNzI1LCAtMC4wNTM3NSwgLTAuMDQxMjUsIC0wLjAyMjUsIDAsIDAuMDIxMjUiLCBcCi0gICAgICAgICAgIi0wLjA5ODc1LCAtMC4wODc1LCAtMC4wNjg3NSwgLTAuMDU2MjUsIC0wLjA0Mzc1LCAtMC4wMTUsIDAiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDkzNzUsIDAuMDgyNSwgMC4wNywgMC4wNTc1LCAwLjA1MTI1LCAwLjAzNSwgMC4wMjYyNSIsIFwKLSAgICAgICAgICAiMC4xMDUsIDAuMDkzNzUsIDAuMDgxMjUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNDYyNSwgMC4wMzc1IiwgXAotICAgICAgICAgICIwLjExNzUsIDAuMTA2MjUsIDAuMDkzNzUsIDAuMDgxMjUsIDAuMDc1LCAwLjA2NSwgMC4wNSIsIFwKLSAgICAgICAgICAiMC4xMywgMC4xMTg3NSwgMC4xMDYyNSwgMC4xLCAwLjA4NzUsIDAuMDc3NSwgMC4wNjI1IiwgXAotICAgICAgICAgICIwLjE0MjUsIDAuMTMxMjUsIDAuMTE4NzUsIDAuMTEyNSwgMC4xLCAwLjA5LCAwLjA4MTI1IiwgXAotICAgICAgICAgICIwLjE2NSwgMC4xNTM3NSwgMC4xNDEyNSwgMC4xMzUsIDAuMTIyNSwgMC4xMTI1LCAwLjA5NzUiLCBcCi0gICAgICAgICAgIjAuMTg2MjUsIDAuMTc1LCAwLjE2MjUsIDAuMTUsIDAuMTQzNzUsIDAuMTI3NSwgMC4xMTg3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxODc1LCAwLjAwNzUsIC0wLjAwNSwgLTAuMDIzNzUsIC0wLjAzNjI1LCAtMC4wNTg3NSwgLTAuMDgiLCBcCi0gICAgICAgICAgIjAuMDMsIDAuMDE4NzUsIDAuMDA2MjUsIC0wLjAxMjUsIC0wLjAyNSwgLTAuMDQ3NSwgLTAuMDY4NzUiLCBcCi0gICAgICAgICAgIjAuMDQyNSwgMC4wMzEyNSwgMC4wMTg3NSwgMCwgLTAuMDEyNSwgLTAuMDM1LCAtMC4wNTYyNSIsIFwKLSAgICAgICAgICAiMC4wNTUsIDAuMDQzNzUsIDAuMDMxMjUsIDAuMDEyNSwgMCwgLTAuMDIyNSwgLTAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMDY3NSwgMC4wNTYyNSwgMC4wNDM3NSwgMC4wMjUsIDAuMDEyNSwgLTAuMDEsIC0wLjAzMTI1IiwgXAotICAgICAgICAgICIwLjA5LCAwLjA3ODc1LCAwLjA2LCAwLjA0NzUsIDAuMDI4NzUsIDAuMDA2MjUsIC0wLjAxNSIsIFwKLSAgICAgICAgICAiMC4xMDUsIDAuMDkzNzUsIDAuMDc1LCAwLjA2MjUsIDAuMDUsIDAuMDIxMjUsIDAuMDA2MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEVDSykgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAxLjAzMDk5OwotICAgIGNsb2NrX2dhdGVfb3V0X3BpbiA6IHRydWU7Ci0gICAgc3RhdGVfZnVuY3Rpb24gOiAiKENLIEVJTlQpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMjg4MDEsIDAuMzA0NDg0LCAwLjM2OTA2NiwgMC40MTQ2NzIsIDAuNDg3NDQ1LCAwLjU1MTA5NCwgMC42NDE5NTUiLCBcCi0gICAgICAgICAgIjAuMjQwMzQ1LCAwLjMxNjExNCwgMC4zODA2NzIsIDAuNDI2MjU3LCAwLjQ5OTA1NywgMC41NjI2ODEsIDAuNjUzNjMyIiwgXAotICAgICAgICAgICIwLjI1NTkxOSwgMC4zMzE1NzIsIDAuMzk2MTYyLCAwLjQ0MTc2MiwgMC41MTQ1MzUsIDAuNTc4MjA5LCAwLjY2OTE0MSIsIFwKLSAgICAgICAgICAiMC4yNzEyMTcsIDAuMzQ2OTA5LCAwLjQxMTUxOCwgMC40NTcxMzcsIDAuNTI5OTA1LCAwLjU5MzU0MSwgMC42ODQ1MDkiLCBcCi0gICAgICAgICAgIjAuMjg2MDY4LCAwLjM2MTYyOSwgMC40MjYyOTMsIDAuNDcxODc5LCAwLjU0NDY3NSwgMC42MDgzLCAwLjY5OTI1IiwgXAotICAgICAgICAgICIwLjMxMDI5NywgMC4zODU5MTMsIDAuNDUwNTMxLCAwLjQ5NjE1NCwgMC41Njg5MjIsIDAuNjMyNTYzLCAwLjcyMzUyNiIsIFwKLSAgICAgICAgICAiMC4zMjk5OTEsIDAuNDA1NTY5LCAwLjQ3MDIzOCwgMC41MTU4MjQsIDAuNTg4NjE5LCAwLjY1MjI0MiwgMC43NDMxOTUiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTQwOTYsIDAuMTc0ODE0LCAwLjI5OTU4OCwgMC4zOTAzNTMsIDAuNTM1NTMyLCAwLjY2NTUyNSwgMC44NDk4MzkiLCBcCi0gICAgICAgICAgIjAuMDU0MDY0LCAwLjE3NDgxMSwgMC4yOTkzNzMsIDAuMzkwNDU0LCAwLjUzNTk5MiwgMC42NjQzMjQsIDAuODQ3NzcyIiwgXAotICAgICAgICAgICIwLjA1MzkzOCwgMC4xNzQ3ODYsIDAuMjk5NTI4LCAwLjM5MDMzNCwgMC41MzU0OTEsIDAuNjY1NjE3LCAwLjg0Nzc3MiIsIFwKLSAgICAgICAgICAiMC4wNTQwNDksIDAuMTc0Nzk0LCAwLjI5OTUzLCAwLjM5MDMzMywgMC41MzYwMjgsIDAuNjY1MzE5LCAwLjg0NzU1MSIsIFwKLSAgICAgICAgICAiMC4wNTM3OTEsIDAuMTc0NzU0LCAwLjI5OTM2OSwgMC4zOTA0NDUsIDAuNTM1OTU4LCAwLjY2NDMxNiwgMC44NDc3NyIsIFwKLSAgICAgICAgICAiMC4wNTQwNzIsIDAuMTc0NzIsIDAuMjk5NTIxLCAwLjM5MDI3NiwgMC41MzYwNDksIDAuNjY0Mjg4LCAwLjg0Nzc1IiwgXAotICAgICAgICAgICIwLjA1MzkxNSwgMC4xNzQ3NjYsIDAuMjk5MzQ0LCAwLjM5MDM4LCAwLjUzNTkyMSwgMC42NjQyNzIsIDAuODQ3NzY0Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTkzMDgxLCAwLjI3MTg5OCwgMC4zNDY0ODIsIDAuMzk5NTk3LCAwLjQ4NDY1NSwgMC41NTkxMSwgMC42NjU1MjciLCBcCi0gICAgICAgICAgIjAuMjA0ODA5LCAwLjI4MzU3NywgMC4zNTgxNiwgMC40MTEyNzMsIDAuNDk2MzM1LCAwLjU3MDc5NSwgMC42NzcyMTQiLCBcCi0gICAgICAgICAgIjAuMjE5NTA3LCAwLjI5ODMyNiwgMC4zNzI5MTMsIDAuNDI2MDI5LCAwLjUxMTA4NCwgMC41ODU1NTEsIDAuNjkxOTQ2IiwgXAotICAgICAgICAgICIwLjIzNDA3OCwgMC4zMTI4OTUsIDAuMzg3NDcxLCAwLjQ0MDU4NywgMC41MjU2MzksIDAuNjAwMTA0LCAwLjcwNjUxOCIsIFwKLSAgICAgICAgICAiMC4yNDg1MTYsIDAuMzI3MzI5LCAwLjQwMTkxNCwgMC40NTUwMywgMC41NDAwODEsIDAuNjE0NTQzLCAwLjcyMDk0NyIsIFwKLSAgICAgICAgICAiMC4yNzAyODMsIDAuMzQ5MDkyLCAwLjQyMzY2OSwgMC40NzY3ODksIDAuNTYxODQ2LCAwLjYzNjMxLCAwLjc0MjcxMyIsIFwKLSAgICAgICAgICAiMC4yODc3MTgsIDAuMzY2NTYyLCAwLjQ0MTE0NywgMC40OTQyNjEsIDAuNTc5MzE5LCAwLjY1Mzc4MiwgMC43NjAyMSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0MzU1NiwgMC4xODYwNTksIDAuMzMzMzI5LCAwLjQzODk3NiwgMC42MDgzODIsIDAuNzU2NzY5LCAwLjk2ODk0OSIsIFwKLSAgICAgICAgICAiMC4wNDM2MTIsIDAuMTg2MDU3LCAwLjMzMjYwMywgMC40Mzg4NTQsIDAuNjA4MzYsIDAuNzU1OTUzLCAwLjk2ODY3NiIsIFwKLSAgICAgICAgICAiMC4wNDM1NDMsIDAuMTg2MDYzLCAwLjMzMzI5OCwgMC40MzgxMDEsIDAuNjA4Mzg2LCAwLjc1NTY2NCwgMC45NjgzOTIiLCBcCi0gICAgICAgICAgIjAuMDQzNTgxLCAwLjE4NjA0LCAwLjMzMzAxLCAwLjQzODgzMSwgMC42MDgzMjMsIDAuNzU3MDU5LCAwLjk2OTU4MiIsIFwKLSAgICAgICAgICAiMC4wNDM1NTIsIDAuMTg2MDMsIDAuMzMyNTQ2LCAwLjQzODE1MiwgMC42MDgyMjQsIDAuNzU2NzM5LCAwLjk2ODg3IiwgXAotICAgICAgICAgICIwLjA0MzU0OCwgMC4xODYwMDcsIDAuMzMyNTMxLCAwLjQzODgxNywgMC42MDgyOTUsIDAuNzU2OTk5LCAwLjk2OTU5IiwgXAotICAgICAgICAgICIwLjA0MzU1MywgMC4xODYwNTUsIDAuMzMzMzMzLCAwLjQzODg2OCwgMC42MDgzNzIsIDAuNzU2Njk0LCAwLjk2NzgzNCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMDQwMSwgMC4wMTA2NiwgMC4wMTA3MTcsIDAuMDEwNzM2LCAwLjAxMDc1MiwgMC4wMTA3NjEsIDAuMDEwNzY5IiwgXAotICAgICAgICAgICIwLjAxMDM4NiwgMC4wMTA2NDUsIDAuMDEwNzAzLCAwLjAxMDcyLCAwLjAxMDczNywgMC4wMTA3NDYsIDAuMDEwNzU0IiwgXAotICAgICAgICAgICIwLjAxMDM3NSwgMC4wMTA2MzMsIDAuMDEwNjkyLCAwLjAxMDcwOSwgMC4wMTA3MjYsIDAuMDEwNzM1LCAwLjAxMDc0MyIsIFwKLSAgICAgICAgICAiMC4wMTAzNjcsIDAuMDEwNjI1LCAwLjAxMDY4MywgMC4wMTA3MDEsIDAuMDEwNzE4LCAwLjAxMDcyNywgMC4wMTA3MzQiLCBcCi0gICAgICAgICAgIjAuMDEwMzYsIDAuMDEwNjE3LCAwLjAxMDY3NCwgMC4wMTA2OTMsIDAuMDEwNzEsIDAuMDEwNzE4LCAwLjAxMDcyNiIsIFwKLSAgICAgICAgICAiMC4wMTAzNTQsIDAuMDEwNjEzLCAwLjAxMDY3LCAwLjAxMDY4OCwgMC4wMTA3MDYsIDAuMDEwNzE1LCAwLjAxMDcyMyIsIFwKLSAgICAgICAgICAiMC4wMTAzNTEsIDAuMDEwNjA4LCAwLjAxMDY3MSwgMC4wMTA2ODksIDAuMDEwNzAxLCAwLjAxMDcxLCAwLjAxMDcxOCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEzNTEyLCAwLjAxMzg0LCAwLjAxMzkwNCwgMC4wMTM5MjQsIDAuMDEzOTQyLCAwLjAxMzk1MiwgMC4wMTM5NiIsIFwKLSAgICAgICAgICAiMC4wMTM1LCAwLjAxMzgzLCAwLjAxMzg5MywgMC4wMTM5MTQsIDAuMDEzOTMyLCAwLjAxMzk0MSwgMC4wMTM5NDkiLCBcCi0gICAgICAgICAgIjAuMDEzNDkyLCAwLjAxMzgyMSwgMC4wMTM4ODQsIDAuMDEzOTA1LCAwLjAxMzkyMywgMC4wMTM5MzIsIDAuMDEzOTQxIiwgXAotICAgICAgICAgICIwLjAxMzQ4MywgMC4wMTM4MTEsIDAuMDEzODc1LCAwLjAxMzg5NiwgMC4wMTM5MTQsIDAuMDEzOTIzLCAwLjAxMzkzMiIsIFwKLSAgICAgICAgICAiMC4wMTM0ODEsIDAuMDEzODA5LCAwLjAxMzg3MywgMC4wMTM4OTMsIDAuMDEzOTExLCAwLjAxMzkyLCAwLjAxMzkyOSIsIFwKLSAgICAgICAgICAiMC4wMTM0NzIsIDAuMDEzOCwgMC4wMTM4NjMsIDAuMDEzODg0LCAwLjAxMzkwMiwgMC4wMTM5MTEsIDAuMDEzOTIiLCBcCi0gICAgICAgICAgIjAuMDEzNDY4LCAwLjAxMzc5OSwgMC4wMTM4NjIsIDAuMDEzODgyLCAwLjAxMzksIDAuMDEzOTA5LCAwLjAxMzkxNyIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogVExBVE5TUlgxICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoVExBVE5TUlgxKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMjQ2MTgzOwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIGxhdGNoIChRSU5ULE41KSB7Ci0gICAgZGF0YV9pbiA6ICJEIjsKLSAgICBlbmFibGUgOiAiKCghR04pIFJOKSI7Ci0gICAgcHJlc2V0IDogIighU04pIjsKLSAgfQotICBwaW4oRCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjAzNzM7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjAyMTAyOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDYwMzczOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDE1OSwgMC4wMDAxNjEsIDAuMDAwMTYxLCAwLjAwMDE2MSwgMC4wMDAxNjIsIDAuMDAwMTYyLCAwLjAwMDE2MiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDE2OCwgMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJHTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJSTiZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJSTl9FUV8xX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDEyNSwgLTAuMDAxMjUsIDAuMDExMjUsIDAuMDMsIDAuMDQyNSwgMC4wNjUsIDAuMDgiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTI1LCAwLCAwLjAxODc1LCAwLjAzMTI1LCAwLjA1Mzc1LCAwLjA2ODc1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDI1LCAtMC4wMTI1LCAwLjAwNjI1LCAwLjAxODc1LCAwLjA0MTI1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjAzNzUsIC0wLjAyNSwgLTAuMDEyNSwgMC4wMDYyNSwgMC4wMjI1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICItMC4wNjc1LCAtMC4wNTYyNSwgLTAuMDM3NSwgLTAuMDI1LCAtMC4wMTI1LCAwLjAxLCAwLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDksIC0wLjA3ODc1LCAtMC4wNiwgLTAuMDQ3NSwgLTAuMDI4NzUsIC0wLjAxMjUsIDAuMDA4NzUiLCBcCi0gICAgICAgICAgIi0wLjEwNSwgLTAuMDkzNzUsIC0wLjA4MTI1LCAtMC4wNjI1LCAtMC4wNSwgLTAuMDI3NSwgLTAuMDEyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjA0Mzc1LCAtMC4wMzI1LCAtMC4wMiwgLTAuMDAxMjUsIDAuMDExMjUsIDAuMDI3NSwgMC4wNDI1IiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA0Mzc1LCAtMC4wMzEyNSwgLTAuMDEyNSwgMCwgMC4wMTYyNSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDY3NSwgLTAuMDU2MjUsIC0wLjA0Mzc1LCAtMC4wMzEyNSwgLTAuMDEyNSwgMC4wMDM3NSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDgsIC0wLjA2ODc1LCAtMC4wNTYyNSwgLTAuMDM3NSwgLTAuMDI1LCAtMC4wMDg3NSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDkyNSwgLTAuMDgxMjUsIC0wLjA2ODc1LCAtMC4wNSwgLTAuMDM3NSwgLTAuMDIxMjUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICItMC4xMTUsIC0wLjEwMzc1LCAtMC4wODUsIC0wLjA3MjUsIC0wLjA2LCAtMC4wMzc1LCAtMC4wMjI1IiwgXAotICAgICAgICAgICItMC4xMywgLTAuMTE4NzUsIC0wLjEsIC0wLjA4NzUsIC0wLjA3NSwgLTAuMDUyNSwgLTAuMDM3NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJHTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiUk4mU04iOwotICAgICAgc2RmX2NvbmQgOiAiUk5fRVFfMV9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1LCAwLjAzODc1LCAwLjAyLCAwLjAwNzUsIC0wLjAxMTI1LCAtMC4wMjc1LCAtMC4wNDg3NSIsIFwKLSAgICAgICAgICAiMC4wNjEyNSwgMC4wNSwgMC4wMzEyNSwgMC4wMTg3NSwgMCwgLTAuMDE2MjUsIC0wLjAzNzUiLCBcCi0gICAgICAgICAgIjAuMDczNzUsIDAuMDYyNSwgMC4wNDM3NSwgMC4wMzEyNSwgMC4wMTI1LCAtMC4wMDM3NSwgLTAuMDI1IiwgXAotICAgICAgICAgICIwLjA4NjI1LCAwLjA3NSwgMC4wNTYyNSwgMC4wNDM3NSwgMC4wMzEyNSwgMC4wMDg3NSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMDk4NzUsIDAuMDg3NSwgMC4wNjg3NSwgMC4wNTYyNSwgMC4wNDM3NSwgMC4wMjEyNSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiMC4xMjEyNSwgMC4xMSwgMC4wOTEyNSwgMC4wNzg3NSwgMC4wNiwgMC4wNDM3NSwgMC4wMjI1IiwgXAotICAgICAgICAgICIwLjEzNjI1LCAwLjEyNSwgMC4xMTI1LCAwLjA5Mzc1LCAwLjA4MTI1LCAwLjA1ODc1LCAwLjA0Mzc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg3NSwgMC4wNzYyNSwgMC4wNTc1LCAwLjA0NSwgMC4wMzI1LCAwLjAxLCAtMC4wMDUiLCBcCi0gICAgICAgICAgIjAuMDk4NzUsIDAuMDg3NSwgMC4wNjg3NSwgMC4wNTYyNSwgMC4wNDM3NSwgMC4wMjEyNSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiMC4xMTEyNSwgMC4xLCAwLjA4MTI1LCAwLjA2ODc1LCAwLjA1NjI1LCAwLjAzMzc1LCAwLjAxODc1IiwgXAotICAgICAgICAgICIwLjEyMzc1LCAwLjExMjUsIDAuMDkzNzUsIDAuMDgxMjUsIDAuMDYyNSwgMC4wNDYyNSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4xMywgMC4xMTg3NSwgMC4xMDYyNSwgMC4wOTM3NSwgMC4wNzUsIDAuMDU4NzUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMTUyNSwgMC4xNDEyNSwgMC4xMjI1LCAwLjExLCAwLjA5NzUsIDAuMDc1LCAwLjA2IiwgXAotICAgICAgICAgICIwLjE2NzUsIDAuMTU2MjUsIDAuMTM3NSwgMC4xMjUsIDAuMTEyNSwgMC4wOSwgMC4wNzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEdOKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA1OTk1MDU7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNTk5MjI5OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDU5OTUwNTsKLSAgICBjbG9jayA6IHRydWU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjI4LCAwLjAwMDIwOSwgMC4wMDAxOTksIDAuMDAwMTk2LCAwLjAwMDE5NSwgMC4wMDAxOTMsIDAuMDAwMTk0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzMTIsIDAuMDAzMTA0LCAwLjAwMzA5MSwgMC4wMDMwODQsIDAuMDAzMDc5LCAwLjAwMzA3NSwgMC4wMDMwNzMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiR04iOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFEJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgZmFsbF9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuNDM5ODE3LCAwLjQ1MTQ2NiwgMC40NjUzNDUsIDAuNDc5MTQ3LCAwLjQ5MTAwOSwgMC41MDgyMjMsIDAuNTIxNjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihRKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMTM0Mzc4OwotICAgIGZ1bmN0aW9uIDogIlFJTlQiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkQiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI3MTQyLCAwLjMxMzgyMiwgMC41NTY2NzQsIDAuNzcxMTUsIDEuMDU1OTUsIDEuNjI2OCwgMS45ODM5OCIsIFwKLSAgICAgICAgICAiMC4yODI3MTcsIDAuMzI1MzY1LCAwLjU2ODIxLCAwLjc4MjY5MSwgMS4wNjc1LCAxLjYzODMzLCAxLjk5NTg1IiwgXAotICAgICAgICAgICIwLjI5NjY4NCwgMC4zMzkxMjcsIDAuNTgxMzI3LCAwLjc5NjIyNywgMS4wODExNywgMS42NTMyNiwgMi4wMDg2NyIsIFwKLSAgICAgICAgICAiMC4zMTAwMDMsIDAuMzUyNzA5LCAwLjU5NDY5NywgMC44MDgzMTksIDEuMDk0NjcsIDEuNjY1NDgsIDIuMDIyMTciLCBcCi0gICAgICAgICAgIjAuMzIzOTg4LCAwLjM2NjQ0MywgMC42MDkzMDIsIDAuODIzNDY3LCAxLjEwODI5LCAxLjY3NzU5LCAyLjAzNjAyIiwgXAotICAgICAgICAgICIwLjM0NTY3MywgMC4zODgwODYsIDAuNjMwMzU3LCAwLjg0NTk0NywgMS4xMzAwOCwgMS43MDA0NCwgMi4wNTc2NSIsIFwKLSAgICAgICAgICAiMC4zNjQwMzEsIDAuNDA2NjI1LCAwLjY0ODc2LCAwLjg2MjYyNywgMS4xNDg2NCwgMS43MTk3NSwgMi4wNzYxMyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNTYyMDIsIDAuMjQzNDU0LCAwLjc0MDgzMiwgMS4xNzg5NCwgMS43NjQxMiwgMi45MzM2NiwgMy42NjQ2NyIsIFwKLSAgICAgICAgICAiMC4xNTU4OTcsIDAuMjQyOTgyLCAwLjc0MDgzNywgMS4xNzkwMiwgMS43NjQxMiwgMi45MzM2NywgMy42NjQ5OCIsIFwKLSAgICAgICAgICAiMC4xNTYyMSwgMC4yNDMwMDgsIDAuNzMzNTQ2LCAxLjE3OTExLCAxLjc2NDE3LCAyLjkzMzgzLCAzLjY2NDYiLCBcCi0gICAgICAgICAgIjAuMTU1OTAyLCAwLjI0MzAyNCwgMC43MzY4NjYsIDEuMTY4OTIsIDEuNzY0MzMsIDIuOTMzODksIDMuNjY0ODUiLCBcCi0gICAgICAgICAgIjAuMTU2MjEzLCAwLjI0MzA3MSwgMC43NDA4MiwgMS4xNzkyLCAxLjc2NDIzLCAyLjkxNSwgMy42NjQ1NCIsIFwKLSAgICAgICAgICAiMC4xNTYyMTIsIDAuMjQzNDk2LCAwLjczOTcyNSwgMS4xNzYzOCwgMS43NjQyLCAyLjkzMzk2LCAzLjY2NDU4IiwgXAotICAgICAgICAgICIwLjE1NTk1MSwgMC4yNDMwNDksIDAuNzM5MTk0LCAxLjE3NDM2LCAxLjc2NDI1LCAyLjkzMzg5LCAzLjY2NDczIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMzMzc0MSwgMC4zODI4NTIsIDAuNjYzOTk3LCAwLjkwOTg2NywgMS4yMzg4MywgMS45MDM5MywgMi4zMTY3MSIsIFwKLSAgICAgICAgICAiMC4zNDUwNzUsIDAuMzk0MjIzLCAwLjY3NTMwMywgMC45MjA5MjIsIDEuMjUyMDQsIDEuOTE1MjksIDIuMzI4MjEiLCBcCi0gICAgICAgICAgIjAuMzU3ODEyLCAwLjQwNjkzOCwgMC42ODgwMzIsIDAuOTMzODY3LCAxLjI2MjYxLCAxLjkyODA0LCAyLjM0MDk5IiwgXAotICAgICAgICAgICIwLjM2OTkzNSwgMC40MTkwNDQsIDAuNjk5OTM4LCAwLjk0ODQzNywgMS4yNzkxNiwgMS45Mzk3OSwgMi4zNTMzNCIsIFwKLSAgICAgICAgICAiMC4zODIwNywgMC40MzExOTYsIDAuNzEyMjg4LCAwLjk1ODEyNSwgMS4yOTE2MiwgMS45NTIzLCAyLjM2NTM4IiwgXAotICAgICAgICAgICIwLjQwMDk2NCwgMC40NTAwOTgsIDAuNzMxMTI5LCAwLjk3NzAyMiwgMS4zMTA0NywgMS45NzE0MSwgMi4zODQzNSIsIFwKLSAgICAgICAgICAiMC40MTcyMDYsIDAuNDY2MzEyLCAwLjc0NzQ3MiwgMC45OTMzMywgMS4zMjIxNSwgMS45ODc0NSwgMi40MDAzMyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNzYzNDMsIDAuMjc0MjM3LCAwLjgzMTAyNSwgMS4zMTg1MiwgMS45NzQxMSwgMy4yODE0MywgNC4wOTk5OCIsIFwKLSAgICAgICAgICAiMC4xNzYyLCAwLjI3MzcwMSwgMC44MzA4NDksIDEuMzIxODQsIDEuOTc1NTYsIDMuMjgxNDksIDQuMDk5OTYiLCBcCi0gICAgICAgICAgIjAuMTc2MjE3LCAwLjI3NDA1NiwgMC44MzExMjUsIDEuMzE3NzEsIDEuOTczNjQsIDMuMjgxNTUsIDQuMTAwMzMiLCBcCi0gICAgICAgICAgIjAuMTc2MTY5LCAwLjI3Mzg4LCAwLjgzMDY5OSwgMS4zMTg5NywgMS45NzE4NiwgMy4yODEzNiwgNC4wOTg0OCIsIFwKLSAgICAgICAgICAiMC4xNzYyMTYsIDAuMjc0MDMyLCAwLjgzMTEyNSwgMS4zMTc3MywgMS45NzQ2OSwgMy4yODE1NywgNC4xMDAxMiIsIFwKLSAgICAgICAgICAiMC4xNzYyMTksIDAuMjczOTE4LCAwLjgzMTExMiwgMS4zMTgwMSwgMS45NzIwOSwgMy4yODE1NCwgNC4xMDAxOCIsIFwKLSAgICAgICAgICAiMC4xNzYzMzgsIDAuMjc0NDQyLCAwLjgzMTEyNSwgMS4zMTc4NiwgMS45NzIwOCwgMy4yODE3MiwgNC4xMDA2MiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJHTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBub25fdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGZhbGxpbmdfZWRnZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuNDEwODIsIDAuNDUzMjMxLCAwLjY5NTA5NSwgMC45MTAxMzYsIDEuMTk1MDgsIDEuNzY1OTUsIDIuMTIyOTIiLCBcCi0gICAgICAgICAgIjAuNDIyMzQzLCAwLjQ2NDc2LCAwLjcwNzcyLCAwLjkyMTY0MSwgMS4yMDY2MiwgMS43NzcxNCwgMi4xMzQ0MiIsIFwKLSAgICAgICAgICAiMC40MzYzOTEsIDAuNDc4ODU3LCAwLjcyMTcxOCwgMC45MzQzNTksIDEuMjIwNjYsIDEuNzkxOTMsIDIuMTQ4NTMiLCBcCi0gICAgICAgICAgIjAuNDUwMTg3LCAwLjQ5MjY1NiwgMC43MzQ0NTYsIDAuOTQ4MTkzLCAxLjIzNDQ2LCAxLjgwNTcyLCAyLjE2MjMxIiwgXAotICAgICAgICAgICIwLjQ2MjMwOSwgMC41MDQ3MTEsIDAuNzQ3NTM1LCAwLjk2MjI0OSwgMS4yNDY3LCAxLjgxNDM1LCAyLjE3NDMiLCBcCi0gICAgICAgICAgIjAuNDc5Mzc0LCAwLjUyMTgyNCwgMC43NjQ2NjgsIDAuOTc4MDUxLCAxLjI2MzY1LCAxLjgzNDg5LCAyLjE5MTU0IiwgXAotICAgICAgICAgICIwLjQ5MjcxMiwgMC41MzUxNjYsIDAuNzc3MTE1LCAwLjk5MDkyLCAxLjI3NzEzLCAxLjg0NzgsIDIuMjA0NjQiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTU2MjIzLCAwLjI0MzI2OCwgMC43Mzc1OTYsIDEuMTc5MjcsIDEuNzY0MjMsIDIuOTIxNTEsIDMuNjY0NDgiLCBcCi0gICAgICAgICAgIjAuMTU2MjI0LCAwLjI0MjcyNSwgMC43NDA3OSwgMS4xNzkzLCAxLjc2NDIyLCAyLjkzMzA2LCAzLjY2NDQ4IiwgXAotICAgICAgICAgICIwLjE1NjIyLCAwLjI0MzA4NSwgMC43NDA4MTgsIDEuMTcxMDIsIDEuNzY0MjIsIDIuOTMzNjYsIDMuNjY0NDUiLCBcCi0gICAgICAgICAgIjAuMTU2MjIsIDAuMjQyODg4LCAwLjczOTY0MSwgMS4xNjk3NiwgMS43NjQyMiwgMi45MzM2NiwgMy42NjQ0NSIsIFwKLSAgICAgICAgICAiMC4xNTYyMiwgMC4yNDMzMzksIDAuNzM1MDQ1LCAxLjE2OSwgMS43NjQyLCAyLjkwNTU4LCAzLjY2NDU1IiwgXAotICAgICAgICAgICIwLjE1NjIxOCwgMC4yNDMwNDQsIDAuNzQwODM0LCAxLjE3OTUzLCAxLjc2NDIyLCAyLjkzMzY4LCAzLjY2NDQ1IiwgXAotICAgICAgICAgICIwLjE1NjIyNCwgMC4yNDMwNywgMC43MzczNTcsIDEuMTcyNTYsIDEuNzY0MTgsIDIuOTMzOTMsIDMuNjY0NTciKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuNDM5ODE3LCAwLjQ4OTE4NywgMC43NzAwNTgsIDEuMDE4MjQsIDEuMzQ5MzEsIDIuMDEwMTUsIDIuNDIzMzgiLCBcCi0gICAgICAgICAgIjAuNDUxNDY2LCAwLjUwMDgxMiwgMC43ODE2NzksIDEuMDI5OTMsIDEuMzYwOTMsIDIuMDIxNjgsIDIuNDM1MDUiLCBcCi0gICAgICAgICAgIjAuNDY1MzQ1LCAwLjUxNDc4OCwgMC43OTU2NjUsIDEuMDQxNDMsIDEuMzc0OTEsIDIuMDMwNTIsIDIuNDQ4OTMiLCBcCi0gICAgICAgICAgIjAuNDc5MTQ3LCAwLjUyODY1NCwgMC44MDk0NDgsIDEuMDU1MjksIDEuMzg4NzgsIDIuMDQ5MzcsIDIuNDYyNzQiLCBcCi0gICAgICAgICAgIjAuNDkxMDA5LCAwLjU0MDYxNCwgMC44MjE0MzgsIDEuMDY3MjUsIDEuNDAwNzQsIDIuMDYxMTUsIDIuNDc0NyIsIFwKLSAgICAgICAgICAiMC41MDgyMjMsIDAuNTU3NzY5LCAwLjgzODU2MiwgMS4wODQzNSwgMS40MTM4MSwgMi4wNzg1MywgMi40ODMzIiwgXAotICAgICAgICAgICIwLjUyMTYyNSwgMC41NzA5NjMsIDAuODUxOTI0LCAxLjEwMDM5LCAxLjQzMTEsIDIuMDkxNjUsIDIuNTA1MiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNzYxNzYsIDAuMjczODMxLCAwLjgzMDI0NSwgMS4zMTk1OSwgMS45NzQ0OCwgMy4yNzk3NSwgNC4wOTU2IiwgXAotICAgICAgICAgICIwLjE3NjA4NywgMC4yNzM5NzgsIDAuODMwODM5LCAxLjMyMDMsIDEuOTcxODYsIDMuMjgwOTcsIDQuMDk4NTciLCBcCi0gICAgICAgICAgIjAuMTc2MjY1LCAwLjI3Mzk5OCwgMC44MzA4MzksIDEuMzE3OTQsIDEuOTcxOTQsIDMuMjgzMzcsIDQuMDk5MDMiLCBcCi0gICAgICAgICAgIjAuMTc2MzcsIDAuMjczOTM4LCAwLjgzMTA3OCwgMS4zMTkzLCAxLjk3MTg5LCAzLjI4MTUzLCA0LjA5OTA1IiwgXAotICAgICAgICAgICIwLjE3NjUzOSwgMC4yNzM5OTEsIDAuODMxMDg5LCAxLjMxODg3LCAxLjk3MTkyLCAzLjI4MTU4LCA0LjA5OTEiLCBcCi0gICAgICAgICAgIjAuMTc2NDY5LCAwLjI3Mzk0MiwgMC44MzEwNjksIDEuMzIwNTgsIDEuOTc0MjgsIDMuMjgxOSwgNC4wOTQ0MiIsIFwKLSAgICAgICAgICAiMC4xNzYzNjEsIDAuMjc0MDIzLCAwLjgzMDY5NSwgMS4zMTkzOCwgMS45NzIwNSwgMy4yODE5NywgNC4wOTkxMiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcmlzaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjM5MjIxNiwgMC40MzQ2MjYsIDAuNjc3NTU4LCAwLjg5MDMyNywgMS4xNzY0OSwgMS43NDc3NiwgMi4xMDQzNCIsIFwKLSAgICAgICAgICAiMC40MDM3MDksIDAuNDQ2MTcxLCAwLjY4OTAyOSwgMC45MDE5NTUsIDEuMTg4LCAxLjc1OTI0LCAyLjExNTg2IiwgXAotICAgICAgICAgICIwLjQxNzM4MywgMC40NTk3OTMsIDAuNzAyNjE3LCAwLjkxNzE1NSwgMS4yMDMwNywgMS43NzI1MSwgMi4xMjgzNyIsIFwKLSAgICAgICAgICAiMC40MzA5OTksIDAuNDczNDA4LCAwLjcxNjIzMywgMC45MzA3NzYsIDEuMjE3MDEsIDEuNzg2MTIsIDIuMTQyMTIiLCBcCi0gICAgICAgICAgIjAuNDQ0NTQzLCAwLjQ4Njk3OSwgMC43Mjg5MTQsIDAuOTQ0MDYsIDEuMjI4ODQsIDEuNzk4NDcsIDIuMTU2NTgiLCBcCi0gICAgICAgICAgIjAuNDY2Mjk3LCAwLjUwODcxNSwgMC43NTE1MzQsIDAuOTY2MDYzLCAxLjI1MTExLCAxLjgyMTQ4LCAyLjE3NzkyIiwgXAotICAgICAgICAgICIwLjQ4NDc0NiwgMC41MjcxNjQsIDAuNzcwMTI0LCAwLjk4Mzk5LCAxLjI2OTAzLCAxLjgzOTY4LCAyLjE5Njg0Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE1NjIwNiwgMC4yNDIxNzYsIDAuNzQwODEyLCAxLjE2ODEsIDEuNzY0MjIsIDIuOTMzNjYsIDMuNjY0NDUiLCBcCi0gICAgICAgICAgIjAuMTU2MjA2LCAwLjI0MzA2NiwgMC43NDA4MjQsIDEuMTcyNjUsIDEuNzY0MjEsIDIuOTMzNjYsIDMuNjY0NDQiLCBcCi0gICAgICAgICAgIjAuMTU2MjE5LCAwLjI0MzEyNSwgMC43NDA4NTYsIDEuMTcxODIsIDEuNzQ0MjYsIDIuOTMzNjgsIDMuNjY1MDIiLCBcCi0gICAgICAgICAgIjAuMTU2MjIsIDAuMjQyMzk5LCAwLjc0MDg2MSwgMS4xNzE3LCAxLjc1NDUyLCAyLjkzMzY4LCAzLjY2NSIsIFwKLSAgICAgICAgICAiMC4xNTYyMDcsIDAuMjQzMDE2LCAwLjczNTQ0MSwgMS4xNzkxOCwgMS43NjQyMywgMi45MjEzNCwgMy42NjQ1MyIsIFwKLSAgICAgICAgICAiMC4xNTYyMTcsIDAuMjQzNDQxLCAwLjc0MDg1MiwgMS4xNzE5NSwgMS43NDYxOSwgMi45MzM2OSwgMy42NjQ5MiIsIFwKLSAgICAgICAgICAiMC4xNTYyMDksIDAuMjQyNTgyLCAwLjc0MDc5MiwgMS4xNzkzNCwgMS43NjQyMywgMi45Mjg2NywgMy42NjQ0OSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogZmFsbGluZ19lZGdlOwotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC40MTM0OSwgMC40NjI2MzcsIDAuNzQzNzMzLCAwLjk4OTU3NSwgMS4zMTg5NiwgMS45NzczLCAyLjM4OTE0IiwgXAotICAgICAgICAgICIwLjQyNDgyNCwgMC40NzM1ODMsIDAuNzU0Njc5LCAxLjAwMDU2LCAxLjMzMTUxLCAxLjk5Mzk1LCAyLjQwMjM2IiwgXAotICAgICAgICAgICIwLjQzOTUxLCAwLjQ4ODk1MywgMC43Njk3NTcsIDEuMDE1NjEsIDEuMzQ1NDEsIDIuMDA5MTYsIDIuNDE1MjEiLCBcCi0gICAgICAgICAgIjAuNDU0MTg3LCAwLjUwMzE3OSwgMC43ODQyNTMsIDEuMDMwMTQsIDEuMzYwMzcsIDIuMDIzNjYsIDIuNDI5NDUiLCBcCi0gICAgICAgICAgIjAuNDY4NDk4LCAwLjUxNzY0MywgMC43OTg3NDUsIDEuMDQ0NjEsIDEuMzczNjksIDIuMDM4MjIsIDIuNDQzMDciLCBcCi0gICAgICAgICAgIjAuNDkwMzQ0LCAwLjUzOTM1OSwgMC44MjA0MjksIDEuMDY2MzEsIDEuMzk1MTksIDIuMDUzODQsIDIuNDY1NzQiLCBcCi0gICAgICAgICAgIjAuNTA3NTYsIDAuNTU2NjgzLCAwLjgzNzQsIDEuMDgzMjksIDEuNDE0MTQsIDIuMDc2NjksIDIuNDg0MDMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTc2MzM2LCAwLjI3NDEzNiwgMC44MzExMzIsIDEuMzIwNiwgMS45NzU5NSwgMy4yODc2MSwgNC4xMDQiLCBcCi0gICAgICAgICAgIjAuMTc2MTc1LCAwLjI3NDE3MywgMC44MzEwODksIDEuMzIwNDEsIDEuOTc1NzEsIDMuMjg2NjQsIDQuMTA2NzIiLCBcCi0gICAgICAgICAgIjAuMTc2MzQ2LCAwLjI3NDAxMiwgMC44MzExMjksIDEuMzIwNDQsIDEuOTc1MzEsIDMuMjg1MjUsIDQuMTA0OTQiLCBcCi0gICAgICAgICAgIjAuMTc2MzIyLCAwLjI3NDEyNSwgMC44MzExMDgsIDEuMzE5OTQsIDEuOTc0NzIsIDMuMjg0NTcsIDQuMTA0NTkiLCBcCi0gICAgICAgICAgIjAuMTc2MzQzLCAwLjI3Mzg5NSwgMC44MzExMjQsIDEuMzIwMzksIDEuOTc1MzksIDMuMjg0NDYsIDQuMTA0NTgiLCBcCi0gICAgICAgICAgIjAuMTc2MzU1LCAwLjI3NDA0MiwgMC44MzExMTcsIDEuMzE5MTksIDEuOTc3NDYsIDMuMjg3NjYsIDQuMTAzMDkiLCBcCi0gICAgICAgICAgIjAuMTc2MTkyLCAwLjI3Mzk1MywgMC44MzExMDIsIDEuMzE5MTgsIDEuOTc0ODksIDMuMjg0NjUsIDQuMTAxMzciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiU04iOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHByZXNldDsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTcxNzYyLCAwLjIxNDI3NSwgMC40NTcwMDMsIDAuNjcwNDc5LCAwLjk1NjEzMSwgMS41MjY3OSwgMS44ODU2NiIsIFwKLSAgICAgICAgICAiMC4xODMxNjEsIDAuMjI1NzQ4LCAwLjQ2ODI1NSwgMC42ODIwNTIsIDAuOTY3Mjc1LCAxLjUzOTE0LCAxLjg5NTQxIiwgXAotICAgICAgICAgICIwLjE5ODA3LCAwLjI0MDU2NCwgMC40ODMyOTUsIDAuNjk3NTEzLCAwLjk4MjgyMSwgMS41NTMwNiwgMS45MTA1NyIsIFwKLSAgICAgICAgICAiMC4yMTI4MDgsIDAuMjU1MjgsIDAuNDk3OTkzLCAwLjcxMjE0MSwgMC45OTczMDgsIDEuNTY4MjIsIDEuOTI0NzQiLCBcCi0gICAgICAgICAgIjAuMjI3NTk4LCAwLjI3MDE5LCAwLjUxMjc1NCwgMC43MjYzNTksIDEuMDEyMDcsIDEuNTgxOTYsIDEuOTQwMSIsIFwKLSAgICAgICAgICAiMC4yNTExMDksIDAuMjkzNjEzLCAwLjUzNTkxLCAwLjc1MDA1NiwgMS4wMzU0LCAxLjYwNjc4LCAxLjk2MzA1IiwgXAotICAgICAgICAgICIwLjI3MDY4MSwgMC4zMTMxMTYsIDAuNTU1OTgyLCAwLjc2OTQ1NCwgMS4wNTQ4NSwgMS42MjUzMiwgMS45ODI5MyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNTYyMjYsIDAuMjQzLCAwLjc0MDkxOSwgMS4xNzkxOSwgMS43NjA3NSwgMi45MzQyOCwgMy42NzAwNCIsIFwKLSAgICAgICAgICAiMC4xNTYxOTgsIDAuMjQyNTIsIDAuNzQxMDI2LCAxLjE3MTY4LCAxLjc2MTQzLCAyLjkzMzg3LCAzLjY2OTgxIiwgXAotICAgICAgICAgICIwLjE1NjE5LCAwLjI0MzA2OSwgMC43NDA5MzUsIDEuMTc5NjQsIDEuNzYxOTksIDIuOTM4MjQsIDMuNjUyODUiLCBcCi0gICAgICAgICAgIjAuMTU2MjM5LCAwLjI0MzA0OCwgMC43NDA5MzMsIDEuMTc5NjQsIDEuNzYxODksIDIuOTM4MjMsIDMuNjYyODQiLCBcCi0gICAgICAgICAgIjAuMTU2MTY1LCAwLjI0MzAzMywgMC43NDEwMTEsIDEuMTc4NTksIDEuNzYzODMsIDIuOTMzOTIsIDMuNjcwMDEiLCBcCi0gICAgICAgICAgIjAuMTU2MjU1LCAwLjI0MzA5LCAwLjczODg2NiwgMS4xNzg3MywgMS43NjMyNCwgMi45MzQzMywgMy42Njk5NyIsIFwKLSAgICAgICAgICAiMC4xNTYyNjksIDAuMjQzMDE2LCAwLjc0MDk0NCwgMS4xNzkyOCwgMS43NjEyOCwgMi45MzQ3LCAzLjY2NTA1Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI1MjgyNywgMC4zMDE5NzEsIDAuNTgzMDc2LCAwLjgyODgzMiwgMS4xNjIzNywgMS44MTc0OSwgMi4yMjc5OCIsIFwKLSAgICAgICAgICAiMC4yNjQ2MDQsIDAuMzEzNzcsIDAuNTk0ODI5LCAwLjg0MDY0OSwgMS4xNzQxMSwgMS44MzU0OCwgMi4yMzk4OCIsIFwKLSAgICAgICAgICAiMC4yNzgwNjQsIDAuMzI3MTIzLCAwLjYwODIwMiwgMC44NTQsIDEuMTg3NTIsIDEuODQxODksIDIuMjU2MjciLCBcCi0gICAgICAgICAgIjAuMjkxNzE5LCAwLjM0MDkyNywgMC42MjE5NjIsIDAuODY3Nzk2LCAxLjIwMTI5LCAxLjg3MTQ2LCAyLjI2Njc4IiwgXAotICAgICAgICAgICIwLjMwNTIsIDAuMzU0NTI3LCAwLjYzNTYxMiwgMC44ODE0NDksIDEuMjE0OTIsIDEuODgzNTEsIDIuMjgwNjUiLCBcCi0gICAgICAgICAgIjAuMzI2NzU0LCAwLjM3NjE5MywgMC42NTU2OTEsIDAuOTAyNDcsIDEuMjM0NTYsIDEuODkxNDMsIDIuMzAyMTYiLCBcCi0gICAgICAgICAgIjAuMzQ1OTQsIDAuMzk1MjYxLCAwLjY3NjEwNCwgMC45MjQ0MjUsIDEuMjUzNDEsIDEuOTEwMDgsIDIuMzIxMDQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTc2MzIyLCAwLjI3Mzk1LCAwLjgzMDExMSwgMS4zMjEzNSwgMS45NzUyOSwgMy4yODI4OSwgNC4xMDY3OSIsIFwKLSAgICAgICAgICAiMC4xNzYxNjgsIDAuMjczOTIzLCAwLjgzMTExMywgMS4zMTk1MiwgMS45NzIwMiwgMy4yODU0MywgNC4wOTkwNCIsIFwKLSAgICAgICAgICAiMC4xNzYyNDQsIDAuMjc0MDE1LCAwLjgzMTEzMiwgMS4zMTk2OCwgMS45NzcyMSwgMy4yODY3NCwgNC4xMDciLCBcCi0gICAgICAgICAgIjAuMTc2Mjc2LCAwLjI3Mzg4LCAwLjgzMTEzMSwgMS4zMjIwNSwgMS45NzYxNCwgMy4yODY3NiwgNC4xMDM4OCIsIFwKLSAgICAgICAgICAiMC4xNzYzNTMsIDAuMjc0MDQ5LCAwLjgzMTEzMywgMS4zMTc2MywgMS45NzI5MiwgMy4yODQxNywgNC4xMDQ2OCIsIFwKLSAgICAgICAgICAiMC4xNzYyNiwgMC4yNzM4NTksIDAuODMxMTIyLCAxLjMyMDQxLCAxLjk3Nzg0LCAzLjI4NzkyLCA0LjEwNDk0IiwgXAotICAgICAgICAgICIwLjE3NjI3OSwgMC4yNzM5NiwgMC44MzA2NjUsIDEuMzIyMjEsIDEuOTc4MDcsIDMuMjg2NDEsIDQuMTA2NDgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJEIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDIxNTgsIDAuMDAyMTYzLCAwLjAwMjE2OSwgMC4wMDIxNzEsIDAuMDAyMTcxLCAwLjAwMjE3MiwgMC4wMDIxNzEiLCBcCi0gICAgICAgICAgIjAuMDAyMTUzLCAwLjAwMjE1OCwgMC4wMDIxNjQsIDAuMDAyMTY1LCAwLjAwMjE2NiwgMC4wMDIxNjYsIDAuMDAyMTY2IiwgXAotICAgICAgICAgICIwLjAwMjE0OSwgMC4wMDIxNTQsIDAuMDAyMTYxLCAwLjAwMjE2MiwgMC4wMDIxNjIsIDAuMDAyMTYzLCAwLjAwMjE2MyIsIFwKLSAgICAgICAgICAiMC4wMDIxNDcsIDAuMDAyMTUxLCAwLjAwMjE1OCwgMC4wMDIxNTksIDAuMDAyMTYsIDAuMDAyMTYsIDAuMDAyMTYiLCBcCi0gICAgICAgICAgIjAuMDAyMTQ1LCAwLjAwMjE1LCAwLjAwMjE1NiwgMC4wMDIxNTcsIDAuMDAyMTU4LCAwLjAwMjE1OSwgMC4wMDIxNTkiLCBcCi0gICAgICAgICAgIjAuMDAyMTQyLCAwLjAwMjE0NywgMC4wMDIxNTQsIDAuMDAyMTU1LCAwLjAwMjE1NSwgMC4wMDIxNTYsIDAuMDAyMTU2IiwgXAotICAgICAgICAgICIwLjAwMjE0LCAwLjAwMjE0NCwgMC4wMDIxNTEsIDAuMDAyMTUyLCAwLjAwMjE1MiwgMC4wMDIxNTMsIDAuMDAyMTUzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyNjY1LCAwLjAwMjY3MSwgMC4wMDI2NzksIDAuMDAyNjgsIDAuMDAyNjgxLCAwLjAwMjY4MSwgMC4wMDI2ODIiLCBcCi0gICAgICAgICAgIjAuMDAyNjYyLCAwLjAwMjY2OCwgMC4wMDI2NzYsIDAuMDAyNjc3LCAwLjAwMjY3OCwgMC4wMDI2NzgsIDAuMDAyNjc5IiwgXAotICAgICAgICAgICIwLjAwMjY2LCAwLjAwMjY2NiwgMC4wMDI2NzQsIDAuMDAyNjc1LCAwLjAwMjY3NiwgMC4wMDI2NzcsIDAuMDAyNjc3IiwgXAotICAgICAgICAgICIwLjAwMjY1OSwgMC4wMDI2NjQsIDAuMDAyNjcyLCAwLjAwMjY3NCwgMC4wMDI2NzQsIDAuMDAyNjc1LCAwLjAwMjY3NSIsIFwKLSAgICAgICAgICAiMC4wMDI2NTgsIDAuMDAyNjYzLCAwLjAwMjY3MSwgMC4wMDI2NzIsIDAuMDAyNjczLCAwLjAwMjY3NCwgMC4wMDI2NzQiLCBcCi0gICAgICAgICAgIjAuMDAyNjU2LCAwLjAwMjY2MSwgMC4wMDI2NjksIDAuMDAyNjcxLCAwLjAwMjY3MSwgMC4wMDI2NzIsIDAuMDAyNjcyIiwgXAotICAgICAgICAgICIwLjAwMjY1NSwgMC4wMDI2NiwgMC4wMDI2NjgsIDAuMDAyNjY5LCAwLjAwMjY3LCAwLjAwMjY3MSwgMC4wMDI2NzEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJHTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzNzAyLCAwLjAwMzcwNywgMC4wMDM3MTMsIDAuMDAzNzE0LCAwLjAwMzcxNSwgMC4wMDM3MTUsIDAuMDAzNzE2IiwgXAotICAgICAgICAgICIwLjAwMzY5NCwgMC4wMDM2OTksIDAuMDAzNzA1LCAwLjAwMzcwNiwgMC4wMDM3MDYsIDAuMDAzNzA2LCAwLjAwMzcwOCIsIFwKLSAgICAgICAgICAiMC4wMDM2ODgsIDAuMDAzNjkyLCAwLjAwMzY5OCwgMC4wMDM2OTksIDAuMDAzNywgMC4wMDM3LCAwLjAwMzcwMSIsIFwKLSAgICAgICAgICAiMC4wMDM2ODUsIDAuMDAzNjg5LCAwLjAwMzY5NiwgMC4wMDM2OTYsIDAuMDAzNjk3LCAwLjAwMzY5OCwgMC4wMDM2OTkiLCBcCi0gICAgICAgICAgIjAuMDAzNjgyLCAwLjAwMzY4NywgMC4wMDM2OTMsIDAuMDAzNjk0LCAwLjAwMzY5NSwgMC4wMDM2OTUsIDAuMDAzNjk2IiwgXAotICAgICAgICAgICIwLjAwMzY4MSwgMC4wMDM2ODUsIDAuMDAzNjkxLCAwLjAwMzY5MiwgMC4wMDM2OTMsIDAuMDAzNjk0LCAwLjAwMzY5NCIsIFwKLSAgICAgICAgICAiMC4wMDM2NzksIDAuMDAzNjg0LCAwLjAwMzY5LCAwLjAwMzY5MSwgMC4wMDM2OTIsIDAuMDAzNjkyLCAwLjAwMzY5MiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDEyMywgMC4wMDQxMjgsIDAuMDA0MTM2LCAwLjAwNDEzOCwgMC4wMDQxMzgsIDAuMDA0MTM5LCAwLjAwNDEzOSIsIFwKLSAgICAgICAgICAiMC4wMDQxMTUsIDAuMDA0MTIsIDAuMDA0MTI4LCAwLjAwNDEzLCAwLjAwNDEzLCAwLjAwNDEzMSwgMC4wMDQxMzEiLCBcCi0gICAgICAgICAgIjAuMDA0MTA4LCAwLjAwNDExMywgMC4wMDQxMjEsIDAuMDA0MTIzLCAwLjAwNDEyNCwgMC4wMDQxMjQsIDAuMDA0MTI0IiwgXAotICAgICAgICAgICIwLjAwNDEwNSwgMC4wMDQxMTEsIDAuMDA0MTE4LCAwLjAwNDEyLCAwLjAwNDEyMSwgMC4wMDQxMjEsIDAuMDA0MTIxIiwgXAotICAgICAgICAgICIwLjAwNDEwMywgMC4wMDQxMDgsIDAuMDA0MTE2LCAwLjAwNDExNywgMC4wMDQxMTgsIDAuMDA0MTE5LCAwLjAwNDExOSIsIFwKLSAgICAgICAgICAiMC4wMDQxLCAwLjAwNDEwNiwgMC4wMDQxMTMsIDAuMDA0MTE1LCAwLjAwNDExNiwgMC4wMDQxMTcsIDAuMDA0MTE3IiwgXAotICAgICAgICAgICIwLjAwNDA5OCwgMC4wMDQxMDQsIDAuMDA0MTExLCAwLjAwNDExMywgMC4wMDQxMTMsIDAuMDA0MTE0LCAwLjAwNDExNCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDMwMywgMC4wMDMwMzUsIDAuMDAzMDQxLCAwLjAwMzA0MywgMC4wMDMwNDMsIDAuMDAzMDQzLCAwLjAwMzA0NCIsIFwKLSAgICAgICAgICAiMC4wMDMwMjQsIDAuMDAzMDI5LCAwLjAwMzAzNSwgMC4wMDMwMzYsIDAuMDAzMDM2LCAwLjAwMzAzNywgMC4wMDMwMzciLCBcCi0gICAgICAgICAgIjAuMDAzMDE5LCAwLjAwMzAyNCwgMC4wMDMwMywgMC4wMDMwMzEsIDAuMDAzMDMyLCAwLjAwMzAzMiwgMC4wMDMwMzIiLCBcCi0gICAgICAgICAgIjAuMDAzMDE2LCAwLjAwMzAyMSwgMC4wMDMwMjcsIDAuMDAzMDI4LCAwLjAwMzAyOSwgMC4wMDMwMjksIDAuMDAzMDI5IiwgXAotICAgICAgICAgICIwLjAwMzAxNCwgMC4wMDMwMTksIDAuMDAzMDI1LCAwLjAwMzAyNiwgMC4wMDMwMjcsIDAuMDAzMDI3LCAwLjAwMzAyNyIsIFwKLSAgICAgICAgICAiMC4wMDMwMTIsIDAuMDAzMDE2LCAwLjAwMzAyMywgMC4wMDMwMjQsIDAuMDAzMDI1LCAwLjAwMzAyNSwgMC4wMDMwMjUiLCBcCi0gICAgICAgICAgIjAuMDAzMDA5LCAwLjAwMzAxNCwgMC4wMDMwMiwgMC4wMDMwMjEsIDAuMDAzMDIyLCAwLjAwMzAyMywgMC4wMDMwMjMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDM3MzgsIDAuMDAzNzQ0LCAwLjAwMzc1MSwgMC4wMDM3NTMsIDAuMDAzNzU0LCAwLjAwMzc1NCwgMC4wMDM3NTQiLCBcCi0gICAgICAgICAgIjAuMDAzNzMxLCAwLjAwMzczNiwgMC4wMDM3NDQsIDAuMDAzNzQ1LCAwLjAwMzc0NiwgMC4wMDM3NDYsIDAuMDAzNzQ3IiwgXAotICAgICAgICAgICIwLjAwMzcyNiwgMC4wMDM3MzIsIDAuMDAzNzM5LCAwLjAwMzc0LCAwLjAwMzc0MSwgMC4wMDM3NDIsIDAuMDAzNzQyIiwgXAotICAgICAgICAgICIwLjAwMzcyMiwgMC4wMDM3MjgsIDAuMDAzNzM1LCAwLjAwMzczNywgMC4wMDM3MzgsIDAuMDAzNzM4LCAwLjAwMzczOCIsIFwKLSAgICAgICAgICAiMC4wMDM3MiwgMC4wMDM3MjUsIDAuMDAzNzMzLCAwLjAwMzczNCwgMC4wMDM3MzYsIDAuMDAzNzM2LCAwLjAwMzczNiIsIFwKLSAgICAgICAgICAiMC4wMDM3MTcsIDAuMDAzNzIzLCAwLjAwMzczLCAwLjAwMzczMiwgMC4wMDM3MzIsIDAuMDAzNzMzLCAwLjAwMzczNCIsIFwKLSAgICAgICAgICAiMC4wMDM3MTUsIDAuMDAzNzIxLCAwLjAwMzcyOCwgMC4wMDM3MywgMC4wMDM3MywgMC4wMDM3MzEsIDAuMDAzNzMxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiU04iOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjUsIDAuMDAyNTAzLCAwLjAwMjUwNywgMC4wMDI1MDgsIDAuMDAyNTA4LCAwLjAwMjUwOCwgMC4wMDI1MDgiLCBcCi0gICAgICAgICAgIjAuMDAyNDk1LCAwLjAwMjQ5OCwgMC4wMDI1MDIsIDAuMDAyNTA0LCAwLjAwMjUwNCwgMC4wMDI1MDQsIDAuMDAyNTA0IiwgXAotICAgICAgICAgICIwLjAwMjQ4OSwgMC4wMDI0OTMsIDAuMDAyNDk4LCAwLjAwMjQ5OCwgMC4wMDI0OTksIDAuMDAyNDk5LCAwLjAwMjQ5OSIsIFwKLSAgICAgICAgICAiMC4wMDI0ODMsIDAuMDAyNDg3LCAwLjAwMjQ5MiwgMC4wMDI0OTMsIDAuMDAyNDk0LCAwLjAwMjQ5NCwgMC4wMDI0OTQiLCBcCi0gICAgICAgICAgIjAuMDAyNDc2LCAwLjAwMjQ4MSwgMC4wMDI0ODcsIDAuMDAyNDg4LCAwLjAwMjQ4OSwgMC4wMDI0ODksIDAuMDAyNDg5IiwgXAotICAgICAgICAgICIwLjAwMjQ2OSwgMC4wMDI0NzQsIDAuMDAyNDgxLCAwLjAwMjQ4MiwgMC4wMDI0ODMsIDAuMDAyNDg0LCAwLjAwMjQ4NCIsIFwKLSAgICAgICAgICAiMC4wMDI0NjMsIDAuMDAyNDY4LCAwLjAwMjQ3NiwgMC4wMDI0NzcsIDAuMDAyNDc4LCAwLjAwMjQ3OSwgMC4wMDI0OCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTc3MywgMC4wMDE3NzgsIDAuMDAxNzg0LCAwLjAwMTc4NiwgMC4wMDE3ODYsIDAuMDAxNzg3LCAwLjAwMTc4NyIsIFwKLSAgICAgICAgICAiMC4wMDE3NjksIDAuMDAxNzc0LCAwLjAwMTc4LCAwLjAwMTc4MSwgMC4wMDE3ODIsIDAuMDAxNzgzLCAwLjAwMTc4MyIsIFwKLSAgICAgICAgICAiMC4wMDE3NjQsIDAuMDAxNzcsIDAuMDAxNzc2LCAwLjAwMTc3NywgMC4wMDE3NzgsIDAuMDAxNzc5LCAwLjAwMTc3OSIsIFwKLSAgICAgICAgICAiMC4wMDE3NjIsIDAuMDAxNzY3LCAwLjAwMTc3NCwgMC4wMDE3NzUsIDAuMDAxNzc1LCAwLjAwMTc3NiwgMC4wMDE3NzYiLCBcCi0gICAgICAgICAgIjAuMDAxNzU5LCAwLjAwMTc2NCwgMC4wMDE3NzEsIDAuMDAxNzcyLCAwLjAwMTc3MywgMC4wMDE3NzQsIDAuMDAxNzc0IiwgXAotICAgICAgICAgICIwLjAwMTc1NiwgMC4wMDE3NjEsIDAuMDAxNzY5LCAwLjAwMTc3LCAwLjAwMTc3MSwgMC4wMDE3NzEsIDAuMDAxNzcxIiwgXAotICAgICAgICAgICIwLjAwMTc1NiwgMC4wMDE3NjEsIDAuMDAxNzY5LCAwLjAwMTc3LCAwLjAwMTc3MSwgMC4wMDE3NzEsIDAuMDAxNzcyIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihRTikgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjEyNzQyMzsKLSAgICBmdW5jdGlvbiA6ICJONSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzE5MDUzLCAwLjM2NDI0LCAwLjYwOTYwOCwgMC44MjU0NzEsIDEuMTEzNCwgMS42ODg2NiwgMi4wNDgzMyIsIFwKLSAgICAgICAgICAiMC4zMzA0MjcsIDAuMzc1NjA0LCAwLjYyMDk3LCAwLjgzNjgyNCwgMS4xMjQ1NywgMS43MDAwMiwgMi4wNTk2NSIsIFwKLSAgICAgICAgICAiMC4zNDMxNTEsIDAuMzg4MzMxLCAwLjYzMzcsIDAuODQ5NTU3LCAxLjEzNzQxLCAxLjcxMjc1LCAyLjA3MjM1IiwgXAotICAgICAgICAgICIwLjM1NTMzNywgMC40MDA1MjksIDAuNjQ1OTE0LCAwLjg2MTc0MSwgMS4xNDk0OSwgMS43MjQ5OCwgMi4wODQ1IiwgXAotICAgICAgICAgICIwLjM2NzQwOCwgMC40MTI1ODgsIDAuNjU3OTU3LCAwLjg3MzgxNCwgMS4xNjE2MywgMS43MzcsIDIuMDk2NTciLCBcCi0gICAgICAgICAgIjAuMzg2MzA5LCAwLjQzMTQ4OSwgMC42NzY4NTksIDAuODkyNzE5LCAxLjE4MDQ0LCAxLjc1NTgzLCAyLjExNTQ1IiwgXAotICAgICAgICAgICIwLjQwMjU2NCwgMC40NDc3NTIsIDAuNjkzMTIyLCAwLjkwODk4MSwgMS4xOTY4NiwgMS43NzIxNywgMi4xMzE3OCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xODM0MDgsIDAuMjY0ODQsIDAuNzUwNjQxLCAxLjE4NTExLCAxLjc2Nzg0LCAyLjk0NDUsIDMuNjc3MDYiLCBcCi0gICAgICAgICAgIjAuMTgzMzg1LCAwLjI2NDk1MywgMC43NTA2MTMsIDEuMTg1OTIsIDEuNzcyNjEsIDIuOTQ0NDksIDMuNjc2OCIsIFwKLSAgICAgICAgICAiMC4xODMzODcsIDAuMjY0ODExLCAwLjc1MDYyNSwgMS4xODU5NCwgMS43NjgzNSwgMi45NDQ1MiwgMy42NzY2MiIsIFwKLSAgICAgICAgICAiMC4xODM0MzIsIDAuMjY1MDUzLCAwLjc1MDY0LCAxLjE4NzgyLCAxLjc3Mjk5LCAyLjk0NDY5LCAzLjY3NjM5IiwgXAotICAgICAgICAgICIwLjE4MzM4NiwgMC4yNjQ4MDgsIDAuNzUwNjI0LCAxLjE4NTkzLCAxLjc3MzQsIDIuOTQ0NTEsIDMuNjc2NDYiLCBcCi0gICAgICAgICAgIjAuMTgzMzgyLCAwLjI2NDk0OCwgMC43NTA2MTYsIDEuMTg1MDQsIDEuNzcyOTcsIDIuOTQ0MTIsIDMuNjc2MjciLCBcCi0gICAgICAgICAgIjAuMTgzNDQ3LCAwLjI2NDg5NywgMC43NTA2MjgsIDEuMTg1MDIsIDEuNzY4MjMsIDIuOTQ0NTIsIDMuNjc2NjkiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjY1OTI4LCAwLjMxNTQ5NCwgMC41OTU0NjEsIDAuODQyNDM2LCAxLjE3MTU1LCAxLjgyOTkxLCAyLjI0MTQyIiwgXAotICAgICAgICAgICIwLjI3NzQ3NCwgMC4zMjcwNTgsIDAuNjA3MDI3LCAwLjg1NDAwMiwgMS4xODMxMSwgMS44NDE0NywgMi4yNTMwMiIsIFwKLSAgICAgICAgICAiMC4yOTEyMTMsIDAuMzQwNzczLCAwLjYyMDcyNywgMC44Njc2ODYsIDEuMTk2ODIsIDEuODU1MzEsIDIuMjY2NjQiLCBcCi0gICAgICAgICAgIjAuMzA0Nzc3LCAwLjM1NDM3NCwgMC42MzQzMjcsIDAuODgxMjYsIDEuMjEwNCwgMS44Njg3NSwgMi4yODAyMiIsIFwKLSAgICAgICAgICAiMC4zMTg1MjMsIDAuMzY4MDk0LCAwLjY0ODA1NiwgMC44OTQ5ODYsIDEuMjI0MTEsIDEuODgyNDcsIDIuMjkzOTUiLCBcCi0gICAgICAgICAgIjAuMzQwMjA0LCAwLjM4OTc2NSwgMC42Njk2MjMsIDAuOTE2NzksIDEuMjQ1ODEsIDEuOTA0MTEsIDIuMzE1NjIiLCBcCi0gICAgICAgICAgIjAuMzU4Nzc3LCAwLjQwODM1MSwgMC42ODgzMzUsIDAuOTM1MjcyLCAxLjI2NDQsIDEuOTIyNzksIDIuMzM0MjEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTgzODQxLCAwLjI3OTQwNSwgMC44MzIzMywgMS4zMjI3MSwgMS45NzYwNCwgMy4yODM0NCwgNC4xMDA3IiwgXAotICAgICAgICAgICIwLjE4MzQ4MywgMC4yNzk1NTIsIDAuODMyMzMsIDEuMzIyNjgsIDEuOTc2MDQsIDMuMjgzNDQsIDQuMTAwNjciLCBcCi0gICAgICAgICAgIjAuMTgzODA3LCAwLjI3OTU2MSwgMC44MzE2MzMsIDEuMzIyNTMsIDEuOTc2MDEsIDMuMjgzNzYsIDQuMTAwNTIiLCBcCi0gICAgICAgICAgIjAuMTgzNDc1LCAwLjI3OTYyNCwgMC44MzE1MzcsIDEuMzIxNDMsIDEuOTc1OTQsIDMuMjgzMzUsIDQuMTAwNDEiLCBcCi0gICAgICAgICAgIjAuMTgzODAzLCAwLjI3OTYzOSwgMC44MzIzNTUsIDEuMzIyNTMsIDEuOTc1OTYsIDMuMjgxMjQsIDQuMTAwNTUiLCBcCi0gICAgICAgICAgIjAuMTgzODA0LCAwLjI3OTM3MywgMC44MzA4NDksIDEuMzIxMDEsIDEuOTc1OTksIDMuMjgzMjEsIDQuMTAwNTIiLCBcCi0gICAgICAgICAgIjAuMTgzNjE1LCAwLjI3OTU3NiwgMC44MzE0MiwgMS4zMjEzMiwgMS45NzU5NywgMy4yODM0NCwgNC4xMDA0NiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJHTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBub25fdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGZhbGxpbmdfZWRnZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuNDI1OTgyLCAwLjQ3MTE5LCAwLjcxNjU3NiwgMC45MzIzNzgsIDEuMjIwMTYsIDEuNzk1NjUsIDIuMTU1MTgiLCBcCi0gICAgICAgICAgIjAuNDM3NTQzLCAwLjQ4Mjc2MiwgMC43MjgxNDgsIDAuOTQzOTUyLCAxLjIzMTczLCAxLjgwNzIsIDIuMTY2NzUiLCBcCi0gICAgICAgICAgIjAuNDUxNTYzLCAwLjQ5Njc5NSwgMC43NDIxOCwgMC45NTgwMywgMS4yNDU3NywgMS44MjExNywgMi4xODA3OSIsIFwKLSAgICAgICAgICAiMC40NjUzOSwgMC41MTA2MDcsIDAuNzU2MDA2LCAwLjk3MTg1NywgMS4yNTk2LCAxLjgzNTEsIDIuMTk0NjQiLCBcCi0gICAgICAgICAgIjAuNDc3MzQ3LCAwLjUyMjU2OCwgMC43Njc5NTIsIDAuOTgzODA0LCAxLjI3MTU0LCAxLjg0NzEyLCAyLjIwNjU4IiwgXAotICAgICAgICAgICIwLjQ5NDUzMiwgMC41Mzk3MjIsIDAuNzg1MTI2LCAxLjAwMDk3LCAxLjI4ODgxLCAxLjg2NDE3LCAyLjIyNDA4IiwgXAotICAgICAgICAgICIwLjUwNzY3MywgMC41NTI5MTEsIDAuNzk4MjkyLCAxLjAxNDE4LCAxLjMwMTg3LCAxLjg3NzM2LCAyLjIzNjg4Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE4NDMzLCAwLjI2NTY4NCwgMC43NTA3NjQsIDEuMTg3NjcsIDEuNzczMDcsIDIuOTQ0ODQsIDMuNjc2NTkiLCBcCi0gICAgICAgICAgIjAuMTg0Mjg2LCAwLjI2NTY2LCAwLjc1MDc1LCAxLjE4NzY5LCAxLjc3MzA2LCAyLjk0NDcyLCAzLjY3NjU0IiwgXAotICAgICAgICAgICIwLjE4NDMxNywgMC4yNjU2ODUsIDAuNzUwNzQxLCAxLjE4NjEyLCAxLjc3MzA0LCAyLjkzODk3LCAzLjY3NjU4IiwgXAotICAgICAgICAgICIwLjE4NDI3OCwgMC4yNjU2MjYsIDAuNzUwNzM2LCAxLjE4NjE1LCAxLjc3MzA2LCAyLjk0NDgxLCAzLjY3NjY0IiwgXAotICAgICAgICAgICIwLjE4NDE2NywgMC4yNjU2NCwgMC43NTA3NCwgMS4xODYxNiwgMS43NzMwNSwgMi45NDUyNiwgMy42NzY1OSIsIFwKLSAgICAgICAgICAiMC4xODQyNjEsIDAuMjY1NjI0LCAwLjc1MDcyNywgMS4xODYwOCwgMS43NzAzNywgMi45NDQ1MywgMy42Njc2IiwgXAotICAgICAgICAgICIwLjE4NDI4OSwgMC4yNjU2NjQsIDAuNzUwNzQ5LCAxLjE4ODEzLCAxLjc3MzAxLCAyLjk0NDY2LCAzLjY3NjM2Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjQwNTQ1NiwgMC40NTUwMjUsIDAuNzM0ODc0LCAwLjk4MTkwNCwgMS4zMTEwNSwgMS45Njk0NSwgMi4zODA4OSIsIFwKLSAgICAgICAgICAiMC40MTY5NzksIDAuNDY2NTQ2LCAwLjc0NjUyNSwgMC45OTM0MjcsIDEuMzIyNTcsIDEuOTgwOTYsIDIuMzkyNDEiLCBcCi0gICAgICAgICAgIjAuNDMxMDI3LCAwLjQ4MDYwNywgMC43NjA1NjgsIDEuMDA3NSwgMS4zMzY2MiwgMS45OTUwMiwgMi40MDY0NyIsIFwKLSAgICAgICAgICAiMC40NDQ4MjQsIDAuNDk0NDA1LCAwLjc3NDI0MiwgMS4wMjEzLCAxLjM1MDQyLCAyLjAwODgyLCAyLjQyMDI2IiwgXAotICAgICAgICAgICIwLjQ1NjkxNywgMC41MDY0ODksIDAuNzg2NTAxLCAxLjAzMzQ2LCAxLjM2MjUyLCAyLjAyMDgzLCAyLjQzMjM0IiwgXAotICAgICAgICAgICIwLjQ3NCwgMC41MjM1NzIsIDAuODAzNTM4LCAxLjA1MDQ5LCAxLjM3OTU5LCAyLjAzNzk5LCAyLjQ0OTQ0IiwgXAotICAgICAgICAgICIwLjQ4NzMxMSwgMC41MzY4OTMsIDAuODE2ODQ5LCAxLjA2Mzc5LCAxLjM5MjkyLCAyLjA1MTI2LCAyLjQ2MjczIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE4Mzk3NywgMC4yNzk0MjcsIDAuODMwODUxLCAxLjMyMjQ3LCAxLjk3NTk1LCAzLjI4MDkyLCA0LjEwMDU4IiwgXAotICAgICAgICAgICIwLjE4Mzk3OSwgMC4yNzkyMTEsIDAuODMyMzg5LCAxLjMyMjQ1LCAxLjk3NTk2LCAzLjI4MDgsIDQuMTAwNTciLCBcCi0gICAgICAgICAgIjAuMTgzOTc0LCAwLjI3OTczNiwgMC44MzIzNjIsIDEuMzIxNDIsIDEuOTc1OTYsIDMuMjgzNDgsIDQuMTAwNiIsIFwKLSAgICAgICAgICAiMC4xODM5NzQsIDAuMjc5MzM3LCAwLjgzMDYxOSwgMS4zMjE0NSwgMS45NzU5NiwgMy4yODM0OCwgNC4xMDA1OSIsIFwKLSAgICAgICAgICAiMC4xODM5NTksIDAuMjc5MzQ5LCAwLjgzMTQyMiwgMS4zMjEwMSwgMS45NzU5OSwgMy4yODE1MywgNC4xMDA1NCIsIFwKLSAgICAgICAgICAiMC4xODM5NjEsIDAuMjc5NjgzLCAwLjgzMjM0NywgMS4zMjA3MywgMS45NzU5NiwgMy4yODM0NywgNC4xMDA2IiwgXAotICAgICAgICAgICIwLjE4Mzk1OCwgMC4yNzk3MTQsIDAuODMxNTYzLCAxLjMyMTQxLCAxLjk3NiwgMy4yODMzLCA0LjEwMDUyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiByaXNpbmdfZWRnZTsKLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzg2ODY3LCAwLjQzNjQzOSwgMC43MTY0MDgsIDAuOTYzMzMzLCAxLjI5MjQ2LCAxLjk1MDg2LCAyLjM2MjMiLCBcCi0gICAgICAgICAgIjAuMzk4MzYsIDAuNDQ3OTM0LCAwLjcyNzg5OSwgMC45NzQ4NDIsIDEuMzAzOTUsIDEuOTYyMzUsIDIuMzczOCIsIFwKLSAgICAgICAgICAiMC40MTIwMTQsIDAuNDYxNTg4LCAwLjc0MTU0MiwgMC45ODg1MjcsIDEuMzE3NzYsIDEuOTc1OTYsIDIuMzg3MzQiLCBcCi0gICAgICAgICAgIjAuNDI1NjI5LCAwLjQ3NTIwNCwgMC43NTUxNTgsIDEuMDAyMTUsIDEuMzMxNDIsIDEuOTg5NTgsIDIuNDAwOTciLCBcCi0gICAgICAgICAgIjAuNDM5MTcyLCAwLjQ4ODczOCwgMC43Njg1ODgsIDEuMDE1NjUsIDEuMzQ0NzcsIDIuMDAzMTMsIDIuNDE0NiIsIFwKLSAgICAgICAgICAiMC40NjA5MTEsIDAuNTEwNDc5LCAwLjc5MDQ0MiwgMS4wMzc0MywgMS4zNjY2MSwgMi4wMjQ4NywgMi40MzYzIiwgXAotICAgICAgICAgICIwLjQ3OTM5NiwgMC41Mjg5NjMsIDAuODA4OTQxLCAxLjA1NTg0LCAxLjM4NDk5LCAyLjA0MzM4LCAyLjQ1NDgzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE4Mzk4NSwgMC4yNzkzNDUsIDAuODMyMzY4LCAxLjMyMTQ5LCAxLjk3NTk2LCAzLjI4MzQ4LCA0LjEwMDU5IiwgXAotICAgICAgICAgICIwLjE4Mzk4MywgMC4yNzk3MTUsIDAuODMyMzU3LCAxLjMyMTQsIDEuOTc1OTYsIDMuMjgzNDgsIDQuMTAwNiIsIFwKLSAgICAgICAgICAiMC4xODM5OTksIDAuMjc5MTY5LCAwLjgzMjI4MSwgMS4zMjA3MSwgMS45NzM5NiwgMy4yODMzNiwgNC4xMDAyMSIsIFwKLSAgICAgICAgICAiMC4xODM5OTksIDAuMjc5MzU5LCAwLjgzMjMxLCAxLjMyMDcyLCAxLjk3NDIzLCAzLjI4MzM2LCA0LjEwMDI0IiwgXAotICAgICAgICAgICIwLjE4Mzk3MiwgMC4yNzk2NCwgMC44MzE0OCwgMS4zMjI1NSwgMS45NzU5NiwgMy4yODA4MywgNC4xMDA1NSIsIFwKLSAgICAgICAgICAiMC4xODM5NzksIDAuMjc5NDg1LCAwLjgzMjI4NCwgMS4zMjA3MSwgMS45NzQzNywgMy4yODMzNywgNC4xMDAzNyIsIFwKLSAgICAgICAgICAiMC4xODM5ODcsIDAuMjc5MjU3LCAwLjgzMjM4NywgMS4zMjI0MiwgMS45NzU5NiwgMy4yODA4NiwgNC4xMDA1OCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogZmFsbGluZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zOTg4NTcsIDAuNDQ0MDUsIDAuNjg5NDQyLCAwLjkwNTMyMiwgMS4xOTMwNSwgMS43Njg0MiwgMi4xMjgxIiwgXAotICAgICAgICAgICIwLjQxMDI4NiwgMC40NTU1MDYsIDAuNzAwODk0LCAwLjkxNjc3LCAxLjIwNDQ1LCAxLjc3OTg5LCAyLjEzOTQ0IiwgXAotICAgICAgICAgICIwLjQyNDg3NywgMC40NzAwODksIDAuNzE1NDY2LCAwLjkzMTM0NSwgMS4yMTkwMywgMS43OTQ0NCwgMi4xNTQwNCIsIFwKLSAgICAgICAgICAiMC40Mzk2NSwgMC40ODQ4NDQsIDAuNzMwMjM0LCAwLjk0NjExLCAxLjIzMzc5LCAxLjgwOTIxLCAyLjE2ODgxIiwgXAotICAgICAgICAgICIwLjQ1MzkxMiwgMC40OTkxMTIsIDAuNzQ0NTAzLCAwLjk2MDM3NywgMS4yNDgwNywgMS44MjM0NiwgMi4xODMxIiwgXAotICAgICAgICAgICIwLjQ3NTgwNywgMC41MjEsIDAuNzY2MzkxLCAwLjk4MjI2NSwgMS4yNjk5OCwgMS44NDUzNywgMi4yMDUwNSIsIFwKLSAgICAgICAgICAiMC40OTI5NzYsIDAuNTM4MTY0LCAwLjc4MzU4NiwgMC45OTk0NiwgMS4yODcxNCwgMS44NjI1OCwgMi4yMjIxNCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xODM1NTMsIDAuMjY1MTU3LCAwLjc1MDcyMywgMS4xODUzOSwgMS43NzAyMiwgMi45Mzk3OCwgMy42Njg3NCIsIFwKLSAgICAgICAgICAiMC4xODM1NDMsIDAuMjY0OTc3LCAwLjc1MDczLCAxLjE4NTM5LCAxLjc3MzA4LCAyLjk0NDUzLCAzLjY3NjYyIiwgXAotICAgICAgICAgICIwLjE4MzQ3MywgMC4yNjUxMTcsIDAuNzUwNzA3LCAxLjE4NTM5LCAxLjc3MzAzLCAyLjk0NDQ1LCAzLjY3MDYyIiwgXAotICAgICAgICAgICIwLjE4MzUzOCwgMC4yNjUwMzEsIDAuNzUwNzIsIDEuMTg3NzUsIDEuNzczMDEsIDIuOTQ0MDksIDMuNjcwNjUiLCBcCi0gICAgICAgICAgIjAuMTgzNTUxLCAwLjI2NTA5NSwgMC43NTA3MDUsIDEuMTg3NywgMS43NzMwMiwgMi45NDM5NSwgMy42NzAzNCIsIFwKLSAgICAgICAgICAiMC4xODM0OTQsIDAuMjY1MDI0LCAwLjc1MDY5NywgMS4xODUyMiwgMS43NzI3OCwgMi45NDQ0MywgMy42NzYyMyIsIFwKLSAgICAgICAgICAiMC4xODM0NjEsIDAuMjY1MDIsIDAuNzUwNjk3LCAxLjE4NTI0LCAxLjc3MjY0LCAyLjk0NDI1LCAzLjY2OTk3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiBjbGVhcjsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjM4MTk3LCAwLjI4MzM1OCwgMC41Mjg2OTksIDAuNzQ0NTQzLCAxLjAzMjI5LCAxLjYwNzk4LCAxLjk2NzgyIiwgXAotICAgICAgICAgICIwLjI0OTg4OSwgMC4yOTUwMzgsIDAuNTQwMzgxLCAwLjc1NjIzNCwgMS4wNDM5NiwgMS42MTkzNiwgMS45Nzk3IiwgXAotICAgICAgICAgICIwLjI2MzM5NywgMC4zMDg1NTUsIDAuNTUzODk5LCAwLjc2OTc0NCwgMS4wNTc1MiwgMS42MzM4OCwgMS45OTMwMiIsIFwKLSAgICAgICAgICAiMC4yNzY5NzMsIDAuMzIyMTQsIDAuNTY3NDgxLCAwLjc4MzMzMiwgMS4wNzExMywgMS42NDc0OSwgMi4wMDY5OCIsIFwKLSAgICAgICAgICAiMC4yOTA1NjQsIDAuMzM1NzEsIDAuNTgxMDYyLCAwLjc5NjkxNywgMS4wODQ2OCwgMS42NjA5OCwgMi4wMjAzIiwgXAotICAgICAgICAgICIwLjMxMjA0NywgMC4zNTcyMDgsIDAuNjAyNTcxLCAwLjgxODQxMiwgMS4xMDYxNiwgMS42ODIxNiwgMi4wNDE4OSIsIFwKLSAgICAgICAgICAiMC4zMzExOTksIDAuMzc2MzgxLCAwLjYyMTc0NCwgMC44Mzc1NTQsIDEuMTI1MzMsIDEuNzAxMywgMi4wNjA5OSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xODM0NDYsIDAuMjY0OTcxLCAwLjc1MDY0NywgMS4xODQ3NiwgMS43NzMxMywgMi45Mzk3NCwgMy42Njg5NSIsIFwKLSAgICAgICAgICAiMC4xODMyNjYsIDAuMjY0ODcyLCAwLjc1MDYwOSwgMS4xODUyLCAxLjc3MzA3LCAyLjk0NDc0LCAzLjY2ODE1IiwgXAotICAgICAgICAgICIwLjE4MzMzMywgMC4yNjQ4ODQsIDAuNzUwNjI1LCAxLjE4NjEsIDEuNzczMjIsIDIuOTM3MSwgMy42NzY2MSIsIFwKLSAgICAgICAgICAiMC4xODMyNTEsIDAuMjY0OTA3LCAwLjc1MDc3MywgMS4xODU5NCwgMS43NzMzNCwgMi45NTU1MSwgMy42Njc5OCIsIFwKLSAgICAgICAgICAiMC4xODMyMzcsIDAuMjY0OTA4LCAwLjc1MDYxMSwgMS4xODQ5OSwgMS43NzMxNywgMi45NTU2MSwgMy42NjgzNiIsIFwKLSAgICAgICAgICAiMC4xODMyNjUsIDAuMjY0OTQyLCAwLjc1MDU5MiwgMS4xODYxLCAxLjc3MzE1LCAyLjk0MDM4LCAzLjY2ODc3IiwgXAotICAgICAgICAgICIwLjE4MzMyNSwgMC4yNjQ5OTYsIDAuNzUwODI0LCAxLjE4NzY4LCAxLjc3MjU3LCAyLjk0MDMsIDMuNjY4NSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNjY1NjYsIDAuMjE2NTM5LCAwLjQ5Njc0LCAwLjc0MzU2NiwgMS4wNzI3MSwgMS43MzEwMSwgMi4xNDI1MyIsIFwKLSAgICAgICAgICAiMC4xNzgwMywgMC4yMjgwMDksIDAuNTA4MjE2LCAwLjc1NTA0OCwgMS4wODQxOCwgMS43NDI1NywgMi4xNTM5OSIsIFwKLSAgICAgICAgICAiMC4xOTI4NTMsIDAuMjQyODQsIDAuNTIzMDU1LCAwLjc2OTg4MSwgMS4wOTkwOSwgMS43NTczMywgMi4xNjg4NyIsIFwKLSAgICAgICAgICAiMC4yMDc1NjIsIDAuMjU3NTU2LCAwLjUzNzc5LCAwLjc4NDYxMSwgMS4xMTM3OCwgMS43NzIxMywgMi4xODM1NiIsIFwKLSAgICAgICAgICAiMC4yMjI0NzksIDAuMjcyNDgyLCAwLjU1MjcyNCwgMC43OTk1NjMsIDEuMTI4NzQsIDEuNzg3LCAyLjE5ODU1IiwgXAotICAgICAgICAgICIwLjI0NTk0MSwgMC4yOTU5NSwgMC41NzYyMDgsIDAuODIzMDYzLCAxLjE1MjIxLCAxLjgxMDU5LCAyLjIyMiIsIFwKLSAgICAgICAgICAiMC4yNjU2MjcsIDAuMzE1NjI2LCAwLjU5NTkwNSwgMC44NDI3NiwgMS4xNzE5MiwgMS44MzAyMywgMi4yNDE3NCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xODQ2NzEsIDAuMjgwMDk4LCAwLjgzMjU1MywgMS4zMjE5NiwgMS45NzU0NCwgMy4yODI0NiwgNC4wOTkzNyIsIFwKLSAgICAgICAgICAiMC4xODQ2NTQsIDAuMjgwMDk0LCAwLjgzMjQxNiwgMS4zMjE2NiwgMS45NzQ4OSwgMy4yODI0NywgNC4wOTk0MyIsIFwKLSAgICAgICAgICAiMC4xODQ2NDIsIDAuMjgwMDg4LCAwLjgzMjU0NywgMS4zMjI2MywgMS45NzU0MywgMy4yODI1MSwgNC4wOTgxNyIsIFwKLSAgICAgICAgICAiMC4xODQ2NjQsIDAuMjgwMDY2LCAwLjgzMjU0NywgMS4zMjI2MSwgMS45NzU0NSwgMy4yODI1LCA0LjA5OTM4IiwgXAotICAgICAgICAgICIwLjE4NDY1MSwgMC4yODAwODQsIDAuODMyNDQzLCAxLjMyMTk0LCAxLjk3NTQzLCAzLjI4MjQ0LCA0LjA5OTM4IiwgXAotICAgICAgICAgICIwLjE4NDc2OCwgMC4yODAxMjEsIDAuODMxOTYxLCAxLjMyMTk1LCAxLjk3NTQzLCAzLjI4MzM2LCA0LjA5OTM5IiwgXAotICAgICAgICAgICIwLjE4NTAyNCwgMC4yODAyLCAwLjgzMjU2LCAxLjMyMTUxLCAxLjk3NTQzLCAzLjI4MjQ2LCA0LjA5OTI5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyNjY1LCAwLjAwMjY3MSwgMC4wMDI2NzksIDAuMDAyNjgsIDAuMDAyNjgxLCAwLjAwMjY4MSwgMC4wMDI2ODIiLCBcCi0gICAgICAgICAgIjAuMDAyNjYyLCAwLjAwMjY2OCwgMC4wMDI2NzYsIDAuMDAyNjc3LCAwLjAwMjY3OCwgMC4wMDI2NzgsIDAuMDAyNjc5IiwgXAotICAgICAgICAgICIwLjAwMjY2LCAwLjAwMjY2NiwgMC4wMDI2NzQsIDAuMDAyNjc1LCAwLjAwMjY3NiwgMC4wMDI2NzcsIDAuMDAyNjc3IiwgXAotICAgICAgICAgICIwLjAwMjY1OSwgMC4wMDI2NjQsIDAuMDAyNjcyLCAwLjAwMjY3NCwgMC4wMDI2NzQsIDAuMDAyNjc1LCAwLjAwMjY3NSIsIFwKLSAgICAgICAgICAiMC4wMDI2NTgsIDAuMDAyNjYzLCAwLjAwMjY3MSwgMC4wMDI2NzIsIDAuMDAyNjczLCAwLjAwMjY3NCwgMC4wMDI2NzQiLCBcCi0gICAgICAgICAgIjAuMDAyNjU2LCAwLjAwMjY2MSwgMC4wMDI2NjksIDAuMDAyNjcxLCAwLjAwMjY3MSwgMC4wMDI2NzIsIDAuMDAyNjcyIiwgXAotICAgICAgICAgICIwLjAwMjY1NSwgMC4wMDI2NiwgMC4wMDI2NjgsIDAuMDAyNjY5LCAwLjAwMjY3LCAwLjAwMjY3MSwgMC4wMDI2NzEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDIxNTgsIDAuMDAyMTYzLCAwLjAwMjE2OSwgMC4wMDIxNzEsIDAuMDAyMTcxLCAwLjAwMjE3MiwgMC4wMDIxNzEiLCBcCi0gICAgICAgICAgIjAuMDAyMTUzLCAwLjAwMjE1OCwgMC4wMDIxNjQsIDAuMDAyMTY1LCAwLjAwMjE2NiwgMC4wMDIxNjYsIDAuMDAyMTY2IiwgXAotICAgICAgICAgICIwLjAwMjE0OSwgMC4wMDIxNTQsIDAuMDAyMTYxLCAwLjAwMjE2MiwgMC4wMDIxNjIsIDAuMDAyMTYzLCAwLjAwMjE2MyIsIFwKLSAgICAgICAgICAiMC4wMDIxNDcsIDAuMDAyMTUxLCAwLjAwMjE1OCwgMC4wMDIxNTksIDAuMDAyMTYsIDAuMDAyMTYsIDAuMDAyMTYiLCBcCi0gICAgICAgICAgIjAuMDAyMTQ1LCAwLjAwMjE1LCAwLjAwMjE1NiwgMC4wMDIxNTcsIDAuMDAyMTU4LCAwLjAwMjE1OSwgMC4wMDIxNTkiLCBcCi0gICAgICAgICAgIjAuMDAyMTQyLCAwLjAwMjE0NywgMC4wMDIxNTQsIDAuMDAyMTU1LCAwLjAwMjE1NSwgMC4wMDIxNTYsIDAuMDAyMTU2IiwgXAotICAgICAgICAgICIwLjAwMjE0LCAwLjAwMjE0NCwgMC4wMDIxNTEsIDAuMDAyMTUyLCAwLjAwMjE1MiwgMC4wMDIxNTMsIDAuMDAyMTUzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiR04iOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDEyMywgMC4wMDQxMjgsIDAuMDA0MTM2LCAwLjAwNDEzOCwgMC4wMDQxMzgsIDAuMDA0MTM5LCAwLjAwNDEzOSIsIFwKLSAgICAgICAgICAiMC4wMDQxMTUsIDAuMDA0MTIsIDAuMDA0MTI4LCAwLjAwNDEzLCAwLjAwNDEzLCAwLjAwNDEzMSwgMC4wMDQxMzEiLCBcCi0gICAgICAgICAgIjAuMDA0MTA4LCAwLjAwNDExMywgMC4wMDQxMjEsIDAuMDA0MTIzLCAwLjAwNDEyNCwgMC4wMDQxMjQsIDAuMDA0MTI0IiwgXAotICAgICAgICAgICIwLjAwNDEwNSwgMC4wMDQxMTEsIDAuMDA0MTE4LCAwLjAwNDEyLCAwLjAwNDEyMSwgMC4wMDQxMjEsIDAuMDA0MTIxIiwgXAotICAgICAgICAgICIwLjAwNDEwMywgMC4wMDQxMDgsIDAuMDA0MTE2LCAwLjAwNDExNywgMC4wMDQxMTgsIDAuMDA0MTE5LCAwLjAwNDExOSIsIFwKLSAgICAgICAgICAiMC4wMDQxLCAwLjAwNDEwNiwgMC4wMDQxMTMsIDAuMDA0MTE1LCAwLjAwNDExNiwgMC4wMDQxMTcsIDAuMDA0MTE3IiwgXAotICAgICAgICAgICIwLjAwNDA5OCwgMC4wMDQxMDQsIDAuMDA0MTExLCAwLjAwNDExMywgMC4wMDQxMTMsIDAuMDA0MTE0LCAwLjAwNDExNCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzcwMiwgMC4wMDM3MDcsIDAuMDAzNzEzLCAwLjAwMzcxNCwgMC4wMDM3MTUsIDAuMDAzNzE1LCAwLjAwMzcxNiIsIFwKLSAgICAgICAgICAiMC4wMDM2OTQsIDAuMDAzNjk5LCAwLjAwMzcwNSwgMC4wMDM3MDYsIDAuMDAzNzA2LCAwLjAwMzcwNiwgMC4wMDM3MDgiLCBcCi0gICAgICAgICAgIjAuMDAzNjg4LCAwLjAwMzY5MiwgMC4wMDM2OTgsIDAuMDAzNjk5LCAwLjAwMzcsIDAuMDAzNywgMC4wMDM3MDEiLCBcCi0gICAgICAgICAgIjAuMDAzNjg1LCAwLjAwMzY4OSwgMC4wMDM2OTYsIDAuMDAzNjk2LCAwLjAwMzY5NywgMC4wMDM2OTgsIDAuMDAzNjk5IiwgXAotICAgICAgICAgICIwLjAwMzY4MiwgMC4wMDM2ODcsIDAuMDAzNjkzLCAwLjAwMzY5NCwgMC4wMDM2OTUsIDAuMDAzNjk1LCAwLjAwMzY5NiIsIFwKLSAgICAgICAgICAiMC4wMDM2ODEsIDAuMDAzNjg1LCAwLjAwMzY5MSwgMC4wMDM2OTIsIDAuMDAzNjkzLCAwLjAwMzY5NCwgMC4wMDM2OTQiLCBcCi0gICAgICAgICAgIjAuMDAzNjc5LCAwLjAwMzY4NCwgMC4wMDM2OSwgMC4wMDM2OTEsIDAuMDAzNjkyLCAwLjAwMzY5MiwgMC4wMDM2OTIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzNzM4LCAwLjAwMzc0NCwgMC4wMDM3NTEsIDAuMDAzNzUzLCAwLjAwMzc1NCwgMC4wMDM3NTQsIDAuMDAzNzU0IiwgXAotICAgICAgICAgICIwLjAwMzczMSwgMC4wMDM3MzYsIDAuMDAzNzQ0LCAwLjAwMzc0NSwgMC4wMDM3NDYsIDAuMDAzNzQ2LCAwLjAwMzc0NyIsIFwKLSAgICAgICAgICAiMC4wMDM3MjYsIDAuMDAzNzMyLCAwLjAwMzczOSwgMC4wMDM3NCwgMC4wMDM3NDEsIDAuMDAzNzQyLCAwLjAwMzc0MiIsIFwKLSAgICAgICAgICAiMC4wMDM3MjIsIDAuMDAzNzI4LCAwLjAwMzczNSwgMC4wMDM3MzcsIDAuMDAzNzM4LCAwLjAwMzczOCwgMC4wMDM3MzgiLCBcCi0gICAgICAgICAgIjAuMDAzNzIsIDAuMDAzNzI1LCAwLjAwMzczMywgMC4wMDM3MzQsIDAuMDAzNzM2LCAwLjAwMzczNiwgMC4wMDM3MzYiLCBcCi0gICAgICAgICAgIjAuMDAzNzE3LCAwLjAwMzcyMywgMC4wMDM3MywgMC4wMDM3MzIsIDAuMDAzNzMyLCAwLjAwMzczMywgMC4wMDM3MzQiLCBcCi0gICAgICAgICAgIjAuMDAzNzE1LCAwLjAwMzcyMSwgMC4wMDM3MjgsIDAuMDAzNzMsIDAuMDAzNzMsIDAuMDAzNzMxLCAwLjAwMzczMSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzAzLCAwLjAwMzAzNSwgMC4wMDMwNDEsIDAuMDAzMDQzLCAwLjAwMzA0MywgMC4wMDMwNDMsIDAuMDAzMDQ0IiwgXAotICAgICAgICAgICIwLjAwMzAyNCwgMC4wMDMwMjksIDAuMDAzMDM1LCAwLjAwMzAzNiwgMC4wMDMwMzYsIDAuMDAzMDM3LCAwLjAwMzAzNyIsIFwKLSAgICAgICAgICAiMC4wMDMwMTksIDAuMDAzMDI0LCAwLjAwMzAzLCAwLjAwMzAzMSwgMC4wMDMwMzIsIDAuMDAzMDMyLCAwLjAwMzAzMiIsIFwKLSAgICAgICAgICAiMC4wMDMwMTYsIDAuMDAzMDIxLCAwLjAwMzAyNywgMC4wMDMwMjgsIDAuMDAzMDI5LCAwLjAwMzAyOSwgMC4wMDMwMjkiLCBcCi0gICAgICAgICAgIjAuMDAzMDE0LCAwLjAwMzAxOSwgMC4wMDMwMjUsIDAuMDAzMDI2LCAwLjAwMzAyNywgMC4wMDMwMjcsIDAuMDAzMDI3IiwgXAotICAgICAgICAgICIwLjAwMzAxMiwgMC4wMDMwMTYsIDAuMDAzMDIzLCAwLjAwMzAyNCwgMC4wMDMwMjUsIDAuMDAzMDI1LCAwLjAwMzAyNSIsIFwKLSAgICAgICAgICAiMC4wMDMwMDksIDAuMDAzMDE0LCAwLjAwMzAyLCAwLjAwMzAyMSwgMC4wMDMwMjIsIDAuMDAzMDIzLCAwLjAwMzAyMyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDE3NzMsIDAuMDAxNzc4LCAwLjAwMTc4NCwgMC4wMDE3ODYsIDAuMDAxNzg2LCAwLjAwMTc4NywgMC4wMDE3ODciLCBcCi0gICAgICAgICAgIjAuMDAxNzY5LCAwLjAwMTc3NCwgMC4wMDE3OCwgMC4wMDE3ODEsIDAuMDAxNzgyLCAwLjAwMTc4MywgMC4wMDE3ODMiLCBcCi0gICAgICAgICAgIjAuMDAxNzY0LCAwLjAwMTc3LCAwLjAwMTc3NiwgMC4wMDE3NzcsIDAuMDAxNzc4LCAwLjAwMTc3OSwgMC4wMDE3NzkiLCBcCi0gICAgICAgICAgIjAuMDAxNzYyLCAwLjAwMTc2NywgMC4wMDE3NzQsIDAuMDAxNzc1LCAwLjAwMTc3NSwgMC4wMDE3NzYsIDAuMDAxNzc2IiwgXAotICAgICAgICAgICIwLjAwMTc1OSwgMC4wMDE3NjQsIDAuMDAxNzcxLCAwLjAwMTc3MiwgMC4wMDE3NzMsIDAuMDAxNzc0LCAwLjAwMTc3NCIsIFwKLSAgICAgICAgICAiMC4wMDE3NTYsIDAuMDAxNzYxLCAwLjAwMTc2OSwgMC4wMDE3NywgMC4wMDE3NzEsIDAuMDAxNzcxLCAwLjAwMTc3MSIsIFwKLSAgICAgICAgICAiMC4wMDE3NTYsIDAuMDAxNzYxLCAwLjAwMTc2OSwgMC4wMDE3NywgMC4wMDE3NzEsIDAuMDAxNzcxLCAwLjAwMTc3MiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjUsIDAuMDAyNTAzLCAwLjAwMjUwNywgMC4wMDI1MDgsIDAuMDAyNTA4LCAwLjAwMjUwOCwgMC4wMDI1MDgiLCBcCi0gICAgICAgICAgIjAuMDAyNDk1LCAwLjAwMjQ5OCwgMC4wMDI1MDIsIDAuMDAyNTA0LCAwLjAwMjUwNCwgMC4wMDI1MDQsIDAuMDAyNTA0IiwgXAotICAgICAgICAgICIwLjAwMjQ4OSwgMC4wMDI0OTMsIDAuMDAyNDk4LCAwLjAwMjQ5OCwgMC4wMDI0OTksIDAuMDAyNDk5LCAwLjAwMjQ5OSIsIFwKLSAgICAgICAgICAiMC4wMDI0ODMsIDAuMDAyNDg3LCAwLjAwMjQ5MiwgMC4wMDI0OTMsIDAuMDAyNDk0LCAwLjAwMjQ5NCwgMC4wMDI0OTQiLCBcCi0gICAgICAgICAgIjAuMDAyNDc2LCAwLjAwMjQ4MSwgMC4wMDI0ODcsIDAuMDAyNDg4LCAwLjAwMjQ4OSwgMC4wMDI0ODksIDAuMDAyNDg5IiwgXAotICAgICAgICAgICIwLjAwMjQ2OSwgMC4wMDI0NzQsIDAuMDAyNDgxLCAwLjAwMjQ4MiwgMC4wMDI0ODMsIDAuMDAyNDg0LCAwLjAwMjQ4NCIsIFwKLSAgICAgICAgICAiMC4wMDI0NjMsIDAuMDAyNDY4LCAwLjAwMjQ3NiwgMC4wMDI0NzcsIDAuMDAyNDc4LCAwLjAwMjQ3OSwgMC4wMDI0OCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUk4pICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTQ5OTkyOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTQ5OTkyOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTQ5MDEyOwotICAgIGNsb2NrIDogdHJ1ZTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDIwMzMsIDAuMDAyMDEzLCAwLjAwMjAwMSwgMC4wMDE5OTcsIDAuMDAxOTk5LCAwLjAwMjAwNSwgMC4wMDIwMTEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAzMzMsIDAuMDAwMzMyLCAwLjAwMDMzMiwgMC4wMDAzMzIsIDAuMDAwMzMyLCAwLjAwMDMzMiwgMC4wMDAzMzIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiR04iOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiRCZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzFfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4xNSwgLTAuMTMyNSwgLTAuMTIsIC0wLjEwNzUsIC0wLjA5NSwgLTAuMDcyNSwgLTAuMDYzNzUiLCBcCi0gICAgICAgICAgIi0wLjE2MTI1LCAtMC4xNSwgLTAuMTMxMjUsIC0wLjExODc1LCAtMC4xMDYyNSwgLTAuMDgzNzUsIC0wLjA3NSIsIFwKLSAgICAgICAgICAiLTAuMTczNzUsIC0wLjE2MjUsIC0wLjE0Mzc1LCAtMC4xMzEyNSwgLTAuMTE4NzUsIC0wLjEwMjUsIC0wLjA4NzUiLCBcCi0gICAgICAgICAgIi0wLjE4NjI1LCAtMC4xNzUsIC0wLjE1NjI1LCAtMC4xNDM3NSwgLTAuMTMxMjUsIC0wLjExNSwgLTAuMSIsIFwKLSAgICAgICAgICAiLTAuMTk4NzUsIC0wLjE4NzUsIC0wLjE3NSwgLTAuMTU2MjUsIC0wLjE0Mzc1LCAtMC4xMjc1LCAtMC4xMTI1IiwgXAotICAgICAgICAgICItMC4yMjEyNSwgLTAuMjEsIC0wLjE5MTI1LCAtMC4xNzg3NSwgLTAuMTY2MjUsIC0wLjE1LCAtMC4xMzUiLCBcCi0gICAgICAgICAgIi0wLjI0MjUsIC0wLjIyNSwgLTAuMjEyNSwgLTAuMiwgLTAuMTg3NSwgLTAuMTY1LCAtMC4xNTYyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQmU04iOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4zNTA0OTEsIDAuMzYyMjE2LCAwLjM3NjAzNCwgMC4zODk2NzUsIDAuNDAyMTU4LCAwLjQyMjQ2MiwgMC40MzkyNTUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiR04iOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIkQmU04iOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8xX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTgxMjUsIDAuMTcsIDAuMTU3NSwgMC4xMzg3NSwgMC4xMjYyNSwgMC4xMDM3NSwgMC4wOTUiLCBcCi0gICAgICAgICAgIjAuMTkyNSwgMC4xODEyNSwgMC4xNjg3NSwgMC4xNSwgMC4xMzc1LCAwLjExNSwgMC4xMDYyNSIsIFwKLSAgICAgICAgICAiMC4yMDUsIDAuMTkzNzUsIDAuMTgxMjUsIDAuMTYyNSwgMC4xNSwgMC4xMjc1LCAwLjExODc1IiwgXAotICAgICAgICAgICIwLjIxNzUsIDAuMjA2MjUsIDAuMTkzNzUsIDAuMTc1LCAwLjE2MjUsIDAuMTQ2MjUsIDAuMTMxMjUiLCBcCi0gICAgICAgICAgIjAuMjMsIDAuMjE4NzUsIDAuMjA2MjUsIDAuMTg3NSwgMC4xNzUsIDAuMTU4NzUsIDAuMTQzNzUiLCBcCi0gICAgICAgICAgIjAuMjUyNSwgMC4yNDEyNSwgMC4yMjg3NSwgMC4yMSwgMC4xOTc1LCAwLjE3NSwgMC4xNjYyNSIsIFwKLSAgICAgICAgICAiMC4yNzM3NSwgMC4yNjI1LCAwLjI0Mzc1LCAwLjIzMTI1LCAwLjIxMjUsIDAuMTk2MjUsIDAuMTgxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFNOKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA1NTkzMzE7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNTU5MzMxOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDU1ODAyMjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxNjUsIDAuMDAwMTY1LCAwLjAwMDE2NSwgMC4wMDAxNjUsIDAuMDAwMTY1LCAwLjAwMDE2NSwgMC4wMDAxNjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxNjksIDAuMDAwMTY3LCAwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiwgMC4wMDAxNjYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiU04iOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFEIjsKLSAgICAgIHNkZl9jb25kIDogIkQgPT0gMSdiMCI7Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4xODUyMDEsIDAuMTk2NDkyLCAwLjIxMTEyLCAwLjIyNTQ0LCAwLjI0MDA4NiwgMC4yNjI5NTcsIDAuMjgyMDExIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkdOIjsKLSAgICAgIHRpbWluZ190eXBlIDogcmVjb3ZlcnlfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRCZSTiI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fUk5fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChyZWNvdmVyeV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMCwgLTAuMDExMjUsIC0wLjAzLCAtMC4wNDI1LCAtMC4wNTUsIC0wLjA3NzUsIC0wLjA5MjUiLCBcCi0gICAgICAgICAgIjAuMDExMjUsIDAsIC0wLjAxODc1LCAtMC4wMzEyNSwgLTAuMDQzNzUsIC0wLjA2NjI1LCAtMC4wODEyNSIsIFwKLSAgICAgICAgICAiMC4wMjM3NSwgMC4wMTI1LCAtMC4wMDYyNSwgLTAuMDE4NzUsIC0wLjAzMTI1LCAtMC4wNTM3NSwgLTAuMDY4NzUiLCBcCi0gICAgICAgICAgIjAuMDM2MjUsIDAuMDI1LCAwLjAwNjI1LCAtMC4wMDYyNSwgLTAuMDE4NzUsIC0wLjA0MTI1LCAtMC4wNTYyNSIsIFwKLSAgICAgICAgICAiMC4wNDg3NSwgMC4wMzc1LCAwLjAxODc1LCAwLjAwNjI1LCAtMC4wMDYyNSwgLTAuMDI4NzUsIC0wLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjA2NSwgMC4wNTM3NSwgMC4wNDEyNSwgMC4wMjI1LCAwLjAxLCAtMC4wMDYyNSwgLTAuMDI3NSIsIFwKLSAgICAgICAgICAiMC4wODYyNSwgMC4wNzUsIDAuMDU2MjUsIDAuMDQzNzUsIDAuMDI1LCAwLjAwODc1LCAtMC4wMDYyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJlY292ZXJ5X3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiR04iOwotICAgICAgc2RmX2NvbmQgOiAiR04gPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQocmVjb3ZlcnlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE4NzUsIDAuMDA3NSwgLTAuMDA1LCAtMC4wMTc1LCAtMC4wMjM3NSwgLTAuMDQsIC0wLjA0ODc1IiwgXAotICAgICAgICAgICIwLjAzLCAwLjAxODc1LCAwLjAwNjI1LCAtMC4wMDYyNSwgLTAuMDEyNSwgLTAuMDI4NzUsIC0wLjAzNzUiLCBcCi0gICAgICAgICAgIjAuMDQyNSwgMC4wMzEyNSwgMC4wMTg3NSwgMC4wMTI1LCAwLCAtMC4wMTYyNSwgLTAuMDI1IiwgXAotICAgICAgICAgICIwLjA1NSwgMC4wNDM3NSwgMC4wMzEyNSwgMC4wMjUsIDAuMDEyNSwgLTAuMDAzNzUsIC0wLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMDY3NSwgMC4wNTYyNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAyNSwgMC4wMDg3NSwgMCIsIFwKLSAgICAgICAgICAiMC4wODM3NSwgMC4wNzI1LCAwLjA2NjI1LCAwLjA1Mzc1LCAwLjA0MTI1LCAwLjAzMTI1LCAwLjAxNjI1IiwgXAotICAgICAgICAgICIwLjA5ODc1LCAwLjA4NzUsIDAuMDgxMjUsIDAuMDY4NzUsIDAuMDU2MjUsIDAuMDQ2MjUsIDAuMDMxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiR04iOwotICAgICAgdGltaW5nX3R5cGUgOiByZW1vdmFsX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUQmUk4iOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1JOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQocmVtb3ZhbF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTYyNSwgMC4wNjc1LCAwLjA4NjI1LCAwLjA5ODc1LCAwLjExMTI1LCAwLjEzMzc1LCAwLjE0ODc1IiwgXAotICAgICAgICAgICIwLjA0NSwgMC4wNTYyNSwgMC4wNzUsIDAuMDg3NSwgMC4xLCAwLjEyMjUsIDAuMTM3NSIsIFwKLSAgICAgICAgICAiMC4wMzI1LCAwLjA0Mzc1LCAwLjA1NjI1LCAwLjA3NSwgMC4wODc1LCAwLjExLCAwLjEyNSIsIFwKLSAgICAgICAgICAiMC4wMiwgMC4wMzEyNSwgMC4wNDM3NSwgMC4wNjI1LCAwLjA3NSwgMC4wOTc1LCAwLjExMjUiLCBcCi0gICAgICAgICAgIjAuMDA3NSwgMC4wMTg3NSwgMC4wMzc1LCAwLjA1LCAwLjA2MjUsIDAuMDg1LCAwLjEiLCBcCi0gICAgICAgICAgIi0wLjAwODc1LCAwLjAwMjUsIDAuMDE1LCAwLjAzMzc1LCAwLjA0NjI1LCAwLjA2ODc1LCAwLjA4Mzc1IiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDEyNSwgMCwgMC4wMTg3NSwgMC4wMzEyNSwgMC4wNTM3NSwgMC4wNjg3NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJlbW92YWxfcmlzaW5nOwotICAgICAgd2hlbiA6ICJHTiI7Ci0gICAgICBzZGZfY29uZCA6ICJHTiA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChyZW1vdmFsX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxODc1LCAwLjAzLCAwLjA0MjUsIDAuMDU1LCAwLjA2NzUsIDAuMDksIDAuMTA1IiwgXAotICAgICAgICAgICIwLjAwNzUsIDAuMDE4NzUsIDAuMDM3NSwgMC4wNSwgMC4wNTYyNSwgMC4wNzg3NSwgMC4wOTM3NSIsIFwKLSAgICAgICAgICAiLTAuMDA1LCAwLjAwNjI1LCAwLjAyNSwgMC4wMzc1LCAwLjA0Mzc1LCAwLjA2NjI1LCAwLjA4MTI1IiwgXAotICAgICAgICAgICItMC4wMTc1LCAtMC4wMDYyNSwgMC4wMTI1LCAwLjAyNSwgMC4wMzc1LCAwLjA1Mzc1LCAwLjA2ODc1IiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDEyNSwgMCwgMC4wMTI1LCAwLjAyNSwgMC4wNDEyNSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiLTAuMDQsIC0wLjAyODc1LCAtMC4wMTYyNSwgLTAuMDAzNzUsIDAuMDA4NzUsIDAuMDI1LCAwLjA0IiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA0Mzc1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLjAxLCAwLjAyNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBUTEFUTlRTQ0FYMyAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoVExBVE5UU0NBWDMpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4yNjI4NjE7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgY2xvY2tfZ2F0aW5nX2ludGVncmF0ZWRfY2VsbCA6ICJsYXRjaF9wb3NlZGdlX3ByZWNvbnRyb2wiOwotICBzdGF0ZXRhYmxlKCIgQ0sgIEUgU0UgIiwgIiBFSU5UICIpIHsKLSAgICAgdGFibGUgOiAiICBMICBMICBMIDogLSA6IEwgLCBcCi0gICAgICAgICAgICAgICAgTCAgSCAgTCA6IC0gOiBIICwgXAotICAgICAgICAgICAgICAgIEwgIEwgIEggOiAtIDogSCAsIFwKLSAgICAgICAgICAgICAgICBMICBIICBIIDogLSA6IEggLCBcCi0gICAgICAgICAgICAgICAgSCAgLSAgLSA6IC0gOiBOICI7Ci0gIH0KLSAgcGluKEVJTlQpIHsKLSAgICBkaXJlY3Rpb24gOiBpbnRlcm5hbDsKLSAgICBpbnRlcm5hbF9ub2RlIDogIkVJTlQiOwotICB9Ci0gIHBpbihDSykgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjE2NzI2OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYxNjQwMzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2MTY3MjY7Ci0gICAgY2xvY2tfZ2F0ZV9jbG9ja19waW4gOiB0cnVlOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjM4NiwgMC4wMDIzNzIsIDAuMDAyMzU5LCAwLjAwMjM1MywgMC4wMDIzNDYsIDAuMDAyMzQxLCAwLjAwMjMzOSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjc4OCwgMC4wMDI3NzgsIDAuMDAyNzY5LCAwLjAwMjc2MiwgMC4wMDI3NTgsIDAuMDAyNzUzLCAwLjAwMjc1MSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUUmIVNFIjsKLSAgICAgIHNkZl9jb25kIDogIkVfRVFfMF9BTl9TRV9FUV8wID09IDEnYjEiOwotICAgICAgZmFsbF9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMjE3NzIzLCAwLjIyOTAyNSwgMC4yNDQwOCwgMC4yNTg3NDksIDAuMjczMjc2LCAwLjI5NTQyLCAwLjMxMzMwNyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjM5MzY4OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYzOTMzNTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2MzkzNjg7Ci0gICAgY2xvY2tfZ2F0ZV9lbmFibGVfcGluIDogdHJ1ZTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDIyMiwgMC4wMDIyMTUsIDAuMDAyMjA3LCAwLjAwMjIwMSwgMC4wMDIxOTYsIDAuMDAyMTg5LCAwLjAwMjE4NSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzU1OSwgMC4wMDM1NTEsIDAuMDAzNTQ1LCAwLjAwMzU0MiwgMC4wMDM1NCwgMC4wMDM1MzcsIDAuMDAzNTM1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJTRSA9PSAxJ2IwIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wODc1LCAtMC4wNzYyNSwgLTAuMDYzNzUsIC0wLjA1MTI1LCAtMC4wNDUsIC0wLjAyODc1LCAtMC4wMTM3NSIsIFwKLSAgICAgICAgICAiLTAuMDk4NzUsIC0wLjA4NzUsIC0wLjA3NSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA0LCAtMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMTExMjUsIC0wLjEsIC0wLjA4NzUsIC0wLjA4MTI1LCAtMC4wNjg3NSwgLTAuMDUyNSwgLTAuMDQzNzUiLCBcCi0gICAgICAgICAgIi0wLjEzLCAtMC4xMTg3NSwgLTAuMTA2MjUsIC0wLjA5Mzc1LCAtMC4wODc1LCAtMC4wNzEyNSwgLTAuMDU2MjUiLCBcCi0gICAgICAgICAgIi0wLjE0MjUsIC0wLjEzMTI1LCAtMC4xMTg3NSwgLTAuMTA2MjUsIC0wLjEsIC0wLjA4Mzc1LCAtMC4wNzUiLCBcCi0gICAgICAgICAgIi0wLjE2NSwgLTAuMTUzNzUsIC0wLjE0MTI1LCAtMC4xMzUsIC0wLjEyMjUsIC0wLjExMjUsIC0wLjA5NzUiLCBcCi0gICAgICAgICAgIi0wLjE4NjI1LCAtMC4xNzUsIC0wLjE2MjUsIC0wLjE1NjI1LCAtMC4xNDM3NSwgLTAuMTI3NSwgLTAuMTE4NzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wODEyNSwgLTAuMDcsIC0wLjA1NzUsIC0wLjAzODc1LCAtMC4wMjYyNSwgLTAuMDAzNzUsIDAuMDE3NSIsIFwKLSAgICAgICAgICAiLTAuMDkyNSwgLTAuMDgxMjUsIC0wLjA2MjUsIC0wLjA1LCAtMC4wMzc1LCAtMC4wMTUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjEwNSwgLTAuMDkzNzUsIC0wLjA3NSwgLTAuMDYyNSwgLTAuMDUsIC0wLjAyNzUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICItMC4xMTc1LCAtMC4xMDYyNSwgLTAuMDkzNzUsIC0wLjA3NSwgLTAuMDYyNSwgLTAuMDQsIC0wLjAxODc1IiwgXAotICAgICAgICAgICItMC4xMywgLTAuMTE4NzUsIC0wLjEwNjI1LCAtMC4wODc1LCAtMC4wNzUsIC0wLjA1MjUsIC0wLjAzMTI1IiwgXAotICAgICAgICAgICItMC4xNTI1LCAtMC4xNDEyNSwgLTAuMTI4NzUsIC0wLjExLCAtMC4wOTc1LCAtMC4wNzUsIC0wLjA1Mzc1IiwgXAotICAgICAgICAgICItMC4xNzM3NSwgLTAuMTYyNSwgLTAuMTQzNzUsIC0wLjEzMTI1LCAtMC4xMTI1LCAtMC4wOSwgLTAuMDc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhU0UiOwotICAgICAgc2RmX2NvbmQgOiAiU0UgPT0gMSdiMCI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDkzNzUsIDAuMDgyNSwgMC4wNywgMC4wNTc1LCAwLjA1MTI1LCAwLjAzNSwgMC4wMiIsIFwKLSAgICAgICAgICAiMC4xMDUsIDAuMDkzNzUsIDAuMDgxMjUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNDYyNSwgMC4wMzc1IiwgXAotICAgICAgICAgICIwLjExNzUsIDAuMTA2MjUsIDAuMDkzNzUsIDAuMDg3NSwgMC4wNzUsIDAuMDU4NzUsIDAuMDUiLCBcCi0gICAgICAgICAgIjAuMTM2MjUsIDAuMTI1LCAwLjExMjUsIDAuMSwgMC4wOTM3NSwgMC4wNzc1LCAwLjA2MjUiLCBcCi0gICAgICAgICAgIjAuMTQ4NzUsIDAuMTM3NSwgMC4xMjUsIDAuMTEyNSwgMC4xMDYyNSwgMC4wOSwgMC4wODEyNSIsIFwKLSAgICAgICAgICAiMC4xNzEyNSwgMC4xNiwgMC4xNDc1LCAwLjE0MTI1LCAwLjEyODc1LCAwLjExODc1LCAwLjEwMzc1IiwgXAotICAgICAgICAgICIwLjE5MjUsIDAuMTgxMjUsIDAuMTY4NzUsIDAuMTYyNSwgMC4xNSwgMC4xMzM3NSwgMC4xMjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODc1LCAwLjA3NjI1LCAwLjA2Mzc1LCAwLjA0NSwgMC4wMzI1LCAwLjAxLCAtMC4wMTEyNSIsIFwKLSAgICAgICAgICAiMC4wOTg3NSwgMC4wODc1LCAwLjA2ODc1LCAwLjA1NjI1LCAwLjA0Mzc1LCAwLjAyMTI1LCAwIiwgXAotICAgICAgICAgICIwLjExMTI1LCAwLjEsIDAuMDgxMjUsIDAuMDY4NzUsIDAuMDU2MjUsIDAuMDMzNzUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4xMjM3NSwgMC4xMTI1LCAwLjEsIDAuMDgxMjUsIDAuMDY4NzUsIDAuMDQ2MjUsIDAuMDI1IiwgXAotICAgICAgICAgICIwLjEzNjI1LCAwLjEyNSwgMC4xMTI1LCAwLjA5Mzc1LCAwLjA4MTI1LCAwLjA1ODc1LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIjAuMTU4NzUsIDAuMTQ3NSwgMC4xMzUsIDAuMTE2MjUsIDAuMTAzNzUsIDAuMDgxMjUsIDAuMDYiLCBcCi0gICAgICAgICAgIjAuMTgsIDAuMTY4NzUsIDAuMTUsIDAuMTM3NSwgMC4xMTg3NSwgMC4wOTYyNSwgMC4wODEyNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRUNLKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMzc2MzYyOwotICAgIGNsb2NrX2dhdGVfb3V0X3BpbiA6IHRydWU7Ci0gICAgc3RhdGVfZnVuY3Rpb24gOiAiKENLIEVJTlQpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMjYwNTYsIDAuNDAwMjE1LCAwLjU3MDIwNSwgMC42OTE1MDMsIDAuODg1NzEzLCAxLjA1NTU0LCAxLjI5ODI4IiwgXAotICAgICAgICAgICIwLjIzNzc0MywgMC40MTIwMDEsIDAuNTgxOTgsIDAuNzAzMjkyLCAwLjg5NzU0NSwgMS4wNjcyOSwgMS4zMDk4NyIsIFwKLSAgICAgICAgICAiMC4yNTMwNDcsIDAuNDI3Mjc1LCAwLjU5NzI1OCwgMC43MTg1NTksIDAuOTEyODM5LCAxLjA4MjU3LCAxLjMyNTE0IiwgXAotICAgICAgICAgICIwLjI2ODQ3MiwgMC40NDI2MzYsIDAuNjEyNjI5LCAwLjczMzkyNiwgMC45MjgxNDEsIDEuMDk3ODcsIDEuMzQwNjIiLCBcCi0gICAgICAgICAgIjAuMjgzNDE4LCAwLjQ1NzUzLCAwLjYyNzQ5OSwgMC43NDg4MzIsIDAuOTQzMDU2LCAxLjExMjgyLCAxLjM1NTQyIiwgXAotICAgICAgICAgICIwLjMwNzYxNywgMC40ODE3NzIsIDAuNjUxNzY1LCAwLjc3MzEyMiwgMC45NjcyNzMsIDEuMTM3MDQsIDEuMzc5NjMiLCBcCi0gICAgICAgICAgIjAuMzI3NjU2LCAwLjUwMTg5OCwgMC42NzE4ODEsIDAuNzkzMTk1LCAwLjk4NzQ0NiwgMS4xNTcxOSwgMS4zOTk3NyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3NzcwNCwgMC40MTEwNzksIDAuNzU2NjU2LCAxLjAwMzI1LCAxLjM5ODgyLCAxLjc0NDc2LCAyLjIzODM1IiwgXAotICAgICAgICAgICIwLjA3NzYyMywgMC40MTEzOTcsIDAuNzU2NTksIDEuMDAzMDEsIDEuMzk0NzgsIDEuNzQ0MzMsIDIuMjM4MjEiLCBcCi0gICAgICAgICAgIjAuMDc3NjEzLCAwLjQxMTQ2OCwgMC43NTY2MDQsIDEuMDAzMTksIDEuMzk1MzIsIDEuNzQ0NCwgMi4yMzgyMiIsIFwKLSAgICAgICAgICAiMC4wNzc2NDYsIDAuNDExMzM1LCAwLjc1NjY0NSwgMS4wMDMyMywgMS4zOTQ4MiwgMS43NDQwNywgMi4yMzg5OCIsIFwKLSAgICAgICAgICAiMC4wNzc3MTYsIDAuNDExMzYxLCAwLjc1NTMyNywgMS4wMDI5OCwgMS4zOTQ4MSwgMS43NDQyOSwgMi4yMzgyNyIsIFwKLSAgICAgICAgICAiMC4wNzc2OTUsIDAuNDEyMiwgMC43NTQ0NzEsIDEuMDAwNjIsIDEuMzk4NzgsIDEuNzQxMywgMi4yMzgyMyIsIFwKLSAgICAgICAgICAiMC4wNzc2MjUsIDAuNDExNDYzLCAwLjc1NjU4NywgMS4wMDMwMSwgMS4zOTQ3NywgMS43NDQzMywgMi4yMzgyMyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE5MTYxMiwgMC4zODc0OTQsIDAuNTgyMDI5LCAwLjcyMTA0LCAwLjk0MzUxMiwgMS4xMzgxOSwgMS40MTY2MSIsIFwKLSAgICAgICAgICAiMC4yMDI5MjEsIDAuMzk4ODAyLCAwLjU5MzMzMiwgMC43MzIzNCwgMC45NTQ4MSwgMS4xNDk1MiwgMS40MjgwMSIsIFwKLSAgICAgICAgICAiMC4yMTc5NDksIDAuNDEzODI4LCAwLjYwODM2OCwgMC43NDczNzQsIDAuOTY5ODQ1LCAxLjE2NDUxLCAxLjQ0Mjk4IiwgXAotICAgICAgICAgICIwLjIzMjYwNSwgMC40Mjg0ODYsIDAuNjIzMDE2LCAwLjc2MjAxNywgMC45ODQ1NDksIDEuMTc5MTUsIDEuNDU3NjYiLCBcCi0gICAgICAgICAgIjAuMjQ3MDcxLCAwLjQ0Mjk0MiwgMC42Mzc0NzIsIDAuNzc2NDksIDAuOTk4OTU1LCAxLjE5MzY0LCAxLjQ3MjA5IiwgXAotICAgICAgICAgICIwLjI2OTEyNiwgMC40NjQ5ODYsIDAuNjU5NTI3LCAwLjc5ODU0MSwgMS4wMjEwMiwgMS4yMTU2OSwgMS40OTQxMiIsIFwKLSAgICAgICAgICAiMC4yODY5NjcsIDAuNDgyODQ2LCAwLjY3NzM5MywgMC44MTYzNzMsIDEuMDM4ODYsIDEuMjMzNiwgMS41MTIyMSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3Mjk4NCwgMC40NTcwNzUsIDAuODQ1MzYxLCAxLjEyMTAzLCAxLjU2NjQ3LCAxLjk1MDg3LCAyLjUwMTY2IiwgXAotICAgICAgICAgICIwLjA3Mjk5NiwgMC40NTcwODIsIDAuODQzNDg4LCAxLjEyMTIyLCAxLjU2NTI1LCAxLjk1MDg2LCAyLjUwNDQyIiwgXAotICAgICAgICAgICIwLjA3Mjk4NSwgMC40NTcwNzksIDAuODQ0OTYzLCAxLjEyMTA0LCAxLjU2NTI3LCAxLjk1MDA2LCAyLjUwODAxIiwgXAotICAgICAgICAgICIwLjA3Mjk5MiwgMC40NTUzNTUsIDAuODQ0MjQ3LCAxLjEyMDg0LCAxLjU2NTM2LCAxLjk1MzY3LCAyLjUwNDQyIiwgXAotICAgICAgICAgICIwLjA3MzAxOCwgMC40NTcwODUsIDAuODQ0NzMyLCAxLjExOTcyLCAxLjU2NTI2LCAxLjk1NDQ2LCAyLjUwMjQiLCBcCi0gICAgICAgICAgIjAuMDczMDE3LCAwLjQ1NzA3OCwgMC44NDUxMTcsIDEuMTIxNDYsIDEuNTY1MjksIDEuOTUxNDUsIDIuNTAyNDciLCBcCi0gICAgICAgICAgIjAuMDcyOTkyLCAwLjQ1NzA4LCAwLjg0NTM2OCwgMS4xMjA2LCAxLjU2NTI1LCAxLjk0ODM2LCAyLjUwNjE1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1NjAzLCAwLjAwNTY4NSwgMC4wMDU2OTUsIDAuMDA1Njk3LCAwLjAwNTY5OCwgMC4wMDU3MDEsIDAuMDA1NzAxIiwgXAotICAgICAgICAgICIwLjAwNTU4OSwgMC4wMDU2NywgMC4wMDU2NzksIDAuMDA1NjgyLCAwLjAwNTY4NSwgMC4wMDU2ODUsIDAuMDA1Njg3IiwgXAotICAgICAgICAgICIwLjAwNTU3OCwgMC4wMDU2NTksIDAuMDA1NjY4LCAwLjAwNTY3LCAwLjAwNTY3MywgMC4wMDU2NzQsIDAuMDA1Njc1IiwgXAotICAgICAgICAgICIwLjAwNTU2OSwgMC4wMDU2NTEsIDAuMDA1NjYsIDAuMDA1NjYyLCAwLjAwNTY2NSwgMC4wMDU2NjYsIDAuMDA1NjY3IiwgXAotICAgICAgICAgICIwLjAwNTU2MiwgMC4wMDU2NDMsIDAuMDA1NjUyLCAwLjAwNTY1NSwgMC4wMDU2NTYsIDAuMDA1NjU4LCAwLjAwNTY1OSIsIFwKLSAgICAgICAgICAiMC4wMDU1NTcsIDAuMDA1NjM4LCAwLjAwNTY0NywgMC4wMDU2NTEsIDAuMDA1NjUyLCAwLjAwNTY1MywgMC4wMDU2NTUiLCBcCi0gICAgICAgICAgIjAuMDA1NTU1LCAwLjAwNTYzNiwgMC4wMDU2NDUsIDAuMDA1NjQ4LCAwLjAwNTY1MSwgMC4wMDU2NTEsIDAuMDA1NjUyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDgzMjYsIDAuMDA4NDAzLCAwLjAwODQxMSwgMC4wMDg0MTMsIDAuMDA4NDE1LCAwLjAwODQxNSwgMC4wMDg0MTYiLCBcCi0gICAgICAgICAgIjAuMDA4MzE0LCAwLjAwODM5MSwgMC4wMDgzOTksIDAuMDA4NDAxLCAwLjAwODQwMywgMC4wMDg0MDQsIDAuMDA4NDA0IiwgXAotICAgICAgICAgICIwLjAwODMwNSwgMC4wMDgzODIsIDAuMDA4MzksIDAuMDA4MzkyLCAwLjAwODM5NCwgMC4wMDgzOTUsIDAuMDA4Mzk1IiwgXAotICAgICAgICAgICIwLjAwODI5OSwgMC4wMDgzNzcsIDAuMDA4Mzg0LCAwLjAwODM4NiwgMC4wMDgzODgsIDAuMDA4Mzg5LCAwLjAwODM4OSIsIFwKLSAgICAgICAgICAiMC4wMDgyOTcsIDAuMDA4Mzc1LCAwLjAwODM4MywgMC4wMDgzODQsIDAuMDA4Mzg2LCAwLjAwODM4NywgMC4wMDgzODgiLCBcCi0gICAgICAgICAgIjAuMDA4Mjk2LCAwLjAwODM3NSwgMC4wMDgzODMsIDAuMDA4Mzg1LCAwLjAwODM4NywgMC4wMDgzODcsIDAuMDA4Mzg4IiwgXAotICAgICAgICAgICIwLjAwODI5OSwgMC4wMDgzNzcsIDAuMDA4Mzg0LCAwLjAwODM4NiwgMC4wMDgzODgsIDAuMDA4Mzg5LCAwLjAwODM5Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTRSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjY2OTYzOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDY2MzgxMTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2NjY5NjM7Ci0gICAgY2xvY2tfZ2F0ZV90ZXN0X3BpbiA6IHRydWU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyMzk1LCAwLjAwMjM4NCwgMC4wMDIzNzksIDAuMDAyMzc1LCAwLjAwMjM3MiwgMC4wMDIzNjgsIDAuMDAyMzY1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzNjk3LCAwLjAwMzY5MiwgMC4wMDM2ODksIDAuMDAzNjg3LCAwLjAwMzY4NSwgMC4wMDM2ODIsIDAuMDAzNjgxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFFIjsKLSAgICAgIHNkZl9jb25kIDogIkUgPT0gMSdiMCI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDg3NSwgLTAuMDgyNSwgLTAuMDcsIC0wLjA1NzUsIC0wLjA0NSwgLTAuMDM1LCAtMC4wMiIsIFwKLSAgICAgICAgICAiLTAuMTA1LCAtMC4wOTM3NSwgLTAuMDgxMjUsIC0wLjA2ODc1LCAtMC4wNjI1LCAtMC4wNDYyNSwgLTAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjExNzUsIC0wLjEwNjI1LCAtMC4wOTM3NSwgLTAuMDg3NSwgLTAuMDc1LCAtMC4wNTg3NSwgLTAuMDUiLCBcCi0gICAgICAgICAgIi0wLjEzLCAtMC4xMTg3NSwgLTAuMTEyNSwgLTAuMSwgLTAuMDg3NSwgLTAuMDc3NSwgLTAuMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMTQ4NzUsIC0wLjEzNzUsIC0wLjEyNSwgLTAuMTEyNSwgLTAuMTA2MjUsIC0wLjA5LCAtMC4wODEyNSIsIFwKLSAgICAgICAgICAiLTAuMTcxMjUsIC0wLjE2LCAtMC4xNDc1LCAtMC4xNDEyNSwgLTAuMTI4NzUsIC0wLjExMjUsIC0wLjEwMzc1IiwgXAotICAgICAgICAgICItMC4xOTI1LCAtMC4xODEyNSwgLTAuMTY4NzUsIC0wLjE2MjUsIC0wLjE1LCAtMC4xMzM3NSwgLTAuMTI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDg3NSwgLTAuMDc2MjUsIC0wLjA2Mzc1LCAtMC4wNDUsIC0wLjAzMjUsIC0wLjAxLCAwLjAxMTI1IiwgXAotICAgICAgICAgICItMC4wOTg3NSwgLTAuMDg3NSwgLTAuMDc1LCAtMC4wNTYyNSwgLTAuMDQzNzUsIC0wLjAyMTI1LCAwIiwgXAotICAgICAgICAgICItMC4xMTEyNSwgLTAuMSwgLTAuMDg3NSwgLTAuMDY4NzUsIC0wLjA1NjI1LCAtMC4wMzM3NSwgLTAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMTIzNzUsIC0wLjExMjUsIC0wLjEsIC0wLjA4MTI1LCAtMC4wNjg3NSwgLTAuMDQ2MjUsIC0wLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMTM2MjUsIC0wLjEyNSwgLTAuMTEyNSwgLTAuMDkzNzUsIC0wLjA4MTI1LCAtMC4wNTg3NSwgLTAuMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMTU4NzUsIC0wLjE0NzUsIC0wLjEyODc1LCAtMC4xMTYyNSwgLTAuMDk3NSwgLTAuMDc1LCAtMC4wNiIsIFwKLSAgICAgICAgICAiLTAuMTczNzUsIC0wLjE2MjUsIC0wLjE1LCAtMC4xMzEyNSwgLTAuMTE4NzUsIC0wLjA5NjI1LCAtMC4wNzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFFIjsKLSAgICAgIHNkZl9jb25kIDogIkUgPT0gMSdiMCI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDkzNzUsIDAuMDg4NzUsIDAuMDc2MjUsIDAuMDYzNzUsIDAuMDUxMjUsIDAuMDQxMjUsIDAuMDI2MjUiLCBcCi0gICAgICAgICAgIjAuMTExMjUsIDAuMSwgMC4wODc1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNTI1LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIjAuMTIzNzUsIDAuMTEyNSwgMC4xLCAwLjA5Mzc1LCAwLjA4MTI1LCAwLjA2NSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiMC4xMzYyNSwgMC4xMjUsIDAuMTE4NzUsIDAuMTA2MjUsIDAuMDkzNzUsIDAuMDgzNzUsIDAuMDY4NzUiLCBcCi0gICAgICAgICAgIjAuMTU1LCAwLjE0Mzc1LCAwLjEzMTI1LCAwLjExODc1LCAwLjExMjUsIDAuMDk2MjUsIDAuMDg3NSIsIFwKLSAgICAgICAgICAiMC4xNzc1LCAwLjE2NjI1LCAwLjE1Mzc1LCAwLjE0NzUsIDAuMTM1LCAwLjExODc1LCAwLjExIiwgXAotICAgICAgICAgICIwLjE5ODc1LCAwLjE4NzUsIDAuMTc1LCAwLjE2ODc1LCAwLjE1NjI1LCAwLjE0LCAwLjEzMTI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDkzNzUsIDAuMDgyNSwgMC4wNywgMC4wNTEyNSwgMC4wMzg3NSwgMC4wMTYyNSwgLTAuMDA1IiwgXAotICAgICAgICAgICIwLjEwNSwgMC4wOTM3NSwgMC4wODEyNSwgMC4wNjI1LCAwLjA1LCAwLjAyNzUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMTE3NSwgMC4xMDYyNSwgMC4wOTM3NSwgMC4wNzUsIDAuMDYyNSwgMC4wNCwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4xMywgMC4xMTg3NSwgMC4xMDYyNSwgMC4wODc1LCAwLjA3NSwgMC4wNTI1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICIwLjE0MjUsIDAuMTMxMjUsIDAuMTE4NzUsIDAuMSwgMC4wODc1LCAwLjA2NSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4xNjUsIDAuMTUzNzUsIDAuMTM1LCAwLjEyMjUsIDAuMTAzNzUsIDAuMDgxMjUsIDAuMDY2MjUiLCBcCi0gICAgICAgICAgIjAuMTgsIDAuMTY4NzUsIDAuMTU2MjUsIDAuMTM3NSwgMC4xMjUsIDAuMTAyNSwgMC4wODEyNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogWE9SM1hMICoKLSAqIC0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoWE9SM1hMKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMjc2MTYyOwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2ODQ1MjE7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjg0MDgzOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDY4NDUyMTsKLSAgfQotICBwaW4oQikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAyMDcwODE7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAyMDcwMTI7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAyMDcwODE7Ci0gIH0KLSAgcGluKEMpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTM1MDM3OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTM0OTE3OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTM1MDM3OwotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMDczNDg1NDsKLSAgICBmdW5jdGlvbiA6ICIoKEFeQileQykiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjM5MTQsIDAuNDE4Mzk1LCAwLjY1NTUyOSwgMS4wNDg5NSwgMS40NDIyNCwgMi4zNjA0NCwgMi44ODQ5OCIsIFwKLSAgICAgICAgICAiMC40MDMwNjUsIDAuNDMwMDMyLCAwLjY2NzE1MywgMS4wNjA1OSwgMS40NTQwMSwgMi4zNzIyMiwgMi44OTYwNCIsIFwKLSAgICAgICAgICAiMC40MTc5NTUsIDAuNDQ0OTE4LCAwLjY4MjA0NiwgMS4wNzU0OSwgMS40Njg4LCAyLjM4NzU3LCAyLjkxMTI2IiwgXAotICAgICAgICAgICIwLjQzMjY4NSwgMC40NTk2NTEsIDAuNjk2NzgsIDEuMDkwMjIsIDEuNDgzNjMsIDIuNDAyMywgMi45MjYyOSIsIFwKLSAgICAgICAgICAiMC40NDc0NDgsIDAuNDc0NDEzLCAwLjcxMTU0NiwgMS4xMDQ5OSwgMS40OTgzNSwgMi40MTcwOCwgMi45NDA4NyIsIFwKLSAgICAgICAgICAiMC40NzEyMjQsIDAuNDk4MTksIDAuNzM1MzMxLCAxLjEyODc5LCAxLjUyMjI1LCAyLjQ0MDg4LCAyLjk2NDk5IiwgXAotICAgICAgICAgICIwLjQ5MTk4MywgMC41MTg5NSwgMC43NTYwOTcsIDEuMTQ5NTYsIDEuNTQyOSwgMi40NjE2OCwgMi45ODUzNyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMDI3NDksIDAuMzUzNzEsIDAuODIxNzY5LCAxLjYxOTM1LCAyLjQxNTAyLCA0LjI3MDYzLCA1LjMzMjQ0IiwgXAotICAgICAgICAgICIwLjMwMjY0OSwgMC4zNTM2ODYsIDAuODIxNjQ2LCAxLjYxNzcyLCAyLjQxMTYzLCA0LjI3OTQyLCA1LjMzMzY0IiwgXAotICAgICAgICAgICIwLjMwMjY1MiwgMC4zNTM2ODMsIDAuODIxNjU1LCAxLjYxNzc0LCAyLjQxNTc4LCA0LjI2OTYsIDUuMzMxMzIiLCBcCi0gICAgICAgICAgIjAuMzAyNjMyLCAwLjM1MzY5NiwgMC44MjE2NTUsIDEuNjE3NzIsIDIuNDEyMDYsIDQuMjY5NTksIDUuMzMyNzMiLCBcCi0gICAgICAgICAgIjAuMzAyNjIyLCAwLjM1MzcwMiwgMC44MjE2NSwgMS42MTc3MiwgMi40MTU5MywgNC4yNjk2LCA1LjMzMTMyIiwgXAotICAgICAgICAgICIwLjMwMjc3NCwgMC4zNTM3NDcsIDAuODIxNjUxLCAxLjYxNzcyLCAyLjQxMTU5LCA0LjI2OTYsIDUuMzMyNDgiLCBcCi0gICAgICAgICAgIjAuMzAyNzksIDAuMzUzODA5LCAwLjgyMTY3MywgMS42MTc3MywgMi40MTU4OCwgNC4yNjk2MSwgNS4zMzExNCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMzYxMjksIDAuMzU5MzcsIDAuNTYxMjI1LCAwLjg5NDMsIDEuMjI3NDMsIDIuMDA0NjMsIDIuNDQ4OTMiLCBcCi0gICAgICAgICAgIjAuMzQ3NDM2LCAwLjM3MDY3NywgMC41NzI1NDIsIDAuOTA1NjExLCAxLjIzODcyLCAyLjAxNTk3LCAyLjQ2MTIiLCBcCi0gICAgICAgICAgIjAuMzYxOTM3LCAwLjM4NTE3OSwgMC41ODcwNDYsIDAuOTIwMTE4LCAxLjI1MzIyLCAyLjAzMDQ4LCAyLjQ3NTcyIiwgXAotICAgICAgICAgICIwLjM3NjA4NiwgMC4zOTkzMzIsIDAuNjAxMjI1LCAwLjkzNDMxOSwgMS4yNjczMywgMi4wNDQ2MiwgMi40ODkyNyIsIFwKLSAgICAgICAgICAiMC4zOTA0MjQsIDAuNDEzNjc2LCAwLjYxNTU0OCwgMC45NDg2MzMsIDEuMjgxNzMsIDIuMDU5MDMsIDIuNTA0MzQiLCBcCi0gICAgICAgICAgIjAuNDEzMjU1LCAwLjQzNjUwOCwgMC42MzgzODYsIDAuOTcxNDgsIDEuMzA0NTgsIDIuMDgxODgsIDIuNTI3MTgiLCBcCi0gICAgICAgICAgIjAuNDMyODY2LCAwLjQ1NjEwNCwgMC42NTc5ODgsIDAuOTkxMDksIDEuMzI0MiwgMi4xMDE0OSwgMi41NDY3NyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yNTcxNTIsIDAuMjk5MTEsIDAuNjg0OTg2LCAxLjM0MjUzLCAyLjAwMTkyLCAzLjU0OTI0LCA0LjQxNzI5IiwgXAotICAgICAgICAgICIwLjI1NzE3NCwgMC4yOTkxNzYsIDAuNjg1NCwgMS4zNDI2MiwgMi4wMDM2OSwgMy41NDkyOCwgNC40MTczNyIsIFwKLSAgICAgICAgICAiMC4yNTcxNzYsIDAuMjk5MTgsIDAuNjg1NDUxLCAxLjM0MjYzLCAyLjAwMzY5LCAzLjU0OTI4LCA0LjQxNzMyIiwgXAotICAgICAgICAgICIwLjI1NzIyNSwgMC4yOTkwOTUsIDAuNjg0NTQyLCAxLjM0MjgsIDIuMDAzNzMsIDMuNTQ5MjUsIDQuNDIxOTkiLCBcCi0gICAgICAgICAgIjAuMjU3MTEzLCAwLjI5OTIwNCwgMC42ODUyMDgsIDEuMzQyNywgMi4wMDM2OCwgMy41NDYxMiwgNC40MTc5OSIsIFwKLSAgICAgICAgICAiMC4yNTcyLCAwLjI5OTIxLCAwLjY4NDgwOCwgMS4zNDI3LCAyLjAwMzY4LCAzLjU0OTIzLCA0LjQxNzciLCBcCi0gICAgICAgICAgIjAuMjU3MjMsIDAuMjk5MjI5LCAwLjY4NDcxMSwgMS4zNDI3NiwgMi4wMDM2OSwgMy41NDkyNiwgNC40MTc0OSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC40NTk5NzYsIDAuNDg2ODg0LCAwLjcyMzg1OCwgMS4xMTcxNiwgMS41MTA3LCAyLjQyOTU0LCAyLjk1MzE0IiwgXAotICAgICAgICAgICIwLjQ3MTI5NywgMC40OTgyMDQsIDAuNzM1MTEzLCAxLjEyODU0LCAxLjUyMjAxLCAyLjQzOTkxLCAyLjk2NDg4IiwgXAotICAgICAgICAgICIwLjQ4NjA5LCAwLjUxMjk5MSwgMC43NDk5MDUsIDEuMTQzMzQsIDEuNTM2NzMsIDIuNDU1NzIsIDIuOTc5MjkiLCBcCi0gICAgICAgICAgIjAuNTAwODI0LCAwLjUyNzcxMiwgMC43NjQ2NzcsIDEuMTU3OTksIDEuNTUxNTEsIDIuNDcwMzYsIDIuOTkzOTgiLCBcCi0gICAgICAgICAgIjAuNTE1NzAyLCAwLjU0MjU3LCAwLjc3OTUxNywgMS4xNzI5NSwgMS41NjYyNSwgMi40ODQyNCwgMy4wMDg3OCIsIFwKLSAgICAgICAgICAiMC41Mzg5NTEsIDAuNTY1ODI1LCAwLjgwMjc2NSwgMS4xOTYyLCAxLjU4OTQ3LCAyLjUwODM2LCAzLjAzMTc2IiwgXAotICAgICAgICAgICIwLjU1ODg5OSwgMC41ODU3ODUsIDAuODIyNzIyLCAxLjIxNjEzLCAxLjYwOTc5LCAyLjUyODIsIDMuMDUyMiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMDEzODcsIDAuMzUyMzY3LCAwLjgyMDEwNiwgMS42MTY5NSwgMi40MTE0MiwgNC4yNjk1NSwgNS4zMzExNiIsIFwKLSAgICAgICAgICAiMC4zMDE0MTUsIDAuMzUyMjM0LCAwLjgyMTI1LCAxLjYxNzQzLCAyLjQwOTU2LCA0LjI3MDAzLCA1LjMzMzEzIiwgXAotICAgICAgICAgICIwLjMwMTQxNywgMC4zNTIxNywgMC44MjE5ODEsIDEuNjE3NDIsIDIuNDExNDYsIDQuMjc4MTcsIDUuMzMxNCIsIFwKLSAgICAgICAgICAiMC4zMDE0NDUsIDAuMzUyNDI0LCAwLjgyMDE0NiwgMS42MTcwMiwgMi40MTEzOSwgNC4yNzAwNywgNS4zMzE0NSIsIFwKLSAgICAgICAgICAiMC4zMDE0MTQsIDAuMzUyMjk2LCAwLjgyMTEyMywgMS42MTc0NCwgMi40MTU2LCA0LjI2ODc2LCA1LjMzMTQzIiwgXAotICAgICAgICAgICIwLjMwMTM4MiwgMC4zNTIzMDEsIDAuODIxNDAzLCAxLjYxNzQ0LCAyLjQxNDY3LCA0LjI2OTksIDUuMzM2ODMiLCBcCi0gICAgICAgICAgIjAuMzAxNDIsIDAuMzUyMzQsIDAuODIxMTU5LCAxLjYxNzQ1LCAyLjQxMDAyLCA0LjI2OTU3LCA1LjMzNDk0Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjQyMTM0OCwgMC40NDQ1MDYsIDAuNjQ2MDU1LCAwLjk3OTIyNCwgMS4zMTIyOSwgMi4wODk1OSwgMi41MzQ3OSIsIFwKLSAgICAgICAgICAiMC40MzI5MiwgMC40NTYxMiwgMC42NTc2MzQsIDAuOTkwNzg1LCAxLjMyMzgsIDIuMTAwOTksIDIuNTQ2MzgiLCBcCi0gICAgICAgICAgIjAuNDQ4MDA5LCAwLjQ3MTE5NCwgMC42NzI3MTEsIDEuMDA1ODksIDEuMzM4ODUsIDIuMTE2MjUsIDIuNTYxMTUiLCBcCi0gICAgICAgICAgIjAuNDYyOTE4LCAwLjQ4NjEwNSwgMC42ODc2MzQsIDEuMDIwNzksIDEuMzUzOCwgMi4xMzE0MywgMi41NzY0MiIsIFwKLSAgICAgICAgICAiMC40NzgzMTksIDAuNTAxNTA2LCAwLjcwMzAyNiwgMS4wMzYyLCAxLjM2OTE2LCAyLjE0NjU0LCAyLjU5MTQxIiwgXAotICAgICAgICAgICIwLjUwMjU5OCwgMC41MjU2OTUsIDAuNzI3MjM5LCAxLjA2MDQsIDEuMzkzMzksIDIuMTcwOCwgMi42MTUzNyIsIFwKLSAgICAgICAgICAiMC41MjM0NjcsIDAuNTQ2NjQ3LCAwLjc0ODE3NiwgMS4wODEzNSwgMS40MTQ0MywgMi4xOTE2OCwgMi42MzY3NCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yNTU5MTEsIDAuMjk3ODE4LCAwLjY4NDM4NywgMS4zNDI1MiwgMi4wMDM2MywgMy41NDU5NywgNC40MjA1OSIsIFwKLSAgICAgICAgICAiMC4yNTU5NDEsIDAuMjk3ODYyLCAwLjY4NDI1LCAxLjM0MjUyLCAyLjAwMzQ5LCAzLjU0OTE1LCA0LjQxODkzIiwgXAotICAgICAgICAgICIwLjI1NTkxMiwgMC4yOTc3NjYsIDAuNjg0MzE3LCAxLjM0MDc2LCAyLjAwMzQ3LCAzLjU0NTgyLCA0LjQyMjA5IiwgXAotICAgICAgICAgICIwLjI1NTkyNywgMC4yOTc4MywgMC42ODQyNTEsIDEuMzQyNTIsIDIuMDAzNSwgMy41NDY3NCwgNC40MjE1OCIsIFwKLSAgICAgICAgICAiMC4yNTU5MTIsIDAuMjk3ODA3LCAwLjY4NDI5NCwgMS4zNDIxNiwgMi4wMDM0NywgMy41NDYzNywgNC40MTkzNSIsIFwKLSAgICAgICAgICAiMC4yNTU3OTIsIDAuMjk3ODE3LCAwLjY4NDM0NSwgMS4zNDI1MiwgMi4wMDM0NywgMy41NDE0NiwgNC40MjI0NyIsIFwKLSAgICAgICAgICAiMC4yNTU5NDEsIDAuMjk3ODQxLCAwLjY4NDMxNCwgMS4zNDIwMSwgMi4wMDMzNCwgMy41NDcyMiwgNC40MjEzMyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zNDUzNjUsIDAuMzcyMzI1LCAwLjYwOTM5OSwgMS4wMDI4LCAxLjM5NjEzLCAyLjMxNDg2LCAyLjgzODk0IiwgXAotICAgICAgICAgICIwLjM1NjUzOCwgMC4zODM0MDEsIDAuNjIwNDU4LCAxLjAxMzg1LCAxLjQwNzI0LCAyLjMyNTQ1LCAyLjg0OTQ3IiwgXAotICAgICAgICAgICIwLjM3MDYsIDAuMzk3NTU2LCAwLjYzNDYyOSwgMS4wMjgwNCwgMS40MjEyNSwgMi4zNDAxMywgMi44NjQ0OSIsIFwKLSAgICAgICAgICAiMC4zODQ2NDYsIDAuNDExNjEsIDAuNjQ4NzE3LCAxLjA0MjEyLCAxLjQzNTQyLCAyLjM1NDQ5LCAyLjg3ODA4IiwgXAotICAgICAgICAgICIwLjM5ODQxMiwgMC40MjUzNzEsIDAuNjYyNDY0LCAxLjA1NTg3LCAxLjQ0OTE3LCAyLjM2NzkzLCAyLjg5MTY1IiwgXAotICAgICAgICAgICIwLjQyMDQyMSwgMC40NDc0MTYsIDAuNjg0NTQ1LCAxLjA3Nzg1LCAxLjQ3MTI1LCAyLjM5MDM5LCAyLjkxMzg1IiwgXAotICAgICAgICAgICIwLjQzOTQ4NywgMC40NjY0NDYsIDAuNzAzNTcxLCAxLjA5NzAxLCAxLjQ5MDMsIDIuNDA5MzcsIDIuOTMyOTciKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzAyNTQzLCAwLjM1MzUwNCwgMC44MjI4NTgsIDEuNjE3NzksIDIuNDE2MDYsIDQuMjY5NTYsIDUuMzMzIiwgXAotICAgICAgICAgICIwLjMwMjUwMywgMC4zNTMzODQsIDAuODIyODY0LCAxLjYxNzczLCAyLjQxNTY5LCA0LjI2OTU3LCA1LjMzMTUzIiwgXAotICAgICAgICAgICIwLjMwMjUzNSwgMC4zNTM1MDEsIDAuODIyNzkyLCAxLjYxNzc3LCAyLjQxNTQ1LCA0LjI3MDAxLCA1LjMzMjUiLCBcCi0gICAgICAgICAgIjAuMzAyNTQ3LCAwLjM1MzQ4OCwgMC44MjI4MzIsIDEuNjE3NzUsIDIuNDExMjgsIDQuMjY5NTYsIDUuMzMwMTgiLCBcCi0gICAgICAgICAgIjAuMzAyNTA3LCAwLjM1MzQ3LCAwLjgyMjY2NywgMS42MTc3MiwgMi40MTU3OCwgNC4yNjk2NywgNS4zMzI4NSIsIFwKLSAgICAgICAgICAiMC4zMDI1MjksIDAuMzUzNDU0LCAwLjgyMjgzMSwgMS42MTcyOCwgMi40MTA5MywgNC4yNzE2NCwgNS4zMzA1NSIsIFwKLSAgICAgICAgICAiMC4zMDI1MzcsIDAuMzUzNDczLCAwLjgyMjgyNywgMS42MjAxNSwgMi40MTEwMiwgNC4yNjk1NCwgNS4zMzAxOCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMDY5MjgsIDAuMzMwMDU5LCAwLjUzMTYxLCAwLjg2NDY1MiwgMS4xOTc3MywgMS45NzUwNiwgMi40MjAwNSIsIFwKLSAgICAgICAgICAiMC4zMTgwMTYsIDAuMzQxMTU1LCAwLjU0MjY4NSwgMC44NzU3NTMsIDEuMjA4ODQsIDEuOTg2MTIsIDIuNDMxMjYiLCBcCi0gICAgICAgICAgIjAuMzMxNDA1LCAwLjM1NDU4MSwgMC41NTYxMjgsIDAuODg5Mjg5LCAxLjIyMjQzLCAxLjk5OTYsIDIuNDQzNzUiLCBcCi0gICAgICAgICAgIjAuMzQ0MjE5LCAwLjM2NzM5NCwgMC41Njg5NDksIDAuOTAyMTEsIDEuMjM1MjgsIDIuMDEyNDIsIDIuNDU2NjEiLCBcCi0gICAgICAgICAgIjAuMzU3MTQxLCAwLjM4MDI1NSwgMC41ODE4MTcsIDAuOTE0OTYzLCAxLjI0Nzk4LCAyLjAyNjAyLCAyLjQ3MDQiLCBcCi0gICAgICAgICAgIjAuMzc3NDkzLCAwLjQwMDYyNiwgMC42MDIxOTcsIDAuOTM1MzUsIDEuMjY4MzcsIDIuMDQ2NjgsIDIuNDg5ODkiLCBcCi0gICAgICAgICAgIjAuMzk0OTkzLCAwLjQxODEwOCwgMC42MTk2OTYsIDAuOTUyODU2LCAxLjI4NTg3LCAyLjA2Mzk2LCAyLjUwODQ3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI1NjQ2MiwgMC4yOTgxNjgsIDAuNjg0MzAyLCAxLjM0MjM2LCAyLjAwMzUsIDMuNTQ3OSwgNC40MTk0MSIsIFwKLSAgICAgICAgICAiMC4yNTY1MDUsIDAuMjk4MDksIDAuNjg0NDA2LCAxLjM0MjMsIDIuMDAzNSwgMy41NDcwNiwgNC40MTk4OCIsIFwKLSAgICAgICAgICAiMC4yNTYzNzksIDAuMjk4MjI3LCAwLjY4NDQzMiwgMS4zMzkwNCwgMi4wMDM0MSwgMy41NDY1NCwgNC40MjA2OSIsIFwKLSAgICAgICAgICAiMC4yNTY0MTgsIDAuMjk4MjU5LCAwLjY4NDQ0MiwgMS4zNDIzNiwgMi4wMDM0LCAzLjU0NjQ5LCA0LjQxODU1IiwgXAotICAgICAgICAgICIwLjI1NjMzLCAwLjI5ODI5NywgMC42ODQ0MTksIDEuMzQyNTcsIDIuMDAzNTEsIDMuNTQ0ODcsIDQuNDIxMjEiLCBcCi0gICAgICAgICAgIjAuMjU2NDE2LCAwLjI5ODI1OCwgMC42ODQ0MTUsIDEuMzQyNTcsIDIuMDAzNTEsIDMuNTQ4MDEsIDQuNDIwNTMiLCBcCi0gICAgICAgICAgIjAuMjU2NDQsIDAuMjk4MjM4LCAwLjY4NDI1MSwgMS4zNDI1NywgMi4wMDM1LCAzLjU0NDU4LCA0LjQxNjg3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjM1ODM5NiwgMC4zODUyNzEsIDAuNjIyMjE4LCAxLjAxNTYsIDEuNDA5MDMsIDIuMzI3ODQsIDIuODUxNTQiLCBcCi0gICAgICAgICAgIjAuMzY5ODg2LCAwLjM5NjczNCwgMC42MzM2NjksIDEuMDI3MTEsIDEuNDIwNDcsIDIuMzM4NzYsIDIuODYyNiIsIFwKLSAgICAgICAgICAiMC4zODM4MTQsIDAuNDEwNzIyLCAwLjY0NzYwNSwgMS4wNDEwMywgMS40MzQzMiwgMi4zNTMxNywgMi44NzY1NCIsIFwKLSAgICAgICAgICAiMC4zOTcyNzYsIDAuNDI0MTU5LCAwLjY2MTExLCAxLjA1NDQzLCAxLjQ0NzkzLCAyLjM2Njc2LCAyLjg5MDQxIiwgXAotICAgICAgICAgICIwLjQxMDU2NiwgMC40Mzc0NzEsIDAuNjc0NDAyLCAxLjA2NzczLCAxLjQ2MTI1LCAyLjM4MDExLCAyLjkwMzciLCBcCi0gICAgICAgICAgIjAuNDMwNzM3LCAwLjQ1NzY0MSwgMC42OTQ1NzMsIDEuMDg3OSwgMS40ODE0MiwgMi40MDAzLCAyLjkyMzg3IiwgXAotICAgICAgICAgICIwLjQ0NjgyLCAwLjQ3MzcyMiwgMC43MTA2NTUsIDEuMTAzOTksIDEuNDk3NTEsIDIuNDE2MzcsIDIuOTM5OTciKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzAxNTAzLCAwLjM1MjQ3MiwgMC44MjE3OTEsIDEuNjE3MzksIDIuNDE1MzMsIDQuMjY5NTIsIDUuMzMxMDciLCBcCi0gICAgICAgICAgIjAuMzAxNDc1LCAwLjM1MjM0OCwgMC44MjE5NzUsIDEuNjE3NDIsIDIuNDExMjIsIDQuMjY5OTYsIDUuMzM3MjciLCBcCi0gICAgICAgICAgIjAuMzAxNDcxLCAwLjM1MjQwNiwgMC44MjE1NzYsIDEuNjE3NDMsIDIuNDE0NjcsIDQuMjY5NiwgNS4zMzcwOCIsIFwKLSAgICAgICAgICAiMC4zMDE0MSwgMC4zNTIzOTMsIDAuODIwMjk3LCAxLjYxNzA5LCAyLjQxMTI5LCA0LjI2OTUsIDUuMzMxMyIsIFwKLSAgICAgICAgICAiMC4zMDE0MTksIDAuMzUyMzk0LCAwLjgyMDg2NywgMS42MTY5OCwgMi40MTEzNCwgNC4yNjk1LCA1LjMzMTIiLCBcCi0gICAgICAgICAgIjAuMzAxNDA5LCAwLjM1MjM4NiwgMC44MjA4MTgsIDEuNjE2OTUsIDIuNDExOCwgNC4yNzc5OSwgNS4zMzExNyIsIFwKLSAgICAgICAgICAiMC4zMDE0MjUsIDAuMzUyMzk5LCAwLjgyMDg3NywgMS42MTcwMSwgMi40MTE5MSwgNC4yNzA4LCA1LjMzMTI5Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMxMTYyNCwgMC4zMzQ4NTYsIDAuNTM2NTg3LCAwLjg2OTY1MSwgMS4yMDI3NCwgMS45ODAwMiwgMi40MjUyMiIsIFwKLSAgICAgICAgICAiMC4zMjM4MjEsIDAuMzQ3MDU3LCAwLjU0ODc5LCAwLjg4MTg1NCwgMS4yMTQ5NCwgMS45OTIyMywgMi40Mzc0NiIsIFwKLSAgICAgICAgICAiMC4zMzk0MTYsIDAuMzYyNjgzLCAwLjU2NDQyNSwgMC44OTc1NzEsIDEuMjMwNTksIDIuMDA3OTYsIDIuNDUzMjciLCBcCi0gICAgICAgICAgIjAuMzU0ODg3LCAwLjM3ODE1MywgMC41Nzk4OTYsIDAuOTEzMDQ4LCAxLjI0NjA2LCAyLjAyMzMsIDIuNDY4NzgiLCBcCi0gICAgICAgICAgIjAuMzcwMjI2LCAwLjM5MzQ2NywgMC41OTUyMzUsIDAuOTI4MzkxLCAxLjI2MTQxLCAyLjAzOTAxLCAyLjQ4NDIiLCBcCi0gICAgICAgICAgIjAuMzkzNzQ1LCAwLjQxNjk4MywgMC42MTg3NTQsIDAuOTUxOTEzLCAxLjI4NDkzLCAyLjA2MjM2LCAyLjUwNzc0IiwgXAotICAgICAgICAgICIwLjQxMjYxOCwgMC40MzU4NiwgMC42Mzc2MywgMC45NzA4MSwgMS4zMDM4NiwgMi4wODEwMiwgMi41MjYxMyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yNTcxNzMsIDAuMjk4ODQ5LCAwLjY4NDg5NSwgMS4zNDExMiwgMi4wMDM2MiwgMy41NDkyNCwgNC40MTkyMiIsIFwKLSAgICAgICAgICAiMC4yNTcxNTIsIDAuMjk4ODAyLCAwLjY4NDgxLCAxLjMzOTU0LCAyLjAwMzYyLCAzLjU0OTIyLCA0LjQxOTMyIiwgXAotICAgICAgICAgICIwLjI1Njk3MiwgMC4yOTg4NDgsIDAuNjg0ODQzLCAxLjM0MjgyLCAyLjAwMzYzLCAzLjUzNzczLCA0LjQxNzc3IiwgXAotICAgICAgICAgICIwLjI1Njk2OCwgMC4yOTg4NDcsIDAuNjg0ODEyLCAxLjM0MjgyLCAyLjAwMzYzLCAzLjU0OTI2LCA0LjQxNzQ2IiwgXAotICAgICAgICAgICIwLjI1Njk0NywgMC4yOTg4NzEsIDAuNjg0ODM1LCAxLjM0MjgyLCAyLjAwMzYzLCAzLjU0MjE0LCA0LjQyMjA0IiwgXAotICAgICAgICAgICIwLjI1Njk0NSwgMC4yOTg4MjYsIDAuNjg0ODI1LCAxLjM0MjgyLCAyLjAwMzYzLCAzLjUzNjU5LCA0LjQyMTU4IiwgXAotICAgICAgICAgICIwLjI1Njk1OCwgMC4yOTg4MzMsIDAuNjg0ODM1LCAxLjM0MjIsIDIuMDAzNzYsIDMuNTQ5MjIsIDQuNDE4MDYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjQ1MTYsIDAuMjcyMDksIDAuNTA4OTYyLCAwLjkwMjMzMSwgMS4yOTU3MywgMi4yMTM0MywgMi43MzgxMiIsIFwKLSAgICAgICAgICAiMC4yNTU2MzgsIDAuMjgyNTUxLCAwLjUxOTQ0OSwgMC45MTI3NzMsIDEuMzA2MTMsIDIuMjIzODYsIDIuNzQ4ODEiLCBcCi0gICAgICAgICAgIjAuMjY4ODcxLCAwLjI5NTc5LCAwLjUzMjcwMywgMC45MjYwMjMsIDEuMzE5NDEsIDIuMjM3MDUsIDIuNzYxOTIiLCBcCi0gICAgICAgICAgIjAuMjgyMDM5LCAwLjMwODk0MiwgMC41NDU4NDcsIDAuOTM5MTMxLCAxLjMzMjYzLCAyLjI1MTUzLCAyLjc3NTE2IiwgXAotICAgICAgICAgICIwLjI5NTMxMiwgMC4zMjIxNywgMC41NTkxNDgsIDAuOTUyNTAxLCAxLjM0NTk3LCAyLjI2NDYyLCAyLjc4ODAyIiwgXAotICAgICAgICAgICIwLjMxNjQzMSwgMC4zNDMzNDIsIDAuNTgwMjU2LCAwLjk3MzYxOCwgMS4zNjY5NSwgMi4yODQ5LCAyLjgwOTQxIiwgXAotICAgICAgICAgICIwLjMzNDU5MiwgMC4zNjE0NzgsIDAuNTk4MzkyLCAwLjk5MTc0NSwgMS4zODUxNSwgMi4zMDM5NSwgMi44Mjc3NCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMDEzMSwgMC4zNTI0NDcsIDAuODIyMzk1LCAxLjYxNzY4LCAyLjQxMTU1LCA0LjI3NzQzLCA1LjMzNDM0IiwgXAotICAgICAgICAgICIwLjMwMTE5OSwgMC4zNTIzNTMsIDAuODIyNTMzLCAxLjYxNzU5LCAyLjQxMTcsIDQuMjc5NDQsIDUuMzMyODEiLCBcCi0gICAgICAgICAgIjAuMzAxMTAxLCAwLjM1MjI2NSwgMC44MjI1MjMsIDEuNjE3NTMsIDIuNDExNjMsIDQuMjc3NDUsIDUuMzMxMjkiLCBcCi0gICAgICAgICAgIjAuMzAwOTUxLCAwLjM1MjEyNiwgMC44MjE2OTEsIDEuNjE2OTcsIDIuNDExNDQsIDQuMjY5NjEsIDUuMzMwMzIiLCBcCi0gICAgICAgICAgIjAuMzAwNzE0LCAwLjM1MTkwOCwgMC44MjIzMDYsIDEuNjE3NTEsIDIuNDEwMzcsIDQuMjY5NjIsIDUuMzM3MDgiLCBcCi0gICAgICAgICAgIjAuMzAwMjgsIDAuMzUxNTcsIDAuODIyMDIzLCAxLjYxNzQzLCAyLjQxMTExLCA0LjI2ODc1LCA1LjMzMTEzIiwgXAotICAgICAgICAgICIwLjI5OTkzMSwgMC4zNTEyNjUsIDAuODIxOTc2LCAxLjYxNzM1LCAyLjQxMTUsIDQuMjY5NjIsIDUuMzMwODQiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjEzOTg5LCAwLjIzNjk4LCAwLjQzODA5MywgMC43NzEyLCAxLjEwNDMxLCAxLjg4MTgyLCAyLjMyNTc5IiwgXAotICAgICAgICAgICIwLjIyNDIwNSwgMC4yNDcxOTUsIDAuNDQ4MzIzLCAwLjc4MTQzOCwgMS4xMTQzNywgMS44OTIwMSwgMi4zMzY1MyIsIFwKLSAgICAgICAgICAiMC4yMzY5OTcsIDAuMjU5OTkyLCAwLjQ2MTEyOSwgMC43OTQxNTUsIDEuMTI3MTksIDEuOTA0NjQsIDIuMzQ5MjUiLCBcCi0gICAgICAgICAgIjAuMjQ5OTE5LCAwLjI3MjkxMiwgMC40NzQwNTQsIDAuODA3MDg0LCAxLjE0MDEyLCAxLjkxNzY5LCAyLjM2MjE0IiwgXAotICAgICAgICAgICIwLjI2MjQzLCAwLjI4NTQzMSwgMC40ODY1NTUsIDAuODE5NjYsIDEuMTUyNjYsIDEuOTMwMjgsIDIuMzc1MDMiLCBcCi0gICAgICAgICAgIjAuMjgyNDM5LCAwLjMwNTQyMSwgMC41MDY1MzgsIDAuODM5NjcsIDEuMTcyNjQsIDEuOTUwMjQsIDIuMzk0NjUiLCBcCi0gICAgICAgICAgIjAuMjk4NjMyLCAwLjMyMTYwNCwgMC41MjI3MywgMC44NTU4NTEsIDEuMTg4ODksIDEuOTY2NTgsIDIuNDEwNjYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjU0MDUyLCAwLjI5NjE1OSwgMC42ODM2ODIsIDEuMzQyMjYsIDEuOTk2NjcsIDMuNTQyMTYsIDQuNDIxOTMiLCBcCi0gICAgICAgICAgIjAuMjUzOTY5LCAwLjI5NjA5NiwgMC42ODM2NCwgMS4zNDIyNiwgMi4wMDMzNywgMy41NDE3OSwgNC40MjA4OSIsIFwKLSAgICAgICAgICAiMC4yNTM4MjksIDAuMjk1OTczLCAwLjY4MzU2OCwgMS4zNDIxMiwgMi4wMDMzNywgMy41NDU5NCwgNC40MjIwNCIsIFwKLSAgICAgICAgICAiMC4yNTM2MjEsIDAuMjk1Nzk3LCAwLjY4MzI1OSwgMS4zNDA2OCwgMi4wMDMzNywgMy41NDQxNiwgNC40MjIwMiIsIFwKLSAgICAgICAgICAiMC4yNTMzMjMsIDAuMjk1NTY2LCAwLjY4MzUyNiwgMS4zNDIxOSwgMi4wMDMzNywgMy41NDY1NywgNC40MTc4NCIsIFwKLSAgICAgICAgICAiMC4yNTI5NjYsIDAuMjk1MjEyLCAwLjY4MzMyMywgMS4zNDIwMywgMi4wMDMzNCwgMy41NDEwNSwgNC40MjIwNCIsIFwKLSAgICAgICAgICAiMC4yNTI3NTIsIDAuMjk1MzE0LCAwLjY4MzEyOCwgMS4zNDIwMSwgMi4wMDMzOCwgMy41NDcxMSwgNC40MjEzMSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yNTc1ODQsIDAuMjg0MzE5LCAwLjUyMDk1MywgMC45MTQzMDIsIDEuMzA3OTksIDIuMjI2MTQsIDIuNzUwNjkiLCBcCi0gICAgICAgICAgIjAuMjY5NjYxLCAwLjI5NjQ2NywgMC41MzMwODUsIDAuOTI2MzI3LCAxLjMyMDE2LCAyLjIzODI5LCAyLjc2MjY3IiwgXAotICAgICAgICAgICIwLjI4NDI5MywgMC4zMTEwMjMsIDAuNTQ3NjUyLCAwLjk0MTAxLCAxLjMzNDM4LCAyLjI1MywgMi43NzY2NyIsIFwKLSAgICAgICAgICAiMC4yOTgyMTYsIDAuMzI0OTM2LCAwLjU2MTU3MSwgMC45NTQ5MzcsIDEuMzQ4NjQsIDIuMjY2NjcsIDIuNzkxMTYiLCBcCi0gICAgICAgICAgIjAuMzEwNzExLCAwLjMzNzQ1MywgMC41NzQxMDEsIDAuOTY3NDAyLCAxLjM2MTIzLCAyLjI3OTQ5LCAyLjgwMzIzIiwgXAotICAgICAgICAgICIwLjMyODE1LCAwLjM1NDg5NywgMC41OTE0OTMsIDAuOTg0ODY0LCAxLjM3ODcxLCAyLjI5NjgzLCAyLjgyMDY4IiwgXAotICAgICAgICAgICIwLjM0MTkwNCwgMC4zNjg2NSwgMC42MDUyMzUsIDAuOTk4NjI0LCAxLjM5MjEzLCAyLjMxMDI1LCAyLjgzNDQ5Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI5OTYwMSwgMC4zNTA2NDcsIDAuODIxNTkzLCAxLjYxNzE5LCAyLjQxNDY3LCA0LjI2OTU3LCA1LjMzMjI1IiwgXAotICAgICAgICAgICIwLjI5OTYzLCAwLjM1MDY5NCwgMC44MjE2MjEsIDEuNjE3MTgsIDIuNDE1MzcsIDQuMjY5NTEsIDUuMzMyNCIsIFwKLSAgICAgICAgICAiMC4yOTk2MiwgMC4zNTA4MjQsIDAuODIwMjk0LCAxLjYxNzE1LCAyLjQxNTcsIDQuMjY5NjQsIDUuMzM0MiIsIFwKLSAgICAgICAgICAiMC4yOTk0NzYsIDAuMzUwNzkxLCAwLjgyMTUzLCAxLjYxNzIxLCAyLjQwOTc3LCA0LjI2OTcxLCA1LjMzMjc3IiwgXAotICAgICAgICAgICIwLjI5OTQ2MiwgMC4zNTA3ODMsIDAuODIxNTQ4LCAxLjYxNzE3LCAyLjQxNDYzLCA0LjI2OTc3LCA1LjMzMTQyIiwgXAotICAgICAgICAgICIwLjI5OTM2LCAwLjM1MDQzMywgMC44MjE1NTgsIDEuNjE3MTMsIDIuNDA5NjEsIDQuMjc2NTMsIDUuMzMzNTUiLCBcCi0gICAgICAgICAgIjAuMjk5MzI4LCAwLjM1MDU3NCwgMC44MjEzMDYsIDEuNjE3MDksIDIuNDE1NjQsIDQuMjcyOSwgNS4zMzExNyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMzE2MjUsIDAuMjU0NzUyLCAwLjQ1NjM2NSwgMC43ODk0NzcsIDEuMTIyNjQsIDEuOTAwMzgsIDIuMzQ0NjkiLCBcCi0gICAgICAgICAgIjAuMjQzNzg0LCAwLjI2NjkyNiwgMC40Njg1NjEsIDAuODAxNjkyLCAxLjEzNDc0LCAxLjkxMTg3LCAyLjM1NjEzIiwgXAotICAgICAgICAgICIwLjI1OTMsIDAuMjgyNDk4LCAwLjQ4NDExNiwgMC44MTcyMzMsIDEuMTUwMjUsIDEuOTI3NTcsIDIuMzczMDMiLCBcCi0gICAgICAgICAgIjAuMjc0MTM5LCAwLjI5NzMyNiwgMC40OTg5NDksIDAuODMyMDEzLCAxLjE2NTA3LCAxLjk0MjMzLCAyLjM4NzQ5IiwgXAotICAgICAgICAgICIwLjI4ODE5MywgMC4zMTEzOTEsIDAuNTEzMDExLCAwLjg0NjEzOCwgMS4xNzkxNSwgMS45NTY5MiwgMi40MDE4OSIsIFwKLSAgICAgICAgICAiMC4zMDgyODEsIDAuMzMxNDcyLCAwLjUzMzA5NSwgMC44NjYyMzMsIDEuMTk5MjEsIDEuOTc2NDUsIDIuNDIxOTQiLCBcCi0gICAgICAgICAgIjAuMzI0MDMxLCAwLjM0NzE3MSwgMC41NDg3OTMsIDAuODgxOTI4LCAxLjIxNDk1LCAxLjk5MjQ4LCAyLjQzNjY3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI1NTYxNCwgMC4yOTc3MDgsIDAuNjg0Nzk3LCAxLjM0MjY4LCAyLjAwMTA1LCAzLjUzOTQ0LCA0LjQyMjI3IiwgXAotICAgICAgICAgICIwLjI1NTY0MiwgMC4yOTc2NzUsIDAuNjg0NjI4LCAxLjM0MjcxLCAyLjAwMzcxLCAzLjU0OTIsIDQuNDIxNDMiLCBcCi0gICAgICAgICAgIjAuMjU1NjM2LCAwLjI5Nzc0OSwgMC42ODQ2NDMsIDEuMzQyNywgMi4wMDM1OSwgMy41NDYyMSwgNC40MTg0NSIsIFwKLSAgICAgICAgICAiMC4yNTU1OSwgMC4yOTc2MzMsIDAuNjg0OTM2LCAxLjM0Mjc3LCAyLjAwMzU3LCAzLjU0OTI1LCA0LjQxODUyIiwgXAotICAgICAgICAgICIwLjI1NTQ5LCAwLjI5NzYyLCAwLjY4NDU2MywgMS4zNDI2OSwgMi4wMDM1OSwgMy41NDE5MSwgNC40MTgwNyIsIFwKLSAgICAgICAgICAiMC4yNTUzNiwgMC4yOTc1MDIsIDAuNjg0NTEzLCAxLjM0MjY4LCAxLjk5OTk4LCAzLjU0OTIyLCA0LjQyMTY2IiwgXAotICAgICAgICAgICIwLjI1NTM2MywgMC4yOTczOTQsIDAuNjg0NDk2LCAxLjM0MjY2LCAyLjAwMzU4LCAzLjU0NTYzLCA0LjQyMDE2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA3NDg3LCAwLjAwNzQ5LCAwLjAwNzQ5OSwgMC4wMDc1MDMsIDAuMDA3NTA1LCAwLjAwNzUwNywgMC4wMDc1MDciLCBcCi0gICAgICAgICAgIjAuMDA3NDc4LCAwLjAwNzQ4LCAwLjAwNzQ4OSwgMC4wMDc0OTQsIDAuMDA3NDk1LCAwLjAwNzQ5NywgMC4wMDc0OTciLCBcCi0gICAgICAgICAgIjAuMDA3NDcsIDAuMDA3NDcyLCAwLjAwNzQ4MSwgMC4wMDc0ODYsIDAuMDA3NDg3LCAwLjAwNzQ4OSwgMC4wMDc0ODkiLCBcCi0gICAgICAgICAgIjAuMDA3NDY0LCAwLjAwNzQ2NiwgMC4wMDc0NzUsIDAuMDA3NDgsIDAuMDA3NDgxLCAwLjAwNzQ4MywgMC4wMDc0ODMiLCBcCi0gICAgICAgICAgIjAuMDA3NDU4LCAwLjAwNzQ2LCAwLjAwNzQ2OSwgMC4wMDc0NzQsIDAuMDA3NDc1LCAwLjAwNzQ3NywgMC4wMDc0NzciLCBcCi0gICAgICAgICAgIjAuMDA3NDUyLCAwLjAwNzQ1NCwgMC4wMDc0NjMsIDAuMDA3NDY4LCAwLjAwNzQ2OSwgMC4wMDc0NzEsIDAuMDA3NDcxIiwgXAotICAgICAgICAgICIwLjAwNzQ0OSwgMC4wMDc0NTEsIDAuMDA3NDYxLCAwLjAwNzQ2NSwgMC4wMDc0NjcsIDAuMDA3NDY4LCAwLjAwNzQ2OSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNzQ1LCAwLjAwNzQ1MiwgMC4wMDc0NjEsIDAuMDA3NDY1LCAwLjAwNzQ2NywgMC4wMDc0NjgsIDAuMDA3NDY4IiwgXAotICAgICAgICAgICIwLjAwNzQzNiwgMC4wMDc0MzgsIDAuMDA3NDQ3LCAwLjAwNzQ1MSwgMC4wMDc0NTIsIDAuMDA3NDUzLCAwLjAwNzQ1NCIsIFwKLSAgICAgICAgICAiMC4wMDc0MjUsIDAuMDA3NDI3LCAwLjAwNzQzNiwgMC4wMDc0NCwgMC4wMDc0NDEsIDAuMDA3NDQzLCAwLjAwNzQ0MyIsIFwKLSAgICAgICAgICAiMC4wMDc0MTcsIDAuMDA3NDE5LCAwLjAwNzQyOCwgMC4wMDc0MzIsIDAuMDA3NDM0LCAwLjAwNzQzNSwgMC4wMDc0MzUiLCBcCi0gICAgICAgICAgIjAuMDA3NDExLCAwLjAwNzQxMywgMC4wMDc0MjIsIDAuMDA3NDI2LCAwLjAwNzQyNywgMC4wMDc0MjksIDAuMDA3NDI5IiwgXAotICAgICAgICAgICIwLjAwNzQwMywgMC4wMDc0MDUsIDAuMDA3NDE0LCAwLjAwNzQxOCwgMC4wMDc0MTksIDAuMDA3NDIsIDAuMDA3NDIxIiwgXAotICAgICAgICAgICIwLjAwNzM5NywgMC4wMDczOTksIDAuMDA3NDA4LCAwLjAwNzQxMiwgMC4wMDc0MTMsIDAuMDA3NDE1LCAwLjAwNzQxNSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjExOCwgMC4wMDYxMjEsIDAuMDA2MTI4LCAwLjAwNjEzMSwgMC4wMDYxMzMsIDAuMDA2MTM0LCAwLjAwNjEzNCIsIFwKLSAgICAgICAgICAiMC4wMDYxMTcsIDAuMDA2MTIsIDAuMDA2MTI3LCAwLjAwNjEzMSwgMC4wMDYxMzIsIDAuMDA2MTMzLCAwLjAwNjEzNCIsIFwKLSAgICAgICAgICAiMC4wMDYxMywgMC4wMDYxMzIsIDAuMDA2MTQsIDAuMDA2MTQ0LCAwLjAwNjE0NSwgMC4wMDYxNDYsIDAuMDA2MTQ3IiwgXAotICAgICAgICAgICIwLjAwNjE0MiwgMC4wMDYxNDQsIDAuMDA2MTUyLCAwLjAwNjE1NSwgMC4wMDYxNTcsIDAuMDA2MTU4LCAwLjAwNjE1OCIsIFwKLSAgICAgICAgICAiMC4wMDYxNTUsIDAuMDA2MTU3LCAwLjAwNjE2NSwgMC4wMDYxNjksIDAuMDA2MTcsIDAuMDA2MTcxLCAwLjAwNjE3MiIsIFwKLSAgICAgICAgICAiMC4wMDYxNzYsIDAuMDA2MTc4LCAwLjAwNjE4NiwgMC4wMDYxOSwgMC4wMDYxOTIsIDAuMDA2MTk0LCAwLjAwNjE5NCIsIFwKLSAgICAgICAgICAiMC4wMDYyMDQsIDAuMDA2MjA2LCAwLjAwNjIxNSwgMC4wMDYyMTgsIDAuMDA2MjIsIDAuMDA2MjIyLCAwLjAwNjIyMiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDc5NywgMC4wMDQ3OTksIDAuMDA0ODA3LCAwLjAwNDgxMSwgMC4wMDQ4MTIsIDAuMDA0ODEyLCAwLjAwNDgxMiIsIFwKLSAgICAgICAgICAiMC4wMDQ3OCwgMC4wMDQ3ODIsIDAuMDA0NzksIDAuMDA0NzkzLCAwLjAwNDc5NCwgMC4wMDQ3OTUsIDAuMDA0Nzk2IiwgXAotICAgICAgICAgICIwLjAwNDc4LCAwLjAwNDc4MiwgMC4wMDQ3OSwgMC4wMDQ3OTMsIDAuMDA0Nzk0LCAwLjAwNDc5NiwgMC4wMDQ3OTYiLCBcCi0gICAgICAgICAgIjAuMDA0NzksIDAuMDA0NzkyLCAwLjAwNDgsIDAuMDA0ODAzLCAwLjAwNDgwNSwgMC4wMDQ4MDYsIDAuMDA0ODA2IiwgXAotICAgICAgICAgICIwLjAwNDc5NywgMC4wMDQ3OTksIDAuMDA0ODA3LCAwLjAwNDgxLCAwLjAwNDgxMiwgMC4wMDQ4MTMsIDAuMDA0ODE0IiwgXAotICAgICAgICAgICIwLjAwNDgxNiwgMC4wMDQ4MTgsIDAuMDA0ODI3LCAwLjAwNDgzMSwgMC4wMDQ4MzIsIDAuMDA0ODMzLCAwLjAwNDgzNCIsIFwKLSAgICAgICAgICAiMC4wMDQ4NDQsIDAuMDA0ODQ2LCAwLjAwNDg1NCwgMC4wMDQ4NTgsIDAuMDA0ODYsIDAuMDA0ODYxLCAwLjAwNDg2MSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjc2NywgMC4wMDI3NjgsIDAuMDAyNzczLCAwLjAwMjc3NSwgMC4wMDI3NzUsIDAuMDAyNzc1LCAwLjAwMjc3NSIsIFwKLSAgICAgICAgICAiMC4wMDI3NzIsIDAuMDAyNzczLCAwLjAwMjc3OCwgMC4wMDI3OCwgMC4wMDI3OCwgMC4wMDI3ODEsIDAuMDAyNzgxIiwgXAotICAgICAgICAgICIwLjAwMjc4OSwgMC4wMDI3OSwgMC4wMDI3OTUsIDAuMDAyNzk3LCAwLjAwMjc5OCwgMC4wMDI3OTgsIDAuMDAyNzk4IiwgXAotICAgICAgICAgICIwLjAwMjgwNiwgMC4wMDI4MDgsIDAuMDAyODE0LCAwLjAwMjgxNSwgMC4wMDI4MTYsIDAuMDAyODE2LCAwLjAwMjgxNyIsIFwKLSAgICAgICAgICAiMC4wMDI4MjMsIDAuMDAyODI1LCAwLjAwMjgzLCAwLjAwMjgzMiwgMC4wMDI4MzQsIDAuMDAyODM0LCAwLjAwMjgzNSIsIFwKLSAgICAgICAgICAiMC4wMDI4NDksIDAuMDAyODUsIDAuMDAyODU2LCAwLjAwMjg1OSwgMC4wMDI4NiwgMC4wMDI4NjEsIDAuMDAyODYxIiwgXAotICAgICAgICAgICIwLjAwMjg2LCAwLjAwMjg2MSwgMC4wMDI4NjcsIDAuMDAyODcsIDAuMDAyODcxLCAwLjAwMjg3MiwgMC4wMDI4NzIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDIyMDIsIDAuMDAyMjA0LCAwLjAwMjIwOCwgMC4wMDIyMDksIDAuMDAyMjEsIDAuMDAyMjExLCAwLjAwMjIxMSIsIFwKLSAgICAgICAgICAiMC4wMDIxOTMsIDAuMDAyMTk0LCAwLjAwMjE5OSwgMC4wMDIyMDEsIDAuMDAyMjAxLCAwLjAwMjIwMiwgMC4wMDIyMDIiLCBcCi0gICAgICAgICAgIjAuMDAyMjEsIDAuMDAyMjEyLCAwLjAwMjIxNiwgMC4wMDIyMTgsIDAuMDAyMjE5LCAwLjAwMjIxOSwgMC4wMDIyMiIsIFwKLSAgICAgICAgICAiMC4wMDIyMjMsIDAuMDAyMjI1LCAwLjAwMjIyOSwgMC4wMDIyMzEsIDAuMDAyMjMyLCAwLjAwMjIzMywgMC4wMDIyMzMiLCBcCi0gICAgICAgICAgIjAuMDAyMjQyLCAwLjAwMjI0MywgMC4wMDIyNDgsIDAuMDAyMjUsIDAuMDAyMjUxLCAwLjAwMjI1MiwgMC4wMDIyNTIiLCBcCi0gICAgICAgICAgIjAuMDAyMjY2LCAwLjAwMjI2OCwgMC4wMDIyNzMsIDAuMDAyMjc2LCAwLjAwMjI3NiwgMC4wMDIyNzcsIDAuMDAyMjc3IiwgXAotICAgICAgICAgICIwLjAwMjI4OSwgMC4wMDIyOTEsIDAuMDAyMjk2LCAwLjAwMjI5OSwgMC4wMDIzLCAwLjAwMjMsIDAuMDAyMzAxIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogQU9JMzFYNCAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChBT0kzMVg0KSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMzYxNzYxOwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAyNzkzNTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDI3ODA2NjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDI3OTM1OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTIyNSwgMC4wMDEyMjMsIDAuMDAxMjIzLCAwLjAwMTIyMiwgMC4wMDEyMjMsIDAuMDAxMjIzLCAwLjAwMTIyMyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTIyNiwgMC4wMDEyMjcsIDAuMDAxMjI4LCAwLjAwMTIyOCwgMC4wMDEyMjcsIDAuMDAxMjI4LCAwLjAwMTIyOCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQTEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMjgwMjkzOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMjc5MDI1OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMjgwMjkzOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTIyNSwgMC4wMDEyMjQsIDAuMDAxMjIzLCAwLjAwMTIyMywgMC4wMDEyMjMsIDAuMDAxMjIyLCAwLjAwMTIyMiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTIyNiwgMC4wMDEyMjcsIDAuMDAxMjI3LCAwLjAwMTIyOCwgMC4wMDEyMjksIDAuMDAxMjI5LCAwLjAwMTIyOSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQTIpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMjgwMTI5OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMjc3NTI4OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMjgwMTI5OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDIyMywgMC4wMDAyMjEsIDAuMDAwMjIxLCAwLjAwMDIyMSwgMC4wMDAyMjEsIDAuMDAwMjIxLCAwLjAwMDIyMSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTM5LCAwLjAwMTM5MSwgMC4wMDEzOTEsIDAuMDAxMzg3LCAwLjAwMTM5MiwgMC4wMDEzOTMsIDAuMDAxMzkyIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAyODIzNDU7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAyODIyMTI7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAyODIzNDU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzAyLCAwLjAwMDMwMiwgMC4wMDAzMDIsIDAuMDAwMzAyLCAwLjAwMDMwMiwgMC4wMDAzMDIsIDAuMDAwMzAyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyNzQzLCAwLjAwMjc0MSwgMC4wMDI3NDIsIDAuMDAyNzQxLCAwLjAwMjc0MSwgMC4wMDI3NDEsIDAuMDAyNzQyIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMTY2MDg1OwotICAgIGZ1bmN0aW9uIDogIighKCgoQTAgQTEpIEEyKStCMCkpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODQ4ODUsIDAuMzUyMzI3LCAwLjYxNzUzOCwgMC44MDY4MjUsIDEuMTA5NDMsIDEuMzczOTEsIDEuNzUyNDMiLCBcCi0gICAgICAgICAgIjAuMDk2NTU4LCAwLjM2NDAzNiwgMC42MjkxNzcsIDAuODE4NTA1LCAxLjEyMTA4LCAxLjM4NTU5LCAxLjc2NDAyIiwgXAotICAgICAgICAgICIwLjExMDk4NiwgMC4zNzg0OSwgMC42NDM2NzgsIDAuODMzMDA5LCAxLjEzNTY0LCAxLjQwMDA2LCAxLjc3ODU3IiwgXAotICAgICAgICAgICIwLjEyNDQwNSwgMC4zOTE5NiwgMC42NTcyMzQsIDAuODQ2NTk3LCAxLjE0ODkxLCAxLjQxMzk3LCAxLjc5MTY0IiwgXAotICAgICAgICAgICIwLjEzNzM1NiwgMC40MDQ5NDQsIDAuNjcwMjE4LCAwLjg1OTUwMiwgMS4xNjIxMSwgMS40MjY1OSwgMS44MDUxMSIsIFwKLSAgICAgICAgICAiMC4xNTc1MTIsIDAuNDI1NDQxLCAwLjY5MDcwOSwgMC44ODAwMTgsIDEuMTgyNiwgMS40NDc0NSwgMS44MjU3IiwgXAotICAgICAgICAgICIwLjE3NDkxMiwgMC40NDIyNzIsIDAuNzA4MTcxLCAwLjg5NzQyMiwgMS4yMDAxMiwgMS40NjQ1OSwgMS44NDI1MiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExOTY2MywgMC42Mzk1NTUsIDEuMTU3OCwgMS41MjgxOCwgMi4xMjE3LCAyLjYzODMxLCAzLjM3OTM1IiwgXAotICAgICAgICAgICIwLjExOTY4MiwgMC42Mzg5MTEsIDEuMTU4LCAxLjUyOTY3LCAyLjEyMDkzLCAyLjYzODIsIDMuMzc5NDkiLCBcCi0gICAgICAgICAgIjAuMTE5ODE4LCAwLjYzOTU2NSwgMS4xNTg4NywgMS41Mjg5NSwgMi4xMjA0LCAyLjYzODI2LCAzLjM3OTMzIiwgXAotICAgICAgICAgICIwLjExOTk4MywgMC42Mzg5NDcsIDEuMTU4ODUsIDEuNTI3OTYsIDIuMTIwMDQsIDIuNjM4NzUsIDMuMzc4NzciLCBcCi0gICAgICAgICAgIjAuMTIxMzkyLCAwLjYzOTQ3NCwgMS4xNTgxNywgMS41Mjk1MiwgMi4xMjE2MiwgMi42MzgzMSwgMy4zNzkzNyIsIFwKLSAgICAgICAgICAiMC4xMjQ5NTUsIDAuNjM5MzcsIDEuMTU4MTIsIDEuNTI4MjUsIDIuMTIyMTksIDIuNjQwODcsIDMuMzc5MTgiLCBcCi0gICAgICAgICAgIjAuMTI5MjQ3LCAwLjYzOTQyNSwgMS4xNTg4NCwgMS41MjgzMywgMi4xMjA2MiwgMi42MzgzMSwgMy4zNzg1Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTQ1ODg2LCAwLjU5NDQwMiwgMS4wMzgzMSwgMS4zNTU0MywgMS44NjE2MywgMi4zMDU0LCAyLjkzODAyIiwgXAotICAgICAgICAgICIwLjE1NzA3NiwgMC42MDU3NiwgMS4wNTAwMiwgMS4zNjY0OCwgMS44NzM4MiwgMi4zMTY2NywgMi45NDk0NSIsIFwKLSAgICAgICAgICAiMC4xNzAzODMsIDAuNjE5MjE4LCAxLjA2MzQ3LCAxLjM4MDMsIDEuODg3MTIsIDIuMzMwNTMsIDIuOTYzMDMiLCBcCi0gICAgICAgICAgIjAuMTgyNzg5LCAwLjYzMTgxMSwgMS4wNzU4LCAxLjM5Mjk2LCAxLjg5OTE4LCAyLjM0Mjk2LCAyLjk3NTYzIiwgXAotICAgICAgICAgICIwLjE5NDg3NSwgMC42NDQwNDUsIDEuMDg4MjEsIDEuNDA0ODgsIDEuOTEyNDgsIDIuMzU1NDQsIDIuOTg3ODYiLCBcCi0gICAgICAgICAgIjAuMjEzNzA2LCAwLjY2Mjk1OSwgMS4xMDcyMSwgMS40MjQ0MSwgMS45MzA1NiwgMi4zNzQzNSwgMy4wMDY5OSIsIFwKLSAgICAgICAgICAiMC4yMjk4MzcsIDAuNjc5MjM5LCAxLjEyMzQ0LCAxLjQ0MDM4LCAxLjk0NzA1LCAyLjM5MDk4LCAzLjAyMzgzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjAyMDc0LCAxLjAzOTg3LCAxLjg3NjcsIDIuNDcxNiwgMy40MjgyMiwgNC4yNTk0OCwgNS40NTMwNiIsIFwKLSAgICAgICAgICAiMC4yMDIwNjcsIDEuMDM5NTcsIDEuODc1MjIsIDIuNDcxMDksIDMuNDI0NjcsIDQuMjU5NjQsIDUuNDUyOTMiLCBcCi0gICAgICAgICAgIjAuMjAxODg5LCAxLjAzOTY2LCAxLjg3NTI5LCAyLjQ3MTQyLCAzLjQyNTAyLCA0LjI1OTY2LCA1LjQ1MzE2IiwgXAotICAgICAgICAgICIwLjIwMTkwMiwgMS4wNDAyNywgMS44NzQ3OCwgMi40NzE1NiwgMy40MjgxOSwgNC4yNTk0NSwgNS40NTI3NiIsIFwKLSAgICAgICAgICAiMC4yMDIxMzksIDEuMDQwNjgsIDEuODc1NjgsIDIuNDcyMjMsIDMuNDI1NDEsIDQuMjU4OTQsIDUuNDUyNzYiLCBcCi0gICAgICAgICAgIjAuMjAzNzA5LCAxLjA0MDQsIDEuODc0MzQsIDIuNDcxMjksIDMuNDIzODgsIDQuMjU5NDQsIDUuNDUyODQiLCBcCi0gICAgICAgICAgIjAuMjA1OTcxLCAxLjAzOTY1LCAxLjg3NDUzLCAyLjQ3MTMyLCAzLjQyNTI3LCA0LjI2MDYxLCA1LjQ1MDg3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkExIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3OTU5MiwgMC4zNDUyNzcsIDAuNjEwMTIyLCAwLjc5ODk4OSwgMS4xMDEzOSwgMS4zNjYzNiwgMS43NDQ3MyIsIFwKLSAgICAgICAgICAiMC4wOTE0MTgsIDAuMzU3MjE4LCAwLjYyMTk2NCwgMC44MTExNDUsIDEuMTEzNjMsIDEuMzc4NSwgMS43NTYyNSIsIFwKLSAgICAgICAgICAiMC4xMDU3NjUsIDAuMzcxNjg0LCAwLjYzNjM5OSwgMC44MjU2NjYsIDEuMTI3ODIsIDEuMzkyNzcsIDEuNzcxMjgiLCBcCi0gICAgICAgICAgIjAuMTE5MTUxLCAwLjM4NTI0NiwgMC42NDk5NTYsIDAuODM5Mjg1LCAxLjE0MTQyLCAxLjQwNjM3LCAxLjc4NDc5IiwgXAotICAgICAgICAgICIwLjEzMjA0NywgMC4zOTg0MjYsIDAuNjYzMjEsIDAuODUyMjk5LCAxLjE1NDYxLCAxLjQxOTg1LCAxLjc5ODA0IiwgXAotICAgICAgICAgICIwLjE1MjM0NiwgMC40MTg1NjIsIDAuNjgzNTMyLCAwLjg3MjU2NSwgMS4xNzUxLCAxLjQzOTcxLCAxLjgxNzg1IiwgXAotICAgICAgICAgICIwLjE2OTMzNywgMC40MzU4MzUsIDAuNzAwOTMyLCAwLjg4OTg2MiwgMS4xOTI1LCAxLjQ1Njg4LCAxLjgzNTcxIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTEyMzYxLCAwLjYzMTI1NiwgMS4xNTA2MSwgMS41MTk1NywgMi4xMTE4NywgMi42MzA2LCAzLjM3MDkiLCBcCi0gICAgICAgICAgIjAuMTEyMzUsIDAuNjMxODk0LCAxLjE1MDQ0LCAxLjUyMDE4LCAyLjExMjc1LCAyLjYzMDU1LCAzLjM3MDk2IiwgXAotICAgICAgICAgICIwLjExMjQ0OCwgMC42MzEyNTcsIDEuMTQ5MzYsIDEuNTE5ODMsIDIuMTExODcsIDIuNjMwNTksIDMuMzcxMzQiLCBcCi0gICAgICAgICAgIjAuMTEyODQ3LCAwLjYzMTI0NSwgMS4xNDkzNiwgMS41MTk3OSwgMi4xMTE4NywgMi42MzA1OSwgMy4zNzE5NCIsIFwKLSAgICAgICAgICAiMC4xMTQ0NDMsIDAuNjMxMTkyLCAxLjE0OTcxLCAxLjUyMDkxLCAyLjExMjI2LCAyLjYzMTI4LCAzLjM3MTA3IiwgXAotICAgICAgICAgICIwLjExODMzNywgMC42MzE4NDYsIDEuMTQ5NTYsIDEuNTE5OTcsIDIuMTEyNjIsIDIuNjMyMTUsIDMuMzcxMTQiLCBcCi0gICAgICAgICAgIjAuMTIzMDY2LCAwLjYzMTM1NywgMS4xNTA1NiwgMS41MjA5MSwgMi4xMTIzOSwgMi42MzAxNywgMy4zNzA5MSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEzOSwgMC41ODc0MTEsIDEuMDMxNDQsIDEuMzQ4MTcsIDEuODU0NjcsIDIuMjk3OTQsIDIuOTMxNTYiLCBcCi0gICAgICAgICAgIjAuMTQ5MTU3LCAwLjU5Nzc4NSwgMS4wNDE3MywgMS4zNTg4OSwgMS44NjYwNCwgMi4zMDg4NiwgMi45NDE0NiIsIFwKLSAgICAgICAgICAiMC4xNjE5NTYsIDAuNjEwNzA5LCAxLjA1NDksIDEuMzcxNTYsIDEuODc4MTUsIDIuMzIyNTcsIDIuOTU0OTIiLCBcCi0gICAgICAgICAgIjAuMTc0MzksIDAuNjIzNDUsIDEuMDY3NDYsIDEuMzg0MjUsIDEuODkxMywgMi4zMzM5MSwgMi45Njc4IiwgXAotICAgICAgICAgICIwLjE4Njk0NCwgMC42MzYxNjIsIDEuMDgwMjUsIDEuMzk3MDEsIDEuOTAzNSwgMi4zNDY3LCAyLjk4MDM3IiwgXAotICAgICAgICAgICIwLjIwNzA2NywgMC42NTY0MjgsIDEuMTAwOTgsIDEuNDE3NTMsIDEuOTI0OTIsIDIuMzY3NiwgMy4wMDA1MiIsIFwKLSAgICAgICAgICAiMC4yMjQ5MjksIDAuNjc0Mjc2LCAxLjExODQyLCAxLjQzNTI3LCAxLjk0MjYyLCAyLjM4NTg0LCAzLjAxODY4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjAyMDYsIDEuMDQwMDMsIDEuODc0NCwgMi40NzIyNywgMy40MjU5NCwgNC4yNjA2MSwgNS40NTEwNiIsIFwKLSAgICAgICAgICAiMC4yMDIwNDYsIDEuMDQwMjQsIDEuODc0OCwgMi40NzE1NiwgMy40MjU2MSwgNC4yNTkzOCwgNS40NTI4OSIsIFwKLSAgICAgICAgICAiMC4yMDIwMzUsIDEuMDM5NTcsIDEuODc1NjksIDIuNDcyMjMsIDMuNDI0NzgsIDQuMjU5MzcsIDUuNDUxMjciLCBcCi0gICAgICAgICAgIjAuMjAyLCAxLjAzOTg2LCAxLjg3NDQxLCAyLjQ3MDYsIDMuNDI1MzEsIDQuMjU4MDIsIDUuNDUwNzciLCBcCi0gICAgICAgICAgIjAuMjAyNTcyLCAxLjA0MDE3LCAxLjg3NDM1LCAyLjQ3MjIyLCAzLjQyNDA1LCA0LjI2NDYxLCA1LjQ1MTMxIiwgXAotICAgICAgICAgICIwLjIwNTI5NSwgMS4wNDAxOCwgMS44NzU4MywgMi40NzEyMywgMy40MjQ2OSwgNC4yNTk0NSwgNS40NTI4OCIsIFwKLSAgICAgICAgICAiMC4yMDk3NzIsIDEuMDQwNzksIDEuODc0NjksIDIuNDcyMjYsIDMuNDI2MjUsIDQuMjU5LCA1LjQ1MDgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTIiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDcyNjg2LCAwLjMzNjg0NywgMC42MDE0MjcsIDAuNzkwMDU5LCAxLjA5MjA3LCAxLjM1NjE5LCAxLjczMzQ4IiwgXAotICAgICAgICAgICIwLjA4NDU5OSwgMC4zNDkxNjcsIDAuNjEzMjc2LCAwLjgwMjQ1MiwgMS4xMDM4NiwgMS4zNjg2OCwgMS43NDUzOSIsIFwKLSAgICAgICAgICAiMC4wOTg4NzMsIDAuMzYzODM4LCAwLjYyNzg0MiwgMC44MTY5MTgsIDEuMTE4NjksIDEuMzgzMzEsIDEuNzYwMjUiLCBcCi0gICAgICAgICAgIjAuMTEyMzA2LCAwLjM3NzE4MiwgMC42NDE0MzgsIDAuODMwNDA3LCAxLjEzMjY1LCAxLjM5NjQ0LCAxLjc3NDkiLCBcCi0gICAgICAgICAgIjAuMTI1MTgxLCAwLjM5MDI4OSwgMC42NTQ4MzQsIDAuODQzMTYxLCAxLjE0NTI0LCAxLjQxMDE1LCAxLjc4NjU0IiwgXAotICAgICAgICAgICIwLjE0NTIwNiwgMC40MTAzODksIDAuNjc0NzEsIDAuODYzNDM1LCAxLjE2NTk0LCAxLjQzMDM3LCAxLjgwNjc2IiwgXAotICAgICAgICAgICIwLjE2MTY5MiwgMC40Mjc4MTgsIDAuNjkyMzQ4LCAwLjg4MTMyNiwgMS4xODMwNiwgMS40NDc2MSwgMS44MjQ2NSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwNDg2NiwgMC42MjIyNDMsIDEuMTQwMjcsIDEuNTE0ODMsIDIuMTAyMTUsIDIuNjI3ODYsIDMuMzgyMjYiLCBcCi0gICAgICAgICAgIjAuMTA0ODY5LCAwLjYyMjkxLCAxLjE0MzUxLCAxLjUxMDE3LCAyLjEwNjM3LCAyLjYyMDAzLCAzLjM2MjI0IiwgXAotICAgICAgICAgICIwLjEwNDcxNiwgMC42MjIyODUsIDEuMTQwOTIsIDEuNTEwMjcsIDIuMTA4MzQsIDIuNjE5OTcsIDMuMzgyMzQiLCBcCi0gICAgICAgICAgIjAuMTA1MzI3LCAwLjYyMjg3MiwgMS4xNDI1NiwgMS41MTUxMSwgMi4xMDE5MiwgMi42Mjc1NCwgMy4zNTk3NiIsIFwKLSAgICAgICAgICAiMC4xMDcwMjgsIDAuNjIyMzIxLCAxLjE0MDA4LCAxLjUxMzI3LCAyLjEwMjk0LCAyLjYxOTUzLCAzLjM3OTI4IiwgXAotICAgICAgICAgICIwLjExMTQ0MywgMC42MjIyODIsIDEuMTQzNDcsIDEuNTE0NDEsIDIuMTAxNzksIDIuNjE5NjMsIDMuMzY5NTIiLCBcCi0gICAgICAgICAgIjAuMTE2NTc4LCAwLjYyNDE4NiwgMS4xNDI1MSwgMS41MTQ3OSwgMi4xMDc5LCAyLjYyMTU0LCAzLjM2OTM2Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTI0OTMsIDAuNTczMjg1LCAxLjAxNzYzLCAxLjMzNDE3LCAxLjg0MTM3LCAyLjI4NDcyLCAyLjkxNzQyIiwgXAotICAgICAgICAgICIwLjEzMzk4NCwgMC41ODI1OTQsIDEuMDI2ODEsIDEuMzQzNjMsIDEuODUwMTMsIDIuMjkzNjUsIDIuOTI2MTQiLCBcCi0gICAgICAgICAgIjAuMTQ0ODA2LCAwLjU5NDY5LCAxLjAzODg2LCAxLjM1NTU2LCAxLjg2MjQ5LCAyLjMwNjMyLCAyLjkzODUiLCBcCi0gICAgICAgICAgIjAuMTU4NTQ5LCAwLjYwNzY5NCwgMS4wNTE4NCwgMS4zNjkxLCAxLjg3NTc0LCAyLjMxODk1LCAyLjk1MTg4IiwgXAotICAgICAgICAgICIwLjE2OTkyNywgMC42MTkxNSwgMS4wNjM0NSwgMS4zODAwNCwgMS44ODczMiwgMi4zMjk4OCwgMi45NjMzOSIsIFwKLSAgICAgICAgICAiMC4xOTA0OTQsIDAuNjM4NzU1LCAxLjA4MzA0LCAxLjM5OTczLCAxLjkwNzE0LCAyLjM1MDE4LCAyLjk4Mjc4IiwgXAotICAgICAgICAgICIwLjIwODA3LCAwLjY1NTkzLCAxLjEwMDEsIDEuNDE3MjQsIDEuOTI0MDQsIDIuMzY3MzIsIDMuMDAwNDgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMDI0NTgsIDEuMDM5MjksIDEuODc1NzksIDIuNDcyMjQsIDMuNDI0NjQsIDQuMjU4OTUsIDUuNDUxMjkiLCBcCi0gICAgICAgICAgIjAuMjAyMTA0LCAxLjAzOTI5LCAxLjg3NTE0LCAyLjQ3MjE0LCAzLjQyNTIzLCA0LjI2MDU1LCA1LjQ1MjU2IiwgXAotICAgICAgICAgICIwLjIwMTc5LCAxLjA0MDc0LCAxLjg3NDM2LCAyLjQ3MjIxLCAzLjQyNjE4LCA0LjI1ODk2LCA1LjQ1Mjc3IiwgXAotICAgICAgICAgICIwLjIwMjA5NSwgMS4wMzk2LCAxLjg3NjAzLCAyLjQ3MjM1LCAzLjQyNTE2LCA0LjI1OTA1LCA1LjQ1MTQ5IiwgXAotICAgICAgICAgICIwLjIwNDAwMywgMS4wMzk3NywgMS44NzUxNywgMi40NzA2NSwgMy40MjQ2MiwgNC4yNjA1NiwgNS40NTEzNyIsIFwKLSAgICAgICAgICAiMC4yMDk5NTksIDEuMDM5NywgMS44NzQ5MywgMi40NzA3MywgMy40MjYwNCwgNC4yNTk0LCA1LjQ1MjgzIiwgXAotICAgICAgICAgICIwLjIxNzE2NiwgMS4wMzk1NywgMS44NzYxNCwgMi40NzE0NywgMy40MjU3NCwgNC4yNjA5NSwgNS40NTEwMSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjYzNDQsIDAuMzMzODYzLCAwLjU5OTAwOSwgMC43ODgzMjEsIDEuMDkwODMsIDEuMzU1NDMsIDEuNzMzOTUiLCBcCi0gICAgICAgICAgIjAuMDc2NDIyLCAwLjM0NDI3OCwgMC42MDk1MzgsIDAuNzk4ODYxLCAxLjEwMTI4LCAxLjM2NjM3LCAxLjc0Mzg0IiwgXAotICAgICAgICAgICIwLjA4OTI0MywgMC4zNTcyMTIsIDAuNjIyNTMxLCAwLjgxMTgsIDEuMTE0MjgsIDEuMzc5MSwgMS43NTY5NSIsIFwKLSAgICAgICAgICAiMC4xMDI4NDksIDAuMzcwMzk1LCAwLjYzNTUxLCAwLjgyNDk5NCwgMS4xMjc1NiwgMS4zOTIyLCAxLjc3MDc0IiwgXAotICAgICAgICAgICIwLjExNjE4MywgMC4zODM0NTMsIDAuNjQ4ODE5LCAwLjgzODEyOSwgMS4xNDA3NSwgMS40MDU3NywgMS43ODM4MiIsIFwKLSAgICAgICAgICAiMC4xMzc5NzEsIDAuNDA0MzA5LCAwLjY2OTY5LCAwLjg1OTAzNywgMS4xNjE2OSwgMS40MjY0LCAxLjgwNDI3IiwgXAotICAgICAgICAgICIwLjE1NTk1NSwgMC40MjI2MTMsIDAuNjg4LCAwLjg3NzM2MiwgMS4xNzk5MSwgMS40NDQ3NCwgMS44MjI0OCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExOTYyMywgMC42MzkwOTIsIDEuMTU4ODYsIDEuNTI5NTUsIDIuMTIwNjIsIDIuNjM4MzIsIDMuMzgyNDMiLCBcCi0gICAgICAgICAgIjAuMTE4Nzk0LCAwLjYzOTA3OSwgMS4xNTc4LCAxLjUyODM1LCAyLjEyMDA5LCAyLjYzODc4LCAzLjM4MjciLCBcCi0gICAgICAgICAgIjAuMTE5NDM1LCAwLjYzOTQxNCwgMS4xNTc4LCAxLjUyODE2LCAyLjEyMDA0LCAyLjY0MDY4LCAzLjM3ODYiLCBcCi0gICAgICAgICAgIjAuMTIyODM1LCAwLjYzODkwMiwgMS4xNTczNSwgMS41MjgxNSwgMi4xMjA2MSwgMi42MzgzNSwgMy4zODI0MSIsIFwKLSAgICAgICAgICAiMC4xMjgwOSwgMC42MzkwOTMsIDEuMTU3OCwgMS41Mjk0OSwgMi4xMjIxOSwgMi42Mzg4LCAzLjM4MTEzIiwgXAotICAgICAgICAgICIwLjEzODY4OCwgMC42Mzg5MTYsIDEuMTU4ODIsIDEuNTI4MTUsIDIuMTIyMTcsIDIuNjM5MDksIDMuMzc4NzYiLCBcCi0gICAgICAgICAgIjAuMTQ5NjY3LCAwLjYzOTc5MSwgMS4xNTg1MiwgMS41Mjc4NiwgMi4xMjA1MywgMi42MzkwMiwgMy4zNzg0OCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzMzM4NywgMC4xODA0OTMsIDAuMzI3NCwgMC40MzIzMjMsIDAuNjAwMjgsIDAuNzQ3MywgMC45NTcwNDIiLCBcCi0gICAgICAgICAgIjAuMDQ1MDQ5LCAwLjE5MjM3MSwgMC4zMzkzNTYsIDAuNDQ0MjM1LCAwLjYxMjIxNCwgMC43NTg5NDQsIDAuOTY4NzciLCBcCi0gICAgICAgICAgIjAuMDYwMTUzLCAwLjIwNjk0OCwgMC4zNTM5NTMsIDAuNDU3MDU5LCAwLjYyNTA4OSwgMC43NzE4OTgsIDAuOTgyMDc0IiwgXAotICAgICAgICAgICIwLjA3NDk1OCwgMC4yMjIxNzIsIDAuMzY4Nzc1LCAwLjQ3Mzc0MSwgMC42NDE4NDcsIDAuNzg4NTY5LCAwLjk5ODY1NCIsIFwKLSAgICAgICAgICAiMC4wODkyOTIsIDAuMjM2NTczLCAwLjM4MzMyMywgMC40ODgyOCwgMC42NTYwNDQsIDAuODAzMTI2LCAxLjAxMDI2IiwgXAotICAgICAgICAgICIwLjEwOTI3MywgMC4yNjEwMjIsIDAuNDA3MTQyLCAwLjUxMTc5OCwgMC42Nzk2NzksIDAuODI2Mzk4LCAxLjAzMjciLCBcCi0gICAgICAgICAgIjAuMTI1MjMzLCAwLjI4MTkxMiwgMC40Mjc5MzcsIDAuNTMyNjI2LCAwLjcwMDExNywgMC44NDY5MzYsIDEuMDU2OCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3MzI4OSwgMC4zNjUyODQsIDAuNjU1NjI3LCAwLjg2MzI5NCwgMS4xOTU3MywgMS40ODY5MywgMS45MDI3NyIsIFwKLSAgICAgICAgICAiMC4wNzM2OTQsIDAuMzY1MjYsIDAuNjU1NjQ5LCAwLjg2MzI2MSwgMS4xOTU4MSwgMS40ODY3LCAxLjkwMjYzIiwgXAotICAgICAgICAgICIwLjA3Nzc3LCAwLjM2NTIyNiwgMC42NTU2MiwgMC44NjMzMSwgMS4xOTU3NiwgMS40ODY3NCwgMS45MDI5IiwgXAotICAgICAgICAgICIwLjA4NDQwMywgMC4zNjUyNTEsIDAuNjU1NTcxLCAwLjg2MzM1NywgMS4xOTU3OCwgMS40ODY2OSwgMS45MDI0MSIsIFwKLSAgICAgICAgICAiMC4wOTI0MTMsIDAuMzY1NTIzLCAwLjY1NTY1OSwgMC44NjMzNjQsIDEuMTk1NzMsIDEuNDg2OTYsIDEuOTAyMzgiLCBcCi0gICAgICAgICAgIjAuMTA3MjUxLCAwLjM2ODM5MiwgMC42NTU2NzYsIDAuODYzMzM0LCAxLjE5NTc5LCAxLjQ4Njc4LCAxLjkwMjQ2IiwgXAotICAgICAgICAgICIwLjEyMTM4NCwgMC4zNzMwNjksIDAuNjU1OTk2LCAwLjg2MzI5MywgMS4xOTU2OCwgMS40ODY2OSwgMS45MDI3MSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMDkwNywgMC4wMTA5MDQsIDAuMDEwOTAyLCAwLjAxMDksIDAuMDEwODk1LCAwLjAxMDg5MywgMC4wMTA4OTEiLCBcCi0gICAgICAgICAgIjAuMDEwODYsIDAuMDEwODYyLCAwLjAxMDg2MiwgMC4wMTA4NjEsIDAuMDEwODU4LCAwLjAxMDg1OCwgMC4wMTA4NTEiLCBcCi0gICAgICAgICAgIjAuMDEwODQsIDAuMDEwODUxLCAwLjAxMDg0OSwgMC4wMTA4NDksIDAuMDEwODQ2LCAwLjAxMDg0NSwgMC4wMTA4NDMiLCBcCi0gICAgICAgICAgIjAuMDEwODI1LCAwLjAxMDg0NCwgMC4wMTA4NDUsIDAuMDEwODQzLCAwLjAxMDg0MSwgMC4wMTA4NDIsIDAuMDEwODM3IiwgXAotICAgICAgICAgICIwLjAxMDgxNywgMC4wMTA4MzksIDAuMDEwODQyLCAwLjAxMDg0LCAwLjAxMDgzOCwgMC4wMTA4MzUsIDAuMDEwODM2IiwgXAotICAgICAgICAgICIwLjAxMDgwNywgMC4wMTA4MzUsIDAuMDEwODM4LCAwLjAxMDgzNywgMC4wMTA4MzcsIDAuMDEwODM0LCAwLjAxMDgzIiwgXAotICAgICAgICAgICIwLjAxMDgxMSwgMC4wMTA4MTgsIDAuMDEwODM1LCAwLjAxMDgzOCwgMC4wMTA4MzYsIDAuMDEwODMzLCAwLjAxMDgzMiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzMDA5LCAwLjAwMzAwNywgMC4wMDMwMDQsIDAuMDAzLCAwLjAwMywgMC4wMDMwMDIsIDAuMDAyOTkyIiwgXAotICAgICAgICAgICIwLjAwMjkzNCwgMC4wMDI5NDcsIDAuMDAyOTQ0LCAwLjAwMjk0NiwgMC4wMDI5NDYsIDAuMDAyOTQzLCAwLjAwMjkzNiIsIFwKLSAgICAgICAgICAiMC4wMDI4ODcsIDAuMDAyOTIxLCAwLjAwMjkyMywgMC4wMDI5MjMsIDAuMDAyOTI0LCAwLjAwMjkyLCAwLjAwMjkxNCIsIFwKLSAgICAgICAgICAiMC4wMDI4NTYsIDAuMDAyOTA4LCAwLjAwMjkxMiwgMC4wMDI5MTIsIDAuMDAyOTEzLCAwLjAwMjkxMiwgMC4wMDI5MDUiLCBcCi0gICAgICAgICAgIjAuMDAyODM0LCAwLjAwMjg5OSwgMC4wMDI5MDgsIDAuMDAyOTA5LCAwLjAwMjkwOSwgMC4wMDI5MSwgMC4wMDI5MDQiLCBcCi0gICAgICAgICAgIjAuMDAyODA0LCAwLjAwMjg4MiwgMC4wMDI4OTUsIDAuMDAyODk4LCAwLjAwMjg5OSwgMC4wMDI5LCAwLjAwMjg5OCIsIFwKLSAgICAgICAgICAiMC4wMDI3ODYsIDAuMDAyODcsIDAuMDAyODg2LCAwLjAwMjg5MSwgMC4wMDI4OTQsIDAuMDAyODk0LCAwLjAwMjg5MyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkExIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwOTIxMSwgMC4wMDkyMTEsIDAuMDA5MjExLCAwLjAwOTIwOCwgMC4wMDkyMTEsIDAuMDA5MjAyLCAwLjAwOTIwMyIsIFwKLSAgICAgICAgICAiMC4wMDkxOTIsIDAuMDA5MjEsIDAuMDA5MjEsIDAuMDA5MjA5LCAwLjAwOTIwOCwgMC4wMDkyMDcsIDAuMDA5MjE0IiwgXAotICAgICAgICAgICIwLjAwOTE2MywgMC4wMDkyMDEsIDAuMDA5MjA1LCAwLjAwOTIwNCwgMC4wMDkyMDUsIDAuMDA5MjA3LCAwLjAwOTIwMiIsIFwKLSAgICAgICAgICAiMC4wMDkxNDUsIDAuMDA5MTk3LCAwLjAwOTE5OSwgMC4wMDkyMDUsIDAuMDA5MjA0LCAwLjAwOTIwNiwgMC4wMDkyMDUiLCBcCi0gICAgICAgICAgIjAuMDA5MTI4LCAwLjAwOTE4OSwgMC4wMDkxOTMsIDAuMDA5MjAyLCAwLjAwOTIwNCwgMC4wMDkyMDMsIDAuMDA5MjA0IiwgXAotICAgICAgICAgICIwLjAwOTEwMSwgMC4wMDkxODMsIDAuMDA5MTk1LCAwLjAwOTE5OSwgMC4wMDkyMDEsIDAuMDA5MiwgMC4wMDkyMDIiLCBcCi0gICAgICAgICAgIjAuMDA5MDg5LCAwLjAwOTE3NCwgMC4wMDkxOTEsIDAuMDA5MTk1LCAwLjAwOTE5OCwgMC4wMDkxOTksIDAuMDA5MTk4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDMwMDksIDAuMDAzMDA4LCAwLjAwMzAwNCwgMC4wMDMwMDMsIDAuMDAyOTk5LCAwLjAwMjk5NSwgMC4wMDI5OTgiLCBcCi0gICAgICAgICAgIjAuMDAyOTM0LCAwLjAwMjk0OCwgMC4wMDI5NDQsIDAuMDAyOTQ3LCAwLjAwMjk0MiwgMC4wMDI5MzQsIDAuMDAyOTM1IiwgXAotICAgICAgICAgICIwLjAwMjg4OCwgMC4wMDI5MjEsIDAuMDAyOTI0LCAwLjAwMjkyMiwgMC4wMDI5MiwgMC4wMDI5MiwgMC4wMDI5MTIiLCBcCi0gICAgICAgICAgIjAuMDAyODU2LCAwLjAwMjkwNywgMC4wMDI5MTMsIDAuMDAyOTEzLCAwLjAwMjkxMywgMC4wMDI5MSwgMC4wMDI5MDUiLCBcCi0gICAgICAgICAgIjAuMDAyODMyLCAwLjAwMjg5NiwgMC4wMDI5MDUsIDAuMDAyOTA2LCAwLjAwMjkwNiwgMC4wMDI5MDQsIDAuMDAyOTAyIiwgXAotICAgICAgICAgICIwLjAwMjgwNCwgMC4wMDI4ODEsIDAuMDAyODk2LCAwLjAwMjg5OCwgMC4wMDI5LCAwLjAwMjg5OSwgMC4wMDI4OTgiLCBcCi0gICAgICAgICAgIjAuMDAyNzg3LCAwLjAwMjg3MSwgMC4wMDI4ODcsIDAuMDAyODkyLCAwLjAwMjg5NSwgMC4wMDI4OTUsIDAuMDAyODkzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTIiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA3NDEzLCAwLjAwNzQyNSwgMC4wMDc0MjUsIDAuMDA3NDI4LCAwLjAwNzQyNiwgMC4wMDc0MjgsIDAuMDA3NDI2IiwgXAotICAgICAgICAgICIwLjAwNzQxLCAwLjAwNzQ2MywgMC4wMDc0NjMsIDAuMDA3NDY0LCAwLjAwNzQ2NSwgMC4wMDc0NjUsIDAuMDA3NDY3IiwgXAotICAgICAgICAgICIwLjAwNzM3OSwgMC4wMDc0NiwgMC4wMDc0NjksIDAuMDA3NDcyLCAwLjAwNzQ3NCwgMC4wMDc0NzYsIDAuMDA3NDc2IiwgXAotICAgICAgICAgICIwLjAwNzM0OSwgMC4wMDc0NTMsIDAuMDA3NDY2LCAwLjAwNzQ3LCAwLjAwNzQ3MywgMC4wMDc0NzUsIDAuMDA3NDc3IiwgXAotICAgICAgICAgICIwLjAwNzMyNSwgMC4wMDc0NDYsIDAuMDA3NDYzLCAwLjAwNzQ2OCwgMC4wMDc0NzMsIDAuMDA3NDc1LCAwLjAwNzQ3NyIsIFwKLSAgICAgICAgICAiMC4wMDcyODgsIDAuMDA3NDMxLCAwLjAwNzQ1NSwgMC4wMDc0NjEsIDAuMDA3NDY5LCAwLjAwNzQ3MiwgMC4wMDc0NzUiLCBcCi0gICAgICAgICAgIjAuMDA3Mjc1LCAwLjAwNzQyMiwgMC4wMDc0NSwgMC4wMDc0NTUsIDAuMDA3NDY4LCAwLjAwNzQ2OSwgMC4wMDc0NzMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzAwOCwgMC4wMDMwMDcsIDAuMDAzMDA0LCAwLjAwMzAwMiwgMC4wMDMwMDMsIDAuMDAyOTg0LCAwLjAwMjk4NSIsIFwKLSAgICAgICAgICAiMC4wMDI5MjQsIDAuMDAyOTQ1LCAwLjAwMjk0NSwgMC4wMDI5NDMsIDAuMDAyOTM2LCAwLjAwMjkzOSwgMC4wMDI5MzQiLCBcCi0gICAgICAgICAgIjAuMDAyODUxLCAwLjAwMjkxNiwgMC4wMDI5MTksIDAuMDAyOTIsIDAuMDAyOTE5LCAwLjAwMjkxMSwgMC4wMDI5MTMiLCBcCi0gICAgICAgICAgIjAuMDAyODM2LCAwLjAwMjkwMiwgMC4wMDI5MDksIDAuMDAyOTEyLCAwLjAwMjkxLCAwLjAwMjkwNywgMC4wMDI5MDciLCBcCi0gICAgICAgICAgIjAuMDAyODA2LCAwLjAwMjg4NywgMC4wMDI4OTksIDAuMDAyOSwgMC4wMDI5MDMsIDAuMDAyOTAyLCAwLjAwMjg5OCIsIFwKLSAgICAgICAgICAiMC4wMDI3ODEsIDAuMDAyODcxLCAwLjAwMjg4OCwgMC4wMDI4OTIsIDAuMDAyODkzLCAwLjAwMjg5NSwgMC4wMDI4OTMiLCBcCi0gICAgICAgICAgIjAuMDAyNzcsIDAuMDAyODU5LCAwLjAwMjg4LCAwLjAwMjg4NSwgMC4wMDI4ODcsIDAuMDAyODg5LCAwLjAwMjg4OSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNzkxLCAwLjAwNzkyNSwgMC4wMDc5MjMsIDAuMDA3OTIyLCAwLjAwNzkyLCAwLjAwNzkxNywgMC4wMDc5MTciLCBcCi0gICAgICAgICAgIjAuMDA3ODQ4LCAwLjAwNzkxLCAwLjAwNzkxNSwgMC4wMDc5MTUsIDAuMDA3OTE2LCAwLjAwNzkxNCwgMC4wMDc5MSIsIFwKLSAgICAgICAgICAiMC4wMDc4MDIsIDAuMDA3ODkzLCAwLjAwNzkwNCwgMC4wMDc5MDksIDAuMDA3OTA3LCAwLjAwNzkwOSwgMC4wMDc5MDQiLCBcCi0gICAgICAgICAgIjAuMDA3Nzc2LCAwLjAwNzg3NywgMC4wMDc4OTUsIDAuMDA3ODk5LCAwLjAwNzkwMSwgMC4wMDc5MDYsIDAuMDA3ODk4IiwgXAotICAgICAgICAgICIwLjAwNzc1NiwgMC4wMDc4NjUsIDAuMDA3ODg2LCAwLjAwNzg5MywgMC4wMDc4OTYsIDAuMDA3ODk4LCAwLjAwNzkwMSIsIFwKLSAgICAgICAgICAiMC4wMDc3MzQsIDAuMDA3ODQ2LCAwLjAwNzg3NCwgMC4wMDc4ODIsIDAuMDA3ODg5LCAwLjAwNzg5MSwgMC4wMDc4OTQiLCBcCi0gICAgICAgICAgIjAuMDA3NzI5LCAwLjAwNzgzMSwgMC4wMDc4NjMsIDAuMDA3ODczLCAwLjAwNzg4NCwgMC4wMDc4ODYsIDAuMDA3ODg5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDAyOTMsIDAuMDAwMzIsIDAuMDAwMzIyLCAwLjAwMDMyMywgMC4wMDAzMjQsIDAuMDAwMzI0LCAwLjAwMDMyNCIsIFwKLSAgICAgICAgICAiMC4wMDAyNDUsIDAuMDAwMzU2LCAwLjAwMDM2OCwgMC4wMDAzNzEsIDAuMDAwMzc1LCAwLjAwMDM3NiwgMC4wMDAzNzciLCBcCi0gICAgICAgICAgIjAuMDAwMTgyLCAwLjAwMDM1MSwgMC4wMDAzNzMsIDAuMDAwMzgyLCAwLjAwMDM4OCwgMC4wMDAzOTEsIDAuMDAwMzk0IiwgXAotICAgICAgICAgICIwLjAwMDEyOSwgMC4wMDAzMzYsIDAuMDAwMzY2LCAwLjAwMDM3NSwgMC4wMDAzODQsIDAuMDAwMzg4LCAwLjAwMDM5MiIsIFwKLSAgICAgICAgICAiMC4wMDAwOTksIDAuMDAwMzIxLCAwLjAwMDM1OSwgMC4wMDAzNzEsIDAuMDAwMzgyLCAwLjAwMDM4NywgMC4wMDAzOTQiLCBcCi0gICAgICAgICAgIjAuMDAwMDY1LCAwLjAwMDI5NywgMC4wMDAzNDQsIDAuMDAwMzYsIDAuMDAwMzc0LCAwLjAwMDM4MiwgMC4wMDAzOSIsIFwKLSAgICAgICAgICAiMC4wMDAwNTEsIDAuMDAwMjc4LCAwLjAwMDMzMiwgMC4wMDAzNSwgMC4wMDAzNjcsIDAuMDAwMzc2LCAwLjAwMDM4NCIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IERGRkhRWDggKgotICogLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoREZGSFFYOCkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjU4NjMyMTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBmZiAoTjMwLFFCSU5UKSB7Ci0gICAgbmV4dF9zdGF0ZSA6ICJEIjsKLSAgICBjbG9ja2VkX29uIDogIkNLIjsKLSAgfQotICBwaW4oQ0spICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDUyOTYxMTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA1Mjk0ODg7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNTI5NjExOwotICAgIGNsb2NrIDogdHJ1ZTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDI2NzIsIDAuMDAyNjYxLCAwLjAwMjY1MSwgMC4wMDI2NDUsIDAuMDAyNjM5LCAwLjAwMjYzMywgMC4wMDI2MyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNjIzLCAwLjAwNjIyMiwgMC4wMDYyMTYsIDAuMDA2MjExLCAwLjAwNjIwNiwgMC4wMDYxOTksIDAuMDA2MTk3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRCI7Ci0gICAgICBzZGZfY29uZCA6ICJEID09IDEnYjAiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMjc1NzM3LCAwLjI4NzcwMiwgMC4zMDI5NDUsIDAuMzE4MjM5LCAwLjMzMzc2MSwgMC4zNTgyMzQsIDAuMzc5NDY1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4yMTkyNDcsIDAuMjMwNTcyLCAwLjI0NTY5NSwgMC4yNjAzOTMsIDAuMjc1MzIyLCAwLjI5ODMsIDAuMzE4NDMyIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihEKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA3NDU4OTk7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNzQzMjcyOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDc0NTg5OTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDIyOTEsIDAuMDAyMjczLCAwLjAwMjI2MiwgMC4wMDIyNTUsIDAuMDAyMjUsIDAuMDAyMjQxLCAwLjAwMjIzNyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjk0NywgMC4wMDI5MzcsIDAuMDAyOTMxLCAwLjAwMjkyNywgMC4wMDI5MjEsIDAuMDAyOTE3LCAwLjAwMjkxNCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAzNzUsIC0wLjAyNjI1LCAtMC4wMTM3NSwgLTAuMDAxMjUsIDAuMDExMjUsIDAuMDI3NSwgMC4wMzYyNSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjAzNzUsIC0wLjAyNSwgLTAuMDEyNSwgMCwgMC4wMTYyNSwgMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjA2MTI1LCAtMC4wNSwgLTAuMDM3NSwgLTAuMDI1LCAtMC4wMTI1LCAtMC4wMDI1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjA3Mzc1LCAtMC4wNjI1LCAtMC4wNSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAxNSwgMCIsIFwKLSAgICAgICAgICAiLTAuMDg2MjUsIC0wLjA3NSwgLTAuMDYyNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wMjc1LCAtMC4wMTI1IiwgXAotICAgICAgICAgICItMC4xMDg3NSwgLTAuMDk3NSwgLTAuMDg1LCAtMC4wNzI1LCAtMC4wNiwgLTAuMDQzNzUsIC0wLjAzNSIsIFwKLSAgICAgICAgICAiLTAuMTIzNzUsIC0wLjExMjUsIC0wLjEsIC0wLjA4NzUsIC0wLjA4MTI1LCAtMC4wNjUsIC0wLjA1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjg3NSwgMC4wOCwgMC4wOTI1LCAwLjExMTI1LCAwLjEyMzc1LCAwLjE0NjI1LCAwLjE2NzUiLCBcCi0gICAgICAgICAgIjAuMDU3NSwgMC4wNjg3NSwgMC4wODEyNSwgMC4wOTM3NSwgMC4xMTI1LCAwLjEzNSwgMC4xNTYyNSIsIFwKLSAgICAgICAgICAiMC4wMzg3NSwgMC4wNTYyNSwgMC4wNjg3NSwgMC4wODEyNSwgMC4xLCAwLjEyMjUsIDAuMTQzNzUiLCBcCi0gICAgICAgICAgIjAuMDMyNSwgMC4wNDM3NSwgMC4wNTYyNSwgMC4wNjg3NSwgMC4wODc1LCAwLjExLCAwLjEzMTI1IiwgXAotICAgICAgICAgICIwLjAyLCAwLjAzMTI1LCAwLjA1LCAwLjA2MjUsIDAuMDc1LCAwLjEwMzc1LCAwLjExODc1IiwgXAotICAgICAgICAgICIwLjAxLCAwLjAyMTI1LCAwLjAzMzc1LCAwLjA0NjI1LCAwLjA2NSwgMC4wODc1LCAwLjEwODc1IiwgXAotICAgICAgICAgICItMC4wMDUsIDAuMDEyNSwgMC4wMjUsIDAuMDM3NSwgMC4wNSwgMC4wNzg3NSwgMC4wOTM3NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODc1LCAwLjA3LCAwLjA1NzUsIDAuMDQ1LCAwLjAzMjUsIDAuMDE2MjUsIDAuMDAxMjUiLCBcCi0gICAgICAgICAgIjAuMDk4NzUsIDAuMDgxMjUsIDAuMDY4NzUsIDAuMDU2MjUsIDAuMDQzNzUsIDAuMDI3NSwgMC4wMTI1IiwgXAotICAgICAgICAgICIwLjExMTI1LCAwLjEsIDAuMDgxMjUsIDAuMDY4NzUsIDAuMDU2MjUsIDAuMDQsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMTIzNzUsIDAuMTEyNSwgMC4wOTM3NSwgMC4wODEyNSwgMC4wNjg3NSwgMC4wNTI1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjEzNjI1LCAwLjEyNSwgMC4xMDYyNSwgMC4wOTM3NSwgMC4wODc1LCAwLjA3MTI1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICIwLjE1ODc1LCAwLjE0NzUsIDAuMTI4NzUsIDAuMTE2MjUsIDAuMTAzNzUsIDAuMDg3NSwgMC4wNzI1IiwgXAotICAgICAgICAgICIwLjE3Mzc1LCAwLjE2MjUsIDAuMTUsIDAuMTM3NSwgMC4xMjUsIDAuMTA4NzUsIDAuMDkzNzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTI1LCAwLjAwMTI1LCAtMC4wMTEyNSwgLTAuMDMsIC0wLjA0ODc1LCAtMC4wNzEyNSwgLTAuMDkyNSIsIFwKLSAgICAgICAgICAiMC4wMjM3NSwgMC4wMTI1LCAwLCAtMC4wMTg3NSwgLTAuMDM3NSwgLTAuMDYsIC0wLjA4MTI1IiwgXAotICAgICAgICAgICIwLjAzNjI1LCAwLjAyNSwgMC4wMTI1LCAtMC4wMDYyNSwgLTAuMDI1LCAtMC4wNDc1LCAtMC4wNjg3NSIsIFwKLSAgICAgICAgICAiMC4wNDg3NSwgMC4wMzc1LCAwLjAyNSwgMC4wMDYyNSwgLTAuMDEyNSwgLTAuMDM1LCAtMC4wNTYyNSIsIFwKLSAgICAgICAgICAiMC4wNjEyNSwgMC4wNSwgMC4wMzEyNSwgMC4wMTg3NSwgMCwgLTAuMDIyNSwgLTAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMDgzNzUsIDAuMDY2MjUsIDAuMDUzNzUsIDAuMDM1LCAwLjAyMjUsIC0wLjAwNjI1LCAtMC4wMjc1IiwgXAotICAgICAgICAgICIwLjA5ODc1LCAwLjA4NzUsIDAuMDY4NzUsIDAuMDU2MjUsIDAuMDM3NSwgMC4wMTUsIC0wLjAxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFEpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMS4wNTM4OTsKLSAgICBmdW5jdGlvbiA6ICJOMzAiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5vbl91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcmlzaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjQ3NzQxLCAwLjMxMzk2OSwgMC4zNzcwMTUsIDAuNDIyMDA4LCAwLjQ5Mzk3MiwgMC41NTY5NDMsIDAuNjQ2OTQiLCBcCi0gICAgICAgICAgIjAuMjU5Njc2LCAwLjMyNTkxMiwgMC4zODg5NzQsIDAuNDMzOTUsIDAuNTA1OTE3LCAwLjU2ODg5MiwgMC42NTg4NjciLCBcCi0gICAgICAgICAgIjAuMjc0Njk0LCAwLjM0MDkyMywgMC40MDM5NjgsIDAuNDQ4OTYyLCAwLjUyMDkyNywgMC41ODM5LCAwLjY3MzgyOSIsIFwKLSAgICAgICAgICAiMC4yOTAxODQsIDAuMzU2NDA5LCAwLjQxOTQ2MywgMC40NjQ0NTUsIDAuNTM2NDIsIDAuNTk5Mzg5LCAwLjY4OTM5MyIsIFwKLSAgICAgICAgICAiMC4zMDU2MjQsIDAuMzcxODU2LCAwLjQzNDkwMSwgMC40Nzk4OTYsIDAuNTUxODYyLCAwLjYxNDgzNywgMC43MDQ4MTQiLCBcCi0gICAgICAgICAgIjAuMzI5OTYzLCAwLjM5NjE5MSwgMC40NTkyMzgsIDAuNTA0MjMxLCAwLjU3NjE5NiwgMC42MzkxNjksIDAuNzI5MTU0IiwgXAotICAgICAgICAgICIwLjM1MTEyLCAwLjQxNzM1MywgMC40ODAzOTgsIDAuNTI1MzkyLCAwLjU5NzM1OSwgMC42NjAzMzQsIDAuNzUwMzEiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzk3MTgsIDAuMTYwOTEsIDAuMjg3MTg5LCAwLjM3ODMwOSwgMC41MjQ1MzEsIDAuNjUyNDM0LCAwLjgzNzIiLCBcCi0gICAgICAgICAgIjAuMDM5NzI2LCAwLjE2MDkxMywgMC4yODczMjksIDAuMzc4MzA1LCAwLjUyNDQ3MSwgMC42NTExNDEsIDAuODM3MTExIiwgXAotICAgICAgICAgICIwLjAzOTczMywgMC4xNjA4OTUsIDAuMjg3Mzc4LCAwLjM3ODMyNCwgMC41MjQ0OTcsIDAuNjUxMTQ4LCAwLjgzNjczNSIsIFwKLSAgICAgICAgICAiMC4wMzk3NjksIDAuMTYwOTE0LCAwLjI4NzE2NywgMC4zNzgzMzMsIDAuNTI0NTAyLCAwLjY1MTIyMiwgMC44MzcyMSIsIFwKLSAgICAgICAgICAiMC4wMzk3LCAwLjE2MDkxMywgMC4yODczNjIsIDAuMzc4MzE2LCAwLjUyNDQ1NiwgMC42NTIyNiwgMC44MzcxMiIsIFwKLSAgICAgICAgICAiMC4wMzk3MTYsIDAuMTYwOTE3LCAwLjI4NzE2MiwgMC4zNzc3NjEsIDAuNTI0NDc1LCAwLjY1MjE2MywgMC44MzQxMTciLCBcCi0gICAgICAgICAgIjAuMDM5NzAyLCAwLjE2MDkxNCwgMC4yODczNiwgMC4zNzgzMjksIDAuNTI0NDU2LCAwLjY1MjI1NSwgMC44MzcxMDUiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yNzU3MzcsIDAuMzUyNzksIDAuNDI3MjU0LCAwLjQ4MDM2NSwgMC41NjUzMjMsIDAuNjM5Njc2LCAwLjc0NTg3OSIsIFwKLSAgICAgICAgICAiMC4yODc3MDIsIDAuMzY0NzUxLCAwLjQzOTIxMSwgMC40OTIzMiwgMC41NzcyNzgsIDAuNjUxNjQ4LCAwLjc1NzgzIiwgXAotICAgICAgICAgICIwLjMwMjk0NSwgMC4zNzk5ODgsIDAuNDU0NDQ5LCAwLjUwNzU1NSwgMC41OTI1MTcsIDAuNjY2ODYyLCAwLjc3MzA2OSIsIFwKLSAgICAgICAgICAiMC4zMTgyMzksIDAuMzk1MjksIDAuNDY5NzU3LCAwLjUyMjg3NSwgMC42MDc4MzksIDAuNjgyMTUzLCAwLjc4ODM0NiIsIFwKLSAgICAgICAgICAiMC4zMzM3NjEsIDAuNDEwODE3LCAwLjQ4NTI3OCwgMC41MzgzODgsIDAuNjIzMzUsIDAuNjk3NjY3LCAwLjgwMzg4MiIsIFwKLSAgICAgICAgICAiMC4zNTgyMzQsIDAuNDM1MjcyLCAwLjUwOTc0MSwgMC41NjI4NTQsIDAuNjQ3ODA3LCAwLjcyMjE2LCAwLjgyODM2NCIsIFwKLSAgICAgICAgICAiMC4zNzk0NjUsIDAuNDU2NTIsIDAuNTMwOTc0LCAwLjU4NDA5LCAwLjY2OTA1NSwgMC43NDMzNjgsIDAuODQ5NTYzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQxNDU5LCAwLjE4MzgwMiwgMC4zMzA5MTksIDAuNDM1OTc2LCAwLjYwNjIxMSwgMC43NTIyOTcsIDAuOTY3MzQiLCBcCi0gICAgICAgICAgIjAuMDQxMzg3LCAwLjE4MzgxNCwgMC4zMzA5MTgsIDAuNDM2MDg0LCAwLjYwNTMzNCwgMC43NTUyNDIsIDAuOTY3MzQiLCBcCi0gICAgICAgICAgIjAuMDQxMzk5LCAwLjE4MzkzMiwgMC4zMzA5MzYsIDAuNDM2MTYsIDAuNjA0NzQ2LCAwLjc1Mzk1MiwgMC45NjczNDUiLCBcCi0gICAgICAgICAgIjAuMDQxNDAzLCAwLjE4MzgwNCwgMC4zMzA1ODQsIDAuNDM2NDQzLCAwLjYwNTk5NywgMC43NTUxMTIsIDAuOTY1MzI4IiwgXAotICAgICAgICAgICIwLjA0MTM5MSwgMC4xODM4LCAwLjMzMDQ4MywgMC40MzY4NzYsIDAuNjA2ODUyLCAwLjc1NTE1MSwgMC45NjczMDkiLCBcCi0gICAgICAgICAgIjAuMDQxMzY2LCAwLjE4Mzc3MywgMC4zMzA3OTYsIDAuNDM2NjM5LCAwLjYwNTIwMiwgMC43NTUxOTEsIDAuOTY3MzM3IiwgXAotICAgICAgICAgICIwLjA0MTQwMywgMC4xODM1NzUsIDAuMzMwNjUzLCAwLjQzNjUzMywgMC42MDU5MjUsIDAuNzU1MTAyLCAwLjk2NDgxMiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMjk2LCAwLjAxMzIwMSwgMC4wMTMyNDgsIDAuMDEzMjYzLCAwLjAxMzI3NSwgMC4wMTMyODMsIDAuMDEzMjg3IiwgXAotICAgICAgICAgICIwLjAxMjk1MiwgMC4wMTMxOSwgMC4wMTMyMzcsIDAuMDEzMjUyLCAwLjAxMzI2NSwgMC4wMTMyNzIsIDAuMDEzMjgyIiwgXAotICAgICAgICAgICIwLjAxMjkzOSwgMC4wMTMxNzgsIDAuMDEzMjI1LCAwLjAxMzIzOSwgMC4wMTMyNTMsIDAuMDEzMjYyLCAwLjAxMzI2NSIsIFwKLSAgICAgICAgICAiMC4wMTI5MjksIDAuMDEzMTY4LCAwLjAxMzIxNSwgMC4wMTMyMjUsIDAuMDEzMjQzLCAwLjAxMzI1LCAwLjAxMzI1NiIsIFwKLSAgICAgICAgICAiMC4wMTI5MTgsIDAuMDEzMTYxLCAwLjAxMzIwOSwgMC4wMTMyMjIsIDAuMDEzMjM3LCAwLjAxMzI0MywgMC4wMTMyNDgiLCBcCi0gICAgICAgICAgIjAuMDEyOTEsIDAuMDEzMTUsIDAuMDEzMTk0LCAwLjAxMzIxMywgMC4wMTMyMjQsIDAuMDEzMjMxLCAwLjAxMzIzNyIsIFwKLSAgICAgICAgICAiMC4wMTI5LCAwLjAxMzE0MywgMC4wMTMxOSwgMC4wMTMyMDUsIDAuMDEzMjE3LCAwLjAxMzIyNSwgMC4wMTMyMyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEzMDIzLCAwLjAxMzM0NywgMC4wMTM0MTcsIDAuMDEzNDQsIDAuMDEzNDYxLCAwLjAxMzQ3MiwgMC4wMTM0ODEiLCBcCi0gICAgICAgICAgIjAuMDEzMDIsIDAuMDEzMzM5LCAwLjAxMzQwNywgMC4wMTM0MjksIDAuMDEzNDQ5LCAwLjAxMzQ2LCAwLjAxMzQ2OSIsIFwKLSAgICAgICAgICAiMC4wMTMwMjUsIDAuMDEzMzMzLCAwLjAxMzM5OSwgMC4wMTM0MjEsIDAuMDEzNDQxLCAwLjAxMzQ1MSwgMC4wMTM0NiIsIFwKLSAgICAgICAgICAiMC4wMTI5OSwgMC4wMTMzMTUsIDAuMDEzMzg1LCAwLjAxMzQwOCwgMC4wMTM0MywgMC4wMTM0NCwgMC4wMTM0NSIsIFwKLSAgICAgICAgICAiMC4wMTI5OTMsIDAuMDEzMzE1LCAwLjAxMzM4NCwgMC4wMTM0MDYsIDAuMDEzNDI3LCAwLjAxMzQzNywgMC4wMTM0NDciLCBcCi0gICAgICAgICAgIjAuMDEyOTkxLCAwLjAxMzMxMiwgMC4wMTMzODEsIDAuMDEzNDAzLCAwLjAxMzQyMywgMC4wMTM0MzQsIDAuMDEzNDQzIiwgXAotICAgICAgICAgICIwLjAxMjk5MywgMC4wMTMzMTcsIDAuMDEzMzg2LCAwLjAxMzQwOSwgMC4wMTM0MywgMC4wMTM0NCwgMC4wMTM0NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBFREZGSFFYNCAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoRURGRkhRWDQpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC40ODIzODk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgZmYgKE4zMCxRQklOVCkgewotICAgIG5leHRfc3RhdGUgOiAiKChFIEQpICsgKCFFICghKCFOMzApKSkpIjsKLSAgICBjbG9ja2VkX29uIDogIkNLIjsKLSAgfQotICBwaW4oQ0spICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYwMzIxNjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MDI4OTY7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjAzMjE2OwotICAgIGNsb2NrIDogdHJ1ZTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDMwMDEsIDAuMDAyOTg4LCAwLjAwMjk3NywgMC4wMDI5NzEsIDAuMDAyOTY0LCAwLjAwMjk1OCwgMC4wMDI5NTciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDU1MTksIDAuMDA1NTExLCAwLjAwNTUwMiwgMC4wMDU0OTYsIDAuMDA1NDk4LCAwLjAwNTUwNCwgMC4wMDU1MDYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFEJkUiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX0VfRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjI2MDc5MSwgMC4yNzI1MjksIDAuMjg3OTU2LCAwLjMwMzI4LCAwLjMxODQzOSwgMC4zNDI3OTYsIDAuMzYzNDgzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4xODg1MywgMC4yMDAxOTUsIDAuMjE0OTY1LCAwLjIyOTkzLCAwLjI0NDQzNSwgMC4yNjcxNTksIDAuMjg1Njk4Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihEKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA4NDg3Njk7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwODQ0OTk1OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDg0ODc2OTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDI5NjYsIDAuMDAyOTQ3LCAwLjAwMjkzOCwgMC4wMDI5MzEsIDAuMDAyOTI2LCAwLjAwMjkyLCAwLjAwMjkxNiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNTYzNiwgMC4wMDU2MjcsIDAuMDA1NjIyLCAwLjAwNTYxOSwgMC4wMDU2MTYsIDAuMDA1NjEyLCAwLjAwNTYxMSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJFIjsKLSAgICAgIHNkZl9jb25kIDogIkUgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMTEyNSwgLTAuMTA3NSwgLTAuMDk1LCAtMC4wODI1LCAtMC4wNzYyNSwgLTAuMDYsIC0wLjA1MTI1IiwgXAotICAgICAgICAgICItMC4xMjM3NSwgLTAuMTE4NzUsIC0wLjEwNjI1LCAtMC4wOTM3NSwgLTAuMDg3NSwgLTAuMDcxMjUsIC0wLjA2MjUiLCBcCi0gICAgICAgICAgIi0wLjE0MjUsIC0wLjEzMTI1LCAtMC4xMTg3NSwgLTAuMTEyNSwgLTAuMSwgLTAuMDgzNzUsIC0wLjA3NSIsIFwKLSAgICAgICAgICAiLTAuMTU1LCAtMC4xNDM3NSwgLTAuMTMxMjUsIC0wLjEyNSwgLTAuMTEyNSwgLTAuMDk2MjUsIC0wLjA4NzUiLCBcCi0gICAgICAgICAgIi0wLjE2NzUsIC0wLjE1NjI1LCAtMC4xNDM3NSwgLTAuMTM3NSwgLTAuMTI1LCAtMC4xMTUsIC0wLjEiLCBcCi0gICAgICAgICAgIi0wLjE5LCAtMC4xNzg3NSwgLTAuMTY2MjUsIC0wLjE2LCAtMC4xNDc1LCAtMC4xMzEyNSwgLTAuMTIyNSIsIFwKLSAgICAgICAgICAiLTAuMjA1LCAtMC4yLCAtMC4xODc1LCAtMC4xNzUsIC0wLjE2ODc1LCAtMC4xNTI1LCAtMC4xNDM3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAxMjUsIC0wLjAwMTI1LCAwLjAxMTI1LCAwLjAyMzc1LCAwLjAzNjI1LCAwLjA1ODc1LCAwLjA3Mzc1IiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDEyNSwgMCwgMC4wMTI1LCAwLjAyNSwgMC4wNDc1LCAwLjA2MjUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMjUsIC0wLjAxMjUsIDAsIDAuMDEyNSwgMC4wMzUsIDAuMDUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAxMjUsIDAsIDAuMDIyNSwgMC4wMzc1IiwgXAotICAgICAgICAgICItMC4wNjEyNSwgLTAuMDUsIC0wLjAzNzUsIC0wLjAyNSwgLTAuMDEyNSwgMC4wMSwgMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjA3NzUsIC0wLjA2NjI1LCAtMC4wNTM3NSwgLTAuMDQxMjUsIC0wLjAyODc1LCAtMC4wMDYyNSwgMC4wMDg3NSIsIFwKLSAgICAgICAgICAiLTAuMDkyNSwgLTAuMDgxMjUsIC0wLjA2ODc1LCAtMC4wNTYyNSwgLTAuMDQzNzUsIC0wLjAyMTI1LCAtMC4wMDYyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiRSI7Ci0gICAgICBzZGZfY29uZCA6ICJFID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE5Mzc1LCAwLjE4MjUsIDAuMTYzNzUsIDAuMTUxMjUsIDAuMTM4NzUsIDAuMTIyNSwgMC4xMDc1IiwgXAotICAgICAgICAgICIwLjIwNSwgMC4xOTM3NSwgMC4xNzUsIDAuMTYyNSwgMC4xNSwgMC4xMzM3NSwgMC4xMTg3NSIsIFwKLSAgICAgICAgICAiMC4yMTc1LCAwLjIwNjI1LCAwLjE4NzUsIDAuMTc1LCAwLjE2MjUsIDAuMTQ2MjUsIDAuMTM3NSIsIFwKLSAgICAgICAgICAiMC4yMywgMC4yMTg3NSwgMC4yMDYyNSwgMC4xODc1LCAwLjE3NSwgMC4xNTg3NSwgMC4xNSIsIFwKLSAgICAgICAgICAiMC4yNDI1LCAwLjIzMTI1LCAwLjIxODc1LCAwLjIsIDAuMTg3NSwgMC4xNzEyNSwgMC4xNjI1IiwgXAotICAgICAgICAgICIwLjI2NSwgMC4yNTM3NSwgMC4yMzUsIDAuMjIyNSwgMC4yMSwgMC4xOTM3NSwgMC4xODUiLCBcCi0gICAgICAgICAgIjAuMjg2MjUsIDAuMjc1LCAwLjI1NjI1LCAwLjI0Mzc1LCAwLjIzMTI1LCAwLjIxNSwgMC4yIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTE4NzUsIDAuMTA3NSwgMC4wOTUsIDAuMDc2MjUsIDAuMDU3NSwgMC4wMzUsIDAuMDEzNzUiLCBcCi0gICAgICAgICAgIjAuMTMsIDAuMTE4NzUsIDAuMTA2MjUsIDAuMDg3NSwgMC4wNjg3NSwgMC4wNDYyNSwgMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMTQyNSwgMC4xMzEyNSwgMC4xMTg3NSwgMC4xLCAwLjA4NzUsIDAuMDU4NzUsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiMC4xNTUsIDAuMTQzNzUsIDAuMTMxMjUsIDAuMTEyNSwgMC4xLCAwLjA3MTI1LCAwLjA1IiwgXAotICAgICAgICAgICIwLjE2NzUsIDAuMTU2MjUsIDAuMTQzNzUsIDAuMTI1LCAwLjEwNjI1LCAwLjA4Mzc1LCAwLjA2MjUiLCBcCi0gICAgICAgICAgIjAuMTksIDAuMTc4NzUsIDAuMTYsIDAuMTQ3NSwgMC4xMjg3NSwgMC4xMDYyNSwgMC4wODUiLCBcCi0gICAgICAgICAgIjAuMjA1LCAwLjE5Mzc1LCAwLjE3NSwgMC4xNjI1LCAwLjE0Mzc1LCAwLjEyMTI1LCAwLjEiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEUpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTYzMzI1OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTYzMjM3OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTYzMzI1OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNTI5OCwgMC4wMDUyOTYsIDAuMDA1MjkzLCAwLjAwNTI4OCwgMC4wMDUyODcsIDAuMDA1MjgxLCAwLjAwNTI3OSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNjA1LCAwLjAwNjAyOCwgMC4wMDYwMDksIDAuMDA1OTk3LCAwLjAwNTk4OCwgMC4wMDU5NzgsIDAuMDA1OTc0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEIjsKLSAgICAgIHNkZl9jb25kIDogIkQgPT0gMSdiMCI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMTEyNSwgLTAuMTAxMjUsIC0wLjA4MjUsIC0wLjA3LCAtMC4wNTEyNSwgLTAuMDI4NzUsIC0wLjAwNzUiLCBcCi0gICAgICAgICAgIi0wLjEyMzc1LCAtMC4xMTI1LCAtMC4wOTM3NSwgLTAuMDgxMjUsIC0wLjA2MjUsIC0wLjA0LCAtMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjEzNjI1LCAtMC4xMjUsIC0wLjExMjUsIC0wLjA5Mzc1LCAtMC4wODEyNSwgLTAuMDU4NzUsIC0wLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjE1NSwgLTAuMTQzNzUsIC0wLjEyNSwgLTAuMTEyNSwgLTAuMDkzNzUsIC0wLjA3MTI1LCAtMC4wNSIsIFwKLSAgICAgICAgICAiLTAuMTY3NSwgLTAuMTU2MjUsIC0wLjEzNzUsIC0wLjEyNSwgLTAuMTEyNSwgLTAuMDksIC0wLjA2ODc1IiwgXAotICAgICAgICAgICItMC4xOSwgLTAuMTc4NzUsIC0wLjE2LCAtMC4xNDc1LCAtMC4xMzUsIC0wLjEwNjI1LCAtMC4wOTEyNSIsIFwKLSAgICAgICAgICAiLTAuMjA1LCAtMC4xOTM3NSwgLTAuMTgxMjUsIC0wLjE2MjUsIC0wLjE1LCAtMC4xMjc1LCAtMC4xMDYyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAsIDAuMDExMjUsIDAuMDIzNzUsIDAuMDMsIDAuMDQyNSwgMC4wNTg3NSwgMC4wNjc1IiwgXAotICAgICAgICAgICItMC4wMTEyNSwgMCwgMC4wMTI1LCAwLjAxODc1LCAwLjAzMTI1LCAwLjA0NzUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAuMDA2MjUsIDAuMDEyNSwgMC4wMzUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzNzUsIC0wLjAxODc1LCAtMC4wMTI1LCAwLCAwLjAxNjI1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNSwgLTAuMDM3NSwgLTAuMDI1LCAtMC4wMTI1LCAwLjAwMzc1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjA3NzUsIC0wLjA3MjUsIC0wLjA2LCAtMC4wNDc1LCAtMC4wMzUsIC0wLjAxODc1LCAtMC4wMSIsIFwKLSAgICAgICAgICAiLTAuMDk4NzUsIC0wLjA4NzUsIC0wLjA3NSwgLTAuMDY4NzUsIC0wLjA1NjI1LCAtMC4wNCwgLTAuMDMxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiRCI7Ci0gICAgICBzZGZfY29uZCA6ICJEID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjEzMTI1LCAtMC4xMiwgLTAuMTA3NSwgLTAuMTAxMjUsIC0wLjA4ODc1LCAtMC4wNzI1LCAtMC4wNjM3NSIsIFwKLSAgICAgICAgICAiLTAuMTQyNSwgLTAuMTMxMjUsIC0wLjExODc1LCAtMC4xMDYyNSwgLTAuMSwgLTAuMDgzNzUsIC0wLjA3NSIsIFwKLSAgICAgICAgICAiLTAuMTU1LCAtMC4xNDM3NSwgLTAuMTMxMjUsIC0wLjEyNSwgLTAuMTEyNSwgLTAuMDk2MjUsIC0wLjA4NzUiLCBcCi0gICAgICAgICAgIi0wLjE2NzUsIC0wLjE1NjI1LCAtMC4xNDM3NSwgLTAuMTM3NSwgLTAuMTI1LCAtMC4xMDg3NSwgLTAuMSIsIFwKLSAgICAgICAgICAiLTAuMTgsIC0wLjE2ODc1LCAtMC4xNTYyNSwgLTAuMTUsIC0wLjEzNzUsIC0wLjEyNzUsIC0wLjExMjUiLCBcCi0gICAgICAgICAgIi0wLjIwMjUsIC0wLjE5MTI1LCAtMC4xNzg3NSwgLTAuMTcyNSwgLTAuMTYsIC0wLjE0Mzc1LCAtMC4xMzUiLCBcCi0gICAgICAgICAgIi0wLjIyMzc1LCAtMC4yMTI1LCAtMC4yLCAtMC4xODc1LCAtMC4xODEyNSwgLTAuMTY1LCAtMC4xNTYyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDI1LCAwLjAzNjI1LCAwLjA0ODc1LCAwLjA2MTI1LCAwLjA4LCAwLjEwMjUsIDAuMTE3NSIsIFwKLSAgICAgICAgICAiMC4wMTM3NSwgMC4wMjUsIDAuMDQzNzUsIDAuMDU2MjUsIDAuMDY4NzUsIDAuMDkxMjUsIDAuMTA2MjUiLCBcCi0gICAgICAgICAgIjAuMDAxMjUsIDAuMDEyNSwgMC4wMzEyNSwgMC4wNDM3NSwgMC4wNTYyNSwgMC4wNzg3NSwgMC4wOTM3NSIsIFwKLSAgICAgICAgICAiLTAuMDExMjUsIDAsIDAuMDE4NzUsIDAuMDMxMjUsIDAuMDQzNzUsIDAuMDY2MjUsIDAuMDgxMjUiLCBcCi0gICAgICAgICAgIi0wLjAxNzUsIC0wLjAwNjI1LCAwLjAwNjI1LCAwLjAxODc1LCAwLjAzMTI1LCAwLjA1Mzc1LCAwLjA2ODc1IiwgXAotICAgICAgICAgICItMC4wMzM3NSwgLTAuMDIyNSwgLTAuMDEsIDAuMDAyNSwgMC4wMTUsIDAuMDM3NSwgMC4wNTI1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDM3NSwgLTAuMDI1LCAtMC4wMTI1LCAwLCAwLjAyMjUsIDAuMDM3NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUQiOwotICAgICAgc2RmX2NvbmQgOiAiRCA9PSAxJ2IwIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNDM3NSwgMC4xMzI1LCAwLjEyLCAwLjEwMTI1LCAwLjA4MjUsIDAuMDYsIDAuMDM4NzUiLCBcCi0gICAgICAgICAgIjAuMTYxMjUsIDAuMTQzNzUsIDAuMTMxMjUsIDAuMTEyNSwgMC4xLCAwLjA3MTI1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICIwLjE3Mzc1LCAwLjE2MjUsIDAuMTQzNzUsIDAuMTMxMjUsIDAuMTEyNSwgMC4wOSwgMC4wNjg3NSIsIFwKLSAgICAgICAgICAiMC4xODYyNSwgMC4xNzUsIDAuMTYyNSwgMC4xNDM3NSwgMC4xMjUsIDAuMTAyNSwgMC4wODEyNSIsIFwKLSAgICAgICAgICAiMC4yMDUsIDAuMTkzNzUsIDAuMTc1LCAwLjE1NjI1LCAwLjE0Mzc1LCAwLjEyMTI1LCAwLjEiLCBcCi0gICAgICAgICAgIjAuMjI3NSwgMC4yMTYyNSwgMC4xOTc1LCAwLjE3ODc1LCAwLjE2NjI1LCAwLjE0Mzc1LCAwLjEyMjUiLCBcCi0gICAgICAgICAgIjAuMjQyNSwgMC4yMzEyNSwgMC4yMTI1LCAwLjIsIDAuMTgxMjUsIDAuMTU4NzUsIDAuMTM3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwNjI1LCAwLjA5NSwgMC4wODI1LCAwLjA3LCAwLjA2Mzc1LCAwLjA0NzUsIDAuMDM4NzUiLCBcCi0gICAgICAgICAgIjAuMTE3NSwgMC4xMDYyNSwgMC4wOTM3NSwgMC4wODc1LCAwLjA3NSwgMC4wNTg3NSwgMC4wNSIsIFwKLSAgICAgICAgICAiMC4xMywgMC4xMTg3NSwgMC4xMTI1LCAwLjEsIDAuMDg3NSwgMC4wNzc1LCAwLjA2MjUiLCBcCi0gICAgICAgICAgIjAuMTQ4NzUsIDAuMTM3NSwgMC4xMjUsIDAuMTEyNSwgMC4xMDYyNSwgMC4wOSwgMC4wODEyNSIsIFwKLSAgICAgICAgICAiMC4xNjEyNSwgMC4xNSwgMC4xMzc1LCAwLjEzMTI1LCAwLjExODc1LCAwLjEwMjUsIDAuMDkzNzUiLCBcCi0gICAgICAgICAgIjAuMTgzNzUsIDAuMTcyNSwgMC4xNiwgMC4xNTM3NSwgMC4xNDEyNSwgMC4xMjUsIDAuMTE2MjUiLCBcCi0gICAgICAgICAgIjAuMTk4NzUsIDAuMTg3NSwgMC4xODEyNSwgMC4xNjg3NSwgMC4xNTYyNSwgMC4xNDYyNSwgMC4xMzEyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiRCI7Ci0gICAgICBzZGZfY29uZCA6ICJEID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE4MTI1LCAwLjE3LCAwLjE1MTI1LCAwLjEzODc1LCAwLjEyNjI1LCAwLjExLCAwLjA5NSIsIFwKLSAgICAgICAgICAiMC4xOTI1LCAwLjE3NSwgMC4xNjI1LCAwLjE1LCAwLjEzNzUsIDAuMTIxMjUsIDAuMTA2MjUiLCBcCi0gICAgICAgICAgIjAuMjA1LCAwLjE5Mzc1LCAwLjE3NSwgMC4xNjI1LCAwLjE1LCAwLjEzMzc1LCAwLjExODc1IiwgXAotICAgICAgICAgICIwLjIxNzUsIDAuMjA2MjUsIDAuMTg3NSwgMC4xNzUsIDAuMTYyNSwgMC4xNDYyNSwgMC4xMzEyNSIsIFwKLSAgICAgICAgICAiMC4yMywgMC4yMTg3NSwgMC4yLCAwLjE4NzUsIDAuMTc1LCAwLjE1ODc1LCAwLjE1IiwgXAotICAgICAgICAgICIwLjI1MjUsIDAuMjQxMjUsIDAuMjIyNSwgMC4yMSwgMC4xOTc1LCAwLjE4MTI1LCAwLjE2NjI1IiwgXAotICAgICAgICAgICIwLjI3Mzc1LCAwLjI1NjI1LCAwLjI0Mzc1LCAwLjIzMTI1LCAwLjIxODc1LCAwLjIwMjUsIDAuMTg3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyNSwgMC4wMTM3NSwgMC4wMDEyNSwgLTAuMDE3NSwgLTAuMDMsIC0wLjA1MjUsIC0wLjA2NzUiLCBcCi0gICAgICAgICAgIjAuMDM2MjUsIDAuMDI1LCAwLjAxMjUsIC0wLjAwNjI1LCAtMC4wMTg3NSwgLTAuMDQxMjUsIC0wLjA2MjUiLCBcCi0gICAgICAgICAgIjAuMDQ4NzUsIDAuMDM3NSwgMC4wMjUsIDAuMDEyNSwgLTAuMDA2MjUsIC0wLjAyODc1LCAtMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4wNjc1LCAwLjA1NjI1LCAwLjAzNzUsIDAuMDI1LCAwLjAwNjI1LCAtMC4wMTYyNSwgLTAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMDgsIDAuMDY4NzUsIDAuMDUsIDAuMDM3NSwgMC4wMjUsIDAuMDAyNSwgLTAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMTAyNSwgMC4wOTEyNSwgMC4wNzI1LCAwLjA2LCAwLjA0MTI1LCAwLjAxODc1LCAwLjAwMzc1IiwgXAotICAgICAgICAgICIwLjExNzUsIDAuMTA2MjUsIDAuMDkzNzUsIDAuMDc1LCAwLjA2MjUsIDAuMDQsIDAuMDE4NzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFEpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC41MTMxODk7Ci0gICAgZnVuY3Rpb24gOiAiTjMwIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBub25fdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJpc2luZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIyOTIxOSwgMC4zNTgyODQsIDAuNDg1Njk2LCAwLjU3NjY5NSwgMC43MjIyNjIsIDAuODQ5Njg3LCAxLjAzMTQ5IiwgXAotICAgICAgICAgICIwLjI0MDk1NCwgMC4zNzAwMjMsIDAuNDk3NDA4LCAwLjU4ODQsIDAuNzMzOTk2LCAwLjg2MTQyNSwgMS4wNDMzMSIsIFwKLSAgICAgICAgICAiMC4yNTYxNjEsIDAuMzg1MjUxLCAwLjUxMjY1NywgMC42MDM2MDUsIDAuNzQ5MTk4LCAwLjg3NjY0NSwgMS4wNTg1NCIsIFwKLSAgICAgICAgICAiMC4yNzE2NTYsIDAuNDAwNzM1LCAwLjUyODEyLCAwLjYxOTExMiwgMC43NjQ3MDcsIDAuODkyMTM4LCAxLjA3NDAyIiwgXAotICAgICAgICAgICIwLjI4NjgxMiwgMC40MTU4OTIsIDAuNTQzMzE2LCAwLjYzNDI0NCwgMC43Nzk4MzMsIDAuOTA3MDI0LCAxLjA4OTEiLCBcCi0gICAgICAgICAgIjAuMzEwOTk2LCAwLjQ0MDA2MSwgMC41Njc0ODMsIDAuNjU4NDMzLCAwLjgwMzk5OSwgMC45MzEzOTEsIDEuMTEzMzkiLCBcCi0gICAgICAgICAgIjAuMzMxNDI3LCAwLjQ2MDQ5MiwgMC41ODc4OSwgMC42Nzg4OCwgMC44MjQ0NjgsIDAuOTUxODk4LCAxLjEzMzc4Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU3ODUsIDAuMzEwNTA3LCAwLjU3MDg4NCwgMC43NTcwMjQsIDEuMDUyMzEsIDEuMzEyMjgsIDEuNjg0ODIiLCBcCi0gICAgICAgICAgIjAuMDU3ODUsIDAuMzEwOTI1LCAwLjU3MDczLCAwLjc1Njg3OCwgMS4wNTI0MSwgMS4zMTIzLCAxLjY4NzU3IiwgXAotICAgICAgICAgICIwLjA1Nzg0NSwgMC4zMTEwMSwgMC41Njk1MzksIDAuNzU2ODI3LCAxLjA1MDY3LCAxLjMxMjE4LCAxLjY4NzY1IiwgXAotICAgICAgICAgICIwLjA1Nzg0MywgMC4zMTA5NDIsIDAuNTcwNzI1LCAwLjc1Njg3NCwgMS4wNTIzNSwgMS4zMTIyNSwgMS42ODc1OSIsIFwKLSAgICAgICAgICAiMC4wNTc4NDMsIDAuMzEwODY5LCAwLjU3MDkxNiwgMC43NTY2MTksIDEuMDUyOCwgMS4zMTQzMSwgMS42ODcxNCIsIFwKLSAgICAgICAgICAiMC4wNTc4NDgsIDAuMzEwOTUsIDAuNTcwOTA1LCAwLjc1Njg0MiwgMS4wNTI4MiwgMS4zMTUyNiwgMS42ODMzIiwgXAotICAgICAgICAgICIwLjA1Nzg1MSwgMC4zMTA5MzIsIDAuNTcwODMyLCAwLjc1NjkyMSwgMS4wNTI0NSwgMS4zMTIwNywgMS42ODc2MSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI2MDc5MSwgMC40MDgwNjQsIDAuNTUzODIyLCAwLjY1NzksIDAuODI0NDkyLCAwLjk3MDIxOSwgMS4xNzgzIiwgXAotICAgICAgICAgICIwLjI3MjUyOSwgMC40MTk4MzksIDAuNTY1NTY3LCAwLjY2OTY3MywgMC44MzYyMzMsIDAuOTgxODcyLCAxLjE5MDEzIiwgXAotICAgICAgICAgICIwLjI4Nzk1NiwgMC40MzUyNjksIDAuNTgwOTkzLCAwLjY4NTA5OCwgMC44NTE2NjcsIDAuOTk3NDExLCAxLjIwNTU5IiwgXAotICAgICAgICAgICIwLjMwMzI4LCAwLjQ1MDU5MSwgMC41OTYzMzMsIDAuNzAwNDA5LCAwLjg2Njk5MywgMS4wMTI3MywgMS4yMjA4MiIsIFwKLSAgICAgICAgICAiMC4zMTg0MzksIDAuNDY1NzIyLCAwLjYxMTUyMywgMC43MTU1NiwgMC44ODIxNTcsIDEuMDI3ODksIDEuMjM2IiwgXAotICAgICAgICAgICIwLjM0Mjc5NiwgMC40OTAwOTUsIDAuNjM1ODM3LCAwLjczOTkwNCwgMC45MDY0NDksIDEuMDUyMjcsIDEuMjYwMzUiLCBcCi0gICAgICAgICAgIjAuMzYzNDgzLCAwLjUxMDc2MSwgMC42NTY1MTksIDAuNzYwNTk5LCAwLjkyNzE5MywgMS4wNzI5MiwgMS4yODEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjExOTUsIDAuMzQ2NTIyLCAwLjYzNjkyNCwgMC44NDM3OSwgMS4xNzUwNSwgMS40NjQxMiwgMS44Nzc0IiwgXAotICAgICAgICAgICIwLjA2MTE3OSwgMC4zNDYxNzMsIDAuNjM1NTI0LCAwLjg0NDA5MywgMS4xNzM0OSwgMS40Njg4NCwgMS44Nzg2NSIsIFwKLSAgICAgICAgICAiMC4wNjExODcsIDAuMzQ1MjY3LCAwLjYzNTQ4MSwgMC44NDQ3MzQsIDEuMTczOTIsIDEuNDYzNTYsIDEuODc2NyIsIFwKLSAgICAgICAgICAiMC4wNjExODIsIDAuMzQ2MjU2LCAwLjYzNjkyNSwgMC44NDQwMDYsIDEuMTczNDgsIDEuNDYzOTEsIDEuODgzNDQiLCBcCi0gICAgICAgICAgIjAuMDYxMTcxLCAwLjM0NjQ2OCwgMC42MzQ3ODgsIDAuODQzOTY5LCAxLjE3NTA0LCAxLjQ2Mzc2LCAxLjg4MzI2IiwgXAotICAgICAgICAgICIwLjA2MTIwNywgMC4zNDYyMjUsIDAuNjM2OTM0LCAwLjg0NDc3MiwgMS4xNzc0OCwgMS40NjQ5NiwgMS44ODMyNiIsIFwKLSAgICAgICAgICAiMC4wNjExODIsIDAuMzQ2NTEzLCAwLjYzNjkyMiwgMC44NDMzNTQsIDEuMTc1NDIsIDEuNDY0MTIsIDEuODgxMzkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDk2MjcsIDAuMDA5NzI5LCAwLjAwOTc0MiwgMC4wMDk3NDYsIDAuMDA5NzQ5LCAwLjAwOTc1MiwgMC4wMDk3NTMiLCBcCi0gICAgICAgICAgIjAuMDA5NjEzLCAwLjAwOTcxNSwgMC4wMDk3MjgsIDAuMDA5NzMxLCAwLjAwOTczNSwgMC4wMDk3MzgsIDAuMDA5NzM4IiwgXAotICAgICAgICAgICIwLjAwOTYsIDAuMDA5NzAyLCAwLjAwOTcxNSwgMC4wMDk3MTksIDAuMDA5NzIyLCAwLjAwOTcyNCwgMC4wMDk3MjQiLCBcCi0gICAgICAgICAgIjAuMDA5NTksIDAuMDA5NjkyLCAwLjAwOTcwNSwgMC4wMDk3MDksIDAuMDA5NzEyLCAwLjAwOTcxNCwgMC4wMDk3MTUiLCBcCi0gICAgICAgICAgIjAuMDA5NTgsIDAuMDA5NjgyLCAwLjAwOTY5NSwgMC4wMDk2OTksIDAuMDA5NzAyLCAwLjAwOTcwNCwgMC4wMDk3MDYiLCBcCi0gICAgICAgICAgIjAuMDA5NTcxLCAwLjAwOTY3MywgMC4wMDk2ODUsIDAuMDA5Njg5LCAwLjAwOTY5MiwgMC4wMDk2OTQsIDAuMDA5Njk3IiwgXAotICAgICAgICAgICIwLjAwOTU2NiwgMC4wMDk2NjgsIDAuMDA5NjgxLCAwLjAwOTY4NSwgMC4wMDk2ODgsIDAuMDA5NjkxLCAwLjAwOTY5MiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA5NTA1LCAwLjAwOTYzOCwgMC4wMDk2NTYsIDAuMDA5NjYsIDAuMDA5NjY1LCAwLjAwOTY2NiwgMC4wMDk2NjkiLCBcCi0gICAgICAgICAgIjAuMDA5NDksIDAuMDA5NjI1LCAwLjAwOTY0MiwgMC4wMDk2NDcsIDAuMDA5NjUxLCAwLjAwOTY1MywgMC4wMDk2NTUiLCBcCi0gICAgICAgICAgIjAuMDA5NDgxLCAwLjAwOTYxNCwgMC4wMDk2MzIsIDAuMDA5NjM3LCAwLjAwOTY0MSwgMC4wMDk2NDMsIDAuMDA5NjQ1IiwgXAotICAgICAgICAgICIwLjAwOTQ3MSwgMC4wMDk2MDcsIDAuMDA5NjI0LCAwLjAwOTYyOSwgMC4wMDk2MzQsIDAuMDA5NjM2LCAwLjAwOTYzOCIsIFwKLSAgICAgICAgICAiMC4wMDk0NzIsIDAuMDA5NjA3LCAwLjAwOTYyNCwgMC4wMDk2MjksIDAuMDA5NjMzLCAwLjAwOTYzNSwgMC4wMDk2MzciLCBcCi0gICAgICAgICAgIjAuMDA5NDc1LCAwLjAwOTYwOCwgMC4wMDk2MjUsIDAuMDA5NjMsIDAuMDA5NjM0LCAwLjAwOTYzNiwgMC4wMDk2MzgiLCBcCi0gICAgICAgICAgIjAuMDA5NDgyLCAwLjAwOTYxOCwgMC4wMDk2MzUsIDAuMDA5NjQsIDAuMDA5NjQ0LCAwLjAwOTY0NSwgMC4wMDk2NDgiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogSU5WWEwgKgotICogLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKElOVlhMKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMDE5MTM1NDsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNTcwMDI7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNTY5ODEzOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDU3MDAyOwotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMDY4MjE5OwotICAgIGZ1bmN0aW9uIDogIighQSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEzNjkxMSwgMC4xNjIyMDQsIDAuMzg5NDM4LCAwLjc2ODI2NiwgMS4xNDc2MiwgMi4wMzE3MiwgMi41MzYyIiwgXAotICAgICAgICAgICIwLjE0ODQ4MSwgMC4xNzM3MDUsIDAuNDAxMjE0LCAwLjc3OTk0MiwgMS4xNTkzMiwgMi4wNDIzNiwgMi41NDc5NiIsIFwKLSAgICAgICAgICAiMC4xNjI4NTIsIDAuMTg4MDQ4LCAwLjQxNDM4OCwgMC43OTMwNzYsIDEuMTcxOTQsIDIuMDU1OTIsIDIuNTYwMzciLCBcCi0gICAgICAgICAgIjAuMTc3NTUzLCAwLjIwMjYzMiwgMC40MjgxNTQsIDAuODA2ODQ0LCAxLjE4NTYzLCAyLjA2OTE0LCAyLjU3NDc4IiwgXAotICAgICAgICAgICIwLjE5MjI1NiwgMC4yMTc0NCwgMC40NDQzMSwgMC44MjExNjUsIDEuMjAwMjQsIDIuMDg0MiwgMi41ODg2MSIsIFwKLSAgICAgICAgICAiMC4yMTYxNTIsIDAuMjQxNDIzLCAwLjQ2NzQ1NCwgMC44NDI5MDEsIDEuMjIyMTMsIDIuMTA1OTEsIDIuNjEwNzciLCBcCi0gICAgICAgICAgIjAuMjM2ODMsIDAuMjYyMDg2LCAwLjQ4NzY3NywgMC44NjMwMTEsIDEuMjQxNTUsIDIuMTI2NzEsIDIuNjMwMDIiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjY4NTAyLCAwLjMxOTg3OSwgMC43ODA1MSwgMS41NDg0NiwgMi4zMTczOSwgNC4xMDk2OCwgNS4xMzMyOCIsIFwKLSAgICAgICAgICAiMC4yNjg1MTUsIDAuMzIwNDI1LCAwLjc4MDg2NSwgMS41NDgzNiwgMi4zMTY4MSwgNC4xMDg5LCA1LjEzMTIyIiwgXAotICAgICAgICAgICIwLjI2ODU1NiwgMC4zMjA1MywgMC43ODAzMTksIDEuNTQ5NTQsIDIuMzE2NCwgNC4xMDgxNiwgNS4xMzA3MSIsIFwKLSAgICAgICAgICAiMC4yNjg5NzYsIDAuMzIwMzk1LCAwLjc4MTE3MiwgMS41NTE4NiwgMi4zMTc5MiwgNC4xMDcyLCA1LjEzNDg3IiwgXAotICAgICAgICAgICIwLjI3MTMzNSwgMC4zMjE1NDEsIDAuNzgwNDU4LCAxLjU0OTEsIDIuMzE3MzYsIDQuMTA3NDIsIDUuMTMyNTgiLCBcCi0gICAgICAgICAgIjAuMjc2NDk2LCAwLjMyNTczNCwgMC43ODAyOTcsIDEuNTQ4MDMsIDIuMzE2MjMsIDQuMTA3OTQsIDUuMTM1NDIiLCBcCi0gICAgICAgICAgIjAuMjgzMjkyLCAwLjMzMDg5MiwgMC43ODAyOTcsIDEuNTQ4ODMsIDIuMzE1NTYsIDQuMTA5OTMsIDUuMTMwODYiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTYxMDk0LCAwLjE5MDc4NiwgMC40NTgxODEsIDAuOTAzOTE5LCAxLjM0OTIsIDIuMzg4ODEsIDIuOTgyODUiLCBcCi0gICAgICAgICAgIjAuMTcyOTM0LCAwLjIwMjc4MSwgMC40NzAzMSwgMC45MTU4NDEsIDEuMzYxMzgsIDIuNDAxMTQsIDIuOTk1MDQiLCBcCi0gICAgICAgICAgIjAuMTg3NzU5LCAwLjIxNzQ3NSwgMC40ODM4MDEsIDAuOTI5Mjk3LCAxLjM3NTIzLCAyLjQxNTE5LCAzLjAwODc2IiwgXAotICAgICAgICAgICIwLjIwMjczMywgMC4yMzI0MDgsIDAuNDk3OTk0LCAwLjk0MzMzMywgMS4zODkzLCAyLjQyOTIxLCAzLjAyMjcyIiwgXAotICAgICAgICAgICIwLjIxNzkyOSwgMC4yNDc1NzQsIDAuNTEyMTgyLCAwLjk1Nzc1MiwgMS40MDM5OCwgMi40NDI4NiwgMy4wMzY3NiIsIFwKLSAgICAgICAgICAiMC4yNDI5MTQsIDAuMjcyNTQ5LCAwLjUzODY2OSwgMC45ODA2NjUsIDEuNDI2MjMsIDIuNDY2NDUsIDMuMDYwMTUiLCBcCi0gICAgICAgICAgIjAuMjY0MTM1LCAwLjI5Mzk4MSwgMC41NTk1OTEsIDEuMDAwOTUsIDEuNDQ3MTQsIDIuNDg2MjMsIDMuMDgwMDkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzA3OTMxLCAwLjM2NzQ5NCwgMC44OTYxNDEsIDEuNzc3NTYsIDIuNjYyMDQsIDQuNzIwOTIsIDUuODg5MjYiLCBcCi0gICAgICAgICAgIjAuMzA3OTE5LCAwLjM2NzE3MSwgMC44OTY1NTgsIDEuNzc4MDksIDIuNjY1NiwgNC43MjA2OSwgNS44ODg0NSIsIFwKLSAgICAgICAgICAiMC4zMDgzNzQsIDAuMzY2NzM0LCAwLjg5NTg1NCwgMS43ODExMSwgMi42NTg5NSwgNC43MTk4NiwgNS44ODg3NCIsIFwKLSAgICAgICAgICAiMC4zMDg4NDMsIDAuMzY3MDA2LCAwLjg5ODIyNiwgMS43Nzc0NywgMi42NjE2MywgNC43MTkyMSwgNS44ODgxOSIsIFwKLSAgICAgICAgICAiMC4zMDg1NzcsIDAuMzY3NDg0LCAwLjg5NzczMiwgMS43ODIwMywgMi42NjIwNiwgNC43MTk0LCA1Ljg5MDE3IiwgXAotICAgICAgICAgICIwLjMxMjIxNywgMC4zNjkxNTQsIDAuODk3MjE3LCAxLjc4MTQ3LCAyLjY2NTUxLCA0LjcxOTkxLCA1Ljg4OTgyIiwgXAotICAgICAgICAgICIwLjMxODY1MSwgMC4zNzI5OSwgMC44OTU0NTMsIDEuNzgzNjQsIDIuNjU5MTgsIDQuNzE3NzMsIDUuODkwMzIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDA2MjgsIDAuMDAwNjI4LCAwLjAwMDYyOCwgMC4wMDA2MjgsIDAuMDAwNjI4LCAwLjAwMDYyOCwgMC4wMDA2MjgiLCBcCi0gICAgICAgICAgIjAuMDAwNjI2LCAwLjAwMDYyNiwgMC4wMDA2MjcsIDAuMDAwNjI4LCAwLjAwMDYyOCwgMC4wMDA2MjgsIDAuMDAwNjI4IiwgXAotICAgICAgICAgICIwLjAwMDYyMywgMC4wMDA2MjQsIDAuMDAwNjI3LCAwLjAwMDYyNywgMC4wMDA2MjgsIDAuMDAwNjI4LCAwLjAwMDYyOCIsIFwKLSAgICAgICAgICAiMC4wMDA2MjEsIDAuMDAwNjIxLCAwLjAwMDYyNiwgMC4wMDA2MjcsIDAuMDAwNjI3LCAwLjAwMDYyOCwgMC4wMDA2MjgiLCBcCi0gICAgICAgICAgIjAuMDAwNjE5LCAwLjAwMDYyMSwgMC4wMDA2MjUsIDAuMDAwNjI3LCAwLjAwMDYyNywgMC4wMDA2MjgsIDAuMDAwNjI4IiwgXAotICAgICAgICAgICIwLjAwMDYxNywgMC4wMDA2MTgsIDAuMDAwNjI0LCAwLjAwMDYyNiwgMC4wMDA2MjcsIDAuMDAwNjI4LCAwLjAwMDYyNyIsIFwKLSAgICAgICAgICAiMC4wMDA2MTUsIDAuMDAwNjE2LCAwLjAwMDYyMSwgMC4wMDA2MjUsIDAuMDAwNjI2LCAwLjAwMDYyNywgMC4wMDA2MjciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDAwNDMsIDAuMDAwMDQzLCAwLjAwMDA0MywgMC4wMDAwNDQsIDAuMDAwMDQ0LCAwLjAwMDA0NCwgMC4wMDAwNDQiLCBcCi0gICAgICAgICAgIjAuMDAwMDM5LCAwLjAwMDA0LCAwLjAwMDA0MiwgMC4wMDAwNDMsIDAuMDAwMDQzLCAwLjAwMDA0MywgMC4wMDAwNDQiLCBcCi0gICAgICAgICAgIjAuMDAwMDM2LCAwLjAwMDAzNywgMC4wMDAwNDEsIDAuMDAwMDQyLCAwLjAwMDA0MywgMC4wMDAwNDMsIDAuMDAwMDQzIiwgXAotICAgICAgICAgICIwLjAwMDAzMywgMC4wMDAwMzQsIDAuMDAwMDM5LCAwLjAwMDA0MSwgMC4wMDAwNDIsIDAuMDAwMDQzLCAwLjAwMDA0MyIsIFwKLSAgICAgICAgICAiMC4wMDAwMywgMC4wMDAwMzIsIDAuMDAwMDM4LCAwLjAwMDA0MSwgMC4wMDAwNDIsIDAuMDAwMDQzLCAwLjAwMDA0MyIsIFwKLSAgICAgICAgICAiMC4wMDAwMjYsIDAuMDAwMDI4LCAwLjAwMDAzNiwgMC4wMDAwNCwgMC4wMDAwNDEsIDAuMDAwMDQyLCAwLjAwMDA0MyIsIFwKLSAgICAgICAgICAiMC4wMDAwMjMsIDAuMDAwMDI2LCAwLjAwMDAzNSwgMC4wMDAwMzksIDAuMDAwMDQsIDAuMDAwMDQyLCAwLjAwMDA0MiIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogTVhJMlg4ICoKLSAqIC0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoTVhJMlg4KSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuNDIzNTI5OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2MTU1NDQ7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjEzODsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2MTU1NDQ7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMTUzLCAwLjAwMDE1NywgMC4wMDAxNTgsIDAuMDAwMTU4LCAwLjAwMDE1OSwgMC4wMDAxNTksIDAuMDAwMTU5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMTY4LCAwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY2Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA1ODgzMDg7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNTg2NDc0OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDU4ODMwODsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxNTksIDAuMDAwMTYsIDAuMDAwMTYxLCAwLjAwMDE2MSwgMC4wMDAxNjIsIDAuMDAwMTYyLCAwLjAwMDE2MiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDE2NywgMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUzApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTIzNDQ7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxMjM0NDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDEyMzQ0OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDE5NywgMC4wMDAxNzksIDAuMDAwMTY5LCAwLjAwMDE2NSwgMC4wMDAxNjMsIDAuMDAwMTYzLCAwLjAwMDE2MyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTU2OSwgMC4wMDE1NTgsIDAuMDAxNTUsIDAuMDAxNTQ3LCAwLjAwMTU0NSwgMC4wMDE1NDIsIDAuMDAxNTQ0Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDEuMDQyMjk7Ci0gICAgZnVuY3Rpb24gOiAiKCEoKFMwIEIpICsgKCFTMCBBKSkpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE5MzM0MiwgMC4yNjExMzksIDAuMzI0NjczLCAwLjM2OTk5NCwgMC40NDI0NjksIDAuNTA1ODQyLCAwLjU5NjQyNCIsIFwKLSAgICAgICAgICAiMC4yMDQ4OTEsIDAuMjcyNjM0LCAwLjMzNjIwOSwgMC4zODE1MTgsIDAuNDUzOTg0LCAwLjUxNzQyNywgMC42MDc5NzIiLCBcCi0gICAgICAgICAgIjAuMjE3OTM2LCAwLjI4NTcyMiwgMC4zNDkyNTIsIDAuMzk0NTcyLCAwLjQ2NzAyOSwgMC41MzA0NDksIDAuNjIxMDIxIiwgXAotICAgICAgICAgICIwLjIzMDUwMiwgMC4yOTgzLCAwLjM2MTgzLCAwLjQwNzE1LCAwLjQ3OTYyNywgMC41NDMwMTgsIDAuNjMzNTgxIiwgXAotICAgICAgICAgICIwLjI0Mjk2NCwgMC4zMTA3MjgsIDAuMzc0MjY3LCAwLjQxOTU1NiwgMC40OTE5ODEsIDAuNTU1NDYzLCAwLjY0NjAwOCIsIFwKLSAgICAgICAgICAiMC4yNjI2MSwgMC4zMzA0MTQsIDAuMzkzOTUzLCAwLjQzOTI0MSwgMC41MTE3MDQsIDAuNTc1MTQ4LCAwLjY2NTY5MyIsIFwKLSAgICAgICAgICAiMC4yNzk0NTYsIDAuMzQ3MjY2LCAwLjQxMDc4MywgMC40NTYxLCAwLjUyODU2MSwgMC41OTE5MjIsIDAuNjgyNTUyIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQyOTgxLCAwLjE2MzYxMywgMC4yOTAwNDcsIDAuMzgyNzE1LCAwLjUyOTk4NSwgMC42NTc0NzUsIDAuODQzNDI5IiwgXAotICAgICAgICAgICIwLjA0Mjk1OCwgMC4xNjM5NjIsIDAuMjkwNDY4LCAwLjM4MjE1OCwgMC41MjkxNDIsIDAuNjU3NDA3LCAwLjg0MzYxNSIsIFwKLSAgICAgICAgICAiMC4wNDMwMywgMC4xNjM4MTksIDAuMjkwNjM1LCAwLjM4MjYxMywgMC41MjgwNzcsIDAuNjU2NDk1LCAwLjg0MzY1NiIsIFwKLSAgICAgICAgICAiMC4wNDI5NjUsIDAuMTYzNTUxLCAwLjI5MDA1MSwgMC4zODI2ODUsIDAuNTI5OTc3LCAwLjY1Njk4MSwgMC44NDM0MTQiLCBcCi0gICAgICAgICAgIjAuMDQyOTg2LCAwLjE2Mzg0NywgMC4yOTAzNiwgMC4zODE4NDYsIDAuNTI4MDY0LCAwLjY1NzQyLCAwLjg0MzU5MyIsIFwKLSAgICAgICAgICAiMC4wNDI5NTUsIDAuMTYzODQzLCAwLjI5MDkxMiwgMC4zODIxNiwgMC41MjgwMTgsIDAuNjU3MzMxLCAwLjg0MzYwMSIsIFwKLSAgICAgICAgICAiMC4wNDI5OTksIDAuMTYzODcyLCAwLjI4OTk4LCAwLjM4MTM2OSwgMC41Mjg0MDQsIDAuNjU4ODYxLCAwLjg0MzYxIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjA3OTU5LCAwLjI4NTkxOCwgMC4zNjA1MzYsIDAuNDEzNzQ0LCAwLjQ5ODg0OCwgMC41NzMzMTcsIDAuNjc5NjQ5IiwgXAotICAgICAgICAgICIwLjIxOTU0NiwgMC4yOTczMSwgMC4zNzE5MTYsIDAuNDI1MTE4LCAwLjUxMDIxOSwgMC41ODQ3MDIsIDAuNjkxMDI4IiwgXAotICAgICAgICAgICIwLjIzMzIxOSwgMC4zMTEwNjYsIDAuMzg1NjgzLCAwLjQzODg4MSwgMC41MjM5NzUsIDAuNTk4NDQxLCAwLjcwNDgwOCIsIFwKLSAgICAgICAgICAiMC4yNDY5MTEsIDAuMzI0ODQsIDAuMzk5NDU0LCAwLjQ1MjY2MSwgMC41Mzc3NjQsIDAuNjEyMjQzLCAwLjcxODU3MiIsIFwKLSAgICAgICAgICAiMC4yNjA3LCAwLjMzODU0MiwgMC40MTMxNDgsIDAuNDY2MjQ0LCAwLjU1MTM0NCwgMC42MjU4MzYsIDAuNzMyMTU2IiwgXAotICAgICAgICAgICIwLjI4MjY3NCwgMC4zNjA1MTgsIDAuNDM1MTMxLCAwLjQ4ODM0NSwgMC41NzM0NDEsIDAuNjQ3ODkzLCAwLjc1NDI0NSIsIFwKLSAgICAgICAgICAiMC4zMDEzOTMsIDAuMzc5MjQ1LCAwLjQ1Mzg1MywgMC41MDcwNjMsIDAuNTkyMTU3LCAwLjY2NjY0NCwgMC43NzMwNDIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDQwNjIsIDAuMTg1OTE5LCAwLjMzMjM5OSwgMC40Mzc5ODEsIDAuNjA3MjU4LCAwLjc1NzUxNywgMC45Njk4OTUiLCBcCi0gICAgICAgICAgIjAuMDQ0MTQ0LCAwLjE4NTk1NywgMC4zMzI2MTUsIDAuNDM5MDQ1LCAwLjYwNzA2MSwgMC43NTc1MzcsIDAuOTY5OTAzIiwgXAotICAgICAgICAgICIwLjA0NDA2NSwgMC4xODU5NjYsIDAuMzMyNDY1LCAwLjQzODEyOCwgMC42MDg2MTMsIDAuNzU3NDc4LCAwLjk2OTkyOCIsIFwKLSAgICAgICAgICAiMC4wNDQwODksIDAuMTg1ODU5LCAwLjMzMjUzLCAwLjQzODYyLCAwLjYwNzE1MSwgMC43NTc1MjcsIDAuOTY5OSIsIFwKLSAgICAgICAgICAiMC4wNDQxMDUsIDAuMTg1OTE3LCAwLjMzMjY2LCAwLjQzODIzLCAwLjYwNzg1MywgMC43NTc1NDUsIDAuOTY5OTA1IiwgXAotICAgICAgICAgICIwLjA0NDEzMiwgMC4xODU5NDYsIDAuMzMyNjI4LCAwLjQzODE1NywgMC42MDg2MzEsIDAuNzU3NDI1LCAwLjk2OTg5NyIsIFwKLSAgICAgICAgICAiMC4wNDQwNjksIDAuMTg1OTIyLCAwLjMzMjUxOCwgMC40MzgwOTYsIDAuNjA2NjQ2LCAwLjc1NzU0MSwgMC45NjY2NDMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xOTY1NDUsIDAuMjY0NDM5LCAwLjMyNzkzMSwgMC4zNzMyNDUsIDAuNDQ1NzExLCAwLjUwOTE1NCwgMC41OTk2OTkiLCBcCi0gICAgICAgICAgIjAuMjA4MDgzLCAwLjI3NTkyNywgMC4zMzk0NiwgMC4zODQ3NDMsIDAuNDU3MjA3LCAwLjUyMDY1LCAwLjYxMTE5NSIsIFwKLSAgICAgICAgICAiMC4yMjEyODIsIDAuMjg5MTA0LCAwLjM1MjYyNSwgMC4zOTc5NDksIDAuNDcwNDA1LCAwLjUzMzc2OSwgMC42MjQzOTkiLCBcCi0gICAgICAgICAgIjAuMjMzNzE0LCAwLjMwMTUzMSwgMC4zNjUwNjQsIDAuNDEwMzgzLCAwLjQ4Mjg1NywgMC41NDYyMDUsIDAuNjM2ODI4IiwgXAotICAgICAgICAgICIwLjI0NjAyMiwgMC4zMTM4MzgsIDAuMzc3Mzc5LCAwLjQyMjcwOCwgMC40OTUxNzEsIDAuNTU4NTI0LCAwLjY0OTE0MSIsIFwKLSAgICAgICAgICAiMC4yNjU4MzQsIDAuMzMzNjU4LCAwLjM5NzE5MiwgMC40NDI0NzYsIDAuNTE0OTM5LCAwLjU3ODM4NCwgMC42Njg5MjgiLCBcCi0gICAgICAgICAgIjAuMjgyNzA2LCAwLjM1MDUzOCwgMC40MTQwNzcsIDAuNDU5MzY1LCAwLjUzMTgyNywgMC41OTUyNzIsIDAuNjg1ODE3Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQzMDQzLCAwLjE2NDAyLCAwLjI5MDk4NCwgMC4zODIxNzEsIDAuNTI5MTQ0LCAwLjY1NzQxNywgMC44NDM2MTQiLCBcCi0gICAgICAgICAgIjAuMDQzMDcxLCAwLjE2NDAwMywgMC4yOTA5MywgMC4zODE1ODcsIDAuNTI5MTMyLCAwLjY1NzQyNCwgMC44NDM2MTUiLCBcCi0gICAgICAgICAgIjAuMDQzMDMzLCAwLjE2Mzg5NSwgMC4yOTAwNDYsIDAuMzgyNzA4LCAwLjUyOTg5OSwgMC42NTgwMjgsIDAuODQxNzI4IiwgXAotICAgICAgICAgICIwLjA0MzEwMywgMC4xNjM4NTEsIDAuMjkwMDksIDAuMzgyNTcsIDAuNTI5MTIxLCAwLjY1ODg2NCwgMC44NDIwNjciLCBcCi0gICAgICAgICAgIjAuMDQzMDg0LCAwLjE2Mzk5MywgMC4yOTAwODcsIDAuMzgxODY4LCAwLjUyOTExMywgMC42NTg4NiwgMC44NDIwMiIsIFwKLSAgICAgICAgICAiMC4wNDI5NDQsIDAuMTY0MDEsIDAuMjkwOTI3LCAwLjM4MjE3LCAwLjUyOTE0MywgMC42NTcyOTksIDAuODQzNjA5IiwgXAotICAgICAgICAgICIwLjA0MzA0OSwgMC4xNjM4NzYsIDAuMjkwOTI4LCAwLjM4MjE2NiwgMC41MjgxMDQsIDAuNjU3MzE4LCAwLjg0MzYwOSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIwOTM3MSwgMC4yODcyMjEsIDAuMzYxODQ5LCAwLjQxNTAzNywgMC41MDAxMzYsIDAuNTc0NjMzLCAwLjY4MDk2MSIsIFwKLSAgICAgICAgICAiMC4yMjEwODQsIDAuMjk4OTIzLCAwLjM3MzU0NCwgMC40MjY3NDEsIDAuNTExODQzLCAwLjU4NjM0MywgMC42OTI2NyIsIFwKLSAgICAgICAgICAiMC4yMzUxMTgsIDAuMzEzMTQ3LCAwLjM4NzcyOSwgMC40NDA5MzUsIDAuNTI2MDM1LCAwLjYwMDUxNSwgMC43MDY4NDQiLCBcCi0gICAgICAgICAgIjAuMjQ4OTE5LCAwLjMyNjcwNywgMC40MDEzMDksIDAuNDU0NTEzLCAwLjUzOTYxLCAwLjYxNDA3MywgMC43MjA0NDciLCBcCi0gICAgICAgICAgIjAuMjYyNjI2LCAwLjM0MDQzNSwgMC40MTUwMzgsIDAuNDY4MjM3LCAwLjU1MzMzNCwgMC42Mjc3OTQsIDAuNzM0MTU3IiwgXAotICAgICAgICAgICIwLjI4NDQ3MSwgMC4zNjIzMzIsIDAuNDM2OTM3LCAwLjQ5MDE0NSwgMC41NzUyNDEsIDAuNjQ5NzQ2LCAwLjc1NjA3MiIsIFwKLSAgICAgICAgICAiMC4zMDM4NTMsIDAuMzgxNzEsIDAuNDU2MzEsIDAuNTA5NTA4LCAwLjU5NDYwOSwgMC42NjkwNzUsIDAuNzc1NDQ0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQ0MDg4LCAwLjE4NTk1MywgMC4zMzI1MjEsIDAuNDM4MTc3LCAwLjYwODA2LCAwLjc1NzU1MSwgMC45Njk5MjEiLCBcCi0gICAgICAgICAgIjAuMDQ0MSwgMC4xODU5MzksIDAuMzMyNDc1LCAwLjQzODE2MiwgMC42MDg3MzcsIDAuNzU1NDM2LCAwLjk2OTkyOSIsIFwKLSAgICAgICAgICAiMC4wNDQwNjEsIDAuMTg2MDgsIDAuMzMyNDM0LCAwLjQzODU2OSwgMC42MDcxNiwgMC43NTc1MywgMC45Njk5MDMiLCBcCi0gICAgICAgICAgIjAuMDQ0MTA3LCAwLjE4NTk5MSwgMC4zMzI5NzEsIDAuNDM4MTMyLCAwLjYwNzQ4OSwgMC43NTc0ODMsIDAuOTY5OTQ0IiwgXAotICAgICAgICAgICIwLjA0NDA5OSwgMC4xODYwMTUsIDAuMzMyNTM0LCAwLjQzODA5NSwgMC42MDc0MjksIDAuNzU3NDg1LCAwLjk2OTkxNSIsIFwKLSAgICAgICAgICAiMC4wNDQwODMsIDAuMTg1OTMyLCAwLjMzMjYxOCwgMC40MzgxMzQsIDAuNjA4NjM2LCAwLjc1NjExMSwgMC45Njk5MzEiLCBcCi0gICAgICAgICAgIjAuMDQ0MjE0LCAwLjE4NTg5MiwgMC4zMzI1MzMsIDAuNDM4NzU3LCAwLjYwNzQwNSwgMC43NTUxODMsIDAuOTY5OTQ2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlMwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIxODgwMywgMC4yODY2MDYsIDAuMzUwMTQ4LCAwLjM5NTQ3MywgMC40Njc4ODgsIDAuNTMxMzQ2LCAwLjYyMTkxIiwgXAotICAgICAgICAgICIwLjIzMTE1LCAwLjI5ODk5MSwgMC4zNjI1MTMsIDAuNDA3Nzg2LCAwLjQ4MDI4NywgMC41NDM2ODgsIDAuNjM0Mjc1IiwgXAotICAgICAgICAgICIwLjI0NjU4NSwgMC4zMTQzOTIsIDAuMzc3OTE0LCAwLjQyMzE4OCwgMC40OTU2ODcsIDAuNTU5MDg5LCAwLjY0OTY3NCIsIFwKLSAgICAgICAgICAiMC4yNjExMywgMC4zMjg5NDgsIDAuMzkyNDg3LCAwLjQzNzc3MywgMC41MTAyMzYsIDAuNTczNjgsIDAuNjY0MjI1IiwgXAotICAgICAgICAgICIwLjI3NjE4MywgMC4zNDM5OTksIDAuNDA3NTMsIDAuNDUyODQ5LCAwLjUyNTMyNSwgMC41ODg2OTgsIDAuNjc5Mjc5IiwgXAotICAgICAgICAgICIwLjI5NzY2OSwgMC4zNjU0NjEsIDAuNDI4OTg4LCAwLjQ3NDMxNCwgMC41NDY3NjgsIDAuNjEwMjExLCAwLjcwMDc1NyIsIFwKLSAgICAgICAgICAiMC4zMTQ1NjksIDAuMzgyMzgyLCAwLjQ0NTkyNCwgMC40OTEyNTUsIDAuNTYzNzE1LCAwLjYyNzA2NiwgMC43MTc2ODciKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDMwODUsIDAuMTYzODk1LCAwLjI5MDAyMSwgMC4zODE1MzcsIDAuNTI4MzQ2LCAwLjY1NzYyMiwgMC44NDIyMjUiLCBcCi0gICAgICAgICAgIjAuMDQzMTM1LCAwLjE2Mzg5NCwgMC4yOTAwMDYsIDAuMzgxMjc4LCAwLjUyOTAzMiwgMC42NTc5OTYsIDAuODQzNTk2IiwgXAotICAgICAgICAgICIwLjA0MzAzMywgMC4xNjM4OTIsIDAuMjkwMDIsIDAuMzgxMjgyLCAwLjUyOTA2OSwgMC42NTgwMDksIDAuODQzNTg0IiwgXAotICAgICAgICAgICIwLjA0MzA2NiwgMC4xNjM4NzEsIDAuMjkwOTM2LCAwLjM4MjE2OCwgMC41MjgwMjIsIDAuNjU3MzM3LCAwLjg0MzYwOCIsIFwKLSAgICAgICAgICAiMC4wNDMwMzQsIDAuMTYzNjM3LCAwLjI5MDA2MywgMC4zODE2NzMsIDAuNTI5OTgxLCAwLjY1NzUsIDAuODQzNDE3IiwgXAotICAgICAgICAgICIwLjA0MzEwOCwgMC4xNjM4NSwgMC4yOTA2NTUsIDAuMzgyNzQ4LCAwLjUyODA3NywgMC42NTc1NzcsIDAuODQzNjUiLCBcCi0gICAgICAgICAgIjAuMDQzMDcsIDAuMTYzOTk2LCAwLjI5MDA3OSwgMC4zODE5MjMsIDAuNTI5MTE1LCAwLjY1ODg1OCwgMC44NDE0MjQiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMjczMDksIDAuMzA1MTU3LCAwLjM3OTc3MiwgMC40MzI5ODEsIDAuNTE4MDg3LCAwLjU5MjUzNCwgMC42OTg5MDgiLCBcCi0gICAgICAgICAgIjAuMjM5NDAzLCAwLjMxNzI0OCwgMC4zOTE4NjMsIDAuNDQ1MDcsIDAuNTMwMTY4LCAwLjYwNDY2OCwgMC43MTA5OTkiLCBcCi0gICAgICAgICAgIjAuMjU0MzMzLCAwLjMzMjE5MSwgMC40MDY3OTksIDAuNDYwMDEsIDAuNTQ1MTQyLCAwLjYxOTYxMSwgMC43MjU5MzciLCBcCi0gICAgICAgICAgIjAuMjY4Nzk2LCAwLjM0NjY3NCwgMC40MjEyOCwgMC40NzQ0NzgsIDAuNTU5NTgsIDAuNjM0MDQ4LCAwLjc0MDQxMiIsIFwKLSAgICAgICAgICAiMC4yODE3MzgsIDAuMzU5NTcsIDAuNDM0MTczLCAwLjQ4NzM3MywgMC41NzI0NzIsIDAuNjQ2OTQsIDAuNzUzMzA5IiwgXAotICAgICAgICAgICIwLjMwMDI4MSwgMC4zNzgxNDEsIDAuNDUyNzUzLCAwLjUwNTk1OSwgMC41OTEwNDksIDAuNjY1NTQyLCAwLjc3MTg2NSIsIFwKLSAgICAgICAgICAiMC4zMTQ3MzQsIDAuMzkyNTI1LCAwLjQ2NzE0MiwgMC41MjAzNDIsIDAuNjA1NDM3LCAwLjY3OTg5OSwgMC43ODYyNjciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDQwNjgsIDAuMTg1OTE4LCAwLjMzMjYzOCwgMC40MzgxMTMsIDAuNjA4Nzc2LCAwLjc1NjMxNywgMC45Njk5MjYiLCBcCi0gICAgICAgICAgIjAuMDQ0MDY0LCAwLjE4NTkxLCAwLjMzMjU5NiwgMC40MzgxLCAwLjYwODY2MywgMC43NTQ2NzEsIDAuOTY5OTMiLCBcCi0gICAgICAgICAgIjAuMDQ0MDc0LCAwLjE4NTkyNSwgMC4zMzI2NjIsIDAuNDM4MTAxLCAwLjYwNjQxNywgMC43NTQ4OSwgMC45Njk5MjUiLCBcCi0gICAgICAgICAgIjAuMDQ0MjU3LCAwLjE4NTcyNiwgMC4zMzI1NzMsIDAuNDM4NzM4LCAwLjYwNzQ2NywgMC43NTQ2ODUsIDAuOTY5OTM4IiwgXAotICAgICAgICAgICIwLjA0NDE3MiwgMC4xODU5MDIsIDAuMzMyNTQzLCAwLjQzODc1OCwgMC42MDc2NjcsIDAuNzU1MywgMC45Njk5NDQiLCBcCi0gICAgICAgICAgIjAuMDQ0MDkxLCAwLjE4NTkxNywgMC4zMzI2NzUsIDAuNDM4MTI1LCAwLjYwNzUwMSwgMC43NTc1NDgsIDAuOTY5OTA4IiwgXAotICAgICAgICAgICIwLjA0NDA2LCAwLjE4NTkxNiwgMC4zMzI0OTksIDAuNDM4MDY2LCAwLjYwNzQ3NSwgMC43NTc0NDYsIDAuOTY5OTIxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlMwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE4MTMwOSwgMC4yNDkwOTQsIDAuMzEyNjE3LCAwLjM1Nzg5LCAwLjQzMDM4NywgMC40OTM4MzEsIDAuNTg0Mzc2IiwgXAotICAgICAgICAgICIwLjE5MTY0NywgMC4yNTk0MjEsIDAuMzIyOTQ4LCAwLjM2ODIzLCAwLjQ0MDY3NiwgMC41MDQxNTYsIDAuNTk0NzAyIiwgXAotICAgICAgICAgICIwLjIwNDY3NiwgMC4yNzI0NywgMC4zMzYwMTIsIDAuMzgxMzU3LCAwLjQ1MzgwMywgMC41MTcxNDIsIDAuNjA3Nzg3IiwgXAotICAgICAgICAgICIwLjIxNzgxNCwgMC4yODU1ODQsIDAuMzQ5MTExLCAwLjM5NDM5MywgMC40NjY4NCwgMC41MzAzMiwgMC42MjA4NjYiLCBcCi0gICAgICAgICAgIjAuMjMwOTY2LCAwLjI5ODc2NywgMC4zNjIzMDQsIDAuNDA3NTg4LCAwLjQ4MDA1MSwgMC41NDM0OTYsIDAuNjM0MDQxIiwgXAotICAgICAgICAgICIwLjI1MjE5MiwgMC4zMTk5ODUsIDAuMzgzNTE4LCAwLjQyODgwMSwgMC41MDEyNjQsIDAuNTY0NzA5LCAwLjY1NTI1NCIsIFwKLSAgICAgICAgICAiMC4yNzA2MzksIDAuMzM4NDQzLCAwLjQwMTk3NywgMC40NDcyNTksIDAuNTE5NzI0LCAwLjU4MzE2OSwgMC42NzM3MTQiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDI5NzYsIDAuMTYzODU1LCAwLjI5MDA0NywgMC4zODEzMTUsIDAuNTI4Mzc2LCAwLjY1OTIyNSwgMC44NDM1ODUiLCBcCi0gICAgICAgICAgIjAuMDQyOTA0LCAwLjE2Mzg1MywgMC4yOTAxMzIsIDAuMzgxNjQ0LCAwLjUyOTA4MSwgMC42NTkyMjYsIDAuODQzNTg5IiwgXAotICAgICAgICAgICIwLjA0Mjk5NywgMC4xNjM5NzMsIDAuMjkwMDU0LCAwLjM4MTY5MywgMC41MjkxMTMsIDAuNjU3MTY0LCAwLjg0MTc5NSIsIFwKLSAgICAgICAgICAiMC4wNDI4OTksIDAuMTYzODUzLCAwLjI5MDE1NiwgMC4zODE2NDUsIDAuNTI4NTExLCAwLjY1OTIyOCwgMC44NDM1ODkiLCBcCi0gICAgICAgICAgIjAuMDQzMDAzLCAwLjE2Mzk4MywgMC4yOTA5MTgsIDAuMzgyMTU4LCAwLjUyODMxNSwgMC42NTczMzIsIDAuODQzNjA3IiwgXAotICAgICAgICAgICIwLjA0MjkzMiwgMC4xNjM5NzQsIDAuMjkwOTA1LCAwLjM4MjE2LCAwLjUyOTE0LCAwLjY1NzMzMywgMC44NDM2MTIiLCBcCi0gICAgICAgICAgIjAuMDQyOTQ0LCAwLjE2Mzk2OSwgMC4yOTA5MDIsIDAuMzgxNTYzLCAwLjUyOTE0OSwgMC42NTcyOSwgMC44NDM2MTciKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xOTQ5MDksIDAuMjcyOTUzLCAwLjM0NzU0LCAwLjQwMDc1OSwgMC40ODU4NDcsIDAuNTYwMzE1LCAwLjY2NjY0NiIsIFwKLSAgICAgICAgICAiMC4yMDU0OTksIDAuMjgzNDcsIDAuMzU4MDU1LCAwLjQxMTI3NSwgMC40OTYzNjQsIDAuNTcwODM3LCAwLjY3NzE2NyIsIFwKLSAgICAgICAgICAiMC4yMTkxNDEsIDAuMjk2OTc2LCAwLjM3MTU4OCwgMC40MjQ3OTMsIDAuNTA5ODk4LCAwLjU4NDM5MSwgMC42OTA3MTciLCBcCi0gICAgICAgICAgIjAuMjMyNTc1LCAwLjMxMDQxMSwgMC4zODUwMjQsIDAuNDM4MjI3LCAwLjUyMzMyOCwgMC41OTc4MjcsIDAuNzA0MTUzIiwgXAotICAgICAgICAgICIwLjI0NjI1NSwgMC4zMjQwMTUsIDAuMzk4NjI2LCAwLjQ1MTgzOSwgMC41MzY5NCwgMC42MTE0MiwgMC43MTc3NDUiLCBcCi0gICAgICAgICAgIjAuMjY4MjMyLCAwLjM0NjA4MSwgMC40MjA2OTYsIDAuNDczODQ2LCAwLjU1ODk0MiwgMC42MzM0NCwgMC43Mzk4NTYiLCBcCi0gICAgICAgICAgIjAuMjg3NjM3LCAwLjM2NTQzOSwgMC40NDAwNTYsIDAuNDkzMjQ5LCAwLjU3ODM1MSwgMC42NTI3OTgsIDAuNzU5MTgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDQwNiwgMC4xODU3MTIsIDAuMzMyNzI4LCAwLjQzODY4MSwgMC42MDc2NSwgMC43NTc1MTksIDAuOTY5ODk3IiwgXAotICAgICAgICAgICIwLjA0NDEyNCwgMC4xODU4NzcsIDAuMzMyMzc3LCAwLjQzODQ0MSwgMC42MDc0MzYsIDAuNzU3NTIyLCAwLjk2OTg5OSIsIFwKLSAgICAgICAgICAiMC4wNDQwODIsIDAuMTg1OTM2LCAwLjMzMzA0OCwgMC40MzgxNjcsIDAuNjA4ODA1LCAwLjc1NTE2MywgMC45Njk5MjciLCBcCi0gICAgICAgICAgIjAuMDQ0MDY1LCAwLjE4NTkzNSwgMC4zMzI5NDQsIDAuNDM4MTUzLCAwLjYwODcyOSwgMC43NTU4ODMsIDAuOTY5OTMiLCBcCi0gICAgICAgICAgIjAuMDQ0MTIzLCAwLjE4NTkzOSwgMC4zMzI5OSwgMC40Mzg0MDEsIDAuNjA2NzUyLCAwLjc1NzUzNCwgMC45Njk5MDIiLCBcCi0gICAgICAgICAgIjAuMDQ0MTU5LCAwLjE4NjA5MiwgMC4zMzI4NiwgMC40MzgxNzEsIDAuNjA3OTAxLCAwLjc1NDc1LCAwLjk2OTk1OCIsIFwKLSAgICAgICAgICAiMC4wNDQxMTYsIDAuMTg1OTQ0LCAwLjMzMjQ3NywgMC40MzgwNzcsIDAuNjA4NzI0LCAwLjc1NjEzNCwgMC45Njk5MzkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwOTMxNSwgMC4wMDk1NTIsIDAuMDA5NjEsIDAuMDA5NjI2LCAwLjAwOTYyNSwgMC4wMDk2NCwgMC4wMDk2NTgiLCBcCi0gICAgICAgICAgIjAuMDA5MzA4LCAwLjAwOTU1MywgMC4wMDk1OTksIDAuMDA5NjE2LCAwLjAwOTYyOSwgMC4wMDk2MzcsIDAuMDA5NjQzIiwgXAotICAgICAgICAgICIwLjAwOTMsIDAuMDA5NTQzLCAwLjAwOTU5MywgMC4wMDk2MDksIDAuMDA5NjI0LCAwLjAwOTYzMSwgMC4wMDk2MzgiLCBcCi0gICAgICAgICAgIjAuMDA5MzAzLCAwLjAwOTU0OSwgMC4wMDk1OTEsIDAuMDA5NjA3LCAwLjAwOTYyMSwgMC4wMDk2MzQsIDAuMDA5NjI4IiwgXAotICAgICAgICAgICIwLjAwOTMwMSwgMC4wMDk1NCwgMC4wMDk1ODksIDAuMDA5NjA1LCAwLjAwOTYxOSwgMC4wMDk2MjcsIDAuMDA5NjMyIiwgXAotICAgICAgICAgICIwLjAwOTI5NiwgMC4wMDk1MzgsIDAuMDA5NTkxLCAwLjAwOTYwNiwgMC4wMDk2MTUsIDAuMDA5NjIyLCAwLjAwOTYyOSIsIFwKLSAgICAgICAgICAiMC4wMDkyODgsIDAuMDA5NTI4LCAwLjAwOTU3NywgMC4wMDk2LCAwLjAwOTYwNywgMC4wMDk2MTUsIDAuMDA5NjIyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDg2OTYsIDAuMDA5MDIsIDAuMDA5MDk1LCAwLjAwOTEyLCAwLjAwOTE0MywgMC4wMDkxNTUsIDAuMDA5MTY2IiwgXAotICAgICAgICAgICIwLjAwODY4OSwgMC4wMDkwMDMsIDAuMDA5MDgxLCAwLjAwOTEwNiwgMC4wMDkxMywgMC4wMDkxNDMsIDAuMDA5MTU0IiwgXAotICAgICAgICAgICIwLjAwODY4MiwgMC4wMDkwMDEsIDAuMDA5MDc3LCAwLjAwOTEwMywgMC4wMDkxMjYsIDAuMDA5MTM4LCAwLjAwOTE1IiwgXAotICAgICAgICAgICIwLjAwODY3NSwgMC4wMDg5OTksIDAuMDA5MDc0LCAwLjAwOTA5OSwgMC4wMDkxMjIsIDAuMDA5MTM1LCAwLjAwOTE0NSIsIFwKLSAgICAgICAgICAiMC4wMDg2ODEsIDAuMDA4OTk1LCAwLjAwOTA3LCAwLjAwOTA5NSwgMC4wMDkxMTgsIDAuMDA5MTMsIDAuMDA5MTQxIiwgXAotICAgICAgICAgICIwLjAwODY3MSwgMC4wMDg5ODcsIDAuMDA5MDYzLCAwLjAwOTA4OSwgMC4wMDkxMTMsIDAuMDA5MTI1LCAwLjAwOTEzNiIsIFwKLSAgICAgICAgICAiMC4wMDg2NjUsIDAuMDA4OTg0LCAwLjAwOTA2LCAwLjAwOTA4NSwgMC4wMDkxMDgsIDAuMDA5MTIsIDAuMDA5MTMxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDk0NiwgMC4wMDk3MDMsIDAuMDA5NzUzLCAwLjAwOTc2OSwgMC4wMDk3ODQsIDAuMDA5NzkxLCAwLjAwOTc5OCIsIFwKLSAgICAgICAgICAiMC4wMDk0NTYsIDAuMDA5Njk4LCAwLjAwOTc0OCwgMC4wMDk3NjQsIDAuMDA5NzczLCAwLjAwOTc4OCwgMC4wMDk3OTMiLCBcCi0gICAgICAgICAgIjAuMDA5NDYxLCAwLjAwOTY5NSwgMC4wMDk3NDUsIDAuMDA5NzYxLCAwLjAwOTc3NiwgMC4wMDk3ODksIDAuMDA5NzkiLCBcCi0gICAgICAgICAgIjAuMDA5NDQ4LCAwLjAwOTY4OSwgMC4wMDk3NDcsIDAuMDA5NzU2LCAwLjAwOTc3MSwgMC4wMDk3ODQsIDAuMDA5Nzk0IiwgXAotICAgICAgICAgICIwLjAwOTQ0NiwgMC4wMDk2ODUsIDAuMDA5NzQ1LCAwLjAwOTc1NCwgMC4wMDk3NzYsIDAuMDA5NzgsIDAuMDA5NzkxIiwgXAotICAgICAgICAgICIwLjAwOTQ0OSwgMC4wMDk2ODksIDAuMDA5NzM4LCAwLjAwOTc1MywgMC4wMDk3NzEsIDAuMDA5Nzc1LCAwLjAwOTc4MSIsIFwKLSAgICAgICAgICAiMC4wMDk0MzksIDAuMDA5NjgsIDAuMDA5NzI5LCAwLjAwOTc0NSwgMC4wMDk3NiwgMC4wMDk3NjcsIDAuMDA5Nzc0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDg2MTQsIDAuMDA4OTMxLCAwLjAwOTAwNywgMC4wMDkwMzMsIDAuMDA5MDU2LCAwLjAwOTA2OSwgMC4wMDkwOCIsIFwKLSAgICAgICAgICAiMC4wMDg2MDIsIDAuMDA4OTIsIDAuMDA4OTk2LCAwLjAwOTAyMiwgMC4wMDkwNDYsIDAuMDA5MDU4LCAwLjAwOTA3IiwgXAotICAgICAgICAgICIwLjAwODU5NSwgMC4wMDg5MTgsIDAuMDA4OTkzLCAwLjAwOTAxOCwgMC4wMDkwNDEsIDAuMDA5MDU0LCAwLjAwOTA2NSIsIFwKLSAgICAgICAgICAiMC4wMDg1OSwgMC4wMDg5MTEsIDAuMDA4OTg2LCAwLjAwOTAxMiwgMC4wMDkwMzYsIDAuMDA5MDQ4LCAwLjAwOTA1OSIsIFwKLSAgICAgICAgICAiMC4wMDg1ODYsIDAuMDA4OTA3LCAwLjAwODk4MiwgMC4wMDkwMDgsIDAuMDA5MDMyLCAwLjAwOTA0NCwgMC4wMDkwNTUiLCBcCi0gICAgICAgICAgIjAuMDA4NTgzLCAwLjAwODkwMywgMC4wMDg5NzksIDAuMDA5MDA0LCAwLjAwOTAyNywgMC4wMDkwMzksIDAuMDA5MDUiLCBcCi0gICAgICAgICAgIjAuMDA4NjA1LCAwLjAwODkwOCwgMC4wMDg5OCwgMC4wMDkwMDUsIDAuMDA5MDI3LCAwLjAwOTAzOCwgMC4wMDkwNDkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTMCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDkyMjEsIDAuMDA5NDU4LCAwLjAwOTUxMywgMC4wMDk1MjQsIDAuMDA5NTM4LCAwLjAwOTU0NiwgMC4wMDk1NjEiLCBcCi0gICAgICAgICAgIjAuMDA5MjA1LCAwLjAwOTQ1MywgMC4wMDk1MDcsIDAuMDA5NTE4LCAwLjAwOTU0MywgMC4wMDk1MzMsIDAuMDA5NTM1IiwgXAotICAgICAgICAgICIwLjAwOTIxMiwgMC4wMDk0NDcsIDAuMDA5NDkxLCAwLjAwOTUxMiwgMC4wMDk1MjYsIDAuMDA5NTI1LCAwLjAwOTU0IiwgXAotICAgICAgICAgICIwLjAwOTIwMiwgMC4wMDk0NDIsIDAuMDA5NDkyLCAwLjAwOTUxMSwgMC4wMDk1MjIsIDAuMDA5NTI4LCAwLjAwOTUzNiIsIFwKLSAgICAgICAgICAiMC4wMDkyMDMsIDAuMDA5NDQsIDAuMDA5NDg5LCAwLjAwOTUwNSwgMC4wMDk1MiwgMC4wMDk1MjcsIDAuMDA5NTM0IiwgXAotICAgICAgICAgICIwLjAwOTE5NCwgMC4wMDk0MzYsIDAuMDA5NDg3LCAwLjAwOTUwMywgMC4wMDk1MTgsIDAuMDA5NTIzLCAwLjAwOTUzMiIsIFwKLSAgICAgICAgICAiMC4wMDkxOTcsIDAuMDA5NDM3LCAwLjAwOTQ4MSwgMC4wMDk1MDEsIDAuMDA5NTI4LCAwLjAwOTUzMiwgMC4wMDk1MjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMDIwNywgMC4wMTA1MjcsIDAuMDEwNjAyLCAwLjAxMDYyOCwgMC4wMTA2NTEsIDAuMDEwNjYzLCAwLjAxMDY3NSIsIFwKLSAgICAgICAgICAiMC4wMTAyMDUsIDAuMDEwNTI1LCAwLjAxMDYwMSwgMC4wMTA2MjYsIDAuMDEwNjUsIDAuMDEwNjYyLCAwLjAxMDY3MyIsIFwKLSAgICAgICAgICAiMC4wMTAyMDUsIDAuMDEwNTIzLCAwLjAxMDU5OSwgMC4wMTA2MjUsIDAuMDEwNjQ4LCAwLjAxMDY1OSwgMC4wMTA2NzEiLCBcCi0gICAgICAgICAgIjAuMDEwMjIyLCAwLjAxMDUyNywgMC4wMTA2LCAwLjAxMDYyNSwgMC4wMTA2NDcsIDAuMDEwNjU5LCAwLjAxMDY3IiwgXAotICAgICAgICAgICIwLjAxMDIxNywgMC4wMTA1MjQsIDAuMDEwNTk4LCAwLjAxMDYyMywgMC4wMTA2NDUsIDAuMDEwNjU3LCAwLjAxMDY2OCIsIFwKLSAgICAgICAgICAiMC4wMTAyMDIsIDAuMDEwNTE3LCAwLjAxMDU5MiwgMC4wMTA2MTgsIDAuMDEwNjQxLCAwLjAxMDY1MywgMC4wMTA2NjQiLCBcCi0gICAgICAgICAgIjAuMDEwMTk1LCAwLjAxMDUxNiwgMC4wMTA1OTEsIDAuMDEwNjE3LCAwLjAxMDY0LCAwLjAxMDY1MiwgMC4wMTA2NjMiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IE1YSTRYMSAqCi0gKiAtLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKE1YSTRYMSkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjIwODc2ODsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjEyODU5OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYxMTUxNTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2MTI4NTk7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNzE2LCAwLjAwMDcwNiwgMC4wMDA2OTksIDAuMDAwNjk1LCAwLjAwMDY5MiwgMC4wMDA2ODgsIDAuMDAwNjg2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxNzksIDAuMDAxNzg1LCAwLjAwMTc4MSwgMC4wMDE3NzksIDAuMDAxNzc4LCAwLjAwMTc3NiwgMC4wMDE3NzQiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYwMTU5NTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA1OTk4Nzg7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjAxNTk1OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDE1OSwgMC4wMDAxNjEsIDAuMDAwMTYyLCAwLjAwMDE2MiwgMC4wMDAxNjIsIDAuMDAwMTYyLCAwLjAwMDE2MiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDE2NywgMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQykgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNTc2NzM3OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDU3NDc4NzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA1NzY3Mzc7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNzQ3LCAwLjAwMDczNiwgMC4wMDA3MjksIDAuMDAwNzI1LCAwLjAwMDcyMSwgMC4wMDA3MTgsIDAuMDAwNzE2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxNzEzLCAwLjAwMTcwNywgMC4wMDE3MDQsIDAuMDAxNzAyLCAwLjAwMTcsIDAuMDAxNjk5LCAwLjAwMTY5OCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNTYwMTA4OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDU1ODQzMTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA1NjAxMDg7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMTYsIDAuMDAwMTYxLCAwLjAwMDE2MiwgMC4wMDAxNjIsIDAuMDAwMTYyLCAwLjAwMDE2MiwgMC4wMDAxNjMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxNjcsIDAuMDAwMTY2LCAwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiwgMC4wMDAxNjYiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFMwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE4NDQ5ODsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE4NDQxNTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE4NDQ5ODsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAzOTEsIDAuMDAwMzc3LCAwLjAwMDM2NywgMC4wMDAzNjEsIDAuMDAwMzU5LCAwLjAwMDM1NywgMC4wMDAzNTciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDI3NDQsIDAuMDAyNzM0LCAwLjAwMjcyNywgMC4wMDI3MjQsIDAuMDAyNzIyLCAwLjAwMjcxOCwgMC4wMDI3MiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUzEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTM0MzI7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxMzQzMDE7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxMzQzMjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyNzEsIDAuMDAwMjUzLCAwLjAwMDI0MywgMC4wMDAyMzksIDAuMDAwMjM4LCAwLjAwMDIzNSwgMC4wMDAyMzciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDE0MzEsIDAuMDAxNDE3LCAwLjAwMTQxLCAwLjAwMTQwNywgMC4wMDE0MDUsIDAuMDAxNDAzLCAwLjAwMTQwNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjEyMzE5ODsKLSAgICBmdW5jdGlvbiA6ICIoISgoUzEgKChTMCBEKSArICghUzAgQykpKSArICghUzEgKChTMCBCKSArICghUzAgQSkpKSkpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yOTEyNTIsIDAuMzM1MTI2LCAwLjU4MDU2NSwgMC43OTY1OTksIDEuMDg0NDcsIDEuNjYwMDMsIDIuMDE5NjgiLCBcCi0gICAgICAgICAgIjAuMzAyNjA4LCAwLjM0NjU3MSwgMC41OTE5NzksIDAuODA4MDE5LCAxLjA5NTg5LCAxLjY3MTQ1LCAyLjAzMTE3IiwgXAotICAgICAgICAgICIwLjMxNTY5OCwgMC4zNTk2NjcsIDAuNjA1MTIxLCAwLjgyMTA3OCwgMS4xMDkwOCwgMS42ODQ1NSwgMi4wNDQxOCIsIFwKLSAgICAgICAgICAiMC4zMjgyMjMsIDAuMzcyMTA1LCAwLjYxNzUyMiwgMC44MzM1NywgMS4xMjE0MywgMS42OTY5OCwgMi4wNTY2NiIsIFwKLSAgICAgICAgICAiMC4zNDA1NDYsIDAuMzg0NDM3LCAwLjYyOTkwOCwgMC44NDU5MDksIDEuMTMzNzksIDEuNzA5MzIsIDIuMDY5MDIiLCBcCi0gICAgICAgICAgIjAuMzU5OTE2LCAwLjQwMzc5NiwgMC42NDkyNzEsIDAuODY1MjYsIDEuMTUzMTEsIDEuNzI4NjgsIDIuMDg4NDUiLCBcCi0gICAgICAgICAgIjAuMzc2NDMzLCAwLjQyMDMxNCwgMC42NjU3MTIsIDAuODgxNzgyLCAxLjE2OTY0LCAxLjc0NTE5LCAyLjEwNTExIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE3MDYwNSwgMC4yNTUxMzEsIDAuNzQ4MzM0LCAxLjE4NzAyLCAxLjc2OTYxLCAyLjk0MzY2LCAzLjY3MDE3IiwgXAotICAgICAgICAgICIwLjE3MDQ0MywgMC4yNTUwMzUsIDAuNzQ3MDg3LCAxLjE4NTE4LCAxLjc2OTgzLCAyLjkzODk5LCAzLjY3NjA0IiwgXAotICAgICAgICAgICIwLjE3MDU0NywgMC4yNTUwNiwgMC43NDY1NDEsIDEuMTg2OTMsIDEuNzY3ODcsIDIuOTM5NSwgMy42NzAxIiwgXAotICAgICAgICAgICIwLjE3MDU3NywgMC4yNTUwMjEsIDAuNzQ4MzEyLCAxLjE4NzAzLCAxLjc2OTY0LCAyLjkzOTI3LCAzLjY3NTYyIiwgXAotICAgICAgICAgICIwLjE3MDQ5LCAwLjI1NTAzNCwgMC43NDY3NTIsIDEuMTg2OTcsIDEuNzcyNDcsIDIuOTQzNDYsIDMuNjY5OTMiLCBcCi0gICAgICAgICAgIjAuMTcwNTcxLCAwLjI1NTA0LCAwLjc0ODY0MSwgMS4xODY5MiwgMS43Njk4LCAyLjkzOTA0LCAzLjY3NjA2IiwgXAotICAgICAgICAgICIwLjE3MDU3MiwgMC4yNTUwMTIsIDAuNzQ4MTYxLCAxLjE4NzA2LCAxLjc2OTcxLCAyLjkzOTEsIDMuNjY4MTMiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzAxNDY1LCAwLjM1MTUsIDAuNjMxOTY3LCAwLjg3ODkyNywgMS4yMDgxOSwgMS44NjY1NiwgMi4yNzgwMiIsIFwKLSAgICAgICAgICAiMC4zMTMwOTgsIDAuMzYzMTIxLCAwLjY0MzU4NiwgMC44OTA1NDksIDEuMjE5ODQsIDEuODc4MTksIDIuMjg5NjMiLCBcCi0gICAgICAgICAgIjAuMzI2OTQyLCAwLjM3Njk2OSwgMC42NTc0NDMsIDAuOTA0NDQxLCAxLjIzMzcsIDEuODkyMDQsIDIuMzAzNzIiLCBcCi0gICAgICAgICAgIjAuMzQwNjE2LCAwLjM5MDY0NywgMC42NzEwNSwgMC45MTgwNzksIDEuMjQ3MzQsIDEuOTA1NzEsIDIuMzE3MTMiLCBcCi0gICAgICAgICAgIjAuMzU0Mjc3LCAwLjQwNDMwNywgMC42ODQ3MTYsIDAuOTMxNzM5LCAxLjI2MSwgMS45MTkzOSwgMi4zMzA3OSIsIFwKLSAgICAgICAgICAiMC4zNzU5OTEsIDAuNDI2MDE4LCAwLjcwNjQzMywgMC45NTM0NTEsIDEuMjgyNzEsIDEuOTQxMTMsIDIuMzUyNDkiLCBcCi0gICAgICAgICAgIjAuMzk0ODU2LCAwLjQ0NDg3NywgMC43MjUzNDgsIDAuOTcyMzEsIDEuMzAxNiwgMS45NTk5NCwgMi4zNzEzOCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xODc0MSwgMC4yODI4OCwgMC44MzU2OTksIDEuMzI2ODksIDEuOTgxNTcsIDMuMjg2NywgNC4xMDcxNiIsIFwKLSAgICAgICAgICAiMC4xODczNDYsIDAuMjgyODUzLCAwLjgzNTYzMSwgMS4zMjY3OSwgMS45ODEyMiwgMy4yOTE0LCA0LjEwNzYyIiwgXAotICAgICAgICAgICIwLjE4NzQ4NywgMC4yODI2NzgsIDAuODM1Njc1LCAxLjMyNDA1LCAxLjk4MSwgMy4yODgxNiwgNC4xMDcxOCIsIFwKLSAgICAgICAgICAiMC4xODc0MSwgMC4yODI3NTQsIDAuODM2MDMzLCAxLjMyNjUyLCAxLjk4MDk2LCAzLjI5MTA0LCA0LjEwNTU1IiwgXAotICAgICAgICAgICIwLjE4NzQxNywgMC4yODI3NTEsIDAuODM0NDA0LCAxLjMyNjQ0LCAxLjk4MDksIDMuMjg2ODMsIDQuMTA1MTUiLCBcCi0gICAgICAgICAgIjAuMTg3NDE5LCAwLjI4Mjc0NywgMC44MzQxNDEsIDEuMzI2NDcsIDEuOTgwODksIDMuMjg0NzEsIDQuMTA0OTIiLCBcCi0gICAgICAgICAgIjAuMTg3MzQ5LCAwLjI4Mjc2OCwgMC44MzU1NTUsIDEuMzI2NjYsIDEuOTc3NjMsIDMuMjkwNzgsIDQuMTA3NzEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjkzOTMyLCAwLjMzNzgwNywgMC41ODMyNjcsIDAuNzk5Mjc5LCAxLjA4NzE2LCAxLjY2Mjg3LCAyLjAyMjM4IiwgXAotICAgICAgICAgICIwLjMwNTQxMSwgMC4zNDkyNzgsIDAuNTk0Nzc1LCAwLjgxMDc1NCwgMS4wOTg2MiwgMS42NzQzLCAyLjAzMzg0IiwgXAotICAgICAgICAgICIwLjMxODU2MSwgMC4zNjI0NDIsIDAuNjA3ODgsIDAuODIzOTExLCAxLjExMTc3LCAxLjY4NzM4LCAyLjA0NzAxIiwgXAotICAgICAgICAgICIwLjMzMDkzNCwgMC4zNzQ5MDQsIDAuNjIwMzc3LCAwLjgzNjM3OCwgMS4xMjQyMiwgMS42OTk3OSwgMi4wNTk0NyIsIFwKLSAgICAgICAgICAiMC4zNDMyMjgsIDAuMzg3MjA1LCAwLjYzMjY1NiwgMC44NDg3MSwgMS4xMzY1OSwgMS43MTIwOSwgMi4wNzE3MyIsIFwKLSAgICAgICAgICAiMC4zNjI1NzIsIDAuNDA2NDQ2LCAwLjY1MTkxMiwgMC44Njc5MTgsIDEuMTU1NzksIDEuNzMxNTIsIDIuMDkxMDIiLCBcCi0gICAgICAgICAgIjAuMzc5MTYzLCAwLjQyMzEwNCwgMC42Njg1NjEsIDAuODg0NTE4LCAxLjE3MjM5LCAxLjc0Nzk5LCAyLjEwNzYyIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE3MDYxNywgMC4yNTUyNDYsIDAuNzQ4Mzg5LCAxLjE4NzAxLCAxLjc3MjU1LCAyLjk0MzkxLCAzLjY3MDI5IiwgXAotICAgICAgICAgICIwLjE3MDYxNiwgMC4yNTUyNDUsIDAuNzQ2NzgsIDEuMTg3LCAxLjc2OTY1LCAyLjk0Mzk0LCAzLjY3MDI5IiwgXAotICAgICAgICAgICIwLjE3MDU5OSwgMC4yNTUyMzMsIDAuNzQ4MzUsIDEuMTg3MDUsIDEuNzY5NjUsIDIuOTQzOSwgMy42NzU3NSIsIFwKLSAgICAgICAgICAiMC4xNzA1NjcsIDAuMjU1MDU3LCAwLjc0ODY0NywgMS4xODUxOCwgMS43Njk4MSwgMi45MzkwMSwgMy42NzU4NiIsIFwKLSAgICAgICAgICAiMC4xNzA1NjMsIDAuMjU1MDYyLCAwLjc0NjYwNCwgMS4xODY5NCwgMS43NzI0MiwgMi45Mzk1OSwgMy42NzU3MiIsIFwKLSAgICAgICAgICAiMC4xNzA2MDMsIDAuMjU1MDM0LCAwLjc0Njc2LCAxLjE4Njk5LCAxLjc3MjQ0LCAyLjk0Mjk4LCAzLjY3MDIxIiwgXAotICAgICAgICAgICIwLjE3MDUzOSwgMC4yNTUwMzYsIDAuNzQ2NzIsIDEuMTg2OTMsIDEuNzcyMjksIDIuOTM5NiwgMy42Njk5NSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMDIzNjUsIDAuMzUyNCwgMC42MzI4NjcsIDAuODc5ODI4LCAxLjIwOTA5LCAxLjg2NzQ4LCAyLjI3ODkyIiwgXAotICAgICAgICAgICIwLjMxNDEzMywgMC4zNjQxNywgMC42NDQ2NDIsIDAuODkxNjAxLCAxLjIyMDg2LCAxLjg3OTI5LCAyLjI5MDY3IiwgXAotICAgICAgICAgICIwLjMyODA3NiwgMC4zNzgwOTQsIDAuNjU4NTY0LCAwLjkwNTUyNCwgMS4yMzQ4NiwgMS44OTMxNiwgMi4zMDQ2IiwgXAotICAgICAgICAgICIwLjM0MTgyMiwgMC4zOTE4MzMsIDAuNjcyMzA3LCAwLjkxOTI2NSwgMS4yNDg1MywgMS45MDY5LCAyLjMxODMzIiwgXAotICAgICAgICAgICIwLjM1NTQ4MywgMC40MDU1MTMsIDAuNjg1OTM0LCAwLjkzMjk0NiwgMS4yNjIyMSwgMS45MjA2MywgMi4zMzE5OSIsIFwKLSAgICAgICAgICAiMC4zNzc0MjksIDAuNDI3NDY3LCAwLjcwNzk0NCwgMC45NTQ5MDEsIDEuMjg0MTYsIDEuOTQyNTcsIDIuMzUzOTYiLCBcCi0gICAgICAgICAgIjAuMzk2MjY3LCAwLjQ0NjI5OCwgMC43MjY3MTIsIDAuOTczNzMxLCAxLjMwMjk5LCAxLjk2MTQsIDIuMzcyNzciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTg3NDE1LCAwLjI4Mjg3OCwgMC44MzU2OTUsIDEuMzI2ODgsIDEuOTgxNjYsIDMuMjkxNDYsIDQuMTA3MiIsIFwKLSAgICAgICAgICAiMC4xODc0MDIsIDAuMjgyNzgsIDAuODM1NTg0LCAxLjMyNjY4LCAxLjk4MTM4LCAzLjI4NDMsIDQuMTA3NjQiLCBcCi0gICAgICAgICAgIjAuMTg3MzQ4LCAwLjI4Mjc4NSwgMC44MzU1OSwgMS4zMjY3MywgMS45ODAzNiwgMy4yOTA3MiwgNC4xMDc1MyIsIFwKLSAgICAgICAgICAiMC4xODczNDQsIDAuMjgyNzcxLCAwLjgzNTU1OSwgMS4zMjY2MywgMS45ODEyMSwgMy4yODk3OCwgNC4xMDc3MSIsIFwKLSAgICAgICAgICAiMC4xODc0MjYsIDAuMjgyNzU2LCAwLjgzNDQ2NywgMS4zMjY0NCwgMS45ODA5MywgMy4yODcwNCwgNC4xMDQ5NiIsIFwKLSAgICAgICAgICAiMC4xODc0LCAwLjI4Mjc2LCAwLjgzNTUyNSwgMS4zMjY1MSwgMS45ODA4LCAzLjI5MDQ4LCA0LjEwNzEzIiwgXAotICAgICAgICAgICIwLjE4NzQyMiwgMC4yODI3NDksIDAuODM0MDgzLCAxLjMyNjQ1LCAxLjk4MDg0LCAzLjI4NDI2LCA0LjEwNDg4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI4NjEyNSwgMC4zMzAwMjEsIDAuNTc1MzczLCAwLjc5MTI4OCwgMS4wNzkxMywgMS42NTQ3MSwgMi4wMTQzMSIsIFwKLSAgICAgICAgICAiMC4yOTc2MywgMC4zNDE1MzQsIDAuNTg2ODksIDAuODAyODQ2LCAxLjA5MDY1LCAxLjY2NjIyLCAyLjAyNTgzIiwgXAotICAgICAgICAgICIwLjMxMDg4MywgMC4zNTQ3OTUsIDAuNjAwMTUsIDAuODE2MTE2LCAxLjEwMzkxLCAxLjY3OTQ3LCAyLjAzOTA4IiwgXAotICAgICAgICAgICIwLjMyMzQ2MSwgMC4zNjczNzIsIDAuNjEyNzI3LCAwLjgyODY5MSwgMS4xMTY0OSwgMS42OTIwNSwgMi4wNTE2NiIsIFwKLSAgICAgICAgICAiMC4zMzU5MywgMC4zNzk3NDIsIDAuNjI1MDM0LCAwLjg0MTEyNCwgMS4xMjg4OCwgMS43MDQ0LCAyLjA2NDEzIiwgXAotICAgICAgICAgICIwLjM1NTI3NCwgMC4zOTkwODcsIDAuNjQ0NDM4LCAwLjg2MDM5NCwgMS4xNDgyNCwgMS43MjM5MiwgMi4wODM0MSIsIFwKLSAgICAgICAgICAiMC4zNzE4MywgMC40MTU2NDEsIDAuNjYwOTkxLCAwLjg3Njk0OSwgMS4xNjQ4LCAxLjc0MDQ5LCAyLjA5OTk3Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE3MDA4LCAwLjI1NDYzNSwgMC43NDYyMDEsIDEuMTg2NjYsIDEuNzcxOTcsIDIuOTM3MjksIDMuNjY5NjkiLCBcCi0gICAgICAgICAgIjAuMTcwMDg1LCAwLjI1NDYwNywgMC43NDYyMDUsIDEuMTg2ODgsIDEuNzY5NTYsIDIuOTM5NDgsIDMuNjY5ODQiLCBcCi0gICAgICAgICAgIjAuMTcwMDY4LCAwLjI1NDYwNywgMC43NDYyMDQsIDEuMTg2ODcsIDEuNzY5NiwgMi45Mzk1NiwgMy42Njk4OSIsIFwKLSAgICAgICAgICAiMC4xNzAwNjUsIDAuMjU0NjA3LCAwLjc0NjIwNCwgMS4xODY4OCwgMS43Njk1OSwgMi45Mzk1MSwgMy42Njk4OSIsIFwKLSAgICAgICAgICAiMC4xNzAxNDQsIDAuMjU0NjI0LCAwLjc0ODAxNywgMS4xODY3NiwgMS43Njk0MiwgMi45Mzg3NywgMy42NzYwMSIsIFwKLSAgICAgICAgICAiMC4xNzAxNiwgMC4yNTQ2MzIsIDAuNzQ2NDU5LCAxLjE4NjcxLCAxLjc2OTM4LCAyLjk0MzUxLCAzLjY2OTY1IiwgXAotICAgICAgICAgICIwLjE3MDE2MSwgMC4yNTQ2MzQsIDAuNzQ2NDUzLCAxLjE4NjcxLCAxLjc2OTM3LCAyLjkzNTk2LCAzLjY2OTY1Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI5ODEyLCAwLjM0ODExNiwgMC42Mjg1MjQsIDAuODc1NTI3LCAxLjIwNDc4LCAxLjg2MzExLCAyLjI3NDUzIiwgXAotICAgICAgICAgICIwLjMwOTcxNiwgMC4zNTk3MTUsIDAuNjQwMTQxLCAwLjg4NzA4NSwgMS4yMTY0MywgMS44NzQ2OCwgMi4yODYxMiIsIFwKLSAgICAgICAgICAiMC4zMjMzNTksIDAuMzczMzY0LCAwLjY1MzcyMSwgMC45MDA3MzYsIDEuMjI5OTgsIDEuODg4MzMsIDIuMjk5NzQiLCBcCi0gICAgICAgICAgIjAuMzM2OTI1LCAwLjM4NjkyOCwgMC42NjczNiwgMC45MTQzNzUsIDEuMjQzNTcsIDEuOTAxOSwgMi4zMTMzMSIsIFwKLSAgICAgICAgICAiMC4zNTA3NDksIDAuNDAwNzUzLCAwLjY4MTEyMiwgMC45MjgxMjcsIDEuMjU3MzcsIDEuOTE1NzQsIDIuMzI3MTIiLCBcCi0gICAgICAgICAgIjAuMzcyMzU0LCAwLjQyMjM2LCAwLjcwMjc0MywgMC45NDk3NTQsIDEuMjc4OTksIDEuOTM3MzQsIDIuMzQ4NzQiLCBcCi0gICAgICAgICAgIjAuMzkxMDQzLCAwLjQ0MTA1NiwgMC43MjE0ODEsIDAuOTY4NDMyLCAxLjI5NzY3LCAxLjk1NjAzLCAyLjM2NzQ2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE4NzMwMiwgMC4yODI2MDEsIDAuODM0NDc3LCAxLjMyNjUzLCAxLjk4MTIsIDMuMjkyMTIsIDQuMTA0NjYiLCBcCi0gICAgICAgICAgIjAuMTg3MjY3LCAwLjI4MjcyMiwgMC44MzU0MzcsIDEuMzI2NTUsIDEuOTgwMTYsIDMuMjg5NTIsIDQuMTA3NTYiLCBcCi0gICAgICAgICAgIjAuMTg3MzQ5LCAwLjI4MjY4NSwgMC44MzU4NzEsIDEuMzI2NDEsIDEuOTgwNDgsIDMuMjkwNDIsIDQuMTA0NzgiLCBcCi0gICAgICAgICAgIjAuMTg3Mjk3LCAwLjI4MjU1OSwgMC44MzU0NywgMS4zMjM5OCwgMS45Nzk3MSwgMy4yODc3MiwgNC4xMDQxIiwgXAotICAgICAgICAgICIwLjE4NzM0NSwgMC4yODI2NzUsIDAuODMzOTg3LCAxLjMyNjM1LCAxLjk4MDI5LCAzLjI4ODkzLCA0LjEwNDU5IiwgXAotICAgICAgICAgICIwLjE4NzMyLCAwLjI4MjQ1MiwgMC44MzU4MSwgMS4zMjYyNSwgMS45ODA4MiwgMy4yOTExMSwgNC4xMDM4OCIsIFwKLSAgICAgICAgICAiMC4xODcyOTMsIDAuMjgyNTgsIDAuODM1NDIzLCAxLjMyNjU5LCAxLjk3ODIzLCAzLjI4OTkzLCA0LjEwNzc2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkQiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI4ODE4OCwgMC4zMzIwOTIsIDAuNTc3NDI3LCAwLjc5MzM0LCAxLjA4MTE5LCAxLjY1Njc1LCAyLjAxNjM3IiwgXAotICAgICAgICAgICIwLjI5OTY1NiwgMC4zNDM1MzEsIDAuNTg4ODgzLCAwLjgwNDgsIDEuMDkyNjQsIDEuNjY4MjIsIDIuMDI3ODEiLCBcCi0gICAgICAgICAgIjAuMzEyNzYyLCAwLjM1NjY2MywgMC42MDIwMiwgMC44MTc5OTMsIDEuMTA1NzksIDEuNjgxMzQsIDIuMDQwOTUiLCBcCi0gICAgICAgICAgIjAuMzI1MjQ1LCAwLjM2OTEzNCwgMC42MTQ0ODYsIDAuODMwNDAyLCAxLjExODI0LCAxLjY5MzgzLCAyLjA1MzQyIiwgXAotICAgICAgICAgICIwLjMzNzQ5OSwgMC4zODEzODgsIDAuNjI2NzQsIDAuODQyNjk0LCAxLjEzMDUsIDEuNzA2MDcsIDIuMDY1NjgiLCBcCi0gICAgICAgICAgIjAuMzU2ODA1LCAwLjQwMDY4LCAwLjY0NjAyOSwgMC44NjE5NDIsIDEuMTQ5ODgsIDEuNzI1MzYsIDIuMDg0OTYiLCBcCi0gICAgICAgICAgIjAuMzczMywgMC40MTcxOTIsIDAuNjYyNTQ0LCAwLjg3ODQ1OCwgMS4xNjYzLCAxLjc0MTg4LCAyLjEwMTQ4Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE3MDEyMiwgMC4yNTQ2NjgsIDAuNzQ2MDM1LCAxLjE4NjY4LCAxLjc3MjI0LCAyLjkzNjcsIDMuNjY5NjciLCBcCi0gICAgICAgICAgIjAuMTcwMDc4LCAwLjI1NDYzMSwgMC43NDYyLCAxLjE4NjY3LCAxLjc2OTMzLCAyLjkzNzI5LCAzLjY2OTc4IiwgXAotICAgICAgICAgICIwLjE3MDExOCwgMC4yNTQ2MTYsIDAuNzQ2MjA3LCAxLjE4Njg2LCAxLjc2OTYsIDIuOTM5MzMsIDMuNjY5OTMiLCBcCi0gICAgICAgICAgIjAuMTcwMDcyLCAwLjI1NDYzNSwgMC43NDYxOTksIDEuMTg2NjYsIDEuNzY5MzEsIDIuOTM3NCwgMy42Njk3NiIsIFwKLSAgICAgICAgICAiMC4xNzAwNzMsIDAuMjU0NjM3LCAwLjc0NjIwNCwgMS4xODY5MSwgMS43Njk2LCAyLjkzOTUzLCAzLjY2OTg0IiwgXAotICAgICAgICAgICIwLjE3MDA1MiwgMC4yNTQ0ODYsIDAuNzQ2MTg2LCAxLjE4NjY3LCAxLjc3MjI4LCAyLjkzNjg1LCAzLjY2OTY2IiwgXAotICAgICAgICAgICIwLjE3MDA3MSwgMC4yNTQ2MzYsIDAuNzQ2MTk4LCAxLjE4NjY2LCAxLjc2OTI4LCAyLjkzNzAyLCAzLjY2OTQ0Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI5ODM0NSwgMC4zNDgzNDIsIDAuNjI4NzU3LCAwLjg3NTc1NywgMS4yMDUwMSwgMS44NjMzMSwgMi4yNzQ3NSIsIFwKLSAgICAgICAgICAiMC4zMTAwMzgsIDAuMzYwMDQ3LCAwLjY0MDQzNSwgMC44ODc0MTksIDEuMjE2NjYsIDEuODc0OTgsIDIuMjg2NDMiLCBcCi0gICAgICAgICAgIjAuMzI0MDEyLCAwLjM3NDAyMSwgMC42NTQzODcsIDAuOTAxMzkzLCAxLjIzMDYzLCAxLjg4ODk3LCAyLjMwMDQiLCBcCi0gICAgICAgICAgIjAuMzM3NjYsIDAuMzg3NjYyLCAwLjY2ODA5NCwgMC45MTUwOCwgMS4yNDQzMSwgMS45MDI2NCwgMi4zMTQxNCIsIFwKLSAgICAgICAgICAiMC4zNTE0MSwgMC40MDE0MjEsIDAuNjgxNzg2LCAwLjkyODc5NCwgMS4yNTgwNCwgMS45MTY0LCAyLjMyNzc5IiwgXAotICAgICAgICAgICIwLjM3MzE4NiwgMC40MjMxODUsIDAuNzAzNjE5LCAwLjk1MDYwMSwgMS4yNzk4MywgMS45MzgxNiwgMi4zNDk2NiIsIFwKLSAgICAgICAgICAiMC4zOTIxMzgsIDAuNDQyMTQxLCAwLjcyMjUyMSwgMC45Njk1MTYsIDEuMjk4NzUsIDEuOTU3MTYsIDIuMzY4NTEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTg3MzAyLCAwLjI4MjYxMiwgMC44MzQzODgsIDEuMzI2NzUsIDEuOTc5NTYsIDMuMjkyMzIsIDQuMTA0NDkiLCBcCi0gICAgICAgICAgIjAuMTg3MzQzLCAwLjI4MjY5NSwgMC44MzU2MjEsIDEuMzI2NDYsIDEuOTgwNTMsIDMuMjg2ODMsIDQuMTA1NjUiLCBcCi0gICAgICAgICAgIjAuMTg3MzQyLCAwLjI4MjY4NSwgMC44MzU4NTUsIDEuMzI2MzksIDEuOTgwNDIsIDMuMjg2OTUsIDQuMTA0ODUiLCBcCi0gICAgICAgICAgIjAuMTg3Mjk2LCAwLjI4MjU2MiwgMC44MzU0OCwgMS4zMjQ0NSwgMS45ODA0MiwgMy4yODcyMiwgNC4xMDc0MiIsIFwKLSAgICAgICAgICAiMC4xODczMzksIDAuMjgyNjc2LCAwLjgzNDQ4OCwgMS4zMjYzNSwgMS45ODA0NiwgMy4yOTA4NywgNC4xMDQ2IiwgXAotICAgICAgICAgICIwLjE4NzMwNSwgMC4yODI1ODgsIDAuODM1NDcyLCAxLjMyNDQxLCAxLjk4MDM1LCAzLjI4NzA2LCA0LjEwNzYxIiwgXAotICAgICAgICAgICIwLjE4NzM0NiwgMC4yODI2NjksIDAuODM0NTU3LCAxLjMyNjMxLCAxLjk4MDI1LCAzLjI4NjQ3LCA0LjEwNDQxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlMwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zNDExNDUsIDAuMzg1MDQ1LCAwLjYzMDU2MywgMC44NDY1MjUsIDEuMTM0NDIsIDEuNzEwMDQsIDIuMDY5NjciLCBcCi0gICAgICAgICAgIjAuMzUzNDY3LCAwLjM5NzM0NCwgMC42NDI4NTQsIDAuODU4ODE0LCAxLjE0NjgyLCAxLjcyMjMxLCAyLjA4MTk3IiwgXAotICAgICAgICAgICIwLjM2ODU3OSwgMC40MTI1NjIsIDAuNjU3OTU1LCAwLjg3NDA5MSwgMS4xNjE5LCAxLjczNzQ1LCAyLjA5NzA5IiwgXAotICAgICAgICAgICIwLjM4MzkxMywgMC40Mjc4OTgsIDAuNjczMjk1LCAwLjg4OTM4MiwgMS4xNzcyMywgMS43NTI3OSwgMi4xMTI0MyIsIFwKLSAgICAgICAgICAiMC4zOTkwMDMsIDAuNDQyOTAzLCAwLjY4ODQxOCwgMC45MDQzOCwgMS4xOTIyNiwgMS43Njc4OCwgMi4xMjc1MyIsIFwKLSAgICAgICAgICAiMC40MjMxMDksIDAuNDY3MDc2LCAwLjcxMjUyMSwgMC45Mjg1MjUsIDEuMjE2MzcsIDEuNzkxOTksIDIuMTUxNjIiLCBcCi0gICAgICAgICAgIjAuNDQzMTcyLCAwLjQ4NzA3MywgMC43MzI1OTEsIDAuOTQ4NTU0LCAxLjIzNjUyLCAxLjgxMjA3LCAyLjE3MTciKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTcwNjI2LCAwLjI1NTI4OSwgMC43NDg2OTksIDEuMTg3MSwgMS43NzI0NCwgMi45Mzk1MSwgMy42NzU5NyIsIFwKLSAgICAgICAgICAiMC4xNzA2MTgsIDAuMjU1MjQsIDAuNzQ4NzEsIDEuMTg3MDksIDEuNzcyNDksIDIuOTQzMzIsIDMuNjc2MzciLCBcCi0gICAgICAgICAgIjAuMTcwNTkyLCAwLjI1NTEwMiwgMC43NDgyNjgsIDEuMTg3MDMsIDEuNzcyNjEsIDIuOTQzNjgsIDMuNjc2MjUiLCBcCi0gICAgICAgICAgIjAuMTcwNjA1LCAwLjI1NTA0NiwgMC43NDgxNzEsIDEuMTg3MTEsIDEuNzcyMzMsIDIuOTQzNzgsIDMuNjc1OTIiLCBcCi0gICAgICAgICAgIjAuMTcwNjEyLCAwLjI1NTI3MSwgMC43NDg3MDIsIDEuMTg3MDUsIDEuNzcyNjEsIDIuOTQzNjksIDMuNjc1OTgiLCBcCi0gICAgICAgICAgIjAuMTcwNjEsIDAuMjU1MTYxLCAwLjc0ODY5NCwgMS4xODcyNiwgMS43NzI0NCwgMi45NDM5LCAzLjY3NTc4IiwgXAotICAgICAgICAgICIwLjE3MDYyNiwgMC4yNTUyODEsIDAuNzQ4NywgMS4xODcwNCwgMS43NzI2MywgMi45NDM3NCwgMy42NzU5MyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zNDI5NDEsIDAuMzkyOTc0LCAwLjY3MzQ1MSwgMC45MjA0MDgsIDEuMjQ5NjYsIDEuOTA4MSwgMi4zMTk0NyIsIFwKLSAgICAgICAgICAiMC4zNTUwNzgsIDAuNDA1MTA4LCAwLjY4NTUyOSwgMC45MzI1NDIsIDEuMjYxOCwgMS45MjAxNiwgMi4zMzE1OSIsIFwKLSAgICAgICAgICAiMC4zNjk4MjMsIDAuNDE5ODQsIDAuNzAwMzEzLCAwLjk0NzI3MiwgMS4yNzY1OCwgMS45MzQ5LCAyLjM0NjM1IiwgXAotICAgICAgICAgICIwLjM4NDQ4OSwgMC40MzQ1NDEsIDAuNzE0OTUzLCAwLjk2MTk3NCwgMS4yOTEyMywgMS45NDk2NCwgMi4zNjEwMiIsIFwKLSAgICAgICAgICAiMC4zOTg3MzYsIDAuNDQ4NzY3LCAwLjcyOTE3MSwgMC45NzYyMDEsIDEuMzA1NDYsIDEuOTYzODQsIDIuMzc1MjUiLCBcCi0gICAgICAgICAgIjAuNDIxMTA3LCAwLjQ3MTEzNSwgMC43NTE1NDMsIDAuOTk4NTY4LCAxLjMyNzgzLCAxLjk4NjIyLCAyLjM5NzYxIiwgXAotICAgICAgICAgICIwLjQzODk5OSwgMC40ODkwMjgsIDAuNzY5NDQ3LCAxLjAxNjQ2LCAxLjM0NTcyLCAyLjAwNDE1LCAyLjQxNTUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTg3NDYyLCAwLjI4MzA0NCwgMC44MzU4ODUsIDEuMzI2NTYsIDEuOTgxMzksIDMuMjkxOCwgNC4xMDczNSIsIFwKLSAgICAgICAgICAiMC4xODc0NjIsIDAuMjgzMDQ2LCAwLjgzNTg3OSwgMS4zMjY1NSwgMS45ODE1NywgMy4yOTIzOSwgNC4xMDcxMiIsIFwKLSAgICAgICAgICAiMC4xODc0MTEsIDAuMjgzMDE2LCAwLjgzNjI1NCwgMS4zMjcxMSwgMS45ODEzOSwgMy4yOTMyMywgNC4xMDc4NCIsIFwKLSAgICAgICAgICAiMC4xODc0NzcsIDAuMjgyOTMzLCAwLjgzNjA4MiwgMS4zMjY4MiwgMS45ODEzOCwgMy4yOTI1MSwgNC4xMDczNSIsIFwKLSAgICAgICAgICAiMC4xODc0NTcsIDAuMjgzMDIyLCAwLjgzNTk5NCwgMS4zMjY0NywgMS45ODEzLCAzLjI5MTYxLCA0LjEwNzk3IiwgXAotICAgICAgICAgICIwLjE4NzQ3OCwgMC4yODMwNDIsIDAuODM1ODU4LCAxLjMyNjkxLCAxLjk4MTU4LCAzLjI5MTYzLCA0LjEwNzg0IiwgXAotICAgICAgICAgICIwLjE4NzQ1NCwgMC4yODMwMjEsIDAuODM1ODMsIDEuMzI2ODksIDEuOTgxNTIsIDMuMjkxNSwgNC4xMDc4OSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjc5MDIzLCAwLjMyMjkxNCwgMC41Njg0MjYsIDAuNzg0Mzg4LCAxLjA3MjI5LCAxLjY0Nzg5LCAyLjAwNzU0IiwgXAotICAgICAgICAgICIwLjI4OTE1NiwgMC4zMzMwMzYsIDAuNTc4NDgsIDAuNzk0NTA1LCAxLjA4MjM3LCAxLjY1NzkyLCAyLjAxNzYxIiwgXAotICAgICAgICAgICIwLjMwMjA2OCwgMC4zNDU5NiwgMC41OTE0NzMsIDAuODA3NDM1LCAxLjA5NTM0LCAxLjY3MDk0LCAyLjAzMDU5IiwgXAotICAgICAgICAgICIwLjMxNTE1NSwgMC4zNTkxMzEsIDAuNjA0NTczLCAwLjgyMDU3NiwgMS4xMDg0MywgMS42ODQwNCwgMi4wNDM2NyIsIFwKLSAgICAgICAgICAiMC4zMjgwODMsIDAuMzcyMDY1LCAwLjYxNzUxLCAwLjgzMzQ4NiwgMS4xMjEzOCwgMS42OTY5NSwgMi4wNTY3NSIsIFwKLSAgICAgICAgICAiMC4zNDkxMTgsIDAuMzkzMDk1LCAwLjYzODU0LCAwLjg1NDUzOCwgMS4xNDIzOSwgMS43MTgwMSwgMi4wNzc3MiIsIFwKLSAgICAgICAgICAiMC4zNjYwNjIsIDAuNDEwMDUyLCAwLjY1NTUwMiwgMC44NzE0NjYsIDEuMTU5MzUsIDEuNzM0OTgsIDIuMDk0NTkiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTcwNjE4LCAwLjI1NTI2NywgMC43NDg3MDEsIDEuMTg3MDYsIDEuNzcyNDUsIDIuOTQzNzgsIDMuNjcwNTYiLCBcCi0gICAgICAgICAgIjAuMTcwNjMyLCAwLjI1NTI5OSwgMC43NDg3MDEsIDEuMTg3MDUsIDEuNzcyNjMsIDIuOTQzNzgsIDMuNjc1NzUiLCBcCi0gICAgICAgICAgIjAuMTcwNjE5LCAwLjI1NTI2MSwgMC43NDg3MDQsIDEuMTg3MDYsIDEuNzcwMTMsIDIuOTM5NTQsIDMuNjc2MTMiLCBcCi0gICAgICAgICAgIjAuMTcwNjAzLCAwLjI1NTE0NywgMC43NDg2OTksIDEuMTg3MjcsIDEuNzY5OTQsIDIuOTM5NSwgMy42NzU2OCIsIFwKLSAgICAgICAgICAiMC4xNzA2MDQsIDAuMjU1MDQ5LCAwLjc0ODAyMiwgMS4xODY5MywgMS43NzIyOSwgMi45NDM3LCAzLjY3NjMzIiwgXAotICAgICAgICAgICIwLjE3MDU5MSwgMC4yNTUwOCwgMC43NDg2OTgsIDEuMTg3MjQsIDEuNzcyMjcsIDIuOTM5MzEsIDMuNjc2MSIsIFwKLSAgICAgICAgICAiMC4xNzA1ODUsIDAuMjU1MDc2LCAwLjc0ODY5OSwgMS4xODcxLCAxLjc3MjU0LCAyLjkzOTcxLCAzLjY3NTU1Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI4NjExMiwgMC4zMzYxMzEsIDAuNjE2NTgsIDAuODYzNjAxLCAxLjE5Mjg5LCAxLjg1MTI0LCAyLjI2MjY3IiwgXAotICAgICAgICAgICIwLjI5NjYwOSwgMC4zNDY2NCwgMC42MjcwODcsIDAuODc0MDkzLCAxLjIwMzM4LCAxLjg2MTg4LCAyLjI3MzE4IiwgXAotICAgICAgICAgICIwLjMwOTYxOSwgMC4zNTk2NzcsIDAuNjQwMTg3LCAwLjg4NzEyNywgMS4yMTY0MiwgMS44NzQ3NiwgMi4yODYyMiIsIFwKLSAgICAgICAgICAiMC4zMjMwODgsIDAuMzczMTA4LCAwLjY1MzU3NywgMC45MDA2MDUsIDEuMjI5ODYsIDEuODg4MTgsIDIuMjk5NjQiLCBcCi0gICAgICAgICAgIjAuMzM2NjEzLCAwLjM4NjYyNCwgMC42NjcxMDgsIDAuOTE0MjEsIDEuMjQzMzgsIDEuOTAxNjgsIDIuMzEzMTYiLCBcCi0gICAgICAgICAgIjAuMzU4NTE0LCAwLjQwODUzNSwgMC42ODkwMTUsIDAuOTM2MDYyLCAxLjI2NTI5LCAxLjkyMzYsIDIuMzM1MDciLCBcCi0gICAgICAgICAgIjAuMzc3NDc0LCAwLjQyNzQ5NywgMC43MDc5NTksIDAuOTU0OTcxLCAxLjI4NDI2LCAxLjk0MjU5LCAyLjM1NDA0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE4NzQzMSwgMC4yODMwMDksIDAuODM1NzQzLCAxLjMyNjk1LCAxLjk4MTU4LCAzLjI5MjEsIDQuMTA3NyIsIFwKLSAgICAgICAgICAiMC4xODc0MjIsIDAuMjgyODY4LCAwLjgzNjAwNywgMS4zMjcwMSwgMS45ODExMywgMy4yOTE1OSwgNC4xMDc0OCIsIFwKLSAgICAgICAgICAiMC4xODc0ODYsIDAuMjgyODYsIDAuODM1NzI0LCAxLjMyNzA3LCAxLjk4MTI1LCAzLjI5MjM5LCA0LjEwNzU4IiwgXAotICAgICAgICAgICIwLjE4NzQzMiwgMC4yODI4MDcsIDAuODM1NzIyLCAxLjMyNjY4LCAxLjk4MTQyLCAzLjI5MjcyLCA0LjEwNzc4IiwgXAotICAgICAgICAgICIwLjE4NzUxMiwgMC4yODI4LCAwLjgzNTgxMiwgMS4zMjY2NCwgMS45ODE0NSwgMy4yOTI5OSwgNC4xMDc3MyIsIFwKLSAgICAgICAgICAiMC4xODc0NDMsIDAuMjgyNzkxLCAwLjgzNjA1LCAxLjMyNjcsIDEuOTgxMzMsIDMuMjkyODksIDQuMTA3NDMiLCBcCi0gICAgICAgICAgIjAuMTg3NDM0LCAwLjI4Mjc1MSwgMC44MzU4MywgMS4zMjY5MiwgMS45ODA5NywgMy4yOTI1LCA0LjEwNzg4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlMxIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xODM1NTEsIDAuMjI3MzI3LCAwLjQ3MjU3NCwgMC42ODg1NjcsIDAuOTc2NDE1LCAxLjU1MTkxLCAxLjkxMTU3IiwgXAotICAgICAgICAgICIwLjE5NDA4MSwgMC4yMzc4OCwgMC40ODMyMywgMC42OTkxMzMsIDAuOTg2OTg5LCAxLjU2MjYxLCAxLjkyMjE2IiwgXAotICAgICAgICAgICIwLjIwNzQ4NywgMC4yNTEzMzksIDAuNDk2NjQ3LCAwLjcxMjU1MywgMS4wMDAzOSwgMS41NzU5NCwgMS45MzU1NyIsIFwKLSAgICAgICAgICAiMC4yMjEwODQsIDAuMjY0ODYyLCAwLjUxMDIsIDAuNzI2MTU3LCAxLjAxMzk1LCAxLjU4OTQ4LCAxLjk0OTE1IiwgXAotICAgICAgICAgICIwLjIzNDYzNiwgMC4yNzg0MzUsIDAuNTIzNzI4LCAwLjczOTczLCAxLjAyNzU2LCAxLjYwMzA2LCAxLjk2MjcxIiwgXAotICAgICAgICAgICIwLjI1Njc4OCwgMC4zMDA2MzEsIDAuNTQ1OTk5LCAwLjc2MTk2MSwgMS4wNDk3OSwgMS42MjU0OSwgMS45ODQ5NSIsIFwKLSAgICAgICAgICAiMC4yNzYwNzYsIDAuMzE5ODk5LCAwLjU2NTI0MSwgMC43ODEyMywgMS4wNjkwNywgMS42NDQ1OSwgMi4wMDQyMiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNzAwNzksIDAuMjU0Njc0LCAwLjc0NzkyNiwgMS4xODY4NSwgMS43Njc2NSwgMi45NDM3MiwgMy42Njk4NyIsIFwKLSAgICAgICAgICAiMC4xNzAwMzIsIDAuMjU0ODAxLCAwLjc0NjE3OCwgMS4xODY3MSwgMS43NzIzNywgMi45NDM2OCwgMy42Njk3NCIsIFwKLSAgICAgICAgICAiMC4xNzAwMjYsIDAuMjU0NTY4LCAwLjc0NjIwOSwgMS4xODY2OSwgMS43Njk0NiwgMi45MzkyNSwgMy42Njk2NyIsIFwKLSAgICAgICAgICAiMC4xNzAwODMsIDAuMjU0NjE0LCAwLjc0ODM1NCwgMS4xODQyNywgMS43Njk1OSwgMi45Mzg3NCwgMy42NzU2MyIsIFwKLSAgICAgICAgICAiMC4xNzAxMjUsIDAuMjU0ODI4LCAwLjc0Njc2NiwgMS4xODY3NiwgMS43NjkzNiwgMi45MzkwNywgMy42Njk3NyIsIFwKLSAgICAgICAgICAiMC4xNzAxMjYsIDAuMjU0ODMsIDAuNzQ2NDY3LCAxLjE4Njc2LCAxLjc2OTM5LCAyLjk0MzQ5LCAzLjY3MDA4IiwgXAotICAgICAgICAgICIwLjE3MDI3NCwgMC4yNTQ5MTksIDAuNzQ4MDczLCAxLjE4Njc0LCAxLjc2OTM1LCAyLjk0MzM5LCAzLjY2OTkyIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE4NDAzOCwgMC4yMzQwNDEsIDAuNTE0NDYzLCAwLjc2MTQxLCAxLjA5MDY1LCAxLjc0ODk4LCAyLjE2MDQzIiwgXAotICAgICAgICAgICIwLjE5NDMyLCAwLjI0NDMyNCwgMC41MjQ2OCwgMC43NzE2OTUsIDEuMTAwOTQsIDEuNzU5MywgMi4xNzA3MSIsIFwKLSAgICAgICAgICAiMC4yMDc0MDQsIDAuMjU3NDEzLCAwLjUzNzc4NiwgMC43ODQ4MDMsIDEuMTE0MDQsIDEuNzcyNDQsIDIuMTgzOCIsIFwKLSAgICAgICAgICAiMC4yMjA1OTksIDAuMjcwNjI4LCAwLjU1MTA4OSwgMC43OTgwNDMsIDEuMTI3MjksIDEuNzg1NjksIDIuMTk3MDciLCBcCi0gICAgICAgICAgIjAuMjMzNjk0LCAwLjI4MzcxMSwgMC41NjQxODcsIDAuODExMTg4LCAxLjE0MDQxLCAxLjc5ODc4LCAyLjIxMDI1IiwgXAotICAgICAgICAgICIwLjI1NDczLCAwLjMwNDc2NSwgMC41ODUyMTYsIDAuODMyMjU3LCAxLjE2MTUsIDEuODE5ODQsIDIuMjMxMjgiLCBcCi0gICAgICAgICAgIjAuMjczMDYsIDAuMzIzMDg5LCAwLjYwMzYxOSwgMC44NTA1ODUsIDEuMTc5ODYsIDEuODM4NDIsIDIuMjQ5NjQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTg3MzE4LCAwLjI4MjcxNSwgMC44MzUzODMsIDEuMzI2MzgsIDEuOTc5MzksIDMuMjkxOSwgNC4xMDQ2MyIsIFwKLSAgICAgICAgICAiMC4xODczMTgsIDAuMjgyNzE0LCAwLjgzNTg1MywgMS4zMjYzNCwgMS45Nzk1OSwgMy4yODk5NSwgNC4xMDQyNiIsIFwKLSAgICAgICAgICAiMC4xODczMjksIDAuMjgyNzE4LCAwLjgzNTc0MSwgMS4zMjYxOSwgMS45ODAyMSwgMy4yOTA1MywgNC4xMDM2IiwgXAotICAgICAgICAgICIwLjE4NzM2NiwgMC4yODI3NDcsIDAuODM1MzI1LCAxLjMyNjI3LCAxLjk3ODYzLCAzLjI5MDcxLCA0LjEwNDU0IiwgXAotICAgICAgICAgICIwLjE4NzM2MSwgMC4yODI2NTUsIDAuODM1NDAxLCAxLjMyNTkzLCAxLjk3ODE0LCAzLjI4ODExLCA0LjEwNzczIiwgXAotICAgICAgICAgICIwLjE4NzQ3OSwgMC4yODI1NTYsIDAuODM0MzYxLCAxLjMyNDA0LCAxLjk4MDI2LCAzLjI4NjI4LCA0LjEwMzIyIiwgXAotICAgICAgICAgICIwLjE4NzcyNiwgMC4yODI5MDUsIDAuODMzOTMxLCAxLjMyNjQ1LCAxLjk4MTEyLCAzLjI4NDgsIDQuMTA0ODgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUzEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIxNTIwNiwgMC4yNTkxNTQsIDAuNTA0NjI4LCAwLjcyMDU5MiwgMS4wMDg0NiwgMS41ODQwNywgMS45NDM3IiwgXAotICAgICAgICAgICIwLjIyNzM0NCwgMC4yNzEyMjksIDAuNTE2NzAxLCAwLjczMjcxLCAxLjAyMDU5LCAxLjU5NjEzLCAxLjk1NTgyIiwgXAotICAgICAgICAgICIwLjI0MTk5OCwgMC4yODU5NTcsIDAuNTMxNDM0LCAwLjc0NzM5NywgMS4wMzUyNywgMS42MTA4NywgMS45NzA1IiwgXAotICAgICAgICAgICIwLjI1NTk1MywgMC4yOTk5MTUsIDAuNTQ1Mzk3LCAwLjc2MTM5NSwgMS4wNDkyNCwgMS42MjQ4MSwgMS45ODQ1IiwgXAotICAgICAgICAgICIwLjI2ODIzLCAwLjMxMjE1NiwgMC41NTc2MzIsIDAuNzczNjI1LCAxLjA2MTQ3LCAxLjYzNzA4LCAxLjk5NjciLCBcCi0gICAgICAgICAgIjAuMjg1NTM4LCAwLjMyOTUwNCwgMC41NzQ5NTYsIDAuNzkwOTE0LCAxLjA3ODc5LCAxLjY1NDM4LCAyLjAxNDAzIiwgXAotICAgICAgICAgICIwLjI5OTAxNiwgMC4zNDI5ODEsIDAuNTg4NDUyLCAwLjgwNDQxNSwgMS4wOTIzMSwgMS42Njc4NiwgMi4wMjc1MyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNzA0NjcsIDAuMjU0ODc4LCAwLjc0NjczMiwgMS4xODY5MSwgMS43Njk1MSwgMi45Mzk1NywgMy42NzAyOSIsIFwKLSAgICAgICAgICAiMC4xNzA0MzcsIDAuMjU0OTgzLCAwLjc0NjczNiwgMS4xODY5NiwgMS43NzI0MiwgMi45NDMxNCwgMy42Njk5OSIsIFwKLSAgICAgICAgICAiMC4xNzA0MjgsIDAuMjU0ODU4LCAwLjc0NjY0LCAxLjE4NjkyLCAxLjc2OTQ4LCAyLjkzOTU1LCAzLjY3MDMzIiwgXAotICAgICAgICAgICIwLjE3MDQ4MiwgMC4yNTQ5NTMsIDAuNzQ2NDg0LCAxLjE4NDMyLCAxLjc2OTc1LCAyLjkzODk5LCAzLjY3NTc1IiwgXAotICAgICAgICAgICIwLjE3MDQzLCAwLjI1NDk4MywgMC43NDYyMTQsIDEuMTg3MDcsIDEuNzY5NTIsIDIuOTM5NjIsIDMuNjcwMyIsIFwKLSAgICAgICAgICAiMC4xNzA0MzQsIDAuMjU0OTU2LCAwLjc0NjU1MiwgMS4xODY5LCAxLjc3MjI0LCAyLjkzOTA4LCAzLjY2OTc0IiwgXAotICAgICAgICAgICIwLjE3MDM5OSwgMC4yNTQ3OSwgMC43NDY1MDgsIDEuMTg2OTMsIDEuNzY5NzUsIDIuOTM4OTQsIDMuNjcwMDEiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjE2MzY5LCAwLjI2NjM3LCAwLjU0Njc5MSwgMC43OTM3NDIsIDEuMTIzMTQsIDEuNzgxMzksIDIuMTkyNzkiLCBcCi0gICAgICAgICAgIjAuMjI4NjI4LCAwLjI3ODYyOCwgMC41NTkwMDksIDAuODA2MDEyLCAxLjEzNTI2LCAxLjc5MzYxLCAyLjIwNTAzIiwgXAotICAgICAgICAgICIwLjI0Mzg4MywgMC4yOTM4ODIsIDAuNTc0MjkxLCAwLjgyMTI2NywgMS4xNTA1MSwgMS44MDg4OSwgMi4yMjAyOCIsIFwKLSAgICAgICAgICAiMC4yNTg4MSwgMC4zMDg4MjEsIDAuNTg5MjU4LCAwLjgzNjIwNSwgMS4xNjU0NSwgMS44MjM4OCwgMi4yMzUyMiIsIFwKLSAgICAgICAgICAiMC4yNzI4OTMsIDAuMzIyODk1LCAwLjYwMzMyNywgMC44NTAzMTksIDEuMTc5NTMsIDEuODM3ODgsIDIuMjQ5MzUiLCBcCi0gICAgICAgICAgIjAuMjkzMzQyLCAwLjM0MzM1LCAwLjYyMzc3OSwgMC44NzA3MzIsIDEuMTk5OTcsIDEuODU4MzQsIDIuMjY5NzYiLCBcCi0gICAgICAgICAgIjAuMzA5NDYzLCAwLjM1OTQ1NCwgMC42Mzk4ODksIDAuODg2ODYzLCAxLjIxNjExLCAxLjg3NDQ0LCAyLjI4NTg1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE4NzE5OCwgMC4yODI3MjMsIDAuODM1NjU2LCAxLjMyNzE2LCAxLjk3NTI4LCAzLjI4MTg1LCA0LjEwMjg0IiwgXAotICAgICAgICAgICIwLjE4NzIzNywgMC4yODI2MTUsIDAuODM0MDE5LCAxLjMyNjU3LCAxLjk4MTA2LCAzLjI4NzE4LCA0LjEwNTM0IiwgXAotICAgICAgICAgICIwLjE4NzIzNSwgMC4yODI1OTYsIDAuODMzNDQyLCAxLjMyNjM1LCAxLjk4MDY3LCAzLjI4ODAyLCA0LjEwNDY5IiwgXAotICAgICAgICAgICIwLjE4NzIyNCwgMC4yODI2LCAwLjgzNTMzLCAxLjMyNjUxLCAxLjk3OTQ3LCAzLjI4OTU5LCA0LjEwNTI4IiwgXAotICAgICAgICAgICIwLjE4NzIwMSwgMC4yODI0NzcsIDAuODM1NDEyLCAxLjMyNjEsIDEuOTc4MjgsIDMuMjg4OTcsIDQuMTA3NjkiLCBcCi0gICAgICAgICAgIjAuMTg3MTc1LCAwLjI4MjYwNCwgMC44MzUzMzYsIDEuMzI2NTIsIDEuOTgxNDgsIDMuMjkwMTUsIDQuMTA2MDYiLCBcCi0gICAgICAgICAgIjAuMTg3MTQ5LCAwLjI4MjQ3MiwgMC44MzMyMzksIDEuMzI2MzksIDEuOTgwMTgsIDMuMjg2NzUsIDQuMTAzMzEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDM1NDEsIDAuMDAzNTQ3LCAwLjAwMzU1NywgMC4wMDM1NTksIDAuMDAzNTU5LCAwLjAwMzU2LCAwLjAwMzU2MSIsIFwKLSAgICAgICAgICAiMC4wMDM1MzUsIDAuMDAzNTQyLCAwLjAwMzU1MSwgMC4wMDM1NTMsIDAuMDAzNTU0LCAwLjAwMzU1NCwgMC4wMDM1NTUiLCBcCi0gICAgICAgICAgIjAuMDAzNTMxLCAwLjAwMzUzOCwgMC4wMDM1NDcsIDAuMDAzNTQ5LCAwLjAwMzU1LCAwLjAwMzU1MSwgMC4wMDM1NTEiLCBcCi0gICAgICAgICAgIjAuMDAzNTI5LCAwLjAwMzUzNSwgMC4wMDM1NDUsIDAuMDAzNTQ2LCAwLjAwMzU0OCwgMC4wMDM1NDksIDAuMDAzNTQ5IiwgXAotICAgICAgICAgICIwLjAwMzUyNywgMC4wMDM1MzMsIDAuMDAzNTQyLCAwLjAwMzU0NCwgMC4wMDM1NDYsIDAuMDAzNTQ2LCAwLjAwMzU0NiIsIFwKLSAgICAgICAgICAiMC4wMDM1MjMsIDAuMDAzNTI5LCAwLjAwMzUzOSwgMC4wMDM1NDEsIDAuMDAzNTQxLCAwLjAwMzU0MiwgMC4wMDM1NDIiLCBcCi0gICAgICAgICAgIjAuMDAzNTIxLCAwLjAwMzUyNywgMC4wMDM1MzcsIDAuMDAzNTM4LCAwLjAwMzU0LCAwLjAwMzU0LCAwLjAwMzU0MSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjgyMSwgMC4wMDI4MjksIDAuMDAyODQsIDAuMDAyODQzLCAwLjAwMjg0NCwgMC4wMDI4NDUsIDAuMDAyODQ1IiwgXAotICAgICAgICAgICIwLjAwMjgxLCAwLjAwMjgxOCwgMC4wMDI4MjksIDAuMDAyODMyLCAwLjAwMjgzMywgMC4wMDI4MzQsIDAuMDAyODM0IiwgXAotICAgICAgICAgICIwLjAwMjgwMywgMC4wMDI4MTEsIDAuMDAyODIzLCAwLjAwMjgyNSwgMC4wMDI4MjYsIDAuMDAyODI3LCAwLjAwMjgyOCIsIFwKLSAgICAgICAgICAiMC4wMDI3OTksIDAuMDAyODA3LCAwLjAwMjgxOCwgMC4wMDI4MjEsIDAuMDAyODIyLCAwLjAwMjgyMywgMC4wMDI4MjMiLCBcCi0gICAgICAgICAgIjAuMDAyNzk1LCAwLjAwMjgwNCwgMC4wMDI4MTUsIDAuMDAyODE3LCAwLjAwMjgxOSwgMC4wMDI4MiwgMC4wMDI4MiIsIFwKLSAgICAgICAgICAiMC4wMDI3OTIsIDAuMDAyOCwgMC4wMDI4MTEsIDAuMDAyODEzLCAwLjAwMjgxNSwgMC4wMDI4MTYsIDAuMDAyODE2IiwgXAotICAgICAgICAgICIwLjAwMjc4OSwgMC4wMDI3OTcsIDAuMDAyODA4LCAwLjAwMjgxLCAwLjAwMjgxMiwgMC4wMDI4MTMsIDAuMDAyODEzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzNjcxLCAwLjAwMzY3OCwgMC4wMDM2ODcsIDAuMDAzNjg5LCAwLjAwMzY5LCAwLjAwMzY5MSwgMC4wMDM2OTEiLCBcCi0gICAgICAgICAgIjAuMDAzNjY2LCAwLjAwMzY3MiwgMC4wMDM2ODEsIDAuMDAzNjgzLCAwLjAwMzY4NCwgMC4wMDM2ODUsIDAuMDAzNjg2IiwgXAotICAgICAgICAgICIwLjAwMzY2MiwgMC4wMDM2NjksIDAuMDAzNjc4LCAwLjAwMzY4LCAwLjAwMzY4MSwgMC4wMDM2ODIsIDAuMDAzNjgyIiwgXAotICAgICAgICAgICIwLjAwMzY2LCAwLjAwMzY2NiwgMC4wMDM2NzYsIDAuMDAzNjc3LCAwLjAwMzY3OCwgMC4wMDM2NzksIDAuMDAzNjc5IiwgXAotICAgICAgICAgICIwLjAwMzY1NywgMC4wMDM2NjQsIDAuMDAzNjczLCAwLjAwMzY3NSwgMC4wMDM2NzYsIDAuMDAzNjc3LCAwLjAwMzY3NyIsIFwKLSAgICAgICAgICAiMC4wMDM2NTQsIDAuMDAzNjYxLCAwLjAwMzY3LCAwLjAwMzY3MiwgMC4wMDM2NzMsIDAuMDAzNjc0LCAwLjAwMzY3NCIsIFwKLSAgICAgICAgICAiMC4wMDM2NTEsIDAuMDAzNjU4LCAwLjAwMzY2NywgMC4wMDM2NywgMC4wMDM2NzEsIDAuMDAzNjcxLCAwLjAwMzY3MSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjc0NiwgMC4wMDI3NTQsIDAuMDAyNzY2LCAwLjAwMjc2OCwgMC4wMDI3NjksIDAuMDAyNzcsIDAuMDAyNzcxIiwgXAotICAgICAgICAgICIwLjAwMjczNSwgMC4wMDI3NDMsIDAuMDAyNzU0LCAwLjAwMjc1NywgMC4wMDI3NTgsIDAuMDAyNzU5LCAwLjAwMjc1OSIsIFwKLSAgICAgICAgICAiMC4wMDI3MjksIDAuMDAyNzM2LCAwLjAwMjc0OCwgMC4wMDI3NSwgMC4wMDI3NTEsIDAuMDAyNzUzLCAwLjAwMjc1MyIsIFwKLSAgICAgICAgICAiMC4wMDI3MjQsIDAuMDAyNzMyLCAwLjAwMjc0NCwgMC4wMDI3NDUsIDAuMDAyNzQ3LCAwLjAwMjc0OCwgMC4wMDI3NDgiLCBcCi0gICAgICAgICAgIjAuMDAyNzIxLCAwLjAwMjcyOSwgMC4wMDI3NCwgMC4wMDI3NDIsIDAuMDAyNzQ0LCAwLjAwMjc0NSwgMC4wMDI3NDUiLCBcCi0gICAgICAgICAgIjAuMDAyNzE3LCAwLjAwMjcyNSwgMC4wMDI3MzYsIDAuMDAyNzM5LCAwLjAwMjc0LCAwLjAwMjc0MSwgMC4wMDI3NDEiLCBcCi0gICAgICAgICAgIjAuMDAyNzE0LCAwLjAwMjcyMiwgMC4wMDI3MzMsIDAuMDAyNzM1LCAwLjAwMjczNywgMC4wMDI3MzgsIDAuMDAyNzM4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzMjk4LCAwLjAwMzMwNCwgMC4wMDMzMTQsIDAuMDAzMzE2LCAwLjAwMzMxNiwgMC4wMDMzMTcsIDAuMDAzMzE3IiwgXAotICAgICAgICAgICIwLjAwMzI5MiwgMC4wMDMyOTksIDAuMDAzMzA4LCAwLjAwMzMxLCAwLjAwMzMxMSwgMC4wMDMzMTIsIDAuMDAzMzEyIiwgXAotICAgICAgICAgICIwLjAwMzI4OSwgMC4wMDMyOTUsIDAuMDAzMzA0LCAwLjAwMzMwNiwgMC4wMDMzMDcsIDAuMDAzMzA4LCAwLjAwMzMwOCIsIFwKLSAgICAgICAgICAiMC4wMDMyODYsIDAuMDAzMjkzLCAwLjAwMzMwMSwgMC4wMDMzMDQsIDAuMDAzMzA0LCAwLjAwMzMwNSwgMC4wMDMzMDYiLCBcCi0gICAgICAgICAgIjAuMDAzMjgzLCAwLjAwMzI5LCAwLjAwMzI5OSwgMC4wMDMzMDEsIDAuMDAzMzAyLCAwLjAwMzMwMywgMC4wMDMzMDMiLCBcCi0gICAgICAgICAgIjAuMDAzMjgsIDAuMDAzMjg3LCAwLjAwMzI5NiwgMC4wMDMyOTgsIDAuMDAzMjk5LCAwLjAwMzMsIDAuMDAzMyIsIFwKLSAgICAgICAgICAiMC4wMDMyNzgsIDAuMDAzMjg1LCAwLjAwMzI5NCwgMC4wMDMyOTYsIDAuMDAzMjk3LCAwLjAwMzI5OCwgMC4wMDMyOTgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI5NTIsIDAuMDAyOTYsIDAuMDAyOTcxLCAwLjAwMjk3MywgMC4wMDI5NzQsIDAuMDAyOTc1LCAwLjAwMjk3NiIsIFwKLSAgICAgICAgICAiMC4wMDI5NCwgMC4wMDI5NDgsIDAuMDAyOTU5LCAwLjAwMjk2MiwgMC4wMDI5NjMsIDAuMDAyOTY0LCAwLjAwMjk2NCIsIFwKLSAgICAgICAgICAiMC4wMDI5MzQsIDAuMDAyOTQxLCAwLjAwMjk1MywgMC4wMDI5NTUsIDAuMDAyOTU2LCAwLjAwMjk1NywgMC4wMDI5NTgiLCBcCi0gICAgICAgICAgIjAuMDAyOTI5LCAwLjAwMjkzNywgMC4wMDI5NDgsIDAuMDAyOTUxLCAwLjAwMjk1MiwgMC4wMDI5NTMsIDAuMDAyOTUzIiwgXAotICAgICAgICAgICIwLjAwMjkyNiwgMC4wMDI5MzQsIDAuMDAyOTQ1LCAwLjAwMjk0NywgMC4wMDI5NDksIDAuMDAyOTUsIDAuMDAyOTUiLCBcCi0gICAgICAgICAgIjAuMDAyOTIyLCAwLjAwMjkzLCAwLjAwMjk0MSwgMC4wMDI5NDMsIDAuMDAyOTQ0LCAwLjAwMjk0NiwgMC4wMDI5NDYiLCBcCi0gICAgICAgICAgIjAuMDAyOTE5LCAwLjAwMjkyNywgMC4wMDI5MzgsIDAuMDAyOTQsIDAuMDAyOTQyLCAwLjAwMjk0MywgMC4wMDI5NDMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJEIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDM0NDYsIDAuMDAzNDUzLCAwLjAwMzQ2MiwgMC4wMDM0NjQsIDAuMDAzNDY0LCAwLjAwMzQ2NiwgMC4wMDM0NjYiLCBcCi0gICAgICAgICAgIjAuMDAzNDQsIDAuMDAzNDQ3LCAwLjAwMzQ1NiwgMC4wMDM0NTgsIDAuMDAzNDU5LCAwLjAwMzQ1OSwgMC4wMDM0NiIsIFwKLSAgICAgICAgICAiMC4wMDM0MzcsIDAuMDAzNDQzLCAwLjAwMzQ1MywgMC4wMDM0NTQsIDAuMDAzNDU1LCAwLjAwMzQ1NiwgMC4wMDM0NTYiLCBcCi0gICAgICAgICAgIjAuMDAzNDM0LCAwLjAwMzQ0MSwgMC4wMDM0NSwgMC4wMDM0NTIsIDAuMDAzNDUzLCAwLjAwMzQ1MywgMC4wMDM0NTQiLCBcCi0gICAgICAgICAgIjAuMDAzNDMyLCAwLjAwMzQzOCwgMC4wMDM0NDcsIDAuMDAzNDQ5LCAwLjAwMzQ1LCAwLjAwMzQ1MSwgMC4wMDM0NTEiLCBcCi0gICAgICAgICAgIjAuMDAzNDI4LCAwLjAwMzQzNSwgMC4wMDM0NDQsIDAuMDAzNDQ2LCAwLjAwMzQ0NywgMC4wMDM0NDgsIDAuMDAzNDQ4IiwgXAotICAgICAgICAgICIwLjAwMzQyNiwgMC4wMDM0MzIsIDAuMDAzNDQxLCAwLjAwMzQ0NCwgMC4wMDM0NDUsIDAuMDAzNDQ1LCAwLjAwMzQ0NiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjgzNSwgMC4wMDI4NDMsIDAuMDAyODU0LCAwLjAwMjg1NiwgMC4wMDI4NTcsIDAuMDAyODU4LCAwLjAwMjg1OSIsIFwKLSAgICAgICAgICAiMC4wMDI4MjMsIDAuMDAyODMxLCAwLjAwMjg0MywgMC4wMDI4NDUsIDAuMDAyODQ2LCAwLjAwMjg0NywgMC4wMDI4NDgiLCBcCi0gICAgICAgICAgIjAuMDAyODE3LCAwLjAwMjgyNSwgMC4wMDI4MzYsIDAuMDAyODM4LCAwLjAwMjgzOSwgMC4wMDI4NCwgMC4wMDI4NDEiLCBcCi0gICAgICAgICAgIjAuMDAyODEyLCAwLjAwMjgyLCAwLjAwMjgzMSwgMC4wMDI4MzQsIDAuMDAyODM1LCAwLjAwMjgzNiwgMC4wMDI4MzYiLCBcCi0gICAgICAgICAgIjAuMDAyODA5LCAwLjAwMjgxNywgMC4wMDI4MjgsIDAuMDAyODMsIDAuMDAyODMyLCAwLjAwMjgzMiwgMC4wMDI4MzMiLCBcCi0gICAgICAgICAgIjAuMDAyODA1LCAwLjAwMjgxMywgMC4wMDI4MjQsIDAuMDAyODI3LCAwLjAwMjgyOCwgMC4wMDI4MjgsIDAuMDAyODI5IiwgXAotICAgICAgICAgICIwLjAwMjgwMiwgMC4wMDI4MSwgMC4wMDI4MjEsIDAuMDAyODI0LCAwLjAwMjgyNSwgMC4wMDI4MjYsIDAuMDAyODI3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUzAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNTA4NywgMC4wMDUwOTQsIDAuMDA1MTAzLCAwLjAwNTEwNCwgMC4wMDUxMDYsIDAuMDA1MTA2LCAwLjAwNTEwNyIsIFwKLSAgICAgICAgICAiMC4wMDUwOSwgMC4wMDUwOTcsIDAuMDA1MTA2LCAwLjAwNTEwOCwgMC4wMDUxMDksIDAuMDA1MTEsIDAuMDA1MTEiLCBcCi0gICAgICAgICAgIjAuMDA1MDgyLCAwLjAwNTA4OCwgMC4wMDUwOTgsIDAuMDA1MDk5LCAwLjAwNTEwMSwgMC4wMDUxMDEsIDAuMDA1MTAxIiwgXAotICAgICAgICAgICIwLjAwNTA3MywgMC4wMDUwNzksIDAuMDA1MDg4LCAwLjAwNTA5LCAwLjAwNTA5MiwgMC4wMDUwOTIsIDAuMDA1MDkyIiwgXAotICAgICAgICAgICIwLjAwNTA2NSwgMC4wMDUwNzIsIDAuMDA1MDgxLCAwLjAwNTA4MywgMC4wMDUwODQsIDAuMDA1MDg0LCAwLjAwNTA4NSIsIFwKLSAgICAgICAgICAiMC4wMDUwNTUsIDAuMDA1MDYyLCAwLjAwNTA3MSwgMC4wMDUwNzMsIDAuMDA1MDc0LCAwLjAwNTA3NCwgMC4wMDUwNzUiLCBcCi0gICAgICAgICAgIjAuMDA1MDQ4LCAwLjAwNTA1NCwgMC4wMDUwNjMsIDAuMDA1MDY1LCAwLjAwNTA2NiwgMC4wMDUwNjcsIDAuMDA1MDY3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2OTU3LCAwLjAwNjk2NSwgMC4wMDY5NzYsIDAuMDA2OTc5LCAwLjAwNjk4LCAwLjAwNjk4MSwgMC4wMDY5ODEiLCBcCi0gICAgICAgICAgIjAuMDA2OTUsIDAuMDA2OTU4LCAwLjAwNjk2OSwgMC4wMDY5NzIsIDAuMDA2OTczLCAwLjAwNjk3NCwgMC4wMDY5NzQiLCBcCi0gICAgICAgICAgIjAuMDA2OTM1LCAwLjAwNjk0NCwgMC4wMDY5NTUsIDAuMDA2OTU3LCAwLjAwNjk1OSwgMC4wMDY5NiwgMC4wMDY5NiIsIFwKLSAgICAgICAgICAiMC4wMDY5MjUsIDAuMDA2OTMzLCAwLjAwNjk0NSwgMC4wMDY5NDcsIDAuMDA2OTQ4LCAwLjAwNjk0OSwgMC4wMDY5NDkiLCBcCi0gICAgICAgICAgIjAuMDA2OTE4LCAwLjAwNjkyNiwgMC4wMDY5MzcsIDAuMDA2OTQsIDAuMDA2OTQxLCAwLjAwNjk0MiwgMC4wMDY5NDMiLCBcCi0gICAgICAgICAgIjAuMDA2OTA5LCAwLjAwNjkxOCwgMC4wMDY5MjksIDAuMDA2OTMxLCAwLjAwNjkzMiwgMC4wMDY5MzQsIDAuMDA2OTM0IiwgXAotICAgICAgICAgICIwLjAwNjkwNiwgMC4wMDY5MTUsIDAuMDA2OTI2LCAwLjAwNjkyOCwgMC4wMDY5MjksIDAuMDA2OTMsIDAuMDA2OTMxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUzEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjg2MiwgMC4wMDI4NjgsIDAuMDAyODc4LCAwLjAwMjg4MSwgMC4wMDI4ODEsIDAuMDAyODgyLCAwLjAwMjg4MyIsIFwKLSAgICAgICAgICAiMC4wMDI4NTksIDAuMDAyODY1LCAwLjAwMjg3NSwgMC4wMDI4NzgsIDAuMDAyODc5LCAwLjAwMjg3OSwgMC4wMDI4OCIsIFwKLSAgICAgICAgICAiMC4wMDI4NTYsIDAuMDAyODYyLCAwLjAwMjg3MiwgMC4wMDI4NzQsIDAuMDAyODc2LCAwLjAwMjg3NywgMC4wMDI4NzgiLCBcCi0gICAgICAgICAgIjAuMDAyODUyLCAwLjAwMjg1OCwgMC4wMDI4NjgsIDAuMDAyODcsIDAuMDAyODcyLCAwLjAwMjg3MywgMC4wMDI4NzMiLCBcCi0gICAgICAgICAgIjAuMDAyODUsIDAuMDAyODU2LCAwLjAwMjg2NiwgMC4wMDI4NjcsIDAuMDAyODY5LCAwLjAwMjg3LCAwLjAwMjg3MSIsIFwKLSAgICAgICAgICAiMC4wMDI4NDcsIDAuMDAyODU0LCAwLjAwMjg2MywgMC4wMDI4NjUsIDAuMDAyODY2LCAwLjAwMjg2OCwgMC4wMDI4NjgiLCBcCi0gICAgICAgICAgIjAuMDAyODQ2LCAwLjAwMjg1MiwgMC4wMDI4NjEsIDAuMDAyODY0LCAwLjAwMjg2NSwgMC4wMDI4NjYsIDAuMDAyODY2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyMTgzLCAwLjAwMjE5MSwgMC4wMDIyMDMsIDAuMDAyMjA2LCAwLjAwMjIwNywgMC4wMDIyMDgsIDAuMDAyMjA5IiwgXAotICAgICAgICAgICIwLjAwMjE3NSwgMC4wMDIxODIsIDAuMDAyMTk0LCAwLjAwMjE5NywgMC4wMDIxOTksIDAuMDAyMiwgMC4wMDIyIiwgXAotICAgICAgICAgICIwLjAwMjE2NywgMC4wMDIxNzUsIDAuMDAyMTg3LCAwLjAwMjE5LCAwLjAwMjE5MSwgMC4wMDIxOTMsIDAuMDAyMTkzIiwgXAotICAgICAgICAgICIwLjAwMjE2MiwgMC4wMDIxNywgMC4wMDIxODIsIDAuMDAyMTg1LCAwLjAwMjE4NiwgMC4wMDIxODcsIDAuMDAyMTg4IiwgXAotICAgICAgICAgICIwLjAwMjE2LCAwLjAwMjE2OCwgMC4wMDIxNzksIDAuMDAyMTgyLCAwLjAwMjE4NCwgMC4wMDIxODUsIDAuMDAyMTg2IiwgXAotICAgICAgICAgICIwLjAwMjE1OCwgMC4wMDIxNjYsIDAuMDAyMTc4LCAwLjAwMjE4MSwgMC4wMDIxODIsIDAuMDAyMTg0LCAwLjAwMjE4NCIsIFwKLSAgICAgICAgICAiMC4wMDIxNTksIDAuMDAyMTY2LCAwLjAwMjE3OCwgMC4wMDIxODEsIDAuMDAyMTgyLCAwLjAwMjE4NCwgMC4wMDIxODQiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogTkFORDRCWDEgKgotICogLS0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKE5BTkQ0QlgxKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMTQ4OTY5OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBTikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNTk0MTgzOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDU5MzgxODsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA1OTQxODM7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzc5LCAwLjAwMDM2MiwgMC4wMDAzNTIsIDAuMDAwMzQ4LCAwLjAwMDM0NiwgMC4wMDAzNDQsIDAuMDAwMzQ0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxMTU4LCAwLjAwMTE0NiwgMC4wMDExMzksIDAuMDAxMTM2LCAwLjAwMTEzNCwgMC4wMDExMzIsIDAuMDAxMTMyIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA4NDgxODg7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwODQ4MTg4OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDg0NTUyNzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAzMDYsIDAuMDAwMzA2LCAwLjAwMDMwNiwgMC4wMDAzMDYsIDAuMDAwMzA2LCAwLjAwMDMwNiwgMC4wMDAzMDYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAzMDYsIDAuMDAwMzA3LCAwLjAwMDMwNywgMC4wMDAzMDcsIDAuMDAwMzA3LCAwLjAwMDMwNywgMC4wMDAzMDciKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEMpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDg1ODgyNTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA4NTg4MjU7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwODU2ODU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzA2LCAwLjAwMDMwNiwgMC4wMDAzMDYsIDAuMDAwMzA2LCAwLjAwMDMwNiwgMC4wMDAzMDYsIDAuMDAwMzA2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzA3LCAwLjAwMDMwOCwgMC4wMDAzMDgsIDAuMDAwMzA4LCAwLjAwMDMwOCwgMC4wMDAzMDgsIDAuMDAwMzA4Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihEKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA4NTkwNTM7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwODU3OTI2OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDg1OTA1MzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxNjIsIDAuMDAwMTYxLCAwLjAwMDE2MSwgMC4wMDAxNjEsIDAuMDAwMTYxLCAwLjAwMDE2MSwgMC4wMDAxNjEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAzNDcsIDAuMDAwMzQ4LCAwLjAwMDM0OCwgMC4wMDAzNDgsIDAuMDAwMzQ4LCAwLjAwMDM0OCwgMC4wMDAzNDgiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4wMzMxNjI4OwotICAgIGZ1bmN0aW9uIDogIighKCgoKCFBTikgQikgQykgRCkpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTMyNzYsIDAuMTc2MzMxLCAwLjQyMTg1NiwgMC42Mzc5OTUsIDAuOTI2MDI0LCAxLjUwMTc3LCAxLjg2MTcyIiwgXAotICAgICAgICAgICIwLjE0NDcwNiwgMC4xODgyODMsIDAuNDMzNzczLCAwLjY0OTk1NCwgMC45MzgwMjcsIDEuNTE0MDUsIDEuODczOTgiLCBcCi0gICAgICAgICAgIjAuMTYwMDQ3LCAwLjIwMzY2OCwgMC40NDkxNDgsIDAuNjY1MzE0LCAwLjk1MzM4NiwgMS41Mjk0NSwgMS44ODg5NSIsIFwKLSAgICAgICAgICAiMC4xNzUwNjIsIDAuMjE4Njc1LCAwLjQ2NDE2NiwgMC42ODAzMjEsIDAuOTY4MTY2LCAxLjU0NDMsIDEuOTAzODUiLCBcCi0gICAgICAgICAgIjAuMTg5ODg1LCAwLjIzMzQ4OCwgMC40Nzg5OSwgMC42OTUxNjQsIDAuOTgzMjM1LCAxLjU1OTI4LCAxLjkxOTA0IiwgXAotICAgICAgICAgICIwLjIxMTE5LCAwLjI1NDc4MywgMC41MDAyNywgMC43MTY0MDYsIDEuMDA0NDYsIDEuNTgwMzksIDEuOTM5OTUiLCBcCi0gICAgICAgICAgIjAuMjI5MjY2LCAwLjI3Mjg0MSwgMC41MTgzMzMsIDAuNzM0NDQyLCAxLjAyMjUxLCAxLjU5ODU3LCAxLjk1ODE3Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE4MjQsIDAuMjY5NzE2LCAwLjc2NjgwOSwgMS4yMDUyNCwgMS43ODkzOSwgMi45NTg5LCAzLjY4ODQiLCBcCi0gICAgICAgICAgIjAuMTgyNjE4LCAwLjI2OTkzNSwgMC43NjY2MDksIDEuMjA0OTMsIDEuNzkwOCwgMi45NjAwMSwgMy42ODk1NCIsIFwKLSAgICAgICAgICAiMC4xODI1NDUsIDAuMjcwMDMyLCAwLjc2Njk5MywgMS4yMDUyNCwgMS43OTAyLCAyLjk1OTA4LCAzLjY4ODU2IiwgXAotICAgICAgICAgICIwLjE4MjY1NywgMC4yNzAwMzEsIDAuNzY2OTgsIDEuMjA1LCAxLjc4OTU0LCAyLjk1OTEsIDMuNjg4NzMiLCBcCi0gICAgICAgICAgIjAuMTgyNjg3LCAwLjI3MDAwMiwgMC43NjY4ODksIDEuMjA1MDMsIDEuNzkwOTIsIDIuOTU4ODUsIDMuNjg5NDMiLCBcCi0gICAgICAgICAgIjAuMTgzMDI5LCAwLjI3MDEzNiwgMC43NjY5OTEsIDEuMjA1MDYsIDEuNzkwODEsIDIuOTU4OTUsIDMuNjg4ODgiLCBcCi0gICAgICAgICAgIjAuMTgzNTYzLCAwLjI3MDUxMywgMC43NjY4NDQsIDEuMjA1NDYsIDEuNzg5NzIsIDIuOTU5MTksIDMuNjkwNTEiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuNDUzNTQyLCAwLjY0OTY3MiwgMS43NjE5NiwgMi43NDA5MiwgNC4wNDczOCwgNi42NTk4NiwgOC4yOTI3MiIsIFwKLSAgICAgICAgICAiMC40NjUyNTYsIDAuNjYxNjI5LCAxLjc3MzIxLCAyLjc1Mjk1LCA0LjA1OTA4LCA2LjY3MTUyLCA4LjMwNDM0IiwgXAotICAgICAgICAgICIwLjQ3OTY4OCwgMC42NzU5MDQsIDEuNzg3OTcsIDIuNzY3ODUsIDQuMDczOTEsIDYuNjg2MjQsIDguMzE5MTUiLCBcCi0gICAgICAgICAgIjAuNDkzODk3LCAwLjY5MDE1MiwgMS44MDIwMywgMi43ODE5NiwgNC4wODgxNCwgNi43MDA2LCA4LjMzMzQ2IiwgXAotICAgICAgICAgICIwLjUwNjg0OCwgMC43MDMxMzIsIDEuODE1NTcsIDIuNzk1MTcsIDQuMTAxMTIsIDYuNzEzNjYsIDguMzQ2NTIiLCBcCi0gICAgICAgICAgIjAuNTI1MDQ4LCAwLjcyMTM4OCwgMS44MzQwNiwgMi44MTM1NSwgNC4xMTk2LCA2LjczMjE1LCA4LjM2NTAxIiwgXAotICAgICAgICAgICIwLjUzOTQwNCwgMC43MzU3NzIsIDEuODQ3NywgMi44MjgxMiwgNC4xMzQwMSwgNi43NDY2OCwgOC4zNzk0OSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC43MjUzMjEsIDEuMDkwNDEsIDMuMTU3MTgsIDQuOTk0NDksIDcuNDExNjgsIDEyLjI2MDcsIDE1LjI5MTkiLCBcCi0gICAgICAgICAgIjAuNzMwNDYzLCAxLjA4OTc2LCAzLjE4MzE1LCA0Ljk4NzksIDcuNDEyMTEsIDEyLjI2MDEsIDE1LjI5MTkiLCBcCi0gICAgICAgICAgIjAuNzI1MjU3LCAxLjA5MDM3LCAzLjE4MzEzLCA0Ljk5NTUyLCA3LjQxMTk1LCAxMi4yNjA3LCAxNS4yOTE5IiwgXAotICAgICAgICAgICIwLjcyNTMzMiwgMS4wOTA0MSwgMy4xNTgzLCA0Ljk4ODQsIDcuNDExNzIsIDEyLjI2MDcsIDE1LjI5MTkiLCBcCi0gICAgICAgICAgIjAuNzI1Nzg1LCAxLjA5MDQyLCAzLjE4MzQzLCA0Ljk4MzcyLCA3LjQxMTY2LCAxMi4yNTk3LCAxNS4yOTE4IiwgXAotICAgICAgICAgICIwLjcyOTcyMiwgMS4wOTY4MywgMy4xNTcxMSwgNC45ODI1MiwgNy40MTE2NiwgMTIuMjU5NywgMTUuMjkxOCIsIFwKLSAgICAgICAgICAiMC43MzAwNzUsIDEuMDk3MjcsIDMuMTgyNywgNC45ODIzNywgNy40MTE2MSwgMTIuMjYsIDE1LjI5MTgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDkzODkzLCAwLjEzNzI4NCwgMC4zODIzMzksIDAuNTk4MzM1LCAwLjg4NjM3NiwgMS40NjIyMywgMS44MjE2OCIsIFwKLSAgICAgICAgICAiMC4xMDU0NDEsIDAuMTQ4ODIyLCAwLjM5MzkyOSwgMC42MDk5NTcsIDAuODk3OTIsIDEuNDczNDEsIDEuODMzMDkiLCBcCi0gICAgICAgICAgIjAuMTIwMDEsIDAuMTYzNTQ1LCAwLjQwODE0NywgMC42MjQzODEsIDAuOTEyMzksIDEuNDg3NzMsIDEuODQ3OSIsIFwKLSAgICAgICAgICAiMC4xMzUxNzMsIDAuMTc4NDc1LCAwLjQyMzQ0NSwgMC42Mzk0OTksIDAuOTI3MjA4LCAxLjUwMjgzLCAxLjg2MzA0IiwgXAotICAgICAgICAgICIwLjE0OTg0MSwgMC4xOTMwNSwgMC40MzcyMDUsIDAuNjUzMjIxLCAwLjkzNTk2NCwgMS41MTE0OSwgMS44NzE4NCIsIFwKLSAgICAgICAgICAiMC4xNzM0NjksIDAuMjE2ODYyLCAwLjQ2MDUwNywgMC42NzY0MDUsIDAuOTY0Mjg4LCAxLjUzMjc3LCAxLjg5Mjk2IiwgXAotICAgICAgICAgICIwLjE5NDA3MSwgMC4yMzc0MzUsIDAuNDgwOTg4LCAwLjY5Njc2MywgMC45ODQ2NTgsIDEuNTUxNTcsIDEuOTExNTMiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTc4Mjc0LCAwLjI2NjAxMiwgMC43NjI4NDksIDEuMjAxNDMsIDEuNzg1NzUsIDIuOTU0ODMsIDMuNjg0MjYiLCBcCi0gICAgICAgICAgIjAuMTc4MjMxLCAwLjI2NTg4OCwgMC43NjI5NiwgMS4yMDIwNiwgMS43ODU0NCwgMi45NTM4NSwgMy42ODQ3IiwgXAotICAgICAgICAgICIwLjE3ODIxNywgMC4yNjU5MDYsIDAuNzYyNTIyLCAxLjIwMTA1LCAxLjc4NTQ5LCAyLjk1NTMzLCAzLjY4NTEiLCBcCi0gICAgICAgICAgIjAuMTgwMTEyLCAwLjI2NjE5MSwgMC43NjI5NTQsIDEuMjAxMiwgMS43ODU0NiwgMi45NTQxNywgMy42ODUxIiwgXAotICAgICAgICAgICIwLjE4MzkwMSwgMC4yNjc5ODksIDAuNzYyODM1LCAxLjIwMTIyLCAxLjc4NTg2LCAyLjk1Mzg1LCAzLjY4NTIzIiwgXAotICAgICAgICAgICIwLjE5MjM1MSwgMC4yNzMzMzIsIDAuNzYyNzEsIDEuMjAxMDUsIDEuNzg1NTgsIDIuOTU1NDcsIDMuNjg1NDYiLCBcCi0gICAgICAgICAgIjAuMjAxNDg5LCAwLjI4MDA0LCAwLjc2MjgwNSwgMS4yMDA4OCwgMS43ODY2MiwgMi45NTUzNCwgMy42ODQ5MSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC40MTkyMDEsIDAuNjE1NTY3LCAxLjcyNjI2LCAyLjcwNjk1LCA0LjAxMTk4LCA2LjYyNTI4LCA4LjI1ODEyIiwgXAotICAgICAgICAgICIwLjQyOTU3OSwgMC42MjU5OTgsIDEuNzM3MjIsIDIuNzE3ODksIDQuMDIzNTUsIDYuNjM2MTksIDguMjY5IiwgXAotICAgICAgICAgICIwLjQ0MTkyNSwgMC42MzgxOTYsIDEuNzQ5OTQsIDIuNzMwNDksIDQuMDM2NDksIDYuNjQ4OTcsIDguMjgxNzciLCBcCi0gICAgICAgICAgIjAuNDUzNjA0LCAwLjY1MDA5NCwgMS43NjE5MSwgMi43NDI2NSwgNC4wNDgzMiwgNi42NjEwNSwgOC4yOTM5IiwgXAotICAgICAgICAgICIwLjQ2NTAzNywgMC42NjE3MzMsIDEuNzc0MzksIDIuNzU0MjcsIDQuMDYwMzEsIDYuNjcyNzMsIDguMzA1NTQiLCBcCi0gICAgICAgICAgIjAuNDgzMTA1LCAwLjY3OTgwOSwgMS43OTI3MSwgMi43NzIyOCwgNC4wNzg1NywgNi42OTExMywgOC4zMjM5NCIsIFwKLSAgICAgICAgICAiMC40OTg4MjIsIDAuNjk1NjgxLCAxLjgwNzg5LCAyLjc4ODY2LCA0LjA5NDY4LCA2LjcwNzA3LCA4LjM0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjczMDQxOCwgMS4wOTAxNCwgMy4xODI0LCA0Ljk5NTYxLCA3LjQxMTA0LCAxMi4yNjA3LCAxNS4yOTE5IiwgXAotICAgICAgICAgICIwLjcyNTcxOCwgMS4wOTg5LCAzLjE4MjU2LCA0Ljk4MTgxLCA3LjQxMTU5LCAxMi4yNiwgMTUuMjkxOSIsIFwKLSAgICAgICAgICAiMC43MjUzLCAxLjA5NDY1LCAzLjE4MjU5LCA0Ljk4Mjk3LCA3LjQxMiwgMTIuMjYsIDE1LjI5MTciLCBcCi0gICAgICAgICAgIjAuNzI4MjEyLCAxLjA5NTEyLCAzLjE4MjU4LCA0Ljk4MTU1LCA3LjQxMTU1LCAxMi4yNiwgMTUuMjkxNiIsIFwKLSAgICAgICAgICAiMC43MjUzNTEsIDEuMDk1MzUsIDMuMTgzNDMsIDQuOTg0MTIsIDcuNDExODgsIDEyLjI2LCAxNS4yOTE4IiwgXAotICAgICAgICAgICIwLjczMDM3LCAxLjA5ODkzLCAzLjE1NzIyLCA0Ljk4NzI1LCA3LjQxMTgyLCAxMi4yNiwgMTUuMjkxOCIsIFwKLSAgICAgICAgICAiMC43MzAzMTQsIDEuMDg5NjksIDMuMTgyNzMsIDQuOTk1NjksIDcuNDExODYsIDEyLjI2MDUsIDE1LjI5MTgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDkxNiwgMC4xMzQ4NjEsIDAuMzc5NjM4LCAwLjU5NTQ1NywgMC44ODM1MDMsIDEuNDU5MywgMS44MTg5NSIsIFwKLSAgICAgICAgICAiMC4xMDMyNjUsIDAuMTQ2NTIzLCAwLjM5MTU1MSwgMC42MDc1OTMsIDAuODk1NDIsIDEuNDcxMTEsIDEuODMwNTkiLCBcCi0gICAgICAgICAgIjAuMTE3ODY2LCAwLjE2MTI3NSwgMC40MDU3MTcsIDAuNjIxNTczLCAwLjkwOTYwOSwgMS40ODU0MSwgMS44NDQ4MyIsIFwKLSAgICAgICAgICAiMC4xMzMwNywgMC4xNzYzMzEsIDAuNDIwOTM5LCAwLjYzNjY4NSwgMC45MjQ4NDcsIDEuNTAwNjIsIDEuODU5OTYiLCBcCi0gICAgICAgICAgIjAuMTQ3NzIyLCAwLjE5MDc3OCwgMC40MzQ3NTQsIDAuNjUwNTkyLCAwLjkzMzIwNSwgMS41MDkxNiwgMS44NjkxMiIsIFwKLSAgICAgICAgICAiMC4xNzEzMjMsIDAuMjE0NjAyLCAwLjQ1ODAzOCwgMC42NzM2ODUsIDAuOTYxNTkxLCAxLjUyOTk5LCAxLjg5MDExIiwgXAotICAgICAgICAgICIwLjE5MTk0MSwgMC4yMzUxNjksIDAuNDc4NTM1LCAwLjY5NDEzNywgMC45ODE5NzUsIDEuNTQ5MDMsIDEuOTA4NTQiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTc1NDY0LCAwLjI2MzE3LCAwLjc1OTgsIDEuMTk4NzQsIDEuNzgyNzgsIDIuOTUxOTEsIDMuNjgyNTEiLCBcCi0gICAgICAgICAgIjAuMTc1NDczLCAwLjI2MzI0NCwgMC43NTk5NDYsIDEuMTk4NDIsIDEuNzgyNzgsIDIuOTUxODcsIDMuNjgzMTYiLCBcCi0gICAgICAgICAgIjAuMTc1NjIzLCAwLjI2MzI0MiwgMC43NjAzOTksIDEuMTk4MDEsIDEuNzgyOSwgMi45NTE5MywgMy42ODIzNCIsIFwKLSAgICAgICAgICAiMC4xNzc2MDIsIDAuMjYzMzI1LCAwLjc1OTg2NywgMS4xOTg3MiwgMS43ODI5MiwgMi45NTE5NCwgMy42ODIzNiIsIFwKLSAgICAgICAgICAiMC4xODE1MzYsIDAuMjY1NDg0LCAwLjc1OTkyNywgMS4xOTgyNiwgMS43ODMyNCwgMi45NTE5MSwgMy42ODMwNCIsIFwKLSAgICAgICAgICAiMC4xOTAxOTgsIDAuMjcwOTgsIDAuNzYwMDAzLCAxLjE5ODE5LCAxLjc4MjM1LCAyLjk1MjU3LCAzLjY4MjYiLCBcCi0gICAgICAgICAgIjAuMTk5NjQ1LCAwLjI3Nzc5LCAwLjc1OTg1OCwgMS4xOTgsIDEuNzgzMzgsIDIuOTUyMDgsIDMuNjgyMzMiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuNDA5NzQ4LCAwLjYwNjA5OSwgMS43MTc5OCwgMi42OTc0NiwgNC4wMDM1MywgNi42MTU5NCwgOC4yNDg3OSIsIFwKLSAgICAgICAgICAiMC40MTk2MjIsIDAuNjE1ODgxLCAxLjcyNzQ4LCAyLjcwNzY3LCA0LjAxMzc3LCA2LjYyNjIxLCA4LjI1OTAxIiwgXAotICAgICAgICAgICIwLjQzMTY3OCwgMC42MjgzMDYsIDEuNzM5OSwgMi43MjAyMSwgNC4wMjYyMywgNi42Mzg2MywgOC4yNzE0NiIsIFwKLSAgICAgICAgICAiMC40NDM2NjgsIDAuNjQwMTI1LCAxLjc1Mjc3LCAyLjczMTk4LCA0LjAzODQ0LCA2LjY1MDkzLCA4LjI4MzgxIiwgXAotICAgICAgICAgICIwLjQ1NTUxOCwgMC42NTIwMzcsIDEuNzYzNzEsIDIuNzQ0NywgNC4wNTA3OSwgNi42NjMyNywgOC4yOTYwOSIsIFwKLSAgICAgICAgICAiMC40NzQ5NTUsIDAuNjcxODMzLCAxLjc4MzM5LCAyLjc2NDU0LCA0LjA3MDU0LCA2LjY4MywgOC4zMTU5NSIsIFwKLSAgICAgICAgICAiMC40OTE5NDksIDAuNjg4NjMzLCAxLjgwMDY4LCAyLjc4MTU3LCA0LjA4NzczLCA2LjcwMDA2LCA4LjMzMyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC43MzA0NTIsIDEuMDk5MjQsIDMuMTgzNDEsIDQuOTk1NDQsIDcuNDExOSwgMTIuMjYwNywgMTUuMjkxOSIsIFwKLSAgICAgICAgICAiMC43MzAzMjksIDEuMDk1MywgMy4xODI4LCA0Ljk4MzM4LCA3LjQxMTYzLCAxMi4yNjAxLCAxNS4yOTE5IiwgXAotICAgICAgICAgICIwLjczMDc0NiwgMS4wODk4NiwgMy4xODI4NiwgNC45OTU2MywgNy40MTE4NCwgMTIuMjYwMiwgMTUuMjkxOCIsIFwKLSAgICAgICAgICAiMC43MjU1MDksIDEuMDkxMTMsIDMuMTU3NjksIDQuOTg2MTYsIDcuNDExNzIsIDEyLjI2MDUsIDE1LjI5MTgiLCBcCi0gICAgICAgICAgIjAuNzI1MjYsIDEuMDk3ODMsIDMuMTc4MjgsIDQuOTk1NSwgNy40MTE4MiwgMTIuMjYwMiwgMTUuMjkxOCIsIFwKLSAgICAgICAgICAiMC43MjkyOTUsIDEuMDk4OTIsIDMuMTcyNTIsIDQuOTk1NTgsIDcuNDExNzUsIDEyLjI2MDUsIDE1LjI5MTgiLCBcCi0gICAgICAgICAgIjAuNzI4MTg3LCAxLjA5MDY5LCAzLjE1OTQ2LCA0Ljk4MTE3LCA3LjQxMTkzLCAxMi4yNjA1LCAxNS4yOTE4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkQiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4ODk3NiwgMC4xMzIxMzgsIDAuMzc2Nzc4LCAwLjU5MjY0OCwgMC44ODA0NCwgMS40NTU5MiwgMS44MTYyNSIsIFwKLSAgICAgICAgICAiMC4xMDA2OSwgMC4xNDM4OTEsIDAuMzg4NTYzLCAwLjYwNDQ0OCwgMC44OTIzNDUsIDEuNDY4MDgsIDEuODI3ODciLCBcCi0gICAgICAgICAgIjAuMTE1Mjg1LCAwLjE1ODMzOCwgMC40MDIzNDIsIDAuNjE2MTgyLCAwLjkwNDMzOSwgMS40Nzk5MSwgMS44Mzk1OCIsIFwKLSAgICAgICAgICAiMC4xMzAzMTQsIDAuMTczMDY1LCAwLjQxNzQ4MSwgMC42MzI1MzUsIDAuOTE3NzA5LCAxLjQ5MzIzLCAxLjg1MjY1IiwgXAotICAgICAgICAgICIwLjE0NTExMywgMC4xODgyMDcsIDAuNDMyMDQ4LCAwLjY0NzgyMiwgMC45MzEyOSwgMS41MDcyNiwgMS44NjYzMyIsIFwKLSAgICAgICAgICAiMC4xNjg3MTcsIDAuMjExODk3LCAwLjQ1NTQ0OCwgMC42NzEzNjMsIDAuOTU4ODM0LCAxLjUyODUyLCAxLjg4ODY2IiwgXAotICAgICAgICAgICIwLjE4OTUwMiwgMC4yMzI2NDIsIDAuNDc1NzM5LCAwLjY5MTQzMywgMC45NzkxNjYsIDEuNTQ3ODUsIDEuOTA4NDYiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTcyNjQxLCAwLjI2MTA2LCAwLjc1OTExMiwgMS4xOTU3NSwgMS43ODAzNCwgMi45NTAwNSwgMy42ODQ2NCIsIFwKLSAgICAgICAgICAiMC4xNzMwOTUsIDAuMjYwNjA2LCAwLjc1OTI4LCAxLjE5ODg0LCAxLjc4MjI1LCAyLjk1MzEzLCAzLjY4MTgzIiwgXAotICAgICAgICAgICIwLjE3MzMzMiwgMC4yNjEwNTksIDAuNzU5MjEyLCAxLjE5ODc4LCAxLjc4MSwgMi45NTA3MSwgMy42ODQxOCIsIFwKLSAgICAgICAgICAiMC4xNzUyNjYsIDAuMjYxMzQ4LCAwLjc1NzI5NCwgMS4xOTkwNCwgMS43ODE3NCwgMi45NTA1OSwgMy42OTA1MSIsIFwKLSAgICAgICAgICAiMC4xNzk1MDcsIDAuMjYyOTQ2LCAwLjc1ODA4LCAxLjE5ODkzLCAxLjc4MTY3LCAyLjk1MTcsIDMuNjgxNzgiLCBcCi0gICAgICAgICAgIjAuMTg4MDk0LCAwLjI2OTA2MiwgMC43NTc1MTQsIDEuMTk2MzQsIDEuNzgwNDUsIDIuOTU3NDMsIDMuNjgxNjkiLCBcCi0gICAgICAgICAgIjAuMTk3NjI1LCAwLjI3NjExMSwgMC43NTczOTksIDEuMTk1OTIsIDEuNzg1MTUsIDIuOTQ5OTgsIDMuNjgxMDMiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzk1MDQzLCAwLjU5MTE1NCwgMS43MDI1MiwgMi42ODI0OCwgMy45ODg4MSwgNi42MDEzMywgOC4yMzQxNyIsIFwKLSAgICAgICAgICAiMC40MDQwMTQsIDAuNjAwMjQ0LCAxLjcxMTk0LCAyLjY5MjA0LCAzLjk5ODUyLCA2LjYxMDcxLCA4LjI0MzYxIiwgXAotICAgICAgICAgICIwLjQxNTgzNSwgMC42MTIxNTYsIDEuNzI0NDEsIDIuNzA0NDksIDQuMDEwNTcsIDYuNjIyOTQsIDguMjU1ODYiLCBcCi0gICAgICAgICAgIjAuNDI2NjkyLCAwLjYyMzA3NSwgMS43MzUxMiwgMi43MTU4MiwgNC4wMjE2NywgNi42MzQxNiwgOC4yNjcwNiIsIFwKLSAgICAgICAgICAiMC40Mzc5MiwgMC42MzQ2NDIsIDEuNzQ2NjEsIDIuNzI3MjYsIDQuMDMzMzQsIDYuNjQ1ODUsIDguMjc4NzYiLCBcCi0gICAgICAgICAgIjAuNDU2MjMsIDAuNjUyODI2LCAxLjc2NDgyLCAyLjc0NTYxLCA0LjA1MTk5LCA2LjY2NDU2LCA4LjI5NzM4IiwgXAotICAgICAgICAgICIwLjQ3MjIwNywgMC42NjkxNzcsIDEuNzgyMjUsIDIuNzYyMzQsIDQuMDY4MzksIDYuNjgwNzksIDguMzEzNzQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuNzI1MjUsIDEuMDkwMzksIDMuMTYxMjksIDQuOTg2MzIsIDcuNDExODIsIDEyLjI1OTksIDE1LjI5MTkiLCBcCi0gICAgICAgICAgIjAuNzMwMjM1LCAxLjA5NDYzLCAzLjE1ODQ5LCA0Ljk4NzY3LCA3LjQxMjA3LCAxMi4yNjA3LCAxNS4yOTE5IiwgXAotICAgICAgICAgICIwLjczMDI5NSwgMS4wOTY1OCwgMy4xODMsIDQuOTk1NTIsIDcuNDExNzksIDEyLjI2MDcsIDE1LjI5MTkiLCBcCi0gICAgICAgICAgIjAuNzMwMzI0LCAxLjA5NzAzLCAzLjE4MjY0LCA0Ljk4MTM4LCA3LjQxMjU0LCAxMi4yNTk5LCAxNS4yOTE4IiwgXAotICAgICAgICAgICIwLjcyNTI0LCAxLjA5NTI2LCAzLjE2MDg4LCA0Ljk5NTQ3LCA3LjQxMTc1LCAxMi4yNjA1LCAxNS4yOTE4IiwgXAotICAgICAgICAgICIwLjcyOTgyNywgMS4wOTY3MSwgMy4xNzgyMSwgNC45ODU2NiwgNy40MTA5MiwgMTIuMjYsIDE1LjI5MTgiLCBcCi0gICAgICAgICAgIjAuNzI3NDI0LCAxLjA5ODg2LCAzLjE4MzQyLCA0Ljk4MjI3LCA3LjQxMTg3LCAxMi4yNjA1LCAxNS4yOTE4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQU4iOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjUzNCwgMC4wMDI1MzUsIDAuMDAyNTM1LCAwLjAwMjUzNCwgMC4wMDI1MzMsIDAuMDAyNTMxLCAwLjAwMjUyOCIsIFwKLSAgICAgICAgICAiMC4wMDI1MTYsIDAuMDAyNTE2LCAwLjAwMjUxNiwgMC4wMDI1MTYsIDAuMDAyNTE2LCAwLjAwMjUxNCwgMC4wMDI1MTIiLCBcCi0gICAgICAgICAgIjAuMDAyNTA2LCAwLjAwMjUwNiwgMC4wMDI1MDUsIDAuMDAyNTA1LCAwLjAwMjUwNCwgMC4wMDI1MDQsIDAuMDAyNTAzIiwgXAotICAgICAgICAgICIwLjAwMjUsIDAuMDAyNSwgMC4wMDI1LCAwLjAwMjUsIDAuMDAyNSwgMC4wMDI0OTgsIDAuMDAyNDk3IiwgXAotICAgICAgICAgICIwLjAwMjQ5NiwgMC4wMDI0OTcsIDAuMDAyNDk4LCAwLjAwMjQ5NywgMC4wMDI0OTcsIDAuMDAyNDk2LCAwLjAwMjQ5NSIsIFwKLSAgICAgICAgICAiMC4wMDI0OTMsIDAuMDAyNDk0LCAwLjAwMjQ5NiwgMC4wMDI0OTYsIDAuMDAyNDk2LCAwLjAwMjQ5NCwgMC4wMDI0OTQiLCBcCi0gICAgICAgICAgIjAuMDAyNDk0LCAwLjAwMjQ5NSwgMC4wMDI0OTYsIDAuMDAyNDk3LCAwLjAwMjQ5NywgMC4wMDI0OTUsIDAuMDAyNDk1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyMzExLCAwLjAwMjMxMiwgMC4wMDIzMTQsIDAuMDAyMzE0LCAwLjAwMjMxNCwgMC4wMDIzMTQsIDAuMDAyMzE0IiwgXAotICAgICAgICAgICIwLjAwMjI5OCwgMC4wMDIzLCAwLjAwMjMwMywgMC4wMDIzMDMsIDAuMDAyMzAzLCAwLjAwMjMwMywgMC4wMDIzMDMiLCBcCi0gICAgICAgICAgIjAuMDAyMjg5LCAwLjAwMjI5MSwgMC4wMDIyOTUsIDAuMDAyMjk2LCAwLjAwMjI5NiwgMC4wMDIyOTYsIDAuMDAyMjk2IiwgXAotICAgICAgICAgICIwLjAwMjI4MiwgMC4wMDIyODYsIDAuMDAyMjkxLCAwLjAwMjI5MiwgMC4wMDIyOTIsIDAuMDAyMjkzLCAwLjAwMjI5MyIsIFwKLSAgICAgICAgICAiMC4wMDIyNzgsIDAuMDAyMjgyLCAwLjAwMjI4OCwgMC4wMDIyOSwgMC4wMDIyOSwgMC4wMDIyOTEsIDAuMDAyMjkxIiwgXAotICAgICAgICAgICIwLjAwMjI3NCwgMC4wMDIyNzksIDAuMDAyMjg3LCAwLjAwMjI4OSwgMC4wMDIyOSwgMC4wMDIyOSwgMC4wMDIyOSIsIFwKLSAgICAgICAgICAiMC4wMDIyNzEsIDAuMDAyMjc3LCAwLjAwMjI4NiwgMC4wMDIyODgsIDAuMDAyMjg5LCAwLjAwMjI5LCAwLjAwMjI5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyMTEyLCAwLjAwMjExMiwgMC4wMDIxMTEsIDAuMDAyMTEyLCAwLjAwMjExLCAwLjAwMjExLCAwLjAwMjEwOSIsIFwKLSAgICAgICAgICAiMC4wMDIxMDUsIDAuMDAyMTA1LCAwLjAwMjEwNiwgMC4wMDIxMDYsIDAuMDAyMTA1LCAwLjAwMjEwNCwgMC4wMDIxMDQiLCBcCi0gICAgICAgICAgIjAuMDAyMDk2LCAwLjAwMjEwMiwgMC4wMDIxMDQsIDAuMDAyMTA0LCAwLjAwMjEwNCwgMC4wMDIxMDMsIDAuMDAyMTAyIiwgXAotICAgICAgICAgICIwLjAwMjA5OCwgMC4wMDIxLCAwLjAwMjEwMywgMC4wMDIxMDMsIDAuMDAyMTA0LCAwLjAwMjEwMiwgMC4wMDIxMDIiLCBcCi0gICAgICAgICAgIjAuMDAyMDk1LCAwLjAwMjA5OCwgMC4wMDIxMDIsIDAuMDAyMTAyLCAwLjAwMjEwMiwgMC4wMDIxMDIsIDAuMDAyMTAxIiwgXAotICAgICAgICAgICIwLjAwMjA5MywgMC4wMDIwOTUsIDAuMDAyMTAxLCAwLjAwMjEwMiwgMC4wMDIxMDIsIDAuMDAyMSwgMC4wMDIxIiwgXAotICAgICAgICAgICIwLjAwMjA5LCAwLjAwMjA5NCwgMC4wMDIwOTksIDAuMDAyMTAxLCAwLjAwMjEwMSwgMC4wMDIxMDEsIDAuMDAyMSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDgyNywgMC4wMDA4MjcsIDAuMDAwODI4LCAwLjAwMDgyOCwgMC4wMDA4MjgsIDAuMDAwODI4LCAwLjAwMDgyOCIsIFwKLSAgICAgICAgICAiMC4wMDA4MTksIDAuMDAwODIyLCAwLjAwMDgyNiwgMC4wMDA4MjcsIDAuMDAwODI3LCAwLjAwMDgyOCwgMC4wMDA4MjgiLCBcCi0gICAgICAgICAgIjAuMDAwODExLCAwLjAwMDgxNiwgMC4wMDA4MjQsIDAuMDAwODI2LCAwLjAwMDgyNiwgMC4wMDA4MjcsIDAuMDAwODI3IiwgXAotICAgICAgICAgICIwLjAwMDgwNCwgMC4wMDA4MTEsIDAuMDAwODIyLCAwLjAwMDgyNCwgMC4wMDA4MjUsIDAuMDAwODI2LCAwLjAwMDgyNiIsIFwKLSAgICAgICAgICAiMC4wMDA3OTgsIDAuMDAwODA2LCAwLjAwMDgyLCAwLjAwMDgyMiwgMC4wMDA4MjQsIDAuMDAwODI2LCAwLjAwMDgyNiIsIFwKLSAgICAgICAgICAiMC4wMDA3OSwgMC4wMDA3OTksIDAuMDAwODE2LCAwLjAwMDgyLCAwLjAwMDgyMywgMC4wMDA4MjUsIDAuMDAwODI1IiwgXAotICAgICAgICAgICIwLjAwMDc4NCwgMC4wMDA3OTQsIDAuMDAwODE0LCAwLjAwMDgxOSwgMC4wMDA4MjIsIDAuMDAwODI0LCAwLjAwMDgyNSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTc5NywgMC4wMDE3OTcsIDAuMDAxNzk3LCAwLjAwMTc5NywgMC4wMDE3OTcsIDAuMDAxNzk3LCAwLjAwMTc5NiIsIFwKLSAgICAgICAgICAiMC4wMDE4LCAwLjAwMTgwMSwgMC4wMDE4MDIsIDAuMDAxODAyLCAwLjAwMTgwMiwgMC4wMDE4MDIsIDAuMDAxODAxIiwgXAotICAgICAgICAgICIwLjAwMTc5MywgMC4wMDE4LCAwLjAwMTgwMywgMC4wMDE4MDQsIDAuMDAxODA0LCAwLjAwMTgwMiwgMC4wMDE4MDMiLCBcCi0gICAgICAgICAgIjAuMDAxNzk1LCAwLjAwMTc5OCwgMC4wMDE4MDMsIDAuMDAxODAzLCAwLjAwMTgwMywgMC4wMDE4MDQsIDAuMDAxODAzIiwgXAotICAgICAgICAgICIwLjAwMTc5MiwgMC4wMDE3OTYsIDAuMDAxODAyLCAwLjAwMTgwMywgMC4wMDE4MDMsIDAuMDAxODAzLCAwLjAwMTgwMyIsIFwKLSAgICAgICAgICAiMC4wMDE3ODgsIDAuMDAxNzkzLCAwLjAwMTgwMSwgMC4wMDE4MDIsIDAuMDAxODAzLCAwLjAwMTgwNCwgMC4wMDE4MDMiLCBcCi0gICAgICAgICAgIjAuMDAxNzg1LCAwLjAwMTc5MSwgMC4wMDE3OTksIDAuMDAxODAyLCAwLjAwMTgwMywgMC4wMDE4MDMsIDAuMDAxODAzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwODI3LCAwLjAwMDgyNywgMC4wMDA4MjgsIDAuMDAwODI4LCAwLjAwMDgyOCwgMC4wMDA4MjgsIDAuMDAwODI4IiwgXAotICAgICAgICAgICIwLjAwMDgxOSwgMC4wMDA4MjIsIDAuMDAwODI2LCAwLjAwMDgyNywgMC4wMDA4MjcsIDAuMDAwODI4LCAwLjAwMDgyOCIsIFwKLSAgICAgICAgICAiMC4wMDA4MTEsIDAuMDAwODE2LCAwLjAwMDgyNCwgMC4wMDA4MjYsIDAuMDAwODI2LCAwLjAwMDgyNywgMC4wMDA4MjciLCBcCi0gICAgICAgICAgIjAuMDAwODA0LCAwLjAwMDgxMSwgMC4wMDA4MjIsIDAuMDAwODI0LCAwLjAwMDgyNiwgMC4wMDA4MjcsIDAuMDAwODI3IiwgXAotICAgICAgICAgICIwLjAwMDc5OCwgMC4wMDA4MDYsIDAuMDAwODIsIDAuMDAwODIzLCAwLjAwMDgyNCwgMC4wMDA4MjYsIDAuMDAwODI2IiwgXAotICAgICAgICAgICIwLjAwMDc5LCAwLjAwMDc5OSwgMC4wMDA4MTYsIDAuMDAwODIsIDAuMDAwODIzLCAwLjAwMDgyNSwgMC4wMDA4MjUiLCBcCi0gICAgICAgICAgIjAuMDAwNzg1LCAwLjAwMDc5NCwgMC4wMDA4MTQsIDAuMDAwODE5LCAwLjAwMDgyMiwgMC4wMDA4MjQsIDAuMDAwODI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxNDY4LCAwLjAwMTQ2OSwgMC4wMDE0NjksIDAuMDAxNDY5LCAwLjAwMTQ3LCAwLjAwMTQ3LCAwLjAwMTQ3IiwgXAotICAgICAgICAgICIwLjAwMTQ3NSwgMC4wMDE0NzcsIDAuMDAxNDgsIDAuMDAxNDgxLCAwLjAwMTQ4MSwgMC4wMDE0ODEsIDAuMDAxNDgxIiwgXAotICAgICAgICAgICIwLjAwMTQ3MywgMC4wMDE0NzcsIDAuMDAxNDgyLCAwLjAwMTQ4NCwgMC4wMDE0ODQsIDAuMDAxNDg0LCAwLjAwMTQ4NSIsIFwKLSAgICAgICAgICAiMC4wMDE0NywgMC4wMDE0NzUsIDAuMDAxNDgyLCAwLjAwMTQ4NCwgMC4wMDE0ODQsIDAuMDAxNDg1LCAwLjAwMTQ4NSIsIFwKLSAgICAgICAgICAiMC4wMDE0NjYsIDAuMDAxNDczLCAwLjAwMTQ4MSwgMC4wMDE0ODMsIDAuMDAxNDg1LCAwLjAwMTQ4NiwgMC4wMDE0ODYiLCBcCi0gICAgICAgICAgIjAuMDAxNDYyLCAwLjAwMTQ2OSwgMC4wMDE0OCwgMC4wMDE0ODMsIDAuMDAxNDg0LCAwLjAwMTQ4NSwgMC4wMDE0ODYiLCBcCi0gICAgICAgICAgIjAuMDAxNDU4LCAwLjAwMTQ2NiwgMC4wMDE0NzgsIDAuMDAxNDgyLCAwLjAwMTQ4MywgMC4wMDE0ODUsIDAuMDAxNDg2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwODI2LCAwLjAwMDgyNywgMC4wMDA4MjgsIDAuMDAwODI4LCAwLjAwMDgyOCwgMC4wMDA4MjgsIDAuMDAwODI4IiwgXAotICAgICAgICAgICIwLjAwMDgxNywgMC4wMDA4MjEsIDAuMDAwODI2LCAwLjAwMDgyNywgMC4wMDA4MzEsIDAuMDAwODI4LCAwLjAwMDgyNyIsIFwKLSAgICAgICAgICAiMC4wMDA4MDgsIDAuMDAwODE0LCAwLjAwMDgyMywgMC4wMDA4MjUsIDAuMDAwODI2LCAwLjAwMDgyNywgMC4wMDA4MjciLCBcCi0gICAgICAgICAgIjAuMDAwNzk5LCAwLjAwMDgwNywgMC4wMDA4MiwgMC4wMDA4MjMsIDAuMDAwODI1LCAwLjAwMDgyNiwgMC4wMDA4MjYiLCBcCi0gICAgICAgICAgIjAuMDAwNzkzLCAwLjAwMDgwMiwgMC4wMDA4MTgsIDAuMDAwODIyLCAwLjAwMDgyNCwgMC4wMDA4MjUsIDAuMDAwODI2IiwgXAotICAgICAgICAgICIwLjAwMDc4NCwgMC4wMDA3OTUsIDAuMDAwODE0LCAwLjAwMDgxOSwgMC4wMDA4MjIsIDAuMDAwODI0LCAwLjAwMDgyNSIsIFwKLSAgICAgICAgICAiMC4wMDA3NzksIDAuMDAwNzksIDAuMDAwODExLCAwLjAwMDgxNywgMC4wMDA4MjEsIDAuMDAwODIzLCAwLjAwMDgyNCIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogT0EyMVg0ICoKLSAqIC0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoT0EyMVg0KSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMjAzOTM2OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwODQxMDM2OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDgzNzkyNzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA4NDEwMzY7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzA2LCAwLjAwMDMwNiwgMC4wMDAzMDYsIDAuMDAwMzA2LCAwLjAwMDMwNiwgMC4wMDAzMDYsIDAuMDAwMzA1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzA3LCAwLjAwMDMwNywgMC4wMDAzMDcsIDAuMDAwMzA3LCAwLjAwMDMwNywgMC4wMDAzMDcsIDAuMDAwMzA3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihBMSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwODg4ODk3OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDg4ODg5NzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA4ODYxNjg7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzA2LCAwLjAwMDMwNiwgMC4wMDAzMDYsIDAuMDAwMzA2LCAwLjAwMDMwNiwgMC4wMDAzMDYsIDAuMDAwMzA2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzA3LCAwLjAwMDMwNywgMC4wMDAzMDcsIDAuMDAwMzA3LCAwLjAwMDMwNiwgMC4wMDAzMDcsIDAuMDAwMzA3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwODU1NTc7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwODU0OTQ2OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDg1NTU3OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDE2NSwgMC4wMDAxNjUsIDAuMDAwMTY1LCAwLjAwMDE2NSwgMC4wMDAxNjUsIDAuMDAwMTY1LCAwLjAwMDE2NSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDM0NywgMC4wMDAzNDgsIDAuMDAwMzQ4LCAwLjAwMDM0OCwgMC4wMDAzNDgsIDAuMDAwMzQ4LCAwLjAwMDM0OCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjQ5NjMxNTsKLSAgICBmdW5jdGlvbiA6ICIoKEEwK0ExKSBCMCkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE1Njc4MiwgMC4yOTMxNTEsIDAuNDE5Mzk5LCAwLjUwOTM4OCwgMC42NTMyOTgsIDAuNzc5MTcsIDAuOTU5IiwgXAotICAgICAgICAgICIwLjE2ODQ0NiwgMC4zMDQ3OTgsIDAuNDMxMTA4LCAwLjUyMTA3OCwgMC42NjUwNDksIDAuNzkwODQzLCAwLjk3MDUzMyIsIFwKLSAgICAgICAgICAiMC4xODI1MzcsIDAuMzE4ODU0LCAwLjQ0NTE2OSwgMC41MzUxNTIsIDAuNjc5MTA3LCAwLjgwNDkwOCwgMC45ODQ2MDgiLCBcCi0gICAgICAgICAgIjAuMTk2MTE1LCAwLjMzMjQ3MSwgMC40NTg3NTcsIDAuNTQ4NzQ0LCAwLjY5MjY1MiwgMC44MTg0OTUsIDAuOTk4MjU3IiwgXAotICAgICAgICAgICIwLjIwOTU2MSwgMC4zNDU4OTksIDAuNDcyMjA5LCAwLjU2MjE4MSwgMC43MDYwOSwgMC44MzE5NTMsIDEuMDExNjQiLCBcCi0gICAgICAgICAgIjAuMjMxMTU5LCAwLjM2NzMzMiwgMC40OTM2NDUsIDAuNTgzNjM0LCAwLjcyNzU5MSwgMC44NTMzOTMsIDEuMDMzMSIsIFwKLSAgICAgICAgICAiMC4yNDk2NSwgMC4zODU5NTcsIDAuNTEyMjg1LCAwLjYwMjI3MywgMC43NDYyNDQsIDAuODcyMDQyLCAxLjA1MTczIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc0NzkxLCAwLjMxNjg4OCwgMC41NjgyNjgsIDAuNzUxMjIzLCAxLjA0MzQ1LCAxLjI5OTU2LCAxLjY2MTIiLCBcCi0gICAgICAgICAgIjAuMDc0NzY0LCAwLjMxNjgyMiwgMC41Njk1OTUsIDAuNzUwMTA4LCAxLjA0Mzc4LCAxLjI5OTQ2LCAxLjY2NTEyIiwgXAotICAgICAgICAgICIwLjA3NDY1OSwgMC4zMTcwNzUsIDAuNTY4Mzk4LCAwLjc1MDE0NywgMS4wNDM3MSwgMS4yOTk0MSwgMS42NjUwMiIsIFwKLSAgICAgICAgICAiMC4wNzQ2NTEsIDAuMzE2OTYyLCAwLjU2ODI0NSwgMC43NTEwMzEsIDEuMDQxNjUsIDEuMjk5MjgsIDEuNjYyODgiLCBcCi0gICAgICAgICAgIjAuMDc0NjYxLCAwLjMxNzA2MywgMC41Njk1NzksIDAuNzUwMDUsIDEuMDQxNzUsIDEuMjk5NDUsIDEuNjY1MTEiLCBcCi0gICAgICAgICAgIjAuMDc0NjU0LCAwLjMxNzE1MiwgMC41Njg0MSwgMC43NTAxNzEsIDEuMDQzNjgsIDEuMjk5MzcsIDEuNjY0ODQiLCBcCi0gICAgICAgICAgIjAuMDc0NTIxLCAwLjMxNzAxMywgMC41NjgzNTYsIDAuNzUwMDk3LCAxLjA0MzczLCAxLjI5OTQxLCAxLjY2NTA0Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTUxMzYxLCAwLjMwNjc1MSwgMC40NTMwMzQsIDAuNTU3MzExLCAwLjcyMzkxMiwgMC44Njk2NTUsIDEuMDc3NzciLCBcCi0gICAgICAgICAgIjAuMTYyNjgxLCAwLjMxODA3NSwgMC40NjQzNzcsIDAuNTY4NjgxLCAwLjczNTI5NCwgMC44ODA5OTQsIDEuMDg5MTIiLCBcCi0gICAgICAgICAgIjAuMTc1Nzc3LCAwLjMzMDk2LCAwLjQ3NzI2MiwgMC41ODE1NjYsIDAuNzQ4MTc3LCAwLjg5Mzg3OCwgMS4xMDIiLCBcCi0gICAgICAgICAgIjAuMTg4Mjc0LCAwLjM0MzUyOCwgMC40ODk4MTEsIDAuNTk0MTEsIDAuNzYwNzIzLCAwLjkwNjQ3MywgMS4xMTQ1NiIsIFwKLSAgICAgICAgICAiMC4yMDA2MDMsIDAuMzU1OTA0LCAwLjUwMjI1NiwgMC42MDY1NTMsIDAuNzczMTczLCAwLjkxODg3NSwgMS4xMjcwMSIsIFwKLSAgICAgICAgICAiMC4yMjAyMTMsIDAuMzc1NTYxLCAwLjUyMTg4NywgMC42MjYxMSwgMC43OTI4NjUsIDAuOTM4NTIxLCAxLjE0NjY2IiwgXAotICAgICAgICAgICIwLjIzNzM1NywgMC4zOTI2MzMsIDAuNTM4OTY1LCAwLjY0MzI3NSwgMC44MDk4OTgsIDAuOTU1NjAzLCAxLjE2MzczIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc4Njg4LCAwLjM1NjU1MywgMC42NDQyNzUsIDAuODUsIDEuMTgxODksIDEuNDY5OTgsIDEuODg2ODkiLCBcCi0gICAgICAgICAgIjAuMDc4NjMyLCAwLjM1NjQ4NCwgMC42NDI1MDQsIDAuODQ3OTU5LCAxLjE4MTQyLCAxLjQ3MTg4LCAxLjg4NDA2IiwgXAotICAgICAgICAgICIwLjA3ODU5NSwgMC4zNTY3OTksIDAuNjQyNDY2LCAwLjg0Nzk3NywgMS4xODE0NSwgMS40NzE5MiwgMS44ODM4MiIsIFwKLSAgICAgICAgICAiMC4wNzg2ODIsIDAuMzU2NjE1LCAwLjY0MjY3NSwgMC44NTA3MjgsIDEuMTgxNSwgMS40NzE4LCAxLjg4NzI3IiwgXAotICAgICAgICAgICIwLjA3ODY4MywgMC4zNTY1MzQsIDAuNjQzMTUxLCAwLjg1MDczMiwgMS4xODE1LCAxLjQ3MjA2LCAxLjg4Mzg3IiwgXAotICAgICAgICAgICIwLjA3ODM5MiwgMC4zNTY1OCwgMC42NDQ0NzYsIDAuODQ4OTY3LCAxLjE3ODU5LCAxLjQ3MDQ4LCAxLjg4NTExIiwgXAotICAgICAgICAgICIwLjA3ODc0OSwgMC4zNTY0ODksIDAuNjQyNTgsIDAuODQ4NjM0LCAxLjE4MTQzLCAxLjQ3MTk1LCAxLjg4Mzk3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkExIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE0NDc2MSwgMC4yNzk2NjYsIDAuNDA1NjcyLCAwLjQ5NTUzOCwgMC42MzkzNTgsIDAuNzY1MDk2LCAwLjk0NDgzNiIsIFwKLSAgICAgICAgICAiMC4xNTY0MzksIDAuMjkxNjExLCAwLjQxNzY0MywgMC41MDc1NDIsIDAuNjUxMzAzLCAwLjc3NzA4OCwgMC45NTY4MTkiLCBcCi0gICAgICAgICAgIjAuMTcwNTMsIDAuMzA1NjE5LCAwLjQzMTY2OSwgMC41MjE1NDUsIDAuNjY1MzYyLCAwLjc5MTA5MywgMC45NzA5NiIsIFwKLSAgICAgICAgICAiMC4xODQwMjYsIDAuMzE5MjA5LCAwLjQ0NTI2NSwgMC41MzUxNzMsIDAuNjc4OTE0LCAwLjgwNDY5NCwgMC45ODQ0NjQiLCBcCi0gICAgICAgICAgIjAuMTk3NDE4LCAwLjMzMjY0NSwgMC40NTg2OTIsIDAuNTQ4NTYzLCAwLjY5MjQwMSwgMC44MTgxMjMsIDAuOTk4MDQzIiwgXAotICAgICAgICAgICIwLjIxODgxNSwgMC4zNTQxMjEsIDAuNDgwMTczLCAwLjU3MDA0NywgMC43MTM4NzMsIDAuODM5NjIyLCAxLjAxOTQ2IiwgXAotICAgICAgICAgICIwLjIzNzM3OSwgMC4zNzI2NCwgMC40OTg2NjMsIDAuNTg4NTUsIDAuNzMyMzI5LCAwLjg1ODExMiwgMS4wMzc4OCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3MzI2NCwgMC4zMTU1NzgsIDAuNTY4Mzc0LCAwLjc0NzgxMiwgMS4wNDI2MywgMS4yOTg1MywgMS42NjQ5MyIsIFwKLSAgICAgICAgICAiMC4wNzM0MiwgMC4zMTU2MiwgMC41NjYxNDEsIDAuNzUwMjMxLCAxLjA0MDYzLCAxLjI5Nzc0LCAxLjY2NDg2IiwgXAotICAgICAgICAgICIwLjA3MzI5LCAwLjMxNTg3MSwgMC41NjcwMzgsIDAuNzQ4OTY4LCAxLjA0MjU5LCAxLjI5ODE5LCAxLjY2MDc3IiwgXAotICAgICAgICAgICIwLjA3MzQ2NywgMC4zMTU3OTEsIDAuNTY3NTYzLCAwLjc0ODU5OCwgMS4wNDE1OCwgMS4yOTgzOSwgMS42NjQ4OSIsIFwKLSAgICAgICAgICAiMC4wNzMwOTIsIDAuMzE1NjEzLCAwLjU2NzQ3MSwgMC43NDg5MjIsIDEuMDQ0MDgsIDEuMjk4NDMsIDEuNjYwNzIiLCBcCi0gICAgICAgICAgIjAuMDcyOTYzLCAwLjMxNTQ0OSwgMC41NjcwMjcsIDAuNzUwMDE5LCAxLjA0MjU0LCAxLjI5ODE1LCAxLjY1OTg2IiwgXAotICAgICAgICAgICIwLjA3MzQxOSwgMC4zMTU1NjksIDAuNTY3Mzk0LCAwLjc1LCAxLjA0MDQ0LCAxLjI5ODM4LCAxLjY2NDg0Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTQ1MzkxLCAwLjMwMDY5MSwgMC40NDY5OCwgMC41NTEyNzYsIDAuNzE3ODg5LCAwLjg2MzU4OSwgMS4wNzE3MiIsIFwKLSAgICAgICAgICAiMC4xNTUzODEsIDAuMzEwNzAzLCAwLjQ1Njk5NywgMC41NjEyNjcsIDAuNzI3OTMzLCAwLjg3MzYyNSwgMS4wODE3MiIsIFwKLSAgICAgICAgICAiMC4xNjgzMTYsIDAuMzIzNDg5LCAwLjQ2OTc5NywgMC41NzQxMTEsIDAuNzQwNzI3LCAwLjg4NjQyOCwgMS4wOTQ1NCIsIFwKLSAgICAgICAgICAiMC4xODEzMTIsIDAuMzM2NTQ4LCAwLjQ4Mjg1OCwgMC41ODcxNjEsIDAuNzUzNzc5LCAwLjg5OTQ4MiwgMS4xMDc2MSIsIFwKLSAgICAgICAgICAiMC4xOTQ5NzgsIDAuMzUwMjcyLCAwLjQ5NjU5NCwgMC42MDA5MTEsIDAuNzY3NTMzLCAwLjkxMzIzOSwgMS4xMjEzNSIsIFwKLSAgICAgICAgICAiMC4yMTY1MjcsIDAuMzcxNzc4LCAwLjUxODA5OCwgMC42MjIzMzksIDAuNzg5MDI3LCAwLjkzNDczNywgMS4xNDI4OCIsIFwKLSAgICAgICAgICAiMC4yMzUxNTMsIDAuMzkwMzgyLCAwLjUzNjcyOSwgMC42NDEwNDksIDAuODA3NjgsIDAuOTUzMzg5LCAxLjE2MTUyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc4NTM4LCAwLjM1NjUwMywgMC42NDI3MTcsIDAuODUwNzQ1LCAxLjE4MTUxLCAxLjQ3MiwgMS44ODM4NiIsIFwKLSAgICAgICAgICAiMC4wNzg1NzUsIDAuMzU2NTA2LCAwLjY0MzE3NCwgMC44NDk5MSwgMS4xODEzMywgMS40NzE3NCwgMS44ODcxIiwgXAotICAgICAgICAgICIwLjA3ODU5NCwgMC4zNTY1MzMsIDAuNjQzMDQ0LCAwLjg0OTQ3NSwgMS4xODEzNCwgMS40NzE4MywgMS44ODQ1MyIsIFwKLSAgICAgICAgICAiMC4wNzg2ODksIDAuMzU2NTg0LCAwLjY0MjY2LCAwLjg1MDczNCwgMS4xODE0OCwgMS40NzIwMSwgMS44ODM3MSIsIFwKLSAgICAgICAgICAiMC4wNzg1MjgsIDAuMzU2NDgyLCAwLjY0MjUwMywgMC44NDg1MTEsIDEuMTgxMzYsIDEuNDcxNzgsIDEuODg0NDgiLCBcCi0gICAgICAgICAgIjAuMDc4NTAzLCAwLjM1NjU3NCwgMC42NDM2MTYsIDAuODQ5MTExLCAxLjE4MTU5LCAxLjQ3MjA5LCAxLjg4Njk3IiwgXAotICAgICAgICAgICIwLjA3ODg1OCwgMC4zNTY1NDIsIDAuNjQyMzU0LCAwLjg0ODI1NiwgMS4xODEzOCwgMS40NzE5NiwgMS44ODQ0MiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNDY1ODQsIDAuMjgyOTU0LCAwLjQwOTIyLCAwLjQ5OTIyNCwgMC42NDMxNDYsIDAuNzY4OTk0LCAwLjk0ODY4NSIsIFwKLSAgICAgICAgICAiMC4xNTY2NjEsIDAuMjkzMDM1LCAwLjQxOTMxNCwgMC41MDkzNDgsIDAuNjUzMTk0LCAwLjc3OTEwMSwgMC45NTg3NzIiLCBcCi0gICAgICAgICAgIjAuMTcwMTI1LCAwLjMwNjM1NywgMC40MzI2NzcsIDAuNTIyNjgyLCAwLjY2NjYxNiwgMC43OTI0NDQsIDAuOTcyMTcyIiwgXAotICAgICAgICAgICIwLjE4Mjg4MSwgMC4zMTkwNTEsIDAuNDQ1MzcsIDAuNTM1MzUxLCAwLjY3OTMxMiwgMC44MDUxNTUsIDAuOTg0ODIzIiwgXAotICAgICAgICAgICIwLjE5NjYzOCwgMC4zMzI5MTcsIDAuNDU5MjE4LCAwLjU0OTIwNCwgMC42OTMxMywgMC44MTg5NTcsIDAuOTk4NzQzIiwgXAotICAgICAgICAgICIwLjIxODUzNywgMC4zNTQ3NTMsIDAuNDgxMDY0LCAwLjU3MTEwNywgMC43MTQ5OTgsIDAuODQwODIyLCAxLjAyMDYxIiwgXAotICAgICAgICAgICIwLjIzNzU5LCAwLjM3Mzg3LCAwLjUwMDE4OCwgMC41OTAxODEsIDAuNzM0MTUyLCAwLjg1OTk3MiwgMS4wMzk2NyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3NDc2MSwgMC4zMTY4NTUsIDAuNTY4NzA5LCAwLjc1MDExLCAxLjA0MjYyLCAxLjI5OTQ5LCAxLjY2NTE1IiwgXAotICAgICAgICAgICIwLjA3NDY3NCwgMC4zMTY4MzMsIDAuNTY4MjQyLCAwLjc1MTQ5LCAxLjA0NDAzLCAxLjI5OTU1LCAxLjY2NTA2IiwgXAotICAgICAgICAgICIwLjA3NDY0MywgMC4zMTcxOTUsIDAuNTY4NDE4LCAwLjc1MTM5OSwgMS4wNDM2NCwgMS4yOTgxMywgMS42NjUzMyIsIFwKLSAgICAgICAgICAiMC4wNzQ3NjIsIDAuMzE3MTQ2LCAwLjU2ODM3MiwgMC43NTExOTIsIDEuMDQzNjUsIDEuMjk5NTYsIDEuNjY0OTkiLCBcCi0gICAgICAgICAgIjAuMDc0NiwgMC4zMTcxMywgMC41Njg3NzMsIDAuNzUxMTU4LCAxLjA0MjUyLCAxLjI5OTIsIDEuNjYxODgiLCBcCi0gICAgICAgICAgIjAuMDc0NDg2LCAwLjMxNzEwMywgMC41NjgzMDUsIDAuNzUxNDkzLCAxLjA0MjU0LCAxLjI5ODUsIDEuNjY1NDgiLCBcCi0gICAgICAgICAgIjAuMDc0NTczLCAwLjMxNjk4OSwgMC41Njk0OTYsIDAuNzUwMTA2LCAxLjA0Mzk4LCAxLjI5OTQ0LCAxLjY2NDk1Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDkwMzI5LCAwLjIzOTA1NywgMC4zODQ3MTQsIDAuNDg4NzQ0LCAwLjY1NTI2NywgMC44MDEwODMsIDEuMDA5MDkiLCBcCi0gICAgICAgICAgIjAuMTAxOTE0LCAwLjI1MDY2MSwgMC4zOTYzOSwgMC41MDAzNTcsIDAuNjY3MTI4LCAwLjgxMjQ4OCwgMS4wMjA3IiwgXAotICAgICAgICAgICIwLjExNjg2NCwgMC4yNjU2NjQsIDAuNDExMzQsIDAuNTE1MzYzLCAwLjY4MTg5MywgMC44Mjc2NzgsIDEuMDM1NjgiLCBcCi0gICAgICAgICAgIjAuMTMxNTksIDAuMjgwNDI4LCAwLjQyNjE1OCwgMC41MzAxNTUsIDAuNjk2NjQyLCAwLjg0MjIzMywgMS4wNTA1NSIsIFwKLSAgICAgICAgICAiMC4xNDYyNTEsIDAuMjk1MTQ2LCAwLjQ0MDgzOSwgMC41NDQ4NjcsIDAuNzExNDEzLCAwLjg1NzE2NiwgMS4wNjUxNyIsIFwKLSAgICAgICAgICAiMC4xNjg5MTgsIDAuMzE3ODU1LCAwLjQ2MzU2NiwgMC41Njc2MDksIDAuNzM0MTY3LCAwLjg3OTg5MiwgMS4wODc5NSIsIFwKLSAgICAgICAgICAiMC4xODc1MzMsIDAuMzM2NjA3LCAwLjQ4MjMxOSwgMC41ODYzNzcsIDAuNzUyOTU1LCAwLjg5ODYwNCwgMS4xMDY3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY2NDYsIDAuMzQ4MDYsIDAuNjM3NjIzLCAwLjg0NTE0MiwgMS4xNzYyOSwgMS40NjczNSwgMS44ODAxMiIsIFwKLSAgICAgICAgICAiMC4wNjY0NDYsIDAuMzQ3OTEzLCAwLjYzNzQyMywgMC44NDUxNDgsIDEuMTc2MjksIDEuNDY2ODIsIDEuODgwMDciLCBcCi0gICAgICAgICAgIjAuMDY2NDg5LCAwLjM0NzM0OSwgMC42MzY3MDEsIDAuODQ1MTQyLCAxLjE3NTYyLCAxLjQ2Njc4LCAxLjg4MDIyIiwgXAotICAgICAgICAgICIwLjA2NjYwNSwgMC4zNDgwNjUsIDAuNjM3NzUsIDAuODQ1MTUsIDEuMTczNjcsIDEuNDY2ODgsIDEuODgzMTgiLCBcCi0gICAgICAgICAgIjAuMDY2Nzk5LCAwLjM0NzE4NSwgMC42MzY3NTIsIDAuODQ1MTQ1LCAxLjE3NDU5LCAxLjQ2NjcyLCAxLjg3ODY1IiwgXAotICAgICAgICAgICIwLjA2NzY5MiwgMC4zNDgxOSwgMC42MzY4OTgsIDAuODQ1MTU1LCAxLjE3Mzc3LCAxLjQ2NjAxLCAxLjg3OTc3IiwgXAotICAgICAgICAgICIwLjA2OTI3OSwgMC4zNDgyOTMsIDAuNjM3NzE0LCAwLjg0NTE3MiwgMS4xNzYzMSwgMS40NjU0NSwgMS44ODAxMiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzk4LCAwLjAwNDExMSwgMC4wMDQxMywgMC4wMDQxMzcsIDAuMDA0MTQyLCAwLjAwNDE0NSwgMC4wMDQxNDgiLCBcCi0gICAgICAgICAgIjAuMDAzOTYxLCAwLjAwNDA5MywgMC4wMDQxMTMsIDAuMDA0MTE5LCAwLjAwNDEyNCwgMC4wMDQxMjcsIDAuMDA0MTI5IiwgXAotICAgICAgICAgICIwLjAwMzk1LCAwLjAwNDA4NCwgMC4wMDQxMDIsIDAuMDA0MTA4LCAwLjAwNDExMywgMC4wMDQxMTcsIDAuMDA0MTIxIiwgXAotICAgICAgICAgICIwLjAwMzk0MSwgMC4wMDQwNzUsIDAuMDA0MDk0LCAwLjAwNDA5OSwgMC4wMDQxMDYsIDAuMDA0MTA5LCAwLjAwNDExMiIsIFwKLSAgICAgICAgICAiMC4wMDM5MzMsIDAuMDA0MDY2LCAwLjAwNDA4OCwgMC4wMDQwOTQsIDAuMDA0MSwgMC4wMDQxMDIsIDAuMDA0MTA2IiwgXAotICAgICAgICAgICIwLjAwMzkyMiwgMC4wMDQwNTQsIDAuMDA0MDc4LCAwLjAwNDA4NiwgMC4wMDQwOTIsIDAuMDA0MDk1LCAwLjAwNDEiLCBcCi0gICAgICAgICAgIjAuMDAzOTEzLCAwLjAwNDA0NSwgMC4wMDQwNzEsIDAuMDA0MDc5LCAwLjAwNDA4NiwgMC4wMDQwOSwgMC4wMDQwOTMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNTU1OCwgMC4wMDU3MzQsIDAuMDA1NzYyLCAwLjAwNTc3MSwgMC4wMDU3NzksIDAuMDA1NzgzLCAwLjAwNTc4NyIsIFwKLSAgICAgICAgICAiMC4wMDU1NDgsIDAuMDA1NzI1LCAwLjAwNTc1MywgMC4wMDU3NjEsIDAuMDA1NzY5LCAwLjAwNTc3MywgMC4wMDU3NzciLCBcCi0gICAgICAgICAgIjAuMDA1NTQyLCAwLjAwNTcxNywgMC4wMDU3NDYsIDAuMDA1NzU1LCAwLjAwNTc2MywgMC4wMDU3NjcsIDAuMDA1NzcxIiwgXAotICAgICAgICAgICIwLjAwNTUzNCwgMC4wMDU3MTEsIDAuMDA1NzQxLCAwLjAwNTc1LCAwLjAwNTc1OCwgMC4wMDU3NjMsIDAuMDA1NzY3IiwgXAotICAgICAgICAgICIwLjAwNTUyNiwgMC4wMDU3MDQsIDAuMDA1NzM1LCAwLjAwNTc0NSwgMC4wMDU3NTQsIDAuMDA1NzU5LCAwLjAwNTc2MyIsIFwKLSAgICAgICAgICAiMC4wMDU1MTcsIDAuMDA1NjkzLCAwLjAwNTcyNywgMC4wMDU3MzgsIDAuMDA1NzQ4LCAwLjAwNTc1MywgMC4wMDU3NTciLCBcCi0gICAgICAgICAgIjAuMDA1NTEsIDAuMDA1Njg2LCAwLjAwNTcyMSwgMC4wMDU3MzMsIDAuMDA1NzQ0LCAwLjAwNTc0OSwgMC4wMDU3NTQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDM3MDIsIDAuMDAzODI4LCAwLjAwMzg0MywgMC4wMDM4NDYsIDAuMDAzODUyLCAwLjAwMzg1MywgMC4wMDM4NTYiLCBcCi0gICAgICAgICAgIjAuMDAzNjksIDAuMDAzODIsIDAuMDAzODM2LCAwLjAwMzg0MywgMC4wMDM4NDMsIDAuMDAzODUsIDAuMDAzODQ5IiwgXAotICAgICAgICAgICIwLjAwMzY3NCwgMC4wMDM4MDQsIDAuMDAzODIxLCAwLjAwMzgyOCwgMC4wMDM4MzIsIDAuMDAzODMyLCAwLjAwMzgzMyIsIFwKLSAgICAgICAgICAiMC4wMDM2NTUsIDAuMDAzNzg4LCAwLjAwMzgwNiwgMC4wMDM4MTEsIDAuMDAzODE1LCAwLjAwMzgxNywgMC4wMDM4MiIsIFwKLSAgICAgICAgICAiMC4wMDM2NDMsIDAuMDAzNzc0LCAwLjAwMzc5MywgMC4wMDM3OTksIDAuMDAzODA0LCAwLjAwMzgwNiwgMC4wMDM4MDgiLCBcCi0gICAgICAgICAgIjAuMDAzNjI2LCAwLjAwMzc1NywgMC4wMDM3NzgsIDAuMDAzNzg1LCAwLjAwMzc5MSwgMC4wMDM3OTIsIDAuMDAzNzk2IiwgXAotICAgICAgICAgICIwLjAwMzYxMywgMC4wMDM3NDMsIDAuMDAzNzY4LCAwLjAwMzc3NSwgMC4wMDM3ODIsIDAuMDAzNzg1LCAwLjAwMzc4NyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1MzEyLCAwLjAwNTQ4NSwgMC4wMDU1MTMsIDAuMDA1NTIxLCAwLjAwNTUyOSwgMC4wMDU1MzMsIDAuMDA1NTM2IiwgXAotICAgICAgICAgICIwLjAwNTI5NCwgMC4wMDU0NjksIDAuMDA1NDk4LCAwLjAwNTUwNywgMC4wMDU1MTQsIDAuMDA1NTE4LCAwLjAwNTUyMiIsIFwKLSAgICAgICAgICAiMC4wMDUyODEsIDAuMDA1NDU0LCAwLjAwNTQ4NSwgMC4wMDU0OTQsIDAuMDA1NTAzLCAwLjAwNTUwNywgMC4wMDU1MTEiLCBcCi0gICAgICAgICAgIjAuMDA1MjY4LCAwLjAwNTQ0MSwgMC4wMDU0NzQsIDAuMDA1NDgzLCAwLjAwNTQ5MywgMC4wMDU0OTgsIDAuMDA1NTAyIiwgXAotICAgICAgICAgICIwLjAwNTI1OCwgMC4wMDU0MywgMC4wMDU0NjUsIDAuMDA1NDc2LCAwLjAwNTQ4NiwgMC4wMDU0OTIsIDAuMDA1NDk3IiwgXAotICAgICAgICAgICIwLjAwNTI0MywgMC4wMDU0MTQsIDAuMDA1NDUyLCAwLjAwNTQ2NSwgMC4wMDU0NzcsIDAuMDA1NDgzLCAwLjAwNTQ4OSIsIFwKLSAgICAgICAgICAiMC4wMDUyMzYsIDAuMDA1NDA0LCAwLjAwNTQ0NCwgMC4wMDU0NTgsIDAuMDA1NDcxLCAwLjAwNTQ3OSwgMC4wMDU0ODUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDM5OSwgMC4wMDQxMiwgMC4wMDQxNCwgMC4wMDQxNDYsIDAuMDA0MTUyLCAwLjAwNDE1NSwgMC4wMDQxNTciLCBcCi0gICAgICAgICAgIjAuMDAzOTY4LCAwLjAwNDA5OSwgMC4wMDQxMiwgMC4wMDQxMjUsIDAuMDA0MTMxLCAwLjAwNDEzNSwgMC4wMDQxMzciLCBcCi0gICAgICAgICAgIjAuMDAzOTUsIDAuMDA0MDgyLCAwLjAwNDEwMywgMC4wMDQxMDksIDAuMDA0MTE1LCAwLjAwNDExOCwgMC4wMDQxMjEiLCBcCi0gICAgICAgICAgIjAuMDAzOTM1LCAwLjAwNDA2NSwgMC4wMDQwODcsIDAuMDA0MDk1LCAwLjAwNDEwMiwgMC4wMDQxMDUsIDAuMDA0MTA4IiwgXAotICAgICAgICAgICIwLjAwMzkyNSwgMC4wMDQwNTQsIDAuMDA0MDc5LCAwLjAwNDA4NywgMC4wMDQwOTQsIDAuMDA0MDk3LCAwLjAwNDEwMSIsIFwKLSAgICAgICAgICAiMC4wMDM5MTcsIDAuMDA0MDQsIDAuMDA0MDY3LCAwLjAwNDA3NiwgMC4wMDQwODUsIDAuMDA0MDg4LCAwLjAwNDA5MiIsIFwKLSAgICAgICAgICAiMC4wMDM5MDQsIDAuMDA0MDMxLCAwLjAwNDA2LCAwLjAwNDA3LCAwLjAwNDA4LCAwLjAwNDA4NSwgMC4wMDQwODgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDk4NiwgMC4wMDUwOTMsIDAuMDA1MTA1LCAwLjAwNTEwOCwgMC4wMDUxMTEsIDAuMDA1MTEyLCAwLjAwNTExNCIsIFwKLSAgICAgICAgICAiMC4wMDQ5NzEsIDAuMDA1MDg0LCAwLjAwNTA5NywgMC4wMDUxLCAwLjAwNTEwMywgMC4wMDUxMDUsIDAuMDA1MTA2IiwgXAotICAgICAgICAgICIwLjAwNDk0MywgMC4wMDUwNjgsIDAuMDA1MDgzLCAwLjAwNTA4NywgMC4wMDUwOTEsIDAuMDA1MDkzLCAwLjAwNTA5NCIsIFwKLSAgICAgICAgICAiMC4wMDQ5MTEsIDAuMDA1MDQ5LCAwLjAwNTA2OCwgMC4wMDUwNzQsIDAuMDA1MDc5LCAwLjAwNTA4MiwgMC4wMDUwODQiLCBcCi0gICAgICAgICAgIjAuMDA0ODg5LCAwLjAwNTAzNSwgMC4wMDUwNTgsIDAuMDA1MDY1LCAwLjAwNTA3MSwgMC4wMDUwNzQsIDAuMDA1MDc3IiwgXAotICAgICAgICAgICIwLjAwNDg2NSwgMC4wMDUwMTYsIDAuMDA1MDQ0LCAwLjAwNTA1MywgMC4wMDUwNiwgMC4wMDUwNjUsIDAuMDA1MDY4IiwgXAotICAgICAgICAgICIwLjAwNDg1LCAwLjAwNTAwNCwgMC4wMDUwMzUsIDAuMDA1MDQ1LCAwLjAwNTA1NCwgMC4wMDUwNTksIDAuMDA1MDYzIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IE9BSTIyMVgyICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChPQUkyMjFYMikgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjI1NzQ1MjsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQTApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTYwMjUzOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTU5NzMzOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTYwMjUzOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDYxMiwgMC4wMDA2MTEsIDAuMDAwNjExLCAwLjAwMDYxMiwgMC4wMDA2MTEsIDAuMDAwNjExLCAwLjAwMDYxMSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDYxMywgMC4wMDA2MTQsIDAuMDAwNjE0LCAwLjAwMDYxNCwgMC4wMDA2MTUsIDAuMDAwNjE1LCAwLjAwMDYxNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQTEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTUxMTIzOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTUxMTIzOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTUwMzk0OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDYxMiwgMC4wMDA2MTIsIDAuMDAwNjEyLCAwLjAwMDYxMiwgMC4wMDA2MTIsIDAuMDAwNjEyLCAwLjAwMDYxMiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDYxMywgMC4wMDA2MTMsIDAuMDAwNjEzLCAwLjAwMDYxMywgMC4wMDA2MTMsIDAuMDAwNjE0LCAwLjAwMDYxNCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQjApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTU5MjkxOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTU4NTE1OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTU5MjkxOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDYxMiwgMC4wMDA2MTIsIDAuMDAwNjEyLCAwLjAwMDYxMSwgMC4wMDA2MTEsIDAuMDAwNjExLCAwLjAwMDYxMSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDYxMywgMC4wMDA2MTQsIDAuMDAwNjE0LCAwLjAwMDYxNCwgMC4wMDA2MTQsIDAuMDAwNjE0LCAwLjAwMDYxNCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQjEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTQ3MjE3OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTQ3MjE3OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTQ2Njg2OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDYxMiwgMC4wMDA2MTIsIDAuMDAwNjEyLCAwLjAwMDYxMiwgMC4wMDA2MTIsIDAuMDAwNjEyLCAwLjAwMDYxMiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDYxMywgMC4wMDA2MTMsIDAuMDAwNjEzLCAwLjAwMDYxMywgMC4wMDA2MTQsIDAuMDAwNjE0LCAwLjAwMDYxNCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQzApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTU0NTIyOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTU0NDA1OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTU0NTIyOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDMyNCwgMC4wMDAzMjQsIDAuMDAwMzI1LCAwLjAwMDMyNSwgMC4wMDAzMjUsIDAuMDAwMzI0LCAwLjAwMDMyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDY5NSwgMC4wMDA2OTYsIDAuMDAwNjk1LCAwLjAwMDY5NiwgMC4wMDA2OTYsIDAuMDAwNjk2LCAwLjAwMDY5NiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjA4OTQ5NzE7Ci0gICAgZnVuY3Rpb24gOiAiKCEoKChBMCtBMSkgKEIwK0IxKSkgQzApKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTAiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEyNzE0MSwgMC41MDE4MDMsIDAuNzk5MDkxLCAxLjE3MDE5LCAxLjU0MTIxLCAxLjkxMTM5LCAyLjI4MTg0IiwgXAotICAgICAgICAgICIwLjEzODU3NSwgMC41MTMyNDUsIDAuODEwNTI5LCAxLjE4MTc3LCAxLjU1MjU4LCAxLjkyMjc5LCAyLjI5MzI2IiwgXAotICAgICAgICAgICIwLjE1MTY3MywgMC41MjY0MiwgMC44MjM4MDksIDEuMTk0OCwgMS41NjU0NCwgMS45MzU5NSwgMi4zMDY0NCIsIFwKLSAgICAgICAgICAiMC4xNjQyMjYsIDAuNTM5MDIyLCAwLjgzNjI4MSwgMS4yMDc0MSwgMS41Nzg0NSwgMS45NDg1LCAyLjMxOTA3IiwgXAotICAgICAgICAgICIwLjE3NjY0MywgMC41NTE1NDMsIDAuODQ4NzkzLCAxLjIxOTkxLCAxLjU5MDY1LCAxLjk2MTA5LCAyLjMzMjQiLCBcCi0gICAgICAgICAgIjAuMTk2MzQ4LCAwLjU3MTM4NSwgMC44Njg3NDksIDEuMjM5NzgsIDEuNjEwMzksIDEuOTgxMzIsIDIuMzUxNjIiLCBcCi0gICAgICAgICAgIjAuMjEzNzA0LCAwLjU4ODgyOSwgMC44ODYxMzQsIDEuMjU3MzIsIDEuNjI3ODMsIDEuOTk4ODEsIDIuMzY4ODMiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjMzMTU0LCAwLjk1ODEyNSwgMS41Mzg1NCwgMi4yNjQxNywgMi45ODg3NywgMy43MTQxOSwgNC40NDA0NiIsIFwKLSAgICAgICAgICAiMC4yMzMxMjUsIDAuOTU4MjAzLCAxLjUzODU1LCAyLjI2MzYxLCAyLjk4ODc0LCAzLjcxNDY2LCA0LjQ0MDE1IiwgXAotICAgICAgICAgICIwLjIzMzA1LCAwLjk1ODA4OSwgMS41Mzg0OSwgMi4yNjM2MiwgMi45ODg4MywgMy43MTQ1NiwgNC40Mzk0NiIsIFwKLSAgICAgICAgICAiMC4yMzMxNjYsIDAuOTU4MDU0LCAxLjUzODU0LCAyLjI2NDI1LCAyLjk4OTQ4LCAzLjcxNDk1LCA0LjQzOTc1IiwgXAotICAgICAgICAgICIwLjIzNDMxOSwgMC45NTgxOTMsIDEuNTM4NTUsIDIuMjY0MTYsIDIuOTg5NzMsIDMuNzE0MTksIDQuNDQwMjciLCBcCi0gICAgICAgICAgIjAuMjM3ODk1LCAwLjk1ODE2NiwgMS41MzgzNywgMi4yNjM1OSwgMi45ODg3MywgMy43MTQxNSwgNC40NDAzMSIsIFwKLSAgICAgICAgICAiMC4yNDIzNzEsIDAuOTU4MTMxLCAxLjUzODQxLCAyLjI2NDE5LCAyLjk4OTQ0LCAzLjcxNDM5LCA0LjQ0MDQ2Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIzMzAyNiwgMC44NTYxMTksIDEuMzUzMzMsIDEuOTczOSwgMi41OTQ5OSwgMy4yMTY2OCwgMy44NDA0NyIsIFwKLSAgICAgICAgICAiMC4yNDQ1NTMsIDAuODY3ODAxLCAxLjM2NTE2LCAxLjk4NTkzLCAyLjYwNjksIDMuMjI4MzYsIDMuODUyMDIiLCBcCi0gICAgICAgICAgIjAuMjU4ODgsIDAuODgyMDk0LCAxLjM3OTI2LCAyLjAwMDk1LCAyLjYyMDg2LCAzLjI0MjYxLCAzLjg2NjU5IiwgXAotICAgICAgICAgICIwLjI3MjQ2OCwgMC44OTYsIDEuMzkzNDEsIDIuMDEzODgsIDIuNjM0NjMsIDMuMjU2NywgMy44ODAyNCIsIFwKLSAgICAgICAgICAiMC4yODU0NzUsIDAuOTA4ODIzLCAxLjQwNjU4LCAyLjAyNjU2LCAyLjY0ODA3LCAzLjI2OTc2LCAzLjg5MzM4IiwgXAotICAgICAgICAgICIwLjMwNTQ3MSwgMC45MjkzNDEsIDEuNDI2NSwgMi4wNDc4OSwgMi42NjgwMSwgMy4yODk1MSwgMy45MTM2OSIsIFwKLSAgICAgICAgICAiMC4zMjI0NjMsIDAuOTQ2NDM4LCAxLjQ0MzY0LCAyLjA2NTE1LCAyLjY4NDc3LCAzLjMwNjQ2LCAzLjkzMDg3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMzOTkxMSwgMS41MDk4NSwgMi40NDQyNywgMy42MjAwMiwgNC43OTg2MSwgNS45NzU4OSwgNy4xNTM2NyIsIFwKLSAgICAgICAgICAiMC4zMzk5MTMsIDEuNTA5NzksIDIuNDQ0MjcsIDMuNjIwMDMsIDQuNzk4NDcsIDUuOTc1NzIsIDcuMTUxMzgiLCBcCi0gICAgICAgICAgIjAuMzM5OTU1LCAxLjUwOTI5LCAyLjQ0NDY3LCAzLjYyMDkxLCA0Ljc5Nzk1LCA1Ljk3NzIsIDcuMTUwOTgiLCBcCi0gICAgICAgICAgIjAuMzM5OTM5LCAxLjUwOTY4LCAyLjQ0NDI1LCAzLjYyMDk0LCA0Ljc5ODQ2LCA1Ljk3NTU4LCA3LjE1MTE5IiwgXAotICAgICAgICAgICIwLjMzOTksIDEuNTExNDIsIDIuNDQ0ODUsIDMuNjIwODcsIDQuODAwNzksIDUuOTc2NTYsIDcuMTUxNTciLCBcCi0gICAgICAgICAgIjAuMzM5OTIyLCAxLjUwOTg5LCAyLjQ0NDI4LCAzLjYyMTI2LCA0Ljc5ODExLCA1Ljk3OTIyLCA3LjE1MTAxIiwgXAotICAgICAgICAgICIwLjM0MDQ2MywgMS41MTAxNiwgMi40NDQyOCwgMy42MjEwNywgNC43OTcyMSwgNS45NzkxNCwgNy4xNTA5NiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTIwNDg4LCAwLjQ5NTE4NiwgMC43OTIzMDksIDEuMTYzNTQsIDEuNTM0MzIsIDEuOTA0NzEsIDIuMjc1OTUiLCBcCi0gICAgICAgICAgIjAuMTMwNTM0LCAwLjUwNTI5NiwgMC44MDI1MDYsIDEuMTczODMsIDEuNTQ0MjIsIDEuOTE1MzksIDIuMjg1NTYiLCBcCi0gICAgICAgICAgIjAuMTQzOTI2LCAwLjUxODU5MSwgMC44MTYwMDgsIDEuMTg3MjcsIDEuNTU3NzMsIDEuOTI4MjQsIDIuMjk5NDQiLCBcCi0gICAgICAgICAgIjAuMTU2NDg1LCAwLjUzMTIxNCwgMC44Mjg1NzgsIDEuMTk5NjgsIDEuNTcwMzgsIDEuOTQwODYsIDIuMzEyMjMiLCBcCi0gICAgICAgICAgIjAuMTY5NTEsIDAuNTQ0NDExLCAwLjg0MTY1MiwgMS4yMTI4OSwgMS41ODM0LCAxLjk1NDYzLCAyLjMyNDc0IiwgXAotICAgICAgICAgICIwLjE5MTM5OCwgMC41NjUzNjYsIDAuODYyNjU5LCAxLjIzMzYyLCAxLjYwNDMzLCAxLjk3NTA1LCAyLjM0NTU0IiwgXAotICAgICAgICAgICIwLjIxMDEzNSwgMC41ODM3MzcsIDAuODgwOTI1LCAxLjI1MjA5LCAxLjYyMjg2LCAxLjk5MzMzLCAyLjM2NDYiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjMzMjM3LCAwLjk1ODEzMSwgMS41MzgzNSwgMi4yNjQwMywgMi45ODk3MywgMy43MTQ2LCA0LjQ0MDA2IiwgXAotICAgICAgICAgICIwLjIzMzEyNywgMC45NTgxNTgsIDEuNTM4NDcsIDIuMjYzOTgsIDIuOTg5NTQsIDMuNzE0NjYsIDQuNDQwMDQiLCBcCi0gICAgICAgICAgIjAuMjMyODkzLCAwLjk1ODAzNywgMS41MzgyOCwgMi4yNjQyMSwgMi45ODk2MywgMy43MTQ4OCwgNC40NDAyOSIsIFwKLSAgICAgICAgICAiMC4yMzM2NTEsIDAuOTU4MTE5LCAxLjUzODgyLCAyLjI2NDE2LCAyLjk4OTMyLCAzLjcxNDE5LCA0LjQzOTE5IiwgXAotICAgICAgICAgICIwLjIzNjQ0MiwgMC45NTgyLCAxLjUzODM5LCAyLjI2Mzc4LCAyLjk4ODc4LCAzLjcxNDU0LCA0LjQzOTg2IiwgXAotICAgICAgICAgICIwLjI0MzA5MiwgMC45NTgxMTIsIDEuNTM4NDUsIDIuMjY0MTUsIDIuOTg5NzQsIDMuNzE0ODksIDQuNDM5MzgiLCBcCi0gICAgICAgICAgIjAuMjUwOTM1LCAwLjk1ODE2LCAxLjUzODQ3LCAyLjI2MzYzLCAyLjk4ODgxLCAzLjcxNDAxLCA0LjQ0MDUiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjE4MzEzLCAwLjg0NDcyOSwgMS4zNDUyNywgMS45Njk5OSwgMi41OTUyNywgMy4yMjA1OCwgMy44NDgyNyIsIFwKLSAgICAgICAgICAiMC4yMzA1MTcsIDAuODU3MjM3LCAxLjM1NzQ3LCAxLjk4MzM2LCAyLjYwNzQzLCAzLjIzMjUyLCAzLjg2MTIxIiwgXAotICAgICAgICAgICIwLjI0NDc2MiwgMC44NzE4OSwgMS4zNzIxLCAxLjk5NzkxLCAyLjYyMjA1LCAzLjI0NzY3LCAzLjg3NTg5IiwgXAotICAgICAgICAgICIwLjI1ODE1MiwgMC44ODU2MjQsIDEuMzg2MiwgMi4wMTA5MSwgMi42MzYxLCAzLjI2MTQ3LCAzLjg4OTgxIiwgXAotICAgICAgICAgICIwLjI3MDkzMSwgMC44OTg2OTIsIDEuMzk5MTIsIDIuMDI0MjgsIDIuNjQ4NDcsIDMuMjc0MjksIDMuOTAyODgiLCBcCi0gICAgICAgICAgIjAuMjkwNzc1LCAwLjkxODQ0NSwgMS40MTkyNiwgMi4wNDQ5MiwgMi42NjkyMSwgMy4yOTQ3LCAzLjkyMzAzIiwgXAotICAgICAgICAgICIwLjMwNzU4MiwgMC45MzU1MjEsIDEuNDM2NTEsIDIuMDYxNDQsIDIuNjg2NTEsIDMuMzExMzksIDMuOTQwMjEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzI0OTUsIDEuNTA1OCwgMi40NDI4NCwgMy42MzI3NywgNC44MTUxNiwgNS45OTgzNSwgNy4xNzk0MiIsIFwKLSAgICAgICAgICAiMC4zMjQ5NjcsIDEuNTAxMzIsIDIuNDU0MzEsIDMuNjI5MDMsIDQuODI2MiwgNi4wMDE2OCwgNy4xNzkzNiIsIFwKLSAgICAgICAgICAiMC4zMjQ5NjksIDEuNTAxMTEsIDIuNDU0MzMsIDMuNjI4MzQsIDQuODI2MiwgNS45OTkyNCwgNy4xNzk1IiwgXAotICAgICAgICAgICIwLjMyNDk3MiwgMS41MDY2NSwgMi40NTQwOSwgMy42NDUzMiwgNC44MTg0NywgNS45OTc0MywgNy4xNzk5OCIsIFwKLSAgICAgICAgICAiMC4zMjQ2NTIsIDEuNTAxMDYsIDIuNDQ0MTIsIDMuNjQ1NzMsIDQuODI1NTMsIDYuMDAyMTYsIDcuMTc5MzYiLCBcCi0gICAgICAgICAgIjAuMzI0NTksIDEuNTA2MTMsIDIuNDYzNjQsIDMuNjI3ODMsIDQuODI2MTgsIDUuOTk5NTEsIDcuMTc5MzYiLCBcCi0gICAgICAgICAgIjAuMzI1NjgsIDEuNTA0NTQsIDIuNDQ1NywgMy42NDI3NSwgNC44MjYzOSwgNi4wMDE2MywgNy4xNzk0MSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTE2NjYzLCAwLjQ4ODYwNSwgMC43ODUzODYsIDEuMTU2MDUsIDEuNTI2NjksIDEuODk3NCwgMi4yNjc4NSIsIFwKLSAgICAgICAgICAiMC4xMjgzMjksIDAuNTAwNDM4LCAwLjc5Njk4OCwgMS4xNjc4OCwgMS41Mzg0MiwgMS45MDkxMywgMi4yNzk1NSIsIFwKLSAgICAgICAgICAiMC4xNDE0OTksIDAuNTEzNzEyLCAwLjgxMDM4OCwgMS4xODExMSwgMS41NTE3NSwgMS45MjIxNSwgMi4yOTI4NiIsIFwKLSAgICAgICAgICAiMC4xNTQwNDMsIDAuNTI2Mzk3LCAwLjgyMzAxNywgMS4xOTM2MiwgMS41NjQ0MiwgMS45MzQ4NCwgMi4zMDU2MSIsIFwKLSAgICAgICAgICAiMC4xNjYzODMsIDAuNTM4NzEzLCAwLjgzNTUxMiwgMS4yMDYxNiwgMS41NzY3OCwgMS45NDc0OSwgMi4zMTgxMyIsIFwKLSAgICAgICAgICAiMC4xODYwNzUsIDAuNTU4NjgyLCAwLjg1NTkxLCAxLjIyNjIyLCAxLjU5Njk1LCAxLjk2NzUzLCAyLjMzODIiLCBcCi0gICAgICAgICAgIjAuMjAzNDMzLCAwLjU3NjIzNywgMC44NzI4NTEsIDEuMjQzNjUsIDEuNjE0MzMsIDEuOTg0NzksIDIuMzU1NTQiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjE4OTEzLCAwLjk0MzU4NCwgMS41MjM1OSwgMi4yNDg0NiwgMi45NzM0MiwgMy42OTg0NywgNC40MjQzOCIsIFwKLSAgICAgICAgICAiMC4yMTg4OTMsIDAuOTQzNDM5LCAxLjUyMzM0LCAyLjI0ODI3LCAyLjk3NDA4LCAzLjY5ODM1LCA0LjQyNCIsIFwKLSAgICAgICAgICAiMC4yMTg4ODMsIDAuOTQzMzUsIDEuNTIzNDIsIDIuMjQ4NywgMi45NzQxMiwgMy42OTgyMSwgNC40MjMxNyIsIFwKLSAgICAgICAgICAiMC4yMTkyMjcsIDAuOTQzNTExLCAxLjUyMzM1LCAyLjI0ODgyLCAyLjk3MzQyLCAzLjY5ODc0LCA0LjQyNDEzIiwgXAotICAgICAgICAgICIwLjIyMDY2OSwgMC45NDM0NjQsIDEuNTIzNDEsIDIuMjQ4NjcsIDIuOTczOTksIDMuNjk4NTIsIDQuNDI0NDkiLCBcCi0gICAgICAgICAgIjAuMjI0NzI3LCAwLjk0MzU3LCAxLjUyMzYzLCAyLjI0ODg4LCAyLjk3MzQ3LCAzLjY5ODUxLCA0LjQyNDA4IiwgXAotICAgICAgICAgICIwLjIyOTYwNCwgMC45NDM1NzQsIDEuNTIzMjUsIDIuMjQ4MjEsIDIuOTczNDYsIDMuNjk4OTIsIDQuNDIzOTkiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjE5NzQsIDAuODQyOTg0LCAxLjMzOTg0LCAxLjk2MTI0LCAyLjU4MDkyLCAzLjIwNDMsIDMuODI4NzQiLCBcCi0gICAgICAgICAgIjAuMjMwMTI3LCAwLjg1MzQ4OCwgMS4zNTA0MywgMS45NzEyNSwgMi41OTIyMSwgMy4yMTUyMiwgMy44Mzg5MyIsIFwKLSAgICAgICAgICAiMC4yNDM1NDUsIDAuODY2ODg4LCAxLjM2NDI4LCAxLjk4NDcsIDIuNjA1ODMsIDMuMjI4OTYsIDMuODUyNjYiLCBcCi0gICAgICAgICAgIjAuMjU2NDUxLCAwLjg3OTk3NSwgMS4zNzcwNywgMS45OTg4MywgMi42MTg3LCAzLjI0MTY5LCAzLjg2NTkyIiwgXAotICAgICAgICAgICIwLjI2OTIxNSwgMC44OTI5NTQsIDEuMzkwMTQsIDIuMDEwNzcsIDIuNjMxODEsIDMuMjU0ODksIDMuODc4OSIsIFwKLSAgICAgICAgICAiMC4yODk1ODgsIDAuOTEzMDk4LCAxLjQxMDU4LCAyLjAzMjI4LCAyLjY1MTYzLCAzLjI3NDkzLCAzLjg5OTI5IiwgXAotICAgICAgICAgICIwLjMwNzI3NywgMC45MzExMjEsIDEuNDI4NzIsIDIuMDQ5NCwgMi42NzAyNCwgMy4yOTI3NSwgMy45MTczMyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMzk5MzYsIDEuNTA5ODcsIDIuNDQ0NjksIDMuNjE3NzgsIDQuNzkyNzgsIDUuOTczMzEsIDcuMTQzNDUiLCBcCi0gICAgICAgICAgIjAuMzM5OTI1LCAxLjUwOTYsIDIuNDQ1MzUsIDMuNjE3MTEsIDQuNzkyMTMsIDUuOTczOTUsIDcuMTQzMTQiLCBcCi0gICAgICAgICAgIjAuMzM5OTIsIDEuNTA5NzgsIDIuNDQ0MjcsIDMuNjE2ODYsIDQuNzkzNjgsIDUuOTY5MTUsIDcuMTQzNiIsIFwKLSAgICAgICAgICAiMC4zMzk5NCwgMS41MDk2NiwgMi40NDQ1LCAzLjYxNzU3LCA0Ljc5MzIxLCA1Ljk3MDkxLCA3LjE0MzQ2IiwgXAotICAgICAgICAgICIwLjMzOTkyNSwgMS41MTAxOCwgMi40NDQ3MywgMy42MTczOSwgNC43OTU3NSwgNS45Njk5MywgNy4xNDQ5MiIsIFwKLSAgICAgICAgICAiMC4zMzk5NDEsIDEuNTA5OTQsIDIuNDQ0NDQsIDMuNjE3NTEsIDQuNzkzNywgNS45NzMsIDcuMTQzMjYiLCBcCi0gICAgICAgICAgIjAuMzQyMDE4LCAxLjUwOTIzLCAyLjQ0NDczLCAzLjYxNzk3LCA0Ljc5Mjk2LCA1Ljk3MywgNy4xNDM0NyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTA5MzYsIDAuNDgxNTU5LCAwLjc3ODA0MiwgMS4xNDg5LCAxLjUxOTQ2LCAxLjg5MDE3LCAyLjI2MDc2IiwgXAotICAgICAgICAgICIwLjExOTYwMSwgMC40OTE2ODUsIDAuNzg4NDE5LCAxLjE1OTM2LCAxLjUyOTg4LCAxLjkwMDM3LCAyLjI3MTAyIiwgXAotICAgICAgICAgICIwLjEzMjc1MywgMC41MDUwOTYsIDAuODAxODkzLCAxLjE3MjY3LCAxLjU0MzI3LCAxLjkxMzk1LCAyLjI4NDY0IiwgXAotICAgICAgICAgICIwLjE0NTUxMywgMC41MTc5NjcsIDAuODE0NDQyLCAxLjE4NTI0LCAxLjU1NTk4LCAxLjkyNjQ3LCAyLjI5NzEzIiwgXAotICAgICAgICAgICIwLjE1ODU2NSwgMC41MzA4NzIsIDAuODI3NTM2LCAxLjE5ODI4LCAxLjU2ODkzLCAxLjkzOTYsIDIuMzEwMzEiLCBcCi0gICAgICAgICAgIjAuMTgwMzg1LCAwLjU1MTgwOCwgMC44NDg1MDMsIDEuMjE5MjYsIDEuNTg5ODMsIDEuOTYwNjYsIDIuMzMxMTIiLCBcCi0gICAgICAgICAgIjAuMTk5MTU4LCAwLjU3MDExNiwgMC44NjY5MTMsIDEuMjM3NjUsIDEuNjA4MTksIDEuOTc4NzYsIDIuMzQ5NTIiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjE4OTAyLCAwLjk0MzUyNSwgMS41MjM0NiwgMi4yNDg3MywgMi45NzM0MSwgMy42OTkxNCwgNC40MjMxNSIsIFwKLSAgICAgICAgICAiMC4yMTg5MDcsIDAuOTQzNDgyLCAxLjUyMzIxLCAyLjI0ODY3LCAyLjk3NDE3LCAzLjY5ODg5LCA0LjQyNDQ1IiwgXAotICAgICAgICAgICIwLjIxODgwNiwgMC45NDMzMDcsIDEuNTIzMTYsIDIuMjQ4OTQsIDIuOTczMzQsIDMuNjk4OTYsIDQuNDI0MTciLCBcCi0gICAgICAgICAgIjAuMjIwMzExLCAwLjk0MzUxMywgMS41MjMzNSwgMi4yNDgyMiwgMi45NzQxOCwgMy42OTg5MSwgNC40MjQyNCIsIFwKLSAgICAgICAgICAiMC4yMjM3ODQsIDAuOTQzNDI0LCAxLjUyMzI1LCAyLjI0ODIxLCAyLjk3NDAzLCAzLjY5ODM1LCA0LjQyNDM2IiwgXAotICAgICAgICAgICIwLjIzMTM1MiwgMC45NDM0NjIsIDEuNTIzMiwgMi4yNDg0OCwgMi45NzMzNCwgMy42OTkxNCwgNC40MjMwMiIsIFwKLSAgICAgICAgICAiMC4yNDAxNTQsIDAuOTQzNDQ5LCAxLjUyMzU0LCAyLjI0ODI4LCAyLjk3Mzk5LCAzLjY5ODkyLCA0LjQyNDI3Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIwMzg2LCAwLjgzMDAxOCwgMS4zMzAxNiwgMS45NTU5MywgMi41Nzk5MSwgMy4yMDY0MSwgMy44MzUwNiIsIFwKLSAgICAgICAgICAiMC4yMTQ5NTEsIDAuODQxNjQ1LCAxLjM0MTk3LCAxLjk2NjYyLCAyLjU5MTkzLCAzLjIxODE2LCAzLjg0NjcyIiwgXAotICAgICAgICAgICIwLjIyODExNywgMC44NTUwNzUsIDEuMzU1NjksIDEuOTgwMzQsIDIuNjA1NTksIDMuMjMxOSwgMy44NjAzIiwgXAotICAgICAgICAgICIwLjI0MDg0OSwgMC44NjgxNjgsIDEuMzY4NTUsIDEuOTk0MjIsIDIuNjE4MzksIDMuMjQ1NDIsIDMuODczMiIsIFwKLSAgICAgICAgICAiMC4yNTM0NzQsIDAuODgxLCAxLjM4MTQ1LCAyLjAwNjE3LCAyLjYzMTM3LCAzLjI1ODMyLCAzLjg4NjQ0IiwgXAotICAgICAgICAgICIwLjI3MzU0NiwgMC45MDEwODgsIDEuNDAxNzgsIDIuMDI3NjEsIDIuNjUxMTUsIDMuMjc4MjUsIDMuOTA2NzgiLCBcCi0gICAgICAgICAgIjAuMjkxMDk4LCAwLjkxODkyNiwgMS40MTk2MiwgMi4wNDQ1NywgMi42Njk2OSwgMy4yOTYwMSwgMy45MjQ3NiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMjQyMjMsIDEuNTAxODgsIDIuNDU0NDMsIDMuNjI5MTEsIDQuODI2MjcsIDYuMDAxNjMsIDcuMTc5NjUiLCBcCi0gICAgICAgICAgIjAuMzI0MjQ3LCAxLjUwNjUsIDIuNDQzNzcsIDMuNjI4NzEsIDQuODEwNSwgNi4wMDE5MSwgNy4xNzk0NyIsIFwKLSAgICAgICAgICAiMC4zMjQyNDksIDEuNTAxNzYsIDIuNDU0MzQsIDMuNjI5MTQsIDQuODI2MjMsIDYuMDAxOTgsIDcuMTc5MzgiLCBcCi0gICAgICAgICAgIjAuMzI0MTM2LCAxLjUwNTg3LCAyLjQ0MzEsIDMuNjQ1MzQsIDQuODI2MTcsIDUuOTk5MTMsIDcuMTc5MjUiLCBcCi0gICAgICAgICAgIjAuMzIzODczLCAxLjUwMjIzLCAyLjQ0NTYyLCAzLjY0NTMsIDQuODE5LCA1Ljk5Njc2LCA3LjE4MDI2IiwgXAotICAgICAgICAgICIwLjMyNDg2OCwgMS41MDIwNSwgMi40NTQ0OCwgMy42Mjg4NywgNC44MjYxMiwgNi4wMDEzMiwgNy4xNzkyOSIsIFwKLSAgICAgICAgICAiMC4zMjY5MjIsIDEuNTAxODUsIDIuNDQ0MzcsIDMuNjMwNDQsIDQuODI2NDcsIDYuMDAxNzIsIDcuMTc5NDIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQzAiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1MDEwOSwgMC4yMjk0MzEsIDAuMzcyOTg0LCAwLjU1MjA2OSwgMC43MzEzMzcsIDAuOTEwOTc1LCAxLjA4OTc0IiwgXAotICAgICAgICAgICIwLjA2MTYwMiwgMC4yNDA4MjEsIDAuMzg0MzE3LCAwLjU2MzYxNywgMC43NDI4OTYsIDAuOTIyMDY3LCAxLjEwMTEiLCBcCi0gICAgICAgICAgIjAuMDc2NzU0LCAwLjI1NjEyMywgMC4zOTk1MDIsIDAuNTc4NTk5LCAwLjc1Nzg0MSwgMC45MzcwNjksIDEuMTE2MjEiLCBcCi0gICAgICAgICAgIjAuMDkxNTU5LCAwLjI3MDMwMiwgMC40MTM2OTEsIDAuNTkwNjk2LCAwLjc2OTk3OSwgMC45NDg5MDksIDEuMTI4MDQiLCBcCi0gICAgICAgICAgIjAuMTA2NDQzLCAwLjI4NDk3NCwgMC40MjgwNTcsIDAuNjA2NjQ1LCAwLjc4Mzc5MiwgMC45NjI4MjMsIDEuMTQyMDQiLCBcCi0gICAgICAgICAgIjAuMTI5NjgsIDAuMzA4Njg1LCAwLjQ1MTU0LCAwLjYzMDQ4NSwgMC44MDYwOTUsIDAuOTg1MzMyLCAxLjE2NDc3IiwgXAotICAgICAgICAgICIwLjE0ODE2NiwgMC4zMjkyNzcsIDAuNDcyMzI3LCAwLjY1MTE0LCAwLjgzMDA4NSwgMS4wMDkyMiwgMS4xODM5MyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTQ1NTgsIDAuNDc3MjM0LCAwLjc2ODI3OCwgMS4xMzIxOCwgMS40OTYxNSwgMS44NjA2MywgMi4yMjQzNyIsIFwKLSAgICAgICAgICAiMC4xMTQ1NjIsIDAuNDc3MzAyLCAwLjc2ODQ1OSwgMS4xMzIyOSwgMS40OTYzNiwgMS44NjA2OCwgMi4yMjQ5OSIsIFwKLSAgICAgICAgICAiMC4xMTY5NzcsIDAuNDc3MzEsIDAuNzY4MzI3LCAxLjEzMjE5LCAxLjQ5NjI0LCAxLjg2MDM1LCAyLjIyNDM3IiwgXAotICAgICAgICAgICIwLjEyMjAxLCAwLjQ3NzMyNywgMC43NjgyNTQsIDEuMTMyMiwgMS40OTYzOSwgMS44NjAzMiwgMi4yMjUyNiIsIFwKLSAgICAgICAgICAiMC4xMjg2NDcsIDAuNDc3MzMsIDAuNzY4MTg5LCAxLjEzMjE5LCAxLjQ5NjE1LCAxLjg2MDM1LCAyLjIyNDM3IiwgXAotICAgICAgICAgICIwLjE0MTExNSwgMC40Nzg2MzcsIDAuNzY4MjcsIDEuMTMyMjEsIDEuNDk2MjMsIDEuODYwNzksIDIuMjI0MzciLCBcCi0gICAgICAgICAgIjAuMTUzMjY3LCAwLjQ4MTc5NiwgMC43NjgyNzgsIDEuMTMyNDUsIDEuNDk2MTEsIDEuODYwMzEsIDIuMjI0NDMiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTk4NjEyLCAwLjgyMTg4LCAxLjMxODkxLCAxLjk0MDY2LCAyLjU2MDQ3LCAzLjE4NDExLCAzLjgxMjU5IiwgXAotICAgICAgICAgICIwLjIwODIwOSwgMC44MzE1NjMsIDEuMzI4ODIsIDEuOTQ5NzgsIDIuNTY5OTcsIDMuMTk0MiwgMy44MjI5OCIsIFwKLSAgICAgICAgICAiMC4yMjAyMDEsIDAuODQ0MjY2LCAxLjM0MTU1LCAxLjk2MjAyLCAyLjU4MzI0LCAzLjIwNzMxLCAzLjgzNTA4IiwgXAotICAgICAgICAgICIwLjIzMjk1OSwgMC44NTY5MTgsIDEuMzU0NDYsIDEuOTc2MiwgMi41OTU0NywgMy4yMTk3NCwgMy44NDgzNiIsIFwKLSAgICAgICAgICAiMC4yNDQ0MywgMC44NjkwMDQsIDEuMzY2MSwgMS45ODc1OSwgMi42MDcxNCwgMy4yMzE0MywgMy44NjAwNiIsIFwKLSAgICAgICAgICAiMC4yNjM5MzMsIDAuODg4MzI1LCAxLjM4NjA0LCAyLjAwNzQyLCAyLjYyNzYyLCAzLjI1MTE1LCAzLjg3OTc5IiwgXAotICAgICAgICAgICIwLjI4MTI0NSwgMC45MDUyNTgsIDEuNDAyNywgMi4wMjM0MiwgMi42NDUwNiwgMy4yNjg1LCAzLjg5NzE4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMzOTU4OCwgMS41MDk3OSwgMi40NjI0OCwgMy42MjgwNCwgNC44MjYxNiwgNi4wMDE1NiwgNy4xNzk1OCIsIFwKLSAgICAgICAgICAiMC4zMzk5MTYsIDEuNTExMjQsIDIuNDQ0NzgsIDMuNjMxNjYsIDQuODI1NTcsIDYuMDAxNzgsIDcuMTc5OTIiLCBcCi0gICAgICAgICAgIjAuMzM5ODI0LCAxLjUxMDIzLCAyLjQ0NDY1LCAzLjYyNjMxLCA0LjgxOTU3LCA1Ljk5NTEzLCA3LjE3OTIzIiwgXAotICAgICAgICAgICIwLjMzOTQ2NSwgMS41MTEyNiwgMi40NjMzNiwgMy42MjkxNCwgNC44MjQxNCwgNi4wMDEzMSwgNy4xNzk1NiIsIFwKLSAgICAgICAgICAiMC4zMzkwNjQsIDEuNTA5ODcsIDIuNDYzOTUsIDMuNjQ2MzIsIDQuODI1NDcsIDYuMDAxNTcsIDcuMTc5MzUiLCBcCi0gICAgICAgICAgIjAuMzQxNTIzLCAxLjUwOTY0LCAyLjQ0NDI3LCAzLjYyODkxLCA0LjgxOTQ3LCA2LjAwMTczLCA3LjE3OTM3IiwgXAotICAgICAgICAgICIwLjM0NjAyNywgMS41MTExNywgMi40NTM4MywgMy42NDQ5MywgNC44MjM0OCwgNS45OTgzNSwgNy4xNzk1MiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDY0MzgsIDAuMDA2NDM1LCAwLjAwNjQzMywgMC4wMDY0MzEsIDAuMDA2NDI2LCAwLjAwNjQyMywgMC4wMDY0MjIiLCBcCi0gICAgICAgICAgIjAuMDA2NDE3LCAwLjAwNjQxMywgMC4wMDY0MTIsIDAuMDA2NDA4LCAwLjAwNjQwNCwgMC4wMDY0MDIsIDAuMDA2Mzk4IiwgXAotICAgICAgICAgICIwLjAwNjQwOCwgMC4wMDY0MDcsIDAuMDA2NDA0LCAwLjAwNjQwMSwgMC4wMDYzOTcsIDAuMDA2Mzk1LCAwLjAwNjM5MiIsIFwKLSAgICAgICAgICAiMC4wMDY0MDEsIDAuMDA2NDAzLCAwLjAwNjQwMSwgMC4wMDYzOTksIDAuMDA2Mzk0LCAwLjAwNjM5MSwgMC4wMDYzODgiLCBcCi0gICAgICAgICAgIjAuMDA2Mzk3LCAwLjAwNjQwMiwgMC4wMDYzOTgsIDAuMDA2Mzk2LCAwLjAwNjM5MywgMC4wMDYzOTEsIDAuMDA2Mzg3IiwgXAotICAgICAgICAgICIwLjAwNjM5MSwgMC4wMDYzOTgsIDAuMDA2Mzk3LCAwLjAwNjM5NCwgMC4wMDYzOTEsIDAuMDA2Mzg3LCAwLjAwNjM4NyIsIFwKLSAgICAgICAgICAiMC4wMDYzODcsIDAuMDA2Mzk2LCAwLjAwNjM5MywgMC4wMDYzOTIsIDAuMDA2Mzg4LCAwLjAwNjM4NSwgMC4wMDYzODEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI0NzksIDAuMDAyNDc3LCAwLjAwMjQ4LCAwLjAwMjQ3OSwgMC4wMDI0NjcsIDAuMDAyNDY2LCAwLjAwMjQ2OCIsIFwKLSAgICAgICAgICAiMC4wMDI0NDcsIDAuMDAyNDUxLCAwLjAwMjQ1MywgMC4wMDI0NDksIDAuMDAyNDQzLCAwLjAwMjQ0MywgMC4wMDI0NDQiLCBcCi0gICAgICAgICAgIjAuMDAyNDMyLCAwLjAwMjQ0NCwgMC4wMDI0NDUsIDAuMDAyNDQ1LCAwLjAwMjQ0MywgMC4wMDI0NDMsIDAuMDAyNDM5IiwgXAotICAgICAgICAgICIwLjAwMjQyNCwgMC4wMDI0NDIsIDAuMDAyNDQyLCAwLjAwMjQ0MSwgMC4wMDI0MzksIDAuMDAyNDM4LCAwLjAwMjQzNiIsIFwKLSAgICAgICAgICAiMC4wMDI0MTMsIDAuMDAyNDM3LCAwLjAwMjQzOCwgMC4wMDI0MzksIDAuMDAyNDM3LCAwLjAwMjQzNSwgMC4wMDI0MzQiLCBcCi0gICAgICAgICAgIjAuMDAyNDAyLCAwLjAwMjQzMiwgMC4wMDI0MzUsIDAuMDAyNDM2LCAwLjAwMjQzNSwgMC4wMDI0MzQsIDAuMDAyNDMyIiwgXAotICAgICAgICAgICIwLjAwMjM5NSwgMC4wMDI0MjgsIDAuMDAyNDMzLCAwLjAwMjQzNCwgMC4wMDI0MzMsIDAuMDAyNDMyLCAwLjAwMjQzMSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkExIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDU5MzYsIDAuMDA1OTMzLCAwLjAwNTkzMiwgMC4wMDU5MjcsIDAuMDA1OTI1LCAwLjAwNTkyMiwgMC4wMDU5MTYiLCBcCi0gICAgICAgICAgIjAuMDA1OTEyLCAwLjAwNTkxMiwgMC4wMDU5MDcsIDAuMDA1OTA1LCAwLjAwNTkwNCwgMC4wMDU4OTksIDAuMDA1ODk1IiwgXAotICAgICAgICAgICIwLjAwNTg5NiwgMC4wMDU5MDIsIDAuMDA1OTAxLCAwLjAwNTg5OCwgMC4wMDU4OTQsIDAuMDA1ODkyLCAwLjAwNTg4NyIsIFwKLSAgICAgICAgICAiMC4wMDU4ODYsIDAuMDA1ODk2LCAwLjAwNTg5NiwgMC4wMDU4OTMsIDAuMDA1ODg5LCAwLjAwNTg4NiwgMC4wMDU4ODMiLCBcCi0gICAgICAgICAgIjAuMDA1ODgsIDAuMDA1ODkzLCAwLjAwNTg5MywgMC4wMDU4OTEsIDAuMDA1ODg3LCAwLjAwNTg4NiwgMC4wMDU4ODEiLCBcCi0gICAgICAgICAgIjAuMDA1ODcxLCAwLjAwNTg4OSwgMC4wMDU4ODgsIDAuMDA1ODg4LCAwLjAwNTg4NSwgMC4wMDU4ODIsIDAuMDA1ODc5IiwgXAotICAgICAgICAgICIwLjAwNTg2NywgMC4wMDU4ODcsIDAuMDA1ODg3LCAwLjAwNTg4NiwgMC4wMDU4ODMsIDAuMDA1ODgxLCAwLjAwNTg3NiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTgxLCAwLjAwMTgxNCwgMC4wMDE4MTQsIDAuMDAxODEzLCAwLjAwMTgxMiwgMC4wMDE4MTEsIDAuMDAxODEiLCBcCi0gICAgICAgICAgIjAuMDAxODExLCAwLjAwMTgzMiwgMC4wMDE4MzUsIDAuMDAxODMzLCAwLjAwMTgzMywgMC4wMDE4MzQsIDAuMDAxODMzIiwgXAotICAgICAgICAgICIwLjAwMTc5MiwgMC4wMDE4MywgMC4wMDE4MzUsIDAuMDAxODM4LCAwLjAwMTgzOCwgMC4wMDE4MzYsIDAuMDAxODM2IiwgXAotICAgICAgICAgICIwLjAwMTc3MiwgMC4wMDE4MjUsIDAuMDAxODMyLCAwLjAwMTgzNSwgMC4wMDE4MzYsIDAuMDAxODM2LCAwLjAwMTgzNiIsIFwKLSAgICAgICAgICAiMC4wMDE3NTYsIDAuMDAxODE5LCAwLjAwMTgyOSwgMC4wMDE4MzMsIDAuMDAxODM0LCAwLjAwMTgzNSwgMC4wMDE4MzQiLCBcCi0gICAgICAgICAgIjAuMDAxNzMzLCAwLjAwMTgxLCAwLjAwMTgyMiwgMC4wMDE4MjgsIDAuMDAxODMxLCAwLjAwMTgzMiwgMC4wMDE4MzMiLCBcCi0gICAgICAgICAgIjAuMDAxNzE2LCAwLjAwMTgwMiwgMC4wMDE4MTcsIDAuMDAxODI1LCAwLjAwMTgyOSwgMC4wMDE4MywgMC4wMDE4MzEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0OTEyLCAwLjAwNDkxMSwgMC4wMDQ5MTEsIDAuMDA0OTA4LCAwLjAwNDkwNywgMC4wMDQ5MDUsIDAuMDA0OTA0IiwgXAotICAgICAgICAgICIwLjAwNDkwOCwgMC4wMDQ5MTEsIDAuMDA0OTExLCAwLjAwNDkwOSwgMC4wMDQ5MDgsIDAuMDA0OTA2LCAwLjAwNDkwNSIsIFwKLSAgICAgICAgICAiMC4wMDQ5MDEsIDAuMDA0OTEsIDAuMDA0OTEsIDAuMDA0OTA4LCAwLjAwNDkwOCwgMC4wMDQ5MDYsIDAuMDA0OTA1IiwgXAotICAgICAgICAgICIwLjAwNDg5MywgMC4wMDQ5MDgsIDAuMDA0OTA5LCAwLjAwNDkxLCAwLjAwNDkwOCwgMC4wMDQ5MDUsIDAuMDA0OTAzIiwgXAotICAgICAgICAgICIwLjAwNDg4NiwgMC4wMDQ5MDYsIDAuMDA0OTA4LCAwLjAwNDkwNywgMC4wMDQ5MDgsIDAuMDA0OTA1LCAwLjAwNDkwNCIsIFwKLSAgICAgICAgICAiMC4wMDQ4NzcsIDAuMDA0OTAyLCAwLjAwNDkwNSwgMC4wMDQ5MDYsIDAuMDA0OTA1LCAwLjAwNDkwNCwgMC4wMDQ5MDQiLCBcCi0gICAgICAgICAgIjAuMDA0ODcxLCAwLjAwNDksIDAuMDA0OTA0LCAwLjAwNDkwNCwgMC4wMDQ5MDUsIDAuMDA0OTA0LCAwLjAwNDkwMiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjQ4LCAwLjAwMjQ4LCAwLjAwMjQ3NSwgMC4wMDI0ODMsIDAuMDAyNDczLCAwLjAwMjQ3MiwgMC4wMDI0NjkiLCBcCi0gICAgICAgICAgIjAuMDAyNDQ4LCAwLjAwMjQ1MywgMC4wMDI0NTIsIDAuMDAyNDUyLCAwLjAwMjQ0OSwgMC4wMDI0NDYsIDAuMDAyNDQiLCBcCi0gICAgICAgICAgIjAuMDAyNDMzLCAwLjAwMjQ0NCwgMC4wMDI0NDUsIDAuMDAyNDQ0LCAwLjAwMjQ0NCwgMC4wMDI0NDEsIDAuMDAyNDQiLCBcCi0gICAgICAgICAgIjAuMDAyNDIzLCAwLjAwMjQ0MSwgMC4wMDI0NDIsIDAuMDAyNDQyLCAwLjAwMjQ0LCAwLjAwMjQzNywgMC4wMDI0MzYiLCBcCi0gICAgICAgICAgIjAuMDAyNDE0LCAwLjAwMjQzNywgMC4wMDI0MzksIDAuMDAyNDM5LCAwLjAwMjQzOCwgMC4wMDI0MzYsIDAuMDAyNDM0IiwgXAotICAgICAgICAgICIwLjAwMjQwMywgMC4wMDI0MzMsIDAuMDAyNDM2LCAwLjAwMjQzNywgMC4wMDI0MzYsIDAuMDAyNDM0LCAwLjAwMjQzMiIsIFwKLSAgICAgICAgICAiMC4wMDIzOTUsIDAuMDAyNDI4LCAwLjAwMjQzMiwgMC4wMDI0MzQsIDAuMDAyNDM0LCAwLjAwMjQzMiwgMC4wMDI0MzEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0Mzk5LCAwLjAwNDM5OCwgMC4wMDQzOTgsIDAuMDA0Mzk2LCAwLjAwNDM5NSwgMC4wMDQzOTMsIDAuMDA0MzkiLCBcCi0gICAgICAgICAgIjAuMDA0MzksIDAuMDA0Mzk4LCAwLjAwNDM5NywgMC4wMDQzOTYsIDAuMDA0Mzk1LCAwLjAwNDM5NCwgMC4wMDQzOTEiLCBcCi0gICAgICAgICAgIjAuMDA0MzczLCAwLjAwNDM5NSwgMC4wMDQzOTUsIDAuMDA0Mzk1LCAwLjAwNDM5NCwgMC4wMDQzOTIsIDAuMDA0MzkiLCBcCi0gICAgICAgICAgIjAuMDA0MzY4LCAwLjAwNDM5MiwgMC4wMDQzOTQsIDAuMDA0MzkzLCAwLjAwNDM5MywgMC4wMDQzOTEsIDAuMDA0MzkxIiwgXAotICAgICAgICAgICIwLjAwNDM1OCwgMC4wMDQzODgsIDAuMDA0MzkyLCAwLjAwNDM5MiwgMC4wMDQzOTIsIDAuMDA0MzkyLCAwLjAwNDM5IiwgXAotICAgICAgICAgICIwLjAwNDM0NywgMC4wMDQzODQsIDAuMDA0Mzg5LCAwLjAwNDM5LCAwLjAwNDM5LCAwLjAwNDM4OSwgMC4wMDQzODkiLCBcCi0gICAgICAgICAgIjAuMDA0MzQsIDAuMDA0MzgxLCAwLjAwNDM4NiwgMC4wMDQzODgsIDAuMDA0Mzg5LCAwLjAwNDM4OSwgMC4wMDQzODgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDE3NDUsIDAuMDAxNzQ5LCAwLjAwMTc0OSwgMC4wMDE3NDksIDAuMDAxNzQ4LCAwLjAwMTc0NiwgMC4wMDE3NDUiLCBcCi0gICAgICAgICAgIjAuMDAxNzQ2LCAwLjAwMTc2NywgMC4wMDE3NywgMC4wMDE3NywgMC4wMDE3NjcsIDAuMDAxNzY5LCAwLjAwMTc2OSIsIFwKLSAgICAgICAgICAiMC4wMDE3MjcsIDAuMDAxNzY2LCAwLjAwMTc3LCAwLjAwMTc3MywgMC4wMDE3NzMsIDAuMDAxNzc0LCAwLjAwMTc3MyIsIFwKLSAgICAgICAgICAiMC4wMDE3MDcsIDAuMDAxNzYsIDAuMDAxNzY3LCAwLjAwMTc3MywgMC4wMDE3NzMsIDAuMDAxNzczLCAwLjAwMTc3MSIsIFwKLSAgICAgICAgICAiMC4wMDE2OSwgMC4wMDE3NTUsIDAuMDAxNzY0LCAwLjAwMTc2OCwgMC4wMDE3NywgMC4wMDE3NzEsIDAuMDAxNzcxIiwgXAotICAgICAgICAgICIwLjAwMTY2OCwgMC4wMDE3NDYsIDAuMDAxNzU4LCAwLjAwMTc2NSwgMC4wMDE3NjcsIDAuMDAxNzY5LCAwLjAwMTc2OSIsIFwKLSAgICAgICAgICAiMC4wMDE2NTIsIDAuMDAxNzM3LCAwLjAwMTc1MywgMC4wMDE3NjEsIDAuMDAxNzY1LCAwLjAwMTc2NiwgMC4wMDE3NjciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDMCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzNTYyLCAwLjAwMzU2NiwgMC4wMDM1NjcsIDAuMDAzNTY3LCAwLjAwMzU2NywgMC4wMDM1NjcsIDAuMDAzNTY3IiwgXAotICAgICAgICAgICIwLjAwMzU1OSwgMC4wMDM1ODQsIDAuMDAzNTg2LCAwLjAwMzU4NywgMC4wMDM1ODgsIDAuMDAzNTg2LCAwLjAwMzU4OSIsIFwKLSAgICAgICAgICAiMC4wMDM1NTMsIDAuMDAzNTg2LCAwLjAwMzU5LCAwLjAwMzU5MSwgMC4wMDM1OTIsIDAuMDAzNTkzLCAwLjAwMzU5NCIsIFwKLSAgICAgICAgICAiMC4wMDM1NCwgMC4wMDM1ODUsIDAuMDAzNTksIDAuMDAzNTk1LCAwLjAwMzU5NiwgMC4wMDM1OTQsIDAuMDAzNTkzIiwgXAotICAgICAgICAgICIwLjAwMzUzLCAwLjAwMzU4LCAwLjAwMzU4OSwgMC4wMDM1OTMsIDAuMDAzNTk0LCAwLjAwMzU5NSwgMC4wMDM1OTciLCBcCi0gICAgICAgICAgIjAuMDAzNTE1LCAwLjAwMzU3NywgMC4wMDM1ODUsIDAuMDAzNTksIDAuMDAzNTkzLCAwLjAwMzU5NSwgMC4wMDM1OTYiLCBcCi0gICAgICAgICAgIjAuMDAzNTA2LCAwLjAwMzU3MywgMC4wMDM1ODMsIDAuMDAzNTg5LCAwLjAwMzU5MiwgMC4wMDM1OTQsIDAuMDAzNTk1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyNTAyLCAwLjAwMjUwNiwgMC4wMDI1MDcsIDAuMDAyNTAxLCAwLjAwMjQ5OSwgMC4wMDI1LCAwLjAwMjQ5NyIsIFwKLSAgICAgICAgICAiMC4wMDI0NzcsIDAuMDAyNDk5LCAwLjAwMjUwMywgMC4wMDI1MDEsIDAuMDAyNSwgMC4wMDI0OTgsIDAuMDAyNDk2IiwgXAotICAgICAgICAgICIwLjAwMjQ1MiwgMC4wMDI0OTEsIDAuMDAyNDk1LCAwLjAwMjQ5NiwgMC4wMDI0OTcsIDAuMDAyNDk0LCAwLjAwMjQ5NCIsIFwKLSAgICAgICAgICAiMC4wMDI0MzUsIDAuMDAyNDg0LCAwLjAwMjQ5MSwgMC4wMDI0OTUsIDAuMDAyNDk1LCAwLjAwMjQ5MywgMC4wMDI0OTMiLCBcCi0gICAgICAgICAgIjAuMDAyNDIsIDAuMDAyNDc3LCAwLjAwMjQ4NiwgMC4wMDI0OSwgMC4wMDI0OTEsIDAuMDAyNDksIDAuMDAyNDkiLCBcCi0gICAgICAgICAgIjAuMDAyNDA0LCAwLjAwMjQ2NywgMC4wMDI0NzksIDAuMDAyNDg2LCAwLjAwMjQ4NywgMC4wMDI0ODgsIDAuMDAyNDg2IiwgXAotICAgICAgICAgICIwLjAwMjM5MywgMC4wMDI0NTksIDAuMDAyNDczLCAwLjAwMjQ4LCAwLjAwMjQ4MywgMC4wMDI0ODUsIDAuMDAyNDg1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IE9SM1g2ICoKLSAqIC0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChPUjNYNikgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjQxODEzNjsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxODAwMzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE3ODU4NTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE4MDAzOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDUzLCAwLjAwMDU1LCAwLjAwMDU2LCAwLjAwMDU2NiwgMC4wMDA1NjksIDAuMDAwNTcyLCAwLjAwMDU3NCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDc3OSwgMC4wMDA3NzksIDAuMDAwNzgsIDAuMDAwNzgsIDAuMDAwNzgsIDAuMDAwNzgsIDAuMDAwNzgiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTY0Mzc2OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTYzMDk0OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTY0Mzc2OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDUzMSwgMC4wMDA1NjYsIDAuMDAwNTc4LCAwLjAwMDU4MywgMC4wMDA1ODYsIDAuMDAwNTg4LCAwLjAwMDU5MSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDYyNywgMC4wMDA2MjcsIDAuMDAwNjI4LCAwLjAwMDYyOCwgMC4wMDA2MjgsIDAuMDAwNjI4LCAwLjAwMDYyOCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQykgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNDg4OTU7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNDg4NzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE0ODg5NTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxODEsIDAuMDAwMTgyLCAwLjAwMDE4MiwgMC4wMDAxODIsIDAuMDAwMTgyLCAwLjAwMDE4MiwgMC4wMDAxODIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA2OTksIDAuMDAwNjk5LCAwLjAwMDY5OSwgMC4wMDA2OTksIDAuMDAwNjk4LCAwLjAwMDY5OCwgMC4wMDA2OTkiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC43ODA0NzY7Ci0gICAgZnVuY3Rpb24gOiAiKChBK0IpK0MpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3OTEyOCwgMC4xNjY4NywgMC4yNTE2MDcsIDAuMzExOTU5LCAwLjQwODQ3MywgMC40OTI4MjMsIDAuNjEzMzc2IiwgXAotICAgICAgICAgICIwLjA5MDc2LCAwLjE3ODQ3NCwgMC4yNjMyMTYsIDAuMzIzNTY5LCAwLjQyMDA2MiwgMC41MDQ0MzQsIDAuNjI0OTU4IiwgXAotICAgICAgICAgICIwLjEwNTYsIDAuMTkzMzQ2LCAwLjI3ODEwMSwgMC4zMzg0NTgsIDAuNDM0OTM0LCAwLjUxOTMyNiwgMC42Mzk4MzkiLCBcCi0gICAgICAgICAgIjAuMTIwNzU3LCAwLjIwODUwNiwgMC4yOTMyNzQsIDAuMzUzNjM0LCAwLjQ1MDEyLCAwLjUzNDUwNSwgMC42NTUwMjIiLCBcCi0gICAgICAgICAgIjAuMTM1NzkzLCAwLjIyMzUwOSwgMC4zMDgyMTQsIDAuMzY4NjEsIDAuNDY1MTAxLCAwLjU0OTUyMSwgMC42NzAwMzUiLCBcCi0gICAgICAgICAgIjAuMTU5MzAxLCAwLjI0NzE1NCwgMC4zMzE4NzksIDAuMzkyMjY5LCAwLjQ4ODc3NSwgMC41NzMxNDgsIDAuNjkzNzI5IiwgXAotICAgICAgICAgICIwLjE3OTY1LCAwLjI2NzM5NywgMC4zNTIxMDEsIDAuNDEyNDk2LCAwLjUwODk4MywgMC41OTMzNjgsIDAuNzEzODkxIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQ1NTE2LCAwLjIxMTQ1NSwgMC4zODIxMTMsIDAuNTA0MzcxLCAwLjcwMDM4NSwgMC44NzIyNzYsIDEuMTEzNDIiLCBcCi0gICAgICAgICAgIjAuMDQ1NTE0LCAwLjIxMTQzOCwgMC4zODEyNTQsIDAuNTA0MzM0LCAwLjcwMDQwNywgMC44NzEwNzIsIDEuMTE3MjkiLCBcCi0gICAgICAgICAgIjAuMDQ1NDQ4LCAwLjIxMTM4OCwgMC4zODEyMDcsIDAuNTA0MzA2LCAwLjcwMDU0NywgMC44NzIxOCwgMS4xMTQ2MiIsIFwKLSAgICAgICAgICAiMC4wNDUzNTQsIDAuMjExMzU1LCAwLjM4MTI3OCwgMC41MDQzMTMsIDAuNzAwNTI1LCAwLjg3MjIxMSwgMS4xMTQyMSIsIFwKLSAgICAgICAgICAiMC4wNDU0NTIsIDAuMjEwODc4LCAwLjM4MTg5NSwgMC41MDMzODksIDAuNzAwNTI1LCAwLjg3MjAwNywgMS4xMTUzNCIsIFwKLSAgICAgICAgICAiMC4wNDY2NDMsIDAuMjExMzczLCAwLjM4MTE5MSwgMC41MDQyNjIsIDAuNjk5Mjk2LCAwLjg3MjA2MSwgMS4xMTY5NSIsIFwKLSAgICAgICAgICAiMC4wNDczODYsIDAuMjExNTIxLCAwLjM4MTUxOCwgMC41MDQzOTYsIDAuNzAwNTA5LCAwLjg3MTc0MywgMS4xMTU4NyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE2NzkxNywgMC4yODM2ODEsIDAuMzg0NDkyLCAwLjQ1NTc3MiwgMC41Njk1NjQsIDAuNjY5MTAyLCAwLjgxMTMwOSIsIFwKLSAgICAgICAgICAiMC4xNzg5MzUsIDAuMjk0ODU3LCAwLjM5NTY0NywgMC40NjY5MTUsIDAuNTgwNzE1LCAwLjY4MDI1OCwgMC44MjI0NzMiLCBcCi0gICAgICAgICAgIjAuMTkxNTM3LCAwLjMwNzQ2OCwgMC40MDgyNTUsIDAuNDc5NTE3LCAwLjU5MzI5OSwgMC42OTI4NjIsIDAuODM1MDg0IiwgXAotICAgICAgICAgICIwLjIwMzQ3MywgMC4zMTkwNDcsIDAuNDE5ODY0LCAwLjQ5MTExNywgMC42MDQ5MTgsIDAuNzA0NDY3LCAwLjg0NjY4NyIsIFwKLSAgICAgICAgICAiMC4yMTQ1NjgsIDAuMzMwMzgzLCAwLjQzMTE1NSwgMC41MDI0MTQsIDAuNjE2MjMzLCAwLjcxNTc3MywgMC44NTc5OCIsIFwKLSAgICAgICAgICAiMC4yMzE5MTcsIDAuMzQ3NjgzLCAwLjQ0ODQ3NiwgMC41MTk3NDcsIDAuNjMzNTYzLCAwLjczMzEwOSwgMC44NzUzMTgiLCBcCi0gICAgICAgICAgIjAuMjQ2NjA5LCAwLjM2MjQ1OCwgMC40NjMyMzgsIDAuNTM0NTIxLCAwLjY0ODMzNCwgMC43NDc4NzcsIDAuODkwMDQxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDcxNywgMC4yNTg0MzYsIDAuNDQ5NjAxLCAwLjU4ODk4MiwgMC44MTEyNzYsIDEuMDA2OTcsIDEuMjkyMDMiLCBcCi0gICAgICAgICAgIjAuMDcyMDkyLCAwLjI1ODUyOSwgMC40NDk4MzMsIDAuNTg5MDM4LCAwLjgxMzMyMSwgMS4wMDY3LCAxLjI5MjAzIiwgXAotICAgICAgICAgICIwLjA3MTk4NCwgMC4yNTg2NjcsIDAuNDQ5NzkzLCAwLjU4OTAyLCAwLjgxMzAyMiwgMS4wMDc1NSwgMS4yOTA3MSIsIFwKLSAgICAgICAgICAiMC4wNzE3NzQsIDAuMjU4Njc4LCAwLjQ0OTY3LCAwLjU4ODM3NiwgMC44MTMxMDQsIDEuMDA3MywgMS4yOTIwNSIsIFwKLSAgICAgICAgICAiMC4wNzIwMywgMC4yNTg1NzksIDAuNDQ5NjI1LCAwLjU4ODk2NSwgMC44MTIyOTYsIDEuMDA2OTMsIDEuMjkyMDMiLCBcCi0gICAgICAgICAgIjAuMDcxNzUxLCAwLjI1ODM5MywgMC40NDk3NywgMC41ODg5OSwgMC44MTMyOTEsIDEuMDA2OCwgMS4yOTIwMiIsIFwKLSAgICAgICAgICAiMC4wNzE3MDksIDAuMjU4NTMsIDAuNDQ5NTc4LCAwLjU4ODk1MywgMC44MTA5MjgsIDEuMDA4NTYsIDEuMjkwNDYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzUwMzgsIDAuMTYyMDY4LCAwLjI0NjYxNiwgMC4zMDY4ODIsIDAuNDAzMjY5LCAwLjQ4NzYzMSwgMC42MDgwNjQiLCBcCi0gICAgICAgICAgIjAuMDg2Njc5LCAwLjE3MzcwOSwgMC4yNTgyMywgMC4zMTg0OTksIDAuNDE0ODg5LCAwLjQ5OTIyNSwgMC42MTk2ODYiLCBcCi0gICAgICAgICAgIjAuMTAxNjU4LCAwLjE4ODcyMywgMC4yNzMyNzUsIDAuMzMzNTQ2LCAwLjQyOTk0MSwgMC41MTQzMTUsIDAuNjM0NzE2IiwgXAotICAgICAgICAgICIwLjExNjg0OSwgMC4yMDM5NDcsIDAuMjg4NTA3LCAwLjM0ODc5NiwgMC40NDUxNjUsIDAuNTI5NTA5LCAwLjY0OTgzNyIsIFwKLSAgICAgICAgICAiMC4xMzE2NzYsIDAuMjE4Nzc0LCAwLjMwMzMzNywgMC4zNjM2MTEsIDAuNDYwMDEsIDAuNTQ0MzUsIDAuNjY0ODE2IiwgXAotICAgICAgICAgICIwLjE1NTA2MywgMC4yNDIyODgsIDAuMzI2ODI0LCAwLjM4NzEyNCwgMC40ODM1MjQsIDAuNTY3ODY1LCAwLjY4ODMyOSIsIFwKLSAgICAgICAgICAiMC4xNzQyMjQsIDAuMjYxNTYzLCAwLjM0NjA3NSwgMC40MDYzODMsIDAuNTAyNzk0LCAwLjU4NzEyOCwgMC43MDc1OSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0NDYwNywgMC4yMTA1NTIsIDAuMzgxNDcsIDAuNTAzODQzLCAwLjY5ODAxOSwgMC44NjgzNzIsIDEuMTE3MTQiLCBcCi0gICAgICAgICAgIjAuMDQ0NTkyLCAwLjIxMDUxMSwgMC4zODE0MzgsIDAuNTAzODAyLCAwLjY5OTg3MiwgMC44NzAzNjIsIDEuMTE1MjYiLCBcCi0gICAgICAgICAgIjAuMDQ0NTc3LCAwLjIxMDU3NSwgMC4zODE0NTEsIDAuNTAzODA1LCAwLjY5OTk1NCwgMC44NzE2MDQsIDEuMTE1MjUiLCBcCi0gICAgICAgICAgIjAuMDQ0NTgxLCAwLjIxMDU2OSwgMC4zODAzNDcsIDAuNTAyNTIxLCAwLjY5OTcxLCAwLjg3MTY1MiwgMS4xMTI4NyIsIFwKLSAgICAgICAgICAiMC4wNDQ4NDksIDAuMjEwNTU3LCAwLjM4MTQyNywgMC41MDM3ODUsIDAuNjk5ODM3LCAwLjg3MDI2OSwgMS4xMTUzMiIsIFwKLSAgICAgICAgICAiMC4wNDU2MzUsIDAuMjEwMjI5LCAwLjM4MDUxMywgMC41MDM4MjgsIDAuNjk5ODUzLCAwLjg3MDM1MiwgMS4xMTUxMSIsIFwKLSAgICAgICAgICAiMC4wNDc3OTUsIDAuMjEwOTc2LCAwLjM4MDcwMywgMC41MDI5MjUsIDAuNjk5ODkyLCAwLjg3MDIyOCwgMS4xMTUxIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTYxNjg4LCAwLjI3NzYxNywgMC4zNzg0MDUsIDAuNDQ5NjczLCAwLjU2MzQ1OSwgMC42NjMwMTksIDAuODA1MjQyIiwgXAotICAgICAgICAgICIwLjE3MjAxMSwgMC4yODc1NzUsIDAuMzg4Mzg2LCAwLjQ1OTY4LCAwLjU3MzQ2NSwgMC42NzMwMDYsIDAuODE1MjMzIiwgXAotICAgICAgICAgICIwLjE4NDQwOSwgMC4yOTk5MiwgMC40MDA3MjEsIDAuNDcyMDA3LCAwLjU4NTgwOCwgMC42ODUzNDYsIDAuODI3NDkxIiwgXAotICAgICAgICAgICIwLjE5NjE3NiwgMC4zMTIxMTEsIDAuNDEyOTE0LCAwLjQ4NDE4NCwgMC41OTc5OTIsIDAuNjk3NTUsIDAuODM5NzY2IiwgXAotICAgICAgICAgICIwLjIwODEyOCwgMC4zMjM5MzgsIDAuNDI0NzMsIDAuNDk1OTksIDAuNjA5ODE2LCAwLjcwOTM2MywgMC44NTE1NjkiLCBcCi0gICAgICAgICAgIjAuMjI3MDcxLCAwLjM0MjgyNywgMC40NDM2NDUsIDAuNTE0OTA5LCAwLjYyODcyNSwgMC43MjgyMzgsIDAuODcwNDcxIiwgXAotICAgICAgICAgICIwLjI0MzI3LCAwLjM1OTEzMSwgMC40NTk5MzEsIDAuNTMxMjE4LCAwLjY0NTA2NiwgMC43NDQ1ODgsIDAuODg2Nzk3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDcyMDg1LCAwLjI1ODY3OCwgMC40NDk4NDIsIDAuNTg5MDQ3LCAwLjgxMzA4NiwgMS4wMDczMSwgMS4yOTA2OSIsIFwKLSAgICAgICAgICAiMC4wNzE2NjcsIDAuMjU4ODIzLCAwLjQ0OTczNiwgMC41ODkwMjUsIDAuODEyNTU2LCAxLjAwNzEsIDEuMjkwNzIiLCBcCi0gICAgICAgICAgIjAuMDcxODAxLCAwLjI1ODY2OCwgMC40NDk3MzIsIDAuNTg5MDMxLCAwLjgxMDk3NSwgMS4wMDY4OCwgMS4yOTE5IiwgXAotICAgICAgICAgICIwLjA3MjE1NiwgMC4yNTg0OCwgMC40NDk4MDksIDAuNTg5MDIzLCAwLjgxMzE1MiwgMS4wMDY3LCAxLjI5MjAzIiwgXAotICAgICAgICAgICIwLjA3MTkxMiwgMC4yNTg1MTUsIDAuNDQ5NjEzLCAwLjU4ODk3LCAwLjgxMTY0LCAxLjAwNzA3LCAxLjI5MjAzIiwgXAotICAgICAgICAgICIwLjA3MTcsIDAuMjU4NTU4LCAwLjQ0OTcxNCwgMC41ODg5NzQsIDAuODExMjYsIDEuMDA5OTEsIDEuMjkxOTkiLCBcCi0gICAgICAgICAgIjAuMDcxOTExLCAwLjI1ODQ0OCwgMC40NDk3MzQsIDAuNTg4OTYsIDAuODEzNTY2LCAxLjAwNzA3LCAxLjI5MjAxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY5NTM4LCAwLjE1NjE5NSwgMC4yNDA1NDEsIDAuMzAwNzczLCAwLjM5NzIwOSwgMC40ODE0MzMsIDAuNjAyMTA4IiwgXAotICAgICAgICAgICIwLjA4MTE4LCAwLjE2Nzk0LCAwLjI1MjMyNywgMC4zMTI1MjksIDAuNDA4OTY0LCAwLjQ5MzA0NiwgMC42MTM2NTQiLCBcCi0gICAgICAgICAgIjAuMDk2MzA0LCAwLjE4MzEyMiwgMC4yNjc0OTEsIDAuMzI3NzE1LCAwLjQyNDE0MSwgMC41MDg0MDQsIDAuNjI5MDYiLCBcCi0gICAgICAgICAgIjAuMTExMjMsIDAuMTk4MDI4LCAwLjI4MjQ1OCwgMC4zNDI2NjgsIDAuNDM5MDc2LCAwLjUyMzM0NiwgMC42NDM5OTIiLCBcCi0gICAgICAgICAgIjAuMTI2MTA3LCAwLjIxMjc4OCwgMC4yOTcxNywgMC4zNTc0NDQsIDAuNDUzODU2LCAwLjUzODA5NSwgMC42NTg3MjYiLCBcCi0gICAgICAgICAgIjAuMTQ4NjQ2LCAwLjIzNTY5NSwgMC4zMjAwOTQsIDAuMzgwMzQsIDAuNDc2ODMsIDAuNTYxMDI0LCAwLjY4MTY2OSIsIFwKLSAgICAgICAgICAiMC4xNjczMDMsIDAuMjU0NDQ5LCAwLjMzODgyMSwgMC4zOTkxMDQsIDAuNDk1NDMxLCAwLjU3OTkzMiwgMC43MDAyNjIiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDQwNzYsIDAuMjEwMDM5LCAwLjM4MDc2NSwgMC41MDMzNzQsIDAuNjk4MDg4LCAwLjg3MTUxNiwgMS4xMTQxMiIsIFwKLSAgICAgICAgICAiMC4wNDQwMTEsIDAuMjA5NjE1LCAwLjM4MDI3NywgMC41MDMzNTIsIDAuNjk4MDYzLCAwLjg2Nzg5NCwgMS4xMTUwMSIsIFwKLSAgICAgICAgICAiMC4wNDQwMTcsIDAuMjA5OTczLCAwLjM4MDE1OSwgMC41MDMzMjgsIDAuNjk3NTk5LCAwLjg3MTMxMiwgMS4xMTQxMiIsIFwKLSAgICAgICAgICAiMC4wNDQzMjgsIDAuMjA5NjU2LCAwLjM3OTg1NSwgMC41MDMzNTQsIDAuNjk3NzMxLCAwLjg3MTUyMywgMS4xMTQxIiwgXAotICAgICAgICAgICIwLjA0NDQ4NywgMC4yMTAxMDYsIDAuMzgwNzgxLCAwLjUwMjAzOCwgMC42OTgwNTcsIDAuODcxMjIyLCAxLjExNDEiLCBcCi0gICAgICAgICAgIjAuMDQ2MzE2LCAwLjIxMDI5NywgMC4zNzk5NzgsIDAuNTAzNDE2LCAwLjY5NzkwMSwgMC44NzE1MTcsIDEuMTE0MSIsIFwKLSAgICAgICAgICAiMC4wNDgxNTcsIDAuMjEwNjcyLCAwLjM4MDkxMywgMC41MDIxMDQsIDAuNjk5NDgzLCAwLjg2OTI3MiwgMS4xMTM2MiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE0NjgwNSwgMC4yNjI3MjksIDAuMzYzNTMyLCAwLjQzNDgwNywgMC41NDg2MTYsIDAuNjQ4MTIsIDAuNzkwMzkyIiwgXAotICAgICAgICAgICIwLjE1NTk4MiwgMC4yNzE2ODksIDAuMzcyNTM0LCAwLjQ0MzgwOCwgMC41NTc1OSwgMC42NTcxNTEsIDAuNzk5MzgiLCBcCi0gICAgICAgICAgIjAuMTY3NTQyLCAwLjI4MzQxNywgMC4zODQyNTEsIDAuNDU1NTE4LCAwLjU2OTMyOCwgMC42Njg4NjgsIDAuODExMDE1IiwgXAotICAgICAgICAgICIwLjE4MDE0OCwgMC4yOTU5OTYsIDAuMzk2ODMyLCAwLjQ2ODEyMSwgMC41ODE5MzEsIDAuNjgxNDc4LCAwLjgyMzYzOCIsIFwKLSAgICAgICAgICAiMC4xOTI0NDMsIDAuMzA4MjU0LCAwLjQwOTA2NiwgMC40ODAzMzgsIDAuNTk0MTYxLCAwLjY5MzY5NCwgMC44MzU4MjMiLCBcCi0gICAgICAgICAgIjAuMjEyMzgzLCAwLjMyODEzNCwgMC40Mjg5NDYsIDAuNTAwMjMsIDAuNjE0MDU1LCAwLjcxMzU4MSwgMC44NTU4NDQiLCBcCi0gICAgICAgICAgIjAuMjI5NzM5LCAwLjM0NTMyMiwgMC40NDYxNTgsIDAuNTE3NDQ0LCAwLjYzMTI3LCAwLjczMDgzMywgMC44NzMwNjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzIwNDksIDAuMjU4NjUyLCAwLjQ0OTc5NywgMC41ODkwMDksIDAuODExNTQ5LCAxLjAwOTc0LCAxLjI4ODQ3IiwgXAotICAgICAgICAgICIwLjA3MTYyMywgMC4yNTg1MzMsIDAuNDQ5NzI4LCAwLjU4OTAyLCAwLjgxMzAzNywgMS4wMDgxNSwgMS4yODg1MiIsIFwKLSAgICAgICAgICAiMC4wNzE2OTYsIDAuMjU4NDUxLCAwLjQ0OTcyMSwgMC41ODg5OTcsIDAuODExMjMzLCAxLjAxMDEzLCAxLjI5MTg4IiwgXAotICAgICAgICAgICIwLjA3MTgxNiwgMC4yNTgzODYsIDAuNDQ5NTk1LCAwLjU4ODk3OSwgMC44MTA4NDcsIDEuMDA4MjQsIDEuMjkwNTIiLCBcCi0gICAgICAgICAgIjAuMDcxNjk3LCAwLjI1ODU4OCwgMC40NDk3NDMsIDAuNTg4OTgxLCAwLjgxMTU4MiwgMS4wMTAyMSwgMS4yOTE3NSIsIFwKLSAgICAgICAgICAiMC4wNzE4OTQsIDAuMjU4NjQ1LCAwLjQ0OTczNywgMC41ODg5OTUsIDAuODExNTM1LCAxLjAwNzgyLCAxLjI5MDY5IiwgXAotICAgICAgICAgICIwLjA3MjE2MSwgMC4yNTg4MywgMC40NDk5MDUsIDAuNTg4OTg2LCAwLjgxMzI0OCwgMS4wMDc5NywgMS4yOTIwNCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2NTMyLCAwLjAwNjY4NSwgMC4wMDY3MDYsIDAuMDA2NzEyLCAwLjAwNjcyMSwgMC4wMDY3MjQsIDAuMDA2NzIyIiwgXAotICAgICAgICAgICIwLjAwNjQ4MywgMC4wMDY2MzgsIDAuMDA2NjYxLCAwLjAwNjY2NiwgMC4wMDY2NzIsIDAuMDA2Njc2LCAwLjAwNjY3OSIsIFwKLSAgICAgICAgICAiMC4wMDY0NDcsIDAuMDA2NjA4LCAwLjAwNjYzMiwgMC4wMDY2NDEsIDAuMDA2NjQ4LCAwLjAwNjY1MSwgMC4wMDY2NTIiLCBcCi0gICAgICAgICAgIjAuMDA2NDE5LCAwLjAwNjU4NCwgMC4wMDY2MTQsIDAuMDA2NjIzLCAwLjAwNjYzMiwgMC4wMDY2MzYsIDAuMDA2NjQiLCBcCi0gICAgICAgICAgIjAuMDA2MzksIDAuMDA2NTYxLCAwLjAwNjU5NSwgMC4wMDY2MDYsIDAuMDA2NjE1LCAwLjAwNjYyMiwgMC4wMDY2MjYiLCBcCi0gICAgICAgICAgIjAuMDA2MzU1LCAwLjAwNjUzNywgMC4wMDY1NzYsIDAuMDA2NTksIDAuMDA2NjAzLCAwLjAwNjYwOSwgMC4wMDY2MTUiLCBcCi0gICAgICAgICAgIjAuMDA2MzU5LCAwLjAwNjUyMywgMC4wMDY1NjUsIDAuMDA2NTgsIDAuMDA2NTk0LCAwLjAwNjYwMiwgMC4wMDY2MTIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwODkwMywgMC4wMDkxNTgsIDAuMDA5MjA5LCAwLjAwOTIyNSwgMC4wMDkyMzksIDAuMDA5MjQ3LCAwLjAwOTI1MyIsIFwKLSAgICAgICAgICAiMC4wMDg4NzYsIDAuMDA5MTM0LCAwLjAwOTE4NiwgMC4wMDkyMDIsIDAuMDA5MjE3LCAwLjAwOTIyNCwgMC4wMDkyMzEiLCBcCi0gICAgICAgICAgIjAuMDA4ODYsIDAuMDA5MTE2LCAwLjAwOTE2OSwgMC4wMDkxODUsIDAuMDA5MiwgMC4wMDkyMDcsIDAuMDA5MjE0IiwgXAotICAgICAgICAgICIwLjAwODg0NSwgMC4wMDkxLCAwLjAwOTE1NSwgMC4wMDkxNzIsIDAuMDA5MTg4LCAwLjAwOTE5NSwgMC4wMDkyMDMiLCBcCi0gICAgICAgICAgIjAuMDA4ODMyLCAwLjAwOTA5MiwgMC4wMDkxNDcsIDAuMDA5MTY1LCAwLjAwOTE4LCAwLjAwOTE4OSwgMC4wMDkxOTYiLCBcCi0gICAgICAgICAgIjAuMDA4ODIsIDAuMDA5MDc5LCAwLjAwOTEzNiwgMC4wMDkxNTQsIDAuMDA5MTcxLCAwLjAwOTE3OSwgMC4wMDkxODciLCBcCi0gICAgICAgICAgIjAuMDA4ODE0LCAwLjAwOTA2OCwgMC4wMDkxMjgsIDAuMDA5MTQ3LCAwLjAwOTE2NCwgMC4wMDkxNzMsIDAuMDA5MTgxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDU5NzIsIDAuMDA2MTMsIDAuMDA2MTUsIDAuMDA2MTU2LCAwLjAwNjE2MSwgMC4wMDYxNjIsIDAuMDA2MTYzIiwgXAotICAgICAgICAgICIwLjAwNTk0LCAwLjAwNjEwMywgMC4wMDYxMjcsIDAuMDA2MTMsIDAuMDA2MTM2LCAwLjAwNjEzNywgMC4wMDYxNDEiLCBcCi0gICAgICAgICAgIjAuMDA1ODkxLCAwLjAwNjA2MywgMC4wMDYwODksIDAuMDA2MDk4LCAwLjAwNjEwMywgMC4wMDYxMDYsIDAuMDA2MTEiLCBcCi0gICAgICAgICAgIjAuMDA1ODU0LCAwLjAwNjAzMywgMC4wMDYwNjYsIDAuMDA2MDcyLCAwLjAwNjA4MiwgMC4wMDYwODYsIDAuMDA2MDkyIiwgXAotICAgICAgICAgICIwLjAwNTgyMSwgMC4wMDYwMDYsIDAuMDA2MDQyLCAwLjAwNjA1MywgMC4wMDYwNjQsIDAuMDA2MDY5LCAwLjAwNjA3NiIsIFwKLSAgICAgICAgICAiMC4wMDU3ODgsIDAuMDA1OTcsIDAuMDA2MDExLCAwLjAwNjAyOCwgMC4wMDYwNCwgMC4wMDYwNDcsIDAuMDA2MDUzIiwgXAotICAgICAgICAgICIwLjAwNTc2MiwgMC4wMDU5NDksIDAuMDA1OTk5LCAwLjAwNjAxMiwgMC4wMDYwMjcsIDAuMDA2MDM2LCAwLjAwNjA0MiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA4NDExLCAwLjAwODY2OSwgMC4wMDg3MjQsIDAuMDA4NzQxLCAwLjAwODc1NywgMC4wMDg3NjYsIDAuMDA4NzczIiwgXAotICAgICAgICAgICIwLjAwODM4NiwgMC4wMDg2NCwgMC4wMDg2OTcsIDAuMDA4NzE2LCAwLjAwODczMywgMC4wMDg3NDEsIDAuMDA4NzQ5IiwgXAotICAgICAgICAgICIwLjAwODM2NiwgMC4wMDg2MjMsIDAuMDA4NjgxLCAwLjAwODY5OSwgMC4wMDg3MTYsIDAuMDA4NzI0LCAwLjAwODczMiIsIFwKLSAgICAgICAgICAiMC4wMDgzNDksIDAuMDA4NjEzLCAwLjAwODY3LCAwLjAwODY4OCwgMC4wMDg3MDUsIDAuMDA4NzE0LCAwLjAwODcyMiIsIFwKLSAgICAgICAgICAiMC4wMDgzMzgsIDAuMDA4NTk5LCAwLjAwODY1OCwgMC4wMDg2NzgsIDAuMDA4Njk2LCAwLjAwODcwNSwgMC4wMDg3MTMiLCBcCi0gICAgICAgICAgIjAuMDA4MzI4LCAwLjAwODU4NCwgMC4wMDg2NDUsIDAuMDA4NjY2LCAwLjAwODY4NSwgMC4wMDg2OTUsIDAuMDA4NzAzIiwgXAotICAgICAgICAgICIwLjAwODMyOSwgMC4wMDg1NywgMC4wMDg2MzQsIDAuMDA4NjU2LCAwLjAwODY3NiwgMC4wMDg2ODYsIDAuMDA4Njk2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDUzMTIsIDAuMDA1NDU4LCAwLjAwNTQ3MSwgMC4wMDU0NzUsIDAuMDA1NDc3LCAwLjAwNTQ3NywgMC4wMDU0ODQiLCBcCi0gICAgICAgICAgIjAuMDA1Mjg2LCAwLjAwNTQzOSwgMC4wMDU0NiwgMC4wMDU0NjQsIDAuMDA1NDY0LCAwLjAwNTQ3MiwgMC4wMDU0NzQiLCBcCi0gICAgICAgICAgIjAuMDA1MjMsIDAuMDA1Mzk4LCAwLjAwNTQyMSwgMC4wMDU0MjcsIDAuMDA1NDMyLCAwLjAwNTQzNSwgMC4wMDU0MzgiLCBcCi0gICAgICAgICAgIjAuMDA1MTcyLCAwLjAwNTM1NCwgMC4wMDUzODMsIDAuMDA1Mzk0LCAwLjAwNTM5OSwgMC4wMDU0MDQsIDAuMDA1NDA4IiwgXAotICAgICAgICAgICIwLjAwNTEzNywgMC4wMDUzMjMsIDAuMDA1MzU4LCAwLjAwNTM2NywgMC4wMDUzNzgsIDAuMDA1MzgzLCAwLjAwNTM4NyIsIFwKLSAgICAgICAgICAiMC4wMDUwODksIDAuMDA1MjgyLCAwLjAwNTMyNiwgMC4wMDUzMzksIDAuMDA1MzUxLCAwLjAwNTM1OCwgMC4wMDUzNjMiLCBcCi0gICAgICAgICAgIjAuMDA1MDgxLCAwLjAwNTI1OSwgMC4wMDUzMDYsIDAuMDA1MzIxLCAwLjAwNTMzNywgMC4wMDUzNDIsIDAuMDA1MzUxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDc4ODgsIDAuMDA4MTUzLCAwLjAwODIxLCAwLjAwODIyOSwgMC4wMDgyNDYsIDAuMDA4MjU1LCAwLjAwODI2MyIsIFwKLSAgICAgICAgICAiMC4wMDc4NDksIDAuMDA4MTE2LCAwLjAwODE3NCwgMC4wMDgxOTMsIDAuMDA4MjEsIDAuMDA4MjE5LCAwLjAwODIyNyIsIFwKLSAgICAgICAgICAiMC4wMDc4MTksIDAuMDA4MDgzLCAwLjAwODE0MywgMC4wMDgxNjIsIDAuMDA4MTgsIDAuMDA4MTg5LCAwLjAwODE5OCIsIFwKLSAgICAgICAgICAiMC4wMDc3OTksIDAuMDA4MDU5LCAwLjAwODEyMSwgMC4wMDgxNDIsIDAuMDA4MTYxLCAwLjAwODE3MSwgMC4wMDgxOCIsIFwKLSAgICAgICAgICAiMC4wMDc3ODcsIDAuMDA4MDM5LCAwLjAwODEwMywgMC4wMDgxMjYsIDAuMDA4MTQ3LCAwLjAwODE1OCwgMC4wMDgxNjgiLCBcCi0gICAgICAgICAgIjAuMDA3NzgxLCAwLjAwODAxMywgMC4wMDgwODEsIDAuMDA4MTA2LCAwLjAwODEyOSwgMC4wMDgxNDIsIDAuMDA4MTU0IiwgXAotICAgICAgICAgICIwLjAwNzc2NSwgMC4wMDc5OTQsIDAuMDA4MDY2LCAwLjAwODA5MywgMC4wMDgxMTksIDAuMDA4MTMzLCAwLjAwODE0NiIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBPUjNYTCAqCi0gKiAtLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoT1IzWEwpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4wNzU1NjQzOwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2MjI3OTM7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjE4OTE0OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDYyMjc5MzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxNDQsIDAuMDAwMTQ5LCAwLjAwMDE1MiwgMC4wMDAxNTMsIDAuMDAwMTU0LCAwLjAwMDE1NSwgMC4wMDAxNTYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyMDcsIDAuMDAwMjA3LCAwLjAwMDIwNywgMC4wMDAyMDcsIDAuMDAwMjA3LCAwLjAwMDIwNywgMC4wMDAyMDciKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY0NDYxOTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2NDE1NzE7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjQ0NjE5OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDE0NSwgMC4wMDAxNTMsIDAuMDAwMTU3LCAwLjAwMDE1OCwgMC4wMDAxNTgsIDAuMDAwMTU5LCAwLjAwMDE2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMTcsIDAuMDAwMTcsIDAuMDAwMTcsIDAuMDAwMTcsIDAuMDAwMTcsIDAuMDAwMTcsIDAuMDAwMTciKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEMpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYwNjE1OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYwNjE1OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDYwNjEzNTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAwNSwgMC4wMDAwNSwgMC4wMDAwNSwgMC4wMDAwNSwgMC4wMDAwNSwgMC4wMDAwNSwgMC4wMDAwNSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDIwOSwgMC4wMDAyMDksIDAuMDAwMjA5LCAwLjAwMDIwOSwgMC4wMDAyMDksIDAuMDAwMjA5LCAwLjAwMDIwOSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjA2ODU4MjM7Ci0gICAgZnVuY3Rpb24gOiAiKChBK0IpK0MpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xOTIyNjEsIDAuMjE3NjUyLCAwLjQ0NTM0NSwgMC44MjQzMSwgMS4yMDMxNSwgMi4wODY4OSwgMi41OTE4IiwgXAotICAgICAgICAgICIwLjIwMzkxNiwgMC4yMjkyOTgsIDAuNDU3MDM5LCAwLjgzNTk3MiwgMS4yMTQ4MiwgMi4wOTg1NiwgMi42MDM0OCIsIFwKLSAgICAgICAgICAiMC4yMTkyMDcsIDAuMjQ0NTgyLCAwLjQ3MjI3MiwgMC44NTEzMjgsIDEuMjMwMDksIDIuMTEzODIsIDIuNjE4ODYiLCBcCi0gICAgICAgICAgIjAuMjM0NjUyLCAwLjI2MDA1MywgMC40ODc3NDUsIDAuODY2NzI3LCAxLjI0NTU3LCAyLjEyOTMxLCAyLjYzNDIzIiwgXAotICAgICAgICAgICIwLjI0OTg3OSwgMC4yNzUyNDMsIDAuNTAyOTc0LCAwLjg4MTk2MSwgMS4yNjA4NCwgMi4xNDQ1MywgMi42NDk0OSIsIFwKLSAgICAgICAgICAiMC4yNzQxMjMsIDAuMjk5NDk0LCAwLjUyNzIwOCwgMC45MDYyNTgsIDEuMjg1MDIsIDIuMTY4ODcsIDIuNjczNzgiLCBcCi0gICAgICAgICAgIjAuMjk0MzAyLCAwLjMxOTY2LCAwLjU0NzM5NSwgMC45MjYzNjQsIDEuMzA1MiwgMi4xODg5MywgMi42OTM5OCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yNzIwMzksIDAuMzIyNDgxLCAwLjc4MzM2MSwgMS41NTM3OSwgMi4zMjI4MywgNC4xMTg1OSwgNS4xMzg3MyIsIFwKLSAgICAgICAgICAiMC4yNzIwMzUsIDAuMzIyNjY0LCAwLjc4NDEwMiwgMS41NTM1OCwgMi4zMjI2MiwgNC4xMTgxMSwgNS4xMzg0OSIsIFwKLSAgICAgICAgICAiMC4yNzIxMzgsIDAuMzIyNDk4LCAwLjc4NDI3MSwgMS41NTMwNywgMi4zMjI3NCwgNC4xMTgzNSwgNS4xMzQ2MyIsIFwKLSAgICAgICAgICAiMC4yNzE5ODQsIDAuMzIyNTM3LCAwLjc4MzMxMywgMS41NTM1LCAyLjMyMjY5LCA0LjExODIxLCA1LjEzODUzIiwgXAotICAgICAgICAgICIwLjI3MTcsIDAuMzIzMDUxLCAwLjc4MzE2NywgMS41NTM0OSwgMi4zMjI0LCA0LjExODQ0LCA1LjEzODQ3IiwgXAotICAgICAgICAgICIwLjI3MjA2MywgMC4zMjI0NjUsIDAuNzg0MTg2LCAxLjU1Mjk2LCAyLjMyMjU2LCA0LjExNzI1LCA1LjEzODA1IiwgXAotICAgICAgICAgICIwLjI3MjA1LCAwLjMyMzA3MSwgMC43ODMxODUsIDEuNTUzMzQsIDIuMzIyNjEsIDQuMTE3NzQsIDUuMTM0MzgiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzAwNTUxLCAwLjMzMDQwOCwgMC41OTc4NDksIDEuMDQzNzIsIDEuNDg5MTQsIDIuNTI4NTIsIDMuMTIyNjIiLCBcCi0gICAgICAgICAgIjAuMzExNzY1LCAwLjM0MTYyLCAwLjYwOTA2NywgMS4wNTQzNywgMS41MDAyLCAyLjUzOTgsIDMuMTMzNjciLCBcCi0gICAgICAgICAgIjAuMzI0Mzc4LCAwLjM1NDIzMiwgMC42MjE2ODEsIDEuMDY3NTUsIDEuNTEyODgsIDIuNTUyNzksIDMuMTQ2NDgiLCBcCi0gICAgICAgICAgIjAuMzM2MjE1LCAwLjM2NjA3LCAwLjYzMzUwNiwgMS4wNzkyMiwgMS41MjQ3MywgMi41NjQyOCwgMy4xNTgyNyIsIFwKLSAgICAgICAgICAiMC4zNDc1MTEsIDAuMzc3MzAyLCAwLjY0NDc1OSwgMS4wOTA1OSwgMS41MzU5OSwgMi41NzU4MywgMy4xNjk3MiIsIFwKLSAgICAgICAgICAiMC4zNjQ3NzksIDAuMzk0NjI2LCAwLjY2MjA1OSwgMS4xMDc5NywgMS41NTMyNiwgMi41OTI3OSwgMy4xODY4NSIsIFwKLSAgICAgICAgICAiMC4zNzk0NTMsIDAuNDA5MzA3LCAwLjY3Njc3MSwgMS4xMjI2MywgMS41Njc5MSwgMi42MDgzNiwgMy4yMDE1NiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMjA0NDYsIDAuMzc3NSwgMC45MDA0NzQsIDEuNzgxMDgsIDIuNjYzNywgNC43MjM2NiwgNS44OTE3OSIsIFwKLSAgICAgICAgICAiMC4zMjA0MzYsIDAuMzc3MzQzLCAwLjkwMDU2OSwgMS43ODY1MSwgMi42NjU3MSwgNC43MTkxNiwgNS44OTE1OSIsIFwKLSAgICAgICAgICAiMC4zMjA0MzgsIDAuMzc3MzUsIDAuOTAwNTIyLCAxLjc4MDYzLCAyLjY2MTE1LCA0LjcyMTgyLCA1Ljg5MTciLCBcCi0gICAgICAgICAgIjAuMzIwMzg5LCAwLjM3NzYzMywgMC45MDMyNTQsIDEuNzgyOSwgMi42NjExMiwgNC43MTgsIDUuODkzMyIsIFwKLSAgICAgICAgICAiMC4zMjAwMjYsIDAuMzc3MzE5LCAwLjkwMTY2MywgMS43ODM0MywgMi42NjYwNywgNC43MjEzNSwgNS44OTExOCIsIFwKLSAgICAgICAgICAiMC4zMjAyOTUsIDAuMzc3NTU3LCAwLjkwMzM2LCAxLjc4MjMsIDIuNjYxNTMsIDQuNzE4NjMsIDUuODkzMjYiLCBcCi0gICAgICAgICAgIjAuMzIwNDI3LCAwLjM3NzY1NSwgMC45MDA0LCAxLjc4MjczLCAyLjY2MTk4LCA0LjcxOTkxLCA1Ljg5MTc2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE4NzExOSwgMC4yMTI0NDQsIDAuNDM5ODU3LCAwLjgxODYyNywgMS4xOTczNSwgMi4wODA5MywgMi41ODU4NCIsIFwKLSAgICAgICAgICAiMC4xOTg5NDEsIDAuMjI0Mjc0LCAwLjQ1MTY2MywgMC44MzA0NDksIDEuMjA5MTUsIDIuMDkyNzMsIDIuNTk3NjMiLCBcCi0gICAgICAgICAgIjAuMjE0MzU2LCAwLjIzOTY5NiwgMC40NjcwODksIDAuODQ1ODc0LCAxLjIyNDcxLCAyLjEwODE3LCAyLjYxMzA2IiwgXAotICAgICAgICAgICIwLjIyOTY0NSwgMC4yNTQ5ODIsIDAuNDgyNDQ5LCAwLjg2MTE4OCwgMS4yMzk5LCAyLjEyMzQ5LCAyLjYyODUzIiwgXAotICAgICAgICAgICIwLjI0NDc3NywgMC4yNzAwOTksIDAuNDk3NTE4LCAwLjg3NjMzNiwgMS4yNTUwMywgMi4xMzg3LCAyLjY0MzY3IiwgXAotICAgICAgICAgICIwLjI2ODUwNCwgMC4yOTM4MSwgMC41MjEyNzYsIDAuOTAwMTE5LCAxLjI3ODc5LCAyLjE2MjU1LCAyLjY2NzI3IiwgXAotICAgICAgICAgICIwLjI4NzczNywgMC4zMTMwNDUsIDAuNTQwNTEzLCAwLjkxOTMxNiwgMS4yOTgwMiwgMi4xODE2LCAyLjY4NjUiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjcxMTkzLCAwLjMyMjQ5NiwgMC43ODM3LCAxLjU1MDg5LCAyLjMxOTEsIDQuMTE2MTQsIDUuMTM1NjciLCBcCi0gICAgICAgICAgIjAuMjcwNjUxLCAwLjMyMTU3MiwgMC43ODI1ODEsIDEuNTUwODgsIDIuMzIyNTcsIDQuMTE3OTksIDUuMTM1MjIiLCBcCi0gICAgICAgICAgIjAuMjcwNjI4LCAwLjMyMTU2NSwgMC43ODI1MjksIDEuNTUwNzgsIDIuMzIyNTMsIDQuMTE3OTcsIDUuMTM1MDQiLCBcCi0gICAgICAgICAgIjAuMjcxMDgzLCAwLjMyMjQ2NCwgMC43ODM1NjUsIDEuNTUwODIsIDIuMzIxOTIsIDQuMTE3MjcsIDUuMTM4MTIiLCBcCi0gICAgICAgICAgIjAuMjcxMjU5LCAwLjMyMTQ3OCwgMC43ODIzNjEsIDEuNTUzMjMsIDIuMzE4OTMsIDQuMTE4NDUsIDUuMTM3NzgiLCBcCi0gICAgICAgICAgIjAuMjcwODY1LCAwLjMyMjMzNiwgMC43ODIzNjEsIDEuNTUzMTgsIDIuMzE4NzEsIDQuMTE4NiwgNS4xMzgxNiIsIFwKLSAgICAgICAgICAiMC4yNzA4NzgsIDAuMzIyNDcyLCAwLjc4MzY5MiwgMS41NTA3OCwgMi4zMjIwMSwgNC4xMTcwNiwgNS4xMzQ2OCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yOTM5MDUsIDAuMzIzNzQ4LCAwLjU5MTIyMywgMS4wMzcwNywgMS40ODI0OSwgMi41MjIxOSwgMy4xMTYxMyIsIFwKLSAgICAgICAgICAiMC4zMDM5NzgsIDAuMzMzODAxLCAwLjYwMTI4NywgMS4wNDY5NywgMS40OTI1MywgMi41MzIxMSwgMy4xMjY0MyIsIFwKLSAgICAgICAgICAiMC4zMTYzNzcsIDAuMzQ2MjQsIDAuNjEzNzA2LCAxLjA1OTU3LCAxLjUwNDgxLCAyLjU0NDksIDMuMTM4NDkiLCBcCi0gICAgICAgICAgIjAuMzI4MzcsIDAuMzU4MjMzLCAwLjYyNTY5NiwgMS4wNzE1OSwgMS41MTcxNSwgMi41NTcwMywgMy4xNTA0OSIsIFwKLSAgICAgICAgICAiMC4zNDAxODUsIDAuMzcwMDMyLCAwLjYzNzUzNSwgMS4wODMyMywgMS41MjkwNiwgMi41Njg1NiwgMy4xNjIxOSIsIFwKLSAgICAgICAgICAiMC4zNTg4ODksIDAuMzg4NzQ2LCAwLjY1NjIwNCwgMS4xMDIxMSwgMS41NDc3OSwgMi41ODcwNywgMy4xODEwNCIsIFwKLSAgICAgICAgICAiMC4zNzQ4NTgsIDAuNDA0NzE0LCAwLjY3MjIxLCAxLjExODEyLCAxLjU2MzQ2LCAyLjYwMzAzLCAzLjE5NzAyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMyMDMxMSwgMC4zNzczODEsIDAuOTAwOTEyLCAxLjc4Mjk1LCAyLjY2NTE0LCA0LjcyMjI2LCA1Ljg5MTQzIiwgXAotICAgICAgICAgICIwLjMyMDI5OCwgMC4zNzc0MTksIDAuOTAxNDY3LCAxLjc3OTUxLCAyLjY2NTQ1LCA0LjcxNzk3LCA1Ljg5MTk0IiwgXAotICAgICAgICAgICIwLjMyMDQ4MywgMC4zNzc1NDMsIDAuOTAwNTc3LCAxLjc4MDYzLCAyLjY2MzE3LCA0LjcyMTk1LCA1Ljg5MTgxIiwgXAotICAgICAgICAgICIwLjMyMDQ1NywgMC4zNzc3MTMsIDAuOTAyMDUyLCAxLjc4MTUsIDIuNjY2OTUsIDQuNzIyMTMsIDUuODkzMjgiLCBcCi0gICAgICAgICAgIjAuMzIwMjk4LCAwLjM3NzUyNCwgMC44OTk5MjEsIDEuNzgxNDMsIDIuNjYyODUsIDQuNzIxMzQsIDUuODkyODkiLCBcCi0gICAgICAgICAgIjAuMzIwMzY2LCAwLjM3NzY0NiwgMC45MDMyNTgsIDEuNzgxMjUsIDIuNjYzNDMsIDQuNzIyNjgsIDUuODkzMyIsIFwKLSAgICAgICAgICAiMC4zMjA0LCAwLjM3NzYsIDAuOTAzMjQyLCAxLjc4MDk3LCAyLjY2MTE3LCA0LjcxNzg2LCA1Ljg5MzI4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE4MDYyMiwgMC4yMDU4NzcsIDAuNDMzMTcyLCAwLjgxMjEzLCAxLjE5MDc1LCAyLjA3NDI3LCAyLjU4MDA0IiwgXAotICAgICAgICAgICIwLjE5MjY5MywgMC4yMTc5NDcsIDAuNDQ1MzAyLCAwLjgyNDAyOSwgMS4yMDMxNywgMi4wODczNiwgMi41OTE0OSIsIFwKLSAgICAgICAgICAiMC4yMDgwMTIsIDAuMjMzMjk0LCAwLjQ2MDYyNiwgMC44MzkzODQsIDEuMjE4MDgsIDIuMTAyNDIsIDIuNjA3NDQiLCBcCi0gICAgICAgICAgIjAuMjIzMDQ0LCAwLjI0ODMwOSwgMC40NzU2NjgsIDAuODU0NTI1LCAxLjIzMzczLCAyLjExNzM2LCAyLjYyMjMiLCBcCi0gICAgICAgICAgIjAuMjM4MTMzLCAwLjI2MzQsIDAuNDkwNzk2LCAwLjg2OTY4NiwgMS4yNDg4MywgMi4xMzI0OCwgMi42Mzc0IiwgXAotICAgICAgICAgICIwLjI2MDk5LCAwLjI4NjI1NCwgMC41MTM1NywgMC44OTI0ODcsIDEuMjcxNzgsIDIuMTU1MTIsIDIuNjYwODIiLCBcCi0gICAgICAgICAgIjAuMjc4NzgxLCAwLjMwNDAzOCwgMC41MzEzNTcsIDAuOTEwMjU1LCAxLjI4OTU2LCAyLjE3MzEzLCAyLjY3ODA2Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI2OTk1MiwgMC4zMjA5NDYsIDAuNzgxMTc1LCAxLjU0OTQzLCAyLjMxNjEzLCA0LjExOTYxLCA1LjEzMzgxIiwgXAotICAgICAgICAgICIwLjI3MDEzLCAwLjMyMTE4OCwgMC43ODIwOCwgMS41NTMwMSwgMi4zMTgwNCwgNC4xMDkxLCA1LjEzNDU1IiwgXAotICAgICAgICAgICIwLjI3MDU1NSwgMC4zMjA5NTIsIDAuNzgxNjkxLCAxLjU0ODg0LCAyLjMxNjg2LCA0LjExMjcyLCA1LjEzMzUxIiwgXAotICAgICAgICAgICIwLjI3MDIyMiwgMC4zMjE3NjcsIDAuNzgyMTQ5LCAxLjU1MiwgMi4zMTcwNCwgNC4xMDk1NSwgNS4xMzY1IiwgXAotICAgICAgICAgICIwLjI3MDE5OCwgMC4zMjE3NjgsIDAuNzgyMDQzLCAxLjU1MDY2LCAyLjMxNzA2LCA0LjEwOTUxLCA1LjEzNTk2IiwgXAotICAgICAgICAgICIwLjI3MDY1NiwgMC4zMjEzMTMsIDAuNzgzNDg3LCAxLjU0OTYzLCAyLjMxNjg3LCA0LjExNzg5LCA1LjEzMzQyIiwgXAotICAgICAgICAgICIwLjI3MDMxOCwgMC4zMjIwOTMsIDAuNzgzNTAxLCAxLjU1Mjg1LCAyLjMxNjg1LCA0LjEwOTUsIDUuMTM1OTYiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjc4MzI2LCAwLjMwODE1MSwgMC41NzU2NSwgMS4wMjExNywgMS40NjY4NywgMi41MDY1MywgMy4xMDA3MSIsIFwKLSAgICAgICAgICAiMC4yODc3MDUsIDAuMzE3NTY5LCAwLjU4NTA1LCAxLjAzMDk1LCAxLjQ3NjMzLCAyLjUxNTkyLCAzLjEwOTg0IiwgXAotICAgICAgICAgICIwLjI5OTI3OSwgMC4zMjkxNDcsIDAuNTk2NTkyLCAxLjA0MjUyLCAxLjQ4ODQyLCAyLjUyNzg3LCAzLjEyMTQ1IiwgXAotICAgICAgICAgICIwLjMxMTc3NCwgMC4zNDE2MjksIDAuNjA5MTU0LCAxLjA1NDg3LCAxLjUwMTEzLCAyLjU0MDI5LCAzLjEzMzk3IiwgXAotICAgICAgICAgICIwLjMyNDA4MywgMC4zNTM5NSwgMC42MjE0NjQsIDEuMDY3MzMsIDEuNTEyNTksIDIuNTUyNDcsIDMuMTQ2NDEiLCBcCi0gICAgICAgICAgIjAuMzQzNjc1LCAwLjM3MzUyNCwgMC42NDEwNjcsIDEuMDg2NzksIDEuNTMzMDUsIDIuNTcyMDgsIDMuMTY1NjgiLCBcCi0gICAgICAgICAgIjAuMzYwOTY4LCAwLjM5MDgzNCwgMC42NTg0MDMsIDEuMTA0MjksIDEuNTQ5NzUsIDIuNTg5NDYsIDMuMTgzMjIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzIwMjExLCAwLjM3NzM5NywgMC45MDEzMzQsIDEuNzg2NTQsIDIuNjY3NjcsIDQuNzIzNTcsIDUuODkwOSIsIFwKLSAgICAgICAgICAiMC4zMjA0MjUsIDAuMzc3NjY2LCAwLjkwMzI2MywgMS43ODEzMiwgMi42NjE2OSwgNC43MTcxNSwgNS44OTMzIiwgXAotICAgICAgICAgICIwLjMyMDQzOSwgMC4zNzc3OTYsIDAuOTAzMDI3LCAxLjc4MDQ0LCAyLjY2MTkyLCA0LjcyMTY0LCA1Ljg5MzY2IiwgXAotICAgICAgICAgICIwLjMyMDMzNCwgMC4zNzc1MzEsIDAuOTAzMzIsIDEuNzgyNzEsIDIuNjYzOSwgNC43MjE3NCwgNS44OTMxIiwgXAotICAgICAgICAgICIwLjMyMDMwMywgMC4zNzc0OTcsIDAuOTAxMTgsIDEuNzgzNDcsIDIuNjcwMjQsIDQuNzIxOTUsIDUuODkxNDEiLCBcCi0gICAgICAgICAgIjAuMzIwMTMsIDAuMzc3NTg4LCAwLjkwMDYzLCAxLjc4MDk0LCAyLjY2NTY2LCA0LjcyMDQxLCA1Ljg5MzA5IiwgXAotICAgICAgICAgICIwLjMyMDQzNiwgMC4zNzc2ODIsIDAuOTAwMDEsIDEuNzc5OTIsIDIuNjY0MDYsIDQuNzIxNDcsIDUuODkzMjgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDEwNzIsIDAuMDAxMDcyLCAwLjAwMTA3MywgMC4wMDEwNzQsIDAuMDAxMDc0LCAwLjAwMTA3NSwgMC4wMDEwNzMiLCBcCi0gICAgICAgICAgIjAuMDAxMDU5LCAwLjAwMTA2LCAwLjAwMTA2MSwgMC4wMDEwNjEsIDAuMDAxMDYxLCAwLjAwMTA2MSwgMC4wMDEwNjIiLCBcCi0gICAgICAgICAgIjAuMDAxMDUzLCAwLjAwMTA1MywgMC4wMDEwNTUsIDAuMDAxMDU1LCAwLjAwMTA1NSwgMC4wMDEwNTUsIDAuMDAxMDU1IiwgXAotICAgICAgICAgICIwLjAwMTA0OCwgMC4wMDEwNDksIDAuMDAxMDUsIDAuMDAxMDUxLCAwLjAwMTA1MSwgMC4wMDEwNTIsIDAuMDAxMDUxIiwgXAotICAgICAgICAgICIwLjAwMTA0NSwgMC4wMDEwNDUsIDAuMDAxMDQ3LCAwLjAwMTA0OCwgMC4wMDEwNDgsIDAuMDAxMDQ4LCAwLjAwMTA0OSIsIFwKLSAgICAgICAgICAiMC4wMDEwNDEsIDAuMDAxMDQyLCAwLjAwMTA0NSwgMC4wMDEwNDUsIDAuMDAxMDQ2LCAwLjAwMTA0NiwgMC4wMDEwNDciLCBcCi0gICAgICAgICAgIjAuMDAxMDQsIDAuMDAxMDQsIDAuMDAxMDQ0LCAwLjAwMTA0NSwgMC4wMDEwNDUsIDAuMDAxMDQ1LCAwLjAwMTA0NiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjEyOCwgMC4wMDIxMjksIDAuMDAyMTMxLCAwLjAwMjEzMiwgMC4wMDIxMzIsIDAuMDAyMTMyLCAwLjAwMjEzMyIsIFwKLSAgICAgICAgICAiMC4wMDIxMjIsIDAuMDAyMTIzLCAwLjAwMjEyNSwgMC4wMDIxMjUsIDAuMDAyMTI2LCAwLjAwMjEyNiwgMC4wMDIxMjYiLCBcCi0gICAgICAgICAgIjAuMDAyMTE3LCAwLjAwMjExOCwgMC4wMDIxMiwgMC4wMDIxMjEsIDAuMDAyMTIxLCAwLjAwMjEyMSwgMC4wMDIxMjEiLCBcCi0gICAgICAgICAgIjAuMDAyMTE0LCAwLjAwMjExNSwgMC4wMDIxMTcsIDAuMDAyMTE4LCAwLjAwMjExOCwgMC4wMDIxMTgsIDAuMDAyMTE4IiwgXAotICAgICAgICAgICIwLjAwMjExMiwgMC4wMDIxMTMsIDAuMDAyMTE1LCAwLjAwMjExNiwgMC4wMDIxMTYsIDAuMDAyMTE3LCAwLjAwMjExNyIsIFwKLSAgICAgICAgICAiMC4wMDIxMSwgMC4wMDIxMTEsIDAuMDAyMTE0LCAwLjAwMjExNCwgMC4wMDIxMTUsIDAuMDAyMTE1LCAwLjAwMjExNSIsIFwKLSAgICAgICAgICAiMC4wMDIxMDgsIDAuMDAyMTEsIDAuMDAyMTEzLCAwLjAwMjExNCwgMC4wMDIxMTQsIDAuMDAyMTE0LCAwLjAwMjExNCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDg5LCAwLjAwMDg5MSwgMC4wMDA4OTIsIDAuMDAwODkyLCAwLjAwMDg5MywgMC4wMDA4OTIsIDAuMDAwODkzIiwgXAotICAgICAgICAgICIwLjAwMDg4MywgMC4wMDA4ODMsIDAuMDAwODg1LCAwLjAwMDg4NSwgMC4wMDA4ODYsIDAuMDAwODg1LCAwLjAwMDg4NSIsIFwKLSAgICAgICAgICAiMC4wMDA4NzQsIDAuMDAwODc0LCAwLjAwMDg3NiwgMC4wMDA4NzcsIDAuMDAwODc3LCAwLjAwMDg3NywgMC4wMDA4NzciLCBcCi0gICAgICAgICAgIjAuMDAwODY3LCAwLjAwMDg2OCwgMC4wMDA4NywgMC4wMDA4NzEsIDAuMDAwODcxLCAwLjAwMDg3MiwgMC4wMDA4NzIiLCBcCi0gICAgICAgICAgIjAuMDAwODYyLCAwLjAwMDg2MywgMC4wMDA4NjYsIDAuMDAwODY3LCAwLjAwMDg2NywgMC4wMDA4NjgsIDAuMDAwODY3IiwgXAotICAgICAgICAgICIwLjAwMDg1NiwgMC4wMDA4NTcsIDAuMDAwODYxLCAwLjAwMDg2MiwgMC4wMDA4NjMsIDAuMDAwODYzLCAwLjAwMDg2MyIsIFwKLSAgICAgICAgICAiMC4wMDA4NTQsIDAuMDAwODU1LCAwLjAwMDg1OSwgMC4wMDA4NjEsIDAuMDAwODYxLCAwLjAwMDg2MSwgMC4wMDA4NjIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDE5OTIsIDAuMDAxOTkzLCAwLjAwMTk5NiwgMC4wMDE5OTcsIDAuMDAxOTk3LCAwLjAwMTk5OCwgMC4wMDE5OTgiLCBcCi0gICAgICAgICAgIjAuMDAxOTg1LCAwLjAwMTk4NiwgMC4wMDE5ODksIDAuMDAxOTksIDAuMDAxOTkxLCAwLjAwMTk5MSwgMC4wMDE5ODgiLCBcCi0gICAgICAgICAgIjAuMDAxOTgsIDAuMDAxOTgxLCAwLjAwMTk4NCwgMC4wMDE5ODYsIDAuMDAxOTg2LCAwLjAwMTk4NiwgMC4wMDE5ODYiLCBcCi0gICAgICAgICAgIjAuMDAxOTc3LCAwLjAwMTk3OCwgMC4wMDE5ODEsIDAuMDAxOTgzLCAwLjAwMTk4MywgMC4wMDE5ODMsIDAuMDAxOTgzIiwgXAotICAgICAgICAgICIwLjAwMTk3NCwgMC4wMDE5NzYsIDAuMDAxOTc5LCAwLjAwMTk4LCAwLjAwMTk4MSwgMC4wMDE5ODEsIDAuMDAxOTgxIiwgXAotICAgICAgICAgICIwLjAwMTk3MiwgMC4wMDE5NzMsIDAuMDAxOTc4LCAwLjAwMTk3OSwgMC4wMDE5NzksIDAuMDAxOTgsIDAuMDAxOTgiLCBcCi0gICAgICAgICAgIjAuMDAxOTcsIDAuMDAxOTcyLCAwLjAwMTk3NiwgMC4wMDE5NzgsIDAuMDAxOTc4LCAwLjAwMTk3OSwgMC4wMDE5NzkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDA2ODMsIDAuMDAwNjgzLCAwLjAwMDY4NCwgMC4wMDA2ODQsIDAuMDAwNjg1LCAwLjAwMDY4NSwgMC4wMDA2ODUiLCBcCi0gICAgICAgICAgIjAuMDAwNjc3LCAwLjAwMDY3OCwgMC4wMDA2NzgsIDAuMDAwNjc5LCAwLjAwMDY3OSwgMC4wMDA2NzksIDAuMDAwNjc5IiwgXAotICAgICAgICAgICIwLjAwMDY2NywgMC4wMDA2NjcsIDAuMDAwNjY5LCAwLjAwMDY2OSwgMC4wMDA2NjksIDAuMDAwNjY5LCAwLjAwMDY2OSIsIFwKLSAgICAgICAgICAiMC4wMDA2NTgsIDAuMDAwNjU4LCAwLjAwMDY2LCAwLjAwMDY2MiwgMC4wMDA2NjEsIDAuMDAwNjYyLCAwLjAwMDY2MiIsIFwKLSAgICAgICAgICAiMC4wMDA2NTIsIDAuMDAwNjUzLCAwLjAwMDY1NSwgMC4wMDA2NTYsIDAuMDAwNjU3LCAwLjAwMDY1NywgMC4wMDA2NTYiLCBcCi0gICAgICAgICAgIjAuMDAwNjQ1LCAwLjAwMDY0NywgMC4wMDA2NSwgMC4wMDA2NTEsIDAuMDAwNjUxLCAwLjAwMDY1MiwgMC4wMDA2NTIiLCBcCi0gICAgICAgICAgIjAuMDAwNjQzLCAwLjAwMDY0NSwgMC4wMDA2NDgsIDAuMDAwNjQ5LCAwLjAwMDY1LCAwLjAwMDY1LCAwLjAwMDY1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxODQ4LCAwLjAwMTg0OSwgMC4wMDE4NTMsIDAuMDAxODU1LCAwLjAwMTg1NSwgMC4wMDE4NTYsIDAuMDAxODU2IiwgXAotICAgICAgICAgICIwLjAwMTgzOCwgMC4wMDE4MzksIDAuMDAxODQzLCAwLjAwMTg0NCwgMC4wMDE4NDUsIDAuMDAxODQ1LCAwLjAwMTg0NiIsIFwKLSAgICAgICAgICAiMC4wMDE4MywgMC4wMDE4MzEsIDAuMDAxODM1LCAwLjAwMTgzNywgMC4wMDE4MzcsIDAuMDAxODM4LCAwLjAwMTgzOCIsIFwKLSAgICAgICAgICAiMC4wMDE4MjUsIDAuMDAxODI2LCAwLjAwMTgzMSwgMC4wMDE4MzMsIDAuMDAxODMzLCAwLjAwMTgzNCwgMC4wMDE4MzQiLCBcCi0gICAgICAgICAgIjAuMDAxODIyLCAwLjAwMTgyMywgMC4wMDE4MjgsIDAuMDAxODMsIDAuMDAxODMxLCAwLjAwMTgzMSwgMC4wMDE4MzIiLCBcCi0gICAgICAgICAgIjAuMDAxODE5LCAwLjAwMTgyLCAwLjAwMTgyNiwgMC4wMDE4MjgsIDAuMDAxODI5LCAwLjAwMTgzLCAwLjAwMTgzIiwgXAotICAgICAgICAgICIwLjAwMTgxOCwgMC4wMDE4MTksIDAuMDAxODI2LCAwLjAwMTgyOCwgMC4wMDE4MjksIDAuMDAxODMsIDAuMDAxODMiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBTREZGUVgyICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKFNERkZRWDIpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4yODc4Nzc7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgZmYgKE4zMCxRQklOVCkgewotICAgIG5leHRfc3RhdGUgOiAiKChTRSBTSSkgKyAoIVNFIEQpKSI7Ci0gICAgY2xvY2tlZF9vbiA6ICJDSyI7Ci0gIH0KLSAgcGluKENLKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA1Nzk2MzQ7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNTc5MzY5OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDU3OTYzNDsKLSAgICBjbG9jayA6IHRydWU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyMjYxLCAwLjAwMjI0OSwgMC4wMDIyMzcsIDAuMDAyMjMsIDAuMDAyMjI1LCAwLjAwMjIxOCwgMC4wMDIyMTciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDQ3NzQsIDAuMDA0NzY0LCAwLjAwNDc1NSwgMC4wMDQ3NSwgMC4wMDQ3NDgsIDAuMDA0NzUsIDAuMDA0NzQ4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRCYhU0UmIVNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9TRV9FUV8wX0FOX1NJX0VRXzAgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4yNjY3NjgsIDAuMjc4NDUxLCAwLjI5Mzc5NiwgMC4zMDkyNjksIDAuMzI0NjEyLCAwLjM0ODkzNSwgMC4zNjk3NDMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjE5NDQyOCwgMC4yMDU2OTksIDAuMjIwNzA1LCAwLjIzNTYsIDAuMjUwMjY2LCAwLjI3Mjk0NCwgMC4yOTE3ODkiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEQpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYwNTU2NzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MDM5Nzg7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjA1NTY3OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjM0LCAwLjAwMjMzLCAwLjAwMjMyNSwgMC4wMDIzMjIsIDAuMDAyMzE5LCAwLjAwMjMxNiwgMC4wMDIzMTQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDMzOTQsIDAuMDAzMzg5LCAwLjAwMzM4NiwgMC4wMDMzODUsIDAuMDAzMzgzLCAwLjAwMzM4MiwgMC4wMDMzOCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhU0UiOwotICAgICAgc2RmX2NvbmQgOiAiU0UgPT0gMSdiMCI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMTI1LCAtMC4xMiwgLTAuMTA3NSwgLTAuMDk1LCAtMC4wODg3NSwgLTAuMDcyNSwgLTAuMDU3NSIsIFwKLSAgICAgICAgICAiLTAuMTM2MjUsIC0wLjEzMTI1LCAtMC4xMTg3NSwgLTAuMTA2MjUsIC0wLjEsIC0wLjA4Mzc1LCAtMC4wNjg3NSIsIFwKLSAgICAgICAgICAiLTAuMTU1LCAtMC4xNDM3NSwgLTAuMTMxMjUsIC0wLjEyNSwgLTAuMTEyNSwgLTAuMDk2MjUsIC0wLjA4NzUiLCBcCi0gICAgICAgICAgIi0wLjE2NzUsIC0wLjE1NjI1LCAtMC4xNDM3NSwgLTAuMTM3NSwgLTAuMTI1LCAtMC4xMDg3NSwgLTAuMSIsIFwKLSAgICAgICAgICAiLTAuMTgsIC0wLjE2ODc1LCAtMC4xNTYyNSwgLTAuMTUsIC0wLjEzNzUsIC0wLjEyMTI1LCAtMC4xMTI1IiwgXAotICAgICAgICAgICItMC4yMDI1LCAtMC4xOTEyNSwgLTAuMTc4NzUsIC0wLjE3MjUsIC0wLjE2LCAtMC4xNDM3NSwgLTAuMTM1IiwgXAotICAgICAgICAgICItMC4yMjM3NSwgLTAuMjEyNSwgLTAuMiwgLTAuMTg3NSwgLTAuMTgxMjUsIC0wLjE2NSwgLTAuMTU2MjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMTg3NSwgLTAuMDA3NSwgMC4wMDUsIDAuMDE3NSwgMC4wMywgMC4wNTI1LCAwLjA3Mzc1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLjAwNjI1LCAwLjAxODc1LCAwLjA0MTI1LCAwLjA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAuMDA2MjUsIDAuMDI4NzUsIDAuMDUiLCBcCi0gICAgICAgICAgIi0wLjA1NSwgLTAuMDQzNzUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAuMDE2MjUsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDY3NSwgLTAuMDU2MjUsIC0wLjA0Mzc1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIDAuMDAzNzUsIDAuMDI1IiwgXAotICAgICAgICAgICItMC4wODM3NSwgLTAuMDcyNSwgLTAuMDYsIC0wLjA0NzUsIC0wLjAzNSwgLTAuMDEyNSwgMC4wMDI1IiwgXAotICAgICAgICAgICItMC4wOTg3NSwgLTAuMDg3NSwgLTAuMDc1LCAtMC4wNjI1LCAtMC4wNSwgLTAuMDI3NSwgLTAuMDEyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIVNFIjsKLSAgICAgIHNkZl9jb25kIDogIlNFID09IDEnYjAiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIxMjUsIDAuMjAxMjUsIDAuMTgyNSwgMC4xNywgMC4xNTc1LCAwLjEzNSwgMC4xMjYyNSIsIFwKLSAgICAgICAgICAiMC4yMjM3NSwgMC4yMTI1LCAwLjE5Mzc1LCAwLjE4MTI1LCAwLjE2ODc1LCAwLjE1MjUsIDAuMTM3NSIsIFwKLSAgICAgICAgICAiMC4yMzYyNSwgMC4yMjUsIDAuMjA2MjUsIDAuMTkzNzUsIDAuMTgxMjUsIDAuMTY1LCAwLjE1IiwgXAotICAgICAgICAgICIwLjI0ODc1LCAwLjIzNzUsIDAuMjI1LCAwLjIwNjI1LCAwLjE5Mzc1LCAwLjE3NzUsIDAuMTYyNSIsIFwKLSAgICAgICAgICAiMC4yNjEyNSwgMC4yNSwgMC4yMzc1LCAwLjIxODc1LCAwLjIwNjI1LCAwLjE5LCAwLjE3NSIsIFwKLSAgICAgICAgICAiMC4yODM3NSwgMC4yNzI1LCAwLjI2LCAwLjI0MTI1LCAwLjIyODc1LCAwLjIxMjUsIDAuMTk3NSIsIFwKLSAgICAgICAgICAiMC4zMDUsIDAuMjkzNzUsIDAuMjc1LCAwLjI2MjUsIDAuMjUsIDAuMjMzNzUsIDAuMjE4NzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMzc1LCAwLjEyNjI1LCAwLjEwNzUsIDAuMDk1LCAwLjA3NjI1LCAwLjA1Mzc1LCAwLjAzMjUiLCBcCi0gICAgICAgICAgIjAuMTQ4NzUsIDAuMTM3NSwgMC4xMTg3NSwgMC4xMDYyNSwgMC4wODc1LCAwLjA2NSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4xNjEyNSwgMC4xNSwgMC4xMzEyNSwgMC4xMTg3NSwgMC4xLCAwLjA3NzUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIjAuMTczNzUsIDAuMTYyNSwgMC4xNDM3NSwgMC4xMzEyNSwgMC4xMTI1LCAwLjA5LCAwLjA2ODc1IiwgXAotICAgICAgICAgICIwLjE4NjI1LCAwLjE3NSwgMC4xNTYyNSwgMC4xNDM3NSwgMC4xMjUsIDAuMTAyNSwgMC4wODEyNSIsIFwKLSAgICAgICAgICAiMC4yMDg3NSwgMC4xOTc1LCAwLjE3ODc1LCAwLjE2LCAwLjE0NzUsIDAuMTE4NzUsIDAuMTAzNzUiLCBcCi0gICAgICAgICAgIjAuMjIzNzUsIDAuMjEyNSwgMC4xOTM3NSwgMC4xODEyNSwgMC4xNjI1LCAwLjE0LCAwLjExODc1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihRKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMjYzNzk5OwotICAgIGZ1bmN0aW9uIDogIk4zMCI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3NlbnNlIDogbm9uX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiByaXNpbmdfZWRnZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjM1NywgMC40MTUxODIsIDAuNTU4MjUxLCAwLjczNzE2NywgMC45MTYxMTEsIDEuMDk1MDIsIDEuMjczOTQiLCBcCi0gICAgICAgICAgIjAuMjQ3Mzk4LCAwLjQyNjgzNiwgMC41Njk5MjYsIDAuNzQ4ODYyLCAwLjkyNzc5MiwgMS4xMDY2OSwgMS4yODU2MyIsIFwKLSAgICAgICAgICAiMC4yNjI1NiwgMC40NDIwMjUsIDAuNTg1MDkyLCAwLjc2NDAxNSwgMC45NDI5MjIsIDEuMTIxODcsIDEuMzAwNzkiLCBcCi0gICAgICAgICAgIjAuMjc4MDYxLCAwLjQ1NzUyNywgMC42MDA1OTMsIDAuNzc5NTM3LCAwLjk1ODQ1MiwgMS4xMzczNSwgMS4zMTYyOSIsIFwKLSAgICAgICAgICAiMC4yOTMyNywgMC40NzI3MDQsIDAuNjE1Nzk4LCAwLjc5NDgyNCwgMC45NzM2MSwgMS4xNTI1NSwgMS4zMzE0MyIsIFwKLSAgICAgICAgICAiMC4zMTc0NzYsIDAuNDk2OTQ2LCAwLjY0MDAxNSwgMC44MTg5NzEsIDAuOTk3ODY3LCAxLjE3Njc3LCAxLjM1NTcxIiwgXAotICAgICAgICAgICIwLjMzODEyNSwgMC41MTc1NzMsIDAuNjYwNjY0LCAwLjgzOTU4MywgMS4wMTg1MywgMS4xOTc0MiwgMS4zNzYzMSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTAyNywgMC40NDg0NTIsIDAuNzQwOTczLCAxLjEwNTg3LCAxLjQ3MDgxLCAxLjgzNTU5LCAyLjIwMDM2IiwgXAotICAgICAgICAgICIwLjA5MDI3MSwgMC40NDg2NzMsIDAuNzQwOTY1LCAxLjEwNCwgMS40NzA4MSwgMS44MzU1LCAyLjIwMDM4IiwgXAotICAgICAgICAgICIwLjA5MDI4OCwgMC40NDg0OCwgMC43NDA5NzgsIDEuMTA1ODcsIDEuNDY4MywgMS44MzU1NSwgMi4yMDAzMiIsIFwKLSAgICAgICAgICAiMC4wOTAyNjksIDAuNDQ4NDU3LCAwLjc0MDk0NSwgMS4xMDQwMiwgMS40NzA3NywgMS44MzU1LCAyLjIwMDM4IiwgXAotICAgICAgICAgICIwLjA5MDMyNSwgMC40NDg2MjEsIDAuNzQwOTc2LCAxLjEwMzUyLCAxLjQ3MDM4LCAxLjgzNTQ2LCAyLjE5NjUxIiwgXAotICAgICAgICAgICIwLjA5MDI3MSwgMC40NDg0NzEsIDAuNzQwOTQ2LCAxLjEwMzMyLCAxLjQ3MDczLCAxLjgzNTUsIDIuMjAwMzgiLCBcCi0gICAgICAgICAgIjAuMDkwMjg2LCAwLjQ0ODYxNSwgMC43NDA5NzIsIDEuMTA1ODQsIDEuNDY1NjEsIDEuODM1NDgsIDIuMTk2NDUiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjY2NzY4LCAwLjQ3MzQ3MywgMC42Mzg0MDMsIDAuODQ0NSwgMS4wNTA1NSwgMS4yNTY1NiwgMS40NjI2NiIsIFwKLSAgICAgICAgICAiMC4yNzg0NTEsIDAuNDg1MTY0LCAwLjY1MDA5OCwgMC44NTYxNzQsIDEuMDYyMjIsIDEuMjY4MjksIDEuNDc0MzUiLCBcCi0gICAgICAgICAgIjAuMjkzNzk2LCAwLjUwMDUxMiwgMC42NjU0NjEsIDAuODcxNTI2LCAxLjA3NzU3LCAxLjI4MzYzLCAxLjQ4OTciLCBcCi0gICAgICAgICAgIjAuMzA5MjY5LCAwLjUxNTk4MiwgMC42ODA5MjEsIDAuODg3MDA0LCAxLjA5MzA1LCAxLjI5OTExLCAxLjUwNTE5IiwgXAotICAgICAgICAgICIwLjMyNDYxMiwgMC41MzEzMjgsIDAuNjk2MjU1LCAwLjkwMjMzMywgMS4xMDgzOCwgMS4zMTQ0NSwgMS41MjA1MSIsIFwKLSAgICAgICAgICAiMC4zNDg5MzYsIDAuNTU1NjgxLCAwLjcyMDYxMywgMC45MjY2NzgsIDEuMTMyNzMsIDEuMzM4NzUsIDEuNTQ0ODQiLCBcCi0gICAgICAgICAgIjAuMzY5NzQ0LCAwLjU3NjQ1MywgMC43NDE0MDUsIDAuOTQ3NDczLCAxLjE1MzUyLCAxLjM1OTU4LCAxLjU2NTY4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5ODkyOCwgMC41MDU1MDEsIDAuODM0NTYsIDEuMjQ3MzQsIDEuNjU4ODIsIDIuMDcwOTMsIDIuNDgxNTEiLCBcCi0gICAgICAgICAgIjAuMDk4OTYxLCAwLjUwNTg5MSwgMC44MzU4MTgsIDEuMjQ3NCwgMS42NTg5MiwgMi4wNjgyOCwgMi40ODE0MiIsIFwKLSAgICAgICAgICAiMC4wOTg5OTEsIDAuNTA2MDA5LCAwLjgzMzAxNCwgMS4yNDczOCwgMS42NTg4OCwgMi4wNjg2MiwgMi40ODE0MiIsIFwKLSAgICAgICAgICAiMC4wOTg5MTksIDAuNTA2NTcsIDAuODM1MDU4LCAxLjI0NzI4LCAxLjY1ODg0LCAyLjA3MDE2LCAyLjQ4MTIxIiwgXAotICAgICAgICAgICIwLjA5ODk1NiwgMC41MDUzMjUsIDAuODM1ODE0LCAxLjI0NzQxLCAxLjY1ODk1LCAyLjA2ODI4LCAyLjQ4MTQiLCBcCi0gICAgICAgICAgIjAuMDk4OTk2LCAwLjUwNjU5OSwgMC44MzU3NDMsIDEuMjQ3MzgsIDEuNjU4ODksIDIuMDcwNTksIDIuNDgxNTkiLCBcCi0gICAgICAgICAgIjAuMDk4OTI0LCAwLjUwNjU2OCwgMC44MzQ2NzQsIDEuMjQ3MjQsIDEuNjU4NzcsIDIuMDcwMjgsIDIuNDgxMDgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1NzE4LCAwLjAwNTczMSwgMC4wMDU3MjUsIDAuMDA1NzIsIDAuMDA1NzE3LCAwLjAwNTcxNiwgMC4wMDU3MTQiLCBcCi0gICAgICAgICAgIjAuMDA1NzA1LCAwLjAwNTcxOCwgMC4wMDU3MTIsIDAuMDA1NzA3LCAwLjAwNTcwNCwgMC4wMDU3MDIsIDAuMDA1NyIsIFwKLSAgICAgICAgICAiMC4wMDU2OTIsIDAuMDA1NzA1LCAwLjAwNTY5OSwgMC4wMDU2OTYsIDAuMDA1NjkyLCAwLjAwNTY5LCAwLjAwNTY4OCIsIFwKLSAgICAgICAgICAiMC4wMDU2ODMsIDAuMDA1Njk2LCAwLjAwNTY5MSwgMC4wMDU2ODUsIDAuMDA1NjgzLCAwLjAwNTY4MSwgMC4wMDU2NzkiLCBcCi0gICAgICAgICAgIjAuMDA1Njc1LCAwLjAwNTY4OSwgMC4wMDU2ODQsIDAuMDA1Njc4LCAwLjAwNTY3NSwgMC4wMDU2NzMsIDAuMDA1NjcyIiwgXAotICAgICAgICAgICIwLjAwNTY2NSwgMC4wMDU2OCwgMC4wMDU2NzQsIDAuMDA1NjY5LCAwLjAwNTY2NiwgMC4wMDU2NjQsIDAuMDA1NjYyIiwgXAotICAgICAgICAgICIwLjAwNTY2MSwgMC4wMDU2NzYsIDAuMDA1NjcsIDAuMDA1NjY2LCAwLjAwNTY2MywgMC4wMDU2NiwgMC4wMDU2NTgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDYwNDYsIDAuMDA2MDk3LCAwLjAwNjEwMywgMC4wMDYxMDYsIDAuMDA2MTA3LCAwLjAwNjEwOCwgMC4wMDYxMDkiLCBcCi0gICAgICAgICAgIjAuMDA2MDM0LCAwLjAwNjA4MywgMC4wMDYwODksIDAuMDA2MDkyLCAwLjAwNjA5NCwgMC4wMDYwOTUsIDAuMDA2MDk1IiwgXAotICAgICAgICAgICIwLjAwNjAyMSwgMC4wMDYwNzEsIDAuMDA2MDc3LCAwLjAwNjA4LCAwLjAwNjA4MiwgMC4wMDYwODMsIDAuMDA2MDgzIiwgXAotICAgICAgICAgICIwLjAwNjAxNCwgMC4wMDYwNjQsIDAuMDA2MDcsIDAuMDA2MDczLCAwLjAwNjA3NSwgMC4wMDYwNzYsIDAuMDA2MDc2IiwgXAotICAgICAgICAgICIwLjAwNjAxMiwgMC4wMDYwNjEsIDAuMDA2MDY3LCAwLjAwNjA3LCAwLjAwNjA3MiwgMC4wMDYwNzMsIDAuMDA2MDc0IiwgXAotICAgICAgICAgICIwLjAwNjAxMSwgMC4wMDYwNTksIDAuMDA2MDY1LCAwLjAwNjA2OCwgMC4wMDYwNywgMC4wMDYwNzEsIDAuMDA2MDcyIiwgXAotICAgICAgICAgICIwLjAwNjAxNSwgMC4wMDYwNjUsIDAuMDA2MDcxLCAwLjAwNjA3NCwgMC4wMDYwNzYsIDAuMDA2MDc3LCAwLjAwNjA3OCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oU0UpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTI3MzE1OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTI3MjYzOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTI3MzE1OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzIxNiwgMC4wMDMyMDUsIDAuMDAzMTk5LCAwLjAwMzE5NiwgMC4wMDMxOTYsIDAuMDAzMTkzLCAwLjAwMzE5MyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNDMxMiwgMC4wMDQyOTQsIDAuMDA0MjgxLCAwLjAwNDI3NCwgMC4wMDQyNjksIDAuMDA0MjYzLCAwLjAwNDI2MiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRCZTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fU0lfRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4xMTI1LCAtMC4xMDEyNSwgLTAuMDg4NzUsIC0wLjA4MjUsIC0wLjA3LCAtMC4wNTM3NSwgLTAuMDQ1IiwgXAotICAgICAgICAgICItMC4xMjM3NSwgLTAuMTEyNSwgLTAuMSwgLTAuMDkzNzUsIC0wLjA4MTI1LCAtMC4wNjUsIC0wLjA1NjI1IiwgXAotICAgICAgICAgICItMC4xMzYyNSwgLTAuMTI1LCAtMC4xMTI1LCAtMC4xMDYyNSwgLTAuMDkzNzUsIC0wLjA3NzUsIC0wLjA2ODc1IiwgXAotICAgICAgICAgICItMC4xNDg3NSwgLTAuMTM3NSwgLTAuMTMxMjUsIC0wLjExODc1LCAtMC4xMDYyNSwgLTAuMDksIC0wLjA4MTI1IiwgXAotICAgICAgICAgICItMC4xNjEyNSwgLTAuMTU2MjUsIC0wLjE0Mzc1LCAtMC4xMzEyNSwgLTAuMTE4NzUsIC0wLjEwODc1LCAtMC4wOTM3NSIsIFwKLSAgICAgICAgICAiLTAuMTgzNzUsIC0wLjE3ODc1LCAtMC4xNjYyNSwgLTAuMTUzNzUsIC0wLjE0MTI1LCAtMC4xMzEyNSwgLTAuMTE2MjUiLCBcCi0gICAgICAgICAgIi0wLjIwNSwgLTAuMTkzNzUsIC0wLjE4MTI1LCAtMC4xNzUsIC0wLjE2MjUsIC0wLjE0NjI1LCAtMC4xMzc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDA2MjUsIDAuMDA1LCAwLjAxNzUsIDAuMDMsIDAuMDQyNSwgMC4wNjUsIDAuMDgiLCBcCi0gICAgICAgICAgIi0wLjAxNzUsIC0wLjAwNjI1LCAwLjAwNjI1LCAwLjAxODc1LCAwLjAzNzUsIDAuMDUzNzUsIDAuMDc1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLjAwNjI1LCAwLjAxODc1LCAwLjA0MTI1LCAwLjA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAuMDA2MjUsIDAuMDI4NzUsIDAuMDUiLCBcCi0gICAgICAgICAgIi0wLjA1NSwgLTAuMDQzNzUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgMCwgMC4wMTYyNSwgMC4wMzc1IiwgXAotICAgICAgICAgICItMC4wNzEyNSwgLTAuMDYsIC0wLjA0NzUsIC0wLjAzNSwgLTAuMDIyNSwgMCwgMC4wMTUiLCBcCi0gICAgICAgICAgIi0wLjA4LCAtMC4wNjg3NSwgLTAuMDYyNSwgLTAuMDUsIC0wLjAzNzUsIC0wLjAxNSwgMCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJEJiFTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzFfQU5fU0lfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMzc1LCAtMC4wMjYyNSwgLTAuMDEzNzUsIC0wLjAwMTI1LCAwLjAxNzUsIDAuMDMzNzUsIDAuMDU1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDM3NSwgLTAuMDI1LCAtMC4wMTI1LCAwLCAwLjAyMjUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIi0wLjA2NzUsIC0wLjA1NjI1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAxMjUsIDAuMDEsIDAuMDI1IiwgXAotICAgICAgICAgICItMC4wOCwgLTAuMDY4NzUsIC0wLjA1NjI1LCAtMC4wNDM3NSwgLTAuMDI1LCAtMC4wMDg3NSwgMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wOTI1LCAtMC4wODEyNSwgLTAuMDY4NzUsIC0wLjA1NjI1LCAtMC4wNDM3NSwgLTAuMDIxMjUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICItMC4xMTUsIC0wLjEwMzc1LCAtMC4wOTEyNSwgLTAuMDc4NzUsIC0wLjA2NjI1LCAtMC4wNDM3NSwgLTAuMDIyNSIsIFwKLSAgICAgICAgICAiLTAuMTMsIC0wLjExODc1LCAtMC4xMDYyNSwgLTAuMDkzNzUsIC0wLjA4MTI1LCAtMC4wNTg3NSwgLTAuMDM3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjE0Mzc1LCAtMC4xMzI1LCAtMC4xMiwgLTAuMTA3NSwgLTAuMTAxMjUsIC0wLjA4NSwgLTAuMDciLCBcCi0gICAgICAgICAgIi0wLjE1NSwgLTAuMTQzNzUsIC0wLjEzMTI1LCAtMC4xMjUsIC0wLjExMjUsIC0wLjA5NjI1LCAtMC4wODc1IiwgXAotICAgICAgICAgICItMC4xNjc1LCAtMC4xNTYyNSwgLTAuMTUsIC0wLjEzNzUsIC0wLjEyNSwgLTAuMTA4NzUsIC0wLjEiLCBcCi0gICAgICAgICAgIi0wLjE4LCAtMC4xNzUsIC0wLjE2MjUsIC0wLjE1LCAtMC4xNDM3NSwgLTAuMTI3NSwgLTAuMTEyNSIsIFwKLSAgICAgICAgICAiLTAuMTkyNSwgLTAuMTg3NSwgLTAuMTc1LCAtMC4xNjI1LCAtMC4xNTYyNSwgLTAuMTQsIC0wLjEyNSIsIFwKLSAgICAgICAgICAiLTAuMjE1LCAtMC4yMDM3NSwgLTAuMTkxMjUsIC0wLjE3ODc1LCAtMC4xNzI1LCAtMC4xNTYyNSwgLTAuMTQxMjUiLCBcCi0gICAgICAgICAgIi0wLjIyMzc1LCAtMC4yMTg3NSwgLTAuMjA2MjUsIC0wLjE5Mzc1LCAtMC4xODc1LCAtMC4xNzEyNSwgLTAuMTU2MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEJlNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9TSV9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE5Mzc1LCAwLjE4MjUsIDAuMTcsIDAuMTUxMjUsIDAuMTM4NzUsIDAuMTIyNSwgMC4xMDc1IiwgXAotICAgICAgICAgICIwLjIwNSwgMC4xOTM3NSwgMC4xNzUsIDAuMTYyNSwgMC4xNSwgMC4xMzM3NSwgMC4xMTg3NSIsIFwKLSAgICAgICAgICAiMC4yMTc1LCAwLjIwNjI1LCAwLjE5Mzc1LCAwLjE3NSwgMC4xNjI1LCAwLjE0NjI1LCAwLjEzMTI1IiwgXAotICAgICAgICAgICIwLjIzNjI1LCAwLjIxODc1LCAwLjIwNjI1LCAwLjE4NzUsIDAuMTc1LCAwLjE1ODc1LCAwLjE0Mzc1IiwgXAotICAgICAgICAgICIwLjI0ODc1LCAwLjIzMTI1LCAwLjIxODc1LCAwLjIwNjI1LCAwLjE5Mzc1LCAwLjE3MTI1LCAwLjE2MjUiLCBcCi0gICAgICAgICAgIjAuMjcxMjUsIDAuMjUzNzUsIDAuMjQxMjUsIDAuMjIyNSwgMC4yMSwgMC4xOTM3NSwgMC4xODUiLCBcCi0gICAgICAgICAgIjAuMjg2MjUsIDAuMjc1LCAwLjI2MjUsIDAuMjQzNzUsIDAuMjMxMjUsIDAuMjE1LCAwLjIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMjUsIDAuMTEzNzUsIDAuMDk1LCAwLjA4MjUsIDAuMDYzNzUsIDAuMDQxMjUsIDAuMDIiLCBcCi0gICAgICAgICAgIjAuMTM2MjUsIDAuMTI1LCAwLjEwNjI1LCAwLjA5Mzc1LCAwLjA3NSwgMC4wNTI1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICIwLjE0ODc1LCAwLjEzNzUsIDAuMTE4NzUsIDAuMTA2MjUsIDAuMDg3NSwgMC4wNjUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMTYxMjUsIDAuMTUsIDAuMTMxMjUsIDAuMTE4NzUsIDAuMSwgMC4wNzc1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICIwLjE3Mzc1LCAwLjE2MjUsIDAuMTUsIDAuMTMxMjUsIDAuMTEyNSwgMC4wOSwgMC4wNjg3NSIsIFwKLSAgICAgICAgICAiMC4xOTYyNSwgMC4xODUsIDAuMTY2MjUsIDAuMTUzNzUsIDAuMTM1LCAwLjExMjUsIDAuMDkxMjUiLCBcCi0gICAgICAgICAgIjAuMjE3NSwgMC4yLCAwLjE4NzUsIDAuMTY4NzUsIDAuMTU2MjUsIDAuMTI3NSwgMC4xMDYyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiRCYhU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8xX0FOX1NJX0VRXzAgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTU2MjUsIDAuMTQ1LCAwLjEyNjI1LCAwLjExMzc1LCAwLjA5NSwgMC4wNzI1LCAwLjA1MTI1IiwgXAotICAgICAgICAgICIwLjE2NzUsIDAuMTU2MjUsIDAuMTM3NSwgMC4xMjUsIDAuMTA2MjUsIDAuMDgzNzUsIDAuMDYyNSIsIFwKLSAgICAgICAgICAiMC4xODYyNSwgMC4xNjg3NSwgMC4xNTYyNSwgMC4xMzc1LCAwLjEyNSwgMC4wOTYyNSwgMC4wNzUiLCBcCi0gICAgICAgICAgIjAuMTk4NzUsIDAuMTg3NSwgMC4xNjg3NSwgMC4xNTYyNSwgMC4xMzc1LCAwLjExNSwgMC4wOTM3NSIsIFwKLSAgICAgICAgICAiMC4yMTEyNSwgMC4yLCAwLjE4MTI1LCAwLjE2ODc1LCAwLjE1LCAwLjEyNzUsIDAuMTA2MjUiLCBcCi0gICAgICAgICAgIjAuMjMzNzUsIDAuMjIyNSwgMC4yMDM3NSwgMC4xOTEyNSwgMC4xNzI1LCAwLjE1LCAwLjEyODc1IiwgXAotICAgICAgICAgICIwLjI0ODc1LCAwLjIzNzUsIDAuMjE4NzUsIDAuMjA2MjUsIDAuMTg3NSwgMC4xNjUsIDAuMTQzNzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMjUsIDAuMjEzNzUsIDAuMTk1LCAwLjE4MjUsIDAuMTcsIDAuMTUzNzUsIDAuMTM4NzUiLCBcCi0gICAgICAgICAgIjAuMjM2MjUsIDAuMjI1LCAwLjIwNjI1LCAwLjE5Mzc1LCAwLjE4MTI1LCAwLjE2NSwgMC4xNSIsIFwKLSAgICAgICAgICAiMC4yNTUsIDAuMjM3NSwgMC4yMjUsIDAuMjA2MjUsIDAuMTkzNzUsIDAuMTc3NSwgMC4xNjg3NSIsIFwKLSAgICAgICAgICAiMC4yNjc1LCAwLjI1NjI1LCAwLjIzNzUsIDAuMjI1LCAwLjIxMjUsIDAuMTksIDAuMTgxMjUiLCBcCi0gICAgICAgICAgIjAuMjgsIDAuMjY4NzUsIDAuMjUsIDAuMjM3NSwgMC4yMjUsIDAuMjAyNSwgMC4xOTM3NSIsIFwKLSAgICAgICAgICAiMC4yOTYyNSwgMC4yODUsIDAuMjY2MjUsIDAuMjUzNzUsIDAuMjQxMjUsIDAuMjI1LCAwLjIxIiwgXAotICAgICAgICAgICIwLjMxMTI1LCAwLjMsIDAuMjgxMjUsIDAuMjY4NzUsIDAuMjU2MjUsIDAuMjQsIDAuMjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTSSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjUxMTM4OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDY0OTI3OTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2NTExMzg7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyMjAxLCAwLjAwMjE5MSwgMC4wMDIxODYsIDAuMDAyMTgzLCAwLjAwMjE4LCAwLjAwMjE3NywgMC4wMDIxNzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDM0NTMsIDAuMDAzNDQ4LCAwLjAwMzQ0NiwgMC4wMDM0NDQsIDAuMDAzNDQzLCAwLjAwMzQ0MSwgMC4wMDM0NCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJTRSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4xMjUsIC0wLjExMzc1LCAtMC4xMDEyNSwgLTAuMDk1LCAtMC4wODI1LCAtMC4wNjYyNSwgLTAuMDU3NSIsIFwKLSAgICAgICAgICAiLTAuMTM2MjUsIC0wLjEyNSwgLTAuMTEyNSwgLTAuMTA2MjUsIC0wLjA5Mzc1LCAtMC4wNzc1LCAtMC4wNjg3NSIsIFwKLSAgICAgICAgICAiLTAuMTQ4NzUsIC0wLjEzNzUsIC0wLjEzMTI1LCAtMC4xMTg3NSwgLTAuMTA2MjUsIC0wLjA5NjI1LCAtMC4wODEyNSIsIFwKLSAgICAgICAgICAiLTAuMTYxMjUsIC0wLjE1NjI1LCAtMC4xNDM3NSwgLTAuMTMxMjUsIC0wLjExODc1LCAtMC4xMDg3NSwgLTAuMDkzNzUiLCBcCi0gICAgICAgICAgIi0wLjE3Mzc1LCAtMC4xNjg3NSwgLTAuMTU2MjUsIC0wLjE0Mzc1LCAtMC4xMzc1LCAtMC4xMjEyNSwgLTAuMTA2MjUiLCBcCi0gICAgICAgICAgIi0wLjE5NjI1LCAtMC4xOTEyNSwgLTAuMTc4NzUsIC0wLjE2NjI1LCAtMC4xNiwgLTAuMTQzNzUsIC0wLjEyODc1IiwgXAotICAgICAgICAgICItMC4yMTc1LCAtMC4yMDYyNSwgLTAuMTkzNzUsIC0wLjE4NzUsIC0wLjE3NSwgLTAuMTU4NzUsIC0wLjE1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDE4NzUsIC0wLjAwNzUsIDAuMDA1LCAwLjAxNzUsIDAuMDM2MjUsIDAuMDUyNSwgMC4wNzM3NSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAxODc1LCAtMC4wMDYyNSwgMC4wMDYyNSwgMC4wMjUsIDAuMDQxMjUsIDAuMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDMxMjUsIC0wLjAxODc1LCAtMC4wMDYyNSwgMC4wMTI1LCAwLjAyODc1LCAwLjA1IiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA0Mzc1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIDAsIDAuMDE2MjUsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDY3NSwgLTAuMDU2MjUsIC0wLjAzNzUsIC0wLjAyNSwgLTAuMDEyNSwgMC4wMDM3NSwgMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjA4Mzc1LCAtMC4wNzI1LCAtMC4wNiwgLTAuMDQ3NSwgLTAuMDM1LCAtMC4wMTI1LCAwLjAwODc1IiwgXAotICAgICAgICAgICItMC4wOTg3NSwgLTAuMDg3NSwgLTAuMDc1LCAtMC4wNjI1LCAtMC4wNSwgLTAuMDI3NSwgLTAuMDEyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiU0UiOwotICAgICAgc2RmX2NvbmQgOiAiU0UgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjA2MjUsIDAuMTk1LCAwLjE4MjUsIDAuMTYzNzUsIDAuMTUxMjUsIDAuMTM1LCAwLjEyIiwgXAotICAgICAgICAgICIwLjIxNzUsIDAuMjA2MjUsIDAuMTkzNzUsIDAuMTc1LCAwLjE2MjUsIDAuMTQ2MjUsIDAuMTMxMjUiLCBcCi0gICAgICAgICAgIjAuMjM2MjUsIDAuMjE4NzUsIDAuMjA2MjUsIDAuMTg3NSwgMC4xNzUsIDAuMTU4NzUsIDAuMTQzNzUiLCBcCi0gICAgICAgICAgIjAuMjQ4NzUsIDAuMjMxMjUsIDAuMjE4NzUsIDAuMjA2MjUsIDAuMTkzNzUsIDAuMTcxMjUsIDAuMTYyNSIsIFwKLSAgICAgICAgICAiMC4yNjEyNSwgMC4yNSwgMC4yMzEyNSwgMC4yMTg3NSwgMC4yMDYyNSwgMC4xOSwgMC4xNzUiLCBcCi0gICAgICAgICAgIjAuMjgzNzUsIDAuMjcyNSwgMC4yNTM3NSwgMC4yNDEyNSwgMC4yMjg3NSwgMC4yMDYyNSwgMC4xOTc1IiwgXAotICAgICAgICAgICIwLjI5ODc1LCAwLjI4NzUsIDAuMjc1LCAwLjI1NjI1LCAwLjI0Mzc1LCAwLjIyNzUsIDAuMjEyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEzNzUsIDAuMTI2MjUsIDAuMTA3NSwgMC4wOTUsIDAuMDc2MjUsIDAuMDUzNzUsIDAuMDMyNSIsIFwKLSAgICAgICAgICAiMC4xNDg3NSwgMC4xMzc1LCAwLjExODc1LCAwLjEwNjI1LCAwLjA4NzUsIDAuMDY1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjE2MTI1LCAwLjE1LCAwLjEzMTI1LCAwLjExODc1LCAwLjEsIDAuMDc3NSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiMC4xNzM3NSwgMC4xNjI1LCAwLjE0Mzc1LCAwLjEzMTI1LCAwLjExMjUsIDAuMDksIDAuMDY4NzUiLCBcCi0gICAgICAgICAgIjAuMTg2MjUsIDAuMTc1LCAwLjE1NjI1LCAwLjE0Mzc1LCAwLjEyNSwgMC4xMDI1LCAwLjA4MTI1IiwgXAotICAgICAgICAgICIwLjIwMjUsIDAuMTkxMjUsIDAuMTc4NzUsIDAuMTYsIDAuMTQ3NSwgMC4xMTg3NSwgMC4wOTc1IiwgXAotICAgICAgICAgICIwLjIyMzc1LCAwLjIxMjUsIDAuMTkzNzUsIDAuMTc1LCAwLjE2MjUsIDAuMTQsIDAuMTE4NzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IFNFREZGSFFYNCAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKFNFREZGSFFYNCkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjYxOTcwOTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBmZiAoTjMwLFFCSU5UKSB7Ci0gICAgbmV4dF9zdGF0ZSA6ICIoKFNFIFNJKSArICghU0UgKChFIEQpICsgKCFFICghKCFOMzApKSkpKSkiOwotICAgIGNsb2NrZWRfb24gOiAiQ0siOwotICB9Ci0gIHBpbihDSykgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNTY5MjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA1Njg5MTk7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNTY5MjsKLSAgICBjbG9jayA6IHRydWU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzMDUxLCAwLjAwMzAzOCwgMC4wMDMwMjcsIDAuMDAzMDIxLCAwLjAwMzAxNCwgMC4wMDMwMDcsIDAuMDAzMDA1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA1ODQ2LCAwLjAwNTgzNywgMC4wMDU4MjgsIDAuMDA1ODIyLCAwLjAwNTgyMiwgMC4wMDU4MjgsIDAuMDA1ODI5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRCYhRSZTRSYhU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX0VfRVFfMF9BTl9TRV9FUV8xX0FOX1NJX0VRXzAgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4yNjY3NDUsIDAuMjc4NjQ3LCAwLjI5MzcyMSwgMC4zMDkyNDEsIDAuMzI0NTczLCAwLjM0ODg4MiwgMC4zNjk4NTUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjIwNDkxMywgMC4yMTYyMzQsIDAuMjMxNDE3LCAwLjI0NjMxMSwgMC4yNjA5MDEsIDAuMjgzOTU1LCAwLjMwMjg2Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihEKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA4NDIwMjg7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwODM4MjU4OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDg0MjAyODsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDM4OTksIDAuMDAzODgxLCAwLjAwMzg3MiwgMC4wMDM4NjYsIDAuMDAzODYyLCAwLjAwMzg1OCwgMC4wMDM4NTQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDY5ODMsIDAuMDA2OTczLCAwLjAwNjk2OSwgMC4wMDY5NjYsIDAuMDA2OTY0LCAwLjAwNjk2MiwgMC4wMDY5NTkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiRSYhU0UiOwotICAgICAgc2RmX2NvbmQgOiAiRV9FUV8xX0FOX1NFX0VRXzAgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMTkzNzUsIC0wLjE4ODc1LCAtMC4xNzYyNSwgLTAuMTYzNzUsIC0wLjE1NzUsIC0wLjE0MTI1LCAtMC4xMzI1IiwgXAotICAgICAgICAgICItMC4yMDUsIC0wLjIsIC0wLjE4NzUsIC0wLjE3NSwgLTAuMTY4NzUsIC0wLjE1MjUsIC0wLjE0Mzc1IiwgXAotICAgICAgICAgICItMC4yMjM3NSwgLTAuMjEyNSwgLTAuMiwgLTAuMTkzNzUsIC0wLjE4MTI1LCAtMC4xNjUsIC0wLjE1NjI1IiwgXAotICAgICAgICAgICItMC4yMzYyNSwgLTAuMjI1LCAtMC4yMTI1LCAtMC4yMDYyNSwgLTAuMTkzNzUsIC0wLjE4Mzc1LCAtMC4xNjg3NSIsIFwKLSAgICAgICAgICAiLTAuMjQ4NzUsIC0wLjIzNzUsIC0wLjIyNSwgLTAuMjE4NzUsIC0wLjIwNjI1LCAtMC4xOTYyNSwgLTAuMTgxMjUiLCBcCi0gICAgICAgICAgIi0wLjI3MTI1LCAtMC4yNiwgLTAuMjQ3NSwgLTAuMjQxMjUsIC0wLjIyODc1LCAtMC4yMTI1LCAtMC4yMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMjg2MjUsIC0wLjI4MTI1LCAtMC4yNjg3NSwgLTAuMjU2MjUsIC0wLjI1LCAtMC4yMzM3NSwgLTAuMjI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDM3NSwgLTAuMDI2MjUsIC0wLjAxMzc1LCAtMC4wMDc1LCAwLjAwNSwgMC4wMjEyNSwgMC4wMyIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjAzNzUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLjAxLCAwLjAxODc1IiwgXAotICAgICAgICAgICItMC4wNjEyNSwgLTAuMDUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgLTAuMDAyNSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDczNzUsIC0wLjA2MjUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDMxMjUsIC0wLjAxNSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA4NjI1LCAtMC4wNzUsIC0wLjA2MjUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDI3NSwgLTAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjEwMjUsIC0wLjA5MTI1LCAtMC4wNzg3NSwgLTAuMDcyNSwgLTAuMDYsIC0wLjA1LCAtMC4wMzUiLCBcCi0gICAgICAgICAgIi0wLjExNzUsIC0wLjEwNjI1LCAtMC4wOTM3NSwgLTAuMDgxMjUsIC0wLjA3NSwgLTAuMDU4NzUsIC0wLjA1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJFJiFTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJFX0VRXzFfQU5fU0VfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yOTM3NSwgMC4yODI1LCAwLjI2Mzc1LCAwLjI1MTI1LCAwLjIzODc1LCAwLjIxNjI1LCAwLjIwNzUiLCBcCi0gICAgICAgICAgIjAuMzA1LCAwLjI5Mzc1LCAwLjI4MTI1LCAwLjI2MjUsIDAuMjUsIDAuMjI3NSwgMC4yMTg3NSIsIFwKLSAgICAgICAgICAiMC4zMjM3NSwgMC4zMDYyNSwgMC4yOTM3NSwgMC4yNzUsIDAuMjYyNSwgMC4yNDYyNSwgMC4yMzEyNSIsIFwKLSAgICAgICAgICAiMC4zMzYyNSwgMC4zMTg3NSwgMC4zMDYyNSwgMC4yODc1LCAwLjI3NSwgMC4yNTg3NSwgMC4yNDM3NSIsIFwKLSAgICAgICAgICAiMC4zNDg3NSwgMC4zMzc1LCAwLjMxODc1LCAwLjMsIDAuMjg3NSwgMC4yNzEyNSwgMC4yNTYyNSIsIFwKLSAgICAgICAgICAiMC4zNzEyNSwgMC4zNTM3NSwgMC4zNDEyNSwgMC4zMjI1LCAwLjMxLCAwLjI5Mzc1LCAwLjI3ODc1IiwgXAotICAgICAgICAgICIwLjM4NjI1LCAwLjM3NSwgMC4zNjI1LCAwLjM0Mzc1LCAwLjMzMTI1LCAwLjMwODc1LCAwLjI5Mzc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjA2MjUsIDAuMTk1LCAwLjE3NjI1LCAwLjE1NzUsIDAuMTQ1LCAwLjEyMjUsIDAuMTAxMjUiLCBcCi0gICAgICAgICAgIjAuMjE3NSwgMC4yMDYyNSwgMC4xODc1LCAwLjE3NSwgMC4xNTYyNSwgMC4xMzM3NSwgMC4xMTI1IiwgXAotICAgICAgICAgICIwLjIzLCAwLjIxODc1LCAwLjIsIDAuMTg3NSwgMC4xNjg3NSwgMC4xNDYyNSwgMC4xMjUiLCBcCi0gICAgICAgICAgIjAuMjQyNSwgMC4yMzEyNSwgMC4yMTI1LCAwLjIsIDAuMTgxMjUsIDAuMTU4NzUsIDAuMTM3NSIsIFwKLSAgICAgICAgICAiMC4yNTUsIDAuMjQzNzUsIDAuMjI1LCAwLjIxMjUsIDAuMTkzNzUsIDAuMTcxMjUsIDAuMTUiLCBcCi0gICAgICAgICAgIjAuMjcxMjUsIDAuMjYsIDAuMjQ3NSwgMC4yMjg3NSwgMC4yMSwgMC4xODc1LCAwLjE2NjI1IiwgXAotICAgICAgICAgICIwLjI5MjUsIDAuMjgxMjUsIDAuMjYyNSwgMC4yNDM3NSwgMC4yMzEyNSwgMC4yMDI1LCAwLjE4MTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihFKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE1MjYyNjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE1MjU2MzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE1MjYyNjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDY1ODMsIDAuMDA2NTc3LCAwLjAwNjU3LCAwLjAwNjU2NiwgMC4wMDY1NjQsIDAuMDA2NTYxLCAwLjAwNjU1OSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNzY2NywgMC4wMDc2NDYsIDAuMDA3NjMsIDAuMDA3NjIxLCAwLjAwNzYxNCwgMC4wMDc2MDYsIDAuMDA3NjAzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJTRSA9PSAxJ2IwIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4xODc1LCAtMC4xNzYyNSwgLTAuMTYzNzUsIC0wLjE0NSwgLTAuMTMyNSwgLTAuMTAzNzUsIC0wLjA4ODc1IiwgXAotICAgICAgICAgICItMC4xOTg3NSwgLTAuMTg3NSwgLTAuMTc1LCAtMC4xNTYyNSwgLTAuMTQzNzUsIC0wLjEyMTI1LCAtMC4xIiwgXAotICAgICAgICAgICItMC4yMTc1LCAtMC4yMDYyNSwgLTAuMTg3NSwgLTAuMTc1LCAtMC4xNTYyNSwgLTAuMTMzNzUsIC0wLjExMjUiLCBcCi0gICAgICAgICAgIi0wLjIzLCAtMC4yMTg3NSwgLTAuMjA2MjUsIC0wLjE4NzUsIC0wLjE3NSwgLTAuMTQ2MjUsIC0wLjEzMTI1IiwgXAotICAgICAgICAgICItMC4yNDg3NSwgLTAuMjM3NSwgLTAuMjE4NzUsIC0wLjIwNjI1LCAtMC4xODc1LCAtMC4xNjUsIC0wLjE0Mzc1IiwgXAotICAgICAgICAgICItMC4yNzEyNSwgLTAuMjUzNzUsIC0wLjI0MTI1LCAtMC4yMjI1LCAtMC4yMSwgLTAuMTg3NSwgLTAuMTY2MjUiLCBcCi0gICAgICAgICAgIi0wLjI4NjI1LCAtMC4yNzUsIC0wLjI1NjI1LCAtMC4yNDM3NSwgLTAuMjI1LCAtMC4yMDI1LCAtMC4xODEyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAyNSwgLTAuMDEzNzUsIC0wLjAwMTI1LCAwLjAwNSwgMC4wMTc1LCAwLjAzMzc1LCAwLjA0MjUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMjUsIC0wLjAxMjUsIDAsIDAuMDA2MjUsIDAuMDIyNSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjAzNzUsIC0wLjAyNSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAuMDEsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjA2MTI1LCAtMC4wNSwgLTAuMDM3NSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDAyNSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDczNzUsIC0wLjA2MjUsIC0wLjA1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDE1LCAwIiwgXAotICAgICAgICAgICItMC4wODM3NSwgLTAuMDcyNSwgLTAuMDY2MjUsIC0wLjA1Mzc1LCAtMC4wNDc1LCAtMC4wMzEyNSwgLTAuMDIyNSIsIFwKLSAgICAgICAgICAiLTAuMDk4NzUsIC0wLjA4NzUsIC0wLjA3NSwgLTAuMDY4NzUsIC0wLjA1NjI1LCAtMC4wNDYyNSwgLTAuMDMxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJTRSA9PSAxJ2IwIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yODEyNSwgMC4yNywgMC4yNTEyNSwgMC4yMzg3NSwgMC4yMjYyNSwgMC4yMDM3NSwgMC4xOTUiLCBcCi0gICAgICAgICAgIjAuMjkyNSwgMC4yODEyNSwgMC4yNjg3NSwgMC4yNSwgMC4yMzc1LCAwLjIxNSwgMC4yMDYyNSIsIFwKLSAgICAgICAgICAiMC4zMDUsIDAuMjkzNzUsIDAuMjgxMjUsIDAuMjYyNSwgMC4yNSwgMC4yMjc1LCAwLjIxODc1IiwgXAotICAgICAgICAgICIwLjMxNzUsIDAuMzA2MjUsIDAuMjkzNzUsIDAuMjc1LCAwLjI2MjUsIDAuMjQ2MjUsIDAuMjMxMjUiLCBcCi0gICAgICAgICAgIjAuMzM2MjUsIDAuMzE4NzUsIDAuMzA2MjUsIDAuMjg3NSwgMC4yNzUsIDAuMjU4NzUsIDAuMjQzNzUiLCBcCi0gICAgICAgICAgIjAuMzUyNSwgMC4zNDEyNSwgMC4zMjg3NSwgMC4zMSwgMC4yOTc1LCAwLjI4MTI1LCAwLjI2NjI1IiwgXAotICAgICAgICAgICIwLjM3Mzc1LCAwLjM2MjUsIDAuMzQzNzUsIDAuMzMxMjUsIDAuMzEyNSwgMC4yOTYyNSwgMC4yODEyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIzNzUsIDAuMjI2MjUsIDAuMjIsIDAuMjA3NSwgMC4xOTUsIDAuMTg1LCAwLjE3IiwgXAotICAgICAgICAgICIwLjI0ODc1LCAwLjIzNzUsIDAuMjMxMjUsIDAuMjE4NzUsIDAuMjA2MjUsIDAuMTk2MjUsIDAuMTgxMjUiLCBcCi0gICAgICAgICAgIjAuMjY3NSwgMC4yNTYyNSwgMC4yNDM3NSwgMC4yMzEyNSwgMC4yMjUsIDAuMjA4NzUsIDAuMiIsIFwKLSAgICAgICAgICAiMC4yOCwgMC4yNjg3NSwgMC4yNTYyNSwgMC4yNSwgMC4yMzc1LCAwLjIyMTI1LCAwLjIxMjUiLCBcCi0gICAgICAgICAgIjAuMjkyNSwgMC4yODEyNSwgMC4yNzUsIDAuMjYyNSwgMC4yNSwgMC4yNCwgMC4yMjUiLCBcCi0gICAgICAgICAgIjAuMzE1LCAwLjMwMzc1LCAwLjI5MTI1LCAwLjI3ODc1LCAwLjI3MjUsIDAuMjU2MjUsIDAuMjQ3NSIsIFwKLSAgICAgICAgICAiMC4zMywgMC4zMTg3NSwgMC4zMDYyNSwgMC4yOTM3NSwgMC4yODc1LCAwLjI3MTI1LCAwLjI2MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFEpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC41MjYwODY7Ci0gICAgZnVuY3Rpb24gOiAiTjMwIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBub25fdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJpc2luZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIzMTc5NSwgMC4zNTk1NDEsIDAuNDg0NjExLCAwLjU3MzkzMywgMC43MTY4NywgMC44NDE5MiwgMS4wMjA1MSIsIFwKLSAgICAgICAgICAiMC4yNDM4MjcsIDAuMzcxNTY2LCAwLjQ5NjYzOCwgMC41ODU5NjgsIDAuNzI4ODk1LCAwLjg1Mzk0OCwgMS4wMzI1MyIsIFwKLSAgICAgICAgICAiMC4yNTg3NzQsIDAuMzg2NTMsIDAuNTExNjMyLCAwLjYwMDk3LCAwLjc0Mzg0MSwgMC44Njg5MzQsIDEuMDQ3NDgiLCBcCi0gICAgICAgICAgIjAuMjc0MjkxLCAwLjQwMjAzMSwgMC41MjcxMDUsIDAuNjE2NDE5LCAwLjc1OTM1NCwgMC44ODQ0NjQsIDEuMDYyOTkiLCBcCi0gICAgICAgICAgIjAuMjg5NTU5LCAwLjQxNzMxNSwgMC41NDIzODYsIDAuNjMxNzE0LCAwLjc3NDYzNSwgMC44OTk3MjIsIDEuMDc4MjkiLCBcCi0gICAgICAgICAgIjAuMzEzNzg2LCAwLjQ0MTUzNCwgMC41NjY2MDEsIDAuNjU1OTI3LCAwLjc5ODkxMywgMC45MjM5MDYsIDEuMTAyNTEiLCBcCi0gICAgICAgICAgIjAuMzM0NTE3LCAwLjQ2MjI3NywgMC41ODczNDYsIDAuNjc2NjY0LCAwLjgxOTcwMywgMC45NDQ2NDcsIDEuMTIzMzUiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTgwMzUsIDAuMzA0NDIzLCAwLjU1ODEyMiwgMC43NDAwMTUsIDEuMDMxMzgsIDEuMjg2NTIsIDEuNjUwNzciLCBcCi0gICAgICAgICAgIjAuMDU4MDMxLCAwLjMwNDM4NCwgMC41NTgwMzMsIDAuNzM4NzQ5LCAxLjAzMTU5LCAxLjI4NjUzLCAxLjY1MDYxIiwgXAotICAgICAgICAgICIwLjA1ODAzMSwgMC4zMDQ0MDgsIDAuNTU4MjYyLCAwLjczODcwNSwgMS4wMzE0NCwgMS4yODYxLCAxLjY1MDU4IiwgXAotICAgICAgICAgICIwLjA1ODAzMiwgMC4zMDQzNjQsIDAuNTU4MTE5LCAwLjczOTk5LCAxLjAzMTI2LCAxLjI4NjUxLCAxLjY1MDYxIiwgXAotICAgICAgICAgICIwLjA1ODA4NSwgMC4zMDQzNDYsIDAuNTU4MDUxLCAwLjczODcwMSwgMS4wMjk1LCAxLjI4NjY2LCAxLjY1MDY4IiwgXAotICAgICAgICAgICIwLjA1ODA0OCwgMC4zMDM5MjEsIDAuNTU4MDQ5LCAwLjczODY4NSwgMS4wMjk0OSwgMS4yODY1MSwgMS42NTA3IiwgXAotICAgICAgICAgICIwLjA1ODExNSwgMC4zMDQzODYsIDAuNTU4MTAxLCAwLjczOTkyOCwgMS4wMjk1MiwgMS4yODY0OCwgMS42NTA1OSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI2Njc1NywgMC40MTQ1MDYsIDAuNTYwMTAxLCAwLjY2NDA5OSwgMC44MzA0OTQsIDAuOTc1OTczLCAxLjE4MzgxIiwgXAotICAgICAgICAgICIwLjI3ODY1NywgMC40MjY0MjMsIDAuNTcyMDA0LCAwLjY3NTk4NSwgMC44NDIzMTYsIDAuOTg3ODY2LCAxLjE5NTcyIiwgXAotICAgICAgICAgICIwLjI5Mzc5NCwgMC40NDE1NDQsIDAuNTg3MTM0LCAwLjY5MTEzOSwgMC44NTc1MjUsIDEuMDAzMDEsIDEuMjEwODUiLCBcCi0gICAgICAgICAgIjAuMzA5MjU2LCAwLjQ1NzAxNiwgMC42MDI2NCwgMC43MDY2MTIsIDAuODczMDA3LCAxLjAxODQ4LCAxLjIyNjMyIiwgXAotICAgICAgICAgICIwLjMyNDU4MywgMC40NzIzMzgsIDAuNjE3OTIzLCAwLjcyMTkwNiwgMC44ODgyMjIsIDEuMDMzNzgsIDEuMjQxNjMiLCBcCi0gICAgICAgICAgIjAuMzQ4ODkxLCAwLjQ5NjY0OSwgMC42NDIyMywgMC43NDYyLCAwLjkxMjU2NywgMS4wNTgwOSwgMS4yNjU5NCIsIFwKLSAgICAgICAgICAiMC4zNjk4NjUsIDAuNTE3NjI1LCAwLjY2MzI1NiwgMC43NjcxNzEsIDAuOTMzNjE1LCAxLjA3OTA2LCAxLjI4NjkyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDYxNTY5LCAwLjM0NTUzMywgMC42MzU1MDgsIDAuODQyODc3LCAxLjE3MjcxLCAxLjQ2NTQsIDEuODgxNCIsIFwKLSAgICAgICAgICAiMC4wNjE1NDgsIDAuMzQ1ODA2LCAwLjYzNTQzMSwgMC44NDIxNTIsIDEuMTc1MzMsIDEuNDY1NDIsIDEuODgwNTYiLCBcCi0gICAgICAgICAgIjAuMDYxNTg2LCAwLjM0NTUzNywgMC42MzU1MDMsIDAuODQyODc4LCAxLjE3MjMsIDEuNDY1MzgsIDEuODgwMzgiLCBcCi0gICAgICAgICAgIjAuMDYxNTQ3LCAwLjM0NTc2NywgMC42MzUzNTMsIDAuODQyNzkzLCAxLjE3NDkyLCAxLjQ2NTQyLCAxLjg4MDYxIiwgXAotICAgICAgICAgICIwLjA2MTU1NywgMC4zNDU3NDgsIDAuNjM1NDU2LCAwLjg0MjAyOSwgMS4xNzUyOCwgMS40NjU0NCwgMS44ODA2IiwgXAotICAgICAgICAgICIwLjA2MTU0NSwgMC4zNDU3ODMsIDAuNjM1MzIyLCAwLjg0MDk4MiwgMS4xNzUzMywgMS40NjU0MywgMS44ODA2MSIsIFwKLSAgICAgICAgICAiMC4wNjE1NDYsIDAuMzQ1NzYyLCAwLjYzNTM1NSwgMC44NDI3OTUsIDEuMTc0OSwgMS40NjU1NywgMS44ODA2MyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMjM4NSwgMC4wMTI0ODksIDAuMDEyNTAyLCAwLjAxMjUwNiwgMC4wMTI1MDksIDAuMDEyNTEsIDAuMDEyNTEyIiwgXAotICAgICAgICAgICIwLjAxMjM3MywgMC4wMTI0NzcsIDAuMDEyNDksIDAuMDEyNDk1LCAwLjAxMjQ5OCwgMC4wMTI0OTksIDAuMDEyNTAxIiwgXAotICAgICAgICAgICIwLjAxMjM1OSwgMC4wMTI0NjMsIDAuMDEyNDc2LCAwLjAxMjQ4MSwgMC4wMTI0ODQsIDAuMDEyNDg2LCAwLjAxMjQ4NiIsIFwKLSAgICAgICAgICAiMC4wMTIzNDksIDAuMDEyNDUzLCAwLjAxMjQ2NiwgMC4wMTI0NywgMC4wMTI0NzMsIDAuMDEyNDc1LCAwLjAxMjQ3NyIsIFwKLSAgICAgICAgICAiMC4wMTIzNCwgMC4wMTI0NDQsIDAuMDEyNDU4LCAwLjAxMjQ2MSwgMC4wMTI0NjUsIDAuMDEyNDY2LCAwLjAxMjQ2OSIsIFwKLSAgICAgICAgICAiMC4wMTIzMjgsIDAuMDEyNDMzLCAwLjAxMjQ0NiwgMC4wMTI0NDksIDAuMDEyNDUzLCAwLjAxMjQ1NCwgMC4wMTI0NTUiLCBcCi0gICAgICAgICAgIjAuMDEyMzIxLCAwLjAxMjQyNSwgMC4wMTI0MzksIDAuMDEyNDQyLCAwLjAxMjQ0NiwgMC4wMTI0NDksIDAuMDEyNDQ5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTMxMzksIDAuMDEzMjgxLCAwLjAxMzMsIDAuMDEzMzA3LCAwLjAxMzMxMiwgMC4wMTMzMTUsIDAuMDEzMzE3IiwgXAotICAgICAgICAgICIwLjAxMzEyLCAwLjAxMzI2NSwgMC4wMTMyODUsIDAuMDEzMjkyLCAwLjAxMzI5NywgMC4wMTMzLCAwLjAxMzMwMiIsIFwKLSAgICAgICAgICAiMC4wMTMxMDgsIDAuMDEzMjU2LCAwLjAxMzI3NSwgMC4wMTMyODEsIDAuMDEzMjg3LCAwLjAxMzI4OSwgMC4wMTMyOTIiLCBcCi0gICAgICAgICAgIjAuMDEzMTAxLCAwLjAxMzI0NiwgMC4wMTMyNjYsIDAuMDEzMjczLCAwLjAxMzI3NywgMC4wMTMyOCwgMC4wMTMyODMiLCBcCi0gICAgICAgICAgIjAuMDEzMTAxLCAwLjAxMzI0NSwgMC4wMTMyNjQsIDAuMDEzMjcsIDAuMDEzMjc2LCAwLjAxMzI3OCwgMC4wMTMyODEiLCBcCi0gICAgICAgICAgIjAuMDEzMDk5LCAwLjAxMzI0MywgMC4wMTMyNjQsIDAuMDEzMjcsIDAuMDEzMjc1LCAwLjAxMzI3OCwgMC4wMTMyOCIsIFwKLSAgICAgICAgICAiMC4wMTMxMDUsIDAuMDEzMjUxLCAwLjAxMzI3MSwgMC4wMTMyNzcsIDAuMDEzMjgyLCAwLjAxMzI4NSwgMC4wMTMyODciKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFNFKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDEzODA1OTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDEzNzk5NzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDEzODA1OTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDQ5MjksIDAuMDA0OTI2LCAwLjAwNDkyOCwgMC4wMDQ5MywgMC4wMDQ5MywgMC4wMDQ5MzEsIDAuMDA0OTI5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA2MDYzLCAwLjAwNjAzOSwgMC4wMDYwMjEsIDAuMDA2MDEsIDAuMDA2MDA0LCAwLjAwNTk5MywgMC4wMDU5ODkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUQmIUUmIVNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9FX0VRXzBfQU5fU0lfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4xMjUsIC0wLjEyLCAtMC4xMDc1LCAtMC4wOTUsIC0wLjA4ODc1LCAtMC4wNzI1LCAtMC4wNjM3NSIsIFwKLSAgICAgICAgICAiLTAuMTM2MjUsIC0wLjEzMTI1LCAtMC4xMTg3NSwgLTAuMTA2MjUsIC0wLjEsIC0wLjA4Mzc1LCAtMC4wNzUiLCBcCi0gICAgICAgICAgIi0wLjE1NSwgLTAuMTQzNzUsIC0wLjEzMTI1LCAtMC4xMjUsIC0wLjExMjUsIC0wLjEwMjUsIC0wLjA4NzUiLCBcCi0gICAgICAgICAgIi0wLjE2NzUsIC0wLjE2MjUsIC0wLjE1LCAtMC4xMzc1LCAtMC4xMzEyNSwgLTAuMTE1LCAtMC4xMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMTg2MjUsIC0wLjE3NSwgLTAuMTYyNSwgLTAuMTU2MjUsIC0wLjE0Mzc1LCAtMC4xMzM3NSwgLTAuMTE4NzUiLCBcCi0gICAgICAgICAgIi0wLjIwODc1LCAtMC4xOTc1LCAtMC4xODUsIC0wLjE3ODc1LCAtMC4xNjYyNSwgLTAuMTUsIC0wLjE0MTI1IiwgXAotICAgICAgICAgICItMC4yMjM3NSwgLTAuMjEyNSwgLTAuMjA2MjUsIC0wLjE5Mzc1LCAtMC4xODEyNSwgLTAuMTcxMjUsIC0wLjE1NjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEJiFFJlNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9FX0VRXzBfQU5fU0lfRVFfMSA9PSAxJ2IxIjsKLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLCAwLjAxMTI1LCAwLjAyMzc1LCAwLjAzNjI1LCAwLjA0ODc1LCAwLjA3MTI1LCAwLjA4NjI1IiwgXAotICAgICAgICAgICItMC4wMTEyNSwgMCwgMC4wMTI1LCAwLjAyNSwgMC4wMzc1LCAwLjA2LCAwLjA3NSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxMjUsIDAsIDAuMDEyNSwgMC4wMjUsIDAuMDQ3NSwgMC4wNjI1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDI1LCAtMC4wMTI1LCAwLCAwLjAxMjUsIDAuMDM1LCAwLjA1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDM3NSwgLTAuMDI1LCAtMC4wMTI1LCAwLCAwLjAyMjUsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDY1LCAtMC4wNTM3NSwgLTAuMDQxMjUsIC0wLjAyODc1LCAtMC4wMTYyNSwgMC4wMDYyNSwgMC4wMjEyNSIsIFwKLSAgICAgICAgICAiLTAuMDczNzUsIC0wLjA2MjUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDMxMjUsIC0wLjAwODc1LCAwLjAwNjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEJkUmU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX0VfRVFfMV9BTl9TSV9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjA5Mzc1LCAtMC4wODI1LCAtMC4wNywgLTAuMDYzNzUsIC0wLjA1MTI1LCAtMC4wMzUsIC0wLjAyIiwgXAotICAgICAgICAgICItMC4xMDUsIC0wLjA5Mzc1LCAtMC4wODEyNSwgLTAuMDY4NzUsIC0wLjA2MjUsIC0wLjA0NjI1LCAtMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMTE3NSwgLTAuMTA2MjUsIC0wLjA5Mzc1LCAtMC4wODc1LCAtMC4wNzUsIC0wLjA1ODc1LCAtMC4wNDM3NSIsIFwKLSAgICAgICAgICAiLTAuMTMsIC0wLjExODc1LCAtMC4xMDYyNSwgLTAuMSwgLTAuMDg3NSwgLTAuMDcxMjUsIC0wLjA2MjUiLCBcCi0gICAgICAgICAgIi0wLjE0MjUsIC0wLjEzNzUsIC0wLjEyNSwgLTAuMTEyNSwgLTAuMSwgLTAuMDgzNzUsIC0wLjA3NSIsIFwKLSAgICAgICAgICAiLTAuMTY1LCAtMC4xNTM3NSwgLTAuMTQxMjUsIC0wLjEzNSwgLTAuMTIyNSwgLTAuMTA2MjUsIC0wLjA5NzUiLCBcCi0gICAgICAgICAgIi0wLjE4NjI1LCAtMC4xNzUsIC0wLjE2MjUsIC0wLjE1LCAtMC4xNDM3NSwgLTAuMTI3NSwgLTAuMTEyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJEJkUmIVNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMV9BTl9FX0VRXzFfQU5fU0lfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMzc1LCAtMC4wMjYyNSwgLTAuMDEzNzUsIC0wLjAwMTI1LCAwLjAxMTI1LCAwLjAzMzc1LCAwLjA1NSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjAzNzUsIC0wLjAyNSwgLTAuMDEyNSwgMCwgMC4wMjI1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICItMC4wNjc1LCAtMC4wNTYyNSwgLTAuMDQzNzUsIC0wLjAyNSwgLTAuMDEyNSwgMC4wMSwgMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjA4LCAtMC4wNjg3NSwgLTAuMDU2MjUsIC0wLjA0Mzc1LCAtMC4wMzEyNSwgLTAuMDA4NzUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDk4NzUsIC0wLjA4NzUsIC0wLjA3NSwgLTAuMDU2MjUsIC0wLjA0Mzc1LCAtMC4wMjEyNSwgMCIsIFwKLSAgICAgICAgICAiLTAuMTIxMjUsIC0wLjExLCAtMC4wOTc1LCAtMC4wNzg3NSwgLTAuMDY2MjUsIC0wLjA0Mzc1LCAtMC4wMjg3NSIsIFwKLSAgICAgICAgICAiLTAuMTM2MjUsIC0wLjEzMTI1LCAtMC4xMTI1LCAtMC4xLCAtMC4wODc1LCAtMC4wNjUsIC0wLjA0Mzc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRCYhRSYhU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX0VfRVFfMF9BTl9TSV9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEzNzUsIDAuMTI2MjUsIDAuMTA3NSwgMC4wOTUsIDAuMDc2MjUsIDAuMDUzNzUsIDAuMDMyNSIsIFwKLSAgICAgICAgICAiMC4xNDg3NSwgMC4xMzc1LCAwLjExODc1LCAwLjEwNjI1LCAwLjA4NzUsIDAuMDY1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjE2NzUsIDAuMTUsIDAuMTM3NSwgMC4xMTg3NSwgMC4xMDYyNSwgMC4wODM3NSwgMC4wNjI1IiwgXAotICAgICAgICAgICIwLjE4LCAwLjE2ODc1LCAwLjE1LCAwLjEzNzUsIDAuMTE4NzUsIDAuMDk2MjUsIDAuMDc1IiwgXAotICAgICAgICAgICIwLjE5MjUsIDAuMTgxMjUsIDAuMTY4NzUsIDAuMTUsIDAuMTM3NSwgMC4xMDg3NSwgMC4wODc1IiwgXAotICAgICAgICAgICIwLjIxNSwgMC4yMDM3NSwgMC4xOTEyNSwgMC4xNzI1LCAwLjE2LCAwLjEzMTI1LCAwLjExNjI1IiwgXAotICAgICAgICAgICIwLjIzNjI1LCAwLjIyNSwgMC4yMDYyNSwgMC4xOTM3NSwgMC4xNzUsIDAuMTUyNSwgMC4xMzEyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUQmIUUmU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX0VfRVFfMF9BTl9TSV9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE2MjUsIDAuMTUxMjUsIDAuMTM4NzUsIDAuMTIsIDAuMTA3NSwgMC4wOTEyNSwgMC4wODI1IiwgXAotICAgICAgICAgICIwLjE3Mzc1LCAwLjE2MjUsIDAuMTUsIDAuMTMxMjUsIDAuMTE4NzUsIDAuMTAyNSwgMC4wOTM3NSIsIFwKLSAgICAgICAgICAiMC4xODYyNSwgMC4xNzUsIDAuMTYyNSwgMC4xNDM3NSwgMC4xMzEyNSwgMC4xMTUsIDAuMTA2MjUiLCBcCi0gICAgICAgICAgIjAuMTk4NzUsIDAuMTg3NSwgMC4xNzUsIDAuMTU2MjUsIDAuMTUsIDAuMTI3NSwgMC4xMTg3NSIsIFwKLSAgICAgICAgICAiMC4yMTc1LCAwLjIsIDAuMTg3NSwgMC4xNzUsIDAuMTYyNSwgMC4xNDYyNSwgMC4xMzEyNSIsIFwKLSAgICAgICAgICAiMC4yMzM3NSwgMC4yMjI1LCAwLjIxLCAwLjE5MTI1LCAwLjE3ODc1LCAwLjE2MjUsIDAuMTUzNzUiLCBcCi0gICAgICAgICAgIjAuMjU1LCAwLjI0Mzc1LCAwLjIzMTI1LCAwLjIxMjUsIDAuMiwgMC4xODM3NSwgMC4xNjg3NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUQmRSZTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fRV9FUV8xX0FOX1NJX0VRXzEgPT0gMSdiMSI7Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTM3NSwgMC4xMiwgMC4xMDc1LCAwLjA4ODc1LCAwLjA3NjI1LCAwLjA0NzUsIDAuMDI2MjUiLCBcCi0gICAgICAgICAgIjAuMTQyNSwgMC4xMzEyNSwgMC4xMTg3NSwgMC4xLCAwLjA4MTI1LCAwLjA1ODc1LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIjAuMTU1LCAwLjE0Mzc1LCAwLjEzMTI1LCAwLjExMjUsIDAuMDkzNzUsIDAuMDcxMjUsIDAuMDUiLCBcCi0gICAgICAgICAgIjAuMTY3NSwgMC4xNTYyNSwgMC4xNDM3NSwgMC4xMjUsIDAuMTA2MjUsIDAuMDgzNzUsIDAuMDYyNSIsIFwKLSAgICAgICAgICAiMC4xOCwgMC4xNjg3NSwgMC4xNTYyNSwgMC4xMzc1LCAwLjExODc1LCAwLjA5NjI1LCAwLjA3NSIsIFwKLSAgICAgICAgICAiMC4yMDI1LCAwLjE5MTI1LCAwLjE3MjUsIDAuMTYsIDAuMTQxMjUsIDAuMTE4NzUsIDAuMDk3NSIsIFwKLSAgICAgICAgICAiMC4yMTc1LCAwLjIwNjI1LCAwLjE5Mzc1LCAwLjE3NSwgMC4xNTYyNSwgMC4xMzM3NSwgMC4xMTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJEJkUmIVNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMV9BTl9FX0VRXzFfQU5fU0lfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMjUsIDAuMjEzNzUsIDAuMjAxMjUsIDAuMTgyNSwgMC4xNywgMC4xNDc1LCAwLjEzODc1IiwgXAotICAgICAgICAgICIwLjIzNjI1LCAwLjIyNSwgMC4yMDYyNSwgMC4xOTM3NSwgMC4xODEyNSwgMC4xNTg3NSwgMC4xNSIsIFwKLSAgICAgICAgICAiMC4yNTUsIDAuMjM3NSwgMC4yMjUsIDAuMjA2MjUsIDAuMTkzNzUsIDAuMTc3NSwgMC4xNjI1IiwgXAotICAgICAgICAgICIwLjI2NzUsIDAuMjU2MjUsIDAuMjM3NSwgMC4yMjUsIDAuMjA2MjUsIDAuMTksIDAuMTc1IiwgXAotICAgICAgICAgICIwLjI4LCAwLjI2ODc1LCAwLjI1NjI1LCAwLjIzNzUsIDAuMjI1LCAwLjIwMjUsIDAuMTkzNzUiLCBcCi0gICAgICAgICAgIjAuMzAyNSwgMC4yOTEyNSwgMC4yNzg3NSwgMC4yNiwgMC4yNDc1LCAwLjIyNSwgMC4yMTYyNSIsIFwKLSAgICAgICAgICAiMC4zMjM3NSwgMC4zMDYyNSwgMC4yOTM3NSwgMC4yNzUsIDAuMjYyNSwgMC4yNDYyNSwgMC4yMzEyNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oU0kpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDg2ODUxODsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA4NjUzMzI7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwODY4NTE4OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjg4LCAwLjAwMjg2MSwgMC4wMDI4NTIsIDAuMDAyODQ1LCAwLjAwMjg0LCAwLjAwMjgzNCwgMC4wMDI4MyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNTMxNiwgMC4wMDUzMDYsIDAuMDA1MywgMC4wMDUyOTYsIDAuMDA1MjkzLCAwLjAwNTI5LCAwLjAwNTI4OCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJTRSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4xMDYyNSwgLTAuMDk1LCAtMC4wODg3NSwgLTAuMDc2MjUsIC0wLjA2Mzc1LCAtMC4wNDc1LCAtMC4wMzg3NSIsIFwKLSAgICAgICAgICAiLTAuMTE3NSwgLTAuMTA2MjUsIC0wLjEsIC0wLjA4NzUsIC0wLjA3NSwgLTAuMDU4NzUsIC0wLjA1IiwgXAotICAgICAgICAgICItMC4xMywgLTAuMTI1LCAtMC4xMTI1LCAtMC4xLCAtMC4wODc1LCAtMC4wNzEyNSwgLTAuMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMTQyNSwgLTAuMTM3NSwgLTAuMTI1LCAtMC4xMTI1LCAtMC4xLCAtMC4wODM3NSwgLTAuMDc1IiwgXAotICAgICAgICAgICItMC4xNjEyNSwgLTAuMTUsIC0wLjEzNzUsIC0wLjEyNSwgLTAuMTE4NzUsIC0wLjEwMjUsIC0wLjA4NzUiLCBcCi0gICAgICAgICAgIi0wLjE3NzUsIC0wLjE3MjUsIC0wLjE2LCAtMC4xNDc1LCAtMC4xMzUsIC0wLjExODc1LCAtMC4xMSIsIFwKLSAgICAgICAgICAiLTAuMTk4NzUsIC0wLjE4NzUsIC0wLjE3NSwgLTAuMTY4NzUsIC0wLjE1NjI1LCAtMC4xNCwgLTAuMTI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDA2MjUsIDAuMDA1LCAwLjAxNzUsIDAuMDMsIDAuMDQyNSwgMC4wNjUsIDAuMDg2MjUiLCBcCi0gICAgICAgICAgIi0wLjAxNzUsIC0wLjAwNjI1LCAwLjAwNjI1LCAwLjAxODc1LCAwLjAzNzUsIDAuMDUzNzUsIDAuMDc1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLjAwNjI1LCAwLjAyNSwgMC4wNDEyNSwgMC4wNjI1IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLjAxMjUsIDAuMDM1LCAwLjA1IiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA0Mzc1LCAtMC4wMzEyNSwgLTAuMDEyNSwgMCwgMC4wMjI1LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjA3MTI1LCAtMC4wNiwgLTAuMDQ3NSwgLTAuMDM1LCAtMC4wMTYyNSwgMCwgMC4wMjEyNSIsIFwKLSAgICAgICAgICAiLTAuMDg2MjUsIC0wLjA3NSwgLTAuMDYyNSwgLTAuMDUsIC0wLjAzMTI1LCAtMC4wMTUsIDAuMDA2MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlNFIjsKLSAgICAgIHNkZl9jb25kIDogIlNFID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE3NSwgMC4xNjM3NSwgMC4xNTEyNSwgMC4xMzI1LCAwLjEyNjI1LCAwLjEwMzc1LCAwLjA5NSIsIFwKLSAgICAgICAgICAiMC4xODYyNSwgMC4xNzUsIDAuMTYyNSwgMC4xNDM3NSwgMC4xMzc1LCAwLjExNSwgMC4xMDYyNSIsIFwKLSAgICAgICAgICAiMC4yMDUsIDAuMTg3NSwgMC4xNzUsIDAuMTYyNSwgMC4xNSwgMC4xMzM3NSwgMC4xMTg3NSIsIFwKLSAgICAgICAgICAiMC4yMTc1LCAwLjIwNjI1LCAwLjE4NzUsIDAuMTc1LCAwLjE2MjUsIDAuMTQ2MjUsIDAuMTMxMjUiLCBcCi0gICAgICAgICAgIjAuMjMsIDAuMjE4NzUsIDAuMiwgMC4xODc1LCAwLjE3NSwgMC4xNTg3NSwgMC4xNDM3NSIsIFwKLSAgICAgICAgICAiMC4yNTI1LCAwLjI0MTI1LCAwLjIyMjUsIDAuMjEsIDAuMTk3NSwgMC4xODEyNSwgMC4xNjYyNSIsIFwKLSAgICAgICAgICAiMC4yNjc1LCAwLjI1NjI1LCAwLjI0Mzc1LCAwLjIyNSwgMC4yMTI1LCAwLjE5NjI1LCAwLjE4NzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDYyNSwgMC4wOTUsIDAuMDc2MjUsIDAuMDU3NSwgMC4wNDUsIDAuMDIyNSwgMC4wMDEyNSIsIFwKLSAgICAgICAgICAiMC4xMTc1LCAwLjEwNjI1LCAwLjA4NzUsIDAuMDY4NzUsIDAuMDU2MjUsIDAuMDMzNzUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4xMywgMC4xMTg3NSwgMC4xLCAwLjA4MTI1LCAwLjA2ODc1LCAwLjA0NjI1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiMC4xNDI1LCAwLjEzMTI1LCAwLjExMjUsIDAuMDkzNzUsIDAuMDgxMjUsIDAuMDU4NzUsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiMC4xNTUsIDAuMTQzNzUsIDAuMTI1LCAwLjEwNjI1LCAwLjA5Mzc1LCAwLjA3MTI1LCAwLjA1IiwgXAotICAgICAgICAgICIwLjE3MTI1LCAwLjE2LCAwLjE0MTI1LCAwLjEyODc1LCAwLjExLCAwLjA4NzUsIDAuMDY2MjUiLCBcCi0gICAgICAgICAgIjAuMTg2MjUsIDAuMTc1LCAwLjE2MjUsIDAuMTQzNzUsIDAuMTMxMjUsIDAuMTAyNSwgMC4wODEyNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IFNFREZGWDQgKgotICogLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoU0VERkZYNCkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjYzMjkxOTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBmZiAoTjMwLE5FVDUzNikgewotICAgIG5leHRfc3RhdGUgOiAiKChTRSBTSSkgKyAoIVNFICgoRSBEKSArICghRSAoISghTjMwKSkpKSkpIjsKLSAgICBjbG9ja2VkX29uIDogIkNLIjsKLSAgfQotICBwaW4oQ0spICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDU1MDY3OTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA1NTA0MjU7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNTUwNjc5OwotICAgIGNsb2NrIDogdHJ1ZTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDI1MzksIDAuMDAyNTI1LCAwLjAwMjUxMywgMC4wMDI1MDUsIDAuMDAyNSwgMC4wMDI0OTQsIDAuMDAyNDkzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA0NjUzLCAwLjAwNDY0MywgMC4wMDQ2MzQsIDAuMDA0NjI4LCAwLjAwNDYyNywgMC4wMDQ2MjgsIDAuMDA0NjI4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRCYhRSZTRSYhU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX0VfRVFfMF9BTl9TRV9FUV8xX0FOX1NJX0VRXzAgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4zMjUzMzUsIDAuMzM3MDQxLCAwLjM1MjQzMSwgMC4zNjc4ODksIDAuMzgyOTQxLCAwLjQwNzMxMywgMC40Mjc5MjIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjIwMzg4NywgMC4yMTU0NzMsIDAuMjMwNDYzLCAwLjI0NTMxMywgMC4yNTk0MzEsIDAuMjgyNDE0LCAwLjMwMDc5OSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjI2NzcxOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYyNDU5NjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2MjY3NzE7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyNzcyLCAwLjAwMjc2MiwgMC4wMDI3NTcsIDAuMDAyNzU1LCAwLjAwMjc1MywgMC4wMDI3NSwgMC4wMDI3NDkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDUzMjgsIDAuMDA1MzI0LCAwLjAwNTMyMSwgMC4wMDUzMiwgMC4wMDUzMTksIDAuMDA1MzE4LCAwLjAwNTMxNyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJFJiFTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJFX0VRXzFfQU5fU0VfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4yNSwgLTAuMjQ1LCAtMC4yMzI1LCAtMC4yMjYyNSwgLTAuMjIsIC0wLjIwMzc1LCAtMC4xOTUiLCBcCi0gICAgICAgICAgIi0wLjI2MTI1LCAtMC4yNTYyNSwgLTAuMjQzNzUsIC0wLjIzNzUsIC0wLjIzMTI1LCAtMC4yMTUsIC0wLjIwNjI1IiwgXAotICAgICAgICAgICItMC4yOCwgLTAuMjY4NzUsIC0wLjI2MjUsIC0wLjI1LCAtMC4yNDM3NSwgLTAuMjMzNzUsIC0wLjIxODc1IiwgXAotICAgICAgICAgICItMC4yOTI1LCAtMC4yODEyNSwgLTAuMjc1LCAtMC4yNjI1LCAtMC4yNTYyNSwgLTAuMjQ2MjUsIC0wLjIzNzUiLCBcCi0gICAgICAgICAgIi0wLjMwNSwgLTAuMjkzNzUsIC0wLjI4NzUsIC0wLjI4MTI1LCAtMC4yNjg3NSwgLTAuMjU4NzUsIC0wLjI1IiwgXAotICAgICAgICAgICItMC4zMjc1LCAtMC4zMTYyNSwgLTAuMzEsIC0wLjI5NzUsIC0wLjI5MTI1LCAtMC4yODEyNSwgLTAuMjcyNSIsIFwKLSAgICAgICAgICAiLTAuMzQ4NzUsIC0wLjMzNzUsIC0wLjMyNSwgLTAuMzE4NzUsIC0wLjMxMjUsIC0wLjMwMjUsIC0wLjI4NzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wNTYyNSwgLTAuMDQ1LCAtMC4wMzI1LCAtMC4wMiwgLTAuMDEzNzUsIC0wLjAwMzc1LCAwLjAwNSIsIFwKLSAgICAgICAgICAiLTAuMDY3NSwgLTAuMDU2MjUsIC0wLjA0Mzc1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMTUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wOCwgLTAuMDY4NzUsIC0wLjA1NjI1LCAtMC4wNDM3NSwgLTAuMDQzNzUsIC0wLjAyNzUsIC0wLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDkyNSwgLTAuMDgxMjUsIC0wLjA2ODc1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjA0LCAtMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMTA1LCAtMC4wOTM3NSwgLTAuMDgxMjUsIC0wLjA2ODc1LCAtMC4wNjI1LCAtMC4wNTI1LCAtMC4wNDM3NSIsIFwKLSAgICAgICAgICAiLTAuMTIxMjUsIC0wLjExLCAtMC4xMDM3NSwgLTAuMDkxMjUsIC0wLjA4NSwgLTAuMDc1LCAtMC4wNjYyNSIsIFwKLSAgICAgICAgICAiLTAuMTM2MjUsIC0wLjEyNSwgLTAuMTEyNSwgLTAuMTA2MjUsIC0wLjEsIC0wLjA5LCAtMC4wODEyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiRSYhU0UiOwotICAgICAgc2RmX2NvbmQgOiAiRV9FUV8xX0FOX1NFX0VRXzAgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzg3NSwgMC4zNzYyNSwgMC4zNTc1LCAwLjM0NSwgMC4zMjYyNSwgMC4zMSwgMC4yOTUiLCBcCi0gICAgICAgICAgIjAuMzk4NzUsIDAuMzg3NSwgMC4zNjg3NSwgMC4zNTYyNSwgMC4zMzc1LCAwLjMyMTI1LCAwLjMwNjI1IiwgXAotICAgICAgICAgICIwLjQxMTI1LCAwLjQsIDAuMzg3NSwgMC4zNjg3NSwgMC4zNTYyNSwgMC4zMzM3NSwgMC4zMTg3NSIsIFwKLSAgICAgICAgICAiMC40MywgMC40MTI1LCAwLjQsIDAuMzgxMjUsIDAuMzY4NzUsIDAuMzQ2MjUsIDAuMzMxMjUiLCBcCi0gICAgICAgICAgIjAuNDQyNSwgMC40MzEyNSwgMC40MTI1LCAwLjM5Mzc1LCAwLjM4MTI1LCAwLjM2NSwgMC4zNSIsIFwKLSAgICAgICAgICAiMC40NjUsIDAuNDQ3NSwgMC40MzUsIDAuNDE2MjUsIDAuNDAzNzUsIDAuMzg3NSwgMC4zNzI1IiwgXAotICAgICAgICAgICIwLjQ4LCAwLjQ2ODc1LCAwLjQ1NjI1LCAwLjQzNzUsIDAuNDI1LCAwLjQwMjUsIDAuMzg3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI4NzUsIDAuMjc2MjUsIDAuMjU3NSwgMC4yNDUsIDAuMjI2MjUsIDAuMjAzNzUsIDAuMTgyNSIsIFwKLSAgICAgICAgICAiMC4yOTg3NSwgMC4yODc1LCAwLjI2ODc1LCAwLjI1NjI1LCAwLjIzNzUsIDAuMjE1LCAwLjE5Mzc1IiwgXAotICAgICAgICAgICIwLjMxMTI1LCAwLjMsIDAuMjgxMjUsIDAuMjY4NzUsIDAuMjUsIDAuMjI3NSwgMC4yMDYyNSIsIFwKLSAgICAgICAgICAiMC4zMjM3NSwgMC4zMTI1LCAwLjI5Mzc1LCAwLjI4MTI1LCAwLjI2MjUsIDAuMjQsIDAuMjE4NzUiLCBcCi0gICAgICAgICAgIjAuMzM2MjUsIDAuMzI1LCAwLjMwNjI1LCAwLjI5Mzc1LCAwLjI3NSwgMC4yNTI1LCAwLjIzMTI1IiwgXAotICAgICAgICAgICIwLjM1MjUsIDAuMzQxMjUsIDAuMzI4NzUsIDAuMzEsIDAuMjk3NSwgMC4yNjg3NSwgMC4yNDc1IiwgXAotICAgICAgICAgICIwLjM3Mzc1LCAwLjM2MjUsIDAuMzQzNzUsIDAuMzMxMjUsIDAuMzEyNSwgMC4yOSwgMC4yNjg3NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxMjE5NzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDEyMTkyNDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDEyMTk3OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNTEzNSwgMC4wMDUxMjIsIDAuMDA1MTE0LCAwLjAwNTExLCAwLjAwNTExLCAwLjAwNTEwOCwgMC4wMDUxMSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNjE1MiwgMC4wMDYxMzUsIDAuMDA2MTI1LCAwLjAwNjExOSwgMC4wMDYxMTQsIDAuMDA2MTEsIDAuMDA2MTA4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJTRSA9PSAxJ2IwIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4yNjI1LCAtMC4yNTEyNSwgLTAuMjMyNSwgLTAuMjIsIC0wLjIwMTI1LCAtMC4xNzg3NSwgLTAuMTU3NSIsIFwKLSAgICAgICAgICAiLTAuMjczNzUsIC0wLjI2MjUsIC0wLjI0Mzc1LCAtMC4yMzEyNSwgLTAuMjEyNSwgLTAuMTksIC0wLjE2ODc1IiwgXAotICAgICAgICAgICItMC4yODYyNSwgLTAuMjc1LCAtMC4yNjI1LCAtMC4yNDM3NSwgLTAuMjMxMjUsIC0wLjIwODc1LCAtMC4xODc1IiwgXAotICAgICAgICAgICItMC4zMDUsIC0wLjI5Mzc1LCAtMC4yNzUsIC0wLjI2MjUsIC0wLjI0Mzc1LCAtMC4yMjEyNSwgLTAuMiIsIFwKLSAgICAgICAgICAiLTAuMzE3NSwgLTAuMzA2MjUsIC0wLjI4NzUsIC0wLjI3NSwgLTAuMjU2MjUsIC0wLjIzMzc1LCAtMC4yMTI1IiwgXAotICAgICAgICAgICItMC4zNCwgLTAuMzI4NzUsIC0wLjMxLCAtMC4yOTc1LCAtMC4yNzg3NSwgLTAuMjU2MjUsIC0wLjIzNSIsIFwKLSAgICAgICAgICAiLTAuMzU1LCAtMC4zNDM3NSwgLTAuMzI1LCAtMC4zMTI1LCAtMC4yOTM3NSwgLTAuMjcxMjUsIC0wLjI1NjI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDQzNzUsIC0wLjAzMjUsIC0wLjAyLCAtMC4wMDc1LCAtMC4wMDEyNSwgMC4wMDg3NSwgMC4wMTc1IiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA0Mzc1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwMjUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA2NzUsIC0wLjA1NjI1LCAtMC4wNDM3NSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDE1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDgsIC0wLjA2ODc1LCAtMC4wNTYyNSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAyNzUsIC0wLjAxODc1IiwgXAotICAgICAgICAgICItMC4wOTI1LCAtMC4wODEyNSwgLTAuMDY4NzUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDQsIC0wLjAzMTI1IiwgXAotICAgICAgICAgICItMC4xMDg3NSwgLTAuMDk3NSwgLTAuMDg1LCAtMC4wNzI1LCAtMC4wNzI1LCAtMC4wNTYyNSwgLTAuMDUzNzUiLCBcCi0gICAgICAgICAgIi0wLjEyMzc1LCAtMC4xMTI1LCAtMC4xLCAtMC4wODc1LCAtMC4wODEyNSwgLTAuMDcxMjUsIC0wLjA2ODc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhU0UiOwotICAgICAgc2RmX2NvbmQgOiAiU0UgPT0gMSdiMCI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzc1LCAwLjM2Mzc1LCAwLjM0NSwgMC4zMzI1LCAwLjMxMzc1LCAwLjI5NzUsIDAuMjgyNSIsIFwKLSAgICAgICAgICAiMC4zODYyNSwgMC4zNzUsIDAuMzU2MjUsIDAuMzM3NSwgMC4zMjUsIDAuMzA4NzUsIDAuMjkzNzUiLCBcCi0gICAgICAgICAgIjAuMzk4NzUsIDAuMzg3NSwgMC4zNjg3NSwgMC4zNTYyNSwgMC4zMzc1LCAwLjMyMTI1LCAwLjMwNjI1IiwgXAotICAgICAgICAgICIwLjQxMTI1LCAwLjQsIDAuMzg3NSwgMC4zNjg3NSwgMC4zNTYyNSwgMC4zMzM3NSwgMC4zMTg3NSIsIFwKLSAgICAgICAgICAiMC40MywgMC40MTI1LCAwLjQsIDAuMzgxMjUsIDAuMzY4NzUsIDAuMzQ2MjUsIDAuMzMxMjUiLCBcCi0gICAgICAgICAgIjAuNDQ2MjUsIDAuNDM1LCAwLjQyMjUsIDAuNDAzNzUsIDAuMzkxMjUsIDAuMzY4NzUsIDAuMzUzNzUiLCBcCi0gICAgICAgICAgIjAuNDY3NSwgMC40NTYyNSwgMC40Mzc1LCAwLjQyNSwgMC40MDYyNSwgMC4zOSwgMC4zNzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMDYyNSwgMC4yOTUsIDAuMjgyNSwgMC4yNzYyNSwgMC4yNjM3NSwgMC4yNTM3NSwgMC4yMzg3NSIsIFwKLSAgICAgICAgICAiMC4zMTc1LCAwLjMwNjI1LCAwLjI5Mzc1LCAwLjI4NzUsIDAuMjc1LCAwLjI2NSwgMC4yNSIsIFwKLSAgICAgICAgICAiMC4zMywgMC4zMTg3NSwgMC4zMDYyNSwgMC4zLCAwLjI5Mzc1LCAwLjI3NzUsIDAuMjY4NzUiLCBcCi0gICAgICAgICAgIjAuMzQyNSwgMC4zMzEyNSwgMC4zMjUsIDAuMzEyNSwgMC4zMDYyNSwgMC4yOSwgMC4yODEyNSIsIFwKLSAgICAgICAgICAiMC4zNTUsIDAuMzUsIDAuMzM3NSwgMC4zMjUsIDAuMzE4NzUsIDAuMzAyNSwgMC4yOTM3NSIsIFwKLSAgICAgICAgICAiMC4zNzc1LCAwLjM2NjI1LCAwLjM1Mzc1LCAwLjM0NzUsIDAuMzM1LCAwLjMyNSwgMC4zMSIsIFwKLSAgICAgICAgICAiMC4zOTI1LCAwLjM4MTI1LCAwLjM2ODc1LCAwLjM1NjI1LCAwLjM1LCAwLjMzMzc1LCAwLjMyNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjUyNjM3MjsKLSAgICBmdW5jdGlvbiA6ICJOMzAiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5vbl91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcmlzaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjM2ODY4LCAwLjM2NDgyOSwgMC40OTA3OTMsIDAuNTgwOTU1LCAwLjcyNDMwOCwgMC44NTAwNDUsIDEuMDI4ODciLCBcCi0gICAgICAgICAgIjAuMjQ4NTIyLCAwLjM3NjUzNiwgMC41MDI0NTYsIDAuNTkyNDI2LCAwLjczNTkzLCAwLjg2MTcsIDEuMDQwNTQiLCBcCi0gICAgICAgICAgIjAuMjYzOTE1LCAwLjM5MTg4MywgMC41MTc0NDcsIDAuNjA3NzA3LCAwLjc1MTMyNSwgMC44NzY5NDMsIDEuMDU2NTEiLCBcCi0gICAgICAgICAgIjAuMjc5MjkxLCAwLjQwNzI1NCwgMC41MzMyMTgsIDAuNjIzNCwgMC43NjY3MTYsIDAuODkyNDY4LCAxLjA3MTMiLCBcCi0gICAgICAgICAgIjAuMjk0MjUyLCAwLjQyMjIyNywgMC41NDgxODksIDAuNjM4MzY1LCAwLjc4MTcwNiwgMC45MDc0MjcsIDEuMDg2MjUiLCBcCi0gICAgICAgICAgIjAuMzE4NDcyLCAwLjQ0NjQ0MSwgMC41NzIwMDUsIDAuNjYyMjY1LCAwLjgwNTg3MiwgMC45MzA3MzQsIDEuMTExMDYiLCBcCi0gICAgICAgICAgIjAuMzM4NzMyLCAwLjQ2NjcwMSwgMC41OTIyMDIsIDAuNjgxMzU2LCAwLjgyNjEwOCwgMC45NTA3NDUsIDEuMTMxNCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1ODEwMSwgMC4zMDkxODQsIDAuNTY0ODU4LCAwLjc0ODE3MywgMS4wNDU1NSwgMS4yOTkyMSwgMS42Njk2NCIsIFwKLSAgICAgICAgICAiMC4wNTgyMzYsIDAuMzA2MDYxLCAwLjU2NTA3NiwgMC43NSwgMS4wNDQxNywgMS4zMDEwOCwgMS42Njg2NCIsIFwKLSAgICAgICAgICAiMC4wNTgzMTMsIDAuMzA2MDY0LCAwLjU2NTUzMywgMC43NDk1ODgsIDEuMDQzODgsIDEuMzAxOTksIDEuNjY5NTEiLCBcCi0gICAgICAgICAgIjAuMDU4MjM5LCAwLjMwNjA1NSwgMC41NjQ4NTgsIDAuNzQ3ODU2LCAxLjA0NDc4LCAxLjMwMjE2LCAxLjY2ODE1IiwgXAotICAgICAgICAgICIwLjA1ODM5NCwgMC4zMDkxOCwgMC41NjQ4NTEsIDAuNzQ4MDA0LCAxLjA0NTk1LCAxLjMwMTIyLCAxLjY3MDk1IiwgXAotICAgICAgICAgICIwLjA1ODMyMSwgMC4zMDYwNjQsIDAuNTY1NzEyLCAwLjc0OTU5MywgMS4wNDM4OCwgMS4zMDQwOCwgMS42Njk1MSIsIFwKLSAgICAgICAgICAiMC4wNTg0NjksIDAuMzA2MDk3LCAwLjU2NjYyMSwgMC43NDkwNiwgMS4wNDM5LCAxLjI5OTgzLCAxLjY2OTYiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yNjUyMjIsIDAuNDEzMTU3LCAwLjU1OTI2OSwgMC42NjI4ODgsIDAuODI5ODQzLCAwLjk3NjM3NSwgMS4xODQ2NCIsIFwKLSAgICAgICAgICAiMC4yNzY4ODUsIDAuNDI0ODYyLCAwLjU3MDk4MywgMC42NzQ3OCwgMC44NDE1NDQsIDAuOTg3MDUsIDEuMTk2MTkiLCBcCi0gICAgICAgICAgIjAuMjkyMzE3LCAwLjQ0MDI2NiwgMC41ODYzODksIDAuNjg5OTk3LCAwLjg1Njk1OSwgMS4wMDM0NiwgMS4yMTI2NSIsIFwKLSAgICAgICAgICAiMC4zMDc3ODEsIDAuNDU1NzExLCAwLjYwMTkxMSwgMC43MDU0NDEsIDAuODcyMzk4LCAxLjAxODkxLCAxLjIyNzE4IiwgXAotICAgICAgICAgICIwLjMyMjgyNiwgMC40NzA4NzMsIDAuNjE2OTc4LCAwLjcyMDUwMywgMC44ODc0NjMsIDEuMDMzMzksIDEuMjQyMjYiLCBcCi0gICAgICAgICAgIjAuMzQ3MTYyLCAwLjQ5NTEyMiwgMC42NDEyNiwgMC43NDUwMDUsIDAuOTExODAzLCAxLjA1NzI3LCAxLjI2NzQ5IiwgXAotICAgICAgICAgICIwLjM2NzgwOCwgMC41MTU4MzYsIDAuNjYxODcyLCAwLjc2NTY3MywgMC45MzI0MjMsIDEuMDc4MzYsIDEuMjg3MjMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjE5ODQsIDAuMzQ1NzIxLCAwLjYzNDMxMywgMC44NDAzODUsIDEuMTczMDgsIDEuNDY0MDUsIDEuODc2MzMiLCBcCi0gICAgICAgICAgIjAuMDYxODQ5LCAwLjM0NTczOSwgMC42MzQzMzEsIDAuODQxNDcsIDEuMTczMTcsIDEuNDYzNDMsIDEuODc3MzQiLCBcCi0gICAgICAgICAgIjAuMDYxNywgMC4zNDU3LCAwLjYzNDMyMiwgMC44NDA2OTUsIDEuMTczMTUsIDEuNDYzODMsIDEuODc4OTgiLCBcCi0gICAgICAgICAgIjAuMDYyMDE2LCAwLjM0NTcxNSwgMC42MzQzMiwgMC44NDA3MDUsIDEuMTczMTIsIDEuNDYzOSwgMS44NzY0OCIsIFwKLSAgICAgICAgICAiMC4wNjE5MDksIDAuMzQ1NzAyLCAwLjYzNDI5MSwgMC44NDA3NjYsIDEuMTczMTIsIDEuNDY0MDcsIDEuODc2OTYiLCBcCi0gICAgICAgICAgIjAuMDYxODQ2LCAwLjM0NTczMSwgMC42MzQzMjUsIDAuODQxNDksIDEuMTczMDYsIDEuNDYzNDgsIDEuODc4OTQiLCBcCi0gICAgICAgICAgIjAuMDYxOTI3LCAwLjM0NTcxMiwgMC42MzQzMzIsIDAuODQwNTI0LCAxLjE3MzAyLCAxLjQ2NDA4LCAxLjg3NjYzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA3MDQ4LCAwLjAwNzE3NiwgMC4wMDcxOTEsIDAuMDA3MTk2LCAwLjAwNzIsIDAuMDA3MjAyLCAwLjAwNzIwMyIsIFwKLSAgICAgICAgICAiMC4wMDcwNDEsIDAuMDA3MTY4LCAwLjAwNzE4NCwgMC4wMDcxODksIDAuMDA3MTkyLCAwLjAwNzE5NSwgMC4wMDcxOTYiLCBcCi0gICAgICAgICAgIjAuMDA3MDM0LCAwLjAwNzE2MiwgMC4wMDcxNzcsIDAuMDA3MTgzLCAwLjAwNzE4NSwgMC4wMDcxODgsIDAuMDA3MTg5IiwgXAotICAgICAgICAgICIwLjAwNzAzLCAwLjAwNzE1NywgMC4wMDcxNzMsIDAuMDA3MTc4LCAwLjAwNzE4MSwgMC4wMDcxODMsIDAuMDA3MTg1IiwgXAotICAgICAgICAgICIwLjAwNzAyNCwgMC4wMDcxNTEsIDAuMDA3MTY3LCAwLjAwNzE3MiwgMC4wMDcxNzYsIDAuMDA3MTc3LCAwLjAwNzE4IiwgXAotICAgICAgICAgICIwLjAwNzAyLCAwLjAwNzE0OCwgMC4wMDcxNjMsIDAuMDA3MTY4LCAwLjAwNzE3MiwgMC4wMDcxNzQsIDAuMDA3MTc1IiwgXAotICAgICAgICAgICIwLjAwNzAxOCwgMC4wMDcxNDUsIDAuMDA3MTYxLCAwLjAwNzE2NSwgMC4wMDcxNjksIDAuMDA3MTcxLCAwLjAwNzE3MyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA3Mjg0LCAwLjAwNzQxMiwgMC4wMDc0MjgsIDAuMDA3NDMzLCAwLjAwNzQzNywgMC4wMDc0MzksIDAuMDA3NDQxIiwgXAotICAgICAgICAgICIwLjAwNzI3OCwgMC4wMDc0MDYsIDAuMDA3NDIyLCAwLjAwNzQyNywgMC4wMDc0MzEsIDAuMDA3NDMyLCAwLjAwNzQzNSIsIFwKLSAgICAgICAgICAiMC4wMDcyNjksIDAuMDA3Mzk5LCAwLjAwNzQxNSwgMC4wMDc0MiwgMC4wMDc0MjQsIDAuMDA3NDI2LCAwLjAwNzQyOCIsIFwKLSAgICAgICAgICAiMC4wMDcyNywgMC4wMDczOTYsIDAuMDA3NDEyLCAwLjAwNzQxNywgMC4wMDc0MjEsIDAuMDA3NDIzLCAwLjAwNzQyNCIsIFwKLSAgICAgICAgICAiMC4wMDcyNjUsIDAuMDA3Mzk0LCAwLjAwNzQxLCAwLjAwNzQxNSwgMC4wMDc0MiwgMC4wMDc0MjEsIDAuMDA3NDIzIiwgXAotICAgICAgICAgICIwLjAwNzI2NiwgMC4wMDczOTQsIDAuMDA3NDEsIDAuMDA3NDE1LCAwLjAwNzQxOSwgMC4wMDc0MjEsIDAuMDA3NDIzIiwgXAotICAgICAgICAgICIwLjAwNzI2OSwgMC4wMDczOTcsIDAuMDA3NDEzLCAwLjAwNzQxOCwgMC4wMDc0MjIsIDAuMDA3NDI0LCAwLjAwNzQyNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUU4pICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC41MjE5ODg7Ci0gICAgZnVuY3Rpb24gOiAiTkVUNTM2IjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBub25fdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJpc2luZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMyNTMzNSwgMC40NTM5NDMsIDAuNTgxMzE3LCAwLjY3MjM0MSwgMC44MTgwMzgsIDAuOTQ1NTE3LCAxLjEyNzYzIiwgXAotICAgICAgICAgICIwLjMzNzA0MSwgMC40NjU2NDgsIDAuNTkzMDI1LCAwLjY4NDA2NSwgMC44Mjk3NDEsIDAuOTU3MjI4LCAxLjEzOTQiLCBcCi0gICAgICAgICAgIjAuMzUyNDMxLCAwLjQ4MTAzMSwgMC42MDg0MDksIDAuNjk5NDM2LCAwLjg0NTEyMiwgMC45NzI2MjcsIDEuMTU0NzMiLCBcCi0gICAgICAgICAgIjAuMzY3ODg5LCAwLjQ5NjQ5NCwgMC42MjM4NjIsIDAuNzE0ODkxLCAwLjg2MDU3NywgMC45ODgwNjUsIDEuMTcwMTkiLCBcCi0gICAgICAgICAgIjAuMzgyOTQxLCAwLjUxMTU0MywgMC42Mzg5MTgsIDAuNzI5OTYyLCAwLjg3NTY4MiwgMS4wMDMxMiwgMS4xODUyMyIsIFwKLSAgICAgICAgICAiMC40MDczMTMsIDAuNTM1OTIxLCAwLjY2MzI4OCwgMC43NTQzMjEsIDAuOTAwMDA5LCAxLjAyNzU3LCAxLjIwOTYyIiwgXAotICAgICAgICAgICIwLjQyNzkyMywgMC41NTY1NDUsIDAuNjgzOTE0LCAwLjc3NDk0MywgMC45MjA2MzcsIDEuMDQ4MTIsIDEuMjMwMjQiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTk5MTMsIDAuMzExOTQzLCAwLjU3MTc1MiwgMC43NTY2MjUsIDEuMDU2MTEsIDEuMzE3MDksIDEuNjg4NTciLCBcCi0gICAgICAgICAgIjAuMDU5ODg5LCAwLjMxMTkzMywgMC41NzE3NDIsIDAuNzU3OTUyLCAxLjA1NjEzLCAxLjMxNDczLCAxLjY4ODA0IiwgXAotICAgICAgICAgICIwLjA1OTkxMywgMC4zMTE5MjUsIDAuNTcxNzUzLCAwLjc1NzMzNiwgMS4wNTYxNCwgMS4zMTY5NSwgMS42ODk4MSIsIFwKLSAgICAgICAgICAiMC4wNTk5MTUsIDAuMzExOTMsIDAuNTcxNzUyLCAwLjc1NzMxNiwgMS4wNTYxMiwgMS4zMTY5OSwgMS42ODg0NSIsIFwKLSAgICAgICAgICAiMC4wNTk5MTksIDAuMzExOTIzLCAwLjU3MTcyNCwgMC43NTY1OTUsIDEuMDU2MTIsIDEuMzE2NTUsIDEuNjg4NTMiLCBcCi0gICAgICAgICAgIjAuMDU5ODg5LCAwLjMxMTkzNSwgMC41NzE3NDYsIDAuNzU3OTcyLCAxLjA1NjA5LCAxLjMxNDY5LCAxLjY4OTc2IiwgXAotICAgICAgICAgICIwLjA1OTkxNywgMC4zMTE4NTUsIDAuNTcxNzUxLCAwLjc1NjU0NiwgMS4wNTYwOCwgMS4zMTYzNSwgMS42ODg1MiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMwMDk1NiwgMC40NDc0MywgMC41OTMxNzMsIDAuNjk3MzE2LCAwLjg2Mzk5LCAxLjAwOTksIDEuMjE4MiIsIFwKLSAgICAgICAgICAiMC4zMTI2MDUsIDAuNDU5MDg2LCAwLjYwNDgyNSwgMC43MDg5NzksIDAuODc1NjY3LCAxLjAyMTQ5LCAxLjIyOTg4IiwgXAotICAgICAgICAgICIwLjMyODAwMiwgMC40NzQ0ODUsIDAuNjIwMjIzLCAwLjcyNDM3NywgMC44OTEwNjQsIDEuMDM2OTUsIDEuMjQ1MjYiLCBcCi0gICAgICAgICAgIjAuMzQzMzcyLCAwLjQ4OTg1MywgMC42MzU1OTIsIDAuNzM5NzQ1LCAwLjkwNjQzNiwgMS4wNTIyNSwgMS4yNjA2NiIsIFwKLSAgICAgICAgICAiMC4zNTgzNCwgMC41MDQ4MTksIDAuNjUwNTY0LCAwLjc1NDcwOSwgMC45MjEzODMsIDEuMDY3MywgMS4yNzU1NiIsIFwKLSAgICAgICAgICAiMC4zODI1NTksIDAuNTI5MDQzLCAwLjY3NDc4MSwgMC43Nzg5MzUsIDAuOTQ1NjIyLCAxLjA5MTUxLCAxLjI5OTgyIiwgXAotICAgICAgICAgICIwLjQwMjgxOCwgMC41NDkzMDIsIDAuNjk1MDQxLCAwLjc5OTE4NiwgMC45NjU4OCwgMS4xMTE3NywgMS4zMjAwOCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2Mjk3LCAwLjM0NjEyNSwgMC42MzU2MDQsIDAuODQyNjAxLCAxLjE3NDgzLCAxLjQ2NDUzLCAxLjg4MDEzIiwgXAotICAgICAgICAgICIwLjA2Mjk4NSwgMC4zNDYwMDMsIDAuNjM1Njc0LCAwLjg0Mjc5OSwgMS4xNzQ1MiwgMS40NjQ0LCAxLjg4MDIiLCBcCi0gICAgICAgICAgIjAuMDYyOTgzLCAwLjM0NTk4OSwgMC42MzU1MTUsIDAuODQyODc3LCAxLjE3NDQ1LCAxLjQ2NTAxLCAxLjg3OTM1IiwgXAotICAgICAgICAgICIwLjA2Mjk4NSwgMC4zNDYxMzMsIDAuNjM1NjQ4LCAwLjg0MjYxNSwgMS4xNzQ1NSwgMS40NjQ3LCAxLjg4MDA2IiwgXAotICAgICAgICAgICIwLjA2Mjk4NiwgMC4zNDYxNjEsIDAuNjM1NjAzLCAwLjg0MjU5MSwgMS4xNzQ2MSwgMS40NjQzOSwgMS44ODAwOCIsIFwKLSAgICAgICAgICAiMC4wNjI5ODMsIDAuMzQ1OTg5LCAwLjYzNTUzMSwgMC44NDI4NzgsIDEuMTc0NDYsIDEuNDY1MDEsIDEuODc5MzUiLCBcCi0gICAgICAgICAgIjAuMDYyOTgzLCAwLjM0NTk5OCwgMC42MzU1MjksIDAuODQyODk3LCAxLjE3NDQ0LCAxLjQ2NTE2LCAxLjg3OTQ2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA3Mjg0LCAwLjAwNzQxMiwgMC4wMDc0MjgsIDAuMDA3NDMzLCAwLjAwNzQzNywgMC4wMDc0MzksIDAuMDA3NDQxIiwgXAotICAgICAgICAgICIwLjAwNzI3OCwgMC4wMDc0MDYsIDAuMDA3NDIyLCAwLjAwNzQyNywgMC4wMDc0MzEsIDAuMDA3NDMyLCAwLjAwNzQzNSIsIFwKLSAgICAgICAgICAiMC4wMDcyNjksIDAuMDA3Mzk5LCAwLjAwNzQxNSwgMC4wMDc0MiwgMC4wMDc0MjQsIDAuMDA3NDI2LCAwLjAwNzQyOCIsIFwKLSAgICAgICAgICAiMC4wMDcyNywgMC4wMDczOTYsIDAuMDA3NDEyLCAwLjAwNzQxNywgMC4wMDc0MjEsIDAuMDA3NDIzLCAwLjAwNzQyNCIsIFwKLSAgICAgICAgICAiMC4wMDcyNjUsIDAuMDA3Mzk0LCAwLjAwNzQxLCAwLjAwNzQxNSwgMC4wMDc0MiwgMC4wMDc0MjEsIDAuMDA3NDIzIiwgXAotICAgICAgICAgICIwLjAwNzI2NiwgMC4wMDczOTQsIDAuMDA3NDEsIDAuMDA3NDE1LCAwLjAwNzQxOSwgMC4wMDc0MjEsIDAuMDA3NDIzIiwgXAotICAgICAgICAgICIwLjAwNzI2OSwgMC4wMDczOTcsIDAuMDA3NDEzLCAwLjAwNzQxOCwgMC4wMDc0MjIsIDAuMDA3NDI0LCAwLjAwNzQyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA3MDQ4LCAwLjAwNzE3NiwgMC4wMDcxOTEsIDAuMDA3MTk2LCAwLjAwNzIsIDAuMDA3MjAyLCAwLjAwNzIwMyIsIFwKLSAgICAgICAgICAiMC4wMDcwNDEsIDAuMDA3MTY4LCAwLjAwNzE4NCwgMC4wMDcxODksIDAuMDA3MTkyLCAwLjAwNzE5NSwgMC4wMDcxOTYiLCBcCi0gICAgICAgICAgIjAuMDA3MDM0LCAwLjAwNzE2MiwgMC4wMDcxNzcsIDAuMDA3MTgzLCAwLjAwNzE4NSwgMC4wMDcxODgsIDAuMDA3MTg5IiwgXAotICAgICAgICAgICIwLjAwNzAzLCAwLjAwNzE1NywgMC4wMDcxNzMsIDAuMDA3MTc4LCAwLjAwNzE4MSwgMC4wMDcxODMsIDAuMDA3MTg1IiwgXAotICAgICAgICAgICIwLjAwNzAyNCwgMC4wMDcxNTEsIDAuMDA3MTY3LCAwLjAwNzE3MiwgMC4wMDcxNzYsIDAuMDA3MTc3LCAwLjAwNzE4IiwgXAotICAgICAgICAgICIwLjAwNzAyLCAwLjAwNzE0OCwgMC4wMDcxNjMsIDAuMDA3MTY4LCAwLjAwNzE3MiwgMC4wMDcxNzQsIDAuMDA3MTc1IiwgXAotICAgICAgICAgICIwLjAwNzAxOCwgMC4wMDcxNDUsIDAuMDA3MTYxLCAwLjAwNzE2NSwgMC4wMDcxNjksIDAuMDA3MTcxLCAwLjAwNzE3MyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oU0UpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTEyMDE4OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTExOTU4OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTEyMDE4OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzc3MywgMC4wMDM3NjIsIDAuMDAzNzU3LCAwLjAwMzc1NywgMC4wMDM3NTgsIDAuMDAzNzU5LCAwLjAwMzc2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA0NzA5LCAwLjAwNDY5MywgMC4wMDQ2ODEsIDAuMDA0Njc1LCAwLjAwNDY2OSwgMC4wMDQ2NjMsIDAuMDA0NjYxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEJiFFJiFTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fRV9FUV8wX0FOX1NJX0VRXzAgPT0gMSdiMSI7Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMTU2MjUsIC0wLjE0NSwgLTAuMTM4NzUsIC0wLjEyNjI1LCAtMC4xMiwgLTAuMTEsIC0wLjA5NSIsIFwKLSAgICAgICAgICAiLTAuMTY3NSwgLTAuMTU2MjUsIC0wLjE1LCAtMC4xMzc1LCAtMC4xMzEyNSwgLTAuMTIxMjUsIC0wLjExMjUiLCBcCi0gICAgICAgICAgIi0wLjE4LCAtMC4xNjg3NSwgLTAuMTYyNSwgLTAuMTU2MjUsIC0wLjE0Mzc1LCAtMC4xMzM3NSwgLTAuMTI1IiwgXAotICAgICAgICAgICItMC4xOTI1LCAtMC4xODc1LCAtMC4xNzUsIC0wLjE2ODc1LCAtMC4xNjI1LCAtMC4xNDYyNSwgLTAuMTM3NSIsIFwKLSAgICAgICAgICAiLTAuMjExMjUsIC0wLjIsIC0wLjE4NzUsIC0wLjE4MTI1LCAtMC4xNzUsIC0wLjE1ODc1LCAtMC4xNTYyNSIsIFwKLSAgICAgICAgICAiLTAuMjI3NSwgLTAuMjIyNSwgLTAuMjEsIC0wLjIwMzc1LCAtMC4xOTc1LCAtMC4xODEyNSwgLTAuMTcyNSIsIFwKLSAgICAgICAgICAiLTAuMjQ4NzUsIC0wLjIzNzUsIC0wLjIyNSwgLTAuMjE4NzUsIC0wLjIxMjUsIC0wLjE5NjI1LCAtMC4xODc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEJiFFJlNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9FX0VRXzBfQU5fU0lfRVFfMSA9PSAxJ2IxIjsKLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMTI1LCAtMC4wMDEyNSwgMC4wMTEyNSwgMC4wMjM3NSwgMC4wMywgMC4wNDYyNSwgMC4wNjEyNSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxMjUsIDAsIDAuMDEyNSwgMC4wMTg3NSwgMC4wMzUsIDAuMDUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMjUsIC0wLjAxMjUsIDAsIDAuMDA2MjUsIDAuMDIyNSwgMC4wMzc1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDM3NSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAuMDEsIDAuMDI1IiwgXAotICAgICAgICAgICItMC4wNjEyNSwgLTAuMDUsIC0wLjAzNzUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAwMjUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDc3NSwgLTAuMDY2MjUsIC0wLjA2LCAtMC4wNDc1LCAtMC4wMzUsIC0wLjAxODc1LCAtMC4wMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDg2MjUsIC0wLjA4MTI1LCAtMC4wNjg3NSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wMzM3NSwgLTAuMDE4NzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUQmRSZTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fRV9FUV8xX0FOX1NJX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMTI1LCAtMC4xMTM3NSwgLTAuMTA3NSwgLTAuMDk1LCAtMC4wODI1LCAtMC4wNzI1LCAtMC4wNjM3NSIsIFwKLSAgICAgICAgICAiLTAuMTM2MjUsIC0wLjEyNSwgLTAuMTE4NzUsIC0wLjEwNjI1LCAtMC4wOTM3NSwgLTAuMDgzNzUsIC0wLjA2ODc1IiwgXAotICAgICAgICAgICItMC4xNDg3NSwgLTAuMTQzNzUsIC0wLjEzMTI1LCAtMC4xMTg3NSwgLTAuMTEyNSwgLTAuMDk2MjUsIC0wLjA4NzUiLCBcCi0gICAgICAgICAgIi0wLjE2MTI1LCAtMC4xNTYyNSwgLTAuMTQzNzUsIC0wLjEzMTI1LCAtMC4xMjUsIC0wLjEwODc1LCAtMC4xIiwgXAotICAgICAgICAgICItMC4xNzM3NSwgLTAuMTY4NzUsIC0wLjE1NjI1LCAtMC4xNDM3NSwgLTAuMTM3NSwgLTAuMTIxMjUsIC0wLjExMjUiLCBcCi0gICAgICAgICAgIi0wLjE5NjI1LCAtMC4xOTEyNSwgLTAuMTc4NzUsIC0wLjE2NjI1LCAtMC4xNiwgLTAuMTQzNzUsIC0wLjEzNSIsIFwKLSAgICAgICAgICAiLTAuMjE3NSwgLTAuMjA2MjUsIC0wLjIsIC0wLjE4NzUsIC0wLjE4MTI1LCAtMC4xNjUsIC0wLjE1NjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIkQmRSYhU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8xX0FOX0VfRVFfMV9BTl9TSV9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjA1LCAtMC4wMzg3NSwgLTAuMDI2MjUsIC0wLjAxMzc1LCAtMC4wMDEyNSwgMC4wMjEyNSwgMC4wMzYyNSIsIFwKLSAgICAgICAgICAiLTAuMDYxMjUsIC0wLjA1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAxMjUsIDAuMDAzNzUsIDAuMDI1IiwgXAotICAgICAgICAgICItMC4wOCwgLTAuMDY4NzUsIC0wLjA1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDA4NzUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA5MjUsIC0wLjA4MTI1LCAtMC4wNjg3NSwgLTAuMDU2MjUsIC0wLjA0Mzc1LCAtMC4wMjEyNSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjEwNSwgLTAuMDkzNzUsIC0wLjA4MTI1LCAtMC4wNjg3NSwgLTAuMDU2MjUsIC0wLjA0LCAtMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjEyNzUsIC0wLjExNjI1LCAtMC4xMDM3NSwgLTAuMDkxMjUsIC0wLjA3ODc1LCAtMC4wNjI1LCAtMC4wNDc1IiwgXAotICAgICAgICAgICItMC4xNDg3NSwgLTAuMTM3NSwgLTAuMTI1LCAtMC4xMTI1LCAtMC4xLCAtMC4wNzc1LCAtMC4wNjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRCYhRSYhU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX0VfRVFfMF9BTl9TSV9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE4MTI1LCAwLjE3LCAwLjE1NzUsIDAuMTM4NzUsIDAuMTIsIDAuMDk3NSwgMC4wNzYyNSIsIFwKLSAgICAgICAgICAiMC4xOTI1LCAwLjE4MTI1LCAwLjE2ODc1LCAwLjE1LCAwLjEzNzUsIDAuMTA4NzUsIDAuMDg3NSIsIFwKLSAgICAgICAgICAiMC4yMTEyNSwgMC4yLCAwLjE4MTI1LCAwLjE2ODc1LCAwLjE1LCAwLjEyNzUsIDAuMTA2MjUiLCBcCi0gICAgICAgICAgIjAuMjIzNzUsIDAuMjEyNSwgMC4yLCAwLjE4MTI1LCAwLjE2MjUsIDAuMTQsIDAuMTE4NzUiLCBcCi0gICAgICAgICAgIjAuMjQyNSwgMC4yMjUsIDAuMjEyNSwgMC4xOTM3NSwgMC4xODEyNSwgMC4xNTI1LCAwLjEzMTI1IiwgXAotICAgICAgICAgICIwLjI2NSwgMC4yNDc1LCAwLjIzNSwgMC4yMTYyNSwgMC4yMDM3NSwgMC4xNzUsIDAuMTUzNzUiLCBcCi0gICAgICAgICAgIjAuMjgsIDAuMjY4NzUsIDAuMjUsIDAuMjM3NSwgMC4yMTg3NSwgMC4xOTYyNSwgMC4xNzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEJiFFJlNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9FX0VRXzBfQU5fU0lfRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMTg3NSwgMC4yMDc1LCAwLjE4ODc1LCAwLjE3NjI1LCAwLjE2Mzc1LCAwLjE0NzUsIDAuMTMyNSIsIFwKLSAgICAgICAgICAiMC4yMywgMC4yMTI1LCAwLjIsIDAuMTg3NSwgMC4xNzUsIDAuMTUyNSwgMC4xNDM3NSIsIFwKLSAgICAgICAgICAiMC4yNDI1LCAwLjIzMTI1LCAwLjIxMjUsIDAuMiwgMC4xODc1LCAwLjE3MTI1LCAwLjE1NjI1IiwgXAotICAgICAgICAgICIwLjI1NSwgMC4yNDM3NSwgMC4yMjUsIDAuMjEyNSwgMC4yLCAwLjE4Mzc1LCAwLjE2ODc1IiwgXAotICAgICAgICAgICIwLjI2NzUsIDAuMjU2MjUsIDAuMjQzNzUsIDAuMjI1LCAwLjIxMjUsIDAuMTk2MjUsIDAuMTgxMjUiLCBcCi0gICAgICAgICAgIjAuMjksIDAuMjc4NzUsIDAuMjY2MjUsIDAuMjQ3NSwgMC4yMzUsIDAuMjE4NzUsIDAuMjAzNzUiLCBcCi0gICAgICAgICAgIjAuMzExMjUsIDAuMywgMC4yODEyNSwgMC4yNjg3NSwgMC4yNTYyNSwgMC4yNCwgMC4yMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEJkUmU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX0VfRVFfMV9BTl9TSV9FUV8xID09IDEnYjEiOwotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIsIDAuMTg4NzUsIDAuMTcsIDAuMTU3NSwgMC4xMzg3NSwgMC4xMTYyNSwgMC4wOTUiLCBcCi0gICAgICAgICAgIjAuMjExMjUsIDAuMTkzNzUsIDAuMTgxMjUsIDAuMTYyNSwgMC4xNSwgMC4xMjEyNSwgMC4xMDYyNSIsIFwKLSAgICAgICAgICAiMC4yMjM3NSwgMC4yMTI1LCAwLjE5Mzc1LCAwLjE4MTI1LCAwLjE2MjUsIDAuMTQsIDAuMTE4NzUiLCBcCi0gICAgICAgICAgIjAuMjM2MjUsIDAuMjI1LCAwLjIwNjI1LCAwLjE5Mzc1LCAwLjE3NSwgMC4xNTI1LCAwLjEzMTI1IiwgXAotICAgICAgICAgICIwLjI0ODc1LCAwLjIzNzUsIDAuMjE4NzUsIDAuMiwgMC4xODc1LCAwLjE2NSwgMC4xNDM3NSIsIFwKLSAgICAgICAgICAiMC4yNjUsIDAuMjUzNzUsIDAuMjQxMjUsIDAuMjIyNSwgMC4yMDM3NSwgMC4xODEyNSwgMC4xNiIsIFwKLSAgICAgICAgICAiMC4yODYyNSwgMC4yNjg3NSwgMC4yNTYyNSwgMC4yMzc1LCAwLjIyNSwgMC4xOTYyNSwgMC4xNzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIkQmRSYhU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8xX0FOX0VfRVFfMV9BTl9TSV9FUV8wID09IDEnYjEiOwotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI4NzUsIDAuMjc2MjUsIDAuMjU3NSwgMC4yNDUsIDAuMjI2MjUsIDAuMjEsIDAuMTk1IiwgXAotICAgICAgICAgICIwLjI5ODc1LCAwLjI4NzUsIDAuMjY4NzUsIDAuMjU2MjUsIDAuMjM3NSwgMC4yMjEyNSwgMC4yMDYyNSIsIFwKLSAgICAgICAgICAiMC4zMTc1LCAwLjMsIDAuMjg3NSwgMC4yNjg3NSwgMC4yNTYyNSwgMC4yMzM3NSwgMC4yMTg3NSIsIFwKLSAgICAgICAgICAiMC4zMywgMC4zMTg3NSwgMC4zLCAwLjI4MTI1LCAwLjI2ODc1LCAwLjI1MjUsIDAuMjM3NSIsIFwKLSAgICAgICAgICAiMC4zNDI1LCAwLjMzMTI1LCAwLjMxMjUsIDAuMywgMC4yODEyNSwgMC4yNjUsIDAuMjUiLCBcCi0gICAgICAgICAgIjAuMzY1LCAwLjM0NzUsIDAuMzM1LCAwLjMxNjI1LCAwLjMwMzc1LCAwLjI4NzUsIDAuMjcyNSIsIFwKLSAgICAgICAgICAiMC4zOCwgMC4zNjg3NSwgMC4zNSwgMC4zMzc1LCAwLjMxODc1LCAwLjMwMjUsIDAuMjg3NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oU0kpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDU3NDU2MzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA1NzMwMzQ7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNTc0NTYzOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjIxNSwgMC4wMDIyMDYsIDAuMDAyMjAxLCAwLjAwMjE5OCwgMC4wMDIxOTYsIDAuMDAyMTkyLCAwLjAwMjE5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzOTM1LCAwLjAwMzkzLCAwLjAwMzkyOCwgMC4wMDM5MjYsIDAuMDAzOTI1LCAwLjAwMzkyMywgMC4wMDM5MjIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiU0UiOwotICAgICAgc2RmX2NvbmQgOiAiU0UgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMTM3NSwgLTAuMTMyNSwgLTAuMTIsIC0wLjEwNzUsIC0wLjEwMTI1LCAtMC4wODUsIC0wLjA3NjI1IiwgXAotICAgICAgICAgICItMC4xNDg3NSwgLTAuMTQzNzUsIC0wLjEzMTI1LCAtMC4xMTg3NSwgLTAuMTEyNSwgLTAuMTAyNSwgLTAuMDg3NSIsIFwKLSAgICAgICAgICAiLTAuMTY3NSwgLTAuMTU2MjUsIC0wLjE0Mzc1LCAtMC4xMzc1LCAtMC4xMjUsIC0wLjExNSwgLTAuMSIsIFwKLSAgICAgICAgICAiLTAuMTgsIC0wLjE2ODc1LCAtMC4xNjI1LCAtMC4xNSwgLTAuMTQzNzUsIC0wLjEyNzUsIC0wLjExODc1IiwgXAotICAgICAgICAgICItMC4xOTI1LCAtMC4xODEyNSwgLTAuMTc1LCAtMC4xNjI1LCAtMC4xNTYyNSwgLTAuMTQsIC0wLjEzMTI1IiwgXAotICAgICAgICAgICItMC4yMTUsIC0wLjIwMzc1LCAtMC4xOTc1LCAtMC4xODUsIC0wLjE3ODc1LCAtMC4xNjI1LCAtMC4xNTM3NSIsIFwKLSAgICAgICAgICAiLTAuMjM2MjUsIC0wLjIyNSwgLTAuMjEyNSwgLTAuMjA2MjUsIC0wLjE5Mzc1LCAtMC4xODM3NSwgLTAuMTY4NzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMjUsIC0wLjAxMzc1LCAtMC4wMDEyNSwgMC4wMTEyNSwgMC4wMjM3NSwgMC4wNCwgMC4wNTUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMjUsIC0wLjAxMjUsIDAsIDAuMDEyNSwgMC4wMjg3NSwgMC4wNSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjAzNzUsIC0wLjAyNSwgLTAuMDEyNSwgMCwgMC4wMTYyNSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDYxMjUsIC0wLjA1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAxMjUsIDAuMDAzNzUsIDAuMDI1IiwgXAotICAgICAgICAgICItMC4wNzM3NSwgLTAuMDYyNSwgLTAuMDUsIC0wLjAzNzUsIC0wLjAyNSwgLTAuMDA4NzUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDksIC0wLjA3ODc1LCAtMC4wNjYyNSwgLTAuMDUzNzUsIC0wLjA0MTI1LCAtMC4wMjUsIC0wLjAxIiwgXAotICAgICAgICAgICItMC4xMDUsIC0wLjA5Mzc1LCAtMC4wODEyNSwgLTAuMDY4NzUsIC0wLjA1NjI1LCAtMC4wNCwgLTAuMDI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJTRSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMzEyNSwgMC4yMiwgMC4yMDc1LCAwLjE4ODc1LCAwLjE3NjI1LCAwLjE2LCAwLjE0NSIsIFwKLSAgICAgICAgICAiMC4yNDI1LCAwLjIzMTI1LCAwLjIxODc1LCAwLjIsIDAuMTg3NSwgMC4xNzEyNSwgMC4xNTYyNSIsIFwKLSAgICAgICAgICAiMC4yNjEyNSwgMC4yNDM3NSwgMC4yMzEyNSwgMC4yMTg3NSwgMC4yLCAwLjE4Mzc1LCAwLjE3NSIsIFwKLSAgICAgICAgICAiMC4yNzM3NSwgMC4yNjI1LCAwLjI0Mzc1LCAwLjIzMTI1LCAwLjIxODc1LCAwLjIwMjUsIDAuMTg3NSIsIFwKLSAgICAgICAgICAiMC4yODYyNSwgMC4yNzUsIDAuMjU2MjUsIDAuMjQzNzUsIDAuMjMxMjUsIDAuMjE1LCAwLjIiLCBcCi0gICAgICAgICAgIjAuMzA4NzUsIDAuMjk3NSwgMC4yNzg3NSwgMC4yNjYyNSwgMC4yNTM3NSwgMC4yMzc1LCAwLjIyMjUiLCBcCi0gICAgICAgICAgIjAuMzMsIDAuMzEyNSwgMC4zLCAwLjI4NzUsIDAuMjY4NzUsIDAuMjUyNSwgMC4yNDM3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE1NjI1LCAwLjE0NSwgMC4xMzI1LCAwLjExMzc1LCAwLjEwMTI1LCAwLjA3MjUsIDAuMDUxMjUiLCBcCi0gICAgICAgICAgIjAuMTczNzUsIDAuMTU2MjUsIDAuMTQzNzUsIDAuMTI1LCAwLjExMjUsIDAuMDgzNzUsIDAuMDYyNSIsIFwKLSAgICAgICAgICAiMC4xODYyNSwgMC4xNjg3NSwgMC4xNTYyNSwgMC4xMzc1LCAwLjEyNSwgMC4wOTYyNSwgMC4wNzUiLCBcCi0gICAgICAgICAgIjAuMTk4NzUsIDAuMTgxMjUsIDAuMTY4NzUsIDAuMTUsIDAuMTM3NSwgMC4xMDg3NSwgMC4wODc1IiwgXAotICAgICAgICAgICIwLjIxMTI1LCAwLjE5Mzc1LCAwLjE4MTI1LCAwLjE2MjUsIDAuMTUsIDAuMTIxMjUsIDAuMSIsIFwKLSAgICAgICAgICAiMC4yMjc1LCAwLjIxNjI1LCAwLjE5NzUsIDAuMTg1LCAwLjE2NjI1LCAwLjE0Mzc1LCAwLjEyMjUiLCBcCi0gICAgICAgICAgIjAuMjQyNSwgMC4yMzEyNSwgMC4yMTg3NSwgMC4yLCAwLjE4NzUsIDAuMTU4NzUsIDAuMTM3NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogVEJVRlgxICoKLSAqIC0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoVEJVRlgxKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMTEzMjIzOwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDEzMzg2NTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDEzMzcxODsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDEzMzg2NTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAzMiwgMC4wMDAzMjUsIDAuMDAwMzI2LCAwLjAwMDMyNywgMC4wMDAzMjcsIDAuMDAwMzI3LCAwLjAwMDMyNyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDMzNiwgMC4wMDAzMzQsIDAuMDAwMzM0LCAwLjAwMDMzNCwgMC4wMDAzMzQsIDAuMDAwMzM0LCAwLjAwMDMzNCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oT0UpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTA3Mjg4OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTA3MjM0OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTA3Mjg4OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihzY2FsYXIpIHsKLSAgICAgICAgdmFsdWVzKCIwIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyNTA2LCAwLjAwMjQ4NCwgMC4wMDI0NjYsIDAuMDAyNDU1LCAwLjAwMjQ0NywgMC4wMDI0NCwgMC4wMDI0MzgiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNzE5MTA3OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDcxOTEwNzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA3MTg3OwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMTI3MzY2OwotICAgIGZ1bmN0aW9uIDogIkEiOwotICAgIHRocmVlX3N0YXRlIDogIighT0UpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxMDcxOTEsIDAuMDE2NzE5MSwgMC4wNTA3MTkxLCAwLjA4MDcxOTEsIDAuMTIwNzE5LCAwLjIwMDcxOSwgMC4yNTA3MTkiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE3MTE4OSwgMC4yMTQyMzEsIDAuNDU2OTc2LCAwLjY3MTA3MywgMC45NTY1NTMsIDEuNTI3NTMsIDEuODg0MjEiLCBcCi0gICAgICAgICAgIjAuMTgyNTc2LCAwLjIyNTY1MiwgMC40NjgzOTIsIDAuNjgyNDkyLCAwLjk2Nzk4OCwgMS41Mzg4MywgMS44OTU2MSIsIFwKLSAgICAgICAgICAiMC4xOTYyMjYsIDAuMjM5MzA0LCAwLjQ4MjA3NywgMC42OTYxNzUsIDAuOTgxNjY3LCAxLjU1MjQsIDEuOTA5MjkiLCBcCi0gICAgICAgICAgIjAuMjA5ODAzLCAwLjI1Mjg5NSwgMC40OTU2NzMsIDAuNzA5ODY2LCAwLjk5NTI3MSwgMS41NjYwOSwgMS45MjI4NyIsIFwKLSAgICAgICAgICAiMC4yMjM0MjgsIDAuMjY2NTM2LCAwLjUwOTMyOCwgMC43MjMzOTMsIDEuMDA4ODYsIDEuNTc5ODIsIDEuOTM2NDgiLCBcCi0gICAgICAgICAgIjAuMjQ0OTQxLCAwLjI4ODA2OCwgMC41MzA4MzgsIDAuNzQ0OTI2LCAxLjAzMDQ2LCAxLjYwMTIxLCAxLjk1ODA1IiwgXAotICAgICAgICAgICIwLjI2MzM4NCwgMC4zMDY0ODIsIDAuNTQ5MzE1LCAwLjc2MzM3NywgMS4wNDg4NSwgMS42MTk3MywgMS45NzY0MyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxMDcxOTEsIDAuMDE2NzE5MSwgMC4wNTA3MTkxLCAwLjA4MDcxOTEsIDAuMTIwNzE5LCAwLjIwMDcxOSwgMC4yNTA3MTkiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE2NDk3MywgMC4yNDk2MTEsIDAuNzM4ODc3LCAxLjE3Mzk4LCAxLjc1NzYsIDIuOTEzNTksIDMuNjM5NDYiLCBcCi0gICAgICAgICAgIjAuMTY0OTc1LCAwLjI0OTYyMywgMC43Mzg4NDUsIDEuMTczODIsIDEuNzU3NDEsIDIuOTE0MzMsIDMuNjM4NTYiLCBcCi0gICAgICAgICAgIjAuMTY0OTksIDAuMjQ5NjI5LCAwLjc0MDE3NywgMS4xNzM4NCwgMS43NTczNywgMi45MTk0LCAzLjYzODgiLCBcCi0gICAgICAgICAgIjAuMTY0OTg4LCAwLjI0OTU4NSwgMC43Mzg4NDUsIDEuMTcyOTEsIDEuNzU3NDcsIDIuOTEzNjIsIDMuNjM3ODUiLCBcCi0gICAgICAgICAgIjAuMTY0OTk2LCAwLjI0OTM5NiwgMC43NDAzMjEsIDEuMTczODIsIDEuNzU3MjgsIDIuOTIwMDYsIDMuNjM3NzUiLCBcCi0gICAgICAgICAgIjAuMTY1MDIxLCAwLjI0OTMwNywgMC43Mzg4MzYsIDEuMTc1NDgsIDEuNzU3MzEsIDIuOTE5NTQsIDMuNjM4NzUiLCBcCi0gICAgICAgICAgIjAuMTY1MjUyLCAwLjI0OTU0OCwgMC43NDAzMiwgMS4xNzM4NCwgMS43NTMzNiwgMi45MTM5NywgMy42NDYxMSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxMDcxODcsIDAuMDE2NzE4NywgMC4wNTA3MTg3LCAwLjA4MDcxODcsIDAuMTIwNzE5LCAwLjIwMDcxOSwgMC4yNTA3MTkiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE1NDA0LCAwLjIwMzUwMSwgMC40ODMzNTMsIDAuNzMwMjE3LCAxLjA1OTQxLCAxLjcxNzc2LCAyLjEyOTEiLCBcCi0gICAgICAgICAgIjAuMTY1MjYyLCAwLjIxNDczMywgMC40OTQ1ODUsIDAuNzQxNDg0LCAxLjA3MDY1LCAxLjcyODg5LCAyLjE0MDMyIiwgXAotICAgICAgICAgICIwLjE3ODA5OSwgMC4yMjc1NzMsIDAuNTA3NDU1LCAwLjc1NDM1NCwgMS4wODM1LCAxLjc0MTgsIDIuMTUzMjYiLCBcCi0gICAgICAgICAgIjAuMTkwMzQsIDAuMjM5ODI3LCAwLjUxOTczMiwgMC43NjY2MzgsIDEuMDk1OCwgMS43NTQwOSwgMi4xNjU1NSIsIFwKLSAgICAgICAgICAiMC4yMDIxODMsIDAuMjUxNjgzLCAwLjUzMTYzNSwgMC43Nzg0OTUsIDEuMTA3NjYsIDEuNzY2MTQsIDIuMTc3MzkiLCBcCi0gICAgICAgICAgIjAuMjIwMzczLCAwLjI2OTg4LCAwLjU0OTgzMiwgMC43OTY3MTUsIDEuMTI1ODcsIDEuNzg0MTcsIDIuMTk1NjEiLCBcCi0gICAgICAgICAgIjAuMjM1MTY4LCAwLjI4NDY5NiwgMC41NjQ2NjQsIDAuODExNTQ1LCAxLjE0MDc3LCAxLjc5OTAxLCAyLjIxMDU1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEwNzE4NywgMC4wMTY3MTg3LCAwLjA1MDcxODcsIDAuMDgwNzE4NywgMC4xMjA3MTksIDAuMjAwNzE5LCAwLjI1MDcxOSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTc5ODMxLCAwLjI3Njg3LCAwLjgzMTA0NiwgMS4zMjM3MywgMS45NzM4NCwgMy4yODQ3MywgNC4xMDE1MiIsIFwKLSAgICAgICAgICAiMC4xNzk3MTcsIDAuMjc2ODcyLCAwLjgzMTEyMiwgMS4zMjAzNSwgMS45NzQzOSwgMy4yODk1OSwgNC4xMDE5MiIsIFwKLSAgICAgICAgICAiMC4xNzk4MjcsIDAuMjc2ODAxLCAwLjgzMjI5NiwgMS4zMjIxLCAxLjk3NjU4LCAzLjI4NTU5LCA0LjEwNTY5IiwgXAotICAgICAgICAgICIwLjE3OTY4NywgMC4yNzY3NzIsIDAuODMyMzAxLCAxLjMyMTMsIDEuOTc4NDksIDMuMjg1OTUsIDQuMTA1MiIsIFwKLSAgICAgICAgICAiMC4xNzk3MjMsIDAuMjc2ODQ2LCAwLjgzMTc5MSwgMS4zMjE3MSwgMS45NzcyMSwgMy4yODY4NSwgNC4xMDEyNSIsIFwKLSAgICAgICAgICAiMC4xODAwMzEsIDAuMjc2OTUzLCAwLjgzMDc5OCwgMS4zMjEzNSwgMS45NzU2NywgMy4yODQyMSwgNC4xMDEzOCIsIFwKLSAgICAgICAgICAiMC4xODA1MjgsIDAuMjc2ODkxLCAwLjgzMTY0NCwgMS4zMjE1NiwgMS45NzYxMywgMy4yODM3OCwgNC4xMDQ4NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJPRSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogdGhyZWVfc3RhdGVfZW5hYmxlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxMDcxOTEsIDAuMDE2NzE5MSwgMC4wNTA3MTkxLCAwLjA4MDcxOTEsIDAuMTIwNzE5LCAwLjIwMDcxOSwgMC4yNTA3MTkiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE2NTM0LCAwLjIwODQyOSwgMC40NTEyNzMsIDAuNjY1NDExLCAwLjk1MDkzNSwgMS41MjIsIDEuODc5MTMiLCBcCi0gICAgICAgICAgIjAuMTc1MzExLCAwLjIxODM5OCwgMC40NjEyNDQsIDAuNjc1MzQ0LCAwLjk2MDg3NiwgMS41MzE5NiwgMS44ODg4NSIsIFwKLSAgICAgICAgICAiMC4xODg5NDEsIDAuMjMyMDUyLCAwLjQ3NDg1NiwgMC42ODkwOTcsIDAuOTc0NTUsIDEuNTQ1NTgsIDEuOTAyNDgiLCBcCi0gICAgICAgICAgIjAuMjAyNTgzLCAwLjI0NTY2NCwgMC40ODg1MTUsIDAuNzAyNjEsIDAuOTg4MTQ3LCAxLjU1OTIyLCAxLjkxNjE4IiwgXAotICAgICAgICAgICIwLjIxNjM1LCAwLjI1OTQzNCwgMC41MDIyMzksIDAuNzE2Mzk3LCAxLjAwMTk0LCAxLjU3Mjk4LCAxLjkyOTg3IiwgXAotICAgICAgICAgICIwLjIzODQ2NiwgMC4yODE1NTIsIDAuNTI0MzY2LCAwLjczODU0OCwgMS4wMjQwNCwgMS41OTUwOCwgMS45NTE5NyIsIFwKLSAgICAgICAgICAiMC4yNTc1MTQsIDAuMzAwNjAxLCAwLjU0MzQxNCwgMC43NTc1MzMsIDEuMDQzMDgsIDEuNjE0MTEsIDEuOTcxMDIiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMTA3MTkxLCAwLjAxNjcxOTEsIDAuMDUwNzE5MSwgMC4wODA3MTkxLCAwLjEyMDcxOSwgMC4yMDA3MTksIDAuMjUwNzE5Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNjU1NDYsIDAuMjUwMTMzLCAwLjc0MTMwNSwgMS4xNzczOSwgMS43NTU5LCAyLjkxNzgyLCAzLjY1MTA0IiwgXAotICAgICAgICAgICIwLjE2NTU1MywgMC4yNDk5NTEsIDAuNzQxMjYzLCAxLjE3Njg3LCAxLjc1ODEsIDIuOTE4NzYsIDMuNjQ1MDIiLCBcCi0gICAgICAgICAgIjAuMTY1NTA1LCAwLjI0OTgwMywgMC43NDEwNDIsIDEuMTc0NDYsIDEuNzU2NjEsIDIuOTE4NzUsIDMuNjQ0NyIsIFwKLSAgICAgICAgICAiMC4xNjU1NCwgMC4yNTAwNjcsIDAuNzQxMTU3LCAxLjE3NzAyLCAxLjc1NjUsIDIuOTE4NTQsIDMuNjUxMDQiLCBcCi0gICAgICAgICAgIjAuMTY1NDkyLCAwLjI1MDA2LCAwLjc0MDkyNSwgMS4xNzcwMiwgMS43NTYyOSwgMi45MTg2MywgMy42NDk5MiIsIFwKLSAgICAgICAgICAiMC4xNjU2MDQsIDAuMjUwMTE3LCAwLjczOTc1MSwgMS4xNzQ3NiwgMS43NTYyMiwgMi45MTg0MSwgMy42NTAxOCIsIFwKLSAgICAgICAgICAiMC4xNjU5NTIsIDAuMjUwMTY3LCAwLjczOTQ3OCwgMS4xNzcwNywgMS43NTkxNCwgMi45MTgyOSwgMy42NDQ3NSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxMDcxODcsIDAuMDE2NzE4NywgMC4wNTA3MTg3LCAwLjA4MDcxODcsIDAuMTIwNzE5LCAwLjIwMDcxOSwgMC4yNTA3MTkiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE3NDQ2NywgMC4yMjM5MTUsIDAuNTAzODczLCAwLjc1MDg3MiwgMS4wODAxNywgMS43Mzg4NCwgMi4xNTA0OSIsIFwKLSAgICAgICAgICAiMC4xODYxMDEsIDAuMjM1NTQ2LCAwLjUxNTUwNiwgMC43NjI0OTQsIDEuMDkxNzgsIDEuNzUwMzYsIDIuMTYyMDkiLCBcCi0gICAgICAgICAgIjAuMjAxMzAzLCAwLjI1MDc1MywgMC41MzA3MDgsIDAuNzc3NjY4LCAxLjEwNzAyLCAxLjc2NTc0LCAyLjE3NzQ1IiwgXAotICAgICAgICAgICIwLjIxNjIwMiwgMC4yNjU2MzcsIDAuNTQ1NTg3LCAwLjc5MjYwNSwgMS4xMjE5MSwgMS43ODA2NCwgMi4xOTIwNSIsIFwKLSAgICAgICAgICAiMC4yMzAxOCwgMC4yNzk2MjEsIDAuNTU5NTc5LCAwLjgwNjYxMywgMS4xMzU4MSwgMS43OTQ1MSwgMi4yMDU5NyIsIFwKLSAgICAgICAgICAiMC4yNTA3NjcsIDAuMzAwMjIsIDAuNTgwMTQyLCAwLjgyNzA5NywgMS4xNTY1NCwgMS44MTUsIDIuMjI2NjEiLCBcCi0gICAgICAgICAgIjAuMjY2OTk4LCAwLjMxNjQ0NCwgMC41OTYzNjEsIDAuODQzMzQyLCAxLjE3MjYxLCAxLjgzMTIsIDIuMjQyODYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMTA3MTg3LCAwLjAxNjcxODcsIDAuMDUwNzE4NywgMC4wODA3MTg3LCAwLjEyMDcxOSwgMC4yMDA3MTksIDAuMjUwNzE5Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xODAwNjgsIDAuMjc3NDM5LCAwLjgzMzk3OCwgMS4zMjYxNiwgMS45ODIzNCwgMy4yOTQzNiwgNC4xMDA5OSIsIFwKLSAgICAgICAgICAiMC4xODAyMzcsIDAuMjc2NTkxLCAwLjgzMjAzOCwgMS4zMjYxNywgMS45ODI0OCwgMy4yOTA0NiwgNC4xMDk5OCIsIFwKLSAgICAgICAgICAiMC4xODAyMDEsIDAuMjc2NTc4LCAwLjgzMzk5MiwgMS4zMjY0OCwgMS45ODE2LCAzLjI5MzA2LCA0LjEwNTIyIiwgXAotICAgICAgICAgICIwLjE4MDIwMywgMC4yNzY5NDQsIDAuODMyNjk4LCAxLjMyNTU5LCAxLjk3Njk3LCAzLjI4NCwgNC4xMDcxNCIsIFwKLSAgICAgICAgICAiMC4xODAxMDQsIDAuMjc3Mzc2LCAwLjgzMzc2MiwgMS4zMjI3MSwgMS45Nzk1OSwgMy4yODk1LCA0LjExMTQiLCBcCi0gICAgICAgICAgIjAuMTgwMjM1LCAwLjI3NjU2MiwgMC44MzI0MDEsIDEuMzI1OTIsIDEuOTc3NDIsIDMuMjg5MTYsIDQuMTA5NzEiLCBcCi0gICAgICAgICAgIjAuMTgwMzIxLCAwLjI3NzIzNywgMC44MzMyMjMsIDEuMzI1MDMsIDEuOTgxNDQsIDMuMjg5MTIsIDQuMTEwOTEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiT0UiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHRocmVlX3N0YXRlX2Rpc2FibGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wNTY0MTMsIDAuMDY3OTA0LCAwLjA4MjQzMywgMC4wOTY1NDMsIDAuMTA5MDU4LCAwLjEyNjgwNywgMC4xNDA5NzMiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihzY2FsYXIpIHsKLSAgICAgICAgdmFsdWVzKCIwIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMzMzMTgsIDAuMDQ1MDA4LCAwLjA1OTcxMywgMC4wNzQ0MTIsIDAuMDg4MDA2LCAwLjEwNzI4OSwgMC4xMjIzODEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihzY2FsYXIpIHsKLSAgICAgICAgdmFsdWVzKCIwIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMTA3MTkxLCAwLjAxNjcxOTEsIDAuMDUwNzE5MSwgMC4wODA3MTkxLCAwLjEyMDcxOSwgMC4yMDA3MTksIDAuMjUwNzE5Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDE0MjYsIDAuMDAxNDI3LCAwLjAwMTQyOCwgMC4wMDE0MjksIDAuMDAxNDI5LCAwLjAwMTQyOSwgMC4wMDE0MjgiLCBcCi0gICAgICAgICAgIjAuMDAxMzk4LCAwLjAwMTM5OSwgMC4wMDE0LCAwLjAwMTQwMSwgMC4wMDE0MDEsIDAuMDAxNCwgMC4wMDE0IiwgXAotICAgICAgICAgICIwLjAwMTM3OSwgMC4wMDEzODEsIDAuMDAxMzgzLCAwLjAwMTM4MywgMC4wMDEzODMsIDAuMDAxMzgzLCAwLjAwMTM4NCIsIFwKLSAgICAgICAgICAiMC4wMDEzNjcsIDAuMDAxMzY5LCAwLjAwMTM3MiwgMC4wMDEzNzMsIDAuMDAxMzczLCAwLjAwMTM3MywgMC4wMDEzNzMiLCBcCi0gICAgICAgICAgIjAuMDAxMzU5LCAwLjAwMTM2MiwgMC4wMDEzNjYsIDAuMDAxMzY2LCAwLjAwMTM2NiwgMC4wMDEzNjcsIDAuMDAxMzY3IiwgXAotICAgICAgICAgICIwLjAwMTM1MSwgMC4wMDEzNTUsIDAuMDAxMzU5LCAwLjAwMTM2LCAwLjAwMTM2MSwgMC4wMDEzNjEsIDAuMDAxMzYxIiwgXAotICAgICAgICAgICIwLjAwMTM0NywgMC4wMDEzNTEsIDAuMDAxMzU3LCAwLjAwMTM1OCwgMC4wMDEzNTgsIDAuMDAxMzU5LCAwLjAwMTM1OSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEwNzE4NywgMC4wMTY3MTg3LCAwLjA1MDcxODcsIDAuMDgwNzE4NywgMC4xMjA3MTksIDAuMjAwNzE5LCAwLjI1MDcxOSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzMzE2LCAwLjAwMzMxOSwgMC4wMDMzMjMsIDAuMDAzMzI0LCAwLjAwMzMyNCwgMC4wMDMzMjQsIDAuMDAzMzI1IiwgXAotICAgICAgICAgICIwLjAwMzI5OSwgMC4wMDMzMDIsIDAuMDAzMzA2LCAwLjAwMzMwNywgMC4wMDMzMDcsIDAuMDAzMzA3LCAwLjAwMzMwNyIsIFwKLSAgICAgICAgICAiMC4wMDMyODUsIDAuMDAzMjg5LCAwLjAwMzI5NSwgMC4wMDMyOTYsIDAuMDAzMjk2LCAwLjAwMzI5NywgMC4wMDMyOTciLCBcCi0gICAgICAgICAgIjAuMDAzMjc1LCAwLjAwMzI4MSwgMC4wMDMyODgsIDAuMDAzMjksIDAuMDAzMjksIDAuMDAzMjkxLCAwLjAwMzI5MSIsIFwKLSAgICAgICAgICAiMC4wMDMyNjYsIDAuMDAzMjcyLCAwLjAwMzI4MSwgMC4wMDMyODMsIDAuMDAzMjg0LCAwLjAwMzI4NSwgMC4wMDMyODUiLCBcCi0gICAgICAgICAgIjAuMDAzMjYsIDAuMDAzMjY3LCAwLjAwMzI3OCwgMC4wMDMyODEsIDAuMDAzMjgyLCAwLjAwMzI4MywgMC4wMDMyODMiLCBcCi0gICAgICAgICAgIjAuMDAzMjU1LCAwLjAwMzI2MywgMC4wMDMyNzUsIDAuMDAzMjc4LCAwLjAwMzI4LCAwLjAwMzI4MSwgMC4wMDMyODEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJPRSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMTA3MTkxLCAwLjAxNjcxOTEsIDAuMDUwNzE5MSwgMC4wODA3MTkxLCAwLjEyMDcxOSwgMC4yMDA3MTksIDAuMjUwNzE5Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDEzNzIsIDAuMDAxMzY2LCAwLjAwMTM0MSwgMC4wMDEzMTMsIDAuMDAxMjYzLCAwLjAwMTIwNSwgMC4wMDExNTkiLCBcCi0gICAgICAgICAgIjAuMDAxMzMzLCAwLjAwMTMyNSwgMC4wMDEyOTIsIDAuMDAxMjc2LCAwLjAwMTIzOSwgMC4wMDExNjUsIDAuMDAxMTE0IiwgXAotICAgICAgICAgICIwLjAwMTMxLCAwLjAwMTMwMywgMC4wMDEyNjgsIDAuMDAxMjM2LCAwLjAwMTIwNSwgMC4wMDExMzksIDAuMDAxMDk3IiwgXAotICAgICAgICAgICIwLjAwMTI5NywgMC4wMDEyOTIsIDAuMDAxMjU3LCAwLjAwMTIyMywgMC4wMDExODUsIDAuMDAxMTA4LCAwLjAwMTA4MyIsIFwKLSAgICAgICAgICAiMC4wMDEyODksIDAuMDAxMjg0LCAwLjAwMTI0OCwgMC4wMDEyMTYsIDAuMDAxMTk2LCAwLjAwMTExNywgMC4wMDEwNzIiLCBcCi0gICAgICAgICAgIjAuMDAxMjgxLCAwLjAwMTI3NiwgMC4wMDEyNSwgMC4wMDEyMDcsIDAuMDAxMTc2LCAwLjAwMTEwOSwgMC4wMDEwNjciLCBcCi0gICAgICAgICAgIjAuMDAxMjc3LCAwLjAwMTI3NSwgMC4wMDEyNCwgMC4wMDEyMDQsIDAuMDAxMTg0LCAwLjAwMTEwNSwgMC4wMDEwNDUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxMDcxODcsIDAuMDE2NzE4NywgMC4wNTA3MTg3LCAwLjA4MDcxODcsIDAuMTIwNzE5LCAwLjIwMDcxOSwgMC4yNTA3MTkiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTU4NiwgMC4wMDE1ODYsIDAuMDAxNTg2LCAwLjAwMTU4NiwgMC4wMDE1ODUsIDAuMDAxNTg2LCAwLjAwMTU4NiIsIFwKLSAgICAgICAgICAiMC4wMDE1NjQsIDAuMDAxNTY0LCAwLjAwMTU2NSwgMC4wMDE1NjUsIDAuMDAxNTY1LCAwLjAwMTU2NSwgMC4wMDE1NjQiLCBcCi0gICAgICAgICAgIjAuMDAxNTUxLCAwLjAwMTU1MSwgMC4wMDE1NTEsIDAuMDAxNTUxLCAwLjAwMTU1MSwgMC4wMDE1NTEsIDAuMDAxNTUxIiwgXAotICAgICAgICAgICIwLjAwMTU0NCwgMC4wMDE1NDUsIDAuMDAxNTQ1LCAwLjAwMTU0NSwgMC4wMDE1NDQsIDAuMDAxNTQ0LCAwLjAwMTU0NCIsIFwKLSAgICAgICAgICAiMC4wMDE1NDEsIDAuMDAxNTQxLCAwLjAwMTU0MSwgMC4wMDE1NDEsIDAuMDAxNTQxLCAwLjAwMTU0MSwgMC4wMDE1NDEiLCBcCi0gICAgICAgICAgIjAuMDAxNTQxLCAwLjAwMTU0MSwgMC4wMDE1NDEsIDAuMDAxNTQxLCAwLjAwMTU0MSwgMC4wMDE1NDEsIDAuMDAxNTQxIiwgXAotICAgICAgICAgICIwLjAwMTU0MiwgMC4wMDE1NDIsIDAuMDAxNTQyLCAwLjAwMTU0MiwgMC4wMDE1NDIsIDAuMDAxNTQyLCAwLjAwMTU0MiIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogQ0xLWE9SMlg4ICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoQ0xLWE9SMlg4KSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMzc5ODQzOwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA1NDc0OTc7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNTQ3MTU4OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDU0NzQ5NzsKLSAgfQotICBwaW4oQikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxMjk1MDc7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxMjk0MTI7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxMjk1MDc7Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMS4wOTI0OwotICAgIGZ1bmN0aW9uIDogIihBXkIpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI3MjgwNiwgMC4zODA4MzEsIDAuNDU0OTc4LCAwLjUwMzk3MSwgMC41NzkwNTYsIDAuNjQzMzYzLCAwLjczNDY3IiwgXAotICAgICAgICAgICIwLjI4NDkyNCwgMC4zOTI0NjEsIDAuNDY3MTA1LCAwLjUxNTk4NSwgMC41OTEwNDgsIDAuNjU1MzY3LCAwLjc0NjYxMSIsIFwKLSAgICAgICAgICAiMC4yOTk4NzQsIDAuNDA3MjA0LCAwLjQ4MjE0LCAwLjUzMDU5NSwgMC42MDU3MjIsIDAuNjcwMTgzLCAwLjc2MTQ0NCIsIFwKLSAgICAgICAgICAiMC4zMTQ3MTgsIDAuNDIyMzgsIDAuNDk3MDgxLCAwLjU0NjAyMSwgMC42MjA4ODksIDAuNjg1MzY2LCAwLjc3NjU2MSIsIFwKLSAgICAgICAgICAiMC4zMjk2ODcsIDAuNDM3MzgyLCAwLjUxMjAxNywgMC41NjA5OTIsIDAuNjM1ODU3LCAwLjcwMDMxNCwgMC43OTE1MiIsIFwKLSAgICAgICAgICAiMC4zNTM2NywgMC40NjE2NzEsIDAuNTM1OTY1LCAwLjU4NDgxNCwgMC42NTk4OTgsIDAuNzI0MjEyLCAwLjgxNTUwNCIsIFwKLSAgICAgICAgICAiMC4zNzQ5NDgsIDAuNDgyMzMyLCAwLjU1NjgxMSwgMC42MDU3MTksIDAuNjgwODA0LCAwLjc0NTI3NiwgMC44MzY0MTEiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDMwOTIsIDAuMjMwMjA2LCAwLjM0ODI1NCwgMC40MzM5NjEsIDAuNTczOTU1LCAwLjY5NzY3MywgMC44NzczMDciLCBcCi0gICAgICAgICAgIjAuMTAzMzA5LCAwLjIyOTcwNCwgMC4zNDgyNzYsIDAuNDM0MjM5LCAwLjU3Mzg3NywgMC42OTc3MjIsIDAuODc3MjY2IiwgXAotICAgICAgICAgICIwLjEwMjg1MSwgMC4yMjk4ODQsIDAuMzQ4MzY5LCAwLjQzNDE2MywgMC41NzM3MTIsIDAuNjk3NTQxLCAwLjg3NjE3NCIsIFwKLSAgICAgICAgICAiMC4xMDMxOTksIDAuMjI5OTAzLCAwLjM0ODM2OSwgMC40MzQ0MDMsIDAuNTczNjU5LCAwLjY5NzU0NCwgMC44NzcyMjciLCBcCi0gICAgICAgICAgIjAuMTAzMTI3LCAwLjIyOTcyMiwgMC4zNDgzNzMsIDAuNDM0NDE3LCAwLjU3MzU0OCwgMC42OTc1NSwgMC44NzcyMTMiLCBcCi0gICAgICAgICAgIjAuMTAzMTg5LCAwLjIzMDE3OSwgMC4zNDgzMzYsIDAuNDM0MTM0LCAwLjU3Mzg4NCwgMC42OTc2NzIsIDAuODc3MjU4IiwgXAotICAgICAgICAgICIwLjEwMjg1MiwgMC4yMjk3NywgMC4zNDgzNzIsIDAuNDM0MjIxLCAwLjU3Mzc5NywgMC42OTc2MTksIDAuODc3MTI2Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjU5OTg3LCAwLjM3MzcyNCwgMC40NTcwMjksIDAuNTEyNzQxLCAwLjU5OTUzNSwgMC42NzQ2MjYsIDAuNzgxMjM4IiwgXAotICAgICAgICAgICIwLjI3MTM4NiwgMC4zODUxMzcsIDAuNDY4NDM5LCAwLjUyNDE1OCwgMC42MTA5NDYsIDAuNjg2MDM4LCAwLjc5MjY1MiIsIFwKLSAgICAgICAgICAiMC4yODU4MSwgMC4zOTk2NjcsIDAuNDgyOTYyLCAwLjUzODcwMSwgMC42MjU0OTYsIDAuNzAwNTY3LCAwLjgwNzE3NiIsIFwKLSAgICAgICAgICAiMC4yOTk2NSwgMC40MTM0OTMsIDAuNDk2Nzc5LCAwLjU1MjUyNCwgMC42MzkzMjIsIDAuNzE0Mzg5LCAwLjgyMDk5OSIsIFwKLSAgICAgICAgICAiMC4zMTQzNzgsIDAuNDI3OTMsIDAuNTExNDEyLCAwLjU2NzE5OSwgMC42NTQwODIsIDAuNzI5MDIsIDAuODM1NzE4IiwgXAotICAgICAgICAgICIwLjMzNzQ4OSwgMC40NTA5NjEsIDAuNTM0MzYxLCAwLjU5MDExNCwgMC42NzY4ODMsIDAuNzUxOTc0LCAwLjg1ODYxOCIsIFwKLSAgICAgICAgICAiMC4zNTczNjcsIDAuNDcxMDQ1LCAwLjU1NDQ0LCAwLjYxMDA5OCwgMC42OTY4OTQsIDAuNzcxOTg4LCAwLjg3ODYxNSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwMDU4MiwgMC4yNDUyMDIsIDAuMzgyODgxLCAwLjQ4Mjk1MSwgMC42NDUzOTEsIDAuNzg4NDgsIDAuOTk3MDA5IiwgXAotICAgICAgICAgICIwLjEwMDU5MSwgMC4yNDUyMjUsIDAuMzgyODg5LCAwLjQ4Mjk4NiwgMC42NDU0NjcsIDAuNzg4NDgxLCAwLjk5NzAxNCIsIFwKLSAgICAgICAgICAiMC4xMDA0MTEsIDAuMjQ1MjE5LCAwLjM4Mjg5MywgMC40ODI5NzUsIDAuNjQ1NjU1LCAwLjc4ODQyNSwgMC45OTcwMzgiLCBcCi0gICAgICAgICAgIjAuMTAwNDQ5LCAwLjI0NTIyMiwgMC4zODI4ODksIDAuNDgyOTUyLCAwLjY0NTUzOCwgMC43ODg0MjIsIDAuOTk3MDc4IiwgXAotICAgICAgICAgICIwLjEwMDY1MiwgMC4yNDQ5OTIsIDAuMzgyODAxLCAwLjQ4MzIyMywgMC42NDUwMTMsIDAuNzg5MDA2LCAwLjk5NzM2OCIsIFwKLSAgICAgICAgICAiMC4xMDA3MywgMC4yNDUwNiwgMC4zODMxMzEsIDAuNDgzMDE4LCAwLjY0NTIzNSwgMC43OTAwODQsIDAuOTk3Mjg4IiwgXAotICAgICAgICAgICIwLjEwMDYzNSwgMC4yNDUyMTcsIDAuMzgyOTQzLCAwLjQ4MzAxNSwgMC42NDUyOTMsIDAuNzg5NzA1LCAwLjk5Njk2OSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI3NzQyNSwgMC4zNzU2MSwgMC40NDYxOCwgMC40OTM1MywgMC41NjcxODUsIDAuNjMxMTEyLCAwLjcyMjEwNyIsIFwKLSAgICAgICAgICAiMC4yODg5NzgsIDAuMzg2NzU3LCAwLjQ1NzU0OSwgMC41MDQ5MjgsIDAuNTc4NTc5LCAwLjY0MjU0NSwgMC43MzM1NjkiLCBcCi0gICAgICAgICAgIjAuMzAzOTI1LCAwLjQwMTcwMywgMC40NzI0OTcsIDAuNTE5ODc1LCAwLjU5MzUyMywgMC42NTc0ODgsIDAuNzQ4NTE2IiwgXAotICAgICAgICAgICIwLjMxODY0NSwgMC40MTYzMjYsIDAuNDg3MTM2LCAwLjUzNDUxMSwgMC42MDgxNiwgMC42NzIwOTgsIDAuNzYzMDgxIiwgXAotICAgICAgICAgICIwLjMzMzA0NSwgMC40MzA3MzQsIDAuNTAxNTMzLCAwLjU0ODkxMSwgMC42MjI1NTYsIDAuNjg2NTExLCAwLjc3NzQ4NSIsIFwKLSAgICAgICAgICAiMC4zNTQxMTQsIDAuNDUyMjkzLCAwLjUyMjg0MiwgMC41NzAyMjYsIDAuNjQzODc5LCAwLjcwNzgwNSwgMC43OTg3NjciLCBcCi0gICAgICAgICAgIjAuMzcxMjQ5LCAwLjQ2OTA1MiwgMC41Mzk5MzIsIDAuNTg3MTA5LCAwLjY2MDk1MSwgMC43MjQ4NjQsIDAuODE1ODY4Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDkwNDQzLCAwLjIxMzA5MywgMC4zMzIwNjQsIDAuNDE5MDQ4LCAwLjU2MDQzOSwgMC42ODU3MywgMC44NjcwNzgiLCBcCi0gICAgICAgICAgIjAuMDkwMzEyLCAwLjIxMjY4NywgMC4zMzIwMDEsIDAuNDE5MDU1LCAwLjU2MDM3LCAwLjY4NTc2NiwgMC44NjcyMTgiLCBcCi0gICAgICAgICAgIjAuMDkwMzgsIDAuMjEyNzExLCAwLjMzMTgxMywgMC40MTkwNTcsIDAuNTYwMzc2LCAwLjY4NTc2NiwgMC44NjcyMTciLCBcCi0gICAgICAgICAgIjAuMDkwMzQ2LCAwLjIxMjc5NSwgMC4zMzE5NjIsIDAuNDE5MDcsIDAuNTYwNDE3LCAwLjY4NTcyNywgMC44NjYwNSIsIFwKLSAgICAgICAgICAiMC4wOTAzMTgsIDAuMjEyODM3LCAwLjMzMTk0OCwgMC40MTkwNywgMC41NjA0NTIsIDAuNjg1NzU0LCAwLjg2NjA3NCIsIFwKLSAgICAgICAgICAiMC4wOTAzNywgMC4yMTMwNTUsIDAuMzMyMDI3LCAwLjQxODk4NCwgMC41NjAyNTIsIDAuNjg1Njk4LCAwLjg2NzQ2NyIsIFwKLSAgICAgICAgICAiMC4wOTAzNDYsIDAuMjEyNzY2LCAwLjMzMjA0NiwgMC40MTg3MDgsIDAuNTYwMiwgMC42ODU1NzcsIDAuODY3MzY1Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjc2ODM2LCAwLjM4MTk1LCAwLjQ2MjE5MiwgMC41MTY2NzEsIDAuNjAyNzgsIDAuNjc3NTM4LCAwLjc4NDA3MyIsIFwKLSAgICAgICAgICAiMC4yODg1ODksIDAuMzkzODQ5LCAwLjQ3NDAxOSwgMC41Mjg2ODMsIDAuNjE0NzQ0LCAwLjY4OTQ0OCwgMC43OTYwMDQiLCBcCi0gICAgICAgICAgIjAuMzAzNzk4LCAwLjQwODc3LCAwLjQ4OTI3MSwgMC41NDM4MjgsIDAuNjI5ODM4LCAwLjcwNDU1NCwgMC44MTExMTEiLCBcCi0gICAgICAgICAgIjAuMzE5MTM1LCAwLjQyNDM0LCAwLjUwNDUyNSwgMC41NTkxNjgsIDAuNjQ1MTU4LCAwLjcxOTk1LCAwLjgyNjQ2MyIsIFwKLSAgICAgICAgICAiMC4zMzQzNjcsIDAuNDM5NTQ2LCAwLjUxOTcyOCwgMC41NzQzNzcsIDAuNjYwMzYyLCAwLjczNTE1NSwgMC44NDE2NjciLCBcCi0gICAgICAgICAgIjAuMzU4MDUsIDAuNDYzMjQ5LCAwLjU0MzQxNSwgMC41OTgwNjYsIDAuNjg0MDQ3LCAwLjc1ODg0OSwgMC44NjUzNTQiLCBcCi0gICAgICAgICAgIjAuMzc3NDk2LCAwLjQ4MjYyNiwgMC41NjI4MTYsIDAuNjE3NDg1LCAwLjcwMzQ2MiwgMC43NzgyNjQsIDAuODg0NzY4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg4NzM3LCAwLjIzMDQ0MiwgMC4zNjkyNywgMC40NzA1LCAwLjYzNDk4LCAwLjc3OTU4OSwgMC45ODk5NDciLCBcCi0gICAgICAgICAgIjAuMDg5MDY3LCAwLjIyOTkyMiwgMC4zNjkwMTMsIDAuNDcwMTA0LCAwLjYzNDkxMywgMC43ODAwNjMsIDAuOTg3MTI3IiwgXAotICAgICAgICAgICIwLjA4ODk4NCwgMC4yMzAzNjIsIDAuMzY5MTU0LCAwLjQ3MDIwOCwgMC42MzQ5NTksIDAuNzc5ODEsIDAuOTg3NDg0IiwgXAotICAgICAgICAgICIwLjA4ODc1OCwgMC4yMjk5MzcsIDAuMzY5Mjc5LCAwLjQ3MDEyMiwgMC42MzQxOTgsIDAuNzgwMDc1LCAwLjk4ODY5IiwgXAotICAgICAgICAgICIwLjA4ODcxLCAwLjIzMDMyLCAwLjM2OTI5MSwgMC40NzAxMjUsIDAuNjM0MTk2LCAwLjc4MDA2NiwgMC45ODg2MDkiLCBcCi0gICAgICAgICAgIjAuMDg4NzUyLCAwLjIzMDE0MywgMC4zNjkyNjcsIDAuNDcwMTIsIDAuNjM0MTYsIDAuNzgwMDIzLCAwLjk4NzY2MSIsIFwKLSAgICAgICAgICAiMC4wODg2MjEsIDAuMjMwMzI4LCAwLjM2ODk4MywgMC40NzAxMTYsIDAuNjM0MTIsIDAuNzc5OTIxLCAwLjk4NzQ2NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIxOTI1OSwgMC4zMTcxMjQsIDAuMzg3OTI3LCAwLjQzNTI4NiwgMC41MDg5MzksIDAuNTcyOTEsIDAuNjYzOTI3IiwgXAotICAgICAgICAgICIwLjIzMDQ2LCAwLjMyODY3NCwgMC4zOTkxMjksIDAuNDQ2NDQ2LCAwLjUyMDMzLCAwLjU4NDE1OCwgMC42NzUxNjYiLCBcCi0gICAgICAgICAgIjAuMjQ0MTc5LCAwLjM0MTk1OSwgMC40MTI3NzcsIDAuNDU5OTM2LCAwLjUzMzgwOCwgMC41OTc3MjUsIDAuNjg4Njg1IiwgXAotICAgICAgICAgICIwLjI1NzU0MSwgMC4zNTUzNSwgMC40MjYxNTcsIDAuNDczMzA4LCAwLjU0NzE3OSwgMC42MTExLCAwLjcwMjA2MiIsIFwKLSAgICAgICAgICAiMC4yNzEwNTcsIDAuMzY4NzUyLCAwLjQzOTYxLCAwLjQ4Njc1NCwgMC41NjA2MywgMC42MjQ0NjcsIDAuNzE1NTEiLCBcCi0gICAgICAgICAgIjAuMjkyNTUyLCAwLjM5MDMwMiwgMC40NjExNjcsIDAuNTA4MzI1LCAwLjU4MjE4OCwgMC42NDYxMjgsIDAuNzM3MDk0IiwgXAotICAgICAgICAgICIwLjMxMTQxMSwgMC40MDkzMjUsIDAuNDgwMDg3LCAwLjUyNzQ3MiwgMC42MDExMjksIDAuNjY1MTExLCAwLjc1NjEzNyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5MDA2NiwgMC4yMTI1ODIsIDAuMzMxOTQsIDAuNDE4OTk4LCAwLjU2MDMzOSwgMC42ODU3MzEsIDAuODY3MjYxIiwgXAotICAgICAgICAgICIwLjA5MDA5OSwgMC4yMTI5MDMsIDAuMzMxODY5LCAwLjQxODYxNSwgMC41NjAxMjcsIDAuNjg2MDcyLCAwLjg2NzI1IiwgXAotICAgICAgICAgICIwLjA5MDAyMywgMC4yMTI3MjgsIDAuMzMyMDY5LCAwLjQxODg5NCwgMC41NjAyNzQsIDAuNjg1NjgxLCAwLjg2NzQ0OSIsIFwKLSAgICAgICAgICAiMC4wOTAwMzMsIDAuMjEyNjY5LCAwLjMzMjAzNywgMC40MTg4ODUsIDAuNTYwMjY3LCAwLjY4NTY2MiwgMC44Njc0MzYiLCBcCi0gICAgICAgICAgIjAuMDg5NzQzLCAwLjIxMjc5MiwgMC4zMzIwMDEsIDAuNDE4ODE1LCAwLjU2MDE2NCwgMC42ODYwNCwgMC44NjcxMDciLCBcCi0gICAgICAgICAgIjAuMDg5OTc4LCAwLjIxMjYzOCwgMC4zMzIwMzIsIDAuNDE4ODMxLCAwLjU2MDE5MSwgMC42ODU1NzIsIDAuODY3Mjc1IiwgXAotICAgICAgICAgICIwLjA4OTk1MSwgMC4yMTI1NjIsIDAuMzMxOTU3LCAwLjQxODkzNSwgMC41NjAyOTEsIDAuNjg1NjQyLCAwLjg2NzA1MSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIzMDI2LCAwLjM0NDExLCAwLjQyNzQ0MSwgMC40ODMxMTEsIDAuNTY5OTcyLCAwLjY0NDkxNCwgMC43NTE2MDYiLCBcCi0gICAgICAgICAgIjAuMjQwOTk3LCAwLjM1NDYxMSwgMC40MzgxMjUsIDAuNDkzODg2LCAwLjU4MDY4MiwgMC42NTU3MDYsIDAuNzYyMzQ2IiwgXAotICAgICAgICAgICIwLjI1NDM0MiwgMC4zNjgyNDcsIDAuNDUxNTY2LCAwLjUwNzI2NiwgMC41OTQwNjEsIDAuNjY5MTMsIDAuNzc1NzYiLCBcCi0gICAgICAgICAgIjAuMjY3NjMzLCAwLjM4MTA5MiwgMC40NjQ2NjgsIDAuNTIwNDM5LCAwLjYwNzIyMSwgMC42ODIyNTUsIDAuNzg4ODM3IiwgXAotICAgICAgICAgICIwLjI4MDI4NCwgMC4zOTM4ODYsIDAuNDc3MzI0LCAwLjUzMzEwNCwgMC42MTk4OTQsIDAuNjk0OTMyLCAwLjgwMTYzNCIsIFwKLSAgICAgICAgICAiMC4zMDAzOTYsIDAuNDEzNzU5LCAwLjQ5NzIwMiwgMC41NTI5ODEsIDAuNjM5ODg0LCAwLjcxNDgxNiwgMC44MjE1MTkiLCBcCi0gICAgICAgICAgIjAuMzE3NjA4LCAwLjQzMDk4MiwgMC41MTQ0NjYsIDAuNTcwMTIyLCAwLjY1NzAzNywgMC43MzIwNjksIDAuODM4Njg2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTAwNzQ0LCAwLjI0NTIxMSwgMC4zODI5MiwgMC40ODI4NDMsIDAuNjQ1MTMsIDAuNzg4ODU2LCAwLjk5NzA3MSIsIFwKLSAgICAgICAgICAiMC4xMDA3NTcsIDAuMjQ0OTYsIDAuMzgyNzYzLCAwLjQ4MzA5MiwgMC42NDQ5NjksIDAuNzg5MTYsIDAuOTk3MjYiLCBcCi0gICAgICAgICAgIjAuMTAwNjg3LCAwLjI0NTE4OCwgMC4zODI4NzUsIDAuNDgzMDczLCAwLjY0NTcwNSwgMC43ODk4MDcsIDAuOTk2NTcyIiwgXAotICAgICAgICAgICIwLjEwMDY4OCwgMC4yNDQ4ODksIDAuMzgyOTExLCAwLjQ4MzAyOCwgMC42NDUxMzMsIDAuNzg5ODUyLCAwLjk5NzEiLCBcCi0gICAgICAgICAgIjAuMTAwNzAxLCAwLjI0NDk2OSwgMC4zODI3OCwgMC40ODMxNTIsIDAuNjQ0OTEyLCAwLjc4ODgxOCwgMC45OTY5MSIsIFwKLSAgICAgICAgICAiMC4xMDAzNzEsIDAuMjQ1MDExLCAwLjM4MjgxOCwgMC40ODMxNDIsIDAuNjQ1MDU0LCAwLjc4ODc5NywgMC45OTY5NzEiLCBcCi0gICAgICAgICAgIjAuMTAwMzI4LCAwLjI0NTAwMSwgMC4zODI5NzcsIDAuNDgyOTI0LCAwLjY0NTE3NywgMC43ODk3NTgsIDAuOTk3MDk3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjM0MjQ5LCAwLjM0MTkwMSwgMC40MTY3OCwgMC40NjU2MSwgMC41NDA0MDksIDAuNjA0ODYsIDAuNjk2MTcxIiwgXAotICAgICAgICAgICIwLjI0NjEyMSwgMC4zNTM3ODgsIDAuNDI4NzIzLCAwLjQ3NzE1OCwgMC41NTIyOTIsIDAuNjE2NzUsIDAuNzA4MDE0IiwgXAotICAgICAgICAgICIwLjI2MDcyOSwgMC4zNjg1MzUsIDAuNDQzMTg1LCAwLjQ5MjAxMiwgMC41NjcxMzgsIDAuNjMxNDM5LCAwLjcyMjY0IiwgXAotICAgICAgICAgICIwLjI3NTEwOCwgMC4zODI1MjgsIDAuNDU3MTY5LCAwLjUwNjI2OSwgMC41ODEsIDAuNjQ1NDI5LCAwLjczNjY1OSIsIFwKLSAgICAgICAgICAiMC4yODg5OSwgMC4zOTY2MDQsIDAuNDcxMjU1LCAwLjUyMDE4NywgMC41OTUxMjIsIDAuNjU5NTQ5LCAwLjc1MDc0NCIsIFwKLSAgICAgICAgICAiMC4zMTAzOTMsIDAuNDE4MzE2LCAwLjQ5MjgyMiwgMC41NDEyNzQsIDAuNjE2Mzk4LCAwLjY4MDg0MSwgMC43NzE5NjkiLCBcCi0gICAgICAgICAgIjAuMzI3OTczLCAwLjQzNTQzNSwgMC41MTAwOTIsIDAuNTU5MDk3LCAwLjYzMzk2OSwgMC42OTgzNjksIDAuNzg5NTk3Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTAzMzk4LCAwLjIyOTcxMSwgMC4zNDg2MDYsIDAuNDM0NDA4LCAwLjU3Mzc2OSwgMC42OTc2MTgsIDAuODc3MTI3IiwgXAotICAgICAgICAgICIwLjEwMzQzMiwgMC4yMjk3MjgsIDAuMzQ4NDAyLCAwLjQzNDIwNSwgMC41NzM3ODcsIDAuNjk3NjE2LCAwLjg3NTkyIiwgXAotICAgICAgICAgICIwLjEwMzUzMSwgMC4yMjk2OTgsIDAuMzQ4Mjc1LCAwLjQzNDM3NSwgMC41NzM4OTUsIDAuNjk3NzUxLCAwLjg3NzMwOCIsIFwKLSAgICAgICAgICAiMC4xMDM1NDksIDAuMjI5NjY4LCAwLjM0ODU3OSwgMC40MzQ2NDIsIDAuNTczODMyLCAwLjY5NzY4MiwgMC44NzY0NTEiLCBcCi0gICAgICAgICAgIjAuMTAzMzMzLCAwLjIzMDAwNSwgMC4zNDg0NTksIDAuNDM0NDIzLCAwLjU3MzYwMywgMC42OTc2NDIsIDAuODc2MjQ5IiwgXAotICAgICAgICAgICIwLjEwMzUxNCwgMC4yMzAyNTcsIDAuMzQ4NDI0LCAwLjQzNDI1OCwgMC41NzM5NywgMC42OTc2NCwgMC44NzcxNDMiLCBcCi0gICAgICAgICAgIjAuMTAzMjc3LCAwLjIyOTk2NywgMC4zNDg0ODUsIDAuNDM0NDM2LCAwLjU3Mzc0NSwgMC42OTc1OCwgMC44NzYwOTkiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yNTA2ODksIDAuMzU1ODE3LCAwLjQzNjA0NywgMC40OTA3MDQsIDAuNTc2NjczLCAwLjY1MTQ4NiwgMC43NTgwMDgiLCBcCi0gICAgICAgICAgIjAuMjYyODk4LCAwLjM2NzgxNCwgMC40NDgxMDEsIDAuNTAyNzYzLCAwLjU4ODgwNiwgMC42NjM1MzksIDAuNzcwMDQ4IiwgXAotICAgICAgICAgICIwLjI3ODU5LCAwLjM4MzgwMywgMC40NjM5OTcsIDAuNTE4NjMyLCAwLjYwNDYyMSwgMC42Nzk0MDcsIDAuNzg1OTI1IiwgXAotICAgICAgICAgICIwLjI5MzU4NCwgMC4zOTg3MTcsIDAuNDc4OTk2LCAwLjUzMzU1MiwgMC42MTk1NiwgMC42OTQyNzcsIDAuODAwODMyIiwgXAotICAgICAgICAgICIwLjMwODcxLCAwLjQxMzkzOCwgMC40OTQxODcsIDAuNTQ4NzE4LCAwLjYzNDc1OCwgMC43MDk0NzgsIDAuODE2MDMyIiwgXAotICAgICAgICAgICIwLjMzMDc2NywgMC40MzU5NzQsIDAuNTE2MTUxLCAwLjU3MDc5NywgMC42NTY3OTgsIDAuNzMxNTQ5LCAwLjgzODA3MiIsIFwKLSAgICAgICAgICAiMC4zNDg2NjgsIDAuNDUzNDI5LCAwLjUzMzk0NywgMC41ODg0ODQsIDAuNjc0NTEyLCAwLjc0OTIyOCwgMC44NTU3ODIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODg3NDcsIDAuMjMwMjQ1LCAwLjM2OTAwOSwgMC40NzAxMzksIDAuNjM0MzE1LCAwLjc4MDIyNywgMC45ODY5MDgiLCBcCi0gICAgICAgICAgIjAuMDg4NzcyLCAwLjIzMDM4MywgMC4zNjkxODMsIDAuNDcwMTQ3LCAwLjYzNDAwMywgMC43ODAxMiwgMC45ODk1MDIiLCBcCi0gICAgICAgICAgIjAuMDg5MTU3LCAwLjIzMDE4LCAwLjM2OTE5LCAwLjQ3MDEzLCAwLjYzNDExOSwgMC43ODAwMzksIDAuOTg4NzI4IiwgXAotICAgICAgICAgICIwLjA4OTAxLCAwLjIzMDMzNCwgMC4zNjkwNTQsIDAuNDcwMTM2LCAwLjYzNDczOSwgMC43Nzk2ODgsIDAuOTg4ODY1IiwgXAotICAgICAgICAgICIwLjA4OTE0NSwgMC4yMzA1NDksIDAuMzY5MjI1LCAwLjQ3MDQ1OCwgMC42MzUwNCwgMC43Nzk3NTIsIDAuOTg4MDc0IiwgXAotICAgICAgICAgICIwLjA4ODk4NywgMC4yMzAzOTgsIDAuMzY5MDA0LCAwLjQ3MDEsIDAuNjM0NzEzLCAwLjc3OTkyMSwgMC45ODkwOTgiLCBcCi0gICAgICAgICAgIjAuMDg4OTgxLCAwLjIzMDI2MSwgMC4zNjkxOSwgMC40NzAwMywgMC42MzQ4ODYsIDAuNzc5NzE2LCAwLjk4ODc3NyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA4NjU0LCAwLjAwODg3MSwgMC4wMDg5NTgsIDAuMDA4OTkyLCAwLjAwOTAyNCwgMC4wMDkwNDIsIDAuMDA5MDU5IiwgXAotICAgICAgICAgICIwLjAwODY0MiwgMC4wMDg4NiwgMC4wMDg5NDgsIDAuMDA4OTgxLCAwLjAwOTAxNSwgMC4wMDkwMzIsIDAuMDA5MDQ5IiwgXAotICAgICAgICAgICIwLjAwODYzNCwgMC4wMDg4NTMsIDAuMDA4OTQyLCAwLjAwODk3MywgMC4wMDkwMDYsIDAuMDA5MDI0LCAwLjAwOTA0MSIsIFwKLSAgICAgICAgICAiMC4wMDg2MjksIDAuMDA4ODQ2LCAwLjAwODkzNSwgMC4wMDg5NjgsIDAuMDA5LCAwLjAwOTAxOCwgMC4wMDkwMzQiLCBcCi0gICAgICAgICAgIjAuMDA4NjI0LCAwLjAwODg0MiwgMC4wMDg5MywgMC4wMDg5NjMsIDAuMDA4OTk2LCAwLjAwOTAxMywgMC4wMDkwMyIsIFwKLSAgICAgICAgICAiMC4wMDg2MiwgMC4wMDg4MzgsIDAuMDA4OTI2LCAwLjAwODk1OSwgMC4wMDg5OTEsIDAuMDA5MDEsIDAuMDA5MDI2IiwgXAotICAgICAgICAgICIwLjAwODYxNSwgMC4wMDg4MzUsIDAuMDA4OTIzLCAwLjAwODk1NiwgMC4wMDg5ODksIDAuMDA5MDA3LCAwLjAwOTAyMSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA4NzA1LCAwLjAwODk5MywgMC4wMDkxMTIsIDAuMDA5MTU4LCAwLjAwOTIwMywgMC4wMDkyMjgsIDAuMDA5MjUyIiwgXAotICAgICAgICAgICIwLjAwODY5MSwgMC4wMDg5OCwgMC4wMDkwOTksIDAuMDA5MTQ1LCAwLjAwOTE5LCAwLjAwOTIxNSwgMC4wMDkyMzgiLCBcCi0gICAgICAgICAgIjAuMDA4Njc5LCAwLjAwODk2OSwgMC4wMDkwODgsIDAuMDA5MTM0LCAwLjAwOTE3OSwgMC4wMDkyMDQsIDAuMDA5MjI3IiwgXAotICAgICAgICAgICIwLjAwODY3MywgMC4wMDg5NjIsIDAuMDA5MDgxLCAwLjAwOTEyNywgMC4wMDkxNzMsIDAuMDA5MTk4LCAwLjAwOTIyMSIsIFwKLSAgICAgICAgICAiMC4wMDg2NjksIDAuMDA4OTU4LCAwLjAwOTA3NywgMC4wMDkxMjMsIDAuMDA5MTY4LCAwLjAwOTE5MywgMC4wMDkyMTciLCBcCi0gICAgICAgICAgIjAuMDA4NjY2LCAwLjAwODk1NCwgMC4wMDkwNzQsIDAuMDA5MTE5LCAwLjAwOTE2NSwgMC4wMDkxOSwgMC4wMDkyMTMiLCBcCi0gICAgICAgICAgIjAuMDA4NjY1LCAwLjAwODk1NCwgMC4wMDkwNzMsIDAuMDA5MTE4LCAwLjAwOTE2NCwgMC4wMDkxODksIDAuMDA5MjEzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDgzNzcsIDAuMDA4NTc3LCAwLjAwODY2MiwgMC4wMDg2OTQsIDAuMDA4NzI2LCAwLjAwODc0MywgMC4wMDg3NTgiLCBcCi0gICAgICAgICAgIjAuMDA4Mzg4LCAwLjAwODU4NSwgMC4wMDg2NywgMC4wMDg3MDMsIDAuMDA4NzM0LCAwLjAwODc1MiwgMC4wMDg3NjkiLCBcCi0gICAgICAgICAgIjAuMDA4NDE0LCAwLjAwODYwOCwgMC4wMDg2OTMsIDAuMDA4NzIyLCAwLjAwODc1NywgMC4wMDg3NzUsIDAuMDA4NzkzIiwgXAotICAgICAgICAgICIwLjAwODQzMSwgMC4wMDg2MjQsIDAuMDA4NzA3LCAwLjAwODczOSwgMC4wMDg3NzEsIDAuMDA4Nzg3LCAwLjAwODgwNiIsIFwKLSAgICAgICAgICAiMC4wMDg0NTUsIDAuMDA4NjQ3LCAwLjAwODcyOCwgMC4wMDg3NjEsIDAuMDA4NzkyLCAwLjAwODgxLCAwLjAwODgyNyIsIFwKLSAgICAgICAgICAiMC4wMDg0ODYsIDAuMDA4Njc0LCAwLjAwODc1MywgMC4wMDg3ODUsIDAuMDA4ODE3LCAwLjAwODgzNSwgMC4wMDg4NTIiLCBcCi0gICAgICAgICAgIjAuMDA4NTEsIDAuMDA4Njk0LCAwLjAwODc3MiwgMC4wMDg4MDYsIDAuMDA4ODM2LCAwLjAwODg1NiwgMC4wMDg4NzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNzk0MSwgMC4wMDgyMjUsIDAuMDA4MzQyLCAwLjAwODM4OCwgMC4wMDg0MzQsIDAuMDA4NDU5LCAwLjAwODQ4MyIsIFwKLSAgICAgICAgICAiMC4wMDc5MzcsIDAuMDA4MjIsIDAuMDA4MzM3LCAwLjAwODM4MywgMC4wMDg0MjgsIDAuMDA4NDUzLCAwLjAwODQ3OCIsIFwKLSAgICAgICAgICAiMC4wMDc5MzcsIDAuMDA4MjI0LCAwLjAwODM0LCAwLjAwODM4NiwgMC4wMDg0MzEsIDAuMDA4NDU2LCAwLjAwODQ4IiwgXAotICAgICAgICAgICIwLjAwNzk0MiwgMC4wMDgyMjcsIDAuMDA4MzQzLCAwLjAwODM4OSwgMC4wMDg0MzQsIDAuMDA4NDYsIDAuMDA4NDg0IiwgXAotICAgICAgICAgICIwLjAwNzk0NiwgMC4wMDgyMywgMC4wMDgzNDcsIDAuMDA4MzkyLCAwLjAwODQzNywgMC4wMDg0NjIsIDAuMDA4NDg3IiwgXAotICAgICAgICAgICIwLjAwNzk1LCAwLjAwODIzNSwgMC4wMDgzNTIsIDAuMDA4Mzk3LCAwLjAwODQ0MiwgMC4wMDg0NjgsIDAuMDA4NDkxIiwgXAotICAgICAgICAgICIwLjAwNzk1MSwgMC4wMDgyMzgsIDAuMDA4MzU1LCAwLjAwODQsIDAuMDA4NDQ2LCAwLjAwODQ3MSwgMC4wMDg0OTUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IE1YSTJYNCAqCi0gKiAtLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKE1YSTJYNCkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjI0MzMxODsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNTgwNzYyOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDU3OTE0NjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA1ODA3NjI7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMTUzLCAwLjAwMDE1NywgMC4wMDAxNTgsIDAuMDAwMTU5LCAwLjAwMDE1OSwgMC4wMDAxNTksIDAuMDAwMTYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxNjcsIDAuMDAwMTY2LCAwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiwgMC4wMDAxNjYiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYwMjEzMTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA1OTk4NzM7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjAyMTMxOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDE1OCwgMC4wMDAxNiwgMC4wMDAxNjEsIDAuMDAwMTYxLCAwLjAwMDE2MSwgMC4wMDAxNjIsIDAuMDAwMTYyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMTY4LCAwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY2Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxMzMwMDY7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxMzI5NTE7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxMzMwMDY7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMTk0LCAwLjAwMDE3NSwgMC4wMDAxNjQsIDAuMDAwMTYxLCAwLjAwMDE2LCAwLjAwMDE2LCAwLjAwMDE2MiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTQ2MiwgMC4wMDE0NDksIDAuMDAxNDQyLCAwLjAwMTQzOSwgMC4wMDE0MzgsIDAuMDAxNDM2LCAwLjAwMTQzNyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjUwNjk0OTsKLSAgICBmdW5jdGlvbiA6ICIoISgoUzAgQikgKyAoIVMwIEEpKSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTk4MzkyLCAwLjMyNjMwOSwgMC40NTIwNzYsIDAuNTQxODMzLCAwLjY4NTYyOCwgMC44MTEyOTMsIDAuOTkwNzg3IiwgXAotICAgICAgICAgICIwLjIwOTk3NSwgMC4zMzc4NDQsIDAuNDYzNjIyLCAwLjU1MzM4MywgMC42OTcwNjMsIDAuODIyNzU1LCAxLjAwMjM3IiwgXAotICAgICAgICAgICIwLjIyMzExOSwgMC4zNTEwMTMsIDAuNDc2NzQ1LCAwLjU2NjU0NCwgMC43MTAzMzksIDAuODM2MDExLCAxLjAxNTQ2IiwgXAotICAgICAgICAgICIwLjIzNTc5NCwgMC4zNjM2MzQsIDAuNDg5NDA1LCAwLjU3OTE2NywgMC43MjI4NjYsIDAuODQ4NTUzLCAxLjAyODExIiwgXAotICAgICAgICAgICIwLjI0ODEzMSwgMC4zNzYwMzMsIDAuNTAxODA3LCAwLjU5MTU3NiwgMC43MzUzMTMsIDAuODYxMDIyLCAxLjA0MDU2IiwgXAotICAgICAgICAgICIwLjI2Nzg2NiwgMC4zOTU2NjYsIDAuNTIxMzU2LCAwLjYxMTE0MSwgMC43NTQ5MTcsIDAuODgwNTcyLCAxLjA2MDIiLCBcCi0gICAgICAgICAgIjAuMjg0NzM1LCAwLjQxMjU5OCwgMC41MzgzNzcsIDAuNjI4MTM3LCAwLjc3MTg4NywgMC44OTc2MDIsIDEuMDc3MTIiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTkxOTcsIDAuMzA2NjU4LCAwLjU2MjU3OSwgMC43NDMzMzksIDEuMDM1NjIsIDEuMjkxMSwgMS42NTc0NyIsIFwKLSAgICAgICAgICAiMC4wNTkyMDgsIDAuMzA2MDExLCAwLjU2MjU4MSwgMC43NDUzNTEsIDEuMDM4MjMsIDEuMjkzNjcsIDEuNjYwNjMiLCBcCi0gICAgICAgICAgIjAuMDU5MjE2LCAwLjMwNjY3NSwgMC41NjIzODEsIDAuNzQ1MzI4LCAxLjAzNTUsIDEuMjkxMDksIDEuNjYwMTgiLCBcCi0gICAgICAgICAgIjAuMDU5MjIzLCAwLjMwNTk3OSwgMC41NjA4OTgsIDAuNzQ1MzU1LCAxLjAzNTYsIDEuMjk0NCwgMS42NjAzIiwgXAotICAgICAgICAgICIwLjA1OTE3NywgMC4zMDYwMjUsIDAuNTYyNTg3LCAwLjc0NTI4NywgMS4wMzU4NiwgMS4yOTQ2NSwgMS42NjA1NSIsIFwKLSAgICAgICAgICAiMC4wNTkyNjEsIDAuMzA2NjAxLCAwLjU2MDMxLCAwLjc0NDk0OCwgMS4wMzU5NSwgMS4yOTM5LCAxLjY2MDY1IiwgXAotICAgICAgICAgICIwLjA1OTIwNCwgMC4zMDU5OTgsIDAuNTYyNTc5LCAwLjc0NTMyOSwgMS4wMzU1MSwgMS4yOTEwOSwgMS42NjA1OCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIxMzgzMywgMC4zNjEyNzEsIDAuNTA2OTQ3LCAwLjYxMDk2OCwgMC43Nzc1NDYsIDAuOTIzMTA2LCAxLjEzMTAzIiwgXAotICAgICAgICAgICIwLjIyNTU5OSwgMC4zNzI5NTYsIDAuNTE4NjM4LCAwLjYyMjY0NCwgMC43ODkxNjMsIDAuOTM0Nzg2LCAxLjE0Mjc3IiwgXAotICAgICAgICAgICIwLjIzOTU4MSwgMC4zODY5MjEsIDAuNTMyNjEyLCAwLjYzNjYxOCwgMC44MDMxNCwgMC45NDg3NTgsIDEuMTU2NzQiLCBcCi0gICAgICAgICAgIjAuMjUzMjMyLCAwLjQwMDcwMiwgMC41NDYzOTgsIDAuNjUwNDEsIDAuODE2OTExLCAwLjk2MjUxLCAxLjE3MDU1IiwgXAotICAgICAgICAgICIwLjI2Njg5NiwgMC40MTQzMDMsIDAuNTYwMDExLCAwLjY2NDExMywgMC44MzA0NzcsIDAuOTc2MTkzLCAxLjE4NDE1IiwgXAotICAgICAgICAgICIwLjI4ODkxMSwgMC40MzY0MTksIDAuNTgyMTI3LCAwLjY4NjEyMiwgMC44NTI2MzMsIDAuOTk4MTgzLCAxLjIwNjI3IiwgXAotICAgICAgICAgICIwLjMwNzgzNSwgMC40NTUyNDksIDAuNjAwOTEyLCAwLjcwNDk0MiwgMC44NzE1MjgsIDEuMDE3MDgsIDEuMjI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDYzMTQ5LCAwLjM0NjUzNiwgMC42MzU4MzYsIDAuODQ1MDk5LCAxLjE3MjksIDEuNDY3ODksIDEuODgwNzUiLCBcCi0gICAgICAgICAgIjAuMDYyODQzLCAwLjM0NzIxNywgMC42Mzc0NzIsIDAuODQ1MDQ1LCAxLjE3NDY3LCAxLjQ2NzgyLCAxLjg4Mjc3IiwgXAotICAgICAgICAgICIwLjA2Mjg1NSwgMC4zNDcyMjIsIDAuNjM3NDcxLCAwLjg0NTAzNCwgMS4xNzQ2NSwgMS40Njc3MywgMS44ODI4NCIsIFwKLSAgICAgICAgICAiMC4wNjI4NTMsIDAuMzQ2NTEzLCAwLjYzNzQ3NywgMC44NDUwOTYsIDEuMTc0NTQsIDEuNDY3ODEsIDEuODgyNDIiLCBcCi0gICAgICAgICAgIjAuMDYyODc5LCAwLjM0NjcyNywgMC42Mzc0ODMsIDAuODQzNDI0LCAxLjE3NDY4LCAxLjQ2MzE5LCAxLjg4MjYiLCBcCi0gICAgICAgICAgIjAuMDYzMTMyLCAwLjM0NjkzMiwgMC42Mzc0OTEsIDAuODQ1MDk4LCAxLjE3NTAyLCAxLjQ2ODQ3LCAxLjg4MjUxIiwgXAotICAgICAgICAgICIwLjA2MzA4MywgMC4zNDY4MzMsIDAuNjM3Mjk5LCAwLjg0NTEwMiwgMS4xNzM0MywgMS40Njc2MywgMS44ODA4MSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIwMDE3OSwgMC4zMjgwNzYsIDAuNDUzODU3LCAwLjU0MzYxNiwgMC42ODczMDMsIDAuODEyOTg1LCAwLjk5MjU5MiIsIFwKLSAgICAgICAgICAiMC4yMTE2NDQsIDAuMzM5NTcyLCAwLjQ2NTM0NSwgMC41NTUxMSwgMC42OTg3OTIsIDAuODI0NDgyLCAxLjAwNDA4IiwgXAotICAgICAgICAgICIwLjIyNTA5MywgMC4zNTI5OTEsIDAuNDc4NzY5LCAwLjU2ODUyOSwgMC43MTIxODYsIDAuODM3OTc4LCAxLjAxNzUxIiwgXAotICAgICAgICAgICIwLjIzNzY0OCwgMC4zNjU1NTMsIDAuNDkxMzM5LCAwLjU4MTA5OSwgMC43MjQ3ODYsIDAuODUwNTQxLCAxLjAzMDA3IiwgXAotICAgICAgICAgICIwLjI1MDE0MSwgMC4zNzc5OTIsIDAuNTAzNzU5LCAwLjU5MzUyMSwgMC43MzczMSwgMC44NjI4ODUsIDEuMDQyNDkiLCBcCi0gICAgICAgICAgIjAuMjY5NzU3LCAwLjM5NzY3OSwgMC41MjM0NDYsIDAuNjEzMTQ2LCAwLjc1Njk5NCwgMC44ODI2NTYsIDEuMDYyMTgiLCBcCi0gICAgICAgICAgIjAuMjg2NTMzLCAwLjQxNDQ0NiwgMC41NDAyMTYsIDAuNjI5OTgyLCAwLjc3MzY2OSwgMC44OTkzNSwgMS4wNzg5NiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1OTI3MywgMC4zMDYwNDQsIDAuNTYyNjIsIDAuNzQ1MzY5LCAxLjAzODI3LCAxLjI5NDEzLCAxLjY2MDU3IiwgXAotICAgICAgICAgICIwLjA1OTI3MSwgMC4zMDYwNzQsIDAuNTYyNjE5LCAwLjc0NTM3LCAxLjAzODI2LCAxLjI5NDIsIDEuNjYwNTciLCBcCi0gICAgICAgICAgIjAuMDU5Mjc2LCAwLjMwNjAyNSwgMC41NjI2MjIsIDAuNzQ1Mzc5LCAxLjAzODE1LCAxLjI5NDcsIDEuNjYwNjEiLCBcCi0gICAgICAgICAgIjAuMDU5MjU2LCAwLjMwNjA1NywgMC41NjI2MDgsIDAuNzQ1MzU1LCAxLjAzODIzLCAxLjI5NDY2LCAxLjY2MDUxIiwgXAotICAgICAgICAgICIwLjA1OTI3LCAwLjMwNjIzOSwgMC41NjI2MjMsIDAuNzQ1MzgyLCAxLjAzNTYyLCAxLjI5MzkzLCAxLjY1Nzk0IiwgXAotICAgICAgICAgICIwLjA1OTI3NCwgMC4zMDY3MDQsIDAuNTYyNjA1LCAwLjc0NTA3OSwgMS4wMzUzOSwgMS4yOTQ3MywgMS42NTc3MSIsIFwKLSAgICAgICAgICAiMC4wNTkyNTMsIDAuMzA2Njk2LCAwLjU2MjYxOCwgMC43NDUzNjYsIDEuMDM4MjcsIDEuMjk0MzUsIDEuNjYwNTciKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMTM3MDUsIDAuMzYxMjA2LCAwLjUwNjkxMiwgMC42MTA5MywgMC43Nzc0ODgsIDAuOTIyOTY3LCAxLjEzMTA1IiwgXAotICAgICAgICAgICIwLjIyNTM3LCAwLjM3Mjg1OSwgMC41MTg1NCwgMC42MjI1NjYsIDAuNzg5MTMxLCAwLjkzNDcwMiwgMS4xNDI2MyIsIFwKLSAgICAgICAgICAiMC4yMzkzMzQsIDAuMzg2NzA2LCAwLjUzMjQsIDAuNjM2NDIxLCAwLjgwMjk4NiwgMC45NDg1MzksIDEuMTU2NTMiLCBcCi0gICAgICAgICAgIjAuMjUzMDQ3LCAwLjQwMDUxLCAwLjU0NjIwMiwgMC42NTAyNjIsIDAuODE2Nzg0LCAwLjk2MjMyNCwgMS4xNzAyOCIsIFwKLSAgICAgICAgICAiMC4yNjY2NjMsIDAuNDE0MTk1LCAwLjU1OTkwNSwgMC42NjM5MTIsIDAuODMwMzc4LCAwLjk3NTk3NywgMS4xODQwMyIsIFwKLSAgICAgICAgICAiMC4yODg3MjgsIDAuNDM2MjI2LCAwLjU4MTk0MywgMC42ODU5OTksIDAuODUyNTAyLCAwLjk5ODA3MiwgMS4yMDYxMSIsIFwKLSAgICAgICAgICAiMC4zMDc3NTYsIDAuNDU1MzU4LCAwLjYwMTA0NywgMC43MDUxMDEsIDAuODcxNjM3LCAxLjAxNzE0LCAxLjIyNTE0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDYzMTM3LCAwLjM0NjY1NCwgMC42Mzc1MTksIDAuODQzMDQyLCAxLjE3Mjk3LCAxLjQ2ODQsIDEuODgyODUiLCBcCi0gICAgICAgICAgIjAuMDYzMTgsIDAuMzQ2NTk0LCAwLjYzNzM0OSwgMC44NDUwNDksIDEuMTczMDgsIDEuNDY3ODIsIDEuODgzNjciLCBcCi0gICAgICAgICAgIjAuMDYyOTA0LCAwLjM0NzI5MSwgMC42Mzc1MDgsIDAuODQzODg0LCAxLjE3Mjk4LCAxLjQ2Nzg1LCAxLjg4Mjk0IiwgXAotICAgICAgICAgICIwLjA2Mjg4NCwgMC4zNDYyMzIsIDAuNjM3NDk4LCAwLjg0NTE5OSwgMS4xNzMwNCwgMS40NjY1OCwgMS44ODA3NSIsIFwKLSAgICAgICAgICAiMC4wNjMxMTEsIDAuMzQ2OTAxLCAwLjYzNzUyNywgMC44NDUxMjcsIDEuMTc3NzQsIDEuNDY1NTksIDEuODgyNzkiLCBcCi0gICAgICAgICAgIjAuMDYzMTc3LCAwLjM0NjY0LCAwLjYzNzU0LCAwLjg0Mjk1LCAxLjE3MzA0LCAxLjQ2Nzc1LCAxLjg3OTA5IiwgXAotICAgICAgICAgICIwLjA2MzEyOSwgMC4zNDY3NTcsIDAuNjM3NDkyLCAwLjg0MzY0MiwgMS4xNzMsIDEuNDY0NjIsIDEuODgzMjEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUzAiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjE3OTU2LCAwLjM0NTkwMSwgMC40NzE2NjksIDAuNTYxNDM1LCAwLjcwNTE3OCwgMC44MzA4ODEsIDEuMDEwNDEiLCBcCi0gICAgICAgICAgIjAuMjI5OTc5LCAwLjM1NzkyMSwgMC40ODM2OSwgMC41NzM0NjUsIDAuNzE3MjM5LCAwLjg0Mjg5NiwgMS4wMjI0MyIsIFwKLSAgICAgICAgICAiMC4yNDU2MTksIDAuMzczNTI3LCAwLjQ5OTMwMiwgMC41ODkwNjUsIDAuNzMyNzU3LCAwLjg1ODQ0MSwgMS4wMzgwNCIsIFwKLSAgICAgICAgICAiMC4yNjA1MjcsIDAuMzg4NDQ4LCAwLjUxNDI0NSwgMC42MDQwNjUsIDAuNzQ3NzgsIDAuODczMzc5LCAxLjA1MzA3IiwgXAotICAgICAgICAgICIwLjI3NDgzNSwgMC40MDI2ODIsIDAuNTI4NDQ4LCAwLjYxODExNSwgMC43NjE5OTgsIDAuODg3NTc0LCAxLjA2NzIiLCBcCi0gICAgICAgICAgIjAuMjk1NzM5LCAwLjQyMzU5LCAwLjU0OTM1NiwgMC42MzkxMTgsIDAuNzgyOTA3LCAwLjkwODQ4MSwgMS4wODgwOSIsIFwKLSAgICAgICAgICAiMC4zMTIxMzYsIDAuNDQwMDQ1LCAwLjU2NTg0MSwgMC42NTU1OCwgMC43OTkzMDMsIDAuOTI1MDE3LCAxLjEwNDU1Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU5MjYxLCAwLjMwNjAxNSwgMC41NjI2MzYsIDAuNzQ1NDEyLCAxLjAzNTkyLCAxLjI5NDc5LCAxLjY2MDY3IiwgXAotICAgICAgICAgICIwLjA1OTI2NiwgMC4zMDYwMTYsIDAuNTYyNjIxLCAwLjc0MzU0MiwgMS4wMzUyNSwgMS4yOTQ3OCwgMS42NjA2MiIsIFwKLSAgICAgICAgICAiMC4wNTkyNSwgMC4zMDYwNjksIDAuNTYyNjI3LCAwLjc0NTM4MiwgMS4wMzgzMSwgMS4yOTQ0MSwgMS42NjA1OSIsIFwKLSAgICAgICAgICAiMC4wNTkyNDQsIDAuMzA2Njk0LCAwLjU2MjYyMSwgMC43NDM2OTEsIDEuMDM1NDIsIDEuMjkyMDYsIDEuNjU2MjUiLCBcCi0gICAgICAgICAgIjAuMDU5MzI0LCAwLjMwNjIyMiwgMC41NjI2MjIsIDAuNzQzOTI5LCAxLjAzNTYyLCAxLjI5MzksIDEuNjU2NjgiLCBcCi0gICAgICAgICAgIjAuMDU5MjgxLCAwLjMwNjIsIDAuNTYyNjIzLCAwLjc0NTM5LCAxLjAzNTYxLCAxLjI5MzkyLCAxLjY1ODA1IiwgXAotICAgICAgICAgICIwLjA1OTI2NCwgMC4zMDY3MDUsIDAuNTYyNjI1LCAwLjc0NTMzNywgMS4wMzU4MSwgMS4yOTQ2NywgMS42NjA1MiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIyODUwNSwgMC4zNzYwMTksIDAuNTIxNzI2LCAwLjYyNTc0OCwgMC43OTIyMjgsIDAuOTM3ODExLCAxLjE0NTg3IiwgXAotICAgICAgICAgICIwLjI0MDU3LCAwLjM4ODEwMSwgMC41MzM4MDksIDAuNjM3ODQxLCAwLjgwNDMwOSwgMC45NDk5OTUsIDEuMTU3OTUiLCBcCi0gICAgICAgICAgIjAuMjU1Mzg3LCAwLjQwMjkwOCwgMC41NDg1OTIsIDAuNjUyNjExLCAwLjgxOTEyNiwgMC45NjQ3NTUsIDEuMTcyNzMiLCBcCi0gICAgICAgICAgIjAuMjY5NTAyLCAwLjQxNzAxNywgMC41NjI3MjYsIDAuNjY2NzUzLCAwLjgzMzIyNiwgMC45Nzg4MTYsIDEuMTg2ODciLCBcCi0gICAgICAgICAgIjAuMjgyMDA2LCAwLjQyOTU1MywgMC41NzUyMTgsIDAuNjc5MjM2LCAwLjg0NTc0NSwgMC45OTEzNzQsIDEuMTk5MzUiLCBcCi0gICAgICAgICAgIjAuMjk5Njk3LCAwLjQ0NzI3NywgMC41OTI5NSwgMC42OTcwMTksIDAuODYzNDk1LCAxLjAwOTA2LCAxLjIxNzA0IiwgXAotICAgICAgICAgICIwLjMxMzU0MiwgMC40NjEwNTMsIDAuNjA2NzU3LCAwLjcxMDc1MiwgMC44NzcyNjEsIDEuMDIyODIsIDEuMjMwOTEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjMxNCwgMC4zNDY5MiwgMC42Mzc0OTUsIDAuODQ1MTI2LCAxLjE3NDEzLCAxLjQ2ODEzLCAxLjg4MjUxIiwgXAotICAgICAgICAgICIwLjA2MzEwNiwgMC4zNDY4OTcsIDAuNjM3NDk4LCAwLjg0MjkzNSwgMS4xNzM4NCwgMS40NjI5OCwgMS44ODI1MSIsIFwKLSAgICAgICAgICAiMC4wNjMwNTUsIDAuMzQ3MiwgMC42MzYyMTksIDAuODQ1MDA5LCAxLjE3MzQ2LCAxLjQ2NDU0LCAxLjg4Mjc1IiwgXAotICAgICAgICAgICIwLjA2MzEwNSwgMC4zNDY5MDUsIDAuNjM3NDk3LCAwLjg0NTEzOCwgMS4xNzQwMiwgMS40NjgwMSwgMS44ODI1MSIsIFwKLSAgICAgICAgICAiMC4wNjMwMjksIDAuMzQ3MTc4LCAwLjYzNjI2NiwgMC44NDUwMDgsIDEuMTczNzcsIDEuNDY0NzEsIDEuODgyNzIiLCBcCi0gICAgICAgICAgIjAuMDYzMDg1LCAwLjM0NjcxOSwgMC42MzcyMzgsIDAuODQyNTU5LCAxLjE3NDQ1LCAxLjQ2NDk2LCAxLjg4MDciLCBcCi0gICAgICAgICAgIjAuMDYzMTgxLCAwLjM0NjcwNiwgMC42Mzc0ODYsIDAuODQ0OTg5LCAxLjE3NDMsIDEuNDY4MzcsIDEuODgyNDUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUzAiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTg1NzA2LCAwLjMxMzU5NiwgMC40MzkzOTEsIDAuNTI5MTMsIDAuNjcyODYsIDAuNzk4NTczLCAwLjk3ODExNCIsIFwKLSAgICAgICAgICAiMC4xOTU5NSwgMC4zMjM4NDYsIDAuNDQ5NTk5LCAwLjUzOTM5LCAwLjY4MzExMSwgMC44MDg4MjgsIDAuOTg4MzciLCBcCi0gICAgICAgICAgIjAuMjA5MDY3LCAwLjMzNjg5OCwgMC40NjI2NjUsIDAuNTUyNDI3LCAwLjY5NjEzMywgMC44MjE3ODcsIDEuMDAxMzUiLCBcCi0gICAgICAgICAgIjAuMjIyMTk0LCAwLjM1MDA4NSwgMC40NzU4OCwgMC41NjU2MTksIDAuNzA5MzM3LCAwLjgzNTA2LCAxLjAxNDYiLCBcCi0gICAgICAgICAgIjAuMjM1MjU3LCAwLjM2MzE0NywgMC40ODg5NDEsIDAuNTc4NjgsIDAuNzIyNDAzLCAwLjg0ODExOSwgMS4wMjc2NiIsIFwKLSAgICAgICAgICAiMC4yNTY0ODksIDAuMzg0MzU2LCAwLjUxMDEzMywgMC41OTk4OTQsIDAuNzQzNTcyLCAwLjg2OTI2MiwgMS4wNDg4OCIsIFwKLSAgICAgICAgICAiMC4yNzQ4MzUsIDAuNDAyNjcsIDAuNTI4NDQsIDAuNjE4MjAyLCAwLjc2MTkwNiwgMC44ODc2MDQsIDEuMDY3MjEiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTkxOCwgMC4zMDY2NjEsIDAuNTYwODY5LCAwLjc0NTI3OSwgMS4wMzU5OCwgMS4yOTQ2NSwgMS42NjA1MyIsIFwKLSAgICAgICAgICAiMC4wNTkxODEsIDAuMzA2MDI1LCAwLjU2MTUwOSwgMC43NDUzMTEsIDEuMDM1NzcsIDEuMjk0NjMsIDEuNjYwNTUiLCBcCi0gICAgICAgICAgIjAuMDU5MjE4LCAwLjMwNjIzNCwgMC41NjA5NDQsIDAuNzQ1MzU3LCAxLjAzNTg2LCAxLjI5NDI5LCAxLjY1NzQzIiwgXAotICAgICAgICAgICIwLjA1OTE3NywgMC4zMDY2NjQsIDAuNTYxMTk0LCAwLjc0NTI5NywgMS4wMzU2NSwgMS4yOTQ2NSwgMS42NjA1NCIsIFwKLSAgICAgICAgICAiMC4wNTkxNTgsIDAuMzA2NjYzLCAwLjU2MDgyNiwgMC43NDUyOTMsIDEuMDM1NzcsIDEuMjk0NjMsIDEuNjYwNTIiLCBcCi0gICAgICAgICAgIjAuMDU5MjMsIDAuMzA2MDA1LCAwLjU2MjU4LCAwLjc0NTM0NiwgMS4wMzgyMiwgMS4yOTQxOCwgMS42NjA2NCIsIFwKLSAgICAgICAgICAiMC4wNTkyMDgsIDAuMzA2MTYzLCAwLjU2MTAxOSwgMC43NDUzNTcsIDEuMDM1NjYsIDEuMjk0NDcsIDEuNjYwNzMiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xOTk4NDEsIDAuMzQ3NDUyLCAwLjQ5MzE1MiwgMC41OTcxODQsIDAuNzYzNzIzLCAwLjkwOTI3OCwgMS4xMTcyOCIsIFwKLSAgICAgICAgICAiMC4yMTAyOTUsIDAuMzU3ODM0LCAwLjUwMzUzNiwgMC42MDc2NDYsIDAuNzc0MTE1LCAwLjkxOTc2MSwgMS4xMjc2NiIsIFwKLSAgICAgICAgICAiMC4yMjQwNjMsIDAuMzcxNTUyLCAwLjUxNzIzNywgMC42MjEyNTYsIDAuNzg3ODE2LCAwLjkzMzM4OCwgMS4xNDEzNCIsIFwKLSAgICAgICAgICAiMC4yMzc0NzgsIDAuMzg1MDA4LCAwLjUzMDcxNCwgMC42MzQ3MTksIDAuODAxMjEzLCAwLjk0Njg2NCwgMS4xNTQ4MiIsIFwKLSAgICAgICAgICAiMC4yNTExNjcsIDAuMzk4NjM3LCAwLjU0NDM1NSwgMC42NDg0MjUsIDAuODE0OTEsIDAuOTYwNDIsIDEuMTY4NDQiLCBcCi0gICAgICAgICAgIjAuMjczMTg3LCAwLjQyMDU2MywgMC41NjYyNDEsIDAuNjcwMjU3LCAwLjgzNjg3MiwgMC45ODI0NjMsIDEuMTkwNDMiLCBcCi0gICAgICAgICAgIjAuMjkyNTgyLCAwLjQ0MDE3MiwgMC41ODU4NTcsIDAuNjg5ODgsIDAuODU2NDQ0LCAxLjAwMjAyLCAxLjIwOTkzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDYzMTMsIDAuMzQ2NCwgMC42Mzc1MTQsIDAuODQ1MTY4LCAxLjE3MzAzLCAxLjQ2ODA3LCAxLjg4MzEyIiwgXAotICAgICAgICAgICIwLjA2MzE3MywgMC4zNDYyNjgsIDAuNjM3NTE5LCAwLjg0MzMzLCAxLjE3NDE5LCAxLjQ2NDEyLCAxLjg4Mjg3IiwgXAotICAgICAgICAgICIwLjA2MzE3MiwgMC4zNDY1OTIsIDAuNjM3NDQ3LCAwLjg0NTA0NSwgMS4xNzMxMSwgMS40Njc4LCAxLjg4MzI4IiwgXAotICAgICAgICAgICIwLjA2MzA2OSwgMC4zNDY4ODYsIDAuNjM3NTIzLCAwLjg0NTExMiwgMS4xNzQ3MywgMS40NjQxMSwgMS44ODI4OSIsIFwKLSAgICAgICAgICAiMC4wNjI4OTcsIDAuMzQ2MTQ0LCAwLjYzNzU0NiwgMC44NDIyMjQsIDEuMTczMDMsIDEuNDY0NzYsIDEuODgyOTUiLCBcCi0gICAgICAgICAgIjAuMDYyOTIyLCAwLjM0NjA4LCAwLjYzNzUxMSwgMC44NDQwMDQsIDEuMTczMjcsIDEuNDY3NjgsIDEuODgyNzgiLCBcCi0gICAgICAgICAgIjAuMDYzMTEyLCAwLjM0NjUzNiwgMC42MzczODksIDAuODQ1MDE5LCAxLjE3MzA0LCAxLjQ2NzcxLCAxLjg4MzUyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDYwMzEsIDAuMDA2MTM0LCAwLjAwNjE1LCAwLjAwNjE1NSwgMC4wMDYxNTUsIDAuMDA2MTU4LCAwLjAwNjE2MiIsIFwKLSAgICAgICAgICAiMC4wMDYwMjcsIDAuMDA2MTI5LCAwLjAwNjE0OCwgMC4wMDYxNTEsIDAuMDA2MTUxLCAwLjAwNjE1MiwgMC4wMDYxNTQiLCBcCi0gICAgICAgICAgIjAuMDA2MDIyLCAwLjAwNjEyNSwgMC4wMDYxMzksIDAuMDA2MTQzLCAwLjAwNjE0NiwgMC4wMDYxNSwgMC4wMDYxNSIsIFwKLSAgICAgICAgICAiMC4wMDYwMjEsIDAuMDA2MTI1LCAwLjAwNjEzNiwgMC4wMDYxNCwgMC4wMDYxNDQsIDAuMDA2MTQ2LCAwLjAwNjE1MiIsIFwKLSAgICAgICAgICAiMC4wMDYwMTcsIDAuMDA2MTIsIDAuMDA2MTM4LCAwLjAwNjEzOCwgMC4wMDYxNDUsIDAuMDA2MTQzLCAwLjAwNjEzOSIsIFwKLSAgICAgICAgICAiMC4wMDYwMTUsIDAuMDA2MTE3LCAwLjAwNjEzMSwgMC4wMDYxMzQsIDAuMDA2MTQxLCAwLjAwNjE0MywgMC4wMDYxNDEiLCBcCi0gICAgICAgICAgIjAuMDA2MDExLCAwLjAwNjExNiwgMC4wMDYxMzEsIDAuMDA2MTM1LCAwLjAwNjEzNCwgMC4wMDYxMzYsIDAuMDA2MTM4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDUwMTYsIDAuMDA1MTY1LCAwLjAwNTE4OCwgMC4wMDUxOTQsIDAuMDA1MiwgMC4wMDUyMDQsIDAuMDA1MjA2IiwgXAotICAgICAgICAgICIwLjAwNTAwNywgMC4wMDUxNTUsIDAuMDA1MTc3LCAwLjAwNTE4NCwgMC4wMDUxOSwgMC4wMDUxOTMsIDAuMDA1MTk2IiwgXAotICAgICAgICAgICIwLjAwNTAwMSwgMC4wMDUxNDksIDAuMDA1MTcxLCAwLjAwNTE3OCwgMC4wMDUxODQsIDAuMDA1MTg3LCAwLjAwNTE5IiwgXAotICAgICAgICAgICIwLjAwNDk5NiwgMC4wMDUxNDUsIDAuMDA1MTY3LCAwLjAwNTE3NCwgMC4wMDUxOCwgMC4wMDUxODMsIDAuMDA1MTg2IiwgXAotICAgICAgICAgICIwLjAwNDk5MywgMC4wMDUxNCwgMC4wMDUxNjMsIDAuMDA1MTY5LCAwLjAwNTE3NiwgMC4wMDUxNzksIDAuMDA1MTgyIiwgXAotICAgICAgICAgICIwLjAwNDk4NSwgMC4wMDUxMzcsIDAuMDA1MTU5LCAwLjAwNTE2NiwgMC4wMDUxNzIsIDAuMDA1MTc1LCAwLjAwNTE3OCIsIFwKLSAgICAgICAgICAiMC4wMDQ5ODQsIDAuMDA1MTM0LCAwLjAwNTE1NiwgMC4wMDUxNjIsIDAuMDA1MTY4LCAwLjAwNTE3MSwgMC4wMDUxNzQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjEyMSwgMC4wMDYyMjMsIDAuMDA2MjQxLCAwLjAwNjI0NSwgMC4wMDYyNDUsIDAuMDA2MjQ2LCAwLjAwNjI0OCIsIFwKLSAgICAgICAgICAiMC4wMDYxMTQsIDAuMDA2MjE3LCAwLjAwNjIzNSwgMC4wMDYyMzUsIDAuMDA2MjM5LCAwLjAwNjI0MSwgMC4wMDYyMzgiLCBcCi0gICAgICAgICAgIjAuMDA2MTEzLCAwLjAwNjIxNSwgMC4wMDYyMzMsIDAuMDA2MjM3LCAwLjAwNjIzNiwgMC4wMDYyMzgsIDAuMDA2MjQiLCBcCi0gICAgICAgICAgIjAuMDA2MTA5LCAwLjAwNjIxMSwgMC4wMDYyMjUsIDAuMDA2MjI5LCAwLjAwNjIzNywgMC4wMDYyMywgMC4wMDYyMzEiLCBcCi0gICAgICAgICAgIjAuMDA2MTA3LCAwLjAwNjIwOSwgMC4wMDYyMjMsIDAuMDA2MjMsIDAuMDA2MjMxLCAwLjAwNjIzNiwgMC4wMDYyMzQiLCBcCi0gICAgICAgICAgIjAuMDA2MTAzLCAwLjAwNjIwNiwgMC4wMDYyMiwgMC4wMDYyMjQsIDAuMDA2MjI3LCAwLjAwNjIzMiwgMC4wMDYyMzEiLCBcCi0gICAgICAgICAgIjAuMDA2MSwgMC4wMDYyMDUsIDAuMDA2MjE5LCAwLjAwNjIyMiwgMC4wMDYyMjMsIDAuMDA2MjI4LCAwLjAwNjIyNyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0OTUxLCAwLjAwNTA5OCwgMC4wMDUxMiwgMC4wMDUxMjcsIDAuMDA1MTM0LCAwLjAwNTEzNywgMC4wMDUxNCIsIFwKLSAgICAgICAgICAiMC4wMDQ5NDEsIDAuMDA1MDg4LCAwLjAwNTExLCAwLjAwNTExNywgMC4wMDUxMjQsIDAuMDA1MTI3LCAwLjAwNTEzIiwgXAotICAgICAgICAgICIwLjAwNDkzMywgMC4wMDUwODEsIDAuMDA1MTA0LCAwLjAwNTExMSwgMC4wMDUxMTcsIDAuMDA1MTIxLCAwLjAwNTEyNCIsIFwKLSAgICAgICAgICAiMC4wMDQ5MjksIDAuMDA1MDc3LCAwLjAwNTEsIDAuMDA1MTA3LCAwLjAwNTExMywgMC4wMDUxMTYsIDAuMDA1MTE5IiwgXAotICAgICAgICAgICIwLjAwNDkyMywgMC4wMDUwNzQsIDAuMDA1MDk2LCAwLjAwNTEwMywgMC4wMDUxMDksIDAuMDA1MTEzLCAwLjAwNTExNSIsIFwKLSAgICAgICAgICAiMC4wMDQ5MjMsIDAuMDA1MDcsIDAuMDA1MDkyLCAwLjAwNTA5OSwgMC4wMDUxMDUsIDAuMDA1MTA5LCAwLjAwNTExMiIsIFwKLSAgICAgICAgICAiMC4wMDQ5MTksIDAuMDA1MDY2LCAwLjAwNTA4OCwgMC4wMDUwOTUsIDAuMDA1MTAxLCAwLjAwNTEwNCwgMC4wMDUxMDciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTMCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDU4ODEsIDAuMDA1OTg1LCAwLjAwNiwgMC4wMDYwMDEsIDAuMDA2MDEsIDAuMDA2MDAzLCAwLjAwNjAwOCIsIFwKLSAgICAgICAgICAiMC4wMDU4NzEsIDAuMDA1OTc1LCAwLjAwNTk4OCwgMC4wMDU5OTUsIDAuMDA1OTk1LCAwLjAwNiwgMC4wMDU5OTkiLCBcCi0gICAgICAgICAgIjAuMDA1ODY2LCAwLjAwNTk2OSwgMC4wMDU5ODMsIDAuMDA1OTkxLCAwLjAwNTk5MSwgMC4wMDU5OTYsIDAuMDA1OTg5IiwgXAotICAgICAgICAgICIwLjAwNTg2MywgMC4wMDU5NjYsIDAuMDA1OTc5LCAwLjAwNTk4MywgMC4wMDU5ODYsIDAuMDA1OTg4LCAwLjAwNTk5IiwgXAotICAgICAgICAgICIwLjAwNTg2MywgMC4wMDU5NjQsIDAuMDA1OTgxLCAwLjAwNTk4MiwgMC4wMDU5ODUsIDAuMDA1OTkxLCAwLjAwNTk5MyIsIFwKLSAgICAgICAgICAiMC4wMDU4NjIsIDAuMDA1OTY0LCAwLjAwNTk3NywgMC4wMDU5ODEsIDAuMDA1OTg0LCAwLjAwNTk5LCAwLjAwNTk5MiIsIFwKLSAgICAgICAgICAiMC4wMDU4NjIsIDAuMDA1OTY0LCAwLjAwNTk3OCwgMC4wMDU5ODIsIDAuMDA1OTg0LCAwLjAwNTk4NywgMC4wMDU5ODgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjM2NCwgMC4wMDY1MTcsIDAuMDA2NTM5LCAwLjAwNjU0NiwgMC4wMDY1NTIsIDAuMDA2NTU1LCAwLjAwNjU1OCIsIFwKLSAgICAgICAgICAiMC4wMDYzNjIsIDAuMDA2NTE0LCAwLjAwNjUzNywgMC4wMDY1NDMsIDAuMDA2NTUsIDAuMDA2NTUyLCAwLjAwNjU1NSIsIFwKLSAgICAgICAgICAiMC4wMDYzNjQsIDAuMDA2NTEzLCAwLjAwNjUzNSwgMC4wMDY1NDIsIDAuMDA2NTQ4LCAwLjAwNjU1MSwgMC4wMDY1NTMiLCBcCi0gICAgICAgICAgIjAuMDA2MzU3LCAwLjAwNjUwOSwgMC4wMDY1MzIsIDAuMDA2NTM5LCAwLjAwNjU0NSwgMC4wMDY1NDgsIDAuMDA2NTUxIiwgXAotICAgICAgICAgICIwLjAwNjM2MSwgMC4wMDY1MDgsIDAuMDA2NTMsIDAuMDA2NTM2LCAwLjAwNjU0MiwgMC4wMDY1NDUsIDAuMDA2NTQ4IiwgXAotICAgICAgICAgICIwLjAwNjM1OCwgMC4wMDY1MDYsIDAuMDA2NTI4LCAwLjAwNjUzNSwgMC4wMDY1NDEsIDAuMDA2NTQ0LCAwLjAwNjU0NyIsIFwKLSAgICAgICAgICAiMC4wMDYzNTIsIDAuMDA2NTA1LCAwLjAwNjUyNywgMC4wMDY1MzQsIDAuMDA2NTQsIDAuMDA2NTQzLCAwLjAwNjU0NiIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogTkFORDRCQlgxICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoTkFORDRCQlgxKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMTY3NzQ0OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBTikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNTgzNTU3OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDU4MzI0ODsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA1ODM1NTc7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNDE1LCAwLjAwMDM5OSwgMC4wMDAzODgsIDAuMDAwMzgzLCAwLjAwMDM4LCAwLjAwMDM3OCwgMC4wMDAzNzgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDExOTMsIDAuMDAxMTgyLCAwLjAwMTE3NCwgMC4wMDExNzIsIDAuMDAxMTY5LCAwLjAwMTE2OCwgMC4wMDExNjgiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEJOKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA1NzYyMTc7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNTc1Njg3OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDU3NjIxNzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAzNjcsIDAuMDAwMzUxLCAwLjAwMDM0LCAwLjAwMDMzNiwgMC4wMDAzMzQsIDAuMDAwMzMyLCAwLjAwMDMzMiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTI5MywgMC4wMDEyODIsIDAuMDAxMjc1LCAwLjAwMTI3MiwgMC4wMDEyNjgsIDAuMDAxMjY4LCAwLjAwMTI2OCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQykgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwODY4ODYxOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDg2ODg2MTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA4NjY5MTU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzA2LCAwLjAwMDMwNiwgMC4wMDAzMDYsIDAuMDAwMzA2LCAwLjAwMDMwNiwgMC4wMDAzMDYsIDAuMDAwMzA2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzIyLCAwLjAwMDMxMSwgMC4wMDAzMDksIDAuMDAwMzA4LCAwLjAwMDMwOCwgMC4wMDAzMDgsIDAuMDAwMzA4Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihEKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA4OTA3NzM7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwODkwMDA4OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDg5MDc3MzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxNTcsIDAuMDAwMTU2LCAwLjAwMDE1NiwgMC4wMDAxNTYsIDAuMDAwMTU2LCAwLjAwMDE1NiwgMC4wMDAxNTYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAzNDcsIDAuMDAwMzQ4LCAwLjAwMDM0OCwgMC4wMDAzNDgsIDAuMDAwMzQ4LCAwLjAwMDM0OCwgMC4wMDAzNDgiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4wMzM0NjI7Ci0gICAgZnVuY3Rpb24gOiAiKCEoKCgoIUJOKSAoIUFOKSkgQykgRCkpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTMzNjU2LCAwLjE3Njg2OSwgMC40MTk4MzUsIDAuNjMzNzQ0LCAwLjkxODc3NiwgMS40ODg2MSwgMS44NDQ3IiwgXAotICAgICAgICAgICIwLjE0NTM4OCwgMC4xODg1OTIsIDAuNDMxNTk0LCAwLjY0NTQ2NCwgMC45MzA1MSwgMS41MDAyOSwgMS44NTY3NyIsIFwKLSAgICAgICAgICAiMC4xNjA5ODUsIDAuMjA0MTg3LCAwLjQ0NzE4OCwgMC42NjEwOTksIDAuOTQ2MTU5LCAxLjUxNjA3LCAxLjg3MjQzIiwgXAotICAgICAgICAgICIwLjE3NTk3NiwgMC4yMTkxNjcsIDAuNDYyMTcyLCAwLjY3NjA3NiwgMC45NjExNDUsIDEuNTMxMDEsIDEuODg2ODMiLCBcCi0gICAgICAgICAgIjAuMTkwODgyLCAwLjIzNDA4NCwgMC40NzcwODcsIDAuNjkxMDE0LCAwLjk3NjA2NiwgMS41NDYxMSwgMS45MDIxMSIsIFwKLSAgICAgICAgICAiMC4yMTIzNzYsIDAuMjU1NTgyLCAwLjQ5ODU0NSwgMC43MTI0NDgsIDAuOTk3NDgxLCAxLjU2NzM2LCAxLjkyMzIxIiwgXAotICAgICAgICAgICIwLjIzMDgxLCAwLjI3Mzk3MywgMC41MTY5NzMsIDAuNzMwODMxLCAxLjAxNTkyLCAxLjU4NTgzLCAxLjk0MjI1Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE4MjcyNCwgMC4yNjkxODMsIDAuNzYxMDc5LCAxLjE5NDc1LCAxLjc3MzE2LCAyLjkzMjA1LCAzLjY1Mjg2IiwgXAotICAgICAgICAgICIwLjE4MjYwMywgMC4yNjkxODUsIDAuNzYxMDg3LCAxLjE5NTM3LCAxLjc3MzQ5LCAyLjkyOTkxLCAzLjY1NDI5IiwgXAotICAgICAgICAgICIwLjE4MjYyMiwgMC4yNjkxODQsIDAuNzYxMDU0LCAxLjE5NDk1LCAxLjc3MzIzLCAyLjkzMTk1LCAzLjY1NDUxIiwgXAotICAgICAgICAgICIwLjE4MjcxNywgMC4yNjkxODcsIDAuNzYxMDU4LCAxLjE5NDksIDEuNzczMjQsIDIuOTMwNzcsIDMuNjUzNTMiLCBcCi0gICAgICAgICAgIjAuMTgyNzMyLCAwLjI2OTI4NywgMC43NjEwNjEsIDEuMTk0OTEsIDEuNzczODcsIDIuOTMxMDUsIDMuNjU0MDUiLCBcCi0gICAgICAgICAgIjAuMTgzMTI3LCAwLjI2OTM1NywgMC43NjA3NDgsIDEuMTk0NzQsIDEuNzc0NzIsIDIuOTMwODUsIDMuNjUzNDYiLCBcCi0gICAgICAgICAgIjAuMTgzNjA5LCAwLjI2OTQ1OCwgMC43NjA5NTYsIDEuMTk0NzksIDEuNzczMTEsIDIuOTMxOSwgMy42NTM1NCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC40NjAwNTksIDAuNjU2MDQxLCAxLjc2NzMzLCAyLjc0Nzg5LCA0LjA1MzkxLCA2LjY2NjMsIDguMjk5MTciLCBcCi0gICAgICAgICAgIjAuNDcxNTksIDAuNjY3NjU0LCAxLjc3OTg2LCAyLjc1OTU3LCA0LjA2NTU0LCA2LjY3Nzg4LCA4LjMxMDc5IiwgXAotICAgICAgICAgICIwLjQ4NjIxNSwgMC42ODIzMywgMS43OTQ2MiwgMi43NzM1NywgNC4wODAxNywgNi42OTI3LCA4LjMyNTU5IiwgXAotICAgICAgICAgICIwLjUwMDQxLCAwLjY5NjU5MywgMS44MDg5MywgMi43ODg1NiwgNC4wOTQ1OCwgNi43MDcxLCA4LjMzOTk0IiwgXAotICAgICAgICAgICIwLjUxMzE1NywgMC43MDk3MTQsIDEuODIxNTEsIDIuODAxNjcsIDQuMTA3NjYsIDYuNzIwMTksIDguMzUzMDgiLCBcCi0gICAgICAgICAgIjAuNTMxNjMxLCAwLjcyODIzNywgMS44Mzk3NiwgMi44MjAzMiwgNC4xMjYxOCwgNi43Mzg4OCwgOC4zNzE3NyIsIFwKLSAgICAgICAgICAiMC41NDYwMzQsIDAuNzQyNTQ3LCAxLjg1NDEsIDIuODM0ODgsIDQuMTQxLCA2Ljc1MzQ5LCA4LjM4NjMyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjczMDkwNCwgMS4xMDE0OSwgMy4xODg2NywgNS4wMDE4MiwgNy40MTgyOSwgMTIuMjY2OSwgMTUuMjk4MyIsIFwKLSAgICAgICAgICAiMC43MzExOCwgMS4wOTc0LCAzLjE2NTEsIDUuMDAxODgsIDcuNDE4MTYsIDEyLjI2NjMsIDE1LjI5ODMiLCBcCi0gICAgICAgICAgIjAuNzMwOTg0LCAxLjA5NzQsIDMuMTY1MTMsIDUuMDAxMTEsIDcuNDE3OTksIDEyLjI2NjksIDE1LjI5ODMiLCBcCi0gICAgICAgICAgIjAuNzM2ODI3LCAxLjA5NzE0LCAzLjE4OTU2LCA0Ljk4NzgxLCA3LjQxODA2LCAxMi4yNjcsIDE1LjI5ODMiLCBcCi0gICAgICAgICAgIjAuNzMxOTE5LCAxLjEwNTAzLCAzLjE2NDk0LCA0Ljk4NzcyLCA3LjQxODAyLCAxMi4yNjcsIDE1LjI5ODMiLCBcCi0gICAgICAgICAgIjAuNzMxOTA5LCAxLjEwNTg1LCAzLjE4ODc1LCA0Ljk4OTcsIDcuNDE3OTEsIDEyLjI2NjQsIDE1LjI5OCIsIFwKLSAgICAgICAgICAiMC43MzYzOCwgMS4wOTcxNiwgMy4xNjUyNywgNS4wMDE3LCA3LjQxODE1LCAxMi4yNjYzLCAxNS4yOTgzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkJOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMzQ5OTksIDAuMTc4NDIyLCAwLjQyMzU3MSwgMC42Mzk2MjUsIDAuOTI3NTM3LCAxLjUwMzQsIDEuODYyOTYiLCBcCi0gICAgICAgICAgIjAuMTQ2OTE1LCAwLjE5MDM0OSwgMC40MzU0NzYsIDAuNjUxNTM1LCAwLjkzOTQ0OCwgMS41MTUzLCAxLjg3NTI3IiwgXAotICAgICAgICAgICIwLjE2MjI3NywgMC4yMDU3MjgsIDAuNDUwODQ5LCAwLjY2Njk0NCwgMC45NTQ4MzMsIDEuNTMwOTIsIDEuODkwNzEiLCBcCi0gICAgICAgICAgIjAuMTc3Mzg2LCAwLjIyMDgyMywgMC40NjU5OSwgMC42ODIwOTEsIDAuOTY5ODksIDEuNTQ2MTIsIDEuOTA1OTMiLCBcCi0gICAgICAgICAgIjAuMTkyMjYxLCAwLjIzNTY4OSwgMC40ODA4NTIsIDAuNjk2ODk3LCAwLjk4NDg5NiwgMS41NjA1LCAxLjkyMDk4IiwgXAotICAgICAgICAgICIwLjIxNDQ5NCwgMC4yNTc5MjUsIDAuNTAzMDg3LCAwLjcxOTEyNCwgMS4wMDY5NywgMS41ODMyMiwgMS45NDMwOCIsIFwKLSAgICAgICAgICAiMC4yMzI4ODksIDAuMjc2MjksIDAuNTIxNDUyLCAwLjczNzUwOCwgMS4wMjU0OCwgMS42MDEwMSwgMS45NjA5MyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xODE3OTcsIDAuMjY5MTE5LCAwLjc2NjIxNiwgMS4yMDM4MywgMS43ODg3MiwgMi45NTc2OSwgMy42ODc3MyIsIFwKLSAgICAgICAgICAiMC4xODE3OCwgMC4yNjkxNDYsIDAuNzY1NTQ4LCAxLjIwNDIsIDEuNzg4MTksIDIuOTU4NTgsIDMuNjg3OTgiLCBcCi0gICAgICAgICAgIjAuMTgxODMzLCAwLjI2OTEzNiwgMC43NjYwMiwgMS4yMDQxOSwgMS43ODgyMSwgMi45NTc4MSwgMy42ODgyNiIsIFwKLSAgICAgICAgICAiMC4xODE4MywgMC4yNjkwNTMsIDAuNzY2MTAzLCAxLjIwNDk4LCAxLjc4ODE5LCAyLjk1Nzg2LCAzLjY4ODQzIiwgXAotICAgICAgICAgICIwLjE4MTkzNSwgMC4yNjkxMzYsIDAuNzY2MTMxLCAxLjIwNDQsIDEuNzg4NjQsIDIuOTU2ODQsIDMuNjg4NzEiLCBcCi0gICAgICAgICAgIjAuMTgyMzY0LCAwLjI2OTI4NiwgMC43NjYyMTgsIDEuMjA0MSwgMS43ODgxMiwgMi45NTc4NSwgMy42ODg0NSIsIFwKLSAgICAgICAgICAiMC4xODI3NzMsIDAuMjY5NDU5LCAwLjc2NTc0MywgMS4yMDQwOCwgMS43ODk1LCAyLjk1NzIzLCAzLjY4NzI1Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjQ1NTIyNSwgMC42NTE3OTYsIDEuNzYyOTMsIDIuNzQzMjUsIDQuMDQ5MjQsIDYuNjYxOCwgOC4yOTQ2OCIsIFwKLSAgICAgICAgICAiMC40NjY4MDYsIDAuNjYzMDI1LCAxLjc3NTM0LCAyLjc1NDY4LCA0LjA2MDk4LCA2LjY3MzQ3LCA4LjMwNjMzIiwgXAotICAgICAgICAgICIwLjQ4MTMxMSwgMC42Nzc1MzcsIDEuNzkwMDYsIDIuNzY5NTksIDQuMDc1NTQsIDYuNjg4MTEsIDguMzIxIiwgXAotICAgICAgICAgICIwLjQ5NTUyNywgMC42OTE4NTYsIDEuODAzOTUsIDIuNzgzODQsIDQuMDkwMDIsIDYuNzAyNTMsIDguMzM1NCIsIFwKLSAgICAgICAgICAiMC41MDg2MTYsIDAuNzA0OTU2LCAxLjgxNzQ5LCAyLjc5NzA5LCA0LjEwMzMsIDYuNzE1ODMsIDguMzQ4NjciLCBcCi0gICAgICAgICAgIjAuNTI3Mzc5LCAwLjcyNDE4NiwgMS44MzU5MywgMi44MTYyNSwgNC4xMjIzMiwgNi43MzQ3NiwgOC4zNjc2MiIsIFwKLSAgICAgICAgICAiMC41NDIwOTUsIDAuNzM4NTU0LCAxLjg1MDU4LCAyLjgzMTE5LCA0LjEzNzI3LCA2Ljc0OTYyLCA4LjM4MjUxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjczMTQ3NCwgMS4wOTY0NSwgMy4xODg4MiwgNC45ODg5OCwgNy40MTgwMiwgMTIuMjY2NSwgMTUuMjk4MSIsIFwKLSAgICAgICAgICAiMC43MzQyNzEsIDEuMDk2NjYsIDMuMTg5NTMsIDUuMDAxNDgsIDcuNDE4MjIsIDEyLjI2NjQsIDE1LjI5ODMiLCBcCi0gICAgICAgICAgIjAuNzMxNDkxLCAxLjEwMzIzLCAzLjE2MzM3LCA0Ljk5MDgxLCA3LjQxNzk3LCAxMi4yNjYyLCAxNS4yOTgzIiwgXAotICAgICAgICAgICIwLjczMTQ3NywgMS4wOTY2NiwgMy4xODkxOCwgNC45OTQzOSwgNy40MTg1LCAxMi4yNjY1LCAxNS4yOTc5IiwgXAotICAgICAgICAgICIwLjczNDI3NywgMS4xMDA5MywgMy4xNjUwOSwgNC45OTM2NSwgNy40MTgyMywgMTIuMjY2NSwgMTUuMjk4MyIsIFwKLSAgICAgICAgICAiMC43MzU4NjIsIDEuMTA1NzEsIDMuMTg5MDEsIDUuMDAxNzYsIDcuNDE4MTUsIDEyLjI2NiwgMTUuMjk4MyIsIFwKLSAgICAgICAgICAiMC43MzQxOTEsIDEuMTAzOCwgMy4xODg4MywgNC45ODc2NiwgNy40MTgyMywgMTIuMjY2OSwgMTUuMjk4MyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTIyOTUsIDAuMTM1NTQ5LCAwLjM4MDM0NiwgMC41OTYzNzcsIDAuODg0MjM3LCAxLjQ2MDAxLCAxLjgxOTU4IiwgXAotICAgICAgICAgICIwLjEwMzkzNywgMC4xNDcxOTksIDAuMzkxOTc2LCAwLjYwNzg1OSwgMC44OTU5NzYsIDEuNDcxODUsIDEuODMyMTYiLCBcCi0gICAgICAgICAgIjAuMTE4NTI0LCAwLjE2MTkzNSwgMC40MDY0NjksIDAuNjIyMzM3LCAwLjkxMDMwMywgMS40ODYxNywgMS44NDU5NiIsIFwKLSAgICAgICAgICAiMC4xMzM3MzQsIDAuMTc2OTkyLCAwLjQyMTU5OSwgMC42MzczNzYsIDAuOTI1NjA2LCAxLjUwMTQ2LCAxLjg2MDc2IiwgXAotICAgICAgICAgICIwLjE0ODM4MiwgMC4xOTE0NDMsIDAuNDM1NDE2LCAwLjY1MTI5OSwgMC45MzQwODksIDEuNTA5NDMsIDEuODY5ODEiLCBcCi0gICAgICAgICAgIjAuMTcxOTQxLCAwLjIxNTI3MSwgMC40NTg3MTgsIDAuNjc0NjI0LCAwLjk2MjMwNSwgMS41MzA3NCwgMS44OTA5NCIsIFwKLSAgICAgICAgICAiMC4xOTI2ODMsIDAuMjM1ODQ3LCAwLjQ3OTIzMiwgMC42OTQ4NDMsIDAuOTgyNjY2LCAxLjU0OTM4LCAxLjkwOTAyIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE3NjgzNiwgMC4yNjQ1OTYsIDAuNzYxMTk0LCAxLjE5OTgyLCAxLjc4NDI0LCAyLjk1MzQ0LCAzLjY4NDc4IiwgXAotICAgICAgICAgICIwLjE3NjgzMywgMC4yNjQ2NTgsIDAuNzYxMTYyLCAxLjE5OTU4LCAxLjc4NDM1LCAyLjk1MzQ3LCAzLjY4NDI5IiwgXAotICAgICAgICAgICIwLjE3Njk3MiwgMC4yNjQ2MTMsIDAuNzYxODEzLCAxLjE5OTc2LCAxLjc4NDM3LCAyLjk1MzQ3LCAzLjY4NDIiLCBcCi0gICAgICAgICAgIjAuMTc4OTQyLCAwLjI2NDY4MSwgMC43NjE4MywgMS4yMDAxNywgMS43ODQzOCwgMi45NTM1LCAzLjY4NDcyIiwgXAotICAgICAgICAgICIwLjE4MjgxNSwgMC4yNjY4MTUsIDAuNzYxNDAxLCAxLjE5OTcxLCAxLjc4NDQ2LCAyLjk1MjUxLCAzLjY4NDQ0IiwgXAotICAgICAgICAgICIwLjE5MTQyMSwgMC4yNzIyNDYsIDAuNzYxMzk2LCAxLjE5OTgzLCAxLjc4MzgxLCAyLjk1NDExLCAzLjY4NDIxIiwgXAotICAgICAgICAgICIwLjIwMDkwNywgMC4yNzkwNTksIDAuNzYxNDY1LCAxLjE5OTQzLCAxLjc4NDg1LCAyLjk1NDEyLCAzLjY4MzE5Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjQxMjY0MiwgMC42MDkwMzQsIDEuNzE5OTUsIDIuNzAwNDMsIDQuMDA2NDcsIDYuNjE4ODUsIDguMjUxNzQiLCBcCi0gICAgICAgICAgIjAuNDIyMzQ5LCAwLjYxODgzOSwgMS43MzA2OSwgMi43MTAxNSwgNC4wMTY1OSwgNi42MjkxNSwgOC4yNjIwMiIsIFwKLSAgICAgICAgICAiMC40MzQ2MjYsIDAuNjMxMjA4LCAxLjc0MzM3LCAyLjcyMjgyLCA0LjAyOSwgNi42NDE1NywgOC4yNzQ0NiIsIFwKLSAgICAgICAgICAiMC40NDY1MzQsIDAuNjQzMDQzLCAxLjc1NTY0LCAyLjczNTQzLCA0LjA0MTQzLCA2LjY1Mzk2LCA4LjI4Njg0IiwgXAotICAgICAgICAgICIwLjQ1ODQzOSwgMC42NTUzNDEsIDEuNzY3MTcsIDIuNzQ3NjMsIDQuMDUzNTgsIDYuNjY2MywgOC4yOTkyIiwgXAotICAgICAgICAgICIwLjQ3Nzg4OCwgMC42NzQ3ODIsIDEuNzg2NDIsIDIuNzY3NSwgNC4wNzMyNywgNi42ODU5NCwgOC4zMTg4NCIsIFwKLSAgICAgICAgICAiMC40OTQ3NTYsIDAuNjkxMzE3LCAxLjgwMzUzLCAyLjc4Mzk2LCA0LjA5MDU2LCA2LjcwMzIxLCA4LjMzNjE0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjczNzA5LCAxLjEwNTMxLCAzLjE2NjgzLCA1LjAwMTc2LCA3LjQxODI3LCAxMi4yNjY1LCAxNS4yOTgzIiwgXAotICAgICAgICAgICIwLjczMTQ2MiwgMS4xMDU2NiwgMy4xODkyMSwgNC45OTE4MSwgNy40MTkwMiwgMTIuMjY2MywgMTUuMjk4MyIsIFwKLSAgICAgICAgICAiMC43MzY4LCAxLjA5NTc0LCAzLjE4OTU0LCA0Ljk5MzY4LCA3LjQxNzk4LCAxMi4yNjY5LCAxNS4yOTgzIiwgXAotICAgICAgICAgICIwLjczMTk3NCwgMS4wOTc0LCAzLjE4OTUzLCA1LjAwMTc0LCA3LjQxODA2LCAxMi4yNjYyLCAxNS4yOTgzIiwgXAotICAgICAgICAgICIwLjczNTYxOSwgMS4xMDU3LCAzLjE4ODg2LCA0Ljk4ODcsIDcuNDE3OTMsIDEyLjI2NjQsIDE1LjI5OCIsIFwKLSAgICAgICAgICAiMC43MzU1MDIsIDEuMTA1MTgsIDMuMTg1NjUsIDUuMDAxNzcsIDcuNDE3OTgsIDEyLjI2NjIsIDE1LjI5ODMiLCBcCi0gICAgICAgICAgIjAuNzM2NiwgMS4xMDA3OCwgMy4xNjU4LCA1LjAwMTE5LCA3LjQxOCwgMTIuMjY2MSwgMTUuMjk4MyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJEIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODk2OTYsIDAuMTMyOTAzLCAwLjM3NzUyNywgMC41OTMzOTIsIDAuODgxNTI2LCAxLjQ1NjkzLCAxLjgxNzg3IiwgXAotICAgICAgICAgICIwLjEwMTQxNSwgMC4xNDQ2MDYsIDAuMzg5MzI5LCAwLjYwNTU1NSwgMC44OTMwODUsIDEuNDY5MDUsIDEuODI4NzMiLCBcCi0gICAgICAgICAgIjAuMTE2MjI2LCAwLjE1OTMyMiwgMC40MDM3MTUsIDAuNjE5NTc0LCAwLjkwNzU5NCwgMS40ODI5MywgMS44NDMzNSIsIFwKLSAgICAgICAgICAiMC4xMzEwMjEsIDAuMTczNzgsIDAuNDE4MjEsIDAuNjMzMjY3LCAwLjkxODQxNiwgMS40OTM5MiwgMS44NTM2IiwgXAotICAgICAgICAgICIwLjE0NTgyNCwgMC4xODg5MTcsIDAuNDMyODk0LCAwLjY0ODU5LCAwLjkzMTM3MiwgMS41MDc3MSwgMS44NjY3MyIsIFwKLSAgICAgICAgICAiMC4xNjk0MjksIDAuMjEyNjEyLCAwLjQ1NjE0OSwgMC42NzIwMDMsIDAuOTU5NiwgMS41MzAxMSwgMS44OTAyNyIsIFwKLSAgICAgICAgICAiMC4xOTAyMDksIDAuMjMzMzU3LCAwLjQ3NjQ5MSwgMC42OTIxNzYsIDAuOTc5OTY4LCAxLjU0ODYzLCAxLjkwODM0Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE3NDIxMywgMC4yNjE4MTYsIDAuNzYwNjg4LCAxLjE5NzM4LCAxLjc4MjQ4LCAyLjk1NDU5LCAzLjY4NDY1IiwgXAotICAgICAgICAgICIwLjE3NDQ1MSwgMC4yNjI0NjgsIDAuNzYwNzk0LCAxLjE5ODEsIDEuNzg1NywgMi45NTQ5MSwgMy42ODM0MSIsIFwKLSAgICAgICAgICAiMC4xNzQzMDIsIDAuMjYyNDQ3LCAwLjc1ODgzMSwgMS4xOTc0LCAxLjc4MjkxLCAyLjk1ODkzLCAzLjY4NzI5IiwgXAotICAgICAgICAgICIwLjE3Njg2OCwgMC4yNjI4MiwgMC43NTg3NzcsIDEuMTk3ODQsIDEuNzgyMTksIDIuOTUyMjksIDMuNjkwMDMiLCBcCi0gICAgICAgICAgIjAuMTgwODQyLCAwLjI2NDczNSwgMC43NTg5MzIsIDEuMTk3MiwgMS43ODcwOSwgMi45NTE4NSwgMy42ODI2IiwgXAotICAgICAgICAgICIwLjE4OTMwNywgMC4yNzAzMTcsIDAuNzU4OTUxLCAxLjE5NzYyLCAxLjc4MTk2LCAyLjk1MTQ5LCAzLjY4NDg1IiwgXAotICAgICAgICAgICIwLjE5ODgzLCAwLjI3NzQxNSwgMC43NTg2ODUsIDEuMTk3MzksIDEuNzg2NzksIDIuOTUxNDUsIDMuNjkxNzkiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzk4MDQyLCAwLjU5NDE0MSwgMS43MDU1NiwgMi42ODQ3NywgMy45OTE5MiwgNi42MDQ0OSwgOC4yMzY5IiwgXAotICAgICAgICAgICIwLjQwNzA4OCwgMC42MDMzMTksIDEuNzE0MzcsIDIuNjk0OTEsIDQuMDAxNTgsIDYuNjEzOTMsIDguMjQ2ODQiLCBcCi0gICAgICAgICAgIjAuNDE4MjU2LCAwLjYxNDc0NywgMS43MjY0LCAyLjcwNzAyLCA0LjAxMzAzLCA2LjYyNTY2LCA4LjI1ODUzIiwgXAotICAgICAgICAgICIwLjQyOTk1NSwgMC42MjY0ODgsIDEuNzM4NDYsIDIuNzE5MjYsIDQuMDI1MjYsIDYuNjM3NjUsIDguMjcwNTYiLCBcCi0gICAgICAgICAgIjAuNDQxMDI4LCAwLjYzNzY2NCwgMS43NDk3MiwgMi43MzAzOSwgNC4wMzY1LCA2LjY0ODk4LCA4LjI4MTk1IiwgXAotICAgICAgICAgICIwLjQ1OTI4NSwgMC42NTU5MjQsIDEuNzY3OTQsIDIuNzQ4NzQsIDQuMDU1MjIsIDYuNjY3NzYsIDguMzAwNjMiLCBcCi0gICAgICAgICAgIjAuNDc1MzEsIDAuNjcyMTUsIDEuNzg1NDksIDIuNzY1NDEsIDQuMDcxNjIsIDYuNjg0LCA4LjMxNjk4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjczNDMwOCwgMS4xMDA3NiwgMy4xNjY1NSwgNS4wMDA1NiwgNy40MTgxNCwgMTIuMjY2NSwgMTUuMjk3OSIsIFwKLSAgICAgICAgICAiMC43MzY0MTUsIDEuMTAwODUsIDMuMTY1MzgsIDUuMDAxMjUsIDcuNDE4MzUsIDEyLjI2NjMsIDE1LjI5ODQiLCBcCi0gICAgICAgICAgIjAuNzMxNDM3LCAxLjEwMTM1LCAzLjE2NTM1LCA0Ljk5MDA2LCA3LjQxODExLCAxMi4yNjY0LCAxNS4yOTgiLCBcCi0gICAgICAgICAgIjAuNzMxNDA5LCAxLjA5NjYzLCAzLjE4ODcxLCA1LjAwMTg3LCA3LjQxODE3LCAxMi4yNjYzLCAxNS4yOTgzIiwgXAotICAgICAgICAgICIwLjczNDQyLCAxLjEwMTM2LCAzLjE2Njk3LCA1LjAwMTY5LCA3LjQxODA3LCAxMi4yNjY5LCAxNS4yOTgzIiwgXAotICAgICAgICAgICIwLjczMzk0OSwgMS4xMDI5MiwgMy4xODQ0OSwgNC45OTE5NSwgNy40MTY4NiwgMTIuMjY2NCwgMTUuMjk4IiwgXAotICAgICAgICAgICIwLjczMzYwMSwgMS4xMDEyNywgMy4xNjUzMiwgNC45ODc4NCwgNy40MTgyMywgMTIuMjY2OSwgMTUuMjk4MyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkFOIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI1MTgsIDAuMDAyNTE5LCAwLjAwMjUxOCwgMC4wMDI1MTgsIDAuMDAyNTE3LCAwLjAwMjUxNiwgMC4wMDI1MTUiLCBcCi0gICAgICAgICAgIjAuMDAyNTAxLCAwLjAwMjUwMSwgMC4wMDI1LCAwLjAwMjUwMSwgMC4wMDI0OTksIDAuMDAyNDk4LCAwLjAwMjQ5OSIsIFwKLSAgICAgICAgICAiMC4wMDI0OSwgMC4wMDI0OTEsIDAuMDAyNDksIDAuMDAyNDksIDAuMDAyNDg5LCAwLjAwMjQ4OCwgMC4wMDI0ODciLCBcCi0gICAgICAgICAgIjAuMDAyNDg0LCAwLjAwMjQ4NSwgMC4wMDI0ODQsIDAuMDAyNDg0LCAwLjAwMjQ4NCwgMC4wMDI0ODMsIDAuMDAyNDgxIiwgXAotICAgICAgICAgICIwLjAwMjQ4MSwgMC4wMDI0ODEsIDAuMDAyNDgyLCAwLjAwMjQ4MiwgMC4wMDI0ODIsIDAuMDAyNDgxLCAwLjAwMjQ3OSIsIFwKLSAgICAgICAgICAiMC4wMDI0NzgsIDAuMDAyNDc5LCAwLjAwMjQ4LCAwLjAwMjQ4LCAwLjAwMjQ4LCAwLjAwMjQ3OCwgMC4wMDI0NzgiLCBcCi0gICAgICAgICAgIjAuMDAyNDc5LCAwLjAwMjQ3OSwgMC4wMDI0ODEsIDAuMDAyNDgxLCAwLjAwMjQ4MSwgMC4wMDI0OCwgMC4wMDI0NzgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI1NDcsIDAuMDAyNTQ4LCAwLjAwMjU1LCAwLjAwMjU1MSwgMC4wMDI1NTEsIDAuMDAyNTUxLCAwLjAwMjU1MSIsIFwKLSAgICAgICAgICAiMC4wMDI1MzQsIDAuMDAyNTM2LCAwLjAwMjUzOSwgMC4wMDI1MzksIDAuMDAyNTQsIDAuMDAyNTQsIDAuMDAyNTM5IiwgXAotICAgICAgICAgICIwLjAwMjUyMywgMC4wMDI1MjcsIDAuMDAyNTMxLCAwLjAwMjUzMiwgMC4wMDI1MzIsIDAuMDAyNTMyLCAwLjAwMjUzMiIsIFwKLSAgICAgICAgICAiMC4wMDI1MTYsIDAuMDAyNTIsIDAuMDAyNTI2LCAwLjAwMjUyNywgMC4wMDI1MjcsIDAuMDAyNTI4LCAwLjAwMjUyOCIsIFwKLSAgICAgICAgICAiMC4wMDI1MTIsIDAuMDAyNTE2LCAwLjAwMjUyMywgMC4wMDI1MjUsIDAuMDAyNTI2LCAwLjAwMjUyNiwgMC4wMDI1MjYiLCBcCi0gICAgICAgICAgIjAuMDAyNTA3LCAwLjAwMjUxMywgMC4wMDI1MjIsIDAuMDAyNTI0LCAwLjAwMjUyNSwgMC4wMDI1MjYsIDAuMDAyNTI2IiwgXAotICAgICAgICAgICIwLjAwMjUwNSwgMC4wMDI1MTEsIDAuMDAyNTIxLCAwLjAwMjUyMywgMC4wMDI1MjUsIDAuMDAyNTI1LCAwLjAwMjUyNSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkJOIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDIyOTcsIDAuMDAyMjk3LCAwLjAwMjI5NywgMC4wMDIyOTcsIDAuMDAyMjk5LCAwLjAwMjI5NiwgMC4wMDIyOTgiLCBcCi0gICAgICAgICAgIjAuMDAyMjc5LCAwLjAwMjI4LCAwLjAwMjI4LCAwLjAwMjI4LCAwLjAwMjI3OSwgMC4wMDIyNzksIDAuMDAyMjc3IiwgXAotICAgICAgICAgICIwLjAwMjI2OCwgMC4wMDIyNjksIDAuMDAyMjY5LCAwLjAwMjI2OSwgMC4wMDIyNjksIDAuMDAyMjY4LCAwLjAwMjI2OCIsIFwKLSAgICAgICAgICAiMC4wMDIyNjIsIDAuMDAyMjYzLCAwLjAwMjI2NCwgMC4wMDIyNjQsIDAuMDAyMjY0LCAwLjAwMjI2MywgMC4wMDIyNjIiLCBcCi0gICAgICAgICAgIjAuMDAyMjU4LCAwLjAwMjI2LCAwLjAwMjI2MSwgMC4wMDIyNjEsIDAuMDAyMjYxLCAwLjAwMjI2MSwgMC4wMDIyNiIsIFwKLSAgICAgICAgICAiMC4wMDIyNTYsIDAuMDAyMjU3LCAwLjAwMjI2LCAwLjAwMjI2LCAwLjAwMjI2LCAwLjAwMjI1OSwgMC4wMDIyNTkiLCBcCi0gICAgICAgICAgIjAuMDAyMjU1LCAwLjAwMjI1NywgMC4wMDIyNiwgMC4wMDIyNiwgMC4wMDIyNjEsIDAuMDAyMjYsIDAuMDAyMjU5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyNTM2LCAwLjAwMjUzOCwgMC4wMDI1NDEsIDAuMDAyNTQxLCAwLjAwMjU0MiwgMC4wMDI1NDIsIDAuMDAyNTQyIiwgXAotICAgICAgICAgICIwLjAwMjUyNCwgMC4wMDI1MjYsIDAuMDAyNTMsIDAuMDAyNTMsIDAuMDAyNTMsIDAuMDAyNTMxLCAwLjAwMjUzIiwgXAotICAgICAgICAgICIwLjAwMjUxMywgMC4wMDI1MTcsIDAuMDAyNTIyLCAwLjAwMjUyMywgMC4wMDI1MjMsIDAuMDAyNTIzLCAwLjAwMjUyMyIsIFwKLSAgICAgICAgICAiMC4wMDI1MDcsIDAuMDAyNTExLCAwLjAwMjUxNywgMC4wMDI1MTksIDAuMDAyNTE5LCAwLjAwMjUyLCAwLjAwMjUyIiwgXAotICAgICAgICAgICIwLjAwMjUwMiwgMC4wMDI1MDcsIDAuMDAyNTE0LCAwLjAwMjUxNiwgMC4wMDI1MTcsIDAuMDAyNTE4LCAwLjAwMjUxOCIsIFwKLSAgICAgICAgICAiMC4wMDI0OTYsIDAuMDAyNTAyLCAwLjAwMjUxMiwgMC4wMDI1MTQsIDAuMDAyNTE1LCAwLjAwMjUxNiwgMC4wMDI1MTYiLCBcCi0gICAgICAgICAgIjAuMDAyNDkzLCAwLjAwMjUsIDAuMDAyNTExLCAwLjAwMjUxMywgMC4wMDI1MTQsIDAuMDAyNTE1LCAwLjAwMjUxNSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTgyLCAwLjAwMTgyLCAwLjAwMTgyLCAwLjAwMTgyLCAwLjAwMTgyLCAwLjAwMTgyLCAwLjAwMTgxOSIsIFwKLSAgICAgICAgICAiMC4wMDE4MjMsIDAuMDAxODI0LCAwLjAwMTgyNiwgMC4wMDE4MjYsIDAuMDAxODI1LCAwLjAwMTgyNSwgMC4wMDE4MjUiLCBcCi0gICAgICAgICAgIjAuMDAxODE3LCAwLjAwMTgyMywgMC4wMDE4MjYsIDAuMDAxODI5LCAwLjAwMTgyNiwgMC4wMDE4MjUsIDAuMDAxODI2IiwgXAotICAgICAgICAgICIwLjAwMTgxOCwgMC4wMDE4MjEsIDAuMDAxODI2LCAwLjAwMTgyNywgMC4wMDE4MjcsIDAuMDAxODI3LCAwLjAwMTgyOCIsIFwKLSAgICAgICAgICAiMC4wMDE4MTYsIDAuMDAxODIsIDAuMDAxODI1LCAwLjAwMTgyNywgMC4wMDE4MjcsIDAuMDAxODI3LCAwLjAwMTgyNyIsIFwKLSAgICAgICAgICAiMC4wMDE4MTIsIDAuMDAxODE3LCAwLjAwMTgyNCwgMC4wMDE4MjYsIDAuMDAxODI3LCAwLjAwMTgyNywgMC4wMDE4MjciLCBcCi0gICAgICAgICAgIjAuMDAxODA5LCAwLjAwMTgxNCwgMC4wMDE4MjMsIDAuMDAxODI2LCAwLjAwMTgyNiwgMC4wMDE4MjcsIDAuMDAxODI3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwOTA5LCAwLjAwMDkxLCAwLjAwMDkxLCAwLjAwMDkxMSwgMC4wMDA5MTEsIDAuMDAwOTEsIDAuMDAwOTEiLCBcCi0gICAgICAgICAgIjAuMDAwOTAxLCAwLjAwMDkwNSwgMC4wMDA5MDksIDAuMDAwOTA5LCAwLjAwMDkxLCAwLjAwMDkxLCAwLjAwMDkxIiwgXAotICAgICAgICAgICIwLjAwMDg5MywgMC4wMDA4OTksIDAuMDAwOTA2LCAwLjAwMDkwOCwgMC4wMDA5MDksIDAuMDAwOTA5LCAwLjAwMDkwOSIsIFwKLSAgICAgICAgICAiMC4wMDA4ODcsIDAuMDAwODkzLCAwLjAwMDkwNCwgMC4wMDA5MDcsIDAuMDAwOTA4LCAwLjAwMDkwOSwgMC4wMDA5MDkiLCBcCi0gICAgICAgICAgIjAuMDAwODgxLCAwLjAwMDg4OSwgMC4wMDA5MDIsIDAuMDAwOTA1LCAwLjAwMDkwNywgMC4wMDA5MDgsIDAuMDAwOTA5IiwgXAotICAgICAgICAgICIwLjAwMDg3MywgMC4wMDA4ODIsIDAuMDAwODk5LCAwLjAwMDkwMywgMC4wMDA5MDUsIDAuMDAwOTA3LCAwLjAwMDkwOCIsIFwKLSAgICAgICAgICAiMC4wMDA4NjcsIDAuMDAwODc3LCAwLjAwMDg5NiwgMC4wMDA5MDEsIDAuMDAwOTA0LCAwLjAwMDkwNiwgMC4wMDA5MDciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJEIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDE0OTYsIDAuMDAxNDk2LCAwLjAwMTQ5NywgMC4wMDE0OTcsIDAuMDAxNDk3LCAwLjAwMTQ5NywgMC4wMDE0OTciLCBcCi0gICAgICAgICAgIjAuMDAxNTAzLCAwLjAwMTUwNSwgMC4wMDE1MDgsIDAuMDAxNTA4LCAwLjAwMTUwOCwgMC4wMDE1MDksIDAuMDAxNTA5IiwgXAotICAgICAgICAgICIwLjAwMTUwMSwgMC4wMDE1MDQsIDAuMDAxNTA5LCAwLjAwMTUxLCAwLjAwMTUxMSwgMC4wMDE1MTIsIDAuMDAxNTExIiwgXAotICAgICAgICAgICIwLjAwMTQ5OCwgMC4wMDE1MDMsIDAuMDAxNTEsIDAuMDAxNTExLCAwLjAwMTUxMiwgMC4wMDE1MTMsIDAuMDAxNTE0IiwgXAotICAgICAgICAgICIwLjAwMTQ5NCwgMC4wMDE1LCAwLjAwMTUwOSwgMC4wMDE1MTEsIDAuMDAxNTEzLCAwLjAwMTUxMywgMC4wMDE1MTQiLCBcCi0gICAgICAgICAgIjAuMDAxNDg5LCAwLjAwMTQ5NiwgMC4wMDE1MDgsIDAuMDAxNTEsIDAuMDAxNTExLCAwLjAwMTUxMywgMC4wMDE1MTQiLCBcCi0gICAgICAgICAgIjAuMDAxNDg1LCAwLjAwMTQ5NCwgMC4wMDE1MDYsIDAuMDAxNTEsIDAuMDAxNTExLCAwLjAwMTUxMywgMC4wMDE1MTMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDA5MDksIDAuMDAwOTA5LCAwLjAwMDkxLCAwLjAwMDkxLCAwLjAwMDkxMSwgMC4wMDA5MSwgMC4wMDA5MSIsIFwKLSAgICAgICAgICAiMC4wMDA4OTksIDAuMDAwOTAzLCAwLjAwMDkwOCwgMC4wMDA5MDksIDAuMDAwOTEsIDAuMDAwOTEsIDAuMDAwOTEiLCBcCi0gICAgICAgICAgIjAuMDAwODksIDAuMDAwODk2LCAwLjAwMDkwNSwgMC4wMDA5MDcsIDAuMDAwOTA4LCAwLjAwMDkwOSwgMC4wMDA5MDkiLCBcCi0gICAgICAgICAgIjAuMDAwODgyLCAwLjAwMDg5LCAwLjAwMDkwMywgMC4wMDA5MDYsIDAuMDAwOTA3LCAwLjAwMDkwOSwgMC4wMDA5MDkiLCBcCi0gICAgICAgICAgIjAuMDAwODc1LCAwLjAwMDg4NSwgMC4wMDA5LCAwLjAwMDkwNCwgMC4wMDA5MDYsIDAuMDAwOTA4LCAwLjAwMDkwOCIsIFwKLSAgICAgICAgICAiMC4wMDA4NjcsIDAuMDAwODc3LCAwLjAwMDg5NywgMC4wMDA5MDIsIDAuMDAwOTA0LCAwLjAwMDkwNywgMC4wMDA5MDciLCBcCi0gICAgICAgICAgIjAuMDAwODYyLCAwLjAwMDg3MiwgMC4wMDA4OTQsIDAuMDAwOSwgMC4wMDA5MDMsIDAuMDAwOTA2LCAwLjAwMDkwNyIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogTk9SM1g4ICoKLSAqIC0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoTk9SM1g4KSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuNTA5MDc7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwNjE1Mjk0OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwNjA5Mjc4OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwNjE1Mjk0OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjEzLCAwLjAwMjIwNiwgMC4wMDIyNDYsIDAuMDAyMjY2LCAwLjAwMjI4LCAwLjAwMjI5NCwgMC4wMDIzMDMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDMxMzUsIDAuMDAzMTM4LCAwLjAwMzE0MSwgMC4wMDMxMzksIDAuMDAzMTM5LCAwLjAwMzE0LCAwLjAwMzE0MSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDA2MzIyMzY7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDA2MjcyNTU7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDA2MzIyMzY7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyMTQyLCAwLjAwMjI3LCAwLjAwMjMxNywgMC4wMDIzMzUsIDAuMDAyMzQ1LCAwLjAwMjM1NCwgMC4wMDIzNiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjUwOSwgMC4wMDI1MSwgMC4wMDI1MTEsIDAuMDAyNTExLCAwLjAwMjUxMiwgMC4wMDI1MDYsIDAuMDAyNTEyIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihDKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDYzNzgzOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwNjM3Njk7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDA2Mzc4MzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA3MzYsIDAuMDAwNzM2LCAwLjAwMDczNiwgMC4wMDA3MzYsIDAuMDAwNzM2LCAwLjAwMDczNiwgMC4wMDA3MzYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDI5OCwgMC4wMDI5ODEsIDAuMDAyOTc5LCAwLjAwMjk4MSwgMC4wMDI5NzksIDAuMDAyOTgsIDAuMDAyOTgiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4zOTUwODQ7Ci0gICAgZnVuY3Rpb24gOiAiKCEoKEErQikrQykpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4MTk2MywgMC4yODI1NjIsIDAuNDgzMDg5LCAwLjYyNjE1OCwgMC44NTUyNTMsIDEuMDU2MTMsIDEuMzQxOSIsIFwKLSAgICAgICAgICAiMC4wOTMxMzgsIDAuMjk0MDksIDAuNDk0Njc4LCAwLjYzNzY5OCwgMC44NjY3MzksIDEuMDY2ODEsIDEuMzU0MTUiLCBcCi0gICAgICAgICAgIjAuMTA1ODEzLCAwLjMwNjk2NCwgMC41MDc0OTEsIDAuNjUwODA5LCAwLjg3OTY1MSwgMS4wODA3NSwgMS4zNjY1NSIsIFwKLSAgICAgICAgICAiMC4xMTc2MjUsIDAuMzE4ODM2LCAwLjUxOTY0MSwgMC42NjI2MzksIDAuODkxNjE4LCAxLjA5Mjc1LCAxLjM3ODU0IiwgXAotICAgICAgICAgICIwLjEyODk4NSwgMC4zMzAyNDYsIDAuNTMwODk1LCAwLjY3NDIyOSwgMC45MDM0OSwgMS4xMDM5NiwgMS4zOTAzOSIsIFwKLSAgICAgICAgICAiMC4xNDY0MjYsIDAuMzQ3NzIsIDAuNTQ4NTEsIDAuNjkxNjE2LCAwLjkyMDcyMiwgMS4xMjEwNSwgMS40MDgxNCIsIFwKLSAgICAgICAgICAiMC4xNjA2ODgsIDAuMzYyNjQ0LCAwLjU2MzUwNCwgMC43MDY1MzMsIDAuOTM1ODE1LCAxLjEzNjI0LCAxLjQyMzMyIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTE1MzUxLCAwLjUwMTQzNSwgMC44ODgwMzksIDEuMTYyMzksIDEuNjA1MiwgMS45ODcyOSwgMi41NDMxNCIsIFwKLSAgICAgICAgICAiMC4xMTUzNzEsIDAuNTAwODE3LCAwLjg4NjA0OCwgMS4xNjMzLCAxLjYwNDY4LCAxLjk4OTQ3LCAyLjU0NDk2IiwgXAotICAgICAgICAgICIwLjExNTE2MiwgMC41MDE0MjUsIDAuODg3NTU0LCAxLjE2MTM3LCAxLjYwNjAyLCAxLjk4NzIxLCAyLjU0MzA2IiwgXAotICAgICAgICAgICIwLjExNTgzLCAwLjUwMTgwOCwgMC44ODgyODEsIDEuMTYyMSwgMS42MDI4OCwgMS45ODY0LCAyLjU0MzA0IiwgXAotICAgICAgICAgICIwLjExNjkyMiwgMC41MDE0NTcsIDAuODg3NjkxLCAxLjE2Mzg3LCAxLjYwNTc5LCAxLjk5MjAxLCAyLjU0NDE2IiwgXAotICAgICAgICAgICIwLjEyMDA2MSwgMC41MDE1MDgsIDAuODg3OTQ2LCAxLjE2MzQxLCAxLjYwMjkyLCAxLjk4ODU5LCAyLjU0NDciLCBcCi0gICAgICAgICAgIjAuMTIzODA2LCAwLjUwMTk3MywgMC44ODgwMTcsIDEuMTYyNDEsIDEuNjA0OTUsIDEuOTkxMDEsIDIuNTM3NzEiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzM0MDgsIDAuMTEwMzYyLCAwLjE4NTM1MywgMC4yMzg2NTcsIDAuMzIzODM4LCAwLjM5ODM4MywgMC41MDQ2NzIiLCBcCi0gICAgICAgICAgIjAuMDQ1MDk3LCAwLjEyMjAxMSwgMC4xOTY5ODUsIDAuMjUwMzMsIDAuMzM1NTI2LCAwLjQxMDAyMSwgMC41MTYyODEiLCBcCi0gICAgICAgICAgIjAuMDU5OTc0LCAwLjEzNjUxOCwgMC4yMTA1OTksIDAuMjYzOTQzLCAwLjM0OTE0MiwgMC40MjM2MTYsIDAuNTI5OTIiLCBcCi0gICAgICAgICAgIjAuMDc1MTQ5LCAwLjE1MTMxMSwgMC4yMjYwNDMsIDAuMjc5MzAzLCAwLjM2NDQ1NSwgMC40Mzg5MTEsIDAuNTQ1MjYyIiwgXAotICAgICAgICAgICIwLjA4OTY2NCwgMC4xNjY1MywgMC4yNDA4MjEsIDAuMjk0ODUxLCAwLjM3OTYwMiwgMC40NTM2MDgsIDAuNTU5OTE4IiwgXAotICAgICAgICAgICIwLjExMDc4OCwgMC4xOTA2NTEsIDAuMjY0ODcyLCAwLjMxODAyOCwgMC40MDI5OTcsIDAuNDc3MTk4LCAwLjU4MzQzOSIsIFwKLSAgICAgICAgICAiMC4xMjcyNjcsIDAuMjExODM0LCAwLjI4NjIwOCwgMC4zMzk0MTksIDAuNDIzNDg0LCAwLjQ5Nzc2MSwgMC42MDM3OSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1MTk4OSwgMC4xOTk1NDEsIDAuMzQ3MDg5LCAwLjQ1MjQzMSwgMC42MjExMTcsIDAuNzY4NzIzLCAwLjk3OTE4MiIsIFwKLSAgICAgICAgICAiMC4wNTE3MjUsIDAuMTk5NTY1LCAwLjM0NzA0NywgMC40NTI0MDksIDAuNjIxMDA0LCAwLjc2ODQ0OCwgMC45Nzg4ODEiLCBcCi0gICAgICAgICAgIjAuMDU1MzAyLCAwLjE5OTQ4NywgMC4zNDcwMzQsIDAuNDUyNDQ4LCAwLjYyMTA3LCAwLjc2ODY3NiwgMC45NzkwOTQiLCBcCi0gICAgICAgICAgIjAuMDYxMDYsIDAuMjAwMzY1LCAwLjM0Njk5MSwgMC40NTIyODIsIDAuNjIxMTA1LCAwLjc2ODIsIDAuOTc4ODYxIiwgXAotICAgICAgICAgICIwLjA2ODU5LCAwLjIwMjkzMiwgMC4zNDcyMjUsIDAuNDUyMjg4LCAwLjYyMTA5MSwgMC43Njg0NjcsIDAuOTc5MTIiLCBcCi0gICAgICAgICAgIjAuMDgyMjc0LCAwLjIwOTQzMSwgMC4zNDk5NDIsIDAuNDUzMTk2LCAwLjYyMDkzMywgMC43Njg2MzUsIDAuOTc5NCIsIFwKLSAgICAgICAgICAiMC4wOTQ3NDgsIDAuMjE2NzM1LCAwLjM1NDIyMSwgMC40NTU2OTgsIDAuNjIxMzI0LCAwLjc2ODQzMiwgMC45Nzg4NjEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzUxMjEsIDAuMjc1NzE1LCAwLjQ3NTkyNCwgMC42MTkyMDMsIDAuODQ4NDc5LCAxLjA0ODcyLCAxLjMzNTUiLCBcCi0gICAgICAgICAgIjAuMDg1MjgzLCAwLjI4NjI2MiwgMC40ODY2NzMsIDAuNjMwMDQsIDAuODU5MDU4LCAxLjA1OTQ3LCAxLjM0NTU5IiwgXAotICAgICAgICAgICIwLjA5NzY4NywgMC4yOTg4MzgsIDAuNDk5NTAzLCAwLjY0MjUyNywgMC44NzIxMTQsIDEuMDcyMTMsIDEuMzU4NiIsIFwKLSAgICAgICAgICAiMC4xMDk2NTksIDAuMzEwOTI0LCAwLjUxMTQ1NSwgMC42NTQ4MTMsIDAuODgzNzA0LCAxLjA4NDU2LCAxLjM3MDM3IiwgXAotICAgICAgICAgICIwLjEyMTUsIDAuMzIyNzYsIDAuNTIzNDA0LCAwLjY2NjYxNywgMC44OTU4MTIsIDEuMDk2NjksIDEuMzgyMzUiLCBcCi0gICAgICAgICAgIjAuMTQwMDA4LCAwLjM0MTY3NywgMC41NDIzNjgsIDAuNjg1NjY3LCAwLjkxNDk0OSwgMS4xMTU1MywgMS40MDE0MSIsIFwKLSAgICAgICAgICAiMC4xNTUzMDYsIDAuMzU4MTA1LCAwLjU1ODkxLCAwLjcwMjE1NCwgMC45MzEzMjEsIDEuMTMxODIsIDEuNDE4NTYiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTUxMjMsIDAuNTAxNDE0LCAwLjg4NTM4NSwgMS4xNjQzNCwgMS42MDU0MSwgMS45ODYyNCwgMi41NDQ1NCIsIFwKLSAgICAgICAgICAiMC4xMTU0MDMsIDAuNTAwNjA3LCAwLjg4ODMwNiwgMS4xNjQwMiwgMS42MDIxMywgMS45OTE2MSwgMi41NDAzNSIsIFwKLSAgICAgICAgICAiMC4xMTUyOCwgMC41MDA4ODIsIDAuODg2MTI4LCAxLjE2MzMxLCAxLjYwMTQxLCAxLjk5MTMzLCAyLjUzODE3IiwgXAotICAgICAgICAgICIwLjExNjY2MywgMC41MDE1MDMsIDAuODg3NTIsIDEuMTYxMzYsIDEuNjAzLCAxLjk5MjI3LCAyLjU0MjMyIiwgXAotICAgICAgICAgICIwLjExOTIyMywgMC41MDE4MDQsIDAuODg3NTYzLCAxLjE2MzQ0LCAxLjYwMTg5LCAxLjk5MjcsIDIuNTQyMjQiLCBcCi0gICAgICAgICAgIjAuMTI0OTM1LCAwLjUwMjE0NiwgMC44ODc1MTUsIDEuMTYxMzIsIDEuNjA1NDMsIDEuOTkyMDQsIDIuNTM5NjIiLCBcCi0gICAgICAgICAgIjAuMTMxOTI2LCAwLjUwMzYyOCwgMC44ODY1MTUsIDEuMTYyNDEsIDEuNjA0NjQsIDEuOTkwODgsIDIuNTQ0MDUiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzAwNTEsIDAuMTA0MDc3LCAwLjE3NzQsIDAuMjI5NjcxLCAwLjMxMzI4NiwgMC4zODYzNzcsIDAuNDkwODY0IiwgXAotICAgICAgICAgICIwLjA0MTg1NCwgMC4xMTU0NTMsIDAuMTg4NzkyLCAwLjI0MTA4NCwgMC4zMjQ2OTYsIDAuMzk3ODI0LCAwLjUwMjMyMyIsIFwKLSAgICAgICAgICAiMC4wNTY3ODMsIDAuMTMwNDM4LCAwLjIwMzc1NCwgMC4yNTYwMzgsIDAuMzM4Mzg0LCAwLjQxMTQ1MSwgMC41MTU5MzQiLCBcCi0gICAgICAgICAgIjAuMDcxNzcxLCAwLjE0NTcwOSwgMC4yMTg4MzMsIDAuMjcxMDQxLCAwLjM1NDUwNiwgMC40Mjc1MDQsIDAuNTI5NjM0IiwgXAotICAgICAgICAgICIwLjA4NTM0LCAwLjE2MDYzMywgMC4yMzM0NDMsIDAuMjg1NjAzLCAwLjM2OTA3OCwgMC40NDIxODIsIDAuNTQ2NjMiLCBcCi0gICAgICAgICAgIjAuMTA0ODI5LCAwLjE4NDUsIDAuMjU3NzMzLCAwLjMxMDE2OSwgMC4zOTM3MzksIDAuNDY2OTA1LCAwLjU3MDEyNyIsIFwKLSAgICAgICAgICAiMC4xMjAwOTMsIDAuMjA1NTU2LCAwLjI3ODc4LCAwLjMzMDkxOCwgMC40MTM5MzIsIDAuNDg4MjAxLCAwLjU5MDQ3NSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0NTQ4NCwgMC4xOTA3NDIsIDAuMzM1OTE2LCAwLjQzOTQ3OCwgMC42MDUzMjIsIDAuNzUwMjgyLCAwLjk1Nzg0IiwgXAotICAgICAgICAgICIwLjA0NTczMiwgMC4xOTA2NzQsIDAuMzM1NzM0LCAwLjQzOTQwMSwgMC42MDUxNjQsIDAuNzUwMzA3LCAwLjk1NzY5NyIsIFwKLSAgICAgICAgICAiMC4wNDk5MjYsIDAuMTkwNjU4LCAwLjMzNTg0NSwgMC40Mzk0NTMsIDAuNjA1MzY0LCAwLjc1MDIyOCwgMC45NTc1ODUiLCBcCi0gICAgICAgICAgIjAuMDU2NTYzLCAwLjE5MTc4NCwgMC4zMzU3NjMsIDAuNDM5NjAyLCAwLjYwNTQ2OSwgMC43NTAzNDcsIDAuOTU3Njc1IiwgXAotICAgICAgICAgICIwLjA2NDgsIDAuMTk0NzMzLCAwLjMzNjA5NSwgMC40Mzk0NzIsIDAuNjA1NTMsIDAuNzUwNDU4LCAwLjk1NzY5IiwgXAotICAgICAgICAgICIwLjA3OTYzNywgMC4yMDIwNDUsIDAuMzM5MTk5LCAwLjQ0MDQzNSwgMC42MDUyODgsIDAuNzUwNDAyLCAwLjk1NzY0NSIsIFwKLSAgICAgICAgICAiMC4wOTIzNDIsIDAuMjEwMjcsIDAuMzQzNzkzLCAwLjQ0MzMwMywgMC42MDU4ODYsIDAuNzUwMzQ2LCAwLjk1NzMyMyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1ODkwNiwgMC4yNTk3MiwgMC40NjAxMzUsIDAuNjAzNDU3LCAwLjgzMjQxNCwgMS4wMzI4MywgMS4zMTkwNiIsIFwKLSAgICAgICAgICAiMC4wNjc3MzksIDAuMjY5MTUzLCAwLjQ2OTY5LCAwLjYxMjg0OCwgMC44NDIyNTQsIDEuMDQyMjQsIDEuMzI4ODgiLCBcCi0gICAgICAgICAgIjAuMDc5NTczLCAwLjI4MTExMiwgMC40ODE4MzYsIDAuNjI0ODg2LCAwLjg1NDA2NSwgMS4wNTQzOSwgMS4zNDA5IiwgXAotICAgICAgICAgICIwLjA5MjMwNCwgMC4yOTM0NTMsIDAuNDk0MDg1LCAwLjYzNzM4MSwgMC44NjY4MDMsIDEuMDY2ODEsIDEuMzUzNDUiLCBcCi0gICAgICAgICAgIjAuMTA0NjY5LCAwLjMwNDY4NywgMC41MDU5NTgsIDAuNjQ5MjM1LCAwLjg3ODUzLCAxLjA3ODMyLCAxLjM2NTM2IiwgXAotICAgICAgICAgICIwLjEyNDMsIDAuMzI0NTI5LCAwLjUyNTM5NSwgMC42Njg4NzYsIDAuODk3OCwgMS4wOTgzMywgMS4zODUxIiwgXAotICAgICAgICAgICIwLjEzOTc5LCAwLjM0MTY4NCwgMC41NDEzNDUsIDAuNjg1ODI5LCAwLjkxNDg5OCwgMS4xMTU2NywgMS40MDE3OSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExNDYyMSwgMC41MDEzOTksIDAuODg3NTg2LCAxLjE2Mzk4LCAxLjYwMjEzLCAxLjk5MTQ4LCAyLjU0MyIsIFwKLSAgICAgICAgICAiMC4xMTM1OTEsIDAuNTAxNDA5LCAwLjg4NzU4NSwgMS4xNjIwNywgMS42MDU5NCwgMS45OTA3NSwgMi41NDM2MyIsIFwKLSAgICAgICAgICAiMC4xMTU0MzYsIDAuNTAxNDMsIDAuODg3OTM2LCAxLjE2MjI5LCAxLjYwNDg3LCAxLjk4ODQ5LCAyLjU0MzE3IiwgXAotICAgICAgICAgICIwLjExOTkyMiwgMC41MDEzNzUsIDAuODg2NDY3LCAxLjE2MzQxLCAxLjYwNTkyLCAxLjk4OTE5LCAyLjU0MzQ0IiwgXAotICAgICAgICAgICIwLjEyNjMyNiwgMC41MDA0OTMsIDAuODg2NTc1LCAxLjE2MzM4LCAxLjYwNTE5LCAxLjk4NzYyLCAyLjU0MzUzIiwgXAotICAgICAgICAgICIwLjEzODcxNCwgMC41MDE1NzIsIDAuODg3NTc1LCAxLjE2NDA2LCAxLjYwNDcyLCAxLjk5MTExLCAyLjU0NDE3IiwgXAotICAgICAgICAgICIwLjE1MDg4MiwgMC41MDQ4MjMsIDAuODg4MDI4LCAxLjE2MzMyLCAxLjYwMjkxLCAxLjk5MTUsIDIuNTQyMzgiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjUzODcsIDAuMDk4Njk2LCAwLjE3MTg5OCwgMC4yMjQxOTEsIDAuMzA3OTg0LCAwLjM4MTA5LCAwLjQ4NTY2MiIsIFwKLSAgICAgICAgICAiMC4wMzcyMjEsIDAuMTEwNjU4LCAwLjE4Mzg5OSwgMC4yMzYyMTksIDAuMzE5ODkyLCAwLjM5MzE0MSwgMC40OTc3MjgiLCBcCi0gICAgICAgICAgIjAuMDUyMTg2LCAwLjEyNTA5MiwgMC4xOTg1NDYsIDAuMjUwODI3LCAwLjMzNDU4NSwgMC40MDYxNDgsIDAuNTEwNzY4IiwgXAotICAgICAgICAgICIwLjA2NjMxMywgMC4xNDA3NDYsIDAuMjE0MDQzLCAwLjI2NjI0OSwgMC4zNTAwMTUsIDAuNDIzMDYzLCAwLjUyNDc0NSIsIFwKLSAgICAgICAgICAiMC4wNzg3NDUsIDAuMTU1NDg0LCAwLjIyODMzNSwgMC4yODA1MTgsIDAuMzYzOTM5LCAwLjQzNzI5OSwgMC41NDIyMjUiLCBcCi0gICAgICAgICAgIjAuMDk2Mzk2LCAwLjE3OTM0NSwgMC4yNTI1NjksIDAuMzA0OTIzLCAwLjM4ODYxNSwgMC40NjE5NywgMC41NjUxMTMiLCBcCi0gICAgICAgICAgIjAuMTEwMzA1LCAwLjIwMDc4OCwgMC4yNzM0NjYsIDAuMzI1NzA0LCAwLjQwOTg4MiwgMC40ODMwNjcsIDAuNTg1ODU2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM5OTA5LCAwLjE4NjMyNCwgMC4zMzIzODksIDAuNDM3MTEzLCAwLjYwMjQ2OCwgMC43NDc5NTcsIDAuOTU4NzAxIiwgXAotICAgICAgICAgICIwLjA0MDc5LCAwLjE4NTYzOCwgMC4zMzE4NzIsIDAuNDM1ODcxLCAwLjYwMjE4NiwgMC43NDgyOTEsIDAuOTU4MTA1IiwgXAotICAgICAgICAgICIwLjA0NTk3NSwgMC4xODYzNDQsIDAuMzMxNTksIDAuNDM2MTUyLCAwLjYwMzExOSwgMC43NTA0NSwgMC45NTY1NTEiLCBcCi0gICAgICAgICAgIjAuMDUzNzA3LCAwLjE4NzI2NSwgMC4zMzIyNDEsIDAuNDM1NTk3LCAwLjYwMzQ0NSwgMC43NDg5NjksIDAuOTU3OTQ5IiwgXAotICAgICAgICAgICIwLjA2MzAzNiwgMC4xOTA5OTEsIDAuMzMzMTM5LCAwLjQzNjE0NCwgMC42MDI3NzUsIDAuNzQ4MTkzLCAwLjk1ODEzNSIsIFwKLSAgICAgICAgICAiMC4wNzg4MzgsIDAuMTk4NTM4LCAwLjMzNTU4MSwgMC40Mzc3ODcsIDAuNjAzODExLCAwLjc0ODM2MywgMC45NTY2NzgiLCBcCi0gICAgICAgICAgIjAuMDkxNDgxLCAwLjIwNjYzMywgMC4zNDE0MTQsIDAuNDQwNzMzLCAwLjYwNTEyNSwgMC43NTA3MTksIDAuOTU4MDA5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTU3NDgsIDAuMDE1Nzc2LCAwLjAxNTc3OSwgMC4wMTU3NzYsIDAuMDE1NzgxLCAwLjAxNTc4MiwgMC4wMTU3ODIiLCBcCi0gICAgICAgICAgIjAuMDE1NjM2LCAwLjAxNTc0MSwgMC4wMTU3NiwgMC4wMTU3NjYsIDAuMDE1NzcxLCAwLjAxNTc3MywgMC4wMTU3NzkiLCBcCi0gICAgICAgICAgIjAuMDE1NTYsIDAuMDE1NzA4LCAwLjAxNTc0LCAwLjAxNTc1MiwgMC4wMTU3NTQsIDAuMDE1NzY1LCAwLjAxNTc3MSIsIFwKLSAgICAgICAgICAiMC4wMTU1MTUsIDAuMDE1Njc1LCAwLjAxNTcxNywgMC4wMTU3MzIsIDAuMDE1NzQ2LCAwLjAxNTc1MiwgMC4wMTU3NjIiLCBcCi0gICAgICAgICAgIjAuMDE1NDg5LCAwLjAxNTY0OSwgMC4wMTU2OTQsIDAuMDE1NzE2LCAwLjAxNTczNCwgMC4wMTU3NTksIDAuMDE1NzYzIiwgXAotICAgICAgICAgICIwLjAxNTQ1OSwgMC4wMTU2MTEsIDAuMDE1NjcyLCAwLjAxNTY5NiwgMC4wMTU3MTYsIDAuMDE1NzI3LCAwLjAxNTczOSIsIFwKLSAgICAgICAgICAiMC4wMTU0NDQsIDAuMDE1NTksIDAuMDE1NjUzLCAwLjAxNTY3OCwgMC4wMTU3MDIsIDAuMDE1NzA1LCAwLjAxNTcyOCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2MTgyLCAwLjAwNjE4NCwgMC4wMDYxODEsIDAuMDA2MTg0LCAwLjAwNjE4MywgMC4wMDYxNzgsIDAuMDA2MTc4IiwgXAotICAgICAgICAgICIwLjAwNTk5NiwgMC4wMDYwMTksIDAuMDA2MDI4LCAwLjAwNjAyOSwgMC4wMDYwMjcsIDAuMDA2MDI3LCAwLjAwNjAyNCIsIFwKLSAgICAgICAgICAiMC4wMDU4OTMsIDAuMDA1OTU3LCAwLjAwNTk2MywgMC4wMDU5NjYsIDAuMDA1OTY4LCAwLjAwNTk2OSwgMC4wMDU5NyIsIFwKLSAgICAgICAgICAiMC4wMDU4NTMsIDAuMDA1OTIyLCAwLjAwNTkzNiwgMC4wMDU5NDMsIDAuMDA1OTQ5LCAwLjAwNTk1MiwgMC4wMDU5NTUiLCBcCi0gICAgICAgICAgIjAuMDA1ODA1LCAwLjAwNTg5NiwgMC4wMDU5MDQsIDAuMDA1OTM0LCAwLjAwNTk0MiwgMC4wMDU5MzUsIDAuMDA1OTQiLCBcCi0gICAgICAgICAgIjAuMDA1NzU2LCAwLjAwNTg3NywgMC4wMDU4OTUsIDAuMDA1OTA4LCAwLjAwNTkxNywgMC4wMDU5MTksIDAuMDA1OTIzIiwgXAotICAgICAgICAgICIwLjAwNTc1OCwgMC4wMDU4NjQsIDAuMDA1ODksIDAuMDA1OSwgMC4wMDU5MSwgMC4wMDU5MTQsIDAuMDA1OTIzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTM3NjEsIDAuMDEzNzg5LCAwLjAxMzc5MywgMC4wMTM3OTQsIDAuMDEzNzksIDAuMDEzNzk1LCAwLjAxMzc5NiIsIFwKLSAgICAgICAgICAiMC4wMTM2NDksIDAuMDEzNzU1LCAwLjAxMzc4LCAwLjAxMzc4OSwgMC4wMTM3OTUsIDAuMDEzNzg1LCAwLjAxMzc4OCIsIFwKLSAgICAgICAgICAiMC4wMTM1NzMsIDAuMDEzNzE3LCAwLjAxMzc0OSwgMC4wMTM3NjIsIDAuMDEzNzY5LCAwLjAxMzc3LCAwLjAxMzc3OSIsIFwKLSAgICAgICAgICAiMC4wMTM1MywgMC4wMTM2ODgsIDAuMDEzNzMyLCAwLjAxMzc0MSwgMC4wMTM3NTgsIDAuMDEzNzY0LCAwLjAxMzc3MSIsIFwKLSAgICAgICAgICAiMC4wMTM1MDIsIDAuMDEzNjYzLCAwLjAxMzcxMiwgMC4wMTM3MjksIDAuMDEzNzQ2LCAwLjAxMzc1NSwgMC4wMTM3NjkiLCBcCi0gICAgICAgICAgIjAuMDEzNDU1LCAwLjAxMzYzLCAwLjAxMzY4NSwgMC4wMTM3MDYsIDAuMDEzNzI5LCAwLjAxMzc1OCwgMC4wMTM3NTIiLCBcCi0gICAgICAgICAgIjAuMDEzNDYsIDAuMDEzNjA1LCAwLjAxMzY2MywgMC4wMTM2ODgsIDAuMDEzNzE0LCAwLjAxMzcyOCwgMC4wMTM3NDEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzU3OCwgMC4wMDM1ODgsIDAuMDAzNTkxLCAwLjAwMzU4OSwgMC4wMDM1ODgsIDAuMDAzNTg4LCAwLjAwMzU5IiwgXAotICAgICAgICAgICIwLjAwMzQ2NywgMC4wMDM1NTYsIDAuMDAzNTcxLCAwLjAwMzU3NSwgMC4wMDM1NzksIDAuMDAzNTgyLCAwLjAwMzU4MyIsIFwKLSAgICAgICAgICAiMC4wMDMzNSwgMC4wMDM1MiwgMC4wMDM1NDUsIDAuMDAzNTU1LCAwLjAwMzU2MywgMC4wMDM1NjksIDAuMDAzNTczIiwgXAotICAgICAgICAgICIwLjAwMzI2MSwgMC4wMDM0NzYsIDAuMDAzNTIxLCAwLjAwMzUzNSwgMC4wMDM1NDksIDAuMDAzNTU3LCAwLjAwMzU2MyIsIFwKLSAgICAgICAgICAiMC4wMDMyMTMsIDAuMDAzNDM2LCAwLjAwMzQ5NiwgMC4wMDM1MTYsIDAuMDAzNTM1LCAwLjAwMzU0MywgMC4wMDM1NTUiLCBcCi0gICAgICAgICAgIjAuMDAzMTUxLCAwLjAwMzQsIDAuMDAzNDcxLCAwLjAwMzQ5NCwgMC4wMDM1MTcsIDAuMDAzNTI5LCAwLjAwMzU0MiIsIFwKLSAgICAgICAgICAiMC4wMDMxMywgMC4wMDMzNywgMC4wMDM0NDksIDAuMDAzNDgyLCAwLjAwMzQ5MSwgMC4wMDM1MTksIDAuMDAzNTMyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTE2NjUsIDAuMDExNzEzLCAwLjAxMTcxNywgMC4wMTE3MiwgMC4wMTE3MjIsIDAuMDExNzIsIDAuMDExNzI2IiwgXAotICAgICAgICAgICIwLjAxMTQ3OSwgMC4wMTE2NTgsIDAuMDExNjg1LCAwLjAxMTY5MSwgMC4wMTE2OTcsIDAuMDExNzA3LCAwLjAxMTcxIiwgXAotICAgICAgICAgICIwLjAxMTM3NCwgMC4wMTE1OTksIDAuMDExNjQ5LCAwLjAxMTY2NSwgMC4wMTE2ODIsIDAuMDExNjg4LCAwLjAxMTY5NiIsIFwKLSAgICAgICAgICAiMC4wMTEzMTgsIDAuMDExNTUzLCAwLjAxMTYxNiwgMC4wMTE2NDQsIDAuMDExNjYyLCAwLjAxMTY3MiwgMC4wMTE2ODUiLCBcCi0gICAgICAgICAgIjAuMDExMjkxLCAwLjAxMTUxMiwgMC4wMTE1OSwgMC4wMTE2MTcsIDAuMDExNjMxLCAwLjAxMTY1NywgMC4wMTE2NzMiLCBcCi0gICAgICAgICAgIjAuMDExMjc0LCAwLjAxMTQ2OCwgMC4wMTE1NDcsIDAuMDExNTg5LCAwLjAxMTYyMywgMC4wMTE2MjYsIDAuMDExNjUyIiwgXAotICAgICAgICAgICIwLjAxMTI3OCwgMC4wMTE0MzcsIDAuMDExNTE0LCAwLjAxMTU2NSwgMC4wMTE1OTUsIDAuMDExNjE3LCAwLjAxMTY1MSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwNjIsIDAuMDAwNjg4LCAwLjAwMDY5NywgMC4wMDA3LCAwLjAwMDcwMiwgMC4wMDA3MDMsIDAuMDAwNzA0IiwgXAotICAgICAgICAgICIwLjAwMDUyNywgMC4wMDA3NzQsIDAuMDAwODEyLCAwLjAwMDgyNCwgMC4wMDA4MzQsIDAuMDAwODQsIDAuMDAwODQ1IiwgXAotICAgICAgICAgICIwLjAwMDM4NiwgMC4wMDA3NDUsIDAuMDAwODEzLCAwLjAwMDgzNSwgMC4wMDA4NTQsIDAuMDAwODcsIDAuMDAwODgiLCBcCi0gICAgICAgICAgIjAuMDAwMjg0LCAwLjAwMDcwMSwgMC4wMDA3ODgsIDAuMDAwODE3LCAwLjAwMDg0MywgMC4wMDA4NTcsIDAuMDAwODc5IiwgXAotICAgICAgICAgICIwLjAwMDIxNiwgMC4wMDA2NTIsIDAuMDAwNzU5LCAwLjAwMDc5OCwgMC4wMDA4MzIsIDAuMDAwODUxLCAwLjAwMDg2NCIsIFwKLSAgICAgICAgICAiMC4wMDAxNDksIDAuMDAwNTk2LCAwLjAwMDcyMywgMC4wMDA3NjcsIDAuMDAwODA3LCAwLjAwMDgyOSwgMC4wMDA4NTYiLCBcCi0gICAgICAgICAgIjAuMDAwMTMxLCAwLjAwMDU1MSwgMC4wMDA2ODksIDAuMDAwNzQxLCAwLjAwMDc4OCwgMC4wMDA4MTksIDAuMDAwODQyIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogTk9SNEJYTCAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChOT1I0QlhMKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMDYxNzU2OTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQU4pICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDU5ODA2NzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA1OTc2NTQ7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNTk4MDY3OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDMyNCwgMC4wMDAzMDYsIDAuMDAwMjk2LCAwLjAwMDI5MiwgMC4wMDAyOTEsIDAuMDAwMjg5LCAwLjAwMDI5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxMDg1LCAwLjAwMTA3MiwgMC4wMDEwNjQsIDAuMDAxMDU5LCAwLjAwMTA1NywgMC4wMDEwNTYsIDAuMDAxMDU2Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA1NjM2Njg7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNTU5OTI5OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDU2MzY2ODsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAwODYsIDAuMDAwMDg2LCAwLjAwMDA4NiwgMC4wMDAwODYsIDAuMDAwMDg2LCAwLjAwMDA4NiwgMC4wMDAwODYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxNTYsIDAuMDAwMTU2LCAwLjAwMDE1NiwgMC4wMDAxNTYsIDAuMDAwMTU2LCAwLjAwMDE1NiwgMC4wMDAxNTYiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEMpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDU3NzAxNDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA1NzM4Nzg7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNTc3MDE0OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDA3MiwgMC4wMDAwNzIsIDAuMDAwMDcyLCAwLjAwMDA3MiwgMC4wMDAwNzIsIDAuMDAwMDcyLCAwLjAwMDA3MiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDMxMiwgMC4wMDAzMTIsIDAuMDAwMzEyLCAwLjAwMDMxMiwgMC4wMDAzMTIsIDAuMDAwMzEyLCAwLjAwMDMxMiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjA5MjU3OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYwOTI1NDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2MDkyNTc7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMDQ4LCAwLjAwMDA0OCwgMC4wMDAwNDgsIDAuMDAwMDQ4LCAwLjAwMDA0OCwgMC4wMDAwNDgsIDAuMDAwMDQ4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNDAyLCAwLjAwMDQwMiwgMC4wMDA0MDIsIDAuMDAwNDAyLCAwLjAwMDQwMiwgMC4wMDA0MDEsIDAuMDAwNDAxIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMDIxNTA5ODsKLSAgICBmdW5jdGlvbiA6ICIoISgoKCghQU4pK0IpK0MpK0QpKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQU4iOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjY1OTA2NywgMC43NjQ2NjUsIDEuNzE3MzQsIDMuMzA0MjIsIDQuODkwMDIsIDguNTkxMzksIDEwLjcwNjQiLCBcCi0gICAgICAgICAgIjAuNjcwOTUsIDAuNzc2OCwgMS43MjkxOCwgMy4zMTYxNiwgNC45MDE5MywgOC42MDMyOSwgMTAuNzE4MyIsIFwKLSAgICAgICAgICAiMC42ODYwNjgsIDAuNzkxNjU1LCAxLjc0NDMxLCAzLjMzMTQyLCA0LjkxNzE1LCA4LjYxODUxLCAxMC43MzM1IiwgXAotICAgICAgICAgICIwLjcwMTE5MywgMC44MDY3MjYsIDEuNzU5NjEsIDMuMzQ2MiwgNC45MzIyLCA4LjYzMzUsIDEwLjc0ODYiLCBcCi0gICAgICAgICAgIjAuNzE1MTI3LCAwLjgyMDcwOSwgMS43NzM1NSwgMy4zNjAyOCwgNC45NDYyLCA4LjY0NzUsIDEwLjc2MjYiLCBcCi0gICAgICAgICAgIjAuNzM1MiwgMC44NDA4OCwgMS43OTM3OCwgMy4zODAyLCA0Ljk2NjIzLCA4LjY2NzU1LCAxMC43ODI3IiwgXAotICAgICAgICAgICIwLjc1MDY2MSwgMC44NTY3NjUsIDEuODA5OTIsIDMuMzk1ODMsIDQuOTgyMjgsIDguNjgzNDIsIDEwLjc5ODUiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjEuMTMyOTIsIDEuMzMxNDYsIDMuMTUwNjEsIDYuMTY5NDksIDkuMTg4NzcsIDE2LjIyNzEsIDIwLjI1MDQiLCBcCi0gICAgICAgICAgIjEuMTMyNzMsIDEuMzM0NTIsIDMuMTUwNDIsIDYuMTY3NjYsIDkuMTg4NzksIDE2LjIyNzEsIDIwLjI1MDQiLCBcCi0gICAgICAgICAgIjEuMTMyNjcsIDEuMzM1NiwgMy4xNTAyNiwgNi4xNjg3MSwgOS4xODg4NiwgMTYuMjI3MSwgMjAuMjUwNCIsIFwKLSAgICAgICAgICAiMS4xMzI4MSwgMS4zMzY1MSwgMy4xNTA2NywgNi4xNzAyNywgOS4xODg3MSwgMTYuMjI2MywgMjAuMjUwNCIsIFwKLSAgICAgICAgICAiMS4xMzI3OSwgMS4zMzQwOSwgMy4xNTA2LCA2LjE2Nzk2LCA5LjE4ODczLCAxNi4yMjYzLCAyMC4yNTA0IiwgXAotICAgICAgICAgICIxLjEzNDAxLCAxLjMzNDQsIDMuMTUwODgsIDYuMTcwMywgOS4xODg1NiwgMTYuMjI3MSwgMjAuMjUwNCIsIFwKLSAgICAgICAgICAiMS4xMzIzOSwgMS4zMzQ1LCAzLjE1NDUxLCA2LjE3MjE2LCA5LjE4NjY0LCAxNi4yMjY2LCAyMC4yNTA0Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIxMTIzMywgMC4yNDEyMzQsIDAuNTEwMDMzLCAwLjk1NjM0OSwgMS40MDIyNywgMi40NDI1MiwgMy4wMzY3MyIsIFwKLSAgICAgICAgICAiMC4yMjI4NDYsIDAuMjUyODY4LCAwLjUyMTY3NiwgMC45Njc5ODksIDEuNDEzOTUsIDIuNDU0MTYsIDMuMDQ4MiIsIFwKLSAgICAgICAgICAiMC4yMzczNDIsIDAuMjY3MzQ0LCAwLjUzNjEzOSwgMC45ODI0NywgMS40MjgzMywgMi40NjkxMiwgMy4wNjI3NCIsIFwKLSAgICAgICAgICAiMC4yNTEyMzQsIDAuMjgxMjYyLCAwLjU1MDA1OCwgMC45OTYzOSwgMS40NDIyNywgMi40ODMwMSwgMy4wNzY2NiIsIFwKLSAgICAgICAgICAiMC4yNjM2MywgMC4yOTM2NjIsIDAuNTYyNDU3LCAxLjAwODg3LCAxLjQ1NDg1LCAyLjQ5NTM3LCAzLjA4OTA4IiwgXAotICAgICAgICAgICIwLjI4MTI0NSwgMC4zMTEyOCwgMC41ODAwNDgsIDEuMDI2NDEsIDEuNDcyNDcsIDIuNTEzMTksIDMuMTA3MDIiLCBcCi0gICAgICAgICAgIjAuMjk0NzQ0LCAwLjMyNDc2OCwgMC41OTM1MjcsIDEuMDQsIDEuNDg2MSwgMi41MjYzLCAzLjEyMDA3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjM0MjM3MSwgMC40MDExODMsIDAuOTI5ODc4LCAxLjgxMDc1LCAyLjY5MjEzLCA0Ljc0NzY1LCA1LjkyMDI0IiwgXAotICAgICAgICAgICIwLjM0MjMsIDAuNDAxMjI3LCAwLjkyOTk0LCAxLjgxMTM0LCAyLjY5MTM5LCA0Ljc0NzYzLCA1LjkyMTg1IiwgXAotICAgICAgICAgICIwLjM0MjQ3NCwgMC40MDExNzEsIDAuOTI5OSwgMS44MTA4MSwgMi42OTE1OSwgNC43NDYzNCwgNS45MjE0MSIsIFwKLSAgICAgICAgICAiMC4zNDI0MzQsIDAuNDAxMDk4LCAwLjkyOTg2MiwgMS44MTA3NywgMi42OTE1OSwgNC43NDY4MywgNS45MjE0IiwgXAotICAgICAgICAgICIwLjM0MjQ1NywgMC40MDExMDUsIDAuOTI5ODc1LCAxLjgxMTIzLCAyLjY5MjIyLCA0Ljc0NjY0LCA1LjkyMTE3IiwgXAotICAgICAgICAgICIwLjM0MjUxNCwgMC40MDExNTgsIDAuOTI5OTUsIDEuODEwNzcsIDIuNjkyMjMsIDQuNzQ2NjcsIDUuOTIxMjUiLCBcCi0gICAgICAgICAgIjAuMzQyNzE5LCAwLjQwMTQwMSwgMC45Mjk1NDcsIDEuODExMjksIDIuNjkxNjgsIDQuNzQ2ODYsIDUuOTIxODUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuNjIyOTE4LCAwLjcyODUzMiwgMS42ODExNCwgMy4yNjgyLCA0Ljg1MzkyLCA4LjU1NTI5LCAxMC42NzAzIiwgXAotICAgICAgICAgICIwLjYzMzcxNywgMC43MzkzMTMsIDEuNjkyNDQsIDMuMjc4MjksIDQuODY0NTIsIDguNTY1ODgsIDEwLjY4MSIsIFwKLSAgICAgICAgICAiMC42NDU2NjcsIDAuNzUxNzA2LCAxLjcwNDk1LCAzLjI5MDcxLCA0Ljg3NzAzLCA4LjU3ODQ0LCAxMC42OTM1IiwgXAotICAgICAgICAgICIwLjY1NzQzNywgMC43NjMyMzIsIDEuNzE1OTEsIDMuMzAyNjMsIDQuODg4OTIsIDguNTkwMjUsIDEwLjcwNTMiLCBcCi0gICAgICAgICAgIjAuNjY4NDQ5LCAwLjc3NDczOCwgMS43MjcxNSwgMy4zMTM2NiwgNC45MDAyMiwgOC42MDE0MiwgMTAuNzE2NSIsIFwKLSAgICAgICAgICAiMC42ODU0MDYsIDAuNzkxMzgxLCAxLjc0NDEyLCAzLjMzMDg5LCA0LjkxNzI3LCA4LjYxODQ5LCAxMC43MzM2IiwgXAotICAgICAgICAgICIwLjcwMDAyOSwgMC44MDU5NzUsIDEuNzU4ODYsIDMuMzQ1NCwgNC45MzE5NiwgOC42MzMxOCwgMTAuNzQ4MiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMS4xMzI2NywgMS4zMzQ3NSwgMy4xNTAzMiwgNi4xNjgwMSwgOS4xODg4MiwgMTYuMjI3MSwgMjAuMjUwNCIsIFwKLSAgICAgICAgICAiMS4xMzE0MiwgMS4zMzQzNSwgMy4xNDY5MiwgNi4xNzUzLCA5LjE4ODQ3LCAxNi4yMjcsIDIwLjI1MDQiLCBcCi0gICAgICAgICAgIjEuMTMyMzcsIDEuMzM0NDQsIDMuMTU0NTcsIDYuMTc1MzYsIDkuMTg3NzIsIDE2LjIyNzEsIDIwLjI1MDQiLCBcCi0gICAgICAgICAgIjEuMTMyNTMsIDEuMzM0MDYsIDMuMTUwMTQsIDYuMTc2MTQsIDkuMTg2OTEsIDE2LjIyNzEsIDIwLjI1MDQiLCBcCi0gICAgICAgICAgIjEuMTMyNDYsIDEuMzMyODUsIDMuMTQ3NzksIDYuMTc1NTMsIDkuMTg4NywgMTYuMjI3MSwgMjAuMjUwNCIsIFwKLSAgICAgICAgICAiMS4xMzIzMSwgMS4zMzQyMiwgMy4xNDg2NiwgNi4xNzIwNywgOS4xODg1OSwgMTYuMjI3LCAyMC4yNTA0IiwgXAotICAgICAgICAgICIxLjEzMTU1LCAxLjMzNDM0LCAzLjE1MDQzLCA2LjE3MjEsIDkuMTg3MDQsIDE2LjIyNzEsIDIwLjI0OTQiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTc5ODY4LCAwLjIwOTc2NiwgMC40Nzc3MTgsIDAuOTIzNjQsIDEuMzY5NDIsIDIuNDA4OTQsIDMuMDAzMjIiLCBcCi0gICAgICAgICAgIjAuMTkxODgzLCAwLjIyMTc2NSwgMC40ODk3NzQsIDAuOTM1ODkyLCAxLjM4MTksIDIuNDIxOTcsIDMuMDE0NzkiLCBcCi0gICAgICAgICAgIjAuMjA2ODE4LCAwLjIzNjcwNSwgMC41MDQ2OSwgMC45NTA1MjQsIDEuMzk2ODcsIDIuNDM3MDIsIDMuMDMwNjUiLCBcCi0gICAgICAgICAgIjAuMjIxODgzLCAwLjI1MTY0NiwgMC41MTkzODksIDAuOTY1MTYzLCAxLjQxMTM1LCAyLjQ1MTYyLCAzLjA0NTM5IiwgXAotICAgICAgICAgICIwLjIzNzMwNCwgMC4yNjcxNDksIDAuNTM1MTkzLCAwLjk4MTM4NiwgMS40MjcyNiwgMi40NjcwNCwgMy4wNjA3NSIsIFwKLSAgICAgICAgICAiMC4yNjE2MTcsIDAuMjkxNDIsIDAuNTU4MTI2LCAxLjAwNDA4LCAxLjQ0MTc0LCAyLjQ4MTgyLCAzLjA3NTEzIiwgXAotICAgICAgICAgICIwLjI4MzA2MiwgMC4zMTI4MDUsIDAuNTc4OTc5LCAxLjAyNDk1LCAxLjQ2ODMxLCAyLjUwMDY5LCAzLjA5NDQ0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMzNTg4NCwgMC4zOTQ3MiwgMC45MjMzMjYsIDEuODAzNzcsIDIuNjg1MjgsIDQuNzM4OTMsIDUuOTE0NzQiLCBcCi0gICAgICAgICAgIjAuMzM1OTQ5LCAwLjM5NDY4MywgMC45MjM1NjYsIDEuODA0MywgMi42ODUwMSwgNC43Mzk4NiwgNS45MTIxNCIsIFwKLSAgICAgICAgICAiMC4zMzU4ODUsIDAuMzk0Njc4LCAwLjkyMzM1LCAxLjgwNDQ0LCAyLjY4NTE1LCA0Ljc0MDQsIDUuOTEzOSIsIFwKLSAgICAgICAgICAiMC4zMzU3OTYsIDAuMzk0NjU2LCAwLjkyMzQwMSwgMS44MDM5MSwgMi42ODUzNiwgNC43Mzk5OSwgNS45MTM0NiIsIFwKLSAgICAgICAgICAiMC4zMzYwNTUsIDAuMzk0Njc1LCAwLjkyMzIyOCwgMS44MDQyMiwgMi42ODQ5MiwgNC43Mzk3NiwgNS45MTMyNyIsIFwKLSAgICAgICAgICAiMC4zMzg2MDcsIDAuMzk1ODU1LCAwLjkyMzY1NiwgMS44MDQzOCwgMi42ODQ5MiwgNC43Mzk2OSwgNS45MTQ3MiIsIFwKLSAgICAgICAgICAiMC4zNDI5MDMsIDAuMzk5MTc2LCAwLjkyMzMyNCwgMS44MDQzLCAyLjY4NDgxLCA0LjczOTg4LCA1LjkxMzk4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjYwODAzNiwgMC43MTQxMjQsIDEuNjY2NSwgMy4yNTMzNiwgNC44Mzk0NiwgOC41NDA1OSwgMTAuNjU1NyIsIFwKLSAgICAgICAgICAiMC42MTgzNTQsIDAuNzIzOTQ4LCAxLjY3NzExLCAzLjI2MjkzLCA0Ljg0OTM3LCA4LjU1MDY0LCAxMC42NjU3IiwgXAotICAgICAgICAgICIwLjYyOTk4MywgMC43MzYxLCAxLjY4ODMxLCAzLjI3NTUsIDQuODYxMjUsIDguNTYyNjEsIDEwLjY3NzYiLCBcCi0gICAgICAgICAgIjAuNjQxNjA5LCAwLjc0NzMxMywgMS43MDAyOCwgMy4yODY5NCwgNC44NzI5MSwgOC41NzQyMiwgMTAuNjg5MyIsIFwKLSAgICAgICAgICAiMC42NTI2OTIsIDAuNzU4ODY4LCAxLjcxMjA5LCAzLjI5NzkzLCA0Ljg4NDI4LCA4LjU4NTY4LCAxMC43MDA3IiwgXAotICAgICAgICAgICIwLjY3MDcwMiwgMC43NzY2OTUsIDEuNzI5MjIsIDMuMzE2MDYsIDQuOTAyNTksIDguNjAzODYsIDEwLjcxODkiLCBcCi0gICAgICAgICAgIjAuNjg2NDc1LCAwLjc5MjQ1NywgMS43NDU3LCAzLjMzMjA4LCA0LjkxODYyLCA4LjYxOTgsIDEwLjczNDkiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjEuMTMyMzUsIDEuMzM0NTMsIDMuMTUwMzYsIDYuMTc2NDksIDkuMTg2ODQsIDE2LjIyNzEsIDIwLjI1MDQiLCBcCi0gICAgICAgICAgIjEuMTMxNDIsIDEuMzM0MzcsIDMuMTQ2NjgsIDYuMTc1MzUsIDkuMTg2NzEsIDE2LjIyNzEsIDIwLjI1MDQiLCBcCi0gICAgICAgICAgIjEuMTMyNjEsIDEuMzM2MDUsIDMuMTUwMTQsIDYuMTY5MTMsIDkuMTg4OCwgMTYuMjI3MSwgMjAuMjUwNCIsIFwKLSAgICAgICAgICAiMS4xMzI2NywgMS4zMzM1NSwgMy4xNTA2NiwgNi4xNjk5NywgOS4xODg1MiwgMTYuMjI3LCAyMC4yNTA0IiwgXAotICAgICAgICAgICIxLjEzMjQ0LCAxLjMzNDU4LCAzLjE0NjY0LCA2LjE3NTIyLCA5LjE4ODA5LCAxNi4yMjcxLCAyMC4yNTA0IiwgXAotICAgICAgICAgICIxLjEzMjQzLCAxLjMzNDI5LCAzLjE0OTU3LCA2LjE3NTY3LCA5LjE4ODYzLCAxNi4yMjcxLCAyMC4yNTA0IiwgXAotICAgICAgICAgICIxLjEzMjU1LCAxLjMzNDIxLCAzLjE1MDczLCA2LjE3NjExLCA5LjE4NjUyLCAxNi4yMjcxLCAyMC4yNDk5Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE3NDg0MSwgMC4yMDQ2MTEsIDAuNDcyMTI2LCAwLjkxNzc0MywgMS4zNjMzLCAyLjQwMjg1LCAyLjk5NzAzIiwgXAotICAgICAgICAgICIwLjE4Njk3MywgMC4yMTY3MzUsIDAuNDg0MjcxLCAwLjkzMDI0MiwgMS4zNzYxMiwgMi40MTYwOCwgMy4wMDg5OSIsIFwKLSAgICAgICAgICAiMC4yMDIwMTIsIDAuMjMxNzczLCAwLjQ5OTIzOSwgMC45NDUxMDUsIDEuMzkwOTksIDIuNDMwNDMsIDMuMDI0NjEiLCBcCi0gICAgICAgICAgIjAuMjE3MTU4LCAwLjI0NjgzNiwgMC41MTQwMzEsIDAuOTU5Njg1LCAxLjQwNTY5LCAyLjQ0NTU5LCAzLjAzOTIiLCBcCi0gICAgICAgICAgIjAuMjMyNzA4LCAwLjI2MTc0MiwgMC41MzAwMTYsIDAuOTc1NzkxLCAxLjQyMTU1LCAyLjQ2MTI0LCAzLjA1NTExIiwgXAotICAgICAgICAgICIwLjI1NjkyMywgMC4yODY2MjcsIDAuNTUyOTk1LCAwLjk5ODU2MywgMS40MzYxMywgMi40NzU2OCwgMy4wNzk0MiIsIFwKLSAgICAgICAgICAiMC4yNzgzODUsIDAuMzA4MDEyLCAwLjU3Mzc1MSwgMS4wMTk0NywgMS40NjI3LCAyLjQ5NDk2LCAzLjA4ODE4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMzMDE0LCAwLjM4OTA5MiwgMC45MTczODIsIDEuNzk3NzksIDIuNjc4MjEsIDQuNzMzNDMsIDUuOTEyNTUiLCBcCi0gICAgICAgICAgIjAuMzMwMjY3LCAwLjM4OTAzNCwgMC45MTc0NywgMS43OTgyNiwgMi42Nzg5NSwgNC43MzUxLCA1LjkwNzU1IiwgXAotICAgICAgICAgICIwLjMzMDE0LCAwLjM4ODk2NiwgMC45MTc1NDEsIDEuNzk4MTcsIDIuNjc4ODQsIDQuNzM0MjMsIDUuOTA5MTEiLCBcCi0gICAgICAgICAgIjAuMzMwMjM0LCAwLjM4OSwgMC45MTc1MTcsIDEuNzk4NDYsIDIuNjc5LCA0LjczNTE3LCA1LjkwODU5IiwgXAotICAgICAgICAgICIwLjMzMDQ0NSwgMC4zODg5ODcsIDAuOTE3NTEyLCAxLjc5ODE2LCAyLjY3ODgyLCA0LjczNDIyLCA1LjkwODc0IiwgXAotICAgICAgICAgICIwLjMzMzMzNywgMC4zOTA0MTMsIDAuOTE3NDE4LCAxLjc5ODIsIDIuNjc4NzksIDQuNzM0MDYsIDUuOTEyODIiLCBcCi0gICAgICAgICAgIjAuMzM3NzQyLCAwLjM5MzkzMywgMC45MTc1MDgsIDEuNzk4MjMsIDIuNjc5MDEsIDQuNzMzNDQsIDUuOTA5NzkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuNTg1NzYzLCAwLjY5MTk3MiwgMS42NDQ5MSwgMy4yMzA2NywgNC44MTcxMywgOC41MTgyNiwgMTAuNjMzMyIsIFwKLSAgICAgICAgICAiMC41OTUxOSwgMC43MDEwMzIsIDEuNjUzNDEsIDMuMjQwMjcsIDQuODI2NjIsIDguNTI3OTEsIDEwLjY0MjkiLCBcCi0gICAgICAgICAgIjAuNjA2NTAyLCAwLjcxMjI1MSwgMS42NjUwOCwgMy4yNTE1NSwgNC44MzgwNCwgOC41MzkzNSwgMTAuNjU0NCIsIFwKLSAgICAgICAgICAiMC42MTc4OTEsIDAuNzIzODk5LCAxLjY3NzMxLCAzLjI2MzczLCA0Ljg0OTYxLCA4LjU1MTAyLCAxMC42NjYxIiwgXAotICAgICAgICAgICIwLjYyOTY2MSwgMC43MzU2MjUsIDEuNjg4NjYsIDMuMjc1NDQsIDQuODYxMjYsIDguNTYyNjIsIDEwLjY3NzciLCBcCi0gICAgICAgICAgIjAuNjQ3Nzk4LCAwLjc1MzYwNSwgMS43MDY4LCAzLjI5Mzg0LCA0Ljg3OTcyLCA4LjU4MTExLCAxMC42OTYyIiwgXAotICAgICAgICAgICIwLjY2MzY1NCwgMC43Njk2ODEsIDEuNzIyOTMsIDMuMzA5NTgsIDQuODk1OTMsIDguNTk3MywgMTAuNzEyMyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMS4xMzI0NiwgMS4zMzYwNywgMy4xNDcwMSwgNi4xNzQyMSwgOS4xODY3OCwgMTYuMjI2NywgMjAuMjUwNCIsIFwKLSAgICAgICAgICAiMS4xMzIzNywgMS4zMzQyMSwgMy4xNDgyOSwgNi4xNzYxNSwgOS4xODY3NSwgMTYuMjI3MSwgMjAuMjUwNCIsIFwKLSAgICAgICAgICAiMS4xMzI1NCwgMS4zMzY0OSwgMy4xNTAyOSwgNi4xNzQzNSwgOS4xODcxOCwgMTYuMjI3MSwgMjAuMjUwNCIsIFwKLSAgICAgICAgICAiMS4xMzIyNCwgMS4zMzQyNiwgMy4xNTQyOSwgNi4xNjkwNiwgOS4xODg2MiwgMTYuMjI3MSwgMjAuMjUwNCIsIFwKLSAgICAgICAgICAiMS4xMzI3NiwgMS4zMzQ1OCwgMy4xNTA5NCwgNi4xNjgzNiwgOS4xODc5MywgMTYuMjI3MSwgMjAuMjUwNCIsIFwKLSAgICAgICAgICAiMS4xMzI1MywgMS4zMzQwMSwgMy4xNDc0NiwgNi4xNjc1NCwgOS4xODc3NywgMTYuMjI3MSwgMjAuMjUwNCIsIFwKLSAgICAgICAgICAiMS4xMzM1OCwgMS4zMzY0NywgMy4xNTA0NiwgNi4xNzYxNSwgOS4xODg1NywgMTYuMjI3MSwgMjAuMjUwNCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNjk0NjksIDAuMTk5MTcxLCAwLjQ2NjYzNywgMC45MTIyMDgsIDEuMzU3ODksIDIuMzk3MDYsIDIuOTkxMDgiLCBcCi0gICAgICAgICAgIjAuMTgxNzg5LCAwLjIxMTQ5OCwgMC40Nzg5LCAwLjkyNDMwMiwgMS4zNjk5LCAyLjQwOTU1LCAzLjAwMzUxIiwgXAotICAgICAgICAgICIwLjE5NjU5NCwgMC4yMjYyODIsIDAuNDkwODcxLCAwLjkzNzEzMywgMS4zODI5NCwgMi40MjI1LCAzLjAxNTk4IiwgXAotICAgICAgICAgICIwLjIxMjE5NywgMC4yNDEyMTIsIDAuNTA4NTg3LCAwLjk0OTgxMSwgMS4zOTU1LCAyLjQzNTkzLCAzLjAyODYyIiwgXAotICAgICAgICAgICIwLjIyNjcxMiwgMC4yNTY5MjksIDAuNTIzNjMzLCAwLjk2MzMzLCAxLjQwOTM1LCAyLjQ0OTMxLCAzLjA0Mjg1IiwgXAotICAgICAgICAgICIwLjI1MTgwOSwgMC4yODE0MzUsIDAuNTQ3NTE5LCAwLjk5MjkzMiwgMS40MzE3NSwgMi40NzA0NSwgMy4wNjQzOSIsIFwKLSAgICAgICAgICAiMC4yNzMyNTcsIDAuMzAyODY2LCAwLjU2ODQzNCwgMS4wMTQwNiwgMS40NTc0NywgMi40ODg3MywgMy4wODI4NSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMjU5NzIsIDAuMzg0OTYsIDAuOTEyNzY2LCAxLjc5Njk0LCAyLjY3ODk1LCA0LjczMjgyLCA1LjkwNzM0IiwgXAotICAgICAgICAgICIwLjMyNTIzNSwgMC4zODM5NjEsIDAuOTEyMjksIDEuODAwNjEsIDIuNjc1NTcsIDQuNzM3ODMsIDUuOTA3MzMiLCBcCi0gICAgICAgICAgIjAuMzI1OTkxLCAwLjM4NDAwNSwgMC45MTI2ODYsIDEuNzk2MTEsIDIuNjc1OTQsIDQuNzM2MTMsIDUuOTA3MDQiLCBcCi0gICAgICAgICAgIjAuMzI1OTg4LCAwLjM4NDAwNCwgMC45MTMyMTQsIDEuNzk4ODYsIDIuNjc5MzQsIDQuNzM2NjEsIDUuOTA1NjEiLCBcCi0gICAgICAgICAgIjAuMzI1NjY4LCAwLjM4NDk2LCAwLjkxMzg4MywgMS43OTM1OSwgMi42NzU5MywgNC43MzMzNywgNS45MDQ5MSIsIFwKLSAgICAgICAgICAiMC4zMjk0MzMsIDAuMzg2NzU2LCAwLjkxNDg3NCwgMS43OTU1MiwgMi42NzkxNSwgNC43MzU2NywgNS45MDU3MyIsIFwKLSAgICAgICAgICAiMC4zMzQwMjYsIDAuMzg5MjU5LCAwLjkxNDQwNCwgMS43OTc0MSwgMi42NzUyOCwgNC43MzU5OCwgNS45MDcyOSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkFOIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDE3NjEsIDAuMDAxNzYxLCAwLjAwMTc2MSwgMC4wMDE3NjEsIDAuMDAxNzYxLCAwLjAwMTYzMSwgMC4wMDA0MjEiLCBcCi0gICAgICAgICAgIjAuMDAxNzQyLCAwLjAwMTc0MiwgMC4wMDE3NDMsIDAuMDAxNzQyLCAwLjAwMTc0MiwgMC4wMDE2MTIsIDAuMDAwMzk4IiwgXAotICAgICAgICAgICIwLjAwMTczMiwgMC4wMDE3MzIsIDAuMDAxNzMzLCAwLjAwMTczMywgMC4wMDE3MzMsIDAuMDAxNjAyLCAwLjAwMDM4NCIsIFwKLSAgICAgICAgICAiMC4wMDE3MjksIDAuMDAxNzI5LCAwLjAwMTczLCAwLjAwMTcyOSwgMC4wMDE3MywgMC4wMDE2MDQsIDAuMDAwMzc2IiwgXAotICAgICAgICAgICIwLjAwMTcyNywgMC4wMDE3MjcsIDAuMDAxNzI4LCAwLjAwMTcyOSwgMC4wMDE3MjksIDAuMDAxNjA1LCAwLjAwMDM3IiwgXAotICAgICAgICAgICIwLjAwMTcyNywgMC4wMDE3MjgsIDAuMDAxNzI5LCAwLjAwMTcyOSwgMC4wMDE3MzEsIDAuMDAxNTk2LCAwLjAwMDM2MyIsIFwKLSAgICAgICAgICAiMC4wMDE3MjgsIDAuMDAxNzI5LCAwLjAwMTczLCAwLjAwMTczMSwgMC4wMDE3MzEsIDAuMDAxNTk1LCAwLjAwMDM1OSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTg3NCwgMC4wMDE4NzUsIDAuMDAxODc1LCAwLjAwMTg3NCwgMC4wMDE4NzMsIDAuMDAxODcyLCAwLjAwMTg3MSIsIFwKLSAgICAgICAgICAiMC4wMDE4NiwgMC4wMDE4NiwgMC4wMDE4NiwgMC4wMDE4NiwgMC4wMDE4NTksIDAuMDAxODU3LCAwLjAwMTg1NyIsIFwKLSAgICAgICAgICAiMC4wMDE4NSwgMC4wMDE4NSwgMC4wMDE4NSwgMC4wMDE4NSwgMC4wMDE4NDksIDAuMDAxODQ3LCAwLjAwMTg0NyIsIFwKLSAgICAgICAgICAiMC4wMDE4NDYsIDAuMDAxODQ2LCAwLjAwMTg0NiwgMC4wMDE4NDYsIDAuMDAxODQ1LCAwLjAwMTg0NCwgMC4wMDE4NDMiLCBcCi0gICAgICAgICAgIjAuMDAxODQ0LCAwLjAwMTg0NCwgMC4wMDE4NDQsIDAuMDAxODQzLCAwLjAwMTg0MywgMC4wMDE4NDIsIDAuMDAxODQiLCBcCi0gICAgICAgICAgIjAuMDAxODQxLCAwLjAwMTg0MSwgMC4wMDE4NDIsIDAuMDAxODQxLCAwLjAwMTg0MSwgMC4wMDE4NCwgMC4wMDE4MzkiLCBcCi0gICAgICAgICAgIjAuMDAxODQxLCAwLjAwMTg0MSwgMC4wMDE4NDIsIDAuMDAxODQyLCAwLjAwMTg0MSwgMC4wMDE4MzksIDAuMDAxODM5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxNTkyLCAwLjAwMTU5MiwgMC4wMDE1OTIsIDAuMDAxNTg5LCAwLjAwMTU5MiwgMC4wMDE0NjIsIDAuMDAwMjU2IiwgXAotICAgICAgICAgICIwLjAwMTU5MSwgMC4wMDE1OTEsIDAuMDAxNTkyLCAwLjAwMTU5MiwgMC4wMDE1OTIsIDAuMDAxNDYyLCAwLjAwMDI1MiIsIFwKLSAgICAgICAgICAiMC4wMDE1ODksIDAuMDAxNTg5LCAwLjAwMTU5MSwgMC4wMDE1OTIsIDAuMDAxNTkyLCAwLjAwMTQ2MSwgMC4wMDAyNDgiLCBcCi0gICAgICAgICAgIjAuMDAxNTg4LCAwLjAwMTU4OCwgMC4wMDE1OTEsIDAuMDAxNTkxLCAwLjAwMTU5MSwgMC4wMDE0NiwgMC4wMDAyNDMiLCBcCi0gICAgICAgICAgIjAuMDAxNTg2LCAwLjAwMTU4NywgMC4wMDE1OSwgMC4wMDE1OTEsIDAuMDAxNTkxLCAwLjAwMTQ1OSwgMC4wMDAyMzgiLCBcCi0gICAgICAgICAgIjAuMDAxNTg1LCAwLjAwMTU4NiwgMC4wMDE1ODksIDAuMDAxNTkxLCAwLjAwMTU5MSwgMC4wMDE0NTgsIDAuMDAwMjMxIiwgXAotICAgICAgICAgICIwLjAwMTU4MywgMC4wMDE1ODQsIDAuMDAxNTg4LCAwLjAwMTU5LCAwLjAwMTU5LCAwLjAwMTQ1NywgMC4wMDAxOTEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDA0MTQsIDAuMDAwNDE0LCAwLjAwMDQxNCwgMC4wMDA0MTQsIDAuMDAwNDEzLCAwLjAwMDQxMiwgMC4wMDA0MTIiLCBcCi0gICAgICAgICAgIjAuMDAwNDA5LCAwLjAwMDQwOSwgMC4wMDA0MDksIDAuMDAwNDA5LCAwLjAwMDQwOSwgMC4wMDA0MDgsIDAuMDAwNDA3IiwgXAotICAgICAgICAgICIwLjAwMDQwNiwgMC4wMDA0MDYsIDAuMDAwNDA3LCAwLjAwMDQwNiwgMC4wMDA0MDYsIDAuMDAwNDA1LCAwLjAwMDQwNSIsIFwKLSAgICAgICAgICAiMC4wMDA0MDQsIDAuMDAwNDA0LCAwLjAwMDQwNSwgMC4wMDA0MDYsIDAuMDAwNDA1LCAwLjAwMDQwNSwgMC4wMDA0MDQiLCBcCi0gICAgICAgICAgIjAuMDAwNDAyLCAwLjAwMDQwMywgMC4wMDA0MDUsIDAuMDAwNDA1LCAwLjAwMDQwNSwgMC4wMDA0MDQsIDAuMDAwNDA0IiwgXAotICAgICAgICAgICIwLjAwMDQwMSwgMC4wMDA0MDIsIDAuMDAwNDA0LCAwLjAwMDQwNCwgMC4wMDA0MDQsIDAuMDAwNDAzLCAwLjAwMDQwMyIsIFwKLSAgICAgICAgICAiMC4wMDA0LCAwLjAwMDQwMSwgMC4wMDA0MDMsIDAuMDAwNDA0LCAwLjAwMDQwNCwgMC4wMDA0MDMsIDAuMDAwNDAyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxNDUxLCAwLjAwMTQ1MSwgMC4wMDE0NTEsIDAuMDAxNDUxLCAwLjAwMTQ1MSwgMC4wMDEzMzgsIDAuMDAwMTE3IiwgXAotICAgICAgICAgICIwLjAwMTQ1LCAwLjAwMTQ1LCAwLjAwMTQ1MSwgMC4wMDE0NTEsIDAuMDAxNDUxLCAwLjAwMTMyMSwgMC4wMDAxMTQiLCBcCi0gICAgICAgICAgIjAuMDAxNDQ4LCAwLjAwMTQ0OCwgMC4wMDE0NSwgMC4wMDE0NSwgMC4wMDE0NTIsIDAuMDAxMzIsIDAuMDAwMTA5IiwgXAotICAgICAgICAgICIwLjAwMTQ0NywgMC4wMDE0NDgsIDAuMDAxNDUsIDAuMDAxNDUsIDAuMDAxNDUyLCAwLjAwMTMyLCAwLjAwMDEwNCIsIFwKLSAgICAgICAgICAiMC4wMDE0NDYsIDAuMDAxNDQ3LCAwLjAwMTQ0OSwgMC4wMDE0NSwgMC4wMDE0NSwgMC4wMDEzMTksIDAuMDAwMSIsIFwKLSAgICAgICAgICAiMC4wMDE0NDQsIDAuMDAxNDQ1LCAwLjAwMTQ0OCwgMC4wMDE0NSwgMC4wMDE0NDksIDAuMDAxMzE4LCAwLjAwMDA5MiIsIFwKLSAgICAgICAgICAiMC4wMDE0NDMsIDAuMDAxNDQ0LCAwLjAwMTQ0OCwgMC4wMDE0NSwgMC4wMDE0NSwgMC4wMDEzMTcsIDAuMDAwMDczIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwMjIzLCAwLjAwMDIyMywgMC4wMDAyMjMsIDAuMDAwMjIyLCAwLjAwMDIyMiwgMC4wMDAyMjIsIDAuMDAwMjIyIiwgXAotICAgICAgICAgICIwLjAwMDIyNiwgMC4wMDAyMjYsIDAuMDAwMjI3LCAwLjAwMDIyNywgMC4wMDAyMjcsIDAuMDAwMjI3LCAwLjAwMDIyNiIsIFwKLSAgICAgICAgICAiMC4wMDAyMjYsIDAuMDAwMjI3LCAwLjAwMDIyOCwgMC4wMDAyMjksIDAuMDAwMjI5LCAwLjAwMDIyOSwgMC4wMDAyMjgiLCBcCi0gICAgICAgICAgIjAuMDAwMjI1LCAwLjAwMDIyNiwgMC4wMDAyMjgsIDAuMDAwMjI5LCAwLjAwMDIyOSwgMC4wMDAyMjksIDAuMDAwMjI5IiwgXAotICAgICAgICAgICIwLjAwMDIyNCwgMC4wMDAyMjQsIDAuMDAwMjI4LCAwLjAwMDIyOSwgMC4wMDAyMjksIDAuMDAwMjI5LCAwLjAwMDIyOSIsIFwKLSAgICAgICAgICAiMC4wMDAyMjIsIDAuMDAwMjI0LCAwLjAwMDIyOCwgMC4wMDAyMjksIDAuMDAwMjMsIDAuMDAwMjMsIDAuMDAwMjI5IiwgXAotICAgICAgICAgICIwLjAwMDIyMSwgMC4wMDAyMjIsIDAuMDAwMjI3LCAwLjAwMDIyOSwgMC4wMDAyMywgMC4wMDAyMywgMC4wMDAyMyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkQiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTMxMiwgMC4wMDEzMTIsIDAuMDAxMzEyLCAwLjAwMTMxMSwgMC4wMDEzMTMsIDAuMDAxMTk5LCAwLjAwMDAxOSIsIFwKLSAgICAgICAgICAiMC4wMDEzMDksIDAuMDAxMzEsIDAuMDAxMzExLCAwLjAwMTMxMiwgMC4wMDEzMTEsIDAuMDAxMTk4LCAwLjAwMDAyMyIsIFwKLSAgICAgICAgICAiMC4wMDEzMDcsIDAuMDAxMzA4LCAwLjAwMTMxLCAwLjAwMTMxMSwgMC4wMDEzMTEsIDAuMDAxMTgxLCAwLjAwMDAyOCIsIFwKLSAgICAgICAgICAiMC4wMDEzMDUsIDAuMDAxMzA2LCAwLjAwMTMwOSwgMC4wMDEzMSwgMC4wMDEzMTIsIDAuMDAxMTgsIDAuMDAwMDMzIiwgXAotICAgICAgICAgICIwLjAwMTMwMywgMC4wMDEzMDQsIDAuMDAxMzA4LCAwLjAwMTMxLCAwLjAwMTMxLCAwLjAwMTE4LCAwLjAwMDAzNyIsIFwKLSAgICAgICAgICAiMC4wMDEzLCAwLjAwMTMwMiwgMC4wMDEzMDcsIDAuMDAxMzA5LCAwLjAwMTMwOSwgMC4wMDExNzgsIDAuMDAwMDQ1IiwgXAotICAgICAgICAgICIwLjAwMTI5OSwgMC4wMDEzLCAwLjAwMTMwNiwgMC4wMDEzMDksIDAuMDAxMzA5LCAwLjAwMTE3NywgMC4wMDAwNTEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDAwMzgsIDAuMDAwMDM4LCAwLjAwMDAzOSwgMC4wMDAwMzksIDAuMDAwMDM5LCAwLjAwMDAzOSwgMC4wMDAwMzkiLCBcCi0gICAgICAgICAgIjAuMDAwMDQ3LCAwLjAwMDA0OCwgMC4wMDAwNDksIDAuMDAwMDUsIDAuMDAwMDUsIDAuMDAwMDUsIDAuMDAwMDUiLCBcCi0gICAgICAgICAgIjAuMDAwMDQ4LCAwLjAwMDA0OSwgMC4wMDAwNTMsIDAuMDAwMDU0LCAwLjAwMDA1NSwgMC4wMDAwNTUsIDAuMDAwMDU1IiwgXAotICAgICAgICAgICIwLjAwMDA0NywgMC4wMDAwNDksIDAuMDAwMDUzLCAwLjAwMDA1NiwgMC4wMDAwNTYsIDAuMDAwMDU3LCAwLjAwMDA1NyIsIFwKLSAgICAgICAgICAiMC4wMDAwNDYsIDAuMDAwMDQ4LCAwLjAwMDA1MywgMC4wMDAwNTYsIDAuMDAwMDU3LCAwLjAwMDA1NywgMC4wMDAwNTgiLCBcCi0gICAgICAgICAgIjAuMDAwMDQzLCAwLjAwMDA0NSwgMC4wMDAwNTIsIDAuMDAwMDU1LCAwLjAwMDA1NywgMC4wMDAwNTgsIDAuMDAwMDU4IiwgXAotICAgICAgICAgICIwLjAwMDA0MSwgMC4wMDAwNDQsIDAuMDAwMDUyLCAwLjAwMDA1NSwgMC4wMDAwNTYsIDAuMDAwMDU4LCAwLjAwMDA1OCIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogTk9SNFg0ICoKLSAqIC0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoTk9SNFg0KSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMzE2MzE0OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDI4OTQ2MTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDI4NjAxMTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDI4OTQ2MTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA5OTEsIDAuMDAxMDMzLCAwLjAwMTA2MSwgMC4wMDEwNzUsIDAuMDAxMDg0LCAwLjAwMTA5NywgMC4wMDExMDQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDI4MTUsIDAuMDAyODE4LCAwLjAwMjgxNiwgMC4wMDI4MTgsIDAuMDAyODEzLCAwLjAwMjgxOSwgMC4wMDI4MTkiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMjg1OTE2OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMjgyODcxOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMjg1OTE2OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDk4OSwgMC4wMDEwMiwgMC4wMDEwNTQsIDAuMDAxMDc2LCAwLjAwMTA5MSwgMC4wMDExMDYsIDAuMDAxMTE2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxNzM5LCAwLjAwMTc0LCAwLjAwMTc0LCAwLjAwMTc0LCAwLjAwMTc0LCAwLjAwMTc0MSwgMC4wMDE3NCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQykgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAyNzc5MTM7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAyNzUyODk7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAyNzc5MTM7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxMDEzLCAwLjAwMTA2OCwgMC4wMDExLCAwLjAwMTExOCwgMC4wMDExMjksIDAuMDAxMTM5LCAwLjAwMTE0NSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTI4MywgMC4wMDEyODQsIDAuMDAxMjg0LCAwLjAwMTI4NCwgMC4wMDEyODQsIDAuMDAxMjg0LCAwLjAwMTI4MyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAyODYwMjc7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAyODYwMjc7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAyODYwMjU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzA4LCAwLjAwMDMwOCwgMC4wMDAzMDgsIDAuMDAwMzA5LCAwLjAwMDMwOSwgMC4wMDAzMDksIDAuMDAwMzA5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxNDE4LCAwLjAwMTQxOCwgMC4wMDE0MTcsIDAuMDAxNDE3LCAwLjAwMTQxNywgMC4wMDE0MTcsIDAuMDAxNDE4Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMTM5MTMyOwotICAgIGZ1bmN0aW9uIDogIighKCgoQStCKStDKStEKSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTc2NzU3LCAwLjcyNDk4NiwgMS4yNzM0NywgMS42NjQ0MSwgMi4yOTEyNSwgMi44Mzg2NiwgMy42MjEwNiIsIFwKLSAgICAgICAgICAiMC4xODgwNjcsIDAuNzM2OTYxLCAxLjI4NDgsIDEuNjc2OTksIDIuMzAyMzcsIDIuODUwNSwgMy42MzI5NyIsIFwKLSAgICAgICAgICAiMC4yMDExMTEsIDAuNzUwMDc5LCAxLjI5ODUyLCAxLjY4OTE0LCAyLjMxNzA0LCAyLjg2NDMzLCAzLjY0NjUiLCBcCi0gICAgICAgICAgIjAuMjEzMTQsIDAuNzYyMjc5LCAxLjMxMDc4LCAxLjcwMjE1LCAyLjMyOTI4LCAyLjg3NjY0LCAzLjY1ODU3IiwgXAotICAgICAgICAgICIwLjIyNDU0NCwgMC43NzQwMDYsIDEuMzIyMTQsIDEuNzE0MzYsIDIuMzQwMjksIDIuODg3NzcsIDMuNjcwMjYiLCBcCi0gICAgICAgICAgIjAuMjQyMTMzLCAwLjc5MTM5NCwgMS4zMzk2OSwgMS43MzE1OSwgMi4zNTgxNCwgMi45MDYxLCAzLjY4ODM1IiwgXAotICAgICAgICAgICIwLjI1NjYwNiwgMC44MDU5NTEsIDEuMzU0NTgsIDEuNzQ1ODgsIDIuMzcxOTQsIDIuOTIwMDcsIDMuNzAyNjEiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yNTE3MzcsIDEuMjk4MzQsIDIuMzQ1NzksIDMuMDkxMjYsIDQuMjk4NzQsIDUuMzMzMjgsIDYuODMwNzIiLCBcCi0gICAgICAgICAgIjAuMjUxMjYxLCAxLjI5ODU0LCAyLjM0NTE2LCAzLjA5NDA3LCA0LjI5NDczLCA1LjMzMzE5LCA2LjgyNzQzIiwgXAotICAgICAgICAgICIwLjI1MTMxNiwgMS4yOTgyNCwgMi4zNDMzMSwgMy4wOTIwOSwgNC4yODQ5NiwgNS4zMzkwMiwgNi44MjI4MyIsIFwKLSAgICAgICAgICAiMC4yNTEzMjQsIDEuMjk4MjQsIDIuMzQzMzMsIDMuMDkzMjUsIDQuMjg0NTIsIDUuMzM5MDQsIDYuODI2NTkiLCBcCi0gICAgICAgICAgIjAuMjUxNzczLCAxLjI5ODU4LCAyLjM0MzE2LCAzLjA5NDI3LCA0LjI5ODQ5LCA1LjMzMzE5LCA2LjgyNzA4IiwgXAotICAgICAgICAgICIwLjI1MTU4NSwgMS4yOTk3MiwgMi4zNDUyMywgMy4wOTM1MiwgNC4yODU5NywgNS4zMzAyNiwgNi44MjI5IiwgXAotICAgICAgICAgICIwLjI1MjQ0NCwgMS4yOTgyOCwgMi4zNDU2NSwgMy4wOTE0NSwgNC4yODkxNCwgNS4zMzUyOSwgNi44MjY4MSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0ODM1OCwgMC4xOTk5NjMsIDAuMzQ2OTg1LCAwLjQ1MTQ4NiwgMC42MTgzMjksIDAuNzY0MzMyLCAwLjk3MjYzNiIsIFwKLSAgICAgICAgICAiMC4wNTk5NTIsIDAuMjExMjM3LCAwLjM1ODE4NywgMC40NjI3MTYsIDAuNjI5NTk4LCAwLjc3NTYwMywgMC45ODM3NTUiLCBcCi0gICAgICAgICAgIjAuMDc1MTczLCAwLjIyNjA4LCAwLjM3Mjk4LCAwLjQ3NzUxLCAwLjY0MTY5MSwgMC43ODc1OTYsIDAuOTk1ODM5IiwgXAotICAgICAgICAgICIwLjA5MDQzMSwgMC4yNDA4ODUsIDAuMzg2NDI1LCAwLjQ5MDkwOSwgMC42NTc4ODUsIDAuODAzODE2LCAxLjAxMjE2IiwgXAotICAgICAgICAgICIwLjEwNTc0NiwgMC4yNTU1ODcsIDAuNDAyMywgMC41MDY4MDEsIDAuNjczNjkzLCAwLjgxOTY0OCwgMS4wMjc4OCIsIFwKLSAgICAgICAgICAiMC4xMzAxOTcsIDAuMjgwMTQ1LCAwLjQyNTk4OCwgMC41MzE2MzIsIDAuNjk4NTE1LCAwLjg0NDQ4OSwgMS4wNTI3NyIsIFwKLSAgICAgICAgICAiMC4xNDk5LCAwLjMwMTE1MSwgMC40NDY4MTgsIDAuNTUxMDYsIDAuNzE3ODE2LCAwLjg2MzcyLCAxLjA3MTk5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDgzMDQ1LCAwLjM3Mzc4OCwgMC42NjMzODQsIDAuODcwMDYxLCAxLjIwMDY2LCAxLjQ5MDQxLCAxLjkwMzkzIiwgXAotICAgICAgICAgICIwLjA4MjEwNCwgMC4zNzM2ODgsIDAuNjYzMzIyLCAwLjg3MDExNSwgMS4yMDExNCwgMS40OTAzLCAxLjkwNDQzIiwgXAotICAgICAgICAgICIwLjA4Mzg4MiwgMC4zNzMzOTUsIDAuNjYzMjI2LCAwLjg3MDExNiwgMS4yMDA5OCwgMS40OTA5MywgMS45MDQ2MSIsIFwKLSAgICAgICAgICAiMC4wODgxMjYsIDAuMzczNDE0LCAwLjY2MzE3NSwgMC44Njk4ODksIDEuMjAwODQsIDEuNDkwNDIsIDEuOTAzOTgiLCBcCi0gICAgICAgICAgIjAuMDk0MTAxLCAwLjM3MzI4LCAwLjY2MzE2OSwgMC44Njk4NzYsIDEuMjAxMTgsIDEuNDkwMzMsIDEuOTAzMyIsIFwKLSAgICAgICAgICAiMC4xMDQ4MzEsIDAuMzc1MjIsIDAuNjYzMTE2LCAwLjg2OTc5MiwgMS4yMDA2OSwgMS40OTAzLCAxLjkwNDU0IiwgXAotICAgICAgICAgICIwLjExNjA4NywgMC4zNzg5MDMsIDAuNjYzMjIsIDAuODY5ODc2LCAxLjIwMTEyLCAxLjQ5MDMsIDEuOTAzODYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNjc2MywgMC43MTU4NjQsIDEuMjY0MjUsIDEuNjU1NzEsIDIuMjgxOTcsIDIuODI5NDEsIDMuNjExODgiLCBcCi0gICAgICAgICAgIjAuMTc3Nzg0LCAwLjcyNjQ0LCAxLjI3NDI2LCAxLjY2NjE3LCAyLjI5MzM2LCAyLjg0MDU5LCAzLjYyMjg2IiwgXAotICAgICAgICAgICIwLjE5MDI0OSwgMC43MzkxOTgsIDEuMjg3NjgsIDEuNjc5LCAyLjMwNjE5LCAyLjg1MzQ1LCAzLjYzNTY3IiwgXAotICAgICAgICAgICIwLjIwMTgwNCwgMC43NTExNTcsIDEuMjk5MDIsIDEuNjkxMjUsIDIuMzE3MDUsIDIuODY0OTIsIDMuNjQ3NDEiLCBcCi0gICAgICAgICAgIjAuMjEzMjg4LCAwLjc2MjUxLCAxLjMxMTEzLCAxLjcwMjYsIDIuMzI4OTUsIDIuODc2MzIsIDMuNjU4OTUiLCBcCi0gICAgICAgICAgIjAuMjMwNjk0LCAwLjc4MDAxNSwgMS4zMjgxNywgMS43MjA0MywgMi4zNDY0NSwgMi44OTQzLCAzLjY3NjciLCBcCi0gICAgICAgICAgIjAuMjQ1NDcxLCAwLjc5NDkyOCwgMS4zNDMzMywgMS43MzU0NywgMi4zNjEwNSwgMi45MDkyNCwgMy42OTE1NCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI1MTc1OSwgMS4yOTgyLCAyLjM0NTY5LCAzLjA5MzU2LCA0LjI5ODQ3LCA1LjMzODk1LCA2LjgzMDY5IiwgXAotICAgICAgICAgICIwLjI1MTI1MywgMS4yOTg5NywgMi4zNDY0OCwgMy4wOTMyNCwgNC4yOTk3MSwgNS4zMzk0NywgNi44MjM1IiwgXAotICAgICAgICAgICIwLjI1MTI1NCwgMS4yOTkwNywgMi4zNDMzNiwgMy4wOTMyMywgNC4yODUsIDUuMzM5MDIsIDYuODIzNDkiLCBcCi0gICAgICAgICAgIjAuMjUxNjQ1LCAxLjI5ODUzLCAyLjM0NTYzLCAzLjA5Mzk0LCA0LjI4NzI3LCA1LjMzMzMyLCA2LjgyNjc5IiwgXAotICAgICAgICAgICIwLjI1MTc1NCwgMS4yOTg0OCwgMi4zNDU3LCAzLjA5MzQ5LCA0LjI5ODQzLCA1LjMzNzk2LCA2LjgzMDY5IiwgXAotICAgICAgICAgICIwLjI1MjI0LCAxLjI5ODE5LCAyLjM0NTQ3LCAzLjA5Mzk0LCA0LjI5ODIxLCA1LjMzMTU5LCA2LjgyNTEyIiwgXAotICAgICAgICAgICIwLjI1NDMxMywgMS4yOTg0MSwgMi4zNDU0NSwgMy4wOTQxNywgNC4yODkyNiwgNS4zMzE0MywgNi44MjQyNCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0NjY0NSwgMC4xOTUyNjgsIDAuMzQxNiwgMC40NDU4NzEsIDAuNjEyNTA3LCAwLjc1ODQ3NSwgMC45NjY1NDIiLCBcCi0gICAgICAgICAgIjAuMDU4MzM1LCAwLjIwNjUwOSwgMC4zNTI4MTEsIDAuNDU3MTI3LCAwLjYyMzc4OSwgMC43Njk1MjksIDAuOTc3ODM4IiwgXAotICAgICAgICAgICIwLjA3MzI2MywgMC4yMjE5MjEsIDAuMzY4MTcyLCAwLjQ3MjQ2OSwgMC42MzkxMDEsIDAuNzg1MDE4LCAwLjk5MzEzOCIsIFwKLSAgICAgICAgICAiMC4wODg0NzQsIDAuMjM2ODAxLCAwLjM4MzExOCwgMC40ODcxMDksIDAuNjUzODg5LCAwLjc5OTY4NiwgMS4wMDgwMyIsIFwKLSAgICAgICAgICAiMC4xMDM3MjQsIDAuMjUxNjksIDAuMzk4MDAxLCAwLjUwMjI3MSwgMC42Njg5NzgsIDAuODE0OTEsIDEuMDIzMDIiLCBcCi0gICAgICAgICAgIjAuMTI3MDA0LCAwLjI3NTAyNywgMC40MjA5NDcsIDAuNTI0OTY5LCAwLjY5MTU0MywgMC44MzczNjIsIDEuMDQxMjEiLCBcCi0gICAgICAgICAgIjAuMTQ2MDg1LCAwLjI5NjQyOCwgMC40NDEzNzQsIDAuNTQ1NDI5LCAwLjcxMjA1OCwgMC44NTc4NzEsIDEuMDY1OTUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzcwMDcsIDAuMzY2NzIyLCAwLjY1NjQyNCwgMC44NjMzNDgsIDEuMTk0MDYsIDEuNDg0NCwgMS44OTY5OCIsIFwKLSAgICAgICAgICAiMC4wNzY0MTEsIDAuMzY2NzEzLCAwLjY1NjQxMiwgMC44NjM1NDYsIDEuMTk0MjMsIDEuNDgzODUsIDEuODk3OTgiLCBcCi0gICAgICAgICAgIjAuMDc4NDQ3LCAwLjM2NjYxMywgMC42NTYzODUsIDAuODYzMzE4LCAxLjE5NDA0LCAxLjQ4NDI2LCAxLjg5Nzk4IiwgXAotICAgICAgICAgICIwLjA4MjkwNSwgMC4zNjY2MjYsIDAuNjU2NTI3LCAwLjg2MzMyNywgMS4xOTQzMywgMS40ODQyNiwgMS44OTc3OCIsIFwKLSAgICAgICAgICAiMC4wODg4NzEsIDAuMzY2NjQzLCAwLjY1NjM2NywgMC44NjMxMDMsIDEuMTkzOTgsIDEuNDg0MjksIDEuODk3NTUiLCBcCi0gICAgICAgICAgIjAuMTAwNzIyLCAwLjM2ODg5NSwgMC42NTYyMDcsIDAuODYzNTI5LCAxLjE5NDQxLCAxLjQ4MzgsIDEuODk3NDMiLCBcCi0gICAgICAgICAgIjAuMTEyNTU4LCAwLjM3MjY2MSwgMC42NTY1NzcsIDAuODYzMzk1LCAxLjE5NDIxLCAxLjQ4NDI1LCAxLjg5NzQ1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTQ5MzM3LCAwLjY5Nzk2MiwgMS4yNDU2NywgMS42MzcwMywgMi4yNjM0NiwgMi44MTE1MSwgMy41OTM4MSIsIFwKLSAgICAgICAgICAiMC4xNTg5MDUsIDAuNzA3Nzc2LCAxLjI1NTU5LCAxLjY0Nzk0LCAyLjI3MzA2LCAyLjgyMTI2LCAzLjYwMzczIiwgXAotICAgICAgICAgICIwLjE3MDkzLCAwLjcxOTg1NCwgMS4yNjg3MSwgMS42NTk2MywgMi4yODY4NCwgMi44MzQxLCAzLjYxNjIyIiwgXAotICAgICAgICAgICIwLjE4MjMzNCwgMC43MzE4NTUsIDEuMjgwMTIsIDEuNjcxNzYsIDIuMjk4MzEsIDIuODQ1NzQsIDMuNjI3ODMiLCBcCi0gICAgICAgICAgIjAuMTkzNjI2LCAwLjc0MzAwOCwgMS4yOTEwNSwgMS42ODMyOSwgMi4zMDg4MiwgMi44NTY4NywgMy42MzkzNSIsIFwKLSAgICAgICAgICAiMC4yMTE4MjMsIDAuNzYxMTk4LCAxLjMwOTg0LCAxLjcwMTA2LCAyLjMyNzYzLCAyLjg3NTU1LCAzLjY1Nzc1IiwgXAotICAgICAgICAgICIwLjIyNzUzMSwgMC43NzcxNjUsIDEuMzI1NDEsIDEuNzE3NDQsIDIuMzQzNDksIDIuODkxNTIsIDMuNjczNjUiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yNTEyMDYsIDEuMjk4NzUsIDIuMzQ0ODgsIDMuMDg5MTcsIDQuMjk3ODYsIDUuMzMxMjMsIDYuODI0NzYiLCBcCi0gICAgICAgICAgIjAuMjUxNzM3LCAxLjI5ODU3LCAyLjM0NTE1LCAzLjA4OTQxLCA0LjI5MDI4LCA1LjMzMzM1LCA2LjgyNjkzIiwgXAotICAgICAgICAgICIwLjI1MTM2NCwgMS4yOTgxNywgMi4zNDI3LCAzLjA5MzIzLCA0LjI5OTcxLCA1LjMzOTQ4LCA2LjgyNDM0IiwgXAotICAgICAgICAgICIwLjI1MTYxNCwgMS4yOTY5OCwgMi4zNDU4NiwgMy4wODkzLCA0LjI5OTM2LCA1LjMzODk4LCA2LjgyNjE0IiwgXAotICAgICAgICAgICIwLjI1MTM0MywgMS4yOTg0OCwgMi4zNDUxNywgMy4wOTQwNiwgNC4yOTQ4MSwgNS4zMzMzNCwgNi44MjcyOSIsIFwKLSAgICAgICAgICAiMC4yNTM3NDQsIDEuMjk4MjcsIDIuMzQ1NjksIDMuMDkyNDgsIDQuMjk4MjMsIDUuMzM5MzIsIDYuODI2MzQiLCBcCi0gICAgICAgICAgIjAuMjU3MzExLCAxLjI5ODQ1LCAyLjM0Mzk2LCAzLjA5MzgyLCA0LjI4NzQyLCA1LjMyOTc3LCA2LjgyNjQ5Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQzLCAwLjE4OTczMiwgMC4zMzU2NjMsIDAuNDM5ODksIDAuNjA2NTAzLCAwLjc1MjI3OSwgMC45NjAzODQiLCBcCi0gICAgICAgICAgIjAuMDU0NzQ4LCAwLjIwMTYxMywgMC4zNDc1ODQsIDAuNDUxNzAyLCAwLjYxODI4LCAwLjc2NDEzOSwgMC45NzIxNTIiLCBcCi0gICAgICAgICAgIjAuMDY5Nzg4LCAwLjIxNjIxOSwgMC4zNjA4LCAwLjQ2NDk2OSwgMC42MzE4MTksIDAuNzc3NDg0LCAwLjk4NTY5NiIsIFwKLSAgICAgICAgICAiMC4wODQ4MTMsIDAuMjMxMTEsIDAuMzc2MDcxLCAwLjQ4MDIwNywgMC42NDY4NjEsIDAuNzkyNTEzLCAxLjAwMDc1IiwgXAotICAgICAgICAgICIwLjA5OTk0LCAwLjI0NjQ2OCwgMC4zOTI0NTQsIDAuNDk2NjU1LCAwLjY2MzM1LCAwLjgwOTE1NywgMS4wMTcxOSIsIFwKLSAgICAgICAgICAiMC4xMjI1MTksIDAuMjcwMjg3LCAwLjQxNTExMSwgMC41MTkxNzksIDAuNjg1Nzc4LCAwLjgzMTQzNywgMS4wNDEwNiIsIFwKLSAgICAgICAgICAiMC4xNDA1NDEsIDAuMjkxMzE4LCAwLjQzNTg5OSwgMC41Mzk3NjcsIDAuNzA2MzAxLCAwLjg1MjAzMSwgMS4wNjAxMiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3MDQ4MiwgMC4zNjAyNDMsIDAuNjUwMTM3LCAwLjg1NzI1LCAxLjE4ODQzLCAxLjQ3ODIyLCAxLjg5MiIsIFwKLSAgICAgICAgICAiMC4wNzA0LCAwLjM2MDMzLCAwLjY1MDEzMywgMC44NTcxMDgsIDEuMTg4MDIsIDEuNDc3NzgsIDEuODkxNDMiLCBcCi0gICAgICAgICAgIjAuMDcyODgyLCAwLjM2MDMzOSwgMC42NTAxODcsIDAuODU2ODU1LCAxLjE4ODI0LCAxLjQ3ODA5LCAxLjg5MTkzIiwgXAotICAgICAgICAgICIwLjA3Nzk4LCAwLjM2MDMzNywgMC42NTAzMjIsIDAuODU3Mjg0LCAxLjE4ODQzLCAxLjQ3NzcxLCAxLjg5MTU3IiwgXAotICAgICAgICAgICIwLjA4NDUyOSwgMC4zNjA0NzQsIDAuNjUwMTEyLCAwLjg1NzA5MiwgMS4xODgxOSwgMS40NzgyMiwgMS44OTE0NCIsIFwKLSAgICAgICAgICAiMC4wOTcxNzksIDAuMzYyNzgsIDAuNjUwMzAzLCAwLjg1NzI1MSwgMS4xODgxOSwgMS40Nzc3MiwgMS44OTE1MyIsIFwKLSAgICAgICAgICAiMC4xMDk3NjUsIDAuMzY2ODk0LCAwLjY1MDQxLCAwLjg1NzAxMiwgMS4xODgwNCwgMS40Nzc3OCwgMS44OTE0NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJEIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExNzk5MiwgMC42NjY1MDIsIDEuMjE0NCwgMS42MDU3OCwgMi4yMzI5NywgMi43ODAzNywgMy41NjI0NyIsIFwKLSAgICAgICAgICAiMC4xMjY2NDMsIDAuNjc1NTEsIDEuMjIzNzUsIDEuNjE1MjksIDIuMjQyNDUsIDIuNzg5ODksIDMuNTcxOTUiLCBcCi0gICAgICAgICAgIjAuMTM4MjE0LCAwLjY4NzkyNiwgMS4yMzYzOCwgMS42MjczNywgMi4yNTM1NSwgMi44MDE2LCAzLjU4NDEzIiwgXAotICAgICAgICAgICIwLjE0OTEyNSwgMC42OTksIDEuMjQ3MTMsIDEuNjM4OTgsIDIuMjY2MDIsIDIuODEzMzMsIDMuNTk1NDYiLCBcCi0gICAgICAgICAgIjAuMTYwNjI5LCAwLjcxMDM4OSwgMS4yNTg3NywgMS42NTAxNywgMi4yNzY0OSwgMi44MjQ1NSwgMy42MDcxMyIsIFwKLSAgICAgICAgICAiMC4xNzk3MzIsIDAuNzI4ODg2LCAxLjI3NzE5LCAxLjY2OTQ5LCAyLjI5NjE0LCAyLjg0MzY0LCAzLjYyNTc0IiwgXAotICAgICAgICAgICIwLjE5NjMzOSwgMC43NDQ5NywgMS4yOTM5MywgMS42ODUwNSwgMi4zMTIxOCwgMi44NTkzNSwgMy42NDE5MyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI0OTU3NiwgMS4yOTg0MiwgMi4zNDUwNywgMy4wOTExOCwgNC4yOTkzNywgNS4zMzk0NCwgNi44MzA3NiIsIFwKLSAgICAgICAgICAiMC4yNDgyODcsIDEuMjk3MTcsIDIuMzQ1NDIsIDMuMDkxMDYsIDQuMjk5MzksIDUuMzM5NDgsIDYuODMwNzciLCBcCi0gICAgICAgICAgIjAuMjQ2MzcxLCAxLjI5ODUzLCAyLjM0NTgyLCAzLjA5Mjg1LCA0LjI5NDU5LCA1LjMzNTY0LCA2LjgyNjg1IiwgXAotICAgICAgICAgICIwLjI0NzQ4MSwgMS4yOTg0NSwgMi4zNDUxOSwgMy4wOTM1MSwgNC4yODQ3MSwgNS4zMzkyNywgNi44MzA3OSIsIFwKLSAgICAgICAgICAiMC4yNTA0NDIsIDEuMjk4MDMsIDIuMzQ1MjIsIDMuMDk0MzcsIDQuMjk0NiwgNS4zMzU0MiwgNi44MzA3OCIsIFwKLSAgICAgICAgICAiMC4yNTczOTgsIDEuMjk4MjksIDIuMzQ1MTMsIDMuMDk0MDMsIDQuMjg1NTgsIDUuMzI5NzEsIDYuODMwNzgiLCBcCi0gICAgICAgICAgIjAuMjY1NTg4LCAxLjI5ODA3LCAyLjM0NTgyLCAzLjA5MywgNC4yOTkxMSwgNS4zMzc0LCA2LjgyNjUxIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM3MjgsIDAuMTgzMDcsIDAuMzI4ODAyLCAwLjQzMjk0OSwgMC41OTk1MzYsIDAuNzQ1MzYsIDAuOTUzNDk5IiwgXAotICAgICAgICAgICIwLjA0OTA4MywgMC4xOTUxMDIsIDAuMzQwODcsIDAuNDQ0OTQ5LCAwLjYxMTcxOCwgMC43NTc0OTQsIDAuOTY1MzQ5IiwgXAotICAgICAgICAgICIwLjA2NDExNiwgMC4yMDk3NzgsIDAuMzU1NTc1LCAwLjQ1OTc4MiwgMC42MjQxNSwgMC43Njk4OTQsIDAuOTc4MDQ2IiwgXAotICAgICAgICAgICIwLjA3OTE3MSwgMC4yMjQ1NywgMC4zNzAyOSwgMC40NzQ1OSwgMC42NDEwNjQsIDAuNzg2Nzg5LCAwLjk5NTAzNyIsIFwKLSAgICAgICAgICAiMC4wOTM4OTQsIDAuMjM5NDQxLCAwLjM4NTAxNiwgMC40ODkyODMsIDAuNjU1ODgxLCAwLjgwMTQsIDEuMDA5NiIsIFwKLSAgICAgICAgICAiMC4xMTUyLCAwLjI2MzkxOSwgMC40MDg2NjQsIDAuNTEyNiwgMC42NzkzNDMsIDAuODI0OTQ2LCAxLjAzMzA2IiwgXAotICAgICAgICAgICIwLjEzMTc3NCwgMC4yODQ5OTUsIDAuNDI5NTQsIDAuNTMzMzk0LCAwLjY5OTc5NiwgMC44NDU2MTksIDEuMDU1MTEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjM3OSwgMC4zNTQ4NzcsIDAuNjQ1OTgxLCAwLjg1MDk1NiwgMS4xODIxNywgMS40NzQxOCwgMS44ODY0NiIsIFwKLSAgICAgICAgICAiMC4wNjM4NTQsIDAuMzU0MTQyLCAwLjY0NDQzLCAwLjg1MTgxNSwgMS4xODM5NiwgMS40NzQ1LCAxLjg5MzU0IiwgXAotICAgICAgICAgICIwLjA2NzM3MywgMC4zNTQ4NzUsIDAuNjQzODksIDAuODUyMDc1LCAxLjE4MjcxLCAxLjQ3MiwgMS44ODY5NSIsIFwKLSAgICAgICAgICAiMC4wNzMxOTcsIDAuMzU0ODkxLCAwLjY0NTYxLCAwLjg1MTYwNiwgMS4xODI2NCwgMS40NzIyNywgMS44OTMyNyIsIFwKLSAgICAgICAgICAiMC4wODA1MjQsIDAuMzU1MTQ1LCAwLjY0NDUzMywgMC44NTI0OTEsIDEuMTgyNDgsIDEuNDcyMDksIDEuODg2NDEiLCBcCi0gICAgICAgICAgIjAuMDk0MzI0LCAwLjM1NzgxMSwgMC42NDU1MzQsIDAuODUxMjI0LCAxLjE4MzA4LCAxLjQ3MywgMS44OTM0IiwgXAotICAgICAgICAgICIwLjEwODEyNCwgMC4zNjIxODEsIDAuNjQ0MDA2LCAwLjg1MDY0NiwgMS4xODIyLCAxLjQ3NDk3LCAxLjg4OTM1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTE3MjQsIDAuMDExNzM0LCAwLjAxMTczNSwgMC4wMTE3MzQsIDAuMDExNzM1LCAwLjAxMTczNSwgMC4wMTE3MzUiLCBcCi0gICAgICAgICAgIjAuMDExNjg1LCAwLjAxMTcyNiwgMC4wMTE3MywgMC4wMTE3MzIsIDAuMDExNzM0LCAwLjAxMTczNCwgMC4wMTE3MzQiLCBcCi0gICAgICAgICAgIjAuMDExNjUyLCAwLjAxMTcxNSwgMC4wMTE3MjQsIDAuMDExNzI3LCAwLjAxMTcyOCwgMC4wMTE3MywgMC4wMTE3MzEiLCBcCi0gICAgICAgICAgIjAuMDExNjI5LCAwLjAxMTY5NiwgMC4wMTE3MTUsIDAuMDExNzIsIDAuMDExNzI4LCAwLjAxMTcyNCwgMC4wMTE3MjgiLCBcCi0gICAgICAgICAgIjAuMDExNjE0LCAwLjAxMTY5OSwgMC4wMTE3MTUsIDAuMDExNzIsIDAuMDExNzI2LCAwLjAxMTcyOCwgMC4wMTE3MjciLCBcCi0gICAgICAgICAgIjAuMDExNTk1LCAwLjAxMTY4NCwgMC4wMTE3MDcsIDAuMDExNzE0LCAwLjAxMTcyMSwgMC4wMTE3MiwgMC4wMTE3MjUiLCBcCi0gICAgICAgICAgIjAuMDExNTg2LCAwLjAxMTY3NSwgMC4wMTE3LCAwLjAxMTcwNywgMC4wMTE3MTYsIDAuMDExNzIsIDAuMDExNzIzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQxOTYsIDAuMDA0MTk1LCAwLjAwNDE5MSwgMC4wMDQxOTIsIDAuMDA0MTkyLCAwLjAwNDE4OCwgMC4wMDQxODciLCBcCi0gICAgICAgICAgIjAuMDA0MDk4LCAwLjAwNDEwNSwgMC4wMDQxMDQsIDAuMDA0MTA0LCAwLjAwNDEwMiwgMC4wMDQxMDEsIDAuMDA0MTAxIiwgXAotICAgICAgICAgICIwLjAwNDA2NCwgMC4wMDQwNzIsIDAuMDA0MDY5LCAwLjAwNDA3MiwgMC4wMDQwNTksIDAuMDA0MDU5LCAwLjAwNDA2IiwgXAotICAgICAgICAgICIwLjAwNDAzNywgMC4wMDQwNTMsIDAuMDA0MDUsIDAuMDA0MDUsIDAuMDA0MDUxLCAwLjAwNDA0OSwgMC4wMDQwNDgiLCBcCi0gICAgICAgICAgIjAuMDA0MDI0LCAwLjAwNDA0MywgMC4wMDQwNDcsIDAuMDA0MDQ1LCAwLjAwNDA0NywgMC4wMDQwNDIsIDAuMDA0MDQyIiwgXAotICAgICAgICAgICIwLjAwNDAwNCwgMC4wMDQwMzEsIDAuMDA0MDM1LCAwLjAwNDA0LCAwLjAwNDA0MSwgMC4wMDQwNCwgMC4wMDQwMzkiLCBcCi0gICAgICAgICAgIjAuMDAzOTk1LCAwLjAwNDAyNiwgMC4wMDQwMzIsIDAuMDA0MDMzLCAwLjAwNDAzMSwgMC4wMDQwMjksIDAuMDA0MDI4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDk5NDIsIDAuMDA5OTUsIDAuMDA5OTUzLCAwLjAwOTk1MiwgMC4wMDk5NTMsIDAuMDA5OTUzLCAwLjAwOTk1NSIsIFwKLSAgICAgICAgICAiMC4wMDk5MDIsIDAuMDA5OTQyLCAwLjAwOTk0NywgMC4wMDk5NTEsIDAuMDA5OTUsIDAuMDA5OTU1LCAwLjAwOTk1IiwgXAotICAgICAgICAgICIwLjAwOTg2OSwgMC4wMDk5MzIsIDAuMDA5OTQxLCAwLjAwOTk0MSwgMC4wMDk5NDcsIDAuMDA5OTUxLCAwLjAwOTk1IiwgXAotICAgICAgICAgICIwLjAwOTg0NiwgMC4wMDk5MjIsIDAuMDA5OTM3LCAwLjAwOTk0MSwgMC4wMDk5NDQsIDAuMDA5OTQ2LCAwLjAwOTk0NyIsIFwKLSAgICAgICAgICAiMC4wMDk4MzEsIDAuMDA5OTE0LCAwLjAwOTkyOSwgMC4wMDk5MzYsIDAuMDA5OTQxLCAwLjAwOTk0MiwgMC4wMDk5NDUiLCBcCi0gICAgICAgICAgIjAuMDA5ODEzLCAwLjAwOTkwMSwgMC4wMDk5MjEsIDAuMDA5OTI5LCAwLjAwOTkzNSwgMC4wMDk5MzgsIDAuMDA5OTQxIiwgXAotICAgICAgICAgICIwLjAwOTgwMywgMC4wMDk4OTIsIDAuMDA5OTE2LCAwLjAwOTkyNCwgMC4wMDk5MzUsIDAuMDA5OTM2LCAwLjAwOTkzOSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyOTkxLCAwLjAwMjk5MiwgMC4wMDI5OTEsIDAuMDAyOTkxLCAwLjAwMjk4OSwgMC4wMDI5OSwgMC4wMDI5ODciLCBcCi0gICAgICAgICAgIjAuMDAyOTQ5LCAwLjAwMjk1NywgMC4wMDI5NTcsIDAuMDAyOTU2LCAwLjAwMjk1NywgMC4wMDI5NTYsIDAuMDAyOTU0IiwgXAotICAgICAgICAgICIwLjAwMjkxLCAwLjAwMjkzOCwgMC4wMDI5MzksIDAuMDAyOTM5LCAwLjAwMjk0MSwgMC4wMDI5NDMsIDAuMDAyOTQiLCBcCi0gICAgICAgICAgIjAuMDAyODc4LCAwLjAwMjkyMywgMC4wMDI5MjgsIDAuMDAyOTI5LCAwLjAwMjkzLCAwLjAwMjkzLCAwLjAwMjkzIiwgXAotICAgICAgICAgICIwLjAwMjg1NiwgMC4wMDI5MTMsIDAuMDAyOTIxLCAwLjAwMjkyMywgMC4wMDI5MjUsIDAuMDAyOTI2LCAwLjAwMjkyNSIsIFwKLSAgICAgICAgICAiMC4wMDI4MzEsIDAuMDAyODk3LCAwLjAwMjkxLCAwLjAwMjkxNCwgMC4wMDI5MTYsIDAuMDAyOTE4LCAwLjAwMjkxNSIsIFwKLSAgICAgICAgICAiMC4wMDI4MTUsIDAuMDAyODk0LCAwLjAwMjkwOCwgMC4wMDI5MTIsIDAuMDAyOTE1LCAwLjAwMjkxNiwgMC4wMDI5MTgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwODQ1MywgMC4wMDg0NjIsIDAuMDA4NDYzLCAwLjAwODQ2MiwgMC4wMDg0NjMsIDAuMDA4NDYzLCAwLjAwODQ2NCIsIFwKLSAgICAgICAgICAiMC4wMDg0MTIsIDAuMDA4NDUzLCAwLjAwODQ1MiwgMC4wMDg0NTYsIDAuMDA4NDYzLCAwLjAwODQ2LCAwLjAwODQ2NSIsIFwKLSAgICAgICAgICAiMC4wMDgzNzgsIDAuMDA4NDQsIDAuMDA4NDUsIDAuMDA4NDU0LCAwLjAwODQ1NSwgMC4wMDg0NTcsIDAuMDA4NDYiLCBcCi0gICAgICAgICAgIjAuMDA4MzU3LCAwLjAwODQzMywgMC4wMDg0NDUsIDAuMDA4NDQ3LCAwLjAwODQ1MywgMC4wMDg0NTYsIDAuMDA4NDU2IiwgXAotICAgICAgICAgICIwLjAwODM0LCAwLjAwODQyNCwgMC4wMDg0NCwgMC4wMDg0NDcsIDAuMDA4NDQ5LCAwLjAwODQ1MywgMC4wMDg0NTgiLCBcCi0gICAgICAgICAgIjAuMDA4MzIzLCAwLjAwODQxMiwgMC4wMDg0MzIsIDAuMDA4NDM5LCAwLjAwODQ0NSwgMC4wMDg0NDcsIDAuMDA4NDQ5IiwgXAotICAgICAgICAgICIwLjAwODMxMywgMC4wMDg0MDIsIDAuMDA4NDI2LCAwLjAwODQzNCwgMC4wMDg0NCwgMC4wMDg0NDYsIDAuMDA4NDQ5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDE2ODQsIDAuMDAxNjg4LCAwLjAwMTY4NywgMC4wMDE2ODcsIDAuMDAxNjg3LCAwLjAwMTY4NiwgMC4wMDE2ODYiLCBcCi0gICAgICAgICAgIjAuMDAxNjc5LCAwLjAwMTcxMSwgMC4wMDE3MTQsIDAuMDAxNzE1LCAwLjAwMTcxNiwgMC4wMDE3MTYsIDAuMDAxNzE1IiwgXAotICAgICAgICAgICIwLjAwMTY1LCAwLjAwMTcxNiwgMC4wMDE3MjYsIDAuMDAxNzI4LCAwLjAwMTczMSwgMC4wMDE3MzEsIDAuMDAxNzMyIiwgXAotICAgICAgICAgICIwLjAwMTYxMywgMC4wMDE3MDksIDAuMDAxNzI0LCAwLjAwMTcyOSwgMC4wMDE3MzIsIDAuMDAxNzM0LCAwLjAwMTczNSIsIFwKLSAgICAgICAgICAiMC4wMDE1OTMsIDAuMDAxNzAzLCAwLjAwMTcyLCAwLjAwMTcyNSwgMC4wMDE3MywgMC4wMDE3MzMsIDAuMDAxNzM1IiwgXAotICAgICAgICAgICIwLjAwMTU2LCAwLjAwMTY5NCwgMC4wMDE3MTcsIDAuMDAxNzIzLCAwLjAwMTczLCAwLjAwMTczMiwgMC4wMDE3MzMiLCBcCi0gICAgICAgICAgIjAuMDAxNTM5LCAwLjAwMTY4NCwgMC4wMDE3MTEsIDAuMDAxNzIsIDAuMDAxNzI3LCAwLjAwMTczMSwgMC4wMDE3MzQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJEIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjc4MywgMC4wMDY3OTcsIDAuMDA2ODAxLCAwLjAwNjgsIDAuMDA2OCwgMC4wMDY4MDEsIDAuMDA2ODAxIiwgXAotICAgICAgICAgICIwLjAwNjcxNywgMC4wMDY3ODMsIDAuMDA2NzkxLCAwLjAwNjc5MywgMC4wMDY3OTYsIDAuMDA2Nzk4LCAwLjAwNjgiLCBcCi0gICAgICAgICAgIjAuMDA2NjY3LCAwLjAwNjc2NiwgMC4wMDY3OCwgMC4wMDY3ODMsIDAuMDA2Nzg3LCAwLjAwNjc5MiwgMC4wMDY3OTMiLCBcCi0gICAgICAgICAgIjAuMDA2NjMzLCAwLjAwNjc1MSwgMC4wMDY3NzIsIDAuMDA2Nzc4LCAwLjAwNjc4MywgMC4wMDY3ODYsIDAuMDA2NzkxIiwgXAotICAgICAgICAgICIwLjAwNjYxMiwgMC4wMDY3MzcsIDAuMDA2NzYyLCAwLjAwNjc3LCAwLjAwNjc3NywgMC4wMDY3ODQsIDAuMDA2Nzg1IiwgXAotICAgICAgICAgICIwLjAwNjU5NCwgMC4wMDY3MTcsIDAuMDA2NzUsIDAuMDA2NzYsIDAuMDA2NzY4LCAwLjAwNjc3NiwgMC4wMDY3NzMiLCBcCi0gICAgICAgICAgIjAuMDA2NTg4LCAwLjAwNjcwNCwgMC4wMDY3NCwgMC4wMDY3NTIsIDAuMDA2NzY0LCAwLjAwNjc3MSwgMC4wMDY3NzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDI4MywgMC4wMDAzMDYsIDAuMDAwMzA4LCAwLjAwMDMwOSwgMC4wMDAzMDksIDAuMDAwMzEsIDAuMDAwMzA5IiwgXAotICAgICAgICAgICIwLjAwMDI4MywgMC4wMDAzNzUsIDAuMDAwMzg2LCAwLjAwMDM4OSwgMC4wMDAzOTIsIDAuMDAwMzk0LCAwLjAwMDM5NSIsIFwKLSAgICAgICAgICAiMC4wMDAyNDcsIDAuMDAwMzksIDAuMDAwNDA5LCAwLjAwMDQxNSwgMC4wMDA0MjUsIDAuMDAwNDI4LCAwLjAwMDQzIiwgXAotICAgICAgICAgICIwLjAwMDIwNSwgMC4wMDAzODYsIDAuMDAwNDEyLCAwLjAwMDQxOSwgMC4wMDA0MjcsIDAuMDAwNDMxLCAwLjAwMDQzNCIsIFwKLSAgICAgICAgICAiMC4wMDAxNzgsIDAuMDAwMzgxLCAwLjAwMDQxMiwgMC4wMDA0MjIsIDAuMDAwNDMxLCAwLjAwMDQzNSwgMC4wMDA0MzkiLCBcCi0gICAgICAgICAgIjAuMDAwMTQxLCAwLjAwMDM2NiwgMC4wMDA0MDYsIDAuMDAwNDE4LCAwLjAwMDQzLCAwLjAwMDQzNiwgMC4wMDA0NDIiLCBcCi0gICAgICAgICAgIjAuMDAwMTE5LCAwLjAwMDM1NCwgMC4wMDAzOTksIDAuMDAwNDE0LCAwLjAwMDQyNywgMC4wMDA0MzUsIDAuMDAwNDM4Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBPQTIyWEwgKgotICogLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChPQTIyWEwpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4wNjg0NTc5OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNTY3NDU2OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDU2NjI1MjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA1Njc0NTY7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMTY1LCAwLjAwMDE2NSwgMC4wMDAxNjUsIDAuMDAwMTY1LCAwLjAwMDE2NSwgMC4wMDAxNjUsIDAuMDAwMTY1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMTY2LCAwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY2Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihBMSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjA5MzY5OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYwOTM2OTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2MDc1Mjc7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMTY1LCAwLjAwMDE2NSwgMC4wMDAxNjUsIDAuMDAwMTY1LCAwLjAwMDE2NSwgMC4wMDAxNjUsIDAuMDAwMTY1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMTY2LCAwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY2Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjE2MTAxOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYxMjYyOTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2MTYxMDE7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNDA2LCAwLjAwMDQwNiwgMC4wMDA0MDYsIDAuMDAwNDA2LCAwLjAwMDQwNiwgMC4wMDA0MDYsIDAuMDAwNDA2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMTg4LCAwLjAwMDE4OCwgMC4wMDAxODgsIDAuMDAwMTg4LCAwLjAwMDE4OCwgMC4wMDAxODgsIDAuMDAwMTg4Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCMSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjA3NjI3OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYwNzUwODsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2MDc2Mjc7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNDA2LCAwLjAwMDQwNiwgMC4wMDA0MDYsIDAuMDAwNDA2LCAwLjAwMDQwNiwgMC4wMDA0MDYsIDAuMDAwNDA1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMTg4LCAwLjAwMDE4OCwgMC4wMDAxODgsIDAuMDAwMTg4LCAwLjAwMDE4OCwgMC4wMDAxODgsIDAuMDAwMTg4Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMDY4NDM0NzsKLSAgICBmdW5jdGlvbiA6ICIoKEEwK0ExKSAoQjArQjEpKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTAiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI3MTIsIDAuMjk2Njc0LCAwLjUyNDg4MiwgMC45MDQxNDQsIDEuMjgzMTUsIDIuMTY3MTQsIDIuNjcyMTYiLCBcCi0gICAgICAgICAgIjAuMjgzMDI2LCAwLjMwODUwMSwgMC41MzY3MiwgMC45MTU5NjksIDEuMjk0OTgsIDIuMTc4OTYsIDIuNjgzOTkiLCBcCi0gICAgICAgICAgIjAuMjk4MjgzLCAwLjMyMzczMiwgMC41NTE5NzMsIDAuOTMxMjA4LCAxLjMxMDIxLCAyLjE5NDE3LCAyLjY5OTIyIiwgXAotICAgICAgICAgICIwLjMxMjk4OCwgMC4zMzg0NzgsIDAuNTY2NjU0LCAwLjk0NTk0NSwgMS4zMjQ5NywgMi4yMDg5LCAyLjcxMzk1IiwgXAotICAgICAgICAgICIwLjMyNzI5MSwgMC4zNTI3ODMsIDAuNTgwOTk4LCAwLjk2MDMzNSwgMS4zMzkyOCwgMi4yMjMyNCwgMi43MjgzNCIsIFwKLSAgICAgICAgICAiMC4zNDk3MzcsIDAuMzc1MjE5LCAwLjYwMzQ1MSwgMC45ODI3MDUsIDEuMzYxNzIsIDIuMjQ1NjksIDIuNzUwODEiLCBcCi0gICAgICAgICAgIjAuMzY5MTYzLCAwLjM5NDY0NCwgMC42MjI4MTcsIDEuMDAyMTIsIDEuMzgxMTQsIDIuMjY1MTksIDIuNzcwMTMiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjc4NjQxLCAwLjMyOTAzNSwgMC43ODgwMzksIDEuNTU0MywgMi4zMjU0MiwgNC4xMjE5OCwgNS4xMzk3MiIsIFwKLSAgICAgICAgICAiMC4yNzg1OTksIDAuMzI4OTQ2LCAwLjc4ODExNCwgMS41NTU0NCwgMi4zMjI3NywgNC4xMjExLCA1LjE0MTgxIiwgXAotICAgICAgICAgICIwLjI3ODM3OCwgMC4zMjkwMzQsIDAuNzg4MTYyLCAxLjU1NDU1LCAyLjMyMjg5LCA0LjEyMTA2LCA1LjE0IiwgXAotICAgICAgICAgICIwLjI3ODYxNCwgMC4zMjkwMTIsIDAuNzg3ODUyLCAxLjU1NDM3LCAyLjMyNjM0LCA0LjExOTgzLCA1LjEzOTc4IiwgXAotICAgICAgICAgICIwLjI3ODYxMywgMC4zMjg5NTQsIDAuNzg4MDgzLCAxLjU1Njg2LCAyLjMyMzE2LCA0LjExNTUsIDUuMTQwNDciLCBcCi0gICAgICAgICAgIjAuMjc4NjEsIDAuMzI4NDc2LCAwLjc4ODEwNCwgMS41NTY3NywgMi4zMjI4MywgNC4xMTUzOSwgNS4xNDE2NiIsIFwKLSAgICAgICAgICAiMC4yNzg1NjEsIDAuMzI4OTUyLCAwLjc4Njg4NCwgMS41NTY0NiwgMi4zMjI2MywgNC4xMjIwNCwgNS4xMzg0NCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yODQ2NzMsIDAuMzE0NzQyLCAwLjU4MzQ3OCwgMS4wMjk4OCwgMS40NzYsIDIuNTE1ODMsIDMuMTA5OTMiLCBcCi0gICAgICAgICAgIjAuMjk2MTIsIDAuMzI2MTg4LCAwLjU5NDkyNCwgMS4wNDEzMywgMS40ODczMSwgMi41Mjc0NCwgMy4xMjE0MyIsIFwKLSAgICAgICAgICAiMC4zMDkxMTgsIDAuMzM5MTYzLCAwLjYwNzkyNiwgMS4wNTQzMywgMS41MDAzOSwgMi41NDAzLCAzLjEzNDM4IiwgXAotICAgICAgICAgICIwLjMyMTY2OSwgMC4zNTE3MjEsIDAuNjIwNDY4LCAxLjA2NjkxLCAxLjUxMjg0LCAyLjU1Mjg1LCAzLjE0NyIsIFwKLSAgICAgICAgICAiMC4zMzQwMTYsIDAuMzY0MDYxLCAwLjYzMjg4MiwgMS4wNzkyNiwgMS41MjUyLCAyLjU2NTIxLCAzLjE1OTQ2IiwgXAotICAgICAgICAgICIwLjM1MzQ4MiwgMC4zODM1MzEsIDAuNjUyMzEyLCAxLjA5ODczLCAxLjU0NDY4LCAyLjU4NDkxLCAzLjE3ODgiLCBcCi0gICAgICAgICAgIjAuMzcwMzQsIDAuNDAwNDA5LCAwLjY2OTE3NCwgMS4xMTU1OCwgMS41NjE2NCwgMi42MDE1NSwgMy4xOTU3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMyMjE0NiwgMC4zNzk1NzEsIDAuOTA1ODI3LCAxLjc4Nzk0LCAyLjY2OTY2LCA0LjcyNjkxLCA1Ljg5NjQ4IiwgXAotICAgICAgICAgICIwLjMyMjE0NCwgMC4zNzk1NzEsIDAuOTA1Nzc2LCAxLjc4ODAxLCAyLjY3MjA4LCA0LjcyNjAyLCA1Ljg5NjA4IiwgXAotICAgICAgICAgICIwLjMyMjEzNywgMC4zNzk1ODgsIDAuOTA1NzUxLCAxLjc4Nzk0LCAyLjY3MDU0LCA0LjcyNjcxLCA1Ljg5NjQ0IiwgXAotICAgICAgICAgICIwLjMyMjA3NSwgMC4zODAwNDMsIDAuOTA2MDY2LCAxLjc4NzYzLCAyLjY3MjMsIDQuNzI2NywgNS44OTY0NSIsIFwKLSAgICAgICAgICAiMC4zMjIxMiwgMC4zNzk2MDYsIDAuOTA1ODA0LCAxLjc4NzY2LCAyLjY3MDUsIDQuNzI2NCwgNS44OTYwOCIsIFwKLSAgICAgICAgICAiMC4zMjIxMDgsIDAuMzgwMDAxLCAwLjkwNTQwNywgMS43ODg0OCwgMi42NjkwNCwgNC43MjU3LCA1Ljg5NjA5IiwgXAotICAgICAgICAgICIwLjMyMjA2MiwgMC4zNzk0NjgsIDAuOTA1NzE4LCAxLjc4Nzk2LCAyLjY3MjA5LCA0LjcyNjc3LCA1Ljg5NTgyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkExIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yNTgyMTIsIDAuMjgzNjAxLCAwLjUxMTMzNCwgMC44OTAzNCwgMS4yNjkxOCwgMi4xNTMwNCwgMi42NTc4NiIsIFwKLSAgICAgICAgICAiMC4yNzAyNzQsIDAuMjk1NjQzLCAwLjUyMzQ1MywgMC45MDIzOTIsIDEuMjgxMjIsIDIuMTY0OTUsIDIuNjY5OTIiLCBcCi0gICAgICAgICAgIjAuMjg1MjY1LCAwLjMxMDY2MSwgMC41Mzg0MjIsIDAuOTE3NDU1LCAxLjI5NjI0LCAyLjE4MDA0LCAyLjY4NDkiLCBcCi0gICAgICAgICAgIjAuMjk5ODc5LCAwLjMyNTI0OCwgMC41NTMwNjMsIDAuOTMxOTk5LCAxLjMxMDgyLCAyLjE5NDU1LCAyLjY5OTUyIiwgXAotICAgICAgICAgICIwLjMxNDE0MiwgMC4zMzk1MzQsIDAuNTY3MjgzLCAwLjk0NjI2OSwgMS4zMjUxMSwgMi4yMDg5NywgMi43MTM3OSIsIFwKLSAgICAgICAgICAiMC4zMzY0NTksIDAuMzYxODU3LCAwLjU4OTYwNCwgMC45Njg2MDEsIDEuMzQ3NDQsIDIuMjMxMzksIDIuNzM2MTEiLCBcCi0gICAgICAgICAgIjAuMzU1NzY5LCAwLjM4MTE5MSwgMC42MDg5ODgsIDAuOTg3OTM3LCAxLjM2Njc5LCAyLjI1MDUzLCAyLjc1NTU1Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI3NzQ3OSwgMC4zMjc4ODcsIDAuNzg2NjcsIDEuNTU1MzIsIDIuMzIxNzEsIDQuMTEzMjIsIDUuMTM4MjgiLCBcCi0gICAgICAgICAgIjAuMjc3NDI0LCAwLjMyNzkwMywgMC43ODcwNTgsIDEuNTUzNTEsIDIuMzI1MzEsIDQuMTE4MTQsIDUuMTQwMDkiLCBcCi0gICAgICAgICAgIjAuMjc3NDY4LCAwLjMyNzg2NSwgMC43ODU1ODksIDEuNTU1MywgMi4zMjE2NSwgNC4xMjExNCwgNS4xNDA1OSIsIFwKLSAgICAgICAgICAiMC4yNzc0NDMsIDAuMzI3ODk2LCAwLjc4NzA0MywgMS41NTM1MiwgMi4zMjQwMywgNC4xMTQyMiwgNS4xMzg0NSIsIFwKLSAgICAgICAgICAiMC4yNzc0MjcsIDAuMzI3ODI2LCAwLjc4NTQyNiwgMS41NTUzNCwgMi4zMjE2NiwgNC4xMjEyNSwgNS4xMzk0MyIsIFwKLSAgICAgICAgICAiMC4yNzc0NDUsIDAuMzI3ODUyLCAwLjc4NjQ0OSwgMS41NTUzMSwgMi4zMjE3LCA0LjEyMTAxLCA1LjE0MDg3IiwgXAotICAgICAgICAgICIwLjI3NzQxMiwgMC4zMjc3OSwgMC43ODY5OTksIDEuNTUzNDEsIDIuMzIzODcsIDQuMTIsIDUuMTQwNzYiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjc3NjA0LCAwLjMwNzY0OSwgMC41NzYzOCwgMS4wMjI4MywgMS40Njg3NywgMi41MDg4NCwgMy4xMDI4OSIsIFwKLSAgICAgICAgICAiMC4yODc2MzIsIDAuMzE3Njk5LCAwLjU4NjQ0MywgMS4wMzI4NCwgMS40Nzg4MywgMi41MTg3NiwgMy4xMTI5NSIsIFwKLSAgICAgICAgICAiMC4zMDA0NjIsIDAuMzMwNTI4LCAwLjU5OTI3MywgMS4wNDU2OCwgMS40OTE2MSwgMi41MzE2LCAzLjEyNTc5IiwgXAotICAgICAgICAgICIwLjMxMzg3MiwgMC4zNDM5NDEsIDAuNjEyNjk5LCAxLjA1OTEsIDEuNTA1MTMsIDIuNTQ1MDMsIDMuMTM5MjMiLCBcCi0gICAgICAgICAgIjAuMzI3MTUxLCAwLjM1NzIyMiwgMC42MjU5ODgsIDEuMDcyNCwgMS41MTgzNiwgMi41NTgzMywgMy4xNTI1MiIsIFwKLSAgICAgICAgICAiMC4zNDgzODIsIDAuMzc4NDMyLCAwLjY0NzIzMSwgMS4wOTM2NiwgMS41Mzk2OCwgMi41Nzk3NywgMy4xNzM3MyIsIFwKLSAgICAgICAgICAiMC4zNjY4NiwgMC4zOTY5NDIsIDAuNjY1NzMsIDEuMTEyMjYsIDEuNTU4MTIsIDIuNTk4MTQsIDMuMTkyMzMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzIyMTM2LCAwLjM3OTYyOCwgMC45MDU5ODcsIDEuNzg3NzUsIDIuNjY4NjIsIDQuNzI2NDEsIDUuODk2NDUiLCBcCi0gICAgICAgICAgIjAuMzIyMTUxLCAwLjM3OTU2OCwgMC45MDU4MTksIDEuNzg4MDQsIDIuNjcwNzgsIDQuNzI2NDgsIDUuODk2NDgiLCBcCi0gICAgICAgICAgIjAuMzIyMTUzLCAwLjM3OTU5MywgMC45MDU3OTEsIDEuNzg4NDcsIDIuNjcxODEsIDQuNzI1NzMsIDUuODk2NzYiLCBcCi0gICAgICAgICAgIjAuMzIyMTA1LCAwLjM3OTUxMywgMC45MDU3MTUsIDEuNzg4MDksIDIuNjcxNDMsIDQuNzI2MzUsIDUuODk2NDMiLCBcCi0gICAgICAgICAgIjAuMzIyMDk1LCAwLjM3OTUwMiwgMC45MDU3NTUsIDEuNzg3ODQsIDIuNjcxMDUsIDQuNzI1OSwgNS44OTYwOCIsIFwKLSAgICAgICAgICAiMC4zMjIxMywgMC4zNzk2MDcsIDAuOTA1NDEzLCAxLjc4Nzk1LCAyLjY3MDgxLCA0LjcyNTQ1LCA1Ljg5NjA4IiwgXAotICAgICAgICAgICIwLjMyMjM5MiwgMC4zNzk0MjksIDAuOTA0ODYsIDEuNzg2OTEsIDIuNjY5ODgsIDQuNzI2MDksIDUuODk2MjQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjAiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI0ODU3OCwgMC4yNzQwMjMsIDAuNTAyMjYyLCAwLjg4MTUwOSwgMS4yNjA1MSwgMi4xNDQ0NywgMi42NDk1NCIsIFwKLSAgICAgICAgICAiMC4yNTg5NiwgMC4yODQ0MTUsIDAuNTEyNjU2LCAwLjg5MTg5NCwgMS4yNzA4NywgMi4xNTQ4NiwgMi42NTk5IiwgXAotICAgICAgICAgICIwLjI3MjQzLCAwLjI5NzkwNiwgMC41MjYxMzcsIDAuOTA1NDA3LCAxLjI4NDQxLCAyLjE2ODM4LCAyLjY3MzU1IiwgXAotICAgICAgICAgICIwLjI4NjIyNywgMC4zMTE3MDksIDAuNTM5ODg3LCAwLjkxOTE4NCwgMS4yOTgxOSwgMi4xODIyMSwgMi42ODcxOSIsIFwKLSAgICAgICAgICAiMC4yOTk5OCwgMC4zMjU0NzMsIDAuNTUzNzAyLCAwLjkzMjk2NCwgMS4zMTE5OCwgMi4xOTU5NSwgMi43MDExIiwgXAotICAgICAgICAgICIwLjMyMjMwMSwgMC4zNDc3ODgsIDAuNTc1OTkzLCAwLjk1NTM1MywgMS4zMzQzMSwgMi4yMTgyNiwgMi43MjMyOSIsIFwKLSAgICAgICAgICAiMC4zNDE1ODcsIDAuMzY3MDUzLCAwLjU5NTMyNCwgMC45NzQ1ODMsIDEuMzUzNiwgMi4yMzc1OCwgMi43NDI2Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI3ODQ0NiwgMC4zMjkwNTksIDAuNzg4MjA5LCAxLjU1NTQxLCAyLjMyNjQxLCA0LjEyMTIxLCA1LjE0MDA5IiwgXAotICAgICAgICAgICIwLjI3ODYwNiwgMC4zMjkwMzksIDAuNzg4MTUsIDEuNTU1NzMsIDIuMzI2MDksIDQuMTIwMDIsIDUuMTM5OTQiLCBcCi0gICAgICAgICAgIjAuMjc4NjE1LCAwLjMyODY0NywgMC43ODgwOTcsIDEuNTU2ODcsIDIuMzIyOTksIDQuMTE1NCwgNS4xNDE2MSIsIFwKLSAgICAgICAgICAiMC4yNzg1NzIsIDAuMzI4OTY1LCAwLjc4NzgyLCAxLjU1NjMsIDIuMzIyNjksIDQuMTIxMTcsIDUuMTM4NzMiLCBcCi0gICAgICAgICAgIjAuMjc4NTk2LCAwLjMyODk3NiwgMC43ODgwNTQsIDEuNTU0MzQsIDIuMzIyNjcsIDQuMTE1ODMsIDUuMTQxMzUiLCBcCi0gICAgICAgICAgIjAuMjc4NjM4LCAwLjMyOTAxNSwgMC43ODY2MDQsIDEuNTU2ODMsIDIuMzI1NDQsIDQuMTIxMzgsIDUuMTM4MzkiLCBcCi0gICAgICAgICAgIjAuMjc4MzkyLCAwLjMyODkyOSwgMC43ODgxMDYsIDEuNTU0OTMsIDIuMzI0NTUsIDQuMTIwNzksIDUuMTQxNzgiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjYxNTQ3LCAwLjI5MTMyMiwgMC41NTg2NzYsIDEuMDA0NDQsIDEuNDUwMzksIDIuNDg5NDksIDMuMDgzNDgiLCBcCi0gICAgICAgICAgIjAuMjczMTUxLCAwLjMwMjg5NSwgMC41NzAyNDgsIDEuMDE1NzksIDEuNDYxODgsIDIuNTAxMTQsIDMuMDk0OTciLCBcCi0gICAgICAgICAgIjAuMjg2MTg5LCAwLjMxNTkzNCwgMC41ODMyNTYsIDEuMDI5MDMsIDEuNDc0ODUsIDIuNTE0MjksIDMuMTA4MTYiLCBcCi0gICAgICAgICAgIjAuMjk4NjIzLCAwLjMyODM3OCwgMC41OTU3MTcsIDEuMDQxNDYsIDEuNDg3MzQsIDIuNTI2NDIsIDMuMTIwNTUiLCBcCi0gICAgICAgICAgIjAuMzEwOTg2LCAwLjM0MDczNCwgMC42MDgwNzYsIDEuMDUzODUsIDEuNDk5NjcsIDIuNTM5MTIsIDMuMTMyOTkiLCBcCi0gICAgICAgICAgIjAuMzMwMjU0LCAwLjM2MDAxMiwgMC42MjczODEsIDEuMDczMDQsIDEuNTE4NzksIDIuNTU4OTMsIDMuMTUyMzMiLCBcCi0gICAgICAgICAgIjAuMzQ2NTk0LCAwLjM3NjM0OSwgMC42NDM3MjMsIDEuMDg5NDEsIDEuNTM0OTIsIDIuNTc1NCwgMy4xNjg2NCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMTgwNzksIDAuMzc1ODk4LCAwLjkwMjIyMiwgMS43ODI4NiwgMi42NjI4NSwgNC43MjI4MSwgNS44OTIzNyIsIFwKLSAgICAgICAgICAiMC4zMTgxMzIsIDAuMzc1ODkzLCAwLjkwMDM1NSwgMS43ODYwMSwgMi42NjI5MiwgNC43MjQ5NiwgNS44OTM2NCIsIFwKLSAgICAgICAgICAiMC4zMTgwNzcsIDAuMzc1NDQ0LCAwLjkwMzAxLCAxLjc4Mzc2LCAyLjY2NDIxLCA0LjcyNDIsIDUuODkzODQiLCBcCi0gICAgICAgICAgIjAuMzE4MDc1LCAwLjM3NTYyOSwgMC45MDIyMDcsIDEuNzgyMTksIDIuNjcyMjIsIDQuNzIzMzgsIDUuODkzNTkiLCBcCi0gICAgICAgICAgIjAuMzE4MTM0LCAwLjM3NTUxMSwgMC45MDMwMDgsIDEuNzg1MTMsIDIuNjY0MTYsIDQuNzIzMjMsIDUuODkzNzYiLCBcCi0gICAgICAgICAgIjAuMzE4MTQsIDAuMzc1OCwgMC45MDIyMTMsIDEuNzgwNjYsIDIuNjY5MjIsIDQuNzI0NDgsIDUuODkzMjkiLCBcCi0gICAgICAgICAgIjAuMzE4MTcxLCAwLjM3NjA2MiwgMC45MDIyMjYsIDEuNzgyNzUsIDIuNjY4ODEsIDQuNzIzMzYsIDUuODkzODUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjEiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIzNDY3MywgMC4yNjAwNTksIDAuNDg3ODEyLCAwLjg2Njc3NCwgMS4yNDU1OCwgMi4xMjkzLCAyLjYzNDU1IiwgXAotICAgICAgICAgICIwLjI0NTM2NiwgMC4yNzA3NDQsIDAuNDk4NTAzLCAwLjg3NzQyLCAxLjI1NjI0LCAyLjEzOTk3LCAyLjY0NDg5IiwgXAotICAgICAgICAgICIwLjI1ODg5MSwgMC4yODQyOCwgMC41MTE5NzcsIDAuODkwOTQ4LCAxLjI2OTc3LCAyLjE1MzU1LCAyLjY1ODQyIiwgXAotICAgICAgICAgICIwLjI3MjQxMSwgMC4yOTc4MDksIDAuNTI1NTQ1LCAwLjkwNDQ4NSwgMS4yODMzLCAyLjE2NzA0LCAyLjY3MTk2IiwgXAotICAgICAgICAgICIwLjI4NjMwNiwgMC4zMTE2OTQsIDAuNTM5NDYsIDAuOTE4NDE5LCAxLjI5NzIxLCAyLjE4MDkzLCAyLjY4NTg1IiwgXAotICAgICAgICAgICIwLjMwODMwNCwgMC4zMzM2ODcsIDAuNTYxNDI0LCAwLjk0MDM5OCwgMS4zMTkyMywgMi4yMDMwOCwgMi43MDc4OCIsIFwKLSAgICAgICAgICAiMC4zMjczMTQsIDAuMzUyNzAyLCAwLjU4MDQ1LCAwLjk1OTUwMSwgMS4zMzgyNiwgMi4yMjE5OCwgMi43MjY4OSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yNzczNzMsIDAuMzI3NzA2LCAwLjc4NjkzMiwgMS41NTU5MiwgMi4zMjQxNiwgNC4xMTQ3MywgNS4xNDA1MiIsIFwKLSAgICAgICAgICAiMC4yNzczNjUsIDAuMzI3NzIsIDAuNzg2OTMzLCAxLjU1MzQsIDIuMzI0MiwgNC4xMTk4OSwgNS4xMzg4MSIsIFwKLSAgICAgICAgICAiMC4yNzczMjgsIDAuMzI3NzMsIDAuNzg2NiwgMS41NTQ5LCAyLjMyMTYxLCA0LjExNTA1LCA1LjEzODQ4IiwgXAotICAgICAgICAgICIwLjI3NzMyNCwgMC4zMjc3MTYsIDAuNzg2NzU0LCAxLjU1MjksIDIuMzIxNTksIDQuMTIwNTcsIDUuMTM5MjMiLCBcCi0gICAgICAgICAgIjAuMjc3MzAyLCAwLjMyNzczNiwgMC43ODY4ODEsIDEuNTU1NzksIDIuMzIxNSwgNC4xMjA1LCA1LjEzODAzIiwgXAotICAgICAgICAgICIwLjI3Njg4MiwgMC4zMjc3NjEsIDAuNzg1Nzc0LCAxLjU1NDQyLCAyLjMyNTEzLCA0LjExMjYyLCA1LjEzODI2IiwgXAotICAgICAgICAgICIwLjI3NzQwNSwgMC4zMjc4LCAwLjc4NTQxLCAxLjU1NTY4LCAyLjMyMTUsIDQuMTIwNTEsIDUuMTM3MDkiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjUzODYsIDAuMjgzNjQxLCAwLjU1MDk5NSwgMC45OTY2NDcsIDEuNDQyODQsIDIuNDgyMTQsIDMuMDc2IiwgXAotICAgICAgICAgICIwLjI2MzkzNywgMC4yOTM2ODUsIDAuNTYxMDMsIDEuMDA2OCwgMS40NTI2OSwgMi40OTIxOSwgMy4wODU5MSIsIFwKLSAgICAgICAgICAiMC4yNzcwODQsIDAuMzA2ODM2LCAwLjU3NDE5NSwgMS4wMTk5NywgMS40NjU4LCAyLjUwNTI2LCAzLjA5OTEiLCBcCi0gICAgICAgICAgIjAuMjkwMjk1LCAwLjMyMDA1MiwgMC41ODc0MSwgMS4wMzMyLCAxLjQ3OTAzLCAyLjUxODQ3LCAzLjExMjM2IiwgXAotICAgICAgICAgICIwLjMwMzQ5OSwgMC4zMzMyOSwgMC42MDA2ODMsIDEuMDQ2NTUsIDEuNDkyNDcsIDIuNTMxNiwgMy4xMjU0NiIsIFwKLSAgICAgICAgICAiMC4zMjQzODcsIDAuMzU0MTQ5LCAwLjYyMTU3NiwgMS4wNjcxMywgMS41MTMyNSwgMi41NTI1MywgMy4xNDYzMyIsIFwKLSAgICAgICAgICAiMC4zNDE4NDUsIDAuMzcxNjIsIDAuNjM5MDQxLCAxLjA4NDc2LCAxLjUzMDU4LCAyLjU3MDc5LCAzLjE2Mzk5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMxODA4MywgMC4zNzUzMzEsIDAuOTAyMjIzLCAxLjc4Mzc0LCAyLjY2MzMsIDQuNzIzMDUsIDUuODkzNiIsIFwKLSAgICAgICAgICAiMC4zMTgxMTMsIDAuMzc1NDA3LCAwLjkwMjk1LCAxLjc4NDA4LCAyLjY2NDU2LCA0LjcyMjE4LCA1Ljg5MzkyIiwgXAotICAgICAgICAgICIwLjMxODEwNiwgMC4zNzU1MTEsIDAuOTAyODYzLCAxLjc4Mjc1LCAyLjY2NDAzLCA0LjcyNDcyLCA1Ljg5Mzk1IiwgXAotICAgICAgICAgICIwLjMxODA3NywgMC4zNzU0OTksIDAuOTAyOTY1LCAxLjc4Mjg5LCAyLjY2NDE0LCA0LjcyMDg5LCA1Ljg5MzYxIiwgXAotICAgICAgICAgICIwLjMxODQ2MSwgMC4zNzU0OTksIDAuOTAyMjA2LCAxLjc4NDIzLCAyLjY2MjY0LCA0LjcyMzk2LCA1Ljg5NDEzIiwgXAotICAgICAgICAgICIwLjMxODE2MSwgMC4zNzU2MzUsIDAuOTAyMjIzLCAxLjc4Njg4LCAyLjY2Mjk4LCA0LjcyMzk0LCA1Ljg5Mzg1IiwgXAotICAgICAgICAgICIwLjMxODI0MSwgMC4zNzU2MTksIDAuOTAyMjg1LCAxLjc4MjMsIDIuNjY2NzEsIDQuNzIyOCwgNS44OTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTMyNiwgMC4wMDEzMjcsIDAuMDAxMzMsIDAuMDAxMzMxLCAwLjAwMTMzMiwgMC4wMDEzMzMsIDAuMDAxMzMyIiwgXAotICAgICAgICAgICIwLjAwMTMxNiwgMC4wMDEzMTcsIDAuMDAxMzIsIDAuMDAxMzIxLCAwLjAwMTMyMSwgMC4wMDEzMjIsIDAuMDAxMzIxIiwgXAotICAgICAgICAgICIwLjAwMTMxLCAwLjAwMTMxMSwgMC4wMDEzMTQsIDAuMDAxMzE1LCAwLjAwMTMxNiwgMC4wMDEzMTYsIDAuMDAxMzE2IiwgXAotICAgICAgICAgICIwLjAwMTMwNiwgMC4wMDEzMDcsIDAuMDAxMzEsIDAuMDAxMzExLCAwLjAwMTMxMiwgMC4wMDEzMTIsIDAuMDAxMzEyIiwgXAotICAgICAgICAgICIwLjAwMTMwMywgMC4wMDEzMDQsIDAuMDAxMzA3LCAwLjAwMTMwOSwgMC4wMDEzMDksIDAuMDAxMzA5LCAwLjAwMTMxIiwgXAotICAgICAgICAgICIwLjAwMTI5OSwgMC4wMDEzLCAwLjAwMTMwNCwgMC4wMDEzMDUsIDAuMDAxMzA1LCAwLjAwMTMwNiwgMC4wMDEzMDYiLCBcCi0gICAgICAgICAgIjAuMDAxMjk3LCAwLjAwMTI5OCwgMC4wMDEzMDIsIDAuMDAxMzAzLCAwLjAwMTMwMywgMC4wMDEzMDQsIDAuMDAxMzA0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyNjc2LCAwLjAwMjY3NywgMC4wMDI2ODEsIDAuMDAyNjgyLCAwLjAwMjY4MywgMC4wMDI2ODMsIDAuMDAyNjg0IiwgXAotICAgICAgICAgICIwLjAwMjY3LCAwLjAwMjY3MiwgMC4wMDI2NzYsIDAuMDAyNjc3LCAwLjAwMjY3NywgMC4wMDI2NzgsIDAuMDAyNjc4IiwgXAotICAgICAgICAgICIwLjAwMjY2NiwgMC4wMDI2NjgsIDAuMDAyNjcyLCAwLjAwMjY3NCwgMC4wMDI2NzQsIDAuMDAyNjc1LCAwLjAwMjY3NSIsIFwKLSAgICAgICAgICAiMC4wMDI2NjQsIDAuMDAyNjY1LCAwLjAwMjY3LCAwLjAwMjY3MSwgMC4wMDI2NzIsIDAuMDAyNjcyLCAwLjAwMjY3MiIsIFwKLSAgICAgICAgICAiMC4wMDI2NjIsIDAuMDAyNjYzLCAwLjAwMjY2NywgMC4wMDI2NjksIDAuMDAyNjcsIDAuMDAyNjcsIDAuMDAyNjciLCBcCi0gICAgICAgICAgIjAuMDAyNjU4LCAwLjAwMjY2LCAwLjAwMjY2NSwgMC4wMDI2NjcsIDAuMDAyNjY4LCAwLjAwMjY2OSwgMC4wMDI2NjkiLCBcCi0gICAgICAgICAgIjAuMDAyNjU3LCAwLjAwMjY1OCwgMC4wMDI2NjQsIDAuMDAyNjY2LCAwLjAwMjY2NywgMC4wMDI2NjcsIDAuMDAyNjY4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTEyNCwgMC4wMDExMjUsIDAuMDAxMTI4LCAwLjAwMTEyOSwgMC4wMDExMjksIDAuMDAxMTI5LCAwLjAwMTEyOSIsIFwKLSAgICAgICAgICAiMC4wMDExMTksIDAuMDAxMTIsIDAuMDAxMTIzLCAwLjAwMTEyMywgMC4wMDExMjQsIDAuMDAxMTI0LCAwLjAwMTEyNCIsIFwKLSAgICAgICAgICAiMC4wMDExMSwgMC4wMDExMTEsIDAuMDAxMTE0LCAwLjAwMTExNCwgMC4wMDExMTUsIDAuMDAxMTE1LCAwLjAwMTExNSIsIFwKLSAgICAgICAgICAiMC4wMDExMDMsIDAuMDAxMTA0LCAwLjAwMTEwNywgMC4wMDExMDgsIDAuMDAxMTA4LCAwLjAwMTEwOCwgMC4wMDExMDgiLCBcCi0gICAgICAgICAgIjAuMDAxMDk3LCAwLjAwMTA5OCwgMC4wMDExMDEsIDAuMDAxMTAyLCAwLjAwMTEwMiwgMC4wMDExMDIsIDAuMDAxMTAzIiwgXAotICAgICAgICAgICIwLjAwMTA5MSwgMC4wMDEwOTIsIDAuMDAxMDk1LCAwLjAwMTA5NSwgMC4wMDEwOTYsIDAuMDAxMDk2LCAwLjAwMTA5NiIsIFwKLSAgICAgICAgICAiMC4wMDEwODYsIDAuMDAxMDg3LCAwLjAwMTA5MSwgMC4wMDEwOTIsIDAuMDAxMDkyLCAwLjAwMTA5MywgMC4wMDEwOTMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI1MzMsIDAuMDAyNTM0LCAwLjAwMjUzOCwgMC4wMDI1MzksIDAuMDAyNTQsIDAuMDAyNTQxLCAwLjAwMjU0MSIsIFwKLSAgICAgICAgICAiMC4wMDI1MjUsIDAuMDAyNTI3LCAwLjAwMjUzMSwgMC4wMDI1MzIsIDAuMDAyNTMzLCAwLjAwMjUzMywgMC4wMDI1MzMiLCBcCi0gICAgICAgICAgIjAuMDAyNTE4LCAwLjAwMjUxOSwgMC4wMDI1MjQsIDAuMDAyNTI1LCAwLjAwMjUyNiwgMC4wMDI1MjYsIDAuMDAyNTI3IiwgXAotICAgICAgICAgICIwLjAwMjUxMywgMC4wMDI1MTUsIDAuMDAyNTIsIDAuMDAyNTIyLCAwLjAwMjUyMiwgMC4wMDI1MjMsIDAuMDAyNTIzIiwgXAotICAgICAgICAgICIwLjAwMjUxLCAwLjAwMjUxMSwgMC4wMDI1MTcsIDAuMDAyNTE5LCAwLjAwMjUxOSwgMC4wMDI1MiwgMC4wMDI1MiIsIFwKLSAgICAgICAgICAiMC4wMDI1MDYsIDAuMDAyNTA3LCAwLjAwMjUxNCwgMC4wMDI1MTYsIDAuMDAyNTE3LCAwLjAwMjUxOCwgMC4wMDI1MTgiLCBcCi0gICAgICAgICAgIjAuMDAyNTAzLCAwLjAwMjUwNSwgMC4wMDI1MTIsIDAuMDAyNTE1LCAwLjAwMjUxNiwgMC4wMDI1MTcsIDAuMDAyNTE3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTMyNiwgMC4wMDEzMjcsIDAuMDAxMzMsIDAuMDAxMzMyLCAwLjAwMTMzMiwgMC4wMDEzMzIsIDAuMDAxMzMzIiwgXAotICAgICAgICAgICIwLjAwMTMxNCwgMC4wMDEzMTUsIDAuMDAxMzE4LCAwLjAwMTMxOSwgMC4wMDEzMiwgMC4wMDEzMiwgMC4wMDEzMiIsIFwKLSAgICAgICAgICAiMC4wMDEzMDcsIDAuMDAxMzA4LCAwLjAwMTMxMiwgMC4wMDEzMTMsIDAuMDAxMzEzLCAwLjAwMTMxNCwgMC4wMDEzMTQiLCBcCi0gICAgICAgICAgIjAuMDAxMzAzLCAwLjAwMTMwNCwgMC4wMDEzMDcsIDAuMDAxMzA5LCAwLjAwMTMwOSwgMC4wMDEzMDksIDAuMDAxMzEiLCBcCi0gICAgICAgICAgIjAuMDAxMjk5LCAwLjAwMTMsIDAuMDAxMzA0LCAwLjAwMTMwNiwgMC4wMDEzMDYsIDAuMDAxMzA2LCAwLjAwMTMwNyIsIFwKLSAgICAgICAgICAiMC4wMDEyOTUsIDAuMDAxMjk2LCAwLjAwMTMwMSwgMC4wMDEzMDMsIDAuMDAxMzAzLCAwLjAwMTMwMywgMC4wMDEzMDQiLCBcCi0gICAgICAgICAgIjAuMDAxMjkzLCAwLjAwMTI5NCwgMC4wMDEyOTksIDAuMDAxMzAxLCAwLjAwMTMwMiwgMC4wMDEzMDMsIDAuMDAxMzAzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxOTUxLCAwLjAwMTk1MiwgMC4wMDE5NTQsIDAuMDAxOTU0LCAwLjAwMTk1NSwgMC4wMDE5NTUsIDAuMDAxOTU1IiwgXAotICAgICAgICAgICIwLjAwMTk0OCwgMC4wMDE5NDksIDAuMDAxOTUxLCAwLjAwMTk1MSwgMC4wMDE5NTEsIDAuMDAxOTUxLCAwLjAwMTk1MSIsIFwKLSAgICAgICAgICAiMC4wMDE5NDMsIDAuMDAxOTQ0LCAwLjAwMTk0NiwgMC4wMDE5NDYsIDAuMDAxOTQ2LCAwLjAwMTk0NiwgMC4wMDE5NDciLCBcCi0gICAgICAgICAgIjAuMDAxOTM5LCAwLjAwMTk0LCAwLjAwMTk0MiwgMC4wMDE5NDMsIDAuMDAxOTQzLCAwLjAwMTk0MywgMC4wMDE5NDMiLCBcCi0gICAgICAgICAgIjAuMDAxOTM2LCAwLjAwMTkzNywgMC4wMDE5MzksIDAuMDAxOTQsIDAuMDAxOTQsIDAuMDAxOTQsIDAuMDAxOTQiLCBcCi0gICAgICAgICAgIjAuMDAxOTMzLCAwLjAwMTkzNCwgMC4wMDE5MzcsIDAuMDAxOTM4LCAwLjAwMTkzOCwgMC4wMDE5MzgsIDAuMDAxOTM4IiwgXAotICAgICAgICAgICIwLjAwMTkzLCAwLjAwMTkzMSwgMC4wMDE5MzQsIDAuMDAxOTM1LCAwLjAwMTkzNiwgMC4wMDE5MzYsIDAuMDAxOTM2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTEwNCwgMC4wMDExMDQsIDAuMDAxMTA3LCAwLjAwMTEwOCwgMC4wMDExMDgsIDAuMDAxMTA5LCAwLjAwMTEwOSIsIFwKLSAgICAgICAgICAiMC4wMDEwOTcsIDAuMDAxMDk4LCAwLjAwMTEsIDAuMDAxMTAyLCAwLjAwMTEwMSwgMC4wMDExMDIsIDAuMDAxMTAyIiwgXAotICAgICAgICAgICIwLjAwMTA4NywgMC4wMDEwODgsIDAuMDAxMDkxLCAwLjAwMTA5MiwgMC4wMDEwOTIsIDAuMDAxMDkyLCAwLjAwMTA5MiIsIFwKLSAgICAgICAgICAiMC4wMDEwNzksIDAuMDAxMDgsIDAuMDAxMDgzLCAwLjAwMTA4NCwgMC4wMDEwODQsIDAuMDAxMDg1LCAwLjAwMTA4NSIsIFwKLSAgICAgICAgICAiMC4wMDEwNzMsIDAuMDAxMDc0LCAwLjAwMTA3OCwgMC4wMDEwNzksIDAuMDAxMDc5LCAwLjAwMTA4LCAwLjAwMTA4IiwgXAotICAgICAgICAgICIwLjAwMTA2NywgMC4wMDEwNjgsIDAuMDAxMDcyLCAwLjAwMTA3NCwgMC4wMDEwNzUsIDAuMDAxMDc1LCAwLjAwMTA3NSIsIFwKLSAgICAgICAgICAiMC4wMDEwNjQsIDAuMDAxMDY1LCAwLjAwMTA3LCAwLjAwMTA3MiwgMC4wMDEwNzIsIDAuMDAxMDczLCAwLjAwMTA3MyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTgwNSwgMC4wMDE4MDYsIDAuMDAxODA5LCAwLjAwMTgwOSwgMC4wMDE4MSwgMC4wMDE4MSwgMC4wMDE4MSIsIFwKLSAgICAgICAgICAiMC4wMDE3OTksIDAuMDAxNzk5LCAwLjAwMTgwMiwgMC4wMDE4MDMsIDAuMDAxODAzLCAwLjAwMTgwMywgMC4wMDE4MDMiLCBcCi0gICAgICAgICAgIjAuMDAxNzkxLCAwLjAwMTc5MiwgMC4wMDE3OTUsIDAuMDAxNzk2LCAwLjAwMTc5NiwgMC4wMDE3OTYsIDAuMDAxNzk2IiwgXAotICAgICAgICAgICIwLjAwMTc4NSwgMC4wMDE3ODYsIDAuMDAxNzg5LCAwLjAwMTc5MSwgMC4wMDE3OTEsIDAuMDAxNzkxLCAwLjAwMTc5MiIsIFwKLSAgICAgICAgICAiMC4wMDE3ODEsIDAuMDAxNzgyLCAwLjAwMTc4NiwgMC4wMDE3ODgsIDAuMDAxNzg4LCAwLjAwMTc4OSwgMC4wMDE3ODkiLCBcCi0gICAgICAgICAgIjAuMDAxNzc2LCAwLjAwMTc3OCwgMC4wMDE3ODMsIDAuMDAxNzg1LCAwLjAwMTc4NSwgMC4wMDE3ODYsIDAuMDAxNzg2IiwgXAotICAgICAgICAgICIwLjAwMTc3NCwgMC4wMDE3NzYsIDAuMDAxNzgxLCAwLjAwMTc4MywgMC4wMDE3ODQsIDAuMDAxNzg1LCAwLjAwMTc4NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBPQUkyMjJYTCAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoT0FJMjIyWEwpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4wODAyMjQ1OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjAxOTg1OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYwMDg3NDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2MDE5ODU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMTY1LCAwLjAwMDE2NSwgMC4wMDAxNjUsIDAuMDAwMTY1LCAwLjAwMDE2NSwgMC4wMDAxNjUsIDAuMDAwMTY1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMTY2LCAwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY2Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihBMSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjA0MTQ0OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYwNDE0NDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2MDE5OTc7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMTY1LCAwLjAwMDE2NSwgMC4wMDAxNjUsIDAuMDAwMTY1LCAwLjAwMDE2NSwgMC4wMDAxNjUsIDAuMDAwMTY1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMTY2LCAwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY2Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjU0OTIxOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDY1MzY3MjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2NTQ5MjE7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMTY1LCAwLjAwMDE2NSwgMC4wMDAxNjUsIDAuMDAwMTY1LCAwLjAwMDE2NSwgMC4wMDAxNjUsIDAuMDAwMTY1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMTY2LCAwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY2Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCMSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjI5MjA0OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYyOTIwNDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2MjczNzE7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMTY1LCAwLjAwMDE2NSwgMC4wMDAxNjUsIDAuMDAwMTY1LCAwLjAwMDE2NSwgMC4wMDAxNjUsIDAuMDAwMTY1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMTY2LCAwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY2Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihDMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjgzNjI5OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDY4MDM5MjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2ODM2Mjk7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzU1LCAwLjAwMDM1NSwgMC4wMDAzNTQsIDAuMDAwMzU1LCAwLjAwMDM1NSwgMC4wMDAzNTUsIDAuMDAwMzU1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMTg4LCAwLjAwMDE4OCwgMC4wMDAxODksIDAuMDAwMTg4LCAwLjAwMDE4OCwgMC4wMDAxODgsIDAuMDAwMTg4Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihDMSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNzAzOTU7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNzAzOTU7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNzAzOTEyOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDM1NCwgMC4wMDAzNTUsIDAuMDAwMzU0LCAwLjAwMDM1NCwgMC4wMDAzNTQsIDAuMDAwMzU0LCAwLjAwMDM1NCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDE4OCwgMC4wMDAxODgsIDAuMDAwMTg4LCAwLjAwMDE4OCwgMC4wMDAxODgsIDAuMDAwMTg4LCAwLjAwMDE4OCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjAyNDYxNzQ7Ci0gICAgZnVuY3Rpb24gOiAiKCEoKChDMCtDMSkgKEEwK0ExKSkgKEIwK0IxKSkpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzQwNDMyLCAwLjM5MjYxNiwgMC44NTk4MzYsIDEuNjM1NTYsIDIuNDEwNzgsIDQuMjIwMTEsIDUuMjUzOTIiLCBcCi0gICAgICAgICAgIjAuMzUxOTA2LCAwLjQwNDA3NCwgMC44NzEzLCAxLjY0NzAyLCAyLjQyMjY1LCA0LjIzMTg0LCA1LjI2NTI5IiwgXAotICAgICAgICAgICIwLjM2NDk4OCwgMC40MTcxNTEsIDAuODg0MzA4LCAxLjY2MDIzLCAyLjQzNTkzLCA0LjI0NDg4LCA1LjI3ODEzIiwgXAotICAgICAgICAgICIwLjM3NzU4MSwgMC40Mjk4MjQsIDAuODk2OTY2LCAxLjY3Mjg0LCAyLjQ0ODQ0LCA0LjI1NzU0LCA1LjI5MDk3IiwgXAotICAgICAgICAgICIwLjM5MDA5NCwgMC40NDIyMTQsIDAuOTA5NDc0LCAxLjY4NTE5LCAyLjQ2MTAxLCA0LjI3MDAyLCA1LjMwMzM4IiwgXAotICAgICAgICAgICIwLjQwOTc3MywgMC40NjE5OSwgMC45MjkyODMsIDEuNzA1MTYsIDIuNDgwNDMsIDQuMjg5ODIsIDUuMzIzMzMiLCBcCi0gICAgICAgICAgIjAuNDI2OTY2LCAwLjQ3ODU3LCAwLjk0Njc4MSwgMS43MjI4LCAyLjQ5NzM1LCA0LjMwNzI1LCA1LjM0MDc3Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjY0NTg1MiwgMC43NDY3OTcsIDEuNjU0NiwgMy4xNjcxOSwgNC42NzkwNSwgOC4yMDc0NSwgMTAuMjIzMyIsIFwKLSAgICAgICAgICAiMC42NDU4ODMsIDAuNzQ2Nzc3LCAxLjY1NDU2LCAzLjE2NywgNC42ODA1LCA4LjIwODcyLCAxMC4yMjM1IiwgXAotICAgICAgICAgICIwLjY0NTg0OCwgMC43NDY3MzEsIDEuNjU0ODIsIDMuMTY4MDYsIDQuNjgwNDYsIDguMjA4NzMsIDEwLjIyNCIsIFwKLSAgICAgICAgICAiMC42NDU4NTcsIDAuNzQ2Nzc0LCAxLjY1NDcyLCAzLjE2NzAyLCA0LjY3OTU2LCA4LjIwNzYyLCAxMC4yMjMyIiwgXAotICAgICAgICAgICIwLjY0NTg1NCwgMC43NDY3ODMsIDEuNjU0NzksIDMuMTY3ODUsIDQuNjgwNzQsIDguMjA3NzEsIDEwLjIyNCIsIFwKLSAgICAgICAgICAiMC42NDU4MDgsIDAuNzQ2NzAyLCAxLjY1NDg1LCAzLjE2NzA3LCA0LjY3OTE2LCA4LjIwNzY1LCAxMC4yMjI5IiwgXAotICAgICAgICAgICIwLjY0NjIzMywgMC43NDY2NDUsIDEuNjU0NzgsIDMuMTY3MDIsIDQuNjc5MDYsIDguMjA3NTksIDEwLjIyMzEiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuNjE4Njg1LCAwLjcwODE1OCwgMS41MTIzMywgMi44NTAzMiwgNC4xODY3OSwgNy4zMTQ3MiwgOS4xMDM0OCIsIFwKLSAgICAgICAgICAiMC42MzA1NjksIDAuNzIwMTU0LCAxLjUyNDMzLCAyLjg2MTg2LCA0LjE5ODc2LCA3LjMyNjU0LCA5LjExNTQ0IiwgXAotICAgICAgICAgICIwLjY0NTgxOCwgMC43MzUxNTUsIDEuNTM5MSwgMi44Nzc0OCwgNC4yMTQyNSwgNy4zNDE4NSwgOS4xMzA2NCIsIFwKLSAgICAgICAgICAiMC42NjAzNTIsIDAuNzQ5NzMzLCAxLjU1NDI3LCAyLjg5MjA2LCA0LjIyODY4LCA3LjM1NjQ2LCA5LjE0NTIyIiwgXAotICAgICAgICAgICIwLjY3NDE5NywgMC43NjM3NjEsIDEuNTY4MjQsIDIuOTA2NDQsIDQuMjQzMDMsIDcuMzcwMzYsIDkuMTU5MzQiLCBcCi0gICAgICAgICAgIjAuNjk1OTY2LCAwLjc4NTY1NCwgMS41ODk5NywgMi45MjgzMiwgNC4yNjQ4NywgNy4zOTIyOSwgOS4xODEyMSIsIFwKLSAgICAgICAgICAiMC43MTQ3MzgsIDAuODA0NDQyLCAxLjYwODQ5LCAyLjk0Njg0LCA0LjI4MzQ4LCA3LjQxMTE5LCA5LjIwMDAyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIxLjAxMDcxLCAxLjE3Njg4LCAyLjY4MzUzLCA1LjE5NDM2LCA3LjcxMTE2LCAxMy41NjgxLCAxNi45MTU4IiwgXAotICAgICAgICAgICIxLjAxMDY5LCAxLjE3Njk0LCAyLjY4MjY0LCA1LjE5ODk0LCA3LjcxMDgsIDEzLjU2NzUsIDE2LjkxNTgiLCBcCi0gICAgICAgICAgIjEuMDA5OTEsIDEuMTc4MjYsIDIuNjg0NzQsIDUuMTk0MjksIDcuNzExMzQsIDEzLjU2ODEsIDE2LjkxNTgiLCBcCi0gICAgICAgICAgIjEuMDA5ODcsIDEuMTc2ODQsIDIuNjgyODEsIDUuMTkzOTgsIDcuNzExOTQsIDEzLjU2ODEsIDE2LjkxNTciLCBcCi0gICAgICAgICAgIjEuMDEwMzMsIDEuMTc2NzMsIDIuNjgyNTgsIDUuMTk2NjgsIDcuNzExNDEsIDEzLjU2NzksIDE2LjkxNTgiLCBcCi0gICAgICAgICAgIjEuMDEwMTgsIDEuMTc2OTcsIDIuNjgyNjUsIDUuMTk4MTgsIDcuNzExMzksIDEzLjU2NzYsIDE2LjkxNTgiLCBcCi0gICAgICAgICAgIjEuMDEwNjksIDEuMTc3LCAyLjY4NDg3LCA1LjE5OTI3LCA3LjcxMTE4LCAxMy41NjgxLCAxNi45MTU4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkExIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMzM2MTYsIDAuMzg1NzM3LCAwLjg1MjkzMywgMS42Mjg3NCwgMi40MDM4OSwgNC4yMTM1OSwgNS4yNDciLCBcCi0gICAgICAgICAgIjAuMzQzOTE4LCAwLjM5NjE1MSwgMC44NjMzODgsIDEuNjM5NywgMi40MTQyNCwgNC4yMjM5MywgNS4yNTczMiIsIFwKLSAgICAgICAgICAiMC4zNTY3NTcsIDAuNDA4ODI3LCAwLjg3NjE0OCwgMS42NTI0NCwgMi40MjY5OSwgNC4yMzY2NywgNS4yNjk5OCIsIFwKLSAgICAgICAgICAiMC4zNjk3MDQsIDAuNDIxOTU1LCAwLjg4OTE5NiwgMS42NjUwOCwgMi40NDAwNiwgNC4yNDk2OCwgNS4yODMxIiwgXAotICAgICAgICAgICIwLjM4Mjc4NiwgMC40MzQ4OTEsIDAuOTAyMTY5LCAxLjY3ODAzLCAyLjQ1MzE5LCA0LjI2Mjc0LCA1LjI5NjI0IiwgXAotICAgICAgICAgICIwLjQwMzU5NCwgMC40NTU3ODMsIDAuOTIzMTIxLCAxLjY5ODg5LCAyLjQ3Mzk4LCA0LjI4MzM0LCA1LjMxNzEyIiwgXAotICAgICAgICAgICIwLjQyMTg5OCwgMC40NzQxNDYsIDAuOTQxNDQ5LCAxLjcxNzQyLCAyLjQ5Mjk0LCA0LjMwMTksIDUuMzM1MjciKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuNjQ1ODc4LCAwLjc0Njc4NSwgMS42NTQ3NSwgMy4xNjcxNywgNC42NzkzNywgOC4yMDg5MywgMTAuMjI0MSIsIFwKLSAgICAgICAgICAiMC42NDU4NTksIDAuNzQ2NzI1LCAxLjY1NDU3LCAzLjE2NzQyLCA0LjY3OTk0LCA4LjIwODk3LCAxMC4yMjQiLCBcCi0gICAgICAgICAgIjAuNjQ1ODQ5LCAwLjc0NjcwMiwgMS42NTQ1NywgMy4xNjcxOCwgNC42ODAxOCwgOC4yMDc1OCwgMTAuMjI0IiwgXAotICAgICAgICAgICIwLjY0NTg0NCwgMC43NDY3ODEsIDEuNjU0OTEsIDMuMTY3MjksIDQuNjc5NDEsIDguMjA4MzgsIDEwLjIyMzMiLCBcCi0gICAgICAgICAgIjAuNjQ1ODQxLCAwLjc0Njc0NSwgMS42NTQ0MywgMy4xNjcsIDQuNjgwNzYsIDguMjA3NjgsIDEwLjIyMjgiLCBcCi0gICAgICAgICAgIjAuNjQ1NTg5LCAwLjc0NjYwOCwgMS42NTQ0MSwgMy4xNjcwNCwgNC42Nzk1NiwgOC4yMDgwNSwgMTAuMjI0MiIsIFwKLSAgICAgICAgICAiMC42NDY2MjEsIDAuNzQ2NzUzLCAxLjY1NDQyLCAzLjE2NzAxLCA0LjY4MDE2LCA4LjIwODM4LCAxMC4yMjI4Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjYwMTIwNSwgMC42OTA2NjQsIDEuNDk0NDIsIDIuODMyMzEsIDQuMTY4ODcsIDcuMjk2MzMsIDkuMDg1MjgiLCBcCi0gICAgICAgICAgIjAuNjE0MDY3LCAwLjcwMzYwOCwgMS41MDc1OSwgMi44NDUxNSwgNC4xODE3NSwgNy4zMDkzMSwgOS4wOTgxMiIsIFwKLSAgICAgICAgICAiMC42MjkyNTMsIDAuNzE4NjQ4LCAxLjUyMjc5LCAyLjg2MDUzLCA0LjE5NzAyLCA3LjMyNDc2LCA5LjExMzUzIiwgXAotICAgICAgICAgICIwLjY0MzgxNCwgMC43MzMxMjksIDEuNTM3NDgsIDIuODc1MjEsIDQuMjExNzYsIDcuMzM5NDUsIDkuMTI4MjIiLCBcCi0gICAgICAgICAgIjAuNjU3ODcxLCAwLjc0NzI2NiwgMS41NTE1MywgMi44ODk2MiwgNC4yMjYxMywgNy4zNTMzOSwgOS4xNDIzNiIsIFwKLSAgICAgICAgICAiMC42NzkyNTEsIDAuNzY4Nzc1LCAxLjU3MzE0LCAyLjkxMTQzLCA0LjI0Nzk2LCA3LjM3NTMyLCA5LjE2NDI0IiwgXAotICAgICAgICAgICIwLjY5Nzg5MywgMC43ODc0MTksIDEuNTkxNjMsIDIuOTI5NywgNC4yNjY3LCA3LjM5NDE3LCA5LjE4MzAxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjk5MDA2NSwgMS4xNTc5NywgMi42NjM3NCwgNS4xNzM5NCwgNy42ODkzNCwgMTMuNTQ2OCwgMTYuODk0NSIsIFwKLSAgICAgICAgICAiMC45OTA2NzUsIDEuMTU3ODUsIDIuNjYzNDEsIDUuMTczODUsIDcuNjkwNTQsIDEzLjU0NywgMTYuODk0NSIsIFwKLSAgICAgICAgICAiMC45OTAyOTgsIDEuMTU3OTQsIDIuNjY0MTMsIDUuMTczNTIsIDcuNjkwOTQsIDEzLjU0NjksIDE2Ljg5NDQiLCBcCi0gICAgICAgICAgIjAuOTkwNjU4LCAxLjE1ODgyLCAyLjY2MzA1LCA1LjE3MzU1LCA3LjY5MTA5LCAxMy41NDY5LCAxNi44OTQ0IiwgXAotICAgICAgICAgICIwLjk5MDY0NywgMS4xNTc5MiwgMi42NjI2NCwgNS4xNzU2OSwgNy42OTA2NSwgMTMuNTQ2OCwgMTYuODk0NSIsIFwKLSAgICAgICAgICAiMC45OTEzODcsIDEuMTU3NzcsIDIuNjYyNjgsIDUuMTc4MjIsIDcuNjkwNjEsIDEzLjU0NjUsIDE2Ljg5NDUiLCBcCi0gICAgICAgICAgIjAuOTkwNDUyLCAxLjE1NzcsIDIuNjYzMTIsIDUuMTc1MDcsIDcuNjkwMzQsIDEzLjU0NjksIDE2Ljg5NDUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjAiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMyNTA0MiwgMC4zNzcwNDUsIDAuODQyNzgyLCAxLjYxODIzLCAyLjM5MzUxLCA0LjIwMjgyLCA1LjIzNTkzIiwgXAotICAgICAgICAgICIwLjMzNjc2MywgMC4zODg3NjEsIDAuODU0NjMxLCAxLjYzMDAxLCAyLjQwNTA3LCA0LjIxNDM5LCA1LjI0NzY4IiwgXAotICAgICAgICAgICIwLjM1MDE2MSwgMC40MDIwMDksIDAuODY3ODM2LCAxLjY0MzMxLCAyLjQxODQyLCA0LjIyNzY5LCA1LjI2MDk0IiwgXAotICAgICAgICAgICIwLjM2MjcyLCAwLjQxNDU4OSwgMC44ODA1MDgsIDEuNjU1OSwgMi40MzEyMSwgNC4yNDA0MSwgNS4yNzM2OSIsIFwKLSAgICAgICAgICAiMC4zNzUyNTYsIDAuNDI3MTkxLCAwLjg5MzA2OSwgMS42Njg1NywgMi40NDM1NiwgNC4yNTI5OSwgNS4yODYxNCIsIFwKLSAgICAgICAgICAiMC4zOTQ5NCwgMC40NDY5MzYsIDAuOTEyODM0LCAxLjY4ODMyLCAyLjQ2MzU4LCA0LjI3Mjg3LCA1LjMwNTk2IiwgXAotICAgICAgICAgICIwLjQxMjI1MywgMC40NjM2NTcsIDAuOTMwNTE3LCAxLjcwNTgsIDIuNDgwNjksIDQuMjkwNCwgNS4zMjM1OCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC42MjcyMzYsIDAuNzI4MDU2LCAxLjYzNTA0LCAzLjE0NzY3LCA0LjY1ODkzLCA4LjE4Njc4LCAxMC4yMDMxIiwgXAotICAgICAgICAgICIwLjYyNzIxOSwgMC43Mjc5NjIsIDEuNjM1NTMsIDMuMTQ3NDIsIDQuNjU4OTksIDguMTg2NTYsIDEwLjIwMyIsIFwKLSAgICAgICAgICAiMC42MjcyNSwgMC43MjgwMzgsIDEuNjM1MDYsIDMuMTQ4MDYsIDQuNjU5NzYsIDguMTg3OTMsIDEwLjIwMjIiLCBcCi0gICAgICAgICAgIjAuNjI3MjE5LCAwLjcyNzk5OSwgMS42MzUxNiwgMy4xNDczOCwgNC42NTkyNCwgOC4xODY3NSwgMTAuMjAzIiwgXAotICAgICAgICAgICIwLjYyNzIzNCwgMC43MjgwMTQsIDEuNjM1MDcsIDMuMTQ3MzYsIDQuNjU5OCwgOC4xODc2OCwgMTAuMjAyOCIsIFwKLSAgICAgICAgICAiMC42MjcyMzYsIDAuNzI4MDQ4LCAxLjYzNTExLCAzLjE0NzUzLCA0LjY1OTcyLCA4LjE4NjkyLCAxMC4yMDIzIiwgXAotICAgICAgICAgICIwLjYyNzg5MSwgMC43MjgyODcsIDEuNjM1MDUsIDMuMTQ2ODgsIDQuNjU4NTQsIDguMTg3MzYsIDEwLjIwMzEiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuNjAwNDQ3LCAwLjY5MDA5NSwgMS40OTM2OSwgMi44MzIwOCwgNC4xNjg5NiwgNy4yOTY0MywgOS4wODUyOCIsIFwKLSAgICAgICAgICAiMC42MTA5NzEsIDAuNzAwNTQ3LCAxLjUwNDc0LCAyLjg0MjA5LCA0LjE3OTA4LCA3LjMwNjgzLCA5LjA5NTg0IiwgXAotICAgICAgICAgICIwLjYyNTEwNywgMC43MTQ1MzYsIDEuNTE4OTMsIDIuODU2ODIsIDQuMTkzNDcsIDcuMzIxMTksIDkuMTEwMDEiLCBcCi0gICAgICAgICAgIjAuNjM5MTMzLCAwLjcyODY1NSwgMS41MzIzLCAyLjg3MDg5LCA0LjIwNzM4LCA3LjMzNTExLCA5LjEyMzk1IiwgXAotICAgICAgICAgICIwLjY1MjU3LCAwLjc0MjMyNiwgMS41NDYzLCAyLjg4NDM1LCA0LjIyMTA2LCA3LjM0ODgzLCA5LjEzNzYxIiwgXAotICAgICAgICAgICIwLjY3NDA0NiwgMC43NjM0NDcsIDEuNTY3NTcsIDIuOTA1NzgsIDQuMjQyNTYsIDcuMzcwMjUsIDkuMTU5MSIsIFwKLSAgICAgICAgICAiMC42OTIzODEsIDAuNzgxOTUzLCAxLjU4NjM3LCAyLjkyNDYsIDQuMjYxMTYsIDcuMzg4NzIsIDkuMTc3NTYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjEuMDEwNywgMS4xNzcxLCAyLjY4NTgzLCA1LjE5NDI4LCA3LjcwOTI1LCAxMy41Njc4LCAxNi45MTU4IiwgXAotICAgICAgICAgICIxLjAxMDY5LCAxLjE3Njk0LCAyLjY4MjU5LCA1LjE5OTM4LCA3LjcxMTE3LCAxMy41NjgsIDE2LjkxNTgiLCBcCi0gICAgICAgICAgIjEuMDEwNjYsIDEuMTc3OTMsIDIuNjgzODIsIDUuMTkzOTksIDcuNzExMDUsIDEzLjU2ODEsIDE2LjkxNTYiLCBcCi0gICAgICAgICAgIjEuMDA5NDUsIDEuMTc2OTgsIDIuNjg1NDcsIDUuMTk1MzUsIDcuNzExMTMsIDEzLjU2ODEsIDE2LjkxNTgiLCBcCi0gICAgICAgICAgIjEuMDEwNjksIDEuMTc3MDEsIDIuNjgyNzQsIDUuMjAwNDYsIDcuNzExMDksIDEzLjU2ODEsIDE2LjkxNTkiLCBcCi0gICAgICAgICAgIjEuMDA5MTEsIDEuMTc2NzQsIDIuNjgyODcsIDUuMTkzODYsIDcuNzExMTgsIDEzLjU2ODEsIDE2LjkxNTgiLCBcCi0gICAgICAgICAgIjEuMDA5MTEsIDEuMTc3NTQsIDIuNjgyNjEsIDUuMTk0OTIsIDcuNzExMjYsIDEzLjU2NzgsIDE2LjkxNTgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMxNzIzOCwgMC4zNjkyMTcsIDAuODM0OTM4LCAxLjYxMDQxLCAyLjM4NTU1LCA0LjE5NDcyLCA1LjIyODE2IiwgXAotICAgICAgICAgICIwLjMyNzcwMiwgMC4zNzk1OTcsIDAuODQ1MzQ4LCAxLjYyMDg4LCAyLjM5NTg5LCA0LjIwNTI1LCA1LjIzODUiLCBcCi0gICAgICAgICAgIjAuMzQwNzU0LCAwLjM5MjU0MywgMC44NTg0MjUsIDEuNjMzOSwgMi40MDg5MiwgNC4yMTg0MywgNS4yNTE0OSIsIFwKLSAgICAgICAgICAiMC4zNTM2MjgsIDAuNDA1NDc1LCAwLjg3MTU2NCwgMS42NDY5NCwgMi40MjE5NywgNC4yMzEzMSwgNS4yNjQ1OSIsIFwKLSAgICAgICAgICAiMC4zNjY2ODMsIDAuNDE4Njk4LCAwLjg4NDYsIDEuNjU5ODYsIDIuNDM1MDEsIDQuMjQ0NTEsIDUuMjc3NjUiLCBcCi0gICAgICAgICAgIjAuMzg3NTU2LCAwLjQzOTYzNSwgMC45MDU0ODQsIDEuNjgwOTMsIDIuNDU1OSwgNC4yNjUzNiwgNS4yOTg0OSIsIFwKLSAgICAgICAgICAiMC40MDU4NTMsIDAuNDU3NzQxLCAwLjkyMzc2NSwgMS42OTkwNywgMi40NzQ0MSwgNC4yODM3MSwgNS4zMTY4MSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC42MjcyOTksIDAuNzI4MDI3LCAxLjYzNTQ3LCAzLjE0Nzk4LCA0LjY1OTE2LCA4LjE4NjUzLCAxMC4yMDMiLCBcCi0gICAgICAgICAgIjAuNjI3MTkxLCAwLjcyODAzNiwgMS42MzUxNCwgMy4xNDgwNywgNC42NTk4LCA4LjE4NzIzLCAxMC4yMDIyIiwgXAotICAgICAgICAgICIwLjYyNzI0MywgMC43MjgxMDIsIDEuNjM1MSwgMy4xNDc0NSwgNC42NTk2LCA4LjE4NzcyLCAxMC4yMDI0IiwgXAotICAgICAgICAgICIwLjYyNzIxOSwgMC43MjgwMDgsIDEuNjM1NTUsIDMuMTQ3MjMsIDQuNjU5MjMsIDguMTg3NTMsIDEwLjIwMjkiLCBcCi0gICAgICAgICAgIjAuNjI3MjMyLCAwLjcyNzk3LCAxLjYzNTE5LCAzLjE0Nzg4LCA0LjY1OTg2LCA4LjE4NzczLCAxMC4yMDMiLCBcCi0gICAgICAgICAgIjAuNjI3MjY2LCAwLjcyODExOCwgMS42MzU0OSwgMy4xNDc5OCwgNC42NTk4NiwgOC4xODY3NSwgMTAuMjAyOSIsIFwKLSAgICAgICAgICAiMC42Mjg3MjUsIDAuNzI4MzM0LCAxLjYzNTA2LCAzLjE0Nzg3LCA0LjY1ODk5LCA4LjE4NjU2LCAxMC4yMDI2Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjU4MzQwMiwgMC42NzMxNzMsIDEuNDc5MzEsIDIuODIyNTgsIDQuMTY0MzUsIDcuMjk0NjYsIDkuMDgzNDgiLCBcCi0gICAgICAgICAgIjAuNTk0NzU2LCAwLjY4NDUxMSwgMS40OTA4LCAyLjgzMzY5LCA0LjE3NTQ3LCA3LjMwNjA0LCA5LjA5NTA1IiwgXAotICAgICAgICAgICIwLjYwODk0NSwgMC42OTg2MjksIDEuNTA1NzYsIDIuODQ4NDksIDQuMTkwMzMsIDcuMzIwNTksIDkuMTA5NDciLCBcCi0gICAgICAgICAgIjAuNjIyODg2LCAwLjcxMjY3LCAxLjUxOTE2LCAyLjg2MjY5LCA0LjIwNCwgNy4zMzQ1OCwgOS4xMjM0MSIsIFwKLSAgICAgICAgICAiMC42MzY0NzEsIDAuNzI2Mjg3LCAxLjUzMzI3LCAyLjg3NjA0LCA0LjIxNzcsIDcuMzQ4MzEsIDkuMTM3MDgiLCBcCi0gICAgICAgICAgIjAuNjU3NTMxLCAwLjc0NzM3OSwgMS41NTQyOCwgMi44OTc0OCwgNC4yMzkxNywgNy4zNjk3NSwgOS4xNTg2IiwgXAotICAgICAgICAgICIwLjY3NTksIDAuNzY1NzQ2LCAxLjU3MzAyLCAyLjkxNjIsIDQuMjU3NzMsIDcuMzg4MjQsIDkuMTc3MDciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuOTkyNzg3LCAxLjE2MTIsIDIuNjcyODIsIDUuMTkxMTIsIDcuNzA1ODMsIDEzLjU2NCwgMTYuOTEyMyIsIFwKLSAgICAgICAgICAiMC45OTI3LCAxLjE2MDkxLCAyLjY3NTMxLCA1LjE5NjEzLCA3LjcwODMsIDEzLjU2NDUsIDE2LjkxMjQiLCBcCi0gICAgICAgICAgIjAuOTkyNzQ4LCAxLjE2MjM1LCAyLjY3MzcsIDUuMTkxMDEsIDcuNzA4MDksIDEzLjU2NDUsIDE2LjkxMjMiLCBcCi0gICAgICAgICAgIjAuOTkzMDg1LCAxLjE2MTIzLCAyLjY3NTU4LCA1LjE5MTksIDcuNzA3NzcsIDEzLjU2NDYsIDE2LjkxMjMiLCBcCi0gICAgICAgICAgIjAuOTkzMDMzLCAxLjE2MTI1LCAyLjY3MjQzLCA1LjE5NzIzLCA3LjcwNzc1LCAxMy41NjQ2LCAxNi45MTE4IiwgXAotICAgICAgICAgICIwLjk5MjcyOSwgMS4xNjA4NiwgMi42NzI4MiwgNS4xOTI3NCwgNy43MDc4MiwgMTMuNTY0NiwgMTYuOTEyMyIsIFwKLSAgICAgICAgICAiMC45OTI4MjIsIDEuMTYxNzUsIDIuNjcyNSwgNS4xOTE3NCwgNy43MDc5NCwgMTMuNTY0NiwgMTYuOTEyMyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzAyNDA3LCAwLjM1NDI5NiwgMC44MTk0NTUsIDEuNTk0NzcsIDIuMzcwMjYsIDQuMTc5MjIsIDUuMjEyMjYiLCBcCi0gICAgICAgICAgIjAuMzE0MTkyLCAwLjM2NjAxLCAwLjgzMTY5MiwgMS42MDY1NywgMi4zODE4LCA0LjE5MTAzLCA1LjIyNDA0IiwgXAotICAgICAgICAgICIwLjMyNzI0NSwgMC4zNzkxNSwgMC44NDQyNDYsIDEuNjE5NTMsIDIuMzk1MDgsIDQuMjA0MTYsIDUuMjM3MzciLCBcCi0gICAgICAgICAgIjAuMzQwMDI4LCAwLjM5MTU0OSwgMC44NTY5NSwgMS42MzI0LCAyLjQwNzc4LCA0LjIxNjU3LCA1LjI1MDA1IiwgXAotICAgICAgICAgICIwLjM1MjE0OSwgMC40MDQwMTIsIDAuODY5OTAyLCAxLjY0NDgyLCAyLjQyMDMzLCA0LjIyOTI4LCA1LjI2MjI5IiwgXAotICAgICAgICAgICIwLjM3MTQ0NCwgMC40MjM4NDEsIDAuODg5NTM0LCAxLjY2NDg0LCAyLjQ0MDIsIDQuMjQ5MywgNS4yODIzMiIsIFwKLSAgICAgICAgICAiMC4zODkyNjksIDAuNDQxMTc5LCAwLjkwNjgxOCwgMS42ODIyMiwgMi40NTc1MywgNC4yNjY2NSwgNS4yOTk4NyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC42MDkyNDgsIDAuNzA5NzE4LCAxLjYxNTgzLCAzLjEyNjY4LCA0LjYzODI4LCA4LjE2NDk2LCAxMC4xNzkxIiwgXAotICAgICAgICAgICIwLjYwOTEyNSwgMC43MDk3MDMsIDEuNjE1NjYsIDMuMTI2OTEsIDQuNjM4NTQsIDguMTY1ODIsIDEwLjE3OTYiLCBcCi0gICAgICAgICAgIjAuNjA5MTQsIDAuNzA5NzIyLCAxLjYxNTY4LCAzLjEyNzE4LCA0LjYzNzU5LCA4LjE2NTg5LCAxMC4xOCIsIFwKLSAgICAgICAgICAiMC42MDkxMjksIDAuNzA5NzIyLCAxLjYxNTc4LCAzLjEyNjkxLCA0LjYzNzY3LCA4LjE2NDc2LCAxMC4xOCIsIFwKLSAgICAgICAgICAiMC42MDkwODcsIDAuNzA5NzA2LCAxLjYxNTkyLCAzLjEyNjMsIDQuNjM4MiwgOC4xNjU4NywgMTAuMTgiLCBcCi0gICAgICAgICAgIjAuNjA5MjY0LCAwLjcwOTcwOSwgMS42MTU0OSwgMy4xMjY5NCwgNC42MzgzOCwgOC4xNjU3OSwgMTAuMTc5OSIsIFwKLSAgICAgICAgICAiMC42MTAzNTEsIDAuNzEwMDc1LCAxLjYxNTU1LCAzLjEyNjk5LCA0LjYzODUzLCA4LjE2NjA0LCAxMC4xOCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC41NTcxNzYsIDAuNjQ2NTU5LCAxLjQ1MDg3LCAyLjc4ODY1LCA0LjEyNTUzLCA3LjI1MDE3LCA5LjAzODk1IiwgXAotICAgICAgICAgICIwLjU2NzI0NSwgMC42NTY3MDgsIDEuNDYwNDEsIDIuNzk4NDQsIDQuMTM1NjMsIDcuMjYwMzEsIDkuMDQ5MSIsIFwKLSAgICAgICAgICAiMC41ODAzNTUsIDAuNjcwMDgxLCAxLjQ3NDAxLCAyLjgxMjEzLCA0LjE0ODg4LCA3LjI3MzYyLCA5LjA2MjQyIiwgXAotICAgICAgICAgICIwLjU5MjQ3MSwgMC42ODE5ODMsIDEuNDg1OTEsIDIuODI0MzgsIDQuMTYwOTksIDcuMjg1ODEsIDkuMDc0NjQiLCBcCi0gICAgICAgICAgIjAuNjA1MjI3LCAwLjY5NDgyLCAxLjQ5OTQzLCAyLjgzNzEzLCA0LjE3Mzg0LCA3LjI5ODUzLCA5LjA4NzM2IiwgXAotICAgICAgICAgICIwLjYyNTI2NCwgMC43MTQ4NTMsIDEuNTE4NywgMi44NTcxNCwgNC4xOTM5NSwgNy4zMTg3NiwgOS4xMDc1NSIsIFwKLSAgICAgICAgICAiMC42NDI4NTUsIDAuNzMyNDE5LCAxLjUzNzEzLCAyLjg3NDc3LCA0LjIxMTQyLCA3LjMzNjMyLCA5LjEyNTIyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIxLjAwOTE0LCAxLjE3NjQ5LCAyLjY4MzAxLCA1LjE5NTczLCA3LjcwODA0LCAxMy41NjQ3LCAxNi45MTIyIiwgXAotICAgICAgICAgICIxLjAwOTE1LCAxLjE3NjksIDIuNjg1NzcsIDUuMTk2MjcsIDcuNzA3OTEsIDEzLjU2NDcsIDE2LjkxMjMiLCBcCi0gICAgICAgICAgIjEuMDA5MzMsIDEuMTc2NzQsIDIuNjgyODgsIDUuMTkwOTgsIDcuNzA3ODQsIDEzLjU2NDYsIDE2LjkxMiIsIFwKLSAgICAgICAgICAiMS4wMTAwOSwgMS4xNzY3OSwgMi42ODI0OSwgNS4xOTA3OCwgNy43MDc2OCwgMTMuNTY0MiwgMTYuOTEyMyIsIFwKLSAgICAgICAgICAiMS4wMDkzNywgMS4xNzcsIDIuNjgyNTUsIDUuMTk1NDUsIDcuNzA3ODksIDEzLjU2NDYsIDE2LjkxMjMiLCBcCi0gICAgICAgICAgIjEuMDEwNDQsIDEuMTc2NDUsIDIuNjgyNDYsIDUuMTk1NjQsIDcuNzA3NjYsIDEzLjU2NDYsIDE2LjkxMjMiLCBcCi0gICAgICAgICAgIjEuMDEwNTgsIDEuMTc2NzEsIDIuNjgzMDUsIDUuMTk3MywgNy43MDc1LCAxMy41NjQzLCAxNi45MTIzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMxIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yOTYwMjIsIDAuMzQ4MDYxLCAwLjgxMzYyOSwgMS41ODg1NCwgMi4zNjM5NiwgNC4xNzI5MywgNS4yMDYxMSIsIFwKLSAgICAgICAgICAiMC4zMDY2MDEsIDAuMzU4NDc3LCAwLjgyNDE2MywgMS41OTkwMywgMi4zNzQzOCwgNC4xODM0NiwgNS4yMTY0OCIsIFwKLSAgICAgICAgICAiMC4zMTk1OTIsIDAuMzcxNTI3LCAwLjgzNjU5MSwgMS42MTIyMywgMi4zODc2NCwgNC4xOTY2MiwgNS4yMjk3NyIsIFwKLSAgICAgICAgICAiMC4zMzI2NDcsIDAuMzg0NDYxLCAwLjg0OTY2NiwgMS42MjUwNywgMi40MDA3MywgNC4yMDk3MSwgNS4yNDI4OSIsIFwKLSAgICAgICAgICAiMC4zNDU4NSwgMC4zOTc1MzgsIDAuODYyOTA3LCAxLjYzODE3LCAyLjQxMzY2LCA0LjIyMjgxLCA1LjI1NjAyIiwgXAotICAgICAgICAgICIwLjM2Njc0MSwgMC40MTgzNzksIDAuODgzODM3LCAxLjY1OTA5LCAyLjQzNDQ1LCA0LjI0MzY2LCA1LjI3Njk0IiwgXAotICAgICAgICAgICIwLjM4NDg5MiwgMC40MzY1MTQsIDAuOTAxOTI3LCAxLjY3NzQ0LCAyLjQ1MzA0LCA0LjI2MjAzLCA1LjI5NDk4Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjYwOTEzNywgMC43MDk4MzEsIDEuNjE1NjksIDMuMTI2OSwgNC42MzgxNywgOC4xNjQ5NSwgMTAuMTc5OSIsIFwKLSAgICAgICAgICAiMC42MDkyMzksIDAuNzA5NzEsIDEuNjE1NjksIDMuMTI2OTUsIDQuNjM4MzgsIDguMTY1ODEsIDEwLjE3OTUiLCBcCi0gICAgICAgICAgIjAuNjA5MTQ2LCAwLjcwOTY3NywgMS42MTU0MiwgMy4xMjcyOSwgNC42Mzc3MiwgOC4xNjQ0OCwgMTAuMTc5NyIsIFwKLSAgICAgICAgICAiMC42MDkxNDUsIDAuNzA5NzIsIDEuNjE1NjUsIDMuMTI2NDUsIDQuNjM4NTMsIDguMTY1OTIsIDEwLjE4IiwgXAotICAgICAgICAgICIwLjYwOTI0NiwgMC43MDk2ODIsIDEuNjE1NjcsIDMuMTI2MTksIDQuNjM3NzgsIDguMTY0NDcsIDEwLjE4IiwgXAotICAgICAgICAgICIwLjYwOTQzMiwgMC43MDk2NDIsIDEuNjE1NDMsIDMuMTI2MTEsIDQuNjM4NzksIDguMTY1OTUsIDEwLjE3OTEiLCBcCi0gICAgICAgICAgIjAuNjExNjA0LCAwLjcxMDUxLCAxLjYxNTc4LCAzLjEyNzI0LCA0LjYzNzY3LCA4LjE2NTU5LCAxMC4xNzg1Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjU0Mjk3MywgMC42MzI1MjMsIDEuNDM5NDcsIDIuNzgxNzQsIDQuMTIzOTgsIDcuMjU0NDgsIDkuMDQzMjciLCBcCi0gICAgICAgICAgIjAuNTUzODQ3LCAwLjY0MzQ1OCwgMS40NTA4MywgMi43OTI4OSwgNC4xMzUwMywgNy4yNjU1NywgOS4wNTQzNyIsIFwKLSAgICAgICAgICAiMC41NjY2OCwgMC42NTY0OTEsIDEuNDYzNzcsIDIuODA2NzMsIDQuMTQ4MjIsIDcuMjc4NzIsIDkuMDY3NTQiLCBcCi0gICAgICAgICAgIjAuNTc5MDgzLCAwLjY2ODg2OCwgMS40NzU4MSwgMi44MTkxLCA0LjE2MDU3LCA3LjI5MTI5LCA5LjA4MDE2IiwgXAotICAgICAgICAgICIwLjU5MTczOSwgMC42ODE2NDQsIDEuNDg5MTEsIDIuODMxNjIsIDQuMTczNDksIDcuMzA0MDUsIDkuMDkyOSIsIFwKLSAgICAgICAgICAiMC42MTE2ODMsIDAuNzAxNjEyLCAxLjUwODQ1LCAyLjg1MTgzLCA0LjE5MzQsIDcuMzI0MjgsIDkuMTEzMTEiLCBcCi0gICAgICAgICAgIjAuNjI5MTc2LCAwLjcxOTAzMywgMS41MjYyOCwgMi44Njk2MiwgNC4yMTE0OSwgNy4zNDE5MSwgOS4xMzA3NyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC45OTU3NjUsIDEuMTY1MDEsIDIuNjc2OTgsIDUuMTk5NjgsIDcuNzExMzcsIDEzLjU2ODIsIDE2LjkxNTQiLCBcCi0gICAgICAgICAgIjAuOTk1Nzk3LCAxLjE2MzY1LCAyLjY3NTQ4LCA1LjE5OTQ3LCA3LjcxMTI3LCAxMy41NjgxLCAxNi45MTU4IiwgXAotICAgICAgICAgICIwLjk5NTgwMywgMS4xNjM2MywgMi42NzU0MywgNS4xOTQ5OCwgNy43MTEyNiwgMTMuNTY4MSwgMTYuOTE1OCIsIFwKLSAgICAgICAgICAiMC45OTY1NTgsIDEuMTY0NzcsIDIuNjc4OCwgNS4xOTQwMywgNy43MTA5OSwgMTMuNTY3NSwgMTYuOTE1OCIsIFwKLSAgICAgICAgICAiMC45OTU5MzIsIDEuMTY0MTUsIDIuNjc1NDgsIDUuMTk2MDUsIDcuNzExMjMsIDEzLjU2ODEsIDE2LjkxNTgiLCBcCi0gICAgICAgICAgIjAuOTk1NDI3LCAxLjE2MzY0LCAyLjY3ODY0LCA1LjE5ODk3LCA3LjcxMDkxLCAxMy41NjgxLCAxNi45MTU4IiwgXAotICAgICAgICAgICIwLjk5NTQ2NSwgMS4xNjM2OCwgMi42NzU3NywgNS4xOTQyNCwgNy43MTE0MSwgMTMuNTY3OCwgMTYuOTE1OCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI4NzksIDAuMDAyODc5LCAwLjAwMjg3NywgMC4wMDI4NzMsIDAuMDAyODY5LCAwLjAwMjg2MSwgMC4wMDI4NTMiLCBcCi0gICAgICAgICAgIjAuMDAyODc0LCAwLjAwMjg3NCwgMC4wMDI4NzIsIDAuMDAyODY4LCAwLjAwMjg2NCwgMC4wMDI4NTQsIDAuMDAyODQ4IiwgXAotICAgICAgICAgICIwLjAwMjg3MSwgMC4wMDI4NzEsIDAuMDAyODcsIDAuMDAyODY2LCAwLjAwMjg2MywgMC4wMDI4NTIsIDAuMDAyODQ2IiwgXAotICAgICAgICAgICIwLjAwMjg3LCAwLjAwMjg3LCAwLjAwMjg2OCwgMC4wMDI4NjUsIDAuMDAyODYxLCAwLjAwMjg1MiwgMC4wMDI4NDUiLCBcCi0gICAgICAgICAgIjAuMDAyODcsIDAuMDAyODcsIDAuMDAyODY5LCAwLjAwMjg2NSwgMC4wMDI4NjEsIDAuMDAyODUxLCAwLjAwMjg0NSIsIFwKLSAgICAgICAgICAiMC4wMDI4NjgsIDAuMDAyODY5LCAwLjAwMjg2OCwgMC4wMDI4NjQsIDAuMDAyODYxLCAwLjAwMjg1MSwgMC4wMDI4NDQiLCBcCi0gICAgICAgICAgIjAuMDAyODY4LCAwLjAwMjg2NiwgMC4wMDI4NjcsIDAuMDAyODY0LCAwLjAwMjg2LCAwLjAwMjg1MSwgMC4wMDI4NDUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDA5ODYsIDAuMDAwOTg2LCAwLjAwMDk4NSwgMC4wMDA5ODIsIDAuMDAwOTgsIDAuMDAwOTc0LCAwLjAwMDk3IiwgXAotICAgICAgICAgICIwLjAwMDk3OSwgMC4wMDA5NzgsIDAuMDAwOTc4LCAwLjAwMDk3NiwgMC4wMDA5NzQsIDAuMDAwOTY4LCAwLjAwMDk2MyIsIFwKLSAgICAgICAgICAiMC4wMDA5NzYsIDAuMDAwOTc3LCAwLjAwMDk3NiwgMC4wMDA5NzQsIDAuMDAwOTczLCAwLjAwMDk2NiwgMC4wMDA5NjIiLCBcCi0gICAgICAgICAgIjAuMDAwOTc0LCAwLjAwMDk3NSwgMC4wMDA5NzUsIDAuMDAwOTczLCAwLjAwMDk3MSwgMC4wMDA5NjUsIDAuMDAwOTYxIiwgXAotICAgICAgICAgICIwLjAwMDk3MywgMC4wMDA5NzQsIDAuMDAwOTc1LCAwLjAwMDk3MywgMC4wMDA5NzEsIDAuMDAwOTY1LCAwLjAwMDk2MSIsIFwKLSAgICAgICAgICAiMC4wMDA5NzEsIDAuMDAwOTcyLCAwLjAwMDk3MywgMC4wMDA5NzIsIDAuMDAwOTcxLCAwLjAwMDk2NSwgMC4wMDA5NjEiLCBcCi0gICAgICAgICAgIjAuMDAwOTcsIDAuMDAwOTcxLCAwLjAwMDk3MywgMC4wMDA5NzIsIDAuMDAwOTcsIDAuMDAwOTY1LCAwLjAwMDk2MSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkExIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI3NDIsIDAuMDAyNzQyLCAwLjAwMjc0LCAwLjAwMjczNywgMC4wMDI3MzMsIDAuMDAyNzIzLCAwLjAwMjcxNyIsIFwKLSAgICAgICAgICAiMC4wMDI3MzcsIDAuMDAyNzM3LCAwLjAwMjczNCwgMC4wMDI3MzEsIDAuMDAyNzI4LCAwLjAwMjcxOSwgMC4wMDI3MTIiLCBcCi0gICAgICAgICAgIjAuMDAyNzM0LCAwLjAwMjczMywgMC4wMDI3MzIsIDAuMDAyNzI5LCAwLjAwMjcyNSwgMC4wMDI3MTcsIDAuMDAyNzA4IiwgXAotICAgICAgICAgICIwLjAwMjczMiwgMC4wMDI3MzIsIDAuMDAyNzMxLCAwLjAwMjcyNywgMC4wMDI3MjQsIDAuMDAyNzE0LCAwLjAwMjcwOCIsIFwKLSAgICAgICAgICAiMC4wMDI3MzEsIDAuMDAyNzMxLCAwLjAwMjczLCAwLjAwMjcyNywgMC4wMDI3MjQsIDAuMDAyNzEzLCAwLjAwMjcwNyIsIFwKLSAgICAgICAgICAiMC4wMDI3MjksIDAuMDAyNzI5LCAwLjAwMjcyOSwgMC4wMDI3MjYsIDAuMDAyNzIzLCAwLjAwMjcxMywgMC4wMDI3MDgiLCBcCi0gICAgICAgICAgIjAuMDAyNzI4LCAwLjAwMjcyOCwgMC4wMDI3MjgsIDAuMDAyNzI1LCAwLjAwMjcyMywgMC4wMDI3MTIsIDAuMDAyNzA1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwNzksIDAuMDAwNzg5LCAwLjAwMDc4OSwgMC4wMDA3ODgsIDAuMDAwNzg2LCAwLjAwMDc4MiwgMC4wMDA3NzkiLCBcCi0gICAgICAgICAgIjAuMDAwNzk0LCAwLjAwMDc5NCwgMC4wMDA3OTUsIDAuMDAwNzk0LCAwLjAwMDc5MywgMC4wMDA3ODksIDAuMDAwNzg2IiwgXAotICAgICAgICAgICIwLjAwMDc5MiwgMC4wMDA3OTMsIDAuMDAwNzk1LCAwLjAwMDc5NCwgMC4wMDA3OTQsIDAuMDAwNzksIDAuMDAwNzg3IiwgXAotICAgICAgICAgICIwLjAwMDc5LCAwLjAwMDc5MSwgMC4wMDA3OTQsIDAuMDAwNzk0LCAwLjAwMDc5MywgMC4wMDA3OSwgMC4wMDA3ODciLCBcCi0gICAgICAgICAgIjAuMDAwNzg4LCAwLjAwMDc4OSwgMC4wMDA3OTQsIDAuMDAwNzk0LCAwLjAwMDc5MywgMC4wMDA3OSwgMC4wMDA3ODciLCBcCi0gICAgICAgICAgIjAuMDAwNzg0LCAwLjAwMDc4NiwgMC4wMDA3OTIsIDAuMDAwNzkzLCAwLjAwMDc5MywgMC4wMDA3OSwgMC4wMDA3ODciLCBcCi0gICAgICAgICAgIjAuMDAwNzgxLCAwLjAwMDc4MywgMC4wMDA3OSwgMC4wMDA3OTIsIDAuMDAwNzkyLCAwLjAwMDc4OSwgMC4wMDA3ODciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyMzI2LCAwLjAwMjMyNiwgMC4wMDIzMjQsIDAuMDAyMzIzLCAwLjAwMjMyMSwgMC4wMDIzMTUsIDAuMDAyMzExIiwgXAotICAgICAgICAgICIwLjAwMjMyNSwgMC4wMDIzMjYsIDAuMDAyMzI0LCAwLjAwMjMyMiwgMC4wMDIzMiwgMC4wMDIzMTUsIDAuMDAyMzExIiwgXAotICAgICAgICAgICIwLjAwMjMyNSwgMC4wMDIzMjUsIDAuMDAyMzI0LCAwLjAwMjMyMiwgMC4wMDIzMjEsIDAuMDAyMzE1LCAwLjAwMjMxIiwgXAotICAgICAgICAgICIwLjAwMjMyNCwgMC4wMDIzMjQsIDAuMDAyMzI0LCAwLjAwMjMyMiwgMC4wMDIzMiwgMC4wMDIzMTUsIDAuMDAyMzExIiwgXAotICAgICAgICAgICIwLjAwMjMyMywgMC4wMDIzMjMsIDAuMDAyMzIzLCAwLjAwMjMyMiwgMC4wMDIzMiwgMC4wMDIzMTQsIDAuMDAyMzExIiwgXAotICAgICAgICAgICIwLjAwMjMyMSwgMC4wMDIzMjIsIDAuMDAyMzIyLCAwLjAwMjMyMiwgMC4wMDIzMTksIDAuMDAyMzE0LCAwLjAwMjMxMSIsIFwKLSAgICAgICAgICAiMC4wMDIzMjEsIDAuMDAyMzIsIDAuMDAyMzIyLCAwLjAwMjMyMSwgMC4wMDIzMTksIDAuMDAyMzE0LCAwLjAwMjMxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwOTg2LCAwLjAwMDk4NiwgMC4wMDA5ODUsIDAuMDAwOTgzLCAwLjAwMDk4MSwgMC4wMDA5NzUsIDAuMDAwOTciLCBcCi0gICAgICAgICAgIjAuMDAwOTc5LCAwLjAwMDk3OSwgMC4wMDA5NzgsIDAuMDAwOTc2LCAwLjAwMDk3NCwgMC4wMDA5NjgsIDAuMDAwOTYzIiwgXAotICAgICAgICAgICIwLjAwMDk3NiwgMC4wMDA5NzYsIDAuMDAwOTc2LCAwLjAwMDk3NSwgMC4wMDA5NzIsIDAuMDAwOTY2LCAwLjAwMDk2MiIsIFwKLSAgICAgICAgICAiMC4wMDA5NzUsIDAuMDAwOTc1LCAwLjAwMDk3NSwgMC4wMDA5NzQsIDAuMDAwOTcxLCAwLjAwMDk2NSwgMC4wMDA5NjEiLCBcCi0gICAgICAgICAgIjAuMDAwOTczLCAwLjAwMDk3NCwgMC4wMDA5NzQsIDAuMDAwOTczLCAwLjAwMDk3MSwgMC4wMDA5NjUsIDAuMDAwOTYxIiwgXAotICAgICAgICAgICIwLjAwMDk3MiwgMC4wMDA5NzIsIDAuMDAwOTczLCAwLjAwMDk3MiwgMC4wMDA5NzEsIDAuMDAwOTY1LCAwLjAwMDk2MSIsIFwKLSAgICAgICAgICAiMC4wMDA5NywgMC4wMDA5NzEsIDAuMDAwOTczLCAwLjAwMDk3MiwgMC4wMDA5NywgMC4wMDA5NjQsIDAuMDAwOTYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyMTgzLCAwLjAwMjE4MywgMC4wMDIxODIsIDAuMDAyMTgsIDAuMDAyMTc4LCAwLjAwMjE3MywgMC4wMDIxNjkiLCBcCi0gICAgICAgICAgIjAuMDAyMTgzLCAwLjAwMjE4MywgMC4wMDIxODIsIDAuMDAyMTgsIDAuMDAyMTc4LCAwLjAwMjE3MywgMC4wMDIxNjkiLCBcCi0gICAgICAgICAgIjAuMDAyMTgxLCAwLjAwMjE4MiwgMC4wMDIxODEsIDAuMDAyMTgsIDAuMDAyMTc4LCAwLjAwMjE3MiwgMC4wMDIxNjgiLCBcCi0gICAgICAgICAgIjAuMDAyMTgsIDAuMDAyMTgsIDAuMDAyMTgxLCAwLjAwMjE3OSwgMC4wMDIxNzcsIDAuMDAyMTcyLCAwLjAwMjE2OCIsIFwKLSAgICAgICAgICAiMC4wMDIxNzksIDAuMDAyMTc5LCAwLjAwMjE4LCAwLjAwMjE3OSwgMC4wMDIxNzcsIDAuMDAyMTcyLCAwLjAwMjE2NyIsIFwKLSAgICAgICAgICAiMC4wMDIxNzcsIDAuMDAyMTc4LCAwLjAwMjE4LCAwLjAwMjE3OSwgMC4wMDIxNzcsIDAuMDAyMTcxLCAwLjAwMjE2OCIsIFwKLSAgICAgICAgICAiMC4wMDIxNzYsIDAuMDAyMTc3LCAwLjAwMjE3OSwgMC4wMDIxNzgsIDAuMDAyMTc2LCAwLjAwMjE3MSwgMC4wMDIxNjciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDA3NTksIDAuMDAwNzU5LCAwLjAwMDc1OCwgMC4wMDA3NTcsIDAuMDAwNzU2LCAwLjAwMDc1MiwgMC4wMDA3NDkiLCBcCi0gICAgICAgICAgIjAuMDAwNzYzLCAwLjAwMDc2MywgMC4wMDA3NjQsIDAuMDAwNzYzLCAwLjAwMDc2MiwgMC4wMDA3NTgsIDAuMDAwNzU2IiwgXAotICAgICAgICAgICIwLjAwMDc2MSwgMC4wMDA3NjIsIDAuMDAwNzY0LCAwLjAwMDc2NCwgMC4wMDA3NjMsIDAuMDAwNzYsIDAuMDAwNzU3IiwgXAotICAgICAgICAgICIwLjAwMDc1OSwgMC4wMDA3NiwgMC4wMDA3NjMsIDAuMDAwNzY0LCAwLjAwMDc2MywgMC4wMDA3NiwgMC4wMDA3NTciLCBcCi0gICAgICAgICAgIjAuMDAwNzU3LCAwLjAwMDc1OCwgMC4wMDA3NjMsIDAuMDAwNzYzLCAwLjAwMDc2MywgMC4wMDA3NTksIDAuMDAwNzU3IiwgXAotICAgICAgICAgICIwLjAwMDc1MywgMC4wMDA3NTUsIDAuMDAwNzYxLCAwLjAwMDc2MiwgMC4wMDA3NjIsIDAuMDAwNzYsIDAuMDAwNzU3IiwgXAotICAgICAgICAgICIwLjAwMDc1LCAwLjAwMDc1MiwgMC4wMDA3NiwgMC4wMDA3NjIsIDAuMDAwNzYyLCAwLjAwMDc1OSwgMC4wMDA3NTciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDMCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxNjI5LCAwLjAwMTYyOSwgMC4wMDE2MjgsIDAuMDAxNjI4LCAwLjAwMTYyOSwgMC4wMDE2MjksIDAuMDAxNjI4IiwgXAotICAgICAgICAgICIwLjAwMTYzMywgMC4wMDE2MzQsIDAuMDAxNjM1LCAwLjAwMTYzNCwgMC4wMDE2MzQsIDAuMDAxNjMyLCAwLjAwMTYzNCIsIFwKLSAgICAgICAgICAiMC4wMDE2MzMsIDAuMDAxNjM0LCAwLjAwMTYzNSwgMC4wMDE2MzYsIDAuMDAxNjM2LCAwLjAwMTYzNiwgMC4wMDE2MzYiLCBcCi0gICAgICAgICAgIjAuMDAxNjMzLCAwLjAwMTYzNCwgMC4wMDE2MzYsIDAuMDAxNjM2LCAwLjAwMTYzNywgMC4wMDE2MzcsIDAuMDAxNjM3IiwgXAotICAgICAgICAgICIwLjAwMTYzMiwgMC4wMDE2MzMsIDAuMDAxNjM2LCAwLjAwMTYzNywgMC4wMDE2MzcsIDAuMDAxNjM4LCAwLjAwMTYzNyIsIFwKLSAgICAgICAgICAiMC4wMDE2MzEsIDAuMDAxNjMyLCAwLjAwMTYzNiwgMC4wMDE2MzcsIDAuMDAxNjM3LCAwLjAwMTYzOCwgMC4wMDE2MzgiLCBcCi0gICAgICAgICAgIjAuMDAxNjMsIDAuMDAxNjMxLCAwLjAwMTYzNSwgMC4wMDE2MzcsIDAuMDAxNjM3LCAwLjAwMTYzOCwgMC4wMDE2MzgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDA5ODUsIDAuMDAwOTg1LCAwLjAwMDk4NCwgMC4wMDA5ODIsIDAuMDAwOTgsIDAuMDAwOTczLCAwLjAwMDk3IiwgXAotICAgICAgICAgICIwLjAwMDk3OCwgMC4wMDA5NzgsIDAuMDAwOTc4LCAwLjAwMDk3NiwgMC4wMDA5NzQsIDAuMDAwOTY3LCAwLjAwMDk2MyIsIFwKLSAgICAgICAgICAiMC4wMDA5NzYsIDAuMDAwOTc2LCAwLjAwMDk3NiwgMC4wMDA5NzQsIDAuMDAwOTcyLCAwLjAwMDk2NiwgMC4wMDA5NjIiLCBcCi0gICAgICAgICAgIjAuMDAwOTc0LCAwLjAwMDk3NCwgMC4wMDA5NzUsIDAuMDAwOTczLCAwLjAwMDk3MSwgMC4wMDA5NjYsIDAuMDAwOTYxIiwgXAotICAgICAgICAgICIwLjAwMDk3MiwgMC4wMDA5NzMsIDAuMDAwOTc0LCAwLjAwMDk3MywgMC4wMDA5NzEsIDAuMDAwOTY1LCAwLjAwMDk2MSIsIFwKLSAgICAgICAgICAiMC4wMDA5NywgMC4wMDA5NzEsIDAuMDAwOTczLCAwLjAwMDk3MiwgMC4wMDA5NywgMC4wMDA5NjQsIDAuMDAwOTYiLCBcCi0gICAgICAgICAgIjAuMDAwOTY5LCAwLjAwMDk2OSwgMC4wMDA5NzIsIDAuMDAwOTcyLCAwLjAwMDk3LCAwLjAwMDk2NSwgMC4wMDA5NiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMxIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDE0OTEsIDAuMDAxNDkxLCAwLjAwMTQ5MiwgMC4wMDE0OTIsIDAuMDAxNDkyLCAwLjAwMTQ5MSwgMC4wMDE0OTEiLCBcCi0gICAgICAgICAgIjAuMDAxNDk1LCAwLjAwMTQ5NSwgMC4wMDE0OTYsIDAuMDAxNDk3LCAwLjAwMTQ5NywgMC4wMDE0OTcsIDAuMDAxNDk2IiwgXAotICAgICAgICAgICIwLjAwMTQ5NSwgMC4wMDE0OTYsIDAuMDAxNDk4LCAwLjAwMTQ5OSwgMC4wMDE0OTgsIDAuMDAxNDk5LCAwLjAwMTQ5OSIsIFwKLSAgICAgICAgICAiMC4wMDE0OTQsIDAuMDAxNDk1LCAwLjAwMTQ5OCwgMC4wMDE0OTksIDAuMDAxNDk5LCAwLjAwMTUsIDAuMDAxNSIsIFwKLSAgICAgICAgICAiMC4wMDE0OTMsIDAuMDAxNDk0LCAwLjAwMTQ5OCwgMC4wMDE0OTksIDAuMDAxNSwgMC4wMDE1LCAwLjAwMTUiLCBcCi0gICAgICAgICAgIjAuMDAxNDkyLCAwLjAwMTQ5MywgMC4wMDE0OTcsIDAuMDAxNDk5LCAwLjAwMTUsIDAuMDAxNSwgMC4wMDE1IiwgXAotICAgICAgICAgICIwLjAwMTQ5LCAwLjAwMTQ5MiwgMC4wMDE0OTcsIDAuMDAxNDk5LCAwLjAwMTUsIDAuMDAxNSwgMC4wMDE1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwODA5LCAwLjAwMDgxLCAwLjAwMDgwOSwgMC4wMDA4MDgsIDAuMDAwODA2LCAwLjAwMDgwMiwgMC4wMDA3OTkiLCBcCi0gICAgICAgICAgIjAuMDAwODEzLCAwLjAwMDgxNCwgMC4wMDA4MTUsIDAuMDAwODE0LCAwLjAwMDgxMiwgMC4wMDA4MDgsIDAuMDAwODA1IiwgXAotICAgICAgICAgICIwLjAwMDgxMSwgMC4wMDA4MTIsIDAuMDAwODE0LCAwLjAwMDgxNCwgMC4wMDA4MTMsIDAuMDAwODA5LCAwLjAwMDgwNiIsIFwKLSAgICAgICAgICAiMC4wMDA4MDksIDAuMDAwODEsIDAuMDAwODE0LCAwLjAwMDgxNCwgMC4wMDA4MTMsIDAuMDAwODA5LCAwLjAwMDgwNiIsIFwKLSAgICAgICAgICAiMC4wMDA4MDYsIDAuMDAwODA4LCAwLjAwMDgxMywgMC4wMDA4MTQsIDAuMDAwODEzLCAwLjAwMDgwOSwgMC4wMDA4MDYiLCBcCi0gICAgICAgICAgIjAuMDAwODAzLCAwLjAwMDgwNCwgMC4wMDA4MTEsIDAuMDAwODEzLCAwLjAwMDgxMiwgMC4wMDA4MDksIDAuMDAwODA2IiwgXAotICAgICAgICAgICIwLjAwMDgsIDAuMDAwODAyLCAwLjAwMDgxLCAwLjAwMDgxMiwgMC4wMDA4MTIsIDAuMDAwODA5LCAwLjAwMDgwNiIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogWE9SM1gxICoKLSAqIC0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoWE9SM1gxKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMzAxNzM1OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA3NTQyMjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA3NTM1MDI7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNzU0MjI7Ci0gIH0KLSAgcGluKEIpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMjExNzExOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMjExNjI5OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMjExNzExOwotICB9Ci0gIHBpbihDKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDEzNTA1OTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDEzNDk3OTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDEzNTA1OTsKLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjA5MjU5NzY7Ci0gICAgZnVuY3Rpb24gOiAiKChBXkIpXkMpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMjAxODQsIDAuMzY2NDk2LCAwLjYxMDkzMywgMC44MjQyOTgsIDEuMTA4ODcsIDEuNjc4MTcsIDIuMDMzNTEiLCBcCi0gICAgICAgICAgIjAuMzMxNzU0LCAwLjM3ODA2NSwgMC42MjI0OTksIDAuODM1ODg4LCAxLjEyMDQ0LCAxLjY4OTcyLCAyLjA0NTA1IiwgXAotICAgICAgICAgICIwLjM0NjU5MywgMC4zOTI5MDksIDAuNjM3MzM1LCAwLjg1MDczLCAxLjEzNTI5LCAxLjcwNDYyLCAyLjA1OTkxIiwgXAotICAgICAgICAgICIwLjM2MTMxNywgMC40MDc2MzYsIDAuNjUyMDY1LCAwLjg2NTQ2MiwgMS4xNTAwMiwgMS43MTkzNCwgMi4wNzQ2NiIsIFwKLSAgICAgICAgICAiMC4zNzYwMDksIDAuNDIyMzE0LCAwLjY2Njc4MSwgMC44ODAxNzIsIDEuMTY0NzEsIDEuNzMzOTQsIDIuMDg5NzMiLCBcCi0gICAgICAgICAgIjAuNDAwMDg1LCAwLjQ0NjM4MiwgMC42OTA4NTcsIDAuOTA0MjY3LCAxLjE4ODc1LCAxLjc1ODMxLCAyLjExMzQ0IiwgXAotICAgICAgICAgICIwLjQyMDU3NCwgMC40NjY5MjcsIDAuNzExMzcsIDAuOTI0NzcxLCAxLjIwOTM0LCAxLjc3ODY2LCAyLjEzMzk5Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE4NDA0MSwgMC4yNjYxMDksIDAuNzQ1MTc5LCAxLjE3NzU5LCAxLjc1Njg3LCAyLjkxMDY1LCAzLjY0MjUzIiwgXAotICAgICAgICAgICIwLjE4NDAxNywgMC4yNjYwOTYsIDAuNzQ0OTM4LCAxLjE3NTI2LCAxLjc1NjgzLCAyLjkxNzYxLCAzLjY0MjM0IiwgXAotICAgICAgICAgICIwLjE4NDAzMiwgMC4yNjYxMSwgMC43NDQ5MjksIDEuMTc2OTgsIDEuNzU2ODcsIDIuOTEwMzcsIDMuNjQyMjUiLCBcCi0gICAgICAgICAgIjAuMTg0MDM4LCAwLjI2NjExNiwgMC43NDQ3MDQsIDEuMTc2ODgsIDEuNzU2ODUsIDIuOTEwMzksIDMuNjQyMjUiLCBcCi0gICAgICAgICAgIjAuMTg0MDksIDAuMjY2MDMzLCAwLjc0NDkzNSwgMS4xNzU4NiwgMS43NTY3NSwgMi45MTIxLCAzLjYzNDY0IiwgXAotICAgICAgICAgICIwLjE4NDA2OSwgMC4yNjYxNTMsIDAuNzQ2MDA3LCAxLjE3NzM3LCAxLjc1NjU0LCAyLjkxMDE5LCAzLjY0MzUyIiwgXAotICAgICAgICAgICIwLjE4NDA1NywgMC4yNjYxNTEsIDAuNzQ1MzgzLCAxLjE3Njg5LCAxLjc1Njg0LCAyLjkxMDQsIDMuNjQyMjMiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzAzODU0LCAwLjM2NzIyOSwgMC43MTc1NzUsIDEuMDI1OTcsIDEuNDM3NDUsIDIuMjYwODksIDIuNzczOTciLCBcCi0gICAgICAgICAgIjAuMzE1MTg1LCAwLjM3ODU2MiwgMC43Mjg5MTEsIDEuMDM3MywgMS40NDkwNywgMi4yNzIyMSwgMi43ODUzIiwgXAotICAgICAgICAgICIwLjMyOTYzNiwgMC4zOTMwMjIsIDAuNzQzMzc2LCAxLjA1MTc5LCAxLjQ2MzE0LCAyLjI4NjY0LCAyLjc5OTc3IiwgXAotICAgICAgICAgICIwLjM0Mzg4OCwgMC40MDcyNzEsIDAuNzU3NjMsIDEuMDY2MDMsIDEuNDc3NjcsIDIuMjk5NjksIDIuODE0MDQiLCBcCi0gICAgICAgICAgIjAuMzU4MTU1LCAwLjQyMTU1LCAwLjc3MTkxMywgMS4wODA0MywgMS40OTE5OCwgMi4zMTQ5MywgMi44Mjg1NCIsIFwKLSAgICAgICAgICAiMC4zODA3MzgsIDAuNDQ0MTIzLCAwLjc5NDUwOCwgMS4xMDMwMywgMS41MTQ1OSwgMi4zMzc1MywgMi44NTExNSIsIFwKLSAgICAgICAgICAiMC4zOTk4NzEsIDAuNDYzMjUyLCAwLjgxMzY0NiwgMS4xMjIxOCwgMS41MzM3MywgMi4zNTY2NSwgMi44NzAzNyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMzc5MDksIDAuMzU1NTk4LCAxLjA0MjA0LCAxLjY1NDE1LCAyLjQ2NDc0LCA0LjEwMjIzLCA1LjExNDEiLCBcCi0gICAgICAgICAgIjAuMjM4MDY1LCAwLjM1NTU4MywgMS4wNDIwNCwgMS42NTQxNSwgMi40NjUwMiwgNC4xMDIxOSwgNS4xMTM5NSIsIFwKLSAgICAgICAgICAiMC4yMzc5MTcsIDAuMzU1NzgyLCAxLjA0MjA1LCAxLjY1NDE4LCAyLjQ2NjU2LCA0LjEwMjE4LCA1LjExNDIzIiwgXAotICAgICAgICAgICIwLjIzNzg5OSwgMC4zNTU4NTIsIDEuMDQyMDYsIDEuNjU0MTUsIDIuNDcxODksIDQuMTA0MjIsIDUuMTEyOCIsIFwKLSAgICAgICAgICAiMC4yMzc5MjIsIDAuMzU1OTQ5LCAxLjAzOTUxLCAxLjY1NDA2LCAyLjQ2OTk3LCA0LjA5NTIzLCA1LjExMzczIiwgXAotICAgICAgICAgICIwLjIzNzk0MSwgMC4zNTU4NDQsIDEuMDQwNDcsIDEuNjU0MDYsIDIuNDY4MTUsIDQuMDk4MiwgNS4xMTM3IiwgXAotICAgICAgICAgICIwLjIzNzk4MiwgMC4zNTU4MjYsIDEuMDQxNDMsIDEuNjU0MDgsIDIuNDY4MjMsIDQuMDk1MjYsIDUuMTE1MDYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzg5MTQzLCAwLjQzNTUzMywgMC42ODAxNzIsIDAuODkzNTY2LCAxLjE3ODAxLCAxLjc0NzEsIDIuMTAzNjUiLCBcCi0gICAgICAgICAgIjAuNDAwNTQ3LCAwLjQ0Njk1OSwgMC42OTE1MTMsIDAuOTA0OTQzLCAxLjE4OTUxLCAxLjc1ODgyLCAyLjExNDEzIiwgXAotICAgICAgICAgICIwLjQxNTQ2NywgMC40NjE4NTIsIDAuNzA2NDk4LCAwLjkxOTg1NywgMS4yMDQ0MywgMS43NzM2NywgMi4xMjkyNCIsIFwKLSAgICAgICAgICAiMC40MzAzODcsIDAuNDc2Nzc3LCAwLjcyMTQxNiwgMC45MzQ4MSwgMS4yMTkyNSwgMS43ODgzMywgMi4xNDQ3OSIsIFwKLSAgICAgICAgICAiMC40NDUwNTcsIDAuNDkxNDQxLCAwLjczNjA4NSwgMC45NDk0NjksIDEuMjM0MDIsIDEuODAzMjYsIDIuMTU4NzgiLCBcCi0gICAgICAgICAgIjAuNDY4MDgxLCAwLjUxNDQ5OSwgMC43NTkxMzQsIDAuOTcyNTI0LCAxLjI1Njk3LCAxLjgyNiwgMi4xODE5NSIsIFwKLSAgICAgICAgICAiMC40ODcxNzMsIDAuNTMzNTQ5LCAwLjc3ODE5MywgMC45OTE1NDYsIDEuMjc2MTMsIDEuODQ1NDEsIDIuMjAwNzUiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTg0OTkzLCAwLjI2NzAzNiwgMC43NDY1NzEsIDEuMTc1NjcsIDEuNzU2NjcsIDIuOTE3NjgsIDMuNjQyMzciLCBcCi0gICAgICAgICAgIjAuMTg1MTkzLCAwLjI2NzEyMiwgMC43NDY0MTYsIDEuMTc1NjYsIDEuNzU3MDgsIDIuOTEwNjYsIDMuNjQyNTMiLCBcCi0gICAgICAgICAgIjAuMTg1MTkxLCAwLjI2NzA2LCAwLjc0NjUzNywgMS4xNzYyMSwgMS43NTcsIDIuOTExMTEsIDMuNjM2NzIiLCBcCi0gICAgICAgICAgIjAuMTg0OTkxLCAwLjI2NzAzNiwgMC43NDY1NDcsIDEuMTc1NjQsIDEuNzU2MzcsIDIuOTE3NjMsIDMuNjM0NSIsIFwKLSAgICAgICAgICAiMC4xODUxODQsIDAuMjY3MDU4LCAwLjc0NjUxOCwgMS4xNzU4MSwgMS43NTcsIDIuOTEwOTcsIDMuNjM1MjIiLCBcCi0gICAgICAgICAgIjAuMTg1MTk1LCAwLjI2NzA3MywgMC43NDY1NTksIDEuMTc1NTEsIDEuNzU2MTksIDIuOTE3NDIsIDMuNjM0MzUiLCBcCi0gICAgICAgICAgIjAuMTg1MTg0LCAwLjI2NzAyMywgMC43NDY1MjMsIDEuMTc3NzgsIDEuNzU3MDQsIDIuOTE1MTQsIDMuNjQyNCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC40MjAyNjcsIDAuNDg0Mzk0LCAwLjgzNTIyNiwgMS4xNDM2NSwgMS41NTQ5NCwgMi4zNzc3NywgMi44OTIwNCIsIFwKLSAgICAgICAgICAiMC40MzE3MzEsIDAuNDk1OSwgMC44NDY3MzMsIDEuMTU1MSwgMS41NjY1LCAyLjM4OTMxLCAyLjkwMzUzIiwgXAotICAgICAgICAgICIwLjQ0NjcxMiwgMC41MTA4NywgMC44NjE3MDIsIDEuMTcwMTYsIDEuNTgxNCwgMi40MDQwNSwgMi45MTgzOCIsIFwKLSAgICAgICAgICAiMC40NjE2MzEsIDAuNTI1Nzc5LCAwLjg3NjYwNiwgMS4xODUwOCwgMS41OTY0LCAyLjQyMDA2LCAyLjkzMzAyIiwgXAotICAgICAgICAgICIwLjQ3NzAwMywgMC41NDExMTQsIDAuODkxOTQ5LCAxLjIwMDM3LCAxLjYxMTY0LCAyLjQzNDUxLCAyLjk0ODU3IiwgXAotICAgICAgICAgICIwLjUwMTA4NSwgMC41NjUyMzQsIDAuOTE2MDY1LCAxLjIyNDU0LCAxLjYzNTg1LCAyLjQ1OTUzLCAyLjk3MjgzIiwgXAotICAgICAgICAgICIwLjUyMTk4MSwgMC41ODYxMzIsIDAuOTM2OTYyLCAxLjI0NTQzLCAxLjY1Njc0LCAyLjQ4MDQyLCAyLjk5MzY1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI0MzUzMiwgMC4zNjAzMTMsIDEuMDQ0NTMsIDEuNjU1MjQsIDIuNDY2OTgsIDQuMTAzNTYsIDUuMTE0NjUiLCBcCi0gICAgICAgICAgIjAuMjQzNzMzLCAwLjM2MDMzNywgMS4wNDQ0NiwgMS42NTUzMiwgMi40Njk2NSwgNC4xMDEzNCwgNS4xMTU0NyIsIFwKLSAgICAgICAgICAiMC4yNDM3MzcsIDAuMzYwNDkxLCAxLjA0NDA5LCAxLjY1NTI1LCAyLjQ2NjM0LCA0LjA5OTU1LCA1LjExNDI3IiwgXAotICAgICAgICAgICIwLjI0MzYxOCwgMC4zNjAzNjMsIDEuMDQ0NDQsIDEuNjU1MjgsIDIuNDcwMDQsIDQuMDk5MjMsIDUuMTE2MzciLCBcCi0gICAgICAgICAgIjAuMjQzNTQ0LCAwLjM2MDI2MywgMS4wNDQwOSwgMS42NTUyNSwgMi40NjY1NywgNC4xMDI2OSwgNS4xMTY0NiIsIFwKLSAgICAgICAgICAiMC4yNDM2MjUsIDAuMzYwMzY1LCAxLjA0NDQyLCAxLjY1NTI4LCAyLjQ3MDA3LCA0LjEwMjAzLCA1LjExNTA4IiwgXAotICAgICAgICAgICIwLjI0MzYxNiwgMC4zNjAzNjIsIDEuMDQ0NDIsIDEuNjU1MjgsIDIuNDcwMDUsIDQuMTAyMjcsIDUuMTE1NTEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjg3MDY0LCAwLjMzMzA3MiwgMC41NzcxODksIDAuNzkwNTY1LCAxLjA3NTA4LCAxLjY0NDI1LCAxLjk5OTg5IiwgXAotICAgICAgICAgICIwLjI5ODIxOSwgMC4zNDQyMzgsIDAuNTg4MjkxLCAwLjgwMTcwOSwgMS4wODYyNCwgMS42NTU0MywgMi4wMTEwNyIsIFwKLSAgICAgICAgICAiMC4zMTE2MjMsIDAuMzU3NzI4LCAwLjYwMTgwOSwgMC44MTUxODYsIDEuMDk5NzksIDEuNjY5MSwgMi4wMjQzMyIsIFwKLSAgICAgICAgICAiMC4zMjUyMDcsIDAuMzcxMjI4LCAwLjYxNTM0OSwgMC44Mjg3MDgsIDEuMTEzMjUsIDEuNjgyNDMsIDIuMDM4MSIsIFwKLSAgICAgICAgICAiMC4zMzgzOTIsIDAuMzg0MzY0LCAwLjYyODU1MSwgMC44NDE5MjYsIDEuMTI2MzcsIDEuNjk1NDUsIDIuMDUxMzIiLCBcCi0gICAgICAgICAgIjAuMzU5MjQ5LCAwLjQwNTM2NiwgMC42NDk0MzIsIDAuODYyODQ5LCAxLjE0NzMzLCAxLjcxNjM2LCAyLjA3MjAyIiwgXAotICAgICAgICAgICIwLjM3NzMxOCwgMC40MjMzMjEsIDAuNjY3NTA0LCAwLjg4MDg4NCwgMS4xNjU0LCAxLjczNDUzLCAyLjA5MDE5Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE4MzgwMSwgMC4yNjU5NywgMC43NDYwMjEsIDEuMTc1NCwgMS43NTY5MiwgMi45MTA2OSwgMy42NDI0OCIsIFwKLSAgICAgICAgICAiMC4xODM3OTYsIDAuMjY1ODgyLCAwLjc0NjAyNywgMS4xNzUzNCwgMS43NTY3OCwgMi45MTA2NiwgMy42MzcwNCIsIFwKLSAgICAgICAgICAiMC4xODM4LCAwLjI2NTk1LCAwLjc0NTkxOCwgMS4xNzU2OCwgMS43NTY4MywgMi45MTA3MSwgMy42NDI1NSIsIFwKLSAgICAgICAgICAiMC4xODM3NjIsIDAuMjY1OTUsIDAuNzQ2MDk1LCAxLjE3NTMyLCAxLjc1OTI2LCAyLjkxMjI0LCAzLjY0MzUiLCBcCi0gICAgICAgICAgIjAuMTgzNzYzLCAwLjI2NTk0NSwgMC43NDYwNTksIDEuMTc1MzUsIDEuNzU2LCAyLjkxNjY3LCAzLjYzMzM0IiwgXAotICAgICAgICAgICIwLjE4Mzc4MSwgMC4yNjU4NzksIDAuNzQ1OTQzLCAxLjE3NTIsIDEuNzU2NDUsIDIuOTE3NTQsIDMuNjQyNDMiLCBcCi0gICAgICAgICAgIjAuMTgzNzc1LCAwLjI2NTkzNywgMC43NDU5NTYsIDEuMTc1NzUsIDEuNzU2NjQsIDIuOTE3MjEsIDMuNjM0OTciKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzA4MTE1LCAwLjM3MjI5OSwgMC43MjMxMDMsIDEuMDMxNTYsIDEuNDQyODUsIDIuMjY2NTIsIDIuNzc5ODYiLCBcCi0gICAgICAgICAgIjAuMzE5MjU2LCAwLjM4MzQzLCAwLjczNDE3MiwgMS4wNDI2NywgMS40NTM4OCwgMi4yNzY2LCAyLjc5MTA0IiwgXAotICAgICAgICAgICIwLjMzMjczNiwgMC4zOTY5MzQsIDAuNzQ3NzQyLCAxLjA1NjIsIDEuNDY3NDksIDIuMjkxMTUsIDIuODA0NTgiLCBcCi0gICAgICAgICAgIjAuMzQ1NDg0LCAwLjQwOTY2LCAwLjc2MDQwMywgMS4wNjg5LCAxLjQ4MDA4LCAyLjMwMzEsIDIuODE3MjUiLCBcCi0gICAgICAgICAgIjAuMzU4MzM4LCAwLjQyMjUyNiwgMC43NzMzNDQsIDEuMDgxODEsIDEuNDkzMSwgMi4zMTY3NywgMi44MzAxOSIsIFwKLSAgICAgICAgICAiMC4zNzg3MjIsIDAuNDQyODgxLCAwLjc5MzcyMiwgMS4xMDIxNCwgMS41MTM0NSwgMi4zMzcxMywgMi44NTA4IiwgXAotICAgICAgICAgICIwLjM5NjA4NSwgMC40NjAyMzYsIDAuODExMDkzLCAxLjExOTU2LCAxLjUzMDc5LCAyLjM1MzQ1LCAyLjg2Nzc4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI0Mzg1MywgMC4zNjA1LCAxLjA0NDQ1LCAxLjY1NTMsIDIuNDcwMTEsIDQuMTAxOTYsIDUuMTE0MTkiLCBcCi0gICAgICAgICAgIjAuMjQzOTk2LCAwLjM2MDU0LCAxLjA0MTczLCAxLjY1NTI4LCAyLjQ2NzE2LCA0LjEwMDc1LCA1LjExNDciLCBcCi0gICAgICAgICAgIjAuMjQzODk2LCAwLjM2MDUxNCwgMS4wNDQ0NSwgMS42NTUzLCAyLjQ3MDE1LCA0LjEwMTI4LCA1LjExNTk4IiwgXAotICAgICAgICAgICIwLjI0NDA1LCAwLjM2MDUyNywgMS4wNDM2NywgMS42NTUyOCwgMi40NjY2MiwgNC4xMDE0OSwgNS4xMTQ2MyIsIFwKLSAgICAgICAgICAiMC4yNDM5MjcsIDAuMzYwNTcxLCAxLjA0NDQ3LCAxLjY1NTMsIDIuNDcwMTcsIDQuMTAyNjYsIDUuMTE2MzQiLCBcCi0gICAgICAgICAgIjAuMjQzOTQ4LCAwLjM2MDU3NSwgMS4wNDQ0NiwgMS42NTM5NywgMi40Njc2MSwgNC4wOTcyOSwgNS4xMTI3IiwgXAotICAgICAgICAgICIwLjI0NDExOSwgMC4zNjA1NDIsIDEuMDQyNjksIDEuNjU1MjgsIDIuNDY3MTMsIDQuMDk5NTgsIDUuMTE0MjciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjk4Mjk1LCAwLjM0NDY3NiwgMC41ODkzMDUsIDAuODAyNjY3LCAxLjA4NzI0LCAxLjY1NjUxLCAyLjAxMTgzIiwgXAotICAgICAgICAgICIwLjMwOTg1MSwgMC4zNTYyMzcsIDAuNjAwODc0LCAwLjgxNDI2MiwgMS4wOTg3OSwgMS42Njc5NywgMi4wMjQzMSIsIFwKLSAgICAgICAgICAiMC4zMjM5MzksIDAuMzcwMzI0LCAwLjYxNDk1OCwgMC44MjgzNDcsIDEuMTEyODgsIDEuNjgyMTUsIDIuMDM4MDEiLCBcCi0gICAgICAgICAgIjAuMzM3NTczLCAwLjM4Mzk2MiwgMC42Mjg1NTksIDAuODQxOTE0LCAxLjEyNjUsIDEuNjk1NzcsIDIuMDUxMTIiLCBcCi0gICAgICAgICAgIjAuMzUxLCAwLjM5NzM4NSwgMC42NDE5ODMsIDAuODU1MzM5LCAxLjEzOTkyLCAxLjcwOTIsIDIuMDY0NTQiLCBcCi0gICAgICAgICAgIjAuMzcxNDczLCAwLjQxNzk2NywgMC42NjI1MTQsIDAuODc1OTAyLCAxLjE2MDQyLCAxLjcyOTcxLCAyLjA4NTA4IiwgXAotICAgICAgICAgICIwLjM4NzkwNSwgMC40MzQyNzksIDAuNjc4OTEzLCAwLjg5MjI4NywgMS4xNzY4NiwgMS43NDYxOCwgMi4xMDE0NiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xODUxOTksIDAuMjY3MDY2LCAwLjc0NjU0NSwgMS4xNzc4NCwgMS43NTcwMiwgMi45MTA3LCAzLjY0MjM0IiwgXAotICAgICAgICAgICIwLjE4NTIwMSwgMC4yNjcwNjMsIDAuNzQ2NTE4LCAxLjE3NTMzLCAxLjc1NjMsIDIuOTEyOSwgMy42MzQyNyIsIFwKLSAgICAgICAgICAiMC4xODUxOTgsIDAuMjY3MDcxLCAwLjc0NjUwNSwgMS4xNzY0NSwgMS43NTY5OCwgMi45MTA4NiwgMy42MzcyNSIsIFwKLSAgICAgICAgICAiMC4xODUxNDEsIDAuMjY2OTk3LCAwLjc0NjUxNSwgMS4xNzc3NCwgMS43NTcwMiwgMi45MTA3NSwgMy42NDIzMSIsIFwKLSAgICAgICAgICAiMC4xODUxMzYsIDAuMjY3MDIzLCAwLjc0NjUxMywgMS4xNzc3NSwgMS43NTcwMSwgMi45MTA3NSwgMy42NDIzIiwgXAotICAgICAgICAgICIwLjE4NTA5OSwgMC4yNjY4NTIsIDAuNzQ2NTU3LCAxLjE3NTQxLCAxLjc1NjgxLCAyLjkxMDg5LCAzLjY0MzYzIiwgXAotICAgICAgICAgICIwLjE4NTIxNiwgMC4yNjcwNTUsIDAuNzQ2NTM3LCAxLjE3NTcyLCAxLjc1NzA3LCAyLjkxMDUsIDMuNjQyMzEiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzExMjYxLCAwLjM3NTE1NiwgMC43MjU3NjMsIDEuMDM0MjIsIDEuNDQ1NjIsIDIuMjY4MDUsIDIuNzgyMzkiLCBcCi0gICAgICAgICAgIjAuMzIzMTY2LCAwLjM4NzEyNywgMC43Mzc3NjIsIDEuMDQ2MiwgMS40NTc2NiwgMi4yODA4OSwgMi43OTQ4MiIsIFwKLSAgICAgICAgICAiMC4zMzgzNDYsIDAuNDAyMjg2LCAwLjc1MjkyNCwgMS4wNjEyNywgMS40NzI4LCAyLjI5NjEsIDIuODA5OCIsIFwKLSAgICAgICAgICAiMC4zNTMzNCwgMC40MTcyMzgsIDAuNzY3ODcxLCAxLjA3NjM0LCAxLjQ4Nzc0LCAyLjMxMTA1LCAyLjgyNDIxIiwgXAotICAgICAgICAgICIwLjM2ODA1MSwgMC40MzE5MzgsIDAuNzgyNTE0LCAxLjA5MTAxLCAxLjUwMjE2LCAyLjMyNTI5LCAyLjgzODU1IiwgXAotICAgICAgICAgICIwLjM5MDcwNCwgMC40NTQ1OTcsIDAuODA1MiwgMS4xMTM2NSwgMS41MjUwNiwgMi4zNDgxMywgMi44NjE3NCIsIFwKLSAgICAgICAgICAiMC40MDg5MDgsIDAuNDcyNzkyLCAwLjgyMzM3NCwgMS4xMzE4NywgMS41NDMwMywgMi4zNjYyNywgMi44ODAyMiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yNDI1MDQsIDAuMzU5MjA5LCAxLjA0MjM2LCAxLjY1NTAxLCAyLjQ2NTIzLCA0LjA5NjE2LCA1LjExNDE2IiwgXAotICAgICAgICAgICIwLjI0MjMwMywgMC4zNTkxNTgsIDEuMDQ0MDgsIDEuNjU0MTQsIDIuNDY4MzksIDQuMDk1MTUsIDUuMTE1MiIsIFwKLSAgICAgICAgICAiMC4yNDIyOCwgMC4zNTkxNDIsIDEuMDQ0MTUsIDEuNjU1MjIsIDIuNDY3OTIsIDQuMDk0ODcsIDUuMTE0NzciLCBcCi0gICAgICAgICAgIjAuMjQyMywgMC4zNTkxMjMsIDEuMDQ0MTQsIDEuNjU1MDUsIDIuNDY2NTcsIDQuMDk3NzYsIDUuMTE0NDEiLCBcCi0gICAgICAgICAgIjAuMjQyNDAxLCAwLjM1OTEzNSwgMS4wNDM1MywgMS42NTUwMywgMi40NzIzNywgNC4wOTkyNywgNS4xMTU2NCIsIFwKLSAgICAgICAgICAiMC4yNDIyNDMsIDAuMzU5MDg0LCAxLjA0MjM4LCAxLjY1NTAxLCAyLjQ2OTc4LCA0LjA5NzM0LCA1LjExMzg0IiwgXAotICAgICAgICAgICIwLjI0MjQzMSwgMC4zNTkxNCwgMS4wNDM1OCwgMS42NTUwMywgMi40NzIzOSwgNC4wOTcwOSwgNS4xMTUxMyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xODYxNjEsIDAuMjMyNDA4LCAwLjQ3Njg0LCAwLjY5MDE4NCwgMC45NzQ3MTYsIDEuNTQzOTMsIDEuODk5MjciLCBcCi0gICAgICAgICAgIjAuMTk2NjMzLCAwLjI0Mjk0NSwgMC40ODczMDUsIDAuNzAwNjk1LCAwLjk4NTE4NCwgMS41NTQyNywgMS45MDk4NiIsIFwKLSAgICAgICAgICAiMC4yMDk4NjIsIDAuMjU2MDg3LCAwLjUwMDQ4NCwgMC43MTM5MjIsIDAuOTk4NDA1LCAxLjU2NzY1LCAxLjkyMzA4IiwgXAotICAgICAgICAgICIwLjIyMjk5MywgMC4yNjkyMzcsIDAuNTEzNjM2LCAwLjcyNjk4MSwgMS4wMTE1MiwgMS41ODA3NCwgMS45MzYwNiIsIFwKLSAgICAgICAgICAiMC4yMzYyNDksIDAuMjgyNDA1LCAwLjUyNjgxOCwgMC43NDAyNjIsIDEuMDI0NzYsIDEuNTk0MDksIDEuOTQ5MzEiLCBcCi0gICAgICAgICAgIjAuMjU3MzIyLCAwLjMwMzUzNCwgMC41NDc5MDQsIDAuNzYxMzU4LCAxLjA0NTg0LCAxLjYxNTExLCAxLjk3MDUzIiwgXAotICAgICAgICAgICIwLjI3NTc2LCAwLjMyMTkwOSwgMC41NjYyNjcsIDAuNzc5NjgyLCAxLjA2NDI4LCAxLjYzMzM4LCAxLjk4ODk5Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE4MzU1LCAwLjI2NTk0MiwgMC43NDYzMTYsIDEuMTc3OTksIDEuNzU3MDEsIDIuOTE2OCwgMy42NDM3MyIsIFwKLSAgICAgICAgICAiMC4xODM0NzcsIDAuMjY1ODY5LCAwLjc0NjIzNiwgMS4xNzU0OSwgMS43NTY5MywgMi45MTI1NCwgMy42MzQ1NiIsIFwKLSAgICAgICAgICAiMC4xODMzMzYsIDAuMjY1NzY2LCAwLjc0NTU5OSwgMS4xNzgyNCwgMS43NTY5OCwgMi45MTA5NCwgMy42NDI3MSIsIFwKLSAgICAgICAgICAiMC4xODMwNDQsIDAuMjY1NTkxLCAwLjc0NjE1NSwgMS4xNzc3OSwgMS43NTY5LCAyLjkwOTQsIDMuNjQzNDciLCBcCi0gICAgICAgICAgIjAuMTgyODQ4LCAwLjI2NTQxNSwgMC43NDYxNTYsIDEuMTc3ODUsIDEuNzU3MDIsIDIuOTEwNjEsIDMuNjQzNTciLCBcCi0gICAgICAgICAgIjAuMTgyMTgsIDAuMjY0OTg0LCAwLjc0NTkyOCwgMS4xNzgxMSwgMS43NTY5LCAyLjkxMDg1LCAzLjY0MjU2IiwgXAotICAgICAgICAgICIwLjE4MTcyNCwgMC4yNjQ2MTYsIDAuNzQ1NzgyLCAxLjE3Nzc0LCAxLjc1NTc3LCAyLjkxMzA5LCAzLjY0MzQyIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIxNTE1MiwgMC4yNzg4OTIsIDAuNjI5MjQsIDAuOTM3NjU2LCAxLjM0ODgsIDIuMTcyNDUsIDIuNjg1ODQiLCBcCi0gICAgICAgICAgIjAuMjI1NDI5LCAwLjI4OTE2NywgMC42Mzk1NTQsIDAuOTQ3OTI5LCAxLjM1OTE3LCAyLjE4MTU5LCAyLjY5NjA1IiwgXAotICAgICAgICAgICIwLjIzODE5NSwgMC4zMDE5MjEsIDAuNjUyMzQzLCAwLjk2MDcyMywgMS4zNzE5NCwgMi4xOTQ1NCwgMi43MDg3MyIsIFwKLSAgICAgICAgICAiMC4yNTEwNTIsIDAuMzE0NzkxLCAwLjY2NTI0NSwgMC45NzM1NTcsIDEuMzg1MDYsIDIuMjA4MzEsIDIuNzIyMDUiLCBcCi0gICAgICAgICAgIjAuMjYzNTIzLCAwLjMyNzI4MSwgMC42Nzc3NDQsIDAuOTg2MTQ2LCAxLjM5Nzc3LCAyLjIxOTk0LCAyLjczNDA4IiwgXAotICAgICAgICAgICIwLjI4Mzc5MSwgMC4zNDc1ODYsIDAuNjk4MDksIDEuMDA2NDYsIDEuNDE3OTMsIDIuMjQxMzgsIDIuNzU0NTQiLCBcCi0gICAgICAgICAgIjAuMzAwNDA0LCAwLjM2NDE2MywgMC43MTQ2NTgsIDEuMDIzMDMsIDEuNDM0NzMsIDIuMjU3NjYsIDIuNzcwOTEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjQxMzU5LCAwLjM1ODQ1MSwgMS4wNDM1MiwgMS42NTQ5OCwgMi40NzI0MSwgNC4xMDA0NSwgNS4xMTU4MiIsIFwKLSAgICAgICAgICAiMC4yNDEzMjIsIDAuMzU4NDc0LCAxLjA0MzksIDEuNjU0OTgsIDIuNDY1ODQsIDQuMTAyMzMsIDUuMTE0MjEiLCBcCi0gICAgICAgICAgIjAuMjQxMjQ5LCAwLjM1ODMyNiwgMS4wNDE4NSwgMS42NTQ5NywgMi40NjYyNiwgNC4wOTk1MywgNS4xMTQxOSIsIFwKLSAgICAgICAgICAiMC4yNDEwMzYsIDAuMzU4MzAxLCAxLjA0MzkzLCAxLjY1NTA4LCAyLjQ2NTYzLCA0LjA5OTg4LCA1LjExNDgxIiwgXAotICAgICAgICAgICIwLjI0MDg4MywgMC4zNTgxMTMsIDEuMDQzODEsIDEuNjU0OTYsIDIuNDY3MzIsIDQuMDk5NzQsIDUuMTE0MjMiLCBcCi0gICAgICAgICAgIjAuMjQwMzMxLCAwLjM1NzkwMiwgMS4wNDM4NiwgMS42NTQ5MiwgMi40NjQ3OCwgNC4xMDIxNSwgNS4xMTM5MSIsIFwKLSAgICAgICAgICAiMC4yNDAxNjYsIDAuMzU3NzQ1LCAxLjA0MzU2LCAxLjY1NCwgMi40NjY0MSwgNC4wOTk0MiwgNS4xMTUzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE5ODg0MywgMC4yNDQ3NjYsIDAuNDg4NzY0LCAwLjcwMjEyNCwgMC45ODY1NTksIDEuNTU1NiwgMS45MTEyMiIsIFwKLSAgICAgICAgICAiMC4yMTEwOTYsIDAuMjU3MDI3LCAwLjUwMTAxMywgMC43MTQzNzcsIDAuOTk4OTI5LCAxLjU2ODA2LCAxLjkyMzU4IiwgXAotICAgICAgICAgICIwLjIyNTg2OCwgMC4yNzE3OTgsIDAuNTE1OCwgMC43MjkxNjUsIDEuMDEzNjEsIDEuNTgyNywgMS45Mzg1NSIsIFwKLSAgICAgICAgICAiMC4yMzk1ODYsIDAuMjg1NTIyLCAwLjUyOTUxNywgMC43NDI4ODYsIDEuMDI3NCwgMS41OTY2NSwgMS45NTIwMiIsIFwKLSAgICAgICAgICAiMC4yNTIwNDQsIDAuMjk4MDIxLCAwLjU0MjEsIDAuNzU1NDY3LCAxLjAzOTk4LCAxLjYwOTE1LCAxLjk2NDg1IiwgXAotICAgICAgICAgICIwLjI2OTgyMSwgMC4zMTU3MjksIDAuNTU5NzQzLCAwLjc3MzEyMiwgMS4wNTc2NywgMS42MjcyNywgMS45ODIyNyIsIFwKLSAgICAgICAgICAiMC4yODM2MTYsIDAuMzI5NDQsIDAuNTczNDksIDAuNzg2OTEzLCAxLjA3MTM4LCAxLjY0MDU0LCAxLjk5NjM2Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE4MjI0NywgMC4yNjQ1NzksIDAuNzQ1NDk5LCAxLjE3NDgxLCAxLjc1NjQyLCAyLjkyNjUzLCAzLjY0MjQ5IiwgXAotICAgICAgICAgICIwLjE4MjE3MywgMC4yNjQ1OSwgMC43NDU0ODIsIDEuMTc0NzEsIDEuNzUyNjQsIDIuOTE2NDEsIDMuNjQyMTkiLCBcCi0gICAgICAgICAgIjAuMTgyMTMzLCAwLjI2NDU3NywgMC43NDU0NzIsIDEuMTc0ODYsIDEuNzUzMjksIDIuOTE2NzgsIDMuNjQyMzMiLCBcCi0gICAgICAgICAgIjAuMTgyMjM1LCAwLjI2NDUzLCAwLjc0NTQ0NywgMS4xNzQ4MywgMS43NTUwNSwgMi45MTYzNywgMy42NDM2IiwgXAotICAgICAgICAgICIwLjE4MjEwOCwgMC4yNjQ0ODksIDAuNzQ1NDAyLCAxLjE3NTA0LCAxLjc1NjYzLCAyLjkwOTYxLCAzLjYzODAxIiwgXAotICAgICAgICAgICIwLjE4MTk1OCwgMC4yNjQyNDYsIDAuNzQ1MjY3LCAxLjE3NjU2LCAxLjc1NjI1LCAyLjkxNzU0LCAzLjY0MzU2IiwgXAotICAgICAgICAgICIwLjE4MTkwOCwgMC4yNjQyNDIsIDAuNzQ1MzYzLCAxLjE3NjcsIDEuNzU2NjIsIDIuOTA5NTksIDMuNjM3MDEiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjMxNTU3LCAwLjI5NTU3MywgMC42NDYyMTEsIDAuOTU0NTg4LCAxLjM2NTksIDIuMTg4MzIsIDIuNzAyNjEiLCBcCi0gICAgICAgICAgIjAuMjQzNzI4LCAwLjMwNzc1MiwgMC42NTgzNDEsIDAuOTY2NzkzLCAxLjM3Nzk5LCAyLjIwMDMzLCAyLjcxNTMzIiwgXAotICAgICAgICAgICIwLjI1OTI4OCwgMC4zMjMzMDMsIDAuNjczOTYyLCAwLjk4MjI5NywgMS4zOTM2NiwgMi4yMTcyNiwgMi43MzA3IiwgXAotICAgICAgICAgICIwLjI3NDA1OSwgMC4zMzgwNjQsIDAuNjg4NzIyLCAwLjk5NzE1OSwgMS40MDg0OCwgMi4yMzIwNCwgMi43NDUwNSIsIFwKLSAgICAgICAgICAiMC4yODgxMDgsIDAuMzUyMTI1LCAwLjcwMjc5OSwgMS4wMTEyLCAxLjQyMjQ4LCAyLjI0NTU5LCAyLjc1OTQ0IiwgXAotICAgICAgICAgICIwLjMwODI4OSwgMC4zNzIzMywgMC43MjI5MzcsIDEuMDMxNCwgMS40NDI1NywgMi4yNjUwNSwgMi43Nzk2NCIsIFwKLSAgICAgICAgICAiMC4zMjQwMjEsIDAuMzg4MDQ0LCAwLjczODY3MywgMS4wNDcxNCwgMS40NTg0MiwgMi4yODA4NywgMi43OTU1MyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yNDI2MjEsIDAuMzU5NjAxLCAxLjA0NDU2LCAxLjY1NDExLCAyLjQ2MjU4LCA0LjA5NTc2LCA1LjExNDc2IiwgXAotICAgICAgICAgICIwLjI0MjY0NywgMC4zNTk2NDUsIDEuMDQyMjMsIDEuNjU1MiwgMi40NzI1NCwgNC4xMDQ1OSwgNS4xMTUyMyIsIFwKLSAgICAgICAgICAiMC4yNDI2MjQsIDAuMzU5NjIxLCAxLjA0NDM3LCAxLjY1NDExLCAyLjQ2OTY1LCA0LjA5NjIxLCA1LjExNDY4IiwgXAotICAgICAgICAgICIwLjI0MjQ4NywgMC4zNTk1NTYsIDEuMDQ0MzIsIDEuNjU1MjEsIDIuNDcwMjQsIDQuMDk2ODgsIDUuMTE1MDciLCBcCi0gICAgICAgICAgIjAuMjQyNTE0LCAwLjM1OTUwNSwgMS4wNDQyNywgMS42NTQyMywgMi40NjgyNywgNC4wOTczMiwgNS4xMTQ0NCIsIFwKLSAgICAgICAgICAiMC4yNDIyNDYsIDAuMzU5NDY5LCAxLjA0MzQ5LCAxLjY1NTE4LCAyLjQ3MjQ0LCA0LjA5OTM5LCA1LjExNDQxIiwgXAotICAgICAgICAgICIwLjI0MjM1OCwgMC4zNTk0MTYsIDEuMDQzNzQsIDEuNjU1MTksIDIuNDY1NDQsIDQuMTAxMzcsIDUuMTE1NDciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDc5MTgsIDAuMDA3OTI1LCAwLjAwNzkzOCwgMC4wMDc5NDEsIDAuMDA3OTQzLCAwLjAwNzk0NSwgMC4wMDc5NDUiLCBcCi0gICAgICAgICAgIjAuMDA3OTA2LCAwLjAwNzkxNCwgMC4wMDc5MjYsIDAuMDA3OTMsIDAuMDA3OTMyLCAwLjAwNzkzMywgMC4wMDc5MzMiLCBcCi0gICAgICAgICAgIjAuMDA3ODk3LCAwLjAwNzkwNSwgMC4wMDc5MTgsIDAuMDA3OTIxLCAwLjAwNzkyMiwgMC4wMDc5MjQsIDAuMDA3OTI0IiwgXAotICAgICAgICAgICIwLjAwNzg5LCAwLjAwNzg5NywgMC4wMDc5MSwgMC4wMDc5MTMsIDAuMDA3OTE1LCAwLjAwNzkxNSwgMC4wMDc5MTciLCBcCi0gICAgICAgICAgIjAuMDA3ODgzLCAwLjAwNzg5LCAwLjAwNzkwMywgMC4wMDc5MDYsIDAuMDA3OTA4LCAwLjAwNzkxLCAwLjAwNzkxIiwgXAotICAgICAgICAgICIwLjAwNzg3OCwgMC4wMDc4ODUsIDAuMDA3ODk4LCAwLjAwNzkwMSwgMC4wMDc5MDMsIDAuMDA3OTA1LCAwLjAwNzkwNSIsIFwKLSAgICAgICAgICAiMC4wMDc4NzMsIDAuMDA3ODgsIDAuMDA3ODkzLCAwLjAwNzg5NSwgMC4wMDc4OTgsIDAuMDA3ODk5LCAwLjAwNzkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDc3NjksIDAuMDA3NzgsIDAuMDA3ODAyLCAwLjAwNzgwOCwgMC4wMDc4MTEsIDAuMDA3ODE0LCAwLjAwNzgxNSIsIFwKLSAgICAgICAgICAiMC4wMDc3NSwgMC4wMDc3NjEsIDAuMDA3NzgzLCAwLjAwNzc4OCwgMC4wMDc3OTIsIDAuMDA3Nzk1LCAwLjAwNzc5NiIsIFwKLSAgICAgICAgICAiMC4wMDc3MzYsIDAuMDA3NzQ4LCAwLjAwNzc2OSwgMC4wMDc3NzUsIDAuMDA3Nzc4LCAwLjAwNzc4MSwgMC4wMDc3ODIiLCBcCi0gICAgICAgICAgIjAuMDA3NzI2LCAwLjAwNzczOCwgMC4wMDc3NTksIDAuMDA3NzY1LCAwLjAwNzc2OCwgMC4wMDc3NzEsIDAuMDA3NzcyIiwgXAotICAgICAgICAgICIwLjAwNzcxOSwgMC4wMDc3MywgMC4wMDc3NTIsIDAuMDA3NzU4LCAwLjAwNzc2MSwgMC4wMDc3NjQsIDAuMDA3NzY1IiwgXAotICAgICAgICAgICIwLjAwNzcwOSwgMC4wMDc3MjEsIDAuMDA3NzQyLCAwLjAwNzc0OCwgMC4wMDc3NTEsIDAuMDA3NzU0LCAwLjAwNzc1NSIsIFwKLSAgICAgICAgICAiMC4wMDc3MDMsIDAuMDA3NzE0LCAwLjAwNzczNiwgMC4wMDc3NDIsIDAuMDA3NzQ1LCAwLjAwNzc0OCwgMC4wMDc3NDkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDYzNzksIDAuMDA2Mzg2LCAwLjAwNjM5NiwgMC4wMDYzOTgsIDAuMDA2NCwgMC4wMDY0LCAwLjAwNjQwMSIsIFwKLSAgICAgICAgICAiMC4wMDYzODEsIDAuMDA2Mzg3LCAwLjAwNjM5OCwgMC4wMDY0MDEsIDAuMDA2NDAyLCAwLjAwNjQwMywgMC4wMDY0MDMiLCBcCi0gICAgICAgICAgIjAuMDA2Mzk3LCAwLjAwNjQwNCwgMC4wMDY0MTYsIDAuMDA2NDE3LCAwLjAwNjQxOSwgMC4wMDY0MTksIDAuMDA2NDIiLCBcCi0gICAgICAgICAgIjAuMDA2NDEzLCAwLjAwNjQyLCAwLjAwNjQzMSwgMC4wMDY0MzMsIDAuMDA2NDM1LCAwLjAwNjQzNiwgMC4wMDY0MzYiLCBcCi0gICAgICAgICAgIjAuMDA2NDI3LCAwLjAwNjQzNCwgMC4wMDY0NDUsIDAuMDA2NDQ4LCAwLjAwNjQ0OSwgMC4wMDY0NTEsIDAuMDA2NDUxIiwgXAotICAgICAgICAgICIwLjAwNjQ1NCwgMC4wMDY0NiwgMC4wMDY0NzMsIDAuMDA2NDc1LCAwLjAwNjQ3NywgMC4wMDY0NzgsIDAuMDA2NDc5IiwgXAotICAgICAgICAgICIwLjAwNjQ4NCwgMC4wMDY0OSwgMC4wMDY1MDIsIDAuMDA2NTA1LCAwLjAwNjUwNywgMC4wMDY1MDksIDAuMDA2NTA5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1MDk4LCAwLjAwNTEwOSwgMC4wMDUxMjcsIDAuMDA1MTMyLCAwLjAwNTEzNCwgMC4wMDUxMzcsIDAuMDA1MTM3IiwgXAotICAgICAgICAgICIwLjAwNTA3NCwgMC4wMDUwODUsIDAuMDA1MTA0LCAwLjAwNTEwOCwgMC4wMDUxMTEsIDAuMDA1MTEzLCAwLjAwNTExNCIsIFwKLSAgICAgICAgICAiMC4wMDUwNzIsIDAuMDA1MDgzLCAwLjAwNTEwMSwgMC4wMDUxMDYsIDAuMDA1MTA5LCAwLjAwNTExMSwgMC4wMDUxMTIiLCBcCi0gICAgICAgICAgIjAuMDA1MDc5LCAwLjAwNTA4OSwgMC4wMDUxMDgsIDAuMDA1MTEzLCAwLjAwNTExNiwgMC4wMDUxMTgsIDAuMDA1MTE5IiwgXAotICAgICAgICAgICIwLjAwNTA4NiwgMC4wMDUwOTYsIDAuMDA1MTE1LCAwLjAwNTEyLCAwLjAwNTEyMywgMC4wMDUxMjUsIDAuMDA1MTI2IiwgXAotICAgICAgICAgICIwLjAwNTEwNiwgMC4wMDUxMTYsIDAuMDA1MTM1LCAwLjAwNTE0LCAwLjAwNTE0MywgMC4wMDUxNDYsIDAuMDA1MTQ3IiwgXAotICAgICAgICAgICIwLjAwNTEzNiwgMC4wMDUxNDYsIDAuMDA1MTY1LCAwLjAwNTE3MSwgMC4wMDUxNzQsIDAuMDA1MTc2LCAwLjAwNTE3NyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjk2MiwgMC4wMDI5NjcsIDAuMDAyOTcyLCAwLjAwMjk3MywgMC4wMDI5NzQsIDAuMDAyOTc1LCAwLjAwMjk3NSIsIFwKLSAgICAgICAgICAiMC4wMDI5NjksIDAuMDAyOTc0LCAwLjAwMjk4LCAwLjAwMjk4LCAwLjAwMjk4MiwgMC4wMDI5ODQsIDAuMDAyOTgyIiwgXAotICAgICAgICAgICIwLjAwMjk5MSwgMC4wMDI5OTUsIDAuMDAzMDAzLCAwLjAwMzAwMywgMC4wMDMwMDQsIDAuMDAzMDA0LCAwLjAwMzAwNSIsIFwKLSAgICAgICAgICAiMC4wMDMwMDYsIDAuMDAzMDEsIDAuMDAzMDE5LCAwLjAwMzAxOCwgMC4wMDMwMiwgMC4wMDMwMTksIDAuMDAzMDIyIiwgXAotICAgICAgICAgICIwLjAwMzAyMywgMC4wMDMwMjgsIDAuMDAzMDM2LCAwLjAwMzAzNywgMC4wMDMwMzgsIDAuMDAzMDM5LCAwLjAwMzAzOSIsIFwKLSAgICAgICAgICAiMC4wMDMwNSwgMC4wMDMwNTQsIDAuMDAzMDYyLCAwLjAwMzA2NCwgMC4wMDMwNjUsIDAuMDAzMDY2LCAwLjAwMzA2NyIsIFwKLSAgICAgICAgICAiMC4wMDMwNjEsIDAuMDAzMDY2LCAwLjAwMzA3NSwgMC4wMDMwNzYsIDAuMDAzMDc3LCAwLjAwMzA3OSwgMC4wMDMwNzkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDIzOTgsIDAuMDAyNDA2LCAwLjAwMjQxNywgMC4wMDI0MiwgMC4wMDI0MjEsIDAuMDAyNDIyLCAwLjAwMjQyMyIsIFwKLSAgICAgICAgICAiMC4wMDIzODksIDAuMDAyMzk3LCAwLjAwMjQwOSwgMC4wMDI0MTEsIDAuMDAyNDEzLCAwLjAwMjQxNCwgMC4wMDI0MTIiLCBcCi0gICAgICAgICAgIjAuMDAyNDA1LCAwLjAwMjQxMywgMC4wMDI0MjUsIDAuMDAyNDI4LCAwLjAwMjQyOSwgMC4wMDI0MzEsIDAuMDAyNDMxIiwgXAotICAgICAgICAgICIwLjAwMjQxOSwgMC4wMDI0MjcsIDAuMDAyNDM5LCAwLjAwMjQ0MiwgMC4wMDI0NDQsIDAuMDAyNDQ1LCAwLjAwMjQ0NiIsIFwKLSAgICAgICAgICAiMC4wMDI0MzgsIDAuMDAyNDQ1LCAwLjAwMjQ1OCwgMC4wMDI0NjEsIDAuMDAyNDYzLCAwLjAwMjQ2NSwgMC4wMDI0NjUiLCBcCi0gICAgICAgICAgIjAuMDAyNDYyLCAwLjAwMjQ3LCAwLjAwMjQ4MywgMC4wMDI0ODYsIDAuMDAyNDg4LCAwLjAwMjQ5LCAwLjAwMjQ5MSIsIFwKLSAgICAgICAgICAiMC4wMDI0ODQsIDAuMDAyNDkyLCAwLjAwMjUwNiwgMC4wMDI1MDksIDAuMDAyNTEyLCAwLjAwMjUxMywgMC4wMDI1MTQiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogQ0xLTVgyWDggKgotICogLS0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKENMS01YMlg4KSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMzQ1ODc4OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA3MjUzMTY7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNzIyNTU5OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDcyNTMxNjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyMjUsIDAuMDAwMjMsIDAuMDAwMjMxLCAwLjAwMDIzMiwgMC4wMDAyMzMsIDAuMDAwMjMzLCAwLjAwMDIzNCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDI0NywgMC4wMDAyNDQsIDAuMDAwMjQzLCAwLjAwMDI0NCwgMC4wMDAyNDQsIDAuMDAwMjQ0LCAwLjAwMDI0NCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjcxMDk2OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDY2ODMzMTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2NzEwOTY7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjMzLCAwLjAwMDIzNSwgMC4wMDAyMzYsIDAuMDAwMjM3LCAwLjAwMDIzNywgMC4wMDAyMzcsIDAuMDAwMjM3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjQ3LCAwLjAwMDI0NCwgMC4wMDAyNDQsIDAuMDAwMjQ0LCAwLjAwMDI0NCwgMC4wMDAyNDQsIDAuMDAwMjQzIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxMzkyMzM7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxMzkxOTk7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxMzkyMzM7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjc2LCAwLjAwMDI1OCwgMC4wMDAyNDgsIDAuMDAwMjQ0LCAwLjAwMDI0MiwgMC4wMDAyNDMsIDAuMDAwMjQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDE2ODMsIDAuMDAxNjcyLCAwLjAwMTY2NCwgMC4wMDE2NjEsIDAuMDAxNjU5LCAwLjAwMTY1NywgMC4wMDE2NTYiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMS4wOTc1MjsKLSAgICBmdW5jdGlvbiA6ICIoKFMwIEIpICsgKCFTMCBBKSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIyODE2NiwgMC4zMDIzNzksIDAuMzQ1ODgsIDAuMzk1MzQ3LCAwLjQ0MjM3OSwgMC40ODg2NiwgMC41MzQ1MzkiLCBcCi0gICAgICAgICAgIjAuMjM5NzUyLCAwLjMxMzgxNSwgMC4zNTczMzEsIDAuNDA2NzU4LCAwLjQ1Mzc4OCwgMC41MDAwOTUsIDAuNTQ1OTUzIiwgXAotICAgICAgICAgICIwLjI1MzEwNCwgMC4zMjcyODMsIDAuMzcxMTg3LCAwLjQyMDI3NCwgMC40Njc1NTYsIDAuNTEzNTg3LCAwLjU1OTQ5IiwgXAotICAgICAgICAgICIwLjI2NjY3NiwgMC4zNDA4NzIsIDAuMzg0Mjc3LCAwLjQzMzczNCwgMC40ODEwMzQsIDAuNTI3MDg1LCAwLjU3Mjk3NCIsIFwKLSAgICAgICAgICAiMC4yODAyMTIsIDAuMzU0MjM3LCAwLjM5ODAzLCAwLjQ0NzEsIDAuNDk0MzQ1LCAwLjU0MDQzMSwgMC41ODYzMjUiLCBcCi0gICAgICAgICAgIjAuMzAxOTcxLCAwLjM3NjM2MiwgMC40MTk0NTYsIDAuNDY4ODcsIDAuNTE2MTAzLCAwLjU2MjM1MSwgMC42MDgwOTUiLCBcCi0gICAgICAgICAgIjAuMzIwNjM4LCAwLjM5NDYzMSwgMC40MzgwMywgMC40ODc0NzMsIDAuNTM0NTI5LCAwLjU4MDgxNCwgMC42MjY2NjMiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg5MjE3LCAwLjE3NzM4LCAwLjI0NTAyOSwgMC4zMzA3NzYsIDAuNDE3ODc5LCAwLjUwNjIxNSwgMC41OTU0OCIsIFwKLSAgICAgICAgICAiMC4wODg5OTYsIDAuMTc3NDAzLCAwLjI0NTAwOCwgMC4zMzA3NDUsIDAuNDE3ODU1LCAwLjUwNjI2NiwgMC41OTUyOTkiLCBcCi0gICAgICAgICAgIjAuMDg5MzEyLCAwLjE3NzQ0NCwgMC4yNDUyNjksIDAuMzMwNTc2LCAwLjQxNzk5OCwgMC41MDYyMDYsIDAuNTk1NTk2IiwgXAotICAgICAgICAgICIwLjA4OTI2NSwgMC4xNzc2MjIsIDAuMjQ0OTYzLCAwLjMzMDcwNywgMC40MTc5NzQsIDAuNTA2Mzc3LCAwLjU5NTM4NSIsIFwKLSAgICAgICAgICAiMC4wODg3OTMsIDAuMTc3MzUzLCAwLjI0NTI0OCwgMC4zMzA2MDksIDAuNDE3ODI2LCAwLjUwNjMwNSwgMC41OTU4NzQiLCBcCi0gICAgICAgICAgIjAuMDg4OTgzLCAwLjE3NzY1NSwgMC4yNDQ5MDgsIDAuMzMwNjc4LCAwLjQxNzg3NSwgMC41MDYzMDQsIDAuNTk1ODc5IiwgXAotICAgICAgICAgICIwLjA4ODU1OSwgMC4xNzcyNzgsIDAuMjQ0OTQ3LCAwLjMzMDczNCwgMC40MTc4NDQsIDAuNTA2MTk0LCAwLjU5NTM0MyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMTg4ODMsIDAuMjk3NzEzLCAwLjM0NjEyMywgMC40MDIzOTgsIDAuNDU2OTY2LCAwLjUxMDc2NCwgMC41NjQzNDgiLCBcCi0gICAgICAgICAgIjAuMjMwMzc0LCAwLjMwOTIxNCwgMC4zNTc3MDUsIDAuNDEzOTE2LCAwLjQ2ODQwOSwgMC41MjIyOTksIDAuNTc1ODUiLCBcCi0gICAgICAgICAgIjAuMjQzNTE1LCAwLjMyMjEyOCwgMC4zNzA3MDIsIDAuNDI2OTg0LCAwLjQ4MTU3NCwgMC41MzU0NDYsIDAuNTg4OTQ5IiwgXAotICAgICAgICAgICIwLjI1NTk1NywgMC4zMzQ4ODQsIDAuMzgzMTY4LCAwLjQzOTQ5NiwgMC40OTQwNTYsIDAuNTQ3OTM0LCAwLjYwMTQzNCIsIFwKLSAgICAgICAgICAiMC4yNjg1NDYsIDAuMzQ3MDUxLCAwLjM5NTYzNiwgMC40NTE4ODQsIDAuNTA2NDQyLCAwLjU2MDMzOCwgMC42MTM4NDIiLCBcCi0gICAgICAgICAgIjAuMjg4MTUyLCAwLjM2NjgzMiwgMC40MTUzOTgsIDAuNDcxNTksIDAuNTI2MTczLCAwLjU3OTk3LCAwLjYzMzU4OSIsIFwKLSAgICAgICAgICAiMC4zMDUzMjYsIDAuMzg0MDI3LCAwLjQzMjMzOCwgMC40ODg3MTcsIDAuNTQzMjIxLCAwLjU5NzEyNCwgMC42NTA2NzciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg3Mjg4LCAwLjE4OTE5NCwgMC4yNjc3OTksIDAuMzY3ODQ2LCAwLjQ2OTEsIDAuNTcxNTk5LCAwLjY3NTYyNSIsIFwKLSAgICAgICAgICAiMC4wODczNzQsIDAuMTg5MTM2LCAwLjI2ODAwOCwgMC4zNjc1OTYsIDAuNDY5NDA3LCAwLjU3MjAxOSwgMC42NzU1MDkiLCBcCi0gICAgICAgICAgIjAuMDg3MDE4LCAwLjE4ODkwMiwgMC4yNjc3MjMsIDAuMzY3NjA5LCAwLjQ2OTEwNSwgMC41NzE1MDQsIDAuNjc1MzM5IiwgXAotICAgICAgICAgICIwLjA4NzA3MSwgMC4xODkxMzIsIDAuMjY3NzE4LCAwLjM2NzY1OCwgMC40NjkxMDksIDAuNTcxODI4LCAwLjY3NTMzNCIsIFwKLSAgICAgICAgICAiMC4wODY4MjIsIDAuMTg4OTM5LCAwLjI2NzkxMiwgMC4zNjc1ODYsIDAuNDY5MDg4LCAwLjU3MTkzMywgMC42NzUzMTMiLCBcCi0gICAgICAgICAgIjAuMDg2OTgsIDAuMTg5MDYxLCAwLjI2NzkxNywgMC4zNjc4NTMsIDAuNDY5MDYxLCAwLjU3MTY0NCwgMC42NzU0MjMiLCBcCi0gICAgICAgICAgIjAuMDg2ODk3LCAwLjE4OTEwOCwgMC4yNjc4MDEsIDAuMzY3NTU1LCAwLjQ2OTQ0OSwgMC41NzE0NTIsIDAuNjc1NjMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjI4Mjk2LCAwLjMwMjc1MSwgMC4zNDYwNjgsIDAuMzk1NTE0LCAwLjQ0MjczNCwgMC40ODkwMzcsIDAuNTM0OTgyIiwgXAotICAgICAgICAgICIwLjI0MDAzLCAwLjMxNDA5NywgMC4zNTc1ODUsIDAuNDA3MTI1LCAwLjQ1NDQyLCAwLjUwMDQ2NSwgMC41NDYzODEiLCBcCi0gICAgICAgICAgIjAuMjUzOTgyLCAwLjMyODAzNywgMC4zNzE2OCwgMC40MjA3ODgsIDAuNDY3OTk4LCAwLjUxNDI5NywgMC41NjAxNjciLCBcCi0gICAgICAgICAgIjAuMjY3MjYxLCAwLjM0MTM4NywgMC4zODQ5NDMsIDAuNDM0MzkyLCAwLjQ4MTY5NywgMC41Mjc3NSwgMC41NzM2NjEiLCBcCi0gICAgICAgICAgIjAuMjgwOTg3LCAwLjM1NTExNCwgMC4zOTg2MzgsIDAuNDQ4MDUzLCAwLjQ5NTA5OSwgMC41NDE0MywgMC41ODcyOTEiLCBcCi0gICAgICAgICAgIjAuMzAyODE2LCAwLjM3Njc3NCwgMC40MjA2MTYsIDAuNDY5NjkxLCAwLjUxNjkzNiwgMC41NjMwMzksIDAuNjA4OTQ4IiwgXAotICAgICAgICAgICIwLjMyMTQ1NCwgMC4zOTU0ODIsIDAuNDM4ODg1LCAwLjQ4ODMzNCwgMC41MzUzNzgsIDAuNTgxNzAxLCAwLjYyNzU1OCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODk3NzYsIDAuMTc3NjEzLCAwLjI0NTE2NSwgMC4zMzA5MDMsIDAuNDE4MTkxLCAwLjUwNjQ2OCwgMC41OTU1ODMiLCBcCi0gICAgICAgICAgIjAuMDg5NDA3LCAwLjE3NzUxMywgMC4yNDUwNTEsIDAuMzMwODI2LCAwLjQxODEyLCAwLjUwNjI3MSwgMC41OTU1MjIiLCBcCi0gICAgICAgICAgIjAuMDg4Njg3LCAwLjE3NzQ1NiwgMC4yNDUwNywgMC4zMzA4NjMsIDAuNDE4MTMyLCAwLjUwNjM5NiwgMC41OTU0MDUiLCBcCi0gICAgICAgICAgIjAuMDg5MjM3LCAwLjE3NzQ3MiwgMC4yNDQ5OTgsIDAuMzMwODExLCAwLjQxODEwMywgMC41MDYzMTMsIDAuNTk1NDg1IiwgXAotICAgICAgICAgICIwLjA4OTA3LCAwLjE3NzQ3NSwgMC4yNDUwOTYsIDAuMzMwODQyLCAwLjQxNzk4MSwgMC41MDYzNDUsIDAuNTk1NDgiLCBcCi0gICAgICAgICAgIjAuMDg4OTMyLCAwLjE3NzMwNSwgMC4yNDUyNjQsIDAuMzMwNjQsIDAuNDE3ODg1LCAwLjUwNjQwOCwgMC41OTU3NjEiLCBcCi0gICAgICAgICAgIjAuMDg4NjM5LCAwLjE3NzMzNCwgMC4yNDUwMjMsIDAuMzMwODM1LCAwLjQxNzgwNiwgMC41MDYzMjcsIDAuNTk1NDY1Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIyMTg3OCwgMC4zMDA2OTksIDAuMzQ5MzM4LCAwLjQwNTU5NiwgMC40NjAxODUsIDAuNTE0MDc5LCAwLjU2NzU4MyIsIFwKLSAgICAgICAgICAiMC4yMzMyNTYsIDAuMzEyMTUyLCAwLjM2MDg2NywgMC40MTcwNzksIDAuNDcxNjg3LCAwLjUyNTUzMSwgMC41NzkxMDIiLCBcCi0gICAgICAgICAgIjAuMjQ2NjA0LCAwLjMyNTMwOSwgMC4zNzM5OTUsIDAuNDMwMjMyLCAwLjQ4NDgxNywgMC41Mzg3MjMsIDAuNTkyMjI3IiwgXAotICAgICAgICAgICIwLjI1ODk3LCAwLjMzNzc3NCwgMC4zODY0OTYsIDAuNDQyNjk4LCAwLjQ5NzMwNiwgMC41NTEyMDIsIDAuNjA0NzIyIiwgXAotICAgICAgICAgICIwLjI3MTI4NSwgMC4zNTAxMjYsIDAuMzk4NzgsIDAuNDU0OTc2LCAwLjUwOTU5LCAwLjU2MzQ0OSwgMC42MTcwMTQiLCBcCi0gICAgICAgICAgIjAuMjkxMTU0LCAwLjM2OTc3MSwgMC40MTgzNTIsIDAuNDc0NzYyLCAwLjUyOTI3NSwgMC41ODMxNjksIDAuNjM2NjkxIiwgXAotICAgICAgICAgICIwLjMwODEyMSwgMC4zODY5MDgsIDAuNDM1Mzg0LCAwLjQ5MTY2MywgMC41NDYyODgsIDAuNjAwMDg5LCAwLjY1MzcwMyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODcxOCwgMC4xODkyNzcsIDAuMjY4MjY1LCAwLjM2ODAyMSwgMC40NjkzNTUsIDAuNTcxNjMsIDAuNjc1NTQ1IiwgXAotICAgICAgICAgICIwLjA4NzQ0MiwgMC4xODkyODMsIDAuMjY4MjQzLCAwLjM2Nzg3MywgMC40NjkzNDEsIDAuNTcyMTI0LCAwLjY3NTQ5NSIsIFwKLSAgICAgICAgICAiMC4wODcyMzUsIDAuMTg5Mjg2LCAwLjI2ODI2MSwgMC4zNjc4NzEsIDAuNDY5MzQzLCAwLjU3MjE1NiwgMC42NzU0NzgiLCBcCi0gICAgICAgICAgIjAuMDg3MDI1LCAwLjE4OTI4NSwgMC4yNjgyNDUsIDAuMzY3ODczLCAwLjQ2OTMzNSwgMC41NzE3NjgsIDAuNjc1NDE3IiwgXAotICAgICAgICAgICIwLjA4Njk5OCwgMC4xODk0MzEsIDAuMjY4MjQsIDAuMzY3ODYzLCAwLjQ2OTMyOCwgMC41NzE2NzYsIDAuNjc1NDI1IiwgXAotICAgICAgICAgICIwLjA4NzM1OCwgMC4xODk1MzksIDAuMjY4MjI3LCAwLjM2ODE0MiwgMC40Njk0MzQsIDAuNTcxNjE5LCAwLjY3NTQxMyIsIFwKLSAgICAgICAgICAiMC4wODcwNzYsIDAuMTg5NDQ4LCAwLjI2ODI1MSwgMC4zNjc5ODYsIDAuNDY5NDEsIDAuNTcxODU2LCAwLjY3NTU1NCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjE0NzQsIDAuMjg5MTI0LCAwLjMzMjIyMSwgMC4zODE2NTcsIDAuNDI4OTU3LCAwLjQ3NTA2OSwgMC41MjA5MTYiLCBcCi0gICAgICAgICAgIjAuMjI1NDYsIDAuMjk5NzUzLCAwLjM0Mjg4OSwgMC4zOTIyOTksIDAuNDM5MzQ2LCAwLjQ4NTY1LCAwLjUzMTUyMyIsIFwKLSAgICAgICAgICAiMC4yMzg5MzcsIDAuMzEzMDY5LCAwLjM1NjYxNCwgMC40MDU4MDksIDAuNDUyOTcsIDAuNDk5MjgzLCAwLjU0NTIiLCBcCi0gICAgICAgICAgIjAuMjUyMzE1LCAwLjMyNjQyMywgMC4zNzAwNjcsIDAuNDE5MTgxLCAwLjQ2NjM4MywgMC41MTI2OCwgMC41NTg2MTIiLCBcCi0gICAgICAgICAgIjAuMjY1ODUyLCAwLjM0MDA3MSwgMC4zODMxNTYsIDAuNDMyNTA2LCAwLjQ3OTgwOSwgMC41MjYwNzQsIDAuNTcxODMyIiwgXAotICAgICAgICAgICIwLjI4NzM1NiwgMC4zNjEzOTEsIDAuNDA0NzUsIDAuNDU0MTk2LCAwLjUwMTUsIDAuNTQ3NTk0LCAwLjU5MzQ2MSIsIFwKLSAgICAgICAgICAiMC4zMDY0NjUsIDAuMzgwMywgMC40MjM4MDksIDAuNDczMTgyLCAwLjUyMDQxOSwgMC41NjY1NDUsIDAuNjEyNDYyIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4ODU2NywgMC4xNzc2MDEsIDAuMjQ0OTUxLCAwLjMzMDgzMywgMC40MTgwNjMsIDAuNTA2MzczLCAwLjU5NTEyNCIsIFwKLSAgICAgICAgICAiMC4wODg4OSwgMC4xNzc1NTgsIDAuMjQ1MDI1LCAwLjMzMDgxLCAwLjQxNzc5NywgMC41MDYzMDIsIDAuNTk1NDc3IiwgXAotICAgICAgICAgICIwLjA4ODU2OCwgMC4xNzc1NDQsIDAuMjQ1MDI0LCAwLjMzMDUwNSwgMC40MTc5NTEsIDAuNTA2MzU5LCAwLjU5NTUwMiIsIFwKLSAgICAgICAgICAiMC4wODg1NDgsIDAuMTc3MzI0LCAwLjI0NTAzNSwgMC4zMzA1MzMsIDAuNDE4MDU0LCAwLjUwNjM0MSwgMC41OTU0NzYiLCBcCi0gICAgICAgICAgIjAuMDg4MzYxLCAwLjE3NzUyMSwgMC4yNDQ3NzQsIDAuMzMwNTk3LCAwLjQxNzg3OCwgMC41MDYyMzksIDAuNTk1NDA2IiwgXAotICAgICAgICAgICIwLjA4ODY4NCwgMC4xNzcyNjcsIDAuMjQ0ODcxLCAwLjMzMDczLCAwLjQxNzk4LCAwLjUwNjE1NiwgMC41OTU0MjUiLCBcCi0gICAgICAgICAgIjAuMDg4MjUyLCAwLjE3NzEwOSwgMC4yNDQ5MzksIDAuMzMwNTU5LCAwLjQxNzkwNSwgMC41MDY0MDIsIDAuNTk1OSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMDY3NTgsIDAuMjg1MzY4LCAwLjMzMzc4OSwgMC4zOTAxMywgMC40NDQ3MDIsIDAuNDk4NTA0LCAwLjU1MjEwNCIsIFwKLSAgICAgICAgICAiMC4yMTcyMTYsIDAuMjk1ODExLCAwLjM0NDIyOSwgMC40MDA1ODIsIDAuNDU1MTU1LCAwLjUwODk1OCwgMC41NjI1NiIsIFwKLSAgICAgICAgICAiMC4yMzA0MDEsIDAuMzA4OTMxLCAwLjM1NzQ3LCAwLjQxMzg2LCAwLjQ2ODM0NSwgMC41MjIyMjYsIDAuNTc1NzY5IiwgXAotICAgICAgICAgICIwLjI0MzM5NiwgMC4zMjIwNDYsIDAuMzcwNjMzLCAwLjQyNjg3MiwgMC40ODE0MzYsIDAuNTM1MzM1LCAwLjU4ODgzNSIsIFwKLSAgICAgICAgICAiMC4yNTY2MjcsIDAuMzM1MzI0LCAwLjM4MzYxOSwgMC40Mzk5OTgsIDAuNDk0NTg3LCAwLjU0ODM4MiwgMC42MDE5NTciLCBcCi0gICAgICAgICAgIjAuMjc3NzkzLCAwLjM1NjUwMSwgMC40MDQ3OSwgMC40NjExNjEsIDAuNTE1NzUsIDAuNTY5NTQ2LCAwLjYyMzEyIiwgXAotICAgICAgICAgICIwLjI5NjMxOSwgMC4zNzUwOTgsIDAuNDIzNDE1LCAwLjQ3OTc2LCAwLjUzNDI3MSwgMC41ODgxNzYsIDAuNjQxNzMzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4Njg0NiwgMC4xODg5OTksIDAuMjY3NjA2LCAwLjM2NzgyNywgMC40NjkwMjEsIDAuNTcxNjI2LCAwLjY3NTU5IiwgXAotICAgICAgICAgICIwLjA4NjgxOSwgMC4xODkwMTIsIDAuMjY3NTk2LCAwLjM2NzgzMSwgMC40NjkwMTgsIDAuNTcxNjc5LCAwLjY3NTU3IiwgXAotICAgICAgICAgICIwLjA4NjkwOCwgMC4xODg3NTYsIDAuMjY3NzAzLCAwLjM2Nzc5MiwgMC40Njk0NTksIDAuNTcyMTQ2LCAwLjY3NTEyIiwgXAotICAgICAgICAgICIwLjA4NjgzNSwgMC4xODg4ODIsIDAuMjY3ODU4LCAwLjM2NzU2LCAwLjQ2OTA3MiwgMC41NzE2MTIsIDAuNjc1MjQ3IiwgXAotICAgICAgICAgICIwLjA4Njc3NywgMC4xODg5MzksIDAuMjY3NjU3LCAwLjM2NzU1MSwgMC40Njg5NSwgMC41NzE1ODYsIDAuNjc1NTk2IiwgXAotICAgICAgICAgICIwLjA4Njc3NiwgMC4xODg5MjUsIDAuMjY3NTM0LCAwLjM2NzQ2LCAwLjQ2ODkzNywgMC41NzE2MTMsIDAuNjc1NjE1IiwgXAotICAgICAgICAgICIwLjA4NjUxNSwgMC4xODg5MzUsIDAuMjY3NTEsIDAuMzY3NDc1LCAwLjQ2OTM2LCAwLjU3MTUxNSwgMC42NzU1OTQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUzAiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI0ODAwMiwgMC4zMjIyOTcsIDAuMzY1Nzk5LCAwLjQxNDk3NCwgMC40NjIxNSwgMC41MDg0NSwgMC41NTQzNTUiLCBcCi0gICAgICAgICAgIjAuMjU5OTQ5LCAwLjMzNDI4NiwgMC4zNzc2NzEsIDAuNDI3MTQyLCAwLjQ3NDE4MiwgMC41MjA0NjYsIDAuNTY2MzQ5IiwgXAotICAgICAgICAgICIwLjI3NTA4LCAwLjM0OTE2NSwgMC4zOTMwMjgsIDAuNDQyMSwgMC40ODkzNjMsIDAuNTM1Mzc1LCAwLjU4MTMxNCIsIFwKLSAgICAgICAgICAiMC4yODk0NzgsIDAuMzYzNTc5LCAwLjQwNzQ0MSwgMC40NTY1MDksIDAuNTAzNzU5LCAwLjU0OTgxNCwgMC41OTU3MDYiLCBcCi0gICAgICAgICAgIjAuMzAzMTMzLCAwLjM3NzQ2NCwgMC40MjA1NDMsIDAuNDY5OTM2LCAwLjUxNzE4NSwgMC41NjM0MzcsIDAuNjA5MTc5IiwgXAotICAgICAgICAgICIwLjMyMjEzNSwgMC4zOTYyMDMsIDAuNDM5Njg2LCAwLjQ4OTEzMywgMC41MzYxNjMsIDAuNTgyNDUzLCAwLjYyODMyIiwgXAotICAgICAgICAgICIwLjMzNjg4LCAwLjQxMDk4NCwgMC40NTQ0NSwgMC41MDM4OTksIDAuNTUwOTQ2LCAwLjU5NzIyOCwgMC42NDMwOTciKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg4OTM0LCAwLjE3NzI1NiwgMC4yNDQ4OTMsIDAuMzMwNTIzLCAwLjQxNzg2NSwgMC41MDYyNTEsIDAuNTk1MzMxIiwgXAotICAgICAgICAgICIwLjA4OTAwMSwgMC4xNzcyMiwgMC4yNDQ5OTQsIDAuMzMwNzQ2LCAwLjQxNzg1NiwgMC41MDYyNjIsIDAuNTk1MjkyIiwgXAotICAgICAgICAgICIwLjA4ODg5MSwgMC4xNzczNDIsIDAuMjQ1MjQ5LCAwLjMzMDc0NywgMC40MTgwMjEsIDAuNTA2MTc2LCAwLjU5NTc0NSIsIFwKLSAgICAgICAgICAiMC4wODg4OTgsIDAuMTc3MzE3LCAwLjI0NTI0LCAwLjMzMDc0NiwgMC40MTgwMjUsIDAuNTA2MzE3LCAwLjU5NTU1NCIsIFwKLSAgICAgICAgICAiMC4wODg0NTgsIDAuMTc3NjU4LCAwLjI0NDk1OCwgMC4zMzA3MDEsIDAuNDE3ODQxLCAwLjUwNjIxNiwgMC41OTU4NjciLCBcCi0gICAgICAgICAgIjAuMDg4NjI0LCAwLjE3NzM1MywgMC4yNDQ5OCwgMC4zMzA3MjksIDAuNDE3NTQ1LCAwLjUwNjE4NywgMC41OTUzMjIiLCBcCi0gICAgICAgICAgIjAuMDg4NzQzLCAwLjE3NzM2NCwgMC4yNDQ5ODcsIDAuMzMwNzE4LCAwLjQxNzgzOSwgMC41MDYxODksIDAuNTk1MjgxIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI0NDg4MywgMC4zMjM1NDksIDAuMzcyMjU5LCAwLjQyODQ4NiwgMC40ODMwNzksIDAuNTM2OTkzLCAwLjU5MDQ5IiwgXAotICAgICAgICAgICIwLjI1NjcyOCwgMC4zMzU0NzQsIDAuMzg0MTU2LCAwLjQ0MDQ2NCwgMC40OTUwNzYsIDAuNTQ4OTYxLCAwLjYwMjQ2NSIsIFwKLSAgICAgICAgICAiMC4yNzI0OTksIDAuMzUxNDkzLCAwLjQwMDAxNiwgMC40NTYyNTEsIDAuNTEwODQzLCAwLjU2NDY0NSwgMC42MTgyNTUiLCBcCi0gICAgICAgICAgIjAuMjg3MjQxLCAwLjM2NjMxOCwgMC40MTQ2NjUsIDAuNDcxMDgyLCAwLjUyNTY2OCwgMC41Nzk0NzIsIDAuNjMzMDU5IiwgXAotICAgICAgICAgICIwLjMwMjUyNiwgMC4zODE0OTMsIDAuNDI5OCwgMC40ODYyNDIsIDAuNTQwODE3LCAwLjU5NDcwNSwgMC42NDgyMDQiLCBcCi0gICAgICAgICAgIjAuMzI0MzA5LCAwLjQwMzQwNCwgMC40NTE3MDMsIDAuNTA4MDk4LCAwLjU2MjcwMSwgMC42MTY1OTEsIDAuNjcwMDkxIiwgXAotICAgICAgICAgICIwLjM0MjA3MSwgMC40MjEwNDEsIDAuNDY5Mzg4LCAwLjUyNTc3LCAwLjU4MDM1LCAwLjYzNDIzOSwgMC42ODc3NDMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg3MTc4LCAwLjE4OTI5OSwgMC4yNjgyODMsIDAuMzY3ODY2LCAwLjQ2OTMzNCwgMC41NzIyMDEsIDAuNjc1NjMyIiwgXAotICAgICAgICAgICIwLjA4NzY0NiwgMC4xODkyNzksIDAuMjY4MDk2LCAwLjM2Nzg0MSwgMC40NjkzNjEsIDAuNTcyMzU5LCAwLjY3NTUyIiwgXAotICAgICAgICAgICIwLjA4NzEyNSwgMC4xODkzOCwgMC4yNjgyNjMsIDAuMzY4MTE3LCAwLjQ2OTMwNywgMC41NzE4NzcsIDAuNjc1NzQ0IiwgXAotICAgICAgICAgICIwLjA4NzQxMSwgMC4xODkzOTUsIDAuMjY4MDYyLCAwLjM2Nzg5LCAwLjQ2OTMxMiwgMC41NzE3ODUsIDAuNjc1NzM0IiwgXAotICAgICAgICAgICIwLjA4NzIwNSwgMC4xODk0NDcsIDAuMjY4MDc1LCAwLjM2Nzg2OCwgMC40NjkzMDksIDAuNTcxOTg5LCAwLjY3NTQ2NCIsIFwKLSAgICAgICAgICAiMC4wODcyMjgsIDAuMTg5Mzc5LCAwLjI2ODAwMywgMC4zNjc4NjIsIDAuNDY5MzA0LCAwLjU3MjQxLCAwLjY3NTQzNiIsIFwKLSAgICAgICAgICAiMC4wODczNDYsIDAuMTg5NDE1LCAwLjI2ODA3NywgMC4zNjc4NTgsIDAuNDY5MjkxLCAwLjU3MTY4MiwgMC42NzU0MjYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDY5MzEsIDAuMDA3MTA5LCAwLjAwNzE4NCwgMC4wMDcyMzcsIDAuMDA3MjcsIDAuMDA3Mjk2LCAwLjAwNzMwNiIsIFwKLSAgICAgICAgICAiMC4wMDY5MjEsIDAuMDA3MDk3LCAwLjAwNzE3MiwgMC4wMDcyMjUsIDAuMDA3MjU4LCAwLjAwNzI4LCAwLjAwNzI5NiIsIFwKLSAgICAgICAgICAiMC4wMDY5MTgsIDAuMDA3MDkxLCAwLjAwNzE2NiwgMC4wMDcyMiwgMC4wMDcyNTUsIDAuMDA3Mjc0LCAwLjAwNzI4OSIsIFwKLSAgICAgICAgICAiMC4wMDY5MTEsIDAuMDA3MDg0LCAwLjAwNzE1OSwgMC4wMDcyMTIsIDAuMDA3MjUxLCAwLjAwNzI3LCAwLjAwNzI4NSIsIFwKLSAgICAgICAgICAiMC4wMDY5MDEsIDAuMDA3MDc2LCAwLjAwNzE1MSwgMC4wMDcyMDUsIDAuMDA3MjM5LCAwLjAwNzI2MSwgMC4wMDcyNzciLCBcCi0gICAgICAgICAgIjAuMDA2ODkyLCAwLjAwNzA2NiwgMC4wMDcxNCwgMC4wMDcxOTYsIDAuMDA3MjI5LCAwLjAwNzI1MiwgMC4wMDcyNzEiLCBcCi0gICAgICAgICAgIjAuMDA2ODgzLCAwLjAwNzA1NCwgMC4wMDcxMjcsIDAuMDA3MTgyLCAwLjAwNzIyLCAwLjAwNzI0MSwgMC4wMDcyNTgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDc5MTksIDAuMDA4MTU1LCAwLjAwODI1NSwgMC4wMDgzMjgsIDAuMDA4MzcyLCAwLjAwODQwMSwgMC4wMDg0MjIiLCBcCi0gICAgICAgICAgIjAuMDA3OTEyLCAwLjAwODE0OSwgMC4wMDgyNSwgMC4wMDgzMjIsIDAuMDA4MzY2LCAwLjAwODM5NiwgMC4wMDg0MTYiLCBcCi0gICAgICAgICAgIjAuMDA3OTEyLCAwLjAwODE0NiwgMC4wMDgyNDcsIDAuMDA4MzE5LCAwLjAwODM2MywgMC4wMDgzOTMsIDAuMDA4NDE0IiwgXAotICAgICAgICAgICIwLjAwNzkwMSwgMC4wMDgxMzgsIDAuMDA4MjM4LCAwLjAwODMxMiwgMC4wMDgzNTYsIDAuMDA4Mzg3LCAwLjAwODQwOCIsIFwKLSAgICAgICAgICAiMC4wMDc4OTcsIDAuMDA4MTMsIDAuMDA4MjMxLCAwLjAwODMwNSwgMC4wMDgzNSwgMC4wMDgzODEsIDAuMDA4NDAzIiwgXAotICAgICAgICAgICIwLjAwNzg4NSwgMC4wMDgxMTgsIDAuMDA4MjE4LCAwLjAwODI5MywgMC4wMDgzMzksIDAuMDA4MzcxLCAwLjAwODM5MyIsIFwKLSAgICAgICAgICAiMC4wMDc4NzksIDAuMDA4MTA3LCAwLjAwODIwNiwgMC4wMDgyODIsIDAuMDA4MzI5LCAwLjAwODM2MiwgMC4wMDgzODUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDY4MjEsIDAuMDA2OTgyLCAwLjAwNzA0OSwgMC4wMDcwOTYsIDAuMDA3MTI1LCAwLjAwNzE0MywgMC4wMDcxNTYiLCBcCi0gICAgICAgICAgIjAuMDA2ODE3LCAwLjAwNjk3MiwgMC4wMDcwMzgsIDAuMDA3MDg1LCAwLjAwNzExNiwgMC4wMDcxMzEsIDAuMDA3MTQ1IiwgXAotICAgICAgICAgICIwLjAwNjc5NywgMC4wMDY5NjEsIDAuMDA3MDI5LCAwLjAwNzA3NywgMC4wMDcxMDUsIDAuMDA3MTI1LCAwLjAwNzEzNyIsIFwKLSAgICAgICAgICAiMC4wMDY4LCAwLjAwNjk1NywgMC4wMDcwMjMsIDAuMDA3MDcxLCAwLjAwNzEsIDAuMDA3MTE5LCAwLjAwNzEzMyIsIFwKLSAgICAgICAgICAiMC4wMDY3OTQsIDAuMDA2OTUsIDAuMDA3MDE3LCAwLjAwNzA2MiwgMC4wMDcwOTQsIDAuMDA3MTEzLCAwLjAwNzEzIiwgXAotICAgICAgICAgICIwLjAwNjc3NywgMC4wMDY5MzgsIDAuMDA3MDA1LCAwLjAwNzA1NCwgMC4wMDcwODQsIDAuMDA3MTA0LCAwLjAwNzExOSIsIFwKLSAgICAgICAgICAiMC4wMDY3NywgMC4wMDY5MjcsIDAuMDA2OTk0LCAwLjAwNzA0MywgMC4wMDcwNzIsIDAuMDA3MDk1LCAwLjAwNzExMiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwODA4OSwgMC4wMDgzMTMsIDAuMDA4NDA3LCAwLjAwODQ3MywgMC4wMDg1MTQsIDAuMDA4NTQxLCAwLjAwODU2IiwgXAotICAgICAgICAgICIwLjAwODA4LCAwLjAwODMwNywgMC4wMDg0MDEsIDAuMDA4NDY4LCAwLjAwODUwOCwgMC4wMDg1MzUsIDAuMDA4NTU1IiwgXAotICAgICAgICAgICIwLjAwODA4MSwgMC4wMDgzMDUsIDAuMDA4Mzk5LCAwLjAwODQ2NiwgMC4wMDg1MDcsIDAuMDA4NTMzLCAwLjAwODU1MiIsIFwKLSAgICAgICAgICAiMC4wMDgwOCwgMC4wMDgzMDEsIDAuMDA4Mzk1LCAwLjAwODQ2MiwgMC4wMDg1MDMsIDAuMDA4NTMsIDAuMDA4NTQ5IiwgXAotICAgICAgICAgICIwLjAwODA3MywgMC4wMDgyOTQsIDAuMDA4Mzg3LCAwLjAwODQ1NSwgMC4wMDg0OTcsIDAuMDA4NTI1LCAwLjAwODU0NSIsIFwKLSAgICAgICAgICAiMC4wMDgwNjMsIDAuMDA4MjgxLCAwLjAwODM3NSwgMC4wMDg0NDUsIDAuMDA4NDg2LCAwLjAwODUxNSwgMC4wMDg1MzYiLCBcCi0gICAgICAgICAgIjAuMDA4MDU4LCAwLjAwODI3MiwgMC4wMDgzNjUsIDAuMDA4NDM1LCAwLjAwODQ3OSwgMC4wMDg1MDgsIDAuMDA4NTMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTMCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA4NDksIDAuMDA4NjY3LCAwLjAwODc0MSwgMC4wMDg3OTUsIDAuMDA4ODI5LCAwLjAwODg1LCAwLjAwODg2NiIsIFwKLSAgICAgICAgICAiMC4wMDg0OTEsIDAuMDA4NjY5LCAwLjAwODc0MywgMC4wMDg3OTYsIDAuMDA4ODI5LCAwLjAwODg1MSwgMC4wMDg4NjciLCBcCi0gICAgICAgICAgIjAuMDA4NDk1LCAwLjAwODY3MiwgMC4wMDg3NDUsIDAuMDA4Nzk4LCAwLjAwODgzMSwgMC4wMDg4NTQsIDAuMDA4ODY5IiwgXAotICAgICAgICAgICIwLjAwODQ5NiwgMC4wMDg2NzMsIDAuMDA4NzQ3LCAwLjAwODgsIDAuMDA4ODMyLCAwLjAwODg1NCwgMC4wMDg4NzEiLCBcCi0gICAgICAgICAgIjAuMDA4NDk2LCAwLjAwODY3MywgMC4wMDg3NDcsIDAuMDA4ODAyLCAwLjAwODgzMywgMC4wMDg4NTcsIDAuMDA4ODczIiwgXAotICAgICAgICAgICIwLjAwODQ5NSwgMC4wMDg2NzUsIDAuMDA4NzQ5LCAwLjAwODgsIDAuMDA4ODM1LCAwLjAwODg1NiwgMC4wMDg4NzMiLCBcCi0gICAgICAgICAgIjAuMDA4NDkzLCAwLjAwODY3NCwgMC4wMDg3NDksIDAuMDA4ODAyLCAwLjAwODgzNCwgMC4wMDg4NTcsIDAuMDA4ODc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA3NzM0LCAwLjAwNzk1NiwgMC4wMDgwNTEsIDAuMDA4MTIsIDAuMDA4MTYyLCAwLjAwODE5MSwgMC4wMDgyMTIiLCBcCi0gICAgICAgICAgIjAuMDA3NzI2LCAwLjAwNzk1MSwgMC4wMDgwNDUsIDAuMDA4MTEzLCAwLjAwODE1NiwgMC4wMDgxODUsIDAuMDA4MjA1IiwgXAotICAgICAgICAgICIwLjAwNzcyNiwgMC4wMDc5NSwgMC4wMDgwNDUsIDAuMDA4MTEzLCAwLjAwODE1NSwgMC4wMDgxODQsIDAuMDA4MjA0IiwgXAotICAgICAgICAgICIwLjAwNzcyNSwgMC4wMDc5NTEsIDAuMDA4MDQ0LCAwLjAwODExMywgMC4wMDgxNTUsIDAuMDA4MTg0LCAwLjAwODIwNCIsIFwKLSAgICAgICAgICAiMC4wMDc3MjYsIDAuMDA3OTUxLCAwLjAwODA0NSwgMC4wMDgxMTQsIDAuMDA4MTU2LCAwLjAwODE4NSwgMC4wMDgyMDUiLCBcCi0gICAgICAgICAgIjAuMDA3NzI2LCAwLjAwNzk1MiwgMC4wMDgwNDYsIDAuMDA4MTE0LCAwLjAwODE1NywgMC4wMDgxODYsIDAuMDA4MjA2IiwgXAotICAgICAgICAgICIwLjAwNzcyNywgMC4wMDc5NTMsIDAuMDA4MDQ3LCAwLjAwODExNywgMC4wMDgxNTksIDAuMDA4MTg3LCAwLjAwODIwOCIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IERGRkhRWDQgKgotICogLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoREZGSFFYNCkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjM5OTczOwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIGZmIChOMzAsUUJJTlQpIHsKLSAgICBuZXh0X3N0YXRlIDogIkQiOwotICAgIGNsb2NrZWRfb24gOiAiQ0siOwotICB9Ci0gIHBpbihDSykgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNTcyMjE4OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDU3MTk0OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDU3MjIxODsKLSAgICBjbG9jayA6IHRydWU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyNTMyLCAwLjAwMjUyMSwgMC4wMDI1MTIsIDAuMDAyNTA3LCAwLjAwMjUwMiwgMC4wMDI0OTUsIDAuMDAyNDkxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA2NjE5LCAwLjAwNjYxMiwgMC4wMDY2MDYsIDAuMDA2NjAyLCAwLjAwNjU5NywgMC4wMDY1OTMsIDAuMDA2NTg5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRCI7Ci0gICAgICBzZGZfY29uZCA6ICJEID09IDEnYjAiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMjcwNjY1LCAwLjI4MjQzNSwgMC4yOTc1MzksIDAuMzEzMDIyLCAwLjMyODQzMywgMC4zNTI4MjEsIDAuMzc0MzQ3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4yMjI1NjYsIDAuMjM0MDA4LCAwLjI0OTAzNSwgMC4yNjM5MDQsIDAuMjc4NzA4LCAwLjMwMjIwNiwgMC4zMjIzNiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNzcxMTczOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDc2ODE0OTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA3NzExNzM7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyMjczLCAwLjAwMjI1NiwgMC4wMDIyNDUsIDAuMDAyMjM4LCAwLjAwMjIzMywgMC4wMDIyMjQsIDAuMDAyMjIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDI5MzMsIDAuMDAyOTI0LCAwLjAwMjkxOCwgMC4wMDI5MTMsIDAuMDAyOTA5LCAwLjAwMjkwNCwgMC4wMDI5MDEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMzc1LCAtMC4wMjYyNSwgLTAuMDEzNzUsIC0wLjAwMTI1LCAwLjAxMTI1LCAwLjAyNzUsIDAuMDQyNSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjAzNzUsIC0wLjAyNSwgLTAuMDEyNSwgMCwgMC4wMTYyNSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDYxMjUsIC0wLjA1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAxMjUsIDAuMDAzNzUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjA3Mzc1LCAtMC4wNjI1LCAtMC4wNSwgLTAuMDM3NSwgLTAuMDI1LCAtMC4wMDg3NSwgMCIsIFwKLSAgICAgICAgICAiLTAuMDg2MjUsIC0wLjA3NSwgLTAuMDYyNSwgLTAuMDUsIC0wLjAzNzUsIC0wLjAyMTI1LCAtMC4wMTI1IiwgXAotICAgICAgICAgICItMC4xMDg3NSwgLTAuMDk3NSwgLTAuMDg1LCAtMC4wNzI1LCAtMC4wNiwgLTAuMDQzNzUsIC0wLjAyODc1IiwgXAotICAgICAgICAgICItMC4xMjM3NSwgLTAuMTEyNSwgLTAuMSwgLTAuMDg3NSwgLTAuMDc1LCAtMC4wNTg3NSwgLTAuMDQzNzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2ODc1LCAwLjA4LCAwLjA5ODc1LCAwLjExMTI1LCAwLjEzLCAwLjE1MjUsIDAuMTczNzUiLCBcCi0gICAgICAgICAgIjAuMDU3NSwgMC4wNjg3NSwgMC4wODc1LCAwLjEsIDAuMTEyNSwgMC4xNDEyNSwgMC4xNjI1IiwgXAotICAgICAgICAgICIwLjA0NSwgMC4wNTYyNSwgMC4wNjg3NSwgMC4wODc1LCAwLjEsIDAuMTIyNSwgMC4xNDM3NSIsIFwKLSAgICAgICAgICAiMC4wMzI1LCAwLjA0Mzc1LCAwLjA2MjUsIDAuMDc1LCAwLjA4NzUsIDAuMTE2MjUsIDAuMTM3NSIsIFwKLSAgICAgICAgICAiMC4wMjYyNSwgMC4wMzc1LCAwLjA1LCAwLjA2MjUsIDAuMDgxMjUsIDAuMTAzNzUsIDAuMTI1IiwgXAotICAgICAgICAgICIwLjAxLCAwLjAyMTI1LCAwLjAzMzc1LCAwLjA1MjUsIDAuMDY1LCAwLjA4NzUsIDAuMTA4NzUiLCBcCi0gICAgICAgICAgIjAuMDAxMjUsIDAuMDEyNSwgMC4wMjUsIDAuMDM3NSwgMC4wNTYyNSwgMC4wNzg3NSwgMC4xIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4MTI1LCAwLjA3LCAwLjA1NzUsIDAuMDQ1LCAwLjAzMjUsIDAuMDE2MjUsIDAuMDAxMjUiLCBcCi0gICAgICAgICAgIjAuMDkyNSwgMC4wODEyNSwgMC4wNjg3NSwgMC4wNTYyNSwgMC4wNDM3NSwgMC4wMjc1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMTA1LCAwLjA5Mzc1LCAwLjA4MTI1LCAwLjA2ODc1LCAwLjA1NjI1LCAwLjA0LCAwLjAyNSIsIFwKLSAgICAgICAgICAiMC4xMjM3NSwgMC4xMDYyNSwgMC4wOTM3NSwgMC4wODEyNSwgMC4wNjg3NSwgMC4wNTI1LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIjAuMTM2MjUsIDAuMTE4NzUsIDAuMTA2MjUsIDAuMDkzNzUsIDAuMDgxMjUsIDAuMDY1LCAwLjA1IiwgXAotICAgICAgICAgICIwLjE1MjUsIDAuMTQxMjUsIDAuMTI4NzUsIDAuMTE2MjUsIDAuMTAzNzUsIDAuMDg3NSwgMC4wNzI1IiwgXAotICAgICAgICAgICIwLjE3Mzc1LCAwLjE2MjUsIDAuMTQzNzUsIDAuMTMxMjUsIDAuMTE4NzUsIDAuMTAyNSwgMC4wODc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2MjUsIC0wLjAwNSwgLTAuMDIzNzUsIC0wLjAzNjI1LCAtMC4wNTUsIC0wLjA3NzUsIC0wLjA5ODc1IiwgXAotICAgICAgICAgICIwLjAxNzUsIDAuMDA2MjUsIC0wLjAxMjUsIC0wLjAyNSwgLTAuMDQzNzUsIC0wLjA2NjI1LCAtMC4wODc1IiwgXAotICAgICAgICAgICIwLjAzLCAwLjAxODc1LCAwLjAwNjI1LCAtMC4wMTI1LCAtMC4wMzEyNSwgLTAuMDUzNzUsIC0wLjA3NSIsIFwKLSAgICAgICAgICAiMC4wNDI1LCAwLjAzMTI1LCAwLjAxMjUsIDAsIC0wLjAxODc1LCAtMC4wNDEyNSwgLTAuMDYyNSIsIFwKLSAgICAgICAgICAiMC4wNTUsIDAuMDQzNzUsIDAuMDI1LCAwLjAxMjUsIC0wLjAwNjI1LCAtMC4wMjg3NSwgLTAuMDUiLCBcCi0gICAgICAgICAgIjAuMDc3NSwgMC4wNiwgMC4wNDc1LCAwLjAyODc1LCAwLjAxNjI1LCAtMC4wMTI1LCAtMC4wMzM3NSIsIFwKLSAgICAgICAgICAiMC4wOTI1LCAwLjA4MTI1LCAwLjA2MjUsIDAuMDUsIDAuMDMxMjUsIDAuMDAyNSwgLTAuMDE4NzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFEpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC41MjEzMzM7Ci0gICAgZnVuY3Rpb24gOiAiTjMwIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBub25fdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJpc2luZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIzODUyMSwgMC4zNjQ5MTIsIDAuNDg5ODcyLCAwLjU3OTEwMiwgMC43MjE5NDcsIDAuODQ2OTcxLCAxLjAyNTQ3IiwgXAotICAgICAgICAgICIwLjI1MDM1OSwgMC4zNzY3NDcsIDAuNTAxNzA1LCAwLjU5MDk0MywgMC43MzM3OTMsIDAuODU4ODI1LCAxLjAzNzMxIiwgXAotICAgICAgICAgICIwLjI2NTUxMywgMC4zOTE5MDcsIDAuNTE2ODcsIDAuNjA2MDk5LCAwLjc0ODk2MSwgMC44NzM5NzIsIDEuMDUyNDYiLCBcCi0gICAgICAgICAgIjAuMjgwNzExLCAwLjQwNzEsIDAuNTMyMDU3LCAwLjYyMTI5NiwgMC43NjQxNDYsIDAuODg5MTgsIDEuMDY3NjciLCBcCi0gICAgICAgICAgIjAuMjk2MzExLCAwLjQyMjY5NywgMC41NDc2NzMsIDAuNjM2OTAzLCAwLjc3OTczMSwgMC45MDQ3NzksIDEuMDgzMjgiLCBcCi0gICAgICAgICAgIjAuMzIwODA5LCAwLjQ0NzE5NiwgMC41NzIxNywgMC42NjE0LCAwLjgwNDIzOCwgMC45MjkyNjgsIDEuMTA3NzYiLCBcCi0gICAgICAgICAgIjAuMzQyMTA0LCAwLjQ2ODUwMywgMC41OTM0NjcsIDAuNjgyNjk3LCAwLjgyNTU4NiwgMC45NTA1NjksIDEuMTI5MDYiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTU4NDYsIDAuMzA0MDUyLCAwLjU1ODI4LCAwLjc0MDA3MywgMS4wMjk1NCwgMS4yODY0MywgMS42NTA0OCIsIFwKLSAgICAgICAgICAiMC4wNTU5MywgMC4zMDM1NCwgMC41NTczODUsIDAuNzQwMDQyLCAxLjAyOTc0LCAxLjI4MjU2LCAxLjY1MDQ2IiwgXAotICAgICAgICAgICIwLjA1NTgzNSwgMC4zMDQwNDEsIDAuNTU4MjkyLCAwLjc0MDA5LCAxLjAzMTUzLCAxLjI4Mjk1LCAxLjY1MDQ1IiwgXAotICAgICAgICAgICIwLjA1NTkzLCAwLjMwMzU0MSwgMC41NTc0MDEsIDAuNzQwMDQyLCAxLjAyOTc0LCAxLjI4MzMyLCAxLjY1MDQ1IiwgXAotICAgICAgICAgICIwLjA1NTkwMSwgMC4zMDM4MzEsIDAuNTU4MywgMC43NDAxMDYsIDEuMDI5NTcsIDEuMjgyNzYsIDEuNjUwNDMiLCBcCi0gICAgICAgICAgIjAuMDU1ODM0LCAwLjMwMzUyNywgMC41NTgyODMsIDAuNzQwMDc4LCAxLjAyOTU5LCAxLjI4Mjk1LCAxLjY1MDQ3IiwgXAotICAgICAgICAgICIwLjA1NTgzNSwgMC4zMDQwNDYsIDAuNTU4Mjg4LCAwLjc0MDA5MiwgMS4wMjg3NiwgMS4yODI5NSwgMS42NTA0NyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI3MDY2NSwgMC40MTc1MzEsIDAuNTYzMDk2LCAwLjY2NzExMSwgMC44MzM0NDcsIDAuOTc4OTQ0LCAxLjE4NjgyIiwgXAotICAgICAgICAgICIwLjI4MjQzNSwgMC40MjkzMDcsIDAuNTc0ODY0LCAwLjY3ODg1NCwgMC44NDUyODksIDAuOTkwNjk2LCAxLjE5ODU2IiwgXAotICAgICAgICAgICIwLjI5NzUzOSwgMC40NDQzOTYsIDAuNTg5OTczLCAwLjY5Mzk1NiwgMC44NjAzOTUsIDEuMDA1ODcsIDEuMjEzNzUiLCBcCi0gICAgICAgICAgIjAuMzEzMDIyLCAwLjQ1OTg5NiwgMC42MDU0NiwgMC43MDk0NzMsIDAuODc1ODE1LCAxLjAyMTMxLCAxLjIyOTI5IiwgXAotICAgICAgICAgICIwLjMyODQzMywgMC40NzUyODcsIDAuNjIwODY2LCAwLjcyNDg0NCwgMC44OTEyOSwgMS4wMzY3NywgMS4yNDQ2NCIsIFwKLSAgICAgICAgICAiMC4zNTI4MjEsIDAuNDk5Njk2LCAwLjY0NTI1OSwgMC43NDkyMzcsIDAuOTE1NjIsIDEuMDYxMTcsIDEuMjY5MDMiLCBcCi0gICAgICAgICAgIjAuMzc0MzQ3LCAwLjUyMTIwOSwgMC42NjY3ODcsIDAuNzcwNzcsIDAuOTM3MjA2LCAxLjA4MjY5LCAxLjI5MDUzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDYwMDEzLCAwLjM0NDg5MSwgMC42MzU5OTEsIDAuODQxMzI3LCAxLjE3MjA2LCAxLjQ2NjIxLCAxLjg3ODA0IiwgXAotICAgICAgICAgICIwLjA2MDAxLCAwLjM0NTY1OSwgMC42MzQ1MjYsIDAuODQzNTg5LCAxLjE3MjQ0LCAxLjQ2NDI3LCAxLjg4MTkyIiwgXAotICAgICAgICAgICIwLjA2MDAwOCwgMC4zNDUyMjIsIDAuNjM2MTAzLCAwLjg0MTY5MywgMS4xNzMyOSwgMS40NjU4NiwgMS44ODA4NSIsIFwKLSAgICAgICAgICAiMC4wNTk5OTksIDAuMzQ1NjU2LCAwLjYzNjAxMSwgMC44NDM3MTgsIDEuMTc0MjUsIDEuNDY2MjgsIDEuODc2MjMiLCBcCi0gICAgICAgICAgIjAuMDYwMDA3LCAwLjM0NDk4NiwgMC42MzYwNjcsIDAuODQxNTc3LCAxLjE3MjA1LCAxLjQ2NTgyLCAxLjg4MDg0IiwgXAotICAgICAgICAgICIwLjA2MDAyNywgMC4zNDU2NjUsIDAuNjM2MDcsIDAuODQxNTgxLCAxLjE3NDM2LCAxLjQ2NTgxLCAxLjg4MDgiLCBcCi0gICAgICAgICAgIjAuMDYsIDAuMzQ1MDI2LCAwLjYzNjEsIDAuODQxNjc2LCAxLjE3MzM0LCAxLjQ2NTg2LCAxLjg4MDI3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA4NzEsIDAuMDA4Nzg4LCAwLjAwODc4MywgMC4wMDg3NzgsIDAuMDA4Nzc2LCAwLjAwODc3MiwgMC4wMDg3NjgiLCBcCi0gICAgICAgICAgIjAuMDA4Njk5LCAwLjAwODc3OCwgMC4wMDg3NzMsIDAuMDA4NzY5LCAwLjAwODc2NCwgMC4wMDg3NiwgMC4wMDg3NTkiLCBcCi0gICAgICAgICAgIjAuMDA4Njg5LCAwLjAwODc2OCwgMC4wMDg3NjMsIDAuMDA4NzU4LCAwLjAwODc1MywgMC4wMDg3NSwgMC4wMDg3NDciLCBcCi0gICAgICAgICAgIjAuMDA4Njc5LCAwLjAwODc1OCwgMC4wMDg3NTMsIDAuMDA4NzQ5LCAwLjAwODc0NCwgMC4wMDg3NDEsIDAuMDA4NzM4IiwgXAotICAgICAgICAgICIwLjAwODY3MiwgMC4wMDg3NTEsIDAuMDA4NzQ3LCAwLjAwODc0MywgMC4wMDg3MzcsIDAuMDA4NzM0LCAwLjAwODczMiIsIFwKLSAgICAgICAgICAiMC4wMDg2NjMsIDAuMDA4NzQyLCAwLjAwODczOCwgMC4wMDg3MzQsIDAuMDA4NzI4LCAwLjAwODcyNSwgMC4wMDg3MjIiLCBcCi0gICAgICAgICAgIjAuMDA4NjU1LCAwLjAwODczNCwgMC4wMDg3MywgMC4wMDg3MjYsIDAuMDA4NzIxLCAwLjAwODcxOCwgMC4wMDg3MTUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwODkzNiwgMC4wMDkwNjksIDAuMDA5MDg3LCAwLjAwOTA5MiwgMC4wMDkwOTcsIDAuMDA5MDk5LCAwLjAwOTEwMSIsIFwKLSAgICAgICAgICAiMC4wMDg5MjQsIDAuMDA5MDYxLCAwLjAwOTA3OCwgMC4wMDkwODQsIDAuMDA5MDg4LCAwLjAwOTA5MSwgMC4wMDkwOTMiLCBcCi0gICAgICAgICAgIjAuMDA4OTEzLCAwLjAwOTA1LCAwLjAwOTA2OCwgMC4wMDkwNzQsIDAuMDA5MDc5LCAwLjAwOTA4MSwgMC4wMDkwODMiLCBcCi0gICAgICAgICAgIjAuMDA4OTA4LCAwLjAwOTA0NCwgMC4wMDkwNjEsIDAuMDA5MDY3LCAwLjAwOTA3MSwgMC4wMDkwNzQsIDAuMDA5MDc2IiwgXAotICAgICAgICAgICIwLjAwODkwMiwgMC4wMDkwMzcsIDAuMDA5MDU0LCAwLjAwOTA1OSwgMC4wMDkwNjQsIDAuMDA5MDY2LCAwLjAwOTA2OSIsIFwKLSAgICAgICAgICAiMC4wMDg4OTksIDAuMDA5MDM3LCAwLjAwOTA1NSwgMC4wMDkwNiwgMC4wMDkwNjUsIDAuMDA5MDY4LCAwLjAwOTA3IiwgXAotICAgICAgICAgICIwLjAwODg5OCwgMC4wMDkwMzUsIDAuMDA5MDUyLCAwLjAwOTA1OCwgMC4wMDkwNjMsIDAuMDA5MDY1LCAwLjAwOTA2NyIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogTk9SM1g0ICoKLSAqIC0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoTk9SM1g0KSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMjU1MzgxOwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDM0MTUyMzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDMzODYxMTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDM0MTUyMzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDEwNjIsIDAuMDAxMTAxLCAwLjAwMTEyMSwgMC4wMDExMzIsIDAuMDAxMTM5LCAwLjAwMTE0NiwgMC4wMDExNSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTU2LCAwLjAwMTU2MSwgMC4wMDE1NjIsIDAuMDAxNTYxLCAwLjAwMTU2MiwgMC4wMDE1NjIsIDAuMDAxNTYzIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDMzMDE3NzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDMyNzczMzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDMzMDE3NzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDEwNjcsIDAuMDAxMTMzLCAwLjAwMTE1NywgMC4wMDExNjcsIDAuMDAxMTcyLCAwLjAwMTE3NywgMC4wMDExODEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDEyNTUsIDAuMDAxMjU2LCAwLjAwMTI1NSwgMC4wMDEyNTYsIDAuMDAxMjU2LCAwLjAwMTI1NiwgMC4wMDEyNTYiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEMpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMzA5MjgzOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMzA5MjU2OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMzA5MjgzOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDM2NSwgMC4wMDAzNjUsIDAuMDAwMzY2LCAwLjAwMDM2NSwgMC4wMDAzNjYsIDAuMDAwMzY2LCAwLjAwMDM2NiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTQ1MiwgMC4wMDE0NTMsIDAuMDAxNDUzLCAwLjAwMTQ1MiwgMC4wMDE0NTMsIDAuMDAxNDUxLCAwLjAwMTQ1MiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjE5NDc4NzsKLSAgICBmdW5jdGlvbiA6ICIoISgoQStCKStDKSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTA5ODgsIDAuNTA2Njc5LCAwLjkwMzEzMiwgMS4xODY0MSwgMS42NDAzNCwgMi4wMzY0MSwgMi42MDIzNSIsIFwKLSAgICAgICAgICAiMC4xMjExMzYsIDAuNTE4MjIzLCAwLjkxNDMxOCwgMS4xOTg1NSwgMS42NTExMiwgMi4wNDc5NCwgMi42MTQzMiIsIFwKLSAgICAgICAgICAiMC4xMzM3OTksIDAuNTMwOTkxLCAwLjkyNzkxNSwgMS4yMTA4NCwgMS42NjQ0MywgMi4wNjA1NCwgMi42MjY5NyIsIFwKLSAgICAgICAgICAiMC4xNDU0ODIsIDAuNTQyOTkyLCAwLjkzOTMyMywgMS4yMjMzMiwgMS42NzU2MiwgMi4wNzM0MiwgMi42Mzg5OSIsIFwKLSAgICAgICAgICAiMC4xNTY3NDksIDAuNTU0MjMyLCAwLjk1MDc0NiwgMS4yMzQxNSwgMS42ODc3LCAyLjA4MzgzLCAyLjY1MDcyIiwgXAotICAgICAgICAgICIwLjE3NDAzLCAwLjU3MTY5OCwgMC45NjgyOTgsIDEuMjUxMzMsIDEuNzA1MiwgMi4xMDA5LCAyLjY2NzciLCBcCi0gICAgICAgICAgIjAuMTg4ODg1LCAwLjU4NjQ2MywgMC45ODMwMzIsIDEuMjY2MzIsIDEuNzE5NzksIDIuMTE2MTYsIDIuNjgyODYiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNzAxMDEsIDAuOTM0NTk2LCAxLjY5NTE3LCAyLjI0NDEyLCAzLjExMDM1LCAzLjg4NTAzLCA0Ljk3NDM2IiwgXAotICAgICAgICAgICIwLjE3MDA0NSwgMC45MzQ1NTUsIDEuNjk2MDUsIDIuMjM5MjQsIDMuMTE2OTYsIDMuODg0NjksIDQuOTYwOTkiLCBcCi0gICAgICAgICAgIjAuMTcwMzksIDAuOTMzMTAzLCAxLjY5OTEsIDIuMjQzNTgsIDMuMTE4MzYsIDMuODgzOTksIDQuOTYxNzgiLCBcCi0gICAgICAgICAgIjAuMTcwNTU2LCAwLjkzNDgwNiwgMS42OTc1OCwgMi4yMzg3NywgMy4xMTI2NiwgMy44ODU5NiwgNC45NzQ4MiIsIFwKLSAgICAgICAgICAiMC4xNzExNDQsIDAuOTM0MzU5LCAxLjY5NTg0LCAyLjI0MzgsIDMuMTE4MzcsIDMuODcyODEsIDQuOTc1NjUiLCBcCi0gICAgICAgICAgIjAuMTczNjUsIDAuOTMyMTkyLCAxLjY5NDc1LCAyLjI0MTE4LCAzLjExODU3LCAzLjg4MzE2LCA0Ljk2MTc5IiwgXAotICAgICAgICAgICIwLjE3Njg1NCwgMC45MzQzMzYsIDEuNjk3NjIsIDIuMjQzMTcsIDMuMTE3MiwgMy44NzYyMywgNC45NzQ5OSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0NDE0NywgMC4xOTE4OTEsIDAuMzM3NzA3LCAwLjQ0MTY5OCwgMC42MDgxMjMsIDAuNzUzNDc3LCAwLjk2MTU2IiwgXAotICAgICAgICAgICIwLjA1NTUzOSwgMC4yMDI5OTEsIDAuMzQ4ODcxLCAwLjQ1Mjg3OCwgMC42MTkxNTUsIDAuNzY0NTkzLCAwLjk3MjI0NyIsIFwKLSAgICAgICAgICAiMC4wNzA2MzgsIDAuMjE3OTA2LCAwLjM2Mzc0OSwgMC40Njc3NjIsIDAuNjMxMjIzLCAwLjc3NjY4MSwgMC45ODQ0NDIiLCBcCi0gICAgICAgICAgIjAuMDg1NjUsIDAuMjMyNTE2LCAwLjM3ODM0OSwgMC40ODIzNTEsIDAuNjQ4NzcxLCAwLjc4OTkxMywgMC45OTc1MjIiLCBcCi0gICAgICAgICAgIjAuMTAwOTk5LCAwLjI0NzU4NSwgMC4zOTMxNjQsIDAuNDk3MTIzLCAwLjY2MDMyNSwgMC44MDU4NSwgMS4wMTM0NSIsIFwKLSAgICAgICAgICAiMC4xMjQwMzEsIDAuMjcxOTg3LCAwLjQxNjYzNSwgMC41MjA2NzcsIDAuNjg2OCwgMC44MzIzNjcsIDEuMDQwMDciLCBcCi0gICAgICAgICAgIjAuMTQyNTcsIDAuMjkzMDMxLCAwLjQzNzQ5LCAwLjU0MTEzMywgMC43MDc1MDUsIDAuODUyODM3LCAxLjA2MDU1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDcxOTk5LCAwLjM2MDI2LCAwLjY0ODQ4MiwgMC44NTQxMjcsIDEuMTg0MjIsIDEuNDcxODcsIDEuODgzNyIsIFwKLSAgICAgICAgICAiMC4wNzE2MDEsIDAuMzYwMjM0LCAwLjY0ODQ4NiwgMC44NTQxNDgsIDEuMTgzNjIsIDEuNDcxOSwgMS44ODM0IiwgXAotICAgICAgICAgICIwLjA3NDA2MSwgMC4zNjAyNTEsIDAuNjQ4MzgxLCAwLjg1NDQ1LCAxLjE4MzgyLCAxLjQ3MjIxLCAxLjg4MzAxIiwgXAotICAgICAgICAgICIwLjA3OTE0MSwgMC4zNjAyNDEsIDAuNjQ4NjY2LCAwLjg1NDIwNywgMS4xODQxMSwgMS40NzE5LCAxLjg4MzMyIiwgXAotICAgICAgICAgICIwLjA4NTQyNSwgMC4zNjAzMTcsIDAuNjQ4NTIzLCAwLjg1NDM3NywgMS4xODM0NCwgMS40NzIyMywgMS44ODMzOSIsIFwKLSAgICAgICAgICAiMC4wOTc2MjgsIDAuMzYyNjcxLCAwLjY0ODY1NywgMC44NTQ3MTUsIDEuMTgzNjMsIDEuNDcyMjQsIDEuODgzNTgiLCBcCi0gICAgICAgICAgIjAuMTA5ODQsIDAuMzY2NjQ4LCAwLjY0ODc1NiwgMC44NTQzLCAxLjE4NDE1LCAxLjQ3MTg3LCAxLjg4MzQ2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTAzNDM1LCAwLjQ5OTk4MywgMC44OTY3NTYsIDEuMTc5OTEsIDEuNjMzODQsIDIuMDI5NzksIDIuNTk2IiwgXAotICAgICAgICAgICIwLjExMzcyOCwgMC41MTA2MTQsIDAuOTA3NTk5LCAxLjE5MDIyLCAxLjY0NDAxLCAyLjAzOTcsIDIuNjA2NjgiLCBcCi0gICAgICAgICAgIjAuMTI2MTAyLCAwLjUyMzQ5NCwgMC45MTk5NDYsIDEuMjAzMjIsIDEuNjU3MjEsIDIuMDUzMTIsIDIuNjE5NjUiLCBcCi0gICAgICAgICAgIjAuMTM4MDI5LCAwLjUzNTM0MywgMC45MzIwMjEsIDEuMjE1MzEsIDEuNjY5MjIsIDIuMDY1MDMsIDIuNjMxMzEiLCBcCi0gICAgICAgICAgIjAuMTQ5Nzk5LCAwLjU0NzI2LCAwLjk0NDA3NSwgMS4yMjcyLCAxLjY4MDE4LCAyLjA3Nzk3LCAyLjY0MzQ1IiwgXAotICAgICAgICAgICIwLjE2ODYsIDAuNTY2MDQ3LCAwLjk2Mjc4NCwgMS4yNDY0MywgMS42OTk1NCwgMi4wOTU5NywgMi42NjIyIiwgXAotICAgICAgICAgICIwLjE4NDk1NywgMC41ODI2OTIsIDAuOTc5NDAzLCAxLjI2MjQ3LCAxLjcxNjIxLCAyLjExMjI1LCAyLjY3ODc2Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTcwMTE0LCAwLjkzNDYzOSwgMS42OTQ4MiwgMi4yNDM5NSwgMy4xMTAxOSwgMy44ODQ2NywgNC45NjI1MSIsIFwKLSAgICAgICAgICAiMC4xNzAyNzksIDAuOTMzMDUsIDEuNjk0NDcsIDIuMjQwNjksIDMuMTE4MTksIDMuODgyODEsIDQuOTYxOCIsIFwKLSAgICAgICAgICAiMC4xNzAzNTMsIDAuOTM0ODUzLCAxLjY5ODI3LCAyLjI0Mzk2LCAzLjExOTY5LCAzLjg4NDY4LCA0Ljk3NTI2IiwgXAotICAgICAgICAgICIwLjE3MDk2MywgMC45MzQxMiwgMS42OTYzOCwgMi4yNDM4NiwgMy4xMTk0LCAzLjg4NDE1LCA0Ljk2NjgzIiwgXAotICAgICAgICAgICIwLjE3MjU5NCwgMC45MzQyMTksIDEuNjk4NjIsIDIuMjQxNDMsIDMuMTE2MDEsIDMuODcyMTQsIDQuOTc0NzEiLCBcCi0gICAgICAgICAgIjAuMTc3MzEyLCAwLjkzMzA1NSwgMS42OTc3NiwgMi4yNDQ1OSwgMy4xMTA1NSwgMy44ODQyMywgNC45NjYzNiIsIFwKLSAgICAgICAgICAiMC4xODI4MzMsIDAuOTM0MjU5LCAxLjY5ODExLCAyLjI0MDYyLCAzLjExNzk3LCAzLjg3NTMsIDQuOTY2MDMiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDA1NzksIDAuMTg1NTEzLCAwLjMyOTgxMywgMC40MzI3NTcsIDAuNTk3NzA5LCAwLjc0MTc5NSwgMC45NDc3NDQiLCBcCi0gICAgICAgICAgIjAuMDUyMjEyLCAwLjE5NzI4LCAwLjM0MTUzOCwgMC40NDQ1NDksIDAuNjA5MzYsIDAuNzUzMzczLCAwLjk1OTIwNCIsIFwKLSAgICAgICAgICAiMC4wNjcyNzksIDAuMjExOTA2LCAwLjM1NjE4NSwgMC40NTkyNjcsIDAuNjI0MTE3LCAwLjc2ODEyNiwgMC45NzQyNDQiLCBcCi0gICAgICAgICAgIjAuMDgyMzk0LCAwLjIyNzE3NiwgMC4zNzE0OTksIDAuNDc0NTk3LCAwLjYzOTIyNiwgMC43ODMzNzcsIDAuOTg5NjMxIiwgXAotICAgICAgICAgICIwLjA5NzM4LCAwLjI0MTYwMywgMC4zODU1NjQsIDAuNDg4NjMxLCAwLjY1MDEyMSwgMC43OTQzMTEsIDEuMDAwMiIsIFwKLSAgICAgICAgICAiMC4xMTk0NTMsIDAuMjY1OTUsIDAuNDEwMzM3LCAwLjUxMjAzLCAwLjY3NjYzOCwgMC44MjA4MSwgMS4wMjY4NSIsIFwKLSAgICAgICAgICAiMC4xMzY3NiwgMC4yODcwMTksIDAuNDMwNTE3LCAwLjUzMjU3LCAwLjY5NzM2NCwgMC44NDEzNzgsIDEuMDQ3MjQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjU4MzQsIDAuMzUxODMxLCAwLjYzNzc2NiwgMC44NDE3NDMsIDEuMTY4MjYsIDEuNDU0MTUsIDEuODYyNyIsIFwKLSAgICAgICAgICAiMC4wNjU4MjgsIDAuMzUxODYyLCAwLjYzNzU2OSwgMC44NDE1MjEsIDEuMTY4MzMsIDEuNDUzODIsIDEuODYyMzciLCBcCi0gICAgICAgICAgIjAuMDY4NzYzLCAwLjM1MTgzNywgMC42Mzc2LCAwLjg0MTgyMywgMS4xNjgzLCAxLjQ1NDI5LCAxLjg2MjE2IiwgXAotICAgICAgICAgICIwLjA3NDA4NiwgMC4zNTE4MTQsIDAuNjM3NjAxLCAwLjg0MTY2NSwgMS4xNjg0NSwgMS40NTM5MSwgMS44NjIxNiIsIFwKLSAgICAgICAgICAiMC4wODExNywgMC4zNTIwMDMsIDAuNjM3NTU2LCAwLjg0MTY5NCwgMS4xNjc5OCwgMS40NTM5MiwgMS44NjIwOSIsIFwKLSAgICAgICAgICAiMC4wOTQ0MTQsIDAuMzU0NTk3LCAwLjYzNzU4NSwgMC44NDE4ODcsIDEuMTY4MiwgMS40NTM5NywgMS44NjIwNSIsIFwKLSAgICAgICAgICAiMC4xMDc1NzMsIDAuMzU4OTM2LCAwLjYzNzkwOCwgMC44NDE3NDgsIDEuMTY4MjYsIDEuNDUzOTgsIDEuODYyMTMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODc5NDYsIDAuNDg0NjE0LCAwLjg4MTY1NiwgMS4xNjQxOSwgMS42MTgyMSwgMi4wMTQxMiwgMi41ODA0MyIsIFwKLSAgICAgICAgICAiMC4wOTcwMTksIDAuNDk0MzE4LCAwLjg5MDg4MiwgMS4xNzQyNCwgMS42MjcyNiwgMi4wMjQ4NCwgMi41OTA0NiIsIFwKLSAgICAgICAgICAiMC4xMDg3MzksIDAuNTA2MzE5LCAwLjkwMjgyMywgMS4xODYzNCwgMS42NDAzLCAyLjAzNjAyLCAyLjYwMjQ0IiwgXAotICAgICAgICAgICIwLjEyMTI1MiwgMC41MTkxMzksIDAuOTE1NTIzLCAxLjE5OTE4LCAxLjY1MjYsIDIuMDQ5NDgsIDIuNjE0NjYiLCBcCi0gICAgICAgICAgIjAuMTMzNDA5LCAwLjUzMDY5OCwgMC45Mjc0OSwgMS4yMTA2MSwgMS42NjM1MiwgMi4wNjA5MywgMi42MjY0NyIsIFwKLSAgICAgICAgICAiMC4xNTMyNDcsIDAuNTQ5Nzc4LCAwLjk0NjUyOCwgMS4yMjk4MywgMS42ODM3NywgMi4wODA2LCAyLjY0NTg4IiwgXAotICAgICAgICAgICIwLjE3MDg3MSwgMC41NjY5NzIsIDAuOTYzODE3LCAxLjI0Njk4LCAxLjcwMDE0LCAyLjA5NzIsIDIuNjYzMjQiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNjk5NSwgMC45MzMyNjksIDEuNjk5NDcsIDIuMjQ1MDgsIDMuMTE5MDMsIDMuODg0MDksIDQuOTY1ODgiLCBcCi0gICAgICAgICAgIjAuMTY5NzY5LCAwLjkzMjQ0NywgMS42OTgzMSwgMi4yMzk0MiwgMy4xMTY3LCAzLjg3MjgzLCA0Ljk3NTI1IiwgXAotICAgICAgICAgICIwLjE2OTY2OSwgMC45MzQxOCwgMS42OTYyMywgMi4yNDQwMSwgMy4xMTAzLCAzLjg4NDI2LCA0Ljk3NDY0IiwgXAotICAgICAgICAgICIwLjE3MjAxMywgMC45MzQ3MTQsIDEuNjk5MTksIDIuMjM5NTIsIDMuMTE4MiwgMy44ODU2MSwgNC45NzI5OSIsIFwKLSAgICAgICAgICAiMC4xNzY2MDUsIDAuOTMyMjc1LCAxLjY5MzgxLCAyLjIzOTYsIDMuMTEyNjgsIDMuODg1MzMsIDQuOTczNjciLCBcCi0gICAgICAgICAgIjAuMTg2Mzc3LCAwLjkzMjg2OSwgMS42OTc1OSwgMi4yNDMyNywgMy4xMTAxMiwgMy44ODU3NCwgNC45NzM0OSIsIFwKLSAgICAgICAgICAiMC4xOTY1MzIsIDAuOTMzODM2LCAxLjY5NzksIDIuMjQxMzIsIDMuMTE2MjksIDMuODg0NTgsIDQuOTY1NyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzNTc3LCAwLjE4MDIyNywgMC4zMjQ2MjgsIDAuNDI3Njg2LCAwLjU5MjczOSwgMC43MzcwNzcsIDAuOTQzODAzIiwgXAotICAgICAgICAgICIwLjA0NzU1MywgMC4xOTIyMDMsIDAuMzM2NjMxLCAwLjQzOTcxMiwgMC42MDQ2MzMsIDAuNzQ4OTk0LCAwLjk1NTQxOCIsIFwKLSAgICAgICAgICAiMC4wNjI3MSwgMC4yMDY4MzcsIDAuMzUwMzA3LCAwLjQ1MzQ1MSwgMC42MTg0NTgsIDAuNzYyNzAzLCAwLjk2ODkxIiwgXAotICAgICAgICAgICIwLjA3NzY3MiwgMC4yMjE2NDksIDAuMzY2MDAzLCAwLjQ2OTA4OSwgMC42MzQwNDUsIDAuNzc1NjQsIDAuOTgyMTkzIiwgXAotICAgICAgICAgICIwLjA5MTk3NCwgMC4yMzY0OTIsIDAuMzgwODE1LCAwLjQ4Mzk2NCwgMC42NDkyNTIsIDAuNzkwMDE3LCAwLjk5NjQzNSIsIFwKLSAgICAgICAgICAiMC4xMTMwNTksIDAuMjYxMDI4LCAwLjQwNTQ3LCAwLjUwNzIsIDAuNjcyMjk1LCAwLjgxNjUwMywgMS4wMjI3NyIsIFwKLSAgICAgICAgICAiMC4xMjk1MzQsIDAuMjgwODcsIDAuNDI1NTY3LCAwLjUyODAzOSwgMC42OTI5MzYsIDAuODM3MzAzLCAxLjA0MzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjA1NzYsIDAuMzQ4MjY1LCAwLjYzNTcxNiwgMC44NDMxODksIDEuMTcwNzcsIDEuNDU4MzMsIDEuODY5MjkiLCBcCi0gICAgICAgICAgIjAuMDYwNzk5LCAwLjM0NzgxMSwgMC42MzYxNjMsIDAuODQxMjgsIDEuMTcwNjcsIDEuNDU2MDYsIDEuODY3MzEiLCBcCi0gICAgICAgICAgIjAuMDY0MzU2LCAwLjM0OTAzLCAwLjYzNjE2LCAwLjg0MTg2NiwgMS4xNzA2OSwgMS40NjAzNywgMS44NjYzIiwgXAotICAgICAgICAgICIwLjA3MDUzMSwgMC4zNDc5NiwgMC42MzU1NzgsIDAuODQxNjkzLCAxLjE3MTQ1LCAxLjQ1NTgzLCAxLjg2Njc5IiwgXAotICAgICAgICAgICIwLjA3ODU1MywgMC4zNDg0NTEsIDAuNjM1MTc4LCAwLjg0MTQ0LCAxLjE2OTQ1LCAxLjQ2MTIxLCAxLjg3MDg4IiwgXAotICAgICAgICAgICIwLjA5MjUyOCwgMC4zNTIxMTYsIDAuNjM2MTg5LCAwLjg0MDQ3MiwgMS4xNzA4NSwgMS40NTU5MywgMS44NjcwOCIsIFwKLSAgICAgICAgICAiMC4xMDYwODYsIDAuMzU3MzEzLCAwLjYzNzA1NywgMC44NDIzLCAxLjE2OTI0LCAxLjQ1NjU4LCAxLjg3MzA2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDgwODIsIDAuMDA4MDkzLCAwLjAwODA5NCwgMC4wMDgwOTQsIDAuMDA4MDk0LCAwLjAwODA5NSwgMC4wMDgwOTQiLCBcCi0gICAgICAgICAgIjAuMDA4MDQsIDAuMDA4MDg0LCAwLjAwODA5LCAwLjAwODA5LCAwLjAwODA5MSwgMC4wMDgwOTIsIDAuMDA4MDkyIiwgXAotICAgICAgICAgICIwLjAwODAwNywgMC4wMDgwNzYsIDAuMDA4MDg0LCAwLjAwODA4NywgMC4wMDgwODUsIDAuMDA4MDkxLCAwLjAwODA5MiIsIFwKLSAgICAgICAgICAiMC4wMDc5ODMsIDAuMDA4MDYzLCAwLjAwODA4MiwgMC4wMDgwODEsIDAuMDA4MDg1LCAwLjAwODA4NSwgMC4wMDgwODYiLCBcCi0gICAgICAgICAgIjAuMDA3OTY4LCAwLjAwODA0NywgMC4wMDgwNjYsIDAuMDA4MDczLCAwLjAwODA4MiwgMC4wMDgwODYsIDAuMDA4MDg3IiwgXAotICAgICAgICAgICIwLjAwNzk1MSwgMC4wMDgwNDEsIDAuMDA4MDYzLCAwLjAwODA2OSwgMC4wMDgwNzYsIDAuMDA4MDc3LCAwLjAwODA4MiIsIFwKLSAgICAgICAgICAiMC4wMDc5NDEsIDAuMDA4MDMyLCAwLjAwODA2MSwgMC4wMDgwNjgsIDAuMDA4MDYyLCAwLjAwODA3NywgMC4wMDgwODEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjk4MywgMC4wMDI5ODIsIDAuMDAyOTg1LCAwLjAwMjk4MywgMC4wMDI5ODIsIDAuMDAyOTgyLCAwLjAwMjk4MSIsIFwKLSAgICAgICAgICAiMC4wMDI4ODQsIDAuMDAyOTAyLCAwLjAwMjkwMiwgMC4wMDI5MDIsIDAuMDAyOTAxLCAwLjAwMjkwMSwgMC4wMDI5IiwgXAotICAgICAgICAgICIwLjAwMjg1MSwgMC4wMDI4NzYsIDAuMDAyODgsIDAuMDAyODgsIDAuMDAyODczLCAwLjAwMjg3MiwgMC4wMDI4NzMiLCBcCi0gICAgICAgICAgIjAuMDAyODI3LCAwLjAwMjg2NCwgMC4wMDI4NywgMC4wMDI4NzEsIDAuMDAyODcyLCAwLjAwMjg2MywgMC4wMDI4NjUiLCBcCi0gICAgICAgICAgIjAuMDAyODEsIDAuMDAyODU2LCAwLjAwMjg2MiwgMC4wMDI4NjQsIDAuMDAyODYsIDAuMDAyODYyLCAwLjAwMjg2MiIsIFwKLSAgICAgICAgICAiMC4wMDI3OTEsIDAuMDAyODQ3LCAwLjAwMjg1NSwgMC4wMDI4NTcsIDAuMDAyODU4LCAwLjAwMjg1OSwgMC4wMDI4NTkiLCBcCi0gICAgICAgICAgIjAuMDAyNzg1LCAwLjAwMjg0MSwgMC4wMDI4NCwgMC4wMDI4NTQsIDAuMDAyODU0LCAwLjAwMjg1NywgMC4wMDI4NTgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNzA5LCAwLjAwNzA5OSwgMC4wMDcxMDEsIDAuMDA3MTAyLCAwLjAwNzEwMiwgMC4wMDcxMDIsIDAuMDA3MTAxIiwgXAotICAgICAgICAgICIwLjAwNzA0NywgMC4wMDcwOTYsIDAuMDA3MDk2LCAwLjAwNzA5OCwgMC4wMDcxMDUsIDAuMDA3MDk5LCAwLjAwNzEiLCBcCi0gICAgICAgICAgIjAuMDA3MDEzLCAwLjAwNzA4LCAwLjAwNzA5LCAwLjAwNzA4OSwgMC4wMDcwOTYsIDAuMDA3MDk3LCAwLjAwNzA5OCIsIFwKLSAgICAgICAgICAiMC4wMDY5OTEsIDAuMDA3MDcsIDAuMDA3MDg1LCAwLjAwNzA4OCwgMC4wMDcwOTMsIDAuMDA3MDkxLCAwLjAwNzA5NSIsIFwKLSAgICAgICAgICAiMC4wMDY5NzUsIDAuMDA3MDYxLCAwLjAwNzA3OCwgMC4wMDcwODQsIDAuMDA3MDksIDAuMDA3MDkxLCAwLjAwNzA5MyIsIFwKLSAgICAgICAgICAiMC4wMDY5NTgsIDAuMDA3MDQ4LCAwLjAwNzA3NCwgMC4wMDcwNzcsIDAuMDA3MDgzLCAwLjAwNzA4NywgMC4wMDcwODkiLCBcCi0gICAgICAgICAgIjAuMDA2OTQ4LCAwLjAwNzAzNiwgMC4wMDcwNjMsIDAuMDA3MDcxLCAwLjAwNzA4LCAwLjAwNzA4MiwgMC4wMDcwODgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTc0NywgMC4wMDE3NTEsIDAuMDAxNzUxLCAwLjAwMTc1MSwgMC4wMDE3NSwgMC4wMDE3NSwgMC4wMDE3NDkiLCBcCi0gICAgICAgICAgIjAuMDAxNzA0LCAwLjAwMTc0MiwgMC4wMDE3NDYsIDAuMDAxNzQ3LCAwLjAwMTc0OCwgMC4wMDE3NDgsIDAuMDAxNzQ4IiwgXAotICAgICAgICAgICIwLjAwMTY1MywgMC4wMDE3MjgsIDAuMDAxNzM4LCAwLjAwMTc0MSwgMC4wMDE3NDQsIDAuMDAxNzQ1LCAwLjAwMTc0NSIsIFwKLSAgICAgICAgICAiMC4wMDE2MTksIDAuMDAxNzE3LCAwLjAwMTczMiwgMC4wMDE3MzcsIDAuMDAxNzQsIDAuMDAxNzQxLCAwLjAwMTc0MyIsIFwKLSAgICAgICAgICAiMC4wMDE1OTYsIDAuMDAxNzA1LCAwLjAwMTcyNSwgMC4wMDE3MywgMC4wMDE3MzUsIDAuMDAxNzM3LCAwLjAwMTczOSIsIFwKLSAgICAgICAgICAiMC4wMDE1NjIsIDAuMDAxNjkzLCAwLjAwMTcxNywgMC4wMDE3MjQsIDAuMDAxNzMsIDAuMDAxNzMzLCAwLjAwMTczNyIsIFwKLSAgICAgICAgICAiMC4wMDE1NDksIDAuMDAxNjgzLCAwLjAwMTcwNCwgMC4wMDE3MTksIDAuMDAxNzI3LCAwLjAwMTczLCAwLjAwMTczNCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2MDQzLCAwLjAwNjA1OSwgMC4wMDYwNjEsIDAuMDA2MDYsIDAuMDA2MDYyLCAwLjAwNjA2MSwgMC4wMDYwNjEiLCBcCi0gICAgICAgICAgIjAuMDA1OTc1LCAwLjAwNjA0NSwgMC4wMDYwNTMsIDAuMDA2MDU0LCAwLjAwNjA2LCAwLjAwNjA1NywgMC4wMDYwNTkiLCBcCi0gICAgICAgICAgIjAuMDA1OTIyLCAwLjAwNjAyNiwgMC4wMDYwNCwgMC4wMDYwNDcsIDAuMDA2MDUsIDAuMDA2MDUyLCAwLjAwNjA1NCIsIFwKLSAgICAgICAgICAiMC4wMDU4OTIsIDAuMDA2MDEyLCAwLjAwNjAzMywgMC4wMDYwMzksIDAuMDA2MDQ3LCAwLjAwNjA0OCwgMC4wMDYwNTEiLCBcCi0gICAgICAgICAgIjAuMDA1ODcxLCAwLjAwNTk5OCwgMC4wMDYwMjMsIDAuMDA2MDMyLCAwLjAwNjA0MSwgMC4wMDYwNDQsIDAuMDA2MDQ3IiwgXAotICAgICAgICAgICIwLjAwNTg1NSwgMC4wMDU5NzksIDAuMDA2MDExLCAwLjAwNjAyMywgMC4wMDYwMzIsIDAuMDA2MDM2LCAwLjAwNjA0MiIsIFwKLSAgICAgICAgICAiMC4wMDU4NSwgMC4wMDU5NjIsIDAuMDA2MDA1LCAwLjAwNjAxMywgMC4wMDYwMjUsIDAuMDA2MDMyLCAwLjAwNjAzOCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwMzIyLCAwLjAwMDM0OCwgMC4wMDAzNSwgMC4wMDAzNTEsIDAuMDAwMzUyLCAwLjAwMDM1MiwgMC4wMDAzNTIiLCBcCi0gICAgICAgICAgIjAuMDAwMzA3LCAwLjAwMDQwNSwgMC4wMDA0MTcsIDAuMDAwNDIsIDAuMDAwNDIzLCAwLjAwMDQyNCwgMC4wMDA0MjUiLCBcCi0gICAgICAgICAgIjAuMDAwMjUxLCAwLjAwMDQwNiwgMC4wMDA0MjgsIDAuMDAwNDM1LCAwLjAwMDQ0LCAwLjAwMDQ0MywgMC4wMDA0NDYiLCBcCi0gICAgICAgICAgIjAuMDAwMjA2LCAwLjAwMDM5NiwgMC4wMDA0MjQsIDAuMDAwNDMyLCAwLjAwMDQ0LCAwLjAwMDQ0NywgMC4wMDA0NTEiLCBcCi0gICAgICAgICAgIjAuMDAwMTU5LCAwLjAwMDM3OCwgMC4wMDA0MTYsIDAuMDAwNDI3LCAwLjAwMDQzNSwgMC4wMDA0NDUsIDAuMDAwNDUiLCBcCi0gICAgICAgICAgIjAuMDAwMTI4LCAwLjAwMDM2MiwgMC4wMDA0MDQsIDAuMDAwNDIsIDAuMDAwNDMzLCAwLjAwMDQzOSwgMC4wMDA0NDUiLCBcCi0gICAgICAgICAgIjAuMDAwMDk0LCAwLjAwMDMzNywgMC4wMDAzOTMsIDAuMDAwNDA4LCAwLjAwMDQyNCwgMC4wMDA0MzIsIDAuMDAwNDQiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogRURGRlRSWDIgKgotICogLS0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKEVERkZUUlgyKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuNDU4MjM3OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIGZmIChOMzAsUUJJTlQpIHsKLSAgICBuZXh0X3N0YXRlIDogIigoKCEoKCFEKSBFKSkgKCEoKCFFKSAoIU4zMCkpKSkgUk4pIjsKLSAgICBjbG9ja2VkX29uIDogIkNLIjsKLSAgfQotICBwaW4oQ0spICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDU4ODAxOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDU4NzY4NzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA1ODgwMTsKLSAgICBjbG9jayA6IHRydWU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyMzc2LCAwLjAwMjM2NSwgMC4wMDIzNTUsIDAuMDAyMzQ5LCAwLjAwMjM0NCwgMC4wMDIzMzcsIDAuMDAyMzMzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA1NDY2LCAwLjAwNTQ1NiwgMC4wMDU0NDYsIDAuMDA1NDM3LCAwLjAwNTQzLCAwLjAwNTQyMiwgMC4wMDU0MTMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFEJiFFJiFSTiI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fRV9FUV8wX0FOX1JOX0VRXzAgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4zNDI3NjQsIDAuMzU0NzQxLCAwLjM2OTgzLCAwLjM4NTMyNiwgMC40MDA3MzMsIDAuNDI1MTgsIDAuNDQ2MjY2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4yMjAxOTMsIDAuMjMxNDMsIDAuMjQ2NTM5LCAwLjI2MTM2MywgMC4yNzYwNzcsIDAuMjk5MjQzLCAwLjMxODQ4MiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNTc5NDE7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNTc5MTE1OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDU3OTQxOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNDM3MSwgMC4wMDQzNTIsIDAuMDA0MzM5LCAwLjAwNDMzMSwgMC4wMDQzMjcsIDAuMDA0MzIzLCAwLjAwNDMyMSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzk5NywgMC4wMDM5ODQsIDAuMDAzOTczLCAwLjAwMzk2OSwgMC4wMDM5NjQsIDAuMDAzOTYsIDAuMDAzOTU4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIkUmUk4iOwotICAgICAgc2RmX2NvbmQgOiAiRV9FUV8xX0FOX1JOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMTkzNzUsIC0wLjE4MjUsIC0wLjE3LCAtMC4xNTc1LCAtMC4xNDUsIC0wLjEyODc1LCAtMC4xMiIsIFwKLSAgICAgICAgICAiLTAuMjA1LCAtMC4xOTM3NSwgLTAuMTgxMjUsIC0wLjE2ODc1LCAtMC4xNTYyNSwgLTAuMTQsIC0wLjEzMTI1IiwgXAotICAgICAgICAgICItMC4yMTc1LCAtMC4yMDYyNSwgLTAuMTkzNzUsIC0wLjE4MTI1LCAtMC4xNzUsIC0wLjE1ODc1LCAtMC4xNDM3NSIsIFwKLSAgICAgICAgICAiLTAuMjMsIC0wLjIxODc1LCAtMC4yMTI1LCAtMC4yLCAtMC4xODc1LCAtMC4xNzEyNSwgLTAuMTYyNSIsIFwKLSAgICAgICAgICAiLTAuMjQ4NzUsIC0wLjIzNzUsIC0wLjIyNSwgLTAuMjEyNSwgLTAuMiwgLTAuMTgzNzUsIC0wLjE3NSIsIFwKLSAgICAgICAgICAiLTAuMjY1LCAtMC4yNiwgLTAuMjQ3NSwgLTAuMjM1LCAtMC4yMjI1LCAtMC4yMDYyNSwgLTAuMTk3NSIsIFwKLSAgICAgICAgICAiLTAuMjg2MjUsIC0wLjI3NSwgLTAuMjYyNSwgLTAuMjUsIC0wLjIzNzUsIC0wLjIyNzUsIC0wLjIxMjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wNzUsIC0wLjA2Mzc1LCAtMC4wNTEyNSwgLTAuMDM4NzUsIC0wLjAyLCAwLjAwMjUsIDAuMDIzNzUiLCBcCi0gICAgICAgICAgIi0wLjA4NjI1LCAtMC4wODEyNSwgLTAuMDYyNSwgLTAuMDUsIC0wLjAzMTI1LCAtMC4wMDg3NSwgMC4wMTI1IiwgXAotICAgICAgICAgICItMC4xMDUsIC0wLjA5Mzc1LCAtMC4wNzUsIC0wLjA2MjUsIC0wLjA1LCAtMC4wMjEyNSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjExNzUsIC0wLjEwNjI1LCAtMC4wOTM3NSwgLTAuMDc1LCAtMC4wNjI1LCAtMC4wNCwgLTAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjEzLCAtMC4xMTg3NSwgLTAuMTA2MjUsIC0wLjA4NzUsIC0wLjA3NSwgLTAuMDUyNSwgLTAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjE0NjI1LCAtMC4xMzUsIC0wLjEyMjUsIC0wLjExLCAtMC4wOTEyNSwgLTAuMDY4NzUsIC0wLjA0NzUiLCBcCi0gICAgICAgICAgIi0wLjE2MTI1LCAtMC4xNSwgLTAuMTM3NSwgLTAuMTI1LCAtMC4xMDYyNSwgLTAuMDgzNzUsIC0wLjA2MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIkUmUk4iOwotICAgICAgc2RmX2NvbmQgOiAiRV9FUV8xX0FOX1JOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjgxMjUsIDAuMjcsIDAuMjU3NSwgMC4yMzg3NSwgMC4yMzI1LCAwLjIxLCAwLjIwMTI1IiwgXAotICAgICAgICAgICIwLjI5MjUsIDAuMjgxMjUsIDAuMjY4NzUsIDAuMjU2MjUsIDAuMjQzNzUsIDAuMjI3NSwgMC4yMTI1IiwgXAotICAgICAgICAgICIwLjMxMTI1LCAwLjI5Mzc1LCAwLjI4MTI1LCAwLjI2ODc1LCAwLjI1NjI1LCAwLjI0LCAwLjIyNSIsIFwKLSAgICAgICAgICAiMC4zMjM3NSwgMC4zMTI1LCAwLjI5Mzc1LCAwLjI4MTI1LCAwLjI2ODc1LCAwLjI1MjUsIDAuMjQzNzUiLCBcCi0gICAgICAgICAgIjAuMzM2MjUsIDAuMzI1LCAwLjMxMjUsIDAuMywgMC4yODc1LCAwLjI3MTI1LCAwLjI1NjI1IiwgXAotICAgICAgICAgICIwLjM1ODc1LCAwLjM0NzUsIDAuMzI4NzUsIDAuMzE2MjUsIDAuMzAzNzUsIDAuMjg3NSwgMC4yNzg3NSIsIFwKLSAgICAgICAgICAiMC4zNzM3NSwgMC4zNjI1LCAwLjM1LCAwLjMzNzUsIDAuMzI1LCAwLjMwODc1LCAwLjI5Mzc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTY4NzUsIDAuMTU3NSwgMC4xMzg3NSwgMC4xMiwgMC4xMDc1LCAwLjA3ODc1LCAwLjA1NzUiLCBcCi0gICAgICAgICAgIjAuMTgsIDAuMTY4NzUsIDAuMTUsIDAuMTM3NSwgMC4xMTg3NSwgMC4wOSwgMC4wNjg3NSIsIFwKLSAgICAgICAgICAiMC4xOTI1LCAwLjE4MTI1LCAwLjE2MjUsIDAuMTUsIDAuMTMxMjUsIDAuMTA4NzUsIDAuMDg3NSIsIFwKLSAgICAgICAgICAiMC4yMDUsIDAuMTkzNzUsIDAuMTgxMjUsIDAuMTYyNSwgMC4xNSwgMC4xMjEyNSwgMC4xIiwgXAotICAgICAgICAgICIwLjIxNzUsIDAuMjA2MjUsIDAuMTkzNzUsIDAuMTc1LCAwLjE2MjUsIDAuMTMzNzUsIDAuMTEyNSIsIFwKLSAgICAgICAgICAiMC4yNCwgMC4yMjg3NSwgMC4yMSwgMC4xOTEyNSwgMC4xNzg3NSwgMC4xNSwgMC4xMjg3NSIsIFwKLSAgICAgICAgICAiMC4yNTUsIDAuMjQzNzUsIDAuMjI1LCAwLjIwNjI1LCAwLjE5Mzc1LCAwLjE2NSwgMC4xNDM3NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxMjM4NzQ7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxMjM4NzQ7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxMjM3NTU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA0NzQzLCAwLjAwNDczMiwgMC4wMDQ3MjMsIDAuMDA0NzE3LCAwLjAwNDcxNSwgMC4wMDQ3MTIsIDAuMDA0NzEyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA1NDczLCAwLjAwNTQ1NCwgMC4wMDU0NDEsIDAuMDA1NDM0LCAwLjAwNTQyOSwgMC4wMDU0MjQsIDAuMDA1NDIyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlJOIjsKLSAgICAgIHNkZl9jb25kIDogIlJOID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjEwNjI1LCAtMC4wOTUsIC0wLjA4MjUsIC0wLjA2Mzc1LCAtMC4wNTEyNSwgLTAuMDIyNSwgLTAuMDAxMjUiLCBcCi0gICAgICAgICAgIi0wLjExNzUsIC0wLjEwNjI1LCAtMC4wOTM3NSwgLTAuMDc1LCAtMC4wNjI1LCAtMC4wMzM3NSwgLTAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjEzLCAtMC4xMTg3NSwgLTAuMTA2MjUsIC0wLjA4NzUsIC0wLjA3NSwgLTAuMDUyNSwgLTAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjE0ODc1LCAtMC4xMzEyNSwgLTAuMTE4NzUsIC0wLjEwNjI1LCAtMC4wODc1LCAtMC4wNjUsIC0wLjA0Mzc1IiwgXAotICAgICAgICAgICItMC4xNjEyNSwgLTAuMTUsIC0wLjEzMTI1LCAtMC4xMTg3NSwgLTAuMSwgLTAuMDc3NSwgLTAuMDU2MjUiLCBcCi0gICAgICAgICAgIi0wLjE4Mzc1LCAtMC4xNjYyNSwgLTAuMTUzNzUsIC0wLjE0MTI1LCAtMC4xMjI1LCAtMC4xLCAtMC4wNzg3NSIsIFwKLSAgICAgICAgICAiLTAuMTk4NzUsIC0wLjE4NzUsIC0wLjE3NSwgLTAuMTU2MjUsIC0wLjE0Mzc1LCAtMC4xMTUsIC0wLjEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4xMDYyNSwgLTAuMDk1LCAtMC4wODI1LCAtMC4wNywgLTAuMDUxMjUsIC0wLjAyODc1LCAtMC4wMDc1IiwgXAotICAgICAgICAgICItMC4xMTc1LCAtMC4xMDYyNSwgLTAuMDkzNzUsIC0wLjA4MTI1LCAtMC4wNjI1LCAtMC4wNCwgLTAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjEzNjI1LCAtMC4xMjUsIC0wLjExMjUsIC0wLjA5Mzc1LCAtMC4wODEyNSwgLTAuMDU4NzUsIC0wLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjE0ODc1LCAtMC4xMzc1LCAtMC4xMjUsIC0wLjExMjUsIC0wLjA5Mzc1LCAtMC4wNzEyNSwgLTAuMDUiLCBcCi0gICAgICAgICAgIi0wLjE2MTI1LCAtMC4xNSwgLTAuMTM3NSwgLTAuMTI1LCAtMC4xMDYyNSwgLTAuMDgzNzUsIC0wLjA2MjUiLCBcCi0gICAgICAgICAgIi0wLjE4Mzc1LCAtMC4xNzI1LCAtMC4xNTM3NSwgLTAuMTQxMjUsIC0wLjEyODc1LCAtMC4xLCAtMC4wODUiLCBcCi0gICAgICAgICAgIi0wLjE5ODc1LCAtMC4xODc1LCAtMC4xNjg3NSwgLTAuMTU2MjUsIC0wLjE0Mzc1LCAtMC4xMTUsIC0wLjEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlJOIjsKLSAgICAgIHNkZl9jb25kIDogIlJOID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMyNSwgMC4zMTM3NSwgMC4zMDEyNSwgMC4yODg3NSwgMC4yNzYyNSwgMC4yNiwgMC4yNDUiLCBcCi0gICAgICAgICAgIjAuMzQyNSwgMC4zMjUsIDAuMzEyNSwgMC4zLCAwLjI4NzUsIDAuMjcxMjUsIDAuMjU2MjUiLCBcCi0gICAgICAgICAgIjAuMzU1LCAwLjM0Mzc1LCAwLjMyNSwgMC4zMTI1LCAwLjMsIDAuMjgzNzUsIDAuMjc1IiwgXAotICAgICAgICAgICIwLjM2NzUsIDAuMzU2MjUsIDAuMzQzNzUsIDAuMzMxMjUsIDAuMzE4NzUsIDAuMzAyNSwgMC4yODc1IiwgXAotICAgICAgICAgICIwLjM4NjI1LCAwLjM3NSwgMC4zNTYyNSwgMC4zNDM3NSwgMC4zMzEyNSwgMC4zMTUsIDAuMyIsIFwKLSAgICAgICAgICAiMC40MDg3NSwgMC4zOTEyNSwgMC4zNzg3NSwgMC4zNjYyNSwgMC4zNTM3NSwgMC4zMzc1LCAwLjMyMjUiLCBcCi0gICAgICAgICAgIjAuNDIzNzUsIDAuNDEyNSwgMC4zOTM3NSwgMC4zODEyNSwgMC4zNjg3NSwgMC4zNTI1LCAwLjM0Mzc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMiwgMC4xODg3NSwgMC4xNzYyNSwgMC4xNjM3NSwgMC4xNTEyNSwgMC4xMzUsIDAuMTI2MjUiLCBcCi0gICAgICAgICAgIjAuMjExMjUsIDAuMiwgMC4xODc1LCAwLjE3NSwgMC4xNjI1LCAwLjE0NjI1LCAwLjEzNzUiLCBcCi0gICAgICAgICAgIjAuMjIzNzUsIDAuMjEyNSwgMC4yLCAwLjE4NzUsIDAuMTc1LCAwLjE1ODc1LCAwLjE1IiwgXAotICAgICAgICAgICIwLjIzNjI1LCAwLjIyNSwgMC4yMTI1LCAwLjIsIDAuMTg3NSwgMC4xNzEyNSwgMC4xNjI1IiwgXAotICAgICAgICAgICIwLjI0ODc1LCAwLjIzNzUsIDAuMjI1LCAwLjIxMjUsIDAuMiwgMC4xODM3NSwgMC4xNzUiLCBcCi0gICAgICAgICAgIjAuMjY1LCAwLjI1Mzc1LCAwLjI0NzUsIDAuMjM1LCAwLjIyMjUsIDAuMjA2MjUsIDAuMTkxMjUiLCBcCi0gICAgICAgICAgIjAuMjg2MjUsIDAuMjc1LCAwLjI2MjUsIDAuMjUsIDAuMjM3NSwgMC4yMjEyNSwgMC4yMTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihRKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMjY0MzA5OwotICAgIGZ1bmN0aW9uIDogIk4zMCI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3NlbnNlIDogbm9uX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiByaXNpbmdfZWRnZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjY3NjcxLCAwLjQ1MDAwNiwgMC41OTYyODMsIDAuNzc3Mjg4LCAwLjk1NzUzNSwgMS4xMzg2MSwgMS4zMTczNyIsIFwKLSAgICAgICAgICAiMC4yNzk1NjMsIDAuNDYyNDMxLCAwLjYwNzEyLCAwLjc4OTIzNiwgMC45NzAwOTEsIDEuMTQ4ODQsIDEuMzMwMTMiLCBcCi0gICAgICAgICAgIjAuMjk0NjU0LCAwLjQ3NzUxNSwgMC42MjIxOTMsIDAuODA0Mjg1LCAwLjk4NTMxMSwgMS4xNjQxMiwgMS4zNDU0IiwgXAotICAgICAgICAgICIwLjMxMDE3NCwgMC40OTI0ODMsIDAuNjM5MDgyLCAwLjgxOTgzMSwgMS4wMDAwNCwgMS4xNzk3LCAxLjM2MDgxIiwgXAotICAgICAgICAgICIwLjMyNTU4OSwgMC41MDc5NDIsIDAuNjU0MDAxLCAwLjgzNTI4OSwgMS4wMTU1MiwgMS4xOTU1NiwgMS4zNzUzNiIsIFwKLSAgICAgICAgICAiMC4zNDk5MywgMC41MzIyNjcsIDAuNjc4NTkxLCAwLjg1OTU4OCwgMS4wMzk4MSwgMS4yMTk0MiwgMS40MDA1NyIsIFwKLSAgICAgICAgICAiMC4zNzA5MTYsIDAuNTUzMjUxLCAwLjY5OTQ5NSwgMC44ODA2MDUsIDEuMDYwODIsIDEuMjQxMjIsIDEuNDIwNjgiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk0NDg0LCAwLjQ2MDM3OSwgMC43NTcwMzMsIDEuMTI0NTQsIDEuNDg4MTQsIDEuODc0NjgsIDIuMjM2NjQiLCBcCi0gICAgICAgICAgIjAuMDk0NTI2LCAwLjQ2MTA4LCAwLjc1OTYsIDEuMTI5NzEsIDEuNDk4MDUsIDEuODY2MzEsIDIuMjI2MjEiLCBcCi0gICAgICAgICAgIjAuMDk0NTU1LCAwLjQ2MTIwOSwgMC43NTk2NzcsIDEuMTE4NjEsIDEuNDg2MzMsIDEuODY0MzcsIDIuMjIzNjciLCBcCi0gICAgICAgICAgIjAuMDk0NzM3LCAwLjQ2MDM4NiwgMC43NTA2OTcsIDEuMTE2OTIsIDEuNDg4NjUsIDEuODYzOTksIDIuMjUzMDUiLCBcCi0gICAgICAgICAgIjAuMDk0NTE2LCAwLjQ2MDM5OCwgMC43NTczMzksIDEuMTI5OTksIDEuNDg5NjMsIDEuODU5MDIsIDIuMjM1NzMiLCBcCi0gICAgICAgICAgIjAuMDk0Njk2LCAwLjQ2MDM4MiwgMC43NTYxNTgsIDEuMTE2NDYsIDEuNDg4NzgsIDEuODY0MzEsIDIuMjUzMDUiLCBcCi0gICAgICAgICAgIjAuMDk0NzgxLCAwLjQ2MDM5MSwgMC43NTY1ODQsIDEuMTI5OTksIDEuNDg5MzcsIDEuODU0ODIsIDIuMjM1NTgiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzAwMjQsIDAuNTA4NTA5LCAwLjY3MzYxOSwgMC44Nzk4MDgsIDEuMDg2NDQsIDEuMjkzNzMsIDEuNDk5NjgiLCBcCi0gICAgICAgICAgIjAuMzEyMTY0LCAwLjUyMDM3NSwgMC42ODUyODMsIDAuODkyNTA2LCAxLjA5ODYsIDEuMzA0OTcsIDEuNTEzMTEiLCBcCi0gICAgICAgICAgIjAuMzI3Mjg3LCAwLjUzNTQ4NywgMC43MDA2OTIsIDAuOTA3MDA4LCAxLjExMzksIDEuMzIwMDYsIDEuNTMwOTQiLCBcCi0gICAgICAgICAgIjAuMzQyODAzLCAwLjU1MTEwMywgMC43MTYxODEsIDAuOTIyMzA0LCAxLjEyODk5LCAxLjMzNjQsIDEuNTQzMTQiLCBcCi0gICAgICAgICAgIjAuMzU4MTkyLCAwLjU2NjM5LCAwLjczMTMxMiwgMC45MzgwNTQsIDEuMTQ1MDMsIDEuMzU0NjksIDEuNTU4ODkiLCBcCi0gICAgICAgICAgIjAuMzgyNTk5LCAwLjU5MDgwMiwgMC43NTU3MTYsIDAuOTYyNDM0LCAxLjE2ODg5LCAxLjM3NTM5LCAxLjU4NTc5IiwgXAotICAgICAgICAgICIwLjQwMzc0MywgMC42MTE5MDYsIDAuNzc3MTMsIDAuOTg0NTY1LCAxLjE5MTg0LCAxLjM5OTY4LCAxLjYwNDMzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwMTk4MiwgMC41MDY0NSwgMC44MzUyMjUsIDEuMjQ1MDYsIDEuNjYwNTIsIDIuMDY4ODQsIDIuNDgwNjEiLCBcCi0gICAgICAgICAgIjAuMTAxODcyLCAwLjUwNjUsIDAuODM1MTg4LCAxLjI0NzQsIDEuNjU2MTMsIDIuMDY4OSwgMi40ODQ5IiwgXAotICAgICAgICAgICIwLjEwMTk3NywgMC41MDY0OTYsIDAuODM1MjgsIDEuMjQ3MjMsIDEuNjU5NzYsIDIuMDY4LCAyLjQ4Mzk0IiwgXAotICAgICAgICAgICIwLjEwMjIyNywgMC41MDY0ODQsIDAuODM1MjgxLCAxLjI0NTI5LCAxLjY2MDQ3LCAyLjA3MzA2LCAyLjQ4MjY5IiwgXAotICAgICAgICAgICIwLjEwMTg0NiwgMC41MDY1MTgsIDAuODM0MDkyLCAxLjI0NjA0LCAxLjY1Nzc0LCAyLjA3MzM5LCAyLjQ4Mjk5IiwgXAotICAgICAgICAgICIwLjEwMTk1MSwgMC41MDY0OTUsIDAuODM1Mjc3LCAxLjI0NjExLCAxLjY1NzIxLCAyLjA2ODA3LCAyLjQ4Mzk0IiwgXAotICAgICAgICAgICIwLjEwMjQsIDAuNTA2NDk5LCAwLjgzNTIyNiwgMS4yNDY4LCAxLjY2MDM0LCAyLjA3MTUxLCAyLjQ4MDMyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDEzNSwgMC4wMDQxNTksIDAuMDA0MTU3LCAwLjAwNDE1NCwgMC4wMDQxNTMsIDAuMDA0MTUyLCAwLjAwNDE1MSIsIFwKLSAgICAgICAgICAiMC4wMDQxMjksIDAuMDA0MTU0LCAwLjAwNDE1MiwgMC4wMDQxNDksIDAuMDA0MTQ3LCAwLjAwNDE0NiwgMC4wMDQxNDUiLCBcCi0gICAgICAgICAgIjAuMDA0MTIzLCAwLjAwNDE0OCwgMC4wMDQxNDUsIDAuMDA0MTQzLCAwLjAwNDE0MSwgMC4wMDQxNCwgMC4wMDQxMzkiLCBcCi0gICAgICAgICAgIjAuMDA0MTE4LCAwLjAwNDE0NCwgMC4wMDQxNDIsIDAuMDA0MTM5LCAwLjAwNDEzNywgMC4wMDQxMzYsIDAuMDA0MTM1IiwgXAotICAgICAgICAgICIwLjAwNDExNiwgMC4wMDQxNDEsIDAuMDA0MTM4LCAwLjAwNDEzNiwgMC4wMDQxMzQsIDAuMDA0MTMzLCAwLjAwNDEzMiIsIFwKLSAgICAgICAgICAiMC4wMDQxMSwgMC4wMDQxMzUsIDAuMDA0MTMzLCAwLjAwNDEzMSwgMC4wMDQxMjksIDAuMDA0MTI4LCAwLjAwNDEyNiIsIFwKLSAgICAgICAgICAiMC4wMDQxMDcsIDAuMDA0MTMzLCAwLjAwNDEzMSwgMC4wMDQxMjgsIDAuMDA0MTI3LCAwLjAwNDEyNiwgMC4wMDQxMjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQ5MzEsIDAuMDA0OTY3LCAwLjAwNDk3MSwgMC4wMDQ5NzMsIDAuMDA0OTc0LCAwLjAwNDk3NCwgMC4wMDQ5NzQiLCBcCi0gICAgICAgICAgIjAuMDA0OTI0LCAwLjAwNDk2MSwgMC4wMDQ5NjUsIDAuMDA0OTY2LCAwLjAwNDk2NywgMC4wMDQ5NjgsIDAuMDA0OTY4IiwgXAotICAgICAgICAgICIwLjAwNDkxOCwgMC4wMDQ5NTUsIDAuMDA0OTU5LCAwLjAwNDk2LCAwLjAwNDk2MiwgMC4wMDQ5NjIsIDAuMDA0OTYzIiwgXAotICAgICAgICAgICIwLjAwNDkxNSwgMC4wMDQ5NTIsIDAuMDA0OTU1LCAwLjAwNDk1NywgMC4wMDQ5NTgsIDAuMDA0OTU4LCAwLjAwNDk1OCIsIFwKLSAgICAgICAgICAiMC4wMDQ5MTMsIDAuMDA0OTUsIDAuMDA0OTUzLCAwLjAwNDk1NSwgMC4wMDQ5NTYsIDAuMDA0OTU2LCAwLjAwNDk1NyIsIFwKLSAgICAgICAgICAiMC4wMDQ5MSwgMC4wMDQ5NDgsIDAuMDA0OTUyLCAwLjAwNDk1NCwgMC4wMDQ5NTUsIDAuMDA0OTU0LCAwLjAwNDk1NSIsIFwKLSAgICAgICAgICAiMC4wMDQ5MTIsIDAuMDA0OTQ5LCAwLjAwNDk1MywgMC4wMDQ5NTUsIDAuMDA0OTU1LCAwLjAwNDk1NiwgMC4wMDQ5NTYiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFFOKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMjY2NTg2OwotICAgIGZ1bmN0aW9uIDogIlFCSU5UIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBub25fdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJpc2luZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zNDM1ODMsIDAuNTI0MDYyLCAwLjY2ODU2NywgMC44NDkwMjYsIDEuMDMwMDEsIDEuMjEwNTgsIDEuMzkxMjkiLCBcCi0gICAgICAgICAgIjAuMzU1NTQ2LCAwLjUzNTk3LCAwLjY4MDUwMiwgMC44NjA5OTEsIDEuMDQxOTEsIDEuMjIyNjQsIDEuNDAzMTUiLCBcCi0gICAgICAgICAgIjAuMzcwNjU2LCAwLjU1MTA4NiwgMC42OTU2MTgsIDAuODc2MDcxLCAxLjA1Njk4LCAxLjIzNzc5LCAxLjQxODM1IiwgXAotICAgICAgICAgICIwLjM4NjE0MywgMC41NjY2MzYsIDAuNzExMTMsIDAuODkxNTg4LCAxLjA3MjU3LCAxLjI1MzE0LCAxLjQzMzg1IiwgXAotICAgICAgICAgICIwLjQwMTU4OSwgMC41ODIwMDgsIDAuNzI2NTM0LCAwLjkwNzI0NCwgMS4wODc4NywgMS4yNjg1LCAxLjQ0OTE5IiwgXAotICAgICAgICAgICIwLjQyNTk3MiwgMC42MDY0LCAwLjc1MDkzNiwgMC45MzEzOTEsIDEuMTEyNDIsIDEuMjkzMDksIDEuNDczNTgiLCBcCi0gICAgICAgICAgIjAuNDQ3MDgsIDAuNjI3NTMzLCAwLjc3MjA2NywgMC45NTI3MjksIDEuMTMzNDgsIDEuMzE0MDcsIDEuNDk0NzQiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDkwNTEsIDAuNDU1ODM1LCAwLjc1MTYwOCwgMS4xMTkxOSwgMS40ODcxNSwgMS44NTc3LCAyLjIyNjc2IiwgXAotICAgICAgICAgICIwLjA5MDU2MiwgMC40NTU4NjksIDAuNzUxNTg2LCAxLjEyMDY4LCAxLjQ4ODU5LCAxLjg1NjA1LCAyLjIyOTA1IiwgXAotICAgICAgICAgICIwLjA5MDUyNCwgMC40NTU4NjUsIDAuNzUxNjExLCAxLjExNzkxLCAxLjQ4ODM3LCAxLjg1NjY1LCAyLjIzMDYyIiwgXAotICAgICAgICAgICIwLjA5MDUyMSwgMC40NTU4NjUsIDAuNzUxNjE0LCAxLjExOTE4LCAxLjQ4NzMxLCAxLjg1Nzc1LCAyLjIzMDAzIiwgXAotICAgICAgICAgICIwLjA5MDU2MywgMC40NTU4NzQsIDAuNzQ5NTUxLCAxLjExOTA5LCAxLjQ4ODUzLCAxLjg2MDcxLCAyLjIyOTkyIiwgXAotICAgICAgICAgICIwLjA5MDU1OSwgMC40NTU4NjYsIDAuNzUxNjEzLCAxLjExOTA0LCAxLjQ4ODYsIDEuODU2NTYsIDIuMjMwNjEiLCBcCi0gICAgICAgICAgIjAuMDkwNTU2LCAwLjQ1NTg2LCAwLjc1MTYwNywgMS4xMjEwNCwgMS40OTEyNiwgMS44NjA5OCwgMi4yMjY5MiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMTc2MzYsIDAuNTI0MDIsIDAuNjg5MzQsIDAuODk1ODk0LCAxLjEwMjM4LCAxLjMwODk0LCAxLjUxNTQzIiwgXAotICAgICAgICAgICIwLjMyOTUyMSwgMC41MzU4OTcsIDAuNzAxMTYzLCAwLjkwNzc4NSwgMS4xMTQzLCAxLjMyMDc3LCAxLjUyNzMxIiwgXAotICAgICAgICAgICIwLjM0NDYwOSwgMC41NTA5ODQsIDAuNzE2MjQ5LCAwLjkyMjg2NCwgMS4xMjk0LCAxLjMzNTg2LCAxLjU0MjM5IiwgXAotICAgICAgICAgICIwLjM2MDE2NSwgMC41NjY1MDUsIDAuNzMxODkzLCAwLjkzODM4NiwgMS4xNDQ4NywgMS4zNTEzOSwgMS41NTc4OCIsIFwKLSAgICAgICAgICAiMC4zNzU1NTQsIDAuNTgxOTM2LCAwLjc0NzI4NiwgMC45NTM4MjgsIDEuMTYwMywgMS4zNjY4MywgMS41NzMzNCIsIFwKLSAgICAgICAgICAiMC4zOTk5MjEsIDAuNjA2MjYzLCAwLjc3MTYzLCAwLjk3ODE0NiwgMS4xODQ2MywgMS4zOTExNSwgMS41OTc2NCIsIFwKLSAgICAgICAgICAiMC40MjA4OTQsIDAuNjI3MjM2LCAwLjc5MjU5NiwgMC45OTkxMjQsIDEuMjA1NiwgMS40MTIxMywgMS42MTg2NCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTgzMjEsIDAuNTA2MDE5LCAwLjgzNDI3NywgMS4yNDU2MiwgMS42NTY2NCwgMi4wNjg5MywgMi40NzkxNCIsIFwKLSAgICAgICAgICAiMC4wOTgzMiwgMC41MDYwNjIsIDAuODM0OTQ2LCAxLjI0NDk0LCAxLjY1NjcsIDIuMDY4MDQsIDIuNDc4ODkiLCBcCi0gICAgICAgICAgIjAuMDk4MzMsIDAuNTA2MDc0LCAwLjgzNDk0OCwgMS4yNDU0NywgMS42NTYzLCAyLjA2Nzk5LCAyLjQ3ODg0IiwgXAotICAgICAgICAgICIwLjA5ODM1MiwgMC41MDYwMiwgMC44MzQ0ODMsIDEuMjQ1MzgsIDEuNjU2NTksIDIuMDY3OTgsIDIuNDc5MjkiLCBcCi0gICAgICAgICAgIjAuMDk4MywgMC41MDYwMTQsIDAuODM0MTksIDEuMjQ1LCAxLjY1NjU2LCAyLjA2Nzg3LCAyLjQ3OTEiLCBcCi0gICAgICAgICAgIjAuMDk4MzQ3LCAwLjUwNjAxNiwgMC44MzQwMjMsIDEuMjQ1NCwgMS42NTY2MSwgMi4wNjc5OSwgMi40NzkyOSIsIFwKLSAgICAgICAgICAiMC4wOTgzMTMsIDAuNTA2MDE4LCAwLjgzNDA4NywgMS4yNDUsIDEuNjU2NTcsIDIuMDY3OCwgMi40NzkwOSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQ5MzEsIDAuMDA0OTY3LCAwLjAwNDk3MSwgMC4wMDQ5NzMsIDAuMDA0OTc0LCAwLjAwNDk3NCwgMC4wMDQ5NzQiLCBcCi0gICAgICAgICAgIjAuMDA0OTI0LCAwLjAwNDk2MSwgMC4wMDQ5NjUsIDAuMDA0OTY2LCAwLjAwNDk2NywgMC4wMDQ5NjgsIDAuMDA0OTY4IiwgXAotICAgICAgICAgICIwLjAwNDkxOCwgMC4wMDQ5NTUsIDAuMDA0OTU5LCAwLjAwNDk2LCAwLjAwNDk2MiwgMC4wMDQ5NjIsIDAuMDA0OTYzIiwgXAotICAgICAgICAgICIwLjAwNDkxNSwgMC4wMDQ5NTIsIDAuMDA0OTU1LCAwLjAwNDk1NywgMC4wMDQ5NTgsIDAuMDA0OTU4LCAwLjAwNDk1OCIsIFwKLSAgICAgICAgICAiMC4wMDQ5MTMsIDAuMDA0OTUsIDAuMDA0OTUzLCAwLjAwNDk1NSwgMC4wMDQ5NTYsIDAuMDA0OTU2LCAwLjAwNDk1NyIsIFwKLSAgICAgICAgICAiMC4wMDQ5MSwgMC4wMDQ5NDgsIDAuMDA0OTUyLCAwLjAwNDk1NCwgMC4wMDQ5NTUsIDAuMDA0OTU0LCAwLjAwNDk1NSIsIFwKLSAgICAgICAgICAiMC4wMDQ5MTIsIDAuMDA0OTQ5LCAwLjAwNDk1MywgMC4wMDQ5NTUsIDAuMDA0OTU1LCAwLjAwNDk1NiwgMC4wMDQ5NTYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQxMzUsIDAuMDA0MTU5LCAwLjAwNDE1NywgMC4wMDQxNTQsIDAuMDA0MTUzLCAwLjAwNDE1MiwgMC4wMDQxNTEiLCBcCi0gICAgICAgICAgIjAuMDA0MTI5LCAwLjAwNDE1NCwgMC4wMDQxNTIsIDAuMDA0MTQ5LCAwLjAwNDE0NywgMC4wMDQxNDYsIDAuMDA0MTQ1IiwgXAotICAgICAgICAgICIwLjAwNDEyMywgMC4wMDQxNDgsIDAuMDA0MTQ1LCAwLjAwNDE0MywgMC4wMDQxNDEsIDAuMDA0MTQsIDAuMDA0MTM5IiwgXAotICAgICAgICAgICIwLjAwNDExOCwgMC4wMDQxNDQsIDAuMDA0MTQyLCAwLjAwNDEzOSwgMC4wMDQxMzcsIDAuMDA0MTM2LCAwLjAwNDEzNSIsIFwKLSAgICAgICAgICAiMC4wMDQxMTYsIDAuMDA0MTQxLCAwLjAwNDEzOCwgMC4wMDQxMzYsIDAuMDA0MTM0LCAwLjAwNDEzMywgMC4wMDQxMzIiLCBcCi0gICAgICAgICAgIjAuMDA0MTEsIDAuMDA0MTM1LCAwLjAwNDEzMywgMC4wMDQxMzEsIDAuMDA0MTI5LCAwLjAwNDEyOCwgMC4wMDQxMjYiLCBcCi0gICAgICAgICAgIjAuMDA0MTA3LCAwLjAwNDEzMywgMC4wMDQxMzEsIDAuMDA0MTI4LCAwLjAwNDEyNywgMC4wMDQxMjYsIDAuMDA0MTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihSTikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNTU4NDI1OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDU1ODE1MzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA1NTg0MjU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA1MTkzLCAwLjAwNTE3NCwgMC4wMDUxNjIsIDAuMDA1MTU2LCAwLjAwNTE1NCwgMC4wMDUxNTEsIDAuMDA1MTUxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA0NzU0LCAwLjAwNDc0MSwgMC4wMDQ3MjksIDAuMDA0NzI1LCAwLjAwNDcyMSwgMC4wMDQ3MTksIDAuMDA0NzE3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEJiFFIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9FX0VRXzAgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMjgxMjUsIC0wLjI3LCAtMC4yNTc1LCAtMC4yNDUsIC0wLjIzODc1LCAtMC4yMjI1LCAtMC4yMDc1IiwgXAotICAgICAgICAgICItMC4yOTI1LCAtMC4yODEyNSwgLTAuMjY4NzUsIC0wLjI2MjUsIC0wLjI1LCAtMC4yMzM3NSwgLTAuMjE4NzUiLCBcCi0gICAgICAgICAgIi0wLjMxMTI1LCAtMC4zLCAtMC4yODc1LCAtMC4yNzUsIC0wLjI2MjUsIC0wLjI0NjI1LCAtMC4yMzc1IiwgXAotICAgICAgICAgICItMC4zMjM3NSwgLTAuMzEyNSwgLTAuMywgLTAuMjg3NSwgLTAuMjgxMjUsIC0wLjI2NSwgLTAuMjUiLCBcCi0gICAgICAgICAgIi0wLjMzNjI1LCAtMC4zMjUsIC0wLjMxODc1LCAtMC4zMDYyNSwgLTAuMjkzNzUsIC0wLjI3NzUsIC0wLjI2ODc1IiwgXAotICAgICAgICAgICItMC4zNTg3NSwgLTAuMzQ3NSwgLTAuMzM1LCAtMC4zMjI1LCAtMC4zMTYyNSwgLTAuMywgLTAuMjg1IiwgXAotICAgICAgICAgICItMC4zNzM3NSwgLTAuMzYyNSwgLTAuMzUsIC0wLjM0Mzc1LCAtMC4zMzEyNSwgLTAuMzE1LCAtMC4zIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIkQmRSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzFfQU5fRV9FUV8xID09IDEnYjEiOwotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjA1LCAtMC4wMzg3NSwgLTAuMDI2MjUsIC0wLjAwNzUsIDAuMDA1LCAwLjAyNzUsIDAuMDQ4NzUiLCBcCi0gICAgICAgICAgIi0wLjA2MTI1LCAtMC4wNSwgLTAuMDM3NSwgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLjAxNjI1LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjA4LCAtMC4wNjg3NSwgLTAuMDUsIC0wLjAzNzUsIC0wLjAxODc1LCAwLjAwMzc1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDkyNSwgLTAuMDgxMjUsIC0wLjA2MjUsIC0wLjA1LCAtMC4wMzc1LCAtMC4wMDg3NSwgMC4wMTI1IiwgXAotICAgICAgICAgICItMC4xMDUsIC0wLjA5Mzc1LCAtMC4wNzUsIC0wLjA2MjUsIC0wLjA1LCAtMC4wMjEyNSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjEyMTI1LCAtMC4xMSwgLTAuMDk3NSwgLTAuMDc4NzUsIC0wLjA2NjI1LCAtMC4wNDM3NSwgLTAuMDIyNSIsIFwKLSAgICAgICAgICAiLTAuMTM2MjUsIC0wLjEyNSwgLTAuMTEyNSwgLTAuMDkzNzUsIC0wLjA4MTI1LCAtMC4wNTg3NSwgLTAuMDM3NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUQmIUUiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX0VfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNDM3NSwgMC4xMzI1LCAwLjExMzc1LCAwLjEwMTI1LCAwLjA4MjUsIDAuMDYsIDAuMDM4NzUiLCBcCi0gICAgICAgICAgIjAuMTU1LCAwLjE0Mzc1LCAwLjEyNSwgMC4xMTI1LCAwLjA5Mzc1LCAwLjA3MTI1LCAwLjA1IiwgXAotICAgICAgICAgICIwLjE3Mzc1LCAwLjE1NjI1LCAwLjE0Mzc1LCAwLjEyNSwgMC4xMTI1LCAwLjA4Mzc1LCAwLjA2MjUiLCBcCi0gICAgICAgICAgIjAuMTg2MjUsIDAuMTc1LCAwLjE1NjI1LCAwLjEzNzUsIDAuMTI1LCAwLjA5NjI1LCAwLjA3NSIsIFwKLSAgICAgICAgICAiMC4xOTg3NSwgMC4xODc1LCAwLjE2ODc1LCAwLjE1LCAwLjEzNzUsIDAuMTA4NzUsIDAuMDg3NSIsIFwKLSAgICAgICAgICAiMC4yMTUsIDAuMjAzNzUsIDAuMTg1LCAwLjE3MjUsIDAuMTUzNzUsIDAuMTMxMjUsIDAuMTEiLCBcCi0gICAgICAgICAgIjAuMjMsIDAuMjE4NzUsIDAuMiwgMC4xODc1LCAwLjE2ODc1LCAwLjE0NjI1LCAwLjExODc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJEJkUiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8xX0FOX0VfRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zNDM3NSwgMC4zMzI1LCAwLjMxMzc1LCAwLjMwMTI1LCAwLjI4ODc1LCAwLjI3MjUsIDAuMjYzNzUiLCBcCi0gICAgICAgICAgIjAuMzU1LCAwLjM0Mzc1LCAwLjMzMTI1LCAwLjMxMjUsIDAuMzA2MjUsIDAuMjgzNzUsIDAuMjc1IiwgXAotICAgICAgICAgICIwLjM3Mzc1LCAwLjM1NjI1LCAwLjM0Mzc1LCAwLjMzMTI1LCAwLjMxODc1LCAwLjMwMjUsIDAuMjg3NSIsIFwKLSAgICAgICAgICAiMC4zODYyNSwgMC4zNzUsIDAuMzU2MjUsIDAuMzQzNzUsIDAuMzMxMjUsIDAuMzE1LCAwLjMwNjI1IiwgXAotICAgICAgICAgICIwLjM5ODc1LCAwLjM4NzUsIDAuMzc1LCAwLjM2MjUsIDAuMzUsIDAuMzMzNzUsIDAuMzE4NzUiLCBcCi0gICAgICAgICAgIjAuNDIxMjUsIDAuNDEsIDAuMzkxMjUsIDAuMzc4NzUsIDAuMzY2MjUsIDAuMzUsIDAuMzQxMjUiLCBcCi0gICAgICAgICAgIjAuNDM2MjUsIDAuNDI1LCAwLjQxMjUsIDAuMzkzNzUsIDAuMzg3NSwgMC4zNzEyNSwgMC4zNTYyNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogU0VERkZIUVgxICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoU0VERkZIUVgxKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuNDc2OTY4OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIGZmIChOMzAsUUJJTlQpIHsKLSAgICBuZXh0X3N0YXRlIDogIigoU0UgU0kpICsgKCFTRSAoKEUgRCkgKyAoIUUgKCEoIU4zMCkpKSkpKSI7Ci0gICAgY2xvY2tlZF9vbiA6ICJDSyI7Ci0gIH0KLSAgcGluKENLKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2MTYxMTk7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjE1ODY4OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDYxNjExOTsKLSAgICBjbG9jayA6IHRydWU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyNzU4LCAwLjAwMjc0NiwgMC4wMDI3MzYsIDAuMDAyNzI5LCAwLjAwMjcyNSwgMC4wMDI3MTgsIDAuMDAyNzE0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA1NzMsIDAuMDA1NzIxLCAwLjAwNTcxMSwgMC4wMDU3MDcsIDAuMDA1NzA2LCAwLjAwNTcxMiwgMC4wMDU3MTUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFEJiFFJlNFJiFTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fRV9FUV8wX0FOX1NFX0VRXzFfQU5fU0lfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjMwODE2OSwgMC4zMTk4OTIsIDAuMzM1MTk5LCAwLjM1MDcxNiwgMC4zNjYwODEsIDAuMzkwNDQsIDAuNDExNDc0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4xOTY3NDcsIDAuMjA4NDM2LCAwLjIyMzIxOSwgMC4yMzgyMzMsIDAuMjUyODc2LCAwLjI3NTkzLCAwLjI5NTAxNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwODIwMTY0OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDgxNjM3NjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA4MjAxNjQ7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA0MDA1LCAwLjAwMzk4NiwgMC4wMDM5NzgsIDAuMDAzOTcyLCAwLjAwMzk2OCwgMC4wMDM5NjMsIDAuMDAzOTYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDY4MzIsIDAuMDA2ODIyLCAwLjAwNjgxNywgMC4wMDY4MTQsIDAuMDA2ODEyLCAwLjAwNjgwOSwgMC4wMDY4MDciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiRSYhU0UiOwotICAgICAgc2RmX2NvbmQgOiAiRV9FUV8xX0FOX1NFX0VRXzAgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMiwgLTAuMTg4NzUsIC0wLjE4MjUsIC0wLjE3LCAtMC4xNTc1LCAtMC4xNDc1LCAtMC4xMzI1IiwgXAotICAgICAgICAgICItMC4yMTEyNSwgLTAuMiwgLTAuMTkzNzUsIC0wLjE4MTI1LCAtMC4xNjg3NSwgLTAuMTU4NzUsIC0wLjE0Mzc1IiwgXAotICAgICAgICAgICItMC4yMjM3NSwgLTAuMjE4NzUsIC0wLjIwNjI1LCAtMC4xOTM3NSwgLTAuMTg3NSwgLTAuMTcxMjUsIC0wLjE1NjI1IiwgXAotICAgICAgICAgICItMC4yMzYyNSwgLTAuMjMxMjUsIC0wLjIxODc1LCAtMC4yMDYyNSwgLTAuMiwgLTAuMTgzNzUsIC0wLjE3NSIsIFwKLSAgICAgICAgICAiLTAuMjU1LCAtMC4yNDM3NSwgLTAuMjMxMjUsIC0wLjIxODc1LCAtMC4yMTI1LCAtMC4xOTYyNSwgLTAuMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMjcxMjUsIC0wLjI2NjI1LCAtMC4yNTM3NSwgLTAuMjQxMjUsIC0wLjIzNSwgLTAuMjE4NzUsIC0wLjIwMzc1IiwgXAotICAgICAgICAgICItMC4yOTI1LCAtMC4yODEyNSwgLTAuMjc1LCAtMC4yNjI1LCAtMC4yNSwgLTAuMjQsIC0wLjIyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjA1NjI1LCAtMC4wMzg3NSwgLTAuMDMyNSwgLTAuMDEzNzUsIC0wLjAwNzUsIDAuMDA4NzUsIDAuMDIzNzUiLCBcCi0gICAgICAgICAgIi0wLjA2NzUsIC0wLjA1NjI1LCAtMC4wNDM3NSwgLTAuMDMxMjUsIC0wLjAxODc1LCAtMC4wMDg3NSwgMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wOCwgLTAuMDYyNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wMzEyNSwgLTAuMDE1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDkyNSwgLTAuMDc1LCAtMC4wNjI1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjAyNzUsIC0wLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjA5ODc1LCAtMC4wODc1LCAtMC4wNzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNCwgLTAuMDI1IiwgXAotICAgICAgICAgICItMC4xMjEyNSwgLTAuMTEsIC0wLjA5NzUsIC0wLjA4NSwgLTAuMDc4NzUsIC0wLjA2MjUsIC0wLjA0NzUiLCBcCi0gICAgICAgICAgIi0wLjEzLCAtMC4xMjUsIC0wLjEwNjI1LCAtMC4xLCAtMC4wOTM3NSwgLTAuMDc3NSwgLTAuMDYyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiRSYhU0UiOwotICAgICAgc2RmX2NvbmQgOiAiRV9FUV8xX0FOX1NFX0VRXzAgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjgxMjUsIDAuMjcsIDAuMjUxMjUsIDAuMjM4NzUsIDAuMjI2MjUsIDAuMjEsIDAuMTk1IiwgXAotICAgICAgICAgICIwLjI5MjUsIDAuMjgxMjUsIDAuMjYyNSwgMC4yNSwgMC4yMzc1LCAwLjIyMTI1LCAwLjIwNjI1IiwgXAotICAgICAgICAgICIwLjMwNSwgMC4yOTM3NSwgMC4yODEyNSwgMC4yNjI1LCAwLjI1LCAwLjIzMzc1LCAwLjIxODc1IiwgXAotICAgICAgICAgICIwLjMxNzUsIDAuMzA2MjUsIDAuMjkzNzUsIDAuMjgxMjUsIDAuMjYyNSwgMC4yNDYyNSwgMC4yMzEyNSIsIFwKLSAgICAgICAgICAiMC4zMzYyNSwgMC4zMTg3NSwgMC4zMDYyNSwgMC4yOTM3NSwgMC4yNzUsIDAuMjU4NzUsIDAuMjQzNzUiLCBcCi0gICAgICAgICAgIjAuMzUyNSwgMC4zNDEyNSwgMC4zMjg3NSwgMC4zMTYyNSwgMC4yOTc1LCAwLjI4MTI1LCAwLjI2NjI1IiwgXAotICAgICAgICAgICIwLjM3Mzc1LCAwLjM2MjUsIDAuMzQzNzUsIDAuMzMxMjUsIDAuMzE4NzUsIDAuMzAyNSwgMC4yODc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMiwgMC4xODg3NSwgMC4xNywgMC4xNTc1LCAwLjEzODc1LCAwLjExNjI1LCAwLjA5NSIsIFwKLSAgICAgICAgICAiMC4yMTEyNSwgMC4yLCAwLjE4MTI1LCAwLjE2ODc1LCAwLjE1LCAwLjEyNzUsIDAuMTA2MjUiLCBcCi0gICAgICAgICAgIjAuMjIzNzUsIDAuMjEyNSwgMC4xOTM3NSwgMC4xODEyNSwgMC4xNjI1LCAwLjE0LCAwLjExODc1IiwgXAotICAgICAgICAgICIwLjIzNjI1LCAwLjIyNSwgMC4yMDYyNSwgMC4xOTM3NSwgMC4xNzUsIDAuMTUyNSwgMC4xMzEyNSIsIFwKLSAgICAgICAgICAiMC4yNDg3NSwgMC4yMzc1LCAwLjIxODc1LCAwLjIwNjI1LCAwLjE4NzUsIDAuMTY1LCAwLjE0Mzc1IiwgXAotICAgICAgICAgICIwLjI2NSwgMC4yNTM3NSwgMC4yNDEyNSwgMC4yMjI1LCAwLjIxLCAwLjE4MTI1LCAwLjE2IiwgXAotICAgICAgICAgICIwLjI4NjI1LCAwLjI3NSwgMC4yNTYyNSwgMC4yMzc1LCAwLjIyNSwgMC4yMDI1LCAwLjE4MTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihFKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDEzNjEzNjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDEzNjA3NTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDEzNjEzNjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDY0MzcsIDAuMDA2NDMyLCAwLjAwNjQyNywgMC4wMDY0MjMsIDAuMDA2NDE5LCAwLjAwNjQxNiwgMC4wMDY0MTQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDc2OTksIDAuMDA3Njc4LCAwLjAwNzY2MywgMC4wMDc2NTQsIDAuMDA3NjQ3LCAwLjAwNzYzOCwgMC4wMDc2MzQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIVNFIjsKLSAgICAgIHNkZl9jb25kIDogIlNFID09IDEnYjAiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjE5Mzc1LCAtMC4xODI1LCAtMC4xNjM3NSwgLTAuMTUxMjUsIC0wLjEzMjUsIC0wLjExLCAtMC4wODg3NSIsIFwKLSAgICAgICAgICAiLTAuMjA1LCAtMC4xOTM3NSwgLTAuMTc1LCAtMC4xNjI1LCAtMC4xNDM3NSwgLTAuMTIxMjUsIC0wLjEiLCBcCi0gICAgICAgICAgIi0wLjIxNzUsIC0wLjIwNjI1LCAtMC4xOTM3NSwgLTAuMTc1LCAtMC4xNjI1LCAtMC4xNCwgLTAuMTE4NzUiLCBcCi0gICAgICAgICAgIi0wLjIzNjI1LCAtMC4yMjUsIC0wLjIwNjI1LCAtMC4xOTM3NSwgLTAuMTc1LCAtMC4xNTI1LCAtMC4xMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMjQ4NzUsIC0wLjIzNzUsIC0wLjIyNSwgLTAuMjA2MjUsIC0wLjE5Mzc1LCAtMC4xNjUsIC0wLjE1IiwgXAotICAgICAgICAgICItMC4yNzEyNSwgLTAuMjYsIC0wLjI0NzUsIC0wLjIyODc1LCAtMC4yMTYyNSwgLTAuMTkzNzUsIC0wLjE3MjUiLCBcCi0gICAgICAgICAgIi0wLjI5MjUsIC0wLjI4MTI1LCAtMC4yNjI1LCAtMC4yNSwgLTAuMjMxMjUsIC0wLjIwODc1LCAtMC4xODc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDM3NSwgLTAuMDI2MjUsIC0wLjAxMzc1LCAtMC4wMDEyNSwgMC4wMDUsIDAuMDIxMjUsIDAuMDM2MjUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLjAxLCAwLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDYxMjUsIC0wLjA1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMDI1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjA3Mzc1LCAtMC4wNjI1LCAtMC4wNSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAxNSwgMCIsIFwKLSAgICAgICAgICAiLTAuMDg2MjUsIC0wLjA3NSwgLTAuMDYyNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wMjc1LCAtMC4wMTI1IiwgXAotICAgICAgICAgICItMC4xMDI1LCAtMC4wOTEyNSwgLTAuMDc4NzUsIC0wLjA3MjUsIC0wLjA2LCAtMC4wNSwgLTAuMDM1IiwgXAotICAgICAgICAgICItMC4xMTc1LCAtMC4xMDYyNSwgLTAuMSwgLTAuMDgxMjUsIC0wLjA3NSwgLTAuMDY1LCAtMC4wNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIVNFIjsKLSAgICAgIHNkZl9jb25kIDogIlNFID09IDEnYjAiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI2ODc1LCAwLjI1NzUsIDAuMjM4NzUsIDAuMjI2MjUsIDAuMjEzNzUsIDAuMTk3NSwgMC4xODI1IiwgXAotICAgICAgICAgICIwLjI4LCAwLjI2ODc1LCAwLjI1LCAwLjIzNzUsIDAuMjI1LCAwLjIwMjUsIDAuMTkzNzUiLCBcCi0gICAgICAgICAgIjAuMjkyNSwgMC4yODEyNSwgMC4yNjI1LCAwLjI1LCAwLjIzNzUsIDAuMjIxMjUsIDAuMjA2MjUiLCBcCi0gICAgICAgICAgIjAuMzA1LCAwLjI5Mzc1LCAwLjI3NSwgMC4yNjI1LCAwLjI1LCAwLjIzMzc1LCAwLjIxODc1IiwgXAotICAgICAgICAgICIwLjMxNzUsIDAuMzA2MjUsIDAuMjkzNzUsIDAuMjc1LCAwLjI2MjUsIDAuMjQ2MjUsIDAuMjMxMjUiLCBcCi0gICAgICAgICAgIjAuMzQsIDAuMzI4NzUsIDAuMzEsIDAuMjk3NSwgMC4yODUsIDAuMjY4NzUsIDAuMjUzNzUiLCBcCi0gICAgICAgICAgIjAuMzYxMjUsIDAuMzQzNzUsIDAuMzMxMjUsIDAuMzE4NzUsIDAuMzA2MjUsIDAuMjgzNzUsIDAuMjc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjQzNzUsIDAuMjM4NzUsIDAuMjI2MjUsIDAuMjEzNzUsIDAuMjA3NSwgMC4xOTEyNSwgMC4xNzYyNSIsIFwKLSAgICAgICAgICAiMC4yNjEyNSwgMC4yNSwgMC4yMzc1LCAwLjIyNSwgMC4yMTg3NSwgMC4yMDI1LCAwLjE4NzUiLCBcCi0gICAgICAgICAgIjAuMjczNzUsIDAuMjYyNSwgMC4yNSwgMC4yNDM3NSwgMC4yMzEyNSwgMC4yMTUsIDAuMjA2MjUiLCBcCi0gICAgICAgICAgIjAuMjg2MjUsIDAuMjc1LCAwLjI2ODc1LCAwLjI1NjI1LCAwLjI0Mzc1LCAwLjIzMzc1LCAwLjIxODc1IiwgXAotICAgICAgICAgICIwLjI5ODc1LCAwLjI5Mzc1LCAwLjI4MTI1LCAwLjI2ODc1LCAwLjI2MjUsIDAuMjQ2MjUsIDAuMjMxMjUiLCBcCi0gICAgICAgICAgIjAuMzIxMjUsIDAuMzEsIDAuMjk3NSwgMC4yOTEyNSwgMC4yNzg3NSwgMC4yNjI1LCAwLjI1Mzc1IiwgXAotICAgICAgICAgICIwLjMzNjI1LCAwLjMyNSwgMC4zMTg3NSwgMC4zMDYyNSwgMC4yOTM3NSwgMC4yODM3NSwgMC4yNjg3NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjEyNTQxMzsKLSAgICBmdW5jdGlvbiA6ICJOMzAiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5vbl91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcmlzaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI2MzUxMiwgMC4zMDY0MjEsIDAuNTQ5MTgsIDAuNzYzMzkxLCAxLjA0ODgzLCAxLjYxOTg3LCAxLjk3Njg1IiwgXAotICAgICAgICAgICIwLjI3NTE2MiwgMC4zMTgwNzEsIDAuNTYwODMyLCAwLjc3NTA0MiwgMS4wNjA0NSwgMS42MzE1MiwgMS45ODg1IiwgXAotICAgICAgICAgICIwLjI5MDQzOCwgMC4zMzMzNDYsIDAuNTc2MTA4LCAwLjc5MDI5OSwgMS4wNzU3MiwgMS42NDY4LCAyLjAwMzc4IiwgXAotICAgICAgICAgICIwLjMwNTg4NiwgMC4zNDg3OTQsIDAuNTkxNTU4LCAwLjgwNTc1OCwgMS4wOTExOSwgMS42NjIyMywgMi4wMTkxNSIsIFwKLSAgICAgICAgICAiMC4zMjExNiwgMC4zNjQwNzIsIDAuNjA2OTE5LCAwLjgyMTAxNywgMS4xMDY0OCwgMS42Nzc1NSwgMi4wMzQ0NSIsIFwKLSAgICAgICAgICAiMC4zNDU0MiwgMC4zODgzMjksIDAuNjMxMDkyLCAwLjg0NTI4NywgMS4xMzA3MywgMS43MDE3NiwgMi4wNTg3NCIsIFwKLSAgICAgICAgICAiMC4zNjYxNywgMC40MDkwODQsIDAuNjUxODU1LCAwLjg2NjAyNiwgMS4xNTE1LCAxLjcyMjYsIDIuMDc5NDYiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTYyMTYsIDAuMjQ3OTYyLCAwLjc0MDQyLCAxLjE3Njc4LCAxLjc1ODM0LCAyLjkyMTY4LCAzLjY0ODY0IiwgXAotICAgICAgICAgICIwLjE2MjE2MiwgMC4yNDc5NTMsIDAuNzM5MDQyLCAxLjE3Njc4LCAxLjc1ODEsIDIuOTIxNjIsIDMuNjQ4NjQiLCBcCi0gICAgICAgICAgIjAuMTYyMTQ5LCAwLjI0Nzk1MSwgMC43MzkwNTEsIDEuMTc2NzksIDEuNzU4MSwgMi45MjE2MiwgMy42NDg2NSIsIFwKLSAgICAgICAgICAiMC4xNjIxNTUsIDAuMjQ3OTYxLCAwLjc0MDQ3OSwgMS4xNzQzMywgMS43NTgyMywgMi45MjE2NSwgMy42NDg2NSIsIFwKLSAgICAgICAgICAiMC4xNjIxOTYsIDAuMjQ4MDAyLCAwLjczOTA0NiwgMS4xNzY3OCwgMS43NTgzMywgMi45MjE2OSwgMy42NDg2IiwgXAotICAgICAgICAgICIwLjE2MjE2NiwgMC4yNDc5NywgMC43NDA0NzEsIDEuMTc2NCwgMS43NTgyMywgMi45MjE2NCwgMy42NDg2MSIsIFwKLSAgICAgICAgICAiMC4xNjIxNzEsIDAuMjQ3OTg3LCAwLjczOTEwNCwgMS4xNzY3NywgMS43NTgzNiwgMi45MjE2NywgMy42NDg1OCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMDgxNjksIDAuMzU3NjQzLCAwLjYzNzYwNSwgMC44ODQ1NzQsIDEuMjEzNzksIDEuODcyMywgMi4yODM3NiIsIFwKLSAgICAgICAgICAiMC4zMTk4OTIsIDAuMzY5MzY4LCAwLjY0OTM3NiwgMC44OTYzMjksIDEuMjI1NDYsIDEuODg0MDksIDIuMjk1NDkiLCBcCi0gICAgICAgICAgIjAuMzM1MTk5LCAwLjM4NDY3MiwgMC42NjQ3MjgsIDAuOTExNjQzLCAxLjI0MDc5LCAxLjg5OTM5LCAyLjMxMDk3IiwgXAotICAgICAgICAgICIwLjM1MDcxNiwgMC40MDAxODksIDAuNjgwMTU1LCAwLjkyNzEyNCwgMS4yNTYzNCwgMS45MTQ4NSwgMi4zMjYyNSIsIFwKLSAgICAgICAgICAiMC4zNjYwODEsIDAuNDE1NTU3LCAwLjY5NTU1MiwgMC45NDI1MDEsIDEuMjcxNzcsIDEuOTMwMiwgMi4zNDE2NSIsIFwKLSAgICAgICAgICAiMC4zOTA0NCwgMC40Mzk5MTQsIDAuNzE5ODkyLCAwLjk2NjgyNywgMS4yOTYwMiwgMS45NTQ1NiwgMi4zNjYxNSIsIFwKLSAgICAgICAgICAiMC40MTE0NzQsIDAuNDYwOTQ2LCAwLjc0MDk0MywgMC45ODc5MDksIDEuMzE3MDQsIDEuOTc1NTksIDIuMzg3MjQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTgxMTI5LCAwLjI3ODQxLCAwLjgzMzc2NywgMS4zMjU4OSwgMS45ODE1MiwgMy4yOTE2NywgNC4xMDc3OSIsIFwKLSAgICAgICAgICAiMC4xODExNDQsIDAuMjc4NDIyLCAwLjgzMjQxNiwgMS4zMjU4NywgMS45ODI1OCwgMy4yOTE2NiwgNC4xMDgxNSIsIFwKLSAgICAgICAgICAiMC4xODExMzcsIDAuMjc4MjI2LCAwLjgzMjk3NCwgMS4zMjY1MSwgMS45ODE3OSwgMy4yODc3MywgNC4xMDY0MyIsIFwKLSAgICAgICAgICAiMC4xODExNTksIDAuMjc4NDE1LCAwLjgzNDUwMiwgMS4zMjU4NCwgMS45ODEyMiwgMy4yOTE2MSwgNC4xMDY2MyIsIFwKLSAgICAgICAgICAiMC4xODA5ODQsIDAuMjc4MjEyLCAwLjgzNDU1NSwgMS4zMjU5NiwgMS45ODIyNywgMy4yOTE2MywgNC4xMDY5OCIsIFwKLSAgICAgICAgICAiMC4xODExMTcsIDAuMjc4MjIzLCAwLjgzNDUxMywgMS4zMjU5NCwgMS45ODE1MiwgMy4yOTE2OSwgNC4xMDc1OSIsIFwKLSAgICAgICAgICAiMC4xODExNTYsIDAuMjc4NDE5LCAwLjgzMzM3LCAxLjMyNTc0LCAxLjk4MTksIDMuMjkyMDUsIDQuMTA2NDMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA5MDMxLCAwLjAwOTAzNSwgMC4wMDkwNCwgMC4wMDkwNDIsIDAuMDA5MDQyLCAwLjAwOTA0MywgMC4wMDkwNDIiLCBcCi0gICAgICAgICAgIjAuMDA5MDE4LCAwLjAwOTAyMiwgMC4wMDkwMjcsIDAuMDA5MDI4LCAwLjAwOTAyOSwgMC4wMDkwMjksIDAuMDA5MDI5IiwgXAotICAgICAgICAgICIwLjAwOTAwNiwgMC4wMDkwMDksIDAuMDA5MDE0LCAwLjAwOTAxNSwgMC4wMDkwMTcsIDAuMDA5MDE3LCAwLjAwOTAxNyIsIFwKLSAgICAgICAgICAiMC4wMDg5OTYsIDAuMDA5LCAwLjAwOTAwNiwgMC4wMDkwMDcsIDAuMDA5MDA3LCAwLjAwOTAwOCwgMC4wMDkwMDciLCBcCi0gICAgICAgICAgIjAuMDA4OTg5LCAwLjAwODk5MywgMC4wMDg5OTgsIDAuMDA4OTk5LCAwLjAwODk5OSwgMC4wMDksIDAuMDA5IiwgXAotICAgICAgICAgICIwLjAwODk3NywgMC4wMDg5ODEsIDAuMDA4OTg2LCAwLjAwODk4NywgMC4wMDg5ODcsIDAuMDA4OTg4LCAwLjAwODk4OCIsIFwKLSAgICAgICAgICAiMC4wMDg5NzEsIDAuMDA4OTc1LCAwLjAwODk4LCAwLjAwODk4MSwgMC4wMDg5ODEsIDAuMDA4OTgyLCAwLjAwODk4MiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwODkzNywgMC4wMDg5NDMsIDAuMDA4OTUsIDAuMDA4OTUxLCAwLjAwODk1MiwgMC4wMDg5NTMsIDAuMDA4OTUzIiwgXAotICAgICAgICAgICIwLjAwODkyNiwgMC4wMDg5MzIsIDAuMDA4OTM5LCAwLjAwODk0MSwgMC4wMDg5NDEsIDAuMDA4OTQyLCAwLjAwODk0MiIsIFwKLSAgICAgICAgICAiMC4wMDg5MTQsIDAuMDA4OTIsIDAuMDA4OTI3LCAwLjAwODkyOCwgMC4wMDg5MjksIDAuMDA4OTI5LCAwLjAwODkzIiwgXAotICAgICAgICAgICIwLjAwODkwOCwgMC4wMDg5MTMsIDAuMDA4OTIxLCAwLjAwODkyMiwgMC4wMDg5MjMsIDAuMDA4OTIzLCAwLjAwODkyNCIsIFwKLSAgICAgICAgICAiMC4wMDg5MDYsIDAuMDA4OTEyLCAwLjAwODkxOSwgMC4wMDg5MiwgMC4wMDg5MjEsIDAuMDA4OTIyLCAwLjAwODkyMiIsIFwKLSAgICAgICAgICAiMC4wMDg5MDUsIDAuMDA4OTExLCAwLjAwODkxOCwgMC4wMDg5MTksIDAuMDA4OTIsIDAuMDA4OTIsIDAuMDA4OTIxIiwgXAotICAgICAgICAgICIwLjAwODkxMiwgMC4wMDg5MTgsIDAuMDA4OTI1LCAwLjAwODkyNywgMC4wMDg5MjcsIDAuMDA4OTI4LCAwLjAwODkyOCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oU0UpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTMzNTQxOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTMzNDY7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxMzM1NDE7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA0NzUxLCAwLjAwNDc0OSwgMC4wMDQ3NTEsIDAuMDA0NzUyLCAwLjAwNDc1MiwgMC4wMDQ3NTIsIDAuMDA0NzUxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA1OTI1LCAwLjAwNTkwMSwgMC4wMDU4ODMsIDAuMDA1ODcyLCAwLjAwNTg2NCwgMC4wMDU4NTUsIDAuMDA1ODUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUQmIUUmIVNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9FX0VRXzBfQU5fU0lfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4xMzEyNSwgLTAuMTIsIC0wLjExMzc1LCAtMC4xMDEyNSwgLTAuMDg4NzUsIC0wLjA3ODc1LCAtMC4wNjM3NSIsIFwKLSAgICAgICAgICAiLTAuMTQyNSwgLTAuMTMxMjUsIC0wLjEyNSwgLTAuMTEyNSwgLTAuMSwgLTAuMDksIC0wLjA3NSIsIFwKLSAgICAgICAgICAiLTAuMTYxMjUsIC0wLjE1LCAtMC4xMzc1LCAtMC4xMjUsIC0wLjExODc1LCAtMC4xMDI1LCAtMC4wOTM3NSIsIFwKLSAgICAgICAgICAiLTAuMTczNzUsIC0wLjE2MjUsIC0wLjE1LCAtMC4xNDM3NSwgLTAuMTMxMjUsIC0wLjEyMTI1LCAtMC4xMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMTg2MjUsIC0wLjE4MTI1LCAtMC4xNjg3NSwgLTAuMTU2MjUsIC0wLjE1LCAtMC4xMzM3NSwgLTAuMTE4NzUiLCBcCi0gICAgICAgICAgIi0wLjIwODc1LCAtMC4yMDM3NSwgLTAuMTkxMjUsIC0wLjE3ODc1LCAtMC4xNzI1LCAtMC4xNTYyNSwgLTAuMTQxMjUiLCBcCi0gICAgICAgICAgIi0wLjIzLCAtMC4yMTg3NSwgLTAuMjA2MjUsIC0wLjIsIC0wLjE4NzUsIC0wLjE3MTI1LCAtMC4xNjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEJiFFJlNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9FX0VRXzBfQU5fU0lfRVFfMSA9PSAxJ2IxIjsKLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMDYyNSwgMC4wMDUsIDAuMDE3NSwgMC4wMywgMC4wNDI1LCAwLjA2NSwgMC4wOCIsIFwKLSAgICAgICAgICAiLTAuMDE3NSwgLTAuMDA2MjUsIDAuMDA2MjUsIDAuMDE4NzUsIDAuMDMxMjUsIDAuMDUzNzUsIDAuMDY4NzUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAuMDA2MjUsIDAuMDE4NzUsIDAuMDQxMjUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAuMDA2MjUsIDAuMDI4NzUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIi0wLjA1NSwgLTAuMDQzNzUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAuMDE2MjUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjA3MTI1LCAtMC4wNiwgLTAuMDQ3NSwgLTAuMDM1LCAtMC4wMjI1LCAwLCAwLjAxNSIsIFwKLSAgICAgICAgICAiLTAuMDg2MjUsIC0wLjA3NSwgLTAuMDYyNSwgLTAuMDUsIC0wLjAzNzUsIC0wLjAyMTI1LCAwIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEJkUmU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX0VfRVFfMV9BTl9TSV9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjA5Mzc1LCAtMC4wODg3NSwgLTAuMDc2MjUsIC0wLjA2Mzc1LCAtMC4wNTEyNSwgLTAuMDM1LCAtMC4wMjYyNSIsIFwKLSAgICAgICAgICAiLTAuMTA1LCAtMC4xLCAtMC4wODc1LCAtMC4wNzUsIC0wLjA2MjUsIC0wLjA0NjI1LCAtMC4wMzc1IiwgXAotICAgICAgICAgICItMC4xMTc1LCAtMC4xMTI1LCAtMC4xLCAtMC4wODc1LCAtMC4wNzUsIC0wLjA1ODc1LCAtMC4wNSIsIFwKLSAgICAgICAgICAiLTAuMTM2MjUsIC0wLjEyNSwgLTAuMTEyNSwgLTAuMSwgLTAuMDg3NSwgLTAuMDc3NSwgLTAuMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMTQ4NzUsIC0wLjEzNzUsIC0wLjEyNSwgLTAuMTEyNSwgLTAuMTA2MjUsIC0wLjA5LCAtMC4wNzUiLCBcCi0gICAgICAgICAgIi0wLjE3MTI1LCAtMC4xNiwgLTAuMTQ3NSwgLTAuMTM1LCAtMC4xMjI1LCAtMC4xMDYyNSwgLTAuMDk3NSIsIFwKLSAgICAgICAgICAiLTAuMTg2MjUsIC0wLjE3NSwgLTAuMTYyNSwgLTAuMTU2MjUsIC0wLjE0Mzc1LCAtMC4xMjc1LCAtMC4xMTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIkQmRSYhU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8xX0FOX0VfRVFfMV9BTl9TSV9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjA0Mzc1LCAtMC4wMzI1LCAtMC4wMiwgLTAuMDA3NSwgMC4wMTEyNSwgMC4wMzM3NSwgMC4wNDg3NSIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNDM3NSwgLTAuMDMxMjUsIC0wLjAxODc1LCAtMC4wMDYyNSwgMC4wMTYyNSwgMC4wMzc1IiwgXAotICAgICAgICAgICItMC4wNzM3NSwgLTAuMDYyNSwgLTAuMDUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgMC4wMDM3NSwgMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjA4NjI1LCAtMC4wNzUsIC0wLjA2MjUsIC0wLjA1LCAtMC4wMzc1LCAtMC4wMTUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjEwNSwgLTAuMDkzNzUsIC0wLjA3NSwgLTAuMDYyNSwgLTAuMDUsIC0wLjAyNzUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICItMC4xMjc1LCAtMC4xMTYyNSwgLTAuMTAzNzUsIC0wLjA4NSwgLTAuMDcyNSwgLTAuMDUsIC0wLjAzNSIsIFwKLSAgICAgICAgICAiLTAuMTQ4NzUsIC0wLjEzNzUsIC0wLjExODc1LCAtMC4xMDYyNSwgLTAuMDkzNzUsIC0wLjA3MTI1LCAtMC4wNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUQmIUUmIVNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9FX0VRXzBfQU5fU0lfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMzEyNSwgMC4xMiwgMC4xMDEyNSwgMC4wODg3NSwgMC4wNywgMC4wNDc1LCAwLjAyNjI1IiwgXAotICAgICAgICAgICIwLjE0MjUsIDAuMTMxMjUsIDAuMTEyNSwgMC4xLCAwLjA4MTI1LCAwLjA1ODc1LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIjAuMTYxMjUsIDAuMTUsIDAuMTMxMjUsIDAuMTE4NzUsIDAuMSwgMC4wNzc1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICIwLjE3Mzc1LCAwLjE2MjUsIDAuMTQzNzUsIDAuMTMxMjUsIDAuMTEyNSwgMC4wOSwgMC4wNjg3NSIsIFwKLSAgICAgICAgICAiMC4xOTI1LCAwLjE3NSwgMC4xNjI1LCAwLjE0Mzc1LCAwLjEzMTI1LCAwLjEwODc1LCAwLjA4NzUiLCBcCi0gICAgICAgICAgIjAuMjE1LCAwLjIwMzc1LCAwLjE4NSwgMC4xNzI1LCAwLjE1Mzc1LCAwLjEzMTI1LCAwLjExIiwgXAotICAgICAgICAgICIwLjIzLCAwLjIxODc1LCAwLjIwNjI1LCAwLjE4NzUsIDAuMTc1LCAwLjE0NjI1LCAwLjEzMTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRCYhRSZTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fRV9FUV8wX0FOX1NJX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTU2MjUsIDAuMTM4NzUsIDAuMTI2MjUsIDAuMTEzNzUsIDAuMTAxMjUsIDAuMDg1LCAwLjA3IiwgXAotICAgICAgICAgICIwLjE2NzUsIDAuMTUsIDAuMTM3NSwgMC4xMjUsIDAuMTEyNSwgMC4wOTYyNSwgMC4wODEyNSIsIFwKLSAgICAgICAgICAiMC4xOCwgMC4xNjg3NSwgMC4xNSwgMC4xMzc1LCAwLjEyNSwgMC4xMDg3NSwgMC4wOTM3NSIsIFwKLSAgICAgICAgICAiMC4xOTI1LCAwLjE4MTI1LCAwLjE2MjUsIDAuMTUsIDAuMTM3NSwgMC4xMjEyNSwgMC4xMTI1IiwgXAotICAgICAgICAgICIwLjIwNSwgMC4xOTM3NSwgMC4xNzUsIDAuMTYyNSwgMC4xNSwgMC4xMzM3NSwgMC4xMjUiLCBcCi0gICAgICAgICAgIjAuMjI3NSwgMC4yMTYyNSwgMC4xOTc1LCAwLjE4NSwgMC4xNzI1LCAwLjE1NjI1LCAwLjE0NzUiLCBcCi0gICAgICAgICAgIjAuMjQ4NzUsIDAuMjMxMjUsIDAuMjE4NzUsIDAuMjA2MjUsIDAuMTkzNzUsIDAuMTc3NSwgMC4xNjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRCZFJlNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9FX0VRXzFfQU5fU0lfRVFfMSA9PSAxJ2IxIjsKLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMzEyNSwgMC4xMTM3NSwgMC4xMDEyNSwgMC4wODI1LCAwLjA3LCAwLjA0MTI1LCAwLjAyIiwgXAotICAgICAgICAgICIwLjEzNjI1LCAwLjEyNSwgMC4xMTI1LCAwLjA5Mzc1LCAwLjA3NSwgMC4wNTI1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICIwLjE0ODc1LCAwLjEzNzUsIDAuMTI1LCAwLjEwNjI1LCAwLjA4NzUsIDAuMDY1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjE2MTI1LCAwLjE1LCAwLjEzNzUsIDAuMTE4NzUsIDAuMSwgMC4wNzc1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICIwLjE3Mzc1LCAwLjE2MjUsIDAuMTUsIDAuMTMxMjUsIDAuMTEyNSwgMC4wOSwgMC4wNjg3NSIsIFwKLSAgICAgICAgICAiMC4xOTYyNSwgMC4xODUsIDAuMTY2MjUsIDAuMTUzNzUsIDAuMTM1LCAwLjExMjUsIDAuMDkxMjUiLCBcCi0gICAgICAgICAgIjAuMjExMjUsIDAuMiwgMC4xODc1LCAwLjE2ODc1LCAwLjE1LCAwLjEyNzUsIDAuMTA2MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIkQmRSYhU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8xX0FOX0VfRVFfMV9BTl9TSV9FUV8wID09IDEnYjEiOwotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIxMjUsIDAuMjAxMjUsIDAuMTgyNSwgMC4xNywgMC4xNTc1LCAwLjE0MTI1LCAwLjEyNjI1IiwgXAotICAgICAgICAgICIwLjIyMzc1LCAwLjIxMjUsIDAuMTkzNzUsIDAuMTgxMjUsIDAuMTY4NzUsIDAuMTUyNSwgMC4xMzc1IiwgXAotICAgICAgICAgICIwLjIzNjI1LCAwLjIyNSwgMC4yMTI1LCAwLjE5Mzc1LCAwLjE4MTI1LCAwLjE2NSwgMC4xNSIsIFwKLSAgICAgICAgICAiMC4yNTUsIDAuMjM3NSwgMC4yMjUsIDAuMjEyNSwgMC4yLCAwLjE3NzUsIDAuMTY4NzUiLCBcCi0gICAgICAgICAgIjAuMjY3NSwgMC4yNTYyNSwgMC4yMzc1LCAwLjIyNSwgMC4yMTI1LCAwLjE5NjI1LCAwLjE4MTI1IiwgXAotICAgICAgICAgICIwLjI5LCAwLjI3ODc1LCAwLjI2LCAwLjI0NzUsIDAuMjM1LCAwLjIxODc1LCAwLjIwMzc1IiwgXAotICAgICAgICAgICIwLjMxMTI1LCAwLjI5Mzc1LCAwLjI4MTI1LCAwLjI2ODc1LCAwLjI1LCAwLjIzMzc1LCAwLjIyNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oU0kpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDg1OTAxNTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA4NTUzMjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA4NTkwMTU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyOTgzLCAwLjAwMjk2NCwgMC4wMDI5NTQsIDAuMDAyOTQ4LCAwLjAwMjk0MywgMC4wMDI5MzcsIDAuMDAyOTMyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA1MTA0LCAwLjAwNTA5NCwgMC4wMDUwODksIDAuMDA1MDg1LCAwLjAwNTA4MywgMC4wMDUwNzksIDAuMDA1MDc3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlNFIjsKLSAgICAgIHNkZl9jb25kIDogIlNFID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjExMjUsIC0wLjEwMTI1LCAtMC4wODg3NSwgLTAuMDc2MjUsIC0wLjA2Mzc1LCAtMC4wNTM3NSwgLTAuMDM4NzUiLCBcCi0gICAgICAgICAgIi0wLjEyMzc1LCAtMC4xMTI1LCAtMC4xLCAtMC4wODc1LCAtMC4wNzUsIC0wLjA1ODc1LCAtMC4wNSIsIFwKLSAgICAgICAgICAiLTAuMTM2MjUsIC0wLjEyNSwgLTAuMTEyNSwgLTAuMSwgLTAuMDg3NSwgLTAuMDc3NSwgLTAuMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMTQ4NzUsIC0wLjEzNzUsIC0wLjEyNSwgLTAuMTEyNSwgLTAuMTA2MjUsIC0wLjA5LCAtMC4wNzUiLCBcCi0gICAgICAgICAgIi0wLjE2MTI1LCAtMC4xNSwgLTAuMTM3NSwgLTAuMTI1LCAtMC4xMTg3NSwgLTAuMTAyNSwgLTAuMDg3NSIsIFwKLSAgICAgICAgICAiLTAuMTgzNzUsIC0wLjE3MjUsIC0wLjE2LCAtMC4xNDc1LCAtMC4xNDEyNSwgLTAuMTI1LCAtMC4xMSIsIFwKLSAgICAgICAgICAiLTAuMTk4NzUsIC0wLjE5Mzc1LCAtMC4xODEyNSwgLTAuMTY4NzUsIC0wLjE1NjI1LCAtMC4xNCwgLTAuMTMxMjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMTI1LCAtMC4wMDEyNSwgMC4wMTEyNSwgMC4wMywgMC4wNDI1LCAwLjA2NSwgMC4wOCIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxMjUsIDAsIDAuMDE4NzUsIDAuMDMxMjUsIDAuMDUzNzUsIDAuMDY4NzUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMjUsIC0wLjAxMjUsIDAuMDA2MjUsIDAuMDE4NzUsIDAuMDQxMjUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAwNjI1LCAwLjAwNjI1LCAwLjAyODc1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICItMC4wNjEyNSwgLTAuMDUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAuMDE2MjUsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDc3NSwgLTAuMDY2MjUsIC0wLjA1Mzc1LCAtMC4wMzUsIC0wLjAyMjUsIDAsIDAuMDE1IiwgXAotICAgICAgICAgICItMC4wOTI1LCAtMC4wODEyNSwgLTAuMDY4NzUsIC0wLjA1LCAtMC4wMzc1LCAtMC4wMTUsIDAiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlNFIjsKLSAgICAgIHNkZl9jb25kIDogIlNFID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE2ODc1LCAwLjE1NzUsIDAuMTM4NzUsIDAuMTI2MjUsIDAuMTEzNzUsIDAuMDk3NSwgMC4wODg3NSIsIFwKLSAgICAgICAgICAiMC4xOCwgMC4xNjg3NSwgMC4xNSwgMC4xMzc1LCAwLjEyNSwgMC4xMDg3NSwgMC4wOTM3NSIsIFwKLSAgICAgICAgICAiMC4xOTI1LCAwLjE4MTI1LCAwLjE2MjUsIDAuMTUsIDAuMTM3NSwgMC4xMjEyNSwgMC4xMTI1IiwgXAotICAgICAgICAgICIwLjIwNSwgMC4xOTM3NSwgMC4xNzUsIDAuMTYyNSwgMC4xNSwgMC4xMzM3NSwgMC4xMjUiLCBcCi0gICAgICAgICAgIjAuMjE3NSwgMC4yMDYyNSwgMC4xOTM3NSwgMC4xNzUsIDAuMTY4NzUsIDAuMTUyNSwgMC4xMzc1IiwgXAotICAgICAgICAgICIwLjI0LCAwLjIyODc1LCAwLjIxLCAwLjE5NzUsIDAuMTg1LCAwLjE2ODc1LCAwLjE2IiwgXAotICAgICAgICAgICIwLjI2MTI1LCAwLjI0Mzc1LCAwLjIzMTI1LCAwLjIxODc1LCAwLjIwNjI1LCAwLjE5LCAwLjE3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEsIDAuMDg4NzUsIDAuMDcsIDAuMDUxMjUsIDAuMDM4NzUsIDAuMDE2MjUsIC0wLjAwNSIsIFwKLSAgICAgICAgICAiMC4xMTEyNSwgMC4xLCAwLjA4MTI1LCAwLjA2MjUsIDAuMDUsIDAuMDI3NSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiMC4xMjM3NSwgMC4xMTI1LCAwLjA5Mzc1LCAwLjA4MTI1LCAwLjA2MjUsIDAuMDQsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMTM2MjUsIDAuMTI1LCAwLjEwNjI1LCAwLjA4NzUsIDAuMDc1LCAwLjA1MjUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMTQ4NzUsIDAuMTM3NSwgMC4xMTg3NSwgMC4xLCAwLjA4NzUsIDAuMDY1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjE2NSwgMC4xNTM3NSwgMC4xMzUsIDAuMTIyNSwgMC4xMDM3NSwgMC4wODEyNSwgMC4wNiIsIFwKLSAgICAgICAgICAiMC4xOCwgMC4xNjg3NSwgMC4xNTYyNSwgMC4xMzc1LCAwLjEyNSwgMC4wOTYyNSwgMC4wODEyNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogQ0xLQU5EMlg0ICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoQ0xLQU5EMlg0KSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMjA1NTQzOwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDEyNDUzODsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDEyNDUzODsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDEyMzk1ODsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyOTgsIDAuMDAwMjk4LCAwLjAwMDI5OCwgMC4wMDAyOTgsIDAuMDAwMjk4LCAwLjAwMDI5OCwgMC4wMDAyOTgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAzMiwgMC4wMDAzMDUsIDAuMDAwMzAyLCAwLjAwMDMwMSwgMC4wMDAzMDEsIDAuMDAwMywgMC4wMDAzIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDExOTM3MjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDExOTM3MjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDExOTM1MjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAwMTIsIDAuMDAwMDEyLCAwLjAwMDAxMiwgMC4wMDAwMTIsIDAuMDAwMDEyLCAwLjAwMDAxMiwgMC4wMDAwMTIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAzODEsIDAuMDAwMzgxLCAwLjAwMDM4MSwgMC4wMDAzODEsIDAuMDAwMzgxLCAwLjAwMDM4MSwgMC4wMDAzODEiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC41MTgyNzsKLSAgICBmdW5jdGlvbiA6ICIoQSBCKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTQxNDcsIDAuMjIzNTIxLCAwLjM1MDI3NywgMC40NDA3MjcsIDAuNTg1NTk5LCAwLjcxMjIyNSwgMC44OTMzNjciLCBcCi0gICAgICAgICAgIjAuMTA1NTIyLCAwLjIzNTA2NywgMC4zNjE4MzIsIDAuNDUyMjgsIDAuNTk3Mjc5LCAwLjcyMzU3NCwgMC45MDQ3MjYiLCBcCi0gICAgICAgICAgIjAuMTE5MDQ3LCAwLjI0ODc2NSwgMC4zNzU1MDcsIDAuNDY1OTg3LCAwLjYxMDgwOCwgMC43Mzc4NDUsIDAuOTE4NTg2IiwgXAotICAgICAgICAgICIwLjEzMjQ5NiwgMC4yNjIyNDIsIDAuMzg5MDA0LCAwLjQ3OTQ3MywgMC42MjQxNDUsIDAuNzUxMTAyLCAwLjkzMjA1NiIsIFwKLSAgICAgICAgICAiMC4xNDU2ODYsIDAuMjc1MzY3LCAwLjQwMjEzMiwgMC40OTI2MDksIDAuNjM3NDQsIDAuNzYzOTU3LCAwLjk0NTI0NCIsIFwKLSAgICAgICAgICAiMC4xNjYyMDYsIDAuMjk2MDE2LCAwLjQyMjc5NywgMC41MTMyNjUsIDAuNjU4MTE1LCAwLjc4NDkzMiwgMC45NjU4NTEiLCBcCi0gICAgICAgICAgIjAuMTgzMzg0LCAwLjMxMzI4NiwgMC40NDAwNjEsIDAuNTMwNTI1LCAwLjY3NTM2MywgMC44MDI0MTksIDAuOTgzMzM1Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU5NDEyLCAwLjMwODQzOCwgMC41Njc0NzcsIDAuNzUwNjQ0LCAxLjA0MjY5LCAxLjMwMzE2LCAxLjY2ODQ1IiwgXAotICAgICAgICAgICIwLjA1OTM0MywgMC4zMDg5MzYsIDAuNTY1MDM3LCAwLjc1MDY1MSwgMS4wNDMwMSwgMS4zMDI4NywgMS42NzI3NCIsIFwKLSAgICAgICAgICAiMC4wNTkzLCAwLjMwODc4MywgMC41NjY1NzEsIDAuNzUwNDg2LCAxLjA0NTc2LCAxLjMwMDgzLCAxLjY2ODY0IiwgXAotICAgICAgICAgICIwLjA1OTI2MiwgMC4zMDg5NjIsIDAuNTY2NTg1LCAwLjc1MDQyNywgMS4wNDQ5OCwgMS4zMDEzOCwgMS42Njc1MyIsIFwKLSAgICAgICAgICAiMC4wNTkzNiwgMC4zMDg5OTgsIDAuNTY1MjY1LCAwLjc0ODQxOCwgMS4wNDU3NywgMS4zMDMwNCwgMS42Njg1MiIsIFwKLSAgICAgICAgICAiMC4wNTk5MzgsIDAuMzA5MDMyLCAwLjU2NjYxMywgMC43NTAzMjQsIDEuMDQyODIsIDEuMzAxNjIsIDEuNjY3NTkiLCBcCi0gICAgICAgICAgIjAuMDYxMjMyLCAwLjMwOTMxNCwgMC41NjY2MjcsIDAuNzUwNTkyLCAxLjA0NTc1LCAxLjMwMDksIDEuNjY4MzQiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTM3MjUsIDAuMjQxODU1LCAwLjM4NzY2NSwgMC40OTE3MDQsIDAuNjU4MTkzLCAwLjgwMzgyNiwgMS4wMTE3NyIsIFwKLSAgICAgICAgICAiMC4xMDUwOTEsIDAuMjUzMzAxLCAwLjM5OTEzNywgMC41MDMxNTMsIDAuNjY5NjAzLCAwLjgxNTIxMywgMS4wMjMyIiwgXAotICAgICAgICAgICIwLjExOTU1MywgMC4yNjc4MjUsIDAuNDEzNjI3LCAwLjUxNzcxLCAwLjY4NDE0MSwgMC44Mjk3NTIsIDEuMDM3NzYiLCBcCi0gICAgICAgICAgIjAuMTM0NTMzLCAwLjI4MjczNiwgMC40Mjg1ODEsIDAuNTMyNTk0LCAwLjY5OTA1MywgMC44NDQ2NjIsIDEuMDUyNjgiLCBcCi0gICAgICAgICAgIjAuMTQ5MTc1LCAwLjI5NzQ4NiwgMC40NDMyOTgsIDAuNTQ3MzYxLCAwLjcxMzgxOCwgMC44NTk0MzksIDEuMDY3NDMiLCBcCi0gICAgICAgICAgIjAuMTcyMzI2LCAwLjMyMDY0NCwgMC40NjY0OTYsIDAuNTcwNTQ5LCAwLjczNzAxNCwgMC44ODI2NDksIDEuMDkwNjUiLCBcCi0gICAgICAgICAgIjAuMTkxMzgzLCAwLjMzOTkzMywgMC40ODU4MjQsIDAuNTg5ODM5LCAwLjc1NjMxMiwgMC45MDE5MzksIDEuMTA5OTQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjMxMjIsIDAuMzQ2MzY4LCAwLjYzNjkxNiwgMC44NDQ1NjUsIDEuMTc1ODQsIDEuNDY2MDQsIDEuODgwNzgiLCBcCi0gICAgICAgICAgIjAuMDYzMTI0LCAwLjM0NzQ1NSwgMC42MzY4MjYsIDAuODQzNDA2LCAxLjE3NTMyLCAxLjQ2NTgzLCAxLjg4MTkyIiwgXAotICAgICAgICAgICIwLjA2MzEwNiwgMC4zNDY0NzEsIDAuNjM2MjEsIDAuODQ0MTQ3LCAxLjE3NTg4LCAxLjQ2Njc2LCAxLjg4MTA1IiwgXAotICAgICAgICAgICIwLjA2MzEzOCwgMC4zNDY5NywgMC42MzUxMTMsIDAuODQzMywgMS4xNzU5NiwgMS40NjUzOCwgMS44ODE1MyIsIFwKLSAgICAgICAgICAiMC4wNjMyMTEsIDAuMzQ3NjM3LCAwLjYzNzA3MSwgMC44NDMyMjUsIDEuMTc1MjcsIDEuNDY2MzIsIDEuODc5MjciLCBcCi0gICAgICAgICAgIjAuMDYzNzA2LCAwLjM0Njc1NSwgMC42MzcwNjgsIDAuODQ0Njc3LCAxLjE3NDM5LCAxLjQ2NjUsIDEuODgwODIiLCBcCi0gICAgICAgICAgIjAuMDY0OTUsIDAuMzQ3MDYzLCAwLjYzNTEzNSwgMC44NDQ3MDUsIDEuMTc0NzQsIDEuNDY2MjQsIDEuODc5MjciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODk3MTQsIDAuMjE5MjQxLCAwLjM0NTk2OCwgMC40MzY0NjIsIDAuNTgxMzIzLCAwLjcwODAyMiwgMC44ODkxNDkiLCBcCi0gICAgICAgICAgIjAuMDk5ODQ4LCAwLjIyOTU3LCAwLjM1NjM1OCwgMC40NDY3OTgsIDAuNTkxNjE5LCAwLjcxODI5NiwgMC44OTk2MDEiLCBcCi0gICAgICAgICAgIjAuMTEzNDAyLCAwLjI0MzEyNCwgMC4zNjk4NzYsIDAuNDYwMzY5LCAwLjYwNTE5MywgMC43MzIyNDUsIDAuOTEzMDI4IiwgXAotICAgICAgICAgICIwLjEyNjk1NSwgMC4yNTY2NzYsIDAuMzgzNDUyLCAwLjQ3MzkxNywgMC42MTg5NDksIDAuNzQ1NDE0LCAwLjkyNjQ0MyIsIFwKLSAgICAgICAgICAiMC4xNDA0OTIsIDAuMjY5ODc3LCAwLjM5NjY1OSwgMC40ODcxMjksIDAuNjMxOTg5LCAwLjc1ODc1NSwgMC45Mzk3MDkiLCBcCi0gICAgICAgICAgIjAuMTYxMzQ2LCAwLjI5MTI5LCAwLjQxODA0MiwgMC41MDg1NjYsIDAuNjUzMzkyLCAwLjc4MDQ0MSwgMC45NjEyNDgiLCBcCi0gICAgICAgICAgIjAuMTc4MjE2LCAwLjMwODM3NywgMC40MzUxODIsIDAuNTI1NjM5LCAwLjY3MDQ5NiwgMC43OTcxMiwgMC45NzgxNjkiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTkzNjUsIDAuMzA4NDI4LCAwLjU2NjM5LCAwLjc1MDYzMSwgMS4wNDI3NywgMS4zMDE0NSwgMS42NjgzNyIsIFwKLSAgICAgICAgICAiMC4wNTkzMSwgMC4zMDg3NTYsIDAuNTY1MDQ5LCAwLjc1MDU0OCwgMS4wNDU3OCwgMS4zMDI2OSwgMS42Njg4NCIsIFwKLSAgICAgICAgICAiMC4wNTkyOCwgMC4zMDkwMjIsIDAuNTY1NDcsIDAuNzUwNDYzLCAxLjA0NTc2LCAxLjMwMDY1LCAxLjY2ODM5IiwgXAotICAgICAgICAgICIwLjA1OTI4OSwgMC4zMDg5NDMsIDAuNTY3MzAxLCAwLjc1MDYwOCwgMS4wNDMwMSwgMS4zMDM4NiwgMS42Njk1MiIsIFwKLSAgICAgICAgICAiMC4wNTk0NTUsIDAuMzA5MDE2LCAwLjU2NjYxMSwgMC43NTA0MjYsIDEuMDQyODIsIDEuMzAxNDUsIDEuNjY3NyIsIFwKLSAgICAgICAgICAiMC4wNjA3MSwgMC4zMDk2NTMsIDAuNTY2NDYyLCAwLjc1MDY5NCwgMS4wNDI4MiwgMS4zMDA3MSwgMS42NjgzNCIsIFwKLSAgICAgICAgICAiMC4wNjI2NDgsIDAuMzA5ODg4LCAwLjU2NTI5OSwgMC43NTA2ODMsIDEuMDQzNzcsIDEuMzAzODEsIDEuNjY3ODIiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODg4MzMsIDAuMjM2NTcxLCAwLjM4MjIyNywgMC40ODYzNjEsIDAuNjUyNzksIDAuNzk4NDc4LCAxLjAwNjQ4IiwgXAotICAgICAgICAgICIwLjEwMDA2NywgMC4yNDc3NDcsIDAuMzkzNDA4LCAwLjQ5NzU1NiwgMC42NjM4NjMsIDAuODA5NzY3LCAxLjAxNzc3IiwgXAotICAgICAgICAgICIwLjExNDgsIDAuMjYyNTkxLCAwLjQwODI2LCAwLjUxMjM4MSwgMC42Nzg4MzQsIDAuODI0NDg4LCAxLjAzMjUiLCBcCi0gICAgICAgICAgIjAuMTI5NDg5LCAwLjI3NzMzLCAwLjQyMjk5MiwgMC41MjcxMzcsIDAuNjkzNDk5LCAwLjgzOTI2NSwgMS4wNDcyMiIsIFwKLSAgICAgICAgICAiMC4xNDQwMTIsIDAuMjkxNjIsIDAuNDM3MzE2LCAwLjU0MTQ3OSwgMC43MDgwMjcsIDAuODUzNjQ5LCAxLjA2MTUzIiwgXAotICAgICAgICAgICIwLjE2NjU5NywgMC4zMTQ1NjcsIDAuNDYwMjg1LCAwLjU2NDQxNCwgMC43MzA5ODcsIDAuODc2NTcxLCAxLjA4NDc1IiwgXAotICAgICAgICAgICIwLjE4NDk4MiwgMC4zMzMwNjYsIDAuNDc4NzgsIDAuNTgyOTcxLCAwLjc0OTMxNCwgMC44OTUwODMsIDEuMTAzMDYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjI1NjEsIDAuMzQ2ODQyLCAwLjYzNywgMC44NDIzOTksIDEuMTc0MTIsIDEuNDY1MDgsIDEuODc4MzMiLCBcCi0gICAgICAgICAgIjAuMDYyNDg3LCAwLjM0NTk5NywgMC42MzcwMDksIDAuODQzMDc0LCAxLjE3NjQxLCAxLjQ2Mjk1LCAxLjg3ODM4IiwgXAotICAgICAgICAgICIwLjA2MjU0NSwgMC4zNDY5ODcsIDAuNjM2NDYyLCAwLjg0MjI2OSwgMS4xNzQzMiwgMS40NjQ3MiwgMS44NzgwOCIsIFwKLSAgICAgICAgICAiMC4wNjI2MDYsIDAuMzQ2MjQ2LCAwLjYzNzAwNiwgMC44NDI1NTMsIDEuMTcyNzcsIDEuNDY1MDMsIDEuODc3IiwgXAotICAgICAgICAgICIwLjA2Mjg3MywgMC4zNDU5MzEsIDAuNjM3MDE0LCAwLjg0Mjk4MiwgMS4xNzMzLCAxLjQ2NDEyLCAxLjg3NTciLCBcCi0gICAgICAgICAgIjAuMDYzNTY5LCAwLjM0NjIzNiwgMC42MzcwMzIsIDAuODQyMDQ4LCAxLjE3MzA5LCAxLjQ2NDg4LCAxLjg3NjkyIiwgXAotICAgICAgICAgICIwLjA2NTUyNywgMC4zNDcxNDQsIDAuNjM3MDY1LCAwLjg0MjkwMSwgMS4xNzU1MywgMS40NjQ4MiwgMS44NzgyMSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzOTQ5LCAwLjAwNDAzMSwgMC4wMDQwNCwgMC4wMDQwNDIsIDAuMDA0MDQ0LCAwLjAwNDA0NSwgMC4wMDQwNDciLCBcCi0gICAgICAgICAgIjAuMDAzOTI5LCAwLjAwNDAxNCwgMC4wMDQwMjEsIDAuMDA0MDI1LCAwLjAwNDAyNywgMC4wMDQwMjcsIDAuMDA0MDI4IiwgXAotICAgICAgICAgICIwLjAwMzkwNywgMC4wMDM5OTgsIDAuMDA0MDA4LCAwLjAwNDAxLCAwLjAwNDAxMiwgMC4wMDQwMTMsIDAuMDA0MDE0IiwgXAotICAgICAgICAgICIwLjAwMzg4OCwgMC4wMDM5ODQsIDAuMDAzOTk2LCAwLjAwNDAwMSwgMC4wMDQwMDIsIDAuMDA0MDAxLCAwLjAwNDAwNCIsIFwKLSAgICAgICAgICAiMC4wMDM4NywgMC4wMDM5NzYsIDAuMDAzOTg4LCAwLjAwMzk5MSwgMC4wMDM5OTUsIDAuMDAzOTk1LCAwLjAwMzk5OCIsIFwKLSAgICAgICAgICAiMC4wMDM4NTIsIDAuMDAzOTYyLCAwLjAwMzk3OSwgMC4wMDM5ODYsIDAuMDAzOTg2LCAwLjAwMzk5MSwgMC4wMDM5OTIiLCBcCi0gICAgICAgICAgIjAuMDAzODQsIDAuMDAzOTUzLCAwLjAwMzk3MiwgMC4wMDM5NzgsIDAuMDAzOTgyLCAwLjAwMzk4NSwgMC4wMDM5ODciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNTYwMywgMC4wMDU3MjgsIDAuMDA1NzQzLCAwLjAwNTc0NywgMC4wMDU3NTEsIDAuMDA1NzUzLCAwLjAwNTc1NSIsIFwKLSAgICAgICAgICAiMC4wMDU1NjcsIDAuMDA1Njk4LCAwLjAwNTcxMywgMC4wMDU3MTgsIDAuMDA1NzIyLCAwLjAwNTcyNCwgMC4wMDU3MjYiLCBcCi0gICAgICAgICAgIjAuMDA1NTM0LCAwLjAwNTY3MiwgMC4wMDU2OTEsIDAuMDA1Njk3LCAwLjAwNTcwMiwgMC4wMDU3MDQsIDAuMDA1NzA3IiwgXAotICAgICAgICAgICIwLjAwNTUxLCAwLjAwNTY1NCwgMC4wMDU2NzYsIDAuMDA1NjgzLCAwLjAwNTY4OSwgMC4wMDU2OTIsIDAuMDA1Njk1IiwgXAotICAgICAgICAgICIwLjAwNTQ4OCwgMC4wMDU2MzksIDAuMDA1NjY1LCAwLjAwNTY3MywgMC4wMDU2OCwgMC4wMDU2ODQsIDAuMDA1Njg3IiwgXAotICAgICAgICAgICIwLjAwNTQ2LCAwLjAwNTYyMywgMC4wMDU2NTMsIDAuMDA1NjYzLCAwLjAwNTY3MiwgMC4wMDU2NzcsIDAuMDA1NjgxIiwgXAotICAgICAgICAgICIwLjAwNTQ0OSwgMC4wMDU2MTEsIDAuMDA1NjQ1LCAwLjAwNTY1NiwgMC4wMDU2NjcsIDAuMDA1NjcyLCAwLjAwNTY3NyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzOTQ3LCAwLjAwNDAzNSwgMC4wMDQwNDQsIDAuMDA0MDUxLCAwLjAwNDA0OSwgMC4wMDQwNDUsIDAuMDA0MDUzIiwgXAotICAgICAgICAgICIwLjAwMzkxNSwgMC4wMDQwMDcsIDAuMDA0MDE4LCAwLjAwNDAyMSwgMC4wMDQwMjMsIDAuMDA0MDI1LCAwLjAwNDAyNiIsIFwKLSAgICAgICAgICAiMC4wMDM4ODUsIDAuMDAzOTg1LCAwLjAwMzk5NywgMC4wMDM5OTksIDAuMDA0MDA0LCAwLjAwNDAwNSwgMC4wMDQwMDciLCBcCi0gICAgICAgICAgIjAuMDAzODYxLCAwLjAwMzk2NywgMC4wMDM5ODIsIDAuMDAzOTg3LCAwLjAwMzk5MSwgMC4wMDM5OTIsIDAuMDAzOTk0IiwgXAotICAgICAgICAgICIwLjAwMzg0MywgMC4wMDM5NTQsIDAuMDAzOTcyLCAwLjAwMzk3OCwgMC4wMDM5ODIsIDAuMDAzOTg1LCAwLjAwMzk4NyIsIFwKLSAgICAgICAgICAiMC4wMDM4MjUsIDAuMDAzOTM5LCAwLjAwMzk2MywgMC4wMDM5NywgMC4wMDM5NzYsIDAuMDAzOTc5LCAwLjAwMzk4MyIsIFwKLSAgICAgICAgICAiMC4wMDM4MTUsIDAuMDAzOTMzLCAwLjAwMzk1OCwgMC4wMDM5NjcsIDAuMDAzOTc1LCAwLjAwMzk3OCwgMC4wMDM5ODEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNTAwMiwgMC4wMDUxMjQsIDAuMDA1MTM3LCAwLjAwNTE0MSwgMC4wMDUxNDQsIDAuMDA1MTQ2LCAwLjAwNTE0OCIsIFwKLSAgICAgICAgICAiMC4wMDQ5NjIsIDAuMDA1MDkxLCAwLjAwNTEwNiwgMC4wMDUxMSwgMC4wMDUxMTMsIDAuMDA1MTE1LCAwLjAwNTExNyIsIFwKLSAgICAgICAgICAiMC4wMDQ5MTksIDAuMDA1MDU4LCAwLjAwNTA3NSwgMC4wMDUwOCwgMC4wMDUwODUsIDAuMDA1MDg3LCAwLjAwNTA4OSIsIFwKLSAgICAgICAgICAiMC4wMDQ4ODQsIDAuMDA1MDMxLCAwLjAwNTA1MywgMC4wMDUwNTksIDAuMDA1MDY1LCAwLjAwNTA2OCwgMC4wMDUwNyIsIFwKLSAgICAgICAgICAiMC4wMDQ4NTIsIDAuMDA1MDA5LCAwLjAwNTAzNiwgMC4wMDUwNDQsIDAuMDA1MDUxLCAwLjAwNTA1NSwgMC4wMDUwNTkiLCBcCi0gICAgICAgICAgIjAuMDA0ODMyLCAwLjAwNDk5MywgMC4wMDUwMjMsIDAuMDA1MDMzLCAwLjAwNTA0MiwgMC4wMDUwNDcsIDAuMDA1MDUxIiwgXAotICAgICAgICAgICIwLjAwNDgxLCAwLjAwNDk3OCwgMC4wMDUwMTMsIDAuMDA1MDI0LCAwLjAwNTAzNSwgMC4wMDUwNCwgMC4wMDUwNDUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogT0FJMjExWEwgKgotICogLS0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKE9BSTIxMVhMKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMDY0NjUzNjsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQTApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDU2MzE5OTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA1NjE3NjE7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNTYzMTk5OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDE2NSwgMC4wMDAxNjUsIDAuMDAwMTY1LCAwLjAwMDE2NSwgMC4wMDAxNjUsIDAuMDAwMTY1LCAwLjAwMDE2NSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQTEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYzMjkxMTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MzI5MTE7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjMxMDY3OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDE2NSwgMC4wMDAxNjUsIDAuMDAwMTY1LCAwLjAwMDE2NSwgMC4wMDAxNjUsIDAuMDAwMTY1LCAwLjAwMDE2NSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQjApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY0OTY1NTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2NDk2NTU7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjQ4MzcyOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDE2NSwgMC4wMDAxNjUsIDAuMDAwMTY1LCAwLjAwMDE2NSwgMC4wMDAxNjUsIDAuMDAwMTY1LCAwLjAwMDE2NSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQzApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYzMDE5NTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2Mjk1NTg7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjMwMTk1OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDA3MSwgMC4wMDAwNywgMC4wMDAwNywgMC4wMDAwNzEsIDAuMDAwMDcsIDAuMDAwMDcsIDAuMDAwMDciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxODgsIDAuMDAwMTg4LCAwLjAwMDE4OCwgMC4wMDAxODgsIDAuMDAwMTg4LCAwLjAwMDE4OCwgMC4wMDAxODgiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4wMjUxMTE2OwotICAgIGZ1bmN0aW9uIDogIighKCgoQTArQTEpIEIwKSBDMCkpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzEzNTA5LCAwLjM2NTQxMiwgMC44MzEzODQsIDEuNjA2NzIsIDIuMzgwNzMsIDQuMTg3NDUsIDUuMjE5MTgiLCBcCi0gICAgICAgICAgIjAuMzI1MDkxLCAwLjM3Njk2MywgMC44NDI4NjEsIDEuNjE4MTcsIDIuMzkyMzEsIDQuMTk5MTQsIDUuMjMwNjQiLCBcCi0gICAgICAgICAgIjAuMzM4MjY2LCAwLjM5MDEzNiwgMC44NTYwNDQsIDEuNjMwOSwgMi40MDU0LCA0LjIxMTk0LCA1LjI0Mzc5IiwgXAotICAgICAgICAgICIwLjM1MDgyNCwgMC40MDI3NzMsIDAuODY4NTQ3LCAxLjY0Mzc4LCAyLjQxODgsIDQuMjI0NzcsIDUuMjU2NCIsIFwKLSAgICAgICAgICAiMC4zNjMzMiwgMC40MTUyMjMsIDAuODgxMTU5LCAxLjY1NjE5LCAyLjQzMTM5LCA0LjIzNzIzLCA1LjI2OTEiLCBcCi0gICAgICAgICAgIjAuMzgyODYxLCAwLjQzNDk5NCwgMC45MDA5NDQsIDEuNjc2MTksIDIuNDUwMTgsIDQuMjU2OTcsIDUuMjg4NzMiLCBcCi0gICAgICAgICAgIjAuNDAwMzQ3LCAwLjQ1MjMzMSwgMC45MTg0MDgsIDEuNjkzNDgsIDIuNDY3OTYsIDQuMjc0NDcsIDUuMzA2MjIiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuNTc3OTQ4LCAwLjY3ODg2LCAxLjU4NzQ5LCAzLjA5OTksIDQuNjEwMzksIDguMTM5MzcsIDEwLjE1NjQiLCBcCi0gICAgICAgICAgIjAuNTc3NzMzLCAwLjY3ODkzNSwgMS41ODc0OSwgMy4wOTk3NywgNC42MTEzNSwgOC4xMzgzNiwgMTAuMTU2MiIsIFwKLSAgICAgICAgICAiMC41Nzc3NDksIDAuNjc5MTMyLCAxLjU4NzQ2LCAzLjA5ODU2LCA0LjYxMDc3LCA4LjE0MTU1LCAxMC4xNTYzIiwgXAotICAgICAgICAgICIwLjU3ODE2NSwgMC42Nzg4MzQsIDEuNTg3MTcsIDMuMDk5OTMsIDQuNjExMzYsIDguMTQzNSwgMTAuMTU1MyIsIFwKLSAgICAgICAgICAiMC41Nzc3NzMsIDAuNjc4Njc0LCAxLjU4NjgsIDMuMTAxNCwgNC42MTE1MywgOC4xMzkzNywgMTAuMTU1NCIsIFwKLSAgICAgICAgICAiMC41NzgyMDIsIDAuNjc4NjcyLCAxLjU4Njk5LCAzLjEwMTYyLCA0LjYxMzg4LCA4LjE0MzI0LCAxMC4xNTY0IiwgXAotICAgICAgICAgICIwLjU3ODc2MywgMC42Nzg5MDIsIDEuNTg2ODksIDMuMDk5NDIsIDQuNjExNjQsIDguMTQzMjcsIDEwLjE1NjQiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuNTQxOTI0LCAwLjYzMTM4NCwgMS40MzQ0MSwgMi43NzIyMywgNC4xMDg2NywgNy4yMjc0OCwgOS4wMDk2MSIsIFwKLSAgICAgICAgICAiMC41NTQwMjEsIDAuNjQzMzgsIDEuNDQ2MTYsIDIuNzgzNzQsIDQuMTIwNjYsIDcuMjM5NDMsIDkuMDIxNTciLCBcCi0gICAgICAgICAgIjAuNTY4NzYsIDAuNjU3OTExLCAxLjQ2MTc5LCAyLjc5OTI3LCA0LjEzNTU4LCA3LjI1NDMsIDkuMDM2NDQiLCBcCi0gICAgICAgICAgIjAuNTgyNTg3LCAwLjY3MTc5NiwgMS40NzUxNiwgMi44MTMxOSwgNC4xNDk1OSwgNy4yNjgxMywgOS4wNTAzNSIsIFwKLSAgICAgICAgICAiMC41OTU2NjcsIDAuNjg1MTQ0LCAxLjQ4ODQ3LCAyLjgyNjExLCA0LjE2MjYxLCA3LjI4MTQ1LCA5LjA2MzU1IiwgXAotICAgICAgICAgICIwLjYxNjExMSwgMC43MDU1NTIsIDEuNTA5MDksIDIuODQ2ODIsIDQuMTgzMTksIDcuMzAxOSwgOS4wODQyIiwgXAotICAgICAgICAgICIwLjYzMzQxOSwgMC43MjI3NCwgMS41MjYxOCwgMi44NjQxNywgNC4yMDA2MiwgNy4zMTk0LCA5LjEwMTY0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjk0NDk0NSwgMS4xMTE1MSwgMi42MTU0NywgNS4xMjg5MywgNy42Mjc5NywgMTMuNDU4NywgMTYuNzkxMiIsIFwKLSAgICAgICAgICAiMC45NDQ0OTcsIDEuMTExMzgsIDIuNjE1ODgsIDUuMTI3NjUsIDcuNjI3OSwgMTMuNDU4NywgMTYuNzkxNSIsIFwKLSAgICAgICAgICAiMC45NDQxNjIsIDEuMTExMDcsIDIuNjE1OTgsIDUuMTI2NTEsIDcuNjI3OTYsIDEzLjQ1ODYsIDE2Ljc5MTUiLCBcCi0gICAgICAgICAgIjAuOTQ0MjEsIDEuMTExMTQsIDIuNjE1NiwgNS4xMjY2MywgNy42MjgwNywgMTMuNDU4NSwgMTYuNzkxNSIsIFwKLSAgICAgICAgICAiMC45NDM4MjIsIDEuMTExNjIsIDIuNjE1MjcsIDUuMTIyODcsIDcuNjI3ODIsIDEzLjQ1ODYsIDE2Ljc5MTMiLCBcCi0gICAgICAgICAgIjAuOTQzODc1LCAxLjExMTYyLCAyLjYxNjc4LCA1LjEyMjgzLCA3LjYyNzgxLCAxMy40NTg0LCAxNi43OTE1IiwgXAotICAgICAgICAgICIwLjk0NDM3NSwgMS4xMTIyNiwgMi42MTgyMiwgNS4xMjIyLCA3LjYyNzgsIDEzLjQ1ODIsIDE2Ljc5MTUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMwNjI4OCwgMC4zNTgyMzEsIDAuODI0MTI5LCAxLjU5OTIxLCAyLjM3NDI5LCA0LjE4MDIyLCA1LjIxMjAzIiwgXAotICAgICAgICAgICIwLjMxNjYzNiwgMC4zNjg1MjQsIDAuODM0NDMyLCAxLjYwOTc4LCAyLjM4MzgxLCA0LjE5MDU4LCA1LjIyMjMiLCBcCi0gICAgICAgICAgIjAuMzI5MzE4LCAwLjM4MTI2OCwgMC44NDcwOTgsIDEuNjIyMDcsIDIuMzk3MTgsIDQuMjAzMTYsIDUuMjM0OTIiLCBcCi0gICAgICAgICAgIjAuMzQyMzIzLCAwLjM5NDI1MywgMC44NjAxOTMsIDEuNjM1MDcsIDIuNDA5NDcsIDQuMjE2MTYsIDUuMjQ3OTQiLCBcCi0gICAgICAgICAgIjAuMzU1NDEzLCAwLjQwNzM0NSwgMC44NzMyMjcsIDEuNjQ4MTksIDIuNDIyOTEsIDQuMjI5MzksIDUuMjYxMDIiLCBcCi0gICAgICAgICAgIjAuMzc2MzI1LCAwLjQyODIzLCAwLjg5NDE0NCwgMS42NjkwNSwgMi40NDM3LCA0LjI1MDQxLCA1LjI4MTk0IiwgXAotICAgICAgICAgICIwLjM5NDU2NiwgMC40NDY0NiwgMC45MTIzNjcsIDEuNjg3NDksIDIuNDYyNjgsIDQuMjY4NTMsIDUuMzAwMjEiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuNTc3OTI0LCAwLjY3ODY4NSwgMS41ODY3NywgMy4xMDE1MywgNC42MTEzMSwgOC4xNDM0NiwgMTAuMTU1MSIsIFwKLSAgICAgICAgICAiMC41Nzc5MDcsIDAuNjc5MjA0LCAxLjU4NzI4LCAzLjA5OTE3LCA0LjYxNDE2LCA4LjEzOTE3LCAxMC4xNTU1IiwgXAotICAgICAgICAgICIwLjU3Nzg3MywgMC42Nzg2NjksIDEuNTg2NzUsIDMuMDk4NTksIDQuNjExMjIsIDguMTQzMTksIDEwLjE1NjQiLCBcCi0gICAgICAgICAgIjAuNTc3ODI5LCAwLjY3ODg5NCwgMS41ODcxOSwgMy4wOTg1NywgNC42MTQwMiwgOC4xNDExMywgMTAuMTU2MyIsIFwKLSAgICAgICAgICAiMC41NzgxNjIsIDAuNjc4ODU1LCAxLjU4NjksIDMuMDk5MywgNC42MTQyMiwgOC4xMzk5MywgMTAuMTU2NCIsIFwKLSAgICAgICAgICAiMC41Nzc4ODgsIDAuNjc4NjU4LCAxLjU4NjkxLCAzLjA5ODU4LCA0LjYxMTYzLCA4LjEzOTY1LCAxMC4xNTY0IiwgXAotICAgICAgICAgICIwLjU3OTgzNSwgMC42NzkzNDQsIDEuNTg3MjYsIDMuMDk5NCwgNC42MTE0OCwgOC4xNDM0MiwgMTAuMTU1MyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC41MjEwNjgsIDAuNjA5NDU4LCAxLjQwNzI4LCAyLjczNjUzLCA0LjA2NDU0LCA3LjE2NDA2LCA4LjkzNTI2IiwgXAotICAgICAgICAgICIwLjUzMzc2MywgMC42MjIxNzcsIDEuNDE5ODUsIDIuNzQ5MDksIDQuMDc3NTEsIDcuMTc2OTQsIDguOTQ4MTUiLCBcCi0gICAgICAgICAgIjAuNTQ4NDI5LCAwLjYzNzA4MiwgMS40MzU4MSwgMi43NjQ0MSwgNC4wOTI2MSwgNy4xOTIwNCwgOC45NjMyMiIsIFwKLSAgICAgICAgICAiMC41NjIyNzYsIDAuNjUxMDU5LCAxLjQ0OTA2LCAyLjc3ODI2LCA0LjEwNjQ2LCA3LjIwNjAzLCA4Ljk3NzI0IiwgXAotICAgICAgICAgICIwLjU3NTM0MiwgMC42NjQxNTYsIDEuNDYyMzYsIDIuNzkxNTYsIDQuMTE5ODQsIDcuMjE5MzIsIDguOTkwNDUiLCBcCi0gICAgICAgICAgIjAuNTk1Njc1LCAwLjY4NDI5OSwgMS40ODI3NiwgMi44MTIyNSwgNC4xNDAzNCwgNy4yMzk4LCA5LjAxMTE0IiwgXAotICAgICAgICAgICIwLjYxMzA5OCwgMC43MDE4MDIsIDEuNDk5ODYsIDIuODI5NjEsIDQuMTU3ODEsIDcuMjU3MzMsIDkuMDI4NjIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuOTE5NzA3LCAxLjA5MDk3LCAyLjYwMTcxLCA1LjA4MzM4LCA3LjU1OTMzLCAxMy4zNTIzLCAxNi42NjQzIiwgXAotICAgICAgICAgICIwLjkxOTg2NSwgMS4wOTA5MywgMi41OTM0OSwgNS4wODMwNSwgNy41NTkyNiwgMTMuMzUyMiwgMTYuNjY0MyIsIFwKLSAgICAgICAgICAiMC45MjY1MjMsIDEuMDkwOTEsIDIuNTgxMzQsIDUuMDc5NjUsIDcuNTU5MjgsIDEzLjM1MjIsIDE2LjY2NDMiLCBcCi0gICAgICAgICAgIjAuOTIwODE2LCAxLjA4ODE0LCAyLjYwMTc2LCA1LjA4MzE5LCA3LjU1OTA2LCAxMy4zNTIyLCAxNi42NjQzIiwgXAotICAgICAgICAgICIwLjkyNTk1MSwgMS4wOTQzNywgMi42MDE1NSwgNS4wNzg2OCwgNy41NTkxOCwgMTMuMzUyMiwgMTYuNjYzOCIsIFwKLSAgICAgICAgICAiMC45MjU4NzgsIDEuMDkxOTUsIDIuNTg0NSwgNS4wODAwMywgNy41NTkwNywgMTMuMzUyMSwgMTYuNjY0MyIsIFwKLSAgICAgICAgICAiMC45MTk3NDMsIDEuMDkzMzEsIDIuNTgyMjksIDUuMDc5NTEsIDcuNTU5MDcsIDEzLjM1MjIsIDE2LjY2NDMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjAiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE0NjIxOCwgMC4xNzE1MTYsIDAuMzk4OTI0LCAwLjc3NzgyLCAxLjE1NjcxLCAyLjA0MDYyLCAyLjU0NTYiLCBcCi0gICAgICAgICAgIjAuMTU3OTQ5LCAwLjE4MzIzOCwgMC40MTA3MywgMC43ODk1MDgsIDEuMTY4NCwgMi4wNTIwNywgMi41NTcxOSIsIFwKLSAgICAgICAgICAiMC4xNzIxOTcsIDAuMTk4MDMsIDAuNDI1NDI4LCAwLjgwNDA5LCAxLjE4Mjk5LCAyLjA2NzI4LCAyLjU3MTc5IiwgXAotICAgICAgICAgICIwLjE4Njc5MSwgMC4yMTIwMDYsIDAuNDM5NDQzLCAwLjgxNDY2MiwgMS4xOTMwNiwgMi4wNzY5OSwgMi41ODIwNSIsIFwKLSAgICAgICAgICAiMC4yMDE5MjUsIDAuMjI2NjkzLCAwLjQ1MzkzNCwgMC44MzE1MjMsIDEuMjA2NTUsIDIuMDkwNDMsIDIuNTk1MzciLCBcCi0gICAgICAgICAgIjAuMjI1NjYsIDAuMjUwODEyLCAwLjQ3NzA3LCAwLjg1NTczNywgMS4yMjc5MywgMi4xMTE3NCwgMi42MTY3MiIsIFwKLSAgICAgICAgICAiMC4yNDYxODEsIDAuMjcxNDE2LCAwLjQ5NzUyNCwgMC44NzU5OSwgMS4yNTQ4MywgMi4xMzEzLCAyLjYzNTMzIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI5NTM2LCAwLjM0NjQxNSwgMC44MDYxNTgsIDEuNTcyNzksIDIuMzQwMDksIDQuMTI5NDcsIDUuMTUxODQiLCBcCi0gICAgICAgICAgIjAuMjk1MzM1LCAwLjM0NjM3NywgMC44MDYxNjQsIDEuNTcyNzUsIDIuMzM5NDUsIDQuMTI5MTYsIDUuMTUwODUiLCBcCi0gICAgICAgICAgIjAuMjk1MzQ2LCAwLjM0NjQxNywgMC44MDYyMzcsIDEuNTcyNzcsIDIuMzM5NjUsIDQuMTI5NDYsIDUuMTUxNjUiLCBcCi0gICAgICAgICAgIjAuMjk1NTAxLCAwLjM0NjM5OSwgMC44MDYyMDIsIDEuNTczMDQsIDIuMzM5ODksIDQuMTI5MywgNS4xNTE1NiIsIFwKLSAgICAgICAgICAiMC4yOTcwMDMsIDAuMzQ3MTA2LCAwLjgwNjM0NywgMS41NzI3NSwgMi4zMzk3NywgNC4xMjg4MiwgNS4xNTEyNyIsIFwKLSAgICAgICAgICAiMC4zMDE5OTcsIDAuMzUwNzk4LCAwLjgwNjIyNSwgMS41NzI5OCwgMi4zMzk0NSwgNC4xMjg1MywgNS4xNTEwNiIsIFwKLSAgICAgICAgICAiMC4zMDg0NjIsIDAuMzU2MTIsIDAuODA2MTQ1LCAxLjU3MjcxLCAyLjMzOTk3LCA0LjEyODcxLCA1LjE1MTM0Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjUyOTIxLCAwLjYxODcyLCAxLjQyMiwgMi43NTk4NiwgNC4wOTU4MywgNy4yMTQ2NywgOC45OTY5IiwgXAotICAgICAgICAgICIwLjU0MDE3LCAwLjYyOTY2NCwgMS40MzI1NiwgMi43NzAyMSwgNC4xMDcxNiwgNy4yMjU5NCwgOS4wMDgwOSIsIFwKLSAgICAgICAgICAiMC41NTM1NjEsIDAuNjQyOTU4LCAxLjQ0NjA3LCAyLjc4NDE1LCA0LjEyMDYzLCA3LjIzOTMzLCA5LjAyMTQ1IiwgXAotICAgICAgICAgICIwLjU2NjM5NiwgMC42NTU2MzgsIDEuNDU4ODUsIDIuNzk3MDMsIDQuMTMzNjEsIDcuMjUyNDMsIDkuMDM0NTkiLCBcCi0gICAgICAgICAgIjAuNTc5NDA1LCAwLjY2ODg2OSwgMS40NzI0NCwgMi44MTA0OCwgNC4xNDY5NywgNy4yNjU3NywgOS4wNDc5MSIsIFwKLSAgICAgICAgICAiMC42MDA0MTUsIDAuNjg5ODI3LCAxLjQ5MzksIDIuODMxNzMsIDQuMTY4MTYsIDcuMjg2NywgOS4wNjg5MyIsIFwKLSAgICAgICAgICAiMC42MTg1MzMsIDAuNzA3OTU5LCAxLjUxMTUyLCAyLjg0OTgsIDQuMTg2NTksIDcuMzA1MjIsIDkuMDg3MzciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuOTQzODMzLCAxLjExMTY0LCAyLjYxNTI5LCA1LjEyNTU3LCA3LjYyNzc2LCAxMy40NTg2LCAxNi43OTE1IiwgXAotICAgICAgICAgICIwLjk0NDkxMywgMS4xMTE0OCwgMi42MTU4LCA1LjEyNzE5LCA3LjYyNzkzLCAxMy40NTg3LCAxNi43OTE1IiwgXAotICAgICAgICAgICIwLjk0NDM2LCAxLjExMTM4LCAyLjYxNTcxLCA1LjEyNjM2LCA3LjYyNzk4LCAxMy40NTg2LCAxNi43OTE1IiwgXAotICAgICAgICAgICIwLjk0NDM2MSwgMS4xMTIzNSwgMi42MTU2MSwgNS4xMjIxOSwgNy42Mjc4NSwgMTMuNDU4NiwgMTYuNzkxNSIsIFwKLSAgICAgICAgICAiMC45NDQ4MTcsIDEuMTEwOTIsIDIuNjE1NjcsIDUuMTIzODcsIDcuNjI3OTEsIDEzLjQ1ODYsIDE2Ljc5MTUiLCBcCi0gICAgICAgICAgIjAuOTQ0MTY1LCAxLjExMTQxLCAyLjYxNTkzLCA1LjEyNDQsIDcuNjI4MTQsIDEzLjQ1ODIsIDE2Ljc5MTUiLCBcCi0gICAgICAgICAgIjAuOTQzODMxLCAxLjExMTU1LCAyLjYxNzgxLCA1LjEyMjM3LCA3LjYyNjYsIDEzLjQ1ODMsIDE2Ljc5MTUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQzAiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE0MzQ2MiwgMC4xNjg3NDgsIDAuMzk2MDQ1LCAwLjc3NTA4LCAxLjE1MzQ4LCAyLjAzNzUxLCAyLjU0MjYiLCBcCi0gICAgICAgICAgIjAuMTU1MDk3LCAwLjE4MDM3OSwgMC40MDc2NjEsIDAuNzg2ODE4LCAxLjE2NTIzLCAyLjA0OTEyLCAyLjU1NDEiLCBcCi0gICAgICAgICAgIjAuMTY5NTE0LCAwLjE5NDc2NiwgMC40MjE1NDYsIDAuNzk4NjMsIDEuMTc2OTQsIDIuMDYwOCwgMi41NjU5NCIsIFwKLSAgICAgICAgICAiMC4xODQxNTMsIDAuMjA5MjkzLCAwLjQzNjQ4MSwgMC44MTE2NTksIDEuMTkwNDYsIDIuMDc0NTYsIDIuNTc5MjciLCBcCi0gICAgICAgICAgIjAuMTk4ODYxLCAwLjIyNDA4MSwgMC40NTEwMzYsIDAuODI1NTEzLCAxLjIwNDQ4LCAyLjA4ODIzLCAyLjU5Mjk4IiwgXAotICAgICAgICAgICIwLjIyMjg2NiwgMC4yNDgwNTcsIDAuNDc0MzMxLCAwLjg1MjgzMSwgMS4yMjY1NSwgMi4xMTA2OSwgMi42MTU4MiIsIFwKLSAgICAgICAgICAiMC4yNDM1MTYsIDAuMjY4NzM3LCAwLjQ5NDc5MywgMC44NzMxNDgsIDEuMjQ2MTUsIDIuMTMxMDQsIDIuNjM0ODciKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjkyMzksIDAuMzQzNDEzLCAwLjgwMzA0MiwgMS41NjkzOCwgMi4zMzY1MSwgNC4xMjU1NiwgNS4xNTAyOSIsIFwKLSAgICAgICAgICAiMC4yOTIzODksIDAuMzQzNDEzLCAwLjgwMjk2OCwgMS41Njk3NywgMi4zMzY5MSwgNC4xMjY4MywgNS4xNTAxIiwgXAotICAgICAgICAgICIwLjI5MjM2OSwgMC4zNDM0MjcsIDAuODAyOTYxLCAxLjU2OTc4LCAyLjMzNjAyLCA0LjEzMDg2LCA1LjE0OTc4IiwgXAotICAgICAgICAgICIwLjI5MjU1NCwgMC4zNDMzNzUsIDAuODAyOTczLCAxLjU2OTQzLCAyLjMzNjEyLCA0LjEyNjU5LCA1LjE1MDMxIiwgXAotICAgICAgICAgICIwLjI5NDIxNywgMC4zNDQyMTQsIDAuODAyOTk0LCAxLjU2OTc2LCAyLjMzNjA1LCA0LjEyNzM3LCA1LjE0ODMzIiwgXAotICAgICAgICAgICIwLjI5OTM1OSwgMC4zNDgwMDgsIDAuODAyOTk3LCAxLjU2OTY5LCAyLjMzNjk0LCA0LjEyNTY4LCA1LjE1MDEzIiwgXAotICAgICAgICAgICIwLjMwNTg0NywgMC4zNTM0MjMsIDAuODAyOTIxLCAxLjU2OTQ4LCAyLjMzNjEsIDQuMTI2NDUsIDUuMTQ5NDciKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuNTE4NTU5LCAwLjYwNzgwMSwgMS40MTA2NCwgMi43NDg2NywgNC4wODUzNywgNy4yMDQwOSwgOC45ODYyMSIsIFwKLSAgICAgICAgICAiMC41Mjg0MDcsIDAuNjE3ODAyLCAxLjQyMTA3LCAyLjc1ODgzLCA0LjA5NTIyLCA3LjIxNDAzLCA4Ljk5NjMxIiwgXAotICAgICAgICAgICIwLjU0MDg5NiwgMC42MzAxNTQsIDEuNDM0MjksIDIuNzcxOTksIDQuMTA4MjksIDcuMjI2NzcsIDkuMDA5MDEiLCBcCi0gICAgICAgICAgIjAuNTUzMzgsIDAuNjQyNzMsIDEuNDQ2NDIsIDIuNzg0MjMsIDQuMTIwNSwgNy4yMzkzNSwgOS4wMjE2IiwgXAotICAgICAgICAgICIwLjU2NTU3NywgMC42NTUwNywgMS40NTkyNCwgMi43OTY5NCwgNC4xMzMzNywgNy4yNTIwMiwgOS4wMzQxNyIsIFwKLSAgICAgICAgICAiMC41ODU1ODQsIDAuNjc0OTMsIDEuNDc5MTYsIDIuODE2MjIsIDQuMTUzMzIsIDcuMjcyMTIsIDkuMDU0MjgiLCBcCi0gICAgICAgICAgIjAuNjAyOTcyLCAwLjY5MjU3LCAxLjQ5NiwgMi44MzQyNiwgNC4xNzEwOCwgNy4yODk1NSwgOS4wNzE4NiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC45NDQwOTgsIDEuMTEwOTUsIDIuNjE3NjcsIDUuMTIyNjksIDcuNjI4LCAxMy40NTg3LCAxNi43OTE0IiwgXAotICAgICAgICAgICIwLjk0MzgyOSwgMS4xMTE2MSwgMi42MTU3NCwgNS4xMjI5MSwgNy42Mjg0MSwgMTMuNDU4NSwgMTYuNzkxNSIsIFwKLSAgICAgICAgICAiMC45NDM4MDYsIDEuMTExMTcsIDIuNjE2MDgsIDUuMTI0MTIsIDcuNjI4MTMsIDEzLjQ1ODUsIDE2Ljc5MTUiLCBcCi0gICAgICAgICAgIjAuOTQ0MjI1LCAxLjExMTYzLCAyLjYxNjk4LCA1LjEyNTg1LCA3LjYyNzc2LCAxMy40NTgyLCAxNi43OTE1IiwgXAotICAgICAgICAgICIwLjk0NDg0LCAxLjExMTIyLCAyLjYxNTk4LCA1LjEyNjY3LCA3LjYyODA4LCAxMy40NTgsIDE2Ljc5MTUiLCBcCi0gICAgICAgICAgIjAuOTQ0Mzg0LCAxLjExMDkyLCAyLjYxNTk0LCA1LjEyNjg5LCA3LjYyNzkzLCAxMy40NTg2LCAxNi43OTE1IiwgXAotICAgICAgICAgICIwLjk0NDAxNiwgMS4xMTE0LCAyLjYxNTk5LCA1LjEyMjIxLCA3LjYyODUsIDEzLjQ1ODUsIDE2Ljc5MTUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxNjQ4LCAwLjAwMTY0OCwgMC4wMDE2NDcsIDAuMDAxNjQ1LCAwLjAwMTY0NCwgMC4wMDE2NDEsIDAuMDAxNjM3IiwgXAotICAgICAgICAgICIwLjAwMTY0MywgMC4wMDE2NDIsIDAuMDAxNjQyLCAwLjAwMTY0LCAwLjAwMTY0LCAwLjAwMTYzMiwgMC4wMDE2MzIiLCBcCi0gICAgICAgICAgIjAuMDAxNjQsIDAuMDAxNjQsIDAuMDAxNjQsIDAuMDAxNjM4LCAwLjAwMTYzNywgMC4wMDE2MzIsIDAuMDAxNjMiLCBcCi0gICAgICAgICAgIjAuMDAxNjQsIDAuMDAxNjQsIDAuMDAxNjM5LCAwLjAwMTYzNywgMC4wMDE2MzcsIDAuMDAxNjMyLCAwLjAwMTYyOSIsIFwKLSAgICAgICAgICAiMC4wMDE2MzksIDAuMDAxNjM5LCAwLjAwMTYzOSwgMC4wMDE2MzcsIDAuMDAxNjM2LCAwLjAwMTYzMSwgMC4wMDE2MjkiLCBcCi0gICAgICAgICAgIjAuMDAxNjM2LCAwLjAwMTYzOCwgMC4wMDE2MzgsIDAuMDAxNjM3LCAwLjAwMTYzNSwgMC4wMDE2MzIsIDAuMDAxNjI5IiwgXAotICAgICAgICAgICIwLjAwMTYzNywgMC4wMDE2MzcsIDAuMDAxNjM3LCAwLjAwMTYzNiwgMC4wMDE2MzUsIDAuMDAxNjMxLCAwLjAwMTYyOSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDYzMiwgMC4wMDA2MzIsIDAuMDAwNjMzLCAwLjAwMDYzMSwgMC4wMDA2MywgMC4wMDA2MjgsIDAuMDAwNjI2IiwgXAotICAgICAgICAgICIwLjAwMDYyNSwgMC4wMDA2MjUsIDAuMDAwNjI1LCAwLjAwMDYyNCwgMC4wMDA2MjQsIDAuMDAwNjIxLCAwLjAwMDYyIiwgXAotICAgICAgICAgICIwLjAwMDYyMiwgMC4wMDA2MjIsIDAuMDAwNjIzLCAwLjAwMDYyMywgMC4wMDA2MjIsIDAuMDAwNjIsIDAuMDAwNjE4IiwgXAotICAgICAgICAgICIwLjAwMDYyLCAwLjAwMDYyMSwgMC4wMDA2MjIsIDAuMDAwNjIyLCAwLjAwMDYyMSwgMC4wMDA2MTksIDAuMDAwNjE3IiwgXAotICAgICAgICAgICIwLjAwMDYxOSwgMC4wMDA2MiwgMC4wMDA2MjEsIDAuMDAwNjIyLCAwLjAwMDYyMSwgMC4wMDA2MTksIDAuMDAwNjE3IiwgXAotICAgICAgICAgICIwLjAwMDYxNywgMC4wMDA2MTgsIDAuMDAwNjIxLCAwLjAwMDYyMSwgMC4wMDA2MjEsIDAuMDAwNjE5LCAwLjAwMDYxNyIsIFwKLSAgICAgICAgICAiMC4wMDA2MTYsIDAuMDAwNjE3LCAwLjAwMDYyLCAwLjAwMDYyMSwgMC4wMDA2MiwgMC4wMDA2MTgsIDAuMDAwNjE3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTUwOCwgMC4wMDE1MDgsIDAuMDAxNTA3LCAwLjAwMTUwNywgMC4wMDE1MDQsIDAuMDAxNSwgMC4wMDE0OTkiLCBcCi0gICAgICAgICAgIjAuMDAxNTAzLCAwLjAwMTUwMywgMC4wMDE1MDIsIDAuMDAxNTAxLCAwLjAwMTQ5OSwgMC4wMDE0OTQsIDAuMDAxNDkyIiwgXAotICAgICAgICAgICIwLjAwMTUsIDAuMDAxNSwgMC4wMDE1LCAwLjAwMTQ5OCwgMC4wMDE0OTcsIDAuMDAxNDkzLCAwLjAwMTQ5IiwgXAotICAgICAgICAgICIwLjAwMTQ5OCwgMC4wMDE0OTgsIDAuMDAxNDk5LCAwLjAwMTQ5NywgMC4wMDE0OTYsIDAuMDAxNDkyLCAwLjAwMTQ5IiwgXAotICAgICAgICAgICIwLjAwMTQ5NywgMC4wMDE0OTcsIDAuMDAxNDk4LCAwLjAwMTQ5NywgMC4wMDE0OTUsIDAuMDAxNDkyLCAwLjAwMTQ4OSIsIFwKLSAgICAgICAgICAiMC4wMDE0OTYsIDAuMDAxNDk2LCAwLjAwMTQ5NywgMC4wMDE0OTYsIDAuMDAxNDk1LCAwLjAwMTQ5MSwgMC4wMDE0ODgiLCBcCi0gICAgICAgICAgIjAuMDAxNDk1LCAwLjAwMTQ5NSwgMC4wMDE0OTYsIDAuMDAxNDk2LCAwLjAwMTQ5NSwgMC4wMDE0OSwgMC4wMDE0ODgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDA0MiwgMC4wMDA0MiwgMC4wMDA0MjEsIDAuMDAwNDIxLCAwLjAwMDQyMSwgMC4wMDA0MjEsIDAuMDAwNDIiLCBcCi0gICAgICAgICAgIjAuMDAwNDI0LCAwLjAwMDQyNCwgMC4wMDA0MjYsIDAuMDAwNDI3LCAwLjAwMDQyNywgMC4wMDA0MjcsIDAuMDAwNDI3IiwgXAotICAgICAgICAgICIwLjAwMDQyMiwgMC4wMDA0MjMsIDAuMDAwNDI2LCAwLjAwMDQyNywgMC4wMDA0MjgsIDAuMDAwNDI4LCAwLjAwMDQyOCIsIFwKLSAgICAgICAgICAiMC4wMDA0MiwgMC4wMDA0MjEsIDAuMDAwNDI2LCAwLjAwMDQyNywgMC4wMDA0MjgsIDAuMDAwNDI4LCAwLjAwMDQyOCIsIFwKLSAgICAgICAgICAiMC4wMDA0MTcsIDAuMDAwNDE5LCAwLjAwMDQyNSwgMC4wMDA0MjcsIDAuMDAwNDI4LCAwLjAwMDQyOCwgMC4wMDA0MjgiLCBcCi0gICAgICAgICAgIjAuMDAwNDEzLCAwLjAwMDQxNSwgMC4wMDA0MjMsIDAuMDAwNDI2LCAwLjAwMDQyNywgMC4wMDA0MjgsIDAuMDAwNDI4IiwgXAotICAgICAgICAgICIwLjAwMDQxLCAwLjAwMDQxMiwgMC4wMDA0MjEsIDAuMDAwNDI1LCAwLjAwMDQyNiwgMC4wMDA0MjgsIDAuMDAwNDI4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTIxNiwgMC4wMDEyMTYsIDAuMDAxMjE2LCAwLjAwMTIxNiwgMC4wMDEyMTYsIDAuMDAxMjE1LCAwLjAwMTIxNSIsIFwKLSAgICAgICAgICAiMC4wMDEyMTYsIDAuMDAxMjE3LCAwLjAwMTIxNywgMC4wMDEyMTgsIDAuMDAxMjE3LCAwLjAwMTIxNiwgMC4wMDEyMTUiLCBcCi0gICAgICAgICAgIjAuMDAxMjE2LCAwLjAwMTIxNiwgMC4wMDEyMTcsIDAuMDAxMjE4LCAwLjAwMTIxNywgMC4wMDEyMTcsIDAuMDAxMjE2IiwgXAotICAgICAgICAgICIwLjAwMTIxNCwgMC4wMDEyMTUsIDAuMDAxMjE3LCAwLjAwMTIxNywgMC4wMDEyMTcsIDAuMDAxMjE3LCAwLjAwMTIxNyIsIFwKLSAgICAgICAgICAiMC4wMDEyMTMsIDAuMDAxMjE0LCAwLjAwMTIxNiwgMC4wMDEyMTcsIDAuMDAxMjE3LCAwLjAwMTIxNiwgMC4wMDEyMTYiLCBcCi0gICAgICAgICAgIjAuMDAxMjEyLCAwLjAwMTIxMywgMC4wMDEyMTYsIDAuMDAxMjE3LCAwLjAwMTIxNywgMC4wMDEyMTcsIDAuMDAxMjE2IiwgXAotICAgICAgICAgICIwLjAwMTIxMSwgMC4wMDEyMTIsIDAuMDAxMjE0LCAwLjAwMTIxNiwgMC4wMDEyMTcsIDAuMDAxMjE3LCAwLjAwMTIxNiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDY0LCAwLjAwMDY0LCAwLjAwMDYzOSwgMC4wMDA2MzksIDAuMDAwNjM4LCAwLjAwMDYzNiwgMC4wMDA2MzQiLCBcCi0gICAgICAgICAgIjAuMDAwNjM3LCAwLjAwMDYzNywgMC4wMDA2MzgsIDAuMDAwNjM5LCAwLjAwMDYzOCwgMC4wMDA2MzYsIDAuMDAwNjM0IiwgXAotICAgICAgICAgICIwLjAwMDYzNCwgMC4wMDA2MzUsIDAuMDAwNjM4LCAwLjAwMDYzOCwgMC4wMDA2MzcsIDAuMDAwNjM2LCAwLjAwMDYzNCIsIFwKLSAgICAgICAgICAiMC4wMDA2MzIsIDAuMDAwNjMzLCAwLjAwMDYzNiwgMC4wMDA2MzcsIDAuMDAwNjM3LCAwLjAwMDYzNSwgMC4wMDA2MzQiLCBcCi0gICAgICAgICAgIjAuMDAwNjI5LCAwLjAwMDYzMSwgMC4wMDA2MzUsIDAuMDAwNjM3LCAwLjAwMDYzNywgMC4wMDA2MzUsIDAuMDAwNjM0IiwgXAotICAgICAgICAgICIwLjAwMDYyNiwgMC4wMDA2MjcsIDAuMDAwNjM0LCAwLjAwMDYzNiwgMC4wMDA2MzYsIDAuMDAwNjM1LCAwLjAwMDYzMyIsIFwKLSAgICAgICAgICAiMC4wMDA2MjMsIDAuMDAwNjI1LCAwLjAwMDYzMiwgMC4wMDA2MzUsIDAuMDAwNjM2LCAwLjAwMDYzNCwgMC4wMDA2MzMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDMCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxMDIyLCAwLjAwMTAyMiwgMC4wMDEwMjMsIDAuMDAxMDIzLCAwLjAwMTAyMywgMC4wMDEwMjMsIDAuMDAxMDIzIiwgXAotICAgICAgICAgICIwLjAwMTAyNiwgMC4wMDEwMjYsIDAuMDAxMDI3LCAwLjAwMTAyOCwgMC4wMDEwMjcsIDAuMDAxMDI4LCAwLjAwMTAyNyIsIFwKLSAgICAgICAgICAiMC4wMDEwMjUsIDAuMDAxMDI2LCAwLjAwMTAyOCwgMC4wMDEwMjksIDAuMDAxMDI5LCAwLjAwMTAyOSwgMC4wMDEwMjkiLCBcCi0gICAgICAgICAgIjAuMDAxMDI0LCAwLjAwMTAyNiwgMC4wMDEwMjgsIDAuMDAxMDI5LCAwLjAwMTAyOSwgMC4wMDEwMjksIDAuMDAxMDI5IiwgXAotICAgICAgICAgICIwLjAwMTAyMywgMC4wMDEwMjQsIDAuMDAxMDI3LCAwLjAwMTAyOCwgMC4wMDEwMjksIDAuMDAxMDI5LCAwLjAwMTAzIiwgXAotICAgICAgICAgICIwLjAwMTAyMSwgMC4wMDEwMjIsIDAuMDAxMDI2LCAwLjAwMTAyOCwgMC4wMDEwMjksIDAuMDAxMDI5LCAwLjAwMTAyOSIsIFwKLSAgICAgICAgICAiMC4wMDEwMTksIDAuMDAxMDIsIDAuMDAxMDI2LCAwLjAwMTAyOCwgMC4wMDEwMjksIDAuMDAxMDI5LCAwLjAwMTAyOSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDY0LCAwLjAwMDY0LCAwLjAwMDY0LCAwLjAwMDYzOSwgMC4wMDA2MzgsIDAuMDAwNjM2LCAwLjAwMDYzNCIsIFwKLSAgICAgICAgICAiMC4wMDA2MzcsIDAuMDAwNjM3LCAwLjAwMDYzOSwgMC4wMDA2MzgsIDAuMDAwNjM4LCAwLjAwMDYzNiwgMC4wMDA2MzQiLCBcCi0gICAgICAgICAgIjAuMDAwNjMzLCAwLjAwMDYzNCwgMC4wMDA2MzcsIDAuMDAwNjM5LCAwLjAwMDYzOCwgMC4wMDA2MzYsIDAuMDAwNjM0IiwgXAotICAgICAgICAgICIwLjAwMDYzLCAwLjAwMDYzMSwgMC4wMDA2MzYsIDAuMDAwNjM3LCAwLjAwMDYzNywgMC4wMDA2MzUsIDAuMDAwNjM0IiwgXAotICAgICAgICAgICIwLjAwMDYyNywgMC4wMDA2MjksIDAuMDAwNjM1LCAwLjAwMDYzNiwgMC4wMDA2MzYsIDAuMDAwNjM1LCAwLjAwMDYzNCIsIFwKLSAgICAgICAgICAiMC4wMDA2MjMsIDAuMDAwNjI1LCAwLjAwMDYzMiwgMC4wMDA2MzUsIDAuMDAwNjM2LCAwLjAwMDYzNCwgMC4wMDA2MzMiLCBcCi0gICAgICAgICAgIjAuMDAwNjIxLCAwLjAwMDYyMywgMC4wMDA2MzEsIDAuMDAwNjM0LCAwLjAwMDYzNSwgMC4wMDA2MzQsIDAuMDAwNjMzIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLX0KZGlmZiAtLWdpdCBhL2Zsb3cvcG5yL0VYQU1QTEVTL0lOTk9WVVMvREVTSUdOL0dQREsvTElCUy9HUERLMDQ1L3RpbWluZy90eXBpY2FsLmxpYiBiL2Zsb3cvcG5yL0VYQU1QTEVTL0lOTk9WVVMvREVTSUdOL0dQREsvTElCUy9HUERLMDQ1L3RpbWluZy90eXBpY2FsLmxpYgpkZWxldGVkIGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggYTlmYWU5Yy4uMDAwMDAwMAotLS0gYS9mbG93L3Buci9FWEFNUExFUy9JTk5PVlVTL0RFU0lHTi9HUERLL0xJQlMvR1BESzA0NS90aW1pbmcvdHlwaWNhbC5saWIKKysrIC9kZXYvbnVsbApAQCAtMSwxODc1NjQgKzAsMCBAQAotLyoKLSBkZWxheSBtb2RlbCA6ICAgICAgIG1heAotIGNoZWNrIG1vZGVsIDogICAgICAgbWF4Ci0gcG93ZXIgbW9kZWwgOiAgICAgICBtYXgKLSBjYXBhY2l0YW5jZSBtb2RlbCA6IG1heAotIG90aGVyIG1vZGVsIDogICAgICAgbWF4Ci0qLwotbGlicmFyeSh0eXBpY2FsKSB7Ci0KLSAgZGVsYXlfbW9kZWwgOiB0YWJsZV9sb29rdXA7Ci0gIGluX3BsYWNlX3N3YXBfbW9kZSA6IG1hdGNoX2Zvb3RwcmludDsKLQotICAvKiB1bml0IGF0dHJpYnV0ZXMgKi8KLSAgdGltZV91bml0IDogIjFucyI7Ci0gIHZvbHRhZ2VfdW5pdCA6ICIxViI7Ci0gIGN1cnJlbnRfdW5pdCA6ICIxbUEiOwotICBwdWxsaW5nX3Jlc2lzdGFuY2VfdW5pdCA6ICIxa29obSI7Ci0gIGxlYWthZ2VfcG93ZXJfdW5pdCA6ICIxblciOwotICBjYXBhY2l0aXZlX2xvYWRfdW5pdCAoMSxwZik7Ci0KLSAgcG93ZXJfc3VwcGx5ICgpIHsKLSAgICAgIGRlZmF1bHRfcG93ZXJfcmFpbCA6IFJBSUxfVkREOwotICAgICAgcG93ZXJfcmFpbCggUkFJTF9WREQsIDEuMiApOwotICAgICAgcG93ZXJfcmFpbCggUkFJTF9WU1MsIDAgKTsKLSAgfQotCi0gIHNsZXdfdXBwZXJfdGhyZXNob2xkX3BjdF9yaXNlIDogOTA7Ci0gIHNsZXdfbG93ZXJfdGhyZXNob2xkX3BjdF9yaXNlIDogMTA7Ci0gIHNsZXdfdXBwZXJfdGhyZXNob2xkX3BjdF9mYWxsIDogOTA7Ci0gIHNsZXdfbG93ZXJfdGhyZXNob2xkX3BjdF9mYWxsIDogMTA7Ci0gIGlucHV0X3RocmVzaG9sZF9wY3RfcmlzZSA6IDUwOwotICBpbnB1dF90aHJlc2hvbGRfcGN0X2ZhbGwgOiA1MDsKLSAgb3V0cHV0X3RocmVzaG9sZF9wY3RfcmlzZSA6IDUwOwotICBvdXRwdXRfdGhyZXNob2xkX3BjdF9mYWxsIDogNTA7Ci0gIG5vbV9wcm9jZXNzIDogMTsKLSAgbm9tX3ZvbHRhZ2UgOiAxLjI7Ci0gIG5vbV90ZW1wZXJhdHVyZSA6IDI1OwotICBvcGVyYXRpbmdfY29uZGl0aW9ucyAoIHR5cGljYWwgKSB7Ci0gICAgIHByb2Nlc3MgOiAxOwotICAgICB2b2x0YWdlIDogMS4yOwotICAgICB0ZW1wZXJhdHVyZSA6IDI1OwotICAgICBwb3dlcl9yYWlsKCBSQUlMX1ZERCwgMS4yICk7Ci0gICAgIHBvd2VyX3JhaWwoIFJBSUxfVlNTLCAwICk7Ci0gIH0KLSAgZGVmYXVsdF9vcGVyYXRpbmdfY29uZGl0aW9ucyA6IHR5cGljYWw7Ci0KLSAgbHVfdGFibGVfdGVtcGxhdGUoZGVsYXlfdGVtcGxhdGVfN3gxKSB7Ci0gICAgdmFyaWFibGVfMSA6IGlucHV0X25ldF90cmFuc2l0aW9uOwotICAgIGluZGV4XzEgKCIxMDAwLjAsIDEwMDEuMCwgMTAwMi4wLCAxMDAzLjAsIDEwMDQuMCwgMTAwNS4wLCAxMDA2LjAiKTsKLSAgfQotICBsdV90YWJsZV90ZW1wbGF0ZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICB2YXJpYWJsZV8xIDogaW5wdXRfbmV0X3RyYW5zaXRpb247Ci0gICAgdmFyaWFibGVfMiA6IHRvdGFsX291dHB1dF9uZXRfY2FwYWNpdGFuY2U7Ci0gICAgaW5kZXhfMSAoIjEwMDAuMCwgMTAwMS4wLCAxMDAyLjAsIDEwMDMuMCwgMTAwNC4wLCAxMDA1LjAsIDEwMDYuMCIpOwotICAgIGluZGV4XzIgKCIxMDAwLjAsIDEwMDEuMCwgMTAwMi4wLCAxMDAzLjAsIDEwMDQuMCwgMTAwNS4wLCAxMDA2LjAiKTsKLSAgfQotICBwb3dlcl9sdXRfdGVtcGxhdGUoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgIHZhcmlhYmxlXzEgOiBpbnB1dF90cmFuc2l0aW9uX3RpbWU7Ci0gICAgdmFyaWFibGVfMiA6IHRvdGFsX291dHB1dF9uZXRfY2FwYWNpdGFuY2U7Ci0gICAgaW5kZXhfMSAoIjEwMDAuMCwgMTAwMS4wLCAxMDAyLjAsIDEwMDMuMCwgMTAwNC4wLCAxMDA1LjAsIDEwMDYuMCIpOwotICAgIGluZGV4XzIgKCIxMDAwLjAsIDEwMDEuMCwgMTAwMi4wLCAxMDAzLjAsIDEwMDQuMCwgMTAwNS4wLCAxMDA2LjAiKTsKLSAgfQotICBsdV90YWJsZV90ZW1wbGF0ZShob2xkX3RlbXBsYXRlXzd4NykgewotICAgIHZhcmlhYmxlXzEgOiBjb25zdHJhaW5lZF9waW5fdHJhbnNpdGlvbjsKLSAgICB2YXJpYWJsZV8yIDogcmVsYXRlZF9waW5fdHJhbnNpdGlvbjsKLSAgICBpbmRleF8xICgiMTAwMC4wLCAxMDAxLjAsIDEwMDIuMCwgMTAwMy4wLCAxMDA0LjAsIDEwMDUuMCwgMTAwNi4wIik7Ci0gICAgaW5kZXhfMiAoIjEwMDAuMCwgMTAwMS4wLCAxMDAyLjAsIDEwMDMuMCwgMTAwNC4wLCAxMDA1LjAsIDEwMDYuMCIpOwotICB9Ci0gIHBvd2VyX2x1dF90ZW1wbGF0ZShwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICB2YXJpYWJsZV8xIDogaW5wdXRfdHJhbnNpdGlvbl90aW1lOwotICAgIGluZGV4XzEgKCIxMDAwLjAsIDEwMDEuMCwgMTAwMi4wLCAxMDAzLjAsIDEwMDQuMCwgMTAwNS4wLCAxMDA2LjAiKTsKLSAgfQotICBsdV90YWJsZV90ZW1wbGF0ZShyZWNvdmVyeV90ZW1wbGF0ZV83eDcpIHsKLSAgICB2YXJpYWJsZV8xIDogY29uc3RyYWluZWRfcGluX3RyYW5zaXRpb247Ci0gICAgdmFyaWFibGVfMiA6IHJlbGF0ZWRfcGluX3RyYW5zaXRpb247Ci0gICAgaW5kZXhfMSAoIjEwMDAuMCwgMTAwMS4wLCAxMDAyLjAsIDEwMDMuMCwgMTAwNC4wLCAxMDA1LjAsIDEwMDYuMCIpOwotICAgIGluZGV4XzIgKCIxMDAwLjAsIDEwMDEuMCwgMTAwMi4wLCAxMDAzLjAsIDEwMDQuMCwgMTAwNS4wLCAxMDA2LjAiKTsKLSAgfQotICBsdV90YWJsZV90ZW1wbGF0ZShyZW1vdmFsX3RlbXBsYXRlXzd4NykgewotICAgIHZhcmlhYmxlXzEgOiBjb25zdHJhaW5lZF9waW5fdHJhbnNpdGlvbjsKLSAgICB2YXJpYWJsZV8yIDogcmVsYXRlZF9waW5fdHJhbnNpdGlvbjsKLSAgICBpbmRleF8xICgiMTAwMC4wLCAxMDAxLjAsIDEwMDIuMCwgMTAwMy4wLCAxMDA0LjAsIDEwMDUuMCwgMTAwNi4wIik7Ci0gICAgaW5kZXhfMiAoIjEwMDAuMCwgMTAwMS4wLCAxMDAyLjAsIDEwMDMuMCwgMTAwNC4wLCAxMDA1LjAsIDEwMDYuMCIpOwotICB9Ci0gIGx1X3RhYmxlX3RlbXBsYXRlKHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgIHZhcmlhYmxlXzEgOiBjb25zdHJhaW5lZF9waW5fdHJhbnNpdGlvbjsKLSAgICB2YXJpYWJsZV8yIDogcmVsYXRlZF9waW5fdHJhbnNpdGlvbjsKLSAgICBpbmRleF8xICgiMTAwMC4wLCAxMDAxLjAsIDEwMDIuMCwgMTAwMy4wLCAxMDA0LjAsIDEwMDUuMCwgMTAwNi4wIik7Ci0gICAgaW5kZXhfMiAoIjEwMDAuMCwgMTAwMS4wLCAxMDAyLjAsIDEwMDMuMCwgMTAwNC4wLCAxMDA1LjAsIDEwMDYuMCIpOwotICB9Ci0gIGx1X3RhYmxlX3RlbXBsYXRlKHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgIHZhcmlhYmxlXzEgOiByZWxhdGVkX3Bpbl90cmFuc2l0aW9uOwotICAgIGluZGV4XzEgKCIxMDAwLjAsIDEwMDEuMCwgMTAwMi4wLCAxMDAzLjAsIDEwMDQuMCwgMTAwNS4wLCAxMDA2LjAiKTsKLSAgfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IEFEREZIWDIgKgotICogLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoQURERkhYMikgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjQ3MzMwNzsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAzMDYwMzc7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAzMDQyNzQ7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAzMDYwMzc7Ci0gIH0KLSAgcGluKEIpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMzAwMzQzOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMjk4NjgxOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMzAwMzQzOwotICB9Ci0gIHBpbihDSSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAyMzA1Mjk7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAyMjkwOTg7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAyMzA1Mjk7Ci0gIH0KLSAgcGluKENPKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuNTI1NDE1OwotICAgIGZ1bmN0aW9uIDogIigoKEEgQikrKEIgQ0kpKSsoQ0kgQSkpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTcyMDQsIDAuMjAzNzQxLCAwLjI4NTQ4MSwgMC4zODc4ODgsIDAuNDg5MzQ2LCAwLjU5MTEwOCwgMC42OTMxNjciLCBcCi0gICAgICAgICAgIjAuMTA2Nzk4LCAwLjIxMzMzNSwgMC4yOTUwNTksIDAuMzk3MjM5LCAwLjQ5OTM0NiwgMC42MDA2MjEsIDAuNzAxNjQ5IiwgXAotICAgICAgICAgICIwLjExNzc4MywgMC4yMjQzMzUsIDAuMzA2MDc2LCAwLjQwODI4LCAwLjUxMDAyNiwgMC42MTE1OTEsIDAuNzEyNTkyIiwgXAotICAgICAgICAgICIwLjEyODYsIDAuMjM1MTQzLCAwLjMxNjY5MSwgMC40MTkxMTksIDAuNTIwNzU5LCAwLjYyMjMxNCwgMC43MjQyNTYiLCBcCi0gICAgICAgICAgIjAuMTM5MDY2LCAwLjI0NTY4NywgMC4zMjcxNDMsIDAuNDI5NTk4LCAwLjUzMTMzOCwgMC42MzI4NDksIDAuNzMzOTIiLCBcCi0gICAgICAgICAgIjAuMTU1MDU0LCAwLjI2MTc2NywgMC4zNDMyMDcsIDAuNDQ1OTcyLCAwLjU0NzQwMSwgMC42NDg5NjcsIDAuNzUwMDM0IiwgXAotICAgICAgICAgICIwLjE2ODA1MSwgMC4yNzUwMzcsIDAuMzU2NzY5LCAwLjQ1ODkzNywgMC41NjAzMzUsIDAuNjYyNDIyLCAwLjc2MzQyIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2MTYzNywgMC4yNjU0MjIsIDAuNDMwNTM0LCAwLjYzOTE4OSwgMC44NDczNzEsIDEuMDU3MDEsIDEuMjY3MjEiLCBcCi0gICAgICAgICAgIjAuMDYxMywgMC4yNjU2MDIsIDAuNDMwNjAyLCAwLjYzODYsIDAuODQ3MzMyLCAxLjA1NjMzLCAxLjI2NzE4IiwgXAotICAgICAgICAgICIwLjA2MTEzMywgMC4yNjU2MzYsIDAuNDI5NTM2LCAwLjYzODQxMiwgMC44NDY4NDcsIDEuMDU2NzcsIDEuMjY1MzgiLCBcCi0gICAgICAgICAgIjAuMDYxNTc1LCAwLjI2NTM2NiwgMC40MzAxMDksIDAuNjM4NDE4LCAwLjg0NjgzOCwgMS4wNTYzMSwgMS4yNjY1MiIsIFwKLSAgICAgICAgICAiMC4wNjE0NzMsIDAuMjY1Njg1LCAwLjQzMDc5MSwgMC42Mzg0MjUsIDAuODQ2ODM2LCAxLjA1NjMxLCAxLjI2NTIiLCBcCi0gICAgICAgICAgIjAuMDYyNjQyLCAwLjI2NTg2MywgMC40MzA4NDIsIDAuNjM4MzY5LCAwLjg0NzMwOCwgMS4wNTYzMiwgMS4yNjQ3MiIsIFwKLSAgICAgICAgICAiMC4wNjMzNTIsIDAuMjY1OTM3LCAwLjQzMDYyNCwgMC42MzgxMywgMC44NDYzODQsIDEuMDU3MDYsIDEuMjY1MTQiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTAwODk1LCAwLjIxMDA1OSwgMC4yOTMyMDksIDAuMzk3NTM0LCAwLjUwMDg5OSwgMC42MDQzNzksIDAuNzA4MDEiLCBcCi0gICAgICAgICAgIjAuMTEwMjI1LCAwLjIxOTM5LCAwLjMwMjI2MywgMC40MDYxNjIsIDAuNTEwMTM3LCAwLjYxMzU5LCAwLjcxNjYyNSIsIFwKLSAgICAgICAgICAiMC4xMjA1MDcsIDAuMjI5NjgzLCAwLjMxMjU0NywgMC40MTY5MzYsIDAuNTIwMTY1LCAwLjYyMzI0NSwgMC43MjY0ODciLCBcCi0gICAgICAgICAgIjAuMTMwMzcsIDAuMjM5NTM2LCAwLjMyMjg4MiwgMC40MjY4NDYsIDAuNTMwMjgzLCAwLjYzMzAzOSwgMC43MzYzNjkiLCBcCi0gICAgICAgICAgIjAuMTM5ODAyLCAwLjI0OTAwNywgMC4zMzE4ODgsIDAuNDM2MDgxLCAwLjUzOTg4LCAwLjY0MzM2OCwgMC43NDU5MjYiLCBcCi0gICAgICAgICAgIjAuMTU0MTk0LCAwLjI2MzU4MywgMC4zNDY0ODIsIDAuNDUwMzUyLCAwLjU1NDAzOCwgMC42NTcwNDcsIDAuNzYxMjY0IiwgXAotICAgICAgICAgICIwLjE2NTc3LCAwLjI3NTM4NCwgMC4zNTgyNywgMC40NjI3MDMsIDAuNTY2MTgyLCAwLjY2OTAyNSwgMC43NzIyNzgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDYyNDk3LCAwLjI2NjE5MywgMC40MzA5MDgsIDAuNjM3NTAyLCAwLjg0NzQxOSwgMS4wNTYsIDEuMjY3MjgiLCBcCi0gICAgICAgICAgIjAuMDYyNTIsIDAuMjY2MTkxLCAwLjQzMDY4NSwgMC42Mzc0ODEsIDAuODQ3NDIsIDEuMDU2OCwgMS4yNjczMyIsIFwKLSAgICAgICAgICAiMC4wNjIwMjQsIDAuMjY0MzE4LCAwLjQzMDY3OCwgMC42Mzc1MDEsIDAuODQ3NDE4LCAxLjA1NjMxLCAxLjI2NzI2IiwgXAotICAgICAgICAgICIwLjA2MjUwOSwgMC4yNjYwNjYsIDAuNDMwNjEsIDAuNjM3ODIzLCAwLjg0NzY2MywgMS4wNTQ1NywgMS4yNjcwMSIsIFwKLSAgICAgICAgICAiMC4wNjIzOTksIDAuMjY2MTksIDAuNDMwNjQsIDAuNjM3NTY0LCAwLjg0NzQyOCwgMS4wNTU5NiwgMS4yNjYyOCIsIFwKLSAgICAgICAgICAiMC4wNjM3MzQsIDAuMjY2MzI3LCAwLjQzMDcxNiwgMC42Mzc2MDMsIDAuODQ3NDI5LCAxLjA1NjE3LCAxLjI2NzI0IiwgXAotICAgICAgICAgICIwLjA2NTAwNCwgMC4yNjU5NjIsIDAuNDMwNzUyLCAwLjYzNzI0MiwgMC44NDcxNDUsIDEuMDU3NCwgMS4yNjUwNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTY5OTcsIDAuMjAzMzY5LCAwLjI4NTI1MSwgMC4zODc0NywgMC40ODkxNzYsIDAuNTkwOTQ5LCAwLjY5MjE5NSIsIFwKLSAgICAgICAgICAiMC4xMDYwMDEsIDAuMjEyMzU5LCAwLjI5Mzk5MiwgMC4zOTYzODEsIDAuNDk4Njg3LCAwLjU5OTYxMiwgMC43MDE4NDkiLCBcCi0gICAgICAgICAgIjAuMTE3NTU2LCAwLjIyMzk0MiwgMC4zMDU2NjYsIDAuNDA3OTE0LCAwLjUwOTE2MywgMC42MTA4OCwgMC43MTI2NSIsIFwKLSAgICAgICAgICAiMC4xMjkzNjksIDAuMjM1NzQ0LCAwLjMxNzUxNiwgMC40MTk2NzEsIDAuNTIyMjksIDAuNjIzNjg0LCAwLjcyNDkxMiIsIFwKLSAgICAgICAgICAiMC4xNDExODUsIDAuMjQ3NTY0LCAwLjMyOTMwOCwgMC40MzE0MTIsIDAuNTMzODQzLCAwLjYzNTQ4LCAwLjczNjU4NyIsIFwKLSAgICAgICAgICAiMC4xNTkzMzQsIDAuMjY1ODcsIDAuMzQ3NjA4LCAwLjQ0OTY1OCwgMC41NTI0NDEsIDAuNjUzMjA5LCAwLjc1NTkxNSIsIFwKLSAgICAgICAgICAiMC4xNzM5ODMsIDAuMjgwNywgMC4zNjIzNjQsIDAuNDY0NDgxLCAwLjU2NzEzNiwgMC42Njg1NTIsIDAuNzY5NjIyIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2MjA1LCAwLjI2NjA3NCwgMC40Mjg0NDIsIDAuNjM4MjMyLCAwLjg0Njc1NSwgMS4wNTU1MSwgMS4yNjQ5OCIsIFwKLSAgICAgICAgICAiMC4wNjEyNzksIDAuMjY1OTY0LCAwLjQzMTA3OSwgMC42Mzg1NjcsIDAuODQ3MjE2LCAxLjA1NTg5LCAxLjI2NDciLCBcCi0gICAgICAgICAgIjAuMDYxMjAxLCAwLjI2NTYyOSwgMC40MzA4MzUsIDAuNjM5MTQ3LCAwLjg0NzAxOCwgMS4wNTYxMSwgMS4yNjQ3MSIsIFwKLSAgICAgICAgICAiMC4wNjEzOTYsIDAuMjY1OTcyLCAwLjQzMDk5NiwgMC42MzgzMTgsIDAuODQ2NTg5LCAxLjA1NzA2LCAxLjI2NTM2IiwgXAotICAgICAgICAgICIwLjA2MTYyMiwgMC4yNjU0MDEsIDAuNDMwMzQyLCAwLjYzODE5OCwgMC44NDcwNDksIDEuMDU3MDgsIDEuMjY1MjgiLCBcCi0gICAgICAgICAgIjAuMDYzMDA3LCAwLjI2NjE5NiwgMC40MzAzOTMsIDAuNjM4MDYzLCAwLjg0NjUwNCwgMS4wNTU5MywgMS4yNjcxOCIsIFwKLSAgICAgICAgICAiMC4wNjQ3MjUsIDAuMjY2NzU1LCAwLjQzMDU0NSwgMC42MzgyMzksIDAuODQ2NzI2LCAxLjA1NzExLCAxLjI2NTciKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk5MDMzLCAwLjIwOTMwNiwgMC4yOTIzMywgMC4zOTY1NzEsIDAuNDk5MjY2LCAwLjYwMjM2OSwgMC43MDYzNTQiLCBcCi0gICAgICAgICAgIjAuMTA3OTY5LCAwLjIxODM4MiwgMC4zMDEyNzksIDAuNDA1NTE2LCAwLjUwODc1MywgMC42MTE3OTYsIDAuNzE1MTk5IiwgXAotICAgICAgICAgICIwLjExOTEzOSwgMC4yMjg1NzMsIDAuMzExNDk0LCAwLjQxNTcwMywgMC41MTkxMTcsIDAuNjIyMDgsIDAuNzI2NDI3IiwgXAotICAgICAgICAgICIwLjEzMDY0NywgMC4yMzk3MjMsIDAuMzIyODc3LCAwLjQyNzQwNCwgMC41MzA2NTMsIDAuNjMzNjQ5LCAwLjczNzk3MSIsIFwKLSAgICAgICAgICAiMC4xNDE5ODEsIDAuMjUxMTA5LCAwLjMzNDIzMiwgMC40Mzc4MiwgMC41NDIwNTYsIDAuNjQ1MDExLCAwLjc0OTMwNSIsIFwKLSAgICAgICAgICAiMC4xNTk0OTYsIDAuMjY4NzQ5LCAwLjM1MTkxNSwgMC40NTY0NjQsIDAuNTU5NjkxLCAwLjY2MjYzMSwgMC43NjY5MzQiLCBcCi0gICAgICAgICAgIjAuMTczMjYxLCAwLjI4MjcwMywgMC4zNjYxMiwgMC40NzA0NTIsIDAuNTczNjM5LCAwLjY3NjYwMSwgMC43ODA4NjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDYzOTEzLCAwLjI2NTkxMSwgMC40MzE1NTIsIDAuNjM4MzMzLCAwLjg0NzQ1OCwgMS4wNTU1NywgMS4yNjQyNiIsIFwKLSAgICAgICAgICAiMC4wNjM5MTYsIDAuMjY2OTU0LCAwLjQzMTQ3NywgMC42Mzc3MTIsIDAuODQ3NDQ0LCAxLjA1NTYxLCAxLjI2NDIxIiwgXAotICAgICAgICAgICIwLjA2NDE5MiwgMC4yNjU5NjMsIDAuNDMxNDQ5LCAwLjYzNzc3NCwgMC44NDc0MjQsIDEuMDU0NDgsIDEuMjY3MzMiLCBcCi0gICAgICAgICAgIjAuMDY0MDkxLCAwLjI2NzU5OSwgMC40MzE0MDUsIDAuNjM3NjI3LCAwLjg0NzQzLCAxLjA1NDk2LCAxLjI2NjMyIiwgXAotICAgICAgICAgICIwLjA2NDI1LCAwLjI2NzAzOSwgMC40MzE0MDQsIDAuNjM4MzI3LCAwLjg0NzQ0OSwgMS4wNTU3NywgMS4yNjcyNyIsIFwKLSAgICAgICAgICAiMC4wNjU0NjYsIDAuMjY1Nzk4LCAwLjQzMTYxMywgMC42Mzc2MDMsIDAuODQ3NDQ0LCAxLjA1NjI2LCAxLjI2NzIzIiwgXAotICAgICAgICAgICIwLjA2Nzg4MywgMC4yNjg2NjEsIDAuNDMxODA0LCAwLjYzODQyNCwgMC44NDc0NzksIDEuMDU1ODMsIDEuMjY3MjEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0kiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5MTM0LCAwLjE5Nzg5MywgMC4yNzkyODQsIDAuMzgxODA2LCAwLjQ4MzU4LCAwLjU4NTEyNSwgMC42ODYxNSIsIFwKLSAgICAgICAgICAiMC4xMDA2MDUsIDAuMjA3MTUyLCAwLjI4ODY4OCwgMC4zOTA5MzYsIDAuNDkyNTA0LCAwLjU5NDU4NSwgMC42OTU5OTciLCBcCi0gICAgICAgICAgIjAuMTEyNDEzLCAwLjIxODk1OCwgMC4zMDA0MDUsIDAuNDAyODY5LCAwLjUwNDY1NSwgMC42MDYxODksIDAuNzA3MjYxIiwgXAotICAgICAgICAgICIwLjEyNDEyOCwgMC4yMzA2NzksIDAuMzEyMzYzLCAwLjQxNDYwNiwgMC41MTYzNDIsIDAuNjE3OTAzLCAwLjcxODk0MSIsIFwKLSAgICAgICAgICAiMC4xMzYwMTUsIDAuMjQyNjY2LCAwLjMyNDIwMSwgMC40MjYyMjMsIDAuNTI3NjkyLCAwLjYyOTA1NSwgMC43MzE1NTIiLCBcCi0gICAgICAgICAgIjAuMTUzOTE3LCAwLjI2MDcyMywgMC4zNDIyMDUsIDAuNDQ0NjYzLCAwLjU0NjMzOSwgMC42NDc5NjQsIDAuNzUwMDMiLCBcCi0gICAgICAgICAgIjAuMTY3OTkzLCAwLjI3NDk1MywgMC4zNTY2ODksIDAuNDU4ODY0LCAwLjU2MDU4NSwgMC42NjIwODksIDAuNzY0MzY1Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2MTk0MSwgMC4yNjU3NDIsIDAuNDMwODE3LCAwLjYzNzg0LCAwLjg0NjM4NSwgMS4wNTYzMywgMS4yNjU3NiIsIFwKLSAgICAgICAgICAiMC4wNjIwNTUsIDAuMjY1NjcxLCAwLjQzMDg1MywgMC42MzcxMjcsIDAuODQ2MzIzLCAxLjA1NjM0LCAxLjI2NjE4IiwgXAotICAgICAgICAgICIwLjA2MjA1MiwgMC4yNjU2NjQsIDAuNDMwODE5LCAwLjYzNjcwNywgMC44NDYzOTIsIDEuMDU2MywgMS4yNjU3MSIsIFwKLSAgICAgICAgICAiMC4wNjE3NiwgMC4yNjU1ODksIDAuNDMwMzI0LCAwLjYzNzgsIDAuODQ2NDA0LCAxLjA1NjMxLCAxLjI2NTcyIiwgXAotICAgICAgICAgICIwLjA2MjQwMSwgMC4yNjU2MzEsIDAuNDI5OTA0LCAwLjYzNzY4MSwgMC44NDY1ODYsIDEuMDU1ODcsIDEuMjY2MTkiLCBcCi0gICAgICAgICAgIjAuMDY0MDM1LCAwLjI2NjAwNCwgMC40MzA3NTQsIDAuNjM3ODM5LCAwLjg0NjQzNSwgMS4wNTYyMiwgMS4yNjYyNiIsIFwKLSAgICAgICAgICAiMC4wNjU4OTMsIDAuMjY2MzYyLCAwLjQyOTIxNywgMC42MzczNjksIDAuODQ2MzkxLCAxLjA1NjMzLCAxLjI2NjI5Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5NDEzNiwgMC4yMDQ2NzQsIDAuMjg3NTE2LCAwLjM5MTc0NiwgMC40OTUwMDgsIDAuNTk4MDY4LCAwLjcwMTQ2IiwgXAotICAgICAgICAgICIwLjEwMzA3MywgMC4yMTM1NzgsIDAuMjk2NzQ0LCAwLjQwMDg0NCwgMC41MDM1NTksIDAuNjA2NjU5LCAwLjcxMDQyNyIsIFwKLSAgICAgICAgICAiMC4xMTQ0OTgsIDAuMjI1MDYyLCAwLjMwNzkyNSwgMC40MTIxNTgsIDAuNTE1NDI4LCAwLjYxODQ3OCwgMC43MjE4ODkiLCBcCi0gICAgICAgICAgIjAuMTI2MDE3LCAwLjIzNjU5NCwgMC4zMTk0ODIsIDAuNDIzNzEsIDAuNTI2OTg2LCAwLjYzMDAzNywgMC43MzM5NTMiLCBcCi0gICAgICAgICAgIjAuMTM3MywgMC4yNDc5MTksIDAuMzMwNzk5LCAwLjQzNTAzLCAwLjUzODMwOSwgMC42NDEzNjEsIDAuNzQ0NzgzIiwgXAotICAgICAgICAgICIwLjE1Mzk5NSwgMC4yNjQ4MDgsIDAuMzQ4MDg4LCAwLjQ1MTk4OSwgMC41NTUyNjMsIDAuNjU4NTk5LCAwLjc2MTY0NyIsIFwKLSAgICAgICAgICAiMC4xNjcwOTYsIDAuMjc4MjM4LCAwLjM2MTE0MiwgMC40NjU0OTUsIDAuNTY4NjE2LCAwLjY3MTQ2NCwgMC43NzUxMTUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY1MTExLCAwLjI2NzQ0LCAwLjQzMTI0MywgMC42Mzc0MiwgMC44NDY4MTIsIDEuMDU2MjcsIDEuMjY0NTUiLCBcCi0gICAgICAgICAgIjAuMDY1MDk0LCAwLjI2NjEyNSwgMC40MzE0MjksIDAuNjM3Mzg1LCAwLjg0NzA4OSwgMS4wNTQxLCAxLjI2NDY0IiwgXAotICAgICAgICAgICIwLjA2NDkzOCwgMC4yNjYxMzYsIDAuNDMxMjg4LCAwLjYzNzM1MSwgMC44NDY3OTUsIDEuMDU1MTksIDEuMjY0MTMiLCBcCi0gICAgICAgICAgIjAuMDY1MTI2LCAwLjI2NjA1LCAwLjQzMTMwNSwgMC42MzczNywgMC44NDY4LCAxLjA1NjIxLCAxLjI2NjI0IiwgXAotICAgICAgICAgICIwLjA2NTU1NiwgMC4yNjU4MjYsIDAuNDMxMzMxLCAwLjYzNzQyOCwgMC44NDcwNjQsIDEuMDU2MjUsIDEuMjY0NSIsIFwKLSAgICAgICAgICAiMC4wNjY5MDYsIDAuMjY2MTE0LCAwLjQzMDc0LCAwLjYzNzQwNCwgMC44NDY4NjUsIDEuMDU2MjYsIDEuMjY2MDkiLCBcCi0gICAgICAgICAgIjAuMDY4NjQ3LCAwLjI2NzYxNCwgMC40MzE2MDYsIDAuNjM3MzAxLCAwLjg0Njg4LCAxLjA1NDY2LCAxLjI2NDQyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyOTI1LCAwLjAwMzAwOSwgMC4wMDMwMjIsIDAuMDAzMDI5LCAwLjAwMzAzMywgMC4wMDMwMzUsIDAuMDAzMDM3IiwgXAotICAgICAgICAgICIwLjAwMjg5OSwgMC4wMDI5ODQsIDAuMDAyOTk3LCAwLjAwMzAwNCwgMC4wMDMwMDgsIDAuMDAzMDExLCAwLjAwMzAxMiIsIFwKLSAgICAgICAgICAiMC4wMDI4ODQsIDAuMDAyOTcxLCAwLjAwMjk4NSwgMC4wMDI5OTIsIDAuMDAyOTk3LCAwLjAwMywgMC4wMDMwMDIiLCBcCi0gICAgICAgICAgIjAuMDAyODgxLCAwLjAwMjk2NSwgMC4wMDI5OCwgMC4wMDI5ODgsIDAuMDAyOTkyLCAwLjAwMjk5NSwgMC4wMDI5OTciLCBcCi0gICAgICAgICAgIjAuMDAyODczLCAwLjAwMjk1OCwgMC4wMDI5NzMsIDAuMDAyOTgyLCAwLjAwMjk4NiwgMC4wMDI5ODksIDAuMDAyOTkxIiwgXAotICAgICAgICAgICIwLjAwMjg3LCAwLjAwMjk1NSwgMC4wMDI5NzEsIDAuMDAyOTgsIDAuMDAyOTg1LCAwLjAwMjk4OSwgMC4wMDI5OTEiLCBcCi0gICAgICAgICAgIjAuMDAyODc2LCAwLjAwMjk1NywgMC4wMDI5NzMsIDAuMDAyOTgzLCAwLjAwMjk4OCwgMC4wMDI5OTEsIDAuMDAyOTkzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1MDY0LCAwLjAwNTE1MSwgMC4wMDUxNjUsIDAuMDA1MTcyLCAwLjAwNTE3NywgMC4wMDUxNzgsIDAuMDA1MTc5IiwgXAotICAgICAgICAgICIwLjAwNTA1MywgMC4wMDUxMzksIDAuMDA1MTU0LCAwLjAwNTE2LCAwLjAwNTE2NCwgMC4wMDUxNjYsIDAuMDA1MTY5IiwgXAotICAgICAgICAgICIwLjAwNTA0NSwgMC4wMDUxMzIsIDAuMDA1MTQ2LCAwLjAwNTE1MywgMC4wMDUxNTcsIDAuMDA1MTYsIDAuMDA1MTYyIiwgXAotICAgICAgICAgICIwLjAwNTA0LCAwLjAwNTEyNywgMC4wMDUxNDEsIDAuMDA1MTUsIDAuMDA1MTU0LCAwLjAwNTE1NywgMC4wMDUxNTkiLCBcCi0gICAgICAgICAgIjAuMDA1MDM0LCAwLjAwNTEyMiwgMC4wMDUxMzgsIDAuMDA1MTQ2LCAwLjAwNTE1MSwgMC4wMDUxNTQsIDAuMDA1MTU2IiwgXAotICAgICAgICAgICIwLjAwNTAzMywgMC4wMDUxMiwgMC4wMDUxMzYsIDAuMDA1MTQ2LCAwLjAwNTE1MSwgMC4wMDUxNTQsIDAuMDA1MTU2IiwgXAotICAgICAgICAgICIwLjAwNTAzMywgMC4wMDUxMTYsIDAuMDA1MTMzLCAwLjAwNTE0MywgMC4wMDUxNDksIDAuMDA1MTUyLCAwLjAwNTE1NSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzA5NCwgMC4wMDMxNzcsIDAuMDAzMTksIDAuMDAzMTk3LCAwLjAwMzIsIDAuMDAzMjAzLCAwLjAwMzIwMyIsIFwKLSAgICAgICAgICAiMC4wMDMwNjUsIDAuMDAzMTUsIDAuMDAzMTYyLCAwLjAwMzE2OSwgMC4wMDMxNzMsIDAuMDAzMTc1LCAwLjAwMzE3NyIsIFwKLSAgICAgICAgICAiMC4wMDMwNCwgMC4wMDMxMjYsIDAuMDAzMTQsIDAuMDAzMTQ3LCAwLjAwMzE1MiwgMC4wMDMxNTMsIDAuMDAzMTU2IiwgXAotICAgICAgICAgICIwLjAwMzAyNCwgMC4wMDMxMTEsIDAuMDAzMTI1LCAwLjAwMzEzNSwgMC4wMDMxMzksIDAuMDAzMTQxLCAwLjAwMzE0MyIsIFwKLSAgICAgICAgICAiMC4wMDMwMjIsIDAuMDAzMTA1LCAwLjAwMzEyLCAwLjAwMzEyOCwgMC4wMDMxMzIsIDAuMDAzMTM1LCAwLjAwMzEzNyIsIFwKLSAgICAgICAgICAiMC4wMDMwMTQsIDAuMDAzMDk5LCAwLjAwMzExNSwgMC4wMDMxMjQsIDAuMDAzMTI5LCAwLjAwMzEzMiwgMC4wMDMxMzQiLCBcCi0gICAgICAgICAgIjAuMDAzMDI1LCAwLjAwMzEwNSwgMC4wMDMxMjEsIDAuMDAzMTMxLCAwLjAwMzEzNiwgMC4wMDMxMzksIDAuMDAzMTQxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0OTUyLCAwLjAwNTAzNiwgMC4wMDUwNDksIDAuMDA1MDU3LCAwLjAwNTA2LCAwLjAwNTA2MiwgMC4wMDUwNjUiLCBcCi0gICAgICAgICAgIjAuMDA0OTM3LCAwLjAwNTAyMywgMC4wMDUwMzYsIDAuMDA1MDQzLCAwLjAwNTA0NywgMC4wMDUwNTEsIDAuMDA1MDUyIiwgXAotICAgICAgICAgICIwLjAwNDkxNiwgMC4wMDUwMDIsIDAuMDA1MDE2LCAwLjAwNTAyNCwgMC4wMDUwMjgsIDAuMDA1MDMxLCAwLjAwNTAzMyIsIFwKLSAgICAgICAgICAiMC4wMDQ4OTksIDAuMDA0OTg1LCAwLjAwNSwgMC4wMDUwMDgsIDAuMDA1MDEyLCAwLjAwNTAxNSwgMC4wMDUwMTciLCBcCi0gICAgICAgICAgIjAuMDA0ODgyLCAwLjAwNDk3LCAwLjAwNDk4NSwgMC4wMDQ5OTQsIDAuMDA0OTk5LCAwLjAwNTAwMiwgMC4wMDUwMDQiLCBcCi0gICAgICAgICAgIjAuMDA0ODczLCAwLjAwNDk1OCwgMC4wMDQ5NzQsIDAuMDA0OTg0LCAwLjAwNDk4OCwgMC4wMDQ5OTIsIDAuMDA0OTk0IiwgXAotICAgICAgICAgICIwLjAwNDg3NiwgMC4wMDQ5NTYsIDAuMDA0OTcyLCAwLjAwNDk4MSwgMC4wMDQ5ODYsIDAuMDA0OTg5LCAwLjAwNDk5MSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNJIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDMwOTgsIDAuMDAzMTgyLCAwLjAwMzE5NSwgMC4wMDMyMDMsIDAuMDAzMjA1LCAwLjAwMzIwOCwgMC4wMDMyMDkiLCBcCi0gICAgICAgICAgIjAuMDAzMDg1LCAwLjAwMzE3LCAwLjAwMzE4MiwgMC4wMDMxOTEsIDAuMDAzMTk1LCAwLjAwMzE5NywgMC4wMDMxOTgiLCBcCi0gICAgICAgICAgIjAuMDAzMDY2LCAwLjAwMzE1MiwgMC4wMDMxNjYsIDAuMDAzMTc0LCAwLjAwMzE3OCwgMC4wMDMxODEsIDAuMDAzMTgzIiwgXAotICAgICAgICAgICIwLjAwMzA1NSwgMC4wMDMxNDIsIDAuMDAzMTU3LCAwLjAwMzE2NiwgMC4wMDMxNzEsIDAuMDAzMTczLCAwLjAwMzE3NSIsIFwKLSAgICAgICAgICAiMC4wMDMwNSwgMC4wMDMxMzYsIDAuMDAzMTUyLCAwLjAwMzE2MiwgMC4wMDMxNjcsIDAuMDAzMTcsIDAuMDAzMTcxIiwgXAotICAgICAgICAgICIwLjAwMzA1LCAwLjAwMzEzNiwgMC4wMDMxNTIsIDAuMDAzMTYzLCAwLjAwMzE2OCwgMC4wMDMxNzEsIDAuMDAzMTczIiwgXAotICAgICAgICAgICIwLjAwMzA1NywgMC4wMDMxNCwgMC4wMDMxNTcsIDAuMDAzMTY4LCAwLjAwMzE3MywgMC4wMDMxNzcsIDAuMDAzMTc5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0NjM3LCAwLjAwNDcyLCAwLjAwNDczNCwgMC4wMDQ3NDIsIDAuMDA0NzQ2LCAwLjAwNDc0OSwgMC4wMDQ3NTEiLCBcCi0gICAgICAgICAgIjAuMDA0NjM2LCAwLjAwNDcxOSwgMC4wMDQ3MzMsIDAuMDA0NzQyLCAwLjAwNDc0NSwgMC4wMDQ3NDksIDAuMDA0NzUxIiwgXAotICAgICAgICAgICIwLjAwNDYzNCwgMC4wMDQ3MTksIDAuMDA0NzM0LCAwLjAwNDc0MywgMC4wMDQ3NDgsIDAuMDA0NzUxLCAwLjAwNDc1MyIsIFwKLSAgICAgICAgICAiMC4wMDQ2MzMsIDAuMDA0NzE5LCAwLjAwNDczNiwgMC4wMDQ3NDUsIDAuMDA0NzUsIDAuMDA0NzUzLCAwLjAwNDc1NSIsIFwKLSAgICAgICAgICAiMC4wMDQ2MzcsIDAuMDA0NzIyLCAwLjAwNDczOSwgMC4wMDQ3NDksIDAuMDA0NzU0LCAwLjAwNDc1NywgMC4wMDQ3NiIsIFwKLSAgICAgICAgICAiMC4wMDQ2NDIsIDAuMDA0NzI3LCAwLjAwNDc0NSwgMC4wMDQ3NTYsIDAuMDA0NzYyLCAwLjAwNDc2NiwgMC4wMDQ3NjgiLCBcCi0gICAgICAgICAgIjAuMDA0NjU0LCAwLjAwNDczNCwgMC4wMDQ3NTMsIDAuMDA0NzY1LCAwLjAwNDc3MSwgMC4wMDQ3NzUsIDAuMDA0Nzc3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuNTA2NjUxOwotICAgIGZ1bmN0aW9uIDogIigoQV5CKV5DSSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExMDEzNywgMC4yMTY5OTgsIDAuMjk4NzU5LCAwLjQwMDc1OSwgMC41MDI3MjMsIDAuNjA0NTE3LCAwLjcwNjM2NiIsIFwKLSAgICAgICAgICAiMC4xMTgyMzUsIDAuMjI1MDI4LCAwLjMwNjc3LCAwLjQwODc3MywgMC41MTA3MjcsIDAuNjEyNTg5LCAwLjcxNDMzNiIsIFwKLSAgICAgICAgICAiMC4xMjcyNjIsIDAuMjM0MTExLCAwLjMxNTg4LCAwLjQxNzg2OSwgMC41MTk4NTYsIDAuNjIxNjQzLCAwLjcyMzQzMyIsIFwKLSAgICAgICAgICAiMC4xMzYyNzYsIDAuMjQzMDQsIDAuMzI0OCwgMC40MjY4NiwgMC41Mjg3MzksIDAuNjMwNjc0LCAwLjczMjM4MyIsIFwKLSAgICAgICAgICAiMC4xNDQ5OTcsIDAuMjUxNzA0LCAwLjMzMzQ3LCAwLjQzNTQ4NywgMC41Mzc0OCwgMC42MzkyNjgsIDAuNzQxMDU4IiwgXAotICAgICAgICAgICIwLjE1ODY2NiwgMC4yNjU1NywgMC4zNDczNDQsIDAuNDQ5MzMzLCAwLjU1MTMyOCwgMC42NTMxMTMsIDAuNzU0OTAxIiwgXAotICAgICAgICAgICIwLjE2OTgwNiwgMC4yNzY3NTcsIDAuMzU4NTEsIDAuNDYwNTA5LCAwLjU2MjQ3MSwgMC42NjQzMTQsIDAuNzY2MDc1Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2MzE4MSwgMC4yNjQ3NTIsIDAuNDMwMjE0LCAwLjYzODIzMiwgMC44NTAxMTcsIDEuMDU5OTQsIDEuMjcwMDIiLCBcCi0gICAgICAgICAgIjAuMDYzMjA3LCAwLjI2NDM5MSwgMC40MzA4MzgsIDAuNjQwMDg4LCAwLjg0OTk3MiwgMS4wNTk5MywgMS4yNjk3OCIsIFwKLSAgICAgICAgICAiMC4wNjMwMjcsIDAuMjY0NDcsIDAuNDMwOTY5LCAwLjYzOTM4NSwgMC44NTAwNjcsIDEuMDU5ODYsIDEuMjY5MzIiLCBcCi0gICAgICAgICAgIjAuMDYyODk1LCAwLjI2NDcwNSwgMC40MzA4MTYsIDAuNjQwMjQzLCAwLjg0ODc3MSwgMS4wNjAwNSwgMS4yNjkzMyIsIFwKLSAgICAgICAgICAiMC4wNjMwOTYsIDAuMjY0NTc5LCAwLjQzMDgyMiwgMC42MzkzNjEsIDAuODUwMDU3LCAxLjA1OTgzLCAxLjI2OTMyIiwgXAotICAgICAgICAgICIwLjA2MzUwOCwgMC4yNjQ2MzQsIDAuNDMwOTg4LCAwLjYzOTMwMSwgMC44NTAwNTksIDEuMDU5NjcsIDEuMjY5MTkiLCBcCi0gICAgICAgICAgIjAuMDY0NjI0LCAwLjI2NDg4NSwgMC40MzEwMzgsIDAuNjM5MzI1LCAwLjg0ODUwMSwgMS4wNTk3MSwgMS4yNjk1OSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTQxMjIsIDAuMjI0MDEyLCAwLjMwNzI1NiwgMC40MTEwNDEsIDAuNTE0NzU4LCAwLjYxODQ4MiwgMC43MjIwNCIsIFwKLSAgICAgICAgICAiMC4xMjIyMDMsIDAuMjMyMDgzLCAwLjMxNTMzNSwgMC40MTkxMjEsIDAuNTIyODQxLCAwLjYyNjU1OSwgMC43MzAxMTgiLCBcCi0gICAgICAgICAgIjAuMTMwNjE2LCAwLjI0MDU1MSwgMC4zMjM4MDMsIDAuNDI3NTgzLCAwLjUzMTMzMSwgMC42MzQ5NjcsIDAuNzM4NTg5IiwgXAotICAgICAgICAgICIwLjEzODU1OCwgMC4yNDg1LCAwLjMzMTc1OCwgMC40MzU1NjMsIDAuNTM5MjM0LCAwLjY0Mjg4OSwgMC43NDY1NDgiLCBcCi0gICAgICAgICAgIjAuMTQ2MjMyLCAwLjI1NjA5NSwgMC4zMzkzNTUsIDAuNDQzMTQyLCAwLjU0Njg2OSwgMC42NTA1OTEsIDAuNzU0MTQ0IiwgXAotICAgICAgICAgICIwLjE1NzgxNywgMC4yNjc4NzgsIDAuMzUxMTMyLCAwLjQ1NDkzOSwgMC41NTg2NjQsIDAuNjYyMjkxLCAwLjc2NTkyMSIsIFwKLSAgICAgICAgICAiMC4xNjczMjcsIDAuMjc3NjQ3LCAwLjM2MDk0MiwgMC40NjQ3MTgsIDAuNTY4NDQ5LCAwLjY3MjE1LCAwLjc3NTc2MyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjQ3ODQsIDAuMjY1OTE5LCAwLjQzMTI5MiwgMC42NDA1ODIsIDAuODQ4ODk5LCAxLjA1NzYxLCAxLjI2OTgzIiwgXAotICAgICAgICAgICIwLjA2NDc2MywgMC4yNjU5MSwgMC40MzEyODksIDAuNjQwNTUyLCAwLjg0ODg4OCwgMS4wNTc0NCwgMS4yNjk4NiIsIFwKLSAgICAgICAgICAiMC4wNjQ2MzEsIDAuMjY1ODg2LCAwLjQzMTI4NSwgMC42NDA1NzksIDAuODUwMzI5LCAxLjA1Nzk5LCAxLjI2OTg0IiwgXAotICAgICAgICAgICIwLjA2NDUzNSwgMC4yNjU4NjMsIDAuNDMxMjY5LCAwLjY0MDczLCAwLjg1MDExNSwgMS4wNTk1MiwgMS4yNjk4MyIsIFwKLSAgICAgICAgICAiMC4wNjQ3ODYsIDAuMjY1OTAyLCAwLjQzMTMxNSwgMC42NDA0MTMsIDAuODUwMzI1LCAxLjA1NzYyLCAxLjI2OTg2IiwgXAotICAgICAgICAgICIwLjA2NTMyOCwgMC4yNjYwOTMsIDAuNDMxNDA0LCAwLjY0MDc2OSwgMC44NDg0NzMsIDEuMDYwMDUsIDEuMjY5OCIsIFwKLSAgICAgICAgICAiMC4wNjYwOTQsIDAuMjY2MzU2LCAwLjQzMjE0OCwgMC42NDA0ODYsIDAuODQ5Mjk4LCAxLjA1OTgzLCAxLjI2OTcxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE0ODgxOCwgMC4yNTE1NzMsIDAuMzMyOTM5LCAwLjQzNDY2MSwgMC41MzY1MDQsIDAuNjM4MjUyLCAwLjczOTg2MiIsIFwKLSAgICAgICAgICAiMC4xNTgxNDUsIDAuMjYwOTAxLCAwLjM0MjI2NiwgMC40NDM5NzEsIDAuNTQ1ODA5LCAwLjY0NzU0NCwgMC43NDkxODkiLCBcCi0gICAgICAgICAgIjAuMTY4Mzk4LCAwLjI3MTE3MSwgMC4zNTI1NDEsIDAuNDU0MzQ4LCAwLjU1NjAyNiwgMC42NTc3MzMsIDAuNzU5NDgzIiwgXAotICAgICAgICAgICIwLjE3ODI4NiwgMC4yODEwMDEsIDAuMzYyMzg3LCAwLjQ2NDE4NCwgMC41NjU5MTEsIDAuNjY3NTY0LCAwLjc2OTMiLCBcCi0gICAgICAgICAgIjAuMTg3NjM1LCAwLjI5MDM3NCwgMC4zNzE3MzksIDAuNDczNTE3LCAwLjU3NTMxOCwgMC42NzcwNywgMC43Nzg2NjUiLCBcCi0gICAgICAgICAgIjAuMjAyMDQ5LCAwLjMwNDc5LCAwLjM4NjE1NiwgMC40ODc5MSwgMC41ODk2MjgsIDAuNjkxMzU5LCAwLjc5MzE3NSIsIFwKLSAgICAgICAgICAiMC4yMTM0NTksIDAuMzE2MDIyLCAwLjM5NzM3NSwgMC40OTkxOTIsIDAuNjAwOTIyLCAwLjcwMjYwOCwgMC44MDQzIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1ODgwNywgMC4yNjA5MTQsIDAuNDI4MDEyLCAwLjYzNjUyOSwgMC44NDc2MjcsIDEuMDU2MTksIDEuMjY3NzkiLCBcCi0gICAgICAgICAgIjAuMDU4ODE0LCAwLjI2MDkxNiwgMC40Mjc4OTEsIDAuNjM3NjcyLCAwLjg0NzgwOCwgMS4wNTc4NSwgMS4yNjc4NCIsIFwKLSAgICAgICAgICAiMC4wNTg4NjIsIDAuMjYwOTI0LCAwLjQyNzg5NiwgMC42MzY1MzQsIDAuODQ3NjU3LCAxLjA1NzI3LCAxLjI2Nzc5IiwgXAotICAgICAgICAgICIwLjA1ODgwNCwgMC4yNjA4MjgsIDAuNDI3ODc1LCAwLjYzNzU5NywgMC44NDc4MDMsIDEuMDU2NCwgMS4yNjc2MyIsIFwKLSAgICAgICAgICAiMC4wNTg4MzEsIDAuMjYwODIsIDAuNDI3ODgyLCAwLjYzNzUwNSwgMC44NDc2MjcsIDEuMDU2MTcsIDEuMjY3MDciLCBcCi0gICAgICAgICAgIjAuMDU4ODY2LCAwLjI2MDgyOSwgMC40Mjc4OTIsIDAuNjM2OTQ2LCAwLjg0NzYzNiwgMS4wNTY1NiwgMS4yNjc5NiIsIFwKLSAgICAgICAgICAiMC4wNTg5NzUsIDAuMjYwODYyLCAwLjQyNzg4NSwgMC42MzY1MzEsIDAuODQ3ODI2LCAxLjA1NzY1LCAxLjI2NjM3Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE0NzQzMywgMC4yNTM5NjYsIDAuMzM2NzUyLCAwLjQ0MDI2OSwgMC41NDM4MjUsIDAuNjQ3MzYxLCAwLjc1MDkzNSIsIFwKLSAgICAgICAgICAiMC4xNTYyNDEsIDAuMjYyNzU0LCAwLjM0NTUzNywgMC40NDkwNTcsIDAuNTUyNjMxLCAwLjY1NjEzMywgMC43NTk2NTYiLCBcCi0gICAgICAgICAgIjAuMTY3MjIxLCAwLjI3MzYwOSwgMC4zNTY0MDEsIDAuNDU5OTA4LCAwLjU2MzQ5OCwgMC42NjY5ODcsIDAuNzcwNTQxIiwgXAotICAgICAgICAgICIwLjE3ODAyMSwgMC4yODQzNjIsIDAuMzY3MTU3LCAwLjQ3MDY2NCwgMC41NzQyNSwgMC42Nzc3NDIsIDAuNzgxMjU1IiwgXAotICAgICAgICAgICIwLjE4ODQyLCAwLjI5NDY3OCwgMC4zNzc0NTksIDAuNDgwOTc2LCAwLjU4NDU2MywgMC42ODgwNTMsIDAuNzkxNTY3IiwgXAotICAgICAgICAgICIwLjIwNDM2MywgMC4zMTA2NzIsIDAuMzkzNDUyLCAwLjQ5Njk2NiwgMC42MDA1LCAwLjcwNDA5LCAwLjgwNzU3MSIsIFwKLSAgICAgICAgICAiMC4yMTczMTUsIDAuMzIzNzc1LCAwLjQwNjU0OSwgMC41MTAwNjEsIDAuNjEzNjcsIDAuNzE3MTI5LCAwLjgyMDY3OSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjE0NTIsIDAuMjYyMTMxLCAwLjQyNzkxOSwgMC42MzczLCAwLjg0NzA5NiwgMS4wNTY5OSwgMS4yNjcwNiIsIFwKLSAgICAgICAgICAiMC4wNjE0NDksIDAuMjYyMzI1LCAwLjQyNzkxLCAwLjYzNjgxNiwgMC44NDcwODgsIDEuMDU2NiwgMS4yNjY3NSIsIFwKLSAgICAgICAgICAiMC4wNjE0NzgsIDAuMjYyMTcxLCAwLjQyNzk1MSwgMC42MzY3ODcsIDAuODQ2Nzg4LCAxLjA1NjU0LCAxLjI2NTM5IiwgXAotICAgICAgICAgICIwLjA2MTQzMSwgMC4yNjIzNjQsIDAuNDI3OTQzLCAwLjYzNjc4NiwgMC44NDY3NjUsIDEuMDU2NTIsIDEuMjY2MDUiLCBcCi0gICAgICAgICAgIjAuMDYxNDU1LCAwLjI2MjM2MiwgMC40Mjc5MTgsIDAuNjM2NzgsIDAuODQ2NzcyLCAxLjA1NjUsIDEuMjY1MzgiLCBcCi0gICAgICAgICAgIjAuMDYxNDM3LCAwLjI2MjE3NSwgMC40Mjc5MTMsIDAuNjM2NzcyLCAwLjg0Njc1NCwgMS4wNTY0OSwgMS4yNjU0IiwgXAotICAgICAgICAgICIwLjA2MTU0MywgMC4yNjIzNzIsIDAuNDI3OTMzLCAwLjYzNjc0NywgMC44NDY2MTcsIDEuMDU2NzMsIDEuMjY1MyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDc4MDQsIDAuMjE0NjI0LCAwLjI5NjM5MSwgMC4zOTg0MDEsIDAuNTAwNDE3LCAwLjYwMjE5MiwgMC43MDM5NzEiLCBcCi0gICAgICAgICAgIjAuMTE2MDc2LCAwLjIyMjkwMSwgMC4zMDQ2NzEsIDAuNDA2NjgsIDAuNTA4NTk5LCAwLjYxMDQ3OCwgMC43MTIyNDUiLCBcCi0gICAgICAgICAgIjAuMTI2NTQsIDAuMjMzNDQ0LCAwLjMxNTIxNSwgMC40MTcyMjMsIDAuNTE5MjIxLCAwLjYyMTAyNCwgMC43MjI3OTIiLCBcCi0gICAgICAgICAgIjAuMTM3MjE1LCAwLjI0NDAwNywgMC4zMjU3NzMsIDAuNDI3Nzk4LCAwLjUyOTY5MiwgMC42MzE1NCwgMC43MzMzNjIiLCBcCi0gICAgICAgICAgIjAuMTQ3NDUxLCAwLjI1NDE2MSwgMC4zMzU5MzUsIDAuNDM3OTUxLCAwLjUzOTk3MiwgMC42NDE3NTEsIDAuNzQzNTE5IiwgXAotICAgICAgICAgICIwLjE2MzMxMywgMC4yNzAyNjcsIDAuMzUyMDM4LCAwLjQ1NDA0LCAwLjU1NjA0NCwgMC42NTc4MjgsIDAuNzU5NjQ2IiwgXAotICAgICAgICAgICIwLjE3NjUwNCwgMC4yODM1NTEsIDAuMzY1MzY2LCAwLjQ2NzM1NiwgMC41NjkzODMsIDAuNjcxMTQ4LCAwLjc3Mjk5Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2MzExMSwgMC4yNjQ0NDgsIDAuNDMwODM0LCAwLjYzOTMyLCAwLjg0ODIwMiwgMS4wNTk4NywgMS4yNjkzNCIsIFwKLSAgICAgICAgICAiMC4wNjMxMTgsIDAuMjY0NDI1LCAwLjQzMDgwOCwgMC42MzkyNzEsIDAuODQ4Nzc4LCAxLjA1OTgyLCAxLjI2OTY5IiwgXAotICAgICAgICAgICIwLjA2Mjk5NiwgMC4yNjQ0LCAwLjQzMDgwNywgMC42MzkyNDQsIDAuODUwMDAyLCAxLjA1OTc5LCAxLjI2OTY2IiwgXAotICAgICAgICAgICIwLjA2Mjg2NywgMC4yNjQ0OTksIDAuNDMwODA4LCAwLjY0MDE0OSwgMC44NDk4MzksIDEuMDU5MzEsIDEuMjY5NjkiLCBcCi0gICAgICAgICAgIjAuMDYyOTk5LCAwLjI2NDQ5NCwgMC40MzA3OTYsIDAuNjM5MjcsIDAuODQ3OTQ1LCAxLjA1OTc5LCAxLjI2OTY1IiwgXAotICAgICAgICAgICIwLjA2MzYyNywgMC4yNjQ2MDUsIDAuNDMwODU1LCAwLjYzOTI2NSwgMC44NDgyNjQsIDEuMDU5NjEsIDEuMjY5NTUiLCBcCi0gICAgICAgICAgIjAuMDY0NjY0LCAwLjI2NTAxNCwgMC40MzEwNTIsIDAuNjM5Mjc4LCAwLjg0ODMwOSwgMS4wNTk2MywgMS4yNjk2Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExMTEyMiwgMC4yMjEwNzQsIDAuMzA0MzI4LCAwLjQwODEwMywgMC41MTE4MzYsIDAuNjE1NTMsIDAuNzE5MDk5IiwgXAotICAgICAgICAgICIwLjExOTMwNywgMC4yMjkyODYsIDAuMzEyNTM4LCAwLjQxNjM0MiwgMC41MjAxMTcsIDAuNjIzNjgsIDAuNzI3MzI3IiwgXAotICAgICAgICAgICIwLjEyOTAyOCwgMC4yMzg5MjksIDAuMzIyMTg3LCAwLjQyNTk3OCwgMC41Mjk2ODEsIDAuNjMzNDIyLCAwLjczNjk4IiwgXAotICAgICAgICAgICIwLjEzODc3NywgMC4yNDg2NTIsIDAuMzMxOTE2LCAwLjQzNTcxOSwgMC41Mzk0MzIsIDAuNjQzMTI0LCAwLjc0NjcxOSIsIFwKLSAgICAgICAgICAiMC4xNDgxODksIDAuMjU4MTMsIDAuMzQxMzk3LCAwLjQ0NTE5MSwgMC41NDg5MzUsIDAuNjUyNjExLCAwLjc1NjE4NyIsIFwKLSAgICAgICAgICAiMC4xNjI1NzcsIDAuMjcyNzE4LCAwLjM1NjAwNSwgMC40NTk3NzIsIDAuNTYzNTE5LCAwLjY2NzE5MywgMC43NzA3NTQiLCBcCi0gICAgICAgICAgIjAuMTc0NDMsIDAuMjg0NjcyLCAwLjM2Nzk1LCAwLjQ3MTc2MSwgMC41NzU0NDcsIDAuNjc5MTQyLCAwLjc4Mjc1NCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjQ4MDQsIDAuMjY1ODksIDAuNDMxODk4LCAwLjY0MDU3NCwgMC44NDkwNiwgMS4wNTk4NiwgMS4yNjgzOCIsIFwKLSAgICAgICAgICAiMC4wNjQ3MiwgMC4yNjU4ODEsIDAuNDMxMjk4LCAwLjY0MDY5OSwgMC44NDc5NjQsIDEuMDYwMDQsIDEuMjY5OTMiLCBcCi0gICAgICAgICAgIjAuMDY0NjU4LCAwLjI2NTg4OSwgMC40MzEyOTQsIDAuNjQwNTcyLCAwLjg1MDE3OSwgMS4wNTc4MSwgMS4yNjk4NyIsIFwKLSAgICAgICAgICAiMC4wNjQ1OCwgMC4yNjU5MzYsIDAuNDMxMjg3LCAwLjYzOTY0NSwgMC44NTAyMzMsIDEuMDU5OSwgMS4yNjk4OSIsIFwKLSAgICAgICAgICAiMC4wNjQ3MTMsIDAuMjY1OTIsIDAuNDMxMzYsIDAuNjQwNTk2LCAwLjg0OTIxMiwgMS4wNTk4MywgMS4yNjk5NiIsIFwKLSAgICAgICAgICAiMC4wNjU0NDMsIDAuMjY2MDQyLCAwLjQzMSwgMC42NDA2MzYsIDAuODQ5Mjc0LCAxLjA1OTgzLCAxLjI2NzgzIiwgXAotICAgICAgICAgICIwLjA2NjQ1OSwgMC4yNjY2MjIsIDAuNDMyMTM0LCAwLjYzOTQ4LCAwLjg1MDIzOCwgMS4wNTgyNywgMS4yNjk3MiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNTA0OSwgMC4yNTMzNzYsIDAuMzM0ODM4LCAwLjQzNjY5MiwgMC41MzgzNzcsIDAuNjM5OTgsIDAuNzQxODc1IiwgXAotICAgICAgICAgICIwLjE1OTU3MSwgMC4yNjI1MDIsIDAuMzQzOTI3LCAwLjQ0NTc3NywgMC41NDc0OTYsIDAuNjQ5MjM2LCAwLjc1MDk4MSIsIFwKLSAgICAgICAgICAiMC4xNjk2MTUsIDAuMjcyNTIxLCAwLjM1Mzk2OSwgMC40NTU4MTcsIDAuNTU3NTM5LCAwLjY1OTI4MiwgMC43NjEwNjUiLCBcCi0gICAgICAgICAgIjAuMTc5MTExLCAwLjI4MjAxNiwgMC4zNjM0NjEsIDAuNDY1MzA4LCAwLjU2NzAzMywgMC42Njg3NzUsIDAuNzcwNjE1IiwgXAotICAgICAgICAgICIwLjE4ODM0MSwgMC4yOTEyOTMsIDAuMzcyNzI5LCAwLjQ3NDU3NCwgMC41NzYyOTksIDAuNjc4MDQsIDAuNzc5Nzg2IiwgXAotICAgICAgICAgICIwLjIwMzYwNiwgMC4zMDY2NzUsIDAuMzg3OTk1LCAwLjQ4OTc5NiwgMC41OTE0MTksIDAuNjkzMTUxLCAwLjc5NDkyMSIsIFwKLSAgICAgICAgICAiMC4yMTcyNTcsIDAuMzIwMjc4LCAwLjQwMTYwNiwgMC41MDMzOTcsIDAuNjA1MDAzLCAwLjcwNjcyNywgMC44MDg0OTkiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU4NjA1LCAwLjI2MDkyOCwgMC40MjgyNjksIDAuNjM3MTY0LCAwLjg0NzYzNCwgMS4wNTYzNywgMS4yNjY1NSIsIFwKLSAgICAgICAgICAiMC4wNTg2MDMsIDAuMjYwOTA3LCAwLjQyODE3OSwgMC42MzgwODEsIDAuODQ3ODgsIDEuMDU2NjMsIDEuMjY2NTUiLCBcCi0gICAgICAgICAgIjAuMDU4NjgsIDAuMjYwOTE1LCAwLjQyODE3MiwgMC42MzgwNzEsIDAuODQ3ODc0LCAxLjA1NjY2LCAxLjI2Nzk4IiwgXAotICAgICAgICAgICIwLjA1ODYwNywgMC4yNjA4NTgsIDAuNDI4MTYsIDAuNjM4MDYzLCAwLjg0Nzg2NSwgMS4wNTY2NSwgMS4yNjgxNCIsIFwKLSAgICAgICAgICAiMC4wNTg2MTMsIDAuMjYwOSwgMC40MjgxNywgMC42MzgwNjMsIDAuODQ3ODY3LCAxLjA1NjY0LCAxLjI2NzgiLCBcCi0gICAgICAgICAgIjAuMDU4NjM4LCAwLjI2MDk0NSwgMC40MjgyODYsIDAuNjM4MDc4LCAwLjg0Nzg3OCwgMS4wNTc4MSwgMS4yNjc3NyIsIFwKLSAgICAgICAgICAiMC4wNTg3NjUsIDAuMjYwOTA5LCAwLjQyODE4NywgMC42MzczMDksIDAuODQ3ODY0LCAxLjA1NjY1LCAxLjI2Nzc3Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE0Njc4OCwgMC4yNTMyNTgsIDAuMzM2MDQyLCAwLjQzOTU4NCwgMC41NDMxMjMsIDAuNjQ2Njg4LCAwLjc1MDE5NCIsIFwKLSAgICAgICAgICAiMC4xNTU3OTEsIDAuMjYyMjY2LCAwLjM0NTA2LCAwLjQ0ODU2MSwgMC41NTIxMzIsIDAuNjU1NjM0LCAwLjc1OTE5OSIsIFwKLSAgICAgICAgICAiMC4xNjczMDMsIDAuMjczNzc5LCAwLjM1NjU3OCwgMC40NjAxMTQsIDAuNTYzNjIsIDAuNjY3MTg1LCAwLjc3MDY5OSIsIFwKLSAgICAgICAgICAiMC4xNzkxMzEsIDAuMjg1NjQ0LCAwLjM2ODQyNSwgMC40NzE5NDcsIDAuNTc1NTQ3LCAwLjY3OTAxLCAwLjc4MjU3MyIsIFwKLSAgICAgICAgICAiMC4xOTA4NTMsIDAuMjk3MzE3LCAwLjM4MDA5NiwgMC40ODM2MTIsIDAuNTg3MTg3LCAwLjY5MDY3OSwgMC43OTQyMzUiLCBcCi0gICAgICAgICAgIjAuMjA4OTUsIDAuMzE1Mzg3LCAwLjM5ODE2NSwgMC41MDE2NzcsIDAuNjA1MjkyLCAwLjcwODc5NCwgMC44MTIzNiIsIFwKLSAgICAgICAgICAiMC4yMjM0NTQsIDAuMzI5ODAxLCAwLjQxMjU5NCwgMC41MTYwODksIDAuNjE5Njg1LCAwLjcyMzE1MSwgMC44MjY3MDQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDYxMDE2LCAwLjI2MjIzOCwgMC40MjgwMzcsIDAuNjM3NTQsIDAuODQ3MTY4LCAxLjA1NTk4LCAxLjI2NTY0IiwgXAotICAgICAgICAgICIwLjA2MDk2NiwgMC4yNjIyMzUsIDAuNDI4MjcxLCAwLjYzNjY4NCwgMC44NDcxMDgsIDEuMDU2OCwgMS4yNjU3NCIsIFwKLSAgICAgICAgICAiMC4wNjA5NTYsIDAuMjYyMjU4LCAwLjQyODAzMiwgMC42MzczMTcsIDAuODQ3MDYxLCAxLjA1Njc4LCAxLjI2NTciLCBcCi0gICAgICAgICAgIjAuMDYwODkzLCAwLjI2MjI0LCAwLjQyODEzMywgMC42MzY3NjIsIDAuODQ3MDUxLCAxLjA1NjgsIDEuMjY1MTEiLCBcCi0gICAgICAgICAgIjAuMDYwOTI4LCAwLjI2MjI1OCwgMC40Mjc4OTUsIDAuNjM2NzQzLCAwLjg0NzA1LCAxLjA1Njc0LCAxLjI2NTE5IiwgXAotICAgICAgICAgICIwLjA2MDkyLCAwLjI2MjI2NywgMC40Mjc4OTMsIDAuNjM2NzE5LCAwLjg0NjQyMSwgMS4wNTY3LCAxLjI2NjciLCBcCi0gICAgICAgICAgIjAuMDYxMDI1LCAwLjI2MjE4OSwgMC40Mjc4MjQsIDAuNjM3Mjg0LCAwLjg0NTkyOSwgMS4wNTY2OCwgMS4yNjY0NiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTA3MzcsIDAuMjE0MjQyLCAwLjI5NjAwMSwgMC4zOTgwMjIsIDAuNTAwMDEsIDAuNjAxODAxLCAwLjcwMzYwMiIsIFwKLSAgICAgICAgICAiMC4xMTUzNTQsIDAuMjIyMzIzLCAwLjMwNDA4NSwgMC40MDYwOTEsIDAuNTA4MDc2LCAwLjYwOTg2NiwgMC43MTE3NiIsIFwKLSAgICAgICAgICAiMC4xMjU3OTksIDAuMjMyNjgyLCAwLjMxNDMzOSwgMC40MTYzNTcsIDAuNTE4MjY3LCAwLjYyMDEzNiwgMC43MjE5MjEiLCBcCi0gICAgICAgICAgIjAuMTM2Njk4LCAwLjI0MzQ3NSwgMC4zMjUyNDMsIDAuNDI3MjU4LCAwLjUyOTIzOSwgMC42MzEwMzQsIDAuNzMyODc0IiwgXAotICAgICAgICAgICIwLjE0NzgwNCwgMC4yNTQ1MDUsIDAuMzM2Mjc2LCAwLjQzODM0NSwgMC41NDAyMjIsIDAuNjQyMTU0LCAwLjc0MzkyNCIsIFwKLSAgICAgICAgICAiMC4xNjU0ODgsIDAuMjcyMjM3LCAwLjM1NDAwOSwgMC40NTYwMTIsIDAuNTU3OTM3LCAwLjY1OTgyNSwgMC43NjE2MDIiLCBcCi0gICAgICAgICAgIjAuMTc5ODIsIDAuMjg2NzYzLCAwLjM2ODU0LCAwLjQ3MDU0OCwgMC41NzI1MzIsIDAuNjc0MzMyLCAwLjc3NjI1MSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjMyNzMsIDAuMjY0NTQ3LCAwLjQzMDUwOCwgMC42MzkzOTksIDAuODUwMTg1LCAxLjA2LCAxLjI2OTQ2IiwgXAotICAgICAgICAgICIwLjA2MzE4MSwgMC4yNjQ1MDUsIDAuNDMwODg5LCAwLjYzODM5OSwgMC44NTAwODcsIDEuMDU5OTEsIDEuMjcwMDciLCBcCi0gICAgICAgICAgIjAuMDYyOTUsIDAuMjY0NjUxLCAwLjQzMDM2NSwgMC42MzkyNDksIDAuODQ4NzQ5LCAxLjA1ODQ0LCAxLjI2OTgiLCBcCi0gICAgICAgICAgIjAuMDYyODk1LCAwLjI2NDcyMywgMC40MzA4MjYsIDAuNjM5NDA5LCAwLjg1MDAzNSwgMS4wNTk4NSwgMS4yNjk4MyIsIFwKLSAgICAgICAgICAiMC4wNjM1MDYsIDAuMjY0Nzk4LCAwLjQzMDg2LCAwLjY0MDI1NiwgMC44NDg3NjEsIDEuMDYwMDIsIDEuMjY3NTgiLCBcCi0gICAgICAgICAgIjAuMDYzNjE3LCAwLjI2NDg0MSwgMC40MzA4MiwgMC42Mzk5NjUsIDAuODQ4Nzc0LCAxLjA1ODEsIDEuMjY5NTYiLCBcCi0gICAgICAgICAgIjAuMDY0NTg1LCAwLjI2NDc4NiwgMC40MzA5NDQsIDAuNjQwMDk4LCAwLjg0ODE3OCwgMS4wNTk2NSwgMS4yNjc0MyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDY5MDgsIDAuMjE2ODkyLCAwLjMwMDE1NywgMC40MDM5NTgsIDAuNTA3NjkxLCAwLjYxMTMxMiwgMC43MTQ5MyIsIFwKLSAgICAgICAgICAiMC4xMTQ4MTMsIDAuMjI0NzUsIDAuMzA4MDI3LCAwLjQxMTgwOSwgMC41MTU1NDgsIDAuNjE5MjM2LCAwLjcyMjgxNCIsIFwKLSAgICAgICAgICAiMC4xMjUyMDksIDAuMjM1MjM0LCAwLjMxODQ5OSwgMC40MjIzNCwgMC41MjU5OTcsIDAuNjI5NjU3LCAwLjczMzMiLCBcCi0gICAgICAgICAgIjAuMTM1OTYsIDAuMjQ1OTEzLCAwLjMyOTE4LCAwLjQzMjk3NywgMC41MzY3MjUsIDAuNjQwMzY0LCAwLjc0NDAwMyIsIFwKLSAgICAgICAgICAiMC4xNDY3MzgsIDAuMjU2NjU4LCAwLjMzOTkzNSwgMC40NDM3MzIsIDAuNTQ3NDc1LCAwLjY1MTE2OCwgMC43NTQ3MzgiLCBcCi0gICAgICAgICAgIjAuMTYzMzA1LCAwLjI3MzQxMiwgMC4zNTY2OSwgMC40NjA0ODksIDAuNTY0MjM2LCAwLjY2NzkxOCwgMC43NzE1NCIsIFwKLSAgICAgICAgICAiMC4xNzYzOTUsIDAuMjg2NzIsIDAuMzY5OTg0LCAwLjQ3Mzc4MiwgMC41Nzc1NzMsIDAuNjgxMTg4LCAwLjc4NDc5NyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjQ3NTksIDAuMjY1ODk4LCAwLjQzMTg5MSwgMC42NDA2ODMsIDAuODQ4Mjg2LCAxLjA1ODM4LCAxLjI2OTk5IiwgXAotICAgICAgICAgICIwLjA2NDcyOCwgMC4yNjU5NjUsIDAuNDMxODY5LCAwLjY0MDU2OCwgMC44NDc5MjksIDEuMDU5ODksIDEuMjY3MzQiLCBcCi0gICAgICAgICAgIjAuMDY0NjYxLCAwLjI2NTg2MiwgMC40MzEyODcsIDAuNjQwODgzLCAwLjg1MDE4OCwgMS4wNjAwNSwgMS4yNjk4OCIsIFwKLSAgICAgICAgICAiMC4wNjQ1MjUsIDAuMjY1ODU2LCAwLjQzMTgzLCAwLjY0MDM4MSwgMC44NDgzODMsIDEuMDU4OTQsIDEuMjY5NzkiLCBcCi0gICAgICAgICAgIjAuMDY0NzQsIDAuMjY1OTI2LCAwLjQzMTM1MiwgMC42NDA1OTIsIDAuODQ5MTY0LCAxLjA1OTgxLCAxLjI2OTk1IiwgXAotICAgICAgICAgICIwLjA2NTQzOCwgMC4yNjYwNTEsIDAuNDMxNDEyLCAwLjY0MDYyMSwgMC44NDkzNjMsIDEuMDU5ODMsIDEuMjY5NzgiLCBcCi0gICAgICAgICAgIjAuMDY2NDE2LCAwLjI2NjQ2MSwgMC40MzIwOTQsIDAuNjQwNzE0LCAwLjg0Nzk2NCwgMS4wNTgzMSwgMS4yNjk3NyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTQyNzk3LCAwLjI0NTgyMiwgMC4zMjcyNTUsIDAuNDI5MTA1LCAwLjUzMDgzMSwgMC42MzI1NzMsIDAuNzM0MzIiLCBcCi0gICAgICAgICAgIjAuMTUyMTQ1LCAwLjI1NTA4OSwgMC4zMzY1NTksIDAuNDM4NDExLCAwLjU0MDA5OSwgMC42NDE3MDIsIDAuNzQzNiIsIFwKLSAgICAgICAgICAiMC4xNjM4ODcsIDAuMjY2ODE5LCAwLjM0ODI2NiwgMC40NTAxMTUsIDAuNTUxODQxLCAwLjY1MzU4NSwgMC43NTUzMyIsIFwKLSAgICAgICAgICAiMC4xNzU1NywgMC4yNzg0OTgsIDAuMzU5OTQ0LCAwLjQ2MTc5MiwgMC41NjM1MTgsIDAuNjY1MjYyLCAwLjc2NzA0NCIsIFwKLSAgICAgICAgICAiMC4xODY4OSwgMC4yODk4MTUsIDAuMzcxMjU4LCAwLjQ3MzEwNSwgMC41NzQ4MzEsIDAuNjc2NTc0LCAwLjc3ODMxOSIsIFwKLSAgICAgICAgICAiMC4yMDM1NzMsIDAuMzA2NDk0LCAwLjM4NzkzOCwgMC40ODk3ODUsIDAuNTkxNTA5LCAwLjY5MzIzMywgMC43OTQ5OTMiLCBcCi0gICAgICAgICAgIjAuMjE2NTYzLCAwLjMxOTI3MiwgMC40MDA2OTgsIDAuNTAyNTU1LCAwLjYwNDI3MiwgMC43MDU4NzUsIDAuODA3NzU2Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1Nzc1OCwgMC4yNjA4ODYsIDAuNDI4MTkyLCAwLjYzODA2OSwgMC44NDc4NjUsIDEuMDU3MjYsIDEuMjY2NTkiLCBcCi0gICAgICAgICAgIjAuMDU3NzczLCAwLjI2MDk0NCwgMC40MjgyOTgsIDAuNjM2ODQ1LCAwLjg0NzY1NywgMS4wNTY0MSwgMS4yNjY1NSIsIFwKLSAgICAgICAgICAiMC4wNTc3NTUsIDAuMjYwODM5LCAwLjQyODE4MywgMC42MzgwNTgsIDAuODQ3ODU5LCAxLjA1NjY2LCAxLjI2NjU3IiwgXAotICAgICAgICAgICIwLjA1Nzc0OSwgMC4yNjA5NDQsIDAuNDI4MTc4LCAwLjYzODA1NywgMC44NDc4NTYsIDEuMDU3MjYsIDEuMjY3OTUiLCBcCi0gICAgICAgICAgIjAuMDU3NzY0LCAwLjI2MDg1OCwgMC40MjgxOCwgMC42MzgwNTYsIDAuODQ3ODYxLCAxLjA1NzI2LCAxLjI2NjU1IiwgXAotICAgICAgICAgICIwLjA1NzcxNCwgMC4yNjA5NSwgMC40Mjc3OTgsIDAuNjM4MDg0LCAwLjg0Nzg4MSwgMS4wNTc4MSwgMS4yNjc3NCIsIFwKLSAgICAgICAgICAiMC4wNTc5NTEsIDAuMjYwNjU5LCAwLjQyODIxOCwgMC42MzY5MzQsIDAuODQ3ODUyLCAxLjA1NjcyLCAxLjI2NjU3Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE0MDUzOCwgMC4yNDU4NSwgMC4zMjg2ODgsIDAuNDMyMjQ1LCAwLjUzNTc4OSwgMC42MzkyOSwgMC43NDI4MTEiLCBcCi0gICAgICAgICAgIjAuMTQ5NzM0LCAwLjI1NTEsIDAuMzM3OTE3LCAwLjQ0MTQ4MiwgMC41NDQ5OTksIDAuNjQ4NTY4LCAwLjc1MjA0NyIsIFwKLSAgICAgICAgICAiMC4xNjE0MDMsIDAuMjY2NzE4LCAwLjM0OTU1NCwgMC40NTMxMTUsIDAuNTU2NjYzLCAwLjY2MDE2MiwgMC43NjM2ODQiLCBcCi0gICAgICAgICAgIjAuMTcyODIyLCAwLjI3ODEzNywgMC4zNjA5NzksIDAuNDY0NTM2LCAwLjU2ODA3OCwgMC42NzE1OCwgMC43NzUxMDMiLCBcCi0gICAgICAgICAgIjAuMTg0NDM1LCAwLjI4OTg5MSwgMC4zNzI3MDcsIDAuNDc2MjY3LCAwLjU3OTcyNCwgMC42ODMyNTEsIDAuNzg2ODQyIiwgXAotICAgICAgICAgICIwLjIwMjA0MSwgMC4zMDc0MTUsIDAuMzkwMjQ2LCAwLjQ5Mzg3MSwgMC41OTc0MDMsIDAuNzAwODE4LCAwLjgwNDQyNCIsIFwKLSAgICAgICAgICAiMC4yMTU3NzUsIDAuMzIxMDMyLCAwLjQwMzg0NCwgMC41MDc0MDksIDAuNjEwOTU4LCAwLjcxNDQzNiwgMC44MTgwNDQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU4MzMyLCAwLjI2MTIzOSwgMC40Mjc3NTcsIDAuNjM2NjUzLCAwLjg0NzAwNiwgMS4wNTY3MiwgMS4yNjY1MiIsIFwKLSAgICAgICAgICAiMC4wNTgzNDUsIDAuMjYxMjEsIDAuNDI4MDEsIDAuNjM2NjcsIDAuODQ2OTk0LCAxLjA1NjY4LCAxLjI2NjQzIiwgXAotICAgICAgICAgICIwLjA1ODM0NSwgMC4yNjEyMTEsIDAuNDI3NzIyLCAwLjYzNjY2OSwgMC44NDcwMDgsIDEuMDU2NjYsIDEuMjY2NDIiLCBcCi0gICAgICAgICAgIjAuMDU4MzI5LCAwLjI2MTMxNCwgMC40Mjc2NTIsIDAuNjM2NDE1LCAwLjg0Njg3NCwgMS4wNTY5LCAxLjI2NjQ1IiwgXAotICAgICAgICAgICIwLjA1ODM4MywgMC4yNjExNTgsIDAuNDI3NjQxLCAwLjYzNjk3LCAwLjg0Njk0LCAxLjA1NjYzLCAxLjI2NjQxIiwgXAotICAgICAgICAgICIwLjA1ODM4NSwgMC4yNjEyMTIsIDAuNDI3NjUzLCAwLjYzNjYzMSwgMC44NDY5MzQsIDEuMDU2NjMsIDEuMjY2NTkiLCBcCi0gICAgICAgICAgIjAuMDU4NTYzLCAwLjI2MTIwNywgMC40Mjc3NTIsIDAuNjM2NDEzLCAwLjg0NjgyNSwgMS4wNTY0MiwgMS4yNjY2MiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNTA2NCwgMC4wMDUxNTEsIDAuMDA1MTY1LCAwLjAwNTE3MiwgMC4wMDUxNzcsIDAuMDA1MTc4LCAwLjAwNTE3OSIsIFwKLSAgICAgICAgICAiMC4wMDUwNTMsIDAuMDA1MTM5LCAwLjAwNTE1NCwgMC4wMDUxNiwgMC4wMDUxNjQsIDAuMDA1MTY2LCAwLjAwNTE2OSIsIFwKLSAgICAgICAgICAiMC4wMDUwNDUsIDAuMDA1MTMyLCAwLjAwNTE0NiwgMC4wMDUxNTMsIDAuMDA1MTU3LCAwLjAwNTE2LCAwLjAwNTE2MiIsIFwKLSAgICAgICAgICAiMC4wMDUwNCwgMC4wMDUxMjcsIDAuMDA1MTQxLCAwLjAwNTE1LCAwLjAwNTE1NCwgMC4wMDUxNTcsIDAuMDA1MTU5IiwgXAotICAgICAgICAgICIwLjAwNTAzNCwgMC4wMDUxMjIsIDAuMDA1MTM4LCAwLjAwNTE0NiwgMC4wMDUxNTEsIDAuMDA1MTU0LCAwLjAwNTE1NiIsIFwKLSAgICAgICAgICAiMC4wMDUwMzMsIDAuMDA1MTIsIDAuMDA1MTM2LCAwLjAwNTE0NiwgMC4wMDUxNTEsIDAuMDA1MTU0LCAwLjAwNTE1NiIsIFwKLSAgICAgICAgICAiMC4wMDUwMzMsIDAuMDA1MTE2LCAwLjAwNTEzMywgMC4wMDUxNDMsIDAuMDA1MTQ5LCAwLjAwNTE1MiwgMC4wMDUxNTUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI5MjUsIDAuMDAzMDA5LCAwLjAwMzAyMiwgMC4wMDMwMjksIDAuMDAzMDMzLCAwLjAwMzAzNSwgMC4wMDMwMzciLCBcCi0gICAgICAgICAgIjAuMDAyODk5LCAwLjAwMjk4NCwgMC4wMDI5OTcsIDAuMDAzMDA0LCAwLjAwMzAwOCwgMC4wMDMwMTEsIDAuMDAzMDEyIiwgXAotICAgICAgICAgICIwLjAwMjg4NCwgMC4wMDI5NzEsIDAuMDAyOTg1LCAwLjAwMjk5MiwgMC4wMDI5OTcsIDAuMDAzLCAwLjAwMzAwMiIsIFwKLSAgICAgICAgICAiMC4wMDI4ODEsIDAuMDAyOTY1LCAwLjAwMjk4LCAwLjAwMjk4OCwgMC4wMDI5OTIsIDAuMDAyOTk1LCAwLjAwMjk5NyIsIFwKLSAgICAgICAgICAiMC4wMDI4NzMsIDAuMDAyOTU4LCAwLjAwMjk3MywgMC4wMDI5ODIsIDAuMDAyOTg2LCAwLjAwMjk4OSwgMC4wMDI5OTEiLCBcCi0gICAgICAgICAgIjAuMDAyODcsIDAuMDAyOTU1LCAwLjAwMjk3MSwgMC4wMDI5OCwgMC4wMDI5ODUsIDAuMDAyOTg5LCAwLjAwMjk5MSIsIFwKLSAgICAgICAgICAiMC4wMDI4NzYsIDAuMDAyOTU3LCAwLjAwMjk3MywgMC4wMDI5ODMsIDAuMDAyOTg4LCAwLjAwMjk5MSwgMC4wMDI5OTMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQ5NTIsIDAuMDA1MDM2LCAwLjAwNTA0OSwgMC4wMDUwNTcsIDAuMDA1MDYsIDAuMDA1MDYyLCAwLjAwNTA2NSIsIFwKLSAgICAgICAgICAiMC4wMDQ5MzcsIDAuMDA1MDIzLCAwLjAwNTAzNiwgMC4wMDUwNDMsIDAuMDA1MDQ3LCAwLjAwNTA1MSwgMC4wMDUwNTIiLCBcCi0gICAgICAgICAgIjAuMDA0OTE2LCAwLjAwNTAwMiwgMC4wMDUwMTYsIDAuMDA1MDI0LCAwLjAwNTAyOCwgMC4wMDUwMzEsIDAuMDA1MDMzIiwgXAotICAgICAgICAgICIwLjAwNDg5OSwgMC4wMDQ5ODUsIDAuMDA1LCAwLjAwNTAwOCwgMC4wMDUwMTIsIDAuMDA1MDE1LCAwLjAwNTAxNyIsIFwKLSAgICAgICAgICAiMC4wMDQ4ODIsIDAuMDA0OTcsIDAuMDA0OTg1LCAwLjAwNDk5NCwgMC4wMDQ5OTksIDAuMDA1MDAyLCAwLjAwNTAwNCIsIFwKLSAgICAgICAgICAiMC4wMDQ4NzMsIDAuMDA0OTU4LCAwLjAwNDk3NCwgMC4wMDQ5ODQsIDAuMDA0OTg4LCAwLjAwNDk5MiwgMC4wMDQ5OTQiLCBcCi0gICAgICAgICAgIjAuMDA0ODc2LCAwLjAwNDk1NiwgMC4wMDQ5NzIsIDAuMDA0OTgxLCAwLjAwNDk4NiwgMC4wMDQ5ODksIDAuMDA0OTkxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzMDk0LCAwLjAwMzE3NywgMC4wMDMxOSwgMC4wMDMxOTcsIDAuMDAzMiwgMC4wMDMyMDMsIDAuMDAzMjAzIiwgXAotICAgICAgICAgICIwLjAwMzA2NSwgMC4wMDMxNSwgMC4wMDMxNjIsIDAuMDAzMTY5LCAwLjAwMzE3MywgMC4wMDMxNzUsIDAuMDAzMTc3IiwgXAotICAgICAgICAgICIwLjAwMzA0LCAwLjAwMzEyNiwgMC4wMDMxNCwgMC4wMDMxNDcsIDAuMDAzMTUyLCAwLjAwMzE1MywgMC4wMDMxNTYiLCBcCi0gICAgICAgICAgIjAuMDAzMDI0LCAwLjAwMzExMSwgMC4wMDMxMjUsIDAuMDAzMTM1LCAwLjAwMzEzOSwgMC4wMDMxNDEsIDAuMDAzMTQzIiwgXAotICAgICAgICAgICIwLjAwMzAyMiwgMC4wMDMxMDUsIDAuMDAzMTIsIDAuMDAzMTI4LCAwLjAwMzEzMiwgMC4wMDMxMzUsIDAuMDAzMTM3IiwgXAotICAgICAgICAgICIwLjAwMzAxNCwgMC4wMDMwOTksIDAuMDAzMTE1LCAwLjAwMzEyNCwgMC4wMDMxMjksIDAuMDAzMTMyLCAwLjAwMzEzNCIsIFwKLSAgICAgICAgICAiMC4wMDMwMjUsIDAuMDAzMTA1LCAwLjAwMzEyMSwgMC4wMDMxMzEsIDAuMDAzMTM2LCAwLjAwMzEzOSwgMC4wMDMxNDEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0NjM3LCAwLjAwNDcyLCAwLjAwNDczNCwgMC4wMDQ3NDIsIDAuMDA0NzQ2LCAwLjAwNDc0OSwgMC4wMDQ3NTEiLCBcCi0gICAgICAgICAgIjAuMDA0NjM2LCAwLjAwNDcxOSwgMC4wMDQ3MzMsIDAuMDA0NzQyLCAwLjAwNDc0NSwgMC4wMDQ3NDksIDAuMDA0NzUxIiwgXAotICAgICAgICAgICIwLjAwNDYzNCwgMC4wMDQ3MTksIDAuMDA0NzM0LCAwLjAwNDc0MywgMC4wMDQ3NDgsIDAuMDA0NzUxLCAwLjAwNDc1MyIsIFwKLSAgICAgICAgICAiMC4wMDQ2MzMsIDAuMDA0NzE5LCAwLjAwNDczNiwgMC4wMDQ3NDUsIDAuMDA0NzUsIDAuMDA0NzUzLCAwLjAwNDc1NSIsIFwKLSAgICAgICAgICAiMC4wMDQ2MzcsIDAuMDA0NzIyLCAwLjAwNDczOSwgMC4wMDQ3NDksIDAuMDA0NzU0LCAwLjAwNDc1NywgMC4wMDQ3NiIsIFwKLSAgICAgICAgICAiMC4wMDQ2NDIsIDAuMDA0NzI3LCAwLjAwNDc0NSwgMC4wMDQ3NTYsIDAuMDA0NzYyLCAwLjAwNDc2NiwgMC4wMDQ3NjgiLCBcCi0gICAgICAgICAgIjAuMDA0NjU0LCAwLjAwNDczNCwgMC4wMDQ3NTMsIDAuMDA0NzY1LCAwLjAwNDc3MSwgMC4wMDQ3NzUsIDAuMDA0Nzc3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzMDk4LCAwLjAwMzE4MiwgMC4wMDMxOTUsIDAuMDAzMjAzLCAwLjAwMzIwNSwgMC4wMDMyMDgsIDAuMDAzMjA5IiwgXAotICAgICAgICAgICIwLjAwMzA4NSwgMC4wMDMxNywgMC4wMDMxODIsIDAuMDAzMTkxLCAwLjAwMzE5NSwgMC4wMDMxOTcsIDAuMDAzMTk4IiwgXAotICAgICAgICAgICIwLjAwMzA2NiwgMC4wMDMxNTIsIDAuMDAzMTY2LCAwLjAwMzE3NCwgMC4wMDMxNzgsIDAuMDAzMTgxLCAwLjAwMzE4MyIsIFwKLSAgICAgICAgICAiMC4wMDMwNTUsIDAuMDAzMTQyLCAwLjAwMzE1NywgMC4wMDMxNjYsIDAuMDAzMTcxLCAwLjAwMzE3MywgMC4wMDMxNzUiLCBcCi0gICAgICAgICAgIjAuMDAzMDUsIDAuMDAzMTM2LCAwLjAwMzE1MiwgMC4wMDMxNjIsIDAuMDAzMTY3LCAwLjAwMzE3LCAwLjAwMzE3MSIsIFwKLSAgICAgICAgICAiMC4wMDMwNSwgMC4wMDMxMzYsIDAuMDAzMTUyLCAwLjAwMzE2MywgMC4wMDMxNjgsIDAuMDAzMTcxLCAwLjAwMzE3MyIsIFwKLSAgICAgICAgICAiMC4wMDMwNTcsIDAuMDAzMTQsIDAuMDAzMTU3LCAwLjAwMzE2OCwgMC4wMDMxNzMsIDAuMDAzMTc3LCAwLjAwMzE3OSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IEFEREZIWDQgKgotICogLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoQURERkhYNCkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjcwNDI4NDsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAzNTA1NTg7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAzNDgyNzc7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAzNTA1NTg7Ci0gIH0KLSAgcGluKEIpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMzMxNjQyOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMzI5NjM3OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMzMxNjQyOwotICB9Ci0gIHBpbihDSSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAyNjIzNzU7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAyNjA1NDc7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAyNjIzNzU7Ci0gIH0KLSAgcGluKENPKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDEuMDM4NzQ7Ci0gICAgZnVuY3Rpb24gOiAiKCgoQSBCKSsoQiBDSSkpKyhDSSBBKSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDkxNjAzLCAwLjE3MzMwMSwgMC4yNDYzOTUsIDAuMjk4MTQ4LCAwLjM4MTI0OSwgMC40NTQwMzgsIDAuNTU3MjIxIiwgXAotICAgICAgICAgICIwLjEwMTE3NSwgMC4xODI4MzUsIDAuMjU1OTQxLCAwLjMwNzY4NiwgMC4zOTA4MTYsIDAuNDYzMDg4LCAwLjU2NjUzIiwgXAotICAgICAgICAgICIwLjExMjEyOSwgMC4xOTM3OTksIDAuMjY2ODk2LCAwLjMxODcyOSwgMC40MDE3NTEsIDAuNDczNzQsIDAuNTc3Njc4IiwgXAotICAgICAgICAgICIwLjEyMzAzNSwgMC4yMDQ2MDgsIDAuMjc3NzE2LCAwLjMyOTQ1NSwgMC40MTI1OCwgMC40ODQ5MTMsIDAuNTg4MTU1IiwgXAotICAgICAgICAgICIwLjEzMzY4MSwgMC4yMTUzMDIsIDAuMjg4NDEzLCAwLjM0MDE0MywgMC40MjMyMjMsIDAuNDk1OTk4LCAwLjU5OTI4NCIsIFwKLSAgICAgICAgICAiMC4xNDk4MTEsIDAuMjMxNjQyLCAwLjMwNDc1NywgMC4zNTY0ODIsIDAuNDM5NTg5LCAwLjUxMTgzOCwgMC42MTU2MTIiLCBcCi0gICAgICAgICAgIjAuMTYzMTg2LCAwLjI0NTMyNiwgMC4zMTg0NjgsIDAuMzcwMjc2LCAwLjQ1MzM2OCwgMC41MjU0MDQsIDAuNjI5MTU1Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQ1NjkxLCAwLjE4NjU2NSwgMC4zMzU3OTgsIDAuNDM4NTY5LCAwLjYwNjk2NSwgMC43NTY5NzMsIDAuOTY5NjE5IiwgXAotICAgICAgICAgICIwLjA0NTQ3NCwgMC4xODg0ODEsIDAuMzM1OTM3LCAwLjQ0MTAyLCAwLjYwOTQwOSwgMC43NTY3OTEsIDAuOTY4NDY2IiwgXAotICAgICAgICAgICIwLjA0NTE2LCAwLjE4ODQ5LCAwLjMzNTkxNiwgMC40NDAyOTQsIDAuNjA4MzA3LCAwLjc1Njg2NSwgMC45Njg1MjgiLCBcCi0gICAgICAgICAgIjAuMDQ1MDk0LCAwLjE4ODYwMSwgMC4zMzU4MTEsIDAuNDQxMjQ5LCAwLjYwOTc3OCwgMC43NTY4NjIsIDAuOTY3ODk3IiwgXAotICAgICAgICAgICIwLjA0NTIwNiwgMC4xODYzMzgsIDAuMzM1OTI3LCAwLjQ0MTA0MSwgMC42MDk2NjMsIDAuNzU2Mzc4LCAwLjk2Nzc2MyIsIFwKLSAgICAgICAgICAiMC4wNDYyNCwgMC4xODg4NTEsIDAuMzMyNjM4LCAwLjQ0MTAzLCAwLjYwODI3MSwgMC43NTU5MDUsIDAuOTY3MzkyIiwgXAotICAgICAgICAgICIwLjA0NzI3MywgMC4xODgwMDgsIDAuMzM2NDAxLCAwLjQ0MTE1MSwgMC42MDk0NDEsIDAuNzU2Nzc0LCAwLjk2ODAxMiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5NTU4OSwgMC4xNzkzNDcsIDAuMjUzNjIxLCAwLjMwNjI1OSwgMC4zOTAzNTcsIDAuNDY0MDQzLCAwLjU2OTUyMyIsIFwKLSAgICAgICAgICAiMC4xMDQ5NzksIDAuMTg4NzQ0LCAwLjI2MzAyOSwgMC4zMTU2ODYsIDAuMzk5NjkzLCAwLjQ3MzEyMSwgMC41Nzg1ODciLCBcCi0gICAgICAgICAgIjAuMTE1MzA3LCAwLjE5OTA1LCAwLjI3MzMyNywgMC4zMjYwMjIsIDAuNDEwMTA4LCAwLjQ4Mzg0OSwgMC41ODkzNTkiLCBcCi0gICAgICAgICAgIjAuMTI1MzAxLCAwLjIwOTAzMiwgMC4yODMzNDYsIDAuMzM1ODQsIDAuNDIwMzE1LCAwLjQ5NDI4MSwgMC41OTg4NzIiLCBcCi0gICAgICAgICAgIjAuMTM1MDI5LCAwLjIxODc0OSwgMC4yOTMwNDYsIDAuMzQ1ODE2LCAwLjQyOTk5NiwgMC41MDMyNzgsIDAuNjA4NjA0IiwgXAotICAgICAgICAgICIwLjE0OTg3NSwgMC4yMzM3NDEsIDAuMzA4MDQ0LCAwLjM2MDczNCwgMC40NDUwMjcsIDAuNTE5MDYyLCAwLjYyMzYzOSIsIFwKLSAgICAgICAgICAiMC4xNjE3ODksIDAuMjQ2MDgzLCAwLjMyMDQxNSwgMC4zNzMwNjYsIDAuNDU3MjY2LCAwLjUzMTIxNywgMC42MzU1MzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDYwNDMsIDAuMTg4MDI0LCAwLjMzNTY5MywgMC40Mzk2MzIsIDAuNjA4MTYzLCAwLjc1NTQ3NSwgMC45NjU5NzMiLCBcCi0gICAgICAgICAgIjAuMDQ1ODU3LCAwLjE4ODA3NiwgMC4zMzU2OCwgMC40Mzk2NTUsIDAuNjA3ODY1LCAwLjc1NDY4LCAwLjk2NjY3MyIsIFwKLSAgICAgICAgICAiMC4wNDU4NzYsIDAuMTg4OTA1LCAwLjMzNTY4MiwgMC40Mzk2ODEsIDAuNjA3ODg1LCAwLjc1NDk1NSwgMC45NjY0ODMiLCBcCi0gICAgICAgICAgIjAuMDQ1ODI4LCAwLjE4ODc5NSwgMC4zMzU1MTgsIDAuNDM5NTksIDAuNjA4MTQ0LCAwLjc1NTI3NCwgMC45NjY1MjUiLCBcCi0gICAgICAgICAgIjAuMDQ1NzA0LCAwLjE4ODEzNiwgMC4zMzU2NjYsIDAuNDM5NjcxLCAwLjYwNzY0NiwgMC43NTQ3OTEsIDAuOTY2NDg3IiwgXAotICAgICAgICAgICIwLjA0Njc3NCwgMC4xODg4MDUsIDAuMzM1MTQ3LCAwLjQzOTcyLCAwLjYwODIzLCAwLjc1NDcyMiwgMC45NjY0NjQiLCBcCi0gICAgICAgICAgIjAuMDQ4MjY4LCAwLjE4ODc2LCAwLjMzNTgxNCwgMC40Mzk4LCAwLjYwNzQ3MywgMC43NTM0MzUsIDAuOTY2NTUyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDkxNDY1LCAwLjE3MjczMywgMC4yNDU4NDcsIDAuMjk3Njg0LCAwLjM4MDkwNiwgMC40NTMwNTIsIDAuNTU2MjcyIiwgXAotICAgICAgICAgICIwLjEwMDU1OSwgMC4xODE4MywgMC4yNTQ5MTcsIDAuMzA2NzExLCAwLjM4OTkyMSwgMC40NjI2MzgsIDAuNTY2NTIyIiwgXAotICAgICAgICAgICIwLjExMjE5NCwgMC4xOTM0NjUsIDAuMjY2NTYyLCAwLjMxODMzMSwgMC40MDEyNDgsIDAuNDc0MjE2LCAwLjU3ODI0IiwgXAotICAgICAgICAgICIwLjEyMzk2NiwgMC4yMDUyNDIsIDAuMjc4MzQ3LCAwLjMzMDEwOSwgMC40MTMwMzcsIDAuNDg1OTYzLCAwLjU5MDA2MSIsIFwKLSAgICAgICAgICAiMC4xMzU2NzUsIDAuMjE2OTU2LCAwLjI5MDI1OCwgMC4zNDIxNjUsIDAuNDI0OTIxLCAwLjQ5NzczNCwgMC42MDIxMjgiLCBcCi0gICAgICAgICAgIjAuMTU0MjI1LCAwLjIzNTU0MywgMC4zMDg2NzIsIDAuMzYwNDMxLCAwLjQ0MzMyMywgMC41MTYyMTIsIDAuNjIwNDMzIiwgXAotICAgICAgICAgICIwLjE2OTQ2MywgMC4yNTEyODUsIDAuMzI0MzczLCAwLjM3NjE0NCwgMC40NTkwMiwgMC41MzE5NDIsIDAuNjM2MzAyIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQ1NDEsIDAuMTg3Njc3LCAwLjMzNjA3OCwgMC40Mzk0NjUsIDAuNjA5MTg2LCAwLjc1Nzc3NSwgMC45NjgxMjMiLCBcCi0gICAgICAgICAgIjAuMDQ1NDg1LCAwLjE4Nzg0MSwgMC4zMzU3NzgsIDAuNDM5ODc2LCAwLjYwNzcwMiwgMC43NTY3NTIsIDAuOTY5NDE5IiwgXAotICAgICAgICAgICIwLjA0NDk0NCwgMC4xODc4NTgsIDAuMzM1NDQ3LCAwLjQ0MDAwNSwgMC42MDkxNzIsIDAuNzU3MDk3LCAwLjk2ODUzMiIsIFwKLSAgICAgICAgICAiMC4wNDUxOTYsIDAuMTg3MzIxLCAwLjMzNTU1MiwgMC40Mzg5NjQsIDAuNjA5MTgsIDAuNzU2OTY2LCAwLjk2ODUzNyIsIFwKLSAgICAgICAgICAiMC4wNDUzOTIsIDAuMTg3NzQ5LCAwLjMzNTc2NCwgMC40NDEwMDQsIDAuNjA4MDI1LCAwLjc1NjMzOCwgMC45Njc0NTEiLCBcCi0gICAgICAgICAgIjAuMDQ2NDUxLCAwLjE4OTU1NiwgMC4zMzU5MjYsIDAuNDQwODkxLCAwLjYwOTI1LCAwLjc1Njc2OCwgMC45Njg0IiwgXAotICAgICAgICAgICIwLjA0ODE5OSwgMC4xOTAzNzEsIDAuMzM2MTA4LCAwLjQ0MTA5MSwgMC42MDgxNSwgMC43NTY4NzEsIDAuOTY3NDkiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTMzMTYsIDAuMTc3ODQyLCAwLjI1MjMyNywgMC4zMDQ5NzIsIDAuMzg4NzY4LCAwLjQ2MjYzNSwgMC41Njc1OTciLCBcCi0gICAgICAgICAgIjAuMTAyMTYxLCAwLjE4Njk3NSwgMC4yNjE0NiwgMC4zMTQxMTQsIDAuMzk4MjcxLCAwLjQ3MjEyMiwgMC41NzciLCBcCi0gICAgICAgICAgIjAuMTEzNTQ5LCAwLjE5NzIzNiwgMC4yNzE3MTEsIDAuMzI0MzY1LCAwLjQwODUyNSwgMC40ODIzNzQsIDAuNTg3NDU3IiwgXAotICAgICAgICAgICIwLjEyNTE5MSwgMC4yMDg2NTksIDAuMjgzMDQyLCAwLjMzNTc3NywgMC40MjAxMjQsIDAuNDk0MDU1LCAwLjU5OTY2MyIsIFwKLSAgICAgICAgICAiMC4xMzY3NTksIDAuMjIwMjIzLCAwLjI5NDYwMywgMC4zNDczMzYsIDAuNDMxNDU1LCAwLjUwNTY4MywgMC42MTA2OTEiLCBcCi0gICAgICAgICAgIjAuMTU0ODcxLCAwLjIzODQ1OSwgMC4zMTI4MzQsIDAuMzY1NTUxLCAwLjQ0OTY2OSwgMC41MjM4MDYsIDAuNjI4OTQyIiwgXAotICAgICAgICAgICIwLjE2OTIyMywgMC4yNTMwNzEsIDAuMzI3NTk3LCAwLjM4MDMyMSwgMC40NjQyOTcsIDAuNTM5MTE0LCAwLjY0MzUyNSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0NzE2OCwgMC4xODg4MDQsIDAuMzM1MDExLCAwLjQ0MDMzMywgMC42MDgwNzksIDAuNzU0OTQ2LCAwLjk2NjU0IiwgXAotICAgICAgICAgICIwLjA0NzE1NiwgMC4xODg4NTEsIDAuMzM2NjcsIDAuNDQwMzM3LCAwLjYwNzY3NSwgMC43NTQ1NzcsIDAuOTY2NTI5IiwgXAotICAgICAgICAgICIwLjA0NzIyOSwgMC4xODk2MzcsIDAuMzM2NjI5LCAwLjQ0MDI4MywgMC42MDc1MzQsIDAuNzU1MDE2LCAwLjk2NjUxMSIsIFwKLSAgICAgICAgICAiMC4wNDcyMDcsIDAuMTg4Nzk0LCAwLjMzNjYzMiwgMC40NDAyNzYsIDAuNjA4MTU2LCAwLjc1NTQ4NSwgMC45NjU3NzYiLCBcCi0gICAgICAgICAgIjAuMDQ3MzI5LCAwLjE4ODgyOCwgMC4zMzY2NjksIDAuNDQwMzA1LCAwLjYwNzYyNCwgMC43NTUwNSwgMC45NjY1NDQiLCBcCi0gICAgICAgICAgIjAuMDQ4NTMxLCAwLjE5MDEyNiwgMC4zMzY3MzcsIDAuNDQwMTUsIDAuNjA3NjUyLCAwLjc1NDkyMywgMC45NjY1NTgiLCBcCi0gICAgICAgICAgIjAuMDUwNjY4LCAwLjE5MDc5NCwgMC4zMzQyMDgsIDAuNDQwNDI2LCAwLjYwODM0MSwgMC43NTQ5MTUsIDAuOTY2NTcxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNJIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4NjQ3LCAwLjE2ODE1NSwgMC4yNDEyNTYsIDAuMjkyOTM3LCAwLjM3NjA3MywgMC40NDg1NjksIDAuNTUxNjM1IiwgXAotICAgICAgICAgICIwLjA5NTg1MSwgMC4xNzc1LCAwLjI1MDUzOSwgMC4zMDIzNywgMC4zODQ5ODgsIDAuNDU3OTgyLCAwLjU2MTc3NSIsIFwKLSAgICAgICAgICAiMC4xMDc1NTgsIDAuMTg5MTQ4LCAwLjI2MjI1MywgMC4zMTQwNzcsIDAuMzk3MDU2LCAwLjQ2OTA1NiwgMC41NzMxNzQiLCBcCi0gICAgICAgICAgIjAuMTE5NDgsIDAuMjAxMDk5LCAwLjI3NDIxMiwgMC4zMjU5NjMsIDAuNDA4OTYsIDAuNDgxNzM5LCAwLjU4NTE4MiIsIFwKLSAgICAgICAgICAiMC4xMzE0MzQsIDAuMjEzMDc4LCAwLjI4NjE5MSwgMC4zMzc5ODMsIDAuNDIwOTY4LCAwLjQ5MzEyNiwgMC41OTY5OTYiLCBcCi0gICAgICAgICAgIjAuMTQ5ODA0LCAwLjIzMTU1NywgMC4zMDQ3OTEsIDAuMzU2NTg0LCAwLjQzOTYxNCwgMC41MTE3MDgsIDAuNjE1NTIzIiwgXAotICAgICAgICAgICIwLjE2NDQ4NiwgMC4yNDY3MzQsIDAuMzE5ODM3LCAwLjM3MTU5LCAwLjQ1NDE5NiwgMC41MjczNjksIDAuNjMwODE5Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQ1NTQ1LCAwLjE4ODYzNCwgMC4zMzIxMDUsIDAuNDQwNzIzLCAwLjYwNjc0MiwgMC43NTY1OTQsIDAuOTY3MzU0IiwgXAotICAgICAgICAgICIwLjA0NTcxMiwgMC4xODgwNjksIDAuMzM1NDg4LCAwLjQ0MDgwMSwgMC42MDg4MTksIDAuNzU2NTY5LCAwLjk2NzQ3NCIsIFwKLSAgICAgICAgICAiMC4wNDU3MzcsIDAuMTg4MTg1LCAwLjMzMTY0MSwgMC40NDA3MzgsIDAuNjA2NDY4LCAwLjc1NjUzMiwgMC45NjgwMTEiLCBcCi0gICAgICAgICAgIjAuMDQ1NzU4LCAwLjE4ODEzNiwgMC4zMzI2NTQsIDAuNDQwNzM5LCAwLjYwNTk5MSwgMC43NTM2ODgsIDAuOTY3NDQ0IiwgXAotICAgICAgICAgICIwLjA0NjEwMywgMC4xODgxMjgsIDAuMzMyMzc5LCAwLjQ0MDcyOSwgMC42MDYzOCwgMC43NTY1NzIsIDAuOTY2OTYiLCBcCi0gICAgICAgICAgIjAuMDQ3ODYsIDAuMTg4MzIsIDAuMzMyNzM4LCAwLjQ0MDc4NSwgMC42MDcwMDQsIDAuNzU2NTEsIDAuOTY3MzkyIiwgXAotICAgICAgICAgICIwLjA1MDAyOSwgMC4xODkzMjcsIDAuMzMzMzMyLCAwLjQ0MDkyMiwgMC42MDc0OTIsIDAuNzU0Njc3LCAwLjk2NzUyNiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4ODgwNywgMC4xNzM1NjEsIDAuMjQ4MDAyLCAwLjMwMDQ3NywgMC4zODQ5NTIsIDAuNDU4ODg4LCAwLjU2MzQ1NyIsIFwKLSAgICAgICAgICAiMC4wOTc4NTgsIDAuMTgyNTY2LCAwLjI1NzAxNCwgMC4zMDk1MTQsIDAuMzkzOTY5LCAwLjQ2Nzg5OCwgMC41NzI0NjkiLCBcCi0gICAgICAgICAgIjAuMTA5NTE2LCAwLjE5NDEwOSwgMC4yNjg1NjcsIDAuMzIxMDY0LCAwLjQwNTU0MiwgMC40Nzk0NDEsIDAuNTg0MDIyIiwgXAotICAgICAgICAgICIwLjEyMTE0LCAwLjIwNTYyMiwgMC4yODAxNDMsIDAuMzMyODA2LCAwLjQxNjgwMiwgMC40OTA0ODMsIDAuNTk2MDA2IiwgXAotICAgICAgICAgICIwLjEzMjcyMSwgMC4yMTczMDcsIDAuMjkxNzgzLCAwLjM0NDQ1LCAwLjQyOTE4OCwgMC41MDI0MTEsIDAuNjA3MzYzIiwgXAotICAgICAgICAgICIwLjE1MDQ0MywgMC4yMzUwNTIsIDAuMzA5NTE3LCAwLjM2MjIwMSwgMC40NDYxOTIsIDAuNTIwMDY4LCAwLjYyNTE5MSIsIFwKLSAgICAgICAgICAiMC4xNjQ1MjEsIDAuMjQ5NDI3LCAwLjMyMzk1NSwgMC4zNzY2MDksIDAuNDYwODU1LCAwLjUzNDkxNywgMC42Mzk0NzEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDgzODQsIDAuMTkwMTM3LCAwLjMzNjQxNywgMC40NDAwNjUsIDAuNjA3MzE4LCAwLjc1NDYzNCwgMC45NjU3OSIsIFwKLSAgICAgICAgICAiMC4wNDg0MjEsIDAuMTkwMTA1LCAwLjMzNjQ0MSwgMC40NDAwNzMsIDAuNjA3MzI2LCAwLjc1NDY4MSwgMC45NjU3NzUiLCBcCi0gICAgICAgICAgIjAuMDQ4NDI2LCAwLjE5MDIyMiwgMC4zMzY0OCwgMC40NDAwNzYsIDAuNjA3Mzk3LCAwLjc1NDcyMywgMC45NjU4MjciLCBcCi0gICAgICAgICAgIjAuMDQ4MzYzLCAwLjE4OTYzNywgMC4zMzU3MDQsIDAuNDQwMDIyLCAwLjYwODEyNiwgMC43NTQ2ODEsIDAuOTY1ODg1IiwgXAotICAgICAgICAgICIwLjA0ODQzOSwgMC4xODg4NTQsIDAuMzM2Njg0LCAwLjQ0MDMxNSwgMC42MDc3NzEsIDAuNzU0NywgMC45NjYwOTciLCBcCi0gICAgICAgICAgIjAuMDUwMTcyLCAwLjE5MDAzNSwgMC4zMzY4MTEsIDAuNDQwMzI5LCAwLjYwODE3OSwgMC43NTQ3MDMsIDAuOTY1ODgiLCBcCi0gICAgICAgICAgIjAuMDUxNzM0LCAwLjE4OTU5OSwgMC4zMzY5MDQsIDAuNDQwNjA3LCAwLjYwNzczMiwgMC43NTQ2MDUsIDAuOTY1OTg2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDUxMDcsIDAuMDA1MzA4LCAwLjAwNTM1MiwgMC4wMDUzNjcsIDAuMDA1MzgxLCAwLjAwNTM4OCwgMC4wMDUzOTUiLCBcCi0gICAgICAgICAgIjAuMDA1MDcsIDAuMDA1Mjc1LCAwLjAwNTMyLCAwLjAwNTMzNiwgMC4wMDUzNTEsIDAuMDA1MzU2LCAwLjAwNTM2NCIsIFwKLSAgICAgICAgICAiMC4wMDUwNTIsIDAuMDA1MjU4LCAwLjAwNTMwNiwgMC4wMDUzMiwgMC4wMDUzMzUsIDAuMDA1MzQyLCAwLjAwNTM1IiwgXAotICAgICAgICAgICIwLjAwNTA0NywgMC4wMDUyNDgsIDAuMDA1Mjk1LCAwLjAwNTMxMiwgMC4wMDUzMjcsIDAuMDA1MzM0LCAwLjAwNTM0MSIsIFwKLSAgICAgICAgICAiMC4wMDUwNDEsIDAuMDA1MjM4LCAwLjAwNTI4NywgMC4wMDUzMDQsIDAuMDA1MzIsIDAuMDA1MzI4LCAwLjAwNTMzNSIsIFwKLSAgICAgICAgICAiMC4wMDUwNDksIDAuMDA1MjMsIDAuMDA1MjgxLCAwLjAwNTI5OCwgMC4wMDUzMTUsIDAuMDA1MzI0LCAwLjAwNTMzMiIsIFwKLSAgICAgICAgICAiMC4wMDUwNTQsIDAuMDA1MjI0LCAwLjAwNTI3NiwgMC4wMDUyOTQsIDAuMDA1MzEyLCAwLjAwNTMyMiwgMC4wMDUzMzEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNzU0NSwgMC4wMDc3NTEsIDAuMDA3Nzk3LCAwLjAwNzgxMiwgMC4wMDc4MjYsIDAuMDA3ODMzLCAwLjAwNzgzOSIsIFwKLSAgICAgICAgICAiMC4wMDc1MzEsIDAuMDA3NzM3LCAwLjAwNzc4MywgMC4wMDc3OTgsIDAuMDA3ODEyLCAwLjAwNzgxOSwgMC4wMDc4MjYiLCBcCi0gICAgICAgICAgIjAuMDA3NTIyLCAwLjAwNzcyNiwgMC4wMDc3NzMsIDAuMDA3Nzg5LCAwLjAwNzgwMywgMC4wMDc4MTEsIDAuMDA3ODE4IiwgXAotICAgICAgICAgICIwLjAwNzUxNCwgMC4wMDc3MTcsIDAuMDA3NzY1LCAwLjAwNzc4MSwgMC4wMDc3OTYsIDAuMDA3ODA1LCAwLjAwNzgxMSIsIFwKLSAgICAgICAgICAiMC4wMDc1MTMsIDAuMDA3NzEsIDAuMDA3NzU5LCAwLjAwNzc3NiwgMC4wMDc3OTIsIDAuMDA3OCwgMC4wMDc4MDkiLCBcCi0gICAgICAgICAgIjAuMDA3NTIsIDAuMDA3Njk5LCAwLjAwNzc1MSwgMC4wMDc3NjksIDAuMDA3Nzg2LCAwLjAwNzc5NSwgMC4wMDc4MDMiLCBcCi0gICAgICAgICAgIjAuMDA3NTIzLCAwLjAwNzY5NiwgMC4wMDc3NDcsIDAuMDA3NzY4LCAwLjAwNzc4NiwgMC4wMDc3OTUsIDAuMDA3ODAzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDUzMTYsIDAuMDA1NTE5LCAwLjAwNTU2MywgMC4wMDU1NzcsIDAuMDA1NTksIDAuMDA1NTk3LCAwLjAwNTYwMyIsIFwKLSAgICAgICAgICAiMC4wMDUyODMsIDAuMDA1NDg4LCAwLjAwNTUzMiwgMC4wMDU1NDcsIDAuMDA1NTYyLCAwLjAwNTU2NywgMC4wMDU1NzMiLCBcCi0gICAgICAgICAgIjAuMDA1MjQ4LCAwLjAwNTQ1NSwgMC4wMDU1MDEsIDAuMDA1NTE3LCAwLjAwNTUzMSwgMC4wMDU1MzgsIDAuMDA1NTQ0IiwgXAotICAgICAgICAgICIwLjAwNTIzNSwgMC4wMDU0MzUsIDAuMDA1NDgsIDAuMDA1NSwgMC4wMDU1MTQsIDAuMDA1NTE5LCAwLjAwNTUyNiIsIFwKLSAgICAgICAgICAiMC4wMDUyMzQsIDAuMDA1NDIyLCAwLjAwNTQ3LCAwLjAwNTQ4NiwgMC4wMDU1MDMsIDAuMDA1NTExLCAwLjAwNTUxOCIsIFwKLSAgICAgICAgICAiMC4wMDUyNTQsIDAuMDA1NDE0LCAwLjAwNTQ2MywgMC4wMDU0ODEsIDAuMDA1NDk4LCAwLjAwNTUwNiwgMC4wMDU1MTQiLCBcCi0gICAgICAgICAgIjAuMDA1MjM1LCAwLjAwNTQwNiwgMC4wMDU0NTksIDAuMDA1NDc4LCAwLjAwNTQ5NywgMC4wMDU1MDUsIDAuMDA1NTEzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDc0MTUsIDAuMDA3NjE3LCAwLjAwNzY2MiwgMC4wMDc2NzYsIDAuMDA3NjkxLCAwLjAwNzY5OCwgMC4wMDc3MDQiLCBcCi0gICAgICAgICAgIjAuMDA3NDAxLCAwLjAwNzYwNCwgMC4wMDc2NDksIDAuMDA3NjY0LCAwLjAwNzY3OCwgMC4wMDc2ODUsIDAuMDA3NjkyIiwgXAotICAgICAgICAgICIwLjAwNzM3MywgMC4wMDc1OCwgMC4wMDc2MjYsIDAuMDA3NjQyLCAwLjAwNzY1NiwgMC4wMDc2NjQsIDAuMDA3NjcxIiwgXAotICAgICAgICAgICIwLjAwNzM1NiwgMC4wMDc1NTcsIDAuMDA3NjA2LCAwLjAwNzYyLCAwLjAwNzYzNywgMC4wMDc2NDMsIDAuMDA3NjUxIiwgXAotICAgICAgICAgICIwLjAwNzMzOSwgMC4wMDc1MzcsIDAuMDA3NTg3LCAwLjAwNzYwNCwgMC4wMDc2MTgsIDAuMDA3NjI3LCAwLjAwNzYzNCIsIFwKLSAgICAgICAgICAiMC4wMDczNDEsIDAuMDA3NTIxLCAwLjAwNzU3MiwgMC4wMDc1ODgsIDAuMDA3NjA1LCAwLjAwNzYxNCwgMC4wMDc2MjIiLCBcCi0gICAgICAgICAgIjAuMDA3MzM5LCAwLjAwNzUxLCAwLjAwNzU2MSwgMC4wMDc1NzksIDAuMDA3NTk1LCAwLjAwNzYwNCwgMC4wMDc2MTMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDUzMjEsIDAuMDA1NTI2LCAwLjAwNTU3MSwgMC4wMDU1ODQsIDAuMDA1NTk5LCAwLjAwNTYwNiwgMC4wMDU2MTMiLCBcCi0gICAgICAgICAgIjAuMDA1MzA4LCAwLjAwNTUxNCwgMC4wMDU1NTgsIDAuMDA1NTc2LCAwLjAwNTU4OCwgMC4wMDU1OTYsIDAuMDA1NjAzIiwgXAotICAgICAgICAgICIwLjAwNTI4NCwgMC4wMDU0ODcsIDAuMDA1NTM2LCAwLjAwNTU1MywgMC4wMDU1NjYsIDAuMDA1NTczLCAwLjAwNTU4MSIsIFwKLSAgICAgICAgICAiMC4wMDUyNzYsIDAuMDA1NDY5LCAwLjAwNTUxNywgMC4wMDU1MzMsIDAuMDA1NTUsIDAuMDA1NTU4LCAwLjAwNTU2NCIsIFwKLSAgICAgICAgICAiMC4wMDUyNTcsIDAuMDA1NDUsIDAuMDA1NSwgMC4wMDU1MTgsIDAuMDA1NTM0LCAwLjAwNTU0MywgMC4wMDU1NTEiLCBcCi0gICAgICAgICAgIjAuMDA1MjYxLCAwLjAwNTQ0MSwgMC4wMDU0OTMsIDAuMDA1NTEyLCAwLjAwNTUyOSwgMC4wMDU1MzksIDAuMDA1NTQ4IiwgXAotICAgICAgICAgICIwLjAwNTI3OCwgMC4wMDU0NDIsIDAuMDA1NDk1LCAwLjAwNTUxNCwgMC4wMDU1MzIsIDAuMDA1NTQyLCAwLjAwNTU1MSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA3MDU4LCAwLjAwNzI1MywgMC4wMDcyOTksIDAuMDA3MzEzLCAwLjAwNzMyOCwgMC4wMDczMzQsIDAuMDA3MzQyIiwgXAotICAgICAgICAgICIwLjAwNzA1OSwgMC4wMDcyNTMsIDAuMDA3Mjk5LCAwLjAwNzMxNSwgMC4wMDczMjgsIDAuMDA3MzM1LCAwLjAwNzM0MiIsIFwKLSAgICAgICAgICAiMC4wMDcwNTUsIDAuMDA3MjQ5LCAwLjAwNzI5NywgMC4wMDczMTQsIDAuMDA3MzI5LCAwLjAwNzMzOSwgMC4wMDczNDYiLCBcCi0gICAgICAgICAgIjAuMDA3MDYyLCAwLjAwNzI0OCwgMC4wMDcyOTgsIDAuMDA3MzE2LCAwLjAwNzMzMywgMC4wMDczNDIsIDAuMDA3MzUiLCBcCi0gICAgICAgICAgIjAuMDA3MDYyLCAwLjAwNzI0NCwgMC4wMDcyOTYsIDAuMDA3MzE1LCAwLjAwNzMzMiwgMC4wMDczNDMsIDAuMDA3MzUxIiwgXAotICAgICAgICAgICIwLjAwNzA3NiwgMC4wMDcyNDYsIDAuMDA3MywgMC4wMDczMiwgMC4wMDczMzgsIDAuMDA3MzQ5LCAwLjAwNzM1OCIsIFwKLSAgICAgICAgICAiMC4wMDcwOTksIDAuMDA3MjUyLCAwLjAwNzMwNiwgMC4wMDczMjYsIDAuMDA3MzQ2LCAwLjAwNzM1NiwgMC4wMDczNjgiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFMpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC45NDI2OTY7Ci0gICAgZnVuY3Rpb24gOiAiKChBXkIpXkNJKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTA2MywgMC4xOTQ0MTgsIDAuMjY3Nzg4LCAwLjMxOTcwOSwgMC40MDI2NjUsIDAuNDc1MjE4LCAwLjU3ODc4MiIsIFwKLSAgICAgICAgICAiMC4xMTg2NTYsIDAuMjAyNDM5LCAwLjI3NTczNSwgMC4zMjc2NDYsIDAuNDEwNjI0LCAwLjQ4MzE1MSwgMC41ODY4NzQiLCBcCi0gICAgICAgICAgIjAuMTI3ODI0LCAwLjIxMTU2NSwgMC4yODQ4NzksIDAuMzM2Nzg1LCAwLjQxOTc4NiwgMC40OTIyOTIsIDAuNTk2MDE2IiwgXAotICAgICAgICAgICIwLjEzNjg2MiwgMC4yMjA0ODMsIDAuMjkzODY5LCAwLjM0NTg0OSwgMC40Mjg4MDIsIDAuNTAxMzM1LCAwLjYwNTA0MyIsIFwKLSAgICAgICAgICAiMC4xNDU4MDQsIDAuMjI5MzgzLCAwLjMwMjY4OCwgMC4zNTQ2MSwgMC40Mzc2MDQsIDAuNTEwMjA5LCAwLjYxMzc2MyIsIFwKLSAgICAgICAgICAiMC4xNTk3NzgsIDAuMjQzNDU5LCAwLjMxNjc4MSwgMC4zNjg3MTcsIDAuNDUxNjczLCAwLjUyNDIxMiwgMC42Mjc5MTUiLCBcCi0gICAgICAgICAgIjAuMTcxNDU5LCAwLjI1NDk3MSwgMC4zMjgzMDUsIDAuMzgwMjMxLCAwLjQ2MzIyMiwgMC41MzU3NjYsIDAuNjM5MzYyIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQ5MTI4LCAwLjE5MDAyMiwgMC4zMzU1NjQsIDAuNDQwNDk4LCAwLjYxMDQzMSwgMC43NTk2NzcsIDAuOTcyOTM5IiwgXAotICAgICAgICAgICIwLjA0OTAzOCwgMC4xODk4NDMsIDAuMzM1MjM2LCAwLjQ0MDUwMiwgMC42MTA1MDMsIDAuNzU4NDg5LCAwLjk3MDkzNCIsIFwKLSAgICAgICAgICAiMC4wNDg4NzMsIDAuMTg5OTMzLCAwLjMzNTIyNCwgMC40NDA0NzMsIDAuNjEwNTgzLCAwLjc1ODQzLCAwLjk3MDkzMiIsIFwKLSAgICAgICAgICAiMC4wNDg2MTQsIDAuMTg5OTEsIDAuMzM1Mjg1LCAwLjQ0MDQyLCAwLjYxMDQxLCAwLjc1ODUzOSwgMC45NzA2OTciLCBcCi0gICAgICAgICAgIjAuMDQ4NTYzLCAwLjE4OTkwMiwgMC4zMzU1MSwgMC40NDA0NzQsIDAuNjEwNjU1LCAwLjc1Nzc4MiwgMC45NzExODYiLCBcCi0gICAgICAgICAgIjAuMDQ4OTM1LCAwLjE5MDA4NiwgMC4zMzU1NDgsIDAuNDQwNDY2LCAwLjYxMDM0MywgMC43NTg1MDQsIDAuOTcwNjc2IiwgXAotICAgICAgICAgICIwLjA0OTQ5LCAwLjE5MDQyOCwgMC4zMzU0MzEsIDAuNDQwOTQxLCAwLjYxMDYxMSwgMC43NTk1NTUsIDAuOTcwOTEyIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTE1MjQ2LCAwLjIwMTY0MSwgMC4yNzYzOTksIDAuMzI5MTgsIDAuNDEzNDM2LCAwLjQ4NzEwMywgMC41OTIzNDciLCBcCi0gICAgICAgICAgIjAuMTIzNDExLCAwLjIwOTgyLCAwLjI4NDU4OCwgMC4zMzczNjksIDAuNDIxNjMxLCAwLjQ5NTI5NCwgMC42MDA0OTciLCBcCi0gICAgICAgICAgIjAuMTMyMDgzLCAwLjIxODM2MywgMC4yOTMxOTgsIDAuMzQ1OTg1LCAwLjQzMDI0NywgMC41MDM5MTYsIDAuNjA5MTE4IiwgXAotICAgICAgICAgICIwLjE0MDE5NywgMC4yMjY1MiwgMC4zMDEyNzIsIDAuMzU0MDUzLCAwLjQzODM2MSwgMC41MTE5OTYsIDAuNjE3MjAyIiwgXAotICAgICAgICAgICIwLjE0ODEwNiwgMC4yMzQzODksIDAuMzA5MTQ0LCAwLjM2MTk0OCwgMC40NDYyMDksIDAuNTE5ODcxLCAwLjYyNTEwNSIsIFwKLSAgICAgICAgICAiMC4xNjAxMjUsIDAuMjQ2NTk5LCAwLjMyMTM3MSwgMC4zNzQxNjMsIDAuNDU4NDc4LCAwLjUzMjExLCAwLjYzNzMyIiwgXAotICAgICAgICAgICIwLjE3MDMyNywgMC4yNTcwMDYsIDAuMzMxNzgsIDAuMzg0NTY1LCAwLjQ2ODgyMywgMC41NDI0ODYsIDAuNjQ3Njg0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDUwMjAyLCAwLjE5MTU5OSwgMC4zMzYwNTQsIDAuNDQxMDA4LCAwLjYxMDI2MywgMC43NTg2NDMsIDAuOTY5MzQ5IiwgXAotICAgICAgICAgICIwLjA1MDE5OSwgMC4xOTE1ODksIDAuMzM2MDY3LCAwLjQ0MTMwOCwgMC42MTAyMzYsIDAuNzU4NjM3LCAwLjk2OTc2NiIsIFwKLSAgICAgICAgICAiMC4wNTAwMjksIDAuMTkxNDk4LCAwLjMzNjA1MiwgMC40NDEzMjgsIDAuNjEwMjM0LCAwLjc1ODYyNiwgMC45Njk3NSIsIFwKLSAgICAgICAgICAiMC4wNDk4NzEsIDAuMTkxNTUxLCAwLjMzNjA0NiwgMC40NDEyNzUsIDAuNjEwNDM0LCAwLjc1ODYxMiwgMC45Njk4MDYiLCBcCi0gICAgICAgICAgIjAuMDQ5NzQzLCAwLjE5MTUsIDAuMzM2MDQzLCAwLjQ0MDQ1LCAwLjYxMDIsIDAuNzU4NjE4LCAwLjk3MDIzNSIsIFwKLSAgICAgICAgICAiMC4wNTAzMjMsIDAuMTkxNzQ0LCAwLjMzNjEyNCwgMC40NDA1MzksIDAuNjEwNDc3LCAwLjc1ODY1OCwgMC45Njk4MzYiLCBcCi0gICAgICAgICAgIjAuMDUxMTEsIDAuMTkxOTUyLCAwLjMzNjMxMywgMC40NDA3NzMsIDAuNjEwMzM1LCAwLjc1ODcxMSwgMC45NzEyODEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNTk4NTYsIDAuMjM1MzY3LCAwLjMwNzU5NiwgMC4zNTkyNzQsIDAuNDQxOTc5LCAwLjUxNDM2MiwgMC42MTc4NTgiLCBcCi0gICAgICAgICAgIjAuMTY5MjkyLCAwLjI0NDc3NywgMC4zMTcwMDUsIDAuMzY4NjY3LCAwLjQ1MTM4MSwgMC41MjM3NzQsIDAuNjI3MjAyIiwgXAotICAgICAgICAgICIwLjE3OTU0OSwgMC4yNTUwNTQsIDAuMzI3Mjg2LCAwLjM3ODk1OCwgMC40NjE2NzYsIDAuNTM0MDY5LCAwLjYzNzU3NyIsIFwKLSAgICAgICAgICAiMC4xODk1NDEsIDAuMjY1MDQ4LCAwLjMzNzI2OSwgMC4zODg5NTksIDAuNDcxNjQ3LCAwLjU0NDExMiwgMC42NDc0NjEiLCBcCi0gICAgICAgICAgIjAuMTk5MTk2LCAwLjI3NDY4MywgMC4zNDY5MDksIDAuMzk4NTY4LCAwLjQ4MTI4NywgMC41NTM2NzYsIDAuNjU3MSIsIFwKLSAgICAgICAgICAiMC4yMTQxMjQsIDAuMjg5NTgxLCAwLjM2MTc0MywgMC40MTM1MDIsIDAuNDk2MjE0LCAwLjU2ODY4NCwgMC42NzIwMzIiLCBcCi0gICAgICAgICAgIjAuMjI2MzUxLCAwLjMwMTY4MywgMC4zNzM5MSwgMC40MjU2NzQsIDAuNTA4Mjc0LCAwLjU4MDcxMSwgMC42ODQxODEiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDQyOTksIDAuMTg0NDYzLCAwLjMzMDc2NywgMC40MzcwMzIsIDAuNjA3MzQyLCAwLjc1NjcwMywgMC45NzAzNiIsIFwKLSAgICAgICAgICAiMC4wNDQyOTgsIDAuMTg0NTcyLCAwLjMzMDg2NiwgMC40MzY5OTQsIDAuNjA3MzE0LCAwLjc1NjE0NSwgMC45NzAyNDIiLCBcCi0gICAgICAgICAgIjAuMDQ0MzAzLCAwLjE4NDU3NywgMC4zMzA4NiwgMC40MzY4NTUsIDAuNjA3MzQ3LCAwLjc1NjcxOCwgMC45NzAyMjgiLCBcCi0gICAgICAgICAgIjAuMDQ0MjkxLCAwLjE4NDU3NiwgMC4zMzA3NjUsIDAuNDM2OTc3LCAwLjYwNzMwNCwgMC43NTY1NSwgMC45NzAzMzIiLCBcCi0gICAgICAgICAgIjAuMDQ0Mzc4LCAwLjE4NDU2NCwgMC4zMzA4NiwgMC40MzY4NTksIDAuNjA3MTE1LCAwLjc1NTc0NCwgMC45NzAyMzciLCBcCi0gICAgICAgICAgIjAuMDQ0MzMzLCAwLjE4NDU5NywgMC4zMzA3NywgMC40MzY4NiwgMC42MDc0MDUsIDAuNzU2NDMxLCAwLjk3MDIxMiIsIFwKLSAgICAgICAgICAiMC4wNDQzNTQsIDAuMTg0NjAzLCAwLjMzMDc2LCAwLjQzNzAyLCAwLjYwNjUzMiwgMC43NTU1NDIsIDAuOTcwMjQyIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTU3NTYzLCAwLjIzNjc3NCwgMC4zMTA0MjEsIDAuMzYyODc5LCAwLjQ0Njg3MiwgMC41MjA0MTcsIDAuNjI1NDk4IiwgXAotICAgICAgICAgICIwLjE2NzAxOCwgMC4yNDU1NjYsIDAuMzE5MTg1LCAwLjM3MTY2MywgMC40NTU2NiwgMC41MjkxOTIsIDAuNjM0MzE0IiwgXAotICAgICAgICAgICIwLjE3ODAxNiwgMC4yNTY0NjEsIDAuMzMwMDg1LCAwLjM4MjU1NCwgMC40NjY1NDYsIDAuNTQwMDc4LCAwLjY0NTIwMiIsIFwKLSAgICAgICAgICAiMC4xODg4MzUsIDAuMjY3MzMsIDAuMzQwOTUyLCAwLjM5MzQzOCwgMC40Nzc0MzUsIDAuNTUwOTM1LCAwLjY1NjExMSIsIFwKLSAgICAgICAgICAiMC4xOTk0NjksIDAuMjc3ODg5LCAwLjM1MTUyLCAwLjQwMzk5NSwgMC40ODc5OTcsIDAuNTYxNTE5LCAwLjY2NjY1OSIsIFwKLSAgICAgICAgICAiMC4yMTU3MjEsIDAuMjk0MjQ0LCAwLjM2Nzg0LCAwLjQyMDMxNSwgMC41MDQzMTMsIDAuNTc3OTE4LCAwLjY4MzAwNSIsIFwKLSAgICAgICAgICAiMC4yMjkyNTksIDAuMzA3ODAxLCAwLjM4MTQxMSwgMC40MzM4ODgsIDAuNTE3ODgzLCAwLjU5MTQwNCwgMC42OTY1NDMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDYxOTUsIDAuMTg2NDAyLCAwLjMzMTM0NiwgMC40MzY2MzEsIDAuNjA1NjQsIDAuNzUzOTM5LCAwLjk2NzcyIiwgXAotICAgICAgICAgICIwLjA0NjI0OCwgMC4xODYzMzYsIDAuMzMxNDQxLCAwLjQzNjQ0NCwgMC42MDU4MjUsIDAuNzU0MTQsIDAuOTY3MjMiLCBcCi0gICAgICAgICAgIjAuMDQ2MjQ2LCAwLjE4NjM0OSwgMC4zMzE0OTQsIDAuNDM2NjE3LCAwLjYwNTQyMywgMC43NTQzNzgsIDAuOTY2MDIiLCBcCi0gICAgICAgICAgIjAuMDQ2MTksIDAuMTg2Mzc0LCAwLjMzMTQyMywgMC40MzY0MjIsIDAuNjA1OTQyLCAwLjc1NDQzLCAwLjk2NjQ1MiIsIFwKLSAgICAgICAgICAiMC4wNDYyMzgsIDAuMTg2MzczLCAwLjMzMTQ2MSwgMC40MzY0MywgMC42MDU4NywgMC43NTQwODUsIDAuOTY3MzA0IiwgXAotICAgICAgICAgICIwLjA0NjI3MSwgMC4xODY0MSwgMC4zMzE1MTgsIDAuNDM2NDAxLCAwLjYwNTM1MywgMC43NTM4ODIsIDAuOTY3MyIsIFwKLSAgICAgICAgICAiMC4wNDYyOTgsIDAuMTg2MzgyLCAwLjMzMTYyMiwgMC40MzYzNzUsIDAuNjA1NzU2LCAwLjc1NDM3NSwgMC45NjYyNzciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDg1NTgsIDAuMTkyMzM3LCAwLjI2NTY2OCwgMC4zMTc1ODgsIDAuNDAwNTQzLCAwLjQ3MzE4MSwgMC41NzY3MDgiLCBcCi0gICAgICAgICAgIjAuMTE2OTIzLCAwLjIwMDY3OCwgMC4yNzM5NzcsIDAuMzI1ODk2LCAwLjQwODg1NCwgMC40ODEzOSwgMC41ODQ5ODIiLCBcCi0gICAgICAgICAgIjAuMTI3NTgyLCAwLjIxMTIzOCwgMC4yODQ1OTYsIDAuMzM2NTQ1LCAwLjQxOTUwMywgMC40OTIwMzMsIDAuNTk1NzU1IiwgXAotICAgICAgICAgICIwLjEzODE3NCwgMC4yMjE4NCwgMC4yOTUyMjgsIDAuMzQ3MTY2LCAwLjQzMDEyNSwgMC41MDI2NTQsIDAuNjA2MzAyIiwgXAotICAgICAgICAgICIwLjE0ODcyLCAwLjIzMjMzNiwgMC4zMDU2MjUsIDAuMzU3NTgxLCAwLjQ0MDU0NSwgMC41MTMwNzcsIDAuNjE2NzI1IiwgXAotICAgICAgICAgICIwLjE2NTMwMiwgMC4yNDg1NTgsIDAuMzIxODM5LCAwLjM3Mzc5MywgMC40NTY3NTUsIDAuNTI5Mjc3LCAwLjYzMjkxNyIsIFwKLSAgICAgICAgICAiMC4xNzg3MjksIDAuMjYyNzQ4LCAwLjMzNjA5NCwgMC4zODgwMTQsIDAuNDcwOTI5LCAwLjU0MzUxNCwgMC42NDcxMTMiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDkwOTMsIDAuMTkwMDA5LCAwLjMzNTUxNSwgMC40NDA1NDMsIDAuNjEwNDQsIDAuNzU4MTg3LCAwLjk3MjkwMSIsIFwKLSAgICAgICAgICAiMC4wNDg5NzIsIDAuMTg5OTc1LCAwLjMzNTIyNiwgMC40NDA1MTgsIDAuNjEwNDAxLCAwLjc1ODQ1MywgMC45NzE2MjUiLCBcCi0gICAgICAgICAgIjAuMDQ4ODgzLCAwLjE4OTkzMSwgMC4zMzU0MzcsIDAuNDQwNDQzLCAwLjYxMDQwMiwgMC43NTg0NzgsIDAuOTcwOTMyIiwgXAotICAgICAgICAgICIwLjA0ODU1MywgMC4xODk5MDIsIDAuMzM1MTg3LCAwLjQ0MDQxOCwgMC42MTAzODksIDAuNzU4NDUxLCAwLjk3MTE1IiwgXAotICAgICAgICAgICIwLjA0ODU2MiwgMC4xODk4OTIsIDAuMzM1MTgsIDAuNDQwNDE5LCAwLjYxMDM4NywgMC43NTg0MDQsIDAuOTcxMTQ4IiwgXAotICAgICAgICAgICIwLjA0ODk3OCwgMC4xOTAyNTUsIDAuMzM1MjMzLCAwLjQ0MDU2NywgMC42MTAzODcsIDAuNzU5MzUsIDAuOTcxMTgxIiwgXAotICAgICAgICAgICIwLjA0OTk2NiwgMC4xOTAzMzUsIDAuMzM1Mzg0LCAwLjQ0MDYyMywgMC42MTA0MDMsIDAuNzU5MTE1LCAwLjk3MTU2NCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExMjIzOSwgMC4xOTg2NjQsIDAuMjczNDM5LCAwLjMyNjIxNywgMC40MTA0OTEsIDAuNDg0MTU4LCAwLjU4OTM1OCIsIFwKLSAgICAgICAgICAiMC4xMjA1NTksIDAuMjA2OTgyLCAwLjI4MTczMiwgMC4zMzQ1MjMsIDAuNDE4Nzg1LCAwLjQ5MjQ0OCwgMC41OTc2NTkiLCBcCi0gICAgICAgICAgIjAuMTMwNDUzLCAwLjIxNjg2NywgMC4yOTE2MTksIDAuMzQ0NDE0LCAwLjQyODY3NywgMC41MDIzNDMsIDAuNjA3NTU4IiwgXAotICAgICAgICAgICIwLjE0MDI2NiwgMC4yMjY2ODMsIDAuMzAxNDM2LCAwLjM1NDI0MSwgMC40Mzg1MDcsIDAuNTEyMTcxLCAwLjYxNzM4NSIsIFwKLSAgICAgICAgICAiMC4xNTAxNjYsIDAuMjM2NDMyLCAwLjMxMTIwMiwgMC4zNjM5OTEsIDAuNDQ4MjU5LCAwLjUyMTkyNywgMC42MjcxMyIsIFwKLSAgICAgICAgICAiMC4xNjQ5MSwgMC4yNTE1MjEsIDAuMzI2MzA2LCAwLjM3OTExOCwgMC40NjMzOTUsIDAuNTM3MDQ1LCAwLjY0MjI2NSIsIFwKLSAgICAgICAgICAiMC4xNzc2NDcsIDAuMjY0NDEsIDAuMzM5MTcxLCAwLjM5MTk1OCwgMC40NzYyNSwgMC41NDk5MTgsIDAuNjU1MTEzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDUwMDg0LCAwLjE5MTYxMSwgMC4zMzYwNzgsIDAuNDQwNzk2LCAwLjYxMDIxMiwgMC43NTg2MzYsIDAuOTY5NzEiLCBcCi0gICAgICAgICAgIjAuMDUwMDA4LCAwLjE5MTU2OCwgMC4zMzYwODMsIDAuNDQwOTYyLCAwLjYxMDIzNSwgMC43NTg1NjYsIDAuOTY5NzkzIiwgXAotICAgICAgICAgICIwLjA0OTk0MywgMC4xOTE1NDgsIDAuMzM2MDcxLCAwLjQ0MDk1MywgMC42MTAyMjUsIDAuNzU4NTkzLCAwLjk2OTgyOSIsIFwKLSAgICAgICAgICAiMC4wNDk3OTEsIDAuMTkxNTMxLCAwLjMzNjA2LCAwLjQ0MDk0MywgMC42MTAyMjEsIDAuNzU4NjA1LCAwLjk2OTg1NiIsIFwKLSAgICAgICAgICAiMC4wNDk4MjcsIDAuMTkxNTQsIDAuMzM2MDQ3LCAwLjQ0MDQ0MSwgMC42MTAyMTcsIDAuNzU4NjE3LCAwLjk3MTI1MiIsIFwKLSAgICAgICAgICAiMC4wNTExNjEsIDAuMTkxODQ0LCAwLjMzNjEyMywgMC40NDEzNTksIDAuNjEwMzI0LCAwLjc1ODY1MywgMC45Njk4NjgiLCBcCi0gICAgICAgICAgIjAuMDUxMzA5LCAwLjE5MTk3NiwgMC4zMzYzMTEsIDAuNDQxMTM0LCAwLjYxMDQwNCwgMC43NTg3NiwgMC45Njk3MjMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNjA2MDQsIDAuMjM2MTE3LCAwLjMwODQyNywgMC4zNjAxMzUsIDAuNDQyODc2LCAwLjUxNTMwNSwgMC42MTg3MzgiLCBcCi0gICAgICAgICAgIjAuMTY5NzU0LCAwLjI0NTMyOSwgMC4zMTc2NTIsIDAuMzY5MzUzLCAwLjQ1MjEwNiwgMC41MjQ1NTksIDAuNjI4MDA3IiwgXAotICAgICAgICAgICIwLjE3OTg5OCwgMC4yNTU1MTEsIDAuMzI3NzE0LCAwLjM3OTQxNSwgMC40NjIxNjgsIDAuNTM0NjIxLCAwLjYzODA2OSIsIFwKLSAgICAgICAgICAiMC4xODk2NDMsIDAuMjY1Mjc4LCAwLjMzNzUxMiwgMC4zODkyMDIsIDAuNDcxOTk4LCAwLjU0NDM5OSwgMC42NDc4NDgiLCBcCi0gICAgICAgICAgIjAuMTk5MTAxLCAwLjI3NDY1MSwgMC4zNDY5NzUsIDAuMzk4Njc2LCAwLjQ4MTQyOCwgMC41NTM4NzgsIDAuNjU3MzMyIiwgXAotICAgICAgICAgICIwLjIxNDc3NiwgMC4yOTExMzUsIDAuMzYzMzcyLCAwLjQxNDk4MiwgMC40OTc2NzMsIDAuNTcwMDg5LCAwLjY3MzQ4NyIsIFwKLSAgICAgICAgICAiMC4yMjkzNjYsIDAuMzA1NTQ2LCAwLjM3NzkxNywgMC40Mjk1NDgsIDAuNTEyMDQyLCAwLjU4NDczNCwgMC42ODc4NTQiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDM5MjYsIDAuMTg0NTQ0LCAwLjMzMDczNSwgMC40MzY5NDcsIDAuNjA3MzgxLCAwLjc1NjgwOSwgMC45NzAyNTgiLCBcCi0gICAgICAgICAgIjAuMDQzOTY1LCAwLjE4NDU0MiwgMC4zMzA3MzQsIDAuNDM2OTUsIDAuNjA3MTM4LCAwLjc1NDgxOCwgMC45NzAzODQiLCBcCi0gICAgICAgICAgIjAuMDQzOTksIDAuMTg0NTExLCAwLjMzMDg0MSwgMC40MzY5NTQsIDAuNjA3MTAxLCAwLjc1NjUyNCwgMC45NzAzOTEiLCBcCi0gICAgICAgICAgIjAuMDQzOTg3LCAwLjE4NDUxNywgMC4zMzA3NDcsIDAuNDM2OTU4LCAwLjYwNzU0NiwgMC43NTY2ODUsIDAuOTcwMzY4IiwgXAotICAgICAgICAgICIwLjA0Mzk5NywgMC4xODQ1NDIsIDAuMzMwNzQ1LCAwLjQzNjk1MiwgMC42MDcxMjYsIDAuNzU1NTk3LCAwLjk3MDM3OCIsIFwKLSAgICAgICAgICAiMC4wNDQwMDgsIDAuMTg0NTQzLCAwLjMzMDgzOSwgMC40MzcxMTgsIDAuNjA3MTEyLCAwLjc1Njk3OCwgMC45NzAzMjYiLCBcCi0gICAgICAgICAgIjAuMDQ0MDQ1LCAwLjE4NDU0LCAwLjMzMDgyMywgMC40MzcxMTgsIDAuNjA3NTE4LCAwLjc1NjkwMSwgMC45NzAyMTMiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNTY0MTgsIDAuMjM2MDE2LCAwLjMwOTY3MSwgMC4zNjIxMzQsIDAuNDQ2MTMzLCAwLjUxOTY2MiwgMC42MjQ3MTQiLCBcCi0gICAgICAgICAgIjAuMTY1NDc5LCAwLjI0NTA3NSwgMC4zMTg3MTcsIDAuMzcxMTg3LCAwLjQ1NTE4NSwgMC41Mjg3MjMsIDAuNjMzODIxIiwgXAotICAgICAgICAgICIwLjE3NzExMSwgMC4yNTY3MDUsIDAuMzMwMzM4LCAwLjM4MjgwOCwgMC40NjY4MDIsIDAuNTQwMzM4LCAwLjY0NTQ1IiwgXAotICAgICAgICAgICIwLjE4ODg2NSwgMC4yNjg0NTgsIDAuMzQyMDg4LCAwLjM5NDU2NCwgMC40Nzg1NTgsIDAuNTUyMDkxLCAwLjY1NzIxIiwgXAotICAgICAgICAgICIwLjIwMDU0NCwgMC4yODAwODQsIDAuMzUzODcyLCAwLjQwNjM3NSwgMC40OTAzNDUsIDAuNTYzODc5LCAwLjY2OTAyNSIsIFwKLSAgICAgICAgICAiMC4yMTkxMywgMC4yOTg0OCwgMC4zNzIxMDksIDAuNDI0NTc1LCAwLjUwODU3MiwgMC41ODIwOTksIDAuNjg3MjI5IiwgXAotICAgICAgICAgICIwLjIzNDY0MiwgMC4zMTQwMTYsIDAuMzg3NTgxLCAwLjQ0MDA0NSwgMC41MjQwNCwgMC41OTc1NywgMC43MDI3NzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDU0NjgsIDAuMTg2MTU4LCAwLjMzMTQzLCAwLjQzNjUyNCwgMC42MDU4NTEsIDAuNzU0NzA0LCAwLjk2NjQ5OSIsIFwKLSAgICAgICAgICAiMC4wNDU0NTQsIDAuMTg2MDgzLCAwLjMzMTQ1MywgMC40MzY2MDYsIDAuNjA1NTkxLCAwLjc1MzkwNywgMC45Njc2OTEiLCBcCi0gICAgICAgICAgIjAuMDQ1NDMzLCAwLjE4NjE3MSwgMC4zMzE1MTQsIDAuNDM2NTg2LCAwLjYwNTc4OSwgMC43NTQ1ODgsIDAuOTY2NzAxIiwgXAotICAgICAgICAgICIwLjA0NTQ0LCAwLjE4NjE3MiwgMC4zMzE0NTYsIDAuNDM2NTc4LCAwLjYwNTc4NCwgMC43NTQxMDUsIDAuOTY3NDc1IiwgXAotICAgICAgICAgICIwLjA0NTQ1OCwgMC4xODYyMjcsIDAuMzMxMjU4LCAwLjQzNjQwNywgMC42MDU0LCAwLjc1NDA2OCwgMC45Njc0NDYiLCBcCi0gICAgICAgICAgIjAuMDQ1NDM3LCAwLjE4NjIzNCwgMC4zMzEzNzksIDAuNDM2NDE2LCAwLjYwNTc4NCwgMC43NTQxMDEsIDAuOTY3MzY4IiwgXAotICAgICAgICAgICIwLjA0NTQ1MSwgMC4xODYyMjUsIDAuMzMxMzY4LCAwLjQzNjQxLCAwLjYwNTQwMywgMC43NTQxMDIsIDAuOTY3NTA3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNJIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwODIsIDAuMTkxOTkxLCAwLjI2NTM1MywgMC4zMTcyNzYsIDAuNDAwMjc0LCAwLjQ3Mjc4NywgMC41NzY0OTUiLCBcCi0gICAgICAgICAgIjAuMTE2NDM5LCAwLjIwMDE4NiwgMC4yNzM1MywgMC4zMjU0NSwgMC40MDg0MDEsIDAuNDgxMDM3LCAwLjU4NDU5MSIsIFwKLSAgICAgICAgICAiMC4xMjY4MTgsIDAuMjEwNTUxLCAwLjI4MzkzOCwgMC4zMzU4NjMsIDAuNDE4ODE1LCAwLjQ5MTM1NCwgMC41OTUwNDgiLCBcCi0gICAgICAgICAgIjAuMTM3ODI1LCAwLjIyMTUzLCAwLjI5NDg1MywgMC4zNDY4MDcsIDAuNDI5NzY0LCAwLjUwMjMwMiwgMC42MDYwMDMiLCBcCi0gICAgICAgICAgIjAuMTQ4OTkzLCAwLjIzMjYzNiwgMC4zMDU5NDQsIDAuMzU3ODk2LCAwLjQ0MDg2MywgMC41MTMzNzcsIDAuNjE3MDM3IiwgXAotICAgICAgICAgICIwLjE2Njg0LCAwLjI1MDMyNywgMC4zMjM1OTQsIDAuMzc1NTEyLCAwLjQ1ODQ3OCwgMC41MzEwMzYsIDAuNjM0NjAyIiwgXAotICAgICAgICAgICIwLjE4MTg5MywgMC4yNjU2MjQsIDAuMzM4OTI4LCAwLjM5MDg0MywgMC40NzM4MDQsIDAuNTQ2MzU2LCAwLjY0OTkyMSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0OTIyOCwgMC4xOTAwNTYsIDAuMzM1NjA0LCAwLjQ0MDUzNiwgMC42MTA3NzgsIDAuNzU4NTkyLCAwLjk3MDc3MSIsIFwKLSAgICAgICAgICAiMC4wNDkwNzUsIDAuMTg5OTkyLCAwLjMzNTUzNiwgMC40NDA0NjksIDAuNjEwNDM2LCAwLjc1Nzk0MywgMC45NzI5NzMiLCBcCi0gICAgICAgICAgIjAuMDQ4ODI5LCAwLjE4OTkzNSwgMC4zMzU0NjgsIDAuNDQwNDUsIDAuNjEwNDA3LCAwLjc1ODYwMywgMC45NzA5MDUiLCBcCi0gICAgICAgICAgIjAuMDQ4NjIyLCAwLjE4OTksIDAuMzM1NDUsIDAuNDQwNDA2LCAwLjYxMDMzMywgMC43NTg1MzQsIDAuOTcwODk4IiwgXAotICAgICAgICAgICIwLjA0ODU4NiwgMC4xODk4OTcsIDAuMzM1MTY4LCAwLjQ0MDM5OSwgMC42MTAzNzIsIDAuNzU4NDYxLCAwLjk3MTE3OSIsIFwKLSAgICAgICAgICAiMC4wNDg4OTQsIDAuMTkwMDYzLCAwLjMzNTU1OSwgMC40NDA0NTksIDAuNjEwNDIzLCAwLjc1OTUzNCwgMC45NzIzMjYiLCBcCi0gICAgICAgICAgIjAuMDUwMTA3LCAwLjE5MDQ1NywgMC4zMzU2OSwgMC40NDA2NDYsIDAuNjEwNDA4LCAwLjc1OTQ2MiwgMC45NzEzNDciKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDgyNzYsIDAuMTk0NzUzLCAwLjI2OTUyMywgMC4zMjIzMSwgMC40MDY1NzMsIDAuNDgwMjg3LCAwLjU4NTU1MiIsIFwKLSAgICAgICAgICAiMC4xMTYzMjksIDAuMjAyNzQ1LCAwLjI3NzUxMywgMC4zMzAyOTcsIDAuNDE0NTg0LCAwLjQ4ODI0MywgMC41OTM0NDgiLCBcCi0gICAgICAgICAgIjAuMTI2NTUzLCAwLjIxMjk5NSwgMC4yODc3NjgsIDAuMzQwNTU1LCAwLjQyNDg0NiwgMC40OTg0OTksIDAuNjAzNzA2IiwgXAotICAgICAgICAgICIwLjEzNzYyOSwgMC4yMjM5NDMsIDAuMjk4NzIxLCAwLjM1MTUxNSwgMC40MzU3ODIsIDAuNTA5NDY0LCAwLjYxNDY1NCIsIFwKLSAgICAgICAgICAiMC4xNDg1ODEsIDAuMjM0ODU1LCAwLjMwOTYzMiwgMC4zNjI0NCwgMC40NDY3MDksIDAuNTIwMzc2LCAwLjYyNTYiLCBcCi0gICAgICAgICAgIjAuMTY1NjQ3LCAwLjI1MTk0MywgMC4zMjY3MTYsIDAuMzc5NTA3LCAwLjQ2Mzc3NywgMC41Mzc0NywgMC42NDI2NjIiLCBcCi0gICAgICAgICAgIjAuMTc5ODgzLCAwLjI2NjY1MSwgMC4zNDE0MTQsIDAuMzk0MjA4LCAwLjQ3ODQ3NiwgMC41NTIxNTcsIDAuNjU3Mzc2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDUwMDc2LCAwLjE5MTU4MiwgMC4zMzYwNDIsIDAuNDQwODc2LCAwLjYxMDI1MiwgMC43NTg4NTYsIDAuOTY5MDQxIiwgXAotICAgICAgICAgICIwLjA0OTk4NywgMC4xOTE0NDIsIDAuMzM2MDYyLCAwLjQ0MTI0NSwgMC42MTAyMjMsIDAuNzU4NjAzLCAwLjk2OTc0IiwgXAotICAgICAgICAgICIwLjA0OTk4NSwgMC4xOTE1NTcsIDAuMzM2MDMsIDAuNDQxMDA2LCAwLjYxMDMxNSwgMC43NTg2NCwgMC45Njk3MzkiLCBcCi0gICAgICAgICAgIjAuMDQ5ODMzLCAwLjE5MTU1MSwgMC4zMzYwMjYsIDAuNDQxMDA3LCAwLjYxMDIyLCAwLjc1ODY1MiwgMC45NzA4ODciLCBcCi0gICAgICAgICAgIjAuMDQ5ODQ2LCAwLjE5MTUyMywgMC4zMzYwNjYsIDAuNDQwOTY5LCAwLjYxMDIyLCAwLjc1ODYxOSwgMC45NzAwMDIiLCBcCi0gICAgICAgICAgIjAuMDUwNTgyLCAwLjE5MjAwNSwgMC4zMzYyNDYsIDAuNDQxMTkzLCAwLjYxMDI4OSwgMC43NTg3NTcsIDAuOTY5NzI4IiwgXAotICAgICAgICAgICIwLjA1MTY4MiwgMC4xOTIwODIsIDAuMzM2Mjg3LCAwLjQ0MDY0OSwgMC42MTAzMDUsIDAuNzU3NTM5LCAwLjk3MTQyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNTMzNDIsIDAuMjI4OTg5LCAwLjMwMTI5NiwgMC4zNTMwMzksIDAuNDM1Nzc3LCAwLjUwODI2OSwgMC42MTE2NTUiLCBcCi0gICAgICAgICAgIjAuMTYyNjU1LCAwLjIzODI5NCwgMC4zMTA2MDMsIDAuMzYyMzQyLCAwLjQ0NTA4MywgMC41MTc1NzUsIDAuNjIwOTYxIiwgXAotICAgICAgICAgICIwLjE3NDUzNiwgMC4yNTAxNywgMC4zMjI0NjksIDAuMzc0MjE2LCAwLjQ1Njk0OCwgMC41Mjk0MzYsIDAuNjMyODIyIiwgXAotICAgICAgICAgICIwLjE4NjM0OSwgMC4yNjE4MzQsIDAuMzM0MTY5LCAwLjM4NTg1OSwgMC40Njg2MiwgMC41NDEwMzcsIDAuNjQ0NTc3IiwgXAotICAgICAgICAgICIwLjE5ODA3MiwgMC4yNzM2MDIsIDAuMzQ1OTI4LCAwLjM5NzYyOCwgMC40ODA0NjksIDAuNTUyODMsIDAuNjU2MjkzIiwgXAotICAgICAgICAgICIwLjIxNTgyOCwgMC4yOTEyMjcsIDAuMzYzNTIsIDAuNDE1MjI1LCAwLjQ5Nzk4NCwgMC41NzA0ODYsIDAuNjczOTE2IiwgXAotICAgICAgICAgICIwLjIzMDA3OSwgMC4zMDU0MTEsIDAuMzc3NzE5LCAwLjQyOTQxMSwgMC41MTIxNjMsIDAuNTg0NjcsIDAuNjg4MDQzIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQyNzksIDAuMTgzOTc4LCAwLjMzMDY0LCAwLjQzNzEzOCwgMC42MDY4MywgMC43NTcwMDcsIDAuOTcwMzM3IiwgXAotICAgICAgICAgICIwLjA0Mjc3MiwgMC4xODM5NzYsIDAuMzMwNjQ1LCAwLjQzNzEzNywgMC42MDY4MzIsIDAuNzU3MDA4LCAwLjk3MDMzNiIsIFwKLSAgICAgICAgICAiMC4wNDI3NTMsIDAuMTgzOTU3LCAwLjMzMDYzNywgMC40MzcxMzMsIDAuNjA2OTcsIDAuNzU3MDAxLCAwLjk3MDMzNCIsIFwKLSAgICAgICAgICAiMC4wNDI2OTcsIDAuMTgzOTc4LCAwLjMzMDksIDAuNDM2NzkzLCAwLjYwNzUwNSwgMC43NTY4MiwgMC45NzAyNDQiLCBcCi0gICAgICAgICAgIjAuMDQyNzQ1LCAwLjE4Mzk1MiwgMC4zMzA2MjYsIDAuNDM2OTYzLCAwLjYwNzMzLCAwLjc1NjY4NywgMC45NzAzNTUiLCBcCi0gICAgICAgICAgIjAuMDQyNzc2LCAwLjE4Mzk4MSwgMC4zMzA2NTgsIDAuNDM2OTE2LCAwLjYwNzQ5NiwgMC43NTY4MzgsIDAuOTcwMzY3IiwgXAotICAgICAgICAgICIwLjA0MjgyNywgMC4xODM5NTcsIDAuMzMwNzExLCAwLjQzNjk0OSwgMC42MDczMDQsIDAuNzU1NTg3LCAwLjk3MDM1Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTUxOTk2LCAwLjIyOTU0LCAwLjMwMzA1MywgMC4zNTU1NTcsIDAuNDM5NTc1LCAwLjUxMzE0NiwgMC42MTgxNiIsIFwKLSAgICAgICAgICAiMC4xNjEyOTcsIDAuMjM4OTQ2LCAwLjMxMjQ3OCwgMC4zNjQ5NzEsIDAuNDQ4OTksIDAuNTIyNTUxLCAwLjYyNzY2NCIsIFwKLSAgICAgICAgICAiMC4xNzI4MzIsIDAuMjUwNDI5LCAwLjMyMzk0MSwgMC4zNzY0NDgsIDAuNDYwNDYyLCAwLjUzMzk5NiwgMC42MzkwOTQiLCBcCi0gICAgICAgICAgIjAuMTg0NTU4LCAwLjI2MjE4NiwgMC4zMzU3MTMsIDAuMzg4MjAyLCAwLjQ3MjIyOSwgMC41NDU3OTcsIDAuNjUwODc2IiwgXAotICAgICAgICAgICIwLjE5NjM2NSwgMC4yNzM5LCAwLjM0NzQxOCwgMC4zOTk5MzMsIDAuNDgzOTQxLCAwLjU1NzUzMSwgMC42NjI2MTIiLCBcCi0gICAgICAgICAgIjAuMjE0NTgzLCAwLjI5MTk4MiwgMC4zNjU2NiwgMC40MTgxNDksIDAuNTAyMTY0LCAwLjU3NTcwNSwgMC42ODA2NzEiLCBcCi0gICAgICAgICAgIjAuMjI5NSwgMC4zMDY3NzUsIDAuMzgwMjcxLCAwLjQzMjc1NywgMC41MTY3NzksIDAuNTkwMzYxLCAwLjY5NTQ5NSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0Mjg3NywgMC4xODQ0MTksIDAuMzMwNTM0LCAwLjQzNTgzMSwgMC42MDU0MTEsIDAuNzU0NDY4LCAwLjk2NzQ0NSIsIFwKLSAgICAgICAgICAiMC4wNDI4NDcsIDAuMTg0NDM5LCAwLjMzMDQ5OSwgMC40MzU3OCwgMC42MDU0NDUsIDAuNzUzODY1LCAwLjk2NzM4NiIsIFwKLSAgICAgICAgICAiMC4wNDI4MjIsIDAuMTg0NDI3LCAwLjMzMDUxMSwgMC40MzU5NDksIDAuNjA1NDE5LCAwLjc1NDI5OCwgMC45NjczNTUiLCBcCi0gICAgICAgICAgIjAuMDQyODcxLCAwLjE4NDQ0LCAwLjMzMDUzLCAwLjQzNTgyMiwgMC42MDUzOTYsIDAuNzUzNzk4LCAwLjk2NzM3NyIsIFwKLSAgICAgICAgICAiMC4wNDI5MDMsIDAuMTg0NDIzLCAwLjMzMDUxMiwgMC40MzU5NSwgMC42MDU0MTQsIDAuNzU0MzMxLCAwLjk2NzM1IiwgXAotICAgICAgICAgICIwLjA0MjkyNSwgMC4xODQ0NjcsIDAuMzMwNTI1LCAwLjQzNTk3NSwgMC42MDUzNSwgMC43NTQzMzYsIDAuOTY3Mjc3IiwgXAotICAgICAgICAgICIwLjA0Mjk0NSwgMC4xODQ0MTMsIDAuMzMwNTA3LCAwLjQzNTc3NywgMC42MDUzNTIsIDAuNzUzODA3LCAwLjk2NzI3NiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA3NTQ1LCAwLjAwNzc1MSwgMC4wMDc3OTcsIDAuMDA3ODEyLCAwLjAwNzgyNiwgMC4wMDc4MzMsIDAuMDA3ODM5IiwgXAotICAgICAgICAgICIwLjAwNzUzMSwgMC4wMDc3MzcsIDAuMDA3NzgzLCAwLjAwNzc5OCwgMC4wMDc4MTIsIDAuMDA3ODE5LCAwLjAwNzgyNiIsIFwKLSAgICAgICAgICAiMC4wMDc1MjIsIDAuMDA3NzI2LCAwLjAwNzc3MywgMC4wMDc3ODksIDAuMDA3ODAzLCAwLjAwNzgxMSwgMC4wMDc4MTgiLCBcCi0gICAgICAgICAgIjAuMDA3NTE0LCAwLjAwNzcxNywgMC4wMDc3NjUsIDAuMDA3NzgxLCAwLjAwNzc5NiwgMC4wMDc4MDUsIDAuMDA3ODExIiwgXAotICAgICAgICAgICIwLjAwNzUxMywgMC4wMDc3MSwgMC4wMDc3NTksIDAuMDA3Nzc2LCAwLjAwNzc5MiwgMC4wMDc4LCAwLjAwNzgwOSIsIFwKLSAgICAgICAgICAiMC4wMDc1MiwgMC4wMDc2OTksIDAuMDA3NzUxLCAwLjAwNzc2OSwgMC4wMDc3ODYsIDAuMDA3Nzk1LCAwLjAwNzgwMyIsIFwKLSAgICAgICAgICAiMC4wMDc1MjMsIDAuMDA3Njk2LCAwLjAwNzc0NywgMC4wMDc3NjgsIDAuMDA3Nzg2LCAwLjAwNzc5NSwgMC4wMDc4MDMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNTEwNywgMC4wMDUzMDgsIDAuMDA1MzUyLCAwLjAwNTM2NywgMC4wMDUzODEsIDAuMDA1Mzg4LCAwLjAwNTM5NSIsIFwKLSAgICAgICAgICAiMC4wMDUwNywgMC4wMDUyNzUsIDAuMDA1MzIsIDAuMDA1MzM2LCAwLjAwNTM1MSwgMC4wMDUzNTYsIDAuMDA1MzY0IiwgXAotICAgICAgICAgICIwLjAwNTA1MiwgMC4wMDUyNTgsIDAuMDA1MzA2LCAwLjAwNTMyLCAwLjAwNTMzNSwgMC4wMDUzNDIsIDAuMDA1MzUiLCBcCi0gICAgICAgICAgIjAuMDA1MDQ3LCAwLjAwNTI0OCwgMC4wMDUyOTUsIDAuMDA1MzEyLCAwLjAwNTMyNywgMC4wMDUzMzQsIDAuMDA1MzQxIiwgXAotICAgICAgICAgICIwLjAwNTA0MSwgMC4wMDUyMzgsIDAuMDA1Mjg3LCAwLjAwNTMwNCwgMC4wMDUzMiwgMC4wMDUzMjgsIDAuMDA1MzM1IiwgXAotICAgICAgICAgICIwLjAwNTA0OSwgMC4wMDUyMywgMC4wMDUyODEsIDAuMDA1Mjk4LCAwLjAwNTMxNSwgMC4wMDUzMjQsIDAuMDA1MzMyIiwgXAotICAgICAgICAgICIwLjAwNTA1NCwgMC4wMDUyMjQsIDAuMDA1Mjc2LCAwLjAwNTI5NCwgMC4wMDUzMTIsIDAuMDA1MzIyLCAwLjAwNTMzMSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA3NDE1LCAwLjAwNzYxNywgMC4wMDc2NjIsIDAuMDA3Njc2LCAwLjAwNzY5MSwgMC4wMDc2OTgsIDAuMDA3NzA0IiwgXAotICAgICAgICAgICIwLjAwNzQwMSwgMC4wMDc2MDQsIDAuMDA3NjQ5LCAwLjAwNzY2NCwgMC4wMDc2NzgsIDAuMDA3Njg1LCAwLjAwNzY5MiIsIFwKLSAgICAgICAgICAiMC4wMDczNzMsIDAuMDA3NTgsIDAuMDA3NjI2LCAwLjAwNzY0MiwgMC4wMDc2NTYsIDAuMDA3NjY0LCAwLjAwNzY3MSIsIFwKLSAgICAgICAgICAiMC4wMDczNTYsIDAuMDA3NTU3LCAwLjAwNzYwNiwgMC4wMDc2MiwgMC4wMDc2MzcsIDAuMDA3NjQzLCAwLjAwNzY1MSIsIFwKLSAgICAgICAgICAiMC4wMDczMzksIDAuMDA3NTM3LCAwLjAwNzU4NywgMC4wMDc2MDQsIDAuMDA3NjE4LCAwLjAwNzYyNywgMC4wMDc2MzQiLCBcCi0gICAgICAgICAgIjAuMDA3MzQxLCAwLjAwNzUyMSwgMC4wMDc1NzIsIDAuMDA3NTg4LCAwLjAwNzYwNSwgMC4wMDc2MTQsIDAuMDA3NjIyIiwgXAotICAgICAgICAgICIwLjAwNzMzOSwgMC4wMDc1MSwgMC4wMDc1NjEsIDAuMDA3NTc5LCAwLjAwNzU5NSwgMC4wMDc2MDQsIDAuMDA3NjEzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDUzMTYsIDAuMDA1NTE5LCAwLjAwNTU2MywgMC4wMDU1NzcsIDAuMDA1NTksIDAuMDA1NTk3LCAwLjAwNTYwMyIsIFwKLSAgICAgICAgICAiMC4wMDUyODMsIDAuMDA1NDg4LCAwLjAwNTUzMiwgMC4wMDU1NDcsIDAuMDA1NTYyLCAwLjAwNTU2NywgMC4wMDU1NzMiLCBcCi0gICAgICAgICAgIjAuMDA1MjQ4LCAwLjAwNTQ1NSwgMC4wMDU1MDEsIDAuMDA1NTE3LCAwLjAwNTUzMSwgMC4wMDU1MzgsIDAuMDA1NTQ0IiwgXAotICAgICAgICAgICIwLjAwNTIzNSwgMC4wMDU0MzUsIDAuMDA1NDgsIDAuMDA1NSwgMC4wMDU1MTQsIDAuMDA1NTE5LCAwLjAwNTUyNiIsIFwKLSAgICAgICAgICAiMC4wMDUyMzQsIDAuMDA1NDIyLCAwLjAwNTQ3LCAwLjAwNTQ4NiwgMC4wMDU1MDMsIDAuMDA1NTExLCAwLjAwNTUxOCIsIFwKLSAgICAgICAgICAiMC4wMDUyNTQsIDAuMDA1NDE0LCAwLjAwNTQ2MywgMC4wMDU0ODEsIDAuMDA1NDk4LCAwLjAwNTUwNiwgMC4wMDU1MTQiLCBcCi0gICAgICAgICAgIjAuMDA1MjM1LCAwLjAwNTQwNiwgMC4wMDU0NTksIDAuMDA1NDc4LCAwLjAwNTQ5NywgMC4wMDU1MDUsIDAuMDA1NTEzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0kiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA3MDU4LCAwLjAwNzI1MywgMC4wMDcyOTksIDAuMDA3MzEzLCAwLjAwNzMyOCwgMC4wMDczMzQsIDAuMDA3MzQyIiwgXAotICAgICAgICAgICIwLjAwNzA1OSwgMC4wMDcyNTMsIDAuMDA3Mjk5LCAwLjAwNzMxNSwgMC4wMDczMjgsIDAuMDA3MzM1LCAwLjAwNzM0MiIsIFwKLSAgICAgICAgICAiMC4wMDcwNTUsIDAuMDA3MjQ5LCAwLjAwNzI5NywgMC4wMDczMTQsIDAuMDA3MzI5LCAwLjAwNzMzOSwgMC4wMDczNDYiLCBcCi0gICAgICAgICAgIjAuMDA3MDYyLCAwLjAwNzI0OCwgMC4wMDcyOTgsIDAuMDA3MzE2LCAwLjAwNzMzMywgMC4wMDczNDIsIDAuMDA3MzUiLCBcCi0gICAgICAgICAgIjAuMDA3MDYyLCAwLjAwNzI0NCwgMC4wMDcyOTYsIDAuMDA3MzE1LCAwLjAwNzMzMiwgMC4wMDczNDMsIDAuMDA3MzUxIiwgXAotICAgICAgICAgICIwLjAwNzA3NiwgMC4wMDcyNDYsIDAuMDA3MywgMC4wMDczMiwgMC4wMDczMzgsIDAuMDA3MzQ5LCAwLjAwNzM1OCIsIFwKLSAgICAgICAgICAiMC4wMDcwOTksIDAuMDA3MjUyLCAwLjAwNzMwNiwgMC4wMDczMjYsIDAuMDA3MzQ2LCAwLjAwNzM1NiwgMC4wMDczNjgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNTMyMSwgMC4wMDU1MjYsIDAuMDA1NTcxLCAwLjAwNTU4NCwgMC4wMDU1OTksIDAuMDA1NjA2LCAwLjAwNTYxMyIsIFwKLSAgICAgICAgICAiMC4wMDUzMDgsIDAuMDA1NTE0LCAwLjAwNTU1OCwgMC4wMDU1NzYsIDAuMDA1NTg4LCAwLjAwNTU5NiwgMC4wMDU2MDMiLCBcCi0gICAgICAgICAgIjAuMDA1Mjg0LCAwLjAwNTQ4NywgMC4wMDU1MzYsIDAuMDA1NTUzLCAwLjAwNTU2NiwgMC4wMDU1NzMsIDAuMDA1NTgxIiwgXAotICAgICAgICAgICIwLjAwNTI3NiwgMC4wMDU0NjksIDAuMDA1NTE3LCAwLjAwNTUzMywgMC4wMDU1NSwgMC4wMDU1NTgsIDAuMDA1NTY0IiwgXAotICAgICAgICAgICIwLjAwNTI1NywgMC4wMDU0NSwgMC4wMDU1LCAwLjAwNTUxOCwgMC4wMDU1MzQsIDAuMDA1NTQzLCAwLjAwNTU1MSIsIFwKLSAgICAgICAgICAiMC4wMDUyNjEsIDAuMDA1NDQxLCAwLjAwNTQ5MywgMC4wMDU1MTIsIDAuMDA1NTI5LCAwLjAwNTUzOSwgMC4wMDU1NDgiLCBcCi0gICAgICAgICAgIjAuMDA1Mjc4LCAwLjAwNTQ0MiwgMC4wMDU0OTUsIDAuMDA1NTE0LCAwLjAwNTUzMiwgMC4wMDU1NDIsIDAuMDA1NTUxIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogQURERkhYTCAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChBRERGSFhMKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMzg0MTgxOwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDMwMDgxNTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDI5ODc2NTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDMwMDgxNTsKLSAgfQotICBwaW4oQikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAyOTg1NzY7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAyOTcwMjg7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAyOTg1NzY7Ci0gIH0KLSAgcGluKENJKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDIyNTMwMTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDIyMzkxNTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDIyNTMwMTsKLSAgfQotICBwaW4oQ08pICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4yMTE0NzM7Ci0gICAgZnVuY3Rpb24gOiAiKCgoQSBCKSsoQiBDSSkpKyhDSSBBKSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEyMTcyLCAwLjEzMjIwMiwgMC4yMjQ0MjQsIDAuMzc3NDgzLCAwLjUyOTg2NSwgMC44ODU2NiwgMS4wODg5MSIsIFwKLSAgICAgICAgICAiMC4xMzExODksIDAuMTQxNjUxLCAwLjIzMzg2NywgMC4zODY1NjcsIDAuNTM5MDU2LCAwLjg5NDQ0OCwgMS4wOTc0IiwgXAotICAgICAgICAgICIwLjE0MjIzOSwgMC4xNTI3MiwgMC4yNDQ5NTMsIDAuMzk3ODU4LCAwLjU0OTgxNSwgMC45MDUyNzMsIDEuMTA4NDkiLCBcCi0gICAgICAgICAgIjAuMTUzMDA1LCAwLjE2MzQ3NiwgMC4yNTU3MTksIDAuNDA4NTczLCAwLjU2MTA4OSwgMC45MTYxMSwgMS4xMTkyNyIsIFwKLSAgICAgICAgICAiMC4xNjMzODksIDAuMTczODY3LCAwLjI2NjEyMSwgMC40MTg5NTMsIDAuNTcwOTg4LCAwLjkyNjQyNSwgMS4xMjk2OCIsIFwKLSAgICAgICAgICAiMC4xNzg5MjEsIDAuMTg5MzkxLCAwLjI4MTYzNywgMC40MzQ0ODgsIDAuNTg2NTE4LCAwLjk0MTk5MiwgMS4xNDUyMiIsIFwKLSAgICAgICAgICAiMC4xOTE0NjQsIDAuMjAxOTg2LCAwLjI5NDI1NiwgMC40NDczMjIsIDAuNTk5NDMxLCAwLjk1NTMzNywgMS4xNTc4OSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMjA0MzEsIDAuMTQxMjA3LCAwLjMyNDkwNywgMC42MzczODcsIDAuOTUxODI5LCAxLjY4NDk4LCAyLjEwNDI1IiwgXAotICAgICAgICAgICIwLjEyMDQyNiwgMC4xNDEyNDYsIDAuMzI0NjQsIDAuNjM3MzI4LCAwLjk1MDcxOSwgMS42ODQ4NywgMi4xMDM5NyIsIFwKLSAgICAgICAgICAiMC4xMjAzNzgsIDAuMTQxMTUsIDAuMzI0OTMzLCAwLjYzNzI3MiwgMC45NTA0OTEsIDEuNjg0ODEsIDIuMTAzOTIiLCBcCi0gICAgICAgICAgIjAuMTIxMTU4LCAwLjE0MTIyNywgMC4zMjUxNDYsIDAuNjM3MzU3LCAwLjk1MTcwMiwgMS42ODQ3OSwgMi4xMDQwNiIsIFwKLSAgICAgICAgICAiMC4xMjAwMzgsIDAuMTQxMjY1LCAwLjMyNTAyMiwgMC42MzczNTksIDAuOTUwMTM4LCAxLjY4NDc5LCAyLjEwNDA0IiwgXAotICAgICAgICAgICIwLjEyMTQwNywgMC4xNDE5MTMsIDAuMzI1NTQzLCAwLjYzNzM2NiwgMC45NTA4NjksIDEuNjg0NzksIDIuMTA0MDQiLCBcCi0gICAgICAgICAgIjAuMTIxNjM1LCAwLjE0MjU3NiwgMC4zMjUzNTIsIDAuNjM3OTc0LCAwLjk1MTQ3OSwgMS42ODQ0NywgMi4xMDM3Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEyNDg2OCwgMC4xMzU0MywgMC4yMjc1ODMsIDAuMzgwNzM2LCAwLjUzMzQ1MywgMC44ODg4NTMsIDEuMDkyNyIsIFwKLSAgICAgICAgICAiMC4xMzQxOTQsIDAuMTQ0NzQxLCAwLjIzNjkwMywgMC4zODk5MSwgMC41NDE5OSwgMC44OTc5MTMsIDEuMTAxMjEiLCBcCi0gICAgICAgICAgIjAuMTQ0NDUsIDAuMTU1MDEzLCAwLjI0NzE3MiwgMC40MDAxNDYsIDAuNTUyNzIzLCAwLjkwODQyMywgMS4xMTExOSIsIFwKLSAgICAgICAgICAiMC4xNTQyMTksIDAuMTY0NzcyLCAwLjI1Njk0MiwgMC40MDk5MjEsIDAuNTYyNDk0LCAwLjkxODQxLCAxLjEyMDkxIiwgXAotICAgICAgICAgICIwLjE2MzU4MSwgMC4xNzQxMzQsIDAuMjY2NTg3LCAwLjQxOTMxNywgMC41NzEzMjUsIDAuOTI3MDU1LCAxLjEzMDI4IiwgXAotICAgICAgICAgICIwLjE3NzUyNCwgMC4xODgwOTgsIDAuMjgwNTA2LCAwLjQzMjczLCAwLjU4NTM3NSwgMC45NDEwMzIsIDEuMTQ0MjciLCBcCi0gICAgICAgICAgIjAuMTg4NjU0LCAwLjE5OTI2MywgMC4yOTE3NjYsIDAuNDQ0NDc1LCAwLjU5NjYzNiwgMC45NTI4MDYsIDEuMTU1NTEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTE4ODE5LCAwLjEzOTE0MiwgMC4zMTkzNDcsIDAuNjIzMTY4LCAwLjkyOTUwMSwgMS42NDI3OCwgMi4wNTU0MiIsIFwKLSAgICAgICAgICAiMC4xMTg5ODEsIDAuMTM5MTE3LCAwLjMxOTM1LCAwLjYyMzE3NywgMC45Mjk0NDcsIDEuNjQ2MjQsIDIuMDU1NTEiLCBcCi0gICAgICAgICAgIjAuMTE4ODc4LCAwLjEzODY3NywgMC4zMTkzNTEsIDAuNjIzMTc5LCAwLjkyODU2OCwgMS42NDYxMiwgMi4wNTQ5MyIsIFwKLSAgICAgICAgICAiMC4xMTg5LCAwLjEzOTE2NiwgMC4zMTkzMzcsIDAuNjIyNzgzLCAwLjkyOTY5MiwgMS42NDUzNSwgMi4wNTUyNSIsIFwKLSAgICAgICAgICAiMC4xMTkwMTEsIDAuMTM5MTkxLCAwLjMxOTM2NCwgMC42MjMxMywgMC45Mjg1NzksIDEuNjQ1NjQsIDIuMDU1MjgiLCBcCi0gICAgICAgICAgIjAuMTE5MzAxLCAwLjEzOTgyMSwgMC4zMTk0OTIsIDAuNjIzMTIzLCAwLjkyOTcwMSwgMS42NDUwOSwgMi4wNTU0NCIsIFwKLSAgICAgICAgICAiMC4xMjA1LCAwLjE0MDU0MSwgMC4zMTk2OTIsIDAuNjIzMDg5LCAwLjkyOTU2MywgMS42NDYyOCwgMi4wNTU1MiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMjE1NSwgMC4xMzIwMjIsIDAuMjI0MzYzLCAwLjM3Nzc0LCAwLjUyOTU0OCwgMC44ODU4OTEsIDEuMDg5MTQiLCBcCi0gICAgICAgICAgIjAuMTMwNDQ2LCAwLjE0MDkxMiwgMC4yMzMyNTgsIDAuMzg2NzEyLCAwLjUzODQ5MywgMC44OTQ4MjMsIDEuMDk4MDIiLCBcCi0gICAgICAgICAgIjAuMTQyMDc5LCAwLjE1MjU0NywgMC4yNDQ3ODksIDAuMzk4MzQ2LCAwLjU1MDE0OSwgMC45MDY0NDcsIDEuMTA5NjgiLCBcCi0gICAgICAgICAgIjAuMTUzNzQ5LCAwLjE2NDI1NywgMC4yNTY1MiwgMC40MTAwNDgsIDAuNTYxODM0LCAwLjkxODE0OCwgMS4xMjE0NCIsIFwKLSAgICAgICAgICAiMC4xNjU0OTcsIDAuMTc1OTY2LCAwLjI2ODIyOSwgMC40MjE3NSwgMC41NzQxMDcsIDAuOTI5OTY1LCAxLjEzMzI3IiwgXAotICAgICAgICAgICIwLjE4MzExNCwgMC4xOTM1NzcsIDAuMjg1ODM1LCAwLjQzOTAwMSwgMC41OTEyNzIsIDAuOTQ3Njc2LCAxLjE1MDc3IiwgXAotICAgICAgICAgICIwLjE5Njk3NywgMC4yMDc0NTQsIDAuMjk5NzE1LCAwLjQ1MjY5NywgMC42MDU0NDMsIDAuOTYwNzU4LCAxLjE2NDU5Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEyMDY3LCAwLjE0MTY5NywgMC4zMjUwMTgsIDAuNjM3MjU2LCAwLjk1MDIyMSwgMS42ODUwNCwgMi4xMDQzMyIsIFwKLSAgICAgICAgICAiMC4xMjA1NTcsIDAuMTQxNjk0LCAwLjMyNTI4NCwgMC42MzcxODYsIDAuOTUwOTYzLCAxLjY4NDk0LCAyLjEwNDE3IiwgXAotICAgICAgICAgICIwLjEyMDk4LCAwLjE0MTMyMywgMC4zMjU2NDcsIDAuNjM3MTcxLCAwLjk1MDQ3MSwgMS42ODQ4NywgMi4xMDQxIiwgXAotICAgICAgICAgICIwLjEyMTM4OSwgMC4xNDE4NjUsIDAuMzI0ODE3LCAwLjYzNzE1MywgMC45NTAxNzksIDEuNjg0ODQsIDIuMTA0MDkiLCBcCi0gICAgICAgICAgIjAuMTIwODQ3LCAwLjE0MTU2NywgMC4zMjQ5NTUsIDAuNjM3MTUzLCAwLjk1MTYwMSwgMS42ODQ4NSwgMi4xMDQwNyIsIFwKLSAgICAgICAgICAiMC4xMjI2MDMsIDAuMTQyOTk3LCAwLjMyNTcsIDAuNjM3MTM0LCAwLjk1MDkxMywgMS42ODQ4OCwgMi4xMDQiLCBcCi0gICAgICAgICAgIjAuMTIzNTgxLCAwLjE0Mzc3MSwgMC4zMjYwNjgsIDAuNjM3MiwgMC45NTE1MzgsIDEuNjgyNTYsIDIuMTAzOTYiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTIzOTM1LCAwLjEzNDU4NSwgMC4yMjcwNDksIDAuMzc5OTE3LCAwLjUzMjM0LCAwLjg4ODE3NiwgMS4wOTEwNSIsIFwKLSAgICAgICAgICAiMC4xMzI4NjMsIDAuMTQzNTQ5LCAwLjIzNjAwNCwgMC4zODg5NDYsIDAuNTQxMDM1LCAwLjg5NjcwOSwgMS4wOTk5IiwgXAotICAgICAgICAgICIwLjE0MzA5OSwgMC4xNTM3NywgMC4yNDYyMjMsIDAuMzk5MDk0LCAwLjU1MTgwNCwgMC45MDc2NDUsIDEuMTEwMyIsIFwKLSAgICAgICAgICAiMC4xNTQ0MTcsIDAuMTY0OTgyLCAwLjI1NzMyNywgMC40MTA2NCwgMC41NjMwOTEsIDAuOTE5MTY0LCAxLjEyMjQ1IiwgXAotICAgICAgICAgICIwLjE2NTcwNSwgMC4xNzYyNjcsIDAuMjY4NjQsIDAuNDIxODM4LCAwLjU3NDc1MSwgMC45MzA0NzcsIDEuMTMzNTYiLCBcCi0gICAgICAgICAgIjAuMTgyMjY5LCAwLjE5Mjg1MSwgMC4yODUyMjMsIDAuNDM3OTcxLCAwLjU5MDQ5MiwgMC45NDcwMzgsIDEuMTUwNDEiLCBcCi0gICAgICAgICAgIjAuMTk1MTg4LCAwLjIwNTc2NSwgMC4yOTgzOTEsIDAuNDUxMzgyLCAwLjYwMzY4LCAwLjk2MDAzOSwgMS4xNjI2NiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMjAzMzUsIDAuMTQwNTU4LCAwLjMyMDM0LCAwLjYyMzI2MSwgMC45Mjg1MDcsIDEuNjQ0NzMsIDIuMDU1NSIsIFwKLSAgICAgICAgICAiMC4xMjAwMDMsIDAuMTQwMTMyLCAwLjMyMDM0LCAwLjYyMzA4NiwgMC45MjkwMjgsIDEuNjQ2MTYsIDIuMDU1MDkiLCBcCi0gICAgICAgICAgIjAuMTE5ODg2LCAwLjE0MDE3MSwgMC4zMjAyODksIDAuNjIzMDc1LCAwLjkyODcyLCAxLjY0NjE5LCAyLjA1MTUiLCBcCi0gICAgICAgICAgIjAuMTE5ODcsIDAuMTQwMywgMC4zMjAyOCwgMC42MjMwNCwgMC45MjkzMjgsIDEuNjQ2MTEsIDIuMDU1MjciLCBcCi0gICAgICAgICAgIjAuMTIwNzAyLCAwLjE0MDIyNiwgMC4zMjAzNTgsIDAuNjIzMDU3LCAwLjkyODMzOCwgMS42NDYxMSwgMi4wNTQ4MiIsIFwKLSAgICAgICAgICAiMC4xMjExMDgsIDAuMTQxNzkzLCAwLjMyMDY4OCwgMC42MjMxNTgsIDAuOTI4Njc1LCAxLjY0NiwgMi4wNTU0NSIsIFwKLSAgICAgICAgICAiMC4xMjIzMDksIDAuMTQyNzMzLCAwLjMyMDMyOSwgMC42MjI5NzYsIDAuOTI4NDgxLCAxLjY0NjE0LCAyLjA1MjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNJIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTU4OSwgMC4xMjYzNiwgMC4yMTg1ODMsIDAuMzcxNDc5LCAwLjUyMzQ0MywgMC44Nzg5MDgsIDEuMDgyMTMiLCBcCi0gICAgICAgICAgIjAuMTI1MTg5LCAwLjEzNTY3OCwgMC4yMjc3MDMsIDAuMzgwMTMsIDAuNTMzMDk5LCAwLjg4ODgyNiwgMS4wOTE0MiIsIFwKLSAgICAgICAgICAiMC4xMzY5NTEsIDAuMTQ3NDA2LCAwLjIzOTQ3LCAwLjM5MjU5NiwgMC41NDQ4MjYsIDAuOTAwMDIsIDEuMTAzMTgiLCBcCi0gICAgICAgICAgIjAuMTQ4NjU4LCAwLjE1OTEwNCwgMC4yNTEyMzUsIDAuNDA0MjYzLCAwLjU1NjI0NiwgMC45MTE3NDQsIDEuMTE0OTQiLCBcCi0gICAgICAgICAgIjAuMTYwMzE1LCAwLjE3MDcxOSwgMC4yNjI4MTIsIDAuNDE1ODc4LCAwLjU2Nzc3MywgMC45MjMxODQsIDEuMTI2NTMiLCBcCi0gICAgICAgICAgIjAuMTc3Mzc5LCAwLjE4NzgzMywgMC4yODAwNCwgMC40MzI5OTQsIDAuNTg1MTkyLCAwLjk0MDUzNSwgMS4xNDQwOCIsIFwKLSAgICAgICAgICAiMC4xOTA1NTMsIDAuMjAxMTIzLCAwLjI5MzI3MiwgMC40NDYyNjgsIDAuNTk4MDU1LCAwLjk1MzcxOCwgMS4xNTY4NyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMjEyNjUsIDAuMTQxNDg5LCAwLjMyNDkyMiwgMC42MzczNCwgMC45NTAyNzYsIDEuNjgyMDEsIDIuMTAwODQiLCBcCi0gICAgICAgICAgIjAuMTIxMTI2LCAwLjE0MTQ4MSwgMC4zMjQyMjksIDAuNjM3MTE4LCAwLjk1MDY5MiwgMS42ODQwMiwgMi4xMDA3NSIsIFwKLSAgICAgICAgICAiMC4xMjE1NzksIDAuMTQxNDkyLCAwLjMyNTYxOCwgMC42MzczMiwgMC45NTA2ODcsIDEuNjgyMiwgMi4xMDI2NCIsIFwKLSAgICAgICAgICAiMC4xMjEwMjEsIDAuMTQxNjQ0LCAwLjMyNTE4MSwgMC42MzczMDcsIDAuOTUwMjQ1LCAxLjY4MjI5LCAyLjEwMjQ0IiwgXAotICAgICAgICAgICIwLjEyMTUxMSwgMC4xNDE4NywgMC4zMjU1MDksIDAuNjM3MzA4LCAwLjk1MDI0OSwgMS42ODE0NiwgMi4xMDI0NSIsIFwKLSAgICAgICAgICAiMC4xMjI1NDksIDAuMTQyOTM5LCAwLjMyNTEwOCwgMC42MzcyOTgsIDAuOTUwNjU1LCAxLjY4MjAyLCAyLjEwMzEiLCBcCi0gICAgICAgICAgIjAuMTIzOTQ5LCAwLjE0NDA5NCwgMC4zMjU4NjEsIDAuNjM3MTkyLCAwLjk1MDIzOSwgMS42ODMyNywgMi4xMDIzNyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTkxNDEsIDAuMTI5ODE2LCAwLjIyMjE3OSwgMC4zNzUxMTYsIDAuNTI3MDU5LCAwLjg4Mjg2NSwgMS4wODYxNiIsIFwKLSAgICAgICAgICAiMC4xMjgwNCwgMC4xMzg3MTksIDAuMjMxMDk3LCAwLjM4NDAyOSwgMC41MzU5NjgsIDAuODkxODAxLCAxLjA5NTA4IiwgXAotICAgICAgICAgICIwLjEzOTQ4NCwgMC4xNTAxNTQsIDAuMjQyNTczLCAwLjM5NTUwNCwgMC41NDc2MDgsIDAuOTAzNjU4LCAxLjEwNjU1IiwgXAotICAgICAgICAgICIwLjE1MDk0LCAwLjE2MTU5OSwgMC4yNTQwNDIsIDAuNDA2NzUsIDAuNTU5Mzc5LCAwLjkxNDgxMywgMS4xMTc5OSIsIFwKLSAgICAgICAgICAiMC4xNjE4MzEsIDAuMTcyNTA5LCAwLjI2NDk2MSwgMC40MTc5LCAwLjU3MDM4MywgMC45MjY0NDIsIDEuMTI4OTUiLCBcCi0gICAgICAgICAgIjAuMTc3NzQ1LCAwLjE4ODQ0MSwgMC4yODExNywgMC40MzMzNTEsIDAuNTg2MjYzLCAwLjk0MTY4NywgMS4xNDQ5MSIsIFwKLSAgICAgICAgICAiMC4xODk5NzYsIDAuMjAwNzQ0LCAwLjI5MzQ2OCwgMC40NDYwODgsIDAuNTk4NjcsIDAuOTU0MzMsIDEuMTU3NDkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTIxMjM1LCAwLjE0MDE4MywgMC4zMjAxNjUsIDAuNjIyMjg5LCAwLjkyODU3NywgMS42NDI1NCwgMi4wNDk3MSIsIFwKLSAgICAgICAgICAiMC4xMjAzNDksIDAuMTQwMzI4LCAwLjMyMDE5MiwgMC42MjIyNzYsIDAuOTI3MDY2LCAxLjY0MzE3LCAyLjA1NDM0IiwgXAotICAgICAgICAgICIwLjEyMDI4NCwgMC4xNDA4NzEsIDAuMzIwMjE4LCAwLjYyMjMwNywgMC45MjgzMTQsIDEuNjQ0NiwgMi4wNTM5NCIsIFwKLSAgICAgICAgICAiMC4xMjAzNjYsIDAuMTQwOTg2LCAwLjMyMDI3NCwgMC42MjIxNzcsIDAuOTI4MzkzLCAxLjY0MjUsIDIuMDUwNzIiLCBcCi0gICAgICAgICAgIjAuMTIwNjA1LCAwLjE0MTIxMiwgMC4zMjAzMDksIDAuNjIyMzUyLCAwLjkyODUxNSwgMS42NDI1MSwgMi4wNTA2NCIsIFwKLSAgICAgICAgICAiMC4xMjE4MTksIDAuMTQyMDU2LCAwLjMyMDU3OSwgMC42MjMxMjYsIDAuOTI4NDc3LCAxLjY0MjY0LCAyLjA1MTgiLCBcCi0gICAgICAgICAgIjAuMTIzMTE1LCAwLjE0MzEyNCwgMC4zMTkxOTcsIDAuNjIyMDM4LCAwLjkyODY2MiwgMS42NDU0NCwgMi4wNTM2MyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTkyMSwgMC4wMDE5MjQsIDAuMDAxOTM2LCAwLjAwMTk0MSwgMC4wMDE5NDMsIDAuMDAxOTQ0LCAwLjAwMTk0NSIsIFwKLSAgICAgICAgICAiMC4wMDE4OTUsIDAuMDAxODk4LCAwLjAwMTkxLCAwLjAwMTkxNSwgMC4wMDE5MTcsIDAuMDAxOTIsIDAuMDAxOTIiLCBcCi0gICAgICAgICAgIjAuMDAxODgyLCAwLjAwMTg4NiwgMC4wMDE4OTgsIDAuMDAxOTA0LCAwLjAwMTkwNiwgMC4wMDE5MDgsIDAuMDAxOTA4IiwgXAotICAgICAgICAgICIwLjAwMTg3NywgMC4wMDE4OCwgMC4wMDE4OTMsIDAuMDAxODk5LCAwLjAwMTkwMSwgMC4wMDE5MDMsIDAuMDAxOTAzIiwgXAotICAgICAgICAgICIwLjAwMTg3MSwgMC4wMDE4NzQsIDAuMDAxODg4LCAwLjAwMTg5NCwgMC4wMDE4OTcsIDAuMDAxODk5LCAwLjAwMTkiLCBcCi0gICAgICAgICAgIjAuMDAxODcyLCAwLjAwMTg3NiwgMC4wMDE4ODksIDAuMDAxODk2LCAwLjAwMTg5OSwgMC4wMDE5MDEsIDAuMDAxOTAyIiwgXAotICAgICAgICAgICIwLjAwMTg3NSwgMC4wMDE4NzYsIDAuMDAxODkxLCAwLjAwMTg5OCwgMC4wMDE5LCAwLjAwMTkwNCwgMC4wMDE5MDQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQwMTksIDAuMDA0MDIyLCAwLjAwNDAzNCwgMC4wMDQwMzksIDAuMDA0MDQxLCAwLjAwNDA0MywgMC4wMDQwNDMiLCBcCi0gICAgICAgICAgIjAuMDA0MDA3LCAwLjAwNDAxLCAwLjAwNDAyMiwgMC4wMDQwMjcsIDAuMDA0MDI5LCAwLjAwNDAzMSwgMC4wMDQwMzEiLCBcCi0gICAgICAgICAgIjAuMDAzOTk5LCAwLjAwNDAwMiwgMC4wMDQwMTUsIDAuMDA0MDIsIDAuMDA0MDIyLCAwLjAwNDAyNCwgMC4wMDQwMjUiLCBcCi0gICAgICAgICAgIjAuMDAzOTk1LCAwLjAwMzk5OCwgMC4wMDQwMTEsIDAuMDA0MDE3LCAwLjAwNDAxOSwgMC4wMDQwMjIsIDAuMDA0MDIyIiwgXAotICAgICAgICAgICIwLjAwMzk5NCwgMC4wMDM5OTcsIDAuMDA0MDExLCAwLjAwNDAxNywgMC4wMDQwMTksIDAuMDA0MDIyLCAwLjAwNDAyMyIsIFwKLSAgICAgICAgICAiMC4wMDM5OTIsIDAuMDAzOTk1LCAwLjAwNDAxLCAwLjAwNDAxNiwgMC4wMDQwMTksIDAuMDA0MDIyLCAwLjAwNDAyMiIsIFwKLSAgICAgICAgICAiMC4wMDM5OTQsIDAuMDAzOTk3LCAwLjAwNDAxMSwgMC4wMDQwMTgsIDAuMDA0MDIyLCAwLjAwNDAyNSwgMC4wMDQwMjQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDIwODgsIDAuMDAyMDkxLCAwLjAwMjEwMiwgMC4wMDIxMDcsIDAuMDAyMTA4LCAwLjAwMjExLCAwLjAwMjExIiwgXAotICAgICAgICAgICIwLjAwMjA1OCwgMC4wMDIwNjEsIDAuMDAyMDcyLCAwLjAwMjA3NywgMC4wMDIwNzksIDAuMDAyMDgsIDAuMDAyMDgiLCBcCi0gICAgICAgICAgIjAuMDAyMDMyLCAwLjAwMjAzNiwgMC4wMDIwNDcsIDAuMDAyMDUyLCAwLjAwMjA1NCwgMC4wMDIwNTYsIDAuMDAyMDU2IiwgXAotICAgICAgICAgICIwLjAwMjAyLCAwLjAwMjAyMywgMC4wMDIwMzYsIDAuMDAyMDQxLCAwLjAwMjA0MywgMC4wMDIwNDUsIDAuMDAyMDQ2IiwgXAotICAgICAgICAgICIwLjAwMjAxNywgMC4wMDIwMiwgMC4wMDIwMzMsIDAuMDAyMDM4LCAwLjAwMjA0LCAwLjAwMjA0MiwgMC4wMDIwNDMiLCBcCi0gICAgICAgICAgIjAuMDAyMDE3LCAwLjAwMjAyLCAwLjAwMjAzNCwgMC4wMDIwNCwgMC4wMDIwNDIsIDAuMDAyMDQ1LCAwLjAwMjA0NSIsIFwKLSAgICAgICAgICAiMC4wMDIwMjgsIDAuMDAyMDMxLCAwLjAwMjA0NCwgMC4wMDIwNTEsIDAuMDAyMDUzLCAwLjAwMjA1NSwgMC4wMDIwNTYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDM5MzQsIDAuMDAzOTM3LCAwLjAwMzk0OSwgMC4wMDM5NTUsIDAuMDAzOTU3LCAwLjAwMzk1OCwgMC4wMDM5NTkiLCBcCi0gICAgICAgICAgIjAuMDAzOTE4LCAwLjAwMzkyMSwgMC4wMDM5MzQsIDAuMDAzOTM5LCAwLjAwMzk0MSwgMC4wMDM5NDMsIDAuMDAzOTQzIiwgXAotICAgICAgICAgICIwLjAwMzg5NiwgMC4wMDM4OTksIDAuMDAzOTEyLCAwLjAwMzkxNywgMC4wMDM5MiwgMC4wMDM5MjEsIDAuMDAzOTIyIiwgXAotICAgICAgICAgICIwLjAwMzg3OCwgMC4wMDM4ODEsIDAuMDAzODk0LCAwLjAwMzksIDAuMDAzOTAzLCAwLjAwMzkwNSwgMC4wMDM5MDUiLCBcCi0gICAgICAgICAgIjAuMDAzODY2LCAwLjAwMzg2OSwgMC4wMDM4ODMsIDAuMDAzODksIDAuMDAzODkyLCAwLjAwMzg5NCwgMC4wMDM4OTUiLCBcCi0gICAgICAgICAgIjAuMDAzODU0LCAwLjAwMzg1OCwgMC4wMDM4NzIsIDAuMDAzODc5LCAwLjAwMzg4MiwgMC4wMDM4ODUsIDAuMDAzODg1IiwgXAotICAgICAgICAgICIwLjAwMzg0OSwgMC4wMDM4NDksIDAuMDAzODY0LCAwLjAwMzg3MSwgMC4wMDM4NzQsIDAuMDAzODc2LCAwLjAwMzg3NyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNJIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDIxMDMsIDAuMDAyMTA2LCAwLjAwMjExOCwgMC4wMDIxMjIsIDAuMDAyMTI0LCAwLjAwMjEyNSwgMC4wMDIxMjYiLCBcCi0gICAgICAgICAgIjAuMDAyMDg5LCAwLjAwMjA5MywgMC4wMDIxMDQsIDAuMDAyMTA5LCAwLjAwMjExMSwgMC4wMDIxMTMsIDAuMDAyMTEzIiwgXAotICAgICAgICAgICIwLjAwMjA3MiwgMC4wMDIwNzYsIDAuMDAyMDg4LCAwLjAwMjA5NCwgMC4wMDIwOTYsIDAuMDAyMDk4LCAwLjAwMjA5OCIsIFwKLSAgICAgICAgICAiMC4wMDIwNjQsIDAuMDAyMDY3LCAwLjAwMjA4MSwgMC4wMDIwODcsIDAuMDAyMDg5LCAwLjAwMjA5MSwgMC4wMDIwOTIiLCBcCi0gICAgICAgICAgIjAuMDAyMDYsIDAuMDAyMDYzLCAwLjAwMjA3NywgMC4wMDIwODMsIDAuMDAyMDg2LCAwLjAwMjA4OCwgMC4wMDIwODkiLCBcCi0gICAgICAgICAgIjAuMDAyMDYzLCAwLjAwMjA2NiwgMC4wMDIwOCwgMC4wMDIwODcsIDAuMDAyMDksIDAuMDAyMDkyLCAwLjAwMjA5MyIsIFwKLSAgICAgICAgICAiMC4wMDIwNywgMC4wMDIwNzQsIDAuMDAyMDg4LCAwLjAwMjA5NSwgMC4wMDIwOTgsIDAuMDAyMTAxLCAwLjAwMjEwMiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzYwMSwgMC4wMDM2MDQsIDAuMDAzNjE2LCAwLjAwMzYyMiwgMC4wMDM2MjQsIDAuMDAzNjI2LCAwLjAwMzYyNyIsIFwKLSAgICAgICAgICAiMC4wMDM1OTgsIDAuMDAzNjAxLCAwLjAwMzYxNCwgMC4wMDM2MiwgMC4wMDM2MjIsIDAuMDAzNjI0LCAwLjAwMzYyNSIsIFwKLSAgICAgICAgICAiMC4wMDM1OTksIDAuMDAzNjAyLCAwLjAwMzYxNiwgMC4wMDM2MjIsIDAuMDAzNjI0LCAwLjAwMzYyNywgMC4wMDM2MjciLCBcCi0gICAgICAgICAgIjAuMDAzNjA0LCAwLjAwMzYwNywgMC4wMDM2MjEsIDAuMDAzNjI4LCAwLjAwMzYzMSwgMC4wMDM2MzQsIDAuMDAzNjM0IiwgXAotICAgICAgICAgICIwLjAwMzYwOSwgMC4wMDM2MTMsIDAuMDAzNjI4LCAwLjAwMzYzNSwgMC4wMDM2MzgsIDAuMDAzNjQsIDAuMDAzNjQxIiwgXAotICAgICAgICAgICIwLjAwMzYyLCAwLjAwMzYyNCwgMC4wMDM2MzksIDAuMDAzNjQ2LCAwLjAwMzY1LCAwLjAwMzY1MiwgMC4wMDM2NTMiLCBcCi0gICAgICAgICAgIjAuMDAzNjMsIDAuMDAzNjMxLCAwLjAwMzY0OSwgMC4wMDM2NTgsIDAuMDAzNjYsIDAuMDAzNjYzLCAwLjAwMzY2NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUykgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjIwNzUyMTsKLSAgICBmdW5jdGlvbiA6ICIoKEFeQileQ0kpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMjcxNzMsIDAuMTM3NTg1LCAwLjIyOTczMiwgMC4zODI2MDcsIDAuNTM1MTkzLCAwLjg5MTEsIDEuMDk0MzkiLCBcCi0gICAgICAgICAgIjAuMTM1MTMxLCAwLjE0NTQ0NywgMC4yMzc1OTUsIDAuMzkwNTE3LCAwLjU0MzA1NywgMC44OTg5OTMsIDEuMTAyMjkiLCBcCi0gICAgICAgICAgIjAuMTQ0MjA2LCAwLjE1NDYxMiwgMC4yNDY3NDEsIDAuMzk5NjY4LCAwLjU1MjIxMSwgMC45MDgxNiwgMS4xMTE0MyIsIFwKLSAgICAgICAgICAiMC4xNTMwMDgsIDAuMTYzNDA5LCAwLjI1NTU1LCAwLjQwODQ3NiwgMC41NjEwMTcsIDAuOTE2OTM3LCAxLjEyMDI5IiwgXAotICAgICAgICAgICIwLjE2MTYsIDAuMTcxOTk1LCAwLjI2NDE0NywgMC40MTcwMTMsIDAuNTY5NjEsIDAuOTI1NTI2LCAxLjEyODg3IiwgXAotICAgICAgICAgICIwLjE3NDc3NCwgMC4xODUxNzQsIDAuMjc3MzYzLCAwLjQzMDI0MywgMC41ODI4MjEsIDAuOTM4NzI5LCAxLjE0MjA0IiwgXAotICAgICAgICAgICIwLjE4NTU3NywgMC4xOTU5ODQsIDAuMjg4MjE4LCAwLjQ0MTA2MywgMC41OTM2NzMsIDAuOTQ5NTQzLCAxLjE1Mjg4Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExODY3NSwgMC4xMzg5MDEsIDAuMzI0Nzk5LCAwLjYzODMyOSwgMC45NTExMiwgMS42ODI2MiwgMi4xMDIxOCIsIFwKLSAgICAgICAgICAiMC4xMTg2NjIsIDAuMTM4NzU0LCAwLjMyNDM1MiwgMC42MzY5MywgMC45NTE5MzMsIDEuNjg0MjMsIDIuMTAyNiIsIFwKLSAgICAgICAgICAiMC4xMTg2MTUsIDAuMTM4ODYsIDAuMzI0NjM0LCAwLjYzNjkyOCwgMC45NTE5MDYsIDEuNjg0MDYsIDIuMTAyNTkiLCBcCi0gICAgICAgICAgIjAuMTE4NiwgMC4xMzg4NDcsIDAuMzI0NjI4LCAwLjYzNjkxOCwgMC45NTIyMTMsIDEuNjgzNDcsIDIuMTAzMjUiLCBcCi0gICAgICAgICAgIjAuMTE4Nzg5LCAwLjEzOTAwMSwgMC4zMjQ2MjcsIDAuNjM4MDYzLCAwLjk1MjIwNywgMS42ODM1MSwgMi4xMDMyMyIsIFwKLSAgICAgICAgICAiMC4xMTkxOCwgMC4xMzkyOTQsIDAuMzI0NDc4LCAwLjYzNzEwOCwgMC45NTIxMDEsIDEuNjgzNDEsIDIuMTAzMDYiLCBcCi0gICAgICAgICAgIjAuMTE5NTU2LCAwLjEzOTczOCwgMC4zMjQ5NTksIDAuNjM3MzQ5LCAwLjk1MjExOCwgMS42ODM5OCwgMi4xMDI5NiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMjk5NzUsIDAuMTQwNDgxLCAwLjIzMjgzNywgMC4zODU3MTIsIDAuNTM4Mzc2LCAwLjg5NDM0OSwgMS4wOTc4NSIsIFwKLSAgICAgICAgICAiMC4xMzgwOTQsIDAuMTQ4NiwgMC4yNDA5NTIsIDAuMzkzODE4LCAwLjU0NjUxNywgMC45MDI0NjEsIDEuMTA1ODQiLCBcCi0gICAgICAgICAgIjAuMTQ2NjMsIDAuMTU3MTQ0LCAwLjI0OTUwOCwgMC40MDIzOTgsIDAuNTU1MDc3LCAwLjkxMTAzMSwgMS4xMTQzOSIsIFwKLSAgICAgICAgICAiMC4xNTQ1NjIsIDAuMTY1MDczLCAwLjI1NzQ0MiwgMC40MTAzMywgMC41NjI5ODEsIDAuOTE4OTY1LCAxLjEyMjMyIiwgXAotICAgICAgICAgICIwLjE2MjEzMywgMC4xNzI2NDgsIDAuMjY1MDI4LCAwLjQxNzkwNywgMC41NzA1OTEsIDAuOTI2NTQ2LCAxLjEyOTkxIiwgXAotICAgICAgICAgICIwLjE3MzMxNSwgMC4xODM4NjMsIDAuMjc2MzA2LCAwLjQyOTE3NSwgMC41ODE4MjgsIDAuOTM3ODE0LCAxLjE0MTE3IiwgXAotICAgICAgICAgICIwLjE4MjQxNywgMC4xOTI5MjEsIDAuMjg1NDA3LCAwLjQzODMyNCwgMC41OTEwMDYsIDAuOTQ3MDYyLCAxLjE1MDM0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExNzU5MSwgMC4xMzcyMjIsIDAuMzE3NTkyLCAwLjYyMjYxMSwgMC45Mjg2MTksIDEuNjQ0OTQsIDIuMDU1MDMiLCBcCi0gICAgICAgICAgIjAuMTE3NTIxLCAwLjEzNzIzLCAwLjMxNzU0NSwgMC42MjIzODEsIDAuOTI5NzYyLCAxLjY0NTAzLCAyLjA1NDM2IiwgXAotICAgICAgICAgICIwLjExNzU2MywgMC4xMzcyMTIsIDAuMzE3NTQ0LCAwLjYyMzQ5NSwgMC45Mjk3NjYsIDEuNjQ0OTgsIDIuMDUyODgiLCBcCi0gICAgICAgICAgIjAuMTE3NTU0LCAwLjEzNzIyNCwgMC4zMTc2NDcsIDAuNjIyNzIsIDAuOTI4NjM5LCAxLjY0MzYyLCAyLjA1NDE5IiwgXAotICAgICAgICAgICIwLjExNzcyLCAwLjEzNzM1MywgMC4zMTc2MzksIDAuNjIyNTMsIDAuOTI5ODMsIDEuNjQ0OCwgMi4wNTQzMyIsIFwKLSAgICAgICAgICAiMC4xMTgyMiwgMC4xMzc3OTQsIDAuMzE4MTQyLCAwLjYyMjY0NywgMC45MzAwNjYsIDEuNjQ0NzIsIDIuMDU0MzgiLCBcCi0gICAgICAgICAgIjAuMTE4NzgxLCAwLjEzODM1NiwgMC4zMTgzMzIsIDAuNjIzNTU1LCAwLjkyOTQ4MywgMS42NDQ5NSwgMi4wNTU0NiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNTY4MzIsIDAuMTY3MDMsIDAuMjU4NTc4LCAwLjQxMTA2MywgMC41NjM0ODEsIDAuOTE5MTI2LCAxLjEyMjM0IiwgXAotICAgICAgICAgICIwLjE2NjE1NywgMC4xNzYzNjQsIDAuMjY3OTExLCAwLjQyMDQxOSwgMC41NzI4MTcsIDAuOTI4NDcsIDEuMTMxNzEiLCBcCi0gICAgICAgICAgIjAuMTc2Mzc2LCAwLjE4NjU3MSwgMC4yNzgxMjYsIDAuNDMwNjEsIDAuNTgzMDQ3LCAwLjkzODY2MiwgMS4xNDE4OCIsIFwKLSAgICAgICAgICAiMC4xODYwOTcsIDAuMTk2MzA2LCAwLjI4Nzg0OCwgMC40NDAzMzMsIDAuNTkyNzcyLCAwLjk0ODQ3NiwgMS4xNTE2NCIsIFwKLSAgICAgICAgICAiMC4xOTUzNDcsIDAuMjA1NTUzLCAwLjI5NzEzMSwgMC40NDk1OTIsIDAuNjAyMDIyLCAwLjk1NzY2NywgMS4xNjA5IiwgXAotICAgICAgICAgICIwLjIwODkwMSwgMC4yMTkxMDgsIDAuMzEwNjQ3LCAwLjQ2MzAzMiwgMC42MTU1NTIsIDAuOTcxMjA4LCAxLjE3NDQzIiwgXAotICAgICAgICAgICIwLjIxOTc0MywgMC4yMjk5NDIsIDAuMzIxNDc5LCAwLjQ3Mzk1MSwgMC42MjYzNzcsIDAuOTgyMDIzLCAxLjE4NTI1Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExNTY1OCwgMC4xMzU5NjgsIDAuMzIyMzg1LCAwLjYzNjQyNCwgMC45NTA1NTMsIDEuNjgxOTQsIDIuMTAzMjUiLCBcCi0gICAgICAgICAgIjAuMTE1NjQ0LCAwLjEzNTk1NywgMC4zMjIzODMsIDAuNjM2MzMzLCAwLjk1MDUzNCwgMS42ODQxNCwgMi4xMDMzIiwgXAotICAgICAgICAgICIwLjExNTY1LCAwLjEzNTg1NSwgMC4zMjIzOTUsIDAuNjM2NDE1LCAwLjk1MDY5NCwgMS42ODQxMiwgMi4xMDI5NSIsIFwKLSAgICAgICAgICAiMC4xMTU2NTcsIDAuMTM1OTY3LCAwLjMyMjM4NiwgMC42MzY0MTQsIDAuOTUwNjUzLCAxLjY4NDIxLCAyLjEwMzEzIiwgXAotICAgICAgICAgICIwLjExNTY0NywgMC4xMzU5NiwgMC4zMjI0ODIsIDAuNjM2NDA0LCAwLjk0OTQ5NiwgMS42ODM4MiwgMi4xMDMxNiIsIFwKLSAgICAgICAgICAiMC4xMTU2NDksIDAuMTM2MDIzLCAwLjMyMjQwNywgMC42MzYzMzcsIDAuOTUwNjEzLCAxLjY4MzE3LCAyLjEwMzI0IiwgXAotICAgICAgICAgICIwLjExNTYyMiwgMC4xMzYwMDksIDAuMzIyNDEyLCAwLjYzNjM5MywgMC45NTA1MDksIDEuNjg0MTMsIDIuMTAzMyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNTY4NzUsIDAuMTY3MTk4LCAwLjI1ODg3NiwgMC40MTE0MTYsIDAuNTYzODU4LCAwLjkxOTYxNSwgMS4xMjI5IiwgXAotICAgICAgICAgICIwLjE2NTYyNSwgMC4xNzU5NSwgMC4yNjc2MjUsIDAuNDIwMTczLCAwLjU3MjYyNSwgMC45MjgzODEsIDEuMTMxNTYiLCBcCi0gICAgICAgICAgIjAuMTc2NDg2LCAwLjE4NjgxMSwgMC4yNzg0ODcsIDAuNDMxMDM5LCAwLjU4MzQ2NiwgMC45MzkyMzMsIDEuMTQyNDUiLCBcCi0gICAgICAgICAgIjAuMTg3MDQ1LCAwLjE5NzM3NiwgMC4yODkwNSwgMC40NDE2MSwgMC41OTQwMiwgMC45NDk3ODcsIDEuMTUzMDkiLCBcCi0gICAgICAgICAgIjAuMTk3MjgxLCAwLjIwNzYxMiwgMC4yOTkyOSwgMC40NTE4MDUsIDAuNjA0MjUzLCAwLjk2MDAzMiwgMS4xNjMzMiIsIFwKLSAgICAgICAgICAiMC4yMTI2NzksIDAuMjIzMDA4LCAwLjMxNDY4NiwgMC40NjcxOTksIDAuNjE5NjQsIDAuOTc1NDE5LCAxLjE3ODcxIiwgXAotICAgICAgICAgICIwLjIyNTAxMywgMC4yMzUzNTcsIDAuMzI3MDExLCAwLjQ3OTQ4OCwgMC42MzE5NjQsIDAuOTg3NzE4LCAxLjE5MTA0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExNTMsIDAuMTM0ODgsIDAuMzE1MDQ2LCAwLjYyMDkzNCwgMC45Mjc4MTMsIDEuNjQzODMsIDIuMDUzMDUiLCBcCi0gICAgICAgICAgIjAuMTE1MjkzLCAwLjEzNDg4NiwgMC4zMTUxMTMsIDAuNjIwNzU4LCAwLjkyNzM4NCwgMS42NDM2NywgMi4wNTIzOCIsIFwKLSAgICAgICAgICAiMC4xMTUyODMsIDAuMTM0ODc5LCAwLjMxNTExMSwgMC42MjA4MDMsIDAuOTI2NTI0LCAxLjY0MzUyLCAyLjA1MjM3IiwgXAotICAgICAgICAgICIwLjExNTI1MiwgMC4xMzQ4NzYsIDAuMzE1MjM3LCAwLjYyMDg0OSwgMC45Mjc1OCwgMS42NDM0NSwgMi4wNTI3MSIsIFwKLSAgICAgICAgICAiMC4xMTUyNjQsIDAuMTM0ODg3LCAwLjMxNTEwOCwgMC42MjA4NDIsIDAuOTI2Mzk2LCAxLjY0MzQ2LCAyLjA1MjY0IiwgXAotICAgICAgICAgICIwLjExNTI4NSwgMC4xMzQ4ODUsIDAuMzE1MzQ2LCAwLjYyMDgyNiwgMC45MjY5NSwgMS42NDM0NCwgMi4wNTI2MyIsIFwKLSAgICAgICAgICAiMC4xMTU0MTEsIDAuMTM0OTE3LCAwLjMxNTExNiwgMC42MjA4MiwgMC45MjczNzIsIDEuNjQzMjEsIDIuMDUyMzEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTI0ODg1LCAwLjEzNTE5NiwgMC4yMjczNjgsIDAuMzgwMzAzLCAwLjUzMjg1MSwgMC44ODg4LCAxLjA5MjA3IiwgXAotICAgICAgICAgICIwLjEzMzEyOCwgMC4xNDM1MzIsIDAuMjM1NjkzLCAwLjM4ODU2MywgMC41NDExNzcsIDAuODk3MDQ5LCAxLjEwMDQxIiwgXAotICAgICAgICAgICIwLjE0MzU0MiwgMC4xNTM5NTcsIDAuMjQ2MTIyLCAwLjM5OTAzNiwgMC41NTE2MTksIDAuOTA3NDkzLCAxLjExMDg1IiwgXAotICAgICAgICAgICIwLjE1Mzk1OSwgMC4xNjQzNTYsIDAuMjU2NTMyLCAwLjQwOTQsIDAuNTYyMDE2LCAwLjkxNzkxOSwgMS4xMjEyNiIsIFwKLSAgICAgICAgICAiMC4xNjM4NzYsIDAuMTc0Mjc3LCAwLjI2NjQ5OSwgMC40MTk0MTQsIDAuNTcxOTU1LCAwLjkyNzg3OSwgMS4xMzExNSIsIFwKLSAgICAgICAgICAiMC4xNzkyNzgsIDAuMTg5NjksIDAuMjgxODk5LCAwLjQzNDc3NywgMC41ODczNzEsIDAuOTQzMjc5LCAxLjE0NjU4IiwgXAotICAgICAgICAgICIwLjE5MTQxNSwgMC4yMDE4NTgsIDAuMjk0MDY3LCAwLjQ0NjkyNiwgMC41OTk1NjUsIDAuOTU1NDI0LCAxLjE1ODc0Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExODY2OSwgMC4xMzg3NjcsIDAuMzI0NjQ0LCAwLjYzNjkzMiwgMC45NTE5MTIsIDEuNjgyOTgsIDIuMTAyMDciLCBcCi0gICAgICAgICAgIjAuMTE4NjIxLCAwLjEzODgwMiwgMC4zMjQ2MjgsIDAuNjM4MTM0LCAwLjk1MjE4MywgMS42ODU0NSwgMi4xMDMzIiwgXAotICAgICAgICAgICIwLjExODYwNSwgMC4xMzg4NTIsIDAuMzI0NjE1LCAwLjYzODIzMiwgMC45NTIxOTUsIDEuNjgzNDYsIDIuMTA0NjciLCBcCi0gICAgICAgICAgIjAuMTE4NjM3LCAwLjEzODc5MiwgMC4zMjQ2MjcsIDAuNjM4MTEyLCAwLjk1MjE2LCAxLjY4MzM4LCAyLjEwMTA1IiwgXAotICAgICAgICAgICIwLjExODc4MywgMC4xMzksIDAuMzI0NzM1LCAwLjYzNjkxNSwgMC45NTIwNTEsIDEuNjgzOCwgMi4xMDI3MSIsIFwKLSAgICAgICAgICAiMC4xMTkwMiwgMC4xMzkyNywgMC4zMjQ4MzUsIDAuNjM3MDk0LCAwLjk1MjA1NCwgMS42ODM3OCwgMi4xMDI3NyIsIFwKLSAgICAgICAgICAiMC4xMjAwMDUsIDAuMTQwMDY1LCAwLjMyNTAxNiwgMC42MzczNzksIDAuOTUwOTk4LCAxLjY4MzY0LCAyLjEwNDI3Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEyNjczNywgMC4xMzcyNCwgMC4yMjk2MjIsIDAuMzgyNTAzLCAwLjUzNTE5OSwgMC44OTExNjIsIDEuMDk0NTIiLCBcCi0gICAgICAgICAgIjAuMTM0OTEsIDAuMTQ1NDMyLCAwLjIzNzgxMywgMC4zOTA2ODcsIDAuNTQzMzk3LCAwLjg5OTQwMywgMS4xMDI3MyIsIFwKLSAgICAgICAgICAiMC4xNDQ1NjUsIDAuMTU1MDk5LCAwLjI0NzQ4LCAwLjQwMDM3NSwgMC41NTMxMDMsIDAuOTA5MDMsIDEuMTEyMzkiLCBcCi0gICAgICAgICAgIjAuMTU0MTIzLCAwLjE2NDY0LCAwLjI1NzA0LCAwLjQwOTkxLCAwLjU2MjYzNCwgMC45MTg2MzYsIDEuMTIxOTgiLCBcCi0gICAgICAgICAgIjAuMTYzMzUxLCAwLjE3Mzg4MiwgMC4yNjYyODgsIDAuNDE5MjA1LCAwLjU3MTg4LCAwLjkyNzgyLCAxLjEzMTIiLCBcCi0gICAgICAgICAgIjAuMTc2OTksIDAuMTg3NTM5LCAwLjI4LCAwLjQzMjg5MiwgMC41ODU2MzcsIDAuOTQxNTUyLCAxLjE0NDkxIiwgXAotICAgICAgICAgICIwLjE4Nzc2NywgMC4xOTgzMDMsIDAuMjkwODI4LCAwLjQ0MzcyMiwgMC41OTY0NDUsIDAuOTUyMzY5LCAxLjE1NTc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExNzU3LCAwLjEzNzE2MSwgMC4zMTc1NTMsIDAuNjIyNDE4LCAwLjkyODQ2OSwgMS42NDMzLCAyLjA1MTkyIiwgXAotICAgICAgICAgICIwLjExNzU2MywgMC4xMzcyMDgsIDAuMzE3NTMyLCAwLjYyMzQzNCwgMC45Mjk3NjMsIDEuNjQzMjMsIDIuMDUyMjkiLCBcCi0gICAgICAgICAgIjAuMTE3NTIsIDAuMTM3MTg1LCAwLjMxNzYwOSwgMC42MjI2MiwgMC45Mjk3MDEsIDEuNjQ1MDQsIDIuMDUxOTkiLCBcCi0gICAgICAgICAgIjAuMTE3NjEsIDAuMTM3MjMyLCAwLjMxNzU0LCAwLjYyMzM4NCwgMC45Mjk3MzMsIDEuNjQ1ODgsIDIuMDU1NTIiLCBcCi0gICAgICAgICAgIjAuMTE3ODI3LCAwLjEzNzQzOCwgMC4zMTc2MDMsIDAuNjIzNDg2LCAwLjkyOTc0OCwgMS42NDYxNCwgMi4wNTE5NiIsIFwKLSAgICAgICAgICAiMC4xMTgzMjMsIDAuMTM3ODc1LCAwLjMxNzQ2LCAwLjYyMjUwOSwgMC45MjczODEsIDEuNjQ1MDYsIDIuMDUxODciLCBcCi0gICAgICAgICAgIjAuMTE4OTU0LCAwLjEzODUwMSwgMC4zMTg0MjYsIDAuNjIzNTgsIDAuOTI5NTMxLCAxLjY0NjEzLCAyLjA1MzM5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE1OTA3MSwgMC4xNjkyOTQsIDAuMjYxMDI0LCAwLjQxMzYyNiwgMC41NjYwOTIsIDAuOTIxODIzLCAxLjEyNTAxIiwgXAotICAgICAgICAgICIwLjE2Nzk3NSwgMC4xNzgyMzgsIDAuMjY5OTU2LCAwLjQyMjU4MSwgMC41NzUwMzQsIDAuOTMwNzI5LCAxLjEzMzk2IiwgXAotICAgICAgICAgICIwLjE3Nzk5OCwgMC4xODgyNDEsIDAuMjc5OTU3LCAwLjQzMjU2MywgMC41ODUwOTksIDAuOTQwNzI4LCAxLjE0Mzk2IiwgXAotICAgICAgICAgICIwLjE4NzMxNCwgMC4xOTc1NTYsIDAuMjg5MjcyLCAwLjQ0MTg3OSwgMC41OTQzNTMsIDAuOTUwMDQ0LCAxLjE1MzI4IiwgXAotICAgICAgICAgICIwLjE5NjM5MywgMC4yMDY2MiwgMC4yOTgzNDYsIDAuNDUwOTUyLCAwLjYwMzQyOCwgMC45NTkxOTUsIDEuMTYyMzQiLCBcCi0gICAgICAgICAgIjAuMjEwNDgsIDAuMjIwNjg1LCAwLjMxMjEyNSwgMC40NjQ1MzEsIDAuNjE2OTUsIDAuOTcyNTY0LCAxLjE3NTgiLCBcCi0gICAgICAgICAgIjAuMjIyOTc2LCAwLjIzMzE3MSwgMC4zMjQ2MTMsIDAuNDc3MDI4LCAwLjYyOTQ0MywgMC45ODUwNzMsIDEuMTg4MTciKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTE1NTc2LCAwLjEzNTkwMywgMC4zMjI3NzMsIDAuNjM2NzQ5LCAwLjk1MDg3MSwgMS42ODQyMywgMi4xMDMyNCIsIFwKLSAgICAgICAgICAiMC4xMTU1NjQsIDAuMTM1OTAxLCAwLjMyMjc3LCAwLjYzNjMzNCwgMC45NTA1OTUsIDEuNjg0MDksIDIuMTAzMDIiLCBcCi0gICAgICAgICAgIjAuMTE1NTY2LCAwLjEzNTg4NywgMC4zMjI3NzUsIDAuNjM2NzQ4LCAwLjk1MTA3LCAxLjY4NDExLCAyLjEwMDg0IiwgXAotICAgICAgICAgICIwLjExNTU4OSwgMC4xMzU5MTMsIDAuMzIyNzc5LCAwLjYzNjc0OCwgMC45NTA4OTMsIDEuNjg0MDQsIDIuMTAzMTQiLCBcCi0gICAgICAgICAgIjAuMTE1NTczLCAwLjEzNTkwOCwgMC4zMjI3NzEsIDAuNjM2NzQ0LCAwLjk1MDg4NCwgMS42ODQzMSwgMi4xMDI5IiwgXAotICAgICAgICAgICIwLjExNTYyOSwgMC4xMzU5NDcsIDAuMzIyNzgyLCAwLjYzNTQyOSwgMC45NTA4ODIsIDEuNjg0MDMsIDIuMTAzMjMiLCBcCi0gICAgICAgICAgIjAuMTE1NjM0LCAwLjEzNTkxNCwgMC4zMjIyNTQsIDAuNjM2NDkzLCAwLjk1MDg5NSwgMS42ODQyMiwgMi4xMDA4OCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNTYxMTksIDAuMTY2NDQzLCAwLjI1ODEwMywgMC40MTA2NDEsIDAuNTYzMDY2LCAwLjkxODgyNiwgMS4xMjIxMSIsIFwKLSAgICAgICAgICAiMC4xNjUwMTYsIDAuMTc1MzM5LCAwLjI2NzAwMSwgMC40MTk1NTQsIDAuNTcxOTYsIDAuOTI3NzM3LCAxLjEzMTAxIiwgXAotICAgICAgICAgICIwLjE3NjYzNSwgMC4xODY5NTcsIDAuMjc4NjIxLCAwLjQzMTE3NCwgMC41ODM2MDIsIDAuOTM5MzUyLCAxLjE0MjYzIiwgXAotICAgICAgICAgICIwLjE4ODMxNCwgMC4xOTg2MjYsIDAuMjkwMzE3LCAwLjQ0Mjg1NywgMC41OTUyNDYsIDAuOTUxMDEsIDEuMTU0MzEiLCBcCi0gICAgICAgICAgIjAuMTk5OTM0LCAwLjIxMDI0OSwgMC4zMDE5MiwgMC40NTQ0NTksIDAuNjA2ODk1LCAwLjk2MjY2NiwgMS4xNjU5NyIsIFwKLSAgICAgICAgICAiMC4yMTcxNiwgMC4yMjc0ODEsIDAuMzE5MTQxLCAwLjQ3MTcxMiwgMC42MjQwOTIsIDAuOTc5OTY5LCAxLjE4MzIxIiwgXAotICAgICAgICAgICIwLjIzMDYyNSwgMC4yNDA5NDMsIDAuMzMyNjAyLCAwLjQ4NTA4OCwgMC42Mzc1MzcsIDAuOTkzMjc4LCAxLjE5NjU5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExNTEwNiwgMC4xMzQ3ODMsIDAuMzE1MjI4LCAwLjYyMTQwOSwgMC45MjY5MSwgMS42NDM4NSwgMi4wNTMxMiIsIFwKLSAgICAgICAgICAiMC4xMTUwODksIDAuMTM0NzUyLCAwLjMxNTIwMiwgMC42MjExOTcsIDAuOTI3ODU4LCAxLjY0MzcxLCAyLjA1Mjg1IiwgXAotICAgICAgICAgICIwLjExNTA4OSwgMC4xMzQ3MTQsIDAuMzE1MTMxLCAwLjYyMTE4MywgMC45Mjc5OTIsIDEuNjQzNTYsIDIuMDUyNzEiLCBcCi0gICAgICAgICAgIjAuMTE1MDY2LCAwLjEzNDc1MSwgMC4zMTUwNzEsIDAuNjIxMTQ4LCAwLjkyNjcyMiwgMS42NDM2MywgMi4wNTI3MiIsIFwKLSAgICAgICAgICAiMC4xMTUwNzgsIDAuMTM0NzA4LCAwLjMxNTA3MywgMC42MjExNCwgMC45Mjc2MTYsIDEuNjQzNTcsIDIuMDUyODIiLCBcCi0gICAgICAgICAgIjAuMTE1MTIsIDAuMTM0NzQyLCAwLjMxNTEsIDAuNjIxMDk2LCAwLjkyNzAyNCwgMS42NDM2MSwgMi4wNTI4NiIsIFwKLSAgICAgICAgICAiMC4xMTUyMjYsIDAuMTM0ODExLCAwLjMxNTA4MSwgMC42MjEwOTUsIDAuOTI3NjMsIDEuNjQxNDksIDIuMDUyNDQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0kiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEyNDQwMiwgMC4xMzQ4MTIsIDAuMjI2OTc2LCAwLjM3OTg5MSwgMC41MzI0NzMsIDAuODg4NDI0LCAxLjA5MTc4IiwgXAotICAgICAgICAgICIwLjEzMjI0NiwgMC4xNDI2NDMsIDAuMjM0ODE2LCAwLjM4NzcsIDAuNTQwMzAzLCAwLjg5NjI1MywgMS4wOTk1NiIsIFwKLSAgICAgICAgICAiMC4xNDI4NjksIDAuMTUzMjg0LCAwLjI0NTQyMywgMC4zOTgzMTMsIDAuNTUwOTksIDAuOTA2ODI5LCAxLjExMDE3IiwgXAotICAgICAgICAgICIwLjE1MzcyNywgMC4xNjQxMDksIDAuMjU2MzAyLCAwLjQwOTI0MywgMC41NjE3OTQsIDAuOTE3NzM4LCAxLjEyMTAyIiwgXAotICAgICAgICAgICIwLjE2NDU4NSwgMC4xNzQ5NjMsIDAuMjY3MTcsIDAuNDIwMDkxLCAwLjU3MjY0NywgMC45Mjg1OCwgMS4xMzE4NiIsIFwKLSAgICAgICAgICAiMC4xODEyNzksIDAuMTkxODM0LCAwLjI4Mzg2NSwgMC40MzY4MTMsIDAuNTg5NDI5LCAwLjk0NTI2MiwgMS4xNDg1OSIsIFwKLSAgICAgICAgICAiMC4xOTM3MTIsIDAuMjA0MTI5LCAwLjI5NjI5NywgMC40NDkxNywgMC42MDE3OCwgMC45NTc2NzUsIDEuMTYwOTYiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTE4NjcsIDAuMTM4ODk2LCAwLjMyNDM2LCAwLjYzODM3NiwgMC45NTI0LCAxLjY4MjcsIDIuMTA1MjciLCBcCi0gICAgICAgICAgIjAuMTE4NjI2LCAwLjEzODc5OSwgMC4zMjQzNjMsIDAuNjM3MzQ5LCAwLjk1MTk0MiwgMS42ODI3LCAyLjEwMTAxIiwgXAotICAgICAgICAgICIwLjExODU0MiwgMC4xMzg4MzksIDAuMzI0MzExLCAwLjYzNzA2LCAwLjk1MjQ0LCAxLjY4NTcsIDIuMTAxMjQiLCBcCi0gICAgICAgICAgIjAuMTE4NjUyLCAwLjEzODg3LCAwLjMyNDM1NSwgMC42MzY5MzUsIDAuOTUxOTA3LCAxLjY4MzA5LCAyLjEwMjExIiwgXAotICAgICAgICAgICIwLjExODc3LCAwLjEzODkxMSwgMC4zMjQ3NzQsIDAuNjM4Mjc5LCAwLjk1MTg1OCwgMS42ODM1OCwgMi4xMDI2IiwgXAotICAgICAgICAgICIwLjExOTEwNCwgMC4xMzkyLCAwLjMyNDcxMiwgMC42MzY5ODgsIDAuOTUyMTk3LCAxLjY4MzM0LCAyLjEwNDM3IiwgXAotICAgICAgICAgICIwLjEyMDE4LCAwLjE0MDEzMiwgMC4zMjQ5NzgsIDAuNjM3MzQyLCAwLjk1MjA4NiwgMS42ODMzNiwgMi4xMDE4NiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMjI0MSwgMC4xMzI5MTcsIDAuMjI1MzIzLCAwLjM3ODIxOSwgMC41MzA5MjMsIDAuODg2OTA2LCAxLjA5MDI4IiwgXAotICAgICAgICAgICIwLjEzMDE3MSwgMC4xNDA3MDEsIDAuMjMzMDkyLCAwLjM4NTk5MywgMC41Mzg3MDYsIDAuODk0NjQ1LCAxLjA5ODAzIiwgXAotICAgICAgICAgICIwLjE0MDYyOCwgMC4xNTExNDksIDAuMjQzNTYzLCAwLjM5NjQ1OSwgMC41NDkxNiwgMC45MDUxMjEsIDEuMTA4NDkiLCBcCi0gICAgICAgICAgIjAuMTUxMzM5LCAwLjE2MTg2MiwgMC4yNTQyODcsIDAuNDA3MTkzLCAwLjU1OTg5LCAwLjkxNTg1MSwgMS4xMTkyMyIsIFwKLSAgICAgICAgICAiMC4xNjE5NDEsIDAuMTcyNDUyLCAwLjI2NDg3MywgMC40MTc3NzYsIDAuNTcwNDc1LCAwLjkyNjQzNiwgMS4xMjk4MiIsIFwKLSAgICAgICAgICAiMC4xNzY5NjUsIDAuMTg3NTAzLCAwLjI3OTk1MywgMC40MzI4MzYsIDAuNTg1NTc3LCAwLjk0MTU1LCAxLjE0NDg4IiwgXAotICAgICAgICAgICIwLjE4ODQ2NCwgMC4xOTkwNjcsIDAuMjkxNTQ5LCAwLjQ0NDQ0OCwgMC41OTcyMTEsIDAuOTUzMTY3LCAxLjE1NjU2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExNzU2OSwgMC4xMzcxMzQsIDAuMzE3NTU4LCAwLjYyMjQyMSwgMC45Mjg5OTMsIDEuNjQ0MTQsIDIuMDU0MjciLCBcCi0gICAgICAgICAgIjAuMTE3NTUxLCAwLjEzNzE5NCwgMC4zMTc4NjUsIDAuNjIyMzcyLCAwLjkyOTczNiwgMS42NDMyNywgMi4wNTIxNyIsIFwKLSAgICAgICAgICAiMC4xMTc1MzksIDAuMTM3MTk1LCAwLjMxNzU4MSwgMC42MjI0NTEsIDAuOTI5ODAyLCAxLjY0NDkxLCAyLjA1MjE2IiwgXAotICAgICAgICAgICIwLjExNzU1NCwgMC4xMzcyMTIsIDAuMzE3NjA3LCAwLjYyMjQ5NywgMC45Mjk4MDksIDEuNjQ1MDgsIDIuMDUyMzgiLCBcCi0gICAgICAgICAgIjAuMTE3ODA2LCAwLjEzNzQxOCwgMC4zMTc2MzUsIDAuNjIyNDg3LCAwLjkyOTgwNSwgMS42NDQ5NSwgMi4wNTQwNyIsIFwKLSAgICAgICAgICAiMC4xMTg0NDIsIDAuMTM3OTcyLCAwLjMxODE2OSwgMC42MjM0NzIsIDAuOTI5NjgzLCAxLjY0NjEsIDIuMDU0MDQiLCBcCi0gICAgICAgICAgIjAuMTE4OTY3LCAwLjEzODQ5NCwgMC4zMTg0OTEsIDAuNjIyNTUxLCAwLjkyNzI2NCwgMS42NDYwNCwgMi4wNTE4OSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTUwOTI4LCAwLjE2MTE1MiwgMC4yNTI4ODksIDAuNDA1NTAyLCAwLjU1Nzk5LCAwLjkxMzY3NiwgMS4xMTY4OSIsIFwKLSAgICAgICAgICAiMC4xNjAwOTgsIDAuMTcwMzI3LCAwLjI2MjA2LCAwLjQxNDY3MiwgMC41NjcxNiwgMC45MjI4NDQsIDEuMTI2MDYiLCBcCi0gICAgICAgICAgIjAuMTcxODY0LCAwLjE4MjA5MiwgMC4yNzM4MjMsIDAuNDI2NDMzLCAwLjU3ODkwNywgMC45MzQ2MTMsIDEuMTM3ODIiLCBcCi0gICAgICAgICAgIjAuMTgzNTQ1LCAwLjE5Mzc4NSwgMC4yODU1MDEsIDAuNDM4MTA4LCAwLjU5MDU3NCwgMC45NDYyNzMsIDEuMTQ5NTEiLCBcCi0gICAgICAgICAgIjAuMTk0MzQ4LCAwLjIwNDU5MSwgMC4yOTYyOTksIDAuNDQ4OTA1LCAwLjYwMTM4OSwgMC45NTcyMzQsIDEuMTYwMyIsIFwKLSAgICAgICAgICAiMC4yMDk4NDEsIDAuMjIwMDgyLCAwLjMxMTgxNywgMC40NjQzMjgsIDAuNjE2ODQ4LCAwLjk3MjU0OCwgMS4xNzU3NyIsIFwKLSAgICAgICAgICAiMC4yMjEzMjUsIDAuMjMxNTksIDAuMzIzMzA5LCAwLjQ3NTg3MywgMC42MjgzODgsIDAuOTg0MDcyLCAxLjE4NzI2Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExNTM3OSwgMC4xMzU3NjMsIDAuMzIyNzkxLCAwLjYzNjc1MiwgMC45NTA2NjMsIDEuNjgyNDksIDIuMTAwNzIiLCBcCi0gICAgICAgICAgIjAuMTE1MzY0LCAwLjEzNTczLCAwLjMyMjc5OCwgMC42MzY3NDksIDAuOTQ5ODM5LCAxLjY4MjQxLCAyLjEwMzIxIiwgXAotICAgICAgICAgICIwLjExNTM2MSwgMC4xMzU3OTQsIDAuMzIyNzk1LCAwLjYzNjc0OCwgMC45NDk4NjMsIDEuNjg0MTYsIDIuMTAzIiwgXAotICAgICAgICAgICIwLjExNTM1LCAwLjEzNTgxLCAwLjMyMjc4NywgMC42MzY0MTMsIDAuOTUwODU5LCAxLjY4MjEzLCAyLjEwMSIsIFwKLSAgICAgICAgICAiMC4xMTUzNjQsIDAuMTM1ODA5LCAwLjMyMjc5NiwgMC42MzY3NTYsIDAuOTUwOTEzLCAxLjY4MTk0LCAyLjEwMDg1IiwgXAotICAgICAgICAgICIwLjExNTQyNCwgMC4xMzU4NjUsIDAuMzIyODg3LCAwLjYzNjQ4MywgMC45NTA4NzIsIDEuNjgyMywgMi4xMDA4NCIsIFwKLSAgICAgICAgICAiMC4xMTU2NywgMC4xMzYxMjEsIDAuMzIyNjI2LCAwLjYzNjY2MSwgMC45NTA5MjIsIDEuNjg0MjMsIDIuMTAzMDkiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTQ4NzkyLCAwLjE1OTAzOCwgMC4yNTA2NzEsIDAuNDAzMjMyLCAwLjU1NTY4NiwgMC45MTE0NjksIDEuMTE0NzQiLCBcCi0gICAgICAgICAgIjAuMTU4MDY3LCAwLjE2ODMxNywgMC4yNTk5NDYsIDAuNDEyNDgxLCAwLjU2NDk2NiwgMC45MjA3NTcsIDEuMTI0MDIiLCBcCi0gICAgICAgICAgIjAuMTY5NTc1LCAwLjE3OTgyNiwgMC4yNzE0NTgsIDAuNDI0MDMsIDAuNTc2NDczLCAwLjkzMjI0OSwgMS4xMzU1NCIsIFwKLSAgICAgICAgICAiMC4xODA5MDksIDAuMTkxMTU4LCAwLjI4MjgxNCwgMC40MzUzNjMsIDAuNTg3ODE1LCAwLjk0MzU4NywgMS4xNDY4NiIsIFwKLSAgICAgICAgICAiMC4xOTIyMTUsIDAuMjAyNDAyLCAwLjI5NDA5NiwgMC40NDY2NTUsIDAuNTk5MDU4LCAwLjk1NDg2NSwgMS4xNTgxMSIsIFwKLSAgICAgICAgICAiMC4yMDg0OTksIDAuMjE4NzQ5LCAwLjMxMDM3OCwgMC40NjI5NDEsIDAuNjE1Mzc4LCAwLjk3MTIyMSwgMS4xNzQ1IiwgXAotICAgICAgICAgICIwLjIyMTE3OCwgMC4yMzE1MDEsIDAuMzIzMDQ2LCAwLjQ3NTY4LCAwLjYyODEzOSwgMC45ODM4MDcsIDEuMTg3MDkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTEzMzk3LCAwLjEzMzMyOSwgMC4zMTQ5MTcsIDAuNjIxMTkzLCAwLjkyNzU4MywgMS42NDE3NCwgMi4wNTAxNiIsIFwKLSAgICAgICAgICAiMC4xMTM0MDQsIDAuMTMzMjQyLCAwLjMxNDc2MiwgMC42MjExMDUsIDAuOTI3NTE4LCAxLjY0MzIyLCAyLjA1MDMiLCBcCi0gICAgICAgICAgIjAuMTEzMzk4LCAwLjEzMzI0NiwgMC4zMTUwNzEsIDAuNjIxMTIsIDAuOTI3NDk5LCAxLjY0MTYsIDIuMDUyMjYiLCBcCi0gICAgICAgICAgIjAuMTEzMzUzLCAwLjEzMzI1MSwgMC4zMTQ4MDEsIDAuNjIxMTQ0LCAwLjkyNzUwNCwgMS42NDE2NCwgMi4wNTE4OCIsIFwKLSAgICAgICAgICAiMC4xMTMzOSwgMC4xMzMyMjgsIDAuMzE1MDE3LCAwLjYyMTEzNywgMC45Mjc0OTUsIDEuNjQxNjIsIDIuMDUxODgiLCBcCi0gICAgICAgICAgIjAuMTEzNTM1LCAwLjEzMzMzLCAwLjMxNDkwNywgMC42MjA5NjEsIDAuOTI3NTQxLCAxLjY0MTQ2LCAyLjA1MTk5IiwgXAotICAgICAgICAgICIwLjExMzYxOSwgMC4xMzM0OTksIDAuMzE1MDMsIDAuNjIwODAyLCAwLjkyNzU2NywgMS42NDI5NCwgMi4wNTE4NyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDAxOSwgMC4wMDQwMjIsIDAuMDA0MDM0LCAwLjAwNDAzOSwgMC4wMDQwNDEsIDAuMDA0MDQzLCAwLjAwNDA0MyIsIFwKLSAgICAgICAgICAiMC4wMDQwMDcsIDAuMDA0MDEsIDAuMDA0MDIyLCAwLjAwNDAyNywgMC4wMDQwMjksIDAuMDA0MDMxLCAwLjAwNDAzMSIsIFwKLSAgICAgICAgICAiMC4wMDM5OTksIDAuMDA0MDAyLCAwLjAwNDAxNSwgMC4wMDQwMiwgMC4wMDQwMjIsIDAuMDA0MDI0LCAwLjAwNDAyNSIsIFwKLSAgICAgICAgICAiMC4wMDM5OTUsIDAuMDAzOTk4LCAwLjAwNDAxMSwgMC4wMDQwMTcsIDAuMDA0MDE5LCAwLjAwNDAyMiwgMC4wMDQwMjIiLCBcCi0gICAgICAgICAgIjAuMDAzOTk0LCAwLjAwMzk5NywgMC4wMDQwMTEsIDAuMDA0MDE3LCAwLjAwNDAxOSwgMC4wMDQwMjIsIDAuMDA0MDIzIiwgXAotICAgICAgICAgICIwLjAwMzk5MiwgMC4wMDM5OTUsIDAuMDA0MDEsIDAuMDA0MDE2LCAwLjAwNDAxOSwgMC4wMDQwMjIsIDAuMDA0MDIyIiwgXAotICAgICAgICAgICIwLjAwMzk5NCwgMC4wMDM5OTcsIDAuMDA0MDExLCAwLjAwNDAxOCwgMC4wMDQwMjIsIDAuMDA0MDI1LCAwLjAwNDAyNCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTkyMSwgMC4wMDE5MjQsIDAuMDAxOTM2LCAwLjAwMTk0MSwgMC4wMDE5NDMsIDAuMDAxOTQ0LCAwLjAwMTk0NSIsIFwKLSAgICAgICAgICAiMC4wMDE4OTUsIDAuMDAxODk4LCAwLjAwMTkxLCAwLjAwMTkxNSwgMC4wMDE5MTcsIDAuMDAxOTIsIDAuMDAxOTIiLCBcCi0gICAgICAgICAgIjAuMDAxODgyLCAwLjAwMTg4NiwgMC4wMDE4OTgsIDAuMDAxOTA0LCAwLjAwMTkwNiwgMC4wMDE5MDgsIDAuMDAxOTA4IiwgXAotICAgICAgICAgICIwLjAwMTg3NywgMC4wMDE4OCwgMC4wMDE4OTMsIDAuMDAxODk5LCAwLjAwMTkwMSwgMC4wMDE5MDMsIDAuMDAxOTAzIiwgXAotICAgICAgICAgICIwLjAwMTg3MSwgMC4wMDE4NzQsIDAuMDAxODg4LCAwLjAwMTg5NCwgMC4wMDE4OTcsIDAuMDAxODk5LCAwLjAwMTkiLCBcCi0gICAgICAgICAgIjAuMDAxODcyLCAwLjAwMTg3NiwgMC4wMDE4ODksIDAuMDAxODk2LCAwLjAwMTg5OSwgMC4wMDE5MDEsIDAuMDAxOTAyIiwgXAotICAgICAgICAgICIwLjAwMTg3NSwgMC4wMDE4NzYsIDAuMDAxODkxLCAwLjAwMTg5OCwgMC4wMDE5LCAwLjAwMTkwNCwgMC4wMDE5MDQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDM5MzQsIDAuMDAzOTM3LCAwLjAwMzk0OSwgMC4wMDM5NTUsIDAuMDAzOTU3LCAwLjAwMzk1OCwgMC4wMDM5NTkiLCBcCi0gICAgICAgICAgIjAuMDAzOTE4LCAwLjAwMzkyMSwgMC4wMDM5MzQsIDAuMDAzOTM5LCAwLjAwMzk0MSwgMC4wMDM5NDMsIDAuMDAzOTQzIiwgXAotICAgICAgICAgICIwLjAwMzg5NiwgMC4wMDM4OTksIDAuMDAzOTEyLCAwLjAwMzkxNywgMC4wMDM5MiwgMC4wMDM5MjEsIDAuMDAzOTIyIiwgXAotICAgICAgICAgICIwLjAwMzg3OCwgMC4wMDM4ODEsIDAuMDAzODk0LCAwLjAwMzksIDAuMDAzOTAzLCAwLjAwMzkwNSwgMC4wMDM5MDUiLCBcCi0gICAgICAgICAgIjAuMDAzODY2LCAwLjAwMzg2OSwgMC4wMDM4ODMsIDAuMDAzODksIDAuMDAzODkyLCAwLjAwMzg5NCwgMC4wMDM4OTUiLCBcCi0gICAgICAgICAgIjAuMDAzODU0LCAwLjAwMzg1OCwgMC4wMDM4NzIsIDAuMDAzODc5LCAwLjAwMzg4MiwgMC4wMDM4ODUsIDAuMDAzODg1IiwgXAotICAgICAgICAgICIwLjAwMzg0OSwgMC4wMDM4NDksIDAuMDAzODY0LCAwLjAwMzg3MSwgMC4wMDM4NzQsIDAuMDAzODc2LCAwLjAwMzg3NyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjA4OCwgMC4wMDIwOTEsIDAuMDAyMTAyLCAwLjAwMjEwNywgMC4wMDIxMDgsIDAuMDAyMTEsIDAuMDAyMTEiLCBcCi0gICAgICAgICAgIjAuMDAyMDU4LCAwLjAwMjA2MSwgMC4wMDIwNzIsIDAuMDAyMDc3LCAwLjAwMjA3OSwgMC4wMDIwOCwgMC4wMDIwOCIsIFwKLSAgICAgICAgICAiMC4wMDIwMzIsIDAuMDAyMDM2LCAwLjAwMjA0NywgMC4wMDIwNTIsIDAuMDAyMDU0LCAwLjAwMjA1NiwgMC4wMDIwNTYiLCBcCi0gICAgICAgICAgIjAuMDAyMDIsIDAuMDAyMDIzLCAwLjAwMjAzNiwgMC4wMDIwNDEsIDAuMDAyMDQzLCAwLjAwMjA0NSwgMC4wMDIwNDYiLCBcCi0gICAgICAgICAgIjAuMDAyMDE3LCAwLjAwMjAyLCAwLjAwMjAzMywgMC4wMDIwMzgsIDAuMDAyMDQsIDAuMDAyMDQyLCAwLjAwMjA0MyIsIFwKLSAgICAgICAgICAiMC4wMDIwMTcsIDAuMDAyMDIsIDAuMDAyMDM0LCAwLjAwMjA0LCAwLjAwMjA0MiwgMC4wMDIwNDUsIDAuMDAyMDQ1IiwgXAotICAgICAgICAgICIwLjAwMjAyOCwgMC4wMDIwMzEsIDAuMDAyMDQ0LCAwLjAwMjA1MSwgMC4wMDIwNTMsIDAuMDAyMDU1LCAwLjAwMjA1NiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNJIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDM2MDEsIDAuMDAzNjA0LCAwLjAwMzYxNiwgMC4wMDM2MjIsIDAuMDAzNjI0LCAwLjAwMzYyNiwgMC4wMDM2MjciLCBcCi0gICAgICAgICAgIjAuMDAzNTk4LCAwLjAwMzYwMSwgMC4wMDM2MTQsIDAuMDAzNjIsIDAuMDAzNjIyLCAwLjAwMzYyNCwgMC4wMDM2MjUiLCBcCi0gICAgICAgICAgIjAuMDAzNTk5LCAwLjAwMzYwMiwgMC4wMDM2MTYsIDAuMDAzNjIyLCAwLjAwMzYyNCwgMC4wMDM2MjcsIDAuMDAzNjI3IiwgXAotICAgICAgICAgICIwLjAwMzYwNCwgMC4wMDM2MDcsIDAuMDAzNjIxLCAwLjAwMzYyOCwgMC4wMDM2MzEsIDAuMDAzNjM0LCAwLjAwMzYzNCIsIFwKLSAgICAgICAgICAiMC4wMDM2MDksIDAuMDAzNjEzLCAwLjAwMzYyOCwgMC4wMDM2MzUsIDAuMDAzNjM4LCAwLjAwMzY0LCAwLjAwMzY0MSIsIFwKLSAgICAgICAgICAiMC4wMDM2MiwgMC4wMDM2MjQsIDAuMDAzNjM5LCAwLjAwMzY0NiwgMC4wMDM2NSwgMC4wMDM2NTIsIDAuMDAzNjUzIiwgXAotICAgICAgICAgICIwLjAwMzYzLCAwLjAwMzYzMSwgMC4wMDM2NDksIDAuMDAzNjU4LCAwLjAwMzY2LCAwLjAwMzY2MywgMC4wMDM2NjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDIxMDMsIDAuMDAyMTA2LCAwLjAwMjExOCwgMC4wMDIxMjIsIDAuMDAyMTI0LCAwLjAwMjEyNSwgMC4wMDIxMjYiLCBcCi0gICAgICAgICAgIjAuMDAyMDg5LCAwLjAwMjA5MywgMC4wMDIxMDQsIDAuMDAyMTA5LCAwLjAwMjExMSwgMC4wMDIxMTMsIDAuMDAyMTEzIiwgXAotICAgICAgICAgICIwLjAwMjA3MiwgMC4wMDIwNzYsIDAuMDAyMDg4LCAwLjAwMjA5NCwgMC4wMDIwOTYsIDAuMDAyMDk4LCAwLjAwMjA5OCIsIFwKLSAgICAgICAgICAiMC4wMDIwNjQsIDAuMDAyMDY3LCAwLjAwMjA4MSwgMC4wMDIwODcsIDAuMDAyMDg5LCAwLjAwMjA5MSwgMC4wMDIwOTIiLCBcCi0gICAgICAgICAgIjAuMDAyMDYsIDAuMDAyMDYzLCAwLjAwMjA3NywgMC4wMDIwODMsIDAuMDAyMDg2LCAwLjAwMjA4OCwgMC4wMDIwODkiLCBcCi0gICAgICAgICAgIjAuMDAyMDYzLCAwLjAwMjA2NiwgMC4wMDIwOCwgMC4wMDIwODcsIDAuMDAyMDksIDAuMDAyMDkyLCAwLjAwMjA5MyIsIFwKLSAgICAgICAgICAiMC4wMDIwNywgMC4wMDIwNzQsIDAuMDAyMDg4LCAwLjAwMjA5NSwgMC4wMDIwOTgsIDAuMDAyMTAxLCAwLjAwMjEwMiIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogQURERlhMICoKLSAqIC0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoQURERlhMKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMjY5MjUxOwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDI2MDE4OTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDI1OTIzOTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDI2MDE4OTsKLSAgfQotICBwaW4oQikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAyNDEzOTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDI0MDMxMjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDI0MTM5OwotICB9Ci0gIHBpbihDSSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxOTM3NjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE5MjY3NTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE5Mzc2OwotICB9Ci0gIHBpbihDTykgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjE0NjYxMjsKLSAgICBmdW5jdGlvbiA6ICIoKChBIEIpKyhCIENJKSkrKENJIEEpKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTQ4Mzc2LCAwLjE2Mjc4LCAwLjI5MDQ2MywgMC41MDMxODksIDAuNzE0NzYxLCAxLjIwOTQsIDEuNDkxNTUiLCBcCi0gICAgICAgICAgIjAuMTU3NjkzLCAwLjE3MjAzNiwgMC4yOTk3MzksIDAuNTEyMDQ4LCAwLjcyNDAwMywgMS4yMTgyOCwgMS41MDA2NiIsIFwKLSAgICAgICAgICAiMC4xNjg4MDQsIDAuMTgzMTc4LCAwLjMxMDgxOSwgMC41MjI4OTgsIDAuNzM0NTgsIDEuMjI5MDgsIDEuNTExMTYiLCBcCi0gICAgICAgICAgIjAuMTc5NjUyLCAwLjE5NDAxLCAwLjMyMTg5OSwgMC41MzM5MTQsIDAuNzQ1OTQ5LCAxLjIzOTg0LCAxLjUyMjI5IiwgXAotICAgICAgICAgICIwLjE5MDAyMiwgMC4yMDQzNjYsIDAuMzMyMDU2LCAwLjU0NDIzLCAwLjc1NTgwNiwgMS4yNTAzNCwgMS41MzI2MyIsIFwKLSAgICAgICAgICAiMC4yMDYwNDksIDAuMjIwNDI5LCAwLjM0ODEzNiwgMC41NjAyMTMsIDAuNzcxODI5LCAxLjI2NjIzLCAxLjU0ODcxIiwgXAotICAgICAgICAgICIwLjIxOTA2NywgMC4yMzM0MzEsIDAuMzYxMTE3LCAwLjU3MzE4NCwgMC43ODQ4NTUsIDEuMjc5MjcsIDEuNTYxNjUiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTYyMTQzLCAwLjE5MDM2NywgMC40NDY0NDYsIDAuODgxMDE1LCAxLjMxNDU3LCAyLjMzNCwgMi45MTA0MyIsIFwKLSAgICAgICAgICAiMC4xNjE5OTksIDAuMTkwMjk4LCAwLjQ0NjQ0NiwgMC44ODA5ODYsIDEuMzE2MzcsIDIuMzMzODcsIDIuOTE1MyIsIFwKLSAgICAgICAgICAiMC4xNjIwMjcsIDAuMTkwMzI3LCAwLjQ0NTc5NiwgMC44ODA5OTUsIDEuMzE0MzQsIDIuMzMzNzgsIDIuOTEzMDMiLCBcCi0gICAgICAgICAgIjAuMTYxOTQ2LCAwLjE5MDMyLCAwLjQ0NjExOCwgMC44ODEwMDEsIDEuMzE0MSwgMi4zMzM3MiwgMi45MTUzMSIsIFwKLSAgICAgICAgICAiMC4xNjE5NzYsIDAuMTkwNDIyLCAwLjQ0NjQ2MiwgMC44ODA5OSwgMS4zMTQ3MywgMi4zMzM3OCwgMi45MTUwMyIsIFwKLSAgICAgICAgICAiMC4xNjIyMTgsIDAuMTkwNTQ3LCAwLjQ0NjQ5NywgMC44ODA5ODgsIDEuMzE1MDYsIDIuMzMzNTEsIDIuOTE1IiwgXAotICAgICAgICAgICIwLjE2MjgyLCAwLjE5MDk3NSwgMC40NDYxMTYsIDAuODgwODkyLCAxLjMxNDIyLCAyLjMzMzI4LCAyLjkxNDU5Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE1MTg0NSwgMC4xNjU5NDgsIDAuMjkxMzEsIDAuNDk4NDc0LCAwLjcwNjYxNSwgMS4xOTE1OCwgMS40Njg1OSIsIFwKLSAgICAgICAgICAiMC4xNjEyODUsIDAuMTc1NDE0LCAwLjMwMDUxNiwgMC41MDgzMzYsIDAuNzE1NjE1LCAxLjIwMDAxLCAxLjQ3NzE4IiwgXAotICAgICAgICAgICIwLjE3MTcwNiwgMC4xODU4MTQsIDAuMzExMTU2LCAwLjUxODM5OSwgMC43MjU2OSwgMS4yMTEwNywgMS40ODY5OSIsIFwKLSAgICAgICAgICAiMC4xODE2MjIsIDAuMTk1NzA4LCAwLjMyMTEyNywgMC41MjgxNiwgMC43MzU4MDMsIDEuMjE5NzcsIDEuNDk2NjEiLCBcCi0gICAgICAgICAgIjAuMTkxMDg3LCAwLjIwNTE5LCAwLjMzMDYsIDAuNTM3NjY4LCAwLjc0NTM3MiwgMS4yMjkyNSwgMS41MDYwMSIsIFwKLSAgICAgICAgICAiMC4yMDU0ODMsIDAuMjE5NTcyLCAwLjM0NDg4MSwgMC41NTI3MjUsIDAuNzU5NDU4LCAxLjI0MzU0LCAxLjUyMDM2IiwgXAotICAgICAgICAgICIwLjIxNzAzMiwgMC4yMzExNjcsIDAuMzU2NTI5LCAwLjU2Mzc0MSwgMC43NzEwNzEsIDEuMjU1MTYsIDEuNTMxNzkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTU2Nzc3LCAwLjE4MzUxNiwgMC40MzAyODIsIDAuODQ0NjQ1LCAxLjI2MDA2LCAyLjIzMjY1LCAyLjc4MzciLCBcCi0gICAgICAgICAgIjAuMTU2ODA2LCAwLjE4Mzk5MywgMC40MzAyNDcsIDAuODQ0ODI5LCAxLjI1OTIzLCAyLjIzMjg3LCAyLjc4NjIzIiwgXAotICAgICAgICAgICIwLjE1Njc5MiwgMC4xODMxNjgsIDAuNDMwMjYzLCAwLjg0NDY1MywgMS4yNTkyNywgMi4yMzI1MSwgMi43ODQ0OSIsIFwKLSAgICAgICAgICAiMC4xNTU1NCwgMC4xODM2NzMsIDAuNDMwMjY5LCAwLjg0NDYxOSwgMS4yNjAwMiwgMi4yMzIzOSwgMi43ODk0IiwgXAotICAgICAgICAgICIwLjE1NjQ3LCAwLjE4Mzg0OSwgMC40MzAyOCwgMC44NDQ2MzUsIDEuMjU5NjMsIDIuMjMyNjQsIDIuNzg5NSIsIFwKLSAgICAgICAgICAiMC4xNTcyMzQsIDAuMTgzOTYsIDAuNDMwMzI3LCAwLjg0NDYzLCAxLjI1OTIsIDIuMjMyNzEsIDIuNzg5NDQiLCBcCi0gICAgICAgICAgIjAuMTU3ODQ0LCAwLjE4NDM1MiwgMC40MzA0MjYsIDAuODQ0NzMzLCAxLjI1OTExLCAyLjIzMjYzLCAyLjc4Mzg1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE0ODI3LCAwLjE2MjY4OCwgMC4yOTA2MDUsIDAuNTAzMDc3LCAwLjcxNTI5MiwgMS4yMDkyNCwgMS40OTEzNyIsIFwKLSAgICAgICAgICAiMC4xNTcyODYsIDAuMTcxNjc4LCAwLjI5OTM3LCAwLjUxMjA1NiwgMC43MjM0OTgsIDEuMjE3OTgsIDEuNTAwNTQiLCBcCi0gICAgICAgICAgIjAuMTY4ODgsIDAuMTgzMjYyLCAwLjMxMDk5NiwgMC41MjM2OCwgMC43MzU3MTQsIDEuMjI5OTIsIDEuNTEyMTciLCBcCi0gICAgICAgICAgIjAuMTgwNzA5LCAwLjE5NTEzMiwgMC4zMjI4MywgMC41MzUzNDEsIDAuNzQ3MDAyLCAxLjI0MTY1LCAxLjUyNDA1IiwgXAotICAgICAgICAgICIwLjE5MjMyOCwgMC4yMDY3MTcsIDAuMzM0NDc0LCAwLjU0NzQ5OSwgMC43NTkwOTIsIDEuMjUzNDMsIDEuNTM1ODUiLCBcCi0gICAgICAgICAgIjAuMjEwNzAzLCAwLjIyNTExNiwgMC4zNTI4NTMsIDAuNTY1NDA4LCAwLjc3Njk1MSwgMS4yNzE3MSwgMS41NTM5OSIsIFwKLSAgICAgICAgICAiMC4yMjQ4OTIsIDAuMjM5MzAyLCAwLjM2NzAyNiwgMC41NzkxOSwgMC43OTExNTIsIDEuMjg1ODcsIDEuNTY4MyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNjIyNjUsIDAuMTkwNTU4LCAwLjQ0NjU5NCwgMC44ODEwNTksIDEuMzE0ODYsIDIuMzM0MDQsIDIuOTEwOTEiLCBcCi0gICAgICAgICAgIjAuMTYyMTM1LCAwLjE5MDU3MSwgMC40NDY0NDcsIDAuODgxMDE2LCAxLjMxNTEzLCAyLjMzMjQ1LCAyLjkxNTE2IiwgXAotICAgICAgICAgICIwLjE2MjE2MSwgMC4xOTA1NDQsIDAuNDQ2NDUxLCAwLjg4MTAxMSwgMS4zMTY0MiwgMi4zMzM5NCwgMi45MTUxMiIsIFwKLSAgICAgICAgICAiMC4xNjI0OTIsIDAuMTkwNTkzLCAwLjQ0NjQzMiwgMC44Nzk4MjgsIDEuMzE0NzMsIDIuMzMzNjMsIDIuOTE1MTEiLCBcCi0gICAgICAgICAgIjAuMTYyNjIyLCAwLjE5MDU5NywgMC40NDY0NjMsIDAuODc5ODAxLCAxLjMxNjI5LCAyLjMzMzcyLCAyLjkxNTI0IiwgXAotICAgICAgICAgICIwLjE2Mjk3NiwgMC4xOTExNzUsIDAuNDQ2NDYsIDAuODgwODI1LCAxLjMxNDY2LCAyLjMzMzY4LCAyLjkxNDk4IiwgXAotICAgICAgICAgICIwLjE2NDAwNSwgMC4xOTE4ODUsIDAuNDQ2NTc2LCAwLjg3OTg5NSwgMS4zMTUyNCwgMi4zMzM2OCwgMi45MTUyMyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNTA3OCwgMC4xNjUwMDcsIDAuMjkwNDQ2LCAwLjQ5NzkzMSwgMC43MDUwMDQsIDEuMTg5NzUsIDEuNDY1NzkiLCBcCi0gICAgICAgICAgIjAuMTU5OTQ4LCAwLjE3NDE5MSwgMC4yOTkxNzksIDAuNTA3NDEsIDAuNzE0MTIzLCAxLjE5ODQ5LCAxLjQ3NTc1IiwgXAotICAgICAgICAgICIwLjE3MDEzNCwgMC4xODQzNSwgMC4zMDkzODMsIDAuNTE3ODAyLCAwLjcyNDkwNSwgMS4yMDkzMiwgMS40ODY1OCIsIFwKLSAgICAgICAgICAiMC4xODA4NSwgMC4xOTQ5NzIsIDAuMzIwMjIsIDAuNTI3ODk5LCAwLjczNTcwMiwgMS4yMjA5MSwgMS40OTgxMiIsIFwKLSAgICAgICAgICAiMC4xOTIwNjUsIDAuMjA2MTg4LCAwLjMzMTQ0OSwgMC41MzkxMTIsIDAuNzQ3NTczLCAxLjIzMTgyLCAxLjUwOTI5IiwgXAotICAgICAgICAgICIwLjIwOTQzNywgMC4yMjM1NzUsIDAuMzQ4ODE5LCAwLjU1NzMyMiwgMC43NjUxNCwgMS4yNDk3MSwgMS41MjY3MyIsIFwKLSAgICAgICAgICAiMC4yMjI4MjgsIDAuMjM2OTQxLCAwLjM2MjIzNywgMC41NzA1NzUsIDAuNzc4MjgyLCAxLjI2Mjk3LCAxLjUzODczIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE1NzQ4OSwgMC4xODQ2NzQsIDAuNDMwMjQ1LCAwLjg0NDI4LCAxLjI2MDE4LCAyLjIzMTcsIDIuNzg2ODYiLCBcCi0gICAgICAgICAgIjAuMTU3NDUsIDAuMTg0MTkyLCAwLjQzMDgwNiwgMC44NDQ1NTMsIDEuMjYwMjUsIDIuMjMxNzEsIDIuNzg5NDMiLCBcCi0gICAgICAgICAgIjAuMTU3NDY5LCAwLjE4MzcxOSwgMC40MzA3NzYsIDAuODQ0NTQzLCAxLjI2MDMyLCAyLjIzMjI1LCAyLjc4OTM0IiwgXAotICAgICAgICAgICIwLjE1NzY0OCwgMC4xODQxMjEsIDAuNDMwNzY4LCAwLjg0NDQyLCAxLjI2MDQxLCAyLjIzMjQ2LCAyLjc4Njc4IiwgXAotICAgICAgICAgICIwLjE1Njk0LCAwLjE4NDE5NiwgMC40MzAyNDIsIDAuODQ0NDk2LCAxLjI2MDI4LCAyLjIzMTc5LCAyLjc4OTMyIiwgXAotICAgICAgICAgICIwLjE1NzI2NCwgMC4xODU3ODgsIDAuNDMwMjc1LCAwLjg0NDcwNiwgMS4yNTk5NywgMi4yMzI2NiwgMi43ODY2NyIsIFwKLSAgICAgICAgICAiMC4xNTgzNDcsIDAuMTg2NzI2LCAwLjQzMDM5LCAwLjg0NDYzNiwgMS4yNTk0OCwgMi4yMzI0NSwgMi43ODYyMiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTQxMzM5LCAwLjE1NTY2MiwgMC4yODMxNjcsIDAuNDk1NTY3LCAwLjcwNzA0NywgMS4yMDExNywgMS40ODM5NiIsIFwKLSAgICAgICAgICAiMC4xNTA2MDksIDAuMTY0OTU4LCAwLjI5MjU3NywgMC41MDQ4NDQsIDAuNzE2MzQsIDEuMjEwNDgsIDEuNDkyOTMiLCBcCi0gICAgICAgICAgIjAuMTYyMzg5LCAwLjE3NjcyNiwgMC4zMDQzNTgsIDAuNTE2NjA2LCAwLjcyODE5NCwgMS4yMjIzMiwgMS41MDQ2NCIsIFwKLSAgICAgICAgICAiMC4xNzQzNTYsIDAuMTg4NjczLCAwLjMxNjMyNCwgMC41Mjg1NzksIDAuNzQwMDc0LCAxLjIzNDIyLCAxLjUxNjQyIiwgXAotICAgICAgICAgICIwLjE4NTg1MSwgMC4yMDAyMDMsIDAuMzI3ODMsIDAuNTQwMDY2LCAwLjc1MTQ5MywgMS4yNDU3NywgMS41MjgxMSIsIFwKLSAgICAgICAgICAiMC4yMDM2MjQsIDAuMjE3OTc2LCAwLjM0NTU0MSwgMC41NTc4MTQsIDAuNzY5NjAyLCAxLjI2Mzg1LCAxLjU0NTgzIiwgXAotICAgICAgICAgICIwLjIxNzQ0OCwgMC4yMzE3NjcsIDAuMzU5MTMyLCAwLjU3MTY2LCAwLjc4MzEyMiwgMS4yNzczLCAxLjU1OTY0Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE2MjI2NSwgMC4xODk5NjEsIDAuNDQ2MDAxLCAwLjg4MDA5MSwgMS4zMTM4OSwgMi4zMzE4OCwgMi45MTMyMiIsIFwKLSAgICAgICAgICAiMC4xNjIzNiwgMC4xOTA2MzgsIDAuNDQ2MTEsIDAuODgwMDY4LCAxLjMxNTA1LCAyLjMzMTQ5LCAyLjkxMzk2IiwgXAotICAgICAgICAgICIwLjE2MjMyLCAwLjE5MDY3NCwgMC40NDU2NzgsIDAuODgwMDYxLCAxLjMxNTQ4LCAyLjMzMTg0LCAyLjkxMTg4IiwgXAotICAgICAgICAgICIwLjE2MjM4NCwgMC4xOTA3MTcsIDAuNDQ2MTE3LCAwLjg4MDA4LCAxLjMxNDQ0LCAyLjMzMTQ4LCAyLjkxMDA0IiwgXAotICAgICAgICAgICIwLjE2MjU1LCAwLjE5MDc5NywgMC40NDU2NjYsIDAuODgwMDcxLCAxLjMxNDM1LCAyLjMzMTg2LCAyLjkxMTgiLCBcCi0gICAgICAgICAgIjAuMTYzMjIyLCAwLjE5MTM3LCAwLjQ0NjE0MiwgMC44ODAwOSwgMS4zMTU0NCwgMi4zMzI5LCAyLjkxMzQ1IiwgXAotICAgICAgICAgICIwLjE2NDI0NiwgMC4xOTIwMDgsIDAuNDQ1ODQ3LCAwLjg4MDAzLCAxLjMxNTM2LCAyLjMzMTk2LCAyLjkxMzIzIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE0NDkwNSwgMC4xNTkxMTgsIDAuMjg0NjA5LCAwLjQ5MjE3LCAwLjY5OTA4NCwgMS4xODMyMywgMS40NjEyIiwgXAotICAgICAgICAgICIwLjE1Mzc4MiwgMC4xNjc5ODksIDAuMjkzMTMxLCAwLjUwMTQ3MywgMC43MDc5NjMsIDEuMTkyMTQsIDEuNDY5NTgiLCBcCi0gICAgICAgICAgIjAuMTY1MTc3LCAwLjE3OTM4OSwgMC4zMDQ1MDYsIDAuNTEyNzQxLCAwLjcxOTM4NywgMS4yMDM1NiwgMS40ODA5NiIsIFwKLSAgICAgICAgICAiMC4xNzY3MDIsIDAuMTkwOTE2LCAwLjMxNjA0LCAwLjUyNDI4LCAwLjczMDkzNCwgMS4yMTUxMSwgMS40OTE3OSIsIFwKLSAgICAgICAgICAiMC4xODc3OTgsIDAuMjAxOTk2LCAwLjMyNzQ0MiwgMC41MzUyNywgMC43NDIwNDEsIDEuMjI2MjIsIDEuNTAyODciLCBcCi0gICAgICAgICAgIjAuMjA0MiwgMC4yMTg0MjQsIDAuMzQzNjIxLCAwLjU1MTQ1MywgMC43NTk0LCAxLjI0MzM3LCAxLjUxOTQiLCBcCi0gICAgICAgICAgIjAuMjE3MDc3LCAwLjIzMTMyMSwgMC4zNTY2NzYsIDAuNTY0Mzg4LCAwLjc3MTkzMSwgMS4yNTY0LCAxLjUzMjgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTU4Mzk1LCAwLjE4NTExNCwgMC40MzAyNCwgMC44NDM4MzYsIDEuMjYwMDgsIDIuMjMyMTMsIDIuNzg3OTEiLCBcCi0gICAgICAgICAgIjAuMTU4MzU2LCAwLjE4NDIwNiwgMC40MzA3NCwgMC44NDMwMDgsIDEuMjYwMTIsIDIuMjMxNSwgMi43ODc1MSIsIFwKLSAgICAgICAgICAiMC4xNTgzMDksIDAuMTg0MTczLCAwLjQzMDc1NiwgMC44NDQsIDEuMjYwMTEsIDIuMjMxNTMsIDIuNzg2NjciLCBcCi0gICAgICAgICAgIjAuMTU4MzMsIDAuMTg0MjM1LCAwLjQzMDc2OSwgMC44NDQwMTMsIDEuMjYwMTIsIDIuMjMxNTMsIDIuNzg2NzIiLCBcCi0gICAgICAgICAgIjAuMTU3MTA2LCAwLjE4NDc4NCwgMC40MjkyMzksIDAuODQzOTc3LCAxLjI2MDA3LCAyLjIzMTU0LCAyLjc4NjY5IiwgXAotICAgICAgICAgICIwLjE1OTE3LCAwLjE4NDg2NiwgMC40MzA5MTYsIDAuODQzOTQ5LCAxLjI1ODQ0LCAyLjIzMTAyLCAyLjc4NjY1IiwgXAotICAgICAgICAgICIwLjE2MDE4NSwgMC4xODYxNTksIDAuNDI4Nzc5LCAwLjg0MzgwMSwgMS4yNTgwNywgMi4yMzEyMiwgMi43ODYyNCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTYxOSwgMC4wMDE2MjEsIDAuMDAxNjI4LCAwLjAwMTYzMSwgMC4wMDE2MzIsIDAuMDAxNjMzLCAwLjAwMTYzNCIsIFwKLSAgICAgICAgICAiMC4wMDE2MDEsIDAuMDAxNjAzLCAwLjAwMTYxMSwgMC4wMDE2MTQsIDAuMDAxNjE1LCAwLjAwMTYxNiwgMC4wMDE2MTYiLCBcCi0gICAgICAgICAgIjAuMDAxNTkzLCAwLjAwMTU5NSwgMC4wMDE2MDIsIDAuMDAxNjA2LCAwLjAwMTYwNywgMC4wMDE2MDgsIDAuMDAxNjA4IiwgXAotICAgICAgICAgICIwLjAwMTU5LCAwLjAwMTU5MiwgMC4wMDE2LCAwLjAwMTYwMywgMC4wMDE2MDQsIDAuMDAxNjA1LCAwLjAwMTYwNiIsIFwKLSAgICAgICAgICAiMC4wMDE1ODYsIDAuMDAxNTg4LCAwLjAwMTU5NiwgMC4wMDE1OTksIDAuMDAxNiwgMC4wMDE2MDIsIDAuMDAxNjAyIiwgXAotICAgICAgICAgICIwLjAwMTU4NSwgMC4wMDE1ODcsIDAuMDAxNTk2LCAwLjAwMTU5OSwgMC4wMDE2MDEsIDAuMDAxNjAyLCAwLjAwMTYwMiIsIFwKLSAgICAgICAgICAiMC4wMDE1ODYsIDAuMDAxNTg4LCAwLjAwMTU5NywgMC4wMDE2MDEsIDAuMDAxNjAzLCAwLjAwMTYwNCwgMC4wMDE2MDQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDMxNDEsIDAuMDAzMTQzLCAwLjAwMzE1MSwgMC4wMDMxNTQsIDAuMDAzMTU1LCAwLjAwMzE1NiwgMC4wMDMxNTYiLCBcCi0gICAgICAgICAgIjAuMDAzMTMzLCAwLjAwMzEzNSwgMC4wMDMxNDMsIDAuMDAzMTQ2LCAwLjAwMzE0NywgMC4wMDMxNDgsIDAuMDAzMTQ4IiwgXAotICAgICAgICAgICIwLjAwMzEyOCwgMC4wMDMxMywgMC4wMDMxMzgsIDAuMDAzMTQxLCAwLjAwMzE0MiwgMC4wMDMxNDMsIDAuMDAzMTQzIiwgXAotICAgICAgICAgICIwLjAwMzEyNSwgMC4wMDMxMjgsIDAuMDAzMTM1LCAwLjAwMzEzOSwgMC4wMDMxNCwgMC4wMDMxNDEsIDAuMDAzMTQxIiwgXAotICAgICAgICAgICIwLjAwMzEyNCwgMC4wMDMxMjYsIDAuMDAzMTM0LCAwLjAwMzEzOCwgMC4wMDMxMzksIDAuMDAzMTQsIDAuMDAzMTQxIiwgXAotICAgICAgICAgICIwLjAwMzEyMywgMC4wMDMxMjUsIDAuMDAzMTM0LCAwLjAwMzEzOCwgMC4wMDMxMzksIDAuMDAzMTQsIDAuMDAzMTQxIiwgXAotICAgICAgICAgICIwLjAwMzEyMiwgMC4wMDMxMjUsIDAuMDAzMTM0LCAwLjAwMzEzOCwgMC4wMDMxMzksIDAuMDAzMTQyLCAwLjAwMzE0MSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTczNSwgMC4wMDE3MzcsIDAuMDAxNzQ0LCAwLjAwMTc0NiwgMC4wMDE3NDcsIDAuMDAxNzQ3LCAwLjAwMTc0OCIsIFwKLSAgICAgICAgICAiMC4wMDE3MTYsIDAuMDAxNzE4LCAwLjAwMTcyNSwgMC4wMDE3MjgsIDAuMDAxNzI4LCAwLjAwMTczLCAwLjAwMTcyOSIsIFwKLSAgICAgICAgICAiMC4wMDE3LCAwLjAwMTcwMiwgMC4wMDE3MDksIDAuMDAxNzEyLCAwLjAwMTcxMiwgMC4wMDE3MTMsIDAuMDAxNzE0IiwgXAotICAgICAgICAgICIwLjAwMTY5MywgMC4wMDE2OTUsIDAuMDAxNzAyLCAwLjAwMTcwNSwgMC4wMDE3MDYsIDAuMDAxNzA3LCAwLjAwMTcwNyIsIFwKLSAgICAgICAgICAiMC4wMDE2ODcsIDAuMDAxNjg5LCAwLjAwMTY5NywgMC4wMDE3MDEsIDAuMDAxNzAxLCAwLjAwMTcwMywgMC4wMDE3MDMiLCBcCi0gICAgICAgICAgIjAuMDAxNjg4LCAwLjAwMTY5LCAwLjAwMTY5OSwgMC4wMDE3MDIsIDAuMDAxNzA0LCAwLjAwMTcwNSwgMC4wMDE3MDYiLCBcCi0gICAgICAgICAgIjAuMDAxNjk2LCAwLjAwMTY5OCwgMC4wMDE3MDYsIDAuMDAxNzEsIDAuMDAxNzExLCAwLjAwMTcxMiwgMC4wMDE3MTMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDMwOTcsIDAuMDAzMDk5LCAwLjAwMzEwNiwgMC4wMDMxMDksIDAuMDAzMTEsIDAuMDAzMTExLCAwLjAwMzExMSIsIFwKLSAgICAgICAgICAiMC4wMDMwODcsIDAuMDAzMDg5LCAwLjAwMzA5NiwgMC4wMDMwOTksIDAuMDAzMSwgMC4wMDMxMDEsIDAuMDAzMTAyIiwgXAotICAgICAgICAgICIwLjAwMzA3MiwgMC4wMDMwNzQsIDAuMDAzMDgxLCAwLjAwMzA4NCwgMC4wMDMwODYsIDAuMDAzMDg3LCAwLjAwMzA4NyIsIFwKLSAgICAgICAgICAiMC4wMDMwNiwgMC4wMDMwNjIsIDAuMDAzMDcsIDAuMDAzMDczLCAwLjAwMzA3NCwgMC4wMDMwNzUsIDAuMDAzMDc2IiwgXAotICAgICAgICAgICIwLjAwMzA0OSwgMC4wMDMwNTEsIDAuMDAzMDYxLCAwLjAwMzA2NCwgMC4wMDMwNjYsIDAuMDAzMDY3LCAwLjAwMzA2OCIsIFwKLSAgICAgICAgICAiMC4wMDMwNDIsIDAuMDAzMDQ1LCAwLjAwMzA1NCwgMC4wMDMwNTcsIDAuMDAzMDU5LCAwLjAwMzA2LCAwLjAwMzA2MSIsIFwKLSAgICAgICAgICAiMC4wMDMwMzksIDAuMDAzMDQxLCAwLjAwMzA1LCAwLjAwMzA1NCwgMC4wMDMwNTYsIDAuMDAzMDU3LCAwLjAwMzA1OCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNJIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDE3MzgsIDAuMDAxNzQsIDAuMDAxNzQ3LCAwLjAwMTc1LCAwLjAwMTc1LCAwLjAwMTc1MSwgMC4wMDE3NTEiLCBcCi0gICAgICAgICAgIjAuMDAxNzI5LCAwLjAwMTczMSwgMC4wMDE3MzgsIDAuMDAxNzQxLCAwLjAwMTc0MywgMC4wMDE3NDMsIDAuMDAxNzQzIiwgXAotICAgICAgICAgICIwLjAwMTcxNiwgMC4wMDE3MTgsIDAuMDAxNzI2LCAwLjAwMTcyOSwgMC4wMDE3MywgMC4wMDE3MywgMC4wMDE3MzIiLCBcCi0gICAgICAgICAgIjAuMDAxNzA2LCAwLjAwMTcwOCwgMC4wMDE3MTYsIDAuMDAxNzE5LCAwLjAwMTcyLCAwLjAwMTcyMSwgMC4wMDE3MjIiLCBcCi0gICAgICAgICAgIjAuMDAxNzAxLCAwLjAwMTcwMywgMC4wMDE3MTEsIDAuMDAxNzE1LCAwLjAwMTcxNywgMC4wMDE3MTcsIDAuMDAxNzE3IiwgXAotICAgICAgICAgICIwLjAwMTcwMSwgMC4wMDE3MDMsIDAuMDAxNzEyLCAwLjAwMTcxNiwgMC4wMDE3MTcsIDAuMDAxNzE4LCAwLjAwMTcxOSIsIFwKLSAgICAgICAgICAiMC4wMDE3MDcsIDAuMDAxNzA5LCAwLjAwMTcxOCwgMC4wMDE3MjEsIDAuMDAxNzIzLCAwLjAwMTcyNCwgMC4wMDE3MjQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI4MTYsIDAuMDAyODE4LCAwLjAwMjgyNiwgMC4wMDI4MjksIDAuMDAyODMsIDAuMDAyODMxLCAwLjAwMjgzMiIsIFwKLSAgICAgICAgICAiMC4wMDI4MTYsIDAuMDAyODE4LCAwLjAwMjgyNiwgMC4wMDI4MjksIDAuMDAyODMsIDAuMDAyODMxLCAwLjAwMjgzMiIsIFwKLSAgICAgICAgICAiMC4wMDI4MTYsIDAuMDAyODE5LCAwLjAwMjgyNywgMC4wMDI4MywgMC4wMDI4MzIsIDAuMDAyODMzLCAwLjAwMjgzMyIsIFwKLSAgICAgICAgICAiMC4wMDI4MTgsIDAuMDAyODIsIDAuMDAyODI4LCAwLjAwMjgzMiwgMC4wMDI4MzQsIDAuMDAyODM1LCAwLjAwMjgzNiIsIFwKLSAgICAgICAgICAiMC4wMDI4MiwgMC4wMDI4MjIsIDAuMDAyODMxLCAwLjAwMjgzNiwgMC4wMDI4MzcsIDAuMDAyODM5LCAwLjAwMjgzOSIsIFwKLSAgICAgICAgICAiMC4wMDI4MjYsIDAuMDAyODI4LCAwLjAwMjgzOCwgMC4wMDI4NDMsIDAuMDAyODQ0LCAwLjAwMjg0NiwgMC4wMDI4NDYiLCBcCi0gICAgICAgICAgIjAuMDAyODM1LCAwLjAwMjgzNywgMC4wMDI4NDcsIDAuMDAyODUyLCAwLjAwMjg1MywgMC4wMDI4NTQsIDAuMDAyODU1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMTQ4NzI7Ci0gICAgZnVuY3Rpb24gOiAiKChBXkIpXkNJKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTU1OTM2LCAwLjE3MDI2NCwgMC4yOTgxMjQsIDAuNTEwNTAzLCAwLjcyMjYzOSwgMS4yMTc1MiwgMS40OTk5NCIsIFwKLSAgICAgICAgICAiMC4xNjM5NDQsIDAuMTc4Mjc0LCAwLjMwNjE0OCwgMC41MTg1NTIsIDAuNzMwNjQ4LCAxLjIyNTMzLCAxLjUwNzg2IiwgXAotICAgICAgICAgICIwLjE3Mjk2NiwgMC4xODcyODMsIDAuMzE1MTYzLCAwLjUyNzU2MSwgMC43Mzk2NTcsIDEuMjM0NDUsIDEuNTE2OTQiLCBcCi0gICAgICAgICAgIjAuMTgxNzksIDAuMTk2MTI5LCAwLjMyNDA0NywgMC41MzY0MTMsIDAuNzQ4NTA4LCAxLjI0MzE4LCAxLjUyNTc0IiwgXAotICAgICAgICAgICIwLjE5MDM2OCwgMC4yMDQ2NjksIDAuMzMyNTY0LCAwLjU0NTA1NSwgMC43NTcwNTYsIDEuMjUxNzYsIDEuNTM0MzciLCBcCi0gICAgICAgICAgIjAuMjAzODE3LCAwLjIxODE3MiwgMC4zNDYwNDgsIDAuNTU4NDQ5LCAwLjc3MDUyNiwgMS4yNjUzNywgMS41NDc4IiwgXAotICAgICAgICAgICIwLjIxNDk5MywgMC4yMjkzMDYsIDAuMzU3MjIyLCAwLjU2OTYzNywgMC43ODE4MywgMS4yNzYzNywgMS41NTg5NiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNTkzOTksIDAuMTg3NjksIDAuNDQ2MjY2LCAwLjg4MTMzOSwgMS4zMTUxNiwgMi4zMzA3MywgMi45MDg4OSIsIFwKLSAgICAgICAgICAiMC4xNTk0NTcsIDAuMTg3Njc3LCAwLjQ0NjIxNywgMC44ODEzNDgsIDEuMzE1MzYsIDIuMzMxMjUsIDIuOTEzODIiLCBcCi0gICAgICAgICAgIjAuMTU5NDE0LCAwLjE4NzY3MywgMC40NDYyOTUsIDAuODgxMzE0LCAxLjMxNTEzLCAyLjMzMzM1LCAyLjkxMTg2IiwgXAotICAgICAgICAgICIwLjE1OTQxLCAwLjE4NzcwMywgMC40NDY0MTYsIDAuODgxMTg5LCAxLjMxNTI3LCAyLjMzMDEzLCAyLjkxMzcyIiwgXAotICAgICAgICAgICIwLjE1OTUzNywgMC4xODc3MzIsIDAuNDQ2MzA2LCAwLjg3OTY4OCwgMS4zMTUwNywgMi4zMzExLCAyLjkxMjMyIiwgXAotICAgICAgICAgICIwLjE1OTc2OSwgMC4xODc5NTYsIDAuNDQ2MzMxLCAwLjg4MTE4MSwgMS4zMTY0OSwgMi4zMzMsIDIuOTExNjYiLCBcCi0gICAgICAgICAgIjAuMTYwMTM5LCAwLjE4ODIyNywgMC40NDY0NzYsIDAuODgxMjAxLCAxLjMxNjczLCAyLjMzMTEsIDIuOTExODEiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTU4MDQ5LCAwLjE3MjE3OCwgMC4yOTc0OTcsIDAuNTA1NTEyLCAwLjcxMzEyMiwgMS4xOTc0NSwgMS40NzQxOCIsIFwKLSAgICAgICAgICAiMC4xNjYxOTQsIDAuMTgwMzI3LCAwLjMwNTY0OSwgMC41MTM2NDksIDAuNzIxMywgMS4yMDU2MSwgMS40ODIzNSIsIFwKLSAgICAgICAgICAiMC4xNzQ1OTgsIDAuMTg4NzQ1LCAwLjMxNDA1NywgMC41MjIwNjUsIDAuNzI5Njk5LCAxLjIxNDA4LCAxLjQ5MDc3IiwgXAotICAgICAgICAgICIwLjE4MjQ4OSwgMC4xOTY2MDQsIDAuMzIxOTU3LCAwLjUyOTk2NywgMC43Mzc1NzYsIDEuMjIxOTMsIDEuNDk4NjIiLCBcCi0gICAgICAgICAgIjAuMTkwMDI5LCAwLjIwNDE1OCwgMC4zMjk1MDIsIDAuNTM3NDgsIDAuNzQ1MTQyLCAxLjIyOTQ4LCAxLjUwNjE5IiwgXAotICAgICAgICAgICIwLjIwMTUzNCwgMC4yMTU2NjMsIDAuMzQxMDA3LCAwLjU0ODk2NCwgMC43NTY2NTYsIDEuMjQwOTcsIDEuNTE3NjgiLCBcCi0gICAgICAgICAgIjAuMjEwNzk3LCAwLjIyNDk2MiwgMC4zNTAzNDEsIDAuNTU4MzA4LCAwLjc2NTk4NSwgMS4yNTAzMSwgMS41MjcwMSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNTQ3MTUsIDAuMTgxNTQ0LCAwLjQyODA1NiwgMC44NDE5MTcsIDEuMjYwNTEsIDIuMjMxNjQsIDIuNzg4MDciLCBcCi0gICAgICAgICAgIjAuMTU0NzMxLCAwLjE4MTQ3NywgMC40Mjc2ODksIDAuODQxNzk5LCAxLjI2MDE5LCAyLjIzMDM0LCAyLjc4OTY3IiwgXAotICAgICAgICAgICIwLjE1NDY5NiwgMC4xODE1OCwgMC40MjgwMjksIDAuODQxNjY1LCAxLjI1ODc3LCAyLjIzMzE0LCAyLjc4NzQ0IiwgXAotICAgICAgICAgICIwLjE1NDY5OCwgMC4xODE1NjEsIDAuNDI4MTQyLCAwLjg0MjEzLCAxLjI2MDU4LCAyLjIzMTk1LCAyLjc4Nzg5IiwgXAotICAgICAgICAgICIwLjE1NDczMywgMC4xODE2NjcsIDAuNDI4MDc5LCAwLjg0MjE3LCAxLjI2MDQ1LCAyLjIzMTk2LCAyLjc4Nzg3IiwgXAotICAgICAgICAgICIwLjE1NTA4NywgMC4xODE4NzQsIDAuNDI3NTk1LCAwLjg0MzcwMSwgMS4yNjAzNiwgMi4yMzMzOSwgMi43ODc4OCIsIFwKLSAgICAgICAgICAiMC4xNTU1ODYsIDAuMTgyMjg2LCAwLjQyODQ2MywgMC44NDE4NCwgMS4yNjA0LCAyLjIzMjA5LCAyLjc4OCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xODgxMTQsIDAuMjAyMjYsIDAuMzI5NDc3LCAwLjU0MTM3MSwgMC43NTMyNTUsIDEuMjQ3NTUsIDEuNTMwMDkiLCBcCi0gICAgICAgICAgIjAuMTk3NTczLCAwLjIxMTcyMSwgMC4zMzg5MzQsIDAuNTUwODI2LCAwLjc2MjcyMywgMS4yNTcwMiwgMS41Mzk1MiIsIFwKLSAgICAgICAgICAiMC4yMDc5NiwgMC4yMjIxMSwgMC4zNDkzMjUsIDAuNTYxMjIsIDAuNzczMTA2LCAxLjI2NzU0LCAxLjU0OTkzIiwgXAotICAgICAgICAgICIwLjIxNzgxNSwgMC4yMzE5NjgsIDAuMzU5MTksIDAuNTcxMDg0LCAwLjc4Mjk1OCwgMS4yNzczMSwgMS41NTk4MSIsIFwKLSAgICAgICAgICAiMC4yMjcyMjYsIDAuMjQxMzY5LCAwLjM2ODU3LCAwLjU4MDQ2MywgMC43OTIzNDYsIDEuMjg2NzEsIDEuNTY5MiIsIFwKLSAgICAgICAgICAiMC4yNDE0MTQsIDAuMjU1NTMzLCAwLjM4Mjc2NCwgMC41OTQ3MTUsIDAuODA2NTM2LCAxLjMwMDk0LCAxLjU4MzM1IiwgXAotICAgICAgICAgICIwLjI1MjQwNSwgMC4yNjY1NTksIDAuMzkzNzY4LCAwLjYwNTY2NiwgMC44MTc1NTksIDEuMzExOTEsIDEuNTk0NCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNTU5OTUsIDAuMTg0MzMxLCAwLjQ0Mzc5MSwgMC44NzgyMiwgMS4zMTQ4OSwgMi4zMzEzOSwgMi45MDg0MiIsIFwKLSAgICAgICAgICAiMC4xNTYwMDksIDAuMTg0MjQzLCAwLjQ0Mzk4OSwgMC44NzkzMDUsIDEuMzE0OTMsIDIuMzMxMjksIDIuOTA5MDEiLCBcCi0gICAgICAgICAgIjAuMTU2MDE2LCAwLjE4NDI1LCAwLjQ0Mzc5LCAwLjg3ODk0OSwgMS4zMTQ3NiwgMi4zMzE0OCwgMi45MDg3IiwgXAotICAgICAgICAgICIwLjE1NTg2OSwgMC4xODQzMjgsIDAuNDQzNzk4LCAwLjg3ODMwMywgMS4zMTQ3NSwgMi4zMzExMiwgMi45MTI0MiIsIFwKLSAgICAgICAgICAiMC4xNTU5NDEsIDAuMTg0MzE1LCAwLjQ0Mzc5NywgMC44NzgyNjgsIDEuMzE0ODcsIDIuMzMxMzgsIDIuOTEyNDYiLCBcCi0gICAgICAgICAgIjAuMTU2MDI4LCAwLjE4NDM1NiwgMC40NDM5OTMsIDAuODc4MjIsIDEuMzE0OTEsIDIuMzMxNCwgMi45MTI0MiIsIFwKLSAgICAgICAgICAiMC4xNTYwMjksIDAuMTg0MzgzLCAwLjQ0MzgwNSwgMC44NzkxOTgsIDEuMzE0OSwgMi4zMzEyOCwgMi45MDgzOCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xODY0NjksIDAuMjAwMzkzLCAwLjMyNDkzNywgMC41MzI0MjgsIDAuNzM5ODg2LCAxLjIyMzk4LCAxLjUwMDYzIiwgXAotICAgICAgICAgICIwLjE5NTMxMSwgMC4yMDkyMzYsIDAuMzMzNzgzLCAwLjU0MTI3OCwgMC43NDg3NDcsIDEuMjMyODQsIDEuNTA5NDkiLCBcCi0gICAgICAgICAgIjAuMjA2MTE4LCAwLjIyMDA0MSwgMC4zNDQ1OTYsIDAuNTUyMDg2LCAwLjc1OTU4NSwgMS4yNDM2MywgMS41MjAxNCIsIFwKLSAgICAgICAgICAiMC4yMTY4ODgsIDAuMjMwODE3LCAwLjM1NTM2NCwgMC41NjI4NjQsIDAuNzcwNDM3LCAxLjI1NDM5LCAxLjUzMTA3IiwgXAotICAgICAgICAgICIwLjIyNzIyMSwgMC4yNDExNTIsIDAuMzY1Njk0LCAwLjU3MzE5MywgMC43ODA2NDUsIDEuMjY0NzUsIDEuNTQxMzQiLCBcCi0gICAgICAgICAgIjAuMjQzMTQyLCAwLjI1NzA3MiwgMC4zODE2MSwgMC41ODkxMDcsIDAuNzk2NTk3LCAxLjI4MDU2LCAxLjU1NzI0IiwgXAotICAgICAgICAgICIwLjI1NTc2OCwgMC4yNjk2OTgsIDAuMzk0MjQyLCAwLjYwMTc0NywgMC44MDkyNDksIDEuMjkzMjQsIDEuNTY5ODciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTUxNjQsIDAuMTc4NDc5LCAwLjQyNTA1LCAwLjg0MTI0MiwgMS4yNTY0LCAyLjIzMDk1LCAyLjc4MjU4IiwgXAotICAgICAgICAgICIwLjE1MTU5NCwgMC4xNzg0NzksIDAuNDI1MDQ0LCAwLjg0MTE2MSwgMS4yNTc4NSwgMi4yMzA3NCwgMi43ODY4IiwgXAotICAgICAgICAgICIwLjE1MTU4NywgMC4xNzg0ODMsIDAuNDI0NjQ5LCAwLjg0MTE2MSwgMS4yNTYyMiwgMi4yMzA1NywgMi43ODQ2MiIsIFwKLSAgICAgICAgICAiMC4xNTE1ODUsIDAuMTc4NDg2LCAwLjQyNDg1OSwgMC44NDExNjIsIDEuMjU2MzEsIDIuMjMwNDcsIDIuNzg2NzQiLCBcCi0gICAgICAgICAgIjAuMTUxNTk0LCAwLjE3ODQ5OCwgMC40MjUwNDQsIDAuODQxMTQsIDEuMjU2MywgMi4yMzA1OCwgMi43ODYyNiIsIFwKLSAgICAgICAgICAiMC4xNTE2MDEsIDAuMTc4NSwgMC40MjUwMzgsIDAuODQxMTI0LCAxLjI1NjI3LCAyLjIzLCAyLjc4NjIxIiwgXAotICAgICAgICAgICIwLjE1MTYxNSwgMC4xNzg1MjksIDAuNDI0NzE2LCAwLjg0MTAwMywgMS4yNTYyNCwgMi4yMjk4NywgMi43ODU3MSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNTM3NTIsIDAuMTY4MDg1LCAwLjI5NjAxOCwgMC41MDgzODksIDAuNzIwNDgyLCAxLjIxNTE2LCAxLjQ5Nzg0IiwgXAotICAgICAgICAgICIwLjE2MjAyNCwgMC4xNzYzNSwgMC4zMDQyNDEsIDAuNTE2Njc1LCAwLjcyODczMiwgMS4yMjM2NSwgMS41MDYwMiIsIFwKLSAgICAgICAgICAiMC4xNzI0MzgsIDAuMTg2Nzg1LCAwLjMxNDU5NCwgMC41MjY5ODMsIDAuNzM5MDk3LCAxLjIzMzc5LCAxLjUxNjM4IiwgXAotICAgICAgICAgICIwLjE4Mjg2NCwgMC4xOTcyMDcsIDAuMzI1MTE0LCAwLjUzNzUyNCwgMC43NDk2MTEsIDEuMjQ0MjgsIDEuNTI2ODQiLCBcCi0gICAgICAgICAgIjAuMTkzMTQsIDAuMjA3NDg2LCAwLjMzNTM5MywgMC41NDc4MDQsIDAuNzU5ODg5LCAxLjI1NDU2LCAxLjUzNzE0IiwgXAotICAgICAgICAgICIwLjIwODgzNiwgMC4yMjMxNzUsIDAuMzUxMDc5LCAwLjU2MzQ3MywgMC43NzU1NzcsIDEuMjcwMjcsIDEuNTUyODYiLCBcCi0gICAgICAgICAgIjAuMjIxNTg0LCAwLjIzNTkxMiwgMC4zNjM4NTIsIDAuNTc2MjM2LCAwLjc4ODMxNCwgMS4yODI5NywgMS41NjU1OSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNTk0NTksIDAuMTg3Njk0LCAwLjQ0NjQyNywgMC44ODEzMjcsIDEuMzE1MzEsIDIuMzMwMDksIDIuOTA5MjUiLCBcCi0gICAgICAgICAgIjAuMTU5NDA5LCAwLjE4NzcsIDAuNDQ2MjkxLCAwLjg3OTM0OSwgMS4zMTQ5NiwgMi4zMzE0OSwgMi45MTAwNSIsIFwKLSAgICAgICAgICAiMC4xNTkzNjIsIDAuMTg3NjQyLCAwLjQ0NjI3MiwgMC44ODAxNzksIDEuMzE1MSwgMi4zMzAwNiwgMi45MTAwNiIsIFwKLSAgICAgICAgICAiMC4xNTk0MzksIDAuMTg3NjQ2LCAwLjQ0NjI0LCAwLjg4MTI1NywgMS4zMTUxNiwgMi4zMzAxMiwgMi45MTE2NiIsIFwKLSAgICAgICAgICAiMC4xNTk1MDIsIDAuMTg3NzA3LCAwLjQ0NjMwNCwgMC44ODEyNTksIDEuMzE1MjMsIDIuMzMwMTUsIDIuOTExNzUiLCBcCi0gICAgICAgICAgIjAuMTU5NjYsIDAuMTg3ODY2LCAwLjQ0NjI5MiwgMC44ODEwODQsIDEuMzE0OTQsIDIuMzMwODQsIDIuOTExNDEiLCBcCi0gICAgICAgICAgIjAuMTYwMDcyLCAwLjE4ODIxMywgMC40NDY1NDMsIDAuODgwMTEzLCAxLjMxNjQxLCAyLjMyOTczLCAyLjkxMTY0Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE1NDgsIDAuMTY4OTMxLCAwLjI5NDI5MSwgMC41MDIyODMsIDAuNzA5OTk2LCAxLjE5NDI0LCAxLjQ3MTA0IiwgXAotICAgICAgICAgICIwLjE2Mjg0LCAwLjE3Njk1LCAwLjMwMjMwNSwgMC41MTAyODcsIDAuNzE3OTQ3LCAxLjIwMjI5LCAxLjQ3ODk5IiwgXAotICAgICAgICAgICIwLjE3MjUyOCwgMC4xODY2NTcsIDAuMzEyMDA4LCAwLjUyMDA0LCAwLjcyNzY0OSwgMS4yMTIsIDEuNDg4NyIsIFwKLSAgICAgICAgICAiMC4xODIwNjQsIDAuMTk2MjExLCAwLjMyMTU0MywgMC41Mjk1MDYsIDAuNzM3MjEsIDEuMjIxNjIsIDEuNDk4MjQiLCBcCi0gICAgICAgICAgIjAuMTkxMzEyLCAwLjIwNTQ0NSwgMC4zMzA4MDgsIDAuNTM4NzY5LCAwLjc0NjQ2NywgMS4yMzA4LCAxLjUwNzUxIiwgXAotICAgICAgICAgICIwLjIwNTMyMiwgMC4yMTk0NzMsIDAuMzQ0ODQsIDAuNTUyODI5LCAwLjc2MDQ4NCwgMS4yNDQ4MywgMS41MjE1NCIsIFwKLSAgICAgICAgICAiMC4yMTY3NTMsIDAuMjMwOTI5LCAwLjM1NjMzNiwgMC41NjQzMiwgMC43NzIwMDQsIDEuMjU2MzEsIDEuNTMzMDMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTU0NzMzLCAwLjE4MTQ5NCwgMC40MjgyNzEsIDAuODQxODY0LCAxLjI1NzI2LCAyLjIyOTQ4LCAyLjc4OTA3IiwgXAotICAgICAgICAgICIwLjE1NDcxNSwgMC4xODE1OSwgMC40Mjc0NjgsIDAuODQyMTk4LCAxLjI2MDU2LCAyLjIyOTg2LCAyLjc4NDc4IiwgXAotICAgICAgICAgICIwLjE1NDY5NiwgMC4xODE1NzYsIDAuNDI3NDk3LCAwLjg0MTkwOSwgMS4yNjA1NiwgMi4yMzI0LCAyLjc4NDYxIiwgXAotICAgICAgICAgICIwLjE1NDcwOSwgMC4xODE1NjMsIDAuNDI4MDYyLCAwLjg0MjY0NSwgMS4yNjAyNywgMi4yMzI4OCwgMi43ODQ1NCIsIFwKLSAgICAgICAgICAiMC4xNTQ3ODksIDAuMTgxNzA4LCAwLjQyODA4OCwgMC44NDI1MDcsIDEuMjYwNDYsIDIuMjMwODksIDIuNzg4OTkiLCBcCi0gICAgICAgICAgIjAuMTU1MTgsIDAuMTgxOTc2LCAwLjQyODIwMiwgMC44NDI2MTIsIDEuMjYwNTMsIDIuMjMxOTYsIDIuNzg3ODQiLCBcCi0gICAgICAgICAgIjAuMTU1Njg2LCAwLjE4MjQ0LCAwLjQyODQ1NCwgMC44NDM2OTYsIDEuMjYwMywgMi4yMzMzNCwgMi43ODgxNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xOTAzNzQsIDAuMjA0NTY2LCAwLjMzMTk0NiwgMC41NDM5NSwgMC43NTU4OCwgMS4yNTAyNywgMS41MzI3NiIsIFwKLSAgICAgICAgICAiMC4xOTk2MDIsIDAuMjEzNzg4LCAwLjM0MTE2LCAwLjU1MzIyNywgMC43NjUxMDksIDEuMjU5NSwgMS41NDIwMSIsIFwKLSAgICAgICAgICAiMC4yMDk1NjUsIDAuMjIzNzMyLCAwLjM1MTExLCAwLjU2MzIxMiwgMC43NzUwNiwgMS4yNjk0NSwgMS41NTIwMSIsIFwKLSAgICAgICAgICAiMC4yMTkyNzIsIDAuMjMzNDM5LCAwLjM2MDgxNCwgMC41NzI4OTMsIDAuNzg0NzYzLCAxLjI3OTE2LCAxLjU2MTY5IiwgXAotICAgICAgICAgICIwLjIyODQ2OCwgMC4yNDI2NDgsIDAuMzcwMDMyLCAwLjU4MjAzNywgMC43OTM5ODIsIDEuMjg4MzQsIDEuNTcwODUiLCBcCi0gICAgICAgICAgIjAuMjQyNjM5LCAwLjI1Njc2NCwgMC4zODM4MzksIDAuNTk1Nzc5LCAwLjgwNzYyNywgMS4zMDE5OSwgMS41ODQ1NCIsIFwKLSAgICAgICAgICAiMC4yNTU0NzgsIDAuMjY5NjUzLCAwLjM5NjY5MSwgMC42MDg2MywgMC44MjA0MDYsIDEuMzE0ODMsIDEuNTk3MjgiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTU1OTYzLCAwLjE4NDMyLCAwLjQ0MzgzOSwgMC44Nzk1NjcsIDEuMzE0ODQsIDIuMzI4NzUsIDIuOTA4ODEiLCBcCi0gICAgICAgICAgIjAuMTU1OTY3LCAwLjE4NDI5LCAwLjQ0NDMyLCAwLjg3OTY5NSwgMS4zMTQ4MywgMi4zMjg4LCAyLjkxMjQzIiwgXAotICAgICAgICAgICIwLjE1NTk2NywgMC4xODQyODYsIDAuNDQ0MzMsIDAuODc4MTg3LCAxLjMxNDc3LCAyLjMzMTA1LCAyLjkxMjM4IiwgXAotICAgICAgICAgICIwLjE1NTk1NSwgMC4xODQzMTIsIDAuNDQ0MzI4LCAwLjg3OTczOCwgMS4zMTM4MSwgMi4zMzExNiwgMi45MTIxMiIsIFwKLSAgICAgICAgICAiMC4xNTU5NzIsIDAuMTg0MjksIDAuNDQzODk2LCAwLjg3OTU2NCwgMS4zMTQ3MywgMi4zMzExMSwgMi45MTIzNiIsIFwKLSAgICAgICAgICAiMC4xNTU5NjQsIDAuMTg0MjY3LCAwLjQ0MzkxNywgMC44Nzk1NTgsIDEuMzE0ODYsIDIuMzMxMzUsIDIuOTA4OTQiLCBcCi0gICAgICAgICAgIjAuMTU2MDQ1LCAwLjE4NDI4OCwgMC40NDM4MDksIDAuODc5NTc4LCAxLjMxNDY4LCAyLjMzMTI4LCAyLjkxMTQ4Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE4NTM1LCAwLjE5OTI3NiwgMC4zMjM4MjksIDAuNTMxMzA3LCAwLjczODg2MywgMS4yMjI4NCwgMS40OTkzOSIsIFwKLSAgICAgICAgICAiMC4xOTQzMzgsIDAuMjA4MjUsIDAuMzMyNzk2LCAwLjU0MDI4NCwgMC43NDc3OSwgMS4yMzE3NiwgMS41MDg0MSIsIFwKLSAgICAgICAgICAiMC4yMDU5MjMsIDAuMjE5ODQxLCAwLjM0NDM4MywgMC41NTE4NzMsIDAuNzU5MzY5LCAxLjI0MzQ1LCAxLjUyIiwgXAotICAgICAgICAgICIwLjIxNzc2NSwgMC4yMzE2OTksIDAuMzU2MjMsIDAuNTYzNzcyLCAwLjc3MTIwMywgMS4yNTUyMywgMS41MzE4NyIsIFwKLSAgICAgICAgICAiMC4yMjkyNDYsIDAuMjQzMTY3LCAwLjM2NzcwOSwgMC41NzUzNzEsIDAuNzgyNjYyLCAxLjI2Njg1LCAxLjU0MzUxIiwgXAotICAgICAgICAgICIwLjI0NzQ0MSwgMC4yNjEzNiwgMC4zODU5MDMsIDAuNTkzMzcxLCAwLjgwMDg2NywgMS4yODQ5NCwgMS41NjE1MSIsIFwKLSAgICAgICAgICAiMC4yNjEyMTcsIDAuMjc1MTM3LCAwLjM5OTY2OSwgMC42MDcxNzMsIDAuODE0NjQzLCAxLjI5ODY5LCAxLjU3NTM2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE1MTUwOSwgMC4xNzgzNiwgMC40MjUyNTksIDAuODQxNDY5LCAxLjI1NjgyLCAyLjIzMDk2LCAyLjc4MzIiLCBcCi0gICAgICAgICAgIjAuMTUxNTI0LCAwLjE3ODM1NCwgMC40MjUwOTYsIDAuODQxMzQsIDEuMjU2NjYsIDIuMjI5MzIsIDIuNzg2NTQiLCBcCi0gICAgICAgICAgIjAuMTUxNTA5LCAwLjE3ODQzNywgMC40MjUwMjEsIDAuODQxMTY4LCAxLjI1OCwgMi4yMzA4MywgMi43ODY0NSIsIFwKLSAgICAgICAgICAiMC4xNTE0NDUsIDAuMTc4MzU5LCAwLjQyNDk4OCwgMC44NDE1NDEsIDEuMjU2NTYsIDIuMjMwMzEsIDIuNzg2MzYiLCBcCi0gICAgICAgICAgIjAuMTUxNTAzLCAwLjE3ODQzNiwgMC40MjUwMTIsIDAuODQxNDc1LCAxLjI1Nzc3LCAyLjIzMDQyLCAyLjc4NjU3IiwgXAotICAgICAgICAgICIwLjE1MTQ5OCwgMC4xNzgzMzQsIDAuNDI0OTYsIDAuODQwODU3LCAxLjI1NjU1LCAyLjIzMDQxLCAyLjc4NjA5IiwgXAotICAgICAgICAgICIwLjE1MTU1LCAwLjE3ODQxNCwgMC40MjQ5OTIsIDAuODQxMjI4LCAxLjI1Nzk4LCAyLjIzMDMyLCAyLjc4NjQ5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNJIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNTI5MjQsIDAuMTY3MjU3LCAwLjI5NTE3MywgMC41MDc1NjYsIDAuNzE5NzAzLCAxLjIxNDQyLCAxLjQ5NzAzIiwgXAotICAgICAgICAgICIwLjE2MDk3NiwgMC4xNzUzMDksIDAuMzAzMjEyLCAwLjUxNTYyMSwgMC43Mjc3MjMsIDEuMjIyNDcsIDEuNTA1MDEiLCBcCi0gICAgICAgICAgIjAuMTcxNDc5LCAwLjE4NTgsIDAuMzEzNzA1LCAwLjUyNjExMSwgMC43MzgzMjEsIDEuMjMyODcsIDEuNTE1NTMiLCBcCi0gICAgICAgICAgIjAuMTgyNDg3LCAwLjE5NjgxNCwgMC4zMjQ3MzcsIDAuNTM3MTQ5LCAwLjc0OTI0NywgMS4yNDM5OCwgMS41MjY1MiIsIFwKLSAgICAgICAgICAiMC4xOTM0NTksIDAuMjA3ODAxLCAwLjMzNTc0NywgMC41NDgxMywgMC43NjAyMywgMS4yNTQ5MSwgMS41Mzc2OCIsIFwKLSAgICAgICAgICAiMC4yMTAzNzksIDAuMjI0NzA5LCAwLjM1MjYwNiwgMC41NjQ5ODgsIDAuNzc3MTEzLCAxLjI3MTgyLCAxLjU1NDQxIiwgXAotICAgICAgICAgICIwLjIyNDQyNiwgMC4yMzg3NDIsIDAuMzY2NjkzLCAwLjU3OTA1NSwgMC43OTExNTEsIDEuMjg1OCwgMS41Njg0NCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNTk0MywgMC4xODc4MDMsIDAuNDQ2NTQ3LCAwLjg4MTQ1MiwgMS4zMTUxNywgMi4zMjg4MSwgMi45MDgzNCIsIFwKLSAgICAgICAgICAiMC4xNTk0MDIsIDAuMTg3NjczLCAwLjQ0NjQzMSwgMC44ODEzODgsIDEuMzE1MTYsIDIuMzI5MjgsIDIuOTA4MDMiLCBcCi0gICAgICAgICAgIjAuMTU5Mzg0LCAwLjE4NzY2MiwgMC40NDYyODgsIDAuODgxMzMsIDEuMzE2OTgsIDIuMzMwMTIsIDIuOTEwNDkiLCBcCi0gICAgICAgICAgIjAuMTU5NDExLCAwLjE4NzYwOCwgMC40NDY0MTksIDAuODgxMzI1LCAxLjMxNTIsIDIuMzI5NTQsIDIuOTEwMTkiLCBcCi0gICAgICAgICAgIjAuMTU5NDY2LCAwLjE4Nzc0NiwgMC40NDY0MjksIDAuODgxMzA1LCAxLjMxNTI2LCAyLjMzMDUsIDIuOTE0MjciLCBcCi0gICAgICAgICAgIjAuMTU5NzAzLCAwLjE4Nzg2OCwgMC40NDYyOTksIDAuODgxMDk2LCAxLjMxNTAxLCAyLjMzMDY1LCAyLjkxMTIyIiwgXAotICAgICAgICAgICIwLjE2MDEzNiwgMC4xODgyMzUsIDAuNDQ2NTU1LCAwLjg4MDExNCwgMS4zMTYwMSwgMi4zMzI1OCwgMi45MTE1NCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNTA4NjIsIDAuMTY0OTQzLCAwLjI5MDI5NCwgMC40OTgyODUsIDAuNzA1OTgyLCAxLjE5MDMsIDEuNDY3MDciLCBcCi0gICAgICAgICAgIjAuMTU4NTQ3LCAwLjE3MjY5NCwgMC4yOTgwNDEsIDAuNTA2MDY1LCAwLjcxMzcwMSwgMS4xOTgxMiwgMS40NzQ3NSIsIFwKLSAgICAgICAgICAiMC4xNjkwMjIsIDAuMTgzMTY1LCAwLjMwODQ5OSwgMC41MTY1MTYsIDAuNzI0MTUsIDEuMjA4NDksIDEuNDg1MjEiLCBcCi0gICAgICAgICAgIjAuMTc5NzQ0LCAwLjE5Mzg2NiwgMC4zMTkyNDMsIDAuNTI3MjM1LCAwLjczNDkwMiwgMS4yMTkyNCwgMS40OTU5NiIsIFwKLSAgICAgICAgICAiMC4xOTA0MjksIDAuMjA0NTQ5LCAwLjMyOTkyNywgMC41Mzc5MjQsIDAuNzQ1NTksIDEuMjI5OTQsIDEuNTA2NjQiLCBcCi0gICAgICAgICAgIjAuMjA2MTA5LCAwLjIyMDI3MiwgMC4zNDU2NTMsIDAuNTUzNjE4LCAwLjc2MTMzOCwgMS4yNDU3NSwgMS41MjIzNiIsIFwKLSAgICAgICAgICAiMC4yMTg2ODIsIDAuMjMyODc0LCAwLjM1ODI4LCAwLjU2NjIxNCwgMC43NzM5NDksIDEuMjU4MzYsIDEuNTM0OTciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTU0NzM3LCAwLjE4MTU2NiwgMC40MjgwNDUsIDAuODQyNTA4LCAxLjI1ODg4LCAyLjIzMjEsIDIuNzg5NTUiLCBcCi0gICAgICAgICAgIjAuMTU0NjM2LCAwLjE4MTQxNSwgMC40MjgwMzcsIDAuODQyMDUzLCAxLjI2MDM3LCAyLjIzMjk0LCAyLjc4NDcyIiwgXAotICAgICAgICAgICIwLjE1NDYzNywgMC4xODE1NzEsIDAuNDI4MDQ4LCAwLjg0MzYwMSwgMS4yNTg0NSwgMi4yMzExLCAyLjc4NTEyIiwgXAotICAgICAgICAgICIwLjE1NDY4MSwgMC4xODE1ODQsIDAuNDI3NDgzLCAwLjg0MjE2NSwgMS4yNjA0OSwgMi4yMjk1NywgMi43ODQ5NyIsIFwKLSAgICAgICAgICAiMC4xNTQ3NzUsIDAuMTgxNjU1LCAwLjQyODA4MSwgMC44NDIyNDIsIDEuMjYwNDYsIDIuMjMwMjgsIDIuNzg3ODkiLCBcCi0gICAgICAgICAgIjAuMTU1MjQ2LCAwLjE4MjAyNSwgMC40MjgxODEsIDAuODQyNDIzLCAxLjI2MDI5LCAyLjIzMjk4LCAyLjc4Nzg0IiwgXAotICAgICAgICAgICIwLjE1NTc3NiwgMC4xODIzOTgsIDAuNDI4NDkyLCAwLjg0Mzg2OCwgMS4yNjAyNiwgMi4yMzMsIDIuNzg3MSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTgxNzkzLCAwLjE5NTk1NywgMC4zMjMzNjQsIDAuNTM1Mzc4LCAwLjc0NzI5MSwgMS4yNDE2OSwgMS41MjQ0IiwgXAotICAgICAgICAgICIwLjE5MDk4OSwgMC4yMDUxNTUsIDAuMzMyNTM5LCAwLjU0NDY0OCwgMC43NTY0ODcsIDEuMjUwODgsIDEuNTMzNCIsIFwKLSAgICAgICAgICAiMC4yMDI2NDcsIDAuMjE2ODEyLCAwLjM0NDE5LCAwLjU1NjI3MywgMC43NjgxMzksIDEuMjYyNTQsIDEuNTQ1MDQiLCBcCi0gICAgICAgICAgIjAuMjE0MjcsIDAuMjI4NDM2LCAwLjM1NTgxMSwgMC41Njc4OTIsIDAuNzc5NzU4LCAxLjI3NDE2LCAxLjU1NjYzIiwgXAotICAgICAgICAgICIwLjIyNTIxOCwgMC4yMzk0MDEsIDAuMzY2Nzc2LCAwLjU3ODgzOCwgMC43OTA3MiwgMS4yODUxMiwgMS41Njc2IiwgXAotICAgICAgICAgICIwLjI0MTM4NywgMC4yNTU1NTIsIDAuMzgyOTI3LCAwLjU5NDk0MSwgMC44MDY5NDcsIDEuMzAxMjksIDEuNTgzNzQiLCBcCi0gICAgICAgICAgIjAuMjUzMzgsIDAuMjY3NTU2LCAwLjM5NDk1NCwgMC42MDY5NzEsIDAuODE4ODk4LCAxLjMxMzM4LCAxLjU5NTc3Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE1NTg2NywgMC4xODQzNzksIDAuNDQzNjYyLCAwLjg3OTU5OSwgMS4zMTQ5LCAyLjMzMTc0LCAyLjkxMjU0IiwgXAotICAgICAgICAgICIwLjE1NTg1OSwgMC4xODQzMjgsIDAuNDQ0MzQ0LCAwLjg3ODE5NiwgMS4zMTM3OCwgMi4zMjg4NiwgMi45MTIxNiIsIFwKLSAgICAgICAgICAiMC4xNTU4NTUsIDAuMTg0MjM3LCAwLjQ0NDMzNiwgMC44Nzk3MzgsIDEuMzE0OSwgMi4zMjg4NiwgMi45MTIwMyIsIFwKLSAgICAgICAgICAiMC4xNTU4NTQsIDAuMTg0MjM4LCAwLjQ0NDMzNSwgMC44Nzk3MzQsIDEuMzEzNzYsIDIuMzI4ODQsIDIuOTA4NzIiLCBcCi0gICAgICAgICAgIjAuMTU1NzM3LCAwLjE4NDIyOSwgMC40NDM5MTksIDAuODc5NjgzLCAxLjMxMzc0LCAyLjMyODgyLCAyLjkwODc2IiwgXAotICAgICAgICAgICIwLjE1NTg0NSwgMC4xODQzMjEsIDAuNDQ0MzQyLCAwLjg3OTU3NCwgMS4zMTUyNiwgMi4zMzEyNiwgMi45MDg1NyIsIFwKLSAgICAgICAgICAiMC4xNTYwNTUsIDAuMTg0NDAzLCAwLjQ0Mzg2MiwgMC44Nzk1ODEsIDEuMzE0OTksIDIuMzMxMDgsIDIuOTExNTQiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTc3MTI3LCAwLjE5MTAxMiwgMC4zMTU1OTQsIDAuNTIzMTM0LCAwLjczMDU4MiwgMS4yMTQ2NywgMS40OTE0OCIsIFwKLSAgICAgICAgICAiMC4xODYzNzksIDAuMjAwMjY3LCAwLjMyNDg2MSwgMC41MzIzODgsIDAuNzM5ODM5LCAxLjIyMzkyLCAxLjUwMDUyIiwgXAotICAgICAgICAgICIwLjE5Nzk2MywgMC4yMTE4NTksIDAuMzM2NDQ3LCAwLjU0Mzk2NywgMC43NTE0MywgMS4yMzU1LCAxLjUxMjEyIiwgXAotICAgICAgICAgICIwLjIwOTYxOSwgMC4yMjM0OTksIDAuMzQ4MDk2LCAwLjU1NTYyMiwgMC43NjMwNzUsIDEuMjQ3MTYsIDEuNTIzNTQiLCBcCi0gICAgICAgICAgIjAuMjIwODA1LCAwLjIzNDcxMSwgMC4zNTkyOTUsIDAuNTY2ODE1LCAwLjc3NDI5OSwgMS4yNTgzNiwgMS41MzQ5OCIsIFwKLSAgICAgICAgICAiMC4yMzgxMDMsIDAuMjUxOTUyLCAwLjM3NjUxMiwgMC41ODQwNiwgMC43OTE1MDMsIDEuMjc1NzMsIDEuNTUyMTgiLCBcCi0gICAgICAgICAgIjAuMjUxMjI4LCAwLjI2NTExOSwgMC4zODk0MjksIDAuNTk3MjMsIDAuODA0Mzk5LCAxLjI4ODc1LCAxLjU2NTM3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE1MDE5NiwgMC4xNzczNTQsIDAuNDI0ODE4LCAwLjg0MTE4OSwgMS4yNTY1MSwgMi4yMjk4OCwgMi43ODU0NiIsIFwKLSAgICAgICAgICAiMC4xNTAyMDEsIDAuMTc3MzM1LCAwLjQyNDgxOSwgMC44NDA5MzEsIDEuMjU3NjEsIDIuMjI5MTgsIDIuNzg1NTQiLCBcCi0gICAgICAgICAgIjAuMTUwMTk5LCAwLjE3NzMyOCwgMC40MjQ4MTQsIDAuODQxMTIxLCAxLjI1NzA1LCAyLjIyOTc4LCAyLjc4NDU1IiwgXAotICAgICAgICAgICIwLjE1MDE1OSwgMC4xNzczNDEsIDAuNDI0NzY2LCAwLjg0MTIwMSwgMS4yNTY0NCwgMi4yMjkxNCwgMi43ODI0IiwgXAotICAgICAgICAgICIwLjE1MDIwMywgMC4xNzczMzQsIDAuNDI0ODEsIDAuODQxMTIzLCAxLjI1NjUsIDIuMjI5NzYsIDIuNzg0MzciLCBcCi0gICAgICAgICAgIjAuMTUwMTk3LCAwLjE3NzMyLCAwLjQyNTA0NSwgMC44NDExMTMsIDEuMjU3NTMsIDIuMjMwMzMsIDIuNzg1OTIiLCBcCi0gICAgICAgICAgIjAuMTUwNDQ4LCAwLjE3NzUxNywgMC40MjQ4MzUsIDAuODQxMTgzLCAxLjI1NzYxLCAyLjIyOTc4LCAyLjc4NTI3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzMTQxLCAwLjAwMzE0MywgMC4wMDMxNTEsIDAuMDAzMTU0LCAwLjAwMzE1NSwgMC4wMDMxNTYsIDAuMDAzMTU2IiwgXAotICAgICAgICAgICIwLjAwMzEzMywgMC4wMDMxMzUsIDAuMDAzMTQzLCAwLjAwMzE0NiwgMC4wMDMxNDcsIDAuMDAzMTQ4LCAwLjAwMzE0OCIsIFwKLSAgICAgICAgICAiMC4wMDMxMjgsIDAuMDAzMTMsIDAuMDAzMTM4LCAwLjAwMzE0MSwgMC4wMDMxNDIsIDAuMDAzMTQzLCAwLjAwMzE0MyIsIFwKLSAgICAgICAgICAiMC4wMDMxMjUsIDAuMDAzMTI4LCAwLjAwMzEzNSwgMC4wMDMxMzksIDAuMDAzMTQsIDAuMDAzMTQxLCAwLjAwMzE0MSIsIFwKLSAgICAgICAgICAiMC4wMDMxMjQsIDAuMDAzMTI2LCAwLjAwMzEzNCwgMC4wMDMxMzgsIDAuMDAzMTM5LCAwLjAwMzE0LCAwLjAwMzE0MSIsIFwKLSAgICAgICAgICAiMC4wMDMxMjMsIDAuMDAzMTI1LCAwLjAwMzEzNCwgMC4wMDMxMzgsIDAuMDAzMTM5LCAwLjAwMzE0LCAwLjAwMzE0MSIsIFwKLSAgICAgICAgICAiMC4wMDMxMjIsIDAuMDAzMTI1LCAwLjAwMzEzNCwgMC4wMDMxMzgsIDAuMDAzMTM5LCAwLjAwMzE0MiwgMC4wMDMxNDEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDE2MTksIDAuMDAxNjIxLCAwLjAwMTYyOCwgMC4wMDE2MzEsIDAuMDAxNjMyLCAwLjAwMTYzMywgMC4wMDE2MzQiLCBcCi0gICAgICAgICAgIjAuMDAxNjAxLCAwLjAwMTYwMywgMC4wMDE2MTEsIDAuMDAxNjE0LCAwLjAwMTYxNSwgMC4wMDE2MTYsIDAuMDAxNjE2IiwgXAotICAgICAgICAgICIwLjAwMTU5MywgMC4wMDE1OTUsIDAuMDAxNjAyLCAwLjAwMTYwNiwgMC4wMDE2MDcsIDAuMDAxNjA4LCAwLjAwMTYwOCIsIFwKLSAgICAgICAgICAiMC4wMDE1OSwgMC4wMDE1OTIsIDAuMDAxNiwgMC4wMDE2MDMsIDAuMDAxNjA0LCAwLjAwMTYwNSwgMC4wMDE2MDYiLCBcCi0gICAgICAgICAgIjAuMDAxNTg2LCAwLjAwMTU4OCwgMC4wMDE1OTYsIDAuMDAxNTk5LCAwLjAwMTYsIDAuMDAxNjAyLCAwLjAwMTYwMiIsIFwKLSAgICAgICAgICAiMC4wMDE1ODUsIDAuMDAxNTg3LCAwLjAwMTU5NiwgMC4wMDE1OTksIDAuMDAxNjAxLCAwLjAwMTYwMiwgMC4wMDE2MDIiLCBcCi0gICAgICAgICAgIjAuMDAxNTg2LCAwLjAwMTU4OCwgMC4wMDE1OTcsIDAuMDAxNjAxLCAwLjAwMTYwMywgMC4wMDE2MDQsIDAuMDAxNjA0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzMDk3LCAwLjAwMzA5OSwgMC4wMDMxMDYsIDAuMDAzMTA5LCAwLjAwMzExLCAwLjAwMzExMSwgMC4wMDMxMTEiLCBcCi0gICAgICAgICAgIjAuMDAzMDg3LCAwLjAwMzA4OSwgMC4wMDMwOTYsIDAuMDAzMDk5LCAwLjAwMzEsIDAuMDAzMTAxLCAwLjAwMzEwMiIsIFwKLSAgICAgICAgICAiMC4wMDMwNzIsIDAuMDAzMDc0LCAwLjAwMzA4MSwgMC4wMDMwODQsIDAuMDAzMDg2LCAwLjAwMzA4NywgMC4wMDMwODciLCBcCi0gICAgICAgICAgIjAuMDAzMDYsIDAuMDAzMDYyLCAwLjAwMzA3LCAwLjAwMzA3MywgMC4wMDMwNzQsIDAuMDAzMDc1LCAwLjAwMzA3NiIsIFwKLSAgICAgICAgICAiMC4wMDMwNDksIDAuMDAzMDUxLCAwLjAwMzA2MSwgMC4wMDMwNjQsIDAuMDAzMDY2LCAwLjAwMzA2NywgMC4wMDMwNjgiLCBcCi0gICAgICAgICAgIjAuMDAzMDQyLCAwLjAwMzA0NSwgMC4wMDMwNTQsIDAuMDAzMDU3LCAwLjAwMzA1OSwgMC4wMDMwNiwgMC4wMDMwNjEiLCBcCi0gICAgICAgICAgIjAuMDAzMDM5LCAwLjAwMzA0MSwgMC4wMDMwNSwgMC4wMDMwNTQsIDAuMDAzMDU2LCAwLjAwMzA1NywgMC4wMDMwNTgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDE3MzUsIDAuMDAxNzM3LCAwLjAwMTc0NCwgMC4wMDE3NDYsIDAuMDAxNzQ3LCAwLjAwMTc0NywgMC4wMDE3NDgiLCBcCi0gICAgICAgICAgIjAuMDAxNzE2LCAwLjAwMTcxOCwgMC4wMDE3MjUsIDAuMDAxNzI4LCAwLjAwMTcyOCwgMC4wMDE3MywgMC4wMDE3MjkiLCBcCi0gICAgICAgICAgIjAuMDAxNywgMC4wMDE3MDIsIDAuMDAxNzA5LCAwLjAwMTcxMiwgMC4wMDE3MTIsIDAuMDAxNzEzLCAwLjAwMTcxNCIsIFwKLSAgICAgICAgICAiMC4wMDE2OTMsIDAuMDAxNjk1LCAwLjAwMTcwMiwgMC4wMDE3MDUsIDAuMDAxNzA2LCAwLjAwMTcwNywgMC4wMDE3MDciLCBcCi0gICAgICAgICAgIjAuMDAxNjg3LCAwLjAwMTY4OSwgMC4wMDE2OTcsIDAuMDAxNzAxLCAwLjAwMTcwMSwgMC4wMDE3MDMsIDAuMDAxNzAzIiwgXAotICAgICAgICAgICIwLjAwMTY4OCwgMC4wMDE2OSwgMC4wMDE2OTksIDAuMDAxNzAyLCAwLjAwMTcwNCwgMC4wMDE3MDUsIDAuMDAxNzA2IiwgXAotICAgICAgICAgICIwLjAwMTY5NiwgMC4wMDE2OTgsIDAuMDAxNzA2LCAwLjAwMTcxLCAwLjAwMTcxMSwgMC4wMDE3MTIsIDAuMDAxNzEzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0kiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjgxNiwgMC4wMDI4MTgsIDAuMDAyODI2LCAwLjAwMjgyOSwgMC4wMDI4MywgMC4wMDI4MzEsIDAuMDAyODMyIiwgXAotICAgICAgICAgICIwLjAwMjgxNiwgMC4wMDI4MTgsIDAuMDAyODI2LCAwLjAwMjgyOSwgMC4wMDI4MywgMC4wMDI4MzEsIDAuMDAyODMyIiwgXAotICAgICAgICAgICIwLjAwMjgxNiwgMC4wMDI4MTksIDAuMDAyODI3LCAwLjAwMjgzLCAwLjAwMjgzMiwgMC4wMDI4MzMsIDAuMDAyODMzIiwgXAotICAgICAgICAgICIwLjAwMjgxOCwgMC4wMDI4MiwgMC4wMDI4MjgsIDAuMDAyODMyLCAwLjAwMjgzNCwgMC4wMDI4MzUsIDAuMDAyODM2IiwgXAotICAgICAgICAgICIwLjAwMjgyLCAwLjAwMjgyMiwgMC4wMDI4MzEsIDAuMDAyODM2LCAwLjAwMjgzNywgMC4wMDI4MzksIDAuMDAyODM5IiwgXAotICAgICAgICAgICIwLjAwMjgyNiwgMC4wMDI4MjgsIDAuMDAyODM4LCAwLjAwMjg0MywgMC4wMDI4NDQsIDAuMDAyODQ2LCAwLjAwMjg0NiIsIFwKLSAgICAgICAgICAiMC4wMDI4MzUsIDAuMDAyODM3LCAwLjAwMjg0NywgMC4wMDI4NTIsIDAuMDAyODUzLCAwLjAwMjg1NCwgMC4wMDI4NTUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDE3MzgsIDAuMDAxNzQsIDAuMDAxNzQ3LCAwLjAwMTc1LCAwLjAwMTc1LCAwLjAwMTc1MSwgMC4wMDE3NTEiLCBcCi0gICAgICAgICAgIjAuMDAxNzI5LCAwLjAwMTczMSwgMC4wMDE3MzgsIDAuMDAxNzQxLCAwLjAwMTc0MywgMC4wMDE3NDMsIDAuMDAxNzQzIiwgXAotICAgICAgICAgICIwLjAwMTcxNiwgMC4wMDE3MTgsIDAuMDAxNzI2LCAwLjAwMTcyOSwgMC4wMDE3MywgMC4wMDE3MywgMC4wMDE3MzIiLCBcCi0gICAgICAgICAgIjAuMDAxNzA2LCAwLjAwMTcwOCwgMC4wMDE3MTYsIDAuMDAxNzE5LCAwLjAwMTcyLCAwLjAwMTcyMSwgMC4wMDE3MjIiLCBcCi0gICAgICAgICAgIjAuMDAxNzAxLCAwLjAwMTcwMywgMC4wMDE3MTEsIDAuMDAxNzE1LCAwLjAwMTcxNywgMC4wMDE3MTcsIDAuMDAxNzE3IiwgXAotICAgICAgICAgICIwLjAwMTcwMSwgMC4wMDE3MDMsIDAuMDAxNzEyLCAwLjAwMTcxNiwgMC4wMDE3MTcsIDAuMDAxNzE4LCAwLjAwMTcxOSIsIFwKLSAgICAgICAgICAiMC4wMDE3MDcsIDAuMDAxNzA5LCAwLjAwMTcxOCwgMC4wMDE3MjEsIDAuMDAxNzIzLCAwLjAwMTcyNCwgMC4wMDE3MjQiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IEFEREhYMiAqCi0gKiAtLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKEFEREhYMikgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjI4MjMyOwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDEyMTI1NDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDEyMTI1NDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDEyMTE2OwotICB9Ci0gIHBpbihCKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDIwMTU0MzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDIwMDExMjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDIwMTU0MzsKLSAgfQotICBwaW4oQ08pICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC41MjAyNDsKLSAgICBmdW5jdGlvbiA6ICIoQSBCKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc2MDA1LCAwLjE4MDQ0NiwgMC4yNjI2NjMsIDAuMzY1NzI4LCAwLjQ2ODc5LCAwLjU3MDk3MiwgMC42NzM3MTQiLCBcCi0gICAgICAgICAgIjAuMDg0ODczLCAwLjE4OTI5NywgMC4yNzE3NDcsIDAuMzc0NjMyLCAwLjQ3NzY2OSwgMC41ODAyNSwgMC42ODI1ODUiLCBcCi0gICAgICAgICAgIjAuMDk1NTUsIDAuMTk5OTc3LCAwLjI4MjIwNCwgMC4zODUzMDIsIDAuNDg4MTIsIDAuNTkxMDgxLCAwLjY5MzU5MSIsIFwKLSAgICAgICAgICAiMC4xMDU5NzEsIDAuMjEwNDQ4LCAwLjI5MjY3NywgMC4zOTU3NDYsIDAuNDk4MzQxLCAwLjYwMTQyMSwgMC43MDQwMTYiLCBcCi0gICAgICAgICAgIjAuMTE1ODAzLCAwLjIyMDQxMSwgMC4zMDI2MTksIDAuNDA1ODg3LCAwLjUwODgyNSwgMC42MTE1NTcsIDAuNzEzOTU0IiwgXAotICAgICAgICAgICIwLjEzMDAxMiwgMC4yMzQ4NDUsIDAuMzE3MTY2LCAwLjQyMDAwOCwgMC41MjMwNTMsIDAuNjI1NjQ2LCAwLjcyODAxOSIsIFwKLSAgICAgICAgICAiMC4xNDEwNjUsIDAuMjQ2MDY0LCAwLjMyODQ2MywgMC40MzE0MjcsIDAuNTMzODQxLCAwLjYzNjkwMiwgMC43Mzk1OTkiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU4NTA4LCAwLjI2NTI5NywgMC40MzU0MDksIDAuNjQ3NjA1LCAwLjg2MjM4MiwgMS4wNzQ5MywgMS4yODgyOSIsIFwKLSAgICAgICAgICAiMC4wNTgzMDksIDAuMjY1NzQyLCAwLjQzNTQ1MywgMC42NDc2ODcsIDAuODYyNDE3LCAxLjA3NiwgMS4yODgzNCIsIFwKLSAgICAgICAgICAiMC4wNTgxNTYsIDAuMjY2MDI0LCAwLjQzNTIwMywgMC42NDc3ODcsIDAuODYyMzk1LCAxLjA3NTk2LCAxLjI4OTc0IiwgXAotICAgICAgICAgICIwLjA1ODMzOSwgMC4yNjU5NDMsIDAuNDM1MzcsIDAuNjQ3NzI5LCAwLjg2MDg1NCwgMS4wNzU5NywgMS4yODk3IiwgXAotICAgICAgICAgICIwLjA1ODY0NiwgMC4yNjYxMjEsIDAuNDM1NDQ1LCAwLjY0ODk3LCAwLjg2MjM2MiwgMS4wNzYwNywgMS4yODk3OCIsIFwKLSAgICAgICAgICAiMC4wNjAxNDQsIDAuMjY1NTYzLCAwLjQzNTY5NSwgMC42NDc3NTYsIDAuODYyMjQxLCAxLjA3NTk4LCAxLjI4ODI5IiwgXAotICAgICAgICAgICIwLjA2MTI3OSwgMC4yNjU4OTMsIDAuNDM1Nzc4LCAwLjY0ODg2OCwgMC44NjExODEsIDEuMDc2MDEsIDEuMjg5NzMiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU2Nzk5LCAwLjE2MDg0MywgMC4yNDM4NzYsIDAuMzQ3NjcyLCAwLjQ1MTAwNSwgMC41NTM5MTIsIDAuNjU3OTE1IiwgXAotICAgICAgICAgICIwLjA2NjY1NiwgMC4xNzA2NzcsIDAuMjUzOTMxLCAwLjM1NzYyNCwgMC40NjA4NjgsIDAuNTYzOTM1LCAwLjY2NzQwOSIsIFwKLSAgICAgICAgICAiMC4wNzg4NTgsIDAuMTgyOTExLCAwLjI2NTcwNCwgMC4zNjk5MSwgMC40NzI2NzYsIDAuNTc2OTY4LCAwLjY3OTQ0NCIsIFwKLSAgICAgICAgICAiMC4wOTAyNTEsIDAuMTk0MjY1LCAwLjI3NzMzNiwgMC4zODA3MTYsIDAuNDg0NSwgMC41ODc0ODcsIDAuNjkxMDc0IiwgXAotICAgICAgICAgICIwLjA5OTk0LCAwLjIwMzk3NCwgMC4yODcyODYsIDAuMzkwOTgxLCAwLjQ5NDMxMiwgMC41OTczMzUsIDAuNzAwNTYzIiwgXAotICAgICAgICAgICIwLjExMzIxMSwgMC4yMTc0NjYsIDAuMzAwNDQzLCAwLjQwNDQyNSwgMC41MDc2LCAwLjYxMDYwMSwgMC43MTQ1OTIiLCBcCi0gICAgICAgICAgIjAuMTIzMjc3LCAwLjIyNzY2LCAwLjMxMDU4MywgMC40MTM3ODMsIDAuNTE3NzIsIDAuNjIxMjI0LCAwLjcyNDI5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1MTY0OCwgMC4yNTk1NiwgMC40MjU1NzMsIDAuNjM1Nzc3LCAwLjg0NDg3MiwgMS4wNTQ4MSwgMS4yNjMzNCIsIFwKLSAgICAgICAgICAiMC4wNTE4OTQsIDAuMjU5NTEsIDAuNDI3ODE2LCAwLjYzNzIwMSwgMC44NDQ5NDIsIDEuMDU1NiwgMS4yNjQ0NyIsIFwKLSAgICAgICAgICAiMC4wNTE5MDYsIDAuMjU5MjYyLCAwLjQyODMxOSwgMC42MzcwMTIsIDAuODQ2MjcyLCAxLjA1NTg4LCAxLjI2NDYzIiwgXAotICAgICAgICAgICIwLjA1MjIwMywgMC4yNjEzMjksIDAuNDI2MDIxLCAwLjYzNjkwMSwgMC44NDUyMjUsIDEuMDU0OTMsIDEuMjY0MDYiLCBcCi0gICAgICAgICAgIjAuMDUzMzk4LCAwLjI1ODU1OCwgMC40MjY3OTIsIDAuNjM2MzIxLCAwLjg0NTUxMiwgMS4wNTUwOCwgMS4yNjM5NiIsIFwKLSAgICAgICAgICAiMC4wNTQ3NSwgMC4yNjA3NTIsIDAuNDI3MDQ3LCAwLjYzNjE5NiwgMC44NDU1MzYsIDEuMDU0MDksIDEuMjY1NzgiLCBcCi0gICAgICAgICAgIjAuMDU2MDIzLCAwLjI2MDk2MywgMC40Mjc3OTcsIDAuNjM2NTE2LCAwLjg0NTY5NCwgMS4wNTU4MSwgMS4yNjMwNiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzI5NiwgMC4xNzc1ODIsIDAuMjU5ODA1LCAwLjM2MjY1OSwgMC40NjU4NTgsIDAuNTY4MzczLCAwLjY3MDc0OSIsIFwKLSAgICAgICAgICAiMC4wODE5MzMsIDAuMTg2NTU2LCAwLjI2ODc4NywgMC4zNzE1ODEsIDAuNDc0MzI1LCAwLjU3NzM0NiwgMC42Nzk5NTEiLCBcCi0gICAgICAgICAgIjAuMDkzNjgxLCAwLjE5ODMzNywgMC4yODA3MDksIDAuMzgzNDUsIDAuNDg2NDg2LCAwLjU4OTA5MiwgMC42OTE1MDQiLCBcCi0gICAgICAgICAgIjAuMTA1NDc1LCAwLjIxMDE1MywgMC4yOTIzODMsIDAuMzk1MzQ5LCAwLjQ5ODE0OSwgMC42MDA5MzYsIDAuNzAzMjA4IiwgXAotICAgICAgICAgICIwLjExNjUyMywgMC4yMjExNzYsIDAuMzAzNDk0LCAwLjQwNTk3NCwgMC41MDkwNDcsIDAuNjExODM4LCAwLjcxNDQ2NiIsIFwKLSAgICAgICAgICAiMC4xMzE4OSwgMC4yMzY4MzcsIDAuMzE5MDM0LCAwLjQyMTY0MywgMC41MjQ1OTQsIDAuNjI3NDUzLCAwLjczMDA1MiIsIFwKLSAgICAgICAgICAiMC4xNDM2NzgsIDAuMjQ4Nzk3LCAwLjMzMTA1MywgMC40MzM3NzUsIDAuNTM2NTQ0LCAwLjYzOTEsIDAuNzQyMDE0Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1ODA5NywgMC4yNjQ5NTksIDAuNDM1NDgxLCAwLjY0Nzg3MSwgMC44NjA4NTIsIDEuMDc2MiwgMS4yODgzNiIsIFwKLSAgICAgICAgICAiMC4wNTgzOCwgMC4yNjQ4NDIsIDAuNDM1NDkyLCAwLjY0NzYwNywgMC44NjE0MjIsIDEuMDc2MTMsIDEuMjg5NzYiLCBcCi0gICAgICAgICAgIjAuMDU4MTU4LCAwLjI2NDk0MiwgMC40MzU2OTgsIDAuNjQ3OTksIDAuODYyNDMyLCAxLjA3NjEyLCAxLjI4ODQiLCBcCi0gICAgICAgICAgIjAuMDU4MzgzLCAwLjI2NTMyLCAwLjQzNTQxMiwgMC42NDg3MDksIDAuODYyMzY5LCAxLjA3NjA0LCAxLjI4ODgiLCBcCi0gICAgICAgICAgIjAuMDU5MDc1LCAwLjI2NTI5OSwgMC40MzUzNTksIDAuNjQ3NzcxLCAwLjg2MjMzNSwgMS4wNzYxMywgMS4yODk5NyIsIFwKLSAgICAgICAgICAiMC4wNjExOSwgMC4yNjU4NDEsIDAuNDM1NTA5LCAwLjY0ODMxNCwgMC44NjI1MTcsIDEuMDc2NDQsIDEuMjkwMTciLCBcCi0gICAgICAgICAgIjAuMDYyMjYsIDAuMjY2MDQ4LCAwLjQzNTc3NywgMC42NDg5NzgsIDAuODYyNjcyLCAxLjA3NTE2LCAxLjI5MDI2Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1NDg3NiwgMC4xNTg4MTIsIDAuMjQxNzE4LCAwLjM0NTA2MSwgMC40NDg1MzksIDAuNTUyODA3LCAwLjY1NjI1NCIsIFwKLSAgICAgICAgICAiMC4wNjQ2NjEsIDAuMTY4NzUxLCAwLjI1MTU1NCwgMC4zNTU1NDgsIDAuNDU4NDE2LCAwLjU2MjY1NCwgMC42NjU0NjgiLCBcCi0gICAgICAgICAgIjAuMDc2ODQxLCAwLjE4MDk3NiwgMC4yNjM3NzEsIDAuMzY3NDk3LCAwLjQ3MDYxNSwgMC41NzQ4NDMsIDAuNjc3NzczIiwgXAotICAgICAgICAgICIwLjA4NzU1MSwgMC4xOTE1MjEsIDAuMjc0Mjk2LCAwLjM3NzgyLCAwLjQ4MTMxLCAwLjU4NTUxMiwgMC42ODg2MTMiLCBcCi0gICAgICAgICAgIjAuMDk2Nzg5LCAwLjIwMDk3NiwgMC4yODM2MzcsIDAuMzg3NzA3LCAwLjQ5MDY0OCwgMC41OTQ3NzksIDAuNjk3Njg4IiwgXAotICAgICAgICAgICIwLjEwOTM0NiwgMC4yMTM1ODMsIDAuMjk2MjYsIDAuNDAwMjA4LCAwLjUwMzkzMiwgMC42MDcyNjQsIDAuNzEwMzY3IiwgXAotICAgICAgICAgICIwLjExODc2MywgMC4yMjMxMzYsIDAuMzA2MzQxLCAwLjQwOTgzMiwgMC41MTMyMTUsIDAuNjE2NDExLCAwLjcxOTg1MyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTE1NTcsIDAuMjU5NzM0LCAwLjQyNjM1OSwgMC42MzYyOTIsIDAuODQ1NTMzLCAxLjA1NDg0LCAxLjI2MzU1IiwgXAotICAgICAgICAgICIwLjA1MTY2NiwgMC4yNTgzOTMsIDAuNDI2NTQ4LCAwLjYzNTgwNywgMC44NDU3ODcsIDEuMDU0ODYsIDEuMjY0MTIiLCBcCi0gICAgICAgICAgIjAuMDUxNzc0LCAwLjI1OTU3MiwgMC40MjY0MzQsIDAuNjM2MTk4LCAwLjg0NTY3OSwgMS4wNTQ2NSwgMS4yNjQ2MiIsIFwKLSAgICAgICAgICAiMC4wNTI1NzMsIDAuMjU5Njc5LCAwLjQyNjQ1LCAwLjYzNDYxMywgMC44NDU0MSwgMS4wNTQ0NiwgMS4yNjU5OCIsIFwKLSAgICAgICAgICAiMC4wNTM3NDcsIDAuMjU5NDYzLCAwLjQyNjUzNCwgMC42MzU1MTYsIDAuODQ1MjA2LCAxLjA1NDAxLCAxLjI2NDE5IiwgXAotICAgICAgICAgICIwLjA1NDk5MSwgMC4yNTk0NTYsIDAuNDI1Nzg5LCAwLjYzNTY0NCwgMC44NDUwMTcsIDEuMDUzMTUsIDEuMjYzNTUiLCBcCi0gICAgICAgICAgIjAuMDU1OTgyLCAwLjI1OTc3NywgMC40MjY1ODksIDAuNjM1OTU0LCAwLjg0NTkyMiwgMS4wNTQ5OCwgMS4yNjM3MiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzA3NCwgMC4wMDMxMTYsIDAuMDAzMTIxLCAwLjAwMzEyMywgMC4wMDMxMjQsIDAuMDAzMTI1LCAwLjAwMzEyNSIsIFwKLSAgICAgICAgICAiMC4wMDMwNDQsIDAuMDAzMDg5LCAwLjAwMzA5MywgMC4wMDMwOTYsIDAuMDAzMDk4LCAwLjAwMzA5OSwgMC4wMDMwOTkiLCBcCi0gICAgICAgICAgIjAuMDAzMDMyLCAwLjAwMzA4MSwgMC4wMDMwODcsIDAuMDAzMDg5LCAwLjAwMzA5MSwgMC4wMDMwOTIsIDAuMDAzMDkyIiwgXAotICAgICAgICAgICIwLjAwMzAyOSwgMC4wMDMwODEsIDAuMDAzMDg3LCAwLjAwMzA5LCAwLjAwMzA5MiwgMC4wMDMwOTIsIDAuMDAzMDkzIiwgXAotICAgICAgICAgICIwLjAwMzAzMiwgMC4wMDMwODYsIDAuMDAzMDkyLCAwLjAwMzA5NiwgMC4wMDMwOTcsIDAuMDAzMDk4LCAwLjAwMzA5OSIsIFwKLSAgICAgICAgICAiMC4wMDMwNDIsIDAuMDAzMDk3LCAwLjAwMzEwNCwgMC4wMDMxMDgsIDAuMDAzMTExLCAwLjAwMzExLCAwLjAwMzExMSIsIFwKLSAgICAgICAgICAiMC4wMDMwNTYsIDAuMDAzMTEsIDAuMDAzMTE3LCAwLjAwMzEyMSwgMC4wMDMxMjMsIDAuMDAzMTIzLCAwLjAwMzEyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzk1OCwgMC4wMDQwMDIsIDAuMDA0MDA3LCAwLjAwNDAwOSwgMC4wMDQwMTEsIDAuMDA0MDEyLCAwLjAwNDAxMyIsIFwKLSAgICAgICAgICAiMC4wMDM5MzQsIDAuMDAzOTgyLCAwLjAwMzk4OCwgMC4wMDM5OTEsIDAuMDAzOTkyLCAwLjAwMzk5MywgMC4wMDM5OTMiLCBcCi0gICAgICAgICAgIjAuMDAzOTI0LCAwLjAwMzk3OCwgMC4wMDM5ODYsIDAuMDAzOTg5LCAwLjAwMzk5LCAwLjAwMzk5MSwgMC4wMDM5OTMiLCBcCi0gICAgICAgICAgIjAuMDAzOTE2LCAwLjAwMzk3NCwgMC4wMDM5ODIsIDAuMDAzOTg2LCAwLjAwMzk4OCwgMC4wMDM5OSwgMC4wMDM5OTEiLCBcCi0gICAgICAgICAgIjAuMDAzOTE5LCAwLjAwMzk3OSwgMC4wMDM5ODgsIDAuMDAzOTkzLCAwLjAwMzk5NSwgMC4wMDM5OTYsIDAuMDAzOTk3IiwgXAotICAgICAgICAgICIwLjAwMzkzNCwgMC4wMDM5OTQsIDAuMDA0MDAzLCAwLjAwNDAwOSwgMC4wMDQwMTMsIDAuMDA0MDE0LCAwLjAwNDAxNCIsIFwKLSAgICAgICAgICAiMC4wMDM5NSwgMC4wMDQwMSwgMC4wMDQwMTgsIDAuMDA0MDI2LCAwLjAwNDAzLCAwLjAwNDAyOSwgMC4wMDQwMzEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI4MjMsIDAuMDAyODg4LCAwLjAwMjg5NywgMC4wMDI5MDEsIDAuMDAyOTA0LCAwLjAwMjkwNSwgMC4wMDI5MDciLCBcCi0gICAgICAgICAgIjAuMDAyOCwgMC4wMDI4NjcsIDAuMDAyODc1LCAwLjAwMjg4MSwgMC4wMDI4ODMsIDAuMDAyODg0LCAwLjAwMjg4NSIsIFwKLSAgICAgICAgICAiMC4wMDI3OTYsIDAuMDAyODY1LCAwLjAwMjg3NSwgMC4wMDI4OCwgMC4wMDI4ODMsIDAuMDAyODg1LCAwLjAwMjg4NiIsIFwKLSAgICAgICAgICAiMC4wMDI3OTMsIDAuMDAyODYzLCAwLjAwMjg3NSwgMC4wMDI4NzksIDAuMDAyODgzLCAwLjAwMjg4NSwgMC4wMDI4ODYiLCBcCi0gICAgICAgICAgIjAuMDAyOCwgMC4wMDI4NywgMC4wMDI4ODMsIDAuMDAyODg4LCAwLjAwMjg5MSwgMC4wMDI4OTIsIDAuMDAyODk0IiwgXAotICAgICAgICAgICIwLjAwMjgxNywgMC4wMDI4ODksIDAuMDAyODk5LCAwLjAwMjkwOCwgMC4wMDI5MTIsIDAuMDAyOTExLCAwLjAwMjkxMiIsIFwKLSAgICAgICAgICAiMC4wMDI4NCwgMC4wMDI5MDksIDAuMDAyOTIxLCAwLjAwMjkyNywgMC4wMDI5MzIsIDAuMDAyOTMxLCAwLjAwMjkzNiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzY5MSwgMC4wMDM3NTYsIDAuMDAzNzY0LCAwLjAwMzc2NywgMC4wMDM3NywgMC4wMDM3NzEsIDAuMDAzNzcyIiwgXAotICAgICAgICAgICIwLjAwMzY4NSwgMC4wMDM3NTQsIDAuMDAzNzYzLCAwLjAwMzc2OCwgMC4wMDM3NzEsIDAuMDAzNzcyLCAwLjAwMzc3NCIsIFwKLSAgICAgICAgICAiMC4wMDM2ODYsIDAuMDAzNzYzLCAwLjAwMzc3NSwgMC4wMDM3ODIsIDAuMDAzNzg0LCAwLjAwMzc4NywgMC4wMDM3ODgiLCBcCi0gICAgICAgICAgIjAuMDAzNjk2LCAwLjAwMzc3NiwgMC4wMDM3ODksIDAuMDAzNzk2LCAwLjAwMzgsIDAuMDAzODAzLCAwLjAwMzgwNCIsIFwKLSAgICAgICAgICAiMC4wMDM3MTYsIDAuMDAzNzkzLCAwLjAwMzgwOCwgMC4wMDM4MTUsIDAuMDAzODIsIDAuMDAzODIzLCAwLjAwMzgyNCIsIFwKLSAgICAgICAgICAiMC4wMDM3NDcsIDAuMDAzODI4LCAwLjAwMzg0LCAwLjAwMzg1MywgMC4wMDM4NTgsIDAuMDAzODU4LCAwLjAwMzg2MyIsIFwKLSAgICAgICAgICAiMC4wMDM3NzUsIDAuMDAzODU2LCAwLjAwMzg4LCAwLjAwMzg5LCAwLjAwMzg5NSwgMC4wMDM4OTgsIDAuMDAzOSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUykgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjUxMTEwMzsKLSAgICBmdW5jdGlvbiA6ICIoQV5CKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg1NzQ1LCAwLjE5MDk5OSwgMC4yNzMyNzQsIDAuMzc2MTE0LCAwLjQ3ODgzMywgMC41ODE3NTQsIDAuNjg0NDYyIiwgXAotICAgICAgICAgICIwLjA5NTc2MiwgMC4yMDEwNywgMC4yODMzMTEsIDAuMzg2MTYsIDAuNDg4OTUxLCAwLjU5MTcxNCwgMC42OTQ0NzIiLCBcCi0gICAgICAgICAgIjAuMTA4NDU3LCAwLjIxMzczOSwgMC4yOTU5OTksIDAuMzk4ODYsIDAuNTAxNjA2LCAwLjYwNDQ2OSwgMC43MDczMSIsIFwKLSAgICAgICAgICAiMC4xMjA4NDcsIDAuMjI2MTQ0LCAwLjMwODQwNCwgMC40MTEyODQsIDAuNTEzOTk4LCAwLjYxNjkzMiwgMC43MTk2NTciLCBcCi0gICAgICAgICAgIjAuMTMyMzU3LCAwLjIzNzY4OSwgMC4zMTk5NzUsIDAuNDIyODQxLCAwLjUyNTU1MSwgMC42Mjg0OTQsIDAuNzMxMjAzIiwgXAotICAgICAgICAgICIwLjE0OTQ1MSwgMC4yNTQ5NDcsIDAuMzM3MjI5LCAwLjQ0MDEwOCwgMC41NDI3ODYsIDAuNjQ1NzQzLCAwLjc0ODQ0MSIsIFwKLSAgICAgICAgICAiMC4xNjI4MjEsIDAuMjY4NTY2LCAwLjM1MDg0LCAwLjQ1Mzc0NywgMC41NTY0MzEsIDAuNjU5NDg3LCAwLjc2MjAxOCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTg4NDIsIDAuMjY1NzAyLCAwLjQzNTk2NCwgMC42NDgwNTEsIDAuODYyNTk2LCAxLjA3NTExLCAxLjI4OTE2IiwgXAotICAgICAgICAgICIwLjA1ODgzLCAwLjI2NTcyNSwgMC40MzU3MjEsIDAuNjQ4MDgyLCAwLjg2MTQ0NywgMS4wNzQ5LCAxLjI5MTAzIiwgXAotICAgICAgICAgICIwLjA1ODgyNSwgMC4yNjU3MjksIDAuNDM1NzI4LCAwLjY0ODA5NywgMC44NjE5NDMsIDEuMDc0NjUsIDEuMjg3OTYiLCBcCi0gICAgICAgICAgIjAuMDU4OTE4LCAwLjI2NTcxNywgMC40MzUzNTcsIDAuNjQ4MDQzLCAwLjg2MTE1MSwgMS4wNzUwOSwgMS4yODkyMiIsIFwKLSAgICAgICAgICAiMC4wNTkyNDEsIDAuMjY1NzYsIDAuNDM1ODk5LCAwLjY0OCwgMC44NjI1MjksIDEuMDc1MDksIDEuMjg5MSIsIFwKLSAgICAgICAgICAiMC4wNjAyNzIsIDAuMjY2MjA3LCAwLjQzNTk5NiwgMC42NDc5MTgsIDAuODYyNTcxLCAxLjA3NTA4LCAxLjI5MDA5IiwgXAotICAgICAgICAgICIwLjA2MTU5NCwgMC4yNjYxNDcsIDAuNDM2MDYxLCAwLjY0ODI1NywgMC44NjMwNDYsIDEuMDc1MTUsIDEuMjkwMzEiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg4OTc4LCAwLjE5NTgxLCAwLjI3ODYzMywgMC4zODIxOTMsIDAuNDg1NjE3LCAwLjU4OTM0MywgMC42OTI2MDgiLCBcCi0gICAgICAgICAgIjAuMDk4NjEyLCAwLjIwNTM5OCwgMC4yODgyMjgsIDAuMzkxNzg2LCAwLjQ5NTIxMSwgMC41OTg5MzcsIDAuNzAyMjA3IiwgXAotICAgICAgICAgICIwLjExMDYxNiwgMC4yMTc0MDgsIDAuMzAwMjYsIDAuNDAzODA0LCAwLjUwNzIzMiwgMC42MTA5NDIsIDAuNzE0NTExIiwgXAotICAgICAgICAgICIwLjEyMjExMywgMC4yMjg5MjUsIDAuMzExNzgsIDAuNDE1MzM0LCAwLjUxODc2MywgMC42MjI0ODQsIDAuNzI2MDA1IiwgXAotICAgICAgICAgICIwLjEzMjcyNCwgMC4yMzk2MTUsIDAuMzIyNDgzLCAwLjQyNjAzNCwgMC41Mjk0NjUsIDAuNjMzMTg5LCAwLjczNjY4IiwgXAotICAgICAgICAgICIwLjE0ODI0OSwgMC4yNTUzMzgsIDAuMzM4MTk2LCAwLjQ0MTczMSwgMC41NDUyMDksIDAuNjQ4ODE4LCAwLjc1MjI0OCIsIFwKLSAgICAgICAgICAiMC4xNjAzNDYsIDAuMjY3NzIxLCAwLjM1MDU3OCwgMC40NTQwNzMsIDAuNTU3NTg4LCAwLjY2MTEwOSwgMC43NjQ3NjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU5MTg5LCAwLjI2MTk4OCwgMC40Mjg2MjIsIDAuNjM2MjA1LCAwLjg0Nzc4NywgMS4wNTUwNiwgMS4yNjQ0NCIsIFwKLSAgICAgICAgICAiMC4wNTkyNDcsIDAuMjYxOTg0LCAwLjQyODYzNSwgMC42MzYyMDUsIDAuODQ3Nzc4LCAxLjA1NTAxLCAxLjI2NDMiLCBcCi0gICAgICAgICAgIjAuMDU5MjY5LCAwLjI2MjAwMiwgMC40Mjg2ODgsIDAuNjM2MjI5LCAwLjg0Nzc2LCAxLjA1NTE0LCAxLjI2NDQzIiwgXAotICAgICAgICAgICIwLjA1OTMzMSwgMC4yNjE5ODcsIDAuNDI4Njc0LCAwLjYzNjIxNSwgMC44NDc3NTIsIDEuMDU1MSwgMS4yNjQ1MiIsIFwKLSAgICAgICAgICAiMC4wNTk2NzksIDAuMjYyMDUyLCAwLjQyODczNCwgMC42MzYyMTMsIDAuODQ3NzYsIDEuMDU1MDUsIDEuMjY0NjMiLCBcCi0gICAgICAgICAgIjAuMDYwNzQ3LCAwLjI2MjQwOSwgMC40MjgzNTcsIDAuNjM2NDAxLCAwLjg0Nzc5LCAxLjA1NTI1LCAxLjI2NzMyIiwgXAotICAgICAgICAgICIwLjA2MTgyMSwgMC4yNjI2MjUsIDAuNDI4OTIsIDAuNjM2ODU0LCAwLjg0Nzg0NSwgMS4wNTU4MSwgMS4yNjQ3NCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDAwNjQsIDAuMjA1LCAwLjI4NzMyMywgMC4zOTAxOTcsIDAuNDkyOTY3LCAwLjU5NTc2OCwgMC42OTg2MDEiLCBcCi0gICAgICAgICAgIjAuMTA5NzgsIDAuMjE0NzMsIDAuMjk3MTE3LCAwLjM5OTk1NywgMC41MDI3MDcsIDAuNjA1NDk0LCAwLjcwODMwOSIsIFwKLSAgICAgICAgICAiMC4xMjA3NTksIDAuMjI1NzE3LCAwLjMwODA1OCwgMC40MTA5NDksIDAuNTEzNjk3LCAwLjYxNjU1OCwgMC43MTkyODciLCBcCi0gICAgICAgICAgIjAuMTI5ODQxLCAwLjIzNDc2OCwgMC4zMTcwOTgsIDAuNDE5OTUsIDAuNTIyNzQyLCAwLjYyNTU0LCAwLjcyODMxNiIsIFwKLSAgICAgICAgICAiMC4xMzcyOCwgMC4yNDIxNDQsIDAuMzI0NTAxLCAwLjQyNzM3MSwgMC41MzAxMzcsIDAuNjMyOTEsIDAuNzM1NzE3IiwgXAotICAgICAgICAgICIwLjE0NzMyMSwgMC4yNTIyNzUsIDAuMzM0NTk1LCAwLjQzNzUwNywgMC41NDAyNDMsIDAuNjQzMDM0LCAwLjc0NTgzNCIsIFwKLSAgICAgICAgICAiMC4xNTQ5OTYsIDAuMjU5OTUyLCAwLjM0MjI3LCAwLjQ0NTEyMywgMC41NDc5MTksIDAuNjUwNzIsIDAuNzUzNDg0Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1ODE3MywgMC4yNjU0ODUsIDAuNDM1NDQyLCAwLjY0ODQ1MiwgMC44NjMyNDYsIDEuMDc2MDYsIDEuMjg5MDkiLCBcCi0gICAgICAgICAgIjAuMDU4MTI2LCAwLjI2NTYwNSwgMC40MzUwMjgsIDAuNjQ5NTk0LCAwLjg2MzIyMSwgMS4wNzU4OSwgMS4yODg4MSIsIFwKLSAgICAgICAgICAiMC4wNTgxMDksIDAuMjY1NjAyLCAwLjQzNjAzOCwgMC42NDk1OTcsIDAuODYyMjc1LCAxLjA3NzE4LCAxLjI4OTQxIiwgXAotICAgICAgICAgICIwLjA1ODExNCwgMC4yNjU1MTMsIDAuNDM1NDI2LCAwLjY0ODgyNiwgMC44NjMyMTYsIDEuMDc2MSwgMS4yODk1IiwgXAotICAgICAgICAgICIwLjA1ODE5NiwgMC4yNjU2MDMsIDAuNDM1Mzc1LCAwLjY0OTU3NywgMC44NjMyMzcsIDEuMDc1OTEsIDEuMjg4NjUiLCBcCi0gICAgICAgICAgIjAuMDU4MTk3LCAwLjI2NTc3MSwgMC40MzU1MTYsIDAuNjQ4NDA4LCAwLjg2MzEzNywgMS4wNzYwNywgMS4yOTA4MSIsIFwKLSAgICAgICAgICAiMC4wNTgzODIsIDAuMjY1NzU3LCAwLjQzNjAzMiwgMC42NDg4MDMsIDAuODYzMTM4LCAxLjA3Njk2LCAxLjI4OTQ5Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwMzc4NiwgMC4yMTAxODgsIDAuMjkzMDc4LCAwLjM5NjY1NywgMC41MDAxODcsIDAuNjAzNjM2LCAwLjcwNzExNSIsIFwKLSAgICAgICAgICAiMC4xMTM5NDMsIDAuMjIwMzMzLCAwLjMwMzI0NSwgMC40MDY4MDYsIDAuNTEwMzM0LCAwLjYxMzc5NywgMC43MTcyNjYiLCBcCi0gICAgICAgICAgIjAuMTI1NzExLCAwLjIzMjEyMSwgMC4zMTUwMTQsIDAuNDE4NTkxLCAwLjUyMjA4LCAwLjYyNTYxMSwgMC43MjkwNDQiLCBcCi0gICAgICAgICAgIjAuMTM1MzU5LCAwLjI0MTczNiwgMC4zMjQ2MzMsIDAuNDI4MjExLCAwLjUzMTcyMywgMC42MzUyMDcsIDAuNzM4NjYxIiwgXAotICAgICAgICAgICIwLjE0MzU2LCAwLjI0OTkyMSwgMC4zMzI4MiwgMC40MzY0MDQsIDAuNTM5OTQ3LCAwLjY0MzQ0NCwgMC43NDY4NTIiLCBcCi0gICAgICAgICAgIjAuMTU0Nzg0LCAwLjI2MTE5NywgMC4zNDQwOTgsIDAuNDQ3NjY2LCAwLjU1MTE5MiwgMC42NTQ2NTUsIDAuNzU4MTI1IiwgXAotICAgICAgICAgICIwLjE2MzM4NCwgMC4yNjk3OTUsIDAuMzUyNjk1LCAwLjQ1NjI1MywgMC41NTk3NzksIDAuNjYzMjUyLCAwLjc2NjcyNSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTg1MDYsIDAuMjYxMjksIDAuNDI3OTUsIDAuNjM2NTM3LCAwLjg0NzAwMiwgMS4wNTU2MSwgMS4yNjUxNCIsIFwKLSAgICAgICAgICAiMC4wNTg1MDgsIDAuMjYxMjY0LCAwLjQyODA4NCwgMC42MzY1MzQsIDAuODQ2OTQ4LCAxLjA1NjU0LCAxLjI2NTE0IiwgXAotICAgICAgICAgICIwLjA1ODUsIDAuMjYxMjE4LCAwLjQyNzY1OCwgMC42MzYzODMsIDAuODQ2NzU1LCAxLjA1NjU3LCAxLjI2NjE2IiwgXAotICAgICAgICAgICIwLjA1ODQ3NSwgMC4yNjEyMTQsIDAuNDI3OTE1LCAwLjYzNjQzMSwgMC44NDU3NCwgMS4wNTY0OSwgMS4yNjYxIiwgXAotICAgICAgICAgICIwLjA1ODQ2MSwgMC4yNjEzOTUsIDAuNDI3OTE3LCAwLjYzNzIzNSwgMC44NDcwMDUsIDEuMDU2NzEsIDEuMjY2MTciLCBcCi0gICAgICAgICAgIjAuMDU4NDA5LCAwLjI2MTQyNCwgMC40MjgwMTEsIDAuNjM2NDksIDAuODQ2ODMxLCAxLjA1NjQsIDEuMjY1MDEiLCBcCi0gICAgICAgICAgIjAuMDU4NDYzLCAwLjI2MTM4OCwgMC40Mjc5NTcsIDAuNjM3MjEzLCAwLjg0NTc2LCAxLjA1NjM5LCAxLjI2NjA5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3NTEzOCwgMC4xNzk5NDYsIDAuMjYyMjUzLCAwLjM2NTEzMiwgMC40Njc5MTMsIDAuNTcwNjI1LCAwLjY3MzQwNSIsIFwKLSAgICAgICAgICAiMC4wODQyOTcsIDAuMTg5MTg0LCAwLjI3MTQ5MiwgMC4zNzQzMiwgMC40NzcwOTMsIDAuNTc5ODcxLCAwLjY4MjYyNCIsIFwKLSAgICAgICAgICAiMC4wOTYwNjQsIDAuMjAwOTEsIDAuMjgzMjM1LCAwLjM4NjExMiwgMC40ODg4NDcsIDAuNTkxNjE5LCAwLjY5NDM4IiwgXAotICAgICAgICAgICIwLjEwNzgzNSwgMC4yMTI2OSwgMC4yOTUwMDEsIDAuMzk3ODM2LCAwLjUwMDYxNCwgMC42MDMzODksIDAuNzA2MTQ3IiwgXAotICAgICAgICAgICIwLjExODkxNywgMC4yMjM4ODcsIDAuMzA2MjU2LCAwLjQwOTEwMSwgMC41MTE4MzksIDAuNjE0NTc1LCAwLjcxNzMyNSIsIFwKLSAgICAgICAgICAiMC4xMzQ3ODUsIDAuMjM5ODkxLCAwLjMyMjIzLCAwLjQyNTAyLCAwLjUyNzgxLCAwLjYzMDU5MywgMC43MzMzMDYiLCBcCi0gICAgICAgICAgIjAuMTQ3LCAwLjI1MjMxMywgMC4zMzQ1OCwgMC40Mzc1MSwgMC41NDAzMDQsIDAuNjQzMDQyLCAwLjc0NTgwMSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTgxMjgsIDAuMjY1NTkyLCAwLjQzNTQ0OSwgMC42NDk1NDIsIDAuODYxNTM1LCAxLjA3NjU1LCAxLjI4OTI5IiwgXAotICAgICAgICAgICIwLjA1ODExNywgMC4yNjU3NjUsIDAuNDM1MzcyLCAwLjY0ODY4NSwgMC44NjMxMTIsIDEuMDc1OTUsIDEuMjg5MjIiLCBcCi0gICAgICAgICAgIjAuMDU4MTQ1LCAwLjI2NTU3NSwgMC40MzU5OSwgMC42NDk1MTEsIDAuODYyMzI2LCAxLjA3NjkzLCAxLjI4OTI3IiwgXAotICAgICAgICAgICIwLjA1ODM1NSwgMC4yNjU1MTMsIDAuNDM1ODQxLCAwLjY0ODY3NCwgMC44NjMwNzMsIDEuMDc1OTIsIDEuMjg5MzgiLCBcCi0gICAgICAgICAgIjAuMDU5MDEyLCAwLjI2NTgyMywgMC40MzU5MzksIDAuNjQ4MzM0LCAwLjg2Mjk4OSwgMS4wNzY3NCwgMS4yODkyNyIsIFwKLSAgICAgICAgICAiMC4wNjA3NjcsIDAuMjY2MTE3LCAwLjQzNTkxMSwgMC42NDkyMywgMC44NjE4NSwgMS4wNzY3NCwgMS4yOTA0NSIsIFwKLSAgICAgICAgICAiMC4wNjI2LCAwLjI2NjM3MSwgMC40MzU5NCwgMC42NDkyMDUsIDAuODYyODUzLCAxLjA3NjU1LCAxLjI4OTQ4Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3NDQwOCwgMC4xODEwNzEsIDAuMjYzODgzLCAwLjM2NzM5OSwgMC40NzA4NywgMC41NzQ0NDcsIDAuNjc3ODY5IiwgXAotICAgICAgICAgICIwLjA4MzM3OCwgMC4xOTAwNzUsIDAuMjcyODksIDAuMzc2NDQ3LCAwLjQ3OTg2LCAwLjU4MzU5MSwgMC42ODY5NjciLCBcCi0gICAgICAgICAgIjAuMDk0NzgxLCAwLjIwMTUwOSwgMC4yODQzMzgsIDAuMzg3ODU5LCAwLjQ5MTM3NywgMC41OTQ4MDYsIDAuNjk4Mzg2IiwgXAotICAgICAgICAgICIwLjEwNTg1NCwgMC4yMTI2MDYsIDAuMjk1NDM1LCAwLjM5ODkyLCAwLjUwMjQyMiwgMC42MDYxNDgsIDAuNzA5NDc5IiwgXAotICAgICAgICAgICIwLjExNjA4LCAwLjIyMjg1OCwgMC4zMDU2OTEsIDAuNDA5MjExLCAwLjUxMjY4MiwgMC42MTYxOTEsIDAuNzE5NzY2IiwgXAotICAgICAgICAgICIwLjEzMDIxMywgMC4yMzcyNzQsIDAuMzIwMTIsIDAuNDIzNjE0LCAwLjUyNzA5NSwgMC42MzA1ODYsIDAuNzM0MjA0IiwgXAotICAgICAgICAgICIwLjE0MDkxOSwgMC4yNDgyOTUsIDAuMzMxMTI1LCAwLjQzNDU1NSwgMC41MzgxNzIsIDAuNjQxNTE4LCAwLjc0NTI3MSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTkwNCwgMC4yNjE3NjksIDAuNDI4MTY0LCAwLjYzNjM3LCAwLjg0NzY2NSwgMS4wNTYzNiwgMS4yNjQxMyIsIFwKLSAgICAgICAgICAiMC4wNTkwNDksIDAuMjYxNTQyLCAwLjQyODU0NiwgMC42MzYyMTcsIDAuODQ3NjM5LCAxLjA1NTQ5LCAxLjI2NTA4IiwgXAotICAgICAgICAgICIwLjA1OTAxLCAwLjI2MjA1LCAwLjQyODQ5MiwgMC42Mzc5NDIsIDAuODQ1MzkyLCAxLjA1NzYsIDEuMjYzNzgiLCBcCi0gICAgICAgICAgIjAuMDU5MTc2LCAwLjI2MTgwNSwgMC40Mjg0OTgsIDAuNjM3NzQ3LCAwLjg0NzYzLCAxLjA1NTQ3LCAxLjI2Mzk4IiwgXAotICAgICAgICAgICIwLjA1OTc1MywgMC4yNjE3MjMsIDAuNDI4NTQ2LCAwLjYzNjM5NCwgMC44NDc2NTQsIDEuMDU3NTUsIDEuMjYzOTUiLCBcCi0gICAgICAgICAgIjAuMDYxMTY2LCAwLjI2MjE3NywgMC40MjgxNzEsIDAuNjM2ODk2LCAwLjg0NzY0OCwgMS4wNTc2OSwgMS4yNjUwNyIsIFwKLSAgICAgICAgICAiMC4wNjI2MDIsIDAuMjYyNjkyLCAwLjQyOTAyOCwgMC42Mzc5NzgsIDAuODQ1MjgzLCAxLjA1NzI4LCAxLjI2NDYyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3NjI1MywgMC4xODM1MTQsIDAuMjY3MzU0LCAwLjM3MjE0NiwgMC40NzY5OTIsIDAuNTgxNzk4LCAwLjY4NjU2MiIsIFwKLSAgICAgICAgICAiMC4wODY0MTgsIDAuMTkzNjY5LCAwLjI3NzUyLCAwLjM4MjM3MSwgMC40ODcxNDEsIDAuNTkxOTcsIDAuNjk2ODM1IiwgXAotICAgICAgICAgICIwLjA5ODQzOCwgMC4yMDU2ODgsIDAuMjg5NTQ1LCAwLjM5NDM5NSwgMC40OTkxODIsIDAuNjAzOTg4LCAwLjcwOTAwOCIsIFwKLSAgICAgICAgICAiMC4xMDc4MTgsIDAuMjE1MDY0LCAwLjI5ODkxOCwgMC40MDM3NCwgMC41MDg1NjIsIDAuNjEzMzYxLCAwLjcxODEwNiIsIFwKLSAgICAgICAgICAiMC4xMTUyNzcsIDAuMjIyNDg4LCAwLjMwNjM5MSwgMC40MTEyMDUsIDAuNTE2MDM0LCAwLjYyMDgyOSwgMC43MjU3NTkiLCBcCi0gICAgICAgICAgIjAuMTI1MjUyLCAwLjIzMjQwMSwgMC4zMTYxNzQsIDAuNDIxMDgzLCAwLjUyNTk0OSwgMC42MzA2LCAwLjczNTU3MSIsIFwKLSAgICAgICAgICAiMC4xMzIzNTMsIDAuMjM5NDE0LCAwLjMyMzQzNiwgMC40MjgyMzcsIDAuNTMyOTc5LCAwLjYzNzk3OCwgMC43NDI4MjciKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU5MzM5LCAwLjI2OTQ1NywgMC40NDE1NDksIDAuNjU3MTUsIDAuODczNzQ3LCAxLjA4OTM2LCAxLjMwNTczIiwgXAotICAgICAgICAgICIwLjA1OTMzNSwgMC4yNjkwNjIsIDAuNDQxNTYxLCAwLjY1Njc2MSwgMC44NzM2MjQsIDEuMDg5MzQsIDEuMzA2OSIsIFwKLSAgICAgICAgICAiMC4wNTkzMTksIDAuMjY5MTksIDAuNDQxNTU0LCAwLjY1NywgMC44NzM3MDYsIDEuMDg5MzYsIDEuMzA2NDIiLCBcCi0gICAgICAgICAgIjAuMDU5MjYzLCAwLjI2OTQ1NSwgMC40NDExMjcsIDAuNjU3MTM1LCAwLjg3Mzc2MywgMS4wODkzNywgMS4zMDc4NyIsIFwKLSAgICAgICAgICAiMC4wNTkxNjcsIDAuMjY5MjA3LCAwLjQ0MTE2MiwgMC42NTY4MDEsIDAuODczNzg2LCAxLjA4OTM5LCAxLjMwNjciLCBcCi0gICAgICAgICAgIjAuMDU5MDk0LCAwLjI2OTM3NCwgMC40NDEwNDIsIDAuNjU4MTYxLCAwLjg3Mjk3NywgMS4wODk0MSwgMS4zMDY3OCIsIFwKLSAgICAgICAgICAiMC4wNTkyMSwgMC4yNjkxNDEsIDAuNDQxNzksIDAuNjU4MTcsIDAuODc0ODE5LCAxLjA5MDE1LCAxLjMwNjQyIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5NDA1OSwgMC4yMDA0NTksIDAuMjgzMzU5LCAwLjM4Njk0OCwgMC40OTA1MDMsIDAuNTkzOTQ4LCAwLjY5NzQxIiwgXAotICAgICAgICAgICIwLjEwNDIyNCwgMC4yMTA2MiwgMC4yOTM1MjMsIDAuMzk3MTA2LCAwLjUwMDYyNywgMC42MDQxMDYsIDAuNzA3NTYxIiwgXAotICAgICAgICAgICIwLjExNTExMywgMC4yMjE1MTIsIDAuMzA0NDMzLCAwLjQwODAwMywgMC41MTE1MjksIDAuNjE0OTk0LCAwLjcxODQ2NiIsIFwKLSAgICAgICAgICAiMC4xMjM4OSwgMC4yMzAyODYsIDAuMzEzMTgsIDAuNDE2NzQ5LCAwLjUyMDI3MSwgMC42MjM3ODUsIDAuNzI3MjQ0IiwgXAotICAgICAgICAgICIwLjEzMTIxMywgMC4yMzc1NDgsIDAuMzIwNTE0LCAwLjQyNDAzLCAwLjUyNzUyNSwgMC42MzEwMzQsIDAuNzM0NDkiLCBcCi0gICAgICAgICAgIjAuMTQwODk2LCAwLjI0NzU4MywgMC4zMzAzNDUsIDAuNDM0MDUyLCAwLjUzNzU3MiwgMC42NDA5NjYsIDAuNzQ0NDEyIiwgXAotICAgICAgICAgICIwLjE0ODUxNiwgMC4yNTUxMjIsIDAuMzM4MDUxLCAwLjQ0MTU5OCwgMC41NDUxMjcsIDAuNjQ4NDI1LCAwLjc1MjEyNCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTg0ODMsIDAuMjYxMjc1LCAwLjQyNzk4OCwgMC42MzY1NTIsIDAuODQ1NDI5LCAxLjA1NjcsIDEuMjY1MTYiLCBcCi0gICAgICAgICAgIjAuMDU4NDg3LCAwLjI2MTIzOCwgMC40Mjc5NTEsIDAuNjM2NDIzLCAwLjg0NTk3OCwgMS4wNTY1NiwgMS4yNjYxNiIsIFwKLSAgICAgICAgICAiMC4wNTg0NjksIDAuMjYxMjUsIDAuNDI4MDk3LCAwLjYzNjYxMSwgMC44NDY5NzgsIDEuMDU2NTMsIDEuMjY1MTUiLCBcCi0gICAgICAgICAgIjAuMDU4NDEsIDAuMjYxNDEzLCAwLjQyNzk2MSwgMC42MzcyMjgsIDAuODQ2ODA4LCAxLjA1NjU3LCAxLjI2NTIyIiwgXAotICAgICAgICAgICIwLjA1ODU3MiwgMC4yNjEzNTgsIDAuNDI4MDAxLCAwLjYzNjM5MSwgMC44NDY3NDgsIDEuMDU2NDksIDEuMjY2MSIsIFwKLSAgICAgICAgICAiMC4wNTg1MywgMC4yNjE3OTgsIDAuNDI4MTYxLCAwLjYzNjc4LCAwLjg0Njg0LCAxLjA1Njc0LCAxLjI2NjI2IiwgXAotICAgICAgICAgICIwLjA1ODUzMywgMC4yNjE2MDIsIDAuNDI4MjIzLCAwLjYzNzMxOCwgMC44NDY4OTcsIDEuMDU1NiwgMS4yNjYzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzOTU4LCAwLjAwNDAwMiwgMC4wMDQwMDcsIDAuMDA0MDA5LCAwLjAwNDAxMSwgMC4wMDQwMTIsIDAuMDA0MDEzIiwgXAotICAgICAgICAgICIwLjAwMzkzNCwgMC4wMDM5ODIsIDAuMDAzOTg4LCAwLjAwMzk5MSwgMC4wMDM5OTIsIDAuMDAzOTkzLCAwLjAwMzk5MyIsIFwKLSAgICAgICAgICAiMC4wMDM5MjQsIDAuMDAzOTc4LCAwLjAwMzk4NiwgMC4wMDM5ODksIDAuMDAzOTksIDAuMDAzOTkxLCAwLjAwMzk5MyIsIFwKLSAgICAgICAgICAiMC4wMDM5MTYsIDAuMDAzOTc0LCAwLjAwMzk4MiwgMC4wMDM5ODYsIDAuMDAzOTg4LCAwLjAwMzk5LCAwLjAwMzk5MSIsIFwKLSAgICAgICAgICAiMC4wMDM5MTksIDAuMDAzOTc5LCAwLjAwMzk4OCwgMC4wMDM5OTMsIDAuMDAzOTk1LCAwLjAwMzk5NiwgMC4wMDM5OTciLCBcCi0gICAgICAgICAgIjAuMDAzOTM0LCAwLjAwMzk5NCwgMC4wMDQwMDMsIDAuMDA0MDA5LCAwLjAwNDAxMywgMC4wMDQwMTQsIDAuMDA0MDE0IiwgXAotICAgICAgICAgICIwLjAwMzk1LCAwLjAwNDAxLCAwLjAwNDAxOCwgMC4wMDQwMjYsIDAuMDA0MDMsIDAuMDA0MDI5LCAwLjAwNDAzMSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzA3NCwgMC4wMDMxMTYsIDAuMDAzMTIxLCAwLjAwMzEyMywgMC4wMDMxMjQsIDAuMDAzMTI1LCAwLjAwMzEyNSIsIFwKLSAgICAgICAgICAiMC4wMDMwNDQsIDAuMDAzMDg5LCAwLjAwMzA5MywgMC4wMDMwOTYsIDAuMDAzMDk4LCAwLjAwMzA5OSwgMC4wMDMwOTkiLCBcCi0gICAgICAgICAgIjAuMDAzMDMyLCAwLjAwMzA4MSwgMC4wMDMwODcsIDAuMDAzMDg5LCAwLjAwMzA5MSwgMC4wMDMwOTIsIDAuMDAzMDkyIiwgXAotICAgICAgICAgICIwLjAwMzAyOSwgMC4wMDMwODEsIDAuMDAzMDg3LCAwLjAwMzA5LCAwLjAwMzA5MiwgMC4wMDMwOTIsIDAuMDAzMDkzIiwgXAotICAgICAgICAgICIwLjAwMzAzMiwgMC4wMDMwODYsIDAuMDAzMDkyLCAwLjAwMzA5NiwgMC4wMDMwOTcsIDAuMDAzMDk4LCAwLjAwMzA5OSIsIFwKLSAgICAgICAgICAiMC4wMDMwNDIsIDAuMDAzMDk3LCAwLjAwMzEwNCwgMC4wMDMxMDgsIDAuMDAzMTExLCAwLjAwMzExLCAwLjAwMzExMSIsIFwKLSAgICAgICAgICAiMC4wMDMwNTYsIDAuMDAzMTEsIDAuMDAzMTE3LCAwLjAwMzEyMSwgMC4wMDMxMjMsIDAuMDAzMTIzLCAwLjAwMzEyNSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzY5MSwgMC4wMDM3NTYsIDAuMDAzNzY0LCAwLjAwMzc2NywgMC4wMDM3NywgMC4wMDM3NzEsIDAuMDAzNzcyIiwgXAotICAgICAgICAgICIwLjAwMzY4NSwgMC4wMDM3NTQsIDAuMDAzNzYzLCAwLjAwMzc2OCwgMC4wMDM3NzEsIDAuMDAzNzcyLCAwLjAwMzc3NCIsIFwKLSAgICAgICAgICAiMC4wMDM2ODYsIDAuMDAzNzYzLCAwLjAwMzc3NSwgMC4wMDM3ODIsIDAuMDAzNzg0LCAwLjAwMzc4NywgMC4wMDM3ODgiLCBcCi0gICAgICAgICAgIjAuMDAzNjk2LCAwLjAwMzc3NiwgMC4wMDM3ODksIDAuMDAzNzk2LCAwLjAwMzgsIDAuMDAzODAzLCAwLjAwMzgwNCIsIFwKLSAgICAgICAgICAiMC4wMDM3MTYsIDAuMDAzNzkzLCAwLjAwMzgwOCwgMC4wMDM4MTUsIDAuMDAzODIsIDAuMDAzODIzLCAwLjAwMzgyNCIsIFwKLSAgICAgICAgICAiMC4wMDM3NDcsIDAuMDAzODI4LCAwLjAwMzg0LCAwLjAwMzg1MywgMC4wMDM4NTgsIDAuMDAzODU4LCAwLjAwMzg2MyIsIFwKLSAgICAgICAgICAiMC4wMDM3NzUsIDAuMDAzODU2LCAwLjAwMzg4LCAwLjAwMzg5LCAwLjAwMzg5NSwgMC4wMDM4OTgsIDAuMDAzOSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjgyMywgMC4wMDI4ODgsIDAuMDAyODk3LCAwLjAwMjkwMSwgMC4wMDI5MDQsIDAuMDAyOTA1LCAwLjAwMjkwNyIsIFwKLSAgICAgICAgICAiMC4wMDI4LCAwLjAwMjg2NywgMC4wMDI4NzUsIDAuMDAyODgxLCAwLjAwMjg4MywgMC4wMDI4ODQsIDAuMDAyODg1IiwgXAotICAgICAgICAgICIwLjAwMjc5NiwgMC4wMDI4NjUsIDAuMDAyODc1LCAwLjAwMjg4LCAwLjAwMjg4MywgMC4wMDI4ODUsIDAuMDAyODg2IiwgXAotICAgICAgICAgICIwLjAwMjc5MywgMC4wMDI4NjMsIDAuMDAyODc1LCAwLjAwMjg3OSwgMC4wMDI4ODMsIDAuMDAyODg1LCAwLjAwMjg4NiIsIFwKLSAgICAgICAgICAiMC4wMDI4LCAwLjAwMjg3LCAwLjAwMjg4MywgMC4wMDI4ODgsIDAuMDAyODkxLCAwLjAwMjg5MiwgMC4wMDI4OTQiLCBcCi0gICAgICAgICAgIjAuMDAyODE3LCAwLjAwMjg4OSwgMC4wMDI4OTksIDAuMDAyOTA4LCAwLjAwMjkxMiwgMC4wMDI5MTEsIDAuMDAyOTEyIiwgXAotICAgICAgICAgICIwLjAwMjg0LCAwLjAwMjkwOSwgMC4wMDI5MjEsIDAuMDAyOTI3LCAwLjAwMjkzMiwgMC4wMDI5MzEsIDAuMDAyOTM2Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBBRERIWEwgKgotICogLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChBRERIWEwpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4xODgwOTQ7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTQ3Mjc7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNDcyNzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE0NzE1NDsKLSAgfQotICBwaW4oQikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNTcxNDM7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNTU3Nzc7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNTcxNDM7Ci0gIH0KLSAgcGluKENPKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMTQ5NzMxOwotICAgIGZ1bmN0aW9uIDogIihBIEIpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTE0MTMsIDAuMTI1NjA0LCAwLjI1Mjk1MiwgMC40NjQ3MywgMC42NzY1MjIsIDEuMTcwMzYsIDEuNDUyNjUiLCBcCi0gICAgICAgICAgIjAuMTIwMDAzLCAwLjEzNDE5NSwgMC4yNjE2MjEsIDAuNDczMjE2LCAwLjY4NTE2MywgMS4xNzg5NywgMS40NjEyNSIsIFwKLSAgICAgICAgICAiMC4xMzA1MTgsIDAuMTQ0NzAzLCAwLjI3MjE5LCAwLjQ4NDAzLCAwLjY5NTQzNSwgMS4xODk0OSwgMS40NzE4MiIsIFwKLSAgICAgICAgICAiMC4xNDAyMzQsIDAuMTU0NDE3LCAwLjI4MTg1OCwgMC40OTM2MDEsIDAuNzA1MTQzLCAxLjE5OTIyLCAxLjQ4MTQ5IiwgXAotICAgICAgICAgICIwLjE0ODkzNiwgMC4xNjMxMTQsIDAuMjkwNTAyLCAwLjUwMjMwMSwgMC43MTQxOTYsIDEuMjA4MjUsIDEuNDkwMTgiLCBcCi0gICAgICAgICAgIjAuMTYxMTU5LCAwLjE3NTI5MywgMC4zMDI3NjksIDAuNTE0NDQ5LCAwLjcyNjA0NiwgMS4yMjAwNiwgMS41MDIzNCIsIFwKLSAgICAgICAgICAiMC4xNzA1MjYsIDAuMTg0NjY2LCAwLjMxMjEzMywgMC41MjM2NjUsIDAuNzM1NDM4LCAxLjIyOTU1LCAxLjUxMTgiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTU1Mjc4LCAwLjE4MzQwOSwgMC40NDI1NDYsIDAuODc4ODcsIDEuMzE0NTgsIDIuMzMxODUsIDIuOTA5MDYiLCBcCi0gICAgICAgICAgIjAuMTU1NDQ3LCAwLjE4MzQ1MSwgMC40NDI2NDMsIDAuODc4MjE4LCAxLjMxNDM4LCAyLjMyODM5LCAyLjkwOTA3IiwgXAotICAgICAgICAgICIwLjE1NDE3MSwgMC4xODMyNTksIDAuNDQyODQ1LCAwLjg3ODg3MiwgMS4zMTMxNywgMi4zMjg0NSwgMi45MTMwMiIsIFwKLSAgICAgICAgICAiMC4xNTU3MDMsIDAuMTgzNzU4LCAwLjQ0MjU2LCAwLjg3ODc4MSwgMS4zMTMyMiwgMi4zMzAzNCwgMi45MDg5MiIsIFwKLSAgICAgICAgICAiMC4xNTU5NDIsIDAuMTgzNzk3LCAwLjQ0MjQ3LCAwLjg3ODgwNiwgMS4zMTQzMywgMi4zMjgwMSwgMi45MDg2NyIsIFwKLSAgICAgICAgICAiMC4xNTYzMDIsIDAuMTg0MzAzLCAwLjQ0MjkzMSwgMC44Nzg3MjQsIDEuMzEyNjgsIDIuMzI4MjksIDIuOTA4ODciLCBcCi0gICAgICAgICAgIjAuMTU2NjA0LCAwLjE4NDA4MiwgMC40NDM1MjIsIDAuODc3OTQ1LCAxLjMxMzA5LCAyLjMzMTYyLCAyLjkxMjUzIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5NjM3MywgMC4xMTAyMDEsIDAuMjM1MDg0LCAwLjQ0Mjc1OCwgMC42NTAyOSwgMS4xMzM3MSwgMS40MTAyOSIsIFwKLSAgICAgICAgICAiMC4xMDYyMDMsIDAuMTIwMDg1LCAwLjI0NTEyOSwgMC40NTI3ODgsIDAuNjU5Nzc4LCAxLjE0NDY0LCAxLjQyMDM4IiwgXAotICAgICAgICAgICIwLjExNzU1NCwgMC4xMzEzODksIDAuMjU2MzgxLCAwLjQ2Mzg1MywgMC42NzE4NDIsIDEuMTU1MDQsIDEuNDMxNTQiLCBcCi0gICAgICAgICAgIjAuMTI3MDg3LCAwLjE0MDkzNiwgMC4yNjU4MDMsIDAuNDczMzUzLCAwLjY4MDkxMywgMS4xNjQ0NCwgMS40NDI0NCIsIFwKLSAgICAgICAgICAiMC4xMzUwMTEsIDAuMTQ4ODU1LCAwLjI3Mzc3NSwgMC40ODEzNSwgMC42ODgyODgsIDEuMTcyNDIsIDEuNDQ5IiwgXAotICAgICAgICAgICIwLjE0NTgxNiwgMC4xNTk2ODMsIDAuMjg0NTU4LCAwLjQ5MjUwNSwgMC42OTkyNzgsIDEuMTgzOTksIDEuNDYxNDIiLCBcCi0gICAgICAgICAgIjAuMTUzODM2LCAwLjE2NzY3LCAwLjI5MjczNSwgMC41MDAyMjIsIDAuNzA3MjI3LCAxLjE5MjQ3LCAxLjQ2ODE4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE0NjQwOSwgMC4xNzYwODksIDAuNDI2NTksIDAuODQwNDk2LCAxLjI1ODQ2LCAyLjIyNTcxLCAyLjc4MTk1IiwgXAotICAgICAgICAgICIwLjE0NjkwNiwgMC4xNzU3NDksIDAuNDI1NDUyLCAwLjg0MjIzMywgMS4yNTQ5NiwgMi4yMjkyNCwgMi43ODU3NCIsIFwKLSAgICAgICAgICAiMC4xNDgwMDEsIDAuMTc2MTMsIDAuNDI2NjAzLCAwLjg0MTgzMiwgMS4yNTgxNiwgMi4yMzAyLCAyLjc4MTYzIiwgXAotICAgICAgICAgICIwLjE0NzM5MiwgMC4xNzYyNTcsIDAuNDI2NTg3LCAwLjg0MTk4LCAxLjI1NzYxLCAyLjIyNjkxLCAyLjc4NTc5IiwgXAotICAgICAgICAgICIwLjE0NzE1NSwgMC4xNzY0MjEsIDAuNDI2NjE1LCAwLjg0MDgxMSwgMS4yNTgzOSwgMi4yMjY0NSwgMi43ODE0MiIsIFwKLSAgICAgICAgICAiMC4xNDc2MTgsIDAuMTc2NTUsIDAuNDIzNjUxLCAwLjg0Mjc0MiwgMS4yNTU0OSwgMi4yMjk1MSwgMi43ODY1NiIsIFwKLSAgICAgICAgICAiMC4xNDkwNTYsIDAuMTc3MDkzLCAwLjQyNDU0NywgMC44NDI3MTIsIDEuMjU4OSwgMi4yMjk3NCwgMi43ODUzMyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDkxNDUsIDAuMTIzMjQ2LCAwLjI1MDg3NCwgMC40NjIyMjksIDAuNjczOTcyLCAxLjE2ODAxLCAxLjQ1MDc2IiwgXAotICAgICAgICAgICIwLjExODE3NywgMC4xMzIyNjksIDAuMjU5NjM4LCAwLjQ3MTIxMSwgMC42ODMwMzcsIDEuMTc3MDgsIDEuNDU5NzgiLCBcCi0gICAgICAgICAgIjAuMTI5ODc2LCAwLjE0Mzk2NSwgMC4yNzEzNDksIDAuNDgzMTYsIDAuNjk1MDA0LCAxLjE4ODg1LCAxLjQ3MTE5IiwgXAotICAgICAgICAgICIwLjE0MDQ0OSwgMC4xNTQ1NzcsIDAuMjgxODUzLCAwLjQ5MzcxLCAwLjcwNTUxLCAxLjE5OTM4LCAxLjQ4MTgxIiwgXAotICAgICAgICAgICIwLjE0OTU5OCwgMC4xNjM3MDQsIDAuMjkwOTA2LCAwLjUwMjg1MSwgMC43MTQ1MjYsIDEuMjA4NDIsIDEuNDkxIiwgXAotICAgICAgICAgICIwLjE2MjczMywgMC4xNzY3NiwgMC4zMDQwMTYsIDAuNTE1NzQzLCAwLjcyNzcyLCAxLjIyMTcsIDEuNTA0NDYiLCBcCi0gICAgICAgICAgIjAuMTcyMTIxLCAwLjE4NjMwNCwgMC4zMTM1NDUsIDAuNTI1MzQyLCAwLjczNzAzLCAxLjIzMTQyLCAxLjUxNDA3Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE1NDc2NCwgMC4xODI3MzIsIDAuNDQyNjg2LCAwLjg3NzcxMSwgMS4zMTMzNiwgMi4zMjg4MiwgMi45MTM0NSIsIFwKLSAgICAgICAgICAiMC4xNTQ5MywgMC4xODI2OSwgMC40NDMyOSwgMC44NzgwMzIsIDEuMzEyOTcsIDIuMzMxOTIsIDIuOTEzNTQiLCBcCi0gICAgICAgICAgIjAuMTU0OTkxLCAwLjE4MjgxMywgMC40NDI1OTcsIDAuODc4ODI4LCAxLjMxNDY4LCAyLjMyNzQ4LCAyLjkwODk4IiwgXAotICAgICAgICAgICIwLjE1NDkwMiwgMC4xODI5MzcsIDAuNDQyNTk5LCAwLjg3ODgyMywgMS4zMTQ3MywgMi4zMzIwMiwgMi45MDg3OSIsIFwKLSAgICAgICAgICAiMC4xNTUwNjksIDAuMTgzMDA0LCAwLjQ0Mjg1MiwgMC44Nzg3MzgsIDEuMzE0NTUsIDIuMzMxNiwgMi45MTA2NSIsIFwKLSAgICAgICAgICAiMC4xNTUyNjgsIDAuMTgzNTExLCAwLjQ0Mjc2MSwgMC44Nzc4MzYsIDEuMzE0NzIsIDIuMzMxNzcsIDIuOTEyODEiLCBcCi0gICAgICAgICAgIjAuMTU1ODksIDAuMTg0Mzc4LCAwLjQ0MzA2MywgMC44Nzg3NzcsIDEuMzE0NTQsIDIuMzMyMjUsIDIuOTEzMTMiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk0NzU5LCAwLjEwODUyNywgMC4yMzM2NiwgMC40NDE0NDEsIDAuNjQ5MTcyLCAxLjEzMzYyLCAxLjQxMTc5IiwgXAotICAgICAgICAgICIwLjEwNDUxNCwgMC4xMTgyODMsIDAuMjQzNDgxLCAwLjQ1MDczMSwgMC42NTgwMDUsIDEuMTQyNjEsIDEuNDIxOSIsIFwKLSAgICAgICAgICAiMC4xMTU0MTEsIDAuMTI5MjczLCAwLjI1Mzc3NSwgMC40NjIxNSwgMC42NzAwNzIsIDEuMTUzNTMsIDEuNDMzNCIsIFwKLSAgICAgICAgICAiMC4xMjQwOTksIDAuMTM3OTYzLCAwLjI2Mjg1NiwgMC40NzA1MTUsIDAuNjc5MDU0LCAxLjE2Mjk2LCAxLjQzODkzIiwgXAotICAgICAgICAgICIwLjEzMTgxOCwgMC4xNDU1NTcsIDAuMjcwNjA3LCAwLjQ3Nzk4NywgMC42ODY0MTMsIDEuMTcwOTIsIDEuNDQ2NDciLCBcCi0gICAgICAgICAgIjAuMTQxNzUzLCAwLjE1NTU2MSwgMC4yODAzMzIsIDAuNDg4MTk4LCAwLjY5Njg2LCAxLjE4MDY4LCAxLjQ1ODUiLCBcCi0gICAgICAgICAgIjAuMTQ5MzM2LCAwLjE2MzE4OSwgMC4yODgyMTUsIDAuNDk1NTM0LCAwLjcwMzc2OSwgMS4xODc2NSwgMS40NjUzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE0NzY2OCwgMC4xNzU3MzYsIDAuNDI0NTUsIDAuODQwNjYzLCAxLjI1NjczLCAyLjIyODUzLCAyLjc4NDI4IiwgXAotICAgICAgICAgICIwLjE0NzkxOCwgMC4xNzU3NTYsIDAuNDIzOTAzLCAwLjg0MDMzLCAxLjI1NjE1LCAyLjIyNzY4LCAyLjc4IiwgXAotICAgICAgICAgICIwLjE0Nzk3MywgMC4xNzU2NzQsIDAuNDI0MzI0LCAwLjg0MDk1NiwgMS4yNTU0MSwgMi4yMzE5MywgMi43ODQ3IiwgXAotICAgICAgICAgICIwLjE0ODMyMywgMC4xNzU0NDcsIDAuNDI1ODg4LCAwLjg0MDU0NCwgMS4yNTY0OCwgMi4yMjgzMiwgMi43ODUyMSIsIFwKLSAgICAgICAgICAiMC4xNDg1NTIsIDAuMTc2NTI0LCAwLjQyNTk2OCwgMC44NDA2MjQsIDEuMjU2NTQsIDIuMjI3MzUsIDIuNzgzMDIiLCBcCi0gICAgICAgICAgIjAuMTQ4Nzk1LCAwLjE3Njg1NiwgMC40MjQ2NTQsIDAuODQwNDI2LCAxLjI1NzczLCAyLjIyODg4LCAyLjc4MDY5IiwgXAotICAgICAgICAgICIwLjE0ODM1NiwgMC4xNzY5MjEsIDAuNDI2MjAxLCAwLjg0MDg2OCwgMS4yNTg1OSwgMi4yMzE2MiwgMi43ODM5NiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTg0OCwgMC4wMDE4NDksIDAuMDAxODUxLCAwLjAwMTg1MSwgMC4wMDE4NTEsIDAuMDAxODUyLCAwLjAwMTg1MiIsIFwKLSAgICAgICAgICAiMC4wMDE4MTgsIDAuMDAxODE4LCAwLjAwMTgyLCAwLjAwMTgyMSwgMC4wMDE4MjEsIDAuMDAxODIxLCAwLjAwMTgyMSIsIFwKLSAgICAgICAgICAiMC4wMDE4MDksIDAuMDAxODEsIDAuMDAxODEyLCAwLjAwMTgxMywgMC4wMDE4MTMsIDAuMDAxODEzLCAwLjAwMTgxMyIsIFwKLSAgICAgICAgICAiMC4wMDE4MDksIDAuMDAxODEsIDAuMDAxODEzLCAwLjAwMTgxNCwgMC4wMDE4MTQsIDAuMDAxODE0LCAwLjAwMTgxNCIsIFwKLSAgICAgICAgICAiMC4wMDE4MTUsIDAuMDAxODE2LCAwLjAwMTgxOSwgMC4wMDE4MiwgMC4wMDE4MiwgMC4wMDE4MiwgMC4wMDE4MiIsIFwKLSAgICAgICAgICAiMC4wMDE4MjgsIDAuMDAxODI5LCAwLjAwMTgzMiwgMC4wMDE4MzQsIDAuMDAxODM0LCAwLjAwMTgzNCwgMC4wMDE4MzUiLCBcCi0gICAgICAgICAgIjAuMDAxODQ0LCAwLjAwMTg0NSwgMC4wMDE4NDksIDAuMDAxODUxLCAwLjAwMTg1MSwgMC4wMDE4NTIsIDAuMDAxODUxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyNjk0LCAwLjAwMjY5NCwgMC4wMDI2OTYsIDAuMDAyNjk2LCAwLjAwMjY5NiwgMC4wMDI2OTYsIDAuMDAyNjk2IiwgXAotICAgICAgICAgICIwLjAwMjY3MiwgMC4wMDI2NzMsIDAuMDAyNjc1LCAwLjAwMjY3NSwgMC4wMDI2NzYsIDAuMDAyNjc2LCAwLjAwMjY3NiIsIFwKLSAgICAgICAgICAiMC4wMDI2NzEsIDAuMDAyNjcyLCAwLjAwMjY3NSwgMC4wMDI2NzYsIDAuMDAyNjc2LCAwLjAwMjY3NiwgMC4wMDI2NzciLCBcCi0gICAgICAgICAgIjAuMDAyNjY5LCAwLjAwMjY3LCAwLjAwMjY3MywgMC4wMDI2NzQsIDAuMDAyNjc1LCAwLjAwMjY3NSwgMC4wMDI2NzYiLCBcCi0gICAgICAgICAgIjAuMDAyNjc3LCAwLjAwMjY3OCwgMC4wMDI2ODIsIDAuMDAyNjgzLCAwLjAwMjY4NCwgMC4wMDI2ODQsIDAuMDAyNjg0IiwgXAotICAgICAgICAgICIwLjAwMjY5NSwgMC4wMDI2OTYsIDAuMDAyNywgMC4wMDI3MDEsIDAuMDAyNzAyLCAwLjAwMjcsIDAuMDAyNzAzIiwgXAotICAgICAgICAgICIwLjAwMjcxNSwgMC4wMDI3MTQsIDAuMDAyNzIxLCAwLjAwMjcyLCAwLjAwMjcyMSwgMC4wMDI3MjQsIDAuMDAyNzI0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxNTg4LCAwLjAwMTU4OSwgMC4wMDE1OTMsIDAuMDAxNTk0LCAwLjAwMTU5NCwgMC4wMDE1OTUsIDAuMDAxNTk1IiwgXAotICAgICAgICAgICIwLjAwMTU2MywgMC4wMDE1NjQsIDAuMDAxNTY4LCAwLjAwMTU2OSwgMC4wMDE1NywgMC4wMDE1NywgMC4wMDE1NyIsIFwKLSAgICAgICAgICAiMC4wMDE1NTcsIDAuMDAxNTU5LCAwLjAwMTU2MywgMC4wMDE1NjQsIDAuMDAxNTY1LCAwLjAwMTU2NiwgMC4wMDE1NjYiLCBcCi0gICAgICAgICAgIjAuMDAxNTYzLCAwLjAwMTU2NSwgMC4wMDE1NjksIDAuMDAxNTcxLCAwLjAwMTU3MiwgMC4wMDE1NzIsIDAuMDAxNTczIiwgXAotICAgICAgICAgICIwLjAwMTU3NiwgMC4wMDE1NzcsIDAuMDAxNTgyLCAwLjAwMTU4NCwgMC4wMDE1ODUsIDAuMDAxNTg2LCAwLjAwMTU4NiIsIFwKLSAgICAgICAgICAiMC4wMDE1ODksIDAuMDAxNTg3LCAwLjAwMTU5NiwgMC4wMDE1OTcsIDAuMDAxNTk4LCAwLjAwMTU5OSwgMC4wMDE1OTkiLCBcCi0gICAgICAgICAgIjAuMDAxNjE5LCAwLjAwMTYyLCAwLjAwMTYyNiwgMC4wMDE2MjgsIDAuMDAxNjI5LCAwLjAwMTYyOSwgMC4wMDE2MjkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI3MDMsIDAuMDAyNzA0LCAwLjAwMjcwOCwgMC4wMDI3MDksIDAuMDAyNzEsIDAuMDAyNzEsIDAuMDAyNzExIiwgXAotICAgICAgICAgICIwLjAwMjcwMywgMC4wMDI3MDQsIDAuMDAyNzA5LCAwLjAwMjcxMSwgMC4wMDI3MTEsIDAuMDAyNzEyLCAwLjAwMjcxMiIsIFwKLSAgICAgICAgICAiMC4wMDI3MjUsIDAuMDAyNzI3LCAwLjAwMjczMywgMC4wMDI3MzUsIDAuMDAyNzM2LCAwLjAwMjczNywgMC4wMDI3MzciLCBcCi0gICAgICAgICAgIjAuMDAyNzQ2LCAwLjAwMjc0NywgMC4wMDI3NTUsIDAuMDAyNzU3LCAwLjAwMjc1OCwgMC4wMDI3NTksIDAuMDAyNzU5IiwgXAotICAgICAgICAgICIwLjAwMjc2NSwgMC4wMDI3NjMsIDAuMDAyNzcxLCAwLjAwMjc3OCwgMC4wMDI3NzksIDAuMDAyNzc2LCAwLjAwMjc3NyIsIFwKLSAgICAgICAgICAiMC4wMDI4MDQsIDAuMDAyODA2LCAwLjAwMjgxNCwgMC4wMDI4MTYsIDAuMDAyODE4LCAwLjAwMjgxOSwgMC4wMDI4MiIsIFwKLSAgICAgICAgICAiMC4wMDI4NDMsIDAuMDAyODQ2LCAwLjAwMjg1NCwgMC4wMDI4NTgsIDAuMDAyODU5LCAwLjAwMjg2LCAwLjAwMjg2MSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUykgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjE1MTU3MTsKLSAgICBmdW5jdGlvbiA6ICIoQV5CKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTI0MTMyLCAwLjEzODI3NCwgMC4yNjU0OTksIDAuNDc3MzUyLCAwLjY4OTM0NCwgMS4xODQ4OSwgMS40NjYyNCIsIFwKLSAgICAgICAgICAiMC4xMzQxMzQsIDAuMTQ4MjcsIDAuMjc1NTA1LCAwLjQ4NzM2NCwgMC42OTk0NDEsIDEuMTkzNzQsIDEuNDc2NjkiLCBcCi0gICAgICAgICAgIjAuMTQ2OTEyLCAwLjE2MTA2MSwgMC4yODgyODEsIDAuNTAwMTc3LCAwLjcxMjMwNiwgMS4yMDcyNywgMS40ODkyMyIsIFwKLSAgICAgICAgICAiMC4xNTg5NDIsIDAuMTczMDg0LCAwLjMwMDI2OCwgMC41MTIyMzEsIDAuNzI0MjM3LCAxLjIxODY3LCAxLjUwMjQzIiwgXAotICAgICAgICAgICIwLjE3MDE0NiwgMC4xODQzLCAwLjMxMTUxNCwgMC41MjM0MzEsIDAuNzM1NzEyLCAxLjIzMDgxLCAxLjUxMjMiLCBcCi0gICAgICAgICAgIjAuMTg2MTEsIDAuMjAwMjc0LCAwLjMyNzQ0OCwgMC41Mzk0MzIsIDAuNzUxNzg1LCAxLjI0NjExLCAxLjUyODMiLCBcCi0gICAgICAgICAgIjAuMTk4NTI3LCAwLjIxMjY3NiwgMC4zMzk4ODUsIDAuNTUxOTg0LCAwLjc2NDE4MywgMS4yNTgyNSwgMS41NDA3NSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNTQ5NTksIDAuMTgzNTMsIDAuNDQyOTc4LCAwLjg3OTUyMSwgMS4zMTIyMSwgMi4zMjg0MSwgMi45MDY1NiIsIFwKLSAgICAgICAgICAiMC4xNTUwNDMsIDAuMTgzNTI4LCAwLjQ0MzAwNywgMC44Nzk1MSwgMS4zMTI2OSwgMi4zMjY4MywgMi45MDcwOSIsIFwKLSAgICAgICAgICAiMC4xNTQ5NjcsIDAuMTgzNzI0LCAwLjQ0MzAwMiwgMC44Nzk1NDgsIDEuMzEyNjQsIDIuMzI3MzQsIDIuOTExMzgiLCBcCi0gICAgICAgICAgIjAuMTU0OTQsIDAuMTgzNzI3LCAwLjQ0MzI4NCwgMC44Nzg5NjYsIDEuMzEyMDksIDIuMzI2NDksIDIuOTA4NDMiLCBcCi0gICAgICAgICAgIjAuMTU1MTY4LCAwLjE4MzcxNiwgMC40NDMwNDMsIDAuODc5MzYxLCAxLjMxMjc0LCAyLjMyODM2LCAyLjkwNjU3IiwgXAotICAgICAgICAgICIwLjE1NTcwOCwgMC4xODQxMSwgMC40NDM2MzYsIDAuODc3NjEsIDEuMzEyNjMsIDIuMzI4MTEsIDIuOTExODIiLCBcCi0gICAgICAgICAgIjAuMTU2MzE2LCAwLjE4NDczOSwgMC40NDMyNywgMC44Nzc3ODEsIDEuMzEyNjcsIDIuMzI2NTksIDIuOTA2MzIiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTI1MzAyLCAwLjEzOTE4NywgMC4yNjM3MzIsIDAuNDcxMzEyLCAwLjY3OTE0NSwgMS4xNjMwMiwgMS40Mzk2MyIsIFwKLSAgICAgICAgICAiMC4xMzQ5NjksIDAuMTQ4ODYxLCAwLjI3MzQwNiwgMC40ODA5ODgsIDAuNjg4ODIsIDEuMTcyNzEsIDEuNDQ5MzEiLCBcCi0gICAgICAgICAgIjAuMTQ2OTksIDAuMTYwODg2LCAwLjI4NTQ1NiwgMC40OTI5NzcsIDAuNzAwODI0LCAxLjE4NDY1LCAxLjQ2MTE4IiwgXAotICAgICAgICAgICIwLjE1ODU1MiwgMC4xNzI0NDgsIDAuMjk3MDMsIDAuNTA0NjMsIDAuNzEyNDc5LCAxLjE5NjQ5LCAxLjQ3MjkzIiwgXAotICAgICAgICAgICIwLjE2ODg0MiwgMC4xODI3MjgsIDAuMzA3Mjk3LCAwLjUxNDkzMiwgMC43MjI3ODQsIDEuMjA2NzMsIDEuNDgzMjMiLCBcCi0gICAgICAgICAgIjAuMTgzMzQ0LCAwLjE5NzIwOCwgMC4zMjE4MDgsIDAuNTI5NDI3LCAwLjczNzIyMSwgMS4yMjEyNCwgMS40OTg5MyIsIFwKLSAgICAgICAgICAiMC4xOTQ1NTMsIDAuMjA4NDI0LCAwLjMzMzAzNywgMC41NDA1NTgsIDAuNzQ4MTU2LCAxLjIzMjM2LCAxLjUwODg5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE0OTIzNywgMC4xNzY1NzEsIDAuNDI0MjgsIDAuODM5ODk1LCAxLjI1NTM3LCAyLjIzMjM1LCAyLjc3OTYzIiwgXAotICAgICAgICAgICIwLjE0OTI0OSwgMC4xNzY1NzYsIDAuNDI0Mjg3LCAwLjgzOTg4NywgMS4yNTU0MSwgMi4yMzIyNiwgMi43Nzk2OSIsIFwKLSAgICAgICAgICAiMC4xNDkyNTMsIDAuMTc2NTY2LCAwLjQyNDQyMywgMC44NDEwMiwgMS4yNTU1NiwgMi4yMjU3NSwgMi43ODExIiwgXAotICAgICAgICAgICIwLjE0OTMwMywgMC4xNzY2MTUsIDAuNDI0MTk5LCAwLjgzOTk1MywgMS4yNTYzNywgMi4yMjgyMSwgMi43Nzk4NiIsIFwKLSAgICAgICAgICAiMC4xNDk2NjEsIDAuMTc2ODEsIDAuNDI0NjE2LCAwLjg0MDIzMSwgMS4yNTYxMiwgMi4yMzEyOCwgMi43Nzk4IiwgXAotICAgICAgICAgICIwLjE1MDI1OSwgMC4xNzczNDEsIDAuNDI1MzgsIDAuODM5Nzg4LCAxLjI1NTUzLCAyLjIyNzg2LCAyLjc5MjgyIiwgXAotICAgICAgICAgICIwLjE1MDgzMSwgMC4xNzc3NzcsIDAuNDI1NjUzLCAwLjg0MTI4NCwgMS4yNTY0NCwgMi4yMjY1LCAyLjc4MDI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEzNjA2NywgMC4xNTAyMTQsIDAuMjc3NDk0LCAwLjQ4OTM5LCAwLjcwMTI4NSwgMS4xOTU1NiwgMS40NzgwMiIsIFwKLSAgICAgICAgICAiMC4xNDU3OSwgMC4xNTk5NDYsIDAuMjg3MjE2LCAwLjQ5OTEzNywgMC43MTA5ODUsIDEuMjA1MjcsIDEuNDg3NyIsIFwKLSAgICAgICAgICAiMC4xNTY2ODgsIDAuMTcwODQ4LCAwLjI5ODEzNiwgMC41MTAwMTgsIDAuNzIxOTE4LCAxLjIxNjE4LCAxLjQ5ODY1IiwgXAotICAgICAgICAgICIwLjE2NTYzMywgMC4xNzk3OCwgMC4zMDcwNTksIDAuNTE4OTUsIDAuNzMwODQyLCAxLjIyNTE0LCAxLjUwNzY0IiwgXAotICAgICAgICAgICIwLjE3Mjk2NiwgMC4xODcxMjIsIDAuMzE0NDA1LCAwLjUyNjI5NywgMC43MzgxNiwgMS4yMzI0NiwgMS41MTQ5MiIsIFwKLSAgICAgICAgICAiMC4xODMwMDcsIDAuMTk3MTc1LCAwLjMyNDQxMywgMC41MzYzNjYsIDAuNzQ4MjAyLCAxLjI0MjM3LCAxLjUyNTExIiwgXAotICAgICAgICAgICIwLjE5MDUxMywgMC4yMDQ1NjgsIDAuMzMxOTMyLCAwLjU0MzcyNSwgMC43NTU1ODMsIDEuMjUwMDYsIDEuNTMyNDIiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTU0NjUzLCAwLjE4MzM3MSwgMC40NDQwNTksIDAuODc4NDMyLCAxLjMxMzA1LCAyLjMyODM1LCAyLjkwODMzIiwgXAotICAgICAgICAgICIwLjE1NDY0MSwgMC4xODMyODMsIDAuNDQzMzAyLCAwLjg3ODEzMiwgMS4zMTMzNCwgMi4zMzEzMSwgMi45MDg4MiIsIFwKLSAgICAgICAgICAiMC4xNTQ2NjEsIDAuMTgzMzY3LCAwLjQ0NDA3MSwgMC44NzgzNzUsIDEuMzE1MDUsIDIuMzI4OCwgMi45MDgzNCIsIFwKLSAgICAgICAgICAiMC4xNTQ2NDIsIDAuMTgzMzczLCAwLjQ0NDA1MiwgMC44NzgzOCwgMS4zMTI3OCwgMi4zMjgzNCwgMi45MTIxMyIsIFwKLSAgICAgICAgICAiMC4xNTQ2MzEsIDAuMTgzMzk5LCAwLjQ0NDA1NywgMC44NzgzOTIsIDEuMzEzNDYsIDIuMzI4MzksIDIuOTA4MzMiLCBcCi0gICAgICAgICAgIjAuMTU0NjcsIDAuMTgzMzM2LCAwLjQ0MzQ2NSwgMC44Nzk1MjgsIDEuMzEzMzQsIDIuMzMwOTEsIDIuOTEyMjkiLCBcCi0gICAgICAgICAgIjAuMTU0NjQ1LCAwLjE4MzM0OCwgMC40NDM1MiwgMC44Nzk0MTUsIDEuMzEzNDcsIDIuMzMxMjksIDIuOTA4MzYiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTM3MDcsIDAuMTUwOTQ3LCAwLjI3NTU5MywgMC40ODMwODgsIDAuNjkwNTg1LCAxLjE3NDYsIDEuNDUxMiIsIFwKLSAgICAgICAgICAiMC4xNDcyMDQsIDAuMTYxMDgyLCAwLjI4NTcyOSwgMC40OTMyMjksIDAuNzAwNzE4LCAxLjE4NDc0LCAxLjQ2MTM0IiwgXAotICAgICAgICAgICIwLjE1ODkyOSwgMC4xNzI4MDcsIDAuMjk3NDU0LCAwLjUwNDk4MywgMC43MTI0MjYsIDEuMTk2NDcsIDEuNDczMDciLCBcCi0gICAgICAgICAgIjAuMTY4NDkxLCAwLjE4MjM2NywgMC4zMDcwMTUsIDAuNTE0NTA5LCAwLjcyMTk5OCwgMS4yMDYwMiwgMS40ODI2MiIsIFwKLSAgICAgICAgICAiMC4xNzY1NDUsIDAuMTkwNDIzLCAwLjMxNTA2NSwgMC41MjI1NjMsIDAuNzMwMDkyLCAxLjIxNDI3LCAxLjQ5MDY3IiwgXAotICAgICAgICAgICIwLjE4NzY4LCAwLjIwMTU1MSwgMC4zMjYyMDQsIDAuNTMzNjkyLCAwLjc0MTE2NywgMS4yMjUyMSwgMS41MDE4IiwgXAotICAgICAgICAgICIwLjE5NjE4LCAwLjIxMDA0NSwgMC4zMzQ3LCAwLjU0MjIxMywgMC43NDk2NzksIDEuMjMzNzQsIDEuNTEwMjgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTQ4ODAyLCAwLjE3NjA4NywgMC40MjQyMTUsIDAuODQxMTQ5LCAxLjI1Nzk4LCAyLjIzMDA2LCAyLjc4MjQ5IiwgXAotICAgICAgICAgICIwLjE0ODgxNSwgMC4xNzYxMTksIDAuNDI0Mjc3LCAwLjg0MDI3LCAxLjI1Nzg3LCAyLjIyNzM5LCAyLjc4MjUxIiwgXAotICAgICAgICAgICIwLjE0ODgxNywgMC4xNzYwOSwgMC40MjQyMzUsIDAuODQxMjA3LCAxLjI1NjUxLCAyLjIyNzU2LCAyLjc4NTY2IiwgXAotICAgICAgICAgICIwLjE0ODc4LCAwLjE3NjEwMSwgMC40MjQyNjcsIDAuODQxMDEsIDEuMjU2NDIsIDIuMjI4OTYsIDIuNzgyMzciLCBcCi0gICAgICAgICAgIjAuMTQ4ODIsIDAuMTc2MTQ1LCAwLjQyNDEwMiwgMC44NDEwMywgMS4yNTc5OCwgMi4yMjYzMSwgMi43ODE5NyIsIFwKLSAgICAgICAgICAiMC4xNDg4MTUsIDAuMTc2MDgzLCAwLjQyNDIyNCwgMC44NDA5MzcsIDEuMjU2MjMsIDIuMjI3MSwgMi43ODIxMSIsIFwKLSAgICAgICAgICAiMC4xNDg4NTEsIDAuMTc2MTMxLCAwLjQyNDcyMywgMC44NDAyNzMsIDEuMjU2MzcsIDIuMjI5NzQsIDIuNzg0OTUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTExMjAyLCAwLjEyNTM2NSwgMC4yNTI2NjcsIDAuNDY0NTMsIDAuNjc2Mzk1LCAxLjE3MDY2LCAxLjQ1MzEzIiwgXAotICAgICAgICAgICIwLjEyMDQwOCwgMC4xMzQ1NzIsIDAuMjYxODQ2LCAwLjQ3MzczMiwgMC42ODU1OSwgMS4xNzk4NywgMS40NjIzMSIsIFwKLSAgICAgICAgICAiMC4xMzIwMjksIDAuMTQ2MjAxLCAwLjI3MzQ2LCAwLjQ4NTMzOCwgMC42OTcyNjYsIDEuMTkxNDgsIDEuNDczOTQiLCBcCi0gICAgICAgICAgIjAuMTQyNzE5LCAwLjE1Njg3OSwgMC4yODQxNzksIDAuNDk2MDcxLCAwLjcwNzkxLCAxLjIwMjE4LCAxLjQ4NDYzIiwgXAotICAgICAgICAgICIwLjE1MjAzNiwgMC4xNjYxOTYsIDAuMjkzNDY4LCAwLjUwNTM3OCwgMC43MTcyNiwgMS4yMTE1MiwgMS40OTM5MSIsIFwKLSAgICAgICAgICAiMC4xNjUzMzgsIDAuMTc5NDgsIDAuMzA2NzQsIDAuNTE4NjY2LCAwLjczMDQ4OCwgMS4yMjQ4NywgMS41MDcyMSIsIFwKLSAgICAgICAgICAiMC4xNzUyODgsIDAuMTg5NDkzLCAwLjMxNjcyNywgMC41Mjg1OTMsIDAuNzQwNDk3LCAxLjIzNDc2LCAxLjUxNzM5Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE1NDY4NSwgMC4xODM0NjMsIDAuNDQ0MTU0LCAwLjg3ODU2NSwgMS4zMTM0OSwgMi4zMjg1LCAyLjkwODUyIiwgXAotICAgICAgICAgICIwLjE1NDcyMywgMC4xODM0ODMsIDAuNDQzNTM3LCAwLjg3ODM2MywgMS4zMTM0MywgMi4zMzAxNSwgMi45MDg1NiIsIFwKLSAgICAgICAgICAiMC4xNTQ3OTgsIDAuMTgzMzcsIDAuNDQzMzY5LCAwLjg3ODI5MywgMS4zMTQ5OCwgMi4zMjgxNSwgMi45MTA1NSIsIFwKLSAgICAgICAgICAiMC4xNTUxNTMsIDAuMTgzNzg2LCAwLjQ0NDAzLCAwLjg3OTI3NywgMS4zMTMxNiwgMi4zMjgwOSwgMi45MTE1IiwgXAotICAgICAgICAgICIwLjE1NTUwNywgMC4xODQwMzUsIDAuNDQzOTQ4LCAwLjg3ODI5NSwgMS4zMTQ2OSwgMi4zMzA3NywgMi45MTExOSIsIFwKLSAgICAgICAgICAiMC4xNTYwNTEsIDAuMTg0NDUsIDAuNDQzNjQxLCAwLjg3OTIwNiwgMS4zMTMyNCwgMi4zMzA4MiwgMi45MDg0NyIsIFwKLSAgICAgICAgICAiMC4xNTY1OTYsIDAuMTg0ODc2LCAwLjQ0Mzc2OCwgMC44NzkwMzMsIDEuMzEyODIsIDIuMzI4MDcsIDIuOTExNjgiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTA5Mzg1LCAwLjEyMzI1NiwgMC4yNDc3NjcsIDAuNDU1MzU2LCAwLjY2Mjc3MiwgMS4xNDcyLCAxLjQyMzYzIiwgXAotICAgICAgICAgICIwLjExODMzNiwgMC4xMzIyMDIsIDAuMjU2NzI4LCAwLjQ2NDM0NiwgMC42NzE3OTksIDEuMTU2NDIsIDEuNDMyNzQiLCBcCi0gICAgICAgICAgIjAuMTI5NTQ2LCAwLjE0MzQxOCwgMC4yNjc5NiwgMC40NzU1MjQsIDAuNjgzMzEyLCAxLjE2NzIsIDEuNDQ0MTciLCBcCi0gICAgICAgICAgIjAuMTM5MjEzLCAwLjE1MzA5NCwgMC4yNzc2MzEsIDAuNDg1MTksIDAuNjkyNjYsIDEuMTc2NzksIDEuNDUzNjgiLCBcCi0gICAgICAgICAgIjAuMTQ3NjAzLCAwLjE2MTQ3NiwgMC4yODYwMjQsIDAuNDkzNTMzLCAwLjcwMDk3NiwgMS4xODUyOCwgMS40NjE1NCIsIFwKLSAgICAgICAgICAiMC4xNTk0MzQsIDAuMTczMTU2LCAwLjI5Nzg3NywgMC41MDUzODcsIDAuNzEyODY2LCAxLjE5NzE4LCAxLjQ3MzYxIiwgXAotICAgICAgICAgICIwLjE2NzcxMSwgMC4xODE2ODQsIDAuMzA2MjgxLCAwLjUxMzc5MSwgMC43MjE1MDEsIDEuMjA1ODgsIDEuNDgyNzciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTQ5MTUsIDAuMTc2NDgzLCAwLjQyNDY0MywgMC44NDAwODcsIDEuMjU1NTMsIDIuMjI4MjgsIDIuNzc5ODYiLCBcCi0gICAgICAgICAgIjAuMTQ5MTIzLCAwLjE3NjUyNywgMC40MjQ1MTYsIDAuODQwMjgyLCAxLjI1NTEzLCAyLjIyNjIsIDIuNzg3NSIsIFwKLSAgICAgICAgICAiMC4xNDkxNTIsIDAuMTc2NDcsIDAuNDI0MzQ1LCAwLjgzOTMzOSwgMS4yNTU1OSwgMi4yMjUzMiwgMi43ODE1IiwgXAotICAgICAgICAgICIwLjE0OTM3OCwgMC4xNzY1NTgsIDAuNDI0NTk1LCAwLjg0MDUzNiwgMS4yNTc1NSwgMi4yMjYsIDIuNzgyNjMiLCBcCi0gICAgICAgICAgIjAuMTQ5NzMzLCAwLjE3Njg0NCwgMC40MjUyNDMsIDAuODQwMzM0LCAxLjI1OTA5LCAyLjIyNTU0LCAyLjc4ODMyIiwgXAotICAgICAgICAgICIwLjE1MDE5NCwgMC4xNzc0MTIsIDAuNDI0OTI2LCAwLjg0MjA3LCAxLjI1OTIxLCAyLjIyNjk4LCAyLjc4MDc5IiwgXAotICAgICAgICAgICIwLjE1MDc0OSwgMC4xNzc3OTUsIDAuNDI1NzkzLCAwLjg0MjMxLCAxLjI1NTk4LCAyLjIyNjUsIDIuNzgwODEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTE3NjU0LCAwLjEzMTc5MSwgMC4yNTkwMDgsIDAuNDcwOTU0LCAwLjY4Mjg5NywgMS4xNzczMiwgMS40NjA3NCIsIFwKLSAgICAgICAgICAiMC4xMjc4NTMsIDAuMTQxOTk2LCAwLjI2OTIyMywgMC40ODEwOTMsIDAuNjkzMTg4LCAxLjE4Nzk4LCAxLjQ3MTE4IiwgXAotICAgICAgICAgICIwLjE0MDQ3NCwgMC4xNTQ2MTQsIDAuMjgxNzc2LCAwLjQ5Mzc2OCwgMC43MDU3ODksIDEuMjAwMDgsIDEuNDg0MjEiLCBcCi0gICAgICAgICAgIjAuMTUwMjgxLCAwLjE2NDQyNSwgMC4yOTE2MDcsIDAuNTAzNjg1LCAwLjcxNTcwMywgMS4yMDk4NiwgMS40OTI3MSIsIFwKLSAgICAgICAgICAiMC4xNTg1NTMsIDAuMTcyNjI3LCAwLjI5OTgzNywgMC41MTE4MjMsIDAuNzIzODI5LCAxLjIxODI2LCAxLjUwMTExIiwgXAotICAgICAgICAgICIwLjE2OTA0OCwgMC4xODMyNzUsIDAuMzEwMzg3LCAwLjUyMjU2MSwgMC43MzQ2MzYsIDEuMjI4NzcsIDEuNTExNzQiLCBcCi0gICAgICAgICAgIjAuMTc3MDQ1LCAwLjE5MTE3NywgMC4zMTgzNTksIDAuNTMwMjk3LCAwLjc0MjE4MSwgMS4yMzY2OSwgMS41MTkyNSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNTQ4MzMsIDAuMTgzMzc0LCAwLjQ0MzAwMiwgMC44Nzc1OTksIDEuMzEyMjEsIDIuMzI2NzEsIDIuOTA3MiIsIFwKLSAgICAgICAgICAiMC4xNTQ4MDIsIDAuMTgzMzcyLCAwLjQ0MzAxOSwgMC44NzkxMTMsIDEuMzEzMzksIDIuMzI4OTQsIDIuOTA3ODgiLCBcCi0gICAgICAgICAgIjAuMTU0OTA5LCAwLjE4MzYwOCwgMC40NDMyNDMsIDAuODc3NjM3LCAxLjMxMjc2LCAyLjMzMDYyLCAyLjkwODMiLCBcCi0gICAgICAgICAgIjAuMTU0ODk5LCAwLjE4MzQ0NCwgMC40NDM5MiwgMC44Nzc3OTgsIDEuMzEyNjgsIDIuMzI2ODksIDIuOTA5MiIsIFwKLSAgICAgICAgICAiMC4xNTQ4NCwgMC4xODM0MDksIDAuNDQzOTc2LCAwLjg3ODk3NSwgMS4zMTIyMSwgMi4zMjYzMSwgMi45MDg5OCIsIFwKLSAgICAgICAgICAiMC4xNTQ3NjQsIDAuMTgzMzIzLCAwLjQ0MzIwNiwgMC44Nzc3NjcsIDEuMzEyNzIsIDIuMzI2OTIsIDIuOTA3MjMiLCBcCi0gICAgICAgICAgIjAuMTU0NTMzLCAwLjE4MzE3MSwgMC40NDM3OTcsIDAuODc4OTE2LCAxLjMxNTI3LCAyLjMzMDY1LCAyLjkwNjQ3Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEzMTQ3OSwgMC4xNDUzNywgMC4yNzAwNTcsIDAuNDc3NTc2LCAwLjY4NTAyNiwgMS4xNjkwOCwgMS40NDU3MyIsIFwKLSAgICAgICAgICAiMC4xNDE2NzgsIDAuMTU1NTU0LCAwLjI4MDIwNCwgMC40ODc3NTMsIDAuNjk1MjA3LCAxLjE3OTI1LCAxLjQ1NTk4IiwgXAotICAgICAgICAgICIwLjE1MzMzMSwgMC4xNjcyMTQsIDAuMjkxODc3LCAwLjQ5OTM4MywgMC43MDY5MTEsIDEuMTkwOTgsIDEuNDY3NDkiLCBcCi0gICAgICAgICAgIjAuMTYyNjA0LCAwLjE3NjQ4NCwgMC4zMDExNDksIDAuNTA4NjU4LCAwLjcxNjE3MywgMS4yMDAyMiwgMS40NzY3NiIsIFwKLSAgICAgICAgICAiMC4xNzA0MDIsIDAuMTg0Mjk2LCAwLjMwODk1MiwgMC41MTY0NzMsIDAuNzIzOTM0LCAxLjIwNzk3LCAxLjQ4NDU3IiwgXAotICAgICAgICAgICIwLjE4MTgzLCAwLjE5NTU5NCwgMC4zMjA0MjMsIDAuNTI3OTU4LCAwLjczNTQ3OSwgMS4yMTk1LCAxLjQ5NjA2IiwgXAotICAgICAgICAgICIwLjE4OTgzMywgMC4yMDM3NTksIDAuMzI4NDk5LCAwLjUzNjA0MSwgMC43NDM1MTEsIDEuMjI3NzEsIDEuNTA0MjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTQ4NzM5LCAwLjE3NjAyNCwgMC40MjQyMjYsIDAuODQwMDczLCAxLjI1NjUsIDIuMjI3NzQsIDIuNzg2MjYiLCBcCi0gICAgICAgICAgIjAuMTQ4Nzk1LCAwLjE3NjEwMSwgMC40MjQ3NDQsIDAuODQwMjcyLCAxLjI1NjQ3LCAyLjIzLCAyLjc4NjM3IiwgXAotICAgICAgICAgICIwLjE0ODc3NiwgMC4xNzYwNywgMC40MjQxOTIsIDAuODQxMDY3LCAxLjI1OCwgMi4yMjY3LCAyLjc4MjMyIiwgXAotICAgICAgICAgICIwLjE0ODgxNSwgMC4xNzYwNTMsIDAuNDI0MTI2LCAwLjg0MTA4MywgMS4yNTc5MywgMi4yMzAxNiwgMi43ODIyMyIsIFwKLSAgICAgICAgICAiMC4xNDg5MSwgMC4xNzYyMDIsIDAuNDI0MzQ2LCAwLjg0MTAzOCwgMS4yNTc1NCwgMi4yMjk1MywgMi43ODQxMSIsIFwKLSAgICAgICAgICAiMC4xNDkwNDIsIDAuMTc2MjksIDAuNDI0Mjk0LCAwLjg0MDIzNywgMS4yNTc5MSwgMi4yMjk3NywgMi43ODUyIiwgXAotICAgICAgICAgICIwLjE0ODk2NSwgMC4xNzYzNjEsIDAuNDI0NTIyLCAwLjg0MTA5LCAxLjI1NzUyLCAyLjIzMDQ3LCAyLjc4NTYxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyNjk0LCAwLjAwMjY5NCwgMC4wMDI2OTYsIDAuMDAyNjk2LCAwLjAwMjY5NiwgMC4wMDI2OTYsIDAuMDAyNjk2IiwgXAotICAgICAgICAgICIwLjAwMjY3MiwgMC4wMDI2NzMsIDAuMDAyNjc1LCAwLjAwMjY3NSwgMC4wMDI2NzYsIDAuMDAyNjc2LCAwLjAwMjY3NiIsIFwKLSAgICAgICAgICAiMC4wMDI2NzEsIDAuMDAyNjcyLCAwLjAwMjY3NSwgMC4wMDI2NzYsIDAuMDAyNjc2LCAwLjAwMjY3NiwgMC4wMDI2NzciLCBcCi0gICAgICAgICAgIjAuMDAyNjY5LCAwLjAwMjY3LCAwLjAwMjY3MywgMC4wMDI2NzQsIDAuMDAyNjc1LCAwLjAwMjY3NSwgMC4wMDI2NzYiLCBcCi0gICAgICAgICAgIjAuMDAyNjc3LCAwLjAwMjY3OCwgMC4wMDI2ODIsIDAuMDAyNjgzLCAwLjAwMjY4NCwgMC4wMDI2ODQsIDAuMDAyNjg0IiwgXAotICAgICAgICAgICIwLjAwMjY5NSwgMC4wMDI2OTYsIDAuMDAyNywgMC4wMDI3MDEsIDAuMDAyNzAyLCAwLjAwMjcsIDAuMDAyNzAzIiwgXAotICAgICAgICAgICIwLjAwMjcxNSwgMC4wMDI3MTQsIDAuMDAyNzIxLCAwLjAwMjcyLCAwLjAwMjcyMSwgMC4wMDI3MjQsIDAuMDAyNzI0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxODQ4LCAwLjAwMTg0OSwgMC4wMDE4NTEsIDAuMDAxODUxLCAwLjAwMTg1MSwgMC4wMDE4NTIsIDAuMDAxODUyIiwgXAotICAgICAgICAgICIwLjAwMTgxOCwgMC4wMDE4MTgsIDAuMDAxODIsIDAuMDAxODIxLCAwLjAwMTgyMSwgMC4wMDE4MjEsIDAuMDAxODIxIiwgXAotICAgICAgICAgICIwLjAwMTgwOSwgMC4wMDE4MSwgMC4wMDE4MTIsIDAuMDAxODEzLCAwLjAwMTgxMywgMC4wMDE4MTMsIDAuMDAxODEzIiwgXAotICAgICAgICAgICIwLjAwMTgwOSwgMC4wMDE4MSwgMC4wMDE4MTMsIDAuMDAxODE0LCAwLjAwMTgxNCwgMC4wMDE4MTQsIDAuMDAxODE0IiwgXAotICAgICAgICAgICIwLjAwMTgxNSwgMC4wMDE4MTYsIDAuMDAxODE5LCAwLjAwMTgyLCAwLjAwMTgyLCAwLjAwMTgyLCAwLjAwMTgyIiwgXAotICAgICAgICAgICIwLjAwMTgyOCwgMC4wMDE4MjksIDAuMDAxODMyLCAwLjAwMTgzNCwgMC4wMDE4MzQsIDAuMDAxODM0LCAwLjAwMTgzNSIsIFwKLSAgICAgICAgICAiMC4wMDE4NDQsIDAuMDAxODQ1LCAwLjAwMTg0OSwgMC4wMDE4NTEsIDAuMDAxODUxLCAwLjAwMTg1MiwgMC4wMDE4NTEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI3MDMsIDAuMDAyNzA0LCAwLjAwMjcwOCwgMC4wMDI3MDksIDAuMDAyNzEsIDAuMDAyNzEsIDAuMDAyNzExIiwgXAotICAgICAgICAgICIwLjAwMjcwMywgMC4wMDI3MDQsIDAuMDAyNzA5LCAwLjAwMjcxMSwgMC4wMDI3MTEsIDAuMDAyNzEyLCAwLjAwMjcxMiIsIFwKLSAgICAgICAgICAiMC4wMDI3MjUsIDAuMDAyNzI3LCAwLjAwMjczMywgMC4wMDI3MzUsIDAuMDAyNzM2LCAwLjAwMjczNywgMC4wMDI3MzciLCBcCi0gICAgICAgICAgIjAuMDAyNzQ2LCAwLjAwMjc0NywgMC4wMDI3NTUsIDAuMDAyNzU3LCAwLjAwMjc1OCwgMC4wMDI3NTksIDAuMDAyNzU5IiwgXAotICAgICAgICAgICIwLjAwMjc2NSwgMC4wMDI3NjMsIDAuMDAyNzcxLCAwLjAwMjc3OCwgMC4wMDI3NzksIDAuMDAyNzc2LCAwLjAwMjc3NyIsIFwKLSAgICAgICAgICAiMC4wMDI4MDQsIDAuMDAyODA2LCAwLjAwMjgxNCwgMC4wMDI4MTYsIDAuMDAyODE4LCAwLjAwMjgxOSwgMC4wMDI4MiIsIFwKLSAgICAgICAgICAiMC4wMDI4NDMsIDAuMDAyODQ2LCAwLjAwMjg1NCwgMC4wMDI4NTgsIDAuMDAyODU5LCAwLjAwMjg2LCAwLjAwMjg2MSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTU4OCwgMC4wMDE1ODksIDAuMDAxNTkzLCAwLjAwMTU5NCwgMC4wMDE1OTQsIDAuMDAxNTk1LCAwLjAwMTU5NSIsIFwKLSAgICAgICAgICAiMC4wMDE1NjMsIDAuMDAxNTY0LCAwLjAwMTU2OCwgMC4wMDE1NjksIDAuMDAxNTcsIDAuMDAxNTcsIDAuMDAxNTciLCBcCi0gICAgICAgICAgIjAuMDAxNTU3LCAwLjAwMTU1OSwgMC4wMDE1NjMsIDAuMDAxNTY0LCAwLjAwMTU2NSwgMC4wMDE1NjYsIDAuMDAxNTY2IiwgXAotICAgICAgICAgICIwLjAwMTU2MywgMC4wMDE1NjUsIDAuMDAxNTY5LCAwLjAwMTU3MSwgMC4wMDE1NzIsIDAuMDAxNTcyLCAwLjAwMTU3MyIsIFwKLSAgICAgICAgICAiMC4wMDE1NzYsIDAuMDAxNTc3LCAwLjAwMTU4MiwgMC4wMDE1ODQsIDAuMDAxNTg1LCAwLjAwMTU4NiwgMC4wMDE1ODYiLCBcCi0gICAgICAgICAgIjAuMDAxNTg5LCAwLjAwMTU4NywgMC4wMDE1OTYsIDAuMDAxNTk3LCAwLjAwMTU5OCwgMC4wMDE1OTksIDAuMDAxNTk5IiwgXAotICAgICAgICAgICIwLjAwMTYxOSwgMC4wMDE2MiwgMC4wMDE2MjYsIDAuMDAxNjI4LCAwLjAwMTYyOSwgMC4wMDE2MjksIDAuMDAxNjI5Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBBTkQyWDQgKgotICogLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChBTkQyWDQpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4yMjA5NTk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDkzMzc2MjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA5MzM3NjI7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwOTMxNTk4OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDQwOSwgMC4wMDA0MDksIDAuMDAwNDA5LCAwLjAwMDQwOSwgMC4wMDA0MDksIDAuMDAwNDA5LCAwLjAwMDQwOSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDQyMiwgMC4wMDA0MTIsIDAuMDAwNDExLCAwLjAwMDQxLCAwLjAwMDQxLCAwLjAwMDQxLCAwLjAwMDQxIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA5NDA0OTU7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwOTQwMDg7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwOTQwNDk1OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDI1OSwgMC4wMDAyNTksIDAuMDAwMjU5LCAwLjAwMDI1OSwgMC4wMDAyNTksIDAuMDAwMjU5LCAwLjAwMDI1OSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDQ2NCwgMC4wMDA0NjUsIDAuMDAwNDY1LCAwLjAwMDQ2NSwgMC4wMDA0NjUsIDAuMDAwNDY0LCAwLjAwMDQ2NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAxLjA0Njk4OwotICAgIGZ1bmN0aW9uIDogIihBIEIpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2Njg4MiwgMC4xNDM0NSwgMC4yMTU3MDUsIDAuMjY3MjYyLCAwLjM0OTgwMiwgMC40MjE5NDgsIDAuNTI1MzExIiwgXAotICAgICAgICAgICIwLjA3NTQ3MiwgMC4xNTIxOCwgMC4yMjQ0NTYsIDAuMjc2MDMyLCAwLjM1ODU5NSwgMC40MzA2OTEsIDAuNTMzOTcxIiwgXAotICAgICAgICAgICIwLjA4NjQ2NCwgMC4xNjMwNTgsIDAuMjM1MzMzLCAwLjI4NjkwNiwgMC4zNjk0NDksIDAuNDQxNTUyLCAwLjU0NDU0IiwgXAotICAgICAgICAgICIwLjA5NzAxNywgMC4xNzM1OTgsIDAuMjQ1ODU1LCAwLjI5NzQxMSwgMC4zODAwMDMsIDAuNDUyMDkxLCAwLjU1NTI3NSIsIFwKLSAgICAgICAgICAiMC4xMDY3NzMsIDAuMTgzNTg2LCAwLjI1NTg1LCAwLjMwNzQxMywgMC4zODk5MTEsIDAuNDYyMTA2LCAwLjU2NTM4MyIsIFwKLSAgICAgICAgICAiMC4xMjExNDMsIDAuMTk4MzAzLCAwLjI3MDczMSwgMC4zMjIzMTUsIDAuNDA0ODc2LCAwLjQ3Njk2LCAwLjU4MDMwNCIsIFwKLSAgICAgICAgICAiMC4xMzI0ODUsIDAuMjEwMzcsIDAuMjgyNTgsIDAuMzM0MTQzLCAwLjQxNjY3NSwgMC40ODg4NjUsIDAuNTkxOTk1Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM5MDYxLCAwLjE4MDk3MSwgMC4zMjg1NjUsIDAuNDM0NTI1LCAwLjYwMzYxLCAwLjc1Mzc2NCwgMC45NjQ2NjQiLCBcCi0gICAgICAgICAgIjAuMDM5MDc2LCAwLjE4MTIwOCwgMC4zMjg1MzksIDAuNDM0NjMyLCAwLjYwMzQzLCAwLjc1MzcwOSwgMC45NjQ5MDQiLCBcCi0gICAgICAgICAgIjAuMDM5MDM4LCAwLjE4MTIyMSwgMC4zMjg2NjQsIDAuNDMzODg4LCAwLjYwMzQ3NiwgMC43NTM2OTQsIDAuOTY1OTA3IiwgXAotICAgICAgICAgICIwLjAzOTQ2LCAwLjE4MTI1NywgMC4zMjg1NDMsIDAuNDM0NDQxLCAwLjYwMzM1NCwgMC43NTM3MDIsIDAuOTY1MTI4IiwgXAotICAgICAgICAgICIwLjA0MDAwMiwgMC4xODE0MTcsIDAuMzI4NTc3LCAwLjQzNDQ4NiwgMC42MDQ1OTQsIDAuNzUzNjA4LCAwLjk2NDg5MiIsIFwKLSAgICAgICAgICAiMC4wNDE4NTMsIDAuMTgyMTIsIDAuMzI4Mjk2LCAwLjQzNDg1NSwgMC42MDM1NzIsIDAuNzUzNjM3LCAwLjk2NDg5OSIsIFwKLSAgICAgICAgICAiMC4wNDI3NTksIDAuMTgyNTgyLCAwLjMyOTAyMiwgMC40MzQ4MDEsIDAuNjAzNTgsIDAuNzUyMjc3LCAwLjk2NTI4OCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0NzEwOCwgMC4xMjE5NTcsIDAuMTk1NDA4LCAwLjI0Nzg0NCwgMC4zMzE2OTIsIDAuNDA1MDU3LCAwLjUwOTgzNyIsIFwKLSAgICAgICAgICAiMC4wNTcwMzksIDAuMTMxOTIsIDAuMjA1MzkyLCAwLjI1Nzc5OCwgMC4zNDE2NDEsIDAuNDE1MDA3LCAwLjUxOTgxNyIsIFwKLSAgICAgICAgICAiMC4wNjkzNjEsIDAuMTQ0MjYzLCAwLjIxNzcyNSwgMC4yNzAxNDIsIDAuMzUzOTk5LCAwLjQyNzM2NiwgMC41MzIxNjkiLCBcCi0gICAgICAgICAgIjAuMDgwODkxLCAwLjE1NTg0LCAwLjIyOTMwNiwgMC4yODE3MjUsIDAuMzY1NTg0LCAwLjQzODk1NSwgMC41NDM3OTgiLCBcCi0gICAgICAgICAgIjAuMDkwNzk5LCAwLjE2NTk4MywgMC4yMzk0MjYsIDAuMjkxODYzLCAwLjM3NTcyNSwgMC40NDkwOTMsIDAuNTUzODk2IiwgXAotICAgICAgICAgICIwLjEwNDIzMywgMC4xNzk4MDMsIDAuMjUzMjM4LCAwLjMwNTY2MywgMC4zODk1MDMsIDAuNDYyODg1LCAwLjU2NzY3NyIsIFwKLSAgICAgICAgICAiMC4xMTQ1LCAwLjE5MDUwOSwgMC4yNjM4NiwgMC4zMTYyNzcsIDAuNDAwMTM0LCAwLjQ3MzQ2NiwgMC41NzgyNzgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzIzOTEsIDAuMTc3NjEyLCAwLjMyNTE3MiwgMC40MzIyMzgsIDAuNjAyNDg2LCAwLjc0OTQxNCwgMC45NjQwMDEiLCBcCi0gICAgICAgICAgIjAuMDMyMzczLCAwLjE3NzM4OSwgMC4zMjU0MTEsIDAuNDMyMjg0LCAwLjYwMjM5NSwgMC43NTAwNDMsIDAuOTYyNjI3IiwgXAotICAgICAgICAgICIwLjAzMjcxNSwgMC4xNzc2MzYsIDAuMzI1NTE4LCAwLjQzMTYyNSwgMC42MDIxNjcsIDAuNzUwMDk3LCAwLjk2MzM4OCIsIFwKLSAgICAgICAgICAiMC4wMzM0NiwgMC4xNzc3MywgMC4zMjU2NTYsIDAuNDMyMDk0LCAwLjYwMjQwMywgMC43NTEwMjUsIDAuOTY0MjE4IiwgXAotICAgICAgICAgICIwLjAzNDczNiwgMC4xNzc5OTgsIDAuMzI2MDgxLCAwLjQzMTg0NCwgMC42MDI0NTIsIDAuNzUwMzcsIDAuOTY0MTA4IiwgXAotICAgICAgICAgICIwLjAzNjcxNSwgMC4xNzg0MTYsIDAuMzI1OTg0LCAwLjQzMTU2NiwgMC42MDE1NywgMC43NTExODgsIDAuOTY0MTIxIiwgXAotICAgICAgICAgICIwLjAzODM0NSwgMC4xNzg3MzgsIDAuMzI2MTEsIDAuNDMyMDM2LCAwLjYwMTk4NiwgMC43NTExNzcsIDAuOTYzOTA5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY0NjI2LCAwLjE0MTI3OCwgMC4yMTM1NDcsIDAuMjY1MTA3LCAwLjM0NzY1MywgMC40MTk3OTIsIDAuNTIzMTQyIiwgXAotICAgICAgICAgICIwLjA3MzU3OSwgMC4xNTAyNiwgMC4yMjI1ODQsIDAuMjc0MTY4LCAwLjM1Njc1LCAwLjQyODg0NiwgMC41MzIxMyIsIFwKLSAgICAgICAgICAiMC4wODUzOTIsIDAuMTYyMDEyLCAwLjIzNDI3OCwgMC4yODU4NDEsIDAuMzY4MzQ5LCAwLjQ0MDUxOSwgMC41NDM2NTIiLCBcCi0gICAgICAgICAgIjAuMDk3MjQsIDAuMTczNjUxLCAwLjI0NTkxNCwgMC4yOTc0NzYsIDAuMzgwMDYsIDAuNDUyMTc5LCAwLjU1NTMxMyIsIFwKLSAgICAgICAgICAiMC4xMDgxNjUsIDAuMTg0OTgzLCAwLjI1NzIzNywgMC4zMDg4MDQsIDAuMzkxMjk2LCAwLjQ2MzU2OCwgMC41NjY3NDMiLCBcCi0gICAgICAgICAgIjAuMTIzNzAyLCAwLjIwMTIyNCwgMC4yNzM1NDQsIDAuMzI1MDk3LCAwLjQwNzYyNCwgMC40Nzk3OTEsIDAuNTgzMTMzIiwgXAotICAgICAgICAgICIwLjEzNTk2NywgMC4yMTM2NCwgMC4yODU4MzQsIDAuMzM3Mzg2LCAwLjQxOTg2NywgMC40OTIxNjEsIDAuNTk1MTgzIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM5MDk3LCAwLjE4MDk4MSwgMC4zMjg1NTYsIDAuNDM0NTIzLCAwLjYwMzY2NSwgMC43NTM3NDUsIDAuOTY0ODk5IiwgXAotICAgICAgICAgICIwLjAzOTAxNCwgMC4xODEyMTUsIDAuMzI4NTE4LCAwLjQzNDQ4MSwgMC42MDM0MjEsIDAuNzUzNzA0LCAwLjk2NDg5NiIsIFwKLSAgICAgICAgICAiMC4wMzg5OTcsIDAuMTgxMjEyLCAwLjMyODQ4OCwgMC40MzQ0MjksIDAuNjA0NTk4LCAwLjc1MzIzNiwgMC45NjYyNjYiLCBcCi0gICAgICAgICAgIjAuMDM5NDMxLCAwLjE4MTM5NiwgMC4zMjg1NTYsIDAuNDM0NDc5LCAwLjYwMzQzNCwgMC43NTM3MzgsIDAuOTY2NzgyIiwgXAotICAgICAgICAgICIwLjA0MDcwMiwgMC4xODE0NjYsIDAuMzI4NjA3LCAwLjQzNDUzLCAwLjYwMzc3NSwgMC43NTIwNzgsIDAuOTY0OTEyIiwgXAotICAgICAgICAgICIwLjA0MzU4LCAwLjE4MjM2NiwgMC4zMjg5MjYsIDAuNDM0MTkyLCAwLjYwMzg4NiwgMC43NTM2NTEsIDAuOTY0OTAzIiwgXAotICAgICAgICAgICIwLjA0NDgzNSwgMC4xODMzNjQsIDAuMzI5MDA0LCAwLjQzNDQ3MywgMC42MDQ3MzYsIDAuNzUyMDM4LCAwLjk2NjA2NSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0NTE5OSwgMC4xMTk5NDEsIDAuMTkzNDI0LCAwLjI0NTg3MSwgMC4zMjk3MTMsIDAuNDAzMjE1LCAwLjUwNzg5IiwgXAotICAgICAgICAgICIwLjA1NTE4MywgMC4xMjk5MjUsIDAuMjAzMzczLCAwLjI1NTc4MywgMC4zMzk2NTYsIDAuNDEzMDYyLCAwLjUxNzg1NyIsIFwKLSAgICAgICAgICAiMC4wNjc1MTUsIDAuMTQyMjg1LCAwLjIxNTczNCwgMC4yNjgxNSwgMC4zNTIwNTIsIDAuNDI1NDY5LCAwLjUzMDMyMSIsIFwKLSAgICAgICAgICAiMC4wNzg0OTgsIDAuMTUzMjI1LCAwLjIyNjY2MSwgMC4yNzkwODksIDAuMzYyOTczLCAwLjQzNjU5NCwgMC41NDE0MDciLCBcCi0gICAgICAgICAgIjAuMDg4MDE2LCAwLjE2MjgzNCwgMC4yMzYyMzgsIDAuMjg4Njc5LCAwLjM3MjYzOCwgMC40NDYwMDgsIDAuNTUxMDQxIiwgXAotICAgICAgICAgICIwLjEwMTM5NCwgMC4xNzY2NzEsIDAuMjQ5OTM5LCAwLjMwMjM4LCAwLjM4NjMyMywgMC40NTk2NzUsIDAuNTY0NDE3IiwgXAotICAgICAgICAgICIwLjExMTI2OCwgMC4xODY1MDcsIDAuMjU5NzYsIDAuMzEyNjgyLCAwLjM5NjA2NiwgMC40Njk4OTgsIDAuNTc0NzkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzIxMDQsIDAuMTc3MzYxLCAwLjMyNTEzMSwgMC40MzEyMDcsIDAuNjAyNDE5LCAwLjc0OTgwNywgMC45NjQwNDIiLCBcCi0gICAgICAgICAgIjAuMDMyMDUxLCAwLjE3NzE0MywgMC4zMjUwNTUsIDAuNDMxNDQ2LCAwLjYwMjUyMywgMC43NTAxNzgsIDAuOTYxNzQyIiwgXAotICAgICAgICAgICIwLjAzMjM3NywgMC4xNzc0NjksIDAuMzI1MDc1LCAwLjQzMjA2OCwgMC42MDA4MzUsIDAuNzUwMjE1LCAwLjk2MjI2NSIsIFwKLSAgICAgICAgICAiMC4wMzM0MzgsIDAuMTc3NTkyLCAwLjMyNTQwNCwgMC40MzIyOTgsIDAuNjAwODU4LCAwLjc0OTM4NywgMC45NjE4MzYiLCBcCi0gICAgICAgICAgIjAuMDM0NzI3LCAwLjE3NzY3MiwgMC4zMjU5MzcsIDAuNDMxNTQxLCAwLjYwMTE1MSwgMC43NTAwOTgsIDAuOTYxNzE2IiwgXAotICAgICAgICAgICIwLjAzNjU5NCwgMC4xNzgyOTEsIDAuMzI2MTM5LCAwLjQzMTIzMiwgMC42MDExMzEsIDAuNzQ5OTQ3LCAwLjk2NDMyOCIsIFwKLSAgICAgICAgICAiMC4wMzgzMzQsIDAuMTc4Njk1LCAwLjMyNTkxMSwgMC40MzI0OTYsIDAuNjAwNzc5LCAwLjc1MTE0OCwgMC45NjEzNTkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDQzNywgMC4wMDQ1NjMsIDAuMDA0NTkxLCAwLjAwNDU4NSwgMC4wMDQ1OSwgMC4wMDQ1OTIsIDAuMDA0NTk0IiwgXAotICAgICAgICAgICIwLjAwNDM3MiwgMC4wMDQ1MTYsIDAuMDA0NTM2LCAwLjAwNDU0MSwgMC4wMDQ1NDYsIDAuMDA0NTQ5LCAwLjAwNDU1MyIsIFwKLSAgICAgICAgICAiMC4wMDQzNDgsIDAuMDA0NDg5LCAwLjAwNDUxMiwgMC4wMDQ1MTksIDAuMDA0NTI1LCAwLjAwNDUyOCwgMC4wMDQ1MyIsIFwKLSAgICAgICAgICAiMC4wMDQzNTIsIDAuMDA0NDc2LCAwLjAwNDUwMiwgMC4wMDQ1MSwgMC4wMDQ1MTcsIDAuMDA0NTIsIDAuMDA0NTIyIiwgXAotICAgICAgICAgICIwLjAwNDMyMSwgMC4wMDQ0NjYsIDAuMDA0NDkzLCAwLjAwNDUwNSwgMC4wMDQ1MTUsIDAuMDA0NTExLCAwLjAwNDUxOSIsIFwKLSAgICAgICAgICAiMC4wMDQzOTEsIDAuMDA0NDYxLCAwLjAwNDQ5OSwgMC4wMDQ1MDgsIDAuMDA0NTE2LCAwLjAwNDUxNywgMC4wMDQ1MjUiLCBcCi0gICAgICAgICAgIjAuMDA0MzQ4LCAwLjAwNDQ2MSwgMC4wMDQ0OTQsIDAuMDA0NTA5LCAwLjAwNDUxOCwgMC4wMDQ1MjMsIDAuMDA0NTI2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDYxOTIsIDAuMDA2MzYzLCAwLjAwNjM4NCwgMC4wMDYzOSwgMC4wMDYzOTUsIDAuMDA2Mzk4LCAwLjAwNjQwMSIsIFwKLSAgICAgICAgICAiMC4wMDYxMzksIDAuMDA2MzI4LCAwLjAwNjM1MywgMC4wMDYzNjIsIDAuMDA2MzY5LCAwLjAwNjM3MiwgMC4wMDYzNzUiLCBcCi0gICAgICAgICAgIjAuMDA2MTA4LCAwLjAwNjMwNiwgMC4wMDYzNDEsIDAuMDA2MzUxLCAwLjAwNjM2MSwgMC4wMDYzNjYsIDAuMDA2MzcxIiwgXAotICAgICAgICAgICIwLjAwNjA4NiwgMC4wMDYyOTEsIDAuMDA2MzI5LCAwLjAwNjM0MywgMC4wMDYzNTYsIDAuMDA2MzYyLCAwLjAwNjM2OCIsIFwKLSAgICAgICAgICAiMC4wMDYwODYsIDAuMDA2Mjg1LCAwLjAwNjMzMSwgMC4wMDYzNDYsIDAuMDA2MzYxLCAwLjAwNjM2OCwgMC4wMDYzNzUiLCBcCi0gICAgICAgICAgIjAuMDA2MTA1LCAwLjAwNjI5MiwgMC4wMDYzNDMsIDAuMDA2MzYyLCAwLjAwNjM3OSwgMC4wMDYzODgsIDAuMDA2Mzk3IiwgXAotICAgICAgICAgICIwLjAwNjEyOSwgMC4wMDYzMSwgMC4wMDYzNjIsIDAuMDA2MzgxLCAwLjAwNjQwMSwgMC4wMDY0MTEsIDAuMDA2NDE5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQ0MzQsIDAuMDA0NTY4LCAwLjAwNDU4NywgMC4wMDQ2MDMsIDAuMDA0NTk5LCAwLjAwNDYwMiwgMC4wMDQ2MDUiLCBcCi0gICAgICAgICAgIjAuMDA0MzYxLCAwLjAwNDUxNCwgMC4wMDQ1MzYsIDAuMDA0NTQ2LCAwLjAwNDU0OSwgMC4wMDQ1NTMsIDAuMDA0NTU4IiwgXAotICAgICAgICAgICIwLjAwNDM1LCAwLjAwNDQ5NCwgMC4wMDQ1MTYsIDAuMDA0NTMsIDAuMDA0NTM4LCAwLjAwNDU0MiwgMC4wMDQ1NDYiLCBcCi0gICAgICAgICAgIjAuMDA0MzY1LCAwLjAwNDQ4NiwgMC4wMDQ1MTYsIDAuMDA0NTI5LCAwLjAwNDUzNiwgMC4wMDQ1NDEsIDAuMDA0NTQ0IiwgXAotICAgICAgICAgICIwLjAwNDQwNSwgMC4wMDQ1MDEsIDAuMDA0NTMxLCAwLjAwNDU0MiwgMC4wMDQ1NTIsIDAuMDA0NTU3LCAwLjAwNDU2MiIsIFwKLSAgICAgICAgICAiMC4wMDQ0MzUsIDAuMDA0NTE5LCAwLjAwNDU0NiwgMC4wMDQ1NjMsIDAuMDA0NTc1LCAwLjAwNDU4LCAwLjAwNDU5IiwgXAotICAgICAgICAgICIwLjAwNDQyOCwgMC4wMDQ1NCwgMC4wMDQ1NzMsIDAuMDA0NTg4LCAwLjAwNDYsIDAuMDA0NjA4LCAwLjAwNDYxMiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1ODU2LCAwLjAwNjA0NywgMC4wMDYwNywgMC4wMDYwNzcsIDAuMDA2MDgzLCAwLjAwNjA4NSwgMC4wMDYwODgiLCBcCi0gICAgICAgICAgIjAuMDA1Nzg3LCAwLjAwNiwgMC4wMDYwMjksIDAuMDA2MDM3LCAwLjAwNjA0NSwgMC4wMDYwNDksIDAuMDA2MDUyIiwgXAotICAgICAgICAgICIwLjAwNTczMywgMC4wMDU5NjEsIDAuMDA1OTk5LCAwLjAwNjAxMSwgMC4wMDYwMjEsIDAuMDA2MDI2LCAwLjAwNjAzMSIsIFwKLSAgICAgICAgICAiMC4wMDU3MjUsIDAuMDA1OTQyLCAwLjAwNTk4OCwgMC4wMDYwMDMsIDAuMDA2MDE3LCAwLjAwNjAyNCwgMC4wMDYwMzEiLCBcCi0gICAgICAgICAgIjAuMDA1NzE1LCAwLjAwNTkzOSwgMC4wMDU5ODksIDAuMDA2MDA2LCAwLjAwNjAyMSwgMC4wMDYwMjksIDAuMDA2MDM2IiwgXAotICAgICAgICAgICIwLjAwNTczOSwgMC4wMDU5MzQsIDAuMDA1OTg4LCAwLjAwNjAwNywgMC4wMDYwMjUsIDAuMDA2MDMyLCAwLjAwNjA0MSIsIFwKLSAgICAgICAgICAiMC4wMDU3MTcsIDAuMDA1OTI2LCAwLjAwNTk4NywgMC4wMDYwMTksIDAuMDA2MDI4LCAwLjAwNjA0NiwgMC4wMDYwNTciKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IEFORDJYNiAqCi0gKiAtLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKEFORDJYNikgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjM2MzA0MjsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNzYzMzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE3NjMzOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTc1OTAxOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDgxOCwgMC4wMDA4MTgsIDAuMDAwODE3LCAwLjAwMDgxOCwgMC4wMDA4MTcsIDAuMDAwODE3LCAwLjAwMDgxNyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDg0MywgMC4wMDA4MjQsIDAuMDAwODIxLCAwLjAwMDgyMSwgMC4wMDA4MjEsIDAuMDAwODIxLCAwLjAwMDgyMSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNjIyOTU7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNjIyNDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE2MjI5NTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA0OTgsIDAuMDAwNDk3LCAwLjAwMDQ5NywgMC4wMDA0OTcsIDAuMDAwNDk3LCAwLjAwMDQ5NywgMC4wMDA0OTciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA5MjgsIDAuMDAwOTI5LCAwLjAwMDkyOSwgMC4wMDA5MywgMC4wMDA5MjksIDAuMDAwOTI5LCAwLjAwMDkyOSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAxLjQ5NjUyOwotICAgIGZ1bmN0aW9uIDogIihBIEIpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1MjQ3MSwgMC4xMDQzNzMsIDAuMTUyNjI4LCAwLjE4NzAzNCwgMC4yNDIwNTcsIDAuMjkwMTU1LCAwLjM1ODk5OSIsIFwKLSAgICAgICAgICAiMC4wNjExNDksIDAuMTEzMDc5LCAwLjE2MTM3MywgMC4xOTU3OTYsIDAuMjUwODYsIDAuMjk5MDU3LCAwLjM2NzgyMiIsIFwKLSAgICAgICAgICAiMC4wNzE4NywgMC4xMjM3MjUsIDAuMTcxOTksIDAuMjA2MzkxLCAwLjI2MTQyOSwgMC4zMDk2MDcsIDAuMzc4Mzc5IiwgXAotICAgICAgICAgICIwLjA4MTg2MywgMC4xMzM5MTgsIDAuMTgyMjg3LCAwLjIxNjY5MSwgMC4yNzE3MjIsIDAuMzE5OTEzLCAwLjM4ODY2OCIsIFwKLSAgICAgICAgICAiMC4wOTExNTcsIDAuMTQzNDkxLCAwLjE5MTc1NCwgMC4yMjYxNiwgMC4yODEyMTQsIDAuMzI5NDExLCAwLjM5ODEyMSIsIFwKLSAgICAgICAgICAiMC4xMDQwNDQsIDAuMTU2OTksIDAuMjA1MjM5LCAwLjIzOTYyMiwgMC4yOTQ2NDEsIDAuMzQyNzg5LCAwLjQxMTYxNiIsIFwKLSAgICAgICAgICAiMC4xMTQwOTYsIDAuMTY3NTgzLCAwLjIxNTc1MSwgMC4yNTAxMDYsIDAuMzA1MTUsIDAuMzUzMjY4LCAwLjQyMjAzMiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyOTA4MiwgMC4xMjM3NTksIDAuMjIxMjQ1LCAwLjI5MTUyNiwgMC40MDU1MzQsIDAuNTA0NjEsIDAuNjQ3MDAyIiwgXAotICAgICAgICAgICIwLjAyOTA3MiwgMC4xMjM3NTEsIDAuMjIxNDQ2LCAwLjI5MjE1OCwgMC40MDQ5OTcsIDAuNTAzOTg0LCAwLjY0NjA3MSIsIFwKLSAgICAgICAgICAiMC4wMjkyNTIsIDAuMTIzNzQ5LCAwLjIyMTQ1NSwgMC4yOTIxNjEsIDAuNDA1MDYyLCAwLjUwNDk3NCwgMC42NDYwNDgiLCBcCi0gICAgICAgICAgIjAuMDI5ODYsIDAuMTIzOTI3LCAwLjIyMTY3OCwgMC4yOTIxNywgMC40MDQ5OTUsIDAuNTAzODY3LCAwLjY0NTkzMyIsIFwKLSAgICAgICAgICAiMC4wMzA2MzQsIDAuMTI0MjcyLCAwLjIyMTgzMiwgMC4yOTIyOTIsIDAuNDA0ODk2LCAwLjUwMzc3NiwgMC42NDY4MzciLCBcCi0gICAgICAgICAgIjAuMDMyMDg0LCAwLjEyNTA2NCwgMC4yMjIyMzksIDAuMjkyNTA2LCAwLjQwNTY0MSwgMC41MDQ4NjgsIDAuNjQ1NjA4IiwgXAotICAgICAgICAgICIwLjAzMzQ3NywgMC4xMjU2NjksIDAuMjIyNDM5LCAwLjI5MjMyOSwgMC40MDQ5NjIsIDAuNTAzOTk5LCAwLjY0NjA2MSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzNzM0MiwgMC4wODk0OTYsIDAuMTQwNDQ0LCAwLjE3NjgwOCwgMC4yMzQ5MjksIDAuMjg1ODEyLCAwLjM1ODQ1NCIsIFwKLSAgICAgICAgICAiMC4wNDcyNzYsIDAuMDk5NDc4LCAwLjE1MDQ0MSwgMC4xODY3OTYsIDAuMjQ0OTI3LCAwLjI5NTgwOSwgMC4zNjg0OSIsIFwKLSAgICAgICAgICAiMC4wNTkyNjksIDAuMTExNTEyLCAwLjE2MjQ4LCAwLjE5ODg0LCAwLjI1Njk5MSwgMC4zMDc4NiwgMC4zODA1MTkiLCBcCi0gICAgICAgICAgIjAuMDY5NTc4LCAwLjEyMTk3NCwgMC4xNzI5NDUsIDAuMjA5MzEsIDAuMjY3NDY2LCAwLjMxODMyNiwgMC4zOTEwMSIsIFwKLSAgICAgICAgICAiMC4wNzgyNTMsIDAuMTMwOTU0LCAwLjE4MTkwOSwgMC4yMTgyNjQsIDAuMjc2NDEsIDAuMzI3MjkxLCAwLjM5OTkzOCIsIFwKLSAgICAgICAgICAiMC4wOTAwNjMsIDAuMTQzMDY0LCAwLjE5Mzk4NywgMC4yMzAzNTMsIDAuMjg4NDc4LCAwLjMzOTM3MSwgMC40MTIiLCBcCi0gICAgICAgICAgIjAuMDk5NTc0LCAwLjE1MzAyLCAwLjIwMzk1NSwgMC4yNDAyODksIDAuMjk4NDQ4LCAwLjM0OTI4NCwgMC40MjE5NjMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjQ0NiwgMC4xMjQyNzgsIDAuMjI1OTUxLCAwLjI5OTY2NywgMC40MTY5NzMsIDAuNTE4MDI2LCAwLjY2NTAzNSIsIFwKLSAgICAgICAgICAiMC4wMjQ0NTQsIDAuMTI0Mjg4LCAwLjIyNjA5OCwgMC4yOTkxMiwgMC40MTY5MzksIDAuNTE5NDUxLCAwLjY2NTk1MyIsIFwKLSAgICAgICAgICAiMC4wMjQ4NzMsIDAuMTI0NTEsIDAuMjI2NjEzLCAwLjI5OTc3MiwgMC40MTY5NTgsIDAuNTE5MTksIDAuNjY1NjE0IiwgXAotICAgICAgICAgICIwLjAyNjA1OCwgMC4xMjQ3MjUsIDAuMjI2NjU3LCAwLjI5OTMxNCwgMC40MTY0NjUsIDAuNTE5NDk5LCAwLjY2NTkzOCIsIFwKLSAgICAgICAgICAiMC4wMjcyNSwgMC4xMjUwNDgsIDAuMjI2NjY5LCAwLjI5OTY2OCwgMC40MTY4MjEsIDAuNTE5MzAyLCAwLjY2NjA0OSIsIFwKLSAgICAgICAgICAiMC4wMjkwMjYsIDAuMTI1NDUzLCAwLjIyNjcyMywgMC4yOTk2NjYsIDAuNDE2NzEyLCAwLjUxOTA5NCwgMC42NjUxMDUiLCBcCi0gICAgICAgICAgIjAuMDMwNjA1LCAwLjEyNTczMywgMC4yMjY4NzEsIDAuMjk5NTIxLCAwLjQxNjU4LCAwLjUxODgyMiwgMC42NjU0NDkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTAyODgsIDAuMTAyMTIxLCAwLjE1MDM5LCAwLjE4NDc4OSwgMC4yMzk4MTUsIDAuMjg4MDA5LCAwLjM1NjcyIiwgXAotICAgICAgICAgICIwLjA1OTI1NCwgMC4xMTExODksIDAuMTU5NDk2LCAwLjE5MzkxMywgMC4yNDg5NTYsIDAuMjk3MTIxLCAwLjM2NTkwMyIsIFwKLSAgICAgICAgICAiMC4wNzA4MjcsIDAuMTIyNzM1LCAwLjE3MDk5MiwgMC4yMDU0MjQsIDAuMjYwNDQzLCAwLjMwODY3NCwgMC4zNzc0MDEiLCBcCi0gICAgICAgICAgIjAuMDgyMTk0LCAwLjEzNDM3NiwgMC4xODI2NCwgMC4yMTcwNTcsIDAuMjcyMDkxLCAwLjMyMDI4OSwgMC4zODkwNDYiLCBcCi0gICAgICAgICAgIjAuMDkyMDkxLCAwLjE0NDQ1MywgMC4xOTI3MjMsIDAuMjI3MTM5LCAwLjI4MjE0MywgMC4zMzAzNzQsIDAuMzk5MDc3IiwgXAotICAgICAgICAgICIwLjEwNjI4MiwgMC4xNTkyMzEsIDAuMjA3NDc5LCAwLjI0MTg2NiwgMC4yOTY4ODEsIDAuMzQ1MDU0LCAwLjQxMzg2IiwgXAotICAgICAgICAgICIwLjExNjcyNywgMC4xNzA0MiwgMC4yMTg4NDksIDAuMjUzMjQ1LCAwLjMwODI0NSwgMC4zNTY0MDEsIDAuNDI1MTg3Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDI5MDE4LCAwLjEyMzc3LCAwLjIyMTQ1NCwgMC4yOTIxNjcsIDAuNDA0NDM3LCAwLjUwMzg2MywgMC42NDY5MDEiLCBcCi0gICAgICAgICAgIjAuMDI4OTc0LCAwLjEyMzc0MiwgMC4yMjE0NTQsIDAuMjkyMTUyLCAwLjQwNDk2OSwgMC41MDQ5NTUsIDAuNjQ2MTE2IiwgXAotICAgICAgICAgICIwLjAyOTQ1MiwgMC4xMjM4MTcsIDAuMjIxNDc5LCAwLjI5MjMxOCwgMC40MDQ5NzcsIDAuNTAzNzEsIDAuNjQ2MTEyIiwgXAotICAgICAgICAgICIwLjAzMDM5MSwgMC4xMjQwNDMsIDAuMjIxNzI0LCAwLjI5MTg5MywgMC40MDUwNDUsIDAuNTA0MDI0LCAwLjY0NjAyNyIsIFwKLSAgICAgICAgICAiMC4wMzE2NDEsIDAuMTI0NTMzLCAwLjIyMTc0NSwgMC4yOTI0MzEsIDAuNDA1NDUxLCAwLjUwMzgwNCwgMC42NDY1MTMiLCBcCi0gICAgICAgICAgIjAuMDMzNjI5LCAwLjEyNTQwNiwgMC4yMjIxNTEsIDAuMjkyMjQ1LCAwLjQwNTE2NSwgMC41MDQxMzgsIDAuNjQ1NTIiLCBcCi0gICAgICAgICAgIjAuMDM1ODYsIDAuMTI2Mjc5LCAwLjIyMjg2MiwgMC4yOTI2NzYsIDAuNDA1NDE1LCAwLjUwNDI1NSwgMC42NDcxMDciKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzY0NywgMC4wODg1ODIsIDAuMTM5NDYsIDAuMTc1ODA1LCAwLjIzMzk3NiwgMC4yODQ4NTEsIDAuMzU3NDY4IiwgXAotICAgICAgICAgICIwLjA0NjM0NywgMC4wOTg1MjEsIDAuMTQ5NDM5LCAwLjE4NTc5NiwgMC4yNDM5OTksIDAuMjk0ODI1LCAwLjM2NzcwOCIsIFwKLSAgICAgICAgICAiMC4wNTgxNDcsIDAuMTEwMzYxLCAwLjE2MTMsIDAuMTk3NjU2LCAwLjI1NTgzNSwgMC4zMDY2OTMsIDAuMzc5NTQ1IiwgXAotICAgICAgICAgICIwLjA2NzcxLCAwLjEyMDIyOSwgMC4xNzExNjYsIDAuMjA3NTEsIDAuMjY1NjgzLCAwLjMxNjU1OSwgMC4zODk0MDgiLCBcCi0gICAgICAgICAgIjAuMDc2NTYzLCAwLjEyOTE1OSwgMC4xODAwNTEsIDAuMjE2NDAyLCAwLjI3NDU2NiwgMC4zMjU0NTUsIDAuMzk4MTE4IiwgXAotICAgICAgICAgICIwLjA4ODAzNiwgMC4xNDA4NzIsIDAuMTkxOTQzLCAwLjIyODI3MiwgMC4yODY0MTYsIDAuMzM2NjczLCAwLjQwOTk2MiIsIFwKLSAgICAgICAgICAiMC4wOTY0NjcsIDAuMTQ5OTQzLCAwLjE5OTk4NCwgMC4yMzYyNTgsIDAuMjk1MzE5LCAwLjM0NjExNCwgMC40MTg3NTgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjQ0MzgsIDAuMTI0MDQxLCAwLjIyNjQ3NiwgMC4yOTg3ODksIDAuNDE1Nzg4LCAwLjUxODE2OSwgMC42NjM4MDciLCBcCi0gICAgICAgICAgIjAuMDI0NDU1LCAwLjEyNDM5NSwgMC4yMjY1MDgsIDAuMjk5MjAyLCAwLjQxNjEwOCwgMC41MTk0ODQsIDAuNjY0Mjg5IiwgXAotICAgICAgICAgICIwLjAyNTE5NSwgMC4xMjQzMjYsIDAuMjI2MzIxLCAwLjI5OTc4MywgMC40MTYyOSwgMC41MTgxNjcsIDAuNjY0Mzg0IiwgXAotICAgICAgICAgICIwLjAyNjYzOCwgMC4xMjQ3NzcsIDAuMjI2Njg5LCAwLjI5OTIwNSwgMC40MTYyNDEsIDAuNTE4MTU4LCAwLjY2NDM5MyIsIFwKLSAgICAgICAgICAiMC4wMjc1OTcsIDAuMTI0OTYyLCAwLjIyNjQwMywgMC4yOTk4NzEsIDAuNDE2MjksIDAuNTE4Njg5LCAwLjY2NjAzOSIsIFwKLSAgICAgICAgICAiMC4wMjk0NzksIDAuMTI1Njg1LCAwLjIyNzAwNywgMC4yOTk5NjQsIDAuNDE3MTQzLCAwLjUxODI0MSwgMC42NjYzMDEiLCBcCi0gICAgICAgICAgIjAuMDMxNTcyLCAwLjEyNTk3MywgMC4yMjcxMDgsIDAuMzAwMjcyLCAwLjQxNjY4OSwgMC41MTkwNzcsIDAuNjY2MjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDY4LCAwLjAwNzAzMSwgMC4wMDcwNiwgMC4wMDcwNjIsIDAuMDA3MDk3LCAwLjAwNzA5NiwgMC4wMDcxMTQiLCBcCi0gICAgICAgICAgIjAuMDA2NjY2LCAwLjAwNjkxOSwgMC4wMDY5NTksIDAuMDA2OTcxLCAwLjAwNjk4MiwgMC4wMDY5ODcsIDAuMDA2OTk4IiwgXAotICAgICAgICAgICIwLjAwNjYyLCAwLjAwNjg2MywgMC4wMDY5MDksIDAuMDA2OTI0LCAwLjAwNjkzNywgMC4wMDY5NDEsIDAuMDA2OTQ5IiwgXAotICAgICAgICAgICIwLjAwNjU3OSwgMC4wMDY4MjksIDAuMDA2ODksIDAuMDA2OTA1LCAwLjAwNjkyNCwgMC4wMDY5MzEsIDAuMDA2OTQxIiwgXAotICAgICAgICAgICIwLjAwNjYyNCwgMC4wMDY4MjQsIDAuMDA2ODc4LCAwLjAwNjg5MiwgMC4wMDY5MTYsIDAuMDA2OTIyLCAwLjAwNjkzIiwgXAotICAgICAgICAgICIwLjAwNjU2OSwgMC4wMDY4MDgsIDAuMDA2ODY1LCAwLjAwNjg4NywgMC4wMDY5MDksIDAuMDA2OTI1LCAwLjAwNjkzMyIsIFwKLSAgICAgICAgICAiMC4wMDY1OTEsIDAuMDA2ODA4LCAwLjAwNjg3MywgMC4wMDY4OTcsIDAuMDA2OTIyLCAwLjAwNjkzNiwgMC4wMDY5NDUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwOTYyNiwgMC4wMDk5MDMsIDAuMDA5OTM5LCAwLjAwOTk1LCAwLjAwOTk2LCAwLjAwOTk2NSwgMC4wMDk5NyIsIFwKLSAgICAgICAgICAiMC4wMDk1MTIsIDAuMDA5ODE4LCAwLjAwOTg2OCwgMC4wMDk4ODQsIDAuMDA5ODk4LCAwLjAwOTkwNSwgMC4wMDk5MTEiLCBcCi0gICAgICAgICAgIjAuMDA5NDQ4LCAwLjAwOTc3MSwgMC4wMDk4MzgsIDAuMDA5ODYsIDAuMDA5ODgxLCAwLjAwOTg5MiwgMC4wMDk5MDEiLCBcCi0gICAgICAgICAgIjAuMDA5NDIzLCAwLjAwOTc0NiwgMC4wMDk4MjUsIDAuMDA5ODUyLCAwLjAwOTg3OCwgMC4wMDk4OTEsIDAuMDA5OTAzIiwgXAotICAgICAgICAgICIwLjAwOTQ0LCAwLjAwOTc0NCwgMC4wMDk4MjksIDAuMDA5ODU5LCAwLjAwOTg4NiwgMC4wMDk5MDIsIDAuMDA5OTE2IiwgXAotICAgICAgICAgICIwLjAwOTQ4NywgMC4wMDk3NzEsIDAuMDA5ODY1LCAwLjAwOTg5NywgMC4wMDk5MzMsIDAuMDA5OTUsIDAuMDA5OTY4IiwgXAotICAgICAgICAgICIwLjAwOTUwOSwgMC4wMDk3ODQsIDAuMDA5ODc4LCAwLjAwOTkxNSwgMC4wMDk5NTEsIDAuMDA5OTcxLCAwLjAwOTk4OSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2Nzc5LCAwLjAwNzAyNiwgMC4wMDcwNjYsIDAuMDA3MDg2LCAwLjAwNzA4OSwgMC4wMDcwOTUsIDAuMDA3MSIsIFwKLSAgICAgICAgICAiMC4wMDY2NDksIDAuMDA2OTA4LCAwLjAwNjk1NiwgMC4wMDY5NjksIDAuMDA2OTg4LCAwLjAwNjk4OSwgMC4wMDY5OTUiLCBcCi0gICAgICAgICAgIjAuMDA2NjE3LCAwLjAwNjg2MywgMC4wMDY5MiwgMC4wMDY5MzYsIDAuMDA2OTUxLCAwLjAwNjk2NCwgMC4wMDY5NzEiLCBcCi0gICAgICAgICAgIjAuMDA2NjE2LCAwLjAwNjg1MSwgMC4wMDY5MTIsIDAuMDA2OTMsIDAuMDA2OTU1LCAwLjAwNjk2NywgMC4wMDY5NzciLCBcCi0gICAgICAgICAgIjAuMDA2NzExLCAwLjAwNjg4MywgMC4wMDY5NTUsIDAuMDA2OTcyLCAwLjAwNzAwNSwgMC4wMDcwMTIsIDAuMDA3MDI0IiwgXAotICAgICAgICAgICIwLjAwNjc1MSwgMC4wMDY5MDksIDAuMDA2OTcyLCAwLjAwNywgMC4wMDcwMjIsIDAuMDA3MDM1LCAwLjAwNzA0OSIsIFwKLSAgICAgICAgICAiMC4wMDY4NTksIDAuMDA2OTY1LCAwLjAwNzAyNCwgMC4wMDcwNTYsIDAuMDA3MDc4LCAwLjAwNzA5MywgMC4wMDcxMDkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwODg4NSwgMC4wMDkxNzMsIDAuMDA5MjEyLCAwLjAwOTIyNCwgMC4wMDkyMzQsIDAuMDA5MjM5LCAwLjAwOTI0NCIsIFwKLSAgICAgICAgICAiMC4wMDg3MzYsIDAuMDA5MDY2LCAwLjAwOTExOCwgMC4wMDkxMzQsIDAuMDA5MTQ4LCAwLjAwOTE1NSwgMC4wMDkxNjEiLCBcCi0gICAgICAgICAgIjAuMDA4NzA4LCAwLjAwOTAxNywgMC4wMDkwODEsIDAuMDA5MTAyLCAwLjAwOTEyMSwgMC4wMDkxMywgMC4wMDkxMzkiLCBcCi0gICAgICAgICAgIjAuMDA4NjYzLCAwLjAwODk3OSwgMC4wMDkwNTksIDAuMDA5MDg3LCAwLjAwOTExMywgMC4wMDkxMjcsIDAuMDA5MTM5IiwgXAotICAgICAgICAgICIwLjAwODY2NSwgMC4wMDg5NDUsIDAuMDA5MDM0LCAwLjAwOTA2NiwgMC4wMDkwOSwgMC4wMDkxMDUsIDAuMDA5MTE5IiwgXAotICAgICAgICAgICIwLjAwODcwNSwgMC4wMDg5MjcsIDAuMDA5MDYxLCAwLjAwOTA5NSwgMC4wMDkxMjcsIDAuMDA5MTIzLCAwLjAwOTE1OCIsIFwKLSAgICAgICAgICAiMC4wMDg3NjksIDAuMDA5MDA1LCAwLjAwOTA2LCAwLjAwOTEwMywgMC4wMDkxNjgsIDAuMDA5MTg4LCAwLjAwOTIxIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBBTkQyWEwgKgotICogLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChBTkQyWEwpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4wNjEwMDU0OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2NTQwMTY7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjU0MDE2OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDY1MzA0MzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyMjYsIDAuMDAwMjI2LCAwLjAwMDIyNiwgMC4wMDAyMjYsIDAuMDAwMjI2LCAwLjAwMDIyNiwgMC4wMDAyMjYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyMzQsIDAuMDAwMjI4LCAwLjAwMDIyNywgMC4wMDAyMjcsIDAuMDAwMjI3LCAwLjAwMDIyNywgMC4wMDAyMjciKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYxMDQ3NjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MTAwODY7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjEwNDc2OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDEzNSwgMC4wMDAxMzUsIDAuMDAwMTM1LCAwLjAwMDEzNSwgMC4wMDAxMzUsIDAuMDAwMTM1LCAwLjAwMDEzNSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDI1NywgMC4wMDAyNTcsIDAuMDAwMjU3LCAwLjAwMDI1NywgMC4wMDAyNTcsIDAuMDAwMjU3LCAwLjAwMDI1NyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjE0NDk4NTsKLSAgICBmdW5jdGlvbiA6ICIoQSBCKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTA3NjgxLCAwLjEyMTgwOSwgMC4yNDg5NTQsIDAuNDYwNzg5LCAwLjY3MjYzMywgMS4xNjcwMiwgMS40NTAwNiIsIFwKLSAgICAgICAgICAiMC4xMTYzMSwgMC4xMzA0MzEsIDAuMjU3NTc5LCAwLjQ2OTYsIDAuNjgxMzMyLCAxLjE3NTUsIDEuNDU4MjQiLCBcCi0gICAgICAgICAgIjAuMTI2NjM0LCAwLjE0MDc2MiwgMC4yNjc5MDUsIDAuNDc5ODExLCAwLjY5MTcwOCwgMS4xODY4MywgMS40NjkzOSIsIFwKLSAgICAgICAgICAiMC4xMzU5NDUsIDAuMTUwMDc5LCAwLjI3NzIyNiwgMC40ODkwNjMsIDAuNzAxMTE1LCAxLjE5NTYsIDEuNDc4MjQiLCBcCi0gICAgICAgICAgIjAuMTQ0MDkzLCAwLjE1ODIxOCwgMC4yODUzNTgsIDAuNDk3NTY4LCAwLjcwOTA0NCwgMS4yMDQwMSwgMS40ODYwMiIsIFwKLSAgICAgICAgICAiMC4xNTUyMzgsIDAuMTY5MzY1LCAwLjI5NjQ2OCwgMC41MDg1MTcsIDAuNzIwMzczLCAxLjIxNDU2LCAxLjQ5NzE1IiwgXAotICAgICAgICAgICIwLjE2NDI3NiwgMC4xNzg0MTgsIDAuMzA1NTMxLCAwLjUxNzM4OCwgMC43MjkzMjgsIDEuMjIzNywgMS41MDYyIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE1MzQ0OCwgMC4xODIzNzUsIDAuNDQyMzgsIDAuODc3MDYxLCAxLjMxMTgxLCAyLjMyOTk4LCAyLjkwNjM3IiwgXAotICAgICAgICAgICIwLjE1MzQzLCAwLjE4MjM1MywgMC40NDI3MjMsIDAuODc3MjQ3LCAxLjMxMzk4LCAyLjMyOTc0LCAyLjkxMDQyIiwgXAotICAgICAgICAgICIwLjE1MzQ3LCAwLjE4MjIzNiwgMC40NDI2NzEsIDAuODc2OTkyLCAxLjMxMTU2LCAyLjMyNjQzLCAyLjkwNjIzIiwgXAotICAgICAgICAgICIwLjE1MzY1MywgMC4xODI1NiwgMC40NDI2MzUsIDAuODc4MzYxLCAxLjMxMjA2LCAyLjMyODAzLCAyLjkwNjM0IiwgXAotICAgICAgICAgICIwLjE1MzkzNSwgMC4xODI3NzUsIDAuNDQzMzY4LCAwLjg3NzIxLCAxLjMxNDQyLCAyLjMyODEsIDIuOTA0OTEiLCBcCi0gICAgICAgICAgIjAuMTU0NTA1LCAwLjE4MzA1NSwgMC40NDMwNzksIDAuODc3MjMsIDEuMzEyMDgsIDIuMzI2MSwgMi45MDgwOCIsIFwKLSAgICAgICAgICAiMC4xNTQ4MDIsIDAuMTgzMTk0LCAwLjQ0MzQyNSwgMC44Nzg4MjgsIDEuMzEzNzIsIDIuMzI5NzcsIDIuOTA1MjgiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk0MTAzLCAwLjEwNzk1MiwgMC4yMzI0MzQsIDAuNDM5ODQ5LCAwLjY0NzI0MywgMS4xMzExNCwgMS40MDc2OSIsIFwKLSAgICAgICAgICAiMC4xMDM5NzEsIDAuMTE3ODI5LCAwLjI0MjMxNCwgMC40NDk3NTUsIDAuNjU3MTM0LCAxLjE0MTA1LCAxLjQxNzY4IiwgXAotICAgICAgICAgICIwLjExNDgxLCAwLjEyODY2MiwgMC4yNTMxNjgsIDAuNDYwNTg4LCAwLjY2ODAxNiwgMS4xNTE5LCAxLjQyODQ0IiwgXAotICAgICAgICAgICIwLjEyMzU5NSwgMC4xMzc0NDcsIDAuMjYxOTc1LCAwLjQ2OTQwNywgMC42NzY3OSwgMS4xNjA3NSwgMS40MzcyNSIsIFwKLSAgICAgICAgICAiMC4xMzEzMTEsIDAuMTQ1MTY3LCAwLjI2OTY4NSwgMC40NzcxMjYsIDAuNjg0NTIzLCAxLjE2ODQyLCAxLjQ0NDk2IiwgXAotICAgICAgICAgICIwLjE0MTQ2NiwgMC4xNTUzMTYsIDAuMjc5ODUyLCAwLjQ4NzEzMiwgMC42OTQ3NDEsIDEuMTc4NSwgMS40NTUiLCBcCi0gICAgICAgICAgIjAuMTQ4OTU0LCAwLjE2Mjg0MiwgMC4yODczNjcsIDAuNDk0Nzg1LCAwLjcwMjIxNSwgMS4xODYxOSwgMS40NjI2OCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNDU4ODUsIDAuMTczNjkxLCAwLjQyMzU2NCwgMC44NDAxNzEsIDEuMjU3NzcsIDIuMjMwNDgsIDIuNzgxNjIiLCBcCi0gICAgICAgICAgIjAuMTQ2MDUyLCAwLjE3MzkzNCwgMC40MjM5NjIsIDAuODQwNzY1LCAxLjI1NzI0LCAyLjIyODI1LCAyLjc4MjA2IiwgXAotICAgICAgICAgICIwLjE0NjExNCwgMC4xNzM3ODIsIDAuNDIzOTUzLCAwLjg0MDgyMywgMS4yNTYxMiwgMi4yMzA1MiwgMi43ODM1NCIsIFwKLSAgICAgICAgICAiMC4xNDY0MjMsIDAuMTczODU4LCAwLjQyMzc3LCAwLjg0MDc3OSwgMS4yNTc3NSwgMi4yMzA4NCwgMi43ODY1NyIsIFwKLSAgICAgICAgICAiMC4xNDY1MTEsIDAuMTc0MDkzLCAwLjQyMzczOSwgMC44NDA1OCwgMS4yNTc4NiwgMi4yMzA1NCwgMi43ODE3NyIsIFwKLSAgICAgICAgICAiMC4xNDY2NDUsIDAuMTc0MjkyLCAwLjQyMzQ0NSwgMC44NDA0NzYsIDEuMjU0MDQsIDIuMjMwODgsIDIuNzg2NiIsIFwKLSAgICAgICAgICAiMC4xNDY3OCwgMC4xNzQyMjYsIDAuNDIzNTA5LCAwLjg0MDMwNywgMS4yNTQ5NiwgMi4yMzA2LCAyLjc4NjgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTA1NTQ4LCAwLjExOTY3NywgMC4yNDY4NDUsIDAuNDU4OTA1LCAwLjY3MDY1NSwgMS4xNjQ3OCwgMS40NDc1OSIsIFwKLSAgICAgICAgICAiMC4xMTQ2MTksIDAuMTI4NzQzLCAwLjI1NTg3NSwgMC40Njc4ODEsIDAuNjc5NzMsIDEuMTczOTYsIDEuNDU3NTQiLCBcCi0gICAgICAgICAgIjAuMTI1OTk1LCAwLjE0MDEyNCwgMC4yNjczNjUsIDAuNDc5MjQ5LCAwLjY5MTIyNywgMS4xODUzNSwgMS40Njg5IiwgXAotICAgICAgICAgICIwLjEzNjEwMiwgMC4xNTAyNjEsIDAuMjc3MzkyLCAwLjQ4OTM5OCwgMC43MDEyNTYsIDEuMTk1NDgsIDEuNDc4OTciLCBcCi0gICAgICAgICAgIjAuMTQ1MDYzLCAwLjE1OTE5LCAwLjI4NjM1MiwgMC40OTg1ODksIDAuNzEwMzIxLCAxLjIwNTYxLCAxLjQ4Njc0IiwgXAotICAgICAgICAgICIwLjE1Njc5LCAwLjE3MDkxMiwgMC4yOTc5OTgsIDAuNTEwMDYxLCAwLjcyMTk0MiwgMS4yMTYxOSwgMS40OTk1OCIsIFwKLSAgICAgICAgICAiMC4xNjU3NDcsIDAuMTc5OTUyLCAwLjMwNzAwNiwgMC41MTg4NzUsIDAuNzMwNzYyLCAxLjIyNTE4LCAxLjUwNzY4Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE1MzIyMSwgMC4xODIzNjYsIDAuNDQyMzYxLCAwLjg3NzI4NSwgMS4zMTIxMywgMi4zMzEzLCAyLjkwNjQ4IiwgXAotICAgICAgICAgICIwLjE1MzM2MywgMC4xODIzNTIsIDAuNDQzMDI2LCAwLjg3NzI2NywgMS4zMTM5NiwgMi4zMjYxLCAyLjkwNjA0IiwgXAotICAgICAgICAgICIwLjE1MzQ2OCwgMC4xODIzOCwgMC40NDI0ODEsIDAuODc3Mjk3LCAxLjMxMjAyLCAyLjMzMDQ4LCAyLjkwNjExIiwgXAotICAgICAgICAgICIwLjE1Mzg3OSwgMC4xODI2MDksIDAuNDQzMjM4LCAwLjg3NzI2NSwgMS4zMTIwOCwgMi4zMzA0MiwgMi45MDYyMiIsIFwKLSAgICAgICAgICAiMC4xNTQxNTMsIDAuMTgyODA4LCAwLjQ0MjUwMywgMC44Nzc0NDYsIDEuMzEyMDQsIDIuMzI3NiwgMi45MTE1NCIsIFwKLSAgICAgICAgICAiMC4xNTQ2MzcsIDAuMTgzMTU5LCAwLjQ0MzM4NywgMC44NzcyMzMsIDEuMzEyMDUsIDIuMzI1NzIsIDIuOTA2MTQiLCBcCi0gICAgICAgICAgIjAuMTU1MDUzLCAwLjE4MzQyOSwgMC40NDM1MjksIDAuODc3NzYzLCAxLjMxMTc3LCAyLjMyOTc2LCAyLjkwNTMxIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5MjUxNCwgMC4xMDYzNTksIDAuMjMwODI0LCAwLjQzODI4LCAwLjY0NTkwMSwgMS4xMjk0NSwgMS40MDU2NiIsIFwKLSAgICAgICAgICAiMC4xMDIyNjUsIDAuMTE2MTAyLCAwLjI0MDY3NSwgMC40NDgyNDYsIDAuNjU1OTA4LCAxLjE0MDAyLCAxLjQxNjQ0IiwgXAotICAgICAgICAgICIwLjExMjc0OCwgMC4xMjY1ODcsIDAuMjUxMTYsIDAuNDU4NzMsIDAuNjY2NDg5LCAxLjE1MDQ1LCAxLjQyNjk5IiwgXAotICAgICAgICAgICIwLjEyMDg3OSwgMC4xMzQ3MjQsIDAuMjU5MzE3LCAwLjQ2NjcwNSwgMC42NzQyNjIsIDEuMTU4NDEsIDEuNDM1MzUiLCBcCi0gICAgICAgICAgIjAuMTI3ODQ5LCAwLjE0MTY4NiwgMC4yNjYyMDYsIDAuNDczOTUsIDAuNjgxMjYyLCAxLjE2NTQsIDEuNDQxNzQiLCBcCi0gICAgICAgICAgIjAuMTM2OTYzLCAwLjE1MTE0NSwgMC4yNzUzMTksIDAuNDgzMjg0LCAwLjY5MDY2MiwgMS4xNzQyNywgMS40NTEwMyIsIFwKLSAgICAgICAgICAiMC4xNDM1MSwgMC4xNTc0NzIsIDAuMjgxODUxLCAwLjQ5MDA0MywgMC42OTY4MjYsIDEuMTgwOTYsIDEuNDU3ODkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTQ1ODA3LCAwLjE3MzQzNywgMC40MjM5MDMsIDAuODM5MzAxLCAxLjI1NTI2LCAyLjIyOTg4LCAyLjc3Nzc5IiwgXAotICAgICAgICAgICIwLjE0NTc5OCwgMC4xNzM2MiwgMC40MjM1MDQsIDAuODM4ODU4LCAxLjI1NDQ2LCAyLjIyNTQ0LCAyLjc4MzkiLCBcCi0gICAgICAgICAgIjAuMTQ2MTkzLCAwLjE3MzYwMSwgMC40MjMzNTEsIDAuODM5NzY0LCAxLjI1NTQyLCAyLjIyNTksIDIuNzgxMDciLCBcCi0gICAgICAgICAgIjAuMTQ2MTM2LCAwLjE3NDA3MywgMC40MjMwMDEsIDAuODQwODA4LCAxLjI1NDk5LCAyLjIzMDMyLCAyLjc4MDIyIiwgXAotICAgICAgICAgICIwLjE0NjUxNSwgMC4xNzQwMTYsIDAuNDI0MTUxLCAwLjgzODYwNiwgMS4yNTUzOCwgMi4yMzAyNCwgMi43Nzk0MyIsIFwKLSAgICAgICAgICAiMC4xNDY1NzgsIDAuMTc0MTM3LCAwLjQyMzU4MywgMC44Mzg5MiwgMS4yNTU4LCAyLjIyNTA4LCAyLjc4Njg1IiwgXAotICAgICAgICAgICIwLjE0NjkxOCwgMC4xNzQxOTgsIDAuNDIzOTU1LCAwLjg0MTE1LCAxLjI1NDUzLCAyLjIyNDEzLCAyLjc4MjYyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwOTM0LCAwLjAwMDkzNSwgMC4wMDA5MzYsIDAuMDAwOTM2LCAwLjAwMDkzNiwgMC4wMDA5MzYsIDAuMDAwOTM2IiwgXAotICAgICAgICAgICIwLjAwMDkwNiwgMC4wMDA5MDYsIDAuMDAwOTA4LCAwLjAwMDkwOCwgMC4wMDA5MDgsIDAuMDAwOTA4LCAwLjAwMDkwOCIsIFwKLSAgICAgICAgICAiMC4wMDA4OTYsIDAuMDAwODk2LCAwLjAwMDg5OCwgMC4wMDA4OTksIDAuMDAwODk5LCAwLjAwMDg5OSwgMC4wMDA4OTkiLCBcCi0gICAgICAgICAgIjAuMDAwODk0LCAwLjAwMDg5NCwgMC4wMDA4OTcsIDAuMDAwODk3LCAwLjAwMDg5OCwgMC4wMDA4OTgsIDAuMDAwODk4IiwgXAotICAgICAgICAgICIwLjAwMDg5MywgMC4wMDA4OTQsIDAuMDAwODk3LCAwLjAwMDg5OSwgMC4wMDA4OTksIDAuMDAwODk5LCAwLjAwMDg5OSIsIFwKLSAgICAgICAgICAiMC4wMDA5LCAwLjAwMDkwMSwgMC4wMDA5MDUsIDAuMDAwOTA3LCAwLjAwMDkwNywgMC4wMDA5MDcsIDAuMDAwOTA3IiwgXAotICAgICAgICAgICIwLjAwMDkwOSwgMC4wMDA5MSwgMC4wMDA5MTQsIDAuMDAwOTE2LCAwLjAwMDkxNiwgMC4wMDA5MTcsIDAuMDAwOTE3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxOTg1LCAwLjAwMTk4NiwgMC4wMDE5ODcsIDAuMDAxOTg4LCAwLjAwMTk4OCwgMC4wMDE5ODgsIDAuMDAxOTg4IiwgXAotICAgICAgICAgICIwLjAwMTk2OCwgMC4wMDE5NjksIDAuMDAxOTcyLCAwLjAwMTk3MywgMC4wMDE5NzMsIDAuMDAxOTczLCAwLjAwMTk3NCIsIFwKLSAgICAgICAgICAiMC4wMDE5NjcsIDAuMDAxOTY4LCAwLjAwMTk3MywgMC4wMDE5NzUsIDAuMDAxOTc1LCAwLjAwMTk3NiwgMC4wMDE5NzYiLCBcCi0gICAgICAgICAgIjAuMDAxOTczLCAwLjAwMTk3NCwgMC4wMDE5NzksIDAuMDAxOTgyLCAwLjAwMTk4MiwgMC4wMDE5ODMsIDAuMDAxOTgzIiwgXAotICAgICAgICAgICIwLjAwMTk3MywgMC4wMDE5NzUsIDAuMDAxOTgyLCAwLjAwMTk4NCwgMC4wMDE5ODUsIDAuMDAxOTg2LCAwLjAwMTk4NiIsIFwKLSAgICAgICAgICAiMC4wMDE5OTEsIDAuMDAxOTk0LCAwLjAwMjAwMSwgMC4wMDIwMDEsIDAuMDAyMDA1LCAwLjAwMjAwNCwgMC4wMDIwMDQiLCBcCi0gICAgICAgICAgIjAuMDAyMDExLCAwLjAwMjAxMSwgMC4wMDIwMjEsIDAuMDAyMDI0LCAwLjAwMjAyNCwgMC4wMDIwMjcsIDAuMDAyMDI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwOTM2LCAwLjAwMDkzNSwgMC4wMDA5MzgsIDAuMDAwOTM4LCAwLjAwMDkzOSwgMC4wMDA5MzcsIDAuMDAwOTM5IiwgXAotICAgICAgICAgICIwLjAwMDkwOCwgMC4wMDA5MDksIDAuMDAwOTExLCAwLjAwMDkxMiwgMC4wMDA5MTEsIDAuMDAwOTEyLCAwLjAwMDkxMyIsIFwKLSAgICAgICAgICAiMC4wMDA5MDgsIDAuMDAwOTA5LCAwLjAwMDkxMiwgMC4wMDA5MTMsIDAuMDAwOTE0LCAwLjAwMDkxNCwgMC4wMDA5MTQiLCBcCi0gICAgICAgICAgIjAuMDAwOTE4LCAwLjAwMDkxOSwgMC4wMDA5MjMsIDAuMDAwOTI1LCAwLjAwMDkyNiwgMC4wMDA5MjYsIDAuMDAwOTI2IiwgXAotICAgICAgICAgICIwLjAwMDkyMSwgMC4wMDA5MjIsIDAuMDAwOTI3LCAwLjAwMDkyOCwgMC4wMDA5MjksIDAuMDAwOTMsIDAuMDAwOTMiLCBcCi0gICAgICAgICAgIjAuMDAwOTQyLCAwLjAwMDk0NCwgMC4wMDA5NDgsIDAuMDAwOTUsIDAuMDAwOTUxLCAwLjAwMDk1MiwgMC4wMDA5NTIiLCBcCi0gICAgICAgICAgIjAuMDAwOTY1LCAwLjAwMDk2NiwgMC4wMDA5NzEsIDAuMDAwOTczLCAwLjAwMDk3NCwgMC4wMDA5NzUsIDAuMDAwOTc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxNzcsIDAuMDAxNzcxLCAwLjAwMTc3MywgMC4wMDE3NzQsIDAuMDAxNzc0LCAwLjAwMTc3NCwgMC4wMDE3NzQiLCBcCi0gICAgICAgICAgIjAuMDAxNzQyLCAwLjAwMTc0NCwgMC4wMDE3NDcsIDAuMDAxNzQ4LCAwLjAwMTc0OSwgMC4wMDE3NDksIDAuMDAxNzQ5IiwgXAotICAgICAgICAgICIwLjAwMTczOSwgMC4wMDE3NDEsIDAuMDAxNzQ2LCAwLjAwMTc0OCwgMC4wMDE3NDksIDAuMDAxNzUsIDAuMDAxNzUiLCBcCi0gICAgICAgICAgIjAuMDAxNzQ3LCAwLjAwMTc0OCwgMC4wMDE3NTUsIDAuMDAxNzU4LCAwLjAwMTc1OSwgMC4wMDE3NiwgMC4wMDE3NiIsIFwKLSAgICAgICAgICAiMC4wMDE3NDMsIDAuMDAxNzQ1LCAwLjAwMTc1MywgMC4wMDE3NTYsIDAuMDAxNzU3LCAwLjAwMTc1OCwgMC4wMDE3NTgiLCBcCi0gICAgICAgICAgIjAuMDAxNzY2LCAwLjAwMTc2NSwgMC4wMDE3NzcsIDAuMDAxNzc3LCAwLjAwMTc3OCwgMC4wMDE3ODMsIDAuMDAxNzgzIiwgXAotICAgICAgICAgICIwLjAwMTc4NSwgMC4wMDE3ODcsIDAuMDAxNzk4LCAwLjAwMTc5OSwgMC4wMDE4MDQsIDAuMDAxODA1LCAwLjAwMTgwNiIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogQU5EM1gxICoKLSAqIC0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoQU5EM1gxKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMDk0Nzc0MjsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjAyMzU4OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYwMjM1ODsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2MDA3OTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyMjYsIDAuMDAwMjI2LCAwLjAwMDIyNiwgMC4wMDAyMjYsIDAuMDAwMjI2LCAwLjAwMDIyNiwgMC4wMDAyMjYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyMjcsIDAuMDAwMjI3LCAwLjAwMDIyNywgMC4wMDAyMjcsIDAuMDAwMjI3LCAwLjAwMDIyNywgMC4wMDAyMjciKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYwNDUwOTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MDQ1MDk7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjAzNDAyOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDIyNiwgMC4wMDAyMjYsIDAuMDAwMjI2LCAwLjAwMDIyNiwgMC4wMDAyMjYsIDAuMDAwMjI2LCAwLjAwMDIyNiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDIyNywgMC4wMDAyMjcsIDAuMDAwMjI3LCAwLjAwMDIyNywgMC4wMDAyMjcsIDAuMDAwMjI3LCAwLjAwMDIyNyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQykgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjMwNTYyOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYzMDE5MTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2MzA1NjI7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMTM4LCAwLjAwMDEzOCwgMC4wMDAxMzgsIDAuMDAwMTM4LCAwLjAwMDEzOCwgMC4wMDAxMzgsIDAuMDAwMTM4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjU3LCAwLjAwMDI1NywgMC4wMDAyNTcsIDAuMDAwMjU3LCAwLjAwMDI1NywgMC4wMDAyNTcsIDAuMDAwMjU3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMjYwMjU5OwotICAgIGZ1bmN0aW9uIDogIigoQSBCKSBDKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTE1MzM1LCAwLjE0MDY5NCwgMC4yODAwMzMsIDAuNDAyNjgsIDAuNTY2MzE5LCAwLjg5MzYyNCwgMS4wOTg0OCIsIFwKLSAgICAgICAgICAiMC4xMjM2MjYsIDAuMTQ4OTM0LCAwLjI4ODI3NywgMC40MTEwMDEsIDAuNTc0NjI1LCAwLjkwMjQ5OCwgMS4xMDYzOCIsIFwKLSAgICAgICAgICAiMC4xMzI4NDcsIDAuMTU4MTcxLCAwLjI5NzUyMiwgMC40MjAyNTMsIDAuNTgzODg5LCAwLjkxMTYwNywgMS4xMTU2OSIsIFwKLSAgICAgICAgICAiMC4xNDE2NjEsIDAuMTY2OTMyLCAwLjMwNjI4MiwgMC40MjksIDAuNTkyNjMyLCAwLjkyMDQyNywgMS4xMjQ3MiIsIFwKLSAgICAgICAgICAiMC4xNTAxNTIsIDAuMTc1NDY5LCAwLjMxNDgxNywgMC40Mzc1NDMsIDAuNjAxMTc0LCAwLjkyODk2NiwgMS4xMzMzMiIsIFwKLSAgICAgICAgICAiMC4xNjI5MjMsIDAuMTg4Mjg5LCAwLjMyNzY4NCwgMC40NTA0MDgsIDAuNjEzOTc4LCAwLjk0MTI1MiwgMS4xNDU5MyIsIFwKLSAgICAgICAgICAiMC4xNzMyMzksIDAuMTk4Njc4LCAwLjMzODE2NCwgMC40NjA4NzQsIDAuNjI0NDU3LCAwLjk1MTcyOCwgMS4xNTY0NiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDAzNzYsIDAuMTQ4NDE5LCAwLjQzMDIzNiwgMC42ODIxODMsIDEuMDE5NDgsIDEuNjkzMjgsIDIuMTExNjMiLCBcCi0gICAgICAgICAgIjAuMTAwMjQ5LCAwLjE0ODM1MywgMC40MzAwODcsIDAuNjgwODI0LCAxLjAxODA0LCAxLjY5MDYzLCAyLjExMTE4IiwgXAotICAgICAgICAgICIwLjEwMDA5NiwgMC4xNDgyNTksIDAuNDMwMTc5LCAwLjY4MTA4LCAxLjAxODIyLCAxLjY5MDgzLCAyLjExMDk3IiwgXAotICAgICAgICAgICIwLjEwMDA3NiwgMC4xNDgyODksIDAuNDI5NzY5LCAwLjY4MTQzNiwgMS4wMTgxMSwgMS42OTA3MSwgMi4xMTE1OSIsIFwKLSAgICAgICAgICAiMC4xMDA0MjQsIDAuMTQ4NDg0LCAwLjQzMDExNywgMC42ODE0MDMsIDEuMDE4MDIsIDEuNjkwNzIsIDIuMTExNjIiLCBcCi0gICAgICAgICAgIjAuMTAxMjk2LCAwLjE0OTA1OSwgMC40MzA0NjQsIDAuNjgyNDM1LCAxLjAxODg1LCAxLjY5MzAxLCAyLjExMDYiLCBcCi0gICAgICAgICAgIjAuMTAyMjQ2LCAwLjE0OTgzMiwgMC40Mjk5NTcsIDAuNjgxNTM4LCAxLjAxOTMzLCAxLjY5MDQ0LCAyLjExMTcyIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3NjE5OSwgMC4xMDEwMzQsIDAuMjQxNDA1LCAwLjM2NTEyMiwgMC41MzAwNDMsIDAuODU5ODQ4LCAxLjA2NTk1IiwgXAotICAgICAgICAgICIwLjA4NjA4OSwgMC4xMTA5NjMsIDAuMjUxMzUxLCAwLjM3NTA2OSwgMC41Mzk5NzYsIDAuODY5NzgsIDEuMDc1OSIsIFwKLSAgICAgICAgICAiMC4wOTgxNTUsIDAuMTIzMDI4LCAwLjI2MzQzNSwgMC4zODcxNSwgMC41NTIwNzcsIDAuODgxOTA4LCAxLjA4ODA1IiwgXAotICAgICAgICAgICIwLjEwOTAzLCAwLjEzMzkwMiwgMC4yNzQzMjMsIDAuMzk4MDI5LCAwLjU2Mjk1MywgMC44OTI3ODksIDEuMDk4ODgiLCBcCi0gICAgICAgICAgIjAuMTE4NjIzLCAwLjE0MzQ4NywgMC4yODM4NzIsIDAuNDA3NTgyLCAwLjU3MjUwMywgMC45MDIzLCAxLjEwODQ4IiwgXAotICAgICAgICAgICIwLjEzMTQ4LCAwLjE1NjM0NywgMC4yOTY3MjIsIDAuNDIwNDU5LCAwLjU4NTM4NywgMC45MTUxODgsIDEuMTIxMjkiLCBcCi0gICAgICAgICAgIjAuMTQxMTQ3LCAwLjE2NjE4OSwgMC4zMDY1NjYsIDAuNDMwMjg4LCAwLjU5NTIyMiwgMC45MjUwMzEsIDEuMTMxMTQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDkxMDUyLCAwLjE0MDMxOSwgMC40MjIxMzMsIDAuNjcxNDA5LCAxLjAwMzg1LCAxLjY2ODksIDIuMDg0ODUiLCBcCi0gICAgICAgICAgIjAuMDkwOTk0LCAwLjE0MDE2OSwgMC40MjEzNDIsIDAuNjcxMzI3LCAxLjAwMzk0LCAxLjY2ODk0LCAyLjA4NDc2IiwgXAotICAgICAgICAgICIwLjA5MTA0NSwgMC4xNDAyMDIsIDAuNDIyMSwgMC42NzE0NzIsIDEuMDAzMiwgMS42Njg2OCwgMi4wODQxNyIsIFwKLSAgICAgICAgICAiMC4wOTEzNjUsIDAuMTQwNTIxLCAwLjQyMjAyOSwgMC42NzA5NDksIDEuMDAzMjIsIDEuNjY4NjYsIDIuMDg0NyIsIFwKLSAgICAgICAgICAiMC4wOTE4MDIsIDAuMTQwNzgyLCAwLjQyMTYxLCAwLjY3MTQ2NiwgMS4wMDM5NiwgMS42NjkxNSwgMi4wODQzNiIsIFwKLSAgICAgICAgICAiMC4wOTI1NjYsIDAuMTQxMTc2LCAwLjQyMjEzNiwgMC42NzExODgsIDEuMDAzNTMsIDEuNjY4ODEsIDIuMDg0NzYiLCBcCi0gICAgICAgICAgIjAuMDkzMzg5LCAwLjE0MTQxNywgMC40MjIxMDUsIDAuNjcwNzU4LCAxLjAwMzQ2LCAxLjY2ODM4LCAyLjA4NDUzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExMjU4NCwgMC4xMzc5NTMsIDAuMjc3MzE2LCAwLjQwMDA0MSwgMC41NjM2MTIsIDAuODkwODk2LCAxLjA5NTgyIiwgXAotICAgICAgICAgICIwLjEyMDkxNiwgMC4xNDYyODEsIDAuMjg1NjYsIDAuNDA4MzgzLCAwLjU3MjAwNywgMC44OTk4OTEsIDEuMTA0MzEiLCBcCi0gICAgICAgICAgIjAuMTMxNDEzLCAwLjE1NjcyMywgMC4yOTYxMTEsIDAuNDE4ODA0LCAwLjU4MjY1MSwgMC45MDk2NzksIDEuMTE0NDYiLCBcCi0gICAgICAgICAgIjAuMTQxNjE1LCAwLjE2Njc4LCAwLjMwNjE0OCwgMC40Mjg4NTQsIDAuNTkyNTE1LCAwLjkyMDQ0NSwgMS4xMjQ0MyIsIFwKLSAgICAgICAgICAiMC4xNTE2ODEsIDAuMTc2OTcyLCAwLjMxNjM5MiwgMC40MzkwODUsIDAuNjAyNzgyLCAwLjkzMDUzNywgMS4xMzQ5OCIsIFwKLSAgICAgICAgICAiMC4xNjYzMTQsIDAuMTkxODA2LCAwLjMzMTIxOCwgMC40NTM5MDcsIDAuNjE3NjM5LCAwLjk0NTI1NCwgMS4xNDk2NiIsIFwKLSAgICAgICAgICAiMC4xNzc1NzUsIDAuMjAzMTI5LCAwLjM0MjU4NSwgMC40NjUyNzUsIDAuNjI4ODg4LCAwLjk1Njg1OSwgMS4xNjEyMSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDAzNywgMC4xNDg0MTEsIDAuNDMwMjM0LCAwLjY4MjUxNiwgMS4wMTk0OCwgMS42OTMyOCwgMi4xMTE2NCIsIFwKLSAgICAgICAgICAiMC4xMDAxNzcsIDAuMTQ4MzI2LCAwLjQyOTcxOSwgMC42ODEzNzcsIDEuMDE4MDEsIDEuNjkwNjIsIDIuMTExNzEiLCBcCi0gICAgICAgICAgIjAuMTAwMDEyLCAwLjE0ODIyMiwgMC40MzAxNzYsIDAuNjgyMywgMS4wMTc1NCwgMS42OTM0NSwgMi4xMTE3MSIsIFwKLSAgICAgICAgICAiMC4xMDAxMDMsIDAuMTQ4Mzc5LCAwLjQzMDE4OSwgMC42ODIzMTIsIDEuMDE3OTgsIDEuNjkxMTYsIDIuMTEwNjYiLCBcCi0gICAgICAgICAgIjAuMTAwNDQzLCAwLjE0ODQ5NywgMC40MzAzMDgsIDAuNjgyMjcsIDEuMDE4MTMsIDEuNjkwNzUsIDIuMTExNjciLCBcCi0gICAgICAgICAgIjAuMTAxMzM3LCAwLjE0OTA3OCwgMC40MzAzMjYsIDAuNjgyMjYxLCAxLjAxNzIzLCAxLjY5MDg4LCAyLjExMjExIiwgXAotICAgICAgICAgICIwLjEwMjk4NSwgMC4xNTAyMzEsIDAuNDMwNTA1LCAwLjY4MjM1LCAxLjAxOTMyLCAxLjY5MTE3LCAyLjExMTcxIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3NDUxOCwgMC4wOTkzMzYsIDAuMjM5NjE1LCAwLjM2MzMxNCwgMC41MjgxOSwgMC44NTgwMDMsIDEuMDY0MDMiLCBcCi0gICAgICAgICAgIjAuMDg0NDEsIDAuMTA5MjMxLCAwLjI0OTUyOSwgMC4zNzMyMDYsIDAuNTM4MTM3LCAwLjg2Nzg2MywgMS4wNzM5NyIsIFwKLSAgICAgICAgICAiMC4wOTYzMzUsIDAuMTIxMTc5LCAwLjI2MTUwNSwgMC4zODUxODksIDAuNTUwMDc4LCAwLjg3OTg1MSwgMS4wODU5NCIsIFwKLSAgICAgICAgICAiMC4xMDY4MzQsIDAuMTMxNjY5LCAwLjI3MTk4OSwgMC4zOTU2ODEsIDAuNTYwNTc4LCAwLjg5MDM2MywgMS4wOTY0NSIsIFwKLSAgICAgICAgICAiMC4xMTYyMiwgMC4xNDEwOSwgMC4yODE0MTYsIDAuNDA1MTAzLCAwLjU3MDAwNSwgMC44OTk3NTksIDEuMTA1ODYiLCBcCi0gICAgICAgICAgIjAuMTI4NjcyLCAwLjE1MzUzLCAwLjI5MzgzMiwgMC40MTc1NzIsIDAuNTgyNDM1LCAwLjkxMjIsIDEuMTE4MzQiLCBcCi0gICAgICAgICAgIjAuMTM4MDIsIDAuMTYyOTc4LCAwLjMwMzMyNiwgMC40MjcwMTYsIDAuNTkxODk4LCAwLjkyMTY1NCwgMS4xMjc4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5MDY1OCwgMC4xMzk4NzUsIDAuNDIyMDYyLCAwLjY3MTM2NSwgMS4wMDI0NCwgMS42Njk1LCAyLjA4NDg5IiwgXAotICAgICAgICAgICIwLjA5MDcxNCwgMC4xNDAwMTQsIDAuNDIxOTkyLCAwLjY3MDI5MiwgMS4wMDM5NCwgMS42Njg1NSwgMi4wODEyOCIsIFwKLSAgICAgICAgICAiMC4wOTA4MTQsIDAuMTM5ODQzLCAwLjQyMTk0NiwgMC42NzA2MTYsIDEuMDAyMywgMS42Njg0NywgMi4wODQyMSIsIFwKLSAgICAgICAgICAiMC4wOTExNTksIDAuMTQwMjc4LCAwLjQyMTQ0MSwgMC42NzE1MTksIDEuMDAzNDMsIDEuNjY2NTQsIDIuMDg0MTgiLCBcCi0gICAgICAgICAgIjAuMDkxNjE4LCAwLjE0MDM5NiwgMC40MjEyOCwgMC42NzE0MzEsIDEuMDAyNTksIDEuNjY5MjMsIDIuMDg0MTUiLCBcCi0gICAgICAgICAgIjAuMDkyMzUyLCAwLjE0MDk2OCwgMC40MjE5MDEsIDAuNjY5NTA4LCAxLjAwMzk2LCAxLjY2OTMxLCAyLjA4NTMxIiwgXAotICAgICAgICAgICIwLjA5MzMzNCwgMC4xNDEyNzksIDAuNDIxNzM1LCAwLjY3MDkwMywgMS4wMDI3MiwgMS42Njg0MiwgMi4wODUyNiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDgxMDMsIDAuMTMzNDUxLCAwLjI3Mjg1NSwgMC4zOTU1NjIsIDAuNTU5MTY5LCAwLjg4NjYwNywgMS4wOTE1OSIsIFwKLSAgICAgICAgICAiMC4xMTYzOTksIDAuMTQxNzY5LCAwLjI4MTE4LCAwLjQwMzkxNSwgMC41Njc1NDYsIDAuODk1MzgsIDEuMDk5ODciLCBcCi0gICAgICAgICAgIjAuMTI3MjI4LCAwLjE1MjU5OCwgMC4yOTE5OTEsIDAuNDE0NzIsIDAuNTc4MzU4LCAwLjkwNjE5OCwgMS4xMTA0NyIsIFwKLSAgICAgICAgICAiMC4xMzgyNTEsIDAuMTYzNTU2LCAwLjMwMjk3LCAwLjQyNTY3MywgMC41ODkzMTYsIDAuOTE3MTY0LCAxLjEyMTM2IiwgXAotICAgICAgICAgICIwLjE0OTI0OSwgMC4xNzQ2MTIsIDAuMzE0MDE4LCAwLjQzNjc0MiwgMC42MDAzODEsIDAuOTI4MTgyLCAxLjEzMjU1IiwgXAotICAgICAgICAgICIwLjE2NDQyLCAwLjE4OTkyOSwgMC4zMjkyMzIsIDAuNDUxOTMsIDAuNjE1NTUyLCAwLjk0MzE3NiwgMS4xNDc2NCIsIFwKLSAgICAgICAgICAiMC4xNzY2NjgsIDAuMjAyMjMxLCAwLjM0MTc3NCwgMC40NjQ0NjcsIDAuNjI4MDk0LCAwLjk1NTY0NywgMS4xNjAzMyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDAyMjIsIDAuMTQ4MzQ2LCAwLjQyOTcwOSwgMC42ODE1NDcsIDEuMDE4ODcsIDEuNjkyMDYsIDIuMTExNjMiLCBcCi0gICAgICAgICAgIjAuMTAwMTIyLCAwLjE0ODI4NCwgMC40Mjk4MDQsIDAuNjgxMzUzLCAxLjAxODA2LCAxLjY5MDY2LCAyLjExMTcyIiwgXAotICAgICAgICAgICIwLjEwMDA0MiwgMC4xNDgyMzksIDAuNDI5NzE2LCAwLjY4MDMwNSwgMS4wMTgwNCwgMS42OTA2NSwgMi4xMTE1OSIsIFwKLSAgICAgICAgICAiMC4xMDAyOTEsIDAuMTQ4NDI5LCAwLjQzMDM4NCwgMC42ODE0NDgsIDEuMDE4MDUsIDEuNjkwNywgMi4xMTE2NCIsIFwKLSAgICAgICAgICAiMC4xMDA2MDQsIDAuMTQ4NDY3LCAwLjQzMDIwNywgMC42ODE0MTEsIDEuMDE3OTgsIDEuNjkwNzIsIDIuMTExNjIiLCBcCi0gICAgICAgICAgIjAuMTAyMjkyLCAwLjE0OTYzNiwgMC40MzAzNzEsIDAuNjgyMDIxLCAxLjAxODg1LCAxLjY5MTE1LCAyLjExMTU4IiwgXAotICAgICAgICAgICIwLjEwMzQwNCwgMC4xNTA1MjcsIDAuNDMwMjgzLCAwLjY4MjM0NCwgMS4wMTkzNCwgMS42OTE3NiwgMi4xMTE2NCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzI1OTcsIDAuMDk3Mzk1LCAwLjIzNzU4MiwgMC4zNjEyOTksIDAuNTI2MjA5LCAwLjg1NjAxMywgMS4wNjIzMSIsIFwKLSAgICAgICAgICAiMC4wODI0MjgsIDAuMTA3MjI3LCAwLjI0NzU3MiwgMC4zNzEzNiwgMC41MzYxMTIsIDAuODY2MDI5LCAxLjA3Mjk0IiwgXAotICAgICAgICAgICIwLjA5NDE4OSwgMC4xMTg5ODUsIDAuMjU5MjQ5LCAwLjM4MzAxNCwgMC41NDc5OTcsIDAuODc4NTMsIDEuMDg0MDciLCBcCi0gICAgICAgICAgIjAuMTA0MjYzLCAwLjEyOTA4NSwgMC4yNjkzNDgsIDAuMzkzMTYyLCAwLjU1ODA0NCwgMC44ODc5MTEsIDEuMDk0MjIiLCBcCi0gICAgICAgICAgIjAuMTEyOTUsIDAuMTM3MjEzLCAwLjI3NzQ4NSwgMC40MDEyOCwgMC41NjYxOTgsIDAuODk2MDk3LCAxLjEwMyIsIFwKLSAgICAgICAgICAiMC4xMjUxODIsIDAuMTQ5Mjg2LCAwLjI4OTQ4OCwgMC40MTMyODcsIDAuNTc4NzExLCAwLjkwODY4NywgMS4xMTQ4MyIsIFwKLSAgICAgICAgICAiMC4xMzM4MTMsIDAuMTU4ODgzLCAwLjI5ODkzMSwgMC40MjI2MzksIDAuNTg3NjE2LCAwLjkxNjgzMSwgMS4xMjMyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5MDQ4NCwgMC4xMzk4MjMsIDAuNDIyMDE1LCAwLjY3MTY3NCwgMS4wMDA4MiwgMS42NjYyOSwgMi4wNzg4NCIsIFwKLSAgICAgICAgICAiMC4wOTA1MjksIDAuMTM5Njk3LCAwLjQyMDg1MiwgMC42Njk3NzIsIDEuMDAxNDUsIDEuNjY0NDYsIDIuMDgwNzUiLCBcCi0gICAgICAgICAgIjAuMDkwNjQzLCAwLjEzOTk2OSwgMC40MjIxNDEsIDAuNjcwMDI3LCAxLjAwMjIxLCAxLjY2NTU3LCAyLjA4MTkiLCBcCi0gICAgICAgICAgIjAuMDkxMTYxLCAwLjE0MDE4OCwgMC40MjE5MzUsIDAuNjcwNjg2LCAxLjAwMTE3LCAxLjY2OTUzLCAyLjA4MDc0IiwgXAotICAgICAgICAgICIwLjA5MTc2NSwgMC4xNDA2NTYsIDAuNDIxNTg4LCAwLjY3MDgwOSwgMS4wMDE4MywgMS42NjU4NSwgMi4wODE5MiIsIFwKLSAgICAgICAgICAiMC4wOTI1MTQsIDAuMTQxMDk2LCAwLjQyMjIwOSwgMC42NzAyMzIsIDEuMDA0NDUsIDEuNjY5MzEsIDIuMDc4OTEiLCBcCi0gICAgICAgICAgIjAuMDkzNjgxLCAwLjE0MTI4MywgMC40MjIzMTUsIDAuNjcwNTA3LCAxLjAwMTIsIDEuNjY3OTYsIDIuMDc5NzkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDE2MiwgMC4wMDE2MjMsIDAuMDAxNjI0LCAwLjAwMTYyMywgMC4wMDE2MjMsIDAuMDAxNjIzLCAwLjAwMTYyMyIsIFwKLSAgICAgICAgICAiMC4wMDE1OTQsIDAuMDAxNTk5LCAwLjAwMTU5OSwgMC4wMDE2LCAwLjAwMTYsIDAuMDAxNTk5LCAwLjAwMTU5OCIsIFwKLSAgICAgICAgICAiMC4wMDE1OCwgMC4wMDE1ODQsIDAuMDAxNTg3LCAwLjAwMTU4NywgMC4wMDE1ODcsIDAuMDAxNTgyLCAwLjAwMTU4NyIsIFwKLSAgICAgICAgICAiMC4wMDE1NzQsIDAuMDAxNTc5LCAwLjAwMTU4MywgMC4wMDE1ODMsIDAuMDAxNTgzLCAwLjAwMTU4MiwgMC4wMDE1ODMiLCBcCi0gICAgICAgICAgIjAuMDAxNTcxLCAwLjAwMTU3NiwgMC4wMDE1ODEsIDAuMDAxNTgxLCAwLjAwMTU4MSwgMC4wMDE1ODEsIDAuMDAxNTgxIiwgXAotICAgICAgICAgICIwLjAwMTU3LCAwLjAwMTU3NSwgMC4wMDE1OCwgMC4wMDE1ODEsIDAuMDAxNTgxLCAwLjAwMTU4MSwgMC4wMDE1ODEiLCBcCi0gICAgICAgICAgIjAuMDAxNTcxLCAwLjAwMTU3NiwgMC4wMDE1ODIsIDAuMDAxNTgzLCAwLjAwMTU4MywgMC4wMDE1ODMsIDAuMDAxNTgzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyOTUyLCAwLjAwMjk1OCwgMC4wMDI5NjUsIDAuMDAyOTY2LCAwLjAwMjk2NywgMC4wMDI5NjgsIDAuMDAyOTY4IiwgXAotICAgICAgICAgICIwLjAwMjkzNSwgMC4wMDI5NDIsIDAuMDAyOTUxLCAwLjAwMjk1MywgMC4wMDI5NTMsIDAuMDAyOTU0LCAwLjAwMjk1NSIsIFwKLSAgICAgICAgICAiMC4wMDI5MjksIDAuMDAyOTM3LCAwLjAwMjk1LCAwLjAwMjk1MiwgMC4wMDI5NTMsIDAuMDAyOTU1LCAwLjAwMjk1NSIsIFwKLSAgICAgICAgICAiMC4wMDI5MjksIDAuMDAyOTM4LCAwLjAwMjk1MSwgMC4wMDI5NTQsIDAuMDAyOTU1LCAwLjAwMjk1NywgMC4wMDI5NTgiLCBcCi0gICAgICAgICAgIjAuMDAyOTI5LCAwLjAwMjk0LCAwLjAwMjk1NywgMC4wMDI5NiwgMC4wMDI5NjIsIDAuMDAyOTY0LCAwLjAwMjk2NSIsIFwKLSAgICAgICAgICAiMC4wMDI5NDQsIDAuMDAyOTU0LCAwLjAwMjk3MiwgMC4wMDI5NzYsIDAuMDAyOTc5LCAwLjAwMjk4MSwgMC4wMDI5ODIiLCBcCi0gICAgICAgICAgIjAuMDAyOTYxLCAwLjAwMjk3MSwgMC4wMDI5ODksIDAuMDAyOTk0LCAwLjAwMjk5NywgMC4wMDI5OTksIDAuMDAzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxNjIzLCAwLjAwMTYyOCwgMC4wMDE2MzMsIDAuMDAxNjM0LCAwLjAwMTYzNywgMC4wMDE2MzgsIDAuMDAxNjM1IiwgXAotICAgICAgICAgICIwLjAwMTU5OCwgMC4wMDE2MDMsIDAuMDAxNjA4LCAwLjAwMTYwOSwgMC4wMDE2MSwgMC4wMDE2MSwgMC4wMDE2MSIsIFwKLSAgICAgICAgICAiMC4wMDE1ODMsIDAuMDAxNTg5LCAwLjAwMTU5NiwgMC4wMDE1OTcsIDAuMDAxNTk4LCAwLjAwMTU5OSwgMC4wMDE1OTkiLCBcCi0gICAgICAgICAgIjAuMDAxNTc3LCAwLjAwMTU4NCwgMC4wMDE1OTEsIDAuMDAxNTkzLCAwLjAwMTU5NCwgMC4wMDE1OTQsIDAuMDAxNTk1IiwgXAotICAgICAgICAgICIwLjAwMTU4MywgMC4wMDE1ODcsIDAuMDAxNTkzLCAwLjAwMTU5NSwgMC4wMDE1OTUsIDAuMDAxNTk1LCAwLjAwMTU5NSIsIFwKLSAgICAgICAgICAiMC4wMDE1ODIsIDAuMDAxNTg4LCAwLjAwMTU5NiwgMC4wMDE1OTcsIDAuMDAxNTk4LCAwLjAwMTU5OSwgMC4wMDE1OTkiLCBcCi0gICAgICAgICAgIjAuMDAxNTg2LCAwLjAwMTU5MSwgMC4wMDE2LCAwLjAwMTYwMSwgMC4wMDE2MDQsIDAuMDAxNjA0LCAwLjAwMTYwNCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjY5OCwgMC4wMDI3MDYsIDAuMDAyNzE1LCAwLjAwMjcxNywgMC4wMDI3MTgsIDAuMDAyNzE5LCAwLjAwMjcxOSIsIFwKLSAgICAgICAgICAiMC4wMDI2NzcsIDAuMDAyNjg2LCAwLjAwMjY5OCwgMC4wMDI3MDEsIDAuMDAyNzAyLCAwLjAwMjcwMywgMC4wMDI3MDQiLCBcCi0gICAgICAgICAgIjAuMDAyNjY1LCAwLjAwMjY3NywgMC4wMDI2OTUsIDAuMDAyNjk4LCAwLjAwMjcsIDAuMDAyNzAyLCAwLjAwMjcwMyIsIFwKLSAgICAgICAgICAiMC4wMDI2NjEsIDAuMDAyNjc1LCAwLjAwMjY5NiwgMC4wMDI3MDEsIDAuMDAyNzAzLCAwLjAwMjcwNiwgMC4wMDI3MDYiLCBcCi0gICAgICAgICAgIjAuMDAyNjU0LCAwLjAwMjY2NywgMC4wMDI2ODksIDAuMDAyNjk0LCAwLjAwMjY5OCwgMC4wMDI3LCAwLjAwMjcwMSIsIFwKLSAgICAgICAgICAiMC4wMDI2NiwgMC4wMDI2NzUsIDAuMDAyNywgMC4wMDI3MDcsIDAuMDAyNzEsIDAuMDAyNzE0LCAwLjAwMjcxNSIsIFwKLSAgICAgICAgICAiMC4wMDI2NzQsIDAuMDAyNjg4LCAwLjAwMjcxNSwgMC4wMDI3MjIsIDAuMDAyNzI1LCAwLjAwMjcyOSwgMC4wMDI3MzEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDE2MjUsIDAuMDAxNjMyLCAwLjAwMTY0LCAwLjAwMTY0MSwgMC4wMDE2NDEsIDAuMDAxNjQ1LCAwLjAwMTY0NCIsIFwKLSAgICAgICAgICAiMC4wMDE1OTgsIDAuMDAxNjA0LCAwLjAwMTYxNCwgMC4wMDE2MTYsIDAuMDAxNjE3LCAwLjAwMTYxOCwgMC4wMDE2MTgiLCBcCi0gICAgICAgICAgIjAuMDAxNTg3LCAwLjAwMTU5NCwgMC4wMDE2MDQsIDAuMDAxNjA4LCAwLjAwMTYwOSwgMC4wMDE2MSwgMC4wMDE2MTEiLCBcCi0gICAgICAgICAgIjAuMDAxNTkxLCAwLjAwMTU5OCwgMC4wMDE2MSwgMC4wMDE2MTMsIDAuMDAxNjE1LCAwLjAwMTYxNiwgMC4wMDE2MTciLCBcCi0gICAgICAgICAgIjAuMDAxNjA1LCAwLjAwMTYxMSwgMC4wMDE2MjEsIDAuMDAxNjI0LCAwLjAwMTYyNSwgMC4wMDE2MjYsIDAuMDAxNjI3IiwgXAotICAgICAgICAgICIwLjAwMTYyNCwgMC4wMDE2MjksIDAuMDAxNjQxLCAwLjAwMTY0NCwgMC4wMDE2NDUsIDAuMDAxNjQ3LCAwLjAwMTY0NyIsIFwKLSAgICAgICAgICAiMC4wMDE2NDIsIDAuMDAxNjQ3LCAwLjAwMTY1OCwgMC4wMDE2NjEsIDAuMDAxNjY0LCAwLjAwMTY2NSwgMC4wMDE2NjYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI0NDMsIDAuMDAyNDUsIDAuMDAyNDU5LCAwLjAwMjQ2LCAwLjAwMjQ2MSwgMC4wMDI0NjIsIDAuMDAyNDYyIiwgXAotICAgICAgICAgICIwLjAwMjQyMiwgMC4wMDI0MzEsIDAuMDAyNDQyLCAwLjAwMjQ0NSwgMC4wMDI0NDYsIDAuMDAyNDQ3LCAwLjAwMjQ0NyIsIFwKLSAgICAgICAgICAiMC4wMDI0MSwgMC4wMDI0MiwgMC4wMDI0MzUsIDAuMDAyNDM4LCAwLjAwMjQzOSwgMC4wMDI0NDEsIDAuMDAyNDQxIiwgXAotICAgICAgICAgICIwLjAwMjQwMiwgMC4wMDI0MTQsIDAuMDAyNDMzLCAwLjAwMjQzNywgMC4wMDI0MzksIDAuMDAyNDQxLCAwLjAwMjQ0MiIsIFwKLSAgICAgICAgICAiMC4wMDI0MDIsIDAuMDAyNDEzLCAwLjAwMjQzNiwgMC4wMDI0NDIsIDAuMDAyNDQ1LCAwLjAwMjQ0NywgMC4wMDI0NDgiLCBcCi0gICAgICAgICAgIjAuMDAyNDA2LCAwLjAwMjQxMSwgMC4wMDI0MzcsIDAuMDAyNDQzLCAwLjAwMjQ0OSwgMC4wMDI0NTIsIDAuMDAyNDUzIiwgXAotICAgICAgICAgICIwLjAwMjQyLCAwLjAwMjQyNiwgMC4wMDI0NTUsIDAuMDAyNDYxLCAwLjAwMjQ2NSwgMC4wMDI0NjQsIDAuMDAyNDY2Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBBTkQzWDggKgotICogLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChBTkQzWDgpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC41MDIwNTU7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTg4ODkyOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTg4ODkyOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTg4Mzc7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwODE5LCAwLjAwMDgxOCwgMC4wMDA4MTcsIDAuMDAwODE4LCAwLjAwMDgxOCwgMC4wMDA4MTcsIDAuMDAwODE3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwODE5LCAwLjAwMDgyLCAwLjAwMDgyLCAwLjAwMDgyLCAwLjAwMDgyLCAwLjAwMDgyLCAwLjAwMDgyIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE3NzAxMjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE3NzAxMjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE3NjU3MjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA4MTksIDAuMDAwODE4LCAwLjAwMDgxOCwgMC4wMDA4MTgsIDAuMDAwODE3LCAwLjAwMDgxNywgMC4wMDA4MTYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA4MTksIDAuMDAwODIsIDAuMDAwODIsIDAuMDAwODE5LCAwLjAwMDgyLCAwLjAwMDgyMSwgMC4wMDA4MjEiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEMpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTYxMTY4OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTYxMDQxOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTYxMTY4OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDU2OCwgMC4wMDA1NjcsIDAuMDAwNTY3LCAwLjAwMDU2NiwgMC4wMDA1NjYsIDAuMDAwNTY3LCAwLjAwMDU2NiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDkyOCwgMC4wMDA5MjksIDAuMDAwOTI5LCAwLjAwMDkyOSwgMC4wMDA5MjksIDAuMDAwOTI5LCAwLjAwMDkyOSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAxLjk5NDI7Ci0gICAgZnVuY3Rpb24gOiAiKChBIEIpIEMpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4MjkzNCwgMC4xMzAyMjcsIDAuMTY4MjM3LCAwLjE5NDQ5OCwgMC4yMzYxMTQsIDAuMjcyNDA2LCAwLjMyNDIwNyIsIFwKLSAgICAgICAgICAiMC4wOTA5NSwgMC4xMzgyMDEsIDAuMTc2MzExLCAwLjIwMjUzNCwgMC4yNDQxMzgsIDAuMjgwNDMyLCAwLjMzMjIzOCIsIFwKLSAgICAgICAgICAiMC4wOTk5NjEsIDAuMTQ3NDg0LCAwLjE4NTUxLCAwLjIxMTc0NiwgMC4yNTMzOTMsIDAuMjg5NjYsIDAuMzQxNDc1IiwgXAotICAgICAgICAgICIwLjEwODg5NywgMC4xNTY0NTMsIDAuMTk0NDI3LCAwLjIyMDY0LCAwLjI2MjI1MSwgMC4yOTg1NTUsIDAuMzUwMzY5IiwgXAotICAgICAgICAgICIwLjExNzU3LCAwLjE2NTA1MiwgMC4yMDMwMTYsIDAuMjI5MjQ4LCAwLjI3MDg1MywgMC4zMDcxMjYsIDAuMzU4OTUyIiwgXAotICAgICAgICAgICIwLjEzMDc1OCwgMC4xNzg1MTQsIDAuMjE2NTE5LCAwLjI0Mjc3NSwgMC4yODQzNzYsIDAuMzIwNjUzLCAwLjM3MjQ4MSIsIFwKLSAgICAgICAgICAiMC4xNDExMDgsIDAuMTg5MzU4LCAwLjIyNzQ4OSwgMC4yNTM3OTIsIDAuMjk1MzY1LCAwLjMzMTY3NiwgMC4zODM1MSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzNDk2MiwgMC4xMDY3OSwgMC4xNzc2LCAwLjIyOTE1LCAwLjMxMjgyNCwgMC4zODU4NDIsIDAuNDkyNTQ3IiwgXAotICAgICAgICAgICIwLjAzNDg5MywgMC4xMDY2MjcsIDAuMTc3NDA3LCAwLjIyOTEzNSwgMC4zMTI0MjksIDAuMzg2MDAxLCAwLjQ5MjUxOCIsIFwKLSAgICAgICAgICAiMC4wMzQ5MTcsIDAuMTA2MzkxLCAwLjE3NzQyMiwgMC4yMjkwMzQsIDAuMzEyNTM4LCAwLjM4NjUzOCwgMC40OTI0OCIsIFwKLSAgICAgICAgICAiMC4wMzQ4MDIsIDAuMTA2MzI4LCAwLjE3NzM2OSwgMC4yMjg5OTQsIDAuMzEyNzMsIDAuMzg2MjMxLCAwLjQ5MjAyOSIsIFwKLSAgICAgICAgICAiMC4wMzUwNjEsIDAuMTA2NDgxLCAwLjE3NzUxNSwgMC4yMjkwOSwgMC4zMTI1NDYsIDAuMzg2MzE3LCAwLjQ5MjQ0NiIsIFwKLSAgICAgICAgICAiMC4wMzYxODksIDAuMTA3MTMyLCAwLjE3Nzg1NCwgMC4yMjkyMDMsIDAuMzEyNTQ1LCAwLjM4NjQyMiwgMC40OTE3MyIsIFwKLSAgICAgICAgICAiMC4wMzcyLCAwLjEwODE0OCwgMC4xNzg1LCAwLjIyOTg3NiwgMC4zMTMxNDMsIDAuMzg2NDkzLCAwLjQ5MjgyNSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0MjkxMiwgMC4wODM3MjksIDAuMTIxOTg0LCAwLjE0OTIzMSwgMC4xOTI4MDEsIDAuMjMwOTA5LCAwLjI4NTI5IiwgXAotICAgICAgICAgICIwLjA1MjkwOCwgMC4wOTM3MDYsIDAuMTMxOTYzLCAwLjE1OTIxLCAwLjIwMjc5NywgMC4yNDA5MDgsIDAuMjk1MjkiLCBcCi0gICAgICAgICAgIjAuMDY1MjU0LCAwLjEwNjA5MSwgMC4xNDQzNjEsIDAuMTcxNjE1LCAwLjIxNTE4OSwgMC4yNTMzMDQsIDAuMzA3Njg5IiwgXAotICAgICAgICAgICIwLjA3NzAwMywgMC4xMTc4NzksIDAuMTU2MTQ4LCAwLjE4MzQxNywgMC4yMjY5ODYsIDAuMjY1MDc4LCAwLjMxOTQ4MSIsIFwKLSAgICAgICAgICAiMC4wODcwNzMsIDAuMTI4MzM0LCAwLjE2NjYwNSwgMC4xOTM4NjQsIDAuMjM3NDQ4LCAwLjI3NTUyOCwgMC4zMjk5NTMiLCBcCi0gICAgICAgICAgIjAuMTAwODYsIDAuMTQyODU5LCAwLjE4MTE2NywgMC4yMDgzMDQsIDAuMjUxODgzLCAwLjI4OTk2MywgMC4zNDQzNzQiLCBcCi0gICAgICAgICAgIjAuMTExMjk5LCAwLjE1Mzc2NSwgMC4xOTIwNDYsIDAuMjE5MjMyLCAwLjI2Mjc3OCwgMC4zMDA4NjUsIDAuMzU1MjkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjMxOTIsIDAuMDk3MDczLCAwLjE3MzQwNiwgMC4yMjgyOTgsIDAuMzE1OTY3LCAwLjM5MzUxOSwgMC41MDM5MTIiLCBcCi0gICAgICAgICAgIjAuMDIzMTc0LCAwLjA5NzA1OCwgMC4xNzM0MjksIDAuMjI4MzMsIDAuMzE1OTkyLCAwLjM5MzUxNywgMC41MDM5MzEiLCBcCi0gICAgICAgICAgIjAuMDIzNTQ3LCAwLjA5NzA5NiwgMC4xNzM0NDgsIDAuMjI4MzM5LCAwLjMxNjQ0MSwgMC4zOTM1MzEsIDAuNTAzOTA0IiwgXAotICAgICAgICAgICIwLjAyNDMwMSwgMC4wOTczLCAwLjE3MzU0MSwgMC4yMjg0NjUsIDAuMzE2MTg4LCAwLjM5MzE2MiwgMC41MDM5ODMiLCBcCi0gICAgICAgICAgIjAuMDI1Njg0LCAwLjA5Nzc2NywgMC4xNzM1OTksIDAuMjI4MDMsIDAuMzE1OTI4LCAwLjM5MzY4NywgMC41MDM4ODciLCBcCi0gICAgICAgICAgIjAuMDI3ODksIDAuMDk4NjgyLCAwLjE3NDE4NywgMC4yMjg0OTQsIDAuMzE2NTY1LCAwLjM5MzcyNiwgMC41MDM2NzIiLCBcCi0gICAgICAgICAgIjAuMDI5NDI3LCAwLjA5OTUxMiwgMC4xNzQ0NzcsIDAuMjI4NzU5LCAwLjMxNjQ0MSwgMC4zOTM3MiwgMC41MDMwNDgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODA4MDcsIDAuMTI4Mjg3LCAwLjE2NjAxLCAwLjE5MjI2OSwgMC4yMzM4ODQsIDAuMjcwMTc3LCAwLjMyMTk3NyIsIFwKLSAgICAgICAgICAiMC4wODkwNiwgMC4xMzY0NzgsIDAuMTc0NTM3LCAwLjIwMDc2NywgMC4yNDIzNjksIDAuMjc4NjgyLCAwLjMzMDQ4NSIsIFwKLSAgICAgICAgICAiMC4wOTk0OSwgMC4xNDcwNDEsIDAuMTg1MDgzLCAwLjIxMTMyOSwgMC4yNTI5ODYsIDAuMjg5Mjg4LCAwLjM0MTEzNCIsIFwKLSAgICAgICAgICAiMC4xMDk5NjksIDAuMTU3NDg4LCAwLjE5NTQ3MywgMC4yMjE2OTcsIDAuMjYzMzE0LCAwLjI5OTYxOCwgMC4zNTE0MTQiLCBcCi0gICAgICAgICAgIjAuMTIwMjUyLCAwLjE2NzU0NywgMC4yMDU0OTIsIDAuMjMxNzQyLCAwLjI3MzM1LCAwLjMwOTY1OCwgMC4zNjE0NjQiLCBcCi0gICAgICAgICAgIjAuMTM1NTI5LCAwLjE4MzMzMSwgMC4yMjE0MTIsIDAuMjQ3NjQ3LCAwLjI4OTIzNCwgMC4zMjU1MzksIDAuMzc3MzQ1IiwgXAotICAgICAgICAgICIwLjE0Nzg0NywgMC4xOTYyNTMsIDAuMjM0NTQxLCAwLjI2MDgwNywgMC4zMDI0MywgMC4zMzc4MzYsIDAuMzg5NjQ4Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM0ODg5LCAwLjEwNjQ3MSwgMC4xNzc1NjgsIDAuMjI5MjIxLCAwLjMxMjg0NywgMC4zODYzLCAwLjQ5MjU1IiwgXAotICAgICAgICAgICIwLjAzNDg2NywgMC4xMDY1NDQsIDAuMTc3MzM2LCAwLjIyOTA5OSwgMC4zMTI0MTMsIDAuMzg2MjQzLCAwLjQ5MjUwMyIsIFwKLSAgICAgICAgICAiMC4wMzQ4NjUsIDAuMTA2MzU1LCAwLjE3NzQxOCwgMC4yMjg5OTQsIDAuMzEyNTI2LCAwLjM4NjIzMywgMC40OTI0OTMiLCBcCi0gICAgICAgICAgIjAuMDM0ODI0LCAwLjEwNjI2MSwgMC4xNzczODMsIDAuMjI5MDE4LCAwLjMxMjUxNiwgMC4zODY2MjksIDAuNDkyNDc4IiwgXAotICAgICAgICAgICIwLjAzNTA4MSwgMC4xMDY5MDcsIDAuMTc3NjQyLCAwLjIyOTE4NywgMC4zMTI2NTcsIDAuMzg2MzQzLCAwLjQ5MjQ4IiwgXAotICAgICAgICAgICIwLjAzNjQzOCwgMC4xMDc3NzEsIDAuMTc4MjM2LCAwLjIyOTYyOSwgMC4zMTI5MjcsIDAuMzg2NTEyLCAwLjQ5MjYwMSIsIFwKLSAgICAgICAgICAiMC4wMzc4NTcsIDAuMTA4MTUzLCAwLjE3ODU3NSwgMC4yMjk4OTMsIDAuMzEyOTUxLCAwLjM4NzA2MSwgMC40OTI5MTgiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDE3OTEsIDAuMDgyNTEzLCAwLjEyMDcwOSwgMC4xNDc5MzEsIDAuMTkxNDgsIDAuMjI5NTY4LCAwLjI4MzkzNCIsIFwKLSAgICAgICAgICAiMC4wNTE3ODgsIDAuMDkyNDkzLCAwLjEzMDcxNSwgMC4xNTc5NDQsIDAuMjAxNDc5LCAwLjIzOTU4MywgMC4yOTM5NTIiLCBcCi0gICAgICAgICAgIjAuMDY0MDkyLCAwLjEwNDg0MiwgMC4xNDMwNjksIDAuMTcwMzIxLCAwLjIxMzg0NywgMC4yNTE5MjcsIDAuMzA2MzI0IiwgXAotICAgICAgICAgICIwLjA3NTQ4OCwgMC4xMTYzMDksIDAuMTU0NTQyLCAwLjE4MTc3NywgMC4yMjUzMzYsIDAuMjYzNDQsIDAuMzE3ODEiLCBcCi0gICAgICAgICAgIjAuMDg1NzA4LCAwLjEyNjkzMiwgMC4xNjUxNDcsIDAuMTkyMzczLCAwLjIzNTkyMSwgMC4yNzQwMDMsIDAuMzI4Mzk5IiwgXAotICAgICAgICAgICIwLjA5OTE4LCAwLjE0MTEzNSwgMC4xNzkzNDgsIDAuMjA2NTcyLCAwLjI1MDExNiwgMC4yODgxODcsIDAuMzQyNTkzIiwgXAotICAgICAgICAgICIwLjEwOTIzLCAwLjE1MTc2NywgMC4xOTAwMSwgMC4yMTcxOTIsIDAuMjYwNzI1LCAwLjI5ODgwNSwgMC4zNTMxOTIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjMwMTEsIDAuMDk2ODg4LCAwLjE3MzAxOSwgMC4yMjgxNjQsIDAuMzE2MDA0LCAwLjM5MzUxNCwgMC41MDM5OTUiLCBcCi0gICAgICAgICAgIjAuMDIyOTgyLCAwLjA5NjkyNywgMC4xNzMwMTQsIDAuMjI4MTE1LCAwLjMxNjI4OSwgMC4zOTM0OTQsIDAuNTA0MDQxIiwgXAotICAgICAgICAgICIwLjAyMzI1OCwgMC4wOTY5OCwgMC4xNzMyOTYsIDAuMjI3NzQxLCAwLjMxNjE4LCAwLjM5MzU0OSwgMC41MDMzMjQiLCBcCi0gICAgICAgICAgIjAuMDI0MzU4LCAwLjA5NzIxMiwgMC4xNzMxNDUsIDAuMjI4MjM3LCAwLjMxNTkxMiwgMC4zOTM0NzIsIDAuNTAzOTk1IiwgXAotICAgICAgICAgICIwLjAyNTYyLCAwLjA5NzcyNywgMC4xNzM2MzEsIDAuMjI4MDk1LCAwLjMxNjM5MSwgMC4zOTMwNTIsIDAuNTAyOTY3IiwgXAotICAgICAgICAgICIwLjAyNzgxNiwgMC4wOTg2OTEsIDAuMTc0MDk4LCAwLjIyODY2LCAwLjMxNjQ3NiwgMC4zOTM1ODYsIDAuNTAzNzcyIiwgXAotICAgICAgICAgICIwLjAyOTcxOSwgMC4wOTk0OTksIDAuMTc0NDgsIDAuMjI4OTA0LCAwLjMxNjUyNSwgMC4zOTM0MzMsIDAuNTAzNjQyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc2NjMsIDAuMTI0MDA5LCAwLjE2MjA2OSwgMC4xODgzMzEsIDAuMjI5OTY1LCAwLjI2NjI0NiwgMC4zMTgwNjkiLCBcCi0gICAgICAgICAgIjAuMDg0NzA2LCAwLjEzMjE5MywgMC4xNzAyNTIsIDAuMTk2NDkxLCAwLjIzODA5OSwgMC4yNzQ0MTIsIDAuMzI2MjE1IiwgXAotICAgICAgICAgICIwLjA5NTczMSwgMC4xNDMyMzUsIDAuMTgxMjU3LCAwLjIwNzUyOSwgMC4yNDkxODUsIDAuMjg1NTA0LCAwLjMzNzM0MiIsIFwKLSAgICAgICAgICAiMC4xMDY3NiwgMC4xNTQyOTksIDAuMTkyMjgyLCAwLjIxODQ5NywgMC4yNjAxNCwgMC4yOTY0MTgsIDAuMzQ4MjM4IiwgXAotICAgICAgICAgICIwLjExNzk2MywgMC4xNjUyMzcsIDAuMjAzMjA2LCAwLjIyOTQyNywgMC4yNzEwMjEsIDAuMzA3MzI2LCAwLjM1OTEzNCIsIFwKLSAgICAgICAgICAiMC4xMzQ2MjIsIDAuMTgyMjY4LCAwLjIyMDM3NCwgMC4yNDY2LCAwLjI4ODIxMSwgMC4zMjQ0NzIsIDAuMzc2MzEzIiwgXAotICAgICAgICAgICIwLjE0NzQ5MiwgMC4xOTYxMjUsIDAuMjMzNTQ1LCAwLjI1OTgwNiwgMC4zMDE0MTMsIDAuMzM3NjgzLCAwLjM4OTQ4NiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzNDg5MiwgMC4xMDY1NTQsIDAuMTc3NTEzLCAwLjIyOTA5OCwgMC4zMTIxMTgsIDAuMzg2NTgyLCAwLjQ5MjUyOSIsIFwKLSAgICAgICAgICAiMC4wMzQ5NTcsIDAuMTA2NDgxLCAwLjE3NzQ1OSwgMC4yMjkwNzgsIDAuMzEyNDI0LCAwLjM4NjIyNCwgMC40OTI0OTEiLCBcCi0gICAgICAgICAgIjAuMDM0ODQyLCAwLjEwNjMwMiwgMC4xNzczOTUsIDAuMjI5MDI3LCAwLjMxMjUyNCwgMC4zODY1NDIsIDAuNDkyNDgzIiwgXAotICAgICAgICAgICIwLjAzNSwgMC4xMDY0MTksIDAuMTc3NDIsIDAuMjI5MDE1LCAwLjMxMjc0MywgMC4zODYyMjQsIDAuNDkyNDciLCBcCi0gICAgICAgICAgIjAuMDM1MjYyLCAwLjEwNjk3OCwgMC4xNzc3MjMsIDAuMjI5MjQ4LCAwLjMxMjU5LCAwLjM4NjM1OSwgMC40OTI0ODYiLCBcCi0gICAgICAgICAgIjAuMDM3MTQyLCAwLjEwNzc1MSwgMC4xNzgyMDYsIDAuMjI5NTk1LCAwLjMxMjg5MSwgMC4zODY3NTQsIDAuNDkyNzA3IiwgXAotICAgICAgICAgICIwLjAzOTUzNywgMC4xMDg2OTEsIDAuMTc5MzA0LCAwLjIzMDQyNCwgMC4zMTM0MzUsIDAuMzg3MTMsIDAuNDkyODkxIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQwMjQ4LCAwLjA4MDkwNCwgMC4xMTkxMTYsIDAuMTQ2Mjg1LCAwLjE4OTgwMiwgMC4yMjc5MTIsIDAuMjgyMjU3IiwgXAotICAgICAgICAgICIwLjA1MDI0NSwgMC4wOTA4OTIsIDAuMTI5MDg1LCAwLjE1NjI5OSwgMC4xOTk4NjEsIDAuMjM3OTA2LCAwLjI5MjM0OSIsIFwKLSAgICAgICAgICAiMC4wNjI2MTMsIDAuMTAzMTgxLCAwLjE0MTM4NiwgMC4xNjg2MDUsIDAuMjEyMTQ3LCAwLjI1MDIzMiwgMC4zMDQ2NCIsIFwKLSAgICAgICAgICAiMC4wNzM0MDIsIDAuMTE0Mjc4LCAwLjE1MjQ1OSwgMC4xNzk2NzMsIDAuMjIzMjAzLCAwLjI2MTMwMywgMC4zMTU2OTMiLCBcCi0gICAgICAgICAgIjAuMDgyOTc5LCAwLjEyNDA4MSwgMC4xNjIyNiwgMC4xODk0NzUsIDAuMjMzMDA4LCAwLjI3MTEyMywgMC4zMjU0NjEiLCBcCi0gICAgICAgICAgIjAuMDk1NzQsIDAuMTM3NzU4LCAwLjE3NTU2MywgMC4yMDI4MjcsIDAuMjQ2MzM1LCAwLjI4NDQwMywgMC4zMzg4MSIsIFwKLSAgICAgICAgICAiMC4xMDU5NjMsIDAuMTQ4NjIyLCAwLjE4Njc3NSwgMC4yMTM4NzksIDAuMjU2OTQ0LCAwLjI5NDk5NCwgMC4zNDk4MTkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjI5LCAwLjA5NjgwMSwgMC4xNzI5MzksIDAuMjI4MDMsIDAuMzE1OTUxLCAwLjM5MjQ5NywgMC41MDM5MjgiLCBcCi0gICAgICAgICAgIjAuMDIyODcyLCAwLjA5Njc3NywgMC4xNzI5NSwgMC4yMjc3MjgsIDAuMzE1NDIyLCAwLjM5MzUzLCAwLjUwMjgyMSIsIFwKLSAgICAgICAgICAiMC4wMjMxOCwgMC4wOTY5MzcsIDAuMTczMjI2LCAwLjIyODEwOSwgMC4zMTYyOTEsIDAuMzkzNTg4LCAwLjUwMzE2MSIsIFwKLSAgICAgICAgICAiMC4wMjQ4MzMsIDAuMDk3Mjk0LCAwLjE3MzM2LCAwLjIyODE4LCAwLjMxNTc4NywgMC4zOTI1MjMsIDAuNTAzMDkxIiwgXAotICAgICAgICAgICIwLjAyNTg3OSwgMC4wOTc5MzQsIDAuMTczNDk3LCAwLjIyODQwMywgMC4zMTY0MTcsIDAuMzkyNDE2LCAwLjUwNDAwMyIsIFwKLSAgICAgICAgICAiMC4wMjgxNjIsIDAuMDk4ODM2LCAwLjE3NDI0OSwgMC4yMjg3OTMsIDAuMzE2NTgzLCAwLjM5MzcwMywgMC41MDI3NDgiLCBcCi0gICAgICAgICAgIjAuMDMwMTIxLCAwLjA5OTc0OCwgMC4xNzQ0MzksIDAuMjI4NzMsIDAuMzE2ODY4LCAwLjM5Mzg4NSwgMC41MDQyMzgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwOTAxMywgMC4wMDkyNzIsIDAuMDA5MzY5LCAwLjAwOTM5LCAwLjAwOTQxNywgMC4wMDk0MzEsIDAuMDA5NDQ0IiwgXAotICAgICAgICAgICIwLjAwODkxMywgMC4wMDkxODUsIDAuMDA5Mjc0LCAwLjAwOTMwOSwgMC4wMDkzMzQsIDAuMDA5MzQ2LCAwLjAwOTM1OSIsIFwKLSAgICAgICAgICAiMC4wMDg4NTIsIDAuMDA5MTIsIDAuMDA5MjE2LCAwLjAwOTI0MiwgMC4wMDkyNzYsIDAuMDA5MjkzLCAwLjAwOTMwOCIsIFwKLSAgICAgICAgICAiMC4wMDg4NDcsIDAuMDA5MDk0LCAwLjAwOTE4NywgMC4wMDkyMTksIDAuMDA5MjU0LCAwLjAwOTI3LCAwLjAwOTI4MiIsIFwKLSAgICAgICAgICAiMC4wMDg4MjksIDAuMDA5MDY3LCAwLjAwOTE2MiwgMC4wMDkyMDIsIDAuMDA5MjI2LCAwLjAwOTI1MSwgMC4wMDkyNzQiLCBcCi0gICAgICAgICAgIjAuMDA4OTA2LCAwLjAwOTA2NSwgMC4wMDkxNTQsIDAuMDA5MTkyLCAwLjAwOTIyNywgMC4wMDkyNDYsIDAuMDA5MjYzIiwgXAotICAgICAgICAgICIwLjAwODg2MywgMC4wMDkwNCwgMC4wMDkxMzMsIDAuMDA5MTY1LCAwLjAwOTIxMiwgMC4wMDkyMzIsIDAuMDA5MjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMjg3LCAwLjAxMzMwOCwgMC4wMTMzOTEsIDAuMDEzNDE3LCAwLjAxMzQ0MSwgMC4wMTM0NTQsIDAuMDEzNDY1IiwgXAotICAgICAgICAgICIwLjAxMjc5NCwgMC4wMTMyMjcsIDAuMDEzMzIzLCAwLjAxMzM1NCwgMC4wMTMzODMsIDAuMDEzMzk5LCAwLjAxMzQxMiIsIFwKLSAgICAgICAgICAiMC4wMTI3NTEsIDAuMDEzMTYzLCAwLjAxMzI3NiwgMC4wMTMzMTUsIDAuMDEzMzUzLCAwLjAxMzM3MywgMC4wMTMzOTEiLCBcCi0gICAgICAgICAgIjAuMDEyNzMxLCAwLjAxMzExOCwgMC4wMTMyNDIsIDAuMDEzMjksIDAuMDEzMzM1LCAwLjAxMzM1OSwgMC4wMTMzODMiLCBcCi0gICAgICAgICAgIjAuMDEyNzI2LCAwLjAxMzA5MiwgMC4wMTMyMjQsIDAuMDEzMjY5LCAwLjAxMzMyNiwgMC4wMTMzNTQsIDAuMDEzMzgxIiwgXAotICAgICAgICAgICIwLjAxMjc4NCwgMC4wMTMwODcsIDAuMDEzMjI3LCAwLjAxMzI4LCAwLjAxMzMzNSwgMC4wMTMzNjksIDAuMDEzMzk3IiwgXAotICAgICAgICAgICIwLjAxMjgzNSwgMC4wMTMxMTYsIDAuMDEzMjUsIDAuMDEzMzAyLCAwLjAxMzM2NSwgMC4wMTM0MDEsIDAuMDEzNDMxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDg5OTksIDAuMDA5MjksIDAuMDA5MzY5LCAwLjAwOTQwMSwgMC4wMDk0MjQsIDAuMDA5NDQ2LCAwLjAwOTQ2IiwgXAotICAgICAgICAgICIwLjAwODkzLCAwLjAwOTE4OCwgMC4wMDkyODEsIDAuMDA5MzE0LCAwLjAwOTM0NSwgMC4wMDkzNTUsIDAuMDA5Mzc0IiwgXAotICAgICAgICAgICIwLjAwODg1LCAwLjAwOTExOSwgMC4wMDkyMTgsIDAuMDA5MjU2LCAwLjAwOTI4MywgMC4wMDkzMDQsIDAuMDA5MzIiLCBcCi0gICAgICAgICAgIjAuMDA4ODQ2LCAwLjAwOTA4OSwgMC4wMDkxNzgsIDAuMDA5MjIsIDAuMDA5MjU2LCAwLjAwOTI3NiwgMC4wMDkyOTIiLCBcCi0gICAgICAgICAgIjAuMDA4ODc4LCAwLjAwOTA2LCAwLjAwOTE2MSwgMC4wMDkyLCAwLjAwOTIzNiwgMC4wMDkyNiwgMC4wMDkyOCIsIFwKLSAgICAgICAgICAiMC4wMDg4NjgsIDAuMDA5MDcxLCAwLjAwOTE2MSwgMC4wMDkxOTIsIDAuMDA5MjM3LCAwLjAwOTI1OCwgMC4wMDkyODciLCBcCi0gICAgICAgICAgIjAuMDA4OTE1LCAwLjAwOTA2OSwgMC4wMDkxNTksIDAuMDA5MTkzLCAwLjAwOTI0OCwgMC4wMDkyNSwgMC4wMDkyNzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMjE0NSwgMC4wMTI2MTMsIDAuMDEyNjk4LCAwLjAxMjcyNSwgMC4wMTI3NDksIDAuMDEyNzYyLCAwLjAxMjc3MyIsIFwKLSAgICAgICAgICAiMC4wMTIwNTEsIDAuMDEyNTI0LCAwLjAxMjYyMywgMC4wMTI2NTYsIDAuMDEyNjg2LCAwLjAxMjcwMiwgMC4wMTI3MTciLCBcCi0gICAgICAgICAgIjAuMDEyMDA3LCAwLjAxMjQ0NiwgMC4wMTI1NjUsIDAuMDEyNjA3LCAwLjAxMjY0NywgMC4wMTI2NjcsIDAuMDEyNjg3IiwgXAotICAgICAgICAgICIwLjAxMTk2NCwgMC4wMTIzOCwgMC4wMTI1MjMsIDAuMDEyNTczLCAwLjAxMjYyMSwgMC4wMTI2NDgsIDAuMDEyNjcyIiwgXAotICAgICAgICAgICIwLjAxMTk3OSwgMC4wMTIzNDUsIDAuMDEyNDg3LCAwLjAxMjU2LCAwLjAxMjU5MiwgMC4wMTI2MiwgMC4wMTI2NDciLCBcCi0gICAgICAgICAgIjAuMDEyMDQ1LCAwLjAxMjM0NSwgMC4wMTI0ODUsIDAuMDEyNTQxLCAwLjAxMjU5NiwgMC4wMTI2MjUsIDAuMDEyNjU2IiwgXAotICAgICAgICAgICIwLjAxMjAwMywgMC4wMTIzMTgsIDAuMDEyNDY1LCAwLjAxMjUyNywgMC4wMTI1OTEsIDAuMDEyNjI1LCAwLjAxMjY2NCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA5MDExLCAwLjAwOTI5MSwgMC4wMDkzOTMsIDAuMDA5NDExLCAwLjAwOTQ0LCAwLjAwOTQ1NiwgMC4wMDk0NzEiLCBcCi0gICAgICAgICAgIjAuMDA4ODk4LCAwLjAwOTE2OCwgMC4wMDkyNjYsIDAuMDA5Mjk4LCAwLjAwOTMzNSwgMC4wMDkzNTMsIDAuMDA5MzY5IiwgXAotICAgICAgICAgICIwLjAwODg2LCAwLjAwOTEyMiwgMC4wMDkyMjQsIDAuMDA5MjY0LCAwLjAwOTI5NywgMC4wMDkzMTksIDAuMDA5MzM4IiwgXAotICAgICAgICAgICIwLjAwODkxOSwgMC4wMDkxMDksIDAuMDA5MjA1LCAwLjAwOTI0MiwgMC4wMDkyODMsIDAuMDA5MzAxLCAwLjAwOTMyNSIsIFwKLSAgICAgICAgICAiMC4wMDg5NzgsIDAuMDA5MTE0LCAwLjAwOTIxMiwgMC4wMDkyNTEsIDAuMDA5Mjk0LCAwLjAwOTMxOCwgMC4wMDkzNDEiLCBcCi0gICAgICAgICAgIjAuMDA5MDA2LCAwLjAwOTIxNCwgMC4wMDkyOCwgMC4wMDkzMTEsIDAuMDA5MzUzLCAwLjAwOTM4MSwgMC4wMDkzOTciLCBcCi0gICAgICAgICAgIjAuMDA5MTQsIDAuMDA5MjIyLCAwLjAwOTMxOSwgMC4wMDkzNTUsIDAuMDA5MzkyLCAwLjAwOTQxNywgMC4wMDk0MzYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMTM2MiwgMC4wMTE4MjQsIDAuMDExOTA0LCAwLjAxMTkyOSwgMC4wMTE5NTIsIDAuMDExOTY0LCAwLjAxMTk3NCIsIFwKLSAgICAgICAgICAiMC4wMTEyNjIsIDAuMDExNzM2LCAwLjAxMTgzMiwgMC4wMTE4NjMsIDAuMDExODksIDAuMDExOTA1LCAwLjAxMTkxOCIsIFwKLSAgICAgICAgICAiMC4wMTEyMDcsIDAuMDExNjM1LCAwLjAxMTc1NiwgMC4wMTE3OTgsIDAuMDExODM2LCAwLjAxMTg1NywgMC4wMTE4NzUiLCBcCi0gICAgICAgICAgIjAuMDExMjUxLCAwLjAxMTYwOCwgMC4wMTE3MjcsIDAuMDExNzcyLCAwLjAxMTgxNSwgMC4wMTE4MzgsIDAuMDExODYiLCBcCi0gICAgICAgICAgIjAuMDExMTU5LCAwLjAxMTU2NSwgMC4wMTE2OTcsIDAuMDExNzQ2LCAwLjAxMTc5OCwgMC4wMTE4MjUsIDAuMDExODUxIiwgXAotICAgICAgICAgICIwLjAxMTE4MywgMC4wMTE1NDEsIDAuMDExNjYzLCAwLjAxMTcyNSwgMC4wMTE3ODcsIDAuMDExODIyLCAwLjAxMTg1NSIsIFwKLSAgICAgICAgICAiMC4wMTEzNDUsIDAuMDExNTcxLCAwLjAxMTY4MiwgMC4wMTE3MzcsIDAuMDExNzc2LCAwLjAxMTgxMSwgMC4wMTE4NjEiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IEFORDNYTCAqCi0gKiAtLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKEFORDNYTCkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjA4MTc1MDg7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYzMDE2MTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MzAxNjE7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjI4NzU0OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDIyNiwgMC4wMDAyMjYsIDAuMDAwMjI2LCAwLjAwMDIyNiwgMC4wMDAyMjYsIDAuMDAwMjI2LCAwLjAwMDIyNiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDIyNywgMC4wMDAyMjcsIDAuMDAwMjI3LCAwLjAwMDIyNywgMC4wMDAyMjcsIDAuMDAwMjI3LCAwLjAwMDIyNyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjUwMjM2OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDY1MDIzNjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2NDkxNzI7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjI2LCAwLjAwMDIyNiwgMC4wMDAyMjYsIDAuMDAwMjI2LCAwLjAwMDIyNiwgMC4wMDAyMjYsIDAuMDAwMjI2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjI3LCAwLjAwMDIyNywgMC4wMDAyMjcsIDAuMDAwMjI3LCAwLjAwMDIyNywgMC4wMDAyMjcsIDAuMDAwMjI3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihDKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2NTc1NDk7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjU3MDk2OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDY1NzU0OTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxNDYsIDAuMDAwMTQ2LCAwLjAwMDE0NiwgMC4wMDAxNDYsIDAuMDAwMTQ2LCAwLjAwMDE0NiwgMC4wMDAxNDYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyNTcsIDAuMDAwMjU3LCAwLjAwMDI1NywgMC4wMDAyNTcsIDAuMDAwMjU3LCAwLjAwMDI1NywgMC4wMDAyNTciKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4xNDc2MTI7Ci0gICAgZnVuY3Rpb24gOiAiKChBIEIpIEMpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMzYzMzUsIDAuMTUwNTA1LCAwLjI3NzYxNywgMC40ODk0NjYsIDAuNzAxMzI2LCAxLjE5NjA1LCAxLjQ3ODE0IiwgXAotICAgICAgICAgICIwLjE0NDQ2MiwgMC4xNTg2NTksIDAuMjg1Nzc0LCAwLjQ5NzYyMiwgMC43MDk0OTQsIDEuMjA0MDksIDEuNDg2NDEiLCBcCi0gICAgICAgICAgIjAuMTUzNTgsIDAuMTY3NzcsIDAuMjk0ODg4LCAwLjUwNjc3OSwgMC43MTg3OTcsIDEuMjEzMTYsIDEuNDk1NDYiLCBcCi0gICAgICAgICAgIjAuMTYyMjY3LCAwLjE3NjQ1NSwgMC4zMDM1ODYsIDAuNTE1NDg4LCAwLjcyNzUyOCwgMS4yMjE4OCwgMS41MDQzNCIsIFwKLSAgICAgICAgICAiMC4xNzA2MDcsIDAuMTg0Nzc1LCAwLjMxMTk0NSwgMC41MjM3ODcsIDAuNzM1ODQ4LCAxLjIzMDE5LCAxLjUxMzM3IiwgXAotICAgICAgICAgICIwLjE4MzAyNCwgMC4xOTcyMTksIDAuMzI0MzUsIDAuNTM2MTg4LCAwLjc0ODEzNSwgMS4yNDI1MywgMS41MjUwOSIsIFwKLSAgICAgICAgICAiMC4xOTI5NzgsIDAuMjA3MjAyLCAwLjMzNDMyOCwgMC41NDYyMzYsIDAuNzU4MTEzLCAxLjI1MjM3LCAxLjUzNSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNTcxMzYsIDAuMTg1Mzc0LCAwLjQ0MzY4NCwgMC44Nzg5MTIsIDEuMzE1MDgsIDIuMzI3MTMsIDIuOTA2MjEiLCBcCi0gICAgICAgICAgIjAuMTU3MDgzLCAwLjE4NTMzMiwgMC40NDQwOCwgMC44Nzg4NiwgMS4zMTQ0MywgMi4zMjczMywgMi45MDYyIiwgXAotICAgICAgICAgICIwLjE1NzAzMSwgMC4xODUyOTEsIDAuNDQ0MDYsIDAuODc4MDM1LCAxLjMxMzQ4LCAyLjMyNjE5LCAyLjkwNjIiLCBcCi0gICAgICAgICAgIjAuMTU3MDkxLCAwLjE4NTMzNCwgMC40NDQxMzcsIDAuODc4MTc0LCAxLjMxMzIzLCAyLjMyNjAyLCAyLjkwODYzIiwgXAotICAgICAgICAgICIwLjE1NzI0NCwgMC4xODU1MjMsIDAuNDQ0Mjk5LCAwLjg3Nzk4MSwgMS4zMTMxNywgMi4zMjYwNCwgMi45MDY5OCIsIFwKLSAgICAgICAgICAiMC4xNTc5MzEsIDAuMTg2MDA4LCAwLjQ0MzYzMywgMC44NzkyMDgsIDEuMzE0MTQsIDIuMzMwNDYsIDIuOTA1NzQiLCBcCi0gICAgICAgICAgIjAuMTU4NDg4LCAwLjE4NjUzMSwgMC40NDQzNjMsIDAuODc3NTQsIDEuMzEyMjEsIDIuMzMxMjcsIDIuOTExMDYiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTAwNTc1LCAwLjExNDQzNywgMC4yMzkwNDIsIDAuNDQ2NDkyLCAwLjY1MzkzLCAxLjEzNzg4LCAxLjQxNDM5IiwgXAotICAgICAgICAgICIwLjExMDQ4LCAwLjEyNDM0MywgMC4yNDg5MzksIDAuNDU2NDA3LCAwLjY2Mzg0MywgMS4xNDc4NywgMS40MjQzMyIsIFwKLSAgICAgICAgICAiMC4xMjIzNjYsIDAuMTM2MjMyLCAwLjI2MDg1LCAwLjQ2ODMxLCAwLjY3NTc1MSwgMS4xNTk3LCAxLjQzNjIyIiwgXAotICAgICAgICAgICIwLjEzMjY1MSwgMC4xNDY1MjUsIDAuMjcxMTYxLCAwLjQ3ODYwNywgMC42ODYwNTUsIDEuMTcwMDMsIDEuNDQ2NTMiLCBcCi0gICAgICAgICAgIjAuMTQxMzUzLCAwLjE1NTIxNywgMC4yNzk4MjUsIDAuNDg3MzA2LCAwLjY5NDczNSwgMS4xNzg2OSwgMS40NTUyMSIsIFwKLSAgICAgICAgICAiMC4xNTMyNTQsIDAuMTY3MTM0LCAwLjI5MTc0MSwgMC40OTkyMiwgMC43MDY2ODQsIDEuMTkwNjMsIDEuNDY3MTciLCBcCi0gICAgICAgICAgIjAuMTYyODE2LCAwLjE3NjcxNywgMC4zMDEzMjQsIDAuNTA4NzkzLCAwLjcxNjI5NywgMS4yMDAxOCwgMS40NzY3NCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNDY3OTIsIDAuMTc0MTg1LCAwLjQyMzYxNywgMC44NDA3NTgsIDEuMjU3NDUsIDIuMjMwNDQsIDIuNzg2NjQiLCBcCi0gICAgICAgICAgIjAuMTQ2ODEsIDAuMTc0MzE1LCAwLjQyNDA2MSwgMC44NDA3NTQsIDEuMjU2MSwgMi4yMjk4NywgMi43ODY1MiIsIFwKLSAgICAgICAgICAiMC4xNDY4MTUsIDAuMTc0MzU3LCAwLjQyMzk3LCAwLjg0MDg0MiwgMS4yNTc1NywgMi4yMzA2LCAyLjc4NjU5IiwgXAotICAgICAgICAgICIwLjE0Njk4OSwgMC4xNzQ1NDgsIDAuNDIzOTQ5LCAwLjg0MDg0NiwgMS4yNTYzOSwgMi4yMjgzMSwgMi43ODY3MyIsIFwKLSAgICAgICAgICAiMC4xNDcxOTUsIDAuMTc0NzcsIDAuNDI0MDc3LCAwLjg0MDc0LCAxLjI1NzU3LCAyLjIzMDYyLCAyLjc4NjY0IiwgXAotICAgICAgICAgICIwLjE0NzQ1OSwgMC4xNzQ5MTcsIDAuNDI0MDI3LCAwLjgzOTgyMywgMS4yNTU4OCwgMi4yMjgyNSwgMi43ODYzMiIsIFwKLSAgICAgICAgICAiMC4xNDc1MTUsIDAuMTc0OTU5LCAwLjQyMzU3NiwgMC44Mzk3MzUsIDEuMjU2ODEsIDIuMjMwNTIsIDIuNzg2MzEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTMzODI0LCAwLjE0Nzk5OCwgMC4yNzUxMzYsIDAuNDg2OTkyLCAwLjY5ODk2MiwgMS4xOTMzMSwgMS40NzU3NiIsIFwKLSAgICAgICAgICAiMC4xNDE5OTEsIDAuMTU2MTk1LCAwLjI4MzMyNywgMC40OTUxNzgsIDAuNzA3MDc1LCAxLjIwMTYyLCAxLjQ4NDAzIiwgXAotICAgICAgICAgICIwLjE1MjM1MSwgMC4xNjY1MjMsIDAuMjkzNjYzLCAwLjUwNTU4LCAwLjcxNzUsIDEuMjEyMTcsIDEuNDk1OTEiLCBcCi0gICAgICAgICAgIjAuMTYyMjcxLCAwLjE3NjQ2NCwgMC4zMDM2MywgMC41MTU1MDksIDAuNzI3NjI0LCAxLjIyMTkyLCAxLjUwNTExIiwgXAotICAgICAgICAgICIwLjE3MTc0OSwgMC4xODU5MTgsIDAuMzEzMDU4LCAwLjUyNDkzNSwgMC43MzY5ODUsIDEuMjMxMzMsIDEuNTEzNjEiLCBcCi0gICAgICAgICAgIjAuMTg2MDIxLCAwLjIwMDE5NywgMC4zMjczNDYsIDAuNTM5MjY1LCAwLjc1MTA4NCwgMS4yNDU1MiwgMS41MjgwMSIsIFwKLSAgICAgICAgICAiMC4xOTcwNjIsIDAuMjExNDM0LCAwLjMzODU3OCwgMC41NTA0MjcsIDAuNzYyMzM0LCAxLjI1NjY5LCAxLjUzOTIiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTU3MDgsIDAuMTg1MDgsIDAuNDQ0MTYxLCAwLjg3ODgzOCwgMS4zMTMzNSwgMi4zMjY0MiwgMi45MTExNiIsIFwKLSAgICAgICAgICAiMC4xNTcwNjcsIDAuMTg1MzE4LCAwLjQ0NDEyLCAwLjg3ODg0MiwgMS4zMTQzMiwgMi4zMjYwMSwgMi45MDU4MyIsIFwKLSAgICAgICAgICAiMC4xNTcwNDUsIDAuMTg1Mjg2LCAwLjQ0NDEwMywgMC44NzgyNDQsIDEuMzEyMiwgMi4zMjcwNCwgMi45MDc4NyIsIFwKLSAgICAgICAgICAiMC4xNTcxOTMsIDAuMTg1NDEzLCAwLjQ0NDIzOCwgMC44NzgwMjgsIDEuMzEzMjYsIDIuMzI2MDUsIDIuOTA2OTciLCBcCi0gICAgICAgICAgIjAuMTU3NTM4LCAwLjE4NTU5NiwgMC40NDM3MywgMC44Nzg3MiwgMS4zMTMzMSwgMi4zMjYyMiwgMi45MDYxOSIsIFwKLSAgICAgICAgICAiMC4xNTgxMjgsIDAuMTg2MTk2LCAwLjQ0Mzc4MywgMC44NzgwNDIsIDEuMzE0ODMsIDIuMzMwNTksIDIuOTA2MTQiLCBcCi0gICAgICAgICAgIjAuMTU4ODgsIDAuMTg2ODk3LCAwLjQ0NDY0NiwgMC44NzkyOTEsIDEuMzEyMjEsIDIuMzI2NTgsIDIuOTExMzEiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk4OTMxLCAwLjExMjc3OCwgMC4yMzczMDQsIDAuNDQ0NzEyLCAwLjY1MjIwMiwgMS4xMzYwMSwgMS40MTI1NSIsIFwKLSAgICAgICAgICAiMC4xMDg4MzYsIDAuMTIyNjg5LCAwLjI0NzIwNywgMC40NTQ2NDMsIDAuNjYyMDQ1LCAxLjE0NjA5LCAxLjQyMjQ3IiwgXAotICAgICAgICAgICIwLjEyMDM3NiwgMC4xMzQyMywgMC4yNTg3NjgsIDAuNDY2MiwgMC42NzM2MjIsIDEuMTU3NiwgMS40MzQwNSIsIFwKLSAgICAgICAgICAiMC4xMzA0ODcsIDAuMTQ0MzQ2LCAwLjI2ODg4OCwgMC40NzYzMiwgMC42ODM3MjcsIDEuMTY3NjQsIDEuNDQ0MTciLCBcCi0gICAgICAgICAgIjAuMTM4ODc5LCAwLjE1MjczNiwgMC4yNzcyODMsIDAuNDg0NzU3LCAwLjY5MjEyNCwgMS4xNzYwMywgMS40NTI1NiIsIFwKLSAgICAgICAgICAiMC4xNTAzODMsIDAuMTY0MjM4LCAwLjI4ODc5NCwgMC40OTYwNTMsIDAuNzAzNDk0LCAxLjE4NzM4LCAxLjQ2NDEiLCBcCi0gICAgICAgICAgIjAuMTU4OTgzLCAwLjE3MjY5OCwgMC4yOTcyNjcsIDAuNTA0OTE0LCAwLjcxMjI3OSwgMS4xOTYwNywgMS40NzI3NCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNDY1MDgsIDAuMTczODk4LCAwLjQyMzkwOCwgMC44Mzk1NjUsIDEuMjU3NjQsIDIuMjMwMzQsIDIuNzgxNiIsIFwKLSAgICAgICAgICAiMC4xNDYzMDEsIDAuMTc0MDI5LCAwLjQyNDA2MiwgMC44Mzk3MTQsIDEuMjU3OTIsIDIuMjMxMDUsIDIuNzg1NDEiLCBcCi0gICAgICAgICAgIjAuMTQ2NDM0LCAwLjE3NDIxOCwgMC40MjQwNzIsIDAuODQwOTQsIDEuMjU3OTcsIDIuMjI2NTMsIDIuNzg1MzIiLCBcCi0gICAgICAgICAgIjAuMTQ2NTk4LCAwLjE3NDAzNSwgMC40MjMzNTksIDAuODQwMjgzLCAxLjI1NjYzLCAyLjIzMDY0LCAyLjc4NTE4IiwgXAotICAgICAgICAgICIwLjE0Njk2OCwgMC4xNzQ0NzUsIDAuNDIzODg4LCAwLjg0MDY3OCwgMS4yNTc4NiwgMi4yMzA1MywgMi43ODUyOSIsIFwKLSAgICAgICAgICAiMC4xNDcxNjEsIDAuMTc0NjQsIDAuNDIzNjg1LCAwLjg0MDgzMiwgMS4yNTc2LCAyLjIzMDY3LCAyLjc4MjY2IiwgXAotICAgICAgICAgICIwLjE0NzM2NCwgMC4xNzQ3ODEsIDAuNDIzNjYzLCAwLjg0MDA4MiwgMS4yNTYyNiwgMi4yMzA5MiwgMi43ODY3NiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMjkzMjUsIDAuMTQzNTEsIDAuMjcwNjU2LCAwLjQ4MjUyOSwgMC42OTQzODksIDEuMTg4ODksIDEuNDcxNjgiLCBcCi0gICAgICAgICAgIjAuMTM3NTUyLCAwLjE1MTc1MSwgMC4yNzg5NCwgMC40OTA4MzcsIDAuNzAyNjcsIDEuMTk3MTIsIDEuNDc5OTYiLCBcCi0gICAgICAgICAgIjAuMTQ4NTYzLCAwLjE2MjczOSwgMC4yODk4OTksIDAuNTAxNjc4LCAwLjcxMzg1MywgMS4yMDgyNywgMS40OTA2NyIsIFwKLSAgICAgICAgICAiMC4xNTk0ODMsIDAuMTczNjU5LCAwLjMwMDgxMiwgMC41MTI3MjIsIDAuNzI0NjcsIDEuMjE5MzMsIDEuNTAzMDYiLCBcCi0gICAgICAgICAgIjAuMTY5ODU5LCAwLjE4NDAzMSwgMC4zMTExODUsIDAuNTIzMDc1LCAwLjczNTEzNSwgMS4yMjk2NSwgMS41MTMyNyIsIFwKLSAgICAgICAgICAiMC4xODQzMDUsIDAuMTk4NDk3LCAwLjMyNTY3NywgMC41Mzc1ODIsIDAuNzQ5NDExLCAxLjI0Mzg5LCAxLjUyNjQiLCBcCi0gICAgICAgICAgIjAuMTk1ODI2LCAwLjIxMDEyMSwgMC4zMzYxNjQsIDAuNTQ4MDE3LCAwLjc1OTk5OSwgMS4yNTQyOCwgMS41MzY4NCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNTcxMTEsIDAuMTg1MzU5LCAwLjQ0MzYyNiwgMC44Nzg4NTMsIDEuMzE0MzgsIDIuMzI2MzMsIDIuOTA2ODIiLCBcCi0gICAgICAgICAgIjAuMTU3MDMsIDAuMTg1Mjg4LCAwLjQ0MzQ4NCwgMC44NzgxMDQsIDEuMzE0MjYsIDIuMzI2NSwgMi45MDY3OCIsIFwKLSAgICAgICAgICAiMC4xNTcwMTcsIDAuMTg1Mjg3LCAwLjQ0NDEwOSwgMC44Nzg4NTYsIDEuMzEzMzIsIDIuMzI3MjIsIDIuOTA1NTEiLCBcCi0gICAgICAgICAgIjAuMTU3MjcyLCAwLjE4NTQ4LCAwLjQ0NDEwNSwgMC44NzgxNTYsIDEuMzEyMTMsIDIuMzI3MDMsIDIuOTA3OSIsIFwKLSAgICAgICAgICAiMC4xNTc1NDIsIDAuMTg1NzE4LCAwLjQ0NDE2NCwgMC44Nzc5NiwgMS4zMTMyNiwgMi4zMjcwOCwgMi45MDgxIiwgXAotICAgICAgICAgICIwLjE1ODMzOSwgMC4xODYzOTIsIDAuNDQzNzQ1LCAwLjg3NzUyMiwgMS4zMTQ4MiwgMi4zMzAzNywgMi45MDU4NyIsIFwKLSAgICAgICAgICAiMC4xNTkwNTUsIDAuMTg3MDA4LCAwLjQ0NDc4NiwgMC44NzkyODcsIDEuMzExOTYsIDIuMzI3OTQsIDIuOTA1OTgiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk3MDksIDAuMTEwOTIzLCAwLjIzNTQyMiwgMC40NDI4OTEsIDAuNjUwNDM4LCAxLjEzNDUsIDEuNDEwOTIiLCBcCi0gICAgICAgICAgIjAuMTA2ODkxLCAwLjEyMDczOCwgMC4yNDUyNiwgMC40NTI4NDksIDAuNjYwMzM4LCAxLjE0NDE3LCAxLjQyMTE0IiwgXAotICAgICAgICAgICIwLjExODEwOSwgMC4xMzE5NTIsIDAuMjU2NTE5LCAwLjQ2NDAyNywgMC42NzE0MTUsIDEuMTU2MTMsIDEuNDMyMDciLCBcCi0gICAgICAgICAgIjAuMTI3MjgsIDAuMTQxMTI1LCAwLjI2NTYzNSwgMC40NzMxNjIsIDAuNjgwNjI2LCAxLjE2NDg5LCAxLjQ0MjQzIiwgXAotICAgICAgICAgICIwLjEzNTMyNCwgMC4xNDkxNjMsIDAuMjczNzMsIDAuNDgxNywgMC42ODkwMDksIDEuMTczMDcsIDEuNDQ5ODYiLCBcCi0gICAgICAgICAgIjAuMTQ2MjYsIDAuMTYwMDk4LCAwLjI4NDcwMiwgMC40OTIxNDIsIDAuNzAwMDM0LCAxLjE4MzcxLCAxLjQ2MTMzIiwgXAotICAgICAgICAgICIwLjE1NDA1MSwgMC4xNjgyMzIsIDAuMjkyNDI0LCAwLjQ5OTk1MiwgMC43MDc3NDgsIDEuMTkxNDUsIDEuNDY4MTkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTQ2MzUzLCAwLjE3Mzk0NywgMC40MjI3OTQsIDAuODM5NjQ3LCAxLjI1NTY0LCAyLjIyNTU3LCAyLjc3OTY5IiwgXAotICAgICAgICAgICIwLjE0NjEyOSwgMC4xNzQwOSwgMC40MjI4NTIsIDAuODM5MDcsIDEuMjU1MjcsIDIuMjI1NDEsIDIuNzc5NDEiLCBcCi0gICAgICAgICAgIjAuMTQ2NDQ2LCAwLjE3NDExOCwgMC40MjMxNjksIDAuODM5NDc2LCAxLjI1NDU0LCAyLjIyNDc3LCAyLjc4NjI1IiwgXAotICAgICAgICAgICIwLjE0NjcyNywgMC4xNzM5ODUsIDAuNDI0MDg5LCAwLjgzODU1NCwgMS4yNTU4NywgMi4yMjgwMywgMi43ODI2IiwgXAotICAgICAgICAgICIwLjE0NzAxNSwgMC4xNzQ0OSwgMC40MjMwOTIsIDAuODM4OTE1LCAxLjI1NDIsIDIuMjMxMTMsIDIuNzgwMTEiLCBcCi0gICAgICAgICAgIjAuMTQ3MTc0LCAwLjE3NDQxNSwgMC40MjMwNTQsIDAuODM5MjMzLCAxLjI1NDQ3LCAyLjIyNDA0LCAyLjc4MTgyIiwgXAotICAgICAgICAgICIwLjE0NzQ4MSwgMC4xNzQ3NjUsIDAuNDIzNjAyLCAwLjgzODY1OSwgMS4yNTQ2NCwgMi4yMzAyMywgMi43ODY2NiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTA5MiwgMC4wMDEwOTIsIDAuMDAxMDkyLCAwLjAwMTA5MiwgMC4wMDEwOTMsIDAuMDAxMDkyLCAwLjAwMTA5MSIsIFwKLSAgICAgICAgICAiMC4wMDEwNjUsIDAuMDAxMDY1LCAwLjAwMTA2NCwgMC4wMDEwNjUsIDAuMDAxMDY0LCAwLjAwMTA2NCwgMC4wMDEwNjQiLCBcCi0gICAgICAgICAgIjAuMDAxMDUyLCAwLjAwMTA1MywgMC4wMDEwNTQsIDAuMDAxMDU0LCAwLjAwMTA1MywgMC4wMDEwNTMsIDAuMDAxMDUzIiwgXAotICAgICAgICAgICIwLjAwMTA0NywgMC4wMDEwNDgsIDAuMDAxMDQ5LCAwLjAwMTA0OSwgMC4wMDEwNDksIDAuMDAxMDQ5LCAwLjAwMTA0OSIsIFwKLSAgICAgICAgICAiMC4wMDEwNDYsIDAuMDAxMDQ2LCAwLjAwMTA0OCwgMC4wMDEwNDgsIDAuMDAxMDQ4LCAwLjAwMTA0OCwgMC4wMDEwNDciLCBcCi0gICAgICAgICAgIjAuMDAxMDQ2LCAwLjAwMTA0NywgMC4wMDEwNDgsIDAuMDAxMDQ4LCAwLjAwMTA0OCwgMC4wMDEwNDgsIDAuMDAxMDQ4IiwgXAotICAgICAgICAgICIwLjAwMTA0NywgMC4wMDEwNDcsIDAuMDAxMDUsIDAuMDAxMDUsIDAuMDAxMDUsIDAuMDAxMDUsIDAuMDAxMDUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI2MjMsIDAuMDAyNjI0LCAwLjAwMjYyNiwgMC4wMDI2MjcsIDAuMDAyNjI3LCAwLjAwMjYyNywgMC4wMDI2MjciLCBcCi0gICAgICAgICAgIjAuMDAyNjA4LCAwLjAwMjYwOSwgMC4wMDI2MTIsIDAuMDAyNjEzLCAwLjAwMjYxNCwgMC4wMDI2MTQsIDAuMDAyNjE0IiwgXAotICAgICAgICAgICIwLjAwMjYwNSwgMC4wMDI2MDcsIDAuMDAyNjExLCAwLjAwMjYxMywgMC4wMDI2MTQsIDAuMDAyNjE0LCAwLjAwMjYxNCIsIFwKLSAgICAgICAgICAiMC4wMDI2MDcsIDAuMDAyNjA4LCAwLjAwMjYxNSwgMC4wMDI2MTcsIDAuMDAyNjE4LCAwLjAwMjYxOCwgMC4wMDI2MTkiLCBcCi0gICAgICAgICAgIjAuMDAyNjEzLCAwLjAwMjYxNSwgMC4wMDI2MjIsIDAuMDAyNjI0LCAwLjAwMjYyNSwgMC4wMDI2MjYsIDAuMDAyNjI2IiwgXAotICAgICAgICAgICIwLjAwMjYzMSwgMC4wMDI2MzMsIDAuMDAyNjQsIDAuMDAyNjQzLCAwLjAwMjY0NCwgMC4wMDI2NDUsIDAuMDAyNjQ1IiwgXAotICAgICAgICAgICIwLjAwMjYzNSwgMC4wMDI2MzYsIDAuMDAyNjQ1LCAwLjAwMjY0OCwgMC4wMDI2NDksIDAuMDAyNjUsIDAuMDAyNjUxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxMDk2LCAwLjAwMTA5NiwgMC4wMDEwOTgsIDAuMDAxMSwgMC4wMDEwOTcsIDAuMDAxMDk5LCAwLjAwMTEwMSIsIFwKLSAgICAgICAgICAiMC4wMDEwNjgsIDAuMDAxMDY4LCAwLjAwMTA3LCAwLjAwMTA3MSwgMC4wMDEwNzEsIDAuMDAxMDcxLCAwLjAwMTA3MiIsIFwKLSAgICAgICAgICAiMC4wMDEwNTYsIDAuMDAxMDU3LCAwLjAwMTA1OSwgMC4wMDEwNiwgMC4wMDEwNiwgMC4wMDEwNiwgMC4wMDEwNiIsIFwKLSAgICAgICAgICAiMC4wMDEwNSwgMC4wMDEwNTIsIDAuMDAxMDU1LCAwLjAwMTA1NiwgMC4wMDEwNTYsIDAuMDAxMDU2LCAwLjAwMTA1NyIsIFwKLSAgICAgICAgICAiMC4wMDEwNTEsIDAuMDAxMDUyLCAwLjAwMTA1NSwgMC4wMDEwNTYsIDAuMDAxMDU3LCAwLjAwMTA1NywgMC4wMDEwNTciLCBcCi0gICAgICAgICAgIjAuMDAxMDU4LCAwLjAwMTA1OCwgMC4wMDEwNjEsIDAuMDAxMDYyLCAwLjAwMTA2MiwgMC4wMDEwNjIsIDAuMDAxMDYyIiwgXAotICAgICAgICAgICIwLjAwMTA2NCwgMC4wMDEwNjQsIDAuMDAxMDY2LCAwLjAwMTA2NywgMC4wMDEwNjcsIDAuMDAxMDY4LCAwLjAwMTA2OCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjM2OCwgMC4wMDIzNjksIDAuMDAyMzczLCAwLjAwMjM3NCwgMC4wMDIzNzQsIDAuMDAyMzc0LCAwLjAwMjM3NSIsIFwKLSAgICAgICAgICAiMC4wMDIzNSwgMC4wMDIzNTIsIDAuMDAyMzU2LCAwLjAwMjM1OCwgMC4wMDIzNTgsIDAuMDAyMzU5LCAwLjAwMjM1OSIsIFwKLSAgICAgICAgICAiMC4wMDIzNDUsIDAuMDAyMzQ3LCAwLjAwMjM1MywgMC4wMDIzNTYsIDAuMDAyMzU3LCAwLjAwMjM1OCwgMC4wMDIzNTgiLCBcCi0gICAgICAgICAgIjAuMDAyMzM3LCAwLjAwMjM0LCAwLjAwMjM0NywgMC4wMDIzNSwgMC4wMDIzNTEsIDAuMDAyMzUyLCAwLjAwMjM1MiIsIFwKLSAgICAgICAgICAiMC4wMDIzNDEsIDAuMDAyMzQ0LCAwLjAwMjM1MiwgMC4wMDIzNTYsIDAuMDAyMzU3LCAwLjAwMjM1OCwgMC4wMDIzNTgiLCBcCi0gICAgICAgICAgIjAuMDAyMzUzLCAwLjAwMjM1NiwgMC4wMDIzNjYsIDAuMDAyMzY3LCAwLjAwMjM2OSwgMC4wMDIzNywgMC4wMDIzNzMiLCBcCi0gICAgICAgICAgIjAuMDAyMzY5LCAwLjAwMjM2OSwgMC4wMDIzOCwgMC4wMDIzODcsIDAuMDAyMzg5LCAwLjAwMjM4NywgMC4wMDIzOTEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDEwOTYsIDAuMDAxMDk2LCAwLjAwMTEsIDAuMDAxMTAxLCAwLjAwMTEwMiwgMC4wMDExMDIsIDAuMDAxMTAyIiwgXAotICAgICAgICAgICIwLjAwMTA2NywgMC4wMDEwNjgsIDAuMDAxMDcxLCAwLjAwMTA3MiwgMC4wMDEwNzMsIDAuMDAxMDczLCAwLjAwMTA3MyIsIFwKLSAgICAgICAgICAiMC4wMDEwNTksIDAuMDAxMDYsIDAuMDAxMDY1LCAwLjAwMTA2NiwgMC4wMDEwNjYsIDAuMDAxMDY3LCAwLjAwMTA2NyIsIFwKLSAgICAgICAgICAiMC4wMDEwNywgMC4wMDEwNzEsIDAuMDAxMDc1LCAwLjAwMTA3NywgMC4wMDEwNzgsIDAuMDAxMDc4LCAwLjAwMTA3OCIsIFwKLSAgICAgICAgICAiMC4wMDEwODIsIDAuMDAxMDgyLCAwLjAwMTA4NywgMC4wMDEwODksIDAuMDAxMDksIDAuMDAxMDksIDAuMDAxMDkxIiwgXAotICAgICAgICAgICIwLjAwMTEwNCwgMC4wMDExMDQsIDAuMDAxMTA5LCAwLjAwMTExMiwgMC4wMDExMTIsIDAuMDAxMTEzLCAwLjAwMTExMyIsIFwKLSAgICAgICAgICAiMC4wMDExMjUsIDAuMDAxMTI2LCAwLjAwMTEzLCAwLjAwMTEzNCwgMC4wMDExMzQsIDAuMDAxMTM1LCAwLjAwMTEzNSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjEyMSwgMC4wMDIxMjIsIDAuMDAyMTI0LCAwLjAwMjEyNSwgMC4wMDIxMjYsIDAuMDAyMTI2LCAwLjAwMjEyNiIsIFwKLSAgICAgICAgICAiMC4wMDIxMDEsIDAuMDAyMTAzLCAwLjAwMjEwNywgMC4wMDIxMDgsIDAuMDAyMTA4LCAwLjAwMjEwOSwgMC4wMDIxMDkiLCBcCi0gICAgICAgICAgIjAuMDAyMDkzLCAwLjAwMjA5NSwgMC4wMDIxLCAwLjAwMjEwMiwgMC4wMDIxMDMsIDAuMDAyMTA0LCAwLjAwMjEwNCIsIFwKLSAgICAgICAgICAiMC4wMDIwOTIsIDAuMDAyMDk0LCAwLjAwMjEwMSwgMC4wMDIxMDQsIDAuMDAyMTA1LCAwLjAwMjEwNiwgMC4wMDIxMDYiLCBcCi0gICAgICAgICAgIjAuMDAyMDg3LCAwLjAwMjA5LCAwLjAwMjA5OCwgMC4wMDIxMDMsIDAuMDAyMTA0LCAwLjAwMjEwNSwgMC4wMDIxMDQiLCBcCi0gICAgICAgICAgIjAuMDAyMTAxLCAwLjAwMjEwMywgMC4wMDIxMTYsIDAuMDAyMTE3LCAwLjAwMjEyMSwgMC4wMDIxMTksIDAuMDAyMTIyIiwgXAotICAgICAgICAgICIwLjAwMjEyMSwgMC4wMDIxMiwgMC4wMDIxMzMsIDAuMDAyMTM4LCAwLjAwMjEzOSwgMC4wMDIxNDEsIDAuMDAyMTQxIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBBTkQ0WDEgKgotICogLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChBTkQ0WDEpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4xMTY5ODk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDU5NTU1MTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA1OTU1NTE7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNTkzODY1OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDIyNiwgMC4wMDAyMjYsIDAuMDAwMjI2LCAwLjAwMDIyNiwgMC4wMDAyMjYsIDAuMDAwMjI2LCAwLjAwMDIyNiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDIyNywgMC4wMDAyMjcsIDAuMDAwMjI3LCAwLjAwMDIyNywgMC4wMDAyMjcsIDAuMDAwMjI3LCAwLjAwMDIyNyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjM2NjYyOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYzNjY2MjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2MzU3MDg7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjI2LCAwLjAwMDIyNiwgMC4wMDAyMjYsIDAuMDAwMjI2LCAwLjAwMDIyNiwgMC4wMDAyMjYsIDAuMDAwMjI2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjI3LCAwLjAwMDIyNywgMC4wMDAyMjcsIDAuMDAwMjI3LCAwLjAwMDIyNywgMC4wMDAyMjcsIDAuMDAwMjI3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihDKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2NDc4NTI7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjQ3ODUyOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDY0NjcwNTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyMjYsIDAuMDAwMjI2LCAwLjAwMDIyNiwgMC4wMDAyMjYsIDAuMDAwMjI2LCAwLjAwMDIyNiwgMC4wMDAyMjYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyMjcsIDAuMDAwMjI3LCAwLjAwMDIyNywgMC4wMDAyMjcsIDAuMDAwMjI3LCAwLjAwMDIyNywgMC4wMDAyMjciKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEQpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYyODY1MzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MjgwMzI7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjI4NjUzOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDE0OCwgMC4wMDAxNDgsIDAuMDAwMTQ4LCAwLjAwMDE0OCwgMC4wMDAxNDgsIDAuMDAwMTQ4LCAwLjAwMDE0OCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDI1NywgMC4wMDAyNTcsIDAuMDAwMjU3LCAwLjAwMDI1NywgMC4wMDAyNTcsIDAuMDAwMjU3LCAwLjAwMDI1NyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjI2MTczNzsKLSAgICBmdW5jdGlvbiA6ICIoKChBIEIpIEMpIEQpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNDg3MzcsIDAuMTc1MDE4LCAwLjMxNTUyNywgMC40MzgyMjIsIDAuNjAxODExLCAwLjkyOTE3NSwgMS4xMzM2MyIsIFwKLSAgICAgICAgICAiMC4xNTY2ODQsIDAuMTgzMDA5LCAwLjMyMzUyMiwgMC40NDYyMzcsIDAuNjA5ODAxLCAwLjkzNzE2NSwgMS4xNDE2MiIsIFwKLSAgICAgICAgICAiMC4xNjUyMTIsIDAuMTkxOTAzLCAwLjMzMjQxNiwgMC40NTUxMTcsIDAuNjE4Njg5LCAwLjk0NjQxOCwgMS4xNTA1MiIsIFwKLSAgICAgICAgICAiMC4xNzMzMzksIDAuMTk5OTkxLCAwLjM0MDQ0NCwgMC40NjMxNDQsIDAuNjI2NzYyLCAwLjk1NDIxMSwgMS4xNTg1OSIsIFwKLSAgICAgICAgICAiMC4xODEwNjIsIDAuMjA3NzIzLCAwLjM0ODE3NSwgMC40NzA4OSwgMC42MzQ0ODksIDAuOTYyMTkxLCAxLjE2NjI2IiwgXAotICAgICAgICAgICIwLjE5Mjg5NCwgMC4yMTk1NjcsIDAuMzYwMDMyLCAwLjQ4MjcyNCwgMC42NDYzNCwgMC45NzM3NTYsIDEuMTc4NjYiLCBcCi0gICAgICAgICAgIjAuMjAyNTkzLCAwLjIyOTMzNiwgMC4zNjk4ODYsIDAuNDkyNTg4LCAwLjY1NjE4OCwgMC45ODM1MTQsIDEuMTg4MDQiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTA4MjUsIDAuMTU1OTE0LCAwLjQzMzQwNCwgMC42ODQzNTIsIDEuMDE5MzQsIDEuNjkyNDYsIDIuMTExOTYiLCBcCi0gICAgICAgICAgIjAuMTA4MjM5LCAwLjE1NTg3NSwgMC40MzM0MSwgMC42ODQ0NjMsIDEuMDE5MzUsIDEuNjkyNDMsIDIuMTExOTYiLCBcCi0gICAgICAgICAgIjAuMTA4MDM5LCAwLjE1NTUzOCwgMC40MzMzOTQsIDAuNjgzMjQ4LCAxLjAyMDUsIDEuNjkxNzYsIDIuMTExOTUiLCBcCi0gICAgICAgICAgIjAuMTA3OTgxLCAwLjE1NTM5NSwgMC40MzMzMzcsIDAuNjg0MjQ1LCAxLjAxOTI3LCAxLjY5MTc3LCAyLjExMTk2IiwgXAotICAgICAgICAgICIwLjEwNzk2MiwgMC4xNTUzMTksIDAuNDMzMDM0LCAwLjY4MzM1NSwgMS4wMTkxNiwgMS42OTEyMiwgMi4xMTY2NiIsIFwKLSAgICAgICAgICAiMC4xMDg0MjMsIDAuMTU1NzIsIDAuNDMzNjgsIDAuNjg0MjA5LCAxLjAxOTI0LCAxLjY5MDg0LCAyLjExMjQ2IiwgXAotICAgICAgICAgICIwLjEwOTEwMywgMC4xNTYyMTUsIDAuNDMzODM4LCAwLjY4NDI4MywgMS4wMTkyMywgMS42OTEyNywgMi4xMTE5NiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODA2NjksIDAuMTA1NjE1LCAwLjI0NjEyNCwgMC4zNjk4ODMsIDAuNTM0ODUxLCAwLjg2NDcxNywgMS4wNzA5NyIsIFwKLSAgICAgICAgICAiMC4wOTA1MzcsIDAuMTE1NDcyLCAwLjI1NjAxNywgMC4zNzk3ODYsIDAuNTQ0NzU3LCAwLjg3NDYxMywgMS4wODA3OSIsIFwKLSAgICAgICAgICAiMC4xMDI3MjMsIDAuMTI3Njg2LCAwLjI2ODI0OCwgMC4zOTIwMDcsIDAuNTU2OTc2LCAwLjg4Njg1NiwgMS4wOTI5OSIsIFwKLSAgICAgICAgICAiMC4xMTQzMjUsIDAuMTM5MjY0LCAwLjI3OTgyNiwgMC40MDM1ODUsIDAuNTY4NTYxLCAwLjg5ODQyMywgMS4xMDQ2MiIsIFwKLSAgICAgICAgICAiMC4xMjQ1ODUsIDAuMTQ5NTExLCAwLjI5MDA3NywgMC40MTM4NjIsIDAuNTc4ODIxLCAwLjkwODY5OCwgMS4xMTQ4NCIsIFwKLSAgICAgICAgICAiMC4xMzg1NTYsIDAuMTYzNTU3LCAwLjMwMzk5MiwgMC40Mjc4MDYsIDAuNTkyNzUzLCAwLjkyMjU5OCwgMS4xMjg3MyIsIFwKLSAgICAgICAgICAiMC4xNDkwNjQsIDAuMTc0MTU5LCAwLjMxNDU3LCAwLjQzODM1NCwgMC42MDMzMTEsIDAuOTMzMTY4LCAxLjEzOTM2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5MjAxNSwgMC4xNDA5MzQsIDAuNDIyNDYxLCAwLjY3MTY3OCwgMS4wMDM5MiwgMS42Njg2MSwgMi4wODA0MiIsIFwKLSAgICAgICAgICAiMC4wOTE5NTIsIDAuMTQwODY5LCAwLjQyMjQ5MywgMC42NzEwOTcsIDEuMDAzOTksIDEuNjY3MzMsIDIuMDg0MDgiLCBcCi0gICAgICAgICAgIjAuMDkyMDQxLCAwLjE0MTE0NCwgMC40MjIzOTEsIDAuNjcxNTksIDEuMDAzODgsIDEuNjY4MzUsIDIuMDg0MjMiLCBcCi0gICAgICAgICAgIjAuMDkyMTIxLCAwLjE0MTIwNSwgMC40MjI0MSwgMC42NzE3OTMsIDEuMDAzLCAxLjY2ODg2LCAyLjA4NDA3IiwgXAotICAgICAgICAgICIwLjA5MjYwNiwgMC4xNDEzMjEsIDAuNDIyMjYxLCAwLjY3MTcxNiwgMS4wMDQxNSwgMS42Njc4OCwgMi4wODQyMiIsIFwKLSAgICAgICAgICAiMC4wOTM0NzUsIDAuMTQxNzg1LCAwLjQyMjU0NiwgMC42NzA1MzUsIDEuMDAyNDgsIDEuNjY4ODMsIDIuMDg0NTQiLCBcCi0gICAgICAgICAgIjAuMDk0MTc5LCAwLjE0MjMxNywgMC40MjI2MjQsIDAuNjcwODc0LCAxLjAwMzUxLCAxLjY2ODc1LCAyLjA4Mzk3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE0NTk2NywgMC4xNzI1MTMsIDAuMzEzMDg1LCAwLjQzNTgwMiwgMC41OTk0NTksIDAuOTI2NjQzLCAxLjEzMTE0IiwgXAotICAgICAgICAgICIwLjE1MzgwNCwgMC4xODAyOTksIDAuMzIwODM2LCAwLjQ0MzU0NSwgMC42MDcxMjIsIDAuOTM0Mzk5LCAxLjEzOTA2IiwgXAotICAgICAgICAgICIwLjE2MjY4NCwgMC4xODk0MzYsIDAuMzI5OTg3LCAwLjQ1Mjc2NSwgMC42MTYzOTcsIDAuOTQzNjQsIDEuMTQ4MSIsIFwKLSAgICAgICAgICAiMC4xNzE2NSwgMC4xOTgzMzcsIDAuMzM4ODMzLCAwLjQ2MTU1NSwgMC42MjUxNzksIDAuOTUyODI4LCAxLjE1NjkxIiwgXAotICAgICAgICAgICIwLjE4MDQxMSwgMC4yMDcwNTcsIDAuMzQ3NTUxLCAwLjQ3MDI1MSwgMC42MzM4NzcsIDAuOTYxNDE1LCAxLjE2NTc2IiwgXAotICAgICAgICAgICIwLjE5NDAwNCwgMC4yMjA3MDcsIDAuMzYxMTU0LCAwLjQ4Mzg3NSwgMC42NDc0NTcsIDAuOTc0Njk3LCAxLjE3OTYxIiwgXAotICAgICAgICAgICIwLjIwNTExNiwgMC4yMzE4NzgsIDAuMzcyNDY1LCAwLjQ5NTIxLCAwLjY1ODc3MiwgMC45ODYyMjUsIDEuMTkwNTciKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTA4MTQ3LCAwLjE1NTY5NCwgMC40MzM3MDcsIDAuNjg0MzQ2LCAxLjAyMDg1LCAxLjY5MjM2LCAyLjExNTMxIiwgXAotICAgICAgICAgICIwLjEwODE1NCwgMC4xNTU3NDIsIDAuNDMzNDE2LCAwLjY4NDM0MSwgMS4wMTkyMSwgMS42OTI0LCAyLjExMTY0IiwgXAotICAgICAgICAgICIwLjEwODE2MywgMC4xNTU0ODYsIDAuNDMzMDc2LCAwLjY4NDU0MSwgMS4wMjA4NywgMS42OTI0NCwgMi4xMTE5NSIsIFwKLSAgICAgICAgICAiMC4xMDc5MjYsIDAuMTU1MzUzLCAwLjQzMzAyNywgMC42ODMyNzgsIDEuMDE5MjcsIDEuNjkxNjUsIDIuMTE2MjUiLCBcCi0gICAgICAgICAgIjAuMTA3OTMyLCAwLjE1NTM2NywgMC40MzM2MTksIDAuNjg0MjQsIDEuMDE5MjYsIDEuNjkxNjUsIDIuMTExOTUiLCBcCi0gICAgICAgICAgIjAuMTA4Njg5LCAwLjE1NTkzMiwgMC40MzM0MDYsIDAuNjg0MjIxLCAxLjAyMDMxLCAxLjY5Mzc1LCAyLjExMzUyIiwgXAotICAgICAgICAgICIwLjEwOTU5NiwgMC4xNTY1NTgsIDAuNDMzNjkxLCAwLjY4NDU5NywgMS4wMTkzMywgMS42OTEzOCwgMi4xMTYyNCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzkyODcsIDAuMTA0MTg1LCAwLjI0NDU5OSwgMC4zNjgzMDUsIDAuNTMzMjY3LCAwLjg2MzA0NiwgMS4wNjkxNiIsIFwKLSAgICAgICAgICAiMC4wODkwNzcsIDAuMTEzOTg0LCAwLjI1NDQwNiwgMC4zNzgxMTcsIDAuNTQzMDc5LCAwLjg3Mjg2NiwgMS4wNzg5OCIsIFwKLSAgICAgICAgICAiMC4xMDEyMDIsIDAuMTI2MSwgMC4yNjY1NDYsIDAuMzkwMjY5LCAwLjU1NTIwNywgMC44ODUwMTIsIDEuMDkxMiIsIFwKLSAgICAgICAgICAiMC4xMTI0ODUsIDAuMTM3Mzk3LCAwLjI3Nzg0OSwgMC40MDE1NjcsIDAuNTY2NTA5LCAwLjg5NjMxNywgMS4xMDI1IiwgXAotICAgICAgICAgICIwLjEyMjc3OSwgMC4xNDc2NzksIDAuMjg4MTQ5LCAwLjQxMTg2LCAwLjU3Njc4MywgMC45MDY2MzYsIDEuMTEyNzMiLCBcCi0gICAgICAgICAgIjAuMTM2MzQ4LCAwLjE2MTIzMiwgMC4zMDE2NzIsIDAuNDI1NDEzLCAwLjU5MDM4MywgMC45MjAxNzUsIDEuMTI2MjkiLCBcCi0gICAgICAgICAgIjAuMTQ2NjA5LCAwLjE3MTY0OCwgMC4zMTIwODgsIDAuNDM1ODM1LCAwLjYwMDc1NywgMC45MzA1OTYsIDEuMTM2NzkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDkxNTU4LCAwLjE0MDYxNSwgMC40MjIyNSwgMC42NzE2OTIsIDEuMDAzODIsIDEuNjY5NDEsIDIuMDg1MzkiLCBcCi0gICAgICAgICAgIjAuMDkxNTM1LCAwLjE0MDU3NCwgMC40MjIyNTQsIDAuNjcxNjY2LCAxLjAwMjY2LCAxLjY2OTQxLCAyLjA4NTMxIiwgXAotICAgICAgICAgICIwLjA5MTYwMiwgMC4xNDA2NjcsIDAuNDIyMjgzLCAwLjY3MTIwOSwgMS4wMDMzOCwgMS42Njk1MywgMi4wODQ3MSIsIFwKLSAgICAgICAgICAiMC4wOTE4ODEsIDAuMTQwNzU1LCAwLjQyMjI3NSwgMC42NzE3NTgsIDEuMDAzMzksIDEuNjY5NjIsIDIuMDgwNzgiLCBcCi0gICAgICAgICAgIjAuMDkyMzQ4LCAwLjE0MTE4NSwgMC40MjE2ODksIDAuNjcxNTc2LCAxLjAwNDI3LCAxLjY2OTA1LCAyLjA4NTI0IiwgXAotICAgICAgICAgICIwLjA5MzE1MSwgMC4xNDE1MzEsIDAuNDIxOTE5LCAwLjY3MTIxLCAxLjAwMzcyLCAxLjY2OTM1LCAyLjA4NTM4IiwgXAotICAgICAgICAgICIwLjA5NDA2NywgMC4xNDIwNTgsIDAuNDIyMzkzLCAwLjY3MTA1OSwgMS4wMDQxNiwgMS42NjkxOSwgMi4wODQyMyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNDA4NzcsIDAuMTY3NjQxLCAwLjMwODE2NCwgMC40MzA4NjksIDAuNTk0NDcsIDAuOTIxODg5LCAxLjEyNjI5IiwgXAotICAgICAgICAgICIwLjE0ODgzNSwgMC4xNzUxODksIDAuMzE1NzUsIDAuNDM4NDQ5LCAwLjYwMjA1NywgMC45Mjk0MTMsIDEuMTMzOSIsIFwKLSAgICAgICAgICAiMC4xNTg3NTUsIDAuMTg1NDMyLCAwLjMyNTk4OCwgMC40NDg3NDIsIDAuNjEyMzE1LCAwLjkzOTcwNSwgMS4xNDQxMyIsIFwKLSAgICAgICAgICAiMC4xNjg5MjIsIDAuMTk1NTk5LCAwLjMzNjEyMSwgMC40NTg4NDEsIDAuNjIyNTk3LCAwLjk0OTcwOSwgMS4xNTQ4IiwgXAotICAgICAgICAgICIwLjE3ODk1NiwgMC4yMDU0MTYsIDAuMzQ1OTI2LCAwLjQ2ODYzMiwgMC42MzIyNzMsIDAuOTU5Nzg0LCAxLjE2NDEiLCBcCi0gICAgICAgICAgIjAuMTk0Mjg1LCAwLjIyMTAwMiwgMC4zNjE2NjYsIDAuNDg0Mzc3LCAwLjY0Nzk5OSwgMC45NzU3MzIsIDEuMTc5ODIiLCBcCi0gICAgICAgICAgIjAuMjA2ODAzLCAwLjIzMzYxMSwgMC4zNzQyMTQsIDAuNDk2OTIzLCAwLjY2MDUxMSwgMC45ODgyMzMsIDEuMTkyMzEiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTA4NTIzLCAwLjE1NTc4OSwgMC40MzMxNzUsIDAuNjgzMTM5LCAxLjAxOTI1LCAxLjY5MjU2LCAyLjExMTk2IiwgXAotICAgICAgICAgICIwLjEwODE5MSwgMC4xNTU4MzEsIDAuNDMyNjU1LCAwLjY4NDE1NSwgMS4wMTkzNSwgMS42OTI0NSwgMi4xMTE5NiIsIFwKLSAgICAgICAgICAiMC4xMDgwOTIsIDAuMTU1Mzg1LCAwLjQzMzM1MiwgMC42ODMxMDgsIDEuMDE5MjMsIDEuNjkyNDcsIDIuMTExOTUiLCBcCi0gICAgICAgICAgIjAuMTA3OTQsIDAuMTU1MzY2LCAwLjQzMzI4MywgMC42ODQyMjMsIDEuMDE4NjQsIDEuNjkzODksIDIuMTEyNDYiLCBcCi0gICAgICAgICAgIjAuMTA3OTQ1LCAwLjE1NTUxMSwgMC40MzM2NTEsIDAuNjg0MjY0LCAxLjAxOTE4LCAxLjY5MjA3LCAyLjExMTk1IiwgXAotICAgICAgICAgICIwLjEwODgwOSwgMC4xNTYwNDYsIDAuNDMzMTkyLCAwLjY4NDI0NiwgMS4wMTkzNCwgMS42OTE4MywgMi4xMTUxNyIsIFwKLSAgICAgICAgICAiMC4xMDk5MzEsIDAuMTU2Nzg3LCAwLjQzMzk3NiwgMC42ODQzNiwgMS4wMjA0NywgMS42OTE4NCwgMi4xMTYyMSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzc0MTIsIDAuMTAyMjQsIDAuMjQyNTQyLCAwLjM2NjIxOSwgMC41MzExMjcsIDAuODYwOTEsIDEuMDY3MDIiLCBcCi0gICAgICAgICAgIjAuMDg3Mzk3LCAwLjExMjIzOCwgMC4yNTI1NDYsIDAuMzc2MjMsIDAuNTQxMTQsIDAuODcwOTIzLCAxLjA3NzIiLCBcCi0gICAgICAgICAgIjAuMDk5Mzk2LCAwLjEyNDI1MSwgMC4yNjQ1OTUsIDAuMzg4Mjg2LCAwLjU1MzE5MywgMC44ODMwNCwgMS4wODkwOSIsIFwKLSAgICAgICAgICAiMC4xMTAzNjksIDAuMTM1MjM4LCAwLjI3NTU5MiwgMC4zOTkyNjYsIDAuNTY0MjI5LCAwLjg5Mzk2OCwgMS4xMDAwOCIsIFwKLSAgICAgICAgICAiMC4xMjAyNSwgMC4xNDUxMDMsIDAuMjg1NDQyLCAwLjQwOTEzNywgMC41NzQwNTYsIDAuOTAzODMzLCAxLjEwOTk0IiwgXAotICAgICAgICAgICIwLjEzMzMyNCwgMC4xNTgyOTEsIDAuMjk4NTg4LCAwLjQyMjMzNSwgMC41ODcxODgsIDAuOTE3MDE1LCAxLjEyMzE2IiwgXAotICAgICAgICAgICIwLjE0MzMzNiwgMC4xNjgyOTUsIDAuMzA4NjIsIDAuNDMyMzM4LCAwLjU5NzIsIDAuOTI3MDM0LCAxLjEzMzE0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5MTI5NywgMC4xNDAzNDksIDAuNDIyMjI5LCAwLjY3MTM1MSwgMS4wMDI3NSwgMS42NjY3MiwgMi4wODM2NiIsIFwKLSAgICAgICAgICAiMC4wOTEzMTIsIDAuMTQwMjYzLCAwLjQyMjI1NSwgMC42NzEyMTgsIDEuMDAyNzksIDEuNjY5NjEsIDIuMDgwNjYiLCBcCi0gICAgICAgICAgIjAuMDkxMzc2LCAwLjE0MDQzMiwgMC40MjEzLCAwLjY3MTI2MywgMS4wMDI2MiwgMS42NjcsIDIuMDg0NiIsIFwKLSAgICAgICAgICAiMC4wOTE2OTcsIDAuMTQwNDE1LCAwLjQyMjE1OCwgMC42NzE3MzcsIDEuMDA0MTksIDEuNjY4ODcsIDIuMDgyOTIiLCBcCi0gICAgICAgICAgIjAuMDkyMjA0LCAwLjE0MDkxNCwgMC40MjEzOTMsIDAuNjcxNzUzLCAxLjAwMjkyLCAxLjY2ODc4LCAyLjA4NDI1IiwgXAotICAgICAgICAgICIwLjA5MzEzMSwgMC4xNDE0NywgMC40MjIwODYsIDAuNjcwNzM2LCAxLjAwNDM2LCAxLjY2OTYsIDIuMDgxOTEiLCBcCi0gICAgICAgICAgIjAuMDkzOTg0LCAwLjE0MTgyNiwgMC40MjIwMjksIDAuNjcwNjM5LCAxLjAwMjcsIDEuNjY5NzQsIDIuMDg1NjMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTM0MzE0LCAwLjE2MDY0OSwgMC4zMDEyMzIsIDAuNDIzOTQ5LCAwLjU4NzU0NiwgMC45MTQ4ODYsIDEuMTE5NDIiLCBcCi0gICAgICAgICAgIjAuMTQxNzE4LCAwLjE2ODQyMywgMC4zMDkwMTksIDAuNDMxNzM3LCAwLjU5NTMzOCwgMC45MjI2ODgsIDEuMTI3MTgiLCBcCi0gICAgICAgICAgIjAuMTUyMSwgMC4xNzg3OTksIDAuMzE5MzYxLCAwLjQ0MjA5NSwgMC42MDU2OTcsIDAuOTMzMTQ0LCAxLjEzNzUyIiwgXAotICAgICAgICAgICIwLjE2MjY2NCwgMC4xODkzNjksIDAuMzI5ODk1LCAwLjQ1MjYsIDAuNjE2MjU1LCAwLjk0MzkyMSwgMS4xNDgiLCBcCi0gICAgICAgICAgIjAuMTczMjM5LCAwLjE5OTg3MSwgMC4zNDA0MjUsIDAuNDYzMTUyLCAwLjYyNjczOCwgMC45NTQ0MzMsIDEuMTU4NTUiLCBcCi0gICAgICAgICAgIjAuMTkwMTY4LCAwLjIxNjkzNCwgMC4zNTczLCAwLjQ4MDAyMSwgMC42NDM2MjEsIDAuOTcxMjg3LCAxLjE3NTQxIiwgXAotICAgICAgICAgICIwLjIwMzIyLCAwLjIzMDE2NSwgMC4zNzA3NTMsIDAuNDkzNDYsIDAuNjU3MDY4LCAwLjk4NDI2NSwgMS4xODk1MyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDgxMzksIDAuMTU1ODIsIDAuNDMyNjYxLCAwLjY4NDMzNywgMS4wMTkzNiwgMS42OTI2LCAyLjExMTk1IiwgXAotICAgICAgICAgICIwLjEwODEwNCwgMC4xNTU0NjEsIDAuNDMyNjk3LCAwLjY4NDMwNiwgMS4wMTkzOSwgMS42OTI0NSwgMi4xMTE5NiIsIFwKLSAgICAgICAgICAiMC4xMDc5NiwgMC4xNTUzNiwgMC40MzMwMDMsIDAuNjg0NTIzLCAxLjAxOTE5LCAxLjY5MTUxLCAyLjExMTk1IiwgXAotICAgICAgICAgICIwLjEwNzg5NSwgMC4xNTUyODQsIDAuNDMyOTk5LCAwLjY4NDEwNywgMS4wMTkyMiwgMS42OTE2MSwgMi4xMTY1NSIsIFwKLSAgICAgICAgICAiMC4xMDgzMDEsIDAuMTU1NjQyLCAwLjQzMzA1OSwgMC42ODQyNiwgMS4wMjA0MiwgMS42OTE2MywgMi4xMTY1NyIsIFwKLSAgICAgICAgICAiMC4xMDg3MywgMC4xNTYwMDEsIDAuNDMzNDM2LCAwLjY4NDIzLCAxLjAyMDQ3LCAxLjY5MTYyLCAyLjExNjE5IiwgXAotICAgICAgICAgICIwLjExMDIwMywgMC4xNTY4NSwgMC40MzQwMzgsIDAuNjg0MzY4LCAxLjAyMDU0LCAxLjY5NDUyLCAyLjExMjQ4Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3NTQ3NCwgMC4xMDAyOTksIDAuMjQwNTM4LCAwLjM2NDE5NCwgMC41MjkxMjMsIDAuODU4OTM0LCAxLjA2NTI0IiwgXAotICAgICAgICAgICIwLjA4NTQ0MywgMC4xMTAyNjUsIDAuMjUwNTQ0LCAwLjM3NDIyOCwgMC41MzkzNDUsIDAuODY5MzI4LCAxLjA3NTI0IiwgXAotICAgICAgICAgICIwLjA5NzM2OCwgMC4xMjIxODMsIDAuMjYyNDQ0LCAwLjM4NjE3OCwgMC41NTEyNjIsIDAuODgxNzY0LCAxLjA4NzIiLCBcCi0gICAgICAgICAgIjAuMTA4MDgsIDAuMTMyODE2LCAwLjI3MzA4OCwgMC4zOTY4MywgMC41NjE4MTQsIDAuODkxNzU1LCAxLjA5NzgiLCBcCi0gICAgICAgICAgIjAuMTE2Njg0LCAwLjE0MTYxNSwgMC4yODE5MDksIDAuNDA1NjIzLCAwLjU3MDgyLCAwLjkwMTIwNiwgMS4xMDY2NCIsIFwKLSAgICAgICAgICAiMC4xMzAwOSwgMC4xNTQ4MzUsIDAuMjk1MDA0LCAwLjQxODY5NywgMC41ODM3NjMsIDAuOTEzNjE0LCAxLjExOTc2IiwgXAotICAgICAgICAgICIwLjEzOTM1NCwgMC4xNjQyNzgsIDAuMzAzNjEzLCAwLjQyNzMzMywgMC41OTIzMTgsIDAuOTIyNDAzLCAxLjEyODY0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5MTA3NCwgMC4xNDAzMSwgMC40MjEwMzksIDAuNjcxODYsIDEuMDAzODEsIDEuNjY2NzksIDIuMDc5NDciLCBcCi0gICAgICAgICAgIjAuMDkxMTA2LCAwLjE0MDMyMSwgMC40MjExOTMsIDAuNjcxNjI4LCAxLjAwMjAxLCAxLjY2NzcsIDIuMDc5NzciLCBcCi0gICAgICAgICAgIjAuMDkxMTkzLCAwLjE0MDM4NCwgMC40MjIzMjYsIDAuNjcxNzAzLCAxLjAwMjE2LCAxLjY2NjI4LCAyLjA3OTYiLCBcCi0gICAgICAgICAgIjAuMDkxNzMyLCAwLjE0MDU4OCwgMC40MjIzNTksIDAuNjcxNjQsIDEuMDAxMzYsIDEuNjY5NTgsIDIuMDc5ODMiLCBcCi0gICAgICAgICAgIjAuMDkyNDczLCAwLjE0MDc5OSwgMC40MjExMDEsIDAuNjY5OTMzLCAxLjAwMTc1LCAxLjY2NjEsIDIuMDc5NTkiLCBcCi0gICAgICAgICAgIjAuMDkzMjE2LCAwLjE0MTUzMSwgMC40MjI1NzcsIDAuNjcxODg5LCAxLjAwMjksIDEuNjY0NzIsIDIuMDg1MDYiLCBcCi0gICAgICAgICAgIjAuMDk0MTM4LCAwLjE0MTk1LCAwLjQyMjQ4MSwgMC42NzE5MzYsIDEuMDAxNjksIDEuNjY1OTksIDIuMDgwNzMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDE3NjUsIDAuMDAxNzY1LCAwLjAwMTc2MywgMC4wMDE3NiwgMC4wMDE3NTksIDAuMDAxNzU5LCAwLjAwMTc1OSIsIFwKLSAgICAgICAgICAiMC4wMDE3NCwgMC4wMDE3NCwgMC4wMDE3MzgsIDAuMDAxNzM3LCAwLjAwMTczNSwgMC4wMDE3MzUsIDAuMDAxNzM1IiwgXAotICAgICAgICAgICIwLjAwMTcyNCwgMC4wMDE3MjcsIDAuMDAxNzI1LCAwLjAwMTcyNiwgMC4wMDE3MjUsIDAuMDAxNzIzLCAwLjAwMTcyMyIsIFwKLSAgICAgICAgICAiMC4wMDE3MTYsIDAuMDAxNzIsIDAuMDAxNzIsIDAuMDAxNzIsIDAuMDAxNzE5LCAwLjAwMTcxOCwgMC4wMDE3MTgiLCBcCi0gICAgICAgICAgIjAuMDAxNzE1LCAwLjAwMTcxOCwgMC4wMDE3MTgsIDAuMDAxNzE4LCAwLjAwMTcxNiwgMC4wMDE3MTYsIDAuMDAxNzE1IiwgXAotICAgICAgICAgICIwLjAwMTcxLCAwLjAwMTcxNCwgMC4wMDE3MTcsIDAuMDAxNzE1LCAwLjAwMTcxNSwgMC4wMDE3MTQsIDAuMDAxNzE0IiwgXAotICAgICAgICAgICIwLjAwMTcxMSwgMC4wMDE3MTUsIDAuMDAxNzE3LCAwLjAwMTcxNiwgMC4wMDE3MTUsIDAuMDAxNzE0LCAwLjAwMTcxNCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzQyLCAwLjAwMzQyNiwgMC4wMDM0MzQsIDAuMDAzNDM1LCAwLjAwMzQzNywgMC4wMDM0MzcsIDAuMDAzNDM3IiwgXAotICAgICAgICAgICIwLjAwMzQwNCwgMC4wMDM0MTEsIDAuMDAzNDIsIDAuMDAzNDIyLCAwLjAwMzQyMywgMC4wMDM0MjQsIDAuMDAzNDI0IiwgXAotICAgICAgICAgICIwLjAwMzM5OCwgMC4wMDM0MDYsIDAuMDAzNDE4LCAwLjAwMzQyLCAwLjAwMzQyMiwgMC4wMDM0MjMsIDAuMDAzNDIzIiwgXAotICAgICAgICAgICIwLjAwMzM5MywgMC4wMDM0MDUsIDAuMDAzNDE5LCAwLjAwMzQyMiwgMC4wMDM0MjQsIDAuMDAzNDI2LCAwLjAwMzQyNiIsIFwKLSAgICAgICAgICAiMC4wMDMzOTYsIDAuMDAzNDA2LCAwLjAwMzQyMiwgMC4wMDM0MjUsIDAuMDAzNDI4LCAwLjAwMzQyOSwgMC4wMDM0MyIsIFwKLSAgICAgICAgICAiMC4wMDM0MDcsIDAuMDAzNDE3LCAwLjAwMzQzMywgMC4wMDM0MzgsIDAuMDAzNDQsIDAuMDAzNDQzLCAwLjAwMzQ0MyIsIFwKLSAgICAgICAgICAiMC4wMDM0MjEsIDAuMDAzNDMsIDAuMDAzNDQ4LCAwLjAwMzQ1MywgMC4wMDM0NTUsIDAuMDAzNDU3LCAwLjAwMzQ1OCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTc2OCwgMC4wMDE3NjksIDAuMDAxNzY5LCAwLjAwMTc3MSwgMC4wMDE3NzQsIDAuMDAxNzczLCAwLjAwMTc3MSIsIFwKLSAgICAgICAgICAiMC4wMDE3NDEsIDAuMDAxNzQzLCAwLjAwMTc0NSwgMC4wMDE3NDcsIDAuMDAxNzQ3LCAwLjAwMTc0OCwgMC4wMDE3NDciLCBcCi0gICAgICAgICAgIjAuMDAxNzI1LCAwLjAwMTczLCAwLjAwMTczNCwgMC4wMDE3MzUsIDAuMDAxNzM2LCAwLjAwMTczNSwgMC4wMDE3MzUiLCBcCi0gICAgICAgICAgIjAuMDAxNzE4LCAwLjAwMTcyMywgMC4wMDE3MjgsIDAuMDAxNzI5LCAwLjAwMTcyOSwgMC4wMDE3MjksIDAuMDAxNzMiLCBcCi0gICAgICAgICAgIjAuMDAxNzE3LCAwLjAwMTcyMSwgMC4wMDE3MjYsIDAuMDAxNzI3LCAwLjAwMTcyNywgMC4wMDE3MjcsIDAuMDAxNzI3IiwgXAotICAgICAgICAgICIwLjAwMTcxMywgMC4wMDE3MTgsIDAuMDAxNzI1LCAwLjAwMTcyNSwgMC4wMDE3MjUsIDAuMDAxNzI2LCAwLjAwMTcyNiIsIFwKLSAgICAgICAgICAiMC4wMDE3MTQsIDAuMDAxNzE5LCAwLjAwMTcyNiwgMC4wMDE3MjYsIDAuMDAxNzI3LCAwLjAwMTcyNywgMC4wMDE3MjgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDMxNzQsIDAuMDAzMTgyLCAwLjAwMzE5NCwgMC4wMDMxOTYsIDAuMDAzMTk3LCAwLjAwMzE5OCwgMC4wMDMxOTkiLCBcCi0gICAgICAgICAgIjAuMDAzMTU2LCAwLjAwMzE2NiwgMC4wMDMxOCwgMC4wMDMxODMsIDAuMDAzMTg1LCAwLjAwMzE4NiwgMC4wMDMxODYiLCBcCi0gICAgICAgICAgIjAuMDAzMTQ1LCAwLjAwMzE1NywgMC4wMDMxNzYsIDAuMDAzMTc5LCAwLjAwMzE4MiwgMC4wMDMxODQsIDAuMDAzMTg0IiwgXAotICAgICAgICAgICIwLjAwMzE0MSwgMC4wMDMxNTMsIDAuMDAzMTc1LCAwLjAwMzE4LCAwLjAwMzE4MywgMC4wMDMxODUsIDAuMDAzMTg2IiwgXAotICAgICAgICAgICIwLjAwMzEzMSwgMC4wMDMxNDQsIDAuMDAzMTY4LCAwLjAwMzE3MywgMC4wMDMxNzYsIDAuMDAzMTc5LCAwLjAwMzE4IiwgXAotICAgICAgICAgICIwLjAwMzEzNSwgMC4wMDMxNDksIDAuMDAzMTc1LCAwLjAwMzE4MiwgMC4wMDMxODYsIDAuMDAzMTg5LCAwLjAwMzE5IiwgXAotICAgICAgICAgICIwLjAwMzE0NSwgMC4wMDMxNTgsIDAuMDAzMTg2LCAwLjAwMzE5MywgMC4wMDMxOTgsIDAuMDAzMjAxLCAwLjAwMzIwMiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTc3LCAwLjAwMTc3NSwgMC4wMDE3OCwgMC4wMDE3ODIsIDAuMDAxNzgxLCAwLjAwMTc4MiwgMC4wMDE3ODIiLCBcCi0gICAgICAgICAgIjAuMDAxNzQzLCAwLjAwMTc0NiwgMC4wMDE3NTQsIDAuMDAxNzU1LCAwLjAwMTc1OCwgMC4wMDE3NTgsIDAuMDAxNzU3IiwgXAotICAgICAgICAgICIwLjAwMTcyNywgMC4wMDE3MzIsIDAuMDAxNzQxLCAwLjAwMTc0NCwgMC4wMDE3NDQsIDAuMDAxNzQ1LCAwLjAwMTc0NSIsIFwKLSAgICAgICAgICAiMC4wMDE3MjEsIDAuMDAxNzI3LCAwLjAwMTczNywgMC4wMDE3MzgsIDAuMDAxNzQsIDAuMDAxNzQsIDAuMDAxNzQxIiwgXAotICAgICAgICAgICIwLjAwMTcxOCwgMC4wMDE3MjUsIDAuMDAxNzM1LCAwLjAwMTczNywgMC4wMDE3MzcsIDAuMDAxNzM4LCAwLjAwMTczOCIsIFwKLSAgICAgICAgICAiMC4wMDE3MjQsIDAuMDAxNzI4LCAwLjAwMTczNSwgMC4wMDE3MzYsIDAuMDAxNzM4LCAwLjAwMTczOSwgMC4wMDE3MzkiLCBcCi0gICAgICAgICAgIjAuMDAxNzM0LCAwLjAwMTczNiwgMC4wMDE3NDMsIDAuMDAxNzQ0LCAwLjAwMTc0NSwgMC4wMDE3NDYsIDAuMDAxNzQ2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyOTAyLCAwLjAwMjkxLCAwLjAwMjkyMSwgMC4wMDI5MjMsIDAuMDAyOTI0LCAwLjAwMjkyNSwgMC4wMDI5MjUiLCBcCi0gICAgICAgICAgIjAuMDAyODg5LCAwLjAwMjg5OCwgMC4wMDI5MTEsIDAuMDAyOTEzLCAwLjAwMjkxNSwgMC4wMDI5MTYsIDAuMDAyOTE2IiwgXAotICAgICAgICAgICIwLjAwMjg3NSwgMC4wMDI4ODcsIDAuMDAyOTA1LCAwLjAwMjkwOSwgMC4wMDI5MTEsIDAuMDAyOTEzLCAwLjAwMjkxMyIsIFwKLSAgICAgICAgICAiMC4wMDI4NywgMC4wMDI4ODMsIDAuMDAyOTA0LCAwLjAwMjkwOSwgMC4wMDI5MTIsIDAuMDAyOTE0LCAwLjAwMjkxNSIsIFwKLSAgICAgICAgICAiMC4wMDI4NiwgMC4wMDI4NzIsIDAuMDAyODk2LCAwLjAwMjkwMiwgMC4wMDI5MDUsIDAuMDAyOTA3LCAwLjAwMjkwOCIsIFwKLSAgICAgICAgICAiMC4wMDI4NjEsIDAuMDAyODc0LCAwLjAwMjkwNCwgMC4wMDI5MDYsIDAuMDAyOTEzLCAwLjAwMjkxNiwgMC4wMDI5MTciLCBcCi0gICAgICAgICAgIjAuMDAyODczLCAwLjAwMjg4NiwgMC4wMDI5MTEsIDAuMDAyOTIxLCAwLjAwMjkyMiwgMC4wMDI5MjgsIDAuMDAyOTI3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxNzY3LCAwLjAwMTc3MiwgMC4wMDE3ODQsIDAuMDAxNzg1LCAwLjAwMTc5MSwgMC4wMDE3ODksIDAuMDAxNzkiLCBcCi0gICAgICAgICAgIjAuMDAxNzM5LCAwLjAwMTc0NiwgMC4wMDE3NTgsIDAuMDAxNzYxLCAwLjAwMTc2NSwgMC4wMDE3NjYsIDAuMDAxNzY0IiwgXAotICAgICAgICAgICIwLjAwMTcyOSwgMC4wMDE3MzYsIDAuMDAxNzQ5LCAwLjAwMTc1MiwgMC4wMDE3NTQsIDAuMDAxNzU2LCAwLjAwMTc1NiIsIFwKLSAgICAgICAgICAiMC4wMDE3MzEsIDAuMDAxNzM5LCAwLjAwMTc1MiwgMC4wMDE3NTQsIDAuMDAxNzU2LCAwLjAwMTc1OCwgMC4wMDE3NTgiLCBcCi0gICAgICAgICAgIjAuMDAxNzQsIDAuMDAxNzQ3LCAwLjAwMTc1OSwgMC4wMDE3NjIsIDAuMDAxNzY1LCAwLjAwMTc2NiwgMC4wMDE3NjciLCBcCi0gICAgICAgICAgIjAuMDAxNzY4LCAwLjAwMTc3LCAwLjAwMTc3OSwgMC4wMDE3ODIsIDAuMDAxNzg0LCAwLjAwMTc4NSwgMC4wMDE3ODUiLCBcCi0gICAgICAgICAgIjAuMDAxNzg1LCAwLjAwMTc4NywgMC4wMDE3OTUsIDAuMDAxNzk3LCAwLjAwMTgsIDAuMDAxODAxLCAwLjAwMTgwMiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjY0NSwgMC4wMDI2NTIsIDAuMDAyNjYyLCAwLjAwMjY2NCwgMC4wMDI2NjUsIDAuMDAyNjY1LCAwLjAwMjY2NiIsIFwKLSAgICAgICAgICAiMC4wMDI2MywgMC4wMDI2MzksIDAuMDAyNjUxLCAwLjAwMjY1MywgMC4wMDI2NTUsIDAuMDAyNjU2LCAwLjAwMjY1NiIsIFwKLSAgICAgICAgICAiMC4wMDI2MTgsIDAuMDAyNjI4LCAwLjAwMjY0NCwgMC4wMDI2NDcsIDAuMDAyNjQ4LCAwLjAwMjY1LCAwLjAwMjY1IiwgXAotICAgICAgICAgICIwLjAwMjYwOCwgMC4wMDI2MTgsIDAuMDAyNjQsIDAuMDAyNjQ0LCAwLjAwMjY0NiwgMC4wMDI2NDgsIDAuMDAyNjQ5IiwgXAotICAgICAgICAgICIwLjAwMjYwNiwgMC4wMDI2MTksIDAuMDAyNjQyLCAwLjAwMjY0NywgMC4wMDI2NSwgMC4wMDI2NTIsIDAuMDAyNjUzIiwgXAotICAgICAgICAgICIwLjAwMjYwOCwgMC4wMDI2MiwgMC4wMDI2NDMsIDAuMDAyNjQ5LCAwLjAwMjY1MiwgMC4wMDI2NTUsIDAuMDAyNjU2IiwgXAotICAgICAgICAgICIwLjAwMjYxNCwgMC4wMDI2MjcsIDAuMDAyNjUyLCAwLjAwMjY1OSwgMC4wMDI2NjMsIDAuMDAyNjY2LCAwLjAwMjY2OCIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogQU5ENFg0ICoKLSAqIC0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoQU5ENFg0KSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMjg1OTI5OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA5MDMzODc7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwOTAzMzg3OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDkwMDU5NDsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA0MDksIDAuMDAwNDA5LCAwLjAwMDQwOSwgMC4wMDA0MDksIDAuMDAwNDA5LCAwLjAwMDQwOSwgMC4wMDA0MDkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA0MSwgMC4wMDA0MSwgMC4wMDA0MSwgMC4wMDA0MSwgMC4wMDA0MSwgMC4wMDA0MSwgMC4wMDA0MSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwOTQ0ODk1OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDk0NDg5NTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA5NDIzOTE7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNDA5LCAwLjAwMDQwOSwgMC4wMDA0MDksIDAuMDAwNDA5LCAwLjAwMDQwOSwgMC4wMDA0MDksIDAuMDAwNDA5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNDA5LCAwLjAwMDQxLCAwLjAwMDQxLCAwLjAwMDQxLCAwLjAwMDQxLCAwLjAwMDQxLCAwLjAwMDQxIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihDKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA5NDUyNTE7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwOTQ1MjUxOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDk0MzIzMzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA0MDksIDAuMDAwNDA5LCAwLjAwMDQwOSwgMC4wMDA0MDksIDAuMDAwNDA5LCAwLjAwMDQwOSwgMC4wMDA0MDgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA0MSwgMC4wMDA0MSwgMC4wMDA0MSwgMC4wMDA0MSwgMC4wMDA0MSwgMC4wMDA0MSwgMC4wMDA0MSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwOTI0MjA5OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDkyMzU2MzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA5MjQyMDk7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjkzLCAwLjAwMDI5MywgMC4wMDAyOTMsIDAuMDAwMjkzLCAwLjAwMDI5MywgMC4wMDAyOTMsIDAuMDAwMjkzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNDY0LCAwLjAwMDQ2NSwgMC4wMDA0NjUsIDAuMDAwNDY1LCAwLjAwMDQ2NSwgMC4wMDA0NjQsIDAuMDAwNDY0Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDEuMDM0OwotICAgIGZ1bmN0aW9uIDogIigoKEEgQikgQykgRCkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTMwMTEzLCAwLjIyMDA1MSwgMC4yOTM1NjYsIDAuMzQ1Mzg1LCAwLjQyODAwNywgMC41MDAyMDcsIDAuNjAzMzYiLCBcCi0gICAgICAgICAgIjAuMTM3OTExLCAwLjIyNzQ5LCAwLjMwMTUwMywgMC4zNTMzNTIsIDAuNDM1OTQsIDAuNTA4MTUyLCAwLjYxMTI4IiwgXAotICAgICAgICAgICIwLjE0NjM1NywgMC4yMzYwMzMsIDAuMzEwMTE1LCAwLjM2MjAwMiwgMC40NDQ1NzYsIDAuNTE2ODA0LCAwLjYxOTkzMiIsIFwKLSAgICAgICAgICAiMC4xNTQyMDMsIDAuMjQ0MjM0LCAwLjMxODI3OSwgMC4zNzAxNDQsIDAuNDUyNzIzLCAwLjUyNDkyMywgMC42MjgxNDEiLCBcCi0gICAgICAgICAgIjAuMTYyMDc0LCAwLjI1MjA0OCwgMC4zMjYwNjIsIDAuMzc3ODk1LCAwLjQ2MDQ3NiwgMC41MzI3MDYsIDAuNjM1ODM1IiwgXAotICAgICAgICAgICIwLjE3NDE0OSwgMC4yNjM5MjUsIDAuMzM3OTIxLCAwLjM4OTc0MSwgMC40NzIzNjMsIDAuNTQ0NTQ4LCAwLjY0NzY4IiwgXAotICAgICAgICAgICIwLjE4NDM1LCAwLjI3NDQzLCAwLjM0ODQzMSwgMC40MDAyODQsIDAuNDgyODc1LCAwLjU1NTExNiwgMC42NTgyNTEiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTYxMjcsIDAuMTk3NDcyLCAwLjM0MDMyMSwgMC40NDM3OTksIDAuNjExMjM4LCAwLjc1OTI4OCwgMC45NjkzMDQiLCBcCi0gICAgICAgICAgIjAuMDU2MDI0LCAwLjE5Nzk0LCAwLjM0MDI0NiwgMC40NDM2OSwgMC42MTEwNywgMC43NTkyNjYsIDAuOTcwOTY4IiwgXAotICAgICAgICAgICIwLjA1NTczMiwgMC4xOTc1NjMsIDAuMzQwMDExLCAwLjQ0MzQsIDAuNjExNTYsIDAuNzU5MjAzLCAwLjk3MDk0NiIsIFwKLSAgICAgICAgICAiMC4wNTU4MjIsIDAuMTk3MjM1LCAwLjMzOTkxOCwgMC40NDM1NTgsIDAuNjExMTIzLCAwLjc1OTE5LCAwLjk3MTQxIiwgXAotICAgICAgICAgICIwLjA1NTYwOSwgMC4xOTcxNjcsIDAuMzM5ODU3LCAwLjQ0MzUsIDAuNjExMDQ3LCAwLjc1OTA2MywgMC45NzA5MjYiLCBcCi0gICAgICAgICAgIjAuMDU2MDUxLCAwLjE5NzMzNCwgMC4zMzk4NjYsIDAuNDQzNTkyLCAwLjYxMTY1OCwgMC43NTkxNjMsIDAuOTcwODU2IiwgXAotICAgICAgICAgICIwLjA1NjUzMiwgMC4xOTc2MTQsIDAuMzQwMDc1LCAwLjQ0MzYzNywgMC42MTExMzMsIDAuNzU5MDk1LCAwLjk3MDg3Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU1MzA3LCAwLjEzMTMyOCwgMC4yMDQ5MDYsIDAuMjU3NDIxLCAwLjM0MTMyNywgMC40MTQ3MjUsIDAuNTE5NTY5IiwgXAotICAgICAgICAgICIwLjA2NTI1MywgMC4xNDEyNSwgMC4yMTQ4MjcsIDAuMjY3MzI4LCAwLjM1MTI1MywgMC40MjQ2NTcsIDAuNTI5NTAyIiwgXAotICAgICAgICAgICIwLjA3NzgxMiwgMC4xNTM4MTIsIDAuMjI3NDA1LCAwLjI3OTkyNSwgMC4zNjM4MzcsIDAuNDM3MjM3LCAwLjU0MjA4MyIsIFwKLSAgICAgICAgICAiMC4wOTAwMzYsIDAuMTY2MDczLCAwLjIzOTY1LCAwLjI5MjE2NSwgMC4zNzYwOTcsIDAuNDQ5NDk3LCAwLjU1NDM0OCIsIFwKLSAgICAgICAgICAiMC4xMDEyNTgsIDAuMTc3Mzc3LCAwLjI1MDk0NywgMC4zMDM0NTEsIDAuMzg3Mzg0LCAwLjQ2MDgxNCwgMC41NjU2ODEiLCBcCi0gICAgICAgICAgIjAuMTE2Nzc1LCAwLjE5MzMxLCAwLjI2Njg0OSwgMC4zMTkzNDUsIDAuNDAzMjc3LCAwLjQ3NjcsIDAuNTgxNTgyIiwgXAotICAgICAgICAgICIwLjEyODQ3MiwgMC4yMDU1MTYsIDAuMjc4OTU1LCAwLjMzMTQyOSwgMC40MTUzNDcsIDAuNDg4NzcyLCAwLjU5MzYyMyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzNDUwNSwgMC4xNzg1OTMsIDAuMzI2NzEsIDAuNDMxOCwgMC42MDI2MjIsIDAuNzUxNTYyLCAwLjk2NDMiLCBcCi0gICAgICAgICAgIjAuMDM0NTA3LCAwLjE3ODUxNCwgMC4zMjYyMzUsIDAuNDMyMTMzLCAwLjYwMTY4MywgMC43NTE0OTUsIDAuOTY0MzA3IiwgXAotICAgICAgICAgICIwLjAzNDQyNCwgMC4xNzg1NTQsIDAuMzI2MjUxLCAwLjQzMjY4OSwgMC42MDI2MzksIDAuNzUxNTk5LCAwLjk2NDMwOSIsIFwKLSAgICAgICAgICAiMC4wMzQ4ODksIDAuMTc4NTM2LCAwLjMyNjQ4NywgMC40MzIwNTYsIDAuNjAyMTE1LCAwLjc1MDYyNCwgMC45NjMwODkiLCBcCi0gICAgICAgICAgIjAuMDM1ODkyLCAwLjE3ODY3MSwgMC4zMjY3NTEsIDAuNDMyMzgxLCAwLjYwMjcsIDAuNzUxNDU5LCAwLjk2NDA2NyIsIFwKLSAgICAgICAgICAiMC4wMzgxMjMsIDAuMTc5MjA3LCAwLjMyNjg4NiwgMC40MzI4OTcsIDAuNjAyMTMsIDAuNzUxNTE4LCAwLjk2NDA1OCIsIFwKLSAgICAgICAgICAiMC4wMzk3OTIsIDAuMTc5NjM0LCAwLjMyNzEwOSwgMC40MzI5NywgMC42MDI0NTUsIDAuNzUxNTY4LCAwLjk2NDI1NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEyODA3NSwgMC4yMTc4NTgsIDAuMjkxOTQzLCAwLjM0MzgwMiwgMC40MjY0MDIsIDAuNDk4NjI0LCAwLjYwMTc1NiIsIFwKLSAgICAgICAgICAiMC4xMzU3NjMsIDAuMjI1NjI3LCAwLjI5OTc1MSwgMC4zNTE2MjgsIDAuNDM0MjA1LCAwLjUwNjQxNSwgMC42MDk2MzIiLCBcCi0gICAgICAgICAgIjAuMTQ0ODAxLCAwLjIzNDU3MiwgMC4zMDg2MiwgMC4zNjA1MDksIDAuNDQzMDksIDAuNTE1MzE4LCAwLjYxODQ0NyIsIFwKLSAgICAgICAgICAiMC4xNTM1OTYsIDAuMjQzNjQsIDAuMzE3NjczLCAwLjM2OTU4NywgMC40NTIxOCwgMC41MjQzOTgsIDAuNjI3NTQ0IiwgXAotICAgICAgICAgICIwLjE2MjYxNiwgMC4yNTI1ODksIDAuMzI2NTkyLCAwLjM3ODQ2NywgMC40NjEwNTQsIDAuNTMzMzA0LCAwLjYzNjQyNSIsIFwKLSAgICAgICAgICAiMC4xNzY1MjQsIDAuMjY2NTE4LCAwLjM0MDU1MSwgMC4zOTIzNjgsIDAuNDc0OTU5LCAwLjU0NzE3MywgMC42NTAzMjIiLCBcCi0gICAgICAgICAgIjAuMTg4NDMxLCAwLjI3ODUzOSwgMC4zNTI1ODQsIDAuNDA0NDIsIDAuNDg3MDIxLCAwLjU1OTIyNiwgMC42NjI0MDQiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTU4MjcsIDAuMTk3NTkyLCAwLjM0MDAyNCwgMC40NDM2NjMsIDAuNjExNjA5LCAwLjc1OTI0OCwgMC45NzEwNjIiLCBcCi0gICAgICAgICAgIjAuMDU2MDE3LCAwLjE5NzQ0OCwgMC4zNDAwNjIsIDAuNDQzNjM4LCAwLjYxMTU0NiwgMC43NTg0NjQsIDAuOTcxNDQxIiwgXAotICAgICAgICAgICIwLjA1NTcyNCwgMC4xOTczODEsIDAuMzM5OTg2LCAwLjQ0MzYzNiwgMC42MTE1NTMsIDAuNzU5MTk4LCAwLjk3MDk0IiwgXAotICAgICAgICAgICIwLjA1NTg0MSwgMC4xOTcyNjgsIDAuMzM5OTQ2LCAwLjQ0MzU1NywgMC42MTExMjQsIDAuNzU5MTU3LCAwLjk3MTAxMiIsIFwKLSAgICAgICAgICAiMC4wNTU2MTMsIDAuMTk3MTgxLCAwLjMzOTg1NSwgMC40NDM0NjEsIDAuNjExMDc5LCAwLjc1OTI1OSwgMC45NzA5NTIiLCBcCi0gICAgICAgICAgIjAuMDU2ODA3LCAwLjE5NzM4LCAwLjMzOTc3NCwgMC40NDM1NjUsIDAuNjExMTI1LCAwLjc1OTA0NiwgMC45NzA4NjgiLCBcCi0gICAgICAgICAgIjAuMDU3MDk1LCAwLjE5NzgzNiwgMC4zNDAxMjEsIDAuNDQzNzA4LCAwLjYxMTE4OCwgMC43NTkxNTEsIDAuOTY5NTM0Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU0MjMyLCAwLjEzMDA2MiwgMC4yMDM1NCwgMC4yNTYwMDUsIDAuMzM5OTA1LCAwLjQxMzI4OCwgMC41MTgxMTgiLCBcCi0gICAgICAgICAgIjAuMDY0MTkyLCAwLjEzOTk4OSwgMC4yMTM1MSwgMC4yNjU5OTEsIDAuMzQ5ODgsIDAuNDIzMjkzLCAwLjUyODEzOSIsIFwKLSAgICAgICAgICAiMC4wNzY3OTEsIDAuMTUyNjEzLCAwLjIyNjE1NCwgMC4yNzg2NDgsIDAuMzYyNTM0LCAwLjQzNTkxNywgMC41NDA3NTYiLCBcCi0gICAgICAgICAgIjAuMDg4NjkyLCAwLjE2NDU5NywgMC4yMzgxMjIsIDAuMjkwNjI1LCAwLjM3NDUwNiwgMC40NDc5MDksIDAuNTUyNzU5IiwgXAotICAgICAgICAgICIwLjA5OTY0MiwgMC4xNzU2MzQsIDAuMjQ5MTcxLCAwLjMwMTY1NCwgMC4zODU1ODUsIDAuNDU4OTYsIDAuNTYzODY2IiwgXAotICAgICAgICAgICIwLjExNTE1MiwgMC4xOTE2OTcsIDAuMjY1MTk5LCAwLjMxNzY0MSwgMC40MDE1ODEsIDAuNDc0OTU5LCAwLjU3OTc4NiIsIFwKLSAgICAgICAgICAiMC4xMjY2NDYsIDAuMjAzNjc0LCAwLjI3NzA1MywgMC4zMjk1MiwgMC40MTM0MzEsIDAuNDg2ODQ3LCAwLjU5MTY0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM0MTQ1LCAwLjE3ODI0NiwgMC4zMjYyOTcsIDAuNDMyMDU0LCAwLjYwMjY0LCAwLjc1MTY1NiwgMC45NjQzOCIsIFwKLSAgICAgICAgICAiMC4wMzQxODksIDAuMTc4MzYyLCAwLjMyNjI3NiwgMC40MzI1NDEsIDAuNjAyNjM2LCAwLjc1MTQ1NSwgMC45NjQxMTkiLCBcCi0gICAgICAgICAgIjAuMDM0MTgyLCAwLjE3ODI3NSwgMC4zMjYwMjIsIDAuNDMyNTQsIDAuNjAyNTk1LCAwLjc1MTY1MiwgMC45NjM3NjIiLCBcCi0gICAgICAgICAgIjAuMDM0NzI4LCAwLjE3ODI5OCwgMC4zMjU5ODYsIDAuNDMyMDQ2LCAwLjYwMjY2NSwgMC43NTE2OTMsIDAuOTY0NDAzIiwgXAotICAgICAgICAgICIwLjAzNTg4OSwgMC4xNzg2NTIsIDAuMzI2MzY3LCAwLjQzMjI3MywgMC42MDI1MzIsIDAuNzUwNjE4LCAwLjk2MTc5MiIsIFwKLSAgICAgICAgICAiMC4wMzc3OTQsIDAuMTc4ODc2LCAwLjMyNjI5MiwgMC40MzI3MjMsIDAuNjAyNTI0LCAwLjc1MTQ3MiwgMC45NjQzNyIsIFwKLSAgICAgICAgICAiMC4wMzk3MzUsIDAuMTc5NTU2LCAwLjMyNjQxLCAwLjQzMjM2NCwgMC42MDE4MDgsIDAuNzUxMzQzLCAwLjk2NDQxMyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEyMzgyNSwgMC4yMTM0MjcsIDAuMjg3NTI4LCAwLjMzOTM5MywgMC40MjE5NzQsIDAuNDk0MTg2LCAwLjU5NzM2NCIsIFwKLSAgICAgICAgICAiMC4xMzE1NjQsIDAuMjIxMzQ5LCAwLjI5NTQxMSwgMC4zNDcyNDQsIDAuNDI5ODU2LCAwLjUwMjA2NCwgMC42MDUyODciLCBcCi0gICAgICAgICAgIjAuMTQxNTgxLCAwLjIzMTQ1LCAwLjMwNTUzNywgMC4zNTczNTgsIDAuNDM5OTQ5LCAwLjUxMjE2OCwgMC42MTUzNzkiLCBcCi0gICAgICAgICAgIjAuMTUxNzgzLCAwLjI0MTcxOCwgMC4zMTU3OTUsIDAuMzY3NjgyLCAwLjQ1MDI4NywgMC41MjI1MTgsIDAuNjI1NjQ5IiwgXAotICAgICAgICAgICIwLjE2MjA1LCAwLjI1MjA2NSwgMC4zMjYwODIsIDAuMzc3OTAzLCAwLjQ2MDQ5NywgMC41MzI3NDEsIDAuNjM1ODYyIiwgXAotICAgICAgICAgICIwLjE3ODM0OCwgMC4yNjc5NTMsIDAuMzQxOTk4LCAwLjM5Mzg1NiwgMC40NzY0NDQsIDAuNTQ4NjYyLCAwLjY1MTgxMSIsIFwKLSAgICAgICAgICAiMC4xOTE5MzYsIDAuMjgxODk3LCAwLjM1NTk1MSwgMC40MDc3OTEsIDAuNDkwNDI0LCAwLjU2MjY4MSwgMC42NjU3NzciKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTU3OTIsIDAuMTk3NjIsIDAuMzM5OTYyLCAwLjQ0MzY5OCwgMC42MTExNjEsIDAuNzU5MzA2LCAwLjk3MTM4OSIsIFwKLSAgICAgICAgICAiMC4wNTU3NSwgMC4xOTc2NTYsIDAuMzQwMDU2LCAwLjQ0MzQ3NywgMC42MTExNDcsIDAuNzU5MjQ0LCAwLjk2OTAyIiwgXAotICAgICAgICAgICIwLjA1NTc3MiwgMC4xOTc0NDIsIDAuMzM5OTcxLCAwLjQ0MzU5MywgMC42MTExNDYsIDAuNzU4Mzc1LCAwLjk3MTI1MSIsIFwKLSAgICAgICAgICAiMC4wNTU4ODIsIDAuMTk3MjgzLCAwLjMzOTg5MSwgMC40NDM1NjYsIDAuNjExNTEzLCAwLjc1OTE3MSwgMC45NzA5MTIiLCBcCi0gICAgICAgICAgIjAuMDU1NzM2LCAwLjE5NzE0NSwgMC4zMzk4NTQsIDAuNDQzNTEzLCAwLjYxMTEzMiwgMC43NTgxMjMsIDAuOTcwOTQyIiwgXAotICAgICAgICAgICIwLjA1NTk1MywgMC4xOTc2MTIsIDAuMzQwMDkzLCAwLjQ0MzYzMywgMC42MTExNzQsIDAuNzU5MDUxLCAwLjk3MDk4OSIsIFwKLSAgICAgICAgICAiMC4wNTY3MDIsIDAuMTk3NzIxLCAwLjM0MDA5NiwgMC40NDM1ODcsIDAuNjExMDcsIDAuNzU5MzA0LCAwLjk2OTk3NSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1MjcwMiwgMC4xMjgzNDksIDAuMjAxODE2LCAwLjI1NDI3NywgMC4zMzgxMzUsIDAuNDExNTQ2LCAwLjUxNjM4NSIsIFwKLSAgICAgICAgICAiMC4wNjI3MzEsIDAuMTM4MzI5LCAwLjIxMTgxNSwgMC4yNjQyODIsIDAuMzQ4MTM5LCAwLjQyMTUwNSwgMC41MjYzNDEiLCBcCi0gICAgICAgICAgIjAuMDc1MTI4LCAwLjE1MDc4OCwgMC4yMjQyNzEsIDAuMjc2NzU1LCAwLjM2MDY1MywgMC40MzM5ODksIDAuNTM4ODEzIiwgXAotICAgICAgICAgICIwLjA4NzAyNCwgMC4xNjI3MDYsIDAuMjM2MjEzLCAwLjI4ODY0MiwgMC4zNzI1MzMsIDAuNDQ1OTEyLCAwLjU1MDc0MSIsIFwKLSAgICAgICAgICAiMC4wOTc2NzMsIDAuMTczNTg1LCAwLjI0NzA2NCwgMC4yOTk1MjYsIDAuMzgzNDI0LCAwLjQ1Njc5MiwgMC41NjE2MTciLCBcCi0gICAgICAgICAgIjAuMTEyODMxLCAwLjE4OTI5MSwgMC4yNjI3NTYsIDAuMzE1MjA2LCAwLjM5OTA4NiwgMC40NzI1MTMsIDAuNTc3MzU2IiwgXAotICAgICAgICAgICIwLjEyMzkyMiwgMC4yMDA5MjEsIDAuMjc0MjY5LCAwLjMyNjczNCwgMC40MTA1ODcsIDAuNDgzOTc0LCAwLjU4ODgwOSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzMzkwOSwgMC4xNzc5OTcsIDAuMzI2MTMyLCAwLjQzMTg4OSwgMC42MDI2NjMsIDAuNzUwMTc0LCAwLjk2MTc4NiIsIFwKLSAgICAgICAgICAiMC4wMzM5MzcsIDAuMTc4MDEsIDAuMzI2MzM4LCAwLjQzMjUwNywgMC42MDI3MjYsIDAuNzUxNDk2LCAwLjk2MjgzNiIsIFwKLSAgICAgICAgICAiMC4wMzQwMTIsIDAuMTc4MjUxLCAwLjMyNTc3OCwgMC40MzEzNTcsIDAuNjAxNDI5LCAwLjc1MDM0OSwgMC45NjQwMzkiLCBcCi0gICAgICAgICAgIjAuMDM0Njc5LCAwLjE3ODM0MiwgMC4zMjY0NSwgMC40MzI1NTksIDAuNjAyNjk4LCAwLjc1MTMyOCwgMC45NjI3MzgiLCBcCi0gICAgICAgICAgIjAuMDM1OTEyLCAwLjE3ODUxOCwgMC4zMjYzODUsIDAuNDMyMTA1LCAwLjYwMjYwNSwgMC43NTE1ODIsIDAuOTYzOTIyIiwgXAotICAgICAgICAgICIwLjAzNzkxNiwgMC4xNzg5MiwgMC4zMjY1MzksIDAuNDMxNjY4LCAwLjYwMTg3NywgMC43NTE0MTcsIDAuOTYyMDAxIiwgXAotICAgICAgICAgICIwLjAzOTg3NywgMC4xNzkzNTksIDAuMzI2NDU3LCAwLjQzMjMzOSwgMC42MDEzNjQsIDAuNzUwMDE2LCAwLjk2MjU3NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJEIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExNzEwOSwgMC4yMDY3NzEsIDAuMjgwNzkxLCAwLjMzMjYxNiwgMC40MTUyMzYsIDAuNDg3NDU3LCAwLjU5MDU4OCIsIFwKLSAgICAgICAgICAiMC4xMjQ4MywgMC4yMTQ2MzcsIDAuMjg4NzM1LCAwLjM0MDYyMiwgMC40MjMyMSwgMC40OTU0NzEsIDAuNTk4NTg5IiwgXAotICAgICAgICAgICIwLjEzNDkyNywgMC4yMjQ5NzIsIDAuMjk5MDU5LCAwLjM1MDkxNywgMC40MzM0OTksIDAuNTA1NzA3LCAwLjYwODkwNSIsIFwKLSAgICAgICAgICAiMC4xNDU1NTUsIDAuMjM1NDQ1LCAwLjMwOTU3MSwgMC4zNjE0NDIsIDAuNDQ0MDM0LCAwLjUxNjI2OSwgMC42MTkzOTkiLCBcCi0gICAgICAgICAgIjAuMTU2MTYsIDAuMjQ2MTU5LCAwLjMyMDE4MSwgMC4zNzIwMTksIDAuNDU0NjE1LCAwLjUyNjg1MSwgMC42Mjk5ODMiLCBcCi0gICAgICAgICAgIjAuMTczNTksIDAuMjYzMDk4LCAwLjMzNzA1OSwgMC4zODg5MiwgMC40NzE1MTcsIDAuNTQzNzYzLCAwLjY0Njg4NiIsIFwKLSAgICAgICAgICAiMC4xODgxNjUsIDAuMjc4MjE0LCAwLjM1MjIyNSwgMC40MDQwNDMsIDAuNDg2NjY4LCAwLjU1ODg3MywgMC42NjIxMTgiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTU5MjQsIDAuMTk3ODI3LCAwLjM0MDE2MywgMC40NDMzMDIsIDAuNjExMTUzLCAwLjc1OTI0NywgMC45NzA5NjQiLCBcCi0gICAgICAgICAgIjAuMDU1NjkzLCAwLjE5NzQxNywgMC4zMzk5OTQsIDAuNDQzNTg4LCAwLjYxMTE0NCwgMC43NTk0MTEsIDAuOTY5NDczIiwgXAotICAgICAgICAgICIwLjA1NTk1OCwgMC4xOTc0MDMsIDAuMzM5OTA4LCAwLjQ0MzUyOCwgMC42MTExMSwgMC43NTkxODcsIDAuOTcxMzY4IiwgXAotICAgICAgICAgICIwLjA1NTc0NiwgMC4xOTcxOTEsIDAuMzM5NzMzLCAwLjQ0MzUxNywgMC42MTExMTEsIDAuNzU5MSwgMC45NzA5MTMiLCBcCi0gICAgICAgICAgIjAuMDU1NjExLCAwLjE5NzE0LCAwLjMzOTg2MiwgMC40NDM1MTQsIDAuNjExMTAzLCAwLjc1Nzk4MiwgMC45NzA5MzkiLCBcCi0gICAgICAgICAgIjAuMDU1OTc3LCAwLjE5NzY3NCwgMC4zNDAxMjMsIDAuNDQzNjcsIDAuNjExMjQsIDAuNzU5MzMzLCAwLjk3MTAwMiIsIFwKLSAgICAgICAgICAiMC4wNTc1NzYsIDAuMTk3ODYyLCAwLjM0MDI3LCAwLjQ0MzcwMiwgMC42MTExNjksIDAuNzU5MTU0LCAwLjk2OTI5OSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1MDUsIDAuMTI1OTI0LCAwLjE5OTMzLCAwLjI1MTc4NywgMC4zMzU2MTUsIDAuNDA5MTQzLCAwLjUxMzg3NSIsIFwKLSAgICAgICAgICAiMC4wNjA1MTcsIDAuMTM1OTk2LCAwLjIwOTM5OCwgMC4yNjE4NTMsIDAuMzQ1NzY0LCAwLjQxOTE2NSwgMC41MjQwMSIsIFwKLSAgICAgICAgICAiMC4wNzI5MjYsIDAuMTQ4NDAzLCAwLjIyMTgzNSwgMC4yNzQyODgsIDAuMzU4MjQ5LCAwLjQzMTU5MywgMC41MzY3MjciLCBcCi0gICAgICAgICAgIjAuMDg0NjU2LCAwLjE2MDIzLCAwLjIzMzY5NSwgMC4yODYxNDgsIDAuMzcwMDc3LCAwLjQ0MzQzMiwgMC41NDg1NDIiLCBcCi0gICAgICAgICAgIjAuMDk1MDE3LCAwLjE3MDcyMiwgMC4yNDQxNzEsIDAuMjk2NTk5LCAwLjM4MDUxLCAwLjQ1MzkzOSwgMC41NTkwOTQiLCBcCi0gICAgICAgICAgIjAuMTA5MTMxLCAwLjE4NDgyOCwgMC4yNTgyMTEsIDAuMzEwNjY2LCAwLjM5NDYzNSwgMC40NjgxMDQsIDAuNTcyODEzIiwgXAotICAgICAgICAgICIwLjExOTc0NywgMC4xOTYzMTcsIDAuMjY4OTM0LCAwLjMyMTM0OSwgMC40MDUyMzYsIDAuNDc4NzE1LCAwLjU4MzY0NCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzMzU5MSwgMC4xNzc5MjYsIDAuMzI2MTgyLCAwLjQzMTM0NSwgMC42MDI1NjcsIDAuNzQ5NjQ1LCAwLjk2NDUxNiIsIFwKLSAgICAgICAgICAiMC4wMzM1NjEsIDAuMTc3NzYzLCAwLjMyNTYzNCwgMC40MzI0OTUsIDAuNjAwOTc1LCAwLjc0OTU1MSwgMC45NjQwMiIsIFwKLSAgICAgICAgICAiMC4wMzQwMDksIDAuMTc3NzY3LCAwLjMyNTY2OSwgMC40MzI1MDIsIDAuNjAxMzEsIDAuNzQ5NjE5LCAwLjk2MTkxNSIsIFwKLSAgICAgICAgICAiMC4wMzQ2NjMsIDAuMTc3OTEzLCAwLjMyNjI3NSwgMC40MzE1ODYsIDAuNjAxODQ4LCAwLjc0OTY1NiwgMC45NjE5OTUiLCBcCi0gICAgICAgICAgIjAuMDM1OTg1LCAwLjE3ODQ0OSwgMC4zMjU4NCwgMC40MzIyNTYsIDAuNjAyMzc0LCAwLjc0OTU4NywgMC45NjE4MzMiLCBcCi0gICAgICAgICAgIjAuMDM3OTQzLCAwLjE3ODkwNSwgMC4zMjY0OTksIDAuNDMxNTg5LCAwLjYwMTM4MSwgMC43NDk3OTIsIDAuOTYxNzcxIiwgXAotICAgICAgICAgICIwLjAzOTg0NSwgMC4xNzkzNzUsIDAuMzI2NDc4LCAwLjQzMjY3MSwgMC42MDI3MzgsIDAuNzUwMDYyLCAwLjk2MjIyMSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0OTE5LCAwLjAwNTAxMywgMC4wMDUwMjcsIDAuMDA1MDMzLCAwLjAwNTA0LCAwLjAwNTA0MSwgMC4wMDUwNDYiLCBcCi0gICAgICAgICAgIjAuMDA0ODc4LCAwLjAwNDk2OSwgMC4wMDQ5ODksIDAuMDA0OTk3LCAwLjAwNTAwMSwgMC4wMDUwMDQsIDAuMDA1MDA2IiwgXAotICAgICAgICAgICIwLjAwNDg1LCAwLjAwNDkzOSwgMC4wMDQ5NjMsIDAuMDA0OTY5LCAwLjAwNDk3NSwgMC4wMDQ5NzksIDAuMDA0OTgyIiwgXAotICAgICAgICAgICIwLjAwNDgzMSwgMC4wMDQ5MTksIDAuMDA0OTQ2LCAwLjAwNDk1NywgMC4wMDQ5NjQsIDAuMDA0OTY4LCAwLjAwNDk2NyIsIFwKLSAgICAgICAgICAiMC4wMDQ4MjMsIDAuMDA0OTEyLCAwLjAwNDk0LCAwLjAwNDk0OCwgMC4wMDQ5NTcsIDAuMDA0OTYsIDAuMDA0OTYzIiwgXAotICAgICAgICAgICIwLjAwNDgyNywgMC4wMDQ5MDUsIDAuMDA0OTMzLCAwLjAwNDk0MSwgMC4wMDQ5NSwgMC4wMDQ5NTQsIDAuMDA0OTU1IiwgXAotICAgICAgICAgICIwLjAwNDg1NSwgMC4wMDQ5MDUsIDAuMDA0OTM1LCAwLjAwNDk0NCwgMC4wMDQ5NSwgMC4wMDQ5NTQsIDAuMDA0OTU3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDc2ODIsIDAuMDA3ODcsIDAuMDA3ODk2LCAwLjAwNzkwNCwgMC4wMDc5MTEsIDAuMDA3OTE1LCAwLjAwNzkxOCIsIFwKLSAgICAgICAgICAiMC4wMDc2NDgsIDAuMDA3ODQxLCAwLjAwNzg3MSwgMC4wMDc4OCwgMC4wMDc4ODgsIDAuMDA3ODkyLCAwLjAwNzg5NSIsIFwKLSAgICAgICAgICAiMC4wMDc2MjMsIDAuMDA3ODIsIDAuMDA3ODU3LCAwLjAwNzg2OCwgMC4wMDc4NzksIDAuMDA3ODg0LCAwLjAwNzg4OSIsIFwKLSAgICAgICAgICAiMC4wMDc2MDcsIDAuMDA3ODA0LCAwLjAwNzg0OCwgMC4wMDc4NjEsIDAuMDA3ODc1LCAwLjAwNzg4MiwgMC4wMDc4ODgiLCBcCi0gICAgICAgICAgIjAuMDA3NjA5LCAwLjAwNzc5NCwgMC4wMDc4NDMsIDAuMDA3ODU5LCAwLjAwNzg3NCwgMC4wMDc4ODIsIDAuMDA3ODkiLCBcCi0gICAgICAgICAgIjAuMDA3NjI1LCAwLjAwNzc5NSwgMC4wMDc4NDYsIDAuMDA3ODY1LCAwLjAwNzg4LCAwLjAwNzg4OSwgMC4wMDc4OTgiLCBcCi0gICAgICAgICAgIjAuMDA3NjQ1LCAwLjAwNzgwNCwgMC4wMDc4NTcsIDAuMDA3ODc3LCAwLjAwNzg5NCwgMC4wMDc5MDUsIDAuMDA3OTE1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQ5MjMsIDAuMDA1MDI1LCAwLjAwNTA0MSwgMC4wMDUwNDYsIDAuMDA1MDYyLCAwLjAwNTA2OCwgMC4wMDUwNyIsIFwKLSAgICAgICAgICAiMC4wMDQ5MTgsIDAuMDA0OTc4LCAwLjAwNTAwMiwgMC4wMDUwMDcsIDAuMDA1MDE0LCAwLjAwNTAxNywgMC4wMDUwMjEiLCBcCi0gICAgICAgICAgIjAuMDA0ODUsIDAuMDA0OTQxLCAwLjAwNDk3LCAwLjAwNDk3OCwgMC4wMDQ5ODUsIDAuMDA0OTkzLCAwLjAwNDk5MiIsIFwKLSAgICAgICAgICAiMC4wMDQ4MywgMC4wMDQ5MjIsIDAuMDA0OTU1LCAwLjAwNDk2NCwgMC4wMDQ5NzUsIDAuMDA0OTc4LCAwLjAwNDk4MiIsIFwKLSAgICAgICAgICAiMC4wMDQ4MTksIDAuMDA0OTEzLCAwLjAwNDk0NSwgMC4wMDQ5NTYsIDAuMDA0OTY2LCAwLjAwNDk3MSwgMC4wMDQ5OCIsIFwKLSAgICAgICAgICAiMC4wMDQ4MzksIDAuMDA0OTEsIDAuMDA0OTQsIDAuMDA0OTUxLCAwLjAwNDk2MywgMC4wMDQ5NjksIDAuMDA0OTY4IiwgXAotICAgICAgICAgICIwLjAwNDg3NCwgMC4wMDQ5MDgsIDAuMDA0OTM4LCAwLjAwNDk0NywgMC4wMDQ5NjEsIDAuMDA0OTY3LCAwLjAwNDk3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDczMzksIDAuMDA3NTYxLCAwLjAwNzU5MiwgMC4wMDc2MDEsIDAuMDA3NjEsIDAuMDA3NjEzLCAwLjAwNzYxNyIsIFwKLSAgICAgICAgICAiMC4wMDczLCAwLjAwNzUzLCAwLjAwNzU2NSwgMC4wMDc1NzYsIDAuMDA3NTg1LCAwLjAwNzU5LCAwLjAwNzU5NSIsIFwKLSAgICAgICAgICAiMC4wMDcyNzcsIDAuMDA3NTA1LCAwLjAwNzU0NywgMC4wMDc1NjEsIDAuMDA3NTczLCAwLjAwNzU3OSwgMC4wMDc1ODUiLCBcCi0gICAgICAgICAgIjAuMDA3MjQ2LCAwLjAwNzQ4MSwgMC4wMDc1MzQsIDAuMDA3NTUxLCAwLjAwNzU2NywgMC4wMDc1NzUsIDAuMDA3NTgzIiwgXAotICAgICAgICAgICIwLjAwNzI0OSwgMC4wMDc0NzMsIDAuMDA3NTMsIDAuMDA3NTUsIDAuMDA3NTY3LCAwLjAwNzU3NywgMC4wMDc1ODYiLCBcCi0gICAgICAgICAgIjAuMDA3MjMyLCAwLjAwNzQ0NiwgMC4wMDc1MDgsIDAuMDA3NTI4LCAwLjAwNzU0OSwgMC4wMDc1NiwgMC4wMDc1NyIsIFwKLSAgICAgICAgICAiMC4wMDcyNDYsIDAuMDA3NDQ2LCAwLjAwNzUxLCAwLjAwNzUzNCwgMC4wMDc1NTcsIDAuMDA3NTY4LCAwLjAwNzU4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQ5NTEsIDAuMDA1MDE1LCAwLjAwNTA0MiwgMC4wMDUwNTUsIDAuMDA1MDYzLCAwLjAwNTA3NCwgMC4wMDUwNzkiLCBcCi0gICAgICAgICAgIjAuMDA0ODk3LCAwLjAwNDk3LCAwLjAwNDk5NywgMC4wMDUwMTQsIDAuMDA1MDI0LCAwLjAwNTAxOCwgMC4wMDUwMzIiLCBcCi0gICAgICAgICAgIjAuMDA0ODUsIDAuMDA0OTQ4LCAwLjAwNDk3OSwgMC4wMDQ5OSwgMC4wMDUwMDIsIDAuMDA1MDA0LCAwLjAwNTAwOCIsIFwKLSAgICAgICAgICAiMC4wMDQ4MjksIDAuMDA0OTI2LCAwLjAwNDk2MSwgMC4wMDQ5NzQsIDAuMDA0OTg1LCAwLjAwNDk5MSwgMC4wMDQ5OTYiLCBcCi0gICAgICAgICAgIjAuMDA0ODI2LCAwLjAwNDkxNywgMC4wMDQ5NTUsIDAuMDA0OTY5LCAwLjAwNDk4LCAwLjAwNDk4MywgMC4wMDQ5OSIsIFwKLSAgICAgICAgICAiMC4wMDQ4NjMsIDAuMDA0OTIxLCAwLjAwNDk1NSwgMC4wMDQ5NjksIDAuMDA0OTgsIDAuMDA0OTg2LCAwLjAwNDk4OSIsIFwKLSAgICAgICAgICAiMC4wMDQ5MDQsIDAuMDA0OTI3LCAwLjAwNDk2MSwgMC4wMDQ5NzEsIDAuMDA0OTgyLCAwLjAwNDk4OSwgMC4wMDQ5OTUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjk0MywgMC4wMDcxNiwgMC4wMDcxODksIDAuMDA3MTk3LCAwLjAwNzIwNSwgMC4wMDcyMDksIDAuMDA3MjEzIiwgXAotICAgICAgICAgICIwLjAwNjkwOCwgMC4wMDcxMzUsIDAuMDA3MTY5LCAwLjAwNzE3OSwgMC4wMDcxODgsIDAuMDA3MTkzLCAwLjAwNzE5NyIsIFwKLSAgICAgICAgICAiMC4wMDY4NzMsIDAuMDA3MTA2LCAwLjAwNzE0OCwgMC4wMDcxNjIsIDAuMDA3MTc0LCAwLjAwNzE4LCAwLjAwNzE4NiIsIFwKLSAgICAgICAgICAiMC4wMDY4NDcsIDAuMDA3MDg0LCAwLjAwNzEzNCwgMC4wMDcxNTEsIDAuMDA3MTY2LCAwLjAwNzE3NCwgMC4wMDcxODIiLCBcCi0gICAgICAgICAgIjAuMDA2ODUsIDAuMDA3MDY5LCAwLjAwNzEyOSwgMC4wMDcxNDgsIDAuMDA3MTY1LCAwLjAwNzE3NSwgMC4wMDcxODMiLCBcCi0gICAgICAgICAgIjAuMDA2ODI5LCAwLjAwNzA0NCwgMC4wMDcxMDYsIDAuMDA3MTI1LCAwLjAwNzE0NiwgMC4wMDcxNTcsIDAuMDA3MTY2IiwgXAotICAgICAgICAgICIwLjAwNjg0MiwgMC4wMDcwNDQsIDAuMDA3MTA3LCAwLjAwNzEzMSwgMC4wMDcxNTMsIDAuMDA3MTY2LCAwLjAwNzE3NiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkQiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0OTEyLCAwLjAwNTAxOCwgMC4wMDUwNSwgMC4wMDUwNjEsIDAuMDA1MDcxLCAwLjAwNTA3NiwgMC4wMDUwODIiLCBcCi0gICAgICAgICAgIjAuMDA0ODY5LCAwLjAwNDk3MiwgMC4wMDUwMDYsIDAuMDA1MDE3LCAwLjAwNTAyOCwgMC4wMDUwMzQsIDAuMDA1MDM5IiwgXAotICAgICAgICAgICIwLjAwNDg1LCAwLjAwNDk0NywgMC4wMDQ5ODUsIDAuMDA0OTk4LCAwLjAwNTAxMywgMC4wMDUwMTYsIDAuMDA1MDE5IiwgXAotICAgICAgICAgICIwLjAwNDgzOCwgMC4wMDQ5MzYsIDAuMDA0OTcyLCAwLjAwNDk4OCwgMC4wMDUwMDIsIDAuMDA1MDA4LCAwLjAwNTAxNCIsIFwKLSAgICAgICAgICAiMC4wMDQ4NSwgMC4wMDQ5MzUsIDAuMDA0OTc1LCAwLjAwNDk5MSwgMC4wMDUwMDUsIDAuMDA1MDExLCAwLjAwNTAxOCIsIFwKLSAgICAgICAgICAiMC4wMDQ5MTUsIDAuMDA0OTU4LCAwLjAwNDk5NiwgMC4wMDUwMDksIDAuMDA1MDI1LCAwLjAwNTAzMiwgMC4wMDUwMzkiLCBcCi0gICAgICAgICAgIjAuMDA1MDU3LCAwLjAwNTAwOCwgMC4wMDUwMywgMC4wMDUwNDIsIDAuMDA1MDU1LCAwLjAwNTA2LCAwLjAwNTA2NiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2NTQ1LCAwLjAwNjc1LCAwLjAwNjc3NywgMC4wMDY3ODUsIDAuMDA2NzkyLCAwLjAwNjc5NiwgMC4wMDY3OTkiLCBcCi0gICAgICAgICAgIjAuMDA2NTAzLCAwLjAwNjcyNywgMC4wMDY3NTgsIDAuMDA2NzY3LCAwLjAwNjc3NiwgMC4wMDY3OCwgMC4wMDY3ODQiLCBcCi0gICAgICAgICAgIjAuMDA2NDU5LCAwLjAwNjY5MSwgMC4wMDY3MzEsIDAuMDA2NzQzLCAwLjAwNjc1NSwgMC4wMDY3NiwgMC4wMDY3NjUiLCBcCi0gICAgICAgICAgIjAuMDA2NDc5LCAwLjAwNjY3OSwgMC4wMDY3MjMsIDAuMDA2NzM4LCAwLjAwNjc1MSwgMC4wMDY3NTcsIDAuMDA2NzY0IiwgXAotICAgICAgICAgICIwLjAwNjQ1OSwgMC4wMDY2NTgsIDAuMDA2NzA3LCAwLjAwNjcyNSwgMC4wMDY3NDEsIDAuMDA2NzQ5LCAwLjAwNjc1NyIsIFwKLSAgICAgICAgICAiMC4wMDY0MzEsIDAuMDA2NjQ1LCAwLjAwNjcwMywgMC4wMDY3MjQsIDAuMDA2NzQ0LCAwLjAwNjc1NCwgMC4wMDY3NjQiLCBcCi0gICAgICAgICAgIjAuMDA2NDQ3LCAwLjAwNjY0OSwgMC4wMDY3MDEsIDAuMDA2NzI4LCAwLjAwNjc1MSwgMC4wMDY3NjIsIDAuMDA2Nzc0Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBBTkQ0WDggKgotICogLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChBTkQ0WDgpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC41NzY4OTQ7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMjA5MTY0OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMjA5MTY0OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMjA4NTY5OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDgxOCwgMC4wMDA4MTgsIDAuMDAwODE4LCAwLjAwMDgxOCwgMC4wMDA4MTcsIDAuMDAwODE3LCAwLjAwMDgxNyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDgxOSwgMC4wMDA4MiwgMC4wMDA4MiwgMC4wMDA4MiwgMC4wMDA4MiwgMC4wMDA4MiwgMC4wMDA4MiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxOTAyNzM7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxOTAyNzM7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxODk3OTg7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwODE4LCAwLjAwMDgxOCwgMC4wMDA4MTcsIDAuMDAwODE3LCAwLjAwMDgxNywgMC4wMDA4MTcsIDAuMDAwODE3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwODE5LCAwLjAwMDgyLCAwLjAwMDgyLCAwLjAwMDgyLCAwLjAwMDgyLCAwLjAwMDgyLCAwLjAwMDgyIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihDKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE3MjE1OTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE3MjE1OTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE3MTY0NDsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA4MTksIDAuMDAwODE4LCAwLjAwMDgxOCwgMC4wMDA4MTcsIDAuMDAwODE3LCAwLjAwMDgxNywgMC4wMDA4MTciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA4MTksIDAuMDAwODIsIDAuMDAwODIsIDAuMDAwODIxLCAwLjAwMDgyMSwgMC4wMDA4MjEsIDAuMDAwODIxIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihEKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE1OTc0NzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE1OTY2MzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE1OTc0NzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA1MzYsIDAuMDAwNTM1LCAwLjAwMDUzNSwgMC4wMDA1MzUsIDAuMDAwNTM0LCAwLjAwMDUzNCwgMC4wMDA1MzQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA5MjgsIDAuMDAwOTI5LCAwLjAwMDkyOSwgMC4wMDA5MywgMC4wMDA5MjksIDAuMDAwOTI5LCAwLjAwMDkyOSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAxLjk4NzY7Ci0gICAgZnVuY3Rpb24gOiAiKCgoQSBCKSBDKSBEKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTQyNjMsIDAuMTY3ODksIDAuMjA3ODI3LCAwLjIzNDcxNSwgMC4yNzY5MTksIDAuMzEzNDIyLCAwLjM2NTM0OSIsIFwKLSAgICAgICAgICAiMC4xMjE5OTUsIDAuMTc1NTY2LCAwLjIxNTc2NSwgMC4yNDI3OTQsIDAuMjg0OTksIDAuMzIxNTE1LCAwLjM3MzQyNCIsIFwKLSAgICAgICAgICAiMC4xMzA0ODMsIDAuMTgzOTkzLCAwLjIyNDM2MiwgMC4yNTEyODMsIDAuMjkzNDY4LCAwLjMyOTk1OCwgMC4zODE5MjIiLCBcCi0gICAgICAgICAgIjAuMTM4MzY5LCAwLjE5MjEzMSwgMC4yMzIzOTIsIDAuMjU5MzUsIDAuMzAxNTAzLCAwLjMzODA2MiwgMC4zODk5NzgiLCBcCi0gICAgICAgICAgIjAuMTQ2MjM2LCAwLjE5OTk2MiwgMC4yNDAxNjgsIDAuMjY3MTE4LCAwLjMwOTI3NywgMC4zNDU3NjksIDAuMzk3NzIiLCBcCi0gICAgICAgICAgIjAuMTU4MjE3LCAwLjIxMTk1OCwgMC4yNTIxNjUsIDAuMjc5MTE5LCAwLjMyMTI2NSwgMC4zNTc3NCwgMC40MDk2OSIsIFwKLSAgICAgICAgICAiMC4xNjgyNDIsIDAuMjIyMTU1LCAwLjI2MjM4OSwgMC4yODkzNDcsIDAuMzMxNDY2LCAwLjM2Nzk4NCwgMC40MTk5MDgiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDIxMzMsIDAuMTE2MDg4LCAwLjE4NjcwOCwgMC4yMzczMTksIDAuMzE5NjIxLCAwLjM5MjMwOCwgMC40OTcyMDEiLCBcCi0gICAgICAgICAgIjAuMDQyMTU2LCAwLjExNjQyOCwgMC4xODY0MTUsIDAuMjM3MjAxLCAwLjMxOTQwNywgMC4zOTIyOTcsIDAuNDk3NDk2IiwgXAotICAgICAgICAgICIwLjA0MjE3NCwgMC4xMTYyMjYsIDAuMTg2MzY3LCAwLjIzNzA3LCAwLjMxOTQ3NywgMC4zOTIxOTQsIDAuNDk2NjI4IiwgXAotICAgICAgICAgICIwLjA0MjMxNywgMC4xMTU5OTYsIDAuMTg2MTM4LCAwLjIzNzAyMiwgMC4zMTkzODksIDAuMzkyMiwgMC40OTcxNzEiLCBcCi0gICAgICAgICAgIjAuMDQyMDQsIDAuMTE1NzMzLCAwLjE4NjA1MywgMC4yMzY5NSwgMC4zMTkyOTksIDAuMzkyMTUxLCAwLjQ5NjkwMSIsIFwKLSAgICAgICAgICAiMC4wNDI0MTcsIDAuMTE2MTY3LCAwLjE4NjMxOSwgMC4yMzcxLCAwLjMxOTM0OSwgMC4zOTIyMDUsIDAuNDk2OTUzIiwgXAotICAgICAgICAgICIwLjA0MzA3OCwgMC4xMTY2NDMsIDAuMTg2NjUyLCAwLjIzNzIyLCAwLjMxOTYxNywgMC4zOTIzNTUsIDAuNDk3MDgzIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQ2NzA5LCAwLjA4ODI5MywgMC4xMjY2ODUsIDAuMTUzOTk4LCAwLjE5NzYyLCAwLjIzNTc1NCwgMC4yOTAyMjUiLCBcCi0gICAgICAgICAgIjAuMDU2NjMxLCAwLjA5ODIzLCAwLjEzNjYwOSwgMC4xNjM5MTMsIDAuMjA3NTUxLCAwLjI0NTcwMywgMC4zMDAxNjEiLCBcCi0gICAgICAgICAgIjAuMDY5MzUzLCAwLjExMDg5NiwgMC4xNDkyOTcsIDAuMTc2NjA5LCAwLjIyMDI0MywgMC4yNTgzODQsIDAuMzEyODU0IiwgXAotICAgICAgICAgICIwLjA4MTI1NCwgMC4xMjI4OCwgMC4xNjEyODIsIDAuMTg4NTk2LCAwLjIzMjIyNywgMC4yNzAzNzMsIDAuMzI0ODUiLCBcCi0gICAgICAgICAgIjAuMDkyMDU0LCAwLjEzMzc2OSwgMC4xNzIxMywgMC4xOTk0NDgsIDAuMjQzMDY1LCAwLjI4MTIyMSwgMC4zMzU3MTEiLCBcCi0gICAgICAgICAgIjAuMTA2Nzg3LCAwLjE0OTMyNSwgMC4xODc3NzgsIDAuMjE1MDU3LCAwLjI1ODY3OSwgMC4yOTY4MzcsIDAuMzUxMjg1IiwgXAotICAgICAgICAgICIwLjExNzgxNywgMC4xNjEwNTUsIDAuMTk5NTQxLCAwLjIyNjcxMiwgMC4yNzAzNDEsIDAuMzA4NDY4LCAwLjM2MjkwNiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyNDI2LCAwLjA5ODAwMSwgMC4xNzQwMTEsIDAuMjI5MDMsIDAuMzE2NjUzLCAwLjM5MzYxMiwgMC41MDQ0MTkiLCBcCi0gICAgICAgICAgIjAuMDI0MjQ3LCAwLjA5Nzk5MywgMC4xNzQxMjIsIDAuMjI5LCAwLjMxNjYzLCAwLjM5MzIzOSwgMC41MDQ0NDciLCBcCi0gICAgICAgICAgIjAuMDI0MjM4LCAwLjA5Nzk2OSwgMC4xNzM5ODUsIDAuMjI4OTk2LCAwLjMxNjY2OCwgMC4zOTM3MSwgMC41MDQ0NDYiLCBcCi0gICAgICAgICAgIjAuMDI0ODgxLCAwLjA5ODA4NywgMC4xNzQsIDAuMjI5MDMzLCAwLjMxNjYyLCAwLjM5MzY1MSwgMC41MDQ0NiIsIFwKLSAgICAgICAgICAiMC4wMjYyMTMsIDAuMDk4NTE1LCAwLjE3NDEzNiwgMC4yMjkxNTYsIDAuMzE3MDk4LCAwLjM5Mzc5OSwgMC41MDQ0MzQiLCBcCi0gICAgICAgICAgIjAuMDI4MzIxLCAwLjA5OTQ0MiwgMC4xNzQ3NTUsIDAuMjI5Mzk4LCAwLjMxNzI2NCwgMC4zOTM5NDcsIDAuNTA0NjE2IiwgXAotICAgICAgICAgICIwLjAzMDI2MywgMC4xMDAyMzEsIDAuMTc1MTA2LCAwLjIyOTQzOCwgMC4zMTY2MjksIDAuMzk0MzkxLCAwLjUwNDcwOSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExMjEzNSwgMC4xNjU3NiwgMC4yMDU3MDIsIDAuMjMyNjAyLCAwLjI3NDc5NCwgMC4zMTEzMDYsIDAuMzYzMjMxIiwgXAotICAgICAgICAgICIwLjEyMDAwMSwgMC4xNzM1ODYsIDAuMjEzNjQzLCAwLjI0MDU0NywgMC4yODI3NCwgMC4zMTkyMzcsIDAuMzcxMTgxIiwgXAotICAgICAgICAgICIwLjEyODk0NCwgMC4xODI0OSwgMC4yMjI4MDcsIDAuMjQ5NzgzLCAwLjI5MTk2MSwgMC4zMjg0NjMsIDAuMzgwMzc2IiwgXAotICAgICAgICAgICIwLjEzNzgwOCwgMC4xOTE1NzcsIDAuMjMxODI5LCAwLjI1ODc4NywgMC4zMDA5NDQsIDAuMzM3NTA2LCAwLjM4OTQzNyIsIFwKLSAgICAgICAgICAiMC4xNDY4MjUsIDAuMjAwNTc0LCAwLjI0MDc0NCwgMC4yNjc3MjksIDAuMzA5ODQ1LCAwLjM0NjM2OSwgMC4zOTgyODgiLCBcCi0gICAgICAgICAgIjAuMTYwODY3LCAwLjIxNDYwNywgMC4yNTQ4MywgMC4yODE3NTQsIDAuMzIzODcyLCAwLjM2MDM5NSwgMC40MTIzMTEiLCBcCi0gICAgICAgICAgIjAuMTcyNTg5LCAwLjIyNjQ3LCAwLjI2Njk0MywgMC4yOTM4OCwgMC4zMzYwNDIsIDAuMzcyNTA4LCAwLjQyNDQ2OCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0MjEyMywgMC4xMTYwOTMsIDAuMTg2NzA5LCAwLjIzNzMzMywgMC4zMTk2MTksIDAuMzkyMzEzLCAwLjQ5NzE3NyIsIFwKLSAgICAgICAgICAiMC4wNDIxNjgsIDAuMTE2MTE0LCAwLjE4NjU4OCwgMC4yMzcyMzEsIDAuMzE5NTYzLCAwLjM5MjI3OCwgMC40OTcxNDgiLCBcCi0gICAgICAgICAgIjAuMDQyMTM3LCAwLjExNjA4NywgMC4xODYyNzIsIDAuMjM3MTA5LCAwLjMxOTM5MywgMC4zOTIyMzIsIDAuNDk3MTkyIiwgXAotICAgICAgICAgICIwLjA0MjE2LCAwLjExNTk2NiwgMC4xODYxMjgsIDAuMjM3MDAxLCAwLjMxOTM3NCwgMC4zOTIxODksIDAuNDk3MTU1IiwgXAotICAgICAgICAgICIwLjA0MjAwOCwgMC4xMTU4ODEsIDAuMTg2MDUzLCAwLjIzNjk0MSwgMC4zMTkzMTIsIDAuMzkyMTMxLCAwLjQ5NzAyNiIsIFwKLSAgICAgICAgICAiMC4wNDI1MDEsIDAuMTE2MDcyLCAwLjE4NjE3NiwgMC4yMzcwNDUsIDAuMzE5MzgyLCAwLjM5MjE4MSwgMC40OTcwNzEiLCBcCi0gICAgICAgICAgIjAuMDQzNjA3LCAwLjExNzEzNywgMC4xODY3NjMsIDAuMjM3NDAxLCAwLjMxOTYyNiwgMC4zOTI0MDgsIDAuNDk3MDU1Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQ1ODQyLCAwLjA4NzI4OSwgMC4xMjU2MTgsIDAuMTUyOSwgMC4xOTY0OTEsIDAuMjM0NjQ2LCAwLjI4OTA2MSIsIFwKLSAgICAgICAgICAiMC4wNTU3NjcsIDAuMDk3MjExLCAwLjEzNTUzOCwgMC4xNjI4MDksIDAuMjA2NDE1LCAwLjI0NDU1MiwgMC4yOTg5ODgiLCBcCi0gICAgICAgICAgIjAuMDY4NDQ3LCAwLjEwOTg2MywgMC4xNDgyMDUsIDAuMTc1NDgyLCAwLjIxOTA5NSwgMC4yNTcyNDcsIDAuMzExNjY3IiwgXAotICAgICAgICAgICIwLjA4MDEsIDAuMTIxNjUxLCAwLjE2MDAxLCAwLjE4NzI5MywgMC4yMzA5MDIsIDAuMjY5MDQzLCAwLjMyMzQ3IiwgXAotICAgICAgICAgICIwLjA5MTA4NSwgMC4xMzI4NzQsIDAuMTcxMjA5LCAwLjE5ODQ5NywgMC4yNDIxMSwgMC4yODAyMjcsIDAuMzM0Njk0IiwgXAotICAgICAgICAgICIwLjEwNTQyNSwgMC4xNDc5NjIsIDAuMTg2Mzc0LCAwLjIxMzY2NiwgMC4yNTcyNjMsIDAuMjk1NDE4LCAwLjM0OTg2OCIsIFwKLSAgICAgICAgICAiMC4xMTYyNzcsIDAuMTU5NDk5LCAwLjE5Nzg1MywgMC4yMjUxMDYsIDAuMjY4Njg1LCAwLjMwNjgyMSwgMC4zNjEyNSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyMzk5NSwgMC4wOTc3MDIsIDAuMTczNzE2LCAwLjIyODc4MiwgMC4zMTYzNzcsIDAuMzkzMjAxLCAwLjUwNDMyNyIsIFwKLSAgICAgICAgICAiMC4wMjM5OTcsIDAuMDk3NzM4LCAwLjE3Mzk1MywgMC4yMjg3NjEsIDAuMzE2MzcxLCAwLjM5MzAzMywgMC41MDQzNDgiLCBcCi0gICAgICAgICAgIjAuMDI0MDUyLCAwLjA5NzczMiwgMC4xNzM3MjUsIDAuMjI4NzY0LCAwLjMxNjQxOSwgMC4zOTM5OTYsIDAuNTA0MzYxIiwgXAotICAgICAgICAgICIwLjAyNDkwNCwgMC4wOTc5MDUsIDAuMTc0MDE4LCAwLjIyODgxNiwgMC4zMTY5MDIsIDAuMzkzNTAzLCAwLjUwNDQ1NiIsIFwKLSAgICAgICAgICAiMC4wMjYxNzIsIDAuMDk4MzMyLCAwLjE3MzkzNywgMC4yMjg5NDksIDAuMzE2OTYzLCAwLjM5MzYzMywgMC41MDQzMTQiLCBcCi0gICAgICAgICAgIjAuMDI4MzcxLCAwLjA5OTI1NSwgMC4xNzQ0NTcsIDAuMjI5MjQ1LCAwLjMxNjYxOCwgMC4zOTQxMzEsIDAuNTAzNjI1IiwgXAotICAgICAgICAgICIwLjAzMDMwNCwgMC4xMDAxMywgMC4xNzQ5OTYsIDAuMjI5NTQ1LCAwLjMxNzIxOCwgMC4zOTQwNzcsIDAuNTA0NDQ0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTA3NDYxLCAwLjE2MDg4NywgMC4yMDEyMTIsIDAuMjI4MjIyLCAwLjI3MDQyLCAwLjMwNjkxLCAwLjM1ODg2MiIsIFwKLSAgICAgICAgICAiMC4xMTUyNTUsIDAuMTY4OTQ1LCAwLjIwODk4NSwgMC4yMzU5NTMsIDAuMjc4MSwgMC4zMTQ2MTUsIDAuMzY2NTMxIiwgXAotICAgICAgICAgICIwLjEyNTI1NCwgMC4xNzg3NzcsIDAuMjE5MDc5LCAwLjI0NjA2OCwgMC4yODgyNDYsIDAuMzI0NzQ4LCAwLjM3NjY5MiIsIFwKLSAgICAgICAgICAiMC4xMzUzOTEsIDAuMTg5MDY5LCAwLjIyOTM2OSwgMC4yNTYzMTcsIDAuMjk4NDk2LCAwLjMzNDk5MSwgMC4zODY5NDMiLCBcCi0gICAgICAgICAgIjAuMTQ1NzUsIDAuMTk5NDM0LCAwLjIzOTYzNywgMC4yNjY1OSwgMC4zMDg3NDcsIDAuMzQ1MjM3LCAwLjM5NzE3NiIsIFwKLSAgICAgICAgICAiMC4xNjE2NzQsIDAuMjE1MTI0LCAwLjI1NTMzOCwgMC4yODIzLCAwLjMyNDQ0OSwgMC4zNjA5MzcsIDAuNDEyODc3IiwgXAotICAgICAgICAgICIwLjE3NDg2NiwgMC4yMjg3NDksIDAuMjY5MzA5LCAwLjI5NjIzNywgMC4zMzg0MzEsIDAuMzc0ODg4LCAwLjQyNjg0MiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0MjA5OSwgMC4xMTY0NTQsIDAuMTg2MjUzLCAwLjIzNzIyMSwgMC4zMTk0ODYsIDAuMzkyMDQ3LCAwLjQ5Njc1NCIsIFwKLSAgICAgICAgICAiMC4wNDIxMjQsIDAuMTE2MTQ1LCAwLjE4NjU0NCwgMC4yMzcyMjUsIDAuMzE5NTI4LCAwLjM5MjMwMSwgMC40OTY1NTciLCBcCi0gICAgICAgICAgIjAuMDQyMTE4LCAwLjExNjEsIDAuMTg2MjcsIDAuMjM3MTE5LCAwLjMxOTM4NywgMC4zOTIyNDYsIDAuNDk2OCIsIFwKLSAgICAgICAgICAiMC4wNDIxOTIsIDAuMTE1OTcsIDAuMTg2MTEsIDAuMjM2ODIxLCAwLjMxOTM4NywgMC4zOTIxODYsIDAuNDk2ODYxIiwgXAotICAgICAgICAgICIwLjA0MjA0LCAwLjExNTgxMywgMC4xODYwNjQsIDAuMjM2OTczLCAwLjMxOTMwNiwgMC4zOTIxNjEsIDAuNDk3NDIxIiwgXAotICAgICAgICAgICIwLjA0MjYxNywgMC4xMTY5NDMsIDAuMTg2NzI5LCAwLjIzNzQwMywgMC4zMTk0NSwgMC4zOTI0MDQsIDAuNDk3MDcxIiwgXAotICAgICAgICAgICIwLjA0MzkwNSwgMC4xMTcyNjUsIDAuMTg3MzEsIDAuMjM3ODM1LCAwLjMxOTc0LCAwLjM5MjYxOCwgMC40OTcyMjMiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDQyMzMsIDAuMDg1NDY1LCAwLjEyMzc0LCAwLjE1MDk4NCwgMC4xOTQ1NTQsIDAuMjMyNjkxLCAwLjI4NzA4NSIsIFwKLSAgICAgICAgICAiMC4wNTQyOCwgMC4wOTU1MzMsIDAuMTMzNzk4LCAwLjE2MTA0NiwgMC4yMDQ2MTcsIDAuMjQyNzM2LCAwLjI5NzE1NyIsIFwKLSAgICAgICAgICAiMC4wNjY2NjQsIDAuMTA3OTIzLCAwLjE0NjIxOCwgMC4xNzM0ODMsIDAuMjE3MDU3LCAwLjI1NTE5LCAwLjMwOTU5MSIsIFwKLSAgICAgICAgICAiMC4wNzgzMzUsIDAuMTE5NjkyLCAwLjE1Nzk4MiwgMC4xODUyMzksIDAuMjI4ODI4LCAwLjI2Njk0NSwgMC4zMjEzNzQiLCBcCi0gICAgICAgICAgIjAuMDg4ODM5LCAwLjEzMDU2OSwgMC4xNjg4NiwgMC4xOTYxMTMsIDAuMjM5Njg4LCAwLjI3Nzc5NiwgMC4zMzIyNTQiLCBcCi0gICAgICAgICAgIjAuMTAyODEyLCAwLjE0NTM5MSwgMC4xODM3MzIsIDAuMjEwODk3LCAwLjI1NDQ1OSwgMC4yOTI1NywgMC4zNDY5NzkiLCBcCi0gICAgICAgICAgIjAuMTEzMzI5LCAwLjE1NjU2NCwgMC4xOTQ5NzQsIDAuMjIyMjU3LCAwLjI2NTgyMywgMC4zMDM4NjcsIDAuMzU4MjY5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDIzNzU5LCAwLjA5NzQ4MiwgMC4xNzM0NjQsIDAuMjI4NTE2LCAwLjMxNjE2MiwgMC4zOTMwNiwgMC41MDQzMjEiLCBcCi0gICAgICAgICAgIjAuMDIzNzMxLCAwLjA5NzQ3OSwgMC4xNzM0NTMsIDAuMjI4NTE2LCAwLjMxNjExNSwgMC4zOTMxMzMsIDAuNTA0MzI4IiwgXAotICAgICAgICAgICIwLjAyMzkzNiwgMC4wOTc0ODksIDAuMTczNDc2LCAwLjIyODU0OSwgMC4zMTYyMTQsIDAuMzkzODg4LCAwLjUwNDM2OSIsIFwKLSAgICAgICAgICAiMC4wMjQ4MzEsIDAuMDk3NzE0LCAwLjE3Mzc3NiwgMC4yMjg1ODksIDAuMzE2NzEsIDAuMzkzMDIsIDAuNTA0MzA2IiwgXAotICAgICAgICAgICIwLjAyNjYzNiwgMC4wOTgyNjMsIDAuMTc0MDM4LCAwLjIyODc0MywgMC4zMTY1NjUsIDAuMzkzOTQyLCAwLjUwNDI1NyIsIFwKLSAgICAgICAgICAiMC4wMjg0NDIsIDAuMDk5MTgzLCAwLjE3NDM4OCwgMC4yMjkwODgsIDAuMzE2ODkyLCAwLjM5MzkyLCAwLjUwNDM5NCIsIFwKLSAgICAgICAgICAiMC4wMzA1NDEsIDAuMTAwMTM1LCAwLjE3NDk0NCwgMC4yMjkzMzQsIDAuMzE2MzA0LCAwLjM5MzgyNCwgMC41MDM2OTMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDAyMDksIDAuMTUzODcsIDAuMTkzODQxLCAwLjIyMDkzMywgMC4yNjMwNDIsIDAuMjk5NTcsIDAuMzUxNTMzIiwgXAotICAgICAgICAgICIwLjEwNzkxMywgMC4xNjE1MTUsIDAuMjAxODA0LCAwLjIyODc4NCwgMC4yNzA5ODUsIDAuMzA3NDk0LCAwLjM1OTQxMSIsIFwKLSAgICAgICAgICAiMC4xMTgwMTMsIDAuMTcxNzgxLCAwLjIxMjAyNCwgMC4yMzkwMDIsIDAuMjgxMTcsIDAuMzE3Njg2LCAwLjM2OTYwNCIsIFwKLSAgICAgICAgICAiMC4xMjg0OTgsIDAuMTgyMjA0LCAwLjIyMjQ0LCAwLjI0OTQ3MiwgMC4yOTE2MDgsIDAuMzI4MTAzLCAwLjM4MDAyMSIsIFwKLSAgICAgICAgICAiMC4xMzk0MjIsIDAuMTkzMTksIDAuMjMzMzU2LCAwLjI2MDMxNSwgMC4zMDI0NiwgMC4zMzg5NDEsIDAuMzkwOTA1IiwgXAotICAgICAgICAgICIwLjE1NjU1NywgMC4yMDk5MzIsIDAuMjUwMTI4LCAwLjI3NzEyNywgMC4zMTkyNzYsIDAuMzU1NzQ4LCAwLjQwNzY5OCIsIFwKLSAgICAgICAgICAiMC4xNzA5NDcsIDAuMjI0NzMzLCAwLjI2NTA4LCAwLjI5MjA5NywgMC4zMzM5NzYsIDAuMzcwNDkzLCAwLjQyMjQwNCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0MjMyMywgMC4xMTYwOTIsIDAuMTg2NTQ0LCAwLjIzNzI2MywgMC4zMTk1NDMsIDAuMzkyMzM5LCAwLjQ5Njg4MiIsIFwKLSAgICAgICAgICAiMC4wNDIxMTksIDAuMTE2MTg4LCAwLjE4NjE4MSwgMC4yMzcwNiwgMC4zMTkzOCwgMC4zOTIyMTgsIDAuNDk3MjA1IiwgXAotICAgICAgICAgICIwLjA0MjI0MSwgMC4xMTU5LCAwLjE4NjA1MywgMC4yMzcwMjUsIDAuMzE5Mzc4LCAwLjM5MjIwMSwgMC40OTcxNiIsIFwKLSAgICAgICAgICAiMC4wNDE5OTIsIDAuMTE1ODY5LCAwLjE4NjEwMywgMC4yMzY5NDUsIDAuMzE5Mjk3LCAwLjM5MjEzNiwgMC40OTcxMDciLCBcCi0gICAgICAgICAgIjAuMDQyMjUxLCAwLjExNTk4OCwgMC4xODYxNjMsIDAuMjM2OTc3LCAwLjMxOTM4NywgMC4zOTIyNDcsIDAuNDk2OTAzIiwgXAotICAgICAgICAgICIwLjA0MjY4OSwgMC4xMTY5NTQsIDAuMTg2ODAxLCAwLjIzNzQ4LCAwLjMxOTY0NSwgMC4zOTI0MzMsIDAuNDk3MDc2IiwgXAotICAgICAgICAgICIwLjA0NDAzMywgMC4xMTcyMjUsIDAuMTg3MDQsIDAuMjM3NjMxLCAwLjMxOTc3MiwgMC4zOTI0OTgsIDAuNDk3MjkxIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQzMTE5LCAwLjA4NDM0NywgMC4xMjI2MTQsIDAuMTQ5ODUyLCAwLjE5MzM0LCAwLjIzMTQzNSwgMC4yODU4NyIsIFwKLSAgICAgICAgICAiMC4wNTMxNTYsIDAuMDk0NDI4LCAwLjEzMjY3NiwgMC4xNTk5MTgsIDAuMjAzNDY1LCAwLjI0MTU0OSwgMC4yOTYwMDkiLCBcCi0gICAgICAgICAgIjAuMDY1NTIyLCAwLjEwNjYxNiwgMC4xNDQ5MDUsIDAuMTcyMTM3LCAwLjIxNTcwNSwgMC4yNTM4MjYsIDAuMzA4MjA5IiwgXAotICAgICAgICAgICIwLjA3NzA4MSwgMC4xMTg1MjgsIDAuMTU2NjQ3LCAwLjE4Mzg4NCwgMC4yMjc0MzksIDAuMjY1NTkxLCAwLjMxOTk2NyIsIFwKLSAgICAgICAgICAiMC4wODY3MiwgMC4xMjg1NzksIDAuMTY2OTYzLCAwLjE5NDE4NSwgMC4yMzc3MzMsIDAuMjc1ODQ0LCAwLjMzMDI2OSIsIFwKLSAgICAgICAgICAiMC4xMDAxNzcsIDAuMTQyODYyLCAwLjE4MDY3OCwgMC4yMDc2ODcsIDAuMjUxMjExLCAwLjI4OTI4NSwgMC4zNDM3NjgiLCBcCi0gICAgICAgICAgIjAuMTEwMjMxLCAwLjE1MzYzNiwgMC4xOTE3NDgsIDAuMjE4ODU2LCAwLjI2MTUzOSwgMC4yOTk2MzMsIDAuMzU0MDgyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDIzNzA4LCAwLjA5NzQ0NCwgMC4xNzM2MywgMC4yMjg0MjMsIDAuMzE2NDkzLCAwLjM5MzE2LCAwLjUwNDQ0MyIsIFwKLSAgICAgICAgICAiMC4wMjM3MDIsIDAuMDk3NDA5LCAwLjE3MzQxNSwgMC4yMjgyMDksIDAuMzE2MTIyLCAwLjM5MzgwNCwgMC41MDMwMjMiLCBcCi0gICAgICAgICAgIjAuMDIzOTYyLCAwLjA5NzU2LCAwLjE3MzY3MywgMC4yMjg0NzIsIDAuMzE2MTAyLCAwLjM5MjgzOSwgMC41MDQzNDMiLCBcCi0gICAgICAgICAgIjAuMDI1MDE2LCAwLjA5Nzg5OCwgMC4xNzM1NTMsIDAuMjI4NTYsIDAuMzE2NTE5LCAwLjM5Mjc4NiwgMC41MDQzNjMiLCBcCi0gICAgICAgICAgIjAuMDI2ODQ4LCAwLjA5ODM4OSwgMC4xNzQwOTksIDAuMjI4NDIsIDAuMzE2Njc1LCAwLjM5MzM2OCwgMC41MDQ0MzQiLCBcCi0gICAgICAgICAgIjAuMDI4ODcsIDAuMDk5NTMsIDAuMTc0NjQ1LCAwLjIyOTI4NywgMC4zMTY5ODQsIDAuMzkzNzczLCAwLjUwMjk2OSIsIFwKLSAgICAgICAgICAiMC4wMzA3NjYsIDAuMTAwNDc4LCAwLjE3NTEzNCwgMC4yMjk1MjMsIDAuMzE3MjM0LCAwLjM5NDIxNywgMC41MDMyNjIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwOTg1MiwgMC4wMTAwMDIsIDAuMDEwMDc4LCAwLjAxMDExNSwgMC4wMTAxNDYsIDAuMDEwMTYzLCAwLjAxMDE3OCIsIFwKLSAgICAgICAgICAiMC4wMDk3NTgsIDAuMDA5OTUyLCAwLjAxMDAyMiwgMC4wMTAwNDEsIDAuMDEwMDc1LCAwLjAxMDA5MywgMC4wMTAxMDYiLCBcCi0gICAgICAgICAgIjAuMDA5NzIsIDAuMDA5ODUzLCAwLjAwOTk0NiwgMC4wMDk5ODEsIDAuMDEwMDEsIDAuMDEwMDMyLCAwLjAxMDA1MiIsIFwKLSAgICAgICAgICAiMC4wMDk2NjIsIDAuMDA5ODE4LCAwLjAwOTkxMywgMC4wMDk5NDksIDAuMDA5OTgzLCAwLjAxMDAwMiwgMC4wMTAwMTUiLCBcCi0gICAgICAgICAgIjAuMDA5NjUsIDAuMDA5Nzk4LCAwLjAwOTg5MywgMC4wMDk5MywgMC4wMDk5NjcsIDAuMDA5OTg4LCAwLjAxMDAwNSIsIFwKLSAgICAgICAgICAiMC4wMDk2NiwgMC4wMDk3NzQsIDAuMDA5ODczLCAwLjAwOTkxMSwgMC4wMDk5NTIsIDAuMDA5OTc0LCAwLjAwOTk5MSIsIFwKLSAgICAgICAgICAiMC4wMDk3MDcsIDAuMDA5Nzc5LCAwLjAwOTg3MywgMC4wMDk5MTEsIDAuMDA5OTUxLCAwLjAwOTk3MiwgMC4wMDk5ODYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxNDA3NiwgMC4wMTQ1MTIsIDAuMDE0NjAyLCAwLjAxNDYzMSwgMC4wMTQ2NTksIDAuMDE0NjczLCAwLjAxNDY4NSIsIFwKLSAgICAgICAgICAiMC4wMTQwMDMsIDAuMDE0NDM4LCAwLjAxNDUzOCwgMC4wMTQ1NzIsIDAuMDE0NjAyLCAwLjAxNDYxOCwgMC4wMTQ2MzMiLCBcCi0gICAgICAgICAgIjAuMDEzOTYzLCAwLjAxNDM3MSwgMC4wMTQ0ODQsIDAuMDE0NTI2LCAwLjAxNDU2MywgMC4wMTQ1ODQsIDAuMDE0NjAzIiwgXAotICAgICAgICAgICIwLjAxMzk0MywgMC4wMTQzMTksIDAuMDE0NDUzLCAwLjAxNDUwMSwgMC4wMTQ1NDgsIDAuMDE0NTczLCAwLjAxNDU5NyIsIFwKLSAgICAgICAgICAiMC4wMTQwMTIsIDAuMDE0MzE0LCAwLjAxNDQzNiwgMC4wMTQ0OTEsIDAuMDE0NTQyLCAwLjAxNDU3LCAwLjAxNDU5NiIsIFwKLSAgICAgICAgICAiMC4wMTQwMTEsIDAuMDE0MjkyLCAwLjAxNDQyNSwgMC4wMTQ0ODEsIDAuMDE0NTM3LCAwLjAxNDU3MiwgMC4wMTQ2IiwgXAotICAgICAgICAgICIwLjAxNDA1NywgMC4wMTQzMTUsIDAuMDE0NDQ0LCAwLjAxNDQ5OSwgMC4wMTQ1NiwgMC4wMTQ1OTQsIDAuMDE0NjI5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDk4NDksIDAuMDEwMDA3LCAwLjAxMDA4OCwgMC4wMTAxMjQsIDAuMDEwMTUzLCAwLjAxMDE4LCAwLjAxMDE5MiIsIFwKLSAgICAgICAgICAiMC4wMDk3NzksIDAuMDA5OTI2LCAwLjAxMDAwNiwgMC4wMTAwNDIsIDAuMDEwMDc2LCAwLjAxMDA5NCwgMC4wMTAxMTIiLCBcCi0gICAgICAgICAgIjAuMDA5NzAzLCAwLjAwOTg2LCAwLjAwOTk1NSwgMC4wMDk5ODksIDAuMDEwMDI2LCAwLjAxMDA0NSwgMC4wMTAwNjMiLCBcCi0gICAgICAgICAgIjAuMDA5NjYxLCAwLjAwOTgxNywgMC4wMDk5MTQsIDAuMDA5OTUsIDAuMDA5OTkzLCAwLjAxMDAxNCwgMC4wMTAwMyIsIFwKLSAgICAgICAgICAiMC4wMDk2NzgsIDAuMDA5ODA1LCAwLjAwOTkwNiwgMC4wMDk5MzgsIDAuMDA5OTc2LCAwLjAxLCAwLjAxMDAxNyIsIFwKLSAgICAgICAgICAiMC4wMDk3MSwgMC4wMDk3OTYsIDAuMDA5ODc4LCAwLjAwOTkyMywgMC4wMDk5NjYsIDAuMDA5OTg4LCAwLjAxMDAwNSIsIFwKLSAgICAgICAgICAiMC4wMDk4MjcsIDAuMDA5ODEzLCAwLjAwOTg5NiwgMC4wMDk5MjQsIDAuMDA5OTY1LCAwLjAwOTk4NSwgMC4wMTAwMDUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMzM0OCwgMC4wMTM4MjQsIDAuMDEzOTIxLCAwLjAxMzk1MiwgMC4wMTM5ODEsIDAuMDEzOTk2LCAwLjAxNDAwOSIsIFwKLSAgICAgICAgICAiMC4wMTMyNzQsIDAuMDEzNzQ2LCAwLjAxMzg1NSwgMC4wMTM4OTEsIDAuMDEzOTI0LCAwLjAxMzk0MSwgMC4wMTM5NTgiLCBcCi0gICAgICAgICAgIjAuMDEzMjM0LCAwLjAxMzY3OSwgMC4wMTM4MDEsIDAuMDEzODQ2LCAwLjAxMzg4NiwgMC4wMTM5MDksIDAuMDEzOTI4IiwgXAotICAgICAgICAgICIwLjAxMzIwMywgMC4wMTM2MSwgMC4wMTM3NTUsIDAuMDEzODA3LCAwLjAxMzg1OCwgMC4wMTM4ODYsIDAuMDEzOTEyIiwgXAotICAgICAgICAgICIwLjAxMzIxLCAwLjAxMzU3OSwgMC4wMTM3MTQsIDAuMDEzNzY5LCAwLjAxMzgyMywgMC4wMTM4NTMsIDAuMDEzODgxIiwgXAotICAgICAgICAgICIwLjAxMzE5OSwgMC4wMTM1MzIsIDAuMDEzNjg0LCAwLjAxMzc0NCwgMC4wMTM4MDUsIDAuMDEzODQsIDAuMDEzODczIiwgXAotICAgICAgICAgICIwLjAxMzI0MSwgMC4wMTM1MzgsIDAuMDEzNjg1LCAwLjAxMzc0NiwgMC4wMTM4MTMsIDAuMDEzODUxLCAwLjAxMzg4OCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA5ODQzLCAwLjAxMDA0NywgMC4wMTAxMywgMC4wMTAxNTMsIDAuMDEwMTg3LCAwLjAxMDE4OSwgMC4wMTAyMjgiLCBcCi0gICAgICAgICAgIjAuMDA5ODA3LCAwLjAwOTkzMywgMC4wMTAwMTQsIDAuMDEwMDUyLCAwLjAxMDA5OSwgMC4wMTAxMTcsIDAuMDEwMTEiLCBcCi0gICAgICAgICAgIjAuMDA5NzAyLCAwLjAwOTg1MywgMC4wMDk5NiwgMC4wMDk5OTUsIDAuMDEwMDM4LCAwLjAxMDA1MywgMC4wMTAwNzMiLCBcCi0gICAgICAgICAgIjAuMDA5NjY0LCAwLjAwOTgxMywgMC4wMDk5MTQsIDAuMDA5OTU1LCAwLjAwOTk5OCwgMC4wMTAwMjIsIDAuMDEwMDQiLCBcCi0gICAgICAgICAgIjAuMDA5NzE0LCAwLjAwOTgxMywgMC4wMDk5MDYsIDAuMDA5OTQxLCAwLjAwOTk4NiwgMC4wMTAwMTMsIDAuMDEwMDI1IiwgXAotICAgICAgICAgICIwLjAwOTczNywgMC4wMDk3OTcsIDAuMDA5ODkxLCAwLjAwOTkyNCwgMC4wMDk5NywgMC4wMDk5OTksIDAuMDEwMDE4IiwgXAotICAgICAgICAgICIwLjAwOTc2LCAwLjAwOTg2NywgMC4wMDk5MjMsIDAuMDA5OTUyLCAwLjAwOTk4NiwgMC4wMTAwMDcsIDAuMDEwMDI4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTI0ODgsIDAuMDEyOTY0LCAwLjAxMzA1NSwgMC4wMTMwODUsIDAuMDEzMTExLCAwLjAxMzEyNSwgMC4wMTMxMzciLCBcCi0gICAgICAgICAgIjAuMDEyNDI1LCAwLjAxMjg5OSwgMC4wMTMwMDMsIDAuMDEzMDM4LCAwLjAxMzA2OSwgMC4wMTMwODYsIDAuMDEzMTAxIiwgXAotICAgICAgICAgICIwLjAxMjM3NiwgMC4wMTI4MiwgMC4wMTI5NDMsIDAuMDEyOTg3LCAwLjAxMzAyOCwgMC4wMTMwNSwgMC4wMTMwNjkiLCBcCi0gICAgICAgICAgIjAuMDEyMzM1LCAwLjAxMjc1OCwgMC4wMTI4ODksIDAuMDEyOTQxLCAwLjAxMjk5LCAwLjAxMzAxOCwgMC4wMTMwNDMiLCBcCi0gICAgICAgICAgIjAuMDEyMzU0LCAwLjAxMjcyLCAwLjAxMjg1OSwgMC4wMTI5MTMsIDAuMDEyOTU5LCAwLjAxMjk4NywgMC4wMTMwMTUiLCBcCi0gICAgICAgICAgIjAuMDEyMzI5LCAwLjAxMjY2NywgMC4wMTI4MTgsIDAuMDEyODc3LCAwLjAxMjkzOSwgMC4wMTI5NzQsIDAuMDEzMDA2IiwgXAotICAgICAgICAgICIwLjAxMjM3MiwgMC4wMTI2NiwgMC4wMTI4MDcsIDAuMDEyODY4LCAwLjAxMjkzNSwgMC4wMTI5OTMsIDAuMDEzMDI5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDk4MzYsIDAuMDA5OTk4LCAwLjAxMDEwNiwgMC4wMTAxNDQsIDAuMDEwMTgxLCAwLjAxMDIwNCwgMC4wMTAyMiIsIFwKLSAgICAgICAgICAiMC4wMDk3NDUsIDAuMDA5OTA1LCAwLjAxMDAwOCwgMC4wMTAwNDEsIDAuMDEwMDg1LCAwLjAxMDEwNiwgMC4wMTAxMjQiLCBcCi0gICAgICAgICAgIjAuMDA5Njk1LCAwLjAwOTg1LCAwLjAwOTk0MywgMC4wMDk5ODMsIDAuMDEwMDM2LCAwLjAxMDA2MSwgMC4wMTAwNyIsIFwKLSAgICAgICAgICAiMC4wMDk3MDMsIDAuMDA5ODQzLCAwLjAwOTk0NCwgMC4wMDk5ODYsIDAuMDEwMDI5LCAwLjAxMDA1NCwgMC4wMTAwNzgiLCBcCi0gICAgICAgICAgIjAuMDA5Nzc5LCAwLjAwOTg0NSwgMC4wMDk5MzUsIDAuMDA5OTczLCAwLjAxMDAxNiwgMC4wMTAwMzgsIDAuMDEwMDciLCBcCi0gICAgICAgICAgIjAuMDA5OTQ0LCAwLjAwOTkwMiwgMC4wMDk5ODQsIDAuMDEwMDI0LCAwLjAxMDA2OCwgMC4wMTAwOTQsIDAuMDEwMTIiLCBcCi0gICAgICAgICAgIjAuMDA5OTI3LCAwLjAxMDAzNCwgMC4wMTAwNzIsIDAuMDEwMDk0LCAwLjAxMDEzMSwgMC4wMTAxNTIsIDAuMDEwMTc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTE2MTEsIDAuMDEyMDcyLCAwLjAxMjE1OSwgMC4wMTIxODcsIDAuMDEyMjEyLCAwLjAxMjIyNSwgMC4wMTIyMzYiLCBcCi0gICAgICAgICAgIjAuMDExNTI5LCAwLjAxMjAwOSwgMC4wMTIxMDksIDAuMDEyMTQxLCAwLjAxMjE3MSwgMC4wMTIxODYsIDAuMDEyMTk5IiwgXAotICAgICAgICAgICIwLjAxMTQ4NCwgMC4wMTE5MTUsIDAuMDEyMDM4LCAwLjAxMjA4MSwgMC4wMTIxMiwgMC4wMTIxNDEsIDAuMDEyMTYxIiwgXAotICAgICAgICAgICIwLjAxMTQyNiwgMC4wMTE4NDMsIDAuMDExOTc5LCAwLjAxMjAyOSwgMC4wMTIwNzcsIDAuMDEyMTAyLCAwLjAxMjEyNiIsIFwKLSAgICAgICAgICAiMC4wMTE1MTcsIDAuMDExODQyLCAwLjAxMTk3LCAwLjAxMjAyNCwgMC4wMTIwNzIsIDAuMDEyMSwgMC4wMTIxMjciLCBcCi0gICAgICAgICAgIjAuMDExNDQzLCAwLjAxMTgxMSwgMC4wMTE5MzksIDAuMDExOTk3LCAwLjAxMjA2LCAwLjAxMjA5NCwgMC4wMTIxMjYiLCBcCi0gICAgICAgICAgIjAuMDExNTE0LCAwLjAxMTgxNiwgMC4wMTE5NTgsIDAuMDEyMDE1LCAwLjAxMjA1NSwgMC4wMTIxLCAwLjAxMjEzNCIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogQU5ENFhMICoKLSAqIC0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoQU5ENFhMKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMTAzOTEyOwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2MzU3MTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MzU3MTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2MzQyNDg7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjI2LCAwLjAwMDIyNiwgMC4wMDAyMjYsIDAuMDAwMjI2LCAwLjAwMDIyNiwgMC4wMDAyMjYsIDAuMDAwMjI2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjI3LCAwLjAwMDIyNywgMC4wMDAyMjcsIDAuMDAwMjI3LCAwLjAwMDIyNywgMC4wMDAyMjcsIDAuMDAwMjI3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2Njg4NzQ7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjY4ODc0OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDY2NzU4MzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyMjYsIDAuMDAwMjI2LCAwLjAwMDIyNiwgMC4wMDAyMjYsIDAuMDAwMjI2LCAwLjAwMDIyNiwgMC4wMDAyMjYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyMjcsIDAuMDAwMjI3LCAwLjAwMDIyNywgMC4wMDAyMjcsIDAuMDAwMjI3LCAwLjAwMDIyNywgMC4wMDAyMjciKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEMpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDcwMzYwNDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA3MDM2MDQ7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNzAyNzQ0OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDIyNiwgMC4wMDAyMjYsIDAuMDAwMjI2LCAwLjAwMDIyNiwgMC4wMDAyMjYsIDAuMDAwMjI2LCAwLjAwMDIyNiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDIyNywgMC4wMDAyMjcsIDAuMDAwMjI3LCAwLjAwMDIyNywgMC4wMDAyMjcsIDAuMDAwMjI3LCAwLjAwMDIyNyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjY5NjgyOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDY2OTM2OTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2Njk2ODI7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMTY1LCAwLjAwMDE2NSwgMC4wMDAxNjUsIDAuMDAwMTY1LCAwLjAwMDE2NSwgMC4wMDAxNjUsIDAuMDAwMTY1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjU3LCAwLjAwMDI1NywgMC4wMDAyNTcsIDAuMDAwMjU3LCAwLjAwMDI1NywgMC4wMDAyNTksIDAuMDAwMjU3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMTUwNjY1OwotICAgIGZ1bmN0aW9uIDogIigoKEEgQikgQykgRCkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE2OTYxLCAwLjE4NDA4MSwgMC4zMTE1NjEsIDAuNTIzNDE3LCAwLjczNTIyOSwgMS4yMjk1MywgMS41MTI0NCIsIFwKLSAgICAgICAgICAiMC4xNzczMjcsIDAuMTkxODAyLCAwLjMxOTI5MSwgMC41MzEyMDksIDAuNzQyOTY0LCAxLjIzNzMsIDEuNTE5OTQiLCBcCi0gICAgICAgICAgIjAuMTg1ODYxLCAwLjIwMDMxMywgMC4zMjc4NTMsIDAuNTM5Njc4LCAwLjc1MTY0NiwgMS4yNDYzLCAxLjUyOTE5IiwgXAotICAgICAgICAgICIwLjE5MzgyNCwgMC4yMDgyNjQsIDAuMzM1NzI1LCAwLjU0NzUzNCwgMC43NTk0MDUsIDEuMjU0NzEsIDEuNTM2NTUiLCBcCi0gICAgICAgICAgIjAuMjAxMjczLCAwLjIxNTcxNSwgMC4zNDMxNjksIDAuNTU1MDEyLCAwLjc2Njg2NCwgMS4yNjE5OSwgMS41NDQyNCIsIFwKLSAgICAgICAgICAiMC4yMTMwNTUsIDAuMjI3NDk0LCAwLjM1NDk2MSwgMC41NjY3OCwgMC43Nzg2MzksIDEuMjczMTQsIDEuNTU1NzUiLCBcCi0gICAgICAgICAgIjAuMjIyNjksIDAuMjM3MTM5LCAwLjM2NDY4NiwgMC41NzY0NzQsIDAuNzg4MzExLCAxLjI4MzY2LCAxLjU2NTUzIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE2Mzg2MSwgMC4xOTE1NjQsIDAuNDQ3MTY1LCAwLjg4MDg3NywgMS4zMTYwOCwgMi4zMzI2NCwgMi45MDgwMyIsIFwKLSAgICAgICAgICAiMC4xNjM4NDQsIDAuMTkxNTQ0LCAwLjQ0NzE1MiwgMC44NzkwMjIsIDEuMzE2MDcsIDIuMzMyNjgsIDIuOTA2OTQiLCBcCi0gICAgICAgICAgIjAuMTYzNTg5LCAwLjE5MTQ0MSwgMC40NDcxNDQsIDAuODc5NjY1LCAxLjMxMzMsIDIuMzI3OTksIDIuOTA3OTgiLCBcCi0gICAgICAgICAgIjAuMTYzNTg1LCAwLjE5MTM0NywgMC40NDcwNywgMC44Nzk0MDIsIDEuMzE1MjgsIDIuMzI4NjYsIDIuOTA2NTkiLCBcCi0gICAgICAgICAgIjAuMTYzNzAyLCAwLjE5MTQ1MywgMC40NDY3ODQsIDAuODc5NTQ1LCAxLjMxNjA0LCAyLjMyODI0LCAyLjkwNzc5IiwgXAotICAgICAgICAgICIwLjE2NDA1NywgMC4xOTE3NDcsIDAuNDQ3MTY3LCAwLjg3OTQyOCwgMS4zMTUxMywgMi4zMjc1NywgMi45MDY3NSIsIFwKLSAgICAgICAgICAiMC4xNjQ0NTMsIDAuMTkyMDkyLCAwLjQ0NzQxNiwgMC44Nzk1MzcsIDEuMzE1NzgsIDIuMzI4MDIsIDIuOTA4MDUiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTA1NzU4LCAwLjExOTY1NywgMC4yNDQzMzMsIDAuNDUxODU3LCAwLjY1OTMwNSwgMS4xNDMzLCAxLjQxOTc5IiwgXAotICAgICAgICAgICIwLjExNTU4LCAwLjEyOTQ3MywgMC4yNTQxNjEsIDAuNDYxNjkyLCAwLjY2OTEzNCwgMS4xNTMxMywgMS40Mjk4NCIsIFwKLSAgICAgICAgICAiMC4xMjc3MzMsIDAuMTQxNjEyLCAwLjI2NjMxNywgMC40NzM4MzMsIDAuNjgxMjk3LCAxLjE2NTI5LCAxLjQ0MTgyIiwgXAotICAgICAgICAgICIwLjEzODkyNiwgMC4xNTI4MTYsIDAuMjc3NTE4LCAwLjQ4NTAzLCAwLjY5MjQ5MiwgMS4xNzY0OSwgMS40NTMwMiIsIFwKLSAgICAgICAgICAiMC4xNDg1LCAwLjE2MjM4MSwgMC4yODcxMDMsIDAuNDk0NjAzLCAwLjcwMjA2NSwgMS4xODYwNywgMS40NjI2IiwgXAotICAgICAgICAgICIwLjE2MTY2NCwgMC4xNzU1NTYsIDAuMzAwMjUsIDAuNTA3Nzc1LCAwLjcxNTIwNiwgMS4xOTkyMywgMS40NzU3NyIsIFwKLSAgICAgICAgICAiMC4xNzE2MzIsIDAuMTg1NTE5LCAwLjMxMDE5NSwgMC41MTc3MjMsIDAuNzI1MjE5LCAxLjIwOTE4LCAxLjQ4NTcyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE0Nzc5NCwgMC4xNzUxNiwgMC40MjQ3NTUsIDAuODQxMTg5LCAxLjI1NzgsIDIuMjMwMTksIDIuNzg2NjIiLCBcCi0gICAgICAgICAgIjAuMTQ3NzgxLCAwLjE3NTU0MywgMC40MjQ3NjIsIDAuODQwMTg1LCAxLjI1NzgyLCAyLjIzMDEzLCAyLjc4MTQzIiwgXAotICAgICAgICAgICIwLjE0Nzc2NywgMC4xNzU1NTMsIDAuNDI0NzY2LCAwLjg0MTMzNiwgMS4yNTc4MSwgMi4yMzAxMSwgMi43ODYyIiwgXAotICAgICAgICAgICIwLjE0ODAyLCAwLjE3NTY2LCAwLjQyNDc2NCwgMC44NDEzOTgsIDEuMjU3OTUsIDIuMjMwMzEsIDIuNzg2MjgiLCBcCi0gICAgICAgICAgIjAuMTQ4MjgsIDAuMTc1Nzg3LCAwLjQyNDc0OCwgMC44NDE0NDgsIDEuMjU3OTksIDIuMjMwMjcsIDIuNzg2MzIiLCBcCi0gICAgICAgICAgIjAuMTQ4NjI4LCAwLjE3NjEwMiwgMC40MjQ4MiwgMC44NDExNDIsIDEuMjU3OTYsIDIuMjI3NzUsIDIuNzg1NyIsIFwKLSAgICAgICAgICAiMC4xNDg5NDUsIDAuMTc2MDYyLCAwLjQyNDcyNywgMC44NDEyNzksIDEuMjU3NTUsIDIuMjI5OTgsIDIuNzg1ODQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTY3MTU5LCAwLjE4MTY0OSwgMC4zMDkxNDMsIDAuNTIwOTksIDAuNzMyOTUsIDEuMjI4MTEsIDEuNTEwMTciLCBcCi0gICAgICAgICAgIjAuMTc0OTIxLCAwLjE4OTQwMSwgMC4zMTY5MSwgMC41Mjg4MDYsIDAuNzQwNTk1LCAxLjIzNDkyLCAxLjUxNzQ1IiwgXAotICAgICAgICAgICIwLjE4MzkzNSwgMC4xOTgzODIsIDAuMzI1OTE1LCAwLjUzNzc1OCwgMC43NDk2MTEsIDEuMjQ0ODYsIDEuNTI2OTUiLCBcCi0gICAgICAgICAgIjAuMTkyNzksIDAuMjA3MjMsIDAuMzM0NzAxLCAwLjU0NjUzOSwgMC43NTg0MSwgMS4yNTMyMSwgMS41MzU1MSIsIFwKLSAgICAgICAgICAiMC4yMDE0MzIsIDAuMjE1ODk0LCAwLjM0MzM3NiwgMC41NTUyMjMsIDAuNzY3MDkxLCAxLjI2MjM0LCAxLjU0NDI4IiwgXAotICAgICAgICAgICIwLjIxNDYxLCAwLjIyOTAyOCwgMC4zNTY1MjUsIDAuNTY4Mzc4LCAwLjc4MDIxMSwgMS4yNzQ2MywgMS41NTczNCIsIFwKLSAgICAgICAgICAiMC4yMjU4MDEsIDAuMjQwMjk1LCAwLjM2Nzg1NiwgMC41Nzk2NTMsIDAuNzkxNTEsIDEuMjg2NDIsIDEuNTY4NiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNjM5MDEsIDAuMTkxNDIxLCAwLjQ0NzE2OSwgMC44Nzk0NTQsIDEuMzEzMjksIDIuMzI3OTgsIDIuOTA3ODIiLCBcCi0gICAgICAgICAgIjAuMTYzODExLCAwLjE5MTUxNSwgMC40NDcxMzksIDAuODgwOTM1LCAxLjMxNjA3LCAyLjMzMjY1LCAyLjkwNzE5IiwgXAotICAgICAgICAgICIwLjE2MzY1NCwgMC4xOTE0MDgsIDAuNDQ3MTE2LCAwLjg3OTYyNSwgMS4zMTUxOCwgMi4zMjgwNiwgMi45MDc4IiwgXAotICAgICAgICAgICIwLjE2MzU3NSwgMC4xOTEzMzksIDAuNDQ3MDM3LCAwLjg3OTU4NiwgMS4zMTUyLCAyLjMyODAyLCAyLjkwNjgxIiwgXAotICAgICAgICAgICIwLjE2MzYxNSwgMC4xOTE0MDIsIDAuNDQ2Nzc4LCAwLjg3OTU2OSwgMS4zMTUxNywgMi4zMjgwNCwgMi45MDgwNCIsIFwKLSAgICAgICAgICAiMC4xNjQyNTgsIDAuMTkxODM1LCAwLjQ0NzIwMiwgMC44ODA2NjIsIDEuMzE1MTYsIDIuMzI3NTUsIDIuOTA2NyIsIFwKLSAgICAgICAgICAiMC4xNjQ5NDUsIDAuMTkyNDk3LCAwLjQ0Njc2MywgMC44Nzk0MTEsIDEuMzE1OCwgMi4zMjgzMSwgMi45MDY4MiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDQ0NDYsIDAuMTE4MzEyLCAwLjI0MjkwNSwgMC40NTAzNjIsIDAuNjU3ODE3LCAxLjE0MTczLCAxLjQxODI3IiwgXAotICAgICAgICAgICIwLjExNDM3NywgMC4xMjgyNSwgMC4yNTI4NDYsIDAuNDYwMzEzLCAwLjY2NzcyNSwgMS4xNTE3NywgMS40MjgyIiwgXAotICAgICAgICAgICIwLjEyNjMyMywgMC4xNDAxOTUsIDAuMjY0ODE0LCAwLjQ3MjI4NiwgMC42Nzk3MDIsIDEuMTYzNzYsIDEuNDQwMTciLCBcCi0gICAgICAgICAgIjAuMTM3NDU5LCAwLjE1MTMzMywgMC4yNzU5NTQsIDAuNDgzNDIzLCAwLjY5MDgzOSwgMS4xNzQ5LCAxLjQ1MTM0IiwgXAotICAgICAgICAgICIwLjE0Njc3NywgMC4xNjA2NDEsIDAuMjg1Mjk2LCAwLjQ5Mjc0LCAwLjcwMDE2NywgMS4xODQxMiwgMS40NjA2MyIsIFwKLSAgICAgICAgICAiMC4xNTk1OTEsIDAuMTczNDUyLCAwLjI5ODA4LCAwLjUwNTYwNCwgMC43MTMwMDcsIDEuMTk2OTcsIDEuNDczNDgiLCBcCi0gICAgICAgICAgIjAuMTY5MjU5LCAwLjE4MzE3NSwgMC4zMDc3ODEsIDAuNTE1Mjc4LCAwLjcyMjc3MSwgMS4yMDY2NywgMS40ODMxOCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNDc0NDYsIDAuMTc1MjIyLCAwLjQyNDY3LCAwLjg0MTQ1MywgMS4yNTc5NCwgMi4yMjc3MiwgMi43ODc0MSIsIFwKLSAgICAgICAgICAiMC4xNDc0MzIsIDAuMTc1MjcyLCAwLjQyNDY2NCwgMC44NDEzMzcsIDEuMjU4MzMsIDIuMjMwNjEsIDIuNzg3MjQiLCBcCi0gICAgICAgICAgIjAuMTQ3NDU3LCAwLjE3NTI0MSwgMC40MjQ2ODcsIDAuODQwMzM1LCAxLjI1ODQsIDIuMjMwNTksIDIuNzg3MTQiLCBcCi0gICAgICAgICAgIjAuMTQ3Nzg2LCAwLjE3NTM3NywgMC40MjQ2MjYsIDAuODQwMzk0LCAxLjI1ODQ0LCAyLjIzMDYxLCAyLjc4NzM3IiwgXAotICAgICAgICAgICIwLjE0Nzc5NCwgMC4xNzUzNDcsIDAuNDIzOTgsIDAuODQxNDY0LCAxLjI1ODM3LCAyLjIzMTQ0LCAyLjc4NzIyIiwgXAotICAgICAgICAgICIwLjE0ODI5NCwgMC4xNzU4MjYsIDAuNDI0Mzg5LCAwLjg0MDk5NiwgMS4yNTgwNSwgMi4yMzExMSwgMi43ODczNiIsIFwKLSAgICAgICAgICAiMC4xNDg2NDgsIDAuMTc2MDU5LCAwLjQyNDYyNSwgMC44NDEwNSwgMS4yNTc1LCAyLjIzMTA4LCAyLjc4NzM5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE2MzAxLCAwLjE3NzQ2OCwgMC4zMDQ5NTgsIDAuNTE2Nzg3LCAwLjcyODcxMSwgMS4yMjM5OSwgMS41MDYwNiIsIFwKLSAgICAgICAgICAiMC4xNzA1NjUsIDAuMTg1MDUyLCAwLjMxMjU3NSwgMC41MjQ0NDcsIDAuNzM2Mjc2LCAxLjIzMDYsIDEuNTEyOTkiLCBcCi0gICAgICAgICAgIjAuMTgwNjczLCAwLjE5NTE0OCwgMC4zMjI3MjgsIDAuNTM0NTc4LCAwLjc0NjQzNSwgMS4yNDE3MiwgMS41MjM2NCIsIFwKLSAgICAgICAgICAiMC4xOTA3OTcsIDAuMjA1MjQ0LCAwLjMzMjczNCwgMC41NDQ1ODUsIDAuNzU2NDYsIDEuMjUxNjksIDEuNTMzNjkiLCBcCi0gICAgICAgICAgIjAuMjAwMzUzLCAwLjIxNDgwNywgMC4zNDIzMDUsIDAuNTU0MTU4LCAwLjc2NjAzMSwgMS4yNjEyNCwgMS41NDMzNCIsIFwKLSAgICAgICAgICAiMC4yMTU5MSwgMC4yMzAzMTcsIDAuMzU3ODE2LCAwLjU2OTY1NywgMC43ODE1MjcsIDEuMjc2ODgsIDEuNTU4NjYiLCBcCi0gICAgICAgICAgIjAuMjI3NTk5LCAwLjI0MjE3MywgMC4zNjk3NzIsIDAuNTgxNTUsIDAuNzkzNDI1LCAxLjI4ODEyLCAxLjU3MDU2Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE2Mzc4MiwgMC4xOTE1NDEsIDAuNDQ3MTc1LCAwLjg3OTU4OCwgMS4zMTYyMiwgMi4zMjgsIDIuOTA3ODUiLCBcCi0gICAgICAgICAgIjAuMTYzODIsIDAuMTkxNTE4LCAwLjQ0NzEzNCwgMC44ODA4NTcsIDEuMzE2MDcsIDIuMzMyNjIsIDIuOTEzNDMiLCBcCi0gICAgICAgICAgIjAuMTYzNjM2LCAwLjE5MTM4NSwgMC40NDcwOTgsIDAuODc5NjU2LCAxLjMxNTIxLCAyLjMyOCwgMi45MDgwNyIsIFwKLSAgICAgICAgICAiMC4xNjM0NDMsIDAuMTkxMzQ5LCAwLjQ0Njc2OSwgMC44Nzk2MTUsIDEuMzE1MjEsIDIuMzI4MDcsIDIuOTA3OTYiLCBcCi0gICAgICAgICAgIjAuMTYzODkyLCAwLjE5MTYwNywgMC40NDcxMjgsIDAuODc5NjY1LCAxLjMxNTE2LCAyLjMyODEyLCAyLjkwNzg3IiwgXAotICAgICAgICAgICIwLjE2NDExOCwgMC4xOTE4MTUsIDAuNDQ3MTc5LCAwLjg3OTUyLCAxLjMxNTA4LCAyLjMyNzk4LCAyLjkwNjY1IiwgXAotICAgICAgICAgICIwLjE2NTMxOCwgMC4xOTI4MzUsIDAuNDQ3NjA2LCAwLjg4MDQ2NCwgMS4zMTU4MSwgMi4zMjgxMiwgMi45MDY2NiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDI3NDUsIDAuMTE2NTg2LCAwLjI0MTExNCwgMC40NDg1MjUsIDAuNjU1OTIxLCAxLjEzOTg0LCAxLjQxNjM4IiwgXAotICAgICAgICAgICIwLjExMjY4OCwgMC4xMjY1MzQsIDAuMjUxMDY5LCAwLjQ1ODQ4MywgMC42NjU4ODMsIDEuMTQ5ODEsIDEuNDI2MzMiLCBcCi0gICAgICAgICAgIjAuMTI0NTcyLCAwLjEzODQxNywgMC4yNjI5NzMsIDAuNDcwMzg5LCAwLjY3NzgyMywgMS4xNjE2OSwgMS40MzgyNCIsIFwKLSAgICAgICAgICAiMC4xMzUyMDYsIDAuMTQ5MDcyLCAwLjI3MzYzNywgMC40ODEwNDEsIDAuNjg4NDQzLCAxLjE3MjM4LCAxLjQ0ODkxIiwgXAotICAgICAgICAgICIwLjE0NDI2MSwgMC4xNTgxMTYsIDAuMjgyNjY1LCAwLjQ5MDEwMiwgMC42OTc1LCAxLjE4MTQzLCAxLjQ1Nzk1IiwgXAotICAgICAgICAgICIwLjE1NjY0NCwgMC4xNzA0OCwgMC4yOTUxMDcsIDAuNTAyNTE1LCAwLjcwOTk2MiwgMS4xOTM4NiwgMS40NzAzNSIsIFwKLSAgICAgICAgICAiMC4xNjYwMDYsIDAuMTc5NzgsIDAuMzA0MzMzLCAwLjUxMTc3OCwgMC43MTkyNiwgMS4yMDMyMiwgMS40Nzk3NSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNDczNywgMC4xNzQ5ODQsIDAuNDI0NjQ0LCAwLjg0MDE5NCwgMS4yNTc3OSwgMi4yMjk3NSwgMi43ODI2NCIsIFwKLSAgICAgICAgICAiMC4xNDczOCwgMC4xNzQ4NjksIDAuNDI0NjI0LCAwLjg0MDE4NSwgMS4yNTc3NiwgMi4yMjg5NiwgMi43ODI2NCIsIFwKLSAgICAgICAgICAiMC4xNDc0ODYsIDAuMTc1MDM1LCAwLjQyMzcsIDAuODQwMTQ1LCAxLjI1NTM0LCAyLjIzMTIzLCAyLjc4MjI3IiwgXAotICAgICAgICAgICIwLjE0NzY3MSwgMC4xNzUxNjQsIDAuNDI0NTMyLCAwLjg0MTU0OSwgMS4yNTg0NSwgMi4yMzAxMywgMi43ODIzMiIsIFwKLSAgICAgICAgICAiMC4xNDc4OTIsIDAuMTc1MzUzLCAwLjQyNDA4NiwgMC44NDE2MjEsIDEuMjU4NDgsIDIuMjMwMzcsIDIuNzg0OTIiLCBcCi0gICAgICAgICAgIjAuMTQ4MjY4LCAwLjE3NTYzMiwgMC40MjQ0MjIsIDAuODQxMDY2LCAxLjI1ODUsIDIuMjMxMjksIDIuNzgyODQiLCBcCi0gICAgICAgICAgIjAuMTQ4NDk4LCAwLjE3NTkwNCwgMC40MjQzMjUsIDAuODQxMDI2LCAxLjI1NTg0LCAyLjIyNDUxLCAyLjc4Nzc2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkQiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE1NjgzOCwgMC4xNzEzMTgsIDAuMjk4ODUzLCAwLjUxMDY3MywgMC43MjI1NTQsIDEuMjE2ODksIDEuNDk5MzYiLCBcCi0gICAgICAgICAgIjAuMTY0NDA4LCAwLjE3ODg4MiwgMC4zMDY0NiwgMC41MTgzMTQsIDAuNzMwMTgsIDEuMjI1NDcsIDEuNTA3NTIiLCBcCi0gICAgICAgICAgIjAuMTc0NzcxLCAwLjE4OTI0NywgMC4zMTY4MiwgMC41Mjg2NzcsIDAuNzQwNTQsIDEuMjM1OTEsIDEuNTE3NjIiLCBcCi0gICAgICAgICAgIjAuMTg1MjgzLCAwLjE5OTc0NCwgMC4zMjcyNTMsIDAuNTM5MTE5LCAwLjc1MDk2LCAxLjI0NjA1LCAxLjUyOCIsIFwKLSAgICAgICAgICAiMC4xOTU4NDMsIDAuMjEwMjc0LCAwLjMzNzc3NywgMC41NDk2NDMsIDAuNzYxNTIyLCAxLjI1NjY5LCAxLjUzODkxIiwgXAotICAgICAgICAgICIwLjIxMjI4NiwgMC4yMjY3ODQsIDAuMzU0Mjg1LCAwLjU2NjI0NywgMC43Nzc5NzYsIDEuMjcyNzUsIDEuNTU1MTUiLCBcCi0gICAgICAgICAgIjAuMjI1MTMyLCAwLjIzOTc5MSwgMC4zNjczMzQsIDAuNTc5MTcyLCAwLjc5MTAxMiwgMS4yODYyMywgMS41Njg0OSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNjM3NzQsIDAuMTkxNDg3LCAwLjQ0NzEyOSwgMC44ODA1NDIsIDEuMzE2MDYsIDIuMzMxMTYsIDIuOTEzNjIiLCBcCi0gICAgICAgICAgIjAuMTYzNjU1LCAwLjE5MTQwNSwgMC40NDcwOTksIDAuODc5NjQ1LCAxLjMxNTIxLCAyLjMyOCwgMi45MDc3OSIsIFwKLSAgICAgICAgICAiMC4xNjM1NzQsIDAuMTkxMzMxLCAwLjQ0NzA4MSwgMC44Nzk2MTYsIDEuMzE1MjIsIDIuMzI3OTUsIDIuOTA2ODUiLCBcCi0gICAgICAgICAgIjAuMTYzNTU4LCAwLjE5MTMxNSwgMC40NDcxMjUsIDAuODc5NDY1LCAxLjMxNiwgMi4zMjgyMSwgMi45MDcwMSIsIFwKLSAgICAgICAgICAiMC4xNjM5NTEsIDAuMTkxNTgzLCAwLjQ0NzEyMiwgMC44Nzk2NjUsIDEuMzE2MDMsIDIuMzI4MiwgMi45MDc3OCIsIFwKLSAgICAgICAgICAiMC4xNjQzOTUsIDAuMTkyMDUzLCAwLjQ0NzI0NywgMC44NzkwNSwgMS4zMTU3OCwgMi4zMjkyMywgMi45MDY1MyIsIFwKLSAgICAgICAgICAiMC4xNjUzMDUsIDAuMTkyNzY4LCAwLjQ0NzYwNywgMC44ODA3NTYsIDEuMzE1ODQsIDIuMzI4MTEsIDIuOTA3ODIiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTAwOTQyLCAwLjExNDc4LCAwLjIzOTI1NCwgMC40NDY3MTUsIDAuNjU0MDksIDEuMTM4MjksIDEuNDE0OTciLCBcCi0gICAgICAgICAgIjAuMTEwODkyLCAwLjEyNDczOCwgMC4yNDkzMjMsIDAuNDU2NzkzLCAwLjY2NDI2MiwgMS4xNDg1MiwgMS40MjQ4NiIsIFwKLSAgICAgICAgICAiMC4xMjI1MSwgMC4xMzYzNDUsIDAuMjYwOTEzLCAwLjQ2ODQwMSwgMC42NzU5MTEsIDEuMTU5OSwgMS40Mzc0MyIsIFwKLSAgICAgICAgICAiMC4xMzI1NiwgMC4xNDYzOTksIDAuMjcwOTE4LCAwLjQ3ODUxNSwgMC42ODYwOTQsIDEuMTY5ODksIDEuNDQ3MjEiLCBcCi0gICAgICAgICAgIjAuMTQwNzExLCAwLjE1NDU2NSwgMC4yNzkwNzEsIDAuNDg2NzkzLCAwLjY5NDMzNiwgMS4xNzgxLCAxLjQ1NTM1IiwgXAotICAgICAgICAgICIwLjE1MzIwOCwgMC4xNjcwNTgsIDAuMjkxNTU5LCAwLjQ5OTE5OSwgMC43MDYxNjUsIDEuMTkwNywgMS40Njc3OCIsIFwKLSAgICAgICAgICAiMC4xNjE4NzUsIDAuMTc1OTIyLCAwLjMwMDEwNCwgMC41MDY4NzMsIDAuNzE1MTk5LCAxLjE5OTI1LCAxLjQ3NTk4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE0NzIzNSwgMC4xNzQ4NiwgMC40MjQ2MjgsIDAuODM5NTE1LCAxLjI1ODc3LCAyLjIyNTExLCAyLjc3ODU0IiwgXAotICAgICAgICAgICIwLjE0NzAyOSwgMC4xNzQ5MDksIDAuNDIzNzgsIDAuODQwMTAyLCAxLjI1NjA5LCAyLjIyODc0LCAyLjc3OTM4IiwgXAotICAgICAgICAgICIwLjE0NzM0MywgMC4xNzQ5MTQsIDAuNDIzNzEzLCAwLjgzOTA4MiwgMS4yNTYyMSwgMi4yMzE4NCwgMi43ODE4OCIsIFwKLSAgICAgICAgICAiMC4xNDcyNjcsIDAuMTc1MTE5LCAwLjQyNDU3OCwgMC44Mzk5MjQsIDEuMjU2OTEsIDIuMjMxNTcsIDIuNzg0OSIsIFwKLSAgICAgICAgICAiMC4xNDc2NDIsIDAuMTc1MTkxLCAwLjQyNDc2NCwgMC44Mzk0ODMsIDEuMjU1NDMsIDIuMjI1NTQsIDIuNzgwNTMiLCBcCi0gICAgICAgICAgIjAuMTQ4MTIyLCAwLjE3NTU2LCAwLjQyNDMzNywgMC44Mzk2NywgMS4yNTU1NywgMi4yMjgxNywgMi43ODMyNiIsIFwKLSAgICAgICAgICAiMC4xNDg1MjEsIDAuMTc2MDU2LCAwLjQyNDgxMywgMC44NDEzLCAxLjI1NDk5LCAyLjIyNTM2LCAyLjc4MDc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxMzg3LCAwLjAwMTM4NywgMC4wMDEzODYsIDAuMDAxMzg0LCAwLjAwMTM4MiwgMC4wMDEzODIsIDAuMDAxMzgzIiwgXAotICAgICAgICAgICIwLjAwMTM2LCAwLjAwMTM2LCAwLjAwMTM1OCwgMC4wMDEzNTgsIDAuMDAxMzU4LCAwLjAwMTM1OCwgMC4wMDEzNTciLCBcCi0gICAgICAgICAgIjAuMDAxMzQ3LCAwLjAwMTM0NywgMC4wMDEzNDcsIDAuMDAxMzQ2LCAwLjAwMTM0NiwgMC4wMDEzNDUsIDAuMDAxMzQ1IiwgXAotICAgICAgICAgICIwLjAwMTM0MiwgMC4wMDEzNDEsIDAuMDAxMzQxLCAwLjAwMTM0LCAwLjAwMTM0LCAwLjAwMTM0LCAwLjAwMTM0IiwgXAotICAgICAgICAgICIwLjAwMTMzOSwgMC4wMDEzMzksIDAuMDAxMzM5LCAwLjAwMTMzOCwgMC4wMDEzMzgsIDAuMDAxMzM3LCAwLjAwMTMzNyIsIFwKLSAgICAgICAgICAiMC4wMDEzMzcsIDAuMDAxMzM3LCAwLjAwMTMzNywgMC4wMDEzMzYsIDAuMDAxMzM3LCAwLjAwMTMzNiwgMC4wMDEzMzYiLCBcCi0gICAgICAgICAgIjAuMDAxMzM3LCAwLjAwMTMzNywgMC4wMDEzMzgsIDAuMDAxMzM3LCAwLjAwMTMzNywgMC4wMDEzMzYsIDAuMDAxMzM2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzMDAyLCAwLjAwMzAwMiwgMC4wMDMwMDUsIDAuMDAzMDA2LCAwLjAwMzAwNywgMC4wMDMwMDcsIDAuMDAzMDA3IiwgXAotICAgICAgICAgICIwLjAwMjk4OCwgMC4wMDI5ODksIDAuMDAyOTkyLCAwLjAwMjk5NCwgMC4wMDI5OTQsIDAuMDAyOTk0LCAwLjAwMjk5NSIsIFwKLSAgICAgICAgICAiMC4wMDI5ODUsIDAuMDAyOTg2LCAwLjAwMjk5MSwgMC4wMDI5OTMsIDAuMDAyOTkzLCAwLjAwMjk5MywgMC4wMDI5OTQiLCBcCi0gICAgICAgICAgIjAuMDAyOTg2LCAwLjAwMjk4OCwgMC4wMDI5OTMsIDAuMDAyOTk2LCAwLjAwMjk5NiwgMC4wMDI5OTcsIDAuMDAyOTk3IiwgXAotICAgICAgICAgICIwLjAwMjk5LCAwLjAwMjk5MSwgMC4wMDI5OTgsIDAuMDAzMDAxLCAwLjAwMzAwMSwgMC4wMDMwMDIsIDAuMDAzMDAzIiwgXAotICAgICAgICAgICIwLjAwMzAwMywgMC4wMDMwMDUsIDAuMDAzMDExLCAwLjAwMzAxNSwgMC4wMDMwMTYsIDAuMDAzMDE3LCAwLjAwMzAxNyIsIFwKLSAgICAgICAgICAiMC4wMDMwMiwgMC4wMDMwMjEsIDAuMDAzMDI5LCAwLjAwMzAzMiwgMC4wMDMwMzMsIDAuMDAzMDM0LCAwLjAwMzAzNSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTM4OSwgMC4wMDEzOSwgMC4wMDEzOSwgMC4wMDEzOSwgMC4wMDEzOSwgMC4wMDEzOSwgMC4wMDEzODkiLCBcCi0gICAgICAgICAgIjAuMDAxMzY0LCAwLjAwMTM2MywgMC4wMDEzNjQsIDAuMDAxMzY0LCAwLjAwMTM2NCwgMC4wMDEzNjQsIDAuMDAxMzY0IiwgXAotICAgICAgICAgICIwLjAwMTM0OSwgMC4wMDEzNSwgMC4wMDEzNTEsIDAuMDAxMzUxLCAwLjAwMTM1MSwgMC4wMDEzNTEsIDAuMDAxMzUxIiwgXAotICAgICAgICAgICIwLjAwMTM0MywgMC4wMDEzNDQsIDAuMDAxMzQ2LCAwLjAwMTM0NiwgMC4wMDEzNDYsIDAuMDAxMzQ2LCAwLjAwMTM0NiIsIFwKLSAgICAgICAgICAiMC4wMDEzNDEsIDAuMDAxMzQxLCAwLjAwMTM0MywgMC4wMDEzNDQsIDAuMDAxMzQ0LCAwLjAwMTM0NCwgMC4wMDEzNDQiLCBcCi0gICAgICAgICAgIjAuMDAxMzQsIDAuMDAxMzQsIDAuMDAxMzQzLCAwLjAwMTM0MywgMC4wMDEzNDMsIDAuMDAxMzQzLCAwLjAwMTM0MyIsIFwKLSAgICAgICAgICAiMC4wMDEzNDEsIDAuMDAxMzQyLCAwLjAwMTM0NSwgMC4wMDEzNDUsIDAuMDAxMzQ1LCAwLjAwMTM0NSwgMC4wMDEzNDUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI3NzMsIDAuMDAyNzc1LCAwLjAwMjc3OSwgMC4wMDI3OCwgMC4wMDI3OCwgMC4wMDI3ODEsIDAuMDAyNzgxIiwgXAotICAgICAgICAgICIwLjAwMjc1OCwgMC4wMDI3NTksIDAuMDAyNzY0LCAwLjAwMjc2NiwgMC4wMDI3NjcsIDAuMDAyNzY3LCAwLjAwMjc2NyIsIFwKLSAgICAgICAgICAiMC4wMDI3NTMsIDAuMDAyNzU1LCAwLjAwMjc2MiwgMC4wMDI3NjUsIDAuMDAyNzY2LCAwLjAwMjc2NywgMC4wMDI3NjciLCBcCi0gICAgICAgICAgIjAuMDAyNzQ2LCAwLjAwMjc0OCwgMC4wMDI3NTYsIDAuMDAyNzU5LCAwLjAwMjc2LCAwLjAwMjc2MSwgMC4wMDI3NjIiLCBcCi0gICAgICAgICAgIjAuMDAyNzQ2LCAwLjAwMjc0OCwgMC4wMDI3NTcsIDAuMDAyNzYxLCAwLjAwMjc2MiwgMC4wMDI3NjQsIDAuMDAyNzY0IiwgXAotICAgICAgICAgICIwLjAwMjc1NCwgMC4wMDI3NTcsIDAuMDAyNzY3LCAwLjAwMjc3MiwgMC4wMDI3NzMsIDAuMDAyNzc1LCAwLjAwMjc3NiIsIFwKLSAgICAgICAgICAiMC4wMDI3NjgsIDAuMDAyNzcsIDAuMDAyNzgxLCAwLjAwMjc4NSwgMC4wMDI3ODgsIDAuMDAyNzksIDAuMDAyNzkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDEzOTEsIDAuMDAxMzkzLCAwLjAwMTM5NSwgMC4wMDEzOTUsIDAuMDAxMzk1LCAwLjAwMTM5NiwgMC4wMDEzOTYiLCBcCi0gICAgICAgICAgIjAuMDAxMzY0LCAwLjAwMTM2NSwgMC4wMDEzNjgsIDAuMDAxMzY5LCAwLjAwMTM2OSwgMC4wMDEzNywgMC4wMDEzNyIsIFwKLSAgICAgICAgICAiMC4wMDEzNTIsIDAuMDAxMzUyLCAwLjAwMTM1NiwgMC4wMDEzNTcsIDAuMDAxMzU3LCAwLjAwMTM1OCwgMC4wMDEzNTgiLCBcCi0gICAgICAgICAgIjAuMDAxMzQ3LCAwLjAwMTM0OCwgMC4wMDEzNTEsIDAuMDAxMzUyLCAwLjAwMTM1MywgMC4wMDEzNTMsIDAuMDAxMzUzIiwgXAotICAgICAgICAgICIwLjAwMTM0NCwgMC4wMDEzNDUsIDAuMDAxMzQ5LCAwLjAwMTM1MSwgMC4wMDEzNTEsIDAuMDAxMzUyLCAwLjAwMTM1MiIsIFwKLSAgICAgICAgICAiMC4wMDEzNTEsIDAuMDAxMzUxLCAwLjAwMTM1NCwgMC4wMDEzNTUsIDAuMDAxMzU2LCAwLjAwMTM1NiwgMC4wMDEzNTYiLCBcCi0gICAgICAgICAgIjAuMDAxMzU0LCAwLjAwMTM1NSwgMC4wMDEzNTksIDAuMDAxMzYsIDAuMDAxMzYsIDAuMDAxMzYsIDAuMDAxMzYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI1MjgsIDAuMDAyNTI5LCAwLjAwMjUzMiwgMC4wMDI1MzQsIDAuMDAyNTM0LCAwLjAwMjUzNCwgMC4wMDI1MzQiLCBcCi0gICAgICAgICAgIjAuMDAyNTE1LCAwLjAwMjUxNiwgMC4wMDI1MjEsIDAuMDAyNTIzLCAwLjAwMjUyMywgMC4wMDI1MjQsIDAuMDAyNTI0IiwgXAotICAgICAgICAgICIwLjAwMjUwOSwgMC4wMDI1MTEsIDAuMDAyNTE4LCAwLjAwMjUyLCAwLjAwMjUyMSwgMC4wMDI1MjIsIDAuMDAyNTIyIiwgXAotICAgICAgICAgICIwLjAwMjUwNSwgMC4wMDI1MDMsIDAuMDAyNTExLCAwLjAwMjUxNCwgMC4wMDI1MTUsIDAuMDAyNTE2LCAwLjAwMjUxNiIsIFwKLSAgICAgICAgICAiMC4wMDI1LCAwLjAwMjUwMiwgMC4wMDI1MTIsIDAuMDAyNTE1LCAwLjAwMjUxNywgMC4wMDI1MTgsIDAuMDAyNTE4IiwgXAotICAgICAgICAgICIwLjAwMjUwNiwgMC4wMDI1MDgsIDAuMDAyNTIxLCAwLjAwMjUyMywgMC4wMDI1MjcsIDAuMDAyNTI5LCAwLjAwMjUyNyIsIFwKLSAgICAgICAgICAiMC4wMDI1MjEsIDAuMDAyNTI0LCAwLjAwMjUzNSwgMC4wMDI1NCwgMC4wMDI1NDEsIDAuMDAyNTQsIDAuMDAyNTQxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxMzkxLCAwLjAwMTM5MiwgMC4wMDEzOTYsIDAuMDAxMzk3LCAwLjAwMTM5NywgMC4wMDEzOTksIDAuMDAxMzk5IiwgXAotICAgICAgICAgICIwLjAwMTM2NCwgMC4wMDEzNjQsIDAuMDAxMzY5LCAwLjAwMTM3MSwgMC4wMDEzNzIsIDAuMDAxMzcyLCAwLjAwMTM3MiIsIFwKLSAgICAgICAgICAiMC4wMDEzNTUsIDAuMDAxMzU2LCAwLjAwMTM2MSwgMC4wMDEzNjMsIDAuMDAxMzY0LCAwLjAwMTM2NCwgMC4wMDEzNjUiLCBcCi0gICAgICAgICAgIjAuMDAxMzU4LCAwLjAwMTM1OSwgMC4wMDEzNjQsIDAuMDAxMzY3LCAwLjAwMTM2NywgMC4wMDEzNjgsIDAuMDAxMzY4IiwgXAotICAgICAgICAgICIwLjAwMTM2OCwgMC4wMDEzNywgMC4wMDEzNzUsIDAuMDAxMzc3LCAwLjAwMTM3OCwgMC4wMDEzNzksIDAuMDAxMzc5IiwgXAotICAgICAgICAgICIwLjAwMTM5MSwgMC4wMDEzOTEsIDAuMDAxMzk1LCAwLjAwMTM5NywgMC4wMDEzOTcsIDAuMDAxMzk4LCAwLjAwMTM5OCIsIFwKLSAgICAgICAgICAiMC4wMDE0MDcsIDAuMDAxNDA4LCAwLjAwMTQxMiwgMC4wMDE0MTQsIDAuMDAxNDE1LCAwLjAwMTQxNSwgMC4wMDE0MTYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDIyOTMsIDAuMDAyMjk0LCAwLjAwMjI5NywgMC4wMDIyOTgsIDAuMDAyMjk5LCAwLjAwMjI5OSwgMC4wMDIyOTkiLCBcCi0gICAgICAgICAgIjAuMDAyMjc5LCAwLjAwMjI4LCAwLjAwMjI4NCwgMC4wMDIyODYsIDAuMDAyMjg2LCAwLjAwMjI4NywgMC4wMDIyODciLCBcCi0gICAgICAgICAgIjAuMDAyMjcyLCAwLjAwMjI3MywgMC4wMDIyNzksIDAuMDAyMjgxLCAwLjAwMjI4MiwgMC4wMDIyODIsIDAuMDAyMjgzIiwgXAotICAgICAgICAgICIwLjAwMjI2OCwgMC4wMDIyNzMsIDAuMDAyMjc3LCAwLjAwMjI4LCAwLjAwMjI4MSwgMC4wMDIyODIsIDAuMDAyMjgyIiwgXAotICAgICAgICAgICIwLjAwMjI3LCAwLjAwMjI3MiwgMC4wMDIyODEsIDAuMDAyMjg1LCAwLjAwMjI4NiwgMC4wMDIyODcsIDAuMDAyMjg4IiwgXAotICAgICAgICAgICIwLjAwMjI3NCwgMC4wMDIyNzYsIDAuMDAyMjg1LCAwLjAwMjI4OSwgMC4wMDIyODgsIDAuMDAyMjkyLCAwLjAwMjI5IiwgXAotICAgICAgICAgICIwLjAwMjI4MywgMC4wMDIyOSwgMC4wMDIyOTYsIDAuMDAyMywgMC4wMDIzMDUsIDAuMDAyMzA2LCAwLjAwMjMwNyIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogQU8yMVgxICoKLSAqIC0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoQU8yMVgxKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMTAxNTA5OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjM2MTg1OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYzNDY5MzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2MzYxODU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjI2LCAwLjAwMDIyNiwgMC4wMDAyMjYsIDAuMDAwMjI2LCAwLjAwMDIyNiwgMC4wMDAyMjYsIDAuMDAwMjI2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjMzLCAwLjAwMDIyOCwgMC4wMDAyMjcsIDAuMDAwMjI3LCAwLjAwMDIyNywgMC4wMDAyMjcsIDAuMDAwMjI3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihBMSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjcwMTY2OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDY2NzA1NzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2NzAxNjY7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMTE3LCAwLjAwMDExNiwgMC4wMDAxMTYsIDAuMDAwMTE2LCAwLjAwMDExNiwgMC4wMDAxMTYsIDAuMDAwMTE2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjU3LCAwLjAwMDI1NywgMC4wMDAyNTcsIDAuMDAwMjU3LCAwLjAwMDI1NywgMC4wMDAyNTcsIDAuMDAwMjU3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjgwMTk2OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDY4MDAxNjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2ODAxOTY7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMDQ2LCAwLjAwMDA0NiwgMC4wMDAwNDYsIDAuMDAwMDQ2LCAwLjAwMDA0NiwgMC4wMDAwNDYsIDAuMDAwMDQ2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzExLCAwLjAwMDMxMSwgMC4wMDAzMTEsIDAuMDAwMzExLCAwLjAwMDMxMSwgMC4wMDAzMTEsIDAuMDAwMzExIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMjU4NjM3OwotICAgIGZ1bmN0aW9uIDogIigoQTAgQTEpK0IwKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTAiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5MzQ1MSwgMC4xMTgyODksIDAuMjU3ODY1LCAwLjM4MDYzNywgMC41NDQzMTgsIDAuODcxNjcsIDEuMDc2MDYiLCBcCi0gICAgICAgICAgIjAuMTAyMjEyLCAwLjEyNzA1MiwgMC4yNjY2LCAwLjM4OTQwOSwgMC41NTMwODcsIDAuODgwMzg4LCAxLjA4NDgyIiwgXAotICAgICAgICAgICIwLjExMjk2NywgMC4xMzc4MDUsIDAuMjc3MzQyLCAwLjQwMDIxOCwgMC41NjM4NTYsIDAuODkxMTAzLCAxLjA5NTY1IiwgXAotICAgICAgICAgICIwLjEyMzI3MywgMC4xNDgxMjMsIDAuMjg3Njk1LCAwLjQxMDUwMSwgMC41NzQyMDUsIDAuOTAxNDMyLCAxLjEwNTkzIiwgXAotICAgICAgICAgICIwLjEzMjk4OSwgMC4xNTc4NDcsIDAuMjk3NCwgMC40MjAyNTUsIDAuNTgzOTI1LCAwLjkxMTE2MywgMS4xMTU2NSIsIFwKLSAgICAgICAgICAiMC4xNDcyMjgsIDAuMTcyMDg2LCAwLjMxMTY0MywgMC40MzQ0ODgsIDAuNTk4MTU0LCAwLjkyNTQwMiwgMS4xMjk4OSIsIFwKLSAgICAgICAgICAiMC4xNTgyMTEsIDAuMTgzMTY4LCAwLjMyMjczNiwgMC40NDU1NjIsIDAuNjA5MjQxLCAwLjkzNjQ1MSwgMS4xNDA5NSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTUwMSwgMC4xNDQ0NzMsIDAuNDI4ODEsIDAuNjgyMjUxLCAxLjAxODM1LCAxLjY5Mzk5LCAyLjExMjk4IiwgXAotICAgICAgICAgICIwLjA5NTAwNCwgMC4xNDQ0NjUsIDAuNDI4ODkxLCAwLjY4MjIzNywgMS4wMTgzNSwgMS42OTEwOCwgMi4xMTI3NSIsIFwKLSAgICAgICAgICAiMC4wOTQ5OTksIDAuMTQ0NDY2LCAwLjQyOTM4LCAwLjY4MjM3MSwgMS4wMTgzLCAxLjY5MTkxLCAyLjExMTY1IiwgXAotICAgICAgICAgICIwLjA5NTEyMywgMC4xNDQ0MDksIDAuNDI4ODk3LCAwLjY4MjE1NCwgMS4wMTkzNywgMS42OTE4MywgMi4xMTI4MiIsIFwKLSAgICAgICAgICAiMC4wOTUzNDgsIDAuMTQ0NTQ5LCAwLjQyOTUwOSwgMC42ODE0MTQsIDEuMDE4MjEsIDEuNjkxNzEsIDIuMTEyMjgiLCBcCi0gICAgICAgICAgIjAuMDk2MDAxLCAwLjE0NDk2MywgMC40Mjk1NzMsIDAuNjgyMTkxLCAxLjAxODkzLCAxLjY5MTc1LCAyLjExMjY2IiwgXAotICAgICAgICAgICIwLjA5NjY5MywgMC4xNDU0MzgsIDAuNDI5NzE1LCAwLjY4MjIzNCwgMS4wMTkyNiwgMS42OTE0MiwgMi4xMTI0MiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTY2NjcsIDAuMTIxNzE3LCAwLjI2MjE0NiwgMC4zODU4NzksIDAuNTUwNzk0LCAwLjg4MDU0MywgMS4wODY2NSIsIFwKLSAgICAgICAgICAiMC4xMDU5MjQsIDAuMTMwOTYyLCAwLjI3MTM5MywgMC4zOTUxMTMsIDAuNTU5OTk1LCAwLjg4OTc4NywgMS4wOTU4NyIsIFwKLSAgICAgICAgICAiMC4xMTYwNjQsIDAuMTQxMTIyLCAwLjI4MTU3NSwgMC40MDUyOSwgMC41NzAxODgsIDAuODk5OTY2LCAxLjEwNjA3IiwgXAotICAgICAgICAgICIwLjEyNTYzOCwgMC4xNTA3MTQsIDAuMjkxMTU2LCAwLjQxNDg4NywgMC41Nzk3NzIsIDAuOTA5NTYxLCAxLjExNTY5IiwgXAotICAgICAgICAgICIwLjEzNDUwMSwgMC4xNTk2MTUsIDAuMzAwMDY1LCAwLjQyMzgwMywgMC41ODg2OTYsIDAuOTE4NDY2LCAxLjEyNDU3IiwgXAotICAgICAgICAgICIwLjE0NzA2MywgMC4xNzIxOTksIDAuMzEyNjYxLCAwLjQzNjM4OSwgMC42MDEyODMsIDAuOTMxMDM4LCAxLjEzNzE0IiwgXAotICAgICAgICAgICIwLjE1NjYzOSwgMC4xODE4NiwgMC4zMjIzNzksIDAuNDQ2MDksIDAuNjExMDQxLCAwLjk0MDc2OCwgMS4xNDY4OCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTQyNDgsIDAuMTQyNjUsIDAuNDIyNjgyLCAwLjY3MjM4MywgMS4wMDQ5MiwgMS42NjcyOCwgMi4wODI1MiIsIFwKLSAgICAgICAgICAiMC4wOTQyNDIsIDAuMTQyNjQ2LCAwLjQyMjgxOCwgMC42NzA4MDEsIDEuMDA0OTQsIDEuNjY3NSwgMi4wODIyNiIsIFwKLSAgICAgICAgICAiMC4wOTQyNDcsIDAuMTQyNjI1LCAwLjQyMjU5MywgMC42NzI0MzksIDEuMDA0OTgsIDEuNjY3MzYsIDIuMDgyNDEiLCBcCi0gICAgICAgICAgIjAuMDk0NDA0LCAwLjE0MjcxNiwgMC40MjMzNzYsIDAuNjcyNDAyLCAxLjAwNDkyLCAxLjY2NzI0LCAyLjA4NjAyIiwgXAotICAgICAgICAgICIwLjA5NDcwOSwgMC4xNDMwMjMsIDAuNDIyNzIsIDAuNjcyMzIxLCAxLjAwMzI3LCAxLjY2NzAxLCAyLjA4MjI1IiwgXAotICAgICAgICAgICIwLjA5NTU0NSwgMC4xNDM1NjQsIDAuNDIyNTk5LCAwLjY3MTMxMSwgMS4wMDMzNywgMS42NzAwMSwgMi4wODQ5MyIsIFwKLSAgICAgICAgICAiMC4wOTYyMDIsIDAuMTQ0MDYyLCAwLjQyMjYxMywgMC42NzIyMDcsIDEuMDA0NjIsIDEuNjcwMTEsIDIuMDg1ODciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTEiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5MTA1NywgMC4xMTU4NjMsIDAuMjU1MzkxLCAwLjM3ODIyOSwgMC41NDE4OTIsIDAuODY5MTQ2LCAxLjA3Mzc1IiwgXAotICAgICAgICAgICIwLjA5OTk4OSwgMC4xMjQ4MjgsIDAuMjY0Mzc5LCAwLjM4NzE5NSwgMC41NTA4NzMsIDAuODc4MTkxLCAxLjA4MjYiLCBcCi0gICAgICAgICAgIjAuMTExNzAxLCAwLjEzNjU1LCAwLjI3NjE1NCwgMC4zOTg5MywgMC41NjI2NDEsIDAuODg5ODY1LCAxLjA5NDM3IiwgXAotICAgICAgICAgICIwLjEyMzM3OSwgMC4xNDgyMjksIDAuMjg3ODA3LCAwLjQxMDYyMSwgMC41NzQzMDQsIDAuOTAxNjIzLCAxLjEwNjA0IiwgXAotICAgICAgICAgICIwLjEzNDI4MSwgMC4xNTkxMzQsIDAuMjk4NzM4LCAwLjQyMTU0NSwgMC41ODUyMTUsIDAuOTEyNDUzLCAxLjExNjk0IiwgXAotICAgICAgICAgICIwLjE0OTMyOCwgMC4xNzQyMjgsIDAuMzEzNzY4LCAwLjQzNjYwNSwgMC42MDAyODksIDAuOTI3NTQyLCAxLjEzMjEzIiwgXAotICAgICAgICAgICIwLjE2MDg1NSwgMC4xODU4ODgsIDAuMzI1MzA5LCAwLjQ0ODIyMiwgMC42MTE4MjUsIDAuOTM5MDgzLCAxLjE0MzU3Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5NTAxNiwgMC4xNDQ0ODEsIDAuNDI5MDMyLCAwLjY4MjMxNiwgMS4wMTgzMSwgMS42OTE3MSwgMi4xMTU0NyIsIFwKLSAgICAgICAgICAiMC4wOTUwMDQsIDAuMTQ0NDcxLCAwLjQyODg3NCwgMC42ODIyNDMsIDEuMDE4MywgMS42OTM4MiwgMi4xMTI2OCIsIFwKLSAgICAgICAgICAiMC4wOTUwMDgsIDAuMTQ0MzY1LCAwLjQyODgsIDAuNjgyMjIzLCAxLjAxODIzLCAxLjY5MTkzLCAyLjExMjg4IiwgXAotICAgICAgICAgICIwLjA5NTExNSwgMC4xNDQzOTgsIDAuNDI4ODcxLCAwLjY4MjE1MywgMS4wMTgyNywgMS42OTM1MiwgMi4xMTI3NSIsIFwKLSAgICAgICAgICAiMC4wOTU0MTksIDAuMTQ0NTUzLCAwLjQyODgsIDAuNjgxNDU0LCAxLjAxODExLCAxLjY5MTc3LCAyLjExMjM3IiwgXAotICAgICAgICAgICIwLjA5NjI5LCAwLjE0NTEwOCwgMC40Mjk1NzQsIDAuNjgyMTQsIDEuMDE4MDUsIDEuNjkxNzcsIDIuMTE0OTYiLCBcCi0gICAgICAgICAgIjAuMDk2OTcyLCAwLjE0NTYxOSwgMC40MjkxOTksIDAuNjgxMTk1LCAxLjAxOTIsIDEuNjkxODIsIDIuMTEyNTUiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDkyNzE1LCAwLjExNzY5NywgMC4yNTc5NjYsIDAuMzgxNjYzLCAwLjU0NjYyNCwgMC44NzY1NDMsIDEuMDgyNjMiLCBcCi0gICAgICAgICAgIjAuMTAxODcxLCAwLjEyNjg0NSwgMC4yNjcxNSwgMC4zOTA4NjQsIDAuNTU1NzY0LCAwLjg4NTc1LCAxLjA5MTg2IiwgXAotICAgICAgICAgICIwLjExMTk2MSwgMC4xMzY5NDUsIDAuMjc3MjQsIDAuNDAwOTU0LCAwLjU2NTg3NSwgMC44OTYwMTIsIDEuMTAyMDkiLCBcCi0gICAgICAgICAgIjAuMTIxNDM4LCAwLjE0NjQyMSwgMC4yODY3MTgsIDAuNDEwNDQsIDAuNTc1MzkzLCAwLjkwNTMzMSwgMS4xMTEzNSIsIFwKLSAgICAgICAgICAiMC4xMzAwNDYsIDAuMTU1MDUyLCAwLjI5NTM2MiwgMC40MTkwNywgMC41ODQwNjUsIDAuOTE0MDQ1LCAxLjEyMDE0IiwgXAotICAgICAgICAgICIwLjE0MjE0NiwgMC4xNjcyNDcsIDAuMzA3NTcxLCAwLjQzMTI1OSwgMC41OTYyMjcsIDAuOTI2MTg1LCAxLjEzMjQ0IiwgXAotICAgICAgICAgICIwLjE1MTI1MywgMC4xNzY0NjQsIDAuMzE2ODI1LCAwLjQ0MDUxNCwgMC42MDU2ODEsIDAuOTM1NTQxLCAxLjE0MTU5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5Mzc2OCwgMC4xNDIxOTUsIDAuNDIzMDA3LCAwLjY3MjM0OCwgMS4wMDIxNiwgMS42NjYzLCAyLjA3OTk4IiwgXAotICAgICAgICAgICIwLjA5Mzc1MiwgMC4xNDIxODEsIDAuNDIzMjE2LCAwLjY3MDQ0NSwgMS4wMDQ3OCwgMS42NjY3NiwgMi4wODEwOCIsIFwKLSAgICAgICAgICAiMC4wOTM3NjEsIDAuMTQyMTg2LCAwLjQyMjQ5NCwgMC42NzE1OTUsIDEuMDA0NzMsIDEuNjY1OTksIDIuMDg1MzIiLCBcCi0gICAgICAgICAgIjAuMDkzOTk1LCAwLjE0MjMxOCwgMC40MjMwNzQsIDAuNjcxMTUzLCAxLjAwNDY2LCAxLjY2NjI3LCAyLjA4MDE5IiwgXAotICAgICAgICAgICIwLjA5NDQ0NCwgMC4xNDI2MTIsIDAuNDIzMDg4LCAwLjY3MjEzOCwgMS4wMDQ1MSwgMS42NjY2OSwgMi4wODI2MiIsIFwKLSAgICAgICAgICAiMC4wOTUyNzEsIDAuMTQzMzQ0LCAwLjQyMjU5NiwgMC42NzE3MzUsIDEuMDAyMTUsIDEuNjY2NDQsIDIuMDgxNDQiLCBcCi0gICAgICAgICAgIjAuMDk2MTk2LCAwLjE0MzkzMywgMC40MjI2MjQsIDAuNjcyNDM4LCAxLjAwMjM5LCAxLjY2NjM1LCAyLjA4MDkyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjc4NjQsIDAuMDkyNDE0LCAwLjIzMTUzNywgMC4zNTQyNzEsIDAuNTE3OTA5LCAwLjg0NDk4NSwgMS4wNTAwNiIsIFwKLSAgICAgICAgICAiMC4wNzgwODgsIDAuMTAyNjQ4LCAwLjI0MTc1OSwgMC4zNjQ2MiwgMC41MjgwOTIsIDAuODU1OTI3LCAxLjA2MDQ2IiwgXAotICAgICAgICAgICIwLjA5MDEyNywgMC4xMTQ2OTgsIDAuMjUzODMxLCAwLjM3NjY4NSwgMC41NDAxNDYsIDAuODY3OTYxLCAxLjA3MjQzIiwgXAotICAgICAgICAgICIwLjEwMDQyNywgMC4xMjQ5NywgMC4yNjQxMjMsIDAuMzg2OTI2LCAwLjU1MDU5MSwgMC44Nzc2NDEsIDEuMDgyOTIiLCBcCi0gICAgICAgICAgIjAuMTA5NTI1LCAwLjEzNDA1MSwgMC4yNzMxNzQsIDAuMzk1ODQ5LCAwLjU1OTY2NywgMC44ODcwNzksIDEuMDkyMDIiLCBcCi0gICAgICAgICAgIjAuMTIxNzkzLCAwLjE0NjM0OSwgMC4yODU0NDMsIDAuNDA4MTE4LCAwLjU3MTczNiwgMC44OTkxNDIsIDEuMTA0MzYiLCBcCi0gICAgICAgICAgIjAuMTMxMzE2LCAwLjE1NTkwNSwgMC4yOTQ5MzQsIDAuNDE3NjE1LCAwLjU4MTQsIDAuOTA4NjA4LCAxLjExMzA1Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5MTc4NCwgMC4xNDE4MzcsIDAuNDI3MTI3LCAwLjY3OTkxOSwgMS4wMTcxLCAxLjY5MjMzLCAyLjExMzU0IiwgXAotICAgICAgICAgICIwLjA5MTc4MSwgMC4xNDE4NDYsIDAuNDI3Mjk1LCAwLjY4MDE4MywgMS4wMTgwNSwgMS42OTA1NiwgMi4xMTE1NCIsIFwKLSAgICAgICAgICAiMC4wOTE4NzQsIDAuMTQxOTA5LCAwLjQyNzkxNiwgMC42ODA4OTksIDEuMDE2OTIsIDEuNjg5ODUsIDIuMTEzODUiLCBcCi0gICAgICAgICAgIjAuMDkyNDA2LCAwLjE0MTk4NiwgMC40Mjc1NjYsIDAuNjc5ODQ2LCAxLjAxNjUxLCAxLjY5MjM2LCAyLjExMTUxIiwgXAotICAgICAgICAgICIwLjA5MzA0NSwgMC4xNDI0NjQsIDAuNDI3ODg0LCAwLjY4MDc2MSwgMS4wMTcwMywgMS42OTA5NiwgMi4xMTExMiIsIFwKLSAgICAgICAgICAiMC4wOTQwOTQsIDAuMTQyOTEsIDAuNDI3OTE2LCAwLjY4MTA1NywgMS4wMTY1LCAxLjY4OTgyLCAyLjExMzg2IiwgXAotICAgICAgICAgICIwLjA5NTI4OCwgMC4xNDM0NTgsIDAuNDI4MjM2LCAwLjY4MTIzMywgMS4wMTc3OCwgMS42ODk5NiwgMi4xMDk4OCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODg4OTQsIDAuMTEzOTI5LCAwLjI1NDM0NiwgMC4zNzgwOTUsIDAuNTQyOTYxLCAwLjg3Mjc0LCAxLjA3ODkiLCBcCi0gICAgICAgICAgIjAuMDk3NzIsIDAuMTIyNzg4LCAwLjI2MzIxOCwgMC4zODY5NTgsIDAuNTUxODM0LCAwLjg4MTY1OSwgMS4wODc3MSIsIFwKLSAgICAgICAgICAiMC4xMDkwMywgMC4xMzQwOTMsIDAuMjc0NTMzLCAwLjM5ODI2NiwgMC41NjMxNjQsIDAuODkyOTU5LCAxLjA5OTA1IiwgXAotICAgICAgICAgICIwLjExOTcyMSwgMC4xNDQ3OTYsIDAuMjg1Mjc0LCAwLjQwOTA0LCAwLjU3Mzg5NSwgMC45MDM2OTIsIDEuMTA5NzgiLCBcCi0gICAgICAgICAgIjAuMTI5MjM3LCAwLjE1NDMzMSwgMC4yOTQ4MjEsIDAuNDE4NTMsIDAuNTgzNDM2LCAwLjkxMzIyNSwgMS4xMTkzMyIsIFwKLSAgICAgICAgICAiMC4xNDI4NTUsIDAuMTY3OTQ2LCAwLjMwODQwMywgMC40MzIxODksIDAuNTk3MDQ3LCAwLjkyNjgzMSwgMS4xMzMiLCBcCi0gICAgICAgICAgIjAuMTUyMTE2LCAwLjE3NzQ2MSwgMC4zMTc5MDQsIDAuNDQxNjU0LCAwLjYwNjU5MiwgMC45MzYzMjcsIDEuMTQyNDYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk0MjQ5LCAwLjE0MjY0NywgMC40MjI2MSwgMC42NzIyOTYsIDEuMDA1MSwgMS42NjgyMywgMi4wODYyIiwgXAotICAgICAgICAgICIwLjA5NDI0OSwgMC4xNDI2NDMsIDAuNDIzMDk4LCAwLjY3MjM0NywgMS4wMDQ5MSwgMS42NzAzOCwgMi4wODI3MyIsIFwKLSAgICAgICAgICAiMC4wOTQyNjksIDAuMTQyNjQ4LCAwLjQyMzMzMSwgMC42NzIzMzcsIDEuMDA1MTYsIDEuNjY3NDEsIDIuMDgyMyIsIFwKLSAgICAgICAgICAiMC4wOTQ0NywgMC4xNDI3NzMsIDAuNDIyOTI2LCAwLjY3MTk2MiwgMS4wMDQ5MywgMS42Njc1MiwgMi4wODI3NiIsIFwKLSAgICAgICAgICAiMC4wOTQ5NDEsIDAuMTQzMTg4LCAwLjQyMzQ3NiwgMC42NzI1NTcsIDEuMDA0ODMsIDEuNjY5OSwgMi4wODU5NSIsIFwKLSAgICAgICAgICAiMC4wOTU3ODcsIDAuMTQzNzUyLCAwLjQyMzE3NCwgMC42NzIzNDksIDEuMDA0OTYsIDEuNjY3MTksIDIuMDgxNjciLCBcCi0gICAgICAgICAgIjAuMDk2NDAyLCAwLjE0NDE4MywgMC40MjM3ODgsIDAuNjcxODkyLCAxLjAwNTAyLCAxLjY2NzY1LCAyLjA4MzE4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTU1NSwgMC4wMDE1NjQsIDAuMDAxNTc1LCAwLjAwMTU3OCwgMC4wMDE1NzksIDAuMDAxNTgsIDAuMDAxNTgiLCBcCi0gICAgICAgICAgIjAuMDAxNTMyLCAwLjAwMTU0MSwgMC4wMDE1NTQsIDAuMDAxNTU3LCAwLjAwMTU1OCwgMC4wMDE1NTksIDAuMDAxNTU5IiwgXAotICAgICAgICAgICIwLjAwMTUxOSwgMC4wMDE1MjgsIDAuMDAxNTQyLCAwLjAwMTU0NSwgMC4wMDE1NDcsIDAuMDAxNTQ4LCAwLjAwMTU0OCIsIFwKLSAgICAgICAgICAiMC4wMDE1MDksIDAuMDAxNTE5LCAwLjAwMTUzNiwgMC4wMDE1MzksIDAuMDAxNTQxLCAwLjAwMTU0MiwgMC4wMDE1NDMiLCBcCi0gICAgICAgICAgIjAuMDAxNTA0LCAwLjAwMTUxNSwgMC4wMDE1MzMsIDAuMDAxNTM2LCAwLjAwMTUzOSwgMC4wMDE1NCwgMC4wMDE1NDEiLCBcCi0gICAgICAgICAgIjAuMDAxNTAxLCAwLjAwMTUxMiwgMC4wMDE1MzIsIDAuMDAxNTM3LCAwLjAwMTUzOSwgMC4wMDE1NDIsIDAuMDAxNTQzIiwgXAotICAgICAgICAgICIwLjAwMTUwOSwgMC4wMDE1MTksIDAuMDAxNTM3LCAwLjAwMTU0MiwgMC4wMDE1NDUsIDAuMDAxNTQ4LCAwLjAwMTU0OCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzA2NywgMC4wMDMwNzcsIDAuMDAzMDkxLCAwLjAwMzA5NCwgMC4wMDMwOTUsIDAuMDAzMDk3LCAwLjAwMzA5NyIsIFwKLSAgICAgICAgICAiMC4wMDMwNTQsIDAuMDAzMDY0LCAwLjAwMzA3OSwgMC4wMDMwODIsIDAuMDAzMDgzLCAwLjAwMzA4NSwgMC4wMDMwODUiLCBcCi0gICAgICAgICAgIjAuMDAzMDQ0LCAwLjAwMzA1NSwgMC4wMDMwNzIsIDAuMDAzMDc1LCAwLjAwMzA3NywgMC4wMDMwNzgsIDAuMDAzMDc5IiwgXAotICAgICAgICAgICIwLjAwMzAzOCwgMC4wMDMwNSwgMC4wMDMwNjgsIDAuMDAzMDcyLCAwLjAwMzA3NCwgMC4wMDMwNzYsIDAuMDAzMDc2IiwgXAotICAgICAgICAgICIwLjAwMzAzMywgMC4wMDMwNDQsIDAuMDAzMDY0LCAwLjAwMzA2OCwgMC4wMDMwNywgMC4wMDMwNzIsIDAuMDAzMDczIiwgXAotICAgICAgICAgICIwLjAwMzAyOCwgMC4wMDMwNDEsIDAuMDAzMDYzLCAwLjAwMzA2OCwgMC4wMDMwNzEsIDAuMDAzMDczLCAwLjAwMzA3NCIsIFwKLSAgICAgICAgICAiMC4wMDMwMjYsIDAuMDAzMDQsIDAuMDAzMDYzLCAwLjAwMzA2OCwgMC4wMDMwNzIsIDAuMDAzMDc0LCAwLjAwMzA3NSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkExIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDE1NTQsIDAuMDAxNTYzLCAwLjAwMTU3NSwgMC4wMDE1NzcsIDAuMDAxNTc5LCAwLjAwMTU4LCAwLjAwMTU4IiwgXAotICAgICAgICAgICIwLjAwMTUyNywgMC4wMDE1MzYsIDAuMDAxNTUsIDAuMDAxNTUzLCAwLjAwMTU1NCwgMC4wMDE1NTYsIDAuMDAxNTU3IiwgXAotICAgICAgICAgICIwLjAwMTUxOCwgMC4wMDE1MjcsIDAuMDAxNTQzLCAwLjAwMTU0NiwgMC4wMDE1NDksIDAuMDAxNTUsIDAuMDAxNTUxIiwgXAotICAgICAgICAgICIwLjAwMTUxNCwgMC4wMDE1MjUsIDAuMDAxNTQzLCAwLjAwMTU0NywgMC4wMDE1NSwgMC4wMDE1NTIsIDAuMDAxNTUzIiwgXAotICAgICAgICAgICIwLjAwMTUxOSwgMC4wMDE1MywgMC4wMDE1NSwgMC4wMDE1NTUsIDAuMDAxNTU4LCAwLjAwMTU2LCAwLjAwMTU2IiwgXAotICAgICAgICAgICIwLjAwMTUzNCwgMC4wMDE1NDQsIDAuMDAxNTY2LCAwLjAwMTU3MSwgMC4wMDE1NzQsIDAuMDAxNTc5LCAwLjAwMTU4IiwgXAotICAgICAgICAgICIwLjAwMTU1NCwgMC4wMDE1NjQsIDAuMDAxNTg2LCAwLjAwMTU5MiwgMC4wMDE1OTYsIDAuMDAxNiwgMC4wMDE2MDEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI4MjQsIDAuMDAyODMzLCAwLjAwMjg0NSwgMC4wMDI4NDcsIDAuMDAyODQ5LCAwLjAwMjg1LCAwLjAwMjg1IiwgXAotICAgICAgICAgICIwLjAwMjgwMywgMC4wMDI4MTMsIDAuMDAyODI1LCAwLjAwMjgyOCwgMC4wMDI4MjksIDAuMDAyODMsIDAuMDAyODMiLCBcCi0gICAgICAgICAgIjAuMDAyNzg4LCAwLjAwMjc5OCwgMC4wMDI4MTMsIDAuMDAyODE2LCAwLjAwMjgxNywgMC4wMDI4MTgsIDAuMDAyODE5IiwgXAotICAgICAgICAgICIwLjAwMjc3OCwgMC4wMDI3ODksIDAuMDAyODA2LCAwLjAwMjgxLCAwLjAwMjgxMiwgMC4wMDI4MTMsIDAuMDAyODE0IiwgXAotICAgICAgICAgICIwLjAwMjc3MiwgMC4wMDI3ODQsIDAuMDAyODAzLCAwLjAwMjgwNywgMC4wMDI4MDksIDAuMDAyODEsIDAuMDAyODExIiwgXAotICAgICAgICAgICIwLjAwMjc2OCwgMC4wMDI3NzgsIDAuMDAyNzk5LCAwLjAwMjgwNSwgMC4wMDI4MDcsIDAuMDAyODA5LCAwLjAwMjgxIiwgXAotICAgICAgICAgICIwLjAwMjc2MSwgMC4wMDI3NzUsIDAuMDAyNzk5LCAwLjAwMjgwNCwgMC4wMDI4MDksIDAuMDAyODExLCAwLjAwMjgxMiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDEyMzUsIDAuMDAxMjM2LCAwLjAwMTI0LCAwLjAwMTIzOSwgMC4wMDEyMzksIDAuMDAxMjQzLCAwLjAwMTI0IiwgXAotICAgICAgICAgICIwLjAwMTIwOSwgMC4wMDEyMTIsIDAuMDAxMjE3LCAwLjAwMTIxNywgMC4wMDEyMTgsIDAuMDAxMjE4LCAwLjAwMTIxOCIsIFwKLSAgICAgICAgICAiMC4wMDExOTgsIDAuMDAxMjA0LCAwLjAwMTIxMSwgMC4wMDEyMTMsIDAuMDAxMjEzLCAwLjAwMTIxNCwgMC4wMDEyMTQiLCBcCi0gICAgICAgICAgIjAuMDAxMjAxLCAwLjAwMTIwNywgMC4wMDEyMTYsIDAuMDAxMjE4LCAwLjAwMTIxOSwgMC4wMDEyMTksIDAuMDAxMjIiLCBcCi0gICAgICAgICAgIjAuMDAxMjAxLCAwLjAwMTIwOCwgMC4wMDEyMTgsIDAuMDAxMjIsIDAuMDAxMjIxLCAwLjAwMTIyMiwgMC4wMDEyMjIiLCBcCi0gICAgICAgICAgIjAuMDAxMjE3LCAwLjAwMTIyNCwgMC4wMDEyMzUsIDAuMDAxMjM4LCAwLjAwMTI0LCAwLjAwMTI0MSwgMC4wMDEyNDEiLCBcCi0gICAgICAgICAgIjAuMDAxMjM4LCAwLjAwMTI0MSwgMC4wMDEyNTYsIDAuMDAxMjU4LCAwLjAwMTI2MiwgMC4wMDEyNjEsIDAuMDAxMjYxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyNTQ1LCAwLjAwMjU1NSwgMC4wMDI1NjksIDAuMDAyNTcyLCAwLjAwMjU3NCwgMC4wMDI1NzUsIDAuMDAyNTc1IiwgXAotICAgICAgICAgICIwLjAwMjUyMSwgMC4wMDI1MzIsIDAuMDAyNTQ4LCAwLjAwMjU1MSwgMC4wMDI1NTMsIDAuMDAyNTU1LCAwLjAwMjU1NSIsIFwKLSAgICAgICAgICAiMC4wMDI1MSwgMC4wMDI1MjMsIDAuMDAyNTQyLCAwLjAwMjU0NiwgMC4wMDI1NDksIDAuMDAyNTUxLCAwLjAwMjU1MSIsIFwKLSAgICAgICAgICAiMC4wMDI1MSwgMC4wMDI1MjQsIDAuMDAyNTQ3LCAwLjAwMjU1MiwgMC4wMDI1NTUsIDAuMDAyNTU4LCAwLjAwMjU1OCIsIFwKLSAgICAgICAgICAiMC4wMDI1MTcsIDAuMDAyNTMsIDAuMDAyNTU2LCAwLjAwMjU2MiwgMC4wMDI1NjUsIDAuMDAyNTY4LCAwLjAwMjU2OSIsIFwKLSAgICAgICAgICAiMC4wMDI1MjQsIDAuMDAyNTM3LCAwLjAwMjU2NSwgMC4wMDI1NzEsIDAuMDAyNTc1LCAwLjAwMjU3OSwgMC4wMDI1OCIsIFwKLSAgICAgICAgICAiMC4wMDI1NDksIDAuMDAyNTYyLCAwLjAwMjU5LCAwLjAwMjU5NywgMC4wMDI2MDMsIDAuMDAyNjA3LCAwLjAwMjYwOCIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogQU8yMVgyICoKLSAqIC0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoQU8yMVgyKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMTM4OTQ4OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNTk2MzQ0OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDU5NDYzNzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA1OTYzNDQ7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjI2LCAwLjAwMDIyNiwgMC4wMDAyMjYsIDAuMDAwMjI2LCAwLjAwMDIyNiwgMC4wMDAyMjYsIDAuMDAwMjI2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjMzLCAwLjAwMDIyOCwgMC4wMDAyMjcsIDAuMDAwMjI3LCAwLjAwMDIyNywgMC4wMDAyMjcsIDAuMDAwMjI3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihBMSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjAzNjc7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjAwNjI2OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDYwMzY3OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDExOCwgMC4wMDAxMTgsIDAuMDAwMTE4LCAwLjAwMDExOCwgMC4wMDAxMTgsIDAuMDAwMTE4LCAwLjAwMDExOCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDI1NywgMC4wMDAyNTcsIDAuMDAwMjU3LCAwLjAwMDI1NywgMC4wMDAyNTcsIDAuMDAwMjU3LCAwLjAwMDI1NyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQjApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYzMDMzODsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MzAyMTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2MzAzMzg7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMDUxLCAwLjAwMDA1MSwgMC4wMDAwNTEsIDAuMDAwMDUxLCAwLjAwMDA1MSwgMC4wMDAwNTEsIDAuMDAwMDUxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzY5LCAwLjAwMDM2OSwgMC4wMDAzNjksIDAuMDAwMzY5LCAwLjAwMDM2OSwgMC4wMDAzNjksIDAuMDAwMzY5Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuNTA4MzgyOwotICAgIGZ1bmN0aW9uIDogIigoQTAgQTEpK0IwKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTAiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4NTAxOSwgMC4xODkyOSwgMC4yNzA4MTEsIDAuMzcyNjQyLCAwLjQ3NDMxMywgMC41NzU5ODUsIDAuNjc3NjU3IiwgXAotICAgICAgICAgICIwLjA5Mzg2NSwgMC4xOTgxMDUsIDAuMjc5NjEzLCAwLjM4MTQwMSwgMC40ODMxNTQsIDAuNTg0ODg3LCAwLjY4NjQ1MyIsIFwKLSAgICAgICAgICAiMC4xMDQ3MjYsIDAuMjA5MDEzLCAwLjI5MDU0OCwgMC4zOTIzNDMsIDAuNDk0MDU3LCAwLjU5NTcyNywgMC42OTc0NDUiLCBcCi0gICAgICAgICAgIjAuMTE1NDExLCAwLjIxOTY0NywgMC4zMDExNzksIDAuNDAzMDExLCAwLjUwNDY4NywgMC42MDYzNjMsIDAuNzA4MDMyIiwgXAotICAgICAgICAgICIwLjEyNTU1NCwgMC4yMjk4MTksIDAuMzExMzU0LCAwLjQxMzIyNywgMC41MTQ5MjcsIDAuNjE2NTgyLCAwLjcxODIwOCIsIFwKLSAgICAgICAgICAiMC4xNDA5MjIsIDAuMjQ1Mjk1LCAwLjMyNjgxNywgMC40Mjg2MDgsIDAuNTMwMzMsIDAuNjMxOTk1LCAwLjczMzY2IiwgXAotICAgICAgICAgICIwLjE1MzAyNSwgMC4yNTc1OSwgMC4zMzkxMTYsIDAuNDQwOSwgMC41NDI2OSwgMC42NDQzMDgsIDAuNzQ1OTUyIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1ODE0LCAwLjI2MTQ0MSwgMC40Mjg1MjksIDAuNjM4MTg3LCAwLjg0Nzc4NSwgMS4wNTYzLCAxLjI2NTk4IiwgXAotICAgICAgICAgICIwLjA1ODEyNiwgMC4yNjE0NCwgMC40Mjg1MDIsIDAuNjM3MjEzLCAwLjg0NzcwOSwgMS4wNTc3NywgMS4yNjU5MSIsIFwKLSAgICAgICAgICAiMC4wNTgwNDEsIDAuMjYxNjM4LCAwLjQyODUxOCwgMC42MzczNzUsIDAuODQ3NzUxLCAxLjA1NjI5LCAxLjI2NzQ0IiwgXAotICAgICAgICAgICIwLjA1ODEzMiwgMC4yNjE0NjksIDAuNDI4NDU5LCAwLjYzODA0LCAwLjg0NzcyNywgMS4wNTYzMywgMS4yNjYwNSIsIFwKLSAgICAgICAgICAiMC4wNTgzNjQsIDAuMjYxNTAyLCAwLjQyODQ4MSwgMC42MzY5MzQsIDAuODQ3NzU4LCAxLjA1NTkzLCAxLjI2NTkiLCBcCi0gICAgICAgICAgIjAuMDU5MzcxLCAwLjI2MTYzMywgMC40Mjg1NiwgMC42Mzc5ODksIDAuODQ3NjQ4LCAxLjA1NjEzLCAxLjI2NzE2IiwgXAotICAgICAgICAgICIwLjA2MDY0NywgMC4yNjIwMDEsIDAuNDI4Njg5LCAwLjYzNzMwMSwgMC44NDc4MSwgMS4wNTc0LCAxLjI2Njc5Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4OTM5MSwgMC4xOTU4OTQsIDAuMjc4NzQ5LCAwLjM4MjI2OCwgMC40ODU3NSwgMC41ODkxNTYsIDAuNjkyNTcxIiwgXAotICAgICAgICAgICIwLjA5ODY5MywgMC4yMDUyMDIsIDAuMjg4MDU5LCAwLjM5MTU3MSwgMC40OTUwNDksIDAuNTk4NDk2LCAwLjcwMTkxOSIsIFwKLSAgICAgICAgICAiMC4xMDg5MjIsIDAuMjE1NDQsIDAuMjk4MywgMC40MDE4MywgMC41MDUyOTIsIDAuNjA4NzAzLCAwLjcxMjEyNiIsIFwKLSAgICAgICAgICAiMC4xMTg2NDgsIDAuMjI1MTYsIDAuMzA4MDI3LCAwLjQxMTU1NCwgMC41MTUwMjIsIDAuNjE4NDMyLCAwLjcyMTg1NCIsIFwKLSAgICAgICAgICAiMC4xMjc5MjksIDAuMjM0NTEsIDAuMzE3MzgyLCAwLjQyMDg5MSwgMC41MjQzNzQsIDAuNjI3Nzg3LCAwLjczMTIyIiwgXAotICAgICAgICAgICIwLjE0MTY3OSwgMC4yNDg0NDUsIDAuMzMxMzEsIDAuNDM0ODIsIDAuNTM4Mjg3LCAwLjY0MTczMiwgMC43NDUxMzUiLCBcCi0gICAgICAgICAgIjAuMTUyMzI2LCAwLjI1OTM4OSwgMC4zNDIyNjksIDAuNDQ1NzY4LCAwLjU0OTI0NiwgMC42NTI2OTIsIDAuNzU2MDkyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1ODk3NiwgMC4yNjE1OTYsIDAuNDI4NjI4LCAwLjYzNzIzNSwgMC44NDc2NiwgMS4wNTc1LCAxLjI2NyIsIFwKLSAgICAgICAgICAiMC4wNTg5MzUsIDAuMjYyMDgzLCAwLjQyODYxMiwgMC42MzgwMTMsIDAuODQ3NjAxLCAxLjA1NzUsIDEuMjY3NTQiLCBcCi0gICAgICAgICAgIjAuMDU4OTQ1LCAwLjI2MTY1MiwgMC40Mjg2MTMsIDAuNjM2NjQzLCAwLjg0NzY1MiwgMS4wNTc0NiwgMS4yNjY5NCIsIFwKLSAgICAgICAgICAiMC4wNTkwMDEsIDAuMjYxNjEyLCAwLjQyODY0MywgMC42MzY1ODgsIDAuODQ3NjM5LCAxLjA1NzQ2LCAxLjI2Njk3IiwgXAotICAgICAgICAgICIwLjA1OTMyOCwgMC4yNjE3MzYsIDAuNDI4NjYsIDAuNjM3NjUsIDAuODQ3NjIsIDEuMDU3NDYsIDEuMjY3MzEiLCBcCi0gICAgICAgICAgIjAuMDYwMzU5LCAwLjI2MTgyNiwgMC40Mjg3NzYsIDAuNjM2OTM0LCAwLjg0NjY4MywgMS4wNTc1OSwgMS4yNjcyNiIsIFwKLSAgICAgICAgICAiMC4wNjE3MTksIDAuMjYyNzU4LCAwLjQyODk4OSwgMC42Mzc5NjgsIDAuODQ2NDc1LCAxLjA1NzQsIDEuMjY3MzciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTEiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4MjcxMywgMC4xODY5OTMsIDAuMjY4NTA2LCAwLjM3MDM2MSwgMC40NzIwNDEsIDAuNTczNjkxLCAwLjY3NTM1MyIsIFwKLSAgICAgICAgICAiMC4wOTE2OSwgMC4xOTU5NDYsIDAuMjc3NDU5LCAwLjM3OTI3OCwgMC40ODA5NjIsIDAuNTgyNjY4LCAwLjY4NDMyMiIsIFwKLSAgICAgICAgICAiMC4xMDM0NDYsIDAuMjA3NzI0LCAwLjI4OTI2LCAwLjM5MTExLCAwLjQ5Mjc3MiwgMC41OTQ0NCwgMC42OTYxMDYiLCBcCi0gICAgICAgICAgIjAuMTE1MzY0LCAwLjIxOTU2NywgMC4zMDExLCAwLjQwMjk1MywgMC41MDQ2MjQsIDAuNjA2Mjg3LCAwLjcwNzk2OSIsIFwKLSAgICAgICAgICAiMC4xMjY1ODUsIDAuMjMxMTE2LCAwLjMxMjY0MywgMC40MTQ0NDQsIDAuNTE2MTg5LCAwLjYxNzg5NCwgMC43MTk1MDEiLCBcCi0gICAgICAgICAgIjAuMTQzODY1LCAwLjI0ODIzOCwgMC4zMjk3NTQsIDAuNDMxNTc1LCAwLjUzMzI3NSwgMC42MzQ5MzcsIDAuNzM2NjA3IiwgXAotICAgICAgICAgICIwLjE1Njk2OCwgMC4yNjE2LCAwLjM0MzEwNCwgMC40NDQ4ODgsIDAuNTQ2NjQyLCAwLjY0ODMxLCAwLjc0OTkzNyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTgxNzIsIDAuMjYxNDMzLCAwLjQyODAzOSwgMC42MzY5MTcsIDAuODQ2NDgyLCAxLjA1NjQ2LCAxLjI2NjEzIiwgXAotICAgICAgICAgICIwLjA1ODExNiwgMC4yNjE2NjQsIDAuNDI4NDk4LCAwLjYzODA5OSwgMC44NDc3MjUsIDEuMDU3NTcsIDEuMjY2MDUiLCBcCi0gICAgICAgICAgIjAuMDU4MDY0LCAwLjI2MTQ1MiwgMC40Mjg1MjIsIDAuNjM4MjAzLCAwLjg0Nzc1NCwgMS4wNTYyNiwgMS4yNjU5OCIsIFwKLSAgICAgICAgICAiMC4wNTgxMTYsIDAuMjYxNDg1LCAwLjQyODQ5NywgMC42MzgxOCwgMC44NDc3NDcsIDEuMDU3MTYsIDEuMjY1ODkiLCBcCi0gICAgICAgICAgIjAuMDU4OTE5LCAwLjI2MTQ4OCwgMC40Mjg0ODQsIDAuNjM3MzMyLCAwLjg0NzY3OCwgMS4wNTc0OCwgMS4yNjU4NCIsIFwKLSAgICAgICAgICAiMC4wNjAwMDYsIDAuMjYxNywgMC40Mjg1ODgsIDAuNjM3MDYyLCAwLjg0NzY1NywgMS4wNTYxOSwgMS4yNjYiLCBcCi0gICAgICAgICAgIjAuMDYxNTgxLCAwLjI2MjI2OCwgMC40Mjg2NjksIDAuNjM4MDI4LCAwLjg0NjUyMSwgMS4wNTU1NywgMS4yNjcxNiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODU0MTYsIDAuMTkxNjYzLCAwLjI3NDQ2NCwgMC4zNzc5MjgsIDAuNDgxMzg5LCAwLjU4NDg1MiwgMC42ODg0NDUiLCBcCi0gICAgICAgICAgIjAuMDk0NjgyLCAwLjIwMDg0NywgMC4yODM2NiwgMC4zODcxNDksIDAuNDkwNTcxLCAwLjU5NDI1NiwgMC42OTc1MDgiLCBcCi0gICAgICAgICAgIjAuMTA0ODM3LCAwLjIxMTAzNSwgMC4yOTM4MzgsIDAuMzk3MzYyLCAwLjUwMDc4OSwgMC42MDQyMDQsIDAuNzA3NzIiLCBcCi0gICAgICAgICAgIjAuMTE0NDc0LCAwLjIyMDY3OSwgMC4zMDM0ODEsIDAuNDA2OTU0LCAwLjUxMDQ2MSwgMC42MTM4NzksIDAuNzE3MzU4IiwgXAotICAgICAgICAgICIwLjEyMzY0OSwgMC4yMjk5NTEsIDAuMzEyNzYsIDAuNDE2MzA0LCAwLjUxOTY4NSwgMC42MjMzMjgsIDAuNzI2NjA0IiwgXAotICAgICAgICAgICIwLjEzNjk2NSwgMC4yNDM1NzksIDAuMzI2NCwgMC40Mjk5MDEsIDAuNTMzMzM0LCAwLjYzNzAxNiwgMC43NDAyNDQiLCBcCi0gICAgICAgICAgIjAuMTQ3Mjg2LCAwLjI1NDI4LCAwLjMzNzA2MiwgMC40NDA1NzIsIDAuNTQ0MDMyLCAwLjY0NzQ1MiwgMC43NTEwMDQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU4NDE5LCAwLjI2MTMyNSwgMC40MjgyMzUsIDAuNjM2NjA4LCAwLjg0NzQ2OSwgMS4wNTc1OSwgMS4yNjQ2OSIsIFwKLSAgICAgICAgICAiMC4wNTgzNzMsIDAuMjYxNDc3LCAwLjQyNzgzMywgMC42MzY1NTksIDAuODQ3NTE4LCAxLjA1NDg4LCAxLjI2NDAxIiwgXAotICAgICAgICAgICIwLjA1ODMzNywgMC4yNjE2MjYsIDAuNDI4MjM3LCAwLjYzNjA0OCwgMC44NDc2MTQsIDEuMDU3NDEsIDEuMjYzOTQiLCBcCi0gICAgICAgICAgIjAuMDU4NTEyLCAwLjI2MTQxNSwgMC40MjgyNjYsIDAuNjM2NjExLCAwLjg0NTI1MywgMS4wNTc1LCAxLjI2Mzk4IiwgXAotICAgICAgICAgICIwLjA1OTAxNCwgMC4yNjE2MDIsIDAuNDI4MzA1LCAwLjYzNTk3MSwgMC44NDc0OTQsIDEuMDU1MDUsIDEuMjY3NSIsIFwKLSAgICAgICAgICAiMC4wNjAzMjMsIDAuMjYyMDY2LCAwLjQyODQ0NiwgMC42MzYzMzcsIDAuODQ3NTYzLCAxLjA1NDg2LCAxLjI2NzUyIiwgXAotICAgICAgICAgICIwLjA2MTkyNiwgMC4yNjIxMTMsIDAuNDI3OTUzLCAwLjYzNjE5LCAwLjg0NjI2LCAxLjA1NzU1LCAxLjI2NDYzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTQ1NDksIDAuMTU2NTY4LCAwLjIzNzg4NiwgMC4zMzk1NiwgMC40NDEyNDQsIDAuNTQzMDIxLCAwLjY0NDU3OCIsIFwKLSAgICAgICAgICAiMC4wNjQ3NywgMC4xNjY4MTgsIDAuMjQ4MjI4LCAwLjM0OTgwNywgMC40NTE1OTgsIDAuNTUzMTM1LCAwLjY1NDkwNyIsIFwKLSAgICAgICAgICAiMC4wNzczNzUsIDAuMTc5NDY4LCAwLjI2MDgxMywgMC4zNjI0NTYsIDAuNDY0MTQ1LCAwLjU2NTc4NywgMC42Njc1MjgiLCBcCi0gICAgICAgICAgIjAuMDg5MDA4LCAwLjE5MTA5MywgMC4yNzI0MzMsIDAuMzc0MDkxLCAwLjQ3NTkyMSwgMC41Nzc1MTYsIDAuNjc5NDE4IiwgXAotICAgICAgICAgICIwLjA5OTI2MiwgMC4yMDEzNywgMC4yODI3MzksIDAuMzg0Mzc0LCAwLjQ4NjI0LCAwLjU4NzY4OCwgMC42ODkzODUiLCBcCi0gICAgICAgICAgIjAuMTEzMjExLCAwLjIxNTQ4MiwgMC4yOTY3NzUsIDAuMzk4NDcyLCAwLjUwMDA5NSwgMC42MDE5MzEsIDAuNzAzNDYyIiwgXAotICAgICAgICAgICIwLjEyNDQ2OCwgMC4yMjY5NDYsIDAuMzA4MjQxLCAwLjQwOTg1MiwgMC41MTE1MDMsIDAuNjEzNDU1LCAwLjcxNDgiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDUxOTIyLCAwLjI1ODUyMiwgMC40MjYxNTksIDAuNjM1OTA1LCAwLjg0NDUzOSwgMS4wNTQzNCwgMS4yNjMzMiIsIFwKLSAgICAgICAgICAiMC4wNTE5MzIsIDAuMjU4NTI1LCAwLjQyNTQ2OCwgMC42MzUzMjcsIDAuODQ0NzIzLCAxLjA1NDM4LCAxLjI2NTU4IiwgXAotICAgICAgICAgICIwLjA1MjExNSwgMC4yNTgzNTUsIDAuNDI2MTk0LCAwLjYzNTIwNSwgMC44NDU2OTcsIDEuMDU1NTYsIDEuMjY0MTIiLCBcCi0gICAgICAgICAgIjAuMDUyOTkxLCAwLjI1ODUxMiwgMC40MjYyMDgsIDAuNjM2MDk2LCAwLjg0NDUwMiwgMS4wNTQwNSwgMS4yNjM2MiIsIFwKLSAgICAgICAgICAiMC4wNTQyNjUsIDAuMjU4NTg5LCAwLjQyNjI5LCAwLjYzNDk3NSwgMC44NDQ1MzQsIDEuMDU0LCAxLjI2MzI0IiwgXAotICAgICAgICAgICIwLjA1Njc3NCwgMC4yNTg5OCwgMC40MjYyNjUsIDAuNjM0OTcxLCAwLjg0NDMxNiwgMS4wNTQ2NCwgMS4yNjMxNCIsIFwKLSAgICAgICAgICAiMC4wNTgzMDcsIDAuMjU5MjE3LCAwLjQyNjIyOCwgMC42MzYwNzMsIDAuODQ2MDA4LCAxLjA1NDU2LCAxLjI2NDIiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDgxNDUxLCAwLjE4ODAxNSwgMC4yNzA4ODQsIDAuMzc0MzksIDAuNDc3ODc4LCAwLjU4MTI4MiwgMC42ODQ2OTUiLCBcCi0gICAgICAgICAgIjAuMDkwMzA4LCAwLjE5NjgzNywgMC4yNzk2OTEsIDAuMzgzMjA5LCAwLjQ4NjY0NywgMC41OTAwOTcsIDAuNjkzNTE1IiwgXAotICAgICAgICAgICIwLjEwMTczNiwgMC4yMDgyNDQsIDAuMjkxMTE1LCAwLjM5NDYxNiwgMC40OTgxMDUsIDAuNjAxNTE5LCAwLjcwNDk2MiIsIFwKLSAgICAgICAgICAiMC4xMTMwNzIsIDAuMjE5NiwgMC4zMDI0NjIsIDAuNDA2MDA5LCAwLjUwOTQzOSwgMC42MTI4NjgsIDAuNzE2MyIsIFwKLSAgICAgICAgICAiMC4xMjM4MjIsIDAuMjMwMzc0LCAwLjMxMzI0MywgMC40MTY3NzcsIDAuNTIwMjg4LCAwLjYyMzY4MiwgMC43MjcwODMiLCBcCi0gICAgICAgICAgIjAuMTM5MDM2LCAwLjI0NTgwMywgMC4zMjg2NzYsIDAuNDMyMTg3LCAwLjUzNTY3OSwgMC42MzkxMTIsIDAuNzQyNTAxIiwgXAotICAgICAgICAgICIwLjE1MDc0LCAwLjI1Nzc5NywgMC4zNDA2NTUsIDAuNDQ0MTUyLCAwLjU0NzY3NSwgMC42NTEwNjMsIDAuNzU0NDgxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1ODkxLCAwLjI2MTg2OSwgMC40Mjc5MzMsIDAuNjM3MTgxLCAwLjg0NzYyNiwgMS4wNTc1MywgMS4yNjY5OCIsIFwKLSAgICAgICAgICAiMC4wNTg5MDcsIDAuMjYxODc0LCAwLjQyODYsIDAuNjM3MDQxLCAwLjg0NzY0NiwgMS4wNTc0NiwgMS4yNjczMiIsIFwKLSAgICAgICAgICAiMC4wNTg5MTMsIDAuMjYxOTI2LCAwLjQyODYyOCwgMC42Mzc5NTQsIDAuODQ3NjksIDEuMDU3NDUsIDEuMjY3NDgiLCBcCi0gICAgICAgICAgIjAuMDU5MTAxLCAwLjI2MjExMywgMC40Mjg2MzcsIDAuNjM4MDQ2LCAwLjg0NzI2LCAxLjA1NzQsIDEuMjY3MjQiLCBcCi0gICAgICAgICAgIjAuMDU5Njg2LCAwLjI2MjAwMywgMC40Mjg2NjMsIDAuNjM3MjU5LCAwLjg0NzUxNiwgMS4wNTc1NywgMS4yNjc0OCIsIFwKLSAgICAgICAgICAiMC4wNjEzMjYsIDAuMjYyMjI5LCAwLjQyODg2MywgMC42MzY5OTcsIDAuODQ3NzA2LCAxLjA1NTI2LCAxLjI2NzI1IiwgXAotICAgICAgICAgICIwLjA2MjQzLCAwLjI2MjY3OCwgMC40MjkwNzcsIDAuNjM4MTQzLCAwLjg0NTU4OCwgMS4wNTc2LCAxLjI2Njg1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjUzMSwgMC4wMDI2MDIsIDAuMDAyNjEyLCAwLjAwMjYxNiwgMC4wMDI2MiwgMC4wMDI2MjQsIDAuMDAyNjIyIiwgXAotICAgICAgICAgICIwLjAwMjUwOSwgMC4wMDI1ODIsIDAuMDAyNTkzLCAwLjAwMjU5OSwgMC4wMDI2MDQsIDAuMDAyNjAyLCAwLjAwMjYwNSIsIFwKLSAgICAgICAgICAiMC4wMDI0OTQsIDAuMDAyNTY2LCAwLjAwMjU4LCAwLjAwMjU4NiwgMC4wMDI1OTEsIDAuMDAyNTkyLCAwLjAwMjU4OSIsIFwKLSAgICAgICAgICAiMC4wMDI0ODMsIDAuMDAyNTU4LCAwLjAwMjU3MiwgMC4wMDI1NzgsIDAuMDAyNTgzLCAwLjAwMjU4NSwgMC4wMDI1ODYiLCBcCi0gICAgICAgICAgIjAuMDAyNDc0LCAwLjAwMjU1MywgMC4wMDI1NjksIDAuMDAyNTc1LCAwLjAwMjU3OSwgMC4wMDI1ODIsIDAuMDAyNTg0IiwgXAotICAgICAgICAgICIwLjAwMjQ3OSwgMC4wMDI1NTIsIDAuMDAyNTY2LCAwLjAwMjU3NCwgMC4wMDI1OCwgMC4wMDI1ODIsIDAuMDAyNTgzIiwgXAotICAgICAgICAgICIwLjAwMjQ4OCwgMC4wMDI1NDgsIDAuMDAyNTY1LCAwLjAwMjU3NCwgMC4wMDI1ODIsIDAuMDAyNTgzLCAwLjAwMjU4NiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzk5MSwgMC4wMDQwODIsIDAuMDA0MDk0LCAwLjAwNDEwMSwgMC4wMDQxMDQsIDAuMDA0MTA2LCAwLjAwNDEwNyIsIFwKLSAgICAgICAgICAiMC4wMDM5NzgsIDAuMDA0MDcxLCAwLjAwNDA4NCwgMC4wMDQwOSwgMC4wMDQwOTQsIDAuMDA0MDk2LCAwLjAwNDA5NyIsIFwKLSAgICAgICAgICAiMC4wMDM5NjYsIDAuMDA0MDYyLCAwLjAwNDA3NiwgMC4wMDQwODMsIDAuMDA0MDg3LCAwLjAwNDA4OSwgMC4wMDQwOTEiLCBcCi0gICAgICAgICAgIjAuMDAzOTU4LCAwLjAwNDA1NiwgMC4wMDQwNywgMC4wMDQwNzgsIDAuMDA0MDgzLCAwLjAwNDA4NSwgMC4wMDQwODciLCBcCi0gICAgICAgICAgIjAuMDAzOTU2LCAwLjAwNDA1MSwgMC4wMDQwNjcsIDAuMDA0MDc2LCAwLjAwNDA4LCAwLjAwNDA4MywgMC4wMDQwODUiLCBcCi0gICAgICAgICAgIjAuMDAzOTQyLCAwLjAwNDA0MiwgMC4wMDQwNjIsIDAuMDA0MDY5LCAwLjAwNDA3NSwgMC4wMDQwNzgsIDAuMDA0MDgiLCBcCi0gICAgICAgICAgIjAuMDAzOTM5LCAwLjAwNDAzOSwgMC4wMDQwNTgsIDAuMDA0MDcsIDAuMDA0MDc1LCAwLjAwNDA3OSwgMC4wMDQwODIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyNTMyLCAwLjAwMjYwMiwgMC4wMDI2MTQsIDAuMDAyNjE4LCAwLjAwMjYxOSwgMC4wMDI2MjIsIDAuMDAyNjIzIiwgXAotICAgICAgICAgICIwLjAwMjUwNSwgMC4wMDI1NzgsIDAuMDAyNTg5LCAwLjAwMjU5NSwgMC4wMDI1OTcsIDAuMDAyNTk5LCAwLjAwMjYiLCBcCi0gICAgICAgICAgIjAuMDAyNDksIDAuMDAyNTY2LCAwLjAwMjU3OSwgMC4wMDI1ODgsIDAuMDAyNTg5LCAwLjAwMjU5MiwgMC4wMDI1OTEiLCBcCi0gICAgICAgICAgIjAuMDAyNDg2LCAwLjAwMjU2MiwgMC4wMDI1NzYsIDAuMDAyNTg0LCAwLjAwMjU4OCwgMC4wMDI1OTEsIDAuMDAyNTkzIiwgXAotICAgICAgICAgICIwLjAwMjQ4MywgMC4wMDI1NjIsIDAuMDAyNTc5LCAwLjAwMjU4OCwgMC4wMDI1OTIsIDAuMDAyNTk1LCAwLjAwMjU5NyIsIFwKLSAgICAgICAgICAiMC4wMDI1MTEsIDAuMDAyNTcxLCAwLjAwMjU5LCAwLjAwMjU5OCwgMC4wMDI2MDQsIDAuMDAyNjA4LCAwLjAwMjYxIiwgXAotICAgICAgICAgICIwLjAwMjUxOCwgMC4wMDI1ODUsIDAuMDAyNjAzLCAwLjAwMjYxNCwgMC4wMDI2MjEsIDAuMDAyNjI0LCAwLjAwMjYyNyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzc1NCwgMC4wMDM4NDEsIDAuMDAzODUzLCAwLjAwMzg1OCwgMC4wMDM4NjIsIDAuMDAzODYzLCAwLjAwMzg2NSIsIFwKLSAgICAgICAgICAiMC4wMDM3MzcsIDAuMDAzODI1LCAwLjAwMzgzNiwgMC4wMDM4NDIsIDAuMDAzODQ2LCAwLjAwMzg0NywgMC4wMDM4NDkiLCBcCi0gICAgICAgICAgIjAuMDAzNzE3LCAwLjAwMzgxMSwgMC4wMDM4MjMsIDAuMDAzODMsIDAuMDAzODMzLCAwLjAwMzgzNSwgMC4wMDM4MzYiLCBcCi0gICAgICAgICAgIjAuMDAzNzA2LCAwLjAwMzgwMSwgMC4wMDM4MTUsIDAuMDAzODIyLCAwLjAwMzgyNiwgMC4wMDM4MjgsIDAuMDAzODMiLCBcCi0gICAgICAgICAgIjAuMDAzNjk3LCAwLjAwMzc5NCwgMC4wMDM4MDksIDAuMDAzODE3LCAwLjAwMzgyMSwgMC4wMDM4MjQsIDAuMDAzODI2IiwgXAotICAgICAgICAgICIwLjAwMzY4NiwgMC4wMDM3ODUsIDAuMDAzODAxLCAwLjAwMzgxMSwgMC4wMDM4MTYsIDAuMDAzODE5LCAwLjAwMzgyMSIsIFwKLSAgICAgICAgICAiMC4wMDM2ODksIDAuMDAzNzgzLCAwLjAwMzgsIDAuMDAzODEsIDAuMDAzODE2LCAwLjAwMzgxOSwgMC4wMDM4MjEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyMTgxLCAwLjAwMjIxMywgMC4wMDIyMTQsIDAuMDAyMjE3LCAwLjAwMjIxNywgMC4wMDIyMTcsIDAuMDAyMjE3IiwgXAotICAgICAgICAgICIwLjAwMjE1MiwgMC4wMDIxOTQsIDAuMDAyMTk3LCAwLjAwMjE5OSwgMC4wMDIyLCAwLjAwMjIwMSwgMC4wMDIyMDEiLCBcCi0gICAgICAgICAgIjAuMDAyMTMxLCAwLjAwMjE4LCAwLjAwMjE4NSwgMC4wMDIxODksIDAuMDAyMTksIDAuMDAyMTkxLCAwLjAwMjE5MiIsIFwKLSAgICAgICAgICAiMC4wMDIxMTksIDAuMDAyMTc3LCAwLjAwMjE4NCwgMC4wMDIxODgsIDAuMDAyMTksIDAuMDAyMTkxLCAwLjAwMjE5MiIsIFwKLSAgICAgICAgICAiMC4wMDIxMjQsIDAuMDAyMTgsIDAuMDAyMTg5LCAwLjAwMjE5NCwgMC4wMDIxOTcsIDAuMDAyMTk4LCAwLjAwMjE5OSIsIFwKLSAgICAgICAgICAiMC4wMDIxNSwgMC4wMDIxOTksIDAuMDAyMjA5LCAwLjAwMjIxNSwgMC4wMDIyMTksIDAuMDAyMjIsIDAuMDAyMjIyIiwgXAotICAgICAgICAgICIwLjAwMjE1LCAwLjAwMjE5NiwgMC4wMDIyMDksIDAuMDAyMjE1LCAwLjAwMjIxOSwgMC4wMDIyMjIsIDAuMDAyMjIzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzNTI1LCAwLjAwMzYxNiwgMC4wMDM2MjksIDAuMDAzNjM1LCAwLjAwMzYzOSwgMC4wMDM2NDEsIDAuMDAzNjQyIiwgXAotICAgICAgICAgICIwLjAwMzQ5OSwgMC4wMDM1OTMsIDAuMDAzNjA3LCAwLjAwMzYxNCwgMC4wMDM2MTcsIDAuMDAzNjIsIDAuMDAzNjIxIiwgXAotICAgICAgICAgICIwLjAwMzQ4NywgMC4wMDM1ODIsIDAuMDAzNTk4LCAwLjAwMzYwNiwgMC4wMDM2MTEsIDAuMDAzNjEzLCAwLjAwMzYxNSIsIFwKLSAgICAgICAgICAiMC4wMDM0ODQsIDAuMDAzNTc5LCAwLjAwMzU5NywgMC4wMDM2MDcsIDAuMDAzNjEyLCAwLjAwMzYxNSwgMC4wMDM2MTciLCBcCi0gICAgICAgICAgIjAuMDAzNDc4LCAwLjAwMzU3OSwgMC4wMDM1OTksIDAuMDAzNjExLCAwLjAwMzYxNywgMC4wMDM2MjEsIDAuMDAzNjI0IiwgXAotICAgICAgICAgICIwLjAwMzQ4OSwgMC4wMDM1ODgsIDAuMDAzNjEsIDAuMDAzNjIzLCAwLjAwMzYzMSwgMC4wMDM2MzUsIDAuMDAzNjM4IiwgXAotICAgICAgICAgICIwLjAwMzUwOCwgMC4wMDM2LCAwLjAwMzYyMywgMC4wMDM2MzcsIDAuMDAzNjQ1LCAwLjAwMzY1LCAwLjAwMzY1MyIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogQU8yMVhMICoKLSAqIC0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoQU8yMVhMKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMDg2MzQ2OTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQTApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY0ODc0MzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2NDY3ODg7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjQ4NzQzOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDIyNiwgMC4wMDAyMjYsIDAuMDAwMjI2LCAwLjAwMDIyNiwgMC4wMDAyMjYsIDAuMDAwMjI2LCAwLjAwMDIyNiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDIzMywgMC4wMDAyMjgsIDAuMDAwMjI3LCAwLjAwMDIyNywgMC4wMDAyMjcsIDAuMDAwMjI3LCAwLjAwMDIyNyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQTEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY2MjAyNjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2NTg5NTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2NjIwMjY7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMTI2LCAwLjAwMDEyNiwgMC4wMDAxMjUsIDAuMDAwMTI1LCAwLjAwMDEyNSwgMC4wMDAxMjUsIDAuMDAwMTI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjU3LCAwLjAwMDI1NywgMC4wMDAyNTcsIDAuMDAwMjU3LCAwLjAwMDI1NywgMC4wMDAyNTcsIDAuMDAwMjU3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjcxODU7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjcxNjg1OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDY3MTg1OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDA0NywgMC4wMDAwNDcsIDAuMDAwMDQ3LCAwLjAwMDA0NywgMC4wMDAwNDcsIDAuMDAwMDQ3LCAwLjAwMDA0NyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDMxNywgMC4wMDAzMTgsIDAuMDAwMzE3LCAwLjAwMDMxNywgMC4wMDAzMTcsIDAuMDAwMzE3LCAwLjAwMDMxNyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjE1MDc0NzsKLSAgICBmdW5jdGlvbiA6ICIoKEEwIEExKStCMCkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTcyNTksIDAuMTMxNDUyLCAwLjI1ODkxNSwgMC40NzA5MTMsIDAuNjgyODM2LCAxLjE3NzE1LCAxLjQ1OTY5IiwgXAotICAgICAgICAgICIwLjEyNjAxNiwgMC4xNDAyMiwgMC4yNjc2OTQsIDAuNDc5NjkzLCAwLjY5MTYwOSwgMS4xODU5LCAxLjQ2ODM1IiwgXAotICAgICAgICAgICIwLjEzNjYyNSwgMC4xNTA4MjgsIDAuMjc4MzA2LCAwLjQ5MDMwNSwgMC43MDIyMDgsIDEuMTk2NTMsIDEuNDc4OTciLCBcCi0gICAgICAgICAgIjAuMTQ2ODYyLCAwLjE2MTA2OCwgMC4yODg1MywgMC41MDA1NTEsIDAuNzEyNDc1LCAxLjIwNjg2LCAxLjQ4OTIxIiwgXAotICAgICAgICAgICIwLjE1NjExOSwgMC4xNzAzMzUsIDAuMjk3ODI1LCAwLjUwOTgzMSwgMC43MjE3MjksIDEuMjE2MTEsIDEuNDk4NDUiLCBcCi0gICAgICAgICAgIjAuMTY5NTY5LCAwLjE4Mzc3NiwgMC4zMTEyNTYsIDAuNTIzMjc5LCAwLjczNTIzMSwgMS4yMjk0OSwgMS41MTE5NCIsIFwKLSAgICAgICAgICAiMC4xNzk4NTYsIDAuMTk0MDMxLCAwLjMyMTU0NCwgMC41MzM2MDksIDAuNzQ1NDQ1LCAxLjIzOTc2LCAxLjUyMjM0Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE1NDMwNiwgMC4xODMwNjIsIDAuNDQzOTEsIDAuODc4MzI0LCAxLjMxMzA5LCAyLjMyODQ0LCAyLjkwNzE1IiwgXAotICAgICAgICAgICIwLjE1NDMyMiwgMC4xODMxNzksIDAuNDQzOTEsIDAuODc4MjAxLCAxLjMxMzE2LCAyLjMyNzk2LCAyLjkwODMxIiwgXAotICAgICAgICAgICIwLjE1NDMyMSwgMC4xODMwNSwgMC40NDM4OTksIDAuODc4MzU4LCAxLjMxMzI0LCAyLjMyODA2LCAyLjkwODIzIiwgXAotICAgICAgICAgICIwLjE1NDQ1NCwgMC4xODMyMDQsIDAuNDQzNzkzLCAwLjg3ODI0NCwgMS4zMTQ0NSwgMi4zMjY4NywgMi45MDc3MiIsIFwKLSAgICAgICAgICAiMC4xNTQ1MjcsIDAuMTgzMTYsIDAuNDQzODYyLCAwLjg3ODE0OCwgMS4zMTMxOCwgMi4zMzA0MSwgMi45MTA2MiIsIFwKLSAgICAgICAgICAiMC4xNTQ3NDgsIDAuMTgzNDQ3LCAwLjQ0MzcwNiwgMC44NzgyMTQsIDEuMzEyNiwgMi4zMzAxOCwgMi45MDc2MiIsIFwKLSAgICAgICAgICAiMC4xNTUyMjQsIDAuMTgzNzAxLCAwLjQ0MzM2NSwgMC44NzkyMDgsIDEuMzEzMDMsIDIuMzI3NjIsIDIuOTExMDQiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTE4MTM1LCAwLjEzMTk5NywgMC4yNTY2MDksIDAuNDY0MDQ2LCAwLjY3MTQ2NywgMS4xNTU0OCwgMS40MzE5NCIsIFwKLSAgICAgICAgICAiMC4xMjczNjcsIDAuMTQxMjM0LCAwLjI2NTgyMiwgMC40NzMyODcsIDAuNjgwNzA0LCAxLjE2NDY3LCAxLjQ0MTE3IiwgXAotICAgICAgICAgICIwLjEzNzQ3NCwgMC4xNTEzNDIsIDAuMjc1OTU4LCAwLjQ4MzQwMiwgMC42OTA4MjYsIDEuMTc0NzcsIDEuNDUxMzEiLCBcCi0gICAgICAgICAgIjAuMTQ2ODgyLCAwLjE2MDc2MSwgMC4yODUzODIsIDAuNDkyODIzLCAwLjcwMDI1NywgMS4xODQyLCAxLjQ2MDc0IiwgXAotICAgICAgICAgICIwLjE1NTM3NSwgMC4xNjkyNTMsIDAuMjkzODc1LCAwLjUwMTMzMiwgMC43MDg3NDYsIDEuMTkyNjgsIDEuNDY5MjQiLCBcCi0gICAgICAgICAgIjAuMTY3MjA3LCAwLjE4MTA4MiwgMC4zMDU2OTcsIDAuNTEzMTk3LCAwLjcyMDU5OSwgMS4yMDQ1MywgMS40ODEwNiIsIFwKLSAgICAgICAgICAiMC4xNzYyMTksIDAuMTkwMTA3LCAwLjMxNDc0NCwgMC41MjIyMTQsIDAuNzI5NjUyLCAxLjIxMzYsIDEuNDkwMSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNDc5ODUsIDAuMTc1MzQsIDAuNDI0NDkyLCAwLjg0MTI2NywgMS4yNTY4LCAyLjIzMTQzLCAyLjc4NTU0IiwgXAotICAgICAgICAgICIwLjE0Nzk2NywgMC4xNzU1MTcsIDAuNDI0NTczLCAwLjg0MDcwOCwgMS4yNTU5MSwgMi4yMzEwNSwgMi43ODUzOCIsIFwKLSAgICAgICAgICAiMC4xNDc5OTMsIDAuMTc1MzIzLCAwLjQyMzgxMSwgMC44NDA2ODcsIDEuMjU2ODIsIDIuMjI5ODgsIDIuNzgyMjMiLCBcCi0gICAgICAgICAgIjAuMTQ4MTgyLCAwLjE3NTM0NSwgMC40MjM4MiwgMC44NDEyMDksIDEuMjU1OTksIDIuMjI3MDEsIDIuNzgyMjEiLCBcCi0gICAgICAgICAgIjAuMTQ4MzgyLCAwLjE3NTc4NywgMC40MjQxNDEsIDAuODQxMjYsIDEuMjU4MDcsIDIuMjMwODQsIDIuNzgzNTkiLCBcCi0gICAgICAgICAgIjAuMTQ4Nzk2LCAwLjE3NjA5NywgMC40MjQ1NTYsIDAuODQwODc3LCAxLjI1ODE5LCAyLjIzMDg4LCAyLjc4NTUzIiwgXAotICAgICAgICAgICIwLjE0OTMyMSwgMC4xNzYzNjYsIDAuNDI0MzcxLCAwLjg0MDkyOCwgMS4yNTgwOCwgMi4yMzEwNywgMi43ODY4MSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTE1MDIyLCAwLjEyOTIxNywgMC4yNTY2NzksIDAuNDY4Njc2LCAwLjY4MDU5OCwgMS4xNzQ5MSwgMS40NTczNiIsIFwKLSAgICAgICAgICAiMC4xMjM5NDEsIDAuMTM4MTQzLCAwLjI2NTU5MywgMC40Nzc2MTEsIDAuNjg5NTQzLCAxLjE4MzgzLCAxLjQ2NjI3IiwgXAotICAgICAgICAgICIwLjEzNTc4NiwgMC4xNDk5OSwgMC4yNzc0NTMsIDAuNDg5NDc2LCAwLjcwMTQyLCAxLjE5NTY5LCAxLjQ3ODE0IiwgXAotICAgICAgICAgICIwLjE0NzA0MiwgMC4xNjEyNDMsIDAuMjg4NzMyLCAwLjUwMDczNSwgMC43MTI2NjIsIDEuMjA2OTcsIDEuNDg5NDEiLCBcCi0gICAgICAgICAgIjAuMTU2OTgyLCAwLjE3MTE4NCwgMC4yOTg2NDgsIDAuNTEwNjksIDAuNzIyNTgxLCAxLjIxNjk2LCAxLjQ5OTMyIiwgXAotICAgICAgICAgICIwLjE3MTE0NywgMC4xODUzNTIsIDAuMzEyODUzLCAwLjUyNDg0MSwgMC43MzY3NTEsIDEuMjMxMTUsIDEuNTEzNTEiLCBcCi0gICAgICAgICAgIjAuMTgxODA5LCAwLjE5NjA0NywgMC4zMjM1MDcsIDAuNTM1NTMxLCAwLjc0NzQzOSwgMS4yNDE3NiwgMS41MjQyIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE1NDI5NSwgMC4xODMwNDksIDAuNDQzOTA5LCAwLjg3ODI2OSwgMS4zMTMxMSwgMi4zMjgyOSwgMi45MTEzOCIsIFwKLSAgICAgICAgICAiMC4xNTQyODksIDAuMTgzMTU1LCAwLjQ0Mzc5OSwgMC44NzgzMTgsIDEuMzE0NjEsIDIuMzI5NzksIDIuOTA3OTciLCBcCi0gICAgICAgICAgIjAuMTU0Mjg5LCAwLjE4MzE3NSwgMC40NDM4MzgsIDAuODc4MzIxLCAxLjMxNDY1LCAyLjMyOTc2LCAyLjkwODAxIiwgXAotICAgICAgICAgICIwLjE1NDM4NCwgMC4xODMyMDEsIDAuNDQzODI5LCAwLjg3ODIwOCwgMS4zMTMwMSwgMi4zMjgxLCAyLjkwODA1IiwgXAotICAgICAgICAgICIwLjE1NDY5MiwgMC4xODM0MTUsIDAuNDQzMzc1LCAwLjg3ODEyOCwgMS4zMTMyMywgMi4zMzA0LCAyLjkwOTg2IiwgXAotICAgICAgICAgICIwLjE1NTA1MiwgMC4xODM2OTUsIDAuNDQzOTQ4LCAwLjg3OTA1MiwgMS4zMTI5NCwgMi4zMjY3NywgMi45MDczNyIsIFwKLSAgICAgICAgICAiMC4xNTUyMiwgMC4xODM5LCAwLjQ0Mzk5MSwgMC44NzkwNDgsIDEuMzEyODcsIDIuMzI3NjQsIDIuOTA3NzEiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTE0MzE4LCAwLjEyODE1MSwgMC4yNTI2NDIsIDAuNDYwMTIxLCAwLjY2Nzc3NywgMS4xNTE3LCAxLjQyODQ3IiwgXAotICAgICAgICAgICIwLjEyMzQxMywgMC4xMzcyNTcsIDAuMjYxNzQzLCAwLjQ2OTM5MywgMC42NzY4MjQsIDEuMTYwNzQsIDEuNDM3ODgiLCBcCi0gICAgICAgICAgIjAuMTMzNDQyLCAwLjE0NzI4NCwgMC4yNzE4MTYsIDAuNDc5Mjk2LCAwLjY4Njk1LCAxLjE3MTIyLCAxLjQ0ODMzIiwgXAotICAgICAgICAgICIwLjE0MjYxOSwgMC4xNTY0NywgMC4yODEwMTMsIDAuNDg4NDk2LCAwLjY5NTkwMSwgMS4xODAwNiwgMS40NTY3MSIsIFwKLSAgICAgICAgICAiMC4xNTA4MjQsIDAuMTY0Njc5LCAwLjI4OTE3MywgMC40OTY2ODQsIDAuNzA0MzY0LCAxLjE4ODM0LCAxLjQ2NDk3IiwgXAotICAgICAgICAgICIwLjE2MjIzOCwgMC4xNzYxMDgsIDAuMzAwNjA4LCAwLjUwODIzNCwgMC43MTU1MzEsIDEuMTk5OTYsIDEuNDc2MyIsIFwKLSAgICAgICAgICAiMC4xNzA3NzksIDAuMTg0NjgyLCAwLjMwOTE5MSwgMC41MTY2NzgsIDAuNzI0MTU5LCAxLjIwODI0LCAxLjQ4NDk3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE0NzU4NiwgMC4xNzUxMjYsIDAuNDI0MDc3LCAwLjg0MDkwNCwgMS4yNTUzLCAyLjIyNDQ4LCAyLjc4NTEiLCBcCi0gICAgICAgICAgIjAuMTQ3NTY0LCAwLjE3NTE0NSwgMC40MjM1MTMsIDAuODM5MTU3LCAxLjI1NTc0LCAyLjIyNTA2LCAyLjc4MzQ1IiwgXAotICAgICAgICAgICIwLjE0NzYwOSwgMC4xNzUwMTIsIDAuNDIzMjI2LCAwLjg0MDkyMiwgMS4yNTUxNiwgMi4yMjg0MiwgMi43ODEwNCIsIFwKLSAgICAgICAgICAiMC4xNDc4MTEsIDAuMTc1MTI5LCAwLjQyMzE5OCwgMC44NDA4NjQsIDEuMjU3OTgsIDIuMjMxMTYsIDIuNzgyNTQiLCBcCi0gICAgICAgICAgIjAuMTQ4MDc0LCAwLjE3NTM0LCAwLjQyNDMyMiwgMC44Mzg5NjEsIDEuMjU1MTUsIDIuMjI3NzYsIDIuNzg2NjciLCBcCi0gICAgICAgICAgIjAuMTQ4NjUzLCAwLjE3NTg2NiwgMC40MjQ1NDMsIDAuODM5MzA0LCAxLjI1ODAyLCAyLjIyNzc5LCAyLjc3ODkzIiwgXAotICAgICAgICAgICIwLjE0OTA1NywgMC4xNzYyMTIsIDAuNDI0NTgxLCAwLjg0MTQ2NSwgMS4yNTc5MSwgMi4yMjQ5NywgMi43Nzg0NCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk0Mzc0LCAwLjEwODQ5NSwgMC4yMzU2ODIsIDAuNDQ3NTQ5LCAwLjY1OTQwOSwgMS4xNTQ4MywgMS40MzY2NyIsIFwKLSAgICAgICAgICAiMC4xMDQ1NCwgMC4xMTg2NTUsIDAuMjQ1ODA5LCAwLjQ1NzY3MSwgMC42Njk1NTYsIDEuMTY0NjUsIDEuNDQ3NjkiLCBcCi0gICAgICAgICAgIjAuMTE1OTk0LCAwLjEzMDExNiwgMC4yNTcyOTQsIDAuNDY5MzE0LCAwLjY4MTU4MSwgMS4xNzU4LCAxLjQ1ODE5IiwgXAotICAgICAgICAgICIwLjEyNTUwMSwgMC4xMzk2MTgsIDAuMjY2ODI3LCAwLjQ3ODgzNiwgMC42OTA1NzYsIDEuMTg2MTYsIDEuNDY3ODMiLCBcCi0gICAgICAgICAgIjAuMTMzNjMsIDAuMTQ3NzQzLCAwLjI3NDg5MSwgMC40ODY4NjYsIDAuNjk4OTQ0LCAxLjE5MzQ0LCAxLjQ3NjkzIiwgXAotICAgICAgICAgICIwLjE0NDg2MiwgMC4xNTg5OTEsIDAuMjg2MDg2LCAwLjQ5ODE1LCAwLjcxMDA1OCwgMS4yMDQ3MiwgMS40ODY5OSIsIFwKLSAgICAgICAgICAiMC4xNTM0OSwgMC4xNjc2MTIsIDAuMjk0NzA5LCAwLjUwNjcwNiwgMC43MTg5MSwgMS4yMTI4LCAxLjQ5NTQiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTUyNTgzLCAwLjE4MTUwMSwgMC40NDIwNzQsIDAuODc4MTkzLCAxLjMxMzg0LCAyLjMyNzYsIDIuOTA2MTUiLCBcCi0gICAgICAgICAgIjAuMTUyNjI4LCAwLjE4MTQ5NiwgMC40NDI2MzgsIDAuODc3MjQ4LCAxLjMxMjI3LCAyLjMyNjIzLCAyLjkwOTkzIiwgXAotICAgICAgICAgICIwLjE1MjY2LCAwLjE4MTU3LCAwLjQ0MjU5LCAwLjg3NzU1NSwgMS4zMTM0NiwgMi4zMjY3OSwgMi45MDc1MSIsIFwKLSAgICAgICAgICAiMC4xNTI2NTcsIDAuMTgxNjQ5LCAwLjQ0Mjg5NiwgMC44NzgwMzYsIDEuMzExNTYsIDIuMzI3MTIsIDIuOTA3NzYiLCBcCi0gICAgICAgICAgIjAuMTUzMDUsIDAuMTgxNywgMC40NDI4MTMsIDAuODc2OTEzLCAxLjMxMjQ5LCAyLjMyNzI5LCAyLjkwOTkzIiwgXAotICAgICAgICAgICIwLjE1MzMyNCwgMC4xODIwNDksIDAuNDQyODQ2LCAwLjg3Nzk5LCAxLjMxMjM3LCAyLjMyOTc1LCAyLjkxMDAxIiwgXAotICAgICAgICAgICIwLjE1Mzc4MiwgMC4xODIyNjksIDAuNDQyMzQ2LCAwLjg3ODQyOSwgMS4zMTI0NSwgMi4zMjk3MSwgMi45MTA4NCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTAzMzQsIDAuMTI0MTk5LCAwLjI0ODc5NywgMC40NTYyNDUsIDAuNjYzNjY3LCAxLjE0NzY3LCAxLjQyNDE0IiwgXAotICAgICAgICAgICIwLjExOTE2NSwgMC4xMzMwMzQsIDAuMjU3NjQ2LCAwLjQ2NTA5MiwgMC42NzI1NDIsIDEuMTU2NDYsIDEuNDMzIiwgXAotICAgICAgICAgICIwLjEzMDM0NSwgMC4xNDQyMjIsIDAuMjY4ODcyLCAwLjQ3NjMwMywgMC42ODM3MzEsIDEuMTY3NjgsIDEuNDQ0MjMiLCBcCi0gICAgICAgICAgIjAuMTQwNDE2LCAwLjE1NDI5LCAwLjI3ODkyNywgMC40ODY0MDgsIDAuNjkzODIyLCAxLjE3Nzc3LCAxLjQ1NDMxIiwgXAotICAgICAgICAgICIwLjE0OTQyMywgMC4xNjMzMDcsIDAuMjg3OTM2LCAwLjQ5NTQwMiwgMC43MDI4MjgsIDEuMTg2ODIsIDEuNDYzMzEiLCBcCi0gICAgICAgICAgIjAuMTYxNDYsIDAuMTc1MzM2LCAwLjI5OTk0NywgMC41MDc0NzIsIDAuNzE0ODQ5LCAxLjE5ODgyLCAxLjQ3NTM3IiwgXAotICAgICAgICAgICIwLjE3MDUxNiwgMC4xODQ0MjcsIDAuMzA5MDQsIDAuNTE2NTI3LCAwLjcyMzk2NywgMS4yMDc5MiwgMS40ODQ0NSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNDc5OTMsIDAuMTc1MzA3LCAwLjQyNDQ5NywgMC44NDE0NDQsIDEuMjU1OTgsIDIuMjMxMzcsIDIuNzg3MTYiLCBcCi0gICAgICAgICAgIjAuMTQ3OTg4LCAwLjE3NTE3MywgMC40MjM4NDcsIDAuODQxMDM3LCAxLjI1ODM4LCAyLjIzMTA5LCAyLjc4Nzk1IiwgXAotICAgICAgICAgICIwLjE0ODA0NSwgMC4xNzUyNDIsIDAuNDIzNzQ0LCAwLjg0MDk4OCwgMS4yNTYwMSwgMi4yMjc4NywgMi43ODI0NCIsIFwKLSAgICAgICAgICAiMC4xNDgxOTEsIDAuMTc1NjYyLCAwLjQyNDQ1NSwgMC44NDEyOTYsIDEuMjU3OTEsIDIuMjI3NDEsIDIuNzg3MDMiLCBcCi0gICAgICAgICAgIjAuMTQ4NDM1LCAwLjE3NTYwMywgMC40MjQzOTUsIDAuODQxMjk1LCAxLjI1NTk3LCAyLjIzMTMsIDIuNzgzOTkiLCBcCi0gICAgICAgICAgIjAuMTQ4OTk1LCAwLjE3NjIxMywgMC40MjQ4MjgsIDAuODQxNDA0LCAxLjI1ODExLCAyLjIzMTA2LCAyLjc4MjIiLCBcCi0gICAgICAgICAgIjAuMTQ5MzA5LCAwLjE3NjUxMiwgMC40MjUwNjIsIDAuODQxNDU0LCAxLjI1ODMyLCAyLjIyNzk3LCAyLjc4MjMyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTExOCwgMC4wMDExMTksIDAuMDAxMTIzLCAwLjAwMTEyNSwgMC4wMDExMjYsIDAuMDAxMTI2LCAwLjAwMTEyNiIsIFwKLSAgICAgICAgICAiMC4wMDEwOTQsIDAuMDAxMDk2LCAwLjAwMTEsIDAuMDAxMTAyLCAwLjAwMTEwMiwgMC4wMDExMDIsIDAuMDAxMTA0IiwgXAotICAgICAgICAgICIwLjAwMTA4MiwgMC4wMDEwODMsIDAuMDAxMDg5LCAwLjAwMTA5MSwgMC4wMDEwOTEsIDAuMDAxMDkyLCAwLjAwMTA5MiIsIFwKLSAgICAgICAgICAiMC4wMDEwNzUsIDAuMDAxMDc3LCAwLjAwMTA4NCwgMC4wMDEwODYsIDAuMDAxMDg3LCAwLjAwMTA4OCwgMC4wMDEwODgiLCBcCi0gICAgICAgICAgIjAuMDAxMDczLCAwLjAwMTA3NSwgMC4wMDEwODIsIDAuMDAxMDg1LCAwLjAwMTA4NiwgMC4wMDEwODYsIDAuMDAxMDg3IiwgXAotICAgICAgICAgICIwLjAwMTA3MywgMC4wMDEwNzYsIDAuMDAxMDgzLCAwLjAwMTA4NywgMC4wMDEwODksIDAuMDAxMDg5LCAwLjAwMTA4OSIsIFwKLSAgICAgICAgICAiMC4wMDEwOCwgMC4wMDEwODIsIDAuMDAxMDg5LCAwLjAwMTA5MywgMC4wMDEwOTUsIDAuMDAxMDk2LCAwLjAwMTA5NiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjYzNCwgMC4wMDI2MzUsIDAuMDAyNjQsIDAuMDAyNjQxLCAwLjAwMjY0MiwgMC4wMDI2NDIsIDAuMDAyNjQyIiwgXAotICAgICAgICAgICIwLjAwMjYyLCAwLjAwMjYyMiwgMC4wMDI2MjcsIDAuMDAyNjI4LCAwLjAwMjYyOSwgMC4wMDI2MjksIDAuMDAyNjI5IiwgXAotICAgICAgICAgICIwLjAwMjYxMywgMC4wMDI2MTUsIDAuMDAyNjIsIDAuMDAyNjIyLCAwLjAwMjYyMywgMC4wMDI2MjMsIDAuMDAyNjI0IiwgXAotICAgICAgICAgICIwLjAwMjYwOSwgMC4wMDI2MTEsIDAuMDAyNjE3LCAwLjAwMjYyLCAwLjAwMjYyMSwgMC4wMDI2MjEsIDAuMDAyNjIyIiwgXAotICAgICAgICAgICIwLjAwMjYwNiwgMC4wMDI2MDgsIDAuMDAyNjE1LCAwLjAwMjYxOCwgMC4wMDI2MTksIDAuMDAyNjE5LCAwLjAwMjYyIiwgXAotICAgICAgICAgICIwLjAwMjYwNCwgMC4wMDI2MDYsIDAuMDAyNjE0LCAwLjAwMjYxNywgMC4wMDI2MTgsIDAuMDAyNjE5LCAwLjAwMjYyIiwgXAotICAgICAgICAgICIwLjAwMjYwNCwgMC4wMDI2MDcsIDAuMDAyNjE1LCAwLjAwMjYxOSwgMC4wMDI2MiwgMC4wMDI2MjIsIDAuMDAyNjIyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTExNywgMC4wMDExMTgsIDAuMDAxMTIyLCAwLjAwMTEyNCwgMC4wMDExMjUsIDAuMDAxMTI1LCAwLjAwMTEyNiIsIFwKLSAgICAgICAgICAiMC4wMDEwOSwgMC4wMDEwOTEsIDAuMDAxMDk2LCAwLjAwMTA5OCwgMC4wMDEwOTgsIDAuMDAxMDk5LCAwLjAwMTA5OSIsIFwKLSAgICAgICAgICAiMC4wMDEwOCwgMC4wMDEwODIsIDAuMDAxMDg4LCAwLjAwMTA5MSwgMC4wMDEwOTIsIDAuMDAxMDkzLCAwLjAwMTA5MyIsIFwKLSAgICAgICAgICAiMC4wMDEwODQsIDAuMDAxMDg2LCAwLjAwMTA5MywgMC4wMDEwOTYsIDAuMDAxMDk4LCAwLjAwMTA5OSwgMC4wMDEwOTkiLCBcCi0gICAgICAgICAgIjAuMDAxMDkyLCAwLjAwMTA5NCwgMC4wMDExMDIsIDAuMDAxMTA1LCAwLjAwMTEwNiwgMC4wMDExMDcsIDAuMDAxMTA4IiwgXAotICAgICAgICAgICIwLjAwMTExMiwgMC4wMDExMTUsIDAuMDAxMTIzLCAwLjAwMTEyNywgMC4wMDExMywgMC4wMDExMywgMC4wMDExMzEiLCBcCi0gICAgICAgICAgIjAuMDAxMTM1LCAwLjAwMTEzNywgMC4wMDExNDcsIDAuMDAxMTUxLCAwLjAwMTE1MywgMC4wMDExNTUsIDAuMDAxMTU1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyMzk3LCAwLjAwMjM5OCwgMC4wMDI0MDIsIDAuMDAyNDAzLCAwLjAwMjQwNCwgMC4wMDI0MDQsIDAuMDAyNDA0IiwgXAotICAgICAgICAgICIwLjAwMjM3NSwgMC4wMDIzNzYsIDAuMDAyMzgsIDAuMDAyMzgxLCAwLjAwMjM4MiwgMC4wMDIzODIsIDAuMDAyMzgyIiwgXAotICAgICAgICAgICIwLjAwMjM2MywgMC4wMDIzNjQsIDAuMDAyMzY5LCAwLjAwMjM3MSwgMC4wMDIzNzIsIDAuMDAyMzcyLCAwLjAwMjM3MiIsIFwKLSAgICAgICAgICAiMC4wMDIzNTcsIDAuMDAyMzU5LCAwLjAwMjM2NCwgMC4wMDIzNjYsIDAuMDAyMzY3LCAwLjAwMjM2OCwgMC4wMDIzNjgiLCBcCi0gICAgICAgICAgIjAuMDAyMzUzLCAwLjAwMjM1NSwgMC4wMDIzNjEsIDAuMDAyMzY0LCAwLjAwMjM2NCwgMC4wMDIzNjUsIDAuMDAyMzY1IiwgXAotICAgICAgICAgICIwLjAwMjM1MSwgMC4wMDIzNTMsIDAuMDAyMzYsIDAuMDAyMzYzLCAwLjAwMjM2NCwgMC4wMDIzNjUsIDAuMDAyMzY1IiwgXAotICAgICAgICAgICIwLjAwMjM1MSwgMC4wMDIzNTQsIDAuMDAyMzYzLCAwLjAwMjM2NSwgMC4wMDIzNjcsIDAuMDAyMzY4LCAwLjAwMjM2OCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDA3ODgsIDAuMDAwNzg4LCAwLjAwMDc4OSwgMC4wMDA3ODksIDAuMDAwNzg5LCAwLjAwMDc4OSwgMC4wMDA3ODkiLCBcCi0gICAgICAgICAgIjAuMDAwNzYzLCAwLjAwMDc2NCwgMC4wMDA3NjUsIDAuMDAwNzY2LCAwLjAwMDc2NiwgMC4wMDA3NjYsIDAuMDAwNzY2IiwgXAotICAgICAgICAgICIwLjAwMDc1NywgMC4wMDA3NTksIDAuMDAwNzYxLCAwLjAwMDc2MiwgMC4wMDA3NjMsIDAuMDAwNzYzLCAwLjAwMDc2MyIsIFwKLSAgICAgICAgICAiMC4wMDA3NjUsIDAuMDAwNzY2LCAwLjAwMDc3LCAwLjAwMDc3MSwgMC4wMDA3NzEsIDAuMDAwNzcyLCAwLjAwMDc3MiIsIFwKLSAgICAgICAgICAiMC4wMDA3NzksIDAuMDAwNzgsIDAuMDAwNzg0LCAwLjAwMDc4NSwgMC4wMDA3ODYsIDAuMDAwNzg2LCAwLjAwMDc4NiIsIFwKLSAgICAgICAgICAiMC4wMDA3ODgsIDAuMDAwNzksIDAuMDAwNzk0LCAwLjAwMDc5NiwgMC4wMDA3OTcsIDAuMDAwNzk3LCAwLjAwMDc5NyIsIFwKLSAgICAgICAgICAiMC4wMDA4MTEsIDAuMDAwODEzLCAwLjAwMDgxNCwgMC4wMDA4MiwgMC4wMDA4MiwgMC4wMDA4MiwgMC4wMDA4MjEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDIxMiwgMC4wMDIxMjIsIDAuMDAyMTI2LCAwLjAwMjEyOCwgMC4wMDIxMjksIDAuMDAyMTI5LCAwLjAwMjEyOSIsIFwKLSAgICAgICAgICAiMC4wMDIwOTgsIDAuMDAyMSwgMC4wMDIxMDUsIDAuMDAyMTA3LCAwLjAwMjEwOCwgMC4wMDIxMDgsIDAuMDAyMTA5IiwgXAotICAgICAgICAgICIwLjAwMjA5MywgMC4wMDIwOTUsIDAuMDAyMTAyLCAwLjAwMjEwNSwgMC4wMDIxMDYsIDAuMDAyMTA3LCAwLjAwMjEwOCIsIFwKLSAgICAgICAgICAiMC4wMDIxLCAwLjAwMjEwMiwgMC4wMDIxMTEsIDAuMDAyMTE1LCAwLjAwMjExNiwgMC4wMDIxMTcsIDAuMDAyMTE3IiwgXAotICAgICAgICAgICIwLjAwMjEsIDAuMDAyMTAzLCAwLjAwMjExMiwgMC4wMDIxMTYsIDAuMDAyMTE4LCAwLjAwMjExOSwgMC4wMDIxMTkiLCBcCi0gICAgICAgICAgIjAuMDAyMTE3LCAwLjAwMjEyLCAwLjAwMjEzLCAwLjAwMjEzNSwgMC4wMDIxMzYsIDAuMDAyMTM4LCAwLjAwMjEzOSIsIFwKLSAgICAgICAgICAiMC4wMDIxMzMsIDAuMDAyMTM3LCAwLjAwMjE0OCwgMC4wMDIxNTMsIDAuMDAyMTU1LCAwLjAwMjE1NywgMC4wMDIxNTYiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IEFPMjJYMSAqCi0gKiAtLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKEFPMjJYMSkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjExNDg3ODsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQTApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYxNDAwNTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MTIwODM7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjE0MDA1OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDIyNiwgMC4wMDAyMjYsIDAuMDAwMjI2LCAwLjAwMDIyNiwgMC4wMDAyMjYsIDAuMDAwMjI2LCAwLjAwMDIyNiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDIzMywgMC4wMDAyMjgsIDAuMDAwMjI3LCAwLjAwMDIyNywgMC4wMDAyMjcsIDAuMDAwMjI3LCAwLjAwMDIyNyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQTEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYxNTM0MzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MTIzMDc7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjE1MzQzOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDEyNywgMC4wMDAxMjYsIDAuMDAwMTI2LCAwLjAwMDEyNiwgMC4wMDAxMjYsIDAuMDAwMTI2LCAwLjAwMDEyNiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDI1NywgMC4wMDAyNTcsIDAuMDAwMjU3LCAwLjAwMDI1NywgMC4wMDAyNTcsIDAuMDAwMjU3LCAwLjAwMDI1NyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQjApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYxODE0NjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MTgxNDY7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjE2OTI2OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDIyNiwgMC4wMDAyMjYsIDAuMDAwMjI2LCAwLjAwMDIyNiwgMC4wMDAyMjYsIDAuMDAwMjI2LCAwLjAwMDIyNiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDIzLCAwLjAwMDIyNywgMC4wMDAyMjcsIDAuMDAwMjI3LCAwLjAwMDIyNywgMC4wMDAyMjcsIDAuMDAwMjI3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCMSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjM0Mzk2OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYzNDIwOTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2MzQzOTY7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMDY5LCAwLjAwMDA2OSwgMC4wMDAwNjksIDAuMDAwMDY5LCAwLjAwMDA2OSwgMC4wMDAwNjksIDAuMDAwMDY5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjU3LCAwLjAwMDI1NywgMC4wMDAyNTcsIDAuMDAwMjU3LCAwLjAwMDI1NywgMC4wMDAyNTcsIDAuMDAwMjU3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMjYxMjQ5OwotICAgIGZ1bmN0aW9uIDogIigoQTAgQTEpKyhCMCBCMSkpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTA1NDQ5LCAwLjEzMDU1NSwgMC4yNzAzMzksIDAuMzkzMzEzLCAwLjU1NzAyNywgMC44ODQzNzksIDEuMDg4OTIiLCBcCi0gICAgICAgICAgIjAuMTE0MTY4LCAwLjEzOTI4LCAwLjI3OTA2MSwgMC40MDIwNDIsIDAuNTY1ODA0LCAwLjg5MzIwMiwgMS4wOTc2MiIsIFwKLSAgICAgICAgICAiMC4xMjQ5OTgsIDAuMTUwMTIsIDAuMjg5ODk5LCAwLjQxMjg3NywgMC41NzY1ODYsIDAuOTAzOTY5LCAxLjEwODQ3IiwgXAotICAgICAgICAgICIwLjEzNTY1OCwgMC4xNjA3NzksIDAuMzAwNjA2LCAwLjQyMzU3MywgMC41ODcyNTYsIDAuOTE0NjA4LCAxLjExOTEzIiwgXAotICAgICAgICAgICIwLjE0NTc2MiwgMC4xNzA4ODEsIDAuMzEwNjcyLCAwLjQzMzY2LCAwLjU5NzM2MSwgMC45MjQ2OTcsIDEuMTI5MjYiLCBcCi0gICAgICAgICAgIjAuMTYxMDA1LCAwLjE4NjE1OCwgMC4zMjU5NywgMC40NDg4OTIsIDAuNjEyNjY3LCAwLjk0MDA1MywgMS4xNDQ1NCIsIFwKLSAgICAgICAgICAiMC4xNzMyMjQsIDAuMTk4MzYsIDAuMzM4MTU4LCAwLjQ2MTEwNCwgMC42MjQ4NzksIDAuOTUyMTg2LCAxLjE1NjczIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5ODA1LCAwLjE0NjY3MywgMC40MzAzNjUsIDAuNjgyOTc5LCAxLjAxODgsIDEuNjk0MTgsIDIuMTE1NDgiLCBcCi0gICAgICAgICAgIjAuMDk4MDYxLCAwLjE0NjY4OCwgMC40MzAzNjcsIDAuNjgyOTc1LCAxLjAyLCAxLjY5NDQyLCAyLjExNTciLCBcCi0gICAgICAgICAgIjAuMDk4MDQ4LCAwLjE0NjY4MywgMC40MzAzNjIsIDAuNjgyODYsIDEuMDE5NSwgMS42OTQxNSwgMi4xMTMzNiIsIFwKLSAgICAgICAgICAiMC4wOTgwNjYsIDAuMTQ2NjkyLCAwLjQzMDQwOCwgMC42ODMwMTQsIDEuMDE5NSwgMS42OTIzNiwgMi4xMTU2NiIsIFwKLSAgICAgICAgICAiMC4wOTgyMSwgMC4xNDY3OTYsIDAuNDMwMzMxLCAwLjY4Mjg2NSwgMS4wMTk0MywgMS42OTIyNywgMi4xMTUyNSIsIFwKLSAgICAgICAgICAiMC4wOTg4NDIsIDAuMTQ3MTY4LCAwLjQzMDQ0NywgMC42ODI3MjYsIDEuMDE5NzYsIDEuNjkxOTMsIDIuMTEzMjgiLCBcCi0gICAgICAgICAgIjAuMDk5NTU5LCAwLjE0NzcyNCwgMC40MzAyMzIsIDAuNjgyNzQ5LCAxLjAxOTc0LCAxLjY5MzkyLCAyLjExMzE5Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwODY1NSwgMC4xMzM5NDgsIDAuMjc0NjE0LCAwLjM5ODQzMSwgMC41NjMzOTgsIDAuODkzMjQ0LCAxLjA5OTQiLCBcCi0gICAgICAgICAgIjAuMTE4MjQ0LCAwLjE0MzUzNCwgMC4yODQyMDEsIDAuNDA4MDM4LCAwLjU3MzAyNSwgMC45MDI5MiwgMS4xMDg5NyIsIFwKLSAgICAgICAgICAiMC4xMjg5NTUsIDAuMTU0MjU3LCAwLjI5NDkzMywgMC40MTg3NjIsIDAuNTgzNzI4LCAwLjkxMzU2NSwgMS4xMTk3MiIsIFwKLSAgICAgICAgICAiMC4xMzg4ODYsIDAuMTY0MTg0LCAwLjMwNDg3OCwgMC40Mjg3MDEsIDAuNTkzNjU3LCAwLjkyMzUyNywgMS4xMjk2NiIsIFwKLSAgICAgICAgICAiMC4xNDgzNzYsIDAuMTczNjg3LCAwLjMxNDM2NCwgMC40MzgyMTUsIDAuNjAzMTQ2LCAwLjkzMzA0LCAxLjEzOTI5IiwgXAotICAgICAgICAgICIwLjE2MjE1OSwgMC4xODc1NSwgMC4zMjgyNDMsIDAuNDUyMDY4LCAwLjYxNzAyOSwgMC45NDY4OCwgMS4xNTMwMiIsIFwKLSAgICAgICAgICAiMC4xNzMyMjgsIDAuMTk4NjEzLCAwLjMzOTM1OCwgMC40NjMxNTQsIDAuNjI4MTI1LCAwLjk1Nzk5MiwgMS4xNjQxMiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTYwNjIsIDAuMTQ0MjI1LCAwLjQyMzM5NCwgMC42NzI1MjMsIDEuMDA1NiwgMS42Njc2OCwgMi4wODMxNiIsIFwKLSAgICAgICAgICAiMC4wOTYwNTEsIDAuMTQ0MjM3LCAwLjQyMzc2NSwgMC42NzI4NzMsIDEuMDA1MjUsIDEuNjcwNjcsIDIuMDg2MjYiLCBcCi0gICAgICAgICAgIjAuMDk2MDUyLCAwLjE0NDIyNywgMC40MjM3MjksIDAuNjcyODk0LCAxLjAwNTIxLCAxLjY2NzY3LCAyLjA4NjQzIiwgXAotICAgICAgICAgICIwLjA5NjA5NCwgMC4xNDQyMzksIDAuNDIzNDA1LCAwLjY3Mjk1MiwgMS4wMDU1MiwgMS42NjkzOCwgMi4wODU4NiIsIFwKLSAgICAgICAgICAiMC4wOTYyNzIsIDAuMTQ0Mzk1LCAwLjQyNDA2OCwgMC42NzI4ODksIDEuMDA1NDksIDEuNjcwODcsIDIuMDg2MiIsIFwKLSAgICAgICAgICAiMC4wOTcwMDQsIDAuMTQ0ODM4LCAwLjQyNDIxNiwgMC42NzIyODYsIDEuMDA1NTgsIDEuNjY5NjUsIDIuMDg1MjMiLCBcCi0gICAgICAgICAgIjAuMDk3NzMzLCAwLjE0NTQ1OSwgMC40MjM5MDQsIDAuNjczMDE3LCAxLjAwNSwgMS42NzAzNywgMi4wODYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTEiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwMzE2NywgMC4xMjgyNzQsIDAuMjY4MDU2LCAwLjM5MTAyNCwgMC41NTQ3NTgsIDAuODgyMDc1LCAxLjA4NjY0IiwgXAotICAgICAgICAgICIwLjExMjI2MSwgMC4xMzczNzQsIDAuMjc3MTU3LCAwLjQwMDEzOSwgMC41NjM5MjQsIDAuODkxMzQ3LCAxLjA5NTcyIiwgXAotICAgICAgICAgICIwLjEyMzg4NywgMC4xNDkwMTIsIDAuMjg4ODAyLCAwLjQxMTc5NSwgMC41NzU0ODksIDAuOTAyODI4LCAxLjEwNzQ4IiwgXAotICAgICAgICAgICIwLjEzNTc1LCAwLjE2MDg3MiwgMC4zMDA2NywgMC40MjM2NzEsIDAuNTg3MzU5LCAwLjkxNDcwOSwgMS4xMTkyMyIsIFwKLSAgICAgICAgICAiMC4xNDcyMzUsIDAuMTcyMzUyLCAwLjMxMjE0NywgMC40MzUxNDYsIDAuNTk4ODM4LCAwLjkyNjE4OCwgMS4xMzA3NSIsIFwKLSAgICAgICAgICAiMC4xNjQxMzIsIDAuMTg5MjU2LCAwLjMyOTAzNiwgMC40NTE5NzgsIDAuNjE1NzM0LCAwLjk0MzEyLCAxLjE0NzYyIiwgXAotICAgICAgICAgICIwLjE3NzQ0MiwgMC4yMDI1OTgsIDAuMzQyMzg3LCAwLjQ2NTMxOCwgMC42MjkwODEsIDAuOTU2NDM0LCAxLjE2MDk1Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5ODA1OSwgMC4xNDY2OTEsIDAuNDMwMzYxLCAwLjY4Mjc2MSwgMS4wMTk5MiwgMS42OTI0LCAyLjExNTc1IiwgXAotICAgICAgICAgICIwLjA5ODA1OCwgMC4xNDY2NTUsIDAuNDMwMzY0LCAwLjY4Mjk3LCAxLjAyMDA3LCAxLjY5MjE3LCAyLjExNTQ5IiwgXAotICAgICAgICAgICIwLjA5ODA0OSwgMC4xNDY2OTIsIDAuNDMwMzgxLCAwLjY4Mjk5NCwgMS4wMTg3MywgMS42OTQwNiwgMi4xMTU3NyIsIFwKLSAgICAgICAgICAiMC4wOTgwNjQsIDAuMTQ2NjksIDAuNDMwMzM4LCAwLjY4MzAwNCwgMS4wMTk0OSwgMS42OTIzOSwgMi4xMTMyNSIsIFwKLSAgICAgICAgICAiMC4wOTgyOTQsIDAuMTQ2ODExLCAwLjQzMDM0MywgMC42ODI4ODMsIDEuMDE4NjgsIDEuNjkyMzEsIDIuMTE1MjgiLCBcCi0gICAgICAgICAgIjAuMDk5MTczLCAwLjE0NzMzOSwgMC40MzA0NCwgMC42ODI3MzgsIDEuMDE4NzgsIDEuNjkzOTgsIDIuMTEzMTkiLCBcCi0gICAgICAgICAgIjAuMDk5OTkzLCAwLjE0NzksIDAuNDMwMTc2LCAwLjY4Mjc2OCwgMS4wMTk3MywgMS42OTQwNSwgMi4xMTMyNiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDUyNjQsIDAuMTMwNDk3LCAwLjI3MTAzLCAwLjM5NDgyNSwgMC41NTk3MTIsIDAuODg5NTI5LCAxLjA5NTcyIiwgXAotICAgICAgICAgICIwLjExNDc3MSwgMC4xNDAwMDQsIDAuMjgwNTM0LCAwLjQwNDMyMiwgMC41NjkzMDIsIDAuODk5MDg3LCAxLjEwNTE2IiwgXAotICAgICAgICAgICIwLjEyNTM0MywgMC4xNTA1ODgsIDAuMjkxMTIsIDAuNDE0OTI3LCAwLjU3OTgxMywgMC45MDk2MzEsIDEuMTE1NzciLCBcCi0gICAgICAgICAgIjAuMTM1MTczLCAwLjE2MDQzMSwgMC4zMDEwMDYsIDAuNDI0Nzc4LCAwLjU4OTY2NCwgMC45MTk0OTEsIDEuMTI1NjEiLCBcCi0gICAgICAgICAgIjAuMTQ0NTQ4LCAwLjE2OTc4NCwgMC4zMTAzMzcsIDAuNDM0MTE3LCAwLjU5OTA0MiwgMC45Mjg4NTcsIDEuMTM0OTkiLCBcCi0gICAgICAgICAgIjAuMTU4MTUzLCAwLjE4MzQ2MSwgMC4zMjQwMjcsIDAuNDQ3ODI5LCAwLjYxMjc4NCwgMC45NDI1NDEsIDEuMTQ4NjciLCBcCi0gICAgICAgICAgIjAuMTY4NjkzLCAwLjE5NDA3OSwgMC4zMzQ2NDEsIDAuNDU4NDMzLCAwLjYyMzM1NCwgMC45NTMxNjcsIDEuMTU5MjgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk1Njg0LCAwLjE0Mzg4NCwgMC40MjMzMTEsIDAuNjcyNzE1LCAxLjAwNTM1LCAxLjY2NzQ1LCAyLjA4NjU3IiwgXAotICAgICAgICAgICIwLjA5NTY4MSwgMC4xNDM4OTYsIDAuNDIzMTA4LCAwLjY3MjY3OCwgMS4wMDUxMSwgMS42NjY4OCwgMi4wODI2IiwgXAotICAgICAgICAgICIwLjA5NTY4MSwgMC4xNDM4MzIsIDAuNDIzNDE4LCAwLjY3Mjc2NywgMS4wMDUzMywgMS42Njc1NywgMi4wODYzNSIsIFwKLSAgICAgICAgICAiMC4wOTU3MTYsIDAuMTQzODU4LCAwLjQyMzkzMiwgMC42NzI2MjQsIDEuMDA1MjUsIDEuNjY3NTYsIDIuMDgzNzUiLCBcCi0gICAgICAgICAgIjAuMDk1OTk1LCAwLjE0NDAzLCAwLjQyMzM4LCAwLjY3MjY3NSwgMS4wMDUzNCwgMS42Njc1OCwgMi4wODI5OCIsIFwKLSAgICAgICAgICAiMC4wOTY4MTMsIDAuMTQ0NjEyLCAwLjQyMzk3NCwgMC42NzI3NCwgMS4wMDUwNywgMS42Njk3OSwgMi4wODQ3MSIsIFwKLSAgICAgICAgICAiMC4wOTc1ODksIDAuMTQ1Mjg0LCAwLjQyNDA0OSwgMC42NzI4NiwgMS4wMDUzOCwgMS42Njc1OCwgMi4wODM3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTE3MTYsIDAuMTE2NDgyLCAwLjI1NTU3NSwgMC4zNzgyOTksIDAuNTQxOTQyLCAwLjg2OTIzMiwgMS4wNzM3NyIsIFwKLSAgICAgICAgICAiMC4xMDA2MiwgMC4xMjUzOTEsIDAuMjY0NTE2LCAwLjM4NzMyNSwgMC41NTA4MzcsIDAuODc4MTQ2LCAxLjA4Mjc2IiwgXAotICAgICAgICAgICIwLjExMTI0MSwgMC4xMzYwMTcsIDAuMjc1MTE5LCAwLjM5NzgzNiwgMC41NjE0OTksIDAuODg4OTMyLCAxLjA5Mzg0IiwgXAotICAgICAgICAgICIwLjEyMTM1OCwgMC4xNDYxNDcsIDAuMjg1MjU3LCAwLjQwNzk4MSwgMC41NzE2NzQsIDAuODk4OTI4LCAxLjEwMzQ3IiwgXAotICAgICAgICAgICIwLjEzMDc3OSwgMC4xNTU1ODcsIDAuMjk0NzUsIDAuNDE3NDM5LCAwLjU4MTA2NCwgMC45MDg0MTQsIDEuMTEzMDUiLCBcCi0gICAgICAgICAgIjAuMTQ0Mzc3LCAwLjE2OTE5OSwgMC4zMDgzNDksIDAuNDMxMDk3LCAwLjU5NTA1NCwgMC45MjIwNDIsIDEuMTI2NDkiLCBcCi0gICAgICAgICAgIjAuMTU0ODMzLCAwLjE3OTgsIDAuMzE4OTA1LCAwLjQ0MTYxNywgMC42MDUzNTgsIDAuOTMyNDU5LCAxLjEzNzA1Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5NjAwNCwgMC4xNDQ4NzUsIDAuNDI5MDQsIDAuNjgxNTA3LCAxLjAxNzc4LCAxLjY5MDY3LCAyLjExNDM2IiwgXAotICAgICAgICAgICIwLjA5NjA1NiwgMC4xNDQ4NzQsIDAuNDI5MTc4LCAwLjY4MDU5OSwgMS4wMTkyMiwgMS42OTI3NiwgMi4xMTE1NiIsIFwKLSAgICAgICAgICAiMC4wOTYwNzUsIDAuMTQ0OTA0LCAwLjQyOTAwNywgMC42ODE4MzYsIDEuMDE4NjUsIDEuNjkyNTQsIDIuMTEyMjIiLCBcCi0gICAgICAgICAgIjAuMDk2MTksIDAuMTQ0OTgxLCAwLjQyODg0NCwgMC42ODEzOTYsIDEuMDE3MjEsIDEuNjkzMDUsIDIuMTEyODMiLCBcCi0gICAgICAgICAgIjAuMDk2Njk5LCAwLjE0NTI3MSwgMC40MjkyMzUsIDAuNjgxNzUyLCAxLjAxOTAxLCAxLjY5MDQ5LCAyLjExMjgyIiwgXAotICAgICAgICAgICIwLjA5Nzc3OCwgMC4xNDYwMTksIDAuNDI5MjM5LCAwLjY4MTczMywgMS4wMTczNiwgMS42OTI5NSwgMi4xMTQ4IiwgXAotICAgICAgICAgICIwLjA5ODc1MywgMC4xNDY3MzksIDAuNDI5MzkyLCAwLjY4MDkzMSwgMS4wMTcyMiwgMS42OTI3MiwgMi4xMTEzNiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTcyNDcsIDAuMTIyNTIsIDAuMjYzMTgxLCAwLjM4NzAyMywgMC41NTIsIDAuODgxODY2LCAxLjA4Nzk2IiwgXAotICAgICAgICAgICIwLjEwNjI0NywgMC4xMzE1NDksIDAuMjcyMjM1LCAwLjM5NjA4NSwgMC41NjEwMDgsIDAuODkwODc2LCAxLjA5NzAxIiwgXAotICAgICAgICAgICIwLjExNzUyNiwgMC4xNDI4MjcsIDAuMjgzNTIyLCAwLjQwNzMyNiwgMC41NzIzMTEsIDAuOTAyMTcsIDEuMTA4MzEiLCBcCi0gICAgICAgICAgIjAuMTI4NzIzLCAwLjE1NDAyMiwgMC4yOTQ3MTYsIDAuNDE4NTU4LCAwLjU4MzUwNSwgMC45MTM0MDQsIDEuMTE5NTIiLCBcCi0gICAgICAgICAgIjAuMTM5MTc4LCAwLjE2NDUwNiwgMC4zMDUyMDcsIDAuNDI5MDY0LCAwLjU5Mzk5NywgMC45MjM4NjMsIDEuMTMwMDgiLCBcCi0gICAgICAgICAgIjAuMTUzNzMyLCAwLjE3OTE1OCwgMC4zMTk4OTIsIDAuNDQzNzMsIDAuNjA4Njg0LCAwLjkzODUyNSwgMS4xNDQ2NyIsIFwKLSAgICAgICAgICAiMC4xNjQ3MjksIDAuMTkwMjYzLCAwLjMzMDk5MSwgMC40NTQ4MTksIDAuNjE5ODIzLCAwLjk0OTczLCAxLjE1NTgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk2MDI5LCAwLjE0NDIzOSwgMC40MjM4ODYsIDAuNjcyODUxLCAxLjAwNTM0LCAxLjY3MDc5LCAyLjA4NjE1IiwgXAotICAgICAgICAgICIwLjA5NjA0OSwgMC4xNDQxNzEsIDAuNDI0MDk1LCAwLjY3Mjg3MywgMS4wMDU1MywgMS42NjgwNiwgMi4wODY0IiwgXAotICAgICAgICAgICIwLjA5NjA1MSwgMC4xNDQxODQsIDAuNDIzNDAyLCAwLjY3MjYyMSwgMS4wMDU1OCwgMS42Njk0LCAyLjA4NjA0IiwgXAotICAgICAgICAgICIwLjA5NjI2NSwgMC4xNDQzMTEsIDAuNDIzOTA0LCAwLjY3Mjg5LCAxLjAwNTUyLCAxLjY3MDkzLCAyLjA4Mjk5IiwgXAotICAgICAgICAgICIwLjA5NjM5NywgMC4xNDQzNjMsIDAuNDIzODgzLCAwLjY3Mjc5MiwgMS4wMDU0OSwgMS42Njk4MSwgMi4wODY4MiIsIFwKLSAgICAgICAgICAiMC4wOTcxNzgsIDAuMTQ0OTk4LCAwLjQyNDI3NywgMC42NzE3OTYsIDEuMDA1MzcsIDEuNjcwNTUsIDIuMDg1NjciLCBcCi0gICAgICAgICAgIjAuMDk3ODExLCAwLjE0NTU1NywgMC40MjQ0MywgMC42NzE4MzksIDEuMDA1MjQsIDEuNjcwNjMsIDIuMDg2NDgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjEiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4ODcxNywgMC4xMTM0OTYsIDAuMjUyNjA3LCAwLjM3NTMyLCAwLjUzOTAwMSwgMC44NjY0NTEsIDEuMDcwNjgiLCBcCi0gICAgICAgICAgIjAuMDk3Nzc1LCAwLjEyMjU1OSwgMC4yNjE2NzcsIDAuMzg0NDA0LCAwLjU0ODE2NCwgMC44NzUzNDQsIDEuMDc5OTEiLCBcCi0gICAgICAgICAgIjAuMTA5NTEsIDAuMTM0MywgMC4yNzM0MzYsIDAuMzk2MTc5LCAwLjU1OTgxOSwgMC44ODcwNzYsIDEuMDkxNjkiLCBcCi0gICAgICAgICAgIjAuMTIwODA2LCAwLjE0NTYwNywgMC4yODQ3NTcsIDAuNDA3NTE3LCAwLjU3MTEyNCwgMC44OTgzOTgsIDEuMTAzMDEiLCBcCi0gICAgICAgICAgIjAuMTMxMDc5LCAwLjE1NTg4NSwgMC4yOTUwNDQsIDAuNDE3ODEyLCAwLjU4MTY3MywgMC45MDg3MTcsIDEuMTEzMjQiLCBcCi0gICAgICAgICAgIjAuMTQ1ODc5LCAwLjE3MDc0NCwgMC4zMDk4ODIsIDAuNDMyNTgsIDAuNTk2MjczLCAwLjkyMzU1MiwgMS4xMjgxNyIsIFwKLSAgICAgICAgICAiMC4xNTY5ODUsIDAuMTgxOTM0LCAwLjMyMTA4NywgMC40NDM3OTIsIDAuNjA3NjY1LCAwLjkzNTA4OCwgMS4xMzkyOSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTYwNTgsIDAuMTQ0ODkxLCAwLjQyODg5LCAwLjY4MTg0OCwgMS4wMTg2NywgMS42OTI4OSwgMi4xMTQ0OCIsIFwKLSAgICAgICAgICAiMC4wOTYwMzcsIDAuMTQ0ODY1LCAwLjQyODQ3MiwgMC42ODE0NDcsIDEuMDE3MjEsIDEuNjkwMTIsIDIuMTE0ODQiLCBcCi0gICAgICAgICAgIjAuMDk2MDg3LCAwLjE0NDkwNCwgMC40MjkxMDgsIDAuNjgxOTA4LCAxLjAxNzc5LCAxLjY5MzEzLCAyLjExMDUzIiwgXAotICAgICAgICAgICIwLjA5NjM0OCwgMC4xNDUwMzgsIDAuNDI5MDc3LCAwLjY4MTczMywgMS4wMTcyLCAxLjY5MDEyLCAyLjExMyIsIFwKLSAgICAgICAgICAiMC4wOTY5NywgMC4xNDU0MTYsIDAuNDI5MTQxLCAwLjY4MDg1NywgMS4wMTcyMSwgMS42OTMwOCwgMi4xMTA2MyIsIFwKLSAgICAgICAgICAiMC4wOTgzMTUsIDAuMTQ2MzQ1LCAwLjQyOTMxOCwgMC42ODE3NDgsIDEuMDE4NTQsIDEuNjkwMDEsIDIuMTEyODYiLCBcCi0gICAgICAgICAgIjAuMDk5NDY5LCAwLjE0NzExNCwgMC40MjkyODcsIDAuNjgxNzk1LCAxLjAxNzY1LCAxLjY5MDU0LCAyLjExMTQ3Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5Mjk5MSwgMC4xMTgyMDEsIDAuMjU4Njg0LCAwLjM4MjQ1NywgMC41NDczMjksIDAuODc3MTMyLCAxLjA4MzMzIiwgXAotICAgICAgICAgICIwLjEwMTkwNSwgMC4xMjcxMjksIDAuMjY3NjE4LCAwLjM5MTM5LCAwLjU1NjI2MSwgMC44ODYwNjgsIDEuMDkyMTkiLCBcCi0gICAgICAgICAgIjAuMTEzMTU0LCAwLjEzODM3NSwgMC4yNzg4OCwgMC40MDI2NSwgMC41Njc1NzksIDAuODk3MzcsIDEuMTAzNDgiLCBcCi0gICAgICAgICAgIjAuMTI0MTg0LCAwLjE0OTQwNSwgMC4yODk5NCwgMC40MTM2NzksIDAuNTc4NTk0LCAwLjkwODQxMSwgMS4xMTQ1MiIsIFwKLSAgICAgICAgICAiMC4xMzM5NTgsIDAuMTU5MTksIDAuMjk5NzA2LCAwLjQyMzQ3MiwgMC41ODgzODksIDAuOTE4MjEsIDEuMTI0MzMiLCBcCi0gICAgICAgICAgIjAuMTQ4MDA1LCAwLjE3MzQxMiwgMC4zMTM5MTksIDAuNDM3NzI4LCAwLjYwMjU5OCwgMC45MzI0MDUsIDEuMTM4NTMiLCBcCi0gICAgICAgICAgIjAuMTU4MzQ3LCAwLjE4Mzk0MywgMC4zMjQzOCwgMC40NDgxOTQsIDAuNjEzMDQ5LCAwLjk0Mjg5NCwgMS4xNDg5OSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTU1ODIsIDAuMTQzNzczLCAwLjQyMzU2LCAwLjY3MjU4MSwgMS4wMDUyMywgMS42Njc0NiwgMi4wODY2NSIsIFwKLSAgICAgICAgICAiMC4wOTU1NzIsIDAuMTQzNjQsIDAuNDIyODQ1LCAwLjY3MjYyMywgMS4wMDUyMywgMS42NzAxOCwgMi4wODYxOSIsIFwKLSAgICAgICAgICAiMC4wOTU1NTksIDAuMTQzNzY1LCAwLjQyMzAwNSwgMC42NzI2MDQsIDEuMDA1NCwgMS42Njk3NCwgMi4wODY0MyIsIFwKLSAgICAgICAgICAiMC4wOTU3MiwgMC4xNDM4MDIsIDAuNDIzODI3LCAwLjY3MjgwNiwgMS4wMDUxOCwgMS42Njc2NSwgMi4wODU5NiIsIFwKLSAgICAgICAgICAiMC4wOTYxMzcsIDAuMTQ0MTMxLCAwLjQyMzQ5NSwgMC42NzI3NTYsIDEuMDA1MjQsIDEuNjY3ODQsIDIuMDg2MTMiLCBcCi0gICAgICAgICAgIjAuMDk3MDIxLCAwLjE0NDc2MiwgMC40MjM5MzIsIDAuNjcxMTY0LCAxLjAwNTI4LCAxLjY2NzYyLCAyLjA4NjI5IiwgXAotICAgICAgICAgICIwLjA5NzY2OCwgMC4xNDUzMDEsIDAuNDI0MDQ4LCAwLjY3MTU2MywgMS4wMDUzNCwgMS42NzA1NywgMi4wODI2NSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDE5MjUsIDAuMDAxOTM1LCAwLjAwMTk0OSwgMC4wMDE5NTIsIDAuMDAxOTU0LCAwLjAwMTk1NiwgMC4wMDE5NTYiLCBcCi0gICAgICAgICAgIjAuMDAxOTA0LCAwLjAwMTkxNCwgMC4wMDE5MjksIDAuMDAxOTMyLCAwLjAwMTkzNCwgMC4wMDE5MzYsIDAuMDAxOTM2IiwgXAotICAgICAgICAgICIwLjAwMTg4OSwgMC4wMDE5LCAwLjAwMTkxNywgMC4wMDE5MiwgMC4wMDE5MjIsIDAuMDAxOTIzLCAwLjAwMTkyNSIsIFwKLSAgICAgICAgICAiMC4wMDE4ODEsIDAuMDAxODkxLCAwLjAwMTkwOSwgMC4wMDE5MTMsIDAuMDAxOTE1LCAwLjAwMTkxNywgMC4wMDE5MTgiLCBcCi0gICAgICAgICAgIjAuMDAxODc1LCAwLjAwMTg4NiwgMC4wMDE5MDYsIDAuMDAxOTEsIDAuMDAxOTEzLCAwLjAwMTkxNSwgMC4wMDE5MTYiLCBcCi0gICAgICAgICAgIjAuMDAxODc3LCAwLjAwMTg4NywgMC4wMDE5MDUsIDAuMDAxOTEsIDAuMDAxOTEzLCAwLjAwMTkxNSwgMC4wMDE5MTYiLCBcCi0gICAgICAgICAgIjAuMDAxODc0LCAwLjAwMTg4NCwgMC4wMDE5MDYsIDAuMDAxOTEyLCAwLjAwMTkxNSwgMC4wMDE5MTgsIDAuMDAxOTIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDM2MjgsIDAuMDAzNjQsIDAuMDAzNjU3LCAwLjAwMzY2LCAwLjAwMzY2MiwgMC4wMDM2NjQsIDAuMDAzNjY0IiwgXAotICAgICAgICAgICIwLjAwMzYxOCwgMC4wMDM2MywgMC4wMDM2NDcsIDAuMDAzNjUsIDAuMDAzNjUyLCAwLjAwMzY1NCwgMC4wMDM2NTUiLCBcCi0gICAgICAgICAgIjAuMDAzNjA4LCAwLjAwMzYyMSwgMC4wMDM2MzksIDAuMDAzNjQzLCAwLjAwMzY0NSwgMC4wMDM2NDcsIDAuMDAzNjQ4IiwgXAotICAgICAgICAgICIwLjAwMzYwMywgMC4wMDM2MTYsIDAuMDAzNjM1LCAwLjAwMzY0LCAwLjAwMzY0MiwgMC4wMDM2NDQsIDAuMDAzNjQ1IiwgXAotICAgICAgICAgICIwLjAwMzU5OCwgMC4wMDM2MTIsIDAuMDAzNjMzLCAwLjAwMzYzOCwgMC4wMDM2NCwgMC4wMDM2NDMsIDAuMDAzNjQzIiwgXAotICAgICAgICAgICIwLjAwMzU5MywgMC4wMDM2MDYsIDAuMDAzNjMsIDAuMDAzNjM1LCAwLjAwMzYzOCwgMC4wMDM2NDEsIDAuMDAzNjQyIiwgXAotICAgICAgICAgICIwLjAwMzU5LCAwLjAwMzYwMywgMC4wMDM2MjcsIDAuMDAzNjM0LCAwLjAwMzYzNywgMC4wMDM2NCwgMC4wMDM2NDEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxOTI1LCAwLjAwMTkzNSwgMC4wMDE5NDksIDAuMDAxOTUyLCAwLjAwMTk1NCwgMC4wMDE5NTUsIDAuMDAxOTU1IiwgXAotICAgICAgICAgICIwLjAwMTkwMiwgMC4wMDE5MTIsIDAuMDAxOTI3LCAwLjAwMTkzLCAwLjAwMTkzMiwgMC4wMDE5MzUsIDAuMDAxOTM0IiwgXAotICAgICAgICAgICIwLjAwMTg4NywgMC4wMDE4OTgsIDAuMDAxOTE1LCAwLjAwMTkxOCwgMC4wMDE5MjIsIDAuMDAxOTI0LCAwLjAwMTkyNSIsIFwKLSAgICAgICAgICAiMC4wMDE4ODQsIDAuMDAxODk1LCAwLjAwMTkxNCwgMC4wMDE5MTksIDAuMDAxOTIyLCAwLjAwMTkyNCwgMC4wMDE5MjQiLCBcCi0gICAgICAgICAgIjAuMDAxODk0LCAwLjAwMTkwMiwgMC4wMDE5MiwgMC4wMDE5MjUsIDAuMDAxOTI4LCAwLjAwMTkzLCAwLjAwMTkzMSIsIFwKLSAgICAgICAgICAiMC4wMDE5MDMsIDAuMDAxOTEyLCAwLjAwMTkzMywgMC4wMDE5MzksIDAuMDAxOTQyLCAwLjAwMTk0NiwgMC4wMDE5NDYiLCBcCi0gICAgICAgICAgIjAuMDAxOTE1LCAwLjAwMTkyNSwgMC4wMDE5NDgsIDAuMDAxOTU0LCAwLjAwMTk1OCwgMC4wMDE5NjEsIDAuMDAxOTYzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzMzk3LCAwLjAwMzQwOCwgMC4wMDM0MjQsIDAuMDAzNDI3LCAwLjAwMzQyOCwgMC4wMDM0MywgMC4wMDM0MyIsIFwKLSAgICAgICAgICAiMC4wMDMzOCwgMC4wMDMzOTIsIDAuMDAzNDA3LCAwLjAwMzQxLCAwLjAwMzQxMiwgMC4wMDM0MTMsIDAuMDAzNDE0IiwgXAotICAgICAgICAgICIwLjAwMzM2NSwgMC4wMDMzNzcsIDAuMDAzMzk0LCAwLjAwMzM5OCwgMC4wMDM0LCAwLjAwMzQwMSwgMC4wMDM0MDIiLCBcCi0gICAgICAgICAgIjAuMDAzMzU2LCAwLjAwMzM2OCwgMC4wMDMzODcsIDAuMDAzMzkxLCAwLjAwMzM5MywgMC4wMDMzOTUsIDAuMDAzMzk2IiwgXAotICAgICAgICAgICIwLjAwMzM1LCAwLjAwMzM2MywgMC4wMDMzODMsIDAuMDAzMzg4LCAwLjAwMzM5LCAwLjAwMzM5MiwgMC4wMDMzOTMiLCBcCi0gICAgICAgICAgIjAuMDAzMzQzLCAwLjAwMzM1NiwgMC4wMDMzNzgsIDAuMDAzMzgzLCAwLjAwMzM4NiwgMC4wMDMzODksIDAuMDAzMzg5IiwgXAotICAgICAgICAgICIwLjAwMzMzOSwgMC4wMDMzNTIsIDAuMDAzMzc2LCAwLjAwMzM4MiwgMC4wMDMzODUsIDAuMDAzMzg4LCAwLjAwMzM4OSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDEzOTQsIDAuMDAxMzk2LCAwLjAwMTM5OCwgMC4wMDEzOTgsIDAuMDAxMzk5LCAwLjAwMTM5OCwgMC4wMDEzOTkiLCBcCi0gICAgICAgICAgIjAuMDAxMzcyLCAwLjAwMTM3NSwgMC4wMDEzNzcsIDAuMDAxMzc3LCAwLjAwMTM3OCwgMC4wMDEzNzgsIDAuMDAxMzc4IiwgXAotICAgICAgICAgICIwLjAwMTM1MywgMC4wMDEzNTgsIDAuMDAxMzYyLCAwLjAwMTM2MywgMC4wMDEzNjMsIDAuMDAxMzYzLCAwLjAwMTM2MyIsIFwKLSAgICAgICAgICAiMC4wMDEzNDMsIDAuMDAxMzQ5LCAwLjAwMTM1NSwgMC4wMDEzNTYsIDAuMDAxMzU2LCAwLjAwMTM1NywgMC4wMDEzNTciLCBcCi0gICAgICAgICAgIjAuMDAxMzQsIDAuMDAxMzQ1LCAwLjAwMTM1MywgMC4wMDEzNTQsIDAuMDAxMzU0LCAwLjAwMTM1NSwgMC4wMDEzNTUiLCBcCi0gICAgICAgICAgIjAuMDAxMzQyLCAwLjAwMTM0NywgMC4wMDEzNTUsIDAuMDAxMzU2LCAwLjAwMTM1NiwgMC4wMDEzNTcsIDAuMDAxMzU3IiwgXAotICAgICAgICAgICIwLjAwMTM0NywgMC4wMDEzNTIsIDAuMDAxMzYxLCAwLjAwMTM2MiwgMC4wMDEzNjMsIDAuMDAxMzYzLCAwLjAwMTM2NCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjk1LCAwLjAwMjk2MSwgMC4wMDI5NzgsIDAuMDAyOTgxLCAwLjAwMjk4MywgMC4wMDI5ODUsIDAuMDAyOTg1IiwgXAotICAgICAgICAgICIwLjAwMjkzMiwgMC4wMDI5NDQsIDAuMDAyOTYyLCAwLjAwMjk2NiwgMC4wMDI5NjgsIDAuMDAyOTcsIDAuMDAyOTcxIiwgXAotICAgICAgICAgICIwLjAwMjkyNCwgMC4wMDI5MzYsIDAuMDAyOTU3LCAwLjAwMjk2MSwgMC4wMDI5NjQsIDAuMDAyOTY2LCAwLjAwMjk2NyIsIFwKLSAgICAgICAgICAiMC4wMDI5MjIsIDAuMDAyOTM1LCAwLjAwMjk1OCwgMC4wMDI5NjMsIDAuMDAyOTY2LCAwLjAwMjk2OSwgMC4wMDI5NyIsIFwKLSAgICAgICAgICAiMC4wMDI5MjIsIDAuMDAyOTM2LCAwLjAwMjk2MiwgMC4wMDI5NjgsIDAuMDAyOTcyLCAwLjAwMjk3NSwgMC4wMDI5NzYiLCBcCi0gICAgICAgICAgIjAuMDAyOTMzLCAwLjAwMjk0NywgMC4wMDI5NzQsIDAuMDAyOTgyLCAwLjAwMjk4NiwgMC4wMDI5OSwgMC4wMDI5OTIiLCBcCi0gICAgICAgICAgIjAuMDAyOTQ4LCAwLjAwMjk2MiwgMC4wMDI5OTEsIDAuMDAyOTk5LCAwLjAwMzAwMywgMC4wMDMwMDgsIDAuMDAzMDA5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTM5OCwgMC4wMDE0MDIsIDAuMDAxNDA3LCAwLjAwMTQwOCwgMC4wMDE0MSwgMC4wMDE0MDksIDAuMDAxNDA5IiwgXAotICAgICAgICAgICIwLjAwMTM3NSwgMC4wMDEzODEsIDAuMDAxMzg3LCAwLjAwMTM4OSwgMC4wMDEzODksIDAuMDAxMzksIDAuMDAxMzkiLCBcCi0gICAgICAgICAgIjAuMDAxMzYyLCAwLjAwMTM2OSwgMC4wMDEzNzgsIDAuMDAxMzc5LCAwLjAwMTM4LCAwLjAwMTM4MSwgMC4wMDEzODEiLCBcCi0gICAgICAgICAgIjAuMDAxMzY0LCAwLjAwMTM3LCAwLjAwMTM3OSwgMC4wMDEzODEsIDAuMDAxMzgyLCAwLjAwMTM4MywgMC4wMDEzODMiLCBcCi0gICAgICAgICAgIjAuMDAxMzcsIDAuMDAxMzc2LCAwLjAwMTM4OCwgMC4wMDEzOSwgMC4wMDEzOTIsIDAuMDAxMzkzLCAwLjAwMTM5MyIsIFwKLSAgICAgICAgICAiMC4wMDEzOCwgMC4wMDEzODYsIDAuMDAxNCwgMC4wMDE0LCAwLjAwMTQwMiwgMC4wMDE0MDMsIDAuMDAxNDAzIiwgXAotICAgICAgICAgICIwLjAwMTM5NiwgMC4wMDE0MDEsIDAuMDAxNDEyLCAwLjAwMTQxNCwgMC4wMDE0MTYsIDAuMDAxNDE4LCAwLjAwMTQxOSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjY1MSwgMC4wMDI2NjEsIDAuMDAyNjc2LCAwLjAwMjY3OSwgMC4wMDI2ODEsIDAuMDAyNjgyLCAwLjAwMjY4MyIsIFwKLSAgICAgICAgICAiMC4wMDI2MjcsIDAuMDAyNjM5LCAwLjAwMjY1NSwgMC4wMDI2NTgsIDAuMDAyNjYsIDAuMDAyNjYyLCAwLjAwMjY2MiIsIFwKLSAgICAgICAgICAiMC4wMDI2MTMsIDAuMDAyNjI2LCAwLjAwMjY0NSwgMC4wMDI2NSwgMC4wMDI2NTIsIDAuMDAyNjU0LCAwLjAwMjY1NSIsIFwKLSAgICAgICAgICAiMC4wMDI2MDgsIDAuMDAyNjIxLCAwLjAwMjY0NSwgMC4wMDI2NSwgMC4wMDI2NTMsIDAuMDAyNjU2LCAwLjAwMjY1NyIsIFwKLSAgICAgICAgICAiMC4wMDI2MTEsIDAuMDAyNjI2LCAwLjAwMjY1MSwgMC4wMDI2NTcsIDAuMDAyNjYxLCAwLjAwMjY2NCwgMC4wMDI2NjUiLCBcCi0gICAgICAgICAgIjAuMDAyNjEzLCAwLjAwMjYyNiwgMC4wMDI2NTQsIDAuMDAyNjYxLCAwLjAwMjY2NSwgMC4wMDI2NjksIDAuMDAyNjciLCBcCi0gICAgICAgICAgIjAuMDAyNjI1LCAwLjAwMjYzOSwgMC4wMDI2NjcsIDAuMDAyNjc1LCAwLjAwMjY4LCAwLjAwMjY4NCwgMC4wMDI2ODUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IEFPMjJYMiAqCi0gKiAtLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKEFPMjJYMikgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjE1Mjg5MzsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQTApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYzNDIyNTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MzI0ODsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2MzQyMjU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjI2LCAwLjAwMDIyNiwgMC4wMDAyMjYsIDAuMDAwMjI2LCAwLjAwMDIyNiwgMC4wMDAyMjYsIDAuMDAwMjI2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjM0LCAwLjAwMDIyOCwgMC4wMDAyMjcsIDAuMDAwMjI3LCAwLjAwMDIyNywgMC4wMDAyMjcsIDAuMDAwMjI3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihBMSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjE5NTM2OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYxNjQyOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDYxOTUzNjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxMjcsIDAuMDAwMTI2LCAwLjAwMDEyNiwgMC4wMDAxMjYsIDAuMDAwMTI2LCAwLjAwMDEyNiwgMC4wMDAxMjYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyNTcsIDAuMDAwMjU3LCAwLjAwMDI1NywgMC4wMDAyNTcsIDAuMDAwMjU3LCAwLjAwMDI1NywgMC4wMDAyNTciKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2MjU1NzM7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjI1NTczOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDYyNDI4MjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyMjYsIDAuMDAwMjI2LCAwLjAwMDIyNiwgMC4wMDAyMjYsIDAuMDAwMjI2LCAwLjAwMDIyNiwgMC4wMDAyMjYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyMywgMC4wMDAyMjcsIDAuMDAwMjI3LCAwLjAwMDIyNywgMC4wMDAyMjcsIDAuMDAwMjI3LCAwLjAwMDIyNyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQjEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYzODM4OTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MzgxNjE7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjM4Mzg5OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDA2OSwgMC4wMDAwNjksIDAuMDAwMDY5LCAwLjAwMDA2OSwgMC4wMDAwNjksIDAuMDAwMDY5LCAwLjAwMDA2OSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDI1NywgMC4wMDAyNTcsIDAuMDAwMjU3LCAwLjAwMDI1NywgMC4wMDAyNTcsIDAuMDAwMjU3LCAwLjAwMDI1NyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjUxOTE0OwotICAgIGZ1bmN0aW9uIDogIigoQTAgQTEpKyhCMCBCMSkpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk3MjUyLCAwLjIwMzIsIDAuMjg0ODMzLCAwLjM4NjY5NywgMC40ODg1MzMsIDAuNTkwMjA4LCAwLjY5MTg5IiwgXAotICAgICAgICAgICIwLjEwNjA0NCwgMC4yMTE5OTcsIDAuMjkzNjQ2LCAwLjM5NTQ4NiwgMC40OTczNTUsIDAuNTk5MDE5LCAwLjcwMDY3NSIsIFwKLSAgICAgICAgICAiMC4xMTY5MDEsIDAuMjIyODQ3LCAwLjMwNDQ4NywgMC40MDYzNSwgMC41MDgxOTMsIDAuNjA5ODY2LCAwLjcxMTU0NiIsIFwKLSAgICAgICAgICAiMC4xMjc2OTksIDAuMjMzNjI3LCAwLjMxNTI5LCAwLjQxNzExOSwgMC41MTg5OTUsIDAuNjIwNjU3LCAwLjcyMjMxMyIsIFwKLSAgICAgICAgICAiMC4xMzgzMTYsIDAuMjQ0MjM3LCAwLjMyNTkwMywgMC40Mjc3NDcsIDAuNTI5NTg2LCAwLjYzMTI2MiwgMC43MzI5OTUiLCBcCi0gICAgICAgICAgIjAuMTU0MjQ5LCAwLjI2MDI2MywgMC4zNDE5MDYsIDAuNDQzNzYxLCAwLjU0NTY0NCwgMC42NDczMDQsIDAuNzQ4OTYiLCBcCi0gICAgICAgICAgIjAuMTY3MjYzLCAwLjI3MzQzMiwgMC4zNTUwNzcsIDAuNDU2OTMxLCAwLjU1ODczLCAwLjY2MDQ1NCwgMC43NjIxNTUiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDYyMzk4LCAwLjI2MzE2OSwgMC40Mjk2NjIsIDAuNjM4MDg2LCAwLjg0ODQ5MywgMS4wNTgwNSwgMS4yNjc0MSIsIFwKLSAgICAgICAgICAiMC4wNjIzOTIsIDAuMjYzMjA4LCAwLjQyOTc4MiwgMC42Mzc5ODEsIDAuODQ4Mjc1LCAxLjA1ODA2LCAxLjI2Nzc1IiwgXAotICAgICAgICAgICIwLjA2MjM3OCwgMC4yNjMyOSwgMC40Mjk2NDIsIDAuNjM4NjI3LCAwLjg0ODMzOCwgMS4wNTgxMiwgMS4yNjczMSIsIFwKLSAgICAgICAgICAiMC4wNjI1MTEsIDAuMjYzMjAzLCAwLjQyOTA2NSwgMC42Mzc5NTYsIDAuODQ4MjksIDEuMDU4MDUsIDEuMjY3NzQiLCBcCi0gICAgICAgICAgIjAuMDYyNTI0LCAwLjI2MzE3NywgMC40MjkxMjcsIDAuNjM4ODAzLCAwLjg0ODQ2LCAxLjA1ODAyLCAxLjI2Nzg2IiwgXAotICAgICAgICAgICIwLjA2MzIxMiwgMC4yNjM0MjQsIDAuNDI5MTkzLCAwLjYzODU3MiwgMC44NDgxNiwgMS4wNTc5MSwgMS4yNjc1OSIsIFwKLSAgICAgICAgICAiMC4wNjQyNTEsIDAuMjYzODE4LCAwLjQyOTc5MywgMC42Mzg2ODYsIDAuODQ4MTU5LCAxLjA1Nzg2LCAxLjI2NzYyIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwMTk2NiwgMC4yMDk3MzQsIDAuMjkyNjczLCAwLjM5NjI0LCAwLjQ5OTc4MiwgMC42MDMyOCwgMC43MDY3MDciLCBcCi0gICAgICAgICAgIjAuMTExNTI2LCAwLjIxOTI2OCwgMC4zMDIyMjcsIDAuNDA1Nzk5LCAwLjUwOTMzMSwgMC42MTI4MjksIDAuNzE2MjYiLCBcCi0gICAgICAgICAgIjAuMTIyMzk0LCAwLjIzMDEzMywgMC4zMTMwODcsIDAuNDE2NjYzLCAwLjUyMDIzNSwgMC42MjM3MywgMC43MjcxMzYiLCBcCi0gICAgICAgICAgIjAuMTMyNDA2LCAwLjI0MDIwNiwgMC4zMjMxODEsIDAuNDI2NzM4LCAwLjUzMDMxNSwgMC42MzM3NTUsIDAuNzM3MTg3IiwgXAotICAgICAgICAgICIwLjE0MjA5OCwgMC4yNDk4OSwgMC4zMzI4NTUsIDAuNDM2NDMzLCAwLjU0MDAwMiwgMC42NDM0NDQsIDAuNzQ2ODgxIiwgXAotICAgICAgICAgICIwLjE1NjY4NiwgMC4yNjQ2MDMsIDAuMzQ3NTU2LCAwLjQ1MTEzNCwgMC41NTQ3MDksIDAuNjU4MTQ3LCAwLjc2MTYxOSIsIFwKLSAgICAgICAgICAiMC4xNjg1NiwgMC4yNzY3MjcsIDAuMzU5NjkyLCAwLjQ2MzI1NCwgMC41NjY3ODcsIDAuNjcwMjkyLCAwLjc3MzcxNCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjExNjQsIDAuMjYzMDY5LCAwLjQyOTU1NCwgMC42Mzg0MTQsIDAuODQ3OTIzLCAxLjA1OCwgMS4yNjc5NiIsIFwKLSAgICAgICAgICAiMC4wNjExNDIsIDAuMjYyOTY0LCAwLjQyOTU2NCwgMC42Mzc1NDIsIDAuODQ4MjcyLCAxLjA1NzAxLCAxLjI2NzkiLCBcCi0gICAgICAgICAgIjAuMDYxMTU2LCAwLjI2MzA2NCwgMC40Mjk1NjEsIDAuNjM4NjY3LCAwLjg0ODE5MywgMS4wNTc4NCwgMS4yNjc5OCIsIFwKLSAgICAgICAgICAiMC4wNjEwNzIsIDAuMjYzMDQsIDAuNDI5NjQ1LCAwLjYzODI3NiwgMC44NDc4OTgsIDEuMDU4MDksIDEuMjY3ODYiLCBcCi0gICAgICAgICAgIjAuMDYxMjM2LCAwLjI2MzA1NSwgMC40MjkxNzMsIDAuNjM3NzE5LCAwLjg0ODE4NSwgMS4wNTgxNCwgMS4yNjc4IiwgXAotICAgICAgICAgICIwLjA2MjAwOCwgMC4yNjMxNSwgMC40Mjk2MTcsIDAuNjM3NjksIDAuODQ4MTczLCAxLjA1ODEzLCAxLjI2NzU0IiwgXAotICAgICAgICAgICIwLjA2MzAzMSwgMC4yNjM1MTgsIDAuNDI5ODMxLCAwLjYzODM1NCwgMC44NDY1NDMsIDEuMDU4MDIsIDEuMjY3ODgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTEiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5NTAxLCAwLjIwMDk1NCwgMC4yODI2MDIsIDAuMzg0NDQyLCAwLjQ4NjMwOCwgMC41ODc5NzMsIDAuNjg5NjI5IiwgXAotICAgICAgICAgICIwLjEwNDA5MiwgMC4yMTAwMywgMC4yOTE2NjMsIDAuMzkzNTMyLCAwLjQ5NTM2OCwgMC41OTcwNDIsIDAuNjk4Nzk1IiwgXAotICAgICAgICAgICIwLjExNTY4LCAwLjIyMTYxMywgMC4zMDMyNTgsIDAuNDA1MTI5LCAwLjUwNjkxNiwgMC42MDg3MTYsIDAuNzEwNDY1IiwgXAotICAgICAgICAgICIwLjEyNzU3NywgMC4yMzM0OTgsIDAuMzE1MTU4LCAwLjQxNjk5NywgMC41MTg4NzgsIDAuNjIwNTQsIDAuNzIyMTk2IiwgXAotICAgICAgICAgICIwLjEzOTQ5MiwgMC4yNDU0MSwgMC4zMjcwNTEsIDAuNDI4OTE3LCAwLjUzMDc3MiwgMC42MzI0NDQsIDAuNzM0MTIxIiwgXAotICAgICAgICAgICIwLjE1NzY2OCwgMC4yNjM2NjksIDAuMzQ1Mjk4LCAwLjQ0NzE1OSwgMC41NDkwNTgsIDAuNjUwNzE3LCAwLjc1MjM3MyIsIFwKLSAgICAgICAgICAiMC4xNzIxODYsIDAuMjc4MjcsIDAuMzU5ODk4LCAwLjQ2MTc0NywgMC41NjM1MjgsIDAuNjY1MzU3LCAwLjc2Njk2MyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjIzOTQsIDAuMjYzMjI5LCAwLjQyOTc5OCwgMC42MzgzNDIsIDAuODQ4NTUxLCAxLjA1ODA4LCAxLjI2Nzc5IiwgXAotICAgICAgICAgICIwLjA2MjQ0OCwgMC4yNjM0OSwgMC40Mjk2NTMsIDAuNjM4ODA5LCAwLjg0ODQ2NiwgMS4wNTgwMywgMS4yNjc5MiIsIFwKLSAgICAgICAgICAiMC4wNjIzOTYsIDAuMjYzMzUsIDAuNDI5NjMxLCAwLjYzODcxNSwgMC44NDgzLCAxLjA1ODA1LCAxLjI2NjQiLCBcCi0gICAgICAgICAgIjAuMDYyNTE3LCAwLjI2MzE3NSwgMC40Mjk3MjQsIDAuNjM4NTgyLCAwLjg0ODI4MywgMS4wNTgwNSwgMS4yNjc3NCIsIFwKLSAgICAgICAgICAiMC4wNjI1NDYsIDAuMjYzMTg2LCAwLjQyOTYwNiwgMC42Mzc5NzMsIDAuODQ4NDc0LCAxLjA1Nzk5LCAxLjI2NzMiLCBcCi0gICAgICAgICAgIjAuMDYzNDc4LCAwLjI2MzQwNCwgMC40Mjk2NCwgMC42Mzg2MjUsIDAuODQ4MTgxLCAxLjA1Nzk3LCAxLjI2NzYiLCBcCi0gICAgICAgICAgIjAuMDY1MzE2LCAwLjI2Mzg5NiwgMC40MjkyMTEsIDAuNjM4NzY5LCAwLjg0ODI2NCwgMS4wNTc4NSwgMS4yNjc2MSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTg2ODMsIDAuMjA2MTg1LCAwLjI4OTA4OCwgMC4zOTI2MTcsIDAuNDk2MDk0LCAwLjU5OTU1OSwgMC43MDMwMjIiLCBcCi0gICAgICAgICAgIjAuMTA4Mjg0LCAwLjIxNTc5MiwgMC4yOTg2OTQsIDAuNDAyMjQxLCAwLjUwNTcxMiwgMC42MDkxNzMsIDAuNzEyNjMzIiwgXAotICAgICAgICAgICIwLjExODkyMywgMC4yMjY0ODIsIDAuMzA5MzY2LCAwLjQxMjkwOCwgMC41MTY0NjEsIDAuNjE5ODc4LCAwLjcyMzI5NCIsIFwKLSAgICAgICAgICAiMC4xMjg5MzUsIDAuMjM2NDM5LCAwLjMxOTMzOSwgMC40MjI4NzMsIDAuNTI2NDA3LCAwLjYyOTg3MiwgMC43MzMyODciLCBcCi0gICAgICAgICAgIjAuMTM4NDcsIDAuMjQ2MDM5LCAwLjMyODk1MywgMC40MzI0OTksIDAuNTM1OTkxLCAwLjYzOTUwOCwgMC43NDI4OTUiLCBcCi0gICAgICAgICAgIjAuMTUyODU0LCAwLjI2MDU2NSwgMC4zNDM0NjksIDAuNDQ3MDA4LCAwLjU1MDUzNCwgMC42NTM5ODgsIDAuNzU3NDAzIiwgXAotICAgICAgICAgICIwLjE2NDQxLCAwLjI3MjQxNSwgMC4zNTUzNDIsIDAuNDU4ODc2LCAwLjU2MjM1NywgMC42NjU4NzksIDAuNzY5MjgzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2MDY3MiwgMC4yNjI2NTEsIDAuNDI5MywgMC42MzgzNjcsIDAuODQ3OTQxLCAxLjA1Nzc3LCAxLjI2NzY5IiwgXAotICAgICAgICAgICIwLjA2MDgxNSwgMC4yNjI2MzgsIDAuNDI5MjYyLCAwLjYzNzY4LCAwLjg0Nzg1NSwgMS4wNTcyMSwgMS4yNjc3NCIsIFwKLSAgICAgICAgICAiMC4wNjA3OTQsIDAuMjYyNzMzLCAwLjQyOTI4MywgMC42MzgxNjEsIDAuODQ2OTQ2LCAxLjA1NzgzLCAxLjI2NzU5IiwgXAotICAgICAgICAgICIwLjA2MDc2NiwgMC4yNjI3MzgsIDAuNDI5Mjc1LCAwLjYzODM4LCAwLjg0NzkxMiwgMS4wNTc3NywgMS4yNjc3MSIsIFwKLSAgICAgICAgICAiMC4wNjA5NTEsIDAuMjYyNjA3LCAwLjQyOTI2MiwgMC42MzczNjMsIDAuODQ4MDY0LCAxLjA1NzYsIDEuMjY3NjgiLCBcCi0gICAgICAgICAgIjAuMDYxODUzLCAwLjI2Mjk0NywgMC40MjkzNjUsIDAuNjM3MzQzLCAwLjg0NzAwOCwgMS4wNTc3OSwgMS4yNjc2IiwgXAotICAgICAgICAgICIwLjA2Mjk1NiwgMC4yNjM1MTksIDAuNDI5NTQ0LCAwLjYzODA4MywgMC44NDc2OCwgMS4wNTc3OCwgMS4yNjc3MSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDgzNjI4LCAwLjE4ODIsIDAuMjY5NTQ1LCAwLjM3MTE5OSwgMC40NzI4NTIsIDAuNTc0NzM5LCAwLjY3NjMxOCIsIFwKLSAgICAgICAgICAiMC4wOTI2MSwgMC4xOTcyMDQsIDAuMjc4NTQ5LCAwLjM4MDE4OSwgMC40ODE4NTksIDAuNTgzNzQzLCAwLjY4NTQ2IiwgXAotICAgICAgICAgICIwLjEwMzMwNSwgMC4yMDc5MjcsIDAuMjg5MjYyLCAwLjM5MDk0MSwgMC40OTI1NjksIDAuNTk0NDIyLCAwLjY5NTk0IiwgXAotICAgICAgICAgICIwLjExMzg3MywgMC4yMTg0ODcsIDAuMjk5ODQyLCAwLjQwMTUyOCwgMC41MDMxNTYsIDAuNjA1MDU2LCAwLjcwNjQ4OSIsIFwKLSAgICAgICAgICAiMC4xMjM4NTIsIDAuMjI4NTQ2LCAwLjMwOTkwMSwgMC40MTE1NjQsIDAuNTEzMjIxLCAwLjYxNTE2NCwgMC43MTY1NDUiLCBcCi0gICAgICAgICAgIjAuMTM4NjQ3LCAwLjI0MzU1OCwgMC4zMjQ5MjMsIDAuNDI2NTUxLCAwLjUyODE5NSwgMC42MzAwNjIsIDAuNzMxNjA3IiwgXAotICAgICAgICAgICIwLjE1MDQwNSwgMC4yNTU2NjgsIDAuMzM2OTk4LCAwLjQzODc0LCAwLjU0MDM0OSwgMC42NDIwMTEsIDAuNzQzNzAxIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2MDAzLCAwLjI2MTY2OSwgMC40MjgxODksIDAuNjM3NTc0LCAwLjg0NzMzNCwgMS4wNTY2MywgMS4yNjcxNSIsIFwKLSAgICAgICAgICAiMC4wNjAwMzUsIDAuMjYxNjcyLCAwLjQyODE4OCwgMC42Mzc0NjUsIDAuODQ3MzIzLCAxLjA1NTIsIDEuMjY1NTUiLCBcCi0gICAgICAgICAgIjAuMDYwMDQzLCAwLjI2MTYxNCwgMC40MjgxMzgsIDAuNjM2NjI5LCAwLjg0NzI3NywgMS4wNTU1LCAxLjI2NjQ2IiwgXAotICAgICAgICAgICIwLjA2MDE4OCwgMC4yNjE2NTYsIDAuNDI4MTUzLCAwLjYzNzQwOSwgMC44NDcxOTksIDEuMDU1MiwgMS4yNjcyIiwgXAotICAgICAgICAgICIwLjA2MDU5LCAwLjI2MTcwMSwgMC40Mjc4NjYsIDAuNjM2NjM1LCAwLjg0NzIwNCwgMS4wNTUyNCwgMS4yNjY5OSIsIFwKLSAgICAgICAgICAiMC4wNjE5MiwgMC4yNjIwMTQsIDAuNDI4NDUsIDAuNjM2NjYzLCAwLjg0NzE1OCwgMS4wNTcwNCwgMS4yNjY5OCIsIFwKLSAgICAgICAgICAiMC4wNjM1MzMsIDAuMjYyNjQxLCAwLjQyODQxNywgMC42MzY2NDUsIDAuODQ3Mjc5LCAxLjA1NTczLCAxLjI2Njk4Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5MDExNSwgMC4xOTc5MjUsIDAuMjgwODY1LCAwLjM4NDQ0MiwgMC40ODgwMjQsIDAuNTkxNDU4LCAwLjY5NDg4OSIsIFwKLSAgICAgICAgICAiMC4wOTkwMTksIDAuMjA2NzU2LCAwLjI4OTcxMSwgMC4zOTMyODgsIDAuNDk2Nzk0LCAwLjYwMDI3NCwgMC43MDM3NDkiLCBcCi0gICAgICAgICAgIjAuMTEwNDU0LCAwLjIxODIzNiwgMC4zMDExODMsIDAuNDA0NzY2LCAwLjUwODM1MywgMC42MTE3ODgsIDAuNzE1MjIiLCBcCi0gICAgICAgICAgIjAuMTIxOTc1LCAwLjIyOTc0MSwgMC4zMTI3MDMsIDAuNDE2Mjg5LCAwLjUxOTg4MywgMC42MjMzMTgsIDAuNzI2NzUxIiwgXAotICAgICAgICAgICIwLjEzMzExMSwgMC4yNDA4ODQsIDAuMzIzODUyLCAwLjQyNzQ2NCwgMC41MzA5NDksIDAuNjM0NDQsIDAuNzM3OTEiLCBcCi0gICAgICAgICAgIjAuMTQ5NTk3LCAwLjI1NzQ4MSwgMC4zNDA0NTgsIDAuNDQ0MDM2LCAwLjU0NzYxOSwgMC42NTEwNTcsIDAuNzU0NDk2IiwgXAotICAgICAgICAgICIwLjE2MjM2NSwgMC4yNzA0OTYsIDAuMzUzNDgyLCAwLjQ1NzA0MSwgMC41NjA1NzQsIDAuNjY0MDk4LCAwLjc2NzUxOSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjExNTksIDAuMjYzMDQ5LCAwLjQyOTU2MiwgMC42Mzc2NTUsIDAuODQ3MDQ5LCAxLjA1ODAxLCAxLjI2NzgzIiwgXAotICAgICAgICAgICIwLjA2MTEzOCwgMC4yNjMwNjYsIDAuNDI5NTU4LCAwLjYzNzcxNiwgMC44NDcwMjcsIDEuMDU3ODIsIDEuMjY3OTMiLCBcCi0gICAgICAgICAgIjAuMDYxMTA0LCAwLjI2MzA0MSwgMC40Mjk1MzEsIDAuNjM4MzQ5LCAwLjg0NzkxMywgMS4wNTgwNywgMS4yNjc4NyIsIFwKLSAgICAgICAgICAiMC4wNjExMDIsIDAuMjYzMDMxLCAwLjQyOTQ3MSwgMC42Mzc2MjIsIDAuODQ3MDcxLCAxLjA1ODA4LCAxLjI2Nzg2IiwgXAotICAgICAgICAgICIwLjA2MTg3OCwgMC4yNjMwMzMsIDAuNDI5NTk5LCAwLjYzNzY0NywgMC44NDcwNTcsIDEuMDU3ODIsIDEuMjY3OTUiLCBcCi0gICAgICAgICAgIjAuMDYyNDcyLCAwLjI2MzYwNiwgMC40Mjk2NzIsIDAuNjM4Njc5LCAwLjg0Njk2NSwgMS4wNTgxNCwgMS4yNjc3OCIsIFwKLSAgICAgICAgICAiMC4wNjM3NDQsIDAuMjYzNzc1LCAwLjQyOTk1OCwgMC42Mzg1MywgMC44NDc0MDgsIDEuMDU3ODYsIDEuMjY3OTUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjEiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4MDU5MywgMC4xODUyMDQsIDAuMjY2NTUsIDAuMzY4MjM0LCAwLjQ2OTg2NCwgMC41NzE3NzEsIDAuNjczMTkyIiwgXAotICAgICAgICAgICIwLjA4OTYyMSwgMC4xOTQyMzcsIDAuMjc1NTg5LCAwLjM3NzI1MywgMC40Nzg5MDMsIDAuNTgwNzk1LCAwLjY4MjMyMSIsIFwKLSAgICAgICAgICAiMC4xMDE0NjIsIDAuMjA2MDY3LCAwLjI4NzQxOCwgMC4zODkwNiwgMC40OTA3ODgsIDAuNTkyNDI2LCAwLjY5NDIyNSIsIFwKLSAgICAgICAgICAiMC4xMTMxOTQsIDAuMjE3ODM2LCAwLjI5OTE4MywgMC40MDA4ODMsIDAuNTAyNTAyLCAwLjYwNDQwMywgMC43MDU4NDgiLCBcCi0gICAgICAgICAgIjAuMTI0NDg3LCAwLjIyOTE5MSwgMC4zMTA1NTEsIDAuNDEyMjI5LCAwLjUxMzg3OCwgMC42MTU3OTMsIDAuNzE3MjA3IiwgXAotICAgICAgICAgICIwLjE0MDg3MywgMC4yNDU3NjYsIDAuMzI3MTM2LCAwLjQyODc4LCAwLjUzMDQ4MiwgMC42MzIyMywgMC43MzM3OTkiLCBcCi0gICAgICAgICAgIjAuMTUzNDI2LCAwLjI1ODc4OSwgMC4zNDAxMDgsIDAuNDQxNzc3LCAwLjU0MzQ3NiwgMC42NDUwOCwgMC43NDY4MTciKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDYwMDcxLCAwLjI2MTY0OCwgMC40MjgxOTgsIDAuNjM2MzI2LCAwLjg0NzM0LCAxLjA1NjcsIDEuMjY3MjMiLCBcCi0gICAgICAgICAgIjAuMDYwMDIzLCAwLjI2MTY5NSwgMC40MjgxODQsIDAuNjM3NTc1LCAwLjg0NzMxNCwgMS4wNTUyNiwgMS4yNjY1MSIsIFwKLSAgICAgICAgICAiMC4wNjAwNDQsIDAuMjYxNjQ2LCAwLjQyODE0MSwgMC42MzczOTIsIDAuODQ2MjM1LCAxLjA1NTU4LCAxLjI2NTUxIiwgXAotICAgICAgICAgICIwLjA2MDI4MiwgMC4yNjE4ODQsIDAuNDI4MiwgMC42Mzc2NiwgMC44NDczMTEsIDEuMDU1MiwgMS4yNjcyMyIsIFwKLSAgICAgICAgICAiMC4wNjA4NjEsIDAuMjYxNzM3LCAwLjQyODIsIDAuNjM2NjMzLCAwLjg0NzE5NCwgMS4wNTUyMSwgMS4yNjY5OCIsIFwKLSAgICAgICAgICAiMC4wNjI4MDQsIDAuMjYyMjc0LCAwLjQyODM3OSwgMC42MzY2NiwgMC44NDcyNTgsIDEuMDU1NzQsIDEuMjY2NDIiLCBcCi0gICAgICAgICAgIjAuMDY0OTY0LCAwLjI2MjgyMSwgMC40Mjc5NTIsIDAuNjM3NjU0LCAwLjg0NzI0NiwgMS4wNTY1LCAxLjI2NTQ4Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4NTk4MywgMC4xOTM1LCAwLjI3NjMzNSwgMC4zNzk4MTgsIDAuNDgzMzYzLCAwLjU4Njc1MywgMC42OTAxOTgiLCBcCi0gICAgICAgICAgIjAuMDk0OTg0LCAwLjIwMjQ2LCAwLjI4NTM1NSwgMC4zODg4NDQsIDAuNDkyMzk0LCAwLjU5NTgsIDAuNjk5MjEyIiwgXAotICAgICAgICAgICIwLjEwNjI3NiwgMC4yMTM2ODgsIDAuMjk2NTcyLCAwLjQwMDA5OSwgMC41MDM2MjEsIDAuNjA3MDM3LCAwLjcxMDU0MSIsIFwKLSAgICAgICAgICAiMC4xMTc2NDgsIDAuMjI1MDk1LCAwLjMwNzk3OSwgMC40MTE1MywgMC41MTQ5OTUsIDAuNjE4NDczLCAwLjcyMTg4NSIsIFwKLSAgICAgICAgICAiMC4xMjg2NzYsIDAuMjM2MTkxLCAwLjMxOTA4MiwgMC40MjI2MTEsIDAuNTI2MTM2LCAwLjYyOTU1NSwgMC43MzMwMTYiLCBcCi0gICAgICAgICAgIjAuMTQ0MzY1LCAwLjI1MjA2NSwgMC4zMzQ5ODMsIDAuNDM4NDc5LCAwLjU0MTk5NiwgMC42NDU0NDUsIDAuNzQ4ODU1IiwgXAotICAgICAgICAgICIwLjE1NjQyMiwgMC4yNjQ0OSwgMC4zNDczOTcsIDAuNDUwODkxLCAwLjU1NDQwMSwgMC42NTc4NjMsIDAuNzYxMjk2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2MDY4NCwgMC4yNjI2NDEsIDAuNDI5MjUxLCAwLjYzNzk5MSwgMC44NDc5MDksIDEuMDU3MTMsIDEuMjY3NjUiLCBcCi0gICAgICAgICAgIjAuMDYwNjUsIDAuMjYyNjM4LCAwLjQyOTMyOCwgMC42MzcyNTMsIDAuODQ3ODUyLCAxLjA1Nzg0LCAxLjI2NzU2IiwgXAotICAgICAgICAgICIwLjA2MDY0OCwgMC4yNjI2MywgMC40MjkxNjQsIDAuNjM3NDAzLCAwLjg0Nzg5MiwgMS4wNTc3OSwgMS4yNjc3MyIsIFwKLSAgICAgICAgICAiMC4wNjA3NDMsIDAuMjYyNjYxLCAwLjQyOTE5LCAwLjYzODQ3LCAwLjg0NzgyNiwgMS4wNTU4NywgMS4yNjY2NSIsIFwKLSAgICAgICAgICAiMC4wNjEwODYsIDAuMjYyNzA4LCAwLjQyOTIyNCwgMC42Mzc0MjIsIDAuODQ3ODYxLCAxLjA1NzgsIDEuMjY3NzIiLCBcCi0gICAgICAgICAgIjAuMDYyMzg1LCAwLjI2MzExLCAwLjQyOTE4LCAwLjYzODA3OCwgMC44NDc0MDgsIDEuMDU3ODcsIDEuMjY3NSIsIFwKLSAgICAgICAgICAiMC4wNjM3NTcsIDAuMjYzNDg2LCAwLjQyOTY4MSwgMC42Mzg0MzQsIDAuODQ2MjE0LCAxLjA1Nzg4LCAxLjI2NzcyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjg2NCwgMC4wMDI5MzcsIDAuMDAyOTQ4LCAwLjAwMjk1NSwgMC4wMDI5NTksIDAuMDAyOTYsIDAuMDAyOTYyIiwgXAotICAgICAgICAgICIwLjAwMjg0MiwgMC4wMDI5MTgsIDAuMDAyOTMsIDAuMDAyOTM2LCAwLjAwMjkzOSwgMC4wMDI5NDEsIDAuMDAyOTQyIiwgXAotICAgICAgICAgICIwLjAwMjgyNCwgMC4wMDI5MDMsIDAuMDAyOTE2LCAwLjAwMjkyMywgMC4wMDI5MjcsIDAuMDAyOTI5LCAwLjAwMjkzMSIsIFwKLSAgICAgICAgICAiMC4wMDI4MjIsIDAuMDAyODk1LCAwLjAwMjkwOCwgMC4wMDI5MTYsIDAuMDAyOTIsIDAuMDAyOTIzLCAwLjAwMjkyMyIsIFwKLSAgICAgICAgICAiMC4wMDI4MTMsIDAuMDAyODg4LCAwLjAwMjkwMiwgMC4wMDI5MTIsIDAuMDAyOTE2LCAwLjAwMjkxOSwgMC4wMDI5MiIsIFwKLSAgICAgICAgICAiMC4wMDI4MDgsIDAuMDAyODgyLCAwLjAwMjg5OSwgMC4wMDI5MDgsIDAuMDAyOTE1LCAwLjAwMjkxNywgMC4wMDI5MTkiLCBcCi0gICAgICAgICAgIjAuMDAyODMzLCAwLjAwMjg4NCwgMC4wMDI5LCAwLjAwMjkwOSwgMC4wMDI5MTcsIDAuMDAyOTE4LCAwLjAwMjkyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0Njc2LCAwLjAwNDc3NCwgMC4wMDQ3ODgsIDAuMDA0Nzk2LCAwLjAwNDgsIDAuMDA0ODAzLCAwLjAwNDgwNCIsIFwKLSAgICAgICAgICAiMC4wMDQ2NjcsIDAuMDA0NzY1LCAwLjAwNDc3OSwgMC4wMDQ3ODcsIDAuMDA0NzkxLCAwLjAwNDc5NCwgMC4wMDQ3OTUiLCBcCi0gICAgICAgICAgIjAuMDA0NjU3LCAwLjAwNDc1NywgMC4wMDQ3NzIsIDAuMDA0NzgsIDAuMDA0Nzg1LCAwLjAwNDc4NywgMC4wMDQ3ODkiLCBcCi0gICAgICAgICAgIjAuMDA0NjQ4LCAwLjAwNDc1LCAwLjAwNDc2NywgMC4wMDQ3NzYsIDAuMDA0NzgsIDAuMDA0NzgzLCAwLjAwNDc4NSIsIFwKLSAgICAgICAgICAiMC4wMDQ2NDIsIDAuMDA0NzQ1LCAwLjAwNDc2MiwgMC4wMDQ3NzIsIDAuMDA0Nzc3LCAwLjAwNDc4LCAwLjAwNDc4MiIsIFwKLSAgICAgICAgICAiMC4wMDQ2NDEsIDAuMDA0NzQsIDAuMDA0NzU4LCAwLjAwNDc2OSwgMC4wMDQ3NzUsIDAuMDA0Nzc4LCAwLjAwNDc4IiwgXAotICAgICAgICAgICIwLjAwNDYzOSwgMC4wMDQ3MzUsIDAuMDA0NzU1LCAwLjAwNDc2NiwgMC4wMDQ3NzIsIDAuMDA0Nzc2LCAwLjAwNDc3OSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkExIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI4NjUsIDAuMDAyOTM1LCAwLjAwMjk0OCwgMC4wMDI5NTQsIDAuMDAyOTU3LCAwLjAwMjk2MSwgMC4wMDI5NiIsIFwKLSAgICAgICAgICAiMC4wMDI4NCwgMC4wMDI5MTUsIDAuMDAyOTI4LCAwLjAwMjkzNSwgMC4wMDI5MzcsIDAuMDAyOTM5LCAwLjAwMjk0MSIsIFwKLSAgICAgICAgICAiMC4wMDI4MjEsIDAuMDAyODk5LCAwLjAwMjkxMywgMC4wMDI5MjEsIDAuMDAyOTI1LCAwLjAwMjkyNywgMC4wMDI5MjkiLCBcCi0gICAgICAgICAgIjAuMDAyODI0LCAwLjAwMjg5NiwgMC4wMDI5MSwgMC4wMDI5MTksIDAuMDAyOTI0LCAwLjAwMjkyNywgMC4wMDI5MjkiLCBcCi0gICAgICAgICAgIjAuMDAyODIzLCAwLjAwMjg5NSwgMC4wMDI5MTEsIDAuMDAyOTIsIDAuMDAyOTI1LCAwLjAwMjkyOSwgMC4wMDI5MzEiLCBcCi0gICAgICAgICAgIjAuMDAyODMsIDAuMDAyOTAzLCAwLjAwMjkyMSwgMC4wMDI5MywgMC4wMDI5MzcsIDAuMDAyOTQsIDAuMDAyOTQyIiwgXAotICAgICAgICAgICIwLjAwMjg2MywgMC4wMDI5MTUsIDAuMDAyOTMzLCAwLjAwMjk0MiwgMC4wMDI5NSwgMC4wMDI5NTQsIDAuMDAyOTU2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0NDQ5LCAwLjAwNDU0NCwgMC4wMDQ1NTgsIDAuMDA0NTY1LCAwLjAwNDU2OCwgMC4wMDQ1NzEsIDAuMDA0NTcyIiwgXAotICAgICAgICAgICIwLjAwNDQzNSwgMC4wMDQ1MzEsIDAuMDA0NTQ1LCAwLjAwNDU1MiwgMC4wMDQ1NTUsIDAuMDA0NTU4LCAwLjAwNDU1OSIsIFwKLSAgICAgICAgICAiMC4wMDQ0MTksIDAuMDA0NTE3LCAwLjAwNDUzMSwgMC4wMDQ1MzksIDAuMDA0NTQzLCAwLjAwNDU0NSwgMC4wMDQ1NDciLCBcCi0gICAgICAgICAgIjAuMDA0NDA3LCAwLjAwNDUwNywgMC4wMDQ1MjIsIDAuMDA0NTMxLCAwLjAwNDUzNSwgMC4wMDQ1MzgsIDAuMDA0NTM5IiwgXAotICAgICAgICAgICIwLjAwNDM5NiwgMC4wMDQ0OTksIDAuMDA0NTE2LCAwLjAwNDUyNSwgMC4wMDQ1MywgMC4wMDQ1MzMsIDAuMDA0NTM1IiwgXAotICAgICAgICAgICIwLjAwNDM5MywgMC4wMDQ0OSwgMC4wMDQ1MDgsIDAuMDA0NTE4LCAwLjAwNDUyNCwgMC4wMDQ1MjcsIDAuMDA0NTI5IiwgXAotICAgICAgICAgICIwLjAwNDM4NywgMC4wMDQ0ODYsIDAuMDA0NTA1LCAwLjAwNDUxNiwgMC4wMDQ1MjIsIDAuMDA0NTI2LCAwLjAwNDUyOCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDIzMjcsIDAuMDAyMzcsIDAuMDAyMzc1LCAwLjAwMjM3NCwgMC4wMDIzNzksIDAuMDAyMzc3LCAwLjAwMjM3OCIsIFwKLSAgICAgICAgICAiMC4wMDIzMDgsIDAuMDAyMzU0LCAwLjAwMjM1OCwgMC4wMDIzNiwgMC4wMDIzNjEsIDAuMDAyMzYyLCAwLjAwMjM2MiIsIFwKLSAgICAgICAgICAiMC4wMDIyODQsIDAuMDAyMzM1LCAwLjAwMjM0MiwgMC4wMDIzNDQsIDAuMDAyMzQ1LCAwLjAwMjM0NiwgMC4wMDIzNDciLCBcCi0gICAgICAgICAgIjAuMDAyMjc2LCAwLjAwMjMyNiwgMC4wMDIzMzQsIDAuMDAyMzM2LCAwLjAwMjMzOCwgMC4wMDIzMzksIDAuMDAyMzQiLCBcCi0gICAgICAgICAgIjAuMDAyMjY0LCAwLjAwMjMxOCwgMC4wMDIzMjYsIDAuMDAyMzMsIDAuMDAyMzM0LCAwLjAwMjMzNCwgMC4wMDIzMzQiLCBcCi0gICAgICAgICAgIjAuMDAyMjc5LCAwLjAwMjMxOSwgMC4wMDIzMjcsIDAuMDAyMzMxLCAwLjAwMjMzMywgMC4wMDIzMzQsIDAuMDAyMzM1IiwgXAotICAgICAgICAgICIwLjAwMjI2OCwgMC4wMDIzMTYsIDAuMDAyMzI2LCAwLjAwMjMzMSwgMC4wMDIzMzUsIDAuMDAyMzM2LCAwLjAwMjMzNyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzk4LCAwLjAwNDA3NywgMC4wMDQwOTEsIDAuMDA0MDk5LCAwLjAwNDEwMywgMC4wMDQxMDYsIDAuMDA0MTA3IiwgXAotICAgICAgICAgICIwLjAwMzk2MywgMC4wMDQwNjEsIDAuMDA0MDc3LCAwLjAwNDA4NSwgMC4wMDQwODksIDAuMDA0MDkyLCAwLjAwNDA5NCIsIFwKLSAgICAgICAgICAiMC4wMDM5NSwgMC4wMDQwNTEsIDAuMDA0MDY4LCAwLjAwNDA3OCwgMC4wMDQwODMsIDAuMDA0MDg2LCAwLjAwNDA4OCIsIFwKLSAgICAgICAgICAiMC4wMDM5NDYsIDAuMDA0MDQ2LCAwLjAwNDA2NSwgMC4wMDQwNzYsIDAuMDA0MDgyLCAwLjAwNDA4NSwgMC4wMDQwODgiLCBcCi0gICAgICAgICAgIjAuMDAzOTU5LCAwLjAwNDA0OSwgMC4wMDQwNjgsIDAuMDA0MDgsIDAuMDA0MDg2LCAwLjAwNDA4OSwgMC4wMDQwOTIiLCBcCi0gICAgICAgICAgIjAuMDAzOTU1LCAwLjAwNDA1LCAwLjAwNDA3MywgMC4wMDQwODcsIDAuMDA0MDk1LCAwLjAwNDEsIDAuMDA0MTAzIiwgXAotICAgICAgICAgICIwLjAwMzk2NywgMC4wMDQwNTgsIDAuMDA0MDgyLCAwLjAwNDA5OCwgMC4wMDQxMDYsIDAuMDA0MTEyLCAwLjAwNDExNiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIxIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDIzMjcsIDAuMDAyMzc1LCAwLjAwMjM4MSwgMC4wMDIzODQsIDAuMDAyMzg2LCAwLjAwMjM4NywgMC4wMDIzODgiLCBcCi0gICAgICAgICAgIjAuMDAyMzA1LCAwLjAwMjM1OSwgMC4wMDIzNjUsIDAuMDAyMzY4LCAwLjAwMjM3LCAwLjAwMjM3MiwgMC4wMDIzNzIiLCBcCi0gICAgICAgICAgIjAuMDAyMjg5LCAwLjAwMjM0NCwgMC4wMDIzNTMsIDAuMDAyMzU3LCAwLjAwMjM1OSwgMC4wMDIzNiwgMC4wMDIzNjEiLCBcCi0gICAgICAgICAgIjAuMDAyMjg4LCAwLjAwMjM0MSwgMC4wMDIzNSwgMC4wMDIzNTUsIDAuMDAyMzU4LCAwLjAwMjM1OSwgMC4wMDIzNiIsIFwKLSAgICAgICAgICAiMC4wMDIyOTgsIDAuMDAyMzQ0LCAwLjAwMjM1NSwgMC4wMDIzNTksIDAuMDAyMzYxLCAwLjAwMjM2NCwgMC4wMDIzNjUiLCBcCi0gICAgICAgICAgIjAuMDAyMzEsIDAuMDAyMzU1LCAwLjAwMjM2NiwgMC4wMDIzNzMsIDAuMDAyMzc2LCAwLjAwMjM3OCwgMC4wMDIzODEiLCBcCi0gICAgICAgICAgIjAuMDAyMzE3LCAwLjAwMjM2NywgMC4wMDIzNzksIDAuMDAyMzg3LCAwLjAwMjM5MSwgMC4wMDIzOTMsIDAuMDAyMzk2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzNjg1LCAwLjAwMzc4LCAwLjAwMzc5MywgMC4wMDM4LCAwLjAwMzgwMywgMC4wMDM4MDYsIDAuMDAzODA3IiwgXAotICAgICAgICAgICIwLjAwMzY2NCwgMC4wMDM3NjEsIDAuMDAzNzc1LCAwLjAwMzc4MiwgMC4wMDM3ODYsIDAuMDAzNzg4LCAwLjAwMzc5IiwgXAotICAgICAgICAgICIwLjAwMzY0OCwgMC4wMDM3NDYsIDAuMDAzNzYyLCAwLjAwMzc3MSwgMC4wMDM3NzYsIDAuMDAzNzc4LCAwLjAwMzc4IiwgXAotICAgICAgICAgICIwLjAwMzY0LCAwLjAwMzczOCwgMC4wMDM3NTYsIDAuMDAzNzY2LCAwLjAwMzc3MiwgMC4wMDM3NzUsIDAuMDAzNzc3IiwgXAotICAgICAgICAgICIwLjAwMzYzMywgMC4wMDM3MzQsIDAuMDAzNzU0LCAwLjAwMzc2NiwgMC4wMDM3NzIsIDAuMDAzNzc3LCAwLjAwMzc3OSIsIFwKLSAgICAgICAgICAiMC4wMDM2NDgsIDAuMDAzNzQsIDAuMDAzNzYzLCAwLjAwMzc3NywgMC4wMDM3ODQsIDAuMDAzNzg5LCAwLjAwMzc5MiIsIFwKLSAgICAgICAgICAiMC4wMDM2NiwgMC4wMDM3NDksIDAuMDAzNzcyLCAwLjAwMzc4NywgMC4wMDM3OTUsIDAuMDAzOCwgMC4wMDM4MDQiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IEFPMjJYTCAqCi0gKiAtLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKEFPMjJYTCkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjA5OTcyMTI7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2MTY4ODk7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjE1MDg2OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDYxNjg4OTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyMjYsIDAuMDAwMjI2LCAwLjAwMDIyNiwgMC4wMDAyMjYsIDAuMDAwMjI2LCAwLjAwMDIyNiwgMC4wMDAyMjYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyMzIsIDAuMDAwMjI3LCAwLjAwMDIyNywgMC4wMDAyMjcsIDAuMDAwMjI3LCAwLjAwMDIyNywgMC4wMDAyMjciKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEExKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2NTI2Mzk7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjQ5MjcyOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDY1MjYzOTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxMDMsIDAuMDAwMTAzLCAwLjAwMDEwMywgMC4wMDAxMDMsIDAuMDAwMTAzLCAwLjAwMDEwMywgMC4wMDAxMDMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyNTcsIDAuMDAwMjU3LCAwLjAwMDI1NywgMC4wMDAyNTcsIDAuMDAwMjU3LCAwLjAwMDI1NywgMC4wMDAyNTciKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2Njg5NTE7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjY4OTUxOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDY2Nzc0OTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyMjcsIDAuMDAwMjI2LCAwLjAwMDIyNiwgMC4wMDAyMjYsIDAuMDAwMjI2LCAwLjAwMDIyNiwgMC4wMDAyMjYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyMzIsIDAuMDAwMjI3LCAwLjAwMDIyNywgMC4wMDAyMjcsIDAuMDAwMjI3LCAwLjAwMDIyNywgMC4wMDAyMjciKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIxKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2ODE0NjE7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjgxMzIxOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDY4MTQ2MTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxMTEsIDAuMDAwMTExLCAwLjAwMDExMSwgMC4wMDAxMTEsIDAuMDAwMTExLCAwLjAwMDExMSwgMC4wMDAxMTEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyNTcsIDAuMDAwMjU3LCAwLjAwMDI1NywgMC4wMDAyNTcsIDAuMDAwMjU3LCAwLjAwMDI1NywgMC4wMDAyNTciKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4xNDgxMTc7Ci0gICAgZnVuY3Rpb24gOiAiKChBMCBBMSkrKEIwIEIxKSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMjk2NzUsIDAuMTQzOTE2LCAwLjI3MTU0LCAwLjQ4MzY3LCAwLjY5NTcwOSwgMS4xOTAwNSwgMS40NzI1MyIsIFwKLSAgICAgICAgICAiMC4xMzg0NzQsIDAuMTUyNzA1LCAwLjI4MDM0MSwgMC40OTI1MDcsIDAuNzA0NDQ5LCAxLjE5ODg3LCAxLjQ4MTM2IiwgXAotICAgICAgICAgICIwLjE0OTI0NCwgMC4xNjM0ODgsIDAuMjkxMTQyLCAwLjUwMzI1MiwgMC43MTUyMywgMS4yMDk2NSwgMS40OTIyMSIsIFwKLSAgICAgICAgICAiMC4xNTk3MjksIDAuMTczOTYzLCAwLjMwMTYwNCwgMC41MTM3NCwgMC43MjU3MiwgMS4yMjAxMywgMS41MDI2IiwgXAotICAgICAgICAgICIwLjE2OTgxLCAwLjE4NDA0OSwgMC4zMTE2ODYsIDAuNTIzODM2LCAwLjczNTgxMiwgMS4yMzAyMywgMS41MTI3IiwgXAotICAgICAgICAgICIwLjE4NDU4OCwgMC4xOTg4MjIsIDAuMzI2NDY5LCAwLjUzODYzMSwgMC43NTA1ODgsIDEuMjQ1MDEsIDEuNTI3NTciLCBcCi0gICAgICAgICAgIjAuMTk2MjUyLCAwLjIxMDQ3OCwgMC4zMzgxMjcsIDAuNTUwMjgyLCAwLjc2MjI1OCwgMS4yNTY2NywgMS41MzkyNCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNTYyNTksIDAuMTg0NzYsIDAuNDQ0NTc2LCAwLjg3OTUyNywgMS4zMTM1NywgMi4zMjg4NywgMi45MDg3OSIsIFwKLSAgICAgICAgICAiMC4xNTYxNiwgMC4xODQ4NzcsIDAuNDQ0NzAyLCAwLjg3ODg4OSwgMS4zMTM4NSwgMi4zMzE2NSwgMi45MTE4NSIsIFwKLSAgICAgICAgICAiMC4xNTYxNDksIDAuMTg0OTA2LCAwLjQ0NDc0NywgMC44Nzk3MDQsIDEuMzEzOSwgMi4zMzExNiwgMi45MTE5NiIsIFwKLSAgICAgICAgICAiMC4xNTYyMjQsIDAuMTg0ODU3LCAwLjQ0NDQ5MywgMC44Nzg3NiwgMS4zMTM5LCAyLjMzMTIxLCAyLjkwODY4IiwgXAotICAgICAgICAgICIwLjE1NjMyOSwgMC4xODQ5MSwgMC40NDQwNTksIDAuODc5ODIyLCAxLjMxMzg2LCAyLjMyODgsIDIuOTA4ODIiLCBcCi0gICAgICAgICAgIjAuMTU2NzI5LCAwLjE4NTAzNSwgMC40NDQ2NzksIDAuODc5NzAxLCAxLjMxMzgsIDIuMzMwOTIsIDIuOTA4NzMiLCBcCi0gICAgICAgICAgIjAuMTU3MjE4LCAwLjE4NTM1NSwgMC40NDQ2OTksIDAuODc5NzUxLCAxLjMxMzgzLCAyLjMyODQ5LCAyLjkxMTQzIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEzMDgyMywgMC4xNDQ3NSwgMC4yNjk0NzcsIDAuNDc3MDQ0LCAwLjY4NDQ5MywgMS4xNjg1MiwgMS40NDUxIiwgXAotICAgICAgICAgICIwLjE0MDQ3NiwgMC4xNTQ0MDIsIDAuMjc5MTI5LCAwLjQ4NjY5NSwgMC42OTQxNywgMS4xNzgxOSwgMS40NTQ3NCIsIFwKLSAgICAgICAgICAiMC4xNTExLCAwLjE2NTAyOCwgMC4yODk3NjUsIDAuNDk3MzI5LCAwLjcwNDc5NSwgMS4xODg4MiwgMS40NjUzOSIsIFwKLSAgICAgICAgICAiMC4xNjA5NzgsIDAuMTc0OSwgMC4yOTk2NTQsIDAuNTA3MjE3LCAwLjcxNDY4MSwgMS4xOTg3MiwgMS40NzUyNiIsIFwKLSAgICAgICAgICAiMC4xNzAyOTgsIDAuMTg0MjE1LCAwLjMwODk4OSwgMC41MTY1NDgsIDAuNzI0MDA2LCAxLjIwODAzLCAxLjQ4NDYyIiwgXAotICAgICAgICAgICIwLjE4MzY3OCwgMC4xOTc2MDMsIDAuMzIyMzcyLCAwLjUyOTk2OCwgMC43MzczOTgsIDEuMjIxNDIsIDEuNDk3OTkiLCBcCi0gICAgICAgICAgIjAuMTk0MzAyLCAwLjIwODIxLCAwLjMzMjk4OCwgMC41NDA1OTcsIDAuNzQ4MDMxLCAxLjIzMjA0LCAxLjUwODcyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE0OTQyNCwgMC4xNzY2MzgsIDAuNDI0OTg1LCAwLjg0MTgzNSwgMS4yNTg1OCwgMi4yMzEzMiwgMi43ODU5IiwgXAotICAgICAgICAgICIwLjE0OTM4NywgMC4xNzY2MDIsIDAuNDI0NjE1LCAwLjg0MTg0OCwgMS4yNTY5NSwgMi4yMzE1NCwgMi43ODUzNyIsIFwKLSAgICAgICAgICAiMC4xNDkzOTMsIDAuMTc2NjAyLCAwLjQyNDk4OSwgMC44NDE3OTgsIDEuMjU3OTgsIDIuMjI3NTMsIDIuNzg1NjgiLCBcCi0gICAgICAgICAgIjAuMTQ5NDI0LCAwLjE3NjY1NCwgMC40MjUzNjQsIDAuODQxODY2LCAxLjI1ODI0LCAyLjIzMTY0LCAyLjc4NTY3IiwgXAotICAgICAgICAgICIwLjE0OTYxLCAwLjE3Njc0NCwgMC40MjQ2OTYsIDAuODQxODI1LCAxLjI1ODM1LCAyLjIzMDIzLCAyLjc4MzMxIiwgXAotICAgICAgICAgICIwLjE1MDA5NSwgMC4xNzczMSwgMC40MjU0MTEsIDAuODQxNjMxLCAxLjI1ODU3LCAyLjIzMTMxLCAyLjc4NzMyIiwgXAotICAgICAgICAgICIwLjE1MDcyOCwgMC4xNzc3MzcsIDAuNDI1NDY0LCAwLjg0MTMzMywgMS4yNTg2NSwgMi4yMzE0MywgMi43ODgxMSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTI3MTI5LCAwLjE0MTM3NSwgMC4yNjkwNDksIDAuNDgxMTI4LCAwLjY5MzEwMiwgMS4xODc1MiwgMS40NzAwNCIsIFwKLSAgICAgICAgICAiMC4xMzYwNTgsIDAuMTUwMzAzLCAwLjI3NzkyNSwgMC40OTAwNjQsIDAuNzAyMDM1LCAxLjE5NjQ5LCAxLjQ3ODkiLCBcCi0gICAgICAgICAgIjAuMTQ3ODg2LCAwLjE2MjEyLCAwLjI4OTc1NCwgMC41MDE5MjYsIDAuNzEzODc1LCAxLjIwODI5LCAxLjQ5MDc2IiwgXAotICAgICAgICAgICIwLjE1OTYyOCwgMC4xNzM4NjMsIDAuMzAxNTAxLCAwLjUxMzY4MiwgMC43MjU2MzMsIDEuMjIwMDUsIDEuNTAyNSIsIFwKLSAgICAgICAgICAiMC4xNzA4OTQsIDAuMTg1MTQsIDAuMzEyNzczLCAwLjUyNDkyNywgMC43MzY5MDcsIDEuMjMxMzIsIDEuNTEzNzgiLCBcCi0gICAgICAgICAgIjAuMTg3MDQxLCAwLjIwMTI3NiwgMC4zMjg5MjEsIDAuNTQxMDU1LCAwLjc1MzA1OSwgMS4yNDc0NSwgMS41Mjk5MyIsIFwKLSAgICAgICAgICAiMC4xOTk1MjMsIDAuMjEzNzY1LCAwLjM0MTQyNSwgMC41NTM1NzUsIDAuNzY1NTM2LCAxLjI1OTk1LCAxLjU0MjQxIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE1NjIzNSwgMC4xODQ5MTksIDAuNDQ0NjQzLCAwLjg3OTgyOSwgMS4zMTM5NiwgMi4zMjg5NiwgMi45MTIxMSIsIFwKLSAgICAgICAgICAiMC4xNTYxNjgsIDAuMTg0NzY5LCAwLjQ0NDUyNiwgMC44Nzk4MTMsIDEuMzEzODYsIDIuMzMxNTUsIDIuOTExNTIiLCBcCi0gICAgICAgICAgIjAuMTU2MjI1LCAwLjE4NDg3NiwgMC40NDQ2NzgsIDAuODc5ODIxLCAxLjMxMzkyLCAyLjMyODg1LCAyLjkwODgzIiwgXAotICAgICAgICAgICIwLjE1NjIyMywgMC4xODQ4NjIsIDAuNDQ0NjE5LCAwLjg3OTgzMiwgMS4zMTM4NywgMi4zMzExLCAyLjkxMjMzIiwgXAotICAgICAgICAgICIwLjE1NjMzLCAwLjE4NDgzNSwgMC40NDQ0MTEsIDAuODc5NjcxLCAxLjMxMzg2LCAyLjMzMDksIDIuOTExNDQiLCBcCi0gICAgICAgICAgIjAuMTU2ODE2LCAwLjE4NTEzOSwgMC40NDQ2ODYsIDAuODc5NjY1LCAxLjMxNTAzLCAyLjMzMDkzLCAyLjkxMDQzIiwgXAotICAgICAgICAgICIwLjE1NzMyMSwgMC4xODU2MDMsIDAuNDQ0ODA3LCAwLjg3OTY5MSwgMS4zMTM3NiwgMi4zMjg3MywgMi45MDg1MiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMjcwNDcsIDAuMTQwOTM1LCAwLjI2NTU1MiwgMC40NzMwMzQsIDAuNjgwNDk1LCAxLjE2NDYsIDEuNDQwOTYiLCBcCi0gICAgICAgICAgIjAuMTM2NTM2LCAwLjE1MDQzNCwgMC4yNzUwNDksIDAuNDgyNTIzLCAwLjY4OTk1LCAxLjE3MzkyLCAxLjQ1MDQ3IiwgXAotICAgICAgICAgICIwLjE0NzA4NywgMC4xNjA5ODIsIDAuMjg1NTk2LCAwLjQ5MzA5LCAwLjcwMDUxMSwgMS4xODQ0OCwgMS40NjEwMSIsIFwKLSAgICAgICAgICAiMC4xNTY4NjcsIDAuMTcwNzYsIDAuMjk1NDA4LCAwLjUwMjg3NiwgMC43MTAzLCAxLjE5NDM1LCAxLjQ3MDgxIiwgXAotICAgICAgICAgICIwLjE2NTg5LCAwLjE3OTc4LCAwLjMwNDQxMSwgMC41MTE5MTEsIDAuNzE5MzMzLCAxLjIwMzMxLCAxLjQ3OTkiLCBcCi0gICAgICAgICAgIjAuMTc5MDQ5LCAwLjE5Mjk2NCwgMC4zMTc1ODIsIDAuNTI1MTEyLCAwLjczMjUwNywgMS4yMTY0OCwgMS40OTMwNCIsIFwKLSAgICAgICAgICAiMC4xODkwODYsIDAuMjAzMDIsIDAuMzI3NjM3LCAwLjUzNTE2NywgMC43NDI1NTUsIDEuMjI2NTQsIDEuNTAzMDciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTQ5MDE5LCAwLjE3NjIyNiwgMC40MjQzMzUsIDAuODQxNTc3LCAxLjI1ODU1LCAyLjIyODk3LCAyLjc4MzkyIiwgXAotICAgICAgICAgICIwLjE0OTAwNCwgMC4xNzYyMjEsIDAuNDI0NDI5LCAwLjg0MTUzNSwgMS4yNTczNSwgMi4yMzEzNCwgMi43ODI3MSIsIFwKLSAgICAgICAgICAiMC4xNDkwMTYsIDAuMTc2MjI5LCAwLjQyNDk4MywgMC44NDE2MDEsIDEuMjU3MDQsIDIuMjI3MzUsIDIuNzg1NjUiLCBcCi0gICAgICAgICAgIjAuMTQ5MDYzLCAwLjE3NjI2NSwgMC40MjUwNDMsIDAuODQxNTc5LCAxLjI1NzEyLCAyLjIzMTc3LCAyLjc4NDAyIiwgXAotICAgICAgICAgICIwLjE0OTI1OCwgMC4xNzY2MTIsIDAuNDI1MDE0LCAwLjg0MTYxOSwgMS4yNTYyMSwgMi4yMjc1OSwgMi43ODc2MSIsIFwKLSAgICAgICAgICAiMC4xNDk4NTMsIDAuMTc2OTI4LCAwLjQyNTA5NSwgMC44NDE1MDIsIDEuMjU3ODQsIDIuMjMxMDcsIDIuNzg3MDciLCBcCi0gICAgICAgICAgIjAuMTUwNTMxLCAwLjE3NzUzLCAwLjQyNTMwNCwgMC44NDE0NzIsIDEuMjU4MDksIDIuMjMxMzUsIDIuNzgzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTYxMTQsIDAuMTMwMjQ0LCAwLjI1NzM0MSwgMC40NjkyNiwgMC42ODEzMTMsIDEuMTc1NDIsIDEuNDU4NzciLCBcCi0gICAgICAgICAgIjAuMTI0ODgsIDAuMTM5MDA2LCAwLjI2NjE0LCAwLjQ3Nzk5OCwgMC42OTAyMTMsIDEuMTg1NTUsIDEuNDY2ODEiLCBcCi0gICAgICAgICAgIjAuMTM1MzYsIDAuMTQ5NDksIDAuMjc2NTk1LCAwLjQ4ODU4NywgMC43MDA0OTEsIDEuMTk0ODIsIDEuNDc4MTQiLCBcCi0gICAgICAgICAgIjAuMTQ1MTg0LCAwLjE1OTMxNywgMC4yODY0NDUsIDAuNDk4MzI3LCAwLjcxMDY4NSwgMS4yMDUyNSwgMS40ODcxNSIsIFwKLSAgICAgICAgICAiMC4xNTQyMDIsIDAuMTY4MzI3LCAwLjI5NTQ1NiwgMC41MDczODMsIDAuNzE5MzM2LCAxLjIxMzY1LCAxLjQ5NjYiLCBcCi0gICAgICAgICAgIjAuMTY2OTc5LCAwLjE4MTExNSwgMC4zMDgyMjgsIDAuNTIwMjYzLCAwLjczMjMzNiwgMS4yMjY2MywgMS41MTAzNSIsIFwKLSAgICAgICAgICAiMC4xNzY5NjgsIDAuMTkxMTQ5LCAwLjMxODI5NCwgMC41MzAxMTYsIDAuNzQyNTcyLCAxLjIzNjQ4LCAxLjUxODkiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTU0NjM0LCAwLjE4MzQ1OSwgMC40NDM0ODEsIDAuODc4NjE4LCAxLjMxMjI3LCAyLjMzMTYsIDIuOTA4NjYiLCBcCi0gICAgICAgICAgIjAuMTU0ODAzLCAwLjE4MzQ1NSwgMC40NDM0MjksIDAuODc5MTAzLCAxLjMxMjMxLCAyLjMzMTQsIDIuOTEyNSIsIFwKLSAgICAgICAgICAiMC4xNTQ4MTUsIDAuMTgzMzMsIDAuNDQzNDI0LCAwLjg3NzQzMSwgMS4zMTQyNCwgMi4zMzA3NCwgMi45MDY3NCIsIFwKLSAgICAgICAgICAiMC4xNTQ5ODksIDAuMTgzNTYzLCAwLjQ0MzM3NywgMC44Nzg5MzMsIDEuMzE0MTEsIDIuMzI2OTgsIDIuOTE5MTkiLCBcCi0gICAgICAgICAgIjAuMTU1MjIxLCAwLjE4MzYxOCwgMC40NDMwOTgsIDAuODc3ODAyLCAxLjMxMjE4LCAyLjMzMDQ1LCAyLjkxMTMiLCBcCi0gICAgICAgICAgIjAuMTU1ODg4LCAwLjE4NDE4MSwgMC40NDM0NTUsIDAuODc3OTEyLCAxLjMxMjI0LCAyLjMyNjkxLCAyLjkxOTA0IiwgXAotICAgICAgICAgICIwLjE1NjM5NCwgMC4xODQ2NzksIDAuNDQzNzg2LCAwLjg3ODkwMSwgMS4zMTI5OSwgMi4zMjYxMywgMi45MTAyOSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTk1MzQsIDAuMTMzNDU5LCAwLjI1ODE4NSwgMC40NjU3NDksIDAuNjczMjE5LCAxLjE1NzMsIDEuNDMzNzkiLCBcCi0gICAgICAgICAgIjAuMTI4MzI3LCAwLjE0MjI1NSwgMC4yNjY5OTMsIDAuNDc0NTY4LCAwLjY4MjAyMywgMS4xNjYwNSwgMS40NDI2MSIsIFwKLSAgICAgICAgICAiMC4xMzk3OTIsIDAuMTUzNzEsIDAuMjc4NDczLCAwLjQ4NjAzOSwgMC42OTM1NTUsIDEuMTc3NTMsIDEuNDU0MDkiLCBcCi0gICAgICAgICAgIjAuMTUwNzc5LCAwLjE2NDcwOSwgMC4yODk0NzIsIDAuNDk3MDQyLCAwLjcwNDUwOCwgMS4xODg1MywgMS40NjUxMSIsIFwKLSAgICAgICAgICAiMC4xNjA2NTcsIDAuMTc0NTgzLCAwLjI5OTM1NSwgMC41MDY5NCwgMC43MTQzOSwgMS4xOTg0NiwgMS40NzQ5OCIsIFwKLSAgICAgICAgICAiMC4xNzQwNjIsIDAuMTg4MDA1LCAwLjMxMjgzLCAwLjUyMDQwNCwgMC43Mjc4MzIsIDEuMjExODUsIDEuNDg4NDgiLCBcCi0gICAgICAgICAgIjAuMTg0NTIzLCAwLjE5ODM5NCwgMC4zMjMxNzYsIDAuNTMwNzMyLCAwLjczODI1LCAxLjIyMjI0LCAxLjQ5ODc4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE0OTQxMSwgMC4xNzY2MjksIDAuNDI0OTk3LCAwLjg0MTg1MiwgMS4yNTcwMSwgMi4yMzE5NywgMi43ODUwOSIsIFwKLSAgICAgICAgICAiMC4xNDkzOTYsIDAuMTc2NjAzLCAwLjQyNTAwMywgMC44NDE2MDUsIDEuMjU4MDcsIDIuMjMwNzcsIDIuNzgyODciLCBcCi0gICAgICAgICAgIjAuMTQ5NDA1LCAwLjE3NjgxMywgMC40MjQ2ODMsIDAuODQxODM2LCAxLjI1NzQzLCAyLjIzMTU4LCAyLjc4Njc1IiwgXAotICAgICAgICAgICIwLjE0OTQ3MiwgMC4xNzY2NjIsIDAuNDI0OTk2LCAwLjg0MTgyNCwgMS4yNTg2LCAyLjIzMDMzLCAyLjc4NzQ2IiwgXAotICAgICAgICAgICIwLjE0OTgwNiwgMC4xNzY5NjcsIDAuNDI0NjM3LCAwLjg0MTc3NywgMS4yNTg1NSwgMi4yMzE2OCwgMi43ODYxIiwgXAotICAgICAgICAgICIwLjE1MDI0NiwgMC4xNzczNjMsIDAuNDI1NDMzLCAwLjg0MTI4NSwgMS4yNTg2MiwgMi4yMzA5MSwgMi43ODc3MiIsIFwKLSAgICAgICAgICAiMC4xNTA2ODEsIDAuMTc3ODAxLCAwLjQyNTA3MSwgMC44NDE3NzIsIDEuMjU4NTYsIDIuMjMxMSwgMi43ODcyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTEzNjgyLCAwLjEyNzgxNSwgMC4yNTQ5OTEsIDAuNDY2ODk1LCAwLjY3ODg2OSwgMS4xNzMzLCAxLjQ1NzA5IiwgXAotICAgICAgICAgICIwLjEyMjczOCwgMC4xMzY4NjksIDAuMjYzOTg3LCAwLjQ3NjEyMywgMC42ODc4NywgMS4xODIyNCwgMS40NjU2OSIsIFwKLSAgICAgICAgICAiMC4xMzQ0MTYsIDAuMTQ4NTU0LCAwLjI3NTY5NSwgMC40ODc2MDgsIDAuNjk5NzA0LCAxLjE5NDA2LCAxLjQ3NjczIiwgXAotICAgICAgICAgICIwLjE0NTI0NywgMC4xNTkzODMsIDAuMjg2NTA5LCAwLjQ5ODQxNiwgMC43MTA0NTksIDEuMjA0NzIsIDEuNDg3NTQiLCBcCi0gICAgICAgICAgIjAuMTU0OTc0LCAwLjE2OTExNCwgMC4yOTYyMzUsIDAuNTA4MiwgMC43MjAyNzQsIDEuMjE0NTYsIDEuNDk4NDUiLCBcCi0gICAgICAgICAgIjAuMTY4ODg1LCAwLjE4MzAxNCwgMC4zMTAxNjcsIDAuNTIyMjUsIDAuNzM0Mjg0LCAxLjIyODQ5LCAxLjUxMjAyIiwgXAotICAgICAgICAgICIwLjE3OTM2NywgMC4xOTM0OTQsIDAuMzIwNjU0LCAwLjUzMjUxMywgMC43NDQzODYsIDEuMjM4OTMsIDEuNTIxNCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNTQ4MTMsIDAuMTgzNDUxLCAwLjQ0MzQxNSwgMC44Nzc1NjUsIDEuMzEyMzEsIDIuMzI4NTksIDIuOTEwOSIsIFwKLSAgICAgICAgICAiMC4xNTQ3OTYsIDAuMTgzNDQyLCAwLjQ0MzQ3NSwgMC44Nzc4MjksIDEuMzExOTQsIDIuMzI2MzMsIDIuOTA4NDYiLCBcCi0gICAgICAgICAgIjAuMTU0Nzk5LCAwLjE4MzQ2OSwgMC40NDM0MTIsIDAuODc3NDMzLCAxLjMxMjE5LCAyLjMyNjg5LCAyLjkwODc0IiwgXAotICAgICAgICAgICIwLjE1NTA0NywgMC4xODM2MTMsIDAuNDQzNDg0LCAwLjg3ODkzMywgMS4zMTQxLCAyLjMzMDU0LCAyLjkwODE0IiwgXAotICAgICAgICAgICIwLjE1NTQ1MiwgMC4xODM4MDMsIDAuNDQzNDE3LCAwLjg3ODU4NywgMS4zMTIxOCwgMi4zMjgsIDIuOTEwNTciLCBcCi0gICAgICAgICAgIjAuMTU2MjMxLCAwLjE4NDM5NCwgMC40NDM2NjYsIDAuODc3MzcxLCAxLjMxMjI2LCAyLjMyOTc3LCAyLjkwNzg3IiwgXAotICAgICAgICAgICIwLjE1NjkzNSwgMC4xODUwMTMsIDAuNDQzODg2LCAwLjg3ODk0MSwgMS4zMTM5NiwgMi4zMjk5NiwgMi45MDU1OCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTU4MDUsIDAuMTI5Njk2LCAwLjI1NDMxMiwgMC40NjE3OTYsIDAuNjY5MjI1LCAxLjE1MzIsIDEuNDI5NzIiLCBcCi0gICAgICAgICAgIjAuMTI0NjIsIDAuMTM4NTEzLCAwLjI2MzE0NSwgMC40NzA2MywgMC42NzgwNTMsIDEuMTYyMDMsIDEuNDM4NTkiLCBcCi0gICAgICAgICAgIjAuMTM1ODgyLCAwLjE0OTc4LCAwLjI3NDQ1OSwgMC40ODE5MTcsIDAuNjg5MzQyLCAxLjE3MzMxLCAxLjQ0OTk2IiwgXAotICAgICAgICAgICIwLjE0NjQyMiwgMC4xNjAzMTYsIDAuMjg1MDA1LCAwLjQ5MjQ3NiwgMC42OTk5MDQsIDEuMTgzODgsIDEuNDYwNCIsIFwKLSAgICAgICAgICAiMC4xNTYwOTQsIDAuMTY5OTg3LCAwLjI5NDY0MywgMC41MDIxNDgsIDAuNzA5NjIyLCAxLjE5MzY5LCAxLjQ3MDExIiwgXAotICAgICAgICAgICIwLjE2ODg4OCwgMC4xODI4MDYsIDAuMzA3NDcxLCAwLjUxNDk3OCwgMC43MjIzODksIDEuMjA2NCwgMS40ODI5MiIsIFwKLSAgICAgICAgICAiMC4xNzg3NjIsIDAuMTkyNzYsIDAuMzE3Mjk4LCAwLjUyNDg1OCwgMC43MzIyNTYsIDEuMjE2MjQsIDEuNDkyNzciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTQ5MDU3LCAwLjE3NjI3NywgMC40MjQ0MDUsIDAuODQxNTIyLCAxLjI1NjIzLCAyLjIyOTAzLCAyLjc4Njk2IiwgXAotICAgICAgICAgICIwLjE0OTA0OSwgMC4xNzYzNzgsIDAuNDI0Mjk3LCAwLjg0MTYwNiwgMS4yNTYzMiwgMi4yMjc3MiwgMi43ODczOSIsIFwKLSAgICAgICAgICAiMC4xNDkwNTQsIDAuMTc2Mjg5LCAwLjQyNDcyOSwgMC44NDE2MTcsIDEuMjU2MTUsIDIuMjMxOTUsIDIuNzg3ODciLCBcCi0gICAgICAgICAgIjAuMTQ5MTY3LCAwLjE3NjQxMiwgMC40MjUwNjUsIDAuODQxNTkxLCAxLjI1ODIxLCAyLjIyNzY0LCAyLjc4NzA2IiwgXAotICAgICAgICAgICIwLjE0OTQ4NCwgMC4xNzY3MjIsIDAuNDI0NzU5LCAwLjg0MTU5MywgMS4yNTU4LCAyLjIzMTYyLCAyLjc4MjcxIiwgXAotICAgICAgICAgICIwLjE1MDA5MiwgMC4xNzcwMTYsIDAuNDI1NDIsIDAuODQxNTU5LCAxLjI1ODQyLCAyLjIzMTQ5LCAyLjc4Njk1IiwgXAotICAgICAgICAgICIwLjE1MDQ3MSwgMC4xNzc2ODcsIDAuNDI1NDMxLCAwLjg0MTQ5MywgMS4yNTg0NSwgMi4yMzE5NSwgMi43ODI2NSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDEzNjQsIDAuMDAxMzY2LCAwLjAwMTM3MSwgMC4wMDEzNzQsIDAuMDAxMzc0LCAwLjAwMTM3NSwgMC4wMDEzNzUiLCBcCi0gICAgICAgICAgIjAuMDAxMzQzLCAwLjAwMTM0NCwgMC4wMDEzNSwgMC4wMDEzNTIsIDAuMDAxMzUzLCAwLjAwMTM1MywgMC4wMDEzNTMiLCBcCi0gICAgICAgICAgIjAuMDAxMzI5LCAwLjAwMTMzMSwgMC4wMDEzMzcsIDAuMDAxMzQsIDAuMDAxMzQsIDAuMDAxMzQxLCAwLjAwMTM0MSIsIFwKLSAgICAgICAgICAiMC4wMDEzMjIsIDAuMDAxMzI0LCAwLjAwMTMzMSwgMC4wMDEzMzQsIDAuMDAxMzM1LCAwLjAwMTMzNSwgMC4wMDEzMzYiLCBcCi0gICAgICAgICAgIjAuMDAxMzE4LCAwLjAwMTMyLCAwLjAwMTMyOCwgMC4wMDEzMzEsIDAuMDAxMzMyLCAwLjAwMTMzMywgMC4wMDEzMzQiLCBcCi0gICAgICAgICAgIjAuMDAxMzE2LCAwLjAwMTMxOSwgMC4wMDEzMjgsIDAuMDAxMzMyLCAwLjAwMTMzMywgMC4wMDEzMzQsIDAuMDAxMzM0IiwgXAotICAgICAgICAgICIwLjAwMTMyMywgMC4wMDEzMjUsIDAuMDAxMzMyLCAwLjAwMTMzNiwgMC4wMDEzMzcsIDAuMDAxMzM4LCAwLjAwMTMzOCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzM1NSwgMC4wMDMzNTcsIDAuMDAzMzYzLCAwLjAwMzM2NSwgMC4wMDMzNjYsIDAuMDAzMzY2LCAwLjAwMzM2NyIsIFwKLSAgICAgICAgICAiMC4wMDMzNDQsIDAuMDAzMzQ2LCAwLjAwMzM1MiwgMC4wMDMzNTQsIDAuMDAzMzU1LCAwLjAwMzM1NSwgMC4wMDMzNTYiLCBcCi0gICAgICAgICAgIjAuMDAzMzM2LCAwLjAwMzMzOCwgMC4wMDMzNDUsIDAuMDAzMzQ3LCAwLjAwMzM0OCwgMC4wMDMzNDksIDAuMDAzMzQ5IiwgXAotICAgICAgICAgICIwLjAwMzMzMiwgMC4wMDMzMzQsIDAuMDAzMzQyLCAwLjAwMzM0NSwgMC4wMDMzNDYsIDAuMDAzMzQ3LCAwLjAwMzM0NyIsIFwKLSAgICAgICAgICAiMC4wMDMzMywgMC4wMDMzMzIsIDAuMDAzMzQsIDAuMDAzMzQzLCAwLjAwMzM0NCwgMC4wMDMzNDUsIDAuMDAzMzQ1IiwgXAotICAgICAgICAgICIwLjAwMzMyNiwgMC4wMDMzMjksIDAuMDAzMzM3LCAwLjAwMzM0LCAwLjAwMzM0MSwgMC4wMDMzNDMsIDAuMDAzMzQzIiwgXAotICAgICAgICAgICIwLjAwMzMyNSwgMC4wMDMzMjcsIDAuMDAzMzM3LCAwLjAwMzM0MSwgMC4wMDMzNDIsIDAuMDAzMzQzLCAwLjAwMzM0MyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkExIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDEzNjQsIDAuMDAxMzY1LCAwLjAwMTM3LCAwLjAwMTM3MywgMC4wMDEzNzMsIDAuMDAxMzc0LCAwLjAwMTM3MyIsIFwKLSAgICAgICAgICAiMC4wMDEzMzksIDAuMDAxMzQsIDAuMDAxMzQ2LCAwLjAwMTM0OSwgMC4wMDEzNDksIDAuMDAxMzUsIDAuMDAxMzUxIiwgXAotICAgICAgICAgICIwLjAwMTMyOCwgMC4wMDEzMywgMC4wMDEzMzcsIDAuMDAxMzM5LCAwLjAwMTM0LCAwLjAwMTM0MSwgMC4wMDEzNDIiLCBcCi0gICAgICAgICAgIjAuMDAxMzI4LCAwLjAwMTMzLCAwLjAwMTMzOCwgMC4wMDEzNDEsIDAuMDAxMzQzLCAwLjAwMTM0NCwgMC4wMDEzNDQiLCBcCi0gICAgICAgICAgIjAuMDAxMzM0LCAwLjAwMTMzNiwgMC4wMDEzNDQsIDAuMDAxMzQ4LCAwLjAwMTM1LCAwLjAwMTM1MSwgMC4wMDEzNTEiLCBcCi0gICAgICAgICAgIjAuMDAxMzUxLCAwLjAwMTM1MywgMC4wMDEzNjEsIDAuMDAxMzY1LCAwLjAwMTM2NywgMC4wMDEzNjgsIDAuMDAxMzY4IiwgXAotICAgICAgICAgICIwLjAwMTM2NiwgMC4wMDEzNjgsIDAuMDAxMzc4LCAwLjAwMTM4MiwgMC4wMDEzODQsIDAuMDAxMzg2LCAwLjAwMTM4NyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzA5NSwgMC4wMDMwOTYsIDAuMDAzMTAxLCAwLjAwMzEwMywgMC4wMDMxMDQsIDAuMDAzMTA0LCAwLjAwMzEwNSIsIFwKLSAgICAgICAgICAiMC4wMDMwNzcsIDAuMDAzMDc4LCAwLjAwMzA4MywgMC4wMDMwODUsIDAuMDAzMDg2LCAwLjAwMzA4NiwgMC4wMDMwODciLCBcCi0gICAgICAgICAgIjAuMDAzMDYzLCAwLjAwMzA2NSwgMC4wMDMwNzEsIDAuMDAzMDczLCAwLjAwMzA3NCwgMC4wMDMwNzUsIDAuMDAzMDc1IiwgXAotICAgICAgICAgICIwLjAwMzA1NSwgMC4wMDMwNTcsIDAuMDAzMDY0LCAwLjAwMzA2NywgMC4wMDMwNjgsIDAuMDAzMDY5LCAwLjAwMzA2OSIsIFwKLSAgICAgICAgICAiMC4wMDMwNTMsIDAuMDAzMDU1LCAwLjAwMzA2MiwgMC4wMDMwNjUsIDAuMDAzMDY2LCAwLjAwMzA2NywgMC4wMDMwNjciLCBcCi0gICAgICAgICAgIjAuMDAzMDQ4LCAwLjAwMzA1LCAwLjAwMzA1OSwgMC4wMDMwNjIsIDAuMDAzMDYzLCAwLjAwMzA2NCwgMC4wMDMwNjQiLCBcCi0gICAgICAgICAgIjAuMDAzMDQ1LCAwLjAwMzA0OSwgMC4wMDMwNTgsIDAuMDAzMDYxLCAwLjAwMzA2MywgMC4wMDMwNjQsIDAuMDAzMDY0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDkyMSwgMC4wMDA5MjIsIDAuMDAwOTIzLCAwLjAwMDkyMSwgMC4wMDA5MjEsIDAuMDAwOTIxLCAwLjAwMDkyMiIsIFwKLSAgICAgICAgICAiMC4wMDA4OTYsIDAuMDAwODk3LCAwLjAwMDg5OCwgMC4wMDA4OTgsIDAuMDAwODk4LCAwLjAwMDg5OCwgMC4wMDA4OTgiLCBcCi0gICAgICAgICAgIjAuMDAwODgsIDAuMDAwODgxLCAwLjAwMDg4MiwgMC4wMDA4ODMsIDAuMDAwODgzLCAwLjAwMDg4MywgMC4wMDA4ODMiLCBcCi0gICAgICAgICAgIjAuMDAwODczLCAwLjAwMDg3NCwgMC4wMDA4NzYsIDAuMDAwODc3LCAwLjAwMDg3NywgMC4wMDA4NzcsIDAuMDAwODc3IiwgXAotICAgICAgICAgICIwLjAwMDg3MiwgMC4wMDA4NzMsIDAuMDAwODc1LCAwLjAwMDg3NiwgMC4wMDA4NzYsIDAuMDAwODc2LCAwLjAwMDg3NiIsIFwKLSAgICAgICAgICAiMC4wMDA4NzQsIDAuMDAwODc1LCAwLjAwMDg3OCwgMC4wMDA4NzksIDAuMDAwODgsIDAuMDAwODgsIDAuMDAwODgiLCBcCi0gICAgICAgICAgIjAuMDAwODgyLCAwLjAwMDg4MywgMC4wMDA4ODYsIDAuMDAwODg3LCAwLjAwMDg4NywgMC4wMDA4ODcsIDAuMDAwODg3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyNTksIDAuMDAyNTkxLCAwLjAwMjU5NywgMC4wMDI1OTksIDAuMDAyNiwgMC4wMDI2MDEsIDAuMDAyNjAxIiwgXAotICAgICAgICAgICIwLjAwMjU3MiwgMC4wMDI1NzQsIDAuMDAyNTgxLCAwLjAwMjU4MywgMC4wMDI1ODQsIDAuMDAyNTg1LCAwLjAwMjU4NSIsIFwKLSAgICAgICAgICAiMC4wMDI1NjgsIDAuMDAyNTcsIDAuMDAyNTc4LCAwLjAwMjU4MSwgMC4wMDI1ODIsIDAuMDAyNTgzLCAwLjAwMjU4NCIsIFwKLSAgICAgICAgICAiMC4wMDI1NjksIDAuMDAyNTcyLCAwLjAwMjU4MSwgMC4wMDI1ODUsIDAuMDAyNTg2LCAwLjAwMjU4OCwgMC4wMDI1ODgiLCBcCi0gICAgICAgICAgIjAuMDAyNTc1LCAwLjAwMjU3NiwgMC4wMDI1ODgsIDAuMDAyNTkyLCAwLjAwMjU5NCwgMC4wMDI1OTUsIDAuMDAyNTk1IiwgXAotICAgICAgICAgICIwLjAwMjU5MSwgMC4wMDI1OTQsIDAuMDAyNjEyLCAwLjAwMjYxLCAwLjAwMjYxMiwgMC4wMDI2MTQsIDAuMDAyNjE1IiwgXAotICAgICAgICAgICIwLjAwMjYwOCwgMC4wMDI2MTEsIDAuMDAyNjIyLCAwLjAwMjYyOCwgMC4wMDI2MywgMC4wMDI2MzIsIDAuMDAyNjMzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDkyMiwgMC4wMDA5MjMsIDAuMDAwOTI1LCAwLjAwMDkyNSwgMC4wMDA5MjUsIDAuMDAwOTI2LCAwLjAwMDkyNiIsIFwKLSAgICAgICAgICAiMC4wMDA4OTgsIDAuMDAwODk5LCAwLjAwMDkwMiwgMC4wMDA5MDIsIDAuMDAwOTAzLCAwLjAwMDkwMywgMC4wMDA5MDMiLCBcCi0gICAgICAgICAgIjAuMDAwODg5LCAwLjAwMDg4OSwgMC4wMDA4OTMsIDAuMDAwODk0LCAwLjAwMDg5NCwgMC4wMDA4OTQsIDAuMDAwODk0IiwgXAotICAgICAgICAgICIwLjAwMDg5MywgMC4wMDA4OTUsIDAuMDAwODk5LCAwLjAwMDksIDAuMDAwOTAxLCAwLjAwMDkwMSwgMC4wMDA5MDEiLCBcCi0gICAgICAgICAgIjAuMDAwOTA1LCAwLjAwMDkwNiwgMC4wMDA5MTEsIDAuMDAwOTEzLCAwLjAwMDkxMywgMC4wMDA5MTQsIDAuMDAwOTE0IiwgXAotICAgICAgICAgICIwLjAwMDkxMywgMC4wMDA5MTQsIDAuMDAwOTE4LCAwLjAwMDkyLCAwLjAwMDkyMSwgMC4wMDA5MjEsIDAuMDAwOTIyIiwgXAotICAgICAgICAgICIwLjAwMDkzMywgMC4wMDA5MzQsIDAuMDAwOTM5LCAwLjAwMDk0MSwgMC4wMDA5NDIsIDAuMDAwOTQyLCAwLjAwMDk0MiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjMzNiwgMC4wMDIzMzgsIDAuMDAyMzQzLCAwLjAwMjM0NSwgMC4wMDIzNDUsIDAuMDAyMzQ2LCAwLjAwMjM0NiIsIFwKLSAgICAgICAgICAiMC4wMDIzMTQsIDAuMDAyMzE1LCAwLjAwMjMyMSwgMC4wMDIzMjMsIDAuMDAyMzI0LCAwLjAwMjMyNSwgMC4wMDIzMjUiLCBcCi0gICAgICAgICAgIjAuMDAyMzA0LCAwLjAwMjMwNiwgMC4wMDIzMTMsIDAuMDAyMzE2LCAwLjAwMjMxNywgMC4wMDIzMTgsIDAuMDAyMzE5IiwgXAotICAgICAgICAgICIwLjAwMjMwNSwgMC4wMDIzMDcsIDAuMDAyMzE2LCAwLjAwMjMyLCAwLjAwMjMyMSwgMC4wMDIzMjMsIDAuMDAyMzIzIiwgXAotICAgICAgICAgICIwLjAwMjMwNiwgMC4wMDIzMDgsIDAuMDAyMzE3LCAwLjAwMjMyMSwgMC4wMDIzMjMsIDAuMDAyMzI0LCAwLjAwMjMyNCIsIFwKLSAgICAgICAgICAiMC4wMDIzMTYsIDAuMDAyMzE4LCAwLjAwMjMyOSwgMC4wMDIzMzQsIDAuMDAyMzM2LCAwLjAwMjMzOCwgMC4wMDIzMzgiLCBcCi0gICAgICAgICAgIjAuMDAyMzI3LCAwLjAwMjMzMSwgMC4wMDIzNDQsIDAuMDAyMzQ5LCAwLjAwMjM1LCAwLjAwMjM1MywgMC4wMDIzNTMiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogQU9JMjExWDIgKgotICogLS0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKEFPSTIxMVgyKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMzE3ODI7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE3MTQzMjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE3MDYzMTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE3MTQzMjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA4MTgsIDAuMDAwODE4LCAwLjAwMDgxNywgMC4wMDA4MTcsIDAuMDAwODE3LCAwLjAwMDgxNywgMC4wMDA4MTciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA4NDMsIDAuMDAwODIzLCAwLjAwMDgxOCwgMC4wMDA4MjEsIDAuMDAwODIxLCAwLjAwMDgyMSwgMC4wMDA4MjEiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEExKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE2MDY2NjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE1OTM3NjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE2MDY2NjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA1MDEsIDAuMDAwNSwgMC4wMDA1LCAwLjAwMDUsIDAuMDAwNSwgMC4wMDA1LCAwLjAwMDUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA5MjgsIDAuMDAwOTI5LCAwLjAwMDkzMSwgMC4wMDA5MywgMC4wMDA5MjksIDAuMDAwOTI5LCAwLjAwMDkyOSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQjApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTU2NDM0OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTU1MjgyOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTU2NDM0OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDY3MywgMC4wMDA3MzYsIDAuMDAwNzUzLCAwLjAwMDc1OSwgMC4wMDA3NjcsIDAuMDAwNzc0LCAwLjAwMDc3NyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDkxLCAwLjAwMDkxMSwgMC4wMDA5MTEsIDAuMDAwOTExLCAwLjAwMDkxMSwgMC4wMDA5MTIsIDAuMDAwOTEyIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihDMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNTk5NTI7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNTk5NTI7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNTk5NTE7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMTczLCAwLjAwMDE3MywgMC4wMDAxNzQsIDAuMDAwMTc0LCAwLjAwMDE3NCwgMC4wMDAxNzQsIDAuMDAwMTc0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNjU5LCAwLjAwMDY1OSwgMC4wMDA2NTksIDAuMDAwNjU5LCAwLjAwMDY1OSwgMC4wMDA2NTksIDAuMDAwNjU4Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMTg2NzA1OwotICAgIGZ1bmN0aW9uIDogIighKCgoQTAgQTEpK0IwKStDMCkpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk0MzUxLCAwLjM4ODYxMiwgMC42MjQyMjUsIDAuOTE4ODE3LCAxLjIxMzI1LCAxLjUwODEyLCAxLjgwMTY2IiwgXAotICAgICAgICAgICIwLjEwMzM5MiwgMC4zOTgwNiwgMC42MzM2NjcsIDAuOTI4MTAyLCAxLjIyMjQxLCAxLjUxNzQ3LCAxLjgxMDg5IiwgXAotICAgICAgICAgICIwLjExMjk4LCAwLjQwNzcyOCwgMC42NDMxMTYsIDAuOTM3NzEyLCAxLjIzMjM0LCAxLjUyNTc2LCAxLjgyMDQyIiwgXAotICAgICAgICAgICIwLjEyMTU3MiwgMC40MTY0MDgsIDAuNjUyMTE5LCAwLjk0NjUyMywgMS4yNDA2MywgMS41MzUyLCAxLjgyOTA1IiwgXAotICAgICAgICAgICIwLjEyOTc0NywgMC40MjQ1OTIsIDAuNjYwMDYyLCAwLjk1NTEwNywgMS4yNDg1NSwgMS41NDM4NywgMS44MzY4NSIsIFwKLSAgICAgICAgICAiMC4xNDIzNTYsIDAuNDM3MjU2LCAwLjY3MzA3NiwgMC45Njc1MjksIDEuMjYyMzQsIDEuNTU1NTksIDEuODUxNyIsIFwKLSAgICAgICAgICAiMC4xNTI1ODEsIDAuNDQ4MzA1LCAwLjY4Mzc4NiwgMC45NzgxNzUsIDEuMjcyNTcsIDEuNTY3MDMsIDEuODYxMzYiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTU1NDI2LCAwLjc0NjI3OCwgMS4yMTk0MywgMS44MTAwNiwgMi40MDEwNSwgMi45OTE4NCwgMy41ODI3NyIsIFwKLSAgICAgICAgICAiMC4xNTU0NzQsIDAuNzQ2NjA1LCAxLjIxOTU3LCAxLjgxMDE1LCAyLjQwMTU1LCAyLjk5MTgxLCAzLjU4Mjc2IiwgXAotICAgICAgICAgICIwLjE1NTU4MywgMC43NDcwNywgMS4yMTk0NCwgMS44MTA1LCAyLjQwMTIyLCAyLjk5MTMyLCAzLjU4Mjc2IiwgXAotICAgICAgICAgICIwLjE1NjU5OCwgMC43NDcxMDYsIDEuMjE5NTksIDEuODEwMTcsIDIuNDAxNTcsIDIuOTkyLCAzLjU4MjQ2IiwgXAotICAgICAgICAgICIwLjE1ODM1NiwgMC43NDY2MzYsIDEuMjE5NDksIDEuODExMTIsIDIuNDAxMTEsIDIuOTkxODksIDMuNTgyMDMiLCBcCi0gICAgICAgICAgIjAuMTYyMjE1LCAwLjc0Njc4LCAxLjIyMDE3LCAxLjgwOTk5LCAyLjQwMTk4LCAyLjk5MTMzLCAzLjU4MzEzIiwgXAotICAgICAgICAgICIwLjE2NjU2MiwgMC43NDc3MTgsIDEuMjE5NTYsIDEuODEwMzIsIDIuNDAwNjUsIDIuOTkyMzksIDMuNTgyNyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjQ5ODgsIDAuMjU3MzY3LCAwLjQwOTgzMiwgMC42MDAyOTEsIDAuNzkwODg3LCAwLjk4MTMyMywgMS4xNzExOSIsIFwKLSAgICAgICAgICAiMC4wNzM4MDQsIDAuMjY2MTc3LCAwLjQxODc3MiwgMC42MDkyMjYsIDAuNzk5NTQ4LCAwLjk4OTk3MSwgMS4xODAxMSIsIFwKLSAgICAgICAgICAiMC4wODQ3MzksIDAuMjc3MjcsIDAuNDI5ODYyLCAwLjYyMDIzMywgMC44MTA1OTEsIDEuMDAwOTEsIDEuMTkxOTciLCBcCi0gICAgICAgICAgIjAuMDk1ODAxLCAwLjI4ODM4LCAwLjQ0MTA0NywgMC42MzE0NjgsIDAuODIxNjkzLCAxLjAxMjEsIDEuMjAyMzEiLCBcCi0gICAgICAgICAgIjAuMTA2Njk3LCAwLjI5OTA5OCwgMC40NTIyMDcsIDAuNjQyNTE2LCAwLjgzMzAyMSwgMS4wMjMyNCwgMS4yMTQwNCIsIFwKLSAgICAgICAgICAiMC4xMjMxODYsIDAuMzE2OTE1LCAwLjQ2OTUzMywgMC42NjAxMjgsIDAuODUwMzQ1LCAxLjA0MTAzLCAxLjIzMTA5IiwgXAotICAgICAgICAgICIwLjEzNjYzNiwgMC4zMzE5NzIsIDAuNDg0OTU5LCAwLjY3NTQzMiwgMC44NjU4NzIsIDEuMDU2NjIsIDEuMjQ2ODgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTA3NDMyLCAwLjQ4NDA5MiwgMC43ODQ2MywgMS4xNjE2NCwgMS41MzgyMywgMS45MTM0OCwgMi4yODk2OSIsIFwKLSAgICAgICAgICAiMC4xMDczNCwgMC40ODM2MjcsIDAuNzg1MjY2LCAxLjE2MTY4LCAxLjUzNzM2LCAxLjkxNCwgMi4yODk3OSIsIFwKLSAgICAgICAgICAiMC4xMDg2NCwgMC40ODM3NzUsIDAuNzg0ODc4LCAxLjE2MTA2LCAxLjUzNzcsIDEuOTEzNTEsIDIuMjkwMjUiLCBcCi0gICAgICAgICAgIjAuMTEyMDI4LCAwLjQ4MzYzNiwgMC43ODQ4NTcsIDEuMTYxMTgsIDEuNTM2OTYsIDEuOTEzNTUsIDIuMjkwMzQiLCBcCi0gICAgICAgICAgIjAuMTE2MzU1LCAwLjQ4NDA3OCwgMC43ODQ4NSwgMS4xNjEzMiwgMS41Mzc3NiwgMS45MTM1LCAyLjI4OTcyIiwgXAotICAgICAgICAgICIwLjEyNDkzMiwgMC40ODU3MzgsIDAuNzg1MTgzLCAxLjE2MTE3LCAxLjUzNzU4LCAxLjkxMzYyLCAyLjI4OTg1IiwgXAotICAgICAgICAgICIwLjEzNDA5OCwgMC40ODgwNDksIDAuNzg1MzY0LCAxLjE2MTA4LCAxLjUzNjk5LCAxLjkxMzU5LCAyLjI4OTY0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkExIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTEyMTIsIDAuMzg5MDM2LCAwLjYyNzM2NSwgMC45MjQ3MjcsIDEuMjIzNDcsIDEuNTIwNDIsIDEuODE3NTYiLCBcCi0gICAgICAgICAgIjAuMTAwMjQzLCAwLjM5ODI2NSwgMC42MzY2MzYsIDAuOTM0MzIzLCAxLjIzMzAyLCAxLjUzMDAxLCAxLjgyNzQyIiwgXAotICAgICAgICAgICIwLjEwOTU2MSwgMC40MDc4MjYsIDAuNjQ2NTU0LCAwLjk0MzgxNywgMS4yNDE3NCwgMS41Mzk0OSwgMS44MzgyOSIsIFwKLSAgICAgICAgICAiMC4xMTgxNjUsIDAuNDE2NTUzLCAwLjY1NDcwNSwgMC45NTI4NDYsIDEuMjUwNjksIDEuNTQ4MjgsIDEuODQ1NzEiLCBcCi0gICAgICAgICAgIjAuMTI2MjkyLCAwLjQyNDgwNiwgMC42NjMyMTQsIDAuOTYxMzgsIDEuMjU4NSwgMS41NTY3LCAxLjg1NDA4IiwgXAotICAgICAgICAgICIwLjEzODc5MSwgMC40Mzc2MjUsIDAuNjc2MTczLCAwLjk3Mzc4OCwgMS4yNzIzMSwgMS41Njg4NCwgMS44NjgyNSIsIFwKLSAgICAgICAgICAiMC4xNDg4NTQsIDAuNDQ4Mjg1LCAwLjY4NjcxNywgMC45ODQ3MjksIDEuMjgyOTYsIDEuNTgwMDcsIDEuODc3NDEiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTUyMTQ2LCAwLjc1MDIzNywgMS4yMjgyNSwgMS44MjY1MSwgMi40MjM5MiwgMy4wMjg3LCAzLjYyNTI3IiwgXAotICAgICAgICAgICIwLjE1MjUxOCwgMC43NTAzNDcsIDEuMjMxMTEsIDEuODMwMjYsIDIuNDIzNzYsIDMuMDI4OTcsIDMuNjI3NzciLCBcCi0gICAgICAgICAgIjAuMTUyNTU5LCAwLjc1MTE1OCwgMS4yMjgyOCwgMS44MjY2NiwgMi40Mjk1NCwgMy4wMjg3MiwgMy42MTk2NSIsIFwKLSAgICAgICAgICAiMC4xNTMzNTEsIDAuNzUxMTU4LCAxLjIyOTMzLCAxLjgzMDQyLCAyLjQyMzc0LCAzLjAyODc2LCAzLjYyMDU4IiwgXAotICAgICAgICAgICIwLjE1NTE3MiwgMC43NTE2MTksIDEuMjI4NTEsIDEuODI1OTMsIDIuNDI0OTcsIDMuMDI4OTYsIDMuNjE5OTQiLCBcCi0gICAgICAgICAgIjAuMTU5MTI2LCAwLjc0OTg1NiwgMS4yMjgxNCwgMS44MzAzMSwgMi40MjM5MSwgMy4wMjY0OCwgMy42MTk1NyIsIFwKLSAgICAgICAgICAiMC4xNjM2MTUsIDAuNzUwOTY4LCAxLjIyODU3LCAxLjgzMDIsIDIuNDI5OTIsIDMuMDIyODYsIDMuNjIwODQiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDYyODUsIDAuMjU1MjMzLCAwLjQwNzc3OCwgMC41OTgwOTYsIDAuNzg4NDM1LCAwLjk3ODk2MywgMS4xNjk3MiIsIFwKLSAgICAgICAgICAiMC4wNzE3MjcsIDAuMjY0MjQzLCAwLjQxNjc3MywgMC42MDcyMzEsIDAuNzk3NjY5LCAwLjk4NzgwNCwgMS4xNzc5IiwgXAotICAgICAgICAgICIwLjA4MzYyMSwgMC4yNzU5NywgMC40Mjg1NDQsIDAuNjE4OTcyLCAwLjgwOTQ3OSwgMS4wMDAwOCwgMS4xOTAzNSIsIFwKLSAgICAgICAgICAiMC4wOTUyMzEsIDAuMjg3NTY2LCAwLjQ0MDEyNywgMC42MzA0OTQsIDAuODIwODkzLCAxLjAxMTYsIDEuMjAxNTkiLCBcCi0gICAgICAgICAgIjAuMTA3MzQ0LCAwLjI5ODk2LCAwLjQ1MTU0NywgMC42NDIwOCwgMC44MzIzNDYsIDEuMDIzLCAxLjIxMzA1IiwgXAotICAgICAgICAgICIwLjEyNjE0MSwgMC4zMTc3MTcsIDAuNDcwMjIzLCAwLjY2MDcxLCAwLjg1MTIzOCwgMS4wNDEyMSwgMS4yMzE1OCIsIFwKLSAgICAgICAgICAiMC4xNDA1NjMsIDAuMzM0MDU0LCAwLjQ4NjU3MSwgMC42NzcwNSwgMC44NjcyMDMsIDEuMDU3OTgsIDEuMjQ4MzIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTA3NDk3LCAwLjQ4NDA3NiwgMC43ODQ4NTIsIDEuMTYxNTIsIDEuNTM2OTksIDEuOTEzNTksIDIuMjkwNDkiLCBcCi0gICAgICAgICAgIjAuMTA3MTY0LCAwLjQ4Mzc4MywgMC43ODQ4MTksIDEuMTYxMTEsIDEuNTM3MzcsIDEuOTEzMTcsIDIuMjg5MDgiLCBcCi0gICAgICAgICAgIjAuMTA5NTQ5LCAwLjQ4NDAyMywgMC43ODQ2NDIsIDEuMTYwODYsIDEuNTM4MTQsIDEuOTEzNDIsIDIuMjkwMjIiLCBcCi0gICAgICAgICAgIjAuMTE0ODQyLCAwLjQ4Mzc3LCAwLjc4NDg4NywgMS4xNjA4OCwgMS41MzczNSwgMS45MTM0OCwgMi4yOTA4OSIsIFwKLSAgICAgICAgICAiMC4xMjEwMjQsIDAuNDgzNjkxLCAwLjc4NDg0NywgMS4xNjE3NSwgMS41Mzc0MywgMS45MTM0OCwgMi4yOTA5IiwgXAotICAgICAgICAgICIwLjEzMzI0NywgMC40ODYxMzksIDAuNzg0Nzk5LCAxLjE2MTY4LCAxLjUzNzE5LCAxLjkxMzQzLCAyLjI4OTg0IiwgXAotICAgICAgICAgICIwLjE0NTkwOCwgMC40OTA3MjYsIDAuNzg1NDM4LCAxLjE2MTE3LCAxLjUzNjkzLCAxLjkxMzQ4LCAyLjI5MDI2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODg0MDQsIDAuMzgyOTg0LCAwLjYyMDkxMiwgMC45MTgzOTMsIDEuMjE2MjMsIDEuNTEzMTEsIDEuODEyODQiLCBcCi0gICAgICAgICAgIjAuMDk2OTQ2LCAwLjM5MTg1LCAwLjYyOTAzOCwgMC45MjcyMzYsIDEuMjI0MzgsIDEuNTIzNDMsIDEuODIwMjciLCBcCi0gICAgICAgICAgIjAuMTA2ODk0LCAwLjQwMTg5MywgMC42MzkyNjMsIDAuOTM3NTU1LCAxLjIzNDQ5LCAxLjUzMjIyLCAxLjgzMDgyIiwgXAotICAgICAgICAgICIwLjExNjcyOCwgMC40MTE3MDIsIDAuNjQ5MTQ2LCAwLjk0Njg2OCwgMS4yNDQ5MSwgMS41NDI1MiwgMS44NDEyNiIsIFwKLSAgICAgICAgICAiMC4xMjY1MDgsIDAuNDIxNjU5LCAwLjY1OTI2OSwgMC45NTY4NDgsIDEuMjU1MTQsIDEuNTUyMjIsIDEuODUxNTEiLCBcCi0gICAgICAgICAgIjAuMTQyMjE4LCAwLjQzNjk4OCwgMC42NzQ2NzcsIDAuOTcyNTIyLCAxLjI3MDMxLCAxLjU2ODEsIDEuODY2NiIsIFwKLSAgICAgICAgICAiMC4xNTQ4NjYsIDAuNDUxMDczLCAwLjY4ODkwNiwgMC45ODY2MDksIDEuMjg0MjIsIDEuNTgxODUsIDEuODc5ODIiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTU1NDczLCAwLjc0OTk5NywgMS4yMjgyNSwgMS44MzA0MywgMi40MjY0NSwgMy4wMjY0MiwgMy42MTk5MiIsIFwKLSAgICAgICAgICAiMC4xNTU0NzEsIDAuNzUwMjYzLCAxLjIyODcyLCAxLjgyNzk5LCAyLjQyNDgyLCAzLjAyMTc2LCAzLjYyNzk5IiwgXAotICAgICAgICAgICIwLjE1NTkzNywgMC43NTE2MTMsIDEuMjMwMTksIDEuODI1NzgsIDIuNDI1MzIsIDMuMDI2NDUsIDMuNjE5NDkiLCBcCi0gICAgICAgICAgIjAuMTU4MTAzLCAwLjc1MDAxMSwgMS4yMzAxNSwgMS44MjY5MiwgMi40Mjk1NSwgMy4wMjI3NywgMy42MTk1MyIsIFwKLSAgICAgICAgICAiMC4xNjE1MDIsIDAuNzUxMTc1LCAxLjIzMTA1LCAxLjgyODk2LCAyLjQyNjQ3LCAzLjAyMzE1LCAzLjYxOTU4IiwgXAotICAgICAgICAgICIwLjE2ODgyOCwgMC43NDk5NjEsIDEuMjI4OTIsIDEuODI4OTcsIDIuNDI0NzksIDMuMDIzMDQsIDMuNjIzMjciLCBcCi0gICAgICAgICAgIjAuMTc2MzMsIDAuNzUyMjI2LCAxLjIzMDk2LCAxLjgyODk3LCAyLjQyNjIsIDMuMDI2MzksIDMuNjIwODIiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDMyMTA5LCAwLjEzNjA4LCAwLjIxODg2MiwgMC4zMjIzOTUsIDAuNDI1ODQ5LCAwLjUyOTM5NCwgMC42MzI4NTgiLCBcCi0gICAgICAgICAgIjAuMDQyMzU3LCAwLjE0NjE3NCwgMC4yMjkwNDIsIDAuMzMyNTUsIDAuNDM2MDkxLCAwLjUzOTU1MywgMC42NDMwNTMiLCBcCi0gICAgICAgICAgIjAuMDU1MjQyLCAwLjE1ODk1NywgMC4yNDE3MSwgMC4zNDUyNTYsIDAuNDQ3OTEsIDAuNTUxMzU1LCAwLjY1NDc3MSIsIFwKLSAgICAgICAgICAiMC4wNjc5ODIsIDAuMTcxNjE4LCAwLjI1NDUzNywgMC4zNTgwOTIsIDAuNDYxNjA4LCAwLjU2NTEsIDAuNjY4NjMyIiwgXAotICAgICAgICAgICIwLjA3ODc5MiwgMC4xODQzOTIsIDAuMjY3MzUyLCAwLjM3MDY5NiwgMC40NzQwNzQsIDAuNTc3NTYxLCAwLjY4MTAxNCIsIFwKLSAgICAgICAgICAiMC4wOTM5NjUsIDAuMjA1NjgxLCAwLjI4NzQ4NCwgMC4zOTEzNiwgMC40OTQ2NTgsIDAuNTk3OTYsIDAuNzAxNDQ1IiwgXAotICAgICAgICAgICIwLjEwNTYwNCwgMC4yMjM2MTQsIDAuMzA1MzgyLCAwLjQwODc3LCAwLjUxMjcwMiwgMC42MTU5ODMsIDAuNzE5MzU2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1NzQ3NiwgMC4yNjY2MTMsIDAuNDMzODg3LCAwLjY0MzE1NSwgMC44NTIwNzksIDEuMDYxNDUsIDEuMjcwNDUiLCBcCi0gICAgICAgICAgIjAuMDU4NDk1LCAwLjI2NjUwMSwgMC40MzM4NTEsIDAuNjQzMTM3LCAwLjg1MjEwMiwgMS4wNjEyLCAxLjI3MDUyIiwgXAotICAgICAgICAgICIwLjA2NDEzOCwgMC4yNjY1NjQsIDAuNDMzODM0LCAwLjY0MzE0NSwgMC44NTIyMiwgMS4wNjEyNCwgMS4yNzAzMSIsIFwKLSAgICAgICAgICAiMC4wNzE3MzQsIDAuMjY3NTc2LCAwLjQzMzkxNCwgMC42NDMxNTcsIDAuODUyMTM1LCAxLjA2MTQ0LCAxLjI3MDMiLCBcCi0gICAgICAgICAgIjAuMDgwOTM5LCAwLjI3MDU4OCwgMC40MzQyODMsIDAuNjQzMTQzLCAwLjg1MjE2NSwgMS4wNjE0LCAxLjI3MDU2IiwgXAotICAgICAgICAgICIwLjA5NjQ0MSwgMC4yNzgxMTcsIDAuNDM3NzQxLCAwLjY0MzQsIDAuODUyMjI5LCAxLjA2MTM5LCAxLjI3MDYzIiwgXAotICAgICAgICAgICIwLjEwOTQ5NSwgMC4yODU3NTEsIDAuNDQyOTU5LCAwLjY0NTM4OCwgMC44NTIzNSwgMS4wNjEzMywgMS4yNzAzMSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc4NTY5LCAwLjM3MzM2NCwgMC42MTAzODMsIDAuOTA4MzEyLCAxLjIwNjMsIDEuNTA0MDcsIDEuODAxMzgiLCBcCi0gICAgICAgICAgIjAuMDg2ODM5LCAwLjM4MTk3MiwgMC42MTg5NjYsIDAuOTE2OTg4LCAxLjIxNDY3LCAxLjUxMjY3LCAxLjgxMDg5IiwgXAotICAgICAgICAgICIwLjA5NzI2OSwgMC4zOTIzOTIsIDAuNjI5NjksIDAuOTI3Nzk0LCAxLjIyNTE4LCAxLjUyMzA4LCAxLjgyMTM5IiwgXAotICAgICAgICAgICIwLjEwODIzOCwgMC40MDMyOSwgMC42NDA1NTYsIDAuOTM4MjU3LCAxLjIzNTg0LCAxLjUzNDM5LCAxLjgzMTg0IiwgXAotICAgICAgICAgICIwLjExOTEyMywgMC40MTM5MDUsIDAuNjUxNjI3LCAwLjk0ODg0OSwgMS4yNDY2LCAxLjU0NTU1LCAxLjg0MTYzIiwgXAotICAgICAgICAgICIwLjEzNjkwMiwgMC40MzEyNzMsIDAuNjY4NTEyLCAwLjk2NjU4LCAxLjI2Mzc1LCAxLjU2MzIyLCAxLjg1ODk1IiwgXAotICAgICAgICAgICIwLjE1MTY5MSwgMC40NDYzNzQsIDAuNjgzNTUxLCAwLjk4MTk1NSwgMS4yNzkyNiwgMS41NzY0LCAxLjg3NDIiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTU1Mzk3LCAwLjc1MTU5OCwgMS4yMjc1OCwgMS44MzAzMiwgMi40MjM5MywgMy4wMjkxMSwgMy42Mjc3OSIsIFwKLSAgICAgICAgICAiMC4xNTQ4NzQsIDAuNzUxNzE3LCAxLjIzMDE1LCAxLjgyNjQ5LCAyLjQyOTQ4LCAzLjAyMTU5LCAzLjYxOTA2IiwgXAotICAgICAgICAgICIwLjE1NjI4MywgMC43NTE2ODIsIDEuMjMwOTcsIDEuODI4MDcsIDIuNDI0NzUsIDMuMDI4OCwgMy42Mjg2MyIsIFwKLSAgICAgICAgICAiMC4xNjA0MTcsIDAuNzUwMjI5LCAxLjIzMDE5LCAxLjgyNjk1LCAyLjQyNzcxLCAzLjAyMTc4LCAzLjYyODA1IiwgXAotICAgICAgICAgICIwLjE2NjU1NiwgMC43NTExNTksIDEuMjI4MjEsIDEuODI3NDksIDIuNDI3OCwgMy4wMjE3OCwgMy42MjE2MyIsIFwKLSAgICAgICAgICAiMC4xNzgwNDcsIDAuNzUxNTI5LCAxLjIzMDkzLCAxLjgzMDQ4LCAyLjQyNzY0LCAzLjAyMTc2LCAzLjYyMTAxIiwgXAotICAgICAgICAgICIwLjE4OTExNiwgMC43NTExMTUsIDEuMjI4MjYsIDEuODI1OTksIDIuNDI5NDEsIDMuMDIzMjMsIDMuNjIzMiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjkwOTUsIDAuMTMyNjYyLCAwLjIxNTQ4NywgMC4zMTkwNzQsIDAuNDIyNDgsIDAuNTI2MDEsIDAuNjI5NDA4IiwgXAotICAgICAgICAgICIwLjAzOTQyLCAwLjE0Mjk2LCAwLjIyNTc3NSwgMC4zMjkyNzIsIDAuNDMyNzkxLCAwLjUzNjI4MSwgMC42Mzk3NDEiLCBcCi0gICAgICAgICAgIjAuMDUyMzU3LCAwLjE1NTY2MiwgMC4yMzg1MDcsIDAuMzQxOTg0LCAwLjQ0NDY2OCwgMC41NDgxMjQsIDAuNjUxNTM4IiwgXAotICAgICAgICAgICIwLjA2NDU2NCwgMC4xNjg3OTgsIDAuMjUxNzgzLCAwLjM1NTMxNCwgMC40NTg4MzMsIDAuNTYyMzMxLCAwLjY2NjAxMiIsIFwKLSAgICAgICAgICAiMC4wNzQ4MTIsIDAuMTgxMTU0LCAwLjI2NDE5OSwgMC4zNjc1MzIsIDAuNDcwOTY0LCAwLjU3NDM4OSwgMC42Nzc4NDgiLCBcCi0gICAgICAgICAgIjAuMDg5MTQxLCAwLjIwMjY4NiwgMC4yODQyOSwgMC4zODgyMDUsIDAuNDkxNTU0LCAwLjU5NDkwNCwgMC42OTgyOTMiLCBcCi0gICAgICAgICAgIjAuMTAwMDE4LCAwLjIyMDQ5NCwgMC4zMDIyNDQsIDAuNDA1NjI5LCAwLjUwODcyOCwgMC42MTI5MDYsIDAuNzE2MjciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDUzODI5LCAwLjI2Mjg1NCwgMC40MzAwOTQsIDAuNjM5MzU3LCAwLjg0ODc5MiwgMS4wNTc4NywgMS4yNjg5OSIsIFwKLSAgICAgICAgICAiMC4wNTUxMTEsIDAuMjYyNzg0LCAwLjQzMDExNiwgMC42Mzk0MDQsIDAuODQ4OTY4LCAxLjA1Nzk0LCAxLjI2NjgzIiwgXAotICAgICAgICAgICIwLjA2MTIzLCAwLjI2Mjc4OSwgMC40MzAwNzEsIDAuNjM5MjY3LCAwLjg0ODYzNywgMS4wNTgwNSwgMS4yNjkwMyIsIFwKLSAgICAgICAgICAiMC4wNjkzMTcsIDAuMjYzOTUsIDAuNDMwMTgxLCAwLjYzOTQwNCwgMC44NDg0NTYsIDEuMDU4NDQsIDEuMjY3NDciLCBcCi0gICAgICAgICAgIjAuMDc4NzU4LCAwLjI2NzA1NSwgMC40MzA0NTksIDAuNjM5MjYzLCAwLjg0ODk0OSwgMS4wNTc5MywgMS4yNjg0OCIsIFwKLSAgICAgICAgICAiMC4wOTQzMTksIDAuMjczODU3LCAwLjQzNDE0NywgMC42Mzk2OSwgMC44NDg3OTYsIDEuMDU4MiwgMS4yNjcyOSIsIFwKLSAgICAgICAgICAiMC4xMDcyNTMsIDAuMjgyMjY2LCAwLjQzOTMxNiwgMC42NDE4MzEsIDAuODQ4OTU5LCAxLjA1ODU5LCAxLjI2ODYyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjkxMywgMC4wMDY5MTYsIDAuMDA2OTE1LCAwLjAwNjkxNywgMC4wMDY5MTUsIDAuMDA2OTE0LCAwLjAwNjkxNSIsIFwKLSAgICAgICAgICAiMC4wMDY4ODYsIDAuMDA2OTAzLCAwLjAwNjkwNCwgMC4wMDY5MDgsIDAuMDA2OTAzLCAwLjAwNjkwNSwgMC4wMDY5MDciLCBcCi0gICAgICAgICAgIjAuMDA2ODY3LCAwLjAwNjg5NSwgMC4wMDY4OTksIDAuMDA2OTAxLCAwLjAwNjkwMSwgMC4wMDY5MDEsIDAuMDA2OTA2IiwgXAotICAgICAgICAgICIwLjAwNjg1NSwgMC4wMDY4OTEsIDAuMDA2ODk2LCAwLjAwNjg5OSwgMC4wMDY5MDEsIDAuMDA2OTAxLCAwLjAwNjkiLCBcCi0gICAgICAgICAgIjAuMDA2ODQ3LCAwLjAwNjg4NiwgMC4wMDY4OTMsIDAuMDA2ODk3LCAwLjAwNjksIDAuMDA2ODk5LCAwLjAwNjg5OSIsIFwKLSAgICAgICAgICAiMC4wMDY4MzksIDAuMDA2ODgsIDAuMDA2ODg4LCAwLjAwNjg5MywgMC4wMDY4OTYsIDAuMDA2ODk2LCAwLjAwNjg5NyIsIFwKLSAgICAgICAgICAiMC4wMDY4MzQsIDAuMDA2ODc1LCAwLjAwNjg4NiwgMC4wMDY4OTEsIDAuMDA2ODk0LCAwLjAwNjg5NSwgMC4wMDY4OTYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDE2NjQsIDAuMDAxNjY0LCAwLjAwMTY2MywgMC4wMDE2NjMsIDAuMDAxNjYyLCAwLjAwMTY2MSwgMC4wMDE2NjIiLCBcCi0gICAgICAgICAgIjAuMDAxNiwgMC4wMDE2MDYsIDAuMDAxNjA3LCAwLjAwMTYwNywgMC4wMDE2MDksIDAuMDAxNjA3LCAwLjAwMTYxIiwgXAotICAgICAgICAgICIwLjAwMTU3NCwgMC4wMDE1OTEsIDAuMDAxNTkzLCAwLjAwMTU5NCwgMC4wMDE1OTQsIDAuMDAxNTk1LCAwLjAwMTU5MyIsIFwKLSAgICAgICAgICAiMC4wMDE1NTksIDAuMDAxNTgzLCAwLjAwMTU4NywgMC4wMDE1ODgsIDAuMDAxNTg5LCAwLjAwMTU4OCwgMC4wMDE1ODgiLCBcCi0gICAgICAgICAgIjAuMDAxNTUsIDAuMDAxNTc1LCAwLjAwMTU4MywgMC4wMDE1ODQsIDAuMDAxNTg1LCAwLjAwMTU4NiwgMC4wMDE1ODUiLCBcCi0gICAgICAgICAgIjAuMDAxNTQ1LCAwLjAwMTU3MywgMC4wMDE1NzksIDAuMDAxNTgxLCAwLjAwMTU4MywgMC4wMDE1ODIsIDAuMDAxNTgzIiwgXAotICAgICAgICAgICIwLjAwMTU0OCwgMC4wMDE1NzIsIDAuMDAxNTc2LCAwLjAwMTU4LCAwLjAwMTU4MSwgMC4wMDE1ODIsIDAuMDAxNTgxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjE0MiwgMC4wMDYxNTMsIDAuMDA2MTU0LCAwLjAwNjE1NSwgMC4wMDYxNTUsIDAuMDA2MTU0LCAwLjAwNjE1MyIsIFwKLSAgICAgICAgICAiMC4wMDYxMDgsIDAuMDA2MTU0LCAwLjAwNjE1OCwgMC4wMDYxNjEsIDAuMDA2MTYxLCAwLjAwNjE2MiwgMC4wMDYxNjUiLCBcCi0gICAgICAgICAgIjAuMDA2MDY3LCAwLjAwNjE0MSwgMC4wMDYxNSwgMC4wMDYxNTYsIDAuMDA2MTU4LCAwLjAwNjE2NCwgMC4wMDYxNjEiLCBcCi0gICAgICAgICAgIjAuMDA2MDQ1LCAwLjAwNjEyOSwgMC4wMDYxNDUsIDAuMDA2MTUsIDAuMDA2MTUxLCAwLjAwNjE1NiwgMC4wMDYxNjEiLCBcCi0gICAgICAgICAgIjAuMDA2MDI4LCAwLjAwNjExOSwgMC4wMDYxMzYsIDAuMDA2MTQ1LCAwLjAwNjE1MSwgMC4wMDYxNTIsIDAuMDA2MTU0IiwgXAotICAgICAgICAgICIwLjAwNjAxMSwgMC4wMDYxMDQsIDAuMDA2MTI1LCAwLjAwNjEzOSwgMC4wMDYxNDQsIDAuMDA2MTQ5LCAwLjAwNjE1MSIsIFwKLSAgICAgICAgICAiMC4wMDU5OTksIDAuMDA2MDk0LCAwLjAwNjExOCwgMC4wMDYxMzIsIDAuMDA2MTQxLCAwLjAwNjE0NSwgMC4wMDYxNDgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDE2NjgsIDAuMDAxNjY5LCAwLjAwMTY2OCwgMC4wMDE2NjgsIDAuMDAxNjY3LCAwLjAwMTY2NiwgMC4wMDE2NjYiLCBcCi0gICAgICAgICAgIjAuMDAxNTk0LCAwLjAwMTYwOCwgMC4wMDE2MDksIDAuMDAxNjA4LCAwLjAwMTYwOSwgMC4wMDE2MSwgMC4wMDE2MSIsIFwKLSAgICAgICAgICAiMC4wMDE1OCwgMC4wMDE1OTcsIDAuMDAxNTk5LCAwLjAwMTU5OSwgMC4wMDE1OTksIDAuMDAxNTk5LCAwLjAwMTU5OSIsIFwKLSAgICAgICAgICAiMC4wMDE1NjIsIDAuMDAxNTg1LCAwLjAwMTU4OCwgMC4wMDE1ODksIDAuMDAxNTksIDAuMDAxNTksIDAuMDAxNTkiLCBcCi0gICAgICAgICAgIjAuMDAxNTcxLCAwLjAwMTU4NCwgMC4wMDE1ODcsIDAuMDAxNTg4LCAwLjAwMTU4OCwgMC4wMDE1ODgsIDAuMDAxNTg3IiwgXAotICAgICAgICAgICIwLjAwMTYwNSwgMC4wMDE1ODcsIDAuMDAxNTg3LCAwLjAwMTU4NywgMC4wMDE1ODcsIDAuMDAxNTg3LCAwLjAwMTU4NiIsIFwKLSAgICAgICAgICAiMC4wMDE2MzUsIDAuMDAxNTk1LCAwLjAwMTU5MiwgMC4wMDE1OTEsIDAuMDAxNTksIDAuMDAxNTg5LCAwLjAwMTU4OCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDU1NTQsIDAuMDA1NTYzLCAwLjAwNTU2NCwgMC4wMDU1NjQsIDAuMDA1NTYzLCAwLjAwNTU2MywgMC4wMDU1NjEiLCBcCi0gICAgICAgICAgIjAuMDA1NTE1LCAwLjAwNTU1MiwgMC4wMDU1NTcsIDAuMDA1NTU5LCAwLjAwNTU2LCAwLjAwNTU2MSwgMC4wMDU1NjEiLCBcCi0gICAgICAgICAgIjAuMDA1NDg2LCAwLjAwNTUzOSwgMC4wMDU1NDgsIDAuMDA1NTU1LCAwLjAwNTU1NSwgMC4wMDU1NTUsIDAuMDA1NTU5IiwgXAotICAgICAgICAgICIwLjAwNTQ3MSwgMC4wMDU1MzEsIDAuMDA1NTQyLCAwLjAwNTU0OSwgMC4wMDU1NTIsIDAuMDA1NTU0LCAwLjAwNTU1NSIsIFwKLSAgICAgICAgICAiMC4wMDU0NjEsIDAuMDA1NTIyLCAwLjAwNTUzNSwgMC4wMDU1NDQsIDAuMDA1NTUsIDAuMDA1NTUyLCAwLjAwNTU1MiIsIFwKLSAgICAgICAgICAiMC4wMDU0NTQsIDAuMDA1NTA1LCAwLjAwNTUyNywgMC4wMDU1MzcsIDAuMDA1NTQyLCAwLjAwNTU0NiwgMC4wMDU1NDgiLCBcCi0gICAgICAgICAgIjAuMDA1NDU0LCAwLjAwNTUwMywgMC4wMDU1MTgsIDAuMDA1NTMyLCAwLjAwNTUzOCwgMC4wMDU1NDIsIDAuMDA1NTQ2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwNzIsIDAuMDAwNzI0LCAwLjAwMDcyNSwgMC4wMDA3MjUsIDAuMDAwNzI1LCAwLjAwMDcyNSwgMC4wMDA3MjQiLCBcCi0gICAgICAgICAgIjAuMDAwNjg3LCAwLjAwMDcyMSwgMC4wMDA3MjUsIDAuMDAwNzI3LCAwLjAwMDcyOCwgMC4wMDA3MjksIDAuMDAwNzI5IiwgXAotICAgICAgICAgICIwLjAwMDY2NCwgMC4wMDA3MTQsIDAuMDAwNzIxLCAwLjAwMDcyNSwgMC4wMDA3MjYsIDAuMDAwNzI4LCAwLjAwMDcyOSIsIFwKLSAgICAgICAgICAiMC4wMDA2NDksIDAuMDAwNzA2LCAwLjAwMDcxNSwgMC4wMDA3MjEsIDAuMDAwNzI0LCAwLjAwMDcyNiwgMC4wMDA3MjciLCBcCi0gICAgICAgICAgIjAuMDAwNjY5LCAwLjAwMDcwMiwgMC4wMDA3MiwgMC4wMDA3MjQsIDAuMDAwNzI2LCAwLjAwMDcyNywgMC4wMDA3MjgiLCBcCi0gICAgICAgICAgIjAuMDAwNjk2LCAwLjAwMDcxMSwgMC4wMDA3MTksIDAuMDAwNzI1LCAwLjAwMDcyNiwgMC4wMDA3MjcsIDAuMDAwNzI4IiwgXAotICAgICAgICAgICIwLjAwMDczOSwgMC4wMDA3MjYsIDAuMDAwNzI1LCAwLjAwMDcyNywgMC4wMDA3MywgMC4wMDA3MywgMC4wMDA3MyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQzODEsIDAuMDA0Mzk3LCAwLjAwNDM5NywgMC4wMDQzOTcsIDAuMDA0Mzk3LCAwLjAwNDM5OCwgMC4wMDQzOTciLCBcCi0gICAgICAgICAgIjAuMDA0MzIzLCAwLjAwNDM3OSwgMC4wMDQzODUsIDAuMDA0MzksIDAuMDA0MzkxLCAwLjAwNDM5MywgMC4wMDQzOTIiLCBcCi0gICAgICAgICAgIjAuMDA0Mjk2LCAwLjAwNDM2NCwgMC4wMDQzNzYsIDAuMDA0MzgzLCAwLjAwNDM4NSwgMC4wMDQzODcsIDAuMDA0Mzg4IiwgXAotICAgICAgICAgICIwLjAwNDI4NCwgMC4wMDQzNTEsIDAuMDA0MzY3LCAwLjAwNDM3NiwgMC4wMDQzOCwgMC4wMDQzODMsIDAuMDA0Mzg0IiwgXAotICAgICAgICAgICIwLjAwNDI5MiwgMC4wMDQzNDQsIDAuMDA0MzYxLCAwLjAwNDM3MSwgMC4wMDQzNzYsIDAuMDA0MzgxLCAwLjAwNDM4MiIsIFwKLSAgICAgICAgICAiMC4wMDQzMiwgMC4wMDQzNCwgMC4wMDQzNTUsIDAuMDA0MzY2LCAwLjAwNDM3MiwgMC4wMDQzNzUsIDAuMDA0Mzc4IiwgXAotICAgICAgICAgICIwLjAwNDM1NywgMC4wMDQzNDEsIDAuMDA0MzU0LCAwLjAwNDM2MywgMC4wMDQzNjksIDAuMDA0MzczLCAwLjAwNDM3NiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDA2NSwgMC4wMDAwODYsIDAuMDAwMDg4LCAwLjAwMDA4OSwgMC4wMDAwOSwgMC4wMDAwOSwgMC4wMDAwOTEiLCBcCi0gICAgICAgICAgIjAuMDAwMDQ2LCAwLjAwMDEyMSwgMC4wMDAxMywgMC4wMDAxMzQsIDAuMDAwMTM3LCAwLjAwMDEzOCwgMC4wMDAxMzkiLCBcCi0gICAgICAgICAgIjAuMDAwMDE0LCAwLjAwMDExNiwgMC4wMDAxMywgMC4wMDAxMzgsIDAuMDAwMTQ3LCAwLjAwMDE1LCAwLjAwMDE1MiIsIFwKLSAgICAgICAgICAiMC4wMDAwMzMsIDAuMDAwMTA3LCAwLjAwMDEyNCwgMC4wMDAxMzMsIDAuMDAwMTM5LCAwLjAwMDE0MiwgMC4wMDAxNDQiLCBcCi0gICAgICAgICAgIjAuMDAwMDE5LCAwLjAwMDEsIDAuMDAwMTI0LCAwLjAwMDEzNCwgMC4wMDAxNCwgMC4wMDAxNDQsIDAuMDAwMTQ2IiwgXAotICAgICAgICAgICIwLjAwMDAxNywgMC4wMDAwOTksIDAuMDAwMTIsIDAuMDAwMTMyLCAwLjAwMDEzOSwgMC4wMDAxNDMsIDAuMDAwMTQ2IiwgXAotICAgICAgICAgICIwLjAwMDA1LCAwLjAwMDEwNSwgMC4wMDAxMiwgMC4wMDAxMzIsIDAuMDAwMTM5LCAwLjAwMDE0MywgMC4wMDAxNDYiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogQU9JMjExWDQgKgotICogLS0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKEFPSTIxMVg0KSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuNjM2MzI1OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAzMzk3NTQ7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAzMzgyMjk7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAzMzk3NTQ7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxNjM3LCAwLjAwMTYzNSwgMC4wMDE2MzUsIDAuMDAxNjM0LCAwLjAwMTYzNSwgMC4wMDE2MzUsIDAuMDAxNjM0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxNjksIDAuMDAxNjQ3LCAwLjAwMTY0NSwgMC4wMDE2NDEsIDAuMDAxNjQxLCAwLjAwMTY0MSwgMC4wMDE2NDEiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEExKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDMyMjIzMjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDMxOTY4NTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDMyMjIzMjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDEwMzcsIDAuMDAxMDM1LCAwLjAwMTAzNSwgMC4wMDEwMzQsIDAuMDAxMDM1LCAwLjAwMTAzNSwgMC4wMDEwMzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDE4NTYsIDAuMDAxODU4LCAwLjAwMTg1NywgMC4wMDE4NTksIDAuMDAxODU5LCAwLjAwMTg1OSwgMC4wMDE4NTkiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDMwMDg1NDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDI5ODU3OTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDMwMDg1NDsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDEzNTUsIDAuMDAxNDc5LCAwLjAwMTUxMiwgMC4wMDE1MjIsIDAuMDAxNTM4LCAwLjAwMTU1MSwgMC4wMDE1NTgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDE4MSwgMC4wMDE4MTEsIDAuMDAxODExLCAwLjAwMTgxMiwgMC4wMDE4MTIsIDAuMDAxODEyLCAwLjAwMTgxMyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQzApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMzAzNDYyOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMzAzNDYyOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMzAzNDQ5OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDM1NSwgMC4wMDAzNTUsIDAuMDAwMzU1LCAwLjAwMDM1NSwgMC4wMDAzNTUsIDAuMDAwMzU1LCAwLjAwMDM1NSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTMyNywgMC4wMDEzMjcsIDAuMDAxMzI3LCAwLjAwMTMyNywgMC4wMDEzMjcsIDAuMDAxMzI3LCAwLjAwMTMyNiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjM2NDcwNDsKLSAgICBmdW5jdGlvbiA6ICIoISgoKEEwIEExKStCMCkrQzApKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTAiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY0OTg4LCAwLjI3NDUwNSwgMC40ODMzNCwgMC42MzMyMTUsIDAuODcyMzQ0LCAxLjA4MTY5LCAxLjM3OTU4IiwgXAotICAgICAgICAgICIwLjA3NDAwNCwgMC4yODM2NjUsIDAuNDkzMDE0LCAwLjY0MjM3NSwgMC44ODE4NTIsIDEuMDkwNTcsIDEuMzg5ODMiLCBcCi0gICAgICAgICAgIjAuMDgzNTQ4LCAwLjI5MzM4NSwgMC41MDI1OTEsIDAuNjUxODI5LCAwLjg5MDg3MiwgMS4xMDAyNCwgMS4zOTg2OSIsIFwKLSAgICAgICAgICAiMC4wOTIwNTUsIDAuMzAxODYxLCAwLjUxMTEyOSwgMC42NjA5NTEsIDAuODk5NDk1LCAxLjEwOTAzLCAxLjQwNzUzIiwgXAotICAgICAgICAgICIwLjEwMDExNiwgMC4zMTAwOTcsIDAuNTE5MjkzLCAwLjY2OTAxNSwgMC45MDg0MjIsIDEuMTE3NDQsIDEuNDE2NiIsIFwKLSAgICAgICAgICAiMC4xMTE0OTYsIDAuMzIyNjg0LCAwLjUzMTk1LCAwLjY4MTcyNSwgMC45MjA1OTMsIDEuMTI5NTQsIDEuNDI4NDciLCBcCi0gICAgICAgICAgIjAuMTIwNDc4LCAwLjMzMzUzNiwgMC41NDI5NzQsIDAuNjkyMzI4LCAwLjkzMTc3MSwgMS4xNDA0OSwgMS40MzkzMiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5NzE5NywgMC41MTg3MzEsIDAuOTQwMzI4LCAxLjI0MiwgMS43MjM5MSwgMi4xNDUzMSwgMi43NDY2OSIsIFwKLSAgICAgICAgICAiMC4wOTcyMDUsIDAuNTE4NzgyLCAwLjk0MDk3MiwgMS4yNDIxMywgMS43MjQzMSwgMi4xNDQ5MSwgMi43NDg1OSIsIFwKLSAgICAgICAgICAiMC4wOTc2ODgsIDAuNTE4ODE0LCAwLjk0MDc3OCwgMS4yNDE4NSwgMS43MjM3MSwgMi4xNDQ5NCwgMi43NDY5MyIsIFwKLSAgICAgICAgICAiMC4wOTkxOTksIDAuNTE5MDY0LCAwLjk0MDczLCAxLjI0MjE3LCAxLjcyNDMyLCAyLjE0NTEzLCAyLjc0NzU1IiwgXAotICAgICAgICAgICIwLjEwMTM5OSwgMC41MTg5NzksIDAuOTQxMjU4LCAxLjI0MjM2LCAxLjcyNDM4LCAyLjE0NTksIDIuNzQ3MjYiLCBcCi0gICAgICAgICAgIjAuMTA2MzY0LCAwLjUxOTgyNiwgMC45NDA2NTksIDEuMjQyMDYsIDEuNzI0MDYsIDIuMTQ0NTgsIDIuNzQ3MTQiLCBcCi0gICAgICAgICAgIjAuMTExODMzLCAwLjUyMTY2MywgMC45NDE0NTcsIDEuMjQxOSwgMS43MjQwMywgMi4xNDQ1NSwgMi43NDY5OSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0NDkxMSwgMC4xODE5NDIsIDAuMzE2ODMzLCAwLjQxMjgzMiwgMC41NjY0NjcsIDAuNzAwOTI5LCAwLjg5Mjc2NyIsIFwKLSAgICAgICAgICAiMC4wNTM2ODQsIDAuMTkwNzc0LCAwLjMyNTYzOCwgMC40MjE2OTcsIDAuNTc1MzM4LCAwLjcwOTc2NywgMC45MDE2OTciLCBcCi0gICAgICAgICAgIjAuMDY0NTgzLCAwLjIwMTgyMSwgMC4zMzY3MjEsIDAuNDMyODU3LCAwLjU4NjUwNSwgMC43MjA5MzgsIDAuOTEyNzMzIiwgXAotICAgICAgICAgICIwLjA3NTUzMiwgMC4yMTI4OTEsIDAuMzQ3ODM1LCAwLjQ0Mzk4LCAwLjU5NzU0MSwgMC43MzE5NjUsIDAuOTIzODYzIiwgXAotICAgICAgICAgICIwLjA4NTg3NSwgMC4yMjM4MjMsIDAuMzU4NzA5LCAwLjQ1NDk1OSwgMC42MDg2NzksIDAuNzQyOTc4LCAwLjkzNDk2MyIsIFwKLSAgICAgICAgICAiMC4xMDA0MjMsIDAuMjQxMTY0LCAwLjM3NjU0MywgMC40NzI4NjgsIDAuNjI2Mzc2LCAwLjc2MDg0MSwgMC45NTI4ODkiLCBcCi0gICAgICAgICAgIjAuMTExODE4LCAwLjI1NjU2NCwgMC4zOTE2MTgsIDAuNDg4MTg3LCAwLjY0MTg2OCwgMC43NzY1MjMsIDAuOTY4MjU5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY5NzEyLCAwLjMzNTM1NywgMC42MDEwOTYsIDAuNzkwNTkyLCAxLjA5NDEzLCAxLjM2MDY1LCAxLjc0MDA3IiwgXAotICAgICAgICAgICIwLjA2OTcsIDAuMzM1NTk4LCAwLjYwMTA3NCwgMC43OTA3NTksIDEuMDk0MzIsIDEuMzYwMDMsIDEuNzQwMTQiLCBcCi0gICAgICAgICAgIjAuMDcyMTQ1LCAwLjMzNTM0OSwgMC42MDExMTksIDAuNzkwODI2LCAxLjA5NDQyLCAxLjM2MDQyLCAxLjczOTMyIiwgXAotICAgICAgICAgICIwLjA3NjUsIDAuMzM1NDcxLCAwLjYwMTM3NCwgMC43OTA4MywgMS4wOTQxMywgMS4zNTk5NSwgMS43MzkzIiwgXAotICAgICAgICAgICIwLjA4MTk3NSwgMC4zMzY3OTEsIDAuNjAxMDk4LCAwLjc5MDg0MSwgMS4wOTQzNCwgMS4zNjAwNCwgMS43Mzk0MyIsIFwKLSAgICAgICAgICAiMC4wOTE5OTksIDAuMzM5OTEsIDAuNjAxNTI0LCAwLjc5MDg0MiwgMS4wOTQ3NywgMS4zNTk5MSwgMS43Mzk0IiwgXAotICAgICAgICAgICIwLjEwMTA0MiwgMC4zNDUwMDEsIDAuNjAzNTkxLCAwLjc5MTMyOCwgMS4wOTQzNywgMS4zNTk5NSwgMS43MzkyMiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjExOTgsIDAuMjcxOTA4LCAwLjQ4MTk3MywgMC42MzIwMDgsIDAuODcyNTE3LCAxLjA4NCwgMS4zODM3MSIsIFwKLSAgICAgICAgICAiMC4wNzAwNjEsIDAuMjgxMDUxLCAwLjQ5MTYxMSwgMC42NDE5MjksIDAuODgyMTU3LCAxLjA5MzAxLCAxLjM5Mjk5IiwgXAotICAgICAgICAgICIwLjA3OTQ0NywgMC4yOTA2MzUsIDAuNTAxMTg2LCAwLjY1MTIxLCAwLjg5MTc3OSwgMS4xMDI5LCAxLjQwMjQ0IiwgXAotICAgICAgICAgICIwLjA4NzkxNywgMC4yOTkwOTcsIDAuNTA5NTk1LCAwLjY1OTg5MywgMC45MDA3NjUsIDEuMTEwODIsIDEuNDExNDQiLCBcCi0gICAgICAgICAgIjAuMDk1ODE2LCAwLjMwNzI0LCAwLjUxNzc5NywgMC42NjgzMDEsIDAuOTA5MzgsIDEuMTE5MDQsIDEuNDIwMzEiLCBcCi0gICAgICAgICAgIjAuMTA2ODc4LCAwLjMxOTc0NywgMC41MzAzMzgsIDAuNjgxMDczLCAwLjkyMTM2MiwgMS4xMzE0NywgMS40MzE5OSIsIFwKLSAgICAgICAgICAiMC4xMTU1NywgMC4zMzA1OTcsIDAuNTQxMzAxLCAwLjY5MTUzNiwgMC45MzIyNDMsIDEuMTQyNDcsIDEuNDQzMDMiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTI3MDQsIDAuNTE2NzE0LCAwLjk0MTU2MywgMS4yNDM3NSwgMS43MzExNCwgMi4xNTI1MiwgMi43NjQ2OSIsIFwKLSAgICAgICAgICAiMC4wOTI4ODcsIDAuNTE2NzY4LCAwLjk0MzA4NiwgMS4yNDUxMiwgMS43MzIzLCAyLjE1MjM4LCAyLjc2NDU1IiwgXAotICAgICAgICAgICIwLjA5MzM2NCwgMC41MTc4NTIsIDAuOTQwODE2LCAxLjI0NDMyLCAxLjcyODE4LCAyLjE1MjM5LCAyLjc2MjgzIiwgXAotICAgICAgICAgICIwLjA5NDkwMiwgMC41MTY5MzYsIDAuOTQyMzEzLCAxLjI0NTc0LCAxLjczMjY0LCAyLjE1MzE0LCAyLjc2NDcxIiwgXAotICAgICAgICAgICIwLjA5NzI1MSwgMC41MTY3NDEsIDAuOTQyMzgzLCAxLjI0Mzc0LCAxLjcyODM5LCAyLjE1MjMyLCAyLjc1ODQ2IiwgXAotICAgICAgICAgICIwLjEwMjU0NiwgMC41MTg1NzksIDAuOTQxMTM2LCAxLjI0MzUxLCAxLjcyODg4LCAyLjE1NTkxLCAyLjc2Mjc1IiwgXAotICAgICAgICAgICIwLjEwODE3MywgMC41MjAyMTMsIDAuOTQyNTEzLCAxLjI0NDI1LCAxLjczMjI4LCAyLjE1NTkzLCAyLjc2MjgxIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQyNzY1LCAwLjE3OTgxMywgMC4zMTQ2NDcsIDAuNDEwNzM2LCAwLjU2NDYwNSwgMC42OTg5MjIsIDAuODkwOTAyIiwgXAotICAgICAgICAgICIwLjA1MTczNCwgMC4xODg4NTIsIDAuMzIzNzIxLCAwLjQxOTc3MSwgMC41NzM0MDcsIDAuNzA3OTE1LCAwLjg5OTY0NiIsIFwKLSAgICAgICAgICAiMC4wNjMzNDMsIDAuMjAwMzg2LCAwLjMzNTI3NywgMC40MzEzNDcsIDAuNTg0ODkyLCAwLjcxOTM0OSwgMC45MTEzNTciLCBcCi0gICAgICAgICAgIjAuMDc1NjQzLCAwLjIxMjQ4NCwgMC4zNDc0MDIsIDAuNDQzNDY5LCAwLjU5NzE4LCAwLjczMTQ2MywgMC45MjMyNjciLCBcCi0gICAgICAgICAgIjAuMDg2ODg0LCAwLjIyMzU3MywgMC4zNTg0MjMsIDAuNDU0NDk4LCAwLjYwODE4NywgMC43NDI2MTksIDAuOTM0Mjk2IiwgXAotICAgICAgICAgICIwLjEwMjIzOCwgMC4yNDIzMywgMC4zNzcwMzksIDAuNDczMjM1LCAwLjYyNjgyNiwgMC43NjExNzIsIDAuOTUzMzAxIiwgXAotICAgICAgICAgICIwLjExMzk0NSwgMC4yNTg3OTMsIDAuMzkzNDY2LCAwLjQ4OTUwNywgMC42NDMxOTksIDAuNzc3MzU1LCAwLjk2OTQyMiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2OTgwNCwgMC4zMzUyOTksIDAuNjAxMDgsIDAuNzkwODE0LCAxLjA5NDQsIDEuMzYwNzYsIDEuNzM5NDEiLCBcCi0gICAgICAgICAgIjAuMDY5NzkzLCAwLjMzNTM5NiwgMC42MDEwMTYsIDAuNzkwNzgsIDEuMDk0MzQsIDEuMzU5NzQsIDEuNzM5IiwgXAotICAgICAgICAgICIwLjA3NDEyLCAwLjMzNTQ4OCwgMC42MDExNjIsIDAuNzkwODQsIDEuMDk0MDksIDEuMzU5OTYsIDEuNzM5MjYiLCBcCi0gICAgICAgICAgIjAuMDgwMzQyLCAwLjMzNTY5LCAwLjYwMTE5MSwgMC43OTA4MjgsIDEuMDk0OTksIDEuMzU5OTcsIDEuNzM4OTEiLCBcCi0gICAgICAgICAgIjAuMDg4Mzk3LCAwLjMzNzE5NywgMC42MDExMTUsIDAuNzkwODA1LCAxLjA5NDQ0LCAxLjM1OTk4LCAxLjczODkiLCBcCi0gICAgICAgICAgIjAuMTAyNjgzLCAwLjM0MjY2NywgMC42MDE1NzcsIDAuNzkwOTkzLCAxLjA5NDg4LCAxLjM1OTk2LCAxLjc0MDAzIiwgXAotICAgICAgICAgICIwLjExNDU5NywgMC4zNDk3NjgsIDAuNjA0MjgxLCAwLjc5MTM3LCAxLjA5NDg2LCAxLjM2MDI2LCAxLjczOTQzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1ODkzNywgMC4yNjg2NCwgMC40Nzc4MDMsIDAuNjI3Mjc0LCAwLjg2NjMzOCwgMS4wNzY5OSwgMS4zNzY5IiwgXAotICAgICAgICAgICIwLjA2NzMzMSwgMC4yNzczMjEsIDAuNDg2NzY4LCAwLjYzNTg2MywgMC44NzUzMzksIDEuMDg1ODMsIDEuMzg1NjkiLCBcCi0gICAgICAgICAgIjAuMDc3MjAzLCAwLjI4NzIzMywgMC40OTY0NzYsIDAuNjQ1OTM2LCAwLjg4NTMzOSwgMS4wOTUyMiwgMS4zOTY5MiIsIFwKLSAgICAgICAgICAiMC4wODY5MjIsIDAuMjk2OTksIDAuNTA2MzI3LCAwLjY1NjE2MywgMC44OTU0NzEsIDEuMTA1NTgsIDEuNDA1NzgiLCBcCi0gICAgICAgICAgIjAuMDk2MzczLCAwLjMwNjQzNCwgMC41MTYxNjYsIDAuNjY1NTkyLCAwLjkwNDcxLCAxLjExNTE0LCAxLjQxNTk4IiwgXAotICAgICAgICAgICIwLjEwOTgwMywgMC4zMjI0MTQsIDAuNTMxOTM1LCAwLjY4MTMzOSwgMC45MjAyNzcsIDEuMTMwMzcsIDEuNDMyMzQiLCBcCi0gICAgICAgICAgIjAuMTIwNDY2LCAwLjMzNTk5MiwgMC41NDU2NSwgMC42OTUyNTYsIDAuOTM0NDAzLCAxLjE0NDYzLCAxLjQ0NjQxIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk3MTg5LCAwLjUxODg4NCwgMC45NDA4MTEsIDEuMjQzNDksIDEuNzMyNDQsIDIuMTUyNTcsIDIuNzY0NTciLCBcCi0gICAgICAgICAgIjAuMDk3MjIzLCAwLjUxODk4OCwgMC45NDA5OTMsIDEuMjQzNiwgMS43MzI1OCwgMi4xNTI1NiwgMi43NjQ1OCIsIFwKLSAgICAgICAgICAiMC4wOTg1OTgsIDAuNTE4NzU2LCAwLjk0MTczMywgMS4yNDU4MiwgMS43MjgyNCwgMi4xNTYwNywgMi43NTgzOCIsIFwKLSAgICAgICAgICAiMC4xMDE4NjksIDAuNTE4NzI2LCAwLjk0MjI4OSwgMS4yNDM3NiwgMS43Mjg0MywgMi4xNTIyNywgMi43NjQ3MiIsIFwKLSAgICAgICAgICAiMC4xMDYyNywgMC41MTkwMzIsIDAuOTQwODY0LCAxLjI0NDQ4LCAxLjcyOSwgMi4xNTc0NiwgMi43NTg1IiwgXAotICAgICAgICAgICIwLjExNTIzMywgMC41MjA1MjgsIDAuOTQxMSwgMS4yNDU4MiwgMS43MjgyNSwgMi4xNTU5LCAyLjc2MjI5IiwgXAotICAgICAgICAgICIwLjEyNDIwOSwgMC41MjMyMjYsIDAuOTQyNTI4LCAxLjI0MzY5LCAxLjcyODIzLCAyLjE1NzM2LCAyLjc1ODQ0Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDIxNjM1LCAwLjA5NTY1OCwgMC4xNjkyMzQsIDAuMjIxNzAxLCAwLjMwNTY5OCwgMC4zNzkxNDIsIDAuNDg0MTI2IiwgXAotICAgICAgICAgICIwLjAzMTg2NCwgMC4xMDU4MDcsIDAuMTc5MzkzLCAwLjIzMTg4NiwgMC4zMTU4NTMsIDAuMzg5MzM4LCAwLjQ5NDI4MiIsIFwKLSAgICAgICAgICAiMC4wNDQ0NTUsIDAuMTE4NDcsIDAuMTkyMTAyLCAwLjI0NDU0NywgMC4zMjg1MzIsIDAuNDAxMjE4LCAwLjUwNjA2OSIsIFwKLSAgICAgICAgICAiMC4wNTUwNzQsIDAuMTMxNTgyLCAwLjIwNTAzOSwgMC4yNTc3MDEsIDAuMzQxNjU4LCAwLjQxNTEzMSwgMC41MjAwNTYiLCBcCi0gICAgICAgICAgIjAuMDYzODEzLCAwLjE0NDYwNywgMC4yMTczNzQsIDAuMjcwMTQ0LCAwLjM1Mzk1OCwgMC40MjczNzUsIDAuNTMyMjUxIiwgXAotICAgICAgICAgICIwLjA3NTg0MSwgMC4xNjUyMzksIDAuMjM5MDczLCAwLjI5MDI2NywgMC4zNzQ2MzksIDAuNDQ3OTg3LCAwLjU1Mjc4IiwgXAotICAgICAgICAgICIwLjA4NTU3MiwgMC4xODM0MjgsIDAuMjU1NjcxLCAwLjMwODA5MiwgMC4zOTIwMTMsIDAuNDY2MDAxLCAwLjU3MDc3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM2ODAyLCAwLjE4NTA2NiwgMC4zMzM2NiwgMC40Mzk2NjQsIDAuNjA5NDg1LCAwLjc1Nzk5MSwgMC45NzAxNTEiLCBcCi0gICAgICAgICAgIjAuMDM4OTMxLCAwLjE4NTA2MywgMC4zMzM1NjYsIDAuNDM5NjIsIDAuNjA5NDc5LCAwLjc1NzgzNywgMC45Njk5MTQiLCBcCi0gICAgICAgICAgIjAuMDQ2MjUxLCAwLjE4NTU4MSwgMC4zMzM1NzksIDAuNDM5Njg5LCAwLjYwOTQ1OSwgMC43NTc5MjgsIDAuOTY5OTciLCBcCi0gICAgICAgICAgIjAuMDU1MDI3LCAwLjE4ODY0MywgMC4zMzM3NDQsIDAuNDM5NzM3LCAwLjYwOTMzMSwgMC43NTc4NDksIDAuOTY5OTIyIiwgXAotICAgICAgICAgICIwLjA2NDY5NiwgMC4xOTMxMjMsIDAuMzM1NTkxLCAwLjQ0MDAxOCwgMC42MDk0MjYsIDAuNzU3ODU4LCAwLjk2OTkzOSIsIFwKLSAgICAgICAgICAiMC4wNzkxNjQsIDAuMjAzMDA0LCAwLjM0MDg1MiwgMC40NDMzNTksIDAuNjEwMDE0LCAwLjc1Nzg1NywgMC45Njk5NTYiLCBcCi0gICAgICAgICAgIjAuMDg5MTg0LCAwLjIxMjk1NCwgMC4zNDgzNjQsIDAuNDQ4MzA2LCAwLjYxMjQ1MywgMC43NTg1NjQsIDAuOTcwMDI3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0OTI3OCwgMC4yNTg5NTksIDAuNDY4MTA4LCAwLjYxNzkzNiwgMC44NTY0MDgsIDEuMDY3NjMsIDEuMzY3MyIsIFwKLSAgICAgICAgICAiMC4wNTc0MSwgMC4yNjc0OTgsIDAuNDc2NzQyLCAwLjYyNjM2NSwgMC44NjU4MSwgMS4wNzU0NiwgMS4zNzcxOCIsIFwKLSAgICAgICAgICAiMC4wNjc5NjMsIDAuMjc4MDMsIDAuNDg3MTU2LCAwLjYzNjQxMSwgMC44NzYyNjQsIDEuMDg2NywgMS4zODczIiwgXAotICAgICAgICAgICIwLjA3OTExNSwgMC4yODg5ODUsIDAuNDk4NDY3LCAwLjY0NzkyMiwgMC44ODY4MTksIDEuMDk3NTYsIDEuMzk3MzUiLCBcCi0gICAgICAgICAgIjAuMDkwMDY0LCAwLjI5OTYsIDAuNTA4ODUyLCAwLjY1ODY5MSwgMC44OTc0NTUsIDEuMTA4MTksIDEuNDA3OSIsIFwKLSAgICAgICAgICAiMC4xMDQ4OTgsIDAuMzE2OTI2LCAwLjUyNjEyMSwgMC42NzU2NzMsIDAuOTE1MDU4LCAxLjEyNTE1LCAxLjQyNTE5IiwgXAotICAgICAgICAgICIwLjExNjAzMiwgMC4zMzIwMjIsIDAuNTQxNDIyLCAwLjY5MDk0MSwgMC45Mjk4MjksIDEuMTQwODIsIDEuNDQwNDQiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTY3NzEsIDAuNTE5MTA0LCAwLjk0MTAyMSwgMS4yNDM4NywgMS43Mjk2NywgMi4xNTI1MywgMi43NjQ2NCIsIFwKLSAgICAgICAgICAiMC4wOTY0MjIsIDAuNTE4NzYxLCAwLjk0MjMxOSwgMS4yNDY2NCwgMS43Mjg0MiwgMi4xNTc0MSwgMi43NTg0IiwgXAotICAgICAgICAgICIwLjEwMDM0NywgMC41MTg3NjcsIDAuOTQyMTY3LCAxLjI0MzU1LCAxLjcyODQyLCAyLjE1MjIxLCAyLjc1ODM4IiwgXAotICAgICAgICAgICIwLjEwNjU2NiwgMC41MTkwMzIsIDAuOTQzMDI2LCAxLjI0NDE1LCAxLjczMTIxLCAyLjE1MjE3LCAyLjc1OTY4IiwgXAotICAgICAgICAgICIwLjExNDMxLCAwLjUxODc0MiwgMC45NDIyOTcsIDEuMjQzNzMsIDEuNzMxMjMsIDIuMTUyMzksIDIuNzU5NzciLCBcCi0gICAgICAgICAgIjAuMTI3OTAxLCAwLjUyMTM1LCAwLjk0MjI2OSwgMS4yNDU3MywgMS43Mjg0NywgMi4xNTI2NiwgMi43NjI3MiIsIFwKLSAgICAgICAgICAiMC4xNDAwNywgMC41MjU1NzksIDAuOTQyMzM5LCAxLjI0NjU1LCAxLjczMTE0LCAyLjE1MjI3LCAyLjc2MjgyIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE4Nzk1LCAwLjA5MjQyNiwgMC4xNjU5MjEsIDAuMjE4NDUzLCAwLjMwMjQyOCwgMC4zNzYwMiwgMC40ODEwNjUiLCBcCi0gICAgICAgICAgIjAuMDI5MDk1LCAwLjEwMjcwNSwgMC4xNzYyMzUsIDAuMjI4NzUzLCAwLjMxMjc0MiwgMC4zODYyNTgsIDAuNDkxMjU4IiwgXAotICAgICAgICAgICIwLjA0MTA2NiwgMC4xMTU1NzEsIDAuMTg5MzQ4LCAwLjI0MTc5NCwgMC4zMjU3NDcsIDAuMzk5Mjc1LCAwLjUwNDI0OSIsIFwKLSAgICAgICAgICAiMC4wNTA2MDYsIDAuMTI4NTI1LCAwLjIwMjIwNiwgMC4yNTQ3MSwgMC4zMzg3MzIsIDAuNDEyMjgzLCAwLjUxNzI0MiIsIFwKLSAgICAgICAgICAiMC4wNTg1MDYsIDAuMTQxNDk3LCAwLjIxNDI5OCwgMC4yNjcxMDUsIDAuMzUwOTkxLCAwLjQyNDM4MiwgMC41MjkzMDUiLCBcCi0gICAgICAgICAgIjAuMDY5NDAzLCAwLjE2MjMxOCwgMC4yMzQ3NywgMC4yODcyMTcsIDAuMzcxNjUxLCAwLjQ0NTAwNiwgMC41NDk4OTQiLCBcCi0gICAgICAgICAgIjAuMDc3Nzk2LCAwLjE4MDQ0LCAwLjI1MzU0MywgMC4zMDUxNDcsIDAuMzg5MDM4LCAwLjQ2MzExNywgMC41Njc5NTUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzMxNCwgMC4xODE0OTgsIDAuMzMwMTIsIDAuNDM2MjM1LCAwLjYwNjA4OCwgMC43NTUwMzEsIDAuOTY3NTk0IiwgXAotICAgICAgICAgICIwLjAzNTg1NCwgMC4xODE1MjgsIDAuMzMwMDQ3LCAwLjQzNjIxOCwgMC42MDYxMTUsIDAuNzU0NzksIDAuOTY3MjI4IiwgXAotICAgICAgICAgICIwLjA0Mzg2NSwgMC4xODIxMTEsIDAuMzMwMTU5LCAwLjQzNjE2OCwgMC42MDYxMDIsIDAuNzU0OTUsIDAuOTY3MDIxIiwgXAotICAgICAgICAgICIwLjA1MzI1NSwgMC4xODUyOTgsIDAuMzMwMjEyLCAwLjQzNjIyOSwgMC42MDU5OTIsIDAuNzU0OTk5LCAwLjk2NzQwNCIsIFwKLSAgICAgICAgICAiMC4wNjMwMzEsIDAuMTg5OTE3LCAwLjMzMjE2OCwgMC40MzY1MjEsIDAuNjA2MTA3LCAwLjc1NDk5NywgMC45Njc0MzUiLCBcCi0gICAgICAgICAgIjAuMDc2OTQxLCAwLjE5OTc1OSwgMC4zMzgwNTEsIDAuNDQwMDA5LCAwLjYwNjY3NCwgMC43NTQ5MjgsIDAuOTY3Mzg1IiwgXAotICAgICAgICAgICIwLjA4ODc0MywgMC4yMDk5MzYsIDAuMzQ0NDMzLCAwLjQ0NTA5NCwgMC42MDkyODUsIDAuNzU1Nzc4LCAwLjk2NzMzNCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMzQ4MSwgMC4wMTM0ODgsIDAuMDEzNDksIDAuMDEzNDkzLCAwLjAxMzQ5MSwgMC4wMTM0ODksIDAuMDEzNDg3IiwgXAotICAgICAgICAgICIwLjAxMzQwOSwgMC4wMTM0NjEsIDAuMDEzNDY2LCAwLjAxMzQ2OSwgMC4wMTM0NywgMC4wMTM0NjksIDAuMDEzNDcxIiwgXAotICAgICAgICAgICIwLjAxMzM2NiwgMC4wMTM0NDEsIDAuMDEzNDU0LCAwLjAxMzQ1OCwgMC4wMTM0NjEsIDAuMDEzNDYyLCAwLjAxMzQ3NSIsIFwKLSAgICAgICAgICAiMC4wMTMzNDEsIDAuMDEzNDI5LCAwLjAxMzQ0NSwgMC4wMTM0NSwgMC4wMTM0NTYsIDAuMDEzNDU4LCAwLjAxMzQ1NSIsIFwKLSAgICAgICAgICAiMC4wMTMzMzEsIDAuMDEzNDE2LCAwLjAxMzQzOCwgMC4wMTM0NDUsIDAuMDEzNDQ5LCAwLjAxMzQ1MiwgMC4wMTM0NTYiLCBcCi0gICAgICAgICAgIjAuMDEzMzE0LCAwLjAxMzQwMiwgMC4wMTM0MjgsIDAuMDEzNDM1LCAwLjAxMzQ0NSwgMC4wMTM0NTIsIDAuMDEzNDUyIiwgXAotICAgICAgICAgICIwLjAxMzMxMSwgMC4wMTMzOTEsIDAuMDEzNDE2LCAwLjAxMzQzLCAwLjAxMzQ0LCAwLjAxMzQ0MywgMC4wMTM0NTEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzMzOSwgMC4wMDMzMzksIDAuMDAzMzM5LCAwLjAwMzMzOCwgMC4wMDMzMzcsIDAuMDAzMzM2LCAwLjAwMzMzNSIsIFwKLSAgICAgICAgICAiMC4wMDMyLCAwLjAwMzIyMSwgMC4wMDMyMjQsIDAuMDAzMjI0LCAwLjAwMzIyMSwgMC4wMDMyMjcsIDAuMDAzMjIyIiwgXAotICAgICAgICAgICIwLjAwMzEzOSwgMC4wMDMxODYsIDAuMDAzMTkyLCAwLjAwMzE5NSwgMC4wMDMxOTQsIDAuMDAzMTk2LCAwLjAwMzE5OCIsIFwKLSAgICAgICAgICAiMC4wMDMxMDYsIDAuMDAzMTY2LCAwLjAwMzE3OCwgMC4wMDMxOCwgMC4wMDMxODQsIDAuMDAzMTg0LCAwLjAwMzE4NiIsIFwKLSAgICAgICAgICAiMC4wMDMwODYsIDAuMDAzMTU0LCAwLjAwMzE2NywgMC4wMDMxNzMsIDAuMDAzMTc0LCAwLjAwMzE3NiwgMC4wMDMxNzgiLCBcCi0gICAgICAgICAgIjAuMDAzMDgxLCAwLjAwMzE0MiwgMC4wMDMxNTgsIDAuMDAzMTY1LCAwLjAwMzE2OSwgMC4wMDMxNywgMC4wMDMxNzEiLCBcCi0gICAgICAgICAgIjAuMDAzMDkzLCAwLjAwMzEzOSwgMC4wMDMxNTQsIDAuMDAzMTYxLCAwLjAwMzE2NiwgMC4wMDMxNjcsIDAuMDAzMTY5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDExOTY1LCAwLjAxMjAwMiwgMC4wMTIwMDgsIDAuMDEyMDA2LCAwLjAxMjAwNywgMC4wMTIwMDgsIDAuMDEyMDEiLCBcCi0gICAgICAgICAgIjAuMDExODU4LCAwLjAxMTk5MSwgMC4wMTIwMDksIDAuMDEyMDE2LCAwLjAxMjAxOSwgMC4wMTIwMTksIDAuMDEyMDIzIiwgXAotICAgICAgICAgICIwLjAxMTc3MSwgMC4wMTE5NTUsIDAuMDExOTg3LCAwLjAxMTk5NywgMC4wMTIwMDYsIDAuMDEyMDEsIDAuMDEyMDA4IiwgXAotICAgICAgICAgICIwLjAxMTcyNSwgMC4wMTE5MjQsIDAuMDExOTY4LCAwLjAxMTk4MSwgMC4wMTE5OTQsIDAuMDEyMDAxLCAwLjAxMjAwNyIsIFwKLSAgICAgICAgICAiMC4wMTE2OTgsIDAuMDExODk5LCAwLjAxMTk1MSwgMC4wMTE5NjgsIDAuMDExOTg0LCAwLjAxMTk5MywgMC4wMTE5OTUiLCBcCi0gICAgICAgICAgIjAuMDExNjc1LCAwLjAxMTg2OCwgMC4wMTE5MjYsIDAuMDExOTQ4LCAwLjAxMTk2NiwgMC4wMTE5ODQsIDAuMDExOTk0IiwgXAotICAgICAgICAgICIwLjAxMTY1NywgMC4wMTE4MzksIDAuMDExOTA4LCAwLjAxMTkzMSwgMC4wMTE5NTYsIDAuMDExOTY5LCAwLjAxMTk4NiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzMzQzLCAwLjAwMzM0MywgMC4wMDMzNDMsIDAuMDAzMzQyLCAwLjAwMzM0MSwgMC4wMDMzNDIsIDAuMDAzMzM5IiwgXAotICAgICAgICAgICIwLjAwMzE4NiwgMC4wMDMyMTksIDAuMDAzMjIyLCAwLjAwMzIyMywgMC4wMDMyMiwgMC4wMDMyMjIsIDAuMDAzMjI0IiwgXAotICAgICAgICAgICIwLjAwMzEzLCAwLjAwMzE4MiwgMC4wMDMxOTEsIDAuMDAzMTkyLCAwLjAwMzE5NCwgMC4wMDMxOTMsIDAuMDAzMTk0IiwgXAotICAgICAgICAgICIwLjAwMzEyNywgMC4wMDMxNzMsIDAuMDAzMTgzLCAwLjAwMzE4NiwgMC4wMDMxODgsIDAuMDAzMTg4LCAwLjAwMzE5IiwgXAotICAgICAgICAgICIwLjAwMzE2LCAwLjAwMzE2OCwgMC4wMDMxNzYsIDAuMDAzMTc3LCAwLjAwMzE3OSwgMC4wMDMxOCwgMC4wMDMxNzkiLCBcCi0gICAgICAgICAgIjAuMDAzMjMxLCAwLjAwMzE4LCAwLjAwMzE3OSwgMC4wMDMxNzksIDAuMDAzMTgsIDAuMDAzMTgsIDAuMDAzMTc5IiwgXAotICAgICAgICAgICIwLjAwMzMyNCwgMC4wMDMyMDEsIDAuMDAzMTkyLCAwLjAwMzE5LCAwLjAwMzE4NiwgMC4wMDMxODIsIDAuMDAzMTgyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEwNzYyLCAwLjAxMDc5MywgMC4wMTA3OTcsIDAuMDEwNzk4LCAwLjAxMDc5OCwgMC4wMTA3OTUsIDAuMDEwNzk0IiwgXAotICAgICAgICAgICIwLjAxMDY2LCAwLjAxMDc2MywgMC4wMTA3ODIsIDAuMDEwNzg2LCAwLjAxMDc4NSwgMC4wMTA3ODksIDAuMDEwNzkiLCBcCi0gICAgICAgICAgIjAuMDEwNjAyLCAwLjAxMDczLCAwLjAxMDc1OCwgMC4wMTA3NjcsIDAuMDEwNzc0LCAwLjAxMDc4MSwgMC4wMTA3ODQiLCBcCi0gICAgICAgICAgIjAuMDEwNTcyLCAwLjAxMDcwMiwgMC4wMTA3MzcsIDAuMDEwNzQ5LCAwLjAxMDc1OSwgMC4wMTA3NjQsIDAuMDEwNzcxIiwgXAotICAgICAgICAgICIwLjAxMDU1NCwgMC4wMTA2NzgsIDAuMDEwNzI2LCAwLjAxMDc0MywgMC4wMTA3NTUsIDAuMDEwNzYzLCAwLjAxMDc2OSIsIFwKLSAgICAgICAgICAiMC4wMTA1NTYsIDAuMDEwNjYyLCAwLjAxMDcwNiwgMC4wMTA3MjUsIDAuMDEwNzQyLCAwLjAxMDc1LCAwLjAxMDc1OSIsIFwKLSAgICAgICAgICAiMC4wMTA1NjQsIDAuMDEwNjQ3LCAwLjAxMDY5MywgMC4wMTA3MDYsIDAuMDEwNzMyLCAwLjAxMDc0MSwgMC4wMTA3NTIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTQ0MiwgMC4wMDE0NTYsIDAuMDAxNDU4LCAwLjAwMTQ1OCwgMC4wMDE0NTksIDAuMDAxNDU5LCAwLjAwMTQ1OSIsIFwKLSAgICAgICAgICAiMC4wMDEzNDMsIDAuMDAxNDQsIDAuMDAxNDU0LCAwLjAwMTQ1OCwgMC4wMDE0NjEsIDAuMDAxNDYyLCAwLjAwMTQ2NCIsIFwKLSAgICAgICAgICAiMC4wMDEyODcsIDAuMDAxNDE4LCAwLjAwMTQ0MywgMC4wMDE0NSwgMC4wMDE0NTYsIDAuMDAxNDU4LCAwLjAwMTQ2MSIsIFwKLSAgICAgICAgICAiMC4wMDEyNDgsIDAuMDAxMzk3LCAwLjAwMTQzMSwgMC4wMDE0MzksIDAuMDAxNDQ5LCAwLjAwMTQ1MywgMC4wMDE0NTgiLCBcCi0gICAgICAgICAgIjAuMDAxMjg5LCAwLjAwMTM5OSwgMC4wMDE0MzcsIDAuMDAxNDQ4LCAwLjAwMTQ1NCwgMC4wMDE0NTgsIDAuMDAxNDYxIiwgXAotICAgICAgICAgICIwLjAwMTQxNSwgMC4wMDE0MzMsIDAuMDAxNDM2LCAwLjAwMTQ0NywgMC4wMDE0NTcsIDAuMDAxNDYsIDAuMDAxNDYxIiwgXAotICAgICAgICAgICIwLjAwMTM4MywgMC4wMDE0NjQsIDAuMDAxNDU1LCAwLjAwMTQ1OSwgMC4wMDE0NjUsIDAuMDAxNDY4LCAwLjAwMTQ2OCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwODUxNSwgMC4wMDg1NjUsIDAuMDA4NTcsIDAuMDA4NTcxLCAwLjAwODU3MSwgMC4wMDg1NzEsIDAuMDA4NTcxIiwgXAotICAgICAgICAgICIwLjAwODM2NCwgMC4wMDg1MTcsIDAuMDA4NTQyLCAwLjAwODU0OSwgMC4wMDg1NTYsIDAuMDA4NTU4LCAwLjAwODU2MSIsIFwKLSAgICAgICAgICAiMC4wMDgzMjIsIDAuMDA4NDc2LCAwLjAwODUxNSwgMC4wMDg1MjgsIDAuMDA4NTM3LCAwLjAwODU0NSwgMC4wMDg1NDkiLCBcCi0gICAgICAgICAgIjAuMDA4MzExLCAwLjAwODQ0NiwgMC4wMDg0OTIsIDAuMDA4NTA4LCAwLjAwODUyNSwgMC4wMDg1MzIsIDAuMDA4NTM4IiwgXAotICAgICAgICAgICIwLjAwODM2NCwgMC4wMDg0MzUsIDAuMDA4NDgsIDAuMDA4NDk2LCAwLjAwODUxNCwgMC4wMDg1MjQsIDAuMDA4NTMyIiwgXAotICAgICAgICAgICIwLjAwODQ2NCwgMC4wMDg0MywgMC4wMDg0NjgsIDAuMDA4NDg1LCAwLjAwODUwNCwgMC4wMDg1MTMsIDAuMDA4NTIzIiwgXAotICAgICAgICAgICIwLjAwODU2LCAwLjAwODQ0MiwgMC4wMDg0NjksIDAuMDA4NDgyLCAwLjAwODUsIDAuMDA4NTA5LCAwLjAwODUyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDAxMDEsIDAuMDAwMTcyLCAwLjAwMDE3OSwgMC4wMDAxODEsIDAuMDAwMTgzLCAwLjAwMDE4NCwgMC4wMDAxODUiLCBcCi0gICAgICAgICAgIjAuMDAwMDI2LCAwLjAwMDIyNywgMC4wMDAyNTUsIDAuMDAwMjY0LCAwLjAwMDI3MiwgMC4wMDAyNzYsIDAuMDAwMjc5IiwgXAotICAgICAgICAgICIwLjAwMDEwNiwgMC4wMDAyMDQsIDAuMDAwMjUsIDAuMDAwMjYxLCAwLjAwMDI3MywgMC4wMDAyOCwgMC4wMDAyODYiLCBcCi0gICAgICAgICAgIjAuMDAwMTIzLCAwLjAwMDE4LCAwLjAwMDIzNiwgMC4wMDAyNTMsIDAuMDAwMjY5LCAwLjAwMDI3NywgMC4wMDAyODUiLCBcCi0gICAgICAgICAgIjAuMDAwMDgsIDAuMDAwMTY3LCAwLjAwMDIzNSwgMC4wMDAyNTMsIDAuMDAwMjcxLCAwLjAwMDI4LCAwLjAwMDI4OSIsIFwKLSAgICAgICAgICAiMC4wMDAwMjMsIDAuMDAwMTYxLCAwLjAwMDIyNCwgMC4wMDAyNDYsIDAuMDAwMjY3LCAwLjAwMDI3NywgMC4wMDAyODciLCBcCi0gICAgICAgICAgIjAuMDAwMTUxLCAwLjAwMDE4NiwgMC4wMDAyMzEsIDAuMDAwMjQ2LCAwLjAwMDI2OCwgMC4wMDAyNzgsIDAuMDAwMjg4Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogQU9JMjFYMSAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChBT0kyMVgxKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMTE1MjYyOwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwOTEwODk2OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDkwNzY2OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDkxMDg5NjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA0MDksIDAuMDAwNDA5LCAwLjAwMDQwOSwgMC4wMDA0MDksIDAuMDAwNDA5LCAwLjAwMDQwOSwgMC4wMDA0MDgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA0MjMsIDAuMDAwNDEyLCAwLjAwMDQxLCAwLjAwMDQxLCAwLjAwMDQxLCAwLjAwMDQxLCAwLjAwMDQxIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihBMSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwOTU5ODc7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwOTUzOTk0OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDk1OTg3OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDI2MywgMC4wMDAyNjMsIDAuMDAwMjYyLCAwLjAwMDI2MiwgMC4wMDAyNjMsIDAuMDAwMjYzLCAwLjAwMDI2MiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDQ2NCwgMC4wMDA0NjUsIDAuMDAwNDY1LCAwLjAwMDQ2NSwgMC4wMDA0NjUsIDAuMDAwNDY1LCAwLjAwMDQ2NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQjApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDk0ODM3NzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA5NDgyODI7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwOTQ4Mzc3OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDA4NiwgMC4wMDAwODYsIDAuMDAwMDg2LCAwLjAwMDA4NiwgMC4wMDAwODYsIDAuMDAwMDg2LCAwLjAwMDA4NiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDUwNSwgMC4wMDA1MDUsIDAuMDAwNTA1LCAwLjAwMDUwNSwgMC4wMDA1MDUsIDAuMDAwNTA1LCAwLjAwMDUwNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjEzODg0MTsKLSAgICBmdW5jdGlvbiA6ICIoISgoQTAgQTEpK0IwKSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTkwOTQsIDAuMTQ2MjYsIDAuNDEzMjUzLCAwLjY0ODY4MywgMC45NjI5MTQsIDEuNTkxMDIsIDEuOTgyNzgiLCBcCi0gICAgICAgICAgIjAuMTA4NDI1LCAwLjE1NTU5MiwgMC40MjI1OTUsIDAuNjU4MDMxLCAwLjk3MjM0NCwgMS42MDEyMiwgMS45OTI4MSIsIFwKLSAgICAgICAgICAiMC4xMTg5MDEsIDAuMTY2MDgxLCAwLjQzMzA4NiwgMC42Njg5MjcsIDAuOTgzMTA4LCAxLjYxMTYxLCAyLjAwMjg0IiwgXAotICAgICAgICAgICIwLjEyODkxNCwgMC4xNzYxODksIDAuNDQzMjU0LCAwLjY3ODc0NywgMC45OTMxMTMsIDEuNjIwNDMsIDIuMDE1MTUiLCBcCi0gICAgICAgICAgIjAuMTM4OTA2LCAwLjE4NjEwOCwgMC40NTM0OTIsIDAuNjg4OTMzLCAxLjAwMjgsIDEuNjMxNTIsIDIuMDI0ODEiLCBcCi0gICAgICAgICAgIjAuMTU0ODU2LCAwLjIwMjA0MiwgMC40NjkzNjksIDAuNzA0ODg1LCAxLjAxODg2LCAxLjY0NzgyLCAyLjAzOTI1IiwgXAotICAgICAgICAgICIwLjE2ODUxMSwgMC4yMTU5NTQsIDAuNDgzMjE5LCAwLjcxOTA4MiwgMS4wMzMwMiwgMS42NjEwMSwgMi4wNTUwMSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNzk3NjUsIDAuMjc1MDcsIDAuODE1NzUzLCAxLjI5MjY5LCAxLjkyNzkzLCAzLjE5OTM4LCAzLjk5NDk0IiwgXAotICAgICAgICAgICIwLjE3OTY1MSwgMC4yNzUwMzcsIDAuODE1ODE4LCAxLjI5MjY3LCAxLjkyNzk4LCAzLjIwMDc3LCAzLjk5NDUxIiwgXAotICAgICAgICAgICIwLjE3OTgzLCAwLjI3NDk4NiwgMC44MTU2NTUsIDEuMjkyODgsIDEuOTI4NDksIDMuMjAwNDgsIDMuOTkzOTEiLCBcCi0gICAgICAgICAgIjAuMTgxNTcyLCAwLjI3NTU5MywgMC44MTYxNTIsIDEuMjkyNywgMS45MjgzMiwgMy4xOTk3MiwgMy45OTU5IiwgXAotICAgICAgICAgICIwLjE4NDM5NSwgMC4yNzcxNjEsIDAuODE1OTI3LCAxLjI5MjgzLCAxLjkyNzg4LCAzLjE5OTYxLCAzLjk5NTM0IiwgXAotICAgICAgICAgICIwLjE5MDUxMiwgMC4yODE2NTksIDAuODE1Njc5LCAxLjI5MjY2LCAxLjkyODY4LCAzLjIwMDMxLCAzLjk5NzY2IiwgXAotICAgICAgICAgICIwLjE5NzEzMiwgMC4yODY4NTEsIDAuODE2MzI2LCAxLjI5Mjc5LCAxLjkyNzg5LCAzLjE5OTM4LCAzLjk5NTMiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk3OTUyLCAwLjE0Mzc2MywgMC40MDI2ODgsIDAuNjMwNTA4LCAwLjkzNDg4OSwgMS41NDIyNiwgMS45MjI4NiIsIFwKLSAgICAgICAgICAiMC4xMDY4MjksIDAuMTUyNjU5LCAwLjQxMTY2NSwgMC42Mzk4OTQsIDAuOTQzNTgxLCAxLjU1MTQ2LCAxLjkzMjA3IiwgXAotICAgICAgICAgICIwLjExNzc4LCAwLjE2MzcxNiwgMC40MjI1OTQsIDAuNjUwOTAxLCAwLjk1NDk5NSwgMS41NjI5NCwgMS45NDI5NyIsIFwKLSAgICAgICAgICAiMC4xMjg2NjMsIDAuMTc0NzE4LCAwLjQzMzc1MywgMC42NjE4ODIsIDAuOTY2MDc2LCAxLjU3NDQ3LCAxLjk1NDc5IiwgXAotICAgICAgICAgICIwLjEzOTc2NSwgMC4xODU2MzEsIDAuNDQ0ODEsIDAuNjczMDI2LCAwLjk3Njg0MSwgMS41ODUxOSwgMS45NjQ1IiwgXAotICAgICAgICAgICIwLjE1NzMwNywgMC4yMDI5NjUsIDAuNDYxNzksIDAuNjkwNDQxLCAwLjk5NDc3OSwgMS42MDMxOCwgMS45ODMxIiwgXAotICAgICAgICAgICIwLjE3MjI0OSwgMC4yMTg1MTcsIDAuNDc4MTI1LCAwLjcwNjQ2MywgMS4wMTAzOCwgMS42MTgwNywgMS45OTgxMyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNzMzODgsIDAuMjYzNTEyLCAwLjc3MjU3LCAxLjIyMTM0LCAxLjgxOTk1LCAzLjAxODAzLCAzLjc2NzA2IiwgXAotICAgICAgICAgICIwLjE3MzUzOSwgMC4yNjM0NzEsIDAuNzcyNDM0LCAxLjIyMTQ5LCAxLjgyMDgyLCAzLjAxNzQxLCAzLjc2NTk5IiwgXAotICAgICAgICAgICIwLjE3MzcyMSwgMC4yNjM0MTYsIDAuNzcyNzQsIDEuMjIxNDIsIDEuODE5OTMsIDMuMDE3NzUsIDMuNzY3MTIiLCBcCi0gICAgICAgICAgIjAuMTc1ODc4LCAwLjI2MzkxOSwgMC43NzIyOTMsIDEuMjIxMzksIDEuODIwNjgsIDMuMDE5MDQsIDMuNzY4NzkiLCBcCi0gICAgICAgICAgIjAuMTc5MzA1LCAwLjI2NjA5NCwgMC43NzIyOTQsIDEuMjIxMzQsIDEuODIwMSwgMy4wMTg5NywgMy43NjYxNyIsIFwKLSAgICAgICAgICAiMC4xODYzODMsIDAuMjcxMDg2LCAwLjc3MjEyOCwgMS4yMjEzMiwgMS44MjAwMywgMy4wMTkyMSwgMy43Njc3MiIsIFwKLSAgICAgICAgICAiMC4xOTM1MDcsIDAuMjc2NzM0LCAwLjc3Mjk1MywgMS4yMjE1LCAxLjgyMDUzLCAzLjAxNzg1LCAzLjc2NjIzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkExIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTU1MTEsIDAuMTQyMjA5LCAwLjQwNjg5NywgMC42NDAyODUsIDAuOTUyMTI5LCAxLjU3MzEzLCAxLjk2MzkzIiwgXAotICAgICAgICAgICIwLjEwNDk0OCwgMC4xNTE2OTksIDAuNDE2MzI1LCAwLjY0OTc4OCwgMC45NjE2NjYsIDEuNTgzMzQsIDEuOTcxNjIiLCBcCi0gICAgICAgICAgIjAuMTE1MzQ1LCAwLjE2MjA4NywgMC40MjY3MzQsIDAuNjYwMDU5LCAwLjk3MTQ0OCwgMS41OTQ2OCwgMS45ODQxNCIsIFwKLSAgICAgICAgICAiMC4xMjUzNDIsIDAuMTcyMTg0LCAwLjQzNzAzLCAwLjY3MDI2NywgMC45ODE3NDUsIDEuNjAzNTgsIDEuOTk0NjUiLCBcCi0gICAgICAgICAgIjAuMTM1MzM3LCAwLjE4MjEyOCwgMC40NDcyODcsIDAuNjgwNTA0LCAwLjk5MTUzNiwgMS42MTQ3OSwgMi4wMDQ0IiwgXAotICAgICAgICAgICIwLjE1MTIxNiwgMC4xOTgxLCAwLjQ2MzA2LCAwLjY5NzA2OCwgMS4wMDgxNSwgMS42Mjk4MSwgMi4wMTkxOCIsIFwKLSAgICAgICAgICAiMC4xNjQ4NTYsIDAuMjEyMTU5LCAwLjQ3NzE3NywgMC43MTA2MjYsIDEuMDIxOTYsIDEuNjQ0MTMsIDIuMDMzMDQiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTc0OTc5LCAwLjI2OTY1NiwgMC44MDQ2MDgsIDEuMjc2MzUsIDEuOTA2NTcsIDMuMTcyNzUsIDMuOTUxMTEiLCBcCi0gICAgICAgICAgIjAuMTc0NzMzLCAwLjI2OTY2LCAwLjgwNDEyMiwgMS4yNzY0OSwgMS45MDY0LCAzLjE2NDc1LCAzLjk1NDE4IiwgXAotICAgICAgICAgICIwLjE3NTMwOSwgMC4yNjk2NjcsIDAuODA1OTU3LCAxLjI3ODUxLCAxLjkxMDUzLCAzLjE2NDE3LCAzLjk1MjYxIiwgXAotICAgICAgICAgICIwLjE3Njk4OCwgMC4yNzAzMDUsIDAuODA0MjIyLCAxLjI3OTE4LCAxLjkwNjY0LCAzLjE3MTk3LCAzLjk1MzQ4IiwgXAotICAgICAgICAgICIwLjE3OTYwOCwgMC4yNzE0ODcsIDAuODAzOTc2LCAxLjI3OTQ3LCAxLjkxMDEsIDMuMTY0NDMsIDMuOTUxMTEiLCBcCi0gICAgICAgICAgIjAuMTg1ODc4LCAwLjI3NjMxLCAwLjgwNDYyOCwgMS4yNzY1MywgMS45MDYxNSwgMy4xNzI4MywgMy45NTUwMSIsIFwKLSAgICAgICAgICAiMC4xOTI2MTQsIDAuMjgxNDE0LCAwLjgwNTI2NSwgMS4yNzkzNCwgMS45MTAzMywgMy4xNzA0MywgMy45NjE2OCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTU4NTcsIDAuMTQxNzEsIDAuNDAwNjExLCAwLjYyODg4MSwgMC45MzI2MDcsIDEuNTQwNTcsIDEuOTIxNTYiLCBcCi0gICAgICAgICAgIjAuMTA0ODksIDAuMTUwNzc1LCAwLjQwOTU5NCwgMC42Mzc1NzYsIDAuOTQyMDczLCAxLjU1MDI2LCAxLjkyOTI1IiwgXAotICAgICAgICAgICIwLjExNjUxLCAwLjE2MjQxMiwgMC40MjExOTUsIDAuNjQ5NjA1LCAwLjk1Mzg1NSwgMS41NjIxMiwgMS45NDE3IiwgXAotICAgICAgICAgICIwLjEyODA4MSwgMC4xNzM5MTQsIDAuNDMyOTAxLCAwLjY2MTE3LCAwLjk2NTIwNCwgMS41NzM1NiwgMS45NTMyMSIsIFwKLSAgICAgICAgICAiMC4xMzk4NDMsIDAuMTg1NTksIDAuNDQ0NDE4LCAwLjY3MjYzOCwgMC45NzcwNzksIDEuNTg0OTYsIDEuOTY0NjUiLCBcCi0gICAgICAgICAgIjAuMTU5MjkyLCAwLjIwNDUxNiwgMC40NjMyNTIsIDAuNjkxNTY5LCAwLjk5NTYxNywgMS42MDM1OCwgMS45ODMzOSIsIFwKLSAgICAgICAgICAiMC4xNzYxNTksIDAuMjIxNjYsIDAuNDc5NTMsIDAuNzA3NzIyLCAxLjAxMTc1LCAxLjYxOTQ5LCAyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE3MzUzMiwgMC4yNjMzMywgMC43NzIzNjUsIDEuMjIxNTMsIDEuODIwMDYsIDMuMDE3NSwgMy43NjkwNiIsIFwKLSAgICAgICAgICAiMC4xNzM0MDEsIDAuMjYzMzIyLCAwLjc3MjQ3LCAxLjIyMTM1LCAxLjgyMDE2LCAzLjAxNzkzLCAzLjc2NjIiLCBcCi0gICAgICAgICAgIjAuMTc0MDEsIDAuMjYzMzEzLCAwLjc3MjE5NCwgMS4yMjE0LCAxLjgyMDY4LCAzLjAxOTExLCAzLjc2Nzc4IiwgXAotICAgICAgICAgICIwLjE3NzM0MiwgMC4yNjQ0OTksIDAuNzcyMzI5LCAxLjIyMTc5LCAxLjgyMDczLCAzLjAxOTUsIDMuNzY3MTUiLCBcCi0gICAgICAgICAgIjAuMTgyNDU4LCAwLjI2NzQwMSwgMC43NzIzOTksIDEuMjIyMDQsIDEuODIwMjksIDMuMDE5MjcsIDMuNzY1OTciLCBcCi0gICAgICAgICAgIjAuMTkyMTE4LCAwLjI3NDk1OSwgMC43NzIzMzYsIDEuMjIxNDQsIDEuODIwNzksIDMuMDE3NjQsIDMuNzY1ODEiLCBcCi0gICAgICAgICAgIjAuMjAyMjc1LCAwLjI4Mjk1MSwgMC43NzMwNDQsIDEuMjIxMzksIDEuODIwMDMsIDMuMDE4OSwgMy43Njc2NCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDkyMjgzLCAwLjEzOTQ0NSwgMC40MDYzNzYsIDAuNjQxODIyLCAwLjk1NjE3NywgMS41ODQ4NywgMS45NzY4NSIsIFwKLSAgICAgICAgICAiMC4xMDEyMzMsIDAuMTQ4NDQ5LCAwLjQxNTU4LCAwLjY1MTIwOCwgMC45NjQ5MTIsIDEuNTkzMjcsIDEuOTg1NDkiLCBcCi0gICAgICAgICAgIjAuMTEyNjczLCAwLjE1OTYzOSwgMC40MjcwNjksIDAuNjYzMTA0LCAwLjk3Njc5NCwgMS42MDUwMywgMS45OTc5OCIsIFwKLSAgICAgICAgICAiMC4xMjM5ODgsIDAuMTcxMjM3LCAwLjQzODM1OSwgMC42NzM5NTksIDAuOTg3Nzk3LCAxLjYxNiwgMi4wMDk1NyIsIFwKLSAgICAgICAgICAiMC4xMzU2MTYsIDAuMTgyNzQzLCAwLjQ0OTg0NSwgMC42ODU1NSwgMC45OTk4MDYsIDEuNjI4NDUsIDIuMDIxNTYiLCBcCi0gICAgICAgICAgIjAuMTU0NDUyLCAwLjIwMTI2NCwgMC40NjgzMDgsIDAuNzAzOTQsIDEuMDE4MjUsIDEuNjQ2MTcsIDIuMDM4NzMiLCBcCi0gICAgICAgICAgIjAuMTcwOTM3LCAwLjIxNzQ3MywgMC40ODQzODUsIDAuNzIwMTcxLCAxLjAzNDAyLCAxLjY2MjAzLCAyLjA1NDg0Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE3OTY2OSwgMC4yNzUwNjEsIDAuODE1Nzg3LCAxLjI5MjY2LCAxLjkyODAzLCAzLjIwMDEsIDMuOTkzOTUiLCBcCi0gICAgICAgICAgIjAuMTc5NjQ1LCAwLjI3NTE5NiwgMC44MTU2MjEsIDEuMjkyOTgsIDEuOTI4NywgMy4xOTk3MSwgMy45OTQyIiwgXAotICAgICAgICAgICIwLjE4MDQwNCwgMC4yNzQ4ODIsIDAuODE2MTA3LCAxLjI5MzExLCAxLjkyODYsIDMuMjAwMDIsIDMuOTk0MDgiLCBcCi0gICAgICAgICAgIjAuMTg0MDIzLCAwLjI3NjEyOCwgMC44MTYwMjUsIDEuMjkyNzYsIDEuOTI4MjUsIDMuMTk5NDgsIDMuOTk2MDMiLCBcCi0gICAgICAgICAgIjAuMTg5MzgsIDAuMjc5NCwgMC44MTU5NjksIDEuMjkyNjYsIDEuOTI4NzYsIDMuMjAwNDEsIDMuOTk1NTkiLCBcCi0gICAgICAgICAgIjAuMTk5NjU4LCAwLjI4NzMzMiwgMC44MTU4NDgsIDEuMjkyNjYsIDEuOTI4NiwgMy4yMDAyMywgMy45OTQyMSIsIFwKLSAgICAgICAgICAiMC4yMTAzMjYsIDAuMjk1ODMyLCAwLjgxNjQyNiwgMS4yOTI2OSwgMS45Mjc4NywgMy4xOTk0NywgMy45OTUxMiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDkwMDIsIDAuMDczNzgxLCAwLjIxNDAyMiwgMC4zMzc4MDMsIDAuNTAyNzQ2LCAwLjgzMjY2NiwgMS4wMzkwOCIsIFwKLSAgICAgICAgICAiMC4wNTkxODgsIDAuMDg0MDY0LCAwLjIyNDIsIDAuMzQ3ODU0LCAwLjUxMjgzNCwgMC44NDI4MDQsIDEuMDQ4NzUiLCBcCi0gICAgICAgICAgIjAuMDcyMDk1LCAwLjA5NjYyMSwgMC4yMzY5NjMsIDAuMzYwNzI0LCAwLjUyNDU0MywgMC44NTQ0MzIsIDEuMDYwNDUiLCBcCi0gICAgICAgICAgIjAuMDg1MTE0LCAwLjEwOTkwMSwgMC4yNDk5NTQsIDAuMzczNTc1LCAwLjUzNzYwNSwgMC44Njc3MDMsIDEuMDc0MTMiLCBcCi0gICAgICAgICAgIjAuMDk4MTMsIDAuMTIyODA2LCAwLjI2Mjc2NCwgMC4zODYzMjYsIDAuNTUxMTk2LCAwLjg4MTEsIDEuMDg1NTciLCBcCi0gICAgICAgICAgIjAuMTE3MDY4LCAwLjE0MzcxNywgMC4yODI4ODcsIDAuNDA3MDE0LCAwLjU3MTcxNCwgMC45MDE1MjcsIDEuMTA1MTEiLCBcCi0gICAgICAgICAgIjAuMTMxNTQxLCAwLjE2MTQ1NiwgMC4zMDA4NjgsIDAuNDI1MTY1LCAwLjU4OTgzMiwgMC45MTkzOTcsIDEuMTI1NTMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDkzMTUxLCAwLjE0Mjc4NSwgMC40MjQ0MjksIDAuNjczMTkyLCAxLjAwNTA0LCAxLjY2ODMzLCAyLjA4MzI4IiwgXAotICAgICAgICAgICIwLjA5MzM0NSwgMC4xNDI3OTMsIDAuNDI0Mzk3LCAwLjY3MjkzMSwgMS4wMDU1NywgMS42Njc0OSwgMi4wODYxNCIsIFwKLSAgICAgICAgICAiMC4wOTcwMjYsIDAuMTQ0MzY0LCAwLjQyNDI4NSwgMC42NzMxODgsIDEuMDA0NjgsIDEuNjY4MywgMi4wODMyNCIsIFwKLSAgICAgICAgICAiMC4xMDMwNTcsIDAuMTQ4NTA5LCAwLjQyNDQzOCwgMC42NzI4MiwgMS4wMDQ1NCwgMS42Njc5OSwgMi4wODM1NiIsIFwKLSAgICAgICAgICAiMC4xMTA2MTMsIDAuMTU0MzgxLCAwLjQyNDczLCAwLjY3MzE2MywgMS4wMDQ2NCwgMS42NjczLCAyLjA4NjU2IiwgXAotICAgICAgICAgICIwLjEyNDMwOCwgMC4xNjU2MzUsIDAuNDI4NDg1LCAwLjY3MzIxNywgMS4wMDUyNCwgMS42NjgyLCAyLjA4MzU3IiwgXAotICAgICAgICAgICIwLjEzNzQ2OCwgMC4xNzY5MTgsIDAuNDMzOCwgMC42NzQ1NzEsIDEuMDA0NTEsIDEuNjY4MzMsIDIuMDgxOTgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyNzUyLCAwLjAwMjc1MywgMC4wMDI3NTMsIDAuMDAyNzUzLCAwLjAwMjc1MywgMC4wMDI3NTIsIDAuMDAyNzUyIiwgXAotICAgICAgICAgICIwLjAwMjc0MiwgMC4wMDI3NDQsIDAuMDAyNzQ3LCAwLjAwMjc0OCwgMC4wMDI3NDgsIDAuMDAyNzQ3LCAwLjAwMjc0NyIsIFwKLSAgICAgICAgICAiMC4wMDI3MzUsIDAuMDAyNzM5LCAwLjAwMjc0NSwgMC4wMDI3NDYsIDAuMDAyNzQ2LCAwLjAwMjc0NywgMC4wMDI3NSIsIFwKLSAgICAgICAgICAiMC4wMDI3MzEsIDAuMDAyNzM2LCAwLjAwMjc0MywgMC4wMDI3NDUsIDAuMDAyNzQ1LCAwLjAwMjc0NiwgMC4wMDI3NDYiLCBcCi0gICAgICAgICAgIjAuMDAyNzI3LCAwLjAwMjczMiwgMC4wMDI3NDIsIDAuMDAyNzQ0LCAwLjAwMjc0NSwgMC4wMDI3NDYsIDAuMDAyNzQ1IiwgXAotICAgICAgICAgICIwLjAwMjcyNCwgMC4wMDI3MywgMC4wMDI3NDEsIDAuMDAyNzQyLCAwLjAwMjc0NCwgMC4wMDI3NDYsIDAuMDAyNzQ1IiwgXAotICAgICAgICAgICIwLjAwMjcyMSwgMC4wMDI3MjgsIDAuMDAyNzM5LCAwLjAwMjc0MiwgMC4wMDI3NDQsIDAuMDAyNzQ2LCAwLjAwMjc0NSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDUwMiwgMC4wMDA1MDIsIDAuMDAwNTAyLCAwLjAwMDUwMiwgMC4wMDA1MDEsIDAuMDAwNTAxLCAwLjAwMDUwMSIsIFwKLSAgICAgICAgICAiMC4wMDA0NzcsIDAuMDAwNDgsIDAuMDAwNDg0LCAwLjAwMDQ4NCwgMC4wMDA0ODQsIDAuMDAwNDg0LCAwLjAwMDQ4NCIsIFwKLSAgICAgICAgICAiMC4wMDA0NjUsIDAuMDAwNDcxLCAwLjAwMDQ3OCwgMC4wMDA0OCwgMC4wMDA0ODEsIDAuMDAwNDc5LCAwLjAwMDQ3OSIsIFwKLSAgICAgICAgICAiMC4wMDA0NTcsIDAuMDAwNDY0LCAwLjAwMDQ3NSwgMC4wMDA0NzgsIDAuMDAwNDc4LCAwLjAwMDQ3OSwgMC4wMDA0NzkiLCBcCi0gICAgICAgICAgIjAuMDAwNDUyLCAwLjAwMDQ2LCAwLjAwMDQ3MywgMC4wMDA0NzUsIDAuMDAwNDc3LCAwLjAwMDQ3OCwgMC4wMDA0NzgiLCBcCi0gICAgICAgICAgIjAuMDAwNDQ4LCAwLjAwMDQ1NSwgMC4wMDA0NzEsIDAuMDAwNDc0LCAwLjAwMDQ3NSwgMC4wMDA0NzgsIDAuMDAwNDc3IiwgXAotICAgICAgICAgICIwLjAwMDQ0NywgMC4wMDA0NTMsIDAuMDAwNDY4LCAwLjAwMDQ3MiwgMC4wMDA0NzQsIDAuMDAwNDc2LCAwLjAwMDQ3NiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkExIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDIzODQsIDAuMDAyMzg2LCAwLjAwMjM4NywgMC4wMDIzODgsIDAuMDAyMzg4LCAwLjAwMjM4OCwgMC4wMDIzODgiLCBcCi0gICAgICAgICAgIjAuMDAyMzc0LCAwLjAwMjM4MSwgMC4wMDIzODksIDAuMDAyMzksIDAuMDAyMzkxLCAwLjAwMjM5MiwgMC4wMDIzOTIiLCBcCi0gICAgICAgICAgIjAuMDAyMzYxLCAwLjAwMjM3LCAwLjAwMjM4NSwgMC4wMDIzODgsIDAuMDAyMzksIDAuMDAyMzkxLCAwLjAwMjM5MiIsIFwKLSAgICAgICAgICAiMC4wMDIzNSwgMC4wMDIzNjIsIDAuMDAyMzgxLCAwLjAwMjM4NiwgMC4wMDIzODgsIDAuMDAyMzksIDAuMDAyMzkxIiwgXAotICAgICAgICAgICIwLjAwMjM0MiwgMC4wMDIzNTUsIDAuMDAyMzc4LCAwLjAwMjM4MywgMC4wMDIzODgsIDAuMDAyMzg5LCAwLjAwMjM5IiwgXAotICAgICAgICAgICIwLjAwMjMzMywgMC4wMDIzNDUsIDAuMDAyMzc0LCAwLjAwMjM4LCAwLjAwMjM4NCwgMC4wMDIzODgsIDAuMDAyMzkiLCBcCi0gICAgICAgICAgIjAuMDAyMzI4LCAwLjAwMjM0MSwgMC4wMDIzNjksIDAuMDAyMzc3LCAwLjAwMjM4MywgMC4wMDIzODcsIDAuMDAyMzg4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwNTAxLCAwLjAwMDUwMiwgMC4wMDA1MDIsIDAuMDAwNTAyLCAwLjAwMDUwMSwgMC4wMDA0OTksIDAuMDAwNTAxIiwgXAotICAgICAgICAgICIwLjAwMDQ3NSwgMC4wMDA0NzksIDAuMDAwNDgzLCAwLjAwMDQ4MywgMC4wMDA0ODQsIDAuMDAwNDg0LCAwLjAwMDQ4NCIsIFwKLSAgICAgICAgICAiMC4wMDA0NjMsIDAuMDAwNDY5LCAwLjAwMDQ3NywgMC4wMDA0NzksIDAuMDAwNDgsIDAuMDAwNDgxLCAwLjAwMDQ4IiwgXAotICAgICAgICAgICIwLjAwMDQ1OSwgMC4wMDA0NjUsIDAuMDAwNDc1LCAwLjAwMDQ3NywgMC4wMDA0NzksIDAuMDAwNDc5LCAwLjAwMDQ3OSIsIFwKLSAgICAgICAgICAiMC4wMDA0NiwgMC4wMDA0NjUsIDAuMDAwNDc0LCAwLjAwMDQ3NiwgMC4wMDA0NzgsIDAuMDAwNDc4LCAwLjAwMDQ3OCIsIFwKLSAgICAgICAgICAiMC4wMDA0NjksIDAuMDAwNDY3LCAwLjAwMDQ3NCwgMC4wMDA0NzYsIDAuMDAwNDc3LCAwLjAwMDQ3OCwgMC4wMDA0NzgiLCBcCi0gICAgICAgICAgIjAuMDAwNDgxLCAwLjAwMDQ3NywgMC4wMDA0NzYsIDAuMDAwNDc3LCAwLjAwMDQ3OCwgMC4wMDA0NzgsIDAuMDAwNDc4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTk2MiwgMC4wMDE5NjQsIDAuMDAxOTY3LCAwLjAwMTk2NywgMC4wMDE5NjcsIDAuMDAxOTY3LCAwLjAwMTk2NiIsIFwKLSAgICAgICAgICAiMC4wMDE5NDIsIDAuMDAxOTQ5LCAwLjAwMTk2MSwgMC4wMDE5NjMsIDAuMDAxOTY0LCAwLjAwMTk2NSwgMC4wMDE5NjUiLCBcCi0gICAgICAgICAgIjAuMDAxOTI2LCAwLjAwMTkzNSwgMC4wMDE5NTUsIDAuMDAxOTU5LCAwLjAwMTk2MSwgMC4wMDE5NjMsIDAuMDAxOTYzIiwgXAotICAgICAgICAgICIwLjAwMTkyMSwgMC4wMDE5MzEsIDAuMDAxOTUxLCAwLjAwMTk1NiwgMC4wMDE5NTksIDAuMDAxOTYyLCAwLjAwMTk2MiIsIFwKLSAgICAgICAgICAiMC4wMDE5MiwgMC4wMDE5MjgsIDAuMDAxOTQ4LCAwLjAwMTk1NCwgMC4wMDE5NTcsIDAuMDAxOTYsIDAuMDAxOTYxIiwgXAotICAgICAgICAgICIwLjAwMTkzLCAwLjAwMTkzLCAwLjAwMTk0NiwgMC4wMDE5NTIsIDAuMDAxOTU2LCAwLjAwMTk1OSwgMC4wMDE5NiIsIFwKLSAgICAgICAgICAiMC4wMDE5NDEsIDAuMDAxOTM2LCAwLjAwMTk0NiwgMC4wMDE5NTEsIDAuMDAxOTU1LCAwLjAwMTk1OCwgMC4wMDE5NTkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDAwMzEsIDAuMDAwMDM0LCAwLjAwMDAzNywgMC4wMDAwMzgsIDAuMDAwMDM4LCAwLjAwMDAzOSwgMC4wMDAwMzkiLCBcCi0gICAgICAgICAgIjAuMDAwMDIzLCAwLjAwMDAzNCwgMC4wMDAwNDksIDAuMDAwMDUyLCAwLjAwMDA1NCwgMC4wMDAwNTUsIDAuMDAwMDU2IiwgXAotICAgICAgICAgICIwLjAwMDAxMSwgMC4wMDAwMjIsIDAuMDAwMDQ1LCAwLjAwMDA1LCAwLjAwMDA1NSwgMC4wMDAwNTgsIDAuMDAwMDU5IiwgXAotICAgICAgICAgICIwLjAwMDAyMiwgMC4wMDAwMTIsIDAuMDAwMDQsIDAuMDAwMDQ3LCAwLjAwMDA1MiwgMC4wMDAwNTYsIDAuMDAwMDU3IiwgXAotICAgICAgICAgICIwLjAwMDAyNCwgMC4wMDAwMTEsIDAuMDAwMDM5LCAwLjAwMDA0NiwgMC4wMDAwNTEsIDAuMDAwMDU0LCAwLjAwMDA1OCIsIFwKLSAgICAgICAgICAiMC4wMDAwMTgsIDAuMDAwMDEsIDAuMDAwMDM1LCAwLjAwMDA0NCwgMC4wMDAwNDksIDAuMDAwMDU0LCAwLjAwMDA1NyIsIFwKLSAgICAgICAgICAiMC4wMDAwMDgsIDAuMDAwMDEzLCAwLjAwMDAzNCwgMC4wMDAwNDMsIDAuMDAwMDQ4LCAwLjAwMDA1MywgMC4wMDAwNTUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBBT0kyMVhMICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKEFPSTIxWEwpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4wNjQ0NDY2OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjAxMDYxOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDU5OTIyNDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2MDEwNjE7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjI2LCAwLjAwMDIyNiwgMC4wMDAyMjYsIDAuMDAwMjI2LCAwLjAwMDIyNiwgMC4wMDAyMjYsIDAuMDAwMjI2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjM0LCAwLjAwMDIyOCwgMC4wMDAyMjcsIDAuMDAwMjI3LCAwLjAwMDIyNywgMC4wMDAyMjcsIDAuMDAwMjI3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihBMSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjY2NzQzOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDY2MzQxMTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2NjY3NDM7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMTI2LCAwLjAwMDEyNiwgMC4wMDAxMjYsIDAuMDAwMTI2LCAwLjAwMDEyNiwgMC4wMDAxMjYsIDAuMDAwMTI2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjU3LCAwLjAwMDI1NywgMC4wMDAyNTcsIDAuMDAwMjU3LCAwLjAwMDI1NywgMC4wMDAyNTcsIDAuMDAwMjU3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjYzNTc2OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDY2MzQ2ODsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2NjM1NzY7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMDUsIDAuMDAwMDUsIDAuMDAwMDUsIDAuMDAwMDUsIDAuMDAwMDUsIDAuMDAwMDUsIDAuMDAwMDUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAzNTgsIDAuMDAwMzU4LCAwLjAwMDM1OCwgMC4wMDAzNTgsIDAuMDAwMzU3LCAwLjAwMDM1NywgMC4wMDAzNTciKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4wODEwNDgxOwotICAgIGZ1bmN0aW9uIDogIighKChBMCBBMSkrQjApKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTAiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE1NzI5MiwgMC4xODQyMzIsIDAuNDI1OTg2LCAwLjgyOTAzMywgMS4yMzE2NCwgMi4xNzE3MSwgMi43MDgyNCIsIFwKLSAgICAgICAgICAiMC4xNjY3MjUsIDAuMTkzNjExLCAwLjQzNTI0NywgMC44Mzg1NjksIDEuMjQxMTcsIDIuMTgxNDQsIDIuNzE3OTkiLCBcCi0gICAgICAgICAgIjAuMTc2OTk2LCAwLjIwMzg1OSwgMC40NDU4OTUsIDAuODQ4NDM0LCAxLjI1MTAyLCAyLjE5MTM3LCAyLjcyNzk1IiwgXAotICAgICAgICAgICIwLjE4Njk4NSwgMC4yMTM4MzQsIDAuNDU1ODA4LCAwLjg1ODI5MywgMS4yNjE4NCwgMi4yMDE4MSwgMi43Mzc3NCIsIFwKLSAgICAgICAgICAiMC4xOTY2ODMsIDAuMjIzNTUzLCAwLjQ2NTYxOSwgMC44Njg4NDcsIDEuMjcxODEsIDIuMjExNTIsIDIuNzQ4MDEiLCBcCi0gICAgICAgICAgIjAuMjEyMzQzLCAwLjIzOTIxMywgMC40ODEyMzksIDAuODg0MDc0LCAxLjI4NzgsIDIuMjI3MjYsIDIuNzYzNjEiLCBcCi0gICAgICAgICAgIjAuMjI1OTkzLCAwLjI1MzEzOSwgMC40OTUwMSwgMC44OTc4NTIsIDEuMzAwNCwgMi4yNDAxMSwgMi43NzcyMSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yOTY4NjksIDAuMzUxNTE0LCAwLjg0MjM3LCAxLjY1OTcsIDIuNDc2OTksIDQuMzgzNzIsIDUuNDc1MSIsIFwKLSAgICAgICAgICAiMC4yOTY4NzEsIDAuMzUxMzk2LCAwLjg0MjQ3MywgMS42NTk0NSwgMi40NzY2MiwgNC4zODM1NiwgNS40NzMzNSIsIFwKLSAgICAgICAgICAiMC4yOTY4NjgsIDAuMzUxMzY0LCAwLjg0MjYwMywgMS42NjAwMiwgMi40NzYzOSwgNC4zODQyMywgNS40NzU4MiIsIFwKLSAgICAgICAgICAiMC4yOTcyMTUsIDAuMzUxNTYyLCAwLjg0MjI3OSwgMS42NTk1MywgMi40NzY5NCwgNC4zODM1NiwgNS40NzI2OCIsIFwKLSAgICAgICAgICAiMC4yOTg2OSwgMC4zNTI0NTksIDAuODQyMjA3LCAxLjY2MDAyLCAyLjQ3NzI1LCA0LjM4MzcyLCA1LjQ3NDc2IiwgXAotICAgICAgICAgICIwLjMwMjc2NywgMC4zNTU2MzYsIDAuODQyNjA1LCAxLjY1OTcsIDIuNDc3MTYsIDQuMzgzNzIsIDUuNDc2NjIiLCBcCi0gICAgICAgICAgIjAuMzA3NTYxLCAwLjM2MDEyLCAwLjg0Mjc3MywgMS42NTk0MSwgMi40NzYzNiwgNC4zODMwMSwgNS40NzY1MSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNTEyMTQsIDAuMTc2NzM2LCAwLjQwNjA1LCAwLjc4NzU2MSwgMS4xNjkyLCAyLjA1OTYzLCAyLjU2NzYzIiwgXAotICAgICAgICAgICIwLjE2MDE1NywgMC4xODU2NjksIDAuNDE0ODI1LCAwLjc5Njc2OCwgMS4xNzc4MSwgMi4wNjc3MywgMi41NzcxMiIsIFwKLSAgICAgICAgICAiMC4xNzEwNjcsIDAuMTk2Njg3LCAwLjQyNTg5MiwgMC44MDc4MjMsIDEuMTg5MTQsIDIuMDc4NjYsIDIuNTg3ODMiLCBcCi0gICAgICAgICAgIjAuMTgyMDUzLCAwLjIwNzYsIDAuNDM2OTA1LCAwLjgxODgyOCwgMS4yMDA0MywgMi4wOTAyOCwgMi41OTc5NCIsIFwKLSAgICAgICAgICAiMC4xOTI3OTQsIDAuMjE4NDg4LCAwLjQ0NzkxNiwgMC44MjkzMDQsIDEuMjEwOTgsIDIuMTAwNTUsIDIuNjA5OTUiLCBcCi0gICAgICAgICAgIjAuMjEwMzg3LCAwLjIzNTcxMywgMC40NjU2NzEsIDAuODQ3MzcyLCAxLjIyOTIxLCAyLjExODI0LCAyLjYyNzQ0IiwgXAotICAgICAgICAgICIwLjIyNTM1NSwgMC4yNTA5NjksIDAuNDgwODkyLCAwLjg2MjQ4OSwgMS4yNDM5NSwgMi4xMzM4OSwgMi42NDIyNCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yNzc5OTEsIDAuMzI4NDI2LCAwLjc3OTUzOCwgMS41MzE0NSwgMi4yODQyMSwgNC4wNDAyNCwgNS4wNDA0NiIsIFwKLSAgICAgICAgICAiMC4yNzgwODMsIDAuMzI4MjQyLCAwLjc3OTUyNCwgMS41MzE4NywgMi4yODQxNSwgNC4wMzc3LCA1LjA0MjYxIiwgXAotICAgICAgICAgICIwLjI3Nzk3OCwgMC4zMjgyMzQsIDAuNzc5OTE5LCAxLjUzMjA5LCAyLjI4Mzk5LCA0LjAzODYyLCA1LjA0MzU0IiwgXAotICAgICAgICAgICIwLjI3ODUzNywgMC4zMjg0MDgsIDAuNzc5OTE1LCAxLjUzMTU5LCAyLjI4NDI2LCA0LjA0MDAyLCA1LjA0MTIxIiwgXAotICAgICAgICAgICIwLjI4MDUxOCwgMC4zMjk4NzksIDAuNzc5NDYyLCAxLjUzMTQ0LCAyLjI4NDI0LCA0LjAzODYzLCA1LjA0MzkzIiwgXAotICAgICAgICAgICIwLjI4NTU4MywgMC4zMzM1NzEsIDAuNzc5NjcxLCAxLjUzMTMzLCAyLjI4NDY2LCA0LjAzODQ2LCA1LjA0MTkyIiwgXAotICAgICAgICAgICIwLjI5MDg4MSwgMC4zMzg0NywgMC43ODAxMTgsIDEuNTMyMDMsIDIuMjgzMzgsIDQuMDM4NDcsIDUuMDQxMzkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE1Mjg3MSwgMC4xNzk0MjMsIDAuNDE4ODE5LCAwLjgxNzI1MiwgMS4yMTYxNSwgMi4xNDY1NSwgMi42NzcwMiIsIFwKLSAgICAgICAgICAiMC4xNjIzNjYsIDAuMTg4OTg0LCAwLjQyODI4MywgMC44MjY4NjMsIDEuMjI1NzQsIDIuMTU2NTcsIDIuNjg3NDEiLCBcCi0gICAgICAgICAgIjAuMTcyNjE4LCAwLjE5OTIyNSwgMC40Mzg5MTgsIDAuODM3MTE0LCAxLjIzNTg0LCAyLjE2NjM5LCAyLjY5NzQ5IiwgXAotICAgICAgICAgICIwLjE4MjU3MywgMC4yMDkxNjIsIDAuNDQ4ODM3LCAwLjg0NzUxNywgMS4yNDY0NCwgMi4xNzY2NiwgMi43MDczNCIsIFwKLSAgICAgICAgICAiMC4xOTIzMjIsIDAuMjE4OTYxLCAwLjQ1ODY0MywgMC44NTc3MSwgMS4yNTY1NSwgMi4xODY2MSwgMi43MTc1NSIsIFwKLSAgICAgICAgICAiMC4yMDgwNjYsIDAuMjM0Nzk1LCAwLjQ3NDMzMiwgMC44NzMwMDIsIDEuMjcyNzUsIDIuMjAxMzksIDIuNzMzMzYiLCBcCi0gICAgICAgICAgIjAuMjIxNzkyLCAwLjI0ODY1NiwgMC40ODgxNDQsIDAuODg3NTg3LCAxLjI4NTcyLCAyLjIxNTM1LCAyLjc0NyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yOTAxODIsIDAuMzQ0NjYyLCAwLjgyODc0OSwgMS42Mzg0NiwgMi40NDUwNiwgNC4zMzEyNywgNS40MTcxOSIsIFwKLSAgICAgICAgICAiMC4yOTA2MDQsIDAuMzQzOSwgMC44Mjg3NTksIDEuNjM4MzUsIDIuNDQ1MTEsIDQuMzMwNDcsIDUuNDE3NzUiLCBcCi0gICAgICAgICAgIjAuMjkwMTk0LCAwLjM0NDU2MywgMC44Mjg5ODIsIDEuNjM3OTcsIDIuNDQ2MjksIDQuMzMwODcsIDUuNDEzMTEiLCBcCi0gICAgICAgICAgIjAuMjkxMTExLCAwLjM0NDE2NiwgMC44Mjg2NDIsIDEuNjM3ODEsIDIuNDQ1MTEsIDQuMzMxMzYsIDUuNDExOTgiLCBcCi0gICAgICAgICAgIjAuMjkxOTMyLCAwLjM0NTc0MSwgMC44Mjg3MzUsIDEuNjM2NTMsIDIuNDQ0NjYsIDQuMzMxNDgsIDUuNDEyMDYiLCBcCi0gICAgICAgICAgIjAuMjk2NTk0LCAwLjM0ODYwNiwgMC44Mjg3NTMsIDEuNjM5ODMsIDIuNDQ0NjksIDQuMzQwODMsIDUuNDEyMjQiLCBcCi0gICAgICAgICAgIjAuMzAxMjYyLCAwLjM1MzEwMywgMC44Mjk2MjksIDEuNjM3MywgMi40NTA1OCwgNC4zMzg5MSwgNS40MTE3Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE0OTAyNywgMC4xNzQ1ODEsIDAuNDAzODQzLCAwLjc4NTYxNSwgMS4xNjY4LCAyLjA1NjksIDIuNTY1NDEiLCBcCi0gICAgICAgICAgIjAuMTU4MDc0LCAwLjE4MzYwMywgMC40MTI4NDcsIDAuNzk0MzEyLCAxLjE3NTYyLCAyLjA2NiwgMi41NzQ3OCIsIFwKLSAgICAgICAgICAiMC4xNjk3NzYsIDAuMTk1MzYzLCAwLjQyNDU0NCwgMC44MDYzMTcsIDEuMTg3NzMsIDIuMDc3ODUsIDIuNTg2NTgiLCBcCi0gICAgICAgICAgIjAuMTgxMjQzLCAwLjIwNjc0NCwgMC40MzYwNzUsIDAuODE3NDg5LCAxLjE5ODg3LCAyLjA4OTE5LCAyLjU5Nzc3IiwgXAotICAgICAgICAgICIwLjE5MjkzLCAwLjIxODQ3OSwgMC40NDc2MDcsIDAuODI5MTcsIDEuMjEwNjEsIDIuMTAxMDUsIDIuNjA5OTgiLCBcCi0gICAgICAgICAgIjAuMjExNzAxLCAwLjIzNzI0MywgMC40NjY0LCAwLjg0ODEyOCwgMS4yMjkzLCAyLjExOTc2LCAyLjYyODIzIiwgXAotICAgICAgICAgICIwLjIyODgyNSwgMC4yNTM4MjksIDAuNDgyNzI0LCAwLjg2NDQ3MSwgMS4yNDU4NywgMi4xMzUzMSwgMi42NDQzNSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yNzgyNDYsIDAuMzI4NDAyLCAwLjc3OTU0NSwgMS41MzIxNCwgMi4yODM0MywgNC4wMzk0OCwgNS4wNDIxMSIsIFwKLSAgICAgICAgICAiMC4yNzgyMjMsIDAuMzI4MjE3LCAwLjc3OTY2LCAxLjUzMjEsIDIuMjgzOTcsIDQuMDM5NjgsIDUuMDQ0NTgiLCBcCi0gICAgICAgICAgIjAuMjc4MjI2LCAwLjMyODI1OSwgMC43Nzk4OCwgMS41MzEzOSwgMi4yODM0NCwgNC4wMzk0OSwgNS4wNDIyMyIsIFwKLSAgICAgICAgICAiMC4yNzg4MzIsIDAuMzI4NjQ3LCAwLjc3OTQ1NywgMS41MzE0OSwgMi4yODQwNCwgNC4wMzkzOSwgNS4wNDIyNSIsIFwKLSAgICAgICAgICAiMC4yODE3MjIsIDAuMzMwMzg5LCAwLjc3OTUxMywgMS41MzE0OCwgMi4yODQyOSwgNC4wMzk1OCwgNS4wNDI0NyIsIFwKLSAgICAgICAgICAiMC4yODg4OTUsIDAuMzM2MTY4LCAwLjc3OTU1MSwgMS41MzE0MiwgMi4yODQ2MSwgNC4wMzgyNCwgNS4wNDIyMSIsIFwKLSAgICAgICAgICAiMC4yOTY0OTcsIDAuMzQzMTk2LCAwLjc4MDE4NiwgMS41MzE5MywgMi4yODQzMiwgNC4wMzg2NCwgNS4wNDA0MiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTQ5NDY2LCAwLjE3NjM0MiwgMC40MTc5MzUsIDAuODIxMjMsIDEuMjIzODMsIDIuMTYzODQsIDIuNzAwMyIsIFwKLSAgICAgICAgICAiMC4xNTg1MTcsIDAuMTg1NDg5LCAwLjQyNzMyNywgMC44MzAyNjIsIDEuMjMzNjksIDIuMTc0NzIsIDIuNzEwMjciLCBcCi0gICAgICAgICAgIjAuMTY5NzQ4LCAwLjE5NjY1MywgMC40Mzg0MzQsIDAuODQxNTQ1LCAxLjI0NDMyLCAyLjE4NDI2LCAyLjcyMTEyIiwgXAotICAgICAgICAgICIwLjE4MDk2NSwgMC4yMDc4NTgsIDAuNDQ5OTYzLCAwLjg1MzAyNywgMS4yNTYwOSwgMi4xOTU5NSwgMi43MzE2MyIsIFwKLSAgICAgICAgICAiMC4xOTIzMDIsIDAuMjE5MjI5LCAwLjQ2MTA3NCwgMC44NjM4MzYsIDEuMjY3MzYsIDIuMjA3MDIsIDIuNzQzNDQiLCBcCi0gICAgICAgICAgIjAuMjEwNTcxLCAwLjIzNzQwMSwgMC40NzkxODcsIDAuODgxOTcyLCAxLjI4NDc5LCAyLjIyNDQ2LCAyLjc2MTczIiwgXAotICAgICAgICAgICIwLjIyNjcxMSwgMC4yNTM1ODEsIDAuNDk1MTI1LCAwLjg5Nzg5NiwgMS4zMDA4MiwgMi4yNDIyOCwgMi43Nzc0MiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yOTcwNjYsIDAuMzUxMzk3LCAwLjg0MjE3NSwgMS42NTk3MSwgMi40NzY3NywgNC4zODM3MSwgNS40NzU2NyIsIFwKLSAgICAgICAgICAiMC4yOTY4NDksIDAuMzUxMzkyLCAwLjg0MjI2MiwgMS42NTkxNCwgMi40NzcxOSwgNC4zODUzNSwgNS40NzM0OCIsIFwKLSAgICAgICAgICAiMC4yOTY4NTMsIDAuMzUxNDM1LCAwLjg0MjA2MywgMS42NTk1MiwgMi40NzY2MywgNC4zODQzLCA1LjQ3MzMzIiwgXAotICAgICAgICAgICIwLjI5NzU5OCwgMC4zNTE1OSwgMC44NDI1NTcsIDEuNjU5ODYsIDIuNDc3MjMsIDQuMzgzNjYsIDUuNDcyMjQiLCBcCi0gICAgICAgICAgIjAuMzAwNTczLCAwLjM1MzUyLCAwLjg0MjAwMywgMS42NTk2NCwgMi40NzcwMSwgNC4zODM3NiwgNS40NzYyOCIsIFwKLSAgICAgICAgICAiMC4zMDc5MzEsIDAuMzU5NDY1LCAwLjg0MjMwMiwgMS42NiwgMi40Nzc0LCA0LjM4NTg4LCA1LjQ3NTUyIiwgXAotICAgICAgICAgICIwLjMxNjE5NCwgMC4zNjY3MSwgMC44NDI0MzksIDEuNjU5NSwgMi40NzY0OCwgNC4zODQ3MSwgNS40NzYyIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3NzYxNiwgMC4wOTE0NSwgMC4yMTYwMTMsIDAuNDIzNTY3LCAwLjYzMTA4MywgMS4xMTUxMiwgMS4zOTE4NSIsIFwKLSAgICAgICAgICAiMC4wODc4MiwgMC4xMDE2MTcsIDAuMjI2MjI5LCAwLjQzMzgxMywgMC42NDEzMTgsIDEuMTI1MzMsIDEuNDAyMjYiLCBcCi0gICAgICAgICAgIjAuMTAwNDQ3LCAwLjExNDQ1MywgMC4yMzg4ODUsIDAuNDQ2NDcxLCAwLjY1Mjc2LCAxLjEzNjksIDEuNDEzODUiLCBcCi0gICAgICAgICAgIjAuMTEzMzQ4LCAwLjEyNzA2LCAwLjI1MTc1NCwgMC40NTkyMjUsIDAuNjY1MjY5LCAxLjE0OTQ0LCAxLjQyNjA4IiwgXAotICAgICAgICAgICIwLjEyNjUxOSwgMC4xNDAzMDksIDAuMjY0NjU1LCAwLjQ3MTkzMywgMC42Nzk0MzMsIDEuMTYyMTQsIDEuNDM4OCIsIFwKLSAgICAgICAgICAiMC4xNDczOSwgMC4xNjEyNjEsIDAuMjg0NzYsIDAuNDkyNTM2LCAwLjY5OTgyNywgMS4xODE5NiwgMS40NTgxMSIsIFwKLSAgICAgICAgICAiMC4xNjU0NiwgMC4xNzk0MzgsIDAuMzAyNzE2LCAwLjUxMDY0OCwgMC43MTc3NzUsIDEuMTk5LCAxLjQ3NjI4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE1MDMxMSwgMC4xNzc5NzksIDAuNDI3MDk2LCAwLjg0MzAzNCwgMS4yNTg5NiwgMi4yMjk0MywgMi43ODU3OCIsIFwKLSAgICAgICAgICAiMC4xNTAzMjQsIDAuMTc3OTg2LCAwLjQyNzIyNiwgMC44NDI2MDQsIDEuMjU5NzcsIDIuMjMxMDQsIDIuNzg0MiIsIFwKLSAgICAgICAgICAiMC4xNTE2NzYsIDAuMTc4NjUxLCAwLjQyNzE5OSwgMC44NDI5MzQsIDEuMjU4OTIsIDIuMjI5MjEsIDIuNzg0ODIiLCBcCi0gICAgICAgICAgIjAuMTU1OTE3LCAwLjE4MjAyNSwgMC40MjcyMDgsIDAuODQyNTk2LCAxLjI2MDM1LCAyLjIyOTQzLCAyLjc4MzMiLCBcCi0gICAgICAgICAgIjAuMTYxMjk0LCAwLjE4NjcxLCAwLjQyNzY1NSwgMC44NDMwMTcsIDEuMjU5NiwgMi4yMjk5NSwgMi43ODc5OSIsIFwKLSAgICAgICAgICAiMC4xNzIzMjksIDAuMTk2ODIxLCAwLjQzMTA0LCAwLjg0MjcwMiwgMS4yNTkwMywgMi4yMjc1NSwgMi43ODg4MSIsIFwKLSAgICAgICAgICAiMC4xODM1MjYsIDAuMjA3MDEzLCAwLjQzNjQzMiwgMC44NDI2MiwgMS4yNTk4MiwgMi4yMjk3NiwgMi43ODI5NSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDE3OTcsIDAuMDAxNzk3LCAwLjAwMTc5NywgMC4wMDE3OTcsIDAuMDAxNzk3LCAwLjAwMTc5NiwgMC4wMDE3OTYiLCBcCi0gICAgICAgICAgIjAuMDAxNzkzLCAwLjAwMTc5MywgMC4wMDE3OTQsIDAuMDAxNzk0LCAwLjAwMTc5NCwgMC4wMDE3OTQsIDAuMDAxNzkzIiwgXAotICAgICAgICAgICIwLjAwMTc5LCAwLjAwMTc5LCAwLjAwMTc5MywgMC4wMDE3OTQsIDAuMDAxNzk1LCAwLjAwMTc5MywgMC4wMDE3OTQiLCBcCi0gICAgICAgICAgIjAuMDAxNzg4LCAwLjAwMTc4OSwgMC4wMDE3OTEsIDAuMDAxNzkzLCAwLjAwMTc5MywgMC4wMDE3OTMsIDAuMDAxNzk0IiwgXAotICAgICAgICAgICIwLjAwMTc4NiwgMC4wMDE3ODcsIDAuMDAxNzkyLCAwLjAwMTc5MywgMC4wMDE3OTMsIDAuMDAxNzkzLCAwLjAwMTc5MyIsIFwKLSAgICAgICAgICAiMC4wMDE3ODQsIDAuMDAxNzg2LCAwLjAwMTc5LCAwLjAwMTc5MiwgMC4wMDE3OTMsIDAuMDAxNzkzLCAwLjAwMTc5MyIsIFwKLSAgICAgICAgICAiMC4wMDE3ODQsIDAuMDAxNzg1LCAwLjAwMTc5LCAwLjAwMTc5MiwgMC4wMDE3OTIsIDAuMDAxNzkyLCAwLjAwMTc5MiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDM3NSwgMC4wMDAzNzUsIDAuMDAwMzc1LCAwLjAwMDM3NSwgMC4wMDAzNzQsIDAuMDAwMzczLCAwLjAwMDM3MyIsIFwKLSAgICAgICAgICAiMC4wMDAzNjIsIDAuMDAwMzYzLCAwLjAwMDM2NCwgMC4wMDAzNjQsIDAuMDAwMzY0LCAwLjAwMDM2NCwgMC4wMDAzNjQiLCBcCi0gICAgICAgICAgIjAuMDAwMzU3LCAwLjAwMDM1OCwgMC4wMDAzNjEsIDAuMDAwMzYyLCAwLjAwMDM2MiwgMC4wMDAzNjIsIDAuMDAwMzYyIiwgXAotICAgICAgICAgICIwLjAwMDM1NCwgMC4wMDAzNTUsIDAuMDAwMzU5LCAwLjAwMDM2MSwgMC4wMDAzNjEsIDAuMDAwMzYxLCAwLjAwMDM2MSIsIFwKLSAgICAgICAgICAiMC4wMDAzNTIsIDAuMDAwMzUzLCAwLjAwMDM1OCwgMC4wMDAzNiwgMC4wMDAzNiwgMC4wMDAzNiwgMC4wMDAzNiIsIFwKLSAgICAgICAgICAiMC4wMDAzNDksIDAuMDAwMzUxLCAwLjAwMDM1NiwgMC4wMDAzNTksIDAuMDAwMzU5LCAwLjAwMDM2LCAwLjAwMDM2IiwgXAotICAgICAgICAgICIwLjAwMDM0OSwgMC4wMDAzNSwgMC4wMDAzNTYsIDAuMDAwMzU4LCAwLjAwMDM1OSwgMC4wMDAzNTksIDAuMDAwMzU5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTU2NywgMC4wMDE1NjcsIDAuMDAxNTY4LCAwLjAwMTU2OCwgMC4wMDE1NjgsIDAuMDAxNTY4LCAwLjAwMTU2OCIsIFwKLSAgICAgICAgICAiMC4wMDE1NjQsIDAuMDAxNTY1LCAwLjAwMTU2OCwgMC4wMDE1NjksIDAuMDAxNTcsIDAuMDAxNTcsIDAuMDAxNTciLCBcCi0gICAgICAgICAgIjAuMDAxNTU4LCAwLjAwMTU2MSwgMC4wMDE1NjYsIDAuMDAxNTY3LCAwLjAwMTU2OSwgMC4wMDE1NywgMC4wMDE1NzEiLCBcCi0gICAgICAgICAgIjAuMDAxNTU0LCAwLjAwMTU1NSwgMC4wMDE1NjQsIDAuMDAxNTY3LCAwLjAwMTU2OCwgMC4wMDE1NjksIDAuMDAxNTY5IiwgXAotICAgICAgICAgICIwLjAwMTU0OSwgMC4wMDE1NTIsIDAuMDAxNTYyLCAwLjAwMTU2NiwgMC4wMDE1NjgsIDAuMDAxNTY5LCAwLjAwMTU3IiwgXAotICAgICAgICAgICIwLjAwMTU0NCwgMC4wMDE1NDgsIDAuMDAxNTU5LCAwLjAwMTU2NCwgMC4wMDE1NjcsIDAuMDAxNTY4LCAwLjAwMTU2OSIsIFwKLSAgICAgICAgICAiMC4wMDE1NDIsIDAuMDAxNTQ1LCAwLjAwMTU1NywgMC4wMDE1NjQsIDAuMDAxNTY2LCAwLjAwMTU2OCwgMC4wMDE1NjgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDAzNzUsIDAuMDAwMzc1LCAwLjAwMDM3NSwgMC4wMDAzNzUsIDAuMDAwMzc0LCAwLjAwMDM3NCwgMC4wMDAzNzQiLCBcCi0gICAgICAgICAgIjAuMDAwMzYyLCAwLjAwMDM2MiwgMC4wMDAzNjQsIDAuMDAwMzY0LCAwLjAwMDM2NCwgMC4wMDAzNjQsIDAuMDAwMzY0IiwgXAotICAgICAgICAgICIwLjAwMDM1NiwgMC4wMDAzNTcsIDAuMDAwMzYxLCAwLjAwMDM2MiwgMC4wMDAzNjMsIDAuMDAwMzYyLCAwLjAwMDM2MiIsIFwKLSAgICAgICAgICAiMC4wMDAzNTUsIDAuMDAwMzU2LCAwLjAwMDM2LCAwLjAwMDM2MSwgMC4wMDAzNjEsIDAuMDAwMzYxLCAwLjAwMDM2MSIsIFwKLSAgICAgICAgICAiMC4wMDAzNTUsIDAuMDAwMzU2LCAwLjAwMDM1OSwgMC4wMDAzNiwgMC4wMDAzNjEsIDAuMDAwMzYxLCAwLjAwMDM2MSIsIFwKLSAgICAgICAgICAiMC4wMDAzNTcsIDAuMDAwMzU4LCAwLjAwMDM2LCAwLjAwMDM2LCAwLjAwMDM2MSwgMC4wMDAzNiwgMC4wMDAzNiIsIFwKLSAgICAgICAgICAiMC4wMDAzNjQsIDAuMDAwMzYxLCAwLjAwMDM2MSwgMC4wMDAzNjEsIDAuMDAwMzYxLCAwLjAwMDM2MSwgMC4wMDAzNiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDEzMTksIDAuMDAxMzE5LCAwLjAwMTMyLCAwLjAwMTMyLCAwLjAwMTMyLCAwLjAwMTMyLCAwLjAwMTMxOSIsIFwKLSAgICAgICAgICAiMC4wMDEzMTIsIDAuMDAxMzEzLCAwLjAwMTMxNywgMC4wMDEzMTksIDAuMDAxMzE5LCAwLjAwMTMxOSwgMC4wMDEzMTkiLCBcCi0gICAgICAgICAgIjAuMDAxMzA1LCAwLjAwMTMwNywgMC4wMDEzMTQsIDAuMDAxMzE3LCAwLjAwMTMxOCwgMC4wMDEzMTgsIDAuMDAxMzE4IiwgXAotICAgICAgICAgICIwLjAwMTMwMiwgMC4wMDEzMDQsIDAuMDAxMzEyLCAwLjAwMTMxNiwgMC4wMDEzMTcsIDAuMDAxMzE4LCAwLjAwMTMxOCIsIFwKLSAgICAgICAgICAiMC4wMDEzMDEsIDAuMDAxMzAyLCAwLjAwMTMxLCAwLjAwMTMxNSwgMC4wMDEzMTYsIDAuMDAxMzE3LCAwLjAwMTMxNyIsIFwKLSAgICAgICAgICAiMC4wMDEzMDMsIDAuMDAxMzA0LCAwLjAwMTMxLCAwLjAwMTMxNCwgMC4wMDEzMTUsIDAuMDAxMzE3LCAwLjAwMTMxNyIsIFwKLSAgICAgICAgICAiMC4wMDEzMDgsIDAuMDAxMzA3LCAwLjAwMTMxLCAwLjAwMTMxNCwgMC4wMDEzMTUsIDAuMDAxMzE2LCAwLjAwMTMxNiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDAyNywgMC4wMDAwMjcsIDAuMDAwMDI5LCAwLjAwMDAyOSwgMC4wMDAwMjksIDAuMDAwMDI5LCAwLjAwMDAyOSIsIFwKLSAgICAgICAgICAiMC4wMDAwMjgsIDAuMDAwMDMsIDAuMDAwMDM1LCAwLjAwMDAzNywgMC4wMDAwMzgsIDAuMDAwMDM5LCAwLjAwMDAzOSIsIFwKLSAgICAgICAgICAiMC4wMDAwMjMsIDAuMDAwMDI1LCAwLjAwMDAzNCwgMC4wMDAwMzgsIDAuMDAwMDQsIDAuMDAwMDQxLCAwLjAwMDA0MiIsIFwKLSAgICAgICAgICAiMC4wMDAwMTgsIDAuMDAwMDIxLCAwLjAwMDAzMiwgMC4wMDAwMzcsIDAuMDAwMDM5LCAwLjAwMDA0MSwgMC4wMDAwNDEiLCBcCi0gICAgICAgICAgIjAuMDAwMDE3LCAwLjAwMDAyLCAwLjAwMDAzMSwgMC4wMDAwMzYsIDAuMDAwMDM4LCAwLjAwMDA0MSwgMC4wMDAwNDIiLCBcCi0gICAgICAgICAgIjAuMDAwMDE4LCAwLjAwMDAyLCAwLjAwMDAzLCAwLjAwMDAzNiwgMC4wMDAwMzgsIDAuMDAwMDQxLCAwLjAwMDA0MSIsIFwKLSAgICAgICAgICAiMC4wMDAwMjIsIDAuMDAwMDIzLCAwLjAwMDAzLCAwLjAwMDAzNiwgMC4wMDAwMzgsIDAuMDAwMDQxLCAwLjAwMDA0MSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBBT0kyMjFYNCAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoQU9JMjIxWDQpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC43NDY2Njc7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDM0MzQ5NTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDM0MTg3OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMzQzNDk1OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTYzNywgMC4wMDE2MzYsIDAuMDAxNjM2LCAwLjAwMTYzNSwgMC4wMDE2MzUsIDAuMDAxNjM0LCAwLjAwMTYzNCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTY4OCwgMC4wMDE2NDYsIDAuMDAxNjQ0LCAwLjAwMTY0MSwgMC4wMDE2NDEsIDAuMDAxNjQxLCAwLjAwMTY0MSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQTEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMzI3ODc7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAzMjUxNTM7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAzMjc4NzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDEwMDYsIDAuMDAxMDA1LCAwLjAwMTAwNCwgMC4wMDEwMDMsIDAuMDAxMDA0LCAwLjAwMTAwNCwgMC4wMDEwMDMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDE4NTYsIDAuMDAxODU3LCAwLjAwMTg1NywgMC4wMDE4NTksIDAuMDAxODU5LCAwLjAwMTg1OSwgMC4wMDE4NTgiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDMyODQ2NjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDMyNzMxNjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDMyODQ2NjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDE2MzcsIDAuMDAxNjM3LCAwLjAwMTYzNywgMC4wMDE2MzYsIDAuMDAxNjM2LCAwLjAwMTYzNiwgMC4wMDE2MzYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDE2OCwgMC4wMDE2NDQsIDAuMDAxNjQyLCAwLjAwMTY0LCAwLjAwMTYzOSwgMC4wMDE2NCwgMC4wMDE2NCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQjEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMzE0MDg4OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMzExODU7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAzMTQwODg7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwOTE1LCAwLjAwMDkxNCwgMC4wMDA5MTUsIDAuMDAwOTE1LCAwLjAwMDkxNCwgMC4wMDA5MTMsIDAuMDAwOTE0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxODU2LCAwLjAwMTg1NywgMC4wMDE4NTcsIDAuMDAxODU3LCAwLjAwMTg1NywgMC4wMDE4NTgsIDAuMDAxODU4Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihDMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAzMDY4MzY7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAzMDY4MDc7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAzMDY4MzY7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzY0LCAwLjAwMDM2NCwgMC4wMDAzNjQsIDAuMDAwMzY0LCAwLjAwMDM2NCwgMC4wMDAzNjQsIDAuMDAwMzY0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyMDM3LCAwLjAwMjAzOCwgMC4wMDIwMzgsIDAuMDAyMDM4LCAwLjAwMjAzOCwgMC4wMDIwMzcsIDAuMDAyMDM1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMzY3MzI0OwotICAgIGZ1bmN0aW9uIDogIighKCgoQTAgQTEpKyhCMCBCMSkpK0MwKSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3NDc2NiwgMC4yODIzNDUsIDAuNDg5MDg0LCAwLjYzNzM1MSwgMC44NzM3MjEsIDEuMDgwODksIDEuMzc3NjIiLCBcCi0gICAgICAgICAgIjAuMDg0MTcsIDAuMjkxOTI2LCAwLjQ5OTA4MSwgMC42NDY4NDUsIDAuODgzMzYsIDEuMDkwNiwgMS4zODc1NyIsIFwKLSAgICAgICAgICAiMC4wOTQyMzcsIDAuMzAyMDgxLCAwLjUwOTQxNCwgMC42NTcyNjMsIDAuODkzNzAzLCAxLjEwMDYyLCAxLjM5ODM4IiwgXAotICAgICAgICAgICIwLjEwMzMxNSwgMC4zMTEyMjEsIDAuNTE4NTI1LCAwLjY2NjA4MSwgMC45MDI4NjksIDEuMTEwMTIsIDEuNDA2NjciLCBcCi0gICAgICAgICAgIjAuMTExNzM4LCAwLjMxOTkxNiwgMC41MjY5MDYsIDAuNjc0NzIyLCAwLjkxMTI5MywgMS4xMTgyNSwgMS40MTU4MiIsIFwKLSAgICAgICAgICAiMC4xMjQzMDksIDAuMzMyOTI0LCAwLjUzOTk5NiwgMC42ODgxMDQsIDAuOTI0MjU4LCAxLjEzMTIyLCAxLjQyOTA1IiwgXAotICAgICAgICAgICIwLjEzMzk5MiwgMC4zNDM5NCwgMC41NTExNDUsIDAuNjk4OTE5LCAwLjkzNTUyLCAxLjE0MjM0LCAxLjQzOTQxIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTA1MTEsIDAuNTIyMTc2LCAwLjkzOTE2OCwgMS4yMzkxLCAxLjcxODU1LCAyLjEzNzUxLCAyLjczNjQzIiwgXAotICAgICAgICAgICIwLjEwNTEzLCAwLjUyMjUyNywgMC45Mzk0NTksIDEuMjM5MTYsIDEuNzE3ODgsIDIuMTM3ODgsIDIuNzM2NTkiLCBcCi0gICAgICAgICAgIjAuMTA1MzE1LCAwLjUyMjIwNCwgMC45Mzk4MSwgMS4yMzk0LCAxLjcxODA2LCAyLjEzNzY1LCAyLjczNjQ5IiwgXAotICAgICAgICAgICIwLjEwNjM4NiwgMC41MjIxODIsIDAuOTM5NzU2LCAxLjIzOTAzLCAxLjcxODYzLCAyLjEzODMzLCAyLjczNjM5IiwgXAotICAgICAgICAgICIwLjEwODE0MywgMC41MjIyMzMsIDAuOTQwMTcsIDEuMjM5MDQsIDEuNzE4NjQsIDIuMTM3MjIsIDIuNzM3MDUiLCBcCi0gICAgICAgICAgIjAuMTEyMTQ4LCAwLjUyMjg5MSwgMC45Mzk1MDksIDEuMjM5MTcsIDEuNzE4NDQsIDIuMTM3MDUsIDIuNzM2NiIsIFwKLSAgICAgICAgICAiMC4xMTY4MTksIDAuNTI0NDgxLCAwLjkzOTk2MywgMS4yMzg5NCwgMS43MTg2MiwgMi4xMzcwMiwgMi43MzYyNCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0OTc3NCwgMC4xODgxNzEsIDAuMzIzMzIsIDAuNDE5NTI4LCAwLjU3MzI3NiwgMC43MDc5NDIsIDAuOTAwMDM3IiwgXAotICAgICAgICAgICIwLjA1ODU5NiwgMC4xOTcwMzIsIDAuMzMyMjA5LCAwLjQyODUxLCAwLjU4MjE0MywgMC43MTY2ODUsIDAuOTA4NzI0IiwgXAotICAgICAgICAgICIwLjA2OTUzOCwgMC4yMDgwNzcsIDAuMzQzMjgzLCAwLjQzOTUzLCAwLjU5MzMyNiwgMC43Mjc4NzcsIDAuOTE5NzI3IiwgXAotICAgICAgICAgICIwLjA4MDQ1MywgMC4yMTkwNTEsIDAuMzU0MzM0LCAwLjQ1MDYxOSwgMC42MDQ1NDIsIDAuNzM4NzQ1LCAwLjkzMDY3OSIsIFwKLSAgICAgICAgICAiMC4wOTA5NiwgMC4yMjk5MjQsIDAuMzY1MzQ1LCAwLjQ2MTY4NCwgMC42MTU0NDMsIDAuNzQ5OTYsIDAuOTQyMDEzIiwgXAotICAgICAgICAgICIwLjEwNjYxLCAwLjI0NzU0NCwgMC4zODI4NjIsIDAuNDc5MjYyLCAwLjYzMjk4NSwgMC43Njc1MzIsIDAuOTU5NzAyIiwgXAotICAgICAgICAgICIwLjExODU2NCwgMC4yNjI4MDgsIDAuMzk4Mzk2LCAwLjQ5NDYyNCwgMC42NDg1MDMsIDAuNzgyOTQ5LCAwLjk3NTAxOSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4MTU1MSwgMC4zNDY3NTYsIDAuNjEyNDA1LCAwLjgwMjE4OCwgMS4xMDU2LCAxLjM3MDk2LCAxLjc1MDExIiwgXAotICAgICAgICAgICIwLjA4MTM2MiwgMC4zNDY3MDgsIDAuNjEyMjkxLCAwLjgwMjA4OCwgMS4xMDU1OSwgMS4zNzEyNSwgMS43NTAxIiwgXAotICAgICAgICAgICIwLjA4MzQ5NCwgMC4zNDY2NjIsIDAuNjEyMjA4LCAwLjgwMjE1OCwgMS4xMDU2OCwgMS4zNzEyMiwgMS43NTA1IiwgXAotICAgICAgICAgICIwLjA4NzQ0OSwgMC4zNDY3MjksIDAuNjEyMzE0LCAwLjgwMjA2MiwgMS4xMDU0MiwgMS4zNzEwNiwgMS43NTAzNiIsIFwKLSAgICAgICAgICAiMC4wOTI2OTIsIDAuMzQ3Njc5LCAwLjYxMjM3MSwgMC44MDIxMzcsIDEuMTA1NjgsIDEuMzcxMDYsIDEuNzUwNTQiLCBcCi0gICAgICAgICAgIjAuMTAyMDMyLCAwLjM1MTEyOSwgMC42MTI3MzYsIDAuODAxODgxLCAxLjEwNTU2LCAxLjM3MTI3LCAxLjc1MDQzIiwgXAotICAgICAgICAgICIwLjExMTE0NSwgMC4zNTU2MzMsIDAuNjE0MzgsIDAuODAyNTAxLCAxLjEwNTY1LCAxLjM3MTIzLCAxLjc1MDAyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkExIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3MDk2OCwgMC4yNzk1OTksIDAuNDg3NTA1LCAwLjYzNjU5NiwgMC44NzQ2NTMsIDEuMDgyNjMsIDEuMzgwODciLCBcCi0gICAgICAgICAgIjAuMDgwMjU2LCAwLjI4OTIzNywgMC40OTc0OCwgMC42NDYyNzIsIDAuODg0NjA5LCAxLjA5MjI5LCAxLjM5MTQ4IiwgXAotICAgICAgICAgICIwLjA5MDE3NSwgMC4yOTkzNywgMC41MDc4NzEsIDAuNjU2MzIzLCAwLjg5NDM1NiwgMS4xMDI1OCwgMS40MDE1NiIsIFwKLSAgICAgICAgICAiMC4wOTkxMDksIDAuMzA4NTIzLCAwLjUxNjgxLCAwLjY2NTQ1NywgMC45MDMyNjQsIDEuMTExNzEsIDEuNDEwNzMiLCBcCi0gICAgICAgICAgIjAuMTA3NTUyLCAwLjMxNjk3MSwgMC41MjU0MjQsIDAuNjc0MTA1LCAwLjkxMTkzMywgMS4xMjA5MywgMS40MTg3NiIsIFwKLSAgICAgICAgICAiMC4xMTk4NDYsIDAuMzMwMDQyLCAwLjUzODU5NCwgMC42ODczOTIsIDAuOTI1MDM4LCAxLjEzMzIsIDEuNDMyNjciLCBcCi0gICAgICAgICAgIjAuMTI5MzMyLCAwLjM0MTA2OSwgMC41NDkzNjgsIDAuNjk4MjU5LCAwLjkzNjE3NSwgMS4xNDQzMSwgMS40NDMwNyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwMDY5NiwgMC41MTk4MywgMC45Mzk3MywgMS4yNDM3NCwgMS43MjMwOCwgMi4xNDk4MywgMi43NDg4OCIsIFwKLSAgICAgICAgICAiMC4xMDA3MDksIDAuNTE5ODIxLCAwLjkzOTg1MSwgMS4yNDM2MSwgMS43MjI5NCwgMi4xNDk3NSwgMi43NDc3NyIsIFwKLSAgICAgICAgICAiMC4xMDA5MzIsIDAuNTE5ODA1LCAwLjkzOTU1MywgMS4yNDEzMywgMS43MjY4OSwgMi4xNDUzNiwgMi43NTQxNCIsIFwKLSAgICAgICAgICAiMC4xMDIwNSwgMC41MjAwMTksIDAuOTQxNTA0LCAxLjI0Mjc1LCAxLjcyNTY1LCAyLjE0OTc2LCAyLjc0NzQyIiwgXAotICAgICAgICAgICIwLjEwMzkyNywgMC41MTk4ODUsIDAuOTQxNjE0LCAxLjI0MzQ4LCAxLjcyNTcsIDIuMTQ0ODMsIDIuNzQ4MjQiLCBcCi0gICAgICAgICAgIjAuMTA4MTM4LCAwLjUyMDUyNywgMC45NDA5MjYsIDEuMjQwNjMsIDEuNzIzODcsIDIuMTQ4MjksIDIuNzQ2OTYiLCBcCi0gICAgICAgICAgIjAuMTEzMDU1LCAwLjUyMjEzNiwgMC45NDEwNTMsIDEuMjQxMjMsIDEuNzI1NjcsIDIuMTQ4MjQsIDIuNzUxOTciKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDc2MDEsIDAuMTg1OTczLCAwLjMyMTIyNywgMC40MTc1MDUsIDAuNTcxMjc4LCAwLjcwNTc0MSwgMC44OTc0NzkiLCBcCi0gICAgICAgICAgIjAuMDU2NTU4LCAwLjE5NTAyNCwgMC4zMzAyMzEsIDAuNDI2NDE0LCAwLjU4MDE4MSwgMC43MTQ2NzksIDAuOTA2NTgzIiwgXAotICAgICAgICAgICIwLjA2ODEzNywgMC4yMDY1NDksIDAuMzQxNzY2LCAwLjQzNzkwNywgMC41OTE2NzIsIDAuNzI2MTg4LCAwLjkxODA2NSIsIFwKLSAgICAgICAgICAiMC4wODA0MjksIDAuMjE4Mjg5LCAwLjM1Mzg4MywgMC40NTAwOCwgMC42MDQwNTQsIDAuNzM4NDEyLCAwLjkzMDE4OSIsIFwKLSAgICAgICAgICAiMC4wOTE5NzQsIDAuMjI5ODU2LCAwLjM2NDk4NiwgMC40NjEyNDMsIDAuNjE1MDUyLCAwLjc0OTU2OCwgMC45NDE0MyIsIFwKLSAgICAgICAgICAiMC4xMDg4NTEsIDAuMjQ4NjA0LCAwLjM4Mzc0MywgMC40Nzk5NjQsIDAuNjMzNzk5LCAwLjc2ODEyNSwgMC45NjA0OTciLCBcCi0gICAgICAgICAgIjAuMTIxODA5LCAwLjI2NTA4NCwgMC40MDAxMSwgMC40OTYzOTIsIDAuNjUwMTk1LCAwLjc4NDU4OCwgMC45NzY3NTYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODE2NTEsIDAuMzQ2NzQ5LCAwLjYxMjM4NCwgMC44MDE5NjUsIDEuMTA1NywgMS4zNzA5OSwgMS43NTA2NyIsIFwKLSAgICAgICAgICAiMC4wODEzMzIsIDAuMzQ2NjY4LCAwLjYxMjM2LCAwLjgwMjA4NCwgMS4xMDU1MywgMS4zNzA4MywgMS43NTA0NCIsIFwKLSAgICAgICAgICAiMC4wODUwODEsIDAuMzQ2NzAxLCAwLjYxMjM2OSwgMC44MDIwNzMsIDEuMTA1NywgMS4zNzA5NSwgMS43NTA1MyIsIFwKLSAgICAgICAgICAiMC4wOTA4NjgsIDAuMzQ2NzM3LCAwLjYxMjI0OCwgMC44MDIxOTMsIDEuMTA1NjgsIDEuMzcxMTgsIDEuNzUwMDYiLCBcCi0gICAgICAgICAgIjAuMDk4NTk5LCAwLjM0ODIxNCwgMC42MTIzOCwgMC44MDE5NDcsIDEuMTA1NjIsIDEuMzcxMjUsIDEuNzUwNjEiLCBcCi0gICAgICAgICAgIjAuMTExOTE5LCAwLjM1MzQ1LCAwLjYxMjc5LCAwLjgwMjEzNCwgMS4xMDU2LCAxLjM3MTIxLCAxLjc1MDA2IiwgXAotICAgICAgICAgICIwLjEyNDM5NCwgMC4zNTk4OTcsIDAuNjE1NDcyLCAwLjgwMjU5NCwgMS4xMDU3MywgMS4zNzEwMywgMS43NTA0NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjYyMDYsIDAuMjczODEzLCAwLjQ4MDk1NiwgMC42Mjg2OTgsIDAuODY1MjE5LCAxLjA3MzMyLCAxLjM3MDg2IiwgXAotICAgICAgICAgICIwLjA3NDk1NSwgMC4yODI4OTQsIDAuNDg5ODA4LCAwLjYzNzgyNiwgMC44NzQxMDMsIDEuMDgyMiwgMS4zNzk5MSIsIFwKLSAgICAgICAgICAiMC4wODUxMSwgMC4yOTMwMTIsIDAuNTAwMDA0LCAwLjY0Nzc1NiwgMC44ODQ2MDcsIDEuMDkyMzMsIDEuMzg5NzEiLCBcCi0gICAgICAgICAgIjAuMDk0OTIxLCAwLjMwMjk1OCwgMC41MDk5NTMsIDAuNjU3NjQzLCAwLjg5NDg1NCwgMS4xMDI2OSwgMS40MDAwOCIsIFwKLSAgICAgICAgICAiMC4xMDQ2MDEsIDAuMzEyODAxLCAwLjUxOTgyMSwgMC42Njc2NjYsIDAuOTA0Mjg0LCAxLjExMTk2LCAxLjQxMDM5IiwgXAotICAgICAgICAgICIwLjExODk3MiwgMC4zMjgzOTksIDAuNTM1NjAzLCAwLjY4MzUsIDAuOTIwMDQ2LCAxLjEyNzk0LCAxLjQyNjE3IiwgXAotICAgICAgICAgICIwLjEzMDE0MywgMC4zNDE5ODcsIDAuNTQ4OTcsIDAuNjk3NDU1LCAwLjkzMzU5NSwgMS4xNDE3OCwgMS40Mzg5Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTA1MTEyLCAwLjUyMjUyNiwgMC45Mzk0NjMsIDEuMjM5MTcsIDEuNzE3NzMsIDIuMTM3MzksIDIuNzM2MzEiLCBcCi0gICAgICAgICAgIjAuMTA1MDkzLCAwLjUyMjQxNywgMC45Mzk3NjMsIDEuMjM5MDcsIDEuNzE3NzUsIDIuMTM3MDUsIDIuNzM2NDIiLCBcCi0gICAgICAgICAgIjAuMTA1ODYyLCAwLjUyMjE2NiwgMC45Mzk0ODQsIDEuMjM5MDIsIDEuNzE4NjIsIDIuMTM3NTQsIDIuNzM1ODkiLCBcCi0gICAgICAgICAgIjAuMTA4MzU2LCAwLjUyMjMwOSwgMC45NDAyNDksIDEuMjM5MSwgMS43MTgzMiwgMi4xMzczOSwgMi43MzYzNiIsIFwKLSAgICAgICAgICAiMC4xMTIwODgsIDAuNTIyMzU5LCAwLjkzOTUyLCAxLjIzOTEyLCAxLjcxODQ5LCAyLjEzNzg3LCAyLjczNzE1IiwgXAotICAgICAgICAgICIwLjEyMDA3NSwgMC41MjM1OTMsIDAuOTM5NTk5LCAxLjIzOTA3LCAxLjcxODU2LCAyLjEzNjgsIDIuNzM2NjciLCBcCi0gICAgICAgICAgIjAuMTI4MzA0LCAwLjUyNTgwNCwgMC45Mzk1MTYsIDEuMjM5NTMsIDEuNzE4NywgMi4xMzcsIDIuNzM2NTgiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDIwMzIsIDAuMTc3NzE1LCAwLjMxMjI1OSwgMC40MDgzNTIsIDAuNTYyMTMxLCAwLjY5NjUxMywgMC44ODg2MTciLCBcCi0gICAgICAgICAgIjAuMDUwOTg3LCAwLjE4NjczNywgMC4zMjE0MTksIDAuNDE3NTA2LCAwLjU3MTIzOSwgMC43MDU3MTEsIDAuODk3NzAzIiwgXAotICAgICAgICAgICIwLjA2MTc3MiwgMC4xOTc4MzMsIDAuMzMyNTM5LCAwLjQyODY2NSwgMC41ODIzOTcsIDAuNzE2ODYxLCAwLjkwODgiLCBcCi0gICAgICAgICAgIjAuMDcyNTY0LCAwLjIwODc3NiwgMC4zNDM1OTQsIDAuNDM5NzU1LCAwLjU5MzQ5NiwgMC43MjgwMDQsIDAuOTIwMDIzIiwgXAotICAgICAgICAgICIwLjA4MjM0OSwgMC4yMTk4MTMsIDAuMzU0NTA5LCAwLjQ1MDc3MiwgMC42MDQ1MTksIDAuNzM5MDQyLCAwLjkzMTA3OCIsIFwKLSAgICAgICAgICAiMC4wOTYyNzUsIDAuMjM3MDk5LCAwLjM3MjQxMSwgMC40Njg3MTEsIDAuNjIyMzg2LCAwLjc1Njg1OSwgMC45NDg3ODkiLCBcCi0gICAgICAgICAgIjAuMTA3MTYyLCAwLjI1MjQ1MSwgMC4zODc4NjgsIDAuNDgzOTM2LCAwLjYzNzY5MSwgMC43NzIzMDcsIDAuOTY0Mzc3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY5ODk1LCAwLjMzNTUwMywgMC42MDExMzcsIDAuNzkwNzA4LCAxLjA5NDU0LCAxLjM2MDE0LCAxLjczOTYiLCBcCi0gICAgICAgICAgIjAuMDcwMDczLCAwLjMzNTM3NCwgMC42MDEwMjEsIDAuNzkwNjY4LCAxLjA5NDMzLCAxLjM2MDAxLCAxLjczOTI0IiwgXAotICAgICAgICAgICIwLjA3Mjc1NSwgMC4zMzUzNjcsIDAuNjAxMDI1LCAwLjc5MDg3MiwgMS4wOTQ0NywgMS4zNTk5MSwgMS43MzkwOCIsIFwKLSAgICAgICAgICAiMC4wNzc1MTksIDAuMzM1NTEzLCAwLjYwMTAwMSwgMC43OTA4NSwgMS4wOTQ0OCwgMS4zNTk3NywgMS43MzkxOCIsIFwKLSAgICAgICAgICAiMC4wODMxNzEsIDAuMzM2NzE3LCAwLjYwMDk0LCAwLjc5MDc3MiwgMS4wOTQ0MiwgMS4zNjAxNCwgMS43Mzk1NiIsIFwKLSAgICAgICAgICAiMC4wOTM2ODUsIDAuMzQwMjk3LCAwLjYwMTQ5NywgMC43OTA5MzQsIDEuMDk0MiwgMS4zNTk3NCwgMS43Mzg5OSIsIFwKLSAgICAgICAgICAiMC4xMDMwOTgsIDAuMzQ0OTY3LCAwLjYwMzQ4NSwgMC43OTE0MDksIDEuMDk0MiwgMS4zNjAwNCwgMS43MzkyNCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjE5NzEsIDAuMjcwMjc2LCAwLjQ3ODc2MywgMC42MjczMjIsIDAuODY0OTgsIDEuMDczNDEsIDEuMzczNTgiLCBcCi0gICAgICAgICAgIjAuMDcwNjEzLCAwLjI3OTUxOCwgMC40ODc1ODMsIDAuNjM2MzQ5LCAwLjg3MzkxLCAxLjA4MzQ0LCAxLjM4MTY5IiwgXAotICAgICAgICAgICIwLjA4MDUwNiwgMC4yODk1MTcsIDAuNDk3ODcyLCAwLjY0NjE3NywgMC44ODQzNTQsIDEuMDkzNDIsIDEuMzkyNTMiLCBcCi0gICAgICAgICAgIjAuMDkwMjQxLCAwLjI5OTUwMiwgMC41MDc2MzksIDAuNjU2NDk0LCAwLjg5NDU1NiwgMS4xMDI3NSwgMS40MDIyIiwgXAotICAgICAgICAgICIwLjA5OTc5NSwgMC4zMDkxMjcsIDAuNTE3NTc2LCAwLjY2NjAzMiwgMC45MDM5MzIsIDEuMTEyNTcsIDEuNDEyODIiLCBcCi0gICAgICAgICAgIjAuMTEzNTIyLCAwLjMyNDcsIDAuNTMzMTcxLCAwLjY4MTc1MywgMC45MTk1NTcsIDEuMTI4NDYsIDEuNDI3MjQiLCBcCi0gICAgICAgICAgIjAuMTI0MjYsIDAuMzM4MTI5LCAwLjU0NjI4OCwgMC42OTUzNzksIDAuOTMzMTU3LCAxLjE0MjI0LCAxLjQ0MDk3Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTAwMzExLCAwLjUxOTYyLCAwLjkzOTQ4OSwgMS4yNDA3OSwgMS43MjcwMiwgMi4xNDYyNSwgMi43NDc1NCIsIFwKLSAgICAgICAgICAiMC4xMDAzMDksIDAuNTE5Njk0LCAwLjk0MDEyOSwgMS4yNDA4LCAxLjcyNjk4LCAyLjE0NDg5LCAyLjc1Mzc0IiwgXAotICAgICAgICAgICIwLjEwMTEzNSwgMC41MTk2MDQsIDAuOTM5ODk2LCAxLjI0MTYzLCAxLjcyMjYsIDIuMTUwMDcsIDIuNzQ3MzMiLCBcCi0gICAgICAgICAgIjAuMTAzOTM2LCAwLjUxOTc2NywgMC45NDA4ODUsIDEuMjQwNzksIDEuNzIzMDYsIDIuMTQ1MjEsIDIuNzQ3NTkiLCBcCi0gICAgICAgICAgIjAuMTA3ODYzLCAwLjUxOTc5NywgMC45MzkzODUsIDEuMjQxMjUsIDEuNzIzNDIsIDIuMTQ4MTgsIDIuNzQ3NTUiLCBcCi0gICAgICAgICAgIjAuMTE2MDU1LCAwLjUyMTA2OCwgMC45NDE1OTksIDEuMjQxMTYsIDEuNzI1NzMsIDIuMTQ4MjQsIDIuNzUxODYiLCBcCi0gICAgICAgICAgIjAuMTI0NjIxLCAwLjUyMzQ1NSwgMC45Mzk0MzMsIDEuMjQyNzIsIDEuNzI2OCwgMi4xNDk3MiwgMi43NDg0NCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzOTYyOSwgMC4xNzUyMTUsIDAuMzA5ODM1LCAwLjQwNTk1OCwgMC41NTk3MDUsIDAuNjk0MTI1LCAwLjg4NjE2MiIsIFwKLSAgICAgICAgICAiMC4wNDg3NiwgMC4xODQ0ODIsIDAuMzE5MTgsIDAuNDE1MjcxLCAwLjU2OTA1MiwgMC43MDM0ODYsIDAuODk1NTQ0IiwgXAotICAgICAgICAgICIwLjA2MDM0NiwgMC4xOTYwMjMsIDAuMzMwNzE1LCAwLjQyNjg0MiwgMC41ODA1NzMsIDAuNzE1MDYxLCAwLjkwNjk2MyIsIFwKLSAgICAgICAgICAiMC4wNzIzNjMsIDAuMjA3ODg3LCAwLjM0MjYyOCwgMC40Mzg2MTYsIDAuNTkyMzExLCAwLjcyNjc2OCwgMC45MTg4NTQiLCBcCi0gICAgICAgICAgIjAuMDgyODgzLCAwLjIxOTEwNCwgMC4zNTQxMTcsIDAuNDQ5ODc2LCAwLjYwMzY3MSwgMC43MzgwOTEsIDAuOTMwMDk2IiwgXAotICAgICAgICAgICIwLjA5NzYwMywgMC4yMzc4ODcsIDAuMzczNTM1LCAwLjQ2ODY4MiwgMC42MjIzOTcsIDAuNzU2ODAzLCAwLjk0ODg0MSIsIFwKLSAgICAgICAgICAiMC4xMDg2MjIsIDAuMjU0MjIsIDAuMzg4ODg5LCAwLjQ4NDkxOSwgMC42Mzg2NTcsIDAuNzczMDg1LCAwLjk2NTA1MiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2OTkwOSwgMC4zMzU0MjcsIDAuNjAxMDU2LCAwLjc5MDg5OCwgMS4wOTQyNCwgMS4zNTk4NiwgMS43MzkxMyIsIFwKLSAgICAgICAgICAiMC4wNzAzMzgsIDAuMzM1NDI0LCAwLjYwMTEzOSwgMC43OTA2NTUsIDEuMDk0MzMsIDEuMzU5NzUsIDEuNzM5NDEiLCBcCi0gICAgICAgICAgIjAuMDc0OTg5LCAwLjMzNTM1OCwgMC42MDExMDksIDAuNzkwODMxLCAxLjA5NDQyLCAxLjM1OTc0LCAxLjczOTEyIiwgXAotICAgICAgICAgICIwLjA4MTkzMiwgMC4zMzU2MDcsIDAuNjAxMDA1LCAwLjc5MDk0NCwgMS4wOTQ0MywgMS4zNTk4NywgMS43Mzk1MyIsIFwKLSAgICAgICAgICAiMC4wOTA1MjUsIDAuMzM3NTA3LCAwLjYwMDk2NywgMC43OTA4NzUsIDEuMDk0MjYsIDEuMzU5NzcsIDEuNzM5MyIsIFwKLSAgICAgICAgICAiMC4xMDQ5NDgsIDAuMzQzMTcsIDAuNjAxNjQsIDAuNzkwODUzLCAxLjA5NDQ4LCAxLjM2MDAyLCAxLjczOTQ3IiwgXAotICAgICAgICAgICIwLjExNzQ4MSwgMC4zNTAxNDksIDAuNjA0NjYxLCAwLjc5MTUxLCAxLjA5NDQ3LCAxLjM1OTcsIDEuNzM5MDQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQzAiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDUzMjQ0LCAwLjI2MDk4NCwgMC40NjgwMSwgMC42MTU3NDcsIDAuODUyNjE3LCAxLjA1OTkxLCAxLjM2MDEiLCBcCi0gICAgICAgICAgIjAuMDYxNTA5LCAwLjI2OTc1OCwgMC40NzY2NTQsIDAuNjI0MTUyLCAwLjg2MDc2OSwgMS4wNjg2OSwgMS4zNjcxOCIsIFwKLSAgICAgICAgICAiMC4wNzIxMTQsIDAuMjgwMjU4LCAwLjQ4NzMzMiwgMC42MzU0MjcsIDAuODcxNTkxLCAxLjA4MDY3LCAxLjM3ODU1IiwgXAotICAgICAgICAgICIwLjA4MzMwOCwgMC4yOTEzMTUsIDAuNDk4NjgxLCAwLjY0NjM5OCwgMC44ODMzODMsIDEuMDkwNjMsIDEuMzkwMjkiLCBcCi0gICAgICAgICAgIjAuMDk0MjYxLCAwLjMwMTg1OCwgMC41MDg5ODgsIDAuNjU3MDk4LCAwLjg5MzMzOSwgMS4xMDEyNSwgMS40MDA5OSIsIFwKLSAgICAgICAgICAiMC4xMTA0OTMsIDAuMzE5MjAyLCAwLjUyNjMwMSwgMC42NzQxNDcsIDAuOTExMTY2LCAxLjExOTE3LCAxLjQxNzc4IiwgXAotICAgICAgICAgICIwLjEyMjU1NCwgMC4zMzQzMjUsIDAuNTQxNjA2LCAwLjY4OTYwOSwgMC45MjYxOTEsIDEuMTM0NSwgMS40MzIzNSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwNDI1NiwgMC41MjI0NjcsIDAuOTQwMTA5LCAxLjI0MjczLCAxLjcyMjYsIDIuMTQ4MTQsIDIuNzQ3NTQiLCBcCi0gICAgICAgICAgIjAuMTAzNDcyLCAwLjUyMjMwMiwgMC45NDA5MDUsIDEuMjQwODMsIDEuNzI1NTMsIDIuMTQ4MTksIDIuNzQ4NDQiLCBcCi0gICAgICAgICAgIjAuMTA2NzMzLCAwLjUyMjQ2LCAwLjk0MTUzOCwgMS4yNDA2MSwgMS43MjM4OCwgMi4xNDUyMSwgMi43NTM2OCIsIFwKLSAgICAgICAgICAiMC4xMTI0NDMsIDAuNTIyMTc0LCAwLjk0MTY4NywgMS4yNDEwMiwgMS43MjI5NiwgMi4xNDgyNCwgMi43NDcxMiIsIFwKLSAgICAgICAgICAiMC4xMTk5ODQsIDAuNTIxOTI2LCAwLjk0MDk1NiwgMS4yNDA1NCwgMS43MjQxNiwgMi4xNDgzNiwgMi43NDc2IiwgXAotICAgICAgICAgICIwLjEzMjk2NCwgMC41MjQxMDgsIDAuOTQxNjIyLCAxLjI0Mjc1LCAxLjcyMjk4LCAyLjE0NDYyLCAyLjc0NzgiLCBcCi0gICAgICAgICAgIjAuMTQ0MzgxLCAwLjUyODM5NiwgMC45NDA4MTcsIDEuMjQzNTUsIDEuNzIzMjEsIDIuMTQ0ODksIDIuNzQ4MDkiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTkxMzQsIDAuMDkyOTAyLCAwLjE2NjU1NywgMC4yMTkwNTEsIDAuMzAzMjAxLCAwLjM3NjgwMSwgMC40ODE4ODIiLCBcCi0gICAgICAgICAgIjAuMDI5NDI5LCAwLjEwMzE4OCwgMC4xNzY4MjksIDAuMjI5NDE4LCAwLjMxMzUwMiwgMC4zODcxMTcsIDAuNDkyMjQ0IiwgXAotICAgICAgICAgICIwLjA0MTQ5LCAwLjExNTg2OSwgMC4xODk1MzksIDAuMjQxODYyLCAwLjMyNjE2NSwgMC4zOTk3MjEsIDAuNTA0ODA2IiwgXAotICAgICAgICAgICIwLjA1MTAzOCwgMC4xMjg1MjgsIDAuMjAyMTc0LCAwLjI1NDk3MiwgMC4zMzkwMywgMC40MTI1NjIsIDAuNTE3MjU4IiwgXAotICAgICAgICAgICIwLjA1OTQwNCwgMC4xNDE4ODYsIDAuMjE1MjY5LCAwLjI2Nzg4OCwgMC4zNTE5MzIsIDAuNDI1NDY0LCAwLjUzMDkzNCIsIFwKLSAgICAgICAgICAiMC4wNzAyNjcsIDAuMTYyNzQ1LCAwLjIzNTM5MSwgMC4yODkwMSwgMC4zNzI0ODksIDAuNDQ1OTg0LCAwLjU1MDk2OCIsIFwKLSAgICAgICAgICAiMC4wNzg4NjYsIDAuMTgxMTI2LCAwLjI1NDU0NiwgMC4zMDcwNjEsIDAuMzkwMDk2LCAwLjQ2MzY5NCwgMC41Njg4MjMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzczLCAwLjE4NTY0NSwgMC4zMzQzNjMsIDAuNDQwNTIzLCAwLjYxMDY3OSwgMC43NTkzNzUsIDAuOTcyMDc1IiwgXAotICAgICAgICAgICIwLjAzOTk3NiwgMC4xODU2NDYsIDAuMzM0MzA1LCAwLjQ0MDU2LCAwLjYxMDUsIDAuNzU5NTEsIDAuOTcxNjQ4IiwgXAotICAgICAgICAgICIwLjA0Nzg1NSwgMC4xODYyMjksIDAuMzM0Mjg1LCAwLjQ0MDUxMiwgMC42MTA2NTQsIDAuNzU5NTQyLCAwLjk3MjExNyIsIFwKLSAgICAgICAgICAiMC4wNTc2NDcsIDAuMTg5NDU1LCAwLjMzNDUxOCwgMC40NDA0NzYsIDAuNjEwNjQ2LCAwLjc1OTQ5NywgMC45NzIxNjEiLCBcCi0gICAgICAgICAgIjAuMDY3MTY4LCAwLjE5NDAxNywgMC4zMzY0MTksIDAuNDQwOTg1LCAwLjYxMDQ1NiwgMC43NTk2MzUsIDAuOTcyMTEzIiwgXAotICAgICAgICAgICIwLjA4MjA3OSwgMC4yMDM5LCAwLjM0MjI3NCwgMC40NDM4NzQsIDAuNjExMDQzLCAwLjc1OTIwNSwgMC45NzE4ODEiLCBcCi0gICAgICAgICAgIjAuMDk0MjExLCAwLjIxMzY2MSwgMC4zNDgzNTYsIDAuNDQ4OTUxLCAwLjYxMzc2NSwgMC43NjAyNjEsIDAuOTcxODY2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE3MDgyLCAwLjAxNzA5LCAwLjAxNzA4OCwgMC4wMTcwOTEsIDAuMDE3MDg3LCAwLjAxNzA4NSwgMC4wMTcwODMiLCBcCi0gICAgICAgICAgIjAuMDE3MDE0LCAwLjAxNzA1NywgMC4wMTcwNjMsIDAuMDE3MDY1LCAwLjAxNzA2NCwgMC4wMTcwNjUsIDAuMDE3MDYxIiwgXAotICAgICAgICAgICIwLjAxNjk3MiwgMC4wMTcwNDIsIDAuMDE3MDUzLCAwLjAxNzA1NSwgMC4wMTcwNTgsIDAuMDE3MDU3LCAwLjAxNzA1OCIsIFwKLSAgICAgICAgICAiMC4wMTY5NDcsIDAuMDE3MDI2LCAwLjAxNzA0MSwgMC4wMTcwNDYsIDAuMDE3MDUxLCAwLjAxNzA1MiwgMC4wMTcwNTIiLCBcCi0gICAgICAgICAgIjAuMDE2OTMxLCAwLjAxNzAxNiwgMC4wMTcwMzYsIDAuMDE3MDQyLCAwLjAxNzA0NSwgMC4wMTcwNSwgMC4wMTcwNTEiLCBcCi0gICAgICAgICAgIjAuMDE2OTEzLCAwLjAxNjk5OSwgMC4wMTcwMjEsIDAuMDE3MDMxLCAwLjAxNzA0LCAwLjAxNzA0MywgMC4wMTcwNDkiLCBcCi0gICAgICAgICAgIjAuMDE2OTA5LCAwLjAxNjk4OSwgMC4wMTcwMDgsIDAuMDE3MDI4LCAwLjAxNzAzNSwgMC4wMTcwMzgsIDAuMDE3MDQxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQ3MywgMC4wMDQ3MzEsIDAuMDA0NzMxLCAwLjAwNDcyOSwgMC4wMDQ3MjksIDAuMDA0NzI4LCAwLjAwNDcyNiIsIFwKLSAgICAgICAgICAiMC4wMDQ2MDEsIDAuMDA0NjIyLCAwLjAwNDYyNCwgMC4wMDQ2MjIsIDAuMDA0NjIyLCAwLjAwNDYyNSwgMC4wMDQ2MjIiLCBcCi0gICAgICAgICAgIjAuMDA0NTI4LCAwLjAwNDU4LCAwLjAwNDU4NiwgMC4wMDQ1OSwgMC4wMDQ1ODgsIDAuMDA0NTksIDAuMDA0NTkzIiwgXAotICAgICAgICAgICIwLjAwNDQ4NywgMC4wMDQ1NTQsIDAuMDA0NTY4LCAwLjAwNDU3MywgMC4wMDQ1NzYsIDAuMDA0NTc3LCAwLjAwNDU3NiIsIFwKLSAgICAgICAgICAiMC4wMDQ0NjUsIDAuMDA0NTM4LCAwLjAwNDU1OCwgMC4wMDQ1NjIsIDAuMDA0NTY2LCAwLjAwNDU2OCwgMC4wMDQ1NjkiLCBcCi0gICAgICAgICAgIjAuMDA0NDUsIDAuMDA0NTI0LCAwLjAwNDU0NCwgMC4wMDQ1NDksIDAuMDA0NTU2LCAwLjAwNDU1OCwgMC4wMDQ1NTgiLCBcCi0gICAgICAgICAgIjAuMDA0NDU2LCAwLjAwNDUxNiwgMC4wMDQ1MzcsIDAuMDA0NTQ0LCAwLjAwNDU0OSwgMC4wMDQ1NTIsIDAuMDA0NTU2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE1NTMyLCAwLjAxNTU2NCwgMC4wMTU1NjcsIDAuMDE1NTY5LCAwLjAxNTU2OCwgMC4wMTU1NjgsIDAuMDE1NTY5IiwgXAotICAgICAgICAgICIwLjAxNTQzNiwgMC4wMTU1NTMsIDAuMDE1NTcsIDAuMDE1NTc1LCAwLjAxNTU3OCwgMC4wMTU1OCwgMC4wMTU1NzkiLCBcCi0gICAgICAgICAgIjAuMDE1MzQ3LCAwLjAxNTUyMSwgMC4wMTU1NTEsIDAuMDE1NTU5LCAwLjAxNTU2NywgMC4wMTU1NzIsIDAuMDE1NTc0IiwgXAotICAgICAgICAgICIwLjAxNTMwNSwgMC4wMTU0OTIsIDAuMDE1NTMyLCAwLjAxNTUzNywgMC4wMTU1NDksIDAuMDE1NTcsIDAuMDE1NTY4IiwgXAotICAgICAgICAgICIwLjAxNTI3NywgMC4wMTU0NjYsIDAuMDE1NTE2LCAwLjAxNTUzMSwgMC4wMTU1NDcsIDAuMDE1NTUyLCAwLjAxNTU2MSIsIFwKLSAgICAgICAgICAiMC4wMTUyNDgsIDAuMDE1NDMsIDAuMDE1NDg4LCAwLjAxNTUwOCwgMC4wMTU1MjksIDAuMDE1NTM5LCAwLjAxNTU1MiIsIFwKLSAgICAgICAgICAiMC4wMTUyMzUsIDAuMDE1NDA1LCAwLjAxNTQ2MSwgMC4wMTU0OTcsIDAuMDE1NTE3LCAwLjAxNTUyOSwgMC4wMTU1NCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0NzM2LCAwLjAwNDczNywgMC4wMDQ3MzUsIDAuMDA0NzM1LCAwLjAwNDczNCwgMC4wMDQ3MzIsIDAuMDA0NzI5IiwgXAotICAgICAgICAgICIwLjAwNDU4NywgMC4wMDQ2MTksIDAuMDA0NjIzLCAwLjAwNDYyMywgMC4wMDQ2MjEsIDAuMDA0NjE5LCAwLjAwNDYyNCIsIFwKLSAgICAgICAgICAiMC4wMDQ1MTgsIDAuMDA0NTc3LCAwLjAwNDU4NSwgMC4wMDQ1ODgsIDAuMDA0NTg4LCAwLjAwNDU4OCwgMC4wMDQ1OTEiLCBcCi0gICAgICAgICAgIjAuMDA0NTA2LCAwLjAwNDU1MiwgMC4wMDQ1NzMsIDAuMDA0NTc4LCAwLjAwNDU3OSwgMC4wMDQ1ODMsIDAuMDA0NTgzIiwgXAotICAgICAgICAgICIwLjAwNDUxOSwgMC4wMDQ1NSwgMC4wMDQ1NjMsIDAuMDA0NTY2LCAwLjAwNDU3LCAwLjAwNDU3LCAwLjAwNDU3MiIsIFwKLSAgICAgICAgICAiMC4wMDQ1NywgMC4wMDQ1NTMsIDAuMDA0NTU5LCAwLjAwNDU2MiwgMC4wMDQ1NjYsIDAuMDA0NTY3LCAwLjAwNDU2NyIsIFwKLSAgICAgICAgICAiMC4wMDQ2NDYsIDAuMDA0NTY4LCAwLjAwNDU2OCwgMC4wMDQ1NjgsIDAuMDA0NTY5LCAwLjAwNDU2NywgMC4wMDQ1NjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTM0NjcsIDAuMDEzNDc0LCAwLjAxMzQ3NSwgMC4wMTM0NzQsIDAuMDEzNDcyLCAwLjAxMzQ3MiwgMC4wMTM0NjgiLCBcCi0gICAgICAgICAgIjAuMDEzMzk4LCAwLjAxMzQ0MiwgMC4wMTM0NDcsIDAuMDEzNDQ4LCAwLjAxMzQ0OCwgMC4wMTM0NSwgMC4wMTM0NTEiLCBcCi0gICAgICAgICAgIjAuMDEzMzU2LCAwLjAxMzQyNSwgMC4wMTM0MzYsIDAuMDEzNDM5LCAwLjAxMzQ0MiwgMC4wMTM0NCwgMC4wMTM0NDEiLCBcCi0gICAgICAgICAgIjAuMDEzMzMxLCAwLjAxMzQxLCAwLjAxMzQyNywgMC4wMTM0MzIsIDAuMDEzNDM2LCAwLjAxMzQzNywgMC4wMTM0MzYiLCBcCi0gICAgICAgICAgIjAuMDEzMzE3LCAwLjAxMzQsIDAuMDEzNDIxLCAwLjAxMzQyNiwgMC4wMTM0MzEsIDAuMDEzNDM2LCAwLjAxMzQzNyIsIFwKLSAgICAgICAgICAiMC4wMTMzMDcsIDAuMDEzMzg3LCAwLjAxMzQwMywgMC4wMTM0MTgsIDAuMDEzNDI3LCAwLjAxMzQyOCwgMC4wMTM0MzEiLCBcCi0gICAgICAgICAgIjAuMDEzMzExLCAwLjAxMzM3OCwgMC4wMTMzOTEsIDAuMDEzNDEzLCAwLjAxMzQyLCAwLjAxMzQyNSwgMC4wMTM0MjciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjExMSwgMC4wMDIxMTgsIDAuMDAyMTE4LCAwLjAwMjExOCwgMC4wMDIxMTgsIDAuMDAyMTE4LCAwLjAwMjExOCIsIFwKLSAgICAgICAgICAiMC4wMDIwMjksIDAuMDAyMTA3LCAwLjAwMjExOCwgMC4wMDIxMTksIDAuMDAyMTIyLCAwLjAwMjEyNiwgMC4wMDIxMjMiLCBcCi0gICAgICAgICAgIjAuMDAxOTM2LCAwLjAwMjA4LCAwLjAwMjEwMiwgMC4wMDIxMSwgMC4wMDIxMTQsIDAuMDAyMTE4LCAwLjAwMjEyIiwgXAotICAgICAgICAgICIwLjAwMTg3NSwgMC4wMDIwNTQsIDAuMDAyMDg2LCAwLjAwMjA5NywgMC4wMDIxMDcsIDAuMDAyMTExLCAwLjAwMjExNSIsIFwKLSAgICAgICAgICAiMC4wMDE4MzYsIDAuMDAyMDMsIDAuMDAyMDcyLCAwLjAwMjA4NywgMC4wMDIwOTgsIDAuMDAyMTA0LCAwLjAwMjExIiwgXAotICAgICAgICAgICIwLjAwMTgxNywgMC4wMDIwMDMsIDAuMDAyMDU0LCAwLjAwMjA3LCAwLjAwMjA4NywgMC4wMDIwOTQsIDAuMDAyMTAyIiwgXAotICAgICAgICAgICIwLjAwMTgyMSwgMC4wMDE5ODYsIDAuMDAyMDQsIDAuMDAyMDYsIDAuMDAyMDc5LCAwLjAwMjA4NywgMC4wMDIwOTYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTE4MTUsIDAuMDExODQ3LCAwLjAxMTg0OSwgMC4wMTE4NDksIDAuMDExODUxLCAwLjAxMTg1LCAwLjAxMTg0NSIsIFwKLSAgICAgICAgICAiMC4wMTE3MTgsIDAuMDExODM2LCAwLjAxMTg1MiwgMC4wMTE4NTUsIDAuMDExODY2LCAwLjAxMTg2MywgMC4wMTE4NjMiLCBcCi0gICAgICAgICAgIjAuMDExNjM0LCAwLjAxMTgwMywgMC4wMTE4MzMsIDAuMDExODQyLCAwLjAxMTg1LCAwLjAxMTg1LCAwLjAxMTg1NyIsIFwKLSAgICAgICAgICAiMC4wMTE1ODgsIDAuMDExNzc0LCAwLjAxMTgxNSwgMC4wMTE4MjgsIDAuMDExODM5LCAwLjAxMTg0NiwgMC4wMTE4NSIsIFwKLSAgICAgICAgICAiMC4wMTE1NiwgMC4wMTE3NDcsIDAuMDExNzk3LCAwLjAxMTgxNCwgMC4wMTE4MjksIDAuMDExODM3LCAwLjAxMTg0NSIsIFwKLSAgICAgICAgICAiMC4wMTE1NCwgMC4wMTE3MTYsIDAuMDExNzY3LCAwLjAxMTc5NSwgMC4wMTE4MTQsIDAuMDExODI0LCAwLjAxMTgzMyIsIFwKLSAgICAgICAgICAiMC4wMTE1MzksIDAuMDExNjkzLCAwLjAxMTc0NiwgMC4wMTE3OCwgMC4wMTE4LCAwLjAxMTgxMiwgMC4wMTE4MjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjEwMywgMC4wMDIxMTUsIDAuMDAyMTE0LCAwLjAwMjExNCwgMC4wMDIxMTUsIDAuMDAyMTE2LCAwLjAwMjExNCIsIFwKLSAgICAgICAgICAiMC4wMDIwMDksIDAuMDAyMDk5LCAwLjAwMjExMSwgMC4wMDIxMTQsIDAuMDAyMTE1LCAwLjAwMjEyMSwgMC4wMDIxMTkiLCBcCi0gICAgICAgICAgIjAuMDAxOTUsIDAuMDAyMDc3LCAwLjAwMjA5OCwgMC4wMDIxMDUsIDAuMDAyMTEsIDAuMDAyMTEyLCAwLjAwMjExNSIsIFwKLSAgICAgICAgICAiMC4wMDE5MDMsIDAuMDAyMDUyLCAwLjAwMjA4MywgMC4wMDIwOTQsIDAuMDAyMTA0LCAwLjAwMjEwOCwgMC4wMDIxMTIiLCBcCi0gICAgICAgICAgIjAuMDAxOTQ5LCAwLjAwMjA1OCwgMC4wMDIwNzgsIDAuMDAyMDk2LCAwLjAwMjEwNCwgMC4wMDIxMDgsIDAuMDAyMTExIiwgXAotICAgICAgICAgICIwLjAwMTk5NywgMC4wMDIwNTIsIDAuMDAyMDg0LCAwLjAwMjA5MSwgMC4wMDIxLCAwLjAwMjEwNSwgMC4wMDIxMDkiLCBcCi0gICAgICAgICAgIjAuMDAyMDk3LCAwLjAwMjA2OSwgMC4wMDIwODksIDAuMDAyMDk3LCAwLjAwMjEwNCwgMC4wMDIxMDcsIDAuMDAyMTExIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQzAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEwNzMsIDAuMDEwNzc0LCAwLjAxMDc3OSwgMC4wMTA3NzgsIDAuMDEwNzgxLCAwLjAxMDc3OSwgMC4wMTA3NzgiLCBcCi0gICAgICAgICAgIjAuMDEwNTkxLCAwLjAxMDcyOCwgMC4wMTA3NTEsIDAuMDEwNzU4LCAwLjAxMDc2MywgMC4wMTA3NjYsIDAuMDEwNzY2IiwgXAotICAgICAgICAgICIwLjAxMDU0MSwgMC4wMTA2ODgsIDAuMDEwNzIzLCAwLjAxMDczNiwgMC4wMTA3NDcsIDAuMDEwNzUyLCAwLjAxMDc1NCIsIFwKLSAgICAgICAgICAiMC4wMTA1MjcsIDAuMDEwNjU2LCAwLjAxMDcwMywgMC4wMTA3MTksIDAuMDEwNzMzLCAwLjAxMDczOSwgMC4wMTA3NDciLCBcCi0gICAgICAgICAgIjAuMDEwNTY3LCAwLjAxMDY0NywgMC4wMTA2ODksIDAuMDEwNzA1LCAwLjAxMDcyMywgMC4wMTA3MywgMC4wMTA3MzgiLCBcCi0gICAgICAgICAgIjAuMDEwNjYsIDAuMDEwNjQxLCAwLjAxMDY3NywgMC4wMTA2OTQsIDAuMDEwNzExLCAwLjAxMDcyLCAwLjAxMDcyOSIsIFwKLSAgICAgICAgICAiMC4wMTA3NDYsIDAuMDEwNjUzLCAwLjAxMDY3OCwgMC4wMTA2OTEsIDAuMDEwNzA3LCAwLjAxMDcxNiwgMC4wMTA3MjciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDA3OCwgMC4wMDAxNDgsIDAuMDAwMTU1LCAwLjAwMDE1OCwgMC4wMDAxNTksIDAuMDAwMTYsIDAuMDAwMTYxIiwgXAotICAgICAgICAgICIwLjAwMDA4NiwgMC4wMDAyMTMsIDAuMDAwMjQxLCAwLjAwMDI1LCAwLjAwMDI1OCwgMC4wMDAyNjEsIDAuMDAwMjY1IiwgXAotICAgICAgICAgICIwLjAwMDE2NCwgMC4wMDAxOTQsIDAuMDAwMjQxLCAwLjAwMDI2MSwgMC4wMDAyNzYsIDAuMDAwMjgzLCAwLjAwMDI5MSIsIFwKLSAgICAgICAgICAiMC4wMDAxMzgsIDAuMDAwMTgxLCAwLjAwMDIzNSwgMC4wMDAyNDksIDAuMDAwMjY3LCAwLjAwMDI3NiwgMC4wMDAyOTMiLCBcCi0gICAgICAgICAgIjAuMDAwMTYzLCAwLjAwMDE0OSwgMC4wMDAyMjEsIDAuMDAwMjM5LCAwLjAwMDI2LCAwLjAwMDI3LCAwLjAwMDI3OSIsIFwKLSAgICAgICAgICAiMC4wMDAwMjEsIDAuMDAwMTY0LCAwLjAwMDIxNiwgMC4wMDAyMzksIDAuMDAwMjYxLCAwLjAwMDI3MSwgMC4wMDAyODIiLCBcCi0gICAgICAgICAgIjAuMDAwMTI2LCAwLjAwMDE0OCwgMC4wMDAyMDYsIDAuMDAwMjI4LCAwLjAwMDI0OCwgMC4wMDAyNjIsIDAuMDAwMjc1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IEFPSTIyMVhMICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChBT0kyMjFYTCkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjEwMjczODsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQTApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDU3MDkyMjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA1Njg0MjU7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNTcwOTIyOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDIyNiwgMC4wMDAyMjYsIDAuMDAwMjI2LCAwLjAwMDIyNiwgMC4wMDAyMjYsIDAuMDAwMjI2LCAwLjAwMDIyNiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDIzMiwgMC4wMDAyMjcsIDAuMDAwMjI3LCAwLjAwMDIyNywgMC4wMDAyMjcsIDAuMDAwMjI3LCAwLjAwMDIyNyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQTEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYwMjAwMTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA1OTgxODE7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjAyMDAxOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDA5OCwgMC4wMDAwOTgsIDAuMDAwMDk4LCAwLjAwMDA5OCwgMC4wMDAwOTgsIDAuMDAwMDk4LCAwLjAwMDA5OCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDI1NywgMC4wMDAyNTcsIDAuMDAwMjU3LCAwLjAwMDI1NywgMC4wMDAyNTcsIDAuMDAwMjU3LCAwLjAwMDI1NyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQjApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYyOTM2NDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2Mjc3MTI7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjI5MzY0OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDIyNiwgMC4wMDAyMjYsIDAuMDAwMjI2LCAwLjAwMDIyNiwgMC4wMDAyMjYsIDAuMDAwMjI2LCAwLjAwMDIyNiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDIzLCAwLjAwMDIyNywgMC4wMDAyMjcsIDAuMDAwMjI3LCAwLjAwMDIyNywgMC4wMDAyMjcsIDAuMDAwMjI3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCMSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjE2ODE1OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYxMzU7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjE2ODE1OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDA2OSwgMC4wMDAwNjksIDAuMDAwMDY4LCAwLjAwMDA2OCwgMC4wMDAwNjksIDAuMDAwMDY5LCAwLjAwMDA2OCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDI1NywgMC4wMDAyNTcsIDAuMDAwMjU3LCAwLjAwMDI1NywgMC4wMDAyNTcsIDAuMDAwMjU3LCAwLjAwMDI1NyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQzApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYwMTI2NTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MDExMjE7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjAxMjY1OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDA0OCwgMC4wMDAwNDgsIDAuMDAwMDQ4LCAwLjAwMDA0OCwgMC4wMDAwNDgsIDAuMDAwMDQ4LCAwLjAwMDA0OCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDM3MywgMC4wMDAzNzMsIDAuMDAwMzczLCAwLjAwMDM3MywgMC4wMDAzNzMsIDAuMDAwMzczLCAwLjAwMDM3MyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjA1NTMxMzk7Ci0gICAgZnVuY3Rpb24gOiAiKCEoKChBMCBBMSkrKEIwIEIxKSkrQzApKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTAiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI1NjUwMywgMC4yOTYxNjksIDAuNjUyOTMsIDEuMjQ5MDEsIDEuODQ2NjgsIDMuMjQwNjIsIDQuMDM2NzgiLCBcCi0gICAgICAgICAgIjAuMjY2MTQyLCAwLjMwNTg2NCwgMC42NjI2OTQsIDEuMjU4MDksIDEuODU2MDcsIDMuMjUwNzMsIDQuMDQ2MzYiLCBcCi0gICAgICAgICAgIjAuMjc2Njk0LCAwLjMxNjM2MSwgMC42NzMyMjYsIDEuMjY5MTIsIDEuODY3MzcsIDMuMjYwNDgsIDQuMDU2OTgiLCBcCi0gICAgICAgICAgIjAuMjg2MTc3LCAwLjMyNTczLCAwLjY4MjUzMiwgMS4yNzgzMSwgMS44Nzc1NywgMy4yNjk3OCwgNC4wNjYyMSIsIFwKLSAgICAgICAgICAiMC4yOTQ3OCwgMC4zMzQ1MjUsIDAuNjkxMzI2LCAxLjI4NjgyLCAxLjg4NDUzLCAzLjI3OTYzLCA0LjA3NTQ1IiwgXAotICAgICAgICAgICIwLjMwODAxMiwgMC4zNDc2OCwgMC43MDQ3MzksIDEuMzAwODQsIDEuODk5MiwgMy4yOTIxMywgNC4wODc5OSIsIFwKLSAgICAgICAgICAiMC4zMTkzMTIsIDAuMzU5MDAxLCAwLjcxNTk0OCwgMS4zMTEzNCwgMS45MDg5NywgMy4zMDMzNSwgNC4wOTk2OSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC40NTkzOTksIDAuNTM5MDg3LCAxLjI1ODY2LCAyLjQ2MTkyLCAzLjY2NDU1LCA2LjQ3NjA4LCA4LjA3Njc5IiwgXAotICAgICAgICAgICIwLjQ1OTM3NiwgMC41MzkwNTcsIDEuMjU4MjksIDIuNDYwOTUsIDMuNjY0MjEsIDYuNDY5ODksIDguMDczNDIiLCBcCi0gICAgICAgICAgIjAuNDU5MzU3LCAwLjUzOTEwOSwgMS4yNTgyOSwgMi40NjE0NCwgMy42NjQ4OSwgNi40NzA3MywgOC4wNzY2MSIsIFwKLSAgICAgICAgICAiMC40NTk1MTUsIDAuNTM5MzM4LCAxLjI1ODE0LCAyLjQ2MTE0LCAzLjY2NDY0LCA2LjQ3Mzk0LCA4LjA3NjQyIiwgXAotICAgICAgICAgICIwLjQ1OTc0LCAwLjUzOTA3NSwgMS4yNTgyNCwgMi40NjEsIDMuNjYzODIsIDYuNDY4OTgsIDguMDc2OTEiLCBcCi0gICAgICAgICAgIjAuNDYwMTU5LCAwLjUzOTQwOSwgMS4yNTg1NCwgMi40NjEwNCwgMy42NjQyMSwgNi40NzA5MSwgOC4wNzU1NCIsIFwKLSAgICAgICAgICAiMC40NjE4MjksIDAuNTQwNzczLCAxLjI1ODIzLCAyLjQ2MDc2LCAzLjY2MzYxLCA2LjQ3NTQ4LCA4LjA3NjQ3Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE2ODU4OSwgMC4xOTQzOTcsIDAuNDI0ODg3LCAwLjgwNjk3MSwgMS4xODg2OSwgMi4wNzg3NywgMi41ODgyNyIsIFwKLSAgICAgICAgICAiMC4xNzc1MDYsIDAuMjAzMzE3LCAwLjQzMzcxNCwgMC44MTYyNTYsIDEuMTk4MjcsIDIuMDg4NSwgMi41OTcxMiIsIFwKLSAgICAgICAgICAiMC4xODg0NzcsIDAuMjE0Mjg5LCAwLjQ0NDc3OCwgMC44MjY4OTcsIDEuMjA5MSwgMi4wOTk5OSwgMi42MDgzNCIsIFwKLSAgICAgICAgICAiMC4xOTk0NDMsIDAuMjI0OTQ0LCAwLjQ1NTcxNiwgMC44MzgsIDEuMjE5NjUsIDIuMTExMjksIDIuNjE5MDkiLCBcCi0gICAgICAgICAgIjAuMjEwNDIzLCAwLjIzNjE4LCAwLjQ2Njk0MiwgMC44NDkyOTUsIDEuMjMwODYsIDIuMTIxMDgsIDIuNjMwNDEiLCBcCi0gICAgICAgICAgIjAuMjI3NzU4LCAwLjI1MzU1MywgMC40ODQ2MTUsIDAuODY3MTEzLCAxLjI0ODg1LCAyLjEzODc5LCAyLjY0ODM0IiwgXAotICAgICAgICAgICIwLjI0MzE3NSwgMC4yNjg5MjgsIDAuNDk5OTUyLCAwLjg4MjQ2LCAxLjI2NDE3LCAyLjE1NTg1LCAyLjY2MzY0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMwNjczOSwgMC4zNTY4NjIsIDAuODA4MTg1LCAxLjU2MDM2LCAyLjMxMjE3LCA0LjA2NjExLCA1LjA2OTI0IiwgXAotICAgICAgICAgICIwLjMwNjY0NiwgMC4zNTY3NzgsIDAuODA4Mjg5LCAxLjU2MDA2LCAyLjMxMjMzLCA0LjA2NjU4LCA1LjA2ODciLCBcCi0gICAgICAgICAgIjAuMzA2NjYyLCAwLjM1Njc3NiwgMC44MDgzMzMsIDEuNTYwMzYsIDIuMzExOTUsIDQuMDY2NzQsIDUuMDY4MjUiLCBcCi0gICAgICAgICAgIjAuMzA2ODQxLCAwLjM1Njc3OCwgMC44MDgzMywgMS41NjAwMywgMi4zMTIyOCwgNC4wNjYzMywgNS4wNjkxOCIsIFwKLSAgICAgICAgICAiMC4zMDgyNDEsIDAuMzU3NjMzLCAwLjgwODM5NSwgMS41NTk5NSwgMi4zMTE5NSwgNC4wNjYzMiwgNS4wNjkxNCIsIFwKLSAgICAgICAgICAiMC4zMTIxOTUsIDAuMzYwNzE1LCAwLjgwODI2MiwgMS41NjA0LCAyLjMxMjE4LCA0LjA2NTc1LCA1LjA2OTU1IiwgXAotICAgICAgICAgICIwLjMxNzM3NiwgMC4zNjUyNTEsIDAuODA4MzY2LCAxLjU2MDA2LCAyLjMxMTU2LCA0LjA2NTc4LCA1LjA2ODk2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkExIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yNTE1NDksIDAuMjkxMiwgMC42NDc5MTEsIDEuMjQ0MjEsIDEuODQxODMsIDMuMjM1OTEsIDQuMDMxNzYiLCBcCi0gICAgICAgICAgIjAuMjYxMzA4LCAwLjMwMDk1NSwgMC42NTgwNjIsIDEuMjUzMywgMS44NTIwMiwgMy4yNDQ5NSwgNC4wNDEyNiIsIFwKLSAgICAgICAgICAiMC4yNzE4MjgsIDAuMzExNDEyLCAwLjY2ODMxMiwgMS4yNjQxMywgMS44NjMzMiwgMy4yNTU4MSwgNC4wNTIwOSIsIFwKLSAgICAgICAgICAiMC4yODExNjEsIDAuMzIwNzE2LCAwLjY3NzU3MywgMS4yNzMzNSwgMS44NzI2MSwgMy4yNjQ4OSwgNC4wNjEzMiIsIFwKLSAgICAgICAgICAiMC4yODk3MDksIDAuMzI5NDg1LCAwLjY4NjM0NSwgMS4yODE3MywgMS44Nzk5MywgMy4yNzM2NywgNC4wNjk5NSIsIFwKLSAgICAgICAgICAiMC4zMDI4NDEsIDAuMzQyNTUzLCAwLjY5OTY5OSwgMS4yOTU4NCwgMS44OTQyMiwgMy4yODcyMywgNC4wODMxMSIsIFwKLSAgICAgICAgICAiMC4zMTQwNjMsIDAuMzUzODM2LCAwLjcxMDk5NywgMS4zMDY5NiwgMS45MDQ4NSwgMy4yOTgxOCwgNC4wOTUyMyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC40NTMyMTMsIDAuNTMyOTU4LCAxLjI1MjY2LCAyLjQ1NTM0LCAzLjY2NzYzLCA2LjQ3MDk1LCA4LjA3MDQ1IiwgXAotICAgICAgICAgICIwLjQ1MzE5NywgMC41MzMyMjcsIDEuMjUyMDcsIDIuNDYxMDcsIDMuNjU4NzQsIDYuNDY4MjgsIDguMDcwMSIsIFwKLSAgICAgICAgICAiMC40NTMzNzEsIDAuNTMyODg3LCAxLjI1MjU1LCAyLjQ2MTQsIDMuNjU5MTksIDYuNDY1MTEsIDguMDcwMzMiLCBcCi0gICAgICAgICAgIjAuNDUzMzIyLCAwLjUzMjkwOCwgMS4yNTMyMywgMi40NjExOSwgMy42NTg3MywgNi40NjkzMiwgOC4wNjk1OSIsIFwKLSAgICAgICAgICAiMC40NTMyOCwgMC41MzI5MzUsIDEuMjU0NjMsIDIuNDU2MTEsIDMuNjY3MTEsIDYuNDY4ODcsIDguMDY4ODciLCBcCi0gICAgICAgICAgIjAuNDU0MDg0LCAwLjUzMzMwNSwgMS4yNTQ4OSwgMi40NTUzOSwgMy42NTg3MywgNi40NjY0MywgOC4wNjkxOCIsIFwKLSAgICAgICAgICAiMC40NTU2OTcsIDAuNTM0ODMxLCAxLjI1MzkxLCAyLjQ1NTA0LCAzLjY2NzQ5LCA2LjQ2ODAyLCA4LjA3MDA1Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE2NjAwNCwgMC4xOTE4MDMsIDAuNDIyMzE3LCAwLjgwNDM4NSwgMS4xODYwNywgMi4wNzY1MywgMi41ODU5NiIsIFwKLSAgICAgICAgICAiMC4xNzQ5NzEsIDAuMjAwNzgxLCAwLjQzMTE3MiwgMC44MTMyODYsIDEuMTk1NDgsIDIuMDg1MjcsIDIuNTk0NzciLCBcCi0gICAgICAgICAgIjAuMTg2NTQxLCAwLjIxMjM2NywgMC40NDI4MzMsIDAuODI1MjcyLCAxLjIwNjczLCAyLjA5NzY1LCAyLjYwNjM2IiwgXAotICAgICAgICAgICIwLjE5ODE5OSwgMC4yMjQwMTQsIDAuNDU0NDk4LCAwLjgzNjgwOSwgMS4yMTg2NSwgMi4xMDg2LCAyLjYxNzk0IiwgXAotICAgICAgICAgICIwLjIwOTg4MiwgMC4yMzU2ODksIDAuNDY2MTM0LCAwLjg0ODU3NSwgMS4yMzAzNSwgMi4xMjE2LCAyLjYyOTQ1IiwgXAotICAgICAgICAgICIwLjIyODYzNCwgMC4yNTQ0MTYsIDAuNDg0ODY4LCAwLjg2NzE0OCwgMS4yNDg5NiwgMi4xMzk5NSwgMi42NDc0NSIsIFwKLSAgICAgICAgICAiMC4yNDUyNzEsIDAuMjcwODc3LCAwLjUwMTIzNiwgMC44ODM2NjgsIDEuMjY1ODQsIDIuMTU1MywgMi42NjQ1NSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMDY3NDMsIDAuMzU2ODAzLCAwLjgwODE5NywgMS41NjAzMywgMi4zMTIyMywgNC4wNjYyNywgNS4wNjg5MyIsIFwKLSAgICAgICAgICAiMC4zMDY2NywgMC4zNTY3ODMsIDAuODA4MzM1LCAxLjU2MDQzLCAyLjMxMjIxLCA0LjA2NTQ2LCA1LjA2ODQ2IiwgXAotICAgICAgICAgICIwLjMwNjU2NCwgMC4zNTY3NzcsIDAuODA4Mjk4LCAxLjU2MDIxLCAyLjMxMTksIDQuMDY2MzcsIDUuMDY5NjEiLCBcCi0gICAgICAgICAgIjAuMzA2OTAzLCAwLjM1Njc4LCAwLjgwODMzLCAxLjU2MDA1LCAyLjMxMiwgNC4wNjY2NywgNS4wNjk3NSIsIFwKLSAgICAgICAgICAiMC4zMDg5MTksIDAuMzU4MDI5LCAwLjgwODM0LCAxLjU2MDIyLCAyLjMxMjAyLCA0LjA2NjU0LCA1LjA2ODI1IiwgXAotICAgICAgICAgICIwLjMxNDk0LCAwLjM2Mjg1NiwgMC44MDgwMzIsIDEuNTYwMSwgMi4zMTE1MSwgNC4wNjYyMSwgNS4wNjg4NiIsIFwKLSAgICAgICAgICAiMC4zMjIzMzgsIDAuMzY5MTQzLCAwLjgwODYyMSwgMS41NjAzNSwgMi4zMTIxOSwgNC4wNjY0MSwgNS4wNjg4NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjQ1NTU0LCAwLjI4NTI3LCAwLjY0MjE0NywgMS4yMzY5MywgMS44MzA5OCwgMy4yMTcxOCwgNC4wMDgwMiIsIFwKLSAgICAgICAgICAiMC4yNTQ2NCwgMC4yOTQzMjUsIDAuNjUxMzk0LCAxLjI0NTg3LCAxLjg0MDQ4LCAzLjIyNTUyLCA0LjAxNzE1IiwgXAotICAgICAgICAgICIwLjI2NTA2NywgMC4zMDQ2OTksIDAuNjYxNzE5LCAxLjI1NjQzLCAxLjg1MDQyLCAzLjIzNTk1LCA0LjAyNzU1IiwgXAotICAgICAgICAgICIwLjI3NDg3NywgMC4zMTQ2NiwgMC42NzE3OTMsIDEuMjY2MDEsIDEuODYwNTEsIDMuMjQ2NzQsIDQuMDM3NTIiLCBcCi0gICAgICAgICAgIjAuMjg0NjE0LCAwLjMyNDMwNCwgMC42ODEzMjksIDEuMjc2MjcsIDEuODcwOTUsIDMuMjU1NjksIDQuMDQ3MzIiLCBcCi0gICAgICAgICAgIjAuMzAwMTE2LCAwLjMzOTc5NCwgMC42OTcwMjEsIDEuMjkyMTIsIDEuODg2MTMsIDMuMjcxNCwgNC4wNjI5OSIsIFwKLSAgICAgICAgICAiMC4zMTM3OTgsIDAuMzUzNTQyLCAwLjcxMDYzMywgMS4zMDU3NiwgMS45MDEwNywgMy4yODU3OCwgNC4wNzczMSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC40NTk3LCAwLjUzOTA2MiwgMS4yNTY4MSwgMi40NTEyNywgMy42NDU3NCwgNi40MzE0LCA4LjAyNzE3IiwgXAotICAgICAgICAgICIwLjQ1OTYwNSwgMC41Mzk0NTgsIDEuMjU3MTQsIDIuNDUxMTEsIDMuNjQ2MjMsIDYuNDM1NzUsIDguMDI3MTgiLCBcCi0gICAgICAgICAgIjAuNDU5MzY4LCAwLjUzOTQ2MywgMS4yNTY5OCwgMi40NTEzNiwgMy42NDU2MSwgNi40MzQyMiwgOC4wMjY5IiwgXAotICAgICAgICAgICIwLjQ1OTM2OCwgMC41MzkxMzEsIDEuMjU2NjQsIDIuNDUwODUsIDMuNjQ1NzgsIDYuNDMxNDIsIDguMDI0NzEiLCBcCi0gICAgICAgICAgIjAuNDU5NTk4LCAwLjUzOTMzMiwgMS4yNTY3MSwgMi40NTEzNCwgMy42NDY3OCwgNi40MzU3OSwgOC4wMjY4OSIsIFwKLSAgICAgICAgICAiMC40NjEwOTgsIDAuNTQwMTI1LCAxLjI1Njc3LCAyLjQ1MjAzLCAzLjY0NTg4LCA2LjQzNDQ3LCA4LjAyNjIyIiwgXAotICAgICAgICAgICIwLjQ2Mzk4OCwgMC41NDIwNDIsIDEuMjU2NDQsIDIuNDUxMzgsIDMuNjQ1ODgsIDYuNDMyODksIDguMDI3NTYiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTU3MjE0LCAwLjE4MjY0OSwgMC40MTIyMTgsIDAuNzk0MjE2LCAxLjE3NTcxLCAyLjA2NTU4LCAyLjU3Mzc5IiwgXAotICAgICAgICAgICIwLjE2NjM1NCwgMC4xOTE5NTEsIDAuNDIxNDc1LCAwLjgwMzQ4MSwgMS4xODQ5NywgMi4wNzQ0MSwgMi41ODMwMSIsIFwKLSAgICAgICAgICAiMC4xNzczMDgsIDAuMjAyOTMyLCAwLjQzMjUyNiwgMC44MTQ1MTcsIDEuMTk2LCAyLjA4NTQ0LCAyLjU5NDAxIiwgXAotICAgICAgICAgICIwLjE4ODI2MywgMC4yMTM5MjMsIDAuNDQzNjU5LCAwLjgyNTU5MSwgMS4yMDcxMywgMi4wOTcxNSwgMi42MDUxNCIsIFwKLSAgICAgICAgICAiMC4xOTkyNSwgMC4yMjQ3NDUsIDAuNDU0NjAxLCAwLjgzNjU2MywgMS4yMTgxNCwgMi4xMDc3MywgMi42MTU5MiIsIFwKLSAgICAgICAgICAiMC4yMTY0NDMsIDAuMjQyMDU3LCAwLjQ3MjI2MywgMC44NTQzOTgsIDEuMjM1ODgsIDIuMTI1NCwgMi42MzM5NSIsIFwKLSAgICAgICAgICAiMC4yMzE1ODYsIDAuMjU3NTA5LCAwLjQ4NzU1NywgMC44Njk2MzEsIDEuMjUxMzcsIDIuMTQxMzUsIDIuNjQ5MTMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjkyNzE1LCAwLjM0MjgxOCwgMC43OTQwOTMsIDEuNTQ1NjIsIDIuMjk3NzUsIDQuMDUzNCwgNS4wNTQ0OSIsIFwKLSAgICAgICAgICAiMC4yOTI2OTQsIDAuMzQyODcyLCAwLjc5NDEzLCAxLjU0NTg5LCAyLjI5NzcxLCA0LjA1MTc5LCA1LjA1NTE2IiwgXAotICAgICAgICAgICIwLjI5MjY0NywgMC4zNDI4NDksIDAuNzk0MTA3LCAxLjU0NTQ1LCAyLjI5Njk2LCA0LjA1MDgzLCA1LjA1NDE0IiwgXAotICAgICAgICAgICIwLjI5MzAwMiwgMC4zNDI5NjEsIDAuNzk0MTIxLCAxLjU0NTUzLCAyLjI5Nzc1LCA0LjA1MzIzLCA1LjA1NTMiLCBcCi0gICAgICAgICAgIjAuMjk0NTg3LCAwLjM0Mzg4OSwgMC43OTQxMTUsIDEuNTQ1NTEsIDIuMjk3NTMsIDQuMDUyMTksIDUuMDUzMzgiLCBcCi0gICAgICAgICAgIjAuMjk4OTgyLCAwLjM0NzQ0MSwgMC43OTQxMjMsIDEuNTQ1NzIsIDIuMjk3NjUsIDQuMDUwNjYsIDUuMDU0NTgiLCBcCi0gICAgICAgICAgIjAuMzA0MzAyLCAwLjM1MjM0LCAwLjc5NDM5NywgMS41NDUzOSwgMi4yOTc3OSwgNC4wNTMyMSwgNS4wNTYyOCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjQxMzk1LCAwLjI4MTIzNiwgMC42NDAzMDksIDEuMjM4OCwgMS44Mzc2MSwgMy4yMzA2OCwgNC4wMjYzNSIsIFwKLSAgICAgICAgICAiMC4yNTA0NDgsIDAuMjkwNDY5LCAwLjY0OTE3OSwgMS4yNDc4MywgMS44NDUzNiwgMy4yMzk3LCA0LjAzNTgxIiwgXAotICAgICAgICAgICIwLjI2MDgzNCwgMC4zMDA2OTYsIDAuNjU5ODY4LCAxLjI1ODE2LCAxLjg1NTY3LCAzLjI1MDU0LCA0LjA0NTg1IiwgXAotICAgICAgICAgICIwLjI3MDU0MywgMC4zMTA2NCwgMC42Njk4MjgsIDEuMjY4MDUsIDEuODY1NzEsIDMuMjYwMjksIDQuMDU1OTciLCBcCi0gICAgICAgICAgIjAuMjgwMTU4LCAwLjMyMDIyNSwgMC42NzkxMDMsIDEuMjc3OTksIDEuODc1NjMsIDMuMjY5MTYsIDQuMDY1NjUiLCBcCi0gICAgICAgICAgIjAuMjk1NTk2LCAwLjMzNTUxMywgMC42OTQ4MTgsIDEuMjkzNzYsIDEuODkyMjIsIDMuMjg1MDMsIDQuMDgxMjEiLCBcCi0gICAgICAgICAgIjAuMzA5MTE5LCAwLjM0OTA4LCAwLjcwODQwOSwgMS4zMDY0NywgMS45MDYwMiwgMy4yOTkxMywgNC4wOTUyOCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC40NTU3NTMsIDAuNTM2MzU3LCAxLjI1ODU5LCAyLjQ2MTk2LCAzLjY2NDY2LCA2LjQ3NjYxLCA4LjA3NjY0IiwgXAotICAgICAgICAgICIwLjQ1NjA2MiwgMC41MzYxNTMsIDEuMjU4MjYsIDIuNDYxODksIDMuNjY3MTMsIDYuNDY5MTYsIDguMDcxNDMiLCBcCi0gICAgICAgICAgIjAuNDU1NzgsIDAuNTM2Mjg0LCAxLjI1OTAzLCAyLjQ2MTUsIDMuNjY2OTUsIDYuNDY5MDcsIDguMDc2MzciLCBcCi0gICAgICAgICAgIjAuNDU1NzQ5LCAwLjUzNjEwOCwgMS4yNTgzNCwgMi40NjA4NywgMy42NjcxNCwgNi40Njk2OCwgOC4wNzIyMiIsIFwKLSAgICAgICAgICAiMC40NTU5OTEsIDAuNTM2MDMsIDEuMjU4MDgsIDIuNDYxOTMsIDMuNjY0MzksIDYuNDc1MDIsIDguMDc2NDkiLCBcCi0gICAgICAgICAgIjAuNDU3NzM1LCAwLjUzNjkzLCAxLjI1ODM5LCAyLjQ2MTExLCAzLjY2NDI2LCA2LjQ3MTQ1LCA4LjA3NjQyIiwgXAotICAgICAgICAgICIwLjQ2MDUxNSwgMC41MzkwMTUsIDEuMjU4MTYsIDIuNDYwNTksIDMuNjY0MjYsIDYuNDcwNjgsIDguMDc2NjgiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTU0MDk3LCAwLjE3OTY2NiwgMC40MDkyNCwgMC43OTExMjUsIDEuMTcyNiwgMi4wNjIxNSwgMi41NzA5MSIsIFwKLSAgICAgICAgICAiMC4xNjM0MjUsIDAuMTg5MDEzLCAwLjQxODYwNywgMC44MDA0OSwgMS4xODIwNCwgMi4wNzE0OCwgMi41ODAwMyIsIFwKLSAgICAgICAgICAiMC4xNzQ4NzUsIDAuMjAwNDg3LCAwLjQzMDA3NiwgMC44MTIwMDYsIDEuMTkzNDYsIDIuMDgyOTIsIDIuNTkxNDgiLCBcCi0gICAgICAgICAgIjAuMTg2NTAyLCAwLjIxMjA1OCwgMC40NDE2NjQsIDAuODIzNTg0LCAxLjIwNTA0LCAyLjA5NTE5LCAyLjYwMzAxIiwgXAotICAgICAgICAgICIwLjE5ODExNCwgMC4yMjM3LCAwLjQ1MzMwOCwgMC44MzUyMTcsIDEuMjE2NjgsIDIuMTA2NjIsIDIuNjE0NTYiLCBcCi0gICAgICAgICAgIjAuMjE2ODk4LCAwLjI0MjUwMywgMC40NzIwMzYsIDAuODUzOTU4LCAxLjIzNTQ1LCAyLjEyNTE1LCAyLjYzMzI3IiwgXAotICAgICAgICAgICIwLjIzMzU2MSwgMC4yNTkwMjgsIDAuNDg4MzU3LCAwLjg3MDI1OCwgMS4yNTE3OSwgMi4xNDEyLCAyLjY0OTg4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI5MjcwOCwgMC4zNDI4MjgsIDAuNzk0MTUsIDEuNTQ1NzEsIDIuMjk3MzIsIDQuMDUxMDUsIDUuMDUyOTQiLCBcCi0gICAgICAgICAgIjAuMjkyNzA3LCAwLjM0Mjg2LCAwLjc5Mzg4NiwgMS41NDU2OCwgMi4yOTczNiwgNC4wNTA4NSwgNS4wNTU0MyIsIFwKLSAgICAgICAgICAiMC4yOTI2NDcsIDAuMzQyNzksIDAuNzk0MTYsIDEuNTQ1NDMsIDIuMjk3MDQsIDQuMDUwODgsIDUuMDU0MTUiLCBcCi0gICAgICAgICAgIjAuMjkzMzEsIDAuMzQyOTE4LCAwLjc5NDE0NiwgMS41NDU3LCAyLjI5NzEyLCA0LjA1Mjg2LCA1LjA1MzgxIiwgXAotICAgICAgICAgICIwLjI5NTg1MiwgMC4zNDQ2MTYsIDAuNzk0MTI0LCAxLjU0NTQ0LCAyLjI5NzM2LCA0LjA1Mjg3LCA1LjA1NDM4IiwgXAotICAgICAgICAgICIwLjMwMjUyNSwgMC4zNTAyMzUsIDAuNzk0MTU1LCAxLjU0NTYxLCAyLjI5NzYxLCA0LjA1MjM0LCA1LjA1NjM5IiwgXAotICAgICAgICAgICIwLjMxMDUzLCAwLjM1NzAxNiwgMC43OTQ2MzcsIDEuNTQ1NjMsIDIuMjk3NzQsIDQuMDUwOTMsIDUuMDU0NTciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQzAiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIyNzgyOSwgMC4yNjc2NDUsIDAuNjI0Mjk4LCAxLjIxOTYyLCAxLjgxNzA1LCAzLjIxMjI0LCA0LjAwODI2IiwgXAotICAgICAgICAgICIwLjIzNjQ2MiwgMC4yNzYxMTYsIDAuNjMyOTczLCAxLjIyOTE5LCAxLjgyNjY0LCAzLjIyMDgxLCA0LjAxNjgyIiwgXAotICAgICAgICAgICIwLjI0NzA0NSwgMC4yODY3NywgMC42NDM3MzUsIDEuMjM5MjksIDEuODM3NiwgMy4yMzE4LCA0LjAyNzYxIiwgXAotICAgICAgICAgICIwLjI1NzQzNCwgMC4yOTc0NDIsIDAuNjU0NDYzLCAxLjI1MDczLCAxLjg0OTYsIDMuMjQxOCwgNC4wMzgxNCIsIFwKLSAgICAgICAgICAiMC4yNjgzODksIDAuMzA4MDQ4LCAwLjY2NTI5OSwgMS4yNjE0NywgMS44NTk3LCAzLjI1Mjk5LCA0LjA0OTE5IiwgXAotICAgICAgICAgICIwLjI4NTQ1OCwgMC4zMjUyNywgMC42ODIyMTUsIDEuMjc3NTgsIDEuODc2NzgsIDMuMjY5OTksIDQuMDY2NDMiLCBcCi0gICAgICAgICAgIjAuMzAwNTc0LCAwLjM0MDE2NCwgMC42OTcwNDMsIDEuMjkyNTIsIDEuODkxODIsIDMuMjg0NzMsIDQuMDgxNTEiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuNDU5NzM1LCAwLjUzOTE4NSwgMS4yNTg0OCwgMi40NjEzNywgMy42NjQyNiwgNi40NzY0MSwgOC4wNzY4NiIsIFwKLSAgICAgICAgICAiMC40NTkzMzUsIDAuNTM5MzE0LCAxLjI1ODIsIDIuNDYxOTQsIDMuNjY0NTIsIDYuNDY5NDYsIDguMDc2NjgiLCBcCi0gICAgICAgICAgIjAuNDU5NDI0LCAwLjUzOTM0MiwgMS4yNTgzMiwgMi40NjEwNiwgMy42Njc0MywgNi40NjkyNiwgOC4wNzI1MyIsIFwKLSAgICAgICAgICAiMC40NTg2NDQsIDAuNTM4ODcxLCAxLjI1ODM5LCAyLjQ2MTAxLCAzLjY2NDk2LCA2LjQ3MjcyLCA4LjA3NTc5IiwgXAotICAgICAgICAgICIwLjQ1ODkyNSwgMC41Mzg0ODUsIDEuMjU4MzEsIDIuNDYxMDMsIDMuNjY0MTcsIDYuNDcxMTcsIDguMDcyMjIiLCBcCi0gICAgICAgICAgIjAuNDYyMjkzLCAwLjU0MDM4NiwgMS4yNTgzLCAyLjQ2MjIzLCAzLjY2NDIzLCA2LjQ3MTIyLCA4LjA3MTYyIiwgXAotICAgICAgICAgICIwLjQ2NzQ2OSwgMC41NDQzOCwgMS4yNTg0MiwgMi40NjEwOSwgMy42NjQxNywgNi40NzA0OCwgOC4wNzEyMiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzk3NzIsIDAuMDkzNjA1LCAwLjIxODI2NSwgMC40MjYwNSwgMC42MzM4MDcsIDEuMTE4MTcsIDEuMzk0OTgiLCBcCi0gICAgICAgICAgIjAuMDkwMDQ3LCAwLjEwMzg4MywgMC4yMjg1OCwgMC40MzYzODYsIDAuNjQ0MDk2LCAxLjEyODU4LCAxLjQwNTA4IiwgXAotICAgICAgICAgICIwLjEwMjY3OCwgMC4xMTY3MjEsIDAuMjQxMjU1LCAwLjQ0Nzk4LCAwLjY1NTY3NSwgMS4xNCwgMS40MTY3MyIsIFwKLSAgICAgICAgICAiMC4xMTU2NDEsIDAuMTI5MzA1LCAwLjI1NDE0MywgMC40NjE4MDEsIDAuNjY4MTI4LCAxLjE1MjQ4LCAxLjQyOTEzIiwgXAotICAgICAgICAgICIwLjEyODgzMSwgMC4xNDI2MTIsIDAuMjY3MDksIDAuNDc0NTY1LCAwLjY4MDc1OSwgMS4xNjUxNywgMS40NDE3IiwgXAotICAgICAgICAgICIwLjE0OTYyNSwgMC4xNjM0OTgsIDAuMjg3MjEzLCAwLjQ5NTEzOCwgMC43MDI2NTMsIDEuMTg0OTQsIDEuNDYxNTgiLCBcCi0gICAgICAgICAgIjAuMTY3Nzk0LCAwLjE4MTcxMSwgMC4zMDUxMzIsIDAuNTEzMjYsIDAuNzIwNTg5LCAxLjIwMjMsIDEuNDc4NzIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTU4ODMxLCAwLjE4NjUwOCwgMC40MzU1MjIsIDAuODUwOTI2LCAxLjI2NjY4LCAyLjIzODA3LCAyLjc5MjQ3IiwgXAotICAgICAgICAgICIwLjE1ODg1MywgMC4xODY0NzksIDAuNDM1NTIxLCAwLjg1MTIyNCwgMS4yNjYyLCAyLjIzNzQyLCAyLjc5MzA2IiwgXAotICAgICAgICAgICIwLjE2MDA0OSwgMC4xODcwMywgMC40MzU1ODIsIDAuODUwODYyLCAxLjI2NjkzLCAyLjIzOCwgMi43OTMwMyIsIFwKLSAgICAgICAgICAiMC4xNjQwNzMsIDAuMTkwMjM0LCAwLjQzNTY2NiwgMC44NTA4NDMsIDEuMjY2MzUsIDIuMjM3MjksIDIuNzk2OCIsIFwKLSAgICAgICAgICAiMC4xNjkzNjYsIDAuMTk0ODM2LCAwLjQzNjA0MiwgMC44NTExMjMsIDEuMjY3LCAyLjIzNzg0LCAyLjc5MzQxIiwgXAotICAgICAgICAgICIwLjE4MDE4MiwgMC4yMDQ3MDUsIDAuNDM5MzA3LCAwLjg1MTI3MywgMS4yNjY5NCwgMi4yMzcyMiwgMi43OTMyNCIsIFwKLSAgICAgICAgICAiMC4xOTExNzUsIDAuMjE0NzYyLCAwLjQ0NDQ4NSwgMC44NTEzMDYsIDEuMjY3MDcsIDIuMjM3NTMsIDIuNzkwNyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDMyNjcsIDAuMDAzMjY3LCAwLjAwMzI2NywgMC4wMDMyNjcsIDAuMDAzMjY1LCAwLjAwMzI2MywgMC4wMDMyNjIiLCBcCi0gICAgICAgICAgIjAuMDAzMjYzLCAwLjAwMzI2MywgMC4wMDMyNjQsIDAuMDAzMjY0LCAwLjAwMzI2MywgMC4wMDMyNjEsIDAuMDAzMjYiLCBcCi0gICAgICAgICAgIjAuMDAzMjYxLCAwLjAwMzI2MSwgMC4wMDMyNjMsIDAuMDAzMjYzLCAwLjAwMzI2MiwgMC4wMDMyNjEsIDAuMDAzMjYiLCBcCi0gICAgICAgICAgIjAuMDAzMjU4LCAwLjAwMzI1OSwgMC4wMDMyNjIsIDAuMDAzMjYyLCAwLjAwMzI2MiwgMC4wMDMyNjEsIDAuMDAzMjYiLCBcCi0gICAgICAgICAgIjAuMDAzMjU2LCAwLjAwMzI1NywgMC4wMDMyNjEsIDAuMDAzMjYxLCAwLjAwMzI2MSwgMC4wMDMyNiwgMC4wMDMyNTkiLCBcCi0gICAgICAgICAgIjAuMDAzMjU0LCAwLjAwMzI1NSwgMC4wMDMyNTksIDAuMDAzMjYxLCAwLjAwMzI2MSwgMC4wMDMyNiwgMC4wMDMyNTkiLCBcCi0gICAgICAgICAgIjAuMDAzMjUyLCAwLjAwMzI1MywgMC4wMDMyNTgsIDAuMDAzMjYxLCAwLjAwMzI2MSwgMC4wMDMyNiwgMC4wMDMyNTkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDA5MzEsIDAuMDAwOTMxLCAwLjAwMDkzMSwgMC4wMDA5MzEsIDAuMDAwOTMxLCAwLjAwMDkzLCAwLjAwMDkyNyIsIFwKLSAgICAgICAgICAiMC4wMDA5MTYsIDAuMDAwOTE2LCAwLjAwMDkxNiwgMC4wMDA5MTUsIDAuMDAwOTE1LCAwLjAwMDkxNSwgMC4wMDA5MTMiLCBcCi0gICAgICAgICAgIjAuMDAwOTEsIDAuMDAwOTEsIDAuMDAwOTExLCAwLjAwMDkxMSwgMC4wMDA5MTEsIDAuMDAwOTA5LCAwLjAwMDkwOCIsIFwKLSAgICAgICAgICAiMC4wMDA5MDYsIDAuMDAwOTA2LCAwLjAwMDkwOSwgMC4wMDA5MDksIDAuMDAwOTA5LCAwLjAwMDkwOCwgMC4wMDA5MDciLCBcCi0gICAgICAgICAgIjAuMDAwOTA0LCAwLjAwMDkwNSwgMC4wMDA5MDcsIDAuMDAwOTA4LCAwLjAwMDkwOCwgMC4wMDA5MDcsIDAuMDAwOTA2IiwgXAotICAgICAgICAgICIwLjAwMDkwMSwgMC4wMDA5MDIsIDAuMDAwOTA2LCAwLjAwMDkwNiwgMC4wMDA5MDYsIDAuMDAwOTA1LCAwLjAwMDkwNSIsIFwKLSAgICAgICAgICAiMC4wMDA5LCAwLjAwMDkwMSwgMC4wMDA5MDQsIDAuMDAwOTA2LCAwLjAwMDkwNiwgMC4wMDA5MDUsIDAuMDAwOTA0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzAwNCwgMC4wMDMwMDQsIDAuMDAzMDA1LCAwLjAwMzAwNCwgMC4wMDMwMDQsIDAuMDAzMDAzLCAwLjAwMzAwMiIsIFwKLSAgICAgICAgICAiMC4wMDMwMDIsIDAuMDAzMDAzLCAwLjAwMzAwNCwgMC4wMDMwMDUsIDAuMDAzMDA2LCAwLjAwMzAwNCwgMC4wMDMwMDUiLCBcCi0gICAgICAgICAgIjAuMDAyOTk3LCAwLjAwMjk5OSwgMC4wMDMwMDQsIDAuMDAzMDA1LCAwLjAwMzAwNywgMC4wMDMwMDYsIDAuMDAzMDA2IiwgXAotICAgICAgICAgICIwLjAwMjk5MiwgMC4wMDI5OTQsIDAuMDAzMDAyLCAwLjAwMzAwNSwgMC4wMDMwMDYsIDAuMDAzMDA1LCAwLjAwMzAwNSIsIFwKLSAgICAgICAgICAiMC4wMDI5ODgsIDAuMDAyOTksIDAuMDAyOTk5LCAwLjAwMzAwMywgMC4wMDMwMDQsIDAuMDAzMDA0LCAwLjAwMzAwNCIsIFwKLSAgICAgICAgICAiMC4wMDI5ODMsIDAuMDAyOTg1LCAwLjAwMjk5NiwgMC4wMDMwMDEsIDAuMDAzMDAzLCAwLjAwMzAwNCwgMC4wMDMwMDQiLCBcCi0gICAgICAgICAgIjAuMDAyOTc5LCAwLjAwMjk4MiwgMC4wMDI5OTQsIDAuMDAzMDAxLCAwLjAwMzAwMywgMC4wMDMwMDQsIDAuMDAzMDA0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwOTMxLCAwLjAwMDkzMSwgMC4wMDA5MzEsIDAuMDAwOTMsIDAuMDAwOTMsIDAuMDAwOTI4LCAwLjAwMDkyNyIsIFwKLSAgICAgICAgICAiMC4wMDA5MTUsIDAuMDAwOTE1LCAwLjAwMDkxNSwgMC4wMDA5MTUsIDAuMDAwOTE1LCAwLjAwMDkxMywgMC4wMDA5MTIiLCBcCi0gICAgICAgICAgIjAuMDAwOTA5LCAwLjAwMDkwOSwgMC4wMDA5MSwgMC4wMDA5MSwgMC4wMDA5MSwgMC4wMDA5MDksIDAuMDAwOTA4IiwgXAotICAgICAgICAgICIwLjAwMDkwNiwgMC4wMDA5MDYsIDAuMDAwOTA4LCAwLjAwMDkwOSwgMC4wMDA5MDgsIDAuMDAwOTA3LCAwLjAwMDkwNiIsIFwKLSAgICAgICAgICAiMC4wMDA5MDUsIDAuMDAwOTA2LCAwLjAwMDkwNywgMC4wMDA5MDcsIDAuMDAwOTA3LCAwLjAwMDkwNiwgMC4wMDA5MDYiLCBcCi0gICAgICAgICAgIjAuMDAwOTA2LCAwLjAwMDkwNiwgMC4wMDA5MDcsIDAuMDAwOTA3LCAwLjAwMDkwNywgMC4wMDA5MDUsIDAuMDAwOTA1IiwgXAotICAgICAgICAgICIwLjAwMDkwOSwgMC4wMDA5MDksIDAuMDAwOTA4LCAwLjAwMDkwNywgMC4wMDA5MDcsIDAuMDAwOTA1LCAwLjAwMDkwNCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI2MDcsIDAuMDAyNjA3LCAwLjAwMjYwNiwgMC4wMDI2MDYsIDAuMDAyNjA1LCAwLjAwMjYwMiwgMC4wMDI2MDIiLCBcCi0gICAgICAgICAgIjAuMDAyNjAyLCAwLjAwMjYwMiwgMC4wMDI2MDMsIDAuMDAyNjAzLCAwLjAwMjYwMiwgMC4wMDI1OTksIDAuMDAyNiIsIFwKLSAgICAgICAgICAiMC4wMDI1OTksIDAuMDAyNTk5LCAwLjAwMjYwMSwgMC4wMDI2MDIsIDAuMDAyNjAxLCAwLjAwMjU5OSwgMC4wMDI1OTkiLCBcCi0gICAgICAgICAgIjAuMDAyNTk3LCAwLjAwMjU5OCwgMC4wMDI2LCAwLjAwMjYwMSwgMC4wMDI2MDEsIDAuMDAyNTk5LCAwLjAwMjU5OCIsIFwKLSAgICAgICAgICAiMC4wMDI1OTQsIDAuMDAyNTk2LCAwLjAwMjU5OSwgMC4wMDI2MDEsIDAuMDAyNiwgMC4wMDI1OTksIDAuMDAyNTk4IiwgXAotICAgICAgICAgICIwLjAwMjU5MywgMC4wMDI1OTQsIDAuMDAyNTk3LCAwLjAwMjU5OSwgMC4wMDI1OTksIDAuMDAyNTk4LCAwLjAwMjU5NyIsIFwKLSAgICAgICAgICAiMC4wMDI1OTIsIDAuMDAyNTkzLCAwLjAwMjU5OCwgMC4wMDI1OTksIDAuMDAyNTk5LCAwLjAwMjU5OCwgMC4wMDI1OTciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDA0NTYsIDAuMDAwNDU2LCAwLjAwMDQ1NiwgMC4wMDA0NTYsIDAuMDAwNDU1LCAwLjAwMDQ1NCwgMC4wMDA0NTQiLCBcCi0gICAgICAgICAgIjAuMDAwNDUzLCAwLjAwMDQ1NCwgMC4wMDA0NTUsIDAuMDAwNDU2LCAwLjAwMDQ1NiwgMC4wMDA0NTUsIDAuMDAwNDU1IiwgXAotICAgICAgICAgICIwLjAwMDQ0OSwgMC4wMDA0NSwgMC4wMDA0NTQsIDAuMDAwNDU1LCAwLjAwMDQ1NSwgMC4wMDA0NTUsIDAuMDAwNDU1IiwgXAotICAgICAgICAgICIwLjAwMDQ0NSwgMC4wMDA0NDYsIDAuMDAwNDUyLCAwLjAwMDQ1NCwgMC4wMDA0NTUsIDAuMDAwNDU1LCAwLjAwMDQ1NSIsIFwKLSAgICAgICAgICAiMC4wMDA0NDEsIDAuMDAwNDQzLCAwLjAwMDQ1MSwgMC4wMDA0NTMsIDAuMDAwNDU0LCAwLjAwMDQ1NSwgMC4wMDA0NTQiLCBcCi0gICAgICAgICAgIjAuMDAwNDM3LCAwLjAwMDQzOSwgMC4wMDA0NDgsIDAuMDAwNDUyLCAwLjAwMDQ1MywgMC4wMDA0NTQsIDAuMDAwNDU0IiwgXAotICAgICAgICAgICIwLjAwMDQzNSwgMC4wMDA0MzgsIDAuMDAwNDQ3LCAwLjAwMDQ1MiwgMC4wMDA0NTMsIDAuMDAwNDU0LCAwLjAwMDQ1NCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIxIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDIzMDksIDAuMDAyMzEsIDAuMDAyMzEsIDAuMDAyMzA5LCAwLjAwMjMwOSwgMC4wMDIzMDgsIDAuMDAyMzA4IiwgXAotICAgICAgICAgICIwLjAwMjMwNywgMC4wMDIzMDgsIDAuMDAyMzExLCAwLjAwMjMxMywgMC4wMDIzMTEsIDAuMDAyMzExLCAwLjAwMjMxMyIsIFwKLSAgICAgICAgICAiMC4wMDIzMDIsIDAuMDAyMzAzLCAwLjAwMjMwOSwgMC4wMDIzMTEsIDAuMDAyMzExLCAwLjAwMjMxMSwgMC4wMDIzMTEiLCBcCi0gICAgICAgICAgIjAuMDAyMjk3LCAwLjAwMjI5OSwgMC4wMDIzMDcsIDAuMDAyMzA5LCAwLjAwMjMxLCAwLjAwMjMxLCAwLjAwMjMxIiwgXAotICAgICAgICAgICIwLjAwMjI5MywgMC4wMDIyOTYsIDAuMDAyMzA0LCAwLjAwMjMwOCwgMC4wMDIzMDksIDAuMDAyMzEsIDAuMDAyMzEiLCBcCi0gICAgICAgICAgIjAuMDAyMjg4LCAwLjAwMjI5MSwgMC4wMDIzMDEsIDAuMDAyMzA2LCAwLjAwMjMwNywgMC4wMDIzMDgsIDAuMDAyMzA5IiwgXAotICAgICAgICAgICIwLjAwMjI4NSwgMC4wMDIyODgsIDAuMDAyMywgMC4wMDIzMDUsIDAuMDAyMzA3LCAwLjAwMjMwOSwgMC4wMDIzMDkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDA0NTUsIDAuMDAwNDU1LCAwLjAwMDQ1NSwgMC4wMDA0NTUsIDAuMDAwNDU0LCAwLjAwMDQ1NCwgMC4wMDA0NTMiLCBcCi0gICAgICAgICAgIjAuMDAwNDUyLCAwLjAwMDQ1MywgMC4wMDA0NTUsIDAuMDAwNDU1LCAwLjAwMDQ1NiwgMC4wMDA0NTQsIDAuMDAwNDU0IiwgXAotICAgICAgICAgICIwLjAwMDQ0OSwgMC4wMDA0NSwgMC4wMDA0NTMsIDAuMDAwNDU1LCAwLjAwMDQ1NSwgMC4wMDA0NTQsIDAuMDAwNDU0IiwgXAotICAgICAgICAgICIwLjAwMDQ0NiwgMC4wMDA0NDgsIDAuMDAwNDUzLCAwLjAwMDQ1NCwgMC4wMDA0NTUsIDAuMDAwNDU1LCAwLjAwMDQ1NSIsIFwKLSAgICAgICAgICAiMC4wMDA0NDUsIDAuMDAwNDQ3LCAwLjAwMDQ1MiwgMC4wMDA0NTQsIDAuMDAwNDU0LCAwLjAwMDQ1NCwgMC4wMDA0NTQiLCBcCi0gICAgICAgICAgIjAuMDAwNDQ1LCAwLjAwMDQ0NywgMC4wMDA0NTEsIDAuMDAwNDU0LCAwLjAwMDQ1NCwgMC4wMDA0NTQsIDAuMDAwNDU0IiwgXAotICAgICAgICAgICIwLjAwMDQ0OCwgMC4wMDA0NDksIDAuMDAwNDUyLCAwLjAwMDQ1NCwgMC4wMDA0NTQsIDAuMDAwNDU0LCAwLjAwMDQ1NCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDIwNDYsIDAuMDAyMDQ2LCAwLjAwMjA0NywgMC4wMDIwNDcsIDAuMDAyMDQ2LCAwLjAwMjA0NCwgMC4wMDIwNDMiLCBcCi0gICAgICAgICAgIjAuMDAyMDM5LCAwLjAwMjA0LCAwLjAwMjA0NCwgMC4wMDIwNDUsIDAuMDAyMDQ1LCAwLjAwMjA0MywgMC4wMDIwNDIiLCBcCi0gICAgICAgICAgIjAuMDAyMDMzLCAwLjAwMjAzNCwgMC4wMDIwNDEsIDAuMDAyMDQzLCAwLjAwMjA0NCwgMC4wMDIwNDIsIDAuMDAyMDQxIiwgXAotICAgICAgICAgICIwLjAwMjAyOCwgMC4wMDIwMzEsIDAuMDAyMDM5LCAwLjAwMjA0MiwgMC4wMDIwNDIsIDAuMDAyMDQxLCAwLjAwMjA0MSIsIFwKLSAgICAgICAgICAiMC4wMDIwMjgsIDAuMDAyMDMsIDAuMDAyMDM3LCAwLjAwMjA0MSwgMC4wMDIwNDEsIDAuMDAyMDQxLCAwLjAwMjA0IiwgXAotICAgICAgICAgICIwLjAwMjAyOSwgMC4wMDIwMywgMC4wMDIwMzYsIDAuMDAyMDM5LCAwLjAwMjA0MSwgMC4wMDIwNCwgMC4wMDIwNCIsIFwKLSAgICAgICAgICAiMC4wMDIwMzIsIDAuMDAyMDMyLCAwLjAwMjAzNiwgMC4wMDIwMzksIDAuMDAyMDQsIDAuMDAyMDQsIDAuMDAyMDQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDAwNzgsIDAuMDAwMDc4LCAwLjAwMDA3OSwgMC4wMDAwOCwgMC4wMDAwOCwgMC4wMDAwOCwgMC4wMDAwOCIsIFwKLSAgICAgICAgICAiMC4wMDAwODYsIDAuMDAwMDg4LCAwLjAwMDA5MywgMC4wMDAwOTUsIDAuMDAwMDk1LCAwLjAwMDA5NiwgMC4wMDAwOTYiLCBcCi0gICAgICAgICAgIjAuMDAwMDg0LCAwLjAwMDA4NywgMC4wMDAwOTQsIDAuMDAwMDk5LCAwLjAwMDEsIDAuMDAwMTAyLCAwLjAwMDEwMiIsIFwKLSAgICAgICAgICAiMC4wMDAwODEsIDAuMDAwMDg0LCAwLjAwMDA5NCwgMC4wMDAwOTgsIDAuMDAwMTAxLCAwLjAwMDEwMywgMC4wMDAxMDMiLCBcCi0gICAgICAgICAgIjAuMDAwMDgsIDAuMDAwMDgzLCAwLjAwMDA5MywgMC4wMDAwOTgsIDAuMDAwMTAxLCAwLjAwMDEwMywgMC4wMDAxMDMiLCBcCi0gICAgICAgICAgIjAuMDAwMDgxLCAwLjAwMDA4NCwgMC4wMDAwOTMsIDAuMDAwMDk4LCAwLjAwMDEsIDAuMDAwMTAzLCAwLjAwMDEwMyIsIFwKLSAgICAgICAgICAiMC4wMDAwODUsIDAuMDAwMDg3LCAwLjAwMDA5MywgMC4wMDAwOTksIDAuMDAwMSwgMC4wMDAxMDMsIDAuMDAwMTA0Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IEFPSTIyMlhMICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChBT0kyMjJYTCkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjExNTkwNTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQTApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDU2Mzc5OTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA1NjE4MTc7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNTYzNzk5OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDIyNiwgMC4wMDAyMjYsIDAuMDAwMjI2LCAwLjAwMDIyNiwgMC4wMDAyMjYsIDAuMDAwMjI2LCAwLjAwMDIyNiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDIzMSwgMC4wMDAyMjcsIDAuMDAwMjI3LCAwLjAwMDIyNywgMC4wMDAyMjcsIDAuMDAwMjI3LCAwLjAwMDIyNyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQTEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDU4NDUwNjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA1ODExMTE7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNTg0NTA2OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDA4OSwgMC4wMDAwODksIDAuMDAwMDg5LCAwLjAwMDA4OSwgMC4wMDAwODksIDAuMDAwMDg5LCAwLjAwMDA4OSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDI1NywgMC4wMDAyNTcsIDAuMDAwMjU3LCAwLjAwMDI1NywgMC4wMDAyNTcsIDAuMDAwMjU3LCAwLjAwMDI1NyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQjApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYyNTMzMjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MjM2NTI7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjI1MzMyOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDIyNiwgMC4wMDAyMjYsIDAuMDAwMjI2LCAwLjAwMDIyNiwgMC4wMDAyMjYsIDAuMDAwMjI2LCAwLjAwMDIyNiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDIyOSwgMC4wMDAyMjcsIDAuMDAwMjI3LCAwLjAwMDIyNywgMC4wMDAyMjcsIDAuMDAwMjI3LCAwLjAwMDIyNyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQjEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYwMzgzMjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MDA2NjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2MDM4MzI7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMDU4LCAwLjAwMDA1OCwgMC4wMDAwNTgsIDAuMDAwMDU4LCAwLjAwMDA1OCwgMC4wMDAwNTgsIDAuMDAwMDU4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjU3LCAwLjAwMDI1NywgMC4wMDAyNTcsIDAuMDAwMjU3LCAwLjAwMDI1NywgMC4wMDAyNTcsIDAuMDAwMjU3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihDMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjU3NTMzOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDY1NzUzMzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2NTYyMzk7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjI3LCAwLjAwMDIyNiwgMC4wMDAyMjYsIDAuMDAwMjI2LCAwLjAwMDIyNiwgMC4wMDAyMjYsIDAuMDAwMjI2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjMyLCAwLjAwMDIyNywgMC4wMDAyMjcsIDAuMDAwMjI3LCAwLjAwMDIyNywgMC4wMDAyMjcsIDAuMDAwMjI3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihDMSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjc2Njg5OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDY3NjQxOTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2NzY2ODk7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMTAxLCAwLjAwMDEwMSwgMC4wMDAxMDEsIDAuMDAwMTAxLCAwLjAwMDEwMiwgMC4wMDAxMDEsIDAuMDAwMTAxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjU3LCAwLjAwMDI1NywgMC4wMDAyNTcsIDAuMDAwMjU3LCAwLjAwMDI1NywgMC4wMDAyNTcsIDAuMDAwMjU3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMDU1MTE2MzsKLSAgICBmdW5jdGlvbiA6ICIoISgoKEMwIEMxKSsoQTAgQTEpKSsoQjAgQjEpKSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yNjg1MDEsIDAuMzA4MTg3LCAwLjY2NTI3LCAxLjI2MDkzLCAxLjg1OTg0LCAzLjI1MzAxLCA0LjA0OTI5IiwgXAotICAgICAgICAgICIwLjI3ODE1LCAwLjMxNzg0MiwgMC42NzQ5LCAxLjI3MDY4LCAxLjg2OTE5LCAzLjI2Mjk1LCA0LjA1OSIsIFwKLSAgICAgICAgICAiMC4yODg1OTgsIDAuMzI4MjkyLCAwLjY4NTEyMywgMS4yODE3NCwgMS44Nzk0MSwgMy4yNzQxNSwgNC4wNjk0MiIsIFwKLSAgICAgICAgICAiMC4yOTgxNDUsIDAuMzM3NzYsIDAuNjk0OTU5LCAxLjI5MDY2LCAxLjg4OTE5LCAzLjI4Mjk4LCA0LjA3ODk3IiwgXAotICAgICAgICAgICIwLjMwNjgxMiwgMC4zNDY1MjMsIDAuNzAzNTc5LCAxLjI5OTYsIDEuODk3NzgsIDMuMjkyNDMsIDQuMDg3NzQiLCBcCi0gICAgICAgICAgIjAuMzIwMTAyLCAwLjM1OTc3MiwgMC43MTY4OTgsIDEuMzEzNjMsIDEuOTExOTEsIDMuMzA1MjUsIDQuMTAxMjgiLCBcCi0gICAgICAgICAgIjAuMzMxNDA3LCAwLjM3MTE0MiwgMC43MjgxNzgsIDEuMzI0NTYsIDEuOTIzNTgsIDMuMzE2NTUsIDQuMTEyODUiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuNDc1Njg2LCAwLjU1NTkyMywgMS4yNzU3NywgMi40Nzg4OSwgMy42ODI1LCA2LjQ4OTM3LCA4LjA5MzQyIiwgXAotICAgICAgICAgICIwLjQ3NTY3OSwgMC41NTU5MjMsIDEuMjc2MjQsIDIuNDc4OTgsIDMuNjgyMTQsIDYuNDg4NDQsIDguMDkzMzIiLCBcCi0gICAgICAgICAgIjAuNDc1Njc0LCAwLjU1NTg2OCwgMS4yNzU3MSwgMi40Nzg3NywgMy42ODE3OCwgNi40ODcwNSwgOC4wOTMwOSIsIFwKLSAgICAgICAgICAiMC40NzU3OTYsIDAuNTU1NDM1LCAxLjI3NTgsIDIuNDc4MiwgMy42ODIxMSwgNi40ODkzNCwgOC4wOTMxNCIsIFwKLSAgICAgICAgICAiMC40NzU4MTEsIDAuNTU1NDAzLCAxLjI3NTYzLCAyLjQ3ODY1LCAzLjY4MTg0LCA2LjQ4NzQsIDguMDkyOTUiLCBcCi0gICAgICAgICAgIjAuNDc2MzEsIDAuNTU2MTA0LCAxLjI3NTgxLCAyLjQ3ODcxLCAzLjY4MTkxLCA2LjQ4ODY4LCA4LjA5MDUzIiwgXAotICAgICAgICAgICIwLjQ3NzY5NSwgMC41NTY5MTksIDEuMjc1NjcsIDIuNDc4OCwgMy42ODI4NywgNi40ODgyNSwgOC4wODk4NCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNzU4MzksIDAuMjAxNTMyLCAwLjQzMTYxLCAwLjgxMzY0NSwgMS4xOTU2OCwgMi4wODU5LCAyLjU5NDU2IiwgXAotICAgICAgICAgICIwLjE4NDgsIDAuMjEwNTc2LCAwLjQ0MDgxMSwgMC44MjMyMDIsIDEuMjA0NjksIDIuMDk1MzgsIDIuNjAzODYiLCBcCi0gICAgICAgICAgIjAuMTk1Nzg2LCAwLjIyMTU2NCwgMC40NTE2ODUsIDAuODM0MTI0LCAxLjIxNjExLCAyLjEwNjc2LCAyLjYxNSIsIFwKLSAgICAgICAgICAiMC4yMDY2NjQsIDAuMjMxOTg0LCAwLjQ2MjYwMywgMC44NDQ4MSwgMS4yMjcyNiwgMi4xMTc5NiwgMi42MjU2MSIsIFwKLSAgICAgICAgICAiMC4yMTc2NTgsIDAuMjQzMzE3LCAwLjQ3MzY1MiwgMC44NTYwMDksIDEuMjM3NzYsIDIuMTI3NzMsIDIuNjM2NzciLCBcCi0gICAgICAgICAgIjAuMjM1MDU1LCAwLjI2MDY2MywgMC40OTEyODQsIDAuODczNjQ0LCAxLjI1NTI0LCAyLjE0NTE0LCAyLjY1NDU2IiwgXAotICAgICAgICAgICIwLjI1MDQ0MywgMC4yNzU5OTEsIDAuNTA2NjIzLCAwLjg4ODk2NSwgMS4yNzA0NCwgMi4xNjA4OSwgMi42NzAxMSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMTk5ODYsIDAuMzcwMTU5LCAwLjgyMTUxOCwgMS41NzMzMywgMi4zMjU0MywgNC4wNzk1NiwgNS4wODI0OSIsIFwKLSAgICAgICAgICAiMC4zMTk5NjYsIDAuMzcwMTUsIDAuODIxNTY3LCAxLjU3MzYzLCAyLjMyNTQ2LCA0LjA3OTg0LCA1LjA4MDM5IiwgXAotICAgICAgICAgICIwLjMxOTk2MSwgMC4zNzAxMjgsIDAuODIxNDQ4LCAxLjU3MzMyLCAyLjMyNTQ0LCA0LjA3OTYsIDUuMDgxNTYiLCBcCi0gICAgICAgICAgIjAuMzIwMDIsIDAuMzcwMSwgMC44MjE0NywgMS41NzM2OSwgMi4zMjQ3OSwgNC4wNzk2NCwgNS4wODI0OSIsIFwKLSAgICAgICAgICAiMC4zMjEzNjIsIDAuMzcwNzkzLCAwLjgyMTQzNSwgMS41NzM2NSwgMi4zMjU0NSwgNC4wNzk2MSwgNS4wODI2MyIsIFwKLSAgICAgICAgICAiMC4zMjQ5MzUsIDAuMzczNjU5LCAwLjgyMTQyMSwgMS41NzM1NCwgMi4zMjQ5MSwgNC4wNzk2MywgNS4wODIzNyIsIFwKLSAgICAgICAgICAiMC4zMzAxNTUsIDAuMzc3ODE1LCAwLjgyMTY0LCAxLjU3MzY0LCAyLjMyNTAxLCA0LjA3OTUsIDUuMDgwNDIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI2MzM1NCwgMC4zMDMwMjYsIDAuNjYwMDUzLCAxLjI1NTUzLCAxLjg1NDQ3LCAzLjI0Nzg3LCA0LjA0NDA2IiwgXAotICAgICAgICAgICIwLjI3MzA2NiwgMC4zMTI3MTksIDAuNjY5NDk2LCAxLjI2NjI4LCAxLjg2Mzg0LCAzLjI1ODQxLCA0LjA1Mzk4IiwgXAotICAgICAgICAgICIwLjI4MzQ2NywgMC4zMjMyNTgsIDAuNjgwMDM0LCAxLjI3NjYxLCAxLjg3NDI3LCAzLjI2OTEzLCA0LjA2NDMzIiwgXAotICAgICAgICAgICIwLjI5Mjc4NywgMC4zMzI1NTUsIDAuNjg5OTIsIDEuMjg1ODgsIDEuODg1MTUsIDMuMjc3NTIsIDQuMDczOTMiLCBcCi0gICAgICAgICAgIjAuMzAxNTU2LCAwLjM0MTI2OCwgMC42OTgyMTIsIDEuMjk0NDIsIDEuODkyNjMsIDMuMjg3MzMsIDQuMDgyNjUiLCBcCi0gICAgICAgICAgIjAuMzE0NzY2LCAwLjM1NDUzNywgMC43MTE4NSwgMS4zMDg0NCwgMS45MDU1OSwgMy4yOTk2NSwgNC4wOTYwOSIsIFwKLSAgICAgICAgICAiMC4zMjYwMzUsIDAuMzY1ODI5LCAwLjcyMjk3OSwgMS4zMTkyOSwgMS45MTg0MiwgMy4zMTE0LCA0LjEwNzY5Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjQ2OTM0OCwgMC41NDk0NDksIDEuMjY5MTEsIDIuNDcxNzQsIDMuNjc3NDUsIDYuNDgyODgsIDguMDg2MzkiLCBcCi0gICAgICAgICAgIjAuNDY5MzU0LCAwLjU0OTM4NiwgMS4yNjksIDIuNDcyMTksIDMuNjc2OTMsIDYuNDgwMTUsIDguMDg0MTIiLCBcCi0gICAgICAgICAgIjAuNDY5MzU1LCAwLjU0OTExMSwgMS4yNjkxNSwgMi40NzIxLCAzLjY3Njc5LCA2LjQ4MDM3LCA4LjA4NjIiLCBcCi0gICAgICAgICAgIjAuNDY5Njk1LCAwLjU0OTAyNywgMS4yNjk0NCwgMi40NzE3NiwgMy42NzUzNSwgNi40ODQ0NSwgOC4wODcxMiIsIFwKLSAgICAgICAgICAiMC40Njk0NTksIDAuNTQ5MDI3LCAxLjI2OTA0LCAyLjQ3MTksIDMuNjc2OTIsIDYuNDgwNTMsIDguMDg2MDQiLCBcCi0gICAgICAgICAgIjAuNDY5OTgzLCAwLjU0OTMsIDEuMjY4OTIsIDIuNDcxODQsIDMuNjc1NzYsIDYuNDg1ODEsIDguMDg3MjEiLCBcCi0gICAgICAgICAgIjAuNDcxNDgsIDAuNTUwNDIxLCAxLjI2OTAzLCAyLjQ3MjExLCAzLjY3NjIyLCA2LjQ4MTM5LCA4LjA4MjU2Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE3MzA5MiwgMC4xOTg4MTcsIDAuNDI5MDE0LCAwLjgxMTA5OCwgMS4xOTI2NiwgMi4wODI3OCwgMi41OTIzIiwgXAotICAgICAgICAgICIwLjE4MjEyOSwgMC4yMDc4NiwgMC40Mzc5NzUsIDAuODIwMzUsIDEuMjAyMTIsIDIuMDkyNDMsIDIuNjAwNzkiLCBcCi0gICAgICAgICAgIjAuMTkzNzA2LCAwLjIxOTQ1LCAwLjQ0OTY0NCwgMC44MzE5NDYsIDEuMjEzODIsIDIuMTAzNzksIDIuNjEyNTYiLCBcCi0gICAgICAgICAgIjAuMjA1Mzc1LCAwLjIzMDc2MywgMC40NjEyODksIDAuODQzNDc5LCAxLjIyNTYyLCAyLjExNTY5LCAyLjYyNDM0IiwgXAotICAgICAgICAgICIwLjIxNzA3OSwgMC4yNDI3NjgsIDAuNDczMDM2LCAwLjg1NTM1MywgMS4yMzcwMiwgMi4xMjgzMSwgMi42MzU4MyIsIFwKLSAgICAgICAgICAiMC4yMzU4MTcsIDAuMjYxNTExLCAwLjQ5MTY3OSwgMC44NzM3NjYsIDEuMjU1NjYsIDIuMTQ2MjYsIDIuNjU0NjgiLCBcCi0gICAgICAgICAgIjAuMjUyMzk3LCAwLjI3Nzk3NywgMC41MDgwODYsIDAuODkwMjc2LCAxLjI3MjI3LCAyLjE2MjgxLCAyLjY3MTA1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMyMDA2NiwgMC4zNzAxNjcsIDAuODIxNTg3LCAxLjU3MzYyLCAyLjMyNTQxLCA0LjA3OTYyLCA1LjA4MDY5IiwgXAotICAgICAgICAgICIwLjMxOTk0NywgMC4zNzAxNDksIDAuODIxNTQzLCAxLjU3MzY5LCAyLjMyNSwgNC4wNzk1MywgNS4wODExMyIsIFwKLSAgICAgICAgICAiMC4zMTk5MzIsIDAuMzcwMDYyLCAwLjgyMTQ0MiwgMS41NzM2NSwgMi4zMjQ3OSwgNC4wNzk0NywgNS4wODI5MyIsIFwKLSAgICAgICAgICAiMC4zMjAxMjQsIDAuMzcwMDM1LCAwLjgyMTQxMiwgMS41NzM2OCwgMi4zMjQ3OSwgNC4wNzk3MSwgNS4wODE3OCIsIFwKLSAgICAgICAgICAiMC4zMjE5NjcsIDAuMzcxMTI0LCAwLjgyMTM2NSwgMS41NzM2NCwgMi4zMjU0OSwgNC4wNzk1NiwgNS4wODI1OCIsIFwKLSAgICAgICAgICAiMC4zMjc3OTksIDAuMzc1NjkzLCAwLjgyMTQ2OSwgMS41NzMyOSwgMi4zMjU1MiwgNC4wNzk3LCA1LjA4MjI4IiwgXAotICAgICAgICAgICIwLjMzNDk2NywgMC4zODE4MTcsIDAuODIxNTc2LCAxLjU3MzUzLCAyLjMyNTQ2LCA0LjA3OTU0LCA1LjA4MjY0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yNTc5ODUsIDAuMjk3NjczLCAwLjY1NDczMiwgMS4yNTEwMywgMS44NDk5MSwgMy4yNDI0NSwgNC4wMzg5NyIsIFwKLSAgICAgICAgICAiMC4yNjcxMjQsIDAuMzA2ODE5LCAwLjY2Mzk0MSwgMS4yNTk0NywgMS44NTg0MSwgMy4yNTE4MywgNC4wNDc5NyIsIFwKLSAgICAgICAgICAiMC4yNzc3NDYsIDAuMzE3NDU4LCAwLjY3NDc5NCwgMS4yNzA3OSwgMS44Njg1NiwgMy4yNjMyOCwgNC4wNTg1NCIsIFwKLSAgICAgICAgICAiMC4yODc3MDgsIDAuMzI3NTcyLCAwLjY4NDcwOSwgMS4yODA2MSwgMS44Nzg2OSwgMy4yNzMzNiwgNC4wNjkxMyIsIFwKLSAgICAgICAgICAiMC4yOTc1MjMsIDAuMzM3MjcsIDAuNjk0MjY1LCAxLjI5MDk3LCAxLjg4ODMyLCAzLjI4MjY4LCA0LjA3ODcyIiwgXAotICAgICAgICAgICIwLjMxMjk3OSwgMC4zNTI3OCwgMC43MDk3MDQsIDEuMzA2MjgsIDEuOTA0NjksIDMuMjk4NCwgNC4wOTQ1NiIsIFwKLSAgICAgICAgICAiMC4zMjY0NzcsIDAuMzY2NDQ0LCAwLjcyMzc3MywgMS4zMTk0NiwgMS45MTcxNCwgMy4zMTEzOSwgNC4xMDc3MyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC40NzU2ODcsIDAuNTU1OTA5LCAxLjI3NiwgMi40Nzg4LCAzLjY4MjkxLCA2LjQ5MjY3LCA4LjA5NDQ2IiwgXAotICAgICAgICAgICIwLjQ3NTY3OSwgMC41NTU5MTksIDEuMjc1NzgsIDIuNDc4NTMsIDMuNjgyNCwgNi40ODkyMywgOC4wOTM0NSIsIFwKLSAgICAgICAgICAiMC40NzU5NzgsIDAuNTU1OTE5LCAxLjI3NTYyLCAyLjQ3ODgzLCAzLjY4MTc2LCA2LjQ4NzM5LCA4LjA5MzI1IiwgXAotICAgICAgICAgICIwLjQ3NjA2LCAwLjU1NTU0NCwgMS4yNzU3NiwgMi40Nzg4NiwgMy42ODE5NCwgNi40ODcxNiwgOC4wOTQ2OCIsIFwKLSAgICAgICAgICAiMC40NzU3MTgsIDAuNTU1NTY5LCAxLjI3NTc1LCAyLjQ3OTgzLCAzLjY4Mjg3LCA2LjQ4NzAzLCA4LjA5NDQzIiwgXAotICAgICAgICAgICIwLjQ3NzA2NywgMC41NTU5OTMsIDEuMjc1NjEsIDIuNDc5MTIsIDMuNjgyNTUsIDYuNDg4MjMsIDguMDk0NjkiLCBcCi0gICAgICAgICAgIjAuNDc5MzcyLCAwLjU1Nzk3MiwgMS4yNzU2LCAyLjQ3ODI4LCAzLjY4MjgxLCA2LjQ5MTk5LCA4LjA5Mzg0Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE2Mzk1OCwgMC4xODk0NzksIDAuNDE5MDQ0LCAwLjgwMDk3NCwgMS4xODI2NiwgMi4wNzIzMywgMi41OCIsIFwKLSAgICAgICAgICAiMC4xNzMyNzIsIDAuMTk4ODM1LCAwLjQyODM4MSwgMC44MTA0MTUsIDEuMTkxOTEsIDIuMDgxMzQsIDIuNTg5OTEiLCBcCi0gICAgICAgICAgIjAuMTg0Mjk1LCAwLjIwOTk0NCwgMC40Mzk1NTMsIDAuODIxNDU0LCAxLjIwMzAzLCAyLjA5MjU1LCAyLjYwMDk2IiwgXAotICAgICAgICAgICIwLjE5NTIxNywgMC4yMjA1NzksIDAuNDUwNjA0LCAwLjgzMjUzMSwgMS4yMTQwOSwgMi4xMDQwOCwgMi42MTE5OSIsIFwKLSAgICAgICAgICAiMC4yMDYzMzMsIDAuMjMxNzMyLCAwLjQ2MTcwNiwgMC44NDM3MDEsIDEuMjI1MjgsIDIuMTE0NjgsIDIuNjIyOTEiLCBcCi0gICAgICAgICAgIjAuMjIzNDk5LCAwLjI0OTA3OCwgMC40NzkyMTMsIDAuODYxMjk1LCAxLjI0MjgyLCAyLjEzMjI5LCAyLjY0MDg0IiwgXAotICAgICAgICAgICIwLjIzODYyNywgMC4yNjQyMzEsIDAuNDk0MjksIDAuODc2NDQzLCAxLjI1ODA1LCAyLjE0NzY1LCAyLjY1NjIxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMwNjM3MSwgMC4zNTY0NjksIDAuODA3NzgsIDEuNTU5MTYsIDIuMzExMzYsIDQuMDY1MDEsIDUuMDY3NiIsIFwKLSAgICAgICAgICAiMC4zMDYzNTIsIDAuMzU2NDE3LCAwLjgwNzc4MSwgMS41NTkxMywgMi4zMTE0LCA0LjA2NDcyLCA1LjA2OTE3IiwgXAotICAgICAgICAgICIwLjMwNjI5MiwgMC4zNTY0MzUsIDAuODA3ODA2LCAxLjU1OTE0LCAyLjMxMTM0LCA0LjA2NzA0LCA1LjA2ODA0IiwgXAotICAgICAgICAgICIwLjMwNjYzOCwgMC4zNTY1MSwgMC44MDc4MDcsIDEuNTU5NDksIDIuMzEwNTgsIDQuMDY2MjgsIDUuMDY5NDIiLCBcCi0gICAgICAgICAgIjAuMzA4NDUyLCAwLjM1NzQ2NSwgMC44MDc4MywgMS41NTk1MSwgMi4zMTA3NiwgNC4wNjUzMiwgNS4wNjc1MSIsIFwKLSAgICAgICAgICAiMC4zMTIwOTMsIDAuMzYwODY5LCAwLjgwNzgxMSwgMS41NTkyOSwgMi4zMTEyNSwgNC4wNjYyNiwgNS4wNjkzNSIsIFwKLSAgICAgICAgICAiMC4zMTc0MzQsIDAuMzY1MjA5LCAwLjgwNzkwOCwgMS41NTkxNCwgMi4zMTA1LCA0LjA2NDc4LCA1LjA2ODQ0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIxIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yNTM2MTcsIDAuMjkzNTQ5LCAwLjY1MjQ0NywgMS4yNTEwMywgMS44NDkxMywgMy4yNDIyMywgNC4wMzg4IiwgXAotICAgICAgICAgICIwLjI2Mjg2NSwgMC4zMDI3OTMsIDAuNjYyMjUxLCAxLjI2MDAyLCAxLjg1OTI5LCAzLjI1MTUyLCA0LjA0ODAyIiwgXAotICAgICAgICAgICIwLjI3MzQwMiwgMC4zMTMzMzksIDAuNjcyODQ4LCAxLjI3MDU5LCAxLjg2OTg1LCAzLjI2MjE5LCA0LjA1ODYyIiwgXAotICAgICAgICAgICIwLjI4MzI1NSwgMC4zMjMzNjIsIDAuNjgyNDEyLCAxLjI4MDUsIDEuODc4NTQsIDMuMjczMjQsIDQuMDY5MDEiLCBcCi0gICAgICAgICAgIjAuMjkzMDU5LCAwLjMzMjkyNywgMC42OTIxNDIsIDEuMjkwODksIDEuODg4MiwgMy4yODI1NywgNC4wNzg2IiwgXAotICAgICAgICAgICIwLjMwODI5LCAwLjM0ODMxMywgMC43MDc0NTgsIDEuMzA1OTMsIDEuOTA0NDcsIDMuMjk4MjksIDQuMDk0MzkiLCBcCi0gICAgICAgICAgIjAuMzIxNzI1LCAwLjM2MTY3NiwgMC43MjEwNjMsIDEuMzE5MzEsIDEuOTE4MTgsIDMuMzExMTksIDQuMTA3NTQiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuNDcyMTcsIDAuNTUyNjQyLCAxLjI3NDc0LCAyLjQ3ODAxLCAzLjY4MTUsIDYuNDg4NCwgOC4wOTMzOCIsIFwKLSAgICAgICAgICAiMC40NzIyMTMsIDAuNTUyNDk3LCAxLjI3NDg4LCAyLjQ3NzY1LCAzLjY4MTA2LCA2LjQ5MTU1LCA4LjA5MzE2IiwgXAotICAgICAgICAgICIwLjQ3MTkwNSwgMC41NTI1ODksIDEuMjc0OSwgMi40Nzc1NCwgMy42ODA5MSwgNi40OTA1NSwgOC4wOTMwOCIsIFwKLSAgICAgICAgICAiMC40NzIyNDcsIDAuNTUyMjc0LCAxLjI3NDY4LCAyLjQ3NzU4LCAzLjY4MDg4LCA2LjQ4NTkxLCA4LjA5MzQ5IiwgXAotICAgICAgICAgICIwLjQ3MTkzOSwgMC41NTIyOTYsIDEuMjc0NzcsIDIuNDc4OTMsIDMuNjgxNzUsIDYuNDg2MDcsIDguMDkzMjUiLCBcCi0gICAgICAgICAgIjAuNDczMjY4LCAwLjU1MjczNSwgMS4yNzQ1MiwgMi40Nzc1NSwgMy42ODE0NCwgNi40ODU4NiwgOC4wOTM0NiIsIFwKLSAgICAgICAgICAiMC40NzU2NCwgMC41NTQ3NTksIDEuMjc0NTUsIDIuNDc3MjgsIDMuNjgxNTEsIDYuNDg3ODMsIDguMDkyOTQiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTYwODI1LCAwLjE4NjQzOCwgMC40MTU5MjUsIDAuNzk3ODk3LCAxLjE3OTM1LCAyLjA2OTA2LCAyLjU3NzM5IiwgXAotICAgICAgICAgICIwLjE3MDE2NiwgMC4xOTU3MzYsIDAuNDI1MjkyLCAwLjgwNzE3LCAxLjE4ODY1LCAyLjA3ODEsIDIuNTg2NDUiLCBcCi0gICAgICAgICAgIjAuMTgxNjUsIDAuMjA3MjIsIDAuNDM2ODI2LCAwLjgxODc3OCwgMS4yMDAzLCAyLjA4OTg1LCAyLjU5ODE1IiwgXAotICAgICAgICAgICIwLjE5MzIzOCwgMC4yMTg4NzcsIDAuNDQ4NDk1LCAwLjgzMDM5NywgMS4yMTE4NywgMi4xMDE1NiwgMi42MDk5NiIsIFwKLSAgICAgICAgICAiMC4yMDQ5MTYsIDAuMjMwNDk0LCAwLjQ2MDE1NiwgMC44NDIwNjYsIDEuMjIzNTUsIDIuMTEzMzYsIDIuNjIxMzIiLCBcCi0gICAgICAgICAgIjAuMjIzNzQzLCAwLjI0OTI5NywgMC40Nzg5MTQsIDAuODYwODk5LCAxLjI0MjM4LCAyLjEzMjE4LCAyLjYzOTk2IiwgXAotICAgICAgICAgICIwLjI0MDI5NSwgMC4yNjU2NSwgMC40OTUxOCwgMC44NzcwOTYsIDEuMjU4NTcsIDIuMTQ4MDMsIDIuNjU2ODYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzA2Mjk4LCAwLjM1NjQzNywgMC44MDc3ODEsIDEuNTU5MTYsIDIuMzExMTIsIDQuMDY0NjcsIDUuMDY4NzUiLCBcCi0gICAgICAgICAgIjAuMzA2MzEyLCAwLjM1NjQ5MiwgMC44MDc3OTIsIDEuNTU5NSwgMi4zMTEwOSwgNC4wNjQ1MSwgNS4wNjg5MyIsIFwKLSAgICAgICAgICAiMC4zMDYzNjcsIDAuMzU2NDgxLCAwLjgwNzgzMiwgMS41NTk1NywgMi4zMTA1MywgNC4wNjQ3NCwgNS4wNzAwMyIsIFwKLSAgICAgICAgICAiMC4zMDY3NzgsIDAuMzU2NjAyLCAwLjgwNzg1MywgMS41NTkwNiwgMi4zMTA2MiwgNC4wNjQ4MSwgNS4wNjg1MSIsIFwKLSAgICAgICAgICAiMC4zMDkxNCwgMC4zNTc5OTYsIDAuODA3ODA2LCAxLjU1OTA5LCAyLjMxMTAxLCA0LjA2NjU2LCA1LjA2ODE4IiwgXAotICAgICAgICAgICIwLjMxNTYxMSwgMC4zNjMyNywgMC44MDc2OTUsIDEuNTU5NjMsIDIuMzEwNzgsIDQuMDY1MzYsIDUuMDY4ODgiLCBcCi0gICAgICAgICAgIjAuMzIzMjcyLCAwLjM2OTgzOCwgMC44MDc5OTksIDEuNTU5NTMsIDIuMzEwODgsIDQuMDY0NzQsIDUuMDcwMTIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQzAiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIzNjQ3OSwgMC4yNzU5NzgsIDAuNjMyOTc2LCAxLjIyODY4LCAxLjgyNzM1LCAzLjIyMDAxLCA0LjAxNjQzIiwgXAotICAgICAgICAgICIwLjI0NTA0OCwgMC4yODQ3NTMsIDAuNjQxNzAyLCAxLjIzNjY2LCAxLjgzNDM5LCAzLjIyODcsIDQuMDI1NDciLCBcCi0gICAgICAgICAgIjAuMjU1Njk3LCAwLjI5NTQyMSwgMC42NTIzMTYsIDEuMjQ3MzksIDEuODQ1MjcsIDMuMjQwNDksIDQuMDM2MzIiLCBcCi0gICAgICAgICAgIjAuMjY2MTQzLCAwLjMwNjIwMywgMC42NjMyOTksIDEuMjU4OTgsIDEuODU3MzUsIDMuMjUwNjQsIDQuMDQ2NDEiLCBcCi0gICAgICAgICAgIjAuMjc3MzAxLCAwLjMxNjk3NSwgMC42NzQyMDksIDEuMjY5NzgsIDEuODY3NzYsIDMuMjYyMDIsIDQuMDU3OTUiLCBcCi0gICAgICAgICAgIjAuMjk0Mzg1LCAwLjMzNDI1NywgMC42OTEyMDEsIDEuMjg2NzIsIDEuODg1NTEsIDMuMjc5MTEsIDQuMDc1MDciLCBcCi0gICAgICAgICAgIjAuMzA5NjI0LCAwLjM0OTE1OCwgMC43MDYxOTYsIDEuMzAxMjcsIDEuODk5MywgMy4yOTM2MSwgNC4wODk4MyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC40NzU3MTEsIDAuNTU1Mzc2LCAxLjI3NDY5LCAyLjQ3NzgyLCAzLjY4MTEsIDYuNDkxMDksIDguMDkzMTQiLCBcCi0gICAgICAgICAgIjAuNDc1NjMsIDAuNTU1Mzg0LCAxLjI3NDgxLCAyLjQ3Nzg3LCAzLjY4MTQ1LCA2LjQ4ODI5LCA4LjA5MzQ5IiwgXAotICAgICAgICAgICIwLjQ3NTc2MywgMC41NTUzMzcsIDEuMjc0NjUsIDIuNDc3MTMsIDMuNjgwMzMsIDYuNDg2MTUsIDguMDkzNTciLCBcCi0gICAgICAgICAgIjAuNDc0OTMzLCAwLjU1NTM0MiwgMS4yNzQ3OSwgMi40Nzc4NywgMy42ODA4MiwgNi40ODc5NiwgOC4wOTE4NyIsIFwKLSAgICAgICAgICAiMC40NzQ4MDYsIDAuNTU0ODY5LCAxLjI3NDgsIDIuNDc3ODQsIDMuNjgxMjEsIDYuNDg2NTcsIDguMDg4MyIsIFwKLSAgICAgICAgICAiMC40Nzc5NDcsIDAuNTU2MTgzLCAxLjI3NDY4LCAyLjQ3Nzc0LCAzLjY4MDg2LCA2LjQ4NjM4LCA4LjA4ODUiLCBcCi0gICAgICAgICAgIjAuNDgyNzE4LCAwLjU1OTg2MiwgMS4yNzQ1OCwgMi40NzcxNiwgMy42ODA1MywgNi40OTI0MywgOC4wOTMyNCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNDk1NjgsIDAuMTc1MDkzLCAwLjQwNDU0MiwgMC43ODY5MTIsIDEuMTY4NzMsIDIuMDU4NjksIDIuNTY2NDciLCBcCi0gICAgICAgICAgIjAuMTU4OTIxLCAwLjE4NDQzMSwgMC40MTQwMzIsIDAuNzk2MTkzLCAxLjE3ODEzLCAyLjA2Nzk5LCAyLjU3NjAxIiwgXAotICAgICAgICAgICIwLjE2OTg5MywgMC4xOTU0OTcsIDAuNDI1MDk1LCAwLjgwNzQyOSwgMS4xODkyNSwgMi4wNzkxNSwgMi41ODcwOCIsIFwKLSAgICAgICAgICAiMC4xODA3ODcsIDAuMjA2NDM2LCAwLjQzNjEzLCAwLjgxODQ2OCwgMS4yMDAzMywgMi4wOTAzMywgMi41OTgyMSIsIFwKLSAgICAgICAgICAiMC4xOTE1OTIsIDAuMjE3MzY2LCAwLjQ0NzEyNywgMC44Mjk0NywgMS4yMTEzMywgMi4xMDEwNywgMi42MDkzMSIsIFwKLSAgICAgICAgICAiMC4yMDg5NzQsIDAuMjM0Njc1LCAwLjQ2NDgzLCAwLjg0NzI3MSwgMS4yMjkyMywgMi4xMTg5MiwgMi42MjcyIiwgXAotICAgICAgICAgICIwLjIyNDE0OSwgMC4yNTAwNjUsIDAuNDgwMjkxLCAwLjg2Mjc4MSwgMS4yNDQ1OSwgMi4xMzQ0OSwgMi42NDMxMSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yOTM3NDEsIDAuMzQzODQ1LCAwLjc5NDM3MSwgMS41NDU4NywgMi4yOTgwMSwgNC4wNTQ5LCA1LjA1NDU5IiwgXAotICAgICAgICAgICIwLjI5MzczNiwgMC4zNDM3NzUsIDAuNzk0NDA2LCAxLjU0NjAxLCAyLjI5NzgzLCA0LjA1MjI1LCA1LjA1MzEzIiwgXAotICAgICAgICAgICIwLjI5Mzc0MSwgMC4zNDM4MzIsIDAuNzk0NDEsIDEuNTQ2MDMsIDIuMjk3ODYsIDQuMDUyOTcsIDUuMDU1NTciLCBcCi0gICAgICAgICAgIjAuMjk0MjM2LCAwLjM0Mzk5LCAwLjc5NDM2MSwgMS41NDYwMywgMi4yOTgyMywgNC4wNTA4MSwgNS4wNTQ1MiIsIFwKLSAgICAgICAgICAiMC4yOTYwNjQsIDAuMzQ1MjAxLCAwLjc5NDQwOCwgMS41NDYxNiwgMi4yOTcxLCA0LjA1MzQxLCA1LjA1NjA0IiwgXAotICAgICAgICAgICIwLjMwMDgwNiwgMC4zNDkxMTcsIDAuNzk0NDU4LCAxLjU0NjEyLCAyLjI5ODE2LCA0LjA1MzE2LCA1LjA1NjI4IiwgXAotICAgICAgICAgICIwLjMwNjQwNCwgMC4zNTQxNDEsIDAuNzk0OTY4LCAxLjU0NTc0LCAyLjMwMDg2LCA0LjA1MzEzLCA1LjA1NDYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQzEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIzMjk5NCwgMC4yNzI4ODksIDAuNjMxOTI3LCAxLjIyOTY4LCAxLjgyNzE5LCAzLjIyMTYzLCA0LjAxODEzIiwgXAotICAgICAgICAgICIwLjI0MTY5MywgMC4yODE1ODgsIDAuNjQwNjM4LCAxLjIzOTM1LCAxLjgzNzI0LCAzLjIzMDQ1LCA0LjAyNzI1IiwgXAotICAgICAgICAgICIwLjI1MjI2MiwgMC4yOTIyMjYsIDAuNjUxMjcsIDEuMjQ5MTMsIDEuODQ2ODUsIDMuMjQyMjYsIDQuMDM4MDgiLCBcCi0gICAgICAgICAgIjAuMjYyNjMzLCAwLjMwMjk0MSwgMC42NjIyNzEsIDEuMjYwNjUsIDEuODU5MDIsIDMuMjUyNDQsIDQuMDQ4MjkiLCBcCi0gICAgICAgICAgIjAuMjczNzE5LCAwLjMxMzY5NywgMC42NzMwMTUsIDEuMjcxMzEsIDEuODY5NDcsIDMuMjYzNzksIDQuMDU5NzIiLCBcCi0gICAgICAgICAgIjAuMjkwODIxLCAwLjMzMDkyNSwgMC42OTAyMiwgMS4yODg1LCAxLjg4NzE5LCAzLjI4MDg3LCA0LjA3Njg0IiwgXAotICAgICAgICAgICIwLjMwNTkxNywgMC4zNDU4MjgsIDAuNzA0OTg0LCAxLjMwMjc2LCAxLjkwMDgyLCAzLjI5NTM1LCA0LjA5MTU4Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjQ3Mjg3NiwgMC41NTMzMjgsIDEuMjc1NzYsIDIuNDc4NzcsIDMuNjgxNDMsIDYuNDkyNywgOC4wOTQzOSIsIFwKLSAgICAgICAgICAiMC40NzI5NzYsIDAuNTUzMTA3LCAxLjI3NTc3LCAyLjQ3ODcxLCAzLjY4MjM0LCA2LjQ5MzA5LCA4LjA5NDY1IiwgXAotICAgICAgICAgICIwLjQ3MjkxMywgMC41NTMwNTQsIDEuMjc1NjYsIDIuNDc4NjgsIDMuNjgxMTMsIDYuNDg3MzcsIDguMDk0NzMiLCBcCi0gICAgICAgICAgIjAuNDcyMTcyLCAwLjU1Mjk3MSwgMS4yNzU5NiwgMi40Nzg4OSwgMy42ODE5OCwgNi40ODg3MSwgOC4wOTI2MyIsIFwKLSAgICAgICAgICAiMC40NzIxNTYsIDAuNTUyMzc2LCAxLjI3NTc0LCAyLjQ3ODczLCAzLjY4MjIxLCA2LjQ4Nzc0LCA4LjA4OTA2IiwgXAotICAgICAgICAgICIwLjQ3NTI4NSwgMC41NTM5MjcsIDEuMjc1ODcsIDIuNDc4NzcsIDMuNjgxOSwgNi40ODc0OSwgOC4wODk2MSIsIFwKLSAgICAgICAgICAiMC40ODAxNzYsIDAuNTU3NzQ2LCAxLjI3NTY3LCAyLjQ3ODQ5LCAzLjY4MTM2LCA2LjQ5MzU5LCA4LjA5NDQzIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE0NzEyOSwgMC4xNzI2NjQsIDAuNDAyMDgyLCAwLjc4NDI5NiwgMS4xNjYxNCwgMi4wNTYwNCwgMi41NjM5MiIsIFwKLSAgICAgICAgICAiMC4xNTY2MzksIDAuMTgyMTk3LCAwLjQxMTc3MywgMC43OTQwMTksIDEuMTc1ODUsIDIuMDY1NzMsIDIuNTczNzciLCBcCi0gICAgICAgICAgIjAuMTY4MTk2LCAwLjE5MzY1LCAwLjQyMzI3OCwgMC44MDU1MzksIDEuMTg3MzksIDIuMDc3MjgsIDIuNTg1MjUiLCBcCi0gICAgICAgICAgIjAuMTc5NzUzLCAwLjIwNTMxOSwgMC40MzQ5NCwgMC44MTcyNjgsIDEuMTk5MDIsIDIuMDg4ODMsIDIuNTk3MzMiLCBcCi0gICAgICAgICAgIjAuMTkxNDU2LCAwLjIxNzAyNiwgMC40NDY2MjYsIDAuODI4OTQ2LCAxLjIxMDc1LCAyLjEwMDY0LCAyLjYwODc4IiwgXAotICAgICAgICAgICIwLjIxMDE0LCAwLjIzNTcyNiwgMC40NjUzNzIsIDAuODQ3NjY3LCAxLjIyOTQzLCAyLjExOTQyLCAyLjYyNzM2IiwgXAotICAgICAgICAgICIwLjIyNzI4NSwgMC4yNTIzMSwgMC40ODE2NjcsIDAuODYzOTY1LCAxLjI0NTg4LCAyLjEzNTU4LCAyLjY0Mzc4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI5Mzc2MywgMC4zNDM3OTQsIDAuNzk0NTE3LCAxLjU0NTc5LCAyLjI5NzA2LCA0LjA1MDk4LCA1LjA1NDk3IiwgXAotICAgICAgICAgICIwLjI5Mzc5LCAwLjM0Mzc2OSwgMC43OTQ1OTYsIDEuNTQ2MDksIDIuMjk3ODUsIDQuMDUyNDEsIDUuMDUyOTYiLCBcCi0gICAgICAgICAgIjAuMjkzNzYxLCAwLjM0MzgwNSwgMC43OTQ1OTQsIDEuNTQ2MDIsIDIuMjk3MTEsIDQuMDU0MzIsIDUuMDU1MzkiLCBcCi0gICAgICAgICAgIjAuMjk0NTYzLCAwLjM0Mzk5MSwgMC43OTQzNjMsIDEuNTQ1NzIsIDIuMjk3ODIsIDQuMDUyMTksIDUuMDU1NjkiLCBcCi0gICAgICAgICAgIjAuMjk3MzE3LCAwLjM0NTkwNCwgMC43OTQ0MTksIDEuNTQ2MSwgMi4yOTc3OSwgNC4wNTI4MSwgNS4wNTUzOCIsIFwKLSAgICAgICAgICAiMC4zMDQ0MDIsIDAuMzUxNzc0LCAwLjc5NDUyOCwgMS41NDYxNywgMi4yOTc4NCwgNC4wNTI5NCwgNS4wNTM0MSIsIFwKLSAgICAgICAgICAiMC4zMTIwOCwgMC4zNTg4OTUsIDAuNzk1MDAyLCAxLjU0NjAxLCAyLjI5ODE4LCA0LjA1MzI3LCA1LjA1NjUzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzg0NCwgMC4wMDM4NDQsIDAuMDAzODQ0LCAwLjAwMzg0MiwgMC4wMDM4NDEsIDAuMDAzODM4LCAwLjAwMzgzNiIsIFwKLSAgICAgICAgICAiMC4wMDM4NCwgMC4wMDM4NCwgMC4wMDM4NCwgMC4wMDM4NCwgMC4wMDM4MzgsIDAuMDAzODM3LCAwLjAwMzgzNCIsIFwKLSAgICAgICAgICAiMC4wMDM4MzcsIDAuMDAzODM4LCAwLjAwMzgzOSwgMC4wMDM4MzksIDAuMDAzODM4LCAwLjAwMzgzNiwgMC4wMDM4MzQiLCBcCi0gICAgICAgICAgIjAuMDAzODM1LCAwLjAwMzgzNSwgMC4wMDM4MzgsIDAuMDAzODM4LCAwLjAwMzgzNywgMC4wMDM4MzUsIDAuMDAzODMyIiwgXAotICAgICAgICAgICIwLjAwMzgzMywgMC4wMDM4MzQsIDAuMDAzODM3LCAwLjAwMzgzOCwgMC4wMDM4MzcsIDAuMDAzODM1LCAwLjAwMzgzNCIsIFwKLSAgICAgICAgICAiMC4wMDM4MzEsIDAuMDAzODMyLCAwLjAwMzgzNiwgMC4wMDM4MzcsIDAuMDAzODM3LCAwLjAwMzgzNCwgMC4wMDM4MzIiLCBcCi0gICAgICAgICAgIjAuMDAzODI5LCAwLjAwMzgzLCAwLjAwMzgzNCwgMC4wMDM4MzYsIDAuMDAzODM2LCAwLjAwMzgzNCwgMC4wMDM4MzIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDExMjgsIDAuMDAxMTI3LCAwLjAwMTEyNywgMC4wMDExMjcsIDAuMDAxMTI3LCAwLjAwMTEyMiwgMC4wMDExMjMiLCBcCi0gICAgICAgICAgIjAuMDAxMTE1LCAwLjAwMTExNSwgMC4wMDExMTUsIDAuMDAxMTE1LCAwLjAwMTExNSwgMC4wMDExMTMsIDAuMDAxMTEyIiwgXAotICAgICAgICAgICIwLjAwMTEwOSwgMC4wMDExMSwgMC4wMDExMTIsIDAuMDAxMTExLCAwLjAwMTExMiwgMC4wMDExMSwgMC4wMDExMDkiLCBcCi0gICAgICAgICAgIjAuMDAxMTA2LCAwLjAwMTEwNSwgMC4wMDExMDksIDAuMDAxMTEsIDAuMDAxMTEsIDAuMDAxMTA5LCAwLjAwMTEwOCIsIFwKLSAgICAgICAgICAiMC4wMDExMDMsIDAuMDAxMTA0LCAwLjAwMTEwOCwgMC4wMDExMDksIDAuMDAxMTA5LCAwLjAwMTEwOCwgMC4wMDExMDgiLCBcCi0gICAgICAgICAgIjAuMDAxMSwgMC4wMDExMDEsIDAuMDAxMTA2LCAwLjAwMTEwOCwgMC4wMDExMDgsIDAuMDAxMTA3LCAwLjAwMTEwNyIsIFwKLSAgICAgICAgICAiMC4wMDEwOTksIDAuMDAxMSwgMC4wMDExMDUsIDAuMDAxMTA3LCAwLjAwMTEwOCwgMC4wMDExMDcsIDAuMDAxMTA2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzU3MSwgMC4wMDM1NzEsIDAuMDAzNTcyLCAwLjAwMzU3MSwgMC4wMDM1NywgMC4wMDM1NjksIDAuMDAzNTY2IiwgXAotICAgICAgICAgICIwLjAwMzU2OSwgMC4wMDM1NywgMC4wMDM1NzIsIDAuMDAzNTc0LCAwLjAwMzU3MiwgMC4wMDM1NywgMC4wMDM1NjkiLCBcCi0gICAgICAgICAgIjAuMDAzNTY0LCAwLjAwMzU2NiwgMC4wMDM1NzEsIDAuMDAzNTcyLCAwLjAwMzU3MywgMC4wMDM1NywgMC4wMDM1NjkiLCBcCi0gICAgICAgICAgIjAuMDAzNTU5LCAwLjAwMzU2MSwgMC4wMDM1NjgsIDAuMDAzNTcsIDAuMDAzNTcxLCAwLjAwMzU3LCAwLjAwMzU2OSIsIFwKLSAgICAgICAgICAiMC4wMDM1NTUsIDAuMDAzNTU3LCAwLjAwMzU2NiwgMC4wMDM1NywgMC4wMDM1NywgMC4wMDM1NjksIDAuMDAzNTY4IiwgXAotICAgICAgICAgICIwLjAwMzU1LCAwLjAwMzU1MywgMC4wMDM1NjMsIDAuMDAzNTY4LCAwLjAwMzU2OSwgMC4wMDM1NjksIDAuMDAzNTY4IiwgXAotICAgICAgICAgICIwLjAwMzU0NiwgMC4wMDM1NDksIDAuMDAzNTYsIDAuMDAzNTY2LCAwLjAwMzU2NywgMC4wMDM1NjgsIDAuMDAzNTY3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxMTI4LCAwLjAwMTEyNywgMC4wMDExMjcsIDAuMDAxMTI3LCAwLjAwMTEyNiwgMC4wMDExMjUsIDAuMDAxMTI0IiwgXAotICAgICAgICAgICIwLjAwMTExNCwgMC4wMDExMTQsIDAuMDAxMTE1LCAwLjAwMTExNSwgMC4wMDExMTQsIDAuMDAxMTEsIDAuMDAxMTEyIiwgXAotICAgICAgICAgICIwLjAwMTEwOCwgMC4wMDExMDksIDAuMDAxMTExLCAwLjAwMTExMSwgMC4wMDExMTEsIDAuMDAxMTA5LCAwLjAwMTEwOCIsIFwKLSAgICAgICAgICAiMC4wMDExMDYsIDAuMDAxMTA1LCAwLjAwMTEwOSwgMC4wMDExMSwgMC4wMDExMSwgMC4wMDExMDgsIDAuMDAxMTA4IiwgXAotICAgICAgICAgICIwLjAwMTEwNSwgMC4wMDExMDUsIDAuMDAxMTA4LCAwLjAwMTEwOSwgMC4wMDExMDksIDAuMDAxMTA4LCAwLjAwMTEwNyIsIFwKLSAgICAgICAgICAiMC4wMDExMDYsIDAuMDAxMTA2LCAwLjAwMTEwOCwgMC4wMDExMDksIDAuMDAxMTA5LCAwLjAwMTEwNywgMC4wMDExMDYiLCBcCi0gICAgICAgICAgIjAuMDAxMTA5LCAwLjAwMTEwOSwgMC4wMDExMDksIDAuMDAxMTA5LCAwLjAwMTEwOSwgMC4wMDExMDcsIDAuMDAxMTA2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzIzNywgMC4wMDMyMzYsIDAuMDAzMjM2LCAwLjAwMzIzNSwgMC4wMDMyMzQsIDAuMDAzMjMxLCAwLjAwMzIyOSIsIFwKLSAgICAgICAgICAiMC4wMDMyMzIsIDAuMDAzMjMyLCAwLjAwMzIzMywgMC4wMDMyMzIsIDAuMDAzMjMyLCAwLjAwMzIyOCwgMC4wMDMyMjYiLCBcCi0gICAgICAgICAgIjAuMDAzMjI5LCAwLjAwMzIzLCAwLjAwMzIzMiwgMC4wMDMyMzEsIDAuMDAzMjMsIDAuMDAzMjI4LCAwLjAwMzIyNiIsIFwKLSAgICAgICAgICAiMC4wMDMyMjcsIDAuMDAzMjI4LCAwLjAwMzIzLCAwLjAwMzIzLCAwLjAwMzIzLCAwLjAwMzIyNywgMC4wMDMyMjYiLCBcCi0gICAgICAgICAgIjAuMDAzMjI1LCAwLjAwMzIyNiwgMC4wMDMyMjksIDAuMDAzMjMsIDAuMDAzMjI5LCAwLjAwMzIyNywgMC4wMDMyMjUiLCBcCi0gICAgICAgICAgIjAuMDAzMjIzLCAwLjAwMzIyNCwgMC4wMDMyMjgsIDAuMDAzMjI5LCAwLjAwMzIyOSwgMC4wMDMyMjcsIDAuMDAzMjI1IiwgXAotICAgICAgICAgICIwLjAwMzIyMiwgMC4wMDMyMjMsIDAuMDAzMjI3LCAwLjAwMzIyOCwgMC4wMDMyMjgsIDAuMDAzMjI2LCAwLjAwMzIyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDYzOCwgMC4wMDA2MzgsIDAuMDAwNjM4LCAwLjAwMDYzOCwgMC4wMDA2MzgsIDAuMDAwNjM3LCAwLjAwMDYzNiIsIFwKLSAgICAgICAgICAiMC4wMDA2MzksIDAuMDAwNjQsIDAuMDAwNjQyLCAwLjAwMDY0MywgMC4wMDA2NDMsIDAuMDAwNjQyLCAwLjAwMDY0MiIsIFwKLSAgICAgICAgICAiMC4wMDA2MzUsIDAuMDAwNjM2LCAwLjAwMDY0MSwgMC4wMDA2NDMsIDAuMDAwNjQ0LCAwLjAwMDY0MywgMC4wMDA2NDMiLCBcCi0gICAgICAgICAgIjAuMDAwNjMsIDAuMDAwNjMxLCAwLjAwMDYzOSwgMC4wMDA2NDIsIDAuMDAwNjQzLCAwLjAwMDY0MywgMC4wMDA2NDMiLCBcCi0gICAgICAgICAgIjAuMDAwNjI2LCAwLjAwMDYyOCwgMC4wMDA2MzcsIDAuMDAwNjQxLCAwLjAwMDY0MiwgMC4wMDA2NDMsIDAuMDAwNjQzIiwgXAotICAgICAgICAgICIwLjAwMDYyMSwgMC4wMDA2MjMsIDAuMDAwNjM1LCAwLjAwMDY0LCAwLjAwMDY0MSwgMC4wMDA2NDIsIDAuMDAwNjQyIiwgXAotICAgICAgICAgICIwLjAwMDYxOCwgMC4wMDA2MiwgMC4wMDA2MzMsIDAuMDAwNjM4LCAwLjAwMDY0LCAwLjAwMDY0MiwgMC4wMDA2NDIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyOTI3LCAwLjAwMjkyNywgMC4wMDI5MjgsIDAuMDAyOTI3LCAwLjAwMjkyNiwgMC4wMDI5MjUsIDAuMDAyOTIzIiwgXAotICAgICAgICAgICIwLjAwMjkyNiwgMC4wMDI5MjcsIDAuMDAyOTI5LCAwLjAwMjkyOSwgMC4wMDI5MjksIDAuMDAyOTI3LCAwLjAwMjkyNiIsIFwKLSAgICAgICAgICAiMC4wMDI5MjEsIDAuMDAyOTIyLCAwLjAwMjkyNywgMC4wMDI5MjgsIDAuMDAyOTI5LCAwLjAwMjkyOCwgMC4wMDI5MjYiLCBcCi0gICAgICAgICAgIjAuMDAyOTE2LCAwLjAwMjkxOCwgMC4wMDI5MjUsIDAuMDAyOTI3LCAwLjAwMjkyNywgMC4wMDI5MjcsIDAuMDAyOTI2IiwgXAotICAgICAgICAgICIwLjAwMjkxMiwgMC4wMDI5MTQsIDAuMDAyOTIzLCAwLjAwMjkyNiwgMC4wMDI5MjcsIDAuMDAyOTI2LCAwLjAwMjkyNiIsIFwKLSAgICAgICAgICAiMC4wMDI5MDcsIDAuMDAyOTA5LCAwLjAwMjkyLCAwLjAwMjkyNCwgMC4wMDI5MjYsIDAuMDAyOTI1LCAwLjAwMjkyNSIsIFwKLSAgICAgICAgICAiMC4wMDI5MDMsIDAuMDAyOTA2LCAwLjAwMjkxNiwgMC4wMDI5MjIsIDAuMDAyOTIzLCAwLjAwMjkyNCwgMC4wMDI5MjQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDA2MzcsIDAuMDAwNjM4LCAwLjAwMDYzOCwgMC4wMDA2MzgsIDAuMDAwNjM3LCAwLjAwMDYzNywgMC4wMDA2MzYiLCBcCi0gICAgICAgICAgIjAuMDAwNjM5LCAwLjAwMDYzOSwgMC4wMDA2NDIsIDAuMDAwNjQyLCAwLjAwMDY0MiwgMC4wMDA2NDIsIDAuMDAwNjQyIiwgXAotICAgICAgICAgICIwLjAwMDYzNSwgMC4wMDA2MzYsIDAuMDAwNjQxLCAwLjAwMDY0MywgMC4wMDA2NDMsIDAuMDAwNjQzLCAwLjAwMDY0MyIsIFwKLSAgICAgICAgICAiMC4wMDA2MzIsIDAuMDAwNjMzLCAwLjAwMDY0LCAwLjAwMDY0MiwgMC4wMDA2NDMsIDAuMDAwNjQzLCAwLjAwMDY0MyIsIFwKLSAgICAgICAgICAiMC4wMDA2MywgMC4wMDA2MzIsIDAuMDAwNjM5LCAwLjAwMDY0MiwgMC4wMDA2NDMsIDAuMDAwNjQzLCAwLjAwMDY0MyIsIFwKLSAgICAgICAgICAiMC4wMDA2MjksIDAuMDAwNjMxLCAwLjAwMDYzOCwgMC4wMDA2NDEsIDAuMDAwNjQyLCAwLjAwMDY0MywgMC4wMDA2NDMiLCBcCi0gICAgICAgICAgIjAuMDAwNjMxLCAwLjAwMDYzMiwgMC4wMDA2MzgsIDAuMDAwNjQxLCAwLjAwMDY0MiwgMC4wMDA2NDMsIDAuMDAwNjQzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQzAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjUzMiwgMC4wMDI1MzIsIDAuMDAyNTMxLCAwLjAwMjUzMSwgMC4wMDI1MywgMC4wMDI1MjcsIDAuMDAyNTI1IiwgXAotICAgICAgICAgICIwLjAwMjUyNiwgMC4wMDI1MjcsIDAuMDAyNTI4LCAwLjAwMjUyNywgMC4wMDI1MjYsIDAuMDAyNTI0LCAwLjAwMjUyMiIsIFwKLSAgICAgICAgICAiMC4wMDI1MjIsIDAuMDAyNTIzLCAwLjAwMjUyNiwgMC4wMDI1MjYsIDAuMDAyNTI1LCAwLjAwMjUyNCwgMC4wMDI1MjEiLCBcCi0gICAgICAgICAgIjAuMDAyNTIsIDAuMDAyNTIyLCAwLjAwMjUyNSwgMC4wMDI1MjYsIDAuMDAyNTI1LCAwLjAwMjUyMiwgMC4wMDI1MjEiLCBcCi0gICAgICAgICAgIjAuMDAyNTIxLCAwLjAwMjUyMSwgMC4wMDI1MjQsIDAuMDAyNTI0LCAwLjAwMjUyNSwgMC4wMDI1MjIsIDAuMDAyNTIiLCBcCi0gICAgICAgICAgIjAuMDAyNTIzLCAwLjAwMjUyMywgMC4wMDI1MjQsIDAuMDAyNTI1LCAwLjAwMjUyNCwgMC4wMDI1MjEsIDAuMDAyNTIiLCBcCi0gICAgICAgICAgIjAuMDAyNTI2LCAwLjAwMjUyNiwgMC4wMDI1MjUsIDAuMDAyNTI1LCAwLjAwMjUyNCwgMC4wMDI1MjEsIDAuMDAyNTIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDAxODgsIDAuMDAwMTg4LCAwLjAwMDE4OSwgMC4wMDAxODksIDAuMDAwMTksIDAuMDAwMTksIDAuMDAwMTkiLCBcCi0gICAgICAgICAgIjAuMDAwMTk3LCAwLjAwMDE5OCwgMC4wMDAyMDMsIDAuMDAwMjA1LCAwLjAwMDIwNSwgMC4wMDAyMDYsIDAuMDAwMjA2IiwgXAotICAgICAgICAgICIwLjAwMDE5NCwgMC4wMDAxOTYsIDAuMDAwMjA0LCAwLjAwMDIwOCwgMC4wMDAyMDksIDAuMDAwMjEsIDAuMDAwMjEiLCBcCi0gICAgICAgICAgIjAuMDAwMTg5LCAwLjAwMDE5MiwgMC4wMDAyMDMsIDAuMDAwMjA4LCAwLjAwMDIwOSwgMC4wMDAyMTEsIDAuMDAwMjExIiwgXAotICAgICAgICAgICIwLjAwMDE4NSwgMC4wMDAxODgsIDAuMDAwMjAyLCAwLjAwMDIwNywgMC4wMDAyMDksIDAuMDAwMjExLCAwLjAwMDIxMiIsIFwKLSAgICAgICAgICAiMC4wMDAxNzksIDAuMDAwMTgzLCAwLjAwMDE5OSwgMC4wMDAyMDYsIDAuMDAwMjA5LCAwLjAwMDIxMSwgMC4wMDAyMTIiLCBcCi0gICAgICAgICAgIjAuMDAwMTc1LCAwLjAwMDE3OSwgMC4wMDAxOTcsIDAuMDAwMjA1LCAwLjAwMDIwOCwgMC4wMDAyMTEsIDAuMDAwMjEyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQzEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjI3MywgMC4wMDIyNzMsIDAuMDAyMjczLCAwLjAwMjI3MywgMC4wMDIyNzIsIDAuMDAyMjcsIDAuMDAyMjY5IiwgXAotICAgICAgICAgICIwLjAwMjI2OSwgMC4wMDIyNywgMC4wMDIyNzMsIDAuMDAyMjc0LCAwLjAwMjI3NCwgMC4wMDIyNzIsIDAuMDAyMjcyIiwgXAotICAgICAgICAgICIwLjAwMjI2NCwgMC4wMDIyNjUsIDAuMDAyMjcxLCAwLjAwMjI3MywgMC4wMDIyNzMsIDAuMDAyMjczLCAwLjAwMjI3MSIsIFwKLSAgICAgICAgICAiMC4wMDIyNTksIDAuMDAyMjYyLCAwLjAwMjI2OSwgMC4wMDIyNzEsIDAuMDAyMjcyLCAwLjAwMjI3MSwgMC4wMDIyNjkiLCBcCi0gICAgICAgICAgIjAuMDAyMjU3LCAwLjAwMjI1OSwgMC4wMDIyNjcsIDAuMDAyMjcxLCAwLjAwMjI3MiwgMC4wMDIyNzEsIDAuMDAyMjY5IiwgXAotICAgICAgICAgICIwLjAwMjI1NywgMC4wMDIyNTgsIDAuMDAyMjY2LCAwLjAwMjI3LCAwLjAwMjI3MSwgMC4wMDIyNywgMC4wMDIyNjkiLCBcCi0gICAgICAgICAgIjAuMDAyMjU4LCAwLjAwMjI1OSwgMC4wMDIyNjYsIDAuMDAyMjY5LCAwLjAwMjI3LCAwLjAwMjI3LCAwLjAwMjI2OSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDE4OCwgMC4wMDAxODgsIDAuMDAwMTg5LCAwLjAwMDE5LCAwLjAwMDE5LCAwLjAwMDE5LCAwLjAwMDE5IiwgXAotICAgICAgICAgICIwLjAwMDE5NiwgMC4wMDAxOTgsIDAuMDAwMjAzLCAwLjAwMDIwNCwgMC4wMDAyMDUsIDAuMDAwMjA2LCAwLjAwMDIwNiIsIFwKLSAgICAgICAgICAiMC4wMDAxOTUsIDAuMDAwMTk3LCAwLjAwMDIwNSwgMC4wMDAyMDgsIDAuMDAwMjEsIDAuMDAwMjExLCAwLjAwMDIxMSIsIFwKLSAgICAgICAgICAiMC4wMDAxOTIsIDAuMDAwMTk0LCAwLjAwMDIwNSwgMC4wMDAyMDksIDAuMDAwMjEsIDAuMDAwMjEyLCAwLjAwMDIxMiIsIFwKLSAgICAgICAgICAiMC4wMDAxODksIDAuMDAwMTkyLCAwLjAwMDIwNCwgMC4wMDAyMDksIDAuMDAwMjEsIDAuMDAwMjEyLCAwLjAwMDIxMyIsIFwKLSAgICAgICAgICAiMC4wMDAxODgsIDAuMDAwMTkxLCAwLjAwMDIwMywgMC4wMDAyMDgsIDAuMDAwMjExLCAwLjAwMDIxMiwgMC4wMDAyMTMiLCBcCi0gICAgICAgICAgIjAuMDAwMTkyLCAwLjAwMDE5MiwgMC4wMDAyMDMsIDAuMDAwMjA5LCAwLjAwMDIxMSwgMC4wMDAyMTMsIDAuMDAwMjEzIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogQU9JMjJYMiAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChBT0kyMlgyKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMjg1Nzc3OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNzI2NzQ7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNzE5OTQ7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNzI2NzQ7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwODE4LCAwLjAwMDgxOCwgMC4wMDA4MTgsIDAuMDAwODE4LCAwLjAwMDgxOCwgMC4wMDA4MTcsIDAuMDAwODE3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwODQzLCAwLjAwMDgyMywgMC4wMDA4MTksIDAuMDAwODIxLCAwLjAwMDgyLCAwLjAwMDgyLCAwLjAwMDgyMSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQTEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTYxMDg0OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTU5ODQ5OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTYxMDg0OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDQ5MiwgMC4wMDA0OTEsIDAuMDAwNDkxLCAwLjAwMDQ5MSwgMC4wMDA0OSwgMC4wMDA0OSwgMC4wMDA0OSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDkyOCwgMC4wMDA5MjksIDAuMDAwOTI5LCAwLjAwMDkzLCAwLjAwMDkyOSwgMC4wMDA5MjksIDAuMDAwOTI5Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNzA0Mjk7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNzA0Mjk7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNjk5Nzg7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwODE5LCAwLjAwMDgxOCwgMC4wMDA4MTgsIDAuMDAwODE4LCAwLjAwMDgxOCwgMC4wMDA4MTgsIDAuMDAwODE4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwODM5LCAwLjAwMDgyMiwgMC4wMDA4MTksIDAuMDAwODIsIDAuMDAwODIsIDAuMDAwODIsIDAuMDAwODIiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIxKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE1Njk1NzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE1Njg0ODsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE1Njk1NzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA0NTcsIDAuMDAwNDU3LCAwLjAwMDQ1NywgMC4wMDA0NTcsIDAuMDAwNDU3LCAwLjAwMDQ1NiwgMC4wMDA0NTciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA5MjgsIDAuMDAwOTI4LCAwLjAwMDkyOCwgMC4wMDA5MjgsIDAuMDAwOTI5LCAwLjAwMDkyOSwgMC4wMDA5MjkiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4yNjY5NTM7Ci0gICAgZnVuY3Rpb24gOiAiKCEoKEIwIEIxKSsoQTAgQTEpKSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjY1NjYsIDAuMjYzMTU1LCAwLjQyMjQ5NywgMC42MjE0MzMsIDAuODIwODM1LCAxLjAxOTQyLCAxLjIxODYyIiwgXAotICAgICAgICAgICIwLjA3NjE5MSwgMC4yNzMxMDQsIDAuNDMyMjM4LCAwLjYzMTI2OCwgMC44MzAxOTYsIDEuMDI5NDYsIDEuMjI4MDYiLCBcCi0gICAgICAgICAgIjAuMDg2ODM2LCAwLjI4MzcxOSwgMC40NDMwODEsIDAuNjQyMTA3LCAwLjg0MDg5MSwgMS4wNDAxNCwgMS4yMzg3NCIsIFwKLSAgICAgICAgICAiMC4wOTcwNTIsIDAuMjkzODUyLCAwLjQ1MzAxNiwgMC42NTIzMTUsIDAuODUwOTkyLCAxLjA1MDA2LCAxLjI0ODc2IiwgXAotICAgICAgICAgICIwLjEwNzA5NywgMC4zMDM4MzIsIDAuNDYzMDQxLCAwLjY2MjA5NSwgMC44NjA4NDMsIDEuMDYwNTUsIDEuMjU4NjQiLCBcCi0gICAgICAgICAgIjAuMTIyMjgxLCAwLjMxOTc1NywgMC40NzkxNDksIDAuNjc4MDYyLCAwLjg3NjksIDEuMDc1OSwgMS4yNzQ2NSIsIFwKLSAgICAgICAgICAiMC4xMzQwMjcsIDAuMzMzNjcsIDAuNDkyOTY1LCAwLjY5MjE0OSwgMC44OTExNzMsIDEuMDg5OTQsIDEuMjg5MyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDgsIDAuNTEwNjA3LCAwLjgzNDM4OSwgMS4yMzg1NiwgMS42NDI4MiwgMi4wNDY3MSwgMi40NTEyMyIsIFwKLSAgICAgICAgICAiMC4xMDc5NDYsIDAuNTEwNzQ2LCAwLjgzNDU4MSwgMS4yMzg1MywgMS42NDI3LCAyLjA0Njk2LCAyLjQ1MDk4IiwgXAotICAgICAgICAgICIwLjEwODY2MywgMC41MTA3MTMsIDAuODM0NTk2LCAxLjIzOTAyLCAxLjY0MjcyLCAyLjA0NzAxLCAyLjQ1MDc5IiwgXAotICAgICAgICAgICIwLjExMTE5MiwgMC41MTA2NiwgMC44MzQ2MTYsIDEuMjM4OTcsIDEuNjQzMTIsIDIuMDQ2NTEsIDIuNDUxODIiLCBcCi0gICAgICAgICAgIjAuMTE0NjM1LCAwLjUxMDgzMywgMC44MzQ1NDEsIDEuMjM4NTUsIDEuNjQzMTYsIDIuMDQ4MDksIDIuNDUxMjciLCBcCi0gICAgICAgICAgIjAuMTIxOTQsIDAuNTEyMDksIDAuODM0MjQyLCAxLjIzODU5LCAxLjY0MjkyLCAyLjA0NzI4LCAyLjQ1MjE3IiwgXAotICAgICAgICAgICIwLjEyOTU2NCwgMC41MTQzOTUsIDAuODM0NzM5LCAxLjIzODU4LCAxLjY0MjQ2LCAyLjA0NjU1LCAyLjQ1MTIxIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2NjE5NywgMC4yNTc1MDMsIDAuNDEwMTk1LCAwLjYwMDM0NSwgMC43OTA5NzcsIDAuOTgwOTM4LCAxLjE3MTEiLCBcCi0gICAgICAgICAgIjAuMDc1MDgxLCAwLjI2NjUwNiwgMC40MTg5MjQsIDAuNjA5MjM3LCAwLjc5OTQ2MiwgMC45ODk3ODksIDEuMTc5OTgiLCBcCi0gICAgICAgICAgIjAuMDg1OTM5LCAwLjI3NzU2OSwgMC40MzAwMTUsIDAuNjIwMzQyLCAwLjgxMTEzOCwgMS4wMDExOCwgMS4xOTE0MSIsIFwKLSAgICAgICAgICAiMC4wOTY5NzEsIDAuMjg4NjI2LCAwLjQ0MTAyNCwgMC42MzEzODgsIDAuODIyMTgxLCAxLjAxMTk3LCAxLjIwMjk0IiwgXAotICAgICAgICAgICIwLjEwNzc4LCAwLjI5OTY1OSwgMC40NTIxOTUsIDAuNjQyNDQ5LCAwLjgzMzM0MywgMS4wMjMwOCwgMS4yMTQyIiwgXAotICAgICAgICAgICIwLjEyNDUwMSwgMC4zMTcxOSwgMC40Njk4NzgsIDAuNjYwMTY1LCAwLjg1MDc2MiwgMS4wNDA5OSwgMS4yMzEwMyIsIFwKLSAgICAgICAgICAiMC4xMzc1NzEsIDAuMzMyMjU0LCAwLjQ4NTE1NiwgMC42NzU2MTYsIDAuODY1ODg4LCAxLjA1NjYxLCAxLjI0NjgxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExMTA3MywgMC40ODczNTYsIDAuNzg4MTEzLCAxLjE2NDYzLCAxLjU0MDI4LCAxLjkxNjkzLCAyLjI5MjMxIiwgXAotICAgICAgICAgICIwLjExMTA2MSwgMC40ODcyOTksIDAuNzg4MzIxLCAxLjE2NDI5LCAxLjU0MDUsIDEuOTE2MjMsIDIuMjkyNyIsIFwKLSAgICAgICAgICAiMC4xMTI0NTEsIDAuNDg3MzgyLCAwLjc4ODM5MywgMS4xNjQzLCAxLjU0MDcxLCAxLjkxNjI3LCAyLjI5MjU1IiwgXAotICAgICAgICAgICIwLjExNTgxOSwgMC40ODczODEsIDAuNzg4MjYyLCAxLjE2NDMxLCAxLjU0MDYxLCAxLjkxNjgxLCAyLjI5MjM1IiwgXAotICAgICAgICAgICIwLjEyMDQwMywgMC40ODc0MjcsIDAuNzg4MTA5LCAxLjE2NDI2LCAxLjU0MDM4LCAxLjkxNjQ2LCAyLjI5Mjc3IiwgXAotICAgICAgICAgICIwLjEyOTQzMiwgMC40ODkwNTksIDAuNzg4MTA3LCAxLjE2NDUzLCAxLjU0MDI5LCAxLjkxNjM0LCAyLjI5MjY2IiwgXAotICAgICAgICAgICIwLjEzODAyMiwgMC40OTE4MTQsIDAuNzg4ODc2LCAxLjE2NDU2LCAxLjU0MDQ2LCAxLjkxNjc1LCAyLjI5MjI2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkExIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjQzMiwgMC4yNjE4NjMsIDAuNDIyMDg0LCAwLjYyMTk2MywgMC44MjIzMzgsIDEuMDIxNzMsIDEuMjIxMzQiLCBcCi0gICAgICAgICAgIjAuMDczODcsIDAuMjcxNjg3LCAwLjQzMTQ5LCAwLjYzMTczNiwgMC44MzExNDYsIDEuMDMyMjIsIDEuMjMxNTEiLCBcCi0gICAgICAgICAgIjAuMDg0NDUxLCAwLjI4MjM1NSwgMC40NDIxNzksIDAuNjQxOTI3LCAwLjg0MTkyOCwgMS4wNDE5OCwgMS4yNDE2OCIsIFwKLSAgICAgICAgICAiMC4wOTQ0NjQsIDAuMjkyNDI3LCAwLjQ1MjExLCAwLjY1MjU3LCAwLjg1MjI4LCAxLjA1MjAyLCAxLjI1MjEiLCBcCi0gICAgICAgICAgIjAuMTA0MzY2LCAwLjMwMjE4NywgMC40NjIwNTEsIDAuNjYyMSwgMC44NjIwMjIsIDEuMDYyNDksIDEuMjYyNTQiLCBcCi0gICAgICAgICAgIjAuMTE5MTg3LCAwLjMxODQwOCwgMC40NzgwNzYsIDAuNjc4MDgsIDAuODc3OTc1LCAxLjA3ODA3LCAxLjI3OCIsIFwKLSAgICAgICAgICAiMC4xMzA2NTksIDAuMzMyMzYsIDAuNDkxODY4LCAwLjY5MjIyMywgMC44OTIyMDcsIDEuMDkyMDQsIDEuMjkyNDgiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTA1NjI1LCAwLjUxMTEzLCAwLjgzNTY1NiwgMS4yNDE3LCAxLjY0ODk2LCAyLjA1NTA3LCAyLjQ2NjgxIiwgXAotICAgICAgICAgICIwLjEwNTY2MiwgMC41MDk5OTgsIDAuODM1Mzc1LCAxLjI0MTYyLCAxLjY1MTEyLCAyLjA1NTYxLCAyLjQ2MTczIiwgXAotICAgICAgICAgICIwLjEwNjU1OCwgMC41MTAwNjgsIDAuODM1NDQ4LCAxLjI0NDg5LCAxLjY0OTU1LCAyLjA1NTUsIDIuNDY3NTYiLCBcCi0gICAgICAgICAgIjAuMTA5MDUsIDAuNTExMTgsIDAuODM2Nzg2LCAxLjI0MTYxLCAxLjY1MDE3LCAyLjA1OTU0LCAyLjQ2MzUiLCBcCi0gICAgICAgICAgIjAuMTEyNTU4LCAwLjUxMTMxMiwgMC44MzU4NzcsIDEuMjQyNzYsIDEuNjUxOTUsIDIuMDU0OTgsIDIuNDYxOTkiLCBcCi0gICAgICAgICAgIjAuMTE5OTgzLCAwLjUxMTIwNywgMC44MzU4MzYsIDEuMjQ0OTUsIDEuNjUxMDIsIDIuMDU4LCAyLjQ2MzQ5IiwgXAotICAgICAgICAgICIwLjEyNzY1NywgMC41MTQ3NTQsIDAuODM2MjIsIDEuMjQxOTUsIDEuNjQ4NjcsIDIuMDU5NjgsIDIuNDYxNSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjM5NzEsIDAuMjU1NDA0LCAwLjQwNzgzNywgMC41OTgxMjMsIDAuNzg4ODY1LCAwLjk3ODc3NSwgMS4xNjg3IiwgXAotICAgICAgICAgICIwLjA3MjkzNSwgMC4yNjQ1MjEsIDAuNDE2ODQ2LCAwLjYwNzE4NywgMC43OTc1OTcsIDAuOTg3Njc5LCAxLjE3ODE0IiwgXAotICAgICAgICAgICIwLjA4NDQ4MywgMC4yNzYxMTYsIDAuNDI4NTE3LCAwLjYxODY5MywgMC44MDkxNjUsIDAuOTk5MTc0LCAxLjE4OTUyIiwgXAotICAgICAgICAgICIwLjA5NjQ3OCwgMC4yODc3NzcsIDAuNDQwMzUzLCAwLjYzMTA2NiwgMC44MjEwMywgMS4wMTE2NSwgMS4yMDE0MyIsIFwKLSAgICAgICAgICAiMC4xMDg0OTMsIDAuMjk4OTI2LCAwLjQ1MTgwMywgMC42NDIyNzIsIDAuODMyNTIzLCAxLjAyMjgzLCAxLjIxMzA5IiwgXAotICAgICAgICAgICIwLjEyNjk4OSwgMC4zMTgwNywgMC40NzA1NTYsIDAuNjYwOTExLCAwLjg1MTM2MiwgMS4wNDE3MSwgMS4yMzE2NyIsIFwKLSAgICAgICAgICAiMC4xNDE5NTQsIDAuMzM0NTk5LCAwLjQ4Njk0MSwgMC42NzcyNSwgMC44Njc5MTksIDEuMDU4MTQsIDEuMjQ4NjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTExMDk1LCAwLjQ4NzM3OCwgMC43ODgyMjcsIDEuMTY0NTIsIDEuNTQwMzEsIDEuOTE2OTMsIDIuMjkyNjYiLCBcCi0gICAgICAgICAgIjAuMTExMDI3LCAwLjQ4NzI3NywgMC43ODgxNjcsIDEuMTY0NSwgMS41NDA0OCwgMS45MTYzMiwgMi4yOTI3NyIsIFwKLSAgICAgICAgICAiMC4xMTM2MjEsIDAuNDg3MzM4LCAwLjc4ODIwNiwgMS4xNjQyNCwgMS41NDAyOCwgMS45MTY3NSwgMi4yOTI3MSIsIFwKLSAgICAgICAgICAiMC4xMTg4NTQsIDAuNDg3MzQ4LCAwLjc4ODM5MSwgMS4xNjQyNywgMS41NDA2MiwgMS45MTY3OCwgMi4yOTI4NyIsIFwKLSAgICAgICAgICAiMC4xMjUzMzEsIDAuNDg3Mzc4LCAwLjc4ODQxNiwgMS4xNjQ1LCAxLjU0MDY0LCAxLjkxNjIyLCAyLjI5MjIyIiwgXAotICAgICAgICAgICIwLjEzODA1NywgMC40ODk5MjMsIDAuNzg4NDM1LCAxLjE2NDI0LCAxLjU0MDYsIDEuOTE2MTgsIDIuMjkyNiIsIFwKLSAgICAgICAgICAiMC4xNDk5OTIsIDAuNDk0MTAzLCAwLjc4ODkwMywgMS4xNjQxNywgMS41NDA2NSwgMS45MTYzOCwgMi4yOTI4NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU3MDAzLCAwLjI1MjgxMSwgMC40MDk5ODEsIDAuNjA3MTUyLCAwLjgwNDQ3OCwgMS4wMDE4MSwgMS4xOTg4MSIsIFwKLSAgICAgICAgICAiMC4wNjU5ODMsIDAuMjYxOTEsIDAuNDE5MDQ1LCAwLjYxNjUxMSwgMC44MTM1MTUsIDEuMDExNDEsIDEuMjA4MjYiLCBcCi0gICAgICAgICAgIjAuMDc3Mjk5LCAwLjI3MzE5OSwgMC40MzAyNDYsIDAuNjI3ODIxLCAwLjgyNDc0OCwgMS4wMjI0MiwgMS4yMTk4NyIsIFwKLSAgICAgICAgICAiMC4wODkxMjgsIDAuMjg0NjkxLCAwLjQ0MTg1NiwgMC42MzkwMTIsIDAuODM1OTc2LCAxLjAzNDIzLCAxLjIzMTExIiwgXAotICAgICAgICAgICIwLjEwMTAyOCwgMC4yOTYyNTgsIDAuNDUzMjIxLCAwLjY1MDgxOCwgMC44NDc3NywgMS4wNDU1OCwgMS4yNDI4NyIsIFwKLSAgICAgICAgICAiMC4xMTg0NDYsIDAuMzE0Nzc0LCAwLjQ3MTgxOCwgMC42NjkyNDMsIDAuODY2NDYyLCAxLjA2Mzg1LCAxLjI2MTI4IiwgXAotICAgICAgICAgICIwLjEzMTMzNCwgMC4zMzA5MjcsIDAuNDg3ODMzLCAwLjY4NTQ4NSwgMC44ODI3MTksIDEuMDc5ODMsIDEuMjc3MTQiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTA3ODI5LCAwLjUwNjU5MiwgMC44MjcyODMsIDEuMjI4MDgsIDEuNjI4MDUsIDIuMDI4NTEsIDIuNDI5MTUiLCBcCi0gICAgICAgICAgIjAuMTA3NjY4LCAwLjUwNjM4OCwgMC44MjcyODcsIDEuMjI4NSwgMS42Mjg2OCwgMi4wMjkxLCAyLjQyOTEzIiwgXAotICAgICAgICAgICIwLjExMDc3OCwgMC41MDYyOTcsIDAuODI3MTM5LCAxLjIyNzE5LCAxLjYyODY2LCAyLjAyODk4LCAyLjQyOTY5IiwgXAotICAgICAgICAgICIwLjExNjUxNSwgMC41MDY0NDgsIDAuODI3MjkxLCAxLjIyNzg3LCAxLjYyODY0LCAyLjAzMDExLCAyLjQyODk1IiwgXAotICAgICAgICAgICIwLjEyMzcwMSwgMC41MDY0NTMsIDAuODI3Mjc3LCAxLjIyODEyLCAxLjYyODU0LCAyLjAyOTM5LCAyLjQyOTYzIiwgXAotICAgICAgICAgICIwLjEzNjg5MywgMC41MDkxMDYsIDAuODI3MzcsIDEuMjI3ODMsIDEuNjI4NzYsIDIuMDI4NDksIDIuNDI5NjMiLCBcCi0gICAgICAgICAgIjAuMTQ5NDE3LCAwLjUxMzU4NSwgMC44Mjc0MTUsIDEuMjI4MDgsIDEuNjI4NjMsIDIuMDI5NTYsIDIuNDI5MTEiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU0MDM0LCAwLjI0NDUyOSwgMC4zOTY3OSwgMC41ODcxNDYsIDAuNzc3NTMxLCAwLjk2NzkzOSwgMS4xNTgyNCIsIFwKLSAgICAgICAgICAiMC4wNjI5MzksIDAuMjUzODM0LCAwLjQwNjE3MSwgMC41OTY1NTEsIDAuNzg2ODgzLCAwLjk3NzMwOSwgMS4xNjc0NCIsIFwKLSAgICAgICAgICAiMC4wNzM4MzcsIDAuMjY0ODM3LCAwLjQxNzI5MiwgMC42MDc2ODEsIDAuNzk3OTQ2LCAwLjk4ODI2MywgMS4xNzg1NCIsIFwKLSAgICAgICAgICAiMC4wODQ2MTQsIDAuMjc1Nzk1LCAwLjQyODM0MiwgMC42MTg3NTcsIDAuODA5MTMyLCAwLjk5OTQ2OCwgMS4xOTAwMyIsIFwKLSAgICAgICAgICAiMC4wOTUyNjQsIDAuMjg2ODIxLCAwLjQzOTQ5NiwgMC42Mjk4OTcsIDAuODIwMjg5LCAxLjAxMDYzLCAxLjIwMDkiLCBcCi0gICAgICAgICAgIjAuMTEwNTE2LCAwLjMwNDQ3NCwgMC40NTY0NTIsIDAuNjQ3NDg5LCAwLjgzNzg3MywgMS4wMjgxNiwgMS4yMTgzNiIsIFwKLSAgICAgICAgICAiMC4xMjI4MjYsIDAuMzE5NjYyLCAwLjQ3MjM2OCwgMC42NjI5NzQsIDAuODUzNTEzLCAxLjA0MzgxLCAxLjIzNDA4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5ODY5LCAwLjQ3NDMzMiwgMC43NzUyNDgsIDEuMTUxNSwgMS41Mjc0MywgMS45MTI3MSwgMi4yODA1MSIsIFwKLSAgICAgICAgICAiMC4wOTg3MDcsIDAuNDc0MzMzLCAwLjc3NTMxOSwgMS4xNTExMiwgMS41MjcxMywgMS45MDU0NSwgMi4yOTE3IiwgXAotICAgICAgICAgICIwLjEwMDgwNCwgMC40NzQzNzgsIDAuNzc1MzMxLCAxLjE1Mzg4LCAxLjUzMjgxLCAxLjkwMzc4LCAyLjI4MDE1IiwgXAotICAgICAgICAgICIwLjEwNDg0NSwgMC40NzQ0MTIsIDAuNzc1NDI0LCAxLjE1MTQ3LCAxLjUyNzU2LCAxLjkxMDgzLCAyLjI4MDAxIiwgXAotICAgICAgICAgICIwLjExMDEwOSwgMC40NzQ2MTgsIDAuNzc1MzE5LCAxLjE1MTQsIDEuNTMyNjYsIDEuOTA5OTUsIDIuMjg5MiIsIFwKLSAgICAgICAgICAiMC4xMTk3NTIsIDAuNDc2NTU0LCAwLjc3NDk0NywgMS4xNTE0OCwgMS41MjcxMywgMS45MDM3NiwgMi4yODIxOCIsIFwKLSAgICAgICAgICAiMC4xMjk0NDgsIDAuNDc5NDc3LCAwLjc3NTc5LCAxLjE1MzMyLCAxLjUyNzc1LCAxLjkwMzE3LCAyLjI4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIxIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTUxMDcsIDAuMjU0NDU2LCAwLjQxMzU1NiwgMC42MTI2OCwgMC44MTIxNzIsIDEuMDEyNSwgMS4yMTI2MiIsIFwKLSAgICAgICAgICAiMC4wNjQwNzksIDAuMjYzNDk3LCAwLjQyMjg4MSwgMC42MjE5NTIsIDAuODIxNjg3LCAxLjAyMjA1LCAxLjIyMTQzIiwgXAotICAgICAgICAgICIwLjA3NTU1NiwgMC4yNzUwNiwgMC40MzQyNjksIDAuNjMzNTQzLCAwLjgzMjkzNCwgMS4wMzMxNSwgMS4yMzMxOSIsIFwKLSAgICAgICAgICAiMC4wODcwNTYsIDAuMjg2MTk4LCAwLjQ0NTQ1MSwgMC42NDQ4OTMsIDAuODQzNjUxLCAxLjA0NSwgMS4yNDM4MiIsIFwKLSAgICAgICAgICAiMC4wOTg4NTUsIDAuMjk3NzM5LCAwLjQ1NzAwMSwgMC42NTYxNzYsIDAuODU1NTM0LCAxLjA1NTEzLCAxLjI1NTYyIiwgXAotICAgICAgICAgICIwLjExNTkwMiwgMC4zMTYyNjQsIDAuNDc1NDcsIDAuNjc0NDQ1LCAwLjg3NDIsIDEuMDc0MDUsIDEuMjczOTMiLCBcCi0gICAgICAgICAgIjAuMTI4NjQsIDAuMzMyMzc4LCAwLjQ5MTU4NiwgMC42OTA2NjcsIDAuODkwMjAyLCAxLjA5MDg0LCAxLjI5MDI4Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwNjI4MiwgMC41MTA2OTQsIDAuODM1MTc5LCAxLjI0MjU4LCAxLjY1MjQyLCAyLjA1NjE3LCAyLjQ2MTIxIiwgXAotICAgICAgICAgICIwLjEwNjA2LCAwLjUxMTE2NywgMC44MzUxMjUsIDEuMjQxNjQsIDEuNjQ4MjMsIDIuMDU0NzEsIDIuNDYxNTYiLCBcCi0gICAgICAgICAgIjAuMTA5MzAyLCAwLjUxMDgzOCwgMC44MzY0NjMsIDEuMjQxNTgsIDEuNjQ5NjUsIDIuMDU1MzMsIDIuNDYxODIiLCBcCi0gICAgICAgICAgIjAuMTE1MzUxLCAwLjUxMDYxMywgMC44MzU4NDMsIDEuMjQyMzgsIDEuNjUwOSwgMi4wNTU2MSwgMi40NjMyIiwgXAotICAgICAgICAgICIwLjEyMjYyOSwgMC41MTA3MywgMC44MzU4NDUsIDEuMjQxNzgsIDEuNjQ5NTIsIDIuMDU2MTIsIDIuNDY3MzMiLCBcCi0gICAgICAgICAgIjAuMTM2MTU4LCAwLjUxMzc4OSwgMC44MzcyNjksIDEuMjQyNjQsIDEuNjUyMDUsIDIuMDU5MjYsIDIuNDY2NzgiLCBcCi0gICAgICAgICAgIjAuMTQ4ODUsIDAuNTE3NDY3LCAwLjgzNjIzMSwgMS4yNDI2NywgMS42NDk0MywgMi4wNTQ3NywgMi40NjY5Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1MTY5LCAwLjI0MjE3NywgMC4zOTQ0OTgsIDAuNTg0OTM0LCAwLjc3NTE3MSwgMC45NjU0OTUsIDEuMTU1ODgiLCBcCi0gICAgICAgICAgIjAuMDYwODY1LCAwLjI1MTYxOSwgMC40MDM5OTcsIDAuNTk0MzksIDAuNzg0NzAyLCAwLjk3NTAzMSwgMS4xNjUxOCIsIFwKLSAgICAgICAgICAiMC4wNzI1OTcsIDAuMjYzMjE0LCAwLjQxNTkwNSwgMC42MDYyNTksIDAuNzk2NzI1LCAwLjk4NjkxOCwgMS4xNzcyIiwgXAotICAgICAgICAgICIwLjA4NDI3NCwgMC4yNzQ3OTQsIDAuNDI3MTc1LCAwLjYxNzU2NSwgMC44MDc5NDUsIDAuOTk4MjQ0LCAxLjE4ODM1IiwgXAotICAgICAgICAgICIwLjA5NjE5LCAwLjI4NjQ3LCAwLjQzODkwNCwgMC42MjkyNzgsIDAuODE5Njc2LCAxLjAwOTg5LCAxLjIwMDExIiwgXAotICAgICAgICAgICIwLjExMzEwNywgMC4zMDUyNTgsIDAuNDU3NTksIDAuNjQ4MDM2LCAwLjgzODM3OSwgMS4wMjg2MywgMS4yMTkiLCBcCi0gICAgICAgICAgIjAuMTI1NzYyLCAwLjMyMTYyNSwgMC40NzM5NzIsIDAuNjY0NDExLCAwLjg1NDcxMywgMS4wNDUwMSwgMS4yMzUyOCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTg2ODksIDAuNDc0NDY0LCAwLjc3NTM0MywgMS4xNTE2LCAxLjUyNzIzLCAxLjkwNDA3LCAyLjI5MDgzIiwgXAotICAgICAgICAgICIwLjA5ODgwMywgMC40NzQzNTUsIDAuNzc1MjQ0LCAxLjE1MzQxLCAxLjUyNzQ0LCAxLjkwNTQ4LCAyLjI4MjMyIiwgXAotICAgICAgICAgICIwLjEwMjIzNCwgMC40NzQ0MTYsIDAuNzc1NDU2LCAxLjE1MTUsIDEuNTI3MjcsIDEuOTA1MzQsIDIuMjc5ODkiLCBcCi0gICAgICAgICAgIjAuMTA4NDQ5LCAwLjQ3NDMyOSwgMC43NzUxNiwgMS4xNTE0NiwgMS41MzE5NSwgMS45MDM4NCwgMi4yODI4MiIsIFwKLSAgICAgICAgICAiMC4xMTYwNDMsIDAuNDc0NTQxLCAwLjc3NTI0MywgMS4xNTE1LCAxLjUzMjEsIDEuOTAzODgsIDIuMjgyMzEiLCBcCi0gICAgICAgICAgIjAuMTI5OTM5LCAwLjQ3NzM2NSwgMC43NzUwODMsIDEuMTUxMTMsIDEuNTI3MTcsIDEuOTAzMjQsIDIuMjg5NzMiLCBcCi0gICAgICAgICAgIjAuMTQyNzg4LCAwLjQ4MjAxNSwgMC43NzU4NzMsIDEuMTUzOTksIDEuNTI3NywgMS45MDM3OCwgMi4yODA0MSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDY5MzksIDAuMDA2OTQxLCAwLjAwNjk0MSwgMC4wMDY5NCwgMC4wMDY5NCwgMC4wMDY5MzksIDAuMDA2OTM5IiwgXAotICAgICAgICAgICIwLjAwNjkxNCwgMC4wMDY5MjksIDAuMDA2OTMxLCAwLjAwNjkzMSwgMC4wMDY5MywgMC4wMDY5MzEsIDAuMDA2OTMiLCBcCi0gICAgICAgICAgIjAuMDA2ODk2LCAwLjAwNjkyMiwgMC4wMDY5MjYsIDAuMDA2OTMsIDAuMDA2OTI1LCAwLjAwNjkyNSwgMC4wMDY5MjciLCBcCi0gICAgICAgICAgIjAuMDA2ODg1LCAwLjAwNjkxNywgMC4wMDY5MjIsIDAuMDA2OTI1LCAwLjAwNjkyNiwgMC4wMDY5MjUsIDAuMDA2OTI2IiwgXAotICAgICAgICAgICIwLjAwNjg3NywgMC4wMDY5MTEsIDAuMDA2OTE5LCAwLjAwNjkyMiwgMC4wMDY5MjYsIDAuMDA2OTI1LCAwLjAwNjkyNSIsIFwKLSAgICAgICAgICAiMC4wMDY4NjksIDAuMDA2OTA4LCAwLjAwNjkxNiwgMC4wMDY5MiwgMC4wMDY5MjEsIDAuMDA2OTIzLCAwLjAwNjkyMyIsIFwKLSAgICAgICAgICAiMC4wMDY4NjQsIDAuMDA2OTA1LCAwLjAwNjkxMywgMC4wMDY5MTgsIDAuMDA2OTIxLCAwLjAwNjkyMiwgMC4wMDY5MjIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDIwNDUsIDAuMDAyMDQ3LCAwLjAwMjA0NywgMC4wMDIwNDgsIDAuMDAyMDQ3LCAwLjAwMjA0NiwgMC4wMDIwNDYiLCBcCi0gICAgICAgICAgIjAuMDAxOTkyLCAwLjAwMjAxOCwgMC4wMDIwMjIsIDAuMDAyMDIzLCAwLjAwMjAyNCwgMC4wMDIwMjMsIDAuMDAyMDI0IiwgXAotICAgICAgICAgICIwLjAwMTk1NSwgMC4wMDIwMDMsIDAuMDAyMDExLCAwLjAwMjAxNSwgMC4wMDIwMTYsIDAuMDAyMDE2LCAwLjAwMjAxOCIsIFwKLSAgICAgICAgICAiMC4wMDE5MzMsIDAuMDAxOTkzLCAwLjAwMjAwMywgMC4wMDIwMDksIDAuMDAyMDEyLCAwLjAwMjAxMiwgMC4wMDIwMTQiLCBcCi0gICAgICAgICAgIjAuMDAxOTE5LCAwLjAwMTk4MywgMC4wMDE5OTcsIDAuMDAyMDA0LCAwLjAwMjAwNywgMC4wMDIwMDksIDAuMDAyMDExIiwgXAotICAgICAgICAgICIwLjAwMTkxMSwgMC4wMDE5NzIsIDAuMDAxOTg4LCAwLjAwMTk5NywgMC4wMDIwMDIsIDAuMDAyMDA0LCAwLjAwMjAwNyIsIFwKLSAgICAgICAgICAiMC4wMDE5MTQsIDAuMDAxOTY2LCAwLjAwMTk4MywgMC4wMDE5OTMsIDAuMDAxOTk4LCAwLjAwMjAwMiwgMC4wMDIwMDQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2MTU5LCAwLjAwNjE2OSwgMC4wMDYxNywgMC4wMDYxNywgMC4wMDYxNywgMC4wMDYxNzEsIDAuMDA2MTY5IiwgXAotICAgICAgICAgICIwLjAwNjEyNywgMC4wMDYxNjksIDAuMDA2MTc0LCAwLjAwNjE3NiwgMC4wMDYxNzcsIDAuMDA2MTc4LCAwLjAwNjE3OCIsIFwKLSAgICAgICAgICAiMC4wMDYwOTMsIDAuMDA2MTU4LCAwLjAwNjE2NSwgMC4wMDYxNjYsIDAuMDA2MTY4LCAwLjAwNjE4LCAwLjAwNjE3NSIsIFwKLSAgICAgICAgICAiMC4wMDYwNjcsIDAuMDA2MTQ2LCAwLjAwNjE1OSwgMC4wMDYxNjYsIDAuMDA2MTcsIDAuMDA2MTcxLCAwLjAwNjE3MyIsIFwKLSAgICAgICAgICAiMC4wMDYwNTEsIDAuMDA2MTM1LCAwLjAwNjE1MywgMC4wMDYxNjEsIDAuMDA2MTY4LCAwLjAwNjE2OCwgMC4wMDYxNyIsIFwKLSAgICAgICAgICAiMC4wMDYwMzUsIDAuMDA2MTIyLCAwLjAwNjE0MiwgMC4wMDYxNTMsIDAuMDA2MTYxLCAwLjAwNjE2MiwgMC4wMDYxNjUiLCBcCi0gICAgICAgICAgIjAuMDA2MDI3LCAwLjAwNjExMywgMC4wMDYxMzYsIDAuMDA2MTQ4LCAwLjAwNjE1NywgMC4wMDYxNiwgMC4wMDYxNjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDIwNDIsIDAuMDAyMDQ1LCAwLjAwMjA0NSwgMC4wMDIwNDYsIDAuMDAyMDQ1LCAwLjAwMjA0MywgMC4wMDIwNDQiLCBcCi0gICAgICAgICAgIjAuMDAxOTc3LCAwLjAwMjAxMiwgMC4wMDIwMTgsIDAuMDAyMDE4LCAwLjAwMjAxOCwgMC4wMDIwMiwgMC4wMDIwMiIsIFwKLSAgICAgICAgICAiMC4wMDE5NTEsIDAuMDAxOTk5LCAwLjAwMjAwNiwgMC4wMDIwMSwgMC4wMDIwMTIsIDAuMDAyMDEzLCAwLjAwMjAxNCIsIFwKLSAgICAgICAgICAiMC4wMDE5MzIsIDAuMDAxOTksIDAuMDAxOTk5LCAwLjAwMjAwNSwgMC4wMDIwMDcsIDAuMDAyMDA5LCAwLjAwMjAxIiwgXAotICAgICAgICAgICIwLjAwMTk0NCwgMC4wMDE5ODEsIDAuMDAxOTk1LCAwLjAwMjAwMiwgMC4wMDIwMDUsIDAuMDAyMDA3LCAwLjAwMjAwNyIsIFwKLSAgICAgICAgICAiMC4wMDE5NzIsIDAuMDAxOTgzLCAwLjAwMTk5MiwgMC4wMDE5OTksIDAuMDAyMDA0LCAwLjAwMjAwNiwgMC4wMDIwMDYiLCBcCi0gICAgICAgICAgIjAuMDAyMDA3LCAwLjAwMTk4OCwgMC4wMDE5OTUsIDAuMDAyLCAwLjAwMjAwMywgMC4wMDIwMDYsIDAuMDAyMDA1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDk2NywgMC4wMDQ5NzMsIDAuMDA0OTczLCAwLjAwNDk3MywgMC4wMDQ5NzIsIDAuMDA0OTcyLCAwLjAwNDk3MSIsIFwKLSAgICAgICAgICAiMC4wMDQ5MjgsIDAuMDA0OTU1LCAwLjAwNDk1OCwgMC4wMDQ5NTksIDAuMDA0OTU5LCAwLjAwNDk2LCAwLjAwNDk1OSIsIFwKLSAgICAgICAgICAiMC4wMDQ5MTIsIDAuMDA0OTQ3LCAwLjAwNDk1MiwgMC4wMDQ5NTQsIDAuMDA0OTU1LCAwLjAwNDk1NiwgMC4wMDQ5NTYiLCBcCi0gICAgICAgICAgIjAuMDA0OTExLCAwLjAwNDk0MiwgMC4wMDQ5NDgsIDAuMDA0OTUxLCAwLjAwNDk1MywgMC4wMDQ5NTMsIDAuMDA0OTU0IiwgXAotICAgICAgICAgICIwLjAwNDkxNiwgMC4wMDQ5MzksIDAuMDA0OTQ2LCAwLjAwNDk1LCAwLjAwNDk1MSwgMC4wMDQ5NTEsIDAuMDA0OTUzIiwgXAotICAgICAgICAgICIwLjAwNDk0NSwgMC4wMDQ5NCwgMC4wMDQ5NDUsIDAuMDA0OTQ5LCAwLjAwNDk1MSwgMC4wMDQ5NTIsIDAuMDA0OTUyIiwgXAotICAgICAgICAgICIwLjAwNDk4LCAwLjAwNDk0NiwgMC4wMDQ5NDksIDAuMDA0OTUxLCAwLjAwNDk1MSwgMC4wMDQ5NTIsIDAuMDA0OTUyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwNTUxLCAwLjAwMDU2OSwgMC4wMDA1NzEsIDAuMDAwNTcxLCAwLjAwMDU3MiwgMC4wMDA1NzIsIDAuMDAwNTcyIiwgXAotICAgICAgICAgICIwLjAwMDUxNywgMC4wMDA1OSwgMC4wMDA1OTgsIDAuMDAwNjAzLCAwLjAwMDYwNSwgMC4wMDA2MDYsIDAuMDAwNjA3IiwgXAotICAgICAgICAgICIwLjAwMDQ2MywgMC4wMDA1NzYsIDAuMDAwNTkyLCAwLjAwMDYwMSwgMC4wMDA2MDUsIDAuMDAwNjA4LCAwLjAwMDYxIiwgXAotICAgICAgICAgICIwLjAwMDQyNiwgMC4wMDA1NjEsIDAuMDAwNTgyLCAwLjAwMDU5NSwgMC4wMDA2MDEsIDAuMDAwNjA1LCAwLjAwMDYwOCIsIFwKLSAgICAgICAgICAiMC4wMDA0MDMsIDAuMDAwNTQ2LCAwLjAwMDU3MywgMC4wMDA1ODgsIDAuMDAwNTk2LCAwLjAwMDYwMSwgMC4wMDA2MDUiLCBcCi0gICAgICAgICAgIjAuMDAwMzg1LCAwLjAwMDUyNiwgMC4wMDA1NTksIDAuMDAwNTc4LCAwLjAwMDU4OCwgMC4wMDA1OTUsIDAuMDAwNTk5IiwgXAotICAgICAgICAgICIwLjAwMDM4NCwgMC4wMDA1MTIsIDAuMDAwNTQ4LCAwLjAwMDU3LCAwLjAwMDU4MiwgMC4wMDA1OSwgMC4wMDA1OTUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0MTQ3LCAwLjAwNDE2MiwgMC4wMDQxNjMsIDAuMDA0MTYzLCAwLjAwNDE2MywgMC4wMDQxNjMsIDAuMDA0MTYzIiwgXAotICAgICAgICAgICIwLjAwNDEwMiwgMC4wMDQxNTcsIDAuMDA0MTY0LCAwLjAwNDE2NywgMC4wMDQxNjgsIDAuMDA0MTcsIDAuMDA0MTciLCBcCi0gICAgICAgICAgIjAuMDA0MDYyLCAwLjAwNDE0MiwgMC4wMDQxNTQsIDAuMDA0MTYsIDAuMDA0MTY1LCAwLjAwNDE2NSwgMC4wMDQxNjciLCBcCi0gICAgICAgICAgIjAuMDA0MDU5LCAwLjAwNDEzNSwgMC4wMDQxNDksIDAuMDA0MTU3LCAwLjAwNDE2LCAwLjAwNDE2MywgMC4wMDQxNjQiLCBcCi0gICAgICAgICAgIjAuMDA0MDU2LCAwLjAwNDEyNywgMC4wMDQxNDIsIDAuMDA0MTUyLCAwLjAwNDE1NywgMC4wMDQxNTksIDAuMDA0MTYxIiwgXAotICAgICAgICAgICIwLjAwNDA3NywgMC4wMDQxMTksIDAuMDA0MTM2LCAwLjAwNDE0NywgMC4wMDQxNTMsIDAuMDA0MTU2LCAwLjAwNDE1OCIsIFwKLSAgICAgICAgICAiMC4wMDQxMDgsIDAuMDA0MTE5LCAwLjAwNDEzNSwgMC4wMDQxNDUsIDAuMDA0MTUxLCAwLjAwNDE1NSwgMC4wMDQxNTciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDA1NTEsIDAuMDAwNTcyLCAwLjAwMDU3NCwgMC4wMDA1NzUsIDAuMDAwNTc1LCAwLjAwMDU3NiwgMC4wMDA1NzYiLCBcCi0gICAgICAgICAgIjAuMDAwNTEyLCAwLjAwMDU5MiwgMC4wMDA2MDEsIDAuMDAwNjA2LCAwLjAwMDYwOSwgMC4wMDA2MSwgMC4wMDA2MTEiLCBcCi0gICAgICAgICAgIjAuMDAwNDcxLCAwLjAwMDU3OSwgMC4wMDA1OTUsIDAuMDAwNjAzLCAwLjAwMDYwOCwgMC4wMDA2MTEsIDAuMDAwNjEyIiwgXAotICAgICAgICAgICIwLjAwMDQ1LCAwLjAwMDU2OCwgMC4wMDA1ODgsIDAuMDAwNiwgMC4wMDA2MDYsIDAuMDAwNjEsIDAuMDAwNjEzIiwgXAotICAgICAgICAgICIwLjAwMDQ0OCwgMC4wMDA1NTcsIDAuMDAwNTgxLCAwLjAwMDU5NSwgMC4wMDA2MDMsIDAuMDAwNjA3LCAwLjAwMDYxIiwgXAotICAgICAgICAgICIwLjAwMDQ2OSwgMC4wMDA1NDcsIDAuMDAwNTc0LCAwLjAwMDU4OSwgMC4wMDA1OTgsIDAuMDAwNjA0LCAwLjAwMDYwNyIsIFwKLSAgICAgICAgICAiMC4wMDA1MDIsIDAuMDAwNTQ1LCAwLjAwMDU3LCAwLjAwMDU4NywgMC4wMDA1OTUsIDAuMDAwNjAxLCAwLjAwMDYwNiIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IEFPSTIyWDQgKgotICogLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoQU9JMjJYNCkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjU3MTQ1OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAzMzc5MDE7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAzMzY1NDM7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAzMzc5MDE7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxNjM3LCAwLjAwMTYzNSwgMC4wMDE2MzYsIDAuMDAxNjM1LCAwLjAwMTYzNSwgMC4wMDE2MzEsIDAuMDAxNjM0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxNjg4LCAwLjAwMTY0NywgMC4wMDE2NDQsIDAuMDAxNjQxLCAwLjAwMTY0MSwgMC4wMDE2NDEsIDAuMDAxNjQxIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihBMSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAzMjI5MjQ7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAzMjA1MTg7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAzMjI5MjQ7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxMDA5LCAwLjAwMTAwNywgMC4wMDEwMDcsIDAuMDAxMDA2LCAwLjAwMTAwNiwgMC4wMDEwMDYsIDAuMDAxMDA2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxODU3LCAwLjAwMTg1OCwgMC4wMDE4NTgsIDAuMDAxODU5LCAwLjAwMTg1OSwgMC4wMDE4NTgsIDAuMDAxODU4Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAzMzg1MzU7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAzMzg1MzU7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAzMzc2MTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDE2MzcsIDAuMDAxNjM3LCAwLjAwMTYzNywgMC4wMDE2MzYsIDAuMDAxNjM2LCAwLjAwMTYzNiwgMC4wMDE2MzYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDE2ODgsIDAuMDAxNjQ2LCAwLjAwMTY0MywgMC4wMDE2NDEsIDAuMDAxNjQsIDAuMDAxNjQsIDAuMDAxNjM5Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCMSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAzMjM1MjM7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAzMjMzNTk7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAzMjM1MjM7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxMDA5LCAwLjAwMTAwOCwgMC4wMDEwMDgsIDAuMDAxMDA4LCAwLjAwMTAwOCwgMC4wMDEwMDcsIDAuMDAxMDA4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxODU2LCAwLjAwMTg1NywgMC4wMDE4NTcsIDAuMDAxODU3LCAwLjAwMTg1OCwgMC4wMDE4NTksIDAuMDAxODU4Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuNTQ2MDA0OwotICAgIGZ1bmN0aW9uIDogIighKChCMCBCMSkrKEEwIEExKSkpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDU4NjYsIDAuMTg0Nzk5LCAwLjMyMzI4NywgMC40MjI2MjYsIDAuNTgyNDM4LCAwLjcyMTkzMiwgMC45MjE4MzgiLCBcCi0gICAgICAgICAgIjAuMDU1MzE4LCAwLjE5NDM0NiwgMC4zMzI4NjMsIDAuNDMyMzY5LCAwLjU5MTkxNywgMC43MzIxNDQsIDAuOTMxNDc5IiwgXAotICAgICAgICAgICIwLjA2NTgxOCwgMC4yMDQ5NjMsIDAuMzQzNDY1LCAwLjQ0Mjc5NCwgMC42MDI0MDksIDAuNzQyMjg2LCAwLjk0MjA4MiIsIFwKLSAgICAgICAgICAiMC4wNzU4OTEsIDAuMjE1MDgxLCAwLjM1Mzc5MywgMC40NTI5OTMsIDAuNjEyNzA5LCAwLjc1MjM1OSwgMC45NTI3MjgiLCBcCi0gICAgICAgICAgIjAuMDg0OTg0LCAwLjIyNTEzNiwgMC4zNjM3NDMsIDAuNDYyOTA1LCAwLjYyMjY5NywgMC43NjIzNzIsIDAuOTYyNjU4IiwgXAotICAgICAgICAgICIwLjA5Nzc1NiwgMC4yNDA5NzgsIDAuMzc5NzA2LCAwLjQ3ODg2NywgMC42Mzg5MDUsIDAuNzc4NTIxLCAwLjk3ODEyNiIsIFwKLSAgICAgICAgICAiMC4xMDc1MjUsIDAuMjU0NzM0LCAwLjM5Mzc0NiwgMC40OTI3ODgsIDAuNjUyNzMxLCAwLjc5MjMsIDAuOTkxOTE5Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY3NDcxLCAwLjM0ODk3MSwgMC42MzMyMTQsIDAuODM2Mjk5LCAxLjE2MDY4LCAxLjQ0NDgyLCAxLjg1MDgyIiwgXAotICAgICAgICAgICIwLjA2NzU0NywgMC4zNDg4NTEsIDAuNjMzMDI4LCAwLjgzNjI0OSwgMS4xNjA3MywgMS40NDU0NCwgMS44NTAxMyIsIFwKLSAgICAgICAgICAiMC4wNjkxNjgsIDAuMzQ4OTMxLCAwLjYzMzIyOSwgMC44MzY0MjUsIDEuMTYxMjIsIDEuNDQ0OTYsIDEuODUwODkiLCBcCi0gICAgICAgICAgIjAuMDcyNDY1LCAwLjM0ODkzNiwgMC42MzMwMTUsIDAuODM2NDM2LCAxLjE2MDksIDEuNDQ0ODksIDEuODUwNjMiLCBcCi0gICAgICAgICAgIjAuMDc2OTE4LCAwLjM0OTY5NywgMC42MzMxNTIsIDAuODM2MTI5LCAxLjE2MDgsIDEuNDQ0OTEsIDEuODUxMzgiLCBcCi0gICAgICAgICAgIjAuMDg1NTQ1LCAwLjM1MjgzMSwgMC42MzM1NjUsIDAuODM1OTE5LCAxLjE2MTExLCAxLjQ0NTEsIDEuODUxMDYiLCBcCi0gICAgICAgICAgIjAuMDkzMjc5LCAwLjM1NzIsIDAuNjM1MTE1LCAwLjgzNjYxLCAxLjE2MDc2LCAxLjQ0NDgyLCAxLjg1MDY1Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQ1NzA4LCAwLjE4MTMwNywgMC4zMTU4NTcsIDAuNDEyMDk1LCAwLjU2NTQxNSwgMC42OTk2NjQsIDAuODkxNzY1IiwgXAotICAgICAgICAgICIwLjA1NDUzNSwgMC4xOTAyMzgsIDAuMzI0ODIzLCAwLjQyMDczOSwgMC41NzQzMTQsIDAuNzA4NjU5LCAwLjkwMDQ2NCIsIFwKLSAgICAgICAgICAiMC4wNjU0NTQsIDAuMjAxMzE2LCAwLjMzNTkzNSwgMC40MzE5NDYsIDAuNTg1NDgsIDAuNzE5OTAyLCAwLjkxMTU5IiwgXAotICAgICAgICAgICIwLjA3NjE5MSwgMC4yMTIyODgsIDAuMzQ2OTM4LCAwLjQ0MzE0NSwgMC41OTY4MjYsIDAuNzMwODczLCAwLjkyMjk5NSIsIFwKLSAgICAgICAgICAiMC4wODY1MSwgMC4yMjMyNDIsIDAuMzU4MTM1LCAwLjQ1NDE1OCwgMC42MDc4NzgsIDAuNzQxOTk5LCAwLjkzMzkwOSIsIFwKLSAgICAgICAgICAiMC4xMDA5MjksIDAuMjQwNzA5LCAwLjM3NTQ1MywgMC40NzE3MDgsIDAuNjI1NDU3LCAwLjc1OTUyNSwgMC45NTE0NjkiLCBcCi0gICAgICAgICAgIjAuMTEyMjUyLCAwLjI1NjIwMywgMC4zOTA5MzIsIDAuNDg2OTg3LCAwLjY0MDYsIDAuNzc1MTc1LCAwLjk2Njg0OSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3MTc3LCAwLjMzNzE3MSwgMC42MDI3MjgsIDAuNzkyMzcyLCAxLjA5NTc1LCAxLjM2MTM0LCAxLjc0MDU3IiwgXAotICAgICAgICAgICIwLjA3MTkwOSwgMC4zMzcxNDksIDAuNjAyNzM3LCAwLjc5MjMzOSwgMS4wOTU3LCAxLjM2MTMsIDEuNzQwMiIsIFwKLSAgICAgICAgICAiMC4wNzQ2MTcsIDAuMzM3MjE2LCAwLjYwMjY2OSwgMC43OTI0NTUsIDEuMDk1NjYsIDEuMzYxMDcsIDEuNzQwMTkiLCBcCi0gICAgICAgICAgIjAuMDc5MTkyLCAwLjMzNzM0LCAwLjYwMjY2MywgMC43OTI1MTIsIDEuMDk1ODYsIDEuMzYxNDksIDEuNzQwNjgiLCBcCi0gICAgICAgICAgIjAuMDg0ODM5LCAwLjMzODQ0LCAwLjYwMjc3OCwgMC43OTI1NjgsIDEuMDk1NjksIDEuMzYxMTMsIDEuNzQwMjQiLCBcCi0gICAgICAgICAgIjAuMDk0ODksIDAuMzQyMTk2LCAwLjYwMzM2MSwgMC43OTIzMjksIDEuMDk1NjYsIDEuMzYxMSwgMS43NDA1OSIsIFwKLSAgICAgICAgICAiMC4xMDQxNzgsIDAuMzQ3MDEsIDAuNjA1MTg5LCAwLjc5MzA2MSwgMS4wOTU3MSwgMS4zNjE0NSwgMS43NDAyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDMyNTIsIDAuMTgyNzM2LCAwLjMyMTY2OCwgMC40MjEyMDcsIDAuNTgwMjE3LCAwLjcyMDk5NSwgMC45MjA2MyIsIFwKLSAgICAgICAgICAiMC4wNTI2MzYsIDAuMTkyMjcxLCAwLjMzMTM5LCAwLjQzMDgzNiwgMC41OTA0NjMsIDAuNzMxMTQ0LCAwLjkzMDYxNSIsIFwKLSAgICAgICAgICAiMC4wNjI5OTMsIDAuMjAyODA1LCAwLjM0MTk0OCwgMC40NDEyOTksIDAuNjAwNzk4LCAwLjc0MTU4OCwgMC45NDExNjkiLCBcCi0gICAgICAgICAgIjAuMDcyNzc4LCAwLjIxMjg0LCAwLjM1MjIyMSwgMC40NTE1LCAwLjYxMTAwNiwgMC43NTEwMzUsIDAuOTUyMTE4IiwgXAotICAgICAgICAgICIwLjA4MTU3MiwgMC4yMjI4MDQsIDAuMzYyMTI1LCAwLjQ2MTQ3LCAwLjYyMDg2MywgMC43NjA5NTgsIDAuOTYwOTczIiwgXAotICAgICAgICAgICIwLjA5Mzk3NiwgMC4yMzg1NzIsIDAuMzc4MDE2LCAwLjQ3NzQyMSwgMC42MzczNzIsIDAuNzc3MDg3LCAwLjk3NzE1NiIsIFwKLSAgICAgICAgICAiMC4xMDMzODMsIDAuMjUyNjIsIDAuMzkxOTczLCAwLjQ5MTM1LCAwLjY1MDc4OCwgMC43OTA4MzMsIDAuOTkwODkiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjQ0NywgMC4zNDcxNCwgMC42MzIxLCAwLjgzNDcwNiwgMS4xNjAzOCwgMS40NDQ1NywgMS44NTUzMyIsIFwKLSAgICAgICAgICAiMC4wNjQ1NTYsIDAuMzQ3MDA1LCAwLjYzMDg5MywgMC44MzQ5ODMsIDEuMTU5OTksIDEuNDUzODcsIDEuODUxNDMiLCBcCi0gICAgICAgICAgIjAuMDY2MzIzLCAwLjM0NzEwNSwgMC42MzIyNjcsIDAuODM0NjEzLCAxLjE2MTk2LCAxLjQ0NTAzLCAxLjg1MTQxIiwgXAotICAgICAgICAgICIwLjA2OTgwMiwgMC4zNDcxNCwgMC42MzA5NjQsIDAuODM2MjA0LCAxLjE2MDY4LCAxLjQ0NzY4LCAxLjg1MjI2IiwgXAotICAgICAgICAgICIwLjA3NDQzOCwgMC4zNDc5NzUsIDAuNjMxNDAyLCAwLjgzNDkyMSwgMS4xNjA1NiwgMS40NDc2NSwgMS44NTUzMSIsIFwKLSAgICAgICAgICAiMC4wODMxOTQsIDAuMzUxMDUzLCAwLjYzMTM2NiwgMC44MzQ5MjgsIDEuMTU5NzMsIDEuNDQ0NTMsIDEuODU1NzkiLCBcCi0gICAgICAgICAgIjAuMDkwODczLCAwLjM1NTMzOSwgMC42MzM3MTQsIDAuODM0ODEyLCAxLjE2MjQ3LCAxLjQ0Njk0LCAxLjg1MTMzIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQzNDczLCAwLjE3OTAzNiwgMC4zMTM2MzcsIDAuNDA5NzM5LCAwLjU2MzIyNywgMC42OTc1MTEsIDAuODg5NzYiLCBcCi0gICAgICAgICAgIjAuMDUyNDg3LCAwLjE4ODI1NSwgMC4zMjI3NjksIDAuNDE4NzM5LCAwLjU3MjI3MiwgMC43MDY1NSwgMC44OTg0IiwgXAotICAgICAgICAgICIwLjA2NDAwNywgMC4xOTk3NjIsIDAuMzM0NDAzLCAwLjQzMDMxLCAwLjU4NDAyMiwgMC43MTgxMjgsIDAuOTEwNDk4IiwgXAotICAgICAgICAgICIwLjA3NjE3MSwgMC4yMTE2MjUsIDAuMzQ2MjkzLCAwLjQ0MjI0NiwgMC41OTU4NjgsIDAuNzMwMDY5LCAwLjkyMjYxNCIsIFwKLSAgICAgICAgICAiMC4wODczNDMsIDAuMjIzMTIsIDAuMzU3NjMzLCAwLjQ1MzY0NiwgMC42MDcyMTgsIDAuNzQxNTkyLCAwLjkzMzg1NSIsIFwKLSAgICAgICAgICAiMC4xMDI5MTYsIDAuMjQxODAxLCAwLjM3NjM0OCwgMC40NzI0NDcsIDAuNjI1ODgyLCAwLjc2MDI3MSwgMC45NTIzMTUiLCBcCi0gICAgICAgICAgIjAuMTE0NzMzLCAwLjI1ODM2MSwgMC4zOTI4MjIsIDAuNDg4Nzk0LCAwLjY0MjIyNSwgMC43NzY4MTQsIDAuOTY4NDAyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDcxODAxLCAwLjMzNzE4OSwgMC42MDI4MjksIDAuNzkyNDM0LCAxLjA5NTczLCAxLjM2MTUzLCAxLjc0MDY2IiwgXAotICAgICAgICAgICIwLjA3MjEyMywgMC4zMzcxOTgsIDAuNjAyNzYyLCAwLjc5MjM1NCwgMS4wOTU3NywgMS4zNjEwOSwgMS43NDA2OSIsIFwKLSAgICAgICAgICAiMC4wNzY3NzEsIDAuMzM3MTI0LCAwLjYwMjc2MiwgMC43OTI0OTUsIDEuMDk1ODgsIDEuMzYxMTEsIDEuNzQwNjYiLCBcCi0gICAgICAgICAgIjAuMDgzMjkyLCAwLjMzNzM4OCwgMC42MDI2ODMsIDAuNzkyNTcsIDEuMDk1NzUsIDEuMzYxMTMsIDEuNzQwNjciLCBcCi0gICAgICAgICAgIjAuMDkxNjQsIDAuMzM5MTQ2LCAwLjYwMjY2MiwgMC43OTIzOTEsIDEuMDk1NzUsIDEuMzYxMTIsIDEuNzQwNTkiLCBcCi0gICAgICAgICAgIjAuMTA1NzAzLCAwLjM0NDgyNCwgMC42MDM0NzgsIDAuNzkyNTE0LCAxLjA5NTg5LCAxLjM2MTQ5LCAxLjc0MDczIiwgXAotICAgICAgICAgICIwLjExNzk2NSwgMC4zNTE3MDksIDAuNjA2MjI0LCAwLjc5MzExNywgMS4wOTU5OCwgMS4zNjExNSwgMS43NDAyOCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzcxMDYsIDAuMTc2MDgyLCAwLjMxNDYwNSwgMC40MTM3NTIsIDAuNTcxNzksIDAuNzA5NTIsIDAuOTA4MTkiLCBcCi0gICAgICAgICAgIjAuMDQ2MTAxLCAwLjE4NTMxNCwgMC4zMjM3NzUsIDAuNDIyODQ0LCAwLjU4MTEsIDAuNzE5NDQzLCAwLjkxNzk5NCIsIFwKLSAgICAgICAgICAiMC4wNTc3NjIsIDAuMTk2ODI0LCAwLjMzNTUxNywgMC40MzQyNzIsIDAuNTkyMTYyLCAwLjczMDg5MywgMC45Mjk1MzEiLCBcCi0gICAgICAgICAgIjAuMDY5MDg3LCAwLjIwNzk4NSwgMC4zNDY0ODMsIDAuNDQ1NSwgMC42MDM3MDcsIDAuNzQxNjgyLCAwLjk0MDM2MyIsIFwKLSAgICAgICAgICAiMC4wNzkzNjUsIDAuMjE5NTM4LCAwLjM1ODAzNywgMC40NTcwNDMsIDAuNjE1NDI3LCAwLjc1MzYxMywgMC45NTE5OTEiLCBcCi0gICAgICAgICAgIjAuMDkyODE0LCAwLjIzODEwNywgMC4zNzY1OSwgMC40NzU0NjksIDAuNjMzNjI1LCAwLjc3MjI2NSwgMC45NzA3OTkiLCBcCi0gICAgICAgICAgIjAuMTAzMDc1LCAwLjI1NDM1NCwgMC4zOTI3OCwgMC40OTE2MDEsIDAuNjUwMDg3LCAwLjc4ODE5OSwgMC45ODY5MzkiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjczMTYsIDAuMzQ4ODA3LCAwLjYzMDIzOCwgMC44MzEyNDIsIDEuMTU0MzEsIDEuNDM2NDgsIDEuODQxMzgiLCBcCi0gICAgICAgICAgIjAuMDY3NzMyLCAwLjM0ODg0NywgMC42MzAwODUsIDAuODMxMzg2LCAxLjE1NTAyLCAxLjQzNjc3LCAxLjg0MDkyIiwgXAotICAgICAgICAgICIwLjA3MjkzLCAwLjM0ODg0NiwgMC42MzAyMTEsIDAuODMyMDI4LCAxLjE1NDE1LCAxLjQzNzMyLCAxLjg0MDIxIiwgXAotICAgICAgICAgICIwLjA4MDY0NSwgMC4zNDg5NDcsIDAuNjMwMDM5LCAwLjgzMTYyNywgMS4xNTQ1MSwgMS40MzY5LCAxLjg0MDk0IiwgXAotICAgICAgICAgICIwLjA4OTE5NywgMC4zNTA5MjgsIDAuNjMwMDIyLCAwLjgzMTc5OCwgMS4xNTUxNSwgMS40MzczMSwgMS44NDEwMyIsIFwKLSAgICAgICAgICAiMC4xMDMyNjksIDAuMzU2NzExLCAwLjYzMDkwMiwgMC44MzE3NzksIDEuMTU0OTUsIDEuNDM3MjIsIDEuODQxMDEiLCBcCi0gICAgICAgICAgIjAuMTE0NjE1LCAwLjM2MzcxNywgMC42MzM0NzYsIDAuODMxOTE1LCAxLjE1NDc0LCAxLjQzNzA4LCAxLjg0MDE3Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM0NTIxLCAwLjE2OTE3MSwgMC4zMDM1OTgsIDAuMzk5NjA1LCAwLjU1MzI4OCwgMC42ODc2MTUsIDAuODc5NjYiLCBcCi0gICAgICAgICAgIjAuMDQzMzEyLCAwLjE3ODM0OCwgMC4zMTI4NDMsIDAuNDA4ODg5LCAwLjU2MjUwNCwgMC42OTY5MzIsIDAuODg4ODYxIiwgXAotICAgICAgICAgICIwLjA1NDAxNiwgMC4xODk0MzksIDAuMzIzOTgzLCAwLjQyMDA0OSwgMC41NzM3MTUsIDAuNzA4MTIyLCAwLjkwMDA2NiIsIFwKLSAgICAgICAgICAiMC4wNjQwNTEsIDAuMjAwMzE3LCAwLjMzNDk1MSwgMC40MzEwMTgsIDAuNTg0NzE3LCAwLjcxOTE0MiwgMC45MTEwODUiLCBcCi0gICAgICAgICAgIjAuMDczMTA2LCAwLjIxMTM2MiwgMC4zNDU5ODgsIDAuNDQyMTAxLCAwLjU5NTk4LCAwLjczMDM4LCAwLjkyMjMzNSIsIFwKLSAgICAgICAgICAiMC4wODU0MDcsIDAuMjI4NTU2LCAwLjM2MzQ3NSwgMC40NTkxNjcsIDAuNjEzNDg0LCAwLjc0Nzk1OSwgMC45Mzk4NzMiLCBcCi0gICAgICAgICAgIjAuMDk1MDkzLCAwLjI0NDIwNiwgMC4zNzg5NTYsIDAuNDc0OTk5LCAwLjYyODc1MSwgMC43NjMzMDIsIDAuOTU1NDA0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDYwNTA4LCAwLjMyNTY1NCwgMC41OTExNzksIDAuNzgwODU2LCAxLjA4NzE2LCAxLjM1MDE2LCAxLjcyOTc2IiwgXAotICAgICAgICAgICIwLjA2MDk4MSwgMC4zMjU2MjQsIDAuNTkxMDkyLCAwLjc4MDc3OCwgMS4wODQzMSwgMS4zNDk5OCwgMS43MzAxMyIsIFwKLSAgICAgICAgICAiMC4wNjQ2MDgsIDAuMzI1NjIzLCAwLjU5MTIwNiwgMC43ODA4NDMsIDEuMDg0MjIsIDEuMzUwMDEsIDEuNzMwNDgiLCBcCi0gICAgICAgICAgIjAuMDcwMDYyLCAwLjMyNTkwNSwgMC41OTEwOCwgMC43ODA2MzEsIDEuMDg0MzksIDEuMzQ5NzYsIDEuNzMwMjciLCBcCi0gICAgICAgICAgIjAuMDc2NTcyLCAwLjMyNzI4MiwgMC41OTExNzcsIDAuNzgwODMsIDEuMDg0NDksIDEuMzU0MTIsIDEuNzM2MyIsIFwKLSAgICAgICAgICAiMC4wODc3MywgMC4zMzExMjgsIDAuNTkxNzcsIDAuNzgwNDk4LCAxLjA4NDQ2LCAxLjM1MjksIDEuNzMwMzUiLCBcCi0gICAgICAgICAgIjAuMDk3Mjc0LCAwLjMzNjQ0NSwgMC41OTM5OTgsIDAuNzgxNDYsIDEuMDg0NDcsIDEuMzUwMDIsIDEuNzMwNTMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM0NzA4LCAwLjE3NDkyNSwgMC4zMTQ2NCwgMC40MTQ0OTcsIDAuNTc0NDY5LCAwLjcxNDAwOSwgMC45MTQwNjkiLCBcCi0gICAgICAgICAgIjAuMDQzNTkyLCAwLjE4NDExMywgMC4zMjM4ODcsIDAuNDIzOTg2LCAwLjU4MzQyMSwgMC43MjMzMzQsIDAuOTIyOTk0IiwgXAotICAgICAgICAgICIwLjA1NTE2NSwgMC4xOTU2MDUsIDAuMzM1Mzg0LCAwLjQzNTQwMiwgMC41OTUwNjgsIDAuNzM0NzM2LCAwLjkzNDc2NCIsIFwKLSAgICAgICAgICAiMC4wNjYzOTgsIDAuMjA2NzA1LCAwLjM0NjU0LCAwLjQ0NjU2MywgMC42MDYyNDIsIDAuNzQ1NDU3LCAwLjk0NTQyMSIsIFwKLSAgICAgICAgICAiMC4wNzU5OTMsIDAuMjE4MjMyLCAwLjM1ODA3MSwgMC40NTc5NDQsIDAuNjE3NzA2LCAwLjc1NzQzNywgMC45NTcwMzQiLCBcCi0gICAgICAgICAgIjAuMDg4NzQsIDAuMjM2NzYsIDAuMzc2NjE2LCAwLjQ3NjQxOSwgMC42MzYxNTgsIDAuNzc2MjE3LCAwLjk3NTUxOSIsIFwKLSAgICAgICAgICAiMC4wOTgzMzksIDAuMjUyOTM4LCAwLjM5Mjc2NiwgMC40OTI1NTUsIDAuNjUyNTAzLCAwLjc5MjIyNCwgMC45OTE5MTMiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjQ1MjksIDAuMzQ4ODE1LCAwLjYzMzI0MiwgMC44MzYyNTUsIDEuMTYxMzYsIDEuNDQ3OTksIDEuODUxNTIiLCBcCi0gICAgICAgICAgIjAuMDY1MjAxLCAwLjM0ODgwMywgMC42MzI5ODksIDAuODM2MzMzLCAxLjE2MDgsIDEuNDQ0NjksIDEuODUxMjYiLCBcCi0gICAgICAgICAgIjAuMDcwNjksIDAuMzQ4ODcyLCAwLjYzMzEzOSwgMC44MzYwMSwgMS4xNjA4NCwgMS40NDc5MywgMS44NTIwOCIsIFwKLSAgICAgICAgICAiMC4wNzg2NzMsIDAuMzQ4OTY0LCAwLjYzMjkwOCwgMC44MzYwODYsIDEuMTYxNzEsIDEuNDQ3MzYsIDEuODU1MyIsIFwKLSAgICAgICAgICAiMC4wODc0NDQsIDAuMzUwOTQ4LCAwLjYzMzE1OCwgMC44MzYxMzIsIDEuMTYwODIsIDEuNDQ1NjMsIDEuODU1NDIiLCBcCi0gICAgICAgICAgIjAuMTAyMDkxLCAwLjM1Njc4MywgMC42MzM3NDcsIDAuODM2MzA3LCAxLjE2MjU4LCAxLjQ0NDcxLCAxLjg1MjQ1IiwgXAotICAgICAgICAgICIwLjExMzYyNywgMC4zNjM4MjksIDAuNjM2MzAxLCAwLjgzNjMyNiwgMS4xNjA3MSwgMS40NDY2OCwgMS44NTEzMyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzMjI5MiwgMC4xNjY5NjUsIDAuMzAxNDE3LCAwLjM5NzQzLCAwLjU1MTAyMywgMC42ODU0OTIsIDAuODc3NDEzIiwgXAotICAgICAgICAgICIwLjA0MTI4NywgMC4xNzYzNTQsIDAuMzEwODU4LCAwLjQwNjkyLCAwLjU2MDU0OCwgMC42OTQ5MDMsIDAuODg2OTQiLCBcCi0gICAgICAgICAgIjAuMDUyOTI5LCAwLjE4Nzg3OCwgMC4zMjIzNzcsIDAuNDE4NDEsIDAuNTcyMDg2LCAwLjcwNjUzNywgMC44OTg1MTciLCBcCi0gICAgICAgICAgIjAuMDY0MTUyLCAwLjE5OTY5MywgMC4zMzQzMjUsIDAuNDMwMzg2LCAwLjU4NDA2LCAwLjcxODQ1OCwgMC45MTA0MjEiLCBcCi0gICAgICAgICAgIjAuMDczNTQ4LCAwLjIxMTA4NiwgMC4zNDU2MTcsIDAuNDQxNjkzLCAwLjU5NTM5NCwgMC43Mjk4MjgsIDAuOTIxNzk1IiwgXAotICAgICAgICAgICIwLjA4NjExNSwgMC4yMjk3NzYsIDAuMzY0MzQyLCAwLjQ2MDQ0OSwgMC42MTQwNzQsIDAuNzQ4NDgsIDAuOTQwNDc1IiwgXAotICAgICAgICAgICIwLjA5NTY4MSwgMC4yNDYzOTUsIDAuMzgwODIyLCAwLjQ3Njc4OSwgMC42MzA0NDMsIDAuNzY0ODU2LCAwLjk1NjgxMiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2MDUwNywgMC4zMjU3MjgsIDAuNTkxMjQ5LCAwLjc4MDc4MSwgMS4wODQ0MiwgMS4zNTQyMSwgMS43Mjk2OCIsIFwKLSAgICAgICAgICAiMC4wNjE1NjIsIDAuMzI1NjI4LCAwLjU5MTIxNCwgMC43ODA2MTQsIDEuMDg1OTcsIDEuMzQ5NTgsIDEuNzMwNjUiLCBcCi0gICAgICAgICAgIjAuMDY3NDg4LCAwLjMyNTYzNSwgMC41OTEwNTEsIDAuNzgwNjM2LCAxLjA4NDQ0LCAxLjM1MzA0LCAxLjcyOTU1IiwgXAotICAgICAgICAgICIwLjA3NTQ1NiwgMC4zMjU5MjUsIDAuNTkxMjE1LCAwLjc4MTMwNCwgMS4wODYxOCwgMS4zNTAwNSwgMS43Mjk3NiIsIFwKLSAgICAgICAgICAiMC4wODQ3MjMsIDAuMzI4MDcyLCAwLjU5MTA4NiwgMC43ODA2MzEsIDEuMDg2OTYsIDEuMzQ5OTEsIDEuNzI5MzgiLCBcCi0gICAgICAgICAgIjAuMDk5ODAyLCAwLjMzNDE0NiwgMC41OTIwMjMsIDAuNzgwNjg2LCAxLjA4NDM4LCAxLjM1LCAxLjczMDEzIiwgXAotICAgICAgICAgICIwLjExMjEwMiwgMC4zNDE1NjIsIDAuNTk1MTc3LCAwLjc4MTUwMiwgMS4wODYwNSwgMS4zNDk5MSwgMS43Mjg5NiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMzExMSwgMC4wMTMxMTksIDAuMDEzMTE5LCAwLjAxMzExOCwgMC4wMTMxMiwgMC4wMTMxMTgsIDAuMDEzMTE3IiwgXAotICAgICAgICAgICIwLjAxMzA0MywgMC4wMTMwODksIDAuMDEzMDk0LCAwLjAxMzA5OCwgMC4wMTMwOTYsIDAuMDEzMDk3LCAwLjAxMzA5OCIsIFwKLSAgICAgICAgICAiMC4wMTMwMDEsIDAuMDEzMDczLCAwLjAxMzA4NCwgMC4wMTMwOTEsIDAuMDEzMDksIDAuMDEzMDkxLCAwLjAxMzA5OCIsIFwKLSAgICAgICAgICAiMC4wMTI5NzYsIDAuMDEzMDQ5LCAwLjAxMzA3OCwgMC4wMTMwODEsIDAuMDEzMDg2LCAwLjAxMzA4NywgMC4wMTMwOSIsIFwKLSAgICAgICAgICAiMC4wMTI5NjYsIDAuMDEzMDQ5LCAwLjAxMzA2NSwgMC4wMTMwNzIsIDAuMDEzMDc2LCAwLjAxMzA3NywgMC4wMTMwODIiLCBcCi0gICAgICAgICAgIjAuMDEyOTQ1LCAwLjAxMzAzNCwgMC4wMTMwNiwgMC4wMTMwNjcsIDAuMDEzMDczLCAwLjAxMzA3OCwgMC4wMTMwODEiLCBcCi0gICAgICAgICAgIjAuMDEyOTU2LCAwLjAxMzAyOSwgMC4wMTMwNTQsIDAuMDEzMDY0LCAwLjAxMzA3LCAwLjAxMzA3NiwgMC4wMTMwNzkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzc0MSwgMC4wMDM3NTEsIDAuMDAzNzUxLCAwLjAwMzc1LCAwLjAwMzc1MSwgMC4wMDM3NTEsIDAuMDAzNzUiLCBcCi0gICAgICAgICAgIjAuMDAzNjA5LCAwLjAwMzY4NSwgMC4wMDM2OTcsIDAuMDAzNywgMC4wMDM3MDIsIDAuMDAzNzA3LCAwLjAwMzcwNCIsIFwKLSAgICAgICAgICAiMC4wMDM1MjUsIDAuMDAzNjQ2LCAwLjAwMzY3LCAwLjAwMzY3OSwgMC4wMDM2ODQsIDAuMDAzNjg4LCAwLjAwMzY5IiwgXAotICAgICAgICAgICIwLjAwMzQ4MiwgMC4wMDM2MTksIDAuMDAzNjUyLCAwLjAwMzY2MiwgMC4wMDM2NzIsIDAuMDAzNjc4LCAwLjAwMzY4MiIsIFwKLSAgICAgICAgICAiMC4wMDM0NjEsIDAuMDAzNTk4LCAwLjAwMzYzNywgMC4wMDM2NTEsIDAuMDAzNjYzLCAwLjAwMzY2OSwgMC4wMDM2NzYiLCBcCi0gICAgICAgICAgIjAuMDAzNDU4LCAwLjAwMzU3MiwgMC4wMDM2MTYsIDAuMDAzNjMzLCAwLjAwMzY0OSwgMC4wMDM2NTcsIDAuMDAzNjY1IiwgXAotICAgICAgICAgICIwLjAwMzQ3NSwgMC4wMDM1NjEsIDAuMDAzNjA0LCAwLjAwMzYyMSwgMC4wMDM2NCwgMC4wMDM2NSwgMC4wMDM2NTciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTE1NjYsIDAuMDExNTk5LCAwLjAxMTYwMSwgMC4wMTE2MDMsIDAuMDExNjAzLCAwLjAxMTYxLCAwLjAxMTYwMyIsIFwKLSAgICAgICAgICAiMC4wMTE0NjgsIDAuMDExNTg5LCAwLjAxMTYwNSwgMC4wMTE2MTEsIDAuMDExNjE0LCAwLjAxMTYxNSwgMC4wMTE2MTciLCBcCi0gICAgICAgICAgIjAuMDExMzg2LCAwLjAxMTU1NiwgMC4wMTE1ODYsIDAuMDExNTk2LCAwLjAxMTYsIDAuMDExNjA4LCAwLjAxMTYxMiIsIFwKLSAgICAgICAgICAiMC4wMTEzNCwgMC4wMTE1MTcsIDAuMDExNTY5LCAwLjAxMTU4MSwgMC4wMTE1OTksIDAuMDExNiwgMC4wMTE2MDEiLCBcCi0gICAgICAgICAgIjAuMDExMzE0LCAwLjAxMTUwMSwgMC4wMTE1NSwgMC4wMTE1NjcsIDAuMDExNTgzLCAwLjAxMTU4NywgMC4wMTE1OTQiLCBcCi0gICAgICAgICAgIjAuMDExMjkzLCAwLjAxMTQ2OSwgMC4wMTE1MjgsIDAuMDExNTQ3LCAwLjAxMTU2NywgMC4wMTE1NzksIDAuMDExNTg3IiwgXAotICAgICAgICAgICIwLjAxMTI4OSwgMC4wMTE0NDksIDAuMDExNTExLCAwLjAxMTUzNSwgMC4wMTE1NTUsIDAuMDExNTcsIDAuMDExNTc5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDM3MzQsIDAuMDAzNzQ3LCAwLjAwMzc0NywgMC4wMDM3NDksIDAuMDAzNzUsIDAuMDAzNzQ4LCAwLjAwMzc0NyIsIFwKLSAgICAgICAgICAiMC4wMDM1ODEsIDAuMDAzNjc0LCAwLjAwMzY4OCwgMC4wMDM2OTMsIDAuMDAzNjk0LCAwLjAwMzcwMSwgMC4wMDM2OTkiLCBcCi0gICAgICAgICAgIjAuMDAzNTIsIDAuMDAzNjM5LCAwLjAwMzY2MywgMC4wMDM2NzEsIDAuMDAzNjc4LCAwLjAwMzY4MiwgMC4wMDM2ODUiLCBcCi0gICAgICAgICAgIjAuMDAzNTAxLCAwLjAwMzYxMSwgMC4wMDM2NDQsIDAuMDAzNjU2LCAwLjAwMzY2NiwgMC4wMDM2NzIsIDAuMDAzNjc2IiwgXAotICAgICAgICAgICIwLjAwMzU0MiwgMC4wMDM2MDYsIDAuMDAzNjM5LCAwLjAwMzY1LCAwLjAwMzY2MSwgMC4wMDM2NjcsIDAuMDAzNjcyIiwgXAotICAgICAgICAgICIwLjAwMzYyMSwgMC4wMDM2MDksIDAuMDAzNjM1LCAwLjAwMzY0NSwgMC4wMDM2NTUsIDAuMDAzNjYzLCAwLjAwMzY2OCIsIFwKLSAgICAgICAgICAiMC4wMDM3MTcsIDAuMDAzNjI1LCAwLjAwMzY0MSwgMC4wMDM2NSwgMC4wMDM2NTcsIDAuMDAzNjYzLCAwLjAwMzY2OCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwOTQ4LCAwLjAwOTUsIDAuMDA5NTAxLCAwLjAwOTUwMSwgMC4wMDk1MDMsIDAuMDA5NTAxLCAwLjAwOTQ5OCIsIFwKLSAgICAgICAgICAiMC4wMDkzNzUsIDAuMDA5NDU4LCAwLjAwOTQ2OSwgMC4wMDk0NzEsIDAuMDA5NDc0LCAwLjAwOTQ3NiwgMC4wMDk0NzUiLCBcCi0gICAgICAgICAgIjAuMDA5MzU0LCAwLjAwOTQ0MSwgMC4wMDk0NTgsIDAuMDA5NDYyLCAwLjAwOTQ2OCwgMC4wMDk0NjgsIDAuMDA5NDciLCBcCi0gICAgICAgICAgIjAuMDA5MzYyLCAwLjAwOTQyOCwgMC4wMDk0NDgsIDAuMDA5NDU0LCAwLjAwOTQ2LCAwLjAwOTQ2MywgMC4wMDk0NjMiLCBcCi0gICAgICAgICAgIjAuMDA5MzgzLCAwLjAwOTQyMSwgMC4wMDk0NDEsIDAuMDA5NDUsIDAuMDA5NDU1LCAwLjAwOTQ1NywgMC4wMDk0NiIsIFwKLSAgICAgICAgICAiMC4wMDk0NzYsIDAuMDA5NDI5LCAwLjAwOTQ0MywgMC4wMDk0NDcsIDAuMDA5NDUyLCAwLjAwOTQ1OCwgMC4wMDk0NTgiLCBcCi0gICAgICAgICAgIjAuMDA5NTcyLCAwLjAwOTQ0OCwgMC4wMDk0NSwgMC4wMDk0NTMsIDAuMDA5NDU5LCAwLjAwOTQ1OCwgMC4wMDk0NTkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDk3NCwgMC4wMDEwMzQsIDAuMDAxMDQsIDAuMDAxMDQyLCAwLjAwMTA0NCwgMC4wMDEwNDUsIDAuMDAxMDQ1IiwgXAotICAgICAgICAgICIwLjAwMDg0MiwgMC4wMDEwNTcsIDAuMDAxMDg2LCAwLjAwMTA5NSwgMC4wMDExMDIsIDAuMDAxMTA2LCAwLjAwMTExIiwgXAotICAgICAgICAgICIwLjAwMDcxNCwgMC4wMDEwMTQsIDAuMDAxMDY1LCAwLjAwMTA4MiwgMC4wMDEwOTYsIDAuMDAxMTA0LCAwLjAwMTExMSIsIFwKLSAgICAgICAgICAiMC4wMDA2NDYsIDAuMDAwOTcxLCAwLjAwMTAzOSwgMC4wMDEwNjIsIDAuMDAxMDgzLCAwLjAwMTA5NCwgMC4wMDExMDQiLCBcCi0gICAgICAgICAgIjAuMDAwNjE1LCAwLjAwMDkzMywgMC4wMDEwMTUsIDAuMDAxMDQyLCAwLjAwMTA2OCwgMC4wMDEwODIsIDAuMDAxMDk1IiwgXAotICAgICAgICAgICIwLjAwMDYwOSwgMC4wMDA4ODUsIDAuMDAwOTc5LCAwLjAwMTAxNiwgMC4wMDEwNDYsIDAuMDAxMDY0LCAwLjAwMTA4MSIsIFwKLSAgICAgICAgICAiMC4wMDA2MzQsIDAuMDAwODU1LCAwLjAwMDk1NSwgMC4wMDA5OTMsIDAuMDAxMDMsIDAuMDAxMDUsIDAuMDAxMDY5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA3OTMyLCAwLjAwNzk3OSwgMC4wMDc5ODUsIDAuMDA3OTg2LCAwLjAwNzk4NywgMC4wMDc5ODcsIDAuMDA3OTg2IiwgXAotICAgICAgICAgICIwLjAwNzc5NywgMC4wMDc5NTcsIDAuMDA3OTgsIDAuMDA3OTg2LCAwLjAwNzk5MiwgMC4wMDc5OTUsIDAuMDA3OTk3IiwgXAotICAgICAgICAgICIwLjAwNzc0NCwgMC4wMDc5MjUsIDAuMDA3OTU5LCAwLjAwNzk3MSwgMC4wMDc5ODMsIDAuMDA3OTg1LCAwLjAwNzk4OCIsIFwKLSAgICAgICAgICAiMC4wMDc3MzIsIDAuMDA3OSwgMC4wMDc5NDMsIDAuMDA3OTU4LCAwLjAwNzk3MiwgMC4wMDc5NzcsIDAuMDA3OTg1IiwgXAotICAgICAgICAgICIwLjAwNzc1NiwgMC4wMDc4NzksIDAuMDA3OTI3LCAwLjAwNzk0NSwgMC4wMDc5NjIsIDAuMDA3OTY5LCAwLjAwNzk3NiIsIFwKLSAgICAgICAgICAiMC4wMDc4NSwgMC4wMDc4NjgsIDAuMDA3OTE1LCAwLjAwNzkzMiwgMC4wMDc5NSwgMC4wMDc5NiwgMC4wMDc5NjkiLCBcCi0gICAgICAgICAgIjAuMDA3OTU1LCAwLjAwNzg3MywgMC4wMDc5MTEsIDAuMDA3OTMsIDAuMDA3OTQ4LCAwLjAwNzk1NiwgMC4wMDc5NjYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDk2NiwgMC4wMDEwMzYsIDAuMDAxMDQzLCAwLjAwMTA0NSwgMC4wMDEwNDcsIDAuMDAxMDQ4LCAwLjAwMTA0OSIsIFwKLSAgICAgICAgICAiMC4wMDA4MjEsIDAuMDAxMDU2LCAwLjAwMTA4OCwgMC4wMDEwOTgsIDAuMDAxMTA2LCAwLjAwMTExMSwgMC4wMDExMTQiLCBcCi0gICAgICAgICAgIjAuMDAwNzQ4LCAwLjAwMTAxNywgMC4wMDEwNywgMC4wMDEwODcsIDAuMDAxMTAyLCAwLjAwMTEwOSwgMC4wMDExMTYiLCBcCi0gICAgICAgICAgIjAuMDAwNzAyLCAwLjAwMDk3NiwgMC4wMDEwNDQsIDAuMDAxMDY3LCAwLjAwMTA4OCwgMC4wMDEwOTksIDAuMDAxMTA5IiwgXAotICAgICAgICAgICIwLjAwMDc0NiwgMC4wMDA5NTksIDAuMDAxMDMyLCAwLjAwMTA1NywgMC4wMDEwODEsIDAuMDAxMDkzLCAwLjAwMTEwNSIsIFwKLSAgICAgICAgICAiMC4wMDA4NTYsIDAuMDAwOTM4LCAwLjAwMTAxMywgMC4wMDEwNDEsIDAuMDAxMDY4LCAwLjAwMTA4MiwgMC4wMDEwOTYiLCBcCi0gICAgICAgICAgIjAuMDAwOTg0LCAwLjAwMDkzOSwgMC4wMDEwMDYsIDAuMDAxMDM0LCAwLjAwMTA2MSwgMC4wMDEwNzcsIDAuMDAxMDkyIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogQU9JMjJYTCAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChBT0kyMlhMKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMDc4ODQ0MTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQTApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYxMTk0OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYwOTkwNDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2MTE5NDsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyMjYsIDAuMDAwMjI2LCAwLjAwMDIyNiwgMC4wMDAyMjYsIDAuMDAwMjI2LCAwLjAwMDIyNiwgMC4wMDAyMjYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyMzIsIDAuMDAwMjI3LCAwLjAwMDIyNywgMC4wMDAyMjcsIDAuMDAwMjI3LCAwLjAwMDIyNywgMC4wMDAyMjciKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEExKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2NDM5MjY7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjQwNTAzOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDY0MzkyNjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxMDQsIDAuMDAwMTAzLCAwLjAwMDEwMywgMC4wMDAxMDMsIDAuMDAwMTAzLCAwLjAwMDEwMywgMC4wMDAxMDMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyNTcsIDAuMDAwMjU3LCAwLjAwMDI1NywgMC4wMDAyNTcsIDAuMDAwMjU3LCAwLjAwMDI1NywgMC4wMDAyNTciKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2MzIxNjE7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjMyMTYxOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDYzMDkzODsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyMjcsIDAuMDAwMjI2LCAwLjAwMDIyNiwgMC4wMDAyMjYsIDAuMDAwMjI2LCAwLjAwMDIyNiwgMC4wMDAyMjYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyMzIsIDAuMDAwMjI3LCAwLjAwMDIyNywgMC4wMDAyMjcsIDAuMDAwMjI3LCAwLjAwMDIyNywgMC4wMDAyMjciKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIxKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2NTk0NDY7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjU5MTg0OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDY1OTQ0NjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxMDMsIDAuMDAwMTAzLCAwLjAwMDEwMywgMC4wMDAxMDMsIDAuMDAwMTAzLCAwLjAwMDEwMywgMC4wMDAxMDMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyNTcsIDAuMDAwMjU3LCAwLjAwMDI1NywgMC4wMDAyNTcsIDAuMDAwMjU3LCAwLjAwMDI1NywgMC4wMDAyNTciKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4wODE1MjY1OwotICAgIGZ1bmN0aW9uIDogIighKChCMCBCMSkrKEEwIEExKSkpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTY1OTUxLCAwLjE5Mjk3NSwgMC40MzQ3ODQsIDAuODM3NjYxLCAxLjI0MDE4LCAyLjE4MDcxLCAyLjcxNzM3IiwgXAotICAgICAgICAgICIwLjE3NTczLCAwLjIwMjY0OSwgMC40NDQ1ODgsIDAuODQ3ODI5LCAxLjI1MDM0LCAyLjE5MDM0LCAyLjcyNzE0IiwgXAotICAgICAgICAgICIwLjE4NjQwOCwgMC4yMTMzNzUsIDAuNDU1MTQ1LCAwLjg1ODQwOSwgMS4yNjE1MSwgMi4yMDA0NCwgMi43Mzc4NSIsIFwKLSAgICAgICAgICAiMC4xOTY0MzUsIDAuMjIzMzUzLCAwLjQ2NTMyMSwgMC44Njg2NzUsIDEuMjcxMTQsIDIuMjExOTIsIDIuNzQ4ODciLCBcCi0gICAgICAgICAgIjAuMjA2MzExLCAwLjIzMzI1MiwgMC40NzUxNDQsIDAuODc4MDQ3LCAxLjI4MDc4LCAyLjIyMTIsIDIuNzU4NDEiLCBcCi0gICAgICAgICAgIjAuMjIyMDEzLCAwLjI0ODgzOCwgMC40OTA4MTUsIDAuODk0MSwgMS4yOTcxMywgMi4yMzczLCAyLjc3MzczIiwgXAotICAgICAgICAgICIwLjIzNTc2LCAwLjI2MjYwMSwgMC41MDQ2MzUsIDAuOTA3NzcsIDEuMzEwNTYsIDIuMjUxOTksIDIuNzg3NDYiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzA3MzAzLCAwLjM2MTg5LCAwLjg1Mjg3NCwgMS42NzA1NCwgMi40ODcyNSwgNC4zOTQ4LCA1LjQ4NjUxIiwgXAotICAgICAgICAgICIwLjMwNzMwOCwgMC4zNjE4ODcsIDAuODUyNzQ0LCAxLjY3MTQxLCAyLjQ4NzY0LCA0LjM5NTQ0LCA1LjQ4NDQzIiwgXAotICAgICAgICAgICIwLjMwNzMsIDAuMzYxOTY1LCAwLjg1MzMxLCAxLjY3MDY0LCAyLjQ4ODA5LCA0LjM5NDc5LCA1LjQ4NjExIiwgXAotICAgICAgICAgICIwLjMwNzU4NCwgMC4zNjE5NjUsIDAuODUyNjc4LCAxLjY3MTY4LCAyLjQ4ODEyLCA0LjM5NjEsIDUuNDg0NDkiLCBcCi0gICAgICAgICAgIjAuMzA4NDk3LCAwLjM2MjYyMiwgMC44NTI2NDEsIDEuNjcwNjIsIDIuNDg3OTIsIDQuMzk2NjgsIDUuNDg1MzciLCBcCi0gICAgICAgICAgIjAuMzEyMjEsIDAuMzY1MzI0LCAwLjg1MzE2MSwgMS42NzA1NywgMi40ODc0MywgNC4zOTU4MywgNS40ODYxOCIsIFwKLSAgICAgICAgICAiMC4zMTY1MjYsIDAuMzY5MTA5LCAwLjg1MzA4NSwgMS42NzA1MSwgMi40ODc0LCA0LjM5NTY2LCA1LjQ4NjczIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE1ODg4OCwgMC4xODQ0OCwgMC40MTM2ODIsIDAuNzk1MzkyLCAxLjE3Njg5LCAyLjA2Njk0LCAyLjU3NTU3IiwgXAotICAgICAgICAgICIwLjE2NzkwOCwgMC4xOTM0NzIsIDAuNDIyOTIsIDAuODA0NDY3LCAxLjE4NjM1LCAyLjA3NjU0LCAyLjU4NDYiLCBcCi0gICAgICAgICAgIjAuMTc4ODY2LCAwLjIwNDQ2NCwgMC40MzM3ODQsIDAuODE1ODU0LCAxLjE5NzAzLCAyLjA4NjY2LCAyLjU5NTc0IiwgXAotICAgICAgICAgICIwLjE4OTc1NCwgMC4yMTUzMzYsIDAuNDQ0OTM3LCAwLjgyNjk5MSwgMS4yMDg2MSwgMi4wOTg2NiwgMi42MDY2NSIsIFwKLSAgICAgICAgICAiMC4yMDA3NzMsIDAuMjI2MjMyLCAwLjQ1NTc3NSwgMC44Mzc0MTksIDEuMjE4OTUsIDIuMTA5MzMsIDIuNjE3ODEiLCBcCi0gICAgICAgICAgIjAuMjE4MTExLCAwLjI0MzQ5NywgMC40NzM0OTgsIDAuODU1Mzg0LCAxLjIzNjc4LCAyLjEyNjMsIDIuNjM1NiIsIFwKLSAgICAgICAgICAiMC4yMzMyNzgsIDAuMjU5MDIyLCAwLjQ4OTAzMiwgMC44NzA2MDksIDEuMjUyMjQsIDIuMTQyMjMsIDIuNjUwNDUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjkxODI0LCAwLjM0MTk0NCwgMC43OTMyNjgsIDEuNTQ0NjcsIDIuMjk2NDgsIDQuMDUxMDMsIDUuMDUyMTQiLCBcCi0gICAgICAgICAgIjAuMjkxODQ4LCAwLjM0MTk4OSwgMC43OTMyNSwgMS41NDQ2NywgMi4yOTY4MiwgNC4wNTA1OSwgNS4wNTMwNCIsIFwKLSAgICAgICAgICAiMC4yOTE4MzEsIDAuMzQxOTc1LCAwLjc5MzI3MywgMS41NDQ3OCwgMi4yOTYzNywgNC4wNDk3MiwgNS4wNTM2IiwgXAotICAgICAgICAgICIwLjI5MjI0NiwgMC4zNDIxMTYsIDAuNzkzMzI0LCAxLjU0NDc4LCAyLjI5NjU5LCA0LjA0OTk1LCA1LjA1NTM0IiwgXAotICAgICAgICAgICIwLjI5Mzc0OCwgMC4zNDMyMjksIDAuNzkzMzMxLCAxLjU0NDUzLCAyLjI5NjExLCA0LjA1Mjk0LCA1LjA1MzA0IiwgXAotICAgICAgICAgICIwLjI5ODQ0LCAwLjM0NjY5NywgMC43OTMyOTksIDEuNTQ0OTIsIDIuMjk2MzksIDQuMDUxNjcsIDUuMDUzMDgiLCBcCi0gICAgICAgICAgIjAuMzAzNzU2LCAwLjM1MTYzNCwgMC43OTM0OTksIDEuNTQ0OTUsIDIuMjk2NzcsIDQuMDUwNTksIDUuMDU0OCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTYyNzMsIDAuMTg5NjA0LCAwLjQzMTYxOCwgMC44MzQ1MTUsIDEuMjM3MzMsIDIuMTc3MzcsIDIuNzEzNzIiLCBcCi0gICAgICAgICAgIjAuMTcyNDksIDAuMTk5MzYyLCAwLjQ0MTIzMSwgMC44NDQzMTEsIDEuMjQ3NDQsIDIuMTg4MjgsIDIuNzIzODYiLCBcCi0gICAgICAgICAgIjAuMTgzMTk0LCAwLjIxMDExOSwgMC40NTE5NTgsIDAuODU1MjA2LCAxLjI1NzU4LCAyLjE5NzYsIDIuNzM1MDgiLCBcCi0gICAgICAgICAgIjAuMTkzMjIsIDAuMjIwMDgzLCAwLjQ2MTk5MiwgMC44NjQ4MDUsIDEuMjY3NTksIDIuMjA3MDcsIDIuNzQ0NjIiLCBcCi0gICAgICAgICAgIjAuMjAzMDIxLCAwLjIyOTkzNywgMC40NzIxNDksIDAuODc1MTc1LCAxLjI3ODE2LCAyLjIxNzk0LCAyLjc1NDQiLCBcCi0gICAgICAgICAgIjAuMjE4NjgxLCAwLjI0NTQ3MSwgMC40ODc3LCAwLjg5MDgyMiwgMS4yOTM4OCwgMi4yMzM5NSwgMi43NzA0MSIsIFwKLSAgICAgICAgICAiMC4yMzIzNzMsIDAuMjU5MjEsIDAuNTAxMzEyLCAwLjkwNDQ2LCAxLjMwNzI3LCAyLjI0ODY3LCAyLjc4NDEzIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMwMzI2NCwgMC4zNTc3ODMsIDAuODQ4NDk3LCAxLjY2Njg1LCAyLjQ4MzA5LCA0LjM5MDM5LCA1LjQ4MTg5IiwgXAotICAgICAgICAgICIwLjMwMzI5OCwgMC4zNTc3ODMsIDAuODQ4NTc3LCAxLjY2NTk4LCAyLjQ4Mzg1LCA0LjM5MTUsIDUuNDgwODMiLCBcCi0gICAgICAgICAgIjAuMzAzMjY0LCAwLjM1NzgzMywgMC44NDkyLCAxLjY2NjcyLCAyLjQ4Mzk0LCA0LjM5MiwgNS40ODAzOSIsIFwKLSAgICAgICAgICAiMC4zMDM0NzgsIDAuMzU3OTI1LCAwLjg0OTA5OCwgMS42NjYwNSwgMi40ODM4LCA0LjM5MDAyLCA1LjQ4MTc4IiwgXAotICAgICAgICAgICIwLjMwNDUxMiwgMC4zNTg0NTEsIDAuODQ4OTE3LCAxLjY2NTkyLCAyLjQ4MzM3LCA0LjM5MDM2LCA1LjQ4Mjg2IiwgXAotICAgICAgICAgICIwLjMwODIxNiwgMC4zNjE0LCAwLjg0ODUwNiwgMS42NjU5OCwgMi40ODMxLCA0LjM5MTIyLCA1LjQ4MTUiLCBcCi0gICAgICAgICAgIjAuMzEyNzUsIDAuMzY1MTk3LCAwLjg0ODg1LCAxLjY2NjE2LCAyLjQ4Mjk2LCA0LjM5MTA3LCA1LjQ4MjA4Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE1NjQyOSwgMC4xODE5NjMsIDAuNDExMjkyLCAwLjc5MzA0NiwgMS4xNzQzNiwgMi4wNjQzOCwgMi41NzMzMyIsIFwKLSAgICAgICAgICAiMC4xNjU1MTgsIDAuMTkxMDM4LCAwLjQyMDMyMSwgMC44MDE5MDcsIDEuMTgzMTgsIDIuMDcyOTYsIDIuNTgyNDciLCBcCi0gICAgICAgICAgIjAuMTc3Mjg0LCAwLjIwMjg1NiwgMC40MzIxMDgsIDAuODEzOTAxLCAxLjE5NTE5LCAyLjA4NTQsIDIuNTkzOTciLCBcCi0gICAgICAgICAgIjAuMTg4Njk4LCAwLjIxNDI2MSwgMC40NDM2MDIsIDAuODI1MTg2LCAxLjIwNjU4LCAyLjA5NjE4LCAyLjYwNTQ4IiwgXAotICAgICAgICAgICIwLjIwMDM2MywgMC4yMjU4OTgsIDAuNDU1MjMsIDAuODM2ODY3LCAxLjIxODM1LCAyLjEwOTE0LCAyLjYxNzE5IiwgXAotICAgICAgICAgICIwLjIxOTEyNywgMC4yNDQ3MjksIDAuNDc0MDAxLCAwLjg1NTY3NSwgMS4yMzY4OCwgMi4xMjc3OSwgMi42MzUyMyIsIFwKLSAgICAgICAgICAiMC4yMzU4MzcsIDAuMjYxMTQ3LCAwLjQ5MDM2OSwgMC44NzIyNSwgMS4yNTM4NCwgMi4xNDMxLCAyLjY1MjA0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI5MTc4NCwgMC4zNDE5MDYsIDAuNzkzMzM3LCAxLjU0NDY2LCAyLjI5NjM4LCA0LjA1MDk3LCA1LjA1NDA2IiwgXAotICAgICAgICAgICIwLjI5MTc3MywgMC4zNDE5MjUsIDAuNzkzMjgzLCAxLjU0NDgsIDIuMjk2NTIsIDQuMDQ5ODksIDUuMDUzNTIiLCBcCi0gICAgICAgICAgIjAuMjkxODMxLCAwLjM0MTk3MiwgMC43OTMzMjQsIDEuNTQ0NjEsIDIuMjk2NzcsIDQuMDUxMjksIDUuMDUyNzIiLCBcCi0gICAgICAgICAgIjAuMjkyNDc4LCAwLjM0MjEyNSwgMC43OTMwOTEsIDEuNTQ0ODcsIDIuMjk2MDQsIDQuMDUxNDgsIDUuMDUzNjMiLCBcCi0gICAgICAgICAgIjAuMjk0OTI5LCAwLjM0Mzc5LCAwLjc5MzM0NywgMS41NDQ3LCAyLjI5NjYzLCA0LjA1MTU5LCA1LjA1MyIsIFwKLSAgICAgICAgICAiMC4zMDE2NjMsIDAuMzQ5MjIzLCAwLjc5MzI0MSwgMS41NDQ3NSwgMi4yOTY3NywgNC4wNTA3MywgNS4wNTQzIiwgXAotICAgICAgICAgICIwLjMwOTYwOCwgMC4zNTYwNTEsIDAuNzkzODc5LCAxLjU0NTA4LCAyLjI5NjMzLCA0LjA1MDE4LCA1LjA1MjE4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNTUyMDEsIDAuMTgyMTE1LCAwLjQyMzg4NSwgMC44MjcxMzEsIDEuMjMwMTIsIDIuMTcwNjQsIDIuNzA2NjgiLCBcCi0gICAgICAgICAgIjAuMTY0MTU2LCAwLjE5MTEwMSwgMC40MzI4NzUsIDAuODM1ODkzLCAxLjIzODI5LCAyLjE3ODgyLCAyLjcxNTQ1IiwgXAotICAgICAgICAgICIwLjE3NTQwMSwgMC4yMDIyNzksIDAuNDQ0MDc0LCAwLjg0NzY4LCAxLjI1MDA3LCAyLjE5MDg1LCAyLjcyNzc1IiwgXAotICAgICAgICAgICIwLjE4Njc2NCwgMC4yMTM2OCwgMC40NTU1NjgsIDAuODU4Mzc5LCAxLjI2MTUsIDIuMjAyNDgsIDIuNzM4MzEiLCBcCi0gICAgICAgICAgIjAuMTk4MTc4LCAwLjIyNTEzNSwgMC40NjY5OTksIDAuODY5OTEyLCAxLjI3MjU5LCAyLjIxMjg3LCAyLjc1MDI5IiwgXAotICAgICAgICAgICIwLjIxNjQ3NiwgMC4yNDMzNjksIDAuNDg1MTgzLCAwLjg4ODM0NywgMS4yOTA5MSwgMi4yMzA2MiwgMi43NjgxNyIsIFwKLSAgICAgICAgICAiMC4yMzI2MSwgMC4yNTkzNjYsIDAuNTAxMDc3LCAwLjkwNDA2MSwgMS4zMDY3NCwgMi4yNDYzNCwgMi43ODM1OCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMDczNTUsIDAuMzYxOTE5LCAwLjg1Mjc1NCwgMS42NzAzNywgMi40ODgwMiwgNC4zOTU0MSwgNS40ODU0MiIsIFwKLSAgICAgICAgICAiMC4zMDcyOTgsIDAuMzYxODkxLCAwLjg1MjY2NSwgMS42NzA2NCwgMi40ODc5MywgNC4zOTU0NCwgNS40ODY5NSIsIFwKLSAgICAgICAgICAiMC4zMDcyMDQsIDAuMzYxOTU1LCAwLjg1MzA0MywgMS42NzA1NSwgMi40ODgwMSwgNC4zOTYzLCA1LjQ4NDA1IiwgXAotICAgICAgICAgICIwLjMwNzczNywgMC4zNjE4MjQsIDAuODUyNzMzLCAxLjY3MDYyLCAyLjQ4Nzc4LCA0LjM5NTU1LCA1LjQ4NTYyIiwgXAotICAgICAgICAgICIwLjMxMDQ3MSwgMC4zNjM2NDEsIDAuODUzMzE5LCAxLjY3MDc1LCAyLjQ4NzM2LCA0LjM5NjgxLCA1LjQ4NDc3IiwgXAotICAgICAgICAgICIwLjMxNzQzLCAwLjM2OTI0NCwgMC44NTMyNTIsIDEuNjcwMzYsIDIuNDg3NSwgNC4zOTc4NiwgNS40ODUzNiIsIFwKLSAgICAgICAgICAiMC4zMjUzODQsIDAuMzc2MDIyLCAwLjg1MzE1OCwgMS42NzA2OSwgMi40ODc0LCA0LjM5NjE0LCA1LjQ4NzU2Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE0NTMyLCAwLjE3MDc1MSwgMC4zOTk4MjUsIDAuNzgxNTMsIDEuMTYyODYsIDIuMDUyMTgsIDIuNTYwOTgiLCBcCi0gICAgICAgICAgIjAuMTU0NDk4LCAwLjE3OTk4NiwgMC40MDkxODcsIDAuNzkwODQ0LCAxLjE3MjIyLCAyLjA2MTYxLCAyLjU2OTU4IiwgXAotICAgICAgICAgICIwLjE2NTQxMywgMC4xOTA5MjQsIDAuNDIwMjI3LCAwLjgwMTk0NywgMS4xODM0MSwgMi4wNzM5OCwgMi41ODEzNyIsIFwKLSAgICAgICAgICAiMC4xNzYzNDUsIDAuMjAxOTAzLCAwLjQzMTIwOCwgMC44MTI5NTksIDEuMTk0MzksIDIuMDg0NDksIDIuNTkxOTUiLCBcCi0gICAgICAgICAgIjAuMTg3MDcxLCAwLjIxMjgwNiwgMC40NDIyMDUsIDAuODIzOTYxLCAxLjIwNTM3LCAyLjA5NDY5LCAyLjYwMzE5IiwgXAotICAgICAgICAgICIwLjIwNDQwOSwgMC4yMzAxMDQsIDAuNDU5MzY1LCAwLjg0MTcwMiwgMS4yMjMwNywgMi4xMTI1LCAyLjYyMTA5IiwgXAotICAgICAgICAgICIwLjIxOTY2NywgMC4yNDU1MDYsIDAuNDc1NDEsIDAuODU3MjIsIDEuMjM4NzIsIDIuMTI4MDIsIDIuNjM2NDgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjc4MjQyLCAwLjMyODIzMSwgMC43NzkwOTMsIDEuNTMwNzksIDIuMjgyODEsIDQuMDQ2MzksIDUuMDQwNyIsIFwKLSAgICAgICAgICAiMC4yNzgyMjUsIDAuMzI4MjQzLCAwLjc3OTA4NSwgMS41MzA2LCAyLjI4NDc5LCA0LjAzNzUyLCA1LjA0NjUxIiwgXAotICAgICAgICAgICIwLjI3ODE2OSwgMC4zMjgyMTgsIDAuNzc5MDg5LCAxLjUzMTAzLCAyLjI4Mjg4LCA0LjAzNzExLCA1LjAzNzkiLCBcCi0gICAgICAgICAgIjAuMjc4ODM4LCAwLjMyODQ5OSwgMC43NzkxNDgsIDEuNTMwOTksIDIuMjgyNzksIDQuMDM4NDQsIDUuMDQ2NyIsIFwKLSAgICAgICAgICAiMC4yODA3MTUsIDAuMzI5ODIxLCAwLjc3OTE1MywgMS41MzU0OCwgMi4yOTAyOSwgNC4wNDUyMSwgNS4wNDEzNSIsIFwKLSAgICAgICAgICAiMC4yODU2NCwgMC4zMzM4NDcsIDAuNzc4NzMsIDEuNTMwNzksIDIuMjg0ODIsIDQuMDQ1MjUsIDUuMDQyNjEiLCBcCi0gICAgICAgICAgIjAuMjkxNTU0LCAwLjMzOTEyNiwgMC43Nzk1MjUsIDEuNTMwNjYsIDIuMjkyMTEsIDQuMDQ1MzIsIDUuMDQyMzEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE1MTkxNSwgMC4xNzg3ODcsIDAuNDIwMjAyLCAwLjgyMzY0LCAxLjIyNzA2LCAyLjE2Nzk2LCAyLjcwMzc1IiwgXAotICAgICAgICAgICIwLjE2MTA2MSwgMC4xODc5OTgsIDAuNDI5OTMzLCAwLjgzMzA1OCwgMS4yMzU3LCAyLjE3NTgzLCAyLjcxMzA1IiwgXAotICAgICAgICAgICIwLjE3MjE0NCwgMC4xOTg5NzgsIDAuNDQwODA0LCAwLjg0NDMwMywgMS4yNDY3MSwgMi4xODc0MSwgMi43MjQzIiwgXAotICAgICAgICAgICIwLjE4MzQyMiwgMC4yMTAzNjksIDAuNDUyMjMxLCAwLjg1NTA0NCwgMS4yNTgwMiwgMi4xOTkyMSwgMi43MzQ4OSIsIFwKLSAgICAgICAgICAiMC4xOTQ4MSwgMC4yMjE3NjUsIDAuNDYzNjMyLCAwLjg2NjU2NiwgMS4yNjkyMywgMi4yMDk0NiwgMi43NDY4NiIsIFwKLSAgICAgICAgICAiMC4yMTMwOTQsIDAuMjM5OTU5LCAwLjQ4MTc4NSwgMC44ODUwNzcsIDEuMjg3NjIsIDIuMjI3MjEsIDIuNzY0NzIiLCBcCi0gICAgICAgICAgIjAuMjI5MTY1LCAwLjI1NjA2NCwgMC40OTc2NzYsIDAuOTAwNzAzLCAxLjMwMzM3LCAyLjI0NDc1LCAyLjc4MDQyIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMwMzMxNywgMC4zNTc4MzgsIDAuODQ4MTYzLCAxLjY2NjA5LCAyLjQ4MzY5LCA0LjM5MTUzLCA1LjQ3OTYzIiwgXAotICAgICAgICAgICIwLjMwMzI2NCwgMC4zNTc4OTIsIDAuODQ4NzU0LCAxLjY2NjE2LCAyLjQ4MzA1LCA0LjM5MDI4LCA1LjQ4MDExIiwgXAotICAgICAgICAgICIwLjMwMzIyOCwgMC4zNTc4NjgsIDAuODQ4OTkxLCAxLjY2NjgsIDIuNDgzNTgsIDQuMzkxNTQsIDUuNDc5ODUiLCBcCi0gICAgICAgICAgIjAuMzAzNzUyLCAwLjM1NzgxMywgMC44NDg0NzcsIDEuNjY2MjYsIDIuNDgzNiwgNC4zOTEwNywgNS40ODA5OSIsIFwKLSAgICAgICAgICAiMC4zMDY1ODIsIDAuMzU5Njc5LCAwLjg0ODQzOSwgMS42NjYzOCwgMi40ODI5MSwgNC4zOTIyMywgNS40ODAxOCIsIFwKLSAgICAgICAgICAiMC4zMTM2MzQsIDAuMzY1NCwgMC44NDg3NSwgMS42NjYwMSwgMi40ODMxMSwgNC4zOTMzNCwgNS40ODEwNSIsIFwKLSAgICAgICAgICAiMC4zMjE4NjQsIDAuMzcyNDUzLCAwLjg0ODkzOCwgMS42NjYzNiwgMi40ODI4OSwgNC4zOTEsIDUuNDgwNzMiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTQyNzkyLCAwLjE2ODIwMSwgMC4zOTczNjMsIDAuNzc4OTgxLCAxLjE2MDM3LCAyLjA1MDA1LCAyLjU1ODQiLCBcCi0gICAgICAgICAgIjAuMTUyMDU0LCAwLjE3NzU2OCwgMC40MDY3NTYsIDAuNzg4MzY3LCAxLjE2OTkyLCAyLjA1OTQyLCAyLjU2NzU2IiwgXAotICAgICAgICAgICIwLjE2MzYyNSwgMC4xODkwODgsIDAuNDE4MzQ2LCAwLjgwMDAxNCwgMS4xODE0MywgMi4wNzE0OSwgMi41NzkzIiwgXAotICAgICAgICAgICIwLjE3NTI2NywgMC4yMDA3NDEsIDAuNDMwMDQxLCAwLjgxMTc4MywgMS4xOTMwNywgMi4wODIzOSwgMi41OTA5MSIsIFwKLSAgICAgICAgICAiMC4xODY5NTMsIDAuMjEyNDY0LCAwLjQ0MTcyOSwgMC44MjM0OTYsIDEuMjA0OCwgMi4wOTQ1NSwgMi42MDI2OCIsIFwKLSAgICAgICAgICAiMC4yMDU2NTMsIDAuMjMxMTE4LCAwLjQ2MDM1NSwgMC44NDIxMDIsIDEuMjIzNjYsIDIuMTEzNjUsIDIuNjIwODkiLCBcCi0gICAgICAgICAgIjAuMjIyNzcyLCAwLjI0NzczNCwgMC40NzY3MTYsIDAuODU4NDQ2LCAxLjIzOTg3LCAyLjEyOTMxLCAyLjYzNzQ5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI3ODI0NCwgMC4zMjgyNDIsIDAuNzc5MTQ1LCAxLjUzMDgxLCAyLjI4MjU0LCA0LjAzODMyLCA1LjAzOTQ1IiwgXAotICAgICAgICAgICIwLjI3ODIyLCAwLjMyODI5OSwgMC43NzkxMTgsIDEuNTMwNjksIDIuMjgyODcsIDQuMDM2MjksIDUuMDQwNyIsIFwKLSAgICAgICAgICAiMC4yNzgyMjcsIDAuMzI4MjEyLCAwLjc3ODk1NiwgMS41MzA3MiwgMi4yOTQwNSwgNC4wNDY1NywgNS4wNDY0NSIsIFwKLSAgICAgICAgICAiMC4yNzkyMjIsIDAuMzI4NTkxLCAwLjc3OTE2MiwgMS41MzQ3NywgMi4yOTE1NiwgNC4wNDU4MSwgNS4wNDE1IiwgXAotICAgICAgICAgICIwLjI4MjE1NywgMC4zMzA2NzYsIDAuNzc5MDU1LCAxLjUzNDksIDIuMjg0NDUsIDQuMDM3MSwgNS4wNDEzNiIsIFwKLSAgICAgICAgICAiMC4yODk1NDUsIDAuMzM2NjEzLCAwLjc3OTA5NCwgMS41MzA3MywgMi4yOTEzNiwgNC4wMzY2OCwgNS4wNDYyOSIsIFwKLSAgICAgICAgICAiMC4yOTczOTEsIDAuMzQ0MDg0LCAwLjc3OTgzMiwgMS41MzA5NywgMi4yODI5MywgNC4wNDU3MSwgNS4wNDE1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjQ1MywgMC4wMDI0NTQsIDAuMDAyNDUzLCAwLjAwMjQ1MywgMC4wMDI0NTIsIDAuMDAyNDUxLCAwLjAwMjQ1MiIsIFwKLSAgICAgICAgICAiMC4wMDI0NDksIDAuMDAyNDUsIDAuMDAyNDUsIDAuMDAyNDUsIDAuMDAyNDUsIDAuMDAyNDQ5LCAwLjAwMjQ0OCIsIFwKLSAgICAgICAgICAiMC4wMDI0NDYsIDAuMDAyNDQ3LCAwLjAwMjQ0OSwgMC4wMDI0NSwgMC4wMDI0NDksIDAuMDAyNDQ4LCAwLjAwMjQ0NyIsIFwKLSAgICAgICAgICAiMC4wMDI0NDQsIDAuMDAyNDQ1LCAwLjAwMjQ0OCwgMC4wMDI0NDksIDAuMDAyNDQ5LCAwLjAwMjQ0OSwgMC4wMDI0NDgiLCBcCi0gICAgICAgICAgIjAuMDAyNDQzLCAwLjAwMjQ0MywgMC4wMDI0NDcsIDAuMDAyNDQ4LCAwLjAwMjQ0OSwgMC4wMDI0NDgsIDAuMDAyNDQ4IiwgXAotICAgICAgICAgICIwLjAwMjQ0MSwgMC4wMDI0NDIsIDAuMDAyNDQ2LCAwLjAwMjQ0OCwgMC4wMDI0NDgsIDAuMDAyNDQ4LCAwLjAwMjQ0NyIsIFwKLSAgICAgICAgICAiMC4wMDI0NCwgMC4wMDI0NDEsIDAuMDAyNDQ2LCAwLjAwMjQ0NywgMC4wMDI0NDgsIDAuMDAyNDQ4LCAwLjAwMjQ0NyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDYwNywgMC4wMDA2MDcsIDAuMDAwNjA4LCAwLjAwMDYwOCwgMC4wMDA2MDcsIDAuMDAwNjA2LCAwLjAwMDYwNiIsIFwKLSAgICAgICAgICAiMC4wMDA1OTcsIDAuMDAwNTk4LCAwLjAwMDYsIDAuMDAwNjAxLCAwLjAwMDYsIDAuMDAwNiwgMC4wMDA2IiwgXAotICAgICAgICAgICIwLjAwMDU5MiwgMC4wMDA1OTMsIDAuMDAwNTk3LCAwLjAwMDU5OSwgMC4wMDA1OTksIDAuMDAwNTk4LCAwLjAwMDU5OCIsIFwKLSAgICAgICAgICAiMC4wMDA1ODgsIDAuMDAwNTg5LCAwLjAwMDU5NSwgMC4wMDA1OTcsIDAuMDAwNTk4LCAwLjAwMDU5OCwgMC4wMDA1OTciLCBcCi0gICAgICAgICAgIjAuMDAwNTg0LCAwLjAwMDU4NiwgMC4wMDA1OTMsIDAuMDAwNTk2LCAwLjAwMDU5NywgMC4wMDA1OTcsIDAuMDAwNTk3IiwgXAotICAgICAgICAgICIwLjAwMDU4MSwgMC4wMDA1ODMsIDAuMDAwNTkxLCAwLjAwMDU5NSwgMC4wMDA1OTYsIDAuMDAwNTk3LCAwLjAwMDU5NyIsIFwKLSAgICAgICAgICAiMC4wMDA1OCwgMC4wMDA1ODEsIDAuMDAwNTksIDAuMDAwNTk0LCAwLjAwMDU5NSwgMC4wMDA1OTYsIDAuMDAwNTk2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjE5NywgMC4wMDIxOTcsIDAuMDAyMTk4LCAwLjAwMjE5NywgMC4wMDIxOTgsIDAuMDAyMTk3LCAwLjAwMjE5NiIsIFwKLSAgICAgICAgICAiMC4wMDIxOTUsIDAuMDAyMTk2LCAwLjAwMjE5OSwgMC4wMDIyLCAwLjAwMjIsIDAuMDAyMiwgMC4wMDIxOTkiLCBcCi0gICAgICAgICAgIjAuMDAyMTg5LCAwLjAwMjE5MSwgMC4wMDIxOTYsIDAuMDAyMTk4LCAwLjAwMjE5NywgMC4wMDIxOTgsIDAuMDAyMTk4IiwgXAotICAgICAgICAgICIwLjAwMjE4NSwgMC4wMDIxODcsIDAuMDAyMTk0LCAwLjAwMjE5NywgMC4wMDIxOTksIDAuMDAyMTk5LCAwLjAwMjE5OSIsIFwKLSAgICAgICAgICAiMC4wMDIxODEsIDAuMDAyMTgzLCAwLjAwMjE5MiwgMC4wMDIxOTcsIDAuMDAyMTk4LCAwLjAwMjE5OSwgMC4wMDIxOTgiLCBcCi0gICAgICAgICAgIjAuMDAyMTc2LCAwLjAwMjE3OCwgMC4wMDIxOSwgMC4wMDIxOTUsIDAuMDAyMTk3LCAwLjAwMjE5OCwgMC4wMDIxOTgiLCBcCi0gICAgICAgICAgIjAuMDAyMTczLCAwLjAwMjE3NSwgMC4wMDIxODcsIDAuMDAyMTkzLCAwLjAwMjE5NSwgMC4wMDIxOTcsIDAuMDAyMTk3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwNjA3LCAwLjAwMDYwNywgMC4wMDA2MDgsIDAuMDAwNjA3LCAwLjAwMDYwNywgMC4wMDA2MDYsIDAuMDAwNjA2IiwgXAotICAgICAgICAgICIwLjAwMDU5NiwgMC4wMDA1OTcsIDAuMDAwNiwgMC4wMDA2LCAwLjAwMDYsIDAuMDAwNiwgMC4wMDA2IiwgXAotICAgICAgICAgICIwLjAwMDU5MSwgMC4wMDA1OTIsIDAuMDAwNTk3LCAwLjAwMDU5OCwgMC4wMDA1OTksIDAuMDAwNTk5LCAwLjAwMDU5OSIsIFwKLSAgICAgICAgICAiMC4wMDA1ODgsIDAuMDAwNTksIDAuMDAwNTk1LCAwLjAwMDU5NywgMC4wMDA1OTgsIDAuMDAwNTk4LCAwLjAwMDU5OCIsIFwKLSAgICAgICAgICAiMC4wMDA1ODcsIDAuMDAwNTg5LCAwLjAwMDU5NCwgMC4wMDA1OTYsIDAuMDAwNTk3LCAwLjAwMDU5NywgMC4wMDA1OTciLCBcCi0gICAgICAgICAgIjAuMDAwNTg5LCAwLjAwMDU5LCAwLjAwMDU5NCwgMC4wMDA1OTYsIDAuMDAwNTk3LCAwLjAwMDU5NywgMC4wMDA1OTciLCBcCi0gICAgICAgICAgIjAuMDAwNTkzLCAwLjAwMDU5MywgMC4wMDA1OTUsIDAuMDAwNTk2LCAwLjAwMDU5NywgMC4wMDA1OTcsIDAuMDAwNTk3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTc0MSwgMC4wMDE3NDEsIDAuMDAxNzQxLCAwLjAwMTc0MSwgMC4wMDE3NCwgMC4wMDE3NCwgMC4wMDE3MzkiLCBcCi0gICAgICAgICAgIjAuMDAxNzM1LCAwLjAwMTczNSwgMC4wMDE3MzcsIDAuMDAxNzM3LCAwLjAwMTczNywgMC4wMDE3MzYsIDAuMDAxNzM2IiwgXAotICAgICAgICAgICIwLjAwMTczMiwgMC4wMDE3MzIsIDAuMDAxNzM1LCAwLjAwMTczNiwgMC4wMDE3MzYsIDAuMDAxNzM1LCAwLjAwMTczNSIsIFwKLSAgICAgICAgICAiMC4wMDE3MywgMC4wMDE3MzEsIDAuMDAxNzM0LCAwLjAwMTczNSwgMC4wMDE3MzYsIDAuMDAxNzM1LCAwLjAwMTczNSIsIFwKLSAgICAgICAgICAiMC4wMDE3MywgMC4wMDE3MzEsIDAuMDAxNzM0LCAwLjAwMTczNSwgMC4wMDE3MzUsIDAuMDAxNzM1LCAwLjAwMTczNCIsIFwKLSAgICAgICAgICAiMC4wMDE3MzMsIDAuMDAxNzMzLCAwLjAwMTczNSwgMC4wMDE3MzUsIDAuMDAxNzM1LCAwLjAwMTczNSwgMC4wMDE3MzQiLCBcCi0gICAgICAgICAgIjAuMDAxNzM3LCAwLjAwMTczNywgMC4wMDE3MzYsIDAuMDAxNzM2LCAwLjAwMTczNiwgMC4wMDE3MzQsIDAuMDAxNzM0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwMTc2LCAwLjAwMDE3NiwgMC4wMDAxNzcsIDAuMDAwMTc4LCAwLjAwMDE3OCwgMC4wMDAxNzgsIDAuMDAwMTc4IiwgXAotICAgICAgICAgICIwLjAwMDE3OSwgMC4wMDAxOCwgMC4wMDAxODUsIDAuMDAwMTg3LCAwLjAwMDE4OCwgMC4wMDAxODgsIDAuMDAwMTg4IiwgXAotICAgICAgICAgICIwLjAwMDE3MiwgMC4wMDAxNzQsIDAuMDAwMTg0LCAwLjAwMDE4NywgMC4wMDAxODgsIDAuMDAwMTksIDAuMDAwMTkiLCBcCi0gICAgICAgICAgIjAuMDAwMTY1LCAwLjAwMDE2OSwgMC4wMDAxODEsIDAuMDAwMTg2LCAwLjAwMDE4OCwgMC4wMDAxOSwgMC4wMDAxOSIsIFwKLSAgICAgICAgICAiMC4wMDAxNiwgMC4wMDAxNjQsIDAuMDAwMTc4LCAwLjAwMDE4NSwgMC4wMDAxODcsIDAuMDAwMTg5LCAwLjAwMDE5IiwgXAotICAgICAgICAgICIwLjAwMDE1MywgMC4wMDAxNTcsIDAuMDAwMTc1LCAwLjAwMDE4MywgMC4wMDAxODYsIDAuMDAwMTg5LCAwLjAwMDE4OSIsIFwKLSAgICAgICAgICAiMC4wMDAxNSwgMC4wMDAxNTQsIDAuMDAwMTcyLCAwLjAwMDE4MSwgMC4wMDAxODUsIDAuMDAwMTg4LCAwLjAwMDE4OSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIxIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDE0ODQsIDAuMDAxNDg0LCAwLjAwMTQ4NSwgMC4wMDE0ODUsIDAuMDAxNDg1LCAwLjAwMTQ4NCwgMC4wMDE0ODQiLCBcCi0gICAgICAgICAgIjAuMDAxNDc5LCAwLjAwMTQ4MSwgMC4wMDE0ODQsIDAuMDAxNDg2LCAwLjAwMTQ4NiwgMC4wMDE0ODYsIDAuMDAxNDg1IiwgXAotICAgICAgICAgICIwLjAwMTQ3NCwgMC4wMDE0NzYsIDAuMDAxNDgzLCAwLjAwMTQ4NSwgMC4wMDE0ODUsIDAuMDAxNDg2LCAwLjAwMTQ4NSIsIFwKLSAgICAgICAgICAiMC4wMDE0NzEsIDAuMDAxNDczLCAwLjAwMTQ4MSwgMC4wMDE0ODQsIDAuMDAxNDg1LCAwLjAwMTQ4NSwgMC4wMDE0ODUiLCBcCi0gICAgICAgICAgIjAuMDAxNDY4LCAwLjAwMTQ3LCAwLjAwMTQ3OSwgMC4wMDE0ODMsIDAuMDAxNDg0LCAwLjAwMTQ4NSwgMC4wMDE0ODUiLCBcCi0gICAgICAgICAgIjAuMDAxNDY4LCAwLjAwMTQ3LCAwLjAwMTQ3OCwgMC4wMDE0ODIsIDAuMDAxNDgzLCAwLjAwMTQ4NCwgMC4wMDE0ODQiLCBcCi0gICAgICAgICAgIjAuMDAxNDcxLCAwLjAwMTQ3MiwgMC4wMDE0NzgsIDAuMDAxNDgyLCAwLjAwMTQ4MywgMC4wMDE0ODQsIDAuMDAxNDg0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwMTc2LCAwLjAwMDE3NiwgMC4wMDAxNzcsIDAuMDAwMTc4LCAwLjAwMDE3OCwgMC4wMDAxNzgsIDAuMDAwMTc4IiwgXAotICAgICAgICAgICIwLjAwMDE3OCwgMC4wMDAxOCwgMC4wMDAxODUsIDAuMDAwMTg3LCAwLjAwMDE4OCwgMC4wMDAxODksIDAuMDAwMTg5IiwgXAotICAgICAgICAgICIwLjAwMDE3MiwgMC4wMDAxNzUsIDAuMDAwMTg0LCAwLjAwMDE4OCwgMC4wMDAxODksIDAuMDAwMTksIDAuMDAwMTkiLCBcCi0gICAgICAgICAgIjAuMDAwMTY3LCAwLjAwMDE3LCAwLjAwMDE4MiwgMC4wMDAxODcsIDAuMDAwMTg5LCAwLjAwMDE5LCAwLjAwMDE5MSIsIFwKLSAgICAgICAgICAiMC4wMDAxNjQsIDAuMDAwMTY3LCAwLjAwMDE4LCAwLjAwMDE4NiwgMC4wMDAxODgsIDAuMDAwMTksIDAuMDAwMTkxIiwgXAotICAgICAgICAgICIwLjAwMDE2MywgMC4wMDAxNjYsIDAuMDAwMTc5LCAwLjAwMDE4NSwgMC4wMDAxODcsIDAuMDAwMTksIDAuMDAwMTkiLCBcCi0gICAgICAgICAgIjAuMDAwMTY3LCAwLjAwMDE2NywgMC4wMDAxNzgsIDAuMDAwMTg1LCAwLjAwMDE4NywgMC4wMDAxOSwgMC4wMDAxOSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogQU9JMkJCMVgyICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoQU9JMkJCMVgyKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMTkwOTU1OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBME4pICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYzNjY0NDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MzM4ODM7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjM2NjQ0OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDc4MywgMC4wMDA3NjUsIDAuMDAwNzU5LCAwLjAwMDc2MywgMC4wMDA3NjcsIDAuMDAwNzgyLCAwLjAwMDc5OSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjg4OCwgMC4wMDI4NzIsIDAuMDAyODY0LCAwLjAwMjg2MiwgMC4wMDI4NjIsIDAuMDAyODY1LCAwLjAwMjg3MSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQTFOKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2NDI7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjQxOTI2OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDY0MjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA1OTQsIDAuMDAwNTczLCAwLjAwMDU2NiwgMC4wMDA1NTcsIDAuMDAwNTYyLCAwLjAwMDU3MywgMC4wMDA1OTMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDI2OTMsIDAuMDAyNjczLCAwLjAwMjY2NywgMC4wMDI2NywgMC4wMDI2OCwgMC4wMDI3LCAwLjAwMjcyMSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQjApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTc4MTgyOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTc3MTM2OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTc4MTgyOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDc1NSwgMC4wMDA3OTQsIDAuMDAwNzk4LCAwLjAwMDgwMSwgMC4wMDA4MDIsIDAuMDAwODA0LCAwLjAwMDgwNiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDgzOSwgMC4wMDA4NCwgMC4wMDA4NDEsIDAuMDAwODQxLCAwLjAwMDg0MSwgMC4wMDA4NDEsIDAuMDAwODQxIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMjc3NzI5OwotICAgIGZ1bmN0aW9uIDogIighKCghKEEwTitBMU4pKStCMCkpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBME4iOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3NzgzNSwgMC4yNzIwNSwgMC40MjcxODYsIDAuNjIxMDM4LCAwLjgxNDg3NywgMS4wMDg3NCwgMS4yMDI1MyIsIFwKLSAgICAgICAgICAiMC4wODc5ODcsIDAuMjgyMjUxLCAwLjQzNzM3NSwgMC42MzEyNjIsIDAuODI1MDk3LCAxLjAxOSwgMS4yMTI3NyIsIFwKLSAgICAgICAgICAiMC4xMDA2MDcsIDAuMjk0OTAzLCAwLjQ1MDAzOCwgMC42NDM5MjUsIDAuODM3NzY4LCAxLjAzMTY2LCAxLjIyNTQzIiwgXAotICAgICAgICAgICIwLjExMjUyOSwgMC4zMDY4NTMsIDAuNDYxOTk1LCAwLjY1NTg4NSwgMC44NDk3MzIsIDEuMDQzNjgsIDEuMjM3NCIsIFwKLSAgICAgICAgICAiMC4xMjI2OTUsIDAuMzE2OTY4LCAwLjQ3MjA5OCwgMC42NjU5NywgMC44NTk4MjIsIDEuMDUzNjgsIDEuMjQ3NTIiLCBcCi0gICAgICAgICAgIjAuMTM3MjYzLCAwLjMzMTQ1OCwgMC40ODY1OTMsIDAuNjgwNDQ1LCAwLjg3NDI4OSwgMS4wNjgxMiwgMS4yNjIyNiIsIFwKLSAgICAgICAgICAiMC4xNDgzNDcsIDAuMzQyNDA2LCAwLjQ5NzUzMSwgMC42OTE0MSwgMC44ODUyNDksIDEuMDc5MDcsIDEuMjcyOTEiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk1NTQzLCAwLjQ4NzY4OCwgMC44MDE2NDksIDEuMTk0MTMsIDEuNTg3NzYsIDEuOTc5NjksIDIuMzc0OCIsIFwKLSAgICAgICAgICAiMC4wOTU1NDcsIDAuNDg3NzE3LCAwLjgwMTg5NywgMS4xOTQzNCwgMS41ODY5NCwgMS45ODAxNCwgMi4zNzM5IiwgXAotICAgICAgICAgICIwLjA5NTYxNiwgMC40ODc3MTQsIDAuODAxOTIzLCAxLjE5NDIzLCAxLjU4Njg4LCAxLjk4Mzk0LCAyLjM3NDQ0IiwgXAotICAgICAgICAgICIwLjA5NTgzLCAwLjQ4NzU5OSwgMC44MDIxNDYsIDEuMTk0MTQsIDEuNTg3NzksIDEuOTgzNzksIDIuMzc0NTYiLCBcCi0gICAgICAgICAgIjAuMDk2Mzg0LCAwLjQ4ODE4OCwgMC44MDIwMTIsIDEuMTk1MTEsIDEuNTg4MTQsIDEuOTgxMzcsIDIuMzc3NDgiLCBcCi0gICAgICAgICAgIjAuMDk3MjM3LCAwLjQ4NzEzOCwgMC44MDI5NjYsIDEuMTk2NTMsIDEuNTg5OTksIDEuOTgxMDQsIDIuMzcyMzMiLCBcCi0gICAgICAgICAgIjAuMDk4NDQ3LCAwLjQ4NzQ0NSwgMC44MDI4OTQsIDEuMTk2NDgsIDEuNTkwMDksIDEuOTgzNTYsIDIuMzc3MDMiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg1MTY0LCAwLjE5MzYzOCwgMC4yNzgzMzYsIDAuMzg0MTY4LCAwLjQ5MDAwMiwgMC41OTU5NTksIDAuNzAxNjgxIiwgXAotICAgICAgICAgICIwLjA5MzcxNiwgMC4yMDIxNDksIDAuMjg2ODc0LCAwLjM5Mjc4LCAwLjQ5ODUzOCwgMC42MDQ1NjcsIDAuNzEwMTk1IiwgXAotICAgICAgICAgICIwLjEwMzU2MSwgMC4yMTE5MDcsIDAuMjk2NjA4LCAwLjQwMjQ5NSwgMC41MDgzMDMsIDAuNjE0MjA5LCAwLjcyMDAyMSIsIFwKLSAgICAgICAgICAiMC4xMTI5MTEsIDAuMjIxMzEzLCAwLjMwNjAxNCwgMC40MTE5MjIsIDAuNTE3Njk1LCAwLjYyMzY2OSwgMC43MjkzOTUiLCBcCi0gICAgICAgICAgIjAuMTIxODE5LCAwLjIzMDI3NiwgMC4zMTQ5NzksIDAuNDIwODc3LCAwLjUyNjY2OCwgMC42MzI1ODIsIDAuNzM4NDk5IiwgXAotICAgICAgICAgICIwLjEzNDgwOCwgMC4yNDM2ODEsIDAuMzI4Mzg2LCAwLjQzNDI2OSwgMC41NDAwOTcsIDAuNjQ1ODczLCAwLjc1MTczNCIsIFwKLSAgICAgICAgICAiMC4xNDQ4MjIsIDAuMjUzNzk3LCAwLjMzODQ5OSwgMC40NDQzMTYsIDAuNTUwMTk2LCAwLjY1NjEyMSwgMC43NjIwNTUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDYxMDA0LCAwLjI2NzU3MywgMC40MzczNzIsIDAuNjUwMTA0LCAwLjg2MzU0MSwgMS4wNzUxMiwgMS4yODc0NSIsIFwKLSAgICAgICAgICAiMC4wNjA4NzksIDAuMjY3NDg2LCAwLjQzNzQxOCwgMC42NDg1NjcsIDAuODYyMjA5LCAxLjA3NDk2LCAxLjI5MTIxIiwgXAotICAgICAgICAgICIwLjA2MDc2NiwgMC4yNjc0NTQsIDAuNDM3MzgyLCAwLjY0ODc2NCwgMC44NjM0NzMsIDEuMDc0MDEsIDEuMjkwNDIiLCBcCi0gICAgICAgICAgIjAuMDYxMDk5LCAwLjI2NzU5OSwgMC40MzcwNTYsIDAuNjQ4Njc2LCAwLjg2Mzk0NSwgMS4wNzUyMywgMS4yOTA2NiIsIFwKLSAgICAgICAgICAiMC4wNjE2MjgsIDAuMjY3NzU5LCAwLjQzNzQxNCwgMC42NDg2OTksIDAuODYzNTA0LCAxLjA3Mzk5LCAxLjI4ODE2IiwgXAotICAgICAgICAgICIwLjA2Mjk0NiwgMC4yNjc4ODksIDAuNDM2NzIsIDAuNjQ4NzMxLCAwLjg2MTQ3NiwgMS4wNzc1NCwgMS4yODczNSIsIFwKLSAgICAgICAgICAiMC4wNjQwNDUsIDAuMjY4MzczLCAwLjQzNzc3NiwgMC42NTA0ODQsIDAuODY0MTUyLCAxLjA3NDkzLCAxLjI4NzgzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkExTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc1MjksIDAuMjY5MzY4LCAwLjQyNDY4MywgMC42MTg1OTQsIDAuODEyNDMsIDEuMDA2NiwgMS4yMDAxNyIsIFwKLSAgICAgICAgICAiMC4wODU0OTgsIDAuMjc5NTc5LCAwLjQzNDkxMSwgMC42MjkxLCAwLjgyMjY5LCAxLjAxNzI2LCAxLjIxMDQ5IiwgXAotICAgICAgICAgICIwLjA5Nzc2OSwgMC4yOTIyMzEsIDAuNDQ3MjMzLCAwLjY0MTEzOSwgMC44MzU3NDcsIDEuMDI5NjcsIDEuMjI0MjYiLCBcCi0gICAgICAgICAgIjAuMTA5MTg4LCAwLjMwMzQ4NCwgMC40NTg2ODEsIDAuNjUyNjk0LCAwLjg0NzM2MywgMS4wNDAzMiwgMS4yMzQ2NCIsIFwKLSAgICAgICAgICAiMC4xMTkwMjUsIDAuMzEzMzIsIDAuNDY4NDcxLCAwLjY2MjQ0MiwgMC44NTYzNzEsIDEuMDUxMTYsIDEuMjQ0NDEiLCBcCi0gICAgICAgICAgIjAuMTMzMDA1LCAwLjMyNzEyNiwgMC40ODIyOTQsIDAuNjc2MjU1LCAwLjg3MDI1OSwgMS4wNjQxMSwgMS4yNTkyNSIsIFwKLSAgICAgICAgICAiMC4xNDMxOTEsIDAuMzM3Mzc5LCAwLjQ5MjY4MiwgMC42ODY2ODcsIDAuODgwNDU0LCAxLjA3NDQsIDEuMjY4MjQiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk1MjQ0LCAwLjQ4NzQyNiwgMC44MDM0MjQsIDEuMTk1MjEsIDEuNTg5NTYsIDEuOTgwMDIsIDIuMzc3MDMiLCBcCi0gICAgICAgICAgIjAuMDk1Mjk5LCAwLjQ4NzA0NiwgMC44MDMzMzksIDEuMTk0NzgsIDEuNTg5OTMsIDEuOTc5NzUsIDIuMzc2NzgiLCBcCi0gICAgICAgICAgIjAuMDk1NDM0LCAwLjQ4NzE3NiwgMC44MDMyNjgsIDEuMTk2OTksIDEuNTg2OTIsIDEuOTc5NzIsIDIuMzczNzIiLCBcCi0gICAgICAgICAgIjAuMDk1NzUsIDAuNDg4Mjk5LCAwLjgwMzMxNCwgMS4xOTQzNSwgMS41ODc3OSwgMS45ODQ4NiwgMi4zNzUxMiIsIFwKLSAgICAgICAgICAiMC4wOTYzNzQsIDAuNDg3MjQ1LCAwLjgwMzI2NiwgMS4xOTcwNiwgMS41OTA3OSwgMS45ODA1MSwgMi4zNzI4MyIsIFwKLSAgICAgICAgICAiMC4wOTczNzksIDAuNDg4NDc1LCAwLjgwMzI2LCAxLjE5NzAyLCAxLjU4ODM3LCAxLjk4NDUxLCAyLjM3Mzc3IiwgXAotICAgICAgICAgICIwLjA5ODYsIDAuNDg4NDQ0LCAwLjgwNTk4NiwgMS4xOTQ0MiwgMS41OTA2OSwgMS45ODQ0NywgMi4zNzgxMSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODE4ODMsIDAuMTkwMzc3LCAwLjI3NTA4MywgMC4zODA5OTcsIDAuNDg2NzQzLCAwLjU5Mjc3NCwgMC42OTg1OTQiLCBcCi0gICAgICAgICAgIjAuMDkwNzUsIDAuMTk5MjM1LCAwLjI4Mzk1MSwgMC4zODk4NTksIDAuNDk1NjQyLCAwLjYwMTcxNSwgMC43MDczMjUiLCBcCi0gICAgICAgICAgIjAuMTAyMDUsIDAuMjEwNDYzLCAwLjI5NTE3OCwgMC40MDEwNywgMC41MDY4NTcsIDAuNjEyODExLCAwLjcxODU3OCIsIFwKLSAgICAgICAgICAiMC4xMTMyNzcsIDAuMjIxNjksIDAuMzA2NDA4LCAwLjQxMjMwMiwgMC41MTgwOTQsIDAuNjI0MDI2LCAwLjcyOTgwNCIsIFwKLSAgICAgICAgICAiMC4xMjM3OTEsIDAuMjMyMjQ5LCAwLjMxNzAyMSwgMC40MjI4NzYsIDAuNTI4NzE2LCAwLjYzNDYzMiwgMC43NDA0ODEiLCBcCi0gICAgICAgICAgIjAuMTM4OTcyLCAwLjI0Njc0NCwgMC4zMzE0NDksIDAuNDM3MjQ5LCAwLjU0MzE1NCwgMC42NDg5MjYsIDAuNzU0Nzg4IiwgXAotICAgICAgICAgICIwLjE1MDM0OSwgMC4yNTg0MjEsIDAuMzQzMDgzLCAwLjQ0ODksIDAuNTU0NzA4LCAwLjY2MDgxMywgMC43NjY0NTgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDYwOTY3LCAwLjI2NzQ4MSwgMC40MzczNDcsIDAuNjQ4NTAyLCAwLjg2Mzg2LCAxLjA3NDk2LCAxLjI4Nzk4IiwgXAotICAgICAgICAgICIwLjA2MDgxNSwgMC4yNjc0NywgMC40MzczLCAwLjY0OTE4NSwgMC44NjM4NjcsIDEuMDc0ODQsIDEuMjkxMjIiLCBcCi0gICAgICAgICAgIjAuMDYwOCwgMC4yNjc1OTMsIDAuNDM3NDA5LCAwLjY0ODY5MywgMC44NjM2LCAxLjA3NTA5LCAxLjI5MDQ5IiwgXAotICAgICAgICAgICIwLjA2MTQ1NSwgMC4yNjc2ODksIDAuNDM3NDI1LCAwLjY0ODcwNSwgMC44NjM1MTgsIDEuMDc0OCwgMS4yOTA1NyIsIFwKLSAgICAgICAgICAiMC4wNjE5NDcsIDAuMjY3NjYxLCAwLjQzNzQzNSwgMC42NDkzNTQsIDAuODYzNDkxLCAxLjA3Mzk4LCAxLjI4ODYyIiwgXAotICAgICAgICAgICIwLjA2MzIxOCwgMC4yNjg0NDYsIDAuNDM3Nzk1LCAwLjY1MDIyMiwgMC44NjE0MjIsIDEuMDc3MDYsIDEuMjkwNTYiLCBcCi0gICAgICAgICAgIjAuMDY0ODIyLCAwLjI2ODYzMSwgMC40Mzc5ODYsIDAuNjQ5NTY3LCAwLjg2MzkzMSwgMS4wNzUxLCAxLjI4NzAyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTM5NTQsIDAuMjQ4MDYyLCAwLjQwMzEzNywgMC41OTcwMzMsIDAuNzkxNjI0LCAwLjk4NDc5OSwgMS4xNzkyNiIsIFwKLSAgICAgICAgICAiMC4wNjIwNzMsIDAuMjU2NDE3LCAwLjQxMTQ0NiwgMC42MDU2MDQsIDAuNzk5NTQ5LCAwLjk5MzI2NSwgMS4xODcxNiIsIFwKLSAgICAgICAgICAiMC4wNzE3MTcsIDAuMjY2MTA2LCAwLjQyMTUyMSwgMC42MTUyNDYsIDAuODA5MTY2LCAxLjAwMzA4LCAxLjE5NzY2IiwgXAotICAgICAgICAgICIwLjA4MTM4NiwgMC4yNzYxNjcsIDAuNDMxNTc4LCAwLjYyNTIzLCAwLjgxOTE3MSwgMS4wMTM2NSwgMS4yMDcwMiIsIFwKLSAgICAgICAgICAiMC4wOTA3NjEsIDAuMjg1OTU2LCAwLjQ0MTM2MywgMC42MzU1OTQsIDAuODI5NTcsIDEuMDIzMTQsIDEuMjE3NzQiLCBcCi0gICAgICAgICAgIjAuMTA0MTY1LCAwLjMwMTc2NiwgMC40NTY3NSwgMC42NTEyNjUsIDAuODQ1NDYxLCAxLjAzOTE0LCAxLjIzMzEiLCBcCi0gICAgICAgICAgIjAuMTE0NjcyLCAwLjMxNTc4MiwgMC40NzExOTcsIDAuNjY1NjA2LCAwLjg1OTYzOSwgMS4wNTM3OSwgMS4yNDczIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5NDc2OCwgMC40ODg0NjcsIDAuODAzMjk3LCAxLjE5NzAyLCAxLjU4Njk0LCAxLjk4NTA0LCAyLjM3MzI0IiwgXAotICAgICAgICAgICIwLjA5NDY4MSwgMC40ODc3OTEsIDAuODAzNTExLCAxLjE5NTgsIDEuNTg3MzksIDEuOTg0OCwgMi4zNzQ0NiIsIFwKLSAgICAgICAgICAiMC4wOTY4NTcsIDAuNDg3OTMzLCAwLjgwMzM0NiwgMS4xOTcwMiwgMS41OTA2OCwgMS45ODMzMiwgMi4zNzQ3OCIsIFwKLSAgICAgICAgICAiMC4xMDA2MTMsIDAuNDg3MzUyLCAwLjgwMjc0MywgMS4xOTY1NCwgMS41OTA3OCwgMS45ODA5NSwgMi4zNzcyMSIsIFwKLSAgICAgICAgICAiMC4xMDU1MjYsIDAuNDg4NjU3LCAwLjgwMzQxNiwgMS4xOTQzNSwgMS41OTA4OCwgMS45ODM5LCAyLjM3Mjc2IiwgXAotICAgICAgICAgICIwLjExNTEwOSwgMC40OTA3MDcsIDAuODAyNjg2LCAxLjE5NTEsIDEuNTkwMDcsIDEuOTg0MDgsIDIuMzc4MjciLCBcCi0gICAgICAgICAgIjAuMTI0NDU2LCAwLjQ5Mzg5MSwgMC44MDM3NjcsIDEuMTk2NzYsIDEuNTkwNTgsIDEuOTg0MTYsIDIuMzc4MjgiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDI5OTc0LCAwLjEzMzMwNywgMC4yMTU5MTQsIDAuMzE4OTk5LCAwLjQyMjA4MywgMC41MjUzMDgsIDAuNjI4NDM3IiwgXAotICAgICAgICAgICIwLjA0MDE4NiwgMC4xNDMxMTUsIDAuMjI1NjY2LCAwLjMyODczLCAwLjQzMTgxOSwgMC41MzQ4OCwgMC42MzgwMjUiLCBcCi0gICAgICAgICAgIjAuMDUzMjI4LCAwLjE1NjUzNywgMC4yMzkwOTQsIDAuMzQyMDQ3LCAwLjQ0NTM0OCwgMC41NDgyMTQsIDAuNjUxNjA2IiwgXAotICAgICAgICAgICIwLjA2NTQ2NSwgMC4xNjkwNTksIDAuMjUxNTQ3LCAwLjM1NDUzMiwgMC40NTc0NjgsIDAuNTYwNTc5LCAwLjY2MzgzMSIsIFwKLSAgICAgICAgICAiMC4wNzYwNzQsIDAuMTgxNTQ4LCAwLjI2NDMxNiwgMC4zNjc0NjEsIDAuNDcwMzI0LCAwLjU3MzQ3NywgMC42NzY1OTMiLCBcCi0gICAgICAgICAgIjAuMDkwNzEsIDAuMjAyNzg5LCAwLjI4NDUwOCwgMC4zODgwMzcsIDAuNDkwODc5LCAwLjU5Mzg4NiwgMC42OTY5NjEiLCBcCi0gICAgICAgICAgIjAuMTAyMTQ2LCAwLjIyMTE1LCAwLjMwMjUyMSwgMC40MDYxNDEsIDAuNTA5MDcyLCAwLjYxMTkyLCAwLjcxNDg0NSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTA4NDMsIDAuMjU3OTY3LCAwLjQyMzc4NywgMC42MzA5NywgMC44MzgxMjIsIDEuMDQ1NDgsIDEuMjUyNzQiLCBcCi0gICAgICAgICAgIjAuMDUyMTg3LCAwLjI1Nzk2MSwgMC40MjM3MjIsIDAuNjMwNzM0LCAwLjgzODI1MywgMS4wNDUxMiwgMS4yNTI0NSIsIFwKLSAgICAgICAgICAiMC4wNTgwOTksIDAuMjU3OTUsIDAuNDIzNzE5LCAwLjYzMDc0MiwgMC44MzgyMDgsIDEuMDQ1MTYsIDEuMjUyNjciLCBcCi0gICAgICAgICAgIjAuMDY2NDQ3LCAwLjI1OTEzMSwgMC40MjM2MDUsIDAuNjMwOTcsIDAuODM4MDU3LCAxLjA0NTM4LCAxLjI1MjgiLCBcCi0gICAgICAgICAgIjAuMDc1Nzk3LCAwLjI2MjQyMywgMC40MjQwMzUsIDAuNjMxMDI0LCAwLjgzODI1MSwgMS4wNDUzOCwgMS4yNTI4OSIsIFwKLSAgICAgICAgICAiMC4wOTEwNDMsIDAuMjY5NTU0LCAwLjQyNzY2OCwgMC42MzEwNDcsIDAuODM3OTI2LCAxLjA0NTQ1LCAxLjI1MjY2IiwgXAotICAgICAgICAgICIwLjEwMzIwOSwgMC4yNzc2ODIsIDAuNDMyOTUzLCAwLjYzMzI2NSwgMC44MzgyNTMsIDEuMDQ1MDcsIDEuMjUyMjkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBME4iOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzAzMiwgMC4wMDMwODMsIDAuMDAzMDg5LCAwLjAwMzA5MiwgMC4wMDMwOTMsIDAuMDAzMDk0LCAwLjAwMzA5NSIsIFwKLSAgICAgICAgICAiMC4wMDMwMDIsIDAuMDAzMDYxLCAwLjAwMzA2OSwgMC4wMDMwNzMsIDAuMDAzMDc0LCAwLjAwMzA3NywgMC4wMDMwNzciLCBcCi0gICAgICAgICAgIjAuMDAyOTg1LCAwLjAwMzA1MywgMC4wMDMwNjIsIDAuMDAzMDY4LCAwLjAwMzA3LCAwLjAwMzA3MywgMC4wMDMwNzQiLCBcCi0gICAgICAgICAgIjAuMDAyOTc5LCAwLjAwMzA1MiwgMC4wMDMwNjMsIDAuMDAzMDcsIDAuMDAzMDczLCAwLjAwMzA3NSwgMC4wMDMwNzciLCBcCi0gICAgICAgICAgIjAuMDAyOTgxLCAwLjAwMzA1NCwgMC4wMDMwNjcsIDAuMDAzMDc1LCAwLjAwMzA4LCAwLjAwMzA4MywgMC4wMDMwODQiLCBcCi0gICAgICAgICAgIjAuMDAyOTk3LCAwLjAwMzA2NywgMC4wMDMwODMsIDAuMDAzMDkyLCAwLjAwMzA5NywgMC4wMDMxLCAwLjAwMzEwMSIsIFwKLSAgICAgICAgICAiMC4wMDMwMTUsIDAuMDAzMDgyLCAwLjAwMzA5OCwgMC4wMDMxMDgsIDAuMDAzMTE0LCAwLjAwMzExNywgMC4wMDMxMiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzcwMywgMC4wMDM3OTMsIDAuMDAzODA0LCAwLjAwMzgwOSwgMC4wMDM4MTIsIDAuMDAzODE0LCAwLjAwMzgxNSIsIFwKLSAgICAgICAgICAiMC4wMDM2ODUsIDAuMDAzNzc2LCAwLjAwMzc4NywgMC4wMDM3OTMsIDAuMDAzNzk2LCAwLjAwMzc5OCwgMC4wMDM3OTkiLCBcCi0gICAgICAgICAgIjAuMDAzNjY3LCAwLjAwMzc2NCwgMC4wMDM3NzYsIDAuMDAzNzgyLCAwLjAwMzc4NiwgMC4wMDM3ODgsIDAuMDAzNzg5IiwgXAotICAgICAgICAgICIwLjAwMzY1NiwgMC4wMDM3NTksIDAuMDAzNzcyLCAwLjAwMzc4LCAwLjAwMzc4MywgMC4wMDM3ODUsIDAuMDAzNzg3IiwgXAotICAgICAgICAgICIwLjAwMzY0OCwgMC4wMDM3NTYsIDAuMDAzNzcxLCAwLjAwMzc3OCwgMC4wMDM3ODIsIDAuMDAzNzg1LCAwLjAwMzc4NiIsIFwKLSAgICAgICAgICAiMC4wMDM2NTQsIDAuMDAzNzU2LCAwLjAwMzc3MSwgMC4wMDM3NzksIDAuMDAzNzgzLCAwLjAwMzc4NSwgMC4wMDM3ODciLCBcCi0gICAgICAgICAgIjAuMDAzNjUzLCAwLjAwMzc1NSwgMC4wMDM3NzEsIDAuMDAzNzgsIDAuMDAzNzg1LCAwLjAwMzc4OCwgMC4wMDM3OSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkExTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyODUyLCAwLjAwMjg5NywgMC4wMDI5MDEsIDAuMDAyOTA0LCAwLjAwMjkwNiwgMC4wMDI5MDUsIDAuMDAyOTA2IiwgXAotICAgICAgICAgICIwLjAwMjgxNiwgMC4wMDI4NzEsIDAuMDAyODc5LCAwLjAwMjg3OCwgMC4wMDI4ODIsIDAuMDAyODgzLCAwLjAwMjg4NCIsIFwKLSAgICAgICAgICAiMC4wMDI3ODUsIDAuMDAyODU1LCAwLjAwMjg2MywgMC4wMDI4NjksIDAuMDAyODcxLCAwLjAwMjg3MywgMC4wMDI4NzQiLCBcCi0gICAgICAgICAgIjAuMDAyNzc3LCAwLjAwMjg1LCAwLjAwMjg2MSwgMC4wMDI4NjgsIDAuMDAyODcxLCAwLjAwMjg3MywgMC4wMDI4NzQiLCBcCi0gICAgICAgICAgIjAuMDAyNzc3LCAwLjAwMjg1LCAwLjAwMjg2NCwgMC4wMDI4NzIsIDAuMDAyODc1LCAwLjAwMjg3NywgMC4wMDI4NzkiLCBcCi0gICAgICAgICAgIjAuMDAyNzc4LCAwLjAwMjg1MSwgMC4wMDI4NjYsIDAuMDAyODc2LCAwLjAwMjg3OSwgMC4wMDI4ODEsIDAuMDAyODg0IiwgXAotICAgICAgICAgICIwLjAwMjc5NCwgMC4wMDI4NjMsIDAuMDAyODc4LCAwLjAwMjg4OCwgMC4wMDI4OTQsIDAuMDAyODk3LCAwLjAwMjg5OSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzUxNiwgMC4wMDM2MDMsIDAuMDAzNjEzLCAwLjAwMzYxOSwgMC4wMDM2MjIsIDAuMDAzNjIzLCAwLjAwMzYyNSIsIFwKLSAgICAgICAgICAiMC4wMDM0ODMsIDAuMDAzNTc4LCAwLjAwMzU5LCAwLjAwMzU5NywgMC4wMDM2LCAwLjAwMzYwMiwgMC4wMDM2MDMiLCBcCi0gICAgICAgICAgIjAuMDAzNDYzLCAwLjAwMzU2NiwgMC4wMDM1OCwgMC4wMDM1ODgsIDAuMDAzNTkyLCAwLjAwMzU5NCwgMC4wMDM1OTUiLCBcCi0gICAgICAgICAgIjAuMDAzNDUyLCAwLjAwMzU2NSwgMC4wMDM1ODEsIDAuMDAzNTksIDAuMDAzNTk1LCAwLjAwMzU5OCwgMC4wMDM2IiwgXAotICAgICAgICAgICIwLjAwMzQ3MiwgMC4wMDM1NywgMC4wMDM1ODcsIDAuMDAzNTk1LCAwLjAwMzYsIDAuMDAzNjAzLCAwLjAwMzYwNSIsIFwKLSAgICAgICAgICAiMC4wMDM0NTIsIDAuMDAzNTc5LCAwLjAwMzYsIDAuMDAzNjExLCAwLjAwMzYxNywgMC4wMDM2MjEsIDAuMDAzNjI0IiwgXAotICAgICAgICAgICIwLjAwMzQ2NywgMC4wMDM1OTEsIDAuMDAzNjE0LCAwLjAwMzYyNywgMC4wMDM2MzQsIDAuMDAzNjM4LCAwLjAwMzY0MSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDM1NjQsIDAuMDAzNTc2LCAwLjAwMzU3NywgMC4wMDM1NzgsIDAuMDAzNTc3LCAwLjAwMzU3OCwgMC4wMDM1NzgiLCBcCi0gICAgICAgICAgIjAuMDAzNTIxLCAwLjAwMzU2NSwgMC4wMDM1NywgMC4wMDM1OCwgMC4wMDM1OCwgMC4wMDM1OCwgMC4wMDM1NzYiLCBcCi0gICAgICAgICAgIjAuMDAzNDkzLCAwLjAwMzU1MywgMC4wMDM1NjUsIDAuMDAzNTY3LCAwLjAwMzU3LCAwLjAwMzU3MiwgMC4wMDM1NzMiLCBcCi0gICAgICAgICAgIjAuMDAzNDc4LCAwLjAwMzU0MiwgMC4wMDM1NTUsIDAuMDAzNTYyLCAwLjAwMzU2NywgMC4wMDM1NjgsIDAuMDAzNTczIiwgXAotICAgICAgICAgICIwLjAwMzQ3MiwgMC4wMDM1MzYsIDAuMDAzNTUxLCAwLjAwMzU1OCwgMC4wMDM1NjMsIDAuMDAzNTY4LCAwLjAwMzU2OCIsIFwKLSAgICAgICAgICAiMC4wMDM0NzMsIDAuMDAzNTI2LCAwLjAwMzU0NCwgMC4wMDM1NTIsIDAuMDAzNTU4LCAwLjAwMzU2MiwgMC4wMDM1NjYiLCBcCi0gICAgICAgICAgIjAuMDAzNDc1LCAwLjAwMzUyLCAwLjAwMzUzOCwgMC4wMDM1NDgsIDAuMDAzNTU1LCAwLjAwMzU1OSwgMC4wMDM1NjIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDA1MTYsIDAuMDAwNTIzLCAwLjAwMDUyNCwgMC4wMDA1MjQsIDAuMDAwNTI0LCAwLjAwMDUyNCwgMC4wMDA1MjQiLCBcCi0gICAgICAgICAgIjAuMDAwNDYyLCAwLjAwMDQ4OSwgMC4wMDA0OTMsIDAuMDAwNDk1LCAwLjAwMDQ5NiwgMC4wMDA0OTcsIDAuMDAwNDk3IiwgXAotICAgICAgICAgICIwLjAwMDQ0MywgMC4wMDA0ODUsIDAuMDAwNDkxLCAwLjAwMDQ5NCwgMC4wMDA0OTYsIDAuMDAwNDk3LCAwLjAwMDQ5NyIsIFwKLSAgICAgICAgICAiMC4wMDA0NTksIDAuMDAwNDg1LCAwLjAwMDQ4OSwgMC4wMDA0OTIsIDAuMDAwNDkzLCAwLjAwMDQ5NCwgMC4wMDA0OTUiLCBcCi0gICAgICAgICAgIjAuMDAwNDc1LCAwLjAwMDQ4NCwgMC4wMDA0ODksIDAuMDAwNDkxLCAwLjAwMDQ5MiwgMC4wMDA0OTMsIDAuMDAwNDk0IiwgXAotICAgICAgICAgICIwLjAwMDUxNCwgMC4wMDA0OTEsIDAuMDAwNDg5LCAwLjAwMDQ5MywgMC4wMDA0OTQsIDAuMDAwNDk0LCAwLjAwMDQ5NCIsIFwKLSAgICAgICAgICAiMC4wMDA1NjMsIDAuMDAwNTA0LCAwLjAwMDQ5NSwgMC4wMDA0OTgsIDAuMDAwNDk3LCAwLjAwMDQ5NiwgMC4wMDA0OTYiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IEFPSTJCQjFYNCAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKEFPSTJCQjFYNCkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjM2Nzg0NjsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQTBOKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA5NjUxODsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA5NTk3MTg7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwOTY1MTg7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxNTEyLCAwLjAwMTQ4LCAwLjAwMTQ3OCwgMC4wMDE0NjgsIDAuMDAxNDgsIDAuMDAxNDk4LCAwLjAwMTUyMiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNDk2NCwgMC4wMDQ5MzUsIDAuMDA0OTIxLCAwLjAwNDkxOCwgMC4wMDQ5MTcsIDAuMDA0OTIsIDAuMDA0OTI4Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihBMU4pICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDk0NDU3NzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA5NDQ0ODQ7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwOTQ0NTc3OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTI1NCwgMC4wMDEyMTUsIDAuMDAxMTk3LCAwLjAwMTE5OSwgMC4wMDExODgsIDAuMDAxMjA3LCAwLjAwMTIzNCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNDYxOSwgMC4wMDQ1NzgsIDAuMDA0NTc2LCAwLjAwNDU3MywgMC4wMDQ1ODUsIDAuMDA0NjA5LCAwLjAwNDYzOCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQjApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMzM4NTUxOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMzM2NDI0OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMzM4NTUxOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTUxNCwgMC4wMDE1ODgsIDAuMDAxNTk1LCAwLjAwMTYsIDAuMDAxNjA0LCAwLjAwMTYwOSwgMC4wMDE2MTIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDE2ODEsIDAuMDAxNjgzLCAwLjAwMTY4MywgMC4wMDE2ODQsIDAuMDAxNjg0LCAwLjAwMTY4NCwgMC4wMDE2ODQiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC41NjM4ODU7Ci0gICAgZnVuY3Rpb24gOiAiKCEoKCEoQTBOK0ExTikpK0IwKSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEwTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTkyNDEsIDAuMTk2NjYxLCAwLjMzMzU5NywgMC40MzEzNjgsIDAuNTg3NzQxLCAwLjcyNDYwMSwgMC45MjAwNTMiLCBcCi0gICAgICAgICAgIjAuMDY5NDAxLCAwLjIwNjk1NywgMC4zNDM4NDksIDAuNDQxNjE4LCAwLjU5ODAwOCwgMC43MzQ4MTksIDAuOTMwMzM1IiwgXAotICAgICAgICAgICIwLjA4MjIyNywgMC4yMTk3NywgMC4zNTY2ODgsIDAuNDU0NTAyLCAwLjYxMDg1MiwgMC43NDc2NjksIDAuOTQzMTU2IiwgXAotICAgICAgICAgICIwLjA5NDA5NSwgMC4yMzE2NTMsIDAuMzY4NTk1LCAwLjQ2NjMwNSwgMC42MjI3NjgsIDAuNzU5NTQ0LCAwLjk1NTA0NSIsIFwKLSAgICAgICAgICAiMC4xMDQ1NjEsIDAuMjQxOTcxLCAwLjM3ODksIDAuNDc2NjU4LCAwLjYzMzA1LCAwLjc2OTg4NiwgMC45NjUzNjciLCBcCi0gICAgICAgICAgIjAuMTE5MzkyLCAwLjI1Njg5MSwgMC4zOTM3ODksIDAuNDkxNTcsIDAuNjQ3OTMyLCAwLjc4NDc5LCAwLjk4MDIyIiwgXAotICAgICAgICAgICIwLjEzMDU4MSwgMC4yNjc5NjUsIDAuNDA0ODQ5LCAwLjUwMjYxNiwgMC42NTkxMjEsIDAuNzk1ODUzLCAwLjk5MTMwNSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1NzU4NywgMC4zMzMzNDksIDAuNjEwMzEsIDAuODA4MTcyLCAxLjEyNjA5LCAxLjQwMzczLCAxLjgwMDY0IiwgXAotICAgICAgICAgICIwLjA1NzU4NCwgMC4zMzM4MTMsIDAuNjEwNzMyLCAwLjgwODUyNSwgMS4xMjYzNiwgMS40MDM3NywgMS43OTkzOSIsIFwKLSAgICAgICAgICAiMC4wNTc3MTQsIDAuMzMzODMyLCAwLjYxMDYzOCwgMC44MTA0MjksIDEuMTI4MzUsIDEuNDAzNTgsIDEuODAwNDQiLCBcCi0gICAgICAgICAgIjAuMDU4MTgzLCAwLjMzMzgxNywgMC42MTA2MTYsIDAuODA5NDA0LCAxLjEyNjA1LCAxLjQwNjAxLCAxLjgwMTA4IiwgXAotICAgICAgICAgICIwLjA1OTIxMiwgMC4zMzMzNzYsIDAuNjExODAyLCAwLjgwOTQzNCwgMS4xMjY4NCwgMS40MDQ2NywgMS44MDEiLCBcCi0gICAgICAgICAgIjAuMDYwNzgsIDAuMzMzODE2LCAwLjYxMDkzNSwgMC44MTA0MDEsIDEuMTI4MTEsIDEuNDAzNDksIDEuODAzNTQiLCBcCi0gICAgICAgICAgIjAuMDYyMzQ5LCAwLjMzMzg5NywgMC42MTE2MzQsIDAuODEwMjk2LCAxLjEyNjAyLCAxLjQwNjI1LCAxLjgwMzY0Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDczMzQxLCAwLjE1MjUxOCwgMC4yMjY3ODYsIDAuMjc5NzQsIDAuMzY0NDQ4LCAwLjQzODYyNCwgMC41NDQ0MTciLCBcCi0gICAgICAgICAgIjAuMDgxOTA3LCAwLjE2MDk5MSwgMC4yMzUyOTUsIDAuMjg4MjQ0LCAwLjM3Mjk0NSwgMC40NDcwNjMsIDAuNTUyOTY4IiwgXAotICAgICAgICAgICIwLjA5MTg3NiwgMC4xNzEwMywgMC4yNDUyODIsIDAuMjk4MjQzLCAwLjM4MzAzLCAwLjQ1NzA5LCAwLjU2MzE4OSIsIFwKLSAgICAgICAgICAiMC4xMDE1NCwgMC4xODA3MTYsIDAuMjU0OTg2LCAwLjMwNzk2NiwgMC4zOTI2NTEsIDAuNDY2NzYsIDAuNTcyNjg4IiwgXAotICAgICAgICAgICIwLjExMDUxNCwgMC4xODk4MzIsIDAuMjY0MDksIDAuMzE3MDQ5LCAwLjQwMTc5MywgMC40NzU5MSwgMC41ODE4MDEiLCBcCi0gICAgICAgICAgIjAuMTIzNzUsIDAuMjAzNTIzLCAwLjI3Nzc4NiwgMC4zMzA3NDEsIDAuNDE1NDc5LCAwLjQ4OTY4OSwgMC41OTU0MzgiLCBcCi0gICAgICAgICAgIjAuMTMzOTg3LCAwLjIxNDI5LCAwLjI4ODU2NiwgMC4zNDE1MTksIDAuNDI2MjIzLCAwLjUwMDQ1MywgMC42MDYyMTEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDExNywgMC4xODM5NjYsIDAuMzMxNjgsIDAuNDM3NzkxLCAwLjYwNzI1OSwgMC43NTU3NjgsIDAuOTcxMzEyIiwgXAotICAgICAgICAgICIwLjA0MTE0NSwgMC4xODM5OTQsIDAuMzMxNzM2LCAwLjQzNzg3NywgMC42MDgzNDUsIDAuNzU3NjAxLCAwLjk3MTY1MiIsIFwKLSAgICAgICAgICAiMC4wNDExMDQsIDAuMTgzOTM3LCAwLjMzMTIwMywgMC40Mzc0NzcsIDAuNjA2NjM2LCAwLjc1NzkyNCwgMC45Njk0MzYiLCBcCi0gICAgICAgICAgIjAuMDQxMjc3LCAwLjE4Mzk4NSwgMC4zMzE3MzcsIDAuNDM3OTkxLCAwLjYwODM2MywgMC43NTc3ODYsIDAuOTcxNjc2IiwgXAotICAgICAgICAgICIwLjA0MjE3NiwgMC4xODQyMjIsIDAuMzMxNzc5LCAwLjQzNzk0NCwgMC42MDc2NzgsIDAuNzU3OTksIDAuOTcxNjk1IiwgXAotICAgICAgICAgICIwLjA0MzQsIDAuMTg0Nzk0LCAwLjMzMTU2OCwgMC40MzczMSwgMC42MDc4MTQsIDAuNzU2MTE2LCAwLjk3MTQ4OSIsIFwKLSAgICAgICAgICAiMC4wNDQzOTYsIDAuMTg1NDAxLCAwLjMzMjMyOSwgMC40Mzc4MDQsIDAuNjA4NTkzLCAwLjc1NjI4LCAwLjk3MTE2NyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMU4iOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU2ODQxLCAwLjE5NDI0NiwgMC4zMzExNjksIDAuNDI5MDg1LCAwLjU4NTM3MywgMC43MjIzNDUsIDAuOTE3NjUyIiwgXAotICAgICAgICAgICIwLjA2NzAxNCwgMC4yMDQ0MjYsIDAuMzQxNDM3LCAwLjQzOTM2NiwgMC41OTU3MDYsIDAuNzMyNjg2LCAwLjkyNzkzMSIsIFwKLSAgICAgICAgICAiMC4wNzk1ODIsIDAuMjE3MDAyLCAwLjM1NDE0OSwgMC40NTE4NjMsIDAuNjA4MjQxLCAwLjc0NTU4LCAwLjk0MDYyNSIsIFwKLSAgICAgICAgICAiMC4wOTA5ODIsIDAuMjI4NDc1LCAwLjM2NTQ3OCwgMC40NjM0MzcsIDAuNjE5NzU3LCAwLjc1NzIzNCwgMC45NTIwNSIsIFwKLSAgICAgICAgICAiMC4xMDEwNTgsIDAuMjM4NTE5LCAwLjM3NTQ4OSwgMC40NzM0MDgsIDAuNjI5NzI4LCAwLjc2NjU5NCwgMC45NjI5NDIiLCBcCi0gICAgICAgICAgIjAuMTE1NDA5LCAwLjI1MjczLCAwLjM4OTgxOSwgMC40ODc0NjksIDAuNjQzODc0LCAwLjc4MDc4OSwgMC45NzYzNTMiLCBcCi0gICAgICAgICAgIjAuMTI1OTQsIDAuMjYzMjY2LCAwLjQwMDMxNCwgMC40OTc5NTcsIDAuNjU0NDI0LCAwLjc5MTY5MywgMC45ODY4MyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1NzM3MiwgMC4zMzMyNDUsIDAuNjExMDExLCAwLjgwODkzMiwgMS4xMzIxMSwgMS40MDcxOSwgMS44MDE4MiIsIFwKLSAgICAgICAgICAiMC4wNTczNzMsIDAuMzMzODMsIDAuNjEwNjQ2LCAwLjgwODkxNCwgMS4xMjkwMSwgMS40MDM4NiwgMS44MDQ4NSIsIFwKLSAgICAgICAgICAiMC4wNTc1NTksIDAuMzMzODA2LCAwLjYxMDYwMiwgMC44MDg4ODEsIDEuMTI4NjgsIDEuNDAzNDUsIDEuODAyOTYiLCBcCi0gICAgICAgICAgIjAuMDU4MjE0LCAwLjMzMzg1MiwgMC42MTIwMjUsIDAuODA4OTA5LCAxLjEyODc4LCAxLjQwNDEzLCAxLjgwMzczIiwgXAotICAgICAgICAgICIwLjA1OTIyLCAwLjMzMzg5OCwgMC42MTEwODIsIDAuODA5MDUyLCAxLjEyODYxLCAxLjQwNDcxLCAxLjgwMDc4IiwgXAotICAgICAgICAgICIwLjA2MDk0MiwgMC4zMzQwMDQsIDAuNjEwNjg1LCAwLjgwOTQ3NywgMS4xMjg1NiwgMS40MDYwMSwgMS44MDQyNSIsIFwKLSAgICAgICAgICAiMC4wNjI1NDcsIDAuMzM0MDkxLCAwLjYxMDc0MywgMC44MTA4MjcsIDEuMTI4NTYsIDEuNDAzNjksIDEuODA0MTUiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzA0NjgsIDAuMTQ5NjI3LCAwLjIyMzk0NywgMC4yNzY5MTksIDAuMzYxNjMyLCAwLjQzNTc4NywgMC41NDE2MjQiLCBcCi0gICAgICAgICAgIjAuMDc5MjUxLCAwLjE1ODM5NSwgMC4yMzI3MDEsIDAuMjg1NjUyLCAwLjM3MDQyMiwgMC40NDQ1NzEsIDAuNTUwMzUxIiwgXAotICAgICAgICAgICIwLjA5MDczOCwgMC4xNjk5NiwgMC4yNDQyMzcsIDAuMjk3MTk3LCAwLjM4MTk5LCAwLjQ1NjA0NiwgMC41NjIwMzYiLCBcCi0gICAgICAgICAgIjAuMTAyMjQ2LCAwLjE4MTI5NywgMC4yNTU1NjUsIDAuMzA4NTU4LCAwLjM5MzMyNSwgMC40NjczODIsIDAuNTczNDc0IiwgXAotICAgICAgICAgICIwLjExMjkyNSwgMC4xOTIyMzgsIDAuMjY2NDk3LCAwLjMxOTQ1OCwgMC40MDQyMTIsIDAuNDc4MzE1LCAwLjU4NDI4OCIsIFwKLSAgICAgICAgICAiMC4xMjgzMDUsIDAuMjA3MjAyLCAwLjI4MTQyOSwgMC4zMzQzODQsIDAuNDE5MDg3LCAwLjQ5MzI3OCwgMC41OTkxIiwgXAotICAgICAgICAgICIwLjEzOTg0MSwgMC4yMTk2MjgsIDAuMjkzNzA2LCAwLjM0NjY1OSwgMC40MzEzNDgsIDAuNTA1NTQ2LCAwLjYxMTMyNSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0MTEwNCwgMC4xODQwMDQsIDAuMzMxNTg1LCAwLjQzNzg2NSwgMC42MDczNjcsIDAuNzU1ODY3LCAwLjk3MDk1OSIsIFwKLSAgICAgICAgICAiMC4wNDExNDEsIDAuMTgzOTcyLCAwLjMzMTgxMSwgMC40MzY4NTksIDAuNjA2Nzg1LCAwLjc1NTUzMywgMC45NzEyMTIiLCBcCi0gICAgICAgICAgIjAuMDQxMDk2LCAwLjE4Mzk0MiwgMC4zMzExOTcsIDAuNDM3NjAzLCAwLjYwNjk5LCAwLjc1NzkyOCwgMC45NjkzMSIsIFwKLSAgICAgICAgICAiMC4wNDEzNTQsIDAuMTg0MTA1LCAwLjMzMTI0LCAwLjQzODA3MSwgMC42MDY3MDcsIDAuNzU3OTE4LCAwLjk2ODY5NiIsIFwKLSAgICAgICAgICAiMC4wNDI1MzksIDAuMTg0MjksIDAuMzMxODAxLCAwLjQzNzk1OSwgMC42MDcwNzMsIDAuNzU3OTU2LCAwLjk2OTcyMiIsIFwKLSAgICAgICAgICAiMC4wNDQwNDMsIDAuMTg1MjIzLCAwLjMzMjE2NywgMC40MzgxODMsIDAuNjA3OTY2LCAwLjc1NTcxNCwgMC45NzExMSIsIFwKLSAgICAgICAgICAiMC4wNDU5MjcsIDAuMTg1ODQsIDAuMzMyMjI0LCAwLjQzODUsIDAuNjA3NjAxLCAwLjc1NTcwNiwgMC45NzE1MzYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjAiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM0OTk1LCAwLjE3MjE1NSwgMC4zMDkwOTUsIDAuNDA2ODgsIDAuNTYzODU3LCAwLjcwMDE5NSwgMC44OTYyNzgiLCBcCi0gICAgICAgICAgIjAuMDQyOTcxLCAwLjE4MDQxLCAwLjMxNzMxNywgMC40MTUwODIsIDAuNTcxNDg0LCAwLjcwODQ3NiwgMC45MDM4NzIiLCBcCi0gICAgICAgICAgIjAuMDUyMzk4LCAwLjE5MDExNiwgMC4zMjczMTMsIDAuNDI0OTQsIDAuNTgxMzY0LCAwLjcxODE1OSwgMC45MTQ2NDciLCBcCi0gICAgICAgICAgIjAuMDYxMDY0LCAwLjE5OTk2NywgMC4zMzcwNDksIDAuNDM0ODMyLCAwLjU5MTczOSwgMC43MjgyOTMsIDAuOTIzNzc4IiwgXAotICAgICAgICAgICIwLjA2ODcyMiwgMC4yMDk4MDMsIDAuMzQ3MTEzLCAwLjQ0NDg0MSwgMC42MDEyOTEsIDAuNzM4MjA2LCAwLjkzMzgxNyIsIFwKLSAgICAgICAgICAiMC4wNzkzNzQsIDAuMjI1NjA5LCAwLjM2MjgyMywgMC40NjA0MzMsIDAuNjE3Njc3LCAwLjc1NDg1NiwgMC45NTAxOTkiLCBcCi0gICAgICAgICAgIjAuMDg3MzQ1LCAwLjIzOTU2MywgMC4zNzY2OSwgMC40NzQ3ODEsIDAuNjMxODEyLCAwLjc2ODYxMSwgMC45NjQxMDUiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTU5MzQsIDAuMzMzODE2LCAwLjYxMjA4NywgMC44MTA4NTcsIDEuMTI2NjcsIDEuNDA2ODEsIDEuODAwODUiLCBcCi0gICAgICAgICAgIjAuMDU2MzMzLCAwLjMzMzc5MiwgMC42MTE5NjEsIDAuODEwODk1LCAxLjEyODk0LCAxLjQwNzEyLCAxLjgwMTQ4IiwgXAotICAgICAgICAgICIwLjA1OTM2NSwgMC4zMzQxMywgMC42MTEyNjQsIDAuODEwNzIzLCAxLjEyODYsIDEuNDEyMTIsIDEuODAyMzEiLCBcCi0gICAgICAgICAgIjAuMDY0MjkzLCAwLjMzNDIyNywgMC42MTE5NDksIDAuODEwOTAyLCAxLjEyNjQ0LCAxLjQwNTgyLCAxLjgwNDI4IiwgXAotICAgICAgICAgICIwLjA3MDMzNywgMC4zMzU2MywgMC42MTA3NDcsIDAuODEwNjc4LCAxLjEyNjk3LCAxLjQwNjgsIDEuODA0MzkiLCBcCi0gICAgICAgICAgIjAuMDgwMzgzLCAwLjMzODg1MiwgMC42MTI5OTcsIDAuODEwODcxLCAxLjEyNjIzLCAxLjQwMzQ2LCAxLjgwMDYxIiwgXAotICAgICAgICAgICIwLjA4ODM4NiwgMC4zNDM5NzUsIDAuNjE1MDg5LCAwLjgxMDMyNiwgMS4xMjg4NCwgMS40MDY4MSwgMS44MDQ1MiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxOTcyMiwgMC4wOTMyNjcsIDAuMTY2NDUzLCAwLjIxODgyNiwgMC4zMDIzOTUsIDAuMzc1NTU1LCAwLjQ4MDA1NSIsIFwKLSAgICAgICAgICAiMC4wMjk5NTksIDAuMTAzNDg2LCAwLjE3NjY2OSwgMC4yMjg5NTgsIDAuMzEyNTY0LCAwLjM4NTY4NSwgMC40OTAyMzQiLCBcCi0gICAgICAgICAgIjAuMDQyMjQ4LCAwLjExNjA0MiwgMC4xODkzMTUsIDAuMjQxNTIxLCAwLjMyNTA5NiwgMC4zOTgyNCwgMC41MDE3OSIsIFwKLSAgICAgICAgICAiMC4wNTIzMzUsIDAuMTI5MzY5LCAwLjIwMjU3NSwgMC4yNTQ4MDgsIDAuMzM4MzUxLCAwLjQxMTYzNCwgMC41MTYwNTYiLCBcCi0gICAgICAgICAgIjAuMDYwNTEzLCAwLjE0MTU1MywgMC4yMTUwMjcsIDAuMjY3MTYsIDAuMzUwNjQ5LCAwLjQyMzY4NCwgMC41MjgyNzIiLCBcCi0gICAgICAgICAgIjAuMDcxODkxLCAwLjE2Mjk3MSwgMC4yMzUxNywgMC4yODczNiwgMC4zNzEzMiwgMC40NDQyMzYsIDAuNTQ4NjI4IiwgXAotICAgICAgICAgICIwLjA4MTQ5MiwgMC4xODE0MDgsIDAuMjUzOTUxLCAwLjMwNTMxOCwgMC4zODk0NTEsIDAuNDYyNDU1LCAwLjU2Njg3OSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzMDUxNSwgMC4xNzc0MTEsIDAuMzI0NDIsIDAuNDI5NjEzLCAwLjU5NzY0MSwgMC43NDQ2NjIsIDAuOTU0OTE5IiwgXAotICAgICAgICAgICIwLjAzMzE5OCwgMC4xNzc0MDUsIDAuMzI0NDUxLCAwLjQyOTU1NywgMC41OTc0NSwgMC43NDQ1MywgMC45NTQ2ODciLCBcCi0gICAgICAgICAgIjAuMDQxMDIzLCAwLjE3ODA1NSwgMC4zMjQ1NDQsIDAuNDI5NTQ3LCAwLjU5NzcwOSwgMC43NDQ1MTMsIDAuOTU0NzM3IiwgXAotICAgICAgICAgICIwLjA1MDAzMiwgMC4xODEwNzYsIDAuMzI0NjEyLCAwLjQyOTQxNywgMC41OTc3MywgMC43NDQ3MDEsIDAuOTU0NzIiLCBcCi0gICAgICAgICAgIjAuMDU5NjE5LCAwLjE4NjQ1NSwgMC4zMjY0OTksIDAuNDI5NzkzLCAwLjU5NzYzOCwgMC43NDQ3MjEsIDAuOTU0NzY5IiwgXAotICAgICAgICAgICIwLjA3MjgxLCAwLjE5NTk1OSwgMC4zMzI1NSwgMC40MzMyNjMsIDAuNTk4MDM0LCAwLjc0NDU5NywgMC45NTQ1MzQiLCBcCi0gICAgICAgICAgIjAuMDgxODUzLCAwLjIwNjA1OCwgMC4zMzg5MDQsIDAuNDM4NTE4LCAwLjYwMDY3OCwgMC43NDUyNzEsIDAuOTU0Njg4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTBOIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNTYyNywgMC4wMDU3OCwgMC4wMDU4MDEsIDAuMDA1ODA0LCAwLjAwNTgwNywgMC4wMDU4MTIsIDAuMDA1ODE0IiwgXAotICAgICAgICAgICIwLjAwNTU2NiwgMC4wMDU3MzQsIDAuMDA1NzU5LCAwLjAwNTc2NiwgMC4wMDU3NzIsIDAuMDA1Nzc2LCAwLjAwNTc3OSIsIFwKLSAgICAgICAgICAiMC4wMDU1MjYsIDAuMDA1NzA0LCAwLjAwNTczNiwgMC4wMDU3NDUsIDAuMDA1NzU0LCAwLjAwNTc1OCwgMC4wMDU3NjMiLCBcCi0gICAgICAgICAgIjAuMDA1NTIxLCAwLjAwNTcsIDAuMDA1NzM4LCAwLjAwNTc1MSwgMC4wMDU3NjIsIDAuMDA1NzY4LCAwLjAwNTc3MyIsIFwKLSAgICAgICAgICAiMC4wMDU1MywgMC4wMDU2OTksIDAuMDA1NzQxLCAwLjAwNTc1NCwgMC4wMDU3NjgsIDAuMDA1Nzc1LCAwLjAwNTc4MSIsIFwKLSAgICAgICAgICAiMC4wMDU1NjYsIDAuMDA1NzExLCAwLjAwNTc1NywgMC4wMDU3NzQsIDAuMDA1NzkxLCAwLjAwNTc5NywgMC4wMDU4MDQiLCBcCi0gICAgICAgICAgIjAuMDA1NTk1LCAwLjAwNTczMywgMC4wMDU3NzgsIDAuMDA1Nzk3LCAwLjAwNTgxNCwgMC4wMDU4MjIsIDAuMDA1ODMyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDY1NzQsIDAuMDA2ODE3LCAwLjAwNjg1MSwgMC4wMDY4NjIsIDAuMDA2ODcxLCAwLjAwNjg3NiwgMC4wMDY4OCIsIFwKLSAgICAgICAgICAiMC4wMDY1MTMsIDAuMDA2Nzg1LCAwLjAwNjgyMiwgMC4wMDY4MzQsIDAuMDA2ODQ0LCAwLjAwNjg0OSwgMC4wMDY4NTQiLCBcCi0gICAgICAgICAgIjAuMDA2NDgyLCAwLjAwNjc1OSwgMC4wMDY3OTksIDAuMDA2ODEyLCAwLjAwNjgyMiwgMC4wMDY4MjgsIDAuMDA2ODMzIiwgXAotICAgICAgICAgICIwLjAwNjQ2NCwgMC4wMDY3NDUsIDAuMDA2Nzg4LCAwLjAwNjc5OSwgMC4wMDY4MTQsIDAuMDA2ODIxLCAwLjAwNjgyNiIsIFwKLSAgICAgICAgICAiMC4wMDY0NTksIDAuMDA2NzM4LCAwLjAwNjc4NCwgMC4wMDY3OTksIDAuMDA2ODEzLCAwLjAwNjgyLCAwLjAwNjgyNiIsIFwKLSAgICAgICAgICAiMC4wMDY0MzYsIDAuMDA2NzI5LCAwLjAwNjc4LCAwLjAwNjc5NywgMC4wMDY4MTIsIDAuMDA2ODE5LCAwLjAwNjgyNyIsIFwKLSAgICAgICAgICAiMC4wMDY0MzEsIDAuMDA2NzM2LCAwLjAwNjc4NiwgMC4wMDY3OTksIDAuMDA2ODE2LCAwLjAwNjgyLCAwLjAwNjgyNyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkExTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDUzODEsIDAuMDA1NTI2LCAwLjAwNTU0NiwgMC4wMDU1NDgsIDAuMDA1NTU0LCAwLjAwNTU1NSwgMC4wMDU1NTkiLCBcCi0gICAgICAgICAgIjAuMDA1MzEyLCAwLjAwNTQ3NiwgMC4wMDU0OTYsIDAuMDA1NTA0LCAwLjAwNTUwOSwgMC4wMDU1MTMsIDAuMDA1NTE1IiwgXAotICAgICAgICAgICIwLjAwNTI2MiwgMC4wMDU0MzcsIDAuMDA1NDY2LCAwLjAwNTQ3NSwgMC4wMDU0ODMsIDAuMDA1NDg3LCAwLjAwNTQ5IiwgXAotICAgICAgICAgICIwLjAwNTI0LCAwLjAwNTQyLCAwLjAwNTQ1OCwgMC4wMDU0NjcsIDAuMDA1NDgsIDAuMDA1NDg0LCAwLjAwNTQ4OSIsIFwKLSAgICAgICAgICAiMC4wMDUyNCwgMC4wMDU0MTQsIDAuMDA1NDU0LCAwLjAwNTQ2OCwgMC4wMDU0ODEsIDAuMDA1NDg4LCAwLjAwNTQ5MSIsIFwKLSAgICAgICAgICAiMC4wMDUyNDgsIDAuMDA1NDA4LCAwLjAwNTQ1MiwgMC4wMDU0NjcsIDAuMDA1NDgyLCAwLjAwNTQ4OSwgMC4wMDU0OTUiLCBcCi0gICAgICAgICAgIjAuMDA1Mjg0LCAwLjAwNTQxOCwgMC4wMDU0NjMsIDAuMDA1NDgyLCAwLjAwNTQ5OCwgMC4wMDU1MDYsIDAuMDA1NTE0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDYyMTIsIDAuMDA2NDc4LCAwLjAwNjUxMywgMC4wMDY1MjQsIDAuMDA2NTM0LCAwLjAwNjUzOCwgMC4wMDY1NDMiLCBcCi0gICAgICAgICAgIjAuMDA2MTUzLCAwLjAwNjQyOCwgMC4wMDY0NjcsIDAuMDA2NDgsIDAuMDA2NDkxLCAwLjAwNjQ5NiwgMC4wMDY1MDEiLCBcCi0gICAgICAgICAgIjAuMDA2MTA1LCAwLjAwNjM5NCwgMC4wMDY0NCwgMC4wMDY0NTUsIDAuMDA2NDY4LCAwLjAwNjQ3NCwgMC4wMDY0OCIsIFwKLSAgICAgICAgICAiMC4wMDYxMDYsIDAuMDA2Mzg4LCAwLjAwNjQ0LCAwLjAwNjQ1NywgMC4wMDY0NzIsIDAuMDA2NDgsIDAuMDA2NDg3IiwgXAotICAgICAgICAgICIwLjAwNjE2MywgMC4wMDYzOTYsIDAuMDA2NDQ2LCAwLjAwNjQ2MiwgMC4wMDY0NzgsIDAuMDA2NDg1LCAwLjAwNjQ5MyIsIFwKLSAgICAgICAgICAiMC4wMDYwOTcsIDAuMDA2Mzk3LCAwLjAwNjQ1OSwgMC4wMDY0OCwgMC4wMDY0OTksIDAuMDA2NTA5LCAwLjAwNjUxOCIsIFwKLSAgICAgICAgICAiMC4wMDYxMywgMC4wMDY0MDgsIDAuMDA2NDc1LCAwLjAwNjQ5OCwgMC4wMDY1MTgsIDAuMDA2NTI5LCAwLjAwNjU0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2ODkxLCAwLjAwNjkzNCwgMC4wMDY5MzYsIDAuMDA2OTM3LCAwLjAwNjkzOCwgMC4wMDY5MzksIDAuMDA2OTM5IiwgXAotICAgICAgICAgICIwLjAwNjc3NiwgMC4wMDY5MDEsIDAuMDA2OTE4LCAwLjAwNjkyNCwgMC4wMDY5MjksIDAuMDA2OTQ3LCAwLjAwNjkzNCIsIFwKLSAgICAgICAgICAiMC4wMDY3MiwgMC4wMDY4NjYsIDAuMDA2ODk3LCAwLjAwNjkxMywgMC4wMDY5MTYsIDAuMDA2OTIxLCAwLjAwNjkzMiIsIFwKLSAgICAgICAgICAiMC4wMDY3MDEsIDAuMDA2ODQ0LCAwLjAwNjg4MSwgMC4wMDY4OTcsIDAuMDA2OTA3LCAwLjAwNjkxOSwgMC4wMDY5MiIsIFwKLSAgICAgICAgICAiMC4wMDY2OTgsIDAuMDA2ODI2LCAwLjAwNjg2NSwgMC4wMDY4ODMsIDAuMDA2ODk2LCAwLjAwNjkwNCwgMC4wMDY5MTQiLCBcCi0gICAgICAgICAgIjAuMDA2NzEsIDAuMDA2ODA0LCAwLjAwNjg0NywgMC4wMDY4NjEsIDAuMDA2ODg0LCAwLjAwNjg5NSwgMC4wMDY5MDQiLCBcCi0gICAgICAgICAgIjAuMDA2NzM0LCAwLjAwNjc5NywgMC4wMDY4MzgsIDAuMDA2ODU2LCAwLjAwNjg3NSwgMC4wMDY4ODcsIDAuMDA2ODk3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDExODMsIDAuMDAxMjA2LCAwLjAwMTIwOCwgMC4wMDEyMDgsIDAuMDAxMjA5LCAwLjAwMTIwOSwgMC4wMDEyMDkiLCBcCi0gICAgICAgICAgIjAuMDAxMDQ1LCAwLjAwMTE0MSwgMC4wMDExNTIsIDAuMDAxMTU2LCAwLjAwMTE1OSwgMC4wMDExNjEsIDAuMDAxMTYyIiwgXAotICAgICAgICAgICIwLjAwMTAxOCwgMC4wMDExMSwgMC4wMDExMzIsIDAuMDAxMTM4LCAwLjAwMTE0MywgMC4wMDExNDYsIDAuMDAxMTM3IiwgXAotICAgICAgICAgICIwLjAwMTAyNSwgMC4wMDExMDMsIDAuMDAxMTI1LCAwLjAwMTEzMywgMC4wMDExNCwgMC4wMDExNDQsIDAuMDAxMTQ3IiwgXAotICAgICAgICAgICIwLjAwMTEzLCAwLjAwMTExNSwgMC4wMDExMzUsIDAuMDAxMTM4LCAwLjAwMTE0MiwgMC4wMDExNDQsIDAuMDAxMTQ2IiwgXAotICAgICAgICAgICIwLjAwMTI1MSwgMC4wMDExNDQsIDAuMDAxMTM1LCAwLjAwMTEzOSwgMC4wMDExNDYsIDAuMDAxMTQ5LCAwLjAwMTE0NyIsIFwKLSAgICAgICAgICAiMC4wMDEyNzIsIDAuMDAxMTc5LCAwLjAwMTE2LCAwLjAwMTE1LCAwLjAwMTE1NiwgMC4wMDExNTUsIDAuMDAxMTU0Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBBT0kyQkIxWEwgKgotICogLS0tLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChBT0kyQkIxWEwpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4wOTAxOTA2OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBME4pICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDc1MjczMTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA3NTAwMDk7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNzUyNzMxOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDMyNywgMC4wMDAzMDYsIDAuMDAwMzAxLCAwLjAwMDMwNywgMC4wMDAzMTgsIDAuMDAwMzM1LCAwLjAwMDM1NSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjAxMywgMC4wMDE5OTUsIDAuMDAxOTg5LCAwLjAwMTk4OCwgMC4wMDE5ODksIDAuMDAxOTk0LCAwLjAwMjAwMiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQTFOKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA3MzYxMTM7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNzM2MTEzOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDczNjEwNTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxNjMsIDAuMDAwMTM2LCAwLjAwMDEyNywgMC4wMDAxMzIsIDAuMDAwMTQ1LCAwLjAwMDE1OSwgMC4wMDAxNzgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDE4MTcsIDAuMDAxNzk0LCAwLjAwMTgsIDAuMDAxODAxLCAwLjAwMTgxMSwgMC4wMDE4MzQsIDAuMDAxODU0Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNzQ2Mzg5OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDc0Mzc4NTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA3NDYzODk7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjA5LCAwLjAwMDIxOSwgMC4wMDAyMjEsIDAuMDAwMjIyLCAwLjAwMDIyMiwgMC4wMDAyMjMsIDAuMDAwMjIzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjM0LCAwLjAwMDIzNCwgMC4wMDAyMzQsIDAuMDAwMjM0LCAwLjAwMDIzNCwgMC4wMDAyMzQsIDAuMDAwMjM0Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMDc3MzMxNjsKLSAgICBmdW5jdGlvbiA6ICIoISgoIShBME4rQTFOKSkrQjApKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTBOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNjQxMzEsIDAuMTkwNjgyLCAwLjQyOTgxMiwgMC44MjgyNTcsIDEuMjI2NjksIDIuMTU2NzUsIDIuNjg3NzYiLCBcCi0gICAgICAgICAgIjAuMTc0MjQyLCAwLjIwMDgzNCwgMC40Mzk5ODcsIDAuODM4NDU5LCAxLjIzNjksIDIuMTY2NjksIDIuNjk4MDEiLCBcCi0gICAgICAgICAgIjAuMTg2MTg1LCAwLjIxMjc0MiwgMC40NTE5MTQsIDAuODUwNTM1LCAxLjI0ODg3LCAyLjE3ODYsIDIuNzA5NzgiLCBcCi0gICAgICAgICAgIjAuMTk1OTIzLCAwLjIyMjUxLCAwLjQ2MTY4NywgMC44NjAyNTMsIDEuMjU4NjMsIDIuMTg4NCwgMi43MTk3NCIsIFwKLSAgICAgICAgICAiMC4yMDQ3NzUsIDAuMjMxMzQyLCAwLjQ3MDU0OSwgMC44NjkxMjYsIDEuMjY3NDYsIDIuMTk3MjEsIDIuNzI4MzMiLCBcCi0gICAgICAgICAgIjAuMjE2Mzc0LCAwLjI0MzAxNCwgMC40ODIxNzYsIDAuODgwNjcsIDEuMjc5MTEsIDIuMjA4ODEsIDIuNzQwMTYiLCBcCi0gICAgICAgICAgIjAuMjI1MjM0LCAwLjI1MTgyOCwgMC40OTEwNzEsIDAuODg5NjQyLCAxLjI4ODAzLCAyLjIxNzY0LCAyLjc0OTA2Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI4OTQ3NywgMC4zNDMwNjksIDAuODI4Mjg4LCAxLjYzNjgzLCAyLjQ0ODQ4LCA0LjMzODIsIDUuNDA1ODMiLCBcCi0gICAgICAgICAgIjAuMjg5MDk3LCAwLjM0MzA0NCwgMC44MjgwOTIsIDEuNjM2NjEsIDIuNDQ1NzYsIDQuMzI4OCwgNS40MDc0MyIsIFwKLSAgICAgICAgICAiMC4yODg4OTgsIDAuMzQzMzcxLCAwLjgyODExNiwgMS42Mzg3NywgMi40NDQ2OCwgNC4zMjg1NSwgNS40MTA3IiwgXAotICAgICAgICAgICIwLjI4ODg1MSwgMC4zNDMzNzQsIDAuODI5MDM3LCAxLjYzODcxLCAyLjQ0NTU1LCA0LjMyODU2LCA1LjQxNTMzIiwgXAotICAgICAgICAgICIwLjI4OTQ2LCAwLjM0MzAzLCAwLjgyOTA1OCwgMS42Mzg2OSwgMi40NDUyNywgNC4zMzEwMiwgNS40MTUwOSIsIFwKLSAgICAgICAgICAiMC4yODkyMjQsIDAuMzQzNDM0LCAwLjgyODg0OCwgMS42MzY2NywgMi40NDgsIDQuMzMyMDYsIDUuNDE1MjMiLCBcCi0gICAgICAgICAgIjAuMjg5MjgxLCAwLjM0MzE2MSwgMC44Mjc5MTUsIDEuNjM4NTQsIDIuNDQ4MjksIDQuMzMxNjIsIDUuNDE1MjUiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTEzOTk0LCAwLjEyNzgzNCwgMC4yNTIzNDIsIDAuNDU5Nzc5LCAwLjY2NzM4NiwgMS4xNTEwNywgMS40Mjc4MiIsIFwKLSAgICAgICAgICAiMC4xMjIyNzksIDAuMTM2MTE2LCAwLjI2MDYzMiwgMC40NjgwNzksIDAuNjc1NzQ4LCAxLjE2LCAxLjQzNjk4IiwgXAotICAgICAgICAgICIwLjEzMTc1LCAwLjE0NTU5OCwgMC4yNzAxMSwgMC40Nzc2MDgsIDAuNjg1MDYxLCAxLjE2OTA5LCAxLjQ0NjQ0IiwgXAotICAgICAgICAgICIwLjE0MDUxNywgMC4xNTQzNTYsIDAuMjc4ODQ3LCAwLjQ4NjMxLCAwLjY5NDAwNiwgMS4xNzg2LCAxLjQ1NDQyIiwgXAotICAgICAgICAgICIwLjE0ODIxMiwgMC4xNjIwNTEsIDAuMjg2NTU1LCAwLjQ5NDAxNSwgMC43MDE2NjksIDEuMTg2NDgsIDEuNDYyMSIsIFwKLSAgICAgICAgICAiMC4xNTg4NDUsIDAuMTcyNjgzLCAwLjI5NzE5MiwgMC41MDQ4LCAwLjcxMjQwNiwgMS4xOTYzNSwgMS40NzM5OCIsIFwKLSAgICAgICAgICAiMC4xNjcxNzcsIDAuMTgxMDg2LCAwLjMwNTU4NCwgMC41MTMxNjEsIDAuNzIwNDcsIDEuMjA0NjIsIDEuNDgxMjEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTQ5ODAyLCAwLjE3NzM0NiwgMC40MjU2MzMsIDAuODQzODUyLCAxLjI1NzYsIDIuMjMzODMsIDIuNzgxODgiLCBcCi0gICAgICAgICAgIjAuMTQ5OTkyLCAwLjE3NzM2NCwgMC40MjU2MDUsIDAuODQzMzU4LCAxLjI1NzQ1LCAyLjIzMDkxLCAyLjc4MTYiLCBcCi0gICAgICAgICAgIjAuMTUwMTEzLCAwLjE3NzQ2NCwgMC40MjY4NzksIDAuODQyODYsIDEuMjU2ODEsIDIuMjI2OTEsIDIuNzgxNjkiLCBcCi0gICAgICAgICAgIjAuMTUwMjI5LCAwLjE3NzcxMywgMC40MjY3NTIsIDAuODQzODIsIDEuMjU3NDUsIDIuMjI5MDUsIDIuNzg5NzEiLCBcCi0gICAgICAgICAgIjAuMTUwNDY4LCAwLjE3NzgwMywgMC40MjYxNjQsIDAuODQzODU1LCAxLjI1NzU3LCAyLjIyOTksIDIuNzgxNTIiLCBcCi0gICAgICAgICAgIjAuMTUxMTI0LCAwLjE3ODE0OCwgMC40MjYzNDQsIDAuODQxNjc1LCAxLjI1NzMyLCAyLjIyOTA0LCAyLjc4Mzg3IiwgXAotICAgICAgICAgICIwLjE1MTMxNCwgMC4xNzg2MzMsIDAuNDI3MDkyLCAwLjg0MTg1NCwgMS4yNTcyOCwgMi4yMzI4NSwgMi43ODA5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkExTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTYxNjY0LCAwLjE4ODI4MiwgMC40Mjc0MDcsIDAuODI2NDA5LCAxLjIyNTE0LCAyLjE1NjQ3LCAyLjY4NjYyIiwgXAotICAgICAgICAgICIwLjE3MTc0NCwgMC4xOTgzODUsIDAuNDM3NTI5LCAwLjgzNTY4NCwgMS4yMzQ2MSwgMi4xNjQ2NCwgMi42OTYyMiIsIFwKLSAgICAgICAgICAiMC4xODI5OTgsIDAuMjA5NTYzLCAwLjQ0ODk0OSwgMC44NDc2NDYsIDEuMjQ2MzYsIDIuMTc1OTQsIDIuNzA3OTUiLCBcCi0gICAgICAgICAgIjAuMTkyMTE3LCAwLjIxODY4NywgMC40NTc5ODYsIDAuODU2NTUsIDEuMjU1NjQsIDIuMTg1OTEsIDIuNzE3MDciLCBcCi0gICAgICAgICAgIjAuMTk5ODIzLCAwLjIyNjQzNywgMC40NjU4MTgsIDAuODY0Mjg3LCAxLjI2MzExLCAyLjE5Mjk3LCAyLjcyNDczIiwgXAotICAgICAgICAgICIwLjIxMDQ0MSwgMC4yMzcwMzMsIDAuNDc2MzU0LCAwLjg3NTE1NSwgMS4yNzM1LCAyLjIwMzgyLCAyLjczNTkiLCBcCi0gICAgICAgICAgIjAuMjE4NTUsIDAuMjQ1MTUsIDAuNDg0NDAxLCAwLjg4MzUzLCAxLjI4MjA2LCAyLjIxMjU4LCAyLjc0NDEiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjg5NTQxLCAwLjM0MjU4OSwgMC44Mjk2NjMsIDEuNjM2MDIsIDIuNDQ0MTEsIDQuMzMwODMsIDUuNDEwNDIiLCBcCi0gICAgICAgICAgIjAuMjg5NTI3LCAwLjM0NDUwMSwgMC44Mjg3ODQsIDEuNjM2NDMsIDIuNDQ1ODcsIDQuMzQwNDcsIDUuNDEwOTYiLCBcCi0gICAgICAgICAgIjAuMjg5NTYsIDAuMzQyOTE4LCAwLjgyNzczMiwgMS42MzczNCwgMi40NDQwMSwgNC4zNDA0OSwgNS40MTE2MyIsIFwKLSAgICAgICAgICAiMC4yODk1NzIsIDAuMzQyOTQ5LCAwLjgyOTQ5OCwgMS42MzkzLCAyLjQ0NDM4LCA0LjMyOTc4LCA1LjQwNzI3IiwgXAotICAgICAgICAgICIwLjI4OTUyOSwgMC4zNDI5NDksIDAuODI3NTc1LCAxLjYzODA2LCAyLjQ1NzU2LCA0LjM0MDI0LCA1LjQxMTU3IiwgXAotICAgICAgICAgICIwLjI4OTUzMSwgMC4zNDI3OTYsIDAuODI4MTgzLCAxLjY0NDk5LCAyLjQ0OTc2LCA0LjMzMjQ4LCA1LjQwOTk1IiwgXAotICAgICAgICAgICIwLjI4OTIxOCwgMC4zNDM0MzQsIDAuODI5NTMsIDEuNjM1NzcsIDIuNDQzOTUsIDQuMzMzNCwgNS40MDczMiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTA5NzcsIDAuMTI0ODI4LCAwLjI0OTM0NywgMC40NTY3NTcsIDAuNjY0MzQ1LCAxLjE0ODQzLCAxLjQyNDc5IiwgXAotICAgICAgICAgICIwLjExOTcwMiwgMC4xMzM1NSwgMC4yNTgwNTksIDAuNDY1NTE2LCAwLjY3MzAyNSwgMS4xNTcwOCwgMS40MzM5MSIsIFwKLSAgICAgICAgICAiMC4xMzEwNDUsIDAuMTQ0ODgzLCAwLjI2OTQwNCwgMC40NzY5NDUsIDAuNjg0NDEzLCAxLjE2ODMsIDEuNDQ1NDUiLCBcCi0gICAgICAgICAgIjAuMTQwMzQxLCAwLjE1NDE4OSwgMC4yNzg3MzQsIDAuNDg2MTY5LCAwLjY5MzY4NiwgMS4xNzc2OCwgMS40NTQ5IiwgXAotICAgICAgICAgICIwLjE0OTMxMiwgMC4xNjMxNjUsIDAuMjg3NjU0LCAwLjQ5NTEzNywgMC43MDI5MDYsIDEuMTg3MzgsIDEuNDYzMjQiLCBcCi0gICAgICAgICAgIjAuMTYxMjU0LCAwLjE3NTA2LCAwLjI5ODYwMiwgMC41MDY5MjUsIDAuNzE0NDg2LCAxLjE5NzUxLCAxLjQ3NTAyIiwgXAotICAgICAgICAgICIwLjE3MDI1OSwgMC4xODM5NTgsIDAuMzA4NDI4LCAwLjUxNTc3MywgMC43MjM0MiwgMS4yMDczMiwgMS40ODM5OSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNDk4MTEsIDAuMTc3Mzc5LCAwLjQyNTYsIDAuODQzNzkyLCAxLjI1ODA4LCAyLjIzMzAxLCAyLjc4MTkiLCBcCi0gICAgICAgICAgIjAuMTUwMDYzLCAwLjE3NzE3NCwgMC40MjY4NTgsIDAuODQzMzQxLCAxLjI1NjY3LCAyLjIyNjUxLCAyLjc4NTYzIiwgXAotICAgICAgICAgICIwLjE1MDAzMiwgMC4xNzc0MjMsIDAuNDI2ODYzLCAwLjg0MjQyNywgMS4yNTc4LCAyLjIzMzA3LCAyLjc4NjY1IiwgXAotICAgICAgICAgICIwLjE1MDE2MywgMC4xNzc4NzIsIDAuNDI1NTI2LCAwLjg0MzM4MiwgMS4yNTY2NywgMi4yMjcwMSwgMi43ODIxOSIsIFwKLSAgICAgICAgICAiMC4xNTA2NjUsIDAuMTc4MDU1LCAwLjQyNjA4MywgMC44NDEzMzgsIDEuMjU3MjMsIDIuMjI4ODYsIDIuNzg5NjMiLCBcCi0gICAgICAgICAgIjAuMTUxMjY4LCAwLjE3ODQwOSwgMC40MjcwNzcsIDAuODQzMjE2LCAxLjI1ODc4LCAyLjIzMjg1LCAyLjc4MTU2IiwgXAotICAgICAgICAgICIwLjE1MTY4OCwgMC4xNzg4MDUsIDAuNDI2NDA0LCAwLjg0MzI5LCAxLjI1NzUzLCAyLjIzMzAxLCAyLjc4OTE5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNDg5MjUsIDAuMTc1NDk2LCAwLjQxNDg3NCwgMC44MTM5MDUsIDEuMjEyMjUsIDIuMTQyOSwgMi42NzM5MSIsIFwKLSAgICAgICAgICAiMC4xNTczNDksIDAuMTg0MDEyLCAwLjQyMzEzNCwgMC44MjE3OTUsIDEuMjIwOTMsIDIuMTUxMzIsIDIuNjgyNiIsIFwKLSAgICAgICAgICAiMC4xNjcxNDYsIDAuMTkzNzg1LCAwLjQzMzE3NiwgMC44MzE4NTMsIDEuMjMxMDksIDIuMTYwNzcsIDIuNjkyNzEiLCBcCi0gICAgICAgICAgIjAuMTc2ODk5LCAwLjIwMzUyOSwgMC40NDI4OTYsIDAuODQxOTk2LCAxLjI0MDQzLCAyLjE3MTQ5LCAyLjcwMjk1IiwgXAotICAgICAgICAgICIwLjE4NjY2NCwgMC4yMTMyMzYsIDAuNDUyNzUyLCAwLjg1MjI4MSwgMS4yNTExMywgMi4xODExNSwgMi43MTE2IiwgXAotICAgICAgICAgICIwLjIwMjQzMSwgMC4yMjg5NjgsIDAuNDY4NzYzLCAwLjg2Nzg2LCAxLjI2NTc0LCAyLjE5NTk2LCAyLjcyODIyIiwgXAotICAgICAgICAgICIwLjIxNjUzOSwgMC4yNDI1NTcsIDAuNDgyNDAxLCAwLjg4MTM2MSwgMS4yODAxMywgMi4yMTEyNSwgMi43NDE3OSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yODkxMzIsIDAuMzQzNDQ1LCAwLjgyODI4OSwgMS42MzY4MSwgMi40NDUyMywgNC4zNDEyNSwgNS40MTY5NiIsIFwKLSAgICAgICAgICAiMC4yOTAzOTMsIDAuMzQyODE5LCAwLjgyOTQyNSwgMS42MzcxMSwgMi40NDQxMiwgNC4zMzAxNywgNS40MTIzNiIsIFwKLSAgICAgICAgICAiMC4yODkwMzYsIDAuMzQ0NTMxLCAwLjgyOTYxOCwgMS42MzcyNiwgMi40NDk5MSwgNC4zNDEzNiwgNS40MTA5IiwgXAotICAgICAgICAgICIwLjI4OTgwNywgMC4zNDMyOTIsIDAuODI5NTI2LCAxLjYzOTE4LCAyLjQ0OTY0LCA0LjMzMTQ5LCA1LjQxMjE4IiwgXAotICAgICAgICAgICIwLjI5MjI3NCwgMC4zNDUxMTUsIDAuODI5Mzk1LCAxLjYzNjI2LCAyLjQ0MzUzLCA0LjMyOTk1LCA1LjQxMDg5IiwgXAotICAgICAgICAgICIwLjI5NjkwMSwgMC4zNDg3MzksIDAuODI3NzksIDEuNjM5MjQsIDIuNDQ5MiwgNC4zMzU3MSwgNS40MDg1MiIsIFwKLSAgICAgICAgICAiMC4zMDI3ODUsIDAuMzUzNTEsIDAuODI4OTEsIDEuNjM3ODUsIDIuNDQ5MjksIDQuMzI5ODIsIDUuNDEwNjciKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc5NjIxLCAwLjA5MzQ3NSwgMC4yMTgxMDMsIDAuNDI1NDY4LCAwLjYzMzA5MSwgMS4xMTczNSwgMS4zOTQyNSIsIFwKLSAgICAgICAgICAiMC4wODk2OTYsIDAuMTAzNTQ4LCAwLjIyODE0MiwgMC40MzU2MzksIDAuNjQzMTQyLCAxLjEyNzUzLCAxLjQwMzYyIiwgXAotICAgICAgICAgICIwLjEwMjUyNywgMC4xMTYzNDcsIDAuMjQwNzY0LCAwLjQ0ODA2LCAwLjY1NDU4MywgMS4xMzg3NSwgMS40MTU1NSIsIFwKLSAgICAgICAgICAiMC4xMTUwNzIsIDAuMTI4OTAzLCAwLjI1MzU4MywgMC40NjA4ODksIDAuNjY4MzksIDEuMTUwNzMsIDEuNDI3NCIsIFwKLSAgICAgICAgICAiMC4xMjg0MTMsIDAuMTQxNzQ1LCAwLjI2NjQwNywgMC40NzM2NjYsIDAuNjgxMjczLCAxLjE2Mjg3LCAxLjQzOTQ4IiwgXAotICAgICAgICAgICIwLjE0OTMyOCwgMC4xNjMxNjYsIDAuMjg3MTg4LCAwLjQ5NDI3NCwgMC43MDE2MiwgMS4xODI2MSwgMS40NTk5MyIsIFwKLSAgICAgICAgICAiMC4xNjc1MjQsIDAuMTgxNjA1LCAwLjMwNDU4OSwgMC41MTIzNjIsIDAuNzE5NDg4LCAxLjIwMDI5LCAxLjQ3Njc4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE0OTkyMSwgMC4xNzc3MiwgMC40MjcwNDMsIDAuODQzMDIxLCAxLjI1ODQ4LCAyLjIyNzg1LCAyLjc4MTkiLCBcCi0gICAgICAgICAgIjAuMTQ5OTIyLCAwLjE3NzcwNywgMC40MjY5NjcsIDAuODQyNzAzLCAxLjI1NzksIDIuMjI3NywgMi43ODEwOCIsIFwKLSAgICAgICAgICAiMC4xNTEyMjMsIDAuMTc4MjQ3LCAwLjQyNjk3OSwgMC44NDI2OSwgMS4yNTg0NSwgMi4yMjc5NCwgMi43ODE2NSIsIFwKLSAgICAgICAgICAiMC4xNTU1MTIsIDAuMTgxNjEyLCAwLjQyNzAwOCwgMC44NDI2MzcsIDEuMjU3OTEsIDIuMjI3NzcsIDIuNzgyODMiLCBcCi0gICAgICAgICAgIjAuMTYwOTE4LCAwLjE4NjczNywgMC40MjcyNzEsIDAuODQyNTksIDEuMjU4MDUsIDIuMjI4MTIsIDIuNzgyNDIiLCBcCi0gICAgICAgICAgIjAuMTcxNjg5LCAwLjE5NjI0NCwgMC40MzA3NjYsIDAuODQyNTg2LCAxLjI1ODQ4LCAyLjIyNzYsIDIuNzgzMzgiLCBcCi0gICAgICAgICAgIjAuMTgyNjIyLCAwLjIwNjQyMywgMC40MzYxMDQsIDAuODQyNjYxLCAxLjI1ODA4LCAyLjIyNzk0LCAyLjc4MTk1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTBOIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDEyMzMsIDAuMDAxMjM0LCAwLjAwMTIzNiwgMC4wMDEyMzgsIDAuMDAxMjM4LCAwLjAwMTIzOCwgMC4wMDEyMzciLCBcCi0gICAgICAgICAgIjAuMDAxMjExLCAwLjAwMTIxMiwgMC4wMDEyMTUsIDAuMDAxMjE3LCAwLjAwMTIxNywgMC4wMDEyMTgsIDAuMDAxMjE3IiwgXAotICAgICAgICAgICIwLjAwMTIwOCwgMC4wMDEyMSwgMC4wMDEyMTUsIDAuMDAxMjE3LCAwLjAwMTIxNywgMC4wMDEyMTgsIDAuMDAxMjE4IiwgXAotICAgICAgICAgICIwLjAwMTIxNSwgMC4wMDEyMTcsIDAuMDAxMjIzLCAwLjAwMTIyNSwgMC4wMDEyMjYsIDAuMDAxMjI3LCAwLjAwMTIyNyIsIFwKLSAgICAgICAgICAiMC4wMDEyMTQsIDAuMDAxMjE2LCAwLjAwMTIyMiwgMC4wMDEyMjUsIDAuMDAxMjI2LCAwLjAwMTIyNywgMC4wMDEyMjciLCBcCi0gICAgICAgICAgIjAuMDAxMjMxLCAwLjAwMTIzMywgMC4wMDEyNDEsIDAuMDAxMjQ0LCAwLjAwMTI0NSwgMC4wMDEyNDcsIDAuMDAxMjQ3IiwgXAotICAgICAgICAgICIwLjAwMTI1MSwgMC4wMDEyNTMsIDAuMDAxMjYyLCAwLjAwMTI2NSwgMC4wMDEyNjcsIDAuMDAxMjY4LCAwLjAwMTI2OCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjI2MiwgMC4wMDIyNjMsIDAuMDAyMjY2LCAwLjAwMjI2NywgMC4wMDIyNjgsIDAuMDAyMjY4LCAwLjAwMjI2OCIsIFwKLSAgICAgICAgICAiMC4wMDIyNDMsIDAuMDAyMjQ0LCAwLjAwMjI0OCwgMC4wMDIyNDksIDAuMDAyMjUsIDAuMDAyMjUsIDAuMDAyMjUiLCBcCi0gICAgICAgICAgIjAuMDAyMjM2LCAwLjAwMjIzOCwgMC4wMDIyNDIsIDAuMDAyMjQ0LCAwLjAwMjI0NSwgMC4wMDIyNDUsIDAuMDAyMjQ1IiwgXAotICAgICAgICAgICIwLjAwMjIzNCwgMC4wMDIyMzUsIDAuMDAyMjQxLCAwLjAwMjI0MiwgMC4wMDIyNDMsIDAuMDAyMjQ0LCAwLjAwMjI0NCIsIFwKLSAgICAgICAgICAiMC4wMDIyMzIsIDAuMDAyMjM1LCAwLjAwMjI0MSwgMC4wMDIyNDQsIDAuMDAyMjQ0LCAwLjAwMjI0NSwgMC4wMDIyNDUiLCBcCi0gICAgICAgICAgIjAuMDAyMjM4LCAwLjAwMjI0LCAwLjAwMjI0NiwgMC4wMDIyNDgsIDAuMDAyMjQ5LCAwLjAwMjI0OSwgMC4wMDIyNDkiLCBcCi0gICAgICAgICAgIjAuMDAyMjQyLCAwLjAwMjI0NCwgMC4wMDIyNTEsIDAuMDAyMjU0LCAwLjAwMjI1NSwgMC4wMDIyNTYsIDAuMDAyMjU2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTFOIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDEwNywgMC4wMDEwNzEsIDAuMDAxMDcyLCAwLjAwMTA3MywgMC4wMDEwNzMsIDAuMDAxMDc0LCAwLjAwMTA3MyIsIFwKLSAgICAgICAgICAiMC4wMDEwMzgsIDAuMDAxMDM5LCAwLjAwMTA0MSwgMC4wMDEwNDMsIDAuMDAxMDQyLCAwLjAwMTA0MywgMC4wMDEwNDQiLCBcCi0gICAgICAgICAgIjAuMDAxMDMzLCAwLjAwMTAzNCwgMC4wMDEwMzgsIDAuMDAxMDQsIDAuMDAxMDQsIDAuMDAxMDQxLCAwLjAwMTA0MSIsIFwKLSAgICAgICAgICAiMC4wMDEwMzIsIDAuMDAxMDM0LCAwLjAwMTAzOSwgMC4wMDEwNDEsIDAuMDAxMDQyLCAwLjAwMTA0MywgMC4wMDEwNDMiLCBcCi0gICAgICAgICAgIjAuMDAxMDQ0LCAwLjAwMTA0NSwgMC4wMDEwNTEsIDAuMDAxMDU0LCAwLjAwMTA1NSwgMC4wMDEwNTUsIDAuMDAxMDU1IiwgXAotICAgICAgICAgICIwLjAwMTA3NCwgMC4wMDEwNzYsIDAuMDAxMDgzLCAwLjAwMTA4NywgMC4wMDEwODgsIDAuMDAxMDg5LCAwLjAwMTA4OSIsIFwKLSAgICAgICAgICAiMC4wMDEwOCwgMC4wMDEwODIsIDAuMDAxMDg5LCAwLjAwMTA5MywgMC4wMDEwOTUsIDAuMDAxMDk2LCAwLjAwMTA5NiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjA2OSwgMC4wMDIwNywgMC4wMDIwNzQsIDAuMDAyMDc1LCAwLjAwMjA3NiwgMC4wMDIwNzYsIDAuMDAyMDc3IiwgXAotICAgICAgICAgICIwLjAwMjA0NCwgMC4wMDIwNDUsIDAuMDAyMDUsIDAuMDAyMDUxLCAwLjAwMjA1MiwgMC4wMDIwNTIsIDAuMDAyMDUyIiwgXAotICAgICAgICAgICIwLjAwMjA0MywgMC4wMDIwNDUsIDAuMDAyMDUsIDAuMDAyMDUyLCAwLjAwMjA1MywgMC4wMDIwNTQsIDAuMDAyMDU0IiwgXAotICAgICAgICAgICIwLjAwMjA1MywgMC4wMDIwNTUsIDAuMDAyMDYxLCAwLjAwMjA2NCwgMC4wMDIwNjUsIDAuMDAyMDY2LCAwLjAwMjA2NiIsIFwKLSAgICAgICAgICAiMC4wMDIwNTUsIDAuMDAyMDU3LCAwLjAwMjA2NCwgMC4wMDIwNjYsIDAuMDAyMDY3LCAwLjAwMjA2OCwgMC4wMDIwNjgiLCBcCi0gICAgICAgICAgIjAuMDAyMDY5LCAwLjAwMjA3MiwgMC4wMDIwODEsIDAuMDAyMDg1LCAwLjAwMjA4NywgMC4wMDIwODgsIDAuMDAyMDg4IiwgXAotICAgICAgICAgICIwLjAwMjA4OSwgMC4wMDIwOTIsIDAuMDAyMTAyLCAwLjAwMjEwNCwgMC4wMDIxMDcsIDAuMDAyMTA5LCAwLjAwMjEwOCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDEyNjksIDAuMDAxMjY5LCAwLjAwMTI3LCAwLjAwMTI3LCAwLjAwMTI3LCAwLjAwMTI3LCAwLjAwMTI3MSIsIFwKLSAgICAgICAgICAiMC4wMDEyNjQsIDAuMDAxMjY1LCAwLjAwMTI2OCwgMC4wMDEyNzEsIDAuMDAxMjcsIDAuMDAxMjcsIDAuMDAxMjcyIiwgXAotICAgICAgICAgICIwLjAwMTI2LCAwLjAwMTI2LCAwLjAwMTI2NiwgMC4wMDEyNjksIDAuMDAxMjY5LCAwLjAwMTI3LCAwLjAwMTI3IiwgXAotICAgICAgICAgICIwLjAwMTI1NSwgMC4wMDEyNTgsIDAuMDAxMjY1LCAwLjAwMTI2NywgMC4wMDEyNjksIDAuMDAxMjY5LCAwLjAwMTI3IiwgXAotICAgICAgICAgICIwLjAwMTI1MywgMC4wMDEyNTQsIDAuMDAxMjYzLCAwLjAwMTI2NiwgMC4wMDEyNjcsIDAuMDAxMjY5LCAwLjAwMTI2OSIsIFwKLSAgICAgICAgICAiMC4wMDEyNTEsIDAuMDAxMjUyLCAwLjAwMTI1OSwgMC4wMDEyNjUsIDAuMDAxMjY3LCAwLjAwMTI2OCwgMC4wMDEyNjkiLCBcCi0gICAgICAgICAgIjAuMDAxMjUsIDAuMDAxMjUyLCAwLjAwMTI1OSwgMC4wMDEyNjQsIDAuMDAxMjY2LCAwLjAwMTI2OCwgMC4wMDEyNjgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDAxNjEsIDAuMDAwMTYxLCAwLjAwMDE2MSwgMC4wMDAxNjEsIDAuMDAwMTYxLCAwLjAwMDE2MSwgMC4wMDAxNjEiLCBcCi0gICAgICAgICAgIjAuMDAwMTUxLCAwLjAwMDE1MiwgMC4wMDAxNTQsIDAuMDAwMTU1LCAwLjAwMDE1NSwgMC4wMDAxNTUsIDAuMDAwMTU1IiwgXAotICAgICAgICAgICIwLjAwMDE1LCAwLjAwMDE1LCAwLjAwMDE1MywgMC4wMDAxNTMsIDAuMDAwMTUyLCAwLjAwMDE1MiwgMC4wMDAxNTIiLCBcCi0gICAgICAgICAgIjAuMDAwMTQ5LCAwLjAwMDE0OSwgMC4wMDAxNTIsIDAuMDAwMTUzLCAwLjAwMDE1NCwgMC4wMDAxNTIsIDAuMDAwMTUyIiwgXAotICAgICAgICAgICIwLjAwMDE1MSwgMC4wMDAxNSwgMC4wMDAxNTMsIDAuMDAwMTUzLCAwLjAwMDE1MywgMC4wMDAxNTIsIDAuMDAwMTUyIiwgXAotICAgICAgICAgICIwLjAwMDE1NiwgMC4wMDAxNTYsIDAuMDAwMTU0LCAwLjAwMDE1NCwgMC4wMDAxNTQsIDAuMDAwMTUyLCAwLjAwMDE1MiIsIFwKLSAgICAgICAgICAiMC4wMDAxNjIsIDAuMDAwMTYxLCAwLjAwMDE1NSwgMC4wMDAxNTUsIDAuMDAwMTU0LCAwLjAwMDE1MywgMC4wMDAxNTMiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IEFPSTJCQjJYMiAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKEFPSTJCQjJYMikgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjMzMDM0MzsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQTBOKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA1OTY0ODk7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNTk2NDg5OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDU5NjQxOTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDEwMDgsIDAuMDAwOTg1LCAwLjAwMDk3NywgMC4wMDA5ODEsIDAuMDAwOTkxLCAwLjAwMTAxLCAwLjAwMTAzNCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjI2MiwgMC4wMDIyNCwgMC4wMDIyMjgsIDAuMDAyMjMyLCAwLjAwMjIzOSwgMC4wMDIyNTksIDAuMDAyMjc3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihBMU4pICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYxMzYzODsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MTMxNjY7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjEzNjM4OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTAwNSwgMC4wMDA5ODIsIDAuMDAwOTc0LCAwLjAwMDk3OSwgMC4wMDA5ODcsIDAuMDAxMDExLCAwLjAwMTAzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyNDM2LCAwLjAwMjQxNCwgMC4wMDI0MDYsIDAuMDAyNDA4LCAwLjAwMjQxNCwgMC4wMDI0MzQsIDAuMDAyNDQ4Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNzE3MjI7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNzE3MjI7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNzEyNTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyMDIsIDAuMDAwMjAyLCAwLjAwMDIwMiwgMC4wMDAyMDIsIDAuMDAwMjAyLCAwLjAwMDIwMywgMC4wMDAyMDMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyMDIsIDAuMDAwMjAyLCAwLjAwMDIwMiwgMC4wMDAyMDIsIDAuMDAwMjAyLCAwLjAwMDIwMiwgMC4wMDAyMDIiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIxKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE2NjYyNjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE2NjUxOTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE2NjYyNjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyMDMsIDAuMDAwMjAzLCAwLjAwMDIwMiwgMC4wMDAyMDMsIDAuMDAwMjAzLCAwLjAwMDIwMywgMC4wMDAyMDMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyMDIsIDAuMDAwMjAyLCAwLjAwMDIwMiwgMC4wMDAyMDEsIDAuMDAwMjAxLCAwLjAwMDIwMSwgMC4wMDAyMDEiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4yNzIxMzY7Ci0gICAgZnVuY3Rpb24gOiAiKCEoKEIwIEIxKSsoIShBME4rQTFOKSkpKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTBOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTA4MDIsIDAuMjg4NjkyLCAwLjQ0ODgzNiwgMC42NDg3NDMsIDAuODQ4NjczLCAxLjA0OTA3LCAxLjI0OTA0IiwgXAotICAgICAgICAgICIwLjEwMTAwMywgMC4yOTg4MzgsIDAuNDU4ODkxLCAwLjY1ODgwOSwgMC44NTg4MTIsIDEuMDU4MTIsIDEuMjU4NjQiLCBcCi0gICAgICAgICAgIjAuMTEzNjAzLCAwLjMxMTQ4MiwgMC40NzEzOTEsIDAuNjcxNzEsIDAuODcyMTMsIDEuMDcxNDEsIDEuMjcxODMiLCBcCi0gICAgICAgICAgIjAuMTI0NzI5LCAwLjMyMjc4NywgMC40ODI3OTcsIDAuNjgyODM4LCAwLjg4MjY3MywgMS4wODMyLCAxLjI4MyIsIFwKLSAgICAgICAgICAiMC4xMzQ1MDEsIDAuMzMyNTEyLCAwLjQ5MjU4NSwgMC42OTI1ODksIDAuODkyNDUxLCAxLjA5MjkzLCAxLjI5MjI5IiwgXAotICAgICAgICAgICIwLjE0NzgyOCwgMC4zNDU4MzgsIDAuNTA2MTAxLCAwLjcwNTg2LCAwLjkwNTc4NiwgMS4xMDU2NiwgMS4zMDU2NSIsIFwKLSAgICAgICAgICAiMC4xNTgyNDQsIDAuMzU2MjYyLCAwLjUxNjM0OSwgMC43MTY2MTgsIDAuOTE2Mzc4LCAxLjExNTk5LCAxLjMxNjA3Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwNzg5NSwgMC41MTI3ODMsIDAuODM4ODg3LCAxLjI0NTAxLCAxLjY1MTcyLCAyLjA1ODM0LCAyLjQ2Mzk5IiwgXAotICAgICAgICAgICIwLjEwNzgzNiwgMC41MTI0NDksIDAuODM4MjE3LCAxLjI0NTI1LCAxLjY1MTY1LCAyLjA1NjY3LCAyLjQ2MzkzIiwgXAotICAgICAgICAgICIwLjEwNzkwNSwgMC41MTI3OTcsIDAuODM4MDAxLCAxLjI0NTE2LCAxLjY1MTU5LCAyLjA1ODQsIDIuNDY0OTUiLCBcCi0gICAgICAgICAgIjAuMTA3OTkzLCAwLjUxMjkzMSwgMC44Mzg4MDYsIDEuMjQ1MDYsIDEuNjUxNzMsIDIuMDU3OTMsIDIuNDY0IiwgXAotICAgICAgICAgICIwLjEwODE0NiwgMC41MTMwNiwgMC44MzgyMjIsIDEuMjQ1MDMsIDEuNjUxNzMsIDIuMDU3OTQsIDIuNDY0MDIiLCBcCi0gICAgICAgICAgIjAuMTA4NDA3LCAwLjUxMjg0LCAwLjgzODUzNSwgMS4yNDUwMSwgMS42NTE3NSwgMi4wNTgyOCwgMi40NjQ1OSIsIFwKLSAgICAgICAgICAiMC4xMDg3NTMsIDAuNTEyODUzLCAwLjgzODI1MSwgMS4yNDUzLCAxLjY1MTk3LCAyLjA1ODE0LCAyLjQ2NDA1Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5MjAzNiwgMC4yODM0NjQsIDAuNDM1ODY0LCAwLjYyNjI3MiwgMC44MTY1NzcsIDEuMDA3MTcsIDEuMTk3NDMiLCBcCi0gICAgICAgICAgIjAuMTAxODMsIDAuMjkzMjk0LCAwLjQ0NTgxOCwgMC42MzYwNDksIDAuODI2NDAxLCAxLjAxNjgsIDEuMjA2OTEiLCBcCi0gICAgICAgICAgIjAuMTEzODY1LCAwLjMwNTM3OCwgMC40NTc4MzUsIDAuNjQ4NDU3LCAwLjgzODU1LCAxLjAyODY5LCAxLjIxOTE3IiwgXAotICAgICAgICAgICIwLjEyNDI5OCwgMC4zMTU4ODIsIDAuNDY4MzQxLCAwLjY1ODc3MSwgMC44NDkxODgsIDEuMDM5MTcsIDEuMjI5NzIiLCBcCi0gICAgICAgICAgIjAuMTMzMTg3LCAwLjMyNDgzOCwgMC40NzczNDYsIDAuNjY3NTcxLCAwLjg1NzkzNywgMS4wNDg1NSwgMS4yMzg1MiIsIFwKLSAgICAgICAgICAiMC4xNDUzMzQsIDAuMzM2OTI3LCAwLjQ4OTM1NiwgMC42Nzk3MjYsIDAuODcwMTIxLCAxLjA2MDM2LCAxLjI1MDYzIiwgXAotICAgICAgICAgICIwLjE1NTEyNywgMC4zNDY3NiwgMC40OTkyMTgsIDAuNjg5NiwgMC44ODAxODksIDEuMDcwMTgsIDEuMjYwNjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTExMjQzLCAwLjQ4NjkxMiwgMC43ODgwMzgsIDEuMTY0MDksIDEuNTQwMjgsIDEuOTE2NTEsIDIuMjkyMTUiLCBcCi0gICAgICAgICAgIjAuMTExMjUsIDAuNDg2OTEzLCAwLjc4Nzk2MiwgMS4xNjQwMSwgMS41NDAxOCwgMS45MTU5OSwgMi4yOTI3MSIsIFwKLSAgICAgICAgICAiMC4xMTEyOCwgMC40ODY4MjEsIDAuNzg3ODQsIDEuMTYzOTcsIDEuNTQwMDcsIDEuOTE2NTEsIDIuMjkyMiIsIFwKLSAgICAgICAgICAiMC4xMTE0MTEsIDAuNDg2OTIzLCAwLjc4Nzk4NiwgMS4xNjQyLCAxLjU0MDAzLCAxLjkxNjA5LCAyLjI5MjEiLCBcCi0gICAgICAgICAgIjAuMTExNjI1LCAwLjQ4NjgwMSwgMC43ODgwMTQsIDEuMTY0MjMsIDEuNTQwNDEsIDEuOTE2NTcsIDIuMjkyNDYiLCBcCi0gICAgICAgICAgIjAuMTEyMDI3LCAwLjQ4NywgMC43ODc5ODIsIDEuMTYzODksIDEuNTQwMTEsIDEuOTE2NDUsIDIuMjkyNjMiLCBcCi0gICAgICAgICAgIjAuMTEyMzU2LCAwLjQ4Njk5NSwgMC43ODc5NCwgMS4xNjQyNCwgMS41Mzk5OCwgMS45MTY0NSwgMi4yOTI0NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMU4iOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4OTgyMiwgMC4yODc5MjMsIDAuNDQ3MDc5LCAwLjY0Njc2OSwgMC44NDc4MzksIDEuMDQ3MjEsIDEuMjQ3NDUiLCBcCi0gICAgICAgICAgIjAuMDk5OTgyLCAwLjI5ODAzNSwgMC40NTc1NTMsIDAuNjU3NDQsIDAuODU4MDMyLCAxLjA1NzE4LCAxLjI1NzcxIiwgXAotICAgICAgICAgICIwLjExMjYzNywgMC4zMTA5NDUsIDAuNDY5ODMyLCAwLjY3MDA4NiwgMC44Njk5MywgMS4wNzAwOSwgMS4yNzA2MyIsIFwKLSAgICAgICAgICAiMC4xMjM5OTEsIDAuMzIyMjIzLCAwLjQ4MTU0NiwgMC42ODE2LCAwLjg4MTQxNywgMS4wODIwOSwgMS4yODEyNiIsIFwKLSAgICAgICAgICAiMC4xMzM5NTIsIDAuMzMyMjA5LCAwLjQ5MTUzOCwgMC42OTE3OTEsIDAuODkxMzkxLCAxLjA5MTgzLCAxLjI5MTM1IiwgXAotICAgICAgICAgICIwLjE0NzU5NiwgMC4zNDU4ODUsIDAuNTA1MzA3LCAwLjcwNTE4NywgMC45MDUwNjksIDEuMTA1MDMsIDEuMzA0OTkiLCBcCi0gICAgICAgICAgIjAuMTU4MjQ0LCAwLjM1NjUzMiwgMC41MTU4NzEsIDAuNzE1ODkyLCAwLjkxNTkzMSwgMS4xMTU3OSwgMS4zMTY1MiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDU1MDgsIDAuNTA5NTYsIDAuODMzOTI1LCAxLjI0MTY2LCAxLjY0ODEyLCAyLjA1NjIyLCAyLjQ2Mjc2IiwgXAotICAgICAgICAgICIwLjEwNTU1MiwgMC41MTA1ODMsIDAuODM0NjY0LCAxLjI0NDE0LCAxLjY0NzU1LCAyLjA1OTQ4LCAyLjQ2MjEzIiwgXAotICAgICAgICAgICIwLjEwNTQ5NywgMC41MDk1MTksIDAuODM0OTQsIDEuMjQzODYsIDEuNjUxODMsIDIuMDU1OTIsIDIuNDYwNjUiLCBcCi0gICAgICAgICAgIjAuMTA1NjA4LCAwLjUxMDA3LCAwLjgzNjQ0OSwgMS4yNDIxNiwgMS42NTEyNCwgMi4wNTM5MSwgMi40NjYxMSIsIFwKLSAgICAgICAgICAiMC4xMDU3MDMsIDAuNTEwNTUyLCAwLjgzNjQ3MSwgMS4yNDE1OSwgMS42NTA5LCAyLjA1NDQ4LCAyLjQ2NDQxIiwgXAotICAgICAgICAgICIwLjEwNjExMSwgMC41MTA0MTQsIDAuODM0NzMsIDEuMjQzOSwgMS42NTEwNiwgMi4wNTg2NywgMi40NjYwOSIsIFwKLSAgICAgICAgICAiMC4xMDY0NTgsIDAuNTA5NjQsIDAuODM1MTM1LCAxLjI0Mzk3LCAxLjY0OTA5LCAyLjA1ODc3LCAyLjQ2MTQ5Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5MDMzNSwgMC4yODE3NTksIDAuNDM0MjEyLCAwLjYyNDU2NiwgMC44MTUwMjcsIDEuMDA1MjMsIDEuMTk1NzMiLCBcCi0gICAgICAgICAgIjAuMTAwMjI3LCAwLjI5MTY1NywgMC40NDQxNTgsIDAuNjM0NDM0LCAwLjgyNTI1NiwgMS4wMTUwMiwgMS4yMDYwNSIsIFwKLSAgICAgICAgICAiMC4xMTIyNCwgMC4zMDM3MjksIDAuNDU2MjAyLCAwLjY0NjYzMiwgMC44MzY4MjksIDEuMDI3NDcsIDEuMjE3NDIiLCBcCi0gICAgICAgICAgIjAuMTIyODQzLCAwLjMxNDQ0MSwgMC40NjY5MDMsIDAuNjU3Mjg5LCAwLjg0ODA1NCwgMS4wMzc3NywgMS4yMjg4NSIsIFwKLSAgICAgICAgICAiMC4xMzE4OTIsIDAuMzIzMzkxLCAwLjQ3NTk0MiwgMC42NjYzMTYsIDAuODU2OTI3LCAxLjA0NjczLCAxLjIzNzYiLCBcCi0gICAgICAgICAgIjAuMTQ0NTkzLCAwLjMzNjEyLCAwLjQ4ODUzLCAwLjY3OTAyNCwgMC44NjkyNCwgMS4wNjAyMSwgMS4yNDk3NiIsIFwKLSAgICAgICAgICAiMC4xNTQ1ODQsIDAuMzQ2MDMxLCAwLjQ5ODU2NywgMC42ODg4MzcsIDAuODc5MjU0LCAxLjA2OTM4LCAxLjI1OTgzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExMTQsIDAuNDg2ODY3LCAwLjc4Nzk0MywgMS4xNjQxOCwgMS41NDAyNCwgMS45MTYwOSwgMi4yOTIwNSIsIFwKLSAgICAgICAgICAiMC4xMTEzNzcsIDAuNDg2OTA1LCAwLjc4ODAyNSwgMS4xNjQyLCAxLjU0MDMxLCAxLjkxNjU0LCAyLjI5MjE4IiwgXAotICAgICAgICAgICIwLjExMTQ0LCAwLjQ4Njk2NiwgMC43ODgwNDcsIDEuMTY0MTQsIDEuNTQwMzEsIDEuOTE2NTYsIDIuMjkyMjYiLCBcCi0gICAgICAgICAgIjAuMTExNzA0LCAwLjQ4Njg5MywgMC43ODc5LCAxLjE2Mzk3LCAxLjU0MDIzLCAxLjkxNjU3LCAyLjI5MjU5IiwgXAotICAgICAgICAgICIwLjExMjE4NiwgMC40ODY5MzcsIDAuNzg3OTgxLCAxLjE2NDIyLCAxLjU0MDMzLCAxLjkxNjA1LCAyLjI5MjExIiwgXAotICAgICAgICAgICIwLjExMjgxOCwgMC40ODcwMDMsIDAuNzg3OTcsIDEuMTY0MjIsIDEuNTQwMiwgMS45MTY1LCAyLjI5MjY3IiwgXAotICAgICAgICAgICIwLjExMzQ4NSwgMC40ODcwNDksIDAuNzg4MDExLCAxLjE2NDI1LCAxLjU0MDI1LCAxLjkxNjAyLCAyLjI5MjQzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTY5NiwgMC4yNTMyMTEsIDAuNDEwNTU1LCAwLjYwODMzNCwgMC44MDYxNDEsIDEuMDAzNjUsIDEuMjAxMyIsIFwKLSAgICAgICAgICAiMC4wNjU5NDEsIDAuMjYyNTI1LCAwLjQxOTU4NSwgMC42MTc2NTMsIDAuODE1MTE0LCAxLjAxMzE0LCAxLjIxMSIsIFwKLSAgICAgICAgICAiMC4wNzcyMzEsIDAuMjczNzYzLCAwLjQzMDkwOSwgMC42MjkxMTgsIDAuODI2MzcsIDEuMDI0NTUsIDEuMjIxODciLCBcCi0gICAgICAgICAgIjAuMDg5MDU3LCAwLjI4NTI1NCwgMC40NDIzOTQsIDAuNjQwMjQ3LCAwLjgzNzg1MiwgMS4wMzYxMywgMS4yMzM4IiwgXAotICAgICAgICAgICIwLjEwMDk1OCwgMC4yOTY4NCwgMC40NTM5NiwgMC42NTIwNTQsIDAuODQ5ODI3LCAxLjA0NzM0LCAxLjI0NTE4IiwgXAotICAgICAgICAgICIwLjExODMzMywgMC4zMTUzNTEsIDAuNDcyNDQ4LCAwLjY3MDE5MiwgMC44NjgyMzIsIDEuMDY1NjIsIDEuMjYzNSIsIFwKLSAgICAgICAgICAiMC4xMzExODgsIDAuMzMxNTE3LCAwLjQ4ODYwMSwgMC42ODY1MDIsIDAuODg0MjA1LCAxLjA4MTk3LCAxLjI3OTc1Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwNzQyMSwgMC41MDY4NDEsIDAuODI4MzAxLCAxLjIzMDE5LCAxLjYzMTc5LCAyLjAzMzE5LCAyLjQzNjMxIiwgXAotICAgICAgICAgICIwLjEwNzIwNywgMC41MDY4NjcsIDAuODI4NTc2LCAxLjIzMDQzLCAxLjYzMjA0LCAyLjAzMjgyLCAyLjQzNDk0IiwgXAotICAgICAgICAgICIwLjExMDM5NCwgMC41MDY3MDYsIDAuODI4NzQ5LCAxLjIyOTU2LCAxLjYzMTksIDIuMDMzMDgsIDIuNDM1MzQiLCBcCi0gICAgICAgICAgIjAuMTE2MTYzLCAwLjUwNjgyMSwgMC44MjgyODIsIDEuMjMwMTksIDEuNjMxODQsIDIuMDMzNDQsIDIuNDM0MzIiLCBcCi0gICAgICAgICAgIjAuMTIzMzMsIDAuNTA2ODQ0LCAwLjgyODM4OSwgMS4yMzAzMiwgMS42MzE2MiwgMi4wMzM3NywgMi40MzQ0NSIsIFwKLSAgICAgICAgICAiMC4xMzY1NjYsIDAuNTA5NTU2LCAwLjgyODM4MywgMS4yMzAwMiwgMS42MzEzMSwgMi4wMzM1NiwgMi40MzUxMSIsIFwKLSAgICAgICAgICAiMC4xNDkxMSwgMC41MTM5NjcsIDAuODI4NjkzLCAxLjIzMDA0LCAxLjYzMTk0LCAyLjAzMzk1LCAyLjQzNDQ0Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1MzY0NywgMC4yNDQxNzIsIDAuMzk2NDU2LCAwLjU4Njg3OSwgMC43NzcyMzUsIDAuOTY3NjkxLCAxLjE1Nzc1IiwgXAotICAgICAgICAgICIwLjA2MjYyNCwgMC4yNTM0NDIsIDAuNDA1Nzc5LCAwLjU5NjIxOSwgMC43ODY1NTQsIDAuOTc2OTE4LCAxLjE2NzEyIiwgXAotICAgICAgICAgICIwLjA3MzQ0NCwgMC4yNjQ1MjksIDAuNDE2OTMyLCAwLjYwNzMyNSwgMC43OTc2NzksIDAuOTg3OTkyLCAxLjE3ODQ0IiwgXAotICAgICAgICAgICIwLjA4NDIwNiwgMC4yNzU0NzIsIDAuNDI4MDgzLCAwLjYxODM4NCwgMC44MDg4NjcsIDAuOTk5MywgMS4xODk0NyIsIFwKLSAgICAgICAgICAiMC4wOTUwNTksIDAuMjg2NTkyLCAwLjQzOTEyMiwgMC42Mjk1OTIsIDAuODE5ODgyLCAxLjAxMDI0LCAxLjIwMDQyIiwgXAotICAgICAgICAgICIwLjExMDAxNSwgMC4zMDQxNTQsIDAuNDU2MTg5LCAwLjY0NzI5MiwgMC44Mzc3MTYsIDEuMDI4MDQsIDEuMjE4NiIsIFwKLSAgICAgICAgICAiMC4xMjIzMzMsIDAuMzE5MDg2LCAwLjQ3MTk3MywgMC42NjI1NDUsIDAuODUzMDkxLCAxLjA0MzgsIDEuMjM0MDgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk4MDU4LCAwLjQ3MzczOSwgMC43NzQ1NzQsIDEuMTUxMDEsIDEuNTI3MjgsIDEuOTEyMjksIDIuMjgzMSIsIFwKLSAgICAgICAgICAiMC4wOTgwOSwgMC40NzM3NCwgMC43NzQ1OTcsIDEuMTUwNjYsIDEuNTI3MzIsIDEuOTA1LCAyLjI3ODg0IiwgXAotICAgICAgICAgICIwLjEwMDIxNSwgMC40NzM3ODcsIDAuNzc0NjE1LCAxLjE1MDc2LCAxLjUzMjE0LCAxLjkwMzQ3LCAyLjI3OTkiLCBcCi0gICAgICAgICAgIjAuMTA0MzEyLCAwLjQ3Mzc4NSwgMC43NzQ3MDcsIDEuMTUwOTUsIDEuNTI3MjEsIDEuOTEwMzQsIDIuMjgyMzMiLCBcCi0gICAgICAgICAgIjAuMTA5NzQsIDAuNDczOTY0LCAwLjc3NDc2NCwgMS4xNTA4OCwgMS41MzEyOCwgMS45MDk0MiwgMi4yODI0IiwgXAotICAgICAgICAgICIwLjExOTI3NSwgMC40NzU4OTEsIDAuNzc0NTMyLCAxLjE1MDk2LCAxLjUyNjY4LCAxLjkwMzM0LCAyLjI4Nzg3IiwgXAotICAgICAgICAgICIwLjEyOTA1NCwgMC40Nzg3OTQsIDAuNzc1MjYsIDEuMTUzMzMsIDEuNTI3MzIsIDEuOTAyODQsIDIuMjc5NTQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1NTE5LCAwLjI1NTQ5NywgMC40MTU1NzcsIDAuNjE1NjgzLCAwLjgxNTQ2NywgMS4wMTU2NywgMS4yMTU3OSIsIFwKLSAgICAgICAgICAiMC4wNjQyMDIsIDAuMjY0NzI3LCAwLjQyNDc3MiwgMC42MjUwOTMsIDAuODI0ODY0LCAxLjAyNDkzLCAxLjIyNDciLCBcCi0gICAgICAgICAgIjAuMDc1NzEsIDAuMjc2MzExLCAwLjQzNjQsIDAuNjM2ODA5LCAwLjgzNjQ2OCwgMS4wMzYwOSwgMS4yMzYzMSIsIFwKLSAgICAgICAgICAiMC4wODcxNDIsIDAuMjg3MzYzLCAwLjQ0NzU3MSwgMC42NDc3NzEsIDAuODQ3NDAxLCAxLjA0ODE5LCAxLjI0NzE4IiwgXAotICAgICAgICAgICIwLjA5ODkwNiwgMC4yOTkwNDksIDAuNDU5MDUzLCAwLjY1OTI4MSwgMC44NTkxMTUsIDEuMDU5MjksIDEuMjU5NDQiLCBcCi0gICAgICAgICAgIjAuMTE1OTc5LCAwLjMxNzQ2NCwgMC40Nzc3MTUsIDAuNjc3NjM4LCAwLjg3NzY3MywgMS4wNzc0OSwgMS4yNzc5MSIsIFwKLSAgICAgICAgICAiMC4xMjg3MDgsIDAuMzMzNTkxLCAwLjQ5MzY0NywgMC42OTM5NjgsIDAuODkzNjY0LCAxLjA5Mzg3LCAxLjI5Mzc0Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwNjE5MywgMC41MTI5MTEsIDAuODM4MzE1LCAxLjI0NDk4LCAxLjY1MTg0LCAyLjA1NzU4LCAyLjQ2NDYxIiwgXAotICAgICAgICAgICIwLjEwNTk4NCwgMC41MTI5MDQsIDAuODM4MjI3LCAxLjI0NTM1LCAxLjY1MTk1LCAyLjA1NzU2LCAyLjQ2NTEyIiwgXAotICAgICAgICAgICIwLjEwOTIwOCwgMC41MTI5MDUsIDAuODM4MjYzLCAxLjI0NDM4LCAxLjY1MTk0LCAyLjA1ODE4LCAyLjQ2NTE0IiwgXAotICAgICAgICAgICIwLjExNTI3NSwgMC41MTI5NDMsIDAuODM4MjY1LCAxLjI0NTU3LCAxLjY1MTc4LCAyLjA1ODc5LCAyLjQ2Njk0IiwgXAotICAgICAgICAgICIwLjEyMjUyOSwgMC41MTI4ODksIDAuODM4NjkxLCAxLjI0NDk1LCAxLjY1MTgyLCAyLjA1ODQ2LCAyLjQ2NDIzIiwgXAotICAgICAgICAgICIwLjEzNjE0NCwgMC41MTUzMTQsIDAuODM4MDU2LCAxLjI0NTA3LCAxLjY1MTkxLCAyLjA1ODU5LCAyLjQ2NDYxIiwgXAotICAgICAgICAgICIwLjE0ODc5NiwgMC41MTk3MiwgMC44Mzg2MDYsIDEuMjQ1MDIsIDEuNjUxNjcsIDIuMDU3NywgMi40NjYyOCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTEzODIsIDAuMjQxODk3LCAwLjM5NDIzNywgMC41ODQ2NywgMC43NzQ5OTcsIDAuOTY1Mjk1LCAxLjE1NTc0IiwgXAotICAgICAgICAgICIwLjA2MDU2OSwgMC4yNTEzNTQsIDAuNDAzNzYzLCAwLjU5NDE2NiwgMC43ODQ0OTYsIDAuOTc0NzU4LCAxLjE2NTAyIiwgXAotICAgICAgICAgICIwLjA3MTkwNywgMC4yNjI4NjgsIDAuNDE1MjM3LCAwLjYwNTY5NCwgMC43OTYwNjksIDAuOTg2MzQ0LCAxLjE3NjYiLCBcCi0gICAgICAgICAgIjAuMDg0MDU4LCAwLjI3NDc3OCwgMC40MjcyMDgsIDAuNjE3NjIxLCAwLjgwNzkzMSwgMC45OTgzNzcsIDEuMTg4NTkiLCBcCi0gICAgICAgICAgIjAuMDk1ODM4LCAwLjI4NjEzOCwgMC40Mzg2LCAwLjYyODk5MiwgMC44MTkzMTYsIDEuMDA5NywgMS4xOTk5MSIsIFwKLSAgICAgICAgICAiMC4xMTI3MDcsIDAuMzA0OTI5LCAwLjQ1NDgwOCwgMC42NDc3NTMsIDAuODM4MDg4LCAxLjAyODM5LCAxLjIxODgiLCBcCi0gICAgICAgICAgIjAuMTI1MzA1LCAwLjMyMTMxMSwgMC40NzM2NjYsIDAuNjY0MTAzLCAwLjg1NDQ2MSwgMS4wNDQ3OSwgMS4yMzUwNCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTgwNzYsIDAuNDczNzI3LCAwLjc3NTE0OSwgMS4xNTM4NSwgMS41MjY5NCwgMS45MDM3NCwgMi4yODI0OSIsIFwKLSAgICAgICAgICAiMC4wOTgxODIsIDAuNDczODUsIDAuNzc0NzEzLCAxLjE1MDY3LCAxLjUzMjMxLCAxLjkwNDE3LCAyLjI3ODYiLCBcCi0gICAgICAgICAgIjAuMTAxOTAxLCAwLjQ3Mzc1OCwgMC43NzQ1OSwgMS4xNTA4NSwgMS41MjY3NSwgMS45MDM1NCwgMi4yODE2MiIsIFwKLSAgICAgICAgICAiMC4xMDc4NzYsIDAuNDczODYyLCAwLjc3NTA0NiwgMS4xNTA5NSwgMS41MjcwNiwgMS45MDM1OSwgMi4yODE5NCIsIFwKLSAgICAgICAgICAiMC4xMTU1MDQsIDAuNDczOTA4LCAwLjc3NDU3NCwgMS4xNTA5NywgMS41MjcxMiwgMS45MTA5LCAyLjI4MiIsIFwKLSAgICAgICAgICAiMC4xMjk0MzEsIDAuNDc2ODAxLCAwLjc3NDcwMiwgMS4xNTA2MywgMS41MjY5OCwgMS45MDI4NSwgMi4yODg1OCIsIFwKLSAgICAgICAgICAiMC4xNDIzMDgsIDAuNDgxNDE1LCAwLjc3NTU1LCAxLjE1MzM0LCAxLjUyNjk4LCAxLjkwMzM0LCAyLjI3OTciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBME4iOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjA4OCwgMC4wMDYwOTcsIDAuMDA2MDk3LCAwLjAwNjA5NywgMC4wMDYwOTcsIDAuMDA2MDk0LCAwLjAwNjA5NiIsIFwKLSAgICAgICAgICAiMC4wMDYwNTgsIDAuMDA2MDY5LCAwLjAwNjA3MywgMC4wMDYwNzEsIDAuMDA2MDcsIDAuMDA2MDcsIDAuMDA2MDc3IiwgXAotICAgICAgICAgICIwLjAwNjA0NywgMC4wMDYwNjIsIDAuMDA2MDY0LCAwLjAwNjA2NiwgMC4wMDYwNjMsIDAuMDA2MDY2LCAwLjAwNjA2NiIsIFwKLSAgICAgICAgICAiMC4wMDYwNTEsIDAuMDA2MDcxLCAwLjAwNjA3MywgMC4wMDYwNzQsIDAuMDA2MDc0LCAwLjAwNjA3NCwgMC4wMDYwNzQiLCBcCi0gICAgICAgICAgIjAuMDA2MDU5LCAwLjAwNjA4MSwgMC4wMDYwODQsIDAuMDA2MDg1LCAwLjAwNjA4NiwgMC4wMDYwODUsIDAuMDA2MDg2IiwgXAotICAgICAgICAgICIwLjAwNjA4LCAwLjAwNjEwNCwgMC4wMDYxMDgsIDAuMDA2MTEsIDAuMDA2MTEsIDAuMDA2MTEsIDAuMDA2MTExIiwgXAotICAgICAgICAgICIwLjAwNjA5NiwgMC4wMDYxMjMsIDAuMDA2MTI4LCAwLjAwNjEzMSwgMC4wMDYxMzEsIDAuMDA2MTMxLCAwLjAwNjEzMSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNTY4MSwgMC4wMDU2OTYsIDAuMDA1Njk3LCAwLjAwNTY5NywgMC4wMDU2OTcsIDAuMDA1Njk3LCAwLjAwNTY5NiIsIFwKLSAgICAgICAgICAiMC4wMDU2NTIsIDAuMDA1NjczLCAwLjAwNTY3NSwgMC4wMDU2NzUsIDAuMDA1Njc4LCAwLjAwNTY3NiwgMC4wMDU2NzYiLCBcCi0gICAgICAgICAgIjAuMDA1NjMyLCAwLjAwNTY2MiwgMC4wMDU2NjcsIDAuMDA1NjY4LCAwLjAwNTY2OCwgMC4wMDU2NjgsIDAuMDA1NjY4IiwgXAotICAgICAgICAgICIwLjAwNTYyNiwgMC4wMDU2NjYsIDAuMDA1NjcxLCAwLjAwNTY3MywgMC4wMDU2NzUsIDAuMDA1Njc1LCAwLjAwNTY3NSIsIFwKLSAgICAgICAgICAiMC4wMDU2MjksIDAuMDA1NjczLCAwLjAwNTY3OSwgMC4wMDU2ODIsIDAuMDA1NjgzLCAwLjAwNTY4NCwgMC4wMDU2ODUiLCBcCi0gICAgICAgICAgIjAuMDA1NjQyLCAwLjAwNTY4OSwgMC4wMDU2OTcsIDAuMDA1NzAxLCAwLjAwNTcwMywgMC4wMDU3MDQsIDAuMDA1NzA1IiwgXAotICAgICAgICAgICIwLjAwNTY0NywgMC4wMDU2OTcsIDAuMDA1NzA1LCAwLjAwNTcxLCAwLjAwNTcxMiwgMC4wMDU3MTMsIDAuMDA1NzEzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTFOIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDU3MjIsIDAuMDA1NzQ4LCAwLjAwNTc1LCAwLjAwNTc1MSwgMC4wMDU3NTMsIDAuMDA1NzU0LCAwLjAwNTc1NCIsIFwKLSAgICAgICAgICAiMC4wMDU2ODcsIDAuMDA1NzIsIDAuMDA1NzI0LCAwLjAwNTcyNiwgMC4wMDU3MjYsIDAuMDA1NzI3LCAwLjAwNTcyNyIsIFwKLSAgICAgICAgICAiMC4wMDU2NjgsIDAuMDA1NzExLCAwLjAwNTcxMywgMC4wMDU3MTYsIDAuMDA1NzE5LCAwLjAwNTcyLCAwLjAwNTcyIiwgXAotICAgICAgICAgICIwLjAwNTY2MywgMC4wMDU3MTQsIDAuMDA1NzIxLCAwLjAwNTcyNSwgMC4wMDU3MjcsIDAuMDA1NzI4LCAwLjAwNTcyOCIsIFwKLSAgICAgICAgICAiMC4wMDU2NjYsIDAuMDA1NzIyLCAwLjAwNTczMSwgMC4wMDU3MzUsIDAuMDA1NzM3LCAwLjAwNTczOCwgMC4wMDU3MzkiLCBcCi0gICAgICAgICAgIjAuMDA1NjgsIDAuMDA1NzQyLCAwLjAwNTc1MiwgMC4wMDU3NTgsIDAuMDA1NzYyLCAwLjAwNTc2MywgMC4wMDU3NjQiLCBcCi0gICAgICAgICAgIjAuMDA1NjkzLCAwLjAwNTc2MSwgMC4wMDU3NzIsIDAuMDA1Nzc5LCAwLjAwNTc4MiwgMC4wMDU3ODMsIDAuMDA1Nzg0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1NDM5LCAwLjAwNTQ1OSwgMC4wMDU0NjEsIDAuMDA1NDYxLCAwLjAwNTQ2MiwgMC4wMDU0NjEsIDAuMDA1NDYxIiwgXAotICAgICAgICAgICIwLjAwNTQwOSwgMC4wMDU0MzcsIDAuMDA1NDQsIDAuMDA1NDQxLCAwLjAwNTQ0MiwgMC4wMDU0NDEsIDAuMDA1NDQyIiwgXAotICAgICAgICAgICIwLjAwNTM5NCwgMC4wMDU0MywgMC4wMDU0MzUsIDAuMDA1NDM3LCAwLjAwNTQzOCwgMC4wMDU0MzgsIDAuMDA1NDM4IiwgXAotICAgICAgICAgICIwLjAwNTM4NywgMC4wMDU0MjgsIDAuMDA1NDM1LCAwLjAwNTQzNywgMC4wMDU0MzgsIDAuMDA1NDM5LCAwLjAwNTQzOSIsIFwKLSAgICAgICAgICAiMC4wMDUzODgsIDAuMDA1NDMzLCAwLjAwNTQ0MSwgMC4wMDU0NDQsIDAuMDA1NDQ2LCAwLjAwNTQ0NywgMC4wMDU0NDciLCBcCi0gICAgICAgICAgIjAuMDA1Mzk1LCAwLjAwNTQ0NywgMC4wMDU0NTgsIDAuMDA1NDYxLCAwLjAwNTQ2NCwgMC4wMDU0NjUsIDAuMDA1NDY2IiwgXAotICAgICAgICAgICIwLjAwNTQxNCwgMC4wMDU0NjMsIDAuMDA1NDcsIDAuMDA1NDc0LCAwLjAwNTQ3NywgMC4wMDU0OCwgMC4wMDU0OCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQ0NTEsIDAuMDA0NDU3LCAwLjAwNDQ1OCwgMC4wMDQ0NTYsIDAuMDA0NDU4LCAwLjAwNDQ1NywgMC4wMDQ0NTQiLCBcCi0gICAgICAgICAgIjAuMDA0NDEsIDAuMDA0NDM4LCAwLjAwNDQ0MSwgMC4wMDQ0NDIsIDAuMDA0NDQzLCAwLjAwNDQ0MiwgMC4wMDQ0NDMiLCBcCi0gICAgICAgICAgIjAuMDA0Mzk0LCAwLjAwNDQyOSwgMC4wMDQ0MzUsIDAuMDA0NDM3LCAwLjAwNDQzOCwgMC4wMDQ0MzgsIDAuMDA0NDM5IiwgXAotICAgICAgICAgICIwLjAwNDM5MywgMC4wMDQ0MjUsIDAuMDA0NDMyLCAwLjAwNDQzNCwgMC4wMDQ0MzcsIDAuMDA0NDM3LCAwLjAwNDQzNiIsIFwKLSAgICAgICAgICAiMC4wMDQzOTgsIDAuMDA0NDIyLCAwLjAwNDQyOCwgMC4wMDQ0MzIsIDAuMDA0NDM0LCAwLjAwNDQzNSwgMC4wMDQ0MzYiLCBcCi0gICAgICAgICAgIjAuMDA0NDI3LCAwLjAwNDQyMywgMC4wMDQ0MjgsIDAuMDA0NDMyLCAwLjAwNDQzMywgMC4wMDQ0MzUsIDAuMDA0NDM1IiwgXAotICAgICAgICAgICIwLjAwNDQ2MiwgMC4wMDQ0MjksIDAuMDA0NDMyLCAwLjAwNDQzMywgMC4wMDQ0MzUsIDAuMDA0NDM1LCAwLjAwNDQzNSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDkzNywgMC4wMDA5NTUsIDAuMDAwOTU3LCAwLjAwMDk1OCwgMC4wMDA5NTgsIDAuMDAwOTU4LCAwLjAwMDk1OCIsIFwKLSAgICAgICAgICAiMC4wMDA5MDEsIDAuMDAwOTczLCAwLjAwMDk4MiwgMC4wMDA5ODcsIDAuMDAwOTg5LCAwLjAwMDk5LCAwLjAwMDk5MSIsIFwKLSAgICAgICAgICAiMC4wMDA4NDUsIDAuMDAwOTU5LCAwLjAwMDk3NSwgMC4wMDA5ODQsIDAuMDAwOTg4LCAwLjAwMDk5MSwgMC4wMDA5OTMiLCBcCi0gICAgICAgICAgIjAuMDAwODA4LCAwLjAwMDk0MywgMC4wMDA5NjUsIDAuMDAwOTc4LCAwLjAwMDk4NCwgMC4wMDA5ODgsIDAuMDAwOTkxIiwgXAotICAgICAgICAgICIwLjAwMDc4NSwgMC4wMDA5MjksIDAuMDAwOTU1LCAwLjAwMDk3MSwgMC4wMDA5NzksIDAuMDAwOTg0LCAwLjAwMDk4NyIsIFwKLSAgICAgICAgICAiMC4wMDA3NjgsIDAuMDAwOTA4LCAwLjAwMDk0MiwgMC4wMDA5NiwgMC4wMDA5NzEsIDAuMDAwOTc4LCAwLjAwMDk4MiIsIFwKLSAgICAgICAgICAiMC4wMDA3NjcsIDAuMDAwODk1LCAwLjAwMDkzLCAwLjAwMDk1MiwgMC4wMDA5NjUsIDAuMDAwOTcyLCAwLjAwMDk3OCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIxIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDM2NSwgMC4wMDM2NjQsIDAuMDAzNjY2LCAwLjAwMzY2NywgMC4wMDM2NjcsIDAuMDAzNjY3LCAwLjAwMzY2NiIsIFwKLSAgICAgICAgICAiMC4wMDM2MDMsIDAuMDAzNjU5LCAwLjAwMzY2NiwgMC4wMDM2NjksIDAuMDAzNjcxLCAwLjAwMzY3MiwgMC4wMDM2NzMiLCBcCi0gICAgICAgICAgIjAuMDAzNTc1LCAwLjAwMzY0NywgMC4wMDM2NTgsIDAuMDAzNjYzLCAwLjAwMzY2NiwgMC4wMDM2NjgsIDAuMDAzNjciLCBcCi0gICAgICAgICAgIjAuMDAzNTYxLCAwLjAwMzYzOCwgMC4wMDM2NTEsIDAuMDAzNjU5LCAwLjAwMzY2NCwgMC4wMDM2NjUsIDAuMDAzNjY4IiwgXAotICAgICAgICAgICIwLjAwMzU1OCwgMC4wMDM2MywgMC4wMDM2NDUsIDAuMDAzNjU0LCAwLjAwMzY2LCAwLjAwMzY2MywgMC4wMDM2NjQiLCBcCi0gICAgICAgICAgIjAuMDAzNTc5LCAwLjAwMzYyMiwgMC4wMDM2MzksIDAuMDAzNjUsIDAuMDAzNjU1LCAwLjAwMzY1OCwgMC4wMDM2NjEiLCBcCi0gICAgICAgICAgIjAuMDAzNjExLCAwLjAwMzYyMiwgMC4wMDM2MzcsIDAuMDAzNjQ4LCAwLjAwMzY1NCwgMC4wMDM2NTgsIDAuMDAzNjYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDA5MzgsIDAuMDAwOTU5LCAwLjAwMDk2MSwgMC4wMDA5NjIsIDAuMDAwOTYyLCAwLjAwMDk2MywgMC4wMDA5NjMiLCBcCi0gICAgICAgICAgIjAuMDAwODk2LCAwLjAwMDk3NywgMC4wMDA5ODYsIDAuMDAwOTkxLCAwLjAwMDk5NCwgMC4wMDA5OTUsIDAuMDAwOTk2IiwgXAotICAgICAgICAgICIwLjAwMDg1NSwgMC4wMDA5NjUsIDAuMDAwOTgxLCAwLjAwMDk4OSwgMC4wMDA5OTQsIDAuMDAwOTk2LCAwLjAwMDk5OCIsIFwKLSAgICAgICAgICAiMC4wMDA4MjgsIDAuMDAwOTQ5LCAwLjAwMDk3MSwgMC4wMDA5ODMsIDAuMDAwOTg5LCAwLjAwMDk5MywgMC4wMDA5OTYiLCBcCi0gICAgICAgICAgIjAuMDAwODMxLCAwLjAwMDk0MSwgMC4wMDA5NjYsIDAuMDAwOTc5LCAwLjAwMDk4NywgMC4wMDA5OTIsIDAuMDAwOTk1IiwgXAotICAgICAgICAgICIwLjAwMDg1MywgMC4wMDA5MzEsIDAuMDAwOTU1LCAwLjAwMDk3MywgMC4wMDA5ODIsIDAuMDAwOTg4LCAwLjAwMDk5MiIsIFwKLSAgICAgICAgICAiMC4wMDA4ODcsIDAuMDAwOTI5LCAwLjAwMDk1NCwgMC4wMDA5NzEsIDAuMDAwOTc5LCAwLjAwMDk4NiwgMC4wMDA5OSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogQU9JMkJCMlhMICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoQU9JMkJCMlhMKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMTIzMzg2OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBME4pICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYzNTkzMTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MzU3MjI7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjM1OTMxOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDI5NCwgMC4wMDAyNjcsIDAuMDAwMjc0LCAwLjAwMDI3OCwgMC4wMDAyOTYsIDAuMDAwMzE4LCAwLjAwMDM0MiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTM2MywgMC4wMDEzNCwgMC4wMDEzMzcsIDAuMDAxMzQ0LCAwLjAwMTM1NSwgMC4wMDEzODEsIDAuMDAxNDA1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihBMU4pICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY1NTMyODsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2NTQ5ODE7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjU1MzI4OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDI5OCwgMC4wMDAyNzIsIDAuMDAwMjY5LCAwLjAwMDI3OCwgMC4wMDAyODcsIDAuMDAwMzE0LCAwLjAwMDMzOSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTcyNSwgMC4wMDE3MDMsIDAuMDAxNjk4LCAwLjAwMTcwMiwgMC4wMDE3MTMsIDAuMDAxNzM5LCAwLjAwMTc2Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNTc5NDQ1OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDU3OTQ0NTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA1NzgxMjE7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMDUsIDAuMDAwMDUsIDAuMDAwMDUsIDAuMDAwMDUsIDAuMDAwMDUsIDAuMDAwMDUsIDAuMDAwMDUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAwNSwgMC4wMDAwNSwgMC4wMDAwNSwgMC4wMDAwNSwgMC4wMDAwNSwgMC4wMDAwNSwgMC4wMDAwNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQjEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYyMzU3OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYyMzMxMTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2MjM1NzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAwNSwgMC4wMDAwNSwgMC4wMDAwNSwgMC4wMDAwNSwgMC4wMDAwNSwgMC4wMDAwNSwgMC4wMDAwNSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDA1LCAwLjAwMDA1LCAwLjAwMDA1LCAwLjAwMDA1LCAwLjAwMDA1LCAwLjAwMDA1LCAwLjAwMDA1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMDgxNjMxMzsKLSAgICBmdW5jdGlvbiA6ICIoISgoQjAgQjEpKyghKEEwTitBMU4pKSkpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBME4iOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE4MDI3NCwgMC4yMDcxNjQsIDAuNDQ5MTE1LCAwLjg1MTI4NiwgMS4yNTQzNCwgMi4xOTM0NiwgMi43MzAyMiIsIFwKLSAgICAgICAgICAiMC4xOTAzNzYsIDAuMjE3Mjc3LCAwLjQ1OTE4OCwgMC44NjIyOTgsIDEuMjY1MDksIDIuMjA1MjcsIDIuNzQxOTgiLCBcCi0gICAgICAgICAgIjAuMjAwOTU0LCAwLjIyNzgyNSwgMC40Njk2MjUsIDAuODcyODgyLCAxLjI3NTY3LCAyLjIxNTg1LCAyLjc1MjMyIiwgXAotICAgICAgICAgICIwLjIwOTE1NiwgMC4yMzYxMzYsIDAuNDc4MjA0LCAwLjg4MDgwNywgMS4yODM4OSwgMi4yMjM5NywgMi43NjExNiIsIFwKLSAgICAgICAgICAiMC4yMTYyMiwgMC4yNDMxMjgsIDAuNDg0OTc2LCAwLjg4Nzg4MywgMS4yOTA3MiwgMi4yMzEyMywgMi43NjgyNCIsIFwKLSAgICAgICAgICAiMC4yMjU3OTEsIDAuMjUyNjY0LCAwLjQ5NDU2OSwgMC44OTc0MTksIDEuMzAwOTksIDIuMjQwOTIsIDIuNzc3OTkiLCBcCi0gICAgICAgICAgIjAuMjMyOTgzLCAwLjI1OTg3OSwgMC41MDE4MTEsIDAuOTA0NTc1LCAxLjMwNzU5LCAyLjI0OTIxLCAyLjc4NDA0Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMwOTcyNSwgMC4zNjQyNzgsIDAuODU0OTA4LCAxLjY3MjA4LCAyLjQ5MDM2LCA0LjM5NjUyLCA1LjQ4NTUxIiwgXAotICAgICAgICAgICIwLjMwOTcyNiwgMC4zNjQzNTEsIDAuODU1NTMxLCAxLjY3Mjk4LCAyLjQ5MDMzLCA0LjM5NzY5LCA1LjQ4NzU2IiwgXAotICAgICAgICAgICIwLjMwOTczOSwgMC4zNjQ0NTgsIDAuODU1MywgMS42NzI5OSwgMi40OTAzNCwgNC4zOTc3LCA1LjQ4NzIyIiwgXAotICAgICAgICAgICIwLjMwOTY2OSwgMC4zNjQzODksIDAuODU1MTU5LCAxLjY3MzUxLCAyLjQ5MDMxLCA0LjM5ODI1LCA1LjQ4NzQ2IiwgXAotICAgICAgICAgICIwLjMwOTc1NywgMC4zNjQzMjYsIDAuODU1NzgsIDEuNjczNTIsIDIuNDkxNDUsIDQuMzk4ODQsIDUuNDg3NDUiLCBcCi0gICAgICAgICAgIjAuMzA5NzA0LCAwLjM2NDM0OSwgMC44NTU3MDksIDEuNjczMDksIDIuNDkwODUsIDQuMzk4NzYsIDUuNDg3NzEiLCBcCi0gICAgICAgICAgIjAuMzA5NzM3LCAwLjM2NDMyNCwgMC44NTUyMTQsIDEuNjcyOTYsIDIuNDkwMDcsIDQuMzk4ODgsIDUuNDkxNzkiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTczNTM1LCAwLjE5OTExOCwgMC40Mjg1MjksIDAuODEwMDc4LCAxLjE5MTg4LCAyLjA4MjQsIDIuNTkwMjMiLCBcCi0gICAgICAgICAgIjAuMTgzMTgyLCAwLjIwODc0MSwgMC40MzgwNzIsIDAuODE5Nzg2LCAxLjIwMTgyLCAyLjA5MjIzLCAyLjU5OTk5IiwgXAotICAgICAgICAgICIwLjE5Mjg1MiwgMC4yMTgzNzMsIDAuNDQ3Nzk1LCAwLjgyOTQ1NiwgMS4yMTA3NSwgMi4xMDA5NSwgMi42MDk1OSIsIFwKLSAgICAgICAgICAiMC4yMDAyMzMsIDAuMjI1ODA5LCAwLjQ1NTA4MSwgMC44MzY5MDQsIDEuMjE4MywgMi4xMDg4NSwgMi42MTc1NiIsIFwKLSAgICAgICAgICAiMC4yMDY0MTYsIDAuMjMxOTQ2LCAwLjQ2MTQ5OSwgMC44NDI5LCAxLjIyNDc1LCAyLjExNDcyLCAyLjYyMzA5IiwgXAotICAgICAgICAgICIwLjIxNDcsIDAuMjQwMjQyLCAwLjQ2OTY3MiwgMC44NTEzNTMsIDEuMjMzNDMsIDIuMTI0MDksIDIuNjMwOCIsIFwKLSAgICAgICAgICAiMC4yMjA4OTEsIDAuMjQ2NDMzLCAwLjQ3NTc2OCwgMC44NTc0NDQsIDEuMjM5MzUsIDIuMTI5NywgMi42Mzc5MyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yOTQyNTcsIDAuMzQ0NTEsIDAuNzk1NzkxLCAxLjU0NzMxLCAyLjI5OTM4LCA0LjA1MzI4LCA1LjA1NTk4IiwgXAotICAgICAgICAgICIwLjI5NDMxNiwgMC4zNDQ0MTQsIDAuNzk1ODUzLCAxLjU0NzQsIDIuMjk5NDQsIDQuMDU0MjIsIDUuMDU4MTciLCBcCi0gICAgICAgICAgIjAuMjk0MzE3LCAwLjM0NDQ3MiwgMC43OTU4NTYsIDEuNTQ3MzksIDIuMjk5NDYsIDQuMDU0MDEsIDUuMDU4MTMiLCBcCi0gICAgICAgICAgIjAuMjk0MzM4LCAwLjM0NDQ2OCwgMC43OTU3ODYsIDEuNTQ3NDEsIDIuMjk4NjgsIDQuMDUzMSwgNS4wNTY4IiwgXAotICAgICAgICAgICIwLjI5NDM3NSwgMC4zNDQ0NDYsIDAuNzk1ODM0LCAxLjU0NzEzLCAyLjI5ODc3LCA0LjA1MzMsIDUuMDU0ODMiLCBcCi0gICAgICAgICAgIjAuMjk0MzY2LCAwLjM0NDU2NiwgMC43OTU2NDUsIDEuNTQ3NDcsIDIuMjk5MjgsIDQuMDU0MDQsIDUuMDU2OTUiLCBcCi0gICAgICAgICAgIjAuMjk0NDcxLCAwLjM0NDUzNywgMC43OTU4MTksIDEuNTQ3MSwgMi4yOTkyOSwgNC4wNTI5MiwgNS4wNTc5OSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMU4iOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE4MDEzLCAwLjIwNjk0NywgMC40NDg3MDEsIDAuODUyMDQsIDEuMjU1MTMsIDIuMTk2MDgsIDIuNzMxODEiLCBcCi0gICAgICAgICAgIjAuMTkwMjcyLCAwLjIxNzExMSwgMC40NTg4NDYsIDAuODYxNzQ1LCAxLjI2NDM0LCAyLjIwNDIxLCAyLjc0MTU3IiwgXAotICAgICAgICAgICIwLjIwMTYzMSwgMC4yMjg0OTIsIDAuNDcwNDI4LCAwLjg3MzQ0MSwgMS4yNzYyMywgMi4yMTYzMywgMi43NTI1NCIsIFwKLSAgICAgICAgICAiMC4yMTA5MjYsIDAuMjM3ODk0LCAwLjQ3OTY0NCwgMC44ODI3NDQsIDEuMjg1NiwgMi4yMjU2OCwgMi43NjIxMyIsIFwKLSAgICAgICAgICAiMC4yMTg1MDEsIDAuMjQ1NDA5LCAwLjQ4NzM1LCAwLjg5MDU2NSwgMS4yOTMzOSwgMi4yMzQ5LCAyLjc3MDQ3IiwgXAotICAgICAgICAgICIwLjIyOTI0NiwgMC4yNTYxNzUsIDAuNDk4MTMzLCAwLjkwMDg2MiwgMS4zMDM2NiwgMi4yNDU2OSwgMi43ODA2MSIsIFwKLSAgICAgICAgICAiMC4yMzczMzIsIDAuMjY0MjMxLCAwLjUwNjE2NywgMC45MDkyNCwgMS4zMTE4OSwgMi4yNTI3NSwgMi43ODk0MyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMDU2NzksIDAuMzYwMjIzLCAwLjg1MDg3NSwgMS42Njg1MywgMi40ODY2LCA0LjM5NDQ0LCA1LjQ4MzI0IiwgXAotICAgICAgICAgICIwLjMwNTY3NywgMC4zNjAxMzgsIDAuODUxMjMzLCAxLjY2ODc1LCAyLjQ4NjE5LCA0LjM5Mjk1LCA1LjQ4NDY5IiwgXAotICAgICAgICAgICIwLjMwNTY4OCwgMC4zNjAxNjQsIDAuODUxMDk5LCAxLjY2ODYxLCAyLjQ4NTY5LCA0LjM5MzEsIDUuNDg0NjQiLCBcCi0gICAgICAgICAgIjAuMzA1Njc3LCAwLjM2MDE4LCAwLjg1MTYwNCwgMS42Njg3OSwgMi40ODU2MiwgNC4zOTMwOSwgNS40ODQ5MiIsIFwKLSAgICAgICAgICAiMC4zMDU2NDMsIDAuMzYwMTY4LCAwLjg1MDkxLCAxLjY2ODQ5LCAyLjQ4NjE5LCA0LjM5MzksIDUuNDgyOTYiLCBcCi0gICAgICAgICAgIjAuMzA1NzQyLCAwLjM2MDIwNywgMC44NTA4NjYsIDEuNjY4NzIsIDIuNDg2MTEsIDQuMzk0NzYsIDUuNDg1NCIsIFwKLSAgICAgICAgICAiMC4zMDU3OTksIDAuMzYwMjQsIDAuODUxMTExLCAxLjY2ODIsIDIuNDg1NTcsIDQuMzk0NTgsIDUuNDgyOTYiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTczODc2LCAwLjE5OTM5MywgMC40Mjg2NzksIDAuODEwNjA1LCAxLjE5MTgzLCAyLjA4MjQ0LCAyLjU5MDciLCBcCi0gICAgICAgICAgIjAuMTgzNjQ1LCAwLjIwOTE5NywgMC40Mzg0MzYsIDAuODIwNTU0LCAxLjIwMTc2LCAyLjA5MTksIDIuNjAwNjIiLCBcCi0gICAgICAgICAgIjAuMTk0MDg1LCAwLjIxOTU4OSwgMC40NDg4ODgsIDAuODMwNDQ2LCAxLjIxMjMsIDIuMTAyNjgsIDIuNjA5OTMiLCBcCi0gICAgICAgICAgIjAuMjAyNTYxLCAwLjIyODA5MSwgMC40NTc0MDMsIDAuODM5MTE2LCAxLjIyMDU3LCAyLjExMTczLCAyLjYxOTQiLCBcCi0gICAgICAgICAgIjAuMjA5NDU5LCAwLjIzNDk4NywgMC40NjQ0OTUsIDAuODQ2NDc1LCAxLjIyNzk5LCAyLjExNzk0LCAyLjYyNjI2IiwgXAotICAgICAgICAgICIwLjIxODk3MSwgMC4yNDQ3LCAwLjQ3MzkxMSwgMC44NTU5NjMsIDEuMjM3NjUsIDIuMTI3MjcsIDIuNjM2MzciLCBcCi0gICAgICAgICAgIjAuMjI2Mjg2LCAwLjI1MTcwNiwgMC40ODEyMTcsIDAuODYyNjI2LCAxLjI0NDE3LCAyLjEzNDIzLCAyLjY0MzA0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI5NDMxNiwgMC4zNDQzOTcsIDAuNzk1ODA0LCAxLjU0NzE3LCAyLjI5OTA0LCA0LjA1MzgyLCA1LjA1Njg1IiwgXAotICAgICAgICAgICIwLjI5NDI1NiwgMC4zNDQ0MDksIDAuNzk1NTkxLCAxLjU0NzI2LCAyLjI5OTMyLCA0LjA1Mjc0LCA1LjA1NjYzIiwgXAotICAgICAgICAgICIwLjI5NDMzMSwgMC4zNDQ1MDMsIDAuNzk1ODU2LCAxLjU0NzI0LCAyLjI5OTUsIDQuMDUyODUsIDUuMDU1MDUiLCBcCi0gICAgICAgICAgIjAuMjk0MzM2LCAwLjM0NDQ4OCwgMC43OTU4MDYsIDEuNTQ3MzMsIDIuMjk5MjQsIDQuMDUzOTUsIDUuMDU2NDEiLCBcCi0gICAgICAgICAgIjAuMjk0NDAyLCAwLjM0NDU0MywgMC43OTU3NDcsIDEuNTQ3MTcsIDIuMjk5MywgNC4wNTMyOSwgNS4wNTcyMiIsIFwKLSAgICAgICAgICAiMC4yOTQ1MzMsIDAuMzQ0NjE4LCAwLjc5NTU0LCAxLjU0NzEsIDIuMjk5MjIsIDQuMDUyNDMsIDUuMDU1NjkiLCBcCi0gICAgICAgICAgIjAuMjk0NjIxLCAwLjM0NDY5MiwgMC43OTU1OTYsIDEuNTQ3MTIsIDIuMjk5MzMsIDQuMDU0MjIsIDUuMDU4MTciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjAiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE1NjM3MiwgMC4xODMyODQsIDAuNDI1NDM5LCAwLjgyODE5MiwgMS4yMzE2NSwgMi4xNzI4LCAyLjcwODQ1IiwgXAotICAgICAgICAgICIwLjE2NTQzOSwgMC4xOTIzMzEsIDAuNDM0NDkxLCAwLjgzNzE0MSwgMS4yNDAyNSwgMi4xODA0NywgMi43MTY4MSIsIFwKLSAgICAgICAgICAiMC4xNzY2MzEsIDAuMjAzNTEzLCAwLjQ0NTMwOCwgMC44NDg5MTksIDEuMjUxMzQsIDIuMTkyMTMsIDIuNzI5MDciLCBcCi0gICAgICAgICAgIjAuMTg3OTksIDAuMjE0ODk1LCAwLjQ1NjgxMSwgMC44NTk2NDIsIDEuMjYyNjYsIDIuMjA0LCAyLjczOTY1IiwgXAotICAgICAgICAgICIwLjE5OTM5MSwgMC4yMjYzMzksIDAuNDY4MTksIDAuODcxMTc0LCAxLjI3Mzg3LCAyLjIxNDIxLCAyLjc1MTY4IiwgXAotICAgICAgICAgICIwLjIxNzY5MSwgMC4yNDQ1OCwgMC40ODYzODcsIDAuODg5MzI3LCAxLjI5MjE1LCAyLjIzMTk1LCAyLjc2OTUyIiwgXAotICAgICAgICAgICIwLjIzMzkxNiwgMC4yNjA1OTksIDAuNTAyMzA5LCAwLjkwNTMyLCAxLjMwODAzLCAyLjI0Nzk1LCAyLjc4NTE2Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMwOTg5MiwgMC4zNjQyODQsIDAuODU0OTMsIDEuNjczNTQsIDIuNDkwNzEsIDQuMzk5MzMsIDUuNDg3NjkiLCBcCi0gICAgICAgICAgIjAuMzA5NjY3LCAwLjM2NDI1NCwgMC44NTUxNTksIDEuNjcyOTQsIDIuNDkwMTQsIDQuMzk3NjQsIDUuNDg3MDUiLCBcCi0gICAgICAgICAgIjAuMzA5NjQxLCAwLjM2NDI2MywgMC44NTU1NjQsIDEuNjczMzksIDIuNDkwNjYsIDQuMzk4OTMsIDUuNDg2OTgiLCBcCi0gICAgICAgICAgIjAuMzEwMTcxLCAwLjM2NDMxMiwgMC44NTUyMDEsIDEuNjczMTUsIDIuNDkwNjYsIDQuMzk4NTEsIDUuNDg4NTUiLCBcCi0gICAgICAgICAgIjAuMzEyODEsIDAuMzY1OTgsIDAuODU1Mzc1LCAxLjY3MzI3LCAyLjQ4OTk4LCA0LjM5OTU0LCA1LjQ4NzY2IiwgXAotICAgICAgICAgICIwLjMxOTU5MSwgMC4zNzE1NDYsIDAuODU1NjI4LCAxLjY3MzE5LCAyLjQ5MDAzLCA0LjQwMDY2LCA1LjQ4ODQyIiwgXAotICAgICAgICAgICIwLjMyNzY0NSwgMC4zNzgzMDYsIDAuODU1NTkxLCAxLjY3MzIyLCAyLjQ4OTk5LCA0LjQwMDI1LCA1LjQ4ODA2Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE0NjM4NiwgMC4xNzE4NjQsIDAuNDAwOTU3LCAwLjc4Mjc0OSwgMS4xNjQwNywgMi4wNTQyMSwgMi41NjIzOSIsIFwKLSAgICAgICAgICAiMC4xNTU2NiwgMC4xODExNDgsIDAuNDEwMzU3LCAwLjc5MjE1NiwgMS4xNzM1NCwgMi4wNjM4MSwgMi41NzEzMSIsIFwKLSAgICAgICAgICAiMC4xNjY1ODgsIDAuMTkyMTI3LCAwLjQyMTQzNCwgMC44MDMxNTksIDEuMTg0NTUsIDIuMDczOTIsIDIuNTgyNTMiLCBcCi0gICAgICAgICAgIjAuMTc3NTUsIDAuMjAzMDAzLCAwLjQzMjM2OCwgMC44MTQxNjIsIDEuMTk1NjIsIDIuMDg2MDgsIDIuNTkzMzgiLCBcCi0gICAgICAgICAgIjAuMTg4MzYsIDAuMjEzODkxLCAwLjQ0MzU0MSwgMC44MjUxNDQsIDEuMjA2NjUsIDIuMDk2MjIsIDIuNjA0NSIsIFwKLSAgICAgICAgICAiMC4yMDU4MDQsIDAuMjMxMTI4LCAwLjQ2MTA3NywgMC44NDMxMDMsIDEuMjI0NTIsIDIuMTEzOTksIDIuNjIyNjYiLCBcCi0gICAgICAgICAgIjAuMjIwNzg4LCAwLjI0NjY1OSwgMC40NzY1MTIsIDAuODU4MzU2LCAxLjIzOTkyLCAyLjEzMDE1LCAyLjYzNzQ5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI4MDMwNiwgMC4zMzAzNjgsIDAuNzgxMTg0LCAxLjUzOTAzLCAyLjI4NTE0LCA0LjA0ODQ2LCA1LjA0MzE4IiwgXAotICAgICAgICAgICIwLjI4MDM1MSwgMC4zMzA0MTgsIDAuNzgxMzAxLCAxLjUzODg1LCAyLjI4NTI3LCA0LjA0ODAzLCA1LjA0OTMiLCBcCi0gICAgICAgICAgIjAuMjgwMzY5LCAwLjMzMDQyLCAwLjc4MTE1OSwgMS41MzMxOCwgMi4yODQ5OCwgNC4wNDc4OCwgNS4wNDQxMSIsIFwKLSAgICAgICAgICAiMC4yODA5NTQsIDAuMzMwNTQxLCAwLjc4MTI4MywgMS41MzMsIDIuMjg0OTksIDQuMDQwNDYsIDUuMDQ5MTMiLCBcCi0gICAgICAgICAgIjAuMjgyNzE4LCAwLjMzMTkyMSwgMC43ODExNDMsIDEuNTM3MzksIDIuMjkzODksIDQuMDQ3NzgsIDUuMDQ0IiwgXAotICAgICAgICAgICIwLjI4Nzg3NCwgMC4zMzU3NTcsIDAuNzgxMjExLCAxLjUzMzEyLCAyLjI5NDYsIDQuMDQ3NjUsIDUuMDQzMzIiLCBcCi0gICAgICAgICAgIjAuMjkzNDI0LCAwLjM0MTA0NCwgMC43ODE4NjUsIDEuNTMzLCAyLjI4NTAzLCA0LjAzOTU3LCA1LjA0ODQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE1MzA3MiwgMC4xNzk5MTgsIDAuNDIxOTk3LCAwLjgyNDcxNCwgMS4yMjgxMiwgMi4xNjkyMywgMi43MDQ4NyIsIFwKLSAgICAgICAgICAiMC4xNjIwNjQsIDAuMTg4OTI5LCAwLjQzMDk5LCAwLjgzMzQwMiwgMS4yMzY3LCAyLjE3Njk1LCAyLjcxMzk1IiwgXAotICAgICAgICAgICIwLjE3MzI1NCwgMC4yMDAxMywgMC40NDE5NjksIDAuODQ1NDQ4LCAxLjI0NzkxLCAyLjE4ODYzLCAyLjcyNTU3IiwgXAotICAgICAgICAgICIwLjE4NDU1LCAwLjIxMTUxMywgMC40NTM0LCAwLjg1NjIzMiwgMS4yNTkxMywgMi4yMDA2NiwgMi43MzYxNyIsIFwKLSAgICAgICAgICAiMC4xOTU5NDksIDAuMjIyOTAzLCAwLjQ2NDc3NSwgMC44Njc3NTMsIDEuMjcwNDQsIDIuMjEwNzMsIDIuNzQ4MTciLCBcCi0gICAgICAgICAgIjAuMjE0MjI2LCAwLjI0MTA5OCwgMC40ODI5NzcsIDAuODg1ODkzLCAxLjI4ODgxLCAyLjIyODQ3LCAyLjc2NjAxIiwgXAotICAgICAgICAgICIwLjIzMDMwNywgMC4yNTcwNzksIDAuNDk4ODM0LCAwLjkwMTg4NCwgMS4zMDQ1OSwgMi4yNDQ0NywgMi43ODE2NiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMDU2MTcsIDAuMzYwMTM0LCAwLjg1MDkwNywgMS42NjgwOSwgMi40ODYxMywgNC4zOTQ1OSwgNS40ODI4OCIsIFwKLSAgICAgICAgICAiMC4zMDU2OSwgMC4zNjAyMTcsIDAuODUwODYyLCAxLjY2ODM3LCAyLjQ4NTUzLCA0LjM5Mjg1LCA1LjQ4MjY1IiwgXAotICAgICAgICAgICIwLjMwNTQ3OCwgMC4zNjAyLCAwLjg1MTM1MiwgMS42NjkyNCwgMi40ODYxMiwgNC4zOTQzLCA1LjQ4MzIyIiwgXAotICAgICAgICAgICIwLjMwNjE2OSwgMC4zNjAwOTcsIDAuODUwODUsIDEuNjY4NjksIDIuNDg1ODQsIDQuMzk0MSwgNS40ODM4MiIsIFwKLSAgICAgICAgICAiMC4zMDg4MTksIDAuMzYxOTQsIDAuODUxMjg4LCAxLjY2ODgxLCAyLjQ4NTQzLCA0LjM5NDg4LCA1LjQ4Mjc1IiwgXAotICAgICAgICAgICIwLjMxNTgxNCwgMC4zNjc2MTIsIDAuODUxMzcsIDEuNjY4NzMsIDIuNDg1NTgsIDQuMzk2MDIsIDUuNDgzODYiLCBcCi0gICAgICAgICAgIjAuMzIzOTM3LCAwLjM3NDQ4NSwgMC44NTEyODMsIDEuNjY4NzgsIDIuNDg1NDIsIDQuMzk1NTIsIDUuNDgzNjUiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTQzODI5LCAwLjE2OTI0MSwgMC4zOTgzOTksIDAuNzgwMTM0LCAxLjE2MTYsIDIuMDUwODcsIDIuNTU5NTYiLCBcCi0gICAgICAgICAgIjAuMTUzMjYyLCAwLjE3ODcyOSwgMC40MDc5NTUsIDAuNzg5NjcsIDEuMTcxMTcsIDIuMDYxMzUsIDIuNTY4OTIiLCBcCi0gICAgICAgICAgIjAuMTY0NjY0LCAwLjE5MDE0NSwgMC40MTk0LCAwLjgwMTEyOSwgMS4xODI1NywgMi4wNzE5NCwgMi41ODA2NyIsIFwKLSAgICAgICAgICAiMC4xNzYzMTYsIDAuMjAxODAyLCAwLjQzMTExNywgMC44MTI4ODcsIDEuMTk0MjEsIDIuMDgzNTksIDIuNTkyMTQiLCBcCi0gICAgICAgICAgIjAuMTg4MDA0LCAwLjIxMzUxLCAwLjQ0Mjc4NywgMC44MjQ1OTQsIDEuMjA1OTQsIDIuMDk1ODEsIDIuNjAzODkiLCBcCi0gICAgICAgICAgIjAuMjA2NzE0LCAwLjIzMjE3LCAwLjQ2MTQ3OSwgMC44NDMyMDQsIDEuMjI0OCwgMi4xMTQ2OSwgMi42MjIxNCIsIFwKLSAgICAgICAgICAiMC4yMjM3NjUsIDAuMjQ4Nzg1LCAwLjQ3Nzc4MiwgMC44NTk1NDcsIDEuMjQwOTYsIDIuMTMwMzIsIDIuNjM4NzYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjgwMzcxLCAwLjMzMDM1MywgMC43ODEyMTIsIDEuNTMyOTMsIDIuMjg2NDYsIDQuMDQ3NzcsIDUuMDQxNzgiLCBcCi0gICAgICAgICAgIjAuMjgwMzEzLCAwLjMzMDQwOSwgMC43ODEzMTYsIDEuNTM4NTYsIDIuMjg1MzMsIDQuMDQ5MDQsIDUuMDQ0MjYiLCBcCi0gICAgICAgICAgIjAuMjgwMzUxLCAwLjMzMDM1NiwgMC43ODEzMDEsIDEuNTMzMTQsIDIuMjk2MzIsIDQuMDQ4OTQsIDUuMDQ4OTUiLCBcCi0gICAgICAgICAgIjAuMjgxMzIxLCAwLjMzMDcwMywgMC43ODEyNzcsIDEuNTM2ODYsIDIuMjg3MywgNC4wNDc4LCA1LjA0Mzc4IiwgXAotICAgICAgICAgICIwLjI4NDIwNCwgMC4zMzI3MzMsIDAuNzgxMTc4LCAxLjUzNjcyLCAyLjI4Njc0LCA0LjAzOTYyLCA1LjA0NDIxIiwgXAotICAgICAgICAgICIwLjI5MTUzOCwgMC4zMzg2OTQsIDAuNzgxMjkyLCAxLjUzMjk4LCAyLjI5Mjk0LCA0LjA0MDIsIDUuMDQ4MyIsIFwKLSAgICAgICAgICAiMC4yOTkyNjQsIDAuMzQ2MDExLCAwLjc4MTg3OSwgMS41MzMxNiwgMi4yODUwMywgNC4wNDc4MSwgNS4wNDQ4OSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEwTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyMzg3LCAwLjAwMjM4NywgMC4wMDIzODUsIDAuMDAyMzg5LCAwLjAwMjM4NiwgMC4wMDIzODcsIDAuMDAyMzg1IiwgXAotICAgICAgICAgICIwLjAwMjM1OSwgMC4wMDIzNiwgMC4wMDIzNiwgMC4wMDIzNiwgMC4wMDIzNTksIDAuMDAyMzU4LCAwLjAwMjM1NyIsIFwKLSAgICAgICAgICAiMC4wMDIzNjUsIDAuMDAyMzY1LCAwLjAwMjM2NiwgMC4wMDIzNjYsIDAuMDAyMzY2LCAwLjAwMjM2NSwgMC4wMDIzNjUiLCBcCi0gICAgICAgICAgIjAuMDAyMzY5LCAwLjAwMjM2OSwgMC4wMDIzNywgMC4wMDIzNywgMC4wMDIzNywgMC4wMDIzNjksIDAuMDAyMzY4IiwgXAotICAgICAgICAgICIwLjAwMjM4MywgMC4wMDIzODMsIDAuMDAyMzg1LCAwLjAwMjM4NSwgMC4wMDIzODUsIDAuMDAyMzgzLCAwLjAwMjM4MyIsIFwKLSAgICAgICAgICAiMC4wMDI0MSwgMC4wMDI0MTEsIDAuMDAyNDEzLCAwLjAwMjQxMywgMC4wMDI0MTQsIDAuMDAyNDEyLCAwLjAwMjQxMSIsIFwKLSAgICAgICAgICAiMC4wMDI0MzgsIDAuMDAyNDM5LCAwLjAwMjQ0MSwgMC4wMDI0NDEsIDAuMDAyNDQxLCAwLjAwMjQ0LCAwLjAwMjQ0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyMzk2LCAwLjAwMjM5NiwgMC4wMDIzOTYsIDAuMDAyMzk1LCAwLjAwMjM5NSwgMC4wMDIzOTQsIDAuMDAyMzkzIiwgXAotICAgICAgICAgICIwLjAwMjM3NCwgMC4wMDIzNzQsIDAuMDAyMzc1LCAwLjAwMjM3NCwgMC4wMDIzNzQsIDAuMDAyMzczLCAwLjAwMjM3MyIsIFwKLSAgICAgICAgICAiMC4wMDIzNywgMC4wMDIzNzEsIDAuMDAyMzcyLCAwLjAwMjM3MiwgMC4wMDIzNzMsIDAuMDAyMzcxLCAwLjAwMjM3MSIsIFwKLSAgICAgICAgICAiMC4wMDIzNzgsIDAuMDAyMzc5LCAwLjAwMjM4MSwgMC4wMDIzODIsIDAuMDAyMzgyLCAwLjAwMjM4MSwgMC4wMDIzOCIsIFwKLSAgICAgICAgICAiMC4wMDIzODgsIDAuMDAyMzg5LCAwLjAwMjM5MSwgMC4wMDIzOTIsIDAuMDAyMzkyLCAwLjAwMjM5MywgMC4wMDIzOTEiLCBcCi0gICAgICAgICAgIjAuMDAyNDEyLCAwLjAwMjQxMywgMC4wMDI0MTgsIDAuMDAyNDIsIDAuMDAyNDE4LCAwLjAwMjQxOSwgMC4wMDI0MTkiLCBcCi0gICAgICAgICAgIjAuMDAyNDM2LCAwLjAwMjQzNywgMC4wMDI0NCwgMC4wMDI0NDUsIDAuMDAyNDQ2LCAwLjAwMjQ0MiwgMC4wMDI0NDUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMU4iOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjI1LCAwLjAwMjI1MSwgMC4wMDIyNTIsIDAuMDAyMjUyLCAwLjAwMjI1MiwgMC4wMDIyNTIsIDAuMDAyMjUxIiwgXAotICAgICAgICAgICIwLjAwMjIyMSwgMC4wMDIyMjIsIDAuMDAyMjIzLCAwLjAwMjIyNCwgMC4wMDIyMjQsIDAuMDAyMjIzLCAwLjAwMjIyNCIsIFwKLSAgICAgICAgICAiMC4wMDIyMjUsIDAuMDAyMjI2LCAwLjAwMjIyOSwgMC4wMDIyMywgMC4wMDIyMywgMC4wMDIyMywgMC4wMDIyMjkiLCBcCi0gICAgICAgICAgIjAuMDAyMjI3LCAwLjAwMjIyOCwgMC4wMDIyMzEsIDAuMDAyMjMzLCAwLjAwMjIzMywgMC4wMDIyMzIsIDAuMDAyMjMzIiwgXAotICAgICAgICAgICIwLjAwMjIzOCwgMC4wMDIyMzksIDAuMDAyMjQzLCAwLjAwMjI0NCwgMC4wMDIyNDUsIDAuMDAyMjQ0LCAwLjAwMjI0NCIsIFwKLSAgICAgICAgICAiMC4wMDIyNjIsIDAuMDAyMjYzLCAwLjAwMjI2OSwgMC4wMDIyNywgMC4wMDIyNzEsIDAuMDAyMjcxLCAwLjAwMjI3MSIsIFwKLSAgICAgICAgICAiMC4wMDIyODYsIDAuMDAyMjg4LCAwLjAwMjI5MywgMC4wMDIyOTUsIDAuMDAyMjk2LCAwLjAwMjI5NiwgMC4wMDIyOTYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI2NDMsIDAuMDAyNjQzLCAwLjAwMjY0MywgMC4wMDI2NDMsIDAuMDAyNjQzLCAwLjAwMjY0MiwgMC4wMDI2NDIiLCBcCi0gICAgICAgICAgIjAuMDAyNjIsIDAuMDAyNjIxLCAwLjAwMjYyMiwgMC4wMDI2MjIsIDAuMDAyNjIyLCAwLjAwMjYyMSwgMC4wMDI2MjEiLCBcCi0gICAgICAgICAgIjAuMDAyNjIxLCAwLjAwMjYyMSwgMC4wMDI2MjQsIDAuMDAyNjI0LCAwLjAwMjYyNCwgMC4wMDI2MjMsIDAuMDAyNjIzIiwgXAotICAgICAgICAgICIwLjAwMjYyMiwgMC4wMDI2MjMsIDAuMDAyNjI1LCAwLjAwMjYyNiwgMC4wMDI2MjYsIDAuMDAyNjI2LCAwLjAwMjYyNSIsIFwKLSAgICAgICAgICAiMC4wMDI2MzMsIDAuMDAyNjM0LCAwLjAwMjYzNywgMC4wMDI2MzgsIDAuMDAyNjM4LCAwLjAwMjYzNywgMC4wMDI2MzciLCBcCi0gICAgICAgICAgIjAuMDAyNjU0LCAwLjAwMjY1MiwgMC4wMDI2NTgsIDAuMDAyNjU4LCAwLjAwMjY2MSwgMC4wMDI2NiwgMC4wMDI2NTciLCBcCi0gICAgICAgICAgIjAuMDAyNjc2LCAwLjAwMjY3NCwgMC4wMDI2ODIsIDAuMDAyNjgxLCAwLjAwMjY4MSwgMC4wMDI2ODEsIDAuMDAyNjgxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTc0LCAwLjAwMTc0LCAwLjAwMTc0LCAwLjAwMTc0LCAwLjAwMTczOSwgMC4wMDE3MzksIDAuMDAxNzM4IiwgXAotICAgICAgICAgICIwLjAwMTczMywgMC4wMDE3MzQsIDAuMDAxNzM2LCAwLjAwMTczNiwgMC4wMDE3MzYsIDAuMDAxNzM1LCAwLjAwMTczNSIsIFwKLSAgICAgICAgICAiMC4wMDE3MzEsIDAuMDAxNzMyLCAwLjAwMTczNCwgMC4wMDE3MzUsIDAuMDAxNzM1LCAwLjAwMTczNCwgMC4wMDE3MzQiLCBcCi0gICAgICAgICAgIjAuMDAxNzI5LCAwLjAwMTczLCAwLjAwMTczMywgMC4wMDE3MzUsIDAuMDAxNzM1LCAwLjAwMTczNCwgMC4wMDE3MzMiLCBcCi0gICAgICAgICAgIjAuMDAxNzI5LCAwLjAwMTczLCAwLjAwMTczMywgMC4wMDE3MzQsIDAuMDAxNzM0LCAwLjAwMTczNCwgMC4wMDE3MzQiLCBcCi0gICAgICAgICAgIjAuMDAxNzMyLCAwLjAwMTczMiwgMC4wMDE3MzQsIDAuMDAxNzM0LCAwLjAwMTczNCwgMC4wMDE3MzMsIDAuMDAxNzMzIiwgXAotICAgICAgICAgICIwLjAwMTczNiwgMC4wMDE3MzYsIDAuMDAxNzM1LCAwLjAwMTczNSwgMC4wMDE3MzQsIDAuMDAxNzM0LCAwLjAwMTczMyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDMwOCwgMC4wMDAzMDgsIDAuMDAwMzA5LCAwLjAwMDMwOSwgMC4wMDAzMDksIDAuMDAwMzEsIDAuMDAwMzEiLCBcCi0gICAgICAgICAgIjAuMDAwMzEsIDAuMDAwMzEyLCAwLjAwMDMxNywgMC4wMDAzMTksIDAuMDAwMzE5LCAwLjAwMDMyLCAwLjAwMDMyIiwgXAotICAgICAgICAgICIwLjAwMDMwMywgMC4wMDAzMDYsIDAuMDAwMzE1LCAwLjAwMDMxOSwgMC4wMDAzMiwgMC4wMDAzMjEsIDAuMDAwMzIxIiwgXAotICAgICAgICAgICIwLjAwMDI5NywgMC4wMDAzLCAwLjAwMDMxMywgMC4wMDAzMTgsIDAuMDAwMzE5LCAwLjAwMDMyMSwgMC4wMDAzMjIiLCBcCi0gICAgICAgICAgIjAuMDAwMjkyLCAwLjAwMDI5NSwgMC4wMDAzMSwgMC4wMDAzMTYsIDAuMDAwMzE5LCAwLjAwMDMyMSwgMC4wMDAzMjEiLCBcCi0gICAgICAgICAgIjAuMDAwMjg1LCAwLjAwMDI4OSwgMC4wMDAzMDYsIDAuMDAwMzE0LCAwLjAwMDMxNywgMC4wMDAzMiwgMC4wMDAzMjEiLCBcCi0gICAgICAgICAgIjAuMDAwMjgxLCAwLjAwMDI4NSwgMC4wMDAzMDQsIDAuMDAwMzEzLCAwLjAwMDMxNiwgMC4wMDAzMiwgMC4wMDAzMiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIxIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDE0NzUsIDAuMDAxNDc2LCAwLjAwMTQ3NiwgMC4wMDE0NzcsIDAuMDAxNDc3LCAwLjAwMTQ3NiwgMC4wMDE0NzYiLCBcCi0gICAgICAgICAgIjAuMDAxNDcyLCAwLjAwMTQ3MywgMC4wMDE0NzcsIDAuMDAxNDc4LCAwLjAwMTQ3OSwgMC4wMDE0NzgsIDAuMDAxNDc5IiwgXAotICAgICAgICAgICIwLjAwMTQ2NiwgMC4wMDE0NjgsIDAuMDAxNDc0LCAwLjAwMTQ3NywgMC4wMDE0NzgsIDAuMDAxNDc4LCAwLjAwMTQ3NyIsIFwKLSAgICAgICAgICAiMC4wMDE0NjMsIDAuMDAxNDY1LCAwLjAwMTQ3MiwgMC4wMDE0NzYsIDAuMDAxNDc3LCAwLjAwMTQ3OCwgMC4wMDE0NzciLCBcCi0gICAgICAgICAgIjAuMDAxNDYsIDAuMDAxNDYyLCAwLjAwMTQ3MSwgMC4wMDE0NzUsIDAuMDAxNDc2LCAwLjAwMTQ3NywgMC4wMDE0NzciLCBcCi0gICAgICAgICAgIjAuMDAxNDYsIDAuMDAxNDYyLCAwLjAwMTQ3LCAwLjAwMTQ3NCwgMC4wMDE0NzUsIDAuMDAxNDc2LCAwLjAwMTQ3NiIsIFwKLSAgICAgICAgICAiMC4wMDE0NjIsIDAuMDAxNDY0LCAwLjAwMTQ3LCAwLjAwMTQ3NCwgMC4wMDE0NzUsIDAuMDAxNDc2LCAwLjAwMTQ3NiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDMwOCwgMC4wMDAzMDgsIDAuMDAwMzA5LCAwLjAwMDMxLCAwLjAwMDMxLCAwLjAwMDMxLCAwLjAwMDMxIiwgXAotICAgICAgICAgICIwLjAwMDMwOSwgMC4wMDAzMTEsIDAuMDAwMzE3LCAwLjAwMDMxOSwgMC4wMDAzMTksIDAuMDAwMzIsIDAuMDAwMzIiLCBcCi0gICAgICAgICAgIjAuMDAwMzA0LCAwLjAwMDMwNywgMC4wMDAzMTYsIDAuMDAwMzE5LCAwLjAwMDMyMSwgMC4wMDAzMjIsIDAuMDAwMzIyIiwgXAotICAgICAgICAgICIwLjAwMDI5OSwgMC4wMDAzMDIsIDAuMDAwMzE0LCAwLjAwMDMxOCwgMC4wMDAzMiwgMC4wMDAzMjIsIDAuMDAwMzIyIiwgXAotICAgICAgICAgICIwLjAwMDI5NiwgMC4wMDAyOTksIDAuMDAwMzEyLCAwLjAwMDMxOCwgMC4wMDAzMiwgMC4wMDAzMjIsIDAuMDAwMzIyIiwgXAotICAgICAgICAgICIwLjAwMDI5NSwgMC4wMDAyOTcsIDAuMDAwMzEsIDAuMDAwMzE3LCAwLjAwMDMxOSwgMC4wMDAzMjEsIDAuMDAwMzIyIiwgXAotICAgICAgICAgICIwLjAwMDI5OSwgMC4wMDAyOTksIDAuMDAwMzEsIDAuMDAwMzE2LCAwLjAwMDMxOSwgMC4wMDAzMjEsIDAuMDAwMzIyIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogQU9JMzFYMiAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChBT0kzMVgyKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMjk1MDUzOwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxODQwMDQ7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxODM0MDM7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxODQwMDQ7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwODE5LCAwLjAwMDgxOCwgMC4wMDA4MTgsIDAuMDAwODE3LCAwLjAwMDgxNywgMC4wMDA4MTcsIDAuMDAwODE3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwODE5LCAwLjAwMDgyLCAwLjAwMDgyLCAwLjAwMDgyLCAwLjAwMDgyLCAwLjAwMDgyLCAwLjAwMDgyIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihBMSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNzQxODU7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNzM1MjQ7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNzQxODU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwODE5LCAwLjAwMDgxOCwgMC4wMDA4MTgsIDAuMDAwODE3LCAwLjAwMDgxNywgMC4wMDA4MTcsIDAuMDAwODE3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwODE5LCAwLjAwMDgyLCAwLjAwMDgyLCAwLjAwMDgxOCwgMC4wMDA4MiwgMC4wMDA4MjEsIDAuMDAwODIxIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihBMikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNTcyODg7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNTYwOTY7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNTcyODg7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNTQyLCAwLjAwMDU0MiwgMC4wMDA1NDEsIDAuMDAwNTQxLCAwLjAwMDU0MSwgMC4wMDA1NCwgMC4wMDA1NCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDkyOCwgMC4wMDA5MjksIDAuMDAwOTI5LCAwLjAwMDkzLCAwLjAwMDkyOSwgMC4wMDA5MjksIDAuMDAwOTI5Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNTkyNDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE1OTE4ODsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE1OTI0OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDE3MiwgMC4wMDAxNzIsIDAuMDAwMTcyLCAwLjAwMDE3MiwgMC4wMDAxNzIsIDAuMDAwMTcyLCAwLjAwMDE3MiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTM0MywgMC4wMDEzNDQsIDAuMDAxMzQ0LCAwLjAwMTM0NCwgMC4wMDEzNDQsIDAuMDAxMzQzLCAwLjAwMTM0MyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjE5NTc4OTsKLSAgICBmdW5jdGlvbiA6ICIoISgoKEEwIEExKSBBMikrQjApKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTAiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2MzI1OCwgMC4yNTk0NTQsIDAuNDE2MDgzLCAwLjYxMTcwMiwgMC44MDczNDYsIDEuMDAzMDEsIDEuMTk4NiIsIFwKLSAgICAgICAgICAiMC4wNzI4MTcsIDAuMjY5MDE2LCAwLjQyNTgsIDAuNjIxNTkxLCAwLjgxNjkyOCwgMS4wMTI4NywgMS4yMDg1NiIsIFwKLSAgICAgICAgICAiMC4wODM1MDksIDAuMjc5ODU5LCAwLjQzNjMwMiwgMC42MzIzNTUsIDAuODI3NDk2LCAxLjAyMzQ4LCAxLjIxODgiLCBcCi0gICAgICAgICAgIjAuMDkzNzYyLCAwLjI5MDE1MywgMC40NDY3MDUsIDAuNjQyODE4LCAwLjgzNzg4NSwgMS4wMzM3OSwgMS4yMjk1OCIsIFwKLSAgICAgICAgICAiMC4xMDM3MjksIDAuMjk5OTMxLCAwLjQ1Njk0MSwgMC42NTI2MTMsIDAuODQ4NDM2LCAxLjA0MzcyLCAxLjIzOTU4IiwgXAotICAgICAgICAgICIwLjExODU1NCwgMC4zMTYyNTMsIDAuNDcyOTUyLCAwLjY2ODc2MywgMC44NjQ0NDUsIDEuMDU5NzUsIDEuMjU1NCIsIFwKLSAgICAgICAgICAiMC4xMzAxMTIsIDAuMzMwMTQ0LCAwLjQ4NzA4MywgMC42ODI3MDYsIDAuODc4Mzk5LCAxLjA3Mzg4LCAxLjI2OTMyIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwMjM3NiwgMC41MDA2NzMsIDAuODE5NDA5LCAxLjIxNzcxLCAxLjYxNjA4LCAyLjAxNDEzLCAyLjQxMjQ0IiwgXAotICAgICAgICAgICIwLjEwMjUxMiwgMC41MDA0ODksIDAuODE5MTU1LCAxLjIxNzUyLCAxLjYxNTgyLCAyLjAxNDUsIDIuNDEyNDYiLCBcCi0gICAgICAgICAgIjAuMTAzMjg5LCAwLjUwMDcsIDAuODE5MDQ4LCAxLjIxNzM5LCAxLjYxNjE3LCAyLjAxNDEsIDIuNDEzMDYiLCBcCi0gICAgICAgICAgIjAuMTA1ODcxLCAwLjUwMDY3OSwgMC44MTkyMjQsIDEuMjE3NTIsIDEuNjE2MTYsIDIuMDE0MSwgMi40MTI2MSIsIFwKLSAgICAgICAgICAiMC4xMDk0NywgMC41MDA4MjgsIDAuODE5Mjk1LCAxLjIxNzUzLCAxLjYxNTg4LCAyLjAxNDQ2LCAyLjQxMjMiLCBcCi0gICAgICAgICAgIjAuMTE2OTk4LCAwLjUwMTk3MywgMC44MTk0OTgsIDEuMjE3NDcsIDEuNjE1NzUsIDIuMDE0NzUsIDIuNDEyMTQiLCBcCi0gICAgICAgICAgIjAuMTI0NzQ0LCAwLjUwNDYyNSwgMC44MTk4MDksIDEuMjE3NjgsIDEuNjE1NywgMi4wMTM4NywgMi40MTMwNyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTAzOTUsIDAuMzY5MzI2LCAwLjU5MTE5LCAwLjg2ODczMiwgMS4xNDYyLCAxLjQyMzE3LCAxLjcwMTQyIiwgXAotICAgICAgICAgICIwLjA5ODU0OCwgMC4zNzc0MjgsIDAuNTk5Nzg4LCAwLjg3Njk1NCwgMS4xNTQyNCwgMS40MzEzNCwgMS43MDkxMyIsIFwKLSAgICAgICAgICAiMC4xMDc2NzYsIDAuMzg2NzgyLCAwLjYwODkzOSwgMC44ODYxMzksIDEuMTY0MTEsIDEuNDQwODcsIDEuNzE5MDkiLCBcCi0gICAgICAgICAgIjAuMTE2NjI5LCAwLjM5NTg4NSwgMC42MTc5NjcsIDAuODk1Mjc2LCAxLjE3MzI2LCAxLjQ0OTYsIDEuNzI3NjEiLCBcCi0gICAgICAgICAgIjAuMTI1NTU3LCAwLjQwNDk0NiwgMC42MjcxMjQsIDAuOTA0ODQsIDEuMTgxOCwgMS40NTkyMSwgMS43MzY1NyIsIFwKLSAgICAgICAgICAiMC4xMzk3ODksIDAuNDE5MjYxLCAwLjY0MTQ3LCAwLjkxODk2OCwgMS4xOTYyNCwgMS40NzMyNiwgMS43NTA3MyIsIFwKLSAgICAgICAgICAiMC4xNTE2MjgsIDAuNDMxOTEyLCAwLjY1NDE0NywgMC45MzE1OTksIDEuMjA5MDksIDEuNDg2MzUsIDEuNzYzNzgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTQ1NTI4LCAwLjY4ODcxNiwgMS4xMjMyNSwgMS42NjU1NCwgMi4yMDc4NiwgMi43NTAzOSwgMy4yOTMiLCBcCi0gICAgICAgICAgIjAuMTQ1NDYxLCAwLjY4ODUxNCwgMS4xMjI5MSwgMS42NjU1NSwgMi4yMDc1NiwgMi43NTEzMywgMy4yOTI5MSIsIFwKLSAgICAgICAgICAiMC4xNDU3NjMsIDAuNjg4NDkxLCAxLjEyMzM5LCAxLjY2NDg2LCAyLjIwNzk1LCAyLjc1MDQxLCAzLjI5MzAxIiwgXAotICAgICAgICAgICIwLjE0NzQ3MSwgMC42ODg0NzcsIDEuMTIyNjcsIDEuNjY0ODcsIDIuMjA3OTUsIDIuNzUxNDIsIDMuMjk0NTQiLCBcCi0gICAgICAgICAgIjAuMTQ5OTUzLCAwLjY4ODYwMywgMS4xMjM0LCAxLjY2NTQyLCAyLjIwODk2LCAyLjc1MDQyLCAzLjI5MjkxIiwgXAotICAgICAgICAgICIwLjE1NTIyMywgMC42ODkxNDgsIDEuMTIyNzEsIDEuNjY2MjEsIDIuMjA4OTUsIDIuNzUwMjcsIDMuMjk0MzQiLCBcCi0gICAgICAgICAgIjAuMTYxMDcsIDAuNjg5OTI2LCAxLjEyMzI0LCAxLjY2NjA1LCAyLjIwNzgyLCAyLjc1MTQ4LCAzLjI5MzYyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkExIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjA5OTcsIDAuMjU3ODc5LCAwLjQxNTE0LCAwLjYxMTUxNCwgMC44MDgwMzgsIDEuMDA0MDQsIDEuMjAxNTIiLCBcCi0gICAgICAgICAgIjAuMDcwNTU3LCAwLjI2NzU1NywgMC40MjQ3NDgsIDAuNjIxMjk3LCAwLjgxNzY0MSwgMS4wMTQwNSwgMS4yMTEwOSIsIFwKLSAgICAgICAgICAiMC4wODExNDIsIDAuMjc4MDI3LCAwLjQzNTI3LCAwLjYzMTcxMiwgMC44Mjg1NTMsIDEuMDI0NTMsIDEuMjIxMzciLCBcCi0gICAgICAgICAgIjAuMDkxMzY0LCAwLjI4ODM3MSwgMC40NDU2MDMsIDAuNjQyNTMxLCAwLjgzODQ4LCAxLjAzNTQxLCAxLjIzMTk3IiwgXAotICAgICAgICAgICIwLjEwMTIyMiwgMC4yOTg0NzYsIDAuNDU1NjM0LCAwLjY1MjIwNSwgMC44NDg1NzcsIDEuMDQ1MywgMS4yNDE0NSIsIFwKLSAgICAgICAgICAiMC4xMTU2NTksIDAuMzE0Mzk4LCAwLjQ3MTc1LCAwLjY2ODQ5MSwgMC44NjQ5MzMsIDEuMDYxMTYsIDEuMjU3NjciLCBcCi0gICAgICAgICAgIjAuMTI3MDYzLCAwLjMyODMxNSwgMC40ODU3NzYsIDAuNjgyMzkzLCAwLjg3OTIzNywgMS4wNzU0MSwgMS4yNzE4NSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTk2NjYsIDAuNTAwMDU3LCAwLjgyMDQ1MSwgMS4yMjA3OCwgMS42MjExMSwgMi4wMjA4OSwgMi40MjA3NyIsIFwKLSAgICAgICAgICAiMC4wOTk3MjYsIDAuNDk5OTc5LCAwLjgyMDUwNywgMS4yMjExMSwgMS42MjAxNiwgMi4wMjAyMiwgMi40MjA3MyIsIFwKLSAgICAgICAgICAiMC4xMDA2NjksIDAuNTAwMDQxLCAwLjgyMDYyNywgMS4yMjAzOCwgMS42MjA0OCwgMi4wMjEwMSwgMi40MjEwNyIsIFwKLSAgICAgICAgICAiMC4xMDMzNjQsIDAuNDk5ODYzLCAwLjgyMDU5OSwgMS4yMjAzNywgMS42MjA3MywgMi4wMjA5NSwgMi40MjA4IiwgXAotICAgICAgICAgICIwLjEwNzA0NiwgMC41MDAwMTMsIDAuODIwMjk5LCAxLjIyMDUzLCAxLjYyMDcyLCAyLjAyMDgsIDIuNDIxMSIsIFwKLSAgICAgICAgICAiMC4xMTQ3NjEsIDAuNTAxMjE3LCAwLjgyMDIxNiwgMS4yMjExOCwgMS42MjA2MywgMi4wMjA4NywgMi40MjAyNiIsIFwKLSAgICAgICAgICAiMC4xMjI1NzQsIDAuNTAzODczLCAwLjgyMDQyMSwgMS4yMjA3NSwgMS42MjA0NywgMi4wMjExMSwgMi40MjAyNiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODgyNjMsIDAuMzY3MDI1LCAwLjU4OTA1NSwgMC44NjY0NzYsIDEuMTQzMjMsIDEuNDIxOCwgMS42OTg0NSIsIFwKLSAgICAgICAgICAiMC4wOTY2ODQsIDAuMzc1NTkzLCAwLjU5NzY2NiwgMC44NzUwMSwgMS4xNTI4LCAxLjQyOTM4LCAxLjcwNjY0IiwgXAotICAgICAgICAgICIwLjEwNzIwMSwgMC4zODYyOTgsIDAuNjA4NTU5LCAwLjg4NjAwNiwgMS4xNjMyMywgMS40NDA5NSwgMS43MTg1NCIsIFwKLSAgICAgICAgICAiMC4xMTc4MTIsIDAuMzk3MDMsIDAuNjE5MTgxLCAwLjg5Njg3NiwgMS4xNzQwNSwgMS40NTE0NiwgMS43Mjg0NyIsIFwKLSAgICAgICAgICAiMC4xMjg1MzcsIDAuNDA3ODI5LCAwLjYzMDA1NiwgMC45MDcxODYsIDEuMTg1MTcsIDEuNDYxNzgsIDEuNzQwMTQiLCBcCi0gICAgICAgICAgIjAuMTQ1NDA1LCAwLjQyNDQ4NiwgMC42NDcxNjIsIDAuOTI0NjA2LCAxLjIwMjA1LCAxLjQ3OTA1LCAxLjc1NzE1IiwgXAotICAgICAgICAgICIwLjE1OTM4MywgMC40Mzk4MjgsIDAuNjYyMjA2LCAwLjkzOTYyNywgMS4yMTc0MiwgMS40OTQzNSwgMS43NzE1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE0NTUyNiwgMC42ODg1MjEsIDEuMTIzMjUsIDEuNjY1MjYsIDIuMjA3ODksIDIuNzUwNDEsIDMuMjkzMDEiLCBcCi0gICAgICAgICAgIjAuMTQ1NTI1LCAwLjY4ODUwMSwgMS4xMjMyOSwgMS42NjU0NCwgMi4yMDc4NywgMi43NTAxNSwgMy4yOTM5NiIsIFwKLSAgICAgICAgICAiMC4xNDYwMDYsIDAuNjg4NTE4LCAxLjEyMjg3LCAxLjY2NTUzLCAyLjIwNzkzLCAyLjc1MDI2LCAzLjI5Mjk0IiwgXAotICAgICAgICAgICIwLjE0ODMxNSwgMC42ODg5MjQsIDEuMTIyNjUsIDEuNjY1NDMsIDIuMjA4MzgsIDIuNzUwMzksIDMuMjkyOSIsIFwKLSAgICAgICAgICAiMC4xNTIzOTgsIDAuNjg4NTk2LCAxLjEyMjg1LCAxLjY2NDg1LCAyLjIwNzkyLCAyLjc1MTU5LCAzLjI5Mjk4IiwgXAotICAgICAgICAgICIwLjE2MDE3LCAwLjY4ODU4NCwgMS4xMjI0NywgMS42NjUxOCwgMi4yMDc4MSwgMi43NTI1OCwgMy4yOTI4NiIsIFwKLSAgICAgICAgICAiMC4xNjgxODksIDAuNjg5NzMxLCAxLjEyMzI0LCAxLjY2NDg3LCAyLjIwNzg3LCAyLjc1MTYzLCAzLjI5NTAzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEyIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTg3NTIsIDAuMjU3NzI2LCAwLjQxNjkwNiwgMC42MTU2NjIsIDAuODE1NDY1LCAxLjAxMzc4LCAxLjIxMjI1IiwgXAotICAgICAgICAgICIwLjA2ODM0NSwgMC4yNjc3MTIsIDAuNDI2ODI0LCAwLjYyNjE5LCAwLjgyNDYwNCwgMS4wMjQ0NiwgMS4yMjI4OCIsIFwKLSAgICAgICAgICAiMC4wNzg5MTYsIDAuMjc4MjkxLCAwLjQzNzMzNywgMC42MzY1NzksIDAuODM1MTA0LCAxLjAzNDEyLCAxLjIzMjc4IiwgXAotICAgICAgICAgICIwLjA4ODkxLCAwLjI4ODQ5NywgMC40NDc3MDcsIDAuNjQ2Nzc5LCAwLjg0NTQ1NSwgMS4wNDUxLCAxLjI0MzQ5IiwgXAotICAgICAgICAgICIwLjA5ODg3NywgMC4yOTgyMzQsIDAuNDU3NzQsIDAuNjU2ODUsIDAuODU1NzY2LCAxLjA1NDc3LCAxLjI1MzkxIiwgXAotICAgICAgICAgICIwLjExMjk2MSwgMC4zMTQ0NDUsIDAuNDczODE1LCAwLjY3MjgwOSwgMC44NzE2MzEsIDEuMDcwNiwgMS4yNjkzMiIsIFwKLSAgICAgICAgICAiMC4xMjQwMjEsIDAuMzI4MjQxLCAwLjQ4NzgzMiwgMC42ODcsIDAuODg2MDE0LCAxLjA4NDgsIDEuMjg0MDQiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk3Njg3LCAwLjUwMzUzNywgMC44MjcyMjgsIDEuMjM0NjEsIDEuNjM3MjcsIDIuMDQxODEsIDIuNDUyNzkiLCBcCi0gICAgICAgICAgIjAuMDk3NTI4LCAwLjUwMjQ1OSwgMC44MjY1OTQsIDEuMjMyMTEsIDEuNjQwNDQsIDIuMDQyMTMsIDIuNDQ2NTYiLCBcCi0gICAgICAgICAgIjAuMDk4NTIsIDAuNTAyNTc0LCAwLjgyNzIxOCwgMS4yMzIxNSwgMS42Mzc4LCAyLjA0MjI0LCAyLjQ1MTAzIiwgXAotICAgICAgICAgICIwLjEwMTMxMywgMC41MDM1NSwgMC44MjgzNjEsIDEuMjMyNzksIDEuNjQwMDQsIDIuMDQxMzgsIDIuNDUyNzEiLCBcCi0gICAgICAgICAgIjAuMTA1MTE1LCAwLjUwMzg1MSwgMC44MjcxMDUsIDEuMjMxNTksIDEuNjQwNjEsIDIuMDQzNzQsIDIuNDQ3MDkiLCBcCi0gICAgICAgICAgIjAuMTEzMTA3LCAwLjUwNTE0MywgMC44MjcyMTMsIDEuMjM0MjksIDEuNjQwNjcsIDIuMDQ0OSwgMi40NTAyMyIsIFwKLSAgICAgICAgICAiMC4xMjEyNDgsIDAuNTA3MzAzLCAwLjgyNjk0NywgMS4yMzE3MiwgMS42MzY4OCwgMi4wNDYyOSwgMi40NDcwOCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODM5MDMsIDAuMzYyOCwgMC41ODQ5MzMsIDAuODYyMjM4LCAxLjE0MDA4LCAxLjQxNjc2LCAxLjY5NDExIiwgXAotICAgICAgICAgICIwLjA5MjIxNiwgMC4zNzExNywgMC41OTMyNTMsIDAuODcwNDY1LCAxLjE0NzcyLCAxLjQyNDg0LCAxLjcwMjY0IiwgXAotICAgICAgICAgICIwLjEwMzA2MywgMC4zODIxMjIsIDAuNjA0MDg3LCAwLjg4MTM4NSwgMS4xNTk0MSwgMS40MzU3OSwgMS43MTM0OCIsIFwKLSAgICAgICAgICAiMC4xMTM4MzksIDAuMzkyODI5LCAwLjYxNDg4MywgMC44OTI1OTYsIDEuMTY5NzksIDEuNDQ3MDgsIDEuNzI0MSIsIFwKLSAgICAgICAgICAiMC4xMjQ5ODksIDAuNDAzODA5LCAwLjYyNTg0NCwgMC45MDMzMzUsIDEuMTgxMDksIDEuNDU3OCwgMS43MzYxMyIsIFwKLSAgICAgICAgICAiMC4xNDI5NDQsIDAuNDIxNDM1LCAwLjY0MzUyNSwgMC45MjA4NDEsIDEuMTk4ODEsIDEuNDc1MjgsIDEuNzUzMjIiLCBcCi0gICAgICAgICAgIjAuMTU4NDg1LCAwLjQzNjgzMSwgMC42NTg5NDcsIDAuOTM2MjQsIDEuMjEzODIsIDEuNDkxMzQsIDEuNzY3OTEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTQ1NTQzLCAwLjY4OTAzMywgMS4xMjI5OSwgMS42NjU2MywgMi4yMDc5OSwgMi43NTA0MSwgMy4yOTQ1MyIsIFwKLSAgICAgICAgICAiMC4xNDU1MzMsIDAuNjg4NTE3LCAxLjEyMzI5LCAxLjY2NDg4LCAyLjIwNzIzLCAyLjc1MTQsIDMuMjk0MjkiLCBcCi0gICAgICAgICAgIjAuMTQ2MzkyLCAwLjY4ODQ4MywgMS4xMjI0OCwgMS42NjU5NCwgMi4yMDc5MSwgMi43NTEzNywgMy4yOTM1MyIsIFwKLSAgICAgICAgICAiMC4xNTAwNjUsIDAuNjg4NTEsIDEuMTIyNDcsIDEuNjY1NDMsIDIuMjA4MzIsIDIuNzUwNDEsIDMuMjkzMyIsIFwKLSAgICAgICAgICAiMC4xNTU3MiwgMC42ODg5MTgsIDEuMTIzMTUsIDEuNjY2MDcsIDIuMjA3ODcsIDIuNzUxNTcsIDMuMjkyOTgiLCBcCi0gICAgICAgICAgIjAuMTY2NTg1LCAwLjY4ODU5NywgMS4xMjI0NywgMS42NjQ4OCwgMi4yMDc5NiwgMi43NTI2MSwgMy4yOTI5NSIsIFwKLSAgICAgICAgICAiMC4xNzcwODksIDAuNjkwMjUyLCAxLjEyMjc1LCAxLjY2NjA2LCAyLjIwNzg1LCAyLjc1MTIxLCAzLjI5NDk2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTQyMiwgMC4yNTA1MjksIDAuNDA3NTQ1LCAwLjYwNjEwOSwgMC44MDUxMDksIDEuMDA0NTQsIDEuMjAzODYiLCBcCi0gICAgICAgICAgIjAuMDYzMTk4LCAwLjI1OTY4NiwgMC40MTYzNjMsIDAuNjE1MDk3LCAwLjgxNDY2MywgMS4wMTMxMiwgMS4yMTI0OSIsIFwKLSAgICAgICAgICAiMC4wNzQ1MDYsIDAuMjcxMTA3LCAwLjQyNzc0LCAwLjYyNjcyMiwgMC44MjU2NTgsIDEuMDI0MjEsIDEuMjIzMjgiLCBcCi0gICAgICAgICAgIjAuMDg2NDY0LCAwLjI4MjkwMywgMC40MzkyMDgsIDAuNjM4MzQ0LCAwLjgzNzI1OSwgMS4wMzYwNCwgMS4yMzQ5NiIsIFwKLSAgICAgICAgICAiMC4wOTgwNywgMC4yOTQwMTgsIDAuNDUwNzUyLCAwLjY0OTg5NCwgMC44NDgzMzQsIDEuMDQ3OSwgMS4yNDY2NyIsIFwKLSAgICAgICAgICAiMC4xMTUwNzYsIDAuMzEyMzYxLCAwLjQ2ODI0NiwgMC42Njc4NjQsIDAuODY3MDA1LCAxLjA2NTc1LCAxLjI2NDUzIiwgXAotICAgICAgICAgICIwLjEyNzcxLCAwLjMyODQ3NCwgMC40ODUwNTcsIDAuNjg0MDA1LCAwLjg4Mjg2NSwgMS4wODE2NywgMS4yODA2MyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDI0MjcsIDAuNTAyNTA1LCAwLjgyNjkyMSwgMS4yMzI3NCwgMS42MzY5MSwgMi4wNDE0OSwgMi40NDc2MSIsIFwKLSAgICAgICAgICAiMC4xMDIxNTgsIDAuNTAzNTIsIDAuODI2NjM1LCAxLjIzMzM4LCAxLjYzNjQsIDIuMDQ2NDgsIDIuNDQ3NjkiLCBcCi0gICAgICAgICAgIjAuMTA1NTE4LCAwLjUwMzY1NywgMC44MjY1NDYsIDEuMjMxNzUsIDEuNjM4MzgsIDIuMDQzMDUsIDIuNDQ4NTYiLCBcCi0gICAgICAgICAgIjAuMTExMjU2LCAwLjUwMjU4MSwgMC44MjY1MzgsIDEuMjM0MTIsIDEuNjQwMTgsIDIuMDQ2NjcsIDIuNDUyOCIsIFwKLSAgICAgICAgICAiMC4xMTg2NTgsIDAuNTAzNzg0LCAwLjgyNjYyMiwgMS4yMzE0MiwgMS42NDA2NiwgMi4wNDI3NywgMi40NDciLCBcCi0gICAgICAgICAgIjAuMTMyMDc0LCAwLjUwNjQ1MiwgMC44Mjg1MDMsIDEuMjM0MDksIDEuNjM3MjUsIDIuMDQzMjQsIDIuNDUxOTQiLCBcCi0gICAgICAgICAgIjAuMTQ0NjE5LCAwLjUwOTc4MiwgMC44Mjc2MDQsIDEuMjMyNTIsIDEuNjM5OTUsIDIuMDQ2NjgsIDIuNDUxNzQiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDI3OTQxLCAwLjEzMTUyNiwgMC4yMTQzMTEsIDAuMzE3Nzk3LCAwLjQyMTI3NywgMC41MjQ4NDYsIDAuNjI4MjciLCBcCi0gICAgICAgICAgIjAuMDM4MjE1LCAwLjE0MTc1NSwgMC4yMjQ1OTEsIDAuMzI4MDU2LCAwLjQzMTUyNywgMC41MzUwNTgsIDAuNjM4NDk5IiwgXAotICAgICAgICAgICIwLjA1MTEzOSwgMC4xNTQ3OTYsIDAuMjM3NTc2LCAwLjM0MDE2NywgMC40NDM2MjIsIDAuNTQ3MTI5LCAwLjY1MDU5MSIsIFwKLSAgICAgICAgICAiMC4wNjI5ODIsIDAuMTY3MTIxLCAwLjI1MDA4NywgMC4zNTM0NTksIDAuNDU2OTU0LCAwLjU1OTI3MiwgMC42NjI1OTYiLCBcCi0gICAgICAgICAgIjAuMDczMzQ3LCAwLjE4MDY1MSwgMC4yNjM0NzQsIDAuMzY2OTcsIDAuNDcwNDY4LCAwLjU3Mzg4NywgMC42NzcyOTgiLCBcCi0gICAgICAgICAgIjAuMDg3MjA1LCAwLjIwMTIyOSwgMC4yODMxMzcsIDAuMzg3MDk1LCAwLjQ5MDQyNywgMC41OTM3NDIsIDAuNjk3MTU3IiwgXAotICAgICAgICAgICIwLjA5ODAzMSwgMC4yMTk2OTksIDAuMzAyMTU3LCAwLjQwNDY4MiwgMC41MDgxNzYsIDAuNjExNiwgMC43MTUwODYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU1Mjk2LCAwLjI2MzczLCAwLjQzMDkxOCwgMC42Mzk4NiwgMC44NDg5ODEsIDEuMDU4MiwgMS4yNjc0MyIsIFwKLSAgICAgICAgICAiMC4wNTY3NTcsIDAuMjYzNzExLCAwLjQzMDg5NywgMC42Mzk5NTMsIDAuODQ4ODg5LCAxLjA1ODAxLCAxLjI2NzA1IiwgXAotICAgICAgICAgICIwLjA2MzA4NywgMC4yNjM3MTMsIDAuNDMwOTA2LCAwLjYzOTg0OSwgMC44NDkxMzksIDEuMDU4MzUsIDEuMjY3MTUiLCBcCi0gICAgICAgICAgIjAuMDcxNjIyLCAwLjI2NDk3NiwgMC40MzA4NDIsIDAuNjM5OTE3LCAwLjg0OTA0NywgMS4wNTgzMSwgMS4yNjc1NSIsIFwKLSAgICAgICAgICAiMC4wODA0ODUsIDAuMjY3ODg3LCAwLjQzMTI4NSwgMC42Mzk5MTksIDAuODQ4OTc5LCAxLjA1ODM2LCAxLjI2NzYxIiwgXAotICAgICAgICAgICIwLjA5NjUyNywgMC4yNzUzNzIsIDAuNDM0ODk0LCAwLjY0MDEyMiwgMC44NDkwNDMsIDEuMDU4MzMsIDEuMjY3NjgiLCBcCi0gICAgICAgICAgIjAuMTA5MjE2LCAwLjI4MzI3NiwgMC40Mzk1ODUsIDAuNjQyMzIxLCAwLjg0OTI2OCwgMS4wNTgzLCAxLjI2NzYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2NDE1LCAwLjAwNjQxNSwgMC4wMDY0MTUsIDAuMDA2NDE1LCAwLjAwNjQxNiwgMC4wMDY0MTcsIDAuMDA2NDA4IiwgXAotICAgICAgICAgICIwLjAwNjM4NywgMC4wMDYzOTUsIDAuMDA2Mzk2LCAwLjAwNjM5NiwgMC4wMDYzOTUsIDAuMDA2Mzk2LCAwLjAwNjM5NSIsIFwKLSAgICAgICAgICAiMC4wMDYzNzQsIDAuMDA2MzkxLCAwLjAwNjM5MiwgMC4wMDYzOTIsIDAuMDA2MzkyLCAwLjAwNjM5MiwgMC4wMDYzOTEiLCBcCi0gICAgICAgICAgIjAuMDA2MzY1LCAwLjAwNjM4NiwgMC4wMDYzODksIDAuMDA2MzksIDAuMDA2MzksIDAuMDA2MzksIDAuMDA2MzkzIiwgXAotICAgICAgICAgICIwLjAwNjM1OCwgMC4wMDYzNzgsIDAuMDA2Mzg3LCAwLjAwNjM4OSwgMC4wMDYzODksIDAuMDA2Mzg5LCAwLjAwNjM4OCIsIFwKLSAgICAgICAgICAiMC4wMDYzNTIsIDAuMDA2Mzc5LCAwLjAwNjM4NCwgMC4wMDYzODYsIDAuMDA2Mzg4LCAwLjAwNjM4OSwgMC4wMDYzODkiLCBcCi0gICAgICAgICAgIjAuMDA2MzUxLCAwLjAwNjM3OCwgMC4wMDYzODMsIDAuMDA2Mzg2LCAwLjAwNjM4NywgMC4wMDYzODcsIDAuMDA2Mzg3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxMzM0LCAwLjAwMTMzNiwgMC4wMDEzMzYsIDAuMDAxMzM1LCAwLjAwMTMzNCwgMC4wMDEzMzQsIDAuMDAxMzMzIiwgXAotICAgICAgICAgICIwLjAwMTI3NCwgMC4wMDEyOTIsIDAuMDAxMjk1LCAwLjAwMTI5NCwgMC4wMDEyOTUsIDAuMDAxMjk0LCAwLjAwMTI5OCIsIFwKLSAgICAgICAgICAiMC4wMDEyNCwgMC4wMDEyNzgsIDAuMDAxMjgyLCAwLjAwMTI4MywgMC4wMDEyODMsIDAuMDAxMjg0LCAwLjAwMTI4OCIsIFwKLSAgICAgICAgICAiMC4wMDEyMTgsIDAuMDAxMjY3LCAwLjAwMTI3NSwgMC4wMDEyNzksIDAuMDAxMjgxLCAwLjAwMTI4LCAwLjAwMTI4IiwgXAotICAgICAgICAgICIwLjAwMTIwNCwgMC4wMDEyNiwgMC4wMDEyNjksIDAuMDAxMjc0LCAwLjAwMTI3NiwgMC4wMDEyNzgsIDAuMDAxMjc4IiwgXAotICAgICAgICAgICIwLjAwMTE5LCAwLjAwMTI0OSwgMC4wMDEyNjEsIDAuMDAxMjY4LCAwLjAwMTI3LCAwLjAwMTI3MywgMC4wMDEyNzQiLCBcCi0gICAgICAgICAgIjAuMDAxMTg2LCAwLjAwMTI0MiwgMC4wMDEyNTUsIDAuMDAxMjYzLCAwLjAwMTI2OCwgMC4wMDEyNywgMC4wMDEyNzEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1NjUyLCAwLjAwNTY1NSwgMC4wMDU2NTUsIDAuMDA1NjU1LCAwLjAwNTY1NSwgMC4wMDU2NTUsIDAuMDA1NjU0IiwgXAotICAgICAgICAgICIwLjAwNTYyNywgMC4wMDU2NSwgMC4wMDU2NTIsIDAuMDA1NjUzLCAwLjAwNTY1NCwgMC4wMDU2NTQsIDAuMDA1NjUzIiwgXAotICAgICAgICAgICIwLjAwNTYwMSwgMC4wMDU2NDIsIDAuMDA1NjQ3LCAwLjAwNTY0NCwgMC4wMDU2NTEsIDAuMDA1NjUyLCAwLjAwNTY1MiIsIFwKLSAgICAgICAgICAiMC4wMDU1ODIsIDAuMDA1NjM1LCAwLjAwNTY0LCAwLjAwNTY0NywgMC4wMDU2NDksIDAuMDA1NjQ5LCAwLjAwNTY1IiwgXAotICAgICAgICAgICIwLjAwNTU2NywgMC4wMDU2MjksIDAuMDA1NjM4LCAwLjAwNTY0NSwgMC4wMDU2NDYsIDAuMDA1NjQ3LCAwLjAwNTY0OCIsIFwKLSAgICAgICAgICAiMC4wMDU1NTYsIDAuMDA1NjIxLCAwLjAwNTYzMywgMC4wMDU2NCwgMC4wMDU2NDMsIDAuMDA1NjQ1LCAwLjAwNTY0NyIsIFwKLSAgICAgICAgICAiMC4wMDU1NTEsIDAuMDA1NjE0LCAwLjAwNTYyOSwgMC4wMDU2MzYsIDAuMDA1NjQxLCAwLjAwNTY0MywgMC4wMDU2NDUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDEzMzQsIDAuMDAxMzM1LCAwLjAwMTMzNCwgMC4wMDEzMzUsIDAuMDAxMzM0LCAwLjAwMTMzNCwgMC4wMDEzMzMiLCBcCi0gICAgICAgICAgIjAuMDAxMjczLCAwLjAwMTI5MiwgMC4wMDEyOTMsIDAuMDAxMjk0LCAwLjAwMTI5LCAwLjAwMTI5NiwgMC4wMDEyOTMiLCBcCi0gICAgICAgICAgIjAuMDAxMjM5LCAwLjAwMTI3NiwgMC4wMDEyODEsIDAuMDAxMjgzLCAwLjAwMTI4MywgMC4wMDEyODIsIDAuMDAxMjg2IiwgXAotICAgICAgICAgICIwLjAwMTIxOSwgMC4wMDEyNjcsIDAuMDAxMjc0LCAwLjAwMTI3NywgMC4wMDEyNzksIDAuMDAxMjgxLCAwLjAwMTI3OSIsIFwKLSAgICAgICAgICAiMC4wMDEyMDcsIDAuMDAxMjYsIDAuMDAxMjY5LCAwLjAwMTI3MywgMC4wMDEyNzUsIDAuMDAxMjc2LCAwLjAwMTI3OCIsIFwKLSAgICAgICAgICAiMC4wMDExOTgsIDAuMDAxMjQ5LCAwLjAwMTI2MiwgMC4wMDEyNjgsIDAuMDAxMjcxLCAwLjAwMTI3MiwgMC4wMDEyNzMiLCBcCi0gICAgICAgICAgIjAuMDAxMiwgMC4wMDEyNDUsIDAuMDAxMjU3LCAwLjAwMTI2NCwgMC4wMDEyNjgsIDAuMDAxMjcsIDAuMDAxMjcxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTIiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDgyNCwgMC4wMDQ4MzUsIDAuMDA0ODM3LCAwLjAwNDgzNiwgMC4wMDQ4MzYsIDAuMDA0ODM3LCAwLjAwNDgzNyIsIFwKLSAgICAgICAgICAiMC4wMDQ4MDIsIDAuMDA0ODQ1LCAwLjAwNDg1LCAwLjAwNDg1MywgMC4wMDQ4NTQsIDAuMDA0ODU1LCAwLjAwNDg1NiIsIFwKLSAgICAgICAgICAiMC4wMDQ3NjYsIDAuMDA0ODM3LCAwLjAwNDg1MSwgMC4wMDQ4NSwgMC4wMDQ4NTIsIDAuMDA0ODU0LCAwLjAwNDg0NiIsIFwKLSAgICAgICAgICAiMC4wMDQ3MzgsIDAuMDA0ODIzLCAwLjAwNDg0MywgMC4wMDQ4NDYsIDAuMDA0ODQ2LCAwLjAwNDg1MiwgMC4wMDQ4NDkiLCBcCi0gICAgICAgICAgIjAuMDA0NzE4LCAwLjAwNDgyMSwgMC4wMDQ4MzMsIDAuMDA0ODQyLCAwLjAwNDg0NywgMC4wMDQ4NSwgMC4wMDQ4NTEiLCBcCi0gICAgICAgICAgIjAuMDA0NywgMC4wMDQ4MDMsIDAuMDA0ODI0LCAwLjAwNDgzNywgMC4wMDQ4NDIsIDAuMDA0ODQ2LCAwLjAwNDg0OCIsIFwKLSAgICAgICAgICAiMC4wMDQ2OTIsIDAuMDA0Nzk1LCAwLjAwNDgxNywgMC4wMDQ4MzEsIDAuMDA0ODM4LCAwLjAwNDg0MywgMC4wMDQ4NDYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDEzMzcsIDAuMDAxMzQsIDAuMDAxMzM5LCAwLjAwMTMzOSwgMC4wMDEzMzYsIDAuMDAxMzM1LCAwLjAwMTMzNyIsIFwKLSAgICAgICAgICAiMC4wMDEyNjgsIDAuMDAxMjkzLCAwLjAwMTI5NSwgMC4wMDEyOTcsIDAuMDAxMjk4LCAwLjAwMTI5NiwgMC4wMDEyOTUiLCBcCi0gICAgICAgICAgIjAuMDAxMjQ0LCAwLjAwMTI4LCAwLjAwMTI4MiwgMC4wMDEyODUsIDAuMDAxMjg3LCAwLjAwMTI4OCwgMC4wMDEyODgiLCBcCi0gICAgICAgICAgIjAuMDAxMjI4LCAwLjAwMTI3LCAwLjAwMTI3NywgMC4wMDEyOCwgMC4wMDEyODIsIDAuMDAxMjg0LCAwLjAwMTI4MyIsIFwKLSAgICAgICAgICAiMC4wMDEyMjgsIDAuMDAxMjY2LCAwLjAwMTI3MywgMC4wMDEyNzcsIDAuMDAxMjc4LCAwLjAwMTI3OSwgMC4wMDEyODEiLCBcCi0gICAgICAgICAgIjAuMDAxMjQ5LCAwLjAwMTI2NSwgMC4wMDEyNzEsIDAuMDAxMjc2LCAwLjAwMTI3OCwgMC4wMDEyNzgsIDAuMDAxMjc5IiwgXAotICAgICAgICAgICIwLjAwMTI4NywgMC4wMDEyNywgMC4wMDEyNzQsIDAuMDAxMjc3LCAwLjAwMTI3OCwgMC4wMDEyNzgsIDAuMDAxMjc4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDQzNCwgMC4wMDQ0NTEsIDAuMDA0NDUyLCAwLjAwNDQ1MiwgMC4wMDQ0NTMsIDAuMDA0NDUyLCAwLjAwNDQ1MSIsIFwKLSAgICAgICAgICAiMC4wMDQzNzgsIDAuMDA0NDM0LCAwLjAwNDQ0MSwgMC4wMDQ0NDQsIDAuMDA0NDQ2LCAwLjAwNDQ0OCwgMC4wMDQ0NDciLCBcCi0gICAgICAgICAgIjAuMDA0MzUyLCAwLjAwNDQxOSwgMC4wMDQ0MzEsIDAuMDA0NDM4LCAwLjAwNDQ0MSwgMC4wMDQ0NCwgMC4wMDQ0NDIiLCBcCi0gICAgICAgICAgIjAuMDA0MzUxLCAwLjAwNDQxLCAwLjAwNDQyNCwgMC4wMDQ0MzEsIDAuMDA0NDM3LCAwLjAwNDQzOCwgMC4wMDQ0MzkiLCBcCi0gICAgICAgICAgIjAuMDA0MzU4LCAwLjAwNDQwMiwgMC4wMDQ0MTcsIDAuMDA0NDI2LCAwLjAwNDQzMSwgMC4wMDQ0MzYsIDAuMDA0NDM3IiwgXAotICAgICAgICAgICIwLjAwNDM5MiwgMC4wMDQzOTgsIDAuMDA0Mzk5LCAwLjAwNDQyMiwgMC4wMDQ0MjgsIDAuMDA0NDMxLCAwLjAwNDQzMiIsIFwKLSAgICAgICAgICAiMC4wMDQ0MywgMC4wMDQ0MDEsIDAuMDA0NDEyLCAwLjAwNDQyMSwgMC4wMDQ0MjYsIDAuMDA0NDMxLCAwLjAwNDQzMiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDAzNCwgMC4wMDAwNTYsIDAuMDAwMDU5LCAwLjAwMDA2LCAwLjAwMDA2LCAwLjAwMDA2LCAwLjAwMDA2MSIsIFwKLSAgICAgICAgICAiMC4wMDAwNTUsIDAuMDAwMDc2LCAwLjAwMDA4NiwgMC4wMDAwOTEsIDAuMDAwMDk0LCAwLjAwMDA5NSwgMC4wMDAwOTYiLCBcCi0gICAgICAgICAgIjAuMDAwMDk3LCAwLjAwMDA2NSwgMC4wMDAwODEsIDAuMDAwMDkyLCAwLjAwMDA5NiwgMC4wMDAwOTksIDAuMDAwMTAxIiwgXAotICAgICAgICAgICIwLjAwMDA5MywgMC4wMDAwNTYsIDAuMDAwMDc2LCAwLjAwMDA4NywgMC4wMDAwOTIsIDAuMDAwMDk4LCAwLjAwMDEwMSIsIFwKLSAgICAgICAgICAiMC4wMDAwOTQsIDAuMDAwMDQ0LCAwLjAwMDA2NywgMC4wMDAwOCwgMC4wMDAwODcsIDAuMDAwMDkyLCAwLjAwMDA5NSIsIFwKLSAgICAgICAgICAiMC4wMDAwNDcsIDAuMDAwMDQzLCAwLjAwMDA2MywgMC4wMDAwNzksIDAuMDAwMDg2LCAwLjAwMDA5MSwgMC4wMDAwOTUiLCBcCi0gICAgICAgICAgIjAuMDAwMDE2LCAwLjAwMDAzNSwgMC4wMDAwNTcsIDAuMDAwMDcsIDAuMDAwMDgxLCAwLjAwMDA4NiwgMC4wMDAwOTEiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBBT0kzMlgyICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKEFPSTMyWDIpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4zNTAzMTU7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE3NzcyNjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE3NzI0NjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE3NzcyNjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA4MTksIDAuMDAwODE4LCAwLjAwMDgxNywgMC4wMDA4MTgsIDAuMDAwODE3LCAwLjAwMDgxNywgMC4wMDA4MTciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA4MTksIDAuMDAwODIsIDAuMDAwODIsIDAuMDAwODIsIDAuMDAwODIsIDAuMDAwODIsIDAuMDAwODIiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEExKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE3MjAwMTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE3MTMxMTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE3MjAwMTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA4MTksIDAuMDAwODE4LCAwLjAwMDgxNywgMC4wMDA4MTcsIDAuMDAwODE3LCAwLjAwMDgxNywgMC4wMDA4MTciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA4MTksIDAuMDAwODIsIDAuMDAwODIxLCAwLjAwMDgyLCAwLjAwMDgyMSwgMC4wMDA4MjEsIDAuMDAwODIxIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihBMikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNTk3NzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE1ODYzOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTU5Nzc7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNTUxLCAwLjAwMDU1LCAwLjAwMDU0OSwgMC4wMDA1NDksIDAuMDAwNTQ5LCAwLjAwMDU0OSwgMC4wMDA1NDkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA5MjgsIDAuMDAwOTI5LCAwLjAwMDkzLCAwLjAwMDkyOSwgMC4wMDA5MjksIDAuMDAwOTI5LCAwLjAwMDkyOSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQjApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTY2NDA3OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTY2NDA3OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTY1OTM4OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDgxOSwgMC4wMDA4MTgsIDAuMDAwODE4LCAwLjAwMDgxOCwgMC4wMDA4MTgsIDAuMDAwODE4LCAwLjAwMDgxOCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDgzNSwgMC4wMDA4MjEsIDAuMDAwODIsIDAuMDAwODIsIDAuMDAwODIsIDAuMDAwODIsIDAuMDAwODIiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIxKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE1NjQ4MjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE1NjM3MzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE1NjQ4MjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAzODgsIDAuMDAwMzg4LCAwLjAwMDM4OCwgMC4wMDAzODgsIDAuMDAwMzg4LCAwLjAwMDM4NywgMC4wMDAzODciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA5MjgsIDAuMDAwOTI4LCAwLjAwMDkyOCwgMC4wMDA5MjksIDAuMDAwOTI5LCAwLjAwMDkyOSwgMC4wMDA5MjkiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4yMDEzMjg7Ci0gICAgZnVuY3Rpb24gOiAiKCEoKEIwIEIxKSsoKEEwIEExKSBBMikpKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTAiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3MTIwNywgMC4yNjg3MTMsIDAuNDI4MzQyLCAwLjYyNzk3NywgMC44MjczODEsIDEuMDI2NzYsIDEuMjI1NjUiLCBcCi0gICAgICAgICAgIjAuMDgwOTA5LCAwLjI3ODU4NCwgMC40MzgwMzIsIDAuNjM3NzU3LCAwLjgzNzA1MSwgMS4wMzYzOCwgMS4yMzY0NSIsIFwKLSAgICAgICAgICAiMC4wOTE4OTYsIDAuMjg5NDgyLCAwLjQ0OTAzNiwgMC42NDg1ODcsIDAuODQ4MTk2LCAxLjA0NzQzLCAxLjI0Njk4IiwgXAotICAgICAgICAgICIwLjEwMjE0LCAwLjI5OTY3NiwgMC40NTkzMDIsIDAuNjU5MDQ1LCAwLjg1ODMxMSwgMS4wNTc3MywgMS4yNTcwNSIsIFwKLSAgICAgICAgICAiMC4xMTIyMjEsIDAuMzA5NjQ0LCAwLjQ2OTI5MiwgMC42Njg4MDcsIDAuODY4Nzc2LCAxLjA2NzQ0LCAxLjI2NzczIiwgXAotICAgICAgICAgICIwLjEyNzcxMSwgMC4zMjU2MTMsIDAuNDg1NDA5LCAwLjY4NTEwNiwgMC44ODQ1ODEsIDEuMDgzNjYsIDEuMjgzNDgiLCBcCi0gICAgICAgICAgIjAuMTQwMTAxLCAwLjMzOTQ4MywgMC40OTkyNDYsIDAuNjk4OTEsIDAuODk4Mjg2LCAxLjA5NzUxLCAxLjI5Njk1Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExMjMzMiwgMC41MTU5NzcsIDAuODQwMzQ4LCAxLjI0NTc5LCAxLjY1MTQyLCAyLjA1NjUzLCAyLjQ2MjM1IiwgXAotICAgICAgICAgICIwLjExMjQ1NywgMC41MTYzNjQsIDAuODQwNjMsIDEuMjQ2MDYsIDEuNjUxMTksIDIuMDU2NDMsIDIuNDYxODkiLCBcCi0gICAgICAgICAgIjAuMTEyOTY5LCAwLjUxNjE5NSwgMC44NDAzNDMsIDEuMjQ1NzgsIDEuNjUxNDgsIDIuMDU2NTIsIDIuNDYxOSIsIFwKLSAgICAgICAgICAiMC4xMTQ5NDIsIDAuNTE2MTYsIDAuODQwNzk1LCAxLjI0NTYxLCAxLjY1MTUxLCAyLjA1NjQ2LCAyLjQ2MjMiLCBcCi0gICAgICAgICAgIjAuMTE4MTI3LCAwLjUxNjM0OSwgMC44NDAyMjksIDEuMjQ1OTIsIDEuNjUxMzYsIDIuMDU2MTMsIDIuNDYyMjkiLCBcCi0gICAgICAgICAgIjAuMTI0ODk1LCAwLjUxNzIyNywgMC44NDA0NDEsIDEuMjQ1NTksIDEuNjUwOTMsIDIuMDU2ODEsIDIuNDYxOTEiLCBcCi0gICAgICAgICAgIjAuMTMyMDI0LCAwLjUxOTcwOCwgMC44NDA5NDYsIDEuMjQ1NzYsIDEuNjUxMTYsIDIuMDU2MTIsIDIuNDYxNTgiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTAxMTEsIDAuMzgwMTEzLCAwLjYwMjM1NiwgMC44Nzk0MjcsIDEuMTU3MzgsIDEuNDM0MjgsIDEuNzExMjYiLCBcCi0gICAgICAgICAgIjAuMTA5NDIzLCAwLjM4ODQ3LCAwLjYxMDU4MiwgMC44ODc2NzMsIDEuMTY1MDEsIDEuNDQyMDcsIDEuNzIwMDMiLCBcCi0gICAgICAgICAgIjAuMTE4NTU5LCAwLjM5NzcxNiwgMC42MTk4NTIsIDAuODk3MTAxLCAxLjE3NTA5LCAxLjQ1MTkzLCAxLjcyOTMxIiwgXAotICAgICAgICAgICIwLjEyNzUwMiwgMC40MDY3NywgMC42MjkwMDQsIDAuOTA2NDA0LCAxLjE4NDIsIDEuNDYwOTQsIDEuNzM4NjciLCBcCi0gICAgICAgICAgIjAuMTM2NDgzLCAwLjQxNTg0NCwgMC42Mzc5NCwgMC45MTU2MjcsIDEuMTkyNjcsIDEuNDcwNjksIDEuNzQ3NTIiLCBcCi0gICAgICAgICAgIjAuMTUwODMyLCAwLjQzMDE3NiwgMC42NTI0MTIsIDAuOTI5ODAxLCAxLjIwNzY1LCAxLjQ4NDgxLCAxLjc2MjI1IiwgXAotICAgICAgICAgICIwLjE2MjgxNCwgMC40NDI3MjEsIDAuNjY0OTk4LCAwLjk0MjU4MSwgMS4yMTk3NCwgMS40OTc2NiwgMS43NzQxMiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNjU1MTYsIDAuNzA4MjkzLCAxLjE0MjQzLCAxLjY4NDgzLCAyLjIyNzI3LCAyLjc2OTgxLCAzLjMxMTc3IiwgXAotICAgICAgICAgICIwLjE2NTUwMiwgMC43MDgyOTMsIDEuMTQyNCwgMS42ODQ4MywgMi4yMjcsIDIuNzY5MzksIDMuMzExNTgiLCBcCi0gICAgICAgICAgIjAuMTY1NzUyLCAwLjcwODM0OCwgMS4xNDIzLCAxLjY4NDc1LCAyLjIyNzA5LCAyLjc2OTI0LCAzLjMxMTM2IiwgXAotICAgICAgICAgICIwLjE2NzEwNiwgMC43MDgzNzMsIDEuMTQyMzgsIDEuNjg0NTYsIDIuMjI3MTgsIDIuNzY5MjcsIDMuMzExNSIsIFwKLSAgICAgICAgICAiMC4xNjkzOTksIDAuNzA4MzMzLCAxLjE0MjQzLCAxLjY4NDkzLCAyLjIyNzE2LCAyLjc2OTMzLCAzLjMxMTUxIiwgXAotICAgICAgICAgICIwLjE3NDUxMywgMC43MDg0NzMsIDEuMTQyNDQsIDEuNjg0NzQsIDIuMjI3MSwgMi43NjkzMywgMy4zMTE5NSIsIFwKLSAgICAgICAgICAiMC4xNzk5NywgMC43MDk0NDEsIDEuMTQyNDIsIDEuNjg0NzMsIDIuMjI2OTYsIDIuNzY5NSwgMy4zMTE2OSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY5MDE3LCAwLjI2NjQ0OSwgMC40MjUyOTgsIDAuNjI0NjQsIDAuODI0MjUyLCAxLjAyMzQ4LCAxLjIyMjkxIiwgXAotICAgICAgICAgICIwLjA3ODczMywgMC4yNzY0MzYsIDAuNDM1MjEyLCAwLjYzNDQ2OCwgMC44MzM4NjEsIDEuMDMzMzksIDEuMjMzMTciLCBcCi0gICAgICAgICAgIjAuMDg5NjA3LCAwLjI4NzM4MywgMC40NDU4NTksIDAuNjQ1MzU2LCAwLjg0NDkxMywgMS4wNDQyMiwgMS4yNDM4NCIsIFwKLSAgICAgICAgICAiMC4wOTk5MTQsIDAuMjk3NzgxLCAwLjQ1NjI1MywgMC42NTU1NCwgMC44NTU0NDEsIDEuMDU0NywgMS4yNTQxNyIsIFwKLSAgICAgICAgICAiMC4xMDk4ODQsIDAuMzA3OCwgMC40NjYzMDMsIDAuNjY1NTQ2LCAwLjg2NTU0NCwgMS4wNjQ3OSwgMS4yNjQxNiIsIFwKLSAgICAgICAgICAiMC4xMjUwNzQsIDAuMzIzODM3LCAwLjQ4MjE3NywgMC42ODE3OTgsIDAuODgxMTA5LCAxLjA4MDM1LCAxLjI4MDU2IiwgXAotICAgICAgICAgICIwLjEzNjk2MywgMC4zMzc3MDIsIDAuNDk2MTEyLCAwLjY5NTc1OCwgMC44OTUwOTEsIDEuMDk0NDEsIDEuMjkzODQiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTA5OTcxLCAwLjUxMjg2MSwgMC44MzY0NywgMS4yNDIzOSwgMS42NDgwNiwgMi4wNTIyNCwgMi40NTc0IiwgXAotICAgICAgICAgICIwLjExMDAyOCwgMC41MTI4NjIsIDAuODM3MzQ5LCAxLjI0MjYyLCAxLjY0NzEzLCAyLjA1Mjc1LCAyLjQ1Nzg2IiwgXAotICAgICAgICAgICIwLjExMDY0OSwgMC41MTI1OTEsIDAuODM3MzM1LCAxLjI0MjI0LCAxLjY0NzkyLCAyLjA1MjIxLCAyLjQ1Nzk3IiwgXAotICAgICAgICAgICIwLjExMjc1MSwgMC41MTI1NjUsIDAuODM3MjMxLCAxLjI0MjI2LCAxLjY0NzQ1LCAyLjA1MjgzLCAyLjQ1Nzg3IiwgXAotICAgICAgICAgICIwLjExNTkxNiwgMC41MTI3NTUsIDAuODM3MDYzLCAxLjI0MjIzLCAxLjY0ODc0LCAyLjA1MjY1LCAyLjQ1NzkxIiwgXAotICAgICAgICAgICIwLjEyMjc2OCwgMC41MTM3NjYsIDAuODM3MjM5LCAxLjI0MjM0LCAxLjY0NzgxLCAyLjA1MjE5LCAyLjQ1ODYyIiwgXAotICAgICAgICAgICIwLjEzMDEzOCwgMC41MTYwNiwgMC44MzcxODUsIDEuMjQyMjYsIDEuNjQ3NjksIDIuMDUzMDksIDIuNDU3MzMiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk4NzYzLCAwLjM3Nzc5NCwgMC41OTk3NDMsIDAuODc2OTQyLCAxLjE1NDQ2LCAxLjQzMTY5LCAxLjcwODg5IiwgXAotICAgICAgICAgICIwLjEwNzIzMSwgMC4zODYzNDgsIDAuNjA4NTAxLCAwLjg4NTc0NCwgMS4xNjMxNiwgMS40NDAxNCwgMS43MTgyMSIsIFwKLSAgICAgICAgICAiMC4xMTc3MTIsIDAuMzk2ODk4LCAwLjYxOTA2MSwgMC44OTYzMjcsIDEuMTc0NDMsIDEuNDUxMTgsIDEuNzI3ODkiLCBcCi0gICAgICAgICAgIjAuMTI4MjcsIDAuNDA3NTgzLCAwLjYyOTY4MiwgMC45MDcyMjcsIDEuMTg0ODksIDEuNDYxNzEsIDEuNzM5NTgiLCBcCi0gICAgICAgICAgIjAuMTM4ODY0LCAwLjQxODQ1NywgMC42NDA0OTcsIDAuOTE3OTMzLCAxLjE5NTc4LCAxLjQ3MjQzLCAxLjc1MDY4IiwgXAotICAgICAgICAgICIwLjE1NTg4NSwgMC40MzUwODYsIDAuNjU3NzczLCAwLjkzNTIzNywgMS4yMTI2NSwgMS40ODk3NSwgMS43Njc4MSIsIFwKLSAgICAgICAgICAiMC4xNzAzNzcsIDAuNDUwMjU2LCAwLjY3MjkyNiwgMC45NTAxNzEsIDEuMjI3ODgsIDEuNTA0ODgsIDEuNzgyMDEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTY1NTEyLCAwLjcwODQzMSwgMS4xNDI0NiwgMS42ODQ3OSwgMi4yMjcwNCwgMi43Njk1MiwgMy4zMTE3NCIsIFwKLSAgICAgICAgICAiMC4xNjU0OTMsIDAuNzA4MzQzLCAxLjE0MjM2LCAxLjY4NDc5LCAyLjIyNzAyLCAyLjc2ODcyLCAzLjMxMTc1IiwgXAotICAgICAgICAgICIwLjE2NTgzMiwgMC43MDg0NTEsIDEuMTQyMzMsIDEuNjg0NzcsIDIuMjI3MDIsIDIuNzY5MTcsIDMuMzExMjYiLCBcCi0gICAgICAgICAgIjAuMTY3OTM2LCAwLjcwODQ0NCwgMS4xNDIzNywgMS42ODQ4MywgMi4yMjY3LCAyLjc2OTU3LCAzLjMxMTg5IiwgXAotICAgICAgICAgICIwLjE3MTQ3MSwgMC43MDgyODMsIDEuMTQyMzMsIDEuNjg0NzksIDIuMjI3MTQsIDIuNzY5MzIsIDMuMzExNjQiLCBcCi0gICAgICAgICAgIjAuMTc4ODg4LCAwLjcwODM3MiwgMS4xNDI0NiwgMS42ODQ2NywgMi4yMjcwNSwgMi43NjkzMiwgMy4zMTE1MiIsIFwKLSAgICAgICAgICAiMC4xODY1NzQsIDAuNzA5NDAxLCAxLjE0MjM4LCAxLjY4NDczLCAyLjIyNywgMi43NjkxOSwgMy4zMTE4OSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY2ODc4LCAwLjI2Njc0NiwgMC40MjcyNDYsIDAuNjI5MzQyLCAwLjgzMDU2OSwgMS4wMzI3MywgMS4yMzUyNiIsIFwKLSAgICAgICAgICAiMC4wNzY2ODIsIDAuMjc2OCwgMC40Mzc0MzEsIDAuNjM5MTM2LCAwLjg0MDg5NCwgMS4wNDI2MSwgMS4yNDUzNCIsIFwKLSAgICAgICAgICAiMC4wODc0NywgMC4yODc2NzYsIDAuNDQ4MDQ2LCAwLjY0OTcyMSwgMC44NTIyODcsIDEuMDUzMjIsIDEuMjU1MTYiLCBcCi0gICAgICAgICAgIjAuMDk3NTg0LCAwLjI5Nzg1OSwgMC40NTgyODEsIDAuNjYwMDcyLCAwLjg2MjM3MiwgMS4wNjQ1NSwgMS4yNjU3MyIsIFwKLSAgICAgICAgICAiMC4xMDc1MjYsIDAuMzA3OTY4LCAwLjQ2ODUzOCwgMC42NzAzMTEsIDAuODcxNzYxLCAxLjA3MzY4LCAxLjI3NjEyIiwgXAotICAgICAgICAgICIwLjEyMjQ5OCwgMC4zMjM4NTksIDAuNDg0MTYsIDAuNjg2MzE5LCAwLjg4ODE3OSwgMS4wODk4OCwgMS4yOTE4NyIsIFwKLSAgICAgICAgICAiMC4xMzQzNTksIDAuMzM3ODQzLCAwLjQ5ODA3MywgMC43MDAxNjksIDAuOTAyMDYxLCAxLjEwMzY0LCAxLjMwNTU5Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwNzk0MiwgMC41MTUyMjQsIDAuODQ0MzY2LCAxLjI1MzI4LCAxLjY2NjE5LCAyLjA3MzgzLCAyLjQ4NDc5IiwgXAotICAgICAgICAgICIwLjEwNzk2OSwgMC41MTU3MiwgMC44NDMyNzcsIDEuMjUzNzUsIDEuNjYzNjksIDIuMDc4NTksIDIuNDgzNzQiLCBcCi0gICAgICAgICAgIjAuMTA4NTQ2LCAwLjUxNjQ2NiwgMC44NDUzNSwgMS4yNTY2LCAxLjY2MzQ3LCAyLjA3NTE2LCAyLjQ4NTc4IiwgXAotICAgICAgICAgICIwLjExMDg0MSwgMC41MTYzNjEsIDAuODQ1NDU3LCAxLjI1NDQ5LCAxLjY2MzQxLCAyLjA3NDMyLCAyLjQ4NDAyIiwgXAotICAgICAgICAgICIwLjExNDEyLCAwLjUxNjUzOCwgMC44NDMyOCwgMS4yNTM3MiwgMS42Njc3NSwgMi4wNzY5MywgMi40ODM5MyIsIFwKLSAgICAgICAgICAiMC4xMjEyLCAwLjUxNzc4LCAwLjg0NTEzMywgMS4yNTM2OCwgMS42NjM5NCwgMi4wNzU2MiwgMi40ODQzNyIsIFwKLSAgICAgICAgICAiMC4xMjg2MjksIDAuNTE4NzE0LCAwLjg0NDIxMiwgMS4yNTYzNiwgMS42NjUyNSwgMi4wNzUxNywgMi40ODkxNiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTQ0MzQsIDAuMzczNDkzLCAwLjU5NTI0NiwgMC44NzI4NDksIDEuMTUwNDEsIDEuNDI3OTIsIDEuNzA0NyIsIFwKLSAgICAgICAgICAiMC4xMDI3NiwgMC4zODE4MTgsIDAuNjAzODk0LCAwLjg4MTIyMiwgMS4xNTg0NiwgMS40MzU3MiwgMS43MTI2NyIsIFwKLSAgICAgICAgICAiMC4xMTM3MDQsIDAuMzkyODg2LCAwLjYxNDc2MywgMC44OTIyNCwgMS4xNzAyLCAxLjQ0NjY2LCAxLjcyNDA5IiwgXAotICAgICAgICAgICIwLjEyNDQ4NSwgMC40MDM1OTYsIDAuNjI1OTcyLCAwLjkwMzM5NiwgMS4xODA2OSwgMS40NTgsIDEuNzM1MjMiLCBcCi0gICAgICAgICAgIjAuMTM1NjI1LCAwLjQxNDY5MiwgMC42MzY3MywgMC45MTQyNDcsIDEuMTkxODksIDEuNDY4NjIsIDEuNzQ2OTgiLCBcCi0gICAgICAgICAgIjAuMTUzMzk2LCAwLjQzMTYyNiwgMC42NTQyNCwgMC45MzIwMjMsIDEuMjA5NjEsIDEuNDg2MDksIDEuNzY0MDgiLCBcCi0gICAgICAgICAgIjAuMTY5MDY5LCAwLjQ0NzU2MiwgMC42Njk2NzQsIDAuOTQ3MDg3LCAxLjIyNDYzLCAxLjUwMjM3LCAxLjc3ODc3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE2NTUyLCAwLjcwODIxMywgMS4xNDI0MywgMS42ODQ4OSwgMi4yMjcwNiwgMi43Njk1OSwgMy4zMTE3OCIsIFwKLSAgICAgICAgICAiMC4xNjU1MTQsIDAuNzA4NDI1LCAxLjE0MjQ0LCAxLjY4NDU0LCAyLjIyNzAyLCAyLjc2ODU4LCAzLjMxMTM2IiwgXAotICAgICAgICAgICIwLjE2NjAxMiwgMC43MDgyOTgsIDEuMTQyNDMsIDEuNjg0ODgsIDIuMjI3MTUsIDIuNzY5MTQsIDMuMzExNTkiLCBcCi0gICAgICAgICAgIjAuMTY5MzA4LCAwLjcwODM0LCAxLjE0MjM3LCAxLjY4NDgzLCAyLjIyNjYyLCAyLjc2OTYxLCAzLjMxMTUxIiwgXAotICAgICAgICAgICIwLjE3NDQ3NiwgMC43MDgyNTcsIDEuMTQyMjcsIDEuNjg0NTksIDIuMjI2ODMsIDIuNzY5MjIsIDMuMzExNDkiLCBcCi0gICAgICAgICAgIjAuMTg0NzA5LCAwLjcwODQzMiwgMS4xNDI0NiwgMS42ODQ3LCAyLjIyNzExLCAyLjc2OTQ1LCAzLjMxMTY1IiwgXAotICAgICAgICAgICIwLjE5NDg5OSwgMC43MDk4MTQsIDEuMTQyMjcsIDEuNjg0NzgsIDIuMjI3MDYsIDIuNzY4ODgsIDMuMzExODgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjAiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1OTk1LCAwLjI1NjI0NSwgMC40MTQ1NzksIDAuNjE0NDI1LCAwLjgxMzU0MiwgMS4wMTMyNywgMS4yMTM0NyIsIFwKLSAgICAgICAgICAiMC4wNjg5NjMsIDAuMjY1MzQsIDAuNDIzNjEzLCAwLjYyMzA3MiwgMC44MjI5MDIsIDEuMDIyNjMsIDEuMjIxNjciLCBcCi0gICAgICAgICAgIjAuMDgwMjk4LCAwLjI3NjY4LCAwLjQzNSwgMC42MzQ0NjIsIDAuODM0NjQ0LCAxLjAzMzU1LCAxLjIzMzUyIiwgXAotICAgICAgICAgICIwLjA5MjA4NiwgMC4yODgxMDIsIDAuNDQ2MzI3LCAwLjY0NTgzOSwgMC44NDU1NDMsIDEuMDQ1NTcsIDEuMjQ1MjYiLCBcCi0gICAgICAgICAgIjAuMTAzODY2LCAwLjI5OTc1MSwgMC40NTc5NDcsIDAuNjU3NjkxLCAwLjg1NzIwNCwgMS4wNTcyNCwgMS4yNTYyMyIsIFwKLSAgICAgICAgICAiMC4xMjE5MzYsIDAuMzE4MjMzLCAwLjQ3NjUxMSwgMC42NzU5NzEsIDAuODc1NTIzLCAxLjA3NTE3LCAxLjI3NDU3IiwgXAotICAgICAgICAgICIwLjEzNTI0LCAwLjMzNDM1NywgMC40OTI0NDksIDAuNjkyMSwgMC44OTE2MSwgMS4wOTE2NCwgMS4yOTA3NyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTIzMywgMC41MTM0NjMsIDAuODM3Nzk1LCAxLjI0Mjc4LCAxLjY0ODMsIDIuMDUzOTEsIDIuNDU5NjkiLCBcCi0gICAgICAgICAgIjAuMTExNzkzLCAwLjUxMzIwMywgMC44Mzc1MjUsIDEuMjQyODYsIDEuNjQ4NTUsIDIuMDUzMzIsIDIuNDU4ODciLCBcCi0gICAgICAgICAgIjAuMTE0Njc4LCAwLjUxMzE4OCwgMC44Mzc2NTQsIDEuMjQyOSwgMS42NDg2NiwgMi4wNTM2MSwgMi40NTkwNiIsIFwKLSAgICAgICAgICAiMC4xMTk5OCwgMC41MTMyMTMsIDAuODM3NzY2LCAxLjI0MzAyLCAxLjY0ODMsIDIuMDUzMjEsIDIuNDU4NDgiLCBcCi0gICAgICAgICAgIjAuMTI2NzA0LCAwLjUxMzIwMywgMC44Mzc5MjQsIDEuMjQyODUsIDEuNjQ4MzcsIDIuMDUzMjEsIDIuNDU5MDIiLCBcCi0gICAgICAgICAgIjAuMTM5NTY1LCAwLjUxNTc1OCwgMC44Mzc0OTQsIDEuMjQyODQsIDEuNjQ4MTcsIDIuMDUzNjUsIDIuNDU4ODYiLCBcCi0gICAgICAgICAgIjAuMTUxOTMsIDAuNTIwMDk4LCAwLjgzNzg3MSwgMS4yNDMzOCwgMS42NDgxLCAyLjA1MzI3LCAyLjQ1ODkzIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1NDMxLCAwLjI0NDgxLCAwLjM5NzE0MiwgMC41ODc1NTYsIDAuNzc3OTU5LCAwLjk2ODI1NCwgMS4xNTg1IiwgXAotICAgICAgICAgICIwLjA2MzM2MSwgMC4yNTQxNzcsIDAuNDA2NTQ1LCAwLjU5Njk0MywgMC43ODcyOTMsIDAuOTc3NjM1LCAxLjE2Nzg0IiwgXAotICAgICAgICAgICIwLjA3NDIxNywgMC4yNjUyNDYsIDAuNDE3NjU2LCAwLjYwODAzNiwgMC43OTg0OTgsIDAuOTg4Njk4LCAxLjE3OTMzIiwgXAotICAgICAgICAgICIwLjA4NDk5OSwgMC4yNzYzMzQsIDAuNDI4ODAyLCAwLjYxOTIzLCAwLjgwOTcwMywgMC45OTk4MjcsIDEuMTkwMTkiLCBcCi0gICAgICAgICAgIjAuMDk1NjEzLCAwLjI4NzI3NiwgMC40Mzk3MTQsIDAuNjMwMTQ5LCAwLjgyMDU5LCAxLjAxMDkyLCAxLjIwMTIyIiwgXAotICAgICAgICAgICIwLjExMTI4MSwgMC4zMDQ5MzMsIDAuNDU2ODk2LCAwLjY0Nzk0NywgMC44MzgzNDMsIDEuMDI4NjYsIDEuMjE4OSIsIFwKLSAgICAgICAgICAiMC4xMjMyNzUsIDAuMzIwMjEzLCAwLjQ3MjczMSwgMC42NjMyOTgsIDAuODUzODA0LCAxLjA0NDEsIDEuMjM0NCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDU1MDQsIDAuNDgwNTU2LCAwLjc4MTA5MiwgMS4xNTcyMywgMS41MzMxMSwgMS45MDkxNywgMi4yOTE3NCIsIFwKLSAgICAgICAgICAiMC4xMDU1MTUsIDAuNDgwNTg5LCAwLjc4MTE4OCwgMS4xNTcxOCwgMS41MzI4MywgMS45MDkzMSwgMi4yODQ2NyIsIFwKLSAgICAgICAgICAiMC4xMDc1NDcsIDAuNDgwNTQ4LCAwLjc4MTIzNCwgMS4xNTcxLCAxLjUzMzA4LCAxLjkwOTE5LCAyLjI4NTI1IiwgXAotICAgICAgICAgICIwLjExMTUxOCwgMC40ODA1OTcsIDAuNzgxMjQ4LCAxLjE1NjkzLCAxLjUzMzI5LCAxLjkwOTMzLCAyLjI4NTQ4IiwgXAotICAgICAgICAgICIwLjExNjY4NiwgMC40ODA2OTEsIDAuNzgxMTg2LCAxLjE1NjksIDEuNTMzMzMsIDEuOTEwNTQsIDIuMjkwNiIsIFwKLSAgICAgICAgICAiMC4xMjY1NTcsIDAuNDgyNTYzLCAwLjc4MTA1OSwgMS4xNTcxMiwgMS41MzMxMSwgMS45MDkzOCwgMi4yODU0NSIsIFwKLSAgICAgICAgICAiMC4xMzU4ODcsIDAuNDg1NjMzLCAwLjc4MTcwOSwgMS4xNTY5MywgMS41MzI4OCwgMS45MDkyOSwgMi4yODU0MiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU3OTgzLCAwLjI1ODA5MSwgMC40MTc1NjIsIDAuNjE3NSwgMC44MjAwNiwgMS4wMjExOCwgMS4yMjI1NSIsIFwKLSAgICAgICAgICAiMC4wNjcwMDIsIDAuMjY3Mjk1LCAwLjQyNjg4NSwgMC42MjY4MDEsIDAuODI4NzA0LCAxLjAzMDQ2LCAxLjIzMjczIiwgXAotICAgICAgICAgICIwLjA3ODU4NCwgMC4yNzkwMDMsIDAuNDM4NTkxLCAwLjYzODczOSwgMC44NDAyOTEsIDEuMDQyMTgsIDEuMjQ0MDIiLCBcCi0gICAgICAgICAgIjAuMDg5OTI0LCAwLjI5MDA0NSwgMC40NDk3NTYsIDAuNjQ5MTkxLCAwLjg1MTE1MSwgMS4wNTM1MywgMS4yNTQ2OCIsIFwKLSAgICAgICAgICAiMC4xMDE3NDksIDAuMzAxNTc5LCAwLjQ2MTI2NiwgMC42NjEwNjUsIDAuODYyNzk1LCAxLjA2NDA5LCAxLjI2NjIzIiwgXAotICAgICAgICAgICIwLjExOTM4NiwgMC4zMjAwOTUsIDAuNDc5NzU2LCAwLjY3OTM1MSwgMC44ODE2NTgsIDEuMDgzMTMsIDEuMjg0OCIsIFwKLSAgICAgICAgICAiMC4xMzI1MiwgMC4zMzYyMDksIDAuNDk1ODQ2LCAwLjY5NTk2NSwgMC44OTc0MTUsIDEuMDk5MjMsIDEuMzAxMzciKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTEwNzIyLCAwLjUxNjIxOCwgMC44NDMyNDMsIDEuMjUzNTksIDEuNjY0NDEsIDIuMDczOSwgMi40ODU1NSIsIFwKLSAgICAgICAgICAiMC4xMTAzMTcsIDAuNTE2Mzg0LCAwLjg0NTQyMywgMS4yNTM3OCwgMS42NjM5NSwgMi4wNzM5LCAyLjQ4MzY1IiwgXAotICAgICAgICAgICIwLjExMzExOCwgMC41MTYyOSwgMC44NDUyMzIsIDEuMjUzMjcsIDEuNjY1NDEsIDIuMDczOTMsIDIuNDg0MDkiLCBcCi0gICAgICAgICAgIjAuMTE4ODQ3LCAwLjUxNjQ1NywgMC44NDQwMTIsIDEuMjU2NDgsIDEuNjY3MjEsIDIuMDczNjcsIDIuNDg4NDEiLCBcCi0gICAgICAgICAgIjAuMTI1Nzc5LCAwLjUxNjI2MywgMC44NDUxOTUsIDEuMjUzNSwgMS42Njc0MiwgMi4wNzUwMSwgMi40ODkyMiIsIFwKLSAgICAgICAgICAiMC4xMzg5MjMsIDAuNTE4ODU5LCAwLjg0NTE0NCwgMS4yNTY1NSwgMS42NjM1OSwgMi4wNzU0NCwgMi40ODU4NiIsIFwKLSAgICAgICAgICAiMC4xNTEzMzEsIDAuNTIyNTY1LCAwLjg0NTY2OSwgMS4yNTMzOSwgMS42NjczMSwgMi4wNzgzLCAyLjQ4NDM3Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1MTcwNiwgMC4yNDIyMTgsIDAuMzk0NTQ1LCAwLjU4NDk5OSwgMC43NzUzNDcsIDAuOTY1NzI1LCAxLjE1NjE2IiwgXAotICAgICAgICAgICIwLjA2MDg3MSwgMC4yNTE2OCwgMC40MDQwODUsIDAuNTk0NDgzLCAwLjc4NDc0LCAwLjk3NTE3MywgMS4xNjUzNyIsIFwKLSAgICAgICAgICAiMC4wNzI2MDEsIDAuMjYzNDk5LCAwLjQxNTg5MiwgMC42MDYyODQsIDAuNzk2NzI3LCAwLjk4Njk0NywgMS4xNzczNSIsIFwKLSAgICAgICAgICAiMC4wODQzMjUsIDAuMjc0ODczLCAwLjQyNzI3NSwgMC42MTc2NjcsIDAuODA3OTYzLCAwLjk5ODQ1NywgMS4xODg2NyIsIFwKLSAgICAgICAgICAiMC4wOTYyNDEsIDAuMjg2NTcyLCAwLjQzOTAzOCwgMC42Mjk0MjUsIDAuODE5OCwgMS4wMTAxOSwgMS4yMDAzNyIsIFwKLSAgICAgICAgICAiMC4xMTMxNzQsIDAuMzA1MzM5LCAwLjQ1NzcxNiwgMC42NDgxNjYsIDAuODM4NTQ2LCAxLjAyODg5LCAxLjIxOTA3IiwgXAotICAgICAgICAgICIwLjEyNTg1MywgMC4zMjE2OTgsIDAuNDc0MDYyLCAwLjY2NDU1NSwgMC44NTQ4OTIsIDEuMDQ1MTksIDEuMjM1NTIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTA1NTA2LCAwLjQ4MDYxMSwgMC43ODEyMjQsIDEuMTU3MjksIDEuNTMzMzQsIDEuOTA5LCAyLjI4ODY1IiwgXAotICAgICAgICAgICIwLjEwNTYwNywgMC40ODA2MjQsIDAuNzgxMTIzLCAxLjE1NzE5LCAxLjUzMjc0LCAxLjkwOTI1LCAyLjI4NDY0IiwgXAotICAgICAgICAgICIwLjEwOTA2OSwgMC40ODA1NjgsIDAuNzgxMTM2LCAxLjE1NzA0LCAxLjUzMzA3LCAxLjkxMTkyLCAyLjI4NTY2IiwgXAotICAgICAgICAgICIwLjExNTIyNCwgMC40ODA1NzksIDAuNzgxMjM4LCAxLjE1NzEyLCAxLjUzMzI5LCAxLjkwOTQ4LCAyLjI4NTIzIiwgXAotICAgICAgICAgICIwLjEyMjgwNSwgMC40ODA3ODYsIDAuNzgxMjUsIDEuMTU3MDksIDEuNTMzMTEsIDEuOTExODksIDIuMjg1NDUiLCBcCi0gICAgICAgICAgIjAuMTM2NjU0LCAwLjQ4MzU1NCwgMC43ODEwODIsIDEuMTU2OTQsIDEuNTMzMDUsIDEuOTExNTQsIDIuMjg1NTEiLCBcCi0gICAgICAgICAgIjAuMTQ5Mzg2LCAwLjQ4ODExNSwgMC43ODIwMSwgMS4xNTcyMywgMS41MzMwNCwgMS45MDg4MywgMi4yODU1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwODE3MSwgMC4wMDgxNzMsIDAuMDA4MTcyLCAwLjAwODE3MSwgMC4wMDgxNjksIDAuMDA4MTcyLCAwLjAwODE2NCIsIFwKLSAgICAgICAgICAiMC4wMDgxNDUsIDAuMDA4MTUxLCAwLjAwODE1MSwgMC4wMDgxNTEsIDAuMDA4MTUxLCAwLjAwODE1LCAwLjAwODE0OSIsIFwKLSAgICAgICAgICAiMC4wMDgxMzEsIDAuMDA4MTQ1LCAwLjAwODE0NywgMC4wMDgxNDcsIDAuMDA4MTQ1LCAwLjAwODE0NSwgMC4wMDgxNTEiLCBcCi0gICAgICAgICAgIjAuMDA4MTIxLCAwLjAwODE0MSwgMC4wMDgxNDQsIDAuMDA4MTQ1LCAwLjAwODE0NSwgMC4wMDgxNDYsIDAuMDA4MTQyIiwgXAotICAgICAgICAgICIwLjAwODExNywgMC4wMDgxMzksIDAuMDA4MTQyLCAwLjAwODE0MiwgMC4wMDgxNDMsIDAuMDA4MTQ1LCAwLjAwODE0NSIsIFwKLSAgICAgICAgICAiMC4wMDgxMDgsIDAuMDA4MTM2LCAwLjAwODE0LCAwLjAwODE0MSwgMC4wMDgxNDEsIDAuMDA4MTQyLCAwLjAwODE0NCIsIFwKLSAgICAgICAgICAiMC4wMDgxMDgsIDAuMDA4MTMyLCAwLjAwODEzNywgMC4wMDgxNCwgMC4wMDgxMzksIDAuMDA4MTQsIDAuMDA4MTQxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyMzY4LCAwLjAwMjM3LCAwLjAwMjM2OSwgMC4wMDIzNywgMC4wMDIzNjgsIDAuMDAyMzY3LCAwLjAwMjM2NyIsIFwKLSAgICAgICAgICAiMC4wMDIzMTUsIDAuMDAyMzQsIDAuMDAyMzQyLCAwLjAwMjM0MywgMC4wMDIzNDMsIDAuMDAyMzQ0LCAwLjAwMjM0MyIsIFwKLSAgICAgICAgICAiMC4wMDIyNzgsIDAuMDAyMzI0LCAwLjAwMjMzMSwgMC4wMDIzMzQsIDAuMDAyMzM1LCAwLjAwMjMzNiwgMC4wMDIzMzQiLCBcCi0gICAgICAgICAgIjAuMDAyMjU0LCAwLjAwMjMxMywgMC4wMDIzMjIsIDAuMDAyMzI4LCAwLjAwMjMzMiwgMC4wMDIzMzIsIDAuMDAyMzMyIiwgXAotICAgICAgICAgICIwLjAwMjIzNywgMC4wMDIzMDMsIDAuMDAyMzE1LCAwLjAwMjMyMywgMC4wMDIzMjYsIDAuMDAyMzI3LCAwLjAwMjMyOSIsIFwKLSAgICAgICAgICAiMC4wMDIyMTksIDAuMDAyMjg4LCAwLjAwMjMwNSwgMC4wMDIzMTUsIDAuMDAyMzIsIDAuMDAyMzIzLCAwLjAwMjMyNCIsIFwKLSAgICAgICAgICAiMC4wMDIyMTQsIDAuMDAyMjc5LCAwLjAwMjI5OCwgMC4wMDIzMDksIDAuMDAyMzE1LCAwLjAwMjMxOSwgMC4wMDIzMjEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA3MzQ0LCAwLjAwNzM0NywgMC4wMDczNDcsIDAuMDA3MzQ3LCAwLjAwNzM0NiwgMC4wMDczNDYsIDAuMDA3MzQ1IiwgXAotICAgICAgICAgICIwLjAwNzMyMiwgMC4wMDczNDMsIDAuMDA3MzQ0LCAwLjAwNzM0NSwgMC4wMDczNDYsIDAuMDA3MzQ1LCAwLjAwNzM0NCIsIFwKLSAgICAgICAgICAiMC4wMDcyOTYsIDAuMDA3MzM0LCAwLjAwNzMzOSwgMC4wMDczNDIsIDAuMDA3MzQyLCAwLjAwNzM0MywgMC4wMDczNDIiLCBcCi0gICAgICAgICAgIjAuMDA3MjgsIDAuMDA3MzI5LCAwLjAwNzMzNSwgMC4wMDczMzksIDAuMDA3MzQzLCAwLjAwNzM0MSwgMC4wMDczNDEiLCBcCi0gICAgICAgICAgIjAuMDA3MjY2LCAwLjAwNzMyMiwgMC4wMDczMzEsIDAuMDA3MzM4LCAwLjAwNzMzOCwgMC4wMDczMzgsIDAuMDA3MzM5IiwgXAotICAgICAgICAgICIwLjAwNzI1MywgMC4wMDczMTMsIDAuMDA3MzI0LCAwLjAwNzMzMiwgMC4wMDczMzQsIDAuMDA3MzM2LCAwLjAwNzMzNiIsIFwKLSAgICAgICAgICAiMC4wMDcyNDcsIDAuMDA3MzA4LCAwLjAwNzMyMSwgMC4wMDczMjksIDAuMDA3MzMzLCAwLjAwNzMzNCwgMC4wMDczMzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDIzNjgsIDAuMDAyMzY5LCAwLjAwMjM3LCAwLjAwMjM2OCwgMC4wMDIzNjcsIDAuMDAyMzY2LCAwLjAwMjM2NiIsIFwKLSAgICAgICAgICAiMC4wMDIzMTQsIDAuMDAyMzM4LCAwLjAwMjM0MywgMC4wMDIzNDIsIDAuMDAyMzQsIDAuMDAyMzQyLCAwLjAwMjM0NyIsIFwKLSAgICAgICAgICAiMC4wMDIyNzgsIDAuMDAyMzI0LCAwLjAwMjMzLCAwLjAwMjMzNCwgMC4wMDIzMzQsIDAuMDAyMzM1LCAwLjAwMjMzNSIsIFwKLSAgICAgICAgICAiMC4wMDIyNTUsIDAuMDAyMzEyLCAwLjAwMjMyMiwgMC4wMDIzMjcsIDAuMDAyMzMsIDAuMDAyMzMsIDAuMDAyMzMyIiwgXAotICAgICAgICAgICIwLjAwMjIzOSwgMC4wMDIzMDMsIDAuMDAyMzE1LCAwLjAwMjMyMiwgMC4wMDIzMjYsIDAuMDAyMzI3LCAwLjAwMjMyOSIsIFwKLSAgICAgICAgICAiMC4wMDIyMjgsIDAuMDAyMjg4LCAwLjAwMjMwNiwgMC4wMDIzMTUsIDAuMDAyMzIsIDAuMDAyMzIxLCAwLjAwMjMyMyIsIFwKLSAgICAgICAgICAiMC4wMDIyMjgsIDAuMDAyMjgzLCAwLjAwMjI5OSwgMC4wMDIzMSwgMC4wMDIzMTUsIDAuMDAyMzE5LCAwLjAwMjMyMSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEyIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDY1MjksIDAuMDA2NTM4LCAwLjAwNjU0LCAwLjAwNjUzNywgMC4wMDY1NCwgMC4wMDY1NCwgMC4wMDY1MzkiLCBcCi0gICAgICAgICAgIjAuMDA2NTExLCAwLjAwNjU0OSwgMC4wMDY1NTMsIDAuMDA2NTU2LCAwLjAwNjU1NiwgMC4wMDY1NTcsIDAuMDA2NTU3IiwgXAotICAgICAgICAgICIwLjAwNjQ3NiwgMC4wMDY1NDEsIDAuMDA2NTUsIDAuMDA2NTU5LCAwLjAwNjU1LCAwLjAwNjU1LCAwLjAwNjU2MSIsIFwKLSAgICAgICAgICAiMC4wMDY0NTEsIDAuMDA2NTMxLCAwLjAwNjU0MiwgMC4wMDY1NDksIDAuMDA2NTUzLCAwLjAwNjU1NCwgMC4wMDY1NTUiLCBcCi0gICAgICAgICAgIjAuMDA2NDMyLCAwLjAwNjUyMiwgMC4wMDY1MzcsIDAuMDA2NTQ1LCAwLjAwNjU1LCAwLjAwNjU1MiwgMC4wMDY1NTMiLCBcCi0gICAgICAgICAgIjAuMDA2NDExLCAwLjAwNjUwOCwgMC4wMDY1MjgsIDAuMDA2NTM5LCAwLjAwNjU0NSwgMC4wMDY1NSwgMC4wMDY1NDkiLCBcCi0gICAgICAgICAgIjAuMDA2NDAxLCAwLjAwNjQ5OCwgMC4wMDY1MiwgMC4wMDY1MzMsIDAuMDA2NTQxLCAwLjAwNjU0NCwgMC4wMDY1NDYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDIzNywgMC4wMDIzNzQsIDAuMDAyMzc0LCAwLjAwMjM3NSwgMC4wMDIzNzIsIDAuMDAyMzY4LCAwLjAwMjM3IiwgXAotICAgICAgICAgICIwLjAwMjMwOSwgMC4wMDIzNCwgMC4wMDIzNDQsIDAuMDAyMzQ1LCAwLjAwMjM0NiwgMC4wMDIzNDUsIDAuMDAyMzQ0IiwgXAotICAgICAgICAgICIwLjAwMjI4LCAwLjAwMjMyNiwgMC4wMDIzMzEsIDAuMDAyMzM3LCAwLjAwMjMzNywgMC4wMDIzMzksIDAuMDAyMzM5IiwgXAotICAgICAgICAgICIwLjAwMjI2LCAwLjAwMjMxNCwgMC4wMDIzMjQsIDAuMDAyMzMsIDAuMDAyMzMyLCAwLjAwMjMzMywgMC4wMDIzMzQiLCBcCi0gICAgICAgICAgIjAuMDAyMjU4LCAwLjAwMjMwOCwgMC4wMDIzMiwgMC4wMDIzMjYsIDAuMDAyMzI5LCAwLjAwMjMzMSwgMC4wMDIzMzMiLCBcCi0gICAgICAgICAgIjAuMDAyMjc3LCAwLjAwMjMwMSwgMC4wMDIzMTYsIDAuMDAyMzIzLCAwLjAwMjMyNywgMC4wMDIzMjcsIDAuMDAyMzI5IiwgXAotICAgICAgICAgICIwLjAwMjMxLCAwLjAwMjMwNywgMC4wMDIzMTYsIDAuMDAyMzIyLCAwLjAwMjMyNSwgMC4wMDIzMjcsIDAuMDAyMzI5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNTkyNywgMC4wMDU5MzIsIDAuMDA1OTMyLCAwLjAwNTkzMiwgMC4wMDU5MzEsIDAuMDA1OTMsIDAuMDA1OTI5IiwgXAotICAgICAgICAgICIwLjAwNTg4OSwgMC4wMDU5MTQsIDAuMDA1OTE3LCAwLjAwNTkxOSwgMC4wMDU5MTgsIDAuMDA1OTIsIDAuMDA1OTE2IiwgXAotICAgICAgICAgICIwLjAwNTg3MiwgMC4wMDU5MDYsIDAuMDA1OTEsIDAuMDA1OTEzLCAwLjAwNTkxMywgMC4wMDU5MTUsIDAuMDA1OTEzIiwgXAotICAgICAgICAgICIwLjAwNTg3MSwgMC4wMDU5MDEsIDAuMDA1OTA2LCAwLjAwNTkxMSwgMC4wMDU5MSwgMC4wMDU5MTEsIDAuMDA1OTEiLCBcCi0gICAgICAgICAgIjAuMDA1ODc2LCAwLjAwNTg5OCwgMC4wMDU5MDUsIDAuMDA1OTA3LCAwLjAwNTkxLCAwLjAwNTkxLCAwLjAwNTkwOSIsIFwKLSAgICAgICAgICAiMC4wMDU5MDEsIDAuMDA1ODk5LCAwLjAwNTkwMywgMC4wMDU5MDgsIDAuMDA1OTA3LCAwLjAwNTkwOCwgMC4wMDU5MDkiLCBcCi0gICAgICAgICAgIjAuMDA1OTMyLCAwLjAwNTkwNSwgMC4wMDU5MDcsIDAuMDA1OTA5LCAwLjAwNTkwOCwgMC4wMDU5MDksIDAuMDA1OTA5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwNTc4LCAwLjAwMDU5NiwgMC4wMDA1OTgsIDAuMDAwNTk5LCAwLjAwMDU5OSwgMC4wMDA2LCAwLjAwMDYiLCBcCi0gICAgICAgICAgIjAuMDAwNTQ4LCAwLjAwMDYxOSwgMC4wMDA2MjgsIDAuMDAwNjMyLCAwLjAwMDYzNSwgMC4wMDA2MzYsIDAuMDAwNjM3IiwgXAotICAgICAgICAgICIwLjAwMDQ5NCwgMC4wMDA2MDcsIDAuMDAwNjIzLCAwLjAwMDYzMiwgMC4wMDA2MzYsIDAuMDAwNjM5LCAwLjAwMDY0MSIsIFwKLSAgICAgICAgICAiMC4wMDA0NTgsIDAuMDAwNTkyLCAwLjAwMDYxNCwgMC4wMDA2MjYsIDAuMDAwNjMyLCAwLjAwMDYzNiwgMC4wMDA2MzkiLCBcCi0gICAgICAgICAgIjAuMDAwNDM0LCAwLjAwMDU3OCwgMC4wMDA2MDQsIDAuMDAwNjIsIDAuMDAwNjI4LCAwLjAwMDYzMywgMC4wMDA2MzYiLCBcCi0gICAgICAgICAgIjAuMDAwNDE0LCAwLjAwMDU1NywgMC4wMDA1OSwgMC4wMDA2MDksIDAuMDAwNjIsIDAuMDAwNjI3LCAwLjAwMDYzMSIsIFwKLSAgICAgICAgICAiMC4wMDA0MTIsIDAuMDAwNTQzLCAwLjAwMDU3OSwgMC4wMDA2MDEsIDAuMDAwNjE0LCAwLjAwMDYyMSwgMC4wMDA2MjciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1MDI4LCAwLjAwNTA0MiwgMC4wMDUwNDMsIDAuMDA1MDQ0LCAwLjAwNTA0MywgMC4wMDUwNDMsIDAuMDA1MDQyIiwgXAotICAgICAgICAgICIwLjAwNDk4NiwgMC4wMDUwMzgsIDAuMDA1MDQ0LCAwLjAwNTA0OCwgMC4wMDUwNDksIDAuMDA1MDUsIDAuMDA1MDQ5IiwgXAotICAgICAgICAgICIwLjAwNDk1NiwgMC4wMDUwMjUsIDAuMDA1MDM3LCAwLjAwNTA0MSwgMC4wMDUwNDMsIDAuMDA1MDQ1LCAwLjAwNTA0NiIsIFwKLSAgICAgICAgICAiMC4wMDQ5NDMsIDAuMDA1MDE3LCAwLjAwNTAyOSwgMC4wMDUwMzcsIDAuMDA1MDQxLCAwLjAwNTA0NCwgMC4wMDUwNDQiLCBcCi0gICAgICAgICAgIjAuMDA0OTQsIDAuMDA1MDA4LCAwLjAwNTAyMywgMC4wMDUwMzIsIDAuMDA1MDM4LCAwLjAwNTA0LCAwLjAwNTA0MSIsIFwKLSAgICAgICAgICAiMC4wMDQ5NTksIDAuMDA1MDAxLCAwLjAwNTAxOCwgMC4wMDUwMjcsIDAuMDA1MDMzLCAwLjAwNTAzNiwgMC4wMDUwMzgiLCBcCi0gICAgICAgICAgIjAuMDA0OTg3LCAwLjAwNSwgMC4wMDUwMTYsIDAuMDA1MDI1LCAwLjAwNTAzMiwgMC4wMDUwMzUsIDAuMDA1MDM3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwNTc4LCAwLjAwMDU5OCwgMC4wMDA2LCAwLjAwMDYwMSwgMC4wMDA2MDIsIDAuMDAwNjAyLCAwLjAwMDYwMyIsIFwKLSAgICAgICAgICAiMC4wMDA1NDIsIDAuMDAwNjIxLCAwLjAwMDYzLCAwLjAwMDYzNSwgMC4wMDA2MzgsIDAuMDAwNjM5LCAwLjAwMDY0IiwgXAotICAgICAgICAgICIwLjAwMDUwNywgMC4wMDA2MTEsIDAuMDAwNjI2LCAwLjAwMDYzNCwgMC4wMDA2MzgsIDAuMDAwNjQxLCAwLjAwMDY0MyIsIFwKLSAgICAgICAgICAiMC4wMDA0ODEsIDAuMDAwNTk4LCAwLjAwMDYxOSwgMC4wMDA2MzEsIDAuMDAwNjM3LCAwLjAwMDY0MSwgMC4wMDA2NDQiLCBcCi0gICAgICAgICAgIjAuMDAwNDc5LCAwLjAwMDU4OCwgMC4wMDA2MTIsIDAuMDAwNjI2LCAwLjAwMDYzMywgMC4wMDA2MzgsIDAuMDAwNjQxIiwgXAotICAgICAgICAgICIwLjAwMDUsIDAuMDAwNTc4LCAwLjAwMDYwNCwgMC4wMDA2MiwgMC4wMDA2MjksIDAuMDAwNjM1LCAwLjAwMDYzOSIsIFwKLSAgICAgICAgICAiMC4wMDA1MzIsIDAuMDAwNTc2LCAwLjAwMDYwMSwgMC4wMDA2MTgsIDAuMDAwNjI3LCAwLjAwMDYzMywgMC4wMDA2MzciKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBBT0kzMlg0ICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKEFPSTMyWDQpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC43MDA2NTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQTApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMzU3NDY3OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMzU2MzYzOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMzU3NDY3OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTYzNywgMC4wMDE2MzYsIDAuMDAxNjM1LCAwLjAwMTYzNSwgMC4wMDE2MzUsIDAuMDAxNjM0LCAwLjAwMTYzNCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTYzOCwgMC4wMDE2NCwgMC4wMDE2NDEsIDAuMDAxNjQsIDAuMDAxNjQsIDAuMDAxNjQsIDAuMDAxNjQiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEExKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDM1NTU0OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMzU0MjM2OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMzU1NTQ7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxNjM3LCAwLjAwMTYzNiwgMC4wMDE2MzYsIDAuMDAxNjM1LCAwLjAwMTYzNCwgMC4wMDE2MzQsIDAuMDAxNjM0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxNjM5LCAwLjAwMTY0LCAwLjAwMTY0LCAwLjAwMTY0MSwgMC4wMDE2NDEsIDAuMDAxNjQyLCAwLjAwMTY0MiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQTIpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMzI3ODk4OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMzI1NDg2OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMzI3ODk4OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTA3NiwgMC4wMDEwNzQsIDAuMDAxMDc0LCAwLjAwMTA3MywgMC4wMDEwNzQsIDAuMDAxMDczLCAwLjAwMTA3NCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTg1NiwgMC4wMDE4NTgsIDAuMDAxODU4LCAwLjAwMTg1OSwgMC4wMDE4NTgsIDAuMDAxODU4LCAwLjAwMTg1OCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQjApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMzMwNzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDMzMDc7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAzMjk3ODE7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxNjM3LCAwLjAwMTYzNywgMC4wMDE2MzYsIDAuMDAxNjM2LCAwLjAwMTYzNiwgMC4wMDE2MzYsIDAuMDAxNjM1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxNjgxLCAwLjAwMTY0NSwgMC4wMDE2NDIsIDAuMDAxNjQsIDAuMDAxNjQsIDAuMDAxNjQsIDAuMDAxNjQiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIxKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDMyMzgyNjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDMyMzYyNjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDMyMzgyNjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA5MzYsIDAuMDAwOTM0LCAwLjAwMDkzNSwgMC4wMDA5MzQsIDAuMDAwOTM0LCAwLjAwMDkzMywgMC4wMDA5MzQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDE4NTYsIDAuMDAxODU3LCAwLjAwMTg1NywgMC4wMDE4NTcsIDAuMDAxODU4LCAwLjAwMTg1OCwgMC4wMDE4NTgiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4zOTE4MTU7Ci0gICAgZnVuY3Rpb24gOiAiKCEoKEIwIEIxKSsoKEEwIEExKSBBMikpKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTAiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDUxMDAyLCAwLjE5MDQ4OSwgMC4zMjkwMTIsIDAuNDI4MTkyLCAwLjU4NzczMiwgMC43MjcyMDUsIDAuOTI3MzEiLCBcCi0gICAgICAgICAgIjAuMDYwNzUsIDAuMjAwMjc3LCAwLjMzODg5OCwgMC40Mzc5MjcsIDAuNTk3NzkyLCAwLjczNzc2MSwgMC45MzY3MTMiLCBcCi0gICAgICAgICAgIjAuMDcxNTg3LCAwLjIxMTE2MSwgMC4zNDk4MzMsIDAuNDQ4OTksIDAuNjA4NDQxLCAwLjc0ODEwMywgMC45NDc3NjQiLCBcCi0gICAgICAgICAgIjAuMDgxNjI3LCAwLjIyMTI4NCwgMC4zNjAwMjEsIDAuNDU5MTE0LCAwLjYxODY0MSwgMC43NTg3NzUsIDAuOTU3Nzc0IiwgXAotICAgICAgICAgICIwLjA5MTI2MywgMC4yMzE0NzksIDAuMzcwMDc2LCAwLjQ2OTIsIDAuNjI4ODA2LCAwLjc2ODU0OSwgMC45NjgwNDIiLCBcCi0gICAgICAgICAgIjAuMTA0NzUxLCAwLjI0NzMxMywgMC4zODYwMjksIDAuNDg1MTUsIDAuNjQ0OTE0LCAwLjc4NDQ1OSwgMC45ODQwMDgiLCBcCi0gICAgICAgICAgIjAuMTE1NDA1LCAwLjI2MTMzNCwgMC40MDAwNTcsIDAuNDk5MDQ3LCAwLjY1ODg5NCwgMC43OTg3OTgsIDAuOTk4MDYyIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDcyNTg0LCAwLjM1Mzg1MiwgMC42Mzc4MjMsIDAuODQwNzYzLCAxLjE2NDYxLCAxLjQ0ODc3LCAxLjg1NDcxIiwgXAotICAgICAgICAgICIwLjA3MjY0MiwgMC4zNTM4MzYsIDAuNjM3NjQsIDAuODQwNjc0LCAxLjE2NDk5LCAxLjQ0ODgxLCAxLjg1NDcyIiwgXAotICAgICAgICAgICIwLjA3MzcwNCwgMC4zNTM5MDQsIDAuNjM3NjcxLCAwLjg0MDQ0MywgMS4xNjQ2MiwgMS40NDg1NSwgMS44NTQ1MiIsIFwKLSAgICAgICAgICAiMC4wNzY1MTUsIDAuMzU0MDM1LCAwLjYzNzc0MiwgMC44NDA0NjEsIDEuMTY0OTIsIDEuNDQ4ODMsIDEuODU0OTgiLCBcCi0gICAgICAgICAgIjAuMDgwMzc2LCAwLjM1NDY4LCAwLjYzNzYwMywgMC44NDA2MTMsIDEuMTY0ODIsIDEuNDQ4ODQsIDEuODU0NDkiLCBcCi0gICAgICAgICAgIjAuMDg4NDM0LCAwLjM1NzI1MiwgMC42MzgwNzIsIDAuODQwNDM3LCAxLjE2NDk5LCAxLjQ0ODgzLCAxLjg1NDU0IiwgXAotICAgICAgICAgICIwLjA5NTgxNSwgMC4zNjEwMDQsIDAuNjM5MTM2LCAwLjg0MDk2NywgMS4xNjUwMSwgMS40NDg4NiwgMS44NTQ1MiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3MjM2OCwgMC4yNjk1MzQsIDAuNDY1MTk2LCAwLjYwNDkyMywgMC44MjgyNjcsIDEuMDIzODEsIDEuMzAyMzkiLCBcCi0gICAgICAgICAgIjAuMDgwNDY1LCAwLjI3Nzk3NSwgMC40NzM1NzMsIDAuNjEzMjEsIDAuODM2MjM1LCAxLjAzMTY0LCAxLjMxMDYiLCBcCi0gICAgICAgICAgIjAuMDg5NjI2LCAwLjI4NzI4MSwgMC40ODMwMDcsIDAuNjIyNjcyLCAwLjg0NTcxOSwgMS4wNDA4NiwgMS4zMTk4NCIsIFwKLSAgICAgICAgICAiMC4wOTg1NTksIDAuMjk2MjU3LCAwLjQ5MjAyNSwgMC42MzE2NTcsIDAuODU0ODgyLCAxLjA1MDQxLCAxLjMyODkzIiwgXAotICAgICAgICAgICIwLjEwNzUwNywgMC4zMDUzNTIsIDAuNTAxMTYyLCAwLjY0MDk1NSwgMC44NjQ1OTMsIDEuMDU5MjgsIDEuMzM4ODciLCBcCi0gICAgICAgICAgIjAuMTIxMjEzLCAwLjMxOTcxMiwgMC41MTU3NTUsIDAuNjU1NDIzLCAwLjg3ODYsIDEuMDc0MjEsIDEuMzUyODEiLCBcCi0gICAgICAgICAgIjAuMTMxOTU4LCAwLjMzMjEwMywgMC41MjgwNTQsIDAuNjY3OTE1LCAwLjg5MTA2OCwgMS4wODY0MywgMS4zNjU0NCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwOTg0MSwgMC40OTIwNCwgMC44NzQ0MDIsIDEuMTQ3MzIsIDEuNTgzNjQsIDEuOTY1ODcsIDIuNTExNDMiLCBcCi0gICAgICAgICAgIjAuMTA5ODEyLCAwLjQ5MjEwOSwgMC44NzQzNywgMS4xNDcxNywgMS41ODM3NiwgMS45NjU3NiwgMi41MTEyOCIsIFwKLSAgICAgICAgICAiMC4xMTA1NiwgMC40OTIwMjQsIDAuODc0NDE0LCAxLjE0NzI2LCAxLjU4MzkxLCAxLjk2NTYxLCAyLjUxMTIzIiwgXAotICAgICAgICAgICIwLjExMjYwNywgMC40OTIwNDQsIDAuODc0Mzk1LCAxLjE0NzM2LCAxLjU4MzcyLCAxLjk2NTU1LCAyLjUxMTQ1IiwgXAotICAgICAgICAgICIwLjExNTYzNSwgMC40OTIyMywgMC44NzQzMTMsIDEuMTQ3MjcsIDEuNTgzNjcsIDEuOTY1NzQsIDIuNTExMzciLCBcCi0gICAgICAgICAgIjAuMTIxODkyLCAwLjQ5MzYxLCAwLjg3NDMzNywgMS4xNDcyNiwgMS41ODM2MiwgMS45NjU2NCwgMi41MTA5NCIsIFwKLSAgICAgICAgICAiMC4xMjg2NDgsIDAuNDk1NjU1LCAwLjg3NDYwMywgMS4xNDcyMiwgMS41ODM2LCAxLjk2NTg1LCAyLjUxMTUxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkExIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0ODQzNSwgMC4xODczNSwgMC4zMjU1MDksIDAuNDI0NDcyLCAwLjU4MzUzNCwgMC43MjI3MjIsIDAuOTIyMzQ4IiwgXAotICAgICAgICAgICIwLjA1ODA5OSwgMC4xOTcxMzMsIDAuMzM1NTY3LCAwLjQzNDQ5OCwgMC41OTMxMzQsIDAuNzMzMDg4LCAwLjkzMTgyOSIsIFwKLSAgICAgICAgICAiMC4wNjg4ODIsIDAuMjA4MDE3LCAwLjM0NjQ4MywgMC40NDUzMDMsIDAuNjA0NDc0LCAwLjc0MzM1NCwgMC45NDI4ODkiLCBcCi0gICAgICAgICAgIjAuMDc5MTA5LCAwLjIxODQwNiwgMC4zNTY5ODEsIDAuNDU1NjgsIDAuNjE0NDgsIDAuNzUzNzYxLCAwLjk1MzYwNiIsIFwKLSAgICAgICAgICAiMC4wODg0NDIsIDAuMjI4MzcxLCAwLjM2NzAzOSwgMC40NjU2ODUsIDAuNjI0NTY4LCAwLjc2NDA4MiwgMC45NjMyOSIsIFwKLSAgICAgICAgICAiMC4xMDE2MzYsIDAuMjQ0Mjc2LCAwLjM4MjgzNywgMC40ODE5MjQsIDAuNjQwNDYzLCAwLjc3OTk5LCAwLjk3OTM3MiIsIFwKLSAgICAgICAgICAiMC4xMTE2ODMsIDAuMjU4MTM3LCAwLjM5Njk3OCwgMC40OTU3NTIsIDAuNjU0NTE5LCAwLjc5NDEyMywgMC45OTMxMDEiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjkxMjUsIDAuMzUwNDIzLCAwLjYzMjQ5NiwgMC44MzU0NjIsIDEuMTU4ODksIDEuNDQyMjgsIDEuODQ2NjUiLCBcCi0gICAgICAgICAgIjAuMDY5MjM4LCAwLjM1MDE5MSwgMC42MzI2MjUsIDAuODM1NDMzLCAxLjE1ODg1LCAxLjQ0MjY1LCAxLjg0NjM4IiwgXAotICAgICAgICAgICIwLjA3MDQ2MiwgMC4zNTAzMzEsIDAuNjMyNjYsIDAuODM1LCAxLjE1OTI2LCAxLjQ0MjE4LCAxLjg0NjczIiwgXAotICAgICAgICAgICIwLjA3MzMxMSwgMC4zNTAyNjIsIDAuNjMyNjM3LCAwLjgzNTEzNCwgMS4xNTkwNSwgMS40NDIyMiwgMS44NDY3OCIsIFwKLSAgICAgICAgICAiMC4wNzczNTEsIDAuMzUwOTU3LCAwLjYzMjY2MywgMC44MzUzNDgsIDEuMTU4ODUsIDEuNDQyMDksIDEuODQ3MDUiLCBcCi0gICAgICAgICAgIjAuMDg1NTk0LCAwLjM1MzY1OSwgMC42MzMwNzEsIDAuODM1MjIxLCAxLjE1ODg5LCAxLjQ0MjE5LCAxLjg0Njg5IiwgXAotICAgICAgICAgICIwLjA5MzEwNiwgMC4zNTc1MywgMC42MzQ1NjgsIDAuODM1MzM3LCAxLjE1ODk1LCAxLjQ0MjI3LCAxLjg0NzE2Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDcwMDU4LCAwLjI2NzIxOSwgMC40NjMxODUsIDAuNjAyNTY5LCAwLjgyNTg0NiwgMS4wMjE0NiwgMS4zMDAwNSIsIFwKLSAgICAgICAgICAiMC4wNzgzODYsIDAuMjc1ODgyLCAwLjQ3MTQ3NiwgMC42MTEzNSwgMC44MzQzODUsIDEuMDI5OTUsIDEuMzA4ODQiLCBcCi0gICAgICAgICAgIjAuMDg4ODM3LCAwLjI4NjU5LCAwLjQ4MjMxMSwgMC42MjIsIDAuODQ1NTM1LCAxLjA0MDMyLCAxLjMyMDAyIiwgXAotICAgICAgICAgICIwLjA5OTQ4MiwgMC4yOTcyMzUsIDAuNDkzMDM0LCAwLjYzMjc2MywgMC44NTYyNzIsIDEuMDUxNiwgMS4zMzAyOCIsIFwKLSAgICAgICAgICAiMC4xMDk5NjcsIDAuMzA3NjAxLCAwLjUwMzgzNSwgMC42NDMyOSwgMC44NjY1MTQsIDEuMDYyMzIsIDEuMzQwODMiLCBcCi0gICAgICAgICAgIjAuMTI2MTc3LCAwLjMyNDkyMiwgMC41MjA5OTMsIDAuNjYwNTIzLCAwLjg4Mzc3NywgMS4wNzkyNSwgMS4zNTgwMiIsIFwKLSAgICAgICAgICAiMC4xMzkxMDYsIDAuMzM5ODUsIDAuNTM1OTExLCAwLjY3NTU1NiwgMC44OTg3OTEsIDEuMDk0MjMsIDEuMzczMTUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDk4MzQsIDAuNDkyMDI4LCAwLjg3NDM4NCwgMS4xNDcyOCwgMS41ODM4NiwgMS45NjU4NiwgMi41MTEzOCIsIFwKLSAgICAgICAgICAiMC4xMDk3NzgsIDAuNDkyMDQsIDAuODc0Mzk5LCAxLjE0NzM0LCAxLjU4MzgyLCAxLjk2NTc4LCAyLjUxMTMxIiwgXAotICAgICAgICAgICIwLjExMDk3OCwgMC40OTIwMTUsIDAuODc0Mzc5LCAxLjE0NzIsIDEuNTgzNTgsIDEuOTY1ODUsIDIuNTExMjQiLCBcCi0gICAgICAgICAgIjAuMTE0Mjg4LCAwLjQ5MjA2NCwgMC44NzQzMzYsIDEuMTQ3MzEsIDEuNTgzNjQsIDEuOTY1NjUsIDIuNTExMyIsIFwKLSAgICAgICAgICAiMC4xMTg5MTgsIDAuNDkyMTA5LCAwLjg3NDMxNSwgMS4xNDczLCAxLjU4Mzk0LCAxLjk2NTgxLCAyLjUxMTMxIiwgXAotICAgICAgICAgICIwLjEyODAxNSwgMC40OTM1OTYsIDAuODc0NDAzLCAxLjE0NzIxLCAxLjU4Mzc5LCAxLjk2NTM0LCAyLjUxMDk2IiwgXAotICAgICAgICAgICIwLjEzNzI3NCwgMC40OTY0NTEsIDAuODc0NTI5LCAxLjE0NzIzLCAxLjU4MzkyLCAxLjk2NTgyLCAyLjUxMTQ5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEyIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0NjA0OSwgMC4xODY0NDksIDAuMzI2NzU2LCAwLjQyNjUzOCwgMC41ODcyMTksIDAuNzI5MSwgMC45MzAyMjUiLCBcCi0gICAgICAgICAgIjAuMDU1NzUxLCAwLjE5NjM5OCwgMC4zMzY1LCAwLjQzNjgyOCwgMC41OTcyOTUsIDAuNzM4ODE4LCAwLjk0MDQ3MiIsIFwKLSAgICAgICAgICAiMC4wNjY0ODQsIDAuMjA3MjY3LCAwLjM0NzQ2MSwgMC40NDc1MjMsIDAuNjA4MDU5LCAwLjc0OTE0MiwgMC45NTA2ODgiLCBcCi0gICAgICAgICAgIjAuMDc2NDk0LCAwLjIxNzUzNiwgMC4zNTc3NjksIDAuNDU3NzA3LCAwLjYxODM2OCwgMC43NTkzODIsIDAuOTYxODg0IiwgXAotICAgICAgICAgICIwLjA4NTU1NSwgMC4yMjc0NjgsIDAuMzY3OTE5LCAwLjQ2NzgxLCAwLjYyODUyNiwgMC43Njk1MTMsIDAuOTcyMDY0IiwgXAotICAgICAgICAgICIwLjA5ODMyNiwgMC4yNDMyOTMsIDAuMzgzNzI0LCAwLjQ4Mzg0NCwgMC42NDQ3NywgMC43ODU1MzYsIDAuOTg3MTA0IiwgXAotICAgICAgICAgICIwLjEwODIyMywgMC4yNTcyNjIsIDAuMzk3NjE3LCAwLjQ5Nzc0LCAwLjY1ODMzMywgMC44MDAxMjksIDEuMDAxMTQiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjY1ODMsIDAuMzUxMDA1LCAwLjYzNjE3OCwgMC44NDE2NTcsIDEuMTcxNTcsIDEuNDU2NjIsIDEuODY1NjgiLCBcCi0gICAgICAgICAgIjAuMDY2NzA1LCAwLjM1MDg0NiwgMC42MzgxMDEsIDAuODQxNjgzLCAxLjE2OTk2LCAxLjQ1NTQ2LCAxLjg2NTk5IiwgXAotICAgICAgICAgICIwLjA2ODAyOCwgMC4zNTA4NDEsIDAuNjM2NjcyLCAwLjg0MTQ0NCwgMS4xNjk5LCAxLjQ1OTM2LCAxLjg2NTM5IiwgXAotICAgICAgICAgICIwLjA3MTA0NCwgMC4zNTA5NTksIDAuNjM2Njk5LCAwLjg0MzI0OSwgMS4xNjk5NCwgMS40NTkzOSwgMS44NjU2NCIsIFwKLSAgICAgICAgICAiMC4wNzUzMDUsIDAuMzUxNTk3LCAwLjYzNjU5NSwgMC44NDI4MTgsIDEuMTcxNzIsIDEuNDU4ODUsIDEuODY1OTkiLCBcCi0gICAgICAgICAgIjAuMDgzNzEsIDAuMzU0NDY2LCAwLjYzNzAwMywgMC44NDE1NzMsIDEuMTY5MTMsIDEuNDU4ODUsIDEuODY4NDgiLCBcCi0gICAgICAgICAgIjAuMDkxMTQyLCAwLjM1ODE1OSwgMC42Mzk5MzgsIDAuODQyMjY1LCAxLjE2OTg1LCAxLjQ1NTUyLCAxLjg2OTQiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjU2MiwgMC4yNjI5NzgsIDAuNDU4Nzc1LCAwLjU5ODE0NCwgMC44MjE4NiwgMS4wMTY4NCwgMS4yOTU2IiwgXAotICAgICAgICAgICIwLjA3MzgzNywgMC4yNzEzMjcsIDAuNDY3MDMyLCAwLjYwNjU2MiwgMC44Mjk3NTcsIDEuMDI1MDksIDEuMzAzOTUiLCBcCi0gICAgICAgICAgIjAuMDg0NDcxLCAwLjI4MjE2MiwgMC40Nzc4MiwgMC42MTc0MjQsIDAuODQwNjM3LCAxLjAzNjA5LCAxLjMxNDc1IiwgXAotICAgICAgICAgICIwLjA5NTcyNCwgMC4yOTMzMDcsIDAuNDg4OTYyLCAwLjYyODYwOCwgMC44NTIyNzIsIDEuMDQ3MTcsIDEuMzI2NSIsIFwKLSAgICAgICAgICAiMC4xMDY2NTUsIDAuMzAzNTgxLCAwLjQ5OTcwNCwgMC42Mzk2OCwgMC44NjI2NjcsIDEuMDU4MTcsIDEuMzM2OCIsIFwKLSAgICAgICAgICAiMC4xMjQ2NTcsIDAuMzIxNjIyLCAwLjUxNzQ0MSwgMC42NTY4OTEsIDAuODgwMDg3LCAxLjA3NTUyLCAxLjM1NDQyIiwgXAotICAgICAgICAgICIwLjEzODE0MywgMC4zMzY5NzYsIDAuNTMyNzI2LCAwLjY3MjMzMSwgMC44OTU1MzMsIDEuMDkwODksIDEuMzY5ODEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDk4NjgsIDAuNDkyMDQyLCAwLjg3NDM5MSwgMS4xNDcyNywgMS41ODM4MSwgMS45NjU4MywgMi41MTE1MSIsIFwKLSAgICAgICAgICAiMC4xMDk2NTYsIDAuNDkyMDkyLCAwLjg3NDM2NiwgMS4xNDcxNCwgMS41ODM2OSwgMS45NjU3NCwgMi41MTEzMyIsIFwKLSAgICAgICAgICAiMC4xMTE4NywgMC40OTIwOSwgMC44NzQ0MTUsIDEuMTQ3MzEsIDEuNTgzODYsIDEuOTY1NjcsIDIuNTExMjMiLCBcCi0gICAgICAgICAgIjAuMTE2ODI2LCAwLjQ5MjA0NiwgMC44NzQzODEsIDEuMTQ3MjgsIDEuNTgzOCwgMS45NjU1NiwgMi41MTEwNSIsIFwKLSAgICAgICAgICAiMC4xMjM1MzQsIDAuNDkyMDg3LCAwLjg3NDM3MSwgMS4xNDcyNiwgMS41ODM4MiwgMS45NjU4MywgMi41MTE0MyIsIFwKLSAgICAgICAgICAiMC4xMzU2NDIsIDAuNDk0NTQxLCAwLjg3NDM4LCAxLjE0NzMxLCAxLjU4MzYzLCAxLjk2NTU2LCAyLjUxMTI1IiwgXAotICAgICAgICAgICIwLjE0NzMzOSwgMC40OTg1NTEsIDAuODc0NTU3LCAxLjE0NzM0LCAxLjU4MzY2LCAxLjk2NTg0LCAyLjUxMTIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjAiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM5OTU2LCAwLjE3OTUzMSwgMC4zMTgwMTUsIDAuNDE3MDI4LCAwLjU3NTE5NSwgMC43MTUxNjgsIDAuOTE1MDM2IiwgXAotICAgICAgICAgICIwLjA0ODk5NSwgMC4xODg2MjYsIDAuMzI3MzA0LCAwLjQyNjE4MiwgMC41ODQ3MDEsIDAuNzIzOTg3LCAwLjkyNDQyMSIsIFwKLSAgICAgICAgICAiMC4wNjA2ODEsIDAuMjAwMzE2LCAwLjMzODg2NywgMC40Mzc3NiwgMC41OTY1MDIsIDAuNzM1NjEyLCAwLjkzNjExMSIsIFwKLSAgICAgICAgICAiMC4wNzIyODcsIDAuMjExNDA3LCAwLjM1MDEzLCAwLjQ0OTAwOCwgMC42MDcyNjYsIDAuNzQ2NTY4LCAwLjk0NzE2NyIsIFwKLSAgICAgICAgICAiMC4wODMxMTEsIDAuMjIzLCAwLjM2MTYzNCwgMC40NjA1MzcsIDAuNjE4OTk5LCAwLjc1ODE5NCwgMC45NTg0OCIsIFwKLSAgICAgICAgICAiMC4wOTc0NzQsIDAuMjQxNTU4LCAwLjM4MDEzMiwgMC40NzkwNjUsIDAuNjM3NDYsIDAuNzc2NzUyLCAwLjk3NzA4OSIsIFwKLSAgICAgICAgICAiMC4xMDgxNDMsIDAuMjU3ODMzLCAwLjM5NjM1NywgMC40OTUxODMsIDAuNjUzNzI4LCAwLjc5MjkwNSwgMC45OTMwNjQiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzIyMTcsIDAuMzUzOTkyLCAwLjYzNTMxLCAwLjgzODcyNiwgMS4xNjQxLCAxLjQ0ODg2LCAxLjg1Mzc1IiwgXAotICAgICAgICAgICIwLjA3MjMzMywgMC4zNTM5MDgsIDAuNjM1Mjc1LCAwLjgzODg0NSwgMS4xNjM4NCwgMS40NDgwNSwgMS44NTM5OCIsIFwKLSAgICAgICAgICAiMC4wNzY4ODUsIDAuMzUzOTM4LCAwLjYzNTI3OSwgMC44MzgzNzMsIDEuMTYzNTYsIDEuNDQ3OTksIDEuODU0NDEiLCBcCi0gICAgICAgICAgIjAuMDg0MDUyLCAwLjM1MzkxMSwgMC42MzUzMTQsIDAuODM4NjYsIDEuMTYzNjksIDEuNDQ4MzMsIDEuODU0MzQiLCBcCi0gICAgICAgICAgIjAuMDkyMzA0LCAwLjM1NTYwNiwgMC42MzUyOTMsIDAuODM4ODI0LCAxLjE2NDA3LCAxLjQ0NzksIDEuODU0NTMiLCBcCi0gICAgICAgICAgIjAuMTA2MjY3LCAwLjM2MTI2MSwgMC42MzU5MjMsIDAuODM4NDAxLCAxLjE2MzYzLCAxLjQ0Nzk1LCAxLjg1MzU5IiwgXAotICAgICAgICAgICIwLjExNzU2NywgMC4zNjgwOSwgMC42Mzg1NjIsIDAuODM4NzgxLCAxLjE2MzIxLCAxLjQ0NzksIDEuODU0MzciKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzQ5NDYsIDAuMTY5NjA2LCAwLjMwNDExNiwgMC40MDAxNzEsIDAuNTUzNzg0LCAwLjY4ODM1MSwgMC44ODA0NDEiLCBcCi0gICAgICAgICAgIjAuMDQzNzk5LCAwLjE3ODg2NiwgMC4zMTM0MDcsIDAuNDA5NDUzLCAwLjU2MzE1MywgMC42OTc2MzMsIDAuODg5NjMiLCBcCi0gICAgICAgICAgIjAuMDU0NTE2LCAwLjE4OTg3NCwgMC4zMjQ1LCAwLjQyMDYyMSwgMC41NzQyNzYsIDAuNzA4ODA4LCAwLjkwMDgzNiIsIFwKLSAgICAgICAgICAiMC4wNjQ1ODUsIDAuMjAwODE2LCAwLjMzNTU1MSwgMC40MzE2NTIsIDAuNTg1MzUzLCAwLjcxOTg3MiwgMC45MTE5MzUiLCBcCi0gICAgICAgICAgIjAuMDczNjcsIDAuMjEyMDQ5LCAwLjM0NjY4LCAwLjQ0Mjg3NywgMC41OTY2MjksIDAuNzMwOTgsIDAuOTIzMDQxIiwgXAotICAgICAgICAgICIwLjA4NjIwNiwgMC4yMjkyMjQsIDAuMzY0MTI1LCAwLjQ2MDQ0NiwgMC42MTQyMDEsIDAuNzQ4NzA4LCAwLjk0MDY4NyIsIFwKLSAgICAgICAgICAiMC4wOTU5NTYsIDAuMjQ0NDc3LCAwLjM3OTcyMSwgMC40NzU4NjksIDAuNjI5NjcxLCAwLjc2NDMwNSwgMC45NTY0NCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2ODE5MiwgMC4zMzI2ODcsIDAuNTk4MDE4LCAwLjc4NzQ1OSwgMS4wOTA3OSwgMS4zNTY3LCAxLjczODY5IiwgXAotICAgICAgICAgICIwLjA2ODYzNSwgMC4zMzI2NjEsIDAuNTk3OTA4LCAwLjc4NzU5NCwgMS4wOTEwNCwgMS4zNTY2MSwgMS43MzU4NCIsIFwKLSAgICAgICAgICAiMC4wNzIxNzYsIDAuMzMyNjUyLCAwLjU5NzkzNSwgMC43ODc2MywgMS4wOTA5NywgMS4zNTY3LCAxLjczNTk2IiwgXAotICAgICAgICAgICIwLjA3NzU1MSwgMC4zMzI4NzEsIDAuNTk3OTQ1LCAwLjc4NzQzLCAxLjA5MTAzLCAxLjM1Njc1LCAxLjczNzU1IiwgXAotICAgICAgICAgICIwLjA4MzkzMywgMC4zMzQzMjksIDAuNTk3OTUyLCAwLjc4NzQwMywgMS4wOTExLCAxLjM1NjY3LCAxLjczNzY1IiwgXAotICAgICAgICAgICIwLjA5NTExNywgMC4zMzgyMzUsIDAuNTk4NjUyLCAwLjc4NzYzOCwgMS4wOTA5LCAxLjM1Njc4LCAxLjczNjE0IiwgXAotICAgICAgICAgICIwLjEwNDkwOCwgMC4zNDMxNDEsIDAuNjAwNjU3LCAwLjc4ODAyLCAxLjA5MTA3LCAxLjM1NjcsIDEuNzM2MzEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM3NDEsIDAuMTc4MDgsIDAuMzE3ODM4LCAwLjQxNzcyMSwgMC41Nzc0OTYsIDAuNzE3MjYxLCAwLjkxODgzMiIsIFwKLSAgICAgICAgICAiMC4wNDYzNDksIDAuMTg3MjQ0LCAwLjMyNzE3NCwgMC40MjY5MjUsIDAuNTg2OTA1LCAwLjcyNjU1MiwgMC45MjgzNjQiLCBcCi0gICAgICAgICAgIjAuMDU3OTU4LCAwLjE5ODg5NSwgMC4zMzg3MTEsIDAuNDM4NzA5LCAwLjU5ODM2NSwgMC43Mzc5NzUsIDAuOTM5ODg3IiwgXAotICAgICAgICAgICIwLjA2OTQzMiwgMC4yMDk5NjUsIDAuMzQ5OTU4LCAwLjQ0OTc4NywgMC42MDk0NTQsIDAuNzQ4OTEyLCAwLjk1MTA0OCIsIFwKLSAgICAgICAgICAiMC4wNzk4MTksIDAuMjIxNTIyLCAwLjM2MTQzNiwgMC40NjEyNjksIDAuNjIxMjYxLCAwLjc2MDUzNiwgMC45NjIzMjUiLCBcCi0gICAgICAgICAgIjAuMDkzNDEzLCAwLjI0MDA0NCwgMC4zNzk5MywgMC40Nzk3ODgsIDAuNjM5NDkxLCAwLjc3OTQzNCwgMC45ODA4NDQiLCBcCi0gICAgICAgICAgIjAuMTAzNzkzLCAwLjI1NjIzNCwgMC4zOTYxMzMsIDAuNDk1ODkxLCAwLjY1NTg0NCwgMC43OTU0MjUsIDAuOTk2OTA0Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY5MzQ0LCAwLjM1MzY4MywgMC42MzczOTEsIDAuODQyOTE4LCAxLjE2OTE0LCAxLjQ1NzE5LCAxLjg2NTY2IiwgXAotICAgICAgICAgICIwLjA2OTUyNSwgMC4zNTM1NDYsIDAuNjM3NjQzLCAwLjg0MzQ2MywgMS4xNjg5OSwgMS40NTY4NCwgMS44NjUwNyIsIFwKLSAgICAgICAgICAiMC4wNzQ0ODUsIDAuMzUzNjUsIDAuNjM4MjQyLCAwLjg0MTU5OSwgMS4xNzIxLCAxLjQ1ODQyLCAxLjg2NTM5IiwgXAotICAgICAgICAgICIwLjA4MTk3NCwgMC4zNTM2NCwgMC42Mzc2NCwgMC44NDIwNTYsIDEuMTcxOCwgMS40NTkxNywgMS44NjQyMiIsIFwKLSAgICAgICAgICAiMC4wOTA0NjQsIDAuMzU1Mjk2LCAwLjYzNzU5MSwgMC44NDMyMzYsIDEuMTY5NjUsIDEuNDU2NjgsIDEuODY3MTgiLCBcCi0gICAgICAgICAgIjAuMTA0NjAxLCAwLjM2MTE4NywgMC42MzgwNjMsIDAuODQzMjQsIDEuMTcxODYsIDEuNDU1ODIsIDEuODY1MzUiLCBcCi0gICAgICAgICAgIjAuMTE2MTQ1LCAwLjM2ODA2NywgMC42NDE0MzIsIDAuODQyMzQ3LCAxLjE2OTA4LCAxLjQ1NjY2LCAxLjg2NzA1Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDMyNTg4LCAwLjE2NzMwOSwgMC4zMDE3NDcsIDAuMzk3ODAzLCAwLjU1MTUzLCAwLjY4NTkyMSwgMC44NzgwNzciLCBcCi0gICAgICAgICAgIjAuMDQxNTkzLCAwLjE3NjY5NSwgMC4zMTEyNDIsIDAuNDA3MzQyLCAwLjU2MTAzNCwgMC42OTU0NDcsIDAuODg3NTM5IiwgXAotICAgICAgICAgICIwLjA1MzI0MSwgMC4xODgxNjIsIDAuMzIyNzczLCAwLjQxODg3OSwgMC41NzI1ODIsIDAuNzA3MDYxLCAwLjg5OTEyNCIsIFwKLSAgICAgICAgICAiMC4wNjQ1MjUsIDAuMjAwMDIxLCAwLjMzNDcxNiwgMC40MzA4MTgsIDAuNTg0NDU3LCAwLjcxODk5MSwgMC45MTEwNTQiLCBcCi0gICAgICAgICAgIjAuMDczOTg1LCAwLjIxMTUxNywgMC4zNDYwOTQsIDAuNDQyMjQ4LCAwLjU5NTk4LCAwLjczMDQ1OSwgMC45MjI1MjQiLCBcCi0gICAgICAgICAgIjAuMDg2NjYyLCAwLjIzMDE3MSwgMC4zNjQ3OTUsIDAuNDYwOTE5LCAwLjYxNDY0LCAwLjc0OTA1MSwgMC45NDExNjciLCBcCi0gICAgICAgICAgIjAuMDk2MzQ1LCAwLjI0Njc2OSwgMC4zODEyNDcsIDAuNDc3MjQ2LCAwLjYzMDk3MywgMC43NjU0NzMsIDAuOTU3NTMxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY4MTk0LCAwLjMzMjY4NCwgMC41OTc5MTUsIDAuNzg3NDUzLCAxLjA5MTE2LCAxLjM1NjQ1LCAxLjczNTk0IiwgXAotICAgICAgICAgICIwLjA2OTIxNiwgMC4zMzI2MjQsIDAuNTk3OTE2LCAwLjc4NzQ4NSwgMS4wOTA5NiwgMS4zNTY0MywgMS43MzU5OSIsIFwKLSAgICAgICAgICAiMC4wNzUwODgsIDAuMzMyNjU5LCAwLjU5ODAwMywgMC43ODczNjUsIDEuMDkwODIsIDEuMzU2NzIsIDEuNzM1OTgiLCBcCi0gICAgICAgICAgIjAuMDgzMDE2LCAwLjMzMjk1MiwgMC41OTc5NDUsIDAuNzg3NTEzLCAxLjA5MTA1LCAxLjM1NjY0LCAxLjczNTk2IiwgXAotICAgICAgICAgICIwLjA5MjE2NiwgMC4zMzUwMjcsIDAuNTk3OTk4LCAwLjc4NzUwMiwgMS4wOTEwOCwgMS4zNTY3OCwgMS43MzYiLCBcCi0gICAgICAgICAgIjAuMTA3NDAxLCAwLjM0MTA1LCAwLjU5ODkyLCAwLjc4NzQ2OCwgMS4wOTEwOSwgMS4zNTY2MSwgMS43MzU5MiIsIFwKLSAgICAgICAgICAiMC4xMjAxMDUsIDAuMzQ4NDk2LCAwLjYwMTgzNywgMC43ODgyNzksIDEuMDkxMTMsIDEuMzU2NjUsIDEuNzM2MjgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTYwMzEsIDAuMDE2MDM0LCAwLjAxNjAzMywgMC4wMTYwMzEsIDAuMDE2MDI4LCAwLjAxNjAyOSwgMC4wMTYwMzQiLCBcCi0gICAgICAgICAgIjAuMDE1OTY4LCAwLjAxNTk5LCAwLjAxNTk5MiwgMC4wMTU5OTQsIDAuMDE1OTkzLCAwLjAxNTk5MSwgMC4wMTU5OTEiLCBcCi0gICAgICAgICAgIjAuMDE1OTM0LCAwLjAxNTk3NiwgMC4wMTU5NzgsIDAuMDE1OTgxLCAwLjAxNTk4MywgMC4wMTU5OCwgMC4wMTU5ODYiLCBcCi0gICAgICAgICAgIjAuMDE1OTE2LCAwLjAxNTk2NiwgMC4wMTU5NzUsIDAuMDE1OTc4LCAwLjAxNTk4NiwgMC4wMTU5NzksIDAuMDE1OTgzIiwgXAotICAgICAgICAgICIwLjAxNTkwMSwgMC4wMTU5NTksIDAuMDE1OTY5LCAwLjAxNTk3MiwgMC4wMTU5NzUsIDAuMDE1OTc2LCAwLjAxNTk3NiIsIFwKLSAgICAgICAgICAiMC4wMTU4OTIsIDAuMDE1OTQ5LCAwLjAxNTk2MywgMC4wMTU5NjksIDAuMDE1OTc1LCAwLjAxNTk3NSwgMC4wMTU5NzUiLCBcCi0gICAgICAgICAgIjAuMDE1ODg5LCAwLjAxNTkzMywgMC4wMTU5NTgsIDAuMDE1OTY1LCAwLjAxNTk2OCwgMC4wMTU5NzMsIDAuMDE1OTY5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQ0NiwgMC4wMDQ0NjUsIDAuMDA0NDY1LCAwLjAwNDQ2NSwgMC4wMDQ0NjMsIDAuMDA0NDYzLCAwLjAwNDQ2IiwgXAotICAgICAgICAgICIwLjAwNDMzLCAwLjAwNDM5OCwgMC4wMDQ0MDcsIDAuMDA0NDExLCAwLjAwNDQxMiwgMC4wMDQ0MTIsIDAuMDA0NDExIiwgXAotICAgICAgICAgICIwLjAwNDI0MywgMC4wMDQzNTksIDAuMDA0MzgsIDAuMDA0Mzg4LCAwLjAwNDM5NCwgMC4wMDQzOTUsIDAuMDA0Mzk3IiwgXAotICAgICAgICAgICIwLjAwNDE5MiwgMC4wMDQzMjksIDAuMDA0MzYsIDAuMDA0MzcxLCAwLjAwNDM4MSwgMC4wMDQzODQsIDAuMDA0Mzg4IiwgXAotICAgICAgICAgICIwLjAwNDE2MSwgMC4wMDQzMDQsIDAuMDA0MzQyLCAwLjAwNDM1NiwgMC4wMDQzNjgsIDAuMDA0MzczLCAwLjAwNDM4MSIsIFwKLSAgICAgICAgICAiMC4wMDQxMzMsIDAuMDA0MjcxLCAwLjAwNDMxOCwgMC4wMDQzMzgsIDAuMDA0MzU2LCAwLjAwNDM2MywgMC4wMDQzNzEiLCBcCi0gICAgICAgICAgIjAuMDA0MTMsIDAuMDA0MjUxLCAwLjAwNDMwMSwgMC4wMDQzMjEsIDAuMDA0MzQsIDAuMDA0MzQ5LCAwLjAwNDM2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE0NDIsIDAuMDE0NDMxLCAwLjAxNDQzMiwgMC4wMTQ0MzEsIDAuMDE0NDMxLCAwLjAxNDQzNSwgMC4wMTQ0MjciLCBcCi0gICAgICAgICAgIjAuMDE0MzU1LCAwLjAxNDQxNywgMC4wMTQ0MjQsIDAuMDE0NDI2LCAwLjAxNDQyNywgMC4wMTQ0MjgsIDAuMDE0NDI4IiwgXAotICAgICAgICAgICIwLjAxNDI5NCwgMC4wMTQzOTYsIDAuMDE0NDExLCAwLjAxNDQyLCAwLjAxNDQyLCAwLjAxNDQyMSwgMC4wMTQ0MjIiLCBcCi0gICAgICAgICAgIjAuMDE0MjU2LCAwLjAxNDM3OCwgMC4wMTQ0MDEsIDAuMDE0NDA3LCAwLjAxNDQxOCwgMC4wMTQ0MTYsIDAuMDE0NDE4IiwgXAotICAgICAgICAgICIwLjAxNDIyOSwgMC4wMTQzNjEsIDAuMDE0Mzg5LCAwLjAxNDM5OSwgMC4wMTQ0MDgsIDAuMDE0NDEzLCAwLjAxNDQxNCIsIFwKLSAgICAgICAgICAiMC4wMTQyMSwgMC4wMTQzNCwgMC4wMTQzNzQsIDAuMDE0Mzg5LCAwLjAxNDM5OCwgMC4wMTQ0MDcsIDAuMDE0NDA4IiwgXAotICAgICAgICAgICIwLjAxNDE5OSwgMC4wMTQzMjUsIDAuMDE0MzY2LCAwLjAxNDM3OSwgMC4wMTQzOTQsIDAuMDE0Mzk4LCAwLjAxNDQwNCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0NDYxLCAwLjAwNDQ2NywgMC4wMDQ0NjcsIDAuMDA0NDY2LCAwLjAwNDQ2NiwgMC4wMDQ0NjQsIDAuMDA0NDYzIiwgXAotICAgICAgICAgICIwLjAwNDMzLCAwLjAwNDM5OCwgMC4wMDQ0MDgsIDAuMDA0NDE0LCAwLjAwNDQxMiwgMC4wMDQ0MDksIDAuMDA0NDA3IiwgXAotICAgICAgICAgICIwLjAwNDI0MywgMC4wMDQzNTksIDAuMDA0MzgyLCAwLjAwNDM5LCAwLjAwNDM5NiwgMC4wMDQzOTYsIDAuMDA0Mzk4IiwgXAotICAgICAgICAgICIwLjAwNDE5OCwgMC4wMDQzMywgMC4wMDQzNjIsIDAuMDA0MzczLCAwLjAwNDM4MSwgMC4wMDQzODgsIDAuMDA0MzkiLCBcCi0gICAgICAgICAgIjAuMDA0MTcsIDAuMDA0MzA1LCAwLjAwNDM0NiwgMC4wMDQzNTgsIDAuMDA0MzcyLCAwLjAwNDM3NiwgMC4wMDQzODEiLCBcCi0gICAgICAgICAgIjAuMDA0MTU3LCAwLjAwNDI3OCwgMC4wMDQzMjIsIDAuMDA0MzM5LCAwLjAwNDM1NiwgMC4wMDQzNjIsIDAuMDA0MzcxIiwgXAotICAgICAgICAgICIwLjAwNDE2NiwgMC4wMDQyNjMsIDAuMDA0MzA5LCAwLjAwNDMyNywgMC4wMDQzNDQsIDAuMDA0MzU0LCAwLjAwNDM2MiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEyIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMjc0NywgMC4wMTI3OCwgMC4wMTI3ODMsIDAuMDEyNzg0LCAwLjAxMjc4NCwgMC4wMTI3ODMsIDAuMDEyNzg2IiwgXAotICAgICAgICAgICIwLjAxMjY3OCwgMC4wMTI3OTIsIDAuMDEyODA3LCAwLjAxMjgxMiwgMC4wMTI4MTUsIDAuMDEyODE2LCAwLjAxMjgxOCIsIFwKLSAgICAgICAgICAiMC4wMTI1OTMsIDAuMDEyNzY2LCAwLjAxMjc5MSwgMC4wMTI4MDQsIDAuMDEyODA5LCAwLjAxMjgzMSwgMC4wMTI4MTYiLCBcCi0gICAgICAgICAgIjAuMDEyNTQsIDAuMDEyNzQxLCAwLjAxMjc3NywgMC4wMTI3OSwgMC4wMTI4MDEsIDAuMDEyODA2LCAwLjAxMjgxMSIsIFwKLSAgICAgICAgICAiMC4wMTI1MDQsIDAuMDEyNzE2LCAwLjAxMjc2MywgMC4wMTI3NzMsIDAuMDEyODAxLCAwLjAxMjgwNiwgMC4wMTI4MDYiLCBcCi0gICAgICAgICAgIjAuMDEyNDYyLCAwLjAxMjY4MywgMC4wMTI3NCwgMC4wMTI3NiwgMC4wMTI3NzgsIDAuMDEyNzg2LCAwLjAxMjc5NCIsIFwKLSAgICAgICAgICAiMC4wMTI0NTIsIDAuMDEyNjU4LCAwLjAxMjcyNCwgMC4wMTI3NDQsIDAuMDEyNzcyLCAwLjAxMjc3OSwgMC4wMTI3ODciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDQ2NSwgMC4wMDQ0NzUsIDAuMDA0NDc1LCAwLjAwNDQ3MywgMC4wMDQ0NzgsIDAuMDA0NDc3LCAwLjAwNDQ3MiIsIFwKLSAgICAgICAgICAiMC4wMDQzMTMsIDAuMDA0Mzk5LCAwLjAwNDQxLCAwLjAwNDQxNCwgMC4wMDQ0MTcsIDAuMDA0NDE2LCAwLjAwNDQxOSIsIFwKLSAgICAgICAgICAiMC4wMDQyNDIsIDAuMDA0MzYsIDAuMDA0Mzg0LCAwLjAwNDM5MSwgMC4wMDQ0MDEsIDAuMDA0NDAxLCAwLjAwNDQwNCIsIFwKLSAgICAgICAgICAiMC4wMDQyMDYsIDAuMDA0MzMsIDAuMDA0MzY2LCAwLjAwNDM3NCwgMC4wMDQzODQsIDAuMDA0MzksIDAuMDA0Mzk2IiwgXAotICAgICAgICAgICIwLjAwNDIyOCwgMC4wMDQzMTUsIDAuMDA0MzU1LCAwLjAwNDM2NywgMC4wMDQzNzksIDAuMDA0MzgzLCAwLjAwNDM4OSIsIFwKLSAgICAgICAgICAiMC4wMDQzMDQsIDAuMDA0MzE4LCAwLjAwNDM0NywgMC4wMDQzNiwgMC4wMDQzNzEsIDAuMDA0Mzc2LCAwLjAwNDM4NCIsIFwKLSAgICAgICAgICAiMC4wMDQzODMsIDAuMDA0MzI5LCAwLjAwNDM1LCAwLjAwNDM2LCAwLjAwNDM3LCAwLjAwNDM3NiwgMC4wMDQzODEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTE1ODUsIDAuMDExNjAyLCAwLjAxMTYwNCwgMC4wMTE2MDIsIDAuMDExNjAzLCAwLjAxMTYwMywgMC4wMTE1OTkiLCBcCi0gICAgICAgICAgIjAuMDExNDg3LCAwLjAxMTU2LCAwLjAxMTU3LCAwLjAxMTU3NCwgMC4wMTE1NzYsIDAuMDExNTc2LCAwLjAxMTU3OCIsIFwKLSAgICAgICAgICAiMC4wMTE0NjEsIDAuMDExNTQ0LCAwLjAxMTU1OSwgMC4wMTE1NjQsIDAuMDExNTY2LCAwLjAxMTU2OCwgMC4wMTE1NjkiLCBcCi0gICAgICAgICAgIjAuMDExNDcxLCAwLjAxMTUyOSwgMC4wMTE1NDksIDAuMDExNTUzLCAwLjAxMTU2LCAwLjAxMTU2MSwgMC4wMTE1NjIiLCBcCi0gICAgICAgICAgIjAuMDExNDkxLCAwLjAxMTUyMywgMC4wMTE1NDIsIDAuMDExNTQ5LCAwLjAxMTU1NiwgMC4wMTE1NTcsIDAuMDExNTU5IiwgXAotICAgICAgICAgICIwLjAxMTU2NywgMC4wMTE1MzEsIDAuMDExNTQzLCAwLjAxMTU1LCAwLjAxMTU1MiwgMC4wMTE1NTUsIDAuMDExNTU2IiwgXAotICAgICAgICAgICIwLjAxMTY1OCwgMC4wMTE1NDgsIDAuMDExNTUsIDAuMDExNTU0LCAwLjAxMTU1NSwgMC4wMTE1NTksIDAuMDExNTYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDk3NiwgMC4wMDEwMzYsIDAuMDAxMDQzLCAwLjAwMTA0NCwgMC4wMDEwNDYsIDAuMDAxMDQ3LCAwLjAwMTA0NyIsIFwKLSAgICAgICAgICAiMC4wMDA4NTMsIDAuMDAxMDY2LCAwLjAwMTA5NCwgMC4wMDExMDMsIDAuMDAxMTExLCAwLjAwMTExNCwgMC4wMDExMTgiLCBcCi0gICAgICAgICAgIjAuMDAwNzI5LCAwLjAwMTAyNSwgMC4wMDEwNzcsIDAuMDAxMDkzLCAwLjAwMTEwOCwgMC4wMDExMTUsIDAuMDAxMTIyIiwgXAotICAgICAgICAgICIwLjAwMDY2MSwgMC4wMDA5ODMsIDAuMDAxMDUyLCAwLjAwMTA3NCwgMC4wMDEwOTUsIDAuMDAxMTA2LCAwLjAwMTExNiIsIFwKLSAgICAgICAgICAiMC4wMDA2MjgsIDAuMDAwOTQ3LCAwLjAwMTAyOCwgMC4wMDEwNTUsIDAuMDAxMDgxLCAwLjAwMTA5NSwgMC4wMDExMDciLCBcCi0gICAgICAgICAgIjAuMDAwNjE3LCAwLjAwMDg5OCwgMC4wMDA5OTIsIDAuMDAxMDI3LCAwLjAwMTA2LCAwLjAwMTA3NywgMC4wMDEwOTQiLCBcCi0gICAgICAgICAgIjAuMDAwNjM4LCAwLjAwMDg2OCwgMC4wMDA5NjgsIDAuMDAxMDA2LCAwLjAwMTA0MywgMC4wMDEwNjMsIDAuMDAxMDgzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA5OTUzLCAwLjAwOTk5OSwgMC4wMTAwMDIsIDAuMDEwMDAzLCAwLjAxMDAwNSwgMC4wMTAwMDQsIDAuMDEwMDAzIiwgXAotICAgICAgICAgICIwLjAwOTgzMiwgMC4wMDk5NzgsIDAuMDA5OTk4LCAwLjAxMDAwNCwgMC4wMTAwMDksIDAuMDEwMDEzLCAwLjAxMDAxNiIsIFwKLSAgICAgICAgICAiMC4wMDk3NzksIDAuMDA5OTQ2LCAwLjAwOTk3OCwgMC4wMDk5ODgsIDAuMDEsIDAuMDEwMDAxLCAwLjAxMDAwNCIsIFwKLSAgICAgICAgICAiMC4wMDk3NjUsIDAuMDA5OTIsIDAuMDA5OTYyLCAwLjAwOTk3NiwgMC4wMDk5OTEsIDAuMDA5OTk1LCAwLjAxIiwgXAotICAgICAgICAgICIwLjAwOTc3NywgMC4wMDk5LCAwLjAwOTk0NiwgMC4wMDk5NjQsIDAuMDA5OTc5LCAwLjAwOTk4NywgMC4wMDk5OTQiLCBcCi0gICAgICAgICAgIjAuMDA5ODQyLCAwLjAwOTg4OSwgMC4wMDk5MzMsIDAuMDA5OTUxLCAwLjAwOTk2OCwgMC4wMDk5NzYsIDAuMDA5OTg2IiwgXAotICAgICAgICAgICIwLjAwOTk1MSwgMC4wMDk4OTQsIDAuMDA5OTMsIDAuMDA5OTQ3LCAwLjAwOTk2NywgMC4wMDk5NzIsIDAuMDA5OTgxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDA5NjgsIDAuMDAxMDM4LCAwLjAwMTA0NSwgMC4wMDEwNDcsIDAuMDAxMDQ5LCAwLjAwMTA1LCAwLjAwMTA1MSIsIFwKLSAgICAgICAgICAiMC4wMDA4MzIsIDAuMDAxMDY1LCAwLjAwMTA5NiwgMC4wMDExMDYsIDAuMDAxMTE0LCAwLjAwMTExOSwgMC4wMDExMjMiLCBcCi0gICAgICAgICAgIjAuMDAwNzY0LCAwLjAwMTAzMSwgMC4wMDEwODIsIDAuMDAxMDk4LCAwLjAwMTExMywgMC4wMDExMiwgMC4wMDExMjgiLCBcCi0gICAgICAgICAgIjAuMDAwNzE5LCAwLjAwMDk5MiwgMC4wMDEwNTYsIDAuMDAxMDc5LCAwLjAwMTEsIDAuMDAxMTExLCAwLjAwMTEyMSIsIFwKLSAgICAgICAgICAiMC4wMDA3NjEsIDAuMDAwOTcsIDAuMDAxMDQzLCAwLjAwMTA2OCwgMC4wMDEwOTIsIDAuMDAxMTA1LCAwLjAwMTExNyIsIFwKLSAgICAgICAgICAiMC4wMDA4NjMsIDAuMDAwOTUsIDAuMDAxMDI1LCAwLjAwMTA1NCwgMC4wMDEwOCwgMC4wMDEwOTUsIDAuMDAxMTA5IiwgXAotICAgICAgICAgICIwLjAwMDk4NSwgMC4wMDA5NTIsIDAuMDAxMDE5LCAwLjAwMTA0NywgMC4wMDEwNzQsIDAuMDAxMDksIDAuMDAxMTA1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogQU9JMzJYTCAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChBT0kzMlhMKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMDk2MDU5NDsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQTApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDU3NjM3NDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA1NzQ3ODU7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNTc2Mzc0OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDIyNiwgMC4wMDAyMjYsIDAuMDAwMjI2LCAwLjAwMDIyNiwgMC4wMDAyMjYsIDAuMDAwMjI2LCAwLjAwMDIyNiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDIyNywgMC4wMDAyMjcsIDAuMDAwMjI3LCAwLjAwMDIyNywgMC4wMDAyMjcsIDAuMDAwMjI3LCAwLjAwMDIyNyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQTEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYxNTA4NDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MTM1Mzc7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjE1MDg0OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDIyNiwgMC4wMDAyMjYsIDAuMDAwMjI2LCAwLjAwMDIyNiwgMC4wMDAyMjYsIDAuMDAwMjI2LCAwLjAwMDIyNiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDIyNywgMC4wMDAyMjcsIDAuMDAwMjI3LCAwLjAwMDIyNywgMC4wMDAyMjcsIDAuMDAwMjI3LCAwLjAwMDIyNyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQTIpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYxNTYwMzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MTI0NDI7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjE1NjAzOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDExOSwgMC4wMDAxMTksIDAuMDAwMTE5LCAwLjAwMDExOSwgMC4wMDAxMTksIDAuMDAwMTE5LCAwLjAwMDExOSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDI1NywgMC4wMDAyNTcsIDAuMDAwMjU3LCAwLjAwMDI1NywgMC4wMDAyNTcsIDAuMDAwMjU3LCAwLjAwMDI1NyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQjApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYyOTc2MzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2Mjk3NjM7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjI4NjM3OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDIyNiwgMC4wMDAyMjYsIDAuMDAwMjI2LCAwLjAwMDIyNiwgMC4wMDAyMjYsIDAuMDAwMjI2LCAwLjAwMDIyNiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDIzMywgMC4wMDAyMjgsIDAuMDAwMjI3LCAwLjAwMDIyNywgMC4wMDAyMjcsIDAuMDAwMjI3LCAwLjAwMDIyNyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQjEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYzNTk0MjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MzU3MTY7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjM1OTQyOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDExOSwgMC4wMDAxMTksIDAuMDAwMTE5LCAwLjAwMDExOCwgMC4wMDAxMTksIDAuMDAwMTE4LCAwLjAwMDExOCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDI1NywgMC4wMDAyNTcsIDAuMDAwMjU3LCAwLjAwMDI1NywgMC4wMDAyNTcsIDAuMDAwMjU3LCAwLjAwMDI1NyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjA1OTk2ODE7Ci0gICAgZnVuY3Rpb24gOiAiKCEoKEIwIEIxKSsoKEEwIEExKSBBMikpKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTAiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE3MTAzNCwgMC4xOTc5NzEsIDAuNDQwMTEzLCAwLjg0MzIxMiwgMS4yNDY3LCAyLjE4NzEsIDIuNzIzMzYiLCBcCi0gICAgICAgICAgIjAuMTgwOTQxLCAwLjIwNzg3NiwgMC40NTAwNDIsIDAuODUyOTEzLCAxLjI1NTk1LCAyLjE5NjMzLCAyLjczMjkyIiwgXAotICAgICAgICAgICIwLjE5MTk3NSwgMC4yMTg5MDIsIDAuNDYwODM1LCAwLjg2NDAyMywgMS4yNjc2LCAyLjIwODA1LCAyLjc0NDE2IiwgXAotICAgICAgICAgICIwLjIwMjEzLCAwLjIyOTEwNSwgMC40NzExMDIsIDAuODc0MDI1LCAxLjI3Njg3LCAyLjIxNjM0LCAyLjc1Mzg2IiwgXAotICAgICAgICAgICIwLjIxMjExMywgMC4yMzkwNzYsIDAuNDgxMywgMC44ODQ2NzQsIDEuMjg3NzEsIDIuMjI3NDgsIDIuNzYzNjMiLCBcCi0gICAgICAgICAgIjAuMjI3OTU4LCAwLjI1NDgwNSwgMC40OTY5MjgsIDAuOTAwMjg2LCAxLjMwMjc5LCAyLjI0MjgzLCAyLjc4MDYiLCBcCi0gICAgICAgICAgIjAuMjQxNTE0LCAwLjI2ODQyMywgMC41MTA2NTIsIDAuOTE0MDM4LCAxLjMxNjUyLCAyLjI1NzM2LCAyLjc5MzM5Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMxMTA3MSwgMC4zNjU3NjIsIDAuODU2ODM4LCAxLjY3NDYyLCAyLjQ5MjA3LCA0LjQwMDk1LCA1LjQ4ODc4IiwgXAotICAgICAgICAgICIwLjMxMTEyMywgMC4zNjU2NTcsIDAuODU2NjkyLCAxLjY3NDU3LCAyLjQ5MjIxLCA0LjM5OTQzLCA1LjQ4OTU1IiwgXAotICAgICAgICAgICIwLjMxMTI3MSwgMC4zNjU4NDIsIDAuODU2MzgzLCAxLjY3NDYsIDIuNDkyMzUsIDQuNDAwMTYsIDUuNDg4NzgiLCBcCi0gICAgICAgICAgIjAuMzExMzI1LCAwLjM2NTg3MywgMC44NTYzODEsIDEuNjc1MSwgMi40OTI0OCwgNC4zOTg3LCA1LjQ4OTE1IiwgXAotICAgICAgICAgICIwLjMxMjIwOCwgMC4zNjYzMjMsIDAuODU2Njg0LCAxLjY3NDU1LCAyLjQ5MjI5LCA0LjM5OTE3LCA1LjQ4ODg5IiwgXAotICAgICAgICAgICIwLjMxNTQyOSwgMC4zNjg3MTksIDAuODU2MzM1LCAxLjY3NDQ4LCAyLjQ5NDA0LCA0LjQwMDE2LCA1LjQ4OTMxIiwgXAotICAgICAgICAgICIwLjMxOTM5MiwgMC4zNzIyMTIsIDAuODU2NTQ3LCAxLjY3NDYzLCAyLjQ5Mzc4LCA0LjM5OTUzLCA1LjQ4ODY2Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIzNzI0MywgMC4yNzQ0LCAwLjYwODUwNywgMS4xNjQ0MSwgMS43MjA3OCwgMy4wMTU0MiwgMy43NTUzNSIsIFwKLSAgICAgICAgICAiMC4yNDU3MTEsIDAuMjgyODQ1LCAwLjYxNjk4LCAxLjE3MjYxLCAxLjcyODczLCAzLjAyNDA5LCAzLjc2NDAxIiwgXAotICAgICAgICAgICIwLjI1NDg4MiwgMC4yOTIxMzksIDAuNjI2MzU4LCAxLjE4MjcsIDEuNzM4MTksIDMuMDMzNDgsIDMuNzczMyIsIFwKLSAgICAgICAgICAiMC4yNjM4NTgsIDAuMzAxMTA2LCAwLjYzNTQyNCwgMS4xOTEzLCAxLjc0NzM0LCAzLjA0MjUyLCAzLjc4MjQ1IiwgXAotICAgICAgICAgICIwLjI3Mjc4NCwgMC4zMTAxMjYsIDAuNjQ0NDQ0LCAxLjIwMDIxLCAxLjc1NjM0LCAzLjA1MTM2LCAzLjc5MTQxIiwgXAotICAgICAgICAgICIwLjI4NzAwNiwgMC4zMjQzMDEsIDAuNjU4ODk0LCAxLjIxNTE4LCAxLjc3MDk5LCAzLjA2NTg5LCAzLjgwNTg5IiwgXAotICAgICAgICAgICIwLjI5OTQ2LCAwLjMzNjcxMSwgMC42NzEyMjksIDEuMjI3NDEsIDEuNzgyNiwgMy4wNzg0MiwgMy44MTg1NSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC40MjY4MDYsIDAuNDk5NDU4LCAxLjE1MjAxLCAyLjIzODQ1LCAzLjMyNTA4LCA1Ljg2MDQsIDcuMzA5NzEiLCBcCi0gICAgICAgICAgIjAuNDI2ODY2LCAwLjQ5OTMzMiwgMS4xNTIwMSwgMi4yMzgyNCwgMy4zMjUxNSwgNS44NjE4MSwgNy4zMDk3NiIsIFwKLSAgICAgICAgICAiMC40MjY4OTcsIDAuNDk5NDQ4LCAxLjE1MTg4LCAyLjIzODE5LCAzLjMyNDk0LCA1Ljg2MDU3LCA3LjMxMDE1IiwgXAotICAgICAgICAgICIwLjQyNjg3LCAwLjQ5OTQ0MSwgMS4xNTE4OSwgMi4yMzgyMSwgMy4zMjUwMywgNS44NjEzMSwgNy4zMTA4NSIsIFwKLSAgICAgICAgICAiMC40MjcxNzUsIDAuNDk5NTIsIDEuMTUxODgsIDIuMjM4MzksIDMuMzI0ODIsIDUuODYxMywgNy4zMDk4NCIsIFwKLSAgICAgICAgICAiMC40MjkwMTIsIDAuNTAwNjY4LCAxLjE1MTkyLCAyLjIzODIsIDMuMzI0OTUsIDUuODYwODEsIDcuMzA4NzIiLCBcCi0gICAgICAgICAgIjAuNDMxNjA1LCAwLjUwMjg5LCAxLjE1MTg5LCAyLjIzODQ5LCAzLjMyNTE2LCA1Ljg2MTk0LCA3LjMwOTIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE2ODE3NCwgMC4xOTQ5ODEsIDAuNDM3MDE2LCAwLjgzOTk1MywgMS4yNDM0MSwgMi4xODQ0LCAyLjcyMDM0IiwgXAotICAgICAgICAgICIwLjE3Nzk3MywgMC4yMDQ4ODMsIDAuNDQ2ODcyLCAwLjg0OTQ4NywgMS4yNTI2OSwgMi4xOTMwMywgMi43Mjg3MyIsIFwKLSAgICAgICAgICAiMC4xODg5NjQsIDAuMjE1OTksIDAuNDU3ODM0LCAwLjg2MDc3OCwgMS4yNjMzMywgMi4yMDM1NywgMi43NDAzMSIsIFwKLSAgICAgICAgICAiMC4xOTkxMjEsIDAuMjI2MDMzLCAwLjQ2OCwgMC44NzA3NTksIDEuMjczMzksIDIuMjEzODYsIDIuNzUwNDciLCBcCi0gICAgICAgICAgIjAuMjA5MjMsIDAuMjM2MTMxLCAwLjQ3ODMwMywgMC44ODE0MjgsIDEuMjg0MzIsIDIuMjI1NTIsIDIuNzYxMjMiLCBcCi0gICAgICAgICAgIjAuMjI1MDIyLCAwLjI1MTg0NSwgMC40OTM5MTUsIDAuODk3MjI4LCAxLjI5OTcsIDIuMjM5NzksIDIuNzc3NDMiLCBcCi0gICAgICAgICAgIjAuMjM4NjE0LCAwLjI2NTQ4OSwgMC41MDc2MiwgMC45MTExMTIsIDEuMzEzODksIDIuMjUzNDksIDIuNzkwMjciKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzA3NjU5LCAwLjM2MjIzMSwgMC44NTMzODcsIDEuNjcwMzIsIDIuNDg4NDMsIDQuMzk2MDIsIDUuNDg0ODUiLCBcCi0gICAgICAgICAgIjAuMzA3NTQsIDAuMzYyMTM5LCAwLjg1MzA2NSwgMS42NzEsIDIuNDg3NzksIDQuMzk0OTMsIDUuNDgzODQiLCBcCi0gICAgICAgICAgIjAuMzA3NTQ0LCAwLjM2MjIxOSwgMC44NTI5NzgsIDEuNjcxMDMsIDIuNDg3NjcsIDQuMzk1NTgsIDUuNDg2NzUiLCBcCi0gICAgICAgICAgIjAuMzA3OTI4LCAwLjM2MjI3OCwgMC44NTM3NjcsIDEuNjcwNzksIDIuNDg4MiwgNC4zOTU2NCwgNS40ODcwOSIsIFwKLSAgICAgICAgICAiMC4zMDg1NDQsIDAuMzYyNzM4LCAwLjg1MzIyNSwgMS42NzA4NSwgMi40ODgyNCwgNC4zOTYzOCwgNS40ODQ5MSIsIFwKLSAgICAgICAgICAiMC4zMTE5MzIsIDAuMzY1MjI3LCAwLjg1MzQ1NSwgMS42NzA2LCAyLjQ4NzY3LCA0LjM5NzE4LCA1LjQ4NTE2IiwgXAotICAgICAgICAgICIwLjMxNTk1NiwgMC4zNjg3MDgsIDAuODUzNDk4LCAxLjY3MDY3LCAyLjQ4ODI4LCA0LjM5NTQsIDUuNDg2NjIiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjM0OTUxLCAwLjI3MjA3MywgMC42MDYyMjgsIDEuMTYyMTIsIDEuNzE3NDYsIDMuMDEzNTgsIDMuNzUzMDUiLCBcCi0gICAgICAgICAgIjAuMjQzNjIzLCAwLjI4MDcwMywgMC42MTUwNjQsIDEuMTcwODcsIDEuNzI2NDgsIDMuMDIxODMsIDMuNzYxODMiLCBcCi0gICAgICAgICAgIjAuMjU0MTc0LCAwLjI5MTM5NywgMC42MjU0NCwgMS4xODE4MSwgMS43MzcxOCwgMy4wMzMxOCwgMy43NzI3MiIsIFwKLSAgICAgICAgICAiMC4yNjQ2NTIsIDAuMzAxOTgsIDAuNjM2MTMzLCAxLjE5MjE2LCAxLjc0ODAxLCAzLjA0Mzk5LCAzLjc4MzMxIiwgXAotICAgICAgICAgICIwLjI3NTM1OSwgMC4zMTE1NjUsIDAuNjQ2ODE3LCAxLjIwMzMxLCAxLjc1ODkxLCAzLjA1NDA3LCAzLjc5NDA3IiwgXAotICAgICAgICAgICIwLjI5MjMyOSwgMC4zMjkzNTgsIDAuNjYzODM1LCAxLjIxOTg2LCAxLjc3NTk4LCAzLjA3MTkzLCAzLjgxMTI4IiwgXAotICAgICAgICAgICIwLjMwNzAyMywgMC4zNDQxNjQsIDAuNjc4NzExLCAxLjIzNDk0LCAxLjc5MDI5LCAzLjA4NjEsIDMuODI2MTQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuNDI2ODg2LCAwLjQ5OTMyOCwgMS4xNTE5NCwgMi4yMzg2MSwgMy4zMjUxMiwgNS44NjEyNSwgNy4zMTAzMiIsIFwKLSAgICAgICAgICAiMC40MjY4NTksIDAuNDk5NDA0LCAxLjE1MTgyLCAyLjIzODU3LCAzLjMyNTEyLCA1Ljg2MTI0LCA3LjMxMDQ2IiwgXAotICAgICAgICAgICIwLjQyNjg4NiwgMC40OTkzMjIsIDEuMTUxODUsIDIuMjM4MSwgMy4zMjUwNCwgNS44NjE0NywgNy4zMTAzMiIsIFwKLSAgICAgICAgICAiMC40MjY4NzIsIDAuNDk5NDQyLCAxLjE1MTksIDIuMjM4MjYsIDMuMzI0OTEsIDUuODYxMzcsIDcuMzA5NzUiLCBcCi0gICAgICAgICAgIjAuNDI3MTU1LCAwLjQ5OTQ3OCwgMS4xNTE5MiwgMi4yMzgyLCAzLjMyNDU1LCA1Ljg2MTY3LCA3LjMwOTk1IiwgXAotICAgICAgICAgICIwLjQyOTQ4MiwgMC41MDA4NjMsIDEuMTUxNzUsIDIuMjM4MzksIDMuMzI0OTksIDUuODYwODIsIDcuMzEwMyIsIFwKLSAgICAgICAgICAiMC40MzMxNDQsIDAuNTAzNTY0LCAxLjE1MTg1LCAyLjIzODQ4LCAzLjMyNDk2LCA1Ljg2MjMyLCA3LjMwOTg5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEyIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNjQ2MDYsIDAuMTkxNCwgMC40MzM0MDUsIDAuODM1ODU1LCAxLjIzOTMxLCAyLjE3OTY5LCAyLjcxNjE0IiwgXAotICAgICAgICAgICIwLjE3NDQ5MiwgMC4yMDEzNzMsIDAuNDQzMywgMC44NDU4MzUsIDEuMjQ5MDgsIDIuMTg5NDIsIDIuNzI1OTQiLCBcCi0gICAgICAgICAgIjAuMTg1NDg3LCAwLjIxMjM5MSwgMC40NTQyMjksIDAuODU3MjkyLCAxLjI2MDYyLCAyLjIwMTY5LCAyLjczNzI1IiwgXAotICAgICAgICAgICIwLjE5NTYwNSwgMC4yMjI1NywgMC40NjQ0NDEsIDAuODY3MjUyLCAxLjI3MDE1LCAyLjIwOTQ5LCAyLjc0NzA0IiwgXAotICAgICAgICAgICIwLjIwNTU3MSwgMC4yMzI1MjUsIDAuNDc0NjA1LCAwLjg3Nzg5NSwgMS4yODA5LCAyLjIyMTAyLCAyLjc1NjgiLCBcCi0gICAgICAgICAgIjAuMjIxMzI3LCAwLjI0ODE3NCwgMC40OTAyMjcsIDAuODkzMDc2LCAxLjI5NjMyLCAyLjIzNTk3LCAyLjc3Mzc1IiwgXAotICAgICAgICAgICIwLjIzNDkxLCAwLjI2MTc1MywgMC41MDM4NjcsIDAuOTA3MTY0LCAxLjMwOTcsIDIuMjUxLCAyLjc4NjUiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzAzNDU3LCAwLjM1ODAyNCwgMC44NDg0OTIsIDEuNjY2MjYsIDIuNDgzNDQsIDQuMzkwMTUsIDUuNDgiLCBcCi0gICAgICAgICAgIjAuMzAzNDEyLCAwLjM1NzkxOCwgMC44NDg4NTEsIDEuNjY2MDUsIDIuNDgzMTUsIDQuMzkwMjEsIDUuNDgwMSIsIFwKLSAgICAgICAgICAiMC4zMDM1NSwgMC4zNTgwMzcsIDAuODQ4Njg3LCAxLjY2NTc5LCAyLjQ4MzcxLCA0LjM5MTkyLCA1LjQ4MDAxIiwgXAotICAgICAgICAgICIwLjMwMzU3MSwgMC4zNTc5OTYsIDAuODQ5MjM2LCAxLjY2NjE0LCAyLjQ4MzkzLCA0LjM5MjA2LCA1LjQ4MTg5IiwgXAotICAgICAgICAgICIwLjMwNDUzNCwgMC4zNTg0NzksIDAuODQ4ODQ3LCAxLjY2NjE1LCAyLjQ4MzY5LCA0LjM5MDIyLCA1LjQ3OTUxIiwgXAotICAgICAgICAgICIwLjMwNzkxMywgMC4zNjExLCAwLjg0OTE3MSwgMS42NjYyNywgMi40ODM0NywgNC4zOTI2NiwgNS40ODA2IiwgXAotICAgICAgICAgICIwLjMxMjE0LCAwLjM2NDczOSwgMC44NDkxMzMsIDEuNjY2MjYsIDIuNDgzMDIsIDQuMzkxMDcsIDUuNDgxOTciKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjI5OTc0LCAwLjI2NzEyNSwgMC42MDEyOTUsIDEuMTU2OTIsIDEuNzEyNjUsIDMuMDA4NzYsIDMuNzQ4MjMiLCBcCi0gICAgICAgICAgIjAuMjM4MzM5LCAwLjI3NTY2LCAwLjYwOTY2MSwgMS4xNjU3NywgMS43MjEyLCAzLjAxNjY2LCAzLjc1NjY2IiwgXAotICAgICAgICAgICIwLjI0OTE0OSwgMC4yODY0NTQsIDAuNjIwNzA4LCAxLjE3NjgxLCAxLjczMTY3LCAzLjAyODI1LCAzLjc2NzU4IiwgXAotICAgICAgICAgICIwLjI2MDAwNiwgMC4yOTczMDMsIDAuNjMxNTY1LCAxLjE4NzYxLCAxLjc0MzA4LCAzLjAzODU5LCAzLjc3ODQ5IiwgXAotICAgICAgICAgICIwLjI3MDk5NCwgMC4zMDc4MDMsIDAuNjQyNjE1LCAxLjE5ODYsIDEuNzU0NjksIDMuMDQ5NjYsIDMuNzg5NTUiLCBcCi0gICAgICAgICAgIjAuMjg4NjYyLCAwLjMyNTgwMSwgMC42NTk4MDUsIDEuMjE1NDcsIDEuNzcxNzcsIDMuMDY3ODYsIDMuODA3MTUiLCBcCi0gICAgICAgICAgIjAuMzA0MDY3LCAwLjM0MTE1NCwgMC42NzUyNjIsIDEuMjMxMjgsIDEuNzg2NTYsIDMuMDgyMzYsIDMuODIyNCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC40MjY4ODEsIDAuNDk5NDUsIDEuMTUxODIsIDIuMjM4MTksIDMuMzI1MDEsIDUuODYxOTgsIDcuMzA4OTIiLCBcCi0gICAgICAgICAgIjAuNDI2ODY1LCAwLjQ5OTM3OCwgMS4xNTE5MywgMi4yMzg0OCwgMy4zMjUxNSwgNS44NjE0MSwgNy4zMTA0NCIsIFwKLSAgICAgICAgICAiMC40MjY4NzEsIDAuNDk5NDQ3LCAxLjE1MTg2LCAyLjIzODU0LCAzLjMyNDk2LCA1Ljg2MTE3LCA3LjMwOTAxIiwgXAotICAgICAgICAgICIwLjQyNjgzOSwgMC40OTk0NDEsIDEuMTUxOTEsIDIuMjM4MjUsIDMuMzI1MDIsIDUuODYyMzMsIDcuMzEwMDMiLCBcCi0gICAgICAgICAgIjAuNDI3MjU1LCAwLjQ5OTQwMywgMS4xNTE5NiwgMi4yMzg0NSwgMy4zMjU3MiwgNS44NjI2OSwgNy4zMDk2MSIsIFwKLSAgICAgICAgICAiMC40MzA4OTYsIDAuNTAxNjE4LCAxLjE1MTk2LCAyLjIzODIzLCAzLjMyNTAzLCA1Ljg2MTY1LCA3LjMwOTcyIiwgXAotICAgICAgICAgICIwLjQzNTk1NSwgMC41MDU1NCwgMS4xNTE5MywgMi4yMzg0OSwgMy4zMjQ5NywgNS44NjEzNCwgNy4zMSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTU3NjU4LCAwLjE4NDYxNiwgMC40MjY3ODEsIDAuODI5ODE2LCAxLjIzMjU5LCAyLjE3MjY3LCAyLjcwODYzIiwgXAotICAgICAgICAgICIwLjE2NjgyNywgMC4xOTM3NDQsIDAuNDM1NzEyLCAwLjgzOTAwNSwgMS4yNDIyMiwgMi4xODIzNiwgMi43MTkxMSIsIFwKLSAgICAgICAgICAiMC4xNzc4NzksIDAuMjA0ODE0LCAwLjQ0Njg1NCwgMC44NTAxOTgsIDEuMjUzNTcsIDIuMTkyMSwgMi43Mjk1NyIsIFwKLSAgICAgICAgICAiMC4xODkyNTUsIDAuMjE2MjM4LCAwLjQ1ODI5MywgMC44NjExNzUsIDEuMjY0MDIsIDIuMjA0OTcsIDIuNzQxNjIiLCBcCi0gICAgICAgICAgIjAuMjAwNzE0LCAwLjIyNzcwMSwgMC40Njk3NzYsIDAuODcyNjExLCAxLjI3NTU3LCAyLjIxNjU3LCAyLjc1MTcyIiwgXAotICAgICAgICAgICIwLjIxODk5OSwgMC4yNDU5NDUsIDAuNDg3OTczLCAwLjg5MTE0NSwgMS4yOTM2OSwgMi4yMzQ3NiwgMi43NzEyIiwgXAotICAgICAgICAgICIwLjIzNTI0LCAwLjI2MTk2NCwgMC41MDM4MjUsIDAuOTA2ODYyLCAxLjMwOTU3LCAyLjI1MDMyLCAyLjc4NjM3Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMxMTIzLCAwLjM2NTgxLCAwLjg1NjY1OSwgMS42NzQ2NSwgMi40OTUxLCA0LjM5OTEsIDUuNDg4NDciLCBcCi0gICAgICAgICAgIjAuMzExMTgzLCAwLjM2NTc5MiwgMC44NTY0ODcsIDEuNjc0NTEsIDIuNDkyMjgsIDQuMzk5NjMsIDUuNDg4OTQiLCBcCi0gICAgICAgICAgIjAuMzExMTAxLCAwLjM2NTY1NiwgMC44NTY1MjUsIDEuNjc0NDUsIDIuNDkyMzYsIDQuNDAwMzUsIDUuNDg5MDUiLCBcCi0gICAgICAgICAgIjAuMzExNDM1LCAwLjM2NTYwOCwgMC44NTY3NTUsIDEuNjc1NDMsIDIuNDkzMTcsIDQuNDAwMTMsIDUuNDg4OSIsIFwKLSAgICAgICAgICAiMC4zMTM5NzIsIDAuMzY3MTQxLCAwLjg1NjYzMiwgMS42NzUzMSwgMi40OTI2MiwgNC4zOTk3NywgNS40ODgzNCIsIFwKLSAgICAgICAgICAiMC4zMjA1NTMsIDAuMzcyNjUzLCAwLjg1NjU5MiwgMS42NzQ1OSwgMi40OTQwMywgNC40MDAzOSwgNS40ODg3NyIsIFwKLSAgICAgICAgICAiMC4zMjg0NjcsIDAuMzc5MzAzLCAwLjg1NjkyNSwgMS42NzQzNiwgMi40OTM3NiwgNC4zOTkyMiwgNS40ODk1MyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNDQ5NzIsIDAuMTcwMzg5LCAwLjM5OTUzLCAwLjc4MTMzNiwgMS4xNjI3NywgMi4wNTI2OSwgMi41NjEzMiIsIFwKLSAgICAgICAgICAiMC4xNTQxNTMsIDAuMTc5NjI0LCAwLjQwODgyMiwgMC43OTA1NjcsIDEuMTcyMTcsIDIuMDYyMSwgMi41NzA5NiIsIFwKLSAgICAgICAgICAiMC4xNjUwNjUsIDAuMTkwNTkyLCAwLjQxOTg5OCwgMC44MDE2MjUsIDEuMTgzMTcsIDIuMDczMjMsIDIuNTgxNzkiLCBcCi0gICAgICAgICAgIjAuMTc1OTMyLCAwLjIwMTQ5NywgMC40MzA5NSwgMC44MTI3NDIsIDEuMTk0MjIsIDIuMDg0MzYsIDIuNTkyODMiLCBcCi0gICAgICAgICAgIjAuMTg2ODcsIDAuMjEyMzUzLCAwLjQ0MjA3OCwgMC44MjM4OTgsIDEuMjA1MzcsIDIuMDk1NDMsIDIuNjA0MDkiLCBcCi0gICAgICAgICAgIjAuMjA0MzIsIDAuMjI5NjE4LCAwLjQ1ODg1NSwgMC44NDEyNDIsIDEuMjIyNzcsIDIuMTEyODcsIDIuNjIxNDgiLCBcCi0gICAgICAgICAgIjAuMjE5NzgsIDAuMjQ0OTA4LCAwLjQ3NDY0MSwgMC44NTY3MjQsIDEuMjM4MjUsIDIuMTI4MzUsIDIuNjM2ODQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjg0MDMyLCAwLjMzMzk5OCwgMC43ODQzNDcsIDEuNTM1OTIsIDIuMjkzNzEsIDQuMDQ2NDYsIDUuMDQ2NTgiLCBcCi0gICAgICAgICAgIjAuMjg0MDQzLCAwLjMzNDAzOCwgMC43ODQzNzMsIDEuNTM1OTIsIDIuMjkyNjcsIDQuMDQ0NzYsIDUuMDQ0MTciLCBcCi0gICAgICAgICAgIjAuMjg0MDA5LCAwLjMzNDAyNywgMC43ODQzNjQsIDEuNTM1ODksIDIuMjg3NDYsIDQuMDQzOTYsIDUuMDQ0MjkiLCBcCi0gICAgICAgICAgIjAuMjg0NjUsIDAuMzM0MjQxLCAwLjc4NDM2NiwgMS41MzU5MywgMi4yODczNCwgNC4wNDA5MywgNS4wNDY0OCIsIFwKLSAgICAgICAgICAiMC4yODY2MzMsIDAuMzM1NTk0LCAwLjc4NDMzOSwgMS41MzU5NSwgMi4yODc0MiwgNC4wNDEyNSwgNS4wNDQyOCIsIFwKLSAgICAgICAgICAiMC4yOTE3NDIsIDAuMzM5NTM2LCAwLjc4NDQwNCwgMS41MzU4OSwgMi4yODc0LCA0LjA0NDk1LCA1LjA0MTc0IiwgXAotICAgICAgICAgICIwLjI5Nzk3OCwgMC4zNDQ3MzEsIDAuNzg1MDksIDEuNTM1NTUsIDIuMjg3NDIsIDQuMDQ0MzgsIDUuMDQ1OCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTU0NjE3LCAwLjE4MTU1MiwgMC40MjM2OTIsIDAuODI2Mjc3LCAxLjIyOTQxLCAyLjE2OTU5LCAyLjcwNjMxIiwgXAotICAgICAgICAgICIwLjE2MzgyNiwgMC4xOTA3MzIsIDAuNDMyODkzLCAwLjgzNTUxNiwgMS4yMzg2LCAyLjE3NzY1LCAyLjcxNDY4IiwgXAotICAgICAgICAgICIwLjE3NDgzNiwgMC4yMDE3NzQsIDAuNDQzODI3LCAwLjg0NzEyNSwgMS4yNTA0OSwgMi4xOTA4MSwgMi43MjY0MyIsIFwKLSAgICAgICAgICAiMC4xODYxNzMsIDAuMjEzMTU1LCAwLjQ1NTIxNywgMC44NTgwOSwgMS4yNjA5MywgMi4yMDE4MywgMi43Mzg0OSIsIFwKLSAgICAgICAgICAiMC4xOTc1NzcsIDAuMjI0NTc3LCAwLjQ2NjY1NSwgMC44Njk0NzQsIDEuMjcyNDYsIDIuMjEzNDUsIDIuNzQ4NjYiLCBcCi0gICAgICAgICAgIjAuMjE1ODI0LCAwLjI0Mjc2OCwgMC40ODQ3NiwgMC44ODgwMjYsIDEuMjkwNTcsIDIuMjMxNTUsIDIuNzY4MDMiLCBcCi0gICAgICAgICAgIjAuMjMxOTIxLCAwLjI1ODgxLCAwLjUwMDY2OSwgMC45MDM3MzcsIDEuMzA2NDQsIDIuMjQ3MTksIDIuNzgzMjEiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzA3NDg2LCAwLjM2MTk0MywgMC44NTIyMiwgMS42NzAyMSwgMi40ODgxOSwgNC4zOTUzMywgNS40ODQ5NSIsIFwKLSAgICAgICAgICAiMC4zMDc0NSwgMC4zNjE4MzksIDAuODUyODAzLCAxLjY3MDY2LCAyLjQ4ODgsIDQuMzk0NjUsIDUuNDgzOTUiLCBcCi0gICAgICAgICAgIjAuMzA3MTEsIDAuMzYxNzY0LCAwLjg1MjU4NiwgMS42NzAzNSwgMi40ODg1MywgNC4zOTU3NSwgNS40ODUwNCIsIFwKLSAgICAgICAgICAiMC4zMDc2MTgsIDAuMzYxNzcsIDAuODUyNzEyLCAxLjY3MDc3LCAyLjQ4ODYxLCA0LjM5NTk0LCA1LjQ4NDMzIiwgXAotICAgICAgICAgICIwLjMxMDM5MiwgMC4zNjMzMTQsIDAuODUyNTc2LCAxLjY3MDI1LCAyLjQ4ODM2LCA0LjM5NTU4LCA1LjQ4MzkiLCBcCi0gICAgICAgICAgIjAuMzE3Mjk4LCAwLjM2OTEyNiwgMC44NTI0MTQsIDEuNjcwMzIsIDIuNDg5ODksIDQuMzk2MzUsIDUuNDg0NDIiLCBcCi0gICAgICAgICAgIjAuMzI1MjgxLCAwLjM3NTk3MiwgMC44NTI4ODUsIDEuNjcwMjIsIDIuNDg5NjksIDQuMzk1MzMsIDUuNDg0OTMiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTQyNjMxLCAwLjE2ODA2MSwgMC4zOTcyMDIsIDAuNzc4OTExLCAxLjE2MDM0LCAyLjA1MDM4LCAyLjU1OTA0IiwgXAotICAgICAgICAgICIwLjE1MTg5OCwgMC4xNzc0NDcsIDAuNDA2NjEyLCAwLjc4ODM2MiwgMS4xNjk5NCwgMi4wNjAxNSwgMi41NjgzNyIsIFwKLSAgICAgICAgICAiMC4xNjM0OTgsIDAuMTg4OTU3LCAwLjQxODIyOCwgMC43OTk5NjMsIDEuMTgxNTIsIDIuMDcxNzUsIDIuNTgwMTMiLCBcCi0gICAgICAgICAgIjAuMTc1MTE3LCAwLjIwMDYxMiwgMC40Mjk4NzksIDAuODExNjgyLCAxLjE5MzEsIDIuMDgzMTEsIDIuNTkxNzQiLCBcCi0gICAgICAgICAgIjAuMTg2OCwgMC4yMTIzMTUsIDAuNDQxNTgzLCAwLjgyMzQwOCwgMS4yMDQ4NCwgMi4wOTQ5MSwgMi42MDM4NCIsIFwKLSAgICAgICAgICAiMC4yMDU1MTksIDAuMjMwOTYzLCAwLjQ2MDIzNywgMC44NDIwMDEsIDEuMjIzNjksIDIuMTE0MTcsIDIuNjIyMTUiLCBcCi0gICAgICAgICAgIjAuMjIyNTg5LCAwLjI0NzYxNiwgMC40NzY2MTgsIDAuODU4Mzc1LCAxLjIzOTk4LCAyLjEzMDMyLCAyLjYzODQxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI4NDA2LCAwLjMzNDAwNiwgMC43ODQzOTEsIDEuNTM1OTEsIDIuMjkwOTUsIDQuMDQ0ODMsIDUuMDQ0MDIiLCBcCi0gICAgICAgICAgIjAuMjg0MDMzLCAwLjMzNDAyLCAwLjc4NDM2NCwgMS41MzU5MywgMi4yODczNCwgNC4wNDE1NSwgNS4wNDY2NSIsIFwKLSAgICAgICAgICAiMC4yODQwMjcsIDAuMzM0MDM5LCAwLjc4NDQ1MiwgMS41MzU4LCAyLjI5MzgzLCA0LjA0NjM4LCA1LjA0NDM5IiwgXAotICAgICAgICAgICIwLjI4NTA1NCwgMC4zMzQzNjEsIDAuNzg0NDcsIDEuNTM1OTksIDIuMjg3NDEsIDQuMDQ1MjMsIDUuMDQyMjMiLCBcCi0gICAgICAgICAgIjAuMjg3OTcsIDAuMzM2NDAyLCAwLjc4NDM4NSwgMS41MzU5NiwgMi4yODc0MSwgNC4wNDA0MiwgNS4wNDQ2MiIsIFwKLSAgICAgICAgICAiMC4yOTUzNjksIDAuMzQyNDMyLCAwLjc4NDQ1LCAxLjUzNTkxLCAyLjI5MTcxLCA0LjA0MTM3LCA1LjA0NjUyIiwgXAotICAgICAgICAgICIwLjMwMzE2NCwgMC4zNDk4MTIsIDAuNzg1MDksIDEuNTM1NzcsIDIuMjg3MzUsIDQuMDQxNzgsIDUuMDQ0MTgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyNjc4LCAwLjAwMjY3OCwgMC4wMDI2NzcsIDAuMDAyNjc4LCAwLjAwMjY3NiwgMC4wMDI2NzUsIDAuMDAyNjczIiwgXAotICAgICAgICAgICIwLjAwMjY3MiwgMC4wMDI2NzIsIDAuMDAyNjcyLCAwLjAwMjY3MiwgMC4wMDI2NzMsIDAuMDAyNjY5LCAwLjAwMjY2OCIsIFwKLSAgICAgICAgICAiMC4wMDI2NjksIDAuMDAyNjcsIDAuMDAyNjcsIDAuMDAyNjcsIDAuMDAyNjcxLCAwLjAwMjY2OSwgMC4wMDI2NjgiLCBcCi0gICAgICAgICAgIjAuMDAyNjY3LCAwLjAwMjY2OCwgMC4wMDI2NywgMC4wMDI2NywgMC4wMDI2NywgMC4wMDI2NjgsIDAuMDAyNjY3IiwgXAotICAgICAgICAgICIwLjAwMjY2NywgMC4wMDI2NjcsIDAuMDAyNjY5LCAwLjAwMjY2OSwgMC4wMDI2NjksIDAuMDAyNjY3LCAwLjAwMjY2NiIsIFwKLSAgICAgICAgICAiMC4wMDI2NjUsIDAuMDAyNjY2LCAwLjAwMjY2OCwgMC4wMDI2NjksIDAuMDAyNjY5LCAwLjAwMjY2NywgMC4wMDI2NjciLCBcCi0gICAgICAgICAgIjAuMDAyNjY0LCAwLjAwMjY2NSwgMC4wMDI2NjgsIDAuMDAyNjY5LCAwLjAwMjY2OSwgMC4wMDI2NjgsIDAuMDAyNjY2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwODU5LCAwLjAwMDg1OSwgMC4wMDA4NTgsIDAuMDAwODU4LCAwLjAwMDg1NywgMC4wMDA4NTUsIDAuMDAwODU0IiwgXAotICAgICAgICAgICIwLjAwMDg0OCwgMC4wMDA4NDksIDAuMDAwODUsIDAuMDAwODUsIDAuMDAwODUxLCAwLjAwMDg0OCwgMC4wMDA4NDciLCBcCi0gICAgICAgICAgIjAuMDAwODQyLCAwLjAwMDg0MywgMC4wMDA4NDcsIDAuMDAwODQ4LCAwLjAwMDg0OCwgMC4wMDA4NDcsIDAuMDAwODQ2IiwgXAotICAgICAgICAgICIwLjAwMDgzOCwgMC4wMDA4MzksIDAuMDAwODQ1LCAwLjAwMDg0NywgMC4wMDA4NDcsIDAuMDAwODQ2LCAwLjAwMDg0NSIsIFwKLSAgICAgICAgICAiMC4wMDA4MzQsIDAuMDAwODM2LCAwLjAwMDg0MywgMC4wMDA4NDUsIDAuMDAwODQ2LCAwLjAwMDg0NSwgMC4wMDA4NDQiLCBcCi0gICAgICAgICAgIjAuMDAwODI5LCAwLjAwMDgzMSwgMC4wMDA4NCwgMC4wMDA4NDQsIDAuMDAwODQ1LCAwLjAwMDg0NSwgMC4wMDA4NDQiLCBcCi0gICAgICAgICAgIjAuMDAwODI3LCAwLjAwMDgyOSwgMC4wMDA4MzgsIDAuMDAwODQzLCAwLjAwMDg0NCwgMC4wMDA4NDQsIDAuMDAwODQzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjQzMywgMC4wMDI0MzMsIDAuMDAyNDMzLCAwLjAwMjQzMywgMC4wMDI0MzMsIDAuMDAyNDMyLCAwLjAwMjQzMSIsIFwKLSAgICAgICAgICAiMC4wMDI0MzEsIDAuMDAyNDMxLCAwLjAwMjQzMywgMC4wMDI0MzIsIDAuMDAyNDMzLCAwLjAwMjQzMiwgMC4wMDI0MzIiLCBcCi0gICAgICAgICAgIjAuMDAyNDI3LCAwLjAwMjQyOCwgMC4wMDI0MzIsIDAuMDAyNDMyLCAwLjAwMjQzMiwgMC4wMDI0MzEsIDAuMDAyNDMxIiwgXAotICAgICAgICAgICIwLjAwMjQyNCwgMC4wMDI0MjYsIDAuMDAyNDMsIDAuMDAyNDMxLCAwLjAwMjQzMSwgMC4wMDI0MzEsIDAuMDAyNDMiLCBcCi0gICAgICAgICAgIjAuMDAyNDIyLCAwLjAwMjQyMywgMC4wMDI0MjgsIDAuMDAyNDMxLCAwLjAwMjQzMSwgMC4wMDI0MzEsIDAuMDAyNDMiLCBcCi0gICAgICAgICAgIjAuMDAyNDE4LCAwLjAwMjQyLCAwLjAwMjQyNywgMC4wMDI0MywgMC4wMDI0MywgMC4wMDI0MywgMC4wMDI0MjkiLCBcCi0gICAgICAgICAgIjAuMDAyNDE2LCAwLjAwMjQxOCwgMC4wMDI0MjYsIDAuMDAyNDI5LCAwLjAwMjQzLCAwLjAwMjQzLCAwLjAwMjQzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwODU4LCAwLjAwMDg1OCwgMC4wMDA4NTgsIDAuMDAwODU4LCAwLjAwMDg1NywgMC4wMDA4NTYsIDAuMDAwODU0IiwgXAotICAgICAgICAgICIwLjAwMDg0OCwgMC4wMDA4NDksIDAuMDAwODUsIDAuMDAwODUsIDAuMDAwODUsIDAuMDAwODQ4LCAwLjAwMDg0NyIsIFwKLSAgICAgICAgICAiMC4wMDA4NDIsIDAuMDAwODQzLCAwLjAwMDg0NywgMC4wMDA4NDgsIDAuMDAwODQ4LCAwLjAwMDg0NywgMC4wMDA4NDYiLCBcCi0gICAgICAgICAgIjAuMDAwODM4LCAwLjAwMDgzOSwgMC4wMDA4NDUsIDAuMDAwODQ3LCAwLjAwMDg0NywgMC4wMDA4NDYsIDAuMDAwODQ1IiwgXAotICAgICAgICAgICIwLjAwMDgzNSwgMC4wMDA4MzQsIDAuMDAwODQzLCAwLjAwMDg0NiwgMC4wMDA4NDYsIDAuMDAwODQ1LCAwLjAwMDg0NSIsIFwKLSAgICAgICAgICAiMC4wMDA4MzEsIDAuMDAwODMyLCAwLjAwMDg0LCAwLjAwMDg0NCwgMC4wMDA4NDUsIDAuMDAwODQ1LCAwLjAwMDg0NCIsIFwKLSAgICAgICAgICAiMC4wMDA4MjksIDAuMDAwODMsIDAuMDAwODM5LCAwLjAwMDg0MywgMC4wMDA4NDQsIDAuMDAwODQ0LCAwLjAwMDg0MyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEyIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDIxNTUsIDAuMDAyMTU1LCAwLjAwMjE1NiwgMC4wMDIxNTYsIDAuMDAyMTU2LCAwLjAwMjE1NSwgMC4wMDIxNTUiLCBcCi0gICAgICAgICAgIjAuMDAyMTU3LCAwLjAwMjE1NywgMC4wMDIxNiwgMC4wMDIxNjEsIDAuMDAyMTYxLCAwLjAwMjE2MSwgMC4wMDIxNiIsIFwKLSAgICAgICAgICAiMC4wMDIxNTIsIDAuMDAyMTU0LCAwLjAwMjE1OSwgMC4wMDIxNjEsIDAuMDAyMTYyLCAwLjAwMjE2MSwgMC4wMDIxNjEiLCBcCi0gICAgICAgICAgIjAuMDAyMTQ3LCAwLjAwMjE1LCAwLjAwMjE1NywgMC4wMDIxNiwgMC4wMDIxNjEsIDAuMDAyMTYxLCAwLjAwMjE2MSIsIFwKLSAgICAgICAgICAiMC4wMDIxNDQsIDAuMDAyMTQ2LCAwLjAwMjE1NSwgMC4wMDIxNTksIDAuMDAyMTYsIDAuMDAyMTYxLCAwLjAwMjE2MSIsIFwKLSAgICAgICAgICAiMC4wMDIxMzksIDAuMDAyMTQxLCAwLjAwMjE1MywgMC4wMDIxNTcsIDAuMDAyMTU5LCAwLjAwMjE2LCAwLjAwMjE2MSIsIFwKLSAgICAgICAgICAiMC4wMDIxMzUsIDAuMDAyMTM4LCAwLjAwMjE1LCAwLjAwMjE1NiwgMC4wMDIxNTgsIDAuMDAyMTYsIDAuMDAyMTYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDA4NTksIDAuMDAwODU5LCAwLjAwMDg1OSwgMC4wMDA4NTgsIDAuMDAwODU3LCAwLjAwMDg1NSwgMC4wMDA4NTQiLCBcCi0gICAgICAgICAgIjAuMDAwODQ4LCAwLjAwMDg0OCwgMC4wMDA4NSwgMC4wMDA4NSwgMC4wMDA4NSwgMC4wMDA4NDksIDAuMDAwODQ4IiwgXAotICAgICAgICAgICIwLjAwMDg0MiwgMC4wMDA4NDMsIDAuMDAwODQ3LCAwLjAwMDg0OCwgMC4wMDA4NDgsIDAuMDAwODQ3LCAwLjAwMDg0NiIsIFwKLSAgICAgICAgICAiMC4wMDA4MzgsIDAuMDAwODQsIDAuMDAwODQ1LCAwLjAwMDg0NywgMC4wMDA4NDcsIDAuMDAwODQ2LCAwLjAwMDg0NSIsIFwKLSAgICAgICAgICAiMC4wMDA4MzcsIDAuMDAwODM3LCAwLjAwMDg0NCwgMC4wMDA4NDYsIDAuMDAwODQ3LCAwLjAwMDg0NiwgMC4wMDA4NDUiLCBcCi0gICAgICAgICAgIjAuMDAwODM4LCAwLjAwMDgzOSwgMC4wMDA4NDMsIDAuMDAwODQ1LCAwLjAwMDg0NiwgMC4wMDA4NDUsIDAuMDAwODQ0IiwgXAotICAgICAgICAgICIwLjAwMDg0MSwgMC4wMDA4NDEsIDAuMDAwODQ0LCAwLjAwMDg0NSwgMC4wMDA4NDYsIDAuMDAwODQ1LCAwLjAwMDg0NCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDE5NTIsIDAuMDAxOTUyLCAwLjAwMTk1MiwgMC4wMDE5NTIsIDAuMDAxOTUxLCAwLjAwMTk0OSwgMC4wMDE5NDkiLCBcCi0gICAgICAgICAgIjAuMDAxOTQ3LCAwLjAwMTk0NywgMC4wMDE5NDksIDAuMDAxOTQ5LCAwLjAwMTk0OCwgMC4wMDE5NDcsIDAuMDAxOTQ2IiwgXAotICAgICAgICAgICIwLjAwMTk0MywgMC4wMDE5NDQsIDAuMDAxOTQ3LCAwLjAwMTk0NywgMC4wMDE5NDcsIDAuMDAxOTQ2LCAwLjAwMTk0NCIsIFwKLSAgICAgICAgICAiMC4wMDE5NDIsIDAuMDAxOTQzLCAwLjAwMTk0NiwgMC4wMDE5NDYsIDAuMDAxOTQ2LCAwLjAwMTk0NSwgMC4wMDE5NDQiLCBcCi0gICAgICAgICAgIjAuMDAxOTQyLCAwLjAwMTk0MiwgMC4wMDE5NDUsIDAuMDAxOTQ2LCAwLjAwMTk0NiwgMC4wMDE5NDUsIDAuMDAxOTQ0IiwgXAotICAgICAgICAgICIwLjAwMTk0NCwgMC4wMDE5NDQsIDAuMDAxOTQ2LCAwLjAwMTk0NiwgMC4wMDE5NDYsIDAuMDAxOTQ1LCAwLjAwMTk0NCIsIFwKLSAgICAgICAgICAiMC4wMDE5NDgsIDAuMDAxOTQ4LCAwLjAwMTk0NywgMC4wMDE5NDcsIDAuMDAxOTQ2LCAwLjAwMTk0NSwgMC4wMDE5NDQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDAxOTgsIDAuMDAwMTk5LCAwLjAwMDIsIDAuMDAwMiwgMC4wMDAyLCAwLjAwMDIsIDAuMDAwMjAxIiwgXAotICAgICAgICAgICIwLjAwMDIwMiwgMC4wMDAyMDMsIDAuMDAwMjA4LCAwLjAwMDIxLCAwLjAwMDIxMSwgMC4wMDAyMTEsIDAuMDAwMjEyIiwgXAotICAgICAgICAgICIwLjAwMDE5NSwgMC4wMDAxOTgsIDAuMDAwMjA3LCAwLjAwMDIxMSwgMC4wMDAyMTIsIDAuMDAwMjEzLCAwLjAwMDIxMyIsIFwKLSAgICAgICAgICAiMC4wMDAxODksIDAuMDAwMTkyLCAwLjAwMDIwNSwgMC4wMDAyMSwgMC4wMDAyMTIsIDAuMDAwMjEzLCAwLjAwMDIxNCIsIFwKLSAgICAgICAgICAiMC4wMDAxODQsIDAuMDAwMTg3LCAwLjAwMDIwMiwgMC4wMDAyMDksIDAuMDAwMjExLCAwLjAwMDIxMywgMC4wMDAyMTMiLCBcCi0gICAgICAgICAgIjAuMDAwMTc3LCAwLjAwMDE4MSwgMC4wMDAxOTksIDAuMDAwMjA3LCAwLjAwMDIxLCAwLjAwMDIxMiwgMC4wMDAyMTMiLCBcCi0gICAgICAgICAgIjAuMDAwMTc0LCAwLjAwMDE3OCwgMC4wMDAxOTYsIDAuMDAwMjA1LCAwLjAwMDIwOSwgMC4wMDAyMTIsIDAuMDAwMjEzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTcxMywgMC4wMDE3MTMsIDAuMDAxNzE0LCAwLjAwMTcxNCwgMC4wMDE3MTUsIDAuMDAxNzEyLCAwLjAwMTcxMiIsIFwKLSAgICAgICAgICAiMC4wMDE3MDksIDAuMDAxNzEsIDAuMDAxNzE0LCAwLjAwMTcxNSwgMC4wMDE3MTUsIDAuMDAxNzE0LCAwLjAwMTcxMyIsIFwKLSAgICAgICAgICAiMC4wMDE3MDQsIDAuMDAxNzA2LCAwLjAwMTcxMiwgMC4wMDE3MTQsIDAuMDAxNzE0LCAwLjAwMTcxNCwgMC4wMDE3MTMiLCBcCi0gICAgICAgICAgIjAuMDAxNywgMC4wMDE3MDIsIDAuMDAxNzEsIDAuMDAxNzEzLCAwLjAwMTcxNCwgMC4wMDE3MTQsIDAuMDAxNzEzIiwgXAotICAgICAgICAgICIwLjAwMTY5OCwgMC4wMDE3LCAwLjAwMTcwOCwgMC4wMDE3MTIsIDAuMDAxNzEzLCAwLjAwMTcxMywgMC4wMDE3MTMiLCBcCi0gICAgICAgICAgIjAuMDAxNjk4LCAwLjAwMTY5OSwgMC4wMDE3MDcsIDAuMDAxNzExLCAwLjAwMTcxMiwgMC4wMDE3MTIsIDAuMDAxNzEyIiwgXAotICAgICAgICAgICIwLjAwMTcsIDAuMDAxNzAxLCAwLjAwMTcwNywgMC4wMDE3MTEsIDAuMDAxNzEyLCAwLjAwMTcxMywgMC4wMDE3MTIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDAxOTgsIDAuMDAwMTk4LCAwLjAwMDIsIDAuMDAwMiwgMC4wMDAyLCAwLjAwMDIsIDAuMDAwMiIsIFwKLSAgICAgICAgICAiMC4wMDAyMDEsIDAuMDAwMjAzLCAwLjAwMDIwOCwgMC4wMDAyMSwgMC4wMDAyMTEsIDAuMDAwMjEyLCAwLjAwMDIxMiIsIFwKLSAgICAgICAgICAiMC4wMDAxOTYsIDAuMDAwMTk4LCAwLjAwMDIwNywgMC4wMDAyMTEsIDAuMDAwMjEzLCAwLjAwMDIxNCwgMC4wMDAyMTQiLCBcCi0gICAgICAgICAgIjAuMDAwMTkxLCAwLjAwMDE5NCwgMC4wMDAyMDYsIDAuMDAwMjEsIDAuMDAwMjEyLCAwLjAwMDIxNCwgMC4wMDAyMTQiLCBcCi0gICAgICAgICAgIjAuMDAwMTg4LCAwLjAwMDE5MSwgMC4wMDAyMDQsIDAuMDAwMjEsIDAuMDAwMjEyLCAwLjAwMDIxNCwgMC4wMDAyMTQiLCBcCi0gICAgICAgICAgIjAuMDAwMTg3LCAwLjAwMDE5LCAwLjAwMDIwMiwgMC4wMDAyMDksIDAuMDAwMjExLCAwLjAwMDIxNCwgMC4wMDAyMTQiLCBcCi0gICAgICAgICAgIjAuMDAwMTkxLCAwLjAwMDE5MSwgMC4wMDAyMDIsIDAuMDAwMjA4LCAwLjAwMDIxMSwgMC4wMDAyMTMsIDAuMDAwMjE0Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogQU9JMzNYMSAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChBT0kzM1gxKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMjA5NDQ1OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwOTE1Mjc2OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDkxMjQ3MzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA5MTUyNzY7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNDA5LCAwLjAwMDQwOSwgMC4wMDA0MDksIDAuMDAwNDA5LCAwLjAwMDQwOSwgMC4wMDA0MDksIDAuMDAwNDA5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNDEsIDAuMDAwNDEsIDAuMDAwNDEsIDAuMDAwNDEsIDAuMDAwNDEsIDAuMDAwNDEsIDAuMDAwNDEiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEExKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA5MjE1MjM7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwOTE4MTQ2OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDkyMTUyMzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA0MDksIDAuMDAwNDA5LCAwLjAwMDQwOSwgMC4wMDA0MDksIDAuMDAwNDA5LCAwLjAwMDQwOSwgMC4wMDA0MDgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA0MSwgMC4wMDA0MSwgMC4wMDA0MSwgMC4wMDA0MSwgMC4wMDA0MSwgMC4wMDA0MSwgMC4wMDA0MSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQTIpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDkwOTk5NDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA5MDM3Nzc7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwOTA5OTk0OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDI3MiwgMC4wMDAyNzEsIDAuMDAwMjcxLCAwLjAwMDI3MSwgMC4wMDAyNzEsIDAuMDAwMjcxLCAwLjAwMDI3MSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDQ2NCwgMC4wMDA0NjUsIDAuMDAwNDY1LCAwLjAwMDQ2NSwgMC4wMDA0NjQsIDAuMDAwNDY0LCAwLjAwMDQ2NCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQjApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDkzOTMyNjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA5MzkzMjY7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwOTM2NzQ4OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDQwOSwgMC4wMDA0MDksIDAuMDAwNDA5LCAwLjAwMDQwOSwgMC4wMDA0MDksIDAuMDAwNDA5LCAwLjAwMDQwOSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDQxLCAwLjAwMDQxLCAwLjAwMDQxLCAwLjAwMDQxLCAwLjAwMDQxLCAwLjAwMDQxLCAwLjAwMDQxIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCMSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwOTM4OTYzOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDkzODk2MzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA5MzY3MzU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNDA5LCAwLjAwMDQwOSwgMC4wMDA0MDksIDAuMDAwNDA5LCAwLjAwMDQwOSwgMC4wMDA0MDksIDAuMDAwNDA5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNDEsIDAuMDAwNDEsIDAuMDAwNDEsIDAuMDAwNDEsIDAuMDAwNDEsIDAuMDAwNDEsIDAuMDAwNDEiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIyKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA5MzAxNDI7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwOTI5NTg2OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDkzMDE0MjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyNjQsIDAuMDAwMjY0LCAwLjAwMDI2NCwgMC4wMDAyNjQsIDAuMDAwMjY0LCAwLjAwMDI2NCwgMC4wMDAyNjQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA0NjQsIDAuMDAwNDY0LCAwLjAwMDQ2NCwgMC4wMDA0NjQsIDAuMDAwNDY0LCAwLjAwMDQ2NCwgMC4wMDA0NjQiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4wOTYyMzg5OwotICAgIGZ1bmN0aW9uIDogIighKCgoQjAgQjEpIEIyKSsoKEEwIEExKSBBMikpKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTAiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExNzQ3NiwgMC4xNjQ1OTksIDAuNDMwODQxLCAwLjY2NTEwNSwgMC45NzczMjQsIDEuNjAxOCwgMS45OTMxMiIsIFwKLSAgICAgICAgICAiMC4xMjczMiwgMC4xNzQ0NzksIDAuNDQwNjM0LCAwLjY3NDg4MSwgMC45ODc2MjUsIDEuNjEzMDIsIDIuMDAyODIiLCBcCi0gICAgICAgICAgIjAuMTM4NDQzLCAwLjE4NTYwOCwgMC40NTE2NzUsIDAuNjg2Mjc2LCAwLjk5ODM4NywgMS42MjMwNSwgMi4wMTQyMiIsIFwKLSAgICAgICAgICAiMC4xNDg3OTEsIDAuMTk1OTA0LCAwLjQ2MjAxLCAwLjY5NjgyMSwgMS4wMDkzMiwgMS42MzQzNiwgMi4wMjM1MiIsIFwKLSAgICAgICAgICAiMC4xNTg5MDEsIDAuMjA2MDgyLCAwLjQ3MjQwMiwgMC43MDY3NDgsIDEuMDE5MjMsIDEuNjQ0MDcsIDIuMDM1NTgiLCBcCi0gICAgICAgICAgIjAuMTc0OTkxLCAwLjIyMjIwOCwgMC40ODgzMzMsIDAuNzIyODgxLCAxLjAzNTE1LCAxLjY2MDc0LCAyLjA1MTEyIiwgXAotICAgICAgICAgICIwLjE4ODcyNywgMC4yMzYwMDksIDAuNTAyNDI5LCAwLjczNjc2NywgMS4wNDk3MiwgMS42NzM3NywgMi4wNjUwOCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMDEzNjMsIDAuMjk2MjEsIDAuODM0MzgyLCAxLjMxMDA0LCAxLjk0NTAzLCAzLjIxNTQ0LCA0LjAwNjg5IiwgXAotICAgICAgICAgICIwLjIwMTIwMywgMC4yOTYxNzksIDAuODM0NDE5LCAxLjMwOTk1LCAxLjk0NDUzLCAzLjIxNDE4LCA0LjAwNzA2IiwgXAotICAgICAgICAgICIwLjIwMTIyLCAwLjI5NjIxLCAwLjgzNDczNiwgMS4zMDk5NiwgMS45NDUwNiwgMy4yMTQ4OCwgNC4wMDcwMyIsIFwKLSAgICAgICAgICAiMC4yMDE5MDYsIDAuMjk2MzE4LCAwLjgzNDE5OSwgMS4zMDk3NywgMS45NDQ2NCwgMy4yMTQyLCA0LjAwNzYiLCBcCi0gICAgICAgICAgIjAuMjAzNzMxLCAwLjI5NzM0NiwgMC44MzQzNzksIDEuMzA5ODUsIDEuOTQ0ODQsIDMuMjEzNDcsIDQuMDA3ODIiLCBcCi0gICAgICAgICAgIjAuMjA4NjY0LCAwLjMwMDYyNCwgMC44MzQzMDYsIDEuMzEwMDEsIDEuOTQ1MDgsIDMuMjE0MSwgNC4wMDczNiIsIFwKLSAgICAgICAgICAiMC4yMTM3NTYsIDAuMzA0OTQ0LCAwLjgzNDcwNSwgMS4zMDk3NCwgMS45NDQ0MywgMy4yMTQxNiwgNC4wMDcxIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE2NzU3LCAwLjIzNDU1NSwgMC42MTIxMDYsIDAuOTQ0NzA4LCAxLjM4ODU1LCAyLjI3MjkyLCAyLjgyNzQyIiwgXAotICAgICAgICAgICIwLjE3NTgzMiwgMC4yNDI4LCAwLjYyMDQ5NiwgMC45NTMyMTksIDEuMzk2NTMsIDIuMjgyNywgMi44MzY5NiIsIFwKLSAgICAgICAgICAiMC4xODUwMjIsIDAuMjUyMDE2LCAwLjYyOTczNSwgMC45NjIzNDksIDEuNDA1ODMsIDIuMjkyNDQsIDIuODQ1NDciLCBcCi0gICAgICAgICAgIjAuMTkzOTY1LCAwLjI2MTAyOSwgMC42Mzg3ODgsIDAuOTcxNjMxLCAxLjQxNDk4LCAyLjMwMTg3LCAyLjg1NDU5IiwgXAotICAgICAgICAgICIwLjIwMjk1MywgMC4yNzAwNTMsIDAuNjQ3ODQzLCAwLjk4MDM4MiwgMS40MjQxMywgMi4zMTE0MSwgMi44NjQ2MyIsIFwKLSAgICAgICAgICAiMC4yMTcxOTcsIDAuMjg0MjM5LCAwLjY2MjMwNCwgMC45OTQ4MTYsIDEuNDM4MDUsIDIuMzI0NCwgMi44Nzg0OSIsIFwKLSAgICAgICAgICAiMC4yMjk2NDksIDAuMjk2Nzk2LCAwLjY3NDg4LCAxLjAwNzYyLCAxLjQ1MDg5LCAyLjMzODcyLCAyLjg5MSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yOTE5MDksIDAuNDIxNTgsIDEuMTU2NTUsIDEuODA1MjcsIDIuNjY5NTUsIDQuMzk3NjksIDUuNDc0NiIsIFwKLSAgICAgICAgICAiMC4yOTE5MjUsIDAuNDIxNTY2LCAxLjE1NjQ1LCAxLjgwNTExLCAyLjY2OTEyLCA0LjM5NzMxLCA1LjQ3NzI4IiwgXAotICAgICAgICAgICIwLjI5MTkyMywgMC40MjE2NDIsIDEuMTU2NDksIDEuODA1MjEsIDIuNjY5NDYsIDQuMzk3MTcsIDUuNDc4MzkiLCBcCi0gICAgICAgICAgIjAuMjkyMjYyLCAwLjQyMTYwNywgMS4xNTY1OSwgMS44MDQ5NiwgMi42Njk0OCwgNC4zOTcyNiwgNS40Nzc0OSIsIFwKLSAgICAgICAgICAiMC4yOTM0NjcsIDAuNDIyMDUzLCAxLjE1NjY0LCAxLjgwNDksIDIuNjY5NDksIDQuMzk3MywgNS40Nzc2OCIsIFwKLSAgICAgICAgICAiMC4yOTY2NTcsIDAuNDIzOTMzLCAxLjE1NjYxLCAxLjgwNTAxLCAyLjY2OTQsIDQuMzk2NTcsIDUuNDc3MjIiLCBcCi0gICAgICAgICAgIjAuMzAwNTI1LCAwLjQyNjYxMywgMS4xNTY3NCwgMS44MDUxOSwgMi42NjkyOCwgNC4zOTY2MiwgNS40NzgyNyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTE1ODk5LCAwLjE2MzM0LCAwLjQzMTQ3OCwgMC42Njc4NSwgMC45ODI0OTMsIDEuNjEyOTUsIDIuMDA2ODgiLCBcCi0gICAgICAgICAgIjAuMTI1Nzc2LCAwLjE3MzI3NiwgMC40NDE0NTUsIDAuNjc3ODI3LCAwLjk5MzM4OCwgMS42MjI2LCAyLjAxNyIsIFwKLSAgICAgICAgICAiMC4xMzY3NzcsIDAuMTg0Mjk0LCAwLjQ1MjM5MSwgMC42ODg4MjEsIDEuMDAzNjEsIDEuNjMzNDUsIDIuMDI4MDYiLCBcCi0gICAgICAgICAgIjAuMTQ3MTYxLCAwLjE5NDY0MywgMC40NjI4NTUsIDAuNjk5MDc0LCAxLjAxNDUzLCAxLjY0NDY1LCAyLjAzODAxIiwgXAotICAgICAgICAgICIwLjE1NzQyNCwgMC4yMDQ5NCwgMC40NzMzNzgsIDAuNzA5NjUyLCAxLjAyNDUxLCAxLjY1NDMyLCAyLjA0ODkxIiwgXAotICAgICAgICAgICIwLjE3MzQ0LCAwLjIyMTAyMiwgMC40ODkyNjgsIDAuNzI2MDE2LCAxLjA0MDc1LCAxLjY3MTQ1LCAyLjA2NDMzIiwgXAotICAgICAgICAgICIwLjE4NzI2LCAwLjIzNDg3MywgMC41MDMyMzEsIDAuNzM5NjIxLCAxLjA1NTA1LCAxLjY4NDcxLCAyLjA3ODMiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTk5OTYxLCAwLjI5NTU2OCwgMC44MzgzNTgsIDEuMzE3OCwgMS45NTc2NSwgMy4yMzY2OSwgNC4wMzY4NyIsIFwKLSAgICAgICAgICAiMC4xOTk3NzQsIDAuMjk1NywgMC44MzgyOCwgMS4zMTc2MiwgMS45NTc1NywgMy4yMzY2MSwgNC4wMzcwMyIsIFwKLSAgICAgICAgICAiMC4xOTk4NTMsIDAuMjk1NzA4LCAwLjgzODQyNCwgMS4zMTc3MywgMS45NTc2NCwgMy4yMzg3LCA0LjAzNjk4IiwgXAotICAgICAgICAgICIwLjIwMDU2OSwgMC4yOTU2OTgsIDAuODM4NDUzLCAxLjMxNzYzLCAxLjk1ODAxLCAzLjIzNzI5LCA0LjAzNjMzIiwgXAotICAgICAgICAgICIwLjIwMjU0MiwgMC4yOTY2MjksIDAuODM4MjQyLCAxLjMxNzU0LCAxLjk1NzgyLCAzLjIzNjk0LCA0LjAzNjgyIiwgXAotICAgICAgICAgICIwLjIwNzMyNiwgMC4zMDAwNTQsIDAuODM3OTMxLCAxLjMxNzkyLCAxLjk1NzQ3LCAzLjIzNzk1LCA0LjAzNjg1IiwgXAotICAgICAgICAgICIwLjIxMjUyMSwgMC4zMDQxNTcsIDAuODM4MTE2LCAxLjMxNzUyLCAxLjk1NzMzLCAzLjIzODQ3LCA0LjAzNjUzIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE2NTcyNCwgMC4yMzI1NzgsIDAuNjEwNDA2LCAwLjk0MjgzNywgMS4zODYyMywgMi4yNzM0OSwgMi44MjY3OSIsIFwKLSAgICAgICAgICAiMC4xNzQyMDYsIDAuMjQxMTg1LCAwLjYxODc0NiwgMC45NTEyMDIsIDEuMzk0NDYsIDIuMjgwNjksIDIuODM0ODEiLCBcCi0gICAgICAgICAgIjAuMTg0ODQxLCAwLjI1MTg5NSwgMC42Mjk0ODEsIDAuOTYyMzE2LCAxLjQwNjEsIDIuMjkyOTgsIDIuODQ2MyIsIFwKLSAgICAgICAgICAiMC4xOTU0MDcsIDAuMjYyNDM0LCAwLjY0MDIyMywgMC45NzI5MTcsIDEuNDE2NTksIDIuMzAzNywgMi44NTY5IiwgXAotICAgICAgICAgICIwLjIwNjExNCwgMC4yNzMxMzUsIDAuNjUxMTY5LCAwLjk4MzU5OCwgMS40MjcyNywgMi4zMTMyOSwgMi44NjcyMiIsIFwKLSAgICAgICAgICAiMC4yMjMwODMsIDAuMjkwMTY0LCAwLjY2ODMwNCwgMS4wMDEwNywgMS40NDQyNCwgMi4zMzExNiwgMi44ODUyOCIsIFwKLSAgICAgICAgICAiMC4yMzc5NDksIDAuMzA1MDY5LCAwLjY4MzMxNCwgMS4wMTYxNiwgMS40NTkyMSwgMi4zNDYzNywgMi44OTk0OCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yOTE5MzMsIDAuNDIxNjUsIDEuMTU2NjEsIDEuODA1MjMsIDIuNjY5MzUsIDQuMzk3NjEsIDUuNDc3OTEiLCBcCi0gICAgICAgICAgIjAuMjkxOTE4LCAwLjQyMTYzOSwgMS4xNTY0NiwgMS44MDUwNCwgMi42Njk0NSwgNC4zOTY3OCwgNS40NzY3OCIsIFwKLSAgICAgICAgICAiMC4yOTE5MTgsIDAuNDIxNTgsIDEuMTU2NTQsIDEuODA1MDIsIDIuNjY5NDksIDQuMzk3NSwgNS40Nzg1MiIsIFwKLSAgICAgICAgICAiMC4yOTIyODMsIDAuNDIxNjU3LCAxLjE1NjQ5LCAxLjgwNDg0LCAyLjY2OTQ5LCA0LjM5Njc3LCA1LjQ3NzY0IiwgXAotICAgICAgICAgICIwLjI5Mzk1MiwgMC40MjE5ODMsIDEuMTU2NTYsIDEuODA1MjUsIDIuNjY5NDUsIDQuMzk3NDcsIDUuNDc3MjgiLCBcCi0gICAgICAgICAgIjAuMjk4NDc3LCAwLjQyNDM1NywgMS4xNTY2LCAxLjgwNTE1LCAyLjY2OTM5LCA0LjM5NjY3LCA1LjQ3ODc3IiwgXAotICAgICAgICAgICIwLjMwMzk1MywgMC40MjgxMTQsIDEuMTU2NCwgMS44MDUxMywgMi42NjkzOSwgNC4zOTY5OCwgNS40NzcwNiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTEyOTEzLCAwLjE2MDM4MiwgMC40Mjg1MTUsIDAuNjY1ODQsIDAuOTgwOTQxLCAxLjYxMTQ4LCAyLjAwNzI1IiwgXAotICAgICAgICAgICIwLjEyMjg1LCAwLjE3MDM5OSwgMC40Mzg5MjUsIDAuNjc1NjE0LCAwLjk5MTM5MiwgMS42MjE5NSwgMi4wMTYzNiIsIFwKLSAgICAgICAgICAiMC4xMzM5NjksIDAuMTgxNTMyLCAwLjQ1LCAwLjY4Njg4MSwgMS4wMDIyNiwgMS42MzMzLCAyLjAyNzE0IiwgXAotICAgICAgICAgICIwLjE0NDIxNSwgMC4xOTE3MzksIDAuNDYwMzE5LCAwLjY5NzMyNiwgMS4wMTI0NSwgMS42NDQwNiwgMi4wMzc5NiIsIFwKLSAgICAgICAgICAiMC4xNTQyNywgMC4yMDE4NjgsIDAuNDcwNjY5LCAwLjcwNzI3OCwgMS4wMjMwNCwgMS42NTQyNCwgMi4wNDkwMSIsIFwKLSAgICAgICAgICAiMC4xNzAyNTYsIDAuMjE3OTE4LCAwLjQ4NjU3LCAwLjcyMzYxLCAxLjAzODk1LCAxLjY3MDE1LCAyLjA2Mzg1IiwgXAotICAgICAgICAgICIwLjE4MzkyOSwgMC4yMzE3MiwgMC41MDA0NDQsIDAuNzM3Mzk3LCAxLjA1MjkxLCAxLjY4MzQzLCAyLjA3OTIiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTk2NjE1LCAwLjI5MjY0MiwgMC44MzU1OTQsIDEuMzE2NTksIDEuOTU2MjUsIDMuMjM4NjMsIDQuMDQwNTIiLCBcCi0gICAgICAgICAgIjAuMTk2NzI1LCAwLjI5MjQ3MSwgMC44MzU4ODgsIDEuMzE2MDcsIDEuOTU3NTcsIDMuMjM4MDMsIDQuMDM4NTgiLCBcCi0gICAgICAgICAgIjAuMTk2NjI0LCAwLjI5MjY1MiwgMC44MzU2MTQsIDEuMzE2MTQsIDEuOTU2MTcsIDMuMjM3NjMsIDQuMDM4ODgiLCBcCi0gICAgICAgICAgIjAuMTk3NTkxLCAwLjI5MjU5NSwgMC44MzU1ODIsIDEuMzE2MjIsIDEuOTU2ODYsIDMuMjM5MTQsIDQuMDM4ODQiLCBcCi0gICAgICAgICAgIjAuMTk5MzIxLCAwLjI5MzQ3NSwgMC44MzU1ODcsIDEuMzE1NzUsIDEuOTU2NTMsIDMuMjM5MywgNC4wNDA2IiwgXAotICAgICAgICAgICIwLjIwNDMzMywgMC4yOTY5NDcsIDAuODM1NTgzLCAxLjMxNjYyLCAxLjk1NjksIDMuMjM4NDIsIDQuMDQxMyIsIFwKLSAgICAgICAgICAiMC4yMDk2MjMsIDAuMzAxMjc3LCAwLjgzNTY2MSwgMS4zMTU3NCwgMS45NTcwOSwgMy4yMzc5OSwgNC4wNDA2NiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNjExODYsIDAuMjI4MTIsIDAuNjA1NzI5LCAwLjkzODY4NSwgMS4zODE1LCAyLjI2ODE5LCAyLjgyMTY3IiwgXAotICAgICAgICAgICIwLjE2OTc2OSwgMC4yMzY3MDksIDAuNjE0MzIzLCAwLjk0Njc4NSwgMS4zODk5NiwgMi4yNzYxOCwgMi44MzA0IiwgXAotICAgICAgICAgICIwLjE4MDU5MywgMC4yNDc2MjgsIDAuNjI1NDcyLCAwLjk1Nzg4MywgMS40MDE2LCAyLjI4ODg3LCAyLjg0MTkzIiwgXAotICAgICAgICAgICIwLjE5MTM2MywgMC4yNTgzNjMsIDAuNjM2MzEzLCAwLjk2ODc0MywgMS40MTI0MywgMi4yOTk0MSwgMi44NTI3MSIsIFwKLSAgICAgICAgICAiMC4yMDI0MDgsIDAuMjY5MzU3LCAwLjY0NzAyNywgMC45Nzk2NjIsIDEuNDIyOTUsIDIuMzEwMTQsIDIuODYzMjMiLCBcCi0gICAgICAgICAgIjAuMjIwMDEzLCAwLjI4NzAzOCwgMC42NjQ2MjIsIDAuOTk3MzcyLCAxLjQ0MDQ5LCAyLjMyNzE2LCAyLjg4MTI2IiwgXAotICAgICAgICAgICIwLjIzNTgxNCwgMC4zMDI0OCwgMC42ODAwNTcsIDEuMDEyOTEsIDEuNDU2MzMsIDIuMzQzMjEsIDIuODk2MTYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjkxOTQ0LCAwLjQyMTY0MiwgMS4xNTY1LCAxLjgwNDg2LCAyLjY2OTUsIDQuMzk3NzIsIDUuNDc4MzUiLCBcCi0gICAgICAgICAgIjAuMjkxODg4LCAwLjQyMTYyNywgMS4xNTY1MywgMS44MDQ5OCwgMi42Njk0NSwgNC4zOTcyLCA1LjQ3NzEyIiwgXAotICAgICAgICAgICIwLjI5MTkzNiwgMC40MjE2NjQsIDEuMTU2NDgsIDEuODA1LCAyLjY2OTU3LCA0LjM5Njk0LCA1LjQ3Nzg1IiwgXAotICAgICAgICAgICIwLjI5MjQ4OCwgMC40MjE2NTEsIDEuMTU2NTgsIDEuODA1LCAyLjY2OTU4LCA0LjM5Njc1LCA1LjQ3NzY0IiwgXAotICAgICAgICAgICIwLjI5NDg5MSwgMC40MjIxMzYsIDEuMTU2NDksIDEuODA1MjQsIDIuNjY5NCwgNC4zOTY5LCA1LjQ3NzI1IiwgXAotICAgICAgICAgICIwLjMwMTQyNSwgMC40MjU3NDMsIDEuMTU2NTMsIDEuODA1MjIsIDIuNjY5NTcsIDQuMzk2NiwgNS40Nzc0MiIsIFwKLSAgICAgICAgICAiMC4zMDkxMDUsIDAuNDMxMDgxLCAxLjE1NjU0LCAxLjgwNTEzLCAyLjY2ODg5LCA0LjM5NzE1LCA1LjQ3ODU3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDQ1OTYsIDAuMTUxNzU3LCAwLjQxNzc2LCAwLjY1NDIwNywgMC45Njk2OTUsIDEuNTk5NjYsIDEuOTkzNDEiLCBcCi0gICAgICAgICAgIjAuMTEzNjUyLCAwLjE2MDc4OCwgMC40MjcxNDksIDAuNjYzNjc1LCAwLjk3ODU3NSwgMS42MDkzNSwgMi4wMDI1NSIsIFwKLSAgICAgICAgICAiMC4xMjQ5NjIsIDAuMTcyMTQ0LCAwLjQzODQ3NiwgMC42NzQ3MjgsIDAuOTg5NTk5LCAxLjYyMDc3LCAyLjAxMzc1IiwgXAotICAgICAgICAgICIwLjEzNjUwNCwgMC4xODM2NDEsIDAuNDQ5OTUyLCAwLjY4NjE0NywgMS4wMDE2OCwgMS42MzE1MSwgMi4wMjUwOSIsIFwKLSAgICAgICAgICAiMC4xNDgxMzMsIDAuMTk1MjI0LCAwLjQ2MTU2MiwgMC42OTc3NDgsIDEuMDEyOTMsIDEuNjQyOTQsIDIuMDM2ODUiLCBcCi0gICAgICAgICAgIjAuMTY3MTMsIDAuMjEzODgsIDAuNDgwMTUxLCAwLjcxNjI5LCAxLjAzMTMzLCAxLjY2MTgsIDIuMDU0OTEiLCBcCi0gICAgICAgICAgIjAuMTgzNjAyLCAwLjIzMDE3OCwgMC40OTYxNzIsIDAuNzMyNzgxLCAxLjA0NzgzLCAxLjY3NzE1LCAyLjA3MjI0Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIwMTIyNiwgMC4yOTYxOTUsIDAuODM4MDQ4LCAxLjMxNywgMS45NTUwMSwgMy4yMzIyOSwgNC4wMzEzMiIsIFwKLSAgICAgICAgICAiMC4yMDEwNTksIDAuMjk2Mzg3LCAwLjgzODEzMSwgMS4zMTY4NywgMS45NTUwNCwgMy4yMzI4OSwgNC4wMjk4OSIsIFwKLSAgICAgICAgICAiMC4yMDEyMTcsIDAuMjk2MDIzLCAwLjgzODEzNiwgMS4zMTY2MiwgMS45NTU1NCwgMy4yMzIyNywgNC4wMzAyNiIsIFwKLSAgICAgICAgICAiMC4yMDM4MjQsIDAuMjk2NjEzLCAwLjgzODQxLCAxLjMxNjk5LCAxLjk1NDksIDMuMjMyNTgsIDQuMDMxMjkiLCBcCi0gICAgICAgICAgIjAuMjA4NDIsIDAuMjk5NDIzLCAwLjgzODE4MSwgMS4zMTY0OCwgMS45NTUwMywgMy4yMzI1NCwgNC4wMzE3IiwgXAotICAgICAgICAgICIwLjIxNzYwMywgMC4zMDYwNDcsIDAuODM4MTEsIDEuMzE2NDQsIDEuOTU1NDYsIDMuMjMyMDQsIDQuMDMxMzQiLCBcCi0gICAgICAgICAgIjAuMjI3NDQsIDAuMzEzOTczLCAwLjgzODQ3LCAxLjMxNjc0LCAxLjk1NTEyLCAzLjIzNDAzLCA0LjAzNDEzIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE0MDQ5NiwgMC4yMDcwOTcsIDAuNTg0MzIzLCAwLjkxNzEwOCwgMS4zNjAzNywgMi4yNDY5NiwgMi44MDA5OCIsIFwKLSAgICAgICAgICAiMC4xNDkwNTEsIDAuMjE1NzMyLCAwLjU5MzA1MSwgMC45MjU4MjMsIDEuMzY5MjgsIDIuMjU1NjMsIDIuODA5NyIsIFwKLSAgICAgICAgICAiMC4xNTgxNTQsIDAuMjI0OTQ5LCAwLjYwMjQ2MSwgMC45MzUxNTgsIDEuMzc4OCwgMi4yNjU1MywgMi44MTkwMiIsIFwKLSAgICAgICAgICAiMC4xNjcwNDksIDAuMjMzOTAyLCAwLjYxMTUzNCwgMC45NDQyNzYsIDEuMzg3NjUsIDIuMjc0MTgsIDIuODI4MzIiLCBcCi0gICAgICAgICAgIjAuMTc1ODY0LCAwLjI0Mjc3LCAwLjYyMDU4NywgMC45NTM0NDIsIDEuMzk2NzcsIDIuMjgzMzIsIDIuODM3NDQiLCBcCi0gICAgICAgICAgIjAuMTkwMDk2LCAwLjI1NzAwNiwgMC42MzUwNTgsIDAuOTY3ODUyLCAxLjQxMTI2LCAyLjI5NzksIDIuODUyMDEiLCBcCi0gICAgICAgICAgIjAuMjAyNDI3LCAwLjI2OTUzMywgMC42NDc2MTcsIDAuOTgwNDI1LCAxLjQyMzksIDIuMzEwNzcsIDIuODY0NzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjY3OTg0LCAwLjM5NzM1OSwgMS4xMzE0LCAxLjc3OTQxLCAyLjY0MzY2LCA0LjM3MTk1LCA1LjQ1MzI1IiwgXAotICAgICAgICAgICIwLjI2Nzk5NCwgMC4zOTczNjEsIDEuMTMxMjksIDEuNzc5MjQsIDIuNjQzNTMsIDQuMzcxNzksIDUuNDUyMDgiLCBcCi0gICAgICAgICAgIjAuMjY3OTg2LCAwLjM5NzM3NCwgMS4xMzEyOCwgMS43NzkxOSwgMi42NDM4NCwgNC4zNzU1MiwgNS40NTI4NCIsIFwKLSAgICAgICAgICAiMC4yNjg2NTYsIDAuMzk3MzY1LCAxLjEzMTI0LCAxLjc3OTA2LCAyLjY0MzU1LCA0LjM3NTE4LCA1LjQ1MjM1IiwgXAotICAgICAgICAgICIwLjI3MDE3OSwgMC4zOTgwMzgsIDEuMTMxMTIsIDEuNzc5MjksIDIuNjQ4NDYsIDQuMzc1MTMsIDUuNDUyODciLCBcCi0gICAgICAgICAgIjAuMjc0MDk3LCAwLjQwMDM3NCwgMS4xMzEzMywgMS43NzkyOCwgMi42NDM1OCwgNC4zNzIyOSwgNS40NTE5NCIsIFwKLSAgICAgICAgICAiMC4yNzg0OTQsIDAuNDAzNDc0LCAxLjEzMTM4LCAxLjc3OTIsIDIuNjQzNTMsIDQuMzc1MywgNS40NTMwOSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTAyMTIzLCAwLjE0OTE3NSwgMC40MTU0NTQsIDAuNjUxNzcyLCAwLjk2NzQ4NywgMS41OTgyNCwgMS45OTA4IiwgXAotICAgICAgICAgICIwLjExMTI0MiwgMC4xNTgzODQsIDAuNDI0NzA1LCAwLjY2MTAyMiwgMC45NzY4NjcsIDEuNjA3NzIsIDIuMDAwOSIsIFwKLSAgICAgICAgICAiMC4xMjI3NywgMC4xNjk5MDksIDAuNDM2MTcxLCAwLjY3MjY2MywgMC45ODc3MDcsIDEuNjE5MjIsIDIuMDEyNDUiLCBcCi0gICAgICAgICAgIjAuMTMzODkzLCAwLjE4MTAwOCwgMC40NDczMjUsIDAuNjgzNzM3LCAwLjk5OTM0OCwgMS42Mjk3NCwgMi4wMjM1OSIsIFwKLSAgICAgICAgICAiMC4xNDU0NTQsIDAuMTkyNDk3LCAwLjQ1ODg3NSwgMC42OTUyMDUsIDEuMDEwNjIsIDEuNjQwODIsIDIuMDM1MDUiLCBcCi0gICAgICAgICAgIjAuMTY0NDYzLCAwLjIxMTA3MywgMC40Nzc0NzIsIDAuNzEzNjU4LCAxLjAyODgxLCAxLjY1OTk1LCAyLjA1MzAxIiwgXAotICAgICAgICAgICIwLjE4MTAxLCAwLjIyNzMxLCAwLjQ5MzM2NiwgMC43MzAwODksIDEuMDQ1MzUsIDEuNjc1MDQsIDIuMDcwMjkiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTk4NjE4LCAwLjI5Mzk4NywgMC44Mzc5MDQsIDEuMzE3NTcsIDEuOTU3NTQsIDMuMjM4ODcsIDQuMDQwMjciLCBcCi0gICAgICAgICAgIjAuMTk4NTE0LCAwLjI5MzkzNywgMC44MzgwNTYsIDEuMzE3NTcsIDEuOTU3NDEsIDMuMjM4NDIsIDQuMDM4OCIsIFwKLSAgICAgICAgICAiMC4xOTg1MTMsIDAuMjkzNjgsIDAuODM3NjE2LCAxLjMxNzYxLCAxLjk1NzYxLCAzLjIzODUsIDQuMDM5MjMiLCBcCi0gICAgICAgICAgIjAuMjAxNDksIDAuMjk0MzgsIDAuODM3NjYzLCAxLjMxNzYsIDEuOTU3MzIsIDMuMjM3NTQsIDQuMDM4NTUiLCBcCi0gICAgICAgICAgIjAuMjA2MzQ5LCAwLjI5NzE2NCwgMC44Mzc0MTQsIDEuMzE3NTcsIDEuOTU3NjUsIDMuMjM4MzMsIDQuMDM5NzYiLCBcCi0gICAgICAgICAgIjAuMjE1ODA1LCAwLjMwNDExNiwgMC44Mzc0NDIsIDEuMzE3NTMsIDEuOTU3NjUsIDMuMjM4NDIsIDQuMDQxMzIiLCBcCi0gICAgICAgICAgIjAuMjI1Nzk3LCAwLjMxMjIyNSwgMC44Mzc3OTMsIDEuMzE4MzgsIDEuOTU3MzIsIDMuMjM3NDgsIDQuMDM5NjYiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTM4NDgsIDAuMjA1MDY0LCAwLjU4MjMwOCwgMC45MTUwNywgMS4zNTgzOSwgMi4yNDQ4NywgMi43OTkzNSIsIFwKLSAgICAgICAgICAiMC4xNDczNDEsIDAuMjE0MDk3LCAwLjU5MTQzMywgMC45MjQxMjksIDEuMzY3NTksIDIuMjUzOTIsIDIuODA4IiwgXAotICAgICAgICAgICIwLjE1Nzg5NywgMC4yMjQ3MTgsIDAuNjAyMjI5LCAwLjkzNTA3NiwgMS4zNzgzNywgMi4yNjQ5MiwgMi44MTk0MiIsIFwKLSAgICAgICAgICAiMC4xNjgzNDQsIDAuMjM1MzI1LCAwLjYxMjk3MSwgMC45NDU4MjksIDEuMzg5MTksIDIuMjc1NzMsIDIuODMwMjIiLCBcCi0gICAgICAgICAgIjAuMTc4ODI0LCAwLjI0NTc4MSwgMC42MjM2OCwgMC45NTY0OTIsIDEuMzk5OTcsIDIuMjg2MzYsIDIuODQwNDQiLCBcCi0gICAgICAgICAgIjAuMTk2MDE5LCAwLjI2MjY5MSwgMC42NDA4NzYsIDAuOTczNjYyLCAxLjQxNzI3LCAyLjMwMzcsIDIuODU4MTQiLCBcCi0gICAgICAgICAgIjAuMjEwNzM4LCAwLjI3NzU2MiwgMC42NTU2NTksIDAuOTg4NjQxLCAxLjQzMjEsIDIuMzE4NzEsIDIuODcyNzciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjY3OTk3LCAwLjM5NzI5LCAxLjEzMTQ0LCAxLjc3OTQsIDIuNjQzMzQsIDQuMzcxNTUsIDUuNDUyNCIsIFwKLSAgICAgICAgICAiMC4yNjc5ODEsIDAuMzk3MzU4LCAxLjEzMTIsIDEuNzc5MjIsIDIuNjQzNDgsIDQuMzcxNywgNS40NTE0IiwgXAotICAgICAgICAgICIwLjI2ODAwNywgMC4zOTczNjQsIDEuMTMxMzksIDEuNzc5MzUsIDIuNjQzNTksIDQuMzcxODEsIDUuNDUyODciLCBcCi0gICAgICAgICAgIjAuMjY4NzYyLCAwLjM5NzM3OSwgMS4xMzExMiwgMS43NzkzNCwgMi42NDM2NSwgNC4zNzI1NiwgNS40NTI0MyIsIFwKLSAgICAgICAgICAiMC4yNzA4NzEsIDAuMzk4MDA4LCAxLjEzMTMxLCAxLjc3OTM0LCAyLjY0Mzc1LCA0LjM3NDg0LCA1LjQ1MjgxIiwgXAotICAgICAgICAgICIwLjI3NjY5NSwgMC40MDEwNiwgMS4xMzEyMSwgMS43NzkyNiwgMi42NDM3MywgNC4zNzI0MSwgNS40NTI3MiIsIFwKLSAgICAgICAgICAiMC4yODI5OTQsIDAuNDA1Mzg3LCAxLjEzMTE0LCAxLjc3OTE4LCAyLjY0MzQ1LCA0LjM3MTY1LCA1LjQ1MzE4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIyIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTg0ODIsIDAuMTQ1MzM1LCAwLjQxMDQ4OCwgMC42NDUxODEsIDAuOTU5ODAxLCAxLjU4NzUsIDEuOTc4MzIiLCBcCi0gICAgICAgICAgIjAuMTA3NjQ5LCAwLjE1NDUzNywgMC40MTk1OTksIDAuNjU0ODI3LCAwLjk2ODgyNCwgMS41OTY0LCAxLjk4OTQ5IiwgXAotICAgICAgICAgICIwLjExODkyMSwgMC4xNjUzNzcsIDAuNDMxMDM0LCAwLjY2NjIyOCwgMC45ODA2NiwgMS42MDg0OSwgMS45OTk5MSIsIFwKLSAgICAgICAgICAiMC4xMzAzOTgsIDAuMTc3Mjg2LCAwLjQ0MjMzNiwgMC42NzczNzEsIDAuOTkxODc0LCAxLjYxOTQxLCAyLjAxMTU0IiwgXAotICAgICAgICAgICIwLjE0MTk5OSwgMC4xODg4MSwgMC40NTM5NjQsIDAuNjg5MjI2LCAxLjAwMzAyLCAxLjYzMDE4LCAyLjAyMjk2IiwgXAotICAgICAgICAgICIwLjE2MDkwNSwgMC4yMDczNjMsIDAuNDcyMzk0LCAwLjcwNzcyNywgMS4wMjE0NSwgMS42NDk3OCwgMi4wNDEwMiIsIFwKLSAgICAgICAgICAiMC4xNzczNzYsIDAuMjIzNjA0LCAwLjQ4ODQ4LCAwLjcyNDEwMiwgMS4wMzgsIDEuNjY0ODIsIDIuMDU4MjUiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTk0MDQyLCAwLjI4ODgwMywgMC44MjkzMTEsIDEuMzA2NzksIDEuOTQ0MjksIDMuMjE3MDYsIDQuMDEyNTUiLCBcCi0gICAgICAgICAgIjAuMTkzODQsIDAuMjg4NzU5LCAwLjgzMDAzOCwgMS4zMDcxMywgMS45NDMzMiwgMy4yMTY0NiwgNC4wMTMzNSIsIFwKLSAgICAgICAgICAiMC4xOTM5ODgsIDAuMjg4NTI3LCAwLjgyOTUwNywgMS4zMDcxOCwgMS45NDM4MywgMy4yMTcyNCwgNC4wMTI3MiIsIFwKLSAgICAgICAgICAiMC4xOTcwMzMsIDAuMjg5Mjc5LCAwLjgyOTY0NCwgMS4zMDY4NSwgMS45NDM2MiwgMy4yMTYyOCwgNC4wMTIwNSIsIFwKLSAgICAgICAgICAiMC4yMDIwODQsIDAuMjkyMjc4LCAwLjgyOTQsIDEuMzA3MTMsIDEuOTQzNzYsIDMuMjE3NTMsIDQuMDEzMjgiLCBcCi0gICAgICAgICAgIjAuMjExNTI4LCAwLjI5OTU1MSwgMC44Mjk1NTgsIDEuMzA3MDcsIDEuOTQzOTcsIDMuMjE3MTUsIDQuMDE0OTEiLCBcCi0gICAgICAgICAgIjAuMjIxNjYzLCAwLjMwNzUwMywgMC44Mjk3OTEsIDEuMzA3NzMsIDEuOTQzNjIsIDMuMjE2MjUsIDQuMDEzMyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMzM5MjksIDAuMjAwNTM2LCAwLjU3Nzc3MywgMC45MTA0MDUsIDEuMzUzNywgMi4yNDA1MSwgMi43OTQyNiIsIFwKLSAgICAgICAgICAiMC4xNDI3OTksIDAuMjA5NDcyLCAwLjU4Njc4OCwgMC45MTk0MTksIDEuMzYyODEsIDIuMjQ5MzIsIDIuODAzNDIiLCBcCi0gICAgICAgICAgIjAuMTUzNTk1LCAwLjIyMDM4MSwgMC41OTc4NTMsIDAuOTMwNTE4LCAxLjM3NDE5LCAyLjI2MDg3LCAyLjgxNDQiLCBcCi0gICAgICAgICAgIjAuMTY0Mjg2LCAwLjIzMDcwMywgMC42MDg2MjEsIDAuOTQxNDU3LCAxLjM4NDg0LCAyLjI3MTQxLCAyLjgyNTg1IiwgXAotICAgICAgICAgICIwLjE3NTIyNCwgMC4yNDE5NzgsIDAuNjE5NjU3LCAwLjk1MjQzOSwgMS4zOTU5MSwgMi4yODIzMiwgMi44MzYzOSIsIFwKLSAgICAgICAgICAiMC4xOTI5OTcsIDAuMjU5NDkzLCAwLjYzNzIwMSwgMC45Njk5MjgsIDEuNDEzNTMsIDIuMjk5ODksIDIuODU0MjEiLCBcCi0gICAgICAgICAgIjAuMjA4NTQ3LCAwLjI3NTA4NCwgMC42NTI1MTEsIDAuOTg1Mjc2LCAxLjQyODgxLCAyLjMxNTUyLCAyLjg2OTI4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI2Nzk3OCwgMC4zOTczNjQsIDEuMTMxMzUsIDEuNzc5MTMsIDIuNjUxNDIsIDQuMzc1NDIsIDUuNDUyNTkiLCBcCi0gICAgICAgICAgIjAuMjY4MDA2LCAwLjM5NzM4NCwgMS4xMzEyOCwgMS43NzkxNSwgMi42NDM1NCwgNC4zNzMwOCwgNS40NTI1MiIsIFwKLSAgICAgICAgICAiMC4yNjc5NDUsIDAuMzk3MzMsIDEuMTMxNDQsIDEuNzc5MTcsIDIuNjQzODYsIDQuMzcxODEsIDUuNDUyNzMiLCBcCi0gICAgICAgICAgIjAuMjY5MjgxLCAwLjM5NzMyMiwgMS4xMzEzOSwgMS43NzkzMiwgMi42NDM1NywgNC4zNzE5NCwgNS40NTI0NCIsIFwKLSAgICAgICAgICAiMC4yNzI1NTIsIDAuMzk4Mzc2LCAxLjEzMTM4LCAxLjc3OTMsIDIuNjQzNjcsIDQuMzcyMjUsIDUuNDUyODYiLCBcCi0gICAgICAgICAgIjAuMjgwNTc4LCAwLjQwMjk2NCwgMS4xMzExNCwgMS43NzkyNiwgMi42NDM4MiwgNC4zNzIyMSwgNS40NTM1MiIsIFwKLSAgICAgICAgICAiMC4yODkxNzMsIDAuNDA5MDY5LCAxLjEzMTI5LCAxLjc3OTE3LCAyLjY0MzY5LCA0LjM3NTUxLCA1LjQ1MjE2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDk0NywgMC4wMDQ5NDYsIDAuMDA0OTQ2LCAwLjAwNDk0NiwgMC4wMDQ5NDQsIDAuMDA0OTQyLCAwLjAwNDk0MSIsIFwKLSAgICAgICAgICAiMC4wMDQ5MzUsIDAuMDA0OTM2LCAwLjAwNDkzNiwgMC4wMDQ5MzcsIDAuMDA0OTM2LCAwLjAwNDkzNCwgMC4wMDQ5MzIiLCBcCi0gICAgICAgICAgIjAuMDA0OTMsIDAuMDA0OTMyLCAwLjAwNDkzNCwgMC4wMDQ5MzcsIDAuMDA0OTMzLCAwLjAwNDkzLCAwLjAwNDkzMSIsIFwKLSAgICAgICAgICAiMC4wMDQ5MjcsIDAuMDA0OTI3LCAwLjAwNDkzMywgMC4wMDQ5MzMsIDAuMDA0OTMzLCAwLjAwNDkzMSwgMC4wMDQ5MjkiLCBcCi0gICAgICAgICAgIjAuMDA0OTI0LCAwLjAwNDkyNywgMC4wMDQ5MzEsIDAuMDA0OTMyLCAwLjAwNDkzMSwgMC4wMDQ5MzIsIDAuMDA0OTMiLCBcCi0gICAgICAgICAgIjAuMDA0OTIxLCAwLjAwNDkyNSwgMC4wMDQ5MywgMC4wMDQ5MzEsIDAuMDA0OTMyLCAwLjAwNDkzMSwgMC4wMDQ5MjkiLCBcCi0gICAgICAgICAgIjAuMDA0OTIsIDAuMDA0OTIzLCAwLjAwNDkyOCwgMC4wMDQ5MzEsIDAuMDA0OTMxLCAwLjAwNDkzMSwgMC4wMDQ5MjkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDE1NzQsIDAuMDAxNTc0LCAwLjAwMTU3NCwgMC4wMDE1NzMsIDAuMDAxNTczLCAwLjAwMTU3MSwgMC4wMDE1NjkiLCBcCi0gICAgICAgICAgIjAuMDAxNTU1LCAwLjAwMTU1OSwgMC4wMDE1NjMsIDAuMDAxNTYzLCAwLjAwMTU2NCwgMC4wMDE1NjIsIDAuMDAxNTYyIiwgXAotICAgICAgICAgICIwLjAwMTU0LCAwLjAwMTU0NywgMC4wMDE1NTgsIDAuMDAxNTYsIDAuMDAxNTYxLCAwLjAwMTU2LCAwLjAwMTU1OSIsIFwKLSAgICAgICAgICAiMC4wMDE1MywgMC4wMDE1MzgsIDAuMDAxNTUzLCAwLjAwMTU1NiwgMC4wMDE1NTgsIDAuMDAxNTU5LCAwLjAwMTU1OCIsIFwKLSAgICAgICAgICAiMC4wMDE1MjEsIDAuMDAxNTMsIDAuMDAxNTQ5LCAwLjAwMTU1MywgMC4wMDE1NTYsIDAuMDAxNTU3LCAwLjAwMTU1NyIsIFwKLSAgICAgICAgICAiMC4wMDE1MTEsIDAuMDAxNTIxLCAwLjAwMTU0MywgMC4wMDE1NDksIDAuMDAxNTUzLCAwLjAwMTU1NSwgMC4wMDE1NTUiLCBcCi0gICAgICAgICAgIjAuMDAxNTA3LCAwLjAwMTUxNiwgMC4wMDE1MzksIDAuMDAxNTQ2LCAwLjAwMTU1MSwgMC4wMDE1NTMsIDAuMDAxNTU0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDU4OCwgMC4wMDQ1ODgsIDAuMDA0NTg4LCAwLjAwNDU4NywgMC4wMDQ1ODYsIDAuMDA0NTg2LCAwLjAwNDU4NCIsIFwKLSAgICAgICAgICAiMC4wMDQ1ODEsIDAuMDA0NTgzLCAwLjAwNDU4NywgMC4wMDQ1ODcsIDAuMDA0NTg2LCAwLjAwNDU4NSwgMC4wMDQ1ODQiLCBcCi0gICAgICAgICAgIjAuMDA0NTczLCAwLjAwNDU3NywgMC4wMDQ1ODQsIDAuMDA0NTg1LCAwLjAwNDU4NSwgMC4wMDQ1ODQsIDAuMDA0NTg2IiwgXAotICAgICAgICAgICIwLjAwNDU2NSwgMC4wMDQ1NywgMC4wMDQ1ODIsIDAuMDA0NTg0LCAwLjAwNDU4NiwgMC4wMDQ1ODMsIDAuMDA0NTgzIiwgXAotICAgICAgICAgICIwLjAwNDU2LCAwLjAwNDU2NywgMC4wMDQ1NzksIDAuMDA0NTgxLCAwLjAwNDU4MywgMC4wMDQ1ODQsIDAuMDA0NTgzIiwgXAotICAgICAgICAgICIwLjAwNDU1MywgMC4wMDQ1NjEsIDAuMDA0NTc2LCAwLjAwNDU3OSwgMC4wMDQ1ODIsIDAuMDA0NTgyLCAwLjAwNDU4MiIsIFwKLSAgICAgICAgICAiMC4wMDQ1NDksIDAuMDA0NTU3LCAwLjAwNDU3NCwgMC4wMDQ1NzgsIDAuMDA0NTgsIDAuMDA0NTgxLCAwLjAwNDU4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxNTc1LCAwLjAwMTU3NiwgMC4wMDE1NzYsIDAuMDAxNTc1LCAwLjAwMTU3NCwgMC4wMDE1NzMsIDAuMDAxNTcxIiwgXAotICAgICAgICAgICIwLjAwMTU1NiwgMC4wMDE1NiwgMC4wMDE1NjUsIDAuMDAxNTY1LCAwLjAwMTU2NSwgMC4wMDE1NjQsIDAuMDAxNTYzIiwgXAotICAgICAgICAgICIwLjAwMTU0MSwgMC4wMDE1NDgsIDAuMDAxNTU5LCAwLjAwMTU2MiwgMC4wMDE1NjEsIDAuMDAxNTYyLCAwLjAwMTU2MSIsIFwKLSAgICAgICAgICAiMC4wMDE1MzEsIDAuMDAxNTM5LCAwLjAwMTU1NSwgMC4wMDE1NTgsIDAuMDAxNTYsIDAuMDAxNTU5LCAwLjAwMTU2IiwgXAotICAgICAgICAgICIwLjAwMTUyMywgMC4wMDE1MzIsIDAuMDAxNTUxLCAwLjAwMTU1NSwgMC4wMDE1NTgsIDAuMDAxNTU5LCAwLjAwMTU1OCIsIFwKLSAgICAgICAgICAiMC4wMDE1MTUsIDAuMDAxNTI0LCAwLjAwMTU0NSwgMC4wMDE1NTEsIDAuMDAxNTU0LCAwLjAwMTU1NiwgMC4wMDE1NTciLCBcCi0gICAgICAgICAgIjAuMDAxNTEyLCAwLjAwMTUyLCAwLjAwMTU0MiwgMC4wMDE1NDksIDAuMDAxNTUzLCAwLjAwMTU1NSwgMC4wMDE1NTUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0MTc4LCAwLjAwNDE3OCwgMC4wMDQxOCwgMC4wMDQxNzksIDAuMDA0MTc4LCAwLjAwNDE3OCwgMC4wMDQxNzgiLCBcCi0gICAgICAgICAgIjAuMDA0MTc2LCAwLjAwNDE4MSwgMC4wMDQxODcsIDAuMDA0MTg4LCAwLjAwNDE4OSwgMC4wMDQxODgsIDAuMDA0MTg3IiwgXAotICAgICAgICAgICIwLjAwNDE2NSwgMC4wMDQxNzMsIDAuMDA0MTg0LCAwLjAwNDE4NywgMC4wMDQxODcsIDAuMDA0MTksIDAuMDA0MTg2IiwgXAotICAgICAgICAgICIwLjAwNDE1NSwgMC4wMDQxNjQsIDAuMDA0MTgyLCAwLjAwNDE4NywgMC4wMDQxODcsIDAuMDA0MTg4LCAwLjAwNDE5IiwgXAotICAgICAgICAgICIwLjAwNDE0NywgMC4wMDQxNTgsIDAuMDA0MTc4LCAwLjAwNDE4MiwgMC4wMDQxODQsIDAuMDA0MTg2LCAwLjAwNDE4NiIsIFwKLSAgICAgICAgICAiMC4wMDQxMzYsIDAuMDA0MTQ5LCAwLjAwNDE3MywgMC4wMDQxOCwgMC4wMDQxODMsIDAuMDA0MTg2LCAwLjAwNDE4NSIsIFwKLSAgICAgICAgICAiMC4wMDQxMjksIDAuMDA0MTQyLCAwLjAwNDE3LCAwLjAwNDE3NywgMC4wMDQxODIsIDAuMDA0MTg1LCAwLjAwNDE4NiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTU3NCwgMC4wMDE1NzUsIDAuMDAxNTc1LCAwLjAwMTU3NSwgMC4wMDE1NzQsIDAuMDAxNTczLCAwLjAwMTU3MSIsIFwKLSAgICAgICAgICAiMC4wMDE1NTMsIDAuMDAxNTU3LCAwLjAwMTU2NCwgMC4wMDE1NjUsIDAuMDAxNTY1LCAwLjAwMTU2NCwgMC4wMDE1NjMiLCBcCi0gICAgICAgICAgIjAuMDAxNTQxLCAwLjAwMTU0NywgMC4wMDE1NTksIDAuMDAxNTYsIDAuMDAxNTYyLCAwLjAwMTU2NCwgMC4wMDE1NjEiLCBcCi0gICAgICAgICAgIjAuMDAxNTMxLCAwLjAwMTUzOSwgMC4wMDE1NTQsIDAuMDAxNTU4LCAwLjAwMTU2LCAwLjAwMTU1OSwgMC4wMDE1NTkiLCBcCi0gICAgICAgICAgIjAuMDAxNTI3LCAwLjAwMTUzNSwgMC4wMDE1NTEsIDAuMDAxNTU2LCAwLjAwMTU1OCwgMC4wMDE1NTgsIDAuMDAxNTU4IiwgXAotICAgICAgICAgICIwLjAwMTUyOSwgMC4wMDE1MzQsIDAuMDAxNTQ4LCAwLjAwMTU1MywgMC4wMDE1NTYsIDAuMDAxNTU3LCAwLjAwMTU1NyIsIFwKLSAgICAgICAgICAiMC4wMDE1MzYsIDAuMDAxNTM3LCAwLjAwMTU0OCwgMC4wMDE1NTMsIDAuMDAxNTU1LCAwLjAwMTU1NywgMC4wMDE1NTciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzNjgyLCAwLjAwMzY4MiwgMC4wMDM2ODIsIDAuMDAzNjgsIDAuMDAzNjgxLCAwLjAwMzY3OSwgMC4wMDM2NzciLCBcCi0gICAgICAgICAgIjAuMDAzNjY1LCAwLjAwMzY2NywgMC4wMDM2NywgMC4wMDM2NywgMC4wMDM2NywgMC4wMDM2NjcsIDAuMDAzNjY3IiwgXAotICAgICAgICAgICIwLjAwMzY2MSwgMC4wMDM2NjMsIDAuMDAzNjY4LCAwLjAwMzY2OCwgMC4wMDM2NjYsIDAuMDAzNjY1LCAwLjAwMzY2NCIsIFwKLSAgICAgICAgICAiMC4wMDM2NTksIDAuMDAzNjYxLCAwLjAwMzY2NSwgMC4wMDM2NjYsIDAuMDAzNjY2LCAwLjAwMzY2MywgMC4wMDM2NjQiLCBcCi0gICAgICAgICAgIjAuMDAzNjU5LCAwLjAwMzY2MSwgMC4wMDM2NjUsIDAuMDAzNjY1LCAwLjAwMzY2NiwgMC4wMDM2NjQsIDAuMDAzNjYyIiwgXAotICAgICAgICAgICIwLjAwMzY2NiwgMC4wMDM2NjQsIDAuMDAzNjY2LCAwLjAwMzY2NSwgMC4wMDM2NjUsIDAuMDAzNjY0LCAwLjAwMzY2MyIsIFwKLSAgICAgICAgICAiMC4wMDM2NzYsIDAuMDAzNjcsIDAuMDAzNjY3LCAwLjAwMzY2NywgMC4wMDM2NjYsIDAuMDAzNjY0LCAwLjAwMzY2MyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDUwMSwgMC4wMDA1MDMsIDAuMDAwNTA2LCAwLjAwMDUwNiwgMC4wMDA1MDcsIDAuMDAwNTA3LCAwLjAwMDUwNyIsIFwKLSAgICAgICAgICAiMC4wMDA1LCAwLjAwMDUwOCwgMC4wMDA1MjEsIDAuMDAwNTI0LCAwLjAwMDUyNSwgMC4wMDA1MjYsIDAuMDAwNTI3IiwgXAotICAgICAgICAgICIwLjAwMDQ4MiwgMC4wMDA0OTYsIDAuMDAwNTE5LCAwLjAwMDUyNCwgMC4wMDA1MjcsIDAuMDAwNTI5LCAwLjAwMDUzIiwgXAotICAgICAgICAgICIwLjAwMDQ2NiwgMC4wMDA0ODQsIDAuMDAwNTE0LCAwLjAwMDUyMSwgMC4wMDA1MjUsIDAuMDAwNTI5LCAwLjAwMDUzIiwgXAotICAgICAgICAgICIwLjAwMDQ1MywgMC4wMDA0NzMsIDAuMDAwNTA5LCAwLjAwMDUxOCwgMC4wMDA1MjMsIDAuMDAwNTI4LCAwLjAwMDUyOSIsIFwKLSAgICAgICAgICAiMC4wMDA0MzcsIDAuMDAwNDU4LCAwLjAwMDUwMSwgMC4wMDA1MTMsIDAuMDAwNTIsIDAuMDAwNTI2LCAwLjAwMDUyOCIsIFwKLSAgICAgICAgICAiMC4wMDA0MjgsIDAuMDAwNDQ4LCAwLjAwMDQ5NSwgMC4wMDA1MDgsIDAuMDAwNTE3LCAwLjAwMDUyNCwgMC4wMDA1MjYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzMzE5LCAwLjAwMzMxOSwgMC4wMDMzMiwgMC4wMDMzMiwgMC4wMDMzMTksIDAuMDAzMzE3LCAwLjAwMzMxNyIsIFwKLSAgICAgICAgICAiMC4wMDMzMDksIDAuMDAzMzEyLCAwLjAwMzMxNywgMC4wMDMzMTcsIDAuMDAzMzE4LCAwLjAwMzMxNiwgMC4wMDMzMTYiLCBcCi0gICAgICAgICAgIjAuMDAzMjk5LCAwLjAwMzMwNCwgMC4wMDMzMTQsIDAuMDAzMzE1LCAwLjAwMzMxNSwgMC4wMDMzMTUsIDAuMDAzMzE0IiwgXAotICAgICAgICAgICIwLjAwMzI5OCwgMC4wMDMzMDMsIDAuMDAzMzEyLCAwLjAwMzMxNCwgMC4wMDMzMTYsIDAuMDAzMzEzLCAwLjAwMzMxMyIsIFwKLSAgICAgICAgICAiMC4wMDMyOTYsIDAuMDAzMzAyLCAwLjAwMzMxMSwgMC4wMDMzMTMsIDAuMDAzMzE0LCAwLjAwMzMxNCwgMC4wMDMzMTMiLCBcCi0gICAgICAgICAgIjAuMDAzMzAxLCAwLjAwMzMwMiwgMC4wMDMzMSwgMC4wMDMzMTMsIDAuMDAzMzEzLCAwLjAwMzMxMywgMC4wMDMzMTMiLCBcCi0gICAgICAgICAgIjAuMDAzMzA3LCAwLjAwMzMwNSwgMC4wMDMzMTEsIDAuMDAzMzEzLCAwLjAwMzMxNCwgMC4wMDMzMTQsIDAuMDAzMzEzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwNSwgMC4wMDA1MDIsIDAuMDAwNTA0LCAwLjAwMDUwNSwgMC4wMDA1MDUsIDAuMDAwNTA2LCAwLjAwMDUwNiIsIFwKLSAgICAgICAgICAiMC4wMDA0OTksIDAuMDAwNTA3LCAwLjAwMDUyLCAwLjAwMDUyMiwgMC4wMDA1MjQsIDAuMDAwNTI1LCAwLjAwMDUyNSIsIFwKLSAgICAgICAgICAiMC4wMDA0ODEsIDAuMDAwNDk2LCAwLjAwMDUxOCwgMC4wMDA1MjMsIDAuMDAwNTI1LCAwLjAwMDUyOSwgMC4wMDA1MjkiLCBcCi0gICAgICAgICAgIjAuMDAwNDY2LCAwLjAwMDQ4NCwgMC4wMDA1MTMsIDAuMDAwNTIsIDAuMDAwNTI0LCAwLjAwMDUyNywgMC4wMDA1MjkiLCBcCi0gICAgICAgICAgIjAuMDAwNDU0LCAwLjAwMDQ3MywgMC4wMDA1MDksIDAuMDAwNTE3LCAwLjAwMDUyMiwgMC4wMDA1MjcsIDAuMDAwNTI4IiwgXAotICAgICAgICAgICIwLjAwMDQ0LCAwLjAwMDQ2LCAwLjAwMDUwMSwgMC4wMDA1MTIsIDAuMDAwNTE5LCAwLjAwMDUyNSwgMC4wMDA1MjciLCBcCi0gICAgICAgICAgIjAuMDAwNDMzLCAwLjAwMDQ1MiwgMC4wMDA0OTYsIDAuMDAwNTA4LCAwLjAwMDUxNiwgMC4wMDA1MjMsIDAuMDAwNTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjIiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjg5OSwgMC4wMDI5LCAwLjAwMjkwMiwgMC4wMDI5MDIsIDAuMDAyOTAyLCAwLjAwMjkwMSwgMC4wMDI5MDIiLCBcCi0gICAgICAgICAgIjAuMDAyODk0LCAwLjAwMjksIDAuMDAyOTA4LCAwLjAwMjkxLCAwLjAwMjkxMSwgMC4wMDI5MSwgMC4wMDI5MSIsIFwKLSAgICAgICAgICAiMC4wMDI4ODQsIDAuMDAyODg5LCAwLjAwMjkwNiwgMC4wMDI5MDksIDAuMDAyOTEsIDAuMDAyOTA5LCAwLjAwMjkwOSIsIFwKLSAgICAgICAgICAiMC4wMDI4NzcsIDAuMDAyODg3LCAwLjAwMjkwMywgMC4wMDI5MDcsIDAuMDAyOTA4LCAwLjAwMjkxLCAwLjAwMjkxIiwgXAotICAgICAgICAgICIwLjAwMjg3MiwgMC4wMDI4ODIsIDAuMDAyOTAxLCAwLjAwMjkwNSwgMC4wMDI5MDcsIDAuMDAyOTA5LCAwLjAwMjkwOSIsIFwKLSAgICAgICAgICAiMC4wMDI4NzIsIDAuMDAyODc5LCAwLjAwMjg5OCwgMC4wMDI5MDMsIDAuMDAyOTA2LCAwLjAwMjkwNywgMC4wMDI5MDgiLCBcCi0gICAgICAgICAgIjAuMDAyODc3LCAwLjAwMjg4LCAwLjAwMjg5OCwgMC4wMDI5MDIsIDAuMDAyOTA1LCAwLjAwMjkwOCwgMC4wMDI5MDgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDA0OTgsIDAuMDAwNTAxLCAwLjAwMDUwNCwgMC4wMDA1MDUsIDAuMDAwNTA1LCAwLjAwMDUwNSwgMC4wMDA1MDUiLCBcCi0gICAgICAgICAgIjAuMDAwNDk2LCAwLjAwMDUwNSwgMC4wMDA1MTksIDAuMDAwNTIyLCAwLjAwMDUyMywgMC4wMDA1MjUsIDAuMDAwNTI1IiwgXAotICAgICAgICAgICIwLjAwMDQ4MiwgMC4wMDA0OTYsIDAuMDAwNTE3LCAwLjAwMDUyMiwgMC4wMDA1MjUsIDAuMDAwNTI3LCAwLjAwMDUyOCIsIFwKLSAgICAgICAgICAiMC4wMDA0NjksIDAuMDAwNDg1LCAwLjAwMDUxNCwgMC4wMDA1MiwgMC4wMDA1MjQsIDAuMDAwNTI4LCAwLjAwMDUyOSIsIFwKLSAgICAgICAgICAiMC4wMDA0NjIsIDAuMDAwNDc4LCAwLjAwMDUxLCAwLjAwMDUxOCwgMC4wMDA1MjMsIDAuMDAwNTI3LCAwLjAwMDUyOCIsIFwKLSAgICAgICAgICAiMC4wMDA0NiwgMC4wMDA0NzMsIDAuMDAwNTA2LCAwLjAwMDUxNSwgMC4wMDA1MjEsIDAuMDAwNTI2LCAwLjAwMDUyOCIsIFwKLSAgICAgICAgICAiMC4wMDA0NjQsIDAuMDAwNDc0LCAwLjAwMDUwNCwgMC4wMDA1MTMsIDAuMDAwNTIsIDAuMDAwNTI1LCAwLjAwMDUyNyIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IEFPSTMzWDIgKgotICogLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoQU9JMzNYMikgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjQxODgwMTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQTApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTc5ODM0OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTc5MjQ4OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTc5ODM0OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDgxOSwgMC4wMDA4MTgsIDAuMDAwODE3LCAwLjAwMDgxNywgMC4wMDA4MTgsIDAuMDAwODE3LCAwLjAwMDgxNyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDgxOSwgMC4wMDA4MiwgMC4wMDA4MiwgMC4wMDA4MiwgMC4wMDA4MiwgMC4wMDA4MiwgMC4wMDA4MiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQTEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTc4NDI0OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTc3NzA1OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTc4NDI0OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDgxOSwgMC4wMDA4MTgsIDAuMDAwODE4LCAwLjAwMDgxOCwgMC4wMDA4MTcsIDAuMDAwODE3LCAwLjAwMDgxNyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDgxOSwgMC4wMDA4MiwgMC4wMDA4MiwgMC4wMDA4MiwgMC4wMDA4MiwgMC4wMDA4MjEsIDAuMDAwODIxIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihBMikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNjQ1NjU7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNjMzMjM7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNjQ1NjU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNTM1LCAwLjAwMDUzNCwgMC4wMDA1MzQsIDAuMDAwNTMzLCAwLjAwMDUzMywgMC4wMDA1MzQsIDAuMDAwNTM0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwOTI4LCAwLjAwMDkyOSwgMC4wMDA5MzEsIDAuMDAwOTI5LCAwLjAwMDkyOSwgMC4wMDA5MjksIDAuMDAwOTI5Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxODE5NjU7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxODE5NjU7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxODE0MTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA4MTksIDAuMDAwODE4LCAwLjAwMDgxOCwgMC4wMDA4MTgsIDAuMDAwODE4LCAwLjAwMDgxOCwgMC4wMDA4MTgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA4MTksIDAuMDAwODE5LCAwLjAwMDgxOSwgMC4wMDA4MiwgMC4wMDA4MiwgMC4wMDA4MiwgMC4wMDA4MiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQjEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTc2OTk4OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTc2OTk4OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTc2NTczOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDgxOSwgMC4wMDA4MTksIDAuMDAwODE4LCAwLjAwMDgxOCwgMC4wMDA4MTgsIDAuMDAwODE4LCAwLjAwMDgxOCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDgxOSwgMC4wMDA4MTksIDAuMDAwODIsIDAuMDAwODIsIDAuMDAwODIsIDAuMDAwODIsIDAuMDAwODIiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIyKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE2MTg1NjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE2MTczNDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE2MTg1NjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA1MiwgMC4wMDA1MTksIDAuMDAwNTE5LCAwLjAwMDUxOSwgMC4wMDA1MTksIDAuMDAwNTE5LCAwLjAwMDUxOSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDkyOCwgMC4wMDA5MjksIDAuMDAwOTI4LCAwLjAwMDkyOSwgMC4wMDA5MjksIDAuMDAwOTI5LCAwLjAwMDkyOSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjE4Mjc0MzsKLSAgICBmdW5jdGlvbiA6ICIoISgoKEIwIEIxKSBCMikrKChBMCBBMSkgQTIpKSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzgyMDMsIDAuMjc0ODA1LCAwLjQzMjY4MSwgMC42MzAyODksIDAuODI4MDY4LCAxLjAyNTQ5LCAxLjIyMzk4IiwgXAotICAgICAgICAgICIwLjA4ODA4NSwgMC4yODQ3NTQsIDAuNDQyNDQsIDAuNjQwMzc2LCAwLjgzNzkyMiwgMS4wMzU2OCwgMS4yMzM3MiIsIFwKLSAgICAgICAgICAiMC4wOTkyOCwgMC4yOTU5OTUsIDAuNDUzODgzLCAwLjY1MTczNiwgMC44NDkyOTMsIDEuMDQ3MTksIDEuMjQ0NDUiLCBcCi0gICAgICAgICAgIjAuMTA5Njg5LCAwLjMwNjQxMSwgMC40NjQwNTgsIDAuNjYxODY5LCAwLjg1OTc5NiwgMS4wNTczNSwgMS4yNTU0IiwgXAotICAgICAgICAgICIwLjExOTgyLCAwLjMxNjYzOCwgMC40NzQ0NDMsIDAuNjcyMjM5LCAwLjg3MDIyOSwgMS4wNjcwNywgMS4yNjU3MSIsIFwKLSAgICAgICAgICAiMC4xMzU3NSwgMC4zMzI3OTksIDAuNDkwMzQzLCAwLjY4ODAxNSwgMC44ODYwNCwgMS4wODM4OSwgMS4yODA4NiIsIFwKLSAgICAgICAgICAiMC4xNDg0NjYsIDAuMzQ2NzQ2LCAwLjUwNDI1NSwgMC43MDIwMzQsIDAuODk5ODg0LCAxLjA5NzIxLCAxLjI5NDg5Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEyMTUxMiwgMC41MjEwODUsIDAuODQyNjY2LCAxLjI0NTA4LCAxLjY0ODYyLCAyLjA1MjExLCAyLjQ1NTI4IiwgXAotICAgICAgICAgICIwLjEyMTYwNCwgMC41MjE0NDEsIDAuODQyNTgyLCAxLjI0NTE3LCAxLjY0ODU4LCAyLjA1MTc2LCAyLjQ1NTE1IiwgXAotICAgICAgICAgICIwLjEyMTc4MiwgMC41MjEyNTEsIDAuODQyNDY4LCAxLjI0NTM0LCAxLjY0ODY3LCAyLjA1MTc3LCAyLjQ1NTI1IiwgXAotICAgICAgICAgICIwLjEyMzU2MywgMC41MjE0MDIsIDAuODQyMTcyLCAxLjI0NTU5LCAxLjY0ODQxLCAyLjA1MTcyLCAyLjQ1NTUyIiwgXAotICAgICAgICAgICIwLjEyNjI0MSwgMC41MjEzNTQsIDAuODQyNDg0LCAxLjI0NTYsIDEuNjQ4OTEsIDIuMDUxNTQsIDIuNDU1MjUiLCBcCi0gICAgICAgICAgIjAuMTMyMzQzLCAwLjUyMTk4NSwgMC44NDIxNDcsIDEuMjQ1MjEsIDEuNjQ4NDIsIDIuMDUyMDUsIDIuNDU0ODYiLCBcCi0gICAgICAgICAgIjAuMTM5MDcsIDAuNTI0MjMzLCAwLjg0MjMxNiwgMS4yNDUyMSwgMS42NDg4OSwgMi4wNTE1MiwgMi40NTQ4NSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTEzNDgsIDAuMzkwMzUxLCAwLjYxMjM1MSwgMC44OTAxMzQsIDEuMTY3MDgsIDEuNDQ0NjUsIDEuNzIyMjMiLCBcCi0gICAgICAgICAgIjAuMTE5NTk0LCAwLjM5ODc3LCAwLjYyMDg4MywgMC44OTgxMDcsIDEuMTc1MjgsIDEuNDUyNDIsIDEuNzMwMiIsIFwKLSAgICAgICAgICAiMC4xMjg4MTEsIDAuNDA4MDM4LCAwLjYzMDI5LCAwLjkwNzkzNywgMS4xODUyNiwgMS40NjI0NCwgMS43Mzk4NyIsIFwKLSAgICAgICAgICAiMC4xMzc2OCwgMC40MTcxMTIsIDAuNjM5MzUxLCAwLjkxNjgwNCwgMS4xOTQ0MiwgMS40NzE1MSwgMS43NDkxNCIsIFwKLSAgICAgICAgICAiMC4xNDY2NzIsIDAuNDI2MjcsIDAuNjQ4NTg1LCAwLjkyNTY3LCAxLjIwMzY2LCAxLjQ4MDYzLCAxLjc1Nzg1IiwgXAotICAgICAgICAgICIwLjE2MTA2MiwgMC40NDA1NywgMC42NjI3NTgsIDAuOTQwNTM2LCAxLjIxNzc2LCAxLjQ5NDYzLCAxLjc3MjE4IiwgXAotICAgICAgICAgICIwLjE3MzQzNSwgMC40NTMwNCwgMC42NzUyOTYsIDAuOTUyODkyLCAxLjIzMDE5LCAxLjUwNzc4LCAxLjc4NDgyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE4NDM2LCAwLjcyNjQ1NCwgMS4xNjA1NSwgMS43MDI5MiwgMi4yNDUwMSwgMi43ODczOSwgMy4zMjk2IiwgXAotICAgICAgICAgICIwLjE4NDM2NSwgMC43MjY0MzUsIDEuMTYwNCwgMS43MDI4OCwgMi4yNDUxMywgMi43ODcyLCAzLjMyODY4IiwgXAotICAgICAgICAgICIwLjE4NDUzNSwgMC43MjY1NCwgMS4xNjA0MiwgMS43MDI3OSwgMi4yNDQ5NiwgMi43ODcxOSwgMy4zMjkzNiIsIFwKLSAgICAgICAgICAiMC4xODU3MjIsIDAuNzI2NTQ4LCAxLjE2MDQ4LCAxLjcwMjgsIDIuMjQ1MiwgMi43ODcxNiwgMy4zMjk0MiIsIFwKLSAgICAgICAgICAiMC4xODc4MDYsIDAuNzI2NDQ0LCAxLjE2MDQ4LCAxLjcwMjk2LCAyLjI0NDg2LCAyLjc4NzQyLCAzLjMyOTMxIiwgXAotICAgICAgICAgICIwLjE5MjU4MiwgMC43MjY2MDUsIDEuMTYwNDEsIDEuNzAyODEsIDIuMjQ1MSwgMi43ODczOSwgMy4zMjkzMiIsIFwKLSAgICAgICAgICAiMC4xOTc3OCwgMC43Mjc1NDgsIDEuMTYwMywgMS43MDI4NywgMi4yNDQ5MywgMi43ODcxNSwgMy4zMjk1OSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc1ODYsIDAuMjczMzA5LCAwLjQzMDg1MywgMC42MjczNTcsIDAuODI0MDY5LCAxLjAyMDQ5LCAxLjIxNzkxIiwgXAotICAgICAgICAgICIwLjA4NTY5NSwgMC4yODMxOTYsIDAuNDQwNTg2LCAwLjYzNzEwMiwgMC44MzQyNzgsIDEuMDMwNTEsIDEuMjI2OTUiLCBcCi0gICAgICAgICAgIjAuMDk2OTA2LCAwLjI5NDUwNCwgMC40NTE3ODgsIDAuNjQ4OSwgMC44NDU0MzEsIDEuMDQyMywgMS4yMzg0NyIsIFwKLSAgICAgICAgICAiMC4xMDcxMjIsIDAuMzA0NzMsIDAuNDYyMjI2LCAwLjY1OTE5LCAwLjg1NTQ5NSwgMS4wNTIyNCwgMS4yNDg2MiIsIFwKLSAgICAgICAgICAiMC4xMTc0MDEsIDAuMzE1MTMyLCAwLjQ3MjQ2NywgMC42NjkyNSwgMC44NjYwNTEsIDEuMDYyMjgsIDEuMjU5MTIiLCBcCi0gICAgICAgICAgIjAuMTMzMDg1LCAwLjMzMTE3NCwgMC40ODg2NjIsIDAuNjg1NDU4LCAwLjg4MjI4MywgMS4wNzkxNCwgMS4yNzUxOSIsIFwKLSAgICAgICAgICAiMC4xNDU1NjEsIDAuMzQ1MTcsIDAuNTAyNjQ3LCAwLjY5OTU5LCAwLjg5NjE2NiwgMS4wOTI4MywgMS4yOTAxOCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTg4MzcsIDAuNTE4Mzg0LCAwLjgzNzYwMywgMS4yMzgwMywgMS42NDAwNiwgMi4wNDE3OSwgMi40NDMzMiIsIFwKLSAgICAgICAgICAiMC4xMTg4NjYsIDAuNTE4MSwgMC44Mzc4MDMsIDEuMjM3ODcsIDEuNjM5NywgMi4wNDExNiwgMi40NDI5IiwgXAotICAgICAgICAgICIwLjExOTIyMiwgMC41MTgyMDYsIDAuODM3NjUsIDEuMjM4NDksIDEuNjM5NjYsIDIuMDQxNDcsIDIuNDQyNzEiLCBcCi0gICAgICAgICAgIjAuMTIwOTgsIDAuNTE3OTkyLCAwLjgzNzgyOCwgMS4yMzg2LCAxLjYzOTk3LCAyLjA0MTE3LCAyLjQ0NDIxIiwgXAotICAgICAgICAgICIwLjEyMzc4MywgMC41MTgyMzYsIDAuODM3NjA0LCAxLjIzODE3LCAxLjY0MDAzLCAyLjA0MTc3LCAyLjQ0Mzg5IiwgXAotICAgICAgICAgICIwLjEyOTk0MSwgMC41MTkxMDcsIDAuODM3MjYyLCAxLjIzNzk1LCAxLjYzOTg3LCAyLjA0MTY2LCAyLjQ0MzkxIiwgXAotICAgICAgICAgICIwLjEzNjY2LCAwLjUyMTE3OCwgMC44Mzc0NDgsIDEuMjM3ODYsIDEuNjM5NzksIDIuMDQxMTQsIDIuNDQ0MDEiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTA4OTEyLCAwLjM4Nzg4MiwgMC42MTAxMTksIDAuODg3NTAyLCAxLjE2NDg4LCAxLjQ0MTkyLCAxLjcxOTMyIiwgXAotICAgICAgICAgICIwLjExNzMxNywgMC4zOTY0NzgsIDAuNjE4ODUyLCAwLjg5NjIzNCwgMS4xNzMzNiwgMS40NTA1NiwgMS43MjgyIiwgXAotICAgICAgICAgICIwLjEyNzg2NSwgMC40MDcyMiwgMC42MjkzMjYsIDAuOTA2OTczLCAxLjE4NDI5LCAxLjQ2MTgzLCAxLjczODc3IiwgXAotICAgICAgICAgICIwLjEzODQ0NywgMC40MTgwMjEsIDAuNjQwMDU4LCAwLjkxNzQ2OSwgMS4xOTUwMSwgMS40NzI1NiwgMS43NTAzNyIsIFwKLSAgICAgICAgICAiMC4xNDg5NjEsIDAuNDI4NjU3LCAwLjY1MTA1NCwgMC45Mjg0ODIsIDEuMjA2MTEsIDEuNDgyODMsIDEuNzYxMTUiLCBcCi0gICAgICAgICAgIjAuMTY2MTYzLCAwLjQ0NTU5NSwgMC42Njc5MzYsIDAuOTQ1NDQxLCAxLjIyMjcyLCAxLjUwMDUzLCAxLjc3NzE4IiwgXAotICAgICAgICAgICIwLjE4MTA2LCAwLjQ2MDg2LCAwLjY4MzMyMSwgMC45NjA3MTMsIDEuMjM4MzEsIDEuNTE1NDksIDEuNzkyNDkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTg0MzYzLCAwLjcyNjQ4MywgMS4xNjA0NiwgMS43MDI5MSwgMi4yNDQ5MiwgMi43ODc1MiwgMy4zMjkzNiIsIFwKLSAgICAgICAgICAiMC4xODQzNTcsIDAuNzI2NTU5LCAxLjE2MDQ3LCAxLjcwMjg2LCAyLjI0NTA3LCAyLjc4NzI1LCAzLjMyODk2IiwgXAotICAgICAgICAgICIwLjE4NDU3MywgMC43MjY1NDMsIDEuMTYwNDgsIDEuNzAyODgsIDIuMjQ1MTksIDIuNzg3NDIsIDMuMzI5NjEiLCBcCi0gICAgICAgICAgIjAuMTg2Mjk4LCAwLjcyNjQ4OSwgMS4xNjA1LCAxLjcwMjg4LCAyLjI0NTIxLCAyLjc4NzQzLCAzLjMyOTU3IiwgXAotICAgICAgICAgICIwLjE4OTQzMiwgMC43MjY1NjEsIDEuMTYwMjksIDEuNzAyNzUsIDIuMjQ1MTcsIDIuNzg3MTksIDMuMzI5MzciLCBcCi0gICAgICAgICAgIjAuMTk2NDk4LCAwLjcyNjU4MywgMS4xNjAyMSwgMS43MDI3OSwgMi4yNDQ5MiwgMi43ODc0LCAzLjMyOTYiLCBcCi0gICAgICAgICAgIjAuMjA0MTMyLCAwLjcyNzM2NSwgMS4xNjA0NiwgMS43MDI4NSwgMi4yNDQ5LCAyLjc4NzM1LCAzLjMyOTU2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEyIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzM3MDEsIDAuMjczNDI0LCAwLjQzMjY2NiwgMC42MzE5NiwgMC44MzEwMjksIDEuMDMwMzksIDEuMjI5NzkiLCBcCi0gICAgICAgICAgIjAuMDgzNjA1LCAwLjI4MzQyNSwgMC40NDI5NTUsIDAuNjQyMTk5LCAwLjg0MTI0NCwgMS4wNDA2OCwgMS4yMzkxOCIsIFwKLSAgICAgICAgICAiMC4wOTQ3MDUsIDAuMjk0NjkyLCAwLjQ1NDA5NCwgMC42NTM0ODcsIDAuODUyMTYxLCAxLjA1MTU1LCAxLjI1MDA2IiwgXAotICAgICAgICAgICIwLjEwNTAwOCwgMC4zMDUwNzIsIDAuNDY0NDg4LCAwLjY2Mzc1NCwgMC44NjI1NTYsIDEuMDYyMjksIDEuMjYwNTYiLCBcCi0gICAgICAgICAgIjAuMTE1MDgsIDAuMzE1MjgzLCAwLjQ3NDc5OCwgMC42NzM3NTgsIDAuODczNDAxLCAxLjA3MTc2LCAxLjI3MTY4IiwgXAotICAgICAgICAgICIwLjEzMDYxNiwgMC4zMzEzMzgsIDAuNDkwNzY4LCAwLjY5MDE1OCwgMC44ODkzNTYsIDEuMDg4NTMsIDEuMjg3NCIsIFwKLSAgICAgICAgICAiMC4xNDI4MzgsIDAuMzQ1MTkyLCAwLjUwNDc1NywgMC43MDM5MjQsIDAuOTAzNDE0LCAxLjEwMjUxLCAxLjMwMTE0Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExNjg2NSwgMC41MjA4NDksIDAuODQzODAyLCAxLjI1MDI3LCAxLjY1NjIyLCAyLjA2MjQsIDIuNDcwMjkiLCBcCi0gICAgICAgICAgIjAuMTE2OTc0LCAwLjUyMDY3NiwgMC44NDQwNSwgMS4yNDkwMiwgMS42NTYyLCAyLjA2MzMzLCAyLjQ2OTU0IiwgXAotICAgICAgICAgICIwLjExNzIzNCwgMC41MjA4NTMsIDAuODQ0NTAxLCAxLjI0OTA1LCAxLjY1NzEsIDIuMDYyNTMsIDIuNDcyODYiLCBcCi0gICAgICAgICAgIjAuMTE5MDYzLCAwLjUyMDcyNCwgMC44NDQ0MTMsIDEuMjUwMTcsIDEuNjU1NjIsIDIuMDYzMjIsIDIuNDY5NzIiLCBcCi0gICAgICAgICAgIjAuMTIxOTUxLCAwLjUyMDk4LCAwLjg0NDA0NywgMS4yNDkzNywgMS42NTY0NiwgMi4wNjY5MywgMi40NzAwOCIsIFwKLSAgICAgICAgICAiMC4xMjgyMzEsIDAuNTIxNzY3LCAwLjg0NDE2OCwgMS4yNDkyOCwgMS42NTkzNSwgMi4wNjMxNywgMi40NzEzNyIsIFwKLSAgICAgICAgICAiMC4xMzUxODUsIDAuNTIzNzc4LCAwLjg0NDcxMywgMS4yNTE3MywgMS42NTYwNCwgMi4wNjQyOSwgMi40NzQ0NSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDQ0MzIsIDAuMzgzNTUxLCAwLjYwNTU4MiwgMC44ODM0MjcsIDEuMTYwMzMsIDEuNDM3MjIsIDEuNzE1NTYiLCBcCi0gICAgICAgICAgIjAuMTEyOTU0LCAwLjM5MiwgMC42MTQxMzMsIDAuODkxNDc3LCAxLjE2ODY5LCAxLjQ0NiwgMS43MjMwMSIsIFwKLSAgICAgICAgICAiMC4xMjM2MTEsIDAuNDAyOTA3LCAwLjYyNDkzNywgMC45MDI0NCwgMS4xODAxNiwgMS40NTY2OCwgMS43MzQxMSIsIFwKLSAgICAgICAgICAiMC4xMzQ3MTMsIDAuNDE0MDgsIDAuNjM2MTE0LCAwLjkxMzUyMywgMS4xOTEzNCwgMS40Njg0LCAxLjc0NTY4IiwgXAotICAgICAgICAgICIwLjE0NTUyNiwgMC40MjQ4NDYsIDAuNjQ3MTYyLCAwLjkyNDMxOSwgMS4yMDIwNCwgMS40Nzg4NywgMS43NTcwOCIsIFwKLSAgICAgICAgICAiMC4xNjM0NDgsIDAuNDQxNywgMC42NjQ0ODQsIDAuOTQyMTU4LCAxLjIxOTEyLCAxLjQ5NjM3LCAxLjc3NDIiLCBcCi0gICAgICAgICAgIjAuMTc5MTY4LCAwLjQ1Nzc3NCwgMC42Nzk4NzgsIDAuOTU3MzgsIDEuMjM0OCwgMS41MTI2NCwgMS43ODg5OCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xODQzNzYsIDAuNzI2NTE3LCAxLjE2MDI4LCAxLjcwMjgyLCAyLjI0NTE3LCAyLjc4NzMsIDMuMzI5NDIiLCBcCi0gICAgICAgICAgIjAuMTg0Mzk2LCAwLjcyNjQ1MSwgMS4xNjA0OSwgMS43MDI4NiwgMi4yNDUxOCwgMi43ODcyNCwgMy4zMjg2MyIsIFwKLSAgICAgICAgICAiMC4xODQ2MzksIDAuNzI2NDYsIDEuMTYwNTMsIDEuNzAyNjMsIDIuMjQ1MTEsIDIuNzg3MzMsIDMuMzI5MzIiLCBcCi0gICAgICAgICAgIjAuMTg3NDMsIDAuNzI2NTU0LCAxLjE2MDUyLCAxLjcwMjg4LCAyLjI0NDg3LCAyLjc4NzQ5LCAzLjMyOTU1IiwgXAotICAgICAgICAgICIwLjE5MjE5OSwgMC43MjY1NTMsIDEuMTYwNSwgMS43MDI3NCwgMi4yNDUxNywgMi43ODcyOCwgMy4zMjkzNyIsIFwKLSAgICAgICAgICAiMC4yMDE5NzIsIDAuNzI2NDQ5LCAxLjE2MDUsIDEuNzAyOCwgMi4yNDUxLCAyLjc4NzE2LCAzLjMyOTQ2IiwgXAotICAgICAgICAgICIwLjIxMjEzMywgMC43Mjc3OTMsIDEuMTYwNDQsIDEuNzAyODgsIDIuMjQ0OTMsIDIuNzg3MTgsIDMuMzI5NTgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjAiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2NDc2NiwgMC4yNjEzOCwgMC40MTg2NCwgMC42MTc4NTgsIDAuODE2OTAzLCAxLjAxNjIyLCAxLjIxNDc0IiwgXAotICAgICAgICAgICIwLjA3Mzg0OCwgMC4yNzA1MTYsIDAuNDI3NTg3LCAwLjYyNjYwMSwgMC44MjYyMiwgMS4wMjQ2LCAxLjIyNDA3IiwgXAotICAgICAgICAgICIwLjA4NTQyMywgMC4yODIxMjYsIDAuNDM5MTI2LCAwLjYzODE4NSwgMC44Mzc3MjksIDEuMDM2NzQsIDEuMjM1NjciLCBcCi0gICAgICAgICAgIjAuMDk2NjU3LCAwLjI5MzI3NCwgMC40NTAzMDcsIDAuNjQ5MzYzLCAwLjg0ODM3MSwgMS4wNDc2MSwgMS4yNDY0MyIsIFwKLSAgICAgICAgICAiMC4xMDg2NzEsIDAuMzA0ODE5LCAwLjQ2MTkzOSwgMC42NjEwMywgMC44NTk5NCwgMS4wNTg5NiwgMS4yNTc5NSIsIFwKLSAgICAgICAgICAiMC4xMjc0MTQsIDAuMzIzNDM2LCAwLjQ4MDUyOSwgMC42Nzk0MjcsIDAuODc4Nzg4LCAxLjA3NzkxLCAxLjI3NjUxIiwgXAotICAgICAgICAgICIwLjE0MTc5MywgMC4zMzk1MzQsIDAuNDk2NDU0LCAwLjY5NTU1MiwgMC44OTQ5NzMsIDEuMDkzNTksIDEuMjkyNjIiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTIxNDA1LCAwLjUyMDg2LCAwLjg0NDAzMSwgMS4yNDc5OSwgMS42NTE5NCwgMi4wNTYxNCwgMi40NjAzMSIsIFwKLSAgICAgICAgICAiMC4xMjA3NzksIDAuNTIwODYzLCAwLjg0NDEyLCAxLjI0Nzk5LCAxLjY1MjAyLCAyLjA1NjIzLCAyLjQ2MTE0IiwgXAotICAgICAgICAgICIwLjEyMzAxNiwgMC41MjA4NDcsIDAuODQ0MDAzLCAxLjI0ODQzLCAxLjY1MTk5LCAyLjA1NjA5LCAyLjQ2MDM3IiwgXAotICAgICAgICAgICIwLjEyODEyMSwgMC41MjA2ODksIDAuODQ0Mzc5LCAxLjI0Nzk1LCAxLjY1MTkxLCAyLjA1NjI0LCAyLjQ2MDgxIiwgXAotICAgICAgICAgICIwLjEzNDQ0OSwgMC41MjA4NjUsIDAuODQ0MDk3LCAxLjI0ODE1LCAxLjY1MTk1LCAyLjA1NjAzLCAyLjQ2MDgiLCBcCi0gICAgICAgICAgIjAuMTQ2Njk2LCAwLjUyMjg0MSwgMC44NDQwNDUsIDEuMjQ3OTEsIDEuNjUyMTksIDIuMDU2ODIsIDIuNDYwMTEiLCBcCi0gICAgICAgICAgIjAuMTU4NTY1LCAwLjUyNzM1MiwgMC44NDQwNzEsIDEuMjQ3NzUsIDEuNjUyMDcsIDIuMDU2MDEsIDIuNDYwMTEiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg0MTU4LCAwLjM2MTg1NSwgMC41ODM5MTcsIDAuODYxMzQ5LCAxLjEzODY5LCAxLjQxNjAzLCAxLjY5MzQyIiwgXAotICAgICAgICAgICIwLjA5MjYzMiwgMC4zNzA3MzEsIDAuNTkyNzg2LCAwLjg3MDI1NSwgMS4xNDc2NiwgMS40MjUxNSwgMS43MDIzOSIsIFwKLSAgICAgICAgICAiMC4xMDE3MTQsIDAuMzgwMTA2LCAwLjYwMjIwMywgMC44Nzk3MzUsIDEuMTU3MDcsIDEuNDM0NjMsIDEuNzExNzkiLCBcCi0gICAgICAgICAgIjAuMTEwNTE3LCAwLjM4OTEzOCwgMC42MTEzNTksIDAuODg4ODQxLCAxLjE2NjM5LCAxLjQ0MzUxLCAxLjcyMDg4IiwgXAotICAgICAgICAgICIwLjExOTM0NSwgMC4zOTgxNTcsIDAuNjIwMzczLCAwLjg5Nzk3OSwgMS4xNzUzNywgMS40NTI4NSwgMS43MzAwNCIsIFwKLSAgICAgICAgICAiMC4xMzMzNzYsIDAuNDEyNDExLCAwLjYzNDczMSwgMC45MTIzMjYsIDEuMTg5NjksIDEuNDY3MjQsIDEuNzQ0NDUiLCBcCi0gICAgICAgICAgIjAuMTQ0OTQ2LCAwLjQyNDk2NSwgMC42NDc0OTUsIDAuOTI1MDg0LCAxLjIwMjQ0LCAxLjQ3OTc2LCAxLjc1NzM3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE2MDI4NCwgMC43MDEyMTksIDEuMTM0ODQsIDEuNjc2NzIsIDIuMjE4OTcsIDIuNzYwOTQsIDMuMzAzNCIsIFwKLSAgICAgICAgICAiMC4xNjAyNzEsIDAuNzAxMzIyLCAxLjEzNDc2LCAxLjY3NjQ5LCAyLjIxODgzLCAyLjc2MTExLCAzLjMwMzMyIiwgXAotICAgICAgICAgICIwLjE2MDc0MSwgMC43MDEzNDgsIDEuMTM0NzEsIDEuNjc2NjksIDIuMjE4NzIsIDIuNzYxMTMsIDMuMzAzNSIsIFwKLSAgICAgICAgICAiMC4xNjI1MDIsIDAuNzAxMjEsIDEuMTM0NzcsIDEuNjc2NDMsIDIuMjE4ODcsIDIuNzYwOTcsIDMuMzAzMTUiLCBcCi0gICAgICAgICAgIjAuMTY1MjE2LCAwLjcwMTIyOSwgMS4xMzQ3LCAxLjY3NjQ4LCAyLjIxODQ4LCAyLjc2MTA1LCAzLjMwMzI3IiwgXAotICAgICAgICAgICIwLjE3MTAxNSwgMC43MDE1NTcsIDEuMTM0NTcsIDEuNjc2NDgsIDIuMjE4NjcsIDIuNzYxMzIsIDMuMzAyOTkiLCBcCi0gICAgICAgICAgIjAuMTc3MzIyLCAwLjcwMjYwOSwgMS4xMzQ1NCwgMS42NzY2NiwgMi4yMTg1LCAyLjc2MDc5LCAzLjMwMzI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIxIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjI3NDgsIDAuMjYxMjIzLCAwLjQxOTQzNSwgMC42MTcyNjgsIDAuODE1MjY4LCAxLjAxNDgzLCAxLjIxMzg1IiwgXAotICAgICAgICAgICIwLjA3MTg1NCwgMC4yNzA0NDYsIDAuNDI4NjY0LCAwLjYyNjI1NiwgMC44MjQ2NTYsIDEuMDIzNjEsIDEuMjIzNzIiLCBcCi0gICAgICAgICAgIjAuMDgzMDg3LCAwLjI4MTY3NiwgMC40NDAwMSwgMC42Mzc5MzksIDAuODM1NDg1LCAxLjAzNTUzLCAxLjIzNDU3IiwgXAotICAgICAgICAgICIwLjA5NDgxLCAwLjI5MzA4NSwgMC40NTEzNjksIDAuNjQ4ODE2LCAwLjg0Njg5MSwgMS4wNDY4LCAxLjI0NTgzIiwgXAotICAgICAgICAgICIwLjEwNjQ4MSwgMC4zMDQ1MzQsIDAuNDYyODg4LCAwLjY2MDU1NSwgMC44NTgzNzUsIDEuMDU3NzQsIDEuMjU3MzEiLCBcCi0gICAgICAgICAgIjAuMTI0OTI5LCAwLjMyMzA1NywgMC40ODEzMjMsIDAuNjc4ODg2LCAwLjg3NzA5NywgMS4wNzY2OSwgMS4yNzU3NSIsIFwKLSAgICAgICAgICAiMC4xMzg5MiwgMC4zMzkxNzMsIDAuNDk3MzcsIDAuNjk1MTA4LCAwLjg5MzMxMSwgMS4wOTI0NywgMS4yOTE4OCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTk0MDgsIDAuNTIxMTI3LCAwLjg0MjQwNywgMS4yNDc3NiwgMS42NTMwOSwgMi4wNTcyMiwgMi40NjE5IiwgXAotICAgICAgICAgICIwLjExODg4OSwgMC41MjExNDQsIDAuODQzMjA5LCAxLjI0Nzc4LCAxLjY1MjU3LCAyLjA1Nzg4LCAyLjQ2MjQ1IiwgXAotICAgICAgICAgICIwLjEyMTM1OSwgMC41MjEwMTksIDAuODQyNjA3LCAxLjI0ODE4LCAxLjY1Mjg0LCAyLjA1NzQ5LCAyLjQ2MjEzIiwgXAotICAgICAgICAgICIwLjEyNjQ5MiwgMC41MjEyOTgsIDAuODQyODI5LCAxLjI0NzcyLCAxLjY1Mjg0LCAyLjA1NzUsIDIuNDYyNTEiLCBcCi0gICAgICAgICAgIjAuMTMzMTIzLCAwLjUyMDk0OSwgMC44NDI2NDMsIDEuMjQ3ODcsIDEuNjUyODksIDIuMDU3ODksIDIuNDYzNDIiLCBcCi0gICAgICAgICAgIjAuMTQ1NzM3LCAwLjUyMzE5OCwgMC44NDI1MjgsIDEuMjQ3NjgsIDEuNjUzMTUsIDIuMDU3ODYsIDIuNDYxOTUiLCBcCi0gICAgICAgICAgIjAuMTU4MDM2LCAwLjUyNzQxNywgMC44NDI5NTMsIDEuMjQ3NjksIDEuNjUyNTMsIDIuMDU4MDcsIDIuNDYxOTMiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDgxODAzLCAwLjM1OTUsIDAuNTgxNTQsIDAuODU4OTg3LCAxLjEzNjQ0LCAxLjQxMzg1LCAxLjY5MDg2IiwgXAotICAgICAgICAgICIwLjA5MDU0LCAwLjM2ODYxNCwgMC41OTA2NDYsIDAuODY4MTY0LCAxLjE0NTQ4LCAxLjQyMjk0LCAxLjcwMDA1IiwgXAotICAgICAgICAgICIwLjEwMDg5NSwgMC4zNzkzNjcsIDAuNjAxNDcyLCAwLjg3OTA1OCwgMS4xNTY0LCAxLjQzMzczLCAxLjcxMTIzIiwgXAotICAgICAgICAgICIwLjExMTM3LCAwLjM5MDA2OCwgMC42MTIyMzMsIDAuODg5ODE2LCAxLjE2NzE3LCAxLjQ0NDU4LCAxLjcyMTcyIiwgXAotICAgICAgICAgICIwLjEyMTcwOCwgMC40MDA2NDEsIDAuNjIyODk4LCAwLjkwMDU4NCwgMS4xNzc5MiwgMS40NTUyOCwgMS43MzI0OSIsIFwKLSAgICAgICAgICAiMC4xMzg1MzUsIDAuNDE3Njk3LCAwLjY0MDA4NiwgMC45MTc2NzUsIDEuMTk1MDcsIDEuNDcyNTksIDEuNzQ5ODIiLCBcCi0gICAgICAgICAgIjAuMTUyNDIxLCAwLjQzMjU2NSwgMC42NTQ5NzYsIDAuOTMyNjI3LCAxLjIxMDEzLCAxLjQ4NzM3LCAxLjc2NDk5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE2MDI1OCwgMC43MDEyMDksIDEuMTM0NzcsIDEuNjc2NDQsIDIuMjE4ODcsIDIuNzY1MTYsIDMuMzAzNDYiLCBcCi0gICAgICAgICAgIjAuMTYwMjYxLCAwLjcwMTI0MSwgMS4xMzQ3NCwgMS42NzY1OSwgMi4yMTg1OCwgMi43NjA5NywgMy4zMDI3OCIsIFwKLSAgICAgICAgICAiMC4xNjEwMDIsIDAuNzAxMjA0LCAxLjEzNDcsIDEuNjc2NSwgMi4yMTg3OSwgMi43NjExNiwgMy4zMDM0NyIsIFwKLSAgICAgICAgICAiMC4xNjM4MjYsIDAuNzAxMjE4LCAxLjEzNDUyLCAxLjY3NjczLCAyLjIxODk3LCAyLjc2MTMyLCAzLjMwMzA5IiwgXAotICAgICAgICAgICIwLjE2NzgzOCwgMC43MDEyMTUsIDEuMTM0NTksIDEuNjc2NTQsIDIuMjE4NjksIDIuNzYxMDYsIDMuMzAzMzgiLCBcCi0gICAgICAgICAgIjAuMTc2NDY2LCAwLjcwMTM4LCAxLjEzNDgyLCAxLjY3NjY0LCAyLjIxODY3LCAyLjc2MTE4LCAzLjMwMzE1IiwgXAotICAgICAgICAgICIwLjE4NTI4NSwgMC43MDI1MywgMS4xMzQ3LCAxLjY3NjQ0LCAyLjIxODgyLCAyLjc2MDgxLCAzLjMxMjQyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIyIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTk2NjUsIDAuMjU4MjI3LCAwLjQxNjUxNywgMC42MTQzNjQsIDAuODEyNzc5LCAxLjAxMjkzLCAxLjIxMzAzIiwgXAotICAgICAgICAgICIwLjA2ODgwOSwgMC4yNjc1MjUsIDAuNDI1ODYxLCAwLjYyNDAzMiwgMC44MjE5NDYsIDEuMDIxNzEsIDEuMjIxNjQiLCBcCi0gICAgICAgICAgIjAuMDgwNDM4LCAwLjI3OTIxLCAwLjQzNzU4MywgMC42MzU0NTksIDAuODMzOTc0LCAxLjAzMzE1LCAxLjIzMzY5IiwgXAotICAgICAgICAgICIwLjA5MTc2LCAwLjI5MDE4OCwgMC40NDg2MjMsIDAuNjQ2Mzc4LCAwLjg0NDQ4NSwgMS4wNDQ3OSwgMS4yNDM4IiwgXAotICAgICAgICAgICIwLjEwMzQ2NSwgMC4zMDE2ODYsIDAuNDYwMTk5LCAwLjY1ODA2MiwgMC44NTYwMjksIDEuMDU1MzYsIDEuMjU1MzUiLCBcCi0gICAgICAgICAgIjAuMTIxNDg0LCAwLjMyMDI4OCwgMC40Nzg3MzEsIDAuNjc2NDQ1LCAwLjg3NDg1NiwgMS4wNzQ2NSwgMS4yNzM4OCIsIFwKLSAgICAgICAgICAiMC4xMzQ4NCwgMC4zMzYzNjEsIDAuNDk0NzMsIDAuNjkyNjU5LCAwLjg5MTE4OCwgMS4wOTAyMywgMS4yOSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTYyOTIsIDAuNTE5NjU4LCAwLjg0NDAwNCwgMS4yNTAxMSwgMS42NTYwNCwgMi4wNjMxMywgMi40NzA0NiIsIFwKLSAgICAgICAgICAiMC4xMTU2NTEsIDAuNTE5NjcxLCAwLjg0NDI4NiwgMS4yNDg5NywgMS42NTc0LCAyLjA2MjkzLCAyLjQ2OTIzIiwgXAotICAgICAgICAgICIwLjExODI0MSwgMC41MTk2MSwgMC44NDQxNzksIDEuMjUxODcsIDEuNjU1NzUsIDIuMDY0MTcsIDIuNDY5MDUiLCBcCi0gICAgICAgICAgIjAuMTIzNjgxLCAwLjUxOTQyMSwgMC44NDMwNjEsIDEuMjQ5ODMsIDEuNjU4NjQsIDIuMDYyMzYsIDIuNDcxMjEiLCBcCi0gICAgICAgICAgIjAuMTMwNTE0LCAwLjUxOTI1NSwgMC44NDI2MjEsIDEuMjQ5MTMsIDEuNjU5NDUsIDIuMDYzODQsIDIuNDcxMTkiLCBcCi0gICAgICAgICAgIjAuMTQzMjY0LCAwLjUyMTUyMSwgMC44NDI0NDUsIDEuMjUxNjcsIDEuNjU2NTMsIDIuMDYzMDMsIDIuNDc0NzgiLCBcCi0gICAgICAgICAgIjAuMTU1NjMyLCAwLjUyNTk4NywgMC44NDMzMSwgMS4yNTE3LCAxLjY1NTY5LCAyLjA2NzUxLCAyLjQ3NDUyIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3NzIwOSwgMC4zNTQ4ODcsIDAuNTc2OTU5LCAwLjg1NDM3NSwgMS4xMzE4OSwgMS40MDkwMywgMS42ODYzIiwgXAotICAgICAgICAgICIwLjA4NTg1LCAwLjM2Mzk1OCwgMC41ODU5ODksIDAuODYzNDA0LCAxLjE0MDc1LCAxLjQxODExLCAxLjY5NTM0IiwgXAotICAgICAgICAgICIwLjA5NjQ2NywgMC4zNzQ3ODgsIDAuNTk2OTE5LCAwLjg3NDM5NCwgMS4xNTE3NSwgMS40MjkxOSwgMS43MDYzMyIsIFwKLSAgICAgICAgICAiMC4xMDc1MDUsIDAuMzg1OTU5LCAwLjYwODAyNSwgMC44ODU2OTMsIDEuMTYzMDMsIDEuNDQwNTYsIDEuNzE3NTgiLCBcCi0gICAgICAgICAgIjAuMTE4MzgsIDAuMzk2Njc3LCAwLjYxODgyLCAwLjg5NjM0LCAxLjE3Mzc3LCAxLjQ1MDk5LCAxLjcyODM1IiwgXAotICAgICAgICAgICIwLjEzNjYxOSwgMC40MTQxOTEsIDAuNjM2Mzk1LCAwLjkxMzkzOSwgMS4xOTEzMSwgMS40Njg4LCAxLjc0NjA2IiwgXAotICAgICAgICAgICIwLjE1MTM2NSwgMC40Mjk0OSwgMC42NTE3MDgsIDAuOTI5MzE3LCAxLjIwNjY5LCAxLjQ4NCwgMS43NjE1MSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNjAyNjcsIDAuNzAxMjEsIDEuMTM0NTYsIDEuNjc2NzksIDIuMjE5MSwgMi43NjExNCwgMy4zMDM0NiIsIFwKLSAgICAgICAgICAiMC4xNjAyMzcsIDAuNzAxMjQzLCAxLjEzNDcyLCAxLjY3NjUzLCAyLjIxODY5LCAyLjc2MDkzLCAzLjMwMjU5IiwgXAotICAgICAgICAgICIwLjE2MTYwOCwgMC43MDEzMzUsIDEuMTM0OCwgMS42NzY1MiwgMi4yMTg4NiwgMi43NjA5NSwgMy4zMDMwNCIsIFwKLSAgICAgICAgICAiMC4xNjU3NTYsIDAuNzAxMjM4LCAxLjEzNDcsIDEuNjc2ODIsIDIuMjE4OTYsIDIuNzYxMSwgMy4zMDMyNiIsIFwKLSAgICAgICAgICAiMC4xNzE4NzYsIDAuNzAxMzM1LCAxLjEzNDczLCAxLjY3NjM5LCAyLjIxODc0LCAyLjc2MTA2LCAzLjMwMzMzIiwgXAotICAgICAgICAgICIwLjE4MzMsIDAuNzAxMzc4LCAxLjEzNDY5LCAxLjY3Njc4LCAyLjIxODY1LCAyLjc2MDk5LCAzLjMxNjUxIiwgXAotICAgICAgICAgICIwLjE5NDYyNCwgMC43MDMyMzcsIDEuMTM0NzIsIDEuNjc2NzYsIDIuMjE4NzYsIDIuNzcwNzEsIDMuMzAzNDMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA5ODU2LCAwLjAwOTg1NSwgMC4wMDk4NTQsIDAuMDA5ODUzLCAwLjAwOTg1NCwgMC4wMDk4NSwgMC4wMDk4NDkiLCBcCi0gICAgICAgICAgIjAuMDA5ODI4LCAwLjAwOTgzNCwgMC4wMDk4MzQsIDAuMDA5ODM0LCAwLjAwOTgzNSwgMC4wMDk4MzEsIDAuMDA5ODMxIiwgXAotICAgICAgICAgICIwLjAwOTgxNSwgMC4wMDk4MjgsIDAuMDA5ODI5LCAwLjAwOTgyOSwgMC4wMDk4MjgsIDAuMDA5ODI4LCAwLjAwOTgyNSIsIFwKLSAgICAgICAgICAiMC4wMDk4MDcsIDAuMDA5ODIyLCAwLjAwOTgyNSwgMC4wMDk4MjYsIDAuMDA5ODI1LCAwLjAwOTgyNCwgMC4wMDk4MjMiLCBcCi0gICAgICAgICAgIjAuMDA5ODAyLCAwLjAwOTgyLCAwLjAwOTgyNCwgMC4wMDk4MjksIDAuMDA5ODIzLCAwLjAwOTgyNiwgMC4wMDk4MjQiLCBcCi0gICAgICAgICAgIjAuMDA5Nzk3LCAwLjAwOTgxNywgMC4wMDk4MjEsIDAuMDA5ODIzLCAwLjAwOTgyMiwgMC4wMDk4MjIsIDAuMDA5ODI0IiwgXAotICAgICAgICAgICIwLjAwOTc5MSwgMC4wMDk4MTYsIDAuMDA5ODE5LCAwLjAwOTgyMywgMC4wMDk4MjMsIDAuMDA5ODIzLCAwLjAwOTgyMyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzIyNCwgMC4wMDMyMjYsIDAuMDAzMjI2LCAwLjAwMzIyNCwgMC4wMDMyMjQsIDAuMDAzMjIyLCAwLjAwMzIyMyIsIFwKLSAgICAgICAgICAiMC4wMDMxNzUsIDAuMDAzMiwgMC4wMDMyMDQsIDAuMDAzMjA1LCAwLjAwMzIwNSwgMC4wMDMyMDUsIDAuMDAzMjA0IiwgXAotICAgICAgICAgICIwLjAwMzEzNywgMC4wMDMxODQsIDAuMDAzMTkyLCAwLjAwMzE5NywgMC4wMDMxOTcsIDAuMDAzMTk4LCAwLjAwMzE5OCIsIFwKLSAgICAgICAgICAiMC4wMDMxMTEsIDAuMDAzMTcyLCAwLjAwMzE4MywgMC4wMDMxODksIDAuMDAzMTkzLCAwLjAwMzE5MywgMC4wMDMxOTUiLCBcCi0gICAgICAgICAgIjAuMDAzMDk0LCAwLjAwMzE2MSwgMC4wMDMxNzUsIDAuMDAzMTgyLCAwLjAwMzE4NywgMC4wMDMxODgsIDAuMDAzMTkiLCBcCi0gICAgICAgICAgIjAuMDAzMDc1LCAwLjAwMzE0NSwgMC4wMDMxNjQsIDAuMDAzMTc0LCAwLjAwMzE4LCAwLjAwMzE4MiwgMC4wMDMxODQiLCBcCi0gICAgICAgICAgIjAuMDAzMDY3LCAwLjAwMzEzNCwgMC4wMDMxNTUsIDAuMDAzMTY3LCAwLjAwMzE3NCwgMC4wMDMxNzgsIDAuMDAzMTgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA5MDIsIDAuMDA5MDIxLCAwLjAwOTAyMSwgMC4wMDkwMjMsIDAuMDA5MDIxLCAwLjAwOTAxOSwgMC4wMDkwMTciLCBcCi0gICAgICAgICAgIjAuMDA4OTk5LCAwLjAwOTAxOCwgMC4wMDkwMTksIDAuMDA5MDIsIDAuMDA5MDIsIDAuMDA5MDE4LCAwLjAwOTAxOSIsIFwKLSAgICAgICAgICAiMC4wMDg5NzcsIDAuMDA5MDA5LCAwLjAwOTAxNCwgMC4wMDkwMTYsIDAuMDA5MDIxLCAwLjAwOTAxNiwgMC4wMDkwMTQiLCBcCi0gICAgICAgICAgIjAuMDA4OTYsIDAuMDA5MDAzLCAwLjAwOTAxLCAwLjAwOTAxMywgMC4wMDkwMTQsIDAuMDA5MDEzLCAwLjAwOTAxMSIsIFwKLSAgICAgICAgICAiMC4wMDg5NDYsIDAuMDA4OTk3LCAwLjAwOTAwNiwgMC4wMDkwMSwgMC4wMDkwMTIsIDAuMDA5MDEzLCAwLjAwOTAxMyIsIFwKLSAgICAgICAgICAiMC4wMDg5MzIsIDAuMDA4OTg4LCAwLjAwODk5OSwgMC4wMDkwMDYsIDAuMDA5MDA4LCAwLjAwOTAwOSwgMC4wMDkwMTIiLCBcCi0gICAgICAgICAgIjAuMDA4OTI1LCAwLjAwODk4MywgMC4wMDg5OTUsIDAuMDA5MDAyLCAwLjAwOTAwNiwgMC4wMDkwMDcsIDAuMDA5MDA5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzMjI0LCAwLjAwMzIyNiwgMC4wMDMyMjUsIDAuMDAzMjI1LCAwLjAwMzIyNSwgMC4wMDMyMjIsIDAuMDAzMjIyIiwgXAotICAgICAgICAgICIwLjAwMzE3NCwgMC4wMDMyLCAwLjAwMzIwNSwgMC4wMDMyMDUsIDAuMDAzMjA3LCAwLjAwMzIwNCwgMC4wMDMyMDgiLCBcCi0gICAgICAgICAgIjAuMDAzMTM3LCAwLjAwMzE4NCwgMC4wMDMxOTIsIDAuMDAzMTk3LCAwLjAwMzE5NywgMC4wMDMxOTYsIDAuMDAzMTk4IiwgXAotICAgICAgICAgICIwLjAwMzExMiwgMC4wMDMxNzIsIDAuMDAzMTgzLCAwLjAwMzE4OSwgMC4wMDMxOTMsIDAuMDAzMTk0LCAwLjAwMzE5NCIsIFwKLSAgICAgICAgICAiMC4wMDMwOTYsIDAuMDAzMTYxLCAwLjAwMzE3NiwgMC4wMDMxODMsIDAuMDAzMTg4LCAwLjAwMzE5LCAwLjAwMzE5MSIsIFwKLSAgICAgICAgICAiMC4wMDMwODIsIDAuMDAzMTQ3LCAwLjAwMzE2NSwgMC4wMDMxNzUsIDAuMDAzMTgsIDAuMDAzMTgzLCAwLjAwMzE4NSIsIFwKLSAgICAgICAgICAiMC4wMDMwODEsIDAuMDAzMTM5LCAwLjAwMzE1OCwgMC4wMDMxNywgMC4wMDMxNzYsIDAuMDAzMTc5LCAwLjAwMzE4MSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEyIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDgxODQsIDAuMDA4MTkyLCAwLjAwODE5MywgMC4wMDgxOTMsIDAuMDA4MTkzLCAwLjAwODE5MSwgMC4wMDgxOTIiLCBcCi0gICAgICAgICAgIjAuMDA4MTcsIDAuMDA4MjA0LCAwLjAwODIwOCwgMC4wMDgyMSwgMC4wMDgyMTQsIDAuMDA4MjExLCAwLjAwODIwOCIsIFwKLSAgICAgICAgICAiMC4wMDgxMzksIDAuMDA4MTk1LCAwLjAwODIwMywgMC4wMDgyMDcsIDAuMDA4MjEzLCAwLjAwODIwOSwgMC4wMDgyMSIsIFwKLSAgICAgICAgICAiMC4wMDgxMSwgMC4wMDgxODYsIDAuMDA4MTk3LCAwLjAwODIwMywgMC4wMDgyMDUsIDAuMDA4MjEyLCAwLjAwODIxIiwgXAotICAgICAgICAgICIwLjAwODA5NSwgMC4wMDgxNzcsIDAuMDA4MTkyLCAwLjAwODIsIDAuMDA4MjAxLCAwLjAwODIwNiwgMC4wMDgyMTEiLCBcCi0gICAgICAgICAgIjAuMDA4MDczLCAwLjAwODE2NCwgMC4wMDgxODIsIDAuMDA4MTkzLCAwLjAwODE5OCwgMC4wMDgyMDEsIDAuMDA4MjAyIiwgXAotICAgICAgICAgICIwLjAwODA2MSwgMC4wMDgxNTUsIDAuMDA4MTc1LCAwLjAwODE4OCwgMC4wMDgxOTYsIDAuMDA4MiwgMC4wMDgyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzMjI2LCAwLjAwMzIyOSwgMC4wMDMyMjksIDAuMDAzMjMsIDAuMDAzMjI4LCAwLjAwMzIyNiwgMC4wMDMyMjMiLCBcCi0gICAgICAgICAgIjAuMDAzMTY5LCAwLjAwMzIwMiwgMC4wMDMyMDYsIDAuMDAzMjA4LCAwLjAwMzIwOCwgMC4wMDMyMDgsIDAuMDAzMjA3IiwgXAotICAgICAgICAgICIwLjAwMzEzNiwgMC4wMDMxODYsIDAuMDAzMTk0LCAwLjAwMzE5OCwgMC4wMDMxOTksIDAuMDAzMjAxLCAwLjAwMzIwMSIsIFwKLSAgICAgICAgICAiMC4wMDMxMTYsIDAuMDAzMTc1LCAwLjAwMzE4NSwgMC4wMDMxOTIsIDAuMDAzMTk2LCAwLjAwMzE5NiwgMC4wMDMxOTkiLCBcCi0gICAgICAgICAgIjAuMDAzMTE0LCAwLjAwMzE2NywgMC4wMDMxOCwgMC4wMDMxODgsIDAuMDAzMTkyLCAwLjAwMzE5NCwgMC4wMDMxOTYiLCBcCi0gICAgICAgICAgIjAuMDAzMTI4LCAwLjAwMzE1OCwgMC4wMDMxNzQsIDAuMDAzMTgzLCAwLjAwMzE4NywgMC4wMDMxODksIDAuMDAzMTkxIiwgXAotICAgICAgICAgICIwLjAwMzE1MiwgMC4wMDMxNjIsIDAuMDAzMTc0LCAwLjAwMzE4MSwgMC4wMDMxODYsIDAuMDAzMTg4LCAwLjAwMzE5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNzI2MiwgMC4wMDcyNjQsIDAuMDA3MjY0LCAwLjAwNzI2MiwgMC4wMDcyNiwgMC4wMDcyNjEsIDAuMDA3MjU5IiwgXAotICAgICAgICAgICIwLjAwNzIyNSwgMC4wMDcyMzgsIDAuMDA3MjQsIDAuMDA3MjQsIDAuMDA3MjM4LCAwLjAwNzI0LCAwLjAwNzIzNiIsIFwKLSAgICAgICAgICAiMC4wMDcyMDcsIDAuMDA3MjI5LCAwLjAwNzIzMywgMC4wMDcyMzMsIDAuMDA3MjM0LCAwLjAwNzIzMywgMC4wMDcyMzQiLCBcCi0gICAgICAgICAgIjAuMDA3MjEsIDAuMDA3MjI3LCAwLjAwNzIzLCAwLjAwNzIzMiwgMC4wMDcyMywgMC4wMDcyMzIsIDAuMDA3MjMxIiwgXAotICAgICAgICAgICIwLjAwNzIxOCwgMC4wMDcyMjcsIDAuMDA3MjMsIDAuMDA3MjMsIDAuMDA3MjMyLCAwLjAwNzIzMiwgMC4wMDcyMjgiLCBcCi0gICAgICAgICAgIjAuMDA3MjM2LCAwLjAwNzIyOCwgMC4wMDcyMywgMC4wMDcyMywgMC4wMDcyMywgMC4wMDcyMjgsIDAuMDA3MjI5IiwgXAotICAgICAgICAgICIwLjAwNzI2NiwgMC4wMDcyMzUsIDAuMDA3MjMzLCAwLjAwNzIzMiwgMC4wMDcyMzEsIDAuMDA3MjMsIDAuMDA3MjMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDEwMDksIDAuMDAxMDI2LCAwLjAwMTAyNywgMC4wMDEwMjgsIDAuMDAxMDI5LCAwLjAwMTAyOSwgMC4wMDEwMjkiLCBcCi0gICAgICAgICAgIjAuMDAwOTgzLCAwLjAwMTA1MSwgMC4wMDEwNTksIDAuMDAxMDY0LCAwLjAwMTA2NiwgMC4wMDEwNjcsIDAuMDAxMDY4IiwgXAotICAgICAgICAgICIwLjAwMDkzMiwgMC4wMDEwNCwgMC4wMDEwNTUsIDAuMDAxMDY0LCAwLjAwMTA2OCwgMC4wMDEwNzEsIDAuMDAxMDczIiwgXAotICAgICAgICAgICIwLjAwMDg5NCwgMC4wMDEwMjUsIDAuMDAxMDQ2LCAwLjAwMTA1OSwgMC4wMDEwNjUsIDAuMDAxMDY5LCAwLjAwMTA3MiIsIFwKLSAgICAgICAgICAiMC4wMDA4NjYsIDAuMDAxMDEsIDAuMDAxMDM3LCAwLjAwMTA1MiwgMC4wMDEwNiwgMC4wMDEwNjUsIDAuMDAxMDY5IiwgXAotICAgICAgICAgICIwLjAwMDgzOCwgMC4wMDA5ODcsIDAuMDAxMDIxLCAwLjAwMTA0MSwgMC4wMDEwNTIsIDAuMDAxMDU5LCAwLjAwMTA2MyIsIFwKLSAgICAgICAgICAiMC4wMDA4MjYsIDAuMDAwOTcxLCAwLjAwMTAwOSwgMC4wMDEwMzIsIDAuMDAxMDQ1LCAwLjAwMTA1MywgMC4wMDEwNTkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2NDQsIDAuMDA2NDQ1LCAwLjAwNjQ0NSwgMC4wMDY0NDMsIDAuMDA2NDQyLCAwLjAwNjQ0MiwgMC4wMDY0NDIiLCBcCi0gICAgICAgICAgIjAuMDA2NDA5LCAwLjAwNjQzNiwgMC4wMDY0NCwgMC4wMDY0NCwgMC4wMDY0MzksIDAuMDA2NDM5LCAwLjAwNjQzOSIsIFwKLSAgICAgICAgICAiMC4wMDYzOTIsIDAuMDA2NDI4LCAwLjAwNjQzMywgMC4wMDY0MzUsIDAuMDA2NDM2LCAwLjAwNjQzNiwgMC4wMDY0MzUiLCBcCi0gICAgICAgICAgIjAuMDA2Mzg5LCAwLjAwNjQyNCwgMC4wMDY0MywgMC4wMDY0MzMsIDAuMDA2NDM0LCAwLjAwNjQzNCwgMC4wMDY0MzQiLCBcCi0gICAgICAgICAgIjAuMDA2MzkxLCAwLjAwNjQyMiwgMC4wMDY0MjgsIDAuMDA2NDMxLCAwLjAwNjQzNCwgMC4wMDY0MzUsIDAuMDA2NDMzIiwgXAotICAgICAgICAgICIwLjAwNjQwMywgMC4wMDY0MiwgMC4wMDY0MjYsIDAuMDA2NDMsIDAuMDA2NDMyLCAwLjAwNjQzMSwgMC4wMDY0MzIiLCBcCi0gICAgICAgICAgIjAuMDA2NDI4LCAwLjAwNjQyMywgMC4wMDY0MjksIDAuMDA2NDMsIDAuMDA2NDMyLCAwLjAwNjQzMywgMC4wMDY0MzEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDEwMDksIDAuMDAxMDI2LCAwLjAwMTAyOCwgMC4wMDEwMjksIDAuMDAxMDI5LCAwLjAwMTAzLCAwLjAwMTAzIiwgXAotICAgICAgICAgICIwLjAwMDk4MywgMC4wMDEwNTEsIDAuMDAxMDU5LCAwLjAwMTA2NCwgMC4wMDEwNjYsIDAuMDAxMDY4LCAwLjAwMTA2OSIsIFwKLSAgICAgICAgICAiMC4wMDA5MzMsIDAuMDAxMDQsIDAuMDAxMDU2LCAwLjAwMTA2NSwgMC4wMDEwNjksIDAuMDAxMDcyLCAwLjAwMTA3NCIsIFwKLSAgICAgICAgICAiMC4wMDA4OTYsIDAuMDAxMDI1LCAwLjAwMTA0NywgMC4wMDEwNTksIDAuMDAxMDY1LCAwLjAwMTA2OSwgMC4wMDEwNzIiLCBcCi0gICAgICAgICAgIjAuMDAwODcxLCAwLjAwMTAxMSwgMC4wMDEwMzgsIDAuMDAxMDUzLCAwLjAwMTA2MSwgMC4wMDEwNjYsIDAuMDAxMDY5IiwgXAotICAgICAgICAgICIwLjAwMDg0OSwgMC4wMDA5OSwgMC4wMDEwMjMsIDAuMDAxMDQyLCAwLjAwMTA1MywgMC4wMDEwNiwgMC4wMDEwNjQiLCBcCi0gICAgICAgICAgIjAuMDAwODQ1LCAwLjAwMDk3NiwgMC4wMDEwMTIsIDAuMDAxMDM0LCAwLjAwMTA0NywgMC4wMDEwNTUsIDAuMDAxMDYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1NTg0LCAwLjAwNTU5NSwgMC4wMDU1OTYsIDAuMDA1NTk2LCAwLjAwNTU5NiwgMC4wMDU1OTUsIDAuMDA1NTk1IiwgXAotICAgICAgICAgICIwLjAwNTU1OSwgMC4wMDU2MDQsIDAuMDA1NjEsIDAuMDA1NjEyLCAwLjAwNTYxMywgMC4wMDU2MTIsIDAuMDA1NjE0IiwgXAotICAgICAgICAgICIwLjAwNTUzMSwgMC4wMDU1OTQsIDAuMDA1NjA0LCAwLjAwNTYwOSwgMC4wMDU2MSwgMC4wMDU2MTEsIDAuMDA1NjExIiwgXAotICAgICAgICAgICIwLjAwNTUyMiwgMC4wMDU1ODcsIDAuMDA1NTk5LCAwLjAwNTYwNiwgMC4wMDU2MDgsIDAuMDA1NjEsIDAuMDA1NjExIiwgXAotICAgICAgICAgICIwLjAwNTUxNywgMC4wMDU1ODIsIDAuMDA1NTk1LCAwLjAwNTYwMiwgMC4wMDU2MDYsIDAuMDA1NjA4LCAwLjAwNTYwOSIsIFwKLSAgICAgICAgICAiMC4wMDU1MjMsIDAuMDA1NTc0LCAwLjAwNTU4OSwgMC4wMDU1OTgsIDAuMDA1NjAyLCAwLjAwNTYwNSwgMC4wMDU2MDciLCBcCi0gICAgICAgICAgIjAuMDA1NTQ3LCAwLjAwNTU3NCwgMC4wMDU1ODgsIDAuMDA1NTk3LCAwLjAwNTYwMSwgMC4wMDU2MDMsIDAuMDA1NjA1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxMDAyLCAwLjAwMTAyMSwgMC4wMDEwMjMsIDAuMDAxMDI0LCAwLjAwMTAyNSwgMC4wMDEwMjUsIDAuMDAxMDI2IiwgXAotICAgICAgICAgICIwLjAwMDk3MywgMC4wMDEwNDYsIDAuMDAxMDU1LCAwLjAwMTA2LCAwLjAwMTA2MywgMC4wMDEwNjQsIDAuMDAxMDY1IiwgXAotICAgICAgICAgICIwLjAwMDkzNCwgMC4wMDEwMzcsIDAuMDAxMDUzLCAwLjAwMTA2MSwgMC4wMDEwNjYsIDAuMDAxMDY5LCAwLjAwMTA3IiwgXAotICAgICAgICAgICIwLjAwMDkwMywgMC4wMDEwMjMsIDAuMDAxMDQ1LCAwLjAwMTA1NywgMC4wMDEwNjMsIDAuMDAxMDY3LCAwLjAwMTA3IiwgXAotICAgICAgICAgICIwLjAwMDkwMSwgMC4wMDEwMTUsIDAuMDAxMDM5LCAwLjAwMTA1MywgMC4wMDEwNiwgMC4wMDEwNjUsIDAuMDAxMDY4IiwgXAotICAgICAgICAgICIwLjAwMDkyLCAwLjAwMTAwNSwgMC4wMDEwMzEsIDAuMDAxMDQ3LCAwLjAwMTA1NiwgMC4wMDEwNjEsIDAuMDAxMDY1IiwgXAotICAgICAgICAgICIwLjAwMDk0NywgMC4wMDEwMDEsIDAuMDAxMDI3LCAwLjAwMTA0MywgMC4wMDEwNTMsIDAuMDAxMDU5LCAwLjAwMTA2MyIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IEFPSTMzWDQgKgotICogLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoQU9JMzNYNCkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjgzNzI3OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAzNTE3MjU7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAzNTA1Nzg7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAzNTE3MjU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxNjM3LCAwLjAwMTYzNiwgMC4wMDE2MzUsIDAuMDAxNjM1LCAwLjAwMTYzNSwgMC4wMDE2MzUsIDAuMDAxNjM0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxNjM4LCAwLjAwMTYzOSwgMC4wMDE2NDEsIDAuMDAxNjQsIDAuMDAxNjQsIDAuMDAxNjQsIDAuMDAxNjQiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEExKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDM1MTAwOTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDM0OTYxMzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDM1MTAwOTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDE2MzcsIDAuMDAxNjM1LCAwLjAwMTYzNSwgMC4wMDE2MzYsIDAuMDAxNjM0LCAwLjAwMTYzNCwgMC4wMDE2MzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDE2MzksIDAuMDAxNjQsIDAuMDAxNjQsIDAuMDAxNjQxLCAwLjAwMTY0MSwgMC4wMDE2NDIsIDAuMDAxNjQyIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihBMikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAzMjkyMjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDMyNjc4NDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDMyOTIyOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTA4NSwgMC4wMDEwODIsIDAuMDAxMDgyLCAwLjAwMTA4MiwgMC4wMDEwODMsIDAuMDAxMDgyLCAwLjAwMTA4MiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTg1NiwgMC4wMDE4NTgsIDAuMDAxODY0LCAwLjAwMTg1OSwgMC4wMDE4NTgsIDAuMDAxODU4LCAwLjAwMTg1OCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQjApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMzU0ODgzOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMzU0ODgzOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMzUzNzY1OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTYzNywgMC4wMDE2MzcsIDAuMDAxNjM2LCAwLjAwMTYzNiwgMC4wMDE2MzYsIDAuMDAxNjM2LCAwLjAwMTYzNSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTYzOCwgMC4wMDE2MzksIDAuMDAxNjQsIDAuMDAxNjM5LCAwLjAwMTYzOSwgMC4wMDE2MzksIDAuMDAxNjQiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIxKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDM1MjY1NzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDM1MjY1NzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDM1MTc5NDsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDE2MzgsIDAuMDAxNjM3LCAwLjAwMTYzNiwgMC4wMDE2MzYsIDAuMDAxNjM2LCAwLjAwMTYzNSwgMC4wMDE2MzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDE2MzgsIDAuMDAxNjM5LCAwLjAwMTYzOSwgMC4wMDE2NCwgMC4wMDE2NCwgMC4wMDE2NCwgMC4wMDE2NCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQjIpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMzI3MTgxOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMzI2OTYxOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMzI3MTgxOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTA2MiwgMC4wMDEwNjEsIDAuMDAxMDYxLCAwLjAwMTA2LCAwLjAwMTA2MSwgMC4wMDEwNiwgMC4wMDEwNiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTg1NiwgMC4wMDE4NTcsIDAuMDAxODU3LCAwLjAwMTg1OCwgMC4wMDE4NTgsIDAuMDAxODU4LCAwLjAwMTg1OCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjQwMjYzNzsKLSAgICBmdW5jdGlvbiA6ICIoISgoKEIwIEIxKSBCMikrKChBMCBBMSkgQTIpKSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1ODM0MiwgMC4xOTgyMzYsIDAuMzM2NzgxLCAwLjQzNTkyOCwgMC41OTQ0NjYsIDAuNzMyNTg1LCAwLjkzMDUyNSIsIFwKLSAgICAgICAgICAiMC4wNjgxNjgsIDAuMjA4MTUzLCAwLjM0Njg3NywgMC40NDYwOCwgMC42MDQyNzYsIDAuNzQyNzQyLCAwLjk0MDgxOSIsIFwKLSAgICAgICAgICAiMC4wNzkyNjQsIDAuMjE5Mjg1LCAwLjM1ODA4MiwgMC40NTcwMTYsIDAuNjE1NDkxLCAwLjc1MzkyLCAwLjk1MTcyOSIsIFwKLSAgICAgICAgICAiMC4wODk0NzIsIDAuMjI5NTI5LCAwLjM2ODIzNiwgMC40NjcyNjEsIDAuNjI1NDg4LCAwLjc2NDAwOCwgMC45NjE3ODUiLCBcCi0gICAgICAgICAgIjAuMDk5NTEyLCAwLjIzOTcwNywgMC4zNzg1NzQsIDAuNDc3Njc5LCAwLjYzNjAzNSwgMC43NzQyMjMsIDAuOTcxOTY2IiwgXAotICAgICAgICAgICIwLjExMzk0NCwgMC4yNTU3MTMsIDAuMzk0NTU5LCAwLjQ5MzU2MywgMC42NTE4ODUsIDAuNzkwMzQ0LCAwLjk4ODIyNiIsIFwKLSAgICAgICAgICAiMC4xMjUwNzksIDAuMjY5NTQzLCAwLjQwODQyNSwgMC41MDc0ODcsIDAuNjY2MjE1LCAwLjgwNDYwMSwgMS4wMDIwNSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4MjU3NiwgMC4zNjQzMDgsIDAuNjQ1MzU2LCAwLjg0NjE3OCwgMS4xNjc5MywgMS40NDkzMiwgMS44NTI5MyIsIFwKLSAgICAgICAgICAiMC4wODI2MDMsIDAuMzY0MzcsIDAuNjQ1NDI5LCAwLjg0NjM1MSwgMS4xNjgwNiwgMS40NDkyMywgMS44NTMxNyIsIFwKLSAgICAgICAgICAiMC4wODMyNDUsIDAuMzY0MDE0LCAwLjY0NTUyLCAwLjg0NjM0NiwgMS4xNjc4OCwgMS40NDkzOSwgMS44NTI5MSIsIFwKLSAgICAgICAgICAiMC4wODU1OTQsIDAuMzY0MTk1LCAwLjY0NTIzOCwgMC44NDYyMzEsIDEuMTY3NTEsIDEuNDQ4OTQsIDEuODUzMSIsIFwKLSAgICAgICAgICAiMC4wODg5NTUsIDAuMzY0NjE5LCAwLjY0NTUyMiwgMC44NDY0NzEsIDEuMTY4MDEsIDEuNDQ4OTEsIDEuODUyNTgiLCBcCi0gICAgICAgICAgIjAuMDk2MDgzLCAwLjM2NjkwOCwgMC42NDU1NCwgMC44NDYyMTMsIDEuMTY4MDgsIDEuNDQ5MDIsIDEuODUzMjciLCBcCi0gICAgICAgICAgIjAuMTAzNTAyLCAwLjM3MDQ0OCwgMC42NDY2ODIsIDAuODQ2MzY4LCAxLjE2Nzg1LCAxLjQ0OTE0LCAxLjg1Mjk0Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDgyNzY4LCAwLjI4MDAxNSwgMC40NzU3MTYsIDAuNjE1MjcxLCAwLjgzODYzNSwgMS4wMzM3MiwgMS4zMTM0NSIsIFwKLSAgICAgICAgICAiMC4wOTA5MTcsIDAuMjg4NDE3LCAwLjQ4NDEyMywgMC42MjM3MDMsIDAuODQ2ODI2LCAxLjA0MjE4LCAxLjMyMTIyIiwgXAotICAgICAgICAgICIwLjEwMDAwMywgMC4yOTc3MjIsIDAuNDkzNDg4LCAwLjYzMzIwNCwgMC44NTYzMSwgMS4wNTE2OSwgMS4zMzA0NiIsIFwKLSAgICAgICAgICAiMC4xMDg5NDYsIDAuMzA2NzY4LCAwLjUwMjUxMSwgMC42NDIxNjYsIDAuODY1NDYsIDEuMDYwOSwgMS4zMzk3NSIsIFwKLSAgICAgICAgICAiMC4xMTc5NTQsIDAuMzE1NzgsIDAuNTExNjExLCAwLjY1MTQwMiwgMC44NzUxNjIsIDEuMDcwMzQsIDEuMzQ5NDkiLCBcCi0gICAgICAgICAgIjAuMTMyMDM1LCAwLjMzMDExNiwgMC41MjU5ODMsIDAuNjY1Njk1LCAwLjg4OTI2OSwgMS4wODQ0NCwgMS4zNjMzMiIsIFwKLSAgICAgICAgICAiMC4xNDM2MjgsIDAuMzQyNjIxLCAwLjUzODU4MiwgMC42NzgzMjgsIDAuOTAxNzAzLCAxLjA5NzA4LCAxLjM3NTk0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTMwNDY5LCAwLjUxMTkwNCwgMC44OTM4MzIsIDEuMTY2NzksIDEuNjAzNDYsIDEuOTg1MjgsIDIuNTMxIiwgXAotICAgICAgICAgICIwLjEzMDQzNiwgMC41MTE4NywgMC44OTM5MTgsIDEuMTY2NjEsIDEuNjAzMjIsIDEuOTg1MywgMi41MzA0MiIsIFwKLSAgICAgICAgICAiMC4xMzEwMSwgMC41MTE4NTcsIDAuODkzNzI1LCAxLjE2NjU3LCAxLjYwMzM4LCAxLjk4NTE5LCAyLjUzMDUiLCBcCi0gICAgICAgICAgIjAuMTMyNzg4LCAwLjUxMTg2OSwgMC44OTM5MzYsIDEuMTY2NTksIDEuNjAzMjQsIDEuOTg1MTgsIDIuNTMwNzEiLCBcCi0gICAgICAgICAgIjAuMTM1NTk2LCAwLjUxMTg4MiwgMC44OTM3NDgsIDEuMTY2OCwgMS42MDMzNywgMS45ODUyOSwgMi41MzA3NCIsIFwKLSAgICAgICAgICAiMC4xNDE0MjksIDAuNTEzMDg0LCAwLjg5MzkzNSwgMS4xNjY4MywgMS42MDMzMSwgMS45ODUxNiwgMi41MzA4NCIsIFwKLSAgICAgICAgICAiMC4xNDc2MDcsIDAuNTE1MTU3LCAwLjg5Mzk0OCwgMS4xNjY3NSwgMS42MDMzNSwgMS45ODUzNywgMi41MzA4OSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTU2NDksIDAuMTk1MDgzLCAwLjMzMzY2NCwgMC40MzI3NSwgMC41OTA5NzgsIDAuNzI4NjM3LCAwLjkyNzIwMiIsIFwKLSAgICAgICAgICAiMC4wNjU0OSwgMC4yMDUwNTYsIDAuMzQzNzc1LCAwLjQ0MjQ0OSwgMC42MDA5MzQsIDAuNzM5NDIyLCAwLjkzNzMyOSIsIFwKLSAgICAgICAgICAiMC4wNzY0MjMsIDAuMjE2MTI4LCAwLjM1NDc0MSwgMC40NTM3NzksIDAuNjEyMTgzLCAwLjc1MDMyOCwgMC45NDg1NDQiLCBcCi0gICAgICAgICAgIjAuMDg2NzQ3LCAwLjIyNjQ0OSwgMC4zNjUwNzYsIDAuNDY0MjA0LCAwLjYyMjYsIDAuNzYwNjI4LCAwLjk1ODYyNCIsIFwKLSAgICAgICAgICAiMC4wOTY3NiwgMC4yMzY3MjIsIDAuMzc1NDkxLCAwLjQ3NDQxLCAwLjYzMjg0NiwgMC43NzEzMjksIDAuOTY4NjM4IiwgXAotICAgICAgICAgICIwLjExMDc2NiwgMC4yNTI2MzcsIDAuMzkxNDksIDAuNDkwMzg2LCAwLjY0ODY5MywgMC43ODcwOTYsIDAuOTg0ODI0IiwgXAotICAgICAgICAgICIwLjEyMTcyMywgMC4yNjY1MjUsIDAuNDA1MzI3LCAwLjUwNDUwOCwgMC42NjI4NywgMC44MDExMDQsIDAuOTk4OTQxIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc5MTc4LCAwLjM2MDM0MywgMC42NDE1NDQsIDAuODQyNjUsIDEuMTY0MTYsIDEuNDQ0MjIsIDEuODQ1NTciLCBcCi0gICAgICAgICAgIjAuMDc5MTUyLCAwLjM2MDM5NSwgMC42NDE4OTcsIDAuODQyNTk5LCAxLjE2Mzk4LCAxLjQ0NTE0LCAxLjg0Njc4IiwgXAotICAgICAgICAgICIwLjA4MDAxOSwgMC4zNjA0ODQsIDAuNjQxNzA4LCAwLjg0MjY0NCwgMS4xNjM5NywgMS40NDUzNCwgMS44NDY4OCIsIFwKLSAgICAgICAgICAiMC4wODIzOTIsIDAuMzYwNDE0LCAwLjY0MTg2MiwgMC44NDI2NTEsIDEuMTYzOTcsIDEuNDQ1NDQsIDEuODQ2ODUiLCBcCi0gICAgICAgICAgIjAuMDg1ODIsIDAuMzYxMDA3LCAwLjY0MTczMywgMC44NDI3MDYsIDEuMTYzOTcsIDEuNDQ1MTgsIDEuODQ2MzIiLCBcCi0gICAgICAgICAgIjAuMDkzMjg5LCAwLjM2MzQwOCwgMC42NDE4MTQsIDAuODQyNzAxLCAxLjE2NDA3LCAxLjQ0NDY2LCAxLjg0NjQzIiwgXAotICAgICAgICAgICIwLjEwMDU0NiwgMC4zNjY4MzQsIDAuNjQzMDU0LCAwLjg0MjgxOCwgMS4xNjM5NCwgMS40NDUzMiwgMS44NDY3MyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4MDI5OSwgMC4yNzc3MDMsIDAuNDczNDYsIDAuNjEzMTIxLCAwLjgzNjU4MiwgMS4wMzEzNSwgMS4zMTEwNiIsIFwKLSAgICAgICAgICAiMC4wODg2OTMsIDAuMjg2MjksIDAuNDgyMDE0LCAwLjYyMTg3NywgMC44NDQ5MzMsIDEuMDQwNTMsIDEuMzE5MDMiLCBcCi0gICAgICAgICAgIjAuMDk5MjI1LCAwLjI5NzA1NiwgMC40OTI4ODYsIDAuNjMyMzgxLCAwLjg1NTk0NSwgMS4wNTA4MiwgMS4zMzA2NiIsIFwKLSAgICAgICAgICAiMC4xMDk3NCwgMC4zMDc2NzgsIDAuNTAzNDc4LCAwLjY0MzA0OSwgMC44NjY3NDcsIDEuMDYyMTYsIDEuMzQxMjkiLCBcCi0gICAgICAgICAgIjAuMTIwNDIxLCAwLjMxODI0MywgMC41MTQxNjksIDAuNjUzOTAxLCAwLjg3NzI1NCwgMS4wNzI0OCwgMS4zNTE5MSIsIFwKLSAgICAgICAgICAiMC4xMzcxOTMsIDAuMzM1MzExLCAwLjUzMTMyMywgMC42NzA4ODUsIDAuODk0NTE4LCAxLjA4OTg5LCAxLjM2ODQ4IiwgXAotICAgICAgICAgICIwLjE1MDg0NiwgMC4zNTA1NTEsIDAuNTQ1OTEsIDAuNjg2MjI3LCAwLjkwOTY2OSwgMS4xMDQ5NywgMS4zODM3OSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEzMDQ3MSwgMC41MTE4MTYsIDAuODkzODk2LCAxLjE2Njc3LCAxLjYwMzQyLCAxLjk4NTI1LCAyLjUzMDc3IiwgXAotICAgICAgICAgICIwLjEzMDQxNSwgMC41MTE4OTEsIDAuODkzNzc1LCAxLjE2NjU4LCAxLjYwMzM1LCAxLjk4NTIsIDIuNTMwNSIsIFwKLSAgICAgICAgICAiMC4xMzEzMzYsIDAuNTExODM1LCAwLjg5MzY5OSwgMS4xNjY4MywgMS42MDM0NSwgMS45ODUxNiwgMi41MzA3IiwgXAotICAgICAgICAgICIwLjEzNDIxMywgMC41MTE4NjcsIDAuODkzNzM3LCAxLjE2Njc2LCAxLjYwMzQxLCAxLjk4NTMzLCAyLjUzMDMxIiwgXAotICAgICAgICAgICIwLjEzODM5NiwgMC41MTE5MTMsIDAuODkzOTQyLCAxLjE2NjgsIDEuNjAzMjksIDEuOTg1MTcsIDIuNTMwNjYiLCBcCi0gICAgICAgICAgIjAuMTQ3MDY2LCAwLjUxMzIyNSwgMC44OTM3NDUsIDEuMTY2NTUsIDEuNjAzNDIsIDEuOTg1MSwgMi41MzA4NiIsIFwKLSAgICAgICAgICAiMC4xNTU1NzgsIDAuNTE2MzIxLCAwLjg5MzgyNywgMS4xNjY1NSwgMS42MDMzNSwgMS45ODUyOCwgMi41MzA4NiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTMzMzMsIDAuMTk0MzU5LCAwLjMzNDQyLCAwLjQzNDYwMSwgMC41OTUwNjcsIDAuNzM1MzI5LCAwLjkzNTMwOSIsIFwKLSAgICAgICAgICAiMC4wNjMxODMsIDAuMjA0Mzk2LCAwLjM0NDcxNCwgMC40NDUwNjMsIDAuNjA1MDk1LCAwLjc0NTM2MSwgMC45NDUxOCIsIFwKLSAgICAgICAgICAiMC4wNzQxNzQsIDAuMjE1NTcyLCAwLjM1NTg0NywgMC40NTU5OTksIDAuNjE2MjIxLCAwLjc1NjQ3MiwgMC45NTY2MTciLCBcCi0gICAgICAgICAgIjAuMDg0Mjk5LCAwLjIyNTc2NCwgMC4zNjYyMTQsIDAuNDY2MjIzLCAwLjYyNjUyMywgMC43NjY2MjMsIDAuOTY3MjgyIiwgXAotICAgICAgICAgICIwLjA5NDA4MSwgMC4yMzU5MDIsIDAuMzc2MzM2LCAwLjQ3NjU5NywgMC42MzY3ODUsIDAuNzc2NzU1LCAwLjk3Njk0NiIsIFwKLSAgICAgICAgICAiMC4xMDc4NjQsIDAuMjUxODI0LCAwLjM5MjMyNSwgMC40OTI0MTUsIDAuNjUyNzM3LCAwLjc5MzIzLCAwLjk5Mzc4MiIsIFwKLSAgICAgICAgICAiMC4xMTgzOTQsIDAuMjY1NjMxLCAwLjQwNjIwNiwgMC41MDY0MDUsIDAuNjY2OTM3LCAwLjgwNjc1NSwgMS4wMDcwOSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3Njc2NywgMC4zNjEyODEsIDAuNjQ1ODQ0LCAwLjg0ODc5NSwgMS4xNzQzNCwgMS40NTkxMSwgMS44NjU2NSIsIFwKLSAgICAgICAgICAiMC4wNzY4MzgsIDAuMzYxMjQ5LCAwLjY0NTk5MSwgMC44NDkwNzEsIDEuMTc0NSwgMS40NTg5MywgMS44NjcyMyIsIFwKLSAgICAgICAgICAiMC4wNzc2MzUsIDAuMzYxMzAyLCAwLjY0NTc5MiwgMC44NDkwNzIsIDEuMTc0NCwgMS40NTkzMiwgMS44NjU2NCIsIFwKLSAgICAgICAgICAiMC4wODAyMzEsIDAuMzYxMjU2LCAwLjY0NTg4NCwgMC44NDg5MTIsIDEuMTc0NTMsIDEuNDU5MiwgMS44NjU0NSIsIFwKLSAgICAgICAgICAiMC4wODM3OTMsIDAuMzYxNzA1LCAwLjY0NTg1OCwgMC44NDkxMDUsIDEuMTc0NSwgMS40NTg3NiwgMS44NjUzOSIsIFwKLSAgICAgICAgICAiMC4wOTE0NjQsIDAuMzY0MjIsIDAuNjQ2MDE3LCAwLjg0OTIzNSwgMS4xNzQ3LCAxLjQ1ODc5LCAxLjg2NTUxIiwgXAotICAgICAgICAgICIwLjA5ODk4NywgMC4zNjc4NywgMC42NDcxMzksIDAuODQ5MDkxLCAxLjE3NDMyLCAxLjQ1ODU1LCAxLjg2NjcxIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc1NzgxLCAwLjI3MzM2OCwgMC40NjkxNTQsIDAuNjA4NzkzLCAwLjgzMTY4NSwgMS4wMjc3LCAxLjMwNjIzIiwgXAotICAgICAgICAgICIwLjA4NDMzNiwgMC4yODE4NiwgMC40Nzc1NTMsIDAuNjE3MTEyLCAwLjg0MDMxNSwgMS4wMzU3MywgMS4zMTQ0MyIsIFwKLSAgICAgICAgICAiMC4wOTQ5NzEsIDAuMjkyNjMzLCAwLjQ4ODMwNiwgMC42Mjc5NTksIDAuODUxMjE1LCAxLjA0NjY1LCAxLjMyNTIzIiwgXAotICAgICAgICAgICIwLjEwNjEzMiwgMC4zMDM4NjQsIDAuNDk5NjU4LCAwLjYzOTEyMSwgMC44NjI4MzMsIDEuMDU3NzgsIDEuMzM3MSIsIFwKLSAgICAgICAgICAiMC4xMTcwNTksIDAuMzE0MDc2LCAwLjUxMDI0MywgMC42NTAxNjcsIDAuODczMTk0LCAxLjA2ODc2LCAxLjM0NzQxIiwgXAotICAgICAgICAgICIwLjEzNTAzNiwgMC4zMzE5NDksIDAuNTI3ODc0LCAwLjY2NzUwMiwgMC44OTA3NTksIDEuMDg2MDksIDEuMzY0OTkiLCBcCi0gICAgICAgICAgIjAuMTUwMjI3LCAwLjM0NzQzOCwgMC41NDI1NTgsIDAuNjgyODM5LCAwLjkwNjE3MywgMS4xMDEzNCwgMS4zODA0MSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEzMDUyLCAwLjUxMTgzOCwgMC44OTM3NzYsIDEuMTY2NTIsIDEuNjAzNCwgMS45ODUyOSwgMi41MzA5OSIsIFwKLSAgICAgICAgICAiMC4xMzAzMTUsIDAuNTExODYzLCAwLjg5MzkxNSwgMS4xNjY1MiwgMS42MDMyOSwgMS45ODUwNywgMi41MzA4NSIsIFwKLSAgICAgICAgICAiMC4xMzE4NDgsIDAuNTExODE4LCAwLjg5Mzc5NCwgMS4xNjY1OSwgMS42MDMyNywgMS45ODUzLCAyLjUzMDQ2IiwgXAotICAgICAgICAgICIwLjEzNjIxMSwgMC41MTE4MzYsIDAuODkzNzM1LCAxLjE2NjU5LCAxLjYwMzQzLCAxLjk4NTE5LCAyLjUzMDUzIiwgXAotICAgICAgICAgICIwLjE0MjUxMSwgMC41MTE4NjYsIDAuODkzNzIyLCAxLjE2NjU2LCAxLjYwMzI1LCAxLjk4NTMxLCAyLjUzMDc5IiwgXAotICAgICAgICAgICIwLjE1Mzk2NCwgMC41MTM4NTEsIDAuODkzODk5LCAxLjE2Njg0LCAxLjYwMzM3LCAxLjk4NTE4LCAyLjUzMDg0IiwgXAotICAgICAgICAgICIwLjE2NTMwNSwgMC41MTc3OTksIDAuODkzODIzLCAxLjE2NjU5LCAxLjYwMzQsIDEuOTg1MzIsIDIuNTMwODMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjAiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQ1MjI0LCAwLjE4NTE5MywgMC4zMjM4OTksIDAuNDIyODAxLCAwLjU4MTI1NywgMC43MjEyODIsIDAuOTIxNDM4IiwgXAotICAgICAgICAgICIwLjA1NDMxNywgMC4xOTQzNzQsIDAuMzMzMDgyLCAwLjQzMjA3NSwgMC41OTAzMjQsIDAuNzMwNTgsIDAuOTMwMzg2IiwgXAotICAgICAgICAgICIwLjA2NTcxOCwgMC4yMDU2OTQsIDAuMzQ0NTAzLCAwLjQ0MzI1MiwgMC42MDE3MjcsIDAuNzQxNTg0LCAwLjk0MjMzIiwgXAotICAgICAgICAgICIwLjA3NzU3OSwgMC4yMTc0NiwgMC4zNTYyNTQsIDAuNDU1MzQxLCAwLjYxMzcxOSwgMC43NTI5MjgsIDAuOTU0MTMiLCBcCi0gICAgICAgICAgIjAuMDg4OTQzLCAwLjIyODYwOSwgMC4zNjczNzMsIDAuNDY2MzkyLCAwLjYyNDkyNywgMC43NjQ3OTcsIDAuOTY0ODYyIiwgXAotICAgICAgICAgICIwLjEwNDUyMSwgMC4yNDcyMzgsIDAuMzg1OTM0LCAwLjQ4NDk1NCwgMC42NDMyMDksIDAuNzgzMjIxLCAwLjk4MzE4MSIsIFwKLSAgICAgICAgICAiMC4xMTY1MzcsIDAuMjYzNDE5LCAwLjQwMjE0NiwgMC41MDEwMjgsIDAuNjU5NDUxLCAwLjc5OTI4OCwgMC45OTk0ODIiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODIxNTQsIDAuMzY0MTQ1LCAwLjY0NjA5OSwgMC44NDkyOTksIDEuMTc0NjEsIDEuNDU5MDIsIDEuODY2MDUiLCBcCi0gICAgICAgICAgIjAuMDgxODU2LCAwLjM2NDA4MiwgMC42NDU4MjIsIDAuODQ5MDg1LCAxLjE3NDA3LCAxLjQ1OTI5LCAxLjg2NTM3IiwgXAotICAgICAgICAgICIwLjA4NTg4NiwgMC4zNjQwMTQsIDAuNjQ1ODQ2LCAwLjg0ODgyNiwgMS4xNzQyMSwgMS40NTkyMiwgMS44NjU1NSIsIFwKLSAgICAgICAgICAiMC4wOTIxODksIDAuMzYzOTk4LCAwLjY0NTk4OSwgMC44NDkxODMsIDEuMTc0NjUsIDEuNDU4NTksIDEuODY1NDciLCBcCi0gICAgICAgICAgIjAuMTAwMTIyLCAwLjM2NTYyMywgMC42NDU4MjIsIDAuODQ5MTczLCAxLjE3NDIzLCAxLjQ1ODgxLCAxLjg2NTU0IiwgXAotICAgICAgICAgICIwLjExMzU5MiwgMC4zNzA1NjYsIDAuNjQ2MDcxLCAwLjg0OTAwOSwgMS4xNzQ2NiwgMS40NTg5OCwgMS44NjUzMSIsIFwKLSAgICAgICAgICAiMC4xMjU2LCAwLjM3NzQyNiwgMC42NDg5OTIsIDAuODQ5MDczLCAxLjE3NDU5LCAxLjQ1ODk0LCAxLjg2NTk1Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU2NTczLCAwLjI1MjM4OSwgMC40NDc5OTEsIDAuNTg3NjczLCAwLjgxMTEyOCwgMS4wMDY1OCwgMS4yODU4NCIsIFwKLSAgICAgICAgICAiMC4wNjQ4NzksIDAuMjYxMjE0LCAwLjQ1Njg4MiwgMC41OTY2MDYsIDAuODE5OTk5LCAxLjAxNTQ5LCAxLjI5NDYiLCBcCi0gICAgICAgICAgIjAuMDczODE3LCAwLjI3MDUxLCAwLjQ2NjI3OCwgMC42MDYwMDIsIDAuODI5NDkxLCAxLjAyNDkyLCAxLjMwNDIiLCBcCi0gICAgICAgICAgIjAuMDgyNjYyLCAwLjI3OTQ5OSwgMC40NzUzNTksIDAuNjE1MTI0LCAwLjgzODU4NSwgMS4wMzQwMSwgMS4zMTMzNiIsIFwKLSAgICAgICAgICAiMC4wOTExODUsIDAuMjg4NDQ2LCAwLjQ4NDM0MywgMC42MjQwOTUsIDAuODQ3NjExLCAxLjA0MzE1LCAxLjMyMjI5IiwgXAotICAgICAgICAgICIwLjEwMzg0OSwgMC4zMDI3NzksIDAuNDk4Nzk4LCAwLjYzODY1MSwgMC44NjIxMzksIDEuMDU3NzcsIDEuMzM3MDEiLCBcCi0gICAgICAgICAgIjAuMTEzNTE3LCAwLjMxNTE4MywgMC41MTEyNTQsIDAuNjUxMDg1LCAwLjg3NDcyMywgMS4wNzAyOSwgMS4zNDk1OCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwNjY2NSwgMC40ODc0MTgsIDAuODY4OTQyLCAxLjE0MTY4LCAxLjU3ODQsIDEuOTYwMjUsIDIuNTA2MzkiLCBcCi0gICAgICAgICAgIjAuMTA2NjczLCAwLjQ4NzQ4MiwgMC44Njg5OTEsIDEuMTQxNzcsIDEuNTc3OTgsIDEuOTYwMzUsIDIuNTA1OSIsIFwKLSAgICAgICAgICAiMC4xMDc4ODMsIDAuNDg3NDYsIDAuODY5MTIyLCAxLjE0MTY0LCAxLjU3ODAzLCAxLjk2MDIyLCAyLjUwNjMzIiwgXAotICAgICAgICAgICIwLjExMDUyOSwgMC40ODc0MTIsIDAuODY4OTk4LCAxLjE0MTY4LCAxLjU3ODI2LCAxLjk1OTk1LCAyLjUwNTk0IiwgXAotICAgICAgICAgICIwLjExNDE1MiwgMC40ODc2NDYsIDAuODY4OTg1LCAxLjE0MTYyLCAxLjU3OCwgMS45NjA0NiwgMi41MDYwNiIsIFwKLSAgICAgICAgICAiMC4xMjE1NDQsIDAuNDg5MTIsIDAuODY5MDk2LCAxLjE0MTcyLCAxLjU3ODIsIDEuOTYwNDcsIDIuNTA2MDkiLCBcCi0gICAgICAgICAgIjAuMTI4OTk4LCAwLjQ5MTQxNSwgMC44NjkzNjMsIDEuMTQxNjcsIDEuNTc4MjgsIDEuOTYwNDksIDIuNTA2MjgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQyNTUzLCAwLjE4MjE3MywgMC4zMjA4MTksIDAuNDE5NTczLCAwLjU3ODQ4NiwgMC43MTY3NSwgMC45MTY0NDkiLCBcCi0gICAgICAgICAgIjAuMDUxNTkzLCAwLjE5MTM0NiwgMC4zMzAwNzgsIDAuNDI5MDY1LCAwLjU4NzU3MiwgMC43MjU5NjEsIDAuOTI1ODAyIiwgXAotICAgICAgICAgICIwLjA2MzA0NCwgMC4yMDI1OTQsIDAuMzQxNDM2LCAwLjQ0MDI1OCwgMC41OTg4MDgsIDAuNzM3MTM2LCAwLjkzNzI0NCIsIFwKLSAgICAgICAgICAiMC4wNzQ4MDMsIDAuMjEzOTg0LCAwLjM1MjY0NywgMC40NTE3NjIsIDAuNjEwMDg4LCAwLjc0ODIxOSwgMC45NDg3NjYiLCBcCi0gICAgICAgICAgIjAuMDg1OTMsIDAuMjI1NDY5LCAwLjM2NDI0MSwgMC40NjMyNTcsIDAuNjIxNzg4LCAwLjc2MDAxNSwgMC45NjAzMzgiLCBcCi0gICAgICAgICAgIjAuMTAwNjMyLCAwLjI0Mzk1OCwgMC4zODI2MzUsIDAuNDgxNjgyLCAwLjY0MDE3NywgMC43Nzg3NDEsIDAuOTc4MTAzIiwgXAotICAgICAgICAgICIwLjExMjA3MywgMC4yNjAyNTcsIDAuMzk4ODQ2LCAwLjQ5Nzc1LCAwLjY1NjQzMSwgMC43OTQ2NTQsIDAuOTk0MjM2Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc4NzIzLCAwLjM2MDgzNywgMC42NDIxMjYsIDAuODQ0MDIyLCAxLjE2ODg2LCAxLjQ1MjkyLCAxLjg1ODk3IiwgXAotICAgICAgICAgICIwLjA3ODYwMSwgMC4zNjA3NzcsIDAuNjQyNTQ1LCAwLjg0NDMxNCwgMS4xNjg0NSwgMS40NTMwMSwgMS44NTgwNCIsIFwKLSAgICAgICAgICAiMC4wODI5MjQsIDAuMzYwNzY0LCAwLjY0MjM4MSwgMC44NDQxNTcsIDEuMTY4NCwgMS40NTI5MSwgMS44NTgzOCIsIFwKLSAgICAgICAgICAiMC4wODk3MDUsIDAuMzYwNTY1LCAwLjY0MjMzOCwgMC44NDQyNzgsIDEuMTY4ODMsIDEuNDUyMywgMS44NTc1IiwgXAotICAgICAgICAgICIwLjA5Nzc5OCwgMC4zNjIyNzMsIDAuNjQyMjg0LCAwLjg0NDAzNywgMS4xNjkyOSwgMS40NTI4NywgMS44NTg1MSIsIFwKLSAgICAgICAgICAiMC4xMTE4NzcsIDAuMzY3NzcyLCAwLjY0MjcyNywgMC44NDQwNzQsIDEuMTY5NDgsIDEuNDUyOSwgMS44NTg4OSIsIFwKLSAgICAgICAgICAiMC4xMjM3NjQsIDAuMzc0NTY5LCAwLjY0NTMyMiwgMC44NDQzNDYsIDEuMTY5NTEsIDEuNDUyODksIDEuODU4NzgiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTQxNjMsIDAuMjQ5OTkzLCAwLjQ0NTYwNywgMC41ODUyMDEsIDAuODA4NzkyLCAxLjAwNDEsIDEuMjgzMyIsIFwKLSAgICAgICAgICAiMC4wNjI2NTgsIDAuMjU4OTg4LCAwLjQ1NDY5NSwgMC41OTQzOTQsIDAuODE3ODIxLCAxLjAxMzMsIDEuMjkyMzciLCBcCi0gICAgICAgICAgIjAuMDcyOTkxLCAwLjI2OTcxOSwgMC40NjU0NDUsIDAuNjA1MjA2LCAwLjgyODcwNCwgMS4wMjQwNCwgMS4zMDMyNyIsIFwKLSAgICAgICAgICAiMC4wODMzNzQsIDAuMjgwMywgMC40NzYxMzksIDAuNjE1ODcyLCAwLjgzOTM5OSwgMS4wMzQ4OSwgMS4zMTQwMiIsIFwKLSAgICAgICAgICAiMC4wOTM3NzYsIDAuMjkwODYxLCAwLjQ4NjgzMiwgMC42MjY1OTcsIDAuODUwMTA0LCAxLjA0NTUzLCAxLjMyNDgzIiwgXAotICAgICAgICAgICIwLjEwNzkyNywgMC4zMDc4OTYsIDAuNTAzOTE4LCAwLjY0Mzc0OCwgMC44NjcyNjYsIDEuMDYyODUsIDEuMzQyMDEiLCBcCi0gICAgICAgICAgIjAuMTE5NDM3LCAwLjMyMjczNSwgMC41MTg4OTUsIDAuNjU4NzIyLCAwLjg4MjMwOSwgMS4wNzc4NSwgMS4zNTcxMiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwNjY1MywgMC40ODc0NjUsIDAuODY4OTksIDEuMTQxNjIsIDEuNTc4NSwgMS45NjAyNSwgMi41MDYxNyIsIFwKLSAgICAgICAgICAiMC4xMDY2ODIsIDAuNDg3NDAyLCAwLjg2OTAyNywgMS4xNDE3NywgMS41NzgzOCwgMS45NjAwNCwgMi41MDU4NiIsIFwKLSAgICAgICAgICAiMC4xMDg4MywgMC40ODc0NTMsIDAuODY5MDEyLCAxLjE0MTY2LCAxLjU3ODM4LCAxLjk2MDM1LCAyLjUxMzMzIiwgXAotICAgICAgICAgICIwLjExMzE0NywgMC40ODc0MjQsIDAuODY4OTk1LCAxLjE0MTc2LCAxLjU3ODQzLCAxLjk2MDQ2LCAyLjUwNjA0IiwgXAotICAgICAgICAgICIwLjExODgzNSwgMC40ODc1MzMsIDAuODY5MDAyLCAxLjE0MTY4LCAxLjU3ODQ0LCAxLjk1OTk0LCAyLjUwNTc4IiwgXAotICAgICAgICAgICIwLjEyODg5OSwgMC40ODk0NTEsIDAuODY5MDI0LCAxLjE0MTc1LCAxLjU3Nzk5LCAxLjk2MDIyLCAyLjUwNjA5IiwgXAotICAgICAgICAgICIwLjEzODk5LCAwLjQ5MjY1NywgMC44NjkyOCwgMS4xNDE4LCAxLjU3ODI0LCAxLjk2MDIzLCAyLjUwNjI0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIyIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzOTU0LCAwLjE3OTEzNCwgMC4zMTc5MDgsIDAuNDE3MTQ0LCAwLjU3NTY3MiwgMC43MTQyMzMsIDAuOTE0MTgzIiwgXAotICAgICAgICAgICIwLjA0ODYxMiwgMC4xODg0MDksIDAuMzI3MjU2LCAwLjQyNjM0MSwgMC41ODUxMDUsIDAuNzIzNTk0LCAwLjkyMzA3MyIsIFwKLSAgICAgICAgICAiMC4wNjAwNzEsIDAuMTk5NzU0LCAwLjMzODU1OCwgMC40Mzc3NjcsIDAuNTk1ODEyLCAwLjczNDk1MiwgMC45MzQyMDMiLCBcCi0gICAgICAgICAgIjAuMDcyMDI0LCAwLjIxMTUwMiwgMC4zNTAzMTQsIDAuNDQ5NTQ4LCAwLjYwODA3NiwgMC43NDYyMTMsIDAuOTQ3MjAzIiwgXAotICAgICAgICAgICIwLjA4MjUxLCAwLjIyMjYxNSwgMC4zNjE1MjUsIDAuNDYwNjIzLCAwLjYxOTMxMSwgMC43NTc2NywgMC45NTcwMDciLCBcCi0gICAgICAgICAgIjAuMDk2NzgxLCAwLjI0MTE1OCwgMC4zNzk5NjMsIDAuNDc5MTMzLCAwLjYzNzU2OCwgMC43NzY0ODEsIDAuOTc1OTkzIiwgXAotICAgICAgICAgICIwLjEwNzQ0NCwgMC4yNTczMDYsIDAuMzk2MTY5LCAwLjQ5NTE3OSwgMC42NTQwMzIsIDAuNzkyMzg0LCAwLjk5MjE0NyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3NTUwMywgMC4zNTg2MzIsIDAuNjQxNTEzLCAwLjg0MzgwNywgMS4xNzAzMSwgMS40NTUzNiwgMS44NjMwMyIsIFwKLSAgICAgICAgICAiMC4wNzU0MDYsIDAuMzU4ODM2LCAwLjY0MTUzMywgMC44NDU2OTYsIDEuMTY5OTEsIDEuNDU2NDIsIDEuODY3MjIiLCBcCi0gICAgICAgICAgIjAuMDgwMDYyLCAwLjM1ODQ0NSwgMC42NDE0NDQsIDAuODQ1NzEzLCAxLjE2OTg2LCAxLjQ1NjM3LCAxLjg2NjI5IiwgXAotICAgICAgICAgICIwLjA4Njg5LCAwLjM1ODQwNSwgMC42NDE0MDUsIDAuODQ0NTA3LCAxLjE3MDgsIDEuNDU1NzgsIDEuODYzMTYiLCBcCi0gICAgICAgICAgIjAuMDk1Mzc0LCAwLjM2MDAyMiwgMC42NDEyNjMsIDAuODQzOTU3LCAxLjE3MDE1LCAxLjQ1ODA2LCAxLjg2Mzc0IiwgXAotICAgICAgICAgICIwLjEwOTU4LCAwLjM2NTgyNywgMC42NDE3NjEsIDAuODQ0MDEzLCAxLjE3Mjc1LCAxLjQ1NTIzLCAxLjg2NjY1IiwgXAotICAgICAgICAgICIwLjEyMTMxMiwgMC4zNzIzNywgMC42NDQ3NjMsIDAuODQ0Nzc1LCAxLjE3MDU4LCAxLjQ1ODEyLCAxLjg2NDEzIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQ5NjA1LCAwLjI0NTQyLCAwLjQ0MDk5NiwgMC41ODA3MzcsIDAuODA0MTIsIDAuOTk5NjYsIDEuMjc4ODMiLCBcCi0gICAgICAgICAgIjAuMDU4MDIzLCAwLjI1NDM4MywgMC40NTAwNTIsIDAuNTg5NzY2LCAwLjgxMzIzNiwgMS4wMDg2NiwgMS4yODc3NyIsIFwKLSAgICAgICAgICAiMC4wNjg1NywgMC4yNjUxNTcsIDAuNDYwOTI4LCAwLjYwMDY1NiwgMC44MjQxMDEsIDEuMDE5NSwgMS4yOTg4MiIsIFwKLSAgICAgICAgICAiMC4wNzk3MzgsIDAuMjc2MjQsIDAuNDcyMDg2LCAwLjYxMTgwNywgMC44MzUzNjEsIDEuMDMwNzIsIDEuMzEwMDQiLCBcCi0gICAgICAgICAgIjAuMDkwOTEyLCAwLjI4Njk4LCAwLjQ4MjgxOCwgMC42MjI1NjIsIDAuODQ1OTgyLCAxLjA0MTUzLCAxLjMyMDc0IiwgXAotICAgICAgICAgICIwLjEwNTgsIDAuMzA0NTYyLCAwLjUwMDIzNCwgMC42NDAxMjcsIDAuODYzNTM1LCAxLjA1OTE0LCAxLjMzODQiLCBcCi0gICAgICAgICAgIjAuMTE3Mzc3LCAwLjMxOTk1OCwgMC41MTU2NzgsIDAuNjU1Mzk1LCAwLjg3ODg5NiwgMS4wNzQ1LCAxLjM1Mzc0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTA2NjUyLCAwLjQ4NzQxMiwgMC44Njg5NTYsIDEuMTQxNjgsIDEuNTc4MywgMS45NjAzOCwgMi41MTE2MiIsIFwKLSAgICAgICAgICAiMC4xMDY2NDIsIDAuNDg3NDMxLCAwLjg2ODk5OCwgMS4xNDE3NCwgMS41NzgyNiwgMS45NjAwNSwgMi41MDU4NyIsIFwKLSAgICAgICAgICAiMC4xMTAzNDksIDAuNDg3NDA1LCAwLjg2OTAwMSwgMS4xNDE3MywgMS41NzgzNCwgMS45NTk5NywgMi41MDU5MyIsIFwKLSAgICAgICAgICAiMC4xMTY2NTksIDAuNDg3NDYyLCAwLjg2OTA2NCwgMS4xNDE3MywgMS41NzgzOCwgMS45NjAzNCwgMi41MDYyOCIsIFwKLSAgICAgICAgICAiMC4xMjQ0MzMsIDAuNDg3NTgxLCAwLjg2ODk5NywgMS4xNDE2NCwgMS41NzgzMSwgMS45NTk5NSwgMi41MDYyNyIsIFwKLSAgICAgICAgICAiMC4xMzc5NjgsIDAuNDkwNDcxLCAwLjg2ODk1MSwgMS4xNDE3MywgMS41NzgyOCwgMS45NjAzOCwgMi41MDU5NSIsIFwKLSAgICAgICAgICAiMC4xNTA2OTMsIDAuNDk1MDQzLCAwLjg2OTM3OSwgMS4xNDE2OCwgMS41NzgyMSwgMS45NjAxOSwgMi41MDYwMyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxOTY0NSwgMC4wMTk2NDYsIDAuMDE5NjQ0LCAwLjAxOTY0NSwgMC4wMTk2NDEsIDAuMDE5NjM5LCAwLjAxOTYzNiIsIFwKLSAgICAgICAgICAiMC4wMTk1ODMsIDAuMDE5NTk5LCAwLjAxOTYwMiwgMC4wMTk2MDEsIDAuMDE5NjAxLCAwLjAxOTYwMiwgMC4wMTk1OTciLCBcCi0gICAgICAgICAgIjAuMDE5NTQ5LCAwLjAxOTU4NiwgMC4wMTk1OSwgMC4wMTk1OTIsIDAuMDE5NTkxLCAwLjAxOTU4OSwgMC4wMTk1ODkiLCBcCi0gICAgICAgICAgIjAuMDE5NTM0LCAwLjAxOTU3NSwgMC4wMTk1ODMsIDAuMDE5NTg4LCAwLjAxOTU4NCwgMC4wMTk1ODgsIDAuMDE5NTg0IiwgXAotICAgICAgICAgICIwLjAxOTUxOSwgMC4wMTk1NjgsIDAuMDE5NTc2LCAwLjAxOTU4MSwgMC4wMTk1ODIsIDAuMDE5NTgsIDAuMDE5NTgxIiwgXAotICAgICAgICAgICIwLjAxOTUwOSwgMC4wMTk1NTksIDAuMDE5NTcyLCAwLjAxOTU3NywgMC4wMTk1OCwgMC4wMTk1OCwgMC4wMTk1NzYiLCBcCi0gICAgICAgICAgIjAuMDE5NDk3LCAwLjAxOTU1MywgMC4wMTk1NjcsIDAuMDE5NTcxLCAwLjAxOTU3NCwgMC4wMTk1NzksIDAuMDE5NTc3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDYxNTEsIDAuMDA2MTU3LCAwLjAwNjE1NywgMC4wMDYxNTcsIDAuMDA2MTU1LCAwLjAwNjE1MywgMC4wMDYxNTMiLCBcCi0gICAgICAgICAgIjAuMDA2MDMyLCAwLjAwNjA5OCwgMC4wMDYxMSwgMC4wMDYxMTQsIDAuMDA2MTE1LCAwLjAwNjExNiwgMC4wMDYxMTUiLCBcCi0gICAgICAgICAgIjAuMDA1OTQ1LCAwLjAwNjA1NywgMC4wMDYwODIsIDAuMDA2MDkxLCAwLjAwNjA5NywgMC4wMDYxLCAwLjAwNjEwMiIsIFwKLSAgICAgICAgICAiMC4wMDU4OSwgMC4wMDYwMjUsIDAuMDA2MDYxLCAwLjAwNjA3MiwgMC4wMDYwODMsIDAuMDA2MDg4LCAwLjAwNjA5MyIsIFwKLSAgICAgICAgICAiMC4wMDU4NTYsIDAuMDA2LCAwLjAwNjAzOSwgMC4wMDYwNTcsIDAuMDA2MDY5LCAwLjAwNjA3NiwgMC4wMDYwODQiLCBcCi0gICAgICAgICAgIjAuMDA1ODI3LCAwLjAwNTk2NCwgMC4wMDYwMTQsIDAuMDA2MDMyLCAwLjAwNjA1LCAwLjAwNjA2MiwgMC4wMDYwNyIsIFwKLSAgICAgICAgICAiMC4wMDU4MTksIDAuMDA1OTQyLCAwLjAwNTk5NCwgMC4wMDYwMTYsIDAuMDA2MDM4LCAwLjAwNjA0OCwgMC4wMDYwNTkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTgwMjEsIDAuMDE4MDI4LCAwLjAxODAyOCwgMC4wMTgwMjgsIDAuMDE4MDI3LCAwLjAxODAyNSwgMC4wMTgwMjIiLCBcCi0gICAgICAgICAgIjAuMDE3OTYxLCAwLjAxODAxNSwgMC4wMTgwMjEsIDAuMDE4MDI0LCAwLjAxODAyNCwgMC4wMTgwMjcsIDAuMDE4MDI0IiwgXAotICAgICAgICAgICIwLjAxNzkwOCwgMC4wMTc5OTQsIDAuMDE4MDA5LCAwLjAxODAxNywgMC4wMTgwMTYsIDAuMDE4MDE5LCAwLjAxODAxOSIsIFwKLSAgICAgICAgICAiMC4wMTc4NywgMC4wMTc5NzYsIDAuMDE3OTk5LCAwLjAxODAwNSwgMC4wMTgwMTEsIDAuMDE4MDEzLCAwLjAxODAxOCIsIFwKLSAgICAgICAgICAiMC4wMTc4NDQsIDAuMDE3OTYxLCAwLjAxNzk4OCwgMC4wMTc5OTcsIDAuMDE4MDA4LCAwLjAxODAwNywgMC4wMTgwMDkiLCBcCi0gICAgICAgICAgIjAuMDE3ODIxLCAwLjAxNzkzOSwgMC4wMTc5NzMsIDAuMDE3OTg0LCAwLjAxNzk5NSwgMC4wMTgsIDAuMDE4MDAyIiwgXAotICAgICAgICAgICIwLjAxNzgwOCwgMC4wMTc5MjQsIDAuMDE3OTYxLCAwLjAxNzk3NCwgMC4wMTc5NzksIDAuMDE3OTg2LCAwLjAxNzk5OSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2MTUzLCAwLjAwNjE1OSwgMC4wMDYxNTksIDAuMDA2MTU3LCAwLjAwNjE1NSwgMC4wMDYxNTUsIDAuMDA2MTU2IiwgXAotICAgICAgICAgICIwLjAwNjAzMywgMC4wMDYxLCAwLjAwNjExMSwgMC4wMDYxMTcsIDAuMDA2MTE3LCAwLjAwNjExMywgMC4wMDYxMTciLCBcCi0gICAgICAgICAgIjAuMDA1OTQ2LCAwLjAwNjA1OSwgMC4wMDYwODQsIDAuMDA2MDkyLCAwLjAwNjEsIDAuMDA2MTAxLCAwLjAwNjEwNCIsIFwKLSAgICAgICAgICAiMC4wMDU4OTYsIDAuMDA2MDI4LCAwLjAwNjA2MiwgMC4wMDYwNzQsIDAuMDA2MDg1LCAwLjAwNjA4OSwgMC4wMDYwOTUiLCBcCi0gICAgICAgICAgIjAuMDA1ODY2LCAwLjAwNjAwMiwgMC4wMDYwNDMsIDAuMDA2MDU3LCAwLjAwNjA3MiwgMC4wMDYwOCwgMC4wMDYwODYiLCBcCi0gICAgICAgICAgIjAuMDA1ODQ4LCAwLjAwNTk3LCAwLjAwNjAxNywgMC4wMDYwMzcsIDAuMDA2MDU1LCAwLjAwNjA2NCwgMC4wMDYwNzMiLCBcCi0gICAgICAgICAgIjAuMDA1ODUsIDAuMDA1OTUzLCAwLjAwNTk5OCwgMC4wMDYwMjMsIDAuMDA2MDQzLCAwLjAwNjA1MiwgMC4wMDYwNjMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTYzNTksIDAuMDE2Mzg5LCAwLjAxNjM5MSwgMC4wMTYzOTMsIDAuMDE2Mzk1LCAwLjAxNjM5MSwgMC4wMTYzOTEiLCBcCi0gICAgICAgICAgIjAuMDE2MzA1LCAwLjAxNjQwMiwgMC4wMTY0MTcsIDAuMDE2NDIsIDAuMDE2NDI0LCAwLjAxNjQyNCwgMC4wMTY0MjQiLCBcCi0gICAgICAgICAgIjAuMDE2MjI3LCAwLjAxNjM3NiwgMC4wMTY0MDIsIDAuMDE2NDExLCAwLjAxNjQxOCwgMC4wMTY0MjEsIDAuMDE2NDI0IiwgXAotICAgICAgICAgICIwLjAxNjE3NCwgMC4wMTYzNTIsIDAuMDE2Mzg4LCAwLjAxNjQwMSwgMC4wMTY0MTgsIDAuMDE2NDA0LCAwLjAxNjQxOSIsIFwKLSAgICAgICAgICAiMC4wMTYxMzcsIDAuMDE2MzI3LCAwLjAxNjM3MSwgMC4wMTYzODcsIDAuMDE2NCwgMC4wMTY0MDYsIDAuMDE2NDExIiwgXAotICAgICAgICAgICIwLjAxNjEwMywgMC4wMTYyOTUsIDAuMDE2MzUsIDAuMDE2MzY5LCAwLjAxNjM4NCwgMC4wMTYzOTUsIDAuMDE2NDA3IiwgXAotICAgICAgICAgICIwLjAxNjA3NywgMC4wMTYyNzEsIDAuMDE2MzMyLCAwLjAxNjM1NiwgMC4wMTYzNzUsIDAuMDE2Mzg1LCAwLjAxNjM5NiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2MTU2LCAwLjAwNjE2NSwgMC4wMDYxNjksIDAuMDA2MTY1LCAwLjAwNjE2NCwgMC4wMDYxNjgsIDAuMDA2MTYzIiwgXAotICAgICAgICAgICIwLjAwNjAxOCwgMC4wMDYxLCAwLjAwNjExMywgMC4wMDYxMTcsIDAuMDA2MTIyLCAwLjAwNjEyMywgMC4wMDYxMjMiLCBcCi0gICAgICAgICAgIjAuMDA1OTQxLCAwLjAwNjA2MSwgMC4wMDYwODcsIDAuMDA2MDk2LCAwLjAwNjEwMywgMC4wMDYxMDYsIDAuMDA2MTA5IiwgXAotICAgICAgICAgICIwLjAwNTkwOCwgMC4wMDYwMzEsIDAuMDA2MDY3LCAwLjAwNjA3OCwgMC4wMDYwOSwgMC4wMDYwOTYsIDAuMDA2MTAxIiwgXAotICAgICAgICAgICIwLjAwNTkxNiwgMC4wMDYwMDcsIDAuMDA2MDU0LCAwLjAwNjA2OCwgMC4wMDYwNzksIDAuMDA2MDg2LCAwLjAwNjA5MyIsIFwKLSAgICAgICAgICAiMC4wMDU5NjgsIDAuMDA2MDA4LCAwLjAwNjA0MywgMC4wMDYwNTcsIDAuMDA2MDcsIDAuMDA2MDc5LCAwLjAwNjA4NiIsIFwKLSAgICAgICAgICAiMC4wMDYwNDksIDAuMDA2MDE3LCAwLjAwNjAzNSwgMC4wMDYwNTUsIDAuMDA2MDY4LCAwLjAwNjA3NCwgMC4wMDYwODIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTQ1MzIsIDAuMDE0NTM1LCAwLjAxNDUzNSwgMC4wMTQ1MzIsIDAuMDE0NTMxLCAwLjAxNDUzMywgMC4wMTQ1MyIsIFwKLSAgICAgICAgICAiMC4wMTQ0MzksIDAuMDE0NDc5LCAwLjAxNDQ4NSwgMC4wMTQ0ODcsIDAuMDE0NDg2LCAwLjAxNDQ4NSwgMC4wMTQ0ODYiLCBcCi0gICAgICAgICAgIjAuMDE0NDExLCAwLjAxNDQ2MywgMC4wMTQ0NzEsIDAuMDE0NDc0LCAwLjAxNDQ3OCwgMC4wMTQ0NzQsIDAuMDE0NDc1IiwgXAotICAgICAgICAgICIwLjAxNDM5NSwgMC4wMTQ0NDksIDAuMDE0NDYyLCAwLjAxNDQ2NCwgMC4wMTQ0NzIsIDAuMDE0NDY5LCAwLjAxNDQ2OSIsIFwKLSAgICAgICAgICAiMC4wMTQ0NDQsIDAuMDE0NDU3LCAwLjAxNDQ2NSwgMC4wMTQ0NjcsIDAuMDE0NDY5LCAwLjAxNDQ2NywgMC4wMTQ0NjUiLCBcCi0gICAgICAgICAgIjAuMDE0NSwgMC4wMTQ0NjQsIDAuMDE0NDY3LCAwLjAxNDQ2OCwgMC4wMTQ0NjksIDAuMDE0NDY5LCAwLjAxNDQ2OCIsIFwKLSAgICAgICAgICAiMC4wMTQ1NzUsIDAuMDE0NDgxLCAwLjAxNDQ3NSwgMC4wMTQ0NzMsIDAuMDE0NDc1LCAwLjAxNDQ3MiwgMC4wMTQ0NjgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTg3NiwgMC4wMDE5MjksIDAuMDAxOTM1LCAwLjAwMTkzNywgMC4wMDE5MzgsIDAuMDAxOTM5LCAwLjAwMTk0IiwgXAotICAgICAgICAgICIwLjAwMTc2OSwgMC4wMDE5NjIsIDAuMDAxOTksIDAuMDAxOTk5LCAwLjAwMjAwNiwgMC4wMDIwMSwgMC4wMDIwMTQiLCBcCi0gICAgICAgICAgIjAuMDAxNjQ3LCAwLjAwMTkyNSwgMC4wMDE5NzUsIDAuMDAxOTkxLCAwLjAwMjAwNSwgMC4wMDIwMTMsIDAuMDAyMDIiLCBcCi0gICAgICAgICAgIjAuMDAxNTY5LCAwLjAwMTg4MiwgMC4wMDE5NSwgMC4wMDE5NzMsIDAuMDAxOTkzLCAwLjAwMjAwNCwgMC4wMDIwMTQiLCBcCi0gICAgICAgICAgIjAuMDAxNTIyLCAwLjAwMTg0MywgMC4wMDE5MjUsIDAuMDAxOTUzLCAwLjAwMTk3OSwgMC4wMDE5OTMsIDAuMDAyMDA2IiwgXAotICAgICAgICAgICIwLjAwMTQ4MywgMC4wMDE3ODgsIDAuMDAxODg2LCAwLjAwMTkyMiwgMC4wMDE5NTYsIDAuMDAxOTc0LCAwLjAwMTk5MSIsIFwKLSAgICAgICAgICAiMC4wMDE0NzQsIDAuMDAxNzUsIDAuMDAxODU2LCAwLjAwMTg5NywgMC4wMDE5MzYsIDAuMDAxOTU4LCAwLjAwMTk3OCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIxIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMjg3NywgMC4wMTI4OTMsIDAuMDEyODkzLCAwLjAxMjg5MywgMC4wMTI4OTMsIDAuMDEyODkxLCAwLjAxMjg4OSIsIFwKLSAgICAgICAgICAiMC4wMTI3OTMsIDAuMDEyODcsIDAuMDEyODgxLCAwLjAxMjg4MywgMC4wMTI4ODMsIDAuMDEyODg2LCAwLjAxMjg4NyIsIFwKLSAgICAgICAgICAiMC4wMTI3NjQsIDAuMDEyODUyLCAwLjAxMjg2NywgMC4wMTI4NzQsIDAuMDEyODc1LCAwLjAxMjg3OCwgMC4wMTI4OCIsIFwKLSAgICAgICAgICAiMC4wMTI3NTcsIDAuMDEyODQxLCAwLjAxMjg1OSwgMC4wMTI4NjUsIDAuMDEyODczLCAwLjAxMjg3MiwgMC4wMTI4NzYiLCBcCi0gICAgICAgICAgIjAuMDEyNzc0LCAwLjAxMjgzMywgMC4wMTI4NTUsIDAuMDEyODY0LCAwLjAxMjg2OSwgMC4wMTI4NzIsIDAuMDEyODczIiwgXAotICAgICAgICAgICIwLjAxMjgzLCAwLjAxMjgzNSwgMC4wMTI4NTMsIDAuMDEyODYxLCAwLjAxMjg2NCwgMC4wMTI4NjcsIDAuMDEyODY5IiwgXAotICAgICAgICAgICIwLjAxMjkwMywgMC4wMTI4NDQsIDAuMDEyODU3LCAwLjAxMjg2MiwgMC4wMTI4NjYsIDAuMDEyODY4LCAwLjAxMjg3MSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxODc0LCAwLjAwMTkyNywgMC4wMDE5MzMsIDAuMDAxOTM1LCAwLjAwMTkzNywgMC4wMDE5MzgsIDAuMDAxOTM4IiwgXAotICAgICAgICAgICIwLjAwMTc2OCwgMC4wMDE5NjIsIDAuMDAxOTg5LCAwLjAwMTk5OCwgMC4wMDIwMDYsIDAuMDAyMDEsIDAuMDAyMDEzIiwgXAotICAgICAgICAgICIwLjAwMTY0OCwgMC4wMDE5MjQsIDAuMDAxOTc0LCAwLjAwMTk5LCAwLjAwMjAwNSwgMC4wMDIwMTIsIDAuMDAyMDE5IiwgXAotICAgICAgICAgICIwLjAwMTU3NywgMC4wMDE4ODMsIDAuMDAxOTUsIDAuMDAxOTcyLCAwLjAwMTk5MywgMC4wMDIwMDQsIDAuMDAyMDE0IiwgXAotICAgICAgICAgICIwLjAwMTUzNywgMC4wMDE4NDYsIDAuMDAxOTI2LCAwLjAwMTk1NCwgMC4wMDE5OCwgMC4wMDE5OTMsIDAuMDAyMDA2IiwgXAotICAgICAgICAgICIwLjAwMTUxNSwgMC4wMDE3OTYsIDAuMDAxODksIDAuMDAxOTI0LCAwLjAwMTk1NywgMC4wMDE5NzUsIDAuMDAxOTkyIiwgXAotICAgICAgICAgICIwLjAwMTUyNSwgMC4wMDE3NjQsIDAuMDAxODY0LCAwLjAwMTkwMiwgMC4wMDE5NCwgMC4wMDE5NjEsIDAuMDAxOTgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTExODIsIDAuMDExMjIyLCAwLjAxMTIyNiwgMC4wMTEyMjYsIDAuMDExMjI4LCAwLjAxMTIyOCwgMC4wMTEyMjYiLCBcCi0gICAgICAgICAgIjAuMDExMTAyLCAwLjAxMTIyNywgMC4wMTEyNDUsIDAuMDExMjUxLCAwLjAxMTI1NSwgMC4wMTEyNTcsIDAuMDExMjU4IiwgXAotICAgICAgICAgICIwLjAxMTA0NiwgMC4wMTEyMDIsIDAuMDExMjMyLCAwLjAxMTI0LCAwLjAxMTI0OSwgMC4wMTEyNTIsIDAuMDExMjU4IiwgXAotICAgICAgICAgICIwLjAxMTAwMywgMC4wMTExNzQsIDAuMDExMjEzLCAwLjAxMTIyNiwgMC4wMTEyMzgsIDAuMDExMjQ0LCAwLjAxMTI1MSIsIFwKLSAgICAgICAgICAiMC4wMTEwMzIsIDAuMDExMTY5LCAwLjAxMTIwOSwgMC4wMTEyMjQsIDAuMDExMjM1LCAwLjAxMTI0LCAwLjAxMTI0NiIsIFwKLSAgICAgICAgICAiMC4wMTEwNzcsIDAuMDExMTU0LCAwLjAxMTE5OCwgMC4wMTEyMTIsIDAuMDExMjI4LCAwLjAxMTIzNCwgMC4wMTEyNCIsIFwKLSAgICAgICAgICAiMC4wMTExNDIsIDAuMDExMTU3LCAwLjAxMTE5NCwgMC4wMTEyMDksIDAuMDExMjI1LCAwLjAxMTIzMiwgMC4wMTEyMzgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTg1NiwgMC4wMDE5MTYsIDAuMDAxOTIzLCAwLjAwMTkyNSwgMC4wMDE5MjcsIDAuMDAxOTI3LCAwLjAwMTkyOCIsIFwKLSAgICAgICAgICAiMC4wMDE3NDMsIDAuMDAxOTUsIDAuMDAxOTgsIDAuMDAxOTksIDAuMDAxOTk4LCAwLjAwMjAwMiwgMC4wMDIwMDYiLCBcCi0gICAgICAgICAgIjAuMDAxNjYxLCAwLjAwMTkxOSwgMC4wMDE5NjgsIDAuMDAxOTg0LCAwLjAwMTk5OSwgMC4wMDIwMDYsIDAuMDAyMDEzIiwgXAotICAgICAgICAgICIwLjAwMTYwOCwgMC4wMDE4OCwgMC4wMDE5NDgsIDAuMDAxOTY3LCAwLjAwMTk4OCwgMC4wMDE5OTksIDAuMDAyMDA5IiwgXAotICAgICAgICAgICIwLjAwMTY0NSwgMC4wMDE4NjEsIDAuMDAxOTMxLCAwLjAwMTk1NiwgMC4wMDE5OCwgMC4wMDE5OTIsIDAuMDAyMDA0IiwgXAotICAgICAgICAgICIwLjAwMTcxNSwgMC4wMDE4MzksIDAuMDAxOTEyLCAwLjAwMTk0LCAwLjAwMTk2NywgMC4wMDE5ODIsIDAuMDAxOTk2IiwgXAotICAgICAgICAgICIwLjAwMTgxLCAwLjAwMTgzNywgMC4wMDE5MDQsIDAuMDAxOTMyLCAwLjAwMTk2LCAwLjAwMTk3NiwgMC4wMDE5OTEiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IEJVRlgxMiAqCi0gKiAtLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKEJVRlgxMikgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjYwMTc2MjsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAyMzM4MTI7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAyMzM3NDU7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAyMzM4MTI7Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMy4wMzAzODsKLSAgICBmdW5jdGlvbiA6ICJBIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzMwNiwgMC4wMzU3OSwgMC4wNDg3NjYsIDAuMDU5MzU1LCAwLjA3MzIxMSwgMC4xMDA3NjQsIDAuMTE3ODkyIiwgXAotICAgICAgICAgICIwLjA0MzIwNCwgMC4wNDU5MDgsIDAuMDU4OTcsIDAuMDY5NTI1LCAwLjA4MzM4LCAwLjExMDkxLCAwLjEyODA5MiIsIFwKLSAgICAgICAgICAiMC4wNTU2NywgMC4wNTgzOTEsIDAuMDcxNDgsIDAuMDgyMDQ5LCAwLjA5NTg5NiwgMC4xMjM0MjcsIDAuMTQwNjEzIiwgXAotICAgICAgICAgICIwLjA2NjU0OCwgMC4wNjk0MSwgMC4wODI3MTEsIDAuMDkzMjg4LCAwLjEwNzIwMiwgMC4xMzQ2NSwgMC4xNTE4NCIsIFwKLSAgICAgICAgICAiMC4wNzU2NzIsIDAuMDc4Njk2LCAwLjA5MjE1OSwgMC4xMDI4MDIsIDAuMTE2NzY4LCAwLjE0NDE3OCwgMC4xNjEzMzUiLCBcCi0gICAgICAgICAgIjAuMDg4NjY3LCAwLjA5MTk0MiwgMC4xMDYyMTIsIDAuMTE2ODY2LCAwLjEzMDgzNCwgMC4xNTgzMTYsIDAuMTc1NDY3IiwgXAotICAgICAgICAgICIwLjA5ODAwNywgMC4xMDEzODgsIDAuMTE2MjQ0LCAwLjEyNjcxNSwgMC4xNDA3NTQsIDAuMTY4MzE4LCAwLjE4NTQ2NyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTgzNTcsIDAuMDIyNDE1LCAwLjA0NTA1OSwgMC4wNjU0NTEsIDAuMDkzMTE4LCAwLjE0OTA2OCwgMC4xODQxNzkiLCBcCi0gICAgICAgICAgIjAuMDE4Mzk2LCAwLjAyMjM4NCwgMC4wNDUwMzMsIDAuMDY1NDU0LCAwLjA5MzE3MSwgMC4xNDkxMjksIDAuMTg0NTUyIiwgXAotICAgICAgICAgICIwLjAxOTE3NSwgMC4wMjMwNDksIDAuMDQ1NDA2LCAwLjA2NTY4OSwgMC4wOTMyNTIsIDAuMTQ5MzIxLCAwLjE4NDU4NSIsIFwKLSAgICAgICAgICAiMC4wMjEwMDcsIDAuMDI0NTk1LCAwLjA0NjM1LCAwLjA2NjMxNywgMC4wOTM2MzcsIDAuMTQ5NTI5LCAwLjE4NDY3NSIsIFwKLSAgICAgICAgICAiMC4wMjI0NDYsIDAuMDI2MTcyLCAwLjA0NzgyNSwgMC4wNjczMzQsIDAuMDk0MzQ3LCAwLjE0OTY2NCwgMC4xODQ3ODgiLCBcCi0gICAgICAgICAgIjAuMDI0OTA0LCAwLjAyODY0MiwgMC4wNDk0NzksIDAuMDY4NzY1LCAwLjA5NTQzOCwgMC4xNTA0MjYsIDAuMTg1MDcxIiwgXAotICAgICAgICAgICIwLjAyNjk0NSwgMC4wMzEwNDUsIDAuMDUxMjY0LCAwLjA3MDc3LCAwLjA5Njk4MywgMC4xNTExMjgsIDAuMTg1NzU5Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzNDM2MiwgMC4wMzcyMzksIDAuMDUwODk5LCAwLjA2MjExMSwgMC4wNzY3ODcsIDAuMTA1OTI1LCAwLjEyNDExMyIsIFwKLSAgICAgICAgICAiMC4wNDQzMDEsIDAuMDQ3MTExLCAwLjA2MDgzMywgMC4wNzIwMzcsIDAuMDg2Njg4LCAwLjExNTgyLCAwLjEzNDAwNCIsIFwKLSAgICAgICAgICAiMC4wNTY1MzQsIDAuMDU5MzY0LCAwLjA3MzExNiwgMC4wODQyNzcsIDAuMDk4OTcyLCAwLjEyODEwNywgMC4xNDYyOTIiLCBcCi0gICAgICAgICAgIjAuMDY2Nzk4LCAwLjA2OTc0NCwgMC4wODM2MjYsIDAuMDk0ODI3LCAwLjEwOTUwNSwgMC4xMzg2MjcsIDAuMTU2ODA5IiwgXAotICAgICAgICAgICIwLjA3NTgyNCwgMC4wNzg4MzMsIDAuMDkyOTY4LCAwLjEwNDMwOSwgMC4xMTg5MjQsIDAuMTQ3OTY2LCAwLjE2NjEzMSIsIFwKLSAgICAgICAgICAiMC4wODc1NzUsIDAuMDkwNzgxLCAwLjEwNTM1LCAwLjExNjY1NCwgMC4xMzEyMSwgMC4xNjAwMDEsIDAuMTc4MTI1IiwgXAotICAgICAgICAgICIwLjA5NjgyLCAwLjEwMDEwMiwgMC4xMTUwNzMsIDAuMTI2NDg5LCAwLjE0MTM3MiwgMC4xNzAwMDgsIDAuMTg4NTQ3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxODUwOSwgMC4wMjI1NjcsIDAuMDQ2MTQyLCAwLjA2NzMzMSwgMC4wOTU5MjMsIDAuMTU0MDA2LCAwLjE5MDU0OSIsIFwKLSAgICAgICAgICAiMC4wMTgzOTksIDAuMDIyNTU1LCAwLjA0NjExOCwgMC4wNjczMDYsIDAuMDk2MDAyLCAwLjE1Mzg3LCAwLjE5MDU3IiwgXAotICAgICAgICAgICIwLjAxODk0NCwgMC4wMjMwMzcsIDAuMDQ2MzczLCAwLjA2NzQ3MiwgMC4wOTYwNjEsIDAuMTUzOTA4LCAwLjE5MDYxNCIsIFwKLSAgICAgICAgICAiMC4wMjA2NSwgMC4wMjQ0OSwgMC4wNDcyNTEsIDAuMDY4MDQyLCAwLjA5NjQ4OSwgMC4xNTQzMTksIDAuMTkwMzQ2IiwgXAotICAgICAgICAgICIwLjAyMTk3MiwgMC4wMjU4MjQsIDAuMDQ4MTcyLCAwLjA2ODgyMSwgMC4wOTY5MDksIDAuMTU0NjcxLCAwLjE5MDk1MiIsIFwKLSAgICAgICAgICAiMC4wMjQwMDUsIDAuMDI3ODA5LCAwLjA0OTc5OCwgMC4wNzAwMjUsIDAuMDk4MDksIDAuMTU1MDQ4LCAwLjE5MTM4NCIsIFwKLSAgICAgICAgICAiMC4wMjYxNjIsIDAuMDI5NjAyLCAwLjA1MTIzMywgMC4wNzA5OTEsIDAuMDk4NzQ5LCAwLjE1NTU4MywgMC4xOTEzNTQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTI1OSwgMC4wMTI2OTIsIDAuMDEyOTgyLCAwLjAxMzA4MiwgMC4wMTMxNDksIDAuMDEzMjA3LCAwLjAxMzIyNiIsIFwKLSAgICAgICAgICAiMC4wMTIzNjIsIDAuMDEyNDU1LCAwLjAxMjc0OSwgMC4wMTI4NjQsIDAuMDEyOTQ2LCAwLjAxMzA0LCAwLjAxMzA1NiIsIFwKLSAgICAgICAgICAiMC4wMTIyNzUsIDAuMDEyMzQsIDAuMDEyNTk0LCAwLjAxMjcyLCAwLjAxMjgyLCAwLjAxMjkyNCwgMC4wMTI5NzIiLCBcCi0gICAgICAgICAgIjAuMDEyMzY3LCAwLjAxMjQwNCwgMC4wMTI1OTEsIDAuMDEyNzEsIDAuMDEyODAzLCAwLjAxMjkyMSwgMC4wMTI5NzQiLCBcCi0gICAgICAgICAgIjAuMDEyMzUsIDAuMDEyNDEsIDAuMDEyNjMsIDAuMDEyNzMxLCAwLjAxMjgzLCAwLjAxMjk0NSwgMC4wMTI5OTkiLCBcCi0gICAgICAgICAgIjAuMDEyNTczLCAwLjAxMjU4OSwgMC4wMTI3MjUsIDAuMDEyODIyLCAwLjAxMjkxOSwgMC4wMTMwMjQsIDAuMDEzMDc2IiwgXAotICAgICAgICAgICIwLjAxMjU1NiwgMC4wMTI1NzUsIDAuMDEyNzQ3LCAwLjAxMjgyNiwgMC4wMTI5MzQsIDAuMDEzMDYxLCAwLjAxMzEwOSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxNTU0MiwgMC4wMTU2OCwgMC4wMTYwNTEsIDAuMDE2MTg1LCAwLjAxNjI3NywgMC4wMTYzNiwgMC4wMTYzODgiLCBcCi0gICAgICAgICAgIjAuMDE1MzQ1LCAwLjAxNTQ2LCAwLjAxNTgzMywgMC4wMTU5ODYsIDAuMDE2MDk4LCAwLjAxNjIwOCwgMC4wMTYyNDQiLCBcCi0gICAgICAgICAgIjAuMDE1MjgyLCAwLjAxNTM2NCwgMC4wMTU2ODgsIDAuMDE1ODUyLCAwLjAxNTk3NCwgMC4wMTYxMDksIDAuMDE2MTU3IiwgXAotICAgICAgICAgICIwLjAxNTM0OCwgMC4wMTU0MDMsIDAuMDE1NjYsIDAuMDE1ODE0LCAwLjAxNTkyMiwgMC4wMTYwNjYsIDAuMDE2MTI3IiwgXAotICAgICAgICAgICIwLjAxNTM4LCAwLjAxNTQzLCAwLjAxNTY0NCwgMC4wMTU3ODMsIDAuMDE1OTA5LCAwLjAxNjA2LCAwLjAxNjExMiIsIFwKLSAgICAgICAgICAiMC4wMTUzMjUsIDAuMDE1Mzg0LCAwLjAxNTY0LCAwLjAxNTc5LCAwLjAxNTkwMywgMC4wMTYwNjcsIDAuMDE2MTM2IiwgXAotICAgICAgICAgICIwLjAxNTY0MiwgMC4wMTU0MjUsIDAuMDE1NzY5LCAwLjAxNTc4OCwgMC4wMTU5OTMsIDAuMDE2MDQ3LCAwLjAxNjE5MyIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogQlVGWDE2ICoKLSAqIC0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoQlVGWDE2KSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuODE5Mjk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMzA2NzA2OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMzA2NTI4OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMzA2NzA2OwotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDQuMDA5Njc7Ci0gICAgZnVuY3Rpb24gOiAiQSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDMxMjczLCAwLjAzMzQwNSwgMC4wNDM2MjQsIDAuMDUxNzc4LCAwLjA2MjMwOCwgMC4wODMwODUsIDAuMDk2MDQ0IiwgXAotICAgICAgICAgICIwLjA0MTQzNiwgMC4wNDM1OTcsIDAuMDUzODk5LCAwLjA2MjAxOSwgMC4wNzI1NDksIDAuMDkzMzA4LCAwLjEwNjI1NiIsIFwKLSAgICAgICAgICAiMC4wNTM3NzEsIDAuMDU1OTUyLCAwLjA2NjI4NSwgMC4wNzQ0MzUsIDAuMDg0OTQ3LCAwLjEwNTcxOSwgMC4xMTg2NyIsIFwKLSAgICAgICAgICAiMC4wNjQ2NjcsIDAuMDY3MDI4LCAwLjA3NzU2NCwgMC4wODU3NzUsIDAuMDk2MjAxLCAwLjExNjk2NiwgMC4xMjk5MTEiLCBcCi0gICAgICAgICAgIjAuMDczNTg0LCAwLjA3NjA2NywgMC4wODcwNDEsIDAuMDk1MzMsIDAuMTA1NzczLCAwLjEyNjY4OCwgMC4xMzk1OTciLCBcCi0gICAgICAgICAgIjAuMDg2Mjc5LCAwLjA4ODk3MSwgMC4xMDA1MTYsIDAuMTA4OTY1LCAwLjExOTYyNiwgMC4xNDA0NjYsIDAuMTUzNDY1IiwgXAotICAgICAgICAgICIwLjA5NTUxMSwgMC4wOTgzMzcsIDAuMTEwNTI2LCAwLjExOTE2MSwgMC4xMjk5MTYsIDAuMTUwNzUzLCAwLjE2Mzc0MiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTY0NTQsIDAuMDE5NTQ0LCAwLjAzNjU3MSwgMC4wNTE3OTIsIDAuMDcyNDI2LCAwLjExNDMxMywgMC4xNDA3MTIiLCBcCi0gICAgICAgICAgIjAuMDE2NDU3LCAwLjAxOTUyNiwgMC4wMzY1NCwgMC4wNTE3NTQsIDAuMDcyMzksIDAuMTE0MjUzLCAwLjE0MDY4MSIsIFwKLSAgICAgICAgICAiMC4wMTc0MTIsIDAuMDIwMzM3LCAwLjAzNzAyLCAwLjA1MjA3OCwgMC4wNzI1OTYsIDAuMTE0Mzg3LCAwLjE0MDkxMSIsIFwKLSAgICAgICAgICAiMC4wMTg5NiwgMC4wMjE4OTMsIDAuMDM4MDMzLCAwLjA1Mjg4OSwgMC4wNzMxOTQsIDAuMTE0NzgsIDAuMTQwOTYxIiwgXAotICAgICAgICAgICIwLjAyMDg1MywgMC4wMjM2NjcsIDAuMDM5NjA5LCAwLjA1Mzk5NCwgMC4wNzQxMzYsIDAuMTE1MjU3LCAwLjE0MTM3IiwgXAotICAgICAgICAgICIwLjAyMzA5NCwgMC4wMjU5NTgsIDAuMDQxNTI0LCAwLjA1NTYzOCwgMC4wNzUzOTYsIDAuMTE2MDA5LCAwLjE0MjAwOCIsIFwKLSAgICAgICAgICAiMC4wMjU2MjksIDAuMDI4NTM4LCAwLjA0Mzc3NiwgMC4wNTc1MDcsIDAuMDc2NzUyLCAwLjExNjk0NiwgMC4xNDI3MTIiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDMyNDIxLCAwLjAzNDY1NiwgMC4wNDUzMSwgMC4wNTM4ODksIDAuMDY0OTcsIDAuMDg2ODc0LCAwLjEwMDUxMyIsIFwKLSAgICAgICAgICAiMC4wNDIzNzEsIDAuMDQ0NTkxLCAwLjA1NTI5MiwgMC4wNjM4NTEsIDAuMDc0OTQ1LCAwLjA5Njg0OSwgMC4xMTA0OTEiLCBcCi0gICAgICAgICAgIjAuMDU0NCwgMC4wNTY2MjUsIDAuMDY3MzYyLCAwLjA3NTkzNSwgMC4wODcwMjEsIDAuMTA4OTIzLCAwLjEyMjU2NCIsIFwKLSAgICAgICAgICAiMC4wNjQ3ODQsIDAuMDY3MTA2LCAwLjA3ODA0NCwgMC4wODY2ODQsIDAuMDk3NzQ0LCAwLjExOTY4MywgMC4xMzMzMjUiLCBcCi0gICAgICAgICAgIjAuMDczMDgzLCAwLjA3NTUzMiwgMC4wODY3MjUsIDAuMDk1NDMxLCAwLjEwNjI0MiwgMC4xMjgwOCwgMC4xNDE2NzQiLCBcCi0gICAgICAgICAgIjAuMDg1MTc3LCAwLjA4Nzc2NSwgMC4wOTk0NSwgMC4xMDgwNTEsIDAuMTE5MzI4LCAwLjE0MTE2NiwgMC4xNTQ3ODIiLCBcCi0gICAgICAgICAgIjAuMDkzOTE1LCAwLjA5NjY2MywgMC4xMDg2NjcsIDAuMTE3NTc3LCAwLjEyODg5NiwgMC4xNTA5MTQsIDAuMTY0Mzc3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxNjQwMiwgMC4wMTk2MDYsIDAuMDM3NDA1LCAwLjA1MzI3NCwgMC4wNzQ3MjcsIDAuMTE4MjI1LCAwLjE0NTc2NyIsIFwKLSAgICAgICAgICAiMC4wMTY0MzMsIDAuMDE5NjAzLCAwLjAzNzM1OSwgMC4wNTMyMjksIDAuMDc0NjcxLCAwLjExODE3OSwgMC4xNDU2MjQiLCBcCi0gICAgICAgICAgIjAuMDE3MDg1LCAwLjAyMDE4NCwgMC4wMzc2NTQsIDAuMDUzNDg1LCAwLjA3NDg2NiwgMC4xMTgzNDgsIDAuMTQ1Njg2IiwgXAotICAgICAgICAgICIwLjAxODU2MywgMC4wMjE2MTQsIDAuMDM4NTk2LCAwLjA1NDE3OSwgMC4wNzUzNDMsIDAuMTE4NzQ5LCAwLjE0NjA2OSIsIFwKLSAgICAgICAgICAiMC4wMjAwODEsIDAuMDIzMDY0LCAwLjAzOTg1NSwgMC4wNTUwNzcsIDAuMDc2MzQ0LCAwLjExOTIyMSwgMC4xNDYyODUiLCBcCi0gICAgICAgICAgIjAuMDIyMjc4LCAwLjAyNTIxMiwgMC4wNDE1NjUsIDAuMDU2NTk4LCAwLjA3NzIzOSwgMC4xMTk2NTcsIDAuMTQ2ODcxIiwgXAotICAgICAgICAgICIwLjAyNDM4NywgMC4wMjcyNywgMC4wNDMxNzUsIDAuMDU3ODM2LCAwLjA3ODI0LCAwLjEyMDI5OCwgMC4xNDcwOTciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTYyOCwgMC4wMTYzOTcsIDAuMDE2Nzg0LCAwLjAxNjkzMywgMC4wMTcwMzUsIDAuMDE3MTQ4LCAwLjAxNzE3NCIsIFwKLSAgICAgICAgICAiMC4wMTU5ODUsIDAuMDE2MDkxLCAwLjAxNjQ2MSwgMC4wMTY2MjUsIDAuMDE2NzQ2LCAwLjAxNjg2NCwgMC4wMTY5MTMiLCBcCi0gICAgICAgICAgIjAuMDE1ODkxLCAwLjAxNTk2NiwgMC4wMTYyNzQsIDAuMDE2NDUsIDAuMDE2NTgsIDAuMDE2NzM1LCAwLjAxNjc5MSIsIFwKLSAgICAgICAgICAiMC4wMTU4NzYsIDAuMDE1OTM3LCAwLjAxNjIyMSwgMC4wMTYzOCwgMC4wMTY1MjUsIDAuMDE2NjYxLCAwLjAxNjczOSIsIFwKLSAgICAgICAgICAiMC4wMTYxMTQsIDAuMDE2MTM5LCAwLjAxNjMxOSwgMC4wMTY0NDEsIDAuMDE2NTQ1LCAwLjAxNjcsIDAuMDE2Nzc3IiwgXAotICAgICAgICAgICIwLjAxNjIwOCwgMC4wMTYyMjUsIDAuMDE2MzgxLCAwLjAxNjQ5NiwgMC4wMTY2MTUsIDAuMDE2Nzc3LCAwLjAxNjgzOCIsIFwKLSAgICAgICAgICAiMC4wMTY1MDQsIDAuMDE2NDg1LCAwLjAxNjU0LCAwLjAxNjYyMywgMC4wMTY3MjYsIDAuMDE2ODczLCAwLjAxNjkxOCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyMDQxLCAwLjAyMDU3NCwgMC4wMjEwNjEsIDAuMDIxMjYxLCAwLjAyMTQwNCwgMC4wMjE1NCwgMC4wMjE1ODUiLCBcCi0gICAgICAgICAgIjAuMDIwMTI2LCAwLjAyMDI1OCwgMC4wMjA3MzMsIDAuMDIwOTUyLCAwLjAyMTEyMywgMC4wMjEyOTcsIDAuMDIxMzU3IiwgXAotICAgICAgICAgICIwLjAyMDE0NiwgMC4wMjAyMjgsIDAuMDIwNTg3LCAwLjAyMDgwMywgMC4wMjA5OCwgMC4wMjExNzgsIDAuMDIxMjUxIiwgXAotICAgICAgICAgICIwLjAyMDA1OSwgMC4wMjAxMTksIDAuMDIwNDksIDAuMDIwNjk2LCAwLjAyMDg4NSwgMC4wMjExMDIsIDAuMDIxMTg4IiwgXAotICAgICAgICAgICIwLjAyMDA1OCwgMC4wMjAxMywgMC4wMjA0NywgMC4wMjA2NzEsIDAuMDIwODM5LCAwLjAyMTA2OCwgMC4wMjExNjIiLCBcCi0gICAgICAgICAgIjAuMDIwMzkyLCAwLjAyMDQxNCwgMC4wMjA1OTYsIDAuMDIwNzM5LCAwLjAyMDksIDAuMDIxMDk1LCAwLjAyMTE4NSIsIFwKLSAgICAgICAgICAiMC4wMjA2NTcsIDAuMDIwNjQ1LCAwLjAyMDc0MSwgMC4wMjA4NjgsIDAuMDIxMDA1LCAwLjAyMTIwNCwgMC4wMjEyOCIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBCVUZYMiAqCi0gKiAtLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoQlVGWDIpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4xMDAxNDsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjM2ODg0OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYzNjU0MzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2MzY4ODQ7Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC41MTYxNDM7Ci0gICAgZnVuY3Rpb24gOiAiQSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDUwMjk1LCAwLjE1MjI2MywgMC4yMzM2MDMsIDAuMzM0OTkzLCAwLjQzNjg5NiwgMC41MzgzNzYsIDAuNjQwMTA1IiwgXAotICAgICAgICAgICIwLjA2MDUzMiwgMC4xNjI0OTMsIDAuMjQzODk2LCAwLjM0NTI0NywgMC40NDY3NzgsIDAuNTQ4ODEsIDAuNjUwMzIxIiwgXAotICAgICAgICAgICIwLjA3Mjg5OCwgMC4xNzQ3NjIsIDAuMjU2MTMzLCAwLjM1NzgsIDAuNDU5MzQ4LCAwLjU2MDk5LCAwLjY2MjgxNCIsIFwKLSAgICAgICAgICAiMC4wODM5NywgMC4xODU3ODIsIDAuMjY3MjMzLCAwLjM2ODkzMSwgMC40NzA1MDgsIDAuNTcyMTExLCAwLjY3MzY2NyIsIFwKLSAgICAgICAgICAiMC4wOTM0OTEsIDAuMTk1MzYsIDAuMjc2NjQ5LCAwLjM3ODI5MiwgMC40Nzk5NjMsIDAuNTgxNTU0LCAwLjY4MzI4NSIsIFwKLSAgICAgICAgICAiMC4xMDcwMSwgMC4yMDg5NDMsIDAuMjkwMjI4LCAwLjM5MTkxOSwgMC40OTM0NjUsIDAuNTk1MzA1LCAwLjY5Njk0MSIsIFwKLSAgICAgICAgICAiMC4xMTcyMDIsIDAuMjE5MjIyLCAwLjMwMDQ2MywgMC40MDIwNDQsIDAuNTAzNjc2LCAwLjYwNTI4NiwgMC43MDY5NjMiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDUwMzgzLCAwLjI1NzU4NywgMC40MjUxOTMsIDAuNjM0NDk3LCAwLjg0NDIxOCwgMS4wNTMzOCwgMS4yNjMxOSIsIFwKLSAgICAgICAgICAiMC4wNTAzNTgsIDAuMjU3NTc1LCAwLjQyNTIwMywgMC42MzUyODYsIDAuODQ0MzUsIDEuMDUzNTksIDEuMjY0OTMiLCBcCi0gICAgICAgICAgIjAuMDUwNzMzLCAwLjI1ODExMSwgMC40MjUyMDgsIDAuNjM0OTcxLCAwLjg0NTIwNSwgMS4wNTMzMiwgMS4yNjMwOSIsIFwKLSAgICAgICAgICAiMC4wNTE1MzksIDAuMjU4MTI1LCAwLjQyNTIyNCwgMC42MzQ2NTIsIDAuODQ0MTE5LCAxLjA1NTExLCAxLjI2MjU0IiwgXAotICAgICAgICAgICIwLjA1MjYwNSwgMC4yNTgyNDIsIDAuNDI1OTEzLCAwLjYzNDUxNCwgMC44NDM3MTUsIDEuMDUzMzYsIDEuMjYzMSIsIFwKLSAgICAgICAgICAiMC4wNTQzNzEsIDAuMjU4Mzc3LCAwLjQyNTQyMSwgMC42MzQ1OTIsIDAuODQzOTQ1LCAxLjA1MzYyLCAxLjI2MzA4IiwgXAotICAgICAgICAgICIwLjA1NjA1OCwgMC4yNTg1ODYsIDAuNDI2MDQ3LCAwLjYzNTc3LCAwLjg0NTYzNywgMS4wNTU0OCwgMS4yNjI2OCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTIzNzMsIDAuMTU2MjIzLCAwLjIzODk5MiwgMC4zNDIzMTQsIDAuNDQ1Njc5LCAwLjU0OTA4LCAwLjY1MjczMSIsIFwKLSAgICAgICAgICAiMC4wNjIyNjIsIDAuMTY2MDc4LCAwLjI0ODg2MywgMC4zNTI0ODYsIDAuNDU1NzQzLCAwLjU1OTIzNywgMC42NjI3MzMiLCBcCi0gICAgICAgICAgIjAuMDc0MjE4LCAwLjE3ODAyOCwgMC4yNjA3NzgsIDAuMzY0Mjg3LCAwLjQ2NzcxMywgMC41NzExMywgMC42NzQ4MjIiLCBcCi0gICAgICAgICAgIjAuMDg0NDYxLCAwLjE4ODQxLCAwLjI3MTE0OSwgMC4zNzQ2MjksIDAuNDc4MDk0LCAwLjU4MTQ5NiwgMC42ODQ5NTEiLCBcCi0gICAgICAgICAgIjAuMDkzMzE4LCAwLjE5NjU4MywgMC4yNzkzMzYsIDAuMzgyODI2LCAwLjQ4NjIwNSwgMC41ODk2OTcsIDAuNjkzMTMyIiwgXAotICAgICAgICAgICIwLjEwNTc1OCwgMC4yMDk1NDcsIDAuMjkyMjM1LCAwLjM5NTczLCAwLjQ5OTI5NywgMC42MDI0OTIsIDAuNzA2MDg0IiwgXAotICAgICAgICAgICIwLjExNDkxNSwgMC4yMTg0NDQsIDAuMzAxMTIyLCAwLjQwNDUyLCAwLjUwODExNywgMC42MTE1MzQsIDAuNzE0OTY2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1MDU0OCwgMC4yNTc2ODgsIDAuNDI1MjA5LCAwLjYzNDE4NCwgMC44NDU3LCAxLjA1NTU5LCAxLjI2MjU2IiwgXAotICAgICAgICAgICIwLjA1MDUyMywgMC4yNTgyMDYsIDAuNDI1Mzg2LCAwLjYzNDc4MSwgMC44NDMyMTksIDEuMDUzMzUsIDEuMjYzNyIsIFwKLSAgICAgICAgICAiMC4wNTA4MjEsIDAuMjU4MjI3LCAwLjQyNTk5NiwgMC42MzQ4NjIsIDAuODQzOTU4LCAxLjA1MzI0LCAxLjI2MjIxIiwgXAotICAgICAgICAgICIwLjA1MTY0NCwgMC4yNTgzNDMsIDAuNDI1ODM2LCAwLjYzNTYxMywgMC44NDQxMTcsIDEuMDUzMjQsIDEuMjYyOTUiLCBcCi0gICAgICAgICAgIjAuMDUyNDgzLCAwLjI1ODM1NSwgMC40MjU2NjgsIDAuNjM0NjEzLCAwLjg0NTUzNiwgMS4wNTM0NywgMS4yNjMxMiIsIFwKLSAgICAgICAgICAiMC4wNTQwMTMsIDAuMjU4Njc0LCAwLjQyNjA0NSwgMC42MzQ1NjUsIDAuODQzNjY2LCAxLjA1MjkxLCAxLjI2MjY4IiwgXAotICAgICAgICAgICIwLjA1NTI5NiwgMC4yNTg3NTMsIDAuNDI1NDk0LCAwLjYzNTkzMywgMC44NDM3NjEsIDEuMDUzMiwgMS4yNjI1NSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjE3MywgMC4wMDIyMDEsIDAuMDAyMjA0LCAwLjAwMjIwNSwgMC4wMDIyMDYsIDAuMDAyMjA2LCAwLjAwMjIwNyIsIFwKLSAgICAgICAgICAiMC4wMDIxMzMsIDAuMDAyMTc1LCAwLjAwMjE4LCAwLjAwMjE4NCwgMC4wMDIxODMsIDAuMDAyMTgzLCAwLjAwMjE4NCIsIFwKLSAgICAgICAgICAiMC4wMDIxMTMsIDAuMDAyMTY4LCAwLjAwMjE3MywgMC4wMDIxNzYsIDAuMDAyMTc4LCAwLjAwMjE3OSwgMC4wMDIxOCIsIFwKLSAgICAgICAgICAiMC4wMDIxMTUsIDAuMDAyMTcsIDAuMDAyMTc4LCAwLjAwMjE4MywgMC4wMDIxODUsIDAuMDAyMTg3LCAwLjAwMjE4OCIsIFwKLSAgICAgICAgICAiMC4wMDIxMjYsIDAuMDAyMTgxLCAwLjAwMjE4OCwgMC4wMDIxOTUsIDAuMDAyMTk4LCAwLjAwMjE5OSwgMC4wMDIyMDEiLCBcCi0gICAgICAgICAgIjAuMDAyMTM1LCAwLjAwMjE4OCwgMC4wMDIyMDEsIDAuMDAyMjA1LCAwLjAwMjIwOSwgMC4wMDIyMTEsIDAuMDAyMjEyIiwgXAotICAgICAgICAgICIwLjAwMjE1OCwgMC4wMDIyMSwgMC4wMDIyMjMsIDAuMDAyMjI4LCAwLjAwMjIzMSwgMC4wMDIyMzQsIDAuMDAyMjM1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzMDA1LCAwLjAwMzA1MiwgMC4wMDMwNTcsIDAuMDAzMDYsIDAuMDAzMDYxLCAwLjAwMzA2MiwgMC4wMDMwNjMiLCBcCi0gICAgICAgICAgIjAuMDAyOTY4LCAwLjAwMzAyOSwgMC4wMDMwMzYsIDAuMDAzMDM5LCAwLjAwMzA0MSwgMC4wMDMwNDIsIDAuMDAzMDQzIiwgXAotICAgICAgICAgICIwLjAwMjk1NSwgMC4wMDMwMjQsIDAuMDAzMDMzLCAwLjAwMzAzOCwgMC4wMDMwNCwgMC4wMDMwNDIsIDAuMDAzMDQzIiwgXAotICAgICAgICAgICIwLjAwMjk0OSwgMC4wMDMwMjIsIDAuMDAzMDM0LCAwLjAwMzA0LCAwLjAwMzA0NCwgMC4wMDMwNDYsIDAuMDAzMDQ3IiwgXAotICAgICAgICAgICIwLjAwMjk0NSwgMC4wMDMwMjUsIDAuMDAzMDQsIDAuMDAzMDQ4LCAwLjAwMzA1MywgMC4wMDMwNTUsIDAuMDAzMDU3IiwgXAotICAgICAgICAgICIwLjAwMjk2NiwgMC4wMDMwMzgsIDAuMDAzMDUzLCAwLjAwMzA2MSwgMC4wMDMwNjYsIDAuMDAzMDY5LCAwLjAwMzA3IiwgXAotICAgICAgICAgICIwLjAwMjk2NywgMC4wMDMwNDksIDAuMDAzMDY1LCAwLjAwMzA3NSwgMC4wMDMwOCwgMC4wMDMwODMsIDAuMDAzMDg1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBCVUZYMjAgKgotICogLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChCVUZYMjApIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMS4wMTMwNDsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAzODMyMzQ7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAzODMwOTY7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAzODMyMzQ7Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogNS4xMjc0MjsKLSAgICBmdW5jdGlvbiA6ICJBIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzExNTksIDAuMDQzODIzLCAwLjA1MjUxOCwgMC4wNjMwNzksIDAuMDczNTE3LCAwLjA4Mzg5NSwgMC4wOTQyOCIsIFwKLSAgICAgICAgICAiMC4wNDEzNzksIDAuMDU0MDczLCAwLjA2MjgxMiwgMC4wNzMzMjgsIDAuMDgzNzU3LCAwLjA5NDE0OSwgMC4xMDQ1MTYiLCBcCi0gICAgICAgICAgIjAuMDUzNzU4LCAwLjA2NjUxOSwgMC4wNzUyNDMsIDAuMDg1Nzc3LCAwLjA5NjIwMSwgMC4xMDY1ODQsIDAuMTE2OTU4IiwgXAotICAgICAgICAgICIwLjA2NDQ2NCwgMC4wNzc2NTQsIDAuMDg2NDI4LCAwLjA5Njk2NiwgMC4xMDc0NDgsIDAuMTE3NzU4LCAwLjEyODEzMyIsIFwKLSAgICAgICAgICAiMC4wNzM3NTYsIDAuMDg3NDk4LCAwLjA5NjM3MywgMC4xMDY5NjUsIDAuMTE3NDY2LCAwLjEyNzg2NiwgMC4xMzgyNDUiLCBcCi0gICAgICAgICAgIjAuMDg2MDE3LCAwLjEwMDQxNywgMC4xMDk0NywgMC4xMjAxNDksIDAuMTMwNzM1LCAwLjE0MTEzMywgMC4xNTE0ODciLCBcCi0gICAgICAgICAgIjAuMDk1NjM3LCAwLjExMDkwNSwgMC4xMjAxODgsIDAuMTMwOTA2LCAwLjE0MTQxMywgMC4xNTE4NzgsIDAuMTYyMjg0Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxNTg1NiwgMC4wMzYwNDUsIDAuMDUyMjcyLCAwLjA3Mjk0MiwgMC4wOTM2OTIsIDAuMTE0NzU0LCAwLjEzNTg5MSIsIFwKLSAgICAgICAgICAiMC4wMTU4MDQsIDAuMDM1OTQ1LCAwLjA1MjIyNywgMC4wNzI4NzksIDAuMDkzODY3LCAwLjExNDk3OCwgMC4xMzYwNTciLCBcCi0gICAgICAgICAgIjAuMDE2NzE1LCAwLjAzNjQyMiwgMC4wNTI1MDQsIDAuMDczMDk0LCAwLjA5Mzk0NywgMC4xMTUwNjgsIDAuMTM2MTI1IiwgXAotICAgICAgICAgICIwLjAxODQ3LCAwLjAzNzU3NywgMC4wNTMzNzQsIDAuMDczNjYxLCAwLjA5NDMzOSwgMC4xMTUzNzIsIDAuMTM2MzU0IiwgXAotICAgICAgICAgICIwLjAxOTk5MSwgMC4wMzg4NzIsIDAuMDU0MzQsIDAuMDc0NDMsIDAuMDk0OTcxLCAwLjExNTcwMiwgMC4xMzY4MzMiLCBcCi0gICAgICAgICAgIjAuMDIyNTg2LCAwLjA0MTczMSwgMC4wNTY1NTYsIDAuMDc2MTQzLCAwLjA5NjMyNywgMC4xMTY4MTYsIDAuMTM3NTA0IiwgXAotICAgICAgICAgICIwLjAyNDUxOCwgMC4wNDM0MjcsIDAuMDU4MDkzLCAwLjA3NzM5MywgMC4wOTczOTUsIDAuMTE3NTksIDAuMTM4MjAyIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzMjQxNiwgMC4wNDU1NjksIDAuMDU0NzcsIDAuMDY1OTI5LCAwLjA3Njk1NywgMC4wODc5MywgMC4wOTg4NjYiLCBcCi0gICAgICAgICAgIjAuMDQyMzgyLCAwLjA1NTU2NCwgMC4wNjQ3NTksIDAuMDc1OTA1LCAwLjA4NjkxMiwgMC4wOTc4OSwgMC4xMDg4NSIsIFwKLSAgICAgICAgICAiMC4wNTQ0OTUsIDAuMDY3NzE4LCAwLjA3NjkxLCAwLjA4ODA0OSwgMC4wOTkwNzEsIDAuMTEwMDQzLCAwLjEyMTAwMyIsIFwKLSAgICAgICAgICAiMC4wNjQ5MzgsIDAuMDc4NDk0LCAwLjA4Nzc0NSwgMC4wOTg4NCwgMC4xMDk5MywgMC4xMjA4NzMsIDAuMTMxODI2IiwgXAotICAgICAgICAgICIwLjA3MzYxMiwgMC4wODc1NiwgMC4wOTY5MTgsIDAuMTA4MTIzLCAwLjExOTExMywgMC4xMzAwNjUsIDAuMTQwOTY1IiwgXAotICAgICAgICAgICIwLjA4NTI4MiwgMC4wOTk4NTMsIDAuMTA5MzM0LCAwLjEyMDY4NCwgMC4xMzE3NzEsIDAuMTQyNTg2LCAwLjE1MzUxNCIsIFwKLSAgICAgICAgICAiMC4wOTM4MjYsIDAuMTA5MTA5LCAwLjExODY0NCwgMC4xMjk5NjMsIDAuMTQxMDEzLCAwLjE1MTk5OCwgMC4xNjI3NzEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE1NzIyLCAwLjAzNjY1OCwgMC4wNTM0NTEsIDAuMDc0NzkyLCAwLjA5NjQxMiwgMC4xMTgyMDQsIDAuMTM5OTk4IiwgXAotICAgICAgICAgICIwLjAxNTcyMywgMC4wMzY1OTksIDAuMDUzNDM4LCAwLjA3NDgyMywgMC4wOTY0ODMsIDAuMTE4MTEsIDAuMTQwMTkxIiwgXAotICAgICAgICAgICIwLjAxNjMyOSwgMC4wMzY5MTQsIDAuMDUzNzA3LCAwLjA3NDk4MSwgMC4wOTY1ODQsIDAuMTE4MzI5LCAwLjE0MDA0NiIsIFwKLSAgICAgICAgICAiMC4wMTc4NCwgMC4wMzc4NDQsIDAuMDU0MzYsIDAuMDc1NDUyLCAwLjA5Njg4MywgMC4xMTg1MzUsIDAuMTQwMzU2IiwgXAotICAgICAgICAgICIwLjAxOTI5MiwgMC4wMzkwMDYsIDAuMDU1MTYzLCAwLjA3NjE2NCwgMC4wOTc0MzYsIDAuMTE4ODc5LCAwLjE0MDc2OSIsIFwKLSAgICAgICAgICAiMC4wMjE5NDEsIDAuMDQwOTI5LCAwLjA1Njc4NCwgMC4wNzcyOTEsIDAuMDk4MjIsIDAuMTE5NDQ4LCAwLjE0MTI5OCIsIFwKLSAgICAgICAgICAiMC4wMjM0MDEsIDAuMDQyMzIsIDAuMDU3OTM4LCAwLjA3ODI1NCwgMC4wOTkxNDQsIDAuMTIwMTg3LCAwLjE0MTYwMiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyMTEwNiwgMC4wMjE3NzQsIDAuMDIxOTgyLCAwLjAyMjExNSwgMC4wMjIxOSwgMC4wMjIyMzksIDAuMDIyMjczIiwgXAotICAgICAgICAgICIwLjAyMDc0MywgMC4wMjEzNjksIDAuMDIxNTk4LCAwLjAyMTc2LCAwLjAyMTg1NywgMC4wMjE5MjEsIDAuMDIxOTUzIiwgXAotICAgICAgICAgICIwLjAyMDYzMywgMC4wMjExMjQsIDAuMDIxMzQ1LCAwLjAyMTUyNCwgMC4wMjE2NDIsIDAuMDIxNzI0LCAwLjAyMTc4NiIsIFwKLSAgICAgICAgICAiMC4wMjA4NDEsIDAuMDIxMTc0LCAwLjAyMTM0OSwgMC4wMjE1MjgsIDAuMDIxNjQsIDAuMDIxNzE1LCAwLjAyMTc4MSIsIFwKLSAgICAgICAgICAiMC4wMjA4NDIsIDAuMDIxMTM0LCAwLjAyMTMwMywgMC4wMjE0NjQsIDAuMDIxNTg3LCAwLjAyMTY4MywgMC4wMjE3NDYiLCBcCi0gICAgICAgICAgIjAuMDIwOTUyLCAwLjAyMTI3OCwgMC4wMjE0MzcsIDAuMDIxNiwgMC4wMjE3MywgMC4wMjE4MDQsIDAuMDIxODc1IiwgXAotICAgICAgICAgICIwLjAyMTExMywgMC4wMjE0MzksIDAuMDIxNTY2LCAwLjAyMTY5NSwgMC4wMjE4MDUsIDAuMDIxODgzLCAwLjAyMTk1NSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyNTgxLCAwLjAyNjY1OCwgMC4wMjY5MjUsIDAuMDI3MTAzLCAwLjAyNzIwNSwgMC4wMjcyNzMsIDAuMDI3MzIiLCBcCi0gICAgICAgICAgIjAuMDI1NDY5LCAwLjAyNjI1NiwgMC4wMjY1NTEsIDAuMDI2NzY0LCAwLjAyNjg5MywgMC4wMjY5ODEsIDAuMDI3MDQzIiwgXAotICAgICAgICAgICIwLjAyNTQ0NSwgMC4wMjYwNTIsIDAuMDI2MzI2LCAwLjAyNjU1NCwgMC4wMjY3MDMsIDAuMDI2ODA4LCAwLjAyNjg4NiIsIFwKLSAgICAgICAgICAiMC4wMjUzMzcsIDAuMDI1OTA3LCAwLjAyNjE4MywgMC4wMjY0MjUsIDAuMDI2NTg2LCAwLjAyNjcwNCwgMC4wMjY4MTUiLCBcCi0gICAgICAgICAgIjAuMDI1NTYyLCAwLjAyNTk5NiwgMC4wMjYyMzYsIDAuMDI2NDU1LCAwLjAyNjYxNSwgMC4wMjY3MjEsIDAuMDI2ODIiLCBcCi0gICAgICAgICAgIjAuMDI1OTAyLCAwLjAyNjEwNCwgMC4wMjYyNzksIDAuMDI2NDgyLCAwLjAyNjYyNiwgMC4wMjY3MjQsIDAuMDI2ODE3IiwgXAotICAgICAgICAgICIwLjAyNTc1NiwgMC4wMjYwNzMsIDAuMDI2MjkxLCAwLjAyNjUwMSwgMC4wMjY2NjksIDAuMDI2NzkzLCAwLjAyNjg4OSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBCVUZYMyAqCi0gKiAtLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoQlVGWDMpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4xNTU4MzU7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDkzNTgxNjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA5MzU1MDQ7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwOTM1ODE2OwotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuNzY2NDQ4OwotICAgIGZ1bmN0aW9uIDogIkEiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQwNzQsIDAuMTM3OTQ4LCAwLjIzNDgsIDAuMzA0MTY5LCAwLjQxNDY4NiwgMC41MTE1MzMsIDAuNjQ5ODMzIiwgXAotICAgICAgICAgICIwLjA1MDkzMSwgMC4xNDgxMzEsIDAuMjQ1MDA3LCAwLjMxNDMxMSwgMC40MjQ4NzYsIDAuNTIxNTQyLCAwLjY2MDMwMSIsIFwKLSAgICAgICAgICAiMC4wNjMwNjMsIDAuMTYwMzIxLCAwLjI1NzIxMiwgMC4zMjYzNjksIDAuNDM3MDU2LCAwLjUzNDEyNiwgMC42NzIyNjgiLCBcCi0gICAgICAgICAgIjAuMDczNDY0LCAwLjE3MDgwMiwgMC4yNjc3MDMsIDAuMzM3MDU1LCAwLjQ0NzU1MywgMC41NDQ0NDgsIDAuNjgyOTgxIiwgXAotICAgICAgICAgICIwLjA4MjU1NiwgMC4xNzk5MjQsIDAuMjc2NzY5LCAwLjM0NTk3MSwgMC40NTY3NjUsIDAuNTUzNDgsIDAuNjkyMTg2IiwgXAotICAgICAgICAgICIwLjA5NDc1LCAwLjE5MjQyOCwgMC4yODkyNzMsIDAuMzU4NDU4LCAwLjQ2OTA5NiwgMC41NjYxOTcsIDAuNzA0NTc5IiwgXAotICAgICAgICAgICIwLjEwNDAzOSwgMC4yMDE2ODcsIDAuMjk4NDQ4LCAwLjM2NzYxMiwgMC40NzgyNzEsIDAuNTc1MjI2LCAwLjcxMzQ0MyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzNzI0MSwgMC4yMzQ1NzgsIDAuNDM1MDU4LCAwLjU3NjcyNywgMC44MDQ2MDYsIDEuMDA0MTIsIDEuMjg5MzEiLCBcCi0gICAgICAgICAgIjAuMDM3Mjc3LCAwLjIzNTAzMiwgMC40MzQ4MDUsIDAuNTc2NzU3LCAwLjgwNDY5MywgMS4wMDQ3OCwgMS4yOTAzOSIsIFwKLSAgICAgICAgICAiMC4wMzc5MDcsIDAuMjM1MDc3LCAwLjQzNDA4OSwgMC41Nzc1MDQsIDAuODA0Njg3LCAxLjAwNTA3LCAxLjI4OTI0IiwgXAotICAgICAgICAgICIwLjAzODg1NSwgMC4yMzQ4MTUsIDAuNDM0MDAyLCAwLjU3NjcwMiwgMC44MDQ2NTgsIDEuMDAzOTQsIDEuMjg5NTkiLCBcCi0gICAgICAgICAgIjAuMDQwMDk2LCAwLjIzNTE2NiwgMC40MzQ3NTYsIDAuNTc2NjMyLCAwLjgwNDgyOCwgMS4wMDQyNCwgMS4yODk2MiIsIFwKLSAgICAgICAgICAiMC4wNDIxMjgsIDAuMjM1MDc2LCAwLjQzNTEzMSwgMC41NzY2NjYsIDAuODA1OTI4LCAxLjAwNDQ4LCAxLjI4OTYiLCBcCi0gICAgICAgICAgIjAuMDQ0MTEsIDAuMjM1MzM2LCAwLjQzNDM2MSwgMC41Nzc4NDQsIDAuODA2MzA5LCAxLjAwNDQ1LCAxLjI4OTI5Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQxODgxLCAwLjE0MDU1MiwgMC4yMzg2NTgsIDAuMzA4Nzg3LCAwLjQyMTAxMywgMC41MTg5NzksIDAuNjU5MjIiLCBcCi0gICAgICAgICAgIjAuMDUxNzgsIDAuMTUwNDIzLCAwLjI0ODU4NSwgMC4zMTg3MTgsIDAuNDMwNzczLCAwLjUyODk2MywgMC42NjkyMTEiLCBcCi0gICAgICAgICAgIjAuMDYzNTQsIDAuMTYyMTU0LCAwLjI2MDMxOCwgMC4zMzA0NzYsIDAuNDQyNjQzLCAwLjU0MDc3LCAwLjY4MDg2MSIsIFwKLSAgICAgICAgICAiMC4wNzI5ODcsIDAuMTcxNzM5LCAwLjI2OTkwMSwgMC4zNDAwNDMsIDAuNDUyMjIxLCAwLjU1MDM5NiwgMC42OTAzOTIiLCBcCi0gICAgICAgICAgIjAuMDgxNzI4LCAwLjE4MDQ5MywgMC4yNzg2MTcsIDAuMzQ4Nzc4LCAwLjQ2MTA5NSwgMC41NTg4NCwgMC42OTkwMTQiLCBcCi0gICAgICAgICAgIjAuMDkyNzc2LCAwLjE5MTc1OSwgMC4yODk4NDQsIDAuMzYwMDM0LCAwLjQ3MjEwNSwgMC41NzAyMDMsIDAuNzEwNTY3IiwgXAotICAgICAgICAgICIwLjEwMTY2NCwgMC4xOTk4ODIsIDAuMjk3ODk1LCAwLjM2Nzk0NywgMC40ODAxMTEsIDAuNTc4MzkzLCAwLjcxODQ0OSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzNjk3NiwgMC4yMzMwMjksIDAuNDMxMTIyLCAwLjU3MzQ0MiwgMC43OTk1NzEsIDAuOTk3NjcsIDEuMjg0MiIsIFwKLSAgICAgICAgICAiMC4wMzY5NDMsIDAuMjMzMjc4LCAwLjQzMTIwNiwgMC41NzM1MTYsIDAuODAxNjI1LCAwLjk5NzU5MSwgMS4yODE4IiwgXAotICAgICAgICAgICIwLjAzNzQ3MSwgMC4yMzMwMzksIDAuNDMxMDcyLCAwLjU3Mjk5NCwgMC43OTk3MjEsIDEuMDAwMSwgMS4yODA2NiIsIFwKLSAgICAgICAgICAiMC4wMzg3MjgsIDAuMjMzNzAxLCAwLjQzMjQxNCwgMC41NzMzMjcsIDAuODAwMDQ4LCAwLjk5ODE1MiwgMS4yODQ1NiIsIFwKLSAgICAgICAgICAiMC4wMzk1NTIsIDAuMjMzMzg1LCAwLjQzMjM3OSwgMC41NzMyMDMsIDAuNzk5NDQ4LCAwLjk5NzQxMywgMS4yODA1OSIsIFwKLSAgICAgICAgICAiMC4wNDEyNzIsIDAuMjM0MDk4LCAwLjQzMjQsIDAuNTczMjQyLCAwLjgwMTM0NiwgMS4wMDA1MiwgMS4yODEzNyIsIFwKLSAgICAgICAgICAiMC4wNDIzMTQsIDAuMjM0MDMzLCAwLjQzMjQ2NSwgMC41NzQxNSwgMC43OTk0NTMsIDAuOTk4MTU1LCAxLjI4Mzk1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDMyNTksIDAuMDAzMzE5LCAwLjAwMzMyLCAwLjAwMzMyMywgMC4wMDMzMjMsIDAuMDAzMzIzLCAwLjAwMzMyNiIsIFwKLSAgICAgICAgICAiMC4wMDMxODgsIDAuMDAzMjY4LCAwLjAwMzI3MywgMC4wMDMyNzYsIDAuMDAzMjc5LCAwLjAwMzI3OSwgMC4wMDMyNzkiLCBcCi0gICAgICAgICAgIjAuMDAzMTQ2LCAwLjAwMzI0OCwgMC4wMDMyNiwgMC4wMDMyNjQsIDAuMDAzMjY5LCAwLjAwMzI3LCAwLjAwMzI3MSIsIFwKLSAgICAgICAgICAiMC4wMDMxNTksIDAuMDAzMjYzLCAwLjAwMzI3NywgMC4wMDMyODEsIDAuMDAzMjg2LCAwLjAwMzI4NywgMC4wMDMyODkiLCBcCi0gICAgICAgICAgIjAuMDAzMTYyLCAwLjAwMzI2MSwgMC4wMDMyNzgsIDAuMDAzMjg0LCAwLjAwMzI4OCwgMC4wMDMyODksIDAuMDAzMjkzIiwgXAotICAgICAgICAgICIwLjAwMzE5MywgMC4wMDMyODUsIDAuMDAzMzA1LCAwLjAwMzMxLCAwLjAwMzMxNywgMC4wMDMzMiwgMC4wMDMzMjMiLCBcCi0gICAgICAgICAgIjAuMDAzMjI2LCAwLjAwMzMxNSwgMC4wMDMzMzYsIDAuMDAzMzQ4LCAwLjAwMzM1MSwgMC4wMDMzNTQsIDAuMDAzMzU3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQ0NzcsIDAuMDA0NTY0LCAwLjAwNDU3MiwgMC4wMDQ1NzUsIDAuMDA0NTc3LCAwLjAwNDU3OCwgMC4wMDQ1NzkiLCBcCi0gICAgICAgICAgIjAuMDA0NDA3LCAwLjAwNDUyMiwgMC4wMDQ1MzQsIDAuMDA0NTM4LCAwLjAwNDU0MSwgMC4wMDQ1NDIsIDAuMDA0NTQ0IiwgXAotICAgICAgICAgICIwLjAwNDM4NCwgMC4wMDQ1MSwgMC4wMDQ1MjcsIDAuMDA0NTMyLCAwLjAwNDUzNywgMC4wMDQ1MzksIDAuMDA0NTQxIiwgXAotICAgICAgICAgICIwLjAwNDM3MSwgMC4wMDQ1MSwgMC4wMDQ1MzMsIDAuMDA0NTQsIDAuMDA0NTQ2LCAwLjAwNDU0OSwgMC4wMDQ1NTIiLCBcCi0gICAgICAgICAgIjAuMDA0MzcyLCAwLjAwNDUwNSwgMC4wMDQ1MjksIDAuMDA0NTM3LCAwLjAwNDU0NCwgMC4wMDQ1NSwgMC4wMDQ1NTMiLCBcCi0gICAgICAgICAgIjAuMDA0MzkzLCAwLjAwNDUyNywgMC4wMDQ1NTYsIDAuMDA0NTY0LCAwLjAwNDU3MiwgMC4wMDQ1NzYsIDAuMDA0NTgiLCBcCi0gICAgICAgICAgIjAuMDA0Mzk4LCAwLjAwNDUzOCwgMC4wMDQ1NzQsIDAuMDA0NTg1LCAwLjAwNDU5MywgMC4wMDQ1OTUsIDAuMDA0NjAzIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IEJVRlg0ICoKLSAqIC0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChCVUZYNCkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjE5MzIxNDsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwOTEzNjc0OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDkxMzMzMTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA5MTM2NzQ7Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMS4wNDU0MzsKLSAgICBmdW5jdGlvbiA6ICJBIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0MTU5NCwgMC4xMTQ3MDEsIDAuMTg2ODA2LCAwLjIzODM4NSwgMC4zMjA3NjUsIDAuMzkzMDk3LCAwLjQ5NiIsIFwKLSAgICAgICAgICAiMC4wNTE4MDksIDAuMTI0ODgsIDAuMTk3MDU1LCAwLjI0ODYwNywgMC4zMzEwNzEsIDAuNDAzMDQ2LCAwLjUwNTk3MiIsIFwKLSAgICAgICAgICAiMC4wNjQzOTEsIDAuMTM3NDQ0LCAwLjIwOTY0NCwgMC4yNjEyNDIsIDAuMzQzNjQ5LCAwLjQxNTg0NywgMC41MTg4OTMiLCBcCi0gICAgICAgICAgIjAuMDc1NjUsIDAuMTQ4NzE5LCAwLjIyMDkwOCwgMC4yNzI0MzIsIDAuMzU0ODg3LCAwLjQyNzE4MiwgMC41MzAxIiwgXAotICAgICAgICAgICIwLjA4NTM0OCwgMC4xNTg2MzUsIDAuMjMwODAyLCAwLjI4MjMxNCwgMC4zNjQ4NDEsIDAuNDM3MDA3LCAwLjU0MDA0MiIsIFwKLSAgICAgICAgICAiMC4wOTg2NzUsIDAuMTcyNDQ0LCAwLjI0NDU0MiwgMC4yOTYwODYsIDAuMzc4NTAyLCAwLjQ1MDc5LCAwLjU1Mzc4NCIsIFwKLSAgICAgICAgICAiMC4xMDg4MjIsIDAuMTgzMTUyLCAwLjI1NTI2NSwgMC4zMDY3NjksIDAuMzg5MTg5LCAwLjQ2MTQzOSwgMC41NjQ0NiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzMTc3NSwgMC4xNzcyOTgsIDAuMzI2MTI2LCAwLjQzMTcxMSwgMC42MDI4NDksIDAuNzUwNDQ1LCAwLjk2MjU2NiIsIFwKLSAgICAgICAgICAiMC4wMzE2NjcsIDAuMTc3MzE5LCAwLjMyNjEwOSwgMC40MzE5MTksIDAuNjAxOTk4LCAwLjc1MTIzMSwgMC45NjMwOTYiLCBcCi0gICAgICAgICAgIjAuMDMyMDg2LCAwLjE3NzMzNCwgMC4zMjU0MjIsIDAuNDMxNjg0LCAwLjYwMjQ2OCwgMC43NTA0MzgsIDAuOTYyNDM4IiwgXAotICAgICAgICAgICIwLjAzMzMyNiwgMC4xNzcyMywgMC4zMjU0MTIsIDAuNDMxOTM5LCAwLjYwMTU1NSwgMC43NTA0MzksIDAuOTYyNjUyIiwgXAotICAgICAgICAgICIwLjAzNDk2LCAwLjE3Nzc0OCwgMC4zMjU0NywgMC40MzI0NSwgMC42MDE5NzcsIDAuNzUwODc4LCAwLjk2MjQ3OSIsIFwKLSAgICAgICAgICAiMC4wMzcyODEsIDAuMTc3OTk5LCAwLjMyNjE4MywgMC40MzI1MzYsIDAuNjAyNzE1LCAwLjc1MDM5NiwgMC45NjM1NDQiLCBcCi0gICAgICAgICAgIjAuMDM5NTUxLCAwLjE3ODU4NSwgMC4zMjYyODksIDAuNDMyMDcyLCAwLjYwMjQzMiwgMC43NTA0NzMsIDAuOTYzNDg2Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQyODYsIDAuMTE3MzY3LCAwLjE5MDc2MiwgMC4yNDMyMTIsIDAuMzI3MDE2LCAwLjQwMDMwNCwgMC41MDUwNDYiLCBcCi0gICAgICAgICAgIjAuMDUyODMyLCAwLjEyNzI5NCwgMC4yMDA2ODUsIDAuMjUzMTMxLCAwLjMzNjkzLCAwLjQxMDQ4OSwgMC41MTUxMDMiLCBcCi0gICAgICAgICAgIjAuMDY1MDYzLCAwLjEzOTU0OSwgMC4yMTI5NzksIDAuMjY1NDA0LCAwLjM0OTIwNywgMC40MjI2OTYsIDAuNTI3NDM0IiwgXAotICAgICAgICAgICIwLjA3NTcxLCAwLjE1MDI1MiwgMC4yMjM2MzcsIDAuMjc2MDUxLCAwLjM1OTkwMywgMC40MzM0NTYsIDAuNTM4MTA0IiwgXAotICAgICAgICAgICIwLjA4NDg0NiwgMC4xNTkxODcsIDAuMjMyNTQ5LCAwLjI4NTAwMSwgMC4zNjg4NzksIDAuNDQyMTc2LCAwLjU0NzA2MiIsIFwKLSAgICAgICAgICAiMC4wOTcyNjMsIDAuMTcyMDkyLCAwLjI0NDcwOSwgMC4yOTcxMDEsIDAuMzgxMDMyLCAwLjQ1NDI5MywgMC41NTkxMjciLCBcCi0gICAgICAgICAgIjAuMTA3MjQ1LCAwLjE4MjQ4LCAwLjI1NTcwNSwgMC4zMDgwNjgsIDAuMzkxODgzLCAwLjQ2NTI2NCwgMC41NzAwNCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzMTU5NCwgMC4xNzcxODUsIDAuMzI1NTA0LCAwLjQzMTMyMSwgMC42MDIyNSwgMC43NDkyMTMsIDAuOTY0MDcyIiwgXAotICAgICAgICAgICIwLjAzMTUxMSwgMC4xNzcyNDYsIDAuMzI1ODA2LCAwLjQzMTAyNywgMC42MDA3MTQsIDAuNzQ5MjY3LCAwLjk2MTIzMyIsIFwKLSAgICAgICAgICAiMC4wMzE4NzIsIDAuMTc3MjY0LCAwLjMyNDg4NCwgMC40MzExODEsIDAuNjAyMTcyLCAwLjc0OTM3MSwgMC45NjIxMiIsIFwKLSAgICAgICAgICAiMC4wMzMwMDcsIDAuMTc3MTQ0LCAwLjMyNTQ5NCwgMC40MzE5MjksIDAuNjAwNjgyLCAwLjc0OTI2NSwgMC45NjE4MjciLCBcCi0gICAgICAgICAgIjAuMDM0Mjc0LCAwLjE3NzQ0NywgMC4zMjUxNTMsIDAuNDMwODY2LCAwLjYwMTAwMSwgMC43NTEwMzIsIDAuOTYxODMxIiwgXAotICAgICAgICAgICIwLjAzNjE1NywgMC4xNzgwNTIsIDAuMzI2MDMsIDAuNDMxNTc0LCAwLjYwMDk1NiwgMC43NDkyMDgsIDAuOTYzNTMiLCBcCi0gICAgICAgICAgIjAuMDM3OTkyLCAwLjE3ODE4NSwgMC4zMjU2ODEsIDAuNDMyMjQzLCAwLjYwMjMzMiwgMC43NDk5OTUsIDAuOTYzNTkzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQyMzgsIDAuMDA0MzQ1LCAwLjAwNDM1NSwgMC4wMDQzNjEsIDAuMDA0MzYzLCAwLjAwNDM2NSwgMC4wMDQzNjYiLCBcCi0gICAgICAgICAgIjAuMDA0MTYxLCAwLjAwNDI5MywgMC4wMDQzMDksIDAuMDA0MzE2LCAwLjAwNDMyMSwgMC4wMDQzMiwgMC4wMDQzMjIiLCBcCi0gICAgICAgICAgIjAuMDA0MTMsIDAuMDA0MjcsIDAuMDA0Mjk0LCAwLjAwNDI5OSwgMC4wMDQzMDQsIDAuMDA0MzA5LCAwLjAwNDMxMiIsIFwKLSAgICAgICAgICAiMC4wMDQxMTksIDAuMDA0MjY1LCAwLjAwNDI5MywgMC4wMDQzMDEsIDAuMDA0MzExLCAwLjAwNDMxNSwgMC4wMDQzMTgiLCBcCi0gICAgICAgICAgIjAuMDA0MTQxLCAwLjAwNDI3OSwgMC4wMDQzMDUsIDAuMDA0MzE3LCAwLjAwNDMyOCwgMC4wMDQzMywgMC4wMDQzMzYiLCBcCi0gICAgICAgICAgIjAuMDA0MTkxLCAwLjAwNDMwNCwgMC4wMDQzMzcsIDAuMDA0MzQ1LCAwLjAwNDM2MiwgMC4wMDQzNjgsIDAuMDA0MzczIiwgXAotICAgICAgICAgICIwLjAwNDIzNiwgMC4wMDQzMzIsIDAuMDA0MzY4LCAwLjAwNDM4MSwgMC4wMDQzODYsIDAuMDA0Mzk4LCAwLjAwNDQwMyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1NTIzLCAwLjAwNTY4NCwgMC4wMDU3MDIsIDAuMDA1NzA3LCAwLjAwNTcxMSwgMC4wMDU3MTQsIDAuMDA1NzE2IiwgXAotICAgICAgICAgICIwLjAwNTQ1MiwgMC4wMDU2MzYsIDAuMDA1NjYsIDAuMDA1NjY4LCAwLjAwNTY3NCwgMC4wMDU2NzcsIDAuMDA1NjgiLCBcCi0gICAgICAgICAgIjAuMDA1NDE4LCAwLjAwNTYxNSwgMC4wMDU2NDYsIDAuMDA1NjU2LCAwLjAwNTY2NSwgMC4wMDU2NywgMC4wMDU2NzQiLCBcCi0gICAgICAgICAgIjAuMDA1NDE1LCAwLjAwNTYwMSwgMC4wMDU2NCwgMC4wMDU2NTMsIDAuMDA1NjY0LCAwLjAwNTY3LCAwLjAwNTY3NiIsIFwKLSAgICAgICAgICAiMC4wMDUzOTgsIDAuMDA1NjAzLCAwLjAwNTY0NSwgMC4wMDU2NjIsIDAuMDA1Njc2LCAwLjAwNTY4MywgMC4wMDU2ODkiLCBcCi0gICAgICAgICAgIjAuMDA1NDIsIDAuMDA1NjE2LCAwLjAwNTY1NywgMC4wMDU2NzYsIDAuMDA1NjkyLCAwLjAwNTcwMiwgMC4wMDU3MTEiLCBcCi0gICAgICAgICAgIjAuMDA1NDgzLCAwLjAwNTYzMiwgMC4wMDU2ODMsIDAuMDA1Njk3LCAwLjAwNTcxMywgMC4wMDU3MjQsIDAuMDA1NzMiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IENMS0FORDJYMiAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKENMS0FORDJYMikgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjEyODUwNTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNzg2Njg3OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDc4NjY4NzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA3ODMzNTg7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjI2LCAwLjAwMDIyNiwgMC4wMDAyMjYsIDAuMDAwMjI2LCAwLjAwMDIyNiwgMC4wMDAyMjYsIDAuMDAwMjI2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjQxLCAwLjAwMDIyOSwgMC4wMDAyMjgsIDAuMDAwMjI3LCAwLjAwMDIyNywgMC4wMDAyMjcsIDAuMDAwMjI3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA3NjMxNTY7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNzYzMTU2OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDc2Mjg1ODsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAwNjcsIDAuMDAwMDY3LCAwLjAwMDA2NywgMC4wMDAwNjcsIDAuMDAwMDY3LCAwLjAwMDA2NywgMC4wMDAwNjciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyODgsIDAuMDAwMjg4LCAwLjAwMDI4OCwgMC4wMDAyODgsIDAuMDAwMjg4LCAwLjAwMDI4OCwgMC4wMDAyODgiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC41MjY0MTsKLSAgICBmdW5jdGlvbiA6ICIoQSBCKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU1OTczLCAwLjE1ODA1NCwgMC4yMzkzNzUsIDAuMzQxMDMyLCAwLjQ0MjkzOSwgMC41NDQ0NzUsIDAuNjQ1ODgzIiwgXAotICAgICAgICAgICIwLjA2NDkyMSwgMC4xNjY5OTQsIDAuMjQ4MzU4LCAwLjM0OTk2MiwgMC40NTE4MywgMC41NTMzNDIsIDAuNjU1MDk2IiwgXAotICAgICAgICAgICIwLjA3NTM2MSwgMC4xNzc0MzcsIDAuMjU4NzU2LCAwLjM2MDQwNywgMC40NjIyNTksIDAuNTYzNzY4LCAwLjY2NTQzOCIsIFwKLSAgICAgICAgICAiMC4wODQ3NDMsIDAuMTg2ODc1LCAwLjI2ODIwNCwgMC4zNjk4NDUsIDAuNDcxNjU5LCAwLjU3MzMyLCAwLjY3NDg1MyIsIFwKLSAgICAgICAgICAiMC4wOTMxMTIsIDAuMTk1MzYzLCAwLjI3NjYzLCAwLjM3ODI4LCAwLjQ3OTkwOCwgMC41ODE1OCwgMC42ODMzMTkiLCBcCi0gICAgICAgICAgIjAuMTA0NTQ0LCAwLjIwNjk2NCwgMC4yODgyNSwgMC4zODk5MjUsIDAuNDkxNjQxLCAwLjU5MzU0NywgMC42OTUxNTgiLCBcCi0gICAgICAgICAgIjAuMTEzNDQ1LCAwLjIxNTQ1OSwgMC4yOTY3MTksIDAuMzk4MzMyLCAwLjUwMDA2OSwgMC42MDE2MzQsIDAuNzAzMzg3Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1MTcyMSwgMC4yNTg1NjYsIDAuNDI2MzgzLCAwLjYzNDkxNCwgMC44NDQ0NzEsIDEuMDU0MDQsIDEuMjY1MTciLCBcCi0gICAgICAgICAgIjAuMDUxNjQsIDAuMjU4MjUxLCAwLjQyNTQzOSwgMC42MzYzMDMsIDAuODQ0NTgzLCAxLjA1NDA5LCAxLjI2MzU1IiwgXAotICAgICAgICAgICIwLjA1MTg4OSwgMC4yNTgzMDIsIDAuNDI2Mjk2LCAwLjYzNjE3NCwgMC44NDQ1NzYsIDEuMDUzNTEsIDEuMjYzNTYiLCBcCi0gICAgICAgICAgIjAuMDUyNTU0LCAwLjI1ODU5NCwgMC40MjYzMTUsIDAuNjM2MTY4LCAwLjg0NDU0NSwgMS4wNTQwNCwgMS4yNjUyOSIsIFwKLSAgICAgICAgICAiMC4wNTMxNywgMC4yNTg3OTMsIDAuNDI1Mzk3LCAwLjYzNTA4MiwgMC44NDQ5MjQsIDEuMDU0MTMsIDEuMjYzNTIiLCBcCi0gICAgICAgICAgIjAuMDU0MzY2LCAwLjI1ODk5NCwgMC40MjYzMzksIDAuNjM1NDE1LCAwLjg0NDU1OSwgMS4wNTM5OCwgMS4yNjM1OCIsIFwKLSAgICAgICAgICAiMC4wNTUzODUsIDAuMjU5MTI5LCAwLjQyNjM4NiwgMC42MzU4NTQsIDAuODQ0OTUsIDEuMDUzODIsIDEuMjYzNTgiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU5NTk0LCAwLjE2MzY1MiwgMC4yNDY0NjgsIDAuMzQ5ODY5LCAwLjQ1MzI4OCwgMC41NTY3MjgsIDAuNjYwMTAxIiwgXAotICAgICAgICAgICIwLjA2OTI1NiwgMC4xNzMzNTcsIDAuMjU2MTU3LCAwLjM1OTYwNywgMC40NjMwMDEsIDAuNTY2NDIsIDAuNjY5ODIxIiwgXAotICAgICAgICAgICIwLjA4MTU0OCwgMC4xODU3MDIsIDAuMjY4NTA1LCAwLjM3MTkzOSwgMC40NzUzOTMsIDAuNTc4NzcyLCAwLjY4MjE4MiIsIFwKLSAgICAgICAgICAiMC4wOTMwNzQsIDAuMTk3MjIxLCAwLjI4MDAwNywgMC4zODM0NDcsIDAuNDg2ODcsIDAuNTkwMjkzLCAwLjY5MzY5MiIsIFwKLSAgICAgICAgICAiMC4xMDMxODEsIDAuMjA3Mzk0LCAwLjI5MDE5NywgMC4zOTM2NSwgMC40OTcwODIsIDAuNjAwNDc1LCAwLjcwMzg4IiwgXAotICAgICAgICAgICIwLjExNjk5OSwgMC4yMjEzNjMsIDAuMzA0MTU0LCAwLjQwNzU4NCwgMC41MTEwMTEsIDAuNjE0NDI3LCAwLjcxNzgzMiIsIFwKLSAgICAgICAgICAiMC4xMjc2NjgsIDAuMjMyMjA1LCAwLjMxNDk5MSwgMC40MTg0MDksIDAuNTIxODEsIDAuNjI1Mjc1LCAwLjcyODY1NiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTE3ODUsIDAuMjU4NzI5LCAwLjQyNjM4OSwgMC42MzYxNjksIDAuODQ1NTA5LCAxLjA1NjAyLCAxLjI2MzYyIiwgXAotICAgICAgICAgICIwLjA1MTc4NCwgMC4yNTgzNzQsIDAuNDI2NDMxLCAwLjYzNTE1NSwgMC44NDU3MzgsIDEuMDU0MzksIDEuMjYzNzQiLCBcCi0gICAgICAgICAgIjAuMDUxODksIDAuMjU4MzkxLCAwLjQyNjQyMywgMC42MzUyNTQsIDAuODQ2MTU2LCAxLjA1NDI5LCAxLjI2MzgzIiwgXAotICAgICAgICAgICIwLjA1MjM1LCAwLjI1ODQzOSwgMC40MjY0MzgsIDAuNjM2MjIsIDAuODQ1NzMyLCAxLjA1NDM3LCAxLjI2NDg3IiwgXAotICAgICAgICAgICIwLjA1MzIwMSwgMC4yNTg5MTUsIDAuNDI2NDUyLCAwLjYzNjIyNywgMC44NDQ4MjgsIDEuMDU1MDksIDEuMjY1MzciLCBcCi0gICAgICAgICAgIjAuMDU0ODM3LCAwLjI1OTAzMiwgMC40MjY0MjgsIDAuNjM2MTksIDAuODQ2MDY0LCAxLjA1NTk1LCAxLjI2NTc5IiwgXAotICAgICAgICAgICIwLjA1NTg2NywgMC4yNTg5NjUsIDAuNDI2MTI3LCAwLjYzNTkzMywgMC44NDYwMzQsIDEuMDU1NzUsIDEuMjY1ODgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDUzODE4LCAwLjE1NTk0NSwgMC4yMzcyNjQsIDAuMzM4OTI0LCAwLjQ0MDY3MiwgMC41NDI1MzEsIDAuNjQzODM2IiwgXAotICAgICAgICAgICIwLjA2MzEyOSwgMC4xNjUyMzIsIDAuMjQ2NTg3LCAwLjM0ODIxMSwgMC40NDk5MjgsIDAuNTUxNzA5LCAwLjY1MzA4OSIsIFwKLSAgICAgICAgICAiMC4wNzQ1NTksIDAuMTc2NjQ3LCAwLjI1Nzk3MSwgMC4zNTk2NDIsIDAuNDYxNDIsIDAuNTYzMDc4LCAwLjY2NDY0NiIsIFwKLSAgICAgICAgICAiMC4wODQzNTEsIDAuMTg2NDg1LCAwLjI2NzgyNywgMC4zNjk0ODEsIDAuNDcxMDc4LCAwLjU3Mjc3NSwgMC42NzQ1NDEiLCBcCi0gICAgICAgICAgIjAuMDkzMjQ4LCAwLjE5NTU0MiwgMC4yNzY4NjYsIDAuMzc4NjE4LCAwLjQ4MDIwMywgMC41ODE5MTksIDAuNjgzNDQ4IiwgXAotICAgICAgICAgICIwLjEwNDkwNCwgMC4yMDcxOCwgMC4yODg0NjgsIDAuMzkwMDksIDAuNDkxNzMxLCAwLjU5MzM0NywgMC42OTU0NDIiLCBcCi0gICAgICAgICAgIjAuMTEzODI4LCAwLjIxNTk5NCwgMC4yOTcyODgsIDAuMzk4OTQ5LCAwLjUwMDYxOCwgMC42MDI1MTEsIDAuNzA0MDMxIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1MTcwNSwgMC4yNTgyNTYsIDAuNDI2MzcxLCAwLjYzNDkxMSwgMC44NDQ1MjMsIDEuMDU0MjgsIDEuMjYzMjkiLCBcCi0gICAgICAgICAgIjAuMDUxNjI0LCAwLjI1ODMyNywgMC40MjU0ODYsIDAuNjM2MzA5LCAwLjg0NDQwNSwgMS4wNTQwNywgMS4yNjQzMSIsIFwKLSAgICAgICAgICAiMC4wNTE5NzYsIDAuMjU4NDg2LCAwLjQyNjI5MSwgMC42MzU4NjUsIDAuODQ0NTMxLCAxLjA1NDAzLCAxLjI2NTMiLCBcCi0gICAgICAgICAgIjAuMDUyODQ5LCAwLjI1ODY2NiwgMC40MjY0MTgsIDAuNjM0OTE0LCAwLjg0NjAzNCwgMS4wNTM3MywgMS4yNjM1MSIsIFwKLSAgICAgICAgICAiMC4wNTM2MjMsIDAuMjU4ODY5LCAwLjQyNTc5OSwgMC42MzUwMjksIDAuODQ0OTU3LCAxLjA1NDAyLCAxLjI2MzExIiwgXAotICAgICAgICAgICIwLjA1NTExNCwgMC4yNTkxMzUsIDAuNDI2MzkzLCAwLjYzNjE3LCAwLjg0NTA1OSwgMS4wNTU0LCAxLjI2MzQ0IiwgXAotICAgICAgICAgICIwLjA1NjUxMiwgMC4yNTkxMzQsIDAuNDI2NDUsIDAuNjM2MzQzLCAwLjg0NDk0NCwgMS4wNTQxMSwgMS4yNjM1MSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTY0OTYsIDAuMTYwNDg2LCAwLjI0MzI2NiwgMC4zNDY3MzUsIDAuNDUwNDM3LCAwLjU1Mzg0NCwgMC42NTcwNzIiLCBcCi0gICAgICAgICAgIjAuMDY2MTU4LCAwLjE3MDExNCwgMC4yNTI4ODIsIDAuMzU2MzI2LCAwLjQ1OTk1NSwgMC41NjM0NDIsIDAuNjY2NjYxIiwgXAotICAgICAgICAgICIwLjA3ODM0OSwgMC4xODIzMzcsIDAuMjY1MTA4LCAwLjM2ODU2NiwgMC40NzIxNiwgMC41NzU0NjQsIDAuNjc4OTkyIiwgXAotICAgICAgICAgICIwLjA4OTMwNCwgMC4xOTMyMDksIDAuMjc1OTkyLCAwLjM3OTQ0NCwgMC40ODMwNTQsIDAuNTg2NDQsIDAuNjg5NzI5IiwgXAotICAgICAgICAgICIwLjA5ODc0NywgMC4yMDI2NjksIDAuMjg1NDY3LCAwLjM4ODk1LCAwLjQ5MjY1NywgMC41OTU5LCAwLjY5OTIxMyIsIFwKLSAgICAgICAgICAiMC4xMTE3MDEsIDAuMjE1ODcyLCAwLjI5ODYwNSwgMC40MDIwNTMsIDAuNTA1NTI1LCAwLjYwOTI3OCwgMC43MTI1NjciLCBcCi0gICAgICAgICAgIjAuMTIyMDM1LCAwLjIyNjA5NywgMC4zMDg3OTksIDAuNDEyMjkzLCAwLjUxNTc2MywgMC42MTkzMjIsIDAuNzIyNTYyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1MTQ0LCAwLjI1ODQ0NSwgMC40MjYyODgsIDAuNjM0NTE4LCAwLjg0NDMxNSwgMS4wNTM0LCAxLjI2MjQ0IiwgXAotICAgICAgICAgICIwLjA1MTQyMiwgMC4yNTgwODgsIDAuNDI2MTU3LCAwLjYzNjI4NSwgMC44NDQwNDksIDEuMDUzNDIsIDEuMjY1NzYiLCBcCi0gICAgICAgICAgIjAuMDUxNjEyLCAwLjI1ODU0OSwgMC40MjYzMjIsIDAuNjM0NTExLCAwLjg0NDAyNywgMS4wNTMwNywgMS4yNjMyNyIsIFwKLSAgICAgICAgICAiMC4wNTIyODQsIDAuMjU4NTg0LCAwLjQyNjMyOCwgMC42MzYyODgsIDAuODQ0MDI3LCAxLjA1Mzc3LCAxLjI2NTc2IiwgXAotICAgICAgICAgICIwLjA1MzI2NSwgMC4yNTg2NzksIDAuNDI2MzgxLCAwLjYzNDM3NCwgMC44NDQ2NDksIDEuMDUzODgsIDEuMjYyNTciLCBcCi0gICAgICAgICAgIjAuMDU1MTM3LCAwLjI1OTAxOCwgMC40MjYzNjYsIDAuNjM1OTA4LCAwLjg0MzgyNSwgMS4wNTMxNCwgMS4yNjI4NyIsIFwKLSAgICAgICAgICAiMC4wNTYyOTYsIDAuMjU4NjQ1LCAwLjQyNjUxNiwgMC42MzQ5MjksIDAuODQ0MTAyLCAxLjA1MzQ1LCAxLjI2NDY5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyNDAzLCAwLjAwMjQyNywgMC4wMDI0MjksIDAuMDAyNDMxLCAwLjAwMjQzMSwgMC4wMDI0MzEsIDAuMDAyNDMxIiwgXAotICAgICAgICAgICIwLjAwMjM3MywgMC4wMDI0MDQsIDAuMDAyNDA3LCAwLjAwMjQxLCAwLjAwMjQwOSwgMC4wMDI0MDksIDAuMDAyNDA5IiwgXAotICAgICAgICAgICIwLjAwMjM1MywgMC4wMDIzOTIsIDAuMDAyMzk2LCAwLjAwMjQsIDAuMDAyMzk5LCAwLjAwMjM5OSwgMC4wMDI0IiwgXAotICAgICAgICAgICIwLjAwMjM0MiwgMC4wMDIzODUsIDAuMDAyMzksIDAuMDAyMzkzLCAwLjAwMjM5NSwgMC4wMDIzOTYsIDAuMDAyMzk2IiwgXAotICAgICAgICAgICIwLjAwMjM0NCwgMC4wMDIzODgsIDAuMDAyMzkyLCAwLjAwMjM5NSwgMC4wMDIzOTYsIDAuMDAyMzk2LCAwLjAwMjM5NyIsIFwKLSAgICAgICAgICAiMC4wMDIzNDQsIDAuMDAyMzg4LCAwLjAwMjM5OCwgMC4wMDI0MDEsIDAuMDAyNDAyLCAwLjAwMjQwMiwgMC4wMDI0MDMiLCBcCi0gICAgICAgICAgIjAuMDAyMzQxLCAwLjAwMjM5MywgMC4wMDI0MDIsIDAuMDAyNDA3LCAwLjAwMjQwOSwgMC4wMDI0MSwgMC4wMDI0MTIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDM3MDMsIDAuMDAzNzU2LCAwLjAwMzc2MiwgMC4wMDM3NjUsIDAuMDAzNzY3LCAwLjAwMzc2NywgMC4wMDM3NjgiLCBcCi0gICAgICAgICAgIjAuMDAzNjYyLCAwLjAwMzcyNSwgMC4wMDM3MzMsIDAuMDAzNzM3LCAwLjAwMzczOSwgMC4wMDM3NCwgMC4wMDM3NDEiLCBcCi0gICAgICAgICAgIjAuMDAzNjQ2LCAwLjAwMzcxOCwgMC4wMDM3MjgsIDAuMDAzNzM0LCAwLjAwMzczNywgMC4wMDM3MzgsIDAuMDAzNzM5IiwgXAotICAgICAgICAgICIwLjAwMzYzOCwgMC4wMDM3MTgsIDAuMDAzNzMxLCAwLjAwMzczOCwgMC4wMDM3NDEsIDAuMDAzNzQ0LCAwLjAwMzc0NSIsIFwKLSAgICAgICAgICAiMC4wMDM2NDIsIDAuMDAzNzI0LCAwLjAwMzczOSwgMC4wMDM3NDcsIDAuMDAzNzUxLCAwLjAwMzc1NCwgMC4wMDM3NTUiLCBcCi0gICAgICAgICAgIjAuMDAzNjY1LCAwLjAwMzc0NiwgMC4wMDM3NjIsIDAuMDAzNzcxLCAwLjAwMzc3NiwgMC4wMDM3NzksIDAuMDAzNzgxIiwgXAotICAgICAgICAgICIwLjAwMzY4OCwgMC4wMDM3NjgsIDAuMDAzNzg1LCAwLjAwMzc5NiwgMC4wMDM4MDEsIDAuMDAzODA1LCAwLjAwMzgwNyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjQwNCwgMC4wMDI0MzgsIDAuMDAyNDQxLCAwLjAwMjQ0MywgMC4wMDI0NDIsIDAuMDAyNDQzLCAwLjAwMjQ0NCIsIFwKLSAgICAgICAgICAiMC4wMDIzNjgsIDAuMDAyNDExLCAwLjAwMjQxNiwgMC4wMDI0MTcsIDAuMDAyNDIyLCAwLjAwMjQxOSwgMC4wMDI0MTciLCBcCi0gICAgICAgICAgIjAuMDAyMzU1LCAwLjAwMjQwMiwgMC4wMDI0MDYsIDAuMDAyNDEsIDAuMDAyNDEzLCAwLjAwMjQxNCwgMC4wMDI0MTUiLCBcCi0gICAgICAgICAgIjAuMDAyMzU0LCAwLjAwMjQwNSwgMC4wMDI0MTQsIDAuMDAyNDE5LCAwLjAwMjQxOSwgMC4wMDI0MjIsIDAuMDAyNDIzIiwgXAotICAgICAgICAgICIwLjAwMjM2MSwgMC4wMDI0MTEsIDAuMDAyNDIsIDAuMDAyNDI2LCAwLjAwMjQyNywgMC4wMDI0MywgMC4wMDI0MzEiLCBcCi0gICAgICAgICAgIjAuMDAyMzcsIDAuMDAyNDI5LCAwLjAwMjQ0MiwgMC4wMDI0NDMsIDAuMDAyNDQ0LCAwLjAwMjQ0NiwgMC4wMDI0NSIsIFwKLSAgICAgICAgICAiMC4wMDIzOTYsIDAuMDAyNDUzLCAwLjAwMjQ2MiwgMC4wMDI0NjYsIDAuMDAyNDcsIDAuMDAyNDcyLCAwLjAwMjQ3NiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzMxNiwgMC4wMDMzNzcsIDAuMDAzMzg0LCAwLjAwMzM4NywgMC4wMDMzODksIDAuMDAzMzksIDAuMDAzMzkxIiwgXAotICAgICAgICAgICIwLjAwMzI1NiwgMC4wMDMzMjksIDAuMDAzMzM3LCAwLjAwMzM0MiwgMC4wMDMzNDQsIDAuMDAzMzQ1LCAwLjAwMzM0NiIsIFwKLSAgICAgICAgICAiMC4wMDMyMzgsIDAuMDAzMzE0LCAwLjAwMzMyNSwgMC4wMDMzMzEsIDAuMDAzMzM0LCAwLjAwMzMzNiwgMC4wMDMzMzciLCBcCi0gICAgICAgICAgIjAuMDAzMjE4LCAwLjAwMzMxMSwgMC4wMDMzMjYsIDAuMDAzMzMzLCAwLjAwMzMzNywgMC4wMDMzNCwgMC4wMDMzNDIiLCBcCi0gICAgICAgICAgIjAuMDAzMjM3LCAwLjAwMzMyNywgMC4wMDMzNDMsIDAuMDAzMzUxLCAwLjAwMzM1NiwgMC4wMDMzNTksIDAuMDAzMzYxIiwgXAotICAgICAgICAgICIwLjAwMzI0MywgMC4wMDMzMjYsIDAuMDAzMzQ0LCAwLjAwMzM1NCwgMC4wMDMzNTksIDAuMDAzMzYyLCAwLjAwMzM2NCIsIFwKLSAgICAgICAgICAiMC4wMDMyNjIsIDAuMDAzMzQzLCAwLjAwMzM2MywgMC4wMDMzNzQsIDAuMDAzMzc2LCAwLjAwMzM4MiwgMC4wMDMzODIiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IENMS0FORDJYNiAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKENMS0FORDJYNikgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjQ0ODY3NTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAyNTE5NDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDI1MTk0OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMjUwNjQ1OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDgyMSwgMC4wMDA4MjEsIDAuMDAwODIxLCAwLjAwMDgyLCAwLjAwMDgyLCAwLjAwMDgyLCAwLjAwMDgyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwODY5LCAwLjAwMDgzLCAwLjAwMDgyNiwgMC4wMDA4MjQsIDAuMDAwODI0LCAwLjAwMDgyNCwgMC4wMDA4MjQiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMjM5OTM3OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMjM5OTM3OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMjM5NzYxOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDE1OCwgMC4wMDAxNTcsIDAuMDAwMTU3LCAwLjAwMDE1NywgMC4wMDAxNTcsIDAuMDAwMTU3LCAwLjAwMDE1NyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTA0LCAwLjAwMTA0MSwgMC4wMDEwNDEsIDAuMDAxMDQyLCAwLjAwMTA0MSwgMC4wMDEwNDEsIDAuMDAxMDQxIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDEuNTEzMTk7Ci0gICAgZnVuY3Rpb24gOiAiKEEgQikiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM4MDUxLCAwLjA4NzcyLCAwLjEzNTkxNywgMC4xNzAzMDUsIDAuMjI1MzgyLCAwLjI3MzY0OSwgMC4zNDIzOTQiLCBcCi0gICAgICAgICAgIjAuMDQ2OTQ0LCAwLjA5NjYxNiwgMC4xNDQ4MjEsIDAuMTc5MjY3LCAwLjIzNDM1LCAwLjI4MjU3OSwgMC4zNTExNTUiLCBcCi0gICAgICAgICAgIjAuMDU3MTQ3LCAwLjEwNjkyLCAwLjE1NTEzNSwgMC4xODk1NTEsIDAuMjQ0NjQ1LCAwLjI5MjgyMiwgMC4zNjE4NyIsIFwKLSAgICAgICAgICAiMC4wNjU5MzcsIDAuMTE1OTQxLCAwLjE2NDE1MywgMC4xOTg1NjQsIDAuMjUzNjI4LCAwLjMwMTg5NCwgMC4zNzA3NjgiLCBcCi0gICAgICAgICAgIjAuMDczNDk3LCAwLjEyMzY2NiwgMC4xNzE4NzMsIDAuMjA2MzE4LCAwLjI2MTQwMiwgMC4zMDk1MjIsIDAuMzc4Mzc2IiwgXAotICAgICAgICAgICIwLjA4Mzg4NCwgMC4xMzQ2NjYsIDAuMTgyOTAzLCAwLjIxNzI5OCwgMC4yNzIzODUsIDAuMzIwNTM0LCAwLjM4OTMzMiIsIFwKLSAgICAgICAgICAiMC4wOTE1NDIsIDAuMTQyODY2LCAwLjE5MTE0MywgMC4yMjU1NDcsIDAuMjgwNjA2LCAwLjMyODczOCwgMC4zOTc1NzkiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjQ1MSwgMC4xMjA3OTcsIDAuMjE5MzMsIDAuMjkwMTUsIDAuNDA0NTYsIDAuNTAzMTc0LCAwLjY0NjA1IiwgXAotICAgICAgICAgICIwLjAyNDQ2OSwgMC4xMjA4MTYsIDAuMjE5NjQ4LCAwLjI5MDI5NSwgMC40MDM2NTgsIDAuNTAzMTQ4LCAwLjY0NTIwMSIsIFwKLSAgICAgICAgICAiMC4wMjQ5NDcsIDAuMTIwOTU5LCAwLjIxOTY0NSwgMC4yOTA4MSwgMC40MDQwNjcsIDAuNTAzMDU2LCAwLjY0NTAzNSIsIFwKLSAgICAgICAgICAiMC4wMjU4NjUsIDAuMTIxMjg0LCAwLjIxOTk3NywgMC4yOTA4NTQsIDAuNDA0NTA5LCAwLjUwMzE2MywgMC42NDU0NTkiLCBcCi0gICAgICAgICAgIjAuMDI2NjYsIDAuMTIxNjQxLCAwLjIyMDA2NywgMC4yOTEwNzIsIDAuNDAzNywgMC41MDQwMjUsIDAuNjQ0OTU3IiwgXAotICAgICAgICAgICIwLjAyODI0MSwgMC4xMjE5OTYsIDAuMjIwMzEzLCAwLjI5MDc1MywgMC40MDQ3NDUsIDAuNTA0MDkyLCAwLjY0NjE5OCIsIFwKLSAgICAgICAgICAiMC4wMzAwMDksIDAuMTIyNjM3LCAwLjIyMDM2MiwgMC4yOTExMjIsIDAuNDAzOTM4LCAwLjUwNDA0MSwgMC42NDYyOTEiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDEwNzMsIDAuMDkzNTU0LCAwLjE0NDU1OCwgMC4xODA5NTgsIDAuMjM5MTY2LCAwLjI5MDA2NCwgMC4zNjI3NjgiLCBcCi0gICAgICAgICAgIjAuMDUwNzcsIDAuMTAzMjY2LCAwLjE1NDI5NCwgMC4xOTA3MDcsIDAuMjQ4ODg3LCAwLjI5OTgwOSwgMC4zNzI1MjIiLCBcCi0gICAgICAgICAgIjAuMDYyOTkzLCAwLjExNTUwMywgMC4xNjY1MzcsIDAuMjAyOTUzLCAwLjI2MTE0NCwgMC4zMTIwNTIsIDAuMzg0NzcyIiwgXAotICAgICAgICAgICIwLjA3MzU2MywgMC4xMjYyMTksIDAuMTc3MjcyLCAwLjIxMzY4NCwgMC4yNzE4OTIsIDAuMzIyNzksIDAuMzk1NTI2IiwgXAotICAgICAgICAgICIwLjA4Mjc4NSwgMC4xMzU3OSwgMC4xODY4MjQsIDAuMjIzMjI2LCAwLjI4MTQ1MiwgMC4zMzIzNTMsIDAuNDA1MDY0IiwgXAotICAgICAgICAgICIwLjA5NTQxNywgMC4xNDg3NDMsIDAuMTk5NzQxLCAwLjIzNjE0NCwgMC4yOTQzNSwgMC4zNDUyNzcsIDAuNDE3OTkyIiwgXAotICAgICAgICAgICIwLjEwNDg2NiwgMC4xNTg2NTEsIDAuMjA5NjcxLCAwLjI0NjA4MiwgMC4zMDQyOTksIDAuMzU1MTczLCAwLjQyNzg5MyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyNTAwMSwgMC4xMjQ1NzIsIDAuMjI2ODM1LCAwLjI5OTU3NSwgMC40MTcxOCwgMC41MTg4NjcsIDAuNjY2NTI1IiwgXAotICAgICAgICAgICIwLjAyNTAxNSwgMC4xMjQ3NDYsIDAuMjI2NTExLCAwLjMwMDAxNCwgMC40MTY5NDQsIDAuNTE5ODk3LCAwLjY2NTU4MiIsIFwKLSAgICAgICAgICAiMC4wMjUzODIsIDAuMTI0NzkxLCAwLjIyNjg4OSwgMC4zMDAwMiwgMC40MTczMDgsIDAuNTE5NjQ0LCAwLjY2NTQ1NyIsIFwKLSAgICAgICAgICAiMC4wMjY1MDksIDAuMTI1MDk2LCAwLjIyNjc2LCAwLjI5OTM4MywgMC40MTY0MjEsIDAuNTE5OTMzLCAwLjY2NTg5OCIsIFwKLSAgICAgICAgICAiMC4wMjc0NzksIDAuMTI1MjQ0LCAwLjIyNzAwMywgMC4zMDAwNDUsIDAuNDE3MTEzLCAwLjUxOTgxMywgMC42NjY1ODMiLCBcCi0gICAgICAgICAgIjAuMDI5MjU4LCAwLjEyNTU5NywgMC4yMjY5MjQsIDAuMjk5OTk1LCAwLjQxNzAxMiwgMC41MTk1ODksIDAuNjY1NjExIiwgXAotICAgICAgICAgICIwLjAzMDc2MywgMC4xMjYwNjcsIDAuMjI3MjgzLCAwLjMwMDEwOSwgMC40MTY3MDcsIDAuNTE5NjI4LCAwLjY2NTUzOCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzNTc2NCwgMC4wODU0NDQsIDAuMTMzNjQ0LCAwLjE2ODA5MywgMC4yMjMxOTcsIDAuMjcxMzksIDAuMzQwMTEzIiwgXAotICAgICAgICAgICIwLjA0NDk4OCwgMC4wOTQ2NjIsIDAuMTQyODc1LCAwLjE3NzMyMywgMC4yMzIzNzYsIDAuMjgwNTY1LCAwLjM0OTI3MSIsIFwKLSAgICAgICAgICAiMC4wNTU3ODMsIDAuMTA1NTg2LCAwLjE1Mzc5OSwgMC4xODgyNzUsIDAuMjQzMzExLCAwLjI5MTU4MiwgMC4zNjAzMzQiLCBcCi0gICAgICAgICAgIjAuMDY0ODUzLCAwLjExNTA1MSwgMC4xNjMxMTUsIDAuMTk3NiwgMC4yNTI2MjcsIDAuMzAwOTQ3LCAwLjM2OTYyOCIsIFwKLSAgICAgICAgICAiMC4wNzI1NjYsIDAuMTIyOTQ5LCAwLjE3MTE2NywgMC4yMDU1ODYsIDAuMjYwNjU4LCAwLjMwODkxMSwgMC4zNzc3MzEiLCBcCi0gICAgICAgICAgIjAuMDgzMTE1LCAwLjEzMzY2OSwgMC4xODE5NDUsIDAuMjE2MzQ0LCAwLjI3MTM5NSwgMC4zMTk2MzEsIDAuMzg4NDI2IiwgXAotICAgICAgICAgICIwLjA5MDg3OCwgMC4xNDE4NiwgMC4xODk5MjIsIDAuMjI0MzQyLCAwLjI3OTM2OSwgMC4zMjc1NjMsIDAuMzk2Mzk5Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDI0NTQzLCAwLjEyMDgwMiwgMC4yMTk2MiwgMC4yOTAyOTcsIDAuNDAzODM5LCAwLjUwMzE2NSwgMC42NDYzNTgiLCBcCi0gICAgICAgICAgIjAuMDI0NTA2LCAwLjEyMDgwOSwgMC4yMTk2NDgsIDAuMjkwMjk1LCAwLjQwNDAzNCwgMC41MDMwNTcsIDAuNjQ2MDUzIiwgXAotICAgICAgICAgICIwLjAyNTM4NiwgMC4xMjEsIDAuMjE5ODU0LCAwLjI5MDMzMywgMC40MDQwNDcsIDAuNTAzMTUxLCAwLjY0NDkxOSIsIFwKLSAgICAgICAgICAiMC4wMjY4LCAwLjEyMTQ3LCAwLjIxOTc1NSwgMC4yOTAzMzQsIDAuNDA0NTMzLCAwLjUwMzEzMiwgMC42NDYyMjgiLCBcCi0gICAgICAgICAgIjAuMDI3OTc3LCAwLjEyMTcyMywgMC4yMTk5ODMsIDAuMjkxMDU2LCAwLjQwNDYwNSwgMC41MDMxODEsIDAuNjQ1MDkyIiwgXAotICAgICAgICAgICIwLjAyOTUyNywgMC4xMjI1MzEsIDAuMjIwMzM1LCAwLjI5MTEyNywgMC40MDQ1OTQsIDAuNTAzMjMzLCAwLjY0NjQyMSIsIFwKLSAgICAgICAgICAiMC4wMzExNTgsIDAuMTIzLCAwLjIyMDU0OSwgMC4yOTExMjYsIDAuNDA0MzM4LCAwLjUwNDI5MSwgMC42NDY1NDUiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzgxMjcsIDAuMDkwNDMyLCAwLjE0MTM5MiwgMC4xNzc3NjksIDAuMjM1OTY4LCAwLjI4Njg0LCAwLjM1OTU0NiIsIFwKLSAgICAgICAgICAiMC4wNDc3MTYsIDAuMDk5OTg2LCAwLjE1MDk0OCwgMC4xODczMiwgMC4yNDU2MDYsIDAuMjk2NDI0LCAwLjM2OTIzMiIsIFwKLSAgICAgICAgICAiMC4wNTk0MTQsIDAuMTExNzU0LCAwLjE2MjcyMSwgMC4xOTkxMTEsIDAuMjU3MzIzLCAwLjMwODM0MSwgMC4zODA5NjUiLCBcCi0gICAgICAgICAgIjAuMDY5NTU1LCAwLjEyMjA5OCwgMC4xNzMwNjIsIDAuMjA5NDY1LCAwLjI2NzYzMSwgMC4zMTg1NzcsIDAuMzkxMzY4IiwgXAotICAgICAgICAgICIwLjA3ODE1MiwgMC4xMzEwOTYsIDAuMTgxODIzLCAwLjIxODIwMiwgMC4yNzY0MjUsIDAuMzI3MzQzLCAwLjQwMDA3OSIsIFwKLSAgICAgICAgICAiMC4wODk3NTMsIDAuMTQyNzcsIDAuMTkzNjgsIDAuMjMwMDQ2LCAwLjI4ODE5OSwgMC4zMzkxMjEsIDAuNDExODU1IiwgXAotICAgICAgICAgICIwLjA5ODYyOSwgMC4xNTIwMDgsIDAuMjAzMjQ1LCAwLjIzOTQ5OCwgMC4yOTc0OTYsIDAuMzQ4MzgxLCAwLjQyMTMxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDI0Njg5LCAwLjEyNDM2NCwgMC4yMjY1MSwgMC4yOTkyNTgsIDAuNDE2MzQ2LCAwLjUxOTYzOSwgMC42NjUxOCIsIFwKLSAgICAgICAgICAiMC4wMjQ2OTksIDAuMTI0MjcsIDAuMjI2MTAyLCAwLjI5OTkwNCwgMC40MTU5ODMsIDAuNTE4NDUsIDAuNjY0OTc2IiwgXAotICAgICAgICAgICIwLjAyNTI4NSwgMC4xMjQ0MDUsIDAuMjI2MzA1LCAwLjI5OTk1MiwgMC40MTU5MzksIDAuNTE4NTEzLCAwLjY2NTI4OCIsIFwKLSAgICAgICAgICAiMC4wMjY1NzEsIDAuMTI0ODE4LCAwLjIyNjc2NywgMC4yOTkwNSwgMC40MTcwMTMsIDAuNTE4MjcyLCAwLjY2NTcxNiIsIFwKLSAgICAgICAgICAiMC4wMjc2ODUsIDAuMTI1MDkyLCAwLjIyNjg0OCwgMC4zMDAwMDYsIDAuNDE2MjM2LCAwLjUxOTA5LCAwLjY2NDQ5NiIsIFwKLSAgICAgICAgICAiMC4wMjk1MjEsIDAuMTI1NjQsIDAuMjI3MTU4LCAwLjMwMDIzMSwgMC40MTcyNTcsIDAuNTE5OTM2LCAwLjY2NjY3IiwgXAotICAgICAgICAgICIwLjAzMTMzOSwgMC4xMjYxNzQsIDAuMjI3MTM1LCAwLjMwMDMzNCwgMC40MTY2OSwgMC41MTk5NTUsIDAuNjY1MTQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNzM0OCwgMC4wMDc1NTYsIDAuMDA3NTc5LCAwLjAwNzU4LCAwLjAwNzU5MiwgMC4wMDc1OTYsIDAuMDA3NjA2IiwgXAotICAgICAgICAgICIwLjAwNzIyLCAwLjAwNzQ1LCAwLjAwNzQ3OSwgMC4wMDc0ODksIDAuMDA3NDk0LCAwLjAwNzQ5OSwgMC4wMDc1MDEiLCBcCi0gICAgICAgICAgIjAuMDA3MTM2LCAwLjAwNzM5MiwgMC4wMDc0MjYsIDAuMDA3NDM4LCAwLjAwNzQ0OCwgMC4wMDc0NTIsIDAuMDA3NDU4IiwgXAotICAgICAgICAgICIwLjAwNzEwMSwgMC4wMDczNTQsIDAuMDA3NDAyLCAwLjAwNzQxMywgMC4wMDc0MjMsIDAuMDA3NDM5LCAwLjAwNzQ0MyIsIFwKLSAgICAgICAgICAiMC4wMDcwODUsIDAuMDA3MzM5LCAwLjAwNzQsIDAuMDA3NDExLCAwLjAwNzQyNywgMC4wMDc0MzMsIDAuMDA3NDQiLCBcCi0gICAgICAgICAgIjAuMDA3MDkyLCAwLjAwNzM0MSwgMC4wMDczOTgsIDAuMDA3NDIzLCAwLjAwNzQ0NSwgMC4wMDc0NTIsIDAuMDA3NDU3IiwgXAotICAgICAgICAgICIwLjAwNzE3MiwgMC4wMDczNjksIDAuMDA3NDI5LCAwLjAwNzQ1MSwgMC4wMDc0NywgMC4wMDc0ODIsIDAuMDA3NDkzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTE0MzgsIDAuMDExNzQxLCAwLjAxMTc4NSwgMC4wMTE3OTgsIDAuMDExODEsIDAuMDExODE2LCAwLjAxMTgyMSIsIFwKLSAgICAgICAgICAiMC4wMTEyNzcsIDAuMDExNjAyLCAwLjAxMTY1NywgMC4wMTE2NzQsIDAuMDExNjksIDAuMDExNjk4LCAwLjAxMTcwNiIsIFwKLSAgICAgICAgICAiMC4wMTEyMTksIDAuMDExNTQ5LCAwLjAxMTYyLCAwLjAxMTY0MywgMC4wMTE2NjUsIDAuMDExNjc2LCAwLjAxMTY4NiIsIFwKLSAgICAgICAgICAiMC4wMTEyNTgsIDAuMDExNTk1LCAwLjAxMTY0OSwgMC4wMTE2NzcsIDAuMDExNjk2LCAwLjAxMTcxLCAwLjAxMTcyMyIsIFwKLSAgICAgICAgICAiMC4wMTEyODYsIDAuMDExNTkzLCAwLjAxMTY4MiwgMC4wMTE3MTMsIDAuMDExNzQ0LCAwLjAxMTc2MSwgMC4wMTE3NzciLCBcCi0gICAgICAgICAgIjAuMDExMzgxLCAwLjAxMTY2NywgMC4wMTE3NjMsIDAuMDExNzk4LCAwLjAxMTgzNCwgMC4wMTE4NTMsIDAuMDExODcyIiwgXAotICAgICAgICAgICIwLjAxMTQ4MywgMC4wMTE3NTUsIDAuMDExODUyLCAwLjAxMTg5MSwgMC4wMTE5MywgMC4wMTE5NTEsIDAuMDExOTcxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDczMzEsIDAuMDA3NTUyLCAwLjAwNzU3NCwgMC4wMDc1ODcsIDAuMDA3NTk2LCAwLjAwNzU5NywgMC4wMDc2MDEiLCBcCi0gICAgICAgICAgIjAuMDA3MTcyLCAwLjAwNzQyLCAwLjAwNzQ1NiwgMC4wMDc0NjcsIDAuMDA3NDgyLCAwLjAwNzQ3OSwgMC4wMDc0ODkiLCBcCi0gICAgICAgICAgIjAuMDA3MTU4LCAwLjAwNzM4NywgMC4wMDc0NCwgMC4wMDc0NTksIDAuMDA3NDY5LCAwLjAwNzQ3OSwgMC4wMDc0ODYiLCBcCi0gICAgICAgICAgIjAuMDA3MTY1LCAwLjAwNzM4NSwgMC4wMDc0NDYsIDAuMDA3NDYxLCAwLjAwNzQ3NSwgMC4wMDc0OTEsIDAuMDA3NDkyIiwgXAotICAgICAgICAgICIwLjAwNzE5OCwgMC4wMDc0MTIsIDAuMDA3NDczLCAwLjAwNzQ5NCwgMC4wMDc1MDksIDAuMDA3NTI3LCAwLjAwNzUzNyIsIFwKLSAgICAgICAgICAiMC4wMDcyNTksIDAuMDA3NDg2LCAwLjAwNzU1NywgMC4wMDc1ODQsIDAuMDA3NjA5LCAwLjAwNzYyNCwgMC4wMDc2MzkiLCBcCi0gICAgICAgICAgIjAuMDA3Mzc0LCAwLjAwNzU4NywgMC4wMDc2NDYsIDAuMDA3Njc3LCAwLjAwNzcwNiwgMC4wMDc3MjMsIDAuMDA3NzM4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDk4NzEsIDAuMDEwMTY5LCAwLjAxMDIwOCwgMC4wMTAyMiwgMC4wMTAyMywgMC4wMTAyMzYsIDAuMDEwMjQxIiwgXAotICAgICAgICAgICIwLjAwOTYzOCwgMC4wMDk5NzQsIDAuMDEwMDI2LCAwLjAxMDA0MiwgMC4wMTAwNTcsIDAuMDEwMDY0LCAwLjAxMDA3MSIsIFwKLSAgICAgICAgICAiMC4wMDk2MTYsIDAuMDA5OTI5LCAwLjAwOTk5NSwgMC4wMTAwMTcsIDAuMDEwMDM2LCAwLjAxMDA0NywgMC4wMTAwNTYiLCBcCi0gICAgICAgICAgIjAuMDA5NjA0LCAwLjAwOTkwMiwgMC4wMDk5NzgsIDAuMDEwMDA1LCAwLjAxMDAyOSwgMC4wMTAwNDEsIDAuMDEwMDUzIiwgXAotICAgICAgICAgICIwLjAwOTY0NiwgMC4wMDk5NTksIDAuMDEwMDQ4LCAwLjAxMDA3OCwgMC4wMTAxMDcsIDAuMDEwMTIzLCAwLjAxMDEzNyIsIFwKLSAgICAgICAgICAiMC4wMDk2NDgsIDAuMDA5OTc0LCAwLjAxMDA3LCAwLjAxMDEwNCwgMC4wMTAxMzcsIDAuMDEwMTU1LCAwLjAxMDE3MiIsIFwKLSAgICAgICAgICAiMC4wMDk4MzEsIDAuMDEwMDQsIDAuMDEwMTUxLCAwLjAxMDE4MiwgMC4wMTAyMDIsIDAuMDEwMjI1LCAwLjAxMDI1OSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogQ0xLQlVGWDEyICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoQ0xLQlVGWDEyKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuNjAxNzYyOwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDIzMzgxMjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDIzMzc0NTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDIzMzgxMjsKLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAzLjAzMDM4OwotICAgIGZ1bmN0aW9uIDogIkEiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzMzA2LCAwLjAzNTc5LCAwLjA0ODc2NiwgMC4wNTkzNTUsIDAuMDczMjExLCAwLjEwMDc2NCwgMC4xMTc4OTIiLCBcCi0gICAgICAgICAgIjAuMDQzMjA0LCAwLjA0NTkwOCwgMC4wNTg5NywgMC4wNjk1MjUsIDAuMDgzMzgsIDAuMTEwOTEsIDAuMTI4MDkyIiwgXAotICAgICAgICAgICIwLjA1NTY3LCAwLjA1ODM5MSwgMC4wNzE0OCwgMC4wODIwNDksIDAuMDk1ODk2LCAwLjEyMzQyNywgMC4xNDA2MTMiLCBcCi0gICAgICAgICAgIjAuMDY2NTQ4LCAwLjA2OTQxLCAwLjA4MjcxMSwgMC4wOTMyODgsIDAuMTA3MjAyLCAwLjEzNDY1LCAwLjE1MTg0IiwgXAotICAgICAgICAgICIwLjA3NTY3MiwgMC4wNzg2OTYsIDAuMDkyMTU5LCAwLjEwMjgwMiwgMC4xMTY3NjgsIDAuMTQ0MTc4LCAwLjE2MTMzNSIsIFwKLSAgICAgICAgICAiMC4wODg2NjcsIDAuMDkxOTQyLCAwLjEwNjIxMiwgMC4xMTY4NjYsIDAuMTMwODM0LCAwLjE1ODMxNiwgMC4xNzU0NjciLCBcCi0gICAgICAgICAgIjAuMDk4MDA3LCAwLjEwMTM4OCwgMC4xMTYyNDQsIDAuMTI2NzE1LCAwLjE0MDc1NCwgMC4xNjgzMTgsIDAuMTg1NDY3Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxODM1NywgMC4wMjI0MTUsIDAuMDQ1MDU5LCAwLjA2NTQ1MSwgMC4wOTMxMTgsIDAuMTQ5MDY4LCAwLjE4NDE3OSIsIFwKLSAgICAgICAgICAiMC4wMTgzOTYsIDAuMDIyMzg0LCAwLjA0NTAzMywgMC4wNjU0NTQsIDAuMDkzMTcxLCAwLjE0OTEyOSwgMC4xODQ1NTIiLCBcCi0gICAgICAgICAgIjAuMDE5MTc1LCAwLjAyMzA0OSwgMC4wNDU0MDYsIDAuMDY1Njg5LCAwLjA5MzI1MiwgMC4xNDkzMjEsIDAuMTg0NTg1IiwgXAotICAgICAgICAgICIwLjAyMTAwNywgMC4wMjQ1OTUsIDAuMDQ2MzUsIDAuMDY2MzE3LCAwLjA5MzYzNywgMC4xNDk1MjksIDAuMTg0Njc1IiwgXAotICAgICAgICAgICIwLjAyMjQ0NiwgMC4wMjYxNzIsIDAuMDQ3ODI1LCAwLjA2NzMzNCwgMC4wOTQzNDcsIDAuMTQ5NjY0LCAwLjE4NDc4OCIsIFwKLSAgICAgICAgICAiMC4wMjQ5MDQsIDAuMDI4NjQyLCAwLjA0OTQ3OSwgMC4wNjg3NjUsIDAuMDk1NDM4LCAwLjE1MDQyNiwgMC4xODUwNzEiLCBcCi0gICAgICAgICAgIjAuMDI2OTQ1LCAwLjAzMTA0NSwgMC4wNTEyNjQsIDAuMDcwNzcsIDAuMDk2OTgzLCAwLjE1MTEyOCwgMC4xODU3NTkiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM0MzYyLCAwLjAzNzIzOSwgMC4wNTA4OTksIDAuMDYyMTExLCAwLjA3Njc4NywgMC4xMDU5MjUsIDAuMTI0MTEzIiwgXAotICAgICAgICAgICIwLjA0NDMwMSwgMC4wNDcxMTEsIDAuMDYwODMzLCAwLjA3MjAzNywgMC4wODY2ODgsIDAuMTE1ODIsIDAuMTM0MDA0IiwgXAotICAgICAgICAgICIwLjA1NjUzNCwgMC4wNTkzNjQsIDAuMDczMTE2LCAwLjA4NDI3NywgMC4wOTg5NzIsIDAuMTI4MTA3LCAwLjE0NjI5MiIsIFwKLSAgICAgICAgICAiMC4wNjY3OTgsIDAuMDY5NzQ0LCAwLjA4MzYyNiwgMC4wOTQ4MjcsIDAuMTA5NTA1LCAwLjEzODYyNywgMC4xNTY4MDkiLCBcCi0gICAgICAgICAgIjAuMDc1ODI0LCAwLjA3ODgzMywgMC4wOTI5NjgsIDAuMTA0MzA5LCAwLjExODkyNCwgMC4xNDc5NjYsIDAuMTY2MTMxIiwgXAotICAgICAgICAgICIwLjA4NzU3NSwgMC4wOTA3ODEsIDAuMTA1MzUsIDAuMTE2NjU0LCAwLjEzMTIxLCAwLjE2MDAwMSwgMC4xNzgxMjUiLCBcCi0gICAgICAgICAgIjAuMDk2ODIsIDAuMTAwMTAyLCAwLjExNTA3MywgMC4xMjY0ODksIDAuMTQxMzcyLCAwLjE3MDAwOCwgMC4xODg1NDciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE4NTA5LCAwLjAyMjU2NywgMC4wNDYxNDIsIDAuMDY3MzMxLCAwLjA5NTkyMywgMC4xNTQwMDYsIDAuMTkwNTQ5IiwgXAotICAgICAgICAgICIwLjAxODM5OSwgMC4wMjI1NTUsIDAuMDQ2MTE4LCAwLjA2NzMwNiwgMC4wOTYwMDIsIDAuMTUzODcsIDAuMTkwNTciLCBcCi0gICAgICAgICAgIjAuMDE4OTQ0LCAwLjAyMzAzNywgMC4wNDYzNzMsIDAuMDY3NDcyLCAwLjA5NjA2MSwgMC4xNTM5MDgsIDAuMTkwNjE0IiwgXAotICAgICAgICAgICIwLjAyMDY1LCAwLjAyNDQ5LCAwLjA0NzI1MSwgMC4wNjgwNDIsIDAuMDk2NDg5LCAwLjE1NDMxOSwgMC4xOTAzNDYiLCBcCi0gICAgICAgICAgIjAuMDIxOTcyLCAwLjAyNTgyNCwgMC4wNDgxNzIsIDAuMDY4ODIxLCAwLjA5NjkwOSwgMC4xNTQ2NzEsIDAuMTkwOTUyIiwgXAotICAgICAgICAgICIwLjAyNDAwNSwgMC4wMjc4MDksIDAuMDQ5Nzk4LCAwLjA3MDAyNSwgMC4wOTgwOSwgMC4xNTUwNDgsIDAuMTkxMzg0IiwgXAotICAgICAgICAgICIwLjAyNjE2MiwgMC4wMjk2MDIsIDAuMDUxMjMzLCAwLjA3MDk5MSwgMC4wOTg3NDksIDAuMTU1NTgzLCAwLjE5MTM1NCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMjU5LCAwLjAxMjY5MiwgMC4wMTI5ODIsIDAuMDEzMDgyLCAwLjAxMzE0OSwgMC4wMTMyMDcsIDAuMDEzMjI2IiwgXAotICAgICAgICAgICIwLjAxMjM2MiwgMC4wMTI0NTUsIDAuMDEyNzQ5LCAwLjAxMjg2NCwgMC4wMTI5NDYsIDAuMDEzMDQsIDAuMDEzMDU2IiwgXAotICAgICAgICAgICIwLjAxMjI3NSwgMC4wMTIzNCwgMC4wMTI1OTQsIDAuMDEyNzIsIDAuMDEyODIsIDAuMDEyOTI0LCAwLjAxMjk3MiIsIFwKLSAgICAgICAgICAiMC4wMTIzNjcsIDAuMDEyNDA0LCAwLjAxMjU5MSwgMC4wMTI3MSwgMC4wMTI4MDMsIDAuMDEyOTIxLCAwLjAxMjk3NCIsIFwKLSAgICAgICAgICAiMC4wMTIzNSwgMC4wMTI0MSwgMC4wMTI2MywgMC4wMTI3MzEsIDAuMDEyODMsIDAuMDEyOTQ1LCAwLjAxMjk5OSIsIFwKLSAgICAgICAgICAiMC4wMTI1NzMsIDAuMDEyNTg5LCAwLjAxMjcyNSwgMC4wMTI4MjIsIDAuMDEyOTE5LCAwLjAxMzAyNCwgMC4wMTMwNzYiLCBcCi0gICAgICAgICAgIjAuMDEyNTU2LCAwLjAxMjU3NSwgMC4wMTI3NDcsIDAuMDEyODI2LCAwLjAxMjkzNCwgMC4wMTMwNjEsIDAuMDEzMTA5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE1NTQyLCAwLjAxNTY4LCAwLjAxNjA1MSwgMC4wMTYxODUsIDAuMDE2Mjc3LCAwLjAxNjM2LCAwLjAxNjM4OCIsIFwKLSAgICAgICAgICAiMC4wMTUzNDUsIDAuMDE1NDYsIDAuMDE1ODMzLCAwLjAxNTk4NiwgMC4wMTYwOTgsIDAuMDE2MjA4LCAwLjAxNjI0NCIsIFwKLSAgICAgICAgICAiMC4wMTUyODIsIDAuMDE1MzY0LCAwLjAxNTY4OCwgMC4wMTU4NTIsIDAuMDE1OTc0LCAwLjAxNjEwOSwgMC4wMTYxNTciLCBcCi0gICAgICAgICAgIjAuMDE1MzQ4LCAwLjAxNTQwMywgMC4wMTU2NiwgMC4wMTU4MTQsIDAuMDE1OTIyLCAwLjAxNjA2NiwgMC4wMTYxMjciLCBcCi0gICAgICAgICAgIjAuMDE1MzgsIDAuMDE1NDMsIDAuMDE1NjQ0LCAwLjAxNTc4MywgMC4wMTU5MDksIDAuMDE2MDYsIDAuMDE2MTEyIiwgXAotICAgICAgICAgICIwLjAxNTMyNSwgMC4wMTUzODQsIDAuMDE1NjQsIDAuMDE1NzksIDAuMDE1OTAzLCAwLjAxNjA2NywgMC4wMTYxMzYiLCBcCi0gICAgICAgICAgIjAuMDE1NjQyLCAwLjAxNTQyNSwgMC4wMTU3NjksIDAuMDE1Nzg4LCAwLjAxNTk5MywgMC4wMTYwNDcsIDAuMDE2MTkzIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBDTEtCVUZYMTYgKgotICogLS0tLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChDTEtCVUZYMTYpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC44MTkyOTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAzMDY3MDY7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAzMDY1Mjg7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAzMDY3MDY7Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogNC4wMDk2NzsKLSAgICBmdW5jdGlvbiA6ICJBIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzEyNzMsIDAuMDMzNDA1LCAwLjA0MzYyNCwgMC4wNTE3NzgsIDAuMDYyMzA4LCAwLjA4MzA4NSwgMC4wOTYwNDQiLCBcCi0gICAgICAgICAgIjAuMDQxNDM2LCAwLjA0MzU5NywgMC4wNTM4OTksIDAuMDYyMDE5LCAwLjA3MjU0OSwgMC4wOTMzMDgsIDAuMTA2MjU2IiwgXAotICAgICAgICAgICIwLjA1Mzc3MSwgMC4wNTU5NTIsIDAuMDY2Mjg1LCAwLjA3NDQzNSwgMC4wODQ5NDcsIDAuMTA1NzE5LCAwLjExODY3IiwgXAotICAgICAgICAgICIwLjA2NDY2NywgMC4wNjcwMjgsIDAuMDc3NTY0LCAwLjA4NTc3NSwgMC4wOTYyMDEsIDAuMTE2OTY2LCAwLjEyOTkxMSIsIFwKLSAgICAgICAgICAiMC4wNzM1ODQsIDAuMDc2MDY3LCAwLjA4NzA0MSwgMC4wOTUzMywgMC4xMDU3NzMsIDAuMTI2Njg4LCAwLjEzOTU5NyIsIFwKLSAgICAgICAgICAiMC4wODYyNzksIDAuMDg4OTcxLCAwLjEwMDUxNiwgMC4xMDg5NjUsIDAuMTE5NjI2LCAwLjE0MDQ2NiwgMC4xNTM0NjUiLCBcCi0gICAgICAgICAgIjAuMDk1NTExLCAwLjA5ODMzNywgMC4xMTA1MjYsIDAuMTE5MTYxLCAwLjEyOTkxNiwgMC4xNTA3NTMsIDAuMTYzNzQyIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxNjQ1NCwgMC4wMTk1NDQsIDAuMDM2NTcxLCAwLjA1MTc5MiwgMC4wNzI0MjYsIDAuMTE0MzEzLCAwLjE0MDcxMiIsIFwKLSAgICAgICAgICAiMC4wMTY0NTcsIDAuMDE5NTI2LCAwLjAzNjU0LCAwLjA1MTc1NCwgMC4wNzIzOSwgMC4xMTQyNTMsIDAuMTQwNjgxIiwgXAotICAgICAgICAgICIwLjAxNzQxMiwgMC4wMjAzMzcsIDAuMDM3MDIsIDAuMDUyMDc4LCAwLjA3MjU5NiwgMC4xMTQzODcsIDAuMTQwOTExIiwgXAotICAgICAgICAgICIwLjAxODk2LCAwLjAyMTg5MywgMC4wMzgwMzMsIDAuMDUyODg5LCAwLjA3MzE5NCwgMC4xMTQ3OCwgMC4xNDA5NjEiLCBcCi0gICAgICAgICAgIjAuMDIwODUzLCAwLjAyMzY2NywgMC4wMzk2MDksIDAuMDUzOTk0LCAwLjA3NDEzNiwgMC4xMTUyNTcsIDAuMTQxMzciLCBcCi0gICAgICAgICAgIjAuMDIzMDk0LCAwLjAyNTk1OCwgMC4wNDE1MjQsIDAuMDU1NjM4LCAwLjA3NTM5NiwgMC4xMTYwMDksIDAuMTQyMDA4IiwgXAotICAgICAgICAgICIwLjAyNTYyOSwgMC4wMjg1MzgsIDAuMDQzNzc2LCAwLjA1NzUwNywgMC4wNzY3NTIsIDAuMTE2OTQ2LCAwLjE0MjcxMiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzI0MjEsIDAuMDM0NjU2LCAwLjA0NTMxLCAwLjA1Mzg4OSwgMC4wNjQ5NywgMC4wODY4NzQsIDAuMTAwNTEzIiwgXAotICAgICAgICAgICIwLjA0MjM3MSwgMC4wNDQ1OTEsIDAuMDU1MjkyLCAwLjA2Mzg1MSwgMC4wNzQ5NDUsIDAuMDk2ODQ5LCAwLjExMDQ5MSIsIFwKLSAgICAgICAgICAiMC4wNTQ0LCAwLjA1NjYyNSwgMC4wNjczNjIsIDAuMDc1OTM1LCAwLjA4NzAyMSwgMC4xMDg5MjMsIDAuMTIyNTY0IiwgXAotICAgICAgICAgICIwLjA2NDc4NCwgMC4wNjcxMDYsIDAuMDc4MDQ0LCAwLjA4NjY4NCwgMC4wOTc3NDQsIDAuMTE5NjgzLCAwLjEzMzMyNSIsIFwKLSAgICAgICAgICAiMC4wNzMwODMsIDAuMDc1NTMyLCAwLjA4NjcyNSwgMC4wOTU0MzEsIDAuMTA2MjQyLCAwLjEyODA4LCAwLjE0MTY3NCIsIFwKLSAgICAgICAgICAiMC4wODUxNzcsIDAuMDg3NzY1LCAwLjA5OTQ1LCAwLjEwODA1MSwgMC4xMTkzMjgsIDAuMTQxMTY2LCAwLjE1NDc4MiIsIFwKLSAgICAgICAgICAiMC4wOTM5MTUsIDAuMDk2NjYzLCAwLjEwODY2NywgMC4xMTc1NzcsIDAuMTI4ODk2LCAwLjE1MDkxNCwgMC4xNjQzNzciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE2NDAyLCAwLjAxOTYwNiwgMC4wMzc0MDUsIDAuMDUzMjc0LCAwLjA3NDcyNywgMC4xMTgyMjUsIDAuMTQ1NzY3IiwgXAotICAgICAgICAgICIwLjAxNjQzMywgMC4wMTk2MDMsIDAuMDM3MzU5LCAwLjA1MzIyOSwgMC4wNzQ2NzEsIDAuMTE4MTc5LCAwLjE0NTYyNCIsIFwKLSAgICAgICAgICAiMC4wMTcwODUsIDAuMDIwMTg0LCAwLjAzNzY1NCwgMC4wNTM0ODUsIDAuMDc0ODY2LCAwLjExODM0OCwgMC4xNDU2ODYiLCBcCi0gICAgICAgICAgIjAuMDE4NTYzLCAwLjAyMTYxNCwgMC4wMzg1OTYsIDAuMDU0MTc5LCAwLjA3NTM0MywgMC4xMTg3NDksIDAuMTQ2MDY5IiwgXAotICAgICAgICAgICIwLjAyMDA4MSwgMC4wMjMwNjQsIDAuMDM5ODU1LCAwLjA1NTA3NywgMC4wNzYzNDQsIDAuMTE5MjIxLCAwLjE0NjI4NSIsIFwKLSAgICAgICAgICAiMC4wMjIyNzgsIDAuMDI1MjEyLCAwLjA0MTU2NSwgMC4wNTY1OTgsIDAuMDc3MjM5LCAwLjExOTY1NywgMC4xNDY4NzEiLCBcCi0gICAgICAgICAgIjAuMDI0Mzg3LCAwLjAyNzI3LCAwLjA0MzE3NSwgMC4wNTc4MzYsIDAuMDc4MjQsIDAuMTIwMjk4LCAwLjE0NzA5NyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxNjI4LCAwLjAxNjM5NywgMC4wMTY3ODQsIDAuMDE2OTMzLCAwLjAxNzAzNSwgMC4wMTcxNDgsIDAuMDE3MTc0IiwgXAotICAgICAgICAgICIwLjAxNTk4NSwgMC4wMTYwOTEsIDAuMDE2NDYxLCAwLjAxNjYyNSwgMC4wMTY3NDYsIDAuMDE2ODY0LCAwLjAxNjkxMyIsIFwKLSAgICAgICAgICAiMC4wMTU4OTEsIDAuMDE1OTY2LCAwLjAxNjI3NCwgMC4wMTY0NSwgMC4wMTY1OCwgMC4wMTY3MzUsIDAuMDE2NzkxIiwgXAotICAgICAgICAgICIwLjAxNTg3NiwgMC4wMTU5MzcsIDAuMDE2MjIxLCAwLjAxNjM4LCAwLjAxNjUyNSwgMC4wMTY2NjEsIDAuMDE2NzM5IiwgXAotICAgICAgICAgICIwLjAxNjExNCwgMC4wMTYxMzksIDAuMDE2MzE5LCAwLjAxNjQ0MSwgMC4wMTY1NDUsIDAuMDE2NywgMC4wMTY3NzciLCBcCi0gICAgICAgICAgIjAuMDE2MjA4LCAwLjAxNjIyNSwgMC4wMTYzODEsIDAuMDE2NDk2LCAwLjAxNjYxNSwgMC4wMTY3NzcsIDAuMDE2ODM4IiwgXAotICAgICAgICAgICIwLjAxNjUwNCwgMC4wMTY0ODUsIDAuMDE2NTQsIDAuMDE2NjIzLCAwLjAxNjcyNiwgMC4wMTY4NzMsIDAuMDE2OTE4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDIwNDEsIDAuMDIwNTc0LCAwLjAyMTA2MSwgMC4wMjEyNjEsIDAuMDIxNDA0LCAwLjAyMTU0LCAwLjAyMTU4NSIsIFwKLSAgICAgICAgICAiMC4wMjAxMjYsIDAuMDIwMjU4LCAwLjAyMDczMywgMC4wMjA5NTIsIDAuMDIxMTIzLCAwLjAyMTI5NywgMC4wMjEzNTciLCBcCi0gICAgICAgICAgIjAuMDIwMTQ2LCAwLjAyMDIyOCwgMC4wMjA1ODcsIDAuMDIwODAzLCAwLjAyMDk4LCAwLjAyMTE3OCwgMC4wMjEyNTEiLCBcCi0gICAgICAgICAgIjAuMDIwMDU5LCAwLjAyMDExOSwgMC4wMjA0OSwgMC4wMjA2OTYsIDAuMDIwODg1LCAwLjAyMTEwMiwgMC4wMjExODgiLCBcCi0gICAgICAgICAgIjAuMDIwMDU4LCAwLjAyMDEzLCAwLjAyMDQ3LCAwLjAyMDY3MSwgMC4wMjA4MzksIDAuMDIxMDY4LCAwLjAyMTE2MiIsIFwKLSAgICAgICAgICAiMC4wMjAzOTIsIDAuMDIwNDE0LCAwLjAyMDU5NiwgMC4wMjA3MzksIDAuMDIwOSwgMC4wMjEwOTUsIDAuMDIxMTg1IiwgXAotICAgICAgICAgICIwLjAyMDY1NywgMC4wMjA2NDUsIDAuMDIwNzQxLCAwLjAyMDg2OCwgMC4wMjEwMDUsIDAuMDIxMjA0LCAwLjAyMTI4Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IENMS0JVRlgyICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChDTEtCVUZYMikgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjEwMDE0OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2MzY4ODQ7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjM2NTQzOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDYzNjg4NDsKLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjUxNjE0MzsKLSAgICBmdW5jdGlvbiA6ICJBIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTAyOTUsIDAuMTUyMjYzLCAwLjIzMzYwMywgMC4zMzQ5OTMsIDAuNDM2ODk2LCAwLjUzODM3NiwgMC42NDAxMDUiLCBcCi0gICAgICAgICAgIjAuMDYwNTMyLCAwLjE2MjQ5MywgMC4yNDM4OTYsIDAuMzQ1MjQ3LCAwLjQ0Njc3OCwgMC41NDg4MSwgMC42NTAzMjEiLCBcCi0gICAgICAgICAgIjAuMDcyODk4LCAwLjE3NDc2MiwgMC4yNTYxMzMsIDAuMzU3OCwgMC40NTkzNDgsIDAuNTYwOTksIDAuNjYyODE0IiwgXAotICAgICAgICAgICIwLjA4Mzk3LCAwLjE4NTc4MiwgMC4yNjcyMzMsIDAuMzY4OTMxLCAwLjQ3MDUwOCwgMC41NzIxMTEsIDAuNjczNjY3IiwgXAotICAgICAgICAgICIwLjA5MzQ5MSwgMC4xOTUzNiwgMC4yNzY2NDksIDAuMzc4MjkyLCAwLjQ3OTk2MywgMC41ODE1NTQsIDAuNjgzMjg1IiwgXAotICAgICAgICAgICIwLjEwNzAxLCAwLjIwODk0MywgMC4yOTAyMjgsIDAuMzkxOTE5LCAwLjQ5MzQ2NSwgMC41OTUzMDUsIDAuNjk2OTQxIiwgXAotICAgICAgICAgICIwLjExNzIwMiwgMC4yMTkyMjIsIDAuMzAwNDYzLCAwLjQwMjA0NCwgMC41MDM2NzYsIDAuNjA1Mjg2LCAwLjcwNjk2MyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTAzODMsIDAuMjU3NTg3LCAwLjQyNTE5MywgMC42MzQ0OTcsIDAuODQ0MjE4LCAxLjA1MzM4LCAxLjI2MzE5IiwgXAotICAgICAgICAgICIwLjA1MDM1OCwgMC4yNTc1NzUsIDAuNDI1MjAzLCAwLjYzNTI4NiwgMC44NDQzNSwgMS4wNTM1OSwgMS4yNjQ5MyIsIFwKLSAgICAgICAgICAiMC4wNTA3MzMsIDAuMjU4MTExLCAwLjQyNTIwOCwgMC42MzQ5NzEsIDAuODQ1MjA1LCAxLjA1MzMyLCAxLjI2MzA5IiwgXAotICAgICAgICAgICIwLjA1MTUzOSwgMC4yNTgxMjUsIDAuNDI1MjI0LCAwLjYzNDY1MiwgMC44NDQxMTksIDEuMDU1MTEsIDEuMjYyNTQiLCBcCi0gICAgICAgICAgIjAuMDUyNjA1LCAwLjI1ODI0MiwgMC40MjU5MTMsIDAuNjM0NTE0LCAwLjg0MzcxNSwgMS4wNTMzNiwgMS4yNjMxIiwgXAotICAgICAgICAgICIwLjA1NDM3MSwgMC4yNTgzNzcsIDAuNDI1NDIxLCAwLjYzNDU5MiwgMC44NDM5NDUsIDEuMDUzNjIsIDEuMjYzMDgiLCBcCi0gICAgICAgICAgIjAuMDU2MDU4LCAwLjI1ODU4NiwgMC40MjYwNDcsIDAuNjM1NzcsIDAuODQ1NjM3LCAxLjA1NTQ4LCAxLjI2MjY4Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1MjM3MywgMC4xNTYyMjMsIDAuMjM4OTkyLCAwLjM0MjMxNCwgMC40NDU2NzksIDAuNTQ5MDgsIDAuNjUyNzMxIiwgXAotICAgICAgICAgICIwLjA2MjI2MiwgMC4xNjYwNzgsIDAuMjQ4ODYzLCAwLjM1MjQ4NiwgMC40NTU3NDMsIDAuNTU5MjM3LCAwLjY2MjczMyIsIFwKLSAgICAgICAgICAiMC4wNzQyMTgsIDAuMTc4MDI4LCAwLjI2MDc3OCwgMC4zNjQyODcsIDAuNDY3NzEzLCAwLjU3MTEzLCAwLjY3NDgyMiIsIFwKLSAgICAgICAgICAiMC4wODQ0NjEsIDAuMTg4NDEsIDAuMjcxMTQ5LCAwLjM3NDYyOSwgMC40NzgwOTQsIDAuNTgxNDk2LCAwLjY4NDk1MSIsIFwKLSAgICAgICAgICAiMC4wOTMzMTgsIDAuMTk2NTgzLCAwLjI3OTMzNiwgMC4zODI4MjYsIDAuNDg2MjA1LCAwLjU4OTY5NywgMC42OTMxMzIiLCBcCi0gICAgICAgICAgIjAuMTA1NzU4LCAwLjIwOTU0NywgMC4yOTIyMzUsIDAuMzk1NzMsIDAuNDk5Mjk3LCAwLjYwMjQ5MiwgMC43MDYwODQiLCBcCi0gICAgICAgICAgIjAuMTE0OTE1LCAwLjIxODQ0NCwgMC4zMDExMjIsIDAuNDA0NTIsIDAuNTA4MTE3LCAwLjYxMTUzNCwgMC43MTQ5NjYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDUwNTQ4LCAwLjI1NzY4OCwgMC40MjUyMDksIDAuNjM0MTg0LCAwLjg0NTcsIDEuMDU1NTksIDEuMjYyNTYiLCBcCi0gICAgICAgICAgIjAuMDUwNTIzLCAwLjI1ODIwNiwgMC40MjUzODYsIDAuNjM0NzgxLCAwLjg0MzIxOSwgMS4wNTMzNSwgMS4yNjM3IiwgXAotICAgICAgICAgICIwLjA1MDgyMSwgMC4yNTgyMjcsIDAuNDI1OTk2LCAwLjYzNDg2MiwgMC44NDM5NTgsIDEuMDUzMjQsIDEuMjYyMjEiLCBcCi0gICAgICAgICAgIjAuMDUxNjQ0LCAwLjI1ODM0MywgMC40MjU4MzYsIDAuNjM1NjEzLCAwLjg0NDExNywgMS4wNTMyNCwgMS4yNjI5NSIsIFwKLSAgICAgICAgICAiMC4wNTI0ODMsIDAuMjU4MzU1LCAwLjQyNTY2OCwgMC42MzQ2MTMsIDAuODQ1NTM2LCAxLjA1MzQ3LCAxLjI2MzEyIiwgXAotICAgICAgICAgICIwLjA1NDAxMywgMC4yNTg2NzQsIDAuNDI2MDQ1LCAwLjYzNDU2NSwgMC44NDM2NjYsIDEuMDUyOTEsIDEuMjYyNjgiLCBcCi0gICAgICAgICAgIjAuMDU1Mjk2LCAwLjI1ODc1MywgMC40MjU0OTQsIDAuNjM1OTMzLCAwLjg0Mzc2MSwgMS4wNTMyLCAxLjI2MjU1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyMTczLCAwLjAwMjIwMSwgMC4wMDIyMDQsIDAuMDAyMjA1LCAwLjAwMjIwNiwgMC4wMDIyMDYsIDAuMDAyMjA3IiwgXAotICAgICAgICAgICIwLjAwMjEzMywgMC4wMDIxNzUsIDAuMDAyMTgsIDAuMDAyMTg0LCAwLjAwMjE4MywgMC4wMDIxODMsIDAuMDAyMTg0IiwgXAotICAgICAgICAgICIwLjAwMjExMywgMC4wMDIxNjgsIDAuMDAyMTczLCAwLjAwMjE3NiwgMC4wMDIxNzgsIDAuMDAyMTc5LCAwLjAwMjE4IiwgXAotICAgICAgICAgICIwLjAwMjExNSwgMC4wMDIxNywgMC4wMDIxNzgsIDAuMDAyMTgzLCAwLjAwMjE4NSwgMC4wMDIxODcsIDAuMDAyMTg4IiwgXAotICAgICAgICAgICIwLjAwMjEyNiwgMC4wMDIxODEsIDAuMDAyMTg4LCAwLjAwMjE5NSwgMC4wMDIxOTgsIDAuMDAyMTk5LCAwLjAwMjIwMSIsIFwKLSAgICAgICAgICAiMC4wMDIxMzUsIDAuMDAyMTg4LCAwLjAwMjIwMSwgMC4wMDIyMDUsIDAuMDAyMjA5LCAwLjAwMjIxMSwgMC4wMDIyMTIiLCBcCi0gICAgICAgICAgIjAuMDAyMTU4LCAwLjAwMjIxLCAwLjAwMjIyMywgMC4wMDIyMjgsIDAuMDAyMjMxLCAwLjAwMjIzNCwgMC4wMDIyMzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDMwMDUsIDAuMDAzMDUyLCAwLjAwMzA1NywgMC4wMDMwNiwgMC4wMDMwNjEsIDAuMDAzMDYyLCAwLjAwMzA2MyIsIFwKLSAgICAgICAgICAiMC4wMDI5NjgsIDAuMDAzMDI5LCAwLjAwMzAzNiwgMC4wMDMwMzksIDAuMDAzMDQxLCAwLjAwMzA0MiwgMC4wMDMwNDMiLCBcCi0gICAgICAgICAgIjAuMDAyOTU1LCAwLjAwMzAyNCwgMC4wMDMwMzMsIDAuMDAzMDM4LCAwLjAwMzA0LCAwLjAwMzA0MiwgMC4wMDMwNDMiLCBcCi0gICAgICAgICAgIjAuMDAyOTQ5LCAwLjAwMzAyMiwgMC4wMDMwMzQsIDAuMDAzMDQsIDAuMDAzMDQ0LCAwLjAwMzA0NiwgMC4wMDMwNDciLCBcCi0gICAgICAgICAgIjAuMDAyOTQ1LCAwLjAwMzAyNSwgMC4wMDMwNCwgMC4wMDMwNDgsIDAuMDAzMDUzLCAwLjAwMzA1NSwgMC4wMDMwNTciLCBcCi0gICAgICAgICAgIjAuMDAyOTY2LCAwLjAwMzAzOCwgMC4wMDMwNTMsIDAuMDAzMDYxLCAwLjAwMzA2NiwgMC4wMDMwNjksIDAuMDAzMDciLCBcCi0gICAgICAgICAgIjAuMDAyOTY3LCAwLjAwMzA0OSwgMC4wMDMwNjUsIDAuMDAzMDc1LCAwLjAwMzA4LCAwLjAwMzA4MywgMC4wMDMwODUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IENMS0JVRlgyMCAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKENMS0JVRlgyMCkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAxLjAxMzA0OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDM4MzIzNDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDM4MzA5NjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDM4MzIzNDsKLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiA1LjEyNzQyOwotICAgIGZ1bmN0aW9uIDogIkEiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzMTE1OSwgMC4wNDM4MjMsIDAuMDUyNTE4LCAwLjA2MzA3OSwgMC4wNzM1MTcsIDAuMDgzODk1LCAwLjA5NDI4IiwgXAotICAgICAgICAgICIwLjA0MTM3OSwgMC4wNTQwNzMsIDAuMDYyODEyLCAwLjA3MzMyOCwgMC4wODM3NTcsIDAuMDk0MTQ5LCAwLjEwNDUxNiIsIFwKLSAgICAgICAgICAiMC4wNTM3NTgsIDAuMDY2NTE5LCAwLjA3NTI0MywgMC4wODU3NzcsIDAuMDk2MjAxLCAwLjEwNjU4NCwgMC4xMTY5NTgiLCBcCi0gICAgICAgICAgIjAuMDY0NDY0LCAwLjA3NzY1NCwgMC4wODY0MjgsIDAuMDk2OTY2LCAwLjEwNzQ0OCwgMC4xMTc3NTgsIDAuMTI4MTMzIiwgXAotICAgICAgICAgICIwLjA3Mzc1NiwgMC4wODc0OTgsIDAuMDk2MzczLCAwLjEwNjk2NSwgMC4xMTc0NjYsIDAuMTI3ODY2LCAwLjEzODI0NSIsIFwKLSAgICAgICAgICAiMC4wODYwMTcsIDAuMTAwNDE3LCAwLjEwOTQ3LCAwLjEyMDE0OSwgMC4xMzA3MzUsIDAuMTQxMTMzLCAwLjE1MTQ4NyIsIFwKLSAgICAgICAgICAiMC4wOTU2MzcsIDAuMTEwOTA1LCAwLjEyMDE4OCwgMC4xMzA5MDYsIDAuMTQxNDEzLCAwLjE1MTg3OCwgMC4xNjIyODQiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE1ODU2LCAwLjAzNjA0NSwgMC4wNTIyNzIsIDAuMDcyOTQyLCAwLjA5MzY5MiwgMC4xMTQ3NTQsIDAuMTM1ODkxIiwgXAotICAgICAgICAgICIwLjAxNTgwNCwgMC4wMzU5NDUsIDAuMDUyMjI3LCAwLjA3Mjg3OSwgMC4wOTM4NjcsIDAuMTE0OTc4LCAwLjEzNjA1NyIsIFwKLSAgICAgICAgICAiMC4wMTY3MTUsIDAuMDM2NDIyLCAwLjA1MjUwNCwgMC4wNzMwOTQsIDAuMDkzOTQ3LCAwLjExNTA2OCwgMC4xMzYxMjUiLCBcCi0gICAgICAgICAgIjAuMDE4NDcsIDAuMDM3NTc3LCAwLjA1MzM3NCwgMC4wNzM2NjEsIDAuMDk0MzM5LCAwLjExNTM3MiwgMC4xMzYzNTQiLCBcCi0gICAgICAgICAgIjAuMDE5OTkxLCAwLjAzODg3MiwgMC4wNTQzNCwgMC4wNzQ0MywgMC4wOTQ5NzEsIDAuMTE1NzAyLCAwLjEzNjgzMyIsIFwKLSAgICAgICAgICAiMC4wMjI1ODYsIDAuMDQxNzMxLCAwLjA1NjU1NiwgMC4wNzYxNDMsIDAuMDk2MzI3LCAwLjExNjgxNiwgMC4xMzc1MDQiLCBcCi0gICAgICAgICAgIjAuMDI0NTE4LCAwLjA0MzQyNywgMC4wNTgwOTMsIDAuMDc3MzkzLCAwLjA5NzM5NSwgMC4xMTc1OSwgMC4xMzgyMDIiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDMyNDE2LCAwLjA0NTU2OSwgMC4wNTQ3NywgMC4wNjU5MjksIDAuMDc2OTU3LCAwLjA4NzkzLCAwLjA5ODg2NiIsIFwKLSAgICAgICAgICAiMC4wNDIzODIsIDAuMDU1NTY0LCAwLjA2NDc1OSwgMC4wNzU5MDUsIDAuMDg2OTEyLCAwLjA5Nzg5LCAwLjEwODg1IiwgXAotICAgICAgICAgICIwLjA1NDQ5NSwgMC4wNjc3MTgsIDAuMDc2OTEsIDAuMDg4MDQ5LCAwLjA5OTA3MSwgMC4xMTAwNDMsIDAuMTIxMDAzIiwgXAotICAgICAgICAgICIwLjA2NDkzOCwgMC4wNzg0OTQsIDAuMDg3NzQ1LCAwLjA5ODg0LCAwLjEwOTkzLCAwLjEyMDg3MywgMC4xMzE4MjYiLCBcCi0gICAgICAgICAgIjAuMDczNjEyLCAwLjA4NzU2LCAwLjA5NjkxOCwgMC4xMDgxMjMsIDAuMTE5MTEzLCAwLjEzMDA2NSwgMC4xNDA5NjUiLCBcCi0gICAgICAgICAgIjAuMDg1MjgyLCAwLjA5OTg1MywgMC4xMDkzMzQsIDAuMTIwNjg0LCAwLjEzMTc3MSwgMC4xNDI1ODYsIDAuMTUzNTE0IiwgXAotICAgICAgICAgICIwLjA5MzgyNiwgMC4xMDkxMDksIDAuMTE4NjQ0LCAwLjEyOTk2MywgMC4xNDEwMTMsIDAuMTUxOTk4LCAwLjE2Mjc3MSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTU3MjIsIDAuMDM2NjU4LCAwLjA1MzQ1MSwgMC4wNzQ3OTIsIDAuMDk2NDEyLCAwLjExODIwNCwgMC4xMzk5OTgiLCBcCi0gICAgICAgICAgIjAuMDE1NzIzLCAwLjAzNjU5OSwgMC4wNTM0MzgsIDAuMDc0ODIzLCAwLjA5NjQ4MywgMC4xMTgxMSwgMC4xNDAxOTEiLCBcCi0gICAgICAgICAgIjAuMDE2MzI5LCAwLjAzNjkxNCwgMC4wNTM3MDcsIDAuMDc0OTgxLCAwLjA5NjU4NCwgMC4xMTgzMjksIDAuMTQwMDQ2IiwgXAotICAgICAgICAgICIwLjAxNzg0LCAwLjAzNzg0NCwgMC4wNTQzNiwgMC4wNzU0NTIsIDAuMDk2ODgzLCAwLjExODUzNSwgMC4xNDAzNTYiLCBcCi0gICAgICAgICAgIjAuMDE5MjkyLCAwLjAzOTAwNiwgMC4wNTUxNjMsIDAuMDc2MTY0LCAwLjA5NzQzNiwgMC4xMTg4NzksIDAuMTQwNzY5IiwgXAotICAgICAgICAgICIwLjAyMTk0MSwgMC4wNDA5MjksIDAuMDU2Nzg0LCAwLjA3NzI5MSwgMC4wOTgyMiwgMC4xMTk0NDgsIDAuMTQxMjk4IiwgXAotICAgICAgICAgICIwLjAyMzQwMSwgMC4wNDIzMiwgMC4wNTc5MzgsIDAuMDc4MjU0LCAwLjA5OTE0NCwgMC4xMjAxODcsIDAuMTQxNjAyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDIxMTA2LCAwLjAyMTc3NCwgMC4wMjE5ODIsIDAuMDIyMTE1LCAwLjAyMjE5LCAwLjAyMjIzOSwgMC4wMjIyNzMiLCBcCi0gICAgICAgICAgIjAuMDIwNzQzLCAwLjAyMTM2OSwgMC4wMjE1OTgsIDAuMDIxNzYsIDAuMDIxODU3LCAwLjAyMTkyMSwgMC4wMjE5NTMiLCBcCi0gICAgICAgICAgIjAuMDIwNjMzLCAwLjAyMTEyNCwgMC4wMjEzNDUsIDAuMDIxNTI0LCAwLjAyMTY0MiwgMC4wMjE3MjQsIDAuMDIxNzg2IiwgXAotICAgICAgICAgICIwLjAyMDg0MSwgMC4wMjExNzQsIDAuMDIxMzQ5LCAwLjAyMTUyOCwgMC4wMjE2NCwgMC4wMjE3MTUsIDAuMDIxNzgxIiwgXAotICAgICAgICAgICIwLjAyMDg0MiwgMC4wMjExMzQsIDAuMDIxMzAzLCAwLjAyMTQ2NCwgMC4wMjE1ODcsIDAuMDIxNjgzLCAwLjAyMTc0NiIsIFwKLSAgICAgICAgICAiMC4wMjA5NTIsIDAuMDIxMjc4LCAwLjAyMTQzNywgMC4wMjE2LCAwLjAyMTczLCAwLjAyMTgwNCwgMC4wMjE4NzUiLCBcCi0gICAgICAgICAgIjAuMDIxMTEzLCAwLjAyMTQzOSwgMC4wMjE1NjYsIDAuMDIxNjk1LCAwLjAyMTgwNSwgMC4wMjE4ODMsIDAuMDIxOTU1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDI1ODEsIDAuMDI2NjU4LCAwLjAyNjkyNSwgMC4wMjcxMDMsIDAuMDI3MjA1LCAwLjAyNzI3MywgMC4wMjczMiIsIFwKLSAgICAgICAgICAiMC4wMjU0NjksIDAuMDI2MjU2LCAwLjAyNjU1MSwgMC4wMjY3NjQsIDAuMDI2ODkzLCAwLjAyNjk4MSwgMC4wMjcwNDMiLCBcCi0gICAgICAgICAgIjAuMDI1NDQ1LCAwLjAyNjA1MiwgMC4wMjYzMjYsIDAuMDI2NTU0LCAwLjAyNjcwMywgMC4wMjY4MDgsIDAuMDI2ODg2IiwgXAotICAgICAgICAgICIwLjAyNTMzNywgMC4wMjU5MDcsIDAuMDI2MTgzLCAwLjAyNjQyNSwgMC4wMjY1ODYsIDAuMDI2NzA0LCAwLjAyNjgxNSIsIFwKLSAgICAgICAgICAiMC4wMjU1NjIsIDAuMDI1OTk2LCAwLjAyNjIzNiwgMC4wMjY0NTUsIDAuMDI2NjE1LCAwLjAyNjcyMSwgMC4wMjY4MiIsIFwKLSAgICAgICAgICAiMC4wMjU5MDIsIDAuMDI2MTA0LCAwLjAyNjI3OSwgMC4wMjY0ODIsIDAuMDI2NjI2LCAwLjAyNjcyNCwgMC4wMjY4MTciLCBcCi0gICAgICAgICAgIjAuMDI1NzU2LCAwLjAyNjA3MywgMC4wMjYyOTEsIDAuMDI2NTAxLCAwLjAyNjY2OSwgMC4wMjY3OTMsIDAuMDI2ODg5Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IENMS0JVRlg0ICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChDTEtCVUZYNCkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjE5MzIxNDsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwOTEzNjc0OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDkxMzMzMTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA5MTM2NzQ7Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMS4wNDU0MzsKLSAgICBmdW5jdGlvbiA6ICJBIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0MTU5NCwgMC4xMTQ3MDEsIDAuMTg2ODA2LCAwLjIzODM4NSwgMC4zMjA3NjUsIDAuMzkzMDk3LCAwLjQ5NiIsIFwKLSAgICAgICAgICAiMC4wNTE4MDksIDAuMTI0ODgsIDAuMTk3MDU1LCAwLjI0ODYwNywgMC4zMzEwNzEsIDAuNDAzMDQ2LCAwLjUwNTk3MiIsIFwKLSAgICAgICAgICAiMC4wNjQzOTEsIDAuMTM3NDQ0LCAwLjIwOTY0NCwgMC4yNjEyNDIsIDAuMzQzNjQ5LCAwLjQxNTg0NywgMC41MTg4OTMiLCBcCi0gICAgICAgICAgIjAuMDc1NjUsIDAuMTQ4NzE5LCAwLjIyMDkwOCwgMC4yNzI0MzIsIDAuMzU0ODg3LCAwLjQyNzE4MiwgMC41MzAxIiwgXAotICAgICAgICAgICIwLjA4NTM0OCwgMC4xNTg2MzUsIDAuMjMwODAyLCAwLjI4MjMxNCwgMC4zNjQ4NDEsIDAuNDM3MDA3LCAwLjU0MDA0MiIsIFwKLSAgICAgICAgICAiMC4wOTg2NzUsIDAuMTcyNDQ0LCAwLjI0NDU0MiwgMC4yOTYwODYsIDAuMzc4NTAyLCAwLjQ1MDc5LCAwLjU1Mzc4NCIsIFwKLSAgICAgICAgICAiMC4xMDg4MjIsIDAuMTgzMTUyLCAwLjI1NTI2NSwgMC4zMDY3NjksIDAuMzg5MTg5LCAwLjQ2MTQzOSwgMC41NjQ0NiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzMTc3NSwgMC4xNzcyOTgsIDAuMzI2MTI2LCAwLjQzMTcxMSwgMC42MDI4NDksIDAuNzUwNDQ1LCAwLjk2MjU2NiIsIFwKLSAgICAgICAgICAiMC4wMzE2NjcsIDAuMTc3MzE5LCAwLjMyNjEwOSwgMC40MzE5MTksIDAuNjAxOTk4LCAwLjc1MTIzMSwgMC45NjMwOTYiLCBcCi0gICAgICAgICAgIjAuMDMyMDg2LCAwLjE3NzMzNCwgMC4zMjU0MjIsIDAuNDMxNjg0LCAwLjYwMjQ2OCwgMC43NTA0MzgsIDAuOTYyNDM4IiwgXAotICAgICAgICAgICIwLjAzMzMyNiwgMC4xNzcyMywgMC4zMjU0MTIsIDAuNDMxOTM5LCAwLjYwMTU1NSwgMC43NTA0MzksIDAuOTYyNjUyIiwgXAotICAgICAgICAgICIwLjAzNDk2LCAwLjE3Nzc0OCwgMC4zMjU0NywgMC40MzI0NSwgMC42MDE5NzcsIDAuNzUwODc4LCAwLjk2MjQ3OSIsIFwKLSAgICAgICAgICAiMC4wMzcyODEsIDAuMTc3OTk5LCAwLjMyNjE4MywgMC40MzI1MzYsIDAuNjAyNzE1LCAwLjc1MDM5NiwgMC45NjM1NDQiLCBcCi0gICAgICAgICAgIjAuMDM5NTUxLCAwLjE3ODU4NSwgMC4zMjYyODksIDAuNDMyMDcyLCAwLjYwMjQzMiwgMC43NTA0NzMsIDAuOTYzNDg2Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQyODYsIDAuMTE3MzY3LCAwLjE5MDc2MiwgMC4yNDMyMTIsIDAuMzI3MDE2LCAwLjQwMDMwNCwgMC41MDUwNDYiLCBcCi0gICAgICAgICAgIjAuMDUyODMyLCAwLjEyNzI5NCwgMC4yMDA2ODUsIDAuMjUzMTMxLCAwLjMzNjkzLCAwLjQxMDQ4OSwgMC41MTUxMDMiLCBcCi0gICAgICAgICAgIjAuMDY1MDYzLCAwLjEzOTU0OSwgMC4yMTI5NzksIDAuMjY1NDA0LCAwLjM0OTIwNywgMC40MjI2OTYsIDAuNTI3NDM0IiwgXAotICAgICAgICAgICIwLjA3NTcxLCAwLjE1MDI1MiwgMC4yMjM2MzcsIDAuMjc2MDUxLCAwLjM1OTkwMywgMC40MzM0NTYsIDAuNTM4MTA0IiwgXAotICAgICAgICAgICIwLjA4NDg0NiwgMC4xNTkxODcsIDAuMjMyNTQ5LCAwLjI4NTAwMSwgMC4zNjg4NzksIDAuNDQyMTc2LCAwLjU0NzA2MiIsIFwKLSAgICAgICAgICAiMC4wOTcyNjMsIDAuMTcyMDkyLCAwLjI0NDcwOSwgMC4yOTcxMDEsIDAuMzgxMDMyLCAwLjQ1NDI5MywgMC41NTkxMjciLCBcCi0gICAgICAgICAgIjAuMTA3MjQ1LCAwLjE4MjQ4LCAwLjI1NTcwNSwgMC4zMDgwNjgsIDAuMzkxODgzLCAwLjQ2NTI2NCwgMC41NzAwNCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzMTU5NCwgMC4xNzcxODUsIDAuMzI1NTA0LCAwLjQzMTMyMSwgMC42MDIyNSwgMC43NDkyMTMsIDAuOTY0MDcyIiwgXAotICAgICAgICAgICIwLjAzMTUxMSwgMC4xNzcyNDYsIDAuMzI1ODA2LCAwLjQzMTAyNywgMC42MDA3MTQsIDAuNzQ5MjY3LCAwLjk2MTIzMyIsIFwKLSAgICAgICAgICAiMC4wMzE4NzIsIDAuMTc3MjY0LCAwLjMyNDg4NCwgMC40MzExODEsIDAuNjAyMTcyLCAwLjc0OTM3MSwgMC45NjIxMiIsIFwKLSAgICAgICAgICAiMC4wMzMwMDcsIDAuMTc3MTQ0LCAwLjMyNTQ5NCwgMC40MzE5MjksIDAuNjAwNjgyLCAwLjc0OTI2NSwgMC45NjE4MjciLCBcCi0gICAgICAgICAgIjAuMDM0Mjc0LCAwLjE3NzQ0NywgMC4zMjUxNTMsIDAuNDMwODY2LCAwLjYwMTAwMSwgMC43NTEwMzIsIDAuOTYxODMxIiwgXAotICAgICAgICAgICIwLjAzNjE1NywgMC4xNzgwNTIsIDAuMzI2MDMsIDAuNDMxNTc0LCAwLjYwMDk1NiwgMC43NDkyMDgsIDAuOTYzNTMiLCBcCi0gICAgICAgICAgIjAuMDM3OTkyLCAwLjE3ODE4NSwgMC4zMjU2ODEsIDAuNDMyMjQzLCAwLjYwMjMzMiwgMC43NDk5OTUsIDAuOTYzNTkzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQyMzgsIDAuMDA0MzQ1LCAwLjAwNDM1NSwgMC4wMDQzNjEsIDAuMDA0MzYzLCAwLjAwNDM2NSwgMC4wMDQzNjYiLCBcCi0gICAgICAgICAgIjAuMDA0MTYxLCAwLjAwNDI5MywgMC4wMDQzMDksIDAuMDA0MzE2LCAwLjAwNDMyMSwgMC4wMDQzMiwgMC4wMDQzMjIiLCBcCi0gICAgICAgICAgIjAuMDA0MTMsIDAuMDA0MjcsIDAuMDA0Mjk0LCAwLjAwNDI5OSwgMC4wMDQzMDQsIDAuMDA0MzA5LCAwLjAwNDMxMiIsIFwKLSAgICAgICAgICAiMC4wMDQxMTksIDAuMDA0MjY1LCAwLjAwNDI5MywgMC4wMDQzMDEsIDAuMDA0MzExLCAwLjAwNDMxNSwgMC4wMDQzMTgiLCBcCi0gICAgICAgICAgIjAuMDA0MTQxLCAwLjAwNDI3OSwgMC4wMDQzMDUsIDAuMDA0MzE3LCAwLjAwNDMyOCwgMC4wMDQzMywgMC4wMDQzMzYiLCBcCi0gICAgICAgICAgIjAuMDA0MTkxLCAwLjAwNDMwNCwgMC4wMDQzMzcsIDAuMDA0MzQ1LCAwLjAwNDM2MiwgMC4wMDQzNjgsIDAuMDA0MzczIiwgXAotICAgICAgICAgICIwLjAwNDIzNiwgMC4wMDQzMzIsIDAuMDA0MzY4LCAwLjAwNDM4MSwgMC4wMDQzODYsIDAuMDA0Mzk4LCAwLjAwNDQwMyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1NTIzLCAwLjAwNTY4NCwgMC4wMDU3MDIsIDAuMDA1NzA3LCAwLjAwNTcxMSwgMC4wMDU3MTQsIDAuMDA1NzE2IiwgXAotICAgICAgICAgICIwLjAwNTQ1MiwgMC4wMDU2MzYsIDAuMDA1NjYsIDAuMDA1NjY4LCAwLjAwNTY3NCwgMC4wMDU2NzcsIDAuMDA1NjgiLCBcCi0gICAgICAgICAgIjAuMDA1NDE4LCAwLjAwNTYxNSwgMC4wMDU2NDYsIDAuMDA1NjU2LCAwLjAwNTY2NSwgMC4wMDU2NywgMC4wMDU2NzQiLCBcCi0gICAgICAgICAgIjAuMDA1NDE1LCAwLjAwNTYwMSwgMC4wMDU2NCwgMC4wMDU2NTMsIDAuMDA1NjY0LCAwLjAwNTY3LCAwLjAwNTY3NiIsIFwKLSAgICAgICAgICAiMC4wMDUzOTgsIDAuMDA1NjAzLCAwLjAwNTY0NSwgMC4wMDU2NjIsIDAuMDA1Njc2LCAwLjAwNTY4MywgMC4wMDU2ODkiLCBcCi0gICAgICAgICAgIjAuMDA1NDIsIDAuMDA1NjE2LCAwLjAwNTY1NywgMC4wMDU2NzYsIDAuMDA1NjkyLCAwLjAwNTcwMiwgMC4wMDU3MTEiLCBcCi0gICAgICAgICAgIjAuMDA1NDgzLCAwLjAwNTYzMiwgMC4wMDU2ODMsIDAuMDA1Njk3LCAwLjAwNTcxMywgMC4wMDU3MjQsIDAuMDA1NzMiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogQ0xLQlVGWDYgKgotICogLS0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKENMS0JVRlg2KSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMzA3NzEzOwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE2NDI0MTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE2NDE1ODsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE2NDI0MTsKLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAxLjUyMzUxOwotICAgIGZ1bmN0aW9uIDogIkEiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDMyNDEzLCAwLjA4MTI4LCAwLjEyOTIwOCwgMC4xNjM0MywgMC4yMTgzNDMsIDAuMjY2MjEsIDAuMzM0Njk0IiwgXAotICAgICAgICAgICIwLjA0MjYwNiwgMC4wOTE0NSwgMC4xMzk0MSwgMC4xNzM2NzcsIDAuMjI4NDY4LCAwLjI3NjU3OCwgMC4zNDQ4MiIsIFwKLSAgICAgICAgICAiMC4wNTQ1NzQsIDAuMTAzMzk5LCAwLjE1MTM4MiwgMC4xODU2MjgsIDAuMjQwNDM5LCAwLjI4ODQ4OCwgMC4zNTY5MTgiLCBcCi0gICAgICAgICAgIjAuMDY0NTQzLCAwLjExMzYxNiwgMC4xNjE1NDMsIDAuMTk1Nzg5LCAwLjI1MDY5OCwgMC4yOTg1MjcsIDAuMzY3MTQ2IiwgXAotICAgICAgICAgICIwLjA3Mjg5MSwgMC4xMjIyNzIsIDAuMTcwMjMyLCAwLjIwNDQ3OCwgMC4yNTkyOTMsIDAuMzA3MjAzLCAwLjM3NTcyNyIsIFwKLSAgICAgICAgICAiMC4wODQ3NTEsIDAuMTM0NzY4LCAwLjE4MjczMywgMC4yMTY5NDcsIDAuMjcxNzMsIDAuMzE5NjcyLCAwLjM4ODEyOCIsIFwKLSAgICAgICAgICAiMC4wOTM3MTcsIDAuMTQ0MDEzLCAwLjE5MTg0MSwgMC4yMjYwNDQsIDAuMjgwNzg3LCAwLjMyODcwMiwgMC4zOTcxNTEiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjM0MzIsIDAuMTE5NjY5LCAwLjIxODQwMiwgMC4yODg1MTMsIDAuNDAxOTExLCAwLjUwMTczOSwgMC42NDE3NDUiLCBcCi0gICAgICAgICAgIjAuMDIzNDMxLCAwLjExOTgzNiwgMC4yMTg0NDUsIDAuMjg5NDk4LCAwLjQwMjY5MSwgMC41MDA3MjMsIDAuNjQzMTQ0IiwgXAotICAgICAgICAgICIwLjAyNDMxNSwgMC4xMjAxMzcsIDAuMjE4MzI5LCAwLjI4OTQyNCwgMC40MDE4MTEsIDAuNTAwNzY0LCAwLjY0MjMyIiwgXAotICAgICAgICAgICIwLjAyNTc5MSwgMC4xMjA0MDYsIDAuMjE4NDU1LCAwLjI4OTA4LCAwLjQwMTkxNCwgMC41MDE3MzQsIDAuNjQxOTk1IiwgXAotICAgICAgICAgICIwLjAyNzUyNywgMC4xMjA2ODksIDAuMjE4OTYzLCAwLjI4ODk2LCAwLjQwMTc4MSwgMC41MDE2NDMsIDAuNjQyODc5IiwgXAotICAgICAgICAgICIwLjAyOTY4LCAwLjEyMTMzMywgMC4yMTkxMDksIDAuMjg5MzIsIDAuNDAyNjc4LCAwLjUwMTY4NiwgMC42NDMxMDciLCBcCi0gICAgICAgICAgIjAuMDMxMjU2LCAwLjEyMjA3NiwgMC4yMTkxMzQsIDAuMjg5NjY1LCAwLjQwMjA2LCAwLjUwMTcsIDAuNjQzMTIyIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDMzNzQ4LCAwLjA4NTQ5NywgMC4xMzYzNiwgMC4xNzI3MDIsIDAuMjMwNzY1LCAwLjI4MTYxOCwgMC4zNTQyMzIiLCBcCi0gICAgICAgICAgIjAuMDQzNjYsIDAuMDk1NDgyLCAwLjE0NjM3MiwgMC4xODI2OTQsIDAuMjQwODEsIDAuMjkxNzE4LCAwLjM2NDQwOSIsIFwKLSAgICAgICAgICAiMC4wNTUwNzksIDAuMTA2ODkyLCAwLjE1NzgxLCAwLjE5NDA5OCwgMC4yNTIyMTcsIDAuMzAzMTA5LCAwLjM3NTgzOSIsIFwKLSAgICAgICAgICAiMC4wNjQ1MjQsIDAuMTE2NTUyLCAwLjE2NzQ0NiwgMC4yMDM4MTcsIDAuMjYxOTUzLCAwLjMxMjczOCwgMC4zODU1NTUiLCBcCi0gICAgICAgICAgIjAuMDcyNTk0LCAwLjEyNDc5MiwgMC4xNzU2MjksIDAuMjExOTg0LCAwLjI3MDA1NiwgMC4zMjA5MDQsIDAuMzkzNTIiLCBcCi0gICAgICAgICAgIjAuMDgzMzYzLCAwLjEzNTc0MywgMC4xODY1OSwgMC4yMjI4OTIsIDAuMjgwOTksIDAuMzMxODk4LCAwLjQwNDQ4NiIsIFwKLSAgICAgICAgICAiMC4wOTE2MDgsIDAuMTQ0MzE1LCAwLjE5NDQ2OSwgMC4yMzA3MTgsIDAuMjg4NzcyLCAwLjMzOTU5MiwgMC40MTIyMzQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjM3ODMsIDAuMTI0MDQ2LCAwLjIyNTg4MSwgMC4yOTg3MTcsIDAuNDE2Mzk3LCAwLjUxNzIyOSwgMC42NjU3MTMiLCBcCi0gICAgICAgICAgIjAuMDIzODEyLCAwLjEyMzkyMywgMC4yMjU5MzEsIDAuMjk5MTg2LCAwLjQxNjgwMiwgMC41MTc5MDgsIDAuNjY0MDk2IiwgXAotICAgICAgICAgICIwLjAyNDUyNiwgMC4xMjQyMDksIDAuMjI1NzM4LCAwLjI5OTYxLCAwLjQxNTU3NywgMC41MTg1NDMsIDAuNjY0MDQiLCBcCi0gICAgICAgICAgIjAuMDI1ODg0LCAwLjEyNDM0NywgMC4yMjYzOTgsIDAuMjk4ODM0LCAwLjQxNTg0NSwgMC41MTkzNjUsIDAuNjYzOTYyIiwgXAotICAgICAgICAgICIwLjAyNzAwNCwgMC4xMjQ3MTIsIDAuMjI2NTQ0LCAwLjI5ODkzNCwgMC40MTY1NzUsIDAuNTE5MTEyLCAwLjY2NTg5MSIsIFwKLSAgICAgICAgICAiMC4wMjg2MjYsIDAuMTI1MDk1LCAwLjIyNjczLCAwLjI5OTA0NSwgMC40MTYzNTIsIDAuNTE4MjU2LCAwLjY2Mzc4NSIsIFwKLSAgICAgICAgICAiMC4wMzAyMzYsIDAuMTI1NDc2LCAwLjIyNjc2OSwgMC4yOTk2NDIsIDAuNDE2NDU1LCAwLjUxOTQzMywgMC42NjQwMTQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjQ2OCwgMC4wMDY2NTQsIDAuMDA2NjcyLCAwLjAwNjY2NSwgMC4wMDY2OCwgMC4wMDY2OTYsIDAuMDA2Njg1IiwgXAotICAgICAgICAgICIwLjAwNjI5NiwgMC4wMDY1MjQsIDAuMDA2NTU4LCAwLjAwNjU2NywgMC4wMDY1NzcsIDAuMDA2NTgxLCAwLjAwNjU4NSIsIFwKLSAgICAgICAgICAiMC4wMDYyNDcsIDAuMDA2NDc4LCAwLjAwNjUzMiwgMC4wMDY1NDYsIDAuMDA2NTYsIDAuMDA2NTY3LCAwLjAwNjU3NCIsIFwKLSAgICAgICAgICAiMC4wMDYyNjcsIDAuMDA2NDk1LCAwLjAwNjU1NSwgMC4wMDY1NzMsIDAuMDA2NTg4LCAwLjAwNjU5OSwgMC4wMDY2MDgiLCBcCi0gICAgICAgICAgIjAuMDA2Mjg4LCAwLjAwNjQ5OSwgMC4wMDY1NjEsIDAuMDA2NTc4LCAwLjAwNjYwMSwgMC4wMDY2MTgsIDAuMDA2NjIxIiwgXAotICAgICAgICAgICIwLjAwNjM1LCAwLjAwNjU0LCAwLjAwNjU5MywgMC4wMDY2MjQsIDAuMDA2NjQzLCAwLjAwNjY1NSwgMC4wMDY2NjIiLCBcCi0gICAgICAgICAgIjAuMDA2Mzg5LCAwLjAwNjU5OCwgMC4wMDY2NiwgMC4wMDY2ODMsIDAuMDA2NzA4LCAwLjAwNjcyNSwgMC4wMDY3MzMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwODQzNSwgMC4wMDg2OTEsIDAuMDA4NzIzLCAwLjAwODczMywgMC4wMDg3NDEsIDAuMDA4NzYxLCAwLjAwODc1IiwgXAotICAgICAgICAgICIwLjAwODI2OSwgMC4wMDg1NzgsIDAuMDA4NjI2LCAwLjAwODY0LCAwLjAwODY1NCwgMC4wMDg2NiwgMC4wMDg2NjYiLCBcCi0gICAgICAgICAgIjAuMDA4MjA2LCAwLjAwODUyNSwgMC4wMDg1OTMsIDAuMDA4NjE2LCAwLjAwODYzNiwgMC4wMDg2NDcsIDAuMDA4NjU2IiwgXAotICAgICAgICAgICIwLjAwODIxNiwgMC4wMDg1MTYsIDAuMDA4NTgzLCAwLjAwODYxLCAwLjAwODYzNCwgMC4wMDg2NDYsIDAuMDA4NjU3IiwgXAotICAgICAgICAgICIwLjAwODIyNCwgMC4wMDg1MTMsIDAuMDA4NTk0LCAwLjAwODYyMiwgMC4wMDg2NDksIDAuMDA4NjYzLCAwLjAwODY3NiIsIFwKLSAgICAgICAgICAiMC4wMDgyMjYsIDAuMDA4NTQxLCAwLjAwODYzMSwgMC4wMDg2NjQsIDAuMDA4Njk1LCAwLjAwODcwOCwgMC4wMDg3MjQiLCBcCi0gICAgICAgICAgIjAuMDA4MjgsIDAuMDA4NTcyLCAwLjAwODY1NSwgMC4wMDg2OTQsIDAuMDA4NzMzLCAwLjAwODc1NCwgMC4wMDg3NzMiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogQ0xLQlVGWDggKgotICogLS0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKENMS0JVRlg4KSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMzgxNDgzOwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE2MzEyMTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE2MzA1NTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE2MzEyMTsKLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAyLjAxMDMyOwotICAgIGZ1bmN0aW9uIDogIkEiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM0MzQ5LCAwLjA3MjE1NiwgMC4xMDgyODgsIDAuMTM0MDg4LCAwLjE3NTMzNCwgMC4yMTE0NywgMC4yNjMxMzgiLCBcCi0gICAgICAgICAgIjAuMDQ0NTIyLCAwLjA4MjM3NSwgMC4xMTg1NTYsIDAuMTQ0MzU4LCAwLjE4NTY0NywgMC4yMjE4MDEsIDAuMjczMjYyIiwgXAotICAgICAgICAgICIwLjA1Njg1NSwgMC4wOTQ3NjYsIDAuMTMwOTQ0LCAwLjE1Njc1MiwgMC4xOTgwNjcsIDAuMjM0MTcxLCAwLjI4NTc5NyIsIFwKLSAgICAgICAgICAiMC4wNjc2OTgsIDAuMTA1OCwgMC4xNDE5NSwgMC4xNjc3NjUsIDAuMjA5MDQzLCAwLjI0NTE2MiwgMC4yOTY3ODgiLCBcCi0gICAgICAgICAgIjAuMDc2OTgyLCAwLjExNTYxLCAwLjE1MTc0OCwgMC4xNzc1NDcsIDAuMjE4ODEyLCAwLjI1NDkxOSwgMC4zMDY1NDEiLCBcCi0gICAgICAgICAgIjAuMDg5ODIsIDAuMTI5MjM1LCAwLjE2NTQzNSwgMC4xOTExMDUsIDAuMjMyMzgxLCAwLjI2ODQ2NywgMC4zMjAwNDYiLCBcCi0gICAgICAgICAgIjAuMDk5NDA0LCAwLjEzOTUyOCwgMC4xNzYwMTQsIDAuMjAxNTQyLCAwLjI0MjgwOSwgMC4yNzg4ODYsIDAuMzMwNTAxIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDIxNDEsIDAuMDkyOTI0LCAwLjE2NjQ0MSwgMC4yMTk0NzcsIDAuMzA0MjksIDAuMzc5NzMzLCAwLjQ4NTQ3IiwgXAotICAgICAgICAgICIwLjAyMTM4OCwgMC4wOTI5OTIsIDAuMTY2NjYxLCAwLjIxOTY2NCwgMC4zMDUxNjQsIDAuMzc4OTgzLCAwLjQ4NTk0NyIsIFwKLSAgICAgICAgICAiMC4wMjIxNywgMC4wOTMxMzEsIDAuMTY2ODYzLCAwLjIxOTg2NCwgMC4zMDQ1MzgsIDAuMzc5NTI0LCAwLjQ4NTI4NCIsIFwKLSAgICAgICAgICAiMC4wMjM5NzQsIDAuMDkzNTU3LCAwLjE2NjYzNywgMC4yMjAwNjMsIDAuMzA1MTM5LCAwLjM3OTcwNiwgMC40ODUzMTEiLCBcCi0gICAgICAgICAgIjAuMDI1MzkyLCAwLjA5NDE5OCwgMC4xNjczMTQsIDAuMjIwMjQ5LCAwLjMwNDc4LCAwLjM3OTcwMywgMC40ODUzNDIiLCBcCi0gICAgICAgICAgIjAuMDI3OTU0LCAwLjA5NTIwNSwgMC4xNjc2OTYsIDAuMjIwNDM2LCAwLjMwNTM2OSwgMC4zNzkzMzQsIDAuNDg2MDU2IiwgXAotICAgICAgICAgICIwLjAzMDMxNiwgMC4wOTY0MywgMC4xNjg0MzIsIDAuMjIwNjUxLCAwLjMwNTE3OSwgMC4zNzk3ODksIDAuNDg1NDY4Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM1NjQ3LCAwLjA3NTM3MywgMC4xMTM0NzcsIDAuMTQwNjUxLCAwLjE4NDEyNCwgMC4yMjIwNjEsIDAuMjc2NDQyIiwgXAotICAgICAgICAgICIwLjA0NTU4MiwgMC4wODUzNTEsIDAuMTIzNDU0LCAwLjE1MDYzNywgMC4xOTQwOTMsIDAuMjMyMTQ1LCAwLjI4NjQzOCIsIFwKLSAgICAgICAgICAiMC4wNTc1OCwgMC4wOTczOTgsIDAuMTM1NTAyLCAwLjE2MjY4MywgMC4yMDYxNDUsIDAuMjQ0MTgzLCAwLjI5ODYxMyIsIFwKLSAgICAgICAgICAiMC4wNjgwOTksIDAuMTA4MTg1LCAwLjE0NjIzNSwgMC4xNzM0MTEsIDAuMjE2ODk1LCAwLjI1NDg5MiwgMC4zMDkyNTQiLCBcCi0gICAgICAgICAgIjAuMDc2NTAxLCAwLjExNjQ4NSwgMC4xNTQ0NzYsIDAuMTgxNjI3LCAwLjIyNTA4OCwgMC4yNjMxMTUsIDAuMzE3NDA0IiwgXAotICAgICAgICAgICIwLjA4ODYzNywgMC4xMjk2MDMsIDAuMTY3NTI2LCAwLjE5NDY1NywgMC4yMzgwOTUsIDAuMjc2MTAxLCAwLjMzMDQwNCIsIFwKLSAgICAgICAgICAiMC4wOTc2OTIsIDAuMTM5MTI2LCAwLjE3NzExOCwgMC4yMDQxNDUsIDAuMjQ3NTUsIDAuMjg1NTM1LCAwLjMzOTg2OCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyMTUxNywgMC4wOTU5MzksIDAuMTcyNTg1LCAwLjIyNzUzOCwgMC4zMTU3MzIsIDAuMzkyODgsIDAuNTAyMTkyIiwgXAotICAgICAgICAgICIwLjAyMTUxMywgMC4wOTU5NzgsIDAuMTcyMjcyLCAwLjIyNzA1OSwgMC4zMTU2OTcsIDAuMzkyMzgxLCAwLjUwMTkxOSIsIFwKLSAgICAgICAgICAiMC4wMjIwNzQsIDAuMDk1OTY5LCAwLjE3MjU3MiwgMC4yMjcxOTIsIDAuMzE1NjgsIDAuMzkyOTUxLCAwLjUwMjAxMSIsIFwKLSAgICAgICAgICAiMC4wMjM0MjQsIDAuMDk2Mzc4LCAwLjE3MjcxOSwgMC4yMjcyOSwgMC4zMTQ5LCAwLjM5MjgyMiwgMC41MDIxNTMiLCBcCi0gICAgICAgICAgIjAuMDI0ODAxLCAwLjA5NzExLCAwLjE3MzA2MywgMC4yMjc4NCwgMC4zMTU4NjcsIDAuMzkxOTE2LCAwLjUwMzA4MiIsIFwKLSAgICAgICAgICAiMC4wMjczMDgsIDAuMDk3NzI3LCAwLjE3MzI1MywgMC4yMjc3MjUsIDAuMzE1OTA1LCAwLjM5MzAxNiwgMC41MDMzMDciLCBcCi0gICAgICAgICAgIjAuMDI4OTgxLCAwLjA5ODY3MSwgMC4xNzMyODEsIDAuMjI4MDUxLCAwLjMxNjEyNywgMC4zOTMxMjgsIDAuNTAyMjMxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDgyMjEsIDAuMDA4NTE2LCAwLjAwODU2MSwgMC4wMDg1NzQsIDAuMDA4NTg1LCAwLjAwODU5MSwgMC4wMDg1OTYiLCBcCi0gICAgICAgICAgIjAuMDA4MDcyLCAwLjAwODM5LCAwLjAwODQ0NSwgMC4wMDg0NjEsIDAuMDA4NDksIDAuMDA4NDk0LCAwLjAwODQ5NyIsIFwKLSAgICAgICAgICAiMC4wMDc5ODksIDAuMDA4MzEzLCAwLjAwODM5NywgMC4wMDg0MTgsIDAuMDA4NDQzLCAwLjAwODQ1NiwgMC4wMDg0NjgiLCBcCi0gICAgICAgICAgIjAuMDA4MDY0LCAwLjAwODMyMywgMC4wMDg0MDUsIDAuMDA4NDQzLCAwLjAwODQ2LCAwLjAwODQ4MSwgMC4wMDg0OTYiLCBcCi0gICAgICAgICAgIjAuMDA4MDY4LCAwLjAwODMwNSwgMC4wMDgzOTEsIDAuMDA4NDMzLCAwLjAwODQ1OCwgMC4wMDg0NjIsIDAuMDA4NDg4IiwgXAotICAgICAgICAgICIwLjAwODEyOSwgMC4wMDgzMzIsIDAuMDA4NDIxLCAwLjAwODQ0NiwgMC4wMDg0ODMsIDAuMDA4NTA5LCAwLjAwODUyOCIsIFwKLSAgICAgICAgICAiMC4wMDgyMjQsIDAuMDA4Mzc5LCAwLjAwODQ5MSwgMC4wMDg1MDgsIDAuMDA4NTUsIDAuMDA4NTYzLCAwLjAwODU4NSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEwMjkyLCAwLjAxMDcwNSwgMC4wMTA3NzIsIDAuMDEwNzkyLCAwLjAxMDgxLCAwLjAxMDgyLCAwLjAxMDgyOSIsIFwKLSAgICAgICAgICAiMC4wMTAxMzIsIDAuMDEwNTc4LCAwLjAxMDY2NSwgMC4wMTA2OTMsIDAuMDEwNzE4LCAwLjAxMDczMSwgMC4wMTA3NDMiLCBcCi0gICAgICAgICAgIjAuMDEwMTA5LCAwLjAxMDUxNCwgMC4wMTA2MTksIDAuMDEwNjU1LCAwLjAxMDY4OSwgMC4wMTA3MDcsIDAuMDEwNzIzIiwgXAotICAgICAgICAgICIwLjAxMDA1OSwgMC4wMTA0NjUsIDAuMDEwNTg2LCAwLjAxMDYzLCAwLjAxMDY3MiwgMC4wMTA2OTQsIDAuMDEwNzE1IiwgXAotICAgICAgICAgICIwLjAxMDA1MiwgMC4wMTA0NDksIDAuMDEwNTgyLCAwLjAxMDYzMiwgMC4wMTA2ODIsIDAuMDEwNzA1LCAwLjAxMDczNSIsIFwKLSAgICAgICAgICAiMC4wMTAxOTIsIDAuMDEwNDcsIDAuMDEwNTk3LCAwLjAxMDY0OCwgMC4wMTA2OTQsIDAuMDEwNzIyLCAwLjAxMDc1NSIsIFwKLSAgICAgICAgICAiMC4wMTAyODYsIDAuMDEwNTIsIDAuMDEwNjM5LCAwLjAxMDY5OCwgMC4wMTA3NTIsIDAuMDEwNzc3LCAwLjAxMDgxMyIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBDTEtJTlZYMSAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoQ0xLSU5WWDEpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4wMzczNzAzOwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA4Nzc1MzU7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwODc3MTA2OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDg3NzUzNTsKLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjI2NjI0OwotICAgIGZ1bmN0aW9uIDogIighQSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0NzE3MiwgMC4wNzE3MjIsIDAuMjEwODQsIDAuMzMzNzYsIDAuNDk3MDczLCAwLjgyNDQ3NCwgMS4wMjg2MyIsIFwKLSAgICAgICAgICAiMC4wNTcwMywgMC4wODE1NjksIDAuMjIwNzg2LCAwLjM0MzM1NywgMC41MDY5MDcsIDAuODM0MzUzLCAxLjAzODk3IiwgXAotICAgICAgICAgICIwLjA2OTY3NSwgMC4wOTQsIDAuMjMzMTQ0LCAwLjM1NTI5LCAwLjUxODgzMSwgMC44NDYxNjEsIDEuMDUxMDUiLCBcCi0gICAgICAgICAgIjAuMDgyMzc2LCAwLjEwNjgsIDAuMjQ1NzIxLCAwLjM2ODM3OCwgMC41MzExMDQsIDAuODU4MjM5LCAxLjA2MzA1IiwgXAotICAgICAgICAgICIwLjA5NDg2MiwgMC4xMTk1NDgsIDAuMjU4MzAxLCAwLjM4MDg4NSwgMC41NDMzNzYsIDAuODcxMTMyLCAxLjA3NDgyIiwgXAotICAgICAgICAgICIwLjExMjU0OSwgMC4xMzk5MDUsIDAuMjc3OTcxLCAwLjQwMTEwNywgMC41NjQyOTgsIDAuODg5NzYyLCAxLjA5NDMzIiwgXAotICAgICAgICAgICIwLjEyNTM5LCAwLjE1NjYzNiwgMC4yOTU1MzksIDAuNDE4NjU0LCAwLjU4MTk2NiwgMC45MDcxMDYsIDEuMTExNDkiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg5ODk0LCAwLjE0MDE4OSwgMC40MjYzNzcsIDAuNjc5MTA2LCAxLjAxNTkyLCAxLjY4ODY1LCAyLjEwODk1IiwgXAotICAgICAgICAgICIwLjA5MDMsIDAuMTQwMjY0LCAwLjQyNjMzLCAwLjY3OTg3NiwgMS4wMTUyMiwgMS42ODg2NSwgMi4xMDk0MyIsIFwKLSAgICAgICAgICAiMC4wOTQzMjIsIDAuMTQyNTEsIDAuNDI2NDA1LCAwLjY3ODg0NywgMS4wMTUyMywgMS42OTEyMiwgMi4xMDk0NyIsIFwKLSAgICAgICAgICAiMC4xMDA5OTIsIDAuMTQ3MDM4LCAwLjQyNjM5OCwgMC42Nzg4MTYsIDEuMDE1NDQsIDEuNjkxMjMsIDIuMTA5NDQiLCBcCi0gICAgICAgICAgIjAuMTA4ODk2LCAwLjE1MzE3MiwgMC40MjcyOTYsIDAuNjc5MjgsIDEuMDE1NDUsIDEuNjg5MzQsIDIuMTEzMjMiLCBcCi0gICAgICAgICAgIjAuMTIzNzQ0LCAwLjE2NDk4NCwgMC40MzE4MjgsIDAuNjc5MDMyLCAxLjAxNTIyLCAxLjY4ODI4LCAyLjExMjgyIiwgXAotICAgICAgICAgICIwLjEzNjk3MywgMC4xNzY2NzMsIDAuNDM3NDgzLCAwLjY4MjE1NCwgMS4wMTcyNCwgMS42OTEwNCwgMi4xMDg5NSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDc3ODQsIDAuMDcyNTU3LCAwLjIxMjg1LCAwLjMzNjQ0OSwgMC41MDEzODUsIDAuODMxMzQ0LCAxLjAzNzQiLCBcCi0gICAgICAgICAgIjAuMDU3Nzk3LCAwLjA4MjY0NiwgMC4yMjI4OTQsIDAuMzQ2NTEsIDAuNTExMzUxLCAwLjg0MTE2NiwgMS4wNDc0MiIsIFwKLSAgICAgICAgICAiMC4wNzA4MSwgMC4wOTUyNzgsIDAuMjM1NjU5LCAwLjM1ODU3NiwgMC41MjM3MDQsIDAuODUzNTQ4LCAxLjA1OTc3IiwgXAotICAgICAgICAgICIwLjA4MzgzNCwgMC4xMDg0NzgsIDAuMjQ4NTc4LCAwLjM3MjAzLCAwLjUzNTk1NiwgMC44NjU4NTEsIDEuMDcxOCIsIFwKLSAgICAgICAgICAiMC4wOTY3MzksIDAuMTIxNTMyLCAwLjI2MTM3LCAwLjM4NDk0LCAwLjU0OTc2MywgMC44NzgxNjcsIDEuMDg0ODYiLCBcCi0gICAgICAgICAgIjAuMTE1NTI5LCAwLjE0MjU0MSwgMC4yODE0MjMsIDAuNDA0ODExLCAwLjU3MDIzMywgMC44OTc4OTUsIDEuMTA0NjgiLCBcCi0gICAgICAgICAgIjAuMTI5NjA4LCAwLjE2MDA2NSwgMC4yOTk0MTcsIDAuNDIzNzQ2LCAwLjU4ODU5MywgMC45MTc4MDMsIDEuMTIxMyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODgyNTUsIDAuMTM4MTI0LCAwLjQyMDQzMiwgMC42Njk1NiwgMS4wMDEwNSwgMS42NjQyNSwgMi4wNzk1IiwgXAotICAgICAgICAgICIwLjA4ODUxNiwgMC4xMzc5NjgsIDAuNDIwMDQ5LCAwLjY2ODU5NSwgMS4wMDMwMiwgMS42NjcxNiwgMi4wODAzNSIsIFwKLSAgICAgICAgICAiMC4wOTI1MTgsIDAuMTM5OTk1LCAwLjQyMDAxMywgMC42NjkxMTEsIDEuMDAwNDYsIDEuNjY0MjYsIDIuMDc4ODEiLCBcCi0gICAgICAgICAgIjAuMDk4NzM4LCAwLjE0NDI1NSwgMC40MjAyNzgsIDAuNjY5MjU5LCAxLjAwMjI1LCAxLjY2NDE1LCAyLjA4MzU4IiwgXAotICAgICAgICAgICIwLjEwNjM5MSwgMC4xNTAyNjYsIDAuNDIxMzI5LCAwLjY2OTE1MSwgMS4wMDA3MywgMS42NjU0MiwgMi4wODA3MSIsIFwKLSAgICAgICAgICAiMC4xMjAwNTcsIDAuMTYxNjAxLCAwLjQyNTI0LCAwLjY2ODkzMywgMS4wMDI2NSwgMS42NjQ1OCwgMi4wODA2NyIsIFwKLSAgICAgICAgICAiMC4xMzM1NSwgMC4xNzI2NjIsIDAuNDMwNTQ2LCAwLjY3MDIxMSwgMS4wMDA0NiwgMS42NjQ0OSwgMi4wNzg1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxMTk5LCAwLjAwMTIwMSwgMC4wMDEyMDQsIDAuMDAxMjA0LCAwLjAwMTIwNSwgMC4wMDEyMDUsIDAuMDAxMjA1IiwgXAotICAgICAgICAgICIwLjAwMTE4LCAwLjAwMTE4OCwgMC4wMDExOTksIDAuMDAxMjAzLCAwLjAwMTIwMywgMC4wMDEyMDQsIDAuMDAxMjA0IiwgXAotICAgICAgICAgICIwLjAwMTE2NywgMC4wMDExNzYsIDAuMDAxMTk0LCAwLjAwMTE5OCwgMC4wMDEyLCAwLjAwMTIwNCwgMC4wMDEyMDMiLCBcCi0gICAgICAgICAgIjAuMDAxMTY0LCAwLjAwMTE3MiwgMC4wMDExOTEsIDAuMDAxMTk2LCAwLjAwMTE5OSwgMC4wMDEyMDEsIDAuMDAxMjAyIiwgXAotICAgICAgICAgICIwLjAwMTE2NSwgMC4wMDExNzIsIDAuMDAxMTg5LCAwLjAwMTE5NCwgMC4wMDExOTcsIDAuMDAxMjAxLCAwLjAwMTIwMiIsIFwKLSAgICAgICAgICAiMC4wMDExNzcsIDAuMDAxMTc1LCAwLjAwMTE4NSwgMC4wMDExOTMsIDAuMDAxMTk2LCAwLjAwMTIsIDAuMDAxMiIsIFwKLSAgICAgICAgICAiMC4wMDExOTIsIDAuMDAxMTg2LCAwLjAwMTE4OCwgMC4wMDExOTMsIDAuMDAxMTk2LCAwLjAwMTIsIDAuMDAxMjAxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwMDA5LCAwLjAwMDAwNiwgMC4wMDAwMDIsIDAuMDAwMDAxLCAwLjAwMDAwMSwgMC4wMDAwMDEsIDAiLCBcCi0gICAgICAgICAgIjAuMDAwMDM1LCAwLjAwMDAyNCwgMC4wMDAwMDksIDAuMDAwMDA1LCAwLjAwMDAwNCwgMC4wMDAwMDIsIDAuMDAwMDAyIiwgXAotICAgICAgICAgICIwLjAwMDA1MiwgMC4wMDAwNCwgMC4wMDAwMTUsIDAuMDAwMDEsIDAuMDAwMDA3LCAwLjAwMDAwNCwgMC4wMDAwMDMiLCBcCi0gICAgICAgICAgIjAuMDAwMDU4LCAwLjAwMDA0NiwgMC4wMDAwMiwgMC4wMDAwMTMsIDAuMDAwMDA5LCAwLjAwMDAwNiwgMC4wMDAwMDQiLCBcCi0gICAgICAgICAgIjAuMDAwMDU3LCAwLjAwMDA0OCwgMC4wMDAwMjMsIDAuMDAwMDE2LCAwLjAwMDAxMSwgMC4wMDAwMDcsIDAuMDAwMDA1IiwgXAotICAgICAgICAgICIwLjAwMDA0NSwgMC4wMDAwNDMsIDAuMDAwMDI2LCAwLjAwMDAxOCwgMC4wMDAwMTMsIDAuMDAwMDA4LCAwLjAwMDAwNyIsIFwKLSAgICAgICAgICAiMC4wMDAwMjksIDAuMDAwMDM0LCAwLjAwMDAyNiwgMC4wMDAwMTgsIDAuMDAwMDEzLCAwLjAwMDAwOSwgMC4wMDAwMDciKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IENMS0lOVlgxMiAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKENMS0lOVlgxMikgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjQ4ODI0NTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDA5MDY5MjE7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDA5MDY1MDk7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDA5MDY5MjE7Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMi45OTYwOTsKLSAgICBmdW5jdGlvbiA6ICIoIUEpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDk1NTEsIDAuMDExNjY3LCAwLjAyMzY3LCAwLjAzNDIwOSwgMC4wNDgyMTEsIDAuMDc2MjM2LCAwLjA5MzY4MyIsIFwKLSAgICAgICAgICAiMC4wMTg0MjEsIDAuMDIxMjg2LCAwLjAzMzY1OCwgMC4wNDQxNywgMC4wNTgwOTYsIDAuMDg2MTEyLCAwLjEwMzY1MSIsIFwKLSAgICAgICAgICAiMC4wMjU1MzIsIDAuMDI5Njk4LCAwLjA0NjA4NSwgMC4wNTY4MDUsIDAuMDcwNzc3LCAwLjA5ODU0NywgMC4xMTYwNTgiLCBcCi0gICAgICAgICAgIjAuMDMxMTc1LCAwLjAzNjE1MSwgMC4wNTYxNzksIDAuMDY5MTI3LCAwLjA4MzM1MywgMC4xMTA5MzEsIDAuMTI4NDQ2IiwgXAotICAgICAgICAgICIwLjAzNTcxMywgMC4wNDE1OTYsIDAuMDY1MDc2LCAwLjA4MDMwMSwgMC4wOTYyMDIsIDAuMTI0MjgsIDAuMTQxNzE5IiwgXAotICAgICAgICAgICIwLjA0MTcwNSwgMC4wNDg3MDcsIDAuMDc2ODc2LCAwLjA5NDUwOSwgMC4xMTQyNDYsIDAuMTQ0Njk3LCAwLjE2MjA0MSIsIFwKLSAgICAgICAgICAiMC4wNDU5NzQsIDAuMDU0MDczLCAwLjA4NTQxNCwgMC4xMDU5OTMsIDAuMTI3MTQxLCAwLjE2MTgzMiwgMC4xODAwMzMiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEyNTQzLCAwLjAxNjgxLCAwLjA0MTM1MywgMC4wNjMwMTksIDAuMDkxODk1LCAwLjE0OTc0NCwgMC4xODU3OTIiLCBcCi0gICAgICAgICAgIjAuMDE4NzM3LCAwLjAyMjA2OSwgMC4wNDM3MDEsIDAuMDY0MTQ4LCAwLjA5MjI1OCwgMC4xNDk2NTUsIDAuMTg1NzkyIiwgXAotICAgICAgICAgICIwLjAyNzU1OCwgMC4wMzE1NCwgMC4wNTExMzYsIDAuMDY5ODk3LCAwLjA5NjI2OCwgMC4xNTE1NzUsIDAuMTg2NjAyIiwgXAotICAgICAgICAgICIwLjAzNDYwNSwgMC4wMzkzNzksIDAuMDYwNzc5LCAwLjA3ODA3MSwgMC4xMDI5NTMsIDAuMTU1OTQsIDAuMTkwMzQxIiwgXAotICAgICAgICAgICIwLjA0MDkzMywgMC4wNDY0MDIsIDAuMDcwMDA1LCAwLjA4NjcsIDAuMTEwNDg3LCAwLjE2MTU3NiwgMC4xOTQ3NiIsIFwKLSAgICAgICAgICAiMC4wNTA0MzEsIDAuMDU2NjQ1LCAwLjA4NDMwOCwgMC4xMDI1MzUsIDAuMTI0ODg3LCAwLjE3MzI2LCAwLjIwNTExOCIsIFwKLSAgICAgICAgICAiMC4wNTc1NzksIDAuMDY1MDY2LCAwLjA5NjE5NCwgMC4xMTU3OTYsIDAuMTM4NTE5LCAwLjE4NDQ1NiwgMC4yMTU0MzkiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA5OTQyLCAwLjAxMjIxMiwgMC4wMjQ2NDEsIDAuMDM1NDY2LCAwLjA1MDAyNCwgMC4wNzkwNTgsIDAuMDk3MTU2IiwgXAotICAgICAgICAgICIwLjAxOTM1MSwgMC4wMjIxNzMsIDAuMDM0NzY4LCAwLjA0NTU2NywgMC4wNjAyMTQsIDAuMDg5MjY0LCAwLjEwNzMyNyIsIFwKLSAgICAgICAgICAiMC4wMjc0MjMsIDAuMDMxNjA1LCAwLjA0NzcyNiwgMC4wNTg3NDIsIDAuMDczMjI5LCAwLjEwMTk3OCwgMC4xMjAxMTUiLCBcCi0gICAgICAgICAgIjAuMDMzNjI5LCAwLjAzODYzLCAwLjA1ODg1OCwgMC4wNzE1NzMsIDAuMDg2MTc1LCAwLjExNTEzNSwgMC4xMzI4NDUiLCBcCi0gICAgICAgICAgIjAuMDM4NzkxLCAwLjA0NTAxMiwgMC4wNjgzMTQsIDAuMDgzMzk5LCAwLjA5OTQzMSwgMC4xMjg0NTUsIDAuMTQ1NTcxIiwgXAotICAgICAgICAgICIwLjA0NjI2MiwgMC4wNTM2ODQsIDAuMDgxNTA1LCAwLjA5OTE5MiwgMC4xMTg0NjEsIDAuMTQ5MTU0LCAwLjE2NzE2OCIsIFwKLSAgICAgICAgICAiMC4wNTEzMDMsIDAuMDU5MzU4LCAwLjA5MTYwNSwgMC4xMTE3ODYsIDAuMTMzMTQzLCAwLjE2NzQxMiwgMC4xODU3NDYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEyNDQ1LCAwLjAxNjc5NSwgMC4wNDE2NDUsIDAuMDYzNzE1LCAwLjA5Mjc1NCwgMC4xNTExODMsIDAuMTg3NjE4IiwgXAotICAgICAgICAgICIwLjAxODExNiwgMC4wMjE1MTUsIDAuMDQzNjMxLCAwLjA2NDQ0MiwgMC4wOTMwMjMsIDAuMTUxMjEyLCAwLjE4NzU3NiIsIFwKLSAgICAgICAgICAiMC4wMjcwNTksIDAuMDMwODgzLCAwLjA1MDU1NSwgMC4wNjk3MzIsIDAuMDk2Njk0LCAwLjE1Mjg0MywgMC4xODgzNDIiLCBcCi0gICAgICAgICAgIjAuMDM0NDI2LCAwLjAzOTUzOCwgMC4wNTk3LCAwLjA3NzI1OSwgMC4xMDI2NzMsIDAuMTU2NzA3LCAwLjE5MTYyMyIsIFwKLSAgICAgICAgICAiMC4wNDE1MzEsIDAuMDQ2ODA4LCAwLjA2OTIwNCwgMC4wODU2NDcsIDAuMTA5NzQzLCAwLjE2MjAxNiwgMC4xOTYxOTgiLCBcCi0gICAgICAgICAgIjAuMDUwODg5LCAwLjA1NzA0MSwgMC4wODQxNDEsIDAuMTAxMzYyLCAwLjEyMzQxMSwgMC4xNzI2MzUsIDAuMjA1MTQ0IiwgXAotICAgICAgICAgICIwLjA1ODY1MiwgMC4wNjY3NTIsIDAuMDk1MzYxLCAwLjExNDIxNSwgMC4xMzY4NTksIDAuMTgzNDM4LCAwLjIxNDY2NiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMjczNiwgMC4wMTI4MjIsIDAuMDEzMDI5LCAwLjAxMzA4MywgMC4wMTMxMTEsIDAuMDEzMTQzLCAwLjAxMzE0NyIsIFwKLSAgICAgICAgICAiMC4wMTIyNTEsIDAuMDEyMzI2LCAwLjAxMjY0MiwgMC4wMTI3NjEsIDAuMDEyODYyLCAwLjAxMjk3OSwgMC4wMTMwMTYiLCBcCi0gICAgICAgICAgIjAuMDEyMzQxLCAwLjAxMjM0MSwgMC4wMTI0ODUsIDAuMDEyNjAyLCAwLjAxMjcxNiwgMC4wMTI4NDMsIDAuMDEyODk3IiwgXAotICAgICAgICAgICIwLjAxMjQ2MSwgMC4wMTI0MzEsIDAuMDEyNTk2LCAwLjAxMjYzNywgMC4wMTI3MDgsIDAuMDEyODIyLCAwLjAxMjg1MyIsIFwKLSAgICAgICAgICAiMC4wMTI2NjIsIDAuMDEyNjIxLCAwLjAxMjU4NCwgMC4wMTI1OTIsIDAuMDEyNjQ4LCAwLjAxMjc0NiwgMC4wMTI3OTYiLCBcCi0gICAgICAgICAgIjAuMDEzMTE3LCAwLjAxMzAzMSwgMC4wMTI5NCwgMC4wMTI4MiwgMC4wMTI4MDYsIDAuMDEyODIzLCAwLjAxMjg1MSIsIFwKLSAgICAgICAgICAiMC4wMTM2NDQsIDAuMDEzNDY0LCAwLjAxMzI0NCwgMC4wMTMwODQsIDAuMDEyOTc1LCAwLjAxMjkxNywgMC4wMTI5MjYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDAzODQsIDAuMDAwMjU0LCAwLjAwMDAwOSwgMC4wMDAwNTMsIDAuMDAwMSwgMC4wMDAxNCwgMC4wMDAxNTMiLCBcCi0gICAgICAgICAgIjAuMDAwOTgyLCAwLjAwMDg4LCAwLjAwMDQ5MywgMC4wMDAzMzQsIDAuMDAwMTg4LCAwLjAwMDA1OCwgMC4wMDAwMTUiLCBcCi0gICAgICAgICAgIjAuMDAwOTc1LCAwLjAwMDk1NSwgMC4wMDA3NDYsIDAuMDAwNTg0LCAwLjAwMDQzLCAwLjAwMDI2MSwgMC4wMDAxODciLCBcCi0gICAgICAgICAgIjAuMDAwODQ5LCAwLjAwMDcsIDAuMDAwNzAzLCAwLjAwMDYxNSwgMC4wMDA1MDIsIDAuMDAwMzM1LCAwLjAwMDI3NyIsIFwKLSAgICAgICAgICAiMC4wMDAzLCAwLjAwMDM2MSwgMC4wMDA1MTQsIDAuMDAwNTA3LCAwLjAwMDQ0NywgMC4wMDAzMywgMC4wMDAyNzciLCBcCi0gICAgICAgICAgIjAuMDAwMDg3LCAwLjAwMDIxMiwgMC4wMDAyNzIsIDAuMDAwMzc2LCAwLjAwMDQsIDAuMDAwMzQ2LCAwLjAwMDMwNyIsIFwKLSAgICAgICAgICAiMC4wMDAzNjYsIDAuMDAwNDQsIDAuMDAwMDc1LCAwLjAwMDIzNSwgMC4wMDAzMjIsIDAuMDAwMzM3LCAwLjAwMDMxNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogQ0xLSU5WWDE2ICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoQ0xLSU5WWDE2KSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuNjY4MDA5OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMTE4MjAxOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAxMTgxMzc7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDExODIwMTsKLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAzLjk4NDc1OwotICAgIGZ1bmN0aW9uIDogIighQSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwODQ4NCwgMC4wMTAwODMsIDAuMDE5MTY0LCAwLjAyNzExLCAwLjAzNzcwNCwgMC4wNTg4NCwgMC4wNzIwMzgiLCBcCi0gICAgICAgICAgIjAuMDE2ODc4LCAwLjAxOTI1MiwgMC4wMjkxNTIsIDAuMDM3MDk5LCAwLjA0NzU3MSwgMC4wNjg3MzksIDAuMDgxOTY3IiwgXAotICAgICAgICAgICIwLjAyMzU1LCAwLjAyNjYwOSwgMC4wNDA3NzksIDAuMDQ5NzU0LCAwLjA2MDI4NywgMC4wODEzNDcsIDAuMDk0MzQ3IiwgXAotICAgICAgICAgICIwLjAyODM0LCAwLjAzMjY1OCwgMC4wNDk5NzksIDAuMDYxMTI2LCAwLjA3MzA1LCAwLjA5NDIyOCwgMC4xMDczNjkiLCBcCi0gICAgICAgICAgIjAuMDMyMjUyLCAwLjAzNzQ2MSwgMC4wNTc0OTMsIDAuMDcwMTE1LCAwLjA4NDMyNCwgMC4xMDY3NTYsIDAuMTE5OTY5IiwgXAotICAgICAgICAgICIwLjAzNzY0NSwgMC4wNDM3MDQsIDAuMDY3MTMsIDAuMDgzMTcxLCAwLjA5OTUyLCAwLjEyNjM4MSwgMC4xMzkzODIiLCBcCi0gICAgICAgICAgIjAuMDQxMzE3LCAwLjA0Nzc3MSwgMC4wNzU3NzcsIDAuMDkyMjU2LCAwLjExMTc3LCAwLjE0MTY1LCAwLjE1NzEzNiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTA1NTIsIDAuMDEzNzI2LCAwLjAzMjIxMywgMC4wNDg1OTUsIDAuMDcwNDQzLCAwLjExNDEwNiwgMC4xNDEzOTMiLCBcCi0gICAgICAgICAgIjAuMDE3MTM1LCAwLjAxOTY0LCAwLjAzNTM3NCwgMC4wNTA0OTcsIDAuMDcxNDI2LCAwLjExNDIxMSwgMC4xNDE0NTciLCBcCi0gICAgICAgICAgIjAuMDI0OTQsIDAuMDI4ODEsIDAuMDQzNzc4LCAwLjA1NzM5NywgMC4wNzY2NDUsIDAuMTE3MzQ5LCAwLjE0MzU0NyIsIFwKLSAgICAgICAgICAiMC4wMzE2ODIsIDAuMDM1OTAyLCAwLjA1MzMxNCwgMC4wNjYyNywgMC4wODM5MDcsIDAuMTIyNzI5LCAwLjE0Nzk1MyIsIFwKLSAgICAgICAgICAiMC4wMzc4MTEsIDAuMDQyMzk2LCAwLjA2MjgzOSwgMC4wNzU5OTIsIDAuMDkyNzc2LCAwLjEyOTgwNiwgMC4xNTQxNDIiLCBcCi0gICAgICAgICAgIjAuMDQ2NTU3LCAwLjA1MjA5NywgMC4wNzYxNDcsIDAuMDkxMDY5LCAwLjEwODM1LCAwLjE0Mjg1NiwgMC4xNjUwMjYiLCBcCi0gICAgICAgICAgIjAuMDUzOTExLCAwLjA2MDEyNywgMC4wODQ2NzMsIDAuMTAzMjQ4LCAwLjEyMTgxMiwgMC4xNTU0OCwgMC4xNzc2MzkiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA4ODU5LCAwLjAxMDUxNCwgMC4wMTk5MTUsIDAuMDI4MTIsIDAuMDM5MDMzLCAwLjA2MDgzNiwgMC4wNzQ0NzgiLCBcCi0gICAgICAgICAgIjAuMDE3Njk3LCAwLjAyMDA4MiwgMC4wMzAwNzYsIDAuMDM4MjgyLCAwLjA0OTIwNywgMC4wNzA4OTgsIDAuMDg0NTYxIiwgXAotICAgICAgICAgICIwLjAyNTAwMiwgMC4wMjgzMzIsIDAuMDQyMjc5LCAwLjA1MTIxMiwgMC4wNjIwOTUsIDAuMDgzODgyLCAwLjA5NzIzNyIsIFwKLSAgICAgICAgICAiMC4wMzA1NzUsIDAuMDM0ODIzLCAwLjA1MTk1MSwgMC4wNjMwODMsIDAuMDc0OTAyLCAwLjA5Njc2MSwgMC4xMTAzNDEiLCBcCi0gICAgICAgICAgIjAuMDM1NDUzLCAwLjA0MDIzOCwgMC4wNjA4NDEsIDAuMDczMjUxLCAwLjA4NzI2MiwgMC4xMDk5NDMsIDAuMTIzNTE1IiwgXAotICAgICAgICAgICIwLjA0MTQ3MywgMC4wNDc5ODksIDAuMDcyMDc4LCAwLjA4NzI2OSwgMC4xMDM4OTEsIDAuMTMwMzUsIDAuMTQ0NDE0IiwgXAotICAgICAgICAgICIwLjA0NjI2NCwgMC4wNTMzMzcsIDAuMDgwNjQ3LCAwLjA5Nzk4NiwgMC4xMTY5MTQsIDAuMTQ2NjQ5LCAwLjE2MjE1MSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTA0MDYsIDAuMDEzNjYsIDAuMDMyNDQyLCAwLjA0OTA2LCAwLjA3MTMyMiwgMC4xMTU2OTEsIDAuMTQzMTgiLCBcCi0gICAgICAgICAgIjAuMDE2Njc2LCAwLjAxOTEyNCwgMC4wMzUyMDgsIDAuMDUwNTU4LCAwLjA3MTkxNCwgMC4xMTU2NDEsIDAuMTQzMTQiLCBcCi0gICAgICAgICAgIjAuMDI0OTU0LCAwLjAyODMyOSwgMC4wNDMxMTYsIDAuMDU3MDAxLCAwLjA3NjY5LCAwLjExODI1NiwgMC4xNDQ5NCIsIFwKLSAgICAgICAgICAiMC4wMzE5OTMsIDAuMDM1ODg5LCAwLjA1MzA3MSwgMC4wNjU1NTYsIDAuMDgzODA5LCAwLjEyMzUxOCwgMC4xNDkxNDQiLCBcCi0gICAgICAgICAgIjAuMDM3OTIyLCAwLjA0Mjc5NCwgMC4wNjE1MzIsIDAuMDc0ODEsIDAuMDkyMTk4LCAwLjEyOTc0OCwgMC4xNTQ1NiIsIFwKLSAgICAgICAgICAiMC4wNDc0NTQsIDAuMDUyNjEsIDAuMDc1ODg3LCAwLjA5MDE5MSwgMC4xMDcyMywgMC4xNDIzNDcsIDAuMTY2MTE0IiwgXAotICAgICAgICAgICIwLjA1NDg3NiwgMC4wNjA4MjUsIDAuMDg2MTE5LCAwLjEwMjY0MywgMC4xMjEwNDQsIDAuMTU0MzEyLCAwLjE3NjkzMiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxNjA5OCwgMC4wMTYyMDcsIDAuMDE2NSwgMC4wMTY1ODYsIDAuMDE2NjQsIDAuMDE2Njg4LCAwLjAxNjcwNCIsIFwKLSAgICAgICAgICAiMC4wMTU0NywgMC4wMTU1NzMsIDAuMDE1OTI1LCAwLjAxNjExNCwgMC4wMTYyNjksIDAuMDE2NDMsIDAuMDE2NDc5IiwgXAotICAgICAgICAgICIwLjAxNTU1MiwgMC4wMTU2OTYsIDAuMDE1Nzk3LCAwLjAxNTkyNCwgMC4wMTYwNzEsIDAuMDE2MjQzLCAwLjAxNjMyNiIsIFwKLSAgICAgICAgICAiMC4wMTYwOTEsIDAuMDE2MDM3LCAwLjAxNTkxNywgMC4wMTU5OTUsIDAuMDE2MDU2LCAwLjAxNjE5NiwgMC4wMTYyNzUiLCBcCi0gICAgICAgICAgIjAuMDE2MTc0LCAwLjAxNjE0OSwgMC4wMTYxMjUsIDAuMDE2MDY2LCAwLjAxNjA4LCAwLjAxNjE4NiwgMC4wMTYyMjgiLCBcCi0gICAgICAgICAgIjAuMDE2OTIzLCAwLjAxNjczMSwgMC4wMTY2MjYsIDAuMDE2NDIyLCAwLjAxNjMyMiwgMC4wMTYyOTEsIDAuMDE2MjUzIiwgXAotICAgICAgICAgICIwLjAxNzYwNSwgMC4wMTcyNiwgMC4wMTY2OTIsIDAuMDE2ODA3LCAwLjAxNjYxNCwgMC4wMTY0NzEsIDAuMDE2NDM4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwNzI0LCAwLjAwMDU4NCwgMC4wMDAyMDgsIDAuMDAwMDk2LCAwLjAwMDAyMywgMC4wMDAwNDEsIDAuMDAwMDYyIiwgXAotICAgICAgICAgICIwLjAwMTUyNSwgMC4wMDE0MjUsIDAuMDAwOTYzLCAwLjAwMDcyLCAwLjAwMDUyMSwgMC4wMDAzMjUsIDAuMDAwMjM4IiwgXAotICAgICAgICAgICIwLjAwMTM3NSwgMC4wMDEzNzMsIDAuMDAxMTkzLCAwLjAwMTAxMiwgMC4wMDA4MiwgMC4wMDA1NzMsIDAuMDAwNDg3IiwgXAotICAgICAgICAgICIwLjAwMTE3MiwgMC4wMDEyMTUsIDAuMDAxLCAwLjAwMDk1OCwgMC4wMDA4NSwgMC4wMDA2NTUsIDAuMDAwNTYxIiwgXAotICAgICAgICAgICIwLjAwMDg0LCAwLjAwMDczMSwgMC4wMDA5MDcsIDAuMDAwOTE2LCAwLjAwMDg5NywgMC4wMDA3MzQsIDAuMDAwNjQ3IiwgXAotICAgICAgICAgICIwLjAwMDA0NiwgMC4wMDAyMTksIDAuMDAwMjM3LCAwLjAwMDUxMiwgMC4wMDA2LCAwLjAwMDYwMywgMC4wMDA1NjgiLCBcCi0gICAgICAgICAgIjAuMDAwNjcsIDAuMDAwNDExLCAwLjAwMDAzMywgMC4wMDAyNDQsIDAuMDAwNDExLCAwLjAwMDUyNywgMC4wMDA1MjgiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogQ0xLSU5WWDIgKgotICogLS0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKENMS0lOVlgyKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMDc0ODA5MjsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNjQwOTQ7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNjM5OTY7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNjQwOTQ7Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC41Mjc5Nzc7Ci0gICAgZnVuY3Rpb24gOiAiKCFBKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDI2MTU1LCAwLjEyNzEzNCwgMC4yMDc5ODksIDAuMzA4NzExLCAwLjQwOTk0OSwgMC41MTA2NzQsIDAuNjExMzg4IiwgXAotICAgICAgICAgICIwLjAzNjA4MiwgMC4xMzcxMDUsIDAuMjE3OTA1LCAwLjMxODksIDAuNDE5NzI3LCAwLjUyMDg4MSwgMC42MjE1NzQiLCBcCi0gICAgICAgICAgIjAuMDQ4NjI2LCAwLjE0OTQ1OCwgMC4yMzAyMTQsIDAuMzMxMTYyLCAwLjQzMTA5MSwgMC41MzIwMzIsIDAuNjMzMDM3IiwgXAotICAgICAgICAgICIwLjA1OTk1NCwgMC4xNjIyNDQsIDAuMjQzMDE5LCAwLjM0Mzg3NSwgMC40NDUwNTMsIDAuNTQ1NzA5LCAwLjY0NjU3MiIsIFwKLSAgICAgICAgICAiMC4wNjg2MzQsIDAuMTc0MzcsIDAuMjU1MzQ0LCAwLjM1NjMxMywgMC40NTcwMjEsIDAuNTU2NzI0LCAwLjY1NzY5MSIsIFwKLSAgICAgICAgICAiMC4wODEzNTUsIDAuMTk1MDQ0LCAwLjI3NTA0OCwgMC4zNzYyODksIDAuNDc3MzI3LCAwLjU3NzkzOCwgMC42Nzg2NjMiLCBcCi0gICAgICAgICAgIjAuMDkwNzkxLCAwLjIxMjkyLCAwLjI5MjY0MSwgMC4zOTM1MTksIDAuNDk0ODQsIDAuNTk1NjQ1LCAwLjY5NjQiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQ2NTU1LCAwLjI1NDUxOCwgMC40MjEwNTYsIDAuNjI4NzMyLCAwLjgzNzE3NCwgMS4wNDQ4MSwgMS4yNTQ3IiwgXAotICAgICAgICAgICIwLjA0ODUzLCAwLjI1NDQ2NCwgMC40MjA4MTMsIDAuNjI4NzQ2LCAwLjgzNjg1MSwgMS4wNDUyMywgMS4yNTI3OSIsIFwKLSAgICAgICAgICAiMC4wNTU2NzMsIDAuMjU0NjI0LCAwLjQyMTA0MSwgMC42Mjg4NzcsIDAuODM2NjY5LCAxLjA0NDQ4LCAxLjI1MzY3IiwgXAotICAgICAgICAgICIwLjA2NDI3MiwgMC4yNTYyNDcsIDAuNDIwOTAzLCAwLjYyODczLCAwLjgzNjc1OCwgMS4wNDQ0NCwgMS4yNTI0OSIsIFwKLSAgICAgICAgICAiMC4wNzQ0ODEsIDAuMjU5OTUxLCAwLjQyMjM4NSwgMC42Mjg4NTEsIDAuODM2ODE4LCAxLjA0NDI5LCAxLjI1MzQyIiwgXAotICAgICAgICAgICIwLjA4OTIyOCwgMC4yNjc3MzEsIDAuNDI2NTQsIDAuNjMwNjQsIDAuODM2OCwgMS4wNDQ4MSwgMS4yNTQ1IiwgXAotICAgICAgICAgICIwLjEwMTA4NiwgMC4yNzYzNDgsIDAuNDMyMzYyLCAwLjYzMTg5LCAwLjgzNzIzMywgMS4wNDU0LCAxLjI1Mjc5Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyNjkxLCAwLjEzMDQyNCwgMC4yMTMxNTksIDAuMzE2Njk1LCAwLjQxOTk4NSwgMC41MjM4MDIsIDAuNjI3MDMyIiwgXAotICAgICAgICAgICIwLjAzNzA5MSwgMC4xNDA1MzIsIDAuMjIzMjgsIDAuMzI2NzA1LCAwLjQzMDEwMywgMC41MzM2MDQsIDAuNjM2OTc3IiwgXAotICAgICAgICAgICIwLjA0OTkxOCwgMC4xNTMxOTQsIDAuMjM2MDE3LCAwLjMzODc2NCwgMC40NDIxMDYsIDAuNTQ1NDc0LCAwLjY0ODg4OSIsIFwKLSAgICAgICAgICAiMC4wNjE4MjQsIDAuMTY1ODM4LCAwLjI0ODc5NywgMC4zNTIxNDEsIDAuNDU1NDkxLCAwLjU1ODk4MywgMC42NjEwMTUiLCBcCi0gICAgICAgICAgIjAuMDcxODIxLCAwLjE3OTM2MiwgMC4yNjE1MDgsIDAuMzY0OTQyLCAwLjQ2ODY4OSwgMC41NzIwNTEsIDAuNjc1NDk3IiwgXAotICAgICAgICAgICIwLjA4NTM3NywgMC4xOTk5NDQsIDAuMjgxODY3LCAwLjM4NTc5NiwgMC40ODkxMDIsIDAuNTkyMzM5LCAwLjY5NTc1IiwgXAotICAgICAgICAgICIwLjA5NTc2OCwgMC4yMTgzMSwgMC4yOTk4NTIsIDAuNDAzMjQyLCAwLjUwNjIyOCwgMC42MTA1NzIsIDAuNzEzODM3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0NjY0MywgMC4yNTYwODYsIDAuNDIzODg5LCAwLjYzMjkwMSwgMC44NDE5MjcsIDEuMDUyNTEsIDEuMjYxMSIsIFwKLSAgICAgICAgICAiMC4wNDg0NDMsIDAuMjU2MjE1LCAwLjQyNDU5LCAwLjYzMzMwMSwgMC44NDM3NzMsIDEuMDUxMDksIDEuMjYxNjUiLCBcCi0gICAgICAgICAgIjAuMDU0ODUzLCAwLjI1NjE4MSwgMC40MjQ1OTcsIDAuNjM0MDcyLCAwLjg0MzA0MiwgMS4wNTE0OCwgMS4yNjIwNSIsIFwKLSAgICAgICAgICAiMC4wNjM0NywgMC4yNTczNDcsIDAuNDIzNjY5LCAwLjYzMzcyNCwgMC44NDE5MzEsIDEuMDUxOTksIDEuMjYzOTgiLCBcCi0gICAgICAgICAgIjAuMDczMTU0LCAwLjI2MDYxMiwgMC40MjUwNTgsIDAuNjMyODMzLCAwLjg0MjgwNSwgMS4wNTE2MywgMS4yNjI0NCIsIFwKLSAgICAgICAgICAiMC4wODgzMDUsIDAuMjY4NDQ0LCAwLjQyODc3NSwgMC42MzMwNjQsIDAuODQyNTE2LCAxLjA1MzgsIDEuMjYxNjIiLCBcCi0gICAgICAgICAgIjAuMTAwODE5LCAwLjI3NjM3OSwgMC40MzQxNTQsIDAuNjM1NzUzLCAwLjg0NDYyMiwgMS4wNTE4NiwgMS4yNjI2NiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjE2MSwgMC4wMDIxNzksIDAuMDAyMTgxLCAwLjAwMjE4MSwgMC4wMDIxODIsIDAuMDAyMTgyLCAwLjAwMjE4MiIsIFwKLSAgICAgICAgICAiMC4wMDIxLCAwLjAwMjE2MiwgMC4wMDIxNywgMC4wMDIxNzQsIDAuMDAyMTc3LCAwLjAwMjE3OCwgMC4wMDIxNzkiLCBcCi0gICAgICAgICAgIjAuMDAyMDgsIDAuMDAyMTQ2LCAwLjAwMjE2MiwgMC4wMDIxNjgsIDAuMDAyMTcxLCAwLjAwMjE3MywgMC4wMDIxNzIiLCBcCi0gICAgICAgICAgIjAuMDAyMDc3LCAwLjAwMjEzOSwgMC4wMDIxNTQsIDAuMDAyMTYzLCAwLjAwMjE2OCwgMC4wMDIxNzEsIDAuMDAyMTczIiwgXAotICAgICAgICAgICIwLjAwMjA5NywgMC4wMDIxMzMsIDAuMDAyMTUsIDAuMDAyMTYsIDAuMDAyMTY1LCAwLjAwMjE2OCwgMC4wMDIxNjkiLCBcCi0gICAgICAgICAgIjAuMDAyMTUsIDAuMDAyMTM4LCAwLjAwMjE0NSwgMC4wMDIxNiwgMC4wMDIxNjMsIDAuMDAyMTY3LCAwLjAwMjE3IiwgXAotICAgICAgICAgICIwLjAwMjIwMSwgMC4wMDIxNDgsIDAuMDAyMTUsIDAuMDAyMTU4LCAwLjAwMjE2NSwgMC4wMDIxNjcsIDAuMDAyMTY5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwMDI0LCAwLjAwMDAwMiwgMC4wMDAwMDQsIDAuMDAwMDA1LCAwLjAwMDAwNiwgMC4wMDAwMDcsIDAuMDAwMDA3IiwgXAotICAgICAgICAgICIwLjAwMDEwMSwgMC4wMDAwMiwgMC4wMDAwMDksIDAuMDAwMDA0LCAwLjAwMDAwMSwgMC4wMDAwMDEsIDAuMDAwMDAyIiwgXAotICAgICAgICAgICIwLjAwMDEzNSwgMC4wMDAwMzksIDAuMDAwMDIyLCAwLjAwMDAxMywgMC4wMDAwMDgsIDAuMDAwMDA1LCAwLjAwMDAwMyIsIFwKLSAgICAgICAgICAiMC4wMDAxMjEsIDAuMDAwMDQ3LCAwLjAwMDAyOCwgMC4wMDAwMTgsIDAuMDAwMDEyLCAwLjAwMDAwOCwgMC4wMDAwMDYiLCBcCi0gICAgICAgICAgIjAuMDAwMTIzLCAwLjAwMDA2MiwgMC4wMDAwNDIsIDAuMDAwMDI3LCAwLjAwMDAxOSwgMC4wMDAwMTQsIDAuMDAwMDEiLCBcCi0gICAgICAgICAgIjAuMDAwMDYxLCAwLjAwMDA1OSwgMC4wMDAwNDQsIDAuMDAwMDI4LCAwLjAwMDAyMSwgMC4wMDAwMTYsIDAuMDAwMDEzIiwgXAotICAgICAgICAgICIwLjAwMDAwNCwgMC4wMDAwNTEsIDAuMDAwMDQzLCAwLjAwMDAzMSwgMC4wMDAwMjIsIDAuMDAwMDE3LCAwLjAwMDAxNCIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogQ0xLSU5WWDIwICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoQ0xLSU5WWDIwKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuODIzNTA0OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMTUwNzQ0OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAxNTA2ODE7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDE1MDc0NDsKLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiA0Ljk2ODU0OwotICAgIGZ1bmN0aW9uIDogIighQSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwODE2NywgMC4wMTg5MSwgMC4wMjc0MTcsIDAuMDM4MDQ1LCAwLjA0ODYxMywgMC4wNTkyNDYsIDAuMDY5ODA4IiwgXAotICAgICAgICAgICIwLjAxNjM2NSwgMC4wMjg5MDQsIDAuMDM3NDIsIDAuMDQ4MDY1LCAwLjA1ODY3OSwgMC4wNjkyOTUsIDAuMDc5OTI2IiwgXAotICAgICAgICAgICIwLjAyMjYyOSwgMC4wNDA1MzUsIDAuMDQ5OTYxLCAwLjA2MDY3OCwgMC4wNzEyNTgsIDAuMDgxODE1LCAwLjA5MjE5OCIsIFwKLSAgICAgICAgICAiMC4wMjczOTEsIDAuMDQ5MjUxLCAwLjA2MTM0OCwgMC4wNzMyOSwgMC4wODM5LCAwLjA5NDQ5NywgMC4xMDUwMzMiLCBcCi0gICAgICAgICAgIjAuMDMxMTUsIDAuMDU3MjMxLCAwLjA3MDQ1NCwgMC4wODQ2NSwgMC4wOTY0NzYsIDAuMTA3MDc0LCAwLjExNzY4NSIsIFwKLSAgICAgICAgICAiMC4wMzYxMDEsIDAuMDY3NDg3LCAwLjA4MzU5LCAwLjEwMDYwNywgMC4xMTQ4MTgsIDAuMTI3MDgzLCAwLjEzODQ5NyIsIFwKLSAgICAgICAgICAiMC4wMzk3MzQsIDAuMDc1MzExLCAwLjA5MzA0NCwgMC4xMTE4MzYsIDAuMTI4MTYzLCAwLjE0MjI0LCAwLjE1NDgwNSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDk4NiwgMC4wMzE1NzcsIDAuMDQ5MTY3LCAwLjA3MTAyLCAwLjA5MzAyMywgMC4xMTQ3NzMsIDAuMTM2NjI3IiwgXAotICAgICAgICAgICIwLjAxNjU0MSwgMC4wMzQ3MzgsIDAuMDUwOTQxLCAwLjA3MTkyMiwgMC4wOTMzMjcsIDAuMTE0ODc2LCAwLjEzNjY3NSIsIFwKLSAgICAgICAgICAiMC4wMjQ0NDEsIDAuMDQzMTUsIDAuMDU3NTIyLCAwLjA3NzAzOCwgMC4wOTcxNTIsIDAuMTE3Nzg3LCAwLjEzODc4NSIsIFwKLSAgICAgICAgICAiMC4wMzA3MzksIDAuMDUyOTY1LCAwLjA2NjQ0NSwgMC4wODQ2MzIsIDAuMTAzNjQ4LCAwLjEyMzQzMSwgMC4xNDM2NzMiLCBcCi0gICAgICAgICAgIjAuMDM2NjUsIDAuMDYxNDIzLCAwLjA3NjU2LCAwLjA5MzQzLCAwLjExMTU0OCwgMC4xMzA0OTcsIDAuMTUwMDU2IiwgXAotICAgICAgICAgICIwLjA0NTQwMSwgMC4wNzQyODQsIDAuMDkwNzQsIDAuMTA4MDg4LCAwLjEyNTI0NywgMC4xNDMxMTksIDAuMTYxNzY2IiwgXAotICAgICAgICAgICIwLjA1MjAxNCwgMC4wODM3MjEsIDAuMTAzNDA3LCAwLjEyMjM3OSwgMC4xMzkxNDYsIDAuMTU1OTE5LCAwLjE3MzUzMSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDg1MjEsIDAuMDE5NjE3LCAwLjAyODM0NiwgMC4wMzkyOTEsIDAuMDUwMjM1LCAwLjA2MTE2NCwgMC4wNzIxMjIiLCBcCi0gICAgICAgICAgIjAuMDE3MjA1LCAwLjAyOTgzLCAwLjAzODYzNCwgMC4wNDk2MTUsIDAuMDYwNTg0LCAwLjA3MTQwNCwgMC4wODI0NjUiLCBcCi0gICAgICAgICAgIjAuMDI0MzY3LCAwLjA0MjA1NCwgMC4wNTE2NjEsIDAuMDYyNTE4LCAwLjA3MzQ0NCwgMC4wODQzNjIsIDAuMDk1MDE0IiwgXAotICAgICAgICAgICIwLjAyOTY4OSwgMC4wNTE4ODQsIDAuMDYzNjMsIDAuMDc1NjUxLCAwLjA4NjUwNiwgMC4wOTczNTksIDAuMTA4Mjg1IiwgXAotICAgICAgICAgICIwLjAzNDIxNywgMC4wNjAwMTksIDAuMDczODMzLCAwLjA4Nzc2MiwgMC4wOTk1NjIsIDAuMTEwNDA4LCAwLjEyMTI5NSIsIFwKLSAgICAgICAgICAiMC4wNDAzNjMsIDAuMDcxNTI4LCAwLjA4ODM3LCAwLjEwNDQsIDAuMTE4NTYzLCAwLjEzMDg3OCwgMC4xNDIyMDEiLCBcCi0gICAgICAgICAgIjAuMDQ0OTY1LCAwLjA4MDM2NSwgMC4wOTg4NTUsIDAuMTE3ODU1LCAwLjEzMzM5MywgMC4xNDc0MzMsIDAuMTU5OTM4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwOTY1MywgMC4wMzE1OTUsIDAuMDQ5MTcyLCAwLjA3MTE4NSwgMC4wOTMyNTcsIDAuMTE1NTEsIDAuMTM3MjM3IiwgXAotICAgICAgICAgICIwLjAxNjAwOCwgMC4wMzQzMzEsIDAuMDUwNjczLCAwLjA3MTk0MSwgMC4wOTMzNjcsIDAuMTE1NTQ4LCAwLjEzNzUxNSIsIFwKLSAgICAgICAgICAiMC4wMjM5OTYsIDAuMDQyMjYyLCAwLjA1NzAyLCAwLjA3NjYzNCwgMC4wOTcxNDUsIDAuMTE4MDE0LCAwLjEzODkxOSIsIFwKLSAgICAgICAgICAiMC4wMzEwODcsIDAuMDUyMDMsIDAuMDY1MzAxLCAwLjA4MzY3MSwgMC4xMDMwMDQsIDAuMTIyODY5LCAwLjE0MzQ5OCIsIFwKLSAgICAgICAgICAiMC4wMzcxMzYsIDAuMDYxMjExLCAwLjA3NDkxMSwgMC4wOTE5NjIsIDAuMTEwNDUxLCAwLjEyOTY1MiwgMC4xNDkxOCIsIFwKLSAgICAgICAgICAiMC4wNDY2MjQsIDAuMDc0MjM5LCAwLjA4OTQ3MSwgMC4xMDc1MDcsIDAuMTI0MjE3LCAwLjE0MjEyMSwgMC4xNjA5MzkiLCBcCi0gICAgICAgICAgIjAuMDUzMTExLCAwLjA4NDk5MSwgMC4xMDI1OTksIDAuMTIwNjIxLCAwLjEzNzE4MiwgMC4xNTM3NTcsIDAuMTcxNzIyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDIxMjI0LCAwLjAyMTc5MSwgMC4wMjE5MDgsIDAuMDIxOTczLCAwLjAyMjAxMiwgMC4wMjIwMzYsIDAuMDIyMDUiLCBcCi0gICAgICAgICAgIjAuMDIwNTI1LCAwLjAyMTA2NywgMC4wMjEzMzIsIDAuMDIxNTIsIDAuMDIxNjM3LCAwLjAyMTcyNywgMC4wMjE3NzQiLCBcCi0gICAgICAgICAgIjAuMDIwNjIyLCAwLjAyMDgyNiwgMC4wMjA5NzEsIDAuMDIxMTk1LCAwLjAyMTMzNSwgMC4wMjE0NDEsIDAuMDIxNTAzIiwgXAotICAgICAgICAgICIwLjAyMDkxMiwgMC4wMjA5NDQsIDAuMDIxMDI0LCAwLjAyMTEzOCwgMC4wMjEyNDQsIDAuMDIxMzMyLCAwLjAyMTQxNSIsIFwKLSAgICAgICAgICAiMC4wMjEzNDUsIDAuMDIxMDQzLCAwLjAyMTI3NywgMC4wMjEyNzMsIDAuMDIxMzI1LCAwLjAyMTM4MSwgMC4wMjE0MzUiLCBcCi0gICAgICAgICAgIjAuMDIyNzU3LCAwLjAyMTk4NSwgMC4wMjE3MTcsIDAuMDIxNjE2LCAwLjAyMTU1NiwgMC4wMjE1NjQsIDAuMDIxNTYiLCBcCi0gICAgICAgICAgIjAuMDIzMDg5LCAwLjAyMjE0NywgMC4wMjIwMTEsIDAuMDIxODIzLCAwLjAyMTY2NCwgMC4wMjE2NiwgMC4wMjE2MjYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDA5MzcsIDAuMDAwMjM4LCAwLjAwMDA5NCwgMCwgMC4wMDAwNTIsIDAuMDAwMDg0LCAwLjAwMDEwNiIsIFwKLSAgICAgICAgICAiMC4wMDE4OTIsIDAuMDAxMTY5LCAwLjAwMDgzOSwgMC4wMDA1OTEsIDAuMDAwNDM2LCAwLjAwMDMyOCwgMC4wMDAyNTMiLCBcCi0gICAgICAgICAgIjAuMDAxNzg0LCAwLjAwMTUyLCAwLjAwMTI3MSwgMC4wMDEwMjIsIDAuMDAwODM3LCAwLjAwMDcwMiwgMC4wMDA2MiIsIFwKLSAgICAgICAgICAiMC4wMDEyODgsIDAuMDAxNDMsIDAuMDAxMzIsIDAuMDAxMTQ2LCAwLjAwMTAwMSwgMC4wMDA4NywgMC4wMDA3NjUiLCBcCi0gICAgICAgICAgIjAuMDAwOTkzLCAwLjAwMTA4OSwgMC4wMDExMjksIDAuMDAxMDcxLCAwLjAwMDk3OSwgMC4wMDA4OSwgMC4wMDA4MDciLCBcCi0gICAgICAgICAgIjAuMDAwMDQ1LCAwLjAwMDc4NiwgMC4wMDA4NTIsIDAuMDAwNTUzLCAwLjAwMDYxMywgMC4wMDA2MTUsIDAuMDAwNTk1IiwgXAotICAgICAgICAgICIwLjAwMDY5MSwgMC4wMDAwMTYsIDAuMDAwMzM0LCAwLjAwMDU0MywgMC4wMDA2MjcsIDAuMDAwNjU4LCAwLjAwMDY1OSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBDTEtJTlZYMyAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoQ0xLSU5WWDMpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4xMTIyMTk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMjMyNTkzOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMjMyNDg4OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMjMyNTkzOwotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuNzc4OTU3OwotICAgIGZ1bmN0aW9uIDogIighQSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE5ODYzLCAwLjExNjQ1OSwgMC4yMTI5ODIsIDAuMjgyMTM0LCAwLjM5MjA5NCwgMC40ODkwODUsIDAuNjI2NjcyIiwgXAotICAgICAgICAgICIwLjAyOTgxMSwgMC4xMjYzMjksIDAuMjIyOTg0LCAwLjI5MTg1OCwgMC40MDIxMjcsIDAuNDk5MDUyLCAwLjYzNjU3OCIsIFwKLSAgICAgICAgICAiMC4wNDE2NjcsIDAuMTM4ODI3LCAwLjIzNTM1MiwgMC4zMDQzMTcsIDAuNDE0Nzc0LCAwLjUxMTA4NCwgMC42NDkzNzgiLCBcCi0gICAgICAgICAgIjAuMDUwNjY3LCAwLjE1MTIxNywgMC4yNDc5MTUsIDAuMzE2Nzc1LCAwLjQyNjIwMSwgMC41MjI1ODgsIDAuNjYwMjQ5IiwgXAotICAgICAgICAgICIwLjA1ODg1NywgMC4xNjM2MDQsIDAuMjYwMTU1LCAwLjMyOTEzNiwgMC40Mzk0NjksIDAuNTM1ODE0LCAwLjY3MjAyMiIsIFwKLSAgICAgICAgICAiMC4wNjkzNjUsIDAuMTg0NTE3LCAwLjI4MDk0MSwgMC4zNDk4MzYsIDAuNDYwMjUzLCAwLjU1NjU4NCwgMC42OTQ1MTQiLCBcCi0gICAgICAgICAgIjAuMDc3MzYzLCAwLjIwMjA4NCwgMC4yOTc2MzMsIDAuMzY2NDk4LCAwLjQ3NjkzOSwgMC41NzM2NDEsIDAuNzExMDk3Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDMzNTk4LCAwLjIzMjQ1OCwgMC40MzEzMTcsIDAuNTczNTgsIDAuODAxNzI3LCAwLjk5OTg2MSwgMS4yODM1NSIsIFwKLSAgICAgICAgICAiMC4wMzY2OTEsIDAuMjMyNzY1LCAwLjQzMTI3OSwgMC41NzM3MjQsIDAuODAxMjIzLCAwLjk5OTg3LCAxLjI4MzU3IiwgXAotICAgICAgICAgICIwLjA0NDc1NSwgMC4yMzI2NjEsIDAuNDMxOTE3LCAwLjU3MzA5NywgMC44MDExNzQsIDAuOTk5MTUsIDEuMjgzMzYiLCBcCi0gICAgICAgICAgIjAuMDU0NjY5LCAwLjIzNTIwNiwgMC40MzEyOSwgMC41NzM2NjksIDAuODAwNTg1LCAwLjk5OTI2OCwgMS4yODU4MiIsIFwKLSAgICAgICAgICAiMC4wNjMyNDIsIDAuMjM4OTQsIDAuNDMxOTM0LCAwLjU3MzM1LCAwLjgwMDYzNCwgMC45OTkxMywgMS4yODU5NyIsIFwKLSAgICAgICAgICAiMC4wNzY0NTEsIDAuMjQ3NjIyLCAwLjQzNTU2OCwgMC41NzU2MTQsIDAuODAwNTc1LCAwLjk5OTIxMSwgMS4yODQ0OSIsIFwKLSAgICAgICAgICAiMC4wODY4MTcsIDAuMjU2NzgxLCAwLjQ0MTUxNywgMC41NzgzMjQsIDAuODAxMjg0LCAwLjk5OTQzOSwgMS4yODMyNyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyMDQzNiwgMC4xMTg2NjIsIDAuMjE2ODQ5LCAwLjI4NjgzMywgMC4zOTkxOTgsIDAuNDk3MTQxLCAwLjYzNzUzIiwgXAotICAgICAgICAgICIwLjAzMDUzNSwgMC4xMjg3NjksIDAuMjI2OTE4LCAwLjI5NzAxLCAwLjQwOTE0NCwgMC41MDcxOTgsIDAuNjQ3MzYzIiwgXAotICAgICAgICAgICIwLjA0MjkzMSwgMC4xNDE0NywgMC4yMzk1OTcsIDAuMzA5NzE2LCAwLjQyMTgxNywgMC41MTk5MTYsIDAuNjYwMjUyIiwgXAotICAgICAgICAgICIwLjA1MjkyNSwgMC4xNTQxODYsIDAuMjUyMzI0LCAwLjMyMjUzNywgMC40MzM3LCAwLjUzMTc5MiwgMC42NzE5NjUiLCBcCi0gICAgICAgICAgIjAuMDYxMTY5LCAwLjE2Njg4LCAwLjI2NDk5OCwgMC4zMzUzMTIsIDAuNDQ3MzU0LCAwLjU0NTMxNywgMC42ODQyNTciLCBcCi0gICAgICAgICAgIjAuMDczMDg1LCAwLjE4ODU2NiwgMC4yODUxNywgMC4zNTUyMzksIDAuNDY3NjYsIDAuNTY1ODAyLCAwLjcwNTY4NSIsIFwKLSAgICAgICAgICAiMC4wODE3NDcsIDAuMjA2NjczLCAwLjMwNDQ4NywgMC4zNzM1MDEsIDAuNDg1NjMsIDAuNTgzNzAyLCAwLjcyNDIwMiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzMzMwNiwgMC4yMzE3NDQsIDAuNDMwMjE1LCAwLjU3MTY5NSwgMC43OTg3ODMsIDAuOTk2NjM0LCAxLjI3OTM1IiwgXAotICAgICAgICAgICIwLjAzNjAzNCwgMC4yMzE2OTUsIDAuNDI5OTUyLCAwLjU3MTY5LCAwLjc5ODQ5NSwgMC45OTg3NjksIDEuMjc5NCIsIFwKLSAgICAgICAgICAiMC4wNDM3NSwgMC4yMzE4MjIsIDAuNDMwOTA2LCAwLjU3MTM3MiwgMC43OTk4MDgsIDAuOTk4Mjk4LCAxLjI3OTU2IiwgXAotICAgICAgICAgICIwLjA1MzUwOSwgMC4yMzM1NjMsIDAuNDI5NzcyLCAwLjU3MTQxMSwgMC43OTk5MTcsIDAuOTk3MTk0LCAxLjI4MDcyIiwgXAotICAgICAgICAgICIwLjA2Mjk4OCwgMC4yMzc4ODMsIDAuNDMwMTc0LCAwLjU3MjYwOSwgMC43OTg2OTksIDAuOTk4NjcyLCAxLjI4MDA5IiwgXAotICAgICAgICAgICIwLjA3NjIyMywgMC4yNDU1ODgsIDAuNDM0NjQ3LCAwLjU3MzkwMSwgMC43OTk2MzcsIDAuOTk2Mzc5LCAxLjI4MjIiLCBcCi0gICAgICAgICAgIjAuMDg3NzA4LCAwLjI1NDEwMSwgMC40MzkwMzUsIDAuNTc2ODY5LCAwLjc5ODIzNSwgMC45OTg0NDIsIDEuMjc5MSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzMjY5LCAwLjAwMzMxMywgMC4wMDMzMTcsIDAuMDAzMzE5LCAwLjAwMzMxOSwgMC4wMDMzMTksIDAuMDAzMzIiLCBcCi0gICAgICAgICAgIjAuMDAzMTcxLCAwLjAwMzI4NywgMC4wMDMzMDMsIDAuMDAzMzA1LCAwLjAwMzMxMSwgMC4wMDMzMTMsIDAuMDAzMzE1IiwgXAotICAgICAgICAgICIwLjAwMzEzMywgMC4wMDMyNTgsIDAuMDAzMjg2LCAwLjAwMzI5NCwgMC4wMDMzMDIsIDAuMDAzMzA1LCAwLjAwMzMwOSIsIFwKLSAgICAgICAgICAiMC4wMDMxNSwgMC4wMDMyNDUsIDAuMDAzMjc2LCAwLjAwMzI4NiwgMC4wMDMyOTQsIDAuMDAzMjk5LCAwLjAwMzMwNCIsIFwKLSAgICAgICAgICAiMC4wMDMxNjgsIDAuMDAzMjM5LCAwLjAwMzI3MiwgMC4wMDMyODUsIDAuMDAzMjkzLCAwLjAwMzI5OCwgMC4wMDMzMDMiLCBcCi0gICAgICAgICAgIjAuMDAzMjc3LCAwLjAwMzIzOCwgMC4wMDMyNjYsIDAuMDAzMjc0LCAwLjAwMzI4OCwgMC4wMDMyOTQsIDAuMDAzMyIsIFwKLSAgICAgICAgICAiMC4wMDMzMjIsIDAuMDAzMjYzLCAwLjAwMzI3MiwgMC4wMDMyNzksIDAuMDAzMjg4LCAwLjAwMzI5MywgMC4wMDMyOTkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDAzNywgMC4wMDAwMTcsIDAuMDAwMDIyLCAwLjAwMDAyMywgMC4wMDAwMjUsIDAuMDAwMDI1LCAwLjAwMDAyNiIsIFwKLSAgICAgICAgICAiMC4wMDAxNywgMC4wMDAwMTgsIDAuMDAwMDAyLCAwLjAwMDAwOCwgMC4wMDAwMTQsIDAuMDAwMDE3LCAwLjAwMDAxOSIsIFwKLSAgICAgICAgICAiMC4wMDAyMjQsIDAuMDAwMDU0LCAwLjAwMDAxOSwgMC4wMDAwMDgsIDAuMDAwMDAyLCAwLjAwMDAwNywgMC4wMDAwMTEiLCBcCi0gICAgICAgICAgIjAuMDAwMjA3LCAwLjAwMDA3NywgMC4wMDAwMzYsIDAuMDAwMDIxLCAwLjAwMDAwOSwgMC4wMDAwMDIsIDAuMDAwMDA1IiwgXAotICAgICAgICAgICIwLjAwMDE0OSwgMC4wMDAwODYsIDAuMDAwMDQzLCAwLjAwMDAyNywgMC4wMDAwMTQsIDAuMDAwMDA2LCAwLjAwMDAwMSIsIFwKLSAgICAgICAgICAiMC4wMDAwMTksIDAuMDAwMDY5LCAwLjAwMDAzNiwgMC4wMDAwMjQsIDAuMDAwMDExLCAwLjAwMDAwNSwgMC4wMDAwMDIiLCBcCi0gICAgICAgICAgIjAuMDAwMDI0LCAwLjAwMDA4LCAwLjAwMDA1NCwgMC4wMDAwNDMsIDAuMDAwMDI4LCAwLjAwMDAxOSwgMC4wMDAwMDkiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogQ0xLSU5WWDQgKgotICogLS0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKENMS0lOVlg0KSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMTQ5NjE4OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDMwMzk1MzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDMwMzgzNDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDMwMzk1MzsKLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAxLjAzMjA5OwotICAgIGZ1bmN0aW9uIDogIighQSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE2MjIxLCAwLjA4ODI4NiwgMC4xNjAyOTMsIDAuMjExNzE4LCAwLjI5NDA3LCAwLjM2NTg3NywgMC40Njg3NTkiLCBcCi0gICAgICAgICAgIjAuMDI2MTcxLCAwLjA5ODE3NywgMC4xNzAxMjIsIDAuMjIxNjk2LCAwLjMwMzg3MiwgMC4zNzU4MzMsIDAuNDc4NjciLCBcCi0gICAgICAgICAgIjAuMDM2NzcxLCAwLjExMDUwOSwgMC4xODI2MDEsIDAuMjMzOSwgMC4zMTU0ODIsIDAuMzg3Mzk3LCAwLjQ5MDM5MiIsIFwKLSAgICAgICAgICAiMC4wNDUwMDksIDAuMTIzNDc3LCAwLjE5NTQ5LCAwLjI0Njg1NywgMC4zMjkyNCwgMC40MDEwMjQsIDAuNTA0MTE4IiwgXAotICAgICAgICAgICIwLjA1MTUzMywgMC4xMzU5ODEsIDAuMjA3NDE3LCAwLjI1OTA3OSwgMC4zNDEyNTYsIDAuNDEzMTIxLCAwLjUxNjE1OCIsIFwKLSAgICAgICAgICAiMC4wNjEyMDQsIDAuMTU2Mzc2LCAwLjIyNzQxMiwgMC4yNzg3NjQsIDAuMzYxMzM4LCAwLjQzMzE5LCAwLjUzNTkyNiIsIFwKLSAgICAgICAgICAiMC4wNjc3MjIsIDAuMTc0MDg1LCAwLjI0NTc2NiwgMC4yOTYzMzcsIDAuMzc4NTE1LCAwLjQ1MDg3MSwgMC41NTM0NzkiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjYyMTcsIDAuMTc0ODYzLCAwLjMyMzQ4NiwgMC40Mjk2NDcsIDAuNTk5NzM3LCAwLjc0ODEzNSwgMC45NjA1MTYiLCBcCi0gICAgICAgICAgIjAuMDMwMDYzLCAwLjE3NDk0MiwgMC4zMjM5MzUsIDAuNDI5NTcsIDAuNTk5OTQ5LCAwLjc0ODE0MiwgMC45NjEyMDQiLCBcCi0gICAgICAgICAgIjAuMDM5MTQyLCAwLjE3NjEzMSwgMC4zMjM0OTQsIDAuNDMwMjI3LCAwLjYwMDIzMSwgMC43NDg1OTMsIDAuOTYwMzkyIiwgXAotICAgICAgICAgICIwLjA0ODE4OCwgMC4xNzk2MzEsIDAuMzIzODkzLCAwLjQzMDE2MSwgMC41OTk1NCwgMC43NDc4MzEsIDAuOTYwMzAxIiwgXAotICAgICAgICAgICIwLjA1NzMzMSwgMC4xODQ3NDgsIDAuMzI2NDQxLCAwLjQzMTA3LCAwLjU5OTUwOCwgMC43NDgxNDIsIDAuOTYwMzAxIiwgXAotICAgICAgICAgICIwLjA2Nzg4NSwgMC4xOTU1MDksIDAuMzMzMzc2LCAwLjQzNTA2MywgMC42MDExOTMsIDAuNzQ5MTAyLCAwLjk2MTAxMiIsIFwKLSAgICAgICAgICAiMC4wNzgwNTMsIDAuMjA1OTk0LCAwLjMzOTYwOSwgMC40NDA3NzMsIDAuNjAzNjA0LCAwLjc0OTU1NCwgMC45NjIxMjYiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTY2ODgsIDAuMDkwMjA4LCAwLjE2MzU5NiwgMC4yMTU5NTksIDAuMjk5NzI2LCAwLjM3MzE3LCAwLjQ3ODA3NyIsIFwKLSAgICAgICAgICAiMC4wMjY4NjIsIDAuMTAwMjg4LCAwLjE3MzY4OSwgMC4yMjYwNjEsIDAuMzA5ODgzLCAwLjM4MzIwNiwgMC40ODgxNTEiLCBcCi0gICAgICAgICAgIjAuMDM4MTI3LCAwLjExMjk1MiwgMC4xODY1MzUsIDAuMjM4NzkyLCAwLjMyMTk2NywgMC4zOTUzMTMsIDAuNTAwMTM0IiwgXAotICAgICAgICAgICIwLjA0Njk5OCwgMC4xMjU1OTcsIDAuMTk4OTcxLCAwLjI1MTYyMiwgMC4zMzUyODgsIDAuNDA4NjMsIDAuNTEzMzQ0IiwgXAotICAgICAgICAgICIwLjA1NDU0MywgMC4xMzkxODUsIDAuMjExOTE4LCAwLjI2NDI4MywgMC4zNDgxNDMsIDAuNDIxNTgyLCAwLjUyNjQ0OSIsIFwKLSAgICAgICAgICAiMC4wNjUyMTcsIDAuMTU5OTQyLCAwLjIzMjI4LCAwLjI4NDYxMiwgMC4zNjg5NDIsIDAuNDM5MzYsIDAuNTQ2ODM5IiwgXAotICAgICAgICAgICIwLjA3MzEyNCwgMC4xNzgyMjIsIDAuMjUxMTEzLCAwLjMwMjUzOSwgMC4zODYzMzcsIDAuNDU5NjY3LCAwLjU2NDk2NyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyNjAzNywgMC4xNzQ1NiwgMC4zMjMxNDcsIDAuNDI5NTY3LCAwLjYwMDUyNSwgMC43NDgxODEsIDAuOTU5ODM4IiwgXAotICAgICAgICAgICIwLjAyOTQ3LCAwLjE3NDQ5NSwgMC4zMjMxOTQsIDAuNDMwMywgMC42MDAzOTgsIDAuNzQ5MzEzLCAwLjk2MDEzNSIsIFwKLSAgICAgICAgICAiMC4wMzgzMzgsIDAuMTc1MjksIDAuMzIzMTI4LCAwLjQzMDMyMywgMC42MDA1OTEsIDAuNzQ3MjM2LCAwLjk2MDAyNiIsIFwKLSAgICAgICAgICAiMC4wNDc3OTgsIDAuMTc4OTk0LCAwLjMyMzM3NywgMC40MjkyNTcsIDAuNTk4NzksIDAuNzQ4MTIzLCAwLjk2MjMwOCIsIFwKLSAgICAgICAgICAiMC4wNTYzOTYsIDAuMTgzNDUxLCAwLjMyNTM4MywgMC40MzA3MzUsIDAuNjAwMzkzLCAwLjc0NzgwNiwgMC45NjA5MDIiLCBcCi0gICAgICAgICAgIjAuMDY4NDk0LCAwLjE5MzY0OCwgMC4zMzIyNzIsIDAuNDM0MjgyLCAwLjYwMDkyOSwgMC43NDc0MjMsIDAuOTU5NjIyIiwgXAotICAgICAgICAgICIwLjA3ODE4NiwgMC4yMDM5NjIsIDAuMzM4NTIxLCAwLjQzODM3NSwgMC42MDIyMDEsIDAuNzQ5NTMxLCAwLjk1OTYwNiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0MjEzLCAwLjAwNDI4LCAwLjAwNDI4NiwgMC4wMDQyODgsIDAuMDA0Mjg4LCAwLjAwNDI5LCAwLjAwNDI4OSIsIFwKLSAgICAgICAgICAiMC4wMDQwNTgsIDAuMDA0MjM1LCAwLjAwNDI1OSwgMC4wMDQyNjgsIDAuMDA0Mjc0LCAwLjAwNDI3OCwgMC4wMDQyODIiLCBcCi0gICAgICAgICAgIjAuMDA0MDQ1LCAwLjAwNDE5NSwgMC4wMDQyMzcsIDAuMDA0MjQ2LCAwLjAwNDI1OSwgMC4wMDQyNjYsIDAuMDA0MjY0IiwgXAotICAgICAgICAgICIwLjAwNDA3OSwgMC4wMDQxODIsIDAuMDA0MjIxLCAwLjAwNDIzNywgMC4wMDQyNTEsIDAuMDA0MjYsIDAuMDA0MjY2IiwgXAotICAgICAgICAgICIwLjAwNDE2NCwgMC4wMDQxNjksIDAuMDA0MjA5LCAwLjAwNDIyOSwgMC4wMDQyNDQsIDAuMDA0MjU0LCAwLjAwNDI2IiwgXAotICAgICAgICAgICIwLjAwNDIwNCwgMC4wMDQxODgsIDAuMDA0MjA3LCAwLjAwNDIxMiwgMC4wMDQyNDEsIDAuMDA0MjQ1LCAwLjAwNDI1NiIsIFwKLSAgICAgICAgICAiMC4wMDQzMTksIDAuMDA0MjE3LCAwLjAwNDIyNCwgMC4wMDQyMjYsIDAuMDA0MjQsIDAuMDA0MjUxLCAwLjAwNDI1NyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwMDM0LCAwLjAwMDA1NCwgMC4wMDAwNjMsIDAuMDAwMDY1LCAwLjAwMDA2NywgMC4wMDAwNjgsIDAuMDAwMDY5IiwgXAotICAgICAgICAgICIwLjAwMDIzMiwgMC4wMDAwMDcsIDAuMDAwMDI3LCAwLjAwMDAzOCwgMC4wMDAwNDgsIDAuMDAwMDUyLCAwLjAwMDA1NyIsIFwKLSAgICAgICAgICAiMC4wMDAyNjksIDAuMDAwMDYsIDAuMDAwMDA1LCAwLjAwMDAxMiwgMC4wMDAwMjcsIDAuMDAwMDM2LCAwLjAwMDA0NCIsIFwKLSAgICAgICAgICAiMC4wMDAxOTEsIDAuMDAwMDgsIDAuMDAwMDIyLCAwLjAwMDAwMSwgMC4wMDAwMTgsIDAuMDAwMDI4LCAwLjAwMDAzNyIsIFwKLSAgICAgICAgICAiMC4wMDAxODIsIDAuMDAwMTA3LCAwLjAwMDA1MywgMC4wMDAwMjcsIDAuMDAwMDAzLCAwLjAwMDAxMSwgMC4wMDAwMjQiLCBcCi0gICAgICAgICAgIjAuMDAwMDYxLCAwLjAwMDA4NiwgMC4wMDAwNTMsIDAuMDAwMDMxLCAwLjAwMDAwNCwgMC4wMDAwMDUsIDAuMDAwMDIiLCBcCi0gICAgICAgICAgIjAuMDAwMDc3LCAwLjAwMDA1NywgMC4wMDAwMzgsIDAuMDAwMDMsIDAuMDAwMDA5LCAwLjAwMDAwMywgMC4wMDAwMTgiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogQ0xLSU5WWDYgKgotICogLS0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKENMS0lOVlg2KSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMjIwNDgzOwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDQ1MDcxMzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDQ1MDUyMjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDQ1MDcxMzsKLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAxLjUwMTQ1OwotICAgIGZ1bmN0aW9uIDogIighQSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEzMTI5LCAwLjA2MjE2MiwgMC4xMTEwNTUsIDAuMTQ1OTk3LCAwLjIwMjA0MiwgMC4yNTA4MzQsIDAuMzIwNjU5IiwgXAotICAgICAgICAgICIwLjAyMzAwMSwgMC4wNzIyMTYsIDAuMTIxMTU4LCAwLjE1NjA5MywgMC4yMTE5NzIsIDAuMjYxMDI2LCAwLjMzMDc2NyIsIFwKLSAgICAgICAgICAiMC4wMzIyNTEsIDAuMDg0NzUxLCAwLjEzMzQ2OCwgMC4xNjg0MzcsIDAuMjI0MzY4LCAwLjI3MzMzMiwgMC4zNDMxNTYiLCBcCi0gICAgICAgICAgIjAuMDM5MjEsIDAuMDk3NDQ1LCAwLjE0NTk0MSwgMC4xODA5MDQsIDAuMjM2ODkzLCAwLjI4NTc4NywgMC4zNTU2OSIsIFwKLSAgICAgICAgICAiMC4wNDUzMTMsIDAuMTEwMDU3LCAwLjE1ODM5NSwgMC4xOTMyODgsIDAuMjQ5MjU3LCAwLjI5ODI2NCwgMC4zNjgxNDgiLCBcCi0gICAgICAgICAgIjAuMDUzMTE5LCAwLjEzMDQwMywgMC4xNzk1OTksIDAuMjE0NDA2LCAwLjI3MDIwMywgMC4zMTkwNTQsIDAuMzg4OTI1IiwgXAotICAgICAgICAgICIwLjA1OTAxOSwgMC4xNDU5MDgsIDAuMTk3MzU3LCAwLjIzMjA5MywgMC4yODc3OTYsIDAuMzM1ODcxLCAwLjQwNTYzNSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxOTY2MywgMC4xMjA1MTYsIDAuMjIxMzg1LCAwLjI5MzQzMiwgMC40MDg4NjMsIDAuNTA5NjEzLCAwLjY1MzY3MiIsIFwKLSAgICAgICAgICAiMC4wMjQzNTQsIDAuMTIwNTI3LCAwLjIyMTUxNSwgMC4yOTMzMDgsIDAuNDA4NjAxLCAwLjUwOTUzOSwgMC42NTQ2NDkiLCBcCi0gICAgICAgICAgIjAuMDMzODE5LCAwLjEyMzM1NywgMC4yMjE5NTUsIDAuMjkzMjk3LCAwLjQwODY5NywgMC41MDk2MTIsIDAuNjUzNjY4IiwgXAotICAgICAgICAgICIwLjA0MjQ5NCwgMC4xMjg1NjIsIDAuMjI0NDIyLCAwLjI5NDIxOCwgMC40MDk0ODIsIDAuNTA5ODQzLCAwLjY1MzcyIiwgXAotICAgICAgICAgICIwLjA0OTIzNSwgMC4xMzU0NjMsIDAuMjI4Nzg0LCAwLjI5NzU1MywgMC40MDk2MjksIDAuNTA5OTUyLCAwLjY1MzcwNCIsIFwKLSAgICAgICAgICAiMC4wNjA3NTcsIDAuMTQ3OTI4LCAwLjIzNzEzNywgMC4zMDQwNzUsIDAuNDE0NDA0LCAwLjUxMjc0NCwgMC42NTUyOSIsIFwKLSAgICAgICAgICAiMC4wNjk0MjIsIDAuMTYwMzA0LCAwLjI0NjUsIDAuMzEyMDk5LCAwLjQxOTM4NiwgMC41MTcyOTUsIDAuNjU3NTM4Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEzNjkzLCAwLjA2NDQzNCwgMC4xMTUxOTcsIDAuMTUxMzMxLCAwLjIwOTM2MSwgMC4yNTk5MzIsIDAuMzMyMzU0IiwgXAotICAgICAgICAgICIwLjAyMzgzNiwgMC4wNzQ4MjIsIDAuMTI1MzI1LCAwLjE2MTUwOCwgMC4yMTk0MDksIDAuMjcwMDY1LCAwLjM0MjQyMiIsIFwKLSAgICAgICAgICAiMC4wMzM4NDMsIDAuMDg3Njc3LCAwLjEzODEwNSwgMC4xNzQzMDcsIDAuMjMyMjMyLCAwLjI4MjkwMywgMC4zNTUzMzIiLCBcCi0gICAgICAgICAgIjAuMDQxNjc4LCAwLjEwMDcwMywgMC4xNTA5MDksIDAuMTg3MDgyLCAwLjI0NTIzMywgMC4yOTU4LCAwLjM2NzM1MiIsIFwKLSAgICAgICAgICAiMC4wNDgzNTEsIDAuMTEzNjY4LCAwLjE2NDE2MSwgMC4xOTk4NTEsIDAuMjU3Nzc4LCAwLjMwNzY4NCwgMC4zODA5NjgiLCBcCi0gICAgICAgICAgIjAuMDU3NjEsIDAuMTM0NDY1LCAwLjE4NDk0NiwgMC4yMjAyNTQsIDAuMjc4MTczLCAwLjMyODgzLCAwLjQwMTU0OCIsIFwKLSAgICAgICAgICAiMC4wNjQyMzYsIDAuMTUxNDAzLCAwLjIwMzY5NCwgMC4yMzk3MTUsIDAuMjk3MzAyLCAwLjM0NzA0NCwgMC40MTk0MjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTk2NywgMC4xMjE2NzYsIDAuMjIzNjQ2LCAwLjI5NjQ0NiwgMC40MTMyMTIsIDAuNTE0OTQzLCAwLjY2MDM3NyIsIFwKLSAgICAgICAgICAiMC4wMjM4NTgsIDAuMTIxOTA3LCAwLjIyMzYwMSwgMC4yOTYyMjIsIDAuNDEzMDg1LCAwLjUxNTg5NywgMC42NjIxMjQiLCBcCi0gICAgICAgICAgIjAuMDMzMjIyLCAwLjEyMzkyNywgMC4yMjQwMjQsIDAuMjk2NTU1LCAwLjQxMzcwMywgMC41MTUxMDIsIDAuNjYwMDM5IiwgXAotICAgICAgICAgICIwLjA0MjEwMSwgMC4xMjg2MzYsIDAuMjI2MjM4LCAwLjI5NzU3NiwgMC40MTM5NTQsIDAuNTE2MTAzLCAwLjY2MTQ3NyIsIFwKLSAgICAgICAgICAiMC4wNTAzLCAwLjEzNTEzLCAwLjIyOTcyLCAwLjI5OTgyNCwgMC40MTM3MTEsIDAuNTE2MTcyLCAwLjY2MjEwMSIsIFwKLSAgICAgICAgICAiMC4wNjEyNDgsIDAuMTQ3NDI0LCAwLjIzODI0NiwgMC4zMDY1NjIsIDAuNDE3MjI2LCAwLjUxNjM1NiwgMC42NjIwMzYiLCBcCi0gICAgICAgICAgIjAuMDcwODg2LCAwLjE1ODcyMywgMC4yNDY1MDUsIDAuMzEyNzM4LCAwLjQyMjkxMSwgMC41MjE1NzUsIDAuNjYyODIxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDY0NjIsIDAuMDA2NTk2LCAwLjAwNjYwNiwgMC4wMDY2MSwgMC4wMDY2MTIsIDAuMDA2NjE0LCAwLjAwNjYxNiIsIFwKLSAgICAgICAgICAiMC4wMDYyMTgsIDAuMDA2NDg4LCAwLjAwNjU0NiwgMC4wMDY1NjUsIDAuMDA2NTgzLCAwLjAwNjU4OSwgMC4wMDY1OTgiLCBcCi0gICAgICAgICAgIjAuMDA2MTksIDAuMDA2NDIsIDAuMDA2NDk3LCAwLjAwNjUyLCAwLjAwNjU0NSwgMC4wMDY1NiwgMC4wMDY1NzMiLCBcCi0gICAgICAgICAgIjAuMDA2MjczLCAwLjAwNjM4NSwgMC4wMDY0NTEsIDAuMDA2NDg4LCAwLjAwNjUxMiwgMC4wMDY1NDIsIDAuMDA2NTU5IiwgXAotICAgICAgICAgICIwLjAwNjMxMiwgMC4wMDYzOTYsIDAuMDA2NDYxLCAwLjAwNjQ4NiwgMC4wMDY1MTIsIDAuMDA2NTMxLCAwLjAwNjU0OSIsIFwKLSAgICAgICAgICAiMC4wMDY2OSwgMC4wMDY0NTIsIDAuMDA2NDc0LCAwLjAwNjQ4MywgMC4wMDY1MTgsIDAuMDA2NTMzLCAwLjAwNjU0OCIsIFwKLSAgICAgICAgICAiMC4wMDY3MDIsIDAuMDA2NDY4LCAwLjAwNjQ2NywgMC4wMDY0ODMsIDAuMDA2NTAzLCAwLjAwNjUxNSwgMC4wMDY1MjgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDE1NCwgMC4wMDAwMSwgMC4wMDAwMjksIDAuMDAwMDM0LCAwLjAwMDAzOSwgMC4wMDAwNDIsIDAuMDAwMDQ0IiwgXAotICAgICAgICAgICIwLjAwMDQ2NiwgMC4wMDAxMDcsIDAuMDAwMDQzLCAwLjAwMDAyMSwgMC4wMDAwMDIsIDAuMDAwMDA5LCAwLjAwMDAxOCIsIFwKLSAgICAgICAgICAiMC4wMDA1MjYsIDAuMDAwMjE4LCAwLjAwMDEyMSwgMC4wMDAwODQsIDAuMDAwMDQ5LCAwLjAwMDAzLCAwLjAwMDAxMyIsIFwKLSAgICAgICAgICAiMC4wMDA0NTMsIDAuMDAwMjcsIDAuMDAwMTcxLCAwLjAwMDEyNywgMC4wMDAwODIsIDAuMDAwMDU5LCAwLjAwMDA0IiwgXAotICAgICAgICAgICIwLjAwMDMwMywgMC4wMDAyOCwgMC4wMDAxODgsIDAuMDAwMTUyLCAwLjAwMDEwNSwgMC4wMDAwNzYsIDAuMDAwMDUzIiwgXAotICAgICAgICAgICIwLjAwMDE3MywgMC4wMDAyMSwgMC4wMDAxNjgsIDAuMDAwMTQ3LCAwLjAwMDEwOCwgMC4wMDAwODUsIDAuMDAwMDU3IiwgXAotICAgICAgICAgICIwLjAwMDEyMSwgMC4wMDAyMTksIDAuMDAwMTk0LCAwLjAwMDE2NywgMC4wMDAxMzQsIDAuMDAwMTE4LCAwLjAwMDA5Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBDTEtNWDJYMTIgKgotICogLS0tLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChDTEtNWDJYMTIpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC42MTg1MTQ7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDc5NjY0MzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA3OTQyMzc7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNzk2NjQzOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDMwMywgMC4wMDAzMSwgMC4wMDAzMTIsIDAuMDAwMzEzLCAwLjAwMDMxMywgMC4wMDAzMTQsIDAuMDAwMzE0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzM2LCAwLjAwMDMyOCwgMC4wMDAzMjgsIDAuMDAwMzI4LCAwLjAwMDMyOCwgMC4wMDAzMjcsIDAuMDAwMzI3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA3Mjg5OTQ7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNzI2NTk5OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDcyODk5NDsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAzMTMsIDAuMDAwMzE3LCAwLjAwMDMxOSwgMC4wMDAzMTksIDAuMDAwMzE5LCAwLjAwMDMyLCAwLjAwMDMyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzMxLCAwLjAwMDMyNywgMC4wMDAzMjcsIDAuMDAwMzI3LCAwLjAwMDMyNywgMC4wMDAzMjcsIDAuMDAwMzI3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNjcwOTM7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNjcwMjI7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNjcwOTM7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjA2LCAwLjAwMDE1NSwgMC4wMDAxNTksIDAuMDAwMTc2LCAwLjAwMDIwMywgMC4wMDAyNCwgMC4wMDAyODUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDI0MTcsIDAuMDAyMzc5LCAwLjAwMjM5NSwgMC4wMDI0LCAwLjAwMjQxNCwgMC4wMDI0NTQsIDAuMDAyNDkyIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDIuOTc4NDc7Ci0gICAgZnVuY3Rpb24gOiAiKChTMCBCKSArICghUzAgQSkpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMzEyNiwgMC4xMzcwMDQsIDAuMTYwNTc5LCAwLjE3NjcwNywgMC4xOTUxNDQsIDAuMjI3NzA0LCAwLjI0NjYzIiwgXAotICAgICAgICAgICIwLjE0MDA0NSwgMC4xNDU4MTgsIDAuMTY5NDUsIDAuMTg1NTAxLCAwLjIwMzkxMiwgMC4yMzY1NzEsIDAuMjU1NDU2IiwgXAotICAgICAgICAgICIwLjE1MDk2OSwgMC4xNTY2MDksIDAuMTgwNDksIDAuMTk2NDE2LCAwLjIxNDkzMiwgMC4yNDc0NywgMC4yNjYzNjEiLCBcCi0gICAgICAgICAgIjAuMTYxOTM5LCAwLjE2NzY2MSwgMC4xOTE0ODYsIDAuMjA3Mzg1LCAwLjIyNjA3NSwgMC4yNTg0NzYsIDAuMjc3MzU4IiwgXAotICAgICAgICAgICIwLjE3MjgwOCwgMC4xNzg2MTYsIDAuMjAyMzIsIDAuMjE4MzMxLCAwLjIzNjg3LCAwLjI2OTM0NCwgMC4yODgxODkiLCBcCi0gICAgICAgICAgIjAuMTkwNTQ4LCAwLjE5NjI5NiwgMC4yMjAwOTQsIDAuMjM2MDQ4LCAwLjI1NDY4NywgMC4yODcwMDEsIDAuMzA1OTE1IiwgXAotICAgICAgICAgICIwLjIwNTI0LCAwLjIxMDg1NSwgMC4yMzQ3NTgsIDAuMjUwODEsIDAuMjY5MjA1LCAwLjMwMTgxLCAwLjMyMDUzNSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTA1MTgsIDAuMDU2MTEsIDAuMDgyNTU0LCAwLjEwMjYxNSwgMC4xMjkyMTcsIDAuMTgxNTgsIDAuMjE0NTI3IiwgXAotICAgICAgICAgICIwLjA1MDQxNSwgMC4wNTYwMTksIDAuMDgyMjEyLCAwLjEwMjc4NiwgMC4xMjkxMDksIDAuMTgxNDc0LCAwLjIxNDI5NiIsIFwKLSAgICAgICAgICAiMC4wNTA1MDMsIDAuMDU2MzM3LCAwLjA4MjE4OSwgMC4xMDI4NSwgMC4xMjkxMzgsIDAuMTgxNTM2LCAwLjIxNDQ1NCIsIFwKLSAgICAgICAgICAiMC4wNTA1NDEsIDAuMDU2MTEsIDAuMDgyMjIzLCAwLjEwMjYzOSwgMC4xMjkwMjQsIDAuMTgxNDY0LCAwLjIxNDM5MyIsIFwKLSAgICAgICAgICAiMC4wNTA1MzMsIDAuMDU2MDI5LCAwLjA4MTk3OSwgMC4xMDI1MjcsIDAuMTI4OTU1LCAwLjE4MTQxMywgMC4yMTQzMTUiLCBcCi0gICAgICAgICAgIjAuMDUwNTI5LCAwLjA1NjA1OSwgMC4wODIwNDEsIDAuMTAyNTU4LCAwLjEyOTAwMiwgMC4xODEzNTksIDAuMjE0MzU4IiwgXAotICAgICAgICAgICIwLjA1MDYxMSwgMC4wNTY3NDUsIDAuMDgyMzczLCAwLjEwMjkwNSwgMC4xMjkxNjUsIDAuMTgxNTYzLCAwLjIxNDM5OCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNDMwNjYsIDAuMTQ4ODcyLCAwLjE3Mjc2MiwgMC4xODkyMjgsIDAuMjA4NDQ0LCAwLjI0MjMyNiwgMC4yNjE5ODYiLCBcCi0gICAgICAgICAgIjAuMTUxNjgzLCAwLjE1NzUwMywgMC4xODE0NDIsIDAuMTk4MDU1LCAwLjIxNzI0LCAwLjI1MDk5OCwgMC4yNzA3NzIiLCBcCi0gICAgICAgICAgIjAuMTYxNjczLCAwLjE2NzMyMiwgMC4xOTE1OSwgMC4yMDc5OTIsIDAuMjI3MzA3LCAwLjI2MTA4NiwgMC4yODA3ODYiLCBcCi0gICAgICAgICAgIjAuMTcxNTgsIDAuMTc3MzYsIDAuMjAxNDk4LCAwLjIxODA1MywgMC4yMzcyNTIsIDAuMjcxMDY0LCAwLjI5MDcyNyIsIFwKLSAgICAgICAgICAiMC4xODEzNTEsIDAuMTg3MTg2LCAwLjIxMTM3MiwgMC4yMjc5NCwgMC4yNDcxMTksIDAuMjgwODg0LCAwLjMwMDYwMiIsIFwKLSAgICAgICAgICAiMC4xOTcyNjksIDAuMjAzMTM3LCAwLjIyNzQxNiwgMC4yNDM3OTMsIDAuMjYyOTksIDAuMjk2NzI1LCAwLjMxNjQ4NyIsIFwKLSAgICAgICAgICAiMC4yMTA4MDYsIDAuMjE2NzUyLCAwLjI0MDk4MiwgMC4yNTc0OTYsIDAuMjc2NDk1LCAwLjMxMDMzNywgMC4zMzAwODIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDUyNCwgMC4wNTc3OTgsIDAuMDg1MjM1LCAwLjEwNTkyOCwgMC4xMzI4NjgsIDAuMTg2MTk5LCAwLjIxOTU3NyIsIFwKLSAgICAgICAgICAiMC4wNTIxNywgMC4wNTc3ODUsIDAuMDg0OTIxLCAwLjEwNTgyMSwgMC4xMzI3OTYsIDAuMTg2MDIsIDAuMjE5NTgxIiwgXAotICAgICAgICAgICIwLjA1MjIxOSwgMC4wNTg0NTQsIDAuMDg0ODA3LCAwLjEwNTY1OSwgMC4xMzI1OTksIDAuMTg2MDA4LCAwLjIxOTUzMiIsIFwKLSAgICAgICAgICAiMC4wNTIxNTYsIDAuMDU3ODA5LCAwLjA4NDYzOCwgMC4xMDU2NTcsIDAuMTMyNjIsIDAuMTg1OTQ5LCAwLjIxOTQ1OSIsIFwKLSAgICAgICAgICAiMC4wNTI1MiwgMC4wNTgxMiwgMC4wODQzOTcsIDAuMTA1NTI0LCAwLjEzMjUzNywgMC4xODU4NTQsIDAuMjE5NDIiLCBcCi0gICAgICAgICAgIjAuMDUyMjc4LCAwLjA1Nzg3NiwgMC4wODQzMzMsIDAuMTA1MzI1LCAwLjEzMjM4NCwgMC4xODU3ODgsIDAuMjE5MzkiLCBcCi0gICAgICAgICAgIjAuMDUzNzE1LCAwLjA1ODk2OCwgMC4wODQ4NiwgMC4xMDU4NDksIDAuMTMyNjkzLCAwLjE4NjA5NSwgMC4yMTk1MiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMzIyNTYsIDAuMTM4MDM3LCAwLjE2MTU0OCwgMC4xNzc2LCAwLjE5NjA5NiwgMC4yMjg1NSwgMC4yNDc0OTkiLCBcCi0gICAgICAgICAgIjAuMTQxMzQzLCAwLjE0NzA1NSwgMC4xNzA3NjQsIDAuMTg2ODQ5LCAwLjIwNTI3OSwgMC4yMzc3NjQsIDAuMjU2NzM0IiwgXAotICAgICAgICAgICIwLjE1MjI5OCwgMC4xNTc5MjQsIDAuMTgxODE2LCAwLjE5NzczOCwgMC4yMTYyNywgMC4yNDg4MTQsIDAuMjY3NzA5IiwgXAotICAgICAgICAgICIwLjE2MzI0NiwgMC4xNjg5NzQsIDAuMTkyNzc2LCAwLjIwODg1OCwgMC4yMjcyOTYsIDAuMjU5ODQ4LCAwLjI3ODc0IiwgXAotICAgICAgICAgICIwLjE3NDEzOCwgMC4xNzk4OTQsIDAuMjAzODA1LCAwLjIxOTgzNywgMC4yMzg0MTYsIDAuMjcwODc2LCAwLjI4OTcyNCIsIFwKLSAgICAgICAgICAiMC4xOTE1OTIsIDAuMTk3MzU3LCAwLjIyMTExMiwgMC4yMzcxNjIsIDAuMjU1NzQ2LCAwLjI4ODEyMywgMC4zMDciLCBcCi0gICAgICAgICAgIjAuMjA2NTc2LCAwLjIxMjIwOSwgMC4yMzYwNzEsIDAuMjUyMTg3LCAwLjI3MDU3NSwgMC4zMDMxODksIDAuMzIxOTIxIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1MDYxNywgMC4wNTYxNCwgMC4wODI4OSwgMC4xMDMxMDksIDAuMTI5NTg4LCAwLjE4MTc4OCwgMC4yMTQ2NjUiLCBcCi0gICAgICAgICAgIjAuMDUwNDI0LCAwLjA1NjA2NCwgMC4wODIyNTMsIDAuMTAyODAzLCAwLjEyOTMzMiwgMC4xODE1OTksIDAuMjE0NTc5IiwgXAotICAgICAgICAgICIwLjA1MDU4MywgMC4wNTY0MzcsIDAuMDgyMzMxLCAwLjEwMjk2OSwgMC4xMjkyNzksIDAuMTgxNjc0LCAwLjIxNDU5NCIsIFwKLSAgICAgICAgICAiMC4wNTA1MzksIDAuMDU2MzMyLCAwLjA4MjE5NSwgMC4xMDI4ODIsIDAuMTI5MTE0LCAwLjE4MTQ1NSwgMC4yMTQ1MjgiLCBcCi0gICAgICAgICAgIjAuMDUwNjM1LCAwLjA1NjEzOSwgMC4wODIwOTQsIDAuMTAyNzc1LCAwLjEyOTEzOCwgMC4xODE1NDMsIDAuMjE0MzI1IiwgXAotICAgICAgICAgICIwLjA1MDU1OCwgMC4wNTYwMTMsIDAuMDgyMDk5LCAwLjEwMjc1MywgMC4xMjkyMzQsIDAuMTgxNTA2LCAwLjIxNDQ4IiwgXAotICAgICAgICAgICIwLjA1MDc3MywgMC4wNTY3MjUsIDAuMDgyNDE3LCAwLjEwMjk3NiwgMC4xMjkyNjksIDAuMTgxNjczLCAwLjIxNDUxNCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNDQ4MjgsIDAuMTUwNjQ2LCAwLjE3NDc4NywgMC4xOTExNzUsIDAuMjEwNTc2LCAwLjI0NDQ0MSwgMC4yNjQxMjMiLCBcCi0gICAgICAgICAgIjAuMTUzNTQ0LCAwLjE1OTM1NywgMC4xODM0NDEsIDAuMjAwMDM5LCAwLjIxOTI1MSwgMC4yNTMwNjUsIDAuMjcyODM4IiwgXAotICAgICAgICAgICIwLjE2MzQ3NSwgMC4xNjkzMTIsIDAuMTkzNDIyLCAwLjIwOTkzMiwgMC4yMjkyNiwgMC4yNjMwMjMsIDAuMjgyNzkyIiwgXAotICAgICAgICAgICIwLjE3MzQ1MiwgMC4xNzkyNDEsIDAuMjAzNDcyLCAwLjIxOTkzLCAwLjIzOTI5NiwgMC4yNzMxMTYsIDAuMjkyODE0IiwgXAotICAgICAgICAgICIwLjE4MzI0MywgMC4xODkwNzUsIDAuMjEzMzE4LCAwLjIyOTkyOCwgMC4yNDkxMjksIDAuMjgyODg3LCAwLjMwMjY3NCIsIFwKLSAgICAgICAgICAiMC4xOTkxOTEsIDAuMjA1MDAyLCAwLjIyOTM1MiwgMC4yNDU4NjksIDAuMjY0OTA1LCAwLjI5ODgwMywgMC4zMTg0MjUiLCBcCi0gICAgICAgICAgIjAuMjEyNjMyLCAwLjIxODQ1MSwgMC4yNDI3NzUsIDAuMjU5MjAzLCAwLjI3ODM4OSwgMC4zMTIyMTEsIDAuMzMxOTgxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1MjQ2NSwgMC4wNTgxNjIsIDAuMDg1MTgxLCAwLjEwNTk1OCwgMC4xMzMwNzYsIDAuMTg2MzU5LCAwLjIxOTg0MSIsIFwKLSAgICAgICAgICAiMC4wNTI0MjksIDAuMDU4NDQ5LCAwLjA4NTI0NywgMC4xMDYyMTEsIDAuMTMzMDgzLCAwLjE4NjM3MywgMC4yMTk4NTMiLCBcCi0gICAgICAgICAgIjAuMDUyNTE0LCAwLjA1ODA5OCwgMC4wODQ4OTEsIDAuMTA1ODE1LCAwLjEzMjk0NSwgMC4xODYyMTMsIDAuMjE5NzIiLCBcCi0gICAgICAgICAgIjAuMDUyNDc3LCAwLjA1ODQ1NywgMC4wODQ4MTYsIDAuMTA1NzgxLCAwLjEzMjg1NywgMC4xODYyMDYsIDAuMjE5NzMxIiwgXAotICAgICAgICAgICIwLjA1MjQ4NCwgMC4wNTgzNjQsIDAuMDg0NjY5LCAwLjEwNTgwMSwgMC4xMzI4OTksIDAuMTg2MTExLCAwLjIxOTY5NSIsIFwKLSAgICAgICAgICAiMC4wNTIzOTksIDAuMDU3OTIzLCAwLjA4NDUxMiwgMC4xMDU2MTIsIDAuMTMyNjY2LCAwLjE4NjEwOCwgMC4yMTk1NzkiLCBcCi0gICAgICAgICAgIjAuMDUzMzIsIDAuMDU4ODI3LCAwLjA4NTExNCwgMC4xMDU5MTksIDAuMTMyOTMxLCAwLjE4NjI4MywgMC4yMTk3ODYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUzAiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEyNTQwNCwgMC4xMzExMDMsIDAuMTU0OTE5LCAwLjE3MDgwMiwgMC4xODk1MjcsIDAuMjIxNzc0LCAwLjI0MDcxNCIsIFwKLSAgICAgICAgICAiMC4xMzQ3NzUsIDAuMTQwNTU2LCAwLjE2NDMxMSwgMC4xODAzMDcsIDAuMTk4OTE5LCAwLjIzMTI3MiwgMC4yNTAyMzgiLCBcCi0gICAgICAgICAgIjAuMTQ2Mzc0LCAwLjE1MjE0NiwgMC4xNzU5NTMsIDAuMTkxOTg4LCAwLjIxMDU1MSwgMC4yNDMwNTQsIDAuMjYxODYyIiwgXAotICAgICAgICAgICIwLjE1ODE1NCwgMC4xNjM5MTQsIDAuMTg3NzI1LCAwLjIwMzY5LCAwLjIyMjI1NSwgMC4yNTQ3OTEsIDAuMjczNjg3IiwgXAotICAgICAgICAgICIwLjE3MDE3OSwgMC4xNzYwMDEsIDAuMTk5Njk5LCAwLjIxNTc0MSwgMC4yMzQzNDksIDAuMjY2NzU3LCAwLjI4NTU4NyIsIFwKLSAgICAgICAgICAiMC4xODkzOTUsIDAuMTk1MjI2LCAwLjIxODk0NywgMC4yMzQ5NTIsIDAuMjUzNTU2LCAwLjI4NTkxMSwgMC4zMDQ4MzEiLCBcCi0gICAgICAgICAgIjAuMjA2MjA1LCAwLjIxMTk1NiwgMC4yMzU4MzksIDAuMjUxNzM2LCAwLjI3MDM3OSwgMC4zMDI4MTgsIDAuMzIxNzAzIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1MDczOCwgMC4wNTY0OTQsIDAuMDgyMjkzLCAwLjEwMjY1OSwgMC4xMjkxODYsIDAuMTgxNTA0LCAwLjIxNDM4MiIsIFwKLSAgICAgICAgICAiMC4wNTA2NTgsIDAuMDU2MTQ5LCAwLjA4MjIwMSwgMC4xMDI4NDgsIDAuMTI5MiwgMC4xODE1NDcsIDAuMjE0NDkzIiwgXAotICAgICAgICAgICIwLjA1MDk4MiwgMC4wNTYzNSwgMC4wODIyNDMsIDAuMTAyNzE0LCAwLjEyOTE1MSwgMC4xODE1OTksIDAuMjE0NDU2IiwgXAotICAgICAgICAgICIwLjA1MDgxMSwgMC4wNTYyOTYsIDAuMDgyMTQxLCAwLjEwMjYxOSwgMC4xMjkyMTcsIDAuMTgxNDE3LCAwLjIxNDQ5OCIsIFwKLSAgICAgICAgICAiMC4wNTA2MDUsIDAuMDU1OTQyLCAwLjA4MjA1LCAwLjEwMjYxMSwgMC4xMjkyMjksIDAuMTgxMzM2LCAwLjIxNDQxOCIsIFwKLSAgICAgICAgICAiMC4wNTA0ODQsIDAuMDU2MDA5LCAwLjA4MTk2OSwgMC4xMDI1MDgsIDAuMTI5MTYsIDAuMTgxNDI5LCAwLjIxNDQ1MyIsIFwKLSAgICAgICAgICAiMC4wNTExNTksIDAuMDU2NTU3LCAwLjA4MjQyOSwgMC4xMDMwMDcsIDAuMTI5MTk0LCAwLjE4MTQ2LCAwLjIxNDUxOCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMzcwMDYsIDAuMTQyNzksIDAuMTY2OTU1LCAwLjE4MzMwNywgMC4yMDI2ODEsIDAuMjM2NDM3LCAwLjI1NjE0NCIsIFwKLSAgICAgICAgICAiMC4xNDU5NjEsIDAuMTUxNjg2LCAwLjE3NTk0LCAwLjE5MjQ3NSwgMC4yMTE1NTksIDAuMjQ1NDU1LCAwLjI2NTE2NiIsIFwKLSAgICAgICAgICAiMC4xNTczODksIDAuMTYzMjA3LCAwLjE4NzMzMywgMC4yMDM3NSwgMC4yMjMxMSwgMC4yNTY4ODQsIDAuMjc2NTc3IiwgXAotICAgICAgICAgICIwLjE2ODk4MSwgMC4xNzQ4NDMsIDAuMTk4OTU4LCAwLjIxNTM4NiwgMC4yMzQ3MTIsIDAuMjY4NTA5LCAwLjI4ODE3NiIsIFwKLSAgICAgICAgICAiMC4xODA1NTEsIDAuMTg2NDI3LCAwLjIxMDYxNywgMC4yMjcxMTcsIDAuMjQ2MzA5LCAwLjI4MDA2MiwgMC4yOTk3NzEiLCBcCi0gICAgICAgICAgIjAuMTk5Mjc3LCAwLjIwNTAzNiwgMC4yMjkyMzEsIDAuMjQ1ODE3LCAwLjI2NDk3OSwgMC4yOTg3MiwgMC4zMTg0MjkiLCBcCi0gICAgICAgICAgIjAuMjE1NDg2LCAwLjIyMTM1LCAwLjI0NTUyNiwgMC4yNjE5OTQsIDAuMjgxMjQ3LCAwLjMxNTAwNSwgMC4zMzQ2NiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTIyODcsIDAuMDU3ODc0LCAwLjA4NDY3NSwgMC4xMDU0NTcsIDAuMTMyNTQ4LCAwLjE4NTk1MywgMC4yMTk0ODciLCBcCi0gICAgICAgICAgIjAuMDUyMzM0LCAwLjA1ODM2LCAwLjA4NDU5OCwgMC4xMDU2NzMsIDAuMTMyNTYsIDAuMTg1OTczLCAwLjIxOTQ3NyIsIFwKLSAgICAgICAgICAiMC4wNTIyNzEsIDAuMDU3ODgxLCAwLjA4NDU1LCAwLjEwNTQ4MSwgMC4xMzI1ODQsIDAuMTg1OTM1LCAwLjIxOTQ3MSIsIFwKLSAgICAgICAgICAiMC4wNTIyOTMsIDAuMDU3ODI4LCAwLjA4NDQ4MSwgMC4xMDU0OCwgMC4xMzI1NzQsIDAuMTg1OTA4LCAwLjIxOTQ0NyIsIFwKLSAgICAgICAgICAiMC4wNTIzNzIsIDAuMDU3OTA0LCAwLjA4NDUyOSwgMC4xMDU1MjksIDAuMTMyNDk4LCAwLjE4NTg4MywgMC4yMTk0MjciLCBcCi0gICAgICAgICAgIjAuMDUyMjAyLCAwLjA1NzY0OSwgMC4wODQxODcsIDAuMTA1MzgzLCAwLjEzMjQwNiwgMC4xODU3OCwgMC4yMTkzODkiLCBcCi0gICAgICAgICAgIjAuMDUyMzc5LCAwLjA1ODA2OSwgMC4wODQ2NTUsIDAuMTA1Mjk5LCAwLjEzMjUyNywgMC4xODU4NDUsIDAuMjE5MzkzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlMwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMzc0OTUsIDAuMTQzMjA2LCAwLjE2Njg1LCAwLjE4MzAwMywgMC4yMDEzOTUsIDAuMjMzOTU3LCAwLjI1MjgzNyIsIFwKLSAgICAgICAgICAiMC4xNDcxOCwgMC4xNTI4NTksIDAuMTc2NTk2LCAwLjE5MjYzMSwgMC4yMTEwMDMsIDAuMjQzNjk0LCAwLjI2MjUxNyIsIFwKLSAgICAgICAgICAiMC4xNTY1ODQsIDAuMTYyMzQ4LCAwLjE4NTgyOCwgMC4yMDE5MDEsIDAuMjIwNDQxLCAwLjI1Mjg0NiwgMC4yNzE3NTciLCBcCi0gICAgICAgICAgIjAuMTYzNjM2LCAwLjE2OTQwNCwgMC4xOTMyMDIsIDAuMjA5MjIzLCAwLjIyNzgzNywgMC4yNjAyMjQsIDAuMjc5MTA3IiwgXAotICAgICAgICAgICIwLjE2OTgyNCwgMC4xNzU1ODgsIDAuMTk5NDQ2LCAwLjIxNTM4NSwgMC4yMzM5LCAwLjI2NjQ2NCwgMC4yODUyODgiLCBcCi0gICAgICAgICAgIjAuMTc4MDY4LCAwLjE4Mzg2MiwgMC4yMDc2NTgsIDAuMjIzNjE2LCAwLjI0MTkxOCwgMC4yNzQ1MDUsIDAuMjkzNDYzIiwgXAotICAgICAgICAgICIwLjE4MzUyNCwgMC4xODkyNDIsIDAuMjEzMDYzLCAwLjIyOTMzNCwgMC4yNDc1NjYsIDAuMjgwMDI0LCAwLjI5ODk0NiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTA2LCAwLjA1NjE2NywgMC4wODIzLCAwLjEwMjkyOCwgMC4xMjkyMTIsIDAuMTgxNDM5LCAwLjIxNDQ1OCIsIFwKLSAgICAgICAgICAiMC4wNTA0NjksIDAuMDU2MjkxLCAwLjA4MjQzMSwgMC4xMDI4NjQsIDAuMTI5MSwgMC4xODE1NzgsIDAuMjE0MzIzIiwgXAotICAgICAgICAgICIwLjA1MDY1NiwgMC4wNTYxMjksIDAuMDgyMjExLCAwLjEwMjY0MSwgMC4xMjkxMzMsIDAuMTgxNDQ2LCAwLjIxNDM2MSIsIFwKLSAgICAgICAgICAiMC4wNTA3NSwgMC4wNTYyOTcsIDAuMDgyMDQ5LCAwLjEwMjYzLCAwLjEyODk4NCwgMC4xODEyMjMsIDAuMjE0MjEzIiwgXAotICAgICAgICAgICIwLjA1MDU1OSwgMC4wNTU5NSwgMC4wODIwNDksIDAuMTAyNTM4LCAwLjEyOTA2MiwgMC4xODEyMjEsIDAuMjE0MzIzIiwgXAotICAgICAgICAgICIwLjA1MDU4MiwgMC4wNTU4NTMsIDAuMDgyMDI2LCAwLjEwMjUxLCAwLjEyODkxMiwgMC4xODEzNzIsIDAuMjE0MTQ2IiwgXAotICAgICAgICAgICIwLjA1MDU0MywgMC4wNTYxNjQsIDAuMDgyMzAxLCAwLjEwMjk3NywgMC4xMjk0MDEsIDAuMTgxNjQ5LCAwLjIxNDYwMiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNDkzMTMsIDAuMTU1MjE4LCAwLjE3OTU2NiwgMC4xOTU5MjEsIDAuMjE0OTcyLCAwLjI0OTA5NCwgMC4yNjg1MzUiLCBcCi0gICAgICAgICAgIjAuMTU5NDgyLCAwLjE2NTI2OSwgMC4xODkzNjIsIDAuMjA1OTAzLCAwLjIyNTAzNCwgMC4yNTkwMTEsIDAuMjc4Nzc3IiwgXAotICAgICAgICAgICIwLjE2OTQ1OCwgMC4xNzUyNzUsIDAuMTk5NTA2LCAwLjIxNjA4MywgMC4yMzUxODUsIDAuMjY5MTM1LCAwLjI4ODg1OSIsIFwKLSAgICAgICAgICAiMC4xNzcyNjMsIDAuMTgzMTE5LCAwLjIwNzMzLCAwLjIyMzgzNywgMC4yNDMwMzgsIDAuMjc2OTY3LCAwLjI5NjcwNiIsIFwKLSAgICAgICAgICAiMC4xODQwMTYsIDAuMTg5ODM5LCAwLjIxNDIxLCAwLjIzMDczMywgMC4yNDk5MjMsIDAuMjgzNzY1LCAwLjMwMzM3NCIsIFwKLSAgICAgICAgICAiMC4xOTMyMjEsIDAuMTk4NzgzLCAwLjIyMzA3OSwgMC4yMzk2OTcsIDAuMjU5MTY5LCAwLjI5Mjg4MSwgMC4zMTIzNTkiLCBcCi0gICAgICAgICAgIjAuMTk5NzQ2LCAwLjIwNTYwNSwgMC4yMjk4MDksIDAuMjQ2MjQyLCAwLjI2NTY0NywgMC4yOTk0OTcsIDAuMzE5MTk2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1MjU0NCwgMC4wNTgzNDYsIDAuMDg0NzIzLCAwLjEwNTYxOSwgMC4xMzI2MTMsIDAuMTg2MTU5LCAwLjIxOTU2IiwgXAotICAgICAgICAgICIwLjA1MjQ5NiwgMC4wNTgwNTgsIDAuMDg0OTk4LCAwLjEwNTk4MywgMC4xMzI4ODYsIDAuMTg2MjE4LCAwLjIxOTY0OCIsIFwKLSAgICAgICAgICAiMC4wNTI5OTEsIDAuMDU4MzU3LCAwLjA4NTA0NCwgMC4xMDYwMzUsIDAuMTMyODE4LCAwLjE4NjI4NywgMC4yMTk3ODQiLCBcCi0gICAgICAgICAgIjAuMDUyNjI3LCAwLjA1ODIxMywgMC4wODQ4OTQsIDAuMTA1ODAxLCAwLjEzMjc3MiwgMC4xODYyMzMsIDAuMjE5NzE3IiwgXAotICAgICAgICAgICIwLjA1MjQ4NiwgMC4wNTgzMzksIDAuMDg0NzI5LCAwLjEwNTczMSwgMC4xMzI3NiwgMC4xODYxMywgMC4yMTk2MDIiLCBcCi0gICAgICAgICAgIjAuMDUyMzE5LCAwLjA1NzgwNywgMC4wODQzMzMsIDAuMTA1NTEzLCAwLjEzMjYyNSwgMC4xODU5NDMsIDAuMjE5NTY2IiwgXAotICAgICAgICAgICIwLjA1MjQ4NiwgMC4wNTgwMDcsIDAuMDg0ODAyLCAwLjEwNTkxMiwgMC4xMzMxMjIsIDAuMTg2Mzk5LCAwLjIxOTkyOSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMzY5LCAwLjAxMzU1NywgMC4wMTMzODYsIDAuMDEzNDExLCAwLjAxMzQ2OSwgMC4wMTM1ODQsIDAuMDEzNjM5IiwgXAotICAgICAgICAgICIwLjAxMzU5NSwgMC4wMTM0NzEsIDAuMDEzMzIzLCAwLjAxMzM1OCwgMC4wMTM0MjUsIDAuMDEzNTQ0LCAwLjAxMzU5OCIsIFwKLSAgICAgICAgICAiMC4wMTM2MDQsIDAuMDEzNDg1LCAwLjAxMzMyLCAwLjAxMzM0NiwgMC4wMTM0MTUsIDAuMDEzNTM5LCAwLjAxMzU4MyIsIFwKLSAgICAgICAgICAiMC4wMTM1NDUsIDAuMDEzNDI1LCAwLjAxMzI3NiwgMC4wMTMzMDMsIDAuMDEzMzc1LCAwLjAxMzQ5NywgMC4wMTM1NSIsIFwKLSAgICAgICAgICAiMC4wMTM1MjUsIDAuMDEzMzk5LCAwLjAxMzI1MSwgMC4wMTMyODYsIDAuMDEzMzQ5LCAwLjAxMzQ2NCwgMC4wMTM1MjMiLCBcCi0gICAgICAgICAgIjAuMDEzNzIyLCAwLjAxMzU3OCwgMC4wMTMzNjgsIDAuMDEzMzY3LCAwLjAxMzQwNSwgMC4wMTM0OSwgMC4wMTM1NCIsIFwKLSAgICAgICAgICAiMC4wMTM2NjgsIDAuMDEzNDk1LCAwLjAxMzMxNCwgMC4wMTMzMiwgMC4wMTMzNjYsIDAuMDEzNDU0LCAwLjAxMzUwMyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxNDYsIDAuMDE0NDEyLCAwLjAxNDIyNiwgMC4wMTQyNjMsIDAuMDE0MzQsIDAuMDE0NDc1LCAwLjAxNDUzOSIsIFwKLSAgICAgICAgICAiMC4wMTQ0MDYsIDAuMDE0MjkxLCAwLjAxNDE1NiwgMC4wMTQxODksIDAuMDE0MjcsIDAuMDE0NDIsIDAuMDE0NDkiLCBcCi0gICAgICAgICAgIjAuMDE0MzY2LCAwLjAxNDI4OCwgMC4wMTQxMTgsIDAuMDE0MTUyLCAwLjAxNDIzOSwgMC4wMTQzOTEsIDAuMDE0NDYzIiwgXAotICAgICAgICAgICIwLjAxNDM0NCwgMC4wMTQyMjIsIDAuMDE0MDczLCAwLjAxNDExNCwgMC4wMTQyMDEsIDAuMDE0MzU2LCAwLjAxNDQzIiwgXAotICAgICAgICAgICIwLjAxNDI5NSwgMC4wMTQxNzUsIDAuMDE0MDM4LCAwLjAxNDA4MiwgMC4wMTQxNjksIDAuMDE0MzI2LCAwLjAxNDQwMiIsIFwKLSAgICAgICAgICAiMC4wMTQ0MjcsIDAuMDE0MzAyLCAwLjAxNDEyNywgMC4wMTQxNDEsIDAuMDE0MjA3LCAwLjAxNDMzOSwgMC4wMTQ0MDciLCBcCi0gICAgICAgICAgIjAuMDE0NjAyLCAwLjAxNDQ2MywgMC4wMTQyMzUsIDAuMDE0MjI3LCAwLjAxNDI2NSwgMC4wMTQzNzEsIDAuMDE0NDMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTM1NjcsIDAuMDEzNDU3LCAwLjAxMzI1NywgMC4wMTMyNjQsIDAuMDEzMjk1LCAwLjAxMzM1OCwgMC4wMTMzOSIsIFwKLSAgICAgICAgICAiMC4wMTM0MTQsIDAuMDEzMjkyLCAwLjAxMzEyMSwgMC4wMTMxNDYsIDAuMDEzMTg0LCAwLjAxMzI3NywgMC4wMTMzMTYiLCBcCi0gICAgICAgICAgIjAuMDEzNDIzLCAwLjAxMzMwNiwgMC4wMTMxMTgsIDAuMDEzMTI4LCAwLjAxMzE4MSwgMC4wMTMyNjQsIDAuMDEzMzA4IiwgXAotICAgICAgICAgICIwLjAxMzM4NiwgMC4wMTMyNCwgMC4wMTMwNzksIDAuMDEzMDkyLCAwLjAxMzEzNywgMC4wMTMyMzEsIDAuMDEzMjc1IiwgXAotICAgICAgICAgICIwLjAxMzMzNiwgMC4wMTMyMDcsIDAuMDEzMDQ3LCAwLjAxMzA2NiwgMC4wMTMxMTYsIDAuMDEzMjA4LCAwLjAxMzI1NiIsIFwKLSAgICAgICAgICAiMC4wMTM1MiwgMC4wMTMzNzUsIDAuMDEzMTUxLCAwLjAxMzEzOSwgMC4wMTMxNjMsIDAuMDEzMjM1LCAwLjAxMzI2OSIsIFwKLSAgICAgICAgICAiMC4wMTM0NTEsIDAuMDEzMjg2LCAwLjAxMzA5OCwgMC4wMTMwOTQsIDAuMDEzMTIzLCAwLjAxMzIwNSwgMC4wMTMyMzMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTQ3NDgsIDAuMDE0NjM3LCAwLjAxNDQ5NywgMC4wMTQ1MDgsIDAuMDE0NTczLCAwLjAxNDY5MywgMC4wMTQ3NSIsIFwKLSAgICAgICAgICAiMC4wMTQ3NzQsIDAuMDE0NzY0LCAwLjAxNDUxNiwgMC4wMTQ1MjksIDAuMDE0NTg1LCAwLjAxNDY5NywgMC4wMTQ3NTIiLCBcCi0gICAgICAgICAgIjAuMDE0NzQ5LCAwLjAxNDYyOSwgMC4wMTQ0NTcsIDAuMDE0NDg1LCAwLjAxNDU0NywgMC4wMTQ2NjcsIDAuMDE0NzI1IiwgXAotICAgICAgICAgICIwLjAxNDY4OSwgMC4wMTQ1NjIsIDAuMDE0Mzk3LCAwLjAxNDQyMSwgMC4wMTQ0OTIsIDAuMDE0NjIxLCAwLjAxNDY4NCIsIFwKLSAgICAgICAgICAiMC4wMTQ2MzMsIDAuMDE0NTEyLCAwLjAxNDM1NiwgMC4wMTQzODYsIDAuMDE0NDU3LCAwLjAxNDU5LCAwLjAxNDY1NCIsIFwKLSAgICAgICAgICAiMC4wMTQ3MTYsIDAuMDE0NTg3LCAwLjAxNDQxMSwgMC4wMTQ0MjIsIDAuMDE0NDc0LCAwLjAxNDU5MSwgMC4wMTQ2NSIsIFwKLSAgICAgICAgICAiMC4wMTQ5MjgsIDAuMDE0NzgsIDAuMDE0NTMxLCAwLjAxNDUwOCwgMC4wMTQ1MzYsIDAuMDE0NjI2LCAwLjAxNDY3NiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlMwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTYwMjMsIDAuMDE1ODg5LCAwLjAxNTcxNywgMC4wMTU3NDQsIDAuMDE1ODAzLCAwLjAxNTkxOSwgMC4wMTU5NzEiLCBcCi0gICAgICAgICAgIjAuMDE1OTQyLCAwLjAxNTg4OCwgMC4wMTU2OTcsIDAuMDE1NzI2LCAwLjAxNTc4OCwgMC4wMTU4OTcsIDAuMDE1OTQ3IiwgXAotICAgICAgICAgICIwLjAxNjAyMywgMC4wMTU4ODMsIDAuMDE1NzAxLCAwLjAxNTczMSwgMC4wMTU3OTUsIDAuMDE1OTEsIDAuMDE1OTU4IiwgXAotICAgICAgICAgICIwLjAxNTk0NSwgMC4wMTU4MTQsIDAuMDE1NjczLCAwLjAxNTcxNCwgMC4wMTU3ODUsIDAuMDE1OTA1LCAwLjAxNTk2IiwgXAotICAgICAgICAgICIwLjAxNTkzNywgMC4wMTU4MDksIDAuMDE1NjgyLCAwLjAxNTcxMywgMC4wMTU3OTIsIDAuMDE1OTI1LCAwLjAxNTk4MiIsIFwKLSAgICAgICAgICAiMC4wMTYwNTksIDAuMDE1OTI3LCAwLjAxNTc3NCwgMC4wMTU4MDMsIDAuMDE1ODY2LCAwLjAxNTk4MSwgMC4wMTYwNDIiLCBcCi0gICAgICAgICAgIjAuMDE2MDYzLCAwLjAxNTkxMywgMC4wMTU3NjYsIDAuMDE1ODE4LCAwLjAxNTg3NSwgMC4wMTU5OTksIDAuMDE2MDU1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE0MDMsIDAuMDEzOTA4LCAwLjAxMzc1MywgMC4wMTM3ODgsIDAuMDEzODcsIDAuMDE0MDE0LCAwLjAxNDA4MSIsIFwKLSAgICAgICAgICAiMC4wMTQxNDUsIDAuMDE0MDE2LCAwLjAxMzgyNiwgMC4wMTM4NDcsIDAuMDEzOTEsIDAuMDE0MDM0LCAwLjAxNDA5NCIsIFwKLSAgICAgICAgICAiMC4wMTQxNjksIDAuMDE0MDI2LCAwLjAxMzgxNywgMC4wMTM4NDQsIDAuMDEzOTEyLCAwLjAxNDAzOCwgMC4wMTQwOTkiLCBcCi0gICAgICAgICAgIjAuMDE0MTE3LCAwLjAxMzk4NCwgMC4wMTM3OTIsIDAuMDEzODI5LCAwLjAxMzkwMywgMC4wMTQwMzcsIDAuMDE0MSIsIFwKLSAgICAgICAgICAiMC4wMTQwNTEsIDAuMDEzOTI3LCAwLjAxMzc4MywgMC4wMTM4MTYsIDAuMDEzODk4LCAwLjAxNDA0LCAwLjAxNDEwNCIsIFwKLSAgICAgICAgICAiMC4wMTQwNzgsIDAuMDEzOTk2LCAwLjAxMzg0NiwgMC4wMTM4ODMsIDAuMDEzOTQxLCAwLjAxNDA4NCwgMC4wMTQxNiIsIFwKLSAgICAgICAgICAiMC4wMTQxNTcsIDAuMDE0MDM1LCAwLjAxMzg3NywgMC4wMTM5MTksIDAuMDEzOTk4LCAwLjAxNDEzMywgMC4wMTQxOTkiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IENMS1hPUjJYMSAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKENMS1hPUjJYMSkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjE0MzgwNTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjM1OTY2OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYzNTU4ODsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2MzU5NjY7Ci0gIH0KLSAgcGluKEIpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTMwMjM5OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTMwMTg0OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTMwMjM5OwotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMjU5ODk2OwotICAgIGZ1bmN0aW9uIDogIihBXkIpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDM0MTUsIDAuMTI4MjU0LCAwLjI2NzM2NSwgMC4zOTAxMTMsIDAuNTUzNjgxLCAwLjg4MTE1NCwgMS4wODU0MyIsIFwKLSAgICAgICAgICAiMC4xMTM0NzQsIDAuMTM4MzI3LCAwLjI3NzQyLCAwLjQwMDE3NiwgMC41NjM3NDIsIDAuODkxMDMsIDEuMDk1NDgiLCBcCi0gICAgICAgICAgIjAuMTI2MDkyLCAwLjE1MDk2NiwgMC4yOTAwNTgsIDAuNDEyNzY1LCAwLjU3NjM3OSwgMC45MDM3MiwgMS4xMDgzNCIsIFwKLSAgICAgICAgICAiMC4xMzg0OSwgMC4xNjMzNDgsIDAuMzAyNDg4LCAwLjQyNTE1OSwgMC41ODg4MDcsIDAuOTE2MDM3LCAxLjEyMDYyIiwgXAotICAgICAgICAgICIwLjE0OTk4MiwgMC4xNzQ4NTEsIDAuMzEzOTYsIDAuNDM2NjYxLCAwLjYwMDI3MiwgMC45Mjc0MjMsIDEuMTMyIiwgXAotICAgICAgICAgICIwLjE2NjcxMiwgMC4xOTE2MzEsIDAuMzMwNzU0LCAwLjQ1MzQ4MiwgMC42MTcwODgsIDAuOTQ0MzQ0LCAxLjE0ODk0IiwgXAotICAgICAgICAgICIwLjE4LCAwLjIwNDk4OSwgMC4zNDQwODYsIDAuNDY2ODEyLCAwLjYzMDUwMiwgMC45NTc5NzMsIDEuMTYyMjEiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk2OTA2LCAwLjE0NTY1NCwgMC40Mjk0MzQsIDAuNjgwNDU4LCAxLjAxNjk4LCAxLjY5MDQsIDIuMTEwNjMiLCBcCi0gICAgICAgICAgIjAuMDk2OTI3LCAwLjE0NTY2MywgMC40MjkxNTcsIDAuNjgwNTI1LCAxLjAxNjk4LCAxLjY4OTU2LCAyLjExMDQiLCBcCi0gICAgICAgICAgIjAuMDk2OTE3LCAwLjE0NTY3MywgMC40MjkyODQsIDAuNjgxOTg5LCAxLjAxNjk4LCAxLjY5MDQ2LCAyLjExMTEiLCBcCi0gICAgICAgICAgIjAuMDk2OTQ3LCAwLjE0NTY3MywgMC40Mjk0MzYsIDAuNjgxOTQ5LCAxLjAxNjk5LCAxLjY4OTc2LCAyLjExMTI4IiwgXAotICAgICAgICAgICIwLjA5NzE4LCAwLjE0NTgzNywgMC40MjkyMjEsIDAuNjgxODU3LCAxLjAxODY1LCAxLjY5MDAyLCAyLjExNDU3IiwgXAotICAgICAgICAgICIwLjA5NzkyOCwgMC4xNDYyODUsIDAuNDI5MzI3LCAwLjY4MjA0OCwgMS4wMTY5OCwgMS42ODk3MywgMi4xMTEyMSIsIFwKLSAgICAgICAgICAiMC4wOTg4NDYsIDAuMTQ3MDAyLCAwLjQyOTM4NCwgMC42ODIwNjcsIDEuMDE3MjQsIDEuNjkwNDQsIDIuMTExMjUiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTA2NzYxLCAwLjEzMjA3MSwgMC4yNzI0NDgsIDAuMzk2MTEsIDAuNTYxMjI0LCAwLjg5MTE2NCwgMS4wOTcyMSIsIFwKLSAgICAgICAgICAiMC4xMTY0ODEsIDAuMTQxNzY1LCAwLjI4MjEzNiwgMC40MDU4MDMsIDAuNTcwOTI5LCAwLjkwMDg5NSwgMS4xMDY4OCIsIFwKLSAgICAgICAgICAiMC4xMjg2MzksIDAuMTUzOTU2LCAwLjI5NDMzOSwgMC40MTgwNDQsIDAuNTgyOTU1LCAwLjkxMjk3NSwgMS4xMTkiLCBcCi0gICAgICAgICAgIjAuMTQwMTgsIDAuMTY1NTA3LCAwLjMwNTg5NywgMC40Mjk2MTIsIDAuNTk0NDg1LCAwLjkyNDYyNywgMS4xMzA1OSIsIFwKLSAgICAgICAgICAiMC4xNTA5MDIsIDAuMTc2MjE3LCAwLjMxNjYxNywgMC40NDAzNDIsIDAuNjA1MjU1LCAwLjkzNTExNywgMS4xNDEzNiIsIFwKLSAgICAgICAgICAiMC4xNjYzMTgsIDAuMTkxNjY0LCAwLjMzMjA5LCAwLjQ1NTc2NywgMC42MjA4MzMsIDAuOTUwOTY2LCAxLjE1NjgxIiwgXAotICAgICAgICAgICIwLjE3ODI5OCwgMC4yMDM3MzMsIDAuMzQ0MTg1LCAwLjQ2Nzk2NiwgMC42MzI3ODcsIDAuOTYzMTE1LCAxLjE2OTIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk2ODQ5LCAwLjE0NDc3OSwgMC40MjMzNTQsIDAuNjcyODQ4LCAxLjAwMzAyLCAxLjY2NjQxLCAyLjA4MjE3IiwgXAotICAgICAgICAgICIwLjA5Njg1NSwgMC4xNDQ3NjcsIDAuNDIzMzAyLCAwLjY3MjY1LCAxLjAwMzA1LCAxLjY2NjMzLCAyLjA4MTk4IiwgXAotICAgICAgICAgICIwLjA5Njg1MiwgMC4xNDQ2OSwgMC40MjMyMDYsIDAuNjczMDY4LCAxLjAwNTY3LCAxLjY2ODU1LCAyLjA3OTkyIiwgXAotICAgICAgICAgICIwLjA5NjkwMiwgMC4xNDQ3MTIsIDAuNDIzMTcxLCAwLjY3MzA4OCwgMS4wMDU1LCAxLjY2NjQ0LCAyLjA3OTc0IiwgXAotICAgICAgICAgICIwLjA5NzE2OCwgMC4xNDQ4OTMsIDAuNDIzNjU2LCAwLjY3MzExNCwgMS4wMDMzNCwgMS42NjU2MywgMi4wODE5OSIsIFwKLSAgICAgICAgICAiMC4wOTc5NywgMC4xNDU0NDgsIDAuNDIzNTQsIDAuNjcyODYsIDEuMDAyODgsIDEuNjY2LCAyLjA3OTY1IiwgXAotICAgICAgICAgICIwLjA5ODcyMSwgMC4xNDYwOTIsIDAuNDIzNTk4LCAwLjY3MTE5NywgMS4wMDUxNSwgMS42NjU4NCwgMi4wODA5NCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTU3MTYsIDAuMTQwNTc2LCAwLjI3OTgwOCwgMC40MDI1NDUsIDAuNTY2MTExLCAwLjg5MzI2MiwgMS4wOTc2MSIsIFwKLSAgICAgICAgICAiMC4xMjU1MDYsIDAuMTUwMzQ0LCAwLjI4OTY3MywgMC40MTIzNzQsIDAuNTc1OTMzLCAwLjkwMzA3LCAxLjEwNzUiLCBcCi0gICAgICAgICAgIjAuMTM2NjgsIDAuMTYxNTEsIDAuMzAwODExLCAwLjQyMzUzNiwgMC41ODY5NzUsIDAuOTE0Mjc4LCAxLjExODY4IiwgXAotICAgICAgICAgICIwLjE0NTY3NSwgMC4xNzA1MDYsIDAuMzA5ODIsIDAuNDMyNDM2LCAwLjU5NjExMywgMC45MjMyODIsIDEuMTI3NjkiLCBcCi0gICAgICAgICAgIjAuMTUzNTY3LCAwLjE3ODM3MiwgMC4zMTc2NjksIDAuNDQwMzM4LCAwLjYwMzkyLCAwLjkzMTAxNCwgMS4xMzU0OSIsIFwKLSAgICAgICAgICAiMC4xNjM5OTEsIDAuMTg4ODY3LCAwLjMyODE0LCAwLjQ1MDg5MiwgMC42MTQ0NjMsIDAuOTQxNTcsIDEuMTQ1OTMiLCBcCi0gICAgICAgICAgIjAuMTcxODAxLCAwLjE5NjY0OSwgMC4zMzU5NDEsIDAuNDU4Njc2LCAwLjYyMjI1OCwgMC45NDkzNDMsIDEuMTUzNzUiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk1ODYyLCAwLjE0NDkyMywgMC40Mjk0NTYsIDAuNjgxMTc1LCAxLjAxNzk5LCAxLjY5MDMsIDIuMTE0NTMiLCBcCi0gICAgICAgICAgIjAuMDk1ODc1LCAwLjE0NDkxNiwgMC40Mjg2MywgMC42ODIwNzQsIDEuMDE4MDMsIDEuNjg5OTgsIDIuMTE0ODIiLCBcCi0gICAgICAgICAgIjAuMDk1OTI1LCAwLjE0NDkyNCwgMC40Mjg4NzgsIDAuNjgyMDM0LCAxLjAxNzYzLCAxLjY5MDgsIDIuMTEyMSIsIFwKLSAgICAgICAgICAiMC4wOTU5MjYsIDAuMTQ0OTI4LCAwLjQyODE3NSwgMC42ODExOTYsIDEuMDE3ODcsIDEuNjkwNzUsIDIuMTEyMDgiLCBcCi0gICAgICAgICAgIjAuMDk1OTg0LCAwLjE0NDk0NSwgMC40Mjg4OCwgMC42ODE5MzgsIDEuMDE5MDgsIDEuNjkxMTUsIDIuMTEyMDYiLCBcCi0gICAgICAgICAgIjAuMDk1OTQ2LCAwLjE0NDk1MiwgMC40MjkzNSwgMC42ODE5NDUsIDEuMDE3NzYsIDEuNjkxMTMsIDIuMTEzODciLCBcCi0gICAgICAgICAgIjAuMDk1ODc0LCAwLjE0NDk3OSwgMC40Mjg2MzcsIDAuNjgxOTUsIDEuMDE3NzgsIDEuNjkzMSwgMi4xMTIxMSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTkxMzMsIDAuMTQ0MjksIDAuMjg0NzM1LCAwLjQwODQ3MywgMC41NzMzNTQsIDAuOTAzMTEsIDEuMTA5MjIiLCBcCi0gICAgICAgICAgIjAuMTI5Mjk2LCAwLjE1NDQ4MSwgMC4yOTQ5MjgsIDAuNDE4Njc3LCAwLjU4MzU3LCAwLjkxMzM0NSwgMS4xMTkzOSIsIFwKLSAgICAgICAgICAiMC4xNDExNDUsIDAuMTY2MzI2LCAwLjMwNjc1MiwgMC40MzA0OTUsIDAuNTk1MzczLCAwLjkyNTEyNSwgMS4xMzEyMiIsIFwKLSAgICAgICAgICAiMC4xNTA4NTEsIDAuMTc2MDMxLCAwLjMxNjQ2NSwgMC40NDAyMTEsIDAuNjA1MTE1LCAwLjkzNDkzNywgMS4xNDA5MyIsIFwKLSAgICAgICAgICAiMC4xNTkzMzQsIDAuMTg0NTM0LCAwLjMyNDk3NCwgMC40NDg3MjcsIDAuNjEzNTg4LCAwLjk0MzMzOCwgMS4xNDk0NyIsIFwKLSAgICAgICAgICAiMC4xNzA4MzYsIDAuMTk2MDQxLCAwLjMzNjQ5MSwgMC40NjAyMzgsIDAuNjI1MTI5LCAwLjk1NDkxLCAxLjE2MDk1IiwgXAotICAgICAgICAgICIwLjE3OTYwNCwgMC4yMDQ4MDMsIDAuMzQ1MjQ3LCAwLjQ2OSwgMC42MzM4OSwgMC45NjM2NDgsIDEuMTY5NzEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk1NzE1LCAwLjE0MzQ4NCwgMC40MjMxMDQsIDAuNjcyNzczLCAxLjAwNTU0LCAxLjY2NDU5LCAyLjA4MzIzIiwgXAotICAgICAgICAgICIwLjA5NTY5MSwgMC4xNDM4NzIsIDAuNDIzNDI3LCAwLjY3MjY5NywgMS4wMDUzNSwgMS42NzA3MiwgMi4wODI1OSIsIFwKLSAgICAgICAgICAiMC4wOTU3MDYsIDAuMTQzNzkyLCAwLjQyMzA1OCwgMC42NzI3MSwgMS4wMDM1NSwgMS42NzAzNywgMi4wODI3NiIsIFwKLSAgICAgICAgICAiMC4wOTU2ODgsIDAuMTQzNzg0LCAwLjQyMzAyOCwgMC42NzI2NTYsIDEuMDA1MzQsIDEuNjcwNzUsIDIuMDgyNTYiLCBcCi0gICAgICAgICAgIjAuMDk1NzExLCAwLjE0Mzg4LCAwLjQyMzU3LCAwLjY3MjYxOSwgMS4wMDQ3NiwgMS42NjczOSwgMi4wODM3MiIsIFwKLSAgICAgICAgICAiMC4wOTU2OTUsIDAuMTQzNzc2LCAwLjQyMzEwNSwgMC42NzI2NjQsIDEuMDA1NCwgMS42NzA2OCwgMi4wODI0OSIsIFwKLSAgICAgICAgICAiMC4wOTU2OSwgMC4xNDM3NjgsIDAuNDIzNzc5LCAwLjY3MjY2OSwgMS4wMDU0MSwgMS42NjgzNywgMi4wODI1MyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTA3NzMsIDAuMTE1NTc5LCAwLjI1NDg2NCwgMC4zNzc1ODEsIDAuNTQxMTU5LCAwLjg2ODI5NCwgMS4wNzI3MiIsIFwKLSAgICAgICAgICAiMC4wOTk5OTEsIDAuMTI0ODA1LCAwLjI2NDA5NSwgMC4zODY4MTYsIDAuNTUwMzg5LCAwLjg3NzUxLCAxLjA4MTk0IiwgXAotICAgICAgICAgICIwLjExMTY4LCAwLjEzNjQ5NiwgMC4yNzU4MDMsIDAuMzk4NTM5LCAwLjU2MjEwNiwgMC44ODkyNDcsIDEuMDkzNjMiLCBcCi0gICAgICAgICAgIjAuMTIzMjM3LCAwLjE0ODA1NCwgMC4yODczODMsIDAuNDEwMTA1LCAwLjU3MzcyNiwgMC45MDA4MzgsIDEuMTA1MjYiLCBcCi0gICAgICAgICAgIjAuMTMzODIzLCAwLjE1ODY2LCAwLjI5Nzk1OSwgMC40MjA3MTMsIDAuNTg0MjgyLCAwLjkxMTM5NiwgMS4xMTU4NCIsIFwKLSAgICAgICAgICAiMC4xNDg4MDMsIDAuMTczNjg5LCAwLjMxMjk4OCwgMC40MzU3NjEsIDAuNTk5MzM2LCAwLjkyNjQ2NCwgMS4xMzA5MSIsIFwKLSAgICAgICAgICAiMC4xNjAzMzIsIDAuMTg1MTQ4LCAwLjMyNDQ1NywgMC40NDcyMDUsIDAuNjEwNzcsIDAuOTM3OTIzLCAxLjE0MjM1Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5NTg5NiwgMC4xNDQ5MDgsIDAuNDI4ODg4LCAwLjY4MjA2NiwgMS4wMTc4NCwgMS42OTM0NiwgMi4xMTIxNSIsIFwKLSAgICAgICAgICAiMC4wOTU4OTgsIDAuMTQ0OTAyLCAwLjQyODg4NywgMC42ODE5MzUsIDEuMDE3OCwgMS42OTMxNCwgMi4xMTIwNyIsIFwKLSAgICAgICAgICAiMC4wOTU5MjcsIDAuMTQ0ODk3LCAwLjQyOTQ0OSwgMC42ODExNjcsIDEuMDE3OTcsIDEuNjkxMjQsIDIuMTE0NjUiLCBcCi0gICAgICAgICAgIjAuMDk2MDYsIDAuMTQ1MDI3LCAwLjQyODg2MSwgMC42ODE5MjcsIDEuMDE3NTQsIDEuNjkwMjMsIDIuMTExOTciLCBcCi0gICAgICAgICAgIjAuMDk2NTg3LCAwLjE0NTM0NiwgMC40Mjg4NjMsIDAuNjgxOTU2LCAxLjAxNzgzLCAxLjY5MTE1LCAyLjExMTk0IiwgXAotICAgICAgICAgICIwLjA5NzY5MywgMC4xNDYwNTcsIDAuNDI5NTUxLCAwLjY4MjAzMSwgMS4wMTg5NywgMS42OTMxMywgMi4xMTEyNSIsIFwKLSAgICAgICAgICAiMC4wOTg3NTcsIDAuMTQ2Nzk2LCAwLjQyOTY1NSwgMC42ODEyODQsIDEuMDE4OTMsIDEuNjkwMDMsIDIuMTEyMDIiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDkwNTE3LCAwLjExNTgyNiwgMC4yNTYyMDgsIDAuMzc5OTM1LCAwLjU0NDk4OCwgMC44NzQ5MDksIDEuMDgwNzUiLCBcCi0gICAgICAgICAgIjAuMDk5NTM2LCAwLjEyNDgyOSwgMC4yNjUyMTYsIDAuMzg4OTY0LCAwLjU1NDAyNSwgMC44ODM5NywgMS4wOTAwMiIsIFwKLSAgICAgICAgICAiMC4xMTA4MzIsIDAuMTM2MTQ1LCAwLjI3NjU0MSwgMC40MDAyNzYsIDAuNTY1MzI3LCAwLjg5NTM2MywgMS4xMDE2NCIsIFwKLSAgICAgICAgICAiMC4xMjE3NTYsIDAuMTQ3MTA3LCAwLjI4NzQ4NCwgMC40MTEyMzEsIDAuNTc2Mjg1LCAwLjkwNjI1MywgMS4xMTIxMSIsIFwKLSAgICAgICAgICAiMC4xMzEzMzMsIDAuMTU2NzA0LCAwLjI5NzE2LCAwLjQyMDg3MywgMC41ODU5OCwgMC45MTYwMTIsIDEuMTIyMzIiLCBcCi0gICAgICAgICAgIjAuMTQ0NjM4LCAwLjE3MDEwMywgMC4zMTA1NTIsIDAuNDM0MjM3LCAwLjU5OTA2MywgMC45Mjk1MTYsIDEuMTM1NDUiLCBcCi0gICAgICAgICAgIjAuMTU0NSwgMC4xODAyMzksIDAuMzIwNzM2LCAwLjQ0NDMyMywgMC42MDkyMzUsIDAuOTM5MzA5LCAxLjE0NTU1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5NjYwMywgMC4xNDQ1MzMsIDAuNDIzNDM3LCAwLjY3MDkyNCwgMS4wMDI5MywgMS42NjY0NiwgMi4wODA1NiIsIFwKLSAgICAgICAgICAiMC4wOTY2MjEsIDAuMTQ0NjIyLCAwLjQyMzE0LCAwLjY3MDg5LCAxLjAwMjgzLCAxLjY2NjI1LCAyLjA4MjE4IiwgXAotICAgICAgICAgICIwLjA5NjU3MSwgMC4xNDQ2MDgsIDAuNDIzODA5LCAwLjY3MTAwNCwgMS4wMDMwMSwgMS42NjYxNiwgMi4wODA2NSIsIFwKLSAgICAgICAgICAiMC4wOTY3MzUsIDAuMTQ0Njk4LCAwLjQyMzEyNywgMC42NzA5MjEsIDEuMDAyOTQsIDEuNjY2NDMsIDIuMDgwNDQiLCBcCi0gICAgICAgICAgIjAuMDk3MTc1LCAwLjE0NDgyOSwgMC40MjM4OTYsIDAuNjcwOTE3LCAxLjAwMjg2LCAxLjY2NjExLCAyLjA4MDM5IiwgXAotICAgICAgICAgICIwLjA5ODExOSwgMC4xNDU2MjMsIDAuNDI0MjU5LCAwLjY3MDgsIDEuMDA0NzMsIDEuNjY1NjksIDIuMDgxMTMiLCBcCi0gICAgICAgICAgIjAuMDk4ODk3LCAwLjE0NjM0MSwgMC40MjMyNjUsIDAuNjcyOTkyLCAxLjAwNTM2LCAxLjY2NzU0LCAyLjA4MTE3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5MjMzNSwgMC4xMTcyMjcsIDAuMjU2MzgxLCAwLjM3OTA5MSwgMC41NDI3MDUsIDAuODcwMTY3LCAxLjA3NDg5IiwgXAotICAgICAgICAgICIwLjEwMjUwMSwgMC4xMjczODUsIDAuMjY2NTUsIDAuMzg5MjU1LCAwLjU1Mjg3MywgMC44ODAyNzEsIDEuMDg0NTYiLCBcCi0gICAgICAgICAgIjAuMTE0MzM1LCAwLjEzOTIxNiwgMC4yNzgzNjMsIDAuNDAxMDY3LCAwLjU2NDcxMywgMC44OTE4NTYsIDEuMDk2NDIiLCBcCi0gICAgICAgICAgIjAuMTIzMzAyLCAwLjE0ODE1OCwgMC4yODczMDcsIDAuNDEwMDc2LCAwLjU3MzY3NCwgMC45MDA5MTgsIDEuMTA1NDMiLCBcCi0gICAgICAgICAgIjAuMTMwNDc2LCAwLjE1NTM1NiwgMC4yOTQ1MDYsIDAuNDE3MjEsIDAuNTgwODI1LCAwLjkwODQwOSwgMS4xMTI0MiIsIFwKLSAgICAgICAgICAiMC4xNDAzNDgsIDAuMTY0OTY4LCAwLjMwNDA2MywgMC40MjY3OTgsIDAuNTkwNDIxLCAwLjkxNzc0NywgMS4xMjIxNSIsIFwKLSAgICAgICAgICAiMC4xNDcwODEsIDAuMTcxODc5LCAwLjMxMTAyNywgMC40MzM4MywgMC41OTcyOTUsIDAuOTI1MTAzLCAxLjEzMDA5Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5NjcxOCwgMC4xNDU1MTUsIDAuNDI5MTQ2LCAwLjY4MTk2OCwgMS4wMTkyNCwgMS42OTAzNiwgMi4xMTEyMyIsIFwKLSAgICAgICAgICAiMC4wOTY3MiwgMC4xNDU1MTQsIDAuNDI5MzU3LCAwLjY4MTk3NCwgMS4wMTY5OCwgMS42OTA0MSwgMi4xMTA2NyIsIFwKLSAgICAgICAgICAiMC4wOTY3MDYsIDAuMTQ1NTE2LCAwLjQyODc3OCwgMC42ODE5NTUsIDEuMDE4NjMsIDEuNjkwMDMsIDIuMTE0NjEiLCBcCi0gICAgICAgICAgIjAuMDk2NjkxLCAwLjE0NTUwOCwgMC40Mjg4MTEsIDAuNjgwNTE4LCAxLjAxNjk4LCAxLjY4OTczLCAyLjExMDE4IiwgXAotICAgICAgICAgICIwLjA5NjU3MSwgMC4xNDU0NjcsIDAuNDI4Nzg5LCAwLjY4MTg2MiwgMS4wMTkwNiwgMS42OTA0NCwgMi4xMTQxMyIsIFwKLSAgICAgICAgICAiMC4wOTY3MiwgMC4xNDUzMjYsIDAuNDI5MywgMC42ODE4MDcsIDEuMDE5MDMsIDEuNjkxMzMsIDIuMTE0MzMiLCBcCi0gICAgICAgICAgIjAuMDk2NTU4LCAwLjE0NTIyMSwgMC40MjgzOTksIDAuNjgwOTY0LCAxLjAxNjk3LCAxLjY5MDMyLCAyLjExMTg2Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwODgwNCwgMC4xMzM5ODksIDAuMjc0NDM1LCAwLjM5ODE3OSwgMC41NjMwNDQsIDAuODkyODE5LCAxLjA5ODg5IiwgXAotICAgICAgICAgICIwLjExODk5NSwgMC4xNDQxNjEsIDAuMjg0NjA2LCAwLjQwODM0OSwgMC41NzMyNDgsIDAuOTAyOTc4LCAxLjEwOTA3IiwgXAotICAgICAgICAgICIwLjEyOTcyNiwgMC4xNTQ4OTksIDAuMjk1MzQ1LCAwLjQxOTA4OCwgMC41ODM5OTEsIDAuOTEzNzE2LCAxLjExOTgyIiwgXAotICAgICAgICAgICIwLjEzODIyMSwgMC4xNjM0MTQsIDAuMzAzODY0LCAwLjQyNzU5NiwgMC41OTI0NzEsIDAuOTIyMjA5LCAxLjEyODMzIiwgXAotICAgICAgICAgICIwLjE0NTMwMiwgMC4xNzA1NDIsIDAuMzEwOTk3LCAwLjQzNDcwMywgMC41OTk2MTQsIDAuOTI5Mjg0LCAxLjEzNTQ0IiwgXAotICAgICAgICAgICIwLjE1NDg0MiwgMC4xODAxMDUsIDAuMzIwNzM5LCAwLjQ0NDQ0OCwgMC42MDkxOTYsIDAuOTM4OTcxLCAxLjE0NTI3IiwgXAotICAgICAgICAgICIwLjE2MjM0OSwgMC4xODc2NzgsIDAuMzI4MjE2LCAwLjQ1MTkzNCwgMC42MTY3NDgsIDAuOTQ2NDk1LCAxLjE1MjcxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5NTY5MSwgMC4xNDM4ODUsIDAuNDIzMDY0LCAwLjY3MjgyOSwgMS4wMDUsIDEuNjcwNywgMi4wODI2NCIsIFwKLSAgICAgICAgICAiMC4wOTU3MDcsIDAuMTQzODY4LCAwLjQyMzA0OSwgMC42NzI2ODYsIDEuMDAzMDEsIDEuNjY3NTMsIDIuMDgyNzUiLCBcCi0gICAgICAgICAgIjAuMDk1NzA1LCAwLjE0Mzg2LCAwLjQyMzA2MywgMC42NzI2ODgsIDEuMDA1MjgsIDEuNjY5MywgMi4wODI5NSIsIFwKLSAgICAgICAgICAiMC4wOTU2NzMsIDAuMTQzODI1LCAwLjQyMzA2OSwgMC42NzI2NDIsIDEuMDA1MiwgMS42NjcyOCwgMi4wODI5MSIsIFwKLSAgICAgICAgICAiMC4wOTU3OTUsIDAuMTQzODgzLCAwLjQyMzEwNSwgMC42NzI3NDYsIDEuMDA1MjcsIDEuNjY3MywgMi4wODIxMiIsIFwKLSAgICAgICAgICAiMC4wOTU4MDEsIDAuMTQzODkyLCAwLjQyMzQwMiwgMC42NzE4MDUsIDEuMDAzNTgsIDEuNjY4MzEsIDIuMDg2MjIiLCBcCi0gICAgICAgICAgIjAuMDk1NjM1LCAwLjE0Mzg3LCAwLjQyMjksIDAuNjcxOTY1LCAxLjAwNDI2LCAxLjY2NzcsIDIuMDg1MzEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDM2NzEsIDAuMDAzNjgsIDAuMDAzNjk0LCAwLjAwMzY5NywgMC4wMDM2OTksIDAuMDAzNzAxLCAwLjAwMzcwMSIsIFwKLSAgICAgICAgICAiMC4wMDM2NDYsIDAuMDAzNjU1LCAwLjAwMzY2OSwgMC4wMDM2NzMsIDAuMDAzNjc0LCAwLjAwMzY3NiwgMC4wMDM2NzciLCBcCi0gICAgICAgICAgIjAuMDAzNjQyLCAwLjAwMzY1MSwgMC4wMDM2NjYsIDAuMDAzNjY5LCAwLjAwMzY3MSwgMC4wMDM2NzIsIDAuMDAzNjcyIiwgXAotICAgICAgICAgICIwLjAwMzY0OCwgMC4wMDM2NTgsIDAuMDAzNjcyLCAwLjAwMzY3NSwgMC4wMDM2NzcsIDAuMDAzNjc5LCAwLjAwMzY3OSIsIFwKLSAgICAgICAgICAiMC4wMDM2NDgsIDAuMDAzNjU3LCAwLjAwMzY3MiwgMC4wMDM2NzIsIDAuMDAzNjc1LCAwLjAwMzY3NywgMC4wMDM2NzciLCBcCi0gICAgICAgICAgIjAuMDAzNjY0LCAwLjAwMzY3NiwgMC4wMDM2OSwgMC4wMDM2OTIsIDAuMDAzNjk2LCAwLjAwMzY5NiwgMC4wMDM2OTUiLCBcCi0gICAgICAgICAgIjAuMDAzNjg3LCAwLjAwMzY5NSwgMC4wMDM3MDcsIDAuMDAzNzEyLCAwLjAwMzcxNCwgMC4wMDM3MTUsIDAuMDAzNzE0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzNDA2LCAwLjAwMzQxOCwgMC4wMDM0MzUsIDAuMDAzNDM5LCAwLjAwMzQ0MSwgMC4wMDM0NDMsIDAuMDAzNDQzIiwgXAotICAgICAgICAgICIwLjAwMzM3NiwgMC4wMDMzODgsIDAuMDAzNDA2LCAwLjAwMzQxLCAwLjAwMzQxMywgMC4wMDM0MTQsIDAuMDAzNDE1IiwgXAotICAgICAgICAgICIwLjAwMzM3MiwgMC4wMDMzODQsIDAuMDAzNDAyLCAwLjAwMzQwNiwgMC4wMDM0MDgsIDAuMDAzNDEsIDAuMDAzNDExIiwgXAotICAgICAgICAgICIwLjAwMzM4MSwgMC4wMDMzOTMsIDAuMDAzNDExLCAwLjAwMzQxNSwgMC4wMDM0MTcsIDAuMDAzNDE5LCAwLjAwMzQyIiwgXAotICAgICAgICAgICIwLjAwMzM4NSwgMC4wMDMzOTcsIDAuMDAzNDE1LCAwLjAwMzQxOSwgMC4wMDM0MjEsIDAuMDAzNDIzLCAwLjAwMzQyNCIsIFwKLSAgICAgICAgICAiMC4wMDM0MDQsIDAuMDAzNDE2LCAwLjAwMzQzMywgMC4wMDM0MzcsIDAuMDAzNDQsIDAuMDAzNDQyLCAwLjAwMzQ0MyIsIFwKLSAgICAgICAgICAiMC4wMDM0MjUsIDAuMDAzNDM2LCAwLjAwMzQ1NCwgMC4wMDM0NTksIDAuMDAzNDYyLCAwLjAwMzQ2NCwgMC4wMDM0NjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDMzMTYsIDAuMDAzMzIzLCAwLjAwMzMzMywgMC4wMDMzMzYsIDAuMDAzMzM3LCAwLjAwMzMzOSwgMC4wMDMzMzkiLCBcCi0gICAgICAgICAgIjAuMDAzMzMxLCAwLjAwMzMzNywgMC4wMDMzNDgsIDAuMDAzMzUsIDAuMDAzMzUyLCAwLjAwMzM1MywgMC4wMDMzNTMiLCBcCi0gICAgICAgICAgIjAuMDAzMzc2LCAwLjAwMzM4MywgMC4wMDMzOTMsIDAuMDAzMzk1LCAwLjAwMzM5NiwgMC4wMDMzOTgsIDAuMDAzMzk4IiwgXAotICAgICAgICAgICIwLjAwMzQxLCAwLjAwMzQxNiwgMC4wMDM0MjUsIDAuMDAzNDI4LCAwLjAwMzQyOSwgMC4wMDM0MywgMC4wMDM0MyIsIFwKLSAgICAgICAgICAiMC4wMDM0NTMsIDAuMDAzNDU4LCAwLjAwMzQ2OCwgMC4wMDM0NywgMC4wMDM0NzIsIDAuMDAzNDczLCAwLjAwMzQ3MyIsIFwKLSAgICAgICAgICAiMC4wMDM1MjEsIDAuMDAzNTIyLCAwLjAwMzUyMiwgMC4wMDM1MzEsIDAuMDAzNTM0LCAwLjAwMzUyNywgMC4wMDM1MjciLCBcCi0gICAgICAgICAgIjAuMDAzNTYsIDAuMDAzNTY1LCAwLjAwMzU3MywgMC4wMDM1ODcsIDAuMDAzNTc2LCAwLjAwMzU4OSwgMC4wMDM1NzciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI3OTksIDAuMDAyODExLCAwLjAwMjgyOSwgMC4wMDI4MzMsIDAuMDAyODM1LCAwLjAwMjgzNywgMC4wMDI4MzciLCBcCi0gICAgICAgICAgIjAuMDAyNzgxLCAwLjAwMjc5MywgMC4wMDI4MSwgMC4wMDI4MTQsIDAuMDAyODE2LCAwLjAwMjgxOCwgMC4wMDI4MTgiLCBcCi0gICAgICAgICAgIjAuMDAyNzgsIDAuMDAyNzkyLCAwLjAwMjgwOSwgMC4wMDI4MTMsIDAuMDAyODE1LCAwLjAwMjgxNywgMC4wMDI4MTciLCBcCi0gICAgICAgICAgIjAuMDAyNzg4LCAwLjAwMjgsIDAuMDAyODE3LCAwLjAwMjgyLCAwLjAwMjgyMywgMC4wMDI4MjQsIDAuMDAyODI1IiwgXAotICAgICAgICAgICIwLjAwMjgsIDAuMDAyODEzLCAwLjAwMjgzMSwgMC4wMDI4MzQsIDAuMDAyODM3LCAwLjAwMjgzNywgMC4wMDI4MzkiLCBcCi0gICAgICAgICAgIjAuMDAyODIxLCAwLjAwMjgzMywgMC4wMDI4NTQsIDAuMDAyODU4LCAwLjAwMjg1NywgMC4wMDI4NTksIDAuMDAyODYyIiwgXAotICAgICAgICAgICIwLjAwMjg0NywgMC4wMDI4NTUsIDAuMDAyODczLCAwLjAwMjg3NywgMC4wMDI4ODQsIDAuMDAyODg2LCAwLjAwMjg4NyIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogQ0xLWE9SMlg0ICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoQ0xLWE9SMlg0KSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMjc4NTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNTkxMjMyOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDU5MTA1MzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA1OTEyMzI7Ci0gIH0KLSAgcGluKEIpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTQwMTAyOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTQwMDM4OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTQwMTAyOwotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuOTk1NDkyOwotICAgIGZ1bmN0aW9uIDogIihBXkIpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwMDYwNSwgMC4xODM2OTUsIDAuMjU2NTQ5LCAwLjMwODE5NCwgMC4zOTA4MSwgMC40NjMwOCwgMC41NjY0MDUiLCBcCi0gICAgICAgICAgIjAuMTEwNzksIDAuMTkzODQ5LCAwLjI2NjcxNCwgMC4zMTgzNiwgMC40MDA5NjgsIDAuNDczMjI3LCAwLjU3NjY0NSIsIFwKLSAgICAgICAgICAiMC4xMjM0MTIsIDAuMjA2NDc1LCAwLjI3OTM0NiwgMC4zMzA5OTgsIDAuNDEzNjA1LCAwLjQ4NTksIDAuNTg5MTE3IiwgXAotICAgICAgICAgICIwLjEzNjA3NSwgMC4yMTkxNTksIDAuMjkyMDI2LCAwLjM0MzY2OCwgMC40MjYzMDksIDAuNDk4NTYzLCAwLjYwMTg4IiwgXAotICAgICAgICAgICIwLjE0ODczNSwgMC4yMzE3NzEsIDAuMzA0NiwgMC4zNTYyODksIDAuNDM4OTAxLCAwLjUxMTE2MiwgMC42MTQ1OTUiLCBcCi0gICAgICAgICAgIjAuMTY3NzU1LCAwLjI1MDg4OCwgMC4zMjM3MTQsIDAuMzc1NDA1LCAwLjQ1ODAyLCAwLjUzMDI4MywgMC42MzM2MjIiLCBcCi0gICAgICAgICAgIjAuMTgzMzk5LCAwLjI2Njc5NiwgMC4zMzk2NTUsIDAuMzkxMzI2LCAwLjQ3Mzk1MiwgMC41NDYyMTYsIDAuNjQ5NTM1Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQ3NTcyLCAwLjE4OTIwNSwgMC4zMzQ1MTQsIDAuNDQwMTAzLCAwLjYwOTMxNywgMC43NTkwMjcsIDAuOTcxMDg2IiwgXAotICAgICAgICAgICIwLjA0NzQ4NywgMC4xODkyMDYsIDAuMzM0NTAzLCAwLjQzOTg0OSwgMC42MDk4NTcsIDAuNzU4OTgxLCAwLjk3MDcyMiIsIFwKLSAgICAgICAgICAiMC4wNDc1NjYsIDAuMTg5MjA2LCAwLjMzNDUwNCwgMC40Mzk4MzUsIDAuNjA5ODU1LCAwLjc1OTMwMywgMC45NzI3OTkiLCBcCi0gICAgICAgICAgIjAuMDQ3NTM4LCAwLjE4OTIsIDAuMzM0NTEzLCAwLjQ0MDA3NiwgMC42MDkwNzcsIDAuNzU5MDE3LCAwLjk3MTE0NiIsIFwKLSAgICAgICAgICAiMC4wNDc0NjYsIDAuMTg5MTk0LCAwLjMzNDQyOCwgMC40Mzk4NiwgMC42MDk4NzEsIDAuNzU4OTkzLCAwLjk3MDkwMiIsIFwKLSAgICAgICAgICAiMC4wNDgyNDgsIDAuMTg5MzMyLCAwLjMzNDQ4MiwgMC40Mzk4NjMsIDAuNjA5ODQ4LCAwLjc1OTAxOCwgMC45NzEyNSIsIFwKLSAgICAgICAgICAiMC4wNDkwMjMsIDAuMTg5NjI2LCAwLjMzNDcwNywgMC40Mzk4OTUsIDAuNjA5ODc5LCAwLjc1ODk5MywgMC45NzEyMjQiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDU0MzEsIDAuMTkwOTkxLCAwLjI2NTI1MywgMC4zMTc3NSwgMC40MDE2MjMsIDAuNDc0OTc2LCAwLjU3OTgwMyIsIFwKLSAgICAgICAgICAiMC4xMTUwNjMsIDAuMjAwNzUzLCAwLjI3NTAxNSwgMC4zMjc1MjgsIDAuNDExMzcxLCAwLjQ4NDc0OSwgMC41ODk2MTkiLCBcCi0gICAgICAgICAgIjAuMTI3MzI5LCAwLjIxMjk3NCwgMC4yODcyMzksIDAuMzM5NzM5LCAwLjQyMzU5OSwgMC40OTY5ODYsIDAuNjAxNzg2IiwgXAotICAgICAgICAgICIwLjEzOTU2NCwgMC4yMjUxMTksIDAuMjk5MzgsIDAuMzUxODg4LCAwLjQzNTc2MSwgMC41MDkxMTgsIDAuNjEzOTU4IiwgXAotICAgICAgICAgICIwLjE1MTMzOCwgMC4yMzY4ODIsIDAuMzExMTU2LCAwLjM2MzY1NSwgMC40NDc1NzIsIDAuNTIwODk4LCAwLjYyNTczMiIsIFwKLSAgICAgICAgICAiMC4xNjkyMzcsIDAuMjU0OTAzLCAwLjMyOTE3NywgMC4zODE2NzgsIDAuNDY1NTk0LCAwLjUzODkyNiwgMC42NDM3NTYiLCBcCi0gICAgICAgICAgIjAuMTgzOSwgMC4yNjk3OTMsIDAuMzQ0MDU5LCAwLjM5NjU3OCwgMC40ODA0MjYsIDAuNTUzODU2LCAwLjY1ODU4MiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0ODkyNCwgMC4xODk5OTUsIDAuMzMzODg2LCAwLjQzODI4NCwgMC42MDc0NDksIDAuNzU0Nzk0LCAwLjk2NjE3IiwgXAotICAgICAgICAgICIwLjA0ODgxOCwgMC4xOTAwNDksIDAuMzMzODc2LCAwLjQzODg1NSwgMC42MDY0ODQsIDAuNzU0MTk5LCAwLjk2NTQyOCIsIFwKLSAgICAgICAgICAiMC4wNDg4NTIsIDAuMTkwMDUzLCAwLjMzMzg4MywgMC40MzgzMTUsIDAuNjA2NDg1LCAwLjc1NTU1NiwgMC45NjY0NDQiLCBcCi0gICAgICAgICAgIjAuMDQ4OTEyLCAwLjE4OTk5OSwgMC4zMzM4OSwgMC40Mzg5NzEsIDAuNjA3NDM1LCAwLjc1NDA2LCAwLjk2NTMzNCIsIFwKLSAgICAgICAgICAiMC4wNDg5MjksIDAuMTkwMDA1LCAwLjMzMzg5MSwgMC40MzgxNjQsIDAuNjA1NjE0LCAwLjc1NDY3LCAwLjk2NTc4OCIsIFwKLSAgICAgICAgICAiMC4wNDk1MzYsIDAuMTkwMjI0LCAwLjMzMzk0NSwgMC40MzgxNzMsIDAuNjA3NjMyLCAwLjc1NDkwNSwgMC45NjYyNTYiLCBcCi0gICAgICAgICAgIjAuMDUwMzQ1LCAwLjE5MDQ1OCwgMC4zMzQxMjEsIDAuNDM4MDQ5LCAwLjYwNjQzNywgMC43NTM2MTIsIDAuOTY3NDU2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTA2NzU1LCAwLjE4NjI5NCwgMC4yNTg3ODYsIDAuMzEwNDksIDAuMzkzMTA1LCAwLjQ2NTM5NiwgMC41Njg3MjkiLCBcCi0gICAgICAgICAgIjAuMTE2NTM4LCAwLjE5NjA2MiwgMC4yNjg2MzQsIDAuMzIwMzA1LCAwLjQwMjk1MiwgMC40NzUzNTUsIDAuNTc4NTIzIiwgXAotICAgICAgICAgICIwLjEyODM2LCAwLjIwNzg5MiwgMC4yODA0NjMsIDAuMzMyMTM0LCAwLjQxNDc3OSwgMC40ODcxODcsIDAuNTkwMzU0IiwgXAotICAgICAgICAgICIwLjEzODMyNCwgMC4yMTc5MjgsIDAuMjkwNDE1LCAwLjM0MjA5OCwgMC40MjQ3NTQsIDAuNDk3MDY5LCAwLjYwMDMxNSIsIFwKLSAgICAgICAgICAiMC4xNDY4NTQsIDAuMjI2MzUxLCAwLjI5ODkwMywgMC4zNTA1ODMsIDAuNDMzMjIsIDAuNTA1NTY0LCAwLjYwODgxMiIsIFwKLSAgICAgICAgICAiMC4xNTg4MzgsIDAuMjM4MzAyLCAwLjMxMDkwNiwgMC4zNjI1MiwgMC40NDUxNjQsIDAuNTE3NTA3LCAwLjYyMDgwMyIsIFwKLSAgICAgICAgICAiMC4xNjc1ODUsIDAuMjQ3MTk1LCAwLjMxOTc2MiwgMC4zNzE0MzgsIDAuNDU0MDgyLCAwLjUyNjQxNSwgMC42Mjk2NzIiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDMzNjgsIDAuMTg0OTQ2LCAwLjMzMTc2NiwgMC40MzgyNjMsIDAuNjA3OSwgMC43NTgyMTIsIDAuOTcyMTQ3IiwgXAotICAgICAgICAgICIwLjA0MzMzNCwgMC4xODUwNiwgMC4zMzE3NTUsIDAuNDM4MDc2LCAwLjYwNzkxNCwgMC43NTY4OTgsIDAuOTcyMDg4IiwgXAotICAgICAgICAgICIwLjA0MzI2MywgMC4xODUwOTEsIDAuMzMxNzUxLCAwLjQzODA2NywgMC42MDc5MDQsIDAuNzU2ODgyLCAwLjk3MjA3MyIsIFwKLSAgICAgICAgICAiMC4wNDMzMDUsIDAuMTg0OTExLCAwLjMzMTgyOSwgMC40Mzc3NDcsIDAuNjA4NzYsIDAuNzU4MjY0LCAwLjk3MDIzMiIsIFwKLSAgICAgICAgICAiMC4wNDMyMiwgMC4xODQ5OTUsIDAuMzMyMDI5LCAwLjQzODA2OSwgMC42MDg1MjgsIDAuNzU2OTk1LCAwLjk3MTk1NyIsIFwKLSAgICAgICAgICAiMC4wNDMyMDQsIDAuMTg1MTI2LCAwLjMzMTc0OSwgMC40MzgwMjQsIDAuNjA3ODI2LCAwLjc1NzA1OCwgMC45NzE5NDciLCBcCi0gICAgICAgICAgIjAuMDQzMzMzLCAwLjE4NTA2NiwgMC4zMzIwMzIsIDAuNDM4MDg1LCAwLjYwNzg0LCAwLjc1Njg2NCwgMC45NzE5MzciKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTA1OTUsIDAuMTkyMzY4LCAwLjI2NjE1NiwgMC4zMTg2MTEsIDAuNDAyNDkzLCAwLjQ3NTkwNiwgMC41ODA3MjMiLCBcCi0gICAgICAgICAgIjAuMTIwODM4LCAwLjIwMjYxNCwgMC4yNzY0MDcsIDAuMzI4ODY0LCAwLjQxMjc0NiwgMC40ODYxNTQsIDAuNTkwOTc4IiwgXAotICAgICAgICAgICIwLjEzMzI0OSwgMC4yMTQ5NDcsIDAuMjg4Njc2LCAwLjM0MTE0OCwgMC40MjUwMiwgMC40OTg0MjYsIDAuNjAzMTk0IiwgXAotICAgICAgICAgICIwLjE0MzkzLCAwLjIyNTYzMSwgMC4yOTk0MjcsIDAuMzUxOTAyLCAwLjQzNTc2NywgMC41MDkxODIsIDAuNjEzOTQ3IiwgXAotICAgICAgICAgICIwLjE1MzE4MSwgMC4yMzQ4MzUsIDAuMzA4NjEzLCAwLjM2MTA3MiwgMC40NDQ5NTgsIDAuNTE4MzU1LCAwLjYyMzE5NyIsIFwKLSAgICAgICAgICAiMC4xNjU3MTcsIDAuMjQ3Mzc2LCAwLjMyMTE1MiwgMC4zNzM2MSwgMC40NTc0OTUsIDAuNTMwOTA5LCAwLjYzNTcyMiIsIFwKLSAgICAgICAgICAiMC4xNzU0NzIsIDAuMjU3MjA4LCAwLjMzMDk3OSwgMC4zODM0NDgsIDAuNDY3MzY0LCAwLjU0MDcxMiwgMC42NDU1ODIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDQxNDMsIDAuMTg1MjM2LCAwLjMzMDQ3NywgMC40MzYyODgsIDAuNjA1NDM5LCAwLjc1Mjk0NywgMC45NjY1MjkiLCBcCi0gICAgICAgICAgIjAuMDQ0MTMsIDAuMTg1MjM2LCAwLjMzMDQyMiwgMC40MzYyNzEsIDAuNjA1NDE4LCAwLjc1MzA3NCwgMC45NjY0ODQiLCBcCi0gICAgICAgICAgIjAuMDQ0MTYyLCAwLjE4NTIyMSwgMC4zMzA1MDIsIDAuNDM2MjkyLCAwLjYwNTA2LCAwLjc1NDA2NCwgMC45NjYwMDgiLCBcCi0gICAgICAgICAgIjAuMDQ0MTA1LCAwLjE4NTIyNSwgMC4zMzA0MTQsIDAuNDM2MzAzLCAwLjYwNTM4LCAwLjc1NDA5MiwgMC45NjU5NTYiLCBcCi0gICAgICAgICAgIjAuMDQ0MTA0LCAwLjE4NTIxMiwgMC4zMzEwMTUsIDAuNDM2MjQxLCAwLjYwNTQyNSwgMC43NTI4NjUsIDAuOTY2MzYyIiwgXAotICAgICAgICAgICIwLjA0NDE3MywgMC4xODUyNiwgMC4zMzA0MDMsIDAuNDM2MjQxLCAwLjYwNTQwMiwgMC43NTI5NjMsIDAuOTY2NDc3IiwgXAotICAgICAgICAgICIwLjA0NDA3OCwgMC4xODUyNjksIDAuMzMwNzI5LCAwLjQzNTcxOCwgMC42MDU2NDEsIDAuNzUzOTIzLCAwLjk2NjM1NyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3NzQ0MiwgMC4xNTY5NSwgMC4yMjk0NjcsIDAuMjgxMTU4LCAwLjM2Mzc5OCwgMC40MzYxMzIsIDAuNTM5MzM3IiwgXAotICAgICAgICAgICIwLjA4Njg2NiwgMC4xNjYzMzIsIDAuMjM4ODY0LCAwLjI5MDU1NiwgMC4zNzMyMTgsIDAuNDQ1NTMsIDAuNTQ4Nzg0IiwgXAotICAgICAgICAgICIwLjA5ODU5MSwgMC4xNzgwNTUsIDAuMjUwNTkxLCAwLjMwMjI4OCwgMC4zODQ5ODEsIDAuNDU3MjYzLCAwLjU2MDUyMSIsIFwKLSAgICAgICAgICAiMC4xMTAzOTIsIDAuMTg5ODc5LCAwLjI2MjQ1MiwgMC4zMTQxMzEsIDAuMzk2Nzc4LCAwLjQ2OTEyNiwgMC41NzIzNjIiLCBcCi0gICAgICAgICAgIjAuMTIyMDUyLCAwLjIwMTU0MywgMC4yNzQxMTMsIDAuMzI1NzkzLCAwLjQwODQ0MSwgMC40ODA3ODYsIDAuNTg0MDI5IiwgXAotICAgICAgICAgICIwLjEzOTY1OCwgMC4yMTk0MTQsIDAuMjkxOTg0LCAwLjM0MzY1LCAwLjQyNjMxMywgMC40OTg2MTksIDAuNjAxODc2IiwgXAotICAgICAgICAgICIwLjE1MzIxNiwgMC4yMzM1NDksIDAuMzA2MTI0LCAwLjM1Nzc5MywgMC40NDA0MzUsIDAuNTEyNzU0LCAwLjYxNjA2MSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0MzE5NiwgMC4xODUwNDYsIDAuMzMxODM2LCAwLjQzODA2MiwgMC42MDg2NSwgMC43NTY5MjYsIDAuOTcwODA4IiwgXAotICAgICAgICAgICIwLjA0MzIxNiwgMC4xODQ5NTUsIDAuMzMxNzc5LCAwLjQzODA1NiwgMC42MDc1NTYsIDAuNzU2ODgyLCAwLjk3MjA4MSIsIFwKLSAgICAgICAgICAiMC4wNDMyNDEsIDAuMTg0OTI0LCAwLjMzMTk2NiwgMC40MzgwMTYsIDAuNjA4NjcsIDAuNzU2OCwgMC45NzE5NTkiLCBcCi0gICAgICAgICAgIjAuMDQzMjI0LCAwLjE4NDkxOSwgMC4zMzE3MywgMC40MzgwMTcsIDAuNjA3ODQ1LCAwLjc1NzAzOSwgMC45NzIwNjEiLCBcCi0gICAgICAgICAgIjAuMDQzNjMxLCAwLjE4NTEwMSwgMC4zMzE3NzcsIDAuNDM4MDMzLCAwLjYwNzgxLCAwLjc1NzA5NSwgMC45NzE5NjQiLCBcCi0gICAgICAgICAgIjAuMDQ1NjksIDAuMTg1NTkzLCAwLjMzMjI3NCwgMC40Mzc3MywgMC42MDc4OTQsIDAuNzU3MTk5LCAwLjk3MTkyNSIsIFwKLSAgICAgICAgICAiMC4wNDc4NjYsIDAuMTg2Mjg3LCAwLjMzMjQ5NCwgMC40MzgwMTksIDAuNjA4Njg5LCAwLjc1NzMzNCwgMC45NzIwMTkiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODY0MTksIDAuMTcxOTk2LCAwLjI0NjI2NiwgMC4yOTg3NTksIDAuMzgyNjEzLCAwLjQ1NTk4OCwgMC41NjA3ODUiLCBcCi0gICAgICAgICAgIjAuMDk1MjgyLCAwLjE4MDg4NywgMC4yNTUxMzQsIDAuMzA3NjM4LCAwLjM5MTQ5NSwgMC40NjQ4NDcsIDAuNTY5NjMyIiwgXAotICAgICAgICAgICIwLjEwNjIxMywgMC4xOTE4MDgsIDAuMjY2MDYxLCAwLjMxODU1NywgMC40MDI0MjcsIDAuNDc1NzgxLCAwLjU4MDU5MyIsIFwKLSAgICAgICAgICAiMC4xMTcxOTIsIDAuMjAyNzQzLCAwLjI3NzAxNCwgMC4zMjk1MDIsIDAuNDEzMzY0LCAwLjQ4NjcyMSwgMC41OTE1MjciLCBcCi0gICAgICAgICAgIjAuMTI3OTc0LCAwLjIxMzUwMSwgMC4yODc4MSwgMC4zNDAzMjcsIDAuNDI0MTI5LCAwLjQ5NzU0NSwgMC42MDIzMDMiLCBcCi0gICAgICAgICAgIjAuMTQ0MzQzLCAwLjIzMDAyNCwgMC4zMDQyODEsIDAuMzU2NzQsIDAuNDQwNjM1LCAwLjUxMzk5MywgMC42MTg3NTkiLCBcCi0gICAgICAgICAgIjAuMTU2OTQ0LCAwLjI0MzAzMSwgMC4zMTczMzUsIDAuMzY5Nzk5LCAwLjQ1MzY4LCAwLjUyNzA3NSwgMC42MzE3ODciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDg2ODQsIDAuMTg5ODk2LCAwLjMzMzg0MiwgMC40Mzg0ODcsIDAuNjA3MjUsIDAuNzU1Mjk2LCAwLjk2NTgwNyIsIFwKLSAgICAgICAgICAiMC4wNDg2NTIsIDAuMTg5ODgxLCAwLjMzMzg0NSwgMC40MzgwMDcsIDAuNjA3MjQ4LCAwLjc1NTIzNywgMC45NjcyNDYiLCBcCi0gICAgICAgICAgIjAuMDQ4NjQzLCAwLjE4OTg5MywgMC4zMzM4NTcsIDAuNDM4ODIsIDAuNjA2NDM4LCAwLjc1NTI0MSwgMC45NjU4OTgiLCBcCi0gICAgICAgICAgIjAuMDQ4NDUxLCAwLjE4OTg2NCwgMC4zMzM4MjUsIDAuNDM3OTgzLCAwLjYwNzIzNywgMC43NTUyMjcsIDAuOTY3MzA3IiwgXAotICAgICAgICAgICIwLjA0ODU2LCAwLjE4OTkyMywgMC4zMzM4OTEsIDAuNDM3OTgxLCAwLjYwNzI0NCwgMC43NTUyNDQsIDAuOTY1ODgiLCBcCi0gICAgICAgICAgIjAuMDQ5ODI3LCAwLjE5MDEzMywgMC4zMzQwMjcsIDAuNDM4MDQ2LCAwLjYwNzI4OSwgMC43NTUyNzIsIDAuOTY3MjgyIiwgXAotICAgICAgICAgICIwLjA1MTU4LCAwLjE5MDc3MSwgMC4zMzQzNjUsIDAuNDM5MTYxLCAwLjYwNzQyOSwgMC43NTM4NDYsIDAuOTY3MjYzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg0NTU4LCAwLjE2NzY4MiwgMC4yNDA1NCwgMC4yOTIyMTUsIDAuMzc0ODI0LCAwLjQ0NzA4LCAwLjU1MDQwNyIsIFwKLSAgICAgICAgICAiMC4wOTQ4LCAwLjE3NzkxMywgMC4yNTA3NDEsIDAuMzAyNDI1LCAwLjM4NTAzMywgMC40NTcyOTIsIDAuNTYwNzE5IiwgXAotICAgICAgICAgICIwLjEwNjg3MiwgMC4xODk5NzcsIDAuMjYyODEyLCAwLjMxNDQ4OCwgMC4zOTcwOTcsIDAuNDY5MzU3LCAwLjU3Mjc4MiIsIFwKLSAgICAgICAgICAiMC4xMTc4ODYsIDAuMjAwOTYzLCAwLjI3MzgzNCwgMC4zMjU0OTEsIDAuNDA4MDk5LCAwLjQ4MDM5NSwgMC41ODM2MTIiLCBcCi0gICAgICAgICAgIjAuMTI2NjM2LCAwLjIwOTYxMiwgMC4yODI0NjIsIDAuMzM0MTEyLCAwLjQxNjc0NiwgMC40ODkwMDYsIDAuNTkyMzMxIiwgXAotICAgICAgICAgICIwLjEzODAzNCwgMC4yMjEwMDYsIDAuMjkzODA4LCAwLjM0NTY5NSwgMC40MjgxMTcsIDAuNTAwMzYxLCAwLjYwNDAwOCIsIFwKLSAgICAgICAgICAiMC4xNDYzOCwgMC4yMjkyNiwgMC4zMDIxMzIsIDAuMzUzNzk4LCAwLjQzNjMyLCAwLjUwODU4NywgMC42MTE5MSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0NzM1MSwgMC4xODkxMzMsIDAuMzM0NDkyLCAwLjQ0MDEzOSwgMC42MDkyMDYsIDAuNzU5LCAwLjk3MTMwNCIsIFwKLSAgICAgICAgICAiMC4wNDczNjUsIDAuMTg5MTIsIDAuMzM0Mjg1LCAwLjQzOTgwMywgMC42MDk4NjksIDAuNzU4OTksIDAuOTcxMDciLCBcCi0gICAgICAgICAgIjAuMDQ3MzQyLCAwLjE4OTExOSwgMC4zMzQ0NDksIDAuNDM5ODAxLCAwLjYwOTg1NiwgMC43NTg5NzcsIDAuOTcxMDYzIiwgXAotICAgICAgICAgICIwLjA0NzI1LCAwLjE4OTEwNywgMC4zMzQ0NiwgMC40Mzk3NzUsIDAuNjA5ODQxLCAwLjc1OTI5OCwgMC45NzI3NzciLCBcCi0gICAgICAgICAgIjAuMDQ3MDk1LCAwLjE4OTAwNywgMC4zMzQ0NTcsIDAuNDM5ODAyLCAwLjYwODg3MiwgMC43NTkwMSwgMC45NzEyNzciLCBcCi0gICAgICAgICAgIjAuMDQ2OTAyLCAwLjE4ODg2MiwgMC4zMzQyNzUsIDAuNDQwMDYxLCAwLjYxMDA1NiwgMC43NTg5MSwgMC45NzEwMTMiLCBcCi0gICAgICAgICAgIjAuMDQ3MDgyLCAwLjE4ODg3LCAwLjMzNDI0NSwgMC40Mzk0NDUsIDAuNjA5ODAzLCAwLjc1ODE4NCwgMC45NzI2MDEiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTk0NTEsIDAuMTgxMjEzLCAwLjI1NDk5NSwgMC4zMDc0NDgsIDAuMzkxMzMyLCAwLjQ2NDc0NSwgMC41Njk1NjUiLCBcCi0gICAgICAgICAgIjAuMTA5NzEzLCAwLjE5MTQ3OCwgMC4yNjUyNiwgMC4zMTc3MTgsIDAuNDAxNjAxLCAwLjQ3NTAwNiwgMC41Nzk4MzkiLCBcCi0gICAgICAgICAgIjAuMTIxNDQ2LCAwLjIwMzEzOSwgMC4yNzY5MzgsIDAuMzI5NDE3LCAwLjQxMzI3NywgMC40ODY3MjQsIDAuNTkxNDU5IiwgXAotICAgICAgICAgICIwLjEzMTIyOCwgMC4yMTI5MjUsIDAuMjg2NzAxLCAwLjMzOTE1OSwgMC40MjMwMzgsIDAuNDk2NDQ5LCAwLjYwMTI3NCIsIFwKLSAgICAgICAgICAiMC4xMzkyODgsIDAuMjIxMDU3LCAwLjI5NDgzOCwgMC4zNDcyOSwgMC40MzEwNDMsIDAuNTA0NTg1LCAwLjYwOTQwNyIsIFwKLSAgICAgICAgICAiMC4xNTAwOTcsIDAuMjMyMDMyLCAwLjMwNTY0OCwgMC4zNTgxMDYsIDAuNDQxOTg3LCAwLjUxNTM4NCwgMC42MjA0MDkiLCBcCi0gICAgICAgICAgIjAuMTU4Njk0LCAwLjI0MDQ3MSwgMC4zMTQyNzEsIDAuMzY2NzQ4LCAwLjQ1MDUyMiwgMC41MjQwMDgsIDAuNjI4ODEzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQ0MTI5LCAwLjE4NTIzNywgMC4zMzA0NzUsIDAuNDM2MjksIDAuNjA1NDM3LCAwLjc1Mjg2NCwgMC45NjY1NzgiLCBcCi0gICAgICAgICAgIjAuMDQ0MTEsIDAuMTg1MjM3LCAwLjMzMDM4NSwgMC40MzYyNzEsIDAuNjA1NDA4LCAwLjc1Mjk0MywgMC45NjY0MTgiLCBcCi0gICAgICAgICAgIjAuMDQ0MDgzLCAwLjE4NTIyOCwgMC4zMzA0NTksIDAuNDM2MzM2LCAwLjYwNTM4MywgMC43NTQyMzcsIDAuOTY2Mjc4IiwgXAotICAgICAgICAgICIwLjA0NDAzOCwgMC4xODUyMjIsIDAuMzMwNDQzLCAwLjQzNjI0NCwgMC42MDUyMzcsIDAuNzUyODI1LCAwLjk2NjQ0OCIsIFwKLSAgICAgICAgICAiMC4wNDM5NDksIDAuMTg1MjAzLCAwLjMzMDQwNSwgMC40MzYyMjQsIDAuNjA1NCwgMC43NTMyMDgsIDAuOTY2NDMiLCBcCi0gICAgICAgICAgIjAuMDQ0MDY1LCAwLjE4NTM5MSwgMC4zMzA1MzksIDAuNDM1NjQ2LCAwLjYwNTQyOCwgMC43NTI5MTcsIDAuOTY2Mjg1IiwgXAotICAgICAgICAgICIwLjA0NDMwMiwgMC4xODUyOTMsIDAuMzMxMTA4LCAwLjQzNTc1NiwgMC42MDQ1ODUsIDAuNzUyNzgsIDAuOTY1MDc0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDY5ODEsIDAuMDA3MTY2LCAwLjAwNzIsIDAuMDA3MjE0LCAwLjAwNzIyNiwgMC4wMDcyMywgMC4wMDcyMzYiLCBcCi0gICAgICAgICAgIjAuMDA2OTU3LCAwLjAwNzE0LCAwLjAwNzE3NywgMC4wMDcxOSwgMC4wMDcyMDEsIDAuMDA3MjA2LCAwLjAwNzIxMiIsIFwKLSAgICAgICAgICAiMC4wMDY5NDksIDAuMDA3MTMzLCAwLjAwNzE3MSwgMC4wMDcxODIsIDAuMDA3MTkzLCAwLjAwNzIwMiwgMC4wMDcyMDMiLCBcCi0gICAgICAgICAgIjAuMDA2OTUyLCAwLjAwNzEzOCwgMC4wMDcxNzYsIDAuMDA3MTg2LCAwLjAwNzE5OCwgMC4wMDcyMDMsIDAuMDA3MjA5IiwgXAotICAgICAgICAgICIwLjAwNjk1NiwgMC4wMDcxNDMsIDAuMDA3MTgxLCAwLjAwNzE5MywgMC4wMDcyMDQsIDAuMDA3MjEsIDAuMDA3MjE2IiwgXAotICAgICAgICAgICIwLjAwNjk2NiwgMC4wMDcxNDcsIDAuMDA3MTg0LCAwLjAwNzIwMSwgMC4wMDcyMTEsIDAuMDA3MjEzLCAwLjAwNzIyMSIsIFwKLSAgICAgICAgICAiMC4wMDY5OTQsIDAuMDA3MTY3LCAwLjAwNzIwNSwgMC4wMDcyMTcsIDAuMDA3MjMsIDAuMDA3MjM1LCAwLjAwNzIzOSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2OTM1LCAwLjAwNzE3NSwgMC4wMDcyMjUsIDAuMDA3MjQxLCAwLjAwNzI1NiwgMC4wMDcyNjMsIDAuMDA3MjciLCBcCi0gICAgICAgICAgIjAuMDA2OTA3LCAwLjAwNzE0OCwgMC4wMDcxOTcsIDAuMDA3MjEzLCAwLjAwNzIyOCwgMC4wMDcyMzYsIDAuMDA3MjQzIiwgXAotICAgICAgICAgICIwLjAwNjkwMSwgMC4wMDcxMzksIDAuMDA3MTg5LCAwLjAwNzIwNSwgMC4wMDcyMiwgMC4wMDcyMjcsIDAuMDA3MjM0IiwgXAotICAgICAgICAgICIwLjAwNjkwNSwgMC4wMDcxNDQsIDAuMDA3MTkzLCAwLjAwNzIxLCAwLjAwNzIyNSwgMC4wMDcyMzMsIDAuMDA3MjQiLCBcCi0gICAgICAgICAgIjAuMDA2OTEyLCAwLjAwNzE1NCwgMC4wMDcyMDQsIDAuMDA3MjIxLCAwLjAwNzIzNiwgMC4wMDcyNDQsIDAuMDA3MjUxIiwgXAotICAgICAgICAgICIwLjAwNjkzOSwgMC4wMDcxNzksIDAuMDA3MjI5LCAwLjAwNzI0NiwgMC4wMDcyNjEsIDAuMDA3MjY5LCAwLjAwNzI3NiIsIFwKLSAgICAgICAgICAiMC4wMDY5NjQsIDAuMDA3MjAxLCAwLjAwNzI1MSwgMC4wMDcyNjgsIDAuMDA3MjgzLCAwLjAwNzI5MSwgMC4wMDcyOTgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjc3MiwgMC4wMDY5MjcsIDAuMDA2OTYyLCAwLjAwNjk3NSwgMC4wMDY5ODQsIDAuMDA2OTkxLCAwLjAwNjk5NCIsIFwKLSAgICAgICAgICAiMC4wMDY4MTQsIDAuMDA2OTYzLCAwLjAwNjk5NywgMC4wMDcwMDksIDAuMDA3MDE5LCAwLjAwNzAyNSwgMC4wMDcwMjgiLCBcCi0gICAgICAgICAgIjAuMDA2ODc4LCAwLjAwNzAxOSwgMC4wMDcwNTMsIDAuMDA3MDYyLCAwLjAwNzA3NSwgMC4wMDcwOCwgMC4wMDcwODYiLCBcCi0gICAgICAgICAgIjAuMDA2OTI2LCAwLjAwNzA2LCAwLjAwNzA5NSwgMC4wMDcxMDUsIDAuMDA3MTE4LCAwLjAwNzEyNCwgMC4wMDcxMyIsIFwKLSAgICAgICAgICAiMC4wMDY5NjQsIDAuMDA3MDk1LCAwLjAwNzEzMywgMC4wMDcxNDQsIDAuMDA3MTU2LCAwLjAwNzE2MiwgMC4wMDcxNjgiLCBcCi0gICAgICAgICAgIjAuMDA3MDQ1LCAwLjAwNzE3OSwgMC4wMDcyMDMsIDAuMDA3MjM4LCAwLjAwNzIyNSwgMC4wMDcyMzUsIDAuMDA3MjU4IiwgXAotICAgICAgICAgICIwLjAwNzExNywgMC4wMDcyNDMsIDAuMDA3Mjc3LCAwLjAwNzI4NSwgMC4wMDcyOTMsIDAuMDA3MzAyLCAwLjAwNzMxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDU5OTYsIDAuMDA2MjMsIDAuMDA2MjgsIDAuMDA2Mjk3LCAwLjAwNjMxMiwgMC4wMDYzMiwgMC4wMDYzMjgiLCBcCi0gICAgICAgICAgIjAuMDA1OTg4LCAwLjAwNjIyMSwgMC4wMDYyNzEsIDAuMDA2Mjg4LCAwLjAwNjMwMywgMC4wMDYzMTEsIDAuMDA2MzE4IiwgXAotICAgICAgICAgICIwLjAwNiwgMC4wMDYyMzQsIDAuMDA2MjgzLCAwLjAwNjMsIDAuMDA2MzE1LCAwLjAwNjMyNCwgMC4wMDYzMzEiLCBcCi0gICAgICAgICAgIjAuMDA2LCAwLjAwNjIzNywgMC4wMDYyODcsIDAuMDA2MzA0LCAwLjAwNjMxOCwgMC4wMDYzMjYsIDAuMDA2MzM0IiwgXAotICAgICAgICAgICIwLjAwNjAxOCwgMC4wMDYyNTIsIDAuMDA2MzAxLCAwLjAwNjMxNywgMC4wMDYzMzEsIDAuMDA2MzQsIDAuMDA2MzQ4IiwgXAotICAgICAgICAgICIwLjAwNjAzNSwgMC4wMDYyNzYsIDAuMDA2MzI0LCAwLjAwNjM0MSwgMC4wMDYzNTYsIDAuMDA2MzY0LCAwLjAwNjM3NCIsIFwKLSAgICAgICAgICAiMC4wMDYwNywgMC4wMDYyOTcsIDAuMDA2MzQ4LCAwLjAwNjM2NCwgMC4wMDYzNzQsIDAuMDA2Mzg4LCAwLjAwNjM5NiIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IERGRkhRWDEgKgotICogLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoREZGSFFYMSkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjMzMDI4OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIGZmIChOMzAsUUJJTlQpIHsKLSAgICBuZXh0X3N0YXRlIDogIkQiOwotICAgIGNsb2NrZWRfb24gOiAiQ0siOwotICB9Ci0gIHBpbihDSykgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjM4Mzc4OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYzODE4NTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2MzgzNzg7Ci0gICAgY2xvY2sgOiB0cnVlOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzE0MywgMC4wMDMxMTgsIDAuMDAzMTA1LCAwLjAwMzEwNCwgMC4wMDMxMTUsIDAuMDAzMTM2LCAwLjAwMzE1OSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNzQzMywgMC4wMDc0MTMsIDAuMDA3NDAzLCAwLjAwNzQwMiwgMC4wMDc0MDUsIDAuMDA3NDI2LCAwLjAwNzQ0MSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQiOwotICAgICAgc2RmX2NvbmQgOiAiRCA9PSAxJ2IwIjsKLSAgICAgIHJpc2VfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjE0OTEyNCwgMC4xNTkyOTQsIDAuMTcyMDY5LCAwLjE4NDQ2LCAwLjE5NTc2NiwgMC4yMTEzOTEsIDAuMjIzNTkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjEwMzU0LCAwLjExMzEzOSwgMC4xMjU4NDcsIDAuMTM3NjE0LCAwLjE0ODA1NywgMC4xNjIzNSwgMC4xNzMyNyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNzc5NTU3OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDc3NzI5NTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA3Nzk1NTc7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyNzI2LCAwLjAwMjY5MiwgMC4wMDI2NzYsIDAuMDAyNjY3LCAwLjAwMjY2OSwgMC4wMDI2NzIsIDAuMDAyNjc4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzNDgxLCAwLjAwMzQ2MSwgMC4wMDM0NDksIDAuMDAzNDQ0LCAwLjAwMzQ0NiwgMC4wMDM0NDEsIDAuMDAzNDQ5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDEyNSwgLTAuMDA3NSwgLTAuMDAxMjUsIDAuMDExMjUsIDAuMDExMjUsIDAuMDIxMjUsIDAuMDMiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMCwgMC4wMDYyNSwgMC4wMTYyNSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLjAwMzc1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDI1LCAwIiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDQzNzUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wNTg3NSwgLTAuMDUzNzUsIC0wLjA0MTI1LCAtMC4wMzUsIC0wLjAyODc1LCAtMC4wMjUsIC0wLjAxNjI1IiwgXAotICAgICAgICAgICItMC4wNjc1LCAtMC4wNjI1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAyNzUsIC0wLjAyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDI1LCAwLjAzNjI1LCAwLjA0ODc1LCAwLjA2MTI1LCAwLjA2NzUsIDAuMDgzNzUsIDAuMDkyNSIsIFwKLSAgICAgICAgICAiMC4wMTM3NSwgMC4wMjUsIDAuMDM3NSwgMC4wNSwgMC4wNjI1LCAwLjA3MjUsIDAuMDg3NSIsIFwKLSAgICAgICAgICAiMC4wMDc1LCAwLjAxODc1LCAwLjAzMTI1LCAwLjA0Mzc1LCAwLjA1NjI1LCAwLjA2NjI1LCAwLjA4MTI1IiwgXAotICAgICAgICAgICIwLjAwMTI1LCAwLjAxMjUsIDAuMDI1LCAwLjAzNzUsIDAuMDUsIDAuMDYsIDAuMDY4NzUiLCBcCi0gICAgICAgICAgIi0wLjAwNSwgMC4wMDYyNSwgMC4wMTg3NSwgMC4wMzEyNSwgMC4wNDM3NSwgMC4wNTM3NSwgMC4wNjg3NSIsIFwKLSAgICAgICAgICAiLTAuMDA4NzUsIDAuMDAyNSwgMC4wMTUsIDAuMDI3NSwgMC4wMzM3NSwgMC4wNSwgMC4wNTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDExMjUsIC0wLjAwNjI1LCAwLjAwNjI1LCAwLjAxODc1LCAwLjAzMTI1LCAwLjA0MTI1LCAwLjA1NjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzNzUsIDAuMDI2MjUsIDAuMDEzNzUsIDAuMDA3NSwgMC4wMDEyNSwgLTAuMDA4NzUsIC0wLjAxMTI1IiwgXAotICAgICAgICAgICIwLjA0MjUsIDAuMDMxMjUsIDAuMDI1LCAwLjAxODc1LCAwLjAxMjUsIDAuMDAyNSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMDU1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDI1LCAwLjAxODc1LCAwLjAxNSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiMC4wNjEyNSwgMC4wNTYyNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyMTI1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMDczNzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAyNzUsIDAuMDI1IiwgXAotICAgICAgICAgICIwLjA4Mzc1LCAwLjA3ODc1LCAwLjA2NjI1LCAwLjA2LCAwLjA0NzUsIDAuMDQzNzUsIDAuMDM1IiwgXAotICAgICAgICAgICIwLjA5ODc1LCAwLjA4NzUsIDAuMDc1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDUyNSwgMC4wNDM3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjI1LCAtMC4wMDUsIC0wLjAxNzUsIC0wLjAzLCAtMC4wNDI1LCAtMC4wNTg3NSwgLTAuMDY3NSIsIFwKLSAgICAgICAgICAiMC4wMTc1LCAwLjAwNjI1LCAtMC4wMDYyNSwgLTAuMDE4NzUsIC0wLjAzMTI1LCAtMC4wNDc1LCAtMC4wNTYyNSIsIFwKLSAgICAgICAgICAiMC4wMjM3NSwgMC4wMTI1LCAwLCAtMC4wMTI1LCAtMC4wMjUsIC0wLjAzNSwgLTAuMDUiLCBcCi0gICAgICAgICAgIjAuMDM2MjUsIDAuMDI1LCAwLjAxMjUsIDAsIC0wLjAxMjUsIC0wLjAyODc1LCAtMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4wNDI1LCAwLjAzMTI1LCAwLjAxODc1LCAwLjAwNjI1LCAtMC4wMDYyNSwgLTAuMDIyNSwgLTAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMDUyNSwgMC4wNDEyNSwgMC4wMjg3NSwgMC4wMTYyNSwgMC4wMDM3NSwgLTAuMDEyNSwgLTAuMDIxMjUiLCBcCi0gICAgICAgICAgIjAuMDYxMjUsIDAuMDUsIDAuMDM3NSwgMC4wMjUsIDAuMDEyNSwgLTAuMDAzNzUsIC0wLjAxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFEpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4yNDg5MDU7Ci0gICAgZnVuY3Rpb24gOiAiTjMwIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBub25fdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJpc2luZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMzE3OTMsIDAuMTU2MjYsIDAuMjk0OTg5LCAwLjQxNzU2NiwgMC41ODEwNDksIDAuOTA4MDc5LCAxLjExMjU1IiwgXAotICAgICAgICAgICIwLjE0MTk1NywgMC4xNjY0MTMsIDAuMzA1MTUsIDAuNDI3NzEyLCAwLjU5MTIyNSwgMC45MTgxODEsIDEuMTIyNjIiLCBcCi0gICAgICAgICAgIjAuMTU0Njc5LCAwLjE3OTEzOSwgMC4zMTc4ODYsIDAuNDQwNDYzLCAwLjYwMzg5NywgMC45MzEwODYsIDEuMTM1MzYiLCBcCi0gICAgICAgICAgIjAuMTY3MTEyLCAwLjE5MTU3NiwgMC4zMzAzMzUsIDAuNDUyODk0LCAwLjYxNjM1LCAwLjk0MzQwMywgMS4xNDc4MSIsIFwKLSAgICAgICAgICAiMC4xNzgyMjQsIDAuMjAyNywgMC4zNDE0NTEsIDAuNDY0MDExLCAwLjYyNzQ5NywgMC45NTQ0OTcsIDEuMTU4OTEiLCBcCi0gICAgICAgICAgIjAuMTkzOCwgMC4yMTgyODIsIDAuMzU3MDQxLCAwLjQ3OTYsIDAuNjQzMDcsIDAuOTcwMDc1LCAxLjE3NDQ2IiwgXAotICAgICAgICAgICIwLjIwNTY4NCwgMC4yMzAxNjUsIDAuMzY4OTc2LCAwLjQ5MTU1NCwgMC42NTQ5NjUsIDAuOTgxOTQzLCAxLjE4NjM0Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5MTYxNCwgMC4xNDE2NjUsIDAuNDI3ODMxLCAwLjY3OTc4MywgMS4wMTYwOSwgMS42ODk1MywgMi4xMTM4NSIsIFwKLSAgICAgICAgICAiMC4wOTE2MjQsIDAuMTQxNjM0LCAwLjQyNzgzLCAwLjY4MDY0NywgMS4wMTYyMSwgMS42OTIxMSwgMi4xMTA5NyIsIFwKLSAgICAgICAgICAiMC4wOTE2MjUsIDAuMTQxNjMzLCAwLjQyNzgyOSwgMC42Nzk0MTIsIDEuMDE3NzUsIDEuNjg5MDcsIDIuMTA5ODUiLCBcCi0gICAgICAgICAgIjAuMDkxNjE0LCAwLjE0MTYyNCwgMC40Mjc4NDMsIDAuNjc5NzY3LCAxLjAxNzgsIDEuNjg5NSwgMi4xMTAzIiwgXAotICAgICAgICAgICIwLjA5MTYwMywgMC4xNDE2MzIsIDAuNDI3ODIsIDAuNjc5ODM1LCAxLjAxNjExLCAxLjY5MDE1LCAyLjExMzYyIiwgXAotICAgICAgICAgICIwLjA5MTU0NywgMC4xNDE2MzcsIDAuNDI3ODEzLCAwLjY3OTc4MiwgMS4wMTY1NSwgMS42OTAwNSwgMi4xMTA4NiIsIFwKLSAgICAgICAgICAiMC4wOTE0ODYsIDAuMTQxNDg5LCAwLjQyNzc5OCwgMC42NzkzNzcsIDEuMDE1ODgsIDEuNjg5OTcsIDIuMTEwNzEiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTQ5MTI0LCAwLjE3MzkwNywgMC4zMTQxMTUsIDAuNDM3ODAzLCAwLjYwMjcwNCwgMC45MzIzOSwgMS4xMzg0NSIsIFwKLSAgICAgICAgICAiMC4xNTkyOTQsIDAuMTg0MDc0LCAwLjMyNDI5MiwgMC40NDc5OTMsIDAuNjEyODY2LCAwLjk0MjUzLCAxLjE0ODYzIiwgXAotICAgICAgICAgICIwLjE3MjA2OSwgMC4xOTY4NTEsIDAuMzM3MDYyLCAwLjQ2MDc1MywgMC42MjU2NTEsIDAuOTU1MzM2LCAxLjE2MTM1IiwgXAotICAgICAgICAgICIwLjE4NDQ2LCAwLjIwOTI0LCAwLjM0OTQ1NiwgMC40NzMxMTEsIDAuNjM4MDM1LCAwLjk2NzcwNywgMS4xNzM4IiwgXAotICAgICAgICAgICIwLjE5NTc2NiwgMC4yMjA1NDgsIDAuMzYwNzU2LCAwLjQ4NDQ0NSwgMC42NDkzNDYsIDAuOTc5MDM0LCAxLjE4NTA3IiwgXAotICAgICAgICAgICIwLjIxMTM5MSwgMC4yMzYxNzYsIDAuMzc2Mzg0LCAwLjUwMDA3OSwgMC42NjQ5NzEsIDAuOTk0NjU3LCAxLjIwMDcxIiwgXAotICAgICAgICAgICIwLjIyMzU5LCAwLjI0ODM3MSwgMC4zODg1NzYsIDAuNTEyMjY0LCAwLjY3NzE2MiwgMS4wMDY4NSwgMS4yMTI4NyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTAxNDYsIDAuMTM5MzMyLCAwLjQyMTk5NCwgMC42NzE0NDgsIDEuMDAxNzYsIDEuNjY1OCwgMi4wODE1NiIsIFwKLSAgICAgICAgICAiMC4wOTAxNiwgMC4xMzk0MzksIDAuNDIxMTk4LCAwLjY2OTI1LCAxLjAwNDEyLCAxLjY2NjY2LCAyLjA4MTcxIiwgXAotICAgICAgICAgICIwLjA5MDIzNywgMC4xMzk1MDIsIDAuNDIxNDA0LCAwLjY3MTQzMywgMS4wMDE2OCwgMS42NjU1LCAyLjA4NDUiLCBcCi0gICAgICAgICAgIjAuMDkwMiwgMC4xMzk0MTEsIDAuNDIxMTgzLCAwLjY3MTUyMSwgMS4wMDQxMSwgMS42Njc1NSwgMi4wNzk2MiIsIFwKLSAgICAgICAgICAiMC4wOTAyNywgMC4xMzk0NzgsIDAuNDIxNTM2LCAwLjY3MTQ0MSwgMS4wMDE5MywgMS42NjU3NywgMi4wODE0NCIsIFwKLSAgICAgICAgICAiMC4wOTAyNSwgMC4xMzk1MDEsIDAuNDIxMzczLCAwLjY3MTQxMywgMS4wMDA3NywgMS42NjU0OCwgMi4wODU0NCIsIFwKLSAgICAgICAgICAiMC4wOTAxMTEsIDAuMTM5NDczLCAwLjQyMTQ3LCAwLjY3MTQ0LCAxLjAwMTQxLCAxLjY2NTcyLCAyLjA4MzcyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjg2MywgMC4wMDY4NSwgMC4wMDY4MDEsIDAuMDA2Nzg0LCAwLjAwNjc3MywgMC4wMDY3NjQsIDAuMDA2NzYiLCBcCi0gICAgICAgICAgIjAuMDA2ODMzLCAwLjAwNjgxOSwgMC4wMDY3NzEsIDAuMDA2NzU0LCAwLjAwNjc0MywgMC4wMDY3MzMsIDAuMDA2NzMiLCBcCi0gICAgICAgICAgIjAuMDA2ODE2LCAwLjAwNjgwMywgMC4wMDY3NTUsIDAuMDA2NzM4LCAwLjAwNjcyNywgMC4wMDY3MTYsIDAuMDA2NzE0IiwgXAotICAgICAgICAgICIwLjAwNjgxNywgMC4wMDY4MDUsIDAuMDA2NzU3LCAwLjAwNjc0LCAwLjAwNjcyOSwgMC4wMDY3MTksIDAuMDA2NzE2IiwgXAotICAgICAgICAgICIwLjAwNjgyOCwgMC4wMDY4MTcsIDAuMDA2NzcxLCAwLjAwNjc1NCwgMC4wMDY3NDIsIDAuMDA2NzMyLCAwLjAwNjcyNyIsIFwKLSAgICAgICAgICAiMC4wMDY4NDMsIDAuMDA2ODM0LCAwLjAwNjc4OSwgMC4wMDY3NzIsIDAuMDA2NzYsIDAuMDA2NzQ4LCAwLjAwNjc0MyIsIFwKLSAgICAgICAgICAiMC4wMDY4NzQsIDAuMDA2ODY2LCAwLjAwNjgyNywgMC4wMDY4MDksIDAuMDA2Nzk3LCAwLjAwNjc4NCwgMC4wMDY3OCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNzQyOCwgMC4wMDc0MzcsIDAuMDA3NDUsIDAuMDA3NDUzLCAwLjAwNzQ1NCwgMC4wMDc0NTYsIDAuMDA3NDU2IiwgXAotICAgICAgICAgICIwLjAwNzM5OSwgMC4wMDc0MDgsIDAuMDA3NDIxLCAwLjAwNzQyNCwgMC4wMDc0MjYsIDAuMDA3NDI3LCAwLjAwNzQyOCIsIFwKLSAgICAgICAgICAiMC4wMDczOTYsIDAuMDA3NDA1LCAwLjAwNzQxOCwgMC4wMDc0MjEsIDAuMDA3NDIzLCAwLjAwNzQyNSwgMC4wMDc0MjUiLCBcCi0gICAgICAgICAgIjAuMDA3NDEzLCAwLjAwNzQyMiwgMC4wMDc0MzUsIDAuMDA3NDM4LCAwLjAwNzQzOSwgMC4wMDc0NDEsIDAuMDA3NDQxIiwgXAotICAgICAgICAgICIwLjAwNzQ0LCAwLjAwNzQ0OSwgMC4wMDc0NjEsIDAuMDA3NDY0LCAwLjAwNzQ2NiwgMC4wMDc0NjcsIDAuMDA3NDY4IiwgXAotICAgICAgICAgICIwLjAwNzQ2NCwgMC4wMDc0NzMsIDAuMDA3NDg1LCAwLjAwNzQ4OCwgMC4wMDc0OSwgMC4wMDc0OTEsIDAuMDA3NDkyIiwgXAotICAgICAgICAgICIwLjAwNzUyOCwgMC4wMDc1MzYsIDAuMDA3NTQ4LCAwLjAwNzU1MSwgMC4wMDc1NTMsIDAuMDA3NTU0LCAwLjAwNzU1NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IERGRkhRWDIgKgotICogLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoREZGSFFYMikgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjM3NDAzNDsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBmZiAoTjMwLFFCSU5UKSB7Ci0gICAgbmV4dF9zdGF0ZSA6ICJEIjsKLSAgICBjbG9ja2VkX29uIDogIkNLIjsKLSAgfQotICBwaW4oQ0spICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDU2MjE4NjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA1NjIxMDc7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNTYyMTg2OwotICAgIGNsb2NrIDogdHJ1ZTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDMwODgsIDAuMDAzMDY0LCAwLjAwMzA1LCAwLjAwMzA1MSwgMC4wMDMwNjIsIDAuMDAzMDgzLCAwLjAwMzEwNCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNzU4MywgMC4wMDc1NjIsIDAuMDA3NTU0LCAwLjAwNzU1NiwgMC4wMDc1NiwgMC4wMDc1OSwgMC4wMDc1OTQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFEIjsKLSAgICAgIHNkZl9jb25kIDogIkQgPT0gMSdiMCI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4xMzQ2MjYsIDAuMTQ0ODcyLCAwLjE1NzYwNiwgMC4xNzAwNjQsIDAuMTgxNTEyLCAwLjE5NzMwNiwgMC4yMDk2NDYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjEwNTYzLCAwLjExNTU3MiwgMC4xMjgwMTgsIDAuMTM5NzkyLCAwLjE1MDM4OSwgMC4xNjQ4NDYsIDAuMTc1ODkyIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihEKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA3Njc3MTE7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNzY1MDMzOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDc2NzcxMTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDI4NTYsIDAuMDAyODIzLCAwLjAwMjgwNywgMC4wMDI3OTgsIDAuMDAyOCwgMC4wMDI4MDIsIDAuMDAyODA4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzNTMyLCAwLjAwMzUxMiwgMC4wMDM1MDEsIDAuMDAzNDk1LCAwLjAwMzQ5NiwgMC4wMDM0OTIsIDAuMDAzNDk4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDEyNSwgLTAuMDA3NSwgLTAuMDAxMjUsIDAuMDA1LCAwLjAxMTI1LCAwLjAyMTI1LCAwLjAyMzc1IiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLCAwLjAwNjI1LCAwLjAxLCAwLjAxODc1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAuMDAzNzUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzNzUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwODc1LCAwIiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wNjUsIC0wLjA1Mzc1LCAtMC4wNDc1LCAtMC4wMzUsIC0wLjAzNSwgLTAuMDI1LCAtMC4wMTYyNSIsIFwKLSAgICAgICAgICAiLTAuMDczNzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDMzNzUsIC0wLjAyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDI1LCAwLjAzNjI1LCAwLjA0ODc1LCAwLjA2MTI1LCAwLjA2NzUsIDAuMDgzNzUsIDAuMDkyNSIsIFwKLSAgICAgICAgICAiMC4wMiwgMC4wMjUsIDAuMDM3NSwgMC4wNSwgMC4wNjI1LCAwLjA3MjUsIDAuMDg3NSIsIFwKLSAgICAgICAgICAiMC4wMDc1LCAwLjAxODc1LCAwLjAzMTI1LCAwLjA0Mzc1LCAwLjA1NjI1LCAwLjA2NjI1LCAwLjA4MTI1IiwgXAotICAgICAgICAgICIwLjAwMTI1LCAwLjAxMjUsIDAuMDI1LCAwLjAzNzUsIDAuMDUsIDAuMDYsIDAuMDc1IiwgXAotICAgICAgICAgICIwLjAwMTI1LCAwLjAwNjI1LCAwLjAxODc1LCAwLjAzMTI1LCAwLjA0Mzc1LCAwLjA1Mzc1LCAwLjA2ODc1IiwgXAotICAgICAgICAgICItMC4wMDg3NSwgMC4wMDI1LCAwLjAxNSwgMC4wMjc1LCAwLjAzMzc1LCAwLjA1LCAwLjA1ODc1IiwgXAotICAgICAgICAgICItMC4wMTEyNSwgLTAuMDA2MjUsIDAuMDA2MjUsIDAuMDE4NzUsIDAuMDMxMjUsIDAuMDQxMjUsIDAuMDU2MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM3NSwgMC4wMjYyNSwgMC4wMiwgMC4wMTM3NSwgMC4wMDc1LCAtMC4wMDI1LCAtMC4wMTEyNSIsIFwKLSAgICAgICAgICAiMC4wNDg3NSwgMC4wMzc1LCAwLjAyNSwgMC4wMTg3NSwgMC4wMTI1LCAwLjAwMjUsIDAiLCBcCi0gICAgICAgICAgIjAuMDU1LCAwLjA1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDI1LCAwLjAxNSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiMC4wNjc1LCAwLjA1NjI1LCAwLjA1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDIxMjUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMDczNzUsIDAuMDY4NzUsIDAuMDU2MjUsIDAuMDUsIDAuMDQzNzUsIDAuMDMzNzUsIDAuMDI1IiwgXAotICAgICAgICAgICIwLjA5LCAwLjA3ODc1LCAwLjA2NjI1LCAwLjA2LCAwLjA1Mzc1LCAwLjA0Mzc1LCAwLjAzNSIsIFwKLSAgICAgICAgICAiMC4wOTg3NSwgMC4wODc1LCAwLjA4MTI1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDUyNSwgMC4wNDM3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMjUsIDAuMDAxMjUsIC0wLjAxMTI1LCAtMC4wMjM3NSwgLTAuMDM2MjUsIC0wLjA1MjUsIC0wLjA2NzUiLCBcCi0gICAgICAgICAgIjAuMDE3NSwgMC4wMDYyNSwgLTAuMDA2MjUsIC0wLjAxODc1LCAtMC4wMzEyNSwgLTAuMDQ3NSwgLTAuMDU2MjUiLCBcCi0gICAgICAgICAgIjAuMDMsIDAuMDE4NzUsIDAuMDA2MjUsIC0wLjAwNjI1LCAtMC4wMTg3NSwgLTAuMDM1LCAtMC4wNSIsIFwKLSAgICAgICAgICAiMC4wMzYyNSwgMC4wMjUsIDAuMDEyNSwgMCwgLTAuMDEyNSwgLTAuMDI4NzUsIC0wLjAzNzUiLCBcCi0gICAgICAgICAgIjAuMDQ4NzUsIDAuMDM3NSwgMC4wMTg3NSwgMC4wMDYyNSwgMCwgLTAuMDE2MjUsIC0wLjAzMTI1IiwgXAotICAgICAgICAgICIwLjA1ODc1LCAwLjA0NzUsIDAuMDM1LCAwLjAyMjUsIDAuMDEsIC0wLjAwNjI1LCAtMC4wMjEyNSIsIFwKLSAgICAgICAgICAiMC4wNjc1LCAwLjA1NjI1LCAwLjA0Mzc1LCAwLjAzMTI1LCAwLjAxODc1LCAwLjAwMjUsIC0wLjAxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFEpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC41MjU5NzU7Ci0gICAgZnVuY3Rpb24gOiAiTjMwIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBub25fdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJpc2luZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTgzMTksIDAuMjE5NzM3LCAwLjMwMDY2OCwgMC40MDE4NDYsIDAuNTAzMDI5LCAwLjYwNDE3OCwgMC43MDUyNzgiLCBcCi0gICAgICAgICAgIjAuMTI4NDgsIDAuMjI5ODk5LCAwLjMxMDg0MiwgMC40MTIwMDMsIDAuNTEzMTkyLCAwLjYxNDM0NywgMC43MTU1MTIiLCBcCi0gICAgICAgICAgIjAuMTQxMTc4LCAwLjI0MjU5NywgMC4zMjM1MjIsIDAuNDI0NzA3LCAwLjUyNTg4OCwgMC42MjcwMzksIDAuNzI4MTIyIiwgXAotICAgICAgICAgICIwLjE1MzYzNCwgMC4yNTUwNTUsIDAuMzM2LCAwLjQzNzE2NSwgMC41MzgzNCwgMC42Mzk0OSwgMC43NDA1NjEiLCBcCi0gICAgICAgICAgIjAuMTY0OTIyLCAwLjI2NjM0MSwgMC4zNDcyODIsIDAuNDQ4NDQ3LCAwLjU0OTYzMywgMC42NTA3ODksIDAuNzUxOTU2IiwgXAotICAgICAgICAgICIwLjE4MDYxNiwgMC4yODIwMzUsIDAuMzYyOTE4LCAwLjQ2NDEzNywgMC41NjUzMzEsIDAuNjY2NDg1LCAwLjc2NzUyOCIsIFwKLSAgICAgICAgICAiMC4xOTI3MjksIDAuMjk0MTYsIDAuMzc1MSwgMC40NzYyNDksIDAuNTc3NDYxLCAwLjY3ODYxMiwgMC43Nzk2NTYiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDUwOTkxLCAwLjI1Njk2MywgMC40MjQwOTQsIDAuNjMxMzU0LCAwLjg0MTkwNiwgMS4wNTA3OSwgMS4yNTk1MyIsIFwKLSAgICAgICAgICAiMC4wNTA5NjcsIDAuMjU2OTYyLCAwLjQyNDExMywgMC42MzE2OTEsIDAuODQxODk5LCAxLjA1MDgsIDEuMjU5NzMiLCBcCi0gICAgICAgICAgIjAuMDUxMDAyLCAwLjI1Njk1OCwgMC40MjQwMTksIDAuNjMxODg4LCAwLjg0MTg5NSwgMS4wNTA3NywgMS4yNTk0OSIsIFwKLSAgICAgICAgICAiMC4wNTA5NTgsIDAuMjU2NzI5LCAwLjQyMzUzLCAwLjYzMTQ5OCwgMC44NDE4ODMsIDEuMDUwNzYsIDEuMjU5NDYiLCBcCi0gICAgICAgICAgIjAuMDUwOTk0LCAwLjI1NjczNiwgMC40MjQwOTYsIDAuNjMxNzA0LCAwLjg0MTg4NywgMS4wNTA3OSwgMS4yNTcxNyIsIFwKLSAgICAgICAgICAiMC4wNTEwMTYsIDAuMjU2OTU1LCAwLjQyMzc3NSwgMC42MzEwMDMsIDAuODQxOTA4LCAxLjA1MDc5LCAxLjI1OTQzIiwgXAotICAgICAgICAgICIwLjA1MTAwMiwgMC4yNTY5MzksIDAuNDI0MDExLCAwLjYzMjA1OCwgMC44NDAyODMsIDEuMDQ4MjgsIDEuMjU4MDQiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTM0NjI2LCAwLjIzODU0NSwgMC4zMjEzNDQsIDAuNDI0ODUzLCAwLjUyODM3NiwgMC42MzE4NDksIDAuNzM1MzgzIiwgXAotICAgICAgICAgICIwLjE0NDg3MiwgMC4yNDg3NTYsIDAuMzMxNTg5LCAwLjQzNTEyNSwgMC41Mzg1OTYsIDAuNjQyMSwgMC43NDU1ODkiLCBcCi0gICAgICAgICAgIjAuMTU3NjA2LCAwLjI2MTQ5MSwgMC4zNDQzMywgMC40NDc4NjUsIDAuNTUxMzMzLCAwLjY1NDgzNCwgMC43NTgzMzEiLCBcCi0gICAgICAgICAgIjAuMTcwMDY0LCAwLjI3Mzk2OCwgMC4zNTY3OTcsIDAuNDYwMjk4LCAwLjU2Mzc4MywgMC42NjczMDEsIDAuNzcwNzg5IiwgXAotICAgICAgICAgICIwLjE4MTUxMiwgMC4yODU0MjYsIDAuMzY4MjI5LCAwLjQ3MTc3OCwgMC41NzUyNDUsIDAuNjc4NzI1LCAwLjc4MjE1OCIsIFwKLSAgICAgICAgICAiMC4xOTczMDYsIDAuMzAxMjIzLCAwLjM4NDAyLCAwLjQ4NzUyNCwgMC41OTA5OTMsIDAuNjk0NTI5LCAwLjc5ODA1MyIsIFwKLSAgICAgICAgICAiMC4yMDk2NDYsIDAuMzEzNTY0LCAwLjM5NjM1NywgMC40OTk4ODIsIDAuNjAzMzY5LCAwLjcwNjgxNCwgMC44MTAzNTMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDUwODUyLCAwLjI1ODAyMywgMC40MjU2MzIsIDAuNjM1OTMsIDAuODQ2Nzg4LCAxLjA1NzEsIDEuMjY3MjIiLCBcCi0gICAgICAgICAgIjAuMDUwODc3LCAwLjI1ODQ5MywgMC40MjY1MzIsIDAuNjM0ODQ2LCAwLjg0Njg5NCwgMS4wNTcwNywgMS4yNjQ4NSIsIFwKLSAgICAgICAgICAiMC4wNTA4NTMsIDAuMjU4NDk5LCAwLjQyNjU0OCwgMC42MzQ3NjQsIDAuODQ2OTAyLCAxLjA1NzA2LCAxLjI2NzE3IiwgXAotICAgICAgICAgICIwLjA1MDg1MiwgMC4yNTg1ODgsIDAuNDI2NjI4LCAwLjYzNjcwNCwgMC44NDY4NzIsIDEuMDU3MDMsIDEuMjY3MyIsIFwKLSAgICAgICAgICAiMC4wNTA4NTUsIDAuMjU3ODE2LCAwLjQyNTY4NCwgMC42MzQ5ODgsIDAuODQ2Nzk5LCAxLjA1NzAzLCAxLjI2NjgxIiwgXAotICAgICAgICAgICIwLjA1MDg1NiwgMC4yNTc4NjgsIDAuNDI1OTk1LCAwLjYzNjY1LCAwLjg0NjY1NywgMS4wNTcwOSwgMS4yNjcyNCIsIFwKLSAgICAgICAgICAiMC4wNTA4NiwgMC4yNTc4MjUsIDAuNDI2MzI1LCAwLjYzNjcwNSwgMC44NDY4OTEsIDEuMDU2NzQsIDEuMjY3MjQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA3OTk1LCAwLjAwODAzNiwgMC4wMDgwNDEsIDAuMDA4MDQ0LCAwLjAwODA0NSwgMC4wMDgwNDUsIDAuMDA4MDQ3IiwgXAotICAgICAgICAgICIwLjAwNzk2MywgMC4wMDgwMDUsIDAuMDA4MDEsIDAuMDA4MDEzLCAwLjAwODAxNCwgMC4wMDgwMTUsIDAuMDA4MDE1IiwgXAotICAgICAgICAgICIwLjAwNzk0OCwgMC4wMDc5OSwgMC4wMDc5OTYsIDAuMDA3OTk3LCAwLjAwNzk5OSwgMC4wMDc5OTgsIDAuMDA4MDAyIiwgXAotICAgICAgICAgICIwLjAwNzk0NywgMC4wMDc5ODksIDAuMDA3OTk0LCAwLjAwNzk5OCwgMC4wMDc5OTgsIDAuMDA3OTk5LCAwLjAwOCIsIFwKLSAgICAgICAgICAiMC4wMDc5NTcsIDAuMDA3OTk5LCAwLjAwODAwNCwgMC4wMDgwMDcsIDAuMDA4MDA4LCAwLjAwODAwOSwgMC4wMDgwMDkiLCBcCi0gICAgICAgICAgIjAuMDA3OTcxLCAwLjAwODAxNCwgMC4wMDgwMjMsIDAuMDA4MDIzLCAwLjAwODAyNCwgMC4wMDgwMjUsIDAuMDA4MDI0IiwgXAotICAgICAgICAgICIwLjAwODAwMiwgMC4wMDgwNDgsIDAuMDA4MDU2LCAwLjAwODA1NywgMC4wMDgwNTksIDAuMDA4MDYsIDAuMDA4MDYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDgxMDUsIDAuMDA4MTcsIDAuMDA4MTc4LCAwLjAwODE4MSwgMC4wMDgxODMsIDAuMDA4MTg0LCAwLjAwODE4NCIsIFwKLSAgICAgICAgICAiMC4wMDgwNzgsIDAuMDA4MTQzLCAwLjAwODE1LCAwLjAwODE1MywgMC4wMDgxNTUsIDAuMDA4MTU2LCAwLjAwODE1NyIsIFwKLSAgICAgICAgICAiMC4wMDgwNzUsIDAuMDA4MTQsIDAuMDA4MTQ3LCAwLjAwODE1LCAwLjAwODE1MiwgMC4wMDgxNTMsIDAuMDA4MTU0IiwgXAotICAgICAgICAgICIwLjAwODA5MSwgMC4wMDgxNTcsIDAuMDA4MTYzLCAwLjAwODE2NywgMC4wMDgxNjgsIDAuMDA4MTcsIDAuMDA4MTciLCBcCi0gICAgICAgICAgIjAuMDA4MTA4LCAwLjAwODE3MywgMC4wMDgxOCwgMC4wMDgxODMsIDAuMDA4MTg1LCAwLjAwODE4NiwgMC4wMDgxODYiLCBcCi0gICAgICAgICAgIjAuMDA4MTM4LCAwLjAwODIwMywgMC4wMDgyMSwgMC4wMDgyMTQsIDAuMDA4MjE1LCAwLjAwODIxNiwgMC4wMDgyMTciLCBcCi0gICAgICAgICAgIjAuMDA4MjAyLCAwLjAwODI2NywgMC4wMDgyNzMsIDAuMDA4Mjc3LCAwLjAwODI3OCwgMC4wMDgyNzksIDAuMDA4MjgiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogREZGTlNSWDIgKgotICogLS0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKERGRk5TUlgyKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuNTA2NjQ3OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIGZmIChOMzUsUUJJTlQpIHsKLSAgICBuZXh0X3N0YXRlIDogIkQiOwotICAgIGNsb2NrZWRfb24gOiAiKCFDS04pIjsKLSAgICBjbGVhciA6ICIoIVJOKSI7Ci0gICAgcHJlc2V0IDogIighU04pIjsKLSAgICBjbGVhcl9wcmVzZXRfdmFyMSA6IEg7Ci0gICAgY2xlYXJfcHJlc2V0X3ZhcjIgOiBMOwotICB9Ci0gIHBpbihDS04pICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY3OTU2OTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2Nzk0NTQ7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjc5NTY5OwotICAgIGNsb2NrIDogdHJ1ZTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDY0OTUsIDAuMDA2NDcyLCAwLjAwNjQ1OCwgMC4wMDY0NTcsIDAuMDA2NDYxLCAwLjAwNjQ4NSwgMC4wMDY0OTUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDQ3MzIsIDAuMDA0NzEyLCAwLjAwNDcwNywgMC4wMDQ3MDYsIDAuMDA0NzE0LCAwLjAwNDczOCwgMC4wMDQ3NTUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0tOIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRCZSTiZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fUk5fRVFfMV9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMTMzMzU0LCAwLjE0MzYwMiwgMC4xNTY1MjQsIDAuMTY5MDg1LCAwLjE4MDU5MywgMC4xOTY5MjEsIDAuMjA5MTE4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4xNjQ3NzUsIDAuMTc0NTU5LCAwLjE4NjgyOSwgMC4xOTg2NjYsIDAuMjA5MzY1LCAwLjIyNDQwOCwgMC4yMzU5MjMiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEQpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY4MjU4NDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2ODExNjE7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjgyNTg0OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzE5NiwgMC4wMDMxNzUsIDAuMDAzMTYyLCAwLjAwMzE1NCwgMC4wMDMxNTMsIDAuMDAzMTU0LCAwLjAwMzE1OSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzI4MiwgMC4wMDMyNjgsIDAuMDAzMjYsIDAuMDAzMjU1LCAwLjAwMzI1MywgMC4wMDMyNTEsIDAuMDAzMjUzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfZmFsbGluZzsKLSAgICAgIHdoZW4gOiAiUk4mU04iOwotICAgICAgc2RmX2NvbmQgOiAiUk5fRVFfMV9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDMxMjUsIDAuMDM2MjUsIDAuMDQ4NzUsIDAuMDYxMjUsIDAuMDczNzUsIDAuMDgzNzUsIDAuMDkyNSIsIFwKLSAgICAgICAgICAiMC4wMiwgMC4wMzEyNSwgMC4wNDM3NSwgMC4wNSwgMC4wNjI1LCAwLjA3ODc1LCAwLjA4NzUiLCBcCi0gICAgICAgICAgIjAuMDA3NSwgMC4wMTg3NSwgMC4wMzEyNSwgMC4wNDM3NSwgMC4wNTYyNSwgMC4wNjYyNSwgMC4wNzUiLCBcCi0gICAgICAgICAgIjAuMDAxMjUsIDAuMDEyNSwgMC4wMjUsIDAuMDM3NSwgMC4wNDM3NSwgMC4wNiwgMC4wNjg3NSIsIFwKLSAgICAgICAgICAiLTAuMDA1LCAwLjAwNjI1LCAwLjAxODc1LCAwLjAzMTI1LCAwLjAzNzUsIDAuMDUzNzUsIDAuMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDE1LCAtMC4wMDM3NSwgMC4wMDg3NSwgMC4wMjEyNSwgMC4wMjc1LCAwLjA0Mzc1LCAwLjA1MjUiLCBcCi0gICAgICAgICAgIi0wLjAxNzUsIC0wLjAwNjI1LCAwLCAwLjAxMjUsIDAuMDI1LCAwLjAzNSwgMC4wNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAxODc1LCAtMC4wMDc1LCAtMC4wMDEyNSwgMC4wMDUsIDAuMDExMjUsIDAuMDE1LCAwLjAyMzc1IiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLCAwLjAxLCAwLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgLTAuMDAyNSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDM3NSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDE4NzUsIC0wLjAwODc1LCAwIiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAxNSwgLTAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDU4NzUsIC0wLjA1Mzc1LCAtMC4wNDc1LCAtMC4wMzUsIC0wLjAzNSwgLTAuMDI1LCAtMC4wMTYyNSIsIFwKLSAgICAgICAgICAiLTAuMDY3NSwgLTAuMDYyNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzM3NSwgLTAuMDI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX2ZhbGxpbmc7Ci0gICAgICB3aGVuIDogIlJOJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIlJOX0VRXzFfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTYyNSwgMC4wNTEyNSwgMC4wMzI1LCAwLjAyLCAwLjAwNzUsIC0wLjAwODc1LCAtMC4wMTc1IiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDU2MjUsIDAuMDQzNzUsIDAuMDMxMjUsIDAuMDE4NzUsIDAuMDAyNSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMDgsIDAuMDY4NzUsIDAuMDU2MjUsIDAuMDQzNzUsIDAuMDMxMjUsIDAuMDE1LCAwIiwgXAotICAgICAgICAgICIwLjA4NjI1LCAwLjA3NSwgMC4wNjI1LCAwLjA1LCAwLjAzNzUsIDAuMDIxMjUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4wOTg3NSwgMC4wODc1LCAwLjA3NSwgMC4wNjI1LCAwLjA1LCAwLjAzMzc1LCAwLjAxODc1IiwgXAotICAgICAgICAgICIwLjEwODc1LCAwLjA5NzUsIDAuMDg1LCAwLjA3MjUsIDAuMDYsIDAuMDQzNzUsIDAuMDM1IiwgXAotICAgICAgICAgICIwLjEyMzc1LCAwLjExMjUsIDAuMDkzNzUsIDAuMDgxMjUsIDAuMDc1LCAwLjA1ODc1LCAwLjA0Mzc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDgxMjUsIDAuMDcsIDAuMDU3NSwgMC4wNDUsIDAuMDMyNSwgMC4wMjI1LCAwLjAxMzc1IiwgXAotICAgICAgICAgICIwLjA5MjUsIDAuMDgxMjUsIDAuMDYyNSwgMC4wNSwgMC4wNDM3NSwgMC4wMjc1LCAwLjAxODc1IiwgXAotICAgICAgICAgICIwLjA5ODc1LCAwLjA4NzUsIDAuMDc1LCAwLjA2MjUsIDAuMDUsIDAuMDQsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMTExMjUsIDAuMSwgMC4wODEyNSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA0NjI1LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIjAuMTE3NSwgMC4xMDYyNSwgMC4wOTM3NSwgMC4wODEyNSwgMC4wNjg3NSwgMC4wNTI1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjEyNzUsIDAuMTE2MjUsIDAuMTAzNzUsIDAuMDkxMjUsIDAuMDc4NzUsIDAuMDY4NzUsIDAuMDYiLCBcCi0gICAgICAgICAgIjAuMTM2MjUsIDAuMTI1LCAwLjExMjUsIDAuMSwgMC4wODc1LCAwLjA3NzUsIDAuMDY4NzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFEpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC41MTY2ODU7Ci0gICAgZnVuY3Rpb24gOiAiTjM1IjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDS04iOwotICAgICAgdGltaW5nX3NlbnNlIDogbm9uX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiBmYWxsaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE1OTgwMiwgMC4yNjM1NTksIDAuMzQ1MzExLCAwLjQ0NzU2MiwgMC41NDk4MjcsIDAuNjUzNDg4LCAwLjc1NTE1MyIsIFwKLSAgICAgICAgICAiMC4xNjk2MDQsIDAuMjczMzk5LCAwLjM1NTE1NCwgMC40NTczOTIsIDAuNTU5NjU3LCAwLjY2MzMzLCAwLjc2NTAxOSIsIFwKLSAgICAgICAgICAiMC4xODIwMDQsIDAuMjg1NDcxLCAwLjM2NzU0MSwgMC40Njk3MDksIDAuNTcyNzI4LCAwLjY3NDc0OCwgMC43NzcwMDciLCBcCi0gICAgICAgICAgIjAuMTkzOTkxLCAwLjI5NzQ1LCAwLjM3OTUxNiwgMC40ODE5NzUsIDAuNTg0NjczLCAwLjY4NzY0NCwgMC43ODkyNTQiLCBcCi0gICAgICAgICAgIjAuMjA0NzMsIDAuMzA4NTI0LCAwLjM5MDI1NSwgMC40OTI5MjEsIDAuNTk1MTE5LCAwLjY5ODM5OCwgMC44MDAwMTEiLCBcCi0gICAgICAgICAgIjAuMjE5NjY1LCAwLjMyMjk4NywgMC40MDUxOTEsIDAuNTA3OTQ3LCAwLjYxMDYyMywgMC43MTMzMTMsIDAuODE0ODg0IiwgXAotICAgICAgICAgICIwLjIzMTAxMSwgMC4zMzQ1MSwgMC40MTY1NzcsIDAuNTE5MjA3LCAwLjYyMTY5NiwgMC43MjQ2OTgsIDAuODI2MzU0Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1NTA4NiwgMC4yNjIxNjQsIDAuNDMyNjE3LCAwLjY0NDY3LCAwLjg1NzYxNiwgMS4wNjk5LCAxLjI4MjczIiwgXAotICAgICAgICAgICIwLjA1NDk5MSwgMC4yNjIxODIsIDAuNDMyNjE4LCAwLjY0NDcxNCwgMC44NTc2NDYsIDEuMDY5ODgsIDEuMjgyNzMiLCBcCi0gICAgICAgICAgIjAuMDU1MDE1LCAwLjI2MjQ1MiwgMC40MzI2MTgsIDAuNjQ0ODk0LCAwLjg1ODc0NiwgMS4wNzAwMSwgMS4yODIzNyIsIFwKLSAgICAgICAgICAiMC4wNTUwMjEsIDAuMjYyNDE5LCAwLjQzMjYyMSwgMC42NDQyNzMsIDAuODU4NzIxLCAxLjA2OTUzLCAxLjI4MjY5IiwgXAotICAgICAgICAgICIwLjA1NTAzLCAwLjI2Mjk0MSwgMC40MzI2MTUsIDAuNjQ1ODE5LCAwLjg1Nzg5MywgMS4wNjk4MiwgMS4yODI2NyIsIFwKLSAgICAgICAgICAiMC4wNTUyMjYsIDAuMjYyOTI4LCAwLjQzMjYyLCAwLjY0NTcxMywgMC44NTcxOTEsIDEuMDY5NTMsIDEuMjgyNjQiLCBcCi0gICAgICAgICAgIjAuMDU0OTA5LCAwLjI2MjQzOCwgMC40MzI2MjEsIDAuNjQ0MDE4LCAwLjg1ODY5NiwgMS4wNjk1MywgMS4yODI2NiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNDI3MzQsIDAuMjQ3NzE2LCAwLjMzMDM0OSwgMC40MzQyMDYsIDAuNTM4MDIzLCAwLjY0MjA0LCAwLjc0NTM2IiwgXAotICAgICAgICAgICIwLjE1MjUwOSwgMC4yNTc2MzksIDAuMzQwMjU1LCAwLjQ0NDA4NCwgMC41NDgyNCwgMC42NTEyODksIDAuNzU1NDYzIiwgXAotICAgICAgICAgICIwLjE2NDc3OCwgMC4yNjk5MDksIDAuMzUyNTMsIDAuNDU2MzU2LCAwLjU2MDUxMSwgMC42NjM3MzQsIDAuNzY3NzM5IiwgXAotICAgICAgICAgICIwLjE3NjYxOCwgMC4yODE3NDksIDAuMzY0MzQ5LCAwLjQ2ODEwOCwgMC41NzE4NjMsIDAuNjc1OTYzLCAwLjc3OTU3NSIsIFwKLSAgICAgICAgICAiMC4xODczMTYsIDAuMjkyNDQ2LCAwLjM3NTA0NSwgMC40Nzg4MzcsIDAuNTgzMDU4LCAwLjY4NjY1NywgMC43OTAyNzEiLCBcCi0gICAgICAgICAgIjAuMjAyMzc2LCAwLjMwNzI1OSwgMC4zOTA0ODYsIDAuNDk0Mjk0LCAwLjU5ODAwNSwgMC43MDE3MDksIDAuODA1Mzk5IiwgXAotICAgICAgICAgICIwLjIxMzg4NywgMC4zMTg1NTMsIDAuNDAxNTY4LCAwLjUwNTU2NCwgMC42MDk1NzEsIDAuNzEzMTYsIDAuODE2NzAxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1Mzk5MywgMC4yNTk3NjEsIDAuNDI1ODE4LCAwLjYzNzQyLCAwLjg0NzY5NywgMS4wNTg1MSwgMS4yNjY1MSIsIFwKLSAgICAgICAgICAiMC4wNTM3ODcsIDAuMjU4ODIxLCAwLjQyNzA5MSwgMC42MzU3MjMsIDAuODQ2MTIsIDEuMDU2MDgsIDEuMjY4ODUiLCBcCi0gICAgICAgICAgIjAuMDUzNzQ3LCAwLjI1ODgwOCwgMC40MjcwNzUsIDAuNjM1NzY2LCAwLjg0NjEyLCAxLjA1NjEzLCAxLjI2ODg2IiwgXAotICAgICAgICAgICIwLjA1MzY4OCwgMC4yNTg4MTQsIDAuNDI3MTE5LCAwLjYzNjUzMywgMC44NDc2NjksIDEuMDU1NzMsIDEuMjY4ODYiLCBcCi0gICAgICAgICAgIjAuMDUzNzI0LCAwLjI1ODgyOSwgMC40MjcxMjIsIDAuNjM2NDg2LCAwLjg0NjEyNSwgMS4wNTU3NywgMS4yNjg4OCIsIFwKLSAgICAgICAgICAiMC4wNTM3MDksIDAuMjU5NzU2LCAwLjQyNjg2NywgMC42MzczOTUsIDAuODQ4MDE5LCAxLjA1ODU2LCAxLjI2ODk3IiwgXAotICAgICAgICAgICIwLjA1MzcwMSwgMC4yNTkzOTQsIDAuNDI3MTUxLCAwLjYzNzI1NywgMC44NDU4NywgMS4wNTg0NSwgMS4yNjg1NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogY2xlYXI7Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE5NDEyNiwgMC4yOTkxODYsIDAuMzgxODMxLCAwLjQ4NiwgMC41ODk2NywgMC42OTMyNTcsIDAuNzk2OTc3IiwgXAotICAgICAgICAgICIwLjIwNDA0LCAwLjMwOTEsIDAuMzkxNzQ2LCAwLjQ5NTkxNSwgMC41OTk1ODUsIDAuNzAzMTY0LCAwLjgwNjg5MiIsIFwKLSAgICAgICAgICAiMC4yMTYxNDIsIDAuMzIxMjA2LCAwLjQwMzg1MSwgMC41MDgwMTYsIDAuNjExNjg2LCAwLjcxNTI1NCwgMC44MTg5OTUiLCBcCi0gICAgICAgICAgIjAuMjI2OTg1LCAwLjMzMjA1LCAwLjQxNDY4NywgMC41MTg4NTksIDAuNjIyNTI4LCAwLjcyNjA2NCwgMC44Mjk4NDEiLCBcCi0gICAgICAgICAgIjAuMjM2MzA0LCAwLjM0MTM3NSwgMC40MjM5NzgsIDAuNTI4MDU1LCAwLjYzMTY0OCwgMC43MzU0OTksIDAuODM5MTYiLCBcCi0gICAgICAgICAgIjAuMjQ5NDExLCAwLjM1Mzk5OCwgMC40MzcwNDksIDAuNTQxMjY4LCAwLjY0NDk5MSwgMC43NDg1OTcsIDAuODUxODg2IiwgXAotICAgICAgICAgICIwLjI1OTY0MywgMC4zNjQ3MTMsIDAuNDQ3MzU3LCAwLjU1MTU3MywgMC42NTUyMzgsIDAuNzU4Mzk5LCAwLjg2MjQ5NiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTM3NDQsIDAuMjYwMTQxLCAwLjQyNzI2MSwgMC42Mzc0NzMsIDAuODQ4MTQ5LCAxLjA1ODUsIDEuMjY5MTQiLCBcCi0gICAgICAgICAgIjAuMDUzNzQ1LCAwLjI1OTcwOSwgMC40MjcyNTcsIDAuNjM3NDQzLCAwLjg0ODE0OCwgMS4wNTg0OCwgMS4yNjkxNCIsIFwKLSAgICAgICAgICAiMC4wNTM4LCAwLjI1OTEwMywgMC40MjcyNSwgMC42MzczMDksIDAuODQ4MTQ2LCAxLjA1ODQ2LCAxLjI2OTE0IiwgXAotICAgICAgICAgICIwLjA1Mzk4MSwgMC4yNTk3MzEsIDAuNDI3Mjk0LCAwLjYzNzQ0NywgMC44NDgxNDgsIDEuMDU4NDYsIDEuMjY5MTQiLCBcCi0gICAgICAgICAgIjAuMDU0MDAzLCAwLjI2MDE3MiwgMC40MjczNDUsIDAuNjM3NDUzLCAwLjg0NzkzNCwgMS4wNTg2NCwgMS4yNjkxNCIsIFwKLSAgICAgICAgICAiMC4wNTM4MjMsIDAuMjU5OTgsIDAuNDI3MjM3LCAwLjYzNzUxNiwgMC44NDc5ODIsIDEuMDU4NjcsIDEuMjY4NzgiLCBcCi0gICAgICAgICAgIjAuMDUzOTgsIDAuMjYwMTYzLCAwLjQyNzI3NiwgMC42Mzc0NDksIDAuODQ3OTc4LCAxLjA1ODQ1LCAxLjI2OTA4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiBwcmVzZXQ7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEyODMyOCwgMC4yMzE0NDgsIDAuMzEzNzIxLCAwLjQxNjM1NSwgMC41MTg0OTcsIDAuNjIxMzM1LCAwLjcyMzg2IiwgXAotICAgICAgICAgICIwLjEzODIwMiwgMC4yNDE2MzUsIDAuMzIzNjEyLCAwLjQyNjQyNCwgMC41Mjg3OTcsIDAuNjMxMjg3LCAwLjczMzcwNiIsIFwKLSAgICAgICAgICAiMC4xNTAzMjMsIDAuMjUzNDQ3LCAwLjMzNTQ3NCwgMC40MzgzOTgsIDAuNTQwNjQyLCAwLjY0MzMyMSwgMC43NDU4NTgiLCBcCi0gICAgICAgICAgIjAuMTYyNzkzLCAwLjI2NjIzOCwgMC4zNDc4NjMsIDAuNDUwNDg5LCAwLjU1MzY3OSwgMC42NTU3OTYsIDAuNzU4MzMzIiwgXAotICAgICAgICAgICIwLjE3NDU3LCAwLjI3ODAzNywgMC4zNjAxNzQsIDAuNDYyNzgzLCAwLjU2NTE1NSwgMC42Njc2NDcsIDAuNzcwMTA0IiwgXAotICAgICAgICAgICIwLjE5MjQzNSwgMC4yOTU3MzMsIDAuMzc3OTkzLCAwLjQ4MDY5MywgMC41ODMwMjksIDAuNjg1NDk5LCAwLjc4NzI0MSIsIFwKLSAgICAgICAgICAiMC4yMDU5ODQsIDAuMzA5MTYzLCAwLjM5MTE2LCAwLjQ5NDM2NywgMC41OTY1ODgsIDAuNjk5MDIxLCAwLjgwMDkxOSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTQxNDcsIDAuMjYyODg0LCAwLjQzMjcwMiwgMC42NDU3NzgsIDAuODU4NTUzLCAxLjA3MTUxLCAxLjI4NDYzIiwgXAotICAgICAgICAgICIwLjA1NDE1NSwgMC4yNjI4MDksIDAuNDMyNywgMC42NDU3OTYsIDAuODU4NTUsIDEuMDcxNTMsIDEuMjg0NjUiLCBcCi0gICAgICAgICAgIjAuMDU0MTQ5LCAwLjI2MzEwMSwgMC40MzI3MSwgMC42NDU3OTQsIDAuODU4NTcsIDEuMDcxNTEsIDEuMjg0NjMiLCBcCi0gICAgICAgICAgIjAuMDU0MjgsIDAuMjYzMDMzLCAwLjQzMjY5OSwgMC42NDU3OSwgMC44NTg1NTcsIDEuMDcxNSwgMS4yODQ2MiIsIFwKLSAgICAgICAgICAiMC4wNTQyOTIsIDAuMjYyOTA5LCAwLjQzMjI3OSwgMC42NDU3NzQsIDAuODU4NTY5LCAxLjA3MTUxLCAxLjI4NDY0IiwgXAotICAgICAgICAgICIwLjA1NDQxNiwgMC4yNjMwNDUsIDAuNDMyNzI1LCAwLjY0NTgwOSwgMC44NTg1MzQsIDEuMDcxNTIsIDEuMjg0NjEiLCBcCi0gICAgICAgICAgIjAuMDU0NDA1LCAwLjI2Mjk4MiwgMC40MzI3NzQsIDAuNjQ1Nzg5LCAwLjg1ODU4NywgMS4wNzE1MiwgMS4yODQ2MSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNzM1NTUsIDAuMjc4NjA1LCAwLjM2MTI0OCwgMC40NjU0NDIsIDAuNTY5MTE4LCAwLjY3Mjg4NiwgMC43NzY0MDciLCBcCi0gICAgICAgICAgIjAuMTgzMTQ5LCAwLjI4ODIxOSwgMC4zNzA4NSwgMC40NzUwNTgsIDAuNTc4NzMyLCAwLjY4MjM3OSwgMC43ODYwMDUiLCBcCi0gICAgICAgICAgIjAuMTk0MTA1LCAwLjI5OTE3NywgMC4zODE3ODMsIDAuNDg1OTg0LCAwLjU4OTY1NCwgMC42OTMxNzksIDAuNzk2OTciLCBcCi0gICAgICAgICAgIjAuMjA0ODgsIDAuMzA5OTQ5LCAwLjM5MjYxMSwgMC40OTY3NiwgMC42MDA0MywgMC43MDM5NTIsIDAuODA3NzQ1IiwgXAotICAgICAgICAgICIwLjIxNTUwNCwgMC4zMjA1NzYsIDAuNDAzMzAyLCAwLjUwNzM4MywgMC42MTEwNTMsIDAuNzE0NDI0LCAwLjgxODM3MyIsIFwKLSAgICAgICAgICAiMC4yMzIxODcsIDAuMzM3MjU1LCAwLjQyMDEyNSwgMC41MjQwNTUsIDAuNjI3NzI3LCAwLjczMTAyMSwgMC44MzUwNTkiLCBcCi0gICAgICAgICAgIjAuMjQ2MzI2LCAwLjM1MTQxOSwgMC40MzQwNCwgMC41MzgyNjEsIDAuNjQxOTI5LCAwLjc0NTU3NiwgMC44NDkxOTMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU0MDQ4LCAwLjI1OTgsIDAuNDI3MjkxLCAwLjYzNjEyOSwgMC44NDgxODMsIDEuMDU4MzksIDEuMjY5MTgiLCBcCi0gICAgICAgICAgIjAuMDUzOTgzLCAwLjI1OTgyNiwgMC40MjczMTksIDAuNjM2NDE5LCAwLjg0ODIzNiwgMS4wNTg3LCAxLjI2OTA5IiwgXAotICAgICAgICAgICIwLjA1MzcyNCwgMC4yNjAxNTEsIDAuNDI3MzU0LCAwLjYzNjEwNSwgMC44NDgxNDgsIDEuMDU4MzgsIDEuMjY5MTUiLCBcCi0gICAgICAgICAgIjAuMDUzNzM4LCAwLjI2MDE1MiwgMC40MjcyNTQsIDAuNjM2MjIxLCAwLjg0ODE0LCAxLjA1ODM2LCAxLjI2OTEzIiwgXAotICAgICAgICAgICIwLjA1MzgzLCAwLjI1OTYwNiwgMC40MjcxMzMsIDAuNjM2NTUzLCAwLjg0ODE0NSwgMS4wNTgzNCwgMS4yNjkxNCIsIFwKLSAgICAgICAgICAiMC4wNTQwNywgMC4yNTk3OTEsIDAuNDI3MTQzLCAwLjYzNjE1LCAwLjg0ODEzLCAxLjA1ODM3LCAxLjI2OTE0IiwgXAotICAgICAgICAgICIwLjA1Mzk1OCwgMC4yNTk3NDYsIDAuNDI3MjcxLCAwLjYzNzQyOCwgMC44NDc5NjksIDEuMDU4NjksIDEuMjY5MTEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDS04iOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjQxLCAwLjAwNjQ1NCwgMC4wMDY0NTksIDAuMDA2NDYyLCAwLjAwNjQ2MywgMC4wMDY0NjMsIDAuMDA2NDY1IiwgXAotICAgICAgICAgICIwLjAwNjM5OSwgMC4wMDY0NDMsIDAuMDA2NDQ4LCAwLjAwNjQ1MSwgMC4wMDY0NTIsIDAuMDA2NDUyLCAwLjAwNjQ1MyIsIFwKLSAgICAgICAgICAiMC4wMDYzOTksIDAuMDA2NDQyLCAwLjAwNjQ0NywgMC4wMDY0NSwgMC4wMDY0NTEsIDAuMDA2NDUyLCAwLjAwNjQ1MiIsIFwKLSAgICAgICAgICAiMC4wMDY0MSwgMC4wMDY0NTMsIDAuMDA2NDU4LCAwLjAwNjQ2LCAwLjAwNjQ2MSwgMC4wMDY0NjIsIDAuMDA2NDYzIiwgXAotICAgICAgICAgICIwLjAwNjQxMSwgMC4wMDY0NTUsIDAuMDA2NDYsIDAuMDA2NDY0LCAwLjAwNjQ2MywgMC4wMDY0NjQsIDAuMDA2NDY1IiwgXAotICAgICAgICAgICIwLjAwNjQyMiwgMC4wMDY0NjQsIDAuMDA2NDcxLCAwLjAwNjQ3MywgMC4wMDY0NzQsIDAuMDA2NDc1LCAwLjAwNjQ3NiIsIFwKLSAgICAgICAgICAiMC4wMDY0MzcsIDAuMDA2NDgxLCAwLjAwNjQ4NiwgMC4wMDY0ODgsIDAuMDA2NDg5LCAwLjAwNjQ5LCAwLjAwNjQ5MSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjA3OCwgMC4wMDYxMjUsIDAuMDA2MTMyLCAwLjAwNjEzNSwgMC4wMDYxMzcsIDAuMDA2MTM3LCAwLjAwNjEzNyIsIFwKLSAgICAgICAgICAiMC4wMDYwNjYsIDAuMDA2MTE0LCAwLjAwNjEyLCAwLjAwNjEyMywgMC4wMDYxMjQsIDAuMDA2MTI1LCAwLjAwNjEyNiIsIFwKLSAgICAgICAgICAiMC4wMDYwNjIsIDAuMDA2MTA5LCAwLjAwNjExNSwgMC4wMDYxMTgsIDAuMDA2MTE5LCAwLjAwNjEyMSwgMC4wMDYxMjEiLCBcCi0gICAgICAgICAgIjAuMDA2MDY0LCAwLjAwNjExMiwgMC4wMDYxMTgsIDAuMDA2MTIsIDAuMDA2MTIyLCAwLjAwNjEyMywgMC4wMDYxMjMiLCBcCi0gICAgICAgICAgIjAuMDA2MDY4LCAwLjAwNjExNiwgMC4wMDYxMjIsIDAuMDA2MTI1LCAwLjAwNjEyNiwgMC4wMDYxMjcsIDAuMDA2MTI3IiwgXAotICAgICAgICAgICIwLjAwNjA2NSwgMC4wMDYxMTMsIDAuMDA2MTE4LCAwLjAwNjEyLCAwLjAwNjEyMiwgMC4wMDYxMjMsIDAuMDA2MTI0IiwgXAotICAgICAgICAgICIwLjAwNjA3NCwgMC4wMDYxMjQsIDAuMDA2MTI4LCAwLjAwNjEzMSwgMC4wMDYxMzIsIDAuMDA2MTMxLCAwLjAwNjEzMyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDY4NDEsIDAuMDA2ODkxLCAwLjAwNjg5NiwgMC4wMDY4OTksIDAuMDA2OTAzLCAwLjAwNjkwMSwgMC4wMDY5MDIiLCBcCi0gICAgICAgICAgIjAuMDA2ODI5LCAwLjAwNjg3OSwgMC4wMDY4ODUsIDAuMDA2ODg3LCAwLjAwNjg5MSwgMC4wMDY4OSwgMC4wMDY4OSIsIFwKLSAgICAgICAgICAiMC4wMDY4MjYsIDAuMDA2ODc2LCAwLjAwNjg4MiwgMC4wMDY4ODQsIDAuMDA2ODg2LCAwLjAwNjg4NywgMC4wMDY4ODciLCBcCi0gICAgICAgICAgIjAuMDA2ODI1LCAwLjAwNjg3NSwgMC4wMDY4ODEsIDAuMDA2ODg0LCAwLjAwNjg4NywgMC4wMDY4ODYsIDAuMDA2ODg2IiwgXAotICAgICAgICAgICIwLjAwNjgzMiwgMC4wMDY4ODEsIDAuMDA2ODg3LCAwLjAwNjg4OSwgMC4wMDY4OTQsIDAuMDA2ODkyLCAwLjAwNjg5MiIsIFwKLSAgICAgICAgICAiMC4wMDY4MzgsIDAuMDA2ODg4LCAwLjAwNjg5MywgMC4wMDY4OTYsIDAuMDA2ODk3LCAwLjAwNjg5OCwgMC4wMDY4OTkiLCBcCi0gICAgICAgICAgIjAuMDA2ODM2LCAwLjAwNjg4NSwgMC4wMDY4OTEsIDAuMDA2ODk0LCAwLjAwNjg5NSwgMC4wMDY4OTYsIDAuMDA2ODk2Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3Bvd2VyKHNjYWxhcikgewotICAgICAgICB2YWx1ZXMoIjAiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2Mzk0LCAwLjAwNjQzNCwgMC4wMDY0MzgsIDAuMDA2NDM5LCAwLjAwNjQ0MSwgMC4wMDY0NCwgMC4wMDY0NCIsIFwKLSAgICAgICAgICAiMC4wMDYzODIsIDAuMDA2NDIxLCAwLjAwNjQyNSwgMC4wMDY0MjYsIDAuMDA2NDI3LCAwLjAwNjQyNywgMC4wMDY0MjgiLCBcCi0gICAgICAgICAgIjAuMDA2Mzc0LCAwLjAwNjQxNCwgMC4wMDY0MTgsIDAuMDA2NDE5LCAwLjAwNjQyLCAwLjAwNjQyLCAwLjAwNjQyIiwgXAotICAgICAgICAgICIwLjAwNjM3LCAwLjAwNjQxLCAwLjAwNjQxMywgMC4wMDY0MTUsIDAuMDA2NDE2LCAwLjAwNjQxNiwgMC4wMDY0MTYiLCBcCi0gICAgICAgICAgIjAuMDA2MzcsIDAuMDA2NDA5LCAwLjAwNjQxMywgMC4wMDY0MTUsIDAuMDA2NDE2LCAwLjAwNjQxNywgMC4wMDY0MTYiLCBcCi0gICAgICAgICAgIjAuMDA2MzcxLCAwLjAwNjQxMiwgMC4wMDY0MTUsIDAuMDA2NDE3LCAwLjAwNjQxOCwgMC4wMDY0MTgsIDAuMDA2NDE5IiwgXAotICAgICAgICAgICIwLjAwNjM3OCwgMC4wMDY0MTksIDAuMDA2NDI0LCAwLjAwNjQyNSwgMC4wMDY0MjYsIDAuMDA2NDI3LCAwLjAwNjQyNyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNTMyMSwgMC4wMDUzNzEsIDAuMDA1Mzc3LCAwLjAwNTM4LCAwLjAwNTM4NSwgMC4wMDUzODIsIDAuMDA1MzgyIiwgXAotICAgICAgICAgICIwLjAwNTMwNSwgMC4wMDUzNTQsIDAuMDA1MzYsIDAuMDA1MzYzLCAwLjAwNTM2NCwgMC4wMDUzNjUsIDAuMDA1MzY1IiwgXAotICAgICAgICAgICIwLjAwNTI5MywgMC4wMDUzNDMsIDAuMDA1MzQ5LCAwLjAwNTM1MiwgMC4wMDUzNTYsIDAuMDA1MzU0LCAwLjAwNTM1NSIsIFwKLSAgICAgICAgICAiMC4wMDUyODgsIDAuMDA1MzM3LCAwLjAwNTM0NSwgMC4wMDUzNDcsIDAuMDA1MzUsIDAuMDA1MzQ4LCAwLjAwNTM0OSIsIFwKLSAgICAgICAgICAiMC4wMDUyODMsIDAuMDA1MzMzLCAwLjAwNTM0MSwgMC4wMDUzNDIsIDAuMDA1MzQ2LCAwLjAwNTM0NiwgMC4wMDUzNDMiLCBcCi0gICAgICAgICAgIjAuMDA1Mjc3LCAwLjAwNTMyNywgMC4wMDUzMzMsIDAuMDA1MzM2LCAwLjAwNTM0LCAwLjAwNTMzNywgMC4wMDUzMzkiLCBcCi0gICAgICAgICAgIjAuMDA1MjcyLCAwLjAwNTMyMiwgMC4wMDUzMjgsIDAuMDA1MzMxLCAwLjAwNTMzMywgMC4wMDUzMywgMC4wMDUzMzQiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFFOKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuNTIxOTY4OwotICAgIGZ1bmN0aW9uIDogIlFCSU5UIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDS04iOwotICAgICAgdGltaW5nX3NlbnNlIDogbm9uX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiBmYWxsaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE2NDc3NSwgMC4yNjc1MjEsIDAuMzQ5Nzg1LCAwLjQ1MjcyOSwgMC41NTU3ODYsIDAuNjU4ODM2LCAwLjc2MTc1MiIsIFwKLSAgICAgICAgICAiMC4xNzQ1NTksIDAuMjc3MzE4LCAwLjM1OTYyLCAwLjQ2MjYwNywgMC41NjU2NzQsIDAuNjY4MzY4LCAwLjc3MTU3OCIsIFwKLSAgICAgICAgICAiMC4xODY4MjksIDAuMjg5NTg4LCAwLjM3MTg4OSwgMC40NzQ4NzYsIDAuNTc3OTQ0LCAwLjY4MDgyMSwgMC43ODM4NSIsIFwKLSAgICAgICAgICAiMC4xOTg2NjYsIDAuMzAxNDI3LCAwLjM4MzczLCAwLjQ4NjcxLCAwLjU4OTU3MiwgMC42OTI3MzYsIDAuNzk1Njg4IiwgXAotICAgICAgICAgICIwLjIwOTM2NSwgMC4zMTIxMjUsIDAuMzk0NDI4LCAwLjQ5NzQxLCAwLjYwMDQ4NywgMC43MDM0MzIsIDAuODA2Mzg1IiwgXAotICAgICAgICAgICIwLjIyNDQwOCwgMC4zMjcxNTIsIDAuNDA5NTI2LCAwLjUxMjUxLCAwLjYxNTQ5NCwgMC43MTg0OSwgMC44MjE0ODMiLCBcCi0gICAgICAgICAgIjAuMjM1OTIzLCAwLjMzODYzNywgMC40MjEwMDMsIDAuNTIzOTIxLCAwLjYyNzAyMywgMC43Mjk5NzIsIDAuODMyODc5Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1MTU4NCwgMC4yNjMxNzEsIDAuNDMzNjA2LCAwLjY0ODc1OSwgMC44NjMwNTEsIDEuMDc3OTcsIDEuMjkwNiIsIFwKLSAgICAgICAgICAiMC4wNTE1NzMsIDAuMjYzMDIsIDAuNDM0Mjk2LCAwLjY0ODE5LCAwLjg2MTgyNCwgMS4wNzYzMiwgMS4yOTIyMSIsIFwKLSAgICAgICAgICAiMC4wNTE1NzMsIDAuMjYzMDE5LCAwLjQzNDI4OCwgMC42NDgxODUsIDAuODYxODIsIDEuMDc2NDYsIDEuMjkyMjIiLCBcCi0gICAgICAgICAgIjAuMDUxNTgsIDAuMjYzMDE5LCAwLjQzNDMxNiwgMC42NDgxMTUsIDAuODYzMDEzLCAxLjA3NTg2LCAxLjI5MjIyIiwgXAotICAgICAgICAgICIwLjA1MTU3OSwgMC4yNjMwMjIsIDAuNDM0MzE4LCAwLjY0ODE4LCAwLjg2MTc5MSwgMS4wNzU4NiwgMS4yOTIyMiIsIFwKLSAgICAgICAgICAiMC4wNTE1OCwgMC4yNjMyMjksIDAuNDM0OTA0LCAwLjY0OTM2NiwgMC44NjM2NzcsIDEuMDc3OTYsIDEuMjkyMjciLCBcCi0gICAgICAgICAgIjAuMDUxNTgsIDAuMjYzMzY2LCAwLjQzNDM5MSwgMC42NDkxNTksIDAuODYxOTE2LCAxLjA3NzkxLCAxLjI5MjAzIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE4NDEyOSwgMC4yODc3NTIsIDAuMzcwNjYxLCAwLjQ3NDM1MiwgMC41Nzc5NTQsIDAuNjgxOTE4LCAwLjc4NTU1OCIsIFwKLSAgICAgICAgICAiMC4xOTM5MTQsIDAuMjk3NTk4LCAwLjM4MDUwNywgMC40ODQxOTgsIDAuNTg3Nzk5LCAwLjY5MTc2MiwgMC43OTU0MDUiLCBcCi0gICAgICAgICAgIjAuMjA2MzIyLCAwLjMwOTkyMSwgMC4zOTI4NjIsIDAuNDk2NTU5LCAwLjYwMDI4MiwgMC43MDQwMjgsIDAuODA3NzM2IiwgXAotICAgICAgICAgICIwLjIxODMwOCwgMC4zMjE5MDYsIDAuNDA0ODQ3LCAwLjUwODU1NiwgMC42MTIyNiwgMC43MTYwOSwgMC44MTk3MzgiLCBcCi0gICAgICAgICAgIjAuMjI5MDUxLCAwLjMzMjY3MywgMC40MTU1NzksIDAuNTE5Mjg5LCAwLjYyMjkwOSwgMC43MjY4MjcsIDAuODMwNDciLCBcCi0gICAgICAgICAgIjAuMjQzOTc1LCAwLjM0NzU2OCwgMC40MzA1MTEsIDAuNTM0MjM0LCAwLjYzNzk3NywgMC43NDE3NTIsIDAuODQ1Mzk5IiwgXAotICAgICAgICAgICIwLjI1NTM0LCAwLjM1ODk1NywgMC40NDE4OTksIDAuNTQ1NjE2LCAwLjY0OTMwNCwgMC43NTMxNCwgMC44NTY3OTEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDUwODM4LCAwLjI1ODIyMiwgMC40MjY0ODIsIDAuNjM2MjM1LCAwLjg0NjIyOCwgMS4wNTU3NiwgMS4yNjU4OSIsIFwKLSAgICAgICAgICAiMC4wNTA4MTgsIDAuMjU4MjI3LCAwLjQyNjQ4MSwgMC42MzYyNDYsIDAuODQ2MjM3LCAxLjA1NTc1LCAxLjI2NTkiLCBcCi0gICAgICAgICAgIjAuMDUwODE5LCAwLjI1ODM0NiwgMC40MjY0ODcsIDAuNjM2MTM4LCAwLjg0NzE1OCwgMS4wNTYsIDEuMjY1NzEiLCBcCi0gICAgICAgICAgIjAuMDUwODE4LCAwLjI1ODM1MiwgMC40MjY0ODMsIDAuNjM2MDEzLCAwLjg0NzEyMiwgMS4wNTU1NywgMS4yNjU4NiIsIFwKLSAgICAgICAgICAiMC4wNTA4MzcsIDAuMjU4MjU3LCAwLjQyNjQ4NSwgMC42MzY4NTcsIDAuODQ2Njg5LCAxLjA1NTgsIDEuMjY1ODgiLCBcCi0gICAgICAgICAgIjAuMDUwNzkxLCAwLjI1ODQ4NywgMC40MjY0ODgsIDAuNjM2ODQ5LCAwLjg0NTc5LCAxLjA1NTU3LCAxLjI2NTg3IiwgXAotICAgICAgICAgICIwLjA1MDgyOSwgMC4yNTgzNDQsIDAuNDI2NDg0LCAwLjYzNTc1NSwgMC44NDcwNzYsIDEuMDU1NTcsIDEuMjY1ODMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUk4iOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHByZXNldDsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjE2MTE3LCAwLjMxODg4MSwgMC40MDExODMsIDAuNTA0MjA2LCAwLjYwNzE3NiwgMC43MTAxMSwgMC44MTMxMDciLCBcCi0gICAgICAgICAgIjAuMjI2MDMxLCAwLjMyODc5NCwgMC40MTEwOTYsIDAuNTE0MTE5LCAwLjYxNzA5LCAwLjcyMDAyLCAwLjgyMzAyMSIsIFwKLSAgICAgICAgICAiMC4yMzgxMzQsIDAuMzQwOTAxLCAwLjQyMzIwMiwgMC41MjYyMjUsIDAuNjI5MTk1LCAwLjczMjEyLCAwLjgzNTEyOCIsIFwKLSAgICAgICAgICAiMC4yNDg5NiwgMC4zNTE3NDIsIDAuNDM0MDQ1LCAwLjUzNzA2NywgMC42NDAwMzcsIDAuNzQyOTQ3LCAwLjg0NTk3MiIsIFwKLSAgICAgICAgICAiMC4yNTgzMzgsIDAuMzYxMSwgMC40NDM0MDEsIDAuNTQ2Mzg3LCAwLjY0OTI5OSwgMC43NTIzNiwgMC44NTUzMjkiLCBcCi0gICAgICAgICAgIjAuMjcxNDIzLCAwLjM3NDEwNCwgMC40NTY0ODUsIDAuNTU5NTAyLCAwLjY2MjQ5NywgMC43NjU0MzksIDAuODY4NDEiLCBcCi0gICAgICAgICAgIjAuMjgxNjcxLCAwLjM4NDQzLCAwLjQ2NjczLCAwLjU2OTc3NSwgMC42NzI3NDQsIDAuNzc1NzA3LCAwLjg3ODY1NiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTE2MjcsIDAuMjYzNTY2LCAwLjQzNDcxNSwgMC42NDkzNDUsIDAuODYzNzI4LCAxLjA3NzkyLCAxLjI5MjM2IiwgXAotICAgICAgICAgICIwLjA1MTYyNywgMC4yNjM0MDksIDAuNDM0NzE0LCAwLjY0OTM1MSwgMC44NjM3MjcsIDEuMDc3OTIsIDEuMjkyMzYiLCBcCi0gICAgICAgICAgIjAuMDUxNjI0LCAwLjI2MzA1LCAwLjQzNDcxNSwgMC42NDkwMDIsIDAuODYzNzI1LCAxLjA3NzkxLCAxLjI5MjM2IiwgXAotICAgICAgICAgICIwLjA1MTYxNCwgMC4yNjI5ODksIDAuNDM0NzQxLCAwLjY0OTM0MiwgMC44NjM3MjcsIDEuMDc3OSwgMS4yOTIzNiIsIFwKLSAgICAgICAgICAiMC4wNTE2MzYsIDAuMjYzNTc5LCAwLjQzNDczLCAwLjY0OTM3MiwgMC44NjM1ODQsIDEuMDc4MDMsIDEuMjkyMzUiLCBcCi0gICAgICAgICAgIjAuMDUxNjE2LCAwLjI2MzA0OSwgMC40MzQ2NjIsIDAuNjQ5NDEyLCAwLjg2MzU1NSwgMS4wNzgwNSwgMS4yOTIxMiIsIFwKLSAgICAgICAgICAiMC4wNTE2NDEsIDAuMjYzNTY3LCAwLjQzNDc1NiwgMC42NDkzMzYsIDAuODYzNTQ0LCAxLjA3Nzg0LCAxLjI5MjMyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiBjbGVhcjsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTk1NTQ4LCAwLjI5ODMxMiwgMC4zODA2MTYsIDAuNDgzNjQyLCAwLjU4NjYxNCwgMC42ODk2NDEsIDAuNzkyNTM2IiwgXAotICAgICAgICAgICIwLjIwNTE3OCwgMC4zMDc5MzcsIDAuMzkwMjM4LCAwLjQ5MzI3MiwgMC41OTYyNDQsIDAuNjk5MjA4LCAwLjgwMjE2IiwgXAotICAgICAgICAgICIwLjIxNjA4NSwgMC4zMTg4NjgsIDAuNDAxMTcxLCAwLjUwNDE5MSwgMC42MDcxNiwgMC43MTAwNjUsIDAuODEzMDk1IiwgXAotICAgICAgICAgICIwLjIyNjg2OCwgMC4zMjk2MzYsIDAuNDExOTQ4LCAwLjUxNDk1OCwgMC42MTc5MjgsIDAuNzIwODMxLCAwLjgyMzg2MiIsIFwKLSAgICAgICAgICAiMC4yMzc0ODcsIDAuMzQwMjY1LCAwLjQyMjU4MSwgMC41MjU1ODcsIDAuNjI4NTU3LCAwLjczMTQ2OSwgMC44MzQ0OTQiLCBcCi0gICAgICAgICAgIjAuMjU0MTczLCAwLjM1Njk0NCwgMC40MzkyNTUsIDAuNTQyMjY1LCAwLjY0NTIzNSwgMC43NDgxNjcsIDAuODUxMTc4IiwgXAotICAgICAgICAgICIwLjI2ODMyMywgMC4zNzExMjQsIDAuNDUzNDIyLCAwLjU1NjQ2NCwgMC42NTk0MzMsIDAuNzYyMzk3LCAwLjg2NTM0NyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTE2MjYsIDAuMjYzMzYxLCAwLjQzNDcwNywgMC42NDgwMTcsIDAuODYzNzI3LCAxLjA3Nzc4LCAxLjI5MjM5IiwgXAotICAgICAgICAgICIwLjA1MTY0LCAwLjI2MzAxMywgMC40MzQ3NTYsIDAuNjQ4MDIyLCAwLjg2Mzc0MiwgMS4wNzgwOCwgMS4yOTIzMyIsIFwKLSAgICAgICAgICAiMC4wNTE2MDQsIDAuMjYzNTU0LCAwLjQzNDczNiwgMC42NDgwNDMsIDAuODYzNzIzLCAxLjA3Nzg5LCAxLjI5MjM2IiwgXAotICAgICAgICAgICIwLjA1MTYyNiwgMC4yNjM1NTUsIDAuNDM0NjcsIDAuNjQ4MDIzLCAwLjg2MzcxNSwgMS4wNzc4OCwgMS4yOTIzNSIsIFwKLSAgICAgICAgICAiMC4wNTE2MTYsIDAuMjYzMTIxLCAwLjQzNDMyLCAwLjY0ODIyNCwgMC44NjM3MTksIDEuMDc3NzQsIDEuMjkyMzUiLCBcCi0gICAgICAgICAgIjAuMDUxNjM4LCAwLjI2MzA5NywgMC40MzQ5ODYsIDAuNjQ4MDI4LCAwLjg2MzcwOCwgMS4wNzc3NywgMS4yOTIzNSIsIFwKLSAgICAgICAgICAiMC4wNTE2MSwgMC4yNjMxMjYsIDAuNDM0NzIxLCAwLjY0OTI2NCwgMC44NjM1MTMsIDEuMDc4MDUsIDEuMjkyMzMiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTUyNzEzLCAwLjI1NjM1LCAwLjMzOTI5OSwgMC40NDMwMSwgMC41NDY2MjYsIDAuNjUwNDI0LCAwLjc1NDE0OCIsIFwKLSAgICAgICAgICAiMC4xNjI2MDIsIDAuMjY2MjA3LCAwLjM0OTE0OSwgMC40NTI4OTIsIDAuNTU2NTc5LCAwLjY2MDI5MSwgMC43NjM5ODYiLCBcCi0gICAgICAgICAgIjAuMTc0NzA3LCAwLjI3ODM0MywgMC4zNjEyOTYsIDAuNDY1MDExLCAwLjU2ODYzOCwgMC42NzI0MTUsIDAuNzc2MTQxIiwgXAotICAgICAgICAgICIwLjE4NzE5MiwgMC4yOTA4NDMsIDAuMzczNzM1LCAwLjQ3NzQ0NSwgMC41ODEyMjUsIDAuNjg0ODUyLCAwLjc4ODU3OCIsIFwKLSAgICAgICAgICAiMC4xOTg5NywgMC4zMDI2MTYsIDAuMzg1NTg0LCAwLjQ4OTI5NSwgMC41OTI5ODEsIDAuNjk2Njk1LCAwLjgwMDQiLCBcCi0gICAgICAgICAgIjAuMjE2ODMsIDAuMzIwNDU4LCAwLjQwMzQxOCwgMC41MDcxNDYsIDAuNjEwODI2LCAwLjcxNDUzNCwgMC44MTgyNTUiLCBcCi0gICAgICAgICAgIjAuMjMwMzYsIDAuMzMzOTUxLCAwLjQxNjkwMSwgMC41MjA2NjgsIDAuNjI0MzI1LCAwLjcyODAyMywgMC44MzE3MjQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDUwODEzLCAwLjI1ODUxNywgMC40MjY2OTgsIDAuNjM2OTU2LCAwLjg0NzEzOSwgMS4wNTc0LCAxLjI2Nzg1IiwgXAotICAgICAgICAgICIwLjA1MDgxMiwgMC4yNTg0OTgsIDAuNDI2NjE5LCAwLjYzNjk4OCwgMC44NDcxNjEsIDEuMDU3NCwgMS4yNjc3MiIsIFwKLSAgICAgICAgICAiMC4wNTA4MDcsIDAuMjU4NjA2LCAwLjQyNjcxNywgMC42MzY5NzcsIDAuODQ3MTU1LCAxLjA1NzM3LCAxLjI2NzcxIiwgXAotICAgICAgICAgICIwLjA1MDgwNCwgMC4yNTg2MDMsIDAuNDI2NjgyLCAwLjYzNjk2OSwgMC44NDcxMzgsIDEuMDU3MzMsIDEuMjY3NzUiLCBcCi0gICAgICAgICAgIjAuMDUwODA0LCAwLjI1ODUzNSwgMC40MjYzMDksIDAuNjM2OTQ5LCAwLjg0NzIxMiwgMS4wNTc0LCAxLjI2NzY3IiwgXAotICAgICAgICAgICIwLjA1MDgxNCwgMC4yNTg1OTcsIDAuNDI2NjgsIDAuNjM3MDA2LCAwLjg0NzEyNywgMS4wNTczNCwgMS4yNjc2OCIsIFwKLSAgICAgICAgICAiMC4wNTA4MTgsIDAuMjU4NTIzLCAwLjQyNjcxMSwgMC42MzY5OTksIDAuODQ3MjE3LCAxLjA1NzM4LCAxLjI2NzY2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0tOIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDYwNzgsIDAuMDA2MTI1LCAwLjAwNjEzMiwgMC4wMDYxMzUsIDAuMDA2MTM3LCAwLjAwNjEzNywgMC4wMDYxMzciLCBcCi0gICAgICAgICAgIjAuMDA2MDY2LCAwLjAwNjExNCwgMC4wMDYxMiwgMC4wMDYxMjMsIDAuMDA2MTI0LCAwLjAwNjEyNSwgMC4wMDYxMjYiLCBcCi0gICAgICAgICAgIjAuMDA2MDYyLCAwLjAwNjEwOSwgMC4wMDYxMTUsIDAuMDA2MTE4LCAwLjAwNjExOSwgMC4wMDYxMjEsIDAuMDA2MTIxIiwgXAotICAgICAgICAgICIwLjAwNjA2NCwgMC4wMDYxMTIsIDAuMDA2MTE4LCAwLjAwNjEyLCAwLjAwNjEyMiwgMC4wMDYxMjMsIDAuMDA2MTIzIiwgXAotICAgICAgICAgICIwLjAwNjA2OCwgMC4wMDYxMTYsIDAuMDA2MTIyLCAwLjAwNjEyNSwgMC4wMDYxMjYsIDAuMDA2MTI3LCAwLjAwNjEyNyIsIFwKLSAgICAgICAgICAiMC4wMDYwNjUsIDAuMDA2MTEzLCAwLjAwNjExOCwgMC4wMDYxMiwgMC4wMDYxMjIsIDAuMDA2MTIzLCAwLjAwNjEyNCIsIFwKLSAgICAgICAgICAiMC4wMDYwNzQsIDAuMDA2MTI0LCAwLjAwNjEyOCwgMC4wMDYxMzEsIDAuMDA2MTMyLCAwLjAwNjEzMSwgMC4wMDYxMzMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDY0MSwgMC4wMDY0NTQsIDAuMDA2NDU5LCAwLjAwNjQ2MiwgMC4wMDY0NjMsIDAuMDA2NDYzLCAwLjAwNjQ2NSIsIFwKLSAgICAgICAgICAiMC4wMDYzOTksIDAuMDA2NDQzLCAwLjAwNjQ0OCwgMC4wMDY0NTEsIDAuMDA2NDUyLCAwLjAwNjQ1MiwgMC4wMDY0NTMiLCBcCi0gICAgICAgICAgIjAuMDA2Mzk5LCAwLjAwNjQ0MiwgMC4wMDY0NDcsIDAuMDA2NDUsIDAuMDA2NDUxLCAwLjAwNjQ1MiwgMC4wMDY0NTIiLCBcCi0gICAgICAgICAgIjAuMDA2NDEsIDAuMDA2NDUzLCAwLjAwNjQ1OCwgMC4wMDY0NiwgMC4wMDY0NjEsIDAuMDA2NDYyLCAwLjAwNjQ2MyIsIFwKLSAgICAgICAgICAiMC4wMDY0MTEsIDAuMDA2NDU1LCAwLjAwNjQ2LCAwLjAwNjQ2NCwgMC4wMDY0NjMsIDAuMDA2NDY0LCAwLjAwNjQ2NSIsIFwKLSAgICAgICAgICAiMC4wMDY0MjIsIDAuMDA2NDY0LCAwLjAwNjQ3MSwgMC4wMDY0NzMsIDAuMDA2NDc0LCAwLjAwNjQ3NSwgMC4wMDY0NzYiLCBcCi0gICAgICAgICAgIjAuMDA2NDM3LCAwLjAwNjQ4MSwgMC4wMDY0ODYsIDAuMDA2NDg4LCAwLjAwNjQ4OSwgMC4wMDY0OSwgMC4wMDY0OTEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2ODQxLCAwLjAwNjg5MSwgMC4wMDY4OTYsIDAuMDA2ODk5LCAwLjAwNjkwMywgMC4wMDY5MDEsIDAuMDA2OTAyIiwgXAotICAgICAgICAgICIwLjAwNjgyOSwgMC4wMDY4NzksIDAuMDA2ODg1LCAwLjAwNjg4NywgMC4wMDY4OTEsIDAuMDA2ODksIDAuMDA2ODkiLCBcCi0gICAgICAgICAgIjAuMDA2ODI2LCAwLjAwNjg3NiwgMC4wMDY4ODIsIDAuMDA2ODg0LCAwLjAwNjg4NiwgMC4wMDY4ODcsIDAuMDA2ODg3IiwgXAotICAgICAgICAgICIwLjAwNjgyNSwgMC4wMDY4NzUsIDAuMDA2ODgxLCAwLjAwNjg4NCwgMC4wMDY4ODcsIDAuMDA2ODg2LCAwLjAwNjg4NiIsIFwKLSAgICAgICAgICAiMC4wMDY4MzIsIDAuMDA2ODgxLCAwLjAwNjg4NywgMC4wMDY4ODksIDAuMDA2ODk0LCAwLjAwNjg5MiwgMC4wMDY4OTIiLCBcCi0gICAgICAgICAgIjAuMDA2ODM4LCAwLjAwNjg4OCwgMC4wMDY4OTMsIDAuMDA2ODk2LCAwLjAwNjg5NywgMC4wMDY4OTgsIDAuMDA2ODk5IiwgXAotICAgICAgICAgICIwLjAwNjgzNiwgMC4wMDY4ODUsIDAuMDA2ODkxLCAwLjAwNjg5NCwgMC4wMDY4OTUsIDAuMDA2ODk2LCAwLjAwNjg5NiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihzY2FsYXIpIHsKLSAgICAgICAgdmFsdWVzKCIwIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiU04iOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNTMyMSwgMC4wMDUzNzEsIDAuMDA1Mzc3LCAwLjAwNTM4LCAwLjAwNTM4NSwgMC4wMDUzODIsIDAuMDA1MzgyIiwgXAotICAgICAgICAgICIwLjAwNTMwNSwgMC4wMDUzNTQsIDAuMDA1MzYsIDAuMDA1MzYzLCAwLjAwNTM2NCwgMC4wMDUzNjUsIDAuMDA1MzY1IiwgXAotICAgICAgICAgICIwLjAwNTI5MywgMC4wMDUzNDMsIDAuMDA1MzQ5LCAwLjAwNTM1MiwgMC4wMDUzNTYsIDAuMDA1MzU0LCAwLjAwNTM1NSIsIFwKLSAgICAgICAgICAiMC4wMDUyODgsIDAuMDA1MzM3LCAwLjAwNTM0NSwgMC4wMDUzNDcsIDAuMDA1MzUsIDAuMDA1MzQ4LCAwLjAwNTM0OSIsIFwKLSAgICAgICAgICAiMC4wMDUyODMsIDAuMDA1MzMzLCAwLjAwNTM0MSwgMC4wMDUzNDIsIDAuMDA1MzQ2LCAwLjAwNTM0NiwgMC4wMDUzNDMiLCBcCi0gICAgICAgICAgIjAuMDA1Mjc3LCAwLjAwNTMyNywgMC4wMDUzMzMsIDAuMDA1MzM2LCAwLjAwNTM0LCAwLjAwNTMzNywgMC4wMDUzMzkiLCBcCi0gICAgICAgICAgIjAuMDA1MjcyLCAwLjAwNTMyMiwgMC4wMDUzMjgsIDAuMDA1MzMxLCAwLjAwNTMzMywgMC4wMDUzMywgMC4wMDUzMzQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDYzOTQsIDAuMDA2NDM0LCAwLjAwNjQzOCwgMC4wMDY0MzksIDAuMDA2NDQxLCAwLjAwNjQ0LCAwLjAwNjQ0IiwgXAotICAgICAgICAgICIwLjAwNjM4MiwgMC4wMDY0MjEsIDAuMDA2NDI1LCAwLjAwNjQyNiwgMC4wMDY0MjcsIDAuMDA2NDI3LCAwLjAwNjQyOCIsIFwKLSAgICAgICAgICAiMC4wMDYzNzQsIDAuMDA2NDE0LCAwLjAwNjQxOCwgMC4wMDY0MTksIDAuMDA2NDIsIDAuMDA2NDIsIDAuMDA2NDIiLCBcCi0gICAgICAgICAgIjAuMDA2MzcsIDAuMDA2NDEsIDAuMDA2NDEzLCAwLjAwNjQxNSwgMC4wMDY0MTYsIDAuMDA2NDE2LCAwLjAwNjQxNiIsIFwKLSAgICAgICAgICAiMC4wMDYzNywgMC4wMDY0MDksIDAuMDA2NDEzLCAwLjAwNjQxNSwgMC4wMDY0MTYsIDAuMDA2NDE3LCAwLjAwNjQxNiIsIFwKLSAgICAgICAgICAiMC4wMDYzNzEsIDAuMDA2NDEyLCAwLjAwNjQxNSwgMC4wMDY0MTcsIDAuMDA2NDE4LCAwLjAwNjQxOCwgMC4wMDY0MTkiLCBcCi0gICAgICAgICAgIjAuMDA2Mzc4LCAwLjAwNjQxOSwgMC4wMDY0MjQsIDAuMDA2NDI1LCAwLjAwNjQyNiwgMC4wMDY0MjcsIDAuMDA2NDI3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihSTikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNTgwMjc1OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDU4MDAyNzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA1ODAyNzU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNjUzLCAwLjAwMDYyOSwgMC4wMDA2MiwgMC4wMDA2MjUsIDAuMDAwNjM1LCAwLjAwMDY1NiwgMC4wMDA2NzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDI3NjcsIDAuMDAyNzQ4LCAwLjAwMjc0MywgMC4wMDI3NDgsIDAuMDAyNzU4LCAwLjAwMjc4LCAwLjAwMjc5NyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQmU04iOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4yMTYxMTcsIDAuMjI2MDMxLCAwLjIzODEzNCwgMC4yNDg5NiwgMC4yNTgzMzgsIDAuMjcxNDIzLCAwLjI4MTY3MSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDS04iOwotICAgICAgdGltaW5nX3R5cGUgOiByZWNvdmVyeV9mYWxsaW5nOwotICAgICAgd2hlbiA6ICJEJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMV9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHJlY292ZXJ5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1LCAwLjAzODc1LCAwLjAyLCAwLjAwNzUsIC0wLjAwNSwgLTAuMDE1LCAtMC4wMyIsIFwKLSAgICAgICAgICAiMC4wNTUsIDAuMDUsIDAuMDMxMjUsIDAuMDE4NzUsIDAuMDA2MjUsIC0wLjAxLCAtMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4wNjc1LCAwLjA2MjUsIDAuMDQzNzUsIDAuMDMxMjUsIDAuMDE4NzUsIDAuMDAyNSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMDgsIDAuMDY4NzUsIDAuMDU2MjUsIDAuMDQzNzUsIDAuMDMxMjUsIDAuMDE1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICIwLjA5MjUsIDAuMDgxMjUsIDAuMDY4NzUsIDAuMDU2MjUsIDAuMDQzNzUsIDAuMDI3NSwgMC4wMTI1IiwgXAotICAgICAgICAgICIwLjEwODc1LCAwLjA5NzUsIDAuMDc4NzUsIDAuMDY2MjUsIDAuMDUzNzUsIDAuMDM3NSwgMC4wMjg3NSIsIFwKLSAgICAgICAgICAiMC4xMTc1LCAwLjEwNjI1LCAwLjA5Mzc1LCAwLjA4MTI1LCAwLjA2ODc1LCAwLjA1MjUsIDAuMDM3NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJlY292ZXJ5X3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUQiOwotICAgICAgc2RmX2NvbmQgOiAiRCA9PSAxJ2IwIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChyZWNvdmVyeV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODEyNSwgMC4wOTI1LCAwLjA5ODc1LCAwLjExMTI1LCAwLjEyMzc1LCAwLjE0LCAwLjE1NSIsIFwKLSAgICAgICAgICAiMC4wNywgMC4wODEyNSwgMC4wOTM3NSwgMC4xLCAwLjExMjUsIDAuMTI4NzUsIDAuMTQzNzUiLCBcCi0gICAgICAgICAgIjAuMDYzNzUsIDAuMDY4NzUsIDAuMDgxMjUsIDAuMDkzNzUsIDAuMTA2MjUsIDAuMTIyNSwgMC4xMzc1IiwgXAotICAgICAgICAgICIwLjA1NzUsIDAuMDYyNSwgMC4wNzUsIDAuMDg3NSwgMC4xLCAwLjExNjI1LCAwLjEyNSIsIFwKLSAgICAgICAgICAiMC4wNTEyNSwgMC4wNjI1LCAwLjA2ODc1LCAwLjA4MTI1LCAwLjA5Mzc1LCAwLjExLCAwLjEyNSIsIFwKLSAgICAgICAgICAiMC4wNDc1LCAwLjA1MjUsIDAuMDY1LCAwLjA3NzUsIDAuMDgzNzUsIDAuMSwgMC4xMTUiLCBcCi0gICAgICAgICAgIjAuMDM4NzUsIDAuMDUsIDAuMDYyNSwgMC4wNjg3NSwgMC4wODEyNSwgMC4wOTc1LCAwLjExMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0tOIjsKLSAgICAgIHRpbWluZ190eXBlIDogcmVtb3ZhbF9mYWxsaW5nOwotICAgICAgd2hlbiA6ICJEJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMV9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHJlbW92YWxfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2MjUsIDAuMDExMjUsIDAuMDIzNzUsIDAuMDM2MjUsIDAuMDQ4NzUsIDAuMDY1LCAwLjA3Mzc1IiwgXAotICAgICAgICAgICItMC4wMDUsIDAuMDA2MjUsIDAuMDE4NzUsIDAuMDI1LCAwLjAzNzUsIDAuMDUzNzUsIDAuMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDE3NSwgLTAuMDA2MjUsIDAuMDA2MjUsIDAuMDEyNSwgMC4wMjUsIDAuMDQxMjUsIDAuMDUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAuMDA2MjUsIDAuMDEyNSwgMC4wMjg3NSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDMxMjUsIC0wLjAxODc1LCAtMC4wMDYyNSwgMC4wMDYyNSwgMC4wMTYyNSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDUyNSwgLTAuMDQ3NSwgLTAuMDM1LCAtMC4wMjI1LCAtMC4wMSwgMC4wMDYyNSwgMC4wMTUiLCBcCi0gICAgICAgICAgIi0wLjA2NzUsIC0wLjA1NjI1LCAtMC4wNDM3NSwgLTAuMDMxMjUsIC0wLjAxODc1LCAtMC4wMDI1LCAwLjAwNjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTTikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxMzgwMzg7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxMzgwMzg7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxMzc5MjY7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNDUzLCAwLjAwMDQ1MywgMC4wMDA0NTIsIDAuMDAwNDUyLCAwLjAwMDQ1MiwgMC4wMDA0NTIsIDAuMDAwNDUyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNDUzLCAwLjAwMDQ1NCwgMC4wMDA0NTQsIDAuMDAwNDU0LCAwLjAwMDQ1NCwgMC4wMDA0NTQsIDAuMDAwNDU0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRCYhUk4iOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1JOX0VRXzAgPT0gMSdiMSI7Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4xNTI3MTMsIDAuMTYyNjAyLCAwLjE3NDcwNywgMC4xODcxOTIsIDAuMTk4OTcsIDAuMjE2ODI4LCAwLjIzMDM2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJlY292ZXJ5X2ZhbGxpbmc7Ci0gICAgICB3aGVuIDogIiFEJlJOIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9STl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHJlY292ZXJ5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0Mzc1LCAwLjAzMjUsIDAuMDIsIDAuMDA3NSwgLTAuMDA1LCAtMC4wMjEyNSwgLTAuMDMiLCBcCi0gICAgICAgICAgIjAuMDU1LCAwLjA0Mzc1LCAwLjAzMTI1LCAwLjAxODc1LCAwLjAwNjI1LCAtMC4wMSwgLTAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMDY3NSwgMC4wNTYyNSwgMC4wNDM3NSwgMC4wMjUsIDAuMDE4NzUsIDAuMDAyNSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMDczNzUsIDAuMDY4NzUsIDAuMDUsIDAuMDM3NSwgMC4wMjUsIDAuMDE1LCAwIiwgXAotICAgICAgICAgICIwLjA4NjI1LCAwLjA3NSwgMC4wNjI1LCAwLjA1LCAwLjAzNzUsIDAuMDIxMjUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4xMDI1LCAwLjA5MTI1LCAwLjA3ODc1LCAwLjA2NjI1LCAwLjA1Mzc1LCAwLjA0Mzc1LCAwLjAyODc1IiwgXAotICAgICAgICAgICIwLjExNzUsIDAuMTA2MjUsIDAuMDkzNzUsIDAuMDgxMjUsIDAuMDY4NzUsIDAuMDUyNSwgMC4wNDM3NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDS04iOwotICAgICAgdGltaW5nX3R5cGUgOiByZW1vdmFsX2ZhbGxpbmc7Ci0gICAgICB3aGVuIDogIiFEJlJOIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9STl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHJlbW92YWxfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEyNSwgMC4wMjM3NSwgMC4wMzYyNSwgMC4wNDg3NSwgMC4wNjEyNSwgMC4wNzEyNSwgMC4wOCIsIFwKLSAgICAgICAgICAiMC4wMDc1LCAwLjAxMjUsIDAuMDI1LCAwLjAzNzUsIDAuMDUsIDAuMDYsIDAuMDc1IiwgXAotICAgICAgICAgICItMC4wMDUsIDAuMDA2MjUsIDAuMDE4NzUsIDAuMDMxMjUsIDAuMDM3NSwgMC4wNTM3NSwgMC4wNjI1IiwgXAotICAgICAgICAgICItMC4wMTc1LCAtMC4wMDYyNSwgMC4wMDYyNSwgMC4wMTg3NSwgMC4wMzEyNSwgMC4wNDEyNSwgMC4wNSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxMjUsIDAsIDAuMDEyNSwgMC4wMTg3NSwgMC4wMzUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIi0wLjAzMzc1LCAtMC4wMjg3NSwgLTAuMDE2MjUsIC0wLjAwMzc1LCAwLjAwODc1LCAwLjAxODc1LCAwLjAzMzc1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDM3NSwgLTAuMDI1LCAtMC4wMTI1LCAwLCAwLjAxLCAwLjAyNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogREZGUVgxICoKLSAqIC0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoREZGUVgxKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMjYzODc5OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIGZmIChOMzAsUUJJTlQpIHsKLSAgICBuZXh0X3N0YXRlIDogIkQiOwotICAgIGNsb2NrZWRfb24gOiAiQ0siOwotICB9Ci0gIHBpbihDSykgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjI4NjM3OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYyODQxMTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2Mjg2Mzc7Ci0gICAgY2xvY2sgOiB0cnVlOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjg1MywgMC4wMDI4MjcsIDAuMDAyODEzLCAwLjAwMjgxNiwgMC4wMDI4MjgsIDAuMDAyODQ3LCAwLjAwMjg2OSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNjU1MywgMC4wMDY1MzMsIDAuMDA2NTIxLCAwLjAwNjUyMywgMC4wMDY1MjksIDAuMDA2NTUxLCAwLjAwNjU2NyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQiOwotICAgICAgc2RmX2NvbmQgOiAiRCA9PSAxJ2IwIjsKLSAgICAgIHJpc2VfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjE1MDc5NSwgMC4xNjEwMTMsIDAuMTczNzI4LCAwLjE4NTk2OCwgMC4xOTcwOTMsIDAuMjEyMzMzLCAwLjIyNDEyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4xMDM5NjUsIDAuMTEzNzE3LCAwLjEyNjE2NSwgMC4xMzc4OTEsIDAuMTQ3OTU5LCAwLjE2MTk0MSwgMC4xNzI0MjQiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEQpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY0MzU0NjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2NDE3NTU7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjQzNTQ2OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjIxMSwgMC4wMDIxODksIDAuMDAyMTc5LCAwLjAwMjE3MiwgMC4wMDIxNzYsIDAuMDAyMTc0LCAwLjAwMjE4NCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjc4OCwgMC4wMDI3NzQsIDAuMDAyNzY3LCAwLjAwMjc2NCwgMC4wMDI3NjQsIDAuMDAyNzYxLCAwLjAwMjc2NiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAxODc1LCAtMC4wMDc1LCAtMC4wMDEyNSwgMC4wMDUsIDAuMDExMjUsIDAuMDIxMjUsIDAuMDIzNzUiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAsIDAsIDAuMDEsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgLTAuMDAyNSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAxODc1LCAtMC4wMTg3NSwgLTAuMDA4NzUsIDAiLCBcCi0gICAgICAgICAgIi0wLjA1NSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAxNSwgLTAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDY1LCAtMC4wNTM3NSwgLTAuMDQ3NSwgLTAuMDQxMjUsIC0wLjAzNSwgLTAuMDI1LCAtMC4wMjI1IiwgXAotICAgICAgICAgICItMC4wNzM3NSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDMzNzUsIC0wLjAzMTI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTg3NSwgMC4wMywgMC4wNDI1LCAwLjA1NSwgMC4wNjc1LCAwLjA3NzUsIDAuMDg2MjUiLCBcCi0gICAgICAgICAgIjAuMDEzNzUsIDAuMDI1LCAwLjAzNzUsIDAuMDQzNzUsIDAuMDU2MjUsIDAuMDY2MjUsIDAuMDgxMjUiLCBcCi0gICAgICAgICAgIjAuMDA3NSwgMC4wMTI1LCAwLjAyNSwgMC4wMzc1LCAwLjA1LCAwLjA2LCAwLjA3NSIsIFwKLSAgICAgICAgICAiMC4wMDEyNSwgMC4wMDYyNSwgMC4wMTg3NSwgMC4wMzEyNSwgMC4wNDM3NSwgMC4wNTM3NSwgMC4wNjI1IiwgXAotICAgICAgICAgICItMC4wMDUsIDAsIDAuMDEyNSwgMC4wMjUsIDAuMDM3NSwgMC4wNDc1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICItMC4wMTUsIC0wLjAwMzc1LCAwLjAwODc1LCAwLjAyMTI1LCAwLjAyNzUsIDAuMDQzNzUsIDAuMDUyNSIsIFwKLSAgICAgICAgICAiLTAuMDE3NSwgLTAuMDEyNSwgMCwgMC4wMTI1LCAwLjAyNSwgMC4wMzUsIDAuMDQzNzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM3NSwgMC4wMzI1LCAwLjAyLCAwLjAxMzc1LCAwLjAwNzUsIC0wLjAwMjUsIC0wLjAwNSIsIFwKLSAgICAgICAgICAiMC4wNDg3NSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMTg3NSwgMC4wMDg3NSwgMCIsIFwKLSAgICAgICAgICAiMC4wNjEyNSwgMC4wNSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMTUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4wNjc1LCAwLjA2MjUsIDAuMDUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMjc1LCAwLjAxODc1IiwgXAotICAgICAgICAgICIwLjA4LCAwLjA2ODc1LCAwLjA1NjI1LCAwLjA1LCAwLjA0Mzc1LCAwLjAzMzc1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICIwLjA5LCAwLjA4NSwgMC4wNzI1LCAwLjA2NjI1LCAwLjA2LCAwLjA1LCAwLjA0MTI1IiwgXAotICAgICAgICAgICIwLjEwNSwgMC4wOTM3NSwgMC4wODEyNSwgMC4wNzUsIDAuMDY4NzUsIDAuMDU4NzUsIDAuMDUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTg3NSwgMC4wMDc1LCAtMC4wMDUsIC0wLjAxNzUsIC0wLjAzLCAtMC4wNDYyNSwgLTAuMDU1IiwgXAotICAgICAgICAgICIwLjAyMzc1LCAwLjAxMjUsIDAsIC0wLjAxMjUsIC0wLjAyNSwgLTAuMDM1LCAtMC4wNSIsIFwKLSAgICAgICAgICAiMC4wMzYyNSwgMC4wMjUsIDAuMDEyNSwgMCwgLTAuMDEyNSwgLTAuMDI4NzUsIC0wLjAzNzUiLCBcCi0gICAgICAgICAgIjAuMDQyNSwgMC4wMzEyNSwgMC4wMTg3NSwgMC4wMDYyNSwgLTAuMDA2MjUsIC0wLjAxNjI1LCAtMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4wNTUsIDAuMDQzNzUsIDAuMDMxMjUsIDAuMDE4NzUsIDAuMDA2MjUsIC0wLjAxLCAtMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMDY1LCAwLjA1Mzc1LCAwLjA0MTI1LCAwLjAyODc1LCAwLjAxNjI1LCAwLCAtMC4wMDg3NSIsIFwKLSAgICAgICAgICAiMC4wNzM3NSwgMC4wNjI1LCAwLjA1LCAwLjAzNzUsIDAuMDI1LCAwLjAwODc1LCAwIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihRKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMjY0Mjc3OwotICAgIGZ1bmN0aW9uIDogIk4zMCI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3NlbnNlIDogbm9uX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiByaXNpbmdfZWRnZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTM2MDEsIDAuMTYwNDgzLCAwLjI5OTI1MSwgMC40MjE4OTEsIDAuNTg1MzI1LCAwLjkxMjQzMSwgMS4xMTY2NiIsIFwKLSAgICAgICAgICAiMC4xNDYyMjIsIDAuMTcwNjk1LCAwLjMwOTQ4MSwgMC40MzIwOTgsIDAuNTk1NTc2LCAwLjkyMjY1NywgMS4xMjcxIiwgXAotICAgICAgICAgICIwLjE1OTAxMywgMC4xODM0OSwgMC4zMjIyNTMsIDAuNDQ0ODU0LCAwLjYwODM3MiwgMC45MzU0NDMsIDEuMTM5OSIsIFwKLSAgICAgICAgICAiMC4xNzA5NzYsIDAuMTk1NDU3LCAwLjMzNDI0MiwgMC40NTY4MjQsIDAuNjIwMzMzLCAwLjk0NzQwNSwgMS4xNTE4NyIsIFwKLSAgICAgICAgICAiMC4xODE5MTIsIDAuMjA2Mzk3LCAwLjM0NTIwMSwgMC40Njc4MTcsIDAuNjMxMjc1LCAwLjk1ODM1OCwgMS4xNjI4MSIsIFwKLSAgICAgICAgICAiMC4xOTcxNzUsIDAuMjIxNjY1LCAwLjM2MDQ2MiwgMC40ODMwMywgMC42NDY1NTcsIDAuOTczNTM4LCAxLjE3NzkzIiwgXAotICAgICAgICAgICIwLjIwODUzMiwgMC4yMzMwMjQsIDAuMzcxODI5LCAwLjQ5NDM4OCwgMC42NTc4MTQsIDAuOTg0ODc4LCAxLjE4OTI2Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5MjA3MiwgMC4xNDE5NjcsIDAuNDI3OTI4LCAwLjY3OTU1OCwgMS4wMTc5MSwgMS42OTI1LCAyLjExMzU0IiwgXAotICAgICAgICAgICIwLjA5MjA2OCwgMC4xNDE5NDcsIDAuNDI3MTY3LCAwLjY3OTQzNCwgMS4wMTgwMiwgMS42ODg5OSwgMi4xMDg5MyIsIFwKLSAgICAgICAgICAiMC4wOTIwNzIsIDAuMTQxOTQ5LCAwLjQyNzg1OSwgMC42NzkyMjQsIDEuMDE4MDIsIDEuNjkyNDksIDIuMTA5OTYiLCBcCi0gICAgICAgICAgIjAuMDkyMDY3LCAwLjE0MTk0MiwgMC40Mjc5MjQsIDAuNjc5NjM4LCAxLjAxODAxLCAxLjY5MjQ4LCAyLjEwOTcyIiwgXAotICAgICAgICAgICIwLjA5MjA2OCwgMC4xNDE5NDIsIDAuNDI3MTYxLCAwLjY3OTU3OSwgMS4wMTgwMSwgMS42ODg1NCwgMi4xMDk3MSIsIFwKLSAgICAgICAgICAiMC4wOTIwNzksIDAuMTQxOTQ3LCAwLjQyNzkwMiwgMC42Nzk0ODcsIDEuMDE1OTQsIDEuNjg5NTQsIDIuMTEwMjIiLCBcCi0gICAgICAgICAgIjAuMDkyMTExLCAwLjE0MTk0LCAwLjQyNzgxOCwgMC42Nzk4MzcsIDEuMDE3NjIsIDEuNjg5NDIsIDIuMTA5NzYiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTUwNzk1LCAwLjE3NTU4OCwgMC4zMTU4MTksIDAuNDM5NTA4LCAwLjYwNDM0NCwgMC45MzQxNDksIDEuMTQwMTMiLCBcCi0gICAgICAgICAgIjAuMTYxMDEzLCAwLjE4NTgwOSwgMC4zMjYwMzcsIDAuNDQ5NzE1LCAwLjYxNDU2MSwgMC45NDQzNzksIDEuMTUwMzciLCBcCi0gICAgICAgICAgIjAuMTczNzI4LCAwLjE5ODUyNCwgMC4zMzg3NTEsIDAuNDYyNDI5LCAwLjYyNzI1MywgMC45NTcwOTMsIDEuMTYzMSIsIFwKLSAgICAgICAgICAiMC4xODU5NjgsIDAuMjEwNzY0LCAwLjM1MDk4OSwgMC40NzQ2NzIsIDAuNjM5NTY1LCAwLjk2OTMyNiwgMS4xNzUzMiIsIFwKLSAgICAgICAgICAiMC4xOTcwOTMsIDAuMjIxODg2LCAwLjM2MjEzNywgMC40ODU3NzMsIDAuNjUwNjcsIDAuOTgwNDY4LCAxLjE4NjU3IiwgXAotICAgICAgICAgICIwLjIxMjMzMywgMC4yMzcxMywgMC4zNzczNTUsIDAuNTAxMDMxLCAwLjY2NTkxOSwgMC45OTU2OTgsIDEuMjAxNjkiLCBcCi0gICAgICAgICAgIjAuMjI0MTIsIDAuMjQ4OTE3LCAwLjM4OTEzNywgMC41MTI4MTcsIDAuNjc3NjkyLCAxLjAwNzQ3LCAxLjIxMzQ5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5MDc3NiwgMC4xMzk4ODksIDAuNDIxOTYxLCAwLjY3MTU5OCwgMS4wMDQyOCwgMS42Njk3MywgMi4wODIxNiIsIFwKLSAgICAgICAgICAiMC4wOTA3NzcsIDAuMTM5OTE0LCAwLjQyMTkyNCwgMC42NzE2MiwgMS4wMDQzLCAxLjY2OTY4LCAyLjA4MjUiLCBcCi0gICAgICAgICAgIjAuMDkwNzc2LCAwLjEzOTkyMywgMC40MjE5MTYsIDAuNjcxNjIsIDEuMDA0MTIsIDEuNjY5NjksIDIuMDg1NzQiLCBcCi0gICAgICAgICAgIjAuMDkwNzc0LCAwLjEzOTk1OCwgMC40MjE5MzQsIDAuNjcxNjExLCAxLjAwNDE0LCAxLjY2OTcyLCAyLjA4MjkyIiwgXAotICAgICAgICAgICIwLjA5MDc3MiwgMC4xMzk4NDcsIDAuNDIwOTE4LCAwLjY3MDE2MywgMS4wMDQyNywgMS42NjQxNiwgMi4wNzg1MSIsIFwKLSAgICAgICAgICAiMC4wOTA3NzQsIDAuMTM5ODYsIDAuNDIxOTAxLCAwLjY3MTY2NCwgMS4wMDQxNSwgMS42NjQ4NywgMi4wODE4NSIsIFwKLSAgICAgICAgICAiMC4wOTA3NzIsIDAuMTM5ODYsIDAuNDIxOTI0LCAwLjY3MTYxMSwgMS4wMDQxOCwgMS42Njk3MywgMi4wODA0MyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDU5ODcsIDAuMDA1OTc1LCAwLjAwNTkzLCAwLjAwNTkxMywgMC4wMDU5MDMsIDAuMDA1ODk0LCAwLjAwNTg5MSIsIFwKLSAgICAgICAgICAiMC4wMDU5NTcsIDAuMDA1OTQ2LCAwLjAwNTksIDAuMDA1ODg1LCAwLjAwNTg3NCwgMC4wMDU4NjQsIDAuMDA1ODYxIiwgXAotICAgICAgICAgICIwLjAwNTk0MywgMC4wMDU5MzMsIDAuMDA1ODg5LCAwLjAwNTg3MiwgMC4wMDU4NjEsIDAuMDA1ODUxLCAwLjAwNTg0OSIsIFwKLSAgICAgICAgICAiMC4wMDU5MzksIDAuMDA1OTI5LCAwLjAwNTg4NSwgMC4wMDU4NjksIDAuMDA1ODU3LCAwLjAwNTg0NywgMC4wMDU4NDQiLCBcCi0gICAgICAgICAgIjAuMDA1OTU5LCAwLjAwNTk1LCAwLjAwNTkwNywgMC4wMDU4OSwgMC4wMDU4NzksIDAuMDA1ODY4LCAwLjAwNTg2NSIsIFwKLSAgICAgICAgICAiMC4wMDU5NzcsIDAuMDA1OTY5LCAwLjAwNTkyOCwgMC4wMDU5MTEsIDAuMDA1ODk5LCAwLjAwNTg4OCwgMC4wMDU4ODQiLCBcCi0gICAgICAgICAgIjAuMDA2MDA2LCAwLjAwNTk5NiwgMC4wMDU5NTksIDAuMDA1OTQzLCAwLjAwNTkzLCAwLjAwNTkxOSwgMC4wMDU5MTQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDY0MiwgMC4wMDY0MjksIDAuMDA2NDQ0LCAwLjAwNjQ0NywgMC4wMDY0NDksIDAuMDA2NDUsIDAuMDA2NDUxIiwgXAotICAgICAgICAgICIwLjAwNjM5MSwgMC4wMDY0MDEsIDAuMDA2NDE1LCAwLjAwNjQxOSwgMC4wMDY0MjEsIDAuMDA2NDIyLCAwLjAwNjQyMyIsIFwKLSAgICAgICAgICAiMC4wMDYzODgsIDAuMDA2Mzk4LCAwLjAwNjQxMywgMC4wMDY0MTYsIDAuMDA2NDE4LCAwLjAwNjQyLCAwLjAwNjQyIiwgXAotICAgICAgICAgICIwLjAwNjM5OCwgMC4wMDY0MDgsIDAuMDA2NDIyLCAwLjAwNjQyNSwgMC4wMDY0MjcsIDAuMDA2NDI5LCAwLjAwNjQyOSIsIFwKLSAgICAgICAgICAiMC4wMDY0MjgsIDAuMDA2NDM4LCAwLjAwNjQ1MiwgMC4wMDY0NTYsIDAuMDA2NDU3LCAwLjAwNjQ1OSwgMC4wMDY0NiIsIFwKLSAgICAgICAgICAiMC4wMDY0NjEsIDAuMDA2NDcxLCAwLjAwNjQ4NSwgMC4wMDY0ODgsIDAuMDA2NDksIDAuMDA2NDkxLCAwLjAwNjQ5MiIsIFwKLSAgICAgICAgICAiMC4wMDY1MDUsIDAuMDA2NTE1LCAwLjAwNjUyOCwgMC4wMDY1MzEsIDAuMDA2NTMzLCAwLjAwNjUzNSwgMC4wMDY1MzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IERGRlFYMiAqCi0gKiAtLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKERGRlFYMikgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjMxNTQyNDsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBmZiAoTjMwLFFCSU5UKSB7Ci0gICAgbmV4dF9zdGF0ZSA6ICJEIjsKLSAgICBjbG9ja2VkX29uIDogIkNLIjsKLSAgfQotICBwaW4oQ0spICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDU3MTE4MzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA1NzEwMjM7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNTcxMTgzOwotICAgIGNsb2NrIDogdHJ1ZTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDI4OTMsIDAuMDAyODY4LCAwLjAwMjg1MywgMC4wMDI4NTUsIDAuMDAyODY0LCAwLjAwMjg4NSwgMC4wMDI5MDkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDY1MDEsIDAuMDA2NDc4LCAwLjAwNjQ3LCAwLjAwNjQ3MiwgMC4wMDY0NzYsIDAuMDA2NTAyLCAwLjAwNjUyMSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQiOwotICAgICAgc2RmX2NvbmQgOiAiRCA9PSAxJ2IwIjsKLSAgICAgIHJpc2VfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjEzMTU3OSwgMC4xNDE3NzEsIDAuMTU0NjQsIDAuMTY2Nzg5LCAwLjE3NzcyNiwgMC4xOTI5MjQsIDAuMjA0NzI2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4xMDQ4NjIsIDAuMTE0NzM3LCAwLjEyNzEyOSwgMC4xMzg2OTEsIDAuMTQ4Njg5LCAwLjE2MjUyLCAwLjE3MzEwNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjA2NDM7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjA0OTk3OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDYwNjQzOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjIzMiwgMC4wMDIyMSwgMC4wMDIxOTksIDAuMDAyMTkyLCAwLjAwMjE5NSwgMC4wMDIxOTUsIDAuMDAyMiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjgwNSwgMC4wMDI3OTEsIDAuMDAyNzg0LCAwLjAwMjc4LCAwLjAwMjc4LCAwLjAwMjc4NCwgMC4wMDI3ODYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMTg3NSwgLTAuMDA3NSwgLTAuMDAxMjUsIDAuMDA1LCAwLjAxMTI1LCAwLjAxNSwgMC4wMjM3NSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxODc1LCAtMC4wMDYyNSwgMCwgMCwgMC4wMSwgMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIC0wLjAwMjUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgLTAuMDE4NzUsIC0wLjAwODc1LCAwIiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMTUsIC0wLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjA2NSwgLTAuMDUzNzUsIC0wLjA0NzUsIC0wLjA0MTI1LCAtMC4wMzUsIC0wLjAyNSwgLTAuMDIyNSIsIFwKLSAgICAgICAgICAiLTAuMDczNzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjAzMzc1LCAtMC4wMzEyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDI1LCAwLjAzNjI1LCAwLjA0ODc1LCAwLjA1NSwgMC4wNjc1LCAwLjA3NzUsIDAuMDkyNSIsIFwKLSAgICAgICAgICAiMC4wMTM3NSwgMC4wMjUsIDAuMDM3NSwgMC4wNSwgMC4wNTYyNSwgMC4wNzI1LCAwLjA4MTI1IiwgXAotICAgICAgICAgICIwLjAwNzUsIDAuMDE4NzUsIDAuMDMxMjUsIDAuMDQzNzUsIDAuMDUsIDAuMDY2MjUsIDAuMDc1IiwgXAotICAgICAgICAgICIwLjAwMTI1LCAwLjAxMjUsIDAuMDI1LCAwLjAzMTI1LCAwLjA0Mzc1LCAwLjA2LCAwLjA2ODc1IiwgXAotICAgICAgICAgICItMC4wMDUsIDAuMDA2MjUsIDAuMDE4NzUsIDAuMDMxMjUsIDAuMDM3NSwgMC4wNTM3NSwgMC4wNjI1IiwgXAotICAgICAgICAgICItMC4wMDg3NSwgMC4wMDI1LCAwLjAwODc1LCAwLjAyMTI1LCAwLjAzMzc1LCAwLjA0Mzc1LCAwLjA1MjUiLCBcCi0gICAgICAgICAgIi0wLjAxNzUsIC0wLjAwNjI1LCAwLjAwNjI1LCAwLjAxODc1LCAwLjAyNSwgMC4wNDEyNSwgMC4wNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDM3NSwgMC4wMzI1LCAwLjAyLCAwLjAxMzc1LCAwLjAwNzUsIDAuMDAzNzUsIC0wLjAwNSIsIFwKLSAgICAgICAgICAiMC4wNDg3NSwgMC4wNDM3NSwgMC4wMzEyNSwgMC4wMjUsIDAuMDE4NzUsIDAuMDA4NzUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMDYxMjUsIDAuMDUsIDAuMDQzNzUsIDAuMDMxMjUsIDAuMDI1LCAwLjAyMTI1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMDczNzUsIDAuMDYyNSwgMC4wNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAyNzUsIDAuMDI1IiwgXAotICAgICAgICAgICIwLjA4LCAwLjA3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA0Mzc1LCAwLjA0LCAwLjAzMTI1IiwgXAotICAgICAgICAgICIwLjA5NjI1LCAwLjA4NSwgMC4wNzI1LCAwLjA2NjI1LCAwLjA2LCAwLjA1LCAwLjA0MTI1IiwgXAotICAgICAgICAgICIwLjEwNSwgMC4wOTM3NSwgMC4wODc1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNTg3NSwgMC4wNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxODc1LCAwLjAwNzUsIC0wLjAwNSwgLTAuMDE3NSwgLTAuMDMsIC0wLjA0NjI1LCAtMC4wNTUiLCBcCi0gICAgICAgICAgIjAuMDMsIDAuMDE4NzUsIDAuMDA2MjUsIC0wLjAwNjI1LCAtMC4wMTg3NSwgLTAuMDM1LCAtMC4wNSIsIFwKLSAgICAgICAgICAiMC4wMzYyNSwgMC4wMjUsIDAuMDEyNSwgMCwgLTAuMDEyNSwgLTAuMDI4NzUsIC0wLjAzNzUiLCBcCi0gICAgICAgICAgIjAuMDQ4NzUsIDAuMDM3NSwgMC4wMjUsIDAuMDEyNSwgMCwgLTAuMDE2MjUsIC0wLjAzMTI1IiwgXAotICAgICAgICAgICIwLjA1NSwgMC4wNDM3NSwgMC4wMzEyNSwgMC4wMTg3NSwgMC4wMDYyNSwgLTAuMDEsIC0wLjAxODc1IiwgXAotICAgICAgICAgICIwLjA2NSwgMC4wNTM3NSwgMC4wNDEyNSwgMC4wMjg3NSwgMC4wMTYyNSwgMCwgLTAuMDA4NzUiLCBcCi0gICAgICAgICAgIjAuMDczNzUsIDAuMDYyNSwgMC4wNSwgMC4wMzc1LCAwLjAyNSwgMC4wMDg3NSwgMCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjUxNzg5OwotICAgIGZ1bmN0aW9uIDogIk4zMCI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3NlbnNlIDogbm9uX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiByaXNpbmdfZWRnZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTE4OTgyLCAwLjIyMTA3OCwgMC4zMDI1OTMsIDAuNDA0NDQ2LCAwLjUwNjMyNiwgMC42MDgxNDUsIDAuNzEwMDQxIiwgXAotICAgICAgICAgICIwLjEyOTE1LCAwLjIzMTI0MSwgMC4zMTI3NTQsIDAuNDE0NjA3LCAwLjUxNjQ4MiwgMC42MTgzNTgsIDAuNzIwMjA5IiwgXAotICAgICAgICAgICIwLjE0MTk4LCAwLjI0NDA4MywgMC4zMjU1NzcsIDAuNDI3NDQ2LCAwLjUyOTMzNSwgMC42MzExNzEsIDAuNzMzMDk2IiwgXAotICAgICAgICAgICIwLjE1Mzg2NCwgMC4yNTU5NjksIDAuMzM3NDY4LCAwLjQzOTM0MiwgMC41NDExMzQsIDAuNjQzMDU0LCAwLjc0NDk4OCIsIFwKLSAgICAgICAgICAiMC4xNjQ4MTEsIDAuMjY2OTA5LCAwLjM0ODM5OCwgMC40NTAyNjksIDAuNTUyMTMxLCAwLjY1NDA4OSwgMC43NTU4MzkiLCBcCi0gICAgICAgICAgIjAuMTc5OTQ2LCAwLjI4MjA0NCwgMC4zNjM1NDcsIDAuNDY1NDUxLCAwLjU2NzI1NCwgMC42NjkxMTcsIDAuNzcxMDg0IiwgXAotICAgICAgICAgICIwLjE5MTQyLCAwLjI5MzUxOSwgMC4zNzUwMjgsIDAuNDc2ODgxLCAwLjU3ODc2NCwgMC42ODA2MDUsIDAuNzgyNDc2Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1MDgzNSwgMC4yNTgyODgsIDAuNDI2OTI3LCAwLjYzNjQwMSwgMC44NDYxMzUsIDEuMDU3OSwgMS4yNjYyNiIsIFwKLSAgICAgICAgICAiMC4wNTA4NzQsIDAuMjU4NTI2LCAwLjQyNjkxOCwgMC42MzYzNDksIDAuODQ1OTI5LCAxLjA1Nzk4LCAxLjI2NjI2IiwgXAotICAgICAgICAgICIwLjA1MDg1NCwgMC4yNTg2MTUsIDAuNDI2ODk4LCAwLjYzNjAwOSwgMC44NDYyMjIsIDEuMDU2MDMsIDEuMjY4NSIsIFwKLSAgICAgICAgICAiMC4wNTA4NzcsIDAuMjU4NjA5LCAwLjQyNjg5NiwgMC42MzUzNTcsIDAuODQ3NDU5LCAxLjA1NjYxLCAxLjI2ODUiLCBcCi0gICAgICAgICAgIjAuMDUwODY4LCAwLjI1ODYwMSwgMC40MjY4MjIsIDAuNjM2Mzk2LCAwLjg0NjQ2MSwgMS4wNTYwMSwgMS4yNjgyOCIsIFwKLSAgICAgICAgICAiMC4wNTA4NTgsIDAuMjU4NjA2LCAwLjQyNjg5NSwgMC42MzcyOTksIDAuODQ3NTEyLCAxLjA1NjU2LCAxLjI2NTk5IiwgXAotICAgICAgICAgICIwLjA1MDg3NSwgMC4yNTg1MzUsIDAuNDI2ODI2LCAwLjYzNjg1NywgMC44NDc0MjUsIDEuMDU2NTYsIDEuMjY2MjMiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTMxNTc5LCAwLjIzNTQyOCwgMC4zMTgyNzIsIDAuNDIxNzQ1LCAwLjUyNTI2NiwgMC42Mjg3MzQsIDAuNzMyMjMzIiwgXAotICAgICAgICAgICIwLjE0MTc3MSwgMC4yNDU2MTUsIDAuMzI4NDE0LCAwLjQzMTkzMywgMC41MzU0NDQsIDAuNjM4OTIxLCAwLjc0MjMzMSIsIFwKLSAgICAgICAgICAiMC4xNTQ2NCwgMC4yNTg0ODgsIDAuMzQxMjkyLCAwLjQ0NDgwNywgMC41NDgzMTQsIDAuNjUxNzM1LCAwLjc1NTI5NCIsIFwKLSAgICAgICAgICAiMC4xNjY3ODksIDAuMjcwNjM1LCAwLjM1MzQzNCwgMC40NTY5NDcsIDAuNTYwNDY1LCAwLjY2Mzg4LCAwLjc2NzQyNSIsIFwKLSAgICAgICAgICAiMC4xNzc3MjYsIDAuMjgxNTY5LCAwLjM2NDM3NCwgMC40Njc4OSwgMC41NzEzOTUsIDAuNjc0ODE2LCAwLjc3ODM3NCIsIFwKLSAgICAgICAgICAiMC4xOTI5MjQsIDAuMjk2NzcxLCAwLjM3OTU3NiwgMC40ODMwOTEsIDAuNTg2NiwgMC42OTAwMjUsIDAuNzkzNTc1IiwgXAotICAgICAgICAgICIwLjIwNDcyNiwgMC4zMDg1ODgsIDAuMzkxNDA5LCAwLjQ5NDkxMiwgMC41OTg0MDcsIDAuNzAxODg5LCAwLjgwNTQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDUwNDM3LCAwLjI1ODE5OCwgMC40MjQ5OTcsIDAuNjM1MDUsIDAuODQ0MTM0LCAxLjA1NjcxLCAxLjI2Njc4IiwgXAotICAgICAgICAgICIwLjA1MDQ0LCAwLjI1NzUzNywgMC40MjYwMTksIDAuNjM0NzgzLCAwLjg0NjUxMywgMS4wNTY2OCwgMS4yNjY0MiIsIFwKLSAgICAgICAgICAiMC4wNTA0MzcsIDAuMjU3OTI3LCAwLjQyNjE1NSwgMC42MzQ4MDUsIDAuODQ2NTI4LCAxLjA1NjE2LCAxLjI2Njg0IiwgXAotICAgICAgICAgICIwLjA1MDQzNiwgMC4yNTc4MDcsIDAuNDI2MTM1LCAwLjYzNDU1NSwgMC44NDY0OTcsIDEuMDU2NDEsIDEuMjY2ODkiLCBcCi0gICAgICAgICAgIjAuMDUwNDM3LCAwLjI1Nzg4MSwgMC40MjYxNDksIDAuNjM0ODQ0LCAwLjg0NjUxNiwgMS4wNTYwNCwgMS4yNjY4NSIsIFwKLSAgICAgICAgICAiMC4wNTA0MzgsIDAuMjU3OTQ4LCAwLjQyNjE1MiwgMC42MzQ3ODYsIDAuODQ2NTA2LCAxLjA1NjQ1LCAxLjI2Njg2IiwgXAotICAgICAgICAgICIwLjA1MDQ0NSwgMC4yNTgyMDEsIDAuNDI2MjQ3LCAwLjYzNTE3OCwgMC44NDY1MzYsIDEuMDU2NzUsIDEuMjY2ODYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA3NDI4LCAwLjAwNzQ3MiwgMC4wMDc0NzcsIDAuMDA3NDc5LCAwLjAwNzQ4MSwgMC4wMDc0ODEsIDAuMDA3NDgyIiwgXAotICAgICAgICAgICIwLjAwNzM5NywgMC4wMDc0NCwgMC4wMDc0NDUsIDAuMDA3NDQ4LCAwLjAwNzQ0OSwgMC4wMDc0NSwgMC4wMDc0NSIsIFwKLSAgICAgICAgICAiMC4wMDczODQsIDAuMDA3NDI3LCAwLjAwNzQzMiwgMC4wMDc0MzUsIDAuMDA3NDM2LCAwLjAwNzQzNiwgMC4wMDc0MzkiLCBcCi0gICAgICAgICAgIjAuMDA3Mzc4LCAwLjAwNzQyMSwgMC4wMDc0MjcsIDAuMDA3NDI5LCAwLjAwNzQzMSwgMC4wMDc0MzEsIDAuMDA3NDMyIiwgXAotICAgICAgICAgICIwLjAwNzM5NywgMC4wMDc0NDEsIDAuMDA3NDQ2LCAwLjAwNzQ1LCAwLjAwNzQ1LCAwLjAwNzQ1MiwgMC4wMDc0NTIiLCBcCi0gICAgICAgICAgIjAuMDA3NDE0LCAwLjAwNzQ1OSwgMC4wMDc0NjMsIDAuMDA3NDY2LCAwLjAwNzQ2OCwgMC4wMDc0NjgsIDAuMDA3NDY5IiwgXAotICAgICAgICAgICIwLjAwNzQ0MywgMC4wMDc0ODMsIDAuMDA3NDksIDAuMDA3NDkzLCAwLjAwNzQ5MywgMC4wMDc0OTMsIDAuMDA3NDk1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA3MzAyLCAwLjAwNzM2NywgMC4wMDczNzQsIDAuMDA3Mzc3LCAwLjAwNzM3OSwgMC4wMDczOCwgMC4wMDczODEiLCBcCi0gICAgICAgICAgIjAuMDA3Mjc1LCAwLjAwNzMzOCwgMC4wMDczNDUsIDAuMDA3MzQ4LCAwLjAwNzM1LCAwLjAwNzM1MSwgMC4wMDczNTEiLCBcCi0gICAgICAgICAgIjAuMDA3MjY4LCAwLjAwNzMzMywgMC4wMDczNCwgMC4wMDczNDMsIDAuMDA3MzQ1LCAwLjAwNzM0NSwgMC4wMDczNDYiLCBcCi0gICAgICAgICAgIjAuMDA3Mjg2LCAwLjAwNzM1LCAwLjAwNzM1NiwgMC4wMDczNTksIDAuMDA3MzYsIDAuMDA3MzYxLCAwLjAwNzM2MiIsIFwKLSAgICAgICAgICAiMC4wMDczMTcsIDAuMDA3MzgxLCAwLjAwNzM4NywgMC4wMDczOTEsIDAuMDA3MzkyLCAwLjAwNzM5MywgMC4wMDczOTQiLCBcCi0gICAgICAgICAgIjAuMDA3MzQyLCAwLjAwNzQwNywgMC4wMDc0MTQsIDAuMDA3NDE3LCAwLjAwNzQxOCwgMC4wMDc0MTksIDAuMDA3NDIiLCBcCi0gICAgICAgICAgIjAuMDA3MzkxLCAwLjAwNzQ1NSwgMC4wMDc0NjEsIDAuMDA3NDY0LCAwLjAwNzQ2NiwgMC4wMDc0NjYsIDAuMDA3NDY3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBERkZRWDQgKgotICogLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChERkZRWDQpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC40MzI1ODsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBmZiAoTjMwLFFCSU5UKSB7Ci0gICAgbmV4dF9zdGF0ZSA6ICJEIjsKLSAgICBjbG9ja2VkX29uIDogIkNLIjsKLSAgfQotICBwaW4oQ0spICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYwOTM2OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYwOTAzODsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2MDkzNjsKLSAgICBjbG9jayA6IHRydWU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyODQ3LCAwLjAwMjgyMywgMC4wMDI4MDgsIDAuMDAyODA4LCAwLjAwMjgyMSwgMC4wMDI4MzgsIDAuMDAyODY0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA2NzQ5LCAwLjAwNjcyOCwgMC4wMDY3MTksIDAuMDA2NzIsIDAuMDA2NzI1LCAwLjAwNjc1LCAwLjAwNjc2MyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQiOwotICAgICAgc2RmX2NvbmQgOiAiRCA9PSAxJ2IwIjsKLSAgICAgIHJpc2VfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjEyNDY4NywgMC4xMzQ4NzUsIDAuMTQ3NjY4LCAwLjE2MDA2NiwgMC4xNzEzMjYsIDAuMTg2ODU2LCAwLjE5ODkyOCIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMTA0OTA4LCAwLjExNDc3NCwgMC4xMjcyNTgsIDAuMTM4OTM5LCAwLjE0OTE3NSwgMC4xNjMzNywgMC4xNzQwNzIiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEQpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY0OTg4MjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2NDg2MzI7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjQ5ODgyOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjA2OCwgMC4wMDIwNDYsIDAuMDAyMDM1LCAwLjAwMjAyOCwgMC4wMDIwMzIsIDAuMDAyMDM1LCAwLjAwMjAzOCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjgyMSwgMC4wMDI4MDgsIDAuMDAyODAxLCAwLjAwMjc5NywgMC4wMDI3OTQsIDAuMDAyODAxLCAwLjAwMjgwMSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAxMjUsIC0wLjAwNzUsIC0wLjAwMTI1LCAwLjAwNSwgMC4wMTEyNSwgMC4wMjEyNSwgMC4wMjM3NSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLCAwLjAwNjI1LCAwLjAxLCAwLjAxODc1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAuMDAzNzUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzNzUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwODc1LCAwIiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDQzNzUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wNjUsIC0wLjA1Mzc1LCAtMC4wNDc1LCAtMC4wMzUsIC0wLjAzNSwgLTAuMDI1LCAtMC4wMTYyNSIsIFwKLSAgICAgICAgICAiLTAuMDczNzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNDM3NSwgLTAuMDQzNzUsIC0wLjAzMzc1LCAtMC4wMjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyNSwgMC4wMzYyNSwgMC4wNDg3NSwgMC4wNjEyNSwgMC4wNjc1LCAwLjA4Mzc1LCAwLjA5MjUiLCBcCi0gICAgICAgICAgIjAuMDEzNzUsIDAuMDI1LCAwLjAzNzUsIDAuMDUsIDAuMDYyNSwgMC4wNzI1LCAwLjA4MTI1IiwgXAotICAgICAgICAgICIwLjAwNzUsIDAuMDE4NzUsIDAuMDMxMjUsIDAuMDQzNzUsIDAuMDUsIDAuMDY2MjUsIDAuMDc1IiwgXAotICAgICAgICAgICIwLjAwMTI1LCAwLjAxMjUsIDAuMDI1LCAwLjAzNzUsIDAuMDQzNzUsIDAuMDYsIDAuMDY4NzUiLCBcCi0gICAgICAgICAgIjAuMDAxMjUsIDAuMDA2MjUsIDAuMDE4NzUsIDAuMDMxMjUsIDAuMDQzNzUsIDAuMDUzNzUsIDAuMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDA4NzUsIDAuMDAyNSwgMC4wMTUsIDAuMDI3NSwgMC4wMzM3NSwgMC4wNSwgMC4wNTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDExMjUsIDAsIDAuMDA2MjUsIDAuMDE4NzUsIDAuMDMxMjUsIDAuMDQxMjUsIDAuMDUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQzNzUsIDAuMDMyNSwgMC4wMiwgMC4wMTM3NSwgMC4wMDc1LCAtMC4wMDI1LCAtMC4wMDUiLCBcCi0gICAgICAgICAgIjAuMDQ4NzUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMjUsIDAuMDE4NzUsIDAuMDA4NzUsIDAiLCBcCi0gICAgICAgICAgIjAuMDYxMjUsIDAuMDUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMjUsIDAuMDE1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMDczNzUsIDAuMDYyNSwgMC4wNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAyNzUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMDgsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNSwgMC4wNDM3NSwgMC4wMzM3NSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4wOTYyNSwgMC4wODUsIDAuMDcyNSwgMC4wNjYyNSwgMC4wNiwgMC4wNSwgMC4wNDEyNSIsIFwKLSAgICAgICAgICAiMC4xMDUsIDAuMDkzNzUsIDAuMDgxMjUsIDAuMDc1LCAwLjA2ODc1LCAwLjA1ODc1LCAwLjA1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE4NzUsIDAuMDA3NSwgLTAuMDA1LCAtMC4wMTc1LCAtMC4wMywgLTAuMDQ2MjUsIC0wLjA2MTI1IiwgXAotICAgICAgICAgICIwLjAyMzc1LCAwLjAxMjUsIDAsIC0wLjAxMjUsIC0wLjAyNSwgLTAuMDQxMjUsIC0wLjA1IiwgXAotICAgICAgICAgICIwLjAzNjI1LCAwLjAyNSwgMC4wMTI1LCAwLCAtMC4wMTI1LCAtMC4wMjg3NSwgLTAuMDM3NSIsIFwKLSAgICAgICAgICAiMC4wNDI1LCAwLjAzNzUsIDAuMDE4NzUsIDAuMDA2MjUsIC0wLjAwNjI1LCAtMC4wMjI1LCAtMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4wNTUsIDAuMDQzNzUsIDAuMDMxMjUsIDAuMDE4NzUsIDAuMDA2MjUsIC0wLjAxLCAtMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMDY1LCAwLjA1Mzc1LCAwLjA0MTI1LCAwLjAyODc1LCAwLjAxNjI1LCAwLCAtMC4wMTUiLCBcCi0gICAgICAgICAgIjAuMDczNzUsIDAuMDYyNSwgMC4wNSwgMC4wMzc1LCAwLjAyNSwgMC4wMDg3NSwgLTAuMDA2MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFEpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMS4wMzUwNzsKLSAgICBmdW5jdGlvbiA6ICJOMzAiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5vbl91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcmlzaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTE1MjkxLCAwLjE4NzIwNiwgMC4yNTgzNzQsIDAuMzA5MjIzLCAwLjM5MDU3NiwgMC40NjE3MTcsIDAuNTYzNTE1IiwgXAotICAgICAgICAgICIwLjEyNTQwMiwgMC4xOTczMTYsIDAuMjY4NDg2LCAwLjMxOTMzNCwgMC40MDA2OTYsIDAuNDcxODQsIDAuNTczNjI4IiwgXAotICAgICAgICAgICIwLjEzODA4MywgMC4yMDk5OTksIDAuMjgxMTcsIDAuMzMyMDIyLCAwLjQxMzQzMiwgMC40ODQ2NDEsIDAuNTg2MzAzIiwgXAotICAgICAgICAgICIwLjE1MDQwOSwgMC4yMjIzMjksIDAuMjkzNTAyLCAwLjM0NDM1NCwgMC40MjU3MjIsIDAuNDk2OTQ4LCAwLjU5ODY0MiIsIFwKLSAgICAgICAgICAiMC4xNjE0OTcsIDAuMjMzNDIxLCAwLjMwNDU5NiwgMC4zNTU0NzgsIDAuNDM2ODUsIDAuNTA4MDMxLCAwLjYwOTc3NiIsIFwKLSAgICAgICAgICAiMC4xNzY5OTcsIDAuMjQ4OTIxLCAwLjMyMDA5NiwgMC4zNzA5NDcsIDAuNDUyMzA1LCAwLjUyMzUyOCwgMC42MjUyMzUiLCBcCi0gICAgICAgICAgIjAuMTg4OTYxLCAwLjI2MDg5OCwgMC4zMzIwNzEsIDAuMzgyOTIxLCAwLjQ2NDI3OSwgMC41MzU1MDEsIDAuNjM3MjA5Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDMxMDg5LCAwLjE3NDQzMywgMC4zMjA2NTYsIDAuNDI1OTMzLCAwLjU5NDU4LCAwLjc0MTIxMiwgMC45NTE2OTYiLCBcCi0gICAgICAgICAgIjAuMDMxMDg5LCAwLjE3NDQzMywgMC4zMjA2NTYsIDAuNDI1OTQ1LCAwLjU5NDU5OCwgMC43NDEyNzcsIDAuOTUxNjg3IiwgXAotICAgICAgICAgICIwLjAzMTA4OCwgMC4xNzQzOTEsIDAuMzIwNjU0LCAwLjQyNTE2MywgMC41OTQ2NDgsIDAuNzQwMDksIDAuOTUxNjc4IiwgXAotICAgICAgICAgICIwLjAzMTA4LCAwLjE3NDM4NCwgMC4zMjEyOTQsIDAuNDI1ODg2LCAwLjU5NDU0MywgMC43NDE2NjcsIDAuOTUxNjgzIiwgXAotICAgICAgICAgICIwLjAzMTA3NiwgMC4xNzQzODgsIDAuMzIxMzA5LCAwLjQyNTU5OSwgMC41OTQ2MiwgMC43NDE2NTksIDAuOTUxNzU4IiwgXAotICAgICAgICAgICIwLjAzMTEsIDAuMTc0NDQsIDAuMzIxMjk1LCAwLjQyNTg5NCwgMC41OTQ0MTcsIDAuNzQwNzEsIDAuOTUxNjY0IiwgXAotICAgICAgICAgICIwLjAzMTExNywgMC4xNzQ0MjksIDAuMzIxMjk4LCAwLjQyNTg5MywgMC41OTQ0MSwgMC43NDA3MzksIDAuOTUxNjUxIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTI0Njg3LCAwLjE5ODkxNCwgMC4yNzIyODksIDAuMzI0NzE0LCAwLjQwODUyNCwgMC40ODE4NDIsIDAuNTg2NjEiLCBcCi0gICAgICAgICAgIjAuMTM0ODc1LCAwLjIwOTEwMiwgMC4yODI0NzgsIDAuMzM0ODgzLCAwLjQxODY4NSwgMC40OTIwMjUsIDAuNTk2Nzg4IiwgXAotICAgICAgICAgICIwLjE0NzY2OCwgMC4yMjE4OTUsIDAuMjk1MjU5LCAwLjM0NzY3OCwgMC40MzE0OSwgMC41MDQ4MDgsIDAuNjA5NTg0IiwgXAotICAgICAgICAgICIwLjE2MDA2NiwgMC4yMzQyOTEsIDAuMzA3NjU5LCAwLjM2MDA2OSwgMC40NDM4ODMsIDAuNTE3MjM5LCAwLjYyMjAyMyIsIFwKLSAgICAgICAgICAiMC4xNzEzMjYsIDAuMjQ1NTQ2LCAwLjMxODkxMSwgMC4zNzEzMzQsIDAuNDU1MTM2LCAwLjUyODQ2MywgMC42MzMyMzQiLCBcCi0gICAgICAgICAgIjAuMTg2ODU2LCAwLjI2MTA4NSwgMC4zMzQ0NDcsIDAuMzg2ODM3LCAwLjQ3MDY2OSwgMC41NDQwMDcsIDAuNjQ4NzYyIiwgXAotICAgICAgICAgICIwLjE5ODkyOCwgMC4yNzMxNjEsIDAuMzQ2NTE4LCAwLjM5ODkzOCwgMC40ODI3NDQsIDAuNTU2MDgsIDAuNjYwODU3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDMwODE0LCAwLjE3NjQyLCAwLjMyNDc5MSwgMC40MzE3NTksIDAuNjAwODc5LCAwLjc1MDY5NywgMC45NjE1NjIiLCBcCi0gICAgICAgICAgIjAuMDMwNzk2LCAwLjE3NjM5MiwgMC4zMjUzMjMsIDAuNDMxNzE3LCAwLjYwMTc4MywgMC43NTA1MjIsIDAuOTYyMzUzIiwgXAotICAgICAgICAgICIwLjAzMDgxLCAwLjE3NjQ0OSwgMC4zMjQ4MjEsIDAuNDMxNzQyLCAwLjYwMTg1NiwgMC43NTA2OTMsIDAuOTYxNzU4IiwgXAotICAgICAgICAgICIwLjAzMDc5NSwgMC4xNzYzNDIsIDAuMzI0NzIsIDAuNDMwOTAyLCAwLjYwMTgyNSwgMC43NTA4MjUsIDAuOTYxNDQ4IiwgXAotICAgICAgICAgICIwLjAzMDgxNiwgMC4xNzY0MTcsIDAuMzI0ODAxLCAwLjQzMTc1NCwgMC42MDA3MzQsIDAuNzUwNzAxLCAwLjk2MTY0MyIsIFwKLSAgICAgICAgICAiMC4wMzA4MTIsIDAuMTc2Mzk4LCAwLjMyNDcyNSwgMC40MzE0NDgsIDAuNjAxNzkzLCAwLjc1MDUxNiwgMC45NjMzNjUiLCBcCi0gICAgICAgICAgIjAuMDMwODMxLCAwLjE3NjQ0OCwgMC4zMjUyNDcsIDAuNDMxNzA5LCAwLjYwMTgwOSwgMC43NTA1NCwgMC45NjE5NyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMDA4MSwgMC4wMTAxODUsIDAuMDEwMTY4LCAwLjAxMDE2NSwgMC4wMTAxNTIsIDAuMDEwMTQ2LCAwLjAxMDE0MiIsIFwKLSAgICAgICAgICAiMC4wMTAwNTIsIDAuMDEwMTU2LCAwLjAxMDE0MywgMC4wMTAxMzUsIDAuMDEwMTI1LCAwLjAxMDExOSwgMC4wMTAxMTQiLCBcCi0gICAgICAgICAgIjAuMDEwMDM1LCAwLjAxMDE0LCAwLjAxMDEyNywgMC4wMTAxMjEsIDAuMDEwMTA2LCAwLjAxMDEwMSwgMC4wMTAxMDIiLCBcCi0gICAgICAgICAgIjAuMDEwMDMxLCAwLjAxMDE0MSwgMC4wMTAxMywgMC4wMTAxMjIsIDAuMDEwMTEyLCAwLjAxMDEwNiwgMC4wMTAxIiwgXAotICAgICAgICAgICIwLjAxMDA0MSwgMC4wMTAxNTMsIDAuMDEwMTQzLCAwLjAxMDEzNCwgMC4wMTAxMjQsIDAuMDEwMTE2LCAwLjAxMDExIiwgXAotICAgICAgICAgICIwLjAxMDA1LCAwLjAxMDE2NSwgMC4wMTAxNTEsIDAuMDEwMTQ2LCAwLjAxMDEzNiwgMC4wMTAxMzIsIDAuMDEwMTIzIiwgXAotICAgICAgICAgICIwLjAxMDA4OSwgMC4wMTAxOTksIDAuMDEwMTksIDAuMDEwMTgzLCAwLjAxMDE3MywgMC4wMTAxNjYsIDAuMDEwMTYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMDA1NSwgMC4wMTAyNiwgMC4wMTAyOTEsIDAuMDEwMjk5LCAwLjAxMDMwNywgMC4wMTAzMTEsIDAuMDEwMzE0IiwgXAotICAgICAgICAgICIwLjAxMDAzMSwgMC4wMTAyMzQsIDAuMDEwMjYzLCAwLjAxMDI3MSwgMC4wMTAyNzksIDAuMDEwMjgzLCAwLjAxMDI4NyIsIFwKLSAgICAgICAgICAiMC4wMTAwMjYsIDAuMDEwMjMsIDAuMDEwMjU4LCAwLjAxMDI2NywgMC4wMTAyNzUsIDAuMDEwMjc5LCAwLjAxMDI4MyIsIFwKLSAgICAgICAgICAiMC4wMTAwNDUsIDAuMDEwMjQ1LCAwLjAxMDI3MywgMC4wMTAyODEsIDAuMDEwMjg5LCAwLjAxMDI5MywgMC4wMTAyOTciLCBcCi0gICAgICAgICAgIjAuMDEwMDY0LCAwLjAxMDI2OCwgMC4wMTAyOTYsIDAuMDEwMzA1LCAwLjAxMDMxMywgMC4wMTAzMTcsIDAuMDEwMzIiLCBcCi0gICAgICAgICAgIjAuMDEwMDc5LCAwLjAxMDI4MiwgMC4wMTAzMSwgMC4wMTAzMTksIDAuMDEwMzI2LCAwLjAxMDMzLCAwLjAxMDMzNCIsIFwKLSAgICAgICAgICAiMC4wMTAxMzgsIDAuMDEwMzQyLCAwLjAxMDM3LCAwLjAxMDM3OSwgMC4wMTAzODcsIDAuMDEwMzkxLCAwLjAxMDM5NCIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBERkZSSFFYMiAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoREZGUkhRWDIpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC40MTkzNTI7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgZmYgKE4zMCxRQklOVCkgewotICAgIG5leHRfc3RhdGUgOiAiRCI7Ci0gICAgY2xvY2tlZF9vbiA6ICJDSyI7Ci0gICAgY2xlYXIgOiAiKCFSTikiOwotICB9Ci0gIHBpbihDSykgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjI4NzE2OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYyODU0OTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2Mjg3MTY7Ci0gICAgY2xvY2sgOiB0cnVlOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzI1LCAwLjAwMzIyNiwgMC4wMDMyMTMsIDAuMDAzMjEyLCAwLjAwMzIyLCAwLjAwMzI0NCwgMC4wMDMyNiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwODI0MiwgMC4wMDgyMjMsIDAuMDA4MjE3LCAwLjAwODIxOSwgMC4wMDgyMjEsIDAuMDA4MjQ3LCAwLjAwODI2MyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQmUk4iOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1JOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4xNDA4MTIsIDAuMTUwOTYsIDAuMTYzNzk3LCAwLjE3NjQwMiwgMC4xODc5NzIsIDAuMjAzNzksIDAuMjE2NzU2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4xMDk5MzQsIDAuMTE5NTM1LCAwLjEzMjE3OCwgMC4xNDQzMTMsIDAuMTU1MTYxLCAwLjE3MDA2NCwgMC4xODEyNjkiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEQpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDc5NDQ0OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDc5MjQ2OTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA3OTQ0NDsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDI4MTIsIDAuMDAyNzgsIDAuMDAyNzY0LCAwLjAwMjc1NCwgMC4wMDI3NTYsIDAuMDAyNzU3LCAwLjAwMjc2NCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzYwNSwgMC4wMDM1ODUsIDAuMDAzNTc1LCAwLjAwMzU3LCAwLjAwMzU2NSwgMC4wMDM1NjYsIDAuMDAzNTcyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlJOIjsKLSAgICAgIHNkZl9jb25kIDogIlJOID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAxODc1LCAtMC4wMDc1LCAtMC4wMDEyNSwgMC4wMDUsIDAuMDExMjUsIDAuMDIxMjUsIDAuMDMiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAsIDAuMDA2MjUsIDAuMDEsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMC4wMDM3NSwgMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDI1LCAwIiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wNjUsIC0wLjA1Mzc1LCAtMC4wNDc1LCAtMC4wNDEyNSwgLTAuMDM1LCAtMC4wMjUsIC0wLjAxNjI1IiwgXAotICAgICAgICAgICItMC4wNzM3NSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDMzNzUsIC0wLjAyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDMxMjUsIDAuMDQyNSwgMC4wNTUsIDAuMDY3NSwgMC4wNzM3NSwgMC4wOSwgMC4wOTg3NSIsIFwKLSAgICAgICAgICAiMC4wMiwgMC4wMzEyNSwgMC4wNDM3NSwgMC4wNTYyNSwgMC4wNjg3NSwgMC4wNzg3NSwgMC4wOTM3NSIsIFwKLSAgICAgICAgICAiMC4wMTM3NSwgMC4wMjUsIDAuMDM3NSwgMC4wNSwgMC4wNjI1LCAwLjA3MjUsIDAuMDg3NSIsIFwKLSAgICAgICAgICAiMC4wMDc1LCAwLjAxODc1LCAwLjAzMTI1LCAwLjA0Mzc1LCAwLjA1NjI1LCAwLjA2NjI1LCAwLjA4MTI1IiwgXAotICAgICAgICAgICIwLjAwMTI1LCAwLjAxMjUsIDAuMDI1LCAwLjAzNzUsIDAuMDUsIDAuMDYsIDAuMDc1IiwgXAotICAgICAgICAgICItMC4wMDI1LCAwLjAwODc1LCAwLjAyMTI1LCAwLjAzMzc1LCAwLjA0LCAwLjA1NjI1LCAwLjA2NSIsIFwKLSAgICAgICAgICAiLTAuMDA1LCAwLjAwNjI1LCAwLjAxMjUsIDAuMDI1LCAwLjAzNzUsIDAuMDUzNzUsIDAuMDYyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiUk4iOwotICAgICAgc2RmX2NvbmQgOiAiUk4gPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM3NSwgMC4wMjYyNSwgMC4wMiwgMC4wMTM3NSwgMC4wMDc1LCAtMC4wMDI1LCAtMC4wMTEyNSIsIFwKLSAgICAgICAgICAiMC4wNDg3NSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAxODc1LCAwLjAxMjUsIDAuMDA4NzUsIDAiLCBcCi0gICAgICAgICAgIjAuMDYxMjUsIDAuMDUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMjUsIDAuMDE1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDU2MjUsIDAuMDUsIDAuMDQzNzUsIDAuMDMxMjUsIDAuMDI3NSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4wOCwgMC4wNjg3NSwgMC4wNTYyNSwgMC4wNSwgMC4wNDM3NSwgMC4wMzM3NSwgMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMDksIDAuMDc4NzUsIDAuMDcyNSwgMC4wNiwgMC4wNTM3NSwgMC4wNDM3NSwgMC4wNDEyNSIsIFwKLSAgICAgICAgICAiMC4wOTg3NSwgMC4wOTM3NSwgMC4wODEyNSwgMC4wNzUsIDAuMDYyNSwgMC4wNTI1LCAwLjA1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2MjUsIC0wLjAwNSwgLTAuMDE3NSwgLTAuMDMsIC0wLjA0MjUsIC0wLjA1ODc1LCAtMC4wNzM3NSIsIFwKLSAgICAgICAgICAiMC4wMTc1LCAwLjAwNjI1LCAtMC4wMDYyNSwgLTAuMDI1LCAtMC4wMzEyNSwgLTAuMDQ3NSwgLTAuMDYyNSIsIFwKLSAgICAgICAgICAiMC4wMjM3NSwgMC4wMTI1LCAwLCAtMC4wMTI1LCAtMC4wMjUsIC0wLjA0MTI1LCAtMC4wNSIsIFwKLSAgICAgICAgICAiMC4wMzYyNSwgMC4wMjUsIDAuMDEyNSwgLTAuMDA2MjUsIC0wLjAxMjUsIC0wLjAyODc1LCAtMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4wNDI1LCAwLjAzMTI1LCAwLjAxODc1LCAwLjAwNjI1LCAtMC4wMDYyNSwgLTAuMDIyNSwgLTAuMDM3NSIsIFwKLSAgICAgICAgICAiMC4wNTI1LCAwLjA0MTI1LCAwLjAyODc1LCAwLjAxNjI1LCAwLjAwMzc1LCAtMC4wMTI1LCAtMC4wMjc1IiwgXAotICAgICAgICAgICIwLjA2MTI1LCAwLjA1LCAwLjAzNzUsIDAuMDI1LCAwLjAxMjUsIC0wLjAwMzc1LCAtMC4wMTg3NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjUyMTQzMzsKLSAgICBmdW5jdGlvbiA6ICJOMzAiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5vbl91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcmlzaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE0NDU4NywgMC4yNDgzNzgsIDAuMzI5NjEyLCAwLjQzMTE4NiwgMC41MzI3ODIsIDAuNjM0MzI0LCAwLjczNTk0MyIsIFwKLSAgICAgICAgICAiMC4xNTQ2NzIsIDAuMjU4NDUzLCAwLjMzOTY5LCAwLjQ0MTM1MywgMC41NDI4NDMsIDAuNjQ0NDM2LCAwLjc0NjA2MSIsIFwKLSAgICAgICAgICAiMC4xNjc0OTcsIDAuMjcxMjkyLCAwLjM1MjUyMSwgMC40NTQwODcsIDAuNTU1Njg5LCAwLjY1NzIzMSwgMC43NTg4NjkiLCBcCi0gICAgICAgICAgIjAuMTgwMDAxLCAwLjI4MzgwMywgMC4zNjUwMzIsIDAuNDY2NjQ3LCAwLjU2ODIxMiwgMC42Njk3NTMsIDAuNzcxNDU0IiwgXAotICAgICAgICAgICIwLjE5MTM5MSwgMC4yOTUxODcsIDAuMzc2NDIyLCAwLjQ3ODAwOCwgMC41Nzk1ODYsIDAuNjgxMTI4LCAwLjc4MjcyOSIsIFwKLSAgICAgICAgICAiMC4yMDY4NzgsIDAuMzEwNjk0LCAwLjM5MTkzNSwgMC40OTM1NjYsIDAuNTk1MDcxLCAwLjY5NjY3LCAwLjc5ODIwNSIsIFwKLSAgICAgICAgICAiMC4yMTk0NjIsIDAuMzIzMjg2LCAwLjQwNDUxOSwgMC41MDYxMTEsIDAuNjA3NjU1LCAwLjcwOTIxMywgMC44MTA4MSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTc4MzYsIDAuMjYwMzY5LCAwLjQyNjk0MywgMC42MzU1NDgsIDAuODQ2MTY2LCAxLjA1NTMzLCAxLjI2NTY0IiwgXAotICAgICAgICAgICIwLjA1Nzg4NSwgMC4yNjAzNDMsIDAuNDI2NDIyLCAwLjYzNTA4NiwgMC44NDYxMzYsIDEuMDU0NDEsIDEuMjY1NzMiLCBcCi0gICAgICAgICAgIjAuMDU3ODgyLCAwLjI2MDM4NCwgMC40MjY5MzMsIDAuNjM2MDQ4LCAwLjg0NjE1LCAxLjA1NTMsIDEuMjY1NjYiLCBcCi0gICAgICAgICAgIjAuMDU3ODQ1LCAwLjI2MDE0MiwgMC40MjY5MjksIDAuNjM2NTE0LCAwLjg0NjE1OSwgMS4wNTU3OCwgMS4yNjMxNyIsIFwKLSAgICAgICAgICAiMC4wNTc4ODEsIDAuMjYwMzU5LCAwLjQyNjkzMiwgMC42MzU1NDMsIDAuODQ2MTM3LCAxLjA1NTMyLCAxLjI2NTU3IiwgXAotICAgICAgICAgICIwLjA1Nzg5NSwgMC4yNjAxNiwgMC40MjY5NDEsIDAuNjM1MTQ1LCAwLjg0NjA5MiwgMS4wNTQ0LCAxLjI2MzkiLCBcCi0gICAgICAgICAgIjAuMDU3ODk1LCAwLjI2MDM4MSwgMC40MjY5NDMsIDAuNjM1NTExLCAwLjg0NjA3NiwgMS4wNTU3MiwgMS4yNjU1NCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNDA4MTIsIDAuMjQ0ODI2LCAwLjMyNzU4MSwgMC40MzEwMDQsIDAuNTM0MzkxLCAwLjYzNzc5LCAwLjc0MTE1NSIsIFwKLSAgICAgICAgICAiMC4xNTA5NiwgMC4yNTQ5OCwgMC4zMzc3MzIsIDAuNDQxMTkyLCAwLjU0NDU0NiwgMC42NDc5NTMsIDAuNzUxMzEiLCBcCi0gICAgICAgICAgIjAuMTYzNzk3LCAwLjI2NzgxNywgMC4zNTA1NzIsIDAuNDUzOTk1LCAwLjU1NzM4NCwgMC42NjA3ODEsIDAuNzY0MTU0IiwgXAotICAgICAgICAgICIwLjE3NjQwMiwgMC4yODA0MiwgMC4zNjMxNzIsIDAuNDY2NTYyLCAwLjU2OTk5MywgMC42NzMzODIsIDAuNzc2NzYxIiwgXAotICAgICAgICAgICIwLjE4Nzk3MiwgMC4yOTE5OSwgMC4zNzQ3NDMsIDAuNDc4MTk5LCAwLjU4MTU1NCwgMC42ODQ5NTUsIDAuNzg4MzMiLCBcCi0gICAgICAgICAgIjAuMjAzNzksIDAuMzA3ODA0LCAwLjM5MDU1NywgMC40OTQwMTQsIDAuNTk3MzY3LCAwLjcwMDc2NywgMC44MDQxNDUiLCBcCi0gICAgICAgICAgIjAuMjE2NzU2LCAwLjMyMDc3NCwgMC40MDM1MjQsIDAuNTA2OTIsIDAuNjEwMzQxLCAwLjcxMzcwNywgMC44MTcxMDciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDUxNDczLCAwLjI1NzU2NywgMC40MjU3MDIsIDAuNjM0NDA4LCAwLjg0NTU5NSwgMS4wNTU2MiwgMS4yNjUzNiIsIFwKLSAgICAgICAgICAiMC4wNTE0NjksIDAuMjU3NTkxLCAwLjQyNTY5MywgMC42MzM4ODQsIDAuODQ1NjA1LCAxLjA1NTYxLCAxLjI2NTM4IiwgXAotICAgICAgICAgICIwLjA1MTQ4MywgMC4yNTc1NjcsIDAuNDI1NzAyLCAwLjYzNDM2LCAwLjg0NTYwNywgMS4wNTU2LCAxLjI2NTQxIiwgXAotICAgICAgICAgICIwLjA1MTQ2OSwgMC4yNTc1OTMsIDAuNDI1Njk0LCAwLjYzNTQ4MSwgMC44NDU2NDMsIDEuMDU1NTYsIDEuMjY1NDUiLCBcCi0gICAgICAgICAgIjAuMDUxNDY5LCAwLjI1NzU3NywgMC40MjU2OTksIDAuNjM0MTIxLCAwLjg0NTU4NiwgMS4wNTU2LCAxLjI2NTQ1IiwgXAotICAgICAgICAgICIwLjA1MTQ3NSwgMC4yNTc1NzQsIDAuNDI1NywgMC42MzM5MzIsIDAuODQ1NTk1LCAxLjA1NTYsIDEuMjY1NDYiLCBcCi0gICAgICAgICAgIjAuMDUxNDY3LCAwLjI1NzU5OSwgMC40MjU2ODcsIDAuNjM1MjA5LCAwLjg0NTYxNSwgMS4wNTUzOSwgMS4yNjU0MiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogY2xlYXI7Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1OTAwMSwgMC4xNjMwOTYsIDAuMjQ1ODEsIDAuMzQ5MTg2LCAwLjQ1MjU0MiwgMC41NTU5MjMsIDAuNjU5MzIyIiwgXAotICAgICAgICAgICIwLjA2ODkxOSwgMC4xNzMwMzcsIDAuMjU1NzQ3LCAwLjM1OTE1MSwgMC40NjI0OTMsIDAuNTY1ODk3LCAwLjY2OTI3NiIsIFwKLSAgICAgICAgICAiMC4wODEzNTEsIDAuMTg1NDgzLCAwLjI2ODE5MSwgMC4zNzE2MDgsIDAuNDc0OTU1LCAwLjU3ODMzNSwgMC42ODE3MzkiLCBcCi0gICAgICAgICAgIjAuMDkyNzY2LCAwLjE5NjkxMSwgMC4yNzk2MjMsIDAuMzgzMDM4LCAwLjQ4NjM5NSwgMC41ODk3NzQsIDAuNjkzMTc3IiwgXAotICAgICAgICAgICIwLjEwMjc3NCwgMC4yMDY5NDgsIDAuMjg5NjMzLCAwLjM5MzA1NSwgMC40OTYzOTMsIDAuNTk5NzgxLCAwLjcwMzE3OSIsIFwKLSAgICAgICAgICAiMC4xMTY4MTIsIDAuMjIxMDM3LCAwLjMwMzc0OCwgMC40MDcxNDksIDAuNTEwNTE2LCAwLjYxMzkwOSwgMC43MTcyNjkiLCBcCi0gICAgICAgICAgIjAuMTI3MjI3LCAwLjIzMTUwNCwgMC4zMTQyMzksIDAuNDE3NTg5LCAwLjUyMTAyNSwgMC42MjQzNzQsIDAuNzI3NzU5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1MTYzLCAwLjI1NzQ3NywgMC40MjQ3MSwgMC42MzQzMTQsIDAuODQ0NTQ1LCAxLjA1NDQ5LCAxLjI2NDMxIiwgXAotICAgICAgICAgICIwLjA1MTYzMSwgMC4yNTc0OCwgMC40MjQ3MjYsIDAuNjM0MjgsIDAuODQ0NTQ5LCAxLjA1NDUxLCAxLjI2Mzc2IiwgXAotICAgICAgICAgICIwLjA1MTc0LCAwLjI1NzQ4NCwgMC40MjQ3NjgsIDAuNjM0MjgsIDAuODQ0NDY4LCAxLjA1NDQ3LCAxLjI2Mzk1IiwgXAotICAgICAgICAgICIwLjA1MjIyNCwgMC4yNTc1MDQsIDAuNDI0NzYyLCAwLjYzNDI3MSwgMC44NDQ0MjEsIDEuMDU0NDYsIDEuMjYyOTgiLCBcCi0gICAgICAgICAgIjAuMDUzMDgzLCAwLjI1NzU3LCAwLjQyNDc3NCwgMC42MzQyNTEsIDAuODQ0NTQxLCAxLjA1NDQ1LCAxLjI2NDM1IiwgXAotICAgICAgICAgICIwLjA1NDY2NiwgMC4yNTc3NjQsIDAuNDI0NzI1LCAwLjYzNDMwNCwgMC44NDM5NzYsIDEuMDU0NCwgMS4yNjQyOSIsIFwKLSAgICAgICAgICAiMC4wNTU3NTksIDAuMjU4MTU1LCAwLjQyNDg0OSwgMC42MzQ1NzYsIDAuODQ0MDE3LCAxLjA1MzUsIDEuMjYyNjgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA4NDI4LCAwLjAwODQzNSwgMC4wMDg0MTcsIDAuMDA4NDAzLCAwLjAwODM5NSwgMC4wMDgzODgsIDAuMDA4Mzg0IiwgXAotICAgICAgICAgICIwLjAwODM5OSwgMC4wMDg0MDcsIDAuMDA4Mzg4LCAwLjAwODM3NCwgMC4wMDgzNjYsIDAuMDA4MzYsIDAuMDA4MzU3IiwgXAotICAgICAgICAgICIwLjAwODM4NCwgMC4wMDgzOTMsIDAuMDA4Mzc1LCAwLjAwODM2LCAwLjAwODM1MiwgMC4wMDgzNDYsIDAuMDA4MzQyIiwgXAotICAgICAgICAgICIwLjAwODM4MSwgMC4wMDgzOTIsIDAuMDA4Mzc0LCAwLjAwODM2LCAwLjAwODM1MSwgMC4wMDgzNDUsIDAuMDA4MzQiLCBcCi0gICAgICAgICAgIjAuMDA4Mzg4LCAwLjAwODQwMSwgMC4wMDgzODMsIDAuMDA4MzY4LCAwLjAwODM1OSwgMC4wMDgzNTQsIDAuMDA4MzQ5IiwgXAotICAgICAgICAgICIwLjAwODQxOCwgMC4wMDg0MzMsIDAuMDA4NDE2LCAwLjAwODQwMiwgMC4wMDgzOTIsIDAuMDA4Mzg2LCAwLjAwODM4MSIsIFwKLSAgICAgICAgICAiMC4wMDg0MTksIDAuMDA4NDM2LCAwLjAwODQyLCAwLjAwODQwNSwgMC4wMDgzOTYsIDAuMDA4Mzg5LCAwLjAwODM4NSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwODcxOCwgMC4wMDg3OTgsIDAuMDA4ODA4LCAwLjAwODgxMywgMC4wMDg4MTYsIDAuMDA4ODE4LCAwLjAwODgxOSIsIFwKLSAgICAgICAgICAiMC4wMDg2OTEsIDAuMDA4NzcsIDAuMDA4NzgsIDAuMDA4Nzg1LCAwLjAwODc4OCwgMC4wMDg3OSwgMC4wMDg3OTEiLCBcCi0gICAgICAgICAgIjAuMDA4Njg2LCAwLjAwODc2NiwgMC4wMDg3NzYsIDAuMDA4NzgxLCAwLjAwODc4NCwgMC4wMDg3ODYsIDAuMDA4Nzg3IiwgXAotICAgICAgICAgICIwLjAwODcwNSwgMC4wMDg3ODQsIDAuMDA4Nzk0LCAwLjAwODc5OSwgMC4wMDg4MDIsIDAuMDA4ODA0LCAwLjAwODgwNSIsIFwKLSAgICAgICAgICAiMC4wMDg3MTcsIDAuMDA4Nzk2LCAwLjAwODgwNiwgMC4wMDg4MTEsIDAuMDA4ODE0LCAwLjAwODgxNiwgMC4wMDg4MTciLCBcCi0gICAgICAgICAgIjAuMDA4NzcsIDAuMDA4ODQ4LCAwLjAwODg1OCwgMC4wMDg4NjMsIDAuMDA4ODY2LCAwLjAwODg2OCwgMC4wMDg4NjkiLCBcCi0gICAgICAgICAgIjAuMDA4ODA4LCAwLjAwODg4NywgMC4wMDg4OTcsIDAuMDA4OTAyLCAwLjAwODkwNSwgMC4wMDg5MDYsIDAuMDA4OTA3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUk4iOwotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwOTUzNCwgMC4wMDk2MDIsIDAuMDA5NjEsIDAuMDA5NjE0LCAwLjAwOTYxNiwgMC4wMDk2MTcsIDAuMDA5NjE4IiwgXAotICAgICAgICAgICIwLjAwOTQ4MywgMC4wMDk1NiwgMC4wMDk1NywgMC4wMDk1NzQsIDAuMDA5NTc3LCAwLjAwOTU3OCwgMC4wMDk1NzkiLCBcCi0gICAgICAgICAgIjAuMDA5NDM5LCAwLjAwOTUzLCAwLjAwOTU0MiwgMC4wMDk1NDksIDAuMDA5NTUzLCAwLjAwOTU1NSwgMC4wMDk1NTciLCBcCi0gICAgICAgICAgIjAuMDA5NDEyLCAwLjAwOTUwOSwgMC4wMDk1MjQsIDAuMDA5NTMzLCAwLjAwOTUzNywgMC4wMDk1NCwgMC4wMDk1NDEiLCBcCi0gICAgICAgICAgIjAuMDA5MzkzLCAwLjAwOTQ5NCwgMC4wMDk1MTIsIDAuMDA5NTIyLCAwLjAwOTUyNywgMC4wMDk1MywgMC4wMDk1MzIiLCBcCi0gICAgICAgICAgIjAuMDA5MzksIDAuMDA5NDg5LCAwLjAwOTUwNiwgMC4wMDk1MiwgMC4wMDk1MjYsIDAuMDA5NTMsIDAuMDA5NTMzIiwgXAotICAgICAgICAgICIwLjAwOTM5NCwgMC4wMDk0OTMsIDAuMDA5NTE0LCAwLjAwOTUyNywgMC4wMDk1MzYsIDAuMDA5NTQsIDAuMDA5NTQzIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3Bvd2VyKHNjYWxhcikgewotICAgICAgICB2YWx1ZXMoIjAiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFJOKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE1NTkzMjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE0NDEwMTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE1NTkzMjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA2NTMsIDAuMDAwNjUyLCAwLjAwMDY1MiwgMC4wMDA2NTIsIDAuMDAwNjUyLCAwLjAwMDY1MiwgMC4wMDA2NTIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA2NjIsIDAuMDAwNjU1LCAwLjAwMDY1NSwgMC4wMDA2NTQsIDAuMDAwNjU0LCAwLjAwMDY1NSwgMC4wMDA2NTQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUk4iOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFEIjsKLSAgICAgIHNkZl9jb25kIDogIkQgPT0gMSdiMCI7Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wODAyODEsIDAuMDg5NTY2LCAwLjA5OTY5LCAwLjEwOTE1NCwgMC4xMTc5MDEsIDAuMTMwNDExLCAwLjE0MDA3OCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJlY292ZXJ5X3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiRCI7Ci0gICAgICBzZGZfY29uZCA6ICJEID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHJlY292ZXJ5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMzc1LCAtMC4wNDg3NSwgLTAuMDYxMjUsIC0wLjA3Mzc1LCAtMC4wODYyNSwgLTAuMTAyNSwgLTAuMTExMjUiLCBcCi0gICAgICAgICAgIi0wLjA0NSwgLTAuMDU2MjUsIC0wLjA2ODc1LCAtMC4wODEyNSwgLTAuMDkzNzUsIC0wLjEwMzc1LCAtMC4xMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDM4NzUsIC0wLjA1LCAtMC4wNjI1LCAtMC4wNzUsIC0wLjA4NzUsIC0wLjEwMzc1LCAtMC4xMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDI2MjUsIC0wLjAzNzUsIC0wLjA1NjI1LCAtMC4wNjg3NSwgLTAuMDgxMjUsIC0wLjA5NzUsIC0wLjExMjUiLCBcCi0gICAgICAgICAgIi0wLjAxMzc1LCAtMC4wMjUsIC0wLjAzNzUsIC0wLjA1LCAtMC4wNjg3NSwgLTAuMDg1LCAtMC4wOTM3NSIsIFwKLSAgICAgICAgICAiMC4wMTUsIDAuMDAzNzUsIC0wLjAxNSwgLTAuMDI3NSwgLTAuMDQsIC0wLjA2MjUsIC0wLjA3MTI1IiwgXAotICAgICAgICAgICIwLjAzNjI1LCAwLjAyNSwgMC4wMDYyNSwgLTAuMDA2MjUsIC0wLjAxODc1LCAtMC4wMzUsIC0wLjA1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogcmVtb3ZhbF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIkQiOwotICAgICAgc2RmX2NvbmQgOiAiRCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChyZW1vdmFsX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1NjI1LCAwLjA2NzUsIDAuMDgsIDAuMDkyNSwgMC4xMDUsIDAuMTIxMjUsIDAuMTM2MjUiLCBcCi0gICAgICAgICAgIjAuMDYzNzUsIDAuMDc1LCAwLjA4NzUsIDAuMSwgMC4xMTI1LCAwLjEyODc1LCAwLjEzNzUiLCBcCi0gICAgICAgICAgIjAuMDcsIDAuMDgxMjUsIDAuMDkzNzUsIDAuMTA2MjUsIDAuMTE4NzUsIDAuMTM1LCAwLjE0Mzc1IiwgXAotICAgICAgICAgICIwLjA3NjI1LCAwLjA4NzUsIDAuMSwgMC4xMTI1LCAwLjEyNSwgMC4xNDEyNSwgMC4xNSIsIFwKLSAgICAgICAgICAiMC4wODI1LCAwLjA5Mzc1LCAwLjEwNjI1LCAwLjExODc1LCAwLjEzMTI1LCAwLjE0NzUsIDAuMTU2MjUiLCBcCi0gICAgICAgICAgIjAuMDkxMjUsIDAuMTAyNSwgMC4xMTUsIDAuMTI3NSwgMC4xNCwgMC4xNSwgMC4xNjUiLCBcCi0gICAgICAgICAgIjAuMDk1LCAwLjEwNjI1LCAwLjExODc1LCAwLjEzMTI1LCAwLjE0Mzc1LCAwLjE2LCAwLjE2ODc1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBERkZSWDEgKgotICogLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChERkZSWDEpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4zNTg3MDY7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgZmYgKE4zMCxRQklOVCkgewotICAgIG5leHRfc3RhdGUgOiAiRCI7Ci0gICAgY2xvY2tlZF9vbiA6ICJDSyI7Ci0gICAgY2xlYXIgOiAiKCFSTikiOwotICB9Ci0gIHBpbihDSykgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjMyMDUzOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYzMTYyNTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2MzIwNTM7Ci0gICAgY2xvY2sgOiB0cnVlOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjk3OSwgMC4wMDI5NTMsIDAuMDAyOTM5LCAwLjAwMjk0MSwgMC4wMDI5NTMsIDAuMDAyOTcxLCAwLjAwMjk5NCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNjk4LCAwLjAwNjk1OSwgMC4wMDY5NDksIDAuMDA2OTUsIDAuMDA2OTU4LCAwLjAwNjk3OSwgMC4wMDY5OTYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFEJlJOIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9STl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMTc1ODk1LCAwLjE4NjE0MywgMC4xOTg5NjEsIDAuMjExMDE0LCAwLjIyMjAyNSwgMC4yMzcyOTEsIDAuMjQ5MDEyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4xMDYyNjIsIDAuMTE1OTk3LCAwLjEyODM4NywgMC4xNDAxMjIsIDAuMTUwMjMyLCAwLjE2NDExOSwgMC4xNzQ1ODgiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEQpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDU5Mjk5ODsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA1OTExMTc7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNTkyOTk4OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjI1NSwgMC4wMDIyMzIsIDAuMDAyMjIyLCAwLjAwMjIxNCwgMC4wMDIyMTksIDAuMDAyMjIyLCAwLjAwMjIyMiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjg5NCwgMC4wMDI4OCwgMC4wMDI4NzMsIDAuMDAyODY5LCAwLjAwMjg3LCAwLjAwMjg2OCwgMC4wMDI4NzIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiUk4iOwotICAgICAgc2RmX2NvbmQgOiAiUk4gPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDE4NzUsIC0wLjAwNzUsIC0wLjAwMTI1LCAwLjAwNSwgMC4wMTEyNSwgMC4wMTUsIDAuMDIzNzUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAsIDAuMDEsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIC0wLjAwMjUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDA4NzUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMjEyNSwgLTAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDY1LCAtMC4wNiwgLTAuMDQ3NSwgLTAuMDQxMjUsIC0wLjAzNSwgLTAuMDMxMjUsIC0wLjAyMjUiLCBcCi0gICAgICAgICAgIi0wLjA3Mzc1LCAtMC4wNjg3NSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDQsIC0wLjAzMTI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjUsIDAuMDM2MjUsIDAuMDQ4NzUsIDAuMDYxMjUsIDAuMDY3NSwgMC4wODM3NSwgMC4wOTI1IiwgXAotICAgICAgICAgICIwLjAxMzc1LCAwLjAyNSwgMC4wMzc1LCAwLjA1LCAwLjA2MjUsIDAuMDcyNSwgMC4wODEyNSIsIFwKLSAgICAgICAgICAiMC4wMDc1LCAwLjAxODc1LCAwLjAzMTI1LCAwLjA0Mzc1LCAwLjA1LCAwLjA2NjI1LCAwLjA3NSIsIFwKLSAgICAgICAgICAiMC4wMDEyNSwgMC4wMTI1LCAwLjAyNSwgMC4wMzc1LCAwLjA0Mzc1LCAwLjA2LCAwLjA2ODc1IiwgXAotICAgICAgICAgICItMC4wMDUsIDAuMDA2MjUsIDAuMDE4NzUsIDAuMDMxMjUsIDAuMDQzNzUsIDAuMDUzNzUsIDAuMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDA4NzUsIDAuMDAyNSwgMC4wMTUsIDAuMDIxMjUsIDAuMDMzNzUsIDAuMDUsIDAuMDU4NzUiLCBcCi0gICAgICAgICAgIi0wLjAxMTI1LCAtMC4wMDYyNSwgMC4wMDYyNSwgMC4wMTg3NSwgMC4wMzEyNSwgMC4wNDEyNSwgMC4wNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiUk4iOwotICAgICAgc2RmX2NvbmQgOiAiUk4gPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQzNzUsIDAuMDMyNSwgMC4wMjYyNSwgMC4wMTM3NSwgMC4wMTM3NSwgMC4wMDM3NSwgLTAuMDA1IiwgXAotICAgICAgICAgICIwLjA1NSwgMC4wNDM3NSwgMC4wMzEyNSwgMC4wMjUsIDAuMDE4NzUsIDAuMDA4NzUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMDYxMjUsIDAuMDUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMjEyNSwgMC4wMTI1IiwgXAotICAgICAgICAgICIwLjA3Mzc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzM3NSwgMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMDgsIDAuMDc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDUsIDAuMDQsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMDk2MjUsIDAuMDg1LCAwLjA3ODc1LCAwLjA2NjI1LCAwLjA2LCAwLjA1LCAwLjA0NzUiLCBcCi0gICAgICAgICAgIjAuMTA1LCAwLjA5Mzc1LCAwLjA4NzUsIDAuMDc1LCAwLjA2ODc1LCAwLjA2NSwgMC4wNTYyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxODc1LCAwLjAwNzUsIC0wLjAxMTI1LCAtMC4wMjM3NSwgLTAuMDMsIC0wLjA0NjI1LCAtMC4wNjEyNSIsIFwKLSAgICAgICAgICAiMC4wMjM3NSwgMC4wMTI1LCAwLCAtMC4wMTI1LCAtMC4wMjUsIC0wLjA0MTI1LCAtMC4wNSIsIFwKLSAgICAgICAgICAiMC4wMzYyNSwgMC4wMjUsIDAuMDEyNSwgMCwgLTAuMDEyNSwgLTAuMDI4NzUsIC0wLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjA0MjUsIDAuMDMxMjUsIDAuMDE4NzUsIDAuMDA2MjUsIC0wLjAwNjI1LCAtMC4wMjI1LCAtMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4wNDg3NSwgMC4wNDM3NSwgMC4wMjUsIDAuMDEyNSwgMCwgLTAuMDEsIC0wLjAyNSIsIFwKLSAgICAgICAgICAiMC4wNjUsIDAuMDUzNzUsIDAuMDQxMjUsIDAuMDI4NzUsIDAuMDE2MjUsIDAsIC0wLjAxNSIsIFwKLSAgICAgICAgICAiMC4wNzM3NSwgMC4wNjI1LCAwLjA1LCAwLjAzNzUsIDAuMDI1LCAwLjAwODc1LCAtMC4wMDYyNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjI1OTA0ODsKLSAgICBmdW5jdGlvbiA6ICJOMzAiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5vbl91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcmlzaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE3NTE5NiwgMC4yMDA1MzMsIDAuMzM5ODUzLCAwLjQ2Mjk2OSwgMC42MjY1ODMsIDAuOTU0Mjg1LCAxLjE1OTMyIiwgXAotICAgICAgICAgICIwLjE4NTQzNCwgMC4yMTA4NTcsIDAuMzUwMTEsIDAuNDczMjA3LCAwLjYzNzEzLCAwLjk2NTA3MywgMS4xNjk1NyIsIFwKLSAgICAgICAgICAiMC4xOTc5MzMsIDAuMjIzMjkxLCAwLjM2Mjg1MiwgMC40ODU3NDMsIDAuNjQ5MzM1LCAwLjk3NzMxNiwgMS4xODIxIiwgXAotICAgICAgICAgICIwLjIxMDAzNywgMC4yMzUzOCwgMC4zNzQ3MDksIDAuNDk3ODIyLCAwLjY2MTU1MSwgMC45ODk0MTcsIDEuMTk0MTciLCBcCi0gICAgICAgICAgIjAuMjIwNzYyLCAwLjI0NjEwOSwgMC4zODU3MDUsIDAuNTA4NTYyLCAwLjY3MjI0OSwgMC45OTk5MDgsIDEuMjA0OTMiLCBcCi0gICAgICAgICAgIjAuMjM1ODYzLCAwLjI2MTIxMiwgMC40MDA1NTEsIDAuNTIzNjY5LCAwLjY4NzU1MiwgMS4wMTUyNSwgMS4yMjAwMiIsIFwKLSAgICAgICAgICAiMC4yNDcxNTEsIDAuMjcyNTM0LCAwLjQxMTg4OSwgMC41MzQ5NTksIDAuNjk4NTg3LCAxLjAyNjU1LCAxLjIzMTMzIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwMTEyMSwgMC4xNDk1NjcsIDAuNDMxNzkxLCAwLjY4NjE1OCwgMS4wMjMyOSwgMS43MDEyNCwgMi4xMjcyMyIsIFwKLSAgICAgICAgICAiMC4xMDEyNTcsIDAuMTQ5NTYzLCAwLjQzMTgwNCwgMC42ODYxNTIsIDEuMDI1MTUsIDEuNzAwNDMsIDIuMTI3MjIiLCBcCi0gICAgICAgICAgIjAuMTAxMjU3LCAwLjE0OTUzNCwgMC40MzI2MTUsIDAuNjg2MTgsIDEuMDIzMTYsIDEuNzAzMzEsIDIuMTI3MTkiLCBcCi0gICAgICAgICAgIjAuMTAxMTkxLCAwLjE0OTU2NSwgMC40MzE3OTEsIDAuNjg2MTUxLCAxLjAyNDY4LCAxLjcwMzI5LCAyLjEyNzIiLCBcCi0gICAgICAgICAgIjAuMTAxMTM5LCAwLjE0OTU1NiwgMC40MzI2MzQsIDAuNjg2MTY1LCAxLjAyNDY3LCAxLjcwMjkzLCAyLjEyNzIzIiwgXAotICAgICAgICAgICIwLjEwMTEzMSwgMC4xNDk1NjMsIDAuNDMxNywgMC42ODYxNTgsIDEuMDI1MTIsIDEuNzAzMjgsIDIuMTI3MjEiLCBcCi0gICAgICAgICAgIjAuMTAxMTgsIDAuMTQ5NTcxLCAwLjQzMTg2MiwgMC42ODYwNjgsIDEuMDIzNzcsIDEuNzAzMywgMi4xMjcxOSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNjM0MjcsIDAuMTg4MzM3LCAwLjMyOTAzOSwgMC40NTI1NTksIDAuNjE3Mzc2LCAwLjk0NzA4NywgMS4xNTMyMyIsIFwKLSAgICAgICAgICAiMC4xNzM2ODUsIDAuMTk4NjMxLCAwLjMzOTI4NiwgMC40NjI5MTcsIDAuNjI3NTA5LCAwLjk1NzM2MiwgMS4xNjM1IiwgXAotICAgICAgICAgICIwLjE4NjQ5MiwgMC4yMTE0MDIsIDAuMzUyMTAxLCAwLjQ3NTYyNiwgMC42NDA0NDQsIDAuOTcwMTgsIDEuMTc2MyIsIFwKLSAgICAgICAgICAiMC4xOTg1NTksIDAuMjIzNDQ3LCAwLjM2Mzk2MiwgMC40ODc3MTIsIDAuNjUyNTMyLCAwLjk4MjI3MywgMS4xODgyOCIsIFwKLSAgICAgICAgICAiMC4yMDk1NjgsIDAuMjM0NTA3LCAwLjM3NTE1MywgMC40OTg3MDYsIDAuNjYzNTkzLCAwLjk5MzIzOCwgMS4xOTkzNyIsIFwKLSAgICAgICAgICAiMC4yMjQ4NDUsIDAuMjQ5NzI1LCAwLjM5MDQ1NiwgMC41MTM5OTYsIDAuNjc4Nzk4LCAxLjAwODU3LCAxLjIxNDY1IiwgXAotICAgICAgICAgICIwLjIzNjU1MSwgMC4yNjE0MjMsIDAuNDAyMTU1LCAwLjUyNTY5OCwgMC42OTAzNzIsIDEuMDIwMjMsIDEuMjI2MzYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDkzMjA5LCAwLjE0MjI0NCwgMC40MjE5NzUsIDAuNjcyMDM4LCAxLjAwNDQxLCAxLjY2OTE3LCAyLjA4NTAxIiwgXAotICAgICAgICAgICIwLjA5Mzc3OSwgMC4xNDE4OTIsIDAuNDIxNjMsIDAuNjY5OTg4LCAxLjAwMjA4LCAxLjY2OTMxLCAyLjA4NTEiLCBcCi0gICAgICAgICAgIjAuMDkzMjYxLCAwLjE0MjI0NCwgMC40MjE5ODEsIDAuNjcyMDM5LCAxLjAwNDQxLCAxLjY2OTMsIDIuMDg1MDEiLCBcCi0gICAgICAgICAgIjAuMDkzMDQyLCAwLjE0MTk0NiwgMC40MjI1ODUsIDAuNjcyMDc0LCAxLjAwNDM5LCAxLjY2OTI5LCAyLjA4MjI0IiwgXAotICAgICAgICAgICIwLjA5Mzc4MiwgMC4xNDE5MDMsIDAuNDIxOTc3LCAwLjY3MjA4NSwgMS4wMDQ3LCAxLjY2OTMxLCAyLjA4NTEiLCBcCi0gICAgICAgICAgIjAuMDkyOTU3LCAwLjE0MTk1NSwgMC40MjE0MTEsIDAuNjcyMDg4LCAxLjAwNDQ0LCAxLjY2OTQ5LCAyLjA4NTA3IiwgXAotICAgICAgICAgICIwLjA5Mjk2NiwgMC4xNDIwNDIsIDAuNDIxNDMxLCAwLjY3MjA4OSwgMS4wMDIwNywgMS42NjkyNiwgMi4wODUxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiBjbGVhcjsKLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg2NjA0LCAwLjExMTUwMywgMC4yNTE5NjIsIDAuMzc1NTMxLCAwLjU0MDM3OCwgMC44NzAxMjQsIDEuMDc2MzIiLCBcCi0gICAgICAgICAgIjAuMDk2NDgsIDAuMTIxMzcyLCAwLjI2MTc4MSwgMC4zODU0MDgsIDAuNTUwMjksIDAuODgwMDE3LCAxLjA4NjA3IiwgXAotICAgICAgICAgICIwLjEwODkwMiwgMC4xMzM4MDYsIDAuMjc0MjE5LCAwLjM5Nzg2MSwgMC41NjI2MTcsIDAuODkyNDY3LCAxLjA5ODUzIiwgXAotICAgICAgICAgICIwLjEyMDc1NiwgMC4xNDU2NTksIDAuMjg2MDM1LCAwLjQwOTc1NywgMC41NzQ1OTksIDAuOTA0MjY3LCAxLjExMDUiLCBcCi0gICAgICAgICAgIjAuMTMxNzY1LCAwLjE1NjY0MywgMC4yOTcxNDksIDAuNDIwNzEyLCAwLjU4NTQ3NSwgMC45MTUzMjgsIDEuMTIxMzgiLCBcCi0gICAgICAgICAgIjAuMTQ2NjMzLCAwLjE3MTU4OSwgMC4zMTE4ODksIDAuNDM1NDY2LCAwLjYwMDQxNywgMC45MzAxOTEsIDEuMTM2MzgiLCBcCi0gICAgICAgICAgIjAuMTU4MDkyLCAwLjE4MzA5NiwgMC4zMjMzODQsIDAuNDQ2OTYxLCAwLjYxMTg4OCwgMC45NDE4MTEsIDEuMTQ3ODEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDkzNzcyLCAwLjE0MjI2MywgMC40MjIzMzgsIDAuNjcxNDc3LCAxLjAwMjYyLCAxLjY2ODU0LCAyLjA4NDU1IiwgXAotICAgICAgICAgICIwLjA5Mzc3OSwgMC4xNDIyNjYsIDAuNDIyMzM3LCAwLjY3MTM5NSwgMS4wMDM3OCwgMS42Njg1MSwgMi4wODQwMyIsIFwKLSAgICAgICAgICAiMC4wOTM3OTYsIDAuMTQxNzMsIDAuNDIyMzI4LCAwLjY3MTQwNSwgMS4wMDM4NCwgMS42Njg1MiwgMi4wODQyOSIsIFwKLSAgICAgICAgICAiMC4wOTM5NDgsIDAuMTQyMzEyLCAwLjQyMjMyNCwgMC42NzE1MTgsIDEuMDAzNjksIDEuNjY4NDQsIDIuMDg0NDgiLCBcCi0gICAgICAgICAgIjAuMDk0NDI5LCAwLjE0MjMwNywgMC40MjIzMTIsIDAuNjcxMzg5LCAxLjAwMzc1LCAxLjY2ODM3LCAyLjA4NDA5IiwgXAotICAgICAgICAgICIwLjA5NTQ3LCAwLjE0MjY3MiwgMC40MjIzMywgMC42NzEyODYsIDEuMDAyODUsIDEuNjY4MTIsIDIuMDg0MzUiLCBcCi0gICAgICAgICAgIjAuMDk2MzY0LCAwLjE0MzU5LCAwLjQyMjM3NiwgMC42NzEzNjksIDEuMDAyNTUsIDEuNjY4NjcsIDIuMDgzNzQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0MzEsIDAuMDA0MzEyLCAwLjAwNDI5NywgMC4wMDQyODksIDAuMDA0Mjg0LCAwLjAwNDI3OSwgMC4wMDQyNzYiLCBcCi0gICAgICAgICAgIjAuMDA0Mjk0LCAwLjAwNDI5NiwgMC4wMDQyODEsIDAuMDA0Mjc0LCAwLjAwNDI2OCwgMC4wMDQyNjMsIDAuMDA0MjYxIiwgXAotICAgICAgICAgICIwLjAwNDI4NiwgMC4wMDQyODgsIDAuMDA0Mjc0LCAwLjAwNDI2NiwgMC4wMDQyNiwgMC4wMDQyNTUsIDAuMDA0MjUzIiwgXAotICAgICAgICAgICIwLjAwNDI4NSwgMC4wMDQyODcsIDAuMDA0MjczLCAwLjAwNDI2NSwgMC4wMDQyNTksIDAuMDA0MjU0LCAwLjAwNDI1MiIsIFwKLSAgICAgICAgICAiMC4wMDQyOTUsIDAuMDA0Mjk3LCAwLjAwNDI4NCwgMC4wMDQyNzYsIDAuMDA0MjcsIDAuMDA0MjY1LCAwLjAwNDI2MyIsIFwKLSAgICAgICAgICAiMC4wMDQzMDQsIDAuMDA0MzA3LCAwLjAwNDI5NSwgMC4wMDQyODcsIDAuMDA0MjgxLCAwLjAwNDI3NCwgMC4wMDQyNzMiLCBcCi0gICAgICAgICAgIjAuMDA0MzE2LCAwLjAwNDMxOSwgMC4wMDQzMDcsIDAuMDA0Mjk5LCAwLjAwNDI5MywgMC4wMDQyODcsIDAuMDA0Mjg1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0Mzc1LCAwLjAwNDM4MiwgMC4wMDQzOTMsIDAuMDA0Mzk2LCAwLjAwNDM5NywgMC4wMDQzOTcsIDAuMDA0Mzk4IiwgXAotICAgICAgICAgICIwLjAwNDM2LCAwLjAwNDM2NywgMC4wMDQzNzgsIDAuMDA0MzgsIDAuMDA0MzgyLCAwLjAwNDM4MywgMC4wMDQzODMiLCBcCi0gICAgICAgICAgIjAuMDA0MzU3LCAwLjAwNDM2NSwgMC4wMDQzNzUsIDAuMDA0Mzc4LCAwLjAwNDM3OSwgMC4wMDQzODEsIDAuMDA0MzgiLCBcCi0gICAgICAgICAgIjAuMDA0MzY0LCAwLjAwNDM3MiwgMC4wMDQzODIsIDAuMDA0Mzg1LCAwLjAwNDM4NiwgMC4wMDQzODgsIDAuMDA0Mzg4IiwgXAotICAgICAgICAgICIwLjAwNDM4LCAwLjAwNDM4OCwgMC4wMDQzOTgsIDAuMDA0NDAxLCAwLjAwNDQwMiwgMC4wMDQ0MDMsIDAuMDA0NDAzIiwgXAotICAgICAgICAgICIwLjAwNDM5NCwgMC4wMDQ0MDIsIDAuMDA0NDEyLCAwLjAwNDQxNCwgMC4wMDQ0MTYsIDAuMDA0NDE3LCAwLjAwNDQxNyIsIFwKLSAgICAgICAgICAiMC4wMDQ0MTgsIDAuMDA0NDI1LCAwLjAwNDQzNSwgMC4wMDQ0MzcsIDAuMDA0NDM5LCAwLjAwNDQ0LCAwLjAwNDQ0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUk4iOwotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDUzNywgMC4wMDQ1NDMsIDAuMDA0NTUzLCAwLjAwNDU1NCwgMC4wMDQ1NTUsIDAuMDA0NTU2LCAwLjAwNDU1NiIsIFwKLSAgICAgICAgICAiMC4wMDQ1MjEsIDAuMDA0NTI4LCAwLjAwNDUzOCwgMC4wMDQ1NCwgMC4wMDQ1NDEsIDAuMDA0NTQyLCAwLjAwNDU0MiIsIFwKLSAgICAgICAgICAiMC4wMDQ1MDcsIDAuMDA0NTE2LCAwLjAwNDUyOCwgMC4wMDQ1MywgMC4wMDQ1MzIsIDAuMDA0NTMzLCAwLjAwNDUzMyIsIFwKLSAgICAgICAgICAiMC4wMDQ0OTgsIDAuMDA0NTA3LCAwLjAwNDUyMSwgMC4wMDQ1MjQsIDAuMDA0NTI2LCAwLjAwNDUyNywgMC4wMDQ1MjgiLCBcCi0gICAgICAgICAgIjAuMDA0NDk0LCAwLjAwNDUwNCwgMC4wMDQ1MTksIDAuMDA0NTIzLCAwLjAwNDUyNSwgMC4wMDQ1MjYsIDAuMDA0NTI3IiwgXAotICAgICAgICAgICIwLjAwNDQ4OCwgMC4wMDQ0OTgsIDAuMDA0NTE3LCAwLjAwNDUyMSwgMC4wMDQ1MjQsIDAuMDA0NTI1LCAwLjAwNDUyNiIsIFwKLSAgICAgICAgICAiMC4wMDQ0OTQsIDAuMDA0NTAzLCAwLjAwNDUyMSwgMC4wMDQ1MjUsIDAuMDA0NTI4LCAwLjAwNDUzLCAwLjAwNDUzMSIpOwotICAgICAgfQotICAgICAgcmlzZV9wb3dlcihzY2FsYXIpIHsKLSAgICAgICAgdmFsdWVzKCIwIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihRTikgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjI2MTIwMTsKLSAgICBmdW5jdGlvbiA6ICJRQklOVCI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3NlbnNlIDogbm9uX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiByaXNpbmdfZWRnZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTc1ODk1LCAwLjIwMDQxMywgMC4zMzk0OTksIDAuNDYyMDk1LCAwLjYyNTYwNywgMC45NTI2NzksIDEuMTU3MTgiLCBcCi0gICAgICAgICAgIjAuMTg2MTQzLCAwLjIxMDY1LCAwLjM0OTc0LCAwLjQ3MjQwMSwgMC42MzU5MDcsIDAuOTYyOTQ1LCAxLjE2NzQ1IiwgXAotICAgICAgICAgICIwLjE5ODk2MSwgMC4yMjM0NzgsIDAuMzYyNTYyLCAwLjQ4NTE2MiwgMC42NDg2NzMsIDAuOTc1NzY3LCAxLjE4MDI0IiwgXAotICAgICAgICAgICIwLjIxMTAxNCwgMC4yMzU1MTUsIDAuMzc0NTMsIDAuNDk3MjI0LCAwLjY2MDczOSwgMC45ODc4NDQsIDEuMTkyMjUiLCBcCi0gICAgICAgICAgIjAuMjIyMDI1LCAwLjI0NjUzMywgMC4zODU2MTgsIDAuNTA4MjMyLCAwLjY3MTc5NCwgMC45OTg4MjgsIDEuMjAzMzMiLCBcCi0gICAgICAgICAgIjAuMjM3MjkxLCAwLjI2MTc5NCwgMC40MDA5MDYsIDAuNTIzNTE0LCAwLjY4NzAyOSwgMS4wMTQxNiwgMS4yMTg2IiwgXAotICAgICAgICAgICIwLjI0OTAxMiwgMC4yNzM1MDksIDAuNDEyNjEzLCAwLjUzNTIyMywgMC42OTg3NzgsIDEuMDI1ODIsIDEuMjMwMzIiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDkxMTE2LCAwLjE0MTQ4NiwgMC40MjczMDYsIDAuNjgxMDY3LCAxLjAxODE5LCAxLjY5MjUxLCAyLjExNDI0IiwgXAotICAgICAgICAgICIwLjA5MTE5LCAwLjE0MTQ1NSwgMC40MjcyMzYsIDAuNjc5NTM5LCAxLjAxNjIzLCAxLjY5MjY0LCAyLjExNDI3IiwgXAotICAgICAgICAgICIwLjA5MTExMywgMC4xNDE0ODYsIDAuNDI3MzA4LCAwLjY4MTA2OCwgMS4wMTgxOSwgMS42OTI1OSwgMi4xMTQyMyIsIFwKLSAgICAgICAgICAiMC4wOTA5NzUsIDAuMTQxMDkxLCAwLjQyODA3MiwgMC42ODEwOTgsIDEuMDE4MTUsIDEuNjkyNjEsIDIuMTExNDEiLCBcCi0gICAgICAgICAgIjAuMDkxMTg5LCAwLjE0MTQ1NCwgMC40MjczMDcsIDAuNjgxMTA3LCAxLjAxODM0LCAxLjY5MjY0LCAyLjExNDI3IiwgXAotICAgICAgICAgICIwLjA5MTEyOSwgMC4xNDEwOTEsIDAuNDI3MjIzLCAwLjY4MTExLCAxLjAxODIyLCAxLjY5MjcsIDIuMTE0MjgiLCBcCi0gICAgICAgICAgIjAuMDkwOTg5LCAwLjE0MTA4MywgMC40MjcyMjMsIDAuNjgxMTEyLCAxLjAxNjIyLCAxLjY5MjYyLCAyLjExNDI2Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE4NTc4NiwgMC4yMTA1MDEsIDAuMzUwNjA3LCAwLjQ3NDI2NCwgMC42MzkyMDIsIDAuOTY4ODYyLCAxLjE3NDkyIiwgXAotICAgICAgICAgICIwLjE5NTk5MiwgMC4yMjA3MiwgMC4zNjA4MTYsIDAuNDg0NDcyLCAwLjY0OTM3NywgMC45NzkyMiwgMS4xODUxMyIsIFwKLSAgICAgICAgICAiMC4yMDg1MjksIDAuMjMzMjM3LCAwLjM3MzM0MiwgMC40OTcwMDMsIDAuNjYxOTE5LCAwLjk5MTYxMSwgMS4xOTc2NiIsIFwKLSAgICAgICAgICAiMC4yMjA2MjgsIDAuMjQ1MzQxLCAwLjM4NTQ0OCwgMC41MDkxMDUsIDAuNjczOTgzLCAxLjAwMzcyLCAxLjIwOTc2IiwgXAotICAgICAgICAgICIwLjIzMTM0NSwgMC4yNTYwNTcsIDAuMzk2MTY4LCAwLjUxOTgyLCAwLjY4NDY5MywgMS4wMTQzOSwgMS4yMjA0OCIsIFwKLSAgICAgICAgICAiMC4yNDY0NDcsIDAuMjcxMTU4LCAwLjQxMTI2LCAwLjUzNDkxOCwgMC42OTk4MDgsIDEuMDI5NTMsIDEuMjM1NTgiLCBcCi0gICAgICAgICAgIjAuMjU3NzQ0LCAwLjI4MjQ2NCwgMC40MjI1NjIsIDAuNTQ2MjE1LCAwLjcxMTEwMywgMS4wNDA4MywgMS4yNDY4OCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTAwMTcsIDAuMTM5MzkzLCAwLjQyMDkzNCwgMC42NzA4MjgsIDEuMDAxNTEsIDEuNjY1NzEsIDIuMDgyODIiLCBcCi0gICAgICAgICAgIjAuMDg5OTk3LCAwLjEzOTM3MywgMC40MjA5NDQsIDAuNjcwODEyLCAxLjAwMzIyLCAxLjY2NDIzLCAyLjA4MjgiLCBcCi0gICAgICAgICAgIjAuMDkwMDY2LCAwLjEzOTM3OCwgMC40MjE1OCwgMC42NzA4NDEsIDEuMDAxNTIsIDEuNjY3NTksIDIuMDgyNzgiLCBcCi0gICAgICAgICAgIjAuMDkwMDA0LCAwLjEzOTM3OSwgMC40MjA5MzQsIDAuNjcwODExLCAxLjAwMjY1LCAxLjY2NzU5LCAyLjA4Mjc1IiwgXAotICAgICAgICAgICIwLjA5MDAwOCwgMC4xMzkzNzcsIDAuNDIxNjAzLCAwLjY3MDgyNSwgMS4wMDI1NiwgMS42NjY3NCwgMi4wODI4MiIsIFwKLSAgICAgICAgICAiMC4wOTAwMTEsIDAuMTM5Mzc3LCAwLjQyMDg1NSwgMC42NzA4MjEsIDEuMDAzMTcsIDEuNjY3NTgsIDIuMDgyODIiLCBcCi0gICAgICAgICAgIjAuMDg5OTk4LCAwLjEzOTM1NywgMC40MjA5NzYsIDAuNjcwNzEzLCAxLjAwMTkzLCAxLjY2NzYsIDIuMDgyNzkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUk4iOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHByZXNldDsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk4ODI4LCAwLjEyMzMzMSwgMC4yNjIzMzMsIDAuMzg0OTY1LCAwLjU0ODUwOCwgMC44NzU1ODcsIDEuMDgwMTUiLCBcCi0gICAgICAgICAgIjAuMTA4Njk4LCAwLjEzMzIwMiwgMC4yNzIxOTcsIDAuMzk0ODM1LCAwLjU1ODM3NiwgMC44ODU0NjIsIDEuMDg5ODciLCBcCi0gICAgICAgICAgIjAuMTIxMTQxLCAwLjE0NTY0NCwgMC4yODQ2MzgsIDAuNDA3Mjc4LCAwLjU3MDgyNSwgMC44OTc4OTgsIDEuMTAyMzEiLCBcCi0gICAgICAgICAgIjAuMTMyOTMxLCAwLjE1NzQ1NSwgMC4yOTY0MzksIDAuNDE5MTA2LCAwLjU4MjYzNywgMC45MDk3MDEsIDEuMTE0MTgiLCBcCi0gICAgICAgICAgIjAuMTQzNjA5LCAwLjE2ODEwNiwgMC4zMDcxMjMsIDAuNDI5NzM2LCAwLjU5MzI4MywgMC45MjAzNiwgMS4xMjQ3NyIsIFwKLSAgICAgICAgICAiMC4xNTc4OTMsIDAuMTgyMzg2LCAwLjMyMTM0OCwgMC40NDM5OTUsIDAuNjA3NTM1LCAwLjkzNDYyMSwgMS4xMzkwOCIsIFwKLSAgICAgICAgICAiMC4xNjg4NDgsIDAuMTkzMzM3LCAwLjMzMjI2NiwgMC40NTQ5NDIsIDAuNjE4NDU1LCAwLjk0NTY1LCAxLjE1MDAyIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5MTAwOSwgMC4xNDEyMDIsIDAuNDI3ODUzLCAwLjY4MDcyNSwgMS4wMTY4MiwgMS42OTIzLCAyLjExNDE4IiwgXAotICAgICAgICAgICIwLjA5MTAwOSwgMC4xNDExOTYsIDAuNDI3ODUxLCAwLjY4MDY2OSwgMS4wMTc4OCwgMS42OTIyOCwgMi4xMTM4IiwgXAotICAgICAgICAgICIwLjA5MTAxMSwgMC4xNDEyMzEsIDAuNDI3ODUxLCAwLjY4MDY4LCAxLjAxNzkxLCAxLjY5MjMsIDIuMTEzOTgiLCBcCi0gICAgICAgICAgIjAuMDkxMDMsIDAuMTQxMjAyLCAwLjQyNzg1LCAwLjY4MDc1NCwgMS4wMTc4MSwgMS42OTIyNCwgMi4xMTQxMiIsIFwKLSAgICAgICAgICAiMC4wOTEwNzgsIDAuMTQxMjM5LCAwLjQyNzg0NSwgMC42ODA2NzgsIDEuMDE3ODMsIDEuNjkyMjIsIDIuMTEzODciLCBcCi0gICAgICAgICAgIjAuMDkxMTE4LCAwLjE0MTI4NywgMC40Mjc4LCAwLjY4MDYwNSwgMS4wMTc2NSwgMS42OTIwMSwgMi4xMTQwNyIsIFwKLSAgICAgICAgICAiMC4wOTExOTMsIDAuMTQxMjU3LCAwLjQyNzc5MywgMC42ODA2NjcsIDEuMDE2ODIsIDEuNjkyMzYsIDIuMTEzNTkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0Mzc1LCAwLjAwNDM4MiwgMC4wMDQzOTMsIDAuMDA0Mzk2LCAwLjAwNDM5NywgMC4wMDQzOTcsIDAuMDA0Mzk4IiwgXAotICAgICAgICAgICIwLjAwNDM2LCAwLjAwNDM2NywgMC4wMDQzNzgsIDAuMDA0MzgsIDAuMDA0MzgyLCAwLjAwNDM4MywgMC4wMDQzODMiLCBcCi0gICAgICAgICAgIjAuMDA0MzU3LCAwLjAwNDM2NSwgMC4wMDQzNzUsIDAuMDA0Mzc4LCAwLjAwNDM3OSwgMC4wMDQzODEsIDAuMDA0MzgiLCBcCi0gICAgICAgICAgIjAuMDA0MzY0LCAwLjAwNDM3MiwgMC4wMDQzODIsIDAuMDA0Mzg1LCAwLjAwNDM4NiwgMC4wMDQzODgsIDAuMDA0Mzg4IiwgXAotICAgICAgICAgICIwLjAwNDM4LCAwLjAwNDM4OCwgMC4wMDQzOTgsIDAuMDA0NDAxLCAwLjAwNDQwMiwgMC4wMDQ0MDMsIDAuMDA0NDAzIiwgXAotICAgICAgICAgICIwLjAwNDM5NCwgMC4wMDQ0MDIsIDAuMDA0NDEyLCAwLjAwNDQxNCwgMC4wMDQ0MTYsIDAuMDA0NDE3LCAwLjAwNDQxNyIsIFwKLSAgICAgICAgICAiMC4wMDQ0MTgsIDAuMDA0NDI1LCAwLjAwNDQzNSwgMC4wMDQ0MzcsIDAuMDA0NDM5LCAwLjAwNDQ0LCAwLjAwNDQ0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0MzEsIDAuMDA0MzEyLCAwLjAwNDI5NywgMC4wMDQyODksIDAuMDA0Mjg0LCAwLjAwNDI3OSwgMC4wMDQyNzYiLCBcCi0gICAgICAgICAgIjAuMDA0Mjk0LCAwLjAwNDI5NiwgMC4wMDQyODEsIDAuMDA0Mjc0LCAwLjAwNDI2OCwgMC4wMDQyNjMsIDAuMDA0MjYxIiwgXAotICAgICAgICAgICIwLjAwNDI4NiwgMC4wMDQyODgsIDAuMDA0Mjc0LCAwLjAwNDI2NiwgMC4wMDQyNiwgMC4wMDQyNTUsIDAuMDA0MjUzIiwgXAotICAgICAgICAgICIwLjAwNDI4NSwgMC4wMDQyODcsIDAuMDA0MjczLCAwLjAwNDI2NSwgMC4wMDQyNTksIDAuMDA0MjU0LCAwLjAwNDI1MiIsIFwKLSAgICAgICAgICAiMC4wMDQyOTUsIDAuMDA0Mjk3LCAwLjAwNDI4NCwgMC4wMDQyNzYsIDAuMDA0MjcsIDAuMDA0MjY1LCAwLjAwNDI2MyIsIFwKLSAgICAgICAgICAiMC4wMDQzMDQsIDAuMDA0MzA3LCAwLjAwNDI5NSwgMC4wMDQyODcsIDAuMDA0MjgxLCAwLjAwNDI3NCwgMC4wMDQyNzMiLCBcCi0gICAgICAgICAgIjAuMDA0MzE2LCAwLjAwNDMxOSwgMC4wMDQzMDcsIDAuMDA0Mjk5LCAwLjAwNDI5MywgMC4wMDQyODcsIDAuMDA0Mjg1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUk4iOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDUzNywgMC4wMDQ1NDMsIDAuMDA0NTUzLCAwLjAwNDU1NCwgMC4wMDQ1NTUsIDAuMDA0NTU2LCAwLjAwNDU1NiIsIFwKLSAgICAgICAgICAiMC4wMDQ1MjEsIDAuMDA0NTI4LCAwLjAwNDUzOCwgMC4wMDQ1NCwgMC4wMDQ1NDEsIDAuMDA0NTQyLCAwLjAwNDU0MiIsIFwKLSAgICAgICAgICAiMC4wMDQ1MDcsIDAuMDA0NTE2LCAwLjAwNDUyOCwgMC4wMDQ1MywgMC4wMDQ1MzIsIDAuMDA0NTMzLCAwLjAwNDUzMyIsIFwKLSAgICAgICAgICAiMC4wMDQ0OTgsIDAuMDA0NTA3LCAwLjAwNDUyMSwgMC4wMDQ1MjQsIDAuMDA0NTI2LCAwLjAwNDUyNywgMC4wMDQ1MjgiLCBcCi0gICAgICAgICAgIjAuMDA0NDk0LCAwLjAwNDUwNCwgMC4wMDQ1MTksIDAuMDA0NTIzLCAwLjAwNDUyNSwgMC4wMDQ1MjYsIDAuMDA0NTI3IiwgXAotICAgICAgICAgICIwLjAwNDQ4OCwgMC4wMDQ0OTgsIDAuMDA0NTE3LCAwLjAwNDUyMSwgMC4wMDQ1MjQsIDAuMDA0NTI1LCAwLjAwNDUyNiIsIFwKLSAgICAgICAgICAiMC4wMDQ0OTQsIDAuMDA0NTAzLCAwLjAwNDUyMSwgMC4wMDQ1MjUsIDAuMDA0NTI4LCAwLjAwNDUzLCAwLjAwNDUzMSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihzY2FsYXIpIHsKLSAgICAgICAgdmFsdWVzKCIwIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihSTikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNTQ2NDk7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNDYzOTk7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNTQ2NDk7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNDUzLCAwLjAwMDQ1MywgMC4wMDA0NTIsIDAuMDAwNDUyLCAwLjAwMDQ1MiwgMC4wMDA0NTIsIDAuMDAwNDUyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNDYsIDAuMDAwNDU1LCAwLjAwMDQ1NCwgMC4wMDA0NTQsIDAuMDAwNDU0LCAwLjAwMDQ1NCwgMC4wMDA0NTQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUk4iOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFEIjsKLSAgICAgIHNkZl9jb25kIDogIkQgPT0gMSdiMCI7Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wOTg4MjgsIDAuMTA4NjExLCAwLjEyMTE0MSwgMC4xMzI5MzEsIDAuMTQzMzUyLCAwLjE1Nzg5MywgMC4xNjg4NDgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiByZWNvdmVyeV9yaXNpbmc7Ci0gICAgICB3aGVuIDogIkQiOwotICAgICAgc2RmX2NvbmQgOiAiRCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChyZWNvdmVyeV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDM3NSwgLTAuMDQ4NzUsIC0wLjA2MTI1LCAtMC4wNzM3NSwgLTAuMDgsIC0wLjA5NjI1LCAtMC4xMTEyNSIsIFwKLSAgICAgICAgICAiLTAuMDM4NzUsIC0wLjA1LCAtMC4wNjI1LCAtMC4wNzUsIC0wLjA4NzUsIC0wLjEwMzc1LCAtMC4xMTI1IiwgXAotICAgICAgICAgICItMC4wMzg3NSwgLTAuMDUsIC0wLjA2MjUsIC0wLjA3NSwgLTAuMDg3NSwgLTAuMTAzNzUsIC0wLjExMjUiLCBcCi0gICAgICAgICAgIi0wLjAzMjUsIC0wLjA0Mzc1LCAtMC4wNTYyNSwgLTAuMDY4NzUsIC0wLjA4MTI1LCAtMC4wOTc1LCAtMC4xMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDEzNzUsIC0wLjAyNSwgLTAuMDQzNzUsIC0wLjA1NjI1LCAtMC4wNjg3NSwgLTAuMDg1LCAtMC4wOTM3NSIsIFwKLSAgICAgICAgICAiMC4wMDg3NSwgLTAuMDAyNSwgLTAuMDE1LCAtMC4wMjc1LCAtMC4wNCwgLTAuMDU2MjUsIC0wLjA3MTI1IiwgXAotICAgICAgICAgICIwLjAzNjI1LCAwLjAyNSwgMC4wMDYyNSwgLTAuMDA2MjUsIC0wLjAxODc1LCAtMC4wMzUsIC0wLjA1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogcmVtb3ZhbF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIkQiOwotICAgICAgc2RmX2NvbmQgOiAiRCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChyZW1vdmFsX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1NjI1LCAwLjA2NzUsIDAuMDgsIDAuMDkyNSwgMC4xMDUsIDAuMTE1LCAwLjEzIiwgXAotICAgICAgICAgICIwLjA2Mzc1LCAwLjA3NSwgMC4wODc1LCAwLjA5Mzc1LCAwLjEwNjI1LCAwLjEyMjUsIDAuMTMxMjUiLCBcCi0gICAgICAgICAgIjAuMDcsIDAuMDgxMjUsIDAuMDkzNzUsIDAuMTA2MjUsIDAuMTEyNSwgMC4xMjg3NSwgMC4xMzc1IiwgXAotICAgICAgICAgICIwLjA3NjI1LCAwLjA4NzUsIDAuMSwgMC4xMTI1LCAwLjExODc1LCAwLjEzNSwgMC4xNDM3NSIsIFwKLSAgICAgICAgICAiMC4wODI1LCAwLjA5Mzc1LCAwLjEwNjI1LCAwLjExMjUsIDAuMTI1LCAwLjE0MTI1LCAwLjE1IiwgXAotICAgICAgICAgICIwLjA5MTI1LCAwLjA5NjI1LCAwLjEwODc1LCAwLjEyMTI1LCAwLjEzMzc1LCAwLjE1LCAwLjE1ODc1IiwgXAotICAgICAgICAgICIwLjA5NSwgMC4xMDYyNSwgMC4xMTg3NSwgMC4xMzEyNSwgMC4xMzc1LCAwLjE1Mzc1LCAwLjE2MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IERGRlJYNCAqCi0gKiAtLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKERGRlJYNCkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjY5NDM3NDsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBmZiAoTjMwLFFCSU5UKSB7Ci0gICAgbmV4dF9zdGF0ZSA6ICJEIjsKLSAgICBjbG9ja2VkX29uIDogIkNLIjsKLSAgICBjbGVhciA6ICIoIVJOKSI7Ci0gIH0KLSAgcGluKENLKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA1NjQ4OTY7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNTY0NzkzOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDU2NDg5NjsKLSAgICBjbG9jayA6IHRydWU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyNzg2LCAwLjAwMjc2LCAwLjAwMjc0NywgMC4wMDI3NDcsIDAuMDAyNzU4LCAwLjAwMjc4MSwgMC4wMDI4MDIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDY0ODEsIDAuMDA2NDYsIDAuMDA2NDQ4LCAwLjAwNjQ1NCwgMC4wMDY0NTksIDAuMDA2NDc4LCAwLjAwNjUwMyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQmUk4iOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1JOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4xNTYwMjMsIDAuMTY2MTksIDAuMTc4OTc2LCAwLjE5MDg4OCwgMC4yMDE0MSwgMC4yMTU4NTIsIDAuMjI3MTYzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wOTk5OTYsIDAuMTA5NjkzLCAwLjEyMjA1LCAwLjEzMzQ2NCwgMC4xNDMwMDQsIDAuMTU2MTI4LCAwLjE2NjExMiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjg4MzY3OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDY4NjgyMTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2ODgzNjc7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyMjU1LCAwLjAwMjIzMywgMC4wMDIyMiwgMC4wMDIyMTUsIDAuMDAyMjIsIDAuMDAyMjE4LCAwLjAwMjIyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjcyNiwgMC4wMDI3MTIsIDAuMDAyNzA0LCAwLjAwMjcsIDAuMDAyNzAxLCAwLjAwMjcwNCwgMC4wMDI3MDYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiUk4iOwotICAgICAgc2RmX2NvbmQgOiAiUk4gPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDE4NzUsIC0wLjAwNzUsIC0wLjAwMTI1LCAwLjAwNSwgMC4wMTEyNSwgMC4wMTUsIDAuMDIzNzUiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTg3NSwgLTAuMDA2MjUsIC0wLjAwNjI1LCAwLCAwLjAxLCAwLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgLTAuMDAyNSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAwODc1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDE1LCAtMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wNjUsIC0wLjA1Mzc1LCAtMC4wNDc1LCAtMC4wNDEyNSwgLTAuMDM1LCAtMC4wMjUsIC0wLjAyMjUiLCBcCi0gICAgICAgICAgIi0wLjA3Mzc1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wMzM3NSwgLTAuMDMxMjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyNSwgMC4wMzYyNSwgMC4wNDg3NSwgMC4wNjEyNSwgMC4wNjc1LCAwLjA4Mzc1LCAwLjA5MjUiLCBcCi0gICAgICAgICAgIjAuMDEzNzUsIDAuMDI1LCAwLjAzNzUsIDAuMDUsIDAuMDU2MjUsIDAuMDcyNSwgMC4wODEyNSIsIFwKLSAgICAgICAgICAiMC4wMDc1LCAwLjAxODc1LCAwLjAzMTI1LCAwLjA0Mzc1LCAwLjA1LCAwLjA2NjI1LCAwLjA3NSIsIFwKLSAgICAgICAgICAiMC4wMDc1LCAwLjAxMjUsIDAuMDI1LCAwLjAzNzUsIDAuMDUsIDAuMDYsIDAuMDY4NzUiLCBcCi0gICAgICAgICAgIjAuMDAxMjUsIDAuMDEyNSwgMC4wMjUsIDAuMDMxMjUsIDAuMDQzNzUsIDAuMDUzNzUsIDAuMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDAyNSwgMC4wMDI1LCAwLjAxNSwgMC4wMjc1LCAwLjAzMzc1LCAwLjA1LCAwLjA1ODc1IiwgXAotICAgICAgICAgICItMC4wMDUsIDAsIDAuMDEyNSwgMC4wMjUsIDAuMDMxMjUsIDAuMDQ3NSwgMC4wNTYyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiUk4iOwotICAgICAgc2RmX2NvbmQgOiAiUk4gPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQzNzUsIDAuMDMyNSwgMC4wMjYyNSwgMC4wMiwgMC4wMTM3NSwgMC4wMDM3NSwgMC4wMDEyNSIsIFwKLSAgICAgICAgICAiMC4wNTUsIDAuMDQzNzUsIDAuMDMxMjUsIDAuMDI1LCAwLjAxODc1LCAwLjAxNSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiMC4wNjEyNSwgMC4wNTYyNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyMTI1LCAwLjAxODc1IiwgXAotICAgICAgICAgICIwLjA3Mzc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDQzNzUsIDAuMDQzNzUsIDAuMDMzNzUsIDAuMDI1IiwgXAotICAgICAgICAgICIwLjA4NjI1LCAwLjA3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1LCAwLjA0LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIjAuMDk2MjUsIDAuMDg1LCAwLjA3ODc1LCAwLjA2NjI1LCAwLjA2LCAwLjA1NjI1LCAwLjA0NzUiLCBcCi0gICAgICAgICAgIjAuMTA1LCAwLjEsIDAuMDg3NSwgMC4wODEyNSwgMC4wNzUsIDAuMDY1LCAwLjA1NjI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE4NzUsIDAuMDA3NSwgLTAuMDA1LCAtMC4wMTc1LCAtMC4wMywgLTAuMDQsIC0wLjA1NSIsIFwKLSAgICAgICAgICAiMC4wMywgMC4wMTg3NSwgMC4wMDYyNSwgLTAuMDA2MjUsIC0wLjAxODc1LCAtMC4wMzUsIC0wLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjAzNjI1LCAwLjAyNSwgMC4wMTI1LCAwLCAtMC4wMDYyNSwgLTAuMDIyNSwgLTAuMDM3NSIsIFwKLSAgICAgICAgICAiMC4wNDg3NSwgMC4wMzc1LCAwLjAyNSwgMC4wMTI1LCAwLCAtMC4wMTYyNSwgLTAuMDI1IiwgXAotICAgICAgICAgICIwLjA1NSwgMC4wNDM3NSwgMC4wMzEyNSwgMC4wMTg3NSwgMC4wMDYyNSwgLTAuMDEsIC0wLjAxODc1IiwgXAotICAgICAgICAgICIwLjA2NSwgMC4wNTM3NSwgMC4wNDEyNSwgMC4wMjg3NSwgMC4wMTYyNSwgMC4wMDYyNSwgLTAuMDA4NzUiLCBcCi0gICAgICAgICAgIjAuMDczNzUsIDAuMDYyNSwgMC4wNSwgMC4wMzc1LCAwLjAyNSwgMC4wMTUsIDAiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFEpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMS4wMzE5MzsKLSAgICBmdW5jdGlvbiA6ICJOMzAiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5vbl91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcmlzaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTQxOTgxLCAwLjIxOTQyNCwgMC4yOTIzOTYsIDAuMzQ0MDgzLCAwLjQyNzMxNCwgMC40OTk2MDQsIDAuNjAzNDQ4IiwgXAotICAgICAgICAgICIwLjE1MjEzNiwgMC4yMjk1ODMsIDAuMzAyNTY0LCAwLjM1NDE4OSwgMC40MzY3ODMsIDAuNTA5MDQ1LCAwLjYxMzE2MyIsIFwKLSAgICAgICAgICAiMC4xNjQ4NDIsIDAuMjQyMjI4LCAwLjMxNDkwOCwgMC4zNjcxMTEsIDAuNDUwMTcxLCAwLjUyMjQ1NCwgMC42MjUyODIiLCBcCi0gICAgICAgICAgIjAuMTc2NTQ0LCAwLjI1Mzk5OSwgMC4zMjY5NDksIDAuMzc4NTg1LCAwLjQ2MTQ4OSwgMC41MzM3NjksIDAuNjM3NiIsIFwKLSAgICAgICAgICAiMC4xODY2MzQsIDAuMjY0MDgxLCAwLjMzNjk2MSwgMC4zODg2MTQsIDAuNDcyMDAzLCAwLjU0NDE5MSwgMC42NDc2NzkiLCBcCi0gICAgICAgICAgIjAuMjAxMDkyLCAwLjI3ODU2LCAwLjM1MTUxNSwgMC40MDMxNDgsIDAuNDg2MDgyLCAwLjU1OTAxMSwgMC42NjIxNTYiLCBcCi0gICAgICAgICAgIjAuMjEyLCAwLjI4OTQ1MSwgMC4zNjI0NDMsIDAuNDE0MDY0LCAwLjQ5NjkzLCAwLjU2ODc5MSwgMC42NzI4NDEiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzkyOTMsIDAuMTgyNjEsIDAuMzI5MDIyLCAwLjQzNDg0OCwgMC42MDQ0NzcsIDAuNzU1Mzg4LCAwLjk2NjEwMyIsIFwKLSAgICAgICAgICAiMC4wMzk0ODIsIDAuMTgyNjQzLCAwLjMyODM1MiwgMC40MzUxNzMsIDAuNjA0NzUyLCAwLjc1MzUyLCAwLjk2ODg5MiIsIFwKLSAgICAgICAgICAiMC4wMzk0NjUsIDAuMTgyNzM1LCAwLjMyODg1LCAwLjQzNDYyNCwgMC42MDQ0NzcsIDAuNzU1MzgyLCAwLjk2Njc4OCIsIFwKLSAgICAgICAgICAiMC4wMzk0ODcsIDAuMTgyNzIyLCAwLjMyOTAzNSwgMC40MzUxNzIsIDAuNjA1ODQ3LCAwLjc1NDk1NSwgMC45Njg5MDciLCBcCi0gICAgICAgICAgIjAuMDM5MzEyLCAwLjE4MjY0NSwgMC4zMjg1NDUsIDAuNDM0NSwgMC42MDQ0NzcsIDAuNzU1MzUzLCAwLjk2ODg5NiIsIFwKLSAgICAgICAgICAiMC4wMzk0NjUsIDAuMTgyNzI3LCAwLjMyOTAyNSwgMC40MzUxNzUsIDAuNjA1ODYsIDAuNzUzMzg0LCAwLjk2ODkxMSIsIFwKLSAgICAgICAgICAiMC4wMzk1NDIsIDAuMTgyNjYxLCAwLjMyODg5OSwgMC40MzUxNzksIDAuNjA1MDQ5LCAwLjc1MzkwNSwgMC45Njg3MzIiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMzA4NDcsIDAuMjA2NDI4LCAwLjI4MDQyNSwgMC4zMzMyMjcsIDAuNDE2NzQ1LCAwLjQ5MDQ0NSwgMC41OTU3ODYiLCBcCi0gICAgICAgICAgIjAuMTQxMDEyLCAwLjIxNjU5MywgMC4yOTA0ODUsIDAuMzQzMTkzLCAwLjQyNzQwMiwgMC41MDA5NzQsIDAuNjA1Nzk5IiwgXAotICAgICAgICAgICIwLjE1MzgwMSwgMC4yMjkzNzQsIDAuMzAyOTkzLCAwLjM1NTY4MiwgMC40Mzk2ODcsIDAuNTEzNjA2LCAwLjYxODY3NSIsIFwKLSAgICAgICAgICAiMC4xNjU2ODQsIDAuMjQxMjcsIDAuMzE1MTE5LCAwLjM2ODEyOSwgMC40NTIwNjYsIDAuNTI1NDczLCAwLjYzMDYyOCIsIFwKLSAgICAgICAgICAiMC4xNzYyMywgMC4yNTE4NDIsIDAuMzI1NzQ1LCAwLjM3ODE2MSwgMC40NjI2ODYsIDAuNTM2MDM5LCAwLjY0MTE0NyIsIFwKLSAgICAgICAgICAiMC4xOTA2OTEsIDAuMjY2MzE2LCAwLjM0MDQwNSwgMC4zOTMxNDIsIDAuNDc3MDg2LCAwLjU1MDQ2OSwgMC42NTU2MzEiLCBcCi0gICAgICAgICAgIjAuMjAxOTgsIDAuMjc3NTY1LCAwLjM1MTE4NiwgMC40MDQyNDIsIDAuNDg3ODc0LCAwLjU2MTc5OSwgMC42NjY5NDMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzMyNSwgMC4xNzkwMTYsIDAuMzI2OTc2LCAwLjQzMjU3OSwgMC42MDIyMTUsIDAuNzUyMDMxLCAwLjk2NTcwMSIsIFwKLSAgICAgICAgICAiMC4wMzMxNzYsIDAuMTc5MDAyLCAwLjMyNjg5LCAwLjQzMjk0MSwgMC42MDM5MTIsIDAuNzUzMjgsIDAuOTY0OTEzIiwgXAotICAgICAgICAgICIwLjAzMzI5LCAwLjE3OTAxOCwgMC4zMjY1NzksIDAuNDMzMTk3LCAwLjYwMjIyNSwgMC43NTMwNTUsIDAuOTY1ODAyIiwgXAotICAgICAgICAgICIwLjAzMzMxMSwgMC4xNzg5NTksIDAuMzI2NjU4LCAwLjQzMjQzNCwgMC42MDM4OTMsIDAuNzUyODQyLCAwLjk2NTY5NyIsIFwKLSAgICAgICAgICAiMC4wMzMyMDMsIDAuMTc4MzkzLCAwLjMyNjkzMiwgMC40MzE0MDIsIDAuNjAzOTY0LCAwLjc1MjkzNywgMC45NjU0ODIiLCBcCi0gICAgICAgICAgIjAuMDMzMjMzLCAwLjE3NzU1NywgMC4zMjYyODMsIDAuNDMyMzY0LCAwLjYwMzkxMSwgMC43NTI3OTksIDAuOTY1NjYzIiwgXAotICAgICAgICAgICIwLjAzMzIxLCAwLjE3OTAxNCwgMC4zMjY1ODIsIDAuNDMyOTQ4LCAwLjYwMjI0OSwgMC43NTMwNTYsIDAuOTY1ODQ4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiBjbGVhcjsKLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDYzMjUsIDAuMTIyMDA0LCAwLjE5NTY4LCAwLjI0ODQxOCwgMC4zMzI1MjMsIDAuNDA2MTQyLCAwLjUxMTM2NCIsIFwKLSAgICAgICAgICAiMC4wNTYxNzIsIDAuMTMxODY5LCAwLjIwNTQ0MiwgMC4yNTgzMzksIDAuMzQyMzg2LCAwLjQxNjE3OSwgMC41MjEwMSIsIFwKLSAgICAgICAgICAiMC4wNjg0NywgMC4xNDQyMiwgMC4yMTc4NTYsIDAuMjcwNTI1LCAwLjM1NDcyMywgMC40Mjg0ODEsIDAuNTMzNTIzIiwgXAotICAgICAgICAgICIwLjA3OTcyOCwgMC4xNTU1MzEsIDAuMjI5MjQ0LCAwLjI4MjAxNiwgMC4zNjYyMTYsIDAuNDM5OTQ2LCAwLjU0NDcyOSIsIFwKLSAgICAgICAgICAiMC4wODkyNzQsIDAuMTY1MzIxLCAwLjIzODk1OCwgMC4yOTE1OTUsIDAuMzc1ODk5LCAwLjQ0OTUxNiwgMC41NTQ3NSIsIFwKLSAgICAgICAgICAiMC4xMDI0MTYsIDAuMTc4OTI0LCAwLjI1MjUzOSwgMC4zMDUxNzYsIDAuMzg5NDA1LCAwLjQ2MzEwNiwgMC41NjgyMDEiLCBcCi0gICAgICAgICAgIjAuMTEyMzI3LCAwLjE4OTE0OSwgMC4yNjI4MDYsIDAuMzE1NDkzLCAwLjM5OTc5NSwgMC40NzMzMzcsIDAuNTc4NDYxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDMyNTcxLCAwLjE3ODkzMywgMC4zMjY0NywgMC40MzI3NzUsIDAuNjAzNDczLCAwLjc1MjcyOCwgMC45NjU5MTYiLCBcCi0gICAgICAgICAgIjAuMDMyNDksIDAuMTc4NzY0LCAwLjMyNjQ1OSwgMC40MzI5MzEsIDAuNjAyNTE4LCAwLjc1MjI2MiwgMC45NjQ1OTkiLCBcCi0gICAgICAgICAgIjAuMDMyODIyLCAwLjE3ODE4OSwgMC4zMjY0NzUsIDAuNDMyODU0LCAwLjYwMzQ4MiwgMC43NTI1MzgsIDAuOTY1NjYzIiwgXAotICAgICAgICAgICIwLjAzMzcxMSwgMC4xNzkwMzUsIDAuMzI2NTEzLCAwLjQzMjgyOSwgMC42MDM1NTksIDAuNzUyNjMsIDAuOTY0NjY2IiwgXAotICAgICAgICAgICIwLjAzNDg3MywgMC4xNzg3MjQsIDAuMzI2NDE2LCAwLjQzMjgyNCwgMC42MDM1NzEsIDAuNzUyNjIsIDAuOTY1NDg0IiwgXAotICAgICAgICAgICIwLjAzNjYyLCAwLjE3OTU0OSwgMC4zMjY1NjEsIDAuNDMyODg2LCAwLjYwMzQ5OCwgMC43NTI2OTgsIDAuOTY1NjYzIiwgXAotICAgICAgICAgICIwLjAzODE3OSwgMC4xNzk4NzMsIDAuMzI2OTIzLCAwLjQzMjgxNCwgMC42MDM1OTEsIDAuNzUyNzExLCAwLjk2NTcyNCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwODAwMSwgMC4wMDgxNzMsIDAuMDA4MiwgMC4wMDgyMDksIDAuMDA4MjE2LCAwLjAwODIxOSwgMC4wMDgyMjMiLCBcCi0gICAgICAgICAgIjAuMDA3OTg0LCAwLjAwODE1NywgMC4wMDgxODQsIDAuMDA4MTkzLCAwLjAwODIwMSwgMC4wMDgyMDMsIDAuMDA4MjA4IiwgXAotICAgICAgICAgICIwLjAwNzk3NywgMC4wMDgxNDksIDAuMDA4MTc2LCAwLjAwODE4NCwgMC4wMDgxOTIsIDAuMDA4MTk1LCAwLjAwODE5OSIsIFwKLSAgICAgICAgICAiMC4wMDc5NzYsIDAuMDA4MTQ5LCAwLjAwODE3NiwgMC4wMDgxODUsIDAuMDA4MTkyLCAwLjAwODE5NywgMC4wMDgxOTkiLCBcCi0gICAgICAgICAgIjAuMDA3OTg0LCAwLjAwODE1OCwgMC4wMDgxODUsIDAuMDA4MTkzLCAwLjAwODIwMSwgMC4wMDgyMDQsIDAuMDA4MjA4IiwgXAotICAgICAgICAgICIwLjAwNzk5MSwgMC4wMDgxNjUsIDAuMDA4MTkyLCAwLjAwODIwMSwgMC4wMDgyMDgsIDAuMDA4MjEyLCAwLjAwODIxNSIsIFwKLSAgICAgICAgICAiMC4wMDgsIDAuMDA4MTc0LCAwLjAwODIwMSwgMC4wMDgyMSwgMC4wMDgyMTgsIDAuMDA4MjIxLCAwLjAwODIyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA4MDU1LCAwLjAwODIxMywgMC4wMDgyMzQsIDAuMDA4MjQxLCAwLjAwODI0NiwgMC4wMDgyNSwgMC4wMDgyNTEiLCBcCi0gICAgICAgICAgIjAuMDA4MDM3LCAwLjAwODE5OCwgMC4wMDgyMTksIDAuMDA4MjI1LCAwLjAwODIzLCAwLjAwODIzNCwgMC4wMDgyMzgiLCBcCi0gICAgICAgICAgIjAuMDA4MDQsIDAuMDA4MTk4LCAwLjAwODIxOSwgMC4wMDgyMjQsIDAuMDA4MjMsIDAuMDA4MjM1LCAwLjAwODIzMyIsIFwKLSAgICAgICAgICAiMC4wMDgwNDYsIDAuMDA4MjA1LCAwLjAwODIyNiwgMC4wMDgyMzMsIDAuMDA4MjM4LCAwLjAwODI0MSwgMC4wMDgyNDMiLCBcCi0gICAgICAgICAgIjAuMDA4MDYsIDAuMDA4MjE5LCAwLjAwODI0LCAwLjAwODI0NSwgMC4wMDgyNTIsIDAuMDA4MjU1LCAwLjAwODI1OSIsIFwKLSAgICAgICAgICAiMC4wMDgwNzEsIDAuMDA4MjMxLCAwLjAwODI1MiwgMC4wMDgyNTgsIDAuMDA4MjYzLCAwLjAwODI2NiwgMC4wMDgyNjkiLCBcCi0gICAgICAgICAgIjAuMDA4MDk5LCAwLjAwODI1OCwgMC4wMDgyOCwgMC4wMDgyODYsIDAuMDA4MjksIDAuMDA4Mjk0LCAwLjAwODI5NyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwODcxNSwgMC4wMDg4NDgsIDAuMDA4ODYzLCAwLjAwODg2OCwgMC4wMDg4NzEsIDAuMDA4ODczLCAwLjAwODg3NSIsIFwKLSAgICAgICAgICAiMC4wMDg2NywgMC4wMDg4MTEsIDAuMDA4ODI5LCAwLjAwODgzNiwgMC4wMDg4MzksIDAuMDA4ODQsIDAuMDA4ODQyIiwgXAotICAgICAgICAgICIwLjAwODYyOCwgMC4wMDg3NzgsIDAuMDA4ODAxLCAwLjAwODgwNSwgMC4wMDg4MTMsIDAuMDA4ODE3LCAwLjAwODgxOSIsIFwKLSAgICAgICAgICAiMC4wMDg2MDMsIDAuMDA4NzU3LCAwLjAwODc4MywgMC4wMDg3OTIsIDAuMDA4OCwgMC4wMDg4MDQsIDAuMDA4ODA3IiwgXAotICAgICAgICAgICIwLjAwODU4NCwgMC4wMDg3NDUsIDAuMDA4Nzc0LCAwLjAwODc4MywgMC4wMDg3OTEsIDAuMDA4Nzk3LCAwLjAwODgwMSIsIFwKLSAgICAgICAgICAiMC4wMDg1ODcsIDAuMDA4NzM4LCAwLjAwODc2NywgMC4wMDg3ODEsIDAuMDA4NzkxLCAwLjAwODc5NiwgMC4wMDg4MDEiLCBcCi0gICAgICAgICAgIjAuMDA4NTk3LCAwLjAwODc0NSwgMC4wMDg3NzUsIDAuMDA4NzksIDAuMDA4Nzk4LCAwLjAwODgwNiwgMC4wMDg4MTEiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfcG93ZXIoc2NhbGFyKSB7Ci0gICAgICAgIHZhbHVlcygiMCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUU4pICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMS4wNDAzMzsKLSAgICBmdW5jdGlvbiA6ICJRQklOVCI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3NlbnNlIDogbm9uX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiByaXNpbmdfZWRnZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNTYwMjMsIDAuMjI4NDk5LCAwLjMwMDgwMywgMC4zNTI0OTEsIDAuNDM0OTczLCAwLjUwNzMzNywgMC42MTA3MjQiLCBcCi0gICAgICAgICAgIjAuMTY2MTksIDAuMjM4NTg3LCAwLjMxMDg3MywgMC4zNjI1MjgsIDAuNDQ1MTg5LCAwLjUxNzQ5NiwgMC42MjA4ODEiLCBcCi0gICAgICAgICAgIjAuMTc4OTc2LCAwLjI1MTQ0NiwgMC4zMjM2OTksIDAuMzc1MzMzLCAwLjQ1NzkyLCAwLjUzMDI4NywgMC42MzM1NTkiLCBcCi0gICAgICAgICAgIjAuMTkwODg4LCAwLjI2MzMxNCwgMC4zMzU2MDgsIDAuMzg3MzIxLCAwLjQ2OTkxMSwgMC41NDIyMjUsIDAuNjQ1NTMyIiwgXAotICAgICAgICAgICIwLjIwMTQxLCAwLjI3Mzg1NCwgMC4zNDYxNDQsIDAuMzk3ODA2LCAwLjQ4MDQ3OCwgMC41NTI3NjIsIDAuNjU2MDcyIiwgXAotICAgICAgICAgICIwLjIxNTg1MiwgMC4yODgzMjIsIDAuMzYwNjQ2LCAwLjQxMjMzLCAwLjQ5NDkyMSwgMC41NjcyMzEsIDAuNjcwNTM4IiwgXAotICAgICAgICAgICIwLjIyNzE2MywgMC4yOTk2MjMsIDAuMzcxODc5LCAwLjQyMzU3NiwgMC41MDYxLCAwLjU3ODQ2NywgMC42ODE4NSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzMjExNCwgMC4xNzc5ODMsIDAuMzI3NDgxLCAwLjQzMzMzNCwgMC42MDM1OTYsIDAuNzUzOTc5LCAwLjk2ODMwNCIsIFwKLSAgICAgICAgICAiMC4wMzIxMzUsIDAuMTc3OTgyLCAwLjMyNzQzOSwgMC40MzQzMjgsIDAuNjA1Mzk0LCAwLjc1NTAxOSwgMC45NjcwOTkiLCBcCi0gICAgICAgICAgIjAuMDMyMTM1LCAwLjE3Nzk4MywgMC4zMjY0OTMsIDAuNDM0MDA4LCAwLjYwMzYwMywgMC43NTQ3MTMsIDAuOTY4MTc2IiwgXAotICAgICAgICAgICIwLjAzMjEyOCwgMC4xNzc5OTIsIDAuMzI2OTc3LCAwLjQzMzUyNiwgMC42MDUzNzksIDAuNzU0NTc1LCAwLjk2ODI4MiIsIFwKLSAgICAgICAgICAiMC4wMzIxMzYsIDAuMTc3ODI2LCAwLjMyNzQ2LCAwLjQzMjk3OCwgMC42MDU0NDUsIDAuNzU0NjA1LCAwLjk2ODI3MyIsIFwKLSAgICAgICAgICAiMC4wMzIxMjIsIDAuMTc3ODEsIDAuMzI2NzIyLCAwLjQzMzUxNCwgMC42MDUzOTQsIDAuNzU0NTY5LCAwLjk2ODI3NyIsIFwKLSAgICAgICAgICAiMC4wMzIxMzYsIDAuMTc3OTg1LCAwLjMyNjQ5MiwgMC40MzQzNTcsIDAuNjAzNjE5LCAwLjc1NDcxNSwgMC45NjgzMiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE2OTI0NCwgMC4yNDI4MTgsIDAuMzE2NDYyLCAwLjM2OTA2MywgMC40NTMzMTYsIDAuNTI2OTU5LCAwLjYzMjMxMSIsIFwKLSAgICAgICAgICAiMC4xNzk0MjUsIDAuMjUzMDE2LCAwLjMyNjY2NywgMC4zNzkyNTQsIDAuNDYzNDQ3LCAwLjUzNzAxNiwgMC42NDIzOSIsIFwKLSAgICAgICAgICAiMC4xOTIxMjQsIDAuMjY1NzQ3LCAwLjMzOTI4OCwgMC4zOTE5MzYsIDAuNDc2MTc0LCAwLjU0OTgxNiwgMC42NTQ5MTgiLCBcCi0gICAgICAgICAgIjAuMjAzODMxLCAwLjI3NzQzNiwgMC4zNTEwNzUsIDAuNDAzNjYzLCAwLjQ4Nzg1NywgMC41NjE0NjcsIDAuNjY2ODA5IiwgXAotICAgICAgICAgICIwLjIxMzkwNCwgMC4yODc0NTQsIDAuMzYxMDg0LCAwLjQxMzY5MSwgMC40OTc5NiwgMC41NzE1OTEsIDAuNjc2ODM3IiwgXAotICAgICAgICAgICIwLjIyODM3NCwgMC4zMDE5OTQsIDAuMzc1NjM2LCAwLjQyODIyNCwgMC41MTI0MjQsIDAuNTg2MjA1LCAwLjY5MTM3IiwgXAotICAgICAgICAgICIwLjIzOTI5MywgMC4zMTI4NzcsIDAuMzg2NTI5LCAwLjQzOTExNSwgMC41MjMzNDgsIDAuNTk2ODcxLCAwLjcwMjE5MiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzMjM5LCAwLjE3NzU4MiwgMC4zMjYyMywgMC40MzI4MiwgMC42MDI5NzgsIDAuNzUzNjQ0LCAwLjk2NDk1OCIsIFwKLSAgICAgICAgICAiMC4wMzIzODMsIDAuMTc3NTgzLCAwLjMyNjE1NSwgMC40MzMzMzYsIDAuNjAzMzg1LCAwLjc1MjUyOCwgMC45NjY5ODMiLCBcCi0gICAgICAgICAgIjAuMDMyMzg0LCAwLjE3NzY5MSwgMC4zMjY2MTQsIDAuNDMyNjc4LCAwLjYwMjk3NSwgMC43NTM2MjUsIDAuOTY1NjU2IiwgXAotICAgICAgICAgICIwLjAzMjM4MSwgMC4xNzc2OTEsIDAuMzI2MjI3LCAwLjQzMzMzLCAwLjYwNDA2MywgMC43NTMyMTIsIDAuOTY3IiwgXAotICAgICAgICAgICIwLjAzMjM1NSwgMC4xNzc1ODUsIDAuMzI2MjYxLCAwLjQzMjU3LCAwLjYwMjkyLCAwLjc1MzU2MiwgMC45NjY5ODQiLCBcCi0gICAgICAgICAgIjAuMDMyMzgxLCAwLjE3NzY5LCAwLjMyNjIzLCAwLjQzMzM0LCAwLjYwNDA5NSwgMC43NTE5NDMsIDAuOTY3MDA5IiwgXAotICAgICAgICAgICIwLjAzMjM4MywgMC4xNzc1ODMsIDAuMzI2MjIsIDAuNDMzMzQ2LCAwLjYwMjMxOSwgMC43NTI2MDcsIDAuOTY2NzkyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiBwcmVzZXQ7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDcxNDgyLCAwLjE0NDAyLCAwLjIxNjI3OCwgMC4yNjc5MjcsIDAuMzUwNTY4LCAwLjQyMjkxNywgMC41MjYyMzQiLCBcCi0gICAgICAgICAgIjAuMDgxMzEzLCAwLjE1Mzg2NywgMC4yMjYxMTgsIDAuMjc3Nzg0LCAwLjM2MDQ0MywgMC40MzI3MjksIDAuNTM2MDQyIiwgXAotICAgICAgICAgICIwLjA5MzU5MywgMC4xNjYxMDEsIDAuMjM4MzU2LCAwLjI4OTk4OSwgMC4zNzI2MzMsIDAuNDQ0OTg0LCAwLjU0ODI2NiIsIFwKLSAgICAgICAgICAiMC4xMDUwNDQsIDAuMTc3NDk2LCAwLjI0OTc2LCAwLjMwMTQyLCAwLjM4NDA2MywgMC40NTY0NDIsIDAuNTU5Njc2IiwgXAotICAgICAgICAgICIwLjExNDY1LCAwLjE4Njk0OCwgMC4yNTkxOTUsIDAuMzEwODQsIDAuMzkzNDc4LCAwLjQ2NTgwNywgMC41NjkxMzUiLCBcCi0gICAgICAgICAgIjAuMTI4MDUxLCAwLjIwMDIyOSwgMC4yNzI0NDksIDAuMzI0MDc5LCAwLjQwNjcyLCAwLjQ3OTA0OCwgMC41ODIzNTUiLCBcCi0gICAgICAgICAgIjAuMTM4MjUsIDAuMjEwMzIyLCAwLjI4MjUzNCwgMC4zMzQxNjMsIDAuNDE2ODIyLCAwLjQ4OTE0NiwgMC41OTI0NDkiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzIxMTMsIDAuMTc3Njc5LCAwLjMyNzE1NCwgMC40MzM1NDksIDAuNjA1MTAxLCAwLjc1NDc0NCwgMC45Njg1NSIsIFwKLSAgICAgICAgICAiMC4wMzIxMDUsIDAuMTc3Njc2LCAwLjMyNjg4MywgMC40MzQxNDgsIDAuNjA0MjMxLCAwLjc1NDUyMiwgMC45Njc0MDIiLCBcCi0gICAgICAgICAgIjAuMDMyMTI5LCAwLjE3NzY4OSwgMC4zMjY4ODYsIDAuNDM0MTE1LCAwLjYwNTA2NywgMC43NTQ1MjIsIDAuOTY4MzkxIiwgXAotICAgICAgICAgICIwLjAzMjEyNiwgMC4xNzc3MDIsIDAuMzI2ODg3LCAwLjQzNDA5NSwgMC42MDUxNDgsIDAuNzU0NTY2LCAwLjk2NzQ3IiwgXAotICAgICAgICAgICIwLjAzMjI3NSwgMC4xNzc3LCAwLjMyNjkyOCwgMC40MzQxMDEsIDAuNjA1MTU3LCAwLjc1NDU3NiwgMC45NjgyODciLCBcCi0gICAgICAgICAgIjAuMDMyNTkxLCAwLjE3NzcxOCwgMC4zMjcyMTQsIDAuNDM0MTAyLCAwLjYwNTAxNCwgMC43NTQ3NDgsIDAuOTY4MzgiLCBcCi0gICAgICAgICAgIjAuMDMyNTg5LCAwLjE3Nzc0MSwgMC4zMjY5MzksIDAuNDMzNjI3LCAwLjYwNTE1NywgMC43NTQ3NTEsIDAuOTY4NDY0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA4MDU1LCAwLjAwODIxMywgMC4wMDgyMzQsIDAuMDA4MjQxLCAwLjAwODI0NiwgMC4wMDgyNSwgMC4wMDgyNTEiLCBcCi0gICAgICAgICAgIjAuMDA4MDM3LCAwLjAwODE5OCwgMC4wMDgyMTksIDAuMDA4MjI1LCAwLjAwODIzLCAwLjAwODIzNCwgMC4wMDgyMzgiLCBcCi0gICAgICAgICAgIjAuMDA4MDQsIDAuMDA4MTk4LCAwLjAwODIxOSwgMC4wMDgyMjQsIDAuMDA4MjMsIDAuMDA4MjM1LCAwLjAwODIzMyIsIFwKLSAgICAgICAgICAiMC4wMDgwNDYsIDAuMDA4MjA1LCAwLjAwODIyNiwgMC4wMDgyMzMsIDAuMDA4MjM4LCAwLjAwODI0MSwgMC4wMDgyNDMiLCBcCi0gICAgICAgICAgIjAuMDA4MDYsIDAuMDA4MjE5LCAwLjAwODI0LCAwLjAwODI0NSwgMC4wMDgyNTIsIDAuMDA4MjU1LCAwLjAwODI1OSIsIFwKLSAgICAgICAgICAiMC4wMDgwNzEsIDAuMDA4MjMxLCAwLjAwODI1MiwgMC4wMDgyNTgsIDAuMDA4MjYzLCAwLjAwODI2NiwgMC4wMDgyNjkiLCBcCi0gICAgICAgICAgIjAuMDA4MDk5LCAwLjAwODI1OCwgMC4wMDgyOCwgMC4wMDgyODYsIDAuMDA4MjksIDAuMDA4Mjk0LCAwLjAwODI5NyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA4MDAxLCAwLjAwODE3MywgMC4wMDgyLCAwLjAwODIwOSwgMC4wMDgyMTYsIDAuMDA4MjE5LCAwLjAwODIyMyIsIFwKLSAgICAgICAgICAiMC4wMDc5ODQsIDAuMDA4MTU3LCAwLjAwODE4NCwgMC4wMDgxOTMsIDAuMDA4MjAxLCAwLjAwODIwMywgMC4wMDgyMDgiLCBcCi0gICAgICAgICAgIjAuMDA3OTc3LCAwLjAwODE0OSwgMC4wMDgxNzYsIDAuMDA4MTg0LCAwLjAwODE5MiwgMC4wMDgxOTUsIDAuMDA4MTk5IiwgXAotICAgICAgICAgICIwLjAwNzk3NiwgMC4wMDgxNDksIDAuMDA4MTc2LCAwLjAwODE4NSwgMC4wMDgxOTIsIDAuMDA4MTk3LCAwLjAwODE5OSIsIFwKLSAgICAgICAgICAiMC4wMDc5ODQsIDAuMDA4MTU4LCAwLjAwODE4NSwgMC4wMDgxOTMsIDAuMDA4MjAxLCAwLjAwODIwNCwgMC4wMDgyMDgiLCBcCi0gICAgICAgICAgIjAuMDA3OTkxLCAwLjAwODE2NSwgMC4wMDgxOTIsIDAuMDA4MjAxLCAwLjAwODIwOCwgMC4wMDgyMTIsIDAuMDA4MjE1IiwgXAotICAgICAgICAgICIwLjAwOCwgMC4wMDgxNzQsIDAuMDA4MjAxLCAwLjAwODIxLCAwLjAwODIxOCwgMC4wMDgyMjEsIDAuMDA4MjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUk4iOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA4NzE1LCAwLjAwODg0OCwgMC4wMDg4NjMsIDAuMDA4ODY4LCAwLjAwODg3MSwgMC4wMDg4NzMsIDAuMDA4ODc1IiwgXAotICAgICAgICAgICIwLjAwODY3LCAwLjAwODgxMSwgMC4wMDg4MjksIDAuMDA4ODM2LCAwLjAwODgzOSwgMC4wMDg4NCwgMC4wMDg4NDIiLCBcCi0gICAgICAgICAgIjAuMDA4NjI4LCAwLjAwODc3OCwgMC4wMDg4MDEsIDAuMDA4ODA1LCAwLjAwODgxMywgMC4wMDg4MTcsIDAuMDA4ODE5IiwgXAotICAgICAgICAgICIwLjAwODYwMywgMC4wMDg3NTcsIDAuMDA4NzgzLCAwLjAwODc5MiwgMC4wMDg4LCAwLjAwODgwNCwgMC4wMDg4MDciLCBcCi0gICAgICAgICAgIjAuMDA4NTg0LCAwLjAwODc0NSwgMC4wMDg3NzQsIDAuMDA4NzgzLCAwLjAwODc5MSwgMC4wMDg3OTcsIDAuMDA4ODAxIiwgXAotICAgICAgICAgICIwLjAwODU4NywgMC4wMDg3MzgsIDAuMDA4NzY3LCAwLjAwODc4MSwgMC4wMDg3OTEsIDAuMDA4Nzk2LCAwLjAwODgwMSIsIFwKLSAgICAgICAgICAiMC4wMDg1OTcsIDAuMDA4NzQ1LCAwLjAwODc3NSwgMC4wMDg3OSwgMC4wMDg3OTgsIDAuMDA4ODA2LCAwLjAwODgxMSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihzY2FsYXIpIHsKLSAgICAgICAgdmFsdWVzKCIwIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihSTikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAyMzcwNDg7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAyMjAxNjI7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAyMzcwNDg7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwODc5LCAwLjAwMDg3OCwgMC4wMDA4NzgsIDAuMDAwODc4LCAwLjAwMDg3OCwgMC4wMDA4NzgsIDAuMDAwODc4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwODk1LCAwLjAwMDg4MywgMC4wMDA4ODIsIDAuMDAwODgxLCAwLjAwMDg4MSwgMC4wMDA4ODEsIDAuMDAwODgxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRCI7Ci0gICAgICBzZGZfY29uZCA6ICJEID09IDEnYjAiOwotICAgICAgZmFsbF9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDkxODUsIDAuMTAxMTgyLCAwLjExMTQ2NiwgMC4xMjA5MTEsIDAuMTI5ODE1LCAwLjE0MjM3OCwgMC4xNTIwMSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJlY292ZXJ5X3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiRCI7Ci0gICAgICBzZGZfY29uZCA6ICJEID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHJlY292ZXJ5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMzEyNSwgLTAuMDQyNSwgLTAuMDU1LCAtMC4wNjc1LCAtMC4wNzM3NSwgLTAuMDksIC0wLjA5ODc1IiwgXAotICAgICAgICAgICItMC4wMzI1LCAtMC4wNDM3NSwgLTAuMDU2MjUsIC0wLjA2ODc1LCAtMC4wODEyNSwgLTAuMDkxMjUsIC0wLjEwNjI1IiwgXAotICAgICAgICAgICItMC4wMzI1LCAtMC4wNDM3NSwgLTAuMDU2MjUsIC0wLjA2ODc1LCAtMC4wODEyNSwgLTAuMDk3NSwgLTAuMTA2MjUiLCBcCi0gICAgICAgICAgIi0wLjAzMjUsIC0wLjA0Mzc1LCAtMC4wNTYyNSwgLTAuMDY4NzUsIC0wLjA4MTI1LCAtMC4wOTEyNSwgLTAuMTA2MjUiLCBcCi0gICAgICAgICAgIi0wLjAyLCAtMC4wMzEyNSwgLTAuMDQzNzUsIC0wLjA1NjI1LCAtMC4wNjg3NSwgLTAuMDg1LCAtMC4xIiwgXAotICAgICAgICAgICIwLjAwMjUsIC0wLjAwODc1LCAtMC4wMjc1LCAtMC4wNCwgLTAuMDUyNSwgLTAuMDY4NzUsIC0wLjA3NzUiLCBcCi0gICAgICAgICAgIjAuMDIzNzUsIDAuMDEyNSwgLTAuMDA2MjUsIC0wLjAxODc1LCAtMC4wMzEyNSwgLTAuMDQ3NSwgLTAuMDYyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJlbW92YWxfcmlzaW5nOwotICAgICAgd2hlbiA6ICJEIjsKLSAgICAgIHNkZl9jb25kIDogIkQgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQocmVtb3ZhbF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNSwgMC4wNjEyNSwgMC4wNzM3NSwgMC4wODYyNSwgMC4wOTI1LCAwLjEwODc1LCAwLjEyMzc1IiwgXAotICAgICAgICAgICIwLjA1NzUsIDAuMDY4NzUsIDAuMDgxMjUsIDAuMDg3NSwgMC4xLCAwLjExNjI1LCAwLjEyNSIsIFwKLSAgICAgICAgICAiMC4wNjM3NSwgMC4wNzUsIDAuMDg3NSwgMC4wOTM3NSwgMC4xMDYyNSwgMC4xMjI1LCAwLjEzMTI1IiwgXAotICAgICAgICAgICIwLjA3LCAwLjA3NSwgMC4wODc1LCAwLjEsIDAuMTEyNSwgMC4xMjI1LCAwLjEzNzUiLCBcCi0gICAgICAgICAgIjAuMDcsIDAuMDgxMjUsIDAuMDkzNzUsIDAuMTA2MjUsIDAuMTE4NzUsIDAuMTI4NzUsIDAuMTM3NSIsIFwKLSAgICAgICAgICAiMC4wNzg3NSwgMC4wOSwgMC4xMDI1LCAwLjExNSwgMC4xMjEyNSwgMC4xMzc1LCAwLjE0NjI1IiwgXAotICAgICAgICAgICIwLjA4MjUsIDAuMDkzNzUsIDAuMTA2MjUsIDAuMTE4NzUsIDAuMTI1LCAwLjE0MTI1LCAwLjE1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBERkZSWEwgKgotICogLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChERkZSWEwpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4zMjYwMjc7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgZmYgKE4zMCxRQklOVCkgewotICAgIG5leHRfc3RhdGUgOiAiRCI7Ci0gICAgY2xvY2tlZF9vbiA6ICJDSyI7Ci0gICAgY2xlYXIgOiAiKCFSTikiOwotICB9Ci0gIHBpbihDSykgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNTYzODkzOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDU2MzUwMzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA1NjM4OTM7Ci0gICAgY2xvY2sgOiB0cnVlOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzAwOCwgMC4wMDI5ODIsIDAuMDAyOTY5LCAwLjAwMjk3MiwgMC4wMDI5ODQsIDAuMDAzMDAyLCAwLjAwMzAyMyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNjk1NywgMC4wMDY5MzQsIDAuMDA2OTI2LCAwLjAwNjkzMiwgMC4wMDY5MzYsIDAuMDA2OTYzLCAwLjAwNjk3MyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQmUk4iOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1JOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4xOTg4MDIsIDAuMjA5MDMzLCAwLjIyMTkzMiwgMC4yMzM5NSwgMC4yNDQ5MTMsIDAuMjYwMTg4LCAwLjI3MTg3NiIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMTA2NTI0LCAwLjExNjQyMywgMC4xMjg3OTUsIDAuMTQwMzY4LCAwLjE1MDQ0OCwgMC4xNjQzMTEsIDAuMTc0Nzg3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihEKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA1OTM0NTE7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNTkyMTU4OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDU5MzQ1MTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDIyODYsIDAuMDAyMjY0LCAwLjAwMjI1MywgMC4wMDIyNDUsIDAuMDAyMjQ5LCAwLjAwMjI0NiwgMC4wMDIyNTIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDI5MjIsIDAuMDAyOTA4LCAwLjAwMjksIDAuMDAyODk2LCAwLjAwMjg5OCwgMC4wMDI4OTMsIDAuMDAyOSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJSTiI7Ci0gICAgICBzZGZfY29uZCA6ICJSTiA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMTg3NSwgLTAuMDA3NSwgLTAuMDAxMjUsIDAuMDA1LCAwLjAxMTI1LCAwLjAxNSwgMC4wMjM3NSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMCwgMC4wMSwgMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDMxMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMTI1LCAtMC4wMDI1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAwODc1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDIxMjUsIC0wLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjA2NSwgLTAuMDYsIC0wLjA1Mzc1LCAtMC4wNDEyNSwgLTAuMDM1LCAtMC4wMzEyNSwgLTAuMDIyNSIsIFwKLSAgICAgICAgICAiLTAuMDgsIC0wLjA2ODc1LCAtMC4wNjI1LCAtMC4wNSwgLTAuMDUsIC0wLjA0LCAtMC4wMzEyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDI1LCAwLjAzNjI1LCAwLjA0ODc1LCAwLjA1NSwgMC4wNjc1LCAwLjA4Mzc1LCAwLjA5MjUiLCBcCi0gICAgICAgICAgIjAuMDEzNzUsIDAuMDI1LCAwLjAzNzUsIDAuMDUsIDAuMDU2MjUsIDAuMDcyNSwgMC4wODEyNSIsIFwKLSAgICAgICAgICAiMC4wMDc1LCAwLjAxODc1LCAwLjAzMTI1LCAwLjA0Mzc1LCAwLjA1LCAwLjA2NjI1LCAwLjA3NSIsIFwKLSAgICAgICAgICAiMC4wMDEyNSwgMC4wMTI1LCAwLjAyNSwgMC4wMzc1LCAwLjA0Mzc1LCAwLjA2LCAwLjA2ODc1IiwgXAotICAgICAgICAgICItMC4wMDUsIDAuMDA2MjUsIDAuMDE4NzUsIDAuMDMxMjUsIDAuMDM3NSwgMC4wNTM3NSwgMC4wNjI1IiwgXAotICAgICAgICAgICItMC4wMDg3NSwgLTAuMDAzNzUsIDAuMDA4NzUsIDAuMDIxMjUsIDAuMDMzNzUsIDAuMDQzNzUsIDAuMDU4NzUiLCBcCi0gICAgICAgICAgIi0wLjAxNzUsIC0wLjAwNjI1LCAwLjAwNjI1LCAwLjAxODc1LCAwLjAyNSwgMC4wNDEyNSwgMC4wNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiUk4iOwotICAgICAgc2RmX2NvbmQgOiAiUk4gPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQzNzUsIDAuMDMyNSwgMC4wMjYyNSwgMC4wMTM3NSwgMC4wMTM3NSwgMC4wMDM3NSwgLTAuMDA1IiwgXAotICAgICAgICAgICIwLjA0ODc1LCAwLjA0Mzc1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMTg3NSwgMC4wMDg3NSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiMC4wNjEyNSwgMC4wNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyMTI1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMDczNzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzMzc1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiMC4wOCwgMC4wNzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNSwgMC4wNCwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4wOTYyNSwgMC4wODUsIDAuMDc4NzUsIDAuMDY2MjUsIDAuMDYsIDAuMDUsIDAuMDQ3NSIsIFwKLSAgICAgICAgICAiMC4xMDUsIDAuMDkzNzUsIDAuMDg3NSwgMC4wNzUsIDAuMDY4NzUsIDAuMDY1LCAwLjA1NjI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEyNSwgMC4wMDc1LCAtMC4wMTEyNSwgLTAuMDIzNzUsIC0wLjAzLCAtMC4wNDYyNSwgLTAuMDYxMjUiLCBcCi0gICAgICAgICAgIjAuMDIzNzUsIDAuMDEyNSwgMCwgLTAuMDEyNSwgLTAuMDI1LCAtMC4wNDEyNSwgLTAuMDUiLCBcCi0gICAgICAgICAgIjAuMDM2MjUsIDAuMDI1LCAwLjAwNjI1LCAtMC4wMDYyNSwgLTAuMDEyNSwgLTAuMDI4NzUsIC0wLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjA0MjUsIDAuMDMxMjUsIDAuMDE4NzUsIDAuMDA2MjUsIC0wLjAwNjI1LCAtMC4wMjI1LCAtMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4wNDg3NSwgMC4wMzc1LCAwLjAyNSwgMC4wMTI1LCAwLCAtMC4wMSwgLTAuMDI1IiwgXAotICAgICAgICAgICIwLjA2NSwgMC4wNTM3NSwgMC4wNDEyNSwgMC4wMjg3NSwgMC4wMTYyNSwgMCwgLTAuMDE1IiwgXAotICAgICAgICAgICIwLjA3Mzc1LCAwLjA2MjUsIDAuMDUsIDAuMDM3NSwgMC4wMjUsIDAuMDA4NzUsIC0wLjAwNjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihRKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMTU1OTE7Ci0gICAgZnVuY3Rpb24gOiAiTjMwIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBub25fdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJpc2luZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMDA2MjUsIDAuMjE0NzQzLCAwLjM0MTYxNywgMC41NTM1NjYsIDAuNzY1NTksIDEuMjYwMzgsIDEuNTQzMTgiLCBcCi0gICAgICAgICAgIjAuMjEwODA1LCAwLjIyNDk3OSwgMC4zNTE4MzQsIDAuNTYzNjIyLCAwLjc3NTM4NCwgMS4yNjk1NCwgMS41NTMzNiIsIFwKLSAgICAgICAgICAiMC4yMjM2NDksIDAuMjM3NzY5LCAwLjM2NDY0OCwgMC41NzY1NjYsIDAuNzg4NjE3LCAxLjI4MzQsIDEuNTY2MiIsIFwKLSAgICAgICAgICAiMC4yMzU0MjYsIDAuMjQ5NTcxLCAwLjM3NjQ4MywgMC41ODgzOTMsIDAuODAwNDg5LCAxLjI5NTIzLCAxLjU3ODAxIiwgXAotICAgICAgICAgICIwLjI0NjE2NSwgMC4yNjAzNCwgMC4zODcyMDUsIDAuNTk4OTkyLCAwLjgxMTIxNywgMS4zMDU5NywgMS41ODg3MSIsIFwKLSAgICAgICAgICAiMC4yNjEzMDEsIDAuMjc1NDM0LCAwLjQwMjMyNSwgMC42MTQxMTYsIDAuODI2MjgzLCAxLjMyMTA2LCAxLjYwMzg1IiwgXAotICAgICAgICAgICIwLjI3MjU1NSwgMC4yODY3MTEsIDAuNDEzNjE2LCAwLjYyNTQxOSwgMC44Mzc1NTksIDEuMzMyMzUsIDEuNjE1MDkiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTU5NjMyLCAwLjE4NzcxNCwgMC40NDU1MjQsIDAuODgxMTMxLCAxLjMxNywgMi4zMzM4OCwgMi45MTUzOCIsIFwKLSAgICAgICAgICAiMC4xNTk2MTksIDAuMTg3NzU1LCAwLjQ0NTU4NiwgMC44ODAzNzMsIDEuMzE0MTMsIDIuMzI5NTMsIDIuOTE0OTkiLCBcCi0gICAgICAgICAgIjAuMTU5NjI3LCAwLjE4NzcwOSwgMC40NDU1NjMsIDAuODgxMDkyLCAxLjMxNjk5LCAyLjMzMzg2LCAyLjkxNTM1IiwgXAotICAgICAgICAgICIwLjE1OTUxNywgMC4xODc2ODUsIDAuNDQ1NDM2LCAwLjg4MTA4NCwgMS4zMTcxMiwgMi4zMzM3OSwgMi45MTUyMyIsIFwKLSAgICAgICAgICAiMC4xNTk2MTYsIDAuMTg3NzQ4LCAwLjQ0NTU3MywgMC44ODAzNTksIDEuMzE3MTcsIDIuMzM0MzIsIDIuOTE0OTkiLCBcCi0gICAgICAgICAgIjAuMTU5NjIsIDAuMTg3NzExLCAwLjQ0NTU2NSwgMC44ODA0ODgsIDEuMzE3MDMsIDIuMzMzODksIDIuOTE1NDQiLCBcCi0gICAgICAgICAgIjAuMTU5NjE0LCAwLjE4NzcyLCAwLjQ0NjAzNCwgMC44ODA4ODksIDEuMzE3MDIsIDIuMzM0MDgsIDIuOTE1NDUiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTg4ODI5LCAwLjIwMjgyLCAwLjMyNzcwNSwgMC41MzUwMTQsIDAuNzQyNTMzLCAxLjIyNjE2LCAxLjUwMzk5IiwgXAotICAgICAgICAgICIwLjE5OTEzOCwgMC4yMTMxMDQsIDAuMzM3NzM5LCAwLjU0NTIzOSwgMC43NTI3OCwgMS4yMzcwNSwgMS41MTQxMyIsIFwKLSAgICAgICAgICAiMC4yMTIwMjcsIDAuMjI1ODI1LCAwLjM1MDgyMSwgMC41NTc4OTMsIDAuNzY1NzA3LCAxLjI1MDIxLCAxLjUyNjk0IiwgXAotICAgICAgICAgICIwLjIyNDAyNiwgMC4yMzc5NTEsIDAuMzYyODM1LCAwLjU3MDE0NSwgMC43Nzc2NjYsIDEuMjYxMjksIDEuNTM5MTIiLCBcCi0gICAgICAgICAgIjAuMjM0OTM4LCAwLjI0ODkyOSwgMC4zNzM4MTIsIDAuNTgxMTIyLCAwLjc4ODY0MiwgMS4yNzIyNywgMS41NTAxIiwgXAotICAgICAgICAgICIwLjI1MDMxLCAwLjI2NDIxNSwgMC4zODkwNDIsIDAuNTk2MzU2LCAwLjgwMzk2NiwgMS4yODgzNywgMS41NjUxNiIsIFwKLSAgICAgICAgICAiMC4yNjE5ODYsIDAuMjc1OTMxLCAwLjQwMDc4NiwgMC42MDgzNTIsIDAuODE1NjUsIDEuMzAwMTgsIDEuNTc2OTEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTQ5MzA0LCAwLjE3Njc0MSwgMC40MjQ5MjMsIDAuODQyMzM0LCAxLjI1OTM3LCAyLjIyOTcsIDIuNzg5OTgiLCBcCi0gICAgICAgICAgIjAuMTQ5NDc3LCAwLjE3Njk1NCwgMC40MjU1OTMsIDAuODQyMzQxLCAxLjI1OTQsIDIuMjMyNzgsIDIuNzg5NzciLCBcCi0gICAgICAgICAgIjAuMTQ5NDcyLCAwLjE3NjgxLCAwLjQyNDgxMywgMC44NDE5MDgsIDEuMjU5NTYsIDIuMjMzMzUsIDIuNzg5NjEiLCBcCi0gICAgICAgICAgIjAuMTQ5MzcsIDAuMTc2NzQ2LCAwLjQyNDkwMiwgMC44NDIzMzgsIDEuMjU5MzMsIDIuMjI5NjksIDIuNzg5ODgiLCBcCi0gICAgICAgICAgIjAuMTQ5MzA0LCAwLjE3Njc0OSwgMC40MjQ5MDMsIDAuODQyMzM2LCAxLjI1OTMzLCAyLjIyOTcsIDIuNzg5ODgiLCBcCi0gICAgICAgICAgIjAuMTQ5NTYyLCAwLjE3Njk2NywgMC40MjQ5NjgsIDAuODQyMzQyLCAxLjI1OTYxLCAyLjIzMzEsIDIuNzg5NTgiLCBcCi0gICAgICAgICAgIjAuMTQ4NjM0LCAwLjE3Njk2NSwgMC40MjUzNzksIDAuODQxMzYsIDEuMjU5NTEsIDIuMjMzMzIsIDIuNzg5NTYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUk4iOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGNsZWFyOwotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTI1MjcsIDAuMTI2MzkxLCAwLjI1MDgzNCwgMC40NTg1NywgMC42NjYyNiwgMS4xNTA0NywgMS40MjY5MiIsIFwKLSAgICAgICAgICAiMC4xMjIzMTMsIDAuMTM2MTU5LCAwLjI2MDY2MywgMC40Njg0NzksIDAuNjc2MDY3LCAxLjE2MDM4LCAxLjQzNjk0IiwgXAotICAgICAgICAgICIwLjEzNDgyNSwgMC4xNDg2NzMsIDAuMjczMzAyLCAwLjQ4MTA0NywgMC42ODg1OTMsIDEuMTcyNjEsIDEuNDQ5MjYiLCBcCi0gICAgICAgICAgIjAuMTQ2NDAyLCAwLjE2MDIzMywgMC4yODQ5MzksIDAuNDkyNjU2LCAwLjcwMDIyNiwgMS4xODQ0MiwgMS40NjA5NyIsIFwKLSAgICAgICAgICAiMC4xNTY4MjIsIDAuMTcwNjksIDAuMjk1MjQsIDAuNTAyOTc1LCAwLjcxMDEzNiwgMS4xOTQ2NSwgMS40NzE0OCIsIFwKLSAgICAgICAgICAiMC4xNzEyOTQsIDAuMTg1MTM2LCAwLjMwOTc4NCwgMC41MTc1MDEsIDAuNzI1MDc4LCAxLjIwOTM0LCAxLjQ4NTkiLCBcCi0gICAgICAgICAgIjAuMTgyMjUzLCAwLjE5NjEzNSwgMC4zMjA1OTEsIDAuNTI4MywgMC43MzU5MzMsIDEuMjIwMTUsIDEuNDk2NzciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTQ5MjI3LCAwLjE3Njk1OSwgMC40MjUxNTgsIDAuODQyNTAxLCAxLjI1OTg1LCAyLjIzMzY1LCAyLjc4ODMyIiwgXAotICAgICAgICAgICIwLjE0OTIzLCAwLjE3Njk2MywgMC40MjUyNTksIDAuODQyNjk0LCAxLjI1OTgxLCAyLjIzMzU5LCAyLjc4OSIsIFwKLSAgICAgICAgICAiMC4xNDk2MjksIDAuMTc2OTc5LCAwLjQyNTUzOSwgMC44NDI3MzYsIDEuMjU5ODMsIDIuMjMyMzgsIDIuNzg4OSIsIFwKLSAgICAgICAgICAiMC4xNDk3MzYsIDAuMTc2OTk2LCAwLjQyNTU0NywgMC44NDI3NDksIDEuMjYsIDIuMjMzMjEsIDIuNzg4NjciLCBcCi0gICAgICAgICAgIjAuMTQ5OTY3LCAwLjE3NzEzNCwgMC40MjU1NjgsIDAuODQyNzE3LCAxLjI1OTI5LCAyLjIzMjQ5LCAyLjc4OTEyIiwgXAotICAgICAgICAgICIwLjE1MDI2LCAwLjE3NzQ0NiwgMC40MjU1NzMsIDAuODQyNTg3LCAxLjI1OTk1LCAyLjIzMzI1LCAyLjc4ODg3IiwgXAotICAgICAgICAgICIwLjE1MTA0MSwgMC4xNzgwMTMsIDAuNDI1NTc2LCAwLjg0MjU5NywgMS4yNTk4NywgMi4yMzI4MiwgMi43ODgxMSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDM5NTcsIDAuMDAzOTU2LCAwLjAwMzk0NiwgMC4wMDM5MzksIDAuMDAzOTM3LCAwLjAwMzkzMywgMC4wMDM5MzMiLCBcCi0gICAgICAgICAgIjAuMDAzOTQyLCAwLjAwMzk0MSwgMC4wMDM5MzEsIDAuMDAzOTI1LCAwLjAwMzkyMiwgMC4wMDM5MTksIDAuMDAzOTE4IiwgXAotICAgICAgICAgICIwLjAwMzkzNCwgMC4wMDM5MzQsIDAuMDAzOTI1LCAwLjAwMzkxOCwgMC4wMDM5MTQsIDAuMDAzOTEyLCAwLjAwMzkxMSIsIFwKLSAgICAgICAgICAiMC4wMDM5MzIsIDAuMDAzOTMxLCAwLjAwMzkyMywgMC4wMDM5MTYsIDAuMDAzOTEyLCAwLjAwMzkwOSwgMC4wMDM5MDgiLCBcCi0gICAgICAgICAgIjAuMDAzOTQzLCAwLjAwMzk0MiwgMC4wMDM5MzQsIDAuMDAzOTI3LCAwLjAwMzkyNCwgMC4wMDM5MiwgMC4wMDM5MTkiLCBcCi0gICAgICAgICAgIjAuMDAzOTUyLCAwLjAwMzk1MSwgMC4wMDM5NDMsIDAuMDAzOTM2LCAwLjAwMzkzMywgMC4wMDM5MjksIDAuMDAzOTI4IiwgXAotICAgICAgICAgICIwLjAwMzk2NCwgMC4wMDM5NjMsIDAuMDAzOTU1LCAwLjAwMzk0OCwgMC4wMDM5NDQsIDAuMDAzOTQxLCAwLjAwMzk0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzOTc2LCAwLjAwMzk3OCwgMC4wMDM5ODEsIDAuMDAzOTgzLCAwLjAwMzk4NCwgMC4wMDM5ODQsIDAuMDAzOTg0IiwgXAotICAgICAgICAgICIwLjAwMzk2MiwgMC4wMDM5NjQsIDAuMDAzOTY4LCAwLjAwMzk2OSwgMC4wMDM5NywgMC4wMDM5NywgMC4wMDM5NyIsIFwKLSAgICAgICAgICAiMC4wMDM5NiwgMC4wMDM5NjEsIDAuMDAzOTY1LCAwLjAwMzk2NiwgMC4wMDM5NjcsIDAuMDAzOTY3LCAwLjAwMzk2OCIsIFwKLSAgICAgICAgICAiMC4wMDM5NjYsIDAuMDAzOTY4LCAwLjAwMzk3MiwgMC4wMDM5NzMsIDAuMDAzOTc0LCAwLjAwMzk3NCwgMC4wMDM5NzQiLCBcCi0gICAgICAgICAgIjAuMDAzOTgyLCAwLjAwMzk4NCwgMC4wMDM5ODcsIDAuMDAzOTg5LCAwLjAwMzk5LCAwLjAwMzk5LCAwLjAwMzk5IiwgXAotICAgICAgICAgICIwLjAwNCwgMC4wMDQwMDEsIDAuMDA0MDA1LCAwLjAwNDAwNiwgMC4wMDQwMDYsIDAuMDA0MDA3LCAwLjAwNDAwOCIsIFwKLSAgICAgICAgICAiMC4wMDQwMiwgMC4wMDQwMjEsIDAuMDA0MDI0LCAwLjAwNDAyNiwgMC4wMDQwMjYsIDAuMDA0MDI3LCAwLjAwNDAyNyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQxNDMsIDAuMDA0MTQ0LCAwLjAwNDE0NywgMC4wMDQxNDgsIDAuMDA0MTQ5LCAwLjAwNDE0OSwgMC4wMDQxNDkiLCBcCi0gICAgICAgICAgIjAuMDA0MTI4LCAwLjAwNDEyOSwgMC4wMDQxMzMsIDAuMDA0MTM0LCAwLjAwNDEzNSwgMC4wMDQxMzUsIDAuMDA0MTM1IiwgXAotICAgICAgICAgICIwLjAwNDExNywgMC4wMDQxMTgsIDAuMDA0MTIyLCAwLjAwNDEyNCwgMC4wMDQxMjUsIDAuMDA0MTI2LCAwLjAwNDEyNSIsIFwKLSAgICAgICAgICAiMC4wMDQxMTEsIDAuMDA0MTEyLCAwLjAwNDExOCwgMC4wMDQxMiwgMC4wMDQxMiwgMC4wMDQxMjEsIDAuMDA0MTIxIiwgXAotICAgICAgICAgICIwLjAwNDEwNywgMC4wMDQxMDksIDAuMDA0MTE1LCAwLjAwNDExNywgMC4wMDQxMTgsIDAuMDA0MTE4LCAwLjAwNDExOCIsIFwKLSAgICAgICAgICAiMC4wMDQxMDYsIDAuMDA0MTA4LCAwLjAwNDExNSwgMC4wMDQxMTgsIDAuMDA0MTE4LCAwLjAwNDExOSwgMC4wMDQxMiIsIFwKLSAgICAgICAgICAiMC4wMDQxMTIsIDAuMDA0MTE1LCAwLjAwNDEyMiwgMC4wMDQxMjUsIDAuMDA0MTI3LCAwLjAwNDEyNywgMC4wMDQxMjciKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfcG93ZXIoc2NhbGFyKSB7Ci0gICAgICAgIHZhbHVlcygiMCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUU4pICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4xNTQ3OTk7Ci0gICAgZnVuY3Rpb24gOiAiUUJJTlQiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5vbl91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcmlzaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE5ODgwMiwgMC4yMTI5NDIsIDAuMzQwMTExLCAwLjU1MTgwOSwgMC43NjM1ODcsIDEuMjU3ODMsIDEuNTQwNDIiLCBcCi0gICAgICAgICAgIjAuMjA5MDMzLCAwLjIyMzE2NiwgMC4zNTAyNTUsIDAuNTYyMDI1LCAwLjc3MzgxMiwgMS4yNjgsIDEuNTUwNTgiLCBcCi0gICAgICAgICAgIjAuMjIxOTMyLCAwLjIzNjA0OSwgMC4zNjMyMzEsIDAuNTc0OTMzLCAwLjc4NjczMywgMS4yODEwNCwgMS41NjM0NCIsIFwKLSAgICAgICAgICAiMC4yMzM5NSwgMC4yNDgwNzQsIDAuMzc1MjQzLCAwLjU4Njk0MSwgMC43OTg3MTksIDEuMjkyOTYsIDEuNTc1NTUiLCBcCi0gICAgICAgICAgIjAuMjQ0OTEzLCAwLjI1OTA1MiwgMC4zODYyMjIsIDAuNTk3OTE5LCAwLjgwOTY5NywgMS4zMDM5NCwgMS41ODY1MyIsIFwKLSAgICAgICAgICAiMC4yNjAxODgsIDAuMjc0MzEsIDAuNDAxNDY3LCAwLjYxMzE2OSwgMC44MjQ5ODksIDEuMzE5MjUsIDEuNjAxNjgiLCBcCi0gICAgICAgICAgIjAuMjcxODc2LCAwLjI4NjAwNywgMC40MTMxODIsIDAuNjI0OTk5LCAwLjgzNjY3NCwgMS4zMzA5OSwgMS42MTMzOSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNTE4NjgsIDAuMTgwNzgxLCAwLjQ0MTY5NSwgMC44Nzc5OSwgMS4zMTM1MiwgMi4zMjU1OCwgMi45MTEwOSIsIFwKLSAgICAgICAgICAiMC4xNTE4ODQsIDAuMTgxMTA1LCAwLjQ0MjQ5NiwgMC44Nzc5ODgsIDEuMzEzNTEsIDIuMzI5OCwgMi45MTA5OCIsIFwKLSAgICAgICAgICAiMC4xNTE4NzYsIDAuMTgwODcsIDAuNDQxNjczLCAwLjg3NjgzNSwgMS4zMTM1NiwgMi4zMzAxMywgMi45MTA5IiwgXAotICAgICAgICAgICIwLjE1MTg5MywgMC4xODA3ODEsIDAuNDQxNjgzLCAwLjg3Nzk4OCwgMS4zMTM1MSwgMi4zMjU3MiwgMi45MTEwNiIsIFwKLSAgICAgICAgICAiMC4xNTE4NjgsIDAuMTgwNzgyLCAwLjQ0MTY4MywgMC44Nzc5ODgsIDEuMzEzNTEsIDIuMzI1NzEsIDIuOTExMDYiLCBcCi0gICAgICAgICAgIjAuMTUyMDY2LCAwLjE4MTEwMiwgMC40NDE2ODYsIDAuODc3OTMzLCAxLjMxMzU3LCAyLjMzLCAyLjkxMDg3IiwgXAotICAgICAgICAgICIwLjE1MTcxNywgMC4xODExMDIsIDAuNDQxNTk2LCAwLjg3NjI4NSwgMS4zMTM1MywgMi4zMzAxNCwgMi45MTA4OCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMDQ0OTksIDAuMjE4MzE5LCAwLjM0Mjc2MSwgMC41NTAyMDUsIDAuNzU3NjIsIDEuMjQxNTIsIDEuNTE4MTMiLCBcCi0gICAgICAgICAgIjAuMjE0Njg3LCAwLjIyODUyMSwgMC4zNTI5NTksIDAuNTYwMzk2LCAwLjc2NzkwMywgMS4yNTE4NiwgMS41MjgyNSIsIFwKLSAgICAgICAgICAiMC4yMjc1MTYsIDAuMjQxMzM2LCAwLjM2NTc3NywgMC41NzMxOTksIDAuNzgwNjM1LCAxLjI2NDUzLCAxLjU0MTE0IiwgXAotICAgICAgICAgICIwLjIzOTMxMywgMC4yNTMxNDIsIDAuMzc3NTg0LCAwLjU4NDk5OCwgMC43OTI0NzcsIDEuMjc2MzIsIDEuNTUyOTIiLCBcCi0gICAgICAgICAgIjAuMjUwMDM0LCAwLjI2Mzg2OCwgMC4zODgzMDMsIDAuNTk1NzM3LCAwLjgwMzIxLCAxLjI4NzE1LCAxLjU2MzU5IiwgXAotICAgICAgICAgICIwLjI2NTE1NywgMC4yNzg5NzcsIDAuNDAzNDE3LCAwLjYxMDg1LCAwLjgxODI3OSwgMS4zMDIxOCwgMS41Nzg4IiwgXAotICAgICAgICAgICIwLjI3NjQxNSwgMC4yOTAyNCwgMC40MTQ2NywgMC42MjIxMDIsIDAuODI5NTM2LCAxLjMxMzQ4LCAxLjU5MDA1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE0NTM1OCwgMC4xNzMwMDgsIDAuNDIyNTc0LCAwLjg0MDAwOSwgMS4yNTY3LCAyLjIyODg2LCAyLjc4NDkyIiwgXAotICAgICAgICAgICIwLjE0NTM0OCwgMC4xNzMwMiwgMC40MjI1NTIsIDAuODM5MzU5LCAxLjI1MzksIDIuMjI0MTksIDIuNzg0MzYiLCBcCi0gICAgICAgICAgIjAuMTQ1MzU3LCAwLjE3MzAwOSwgMC40MjI1NSwgMC44Mzk4ODgsIDEuMjU2NjUsIDIuMjI4NzcsIDIuNzg0ODIiLCBcCi0gICAgICAgICAgIjAuMTQ1MzYyLCAwLjE3MzA0MSwgMC40MjI2MDcsIDAuODM5ODY5LCAxLjI1Njg4LCAyLjIyODcsIDIuNzg0NjYiLCBcCi0gICAgICAgICAgIjAuMTQ1MzQ3LCAwLjE3MzAxOSwgMC40MjI1NDgsIDAuODM5MzYxLCAxLjI1NjkzLCAyLjIyOTI2LCAyLjc4NDM2IiwgXAotICAgICAgICAgICIwLjE0NTM1NSwgMC4xNzMwMDgsIDAuNDIyNTU1LCAwLjgzOTM3LCAxLjI1NjY4LCAyLjIyODc4LCAyLjc4NDkiLCBcCi0gICAgICAgICAgIjAuMTQ1MzQ3LCAwLjE3MzAwOCwgMC40MjMwMDYsIDAuODM5NDQsIDEuMjU2NjUsIDIuMjI5MDEsIDIuNzg0NzgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUk4iOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHByZXNldDsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTIyMTUsIDAuMTM2MjYxLCAwLjI2MzMzNiwgMC40NzUxLCAwLjY4Njk1OSwgMS4xODEwNCwgMS40NjMzOCIsIFwKLSAgICAgICAgICAiMC4xMzE5NCwgMC4xNDYwNTIsIDAuMjczMTI0LCAwLjQ4NDkzOSwgMC42OTY3NDgsIDEuMTkwOTEsIDEuNDczMjYiLCBcCi0gICAgICAgICAgIjAuMTQ0NDMzLCAwLjE1ODU0NywgMC4yODU2MSwgMC40OTc0NTksIDAuNzA5MjU0LCAxLjIwMzMyLCAxLjQ4NTY2IiwgXAotICAgICAgICAgICIwLjE1NTg1NywgMC4xNjk5NzIsIDAuMjk3MDQyLCAwLjUwODg4MywgMC43MjA2ODYsIDEuMjE0ODMsIDEuNDk3MTQiLCBcCi0gICAgICAgICAgIjAuMTY1OTExLCAwLjE4MDAyNCwgMC4zMDcwNzMsIDAuNTE4ODg5LCAwLjczMDYzLCAxLjIyNDgsIDEuNTA3MjUiLCBcCi0gICAgICAgICAgIjAuMTc5NjUyLCAwLjE5Mzc2MywgMC4zMjA4MzEsIDAuNTMyNjczLCAwLjc0NDQ4MSwgMS4yMzg1NSwgMS41MjA4OCIsIFwKLSAgICAgICAgICAiMC4xODk4MzUsIDAuMjAzOTQzLCAwLjMzMDk4NywgMC41NDI3NzQsIDAuNzU0NTk4LCAxLjI0ODc2LCAxLjUzMTEiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTUxNzM3LCAwLjE4MDc5NywgMC40NDE3NTIsIDAuODc3NjksIDEuMzEzMzksIDIuMzI5OTEsIDIuOTA5OTQiLCBcCi0gICAgICAgICAgIjAuMTUxNzM3LCAwLjE4MDgwNCwgMC40NDE3ODQsIDAuODc3ODIxLCAxLjMxMzM3LCAyLjMyOTg3LCAyLjkxMDI0IiwgXAotICAgICAgICAgICIwLjE1MTc2NiwgMC4xODA4MjYsIDAuNDQyMTY0LCAwLjg3Nzg0NCwgMS4zMTMzNywgMi4zMjkzNywgMi45MTAyMiIsIFwKLSAgICAgICAgICAiMC4xNTE3MzgsIDAuMTgwODA1LCAwLjQ0MjIxNywgMC44Nzc4MzMsIDEuMzEzMzksIDIuMzI5NjksIDIuOTEwMTMiLCBcCi0gICAgICAgICAgIjAuMTUxNzkzLCAwLjE4MDgxMSwgMC40NDIxODUsIDAuODc3ODEsIDEuMzEyOTgsIDIuMzI5MzMsIDIuOTEwMjciLCBcCi0gICAgICAgICAgIjAuMTUxNzgyLCAwLjE4MDgxNCwgMC40NDIxNTQsIDAuODc3NjY5LCAxLjMxMzQxLCAyLjMyOTY4LCAyLjkxMDE4IiwgXAotICAgICAgICAgICIwLjE1MTc4LCAwLjE4MDc4LCAwLjQ0MTU5MiwgMC44Nzc2NzMsIDEuMzEzMzUsIDIuMzI5NDgsIDIuOTA5NzciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzOTc2LCAwLjAwMzk3OCwgMC4wMDM5ODEsIDAuMDAzOTgzLCAwLjAwMzk4NCwgMC4wMDM5ODQsIDAuMDAzOTg0IiwgXAotICAgICAgICAgICIwLjAwMzk2MiwgMC4wMDM5NjQsIDAuMDAzOTY4LCAwLjAwMzk2OSwgMC4wMDM5NywgMC4wMDM5NywgMC4wMDM5NyIsIFwKLSAgICAgICAgICAiMC4wMDM5NiwgMC4wMDM5NjEsIDAuMDAzOTY1LCAwLjAwMzk2NiwgMC4wMDM5NjcsIDAuMDAzOTY3LCAwLjAwMzk2OCIsIFwKLSAgICAgICAgICAiMC4wMDM5NjYsIDAuMDAzOTY4LCAwLjAwMzk3MiwgMC4wMDM5NzMsIDAuMDAzOTc0LCAwLjAwMzk3NCwgMC4wMDM5NzQiLCBcCi0gICAgICAgICAgIjAuMDAzOTgyLCAwLjAwMzk4NCwgMC4wMDM5ODcsIDAuMDAzOTg5LCAwLjAwMzk5LCAwLjAwMzk5LCAwLjAwMzk5IiwgXAotICAgICAgICAgICIwLjAwNCwgMC4wMDQwMDEsIDAuMDA0MDA1LCAwLjAwNDAwNiwgMC4wMDQwMDYsIDAuMDA0MDA3LCAwLjAwNDAwOCIsIFwKLSAgICAgICAgICAiMC4wMDQwMiwgMC4wMDQwMjEsIDAuMDA0MDI0LCAwLjAwNDAyNiwgMC4wMDQwMjYsIDAuMDA0MDI3LCAwLjAwNDAyNyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzk1NywgMC4wMDM5NTYsIDAuMDAzOTQ2LCAwLjAwMzkzOSwgMC4wMDM5MzcsIDAuMDAzOTMzLCAwLjAwMzkzMyIsIFwKLSAgICAgICAgICAiMC4wMDM5NDIsIDAuMDAzOTQxLCAwLjAwMzkzMSwgMC4wMDM5MjUsIDAuMDAzOTIyLCAwLjAwMzkxOSwgMC4wMDM5MTgiLCBcCi0gICAgICAgICAgIjAuMDAzOTM0LCAwLjAwMzkzNCwgMC4wMDM5MjUsIDAuMDAzOTE4LCAwLjAwMzkxNCwgMC4wMDM5MTIsIDAuMDAzOTExIiwgXAotICAgICAgICAgICIwLjAwMzkzMiwgMC4wMDM5MzEsIDAuMDAzOTIzLCAwLjAwMzkxNiwgMC4wMDM5MTIsIDAuMDAzOTA5LCAwLjAwMzkwOCIsIFwKLSAgICAgICAgICAiMC4wMDM5NDMsIDAuMDAzOTQyLCAwLjAwMzkzNCwgMC4wMDM5MjcsIDAuMDAzOTI0LCAwLjAwMzkyLCAwLjAwMzkxOSIsIFwKLSAgICAgICAgICAiMC4wMDM5NTIsIDAuMDAzOTUxLCAwLjAwMzk0MywgMC4wMDM5MzYsIDAuMDAzOTMzLCAwLjAwMzkyOSwgMC4wMDM5MjgiLCBcCi0gICAgICAgICAgIjAuMDAzOTY0LCAwLjAwMzk2MywgMC4wMDM5NTUsIDAuMDAzOTQ4LCAwLjAwMzk0NCwgMC4wMDM5NDEsIDAuMDAzOTQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0MTQzLCAwLjAwNDE0NCwgMC4wMDQxNDcsIDAuMDA0MTQ4LCAwLjAwNDE0OSwgMC4wMDQxNDksIDAuMDA0MTQ5IiwgXAotICAgICAgICAgICIwLjAwNDEyOCwgMC4wMDQxMjksIDAuMDA0MTMzLCAwLjAwNDEzNCwgMC4wMDQxMzUsIDAuMDA0MTM1LCAwLjAwNDEzNSIsIFwKLSAgICAgICAgICAiMC4wMDQxMTcsIDAuMDA0MTE4LCAwLjAwNDEyMiwgMC4wMDQxMjQsIDAuMDA0MTI1LCAwLjAwNDEyNiwgMC4wMDQxMjUiLCBcCi0gICAgICAgICAgIjAuMDA0MTExLCAwLjAwNDExMiwgMC4wMDQxMTgsIDAuMDA0MTIsIDAuMDA0MTIsIDAuMDA0MTIxLCAwLjAwNDEyMSIsIFwKLSAgICAgICAgICAiMC4wMDQxMDcsIDAuMDA0MTA5LCAwLjAwNDExNSwgMC4wMDQxMTcsIDAuMDA0MTE4LCAwLjAwNDExOCwgMC4wMDQxMTgiLCBcCi0gICAgICAgICAgIjAuMDA0MTA2LCAwLjAwNDEwOCwgMC4wMDQxMTUsIDAuMDA0MTE4LCAwLjAwNDExOCwgMC4wMDQxMTksIDAuMDA0MTIiLCBcCi0gICAgICAgICAgIjAuMDA0MTEyLCAwLjAwNDExNSwgMC4wMDQxMjIsIDAuMDA0MTI1LCAwLjAwNDEyNywgMC4wMDQxMjcsIDAuMDA0MTI3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHNjYWxhcikgewotICAgICAgICB2YWx1ZXMoIjAiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFJOKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE1NTk0MzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE0NzcyNDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE1NTk0MzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA0NTMsIDAuMDAwNDUzLCAwLjAwMDQ1MiwgMC4wMDA0NTIsIDAuMDAwNDUyLCAwLjAwMDQ1MiwgMC4wMDA0NTIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA0NTksIDAuMDAwNDU1LCAwLjAwMDQ1NCwgMC4wMDA0NTQsIDAuMDAwNDU0LCAwLjAwMDQ1NCwgMC4wMDA0NTQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUk4iOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFEIjsKLSAgICAgIHNkZl9jb25kIDogIkQgPT0gMSdiMCI7Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4xMjIxNSwgMC4xMzE5NCwgMC4xNDQ0MzMsIDAuMTU1ODU3LCAwLjE2NTkxMSwgMC4xNzk2NTIsIDAuMTg5ODM1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogcmVjb3ZlcnlfcmlzaW5nOwotICAgICAgd2hlbiA6ICJEIjsKLSAgICAgIHNkZl9jb25kIDogIkQgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQocmVjb3ZlcnlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAzNzUsIC0wLjA0ODc1LCAtMC4wNjEyNSwgLTAuMDczNzUsIC0wLjA4NjI1LCAtMC4wOTYyNSwgLTAuMTExMjUiLCBcCi0gICAgICAgICAgIi0wLjA0NSwgLTAuMDUsIC0wLjA2MjUsIC0wLjA3NSwgLTAuMDg3NSwgLTAuMTAzNzUsIC0wLjExMjUiLCBcCi0gICAgICAgICAgIi0wLjAzODc1LCAtMC4wNSwgLTAuMDYyNSwgLTAuMDc1LCAtMC4wODc1LCAtMC4xMDM3NSwgLTAuMTEyNSIsIFwKLSAgICAgICAgICAiLTAuMDMyNSwgLTAuMDQzNzUsIC0wLjA1NjI1LCAtMC4wNjg3NSwgLTAuMDgxMjUsIC0wLjA5NzUsIC0wLjEwNjI1IiwgXAotICAgICAgICAgICItMC4wMiwgLTAuMDMxMjUsIC0wLjA0Mzc1LCAtMC4wNTYyNSwgLTAuMDY4NzUsIC0wLjA4NSwgLTAuMSIsIFwKLSAgICAgICAgICAiMC4wMDg3NSwgLTAuMDAyNSwgLTAuMDIxMjUsIC0wLjAzMzc1LCAtMC4wNDYyNSwgLTAuMDYyNSwgLTAuMDc3NSIsIFwKLSAgICAgICAgICAiMC4wMywgMC4wMTg3NSwgMCwgLTAuMDEyNSwgLTAuMDI1LCAtMC4wNDEyNSwgLTAuMDU2MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiByZW1vdmFsX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiRCI7Ci0gICAgICBzZGZfY29uZCA6ICJEID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHJlbW92YWxfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU2MjUsIDAuMDY3NSwgMC4wOCwgMC4wOTI1LCAwLjEwNSwgMC4xMTUsIDAuMTMiLCBcCi0gICAgICAgICAgIjAuMDYzNzUsIDAuMDc1LCAwLjA4NzUsIDAuMDkzNzUsIDAuMTA2MjUsIDAuMTIyNSwgMC4xMzEyNSIsIFwKLSAgICAgICAgICAiMC4wNywgMC4wODEyNSwgMC4wOTM3NSwgMC4xMDYyNSwgMC4xMTI1LCAwLjEyODc1LCAwLjEzNzUiLCBcCi0gICAgICAgICAgIjAuMDc2MjUsIDAuMDg3NSwgMC4xLCAwLjExMjUsIDAuMTE4NzUsIDAuMTM1LCAwLjE0Mzc1IiwgXAotICAgICAgICAgICIwLjA4MjUsIDAuMDkzNzUsIDAuMTA2MjUsIDAuMTE4NzUsIDAuMTI1LCAwLjE0MTI1LCAwLjE1IiwgXAotICAgICAgICAgICIwLjA5MTI1LCAwLjA5NjI1LCAwLjEwODc1LCAwLjEyMTI1LCAwLjEzMzc1LCAwLjE1LCAwLjE1ODc1IiwgXAotICAgICAgICAgICIwLjA5NSwgMC4xMDYyNSwgMC4xMTg3NSwgMC4xMzEyNSwgMC4xMzc1LCAwLjE1Mzc1LCAwLjE2MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogREZGU0hRWDIgKgotICogLS0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKERGRlNIUVgyKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuNDIxNzI7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgZmYgKE4zNSxRQklOVCkgewotICAgIG5leHRfc3RhdGUgOiAiRCI7Ci0gICAgY2xvY2tlZF9vbiA6ICJDSyI7Ci0gICAgcHJlc2V0IDogIighU04pIjsKLSAgfQotICBwaW4oQ0spICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYzMTk0MTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MzE2OTE7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjMxOTQxOwotICAgIGNsb2NrIDogdHJ1ZTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDMwNTUsIDAuMDAzMDMsIDAuMDAzMDE4LCAwLjAwMzAxNywgMC4wMDMwMjQsIDAuMDAzMDUsIDAuMDAzMDciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDgxMTEsIDAuMDA4MDg1LCAwLjAwODA2NiwgMC4wMDgwNTksIDAuMDA4MDY3LCAwLjAwODA4OCwgMC4wMDgxMTQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFEJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMTQxOTg3LCAwLjE1MjI0NCwgMC4xNjQ5NjksIDAuMTc3Mzg5LCAwLjE4ODY1MSwgMC4yMDQyNiwgMC4yMTY1MjQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjExOTAxMiwgMC4xMjg4MzEsIDAuMTQxMjMyLCAwLjE1MzEzLCAwLjE2MzYzNiwgMC4xNzgxMDksIDAuMTg4OTk3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihEKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA3ODU4NzU7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNzgzNzg7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNzg1ODc1OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzM4MSwgMC4wMDMzNDcsIDAuMDAzMzI5LCAwLjAwMzMxNywgMC4wMDMzMTksIDAuMDAzMzE5LCAwLjAwMzMyMSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzczNSwgMC4wMDM3MTUsIDAuMDAzNzAyLCAwLjAwMzY5NywgMC4wMDM2OTMsIDAuMDAzNjk1LCAwLjAwMzY5OCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJTTiA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMTI1LCAtMC4wMDc1LCAtMC4wMDEyNSwgMC4wMDUsIDAuMDExMjUsIDAuMDIxMjUsIDAuMDIzNzUiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMCwgMC4wMDYyNSwgMC4wMSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLjAwMzc1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzNzUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwMjUsIDAiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wNDM3NSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxNSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA2NSwgLTAuMDUzNzUsIC0wLjA0NzUsIC0wLjAzNSwgLTAuMDI4NzUsIC0wLjAyNSwgLTAuMDE2MjUiLCBcCi0gICAgICAgICAgIi0wLjA2NzUsIC0wLjA2MjUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDMzNzUsIC0wLjAyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDI1LCAwLjAzNjI1LCAwLjA0ODc1LCAwLjA2MTI1LCAwLjA2NzUsIDAuMDgzNzUsIDAuMDkyNSIsIFwKLSAgICAgICAgICAiMC4wMTM3NSwgMC4wMjUsIDAuMDM3NSwgMC4wNSwgMC4wNjI1LCAwLjA3MjUsIDAuMDg3NSIsIFwKLSAgICAgICAgICAiMC4wMDc1LCAwLjAxODc1LCAwLjAzMTI1LCAwLjA0Mzc1LCAwLjA1LCAwLjA2NjI1LCAwLjA3NSIsIFwKLSAgICAgICAgICAiMC4wMDEyNSwgMC4wMTI1LCAwLjAyNSwgMC4wMzc1LCAwLjA0Mzc1LCAwLjA2LCAwLjA2ODc1IiwgXAotICAgICAgICAgICIwLjAwMTI1LCAwLjAwNjI1LCAwLjAxODc1LCAwLjAzMTI1LCAwLjA0Mzc1LCAwLjA1Mzc1LCAwLjA2ODc1IiwgXAotICAgICAgICAgICItMC4wMDg3NSwgMC4wMDI1LCAwLjAxNSwgMC4wMjEyNSwgMC4wMzM3NSwgMC4wNSwgMC4wNTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDExMjUsIC0wLjAwNjI1LCAwLjAwNjI1LCAwLjAxODc1LCAwLjAzMTI1LCAwLjA0MTI1LCAwLjA1NjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJTTiA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDM3NSwgMC4wMzI1LCAwLjAyLCAwLjAxMzc1LCAwLjAwNzUsIC0wLjAwMjUsIC0wLjAxMTI1IiwgXAotICAgICAgICAgICIwLjA0ODc1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDE4NzUsIDAuMDEyNSwgMC4wMDg3NSwgMCIsIFwKLSAgICAgICAgICAiMC4wNjEyNSwgMC4wNSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMTUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMDY3NSwgMC4wNjI1LCAwLjA1LCAwLjA0Mzc1LCAwLjAzMTI1LCAwLjAyNzUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMDgsIDAuMDY4NzUsIDAuMDU2MjUsIDAuMDUsIDAuMDQzNzUsIDAuMDMzNzUsIDAuMDI1IiwgXAotICAgICAgICAgICIwLjA5LCAwLjA4NSwgMC4wNzI1LCAwLjA2LCAwLjA1Mzc1LCAwLjA0Mzc1LCAwLjA0MTI1IiwgXAotICAgICAgICAgICIwLjEwNSwgMC4wOTM3NSwgMC4wODEyNSwgMC4wNzUsIDAuMDYyNSwgMC4wNTI1LCAwLjA1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM3NSwgMC4wMjYyNSwgMC4wMTM3NSwgMC4wMDEyNSwgLTAuMDExMjUsIC0wLjAyNzUsIC0wLjA0MjUiLCBcCi0gICAgICAgICAgIjAuMDQyNSwgMC4wMzc1LCAwLjAxODc1LCAwLjAwNjI1LCAtMC4wMDYyNSwgLTAuMDIyNSwgLTAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMDU1LCAwLjA0Mzc1LCAwLjAzMTI1LCAwLjAxODc1LCAwLjAwNjI1LCAtMC4wMSwgLTAuMDI1IiwgXAotICAgICAgICAgICIwLjA2MTI1LCAwLjA1LCAwLjAzNzUsIDAuMDI1LCAwLjAxMjUsIC0wLjAwMzc1LCAtMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4wNzM3NSwgMC4wNjI1LCAwLjA0Mzc1LCAwLjAzMTI1LCAwLjAxODc1LCAwLjAwMjUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICIwLjA4Mzc1LCAwLjA3MjUsIDAuMDYsIDAuMDQ3NSwgMC4wMzUsIDAuMDE4NzUsIDAuMDAzNzUiLCBcCi0gICAgICAgICAgIjAuMDkyNSwgMC4wODEyNSwgMC4wNjg3NSwgMC4wNTYyNSwgMC4wNDM3NSwgMC4wMjc1LCAwLjAxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFEpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC41MjMyNjE7Ci0gICAgZnVuY3Rpb24gOiAiTjM1IjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBub25fdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJpc2luZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTYyNjgsIDAuMjE3NDk5LCAwLjI5ODIzOCwgMC4zOTkwNzIsIDAuNDk5OTQxLCAwLjYwMDkwOSwgMC43MDE3NyIsIFwKLSAgICAgICAgICAiMC4xMjY0MjMsIDAuMjI3NjMyLCAwLjMwODM2NSwgMC40MDkyMzYsIDAuNTEwMTc4LCAwLjYxMTA1MywgMC43MTE5NTEiLCBcCi0gICAgICAgICAgIjAuMTM5MTEzLCAwLjI0MDM1LCAwLjMyMTA3OSwgMC40MjE5NjEsIDAuNTIyODc5LCAwLjYyMzc2MywgMC43MjQ2NTciLCBcCi0gICAgICAgICAgIjAuMTUxNTQ0LCAwLjI1Mjc0NywgMC4zMzM0NzMsIDAuNDM0MzQ4LCAwLjUzNTI0NywgMC42MzYwNzcsIDAuNzM3MDMxIiwgXAotICAgICAgICAgICIwLjE2MjY3OSwgMC4yNjM4OTgsIDAuMzQ0NjEsIDAuNDQ1NDk0LCAwLjU0NjM2LCAwLjY0NzI2MSwgMC43NDgxODEiLCBcCi0gICAgICAgICAgIjAuMTc4MzcxLCAwLjI3OTU4NCwgMC4zNjAyNDUsIDAuNDYxMTc0LCAwLjU2MjA3NCwgMC42NjI5OTcsIDAuNzYzNzUxIiwgXAotICAgICAgICAgICIwLjE5MDE3NCwgMC4yOTEzODMsIDAuMzcyMTA2LCAwLjQ3Mjk3NCwgMC41NzM4NjUsIDAuNjc0NzIzLCAwLjc3NTY5MSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTA1OTQsIDAuMjU1OTg0LCAwLjQyMTY1LCAwLjYzMDQ1NSwgMC44Mzc5OTEsIDEuMDQ1MTIsIDEuMjU1NzkiLCBcCi0gICAgICAgICAgIjAuMDUwNTk3LCAwLjI1NTkzMSwgMC40MjI1MDYsIDAuNjI5ODk4LCAwLjgzNzMxLCAxLjA0NTM2LCAxLjI1MzI5IiwgXAotICAgICAgICAgICIwLjA1MDYwMSwgMC4yNTU5MjksIDAuNDIyNDk3LCAwLjYyOTk2NiwgMC44MzkxMzQsIDEuMDQ3NDcsIDEuMjUyNzkiLCBcCi0gICAgICAgICAgIjAuMDUwNTg0LCAwLjI1NTkxMywgMC40MjI0OTUsIDAuNjI5OTQzLCAwLjgzNzY4NCwgMS4wNDcyNywgMS4yNTU3NyIsIFwKLSAgICAgICAgICAiMC4wNTA1ODUsIDAuMjU1NDUyLCAwLjQyMjQ3NywgMC42Mjk4OTMsIDAuODM4OTY3LCAxLjA0NTY2LCAxLjI1NTc3IiwgXAotICAgICAgICAgICIwLjA1MDU5LCAwLjI1NTM0LCAwLjQyMTI5NCwgMC42MzAwMjEsIDAuODM5MDEsIDEuMDQ1MzMsIDEuMjUzODUiLCBcCi0gICAgICAgICAgIjAuMDUwNTc3LCAwLjI1NTkyNiwgMC40MjI0NTcsIDAuNjMwNjY0LCAwLjgzNzY3MywgMS4wNDU5MywgMS4yNTMzNyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNDE5ODcsIDAuMjQ1ODc3LCAwLjMyODYxMSwgMC40MzIwMDIsIDAuNTM1MzkyLCAwLjYzODc2OSwgMC43NDIxNTUiLCBcCi0gICAgICAgICAgIjAuMTUyMjQ0LCAwLjI1NjEzNCwgMC4zMzg4NjUsIDAuNDQyMjU4LCAwLjU0NTY0OSwgMC42NDkwMzgsIDAuNzUyNDY3IiwgXAotICAgICAgICAgICIwLjE2NDk2OSwgMC4yNjg4NTgsIDAuMzUxNjExLCAwLjQ1NDk3OCwgMC41NTg0MTYsIDAuNjYxNzU0LCAwLjc2NTE1MSIsIFwKLSAgICAgICAgICAiMC4xNzczODksIDAuMjgxMjc4LCAwLjM2NDAxLCAwLjQ2NzQwMiwgMC41NzA3OTQsIDAuNjc0MTgzLCAwLjc3NzYyNCIsIFwKLSAgICAgICAgICAiMC4xODg2NTEsIDAuMjkyNTU3LCAwLjM3NTI5MiwgMC40Nzg2ODIsIDAuNTgyMDcxLCAwLjY4NTQ1MiwgMC43ODg4MzQiLCBcCi0gICAgICAgICAgIjAuMjA0MjYsIDAuMzA4MTUsIDAuMzkwODgyLCAwLjQ5NDI3NCwgMC41OTc2NjUsIDAuNzAxMDUzLCAwLjgwNDQ2NCIsIFwKLSAgICAgICAgICAiMC4yMTY1MjQsIDAuMzIwNDE1LCAwLjQwMzE0NywgMC41MDY1MzYsIDAuNjA5OTMsIDAuNzEzMzIsIDAuODE2NzUzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1MTA2MSwgMC4yNTc0MTMsIDAuNDI0NjE3LCAwLjYzNTM4NCwgMC44NDUwMDcsIDEuMDU1MDksIDEuMjYyNTgiLCBcCi0gICAgICAgICAgIjAuMDUxMDYzLCAwLjI1NzYxNSwgMC40MjQ4NjMsIDAuNjM1MzY2LCAwLjg0NTAxNiwgMS4wNTMzNSwgMS4yNjUyNCIsIFwKLSAgICAgICAgICAiMC4wNTEwNywgMC4yNTc0NSwgMC40MjQyNTMsIDAuNjM1MzQ0LCAwLjg0NTM5MywgMS4wNTQ3NCwgMS4yNjMwNSIsIFwKLSAgICAgICAgICAiMC4wNTEwNjMsIDAuMjU3NjE5LCAwLjQyNDgyMywgMC42MzUzNjYsIDAuODQ0OTk2LCAxLjA1MzM2LCAxLjI2NTI0IiwgXAotICAgICAgICAgICIwLjA1MTA2MywgMC4yNTc0MjUsIDAuNDI0NjY5LCAwLjYzNTM3NSwgMC44NDUwMjgsIDEuMDU1MDksIDEuMjYyNjIiLCBcCi0gICAgICAgICAgIjAuMDUxMDcxLCAwLjI1NzQwNCwgMC40MjQ1MTksIDAuNjM1MzY3LCAwLjg0NTAyNywgMS4wNTMzMiwgMS4yNjM0OSIsIFwKLSAgICAgICAgICAiMC4wNTEwNjUsIDAuMjU3NDAzLCAwLjQyNDUyNSwgMC42MzUzNzEsIDAuODQ0OTQ2LCAxLjA1MzM3LCAxLjI2NTI0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiBwcmVzZXQ7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwMzYwNSwgMC4yMDQ4MTIsIDAuMjg1NTQ0LCAwLjM4NjQyNSwgMC40ODczNTYsIDAuNTg4MTcyLCAwLjY4OTA1NSIsIFwKLSAgICAgICAgICAiMC4xMTMzNjIsIDAuMjE0NTY3LCAwLjI5NTI4LCAwLjM5NjE2LCAwLjQ5NzAxNSwgMC41OTc5MywgMC42OTg3ODMiLCBcCi0gICAgICAgICAgIjAuMTI1NzQsIDAuMjI2OTQ4LCAwLjMwNzY4LCAwLjQwODU1OCwgMC41MDk0OTIsIDAuNjEwMzAyLCAwLjcxMTE4NiIsIFwKLSAgICAgICAgICAiMC4xMzc1MDcsIDAuMjM4NzE0LCAwLjMxOTQzOCwgMC40MjAzMiwgMC41MjEyMDgsIDAuNjIyMDcsIDAuNzIyOTMyIiwgXAotICAgICAgICAgICIwLjE0ODM3LCAwLjI0OTU4LCAwLjMzMDMxLCAwLjQzMTE5MSwgMC41MzIwNzgsIDAuNjMyOTM1LCAwLjczMzg3NCIsIFwKLSAgICAgICAgICAiMC4xNjM3NTIsIDAuMjY0OTIxLCAwLjM0NTY0NSwgMC40NDY1MjcsIDAuNTQ3NDA3LCAwLjY0ODI4OCwgMC43NDkxNjgiLCBcCi0gICAgICAgICAgIjAuMTc1NTcyLCAwLjI3NjgwNywgMC4zNTc1MTksIDAuNDU4NDExLCAwLjU1OTM0NiwgMC42NjAxNjEsIDAuNzYxMDIxIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1MDM4MSwgMC4yNTU4ODYsIDAuNDIyNDc1LCAwLjYyOTk0MiwgMC44MzgwNDYsIDEuMDQ2MTEsIDEuMjU1NSIsIFwKLSAgICAgICAgICAiMC4wNTA0MTUsIDAuMjU1OTgzLCAwLjQyMjQ1NywgMC42MzA3MTQsIDAuODM4OTQxLCAxLjA0NjEzLCAxLjI1NTQ1IiwgXAotICAgICAgICAgICIwLjA1MDM5OCwgMC4yNTU5NDMsIDAuNDIyNTQ3LCAwLjYzMDAxMywgMC44Mzc5MzEsIDEuMDQ2MSwgMS4yNTU5MiIsIFwKLSAgICAgICAgICAiMC4wNTAzNzYsIDAuMjU1ODc4LCAwLjQyMjQ1MiwgMC42MzAwMjcsIDAuODM3ODk3LCAxLjA0NjA4LCAxLjI1NTU5IiwgXAotICAgICAgICAgICIwLjA1MDM4NiwgMC4yNTU4NzIsIDAuNDIyNDMxLCAwLjYzMDczNCwgMC44MzgwOTMsIDEuMDQ2MSwgMS4yNTU3OSIsIFwKLSAgICAgICAgICAiMC4wNTA1MTcsIDAuMjU1OTM3LCAwLjQyMjQzOSwgMC42MzAwMTQsIDAuODM4MDksIDEuMDQ3MzMsIDEuMjUzNjUiLCBcCi0gICAgICAgICAgIjAuMDUwNjgxLCAwLjI1NjAxMywgMC40MjIzNzcsIDAuNjI5OTk1LCAwLjgzODAwMywgMS4wNDYxMiwgMS4yNTU0MSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDgxNjcsIDAuMDA4MjI0LCAwLjAwODIyOSwgMC4wMDgyMzMsIDAuMDA4MjM0LCAwLjAwODIzNiwgMC4wMDgyMzYiLCBcCi0gICAgICAgICAgIjAuMDA4MTM1LCAwLjAwODE5MSwgMC4wMDgxOTcsIDAuMDA4MiwgMC4wMDgyMDMsIDAuMDA4MjA0LCAwLjAwODIwNCIsIFwKLSAgICAgICAgICAiMC4wMDgxMTgsIDAuMDA4MTc1LCAwLjAwODE4MiwgMC4wMDgxODQsIDAuMDA4MTg3LCAwLjAwODE4NywgMC4wMDgxODciLCBcCi0gICAgICAgICAgIjAuMDA4MTE3LCAwLjAwODE3NCwgMC4wMDgxNzksIDAuMDA4MTgyLCAwLjAwODE4MywgMC4wMDgxODUsIDAuMDA4MTg0IiwgXAotICAgICAgICAgICIwLjAwODEyNiwgMC4wMDgxODIsIDAuMDA4MTg4LCAwLjAwODE5MiwgMC4wMDgxOTMsIDAuMDA4MTk0LCAwLjAwODE5NSIsIFwKLSAgICAgICAgICAiMC4wMDgxMzgsIDAuMDA4MTk2LCAwLjAwODIwMiwgMC4wMDgyMDksIDAuMDA4MjA3LCAwLjAwODIwOCwgMC4wMDgyMDYiLCBcCi0gICAgICAgICAgIjAuMDA4MTY4LCAwLjAwODIyNSwgMC4wMDgyMzEsIDAuMDA4MjM1LCAwLjAwODIzNywgMC4wMDgyMzcsIDAuMDA4MjM5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA3OTc4LCAwLjAwODA1OSwgMC4wMDgwNjksIDAuMDA4MDc0LCAwLjAwODA3NywgMC4wMDgwNzgsIDAuMDA4MDc5IiwgXAotICAgICAgICAgICIwLjAwNzk1LCAwLjAwODAzLCAwLjAwODA0LCAwLjAwODA0NiwgMC4wMDgwNDgsIDAuMDA4MDUsIDAuMDA4MDUxIiwgXAotICAgICAgICAgICIwLjAwNzk0OCwgMC4wMDgwMjgsIDAuMDA4MDM4LCAwLjAwODA0MywgMC4wMDgwNDYsIDAuMDA4MDQ3LCAwLjAwODA0OSIsIFwKLSAgICAgICAgICAiMC4wMDc5NjQsIDAuMDA4MDQ0LCAwLjAwODA1NCwgMC4wMDgwNTksIDAuMDA4MDYyLCAwLjAwODA2NCwgMC4wMDgwNjUiLCBcCi0gICAgICAgICAgIjAuMDA3OTksIDAuMDA4MDcsIDAuMDA4MDgsIDAuMDA4MDg1LCAwLjAwODA4OCwgMC4wMDgwODksIDAuMDA4MDkxIiwgXAotICAgICAgICAgICIwLjAwODAxMSwgMC4wMDgwOTEsIDAuMDA4MTAxLCAwLjAwODEwNiwgMC4wMDgxMDksIDAuMDA4MTExLCAwLjAwODExMiIsIFwKLSAgICAgICAgICAiMC4wMDgwNzIsIDAuMDA4MTUzLCAwLjAwODE2NCwgMC4wMDgxNjksIDAuMDA4MTcyLCAwLjAwODE3MywgMC4wMDgxNzQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA5NTA2LCAwLjAwOTU2NSwgMC4wMDk1NzEsIDAuMDA5NTc1LCAwLjAwOTU3NywgMC4wMDk1NzgsIDAuMDA5NTc4IiwgXAotICAgICAgICAgICIwLjAwOTQ2MywgMC4wMDk1MjEsIDAuMDA5NTI3LCAwLjAwOTUzMSwgMC4wMDk1MzMsIDAuMDA5NTM0LCAwLjAwOTUzNCIsIFwKLSAgICAgICAgICAiMC4wMDk0MjksIDAuMDA5NDg3LCAwLjAwOTQ5MywgMC4wMDk0OTcsIDAuMDA5NDk5LCAwLjAwOTUsIDAuMDA5NDk2IiwgXAotICAgICAgICAgICIwLjAwOTQwNSwgMC4wMDk0NjQsIDAuMDA5NDcsIDAuMDA5NDc3LCAwLjAwOTQ3NiwgMC4wMDk0NzcsIDAuMDA5NDc4IiwgXAotICAgICAgICAgICIwLjAwOTM5MSwgMC4wMDk0NTIsIDAuMDA5NDYsIDAuMDA5NDY0LCAwLjAwOTQ2NSwgMC4wMDk0NjcsIDAuMDA5NDciLCBcCi0gICAgICAgICAgIjAuMDA5MzkxLCAwLjAwOTQ1NCwgMC4wMDk0NjIsIDAuMDA5NDY2LCAwLjAwOTQ2NywgMC4wMDk0NjksIDAuMDA5NDciLCBcCi0gICAgICAgICAgIjAuMDA5MzkyLCAwLjAwOTQ1NCwgMC4wMDk0NjgsIDAuMDA5NDcyLCAwLjAwOTQ3NCwgMC4wMDk0NzYsIDAuMDA5NDc3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHNjYWxhcikgewotICAgICAgICB2YWx1ZXMoIjAiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFNOKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE3OTY5NzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE2Njg2NDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE3OTY5NzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA2NTMsIDAuMDAwNjUyLCAwLjAwMDY1MiwgMC4wMDA2NTIsIDAuMDAwNjUyLCAwLjAwMDY1MiwgMC4wMDA2NTIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA2NjMsIDAuMDAwNjU1LCAwLjAwMDY1NCwgMC4wMDA2NTQsIDAuMDAwNjU0LCAwLjAwMDY1NCwgMC4wMDA2NTQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiU04iOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFEIjsKLSAgICAgIHNkZl9jb25kIDogIkQgPT0gMSdiMCI7Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4xMDM2MDUsIDAuMTEzMzYyLCAwLjEyNTc0LCAwLjEzNzUwNywgMC4xNDgzNywgMC4xNjM3MjksIDAuMTc1NTcyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogcmVjb3ZlcnlfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRCI7Ci0gICAgICBzZGZfY29uZCA6ICJEID09IDEnYjAiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHJlY292ZXJ5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLCAtMC4wMTEyNSwgLTAuMDIzNzUsIC0wLjAzNjI1LCAtMC4wNDg3NSwgLTAuMDY1LCAtMC4wOCIsIFwKLSAgICAgICAgICAiMC4wMTEyNSwgMCwgLTAuMDEyNSwgLTAuMDI1LCAtMC4wMzc1LCAtMC4wNTM3NSwgLTAuMDY4NzUiLCBcCi0gICAgICAgICAgIjAuMDIzNzUsIDAuMDEyNSwgLTAuMDA2MjUsIC0wLjAxODc1LCAtMC4wMzEyNSwgLTAuMDQ3NSwgLTAuMDU2MjUiLCBcCi0gICAgICAgICAgIjAuMDMsIDAuMDE4NzUsIDAuMDA2MjUsIC0wLjAwNjI1LCAtMC4wMTg3NSwgLTAuMDM1LCAtMC4wNSIsIFwKLSAgICAgICAgICAiMC4wNDI1LCAwLjAzMTI1LCAwLjAxODc1LCAwLjAwNjI1LCAtMC4wMDYyNSwgLTAuMDIyNSwgLTAuMDM3NSIsIFwKLSAgICAgICAgICAiMC4wNTg3NSwgMC4wNDc1LCAwLjAzNSwgMC4wMjI1LCAwLjAxLCAtMC4wMTI1LCAtMC4wMjEyNSIsIFwKLSAgICAgICAgICAiMC4wNzM3NSwgMC4wNjI1LCAwLjA0Mzc1LCAwLjAzMTI1LCAwLjAxODc1LCAwLjAwMjUsIC0wLjAwNjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogcmVtb3ZhbF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEIjsKLSAgICAgIHNkZl9jb25kIDogIkQgPT0gMSdiMCI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQocmVtb3ZhbF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzc1LCAwLjA0ODc1LCAwLjA2MTI1LCAwLjA3Mzc1LCAwLjA4NjI1LCAwLjEwMjUsIDAuMTE3NSIsIFwKLSAgICAgICAgICAiMC4wMzI1LCAwLjA0Mzc1LCAwLjA1NjI1LCAwLjA2ODc1LCAwLjA4MTI1LCAwLjA5MTI1LCAwLjEwNjI1IiwgXAotICAgICAgICAgICIwLjAyLCAwLjAzMTI1LCAwLjA0Mzc1LCAwLjA1NjI1LCAwLjA2ODc1LCAwLjA4NSwgMC4wOTM3NSIsIFwKLSAgICAgICAgICAiMC4wMTM3NSwgMC4wMjUsIDAuMDM3NSwgMC4wNSwgMC4wNTYyNSwgMC4wNzI1LCAwLjA4NzUiLCBcCi0gICAgICAgICAgIjAuMDAxMjUsIDAuMDEyNSwgMC4wMjUsIDAuMDM3NSwgMC4wNSwgMC4wNjYyNSwgMC4wNzUiLCBcCi0gICAgICAgICAgIi0wLjAwODc1LCAtMC4wMDM3NSwgMC4wMTUsIDAuMDIxMjUsIDAuMDMzNzUsIDAuMDUsIDAuMDY1IiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDEyNSwgMCwgMC4wMTI1LCAwLjAyNSwgMC4wNDEyNSwgMC4wNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBERkZTSFFYNCAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoREZGU0hRWDQpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC41Mzg4NzsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBmZiAoTjM1LFFCSU5UKSB7Ci0gICAgbmV4dF9zdGF0ZSA6ICJEIjsKLSAgICBjbG9ja2VkX29uIDogIkNLIjsKLSAgICBwcmVzZXQgOiAiKCFTTikiOwotICB9Ci0gIHBpbihDSykgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjAwNjYxOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYwMDQwNzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2MDA2NjE7Ci0gICAgY2xvY2sgOiB0cnVlOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzExNywgMC4wMDMwOTIsIDAuMDAzMDgsIDAuMDAzMDgsIDAuMDAzMDkxLCAwLjAwMzExMSwgMC4wMDMxMzMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDc4NDksIDAuMDA3ODI4LCAwLjAwNzgyLCAwLjAwNzgyMSwgMC4wMDc4MjUsIDAuMDA3ODU1LCAwLjAwNzg1OSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQmU04iOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4xMzY2MTYsIDAuMTQ2ODEyLCAwLjE1OTU4NywgMC4xNzIwMjIsIDAuMTgzMzM3LCAwLjE5OTI2MywgMC4yMTE0MjkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjExNzYzMiwgMC4xMjc1NDIsIDAuMTM5OTc3LCAwLjE1MTczOSwgMC4xNjIyNDksIDAuMTc2Nzg2LCAwLjE4NzcyOCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNzkyNTU3OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDc5MDE5NTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA3OTI1NTc7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzMDk3LCAwLjAwMzA2MywgMC4wMDMwNDUsIDAuMDAzMDM1LCAwLjAwMzAzNCwgMC4wMDMwMzMsIDAuMDAzMDQ0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzNzM4LCAwLjAwMzcxOCwgMC4wMDM3MDcsIDAuMDAzNzAyLCAwLjAwMzY5NywgMC4wMDM2OTgsIDAuMDAzNzAxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlNOIjsKLSAgICAgIHNkZl9jb25kIDogIlNOID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAxMjUsIC0wLjAwNzUsIDAuMDA1LCAwLjAxMTI1LCAwLjAxMTI1LCAwLjAyMTI1LCAwLjAzIiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAsIDAuMDA2MjUsIDAuMDE2MjUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMC4wMDM3NSwgMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDAyNSwgMCIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjA0Mzc1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDE1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDU4NzUsIC0wLjA1Mzc1LCAtMC4wNDEyNSwgLTAuMDM1LCAtMC4wMjg3NSwgLTAuMDI1LCAtMC4wMTYyNSIsIFwKLSAgICAgICAgICAiLTAuMDY3NSwgLTAuMDYyNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMjc1LCAtMC4wMjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyNSwgMC4wMzYyNSwgMC4wNDg3NSwgMC4wNjEyNSwgMC4wNzM3NSwgMC4wODM3NSwgMC4wOTg3NSIsIFwKLSAgICAgICAgICAiMC4wMiwgMC4wMzEyNSwgMC4wNDM3NSwgMC4wNSwgMC4wNjI1LCAwLjA3ODc1LCAwLjA4NzUiLCBcCi0gICAgICAgICAgIjAuMDEzNzUsIDAuMDE4NzUsIDAuMDMxMjUsIDAuMDQzNzUsIDAuMDU2MjUsIDAuMDY2MjUsIDAuMDgxMjUiLCBcCi0gICAgICAgICAgIjAuMDA3NSwgMC4wMTI1LCAwLjAyNSwgMC4wMzc1LCAwLjA1LCAwLjA2NjI1LCAwLjA3NSIsIFwKLSAgICAgICAgICAiMC4wMDEyNSwgMC4wMTI1LCAwLjAyNSwgMC4wMzEyNSwgMC4wNDM3NSwgMC4wNiwgMC4wNjg3NSIsIFwKLSAgICAgICAgICAiLTAuMDAyNSwgMC4wMDI1LCAwLjAxNSwgMC4wMjc1LCAwLjA0LCAwLjA1LCAwLjA1ODc1IiwgXAotICAgICAgICAgICItMC4wMTEyNSwgMCwgMC4wMTI1LCAwLjAyNSwgMC4wMzEyNSwgMC4wNDc1LCAwLjA1NjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJTTiA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzc1LCAwLjAzMjUsIDAuMDIsIDAuMDEzNzUsIDAuMDA3NSwgLTAuMDAyNSwgLTAuMDExMjUiLCBcCi0gICAgICAgICAgIjAuMDQ4NzUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMTg3NSwgMC4wMTI1LCAwLjAwODc1LCAwIiwgXAotICAgICAgICAgICIwLjA2MTI1LCAwLjA1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDI1LCAwLjAxNSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiMC4wNjc1LCAwLjA2MjUsIDAuMDUsIDAuMDQzNzUsIDAuMDMxMjUsIDAuMDI3NSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4wOCwgMC4wNjg3NSwgMC4wNTYyNSwgMC4wNSwgMC4wNDM3NSwgMC4wMzM3NSwgMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMDksIDAuMDc4NzUsIDAuMDcyNSwgMC4wNiwgMC4wNTM3NSwgMC4wNDM3NSwgMC4wNDEyNSIsIFwKLSAgICAgICAgICAiMC4xMDUsIDAuMDkzNzUsIDAuMDgxMjUsIDAuMDc1LCAwLjA2MjUsIDAuMDUyNSwgMC4wNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzNzUsIDAuMDI2MjUsIDAuMDA3NSwgLTAuMDA1LCAtMC4wMTc1LCAtMC4wMzM3NSwgLTAuMDQyNSIsIFwKLSAgICAgICAgICAiMC4wNDI1LCAwLjAzMTI1LCAwLjAxODc1LCAwLjAwNjI1LCAtMC4wMDYyNSwgLTAuMDIyNSwgLTAuMDM3NSIsIFwKLSAgICAgICAgICAiMC4wNTUsIDAuMDQzNzUsIDAuMDI1LCAwLjAxMjUsIDAsIC0wLjAxNjI1LCAtMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMDYxMjUsIDAuMDUsIDAuMDM3NSwgMC4wMjUsIDAuMDEyNSwgLTAuMDAzNzUsIC0wLjAxODc1IiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDU2MjUsIDAuMDQzNzUsIDAuMDMxMjUsIDAuMDE4NzUsIDAuMDAyNSwgLTAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4wODM3NSwgMC4wNzI1LCAwLjA1Mzc1LCAwLjA0MTI1LCAwLjAyODc1LCAwLjAxMjUsIDAuMDAzNzUiLCBcCi0gICAgICAgICAgIjAuMDg2MjUsIDAuMDc1LCAwLjA2MjUsIDAuMDUsIDAuMDM3NSwgMC4wMjEyNSwgMC4wMTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihRKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDEuMDMzMjM7Ci0gICAgZnVuY3Rpb24gOiAiTjM1IjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBub25fdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJpc2luZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExMjQ5NCwgMC4xODQyODYsIDAuMjU1MjUzLCAwLjMwNTk0MiwgMC4zODY5OTgsIDAuNDU3OTMsIDAuNTU5MjciLCBcCi0gICAgICAgICAgIjAuMTIyNjU4LCAwLjE5NDQ1MSwgMC4yNjU0MDYsIDAuMzE2MTA0LCAwLjM5NzE2MSwgMC40NjgwODUsIDAuNTY5NDI5IiwgXAotICAgICAgICAgICIwLjEzNTM4MSwgMC4yMDcxNywgMC4yNzgxMTYsIDAuMzI4Nzk0LCAwLjQwOTg3OCwgMC40ODA4MDIsIDAuNTgyMTQyIiwgXAotICAgICAgICAgICIwLjE0Nzc5MywgMC4yMTk1ODYsIDAuMjkwNTMyLCAwLjM0MTI0NCwgMC40MjIyOTYsIDAuNDkzMjI5LCAwLjU5NDU3MSIsIFwKLSAgICAgICAgICAiMC4xNTkxMDEsIDAuMjMwODk4LCAwLjMwMTg1MSwgMC4zNTI1NDgsIDAuNDMzNjA0LCAwLjUwNDUyOCwgMC42MDU4NjgiLCBcCi0gICAgICAgICAgIjAuMTc0ODM1LCAwLjI0NjYzMSwgMC4zMTc1NzcsIDAuMzY4MjQ2LCAwLjQ0OTM0MSwgMC41MjAyNywgMC42MjE2MDIiLCBcCi0gICAgICAgICAgIjAuMTg3MDI2LCAwLjI1ODc5NiwgMC4zMjk3NDIsIDAuMzgwNDExLCAwLjQ2MTUwOCwgMC41MzI0NjgsIDAuNjMzNzgiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzA4OTIsIDAuMTczNTkxLCAwLjMxOTk3OCwgMC40MjQ3MTQsIDAuNTkyMDg5LCAwLjczODIzMiwgMC45NDY3NTYiLCBcCi0gICAgICAgICAgIjAuMDMwODkxLCAwLjE3MzcwOCwgMC4zMTk5NSwgMC40MjM3ODksIDAuNTkyMDg2LCAwLjczODU1LCAwLjk0NjcxMSIsIFwKLSAgICAgICAgICAiMC4wMzA5LCAwLjE3MzYxOSwgMC4zMTk1NzUsIDAuNDI0NTcsIDAuNTkyMDg3LCAwLjczODU0NywgMC45NDY2NzciLCBcCi0gICAgICAgICAgIjAuMDMwODksIDAuMTczNTkxLCAwLjMxOTg3NywgMC40MjM2OSwgMC41OTIwOCwgMC43MzgyMDYsIDAuOTQ2Nzg2IiwgXAotICAgICAgICAgICIwLjAzMDg5MSwgMC4xNzM2OTksIDAuMzE5OTU0LCAwLjQyMzcwMiwgMC41OTIwNzUsIDAuNzM4NTQyLCAwLjk0NjY2NSIsIFwKLSAgICAgICAgICAiMC4wMzA4ODIsIDAuMTczNjAyLCAwLjMxOTg2LCAwLjQyNDQ0NiwgMC41OTIwNDMsIDAuNzM4NTI4LCAwLjk0NzcxOCIsIFwKLSAgICAgICAgICAiMC4wMzA5NDIsIDAuMTczNjMsIDAuMzE5NTY5LCAwLjQyNDAzMywgMC41OTIwNSwgMC43Mzg1NjIsIDAuOTQ2NzI5Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTM2NjE2LCAwLjIxMTAyNCwgMC4yODQzNzgsIDAuMzM2NzY4LCAwLjQyMDYxNywgMC40OTM5NjksIDAuNTk4NzIzIiwgXAotICAgICAgICAgICIwLjE0NjgxMiwgMC4yMjEyMjcsIDAuMjk0NTg4LCAwLjM0Njk2MSwgMC40MzA3NzgsIDAuNTA0MTUyLCAwLjYwODg5NyIsIFwKLSAgICAgICAgICAiMC4xNTk1ODcsIDAuMjMzOTk0LCAwLjMwNzM1NiwgMC4zNTk3MjcsIDAuNDQzNTQzLCAwLjUxNjkyNSwgMC42MjE2NjIiLCBcCi0gICAgICAgICAgIjAuMTcyMDIyLCAwLjI0NjQzMiwgMC4zMTk4LCAwLjM3MjE2OCwgMC40NTU5ODQsIDAuNTI5MzYxLCAwLjYzNDEwMSIsIFwKLSAgICAgICAgICAiMC4xODMzMzcsIDAuMjU3NzQ2LCAwLjMzMTExNiwgMC4zODM0ODcsIDAuNDY3MzA1LCAwLjU0MDY4MywgMC42NDU0MTkiLCBcCi0gICAgICAgICAgIjAuMTk5MjYzLCAwLjI3MzY3NSwgMC4zNDcwMywgMC4zOTk0MDcsIDAuNDgzMjE3LCAwLjU1NjYwNywgMC42NjEzNDkiLCBcCi0gICAgICAgICAgIjAuMjExNDI5LCAwLjI4NTg0MywgMC4zNTkyMDgsIDAuNDExNTc4LCAwLjQ5NTM5NywgMC41Njg3NzUsIDAuNjczNTEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzE0MDksIDAuMTc2MzUzLCAwLjMyNDkyOCwgMC40MzA1ODMsIDAuNjAwMTM0LCAwLjc1MDY0NiwgMC45NjMyMDciLCBcCi0gICAgICAgICAgIjAuMDMxNDA1LCAwLjE3NjI0LCAwLjMyNDc2NywgMC40MzA2NzIsIDAuNjAwODEsIDAuNzUwNjI0LCAwLjk2MzIxNiIsIFwKLSAgICAgICAgICAiMC4wMzE0MTEsIDAuMTc2MjQxLCAwLjMyNDQwOCwgMC40MzEyNzksIDAuNjAwNjUyLCAwLjc1MDYzLCAwLjk2MzIyNyIsIFwKLSAgICAgICAgICAiMC4wMzE0LCAwLjE3NjIzOSwgMC4zMjQ2NjYsIDAuNDMwNjc5LCAwLjYwMDcwMywgMC43NTA2NCwgMC45NjMyMTIiLCBcCi0gICAgICAgICAgIjAuMDMxNDE0LCAwLjE3NjI0MSwgMC4zMjQ0MDgsIDAuNDMxMjk2LCAwLjU5OTk4LCAwLjc1MDYyNywgMC45NjMyMTMiLCBcCi0gICAgICAgICAgIjAuMDMxMzk4LCAwLjE3NjI0MSwgMC4zMjQ0OTcsIDAuNDMwNjQ0LCAwLjYwMDczNSwgMC43NTA2MzksIDAuOTYzMTk5IiwgXAotICAgICAgICAgICIwLjAzMTQxNiwgMC4xNzYyMzksIDAuMzI0NTU5LCAwLjQzMTI5MywgMC42MDAwNDgsIDAuNzUwNjM5LCAwLjk2MzE2OSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcHJlc2V0OwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5NTg2NiwgMC4xNjc2NzgsIDAuMjM4NjQzLCAwLjI4OTMzNSwgMC4zNzAzODMsIDAuNDQxMzE4LCAwLjU0MjY0NSIsIFwKLSAgICAgICAgICAiMC4xMDUyMjksIDAuMTc2OTYzLCAwLjI0NzkyMSwgMC4yOTg2MDgsIDAuMzc5NjcsIDAuNDUwNjExLCAwLjU1MTk3NyIsIFwKLSAgICAgICAgICAiMC4xMTc2MDgsIDAuMTg5MzcsIDAuMjYwMzMsIDAuMzEwOTU4LCAwLjM5MjA3OCwgMC40NjI5NDcsIDAuNTY0MzgyIiwgXAotICAgICAgICAgICIwLjEyOTI5NiwgMC4yMDEwOSwgMC4yNzIwNDEsIDAuMzIyNzM0LCAwLjQwMzc5MiwgMC40NzQ3MzYsIDAuNTc2MDgzIiwgXAotICAgICAgICAgICIwLjE0MDIzMSwgMC4yMTE5ODksIDAuMjgyOTUsIDAuMzMzNjQsIDAuNDE0Njk4LCAwLjQ4NTY0NywgMC41ODY5OTciLCBcCi0gICAgICAgICAgIjAuMTU1NTYsIDAuMjI3MjAyLCAwLjI5ODE2NiwgMC4zNDg4NTYsIDAuNDI5OTY3LCAwLjUwMDg0MywgMC42MDIxODMiLCBcCi0gICAgICAgICAgIjAuMTY4MTY4LCAwLjIzOTk4NiwgMC4zMTA5NSwgMC4zNjE2MzMsIDAuNDQyNjk3LCAwLjUxMzYyNywgMC42MTQ5NzUiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzA3NjUsIDAuMTczNzQsIDAuMzE5NjA2LCAwLjQyNDY1NywgMC41OTE5OTksIDAuNzM4NTUxLCAwLjk0ODAzOSIsIFwKLSAgICAgICAgICAiMC4wMzA3NzcsIDAuMTczNzM2LCAwLjMxOTk1MSwgMC40MjQ2MzcsIDAuNTkxOTk4LCAwLjczODM5NCwgMC45NDc4NTQiLCBcCi0gICAgICAgICAgIjAuMDMwNzYyLCAwLjE3MzczNywgMC4zMTk2LCAwLjQyNDYwNSwgMC41OTE5ODksIDAuNzM4NTM2LCAwLjk0NjQ1MiIsIFwKLSAgICAgICAgICAiMC4wMzA3ODMsIDAuMTczNzM4LCAwLjMxOTk5NSwgMC40MjQ2NTQsIDAuNTkxOTg3LCAwLjczODU4MSwgMC45NDc3MzMiLCBcCi0gICAgICAgICAgIjAuMDMwNzY4LCAwLjE3MzcyNCwgMC4zMTk5ODcsIDAuNDI0NjAzLCAwLjU5MTk1OSwgMC43MzgyNzgsIDAuOTQ3ODUzIiwgXAotICAgICAgICAgICIwLjAzMDg3MSwgMC4xNzM3NjYsIDAuMzE5OTksIDAuNDI0NjI3LCAwLjU5MjEyNCwgMC43MzgzNjksIDAuOTQ2ODA2IiwgXAotICAgICAgICAgICIwLjAzMTA2OCwgMC4xNzM2MDIsIDAuMzE5OTI1LCAwLjQyNDU2MiwgMC41OTE5MjUsIDAuNzM4NDY4LCAwLjk0NzU4NyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMTQwMiwgMC4wMTE1NDYsIDAuMDExNTY1LCAwLjAxMTU3LCAwLjAxMTU3NCwgMC4wMTE1NzgsIDAuMDExNTc4IiwgXAotICAgICAgICAgICIwLjAxMTM3LCAwLjAxMTUxNiwgMC4wMTE1MzQsIDAuMDExNTM5LCAwLjAxMTU0MywgMC4wMTE1NDYsIDAuMDExNTQ2IiwgXAotICAgICAgICAgICIwLjAxMTM1MywgMC4wMTE0OTksIDAuMDExNTE5LCAwLjAxMTUyNCwgMC4wMTE1MjcsIDAuMDExNTI5LCAwLjAxMTUzMSIsIFwKLSAgICAgICAgICAiMC4wMTEzNTEsIDAuMDExNDk2LCAwLjAxMTUxNSwgMC4wMTE1MiwgMC4wMTE1MjQsIDAuMDExNTI3LCAwLjAxMTUyOSIsIFwKLSAgICAgICAgICAiMC4wMTEzNTgsIDAuMDExNTAzLCAwLjAxMTUyLCAwLjAxMTUyNywgMC4wMTE1MzIsIDAuMDExNTMyLCAwLjAxMTUzNiIsIFwKLSAgICAgICAgICAiMC4wMTEzNjUsIDAuMDExNTE1LCAwLjAxMTUzMywgMC4wMTE1NCwgMC4wMTE1NDQsIDAuMDExNTQ3LCAwLjAxMTU1MSIsIFwKLSAgICAgICAgICAiMC4wMTEzOTYsIDAuMDExNTQ5LCAwLjAxMTU2OSwgMC4wMTE1NzQsIDAuMDExNTc5LCAwLjAxMTU4MiwgMC4wMTE1ODUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMDgwMSwgMC4wMTEwMTMsIDAuMDExMDQ1LCAwLjAxMTA1NSwgMC4wMTEwNjMsIDAuMDExMDY3LCAwLjAxMTA3MiIsIFwKLSAgICAgICAgICAiMC4wMTA3NjksIDAuMDEwOTg0LCAwLjAxMTAxNiwgMC4wMTEwMjYsIDAuMDExMDM1LCAwLjAxMTA0LCAwLjAxMTA0NCIsIFwKLSAgICAgICAgICAiMC4wMTA3NzUsIDAuMDEwOTg0LCAwLjAxMTAxNiwgMC4wMTEwMjUsIDAuMDExMDM0LCAwLjAxMTAzOCwgMC4wMTEwNDIiLCBcCi0gICAgICAgICAgIjAuMDEwNzgzLCAwLjAxMDk5NywgMC4wMTEwMywgMC4wMTEwNCwgMC4wMTEwNDksIDAuMDExMDUzLCAwLjAxMTA1NyIsIFwKLSAgICAgICAgICAiMC4wMTA3OTUsIDAuMDExMDExLCAwLjAxMTA0MywgMC4wMTEwNTMsIDAuMDExMDYyLCAwLjAxMTA2NiwgMC4wMTEwNyIsIFwKLSAgICAgICAgICAiMC4wMTA4MzcsIDAuMDExMDQ5LCAwLjAxMTA4MSwgMC4wMTEwOTEsIDAuMDExMDk5LCAwLjAxMTEwNCwgMC4wMTExMDciLCBcCi0gICAgICAgICAgIjAuMDEwODgxLCAwLjAxMTA5OCwgMC4wMTExMywgMC4wMTExNDEsIDAuMDExMTQ5LCAwLjAxMTE1NCwgMC4wMTExNTgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTIyNTQsIDAuMDEyNDAzLCAwLjAxMjQyMywgMC4wMTI0MjksIDAuMDEyNDI2LCAwLjAxMjQ0NSwgMC4wMTI0MzkiLCBcCi0gICAgICAgICAgIjAuMDEyMjExLCAwLjAxMjM2LCAwLjAxMjM4LCAwLjAxMjM4NSwgMC4wMTIzOTEsIDAuMDEyNDAxLCAwLjAxMjQwNCIsIFwKLSAgICAgICAgICAiMC4wMTIxNzgsIDAuMDEyMzI4LCAwLjAxMjM0NywgMC4wMTIzNTMsIDAuMDEyMzU5LCAwLjAxMjM2MSwgMC4wMTIzNjQiLCBcCi0gICAgICAgICAgIjAuMDEyMTUzLCAwLjAxMjMwMiwgMC4wMTIzMjIsIDAuMDEyMzMxLCAwLjAxMjMzNSwgMC4wMTIzMzYsIDAuMDEyMzM4IiwgXAotICAgICAgICAgICIwLjAxMjEzNywgMC4wMTIyODcsIDAuMDEyMzA4LCAwLjAxMjMxNCwgMC4wMTIzMTksIDAuMDEyMzI4LCAwLjAxMjMyNSIsIFwKLSAgICAgICAgICAiMC4wMTIxNDYsIDAuMDEyMzExLCAwLjAxMjMzNCwgMC4wMTIzNDIsIDAuMDEyMzQ2LCAwLjAxMjM1LCAwLjAxMjM1MyIsIFwKLSAgICAgICAgICAiMC4wMTIxNTUsIDAuMDEyMzA3LCAwLjAxMjMyMSwgMC4wMTIzMzIsIDAuMDEyMzM0LCAwLjAxMjM0LCAwLjAxMjM0MSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihzY2FsYXIpIHsKLSAgICAgICAgdmFsdWVzKCIwIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTTikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNzQ1MjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE2MTY3NDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE3NDUyOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDY1MywgMC4wMDA2NTIsIDAuMDAwNjUyLCAwLjAwMDY1MiwgMC4wMDA2NTIsIDAuMDAwNjUyLCAwLjAwMDY1MSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDY2NCwgMC4wMDA2NTYsIDAuMDAwNjU1LCAwLjAwMDY1NCwgMC4wMDA2NTQsIDAuMDAwNjU0LCAwLjAwMDY1NCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQiOwotICAgICAgc2RmX2NvbmQgOiAiRCA9PSAxJ2IwIjsKLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjA5NTg2NiwgMC4xMDUyMjksIDAuMTE3NjA4LCAwLjEyOTI5NiwgMC4xNDAyMzEsIDAuMTU1NTYsIDAuMTY4MTY4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogcmVjb3ZlcnlfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRCI7Ci0gICAgICBzZGZfY29uZCA6ICJEID09IDEnYjAiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHJlY292ZXJ5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLCAtMC4wMTEyNSwgLTAuMDIzNzUsIC0wLjAzNjI1LCAtMC4wNDg3NSwgLTAuMDcxMjUsIC0wLjA4IiwgXAotICAgICAgICAgICIwLjAwNSwgLTAuMDA2MjUsIC0wLjAxODc1LCAtMC4wMzEyNSwgLTAuMDQzNzUsIC0wLjA2LCAtMC4wNzUiLCBcCi0gICAgICAgICAgIjAuMDE3NSwgMC4wMDYyNSwgLTAuMDA2MjUsIC0wLjAxODc1LCAtMC4wMzEyNSwgLTAuMDQ3NSwgLTAuMDYyNSIsIFwKLSAgICAgICAgICAiMC4wMywgMC4wMTg3NSwgMCwgLTAuMDEyNSwgLTAuMDI1LCAtMC4wNDEyNSwgLTAuMDUiLCBcCi0gICAgICAgICAgIjAuMDM2MjUsIDAuMDI1LCAwLjAxMjUsIDAsIC0wLjAxMjUsIC0wLjAyODc1LCAtMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4wNTI1LCAwLjA0MTI1LCAwLjAyODc1LCAwLjAxNjI1LCAwLjAwMzc1LCAtMC4wMTI1LCAtMC4wMjc1IiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDU2MjUsIDAuMDQzNzUsIDAuMDMxMjUsIDAuMDE4NzUsIDAuMDAyNSwgLTAuMDEyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJlbW92YWxfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRCI7Ci0gICAgICBzZGZfY29uZCA6ICJEID09IDEnYjAiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHJlbW92YWxfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM3NSwgMC4wNDg3NSwgMC4wNjEyNSwgMC4wNzM3NSwgMC4wODYyNSwgMC4xMDI1LCAwLjExNzUiLCBcCi0gICAgICAgICAgIjAuMDMyNSwgMC4wNDM3NSwgMC4wNTYyNSwgMC4wNjg3NSwgMC4wODEyNSwgMC4wOTc1LCAwLjEwNjI1IiwgXAotICAgICAgICAgICIwLjAyLCAwLjAzMTI1LCAwLjA0Mzc1LCAwLjA1NjI1LCAwLjA2ODc1LCAwLjA4NSwgMC4wOTM3NSIsIFwKLSAgICAgICAgICAiMC4wMTM3NSwgMC4wMjUsIDAuMDM3NSwgMC4wNSwgMC4wNTYyNSwgMC4wNzI1LCAwLjA4NzUiLCBcCi0gICAgICAgICAgIjAuMDAxMjUsIDAuMDEyNSwgMC4wMjUsIDAuMDM3NSwgMC4wNSwgMC4wNjYyNSwgMC4wNzUiLCBcCi0gICAgICAgICAgIi0wLjAwODc1LCAtMC4wMDM3NSwgMC4wMTUsIDAuMDIxMjUsIDAuMDMzNzUsIDAuMDUsIDAuMDY1IiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDEyNSwgMCwgMC4wMTI1LCAwLjAyNSwgMC4wNDEyNSwgMC4wNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBERkZTSFFYOCAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoREZGU0hRWDgpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC43NTc1NDI7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgZmYgKE4zNSxRQklOVCkgewotICAgIG5leHRfc3RhdGUgOiAiRCI7Ci0gICAgY2xvY2tlZF9vbiA6ICJDSyI7Ci0gICAgcHJlc2V0IDogIighU04pIjsKLSAgfQotICBwaW4oQ0spICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYzOTg4NjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2Mzk2OTg7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjM5ODg2OwotICAgIGNsb2NrIDogdHJ1ZTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDMxNTMsIDAuMDAzMTI5LCAwLjAwMzExNSwgMC4wMDMxMTgsIDAuMDAzMTI1LCAwLjAwMzE0NiwgMC4wMDMxNjgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDc5NzUsIDAuMDA3OTQ4LCAwLjAwNzkzMSwgMC4wMDc5MjQsIDAuMDA3OTM3LCAwLjAwNzk2NCwgMC4wMDc5ODkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFEJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMTM5ODUyLCAwLjE1MDAxMiwgMC4xNjI3NzEsIDAuMTc1MDkzLCAwLjE4NjExNSwgMC4yMDE1OTUsIDAuMjEzNDU2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4xMTg1MDQsIDAuMTI4NTA4LCAwLjE0MDgxNiwgMC4xNTI1NTQsIDAuMTYyNzg1LCAwLjE3NjgsIDAuMTg3NTg1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihEKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA4MDA0NzE7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNzk3NzM0OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDgwMDQ3MTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDM0MjYsIDAuMDAzMzkxLCAwLjAwMzM3MywgMC4wMDMzNjIsIDAuMDAzMzY1LCAwLjAwMzM1OSwgMC4wMDMzNzYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDM3MjEsIDAuMDAzNzAxLCAwLjAwMzY4OSwgMC4wMDM2ODQsIDAuMDAzNjc5LCAwLjAwMzY3OSwgMC4wMDM2ODQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiU04iOwotICAgICAgc2RmX2NvbmQgOiAiU04gPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDEyNSwgLTAuMDA3NSwgLTAuMDAxMjUsIDAuMDA1LCAwLjAxMTI1LCAwLjAyMTI1LCAwLjAyMzc1IiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAsIDAuMDA2MjUsIDAuMDEsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMC4wMDM3NSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwODc1LCAwIiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDQzNzUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wNTg3NSwgLTAuMDUzNzUsIC0wLjA0MTI1LCAtMC4wMzUsIC0wLjAyODc1LCAtMC4wMjUsIC0wLjAxNjI1IiwgXAotICAgICAgICAgICItMC4wNjc1LCAtMC4wNjI1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzMzc1LCAtMC4wMjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyNSwgMC4wMzYyNSwgMC4wNDg3NSwgMC4wNjEyNSwgMC4wNjc1LCAwLjA4Mzc1LCAwLjA5MjUiLCBcCi0gICAgICAgICAgIjAuMDIsIDAuMDMxMjUsIDAuMDQzNzUsIDAuMDUsIDAuMDYyNSwgMC4wNzI1LCAwLjA4NzUiLCBcCi0gICAgICAgICAgIjAuMDA3NSwgMC4wMTg3NSwgMC4wMzEyNSwgMC4wNDM3NSwgMC4wNTYyNSwgMC4wNjYyNSwgMC4wODEyNSIsIFwKLSAgICAgICAgICAiMC4wMDc1LCAwLjAxMjUsIDAuMDI1LCAwLjAzNzUsIDAuMDUsIDAuMDYsIDAuMDc1IiwgXAotICAgICAgICAgICIwLjAwMTI1LCAwLjAxMjUsIDAuMDI1LCAwLjAzMTI1LCAwLjA0Mzc1LCAwLjA1Mzc1LCAwLjA2ODc1IiwgXAotICAgICAgICAgICItMC4wMDI1LCAwLjAwMjUsIDAuMDE1LCAwLjAyNzUsIDAuMDMzNzUsIDAuMDUsIDAuMDU4NzUiLCBcCi0gICAgICAgICAgIi0wLjAxMTI1LCAwLCAwLjAxMjUsIDAuMDI1LCAwLjAzMTI1LCAwLjA0NzUsIDAuMDU2MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlNOIjsKLSAgICAgIHNkZl9jb25kIDogIlNOID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0Mzc1LCAwLjAzMjUsIDAuMDIsIDAuMDEzNzUsIDAuMDA3NSwgLTAuMDAyNSwgLTAuMDA1IiwgXAotICAgICAgICAgICIwLjA0ODc1LCAwLjA0Mzc1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMTg3NSwgMC4wMDg3NSwgMCIsIFwKLSAgICAgICAgICAiMC4wNjEyNSwgMC4wNSwgMC4wNDM3NSwgMC4wMzEyNSwgMC4wMjUsIDAuMDE1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMDczNzUsIDAuMDYyNSwgMC4wNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAyNzUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMDgsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNSwgMC4wNDM3NSwgMC4wMzM3NSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4wOTYyNSwgMC4wODUsIDAuMDcyNSwgMC4wNjYyNSwgMC4wNiwgMC4wNSwgMC4wNDEyNSIsIFwKLSAgICAgICAgICAiMC4xMDUsIDAuMDkzNzUsIDAuMDgxMjUsIDAuMDc1LCAwLjA2ODc1LCAwLjA1ODc1LCAwLjA1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQzNzUsIDAuMDMyNSwgMC4wMTM3NSwgMC4wMDEyNSwgLTAuMDExMjUsIC0wLjAyNzUsIC0wLjAzNjI1IiwgXAotICAgICAgICAgICIwLjA0ODc1LCAwLjAzNzUsIDAuMDI1LCAwLjAxMjUsIDAsIC0wLjAxNjI1LCAtMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4wNjEyNSwgMC4wNSwgMC4wMzc1LCAwLjAxODc1LCAwLjAxMjUsIC0wLjAxLCAtMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4wNjc1LCAwLjA1NjI1LCAwLjA0Mzc1LCAwLjAzMTI1LCAwLjAxODc1LCAwLjAwMjUsIC0wLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMDczNzUsIDAuMDYyNSwgMC4wNSwgMC4wMzc1LCAwLjAyNSwgMC4wMDg3NSwgMCIsIFwKLSAgICAgICAgICAiMC4wODM3NSwgMC4wNzI1LCAwLjA2LCAwLjA0NzUsIDAuMDM1LCAwLjAxODc1LCAwLjAxIiwgXAotICAgICAgICAgICIwLjA5MjUsIDAuMDgxMjUsIDAuMDY4NzUsIDAuMDU2MjUsIDAuMDQzNzUsIDAuMDI3NSwgMC4wMTg3NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAyLjAzMzk0OwotICAgIGZ1bmN0aW9uIDogIk4zNSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3NlbnNlIDogbm9uX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiByaXNpbmdfZWRnZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTYwNTksIDAuMTUzODUsIDAuMTg5ODY4LCAwLjIxNTU0LCAwLjI1NjYwMiwgMC4yOTI1MjQsIDAuMzQzODQzIiwgXAotICAgICAgICAgICIwLjEyNjE3LCAwLjE2Mzk1MiwgMC4xOTk5NDIsIDAuMjI1NjE1LCAwLjI2NjY3NiwgMC4zMDI1OTgsIDAuMzUzODkiLCBcCi0gICAgICAgICAgIjAuMTM4ODM3LCAwLjE3NjYyMiwgMC4yMTI2MTYsIDAuMjM4MjksIDAuMjc5MzQ5LCAwLjMxNTI3LCAwLjM2NjU5MiIsIFwKLSAgICAgICAgICAiMC4xNTEwMjIsIDAuMTg4ODE4LCAwLjIyNDgwNywgMC4yNTA0ODYsIDAuMjkxNTQsIDAuMzI3NDY5LCAwLjM3ODc4MiIsIFwKLSAgICAgICAgICAiMC4xNjIxMjcsIDAuMTk5OTEyLCAwLjIzNTkwNCwgMC4yNjE1ODIsIDAuMzAyNjQsIDAuMzM4NTYzLCAwLjM4OTg3OSIsIFwKLSAgICAgICAgICAiMC4xNzc1ODUsIDAuMjE1NDAxLCAwLjI1MTM5NCwgMC4yNzcwNzMsIDAuMzE4MTMxLCAwLjM1NDA1NCwgMC40MDUzNyIsIFwKLSAgICAgICAgICAiMC4xODk0NiwgMC4yMjcyNTYsIDAuMjYzMjQ2LCAwLjI4ODkyNSwgMC4zMjk5ODIsIDAuMzY1OTA0LCAwLjQxNzIyIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDIxOTU0LCAwLjA5MjI3OSwgMC4xNjU1MDQsIDAuMjE4MjA3LCAwLjMwMzA1NywgMC4zNzcyMTEsIDAuNDgyNzIyIiwgXAotICAgICAgICAgICIwLjAyMTk4MSwgMC4wOTIyODcsIDAuMTY1NTA3LCAwLjIxODE4NiwgMC4zMDMwNDYsIDAuMzc3MjA2LCAwLjQ4MzExIiwgXAotICAgICAgICAgICIwLjAyMTk1NCwgMC4wOTIyNTUsIDAuMTY1Mzg3LCAwLjIxODEzMSwgMC4zMDMwNiwgMC4zNzcxODEsIDAuNDgyMDkyIiwgXAotICAgICAgICAgICIwLjAyMjA2NywgMC4wOTIzMDUsIDAuMTY1NDEsIDAuMjE4MTgsIDAuMzAzMDYzLCAwLjM3NzI0MSwgMC40ODIwODgiLCBcCi0gICAgICAgICAgIjAuMDIxOTQ5LCAwLjA5MjI2MywgMC4xNjU0OTYsIDAuMjE4MTc0LCAwLjMwMzA2OCwgMC4zNzcyMDksIDAuNDgyMzk3IiwgXAotICAgICAgICAgICIwLjAyMTk2LCAwLjA5MjI3MywgMC4xNjU1MDYsIDAuMjE4MTc1LCAwLjMwMzA1OCwgMC4zNzcyMTcsIDAuNDgzMTczIiwgXAotICAgICAgICAgICIwLjAyMjA5NSwgMC4wOTIyNzgsIDAuMTY1NTEsIDAuMjE4MTc4LCAwLjMwMzA1OCwgMC4zNzcyMTIsIDAuNDgzMTcyIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTM5ODUyLCAwLjE3OTg1OCwgMC4yMTc5NjMsIDAuMjQ1MTIxLCAwLjI4ODU1NiwgMC4zMjY1NDUsIDAuMzgwODEyIiwgXAotICAgICAgICAgICIwLjE1MDAxMiwgMC4xOTAwMjUsIDAuMjI4MTI5LCAwLjI1NTI5NywgMC4yOTg3MjUsIDAuMzM2NzE0LCAwLjM5MDk4MiIsIFwKLSAgICAgICAgICAiMC4xNjI3NzEsIDAuMjAyNzgsIDAuMjQwODg2LCAwLjI2ODA1NCwgMC4zMTE0ODksIDAuMzQ5NDc0LCAwLjQwMzczOSIsIFwKLSAgICAgICAgICAiMC4xNzUwOTMsIDAuMjE1MDkzLCAwLjI1MzE5NSwgMC4yODAzNjIsIDAuMzIzNzkxLCAwLjM2MTc4MSwgMC40MTYwNDkiLCBcCi0gICAgICAgICAgIjAuMTg2MTE1LCAwLjIyNjEyMSwgMC4yNjQyMjMsIDAuMjkxMzksIDAuMzM0ODE4LCAwLjM3MjgwOCwgMC40MjcwNzUiLCBcCi0gICAgICAgICAgIjAuMjAxNTk1LCAwLjI0MTYwNiwgMC4yNzk3MTcsIDAuMzA2ODg1LCAwLjM1MDMwNiwgMC4zODgyOTUsIDAuNDQyNTYzIiwgXAotICAgICAgICAgICIwLjIxMzQ1NiwgMC4yNTM0NzEsIDAuMjkxNTg0LCAwLjMxODc1MSwgMC4zNjIxNzMsIDAuNDAwMTYyLCAwLjQ1NDQzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDIyNzA3LCAwLjA5NTk5OCwgMC4xNzIwMywgMC4yMjY2ODksIDAuMzE0NTgyLCAwLjM5MTUxMywgMC41MDI1NzciLCBcCi0gICAgICAgICAgIjAuMDIyNywgMC4wOTU5ODMsIDAuMTcxOTI3LCAwLjIyNjc5MywgMC4zMTQ1ODEsIDAuMzkxNTE0LCAwLjUwMjUzNiIsIFwKLSAgICAgICAgICAiMC4wMjI3MDEsIDAuMDk1OTExLCAwLjE3MTkyNSwgMC4yMjY3NjgsIDAuMzE0NjA1LCAwLjM5MTUyNSwgMC41MDE3OTgiLCBcCi0gICAgICAgICAgIjAuMDIyNzA3LCAwLjA5NTkxMSwgMC4xNzE5MjYsIDAuMjI2NzY4LCAwLjMxNDU4NSwgMC4zOTE1MjQsIDAuNTAyNTkxIiwgXAotICAgICAgICAgICIwLjAyMjY5NCwgMC4wOTU5OCwgMC4xNzE5MjUsIDAuMjI2Nzg1LCAwLjMxNDU3OSwgMC4zOTE1MTUsIDAuNTAyNTY2IiwgXAotICAgICAgICAgICIwLjAyMjcwMSwgMC4wOTU5OTgsIDAuMTcxOTg3LCAwLjIyNjcxNywgMC4zMTQ1ODIsIDAuMzkxNTExLCAwLjUwMjUyNyIsIFwKLSAgICAgICAgICAiMC4wMjI3MjMsIDAuMDk1OTk5LCAwLjE3MjAzMSwgMC4yMjY3MTgsIDAuMzE0NTgxLCAwLjM5MTUxMiwgMC41MDI1MjgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiU04iOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHByZXNldDsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDEyMjcsIDAuMTM4OTIzLCAwLjE3NDkyNywgMC4yMDA2MDcsIDAuMjQxNjcxLCAwLjI3NzYwMiwgMC4zMjg5ODEiLCBcCi0gICAgICAgICAgIjAuMTEwOTU2LCAwLjE0ODY2MywgMC4xODQ2NjgsIDAuMjEwMzQ5LCAwLjI1MTQyLCAwLjI4NzM0MiwgMC4zMzg3MjIiLCBcCi0gICAgICAgICAgIjAuMTIzMjcxLCAwLjE2MDk5NiwgMC4xOTY5OTEsIDAuMjIyNjY4LCAwLjI2MzczNywgMC4yOTk2NjUsIDAuMzUxMDUzIiwgXAotICAgICAgICAgICIwLjEzNTI1NiwgMC4xNzI5NjYsIDAuMjA4OTcsIDAuMjM0NjUxLCAwLjI3NTcyMSwgMC4zMTE2NDMsIDAuMzYzMDI3IiwgXAotICAgICAgICAgICIwLjE0NjczLCAwLjE4NDQ3MiwgMC4yMjA0NjIsIDAuMjQ2MTE5LCAwLjI4NzE5LCAwLjMyMzE0NiwgMC4zNzQ1MjIiLCBcCi0gICAgICAgICAgIjAuMTYzNDI5LCAwLjIwMTEzOSwgMC4yMzcxNjIsIDAuMjYyODQ2LCAwLjMwMzkxLCAwLjMzOTgzOCwgMC4zOTEyMzEiLCBcCi0gICAgICAgICAgIjAuMTc2NDEzLCAwLjIxNDE4NSwgMC4yNTAxNjUsIDAuMjc1ODQyLCAwLjMxNjkwNiwgMC4zNTI4MzUsIDAuNDA0MjI0Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDIxOTQsIDAuMDkyMTkyLCAwLjE2NTM2MiwgMC4yMTg0MTcsIDAuMzAzMTM2LCAwLjM3NzI1NiwgMC40ODM0NzMiLCBcCi0gICAgICAgICAgIjAuMDIxOTc4LCAwLjA5MjE5MSwgMC4xNjU0MTMsIDAuMjE4MDM4LCAwLjMwMzEyMSwgMC4zNzY4ODUsIDAuNDgzNDczIiwgXAotICAgICAgICAgICIwLjAyMTk0MywgMC4wOTIxOSwgMC4xNjU0MDIsIDAuMjE4Mzc0LCAwLjMwMzEyMiwgMC4zNzcyNDcsIDAuNDgyNzA4IiwgXAotICAgICAgICAgICIwLjAyMTk5NiwgMC4wOTIyMDIsIDAuMTY1NDEyLCAwLjIxNzkyLCAwLjMwMzEyNCwgMC4zNzY4ODQsIDAuNDgzNDgiLCBcCi0gICAgICAgICAgIjAuMDIxOTY1LCAwLjA5MjE4OCwgMC4xNjU0MTQsIDAuMjE4Mzk4LCAwLjMwMzE0LCAwLjM3NzM4NiwgMC40ODI1MiIsIFwKLSAgICAgICAgICAiMC4wMjIxOTYsIDAuMDkyMjUsIDAuMTY1NDM0LCAwLjIxODM5OCwgMC4zMDMxMTMsIDAuMzc3MjE1LCAwLjQ4MzM0OSIsIFwKLSAgICAgICAgICAiMC4wMjIyNzEsIDAuMDkyMjU0LCAwLjE2NTQzMywgMC4yMTgzNTQsIDAuMzAzMDksIDAuMzc3MjY2LCAwLjQ4MzM2MiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxNjI5MSwgMC4wMTY2NTcsIDAuMDE2NzM0LCAwLjAxNjc1OSwgMC4wMTY3ODIsIDAuMDE2Nzk0LCAwLjAxNjgwNCIsIFwKLSAgICAgICAgICAiMC4wMTYyNzcsIDAuMDE2NjMxLCAwLjAxNjcwNywgMC4wMTY3MzgsIDAuMDE2NzYxLCAwLjAxNjc2MSwgMC4wMTY3NzYiLCBcCi0gICAgICAgICAgIjAuMDE2MjQ2LCAwLjAxNjYwOCwgMC4wMTY2OSwgMC4wMTY3MDgsIDAuMDE2NzM0LCAwLjAxNjczOSwgMC4wMTY3NTYiLCBcCi0gICAgICAgICAgIjAuMDE2MjQ5LCAwLjAxNjYwNiwgMC4wMTY2NzksIDAuMDE2NzEyLCAwLjAxNjczNywgMC4wMTY3NSwgMC4wMTY3NjIiLCBcCi0gICAgICAgICAgIjAuMDE2MjUyLCAwLjAxNjYxNiwgMC4wMTY2OTMsIDAuMDE2NzE4LCAwLjAxNjc0MSwgMC4wMTY3NTIsIDAuMDE2NzYzIiwgXAotICAgICAgICAgICIwLjAxNjI1NSwgMC4wMTY2MTksIDAuMDE2Njk3LCAwLjAxNjcyNywgMC4wMTY3NDcsIDAuMDE2NzU3LCAwLjAxNjc2NyIsIFwKLSAgICAgICAgICAiMC4wMTYyOTksIDAuMDE2NjU2LCAwLjAxNjczMiwgMC4wMTY3NTksIDAuMDE2Nzc5LCAwLjAxNjc5MywgMC4wMTY4MDQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxNTYxNywgMC4wMTYwNzUsIDAuMDE2MTg4LCAwLjAxNjIyNywgMC4wMTYyNjMsIDAuMDE2MjgyLCAwLjAxNjI5OSIsIFwKLSAgICAgICAgICAiMC4wMTU1NzksIDAuMDE2MDQyLCAwLjAxNjE1OCwgMC4wMTYxOTcsIDAuMDE2MjM0LCAwLjAxNjI1MywgMC4wMTYyNyIsIFwKLSAgICAgICAgICAiMC4wMTU1NzcsIDAuMDE2MDQsIDAuMDE2MTU3LCAwLjAxNjE5NywgMC4wMTYyMzMsIDAuMDE2MjUzLCAwLjAxNjI3IiwgXAotICAgICAgICAgICIwLjAxNTYyMSwgMC4wMTYwNjksIDAuMDE2MTgxLCAwLjAxNjIxOSwgMC4wMTYyNTUsIDAuMDE2MjczLCAwLjAxNjI5IiwgXAotICAgICAgICAgICIwLjAxNTYzOCwgMC4wMTYwOTUsIDAuMDE2MjA5LCAwLjAxNjI0NywgMC4wMTYyODMsIDAuMDE2MzAyLCAwLjAxNjMxOSIsIFwKLSAgICAgICAgICAiMC4wMTU2NTIsIDAuMDE2MTE2LCAwLjAxNjIzMiwgMC4wMTYyNzEsIDAuMDE2MzA4LCAwLjAxNjMyNywgMC4wMTYzNDUiLCBcCi0gICAgICAgICAgIjAuMDE1Njg4LCAwLjAxNjE1MSwgMC4wMTYyNjgsIDAuMDE2MzA4LCAwLjAxNjM0NCwgMC4wMTYzNjQsIDAuMDE2MzgyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiU04iOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE3NTQ1LCAwLjAxNzkwNSwgMC4wMTc5ODQsIDAuMDE4MDEsIDAuMDE4MDM0LCAwLjAxODA0NiwgMC4wMTgwNTciLCBcCi0gICAgICAgICAgIjAuMDE3NTA0LCAwLjAxNzg2NCwgMC4wMTc5NDQsIDAuMDE3OTcsIDAuMDE4LCAwLjAxODAwOSwgMC4wMTgwMTciLCBcCi0gICAgICAgICAgIjAuMDE3NDg0LCAwLjAxNzgzNywgMC4wMTc5MTYsIDAuMDE3OTQyLCAwLjAxNzk3MywgMC4wMTc5NywgMC4wMTc5ODkiLCBcCi0gICAgICAgICAgIjAuMDE3NDUyLCAwLjAxNzgxMiwgMC4wMTc4OTIsIDAuMDE3OTIzLCAwLjAxNzk0OSwgMC4wMTc5NTUsIDAuMDE3OTY3IiwgXAotICAgICAgICAgICIwLjAxNzQ1MywgMC4wMTc4MDIsIDAuMDE3ODgxLCAwLjAxNzkxNSwgMC4wMTc5MjUsIDAuMDE3OTQzLCAwLjAxNzk1NCIsIFwKLSAgICAgICAgICAiMC4wMTc0MjMsIDAuMDE3Nzg4LCAwLjAxNzg3MiwgMC4wMTc5LCAwLjAxNzkyNSwgMC4wMTc5MzksIDAuMDE3OTUxIiwgXAotICAgICAgICAgICIwLjAxNzQ0NiwgMC4wMTc3OTQsIDAuMDE3ODk1LCAwLjAxNzkyMywgMC4wMTc5NTEsIDAuMDE3OTYxLCAwLjAxNzk3OCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihzY2FsYXIpIHsKLSAgICAgICAgdmFsdWVzKCIwIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTTikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNzk3Mzk7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNjY4Njg7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNzk3Mzk7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNjUzLCAwLjAwMDY1MiwgMC4wMDA2NTIsIDAuMDAwNjUyLCAwLjAwMDY1MiwgMC4wMDA2NTIsIDAuMDAwNjUxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNjYxLCAwLjAwMDY1NSwgMC4wMDA2NTQsIDAuMDAwNjU0LCAwLjAwMDY1NCwgMC4wMDA2NTQsIDAuMDAwNjU0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRCI7Ci0gICAgICBzZGZfY29uZCA6ICJEID09IDEnYjAiOwotICAgICAgZmFsbF9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMTAxMjI3LCAwLjExMDk1NSwgMC4xMjMyNzEsIDAuMTM1MjU2LCAwLjE0NjczLCAwLjE2MzQyOSwgMC4xNzY0MTIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiByZWNvdmVyeV9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEIjsKLSAgICAgIHNkZl9jb25kIDogIkQgPT0gMSdiMCI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQocmVjb3ZlcnlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2MjUsIC0wLjAwNSwgLTAuMDE3NSwgLTAuMDMsIC0wLjA0MjUsIC0wLjA1ODc1LCAtMC4wNzM3NSIsIFwKLSAgICAgICAgICAiMC4wMTc1LCAwLjAwNjI1LCAtMC4wMTI1LCAtMC4wMjUsIC0wLjAzNzUsIC0wLjA1Mzc1LCAtMC4wNjI1IiwgXAotICAgICAgICAgICIwLjAyMzc1LCAwLjAxMjUsIDAsIC0wLjAxMjUsIC0wLjAyNSwgLTAuMDQxMjUsIC0wLjA1NjI1IiwgXAotICAgICAgICAgICIwLjAzNjI1LCAwLjAyNSwgMC4wMTI1LCAwLCAtMC4wMTI1LCAtMC4wMjg3NSwgLTAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMDQ4NzUsIDAuMDM3NSwgMC4wMTg3NSwgMC4wMDYyNSwgLTAuMDA2MjUsIC0wLjAyMjUsIC0wLjAzMTI1IiwgXAotICAgICAgICAgICIwLjA2NSwgMC4wNTM3NSwgMC4wMzUsIDAuMDIyNSwgMC4wMSwgLTAuMDA2MjUsIC0wLjAxNSIsIFwKLSAgICAgICAgICAiMC4wOCwgMC4wNjg3NSwgMC4wNSwgMC4wMzc1LCAwLjAyNSwgMC4wMDg3NSwgMCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJlbW92YWxfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRCI7Ci0gICAgICBzZGZfY29uZCA6ICJEID09IDEnYjAiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHJlbW92YWxfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDMxMjUsIDAuMDQyNSwgMC4wNTUsIDAuMDY3NSwgMC4wOCwgMC4wOTYyNSwgMC4xMDUiLCBcCi0gICAgICAgICAgIjAuMDI2MjUsIDAuMDM3NSwgMC4wNSwgMC4wNjI1LCAwLjA2ODc1LCAwLjA4NSwgMC4xIiwgXAotICAgICAgICAgICIwLjAxMzc1LCAwLjAyNSwgMC4wMzc1LCAwLjA1LCAwLjA2MjUsIDAuMDc4NzUsIDAuMDg3NSIsIFwKLSAgICAgICAgICAiMC4wMDEyNSwgMC4wMTI1LCAwLjAyNSwgMC4wMzc1LCAwLjA1LCAwLjA2NjI1LCAwLjA3NSIsIFwKLSAgICAgICAgICAiLTAuMDA1LCAwLjAwNjI1LCAwLjAxODc1LCAwLjAzMTI1LCAwLjAzNzUsIDAuMDUzNzUsIDAuMDY4NzUiLCBcCi0gICAgICAgICAgIi0wLjAyMTI1LCAtMC4wMSwgMC4wMDI1LCAwLjAxNSwgMC4wMjc1LCAwLjAzNzUsIDAuMDUyNSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAxODc1LCAtMC4wMDYyNSwgMC4wMDYyNSwgMC4wMTI1LCAwLjAyODc1LCAwLjA0Mzc1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBERkZTUkhRWDEgKgotICogLS0tLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChERkZTUkhRWDEpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC40NTE5OTU7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgZmYgKE4zNSxRQklOVCkgewotICAgIG5leHRfc3RhdGUgOiAiRCI7Ci0gICAgY2xvY2tlZF9vbiA6ICJDSyI7Ci0gICAgY2xlYXIgOiAiKCFSTikiOwotICAgIHByZXNldCA6ICIoIVNOKSI7Ci0gICAgY2xlYXJfcHJlc2V0X3ZhcjEgOiBIOwotICB9Ci0gIHBpbihDSykgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjAwMzM0OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYwMDA3NjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2MDAzMzQ7Ci0gICAgY2xvY2sgOiB0cnVlOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzgzMywgMC4wMDM4MDgsIDAuMDAzNzk0LCAwLjAwMzc5NSwgMC4wMDM4MDUsIDAuMDAzODI5LCAwLjAwMzg0NyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwODMzNiwgMC4wMDgzMTUsIDAuMDA4MzA1LCAwLjAwODMwNywgMC4wMDgzMDgsIDAuMDA4MzMzLCAwLjAwODM0NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQmUk4mU04iOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1JOX0VRXzFfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjE2NDgzNywgMC4xNzQ5OTYsIDAuMTg3NzU4LCAwLjIwMDExNCwgMC4yMTEzMTEsIDAuMjI3MTUsIDAuMjM5MTU2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4xMjcxMzQsIDAuMTM3MDI5LCAwLjE0OTQzMywgMC4xNjExNjYsIDAuMTcxNjMsIDAuMTg2MDE2LCAwLjE5NjgzIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihEKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA3NzkyMTE7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNzc2ODY7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNzc5MjExOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzU3MywgMC4wMDM1NCwgMC4wMDM1MjIsIDAuMDAzNTEsIDAuMDAzNTA4LCAwLjAwMzUwOSwgMC4wMDM1MTQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDM5NDYsIDAuMDAzOTI2LCAwLjAwMzkxMiwgMC4wMDM5MDUsIDAuMDAzODk4LCAwLjAwMzksIDAuMDAzODk5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlJOJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIlJOX0VRXzFfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMTg3NSwgLTAuMDA3NSwgLTAuMDAxMjUsIDAuMDA1LCAwLjAxMTI1LCAwLjAxNSwgMC4wMjM3NSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMCwgMC4wMSwgMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDMxMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgLTAuMDAyNSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMDg3NSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA1NSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAxNSwgLTAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDY1LCAtMC4wNiwgLTAuMDQ3NSwgLTAuMDQxMjUsIC0wLjAzNSwgLTAuMDI1LCAtMC4wMjI1IiwgXAotICAgICAgICAgICItMC4wNzM3NSwgLTAuMDY4NzUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjAzMzc1LCAtMC4wMzEyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDI1LCAwLjAzNjI1LCAwLjA0ODc1LCAwLjA2MTI1LCAwLjA3Mzc1LCAwLjA4Mzc1LCAwLjA5ODc1IiwgXAotICAgICAgICAgICIwLjAyLCAwLjAyNSwgMC4wMzc1LCAwLjA1LCAwLjA2MjUsIDAuMDc4NzUsIDAuMDg3NSIsIFwKLSAgICAgICAgICAiMC4wMDc1LCAwLjAxODc1LCAwLjAzMTI1LCAwLjA0Mzc1LCAwLjA1NjI1LCAwLjA2NjI1LCAwLjA4MTI1IiwgXAotICAgICAgICAgICIwLjAwMTI1LCAwLjAxMjUsIDAuMDI1LCAwLjAzNzUsIDAuMDUsIDAuMDYsIDAuMDc1IiwgXAotICAgICAgICAgICIwLjAwMTI1LCAwLjAwNjI1LCAwLjAxODc1LCAwLjAzMTI1LCAwLjA0Mzc1LCAwLjA1Mzc1LCAwLjA2ODc1IiwgXAotICAgICAgICAgICItMC4wMDg3NSwgMC4wMDI1LCAwLjAxNSwgMC4wMjc1LCAwLjAzMzc1LCAwLjA1LCAwLjA1ODc1IiwgXAotICAgICAgICAgICItMC4wMTEyNSwgLTAuMDA2MjUsIDAuMDA2MjUsIDAuMDE4NzUsIDAuMDMxMjUsIDAuMDQxMjUsIDAuMDU2MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlJOJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIlJOX0VRXzFfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjg3NSwgMC4wNTc1LCAwLjA0NSwgMC4wMzI1LCAwLjAyLCAwLjAxLCAwLjAwMTI1IiwgXAotICAgICAgICAgICIwLjA4LCAwLjA2ODc1LCAwLjA1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDIxMjUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4wODYyNSwgMC4wNzUsIDAuMDYyNSwgMC4wNSwgMC4wMzc1LCAwLjAyNzUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMDk4NzUsIDAuMDg3NSwgMC4wNzUsIDAuMDYyNSwgMC4wNSwgMC4wNCwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4xMDUsIDAuMDkzNzUsIDAuMDgxMjUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNDYyNSwgMC4wMzc1IiwgXAotICAgICAgICAgICIwLjEyMTI1LCAwLjExLCAwLjA5NzUsIDAuMDg1LCAwLjA3MjUsIDAuMDYyNSwgMC4wNTM3NSIsIFwKLSAgICAgICAgICAiMC4xMywgMC4xMTg3NSwgMC4xMDYyNSwgMC4wOTM3NSwgMC4wODEyNSwgMC4wNzEyNSwgMC4wNjI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM3NSwgMC4wMjYyNSwgMC4wMTM3NSwgMC4wMDEyNSwgLTAuMDExMjUsIC0wLjAyNzUsIC0wLjA0MjUiLCBcCi0gICAgICAgICAgIjAuMDQ4NzUsIDAuMDM3NSwgMC4wMjUsIDAuMDEyNSwgMCwgLTAuMDIyNSwgLTAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMDU1LCAwLjA0Mzc1LCAwLjAzMTI1LCAwLjAxODc1LCAwLjAwNjI1LCAtMC4wMSwgLTAuMDI1IiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDU2MjUsIDAuMDQzNzUsIDAuMDMxMjUsIDAuMDE4NzUsIC0wLjAwMzc1LCAtMC4wMTI1IiwgXAotICAgICAgICAgICIwLjA3Mzc1LCAwLjA2MjUsIDAuMDUsIDAuMDM3NSwgMC4wMjUsIDAuMDA4NzUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICIwLjA4Mzc1LCAwLjA3MjUsIDAuMDYsIDAuMDQ3NSwgMC4wMzUsIDAuMDE4NzUsIDAuMDAzNzUiLCBcCi0gICAgICAgICAgIjAuMDkyNSwgMC4wODEyNSwgMC4wNjg3NSwgMC4wNTYyNSwgMC4wNDM3NSwgMC4wMjc1LCAwLjAxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFEpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4yNDU1ODM7Ci0gICAgZnVuY3Rpb24gOiAiTjM1IjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBub25fdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJpc2luZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNDYxMzIsIDAuMTcwNzIsIDAuMzA5NzM5LCAwLjQzMjM3NywgMC41OTYwMDEsIDAuOTIzMDA5LCAxLjEyNzQyIiwgXAotICAgICAgICAgICIwLjE1NjM0NCwgMC4xODA4OTQsIDAuMzE5OTE0LCAwLjQ0MjU0OSwgMC42MDYxOTEsIDAuOTMzMTcxLCAxLjEzNzY3IiwgXAotICAgICAgICAgICIwLjE2ODk0NiwgMC4xOTM1MjEsIDAuMzMyNTQxLCAwLjQ1NTE3NywgMC42MTg4MjYsIDAuOTQ1OTEyLCAxLjE1MDI1IiwgXAotICAgICAgICAgICIwLjE4MTI0MiwgMC4yMDU4MTgsIDAuMzQ0ODM2LCAwLjQ2NzQ3NCwgMC42MzExMTksIDAuOTU4MTY5LCAxLjE2MjUyIiwgXAotICAgICAgICAgICIwLjE5MjM5LCAwLjIxNjk2OCwgMC4zNTU5OSwgMC40Nzg2MjEsIDAuNjQyMjYyLCAwLjk2OTI0MSwgMS4xNzM4IiwgXAotICAgICAgICAgICIwLjIwNzQ1NiwgMC4yMzIwMzcsIDAuMzcxMDU1LCAwLjQ5MzY5NCwgMC42NTcyNTYsIDAuOTg0MzQ2LCAxLjE4ODcxIiwgXAotICAgICAgICAgICIwLjIxOTc4NiwgMC4yNDQzNjEsIDAuMzgzMzc0LCAwLjUwNjAxNCwgMC42Njk2MzcsIDAuOTk2NjI2LCAxLjIwMTE3Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5MjAzMiwgMC4xNDE3NjUsIDAuNDI3MDc5LCAwLjY3OTY4NywgMS4wMTc3OSwgMS42OTE5LCAyLjExMDcyIiwgXAotICAgICAgICAgICIwLjA5MjA0MiwgMC4xNDE3NjUsIDAuNDI3NTA3LCAwLjY4MDI0NiwgMS4wMTc4MSwgMS42OTE4NCwgMi4xMTM0OSIsIFwKLSAgICAgICAgICAiMC4wOTIwMjQsIDAuMTQxNzgsIDAuNDI3NTI0LCAwLjY3OTU3NSwgMS4wMTc4MywgMS42OTIxLCAyLjExMzM2IiwgXAotICAgICAgICAgICIwLjA5MjAyOSwgMC4xNDE3MjMsIDAuNDI3MDc3LCAwLjY3OTU2MSwgMS4wMTc4MiwgMS42OTE5OCwgMi4xMTA4MSIsIFwKLSAgICAgICAgICAiMC4wOTE5OCwgMC4xNDE3NjMsIDAuNDI3NTI0LCAwLjY4MDIyNywgMS4wMTc4LCAxLjY5MTg0LCAyLjExMzYxIiwgXAotICAgICAgICAgICIwLjA5MjAyNiwgMC4xNDE3NjMsIDAuNDI3MDk2LCAwLjY3OTYxMywgMS4wMTY0NiwgMS42ODk3NywgMi4xMTMyIiwgXAotICAgICAgICAgICIwLjA5MjA0NiwgMC4xNDE3ODIsIDAuNDI3NDkyLCAwLjY3OTU2NiwgMS4wMTc3NSwgMS42OTE4MSwgMi4xMTM1NCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNjQ4MzcsIDAuMTg5NjI5LCAwLjMyOTgwMywgMC40NTM0OTksIDAuNjE4MzQ0LCAwLjk0ODAzNSwgMS4xNTQxMyIsIFwKLSAgICAgICAgICAiMC4xNzQ5OTYsIDAuMTk5Nzg4LCAwLjMzOTk2MSwgMC40NjM2NTEsIDAuNjI4NTA0LCAwLjk1ODE5MiwgMS4xNjQyOSIsIFwKLSAgICAgICAgICAiMC4xODc3NTgsIDAuMjEyNTUxLCAwLjM1MjcyOSwgMC40NzY0MiwgMC42NDEyNjMsIDAuOTcwOTU4LCAxLjE3NzA0IiwgXAotICAgICAgICAgICIwLjIwMDExNCwgMC4yMjQ5MDYsIDAuMzY1MDc5LCAwLjQ4ODc3LCAwLjY1MzYxOSwgMC45ODMzMTEsIDEuMTg5NDEiLCBcCi0gICAgICAgICAgIjAuMjExMzExLCAwLjIzNjEwMiwgMC4zNzYyNzYsIDAuNDk5OTYxLCAwLjY2NDgxNiwgMC45OTQ1MDYsIDEuMjAwNiIsIFwKLSAgICAgICAgICAiMC4yMjcxNSwgMC4yNTE5NDIsIDAuMzkyMTE1LCAwLjUxNTgwNiwgMC42ODA2NTMsIDEuMDEwMzUsIDEuMjE2NDQiLCBcCi0gICAgICAgICAgIjAuMjM5MTU2LCAwLjI2Mzk0OSwgMC40MDQxMjMsIDAuNTI3ODExLCAwLjY5MjY2MywgMS4wMjIzNSwgMS4yMjg0NSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTA1NTMsIDAuMTM5NjM4LCAwLjQyMDkzMiwgMC42NzEzMTUsIDEuMDAzODgsIDEuNjY3MDYsIDIuMDgxODYiLCBcCi0gICAgICAgICAgIjAuMDkwNTY5LCAwLjEzOTY0NiwgMC40MjA5NjEsIDAuNjcxMzIsIDEuMDAzODYsIDEuNjY3OTEsIDIuMDgxODYiLCBcCi0gICAgICAgICAgIjAuMDkwNTA1LCAwLjEzOTY0OCwgMC40MjE3MzQsIDAuNjcxMzExLCAxLjAwMzkxLCAxLjY2NTY4LCAyLjA4MTciLCBcCi0gICAgICAgICAgIjAuMDkwNTYsIDAuMTM5NjI5LCAwLjQyMDk0OSwgMC42NzEzMTksIDEuMDAzODcsIDEuNjY3MjUsIDIuMDgxNzgiLCBcCi0gICAgICAgICAgIjAuMDkwNTY1LCAwLjEzOTYzOCwgMC40MjA5ODgsIDAuNjcxMzE4LCAxLjAwMzg3LCAxLjY2NzgyLCAyLjA4MTg2IiwgXAotICAgICAgICAgICIwLjA5MDU0OSwgMC4xMzk2MzksIDAuNDIwOTQ5LCAwLjY3MTMyLCAxLjAwMzkxLCAxLjY2NTY4LCAyLjA4MTg0IiwgXAotICAgICAgICAgICIwLjA5MDU1NywgMC4xMzk2MzUsIDAuNDIwOTY3LCAwLjY3MTMyLCAxLjAwMzg5LCAxLjY2NzE3LCAyLjA4MjA1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiBjbGVhcjsKLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTkxNDE5LCAwLjIxNjIyOCwgMC4zNTY0MTIsIDAuNDgwMDgyLCAwLjY0NDkyMywgMC45NzQ2NDgsIDEuMTgwNzEiLCBcCi0gICAgICAgICAgIjAuMjAxMjcyLCAwLjIyNjA2NywgMC4zNjYyNDcsIDAuNDg5OTU2LCAwLjY1NDc3MywgMC45ODQ0OTksIDEuMTkwNTciLCBcCi0gICAgICAgICAgIjAuMjEzMjkxLCAwLjIzODA3OSwgMC4zNzgyNjQsIDAuNTAxOTQyLCAwLjY2Njc4NiwgMC45OTY1MTEsIDEuMjAyNTgiLCBcCi0gICAgICAgICAgIjAuMjI0Mjk4LCAwLjI0OTA4OSwgMC4zODkyNzYsIDAuNTEyOTQ4LCAwLjY3Nzc5NSwgMS4wMDc1MiwgMS4yMTM1OCIsIFwKLSAgICAgICAgICAiMC4yMzM2OSwgMC4yNTg0OTksIDAuMzk4NjgsIDAuNTIyMzg1LCAwLjY4NzE5NCwgMS4wMTY5MiwgMS4yMjI5OSIsIFwKLSAgICAgICAgICAiMC4yNDY4NTQsIDAuMjcxNjQ0LCAwLjQxMTgzMywgMC41MzU1MDIsIDAuNzAwMzUxLCAxLjAzMDA3LCAxLjIzNjE0IiwgXAotICAgICAgICAgICIwLjI1Njc1MywgMC4yODE1NDMsIDAuNDIxNzM5LCAwLjU0NTM4MiwgMC43MTAyNTEsIDEuMDM5OTcsIDEuMjQ2MDUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDkwNDksIDAuMTM5NDY3LCAwLjQyMTk0MiwgMC42NzEyODEsIDEuMDA0MjUsIDEuNjY5MDMsIDIuMDg1NjciLCBcCi0gICAgICAgICAgIjAuMDkwNDk3LCAwLjEzOTU3NSwgMC40MjExNywgMC42NzEyNSwgMS4wMDQyNSwgMS42NjcxMiwgMi4wODE3NyIsIFwKLSAgICAgICAgICAiMC4wOTA1MDQsIDAuMTM5NTc1LCAwLjQyMTg4MywgMC42NzEyODQsIDEuMDA0MjUsIDEuNjY3OSwgMi4wODE0OCIsIFwKLSAgICAgICAgICAiMC4wOTA1MSwgMC4xMzk1NzEsIDAuNDIxODkyLCAwLjY3MTIwOCwgMS4wMDQyNCwgMS42NjY4NCwgMi4wODU3MSIsIFwKLSAgICAgICAgICAiMC4wOTA1MDksIDAuMTM5NTcsIDAuNDIxOTI0LCAwLjY3MTAyOSwgMS4wMDQyNCwgMS42NjkwMSwgMi4wODQ1IiwgXAotICAgICAgICAgICIwLjA5MDQ1MSwgMC4xMzk1NTIsIDAuNDIxODg4LCAwLjY3MTI0NSwgMS4wMDQyNCwgMS42NjczNiwgMi4wODU2OSIsIFwKLSAgICAgICAgICAiMC4wOTA0ODUsIDAuMTM5NTY4LCAwLjQyMTkzLCAwLjY3MTQyLCAxLjAwNDIzLCAxLjY2NjczLCAyLjA4NTg1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiBwcmVzZXQ7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEyOTA3OSwgMC4xNTM2NDcsIDAuMjkyNywgMC40MTUzNjMsIDAuNTc4ODg3LCAwLjkwNTk0NCwgMS4xMTAzNSIsIFwKLSAgICAgICAgICAiMC4xMzgzMiwgMC4xNjI4ODcsIDAuMzAxOTA3LCAwLjQyNDU4LCAwLjU4ODEwMSwgMC45MTUxOCwgMS4xMTk1OSIsIFwKLSAgICAgICAgICAiMC4xNTA1NjEsIDAuMTc1MTI1LCAwLjMxNDExNSwgMC40MzY4MDgsIDAuNjAwMzM2LCAwLjkyNzQxMiwgMS4xMzE4MiIsIFwKLSAgICAgICAgICAiMC4xNjI4MDcsIDAuMTg3Mzc0LCAwLjMyNjM2NCwgMC40NDkwOTcsIDAuNjEyNTkzLCAwLjkzOTY2MSwgMS4xNDQwOCIsIFwKLSAgICAgICAgICAiMC4xNzQzNjQsIDAuMTk4OTIxLCAwLjMzNzk0MiwgMC40NjA2NDUsIDAuNjI0MTMzLCAwLjk1MTIyMiwgMS4xNTU2MiIsIFwKLSAgICAgICAgICAiMC4xOTA3OCwgMC4yMTUzNCwgMC4zNTQzNTksIDAuNDc3MDYsIDAuNjQwNTU1LCAwLjk2NzcyNSwgMS4xNzIwNCIsIFwKLSAgICAgICAgICAiMC4yMDM3MjcsIDAuMjI4Mjg5LCAwLjM2NzI5OSwgMC40OTAwMTQsIDAuNjUzNTI5LCAwLjk4MDYzOSwgMS4xODUxNSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTE2MiwgMC4xNDEzMSwgMC40Mjc2NjMsIDAuNjgwNTc1LCAxLjAxNzc2LCAxLjY5MjAzLCAyLjExMzYzIiwgXAotICAgICAgICAgICIwLjA5MTU5OSwgMC4xNDE1NzEsIDAuNDI3NjYxLCAwLjY4MDY2OSwgMS4wMTc1NywgMS42OTIxMiwgMi4xMTM0NSIsIFwKLSAgICAgICAgICAiMC4wOTE2MTMsIDAuMTQxNDMzLCAwLjQyNzY1NywgMC42ODA2NywgMS4wMTc3MSwgMS42OTIxLCAyLjExMjk5IiwgXAotICAgICAgICAgICIwLjA5MTYxNCwgMC4xNDE0ODYsIDAuNDI3NjU4LCAwLjY4MDUzNCwgMS4wMTc2NCwgMS42OTI0MywgMi4xMTEwOCIsIFwKLSAgICAgICAgICAiMC4wOTE3MzksIDAuMTQxNSwgMC40Mjc2NjcsIDAuNjgwNTQ3LCAxLjAxNzcyLCAxLjY5MTkyLCAyLjExMzU0IiwgXAotICAgICAgICAgICIwLjA5MTgzNiwgMC4xNDE1MjMsIDAuNDI3NjI3LCAwLjY4MDU0NCwgMS4wMTc3NCwgMS42OTIwOSwgMi4xMTM4MSIsIFwKLSAgICAgICAgICAiMC4wOTE3OTIsIDAuMTQxNTE5LCAwLjQyNzYyMiwgMC42ODA0NjYsIDEuMDE3NTMsIDEuNjkxODgsIDIuMTEzMzgiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTY5MjEyLCAwLjE5NDAxNSwgMC4zMzQxOTMsIDAuNDU3ODksIDAuNjIyNzIsIDAuOTUyNDQ1LCAxLjE1ODU5IiwgXAotICAgICAgICAgICIwLjE3ODUwNiwgMC4yMDMzMTUsIDAuMzQzNSwgMC40NjcxOTEsIDAuNjMyMDQ5LCAwLjk2MTgyNiwgMS4xNjc5MyIsIFwKLSAgICAgICAgICAiMC4xODkyODIsIDAuMjE0MDc3LCAwLjM1NDI1MSwgMC40Nzc5MzIsIDAuNjQyNzgyLCAwLjk3MjQ5MiwgMS4xNzg1OCIsIFwKLSAgICAgICAgICAiMC4xOTk3NzQsIDAuMjI0NTg0LCAwLjM2NDc2OCwgMC40ODg0NjQsIDAuNjUzMjkxLCAwLjk4MzAwOCwgMS4xODkxOCIsIFwKLSAgICAgICAgICAiMC4yMTAzNjMsIDAuMjM1MTc3LCAwLjM3NTM2NywgMC40OTkwNDUsIDAuNjYzODcyLCAwLjk5MzU4OCwgMS4xOTk3NCIsIFwKLSAgICAgICAgICAiMC4yMjY3MDUsIDAuMjUxNTExLCAwLjM5MTY5LCAwLjUxNTM1LCAwLjY4MDIxNiwgMS4wMDk5MywgMS4yMTYwMiIsIFwKLSAgICAgICAgICAiMC4yNDA0NSwgMC4yNjUyNDYsIDAuNDA1NDE1LCAwLjUyOTEwMywgMC42OTM5NTYsIDEuMDIzNjUsIDEuMjI5NzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDkwNDc2LCAwLjEzOTUxNywgMC40MjExMzMsIDAuNjcxMjk5LCAxLjAwNDI5LCAxLjY2NjcsIDIuMDg1OTkiLCBcCi0gICAgICAgICAgIjAuMDkwNDg2LCAwLjEzOTU0MiwgMC40MjA5OTUsIDAuNjcxMjY4LCAxLjAwNDA1LCAxLjY2OTc2LCAyLjA4NTg2IiwgXAotICAgICAgICAgICIwLjA5MDUxNywgMC4xMzk1MzQsIDAuNDIxMjgyLCAwLjY3MTA1LCAxLjAwNDE1LCAxLjY2ODY0LCAyLjA4MTk5IiwgXAotICAgICAgICAgICIwLjA5MDUxLCAwLjEzOTU0NiwgMC40MjEwMjMsIDAuNjcxMjM3LCAxLjAwNDI0LCAxLjY2ODU4LCAyLjA4NTgiLCBcCi0gICAgICAgICAgIjAuMDkwNDc4LCAwLjEzOTQ2NiwgMC40MjE4OSwgMC42NzEyMjYsIDEuMDA0MjIsIDEuNjY4NjQsIDIuMDg1ODIiLCBcCi0gICAgICAgICAgIjAuMDkwNDgyLCAwLjEzOTU0NSwgMC40MjEyMjMsIDAuNjcxMzI0LCAxLjAwNDE5LCAxLjY2NjQ3LCAyLjA4NTc4IiwgXAotICAgICAgICAgICIwLjA5MDU1MSwgMC4xMzk0OTUsIDAuNDIxNjM5LCAwLjY3MTIxOCwgMS4wMDQwMiwgMS42NjczMywgMi4wODQ2NiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDgzNjIsIDAuMDA4MzY2LCAwLjAwODM3MiwgMC4wMDgzNzIsIDAuMDA4MzczLCAwLjAwODM3NCwgMC4wMDgzNzMiLCBcCi0gICAgICAgICAgIjAuMDA4MzMzLCAwLjAwODMzNiwgMC4wMDgzNDIsIDAuMDA4MzQzLCAwLjAwODM0MywgMC4wMDgzNDMsIDAuMDA4MzQzIiwgXAotICAgICAgICAgICIwLjAwODMxNiwgMC4wMDgzMiwgMC4wMDgzMjUsIDAuMDA4MzI2LCAwLjAwODMyNiwgMC4wMDgzMjYsIDAuMDA4MzI3IiwgXAotICAgICAgICAgICIwLjAwODMxNCwgMC4wMDgzMTgsIDAuMDA4MzIzLCAwLjAwODMyNCwgMC4wMDgzMjUsIDAuMDA4MzI1LCAwLjAwODMyNiIsIFwKLSAgICAgICAgICAiMC4wMDgzMjQsIDAuMDA4MzI4LCAwLjAwODMzMywgMC4wMDgzMzMsIDAuMDA4MzM0LCAwLjAwODMzNSwgMC4wMDgzMzUiLCBcCi0gICAgICAgICAgIjAuMDA4MzQ2LCAwLjAwODM1LCAwLjAwODM1NiwgMC4wMDgzNTcsIDAuMDA4MzU3LCAwLjAwODM1NywgMC4wMDgzNTgiLCBcCi0gICAgICAgICAgIjAuMDA4MzY3LCAwLjAwODM3MSwgMC4wMDgzNzYsIDAuMDA4Mzc3LCAwLjAwODM3NywgMC4wMDgzNzgsIDAuMDA4Mzc4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA4MDUzLCAwLjAwODA2LCAwLjAwODA2OSwgMC4wMDgwNzEsIDAuMDA4MDcyLCAwLjAwODA3MywgMC4wMDgwNzMiLCBcCi0gICAgICAgICAgIjAuMDA4MDI1LCAwLjAwODAzMiwgMC4wMDgwNDIsIDAuMDA4MDQ0LCAwLjAwODA0NSwgMC4wMDgwNDUsIDAuMDA4MDQ2IiwgXAotICAgICAgICAgICIwLjAwODAyMSwgMC4wMDgwMjksIDAuMDA4MDM4LCAwLjAwODA0LCAwLjAwODA0MSwgMC4wMDgwNDIsIDAuMDA4MDQyIiwgXAotICAgICAgICAgICIwLjAwODAzNiwgMC4wMDgwNDMsIDAuMDA4MDUzLCAwLjAwODA1NSwgMC4wMDgwNTYsIDAuMDA4MDU3LCAwLjAwODA1NyIsIFwKLSAgICAgICAgICAiMC4wMDgwNTQsIDAuMDA4MDYxLCAwLjAwODA3MSwgMC4wMDgwNzMsIDAuMDA4MDc0LCAwLjAwODA3NCwgMC4wMDgwNzUiLCBcCi0gICAgICAgICAgIjAuMDA4MTAyLCAwLjAwODEwOSwgMC4wMDgxMTksIDAuMDA4MTIsIDAuMDA4MTIxLCAwLjAwODEyMiwgMC4wMDgxMjIiLCBcCi0gICAgICAgICAgIjAuMDA4MTM5LCAwLjAwODE0NiwgMC4wMDgxNTYsIDAuMDA4MTU4LCAwLjAwODE1OSwgMC4wMDgxNiwgMC4wMDgxNiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTA0ODQsIDAuMDEwNDkyLCAwLjAxMDUwMiwgMC4wMTA1MDUsIDAuMDEwNTA2LCAwLjAxMDUwNywgMC4wMTA1MDciLCBcCi0gICAgICAgICAgIjAuMDEwNDYsIDAuMDEwNDY4LCAwLjAxMDQ3OSwgMC4wMTA0ODEsIDAuMDEwNDgyLCAwLjAxMDQ4MywgMC4wMTA0ODMiLCBcCi0gICAgICAgICAgIjAuMDEwNDUsIDAuMDEwNDU4LCAwLjAxMDQ2OSwgMC4wMTA0NzEsIDAuMDEwNDcyLCAwLjAxMDQ3MywgMC4wMTA0NzMiLCBcCi0gICAgICAgICAgIjAuMDEwNDQ2LCAwLjAxMDQ1NCwgMC4wMTA0NjUsIDAuMDEwNDY3LCAwLjAxMDQ2OSwgMC4wMTA0NjksIDAuMDEwNDciLCBcCi0gICAgICAgICAgIjAuMDEwNDU4LCAwLjAxMDQ2NiwgMC4wMTA0NzcsIDAuMDEwNDc5LCAwLjAxMDQ4LCAwLjAxMDQ4MSwgMC4wMTA0ODEiLCBcCi0gICAgICAgICAgIjAuMDEwNDY1LCAwLjAxMDQ3MywgMC4wMTA0ODQsIDAuMDEwNDg2LCAwLjAxMDQ4NywgMC4wMTA0ODgsIDAuMDEwNDg5IiwgXAotICAgICAgICAgICIwLjAxMDQ4NCwgMC4wMTA0OTIsIDAuMDEwNTAzLCAwLjAxMDUwNSwgMC4wMTA1MDYsIDAuMDEwNTA3LCAwLjAxMDUwNyIpOwotICAgICAgfQotICAgICAgcmlzZV9wb3dlcihzY2FsYXIpIHsKLSAgICAgICAgdmFsdWVzKCIwIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiU04iOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMDEyOSwgMC4wMTAxMzMsIDAuMDEwMTM3LCAwLjAxMDEzOCwgMC4wMTAxMzgsIDAuMDEwMTM4LCAwLjAxMDEzOCIsIFwKLSAgICAgICAgICAiMC4wMTAwODksIDAuMDEwMDkzLCAwLjAxMDA5NywgMC4wMTAwOTcsIDAuMDEwMDk3LCAwLjAxMDA5OCwgMC4wMTAwOTgiLCBcCi0gICAgICAgICAgIjAuMDEwMDcxLCAwLjAxMDA3NSwgMC4wMTAwNzksIDAuMDEwMDc5LCAwLjAxMDA3OSwgMC4wMTAwNzksIDAuMDEwMDc5IiwgXAotICAgICAgICAgICIwLjAxMDA2MiwgMC4wMTAwNjUsIDAuMDEwMDY5LCAwLjAxMDA3LCAwLjAxMDA3LCAwLjAxMDA3LCAwLjAxMDA3IiwgXAotICAgICAgICAgICIwLjAxMDA2NCwgMC4wMTAwNjgsIDAuMDEwMDczLCAwLjAxMDA3MywgMC4wMTAwNzMsIDAuMDEwMDczLCAwLjAxMDA3MyIsIFwKLSAgICAgICAgICAiMC4wMTAwNzksIDAuMDEwMDgzLCAwLjAxMDA4NywgMC4wMTAwODksIDAuMDEwMDg5LCAwLjAxMDA4OSwgMC4wMTAwODkiLCBcCi0gICAgICAgICAgIjAuMDEwMDkzLCAwLjAxMDA5OCwgMC4wMTAxMDEsIDAuMDEwMTAxLCAwLjAxMDEwMSwgMC4wMTAxMDMsIDAuMDEwMTAyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA3NDIxLCAwLjAwNzQyOSwgMC4wMDc0NCwgMC4wMDc0NDIsIDAuMDA3NDQzLCAwLjAwNzQ0NCwgMC4wMDc0NDQiLCBcCi0gICAgICAgICAgIjAuMDA3MzY5LCAwLjAwNzM3NywgMC4wMDczODgsIDAuMDA3MzksIDAuMDA3MzkxLCAwLjAwNzM5MiwgMC4wMDczOTIiLCBcCi0gICAgICAgICAgIjAuMDA3MzQsIDAuMDA3MzQ4LCAwLjAwNzM1OSwgMC4wMDczNjIsIDAuMDA3MzYzLCAwLjAwNzM2NCwgMC4wMDczNjQiLCBcCi0gICAgICAgICAgIjAuMDA3MzI0LCAwLjAwNzMzMiwgMC4wMDczNDMsIDAuMDA3MzQ1LCAwLjAwNzM0NiwgMC4wMDczNDcsIDAuMDA3MzQ3IiwgXAotICAgICAgICAgICIwLjAwNzMxMiwgMC4wMDczMTksIDAuMDA3MzMsIDAuMDA3MzMzLCAwLjAwNzMzMywgMC4wMDczMzUsIDAuMDA3MzM1IiwgXAotICAgICAgICAgICIwLjAwNzI5NCwgMC4wMDczMDIsIDAuMDA3MzEzLCAwLjAwNzMxNSwgMC4wMDczMTYsIDAuMDA3MzE3LCAwLjAwNzMxNyIsIFwKLSAgICAgICAgICAiMC4wMDcyOTEsIDAuMDA3Mjk5LCAwLjAwNzMxLCAwLjAwNzMxMiwgMC4wMDczMTMsIDAuMDA3MzE0LCAwLjAwNzMxNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUk4pICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDU5MDAxOTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA1ODk4Mjc7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNTkwMDE5OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDgxMiwgMC4wMDA3ODksIDAuMDAwNzc5LCAwLjAwMDc4NCwgMC4wMDA3OTIsIDAuMDAwODE1LCAwLjAwMDgzNiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjY3MSwgMC4wMDI2NTIsIDAuMDAyNjQ3LCAwLjAwMjY1MiwgMC4wMDI2NjIsIDAuMDAyNjgzLCAwLjAwMjciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUk4iOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFEJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgZmFsbF9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMTkxNDE5LCAwLjIwMTI3MiwgMC4yMTMyOTEsIDAuMjI0Mjk4LCAwLjIzMzY5LCAwLjI0Njg1NCwgMC4yNTY3NTMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiByZWNvdmVyeV9yaXNpbmc7Ci0gICAgICB3aGVuIDogIkQmU04iOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8xX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQocmVjb3ZlcnlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDYyNSwgMC4wNTEyNSwgMC4wMzg3NSwgMC4wMjYyNSwgMC4wMTM3NSwgLTAuMDAyNSwgLTAuMDExMjUiLCBcCi0gICAgICAgICAgIjAuMDczNzUsIDAuMDYyNSwgMC4wNSwgMC4wMzc1LCAwLjAyNSwgMC4wMDg3NSwgMCIsIFwKLSAgICAgICAgICAiMC4wODYyNSwgMC4wNzUsIDAuMDYyNSwgMC4wNSwgMC4wMzc1LCAwLjAyMTI1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMDk4NzUsIDAuMDg3NSwgMC4wNzUsIDAuMDYyNSwgMC4wNSwgMC4wMzM3NSwgMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMTA1LCAwLjA5Mzc1LCAwLjA4MTI1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDQ2MjUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMTIxMjUsIDAuMTEsIDAuMDk3NSwgMC4wODUsIDAuMDcyNSwgMC4wNTYyNSwgMC4wNDc1IiwgXAotICAgICAgICAgICIwLjEzLCAwLjExODc1LCAwLjEwNjI1LCAwLjA5Mzc1LCAwLjA4NzUsIDAuMDcxMjUsIDAuMDU2MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiU04iOwotICAgICAgdGltaW5nX3R5cGUgOiByZWNvdmVyeV9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEIjsKLSAgICAgIHNkZl9jb25kIDogIkQgPT0gMSdiMCI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQocmVjb3ZlcnlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY4NzUsIDAuMDgsIDAuMDg2MjUsIDAuMDk4NzUsIDAuMTExMjUsIDAuMTI3NSwgMC4xMzYyNSIsIFwKLSAgICAgICAgICAiMC4wNjM3NSwgMC4wNjg3NSwgMC4wODEyNSwgMC4wODc1LCAwLjEsIDAuMTE2MjUsIDAuMTMxMjUiLCBcCi0gICAgICAgICAgIjAuMDUxMjUsIDAuMDYyNSwgMC4wNjg3NSwgMC4wODEyNSwgMC4wOTM3NSwgMC4xMSwgMC4xMTg3NSIsIFwKLSAgICAgICAgICAiMC4wNDUsIDAuMDU2MjUsIDAuMDY4NzUsIDAuMDc1LCAwLjA4NzUsIDAuMTAzNzUsIDAuMTEyNSIsIFwKLSAgICAgICAgICAiMC4wNDUsIDAuMDUsIDAuMDYyNSwgMC4wNjg3NSwgMC4wODEyNSwgMC4wOTc1LCAwLjExMjUiLCBcCi0gICAgICAgICAgIjAuMDM1LCAwLjA0NjI1LCAwLjA1ODc1LCAwLjA2NSwgMC4wNzc1LCAwLjA5Mzc1LCAwLjEwMjUiLCBcCi0gICAgICAgICAgIjAuMDMyNSwgMC4wNDM3NSwgMC4wNSwgMC4wNjI1LCAwLjA2ODc1LCAwLjA4NSwgMC4xIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogcmVtb3ZhbF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIkQmU04iOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8xX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQocmVtb3ZhbF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDEyNSwgLTAuMDAxMjUsIDAuMDExMjUsIDAuMDIzNzUsIDAuMDMsIDAuMDQ2MjUsIDAuMDU1IiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDEyNSwgMCwgMC4wMTI1LCAwLjAxODc1LCAwLjAzNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAyNSwgLTAuMDEyNSwgMCwgMC4wMDYyNSwgMC4wMjI1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDM3NSwgLTAuMDI1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMC4wMSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNSwgLTAuMDM3NSwgLTAuMDI1LCAtMC4wMTI1LCAtMC4wMDI1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjA3MTI1LCAtMC4wNiwgLTAuMDQ3NSwgLTAuMDM1LCAtMC4wMjg3NSwgLTAuMDEyNSwgLTAuMDAzNzUiLCBcCi0gICAgICAgICAgIi0wLjA4LCAtMC4wNjg3NSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wMzc1LCAtMC4wMjEyNSwgLTAuMDEyNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oU04pICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTg4MjM0OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTg4MjM0OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTg4MTQ4OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDY1MywgMC4wMDA2NTIsIDAuMDAwNjUyLCAwLjAwMDY1MiwgMC4wMDA2NTIsIDAuMDAwNjUyLCAwLjAwMDY1MiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDY1NCwgMC4wMDA2NTQsIDAuMDAwNjU0LCAwLjAwMDY1NCwgMC4wMDA2NTQsIDAuMDAwNjU0LCAwLjAwMDY1NCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQmIVJOIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9STl9FUV8wID09IDEnYjEiOwotICAgICAgZmFsbF9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMTI5MDQyLCAwLjEzODMyLCAwLjE1MDU2MSwgMC4xNjI4MDcsIDAuMTc0MzY0LCAwLjE5MDc4LCAwLjIwMzcyNyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJlY292ZXJ5X3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUQmUk4iOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1JOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQocmVjb3ZlcnlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2MjUsIC0wLjAwNSwgLTAuMDE3NSwgLTAuMDMsIC0wLjA0MjUsIC0wLjA1ODc1LCAtMC4wNzM3NSIsIFwKLSAgICAgICAgICAiMC4wMTc1LCAwLjAwNjI1LCAtMC4wMTI1LCAtMC4wMjUsIC0wLjAzNzUsIC0wLjA1Mzc1LCAtMC4wNjg3NSIsIFwKLSAgICAgICAgICAiMC4wMjM3NSwgMC4wMTI1LCAwLCAtMC4wMTI1LCAtMC4wMjUsIC0wLjA0MTI1LCAtMC4wNTYyNSIsIFwKLSAgICAgICAgICAiMC4wMzYyNSwgMC4wMjUsIDAuMDEyNSwgMCwgLTAuMDEyNSwgLTAuMDI4NzUsIC0wLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjA0ODc1LCAwLjAzNzUsIDAuMDE4NzUsIDAuMDA2MjUsIC0wLjAwNjI1LCAtMC4wMjI1LCAtMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4wNjUsIDAuMDUzNzUsIDAuMDM1LCAwLjAyMjUsIDAuMDEsIC0wLjAwNjI1LCAtMC4wMTUiLCBcCi0gICAgICAgICAgIjAuMDgsIDAuMDY4NzUsIDAuMDUsIDAuMDM3NSwgMC4wMjUsIDAuMDA4NzUsIC0wLjAwNjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogcmVtb3ZhbF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEJlJOIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9STl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHJlbW92YWxfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM3NSwgMC4wNDg3NSwgMC4wNjEyNSwgMC4wNzM3NSwgMC4wODYyNSwgMC4xMDI1LCAwLjExMTI1IiwgXAotICAgICAgICAgICIwLjAzMjUsIDAuMDQzNzUsIDAuMDU2MjUsIDAuMDY4NzUsIDAuMDc1LCAwLjA5MTI1LCAwLjEwNjI1IiwgXAotICAgICAgICAgICIwLjAyLCAwLjAzMTI1LCAwLjA0Mzc1LCAwLjA1NjI1LCAwLjA2ODc1LCAwLjA4NSwgMC4wOTM3NSIsIFwKLSAgICAgICAgICAiMC4wMDc1LCAwLjAxODc1LCAwLjAzMTI1LCAwLjA0Mzc1LCAwLjA1NjI1LCAwLjA3MjUsIDAuMDgxMjUiLCBcCi0gICAgICAgICAgIjAuMDAxMjUsIDAuMDEyNSwgMC4wMjUsIDAuMDM3NSwgMC4wNDM3NSwgMC4wNiwgMC4wNzUiLCBcCi0gICAgICAgICAgIi0wLjAxNSwgLTAuMDAzNzUsIDAuMDA4NzUsIDAuMDIxMjUsIDAuMDMzNzUsIDAuMDUsIDAuMDU4NzUiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTI1LCAwLCAwLjAwNjI1LCAwLjAxODc1LCAwLjAzNSwgMC4wNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogREZGU1JIUVgyICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoREZGU1JIUVgyKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuNDk1OTQ1OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIGZmIChOMzUsUUJJTlQpIHsKLSAgICBuZXh0X3N0YXRlIDogIkQiOwotICAgIGNsb2NrZWRfb24gOiAiQ0siOwotICAgIGNsZWFyIDogIighUk4pIjsKLSAgICBwcmVzZXQgOiAiKCFTTikiOwotICAgIGNsZWFyX3ByZXNldF92YXIxIDogSDsKLSAgfQotICBwaW4oQ0spICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDU4MTk2NTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA1ODE3MTg7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNTgxOTY1OwotICAgIGNsb2NrIDogdHJ1ZTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDM4MTMsIDAuMDAzNzg4LCAwLjAwMzc3NiwgMC4wMDM3NzcsIDAuMDAzNzg3LCAwLjAwMzgxMSwgMC4wMDM4MjciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDgyNDcsIDAuMDA4MjI2LCAwLjAwODIxNywgMC4wMDgyMTksIDAuMDA4MjI1LCAwLjAwODI0NCwgMC4wMDgyNTgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFEJlJOJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9STl9FUV8xX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4xNTA4NjcsIDAuMTYxMDk2LCAwLjE3MzgxOSwgMC4xODYxNjIsIDAuMTk3MzIxLCAwLjIxMjk4NywgMC4yMjQ5MjMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjEyNTU2NywgMC4xMzU0NzksIDAuMTQ3ODk0LCAwLjE1OTU5MywgMC4xNjk5NDksIDAuMTg0MjM3LCAwLjE5NTA4OSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNzY0ODQ5OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDc2MjU5OTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA3NjQ4NDk7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzNTEsIDAuMDAzNDc3LCAwLjAwMzQ1OSwgMC4wMDM0NDgsIDAuMDAzNDQ0LCAwLjAwMzQ0NiwgMC4wMDM0NTEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDM5MjYsIDAuMDAzOTA1LCAwLjAwMzg5MiwgMC4wMDM4ODUsIDAuMDAzODgxLCAwLjAwMzg3OSwgMC4wMDM4OCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJSTiZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJSTl9FUV8xX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDE4NzUsIC0wLjAwNzUsIC0wLjAwMTI1LCAwLjAwNSwgMC4wMTEyNSwgMC4wMTUsIDAuMDIzNzUiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAsIDAuMDEsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIC0wLjAwMjUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDA4NzUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMTUsIC0wLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjA2NSwgLTAuMDUzNzUsIC0wLjA0NzUsIC0wLjA0MTI1LCAtMC4wMzUsIC0wLjAyNSwgLTAuMDIyNSIsIFwKLSAgICAgICAgICAiLTAuMDczNzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjAzMzc1LCAtMC4wMzEyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDI1LCAwLjAzNjI1LCAwLjA0ODc1LCAwLjA2MTI1LCAwLjA3Mzc1LCAwLjA4Mzc1LCAwLjA5ODc1IiwgXAotICAgICAgICAgICIwLjAyLCAwLjAzMTI1LCAwLjA0Mzc1LCAwLjA1LCAwLjA2MjUsIDAuMDc4NzUsIDAuMDg3NSIsIFwKLSAgICAgICAgICAiMC4wMTM3NSwgMC4wMTg3NSwgMC4wMzEyNSwgMC4wNDM3NSwgMC4wNTYyNSwgMC4wNjYyNSwgMC4wODEyNSIsIFwKLSAgICAgICAgICAiMC4wMDc1LCAwLjAxMjUsIDAuMDI1LCAwLjAzNzUsIDAuMDUsIDAuMDYsIDAuMDc1IiwgXAotICAgICAgICAgICIwLjAwMTI1LCAwLjAxMjUsIDAuMDI1LCAwLjAzMTI1LCAwLjA0Mzc1LCAwLjA2LCAwLjA2ODc1IiwgXAotICAgICAgICAgICItMC4wMDg3NSwgMC4wMDI1LCAwLjAxNSwgMC4wMjc1LCAwLjAzMzc1LCAwLjA1LCAwLjA1ODc1IiwgXAotICAgICAgICAgICItMC4wMTEyNSwgMCwgMC4wMTI1LCAwLjAxODc1LCAwLjAzMTI1LCAwLjA0NzUsIDAuMDU2MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlJOJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIlJOX0VRXzFfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjg3NSwgMC4wNTc1LCAwLjA0NSwgMC4wMzI1LCAwLjAyLCAwLjAxLCAwLjAwMTI1IiwgXAotICAgICAgICAgICIwLjA4LCAwLjA2ODc1LCAwLjA1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDIxMjUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4wOTI1LCAwLjA3NSwgMC4wNjI1LCAwLjA1LCAwLjA0Mzc1LCAwLjAyNzUsIDAuMDI1IiwgXAotICAgICAgICAgICIwLjA5ODc1LCAwLjA4NzUsIDAuMDc1LCAwLjA2MjUsIDAuMDUsIDAuMDQsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMTExMjUsIDAuMDkzNzUsIDAuMDgxMjUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNDYyNSwgMC4wMzc1IiwgXAotICAgICAgICAgICIwLjEyMTI1LCAwLjExLCAwLjA5NzUsIDAuMDg1LCAwLjA3MjUsIDAuMDYyNSwgMC4wNTM3NSIsIFwKLSAgICAgICAgICAiMC4xMywgMC4xMTg3NSwgMC4xMDYyNSwgMC4wOTM3NSwgMC4wODEyNSwgMC4wNzEyNSwgMC4wNjI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM3NSwgMC4wMjYyNSwgMC4wMTM3NSwgMC4wMDEyNSwgLTAuMDExMjUsIC0wLjAyNzUsIC0wLjA0MjUiLCBcCi0gICAgICAgICAgIjAuMDQ4NzUsIDAuMDM3NSwgMC4wMjUsIDAuMDEyNSwgMCwgLTAuMDE2MjUsIC0wLjAzMTI1IiwgXAotICAgICAgICAgICIwLjA1NSwgMC4wNDM3NSwgMC4wMzEyNSwgMC4wMTg3NSwgMC4wMDYyNSwgLTAuMDEsIC0wLjAxODc1IiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDU2MjUsIDAuMDQzNzUsIDAuMDMxMjUsIDAuMDE4NzUsIDAuMDAyNSwgLTAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4wNzM3NSwgMC4wNjI1LCAwLjA1LCAwLjAzNzUsIDAuMDI1LCAwLjAwODc1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiMC4wODM3NSwgMC4wNzI1LCAwLjA2LCAwLjA0NzUsIDAuMDM1LCAwLjAxODc1LCAwLjAwMzc1IiwgXAotICAgICAgICAgICIwLjA5MjUsIDAuMDgxMjUsIDAuMDY4NzUsIDAuMDU2MjUsIDAuMDQzNzUsIDAuMDI3NSwgMC4wMTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihRKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuNTExMTU1OwotICAgIGZ1bmN0aW9uIDogIk4zNSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3NlbnNlIDogbm9uX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiByaXNpbmdfZWRnZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTMyNzY1LCAwLjIzNDk2MSwgMC4zMTYyMjMsIDAuNDE3Nzg0LCAwLjUxOTM3MiwgMC42MjEwMzcsIDAuNzIyNTQ3IiwgXAotICAgICAgICAgICIwLjE0Mjk1MywgMC4yNDUxNDksIDAuMzI2NDA5LCAwLjQyNzk3LCAwLjUyOTYxNiwgMC42MzEyMTMsIDAuNzMyNzM1IiwgXAotICAgICAgICAgICIwLjE1NTUzOCwgMC4yNTc3MzQsIDAuMzM4OTk1LCAwLjQ0MDU1NSwgMC41NDIyMjksIDAuNjQzNzQ1LCAwLjc0NTMyIiwgXAotICAgICAgICAgICIwLjE2Nzc5OCwgMC4yNjk5OTQsIDAuMzUxMjU0LCAwLjQ1MjgxNSwgMC41NTQ0NTYsIDAuNjU2MDYxLCAwLjc1NzU4MSIsIFwKLSAgICAgICAgICAiMC4xNzg4MDgsIDAuMjgxMDA0LCAwLjM2MjI2NywgMC40NjM4MjgsIDAuNTY1NDExLCAwLjY2NzAyOSwgMC43Njg1ODciLCBcCi0gICAgICAgICAgIjAuMTkzNzgxLCAwLjI5NTk4MywgMC4zNzcyNDUsIDAuNDc4ODA2LCAwLjU4MDMxNCwgMC42ODE5OTYsIDAuNzgzNTY4IiwgXAotICAgICAgICAgICIwLjIwNjAyNiwgMC4zMDgxNzQsIDAuMzg5NDUyLCAwLjQ5MTAxMSwgMC41OTI2MDUsIDAuNjk0MjE2LCAwLjc5NTc3NSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTIzNCwgMC4yNTc5MjMsIDAuNDI0ODU2LCAwLjYzNDQ4NywgMC44NDQwOTEsIDEuMDU1MDIsIDEuMjY0NjgiLCBcCi0gICAgICAgICAgIjAuMDUyMzQzLCAwLjI1NzcyNywgMC40MjQ4ODcsIDAuNjM0NDY3LCAwLjg0NTE5OSwgMS4wNTMzMSwgMS4yNjQ2NyIsIFwKLSAgICAgICAgICAiMC4wNTIzMzksIDAuMjU3OTI1LCAwLjQyNDg4MiwgMC42MzQ0NzUsIDAuODQ1MjUyLCAxLjA1MzY0LCAxLjI2NDY3IiwgXAotICAgICAgICAgICIwLjA1MjM0LCAwLjI1NzcyNywgMC40MjQ4ODgsIDAuNjM0NDY4LCAwLjg0NTE5LCAxLjA1MzI4LCAxLjI2NDY3IiwgXAotICAgICAgICAgICIwLjA1MjM3NywgMC4yNTc5MjUsIDAuNDI0ODk1LCAwLjYzNDUxNCwgMC44NDQ5NTQsIDEuMDU0OTIsIDEuMjY0NjYiLCBcCi0gICAgICAgICAgIjAuMDUyMzQ5LCAwLjI1NzkyOCwgMC40MjQ4ODYsIDAuNjM0NDgzLCAwLjg0NDU0OSwgMS4wNTM2MywgMS4yNjQ2NCIsIFwKLSAgICAgICAgICAiMC4wNTIzOTIsIDAuMjU3NzYzLCAwLjQyNDkwNSwgMC42MzQ0NzgsIDAuODQ1MDU4LCAxLjA1NDg4LCAxLjI2NDYzIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE1MDg2NywgMC4yNTQ5MzIsIDAuMzM3NjYsIDAuNDQxMDc1LCAwLjU0NDQ1NCwgMC42NDc4NDQsIDAuNzUxMjQ0IiwgXAotICAgICAgICAgICIwLjE2MTA5NiwgMC4yNjUxMzcsIDAuMzQ3ODYsIDAuNDUxMjg3LCAwLjU1NDY4LCAwLjY1ODA0OSwgMC43NjE0NDgiLCBcCi0gICAgICAgICAgIjAuMTczODE5LCAwLjI3Nzg2MiwgMC4zNjA1ODQsIDAuNDY0MDA0LCAwLjU2NzQxOSwgMC42NzA3NzIsIDAuNzc0MTcxIiwgXAotICAgICAgICAgICIwLjE4NjE2MiwgMC4yOTAyMiwgMC4zNzI5NDgsIDAuNDc2MzYzLCAwLjU3OTc2MSwgMC42ODMxMzIsIDAuNzg2NTMzIiwgXAotICAgICAgICAgICIwLjE5NzMyMSwgMC4zMDEzNjgsIDAuMzg0MDk2LCAwLjQ4NzUxNywgMC41OTA4OTcsIDAuNjk0MjkyLCAwLjc5NzY4OSIsIFwKLSAgICAgICAgICAiMC4yMTI5ODcsIDAuMzE3MDU3LCAwLjM5OTc3OCwgMC41MDMxOTYsIDAuNjA2NTkyLCAwLjcwOTk2OCwgMC44MTMzNyIsIFwKLSAgICAgICAgICAiMC4yMjQ5MjMsIDAuMzI4OTk0LCAwLjQxMTcxNywgMC41MTUxMzMsIDAuNjE4NTE0LCAwLjcyMTkwOCwgMC44MjUzMDgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDUxNzkyLCAwLjI1NzU3NywgMC40MjQ3ODgsIDAuNjM1NjE4LCAwLjg0NTQyOCwgMS4wNTQ5OCwgMS4yNjMwOSIsIFwKLSAgICAgICAgICAiMC4wNTE4MSwgMC4yNTc1NjYsIDAuNDI1MjQ1LCAwLjYzNTY4LCAwLjg0NTUxNCwgMS4wNTUxMywgMS4yNjMwNSIsIFwKLSAgICAgICAgICAiMC4wNTE4NDEsIDAuMjU3NjgzLCAwLjQyNDk0NywgMC42MzU2MDcsIDAuODQ1NjEzLCAxLjA1NDk1LCAxLjI2MzA0IiwgXAotICAgICAgICAgICIwLjA1MTc2MSwgMC4yNTc2MTUsIDAuNDI1NzExLCAwLjYzNTYxMiwgMC44NDU1MTYsIDEuMDU0OTgsIDEuMjYzMTEiLCBcCi0gICAgICAgICAgIjAuMDUxODA2LCAwLjI1NzU5NSwgMC40MjQ5LCAwLjYzNTYwMSwgMC44NDUzODcsIDEuMDU0NiwgMS4yNjUyMyIsIFwKLSAgICAgICAgICAiMC4wNTE3OTgsIDAuMjU3NjIyLCAwLjQyNTY2OSwgMC42MzU1OTMsIDAuODQ1NDg0LCAxLjA1NDksIDEuMjYzMTMiLCBcCi0gICAgICAgICAgIjAuMDUxODAzLCAwLjI1NzY5MiwgMC40MjUyMDcsIDAuNjM1NTg5LCAwLjg0NTQxMSwgMS4wNTQ5LCAxLjI2MzEyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiBjbGVhcjsKLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTc3MDAxLCAwLjI4MTA4MywgMC4zNjM4MSwgMC40NjcyMjksIDAuNTcwNjIyLCAwLjY3NDAwOCwgMC43Nzc0MjciLCBcCi0gICAgICAgICAgIjAuMTg2OTE4LCAwLjI5MDk0OSwgMC4zNzM2NjgsIDAuNDc3MDgzLCAwLjU4MDQ3MywgMC42ODM4NzEsIDAuNzg3MjU0IiwgXAotICAgICAgICAgICIwLjE5ODk5NCwgMC4zMDMwMTEsIDAuMzg1NzU2LCAwLjQ4OTE2OCwgMC41OTI1NCwgMC42OTU5NjUsIDAuNzk5MzQ2IiwgXAotICAgICAgICAgICIwLjIwOTc2NSwgMC4zMTM3ODQsIDAuMzk2NTIsIDAuNDk5OTIyLCAwLjYwMzMxNywgMC43MDY3MTQsIDAuODEwMTM4IiwgXAotICAgICAgICAgICIwLjIxODkyNCwgMC4zMjI5NDEsIDAuNDA1Njg0LCAwLjUwOTExMSwgMC42MTI0NjgsIDAuNzE1OTU4LCAwLjgxOTI3MiIsIFwKLSAgICAgICAgICAiMC4yMzE4ODUsIDAuMzM1OTE5LCAwLjQxODY0OSwgMC41MjIwNTMsIDAuNjI1NDM1LCAwLjcyODgzNCwgMC44MzIyNSIsIFwKLSAgICAgICAgICAiMC4yNDIxMDYsIDAuMzQ2MTIsIDAuNDI4ODQ0LCAwLjUzMjI2NywgMC42MzU2NiwgMC43MzkwNDMsIDAuODQyNDU4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1MTg1MSwgMC4yNTgwODIsIDAuNDI1NDQzLCAwLjYzNTgwOCwgMC44NDU3LCAxLjA1NDQsIDEuMjY1MTciLCBcCi0gICAgICAgICAgIjAuMDUxODY5LCAwLjI1ODA5OSwgMC40MjUxMzksIDAuNjM1NzcsIDAuODQ1NDA0LCAxLjA1NTI0LCAxLjI2NTU1IiwgXAotICAgICAgICAgICIwLjA1MTg5NywgMC4yNTgwNDIsIDAuNDI1MSwgMC42MzU2NDUsIDAuODQ1Njk0LCAxLjA1NDE2LCAxLjI2NTI3IiwgXAotICAgICAgICAgICIwLjA1MTkwNiwgMC4yNTgwODEsIDAuNDI1MDE5LCAwLjYzNTcxOCwgMC44NDUzNjEsIDEuMDUzNTcsIDEuMjY1MDgiLCBcCi0gICAgICAgICAgIjAuMDUxODk1LCAwLjI1ODEwMSwgMC40MjU3MzcsIDAuNjM1NTkxLCAwLjg0NTY4OCwgMS4wNTUwNSwgMS4yNjUzNyIsIFwKLSAgICAgICAgICAiMC4wNTE4NjgsIDAuMjU4MDg0LCAwLjQyNTgyNiwgMC42MzU3NzcsIDAuODQ1NjA0LCAxLjA1MzQxLCAxLjI2Mzc5IiwgXAotICAgICAgICAgICIwLjA1MTg3NCwgMC4yNTc5NzgsIDAuNDI1Nzg4LCAwLjYzNTc5MywgMC44NDU2OTYsIDEuMDU0NjUsIDEuMjYzODQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiU04iOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHByZXNldDsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTE1NjAzLCAwLjIxNzYzNSwgMC4yOTg4OTUsIDAuNDAwNTE1LCAwLjUwMjEwOCwgMC42MDM2NjYsIDAuNzA1MzMyIiwgXAotICAgICAgICAgICIwLjEyNDgzMiwgMC4yMjY4NDQsIDAuMzA4MTQ2LCAwLjQwOTc2OSwgMC41MTEyOTksIDAuNjEyOTIzLCAwLjcxNDUwNiIsIFwKLSAgICAgICAgICAiMC4xMzY3MDIsIDAuMjM4Njc1LCAwLjMxOTk1NSwgMC40MjE1MzYsIDAuNTIzMDE4LCAwLjYyNDY5MSwgMC43MjYyOTIiLCBcCi0gICAgICAgICAgIjAuMTQ4NTY1LCAwLjI1MDU2LCAwLjMzMTg3NSwgMC40MzM0MzMsIDAuNTM1MDA2LCAwLjYzNjYwNywgMC43MzgxNzgiLCBcCi0gICAgICAgICAgIjAuMTU5ODg5LCAwLjI2MTg2NCwgMC4zNDMxNjQsIDAuNDQ0NzE4LCAwLjU0NjMzNCwgMC42NDc4NzcsIDAuNzQ5NDc0IiwgXAotICAgICAgICAgICIwLjE3NjgwNSwgMC4yNzg4MDYsIDAuMzYwMDMsIDAuNDYxNjczLCAwLjU2MzI1LCAwLjY2NDgzNywgMC43NjY0MDgiLCBcCi0gICAgICAgICAgIjAuMTg5NjMzLCAwLjI5MTY2NSwgMC4zNzI5MzIsIDAuNDc0NTQzLCAwLjU3NjE1NCwgMC42Nzc2NzgsIDAuNzc5MjcyIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1MTc1MiwgMC4yNTc4ODksIDAuNDI1NTY2LCAwLjYzNTM1MiwgMC44NDUxNCwgMS4wNTQ1NywgMS4yNjQ4IiwgXAotICAgICAgICAgICIwLjA1MTc1LCAwLjI1Nzk1MywgMC40MjU2MiwgMC42MzU0NzIsIDAuODQ1MDk0LCAxLjA1Mzc1LCAxLjI2NDgyIiwgXAotICAgICAgICAgICIwLjA1MTc1MSwgMC4yNTc5NDMsIDAuNDI1NjE4LCAwLjYzNTM0OCwgMC44NDUyMjgsIDEuMDU0NTUsIDEuMjY0NjMiLCBcCi0gICAgICAgICAgIjAuMDUxNzQ4LCAwLjI1NzkxMiwgMC40MjU1NjIsIDAuNjM1MzQ3LCAwLjg0NTA4NCwgMS4wNTQ1NSwgMS4yNjQ2NCIsIFwKLSAgICAgICAgICAiMC4wNTE3NDIsIDAuMjU3OTU3LCAwLjQyNTYwOSwgMC42MzUzNDMsIDAuODQ1MjE5LCAxLjA1NDg2LCAxLjI2MzMiLCBcCi0gICAgICAgICAgIjAuMDUxODk4LCAwLjI1Nzk1MSwgMC40MjU2MjIsIDAuNjM1MzQzLCAwLjg0NTAxOCwgMS4wNTQ4NiwgMS4yNjQ1NiIsIFwKLSAgICAgICAgICAiMC4wNTE4NjEsIDAuMjU3OTcyLCAwLjQyNTUyMiwgMC42MzUyNzUsIDAuODQ1MDU4LCAxLjA1NDY2LCAxLjI2NDcyIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE1NTk2NSwgMC4yNTk5NjgsIDAuMzQyNzAzLCAwLjQ0NjEwNiwgMC41NDk1MDQsIDAuNjUyOTA0LCAwLjc1NjI4NSIsIFwKLSAgICAgICAgICAiMC4xNjUyNzUsIDAuMjY5Mjk5LCAwLjM1MjAzNywgMC40NTU0MzgsIDAuNTU4ODMyLCAwLjY2MjIyOSwgMC43NjU2MTYiLCBcCi0gICAgICAgICAgIjAuMTc2MDAyLCAwLjI4MDAyLCAwLjM2Mjc2MiwgMC40NjYyMSwgMC41Njk1NDUsIDAuNjcyOTkxLCAwLjc3NjM0NyIsIFwKLSAgICAgICAgICAiMC4xODY1MzgsIDAuMjkwNTk3LCAwLjM3MzM0LCAwLjQ3Njc2NCwgMC41ODAxMjYsIDAuNjgzNTYzLCAwLjc4NjkyOCIsIFwKLSAgICAgICAgICAiMC4xOTcwNjksIDAuMzAxMDg3LCAwLjM4MzgyOSwgMC40ODcyNzksIDAuNTkwNjE0LCAwLjY5NDA1NywgMC43OTc0MTQiLCBcCi0gICAgICAgICAgIjAuMjEzNDg0LCAwLjMxNzQ5MiwgMC40MDAyNDIsIDAuNTAzNzAzLCAwLjYwNzA2MiwgMC43MTA0MjUsIDAuODEzODM4IiwgXAotICAgICAgICAgICIwLjIyNzE0MywgMC4zMzExODcsIDAuNDEzOTIxLCAwLjUxNzMzLCAwLjYyMDcyMiwgMC43MjQxMTksIDAuODI3NTU2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1MTkxNSwgMC4yNTgwNzksIDAuNDI1MTk5LCAwLjYzNTc2MSwgMC44NDUzNDYsIDEuMDU1MjQsIDEuMjY1NDciLCBcCi0gICAgICAgICAgIjAuMDUxOTA5LCAwLjI1ODA0NCwgMC40MjUxNiwgMC42MzU3MjQsIDAuODQ1Mzg5LCAxLjA1NTI3LCAxLjI2NDU3IiwgXAotICAgICAgICAgICIwLjA1MTkwNSwgMC4yNTgwNDcsIDAuNDI1NzQ0LCAwLjYzNTU4MywgMC44NDU2NjksIDEuMDU1NjYsIDEuMjYzOTEiLCBcCi0gICAgICAgICAgIjAuMDUxODY2LCAwLjI1ODA0NiwgMC40MjU3MTUsIDAuNjM1NTIyLCAwLjg0NTY4LCAxLjA1NTI2LCAxLjI2NDI3IiwgXAotICAgICAgICAgICIwLjA1MTkwMiwgMC4yNTgwMzYsIDAuNDI1NzE4LCAwLjYzNTUxOSwgMC44NDU2NjMsIDEuMDU1NjUsIDEuMjY1MDEiLCBcCi0gICAgICAgICAgIjAuMDUxODg4LCAwLjI1ODA0MywgMC40MjU2MzEsIDAuNjM1NTYyLCAwLjg0NTIzOCwgMS4wNTUzMiwgMS4yNjM2OSIsIFwKLSAgICAgICAgICAiMC4wNTE5NywgMC4yNTgwNywgMC40MjUxNTksIDAuNjM1NzMsIDAuODQ1MzI0LCAxLjA1NTIxLCAxLjI2MzE0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwOTI2OSwgMC4wMDkzMTQsIDAuMDA5MzIsIDAuMDA5MzIzLCAwLjAwOTMyNSwgMC4wMDkzMjYsIDAuMDA5MzI1IiwgXAotICAgICAgICAgICIwLjAwOTIzOCwgMC4wMDkyODQsIDAuMDA5MjkxLCAwLjAwOTI5MSwgMC4wMDkyOTMsIDAuMDA5Mjk1LCAwLjAwOTI5MyIsIFwKLSAgICAgICAgICAiMC4wMDkyMjEsIDAuMDA5MjY2LCAwLjAwOTI3MiwgMC4wMDkyNzQsIDAuMDA5Mjc2LCAwLjAwOTI3NiwgMC4wMDkyNzciLCBcCi0gICAgICAgICAgIjAuMDA5MjE5LCAwLjAwOTI2NSwgMC4wMDkyNywgMC4wMDkyNzMsIDAuMDA5Mjc0LCAwLjAwOTI3NiwgMC4wMDkyNzUiLCBcCi0gICAgICAgICAgIjAuMDA5MjI4LCAwLjAwOTI3NSwgMC4wMDkyOCwgMC4wMDkyODMsIDAuMDA5Mjg0LCAwLjAwOTI4NiwgMC4wMDkyODYiLCBcCi0gICAgICAgICAgIjAuMDA5MjQ4LCAwLjAwOTI5NiwgMC4wMDkzMDEsIDAuMDA5MzAzLCAwLjAwOTMwNCwgMC4wMDkzMDUsIDAuMDA5MzA4IiwgXAotICAgICAgICAgICIwLjAwOTI2NSwgMC4wMDkzMTMsIDAuMDA5MzE4LCAwLjAwOTMyMSwgMC4wMDkzMjMsIDAuMDA5MzI0LCAwLjAwOTMyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwOTEyOSwgMC4wMDkxOTcsIDAuMDA5MjA2LCAwLjAwOTIxLCAwLjAwOTIxMywgMC4wMDkyMTQsIDAuMDA5MjE1IiwgXAotICAgICAgICAgICIwLjAwOTEwMywgMC4wMDkxNzIsIDAuMDA5MTgsIDAuMDA5MTg1LCAwLjAwOTE4NywgMC4wMDkxODksIDAuMDA5MTkiLCBcCi0gICAgICAgICAgIjAuMDA5MDk2LCAwLjAwOTE2NSwgMC4wMDkxNzQsIDAuMDA5MTc5LCAwLjAwOTE4MSwgMC4wMDkxODMsIDAuMDA5MTgzIiwgXAotICAgICAgICAgICIwLjAwOTExNCwgMC4wMDkxODIsIDAuMDA5MTkxLCAwLjAwOTE5NSwgMC4wMDkxOTgsIDAuMDA5MTk5LCAwLjAwOTIiLCBcCi0gICAgICAgICAgIjAuMDA5MTM0LCAwLjAwOTIwMSwgMC4wMDkyMSwgMC4wMDkyMTUsIDAuMDA5MjE3LCAwLjAwOTIxOSwgMC4wMDkyMTkiLCBcCi0gICAgICAgICAgIjAuMDA5MTc4LCAwLjAwOTI0NywgMC4wMDkyNTYsIDAuMDA5MjYsIDAuMDA5MjYzLCAwLjAwOTI2NCwgMC4wMDkyNjUiLCBcCi0gICAgICAgICAgIjAuMDA5MjE1LCAwLjAwOTI4NSwgMC4wMDkyOTQsIDAuMDA5Mjk5LCAwLjAwOTMwMSwgMC4wMDkzMDMsIDAuMDA5MzA0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUk4iOwotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMTQzOCwgMC4wMTE1MTEsIDAuMDExNTIsIDAuMDExNTI1LCAwLjAxMTUyOCwgMC4wMTE1MjksIDAuMDExNTMiLCBcCi0gICAgICAgICAgIjAuMDExNDE0LCAwLjAxMTQ4NywgMC4wMTE0OTYsIDAuMDExNTAxLCAwLjAxMTUwNCwgMC4wMTE1MDUsIDAuMDExNTA2IiwgXAotICAgICAgICAgICIwLjAxMTQwNSwgMC4wMTE0NzgsIDAuMDExNDg3LCAwLjAxMTQ5MiwgMC4wMTE0OTUsIDAuMDExNDk2LCAwLjAxMTQ5NyIsIFwKLSAgICAgICAgICAiMC4wMTE0MDEsIDAuMDExNDc0LCAwLjAxMTQ4MywgMC4wMTE0ODgsIDAuMDExNDkxLCAwLjAxMTQ5MiwgMC4wMTE0OTMiLCBcCi0gICAgICAgICAgIjAuMDExNDEyLCAwLjAxMTQ4NSwgMC4wMTE0OTQsIDAuMDExNDk5LCAwLjAxMTUwMiwgMC4wMTE1MDMsIDAuMDExNTA1IiwgXAotICAgICAgICAgICIwLjAxMTQyMiwgMC4wMTE0OTQsIDAuMDExNTA0LCAwLjAxMTUwOSwgMC4wMTE1MTEsIDAuMDExNTEzLCAwLjAxMTUxNCIsIFwKLSAgICAgICAgICAiMC4wMTE0MjgsIDAuMDExNSwgMC4wMTE1MSwgMC4wMTE1MTUsIDAuMDExNTE3LCAwLjAxMTUxOSwgMC4wMTE1MiIpOwotICAgICAgfQotICAgICAgcmlzZV9wb3dlcihzY2FsYXIpIHsKLSAgICAgICAgdmFsdWVzKCIwIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiU04iOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMTAyNSwgMC4wMTEwNjcsIDAuMDExMDcyLCAwLjAxMTA3MywgMC4wMTEwNzUsIDAuMDExMDc1LCAwLjAxMTA3NSIsIFwKLSAgICAgICAgICAiMC4wMTA5ODUsIDAuMDExMDI3LCAwLjAxMTAzMSwgMC4wMTEwMzMsIDAuMDExMDM0LCAwLjAxMTAzNCwgMC4wMTEwMzIiLCBcCi0gICAgICAgICAgIjAuMDEwOTY1LCAwLjAxMTAwNywgMC4wMTEwMTIsIDAuMDExMDEzLCAwLjAxMTAxNSwgMC4wMTEwMTQsIDAuMDExMDE1IiwgXAotICAgICAgICAgICIwLjAxMDk1NywgMC4wMTEsIDAuMDExMDA0LCAwLjAxMTAwNiwgMC4wMTEwMDgsIDAuMDExMDA3LCAwLjAxMTAwOCIsIFwKLSAgICAgICAgICAiMC4wMTA5NTUsIDAuMDExLCAwLjAxMTAwNCwgMC4wMTEwMDgsIDAuMDExMDA5LCAwLjAxMTAwNywgMC4wMTEwMDciLCBcCi0gICAgICAgICAgIjAuMDEwOTYyLCAwLjAxMTAwOSwgMC4wMTEwMTQsIDAuMDExMDE2LCAwLjAxMTAxNywgMC4wMTEwMTksIDAuMDExMDE4IiwgXAotICAgICAgICAgICIwLjAxMDk4MiwgMC4wMTEwMzEsIDAuMDExMDM1LCAwLjAxMTAzOCwgMC4wMTEwNCwgMC4wMTEwMzksIDAuMDExMDQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDg1MDcsIDAuMDA4NTgsIDAuMDA4NTksIDAuMDA4NTk1LCAwLjAwODU5OCwgMC4wMDg1OTksIDAuMDA4NiIsIFwKLSAgICAgICAgICAiMC4wMDg0NTYsIDAuMDA4NTI5LCAwLjAwODUzOCwgMC4wMDg1NDMsIDAuMDA4NTQ2LCAwLjAwODU0NywgMC4wMDg1NDgiLCBcCi0gICAgICAgICAgIjAuMDA4NDI4LCAwLjAwODUsIDAuMDA4NTEsIDAuMDA4NTE0LCAwLjAwODUxNywgMC4wMDg1MTksIDAuMDA4NTIiLCBcCi0gICAgICAgICAgIjAuMDA4NDEsIDAuMDA4NDgzLCAwLjAwODQ5MywgMC4wMDg0OTgsIDAuMDA4NTAxLCAwLjAwODUwMiwgMC4wMDg1MDMiLCBcCi0gICAgICAgICAgIjAuMDA4Mzk4LCAwLjAwODQ3LCAwLjAwODQ4LCAwLjAwODQ4NSwgMC4wMDg0ODgsIDAuMDA4NDg5LCAwLjAwODQ5IiwgXAotICAgICAgICAgICIwLjAwODM3OSwgMC4wMDg0NTIsIDAuMDA4NDYyLCAwLjAwODQ2NywgMC4wMDg0NywgMC4wMDg0NzEsIDAuMDA4NDcyIiwgXAotICAgICAgICAgICIwLjAwODM3MiwgMC4wMDg0NDcsIDAuMDA4NDU3LCAwLjAwODQ2MiwgMC4wMDg0NjUsIDAuMDA4NDY3LCAwLjAwODQ2OCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUk4pICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDU4Njg0NzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA1ODY2MjE7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNTg2ODQ3OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDgyMSwgMC4wMDA3OTgsIDAuMDAwNzg4LCAwLjAwMDc5NCwgMC4wMDA4MDMsIDAuMDAwODI1LCAwLjAwMDg0NiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjUzOCwgMC4wMDI1MTksIDAuMDAyNTE1LCAwLjAwMjUxOSwgMC4wMDI1MjksIDAuMDAyNTUsIDAuMDAyNTY2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRCZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjE3NzAwMSwgMC4xODY5MTgsIDAuMTk4OTk0LCAwLjIwOTc2NSwgMC4yMTg5MjQsIDAuMjMxODg0LCAwLjI0MjEwNiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJlY292ZXJ5X3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiRCZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzFfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChyZWNvdmVyeV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjI1LCAwLjA1MTI1LCAwLjAzODc1LCAwLjAyNjI1LCAwLjAxMzc1LCAwLjAwMzc1LCAtMC4wMTEyNSIsIFwKLSAgICAgICAgICAiMC4wNzM3NSwgMC4wNjI1LCAwLjA1LCAwLjAzNzUsIDAuMDI1LCAwLjAwODc1LCAwIiwgXAotICAgICAgICAgICIwLjA4NjI1LCAwLjA3NSwgMC4wNjI1LCAwLjA1LCAwLjAzNzUsIDAuMDIxMjUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4wOTg3NSwgMC4wODc1LCAwLjA3NSwgMC4wNjI1LCAwLjA1LCAwLjAzMzc1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiMC4xMTEyNSwgMC4xLCAwLjA4MTI1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDQ2MjUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMTIxMjUsIDAuMTEsIDAuMDk3NSwgMC4wODUsIDAuMDcyNSwgMC4wNjI1LCAwLjA0NzUiLCBcCi0gICAgICAgICAgIjAuMTMsIDAuMTE4NzUsIDAuMTA2MjUsIDAuMDkzNzUsIDAuMDg3NSwgMC4wNzEyNSwgMC4wNTYyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJlY292ZXJ5X3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUQiOwotICAgICAgc2RmX2NvbmQgOiAiRCA9PSAxJ2IwIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChyZWNvdmVyeV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzUsIDAuMDgsIDAuMDkyNSwgMC4xMDUsIDAuMTExMjUsIDAuMTI3NSwgMC4xNDI1IiwgXAotICAgICAgICAgICIwLjA2Mzc1LCAwLjA3NSwgMC4wODEyNSwgMC4wOTM3NSwgMC4xLCAwLjExNjI1LCAwLjEzMTI1IiwgXAotICAgICAgICAgICIwLjA1NzUsIDAuMDYyNSwgMC4wNzUsIDAuMDg3NSwgMC4wOTM3NSwgMC4xMSwgMC4xMjUiLCBcCi0gICAgICAgICAgIjAuMDUxMjUsIDAuMDU2MjUsIDAuMDY4NzUsIDAuMDgxMjUsIDAuMDg3NSwgMC4xMDM3NSwgMC4xMTg3NSIsIFwKLSAgICAgICAgICAiMC4wNDUsIDAuMDU2MjUsIDAuMDYyNSwgMC4wNzUsIDAuMDgxMjUsIDAuMDk3NSwgMC4xMTI1IiwgXAotICAgICAgICAgICIwLjA0MTI1LCAwLjA0NjI1LCAwLjA1ODc1LCAwLjA2NSwgMC4wNzc1LCAwLjA5Mzc1LCAwLjEwMjUiLCBcCi0gICAgICAgICAgIjAuMDM4NzUsIDAuMDQzNzUsIDAuMDU2MjUsIDAuMDYyNSwgMC4wNzUsIDAuMDg1LCAwLjEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiByZW1vdmFsX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiRCZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzFfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChyZW1vdmFsX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMTI1LCAtMC4wMDEyNSwgMC4wMTEyNSwgMC4wMjM3NSwgMC4wMywgMC4wNDYyNSwgMC4wNTUiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTI1LCAwLCAwLjAxMjUsIDAuMDE4NzUsIDAuMDM1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDI1LCAtMC4wMTI1LCAwLCAwLjAwNjI1LCAwLjAyMjUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLjAxLCAwLjAxODc1IiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAxMjUsIDAuMDAzNzUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDcxMjUsIC0wLjA2LCAtMC4wNDc1LCAtMC4wMzUsIC0wLjAyODc1LCAtMC4wMTI1LCAtMC4wMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDgsIC0wLjA2ODc1LCAtMC4wNTYyNSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAyMTI1LCAtMC4wMTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTTikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxODcxMzI7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxODcxMzI7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxODcxMDE7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNjUzLCAwLjAwMDY1MiwgMC4wMDA2NTIsIDAuMDAwNjUyLCAwLjAwMDY1MiwgMC4wMDA2NTIsIDAuMDAwNjUyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNjU0LCAwLjAwMDY1NCwgMC4wMDA2NTQsIDAuMDAwNjU0LCAwLjAwMDY1NCwgMC4wMDA2NTQsIDAuMDAwNjU0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRCYhUk4iOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1JOX0VRXzAgPT0gMSdiMSI7Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4xMTU1NjksIDAuMTI0Nzg1LCAwLjEzNjcwMiwgMC4xNDg1NjUsIDAuMTU5ODg5LCAwLjE3NjgwNSwgMC4xODk2MzIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiByZWNvdmVyeV9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEJlJOIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9STl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHJlY292ZXJ5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjI1LCAtMC4wMDUsIC0wLjAxNzUsIC0wLjAzLCAtMC4wNDI1LCAtMC4wNTg3NSwgLTAuMDczNzUiLCBcCi0gICAgICAgICAgIjAuMDE3NSwgMC4wMDYyNSwgLTAuMDA2MjUsIC0wLjAyNSwgLTAuMDM3NSwgLTAuMDUzNzUsIC0wLjA2MjUiLCBcCi0gICAgICAgICAgIjAuMDMsIDAuMDEyNSwgMCwgLTAuMDEyNSwgLTAuMDI1LCAtMC4wNDEyNSwgLTAuMDU2MjUiLCBcCi0gICAgICAgICAgIjAuMDM2MjUsIDAuMDI1LCAwLjAxMjUsIDAsIC0wLjAxMjUsIC0wLjAyODc1LCAtMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4wNDg3NSwgMC4wMzc1LCAwLjAyNSwgMC4wMDYyNSwgMCwgLTAuMDIyNSwgLTAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMDY1LCAwLjA1Mzc1LCAwLjA0MTI1LCAwLjAyODc1LCAwLjAxNjI1LCAwLCAtMC4wMTUiLCBcCi0gICAgICAgICAgIjAuMDgsIDAuMDY4NzUsIDAuMDUsIDAuMDM3NSwgMC4wMjUsIDAuMDA4NzUsIDAiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiByZW1vdmFsX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUQmUk4iOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1JOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQocmVtb3ZhbF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzc1LCAwLjA0ODc1LCAwLjA2MTI1LCAwLjA3Mzc1LCAwLjA4NjI1LCAwLjEwMjUsIDAuMTExMjUiLCBcCi0gICAgICAgICAgIjAuMDMyNSwgMC4wMzc1LCAwLjA1LCAwLjA2ODc1LCAwLjA3NSwgMC4wOTEyNSwgMC4xMDYyNSIsIFwKLSAgICAgICAgICAiMC4wMiwgMC4wMzEyNSwgMC4wNDM3NSwgMC4wNTYyNSwgMC4wNjg3NSwgMC4wNzg3NSwgMC4wOTM3NSIsIFwKLSAgICAgICAgICAiMC4wMDc1LCAwLjAxODc1LCAwLjAzMTI1LCAwLjA0Mzc1LCAwLjA1NjI1LCAwLjA3MjUsIDAuMDgxMjUiLCBcCi0gICAgICAgICAgIjAuMDAxMjUsIDAuMDEyNSwgMC4wMjUsIDAuMDM3NSwgMC4wNDM3NSwgMC4wNiwgMC4wNzUiLCBcCi0gICAgICAgICAgIi0wLjAxNSwgLTAuMDAzNzUsIDAuMDA4NzUsIDAuMDIxMjUsIDAuMDMzNzUsIDAuMDQzNzUsIDAuMDU4NzUiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTg3NSwgMCwgMC4wMDYyNSwgMC4wMTg3NSwgMC4wMzUsIDAuMDQzNzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBERkZTUlgxICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKERGRlNSWDEpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC40MTg2MzE7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgZmYgKE4zNSxRQklOVCkgewotICAgIG5leHRfc3RhdGUgOiAiRCI7Ci0gICAgY2xvY2tlZF9vbiA6ICJDSyI7Ci0gICAgY2xlYXIgOiAiKCFSTikiOwotICAgIHByZXNldCA6ICIoIVNOKSI7Ci0gICAgY2xlYXJfcHJlc2V0X3ZhcjEgOiBIOwotICAgIGNsZWFyX3ByZXNldF92YXIyIDogTDsKLSAgfQotICBwaW4oQ0spICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDU5MjExMzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA1OTE5MjQ7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNTkyMTEzOwotICAgIGNsb2NrIDogdHJ1ZTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDM0NTgsIDAuMDAzNDMsIDAuMDAzNDE4LCAwLjAwMzQxOCwgMC4wMDM0MjcsIDAuMDAzNDUxLCAwLjAwMzQ3MSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNjk5MiwgMC4wMDY5NjMsIDAuMDA2OTQ0LCAwLjAwNjk0NiwgMC4wMDY5NDYsIDAuMDA2OTc3LCAwLjAwNjk5OCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQmUk4mU04iOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1JOX0VRXzFfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjE4MzI1MiwgMC4xOTMzOTQsIDAuMjA2MTQxLCAwLjIxNzg2NiwgMC4yMjgyNjMsIDAuMjQyNTAyLCAwLjI1MzYxOCIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMTIzMjk5LCAwLjEzMzA4MywgMC4xNDUzMywgMC4xNTY2NzEsIDAuMTY2MDY5LCAwLjE3OTEzNSwgMC4xODkwMjgiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEQpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDU4OTcyMzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA1ODgxODk7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNTg5NzIzOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzA5NSwgMC4wMDMwNzIsIDAuMDAzMDU5LCAwLjAwMzA1MSwgMC4wMDMwNDgsIDAuMDAzMDUsIDAuMDAzMDUzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyOTM3LCAwLjAwMjkyMiwgMC4wMDI5MTMsIDAuMDAyOTA4LCAwLjAwMjkwNCwgMC4wMDI5MDIsIDAuMDAyOTA0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlJOJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIlJOX0VRXzFfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMTg3NSwgLTAuMDEzNzUsIC0wLjAwNzUsIC0wLjAwMTI1LCAwLjAwNSwgMC4wMTUsIDAuMDE3NSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMCwgMC4wMDM3NSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDg3NSwgMCIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjA0Mzc1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMjUsIC0wLjAxNSwgLTAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMjEyNSwgLTAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjA3MTI1LCAtMC4wNiwgLTAuMDUzNzUsIC0wLjA0NzUsIC0wLjA0MTI1LCAtMC4wMzEyNSwgLTAuMDI4NzUiLCBcCi0gICAgICAgICAgIi0wLjA4LCAtMC4wNjg3NSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNCwgLTAuMDM3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE4NzUsIDAuMDMsIDAuMDQyNSwgMC4wNTUsIDAuMDYxMjUsIDAuMDc3NSwgMC4wODYyNSIsIFwKLSAgICAgICAgICAiMC4wMTM3NSwgMC4wMTg3NSwgMC4wMzc1LCAwLjA0Mzc1LCAwLjA1NjI1LCAwLjA2NjI1LCAwLjA3NSIsIFwKLSAgICAgICAgICAiMC4wMDEyNSwgMC4wMTI1LCAwLjAyNSwgMC4wMzc1LCAwLjA0Mzc1LCAwLjA2LCAwLjA2ODc1IiwgXAotICAgICAgICAgICItMC4wMDUsIDAuMDA2MjUsIDAuMDE4NzUsIDAuMDMxMjUsIDAuMDM3NSwgMC4wNTM3NSwgMC4wNjI1IiwgXAotICAgICAgICAgICItMC4wMDUsIDAsIDAuMDEyNSwgMC4wMjUsIDAuMDMxMjUsIDAuMDQ3NSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiLTAuMDE1LCAtMC4wMDM3NSwgMC4wMDg3NSwgMC4wMTUsIDAuMDI3NSwgMC4wMzc1LCAwLjA1MjUiLCBcCi0gICAgICAgICAgIi0wLjAxNzUsIC0wLjAxMjUsIDAsIDAuMDEyNSwgMC4wMTg3NSwgMC4wMzUsIDAuMDQzNzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlJOJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIlJOX0VRXzFfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODc1LCAwLjA3LCAwLjA1NzUsIDAuMDQ1LCAwLjAzODc1LCAwLjAyMjUsIDAuMDEzNzUiLCBcCi0gICAgICAgICAgIjAuMDkyNSwgMC4wODEyNSwgMC4wNjg3NSwgMC4wNTYyNSwgMC4wNDM3NSwgMC4wMzM3NSwgMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMTA1LCAwLjA5Mzc1LCAwLjA4MTI1LCAwLjA2ODc1LCAwLjA1NjI1LCAwLjA0NjI1LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIjAuMTExMjUsIDAuMSwgMC4wODc1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNTI1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjEyMzc1LCAwLjExMjUsIDAuMSwgMC4wODc1LCAwLjA3NSwgMC4wNjUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIjAuMTMzNzUsIDAuMTIyNSwgMC4xMSwgMC4wOTc1LCAwLjA5MTI1LCAwLjA3NSwgMC4wNjYyNSIsIFwKLSAgICAgICAgICAiMC4xNDg3NSwgMC4xMzEyNSwgMC4xMTg3NSwgMC4xMDYyNSwgMC4xLCAwLjA4Mzc1LCAwLjA3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1NjI1LCAwLjA0NSwgMC4wMzI1LCAwLjAyLCAwLjAwNzUsIC0wLjAwODc1LCAtMC4wMjM3NSIsIFwKLSAgICAgICAgICAiMC4wNjEyNSwgMC4wNSwgMC4wMzc1LCAwLjAyNSwgMC4wMTI1LCAtMC4wMDM3NSwgLTAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4wNzM3NSwgMC4wNjI1LCAwLjA1LCAwLjAzNzUsIDAuMDI1LCAwLjAwODc1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiMC4wOCwgMC4wNjg3NSwgMC4wNTYyNSwgMC4wNDM3NSwgMC4wMzEyNSwgMC4wMTUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMDg2MjUsIDAuMDc1LCAwLjA2MjUsIDAuMDUsIDAuMDM3NSwgMC4wMjc1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMTAyNSwgMC4wOTEyNSwgMC4wNzI1LCAwLjA2NjI1LCAwLjA1Mzc1LCAwLjAzNzUsIDAuMDIyNSIsIFwKLSAgICAgICAgICAiMC4xMTEyNSwgMC4xLCAwLjA4MTI1LCAwLjA3NSwgMC4wNjI1LCAwLjA0NjI1LCAwLjAzMTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihRKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMjYwNzQ0OwotICAgIGZ1bmN0aW9uIDogIk4zNSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3NlbnNlIDogbm9uX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiByaXNpbmdfZWRnZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTUzODQsIDAuMTc4NjE4LCAwLjMxODIxMSwgMC40NDEwODgsIDAuNjA1MTgyLCAwLjkzMzI4NCwgMS4xMzgwNiIsIFwKLSAgICAgICAgICAiMC4xNjM5MjksIDAuMTg4NjU5LCAwLjMyODI5MiwgMC40NTEwNiwgMC42MTQ5MTYsIDAuOTQzMzU5LCAxLjE0Nzg3IiwgXAotICAgICAgICAgICIwLjE3NjQ2NywgMC4yMDEyNTYsIDAuMzQwODM5LCAwLjQ2MzcxNywgMC42Mjc5NTgsIDAuOTU1MTk0LCAxLjE2MDcyIiwgXAotICAgICAgICAgICIwLjE4ODA4MywgMC4yMTI3ODgsIDAuMzUyNDM2LCAwLjQ3NTUxNCwgMC42MzkwNDcsIDAuOTY2OTAxLCAxLjE3MjMxIiwgXAotICAgICAgICAgICIwLjE5ODA5MSwgMC4yMjI4MTcsIDAuMzYyMzk3LCAwLjQ4NTM2NiwgMC42NDk1LCAwLjk3Njg0NSwgMS4xODI0MSIsIFwKLSAgICAgICAgICAiMC4yMTI1MDIsIDAuMjM3MjMxLCAwLjM3Njg5MiwgMC40OTk3ODEsIDAuNjYzNjc4LCAwLjk5MTI2MSwgMS4xOTY4MyIsIFwKLSAgICAgICAgICAiMC4yMjMxNDksIDAuMjQ3ODcyLCAwLjM4NzMyNSwgMC41MTA0MTQsIDAuNjc0NDE5LCAxLjAwMTg5LCAxLjIwNzQ3Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5NDg1NSwgMC4xNDQxODEsIDAuNDMwNDc4LCAwLjY4NDYyNSwgMS4wMjQyNSwgMS42OTk0NywgMi4xMjY4MiIsIFwKLSAgICAgICAgICAiMC4wOTQ4OTUsIDAuMTQ0MTczLCAwLjQzMDQ3MSwgMC42ODM4MzQsIDEuMDIyMDEsIDEuNjk5ODIsIDIuMTI2NTMiLCBcCi0gICAgICAgICAgIjAuMDk0OTcxLCAwLjE0NDU1NSwgMC40MzA0NzEsIDAuNjg0NjE4LCAxLjAyMjE3LCAxLjY5ODU2LCAyLjEyNjgzIiwgXAotICAgICAgICAgICIwLjA5NDk1NywgMC4xNDQxOTcsIDAuNDMwNDcyLCAwLjY4NDk4MywgMS4wMjI0OSwgMS43MDAzLCAyLjEyNjc5IiwgXAotICAgICAgICAgICIwLjA5NDg5MSwgMC4xNDQxOTEsIDAuNDMwNDUsIDAuNjg0Njg5LCAxLjAyNDMyLCAxLjY5NzgyLCAyLjEyMjUyIiwgXAotICAgICAgICAgICIwLjA5NTU4OCwgMC4xNDQxNjcsIDAuNDMwNDczLCAwLjY4NDY3MywgMS4wMjM4MiwgMS42OTc3OSwgMi4xMjM0IiwgXAotICAgICAgICAgICIwLjA5NTAyMiwgMC4xNDQxOTQsIDAuNDI5ODE2LCAwLjY4NDY3MSwgMS4wMjQxNywgMS42OTk3MywgMi4xMjMyMyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNzA4MTksIDAuMTk1ODM1LCAwLjMzNjA0OCwgMC40NTk3MDYsIDAuNjI0OTA5LCAwLjk1NDI0MywgMS4xNjA3MiIsIFwKLSAgICAgICAgICAiMC4xODA5NjMsIDAuMjA1OTMzLCAwLjM0NjMyMywgMC40Njk4NiwgMC42MzQ3ODYsIDAuOTY0NzU5LCAxLjE3MDgzIiwgXAotICAgICAgICAgICIwLjE5MzcwNCwgMC4yMTg3NDEsIDAuMzU4OTMsIDAuNDgyOTM0LCAwLjY0NzgwMywgMC45NzcxNTcsIDEuMTgzNiIsIFwKLSAgICAgICAgICAiMC4yMDU0MjksIDAuMjMwNDUyLCAwLjM3MDY1NSwgMC40OTQ1MDcsIDAuNjU5NTIsIDAuOTg4ODY4LCAxLjE5NTMyIiwgXAotICAgICAgICAgICIwLjIxNTg0OSwgMC4yNDA3OTgsIDAuMzgxMDQ3LCAwLjUwNDcyMiwgMC42Njk3ODUsIDAuOTk5NjE0LCAxLjIwNTUzIiwgXAotICAgICAgICAgICIwLjIzMDA1NSwgMC4yNTUwMjEsIDAuMzk1MTUsIDAuNTE4OTUzLCAwLjY4NDA0LCAxLjAxMzg2LCAxLjIxOTkxIiwgXAotICAgICAgICAgICIwLjI0MTE2MiwgMC4yNjYxOTYsIDAuNDA2Mzg2LCAwLjUzMDM4MywgMC42OTUyNTIsIDEuMDI0NzgsIDEuMjMxMDIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDkyODk0LCAwLjE0MTUwNSwgMC40MjE0OTEsIDAuNjY4NjU4LCAxLjAwMjA2LCAxLjY2MzI2LCAyLjA4NTA3IiwgXAotICAgICAgICAgICIwLjA5MzQ2NywgMC4xNDE1NCwgMC40MjIzNTMsIDAuNjcwNzk3LCAxLjAwMTkyLCAxLjY2OTQyLCAyLjA4NTA0IiwgXAotICAgICAgICAgICIwLjA5MzIzMywgMC4xNDE3OTcsIDAuNDIxNDc4LCAwLjY3MDYyNywgMS4wMDIwNywgMS42NjY4OCwgMi4wODUwNiIsIFwKLSAgICAgICAgICAiMC4wOTI4OTEsIDAuMTQxMTE4LCAwLjQyMTQ2NywgMC42NzE3NTcsIDEuMDAyMTMsIDEuNjY2NywgMi4wODUwNiIsIFwKLSAgICAgICAgICAiMC4wOTI4NjIsIDAuMTQxNjc0LCAwLjQyMTM5OSwgMC42NzA3NzUsIDEuMDA0MjEsIDEuNjY5MzcsIDIuMDgyMTciLCBcCi0gICAgICAgICAgIjAuMDkzNDY5LCAwLjE0MTY2MiwgMC40MjE1MjksIDAuNjcwNzk1LCAxLjAwNDMsIDEuNjY5NDgsIDIuMDg0OTgiLCBcCi0gICAgICAgICAgIjAuMDkyODA2LCAwLjE0MjA1NiwgMC40MjE1MzYsIDAuNjcwMDk4LCAxLjAwMjA3LCAxLjY2NjI2LCAyLjA4NDk4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiBjbGVhcjsKLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjA2NDQxLCAwLjIzMTMwMSwgMC4zNzE0NzgsIDAuNDk1NDA5LCAwLjY2MDIwOSwgMC45ODk4NzQsIDEuMTk1ODciLCBcCi0gICAgICAgICAgIjAuMjE2MywgMC4yNDEyMjQsIDAuMzgxNDM2LCAwLjUwNTI4OCwgMC42Njk4NCwgMC45OTk3MSwgMS4yMDU4MyIsIFwKLSAgICAgICAgICAiMC4yMjc5NjIsIDAuMjUyOTA4LCAwLjM5Mjk5NCwgMC41MTY5NjIsIDAuNjgxNjc4LCAxLjAxMTM4LCAxLjIxNzUiLCBcCi0gICAgICAgICAgIjAuMjM3ODYyLCAwLjI2MjgxLCAwLjQwMjkxOSwgMC41MjY4NzMsIDAuNjkxNjQzLCAxLjAyMTEsIDEuMjI3NDMiLCBcCi0gICAgICAgICAgIjAuMjQ2ODM4LCAwLjI3MTcwNCwgMC40MTE4OTgsIDAuNTM1NTExLCAwLjcwMDYzMSwgMS4wMzAyMiwgMS4yMzY0IiwgXAotICAgICAgICAgICIwLjI1ODM3MiwgMC4yODMyMTEsIDAuNDIzNTQxLCAwLjU0NzM1NCwgMC43MTIxNTcsIDEuMDQxODEsIDEuMjQ3NjgiLCBcCi0gICAgICAgICAgIjAuMjY2ODk3LCAwLjI5MTczMywgMC40MzE5MzEsIDAuNTU1ODc4LCAwLjcyMDY1OSwgMS4wNTAxNSwgMS4yNTY0NSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTM1MDYsIDAuMTQxODU2LCAwLjQyMjQwMywgMC42NzE5NzYsIDEuMDA0ODMsIDEuNjcsIDIuMDg1NzUiLCBcCi0gICAgICAgICAgIjAuMDkzNTgzLCAwLjE0MTkwNywgMC40MjI0NzEsIDAuNjcxOTA2LCAxLjAwNDQ3LCAxLjY2OTY1LCAyLjA4NTkzIiwgXAotICAgICAgICAgICIwLjA5MzUzMywgMC4xNDE1MTgsIDAuNDIxNTU5LCAwLjY3MTc1MywgMS4wMDQ1OSwgMS42Njk4MiwgMi4wODU4NiIsIFwKLSAgICAgICAgICAiMC4wOTM1NTYsIDAuMTQxNTYxLCAwLjQyMjQwMywgMC42NzAxOTIsIDEuMDA0NzYsIDEuNjY5NDQsIDIuMDg1OTUiLCBcCi0gICAgICAgICAgIjAuMDkzNjE4LCAwLjE0MTc0NSwgMC40MjIzODEsIDAuNjcwMjcxLCAxLjAwNDc0LCAxLjY2OTg1LCAyLjA4NTgyIiwgXAotICAgICAgICAgICIwLjA5MzYxNSwgMC4xNDEzMTIsIDAuNDIyNDE5LCAwLjY3MTkwOSwgMS4wMDQ4MywgMS42Njk5NywgMi4wODQ5MSIsIFwKLSAgICAgICAgICAiMC4wOTM1OTIsIDAuMTQxOTQ1LCAwLjQyMTQ4NSwgMC42NzE5OTQsIDEuMDA0NzcsIDEuNjY5NSwgMi4wODU5NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcHJlc2V0OwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNDY5NjEsIDAuMTcxNzIzLCAwLjMxMTQ2OCwgMC40MzQzNTIsIDAuNTk4MzUyLCAwLjkyNjE4OCwgMS4xMzExOSIsIFwKLSAgICAgICAgICAiMC4xNTY3OTksIDAuMTgxNDkzLCAwLjMyMTI0MywgMC40NDQxOTksIDAuNjA3ODY1LCAwLjkzNjAzNCwgMS4xNDAxNyIsIFwKLSAgICAgICAgICAiMC4xNjkwMDQsIDAuMTkzNzY1LCAwLjMzMzI4NSwgMC40NTYxNTIsIDAuNjE5OTkyLCAwLjk0ODIyNiwgMS4xNTMyNSIsIFwKLSAgICAgICAgICAiMC4xODExODUsIDAuMjA1OTczLCAwLjM0NTUxNCwgMC40Njg1NzksIDAuNjMyNSwgMC45NjA0MzUsIDEuMTY1NDIiLCBcCi0gICAgICAgICAgIjAuMTkyOTE1LCAwLjIxNzU2NSwgMC4zNTY5ODUsIDAuNDgwMzA4LCAwLjY0NDExNSwgMC45NzIxNSwgMS4xNzY0OSIsIFwKLSAgICAgICAgICAiMC4yMTAyNDksIDAuMjM0OTg4LCAwLjM3NDMwOSwgMC40OTc3MDQsIDAuNjYxNTU3LCAwLjk4ODk5MiwgMS4xOTQ0NyIsIFwKLSAgICAgICAgICAiMC4yMjQyMjIsIDAuMjQ4ODkzLCAwLjM4ODQyMywgMC41MTE3MTcsIDAuNjc1NTQ2LCAxLjAwMzI0LCAxLjIwODQxIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5NTExOSwgMC4xNDQzODUsIDAuNDMwNzcxLCAwLjY4NDkxOSwgMS4wMjQxNywgMS43MDI4MSwgMi4xMjY5MiIsIFwKLSAgICAgICAgICAiMC4wOTUwOTQsIDAuMTQ0MzMxLCAwLjQzMDcwOSwgMC42ODQ5MTgsIDEuMDI0MTEsIDEuNzAyODQsIDIuMTI2NDkiLCBcCi0gICAgICAgICAgIjAuMDk1MDkxLCAwLjE0NDM1NiwgMC40MzA3MTQsIDAuNjg0OTE3LCAxLjAyNDI1LCAxLjcwMjgzLCAyLjEyNjkiLCBcCi0gICAgICAgICAgIjAuMDk1MTE2LCAwLjE0NDIzNSwgMC40MzAyNiwgMC42ODQ4NzgsIDEuMDI0MTIsIDEuNzAyODIsIDIuMTI2ODgiLCBcCi0gICAgICAgICAgIjAuMDk0NjgxLCAwLjE0NDEwMSwgMC40MzA3NDEsIDAuNjg0OTA3LCAxLjAyNDA5LCAxLjcwMjgxLCAyLjEyNjE0IiwgXAotICAgICAgICAgICIwLjA5NDYyOSwgMC4xNDQzMTIsIDAuNDMwNjYzLCAwLjY4NDkwNywgMS4wMjQxMiwgMS43MDI4LCAyLjEyNjkiLCBcCi0gICAgICAgICAgIjAuMDk1MTc1LCAwLjE0NDI5OSwgMC40MzA3MDEsIDAuNjg0OTI5LCAxLjAyNDE1LCAxLjcwMjc1LCAyLjEyNjc1Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE5MTU2NywgMC4yMTY0NDksIDAuMzU2OTE5LCAwLjQ4MDc4MSwgMC42NDU2NjMsIDAuOTc1Mjk4LCAxLjE4MTQ0IiwgXAotICAgICAgICAgICIwLjIwMTMzOCwgMC4yMjYyMTksIDAuMzY2NTI3LCAwLjQ5MDUxNSwgMC42NTUzNjYsIDAuOTg1MDc1LCAxLjE5MDk5IiwgXAotICAgICAgICAgICIwLjIxMjMwNCwgMC4yMzcyNjQsIDAuMzc3NDgsIDAuNTAxNTA2LCAwLjY2NjI3NywgMC45OTYwMjUsIDEuMjAyMTYiLCBcCi0gICAgICAgICAgIjAuMjIzMDA2LCAwLjI0Nzg5NSwgMC4zODgyMTQsIDAuNTEyMjE0LCAwLjY3NzA1MSwgMS4wMDYzNywgMS4yMTI3NyIsIFwKLSAgICAgICAgICAiMC4yMzM3NDgsIDAuMjU4NjczLCAwLjM5OTAxNiwgMC41MjI5NiwgMC42ODc3NjgsIDEuMDE3NDQsIDEuMjIzNjEiLCBcCi0gICAgICAgICAgIjAuMjUwNDIsIDAuMjc1MzQsIDAuNDE1NjM2LCAwLjUzOTY1NiwgMC43MDQ0NzEsIDEuMDMzODQsIDEuMjQwMzIiLCBcCi0gICAgICAgICAgIjAuMjY0NTU2LCAwLjI4OTUwOCwgMC40Mjk3MzYsIDAuNTUzNzYyLCAwLjcxODUyNiwgMS4wNDgyOCwgMS4yNTQ0MSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTM1ODgsIDAuMTQxNzk4LCAwLjQyMjM5NiwgMC42NzAxNTEsIDEuMDA0NTEsIDEuNjY5ODIsIDIuMDg1OTYiLCBcCi0gICAgICAgICAgIjAuMDkzNjMxLCAwLjE0MTk2OCwgMC40MjE2NTIsIDAuNjcwMzcsIDEuMDA0ODMsIDEuNjY5OTgsIDIuMDg1MTYiLCBcCi0gICAgICAgICAgIjAuMDkzNTUzLCAwLjE0MTc3MSwgMC40MjE2MTIsIDAuNjcwMjA4LCAxLjAwNDU5LCAxLjY2OTgsIDIuMDg1ODIiLCBcCi0gICAgICAgICAgIjAuMDkzNTgyLCAwLjE0MTc2NywgMC40MjIzNTEsIDAuNjcwNDIxLCAxLjAwNDc5LCAxLjY2OTMyLCAyLjA4NTI2IiwgXAotICAgICAgICAgICIwLjA5MzYyMywgMC4xNDIwMTYsIDAuNDIxNjcyLCAwLjY3MDMxLCAxLjAwNDcsIDEuNjY5NTYsIDIuMDg1NzgiLCBcCi0gICAgICAgICAgIjAuMDkzNjI5LCAwLjE0MjAxOCwgMC40MjE1NTYsIDAuNjcwMzE1LCAxLjAwNDc0LCAxLjY2OTM0LCAyLjA4NTg4IiwgXAotICAgICAgICAgICIwLjA5MzU3MSwgMC4xNDE5NDksIDAuNDIxNDkyLCAwLjY3MTIwMiwgMS4wMDQ1NywgMS42Njk3OSwgMi4wODU3OSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQ2NzksIDAuMDA0Njg2LCAwLjAwNDY5NywgMC4wMDQ2OTksIDAuMDA0NzAxLCAwLjAwNDcwMiwgMC4wMDQ3MDIiLCBcCi0gICAgICAgICAgIjAuMDA0NjYzLCAwLjAwNDY3LCAwLjAwNDY4MSwgMC4wMDQ2ODMsIDAuMDA0Njg1LCAwLjAwNDY4NiwgMC4wMDQ2ODYiLCBcCi0gICAgICAgICAgIjAuMDA0NjU0LCAwLjAwNDY2MiwgMC4wMDQ2NzIsIDAuMDA0Njc2LCAwLjAwNDY3NiwgMC4wMDQ2NzcsIDAuMDA0Njc3IiwgXAotICAgICAgICAgICIwLjAwNDY1NCwgMC4wMDQ2NjIsIDAuMDA0NjczLCAwLjAwNDY3NSwgMC4wMDQ2NzcsIDAuMDA0Njc2LCAwLjAwNDY3OCIsIFwKLSAgICAgICAgICAiMC4wMDQ2NjMsIDAuMDA0NjcxLCAwLjAwNDY4MiwgMC4wMDQ2ODQsIDAuMDA0Njg0LCAwLjAwNDY4NiwgMC4wMDQ2ODYiLCBcCi0gICAgICAgICAgIjAuMDA0NjczLCAwLjAwNDY4LCAwLjAwNDY5MSwgMC4wMDQ2OTMsIDAuMDA0Njk0LCAwLjAwNDY5NSwgMC4wMDQ2OTYiLCBcCi0gICAgICAgICAgIjAuMDA0NjgsIDAuMDA0Njg4LCAwLjAwNDcsIDAuMDA0NzAyLCAwLjAwNDcwMywgMC4wMDQ3MDQsIDAuMDA0NzA1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0NDYzLCAwLjAwNDQ3MSwgMC4wMDQ0OCwgMC4wMDQ0ODUsIDAuMDA0NDg1LCAwLjAwNDQ4OCwgMC4wMDQ0ODYiLCBcCi0gICAgICAgICAgIjAuMDA0NDQ4LCAwLjAwNDQ1NiwgMC4wMDQ0NjcsIDAuMDA0NDcsIDAuMDA0NDcxLCAwLjAwNDQ3MSwgMC4wMDQ0NzEiLCBcCi0gICAgICAgICAgIjAuMDA0NDQ3LCAwLjAwNDQ1NCwgMC4wMDQ0NjQsIDAuMDA0NDY3LCAwLjAwNDQ2OSwgMC4wMDQ0NywgMC4wMDQ0NyIsIFwKLSAgICAgICAgICAiMC4wMDQ0NTMsIDAuMDA0NDYxLCAwLjAwNDQ3MiwgMC4wMDQ0NzQsIDAuMDA0NDc2LCAwLjAwNDQ3OCwgMC4wMDQ0NzciLCBcCi0gICAgICAgICAgIjAuMDA0NDY3LCAwLjAwNDQ3NSwgMC4wMDQ0ODYsIDAuMDA0NDg4LCAwLjAwNDQ4OSwgMC4wMDQ0ODksIDAuMDA0NDkxIiwgXAotICAgICAgICAgICIwLjAwNDQ4NCwgMC4wMDQ0OTIsIDAuMDA0NTAzLCAwLjAwNDUwNSwgMC4wMDQ1MDYsIDAuMDA0NTA3LCAwLjAwNDUwOCIsIFwKLSAgICAgICAgICAiMC4wMDQ1MDMsIDAuMDA0NTExLCAwLjAwNDUyMiwgMC4wMDQ1MjQsIDAuMDA0NTI1LCAwLjAwNDUyNywgMC4wMDQ1MjYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1MjE0LCAwLjAwNTIyLCAwLjAwNTIxOSwgMC4wMDUyMTUsIDAuMDA1MjE1LCAwLjAwNTIwOCwgMC4wMDUyMDciLCBcCi0gICAgICAgICAgIjAuMDA1MjAxLCAwLjAwNTIwOCwgMC4wMDUyMDcsIDAuMDA1MjA0LCAwLjAwNTIsIDAuMDA1MTk1LCAwLjAwNTE5NyIsIFwKLSAgICAgICAgICAiMC4wMDUxOTksIDAuMDA1MjA2LCAwLjAwNTIwNiwgMC4wMDUyMDIsIDAuMDA1MTk2LCAwLjAwNTE5NCwgMC4wMDUxOTUiLCBcCi0gICAgICAgICAgIjAuMDA1MjAxLCAwLjAwNTIwNywgMC4wMDUyMDcsIDAuMDA1MjAzLCAwLjAwNTIwMSwgMC4wMDUxOTcsIDAuMDA1MTk2IiwgXAotICAgICAgICAgICIwLjAwNTIwMSwgMC4wMDUyMDgsIDAuMDA1MjA4LCAwLjAwNTIwNCwgMC4wMDUyLCAwLjAwNTE5OCwgMC4wMDUxOTUiLCBcCi0gICAgICAgICAgIjAuMDA1MjA3LCAwLjAwNTIxMywgMC4wMDUyMTUsIDAuMDA1MjExLCAwLjAwNTIwNywgMC4wMDUyMDEsIDAuMDA1MjAzIiwgXAotICAgICAgICAgICIwLjAwNTIxNSwgMC4wMDUyMjEsIDAuMDA1MjIyLCAwLjAwNTIxOCwgMC4wMDUyMTQsIDAuMDA1MjEsIDAuMDA1MjA5Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3Bvd2VyKHNjYWxhcikgewotICAgICAgICB2YWx1ZXMoIjAiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1Mzc4LCAwLjAwNTM4NSwgMC4wMDUzOTUsIDAuMDA1Mzk3LCAwLjAwNTM5OCwgMC4wMDUzOTksIDAuMDA1Mzk5IiwgXAotICAgICAgICAgICIwLjAwNTM2NSwgMC4wMDUzNzIsIDAuMDA1MzgyLCAwLjAwNTM4NCwgMC4wMDUzODUsIDAuMDA1Mzg2LCAwLjAwNTM4NiIsIFwKLSAgICAgICAgICAiMC4wMDUzNTgsIDAuMDA1MzY1LCAwLjAwNTM3NSwgMC4wMDUzNzcsIDAuMDA1Mzc4LCAwLjAwNTM3NywgMC4wMDUzNzkiLCBcCi0gICAgICAgICAgIjAuMDA1MzU0LCAwLjAwNTM2MSwgMC4wMDUzNzIsIDAuMDA1Mzc0LCAwLjAwNTM3NSwgMC4wMDUzNzUsIDAuMDA1Mzc2IiwgXAotICAgICAgICAgICIwLjAwNTM1NCwgMC4wMDUzNjIsIDAuMDA1MzcxLCAwLjAwNTM3MywgMC4wMDUzNzUsIDAuMDA1Mzc2LCAwLjAwNTM3NiIsIFwKLSAgICAgICAgICAiMC4wMDUzNTYsIDAuMDA1MzYzLCAwLjAwNTM3MywgMC4wMDUzNzYsIDAuMDA1Mzc2LCAwLjAwNTM3NywgMC4wMDUzNzciLCBcCi0gICAgICAgICAgIjAuMDA1MzYxLCAwLjAwNTM2OSwgMC4wMDUzNzksIDAuMDA1MzgxLCAwLjAwNTM4MywgMC4wMDUzODQsIDAuMDA1Mzg0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzOTM4LCAwLjAwMzk0NiwgMC4wMDM5NTgsIDAuMDAzOTYsIDAuMDAzOTYxLCAwLjAwMzk2MiwgMC4wMDM5NjIiLCBcCi0gICAgICAgICAgIjAuMDAzOTIyLCAwLjAwMzkzLCAwLjAwMzk0MSwgMC4wMDM5NDMsIDAuMDAzOTQ0LCAwLjAwMzk0MywgMC4wMDM5NDYiLCBcCi0gICAgICAgICAgIjAuMDAzOTEyLCAwLjAwMzkyLCAwLjAwMzkzMSwgMC4wMDM5MzMsIDAuMDAzOTM0LCAwLjAwMzkzNywgMC4wMDM5MzciLCBcCi0gICAgICAgICAgIjAuMDAzOTA2LCAwLjAwMzkxNCwgMC4wMDM5MjUsIDAuMDAzOTI4LCAwLjAwMzkzMiwgMC4wMDM5MzIsIDAuMDAzOTMyIiwgXAotICAgICAgICAgICIwLjAwMzkwMiwgMC4wMDM5MSwgMC4wMDM5MjIsIDAuMDAzOTI0LCAwLjAwMzkyNSwgMC4wMDM5MjYsIDAuMDAzOTI2IiwgXAotICAgICAgICAgICIwLjAwMzg5NiwgMC4wMDM5MDQsIDAuMDAzOTE1LCAwLjAwMzkxOCwgMC4wMDM5MTksIDAuMDAzOTIxLCAwLjAwMzkyMiIsIFwKLSAgICAgICAgICAiMC4wMDM4OTIsIDAuMDAzOSwgMC4wMDM5MTIsIDAuMDAzOTE0LCAwLjAwMzkxNywgMC4wMDM5MTgsIDAuMDAzOTE2Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihRTikgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjI2MjIxODsKLSAgICBmdW5jdGlvbiA6ICJRQklOVCI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3NlbnNlIDogbm9uX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiByaXNpbmdfZWRnZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTgzMjUyLCAwLjIwNzc2NywgMC4zNDY3NDUsIDAuNDY5NDIzLCAwLjYzMzA0OCwgMC45NTk5MSwgMS4xNjQ2MyIsIFwKLSAgICAgICAgICAiMC4xOTMzOTQsIDAuMjE3OTAyLCAwLjM1Njg4NywgMC40Nzk1NTcsIDAuNjQzMTQ4LCAwLjk3MDI5OCwgMS4xNzQ3NSIsIFwKLSAgICAgICAgICAiMC4yMDYxNDEsIDAuMjMwNjYxLCAwLjM2OTYzNSwgMC40OTIzODQsIDAuNjU1OTQ1LCAwLjk4Mjc2NCwgMS4xODc1MiIsIFwKLSAgICAgICAgICAiMC4yMTc4NjYsIDAuMjQyMzg4LCAwLjM4MTM2LCAwLjUwNDAyMywgMC42Njc2NjMsIDAuOTk0NDk0LCAxLjE5OTI0IiwgXAotICAgICAgICAgICIwLjIyODI2MywgMC4yNTI3NzMsIDAuMzkxNzY2LCAwLjUxNDQzNSwgMC42Nzc5NjksIDEuMDA1MTYsIDEuMjA5NDgiLCBcCi0gICAgICAgICAgIjAuMjQyNTAyLCAwLjI2NzAxMSwgMC40MDU5MzIsIDAuNTI4NjYzLCAwLjY5MjIyNywgMS4wMTk0MSwgMS4yMjM4NCIsIFwKLSAgICAgICAgICAiMC4yNTM2MTgsIDAuMjc4MTM4LCAwLjQxNzEwOCwgMC41Mzk4NTksIDAuNzAzNDIsIDEuMDMwNSwgMS4yMzQ5NiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTA5NzUsIDAuMTQxMTMsIDAuNDI3NDI4LCAwLjY3ODgwOSwgMS4wMTYxMywgMS42ODczNCwgMi4xMTQzNiIsIFwKLSAgICAgICAgICAiMC4wOTEwOTksIDAuMTQxMzE3LCAwLjQyNzk3NywgMC42Nzk5NDgsIDEuMDE2MjQsIDEuNjkyNzUsIDIuMTE0MzMiLCBcCi0gICAgICAgICAgIjAuMDkwOTY1LCAwLjE0MTA2MywgMC40Mjc0MzIsIDAuNjc5Nzc0LCAxLjAxNjE3LCAxLjY5MDMyLCAyLjExNDM1IiwgXAotICAgICAgICAgICIwLjA5MDk3NSwgMC4xNDExNjEsIDAuNDI3NDM3LCAwLjY4MDk5MiwgMS4wMTYxNywgMS42OTAxMiwgMi4xMTQzNSIsIFwKLSAgICAgICAgICAiMC4wOTExMjcsIDAuMTQxNDQ4LCAwLjQyNjgxMiwgMC42Nzk5NTYsIDEuMDE4MTIsIDEuNjkyNzIsIDIuMTExNTgiLCBcCi0gICAgICAgICAgIjAuMDkxMDk2LCAwLjE0MTQ0OSwgMC40MjcxMDksIDAuNjc5OTUzLCAxLjAxODE2LCAxLjY5Mjc5LCAyLjExNDI5IiwgXAotICAgICAgICAgICIwLjA5MDk2NiwgMC4xNDE1MDcsIDAuNDI3NDA5LCAwLjY3OTYxNSwgMS4wMTYxNywgMS42ODk2MSwgMi4xMTQyOSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNjgxMDgsIDAuMTkyODI3LCAwLjMzMjk1MSwgMC40NTY1NzEsIDAuNjIxNDgsIDAuOTUxMzMzLCAxLjE1NzM2IiwgXAotICAgICAgICAgICIwLjE3ODIwMSwgMC4yMDI5MTgsIDAuMzQzMDQ1LCAwLjQ2NjY3MSwgMC42MzE1NzcsIDAuOTYxNDE5LCAxLjE2NzM0IiwgXAotICAgICAgICAgICIwLjE5MDcyNCwgMC4yMTU0NDMsIDAuMzU1NTY4LCAwLjQ3OTE4NywgMC42NDQxNDUsIDAuOTczODYzLCAxLjE3OTk5IiwgXAotICAgICAgICAgICIwLjIwMjMzOSwgMC4yMjcwNjIsIDAuMzY3MTg0LCAwLjQ5MDg1MSwgMC42NTU3MzcsIDAuOTg1NDEzLCAxLjE5MTYxIiwgXAotICAgICAgICAgICIwLjIxMjM2NywgMC4yMzcwODgsIDAuMzc3MjA0LCAwLjUwMDg0MSwgMC42NjU3NDQsIDAuOTk1NDc4LCAxLjIwMTY3IiwgXAotICAgICAgICAgICIwLjIyNjc4OCwgMC4yNTE1MSwgMC4zOTE2MzgsIDAuNTE1MjYsIDAuNjgwMDgsIDEuMDA5OSwgMS4yMTYwOSIsIFwKLSAgICAgICAgICAiMC4yMzc0MjgsIDAuMjYyMTUsIDAuNDAyMjgzLCAwLjUyNTkwNiwgMC42OTA3ODYsIDEuMDIwNTQsIDEuMjI2NzQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg5ODUsIDAuMTM5MTc0LCAwLjQyMTQ1NiwgMC42NzA1MSwgMS4wMDMwOSwgMS42NjQ1OCwgMi4wODMyOCIsIFwKLSAgICAgICAgICAiMC4wODk4NTIsIDAuMTM5MjI1LCAwLjQyMTQzOSwgMC42Njk5MDUsIDEuMDAwOTUsIDEuNjY0NzgsIDIuMDgyNjIiLCBcCi0gICAgICAgICAgIjAuMDg5ODUzLCAwLjEzOTIwMiwgMC40MjE0NDMsIDAuNjcwNDkzLCAxLjAwMTIsIDEuNjYxNTQsIDIuMDgzMjkiLCBcCi0gICAgICAgICAgIjAuMDg5ODUxLCAwLjEzOTIyOCwgMC40MjE0MjksIDAuNjcwODE1LCAxLjAwMTQxLCAxLjY2NTU5LCAyLjA4MzIzIiwgXAotICAgICAgICAgICIwLjA4OTg1NSwgMC4xMzkyMjYsIDAuNDIxMzgzLCAwLjY3MDUzNiwgMS4wMDMxNywgMS42NjE1OSwgMi4wNzkwOCIsIFwKLSAgICAgICAgICAiMC4wODk4MzMsIDAuMTM5MjI4LCAwLjQyMTQ1MSwgMC42NzA1MjMsIDEuMDAyNjksIDEuNjYxNTgsIDIuMDc4OTYiLCBcCi0gICAgICAgICAgIjAuMDg5ODQzLCAwLjEzOTIyMiwgMC40MjA4NjUsIDAuNjcwNTIzLCAxLjAwMjk0LCAxLjY2NDMyLCAyLjA3OTQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUk4iOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHByZXNldDsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjE4OTQyLCAwLjI0MzQzNSwgMC4zODI0MywgMC41MDUxNTgsIDAuNjY4NzA1LCAwLjk5NTgwNiwgMS4yMDAxOCIsIFwKLSAgICAgICAgICAiMC4yMjg3NjIsIDAuMjUzMjcsIDAuMzkyMjIsIDAuNTE0OTk5LCAwLjY3ODM2OSwgMS4wMDU2MiwgMS4yMTAxMiIsIFwKLSAgICAgICAgICAiMC4yNDA0OTUsIDAuMjY0OTk5LCAwLjQwMzk4LCAwLjUyNjcyNywgMC42OTAyMjMsIDEuMDE3MzUsIDEuMjIxODUiLCBcCi0gICAgICAgICAgIjAuMjUwMzg2LCAwLjI3NDkwMSwgMC40MTM4ODEsIDAuNTM2NjEzLCAwLjcwMDE0MiwgMS4wMjcwNCwgMS4yMzE3NSIsIFwKLSAgICAgICAgICAiMC4yNTkzOSwgMC4yODM4ODIsIDAuNDIyODY4LCAwLjU0NTQyNywgMC43MDkxMjUsIDEuMDM2MTQsIDEuMjQwNzEiLCBcCi0gICAgICAgICAgIjAuMjcwODc1LCAwLjI5NTM2NywgMC40MzQzNSwgMC41NTcwOTYsIDAuNzIwNjQ3LCAxLjA0Nzc1LCAxLjI1MTk5IiwgXAotICAgICAgICAgICIwLjI3OTQwOSwgMC4zMDM4OTgsIDAuNDQyODk3LCAwLjU2NTYzLCAwLjcyOTE2NywgMS4wNTYxOSwgMS4yNjA3OCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTEwMTIsIDAuMTQxMzE1LCAwLjQyODA1MywgMC42ODEwMzgsIDEuMDE4NDYsIDEuNjkzMDEsIDIuMTE0NzciLCBcCi0gICAgICAgICAgIjAuMDkxMDk3LCAwLjE0MTQ2MywgMC40Mjc5NSwgMC42ODA5OTMsIDEuMDE4MjMsIDEuNjkyODQsIDIuMTE0NzQiLCBcCi0gICAgICAgICAgIjAuMDkxMTk4LCAwLjE0MTMzNSwgMC40Mjc0ODgsIDAuNjgwOTY3LCAxLjAxODMsIDEuNjkyOTIsIDIuMTE0NzEiLCBcCi0gICAgICAgICAgIjAuMDkxMDkxLCAwLjE0MTQ1NCwgMC40MjgwNzMsIDAuNjc5NTk0LCAxLjAxODQyLCAxLjY5MjcyLCAyLjExNDc3IiwgXAotICAgICAgICAgICIwLjA5MTA5OCwgMC4xNDExNzMsIDAuNDI3OTUzLCAwLjY3OTg0NSwgMS4wMTg0MSwgMS42OTMwMSwgMi4xMTQ2OSIsIFwKLSAgICAgICAgICAiMC4wOTEwOTgsIDAuMTQxMTY2LCAwLjQyNzk4NSwgMC42ODA5ODcsIDEuMDE4NDYsIDEuNjkzLCAyLjExNDExIiwgXAotICAgICAgICAgICIwLjA5MTE3NywgMC4xNDE0ODQsIDAuNDI3NDk2LCAwLjY4MTA0MiwgMS4wMTg0MiwgMS42OTI3NiwgMi4xMTQ3NyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogY2xlYXI7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIwNDExMSwgMC4yMjg2MDQsIDAuMzY3NjAyLCAwLjQ5MDM0NSwgMC42NTM5MjIsIDAuOTgwOTYyLCAxLjE4NTQ4IiwgXAotICAgICAgICAgICIwLjIxMzgzOCwgMC4yMzgzMzIsIDAuMzc3MzI4LCAwLjUwMDA1NiwgMC42NjM2MDYsIDAuOTkwNzA1LCAxLjE5NDk4IiwgXAotICAgICAgICAgICIwLjIyNDgzNiwgMC4yNDkzMzgsIDAuMzg4MzIsIDAuNTExMDY5LCAwLjY3NDU2OCwgMS4wMDE2OSwgMS4yMDYyIiwgXAotICAgICAgICAgICIwLjIzNTUyNCwgMC4yNjAwMiwgMC4zOTkwMTgsIDAuNTIxNzUsIDAuNjg1MjkxLCAxLjAxMjA3LCAxLjIxNjc2IiwgXAotICAgICAgICAgICIwLjI0NjI5NywgMC4yNzA4MDIsIDAuNDA5NzQyLCAwLjUzMjUyNSwgMC42OTYwNDcsIDEuMDIzMTEsIDEuMjI3NjUiLCBcCi0gICAgICAgICAgIjAuMjYyOTY4LCAwLjI4NzQ3MiwgMC40MjY0NTIsIDAuNTQ5MTksIDAuNzEyNzE2LCAxLjAzOTU4LCAxLjI0NDMzIiwgXAotICAgICAgICAgICIwLjI3Njk5MSwgMC4zMDE1NzUsIDAuNDQwNTU2LCAwLjU2MzMwOSwgMC43MjY4MDQsIDEuMDUzOTMsIDEuMjU4NDQiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDkxMDk3LCAwLjE0MTMxMSwgMC40MjgwNzQsIDAuNjc5NTk0LCAxLjAxODI2LCAxLjY5MjkzLCAyLjExNDc3IiwgXAotICAgICAgICAgICIwLjA5MTA5OCwgMC4xNDE0NzcsIDAuNDI3MzkxLCAwLjY3OTYxNywgMS4wMTg0NiwgMS42OTMwMSwgMi4xMTQzNSIsIFwKLSAgICAgICAgICAiMC4wOTExOTgsIDAuMTQxMzMyLCAwLjQyNzQ4LCAwLjY3OTYyMSwgMS4wMTgzMSwgMS42OTI5MSwgMi4xMTQ2OSIsIFwKLSAgICAgICAgICAiMC4wOTA5ODcsIDAuMTQxMzE4LCAwLjQyODAxOSwgMC42Nzk2MzIsIDEuMDE4NDMsIDEuNjkyNjgsIDIuMTE0NTIiLCBcCi0gICAgICAgICAgIjAuMDkxMDk3LCAwLjE0MTUyMSwgMC40MjczODEsIDAuNjc5NjI1LCAxLjAxODM4LCAxLjY5Mjc3LCAyLjExNDY4IiwgXAotICAgICAgICAgICIwLjA5MTA5OCwgMC4xNDE1MiwgMC40MjczOTgsIDAuNjc5ODQ5LCAxLjAxODQsIDEuNjkyNywgMi4xMTQ3NCIsIFwKLSAgICAgICAgICAiMC4wOTExMzQsIDAuMTQxNDgzLCAwLjQyNzQ1OCwgMC42ODA0MzIsIDEuMDE4MjksIDEuNjkyOTEsIDIuMTE0NjgiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTYxNjksIDAuMTg2NDE2LCAwLjMyNjU4NiwgMC40NTAyMiwgMC42MTUxMSwgMC45NDQ4NDEsIDEuMTUwOTgiLCBcCi0gICAgICAgICAgIjAuMTcxNDk5LCAwLjE5NjIyMywgMC4zMzYzNzUsIDAuNDYwMDI0LCAwLjYyNDg1NSwgMC45NTQ2NDQsIDEuMTYwNCIsIFwKLSAgICAgICAgICAiMC4xODM3NDgsIDAuMjA4NDcxLCAwLjM0ODYyLCAwLjQ3MjI1NywgMC42MzcxMDksIDAuOTY2ODkzLCAxLjE3MzAzIiwgXAotICAgICAgICAgICIwLjE5NTkxNCwgMC4yMjA2NDEsIDAuMzYwNzkzLCAwLjQ4NDQ0NSwgMC42NDkzMDksIDAuOTc5MDczLCAxLjE4NTIiLCBcCi0gICAgICAgICAgIjAuMjA3NjYyLCAwLjIzMjMzMywgMC4zNzI0NzYsIDAuNDk2MTY3LCAwLjY2MDk3NCwgMC45OTA4MDksIDEuMTk2NzUiLCBcCi0gICAgICAgICAgIjAuMjI0OTQ4LCAwLjI0OTY3NiwgMC4zODk4MDMsIDAuNTEzNDgsIDAuNjc4MzI2LCAxLjAwNzg3LCAxLjIxNDIxIiwgXAotICAgICAgICAgICIwLjIzODksIDAuMjYzNjI3LCAwLjQwMzc2OCwgMC41Mjc0NDgsIDAuNjkyMjksIDEuMDIxOTYsIDEuMjI4MTUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg5ODMxLCAwLjEzOTM1NSwgMC40MjE2NTcsIDAuNjcwODg5LCAxLjAwMzIzLCAxLjY2ODAzLCAyLjA4MzUzIiwgXAotICAgICAgICAgICIwLjA4OTg0MSwgMC4xMzkzMjIsIDAuNDIxNjI0LCAwLjY3MDg5LCAxLjAwMywgMS42NjgwOCwgMi4wODI3NSIsIFwKLSAgICAgICAgICAiMC4wODk4MjMsIDAuMTM5MzI3LCAwLjQyMTY2NCwgMC42NzA4ODksIDEuMDAzMzUsIDEuNjY4MDYsIDIuMDgzNDciLCBcCi0gICAgICAgICAgIjAuMDg5ODI1LCAwLjEzOTMxNSwgMC40MjEyODUsIDAuNjcwODUzLCAxLjAwMzEsIDEuNjY4MDQsIDIuMDgzNDMiLCBcCi0gICAgICAgICAgIjAuMDg5ODI3LCAwLjEzOTI4OSwgMC40MjE2NjksIDAuNjcwODgzLCAxLjAwMzAyLCAxLjY2OCwgMi4wODIxOSIsIFwKLSAgICAgICAgICAiMC4wODk4MzIsIDAuMTM5MzQ3LCAwLjQyMTUyMSwgMC42NzA4MzYsIDEuMDAzMDksIDEuNjY4LCAyLjA4MzUxIiwgXAotICAgICAgICAgICIwLjA4OTgxNiwgMC4xMzkzMTMsIDAuNDIxNjM4LCAwLjY3MDksIDEuMDAzMTUsIDEuNjY3OSwgMi4wODMxOCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQ0NjMsIDAuMDA0NDcxLCAwLjAwNDQ4LCAwLjAwNDQ4NSwgMC4wMDQ0ODUsIDAuMDA0NDg4LCAwLjAwNDQ4NiIsIFwKLSAgICAgICAgICAiMC4wMDQ0NDgsIDAuMDA0NDU2LCAwLjAwNDQ2NywgMC4wMDQ0NywgMC4wMDQ0NzEsIDAuMDA0NDcxLCAwLjAwNDQ3MSIsIFwKLSAgICAgICAgICAiMC4wMDQ0NDcsIDAuMDA0NDU0LCAwLjAwNDQ2NCwgMC4wMDQ0NjcsIDAuMDA0NDY5LCAwLjAwNDQ3LCAwLjAwNDQ3IiwgXAotICAgICAgICAgICIwLjAwNDQ1MywgMC4wMDQ0NjEsIDAuMDA0NDcyLCAwLjAwNDQ3NCwgMC4wMDQ0NzYsIDAuMDA0NDc4LCAwLjAwNDQ3NyIsIFwKLSAgICAgICAgICAiMC4wMDQ0NjcsIDAuMDA0NDc1LCAwLjAwNDQ4NiwgMC4wMDQ0ODgsIDAuMDA0NDg5LCAwLjAwNDQ4OSwgMC4wMDQ0OTEiLCBcCi0gICAgICAgICAgIjAuMDA0NDg0LCAwLjAwNDQ5MiwgMC4wMDQ1MDMsIDAuMDA0NTA1LCAwLjAwNDUwNiwgMC4wMDQ1MDcsIDAuMDA0NTA4IiwgXAotICAgICAgICAgICIwLjAwNDUwMywgMC4wMDQ1MTEsIDAuMDA0NTIyLCAwLjAwNDUyNCwgMC4wMDQ1MjUsIDAuMDA0NTI3LCAwLjAwNDUyNiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDY3OSwgMC4wMDQ2ODYsIDAuMDA0Njk3LCAwLjAwNDY5OSwgMC4wMDQ3MDEsIDAuMDA0NzAyLCAwLjAwNDcwMiIsIFwKLSAgICAgICAgICAiMC4wMDQ2NjMsIDAuMDA0NjcsIDAuMDA0NjgxLCAwLjAwNDY4MywgMC4wMDQ2ODUsIDAuMDA0Njg2LCAwLjAwNDY4NiIsIFwKLSAgICAgICAgICAiMC4wMDQ2NTQsIDAuMDA0NjYyLCAwLjAwNDY3MiwgMC4wMDQ2NzYsIDAuMDA0Njc2LCAwLjAwNDY3NywgMC4wMDQ2NzciLCBcCi0gICAgICAgICAgIjAuMDA0NjU0LCAwLjAwNDY2MiwgMC4wMDQ2NzMsIDAuMDA0Njc1LCAwLjAwNDY3NywgMC4wMDQ2NzYsIDAuMDA0Njc4IiwgXAotICAgICAgICAgICIwLjAwNDY2MywgMC4wMDQ2NzEsIDAuMDA0NjgyLCAwLjAwNDY4NCwgMC4wMDQ2ODQsIDAuMDA0Njg2LCAwLjAwNDY4NiIsIFwKLSAgICAgICAgICAiMC4wMDQ2NzMsIDAuMDA0NjgsIDAuMDA0NjkxLCAwLjAwNDY5MywgMC4wMDQ2OTQsIDAuMDA0Njk1LCAwLjAwNDY5NiIsIFwKLSAgICAgICAgICAiMC4wMDQ2OCwgMC4wMDQ2ODgsIDAuMDA0NywgMC4wMDQ3MDIsIDAuMDA0NzAzLCAwLjAwNDcwNCwgMC4wMDQ3MDUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1MjE0LCAwLjAwNTIyLCAwLjAwNTIxOSwgMC4wMDUyMTUsIDAuMDA1MjE1LCAwLjAwNTIwOCwgMC4wMDUyMDciLCBcCi0gICAgICAgICAgIjAuMDA1MjAxLCAwLjAwNTIwOCwgMC4wMDUyMDcsIDAuMDA1MjA0LCAwLjAwNTIsIDAuMDA1MTk1LCAwLjAwNTE5NyIsIFwKLSAgICAgICAgICAiMC4wMDUxOTksIDAuMDA1MjA2LCAwLjAwNTIwNiwgMC4wMDUyMDIsIDAuMDA1MTk2LCAwLjAwNTE5NCwgMC4wMDUxOTUiLCBcCi0gICAgICAgICAgIjAuMDA1MjAxLCAwLjAwNTIwNywgMC4wMDUyMDcsIDAuMDA1MjAzLCAwLjAwNTIwMSwgMC4wMDUxOTcsIDAuMDA1MTk2IiwgXAotICAgICAgICAgICIwLjAwNTIwMSwgMC4wMDUyMDgsIDAuMDA1MjA4LCAwLjAwNTIwNCwgMC4wMDUyLCAwLjAwNTE5OCwgMC4wMDUxOTUiLCBcCi0gICAgICAgICAgIjAuMDA1MjA3LCAwLjAwNTIxMywgMC4wMDUyMTUsIDAuMDA1MjExLCAwLjAwNTIwNywgMC4wMDUyMDEsIDAuMDA1MjAzIiwgXAotICAgICAgICAgICIwLjAwNTIxNSwgMC4wMDUyMjEsIDAuMDA1MjIyLCAwLjAwNTIxOCwgMC4wMDUyMTQsIDAuMDA1MjEsIDAuMDA1MjA5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHNjYWxhcikgewotICAgICAgICB2YWx1ZXMoIjAiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzOTM4LCAwLjAwMzk0NiwgMC4wMDM5NTgsIDAuMDAzOTYsIDAuMDAzOTYxLCAwLjAwMzk2MiwgMC4wMDM5NjIiLCBcCi0gICAgICAgICAgIjAuMDAzOTIyLCAwLjAwMzkzLCAwLjAwMzk0MSwgMC4wMDM5NDMsIDAuMDAzOTQ0LCAwLjAwMzk0MywgMC4wMDM5NDYiLCBcCi0gICAgICAgICAgIjAuMDAzOTEyLCAwLjAwMzkyLCAwLjAwMzkzMSwgMC4wMDM5MzMsIDAuMDAzOTM0LCAwLjAwMzkzNywgMC4wMDM5MzciLCBcCi0gICAgICAgICAgIjAuMDAzOTA2LCAwLjAwMzkxNCwgMC4wMDM5MjUsIDAuMDAzOTI4LCAwLjAwMzkzMiwgMC4wMDM5MzIsIDAuMDAzOTMyIiwgXAotICAgICAgICAgICIwLjAwMzkwMiwgMC4wMDM5MSwgMC4wMDM5MjIsIDAuMDAzOTI0LCAwLjAwMzkyNSwgMC4wMDM5MjYsIDAuMDAzOTI2IiwgXAotICAgICAgICAgICIwLjAwMzg5NiwgMC4wMDM5MDQsIDAuMDAzOTE1LCAwLjAwMzkxOCwgMC4wMDM5MTksIDAuMDAzOTIxLCAwLjAwMzkyMiIsIFwKLSAgICAgICAgICAiMC4wMDM4OTIsIDAuMDAzOSwgMC4wMDM5MTIsIDAuMDAzOTE0LCAwLjAwMzkxNywgMC4wMDM5MTgsIDAuMDAzOTE2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1Mzc4LCAwLjAwNTM4NSwgMC4wMDUzOTUsIDAuMDA1Mzk3LCAwLjAwNTM5OCwgMC4wMDUzOTksIDAuMDA1Mzk5IiwgXAotICAgICAgICAgICIwLjAwNTM2NSwgMC4wMDUzNzIsIDAuMDA1MzgyLCAwLjAwNTM4NCwgMC4wMDUzODUsIDAuMDA1Mzg2LCAwLjAwNTM4NiIsIFwKLSAgICAgICAgICAiMC4wMDUzNTgsIDAuMDA1MzY1LCAwLjAwNTM3NSwgMC4wMDUzNzcsIDAuMDA1Mzc4LCAwLjAwNTM3NywgMC4wMDUzNzkiLCBcCi0gICAgICAgICAgIjAuMDA1MzU0LCAwLjAwNTM2MSwgMC4wMDUzNzIsIDAuMDA1Mzc0LCAwLjAwNTM3NSwgMC4wMDUzNzUsIDAuMDA1Mzc2IiwgXAotICAgICAgICAgICIwLjAwNTM1NCwgMC4wMDUzNjIsIDAuMDA1MzcxLCAwLjAwNTM3MywgMC4wMDUzNzUsIDAuMDA1Mzc2LCAwLjAwNTM3NiIsIFwKLSAgICAgICAgICAiMC4wMDUzNTYsIDAuMDA1MzYzLCAwLjAwNTM3MywgMC4wMDUzNzYsIDAuMDA1Mzc2LCAwLjAwNTM3NywgMC4wMDUzNzciLCBcCi0gICAgICAgICAgIjAuMDA1MzYxLCAwLjAwNTM2OSwgMC4wMDUzNzksIDAuMDA1MzgxLCAwLjAwNTM4MywgMC4wMDUzODQsIDAuMDA1Mzg0Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihSTikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjA4MjczOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYwODAwNzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2MDgyNzM7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNTExLCAwLjAwMDQ4NywgMC4wMDA0OCwgMC4wMDA0ODQsIDAuMDAwNDk1LCAwLjAwMDUxOCwgMC4wMDA1NDEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDIyNzMsIDAuMDAyMjU1LCAwLjAwMjI1MSwgMC4wMDIyNTYsIDAuMDAyMjY2LCAwLjAwMjI4OSwgMC4wMDIzMDciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUk4iOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFEJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgZmFsbF9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMjE4OTQyLCAwLjIyODc2MiwgMC4yNDA0OTUsIDAuMjUwMzg2LCAwLjI1OTM5LCAwLjI3MDg3NSwgMC4yNzk0MDkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiByZWNvdmVyeV9yaXNpbmc7Ci0gICAgICB3aGVuIDogIkQmU04iOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8xX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQocmVjb3ZlcnlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc1LCAwLjA2Mzc1LCAwLjA1MTI1LCAwLjAzODc1LCAwLjAyNjI1LCAwLjAxNjI1LCAwLjAwMTI1IiwgXAotICAgICAgICAgICIwLjA4NjI1LCAwLjA3NSwgMC4wNTYyNSwgMC4wNSwgMC4wMzc1LCAwLjAyMTI1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMDk4NzUsIDAuMDg3NSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1LCAwLjAzMzc1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiMC4xMDUsIDAuMDkzNzUsIDAuMDgxMjUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNDYyNSwgMC4wMzc1IiwgXAotICAgICAgICAgICIwLjExNzUsIDAuMTA2MjUsIDAuMDkzNzUsIDAuMDgxMjUsIDAuMDY4NzUsIDAuMDUyNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4xMjc1LCAwLjExNjI1LCAwLjEwMzc1LCAwLjA5MTI1LCAwLjA4NSwgMC4wNjg3NSwgMC4wNiIsIFwKLSAgICAgICAgICAiMC4xMzYyNSwgMC4xMjUsIDAuMTEyNSwgMC4xLCAwLjA5Mzc1LCAwLjA3NzUsIDAuMDY4NzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiU04iOwotICAgICAgdGltaW5nX3R5cGUgOiByZWNvdmVyeV9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEIjsKLSAgICAgIHNkZl9jb25kIDogIkQgPT0gMSdiMCI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQocmVjb3ZlcnlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDgxMjUsIDAuMDg2MjUsIDAuMDk4NzUsIDAuMTExMjUsIDAuMTE3NSwgMC4xMzM3NSwgMC4xNDg3NSIsIFwKLSAgICAgICAgICAiMC4wNywgMC4wODEyNSwgMC4wODc1LCAwLjEsIDAuMTEyNSwgMC4xMjg3NSwgMC4xNDM3NSIsIFwKLSAgICAgICAgICAiMC4wNjM3NSwgMC4wNjg3NSwgMC4wODEyNSwgMC4wOTM3NSwgMC4xLCAwLjEyMjUsIDAuMTMxMjUiLCBcCi0gICAgICAgICAgIjAuMDU3NSwgMC4wNjg3NSwgMC4wNzUsIDAuMDg3NSwgMC4xLCAwLjExNjI1LCAwLjEyNSIsIFwKLSAgICAgICAgICAiMC4wNTEyNSwgMC4wNjI1LCAwLjA2ODc1LCAwLjA4MTI1LCAwLjA5Mzc1LCAwLjExLCAwLjEyNSIsIFwKLSAgICAgICAgICAiMC4wNDc1LCAwLjA1ODc1LCAwLjA2NSwgMC4wNzc1LCAwLjA5LCAwLjEwNjI1LCAwLjExNSIsIFwKLSAgICAgICAgICAiMC4wNDUsIDAuMDUsIDAuMDYyNSwgMC4wNzUsIDAuMDgxMjUsIDAuMDk3NSwgMC4xMTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogcmVtb3ZhbF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIkQmU04iOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8xX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQocmVtb3ZhbF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDE4NzUsIC0wLjAwNzUsIDAuMDA1LCAwLjAxNzUsIDAuMDIzNzUsIDAuMDMzNzUsIDAuMDQ4NzUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAuMDA2MjUsIDAuMDEyNSwgMC4wMjg3NSwgMC4wMzc1IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLCAwLjAxNjI1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjA0Mzc1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLjAwMzc1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjA2MTI1LCAtMC4wNSwgLTAuMDM3NSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDAyNSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDcxMjUsIC0wLjA2LCAtMC4wNDc1LCAtMC4wNDEyNSwgLTAuMDI4NzUsIC0wLjAxODc1LCAtMC4wMSIsIFwKLSAgICAgICAgICAiLTAuMDgsIC0wLjA2ODc1LCAtMC4wNjI1LCAtMC4wNSwgLTAuMDM3NSwgLTAuMDI3NSwgLTAuMDE4NzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFNOKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE3NjAyMjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE3NjAyMjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE3NTk0MjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA0NTMsIDAuMDAwNDUyLCAwLjAwMDQ1MiwgMC4wMDA0NTIsIDAuMDAwNDUyLCAwLjAwMDQ1MiwgMC4wMDA0NTIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA0NTMsIDAuMDAwNDU0LCAwLjAwMDQ1NCwgMC4wMDA0NTQsIDAuMDAwNDU0LCAwLjAwMDQ1NCwgMC4wMDA0NTQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiU04iOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFEJiFSTiI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fUk5fRVFfMCA9PSAxJ2IxIjsKLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjE2MTY5LCAwLjE3MTQ5OSwgMC4xODM3NDgsIDAuMTk1OTE0LCAwLjIwNzY2MiwgMC4yMjQ5NDgsIDAuMjM4OSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJlY292ZXJ5X3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUQmUk4iOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1JOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQocmVjb3ZlcnlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDI1LCAwLjAxMzc1LCAtMC4wMDUsIC0wLjAxNzUsIC0wLjAyMzc1LCAtMC4wNCwgLTAuMDU1IiwgXAotICAgICAgICAgICIwLjAzLCAwLjAxODc1LCAwLjAwNjI1LCAtMC4wMDYyNSwgLTAuMDE4NzUsIC0wLjAzNSwgLTAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMDQyNSwgMC4wMzEyNSwgMC4wMTg3NSwgMC4wMDYyNSwgLTAuMDA2MjUsIC0wLjAyMjUsIC0wLjAzMTI1IiwgXAotICAgICAgICAgICIwLjA1NSwgMC4wNDM3NSwgMC4wMzEyNSwgMC4wMTg3NSwgMC4wMDYyNSwgLTAuMDEsIC0wLjAyNSIsIFwKLSAgICAgICAgICAiMC4wNjEyNSwgMC4wNSwgMC4wMzc1LCAwLjAyNSwgMC4wMTI1LCAwLjAwMjUsIC0wLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMDgzNzUsIDAuMDY2MjUsIDAuMDUzNzUsIDAuMDQxMjUsIDAuMDI4NzUsIDAuMDE4NzUsIDAuMDAzNzUiLCBcCi0gICAgICAgICAgIjAuMDkyNSwgMC4wODEyNSwgMC4wNjg3NSwgMC4wNTYyNSwgMC4wNDM3NSwgMC4wMzM3NSwgMC4wMTg3NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJlbW92YWxfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRCZSTiI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fUk5fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChyZW1vdmFsX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyNSwgMC4wMzYyNSwgMC4wNDg3NSwgMC4wNjEyNSwgMC4wNzM3NSwgMC4wODM3NSwgMC4wOTg3NSIsIFwKLSAgICAgICAgICAiMC4wMiwgMC4wMzEyNSwgMC4wNDM3NSwgMC4wNSwgMC4wNjI1LCAwLjA3ODc1LCAwLjA4NzUiLCBcCi0gICAgICAgICAgIjAuMDA3NSwgMC4wMTg3NSwgMC4wMzEyNSwgMC4wNDM3NSwgMC4wNSwgMC4wNjYyNSwgMC4wNzUiLCBcCi0gICAgICAgICAgIi0wLjAwNSwgMC4wMDYyNSwgMC4wMTg3NSwgMC4wMzEyNSwgMC4wMzc1LCAwLjA1Mzc1LCAwLjA2ODc1IiwgXAotICAgICAgICAgICItMC4wMTEyNSwgLTAuMDA2MjUsIDAuMDA2MjUsIDAuMDE4NzUsIDAuMDMxMjUsIDAuMDQ3NSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiLTAuMDI3NSwgLTAuMDE2MjUsIC0wLjAwMzc1LCAwLjAwMjUsIDAuMDE1LCAwLjAzMTI1LCAwLjA0IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLjAwNjI1LCAwLjAxNjI1LCAwLjAzMTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogREZGU1JYTCAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChERkZTUlhMKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMzg0NjU0OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIGZmIChOMzUsUUJJTlQpIHsKLSAgICBuZXh0X3N0YXRlIDogIkQiOwotICAgIGNsb2NrZWRfb24gOiAiQ0siOwotICAgIGNsZWFyIDogIighUk4pIjsKLSAgICBwcmVzZXQgOiAiKCFTTikiOwotICAgIGNsZWFyX3ByZXNldF92YXIxIDogSDsKLSAgICBjbGVhcl9wcmVzZXRfdmFyMiA6IEw7Ci0gIH0KLSAgcGluKENLKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2MDM1NzY7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjAzMzk7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjAzNTc2OwotICAgIGNsb2NrIDogdHJ1ZTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDM1MTUsIDAuMDAzNDg3LCAwLjAwMzQ3NCwgMC4wMDM0NzYsIDAuMDAzNDg5LCAwLjAwMzUxMiwgMC4wMDM1MjgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDY5NiwgMC4wMDY5MywgMC4wMDY5MTMsIDAuMDA2OTE1LCAwLjAwNjkxNywgMC4wMDY5NDEsIDAuMDA2OTY1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRCZSTiZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fUk5fRVFfMV9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMjA3NDU1LCAwLjIxNzYwOCwgMC4yMzAzNzEsIDAuMjQyMTQ1LCAwLjI1MjU2OCwgMC4yNjY4NjksIDAuMjc4MTQ4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4xMjUyODUsIDAuMTM1MTYsIDAuMTQ3MzUxLCAwLjE1ODYxNCwgMC4xNjgxMTMsIDAuMTgxMjc4LCAwLjE5MTIyNyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjE0OTU7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjEzMzQ7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjE0OTU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzMDkzLCAwLjAwMzA3LCAwLjAwMzA1OCwgMC4wMDMwNDksIDAuMDAzMDQ3LCAwLjAwMzA0OSwgMC4wMDMwNTEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDMwMjQsIDAuMDAzMDEsIDAuMDAzMDAyLCAwLjAwMjk5NiwgMC4wMDI5OTMsIDAuMDAyOTksIDAuMDAyOTkzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlJOJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIlJOX0VRXzFfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMTg3NSwgLTAuMDEzNzUsIC0wLjAwNzUsIC0wLjAwMTI1LCAwLjAwNSwgMC4wMDg3NSwgMC4wMTc1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAtMC4wMDYyNSwgMC4wMDM3NSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwODc1LCAwIiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDQzNzUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAyNSwgLTAuMDE1LCAtMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wNjEyNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDIxMjUsIC0wLjAxODc1IiwgXAotICAgICAgICAgICItMC4wNzEyNSwgLTAuMDYsIC0wLjA1Mzc1LCAtMC4wNDc1LCAtMC4wNDEyNSwgLTAuMDM3NSwgLTAuMDI4NzUiLCBcCi0gICAgICAgICAgIi0wLjA4LCAtMC4wNjg3NSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNDYyNSwgLTAuMDM3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE4NzUsIDAuMDMsIDAuMDQyNSwgMC4wNTUsIDAuMDYxMjUsIDAuMDc3NSwgMC4wODYyNSIsIFwKLSAgICAgICAgICAiMC4wMTM3NSwgMC4wMTg3NSwgMC4wMzEyNSwgMC4wNDM3NSwgMC4wNTYyNSwgMC4wNjYyNSwgMC4wNzUiLCBcCi0gICAgICAgICAgIjAuMDAxMjUsIDAuMDEyNSwgMC4wMjUsIDAuMDM3NSwgMC4wNDM3NSwgMC4wNiwgMC4wNjg3NSIsIFwKLSAgICAgICAgICAiLTAuMDA1LCAwLjAwNjI1LCAwLjAxODc1LCAwLjAzMTI1LCAwLjAzNzUsIDAuMDUzNzUsIDAuMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDExMjUsIDAsIDAuMDEyNSwgMC4wMjUsIDAuMDMxMjUsIDAuMDQ3NSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiLTAuMDE1LCAtMC4wMSwgMC4wMDI1LCAwLjAxNSwgMC4wMjc1LCAwLjAzNzUsIDAuMDQ2MjUiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTI1LCAwLCAwLjAxMjUsIDAuMDE4NzUsIDAuMDI4NzUsIDAuMDQzNzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlJOJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIlJOX0VRXzFfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODEyNSwgMC4wNywgMC4wNTc1LCAwLjA0NSwgMC4wMzI1LCAwLjAyMjUsIDAuMDEzNzUiLCBcCi0gICAgICAgICAgIjAuMDkyNSwgMC4wODEyNSwgMC4wNjI1LCAwLjA1LCAwLjA0Mzc1LCAwLjAzMzc1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiMC4wOTg3NSwgMC4wODc1LCAwLjA3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA0LCAwLjAzMTI1IiwgXAotICAgICAgICAgICIwLjExMTI1LCAwLjEsIDAuMDg3NSwgMC4wNzUsIDAuMDYyNSwgMC4wNTI1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjExNzUsIDAuMTA2MjUsIDAuMDkzNzUsIDAuMDgxMjUsIDAuMDc1LCAwLjA1ODc1LCAwLjA1IiwgXAotICAgICAgICAgICIwLjEzMzc1LCAwLjEyMjUsIDAuMTEsIDAuMDk3NSwgMC4wODUsIDAuMDc1LCAwLjA2NjI1IiwgXAotICAgICAgICAgICIwLjE0MjUsIDAuMTMxMjUsIDAuMTE4NzUsIDAuMTA2MjUsIDAuMDkzNzUsIDAuMDgzNzUsIDAuMDc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDUsIDAuMDM4NzUsIDAuMDI2MjUsIDAuMDEzNzUsIDAuMDA3NSwgLTAuMDA4NzUsIC0wLjAyMzc1IiwgXAotICAgICAgICAgICIwLjA2MTI1LCAwLjA1LCAwLjAzNzUsIDAuMDI1LCAwLjAxMjUsIC0wLjAwMzc1LCAtMC4wMTI1IiwgXAotICAgICAgICAgICIwLjA3Mzc1LCAwLjA2MjUsIDAuMDQzNzUsIDAuMDMxMjUsIDAuMDI1LCAwLjAwODc1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiMC4wOCwgMC4wNjg3NSwgMC4wNTYyNSwgMC4wNDM3NSwgMC4wMzEyNSwgMC4wMTUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMDg2MjUsIDAuMDc1LCAwLjA2MjUsIDAuMDUsIDAuMDM3NSwgMC4wMjc1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMDk2MjUsIDAuMDkxMjUsIDAuMDcyNSwgMC4wNiwgMC4wNTM3NSwgMC4wMzc1LCAwLjAyMjUiLCBcCi0gICAgICAgICAgIjAuMTExMjUsIDAuMSwgMC4wODEyNSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA0NjI1LCAwLjAzMTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihRKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMTQ0OTk7Ci0gICAgZnVuY3Rpb24gOiAiTjM1IjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBub25fdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJpc2luZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xODI1MTcsIDAuMTk2NzMyLCAwLjMyMzc1NSwgMC41MzU1NDcsIDAuNzQ3NDUyLCAxLjI0MTc0LCAxLjUyNTQ1IiwgXAotICAgICAgICAgICIwLjE5MjY2LCAwLjIwNjgzNywgMC4zMzM4NjgsIDAuNTQ1NjU1LCAwLjc1NzU3LCAxLjI1MTg4LCAxLjUzNTU2IiwgXAotICAgICAgICAgICIwLjIwNTIwNSwgMC4yMTk0MDQsIDAuMzQ2NDE2LCAwLjU1ODIwNywgMC43NzAxMTIsIDEuMjY0NDEsIDEuNTQ2ODIiLCBcCi0gICAgICAgICAgIjAuMjE2OTMyLCAwLjIzMTA0OCwgMC4zNTgxMTksIDAuNTY5OTAzLCAwLjc4MTYwNiwgMS4yNzU2NCwgMS41NTgxMSIsIFwKLSAgICAgICAgICAiMC4yMjcwMDYsIDAuMjQxMDU3LCAwLjM2ODIwMSwgMC41Nzk5ODQsIDAuNzkxNjgzLCAxLjI4NjAzLCAxLjU2ODYyIiwgXAotICAgICAgICAgICIwLjI0MTQzNSwgMC4yNTU2MzksIDAuMzgyNjU1LCAwLjU5NDQ0NiwgMC44MDYzNDcsIDEuMzAwNjUsIDEuNTgzMDkiLCBcCi0gICAgICAgICAgIjAuMjUyMTksIDAuMjY2MzgyLCAwLjM5MzM5OCwgMC42MDUxODUsIDAuODE3MjQ2LCAxLjMxMTQ1LCAxLjU5Mzc5Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE1NDc5LCAwLjE4MzUwMiwgMC40NDMyMzksIDAuODc5NzUsIDEuMzEzNzgsIDIuMzI4MzIsIDIuOTE0NTQiLCBcCi0gICAgICAgICAgIjAuMTU0ODQ2LCAwLjE4MzQ5MywgMC40NDMyNTgsIDAuODc5NzM5LCAxLjMxMzYxLCAyLjMzMDAxLCAyLjkxNDU1IiwgXAotICAgICAgICAgICIwLjE1NDg1MSwgMC4xODM1MDksIDAuNDQzMjM1LCAwLjg3OTc0NSwgMS4zMTM2NCwgMi4zMjQ0OSwgMi45MDgzNSIsIFwKLSAgICAgICAgICAiMC4xNTQ4NDgsIDAuMTgzMjIzLCAwLjQ0MjY0MywgMC44NzcwMDYsIDEuMzExMzgsIDIuMzI2MzgsIDIuOTAzNzMiLCBcCi0gICAgICAgICAgIjAuMTU0ODQyLCAwLjE4MzM0OSwgMC40NDI2NDksIDAuODc5NzM3LCAxLjMxMjM3LCAyLjMyNzAyLCAyLjkwMzcxIiwgXAotICAgICAgICAgICIwLjE1NDgzMiwgMC4xODM0OTUsIDAuNDQzMjM5LCAwLjg3OTczOCwgMS4zMTM2NCwgMi4zMjUxMSwgMi45MDg2NyIsIFwKLSAgICAgICAgICAiMC4xNTQ4NDIsIDAuMTgzNDk4LCAwLjQ0MzMzNiwgMC44Nzk3MDYsIDEuMzE1NjgsIDIuMzI5NzMsIDIuOTA5NjkiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTk3MzA3LCAwLjIxMTE5MywgMC4zMzU4NTIsIDAuNTQzMTQ4LCAwLjc1MDU1NywgMS4yMzU1NywgMS41MTExIiwgXAotICAgICAgICAgICIwLjIwNzUxMSwgMC4yMjEzNDIsIDAuMzQ2MDIsIDAuNTUzMzQ4LCAwLjc2MDk1NCwgMS4yNDQ3NCwgMS41MjI1NSIsIFwKLSAgICAgICAgICAiMC4yMjAyNjQsIDAuMjM0MDkzLCAwLjM1ODc2NCwgMC41NjYwOTYsIDAuNzczODcsIDEuMjU3NTEsIDEuNTM1MjkiLCBcCi0gICAgICAgICAgIjAuMjMyMDY4LCAwLjI0NTg2NSwgMC4zNzA1MzcsIDAuNTc3ODY4LCAwLjc4NTQ3NywgMS4yNjkyNywgMS41NDcwNiIsIFwKLSAgICAgICAgICAiMC4yNDI0NTQsIDAuMjU2MzA0LCAwLjM4MDk3OCwgMC41ODgzMDIsIDAuNzk2MDkxLCAxLjI3OTgyLCAxLjU1NzQ5IiwgXAotICAgICAgICAgICIwLjI1NjczOSwgMC4yNzA2MiwgMC4zOTUzNSwgMC42MDI1NDUsIDAuODEwMDE0LCAxLjI5NTA1LCAxLjU3MTg0IiwgXAotICAgICAgICAgICIwLjI2Nzk5NCwgMC4yODE5MDMsIDAuNDA2NTIyLCAwLjYxNDQxLCAwLjgyMTk2NywgMS4zMDYzMSwgMS41ODI3MSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNDg3NzQsIDAuMTc2MDYsIDAuNDI0NTM5LCAwLjgzODE1NCwgMS4yNTUwMiwgMi4yMzI2NiwgMi43ODAyNSIsIFwKLSAgICAgICAgICAiMC4xNDg2MDMsIDAuMTc2MDU3LCAwLjQyNDQzOCwgMC44NDAwMjksIDEuMjU4ODYsIDIuMjI4MTYsIDIuNzg4ODUiLCBcCi0gICAgICAgICAgIjAuMTQ4NjE2LCAwLjE3NjA2LCAwLjQyNDQ0OSwgMC44NDAwMzksIDEuMjU4NCwgMi4yMjU4LCAyLjc4ODg0IiwgXAotICAgICAgICAgICIwLjE0ODczOCwgMC4xNzU3NDEsIDAuNDI0NDU2LCAwLjg0MDE2MSwgMS4yNTg4MSwgMi4yMjc5LCAyLjc4ODg0IiwgXAotICAgICAgICAgICIwLjE0ODczLCAwLjE3NjA2NSwgMC40MjQ0NDMsIDAuODQwMTU4LCAxLjI1ODQ2LCAyLjIyODEsIDIuNzg4NzgiLCBcCi0gICAgICAgICAgIjAuMTQ4NzczLCAwLjE3NjA2NSwgMC40MjQ1NjQsIDAuODQwNzcyLCAxLjI1NzI5LCAyLjIyNzY4LCAyLjc4MzEiLCBcCi0gICAgICAgICAgIjAuMTQ4NDc4LCAwLjE3NjE4LCAwLjQyNDQzNSwgMC44NDA1OTUsIDEuMjU2NjMsIDIuMjI4NDEsIDIuNzg3OTYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUk4iOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGNsZWFyOwotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMzA2NzgsIDAuMjQ0NjM0LCAwLjM2OTAyMSwgMC41NzYyMTksIDAuNzg0MzM4LCAxLjI2ODY2LCAxLjU0NDkzIiwgXAotICAgICAgICAgICIwLjI0MDU2NCwgMC4yNTQ1MjEsIDAuMzc4ODk1LCAwLjU4NjEwNywgMC43OTQyMjYsIDEuMjc4NTUsIDEuNTU0ODIiLCBcCi0gICAgICAgICAgIjAuMjUyMTcsIDAuMjY2MTMyLCAwLjM5MDYyOCwgMC41OTc3MTUsIDAuODA1ODQsIDEuMjkwMTYsIDEuNTY2MzUiLCBcCi0gICAgICAgICAgIjAuMjYxOTMzLCAwLjI3NTg4MywgMC40MDAyOSwgMC42MDc0ODEsIDAuODE1NTg5LCAxLjI5OTkzLCAxLjU3NjMyIiwgXAotICAgICAgICAgICIwLjI3MDc5NywgMC4yODQ3MDMsIDAuNDA5MDU2LCAwLjYxNjM0LCAwLjgyMzk0NSwgMS4zMDg4MiwgMS41ODU1NiIsIFwKLSAgICAgICAgICAiMC4yODIwNzEsIDAuMjk1ODkxLCAwLjQyMDQzOSwgMC42MjgwNjksIDAuODM1MTgzLCAxLjMxOTg1LCAxLjU5NjkiLCBcCi0gICAgICAgICAgIjAuMjkwODI1LCAwLjMwNDYyMywgMC40MjkxOTUsIDAuNjM3MDA1LCAwLjg0MzkwMSwgMS4zMjg1MiwgMS42MDU2NiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNDg2MTksIDAuMTc1OTQxLCAwLjQyNDQzLCAwLjg0MTg3MSwgMS4yNTkxLCAyLjIyODY4LCAyLjc4ODA1IiwgXAotICAgICAgICAgICIwLjE0ODYyLCAwLjE3NTc1MSwgMC40MjQ3OTEsIDAuODQxOTE5LCAxLjI1OTI5LCAyLjIzMjgyLCAyLjc4ODAzIiwgXAotICAgICAgICAgICIwLjE0ODc3MywgMC4xNzYwNDcsIDAuNDI0OTQ2LCAwLjg0MjA2MiwgMS4yNTkwNiwgMi4yMzMxNSwgMi43ODc3OSIsIFwKLSAgICAgICAgICAiMC4xNDgzMywgMC4xNzYxOTgsIDAuNDI0NDIxLCAwLjg0MDg3OCwgMS4yNTkxNiwgMi4yMjc3MywgMi43ODg1MSIsIFwKLSAgICAgICAgICAiMC4xNDg1NywgMC4xNzU2NzMsIDAuNDI0OTczLCAwLjg0MTQyMSwgMS4yNTk0MiwgMi4yMjg1NiwgMi43ODk1MSIsIFwKLSAgICAgICAgICAiMC4xNDg3OTIsIDAuMTc1OTUzLCAwLjQyNDQ5OSwgMC44NDE2NjEsIDEuMjU5MzYsIDIuMjMyNTYsIDIuNzg4MTkiLCBcCi0gICAgICAgICAgIjAuMTQ4NzkxLCAwLjE3NjAwOSwgMC40MjQ1LCAwLjg0MDY4NCwgMS4yNTkxMSwgMi4yMzIyNiwgMi43ODkxNiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcHJlc2V0OwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNzQ0NTgsIDAuMTg4NTMyLCAwLjMxNTY3NSwgMC41Mjc1NzMsIDAuNzM5NTUsIDEuMjMzNiwgMS41MTYwNiIsIFwKLSAgICAgICAgICAiMC4xODQzMTEsIDAuMTk4NTUyLCAwLjMyNTUzOSwgMC41Mzc0MTEsIDAuNzQ5MzY2LCAxLjI0MzQ0LCAxLjUyNzAyIiwgXAotICAgICAgICAgICIwLjE5NjQ4MSwgMC4yMTA2ODEsIDAuMzM3NzA1LCAwLjU0OTQ5OSwgMC43NjE1NDIsIDEuMjU2MzYsIDEuNTM4MTQiLCBcCi0gICAgICAgICAgIjAuMjA4NzE3LCAwLjIyMjk3MywgMC4zNTAwMDksIDAuNTYxODI2LCAwLjc3Mzc4NSwgMS4yNjc4NSwgMS41NTE0NSIsIFwKLSAgICAgICAgICAiMC4yMjAzNzcsIDAuMjM0NjUyLCAwLjM2MTYxOCwgMC41NzM1MDIsIDAuNzg1NDcyLCAxLjI3OTU0LCAxLjU2MjM1IiwgXAotICAgICAgICAgICIwLjIzNzc3MiwgMC4yNTE4NjMsIDAuMzc4OTI3LCAwLjU5MDgxMywgMC44MDI1NDgsIDEuMjk2ODksIDEuNTc5MzQiLCBcCi0gICAgICAgICAgIjAuMjUxNjExLCAwLjI2NTcwMiwgMC4zOTI4NiwgMC42MDQ2NDMsIDAuODE2NjI0LCAxLjMxMTUzLCAxLjU5MzI2Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE1NDM5LCAwLjE4MzAzOCwgMC40NDM5MzQsIDAuODgwMDQxLCAxLjMxNjA0LCAyLjMzMjc1LCAyLjkxMDA5IiwgXAotICAgICAgICAgICIwLjE1NDQxNiwgMC4xODMyMjQsIDAuNDQzOTQ1LCAwLjg3OTg1MywgMS4zMTYwMywgMi4zMzMsIDIuOTE0NDIiLCBcCi0gICAgICAgICAgIjAuMTU0NDA1LCAwLjE4MzI2OSwgMC40NDM5NDIsIDAuODc5ODY3LCAxLjMxNjAyLCAyLjMzMzI2LCAyLjkxMTI1IiwgXAotICAgICAgICAgICIwLjE1NDM5NywgMC4xODMyNjcsIDAuNDQzOTAxLCAwLjg3OTg4MywgMS4zMTYwMywgMi4zMzI4NCwgMi45MTQ1NCIsIFwKLSAgICAgICAgICAiMC4xNTQ0MDksIDAuMTgzMTU5LCAwLjQ0Mzg4MywgMC44ODAwNTYsIDEuMzE2MDIsIDIuMzMzMjgsIDIuOTE0MiIsIFwKLSAgICAgICAgICAiMC4xNTQ1MjMsIDAuMTgyOTg2LCAwLjQ0Mzk4MiwgMC44ODAwNiwgMS4zMTYwNCwgMi4zMzEyOCwgMi45MDczNiIsIFwKLSAgICAgICAgICAiMC4xNTQ0MTUsIDAuMTgzMjkzLCAwLjQ0Mzg3NiwgMC44Nzk4MTYsIDEuMzE2MDEsIDIuMzMyOSwgMi45MTEyNSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMTYzMzQsIDAuMjMwMTc4LCAwLjM1NDY3NSwgMC41NjIwNzYsIDAuNzY5OTYxLCAxLjI1MzgsIDEuNTMxMzciLCBcCi0gICAgICAgICAgIjAuMjI1OTgsIDAuMjM5ODk3LCAwLjM2NDM1MywgMC41NzE3MjcsIDAuNzc5NTcyLCAxLjI2NDI4LCAxLjU0MTA0IiwgXAotICAgICAgICAgICIwLjIzNjk2NCwgMC4yNTA3OTEsIDAuMzc1NDQ4LCAwLjU4MzEzOSwgMC43OTAzMTQsIDEuMjc1LCAxLjU1MjEiLCBcCi0gICAgICAgICAgIjAuMjQ3NjcsIDAuMjYxNjUzLCAwLjM4NjE4NSwgMC41OTM0MzMsIDAuODAxNiwgMS4yODU5NSwgMS41NjE4MyIsIFwKLSAgICAgICAgICAiMC4yNTgzNjMsIDAuMjcyMzQ2LCAwLjM5Njg3NSwgMC42MDQxMjcsIDAuODEyMjk1LCAxLjI5NjY1LCAxLjU3MjUyIiwgXAotICAgICAgICAgICIwLjI3NTA1LCAwLjI4ODk2OCwgMC40MTM1MjUsIDAuNjIwODE1LCAwLjgyODYzOSwgMS4zMTMzNywgMS41OTAxMyIsIFwKLSAgICAgICAgICAiMC4yODkxNTMsIDAuMzAyODg5LCAwLjQyNzYxNCwgMC42MzUyOTYsIDAuODQzMDMyLCAxLjMyNjMyLCAxLjYwMzg4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE0ODc1NSwgMC4xNzU5NjEsIDAuNDI1MDIsIDAuODQxOTQ2LCAxLjI1OTExLCAyLjIzMzA2LCAyLjc4OTUzIiwgXAotICAgICAgICAgICIwLjE0ODU4MywgMC4xNzU4NCwgMC40MjQ5NzksIDAuODQwODY1LCAxLjI1OTE3LCAyLjIyODEsIDIuNzg5NTQiLCBcCi0gICAgICAgICAgIjAuMTQ4NDYsIDAuMTc1ODk5LCAwLjQyNDUwNywgMC44NDE5MDMsIDEuMjU5MTgsIDIuMjMyNDcsIDIuNzgyOCIsIFwKLSAgICAgICAgICAiMC4xNDg2MjIsIDAuMTc1ODQ3LCAwLjQyNDgyLCAwLjg0MTY5NywgMS4yNTkxNiwgMi4yMzMxNCwgMi43ODg4IiwgXAotICAgICAgICAgICIwLjE0ODYyMiwgMC4xNzU4NDUsIDAuNDI0Njc5LCAwLjg0MTI3OSwgMS4yNTkxNSwgMi4yMjg1LCAyLjc4ODc5IiwgXAotICAgICAgICAgICIwLjE0ODc1MywgMC4xNzYwNDMsIDAuNDI0NzI3LCAwLjg0MDU2OCwgMS4yNTg1OSwgMi4yMjgyMiwgMi43ODk1MiIsIFwKLSAgICAgICAgICAiMC4xNDg1NjEsIDAuMTc1ODk1LCAwLjQyNDYzNiwgMC44NDE2NjIsIDEuMjU5NDUsIDIuMjI4MzUsIDIuNzg4NjEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0Mzg2LCAwLjAwNDM4NywgMC4wMDQzOTEsIDAuMDA0MzkyLCAwLjAwNDM5MywgMC4wMDQzOTMsIDAuMDA0Mzk0IiwgXAotICAgICAgICAgICIwLjAwNDM3LCAwLjAwNDM3MSwgMC4wMDQzNzUsIDAuMDA0Mzc3LCAwLjAwNDM3NywgMC4wMDQzNzgsIDAuMDA0Mzc4IiwgXAotICAgICAgICAgICIwLjAwNDM2MSwgMC4wMDQzNjMsIDAuMDA0MzY3LCAwLjAwNDM2OCwgMC4wMDQzNjksIDAuMDA0MzY5LCAwLjAwNDM2OSIsIFwKLSAgICAgICAgICAiMC4wMDQzNjIsIDAuMDA0MzY0LCAwLjAwNDM2OCwgMC4wMDQzNjksIDAuMDA0MzcsIDAuMDA0MzcsIDAuMDA0MzciLCBcCi0gICAgICAgICAgIjAuMDA0MzcxLCAwLjAwNDM3MiwgMC4wMDQzNzYsIDAuMDA0Mzc4LCAwLjAwNDM3OCwgMC4wMDQzNzksIDAuMDA0Mzc5IiwgXAotICAgICAgICAgICIwLjAwNDM4LCAwLjAwNDM4MSwgMC4wMDQzODUsIDAuMDA0Mzg2LCAwLjAwNDM4NywgMC4wMDQzODcsIDAuMDA0Mzg3IiwgXAotICAgICAgICAgICIwLjAwNDM5LCAwLjAwNDM5MSwgMC4wMDQzOTUsIDAuMDA0Mzk3LCAwLjAwNDM5NywgMC4wMDQzOTgsIDAuMDA0Mzk4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0MDkxLCAwLjAwNDA5MiwgMC4wMDQwOTYsIDAuMDA0MDk3LCAwLjAwNDA5OCwgMC4wMDQwOTgsIDAuMDA0MDk3IiwgXAotICAgICAgICAgICIwLjAwNDA3NSwgMC4wMDQwNzYsIDAuMDA0MDc5LCAwLjAwNDA4MiwgMC4wMDQwODEsIDAuMDA0MDgyLCAwLjAwNDA4MyIsIFwKLSAgICAgICAgICAiMC4wMDQwNzMsIDAuMDA0MDc0LCAwLjAwNDA3OCwgMC4wMDQwOCwgMC4wMDQwOCwgMC4wMDQwODEsIDAuMDA0MDgxIiwgXAotICAgICAgICAgICIwLjAwNDA4LCAwLjAwNDA4MSwgMC4wMDQwODUsIDAuMDA0MDg2LCAwLjAwNDA4NiwgMC4wMDQwODcsIDAuMDA0MDg4IiwgXAotICAgICAgICAgICIwLjAwNDA5MSwgMC4wMDQwOTMsIDAuMDA0MDk3LCAwLjAwNDA5OCwgMC4wMDQxMDEsIDAuMDA0MSwgMC4wMDQxMDEiLCBcCi0gICAgICAgICAgIjAuMDA0MTA5LCAwLjAwNDExMSwgMC4wMDQxMTUsIDAuMDA0MTE2LCAwLjAwNDExNiwgMC4wMDQxMTcsIDAuMDA0MTE4IiwgXAotICAgICAgICAgICIwLjAwNDEzLCAwLjAwNDEzMSwgMC4wMDQxMzUsIDAuMDA0MTM3LCAwLjAwNDEzNywgMC4wMDQxMzcsIDAuMDA0MTM4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUk4iOwotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDgyMywgMC4wMDQ4MjMsIDAuMDA0ODIxLCAwLjAwNDgxOSwgMC4wMDQ4MTYsIDAuMDA0ODE0LCAwLjAwNDgxMyIsIFwKLSAgICAgICAgICAiMC4wMDQ4MTEsIDAuMDA0ODExLCAwLjAwNDgxLCAwLjAwNDgwNiwgMC4wMDQ4MDQsIDAuMDA0ODAyLCAwLjAwNDgwMiIsIFwKLSAgICAgICAgICAiMC4wMDQ4MDksIDAuMDA0ODEsIDAuMDA0ODA4LCAwLjAwNDgwNSwgMC4wMDQ4MDMsIDAuMDA0ODAxLCAwLjAwNDgiLCBcCi0gICAgICAgICAgIjAuMDA0ODEsIDAuMDA0ODExLCAwLjAwNDgwOSwgMC4wMDQ4MDcsIDAuMDA0ODAzLCAwLjAwNDgwMSwgMC4wMDQ4MDEiLCBcCi0gICAgICAgICAgIjAuMDA0ODExLCAwLjAwNDgxMSwgMC4wMDQ4MSwgMC4wMDQ4MDYsIDAuMDA0ODA1LCAwLjAwNDgwMiwgMC4wMDQ4MDIiLCBcCi0gICAgICAgICAgIjAuMDA0ODE2LCAwLjAwNDgxNywgMC4wMDQ4MTUsIDAuMDA0ODEyLCAwLjAwNDgxLCAwLjAwNDgwNywgMC4wMDQ4MDciLCBcCi0gICAgICAgICAgIjAuMDA0ODI0LCAwLjAwNDgyNSwgMC4wMDQ4MjMsIDAuMDA0ODE5LCAwLjAwNDgxOCwgMC4wMDQ4MTYsIDAuMDA0ODE0Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3Bvd2VyKHNjYWxhcikgewotICAgICAgICB2YWx1ZXMoIjAiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1MDI4LCAwLjAwNTAyOSwgMC4wMDUwMzIsIDAuMDA1MDM0LCAwLjAwNTAzNCwgMC4wMDUwMzQsIDAuMDA1MDM0IiwgXAotICAgICAgICAgICIwLjAwNTAxMywgMC4wMDUwMTQsIDAuMDA1MDE5LCAwLjAwNTAyLCAwLjAwNTAyLCAwLjAwNTAyLCAwLjAwNTAyIiwgXAotICAgICAgICAgICIwLjAwNTAwOCwgMC4wMDUwMDksIDAuMDA1MDEzLCAwLjAwNTAxNCwgMC4wMDUwMTQsIDAuMDA1MDE1LCAwLjAwNTAxNSIsIFwKLSAgICAgICAgICAiMC4wMDUwMDMsIDAuMDA1MDA1LCAwLjAwNTAwOCwgMC4wMDUwMDksIDAuMDA1MDEsIDAuMDA1MDEsIDAuMDA1MDEiLCBcCi0gICAgICAgICAgIjAuMDA1MDA1LCAwLjAwNTAwNSwgMC4wMDUwMSwgMC4wMDUwMTEsIDAuMDA1MDExLCAwLjAwNTAxMSwgMC4wMDUwMTEiLCBcCi0gICAgICAgICAgIjAuMDA1MDA3LCAwLjAwNTAwOSwgMC4wMDUwMTIsIDAuMDA1MDEzLCAwLjAwNTAxMywgMC4wMDUwMTQsIDAuMDA1MDE0IiwgXAotICAgICAgICAgICIwLjAwNTAxNSwgMC4wMDUwMTUsIDAuMDA1MDE5LCAwLjAwNTAyMSwgMC4wMDUwMjEsIDAuMDA1MDIyLCAwLjAwNTAyMiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzU4NCwgMC4wMDM1ODUsIDAuMDAzNTg5LCAwLjAwMzU5MSwgMC4wMDM1OTEsIDAuMDAzNTkyLCAwLjAwMzU5MiIsIFwKLSAgICAgICAgICAiMC4wMDM1NjcsIDAuMDAzNTY4LCAwLjAwMzU3MiwgMC4wMDM1NzQsIDAuMDAzNTc0LCAwLjAwMzU3NSwgMC4wMDM1NzUiLCBcCi0gICAgICAgICAgIjAuMDAzNTU3LCAwLjAwMzU1OCwgMC4wMDM1NjIsIDAuMDAzNTY0LCAwLjAwMzU2NCwgMC4wMDM1NjUsIDAuMDAzNTY1IiwgXAotICAgICAgICAgICIwLjAwMzU1MSwgMC4wMDM1NTIsIDAuMDAzNTU3LCAwLjAwMzU2LCAwLjAwMzU1OSwgMC4wMDM1NTksIDAuMDAzNTYiLCBcCi0gICAgICAgICAgIjAuMDAzNTQ3LCAwLjAwMzU0OCwgMC4wMDM1NTIsIDAuMDAzNTU0LCAwLjAwMzU1NCwgMC4wMDM1NTQsIDAuMDAzNTU2IiwgXAotICAgICAgICAgICIwLjAwMzU0MSwgMC4wMDM1NDIsIDAuMDAzNTQ2LCAwLjAwMzU0OCwgMC4wMDM1NDgsIDAuMDAzNTQ5LCAwLjAwMzU0OSIsIFwKLSAgICAgICAgICAiMC4wMDM1MzcsIDAuMDAzNTM5LCAwLjAwMzU0MywgMC4wMDM1NDQsIDAuMDAzNTQ1LCAwLjAwMzU0NSwgMC4wMDM1NDciKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFFOKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMTQ1MTQ4OwotICAgIGZ1bmN0aW9uIDogIlFCSU5UIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBub25fdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJpc2luZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMDc0NTUsIDAuMjIxNTc2LCAwLjM0ODY0MSwgMC41NjA0NzksIDAuNzcyMjg2LCAxLjI2NjYyLCAxLjU0ODkzIiwgXAotICAgICAgICAgICIwLjIxNzYwOCwgMC4yMzE3MjYsIDAuMzU4Nzk0LCAwLjU3MDYyOSwgMC43ODIzODQsIDEuMjc2NjksIDEuNTU5MjEiLCBcCi0gICAgICAgICAgIjAuMjMwMzcxLCAwLjI0NDQ4OSwgMC4zNzE1NTUsIDAuNTgzMzkxLCAwLjc5NTE0MiwgMS4yODk0NCwgMS41NzE5NyIsIFwKLSAgICAgICAgICAiMC4yNDIxNDUsIDAuMjU2MjYyLCAwLjM4MzMyNywgMC41OTUxNjUsIDAuODA2OTE5LCAxLjMwMTIyLCAxLjU4Mzc0IiwgXAotICAgICAgICAgICIwLjI1MjU2OCwgMC4yNjY2ODgsIDAuMzkzNzU1LCAwLjYwNTU5MiwgMC44MTczNDcsIDEuMzExNTcsIDEuNTk0MTYiLCBcCi0gICAgICAgICAgIjAuMjY2ODY5LCAwLjI4MDk4OSwgMC40MDgwODIsIDAuNjE5OTEsIDAuODMxNjg3LCAxLjMyNjA3LCAxLjYwODUxIiwgXAotICAgICAgICAgICIwLjI3ODE0OCwgMC4yOTIyNjUsIDAuNDE5MzMzLCAwLjYzMTI2MywgMC44NDMwODEsIDEuMzM3MzQsIDEuNjE5NTgiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTUxOTM4LCAwLjE4MDc1MiwgMC40NDIzMTcsIDAuODc1MjM3LCAxLjMwOTMzLCAyLjMzMDA5LCAyLjkwMTY3IiwgXAotICAgICAgICAgICIwLjE1MTc5OSwgMC4xODA3NzIsIDAuNDQyMTkzLCAwLjg3NjY3OSwgMS4zMTI2MiwgMi4zMjU4LCAyLjkxMDg5IiwgXAotICAgICAgICAgICIwLjE1MTgwMywgMC4xODA3NzMsIDAuNDQyMTc2LCAwLjg3NjY4NywgMS4zMTMyNSwgMi4zMjU2OCwgMi45MTA4OSIsIFwKLSAgICAgICAgICAiMC4xNTE3OCwgMC4xODA0OTgsIDAuNDQyMTY2LCAwLjg3NjY3MywgMS4zMTI1NywgMi4zMjU4MywgMi45MTA5IiwgXAotICAgICAgICAgICIwLjE1MTkxNywgMC4xODA3NzUsIDAuNDQyMTk3LCAwLjg3NjY1MywgMS4zMTMyOCwgMi4zMjYzOSwgMi45MTA4NiIsIFwKLSAgICAgICAgICAiMC4xNTE5MjksIDAuMTgwNzQzLCAwLjQ0MjI5MywgMC44NzYxODgsIDEuMzExNjEsIDIuMzI0NTgsIDIuOTA0MjYiLCBcCi0gICAgICAgICAgIjAuMTUxNzgyLCAwLjE4MDk3MywgMC40NDIxOTcsIDAuODc2MDU4LCAxLjMxMDU4LCAyLjMyNTcyLCAyLjkxMDMzIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE5MDc4LCAwLjIwNDYxMiwgMC4zMjkwNTYsIDAuNTM2NDM4LCAwLjc0Mzg2MywgMS4yMjc4MywgMS41MDQ0OCIsIFwKLSAgICAgICAgICAiMC4yMDA4NTUsIDAuMjE0Njg0LCAwLjMzOTEyNiwgMC41NDY1MSwgMC43NTM5MjksIDEuMjM3ODgsIDEuNTE0NTYiLCBcCi0gICAgICAgICAgIjAuMjEzNDQyLCAwLjIyNzI3NCwgMC4zNTE3MTgsIDAuNTU5MSwgMC43NjY1MjMsIDEuMjUwNDksIDEuNTI3MTUiLCBcCi0gICAgICAgICAgIjAuMjI1MTMxLCAwLjIzODk1NiwgMC4zNjMzOTksIDAuNTcwNzgyLCAwLjc3ODA0NCwgMS4yNjE4NSwgMS41MzgyNiIsIFwKLSAgICAgICAgICAiMC4yMzUyMTMsIDAuMjQ5MDM2LCAwLjM3MzQ4LCAwLjU4MDg2NiwgMC43ODgxNjIsIDEuMjcyMDksIDEuNTQ4NzgiLCBcCi0gICAgICAgICAgIjAuMjQ5NzA4LCAwLjI2MzU0LCAwLjM4Nzk4MiwgMC41OTUzNjQsIDAuODAyNzgyLCAxLjI4Njc0LCAxLjU2MzQzIiwgXAotICAgICAgICAgICIwLjI2MDQ3LCAwLjI3NDMwMSwgMC4zOTg3NDQsIDAuNjA2MTIzLCAwLjgxMzU1NSwgMS4yOTc0NywgMS41NzQwNyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNDUxNjMsIDAuMTczMDAxLCAwLjQyMjE0NSwgMC44Mzk1NTIsIDEuMjU0NywgMi4yMjQ1NywgMi43ODUxNyIsIFwKLSAgICAgICAgICAiMC4xNDUyNTUsIDAuMTcyOTk1LCAwLjQyMjM5OCwgMC44Mzk1MjEsIDEuMjU0NiwgMi4yMjUyNSwgMi43ODUxMSIsIFwKLSAgICAgICAgICAiMC4xNDUyNDcsIDAuMTczMDA2LCAwLjQyMjE0MSwgMC44Mzk1MzcsIDEuMjU0NjgsIDIuMjE5NzUsIDIuNzc4NDEiLCBcCi0gICAgICAgICAgIjAuMTQ1MjY1LCAwLjE3Mjc3MiwgMC40MjE1NiwgMC44MzY1OTksIDEuMjUxOTUsIDIuMjIzMTksIDIuNzczNjQiLCBcCi0gICAgICAgICAgIjAuMTQ1MjYxLCAwLjE3Mjg1NywgMC40MjE0MTYsIDAuODM5NTI3LCAxLjI1MjgsIDIuMjIyNDEsIDIuNzczMTMiLCBcCi0gICAgICAgICAgIjAuMTQ1MjQzLCAwLjE3MzAwMSwgMC40MjIxNDYsIDAuODM5NTIyLCAxLjI1NDY2LCAyLjIxOTg1LCAyLjc3ODg5IiwgXAotICAgICAgICAgICIwLjE0NTI0OSwgMC4xNzI5OTQsIDAuNDIyNDM1LCAwLjgzOTQ2OCwgMS4yNTYzLCAyLjIyNTUzLCAyLjc3OTU5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiBwcmVzZXQ7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI0MDkxNywgMC4yNTUwNTEsIDAuMzgyMTI0LCAwLjU5MzkzMywgMC44MDU4MzgsIDEuMzAwMTEsIDEuNTgyMjkiLCBcCi0gICAgICAgICAgIjAuMjUwODAyLCAwLjI2NDkzNiwgMC4zOTIwMDgsIDAuNjAzODE4LCAwLjgxNTcyNCwgMS4zMDk5OSwgMS41OTIxNyIsIFwKLSAgICAgICAgICAiMC4yNjI0MSwgMC4yNzY1NDUsIDAuNDAzNjIxLCAwLjYxNTQyNywgMC44MjczMzUsIDEuMzIxNiwgMS42MDM3NCIsIFwKLSAgICAgICAgICAiMC4yNzIxNjYsIDAuMjg2Mjk5LCAwLjQxMzM0OCwgMC42MjUxNzgsIDAuODM3MDg0LCAxLjMzMTM2LCAxLjYxMzYxIiwgXAotICAgICAgICAgICIwLjI4MTAzMSwgMC4yOTUxNTQsIDAuNDIyMjEyLCAwLjYzNDA1MywgMC44NDU4MDEsIDEuMzQwMjQsIDEuNjIyNjYiLCBcCi0gICAgICAgICAgIjAuMjkyMzAxLCAwLjMwNjQwNiwgMC40MzM0NzgsIDAuNjQ1MzMsIDAuODU3MDY4LCAxLjM1MTM3LCAxLjYzMzk3IiwgXAotICAgICAgICAgICIwLjMwMTA0OCwgMC4zMTUxNSwgMC40NDIyMjQsIDAuNjU0MTQ4LCAwLjg2NTgyMSwgMS4zNjAwNywgMS42NDI3MiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNTE3OCwgMC4xODA2NzYsIDAuNDQyMjQ4LCAwLjg3NzgwOSwgMS4zMTM2MiwgMi4zMjU1MiwgMi45MTA4NiIsIFwKLSAgICAgICAgICAiMC4xNTE3NzgsIDAuMTgwNjM4LCAwLjQ0MjM3OSwgMC44NzgwNjksIDEuMzEzNzMsIDIuMzMwMTQsIDIuOTEwODYiLCBcCi0gICAgICAgICAgIjAuMTUxOTU2LCAwLjE4MDc2NiwgMC40NDI0MzYsIDAuODc3NDg3LCAxLjMxMzU4LCAyLjMzMDUzLCAyLjkxMDgxIiwgXAotICAgICAgICAgICIwLjE1MTc3MSwgMC4xODEwMzUsIDAuNDQyMjksIDAuODc2NzcyLCAxLjMxMzYyLCAyLjMyNTQ5LCAyLjkxMDk2IiwgXAotICAgICAgICAgICIwLjE1MTgwOSwgMC4xODA4NzEsIDAuNDQyMjM2LCAwLjg3NzgzOSwgMS4zMTM1LCAyLjMyNTk0LCAyLjkxMTUxIiwgXAotICAgICAgICAgICIwLjE1MTk2OSwgMC4xODA5NDIsIDAuNDQyMjQ4LCAwLjg3ODA0NywgMS4zMTM2LCAyLjMzMDE0LCAyLjkxMDM1IiwgXAotICAgICAgICAgICIwLjE1MTk2OSwgMC4xODA5MjMsIDAuNDQyMjQ1LCAwLjg3NjU3OSwgMS4zMTM1OSwgMi4zMzAwNSwgMi45MTA3OSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogY2xlYXI7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIyNjQ5OCwgMC4yNDA2MTQsIDAuMzY3NjgsIDAuNTc5NTE0LCAwLjc5MTI5OCwgMS4yODU0NCwgMS41NjgxMyIsIFwKLSAgICAgICAgICAiMC4yMzYxODksIDAuMjUwMzEyLCAwLjM3NzM3MSwgMC41ODkyMTUsIDAuODAwOTYxLCAxLjI5NTM5LCAxLjU3NzgyIiwgXAotICAgICAgICAgICIwLjI0NzE3NCwgMC4yNjEyNzksIDAuMzg4MzUzLCAwLjYwMDE5MiwgMC44MTE5NDUsIDEuMzA2MjMsIDEuNTg4ODUiLCBcCi0gICAgICAgICAgIjAuMjU3ODkyLCAwLjI3MjAyOCwgMC4zOTkwODUsIDAuNjEwOTA5LCAwLjgyMjgyNywgMS4zMTcwOCwgMS41OTkyIiwgXAotICAgICAgICAgICIwLjI2ODU4NSwgMC4yODI3MjEsIDAuNDA5Nzc3LCAwLjYyMTYwMSwgMC44MzM1MjEsIDEuMzI3NzgsIDEuNjA5OSIsIFwKLSAgICAgICAgICAiMC4yODUyNjksIDAuMjk5MzkyLCAwLjQyNjQ0OCwgMC42MzgyOSwgMC44NTAwMzYsIDEuMzQ0NDgsIDEuNjI2OTEiLCBcCi0gICAgICAgICAgIjAuMjk5MzQ3LCAwLjMxMzQ0NCwgMC40NDA1MjcsIDAuNjUyMzY3LCAwLjg2NDI1NiwgMS4zNTg0MSwgMS42NDA4MiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNTE5NDIsIDAuMTgwNzYzLCAwLjQ0MjIxOCwgMC44NzczNzQsIDEuMzEzNTgsIDIuMzI5MjgsIDIuOTExNiIsIFwKLSAgICAgICAgICAiMC4xNTE4MDgsIDAuMTgwNzM5LCAwLjQ0MjMzNCwgMC44NzYyODcsIDEuMzEzNTMsIDIuMzI1NzYsIDIuOTExNTIiLCBcCi0gICAgICAgICAgIjAuMTUxODAzLCAwLjE4MDkzNiwgMC40NDIyNDgsIDAuODc4MDE3LCAxLjMxMzUxLCAyLjMzMDEsIDIuOTA3MDEiLCBcCi0gICAgICAgICAgIjAuMTUxNzc0LCAwLjE4MDg2NywgMC40NDIzNjksIDAuODc3ODg1LCAxLjMxMzUsIDIuMzMwNSwgMi45MTAwMyIsIFwKLSAgICAgICAgICAiMC4xNTE3NzQsIDAuMTgwNzM0LCAwLjQ0MjM1OSwgMC44Nzc4MywgMS4zMTM1LCAyLjMyNTc3LCAyLjkwOTk5IiwgXAotICAgICAgICAgICIwLjE1MTk1NiwgMC4xODA3NjUsIDAuNDQyMzgzLCAwLjg3NjI4MSwgMS4zMTM0OSwgMi4zMjU2NSwgMi45MTE0OCIsIFwKLSAgICAgICAgICAiMC4xNTE3NywgMC4xODA0NDksIDAuNDQyMjYyLCAwLjg3ODAwNSwgMS4zMTM4OCwgMi4zMjYwNCwgMi45MTA5MiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xODMyNTksIDAuMTk3MDg2LCAwLjMyMTUzOSwgMC41MjkwMDIsIDAuNzM2NDI1LCAxLjIyMDMyLCAxLjQ5Njg0IiwgXAotICAgICAgICAgICIwLjE5MzA4NCwgMC4yMDY5MjQsIDAuMzMxMzU2LCAwLjUzODgyOSwgMC43NDYyMzMsIDEuMjMwMTIsIDEuNTA2NzEiLCBcCi0gICAgICAgICAgIjAuMjA1Mjc3LCAwLjIxOTExMSwgMC4zNDM1NSwgMC41NTA5NTMsIDAuNzU4NDE4LCAxLjI0MjI2LCAxLjUxODgyIiwgXAotICAgICAgICAgICIwLjIxNzQ4OSwgMC4yMzEzMywgMC4zNTU3NjIsIDAuNTYzMjM0LCAwLjc3MDYzOSwgMS4yNTQ1MiwgMS41MzExMyIsIFwKLSAgICAgICAgICAiMC4yMjkxNDgsIDAuMjQyOTkxLCAwLjM2NzQyOCwgMC41NzQ4OTUsIDAuNzgyMzExLCAxLjI2NjE5LCAxLjU0MjY0IiwgXAotICAgICAgICAgICIwLjI0NjQ1MywgMC4yNjAyNzgsIDAuMzg0NzE1LCAwLjU5MjE4MSwgMC43OTk1NDQsIDEuMjgzNiwgMS41NTk5OSIsIFwKLSAgICAgICAgICAiMC4yNjAzODksIDAuMjc0MjE5LCAwLjM5ODY2NCwgMC42MDYwNzUsIDAuODEzNDY4LCAxLjI5NzQxLCAxLjU3Mzk2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE0NTE2NSwgMC4xNzI4NiwgMC40MjMwNTYsIDAuODQwMDM1LCAxLjI1Njg2LCAyLjIyODY1LCAyLjc4MDY1IiwgXAotICAgICAgICAgICIwLjE0NTMsIDAuMTczMDksIDAuNDIzMTEsIDAuODM5NzksIDEuMjU2NzgsIDIuMjI4NzIsIDIuNzg0ODIiLCBcCi0gICAgICAgICAgIjAuMTQ1MjkyLCAwLjE3MzA5NSwgMC40MjMwNzIsIDAuODM5Nzg0LCAxLjI1NjczLCAyLjIyODksIDIuNzgyNzUiLCBcCi0gICAgICAgICAgIjAuMTQ1MTYyLCAwLjE3MzA4LCAwLjQyMzAxNywgMC44Mzk3NzYsIDEuMjU2OCwgMi4yMjg3NCwgMi43ODQ5MiIsIFwKLSAgICAgICAgICAiMC4xNDUxNjYsIDAuMTczMDk4LCAwLjQyMzAwMiwgMC44NDAwNDEsIDEuMjU2ODMsIDIuMjI5MDUsIDIuNzg0MjgiLCBcCi0gICAgICAgICAgIjAuMTQ1MzE0LCAwLjE3Mjc5NCwgMC40MjMxNjksIDAuODQwMDU0LCAxLjI1NjcxLCAyLjIyNDMsIDIuNzc4ODUiLCBcCi0gICAgICAgICAgIjAuMTQ1MTY5LCAwLjE3MzA3NywgMC40MjMwMzcsIDAuODM5NzIxLCAxLjI1NjY3LCAyLjIyODczLCAyLjc4MDciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0MDkxLCAwLjAwNDA5MiwgMC4wMDQwOTYsIDAuMDA0MDk3LCAwLjAwNDA5OCwgMC4wMDQwOTgsIDAuMDA0MDk3IiwgXAotICAgICAgICAgICIwLjAwNDA3NSwgMC4wMDQwNzYsIDAuMDA0MDc5LCAwLjAwNDA4MiwgMC4wMDQwODEsIDAuMDA0MDgyLCAwLjAwNDA4MyIsIFwKLSAgICAgICAgICAiMC4wMDQwNzMsIDAuMDA0MDc0LCAwLjAwNDA3OCwgMC4wMDQwOCwgMC4wMDQwOCwgMC4wMDQwODEsIDAuMDA0MDgxIiwgXAotICAgICAgICAgICIwLjAwNDA4LCAwLjAwNDA4MSwgMC4wMDQwODUsIDAuMDA0MDg2LCAwLjAwNDA4NiwgMC4wMDQwODcsIDAuMDA0MDg4IiwgXAotICAgICAgICAgICIwLjAwNDA5MSwgMC4wMDQwOTMsIDAuMDA0MDk3LCAwLjAwNDA5OCwgMC4wMDQxMDEsIDAuMDA0MSwgMC4wMDQxMDEiLCBcCi0gICAgICAgICAgIjAuMDA0MTA5LCAwLjAwNDExMSwgMC4wMDQxMTUsIDAuMDA0MTE2LCAwLjAwNDExNiwgMC4wMDQxMTcsIDAuMDA0MTE4IiwgXAotICAgICAgICAgICIwLjAwNDEzLCAwLjAwNDEzMSwgMC4wMDQxMzUsIDAuMDA0MTM3LCAwLjAwNDEzNywgMC4wMDQxMzcsIDAuMDA0MTM4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0Mzg2LCAwLjAwNDM4NywgMC4wMDQzOTEsIDAuMDA0MzkyLCAwLjAwNDM5MywgMC4wMDQzOTMsIDAuMDA0Mzk0IiwgXAotICAgICAgICAgICIwLjAwNDM3LCAwLjAwNDM3MSwgMC4wMDQzNzUsIDAuMDA0Mzc3LCAwLjAwNDM3NywgMC4wMDQzNzgsIDAuMDA0Mzc4IiwgXAotICAgICAgICAgICIwLjAwNDM2MSwgMC4wMDQzNjMsIDAuMDA0MzY3LCAwLjAwNDM2OCwgMC4wMDQzNjksIDAuMDA0MzY5LCAwLjAwNDM2OSIsIFwKLSAgICAgICAgICAiMC4wMDQzNjIsIDAuMDA0MzY0LCAwLjAwNDM2OCwgMC4wMDQzNjksIDAuMDA0MzcsIDAuMDA0MzcsIDAuMDA0MzciLCBcCi0gICAgICAgICAgIjAuMDA0MzcxLCAwLjAwNDM3MiwgMC4wMDQzNzYsIDAuMDA0Mzc4LCAwLjAwNDM3OCwgMC4wMDQzNzksIDAuMDA0Mzc5IiwgXAotICAgICAgICAgICIwLjAwNDM4LCAwLjAwNDM4MSwgMC4wMDQzODUsIDAuMDA0Mzg2LCAwLjAwNDM4NywgMC4wMDQzODcsIDAuMDA0Mzg3IiwgXAotICAgICAgICAgICIwLjAwNDM5LCAwLjAwNDM5MSwgMC4wMDQzOTUsIDAuMDA0Mzk3LCAwLjAwNDM5NywgMC4wMDQzOTgsIDAuMDA0Mzk4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUk4iOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDgyMywgMC4wMDQ4MjMsIDAuMDA0ODIxLCAwLjAwNDgxOSwgMC4wMDQ4MTYsIDAuMDA0ODE0LCAwLjAwNDgxMyIsIFwKLSAgICAgICAgICAiMC4wMDQ4MTEsIDAuMDA0ODExLCAwLjAwNDgxLCAwLjAwNDgwNiwgMC4wMDQ4MDQsIDAuMDA0ODAyLCAwLjAwNDgwMiIsIFwKLSAgICAgICAgICAiMC4wMDQ4MDksIDAuMDA0ODEsIDAuMDA0ODA4LCAwLjAwNDgwNSwgMC4wMDQ4MDMsIDAuMDA0ODAxLCAwLjAwNDgiLCBcCi0gICAgICAgICAgIjAuMDA0ODEsIDAuMDA0ODExLCAwLjAwNDgwOSwgMC4wMDQ4MDcsIDAuMDA0ODAzLCAwLjAwNDgwMSwgMC4wMDQ4MDEiLCBcCi0gICAgICAgICAgIjAuMDA0ODExLCAwLjAwNDgxMSwgMC4wMDQ4MSwgMC4wMDQ4MDYsIDAuMDA0ODA1LCAwLjAwNDgwMiwgMC4wMDQ4MDIiLCBcCi0gICAgICAgICAgIjAuMDA0ODE2LCAwLjAwNDgxNywgMC4wMDQ4MTUsIDAuMDA0ODEyLCAwLjAwNDgxLCAwLjAwNDgwNywgMC4wMDQ4MDciLCBcCi0gICAgICAgICAgIjAuMDA0ODI0LCAwLjAwNDgyNSwgMC4wMDQ4MjMsIDAuMDA0ODE5LCAwLjAwNDgxOCwgMC4wMDQ4MTYsIDAuMDA0ODE0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHNjYWxhcikgewotICAgICAgICB2YWx1ZXMoIjAiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzNTg0LCAwLjAwMzU4NSwgMC4wMDM1ODksIDAuMDAzNTkxLCAwLjAwMzU5MSwgMC4wMDM1OTIsIDAuMDAzNTkyIiwgXAotICAgICAgICAgICIwLjAwMzU2NywgMC4wMDM1NjgsIDAuMDAzNTcyLCAwLjAwMzU3NCwgMC4wMDM1NzQsIDAuMDAzNTc1LCAwLjAwMzU3NSIsIFwKLSAgICAgICAgICAiMC4wMDM1NTcsIDAuMDAzNTU4LCAwLjAwMzU2MiwgMC4wMDM1NjQsIDAuMDAzNTY0LCAwLjAwMzU2NSwgMC4wMDM1NjUiLCBcCi0gICAgICAgICAgIjAuMDAzNTUxLCAwLjAwMzU1MiwgMC4wMDM1NTcsIDAuMDAzNTYsIDAuMDAzNTU5LCAwLjAwMzU1OSwgMC4wMDM1NiIsIFwKLSAgICAgICAgICAiMC4wMDM1NDcsIDAuMDAzNTQ4LCAwLjAwMzU1MiwgMC4wMDM1NTQsIDAuMDAzNTU0LCAwLjAwMzU1NCwgMC4wMDM1NTYiLCBcCi0gICAgICAgICAgIjAuMDAzNTQxLCAwLjAwMzU0MiwgMC4wMDM1NDYsIDAuMDAzNTQ4LCAwLjAwMzU0OCwgMC4wMDM1NDksIDAuMDAzNTQ5IiwgXAotICAgICAgICAgICIwLjAwMzUzNywgMC4wMDM1MzksIDAuMDAzNTQzLCAwLjAwMzU0NCwgMC4wMDM1NDUsIDAuMDAzNTQ1LCAwLjAwMzU0NyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNTAyOCwgMC4wMDUwMjksIDAuMDA1MDMyLCAwLjAwNTAzNCwgMC4wMDUwMzQsIDAuMDA1MDM0LCAwLjAwNTAzNCIsIFwKLSAgICAgICAgICAiMC4wMDUwMTMsIDAuMDA1MDE0LCAwLjAwNTAxOSwgMC4wMDUwMiwgMC4wMDUwMiwgMC4wMDUwMiwgMC4wMDUwMiIsIFwKLSAgICAgICAgICAiMC4wMDUwMDgsIDAuMDA1MDA5LCAwLjAwNTAxMywgMC4wMDUwMTQsIDAuMDA1MDE0LCAwLjAwNTAxNSwgMC4wMDUwMTUiLCBcCi0gICAgICAgICAgIjAuMDA1MDAzLCAwLjAwNTAwNSwgMC4wMDUwMDgsIDAuMDA1MDA5LCAwLjAwNTAxLCAwLjAwNTAxLCAwLjAwNTAxIiwgXAotICAgICAgICAgICIwLjAwNTAwNSwgMC4wMDUwMDUsIDAuMDA1MDEsIDAuMDA1MDExLCAwLjAwNTAxMSwgMC4wMDUwMTEsIDAuMDA1MDExIiwgXAotICAgICAgICAgICIwLjAwNTAwNywgMC4wMDUwMDksIDAuMDA1MDEyLCAwLjAwNTAxMywgMC4wMDUwMTMsIDAuMDA1MDE0LCAwLjAwNTAxNCIsIFwKLSAgICAgICAgICAiMC4wMDUwMTUsIDAuMDA1MDE1LCAwLjAwNTAxOSwgMC4wMDUwMjEsIDAuMDA1MDIxLCAwLjAwNTAyMiwgMC4wMDUwMjIiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFJOKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2Mjk4MDM7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjI5NTk7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjI5ODAzOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDUwNSwgMC4wMDA0ODIsIDAuMDAwNDc2LCAwLjAwMDQ4MSwgMC4wMDA0OSwgMC4wMDA1MTQsIDAuMDAwNTM3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyMjA0LCAwLjAwMjE4NiwgMC4wMDIxODEsIDAuMDAyMTg1LCAwLjAwMjE5NSwgMC4wMDIyMTcsIDAuMDAyMjM3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRCZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjI0MDkxNywgMC4yNTA4MDIsIDAuMjYyNDEsIDAuMjcyMTY2LCAwLjI4MTAzMSwgMC4yOTIzMDEsIDAuMzAxMDQ4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogcmVjb3ZlcnlfcmlzaW5nOwotICAgICAgd2hlbiA6ICJEJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMV9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHJlY292ZXJ5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2ODc1LCAwLjA1NzUsIDAuMDQ1LCAwLjAzMjUsIDAuMDIsIDAuMDEsIC0wLjAwNSIsIFwKLSAgICAgICAgICAiMC4wOCwgMC4wNjg3NSwgMC4wNTYyNSwgMC4wNDM3NSwgMC4wMzEyNSwgMC4wMTUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMDkyNSwgMC4wODEyNSwgMC4wNjI1LCAwLjA1LCAwLjA0Mzc1LCAwLjAyNzUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMDk4NzUsIDAuMDg3NSwgMC4wNzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNCwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4xMTEyNSwgMC4xLCAwLjA4NzUsIDAuMDc1LCAwLjA2MjUsIDAuMDQ2MjUsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiMC4xMjEyNSwgMC4xMSwgMC4wOTc1LCAwLjA4NSwgMC4wNzI1LCAwLjA2MjUsIDAuMDUzNzUiLCBcCi0gICAgICAgICAgIjAuMTMsIDAuMTE4NzUsIDAuMTA2MjUsIDAuMDkzNzUsIDAuMDgxMjUsIDAuMDcxMjUsIDAuMDYyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJlY292ZXJ5X3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUQiOwotICAgICAgc2RmX2NvbmQgOiAiRCA9PSAxJ2IwIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChyZWNvdmVyeV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODEyNSwgMC4wODYyNSwgMC4wOTg3NSwgMC4xMTEyNSwgMC4xMTc1LCAwLjEzMzc1LCAwLjE0ODc1IiwgXAotICAgICAgICAgICIwLjA3LCAwLjA4MTI1LCAwLjA4NzUsIDAuMSwgMC4xMTI1LCAwLjEyODc1LCAwLjE0Mzc1IiwgXAotICAgICAgICAgICIwLjA2Mzc1LCAwLjA3NSwgMC4wODEyNSwgMC4wOTM3NSwgMC4xMDYyNSwgMC4xMjI1LCAwLjEzMTI1IiwgXAotICAgICAgICAgICIwLjA1NzUsIDAuMDY4NzUsIDAuMDc1LCAwLjA4NzUsIDAuMSwgMC4xMTYyNSwgMC4xMjUiLCBcCi0gICAgICAgICAgIjAuMDUxMjUsIDAuMDYyNSwgMC4wNzUsIDAuMDgxMjUsIDAuMDkzNzUsIDAuMTEsIDAuMTI1IiwgXAotICAgICAgICAgICIwLjA0NzUsIDAuMDU4NzUsIDAuMDY1LCAwLjA3NzUsIDAuMDksIDAuMTA2MjUsIDAuMTE1IiwgXAotICAgICAgICAgICIwLjA0NSwgMC4wNTYyNSwgMC4wNjI1LCAwLjA3NSwgMC4wODEyNSwgMC4wOTc1LCAwLjExMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiByZW1vdmFsX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiRCZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzFfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChyZW1vdmFsX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMTI1LCAtMC4wMDc1LCAwLjAwNSwgMC4wMTc1LCAwLjAzLCAwLjA0LCAwLjA0ODc1IiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDEyNSwgMCwgMC4wMDYyNSwgMC4wMTg3NSwgMC4wMjg3NSwgMC4wMzc1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDI1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMC4wMDYyNSwgMC4wMTYyNSwgMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLjAxLCAwLjAxODc1IiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAxMjUsIC0wLjAwMjUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA3MTI1LCAtMC4wNiwgLTAuMDQ3NSwgLTAuMDM1LCAtMC4wMjg3NSwgLTAuMDEyNSwgLTAuMDAzNzUiLCBcCi0gICAgICAgICAgIi0wLjA4LCAtMC4wNjg3NSwgLTAuMDU2MjUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMjEyNSwgLTAuMDEyNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oU04pICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTcyNDM5OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTcyNDM5OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTcyMjY3OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDQ1MywgMC4wMDA0NTIsIDAuMDAwNDUyLCAwLjAwMDQ1MiwgMC4wMDA0NTIsIDAuMDAwNDUyLCAwLjAwMDQ1MiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDQ1MywgMC4wMDA0NTQsIDAuMDAwNDU0LCAwLjAwMDQ1NCwgMC4wMDA0NTMsIDAuMDAwNDU0LCAwLjAwMDQ1NCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQmIVJOIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9STl9FUV8wID09IDEnYjEiOwotICAgICAgZmFsbF9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMTgzMjU5LCAwLjE5MzA4NCwgMC4yMDUyNzcsIDAuMjE3NDg5LCAwLjIyOTE0OCwgMC4yNDY0NTIsIDAuMjYwMzg5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogcmVjb3ZlcnlfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRCZSTiI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fUk5fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChyZWNvdmVyeV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTg3NSwgMC4wMDc1LCAtMC4wMDUsIC0wLjAxNzUsIC0wLjAzLCAtMC4wNDYyNSwgLTAuMDU1IiwgXAotICAgICAgICAgICIwLjAzLCAwLjAxODc1LCAwLjAwNjI1LCAtMC4wMTI1LCAtMC4wMTg3NSwgLTAuMDM1LCAtMC4wNSIsIFwKLSAgICAgICAgICAiMC4wMzYyNSwgMC4wMjUsIDAuMDEyNSwgMCwgLTAuMDEyNSwgLTAuMDIyNSwgLTAuMDM3NSIsIFwKLSAgICAgICAgICAiMC4wNDg3NSwgMC4wMzc1LCAwLjAyNSwgMC4wMTI1LCAwLCAtMC4wMTYyNSwgLTAuMDI1IiwgXAotICAgICAgICAgICIwLjA2MTI1LCAwLjA1LCAwLjAzNzUsIDAuMDI1LCAwLjAxMjUsIC0wLjAwMzc1LCAtMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4wNzc1LCAwLjA2NjI1LCAwLjA1Mzc1LCAwLjA0MTI1LCAwLjAyODc1LCAwLjAxMjUsIDAuMDAzNzUiLCBcCi0gICAgICAgICAgIjAuMDkyNSwgMC4wODEyNSwgMC4wNjg3NSwgMC4wNTYyNSwgMC4wNDM3NSwgMC4wMjc1LCAwLjAxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiByZW1vdmFsX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUQmUk4iOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1JOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQocmVtb3ZhbF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzEyNSwgMC4wMzYyNSwgMC4wNDg3NSwgMC4wNjEyNSwgMC4wNzM3NSwgMC4wOSwgMC4wOTg3NSIsIFwKLSAgICAgICAgICAiMC4wMiwgMC4wMzEyNSwgMC4wNDM3NSwgMC4wNTYyNSwgMC4wNjI1LCAwLjA3ODc1LCAwLjA4NzUiLCBcCi0gICAgICAgICAgIjAuMDA3NSwgMC4wMTg3NSwgMC4wMzEyNSwgMC4wNDM3NSwgMC4wNTYyNSwgMC4wNjYyNSwgMC4wODEyNSIsIFwKLSAgICAgICAgICAiLTAuMDA1LCAwLjAwNjI1LCAwLjAxODc1LCAwLjAzMTI1LCAwLjA0Mzc1LCAwLjA2LCAwLjA2ODc1IiwgXAotICAgICAgICAgICItMC4wMTEyNSwgMCwgMC4wMTI1LCAwLjAyNSwgMC4wMzEyNSwgMC4wNDc1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICItMC4wMjc1LCAtMC4wMTYyNSwgLTAuMDAzNzUsIDAuMDA4NzUsIDAuMDE1LCAwLjAzMTI1LCAwLjA0IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDMxMjUsIC0wLjAxODc1LCAtMC4wMDYyNSwgMC4wMDYyNSwgMC4wMjI1LCAwLjAzMTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogREZGVFJYMiAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChERkZUUlgyKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuNDMzMDc5OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIGZmIChOMzAsUUJJTlQpIHsKLSAgICBuZXh0X3N0YXRlIDogIihEIFJOKSI7Ci0gICAgY2xvY2tlZF9vbiA6ICJDSyI7Ci0gIH0KLSAgcGluKENLKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA1ODU1Nzc7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNTg1MTkxOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDU4NTU3NzsKLSAgICBjbG9jayA6IHRydWU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzMDEyLCAwLjAwMjk4NSwgMC4wMDI5NzEsIDAuMDAyOTc1LCAwLjAwMjk4OCwgMC4wMDMwMDksIDAuMDAzMDI4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA2MDQ4LCAwLjAwNjAyNCwgMC4wMDYwMjEsIDAuMDA2MDI5LCAwLjAwNjA1MSwgMC4wMDYwODcsIDAuMDA2MTMzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRCYhUk4iOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1JOX0VRXzAgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4xNTcxNjgsIDAuMTY3MzcyLCAwLjE4MDEwNCwgMC4xOTE5MjcsIDAuMjAyNDAxLCAwLjIxNjc4NSwgMC4yMjc4NzEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjA4NDU2OSwgMC4wOTQ1NTYsIDAuMTA2ODAxLCAwLjExODA5MiwgMC4xMjc4NzgsIDAuMTQxMDkyLCAwLjE1MTE1NyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjM5NTkxOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYzOTQ2MTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2Mzk1OTE7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyMjk0LCAwLjAwMjI3MiwgMC4wMDIyNjMsIDAuMDAyMjY0LCAwLjAwMjI3MSwgMC4wMDIyOTMsIDAuMDAyMzIxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzODA2LCAwLjAwMzc5LCAwLjAwMzc3OSwgMC4wMDM3NzgsIDAuMDAzNzgxLCAwLjAwMzgwMiwgMC4wMDM4MTQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiUk4iOwotICAgICAgc2RmX2NvbmQgOiAiUk4gPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDQzNzUsIC0wLjAzMjUsIC0wLjAyNjI1LCAtMC4wMiwgLTAuMDEzNzUsIC0wLjAwMzc1LCAtMC4wMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMTUsIC0wLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjA2MTI1LCAtMC4wNTYyNSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzNzUsIC0wLjAyNzUsIC0wLjAxODc1IiwgXAotICAgICAgICAgICItMC4wNzM3NSwgLTAuMDY4NzUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDUsIC0wLjA0LCAtMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDg2MjUsIC0wLjA3NSwgLTAuMDY4NzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNTI1LCAtMC4wNDM3NSIsIFwKLSAgICAgICAgICAiLTAuMTAyNSwgLTAuMDkxMjUsIC0wLjA4NSwgLTAuMDc4NzUsIC0wLjA3MjUsIC0wLjA2ODc1LCAtMC4wNiIsIFwKLSAgICAgICAgICAiLTAuMTExMjUsIC0wLjEwNjI1LCAtMC4xLCAtMC4wOTM3NSwgLTAuMDg3NSwgLTAuMDc3NSwgLTAuMDc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDYyNSwgMC4wMTc1LCAwLjAzLCAwLjA0MjUsIDAuMDQ4NzUsIDAuMDY1LCAwLjA3Mzc1IiwgXAotICAgICAgICAgICIwLjAwMTI1LCAwLjAxMjUsIDAuMDE4NzUsIDAuMDMxMjUsIDAuMDQzNzUsIDAuMDUzNzUsIDAuMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDExMjUsIDAsIDAuMDEyNSwgMC4wMTg3NSwgMC4wMzEyNSwgMC4wNDEyNSwgMC4wNSIsIFwKLSAgICAgICAgICAiLTAuMDE3NSwgLTAuMDEyNSwgMCwgMC4wMTI1LCAwLjAxODc1LCAwLjAzNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAxODc1LCAtMC4wMDYyNSwgMC4wMDYyNSwgMC4wMTI1LCAwLjAyMjUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjAzMzc1LCAtMC4wMjg3NSwgLTAuMDE2MjUsIC0wLjAxLCAwLjAwMjUsIDAuMDEyNSwgMC4wMjEyNSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDM3NSwgLTAuMDI1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMC4wMDM3NSwgMC4wMTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJSTiI7Ci0gICAgICBzZGZfY29uZCA6ICJSTiA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzUsIDAuMDYzNzUsIDAuMDUxMjUsIDAuMDQ1LCAwLjAzODc1LCAwLjAyODc1LCAwLjAyNjI1IiwgXAotICAgICAgICAgICIwLjA4LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDUsIDAuMDQsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMDkyNSwgMC4wODEyNSwgMC4wNzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNTI1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjEwNSwgMC4wOTM3NSwgMC4wODc1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIjAuMTE3NSwgMC4xMDYyNSwgMC4wOTM3NSwgMC4wODc1LCAwLjA4MTI1LCAwLjA3MTI1LCAwLjA2ODc1IiwgXAotICAgICAgICAgICIwLjEzMzc1LCAwLjEyMjUsIDAuMTE2MjUsIDAuMTAzNzUsIDAuMDk3NSwgMC4wOTM3NSwgMC4wODUiLCBcCi0gICAgICAgICAgIjAuMTQ4NzUsIDAuMTM3NSwgMC4xMjUsIDAuMTE4NzUsIDAuMTEyNSwgMC4xMDI1LCAwLjEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjUsIDAuMDEzNzUsIDAuMDAxMjUsIC0wLjAxMTI1LCAtMC4wMTc1LCAtMC4wMzM3NSwgLTAuMDQyNSIsIFwKLSAgICAgICAgICAiMC4wMzYyNSwgMC4wMjUsIDAuMDEyNSwgMCwgLTAuMDEyNSwgLTAuMDIyNSwgLTAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMDQ4NzUsIDAuMDM3NSwgMC4wMjUsIDAuMDEyNSwgMCwgLTAuMDEsIC0wLjAyNSIsIFwKLSAgICAgICAgICAiMC4wNTUsIDAuMDUsIDAuMDM3NSwgMC4wMjUsIDAuMDEyNSwgLTAuMDAzNzUsIC0wLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMDY3NSwgMC4wNTYyNSwgMC4wNDM3NSwgMC4wMzEyNSwgMC4wMjUsIDAuMDA4NzUsIDAiLCBcCi0gICAgICAgICAgIjAuMDgzNzUsIDAuMDcyNSwgMC4wNiwgMC4wNDc1LCAwLjAzNSwgMC4wMjUsIDAuMDEiLCBcCi0gICAgICAgICAgIjAuMDkyNSwgMC4wODEyNSwgMC4wNjg3NSwgMC4wNTYyNSwgMC4wNSwgMC4wMzM3NSwgMC4wMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFEpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC41MzI4MTE7Ci0gICAgZnVuY3Rpb24gOiAiTjMwIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBub25fdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJpc2luZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMjAxOCwgMC4yMjIzNDksIDAuMzAzNTM3LCAwLjQwNDI1MywgMC41MDU3MDIsIDAuNjA2NzUxLCAwLjcwODU0NCIsIFwKLSAgICAgICAgICAiMC4xMzAzMjMsIDAuMjMyNDgyLCAwLjMxMzYyNiwgMC40MTQzNTcsIDAuNTE2MDg5LCAwLjYxNzk4OSwgMC43MTg2ODgiLCBcCi0gICAgICAgICAgIjAuMTQyOTU1LCAwLjI0NTExNSwgMC4zMjYyOTUsIDAuNDI2OTc3LCAwLjUyODY1NywgMC42Mjk1NDgsIDAuNzMxMzI1IiwgXAotICAgICAgICAgICIwLjE1NDY4LCAwLjI1Njg1NSwgMC4zMzgxODIsIDAuNDM5MzMzLCAwLjU0MDExMywgMC42NDEyNTQsIDAuNzQzMDY2IiwgXAotICAgICAgICAgICIwLjE2NDcxMiwgMC4yNjY2MTYsIDAuMzQ3ODk5LCAwLjQ0OTM0MiwgMC41NDk4MiwgMC42NTE0MTksIDAuNzUzMTY0IiwgXAotICAgICAgICAgICIwLjE3OTIyMiwgMC4yODEzOTgsIDAuMzYyNTYyLCAwLjQ2MzI5LCAwLjU2NDkzNiwgMC42NjY3NTUsIDAuNzY3NjI1IiwgXAotICAgICAgICAgICIwLjE4OTk3MywgMC4yOTIyMDcsIDAuMzczNzgsIDAuNDc0NTY4LCAwLjU3NTQzNCwgMC42NzY2MTMsIDAuNzc4NDIiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDUyNiwgMC4yNTc4NTYsIDAuNDIzNjUyLCAwLjYzMjcyNywgMC44NDA4NDMsIDEuMDQ5OTgsIDEuMjYwNzkiLCBcCi0gICAgICAgICAgIjAuMDUyNjM1LCAwLjI1NjczMiwgMC40MjM1NzUsIDAuNjMyNTYxLCAwLjg0MDc1MSwgMS4wNDkxLCAxLjI2MDc3IiwgXAotICAgICAgICAgICIwLjA1MjY4NiwgMC4yNTY3MTcsIDAuNDIzNjE2LCAwLjYzMjYyNSwgMC44NDI1MzIsIDEuMDQ5OSwgMS4yNjA3NiIsIFwKLSAgICAgICAgICAiMC4wNTI2NDIsIDAuMjU4MDI1LCAwLjQyNDQyNSwgMC42MzM0NjIsIDAuODQwOTc4LCAxLjA0OTk4LCAxLjI2MDc1IiwgXAotICAgICAgICAgICIwLjA1Mjg2NywgMC4yNTg2NTIsIDAuNDI0NDQ5LCAwLjYzMzQ1NywgMC44NDExOTQsIDEuMDQ5MzksIDEuMjYwNjMiLCBcCi0gICAgICAgICAgIjAuMDUyNzA2LCAwLjI1NjgxMSwgMC40MjM1OTgsIDAuNjMyNTI2LCAwLjg0MDc5LCAxLjA0ODk4LCAxLjI2MDcyIiwgXAotICAgICAgICAgICIwLjA1MjcwOSwgMC4yNTcxMywgMC40MjQyMDUsIDAuNjMzNDQzLCAwLjg0MDk5LCAxLjA0OTczLCAxLjI2MDY4Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEzNTA5LCAwLjIzOTk0OCwgMC4zMjI5NDUsIDAuNDI2NTIsIDAuNTMwMDc0LCAwLjYzMzIwNywgMC43MzY4NDIiLCBcCi0gICAgICAgICAgIjAuMTQ1Mjg4LCAwLjI1MDA4LCAwLjMzMzI2MSwgMC40MzYzOTgsIDAuNTM5ODY5LCAwLjY0MzQ1NCwgMC43NDcxMzgiLCBcCi0gICAgICAgICAgIjAuMTU4MDI1LCAwLjI2Mjg4NiwgMC4zNDU4ODksIDAuNDQ5MTEsIDAuNTUyOTY1LCAwLjY1NjE0NiwgMC43NTk3NzgiLCBcCi0gICAgICAgICAgIjAuMTY5ODQ2LCAwLjI3NDcyNiwgMC4zNTc4MTQsIDAuNDYwOTcyLCAwLjU2NDU5MSwgMC42NjgxODUsIDAuNzcxNjIiLCBcCi0gICAgICAgICAgIjAuMTgwMzE4LCAwLjI4NTExNiwgMC4zNjgwMzgsIDAuNDcxNDIzLCAwLjU3NDk0LCAwLjY3ODc3NywgMC43ODE5OTciLCBcCi0gICAgICAgICAgIjAuMTk0NjkyLCAwLjI5OTU2MiwgMC4zODI2MzksIDAuNDg1NzkyLCAwLjU4OTQ0MiwgMC42OTMwMDQsIDAuNzk2NDQiLCBcCi0gICAgICAgICAgIjAuMjA1Nzg5LCAwLjMxMDY2MSwgMC4zOTM3MjgsIDAuNDk2ODg4LCAwLjYwMDU0NiwgMC43MDM5MjYsIDAuODA3NTQ1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1Mjg4NCwgMC4yNTg2NzUsIDAuNDI1ODM3LCAwLjYzNDg4OCwgMC44NDUxNjQsIDEuMDU1MjQsIDEuMjY2MTgiLCBcCi0gICAgICAgICAgIjAuMDUyNzE0LCAwLjI1OTM3NywgMC40MjU4OTksIDAuNjM2MzE0LCAwLjg0NTU2NiwgMS4wNTU5NiwgMS4yNjY0NyIsIFwKLSAgICAgICAgICAiMC4wNTI4OCwgMC4yNTg2NTQsIDAuNDI1ODEyLCAwLjYzNjEyNywgMC44NDQ3NjYsIDEuMDU1MjMsIDEuMjY2MTUiLCBcCi0gICAgICAgICAgIjAuMDUyOTU4LCAwLjI1ODgyNywgMC40MjU4ODMsIDAuNjM2NDEzLCAwLjg0NjUzMiwgMS4wNTY0OSwgMS4yNjYyNyIsIFwKLSAgICAgICAgICAiMC4wNTI4NjEsIDAuMjU5MDE0LCAwLjQyNjYxNCwgMC42MzYzMzUsIDAuODQ1OTg3LCAxLjA1NDU3LCAxLjI2NTk4IiwgXAotICAgICAgICAgICIwLjA1Mjc5MywgMC4yNTg2NDIsIDAuNDI2MDE0LCAwLjYzNjI2OSwgMC44NDY1NDgsIDEuMDU2NDEsIDEuMjY2MTkiLCBcCi0gICAgICAgICAgIjAuMDUyOTAzLCAwLjI1ODY0LCAwLjQyNTk3MywgMC42MzYxOTgsIDAuODQ2NTQ0LCAxLjA1NTIxLCAxLjI2NjE4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNTE0MiwgMC4wMDUxNzIsIDAuMDA1MTY4LCAwLjAwNTE2NSwgMC4wMDUxNjIsIDAuMDA1MTYyLCAwLjAwNTE2IiwgXAotICAgICAgICAgICIwLjAwNTEyNSwgMC4wMDUxNTYsIDAuMDA1MTUyLCAwLjAwNTE0OSwgMC4wMDUxNDYsIDAuMDA1MTQ1LCAwLjAwNTE0NCIsIFwKLSAgICAgICAgICAiMC4wMDUxMTcsIDAuMDA1MTQ5LCAwLjAwNTE0NSwgMC4wMDUxNDEsIDAuMDA1MTM5LCAwLjAwNTEzNywgMC4wMDUxMzYiLCBcCi0gICAgICAgICAgIjAuMDA1MTE3LCAwLjAwNTE1LCAwLjAwNTE0NiwgMC4wMDUxNDMsIDAuMDA1MTQsIDAuMDA1MTM4LCAwLjAwNTEzNyIsIFwKLSAgICAgICAgICAiMC4wMDUxMjcsIDAuMDA1MTYsIDAuMDA1MTU2LCAwLjAwNTE1MiwgMC4wMDUxNDksIDAuMDA1MTQ4LCAwLjAwNTE0NiIsIFwKLSAgICAgICAgICAiMC4wMDUxMzYsIDAuMDA1MTcxLCAwLjAwNTE2NywgMC4wMDUxNjIsIDAuMDA1MTYsIDAuMDA1MTU4LCAwLjAwNTE1NyIsIFwKLSAgICAgICAgICAiMC4wMDUxNDYsIDAuMDA1MTgyLCAwLjAwNTE3OSwgMC4wMDUxNzUsIDAuMDA1MTcxLCAwLjAwNTE3LCAwLjAwNTE2OCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNTQ5MiwgMC4wMDU1NDIsIDAuMDA1NTQ4LCAwLjAwNTU1LCAwLjAwNTU1MiwgMC4wMDU1NTMsIDAuMDA1NTUzIiwgXAotICAgICAgICAgICIwLjAwNTQ3NywgMC4wMDU1MjcsIDAuMDA1NTMzLCAwLjAwNTUzNywgMC4wMDU1MzcsIDAuMDA1NTM5LCAwLjAwNTUzOCIsIFwKLSAgICAgICAgICAiMC4wMDU0NzUsIDAuMDA1NTI2LCAwLjAwNTUzMSwgMC4wMDU1MzQsIDAuMDA1NTM2LCAwLjAwNTUzNiwgMC4wMDU1MzciLCBcCi0gICAgICAgICAgIjAuMDA1NDg0LCAwLjAwNTUzNCwgMC4wMDU1NCwgMC4wMDU1NDMsIDAuMDA1NTQ0LCAwLjAwNTU0NCwgMC4wMDU1NDQiLCBcCi0gICAgICAgICAgIjAuMDA1NDk5LCAwLjAwNTU0OSwgMC4wMDU1NTQsIDAuMDA1NTU4LCAwLjAwNTU1OCwgMC4wMDU1NTksIDAuMDA1NTYiLCBcCi0gICAgICAgICAgIjAuMDA1NTE2LCAwLjAwNTU2NiwgMC4wMDU1NzIsIDAuMDA1NTc1LCAwLjAwNTU3NiwgMC4wMDU1NzcsIDAuMDA1NTc3IiwgXAotICAgICAgICAgICIwLjAwNTUzOCwgMC4wMDU1ODksIDAuMDA1NTk0LCAwLjAwNTU5NywgMC4wMDU1OTgsIDAuMDA1NTk5LCAwLjAwNTU5OSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUU4pICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC41MjEyNjI7Ci0gICAgZnVuY3Rpb24gOiAiUUJJTlQiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5vbl91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcmlzaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE1NzE2OCwgMC4yNTgzMDIsIDAuMzM5MzA5LCAwLjQ0MDU4MywgMC41NDE4NzksIDAuNjQyOTk5LCAwLjc0NDI0MiIsIFwKLSAgICAgICAgICAiMC4xNjczNzIsIDAuMjY4NDM4LCAwLjM0OTQ5NywgMC40NTA2NiwgMC41NTE5MTMsIDAuNjUzMTQ1LCAwLjc1NDQ3NCIsIFwKLSAgICAgICAgICAiMC4xODAxMDQsIDAuMjgxMjQsIDAuMzYyMjUsIDAuNDYzNDQ5LCAwLjU2NDc4NiwgMC42NjU5MzYsIDAuNzY3MTgiLCBcCi0gICAgICAgICAgIjAuMTkxOTI3LCAwLjI5MzA0OCwgMC4zNzQwNTQsIDAuNDc1MjE2LCAwLjU3NjQ2MiwgMC42Nzc3NTgsIDAuNzc4OTY5IiwgXAotICAgICAgICAgICIwLjIwMjQwMSwgMC4zMDM1NDEsIDAuMzg0NTIyLCAwLjQ4NTc1OSwgMC41ODcwMDMsIDAuNjg4Mzg0LCAwLjc4OTQ4MyIsIFwKLSAgICAgICAgICAiMC4yMTY3ODUsIDAuMzE3ODk2LCAwLjM5ODkzMSwgMC41MDAxMDQsIDAuNjAxMzQxLCAwLjcwMjYyMSwgMC44MDM4MzUiLCBcCi0gICAgICAgICAgIjAuMjI3ODcxLCAwLjMyOTAwNiwgMC40MTAwMzcsIDAuNTExMjE1LCAwLjYxMjQ0OSwgMC43MTM3LCAwLjgxNDk0NCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTA4NDcsIDAuMjU3MDg2LCAwLjQyMzg4OSwgMC42MzI1NSwgMC44NDE1NzQsIDEuMDUwOCwgMS4yNjExNiIsIFwKLSAgICAgICAgICAiMC4wNTA4NzEsIDAuMjU3NjgyLCAwLjQyNDA3OCwgMC42MzM2NDQsIDAuODQxOTc3LCAxLjA1MTU4LCAxLjI2MTI5IiwgXAotICAgICAgICAgICIwLjA1MDg0NywgMC4yNTcwODIsIDAuNDIzODY1LCAwLjYzMzU5MywgMC44NDEyNywgMS4wNTA3OCwgMS4yNjExNSIsIFwKLSAgICAgICAgICAiMC4wNTA4NzUsIDAuMjU3MDk4LCAwLjQyNDA3NSwgMC42MzM2ODksIDAuODQzMDI0LCAxLjA1MjIsIDEuMjYxMTkiLCBcCi0gICAgICAgICAgIjAuMDUwODc0LCAwLjI1NzE2MSwgMC40MjQ4OTgsIDAuNjMzNjY1LCAwLjg0MjYzNSwgMS4wNTAzLCAxLjI2MDYzIiwgXAotICAgICAgICAgICIwLjA1MDg4OCwgMC4yNTcwODEsIDAuNDI0MDk2LCAwLjYzMzYzMywgMC44NDMwMjcsIDEuMDUyMTUsIDEuMjYxMTgiLCBcCi0gICAgICAgICAgIjAuMDUwODc2LCAwLjI1NzA4MiwgMC40MjQwODgsIDAuNjMzNjE2LCAwLjg0MzAyOCwgMS4wNTA2OSwgMS4yNjExNyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNDUwNCwgMC4yNDg2NTYsIDAuMzMxNTY0LCAwLjQzNTE0LCAwLjUzODc1NiwgMC42NDIzMTcsIDAuNzQ1ODg5IiwgXAotICAgICAgICAgICIwLjE1NTIwNCwgMC4yNTg3OTUsIDAuMzQxNywgMC40NDUyODcsIDAuNTQ4OTA4LCAwLjY1MjU3LCAwLjc1NjAyOSIsIFwKLSAgICAgICAgICAiMC4xNjc4MzcsIDAuMjcxNDI0LCAwLjM1NDMzNCwgMC40NTc5MTUsIDAuNTYxNDQxLCAwLjY2NTA4NSwgMC43Njg2NiIsIFwKLSAgICAgICAgICAiMC4xNzk1NTksIDAuMjgzMTUxLCAwLjM2NjA3NSwgMC40Njk2MywgMC41NzMyMTgsIDAuNjc2ODEsIDAuNzgwMzg3IiwgXAotICAgICAgICAgICIwLjE4OTU4NywgMC4yOTMxODEsIDAuMzc2MDU0LCAwLjQ3OTY2NCwgMC41ODMxNjgsIDAuNjg2ODM5LCAwLjc5MDQzOSIsIFwKLSAgICAgICAgICAiMC4yMDQxMDcsIDAuMzA3NjkzLCAwLjM5MDYsIDAuNDk0MTgsIDAuNTk3Nzk1LCAwLjcwMTQyNywgMC44MDQ5MyIsIFwKLSAgICAgICAgICAiMC4yMTQ4ODcsIDAuMzE4NDg3LCAwLjQwMTQyNiwgMC41MDQ5MzQsIDAuNjA4NTI5LCAwLjcxMjExMywgMC44MTU3MDkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDUxMDQ5LCAwLjI1ODM4MiwgMC40MjU5NTcsIDAuNjM2MDA5LCAwLjg0NTI5NiwgMS4wNTU2NywgMS4yNjY2OCIsIFwKLSAgICAgICAgICAiMC4wNTEwNTQsIDAuMjU4NCwgMC40MjU4NzYsIDAuNjM2MDUzLCAwLjg0NTQ5OSwgMS4wNTQ2NSwgMS4yNjY2NSIsIFwKLSAgICAgICAgICAiMC4wNTEwNTEsIDAuMjU4Mzk3LCAwLjQyNTkxNywgMC42MzYwMzYsIDAuODQ2NDg5LCAxLjA1NTY0LCAxLjI2NjY1IiwgXAotICAgICAgICAgICIwLjA1MTA1MywgMC4yNTgzNzQsIDAuNDI2MTI5LCAwLjYzNjY4LCAwLjg0NTc0NiwgMS4wNTU2NiwgMS4yNjY2NSIsIFwKLSAgICAgICAgICAiMC4wNTEwNDcsIDAuMjU4NjU1LCAwLjQyNjU4LCAwLjYzNjY2NSwgMC44NDU3MDIsIDEuMDU1NTIsIDEuMjY2NjUiLCBcCi0gICAgICAgICAgIjAuMDUxMDUzLCAwLjI1ODM5MywgMC40MjU4OTcsIDAuNjM2MDU0LCAwLjg0NTU3MywgMS4wNTUwMSwgMS4yNjY2NCIsIFwKLSAgICAgICAgICAiMC4wNTEwMzgsIDAuMjU4MzQ2LCAwLjQyNTk5OSwgMC42MzY2MTQsIDAuODQ1NzM0LCAxLjA1NTU5LCAxLjI2NjYyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNTQ5MiwgMC4wMDU1NDIsIDAuMDA1NTQ4LCAwLjAwNTU1LCAwLjAwNTU1MiwgMC4wMDU1NTMsIDAuMDA1NTUzIiwgXAotICAgICAgICAgICIwLjAwNTQ3NywgMC4wMDU1MjcsIDAuMDA1NTMzLCAwLjAwNTUzNywgMC4wMDU1MzcsIDAuMDA1NTM5LCAwLjAwNTUzOCIsIFwKLSAgICAgICAgICAiMC4wMDU0NzUsIDAuMDA1NTI2LCAwLjAwNTUzMSwgMC4wMDU1MzQsIDAuMDA1NTM2LCAwLjAwNTUzNiwgMC4wMDU1MzciLCBcCi0gICAgICAgICAgIjAuMDA1NDg0LCAwLjAwNTUzNCwgMC4wMDU1NCwgMC4wMDU1NDMsIDAuMDA1NTQ0LCAwLjAwNTU0NCwgMC4wMDU1NDQiLCBcCi0gICAgICAgICAgIjAuMDA1NDk5LCAwLjAwNTU0OSwgMC4wMDU1NTQsIDAuMDA1NTU4LCAwLjAwNTU1OCwgMC4wMDU1NTksIDAuMDA1NTYiLCBcCi0gICAgICAgICAgIjAuMDA1NTE2LCAwLjAwNTU2NiwgMC4wMDU1NzIsIDAuMDA1NTc1LCAwLjAwNTU3NiwgMC4wMDU1NzcsIDAuMDA1NTc3IiwgXAotICAgICAgICAgICIwLjAwNTUzOCwgMC4wMDU1ODksIDAuMDA1NTk0LCAwLjAwNTU5NywgMC4wMDU1OTgsIDAuMDA1NTk5LCAwLjAwNTU5OSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNTE0MiwgMC4wMDUxNzIsIDAuMDA1MTY4LCAwLjAwNTE2NSwgMC4wMDUxNjIsIDAuMDA1MTYyLCAwLjAwNTE2IiwgXAotICAgICAgICAgICIwLjAwNTEyNSwgMC4wMDUxNTYsIDAuMDA1MTUyLCAwLjAwNTE0OSwgMC4wMDUxNDYsIDAuMDA1MTQ1LCAwLjAwNTE0NCIsIFwKLSAgICAgICAgICAiMC4wMDUxMTcsIDAuMDA1MTQ5LCAwLjAwNTE0NSwgMC4wMDUxNDEsIDAuMDA1MTM5LCAwLjAwNTEzNywgMC4wMDUxMzYiLCBcCi0gICAgICAgICAgIjAuMDA1MTE3LCAwLjAwNTE1LCAwLjAwNTE0NiwgMC4wMDUxNDMsIDAuMDA1MTQsIDAuMDA1MTM4LCAwLjAwNTEzNyIsIFwKLSAgICAgICAgICAiMC4wMDUxMjcsIDAuMDA1MTYsIDAuMDA1MTU2LCAwLjAwNTE1MiwgMC4wMDUxNDksIDAuMDA1MTQ4LCAwLjAwNTE0NiIsIFwKLSAgICAgICAgICAiMC4wMDUxMzYsIDAuMDA1MTcxLCAwLjAwNTE2NywgMC4wMDUxNjIsIDAuMDA1MTYsIDAuMDA1MTU4LCAwLjAwNTE1NyIsIFwKLSAgICAgICAgICAiMC4wMDUxNDYsIDAuMDA1MTgyLCAwLjAwNTE3OSwgMC4wMDUxNzUsIDAuMDA1MTcxLCAwLjAwNTE3LCAwLjAwNTE2OCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUk4pICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY1OTEzNjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2NTkxMzY7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjU3OTU1OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjI5NiwgMC4wMDIyNzQsIDAuMDAyMjYyLCAwLjAwMjI1NywgMC4wMDIyNTYsIDAuMDAyMjYyLCAwLjAwMjI2OSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNDAzLCAwLjAwNDAxNywgMC4wMDQwMTIsIDAuMDA0MDEyLCAwLjAwNDAxNiwgMC4wMDQwMzksIDAuMDA0MDU4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIkQiOwotICAgICAgc2RmX2NvbmQgOiAiRCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wNDM3NSwgLTAuMDM4NzUsIC0wLjAyNjI1LCAtMC4wMiwgLTAuMDEzNzUsIC0wLjAxLCAtMC4wMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDE1LCAtMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wNjEyNSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDI3NSwgLTAuMDI1IiwgXAotICAgICAgICAgICItMC4wNzM3NSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDQsIC0wLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wODYyNSwgLTAuMDc1LCAtMC4wNjg3NSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA0NjI1LCAtMC4wNDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDk2MjUsIC0wLjA5MTI1LCAtMC4wODUsIC0wLjA3ODc1LCAtMC4wNzI1LCAtMC4wNjI1LCAtMC4wNiIsIFwKLSAgICAgICAgICAiLTAuMTExMjUsIC0wLjEsIC0wLjA5Mzc1LCAtMC4wODc1LCAtMC4wODEyNSwgLTAuMDc3NSwgLTAuMDY4NzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjI1LCAwLjAxNzUsIDAuMDMsIDAuMDQyNSwgMC4wNDg3NSwgMC4wNjUsIDAuMDczNzUiLCBcCi0gICAgICAgICAgIjAuMDAxMjUsIDAuMDA2MjUsIDAuMDE4NzUsIDAuMDMxMjUsIDAuMDM3NSwgMC4wNTM3NSwgMC4wNjI1IiwgXAotICAgICAgICAgICItMC4wMTEyNSwgLTAuMDA2MjUsIDAuMDA2MjUsIDAuMDE4NzUsIDAuMDMxMjUsIDAuMDQxMjUsIDAuMDUiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTI1LCAwLCAwLjAxMjUsIDAuMDE4NzUsIDAuMDI4NzUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAsIDAuMDEyNSwgMC4wMjI1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wNCwgLTAuMDI4NzUsIC0wLjAyMjUsIC0wLjAxLCAtMC4wMDM3NSwgMC4wMTI1LCAwLjAyMTI1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDM3NSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgMC4wMDM3NSwgMC4wMTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJEIjsKLSAgICAgIHNkZl9jb25kIDogIkQgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc1LCAwLjA2Mzc1LCAwLjA1NzUsIDAuMDQ1LCAwLjAzODc1LCAwLjAzNSwgMC4wMjYyNSIsIFwKLSAgICAgICAgICAiMC4wODYyNSwgMC4wNzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNSwgMC4wNCwgMC4wMzc1IiwgXAotICAgICAgICAgICIwLjA5MjUsIDAuMDgxMjUsIDAuMDc1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDUyNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4xMDUsIDAuMDkzNzUsIDAuMDg3NSwgMC4wNzUsIDAuMDY4NzUsIDAuMDY1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICIwLjExNzUsIDAuMTA2MjUsIDAuMDkzNzUsIDAuMDg3NSwgMC4wODEyNSwgMC4wNzEyNSwgMC4wNjg3NSIsIFwKLSAgICAgICAgICAiMC4xMzM3NSwgMC4xMjI1LCAwLjExLCAwLjEwMzc1LCAwLjA5NzUsIDAuMDg3NSwgMC4wNzg3NSIsIFwKLSAgICAgICAgICAiMC4xNDI1LCAwLjEzMTI1LCAwLjEyNSwgMC4xMTI1LCAwLjEwNjI1LCAwLjEwMjUsIDAuMDkzNzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjUsIDAuMDEzNzUsIDAuMDAxMjUsIC0wLjAwNSwgLTAuMDE3NSwgLTAuMDMzNzUsIC0wLjA0MjUiLCBcCi0gICAgICAgICAgIjAuMDM2MjUsIDAuMDI1LCAwLjAxMjUsIDAsIC0wLjAwNjI1LCAtMC4wMjI1LCAtMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4wNDg3NSwgMC4wMzc1LCAwLjAyNSwgMC4wMTI1LCAwLjAwNjI1LCAtMC4wMSwgLTAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMDYxMjUsIDAuMDUsIDAuMDM3NSwgMC4wMjUsIDAuMDEyNSwgMC4wMDI1LCAtMC4wMTI1IiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDYyNSwgMC4wNSwgMC4wMzc1LCAwLjAyNSwgMC4wMDg3NSwgMCIsIFwKLSAgICAgICAgICAiMC4wODM3NSwgMC4wNzI1LCAwLjA2LCAwLjA0NzUsIDAuMDQxMjUsIDAuMDI1LCAwLjAxNjI1IiwgXAotICAgICAgICAgICIwLjA5ODc1LCAwLjA4NzUsIDAuMDc1LCAwLjA2MjUsIDAuMDUsIDAuMDMzNzUsIDAuMDI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IERGRlgxICoKLSAqIC0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChERkZYMSkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjMyNjc4OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIGZmIChOMzAsUUJJTlQpIHsKLSAgICBuZXh0X3N0YXRlIDogIkQiOwotICAgIGNsb2NrZWRfb24gOiAiQ0siOwotICB9Ci0gIHBpbihDSykgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNTgyNDAyOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDU4MjQwMjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA1ODIzNjY7Ci0gICAgY2xvY2sgOiB0cnVlOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjg2OSwgMC4wMDI4NDQsIDAuMDAyODMxLCAwLjAwMjgzMiwgMC4wMDI4NDcsIDAuMDAyODY0LCAwLjAwMjg4NiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNjQxNSwgMC4wMDYzOTQsIDAuMDA2Mzg1LCAwLjAwNjM4OSwgMC4wMDYzOTIsIDAuMDA2NDE4LCAwLjAwNjQyOCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQiOwotICAgICAgc2RmX2NvbmQgOiAiRCA9PSAxJ2IwIjsKLSAgICAgIHJpc2VfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjE2OTI5MywgMC4xNzk1MzMsIDAuMTkyMzg4LCAwLjIwNDUyNiwgMC4yMTU0OTYsIDAuMjMwNjcsIDAuMjQyMzgzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4xMDI3OCwgMC4xMTI3MDYsIDAuMTI1MDg1LCAwLjEzNjY2OSwgMC4xNDY2NDcsIDAuMTYwNDgzLCAwLjE3MDk3NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjM3ODc2OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYzNjY1NDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2Mzc4NzY7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyMTg3LCAwLjAwMjE2NSwgMC4wMDIxNTQsIDAuMDAyMTQ3LCAwLjAwMjE1LCAwLjAwMjE1LCAwLjAwMjE2NCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjc0NywgMC4wMDI3MzQsIDAuMDAyNzI2LCAwLjAwMjcyMywgMC4wMDI3MiwgMC4wMDI3MjEsIDAuMDAyNzI2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDE4NzUsIC0wLjAwNzUsIC0wLjAwMTI1LCAwLjAwNSwgMC4wMTEyNSwgMC4wMjEyNSwgMC4wMjM3NSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxODc1LCAtMC4wMDYyNSwgMCwgMCwgMC4wMSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLjAwMzc1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTg3NSwgLTAuMDA4NzUsIDAiLCBcCi0gICAgICAgICAgIi0wLjA1NSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAxNSwgLTAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDY1LCAtMC4wNTM3NSwgLTAuMDQ3NSwgLTAuMDQxMjUsIC0wLjAzNSwgLTAuMDI1LCAtMC4wMjI1IiwgXAotICAgICAgICAgICItMC4wNzM3NSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDMzNzUsIC0wLjAzMTI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTg3NSwgMC4wMywgMC4wNDI1LCAwLjA1NSwgMC4wNjc1LCAwLjA3NzUsIDAuMDg2MjUiLCBcCi0gICAgICAgICAgIjAuMDEzNzUsIDAuMDI1LCAwLjAzNzUsIDAuMDQzNzUsIDAuMDU2MjUsIDAuMDY2MjUsIDAuMDgxMjUiLCBcCi0gICAgICAgICAgIjAuMDA3NSwgMC4wMTI1LCAwLjAyNSwgMC4wMzc1LCAwLjA1LCAwLjA2LCAwLjA3NSIsIFwKLSAgICAgICAgICAiMC4wMDEyNSwgMC4wMDYyNSwgMC4wMTg3NSwgMC4wMzEyNSwgMC4wNDM3NSwgMC4wNTM3NSwgMC4wNjI1IiwgXAotICAgICAgICAgICItMC4wMDUsIDAsIDAuMDEyNSwgMC4wMjUsIDAuMDM3NSwgMC4wNDc1LCAwLjA2MjUiLCBcCi0gICAgICAgICAgIi0wLjAxNSwgLTAuMDAzNzUsIDAuMDA4NzUsIDAuMDIxMjUsIDAuMDI3NSwgMC4wNDM3NSwgMC4wNTI1IiwgXAotICAgICAgICAgICItMC4wMTc1LCAtMC4wMTI1LCAwLCAwLjAxMjUsIDAuMDI1LCAwLjAzNSwgMC4wNDM3NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzc1LCAwLjAzMjUsIDAuMDIsIDAuMDEzNzUsIDAuMDA3NSwgLTAuMDAyNSwgLTAuMDA1IiwgXAotICAgICAgICAgICIwLjA0ODc1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDE4NzUsIDAuMDEyNSwgMC4wMDg3NSwgMCIsIFwKLSAgICAgICAgICAiMC4wNjEyNSwgMC4wNSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMTUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4wNjc1LCAwLjA1NjI1LCAwLjA1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDI3NSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4wOCwgMC4wNjg3NSwgMC4wNTYyNSwgMC4wNSwgMC4wNDM3NSwgMC4wMzM3NSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4wOSwgMC4wNzg3NSwgMC4wNzI1LCAwLjA2LCAwLjA1Mzc1LCAwLjA1LCAwLjA0MTI1IiwgXAotICAgICAgICAgICIwLjEwNSwgMC4wOTM3NSwgMC4wODEyNSwgMC4wNzUsIDAuMDY4NzUsIDAuMDU4NzUsIDAuMDUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTg3NSwgMC4wMDc1LCAtMC4wMDUsIC0wLjAxNzUsIC0wLjAzLCAtMC4wNDYyNSwgLTAuMDYxMjUiLCBcCi0gICAgICAgICAgIjAuMDIzNzUsIDAuMDEyNSwgMCwgLTAuMDEyNSwgLTAuMDI1LCAtMC4wNDEyNSwgLTAuMDUiLCBcCi0gICAgICAgICAgIjAuMDM2MjUsIDAuMDI1LCAwLjAxMjUsIDAsIC0wLjAxMjUsIC0wLjAyODc1LCAtMC4wMzc1IiwgXAotICAgICAgICAgICIwLjA0MjUsIDAuMDMxMjUsIDAuMDE4NzUsIDAuMDA2MjUsIC0wLjAwNjI1LCAtMC4wMjI1LCAtMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4wNTUsIDAuMDQzNzUsIDAuMDI1LCAwLjAxMjUsIDAuMDA2MjUsIC0wLjAxLCAtMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMDY1LCAwLjA1Mzc1LCAwLjA0MTI1LCAwLjAyODc1LCAwLjAxNjI1LCAwLCAtMC4wMDg3NSIsIFwKLSAgICAgICAgICAiMC4wNzM3NSwgMC4wNjI1LCAwLjA1LCAwLjAzNzUsIDAuMDI1LCAwLjAwODc1LCAwIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihRKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMjYyMjI0OwotICAgIGZ1bmN0aW9uIDogIk4zMCI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3NlbnNlIDogbm9uX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiByaXNpbmdfZWRnZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTQxNzQyLCAwLjE2NjI2MSwgMC4zMDU0NzUsIDAuNDI3ODU0LCAwLjU5MTU2NCwgMC45MTg3NTQsIDEuMTIyODYiLCBcCi0gICAgICAgICAgIjAuMTUxOTgxLCAwLjE3NjU4OCwgMC4zMTU2OCwgMC40MzgwNTgsIDAuNjAxNzU4LCAwLjkyODUzOCwgMS4xMzM1OSIsIFwKLSAgICAgICAgICAiMC4xNjQ3NzMsIDAuMTg5MjczLCAwLjMyODUwOSwgMC40NTA5MSwgMC42MTQ1NzgsIDAuOTQxNzc5LCAxLjE0NTc5IiwgXAotICAgICAgICAgICIwLjE3NjY5MSwgMC4yMDEzMDEsIDAuMzQwMjEyLCAwLjQ2Mjc4NCwgMC42MjY1NjUsIDAuOTUzOTk4LCAxLjE1ODMzIiwgXAotICAgICAgICAgICIwLjE4NzU2OCwgMC4yMTIxODUsIDAuMzUxMzE5LCAwLjQ3NDEzMiwgMC42MzczOTEsIDAuOTY0MTcyLCAxLjE2OTE1IiwgXAotICAgICAgICAgICIwLjIwMjY4NSwgMC4yMjczMDUsIDAuMzY2MDY3LCAwLjQ4ODgyLCAwLjY1MjM1MiwgMC45Nzk3NjUsIDEuMTg0MzkiLCBcCi0gICAgICAgICAgIjAuMjE0MDQ5LCAwLjIzODcyMiwgMC4zNzc4MzgsIDAuNTAwMjI0LCAwLjY2Mzg4OCwgMC45OTExNDEsIDEuMTk1NzQiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk0NzU2LCAwLjE0MzkxOSwgMC40Mjg4NTcsIDAuNjgwMzM3LCAxLjAxODY2LCAxLjY5MzI3LCAyLjExMjI4IiwgXAotICAgICAgICAgICIwLjA5NDIyLCAwLjE0MzQ1MiwgMC40Mjg4NDYsIDAuNjgwNTExLCAxLjAxODU4LCAxLjY5MDMzLCAyLjExNDk2IiwgXAotICAgICAgICAgICIwLjA5NDIxMiwgMC4xNDM5MjUsIDAuNDI4ODY1LCAwLjY4MTA4NywgMS4wMTg2NSwgMS42OTMyNiwgMi4xMTExNyIsIFwKLSAgICAgICAgICAiMC4wOTQxNDYsIDAuMTQzNDA1LCAwLjQyODM5OSwgMC42ODA0OTYsIDEuMDE4NiwgMS42ODk5OCwgMi4xMTQ5NyIsIFwKLSAgICAgICAgICAiMC4wOTQxNzIsIDAuMTQzNDM2LCAwLjQyODg2NCwgMC42ODAwNzIsIDEuMDE4NjMsIDEuNjkxMDQsIDIuMTE0OTEiLCBcCi0gICAgICAgICAgIjAuMDk0MjQsIDAuMTQzNDE5LCAwLjQyNzk1MiwgMC42ODEwNTQsIDEuMDE4MDEsIDEuNjkzMjYsIDIuMTE1MDIiLCBcCi0gICAgICAgICAgIjAuMDk0NzQ4LCAwLjE0Mzc1NCwgMC40Mjg4NTIsIDAuNjgxMDU0LCAxLjAxODU5LCAxLjY5MzE2LCAyLjExNDk1Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE1NjY3NCwgMC4xODE2NDgsIDAuMzIxODU5LCAwLjQ0NTcwOSwgMC42MTA1MDMsIDAuOTQwMzM2LCAxLjE0NjQ2IiwgXAotICAgICAgICAgICIwLjE2NjkyMiwgMC4xOTE4NTQsIDAuMzMyMzcyLCAwLjQ1NTc2NywgMC42MjA3NzUsIDAuOTUwNTg1LCAxLjE1NjYzIiwgXAotICAgICAgICAgICIwLjE3OTc2NywgMC4yMDQ1OTgsIDAuMzQ1MjM0LCAwLjQ2ODY4MSwgMC42MzM4MTgsIDAuOTYzMzk0LCAxLjE2OTUiLCBcCi0gICAgICAgICAgIjAuMTkxOTE1LCAwLjIxNjg0NiwgMC4zNTczNDUsIDAuNDgxMTMxLCAwLjY0NTc5OSwgMC45NzU1MTcsIDEuMTgxNTIiLCBcCi0gICAgICAgICAgIjAuMjAyODc5LCAwLjIyNzg0OCwgMC4zNjgwNDcsIDAuNDkxOTEyLCAwLjY1NjY3NCwgMC45ODY1MzcsIDEuMTkyNjYiLCBcCi0gICAgICAgICAgIjAuMjE4MDU3LCAwLjI0MzAyOSwgMC4zODM1MTcsIDAuNTA3MDA4LCAwLjY3MTk0MSwgMS4wMDE2LCAxLjIwNzgxIiwgXAotICAgICAgICAgICIwLjIyOTc2NSwgMC4yNTQ2OSwgMC4zOTUxOTMsIDAuNTE4NTkyLCAwLjY4MzY0NSwgMS4wMTMzNywgMS4yMTkzNyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTI5NTEsIDAuMTQxNzkzLCAwLjQyMjIxMSwgMC42NzIyMzcsIDEuMDAzOSwgMS42Njk2OCwgMi4wODU0NSIsIFwKLSAgICAgICAgICAiMC4wOTMzMjcsIDAuMTQxNzAzLCAwLjQyMTk2OSwgMC42NzE4MDQsIDEuMDA0NjQsIDEuNjY5NzUsIDIuMDg1MjkiLCBcCi0gICAgICAgICAgIjAuMDkyOTYxLCAwLjE0MTgyOSwgMC40MjE5MTgsIDAuNjcwODg1LCAxLjAwMjQ0LCAxLjY2OTUzLCAyLjA4NTI5IiwgXAotICAgICAgICAgICIwLjA5MzMyNywgMC4xNDE3MDcsIDAuNDIxNjM4LCAwLjY3MDMyOSwgMS4wMDQ3NSwgMS42Njk2LCAyLjA4MjM0IiwgXAotICAgICAgICAgICIwLjA5MjkxMSwgMC4xNDE3NzQsIDAuNDIyMjcyLCAwLjY3MjIyOSwgMS4wMDMxNywgMS42Njk2NiwgMi4wODU0NCIsIFwKLSAgICAgICAgICAiMC4wOTM0NTgsIDAuMTQxNzcxLCAwLjQyMTY2OSwgMC42NzE5NTgsIDEuMDA0NjIsIDEuNjY3MTMsIDIuMDg1MjciLCBcCi0gICAgICAgICAgIjAuMDkzNDI1LCAwLjE0MjA5NCwgMC40MjE2LCAwLjY3MTU5NSwgMS4wMDQ3MywgMS42Njk1OSwgMi4wODIzNCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQwMDMsIDAuMDA0MDAxLCAwLjAwMzk4MywgMC4wMDM5NzYsIDAuMDAzOTcxLCAwLjAwMzk2NiwgMC4wMDM5NjUiLCBcCi0gICAgICAgICAgIjAuMDAzOTg5LCAwLjAwMzk4NiwgMC4wMDM5NjgsIDAuMDAzOTYxLCAwLjAwMzk1NiwgMC4wMDM5NTIsIDAuMDAzOTUiLCBcCi0gICAgICAgICAgIjAuMDAzOTgyLCAwLjAwMzk4LCAwLjAwMzk2MiwgMC4wMDM5NTUsIDAuMDAzOTUsIDAuMDAzOTQ1LCAwLjAwMzk0NCIsIFwKLSAgICAgICAgICAiMC4wMDM5NzksIDAuMDAzOTc4LCAwLjAwMzk2LCAwLjAwMzk1MywgMC4wMDM5NDgsIDAuMDAzOTQzLCAwLjAwMzk0MSIsIFwKLSAgICAgICAgICAiMC4wMDM5OSwgMC4wMDM5ODksIDAuMDAzOTcyLCAwLjAwMzk2NCwgMC4wMDM5NTksIDAuMDAzOTU0LCAwLjAwMzk1MiIsIFwKLSAgICAgICAgICAiMC4wMDM5OTgsIDAuMDAzOTk4LCAwLjAwMzk4MiwgMC4wMDM5NzQsIDAuMDAzOTY4LCAwLjAwMzk2MywgMC4wMDM5NjIiLCBcCi0gICAgICAgICAgIjAuMDA0MDExLCAwLjAwNDAxMiwgMC4wMDM5OTYsIDAuMDAzOTg5LCAwLjAwMzk4MywgMC4wMDM5NzgsIDAuMDAzOTc2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0MTcyLCAwLjAwNDE3OSwgMC4wMDQxOSwgMC4wMDQxOTIsIDAuMDA0MTkzLCAwLjAwNDE5NCwgMC4wMDQxOTQiLCBcCi0gICAgICAgICAgIjAuMDA0MTU4LCAwLjAwNDE2NSwgMC4wMDQxNzUsIDAuMDA0MTc3LCAwLjAwNDE3OSwgMC4wMDQxOCwgMC4wMDQxOCIsIFwKLSAgICAgICAgICAiMC4wMDQxNTYsIDAuMDA0MTY0LCAwLjAwNDE3NCwgMC4wMDQxNzYsIDAuMDA0MTc3LCAwLjAwNDE3OCwgMC4wMDQxNzkiLCBcCi0gICAgICAgICAgIjAuMDA0MTYyLCAwLjAwNDE3LCAwLjAwNDE4LCAwLjAwNDE4MiwgMC4wMDQxODQsIDAuMDA0MTg1LCAwLjAwNDE4NCIsIFwKLSAgICAgICAgICAiMC4wMDQxNzcsIDAuMDA0MTg0LCAwLjAwNDE5NCwgMC4wMDQxOTYsIDAuMDA0MTk4LCAwLjAwNDE5OCwgMC4wMDQxOTkiLCBcCi0gICAgICAgICAgIjAuMDA0MTkzLCAwLjAwNDIsIDAuMDA0MjEsIDAuMDA0MjEyLCAwLjAwNDIxNCwgMC4wMDQyMTUsIDAuMDA0MjE1IiwgXAotICAgICAgICAgICIwLjAwNDIxNSwgMC4wMDQyMjIsIDAuMDA0MjMyLCAwLjAwNDIzNCwgMC4wMDQyMzYsIDAuMDA0MjM3LCAwLjAwNDIzNyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUU4pICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4yNjUyNzU7Ci0gICAgZnVuY3Rpb24gOiAiUUJJTlQiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5vbl91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcmlzaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE2OTI5MywgMC4xOTM4MSwgMC4zMzI4NDksIDAuNDU1NDY5LCAwLjYxOTAwNiwgMC45NDYxMzIsIDEuMTUwNjIiLCBcCi0gICAgICAgICAgIjAuMTc5NTMzLCAwLjIwNDAzNywgMC4zNDMwODUsIDAuNDY1NjA4LCAwLjYyOTIyLCAwLjk1NjM4NiwgMS4xNjA4MSIsIFwKLSAgICAgICAgICAiMC4xOTIzODgsIDAuMjE2ODg2LCAwLjM1NTk0NSwgMC40Nzg1NywgMC42NDIyMDQsIDAuOTY5MTk2LCAxLjE3MzY4IiwgXAotICAgICAgICAgICIwLjIwNDUyNiwgMC4yMjkwMjksIDAuMzY4MDcyLCAwLjQ5MDgxMSwgMC42NTQyMzYsIDAuOTgxMzI1LCAxLjE4NTczIiwgXAotICAgICAgICAgICIwLjIxNTQ5NiwgMC4yNDAwMTUsIDAuMzc5MDU1LCAwLjUwMTY3NiwgMC42NjUyMjUsIDAuOTkyMzM3LCAxLjE5NjgzIiwgXAotICAgICAgICAgICIwLjIzMDY3LCAwLjI1NTE4NiwgMC4zOTQyMywgMC41MTY4NDgsIDAuNjgwMzczLCAxLjAwNzQ5LCAxLjIxMTk3IiwgXAotICAgICAgICAgICIwLjI0MjM4MywgMC4yNjY4OTQsIDAuNDA1OTI2LCAwLjUyODQ1OSwgMC42OTIwODgsIDEuMDE5MTgsIDEuMjIzNjIiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDkxMDU4LCAwLjE0MTMyMiwgMC40Mjc0NDksIDAuNjgwOTUyLCAxLjAxNzczLCAxLjY5MjU5LCAyLjExNDI3IiwgXAotICAgICAgICAgICIwLjA5MTE0LCAwLjE0MTMxMSwgMC40MjcxMjgsIDAuNjgwNTExLCAxLjAxODEsIDEuNjkyNjUsIDIuMTE0MTciLCBcCi0gICAgICAgICAgIjAuMDkxMDMyLCAwLjE0MTA0NiwgMC40MjcxMzEsIDAuNjc5OTU3LCAxLjAxNjEyLCAxLjY5MjUzLCAyLjExNDE3IiwgXAotICAgICAgICAgICIwLjA5MTEzOSwgMC4xNDEzMTEsIDAuNDI3MTQsIDAuNjc5NTg5LCAxLjAxODE1LCAxLjY5MjU4LCAyLjExMTE3IiwgXAotICAgICAgICAgICIwLjA5MTA2LCAwLjE0MTMyLCAwLjQyNzQxNSwgMC42ODA5NTQsIDEuMDE2ODIsIDEuNjkyNTksIDIuMTE0MjciLCBcCi0gICAgICAgICAgIjAuMDkwOTkxLCAwLjE0MTMxNywgMC40MjcxNDIsIDAuNjgwNjU4LCAxLjAxODEyLCAxLjY5MDE2LCAyLjExNDE3IiwgXAotICAgICAgICAgICIwLjA5MDk3NiwgMC4xNDE0ODYsIDAuNDI3MTQzLCAwLjY4MDQ0MywgMS4wMTgxNSwgMS42OTI1NywgMi4xMTEyMiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNTY2MjgsIDAuMTgxMzYxLCAwLjMyMTUxNiwgMC40NDUxOTEsIDAuNjA5OTkzLCAwLjkzOTcxNywgMS4xNDU3OSIsIFwKLSAgICAgICAgICAiMC4xNjY4MzUsIDAuMTkxNTYzLCAwLjMzMTcxNywgMC40NTUzNTcsIDAuNjIwMTg4LCAwLjk0OTk3MSwgMS4xNTYwNSIsIFwKLSAgICAgICAgICAiMC4xNzk2MzksIDAuMjA0MzY5LCAwLjM0NDUyOCwgMC40NjgxNjEsIDAuNjMzLCAwLjk2MjcyOSwgMS4xNjg4NCIsIFwKLSAgICAgICAgICAiMC4xOTE1NDIsIDAuMjE2MjcsIDAuMzU2NDIzLCAwLjQ4MDA2MiwgMC42NDQ5MiwgMC45NzQ3NTEsIDEuMTgwNzYiLCBcCi0gICAgICAgICAgIjAuMjAyNDMxLCAwLjIyNzE2MSwgMC4zNjczMTgsIDAuNDkxMDIsIDAuNjU1NzkyLCAwLjk4NTUxNywgMS4xOTE2IiwgXAotICAgICAgICAgICIwLjIxNzUzOCwgMC4yNDIyNjUsIDAuMzgyMzQ4LCAwLjUwNjA1MSwgMC42NzA5MDMsIDEuMDAwNjUsIDEuMjA2NzgiLCBcCi0gICAgICAgICAgIjAuMjI4OTI5LCAwLjI1MzY1NSwgMC4zOTM4MDgsIDAuNTE3NDI5LCAwLjY4MjI2NiwgMS4wMTIwMiwgMS4yMTgxMyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODk3MjQsIDAuMTM5MzAxLCAwLjQyMTYsIDAuNjY5NzI0LCAxLjAwMjkyLCAxLjY2NzUxLCAyLjA4MDUzIiwgXAotICAgICAgICAgICIwLjA4OTc1NSwgMC4xMzkyMTYsIDAuNDIxNTgsIDAuNjY5OTIzLCAxLjAwMjg3LCAxLjY2NDg1LCAyLjA4MzA4IiwgXAotICAgICAgICAgICIwLjA4OTc1NSwgMC4xMzkzMDEsIDAuNDIxNjE2LCAwLjY3MDQyNiwgMS4wMDI5MiwgMS42Njc1MSwgMi4wNzk2OCIsIFwKLSAgICAgICAgICAiMC4wODk3NTYsIDAuMTM5MjEzLCAwLjQyMTM1MiwgMC42Njk5MTQsIDEuMDAyOTgsIDEuNjY0MzQsIDIuMDgzMTMiLCBcCi0gICAgICAgICAgIjAuMDg5NzU1LCAwLjEzOTIxMiwgMC40MjE2MTMsIDAuNjY5NDg2LCAxLjAwMjkyLCAxLjY2NTUyLCAyLjA4Mjk5IiwgXAotICAgICAgICAgICIwLjA4OTc1LCAwLjEzOTIxMywgMC40MjA5ODEsIDAuNjcwMzg2LCAxLjAwMjQ5LCAxLjY2NzU5LCAyLjA4MzI1IiwgXAotICAgICAgICAgICIwLjA4OTcyNSwgMC4xMzkxODgsIDAuNDIxNTkyLCAwLjY3MDM5MSwgMS4wMDI4NiwgMS42Njc0OCwgMi4wODMxMiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQxNzIsIDAuMDA0MTc5LCAwLjAwNDE5LCAwLjAwNDE5MiwgMC4wMDQxOTMsIDAuMDA0MTk0LCAwLjAwNDE5NCIsIFwKLSAgICAgICAgICAiMC4wMDQxNTgsIDAuMDA0MTY1LCAwLjAwNDE3NSwgMC4wMDQxNzcsIDAuMDA0MTc5LCAwLjAwNDE4LCAwLjAwNDE4IiwgXAotICAgICAgICAgICIwLjAwNDE1NiwgMC4wMDQxNjQsIDAuMDA0MTc0LCAwLjAwNDE3NiwgMC4wMDQxNzcsIDAuMDA0MTc4LCAwLjAwNDE3OSIsIFwKLSAgICAgICAgICAiMC4wMDQxNjIsIDAuMDA0MTcsIDAuMDA0MTgsIDAuMDA0MTgyLCAwLjAwNDE4NCwgMC4wMDQxODUsIDAuMDA0MTg0IiwgXAotICAgICAgICAgICIwLjAwNDE3NywgMC4wMDQxODQsIDAuMDA0MTk0LCAwLjAwNDE5NiwgMC4wMDQxOTgsIDAuMDA0MTk4LCAwLjAwNDE5OSIsIFwKLSAgICAgICAgICAiMC4wMDQxOTMsIDAuMDA0MiwgMC4wMDQyMSwgMC4wMDQyMTIsIDAuMDA0MjE0LCAwLjAwNDIxNSwgMC4wMDQyMTUiLCBcCi0gICAgICAgICAgIjAuMDA0MjE1LCAwLjAwNDIyMiwgMC4wMDQyMzIsIDAuMDA0MjM0LCAwLjAwNDIzNiwgMC4wMDQyMzcsIDAuMDA0MjM3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0MDAzLCAwLjAwNDAwMSwgMC4wMDM5ODMsIDAuMDAzOTc2LCAwLjAwMzk3MSwgMC4wMDM5NjYsIDAuMDAzOTY1IiwgXAotICAgICAgICAgICIwLjAwMzk4OSwgMC4wMDM5ODYsIDAuMDAzOTY4LCAwLjAwMzk2MSwgMC4wMDM5NTYsIDAuMDAzOTUyLCAwLjAwMzk1IiwgXAotICAgICAgICAgICIwLjAwMzk4MiwgMC4wMDM5OCwgMC4wMDM5NjIsIDAuMDAzOTU1LCAwLjAwMzk1LCAwLjAwMzk0NSwgMC4wMDM5NDQiLCBcCi0gICAgICAgICAgIjAuMDAzOTc5LCAwLjAwMzk3OCwgMC4wMDM5NiwgMC4wMDM5NTMsIDAuMDAzOTQ4LCAwLjAwMzk0MywgMC4wMDM5NDEiLCBcCi0gICAgICAgICAgIjAuMDAzOTksIDAuMDAzOTg5LCAwLjAwMzk3MiwgMC4wMDM5NjQsIDAuMDAzOTU5LCAwLjAwMzk1NCwgMC4wMDM5NTIiLCBcCi0gICAgICAgICAgIjAuMDAzOTk4LCAwLjAwMzk5OCwgMC4wMDM5ODIsIDAuMDAzOTc0LCAwLjAwMzk2OCwgMC4wMDM5NjMsIDAuMDAzOTYyIiwgXAotICAgICAgICAgICIwLjAwNDAxMSwgMC4wMDQwMTIsIDAuMDAzOTk2LCAwLjAwMzk4OSwgMC4wMDM5ODMsIDAuMDAzOTc4LCAwLjAwMzk3NiIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBERkZYMiAqCi0gKiAtLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoREZGWDIpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC40MTYwNjM7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgZmYgKE4zMCxRQklOVCkgewotICAgIG5leHRfc3RhdGUgOiAiRCI7Ci0gICAgY2xvY2tlZF9vbiA6ICJDSyI7Ci0gIH0KLSAgcGluKENLKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA1NzkwNTk7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNTc4OTgzOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDU3OTA1OTsKLSAgICBjbG9jayA6IHRydWU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyOTA3LCAwLjAwMjg4LCAwLjAwMjg2NSwgMC4wMDI4NjksIDAuMDAyODg1LCAwLjAwMjkwNCwgMC4wMDI5MjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDU4MjQsIDAuMDA1ODAxLCAwLjAwNTc5LCAwLjAwNTc5LCAwLjAwNTc5OCwgMC4wMDU4MTksIDAuMDA1ODQxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRCI7Ci0gICAgICBzZGZfY29uZCA6ICJEID09IDEnYjAiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMTU1NzU0LCAwLjE2NTk0LCAwLjE3ODYzMywgMC4xOTAyMTgsIDAuMjAwNDk2LCAwLjIxNDQzLCAwLjIyNTE5NCIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDk2MDk4LCAwLjEwNjAwNSwgMC4xMTgxNzIsIDAuMTI5MTI4LCAwLjEzODM2NiwgMC4xNTA5NTUsIDAuMTYwNTc5Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihEKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2MTQ4OTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MTMyMDM7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjE0ODk7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyMDExLCAwLjAwMTk4OCwgMC4wMDE5NzcsIDAuMDAxOTcyLCAwLjAwMTk3LCAwLjAwMTk3NCwgMC4wMDE5ODEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDI2NjcsIDAuMDAyNjUyLCAwLjAwMjY0NSwgMC4wMDI2NDIsIDAuMDAyNjQxLCAwLjAwMjY0LCAwLjAwMjY0NiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAxODc1LCAtMC4wMDc1LCAtMC4wMDEyNSwgMC4wMDUsIDAuMDExMjUsIDAuMDE1LCAwLjAxNzUiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAsIDAuMDEsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAtMC4wMDI1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAwODc1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMTUsIC0wLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjA2NSwgLTAuMDUzNzUsIC0wLjA0NzUsIC0wLjA0MTI1LCAtMC4wMzUsIC0wLjAyNSwgLTAuMDIyNSIsIFwKLSAgICAgICAgICAiLTAuMDczNzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjAzMzc1LCAtMC4wMzEyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE4NzUsIDAuMDMsIDAuMDQyNSwgMC4wNTUsIDAuMDYxMjUsIDAuMDc3NSwgMC4wODYyNSIsIFwKLSAgICAgICAgICAiMC4wMTM3NSwgMC4wMjUsIDAuMDM3NSwgMC4wNDM3NSwgMC4wNTYyNSwgMC4wNjYyNSwgMC4wNzUiLCBcCi0gICAgICAgICAgIjAuMDA3NSwgMC4wMTI1LCAwLjAyNSwgMC4wMzc1LCAwLjA0Mzc1LCAwLjA2LCAwLjA2ODc1IiwgXAotICAgICAgICAgICIwLjAwMTI1LCAwLjAwNjI1LCAwLjAxODc1LCAwLjAzMTI1LCAwLjAzNzUsIDAuMDUzNzUsIDAuMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDA1LCAwLjAwNjI1LCAwLjAxODc1LCAwLjAyNSwgMC4wMzc1LCAwLjA0NzUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIi0wLjAxNSwgLTAuMDAzNzUsIDAuMDA4NzUsIDAuMDIxMjUsIDAuMDI3NSwgMC4wNDM3NSwgMC4wNTI1IiwgXAotICAgICAgICAgICItMC4wMTc1LCAtMC4wMDYyNSwgMC4wMDYyNSwgMC4wMTI1LCAwLjAyNSwgMC4wMzUsIDAuMDQzNzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM3NSwgMC4wMzI1LCAwLjAyLCAwLjAxMzc1LCAwLjAwNzUsIDAuMDAzNzUsIC0wLjAwNSIsIFwKLSAgICAgICAgICAiMC4wNDg3NSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMTg3NSwgMC4wMDg3NSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiMC4wNjEyNSwgMC4wNSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMjEyNSwgMC4wMTI1IiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDYyNSwgMC4wNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAyNzUsIDAuMDI1IiwgXAotICAgICAgICAgICIwLjA4LCAwLjA2ODc1LCAwLjA1NjI1LCAwLjA1LCAwLjA0Mzc1LCAwLjA0LCAwLjAzMTI1IiwgXAotICAgICAgICAgICIwLjA5LCAwLjA3ODc1LCAwLjA3MjUsIDAuMDY2MjUsIDAuMDYsIDAuMDUsIDAuMDQxMjUiLCBcCi0gICAgICAgICAgIjAuMDk4NzUsIDAuMDkzNzUsIDAuMDgxMjUsIDAuMDc1LCAwLjA2ODc1LCAwLjA1ODc1LCAwLjA1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE4NzUsIDAuMDA3NSwgLTAuMDA1LCAtMC4wMTc1LCAtMC4wMywgLTAuMDQsIC0wLjA1NSIsIFwKLSAgICAgICAgICAiMC4wMywgMC4wMTg3NSwgMCwgLTAuMDA2MjUsIC0wLjAxODc1LCAtMC4wMzUsIC0wLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjAzNjI1LCAwLjAyNSwgMC4wMTI1LCAwLCAtMC4wMTI1LCAtMC4wMjI1LCAtMC4wMzc1IiwgXAotICAgICAgICAgICIwLjA0ODc1LCAwLjAzNzUsIDAuMDE4NzUsIDAuMDEyNSwgMCwgLTAuMDE2MjUsIC0wLjAyNSIsIFwKLSAgICAgICAgICAiMC4wNTUsIDAuMDQzNzUsIDAuMDMxMjUsIDAuMDE4NzUsIDAuMDA2MjUsIC0wLjAxLCAtMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4wNjUsIDAuMDUzNzUsIDAuMDQxMjUsIDAuMDI4NzUsIDAuMDE2MjUsIDAuMDA2MjUsIC0wLjAwODc1IiwgXAotICAgICAgICAgICIwLjA3Mzc1LCAwLjA2MjUsIDAuMDUsIDAuMDM3NSwgMC4wMjUsIDAuMDE1LCAwIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihRKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuNTIyMjgxOwotICAgIGZ1bmN0aW9uIDogIk4zMCI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3NlbnNlIDogbm9uX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiByaXNpbmdfZWRnZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTE5NjU4LCAwLjIyMTQ0NywgMC4zMDI5LCAwLjQwNDE5NywgMC41MDQ4OTMsIDAuNjA2MTE3LCAwLjcwODUwNiIsIFwKLSAgICAgICAgICAiMC4xMjk4MzgsIDAuMjMyMDY5LCAwLjMxMzY1LCAwLjQxNDgzLCAwLjUxNjA0MywgMC42MTYzMDIsIDAuNzE4MDc0IiwgXAotICAgICAgICAgICIwLjE0MjM5NywgMC4yNDQ1NTUsIDAuMzI1ODM4LCAwLjQyNzExMSwgMC41Mjc4OSwgMC42Mjg4NjYsIDAuNzMwNjU3IiwgXAotICAgICAgICAgICIwLjE1MzkyOSwgMC4yNTYxNjcsIDAuMzM3NzM2LCAwLjQzODU0NSwgMC41NDAyMjYsIDAuNjQwNDA1LCAwLjc0MjE4MiIsIFwKLSAgICAgICAgICAiMC4xNjM5MjcsIDAuMjY1OTQsIDAuMzQ3NzY5LCAwLjQ0ODE0NiwgMC41NDk1ODUsIDAuNjUwNDMsIDAuNzUyNjQ2IiwgXAotICAgICAgICAgICIwLjE3NzgzMSwgMC4yNzk5OTMsIDAuMzYxMDk0LCAwLjQ2MTY2MywgMC41NjMxNjcsIDAuNjY0NTAxLCAwLjc2NjMzOSIsIFwKLSAgICAgICAgICAiMC4xODgzNzUsIDAuMjkwNTU2LCAwLjM3MTkwOCwgMC40NzI1MjksIDAuNTczODM4LCAwLjY3NTA5OSwgMC43NzY2NTMiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDUzMTM5LCAwLjI1ODgyMSwgMC40MjM2MzUsIDAuNjMzNTUyLCAwLjg0MTExNSwgMS4wNDkxLCAxLjI1NzI2IiwgXAotICAgICAgICAgICIwLjA1MzE0NSwgMC4yNTgwMzUsIDAuNDI0NTM0LCAwLjYzMjMwNSwgMC44NDA4MjEsIDEuMDUwMDcsIDEuMjYwNzEiLCBcCi0gICAgICAgICAgIjAuMDUzMTg3LCAwLjI1ODAwOCwgMC40MjQzMTIsIDAuNjMyMDk2LCAwLjg0MjE1NCwgMS4wNTAwNywgMS4yNjA3IiwgXAotICAgICAgICAgICIwLjA1MzE4NywgMC4yNTc1MzgsIDAuNDI0NDk2LCAwLjYzMjE5MiwgMC44NDEwNDYsIDEuMDUwMDQsIDEuMjYwNjkiLCBcCi0gICAgICAgICAgIjAuMDUzMTk0LCAwLjI1NzE3NCwgMC40MjM5NDksIDAuNjMyNzc4LCAwLjg0MjYwNywgMS4wNDk5LCAxLjI1NzkiLCBcCi0gICAgICAgICAgIjAuMDUzMjAzLCAwLjI1NzE2NSwgMC40MjQ2MjYsIDAuNjMyNTY5LCAwLjg0MDkwNCwgMS4wNDkzMiwgMS4yNjA1NyIsIFwKLSAgICAgICAgICAiMC4wNTMwOCwgMC4yNTc2NjUsIDAuNDI0NjMyLCAwLjYzMjg0OCwgMC44NDEwOTcsIDEuMDQ5MzQsIDEuMjYwNTQiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTMzODMsIDAuMjM4NjE5LCAwLjMyMTczNiwgMC40MjQ3MTksIDAuNTI4MzU3LCAwLjYzMTg1MywgMC43MzUzNjYiLCBcCi0gICAgICAgICAgIjAuMTQ0MDMxLCAwLjI0ODg2LCAwLjMzMTk1MSwgMC40MzUwNzcsIDAuNTM4NTIyLCAwLjY0MjA3MywgMC43NDU1NDkiLCBcCi0gICAgICAgICAgIjAuMTU2NzA5LCAwLjI2MTQ4MSwgMC4zNDQ2MTUsIDAuNDQ3ODY5LCAwLjU1MDk3LCAwLjY1NDcyLCAwLjc1ODI5OSIsIFwKLSAgICAgICAgICAiMC4xNjgyOTYsIDAuMjczMDg1LCAwLjM1NjIwNywgMC40NTkwNjcsIDAuNTYzMTc5LCAwLjY2NjMxNiwgMC43Njk4MTUiLCBcCi0gICAgICAgICAgIjAuMTc4NTcyLCAwLjI4MzQyOSwgMC4zNjY0NDYsIDAuNDY5NTk5LCAwLjU3MzIxOSwgMC42NzY1NzksIDAuNzgwMTUzIiwgXAotICAgICAgICAgICIwLjE5MjUwOCwgMC4yOTczNjUsIDAuMzgwMzM0LCAwLjQ4MzkwMywgMC41ODcwMDcsIDAuNjkwNTU2LCAwLjc5NDAzMiIsIFwKLSAgICAgICAgICAiMC4yMDMyODIsIDAuMzA4MTUzLCAwLjM5MTEzNiwgMC40OTQzMTUsIDAuNTk3OTI4LCAwLjcwMTI4MiwgMC44MDQ4NjIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDUzMTgzLCAwLjI1OTE2NCwgMC40MjYxMDcsIDAuNjM1NTQyLCAwLjg0NjExNSwgMS4wNTYwNiwgMS4yNjU5NCIsIFwKLSAgICAgICAgICAiMC4wNTMxMjEsIDAuMjU5MDYsIDAuNDI2MDYzLCAwLjYzNjI1NCwgMC44NDU1NTQsIDEuMDU1OTQsIDEuMjY1NzciLCBcCi0gICAgICAgICAgIjAuMDUzMTc2LCAwLjI1OTUxOSwgMC40MjYxMDcsIDAuNjM2NzM3LCAwLjg0NDUxMiwgMS4wNTUxNiwgMS4yNjYxNyIsIFwKLSAgICAgICAgICAiMC4wNTMxOCwgMC4yNTkxNzMsIDAuNDI2MDk2LCAwLjYzNTcwOSwgMC44NDUwMTcsIDEuMDU1MTYsIDEuMjY0NzkiLCBcCi0gICAgICAgICAgIjAuMDUzMTc1LCAwLjI1ODg1NSwgMC40MjYxNzMsIDAuNjM2MDk2LCAwLjg0NjQ4NywgMS4wNTUxNCwgMS4yNjYxMyIsIFwKLSAgICAgICAgICAiMC4wNTMxODIsIDAuMjU4ODc0LCAwLjQyNTkyNywgMC42MzQ4MzQsIDAuODQ1NTc2LCAxLjA1NTk2LCAxLjI2NTgiLCBcCi0gICAgICAgICAgIjAuMDUzMTczLCAwLjI1ODc4MSwgMC40MjYyMTIsIDAuNjM2MTc3LCAwLjg0NjUxMiwgMS4wNTUxNywgMS4yNjYxMyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDUxMjcsIDAuMDA1MTYxLCAwLjAwNTE1OCwgMC4wMDUxNTUsIDAuMDA1MTUzLCAwLjAwNTE1MSwgMC4wMDUxNSIsIFwKLSAgICAgICAgICAiMC4wMDUxMDksIDAuMDA1MTQzLCAwLjAwNTE0MSwgMC4wMDUxMzgsIDAuMDA1MTM2LCAwLjAwNTEzNCwgMC4wMDUxMzMiLCBcCi0gICAgICAgICAgIjAuMDA1MTAxLCAwLjAwNTEzNywgMC4wMDUxMzQsIDAuMDA1MTMsIDAuMDA1MTI5LCAwLjAwNTEyNywgMC4wMDUxMjUiLCBcCi0gICAgICAgICAgIjAuMDA1MTAzLCAwLjAwNTEzOSwgMC4wMDUxMzYsIDAuMDA1MTMyLCAwLjAwNTEzLCAwLjAwNTEyOSwgMC4wMDUxMjciLCBcCi0gICAgICAgICAgIjAuMDA1MTA4LCAwLjAwNTE0NSwgMC4wMDUxNDIsIDAuMDA1MTM5LCAwLjAwNTEzNiwgMC4wMDUxMzYsIDAuMDA1MTM0IiwgXAotICAgICAgICAgICIwLjAwNTEyLCAwLjAwNTE1OSwgMC4wMDUxNTYsIDAuMDA1MTUyLCAwLjAwNTE1LCAwLjAwNTE0OCwgMC4wMDUxNDYiLCBcCi0gICAgICAgICAgIjAuMDA1MTMzLCAwLjAwNTE3MSwgMC4wMDUxNjgsIDAuMDA1MTY1LCAwLjAwNTE2MiwgMC4wMDUxNiwgMC4wMDUxNTkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDU1MDcsIDAuMDA1NTU4LCAwLjAwNTU2MywgMC4wMDU1NjYsIDAuMDA1NTY3LCAwLjAwNTU2OSwgMC4wMDU1NjkiLCBcCi0gICAgICAgICAgIjAuMDA1NDkyLCAwLjAwNTU0MywgMC4wMDU1NDgsIDAuMDA1NTUxLCAwLjAwNTU1NCwgMC4wMDU1NTQsIDAuMDA1NTUzIiwgXAotICAgICAgICAgICIwLjAwNTQ5MSwgMC4wMDU1NDIsIDAuMDA1NTQ4LCAwLjAwNTU1MSwgMC4wMDU1NTIsIDAuMDA1NTUzLCAwLjAwNTU1MyIsIFwKLSAgICAgICAgICAiMC4wMDU0OTksIDAuMDA1NTUsIDAuMDA1NTU2LCAwLjAwNTU1OSwgMC4wMDU1NiwgMC4wMDU1NjEsIDAuMDA1NTYxIiwgXAotICAgICAgICAgICIwLjAwNTUxNSwgMC4wMDU1NjUsIDAuMDA1NTcxLCAwLjAwNTU3NCwgMC4wMDU1NzUsIDAuMDA1NTc2LCAwLjAwNTU3NyIsIFwKLSAgICAgICAgICAiMC4wMDU1MzMsIDAuMDA1NTg0LCAwLjAwNTU5LCAwLjAwNTU5MiwgMC4wMDU1OTQsIDAuMDA1NTk1LCAwLjAwNTU5NiIsIFwKLSAgICAgICAgICAiMC4wMDU1NTQsIDAuMDA1NjA1LCAwLjAwNTYxMSwgMC4wMDU2MTMsIDAuMDA1NjE1LCAwLjAwNTYxNiwgMC4wMDU2MTciKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFFOKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuNTI3NTgyOwotICAgIGZ1bmN0aW9uIDogIlFCSU5UIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBub25fdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJpc2luZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNTU3NTQsIDAuMjU2Njg2LCAwLjMzNzU3MiwgMC40Mzg0MjYsIDAuNTM5NTkzLCAwLjY0MDYzMiwgMC43NDE2NzgiLCBcCi0gICAgICAgICAgIjAuMTY1OTQsIDAuMjY2ODI1LCAwLjM0NzcxMiwgMC40NDg2NzcsIDAuNTQ5NzM0LCAwLjY1MDc2MiwgMC43NTE4IiwgXAotICAgICAgICAgICIwLjE3ODYzMywgMC4yNzk1NTUsIDAuMzYwNDQxLCAwLjQ2MTM4OSwgMC41NjIyOTIsIDAuNjYzNTA1LCAwLjc2NDU0NiIsIFwKLSAgICAgICAgICAiMC4xOTAyMTgsIDAuMjkxMTQ5LCAwLjM3MjAzNiwgMC40NzI4ODgsIDAuNTc0MTc5LCAwLjY3NTA5NywgMC43NzYxNjEiLCBcCi0gICAgICAgICAgIjAuMjAwNDk2LCAwLjMwMTQxNSwgMC4zODIyODEsIDAuNDgzMjY2LCAwLjU4NDI5NywgMC42ODUzNTMsIDAuNzg2MzkiLCBcCi0gICAgICAgICAgIjAuMjE0NDMsIDAuMzE1MzU3LCAwLjM5NjIwNSwgMC40OTcyOTcsIDAuNTk4MjA3LCAwLjY5OTIzNywgMC44MDAyNzYiLCBcCi0gICAgICAgICAgIjAuMjI1MTk0LCAwLjMyNjE0NSwgMC40MDcsIDAuNTA3OTksIDAuNjA5MDIxLCAwLjcxMDA4MSwgMC44MTExMTUiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDUwODU0LCAwLjI1NjcxMiwgMC40MjMzLCAwLjYzMTY3NywgMC44NDEwNTksIDEuMDQ5NjQsIDEuMjU4MjEiLCBcCi0gICAgICAgICAgIjAuMDUwODQsIDAuMjU2NjQ0LCAwLjQyMzI5NSwgMC42MzI0MjksIDAuODQwMzcsIDEuMDQ5NTMsIDEuMjU4MDUiLCBcCi0gICAgICAgICAgIjAuMDUwODUyLCAwLjI1NzIyNiwgMC40MjMzLCAwLjYzMjc2MSwgMC44MzkyOTUsIDEuMDQ4NzQsIDEuMjU4NzQiLCBcCi0gICAgICAgICAgIjAuMDUwODUzLCAwLjI1NjcxLCAwLjQyMzI5OCwgMC42MzE4MDYsIDAuODM5ODM0LCAxLjA0ODY1LCAxLjI1NzI0IiwgXAotICAgICAgICAgICIwLjA1MDg1MSwgMC4yNTY2MjcsIDAuNDIzMzEzLCAwLjYzMjM4OCwgMC44NDE0MiwgMS4wNDg3NCwgMS4yNTg3MyIsIFwKLSAgICAgICAgICAiMC4wNTA4NTIsIDAuMjU2NjI4LCAwLjQyMzA4OCwgMC42MzEyNTQsIDAuODQwMzc3LCAxLjA0OTU2LCAxLjI1ODA5IiwgXAotICAgICAgICAgICIwLjA1MDgzNiwgMC4yNTY2MSwgMC40MjMzMjMsIDAuNjMyNDE2LCAwLjg0MTQzNSwgMS4wNDg4MSwgMS4yNTg3NCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNDQ0MTYsIDAuMjQ3OTg2LCAwLjMzMDg5NCwgMC40MzQ0NDEsIDAuNTM4MDMsIDAuNjQxNDU1LCAwLjc0NTI5MiIsIFwKLSAgICAgICAgICAiMC4xNTQ2MTMsIDAuMjU4MTgyLCAwLjM0MTEyMSwgMC40NDQ3LCAwLjU0ODI2OCwgMC42NTE3NjYsIDAuNzU1MzE2IiwgXAotICAgICAgICAgICIwLjE2NzE3MSwgMC4yNzA3MjQsIDAuMzUzNjMzLCAwLjQ1NzE5NiwgMC41NjA3NDQsIDAuNjY0MzI2LCAwLjc2Nzg4IiwgXAotICAgICAgICAgICIwLjE3ODcwMiwgMC4yODIyNzgsIDAuMzY1MjE0LCAwLjQ2ODY3NywgMC41NzIzODUsIDAuNjc1ODYsIDAuNzc5NDE0IiwgXAotICAgICAgICAgICIwLjE4ODcwMiwgMC4yOTIyNzksIDAuMzc1MjUyLCAwLjQ3ODc0MSwgMC41ODIyNjMsIDAuNjg1ODg4LCAwLjc4OTU1NCIsIFwKLSAgICAgICAgICAiMC4yMDI2MDMsIDAuMzA2MTk5LCAwLjM4OTA2NiwgMC40OTI1MzYsIDAuNTk2MjE2LCAwLjY5OTc4NCwgMC44MDM0MTEiLCBcCi0gICAgICAgICAgIjAuMjEzMTU1LCAwLjMxNjc3NywgMC4zOTk2NywgMC41MDMyMTUsIDAuNjA2NzU4LCAwLjcxMDMzMSwgMC44MTM4OTciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDUxMDkzLCAwLjI1ODY1NCwgMC40MjU4NTYsIDAuNjM2NjM1LCAwLjg0NTgxNSwgMS4wNTUzLCAxLjI2NDQ5IiwgXAotICAgICAgICAgICIwLjA1MTA3NSwgMC4yNTgyNTUsIDAuNDI2MDI2LCAwLjYzNTMzLCAwLjg0NTE5NSwgMS4wNTU2MSwgMS4yNjY1NSIsIFwKLSAgICAgICAgICAiMC4wNTEwNjgsIDAuMjU4NDExLCAwLjQyNjA5NSwgMC42MzU1ODQsIDAuODQ2MjQsIDEuMDU1NjEsIDEuMjY2NTYiLCBcCi0gICAgICAgICAgIjAuMDUxMDk2LCAwLjI1ODM1NiwgMC40MjYwMTksIDAuNjM1MzQsIDAuODQ1Mjg2LCAxLjA1NTYsIDEuMjY2NTMiLCBcCi0gICAgICAgICAgIjAuMDUxMDk3LCAwLjI1ODQ2OSwgMC40MjYwMDgsIDAuNjM1ODgzLCAwLjg0NjQ2MywgMS4wNTU1NywgMS4yNjQ1NyIsIFwKLSAgICAgICAgICAiMC4wNTEwOTIsIDAuMjU4NDEyLCAwLjQyNjYxNCwgMC42MzU4ODUsIDAuODQ1NzIsIDEuMDU1NCwgMS4yNjY2OCIsIFwKLSAgICAgICAgICAiMC4wNTExMDQsIDAuMjU4MzQsIDAuNDI2MTM0LCAwLjYzNTkxNywgMC44NDU1NTIsIDEuMDU1MjcsIDEuMjY2MzciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1NTA3LCAwLjAwNTU1OCwgMC4wMDU1NjMsIDAuMDA1NTY2LCAwLjAwNTU2NywgMC4wMDU1NjksIDAuMDA1NTY5IiwgXAotICAgICAgICAgICIwLjAwNTQ5MiwgMC4wMDU1NDMsIDAuMDA1NTQ4LCAwLjAwNTU1MSwgMC4wMDU1NTQsIDAuMDA1NTU0LCAwLjAwNTU1MyIsIFwKLSAgICAgICAgICAiMC4wMDU0OTEsIDAuMDA1NTQyLCAwLjAwNTU0OCwgMC4wMDU1NTEsIDAuMDA1NTUyLCAwLjAwNTU1MywgMC4wMDU1NTMiLCBcCi0gICAgICAgICAgIjAuMDA1NDk5LCAwLjAwNTU1LCAwLjAwNTU1NiwgMC4wMDU1NTksIDAuMDA1NTYsIDAuMDA1NTYxLCAwLjAwNTU2MSIsIFwKLSAgICAgICAgICAiMC4wMDU1MTUsIDAuMDA1NTY1LCAwLjAwNTU3MSwgMC4wMDU1NzQsIDAuMDA1NTc1LCAwLjAwNTU3NiwgMC4wMDU1NzciLCBcCi0gICAgICAgICAgIjAuMDA1NTMzLCAwLjAwNTU4NCwgMC4wMDU1OSwgMC4wMDU1OTIsIDAuMDA1NTk0LCAwLjAwNTU5NSwgMC4wMDU1OTYiLCBcCi0gICAgICAgICAgIjAuMDA1NTU0LCAwLjAwNTYwNSwgMC4wMDU2MTEsIDAuMDA1NjEzLCAwLjAwNTYxNSwgMC4wMDU2MTYsIDAuMDA1NjE3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1MTI3LCAwLjAwNTE2MSwgMC4wMDUxNTgsIDAuMDA1MTU1LCAwLjAwNTE1MywgMC4wMDUxNTEsIDAuMDA1MTUiLCBcCi0gICAgICAgICAgIjAuMDA1MTA5LCAwLjAwNTE0MywgMC4wMDUxNDEsIDAuMDA1MTM4LCAwLjAwNTEzNiwgMC4wMDUxMzQsIDAuMDA1MTMzIiwgXAotICAgICAgICAgICIwLjAwNTEwMSwgMC4wMDUxMzcsIDAuMDA1MTM0LCAwLjAwNTEzLCAwLjAwNTEyOSwgMC4wMDUxMjcsIDAuMDA1MTI1IiwgXAotICAgICAgICAgICIwLjAwNTEwMywgMC4wMDUxMzksIDAuMDA1MTM2LCAwLjAwNTEzMiwgMC4wMDUxMywgMC4wMDUxMjksIDAuMDA1MTI3IiwgXAotICAgICAgICAgICIwLjAwNTEwOCwgMC4wMDUxNDUsIDAuMDA1MTQyLCAwLjAwNTEzOSwgMC4wMDUxMzYsIDAuMDA1MTM2LCAwLjAwNTEzNCIsIFwKLSAgICAgICAgICAiMC4wMDUxMiwgMC4wMDUxNTksIDAuMDA1MTU2LCAwLjAwNTE1MiwgMC4wMDUxNSwgMC4wMDUxNDgsIDAuMDA1MTQ2IiwgXAotICAgICAgICAgICIwLjAwNTEzMywgMC4wMDUxNzEsIDAuMDA1MTY4LCAwLjAwNTE2NSwgMC4wMDUxNjIsIDAuMDA1MTYsIDAuMDA1MTU5Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBETFkxWDQgKgotICogLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChETFkxWDQpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4yNTMzNTU7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY2ODkyODsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2Njg2Mzk7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjY4OTI4OwotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDEuMDQyMzY7Ci0gICAgZnVuY3Rpb24gOiAiQSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTQ4MTUsIDAuMTY4MTMzLCAwLjI0MDMxMywgMC4yOTE5LCAwLjM3NDMxMSwgMC40NDY2MDQsIDAuNTQ5NzAyIiwgXAotICAgICAgICAgICIwLjEwNDg4NywgMC4xNzgxMjgsIDAuMjUwMzA4LCAwLjMwMTg4NCwgMC4zODQ0MjYsIDAuNDU2NjM5LCAwLjU1OTY5NyIsIFwKLSAgICAgICAgICAiMC4xMTU1MDEsIDAuMTg4ODA5LCAwLjI2MTAyMSwgMC4zMTI1NzcsIDAuMzk0OTY4LCAwLjQ2NzI3NywgMC41NzAzOCIsIFwKLSAgICAgICAgICAiMC4xMjM5MiwgMC4xOTcxNTksIDAuMjY5NDExLCAwLjMyMDkzNywgMC40MDM1MDEsIDAuNDc1NTA3LCAwLjU3ODY5MiIsIFwKLSAgICAgICAgICAiMC4xMzExLCAwLjIwNDM5MywgMC4yNzY1NTMsIDAuMzI4MTIsIDAuNDEwNjksIDAuNDgyODE3LCAwLjU4NTkxOSIsIFwKLSAgICAgICAgICAiMC4xNDA3NzIsIDAuMjEzOTgsIDAuMjg2MjAyLCAwLjMzNzczOCwgMC40MjAyMzEsIDAuNDkyNDQxLCAwLjU5NTU0NSIsIFwKLSAgICAgICAgICAiMC4xNDgxOTQsIDAuMjIxNTQsIDAuMjkzNzQxLCAwLjM0NTE5OSwgMC40Mjc2NzMsIDAuNDk5OTkzLCAwLjYwMzA4NyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzMjIzLCAwLjE3NzM3MSwgMC4zMjUxNDgsIDAuNDMyNjUzLCAwLjYwMTEzNCwgMC43NTIxNzUsIDAuOTY1MTg3IiwgXAotICAgICAgICAgICIwLjAzMjIwOSwgMC4xNzczODUsIDAuMzI1NjQzLCAwLjQzMjYyOSwgMC42MDE5NTEsIDAuNzUwNzE3LCAwLjk2NTExMyIsIFwKLSAgICAgICAgICAiMC4wMzIyMzMsIDAuMTc3MzY5LCAwLjMyNjE4NCwgMC40MzI2NDQsIDAuNjAxMTE3LCAwLjc1MjE0LCAwLjk2NTE0NiIsIFwKLSAgICAgICAgICAiMC4wMzIyMzYsIDAuMTc3Mzg1LCAwLjMyNTU4OCwgMC40MzI2NTcsIDAuNjAxOTY2LCAwLjc1MTYzNCwgMC45NjUwNTciLCBcCi0gICAgICAgICAgIjAuMDMyMTk1LCAwLjE3NzM1LCAwLjMyNTk4MSwgMC40MzI0MDcsIDAuNjAxOTY4LCAwLjc1MjEzNSwgMC45NjUxMjkiLCBcCi0gICAgICAgICAgIjAuMDMyMjYyLCAwLjE3NzEwMywgMC4zMjU1MjcsIDAuNDMyNTg2LCAwLjYwMjkyMSwgMC43NTA4NzgsIDAuOTY1MDEzIiwgXAotICAgICAgICAgICIwLjAzMjIwNiwgMC4xNzcyMSwgMC4zMjU2NzcsIDAuNDMyNTk5LCAwLjYwMjY2MywgMC43NTIwMTUsIDAuOTY0OTc4Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk0NDkxLCAwLjE2OTEyOSwgMC4yNDI2MDQsIDAuMjk1MDA1LCAwLjM3ODkwMSwgMC40NTIzMTQsIDAuNTU3MTI2IiwgXAotICAgICAgICAgICIwLjEwNDIwMSwgMC4xNzg4MjgsIDAuMjUyMzEsIDAuMzA0NzE3LCAwLjM4ODY1NiwgMC40NjIwMjMsIDAuNTY2Nzk4IiwgXAotICAgICAgICAgICIwLjExNDE2OSwgMC4xODg3ODQsIDAuMjYyMjUsIDAuMzE0NywgMC4zOTg1OTksIDAuNDcxOTYxLCAwLjU3NjgwNCIsIFwKLSAgICAgICAgICAiMC4xMjE2OTMsIDAuMTk2MzExLCAwLjI2OTc1NiwgMC4zMjIyNDQsIDAuNDA2MTE1LCAwLjQ3OTQ4LCAwLjU4NDMyMyIsIFwKLSAgICAgICAgICAiMC4xMjgyMzMsIDAuMjAyODU3LCAwLjI3NjI3LCAwLjMyODc2OSwgMC40MTI2NTEsIDAuNDg2MDA2LCAwLjU5MDg5MSIsIFwKLSAgICAgICAgICAiMC4xMzY4NzYsIDAuMjExNDk0LCAwLjI4NDk0NCwgMC4zMzczNTQsIDAuNDIxMTk5LCAwLjQ5NDY2MywgMC41OTkzOTYiLCBcCi0gICAgICAgICAgIjAuMTQzMTg0LCAwLjIxNzkwOCwgMC4yOTEzNjcsIDAuMzQzNzk2LCAwLjQyNzY4OCwgMC41MDEwNywgMC42MDU3ODciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzE4MzYsIDAuMTc2ODAyLCAwLjMyNDk1MSwgMC40MzIyNSwgMC42MDI1MjYsIDAuNzUxNjQsIDAuOTY0NDQ4IiwgXAotICAgICAgICAgICIwLjAzMTg0LCAwLjE3NzI1LCAwLjMyNDkyMiwgMC40MzIyOTgsIDAuNjAxNDAzLCAwLjc0OTYwNiwgMC45NjQyODIiLCBcCi0gICAgICAgICAgIjAuMDMxODUyLCAwLjE3NzI1NiwgMC4zMjUwMDQsIDAuNDMxMzc1LCAwLjYwMDg4NCwgMC43NTE2ODEsIDAuOTY0NDcxIiwgXAotICAgICAgICAgICIwLjAzMTg1NCwgMC4xNzcyNDYsIDAuMzI1ODcyLCAwLjQzMDk0LCAwLjYwMDkyNSwgMC43NTE2MjMsIDAuOTY0MzgyIiwgXAotICAgICAgICAgICIwLjAzMTc4NiwgMC4xNzY5NjIsIDAuMzI1ODg4LCAwLjQzMTA4NywgMC42MDI2MzEsIDAuNzUxMTMzLCAwLjk2NDY0NyIsIFwKLSAgICAgICAgICAiMC4wMzE4MDQsIDAuMTc3Mjk2LCAwLjMyNTg5NCwgMC40MzA5NSwgMC42MDE2MzUsIDAuNzUxNTkzLCAwLjk2NDI3NSIsIFwKLSAgICAgICAgICAiMC4wMzE4NjksIDAuMTc3Mjk5LCAwLjMyNSwgMC40MzIyOSwgMC42MDI2MTgsIDAuNzUxNTksIDAuOTYyNzMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjQ2NSwgMC4wMDY2MDIsIDAuMDA2NjE3LCAwLjAwNjYyOCwgMC4wMDY2MjYsIDAuMDA2NjI1LCAwLjAwNjYyOCIsIFwKLSAgICAgICAgICAiMC4wMDY0MzYsIDAuMDA2NTc0LCAwLjAwNjU5MywgMC4wMDY1OTYsIDAuMDA2NjA5LCAwLjAwNjYwNCwgMC4wMDY2MTMiLCBcCi0gICAgICAgICAgIjAuMDA2NDM5LCAwLjAwNjU4LCAwLjAwNjU5NCwgMC4wMDY1OTgsIDAuMDA2NjAzLCAwLjAwNjYwNSwgMC4wMDY2MDIiLCBcCi0gICAgICAgICAgIjAuMDA2NDM4LCAwLjAwNjU3LCAwLjAwNjU5MiwgMC4wMDY2MDIsIDAuMDA2NjAyLCAwLjAwNjYwMSwgMC4wMDY2MDYiLCBcCi0gICAgICAgICAgIjAuMDA2NDUsIDAuMDA2NTkxLCAwLjAwNjYwOCwgMC4wMDY2MTIsIDAuMDA2NjE3LCAwLjAwNjYxOCwgMC4wMDY2MjIiLCBcCi0gICAgICAgICAgIjAuMDA2NDc3LCAwLjAwNjYyLCAwLjAwNjYzOSwgMC4wMDY2NDUsIDAuMDA2NjQ0LCAwLjAwNjY1LCAwLjAwNjY1OCIsIFwKLSAgICAgICAgICAiMC4wMDY1MDEsIDAuMDA2NjM2LCAwLjAwNjY1NiwgMC4wMDY2NjIsIDAuMDA2NjY2LCAwLjAwNjY2OCwgMC4wMDY2NyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA3NDE1LCAwLjAwNzYwNiwgMC4wMDc2MzEsIDAuMDA3NjM4LCAwLjAwNzY0NSwgMC4wMDc2NDgsIDAuMDA3NjUxIiwgXAotICAgICAgICAgICIwLjAwNzM5LCAwLjAwNzU4MSwgMC4wMDc2MDYsIDAuMDA3NjEzLCAwLjAwNzYyLCAwLjAwNzYyMywgMC4wMDc2MjYiLCBcCi0gICAgICAgICAgIjAuMDA3Mzg2LCAwLjAwNzU3NywgMC4wMDc2MDEsIDAuMDA3NjA5LCAwLjAwNzYxNiwgMC4wMDc2MTksIDAuMDA3NjIyIiwgXAotICAgICAgICAgICIwLjAwNzM4NSwgMC4wMDc1NzYsIDAuMDA3NjAxLCAwLjAwNzYwOSwgMC4wMDc2MTYsIDAuMDA3NjE5LCAwLjAwNzYyMiIsIFwKLSAgICAgICAgICAiMC4wMDc0LCAwLjAwNzU5MSwgMC4wMDc2MTQsIDAuMDA3NjI0LCAwLjAwNzYzLCAwLjAwNzYzNCwgMC4wMDc2MzciLCBcCi0gICAgICAgICAgIjAuMDA3NDMxLCAwLjAwNzYyNSwgMC4wMDc2NDEsIDAuMDA3NjQ1LCAwLjAwNzY1MiwgMC4wMDc2NTksIDAuMDA3NjU4IiwgXAotICAgICAgICAgICIwLjAwNzQ0MSwgMC4wMDc2MzUsIDAuMDA3NjYzLCAwLjAwNzY3LCAwLjAwNzY3NywgMC4wMDc2ODEsIDAuMDA3NjgiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IERMWTJYNCAqCi0gKiAtLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKERMWTJYNCkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjMzMTkyOwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA1ODU0MzM7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNTg1MTkzOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDU4NTQzMzsKLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAxLjA0NzM7Ci0gICAgZnVuY3Rpb24gOiAiQSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNzE1MywgMC4yNDQyOCwgMC4zMTU1ODgsIDAuMzY2NTE1LCAwLjQ0Nzg2LCAwLjUxOTIxOCwgMC42MjA5OTkiLCBcCi0gICAgICAgICAgIjAuMTgxNjUzLCAwLjI1NDMyLCAwLjMyNTY2NSwgMC4zNzY1NTUsIDAuNDU4MDEsIDAuNTI5MzE3LCAwLjYzMTA4MSIsIFwKLSAgICAgICAgICAiMC4xOTI2NzEsIDAuMjY1NDUzLCAwLjMzNjc2MSwgMC4zODc2ODIsIDAuNDY5MTQ2LCAwLjU0MDQ0NiwgMC42NDIyMSIsIFwKLSAgICAgICAgICAiMC4yMDE2OSwgMC4yNzQ0ODQsIDAuMzQ1Nzk5LCAwLjM5NjcxMiwgMC40NzgxOTMsIDAuNTQ5NDYyLCAwLjY1MTI0NSIsIFwKLSAgICAgICAgICAiMC4yMDkyOTMsIDAuMjgxOTgxLCAwLjM1MzI4NywgMC40MDQxOTgsIDAuNDg1NjU0LCAwLjU1Njk1OSwgMC42NTg3MjYiLCBcCi0gICAgICAgICAgIjAuMjE5NjE3LCAwLjI5MjI4MiwgMC4zNjM2MzEsIDAuNDE0NTIsIDAuNDk1OTc1LCAwLjU2NzI4MiwgMC42NjkwNDYiLCBcCi0gICAgICAgICAgIjAuMjI3NTgxLCAwLjMwMDI5MiwgMC4zNzE1NTksIDAuNDIyMzksIDAuNTAzODQ4LCAwLjU3NTA3MiwgMC42NzcwNzUiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzI4NzEsIDAuMTc1OTExLCAwLjMyMjM4NSwgMC40Mjg4MjcsIDAuNTk2NzIsIDAuNzQ1NDQ3LCAwLjk1NjI5MSIsIFwKLSAgICAgICAgICAiMC4wMzI4MjksIDAuMTc2MDU4LCAwLjMyMjcxNCwgMC40Mjg4MTEsIDAuNTk2MTU5LCAwLjc0Mzk2LCAwLjk1NjMzOCIsIFwKLSAgICAgICAgICAiMC4wMzI4NDcsIDAuMTc1OTExLCAwLjMyMjg4NiwgMC40Mjg3OTYsIDAuNTk2ODY2LCAwLjc0NTM5MywgMC45NTYzMzUiLCBcCi0gICAgICAgICAgIjAuMDMyODMsIDAuMTc1OTEyLCAwLjMyMjY3MSwgMC40Mjg3ODcsIDAuNTk2NTY5LCAwLjc0NTM1NiwgMC45NTYzMzUiLCBcCi0gICAgICAgICAgIjAuMDMyODczLCAwLjE3NTgwMSwgMC4zMjI3NzcsIDAuNDI4ODEsIDAuNTk2MTcsIDAuNzQ1MzkyLCAwLjk1NjM0MSIsIFwKLSAgICAgICAgICAiMC4wMzI4NjcsIDAuMTc2MDU3LCAwLjMyMjczNSwgMC40Mjg4MSwgMC41OTYxNiwgMC43NDUzOTQsIDAuOTU2MzM3IiwgXAotICAgICAgICAgICIwLjAzMjkxOCwgMC4xNzYwNTYsIDAuMzIyNDMsIDAuNDI4ODMyLCAwLjU5NTgzMSwgMC43NDUyNDEsIDAuOTU2MzYiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNzE2NDQsIDAuMjQ2NTM4LCAwLjMxOTk1NCwgMC4zNzIzNDEsIDAuNDU2MTc0LCAwLjUyOTU0MywgMC42MzQyNjgiLCBcCi0gICAgICAgICAgIjAuMTgxMzY4LCAwLjI1NjMxMywgMC4zMjk3MDYsIDAuMzgyMTA1LCAwLjQ2NTk2OCwgMC41MzkyODUsIDAuNjQ0MDI1IiwgXAotICAgICAgICAgICIwLjE5MTY5NywgMC4yNjY2NDEsIDAuMzQwMDYyLCAwLjM5MjQzMSwgMC40NzYyODcsIDAuNTQ5NjEzLCAwLjY1NDM0NyIsIFwKLSAgICAgICAgICAiMC4yMDAwMTMsIDAuMjc0OTI5LCAwLjM0ODMxMSwgMC40MDA3MzQsIDAuNDg0NTQ5LCAwLjU1NzkxNSwgMC42NjI2NjYiLCBcCi0gICAgICAgICAgIjAuMjA2OTMyLCAwLjI4MTc5OCwgMC4zNTUxODgsIDAuNDA3NTcyLCAwLjQ5MTQyOSwgMC41NjQ3NzUsIDAuNjY5NTAzIiwgXAotICAgICAgICAgICIwLjIxNjAxOSwgMC4yOTA5NDMsIDAuMzY0MzM0LCAwLjQxNjgyMSwgMC41MDA2MzMsIDAuNTczOTY4LCAwLjY3ODY2OSIsIFwKLSAgICAgICAgICAiMC4yMjI5MDYsIDAuMjk3OTg3LCAwLjM3MTM4LCAwLjQyMzc4NiwgMC41MDc2MSwgMC41ODA3ODIsIDAuNjg1NTE4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDMyNzIzLCAwLjE3NzQ3MiwgMC4zMjUyMDMsIDAuNDMyMDg4LCAwLjYwMjIxMiwgMC43NDkxNjgsIDAuOTYzODM2IiwgXAotICAgICAgICAgICIwLjAzMjczLCAwLjE3NzIzNCwgMC4zMjUyMzgsIDAuNDMyMDM5LCAwLjYwMDk2NiwgMC43NTExNDgsIDAuOTYzNzE0IiwgXAotICAgICAgICAgICIwLjAzMjcyNSwgMC4xNzcwODUsIDAuMzI0OTI2LCAwLjQzMjAzNiwgMC42MDA4NDEsIDAuNzUxMTYyLCAwLjk2MzY4IiwgXAotICAgICAgICAgICIwLjAzMjc1NSwgMC4xNzc0ODMsIDAuMzI1MTkxLCAwLjQzMjA5MywgMC42MDEwNTksIDAuNzQ4ODcxLCAwLjk2MzgwNCIsIFwKLSAgICAgICAgICAiMC4wMzI3NSwgMC4xNzc0MTUsIDAuMzI1MTU4LCAwLjQzMjA0LCAwLjYwMTA4OCwgMC43NDkwODYsIDAuOTYzNzM4IiwgXAotICAgICAgICAgICIwLjAzMjcwMywgMC4xNzc0OTcsIDAuMzI1MTk0LCAwLjQzMjA3NiwgMC42MDIwOTEsIDAuNzUwNzA3LCAwLjk2Mzc2MyIsIFwKLSAgICAgICAgICAiMC4wMzI3NTcsIDAuMTc3MDgxLCAwLjMyNTEyOSwgMC40MzIwMzIsIDAuNjAxMDc1LCAwLjc0OTA1MSwgMC45NjM3NzkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwOTE1LCAwLjAwOTMxOSwgMC4wMDkzNDMsIDAuMDA5MzU3LCAwLjAwOTM1NywgMC4wMDkzNiwgMC4wMDkzNjQiLCBcCi0gICAgICAgICAgIjAuMDA5MTIsIDAuMDA5Mjg5LCAwLjAwOTMxNCwgMC4wMDkzMiwgMC4wMDkzMzUsIDAuMDA5MzMsIDAuMDA5MzMzIiwgXAotICAgICAgICAgICIwLjAwOTEyLCAwLjAwOTI4OSwgMC4wMDkzMTIsIDAuMDA5MzE4LCAwLjAwOTMyNywgMC4wMDkzMywgMC4wMDkzMzUiLCBcCi0gICAgICAgICAgIjAuMDA5MTIyLCAwLjAwOTI5MSwgMC4wMDkzMTUsIDAuMDA5MzE4LCAwLjAwOTMyOSwgMC4wMDkzMzIsIDAuMDA5MzM4IiwgXAotICAgICAgICAgICIwLjAwOTEzMiwgMC4wMDkzMDEsIDAuMDA5MzI4LCAwLjAwOTMzMywgMC4wMDkzNDgsIDAuMDA5MzQzLCAwLjAwOTM1NSIsIFwKLSAgICAgICAgICAiMC4wMDkxNTUsIDAuMDA5MzI1LCAwLjAwOTM0NywgMC4wMDkzNjEsIDAuMDA5MzU5LCAwLjAwOTM2NiwgMC4wMDkzNjkiLCBcCi0gICAgICAgICAgIjAuMDA5MTc2LCAwLjAwOTM0NSwgMC4wMDkzNjgsIDAuMDA5MzcyLCAwLjAwOTM3OSwgMC4wMDkzODIsIDAuMDA5NCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDExMDE4LCAwLjAxMTIzNCwgMC4wMTEyNjUsIDAuMDExMjc0LCAwLjAxMTI4MywgMC4wMTEyODcsIDAuMDExMjkyIiwgXAotICAgICAgICAgICIwLjAxMDk5MiwgMC4wMTEyMDcsIDAuMDExMjM5LCAwLjAxMTI0OCwgMC4wMTEyNTcsIDAuMDExMjYxLCAwLjAxMTI2NSIsIFwKLSAgICAgICAgICAiMC4wMTA5ODgsIDAuMDExMjA0LCAwLjAxMTIzNSwgMC4wMTEyNDUsIDAuMDExMjU0LCAwLjAxMTI1OCwgMC4wMTEyNjIiLCBcCi0gICAgICAgICAgIjAuMDEwOTg4LCAwLjAxMTIwMywgMC4wMTEyMzQsIDAuMDExMjQ0LCAwLjAxMTI1MywgMC4wMTEyNTcsIDAuMDExMjYxIiwgXAotICAgICAgICAgICIwLjAxMDk5NywgMC4wMTEyMTIsIDAuMDExMjQ0LCAwLjAxMTI1MiwgMC4wMTEyNjIsIDAuMDExMjY1LCAwLjAxMTI3IiwgXAotICAgICAgICAgICIwLjAxMTAxOCwgMC4wMTEyMzQsIDAuMDExMjY1LCAwLjAxMTI3NiwgMC4wMTEyODUsIDAuMDExMjg5LCAwLjAxMTI5MiIsIFwKLSAgICAgICAgICAiMC4wMTEwMywgMC4wMTEyNTUsIDAuMDExMjg2LCAwLjAxMTI5NSwgMC4wMTEzMDQsIDAuMDExMjk5LCAwLjAxMTMwNCIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogRExZM1g0ICoKLSAqIC0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoRExZM1g0KSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuNDEwNTM0OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2MDkzMzI7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjA4ODgzOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDYwOTMzMjsKLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAxLjA0Njc1OwotICAgIGZ1bmN0aW9uIDogIkEiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjM5Njc3LCAwLjMxMjQyNiwgMC4zODM5MzcsIDAuNDM0OTk3LCAwLjUxNjcxMywgMC41ODgxNTcsIDAuNjkwMzg3IiwgXAotICAgICAgICAgICIwLjI0OTgsIDAuMzIyNTQxLCAwLjM5NDA1NCwgMC40NDUxMTIsIDAuNTI2ODMsIDAuNTk4MjgxLCAwLjcwMDQxIiwgXAotICAgICAgICAgICIwLjI2MDc3NiwgMC4zMzM1MTIsIDAuNDA1MDI3LCAwLjQ1NjA4MiwgMC41Mzc3NjksIDAuNjA5MjksIDAuNzExMzg1IiwgXAotICAgICAgICAgICIwLjI2OTY4MiwgMC4zNDIzNSwgMC40MTM4NjMsIDAuNDY0OTIyLCAwLjU0NjYxMywgMC42MTgwODYsIDAuNzIwMjQyIiwgXAotICAgICAgICAgICIwLjI3NzIyNSwgMC4zNDk5MDEsIDAuNDIxNDAyLCAwLjQ3MjQ3MywgMC41NTQwNjYsIDAuNjI1NzE0LCAwLjcyNzc5IiwgXAotICAgICAgICAgICIwLjI4NzQzLCAwLjM2MDE3LCAwLjQzMTY4MywgMC40ODI3NDEsIDAuNTY0NDU5LCAwLjYzNTkxNCwgMC43MzgwMjkiLCBcCi0gICAgICAgICAgIjAuMjk1MTk3LCAwLjM2ODEsIDAuNDM5NDUsIDAuNDkwNjcsIDAuNTcyMjI0LCAwLjY0Mzg1OSwgMC43NDU5NDQiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzI2ODksIDAuMTc2MDk5LCAwLjMyMjc0OCwgMC40Mjg4NDQsIDAuNTk2NDYyLCAwLjc0NTE3LCAwLjk1NDU0NiIsIFwKLSAgICAgICAgICAiMC4wMzI2ODcsIDAuMTc2MDk1LCAwLjMyMjc3MSwgMC40Mjg4MzUsIDAuNTk2NTE1LCAwLjc0NTE2NywgMC45NTQ4NTciLCBcCi0gICAgICAgICAgIjAuMDMyNjg4LCAwLjE3NjA5NCwgMC4zMjI4MjksIDAuNDI4ODMxLCAwLjU5NzUyMSwgMC43NDUyNCwgMC45NTYxMDMiLCBcCi0gICAgICAgICAgIjAuMDMyNjU5LCAwLjE3NjEyNCwgMC4zMjI3MjEsIDAuNDI4ODM5LCAwLjU5NjcxNywgMC43NDQ4NDksIDAuOTU2MTY1IiwgXAotICAgICAgICAgICIwLjAzMjY5LCAwLjE3NjEyNiwgMC4zMjI5MTksIDAuNDI4ODM1LCAwLjU5NjY0LCAwLjc0Mzc3MiwgMC45NTYxNTEiLCBcCi0gICAgICAgICAgIjAuMDMyNjg3LCAwLjE3NjA5NSwgMC4zMjI3NzYsIDAuNDI4ODM0LCAwLjU5NjUyMSwgMC43NDUxNzMsIDAuOTU1MDU2IiwgXAotICAgICAgICAgICIwLjAzMjY4OCwgMC4xNzYwOTQsIDAuMzIyODAxLCAwLjQyODgyNywgMC41OTY0ODcsIDAuNzQ1MjA0LCAwLjk1NjA1MiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIzOTY0NiwgMC4zMTQ0MTUsIDAuMzg3OTA3LCAwLjQ0MDMzMSwgMC41MjQyNDcsIDAuNTk3Njc4LCAwLjcwMjU0MSIsIFwKLSAgICAgICAgICAiMC4yNDkzMDcsIDAuMzI0MDg5LCAwLjM5NzU1MywgMC40NTAwMTYsIDAuNTMzOTcsIDAuNjA3MzM1LCAwLjcxMjI4MiIsIFwKLSAgICAgICAgICAiMC4yNTk1NDQsIDAuMzM0Mjk2LCAwLjQwNzc1NSwgMC40NjAyMDksIDAuNTQ0MTMyLCAwLjYxNzU4MywgMC43MjI0MzMiLCBcCi0gICAgICAgICAgIjAuMjY3Nzc1LCAwLjM0MjU0NSwgMC40MTYwMzksIDAuNDY4NDYyLCAwLjU1MjQzLCAwLjYyNTc5MiwgMC43MzA3MTUiLCBcCi0gICAgICAgICAgIjAuMjc0NTMzLCAwLjM0OTM3MiwgMC40MjI4NTEsIDAuNDc1Mjg2LCAwLjU1OTE1NywgMC42MzI1NzQsIDAuNzM3NDM4IiwgXAotICAgICAgICAgICIwLjI4Mzc1OCwgMC4zNTg2MjEsIDAuNDMyMDgzLCAwLjQ4NDQ2OCwgMC41NjgzODIsIDAuNjQxODM1LCAwLjc0NjcwMyIsIFwKLSAgICAgICAgICAiMC4yOTA2MTIsIDAuMzY1NTEzLCAwLjQzODk5MSwgMC40OTE0MjcsIDAuNTc1NDA4LCAwLjY0ODc3OSwgMC43NTM2MzYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzI1NTYsIDAuMTc3ODA2LCAwLjMyNTUxOSwgMC40MzI4MjQsIDAuNjAyNTAxLCAwLjc1MjI0OSwgMC45NjMzNDMiLCBcCi0gICAgICAgICAgIjAuMDMyNTU4LCAwLjE3Nzc1OSwgMC4zMjU4MywgMC40MzI4MDMsIDAuNjAxNTIxLCAwLjc1MTg2NSwgMC45NjI2OSIsIFwKLSAgICAgICAgICAiMC4wMzI1NjcsIDAuMTc3ODI3LCAwLjMyNjQxMiwgMC40MzI4MjIsIDAuNjAyMTExLCAwLjc1MDI2MywgMC45NjUyMzQiLCBcCi0gICAgICAgICAgIjAuMDMyNTU3LCAwLjE3Nzc5OSwgMC4zMjU1MTMsIDAuNDMyODEyLCAwLjYwMTQ4NywgMC43NTIxMzcsIDAuOTYzMTgiLCBcCi0gICAgICAgICAgIjAuMDMyNTU2LCAwLjE3Nzc2OCwgMC4zMjU1ODcsIDAuNDMyNjgxLCAwLjYwMjExOSwgMC43NTIyMiwgMC45NjQ3MTMiLCBcCi0gICAgICAgICAgIjAuMDMyNTYyLCAwLjE3Nzc1NiwgMC4zMjU4MjQsIDAuNDMyNzY5LCAwLjYwMTk4NCwgMC43NTA1MTYsIDAuOTY1MTc5IiwgXAotICAgICAgICAgICIwLjAzMjU2MSwgMC4xNzc3NywgMC4zMjY0NjUsIDAuNDMyNzA4LCAwLjYwMTM4MywgMC43NTIyNjEsIDAuOTY1MTUzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTIwNDgsIDAuMDEyMTg2LCAwLjAxMjE4OCwgMC4wMTIxODIsIDAuMDEyMTc3LCAwLjAxMjE3NCwgMC4wMTIxNjkiLCBcCi0gICAgICAgICAgIjAuMDEyMDE4LCAwLjAxMjE1NiwgMC4wMTIxNTgsIDAuMDEyMTU1LCAwLjAxMjE1MSwgMC4wMTIxNDQsIDAuMDEyMTM4IiwgXAotICAgICAgICAgICIwLjAxMjAxOCwgMC4wMTIxNTUsIDAuMDEyMTU1LCAwLjAxMjE1MSwgMC4wMTIxNDYsIDAuMDEyMTQ0LCAwLjAxMjE0NCIsIFwKLSAgICAgICAgICAiMC4wMTIwMTgsIDAuMDEyMTU1LCAwLjAxMjE1NiwgMC4wMTIxNTUsIDAuMDEyMTQ2LCAwLjAxMjE0MywgMC4wMTIxNCIsIFwKLSAgICAgICAgICAiMC4wMTIwMzEsIDAuMDEyMTY4LCAwLjAxMjE2OCwgMC4wMTIxNjksIDAuMDEyMTU5LCAwLjAxMjE1NiwgMC4wMTIxNTMiLCBcCi0gICAgICAgICAgIjAuMDEyMDU1LCAwLjAxMjE5MiwgMC4wMTIxOTIsIDAuMDEyMTg4LCAwLjAxMjE4NCwgMC4wMTIxODMsIDAuMDEyMTc1IiwgXAotICAgICAgICAgICIwLjAxMjA3NCwgMC4wMTIyMTQsIDAuMDEyMjExLCAwLjAxMjIxLCAwLjAxMjIwMywgMC4wMTIyMDMsIDAuMDEyMTk5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTMwNzUsIDAuMDEzMjY1LCAwLjAxMzI3OCwgMC4wMTMyNzksIDAuMDEzMjc5LCAwLjAxMzI3OCwgMC4wMTMyNzgiLCBcCi0gICAgICAgICAgIjAuMDEzMDQ3LCAwLjAxMzIzNywgMC4wMTMyNSwgMC4wMTMyNTEsIDAuMDEzMjUxLCAwLjAxMzI1MSwgMC4wMTMyNSIsIFwKLSAgICAgICAgICAiMC4wMTMwNDYsIDAuMDEzMjM2LCAwLjAxMzI0OSwgMC4wMTMyNTEsIDAuMDEzMjUxLCAwLjAxMzI1LCAwLjAxMzI1IiwgXAotICAgICAgICAgICIwLjAxMzA0NCwgMC4wMTMyMzUsIDAuMDEzMjQ3LCAwLjAxMzI0OSwgMC4wMTMyNDgsIDAuMDEzMjQ4LCAwLjAxMzI0NyIsIFwKLSAgICAgICAgICAiMC4wMTMwNTUsIDAuMDEzMjQ1LCAwLjAxMzI1NywgMC4wMTMyNTksIDAuMDEzMjU5LCAwLjAxMzI1OSwgMC4wMTMyNTgiLCBcCi0gICAgICAgICAgIjAuMDEzMDc2LCAwLjAxMzI2NiwgMC4wMTMyNzksIDAuMDEzMjgsIDAuMDEzMjgxLCAwLjAxMzI4LCAwLjAxMzI3OSIsIFwKLSAgICAgICAgICAiMC4wMTMwOTQsIDAuMDEzMjg3LCAwLjAxMzI5OSwgMC4wMTMzLCAwLjAxMzMsIDAuMDEzMywgMC4wMTMyOTkiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogRURGRkhRWDIgKgotICogLS0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKEVERkZIUVgyKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuNDY3MjM0OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIGZmIChOMzAsUUJJTlQpIHsKLSAgICBuZXh0X3N0YXRlIDogIigoRSBEKSArICghRSAoISghTjMwKSkpKSI7Ci0gICAgY2xvY2tlZF9vbiA6ICJDSyI7Ci0gIH0KLSAgcGluKENLKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2NTc4Njk7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjU3NjY4OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDY1Nzg2OTsKLSAgICBjbG9jayA6IHRydWU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzNjQyLCAwLjAwMzYxOCwgMC4wMDM2MDcsIDAuMDAzNjA4LCAwLjAwMzYyLCAwLjAwMzY0MywgMC4wMDM2NjQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDY4ODEsIDAuMDA2ODU5LCAwLjAwNjg2LCAwLjAwNjg3MSwgMC4wMDY4OTcsIDAuMDA2OTUyLCAwLjAwNjk5NiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQmRSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fRV9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMTI3NzI0LCAwLjEzNzkwOCwgMC4xNTA1NjIsIDAuMTYyMTY4LCAwLjE3MjQ1MiwgMC4xODY1MTcsIDAuMTk3Mjk4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wODkyOTcsIDAuMDk5MDI4LCAwLjExMTMzMSwgMC4xMjI1NzgsIDAuMTMyMTE1LCAwLjE0NTAyMiwgMC4xNTQ4NDciKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEQpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDgzOTk4NTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA4MzY4ODM7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwODM5OTg1OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzQ2LCAwLjAwMzQyOCwgMC4wMDM0MTEsIDAuMDAzNDAyLCAwLjAwMzM5NywgMC4wMDM0MDEsIDAuMDAzNDExIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA2OTE4LCAwLjAwNjksIDAuMDA2ODg5LCAwLjAwNjg4NSwgMC4wMDY4ODQsIDAuMDA2ODg1LCAwLjAwNjg5MiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJFIjsKLSAgICAgIHNkZl9jb25kIDogIkUgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDUsIC0wLjA0NSwgLTAuMDM4NzUsIC0wLjAzMjUsIC0wLjAyNjI1LCAtMC4wMTYyNSwgLTAuMDEzNzUiLCBcCi0gICAgICAgICAgIi0wLjA2MTI1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzNzUsIC0wLjAyNzUsIC0wLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDczNzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjA0LCAtMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDgsIC0wLjA3NSwgLTAuMDY4NzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNTI1LCAtMC4wNDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDkyNSwgLTAuMDg3NSwgLTAuMDc1LCAtMC4wNzUsIC0wLjA2ODc1LCAtMC4wNTg3NSwgLTAuMDU2MjUiLCBcCi0gICAgICAgICAgIi0wLjEwODc1LCAtMC4wOTc1LCAtMC4wOTEyNSwgLTAuMDg1LCAtMC4wODUsIC0wLjA3NSwgLTAuMDcyNSIsIFwKLSAgICAgICAgICAiLTAuMTE3NSwgLTAuMTEyNSwgLTAuMTA2MjUsIC0wLjEsIC0wLjA5Mzc1LCAtMC4wOSwgLTAuMDgxMjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMTI1LCAtMC4wMDEyNSwgMC4wMDUsIDAuMDE3NSwgMC4wMjM3NSwgMC4wMzM3NSwgMC4wNDI1IiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDEyNSwgMCwgMC4wMDYyNSwgMC4wMTg3NSwgMC4wMjg3NSwgMC4wMzc1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDE4NzUsIC0wLjAxMjUsIDAsIDAuMDA2MjUsIDAuMDE2MjUsIDAuMDI1IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIDAsIDAuMDEsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIDAuMDAzNzUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDU4NzUsIC0wLjA0NzUsIC0wLjA0MTI1LCAtMC4wMjg3NSwgLTAuMDIyNSwgLTAuMDEyNSwgLTAuMDAzNzUiLCBcCi0gICAgICAgICAgIi0wLjA2NzUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAyMTI1LCAtMC4wMTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJFIjsKLSAgICAgIHNkZl9jb25kIDogIkUgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDgxMjUsIDAuMDcsIDAuMDYzNzUsIDAuMDU3NSwgMC4wNTEyNSwgMC4wNDEyNSwgMC4wMzg3NSIsIFwKLSAgICAgICAgICAiMC4wOTI1LCAwLjA4MTI1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDUyNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4xMDUsIDAuMDkzNzUsIDAuMDgxMjUsIDAuMDc1LCAwLjA2ODc1LCAwLjA1ODc1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICIwLjExMTI1LCAwLjEsIDAuMDkzNzUsIDAuMDg3NSwgMC4wODEyNSwgMC4wNzEyNSwgMC4wNjg3NSIsIFwKLSAgICAgICAgICAiMC4xMjM3NSwgMC4xMTI1LCAwLjEwNjI1LCAwLjA5Mzc1LCAwLjA5Mzc1LCAwLjA4Mzc1LCAwLjA3NSIsIFwKLSAgICAgICAgICAiMC4xNCwgMC4xMjg3NSwgMC4xMTYyNSwgMC4xMSwgMC4xMDM3NSwgMC4xLCAwLjA5MTI1IiwgXAotICAgICAgICAgICIwLjE1NSwgMC4xNDM3NSwgMC4xMzEyNSwgMC4xMjUsIDAuMTE4NzUsIDAuMTA4NzUsIDAuMTA2MjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTYyNSwgMC4wNDUsIDAuMDMyNSwgMC4wMjYyNSwgMC4wMTM3NSwgLTAuMDAyNSwgLTAuMDExMjUiLCBcCi0gICAgICAgICAgIjAuMDY3NSwgMC4wNTYyNSwgMC4wNDM3NSwgMC4wMzEyNSwgMC4wMjUsIDAuMDA4NzUsIDAiLCBcCi0gICAgICAgICAgIjAuMDczNzUsIDAuMDY4NzUsIDAuMDU2MjUsIDAuMDQzNzUsIDAuMDMxMjUsIDAuMDIxMjUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMDg2MjUsIDAuMDc1LCAwLjA2MjUsIDAuMDUsIDAuMDQzNzUsIDAuMDI3NSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4wOTg3NSwgMC4wODc1LCAwLjA3NSwgMC4wNjI1LCAwLjA1LCAwLjA0LCAwLjAyNSIsIFwKLSAgICAgICAgICAiMC4xMDg3NSwgMC4wOTc1LCAwLjA4NSwgMC4wNzI1LCAwLjA2NjI1LCAwLjA1LCAwLjA0MTI1IiwgXAotICAgICAgICAgICIwLjEyMzc1LCAwLjExMjUsIDAuMSwgMC4wODc1LCAwLjA3NSwgMC4wNjUsIDAuMDUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEUpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTc2MTc3OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTc2MTc3OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTc2MTEyOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNjM2OSwgMC4wMDYzNTYsIDAuMDA2MzYsIDAuMDA2MzYxLCAwLjAwNjM3LCAwLjAwNjM5NCwgMC4wMDY0MjIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDczNjIsIDAuMDA3MzEzLCAwLjAwNzI5NSwgMC4wMDczMDEsIDAuMDA3MzEyLCAwLjAwNzM2LCAwLjAwNzQwMiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRCI7Ci0gICAgICBzZGZfY29uZCA6ICJEID09IDEnYjAiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjA1LCAtMC4wMzg3NSwgLTAuMDI2MjUsIC0wLjAyLCAtMC4wMDc1LCAwLjAwMjUsIDAuMDExMjUiLCBcCi0gICAgICAgICAgIi0wLjA2MTI1LCAtMC4wNSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAxODc1LCAtMC4wMDg3NSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDczNzUsIC0wLjA2MjUsIC0wLjA1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDE1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDgsIC0wLjA3NSwgLTAuMDYyNSwgLTAuMDUsIC0wLjAzNzUsIC0wLjAyNzUsIC0wLjAxODc1IiwgXAotICAgICAgICAgICItMC4wOTI1LCAtMC4wODEyNSwgLTAuMDY4NzUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDMzNzUsIC0wLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMTAyNSwgLTAuMDkxMjUsIC0wLjA3ODc1LCAtMC4wNjYyNSwgLTAuMDYsIC0wLjA0Mzc1LCAtMC4wMzUiLCBcCi0gICAgICAgICAgIi0wLjExMTI1LCAtMC4xLCAtMC4wODc1LCAtMC4wNzUsIC0wLjA2ODc1LCAtMC4wNTI1LCAtMC4wNDM3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2MjUsIDAuMDExMjUsIDAuMDIzNzUsIDAuMDMsIDAuMDQyNSwgMC4wNTI1LCAwLjA2MTI1IiwgXAotICAgICAgICAgICItMC4wMDUsIDAsIDAuMDEyNSwgMC4wMjUsIDAuMDMxMjUsIDAuMDQxMjUsIDAuMDUiLCBcCi0gICAgICAgICAgIi0wLjAxNzUsIC0wLjAxMjUsIDAsIDAuMDEyNSwgMC4wMTg3NSwgMC4wMjg3NSwgMC4wMzc1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDE4NzUsIC0wLjAxMjUsIDAsIDAuMDA2MjUsIDAuMDE2MjUsIDAuMDI1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDMxMjUsIC0wLjAxODc1LCAtMC4wMDYyNSwgMCwgMC4wMSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDQ2MjUsIC0wLjA0MTI1LCAtMC4wMjg3NSwgLTAuMDE2MjUsIC0wLjAxLCAwLCAwLjAwODc1IiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMDg3NSwgMCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJEIjsKLSAgICAgIHNkZl9jb25kIDogIkQgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDUsIC0wLjA0NSwgLTAuMDM4NzUsIC0wLjAzMjUsIC0wLjAyNjI1LCAtMC4wMTYyNSwgLTAuMDEzNzUiLCBcCi0gICAgICAgICAgIi0wLjA2MTI1LCAtMC4wNTYyNSwgLTAuMDQzNzUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMjc1LCAtMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjA3Mzc1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjA1LCAtMC4wNCwgLTAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjA4NjI1LCAtMC4wNzUsIC0wLjA2ODc1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDUyNSwgLTAuMDQzNzUiLCBcCi0gICAgICAgICAgIi0wLjA5ODc1LCAtMC4wODc1LCAtMC4wODEyNSwgLTAuMDc1LCAtMC4wNjg3NSwgLTAuMDY1LCAtMC4wNTYyNSIsIFwKLSAgICAgICAgICAiLTAuMTE1LCAtMC4xMDM3NSwgLTAuMDk3NSwgLTAuMDkxMjUsIC0wLjA4NSwgLTAuMDgxMjUsIC0wLjA3MjUiLCBcCi0gICAgICAgICAgIi0wLjEyMzc1LCAtMC4xMTg3NSwgLTAuMTEyNSwgLTAuMTA2MjUsIC0wLjEsIC0wLjA5LCAtMC4wODc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTI1LCAwLjAyMzc1LCAwLjAzNjI1LCAwLjA0ODc1LCAwLjA1NSwgMC4wNjUsIDAuMDczNzUiLCBcCi0gICAgICAgICAgIjAuMDA3NSwgMC4wMTI1LCAwLjAyNSwgMC4wMzc1LCAwLjA0Mzc1LCAwLjA2LCAwLjA2ODc1IiwgXAotICAgICAgICAgICItMC4wMDUsIDAuMDA2MjUsIDAuMDEyNSwgMC4wMjUsIDAuMDMxMjUsIDAuMDQ3NSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiLTAuMDExMjUsIC0wLjAwNjI1LCAwLjAwNjI1LCAwLjAxODc1LCAwLjAyNSwgMC4wMzUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIi0wLjAxNzUsIC0wLjAxMjUsIDAsIDAuMDEyNSwgMC4wMTg3NSwgMC4wMjg3NSwgMC4wMzc1IiwgXAotICAgICAgICAgICItMC4wMzM3NSwgLTAuMDIyNSwgLTAuMDEsIC0wLjAwMzc1LCAwLjAwMjUsIDAuMDE4NzUsIDAuMDI3NSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAuMDEsIDAuMDE4NzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEIjsKLSAgICAgIHNkZl9jb25kIDogIkQgPT0gMSdiMCI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY4NzUsIDAuMDU3NSwgMC4wNDUsIDAuMDMyNSwgMC4wMjYyNSwgMC4wMSwgMC4wMDEyNSIsIFwKLSAgICAgICAgICAiMC4wOCwgMC4wNjg3NSwgMC4wNTYyNSwgMC4wNDM3NSwgMC4wMzEyNSwgMC4wMjEyNSwgMC4wMTI1IiwgXAotICAgICAgICAgICIwLjA5MjUsIDAuMDgxMjUsIDAuMDY4NzUsIDAuMDU2MjUsIDAuMDQzNzUsIDAuMDMzNzUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMDk4NzUsIDAuMDg3NSwgMC4wNzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNCwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4xMTEyNSwgMC4xLCAwLjA4NzUsIDAuMDc1LCAwLjA2MjUsIDAuMDUyNSwgMC4wMzc1IiwgXAotICAgICAgICAgICIwLjEyMTI1LCAwLjExLCAwLjA5NzUsIDAuMDg1LCAwLjA3MjUsIDAuMDYyNSwgMC4wNDc1IiwgXAotICAgICAgICAgICIwLjEzLCAwLjExODc1LCAwLjEwNjI1LCAwLjA5Mzc1LCAwLjA4MTI1LCAwLjA3MTI1LCAwLjA1NjI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU2MjUsIDAuMDQ1LCAwLjAzODc1LCAwLjAzMjUsIDAuMDI2MjUsIDAuMDIyNSwgMC4wMTM3NSIsIFwKLSAgICAgICAgICAiMC4wNjEyNSwgMC4wNTYyNSwgMC4wNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzMzc1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiMC4wNzM3NSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1LCAwLjA0NjI1LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIjAuMDg2MjUsIDAuMDgxMjUsIDAuMDc1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDUyNSwgMC4wNSIsIFwKLSAgICAgICAgICAiMC4wOTg3NSwgMC4wODc1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIjAuMTA4NzUsIDAuMDk3NSwgMC4wOTEyNSwgMC4wODUsIDAuMDg1LCAwLjA3NSwgMC4wNzI1IiwgXAotICAgICAgICAgICIwLjExNzUsIDAuMTA2MjUsIDAuMSwgMC4wOTM3NSwgMC4wOTM3NSwgMC4wODM3NSwgMC4wNzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIkQiOwotICAgICAgc2RmX2NvbmQgOiAiRCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzUsIDAuMDYzNzUsIDAuMDU3NSwgMC4wNTEyNSwgMC4wNDUsIDAuMDM1LCAwLjAzMjUiLCBcCi0gICAgICAgICAgIjAuMDg2MjUsIDAuMDc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDUsIDAuMDQ2MjUsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiMC4wOTg3NSwgMC4wODc1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1ODc1LCAwLjA1IiwgXAotICAgICAgICAgICIwLjExMTI1LCAwLjEsIDAuMDg3NSwgMC4wODEyNSwgMC4wNzUsIDAuMDY1LCAwLjA2MjUiLCBcCi0gICAgICAgICAgIjAuMTE3NSwgMC4xMTI1LCAwLjEsIDAuMDkzNzUsIDAuMDg3NSwgMC4wNzc1LCAwLjA3NSIsIFwKLSAgICAgICAgICAiMC4xNCwgMC4xMjg3NSwgMC4xMTYyNSwgMC4xMSwgMC4xMDM3NSwgMC4wOTM3NSwgMC4wOTEyNSIsIFwKLSAgICAgICAgICAiMC4xNDg3NSwgMC4xNDM3NSwgMC4xMzEyNSwgMC4xMjUsIDAuMTE4NzUsIDAuMTA4NzUsIDAuMTA2MjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjUsIDAuMDEzNzUsIDAuMDAxMjUsIC0wLjAxMTI1LCAtMC4wMTc1LCAtMC4wMjc1LCAtMC4wMzYyNSIsIFwKLSAgICAgICAgICAiMC4wMzYyNSwgMC4wMjUsIDAuMDEyNSwgMCwgLTAuMDA2MjUsIC0wLjAyMjUsIC0wLjAzMTI1IiwgXAotICAgICAgICAgICIwLjA0MjUsIDAuMDM3NSwgMC4wMjUsIDAuMDEyNSwgMC4wMDYyNSwgLTAuMDEsIC0wLjAxODc1IiwgXAotICAgICAgICAgICIwLjA1NSwgMC4wNDM3NSwgMC4wMzEyNSwgMC4wMjUsIDAuMDEyNSwgMC4wMDI1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiMC4wNjc1LCAwLjA1NjI1LCAwLjA0Mzc1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMTUsIDAiLCBcCi0gICAgICAgICAgIjAuMDgzNzUsIDAuMDcyNSwgMC4wNiwgMC4wNDc1LCAwLjA0MTI1LCAwLjAyNSwgMC4wMTYyNSIsIFwKLSAgICAgICAgICAiMC4wOTI1LCAwLjA4MTI1LCAwLjA2ODc1LCAwLjA1NjI1LCAwLjA1LCAwLjA0LCAwLjAyNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjUxNTgyMzsKLSAgICBmdW5jdGlvbiA6ICJOMzAiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5vbl91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcmlzaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExMDM4OSwgMC4yMTMzODksIDAuMjk1NjE1LCAwLjM5ODI4NCwgMC41MDExMzIsIDAuNjA0MDE0LCAwLjcwNjczIiwgXAotICAgICAgICAgICIwLjEyMDQ4OCwgMC4yMjM0OTEsIDAuMzA1NzE5LCAwLjQwODQ5NywgMC41MTEzMywgMC42MTM5OTIsIDAuNzE2ODI4IiwgXAotICAgICAgICAgICIwLjEzMzA4MywgMC4yMzYwODYsIDAuMzE4MzE5LCAwLjQyMTEwMywgMC41MjM5MTEsIDAuNjI2NTkzLCAwLjcyOTQ0OSIsIFwKLSAgICAgICAgICAiMC4xNDQ2NCwgMC4yNDc2NDUsIDAuMzI5ODcyLCAwLjQzMjY2MywgMC41MzU0OCwgMC42MzgyMjksIDAuNzQwOTM1IiwgXAotICAgICAgICAgICIwLjE1NDY3MSwgMC4yNTc2ODQsIDAuMzM5OTEyLCAwLjQ0MjY4OCwgMC41NDU1MTYsIDAuNjQ4MjU1LCAwLjc1MDk3MyIsIFwKLSAgICAgICAgICAiMC4xNjg2NjEsIDAuMjcxNjY2LCAwLjM1Mzg5MywgMC40NTY2NzIsIDAuNTU5NDk5LCAwLjY2MjIwNCwgMC43NjUwNDEiLCBcCi0gICAgICAgICAgIjAuMTc5MzQ1LCAwLjI4MjM0MSwgMC4zNjQ1NjYsIDAuNDY3MzM5LCAwLjU3MDE3NSwgMC42NzI4NzgsIDAuNzc1NjMzIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1MTUzNCwgMC4yNjI1NTksIDAuNDMzOTUyLCAwLjY0NzAwMywgMC44NjA1NDQsIDEuMDczNzksIDEuMjg5NTgiLCBcCi0gICAgICAgICAgIjAuMDUxNTMzLCAwLjI2MjU1MywgMC40MzMxMDgsIDAuNjQ2Mzk2LCAwLjg2MDIwOSwgMS4wNzU1MywgMS4yODk1NiIsIFwKLSAgICAgICAgICAiMC4wNTE1MzYsIDAuMjYyNTQ0LCAwLjQzMzk1OCwgMC42NDY2MzQsIDAuODYxNzcyLCAxLjA3NDUyLCAxLjI4OTYyIiwgXAotICAgICAgICAgICIwLjA1MTUyOCwgMC4yNjI1MjYsIDAuNDMzOTQ5LCAwLjY0NjcyNiwgMC44NjAyMDgsIDEuMDc1NjcsIDEuMjg3ODYiLCBcCi0gICAgICAgICAgIjAuMDUxNTM2LCAwLjI2Mjg5MSwgMC40MzMwNjEsIDAuNjQ2NTI1LCAwLjg2MDAyNywgMS4wNzU2NSwgMS4yODk0NyIsIFwKLSAgICAgICAgICAiMC4wNTE1NTIsIDAuMjYyNTYzLCAwLjQzMzkyNywgMC42NDY1NTIsIDAuODYwMTk1LCAxLjA3NTU1LCAxLjI4NzI4IiwgXAotICAgICAgICAgICIwLjA1MTU0NSwgMC4yNjI4NjksIDAuNDMzODQ0LCAwLjY0NjkyNywgMC44NjAyMTIsIDEuMDczOTUsIDEuMjg3NTciKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTI3NzI0LCAwLjIzMTU2NywgMC4zMTQzNjcsIDAuNDE3ODk5LCAwLjUyMTM1NywgMC42MjQ4NjYsIDAuNzI4MzYzIiwgXAotICAgICAgICAgICIwLjEzNzkwOCwgMC4yNDE3NTgsIDAuMzI0NTUyLCAwLjQyODA0OCwgMC41MzE1MTIsIDAuNjM1MDQsIDAuNzM4NTUyIiwgXAotICAgICAgICAgICIwLjE1MDU2MiwgMC4yNTQ0MDMsIDAuMzM3MjE0LCAwLjQ0MDcxMiwgMC41NDQyMTQsIDAuNjQ3Njk3LCAwLjc1MTE1MiIsIFwKLSAgICAgICAgICAiMC4xNjIxNjgsIDAuMjY2MDEzLCAwLjM0ODgxNywgMC40NTIzMTksIDAuNTU1ODI2LCAwLjY1OTI5OCwgMC43NjI3MjEiLCBcCi0gICAgICAgICAgIjAuMTcyNDUyLCAwLjI3NjMwMywgMC4zNTkxMjksIDAuNDYyNjEyLCAwLjU2NjA4NCwgMC42Njk1OTIsIDAuNzczMDc1IiwgXAotICAgICAgICAgICIwLjE4NjUxNywgMC4yOTAzNTMsIDAuMzczMTU1LCAwLjQ3NjY2LCAwLjU4MDE2MiwgMC42ODM2MzcsIDAuNzg3MDciLCBcCi0gICAgICAgICAgIjAuMTk3Mjk4LCAwLjMwMTE0OCwgMC4zODM5MzksIDAuNDg3NDY2LCAwLjU5MDk0LCAwLjY5NDM5OSwgMC43OTc5MSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTA0ODgsIDAuMjU3NzgsIDAuNDI2MDA1LCAwLjYzNDM4NiwgMC44NDY0MTIsIDEuMDU2NSwgMS4yNjMwMyIsIFwKLSAgICAgICAgICAiMC4wNTA1MjEsIDAuMjU3NzMsIDAuNDI1OTQ3LCAwLjYzNjI3OCwgMC44NDYzMTUsIDEuMDU2NTIsIDEuMjYzNDkiLCBcCi0gICAgICAgICAgIjAuMDUwNTE5LCAwLjI1ODA4MywgMC40MjYxMzEsIDAuNjM0Nzk5LCAwLjg0NjM2NywgMS4wNTY1MywgMS4yNjY2OSIsIFwKLSAgICAgICAgICAiMC4wNTA1MTUsIDAuMjU3NjYsIDAuNDI2MTA1LCAwLjYzNDcwNywgMC44NDYzNTQsIDEuMDU2NTYsIDEuMjY2NDMiLCBcCi0gICAgICAgICAgIjAuMDUwNTIyLCAwLjI1ODIyOCwgMC40MjQ4OTYsIDAuNjM2MjI1LCAwLjg0NjM5MSwgMS4wNTY0OSwgMS4yNjY3MSIsIFwKLSAgICAgICAgICAiMC4wNTA1MjEsIDAuMjU3NjY5LCAwLjQyNjA5LCAwLjYzNDgxNSwgMC44NDYzNjYsIDEuMDU2NTYsIDEuMjY2NDgiLCBcCi0gICAgICAgICAgIjAuMDUwNTE4LCAwLjI1NzY1NywgMC40MjU5ODUsIDAuNjM0NDcsIDAuODQ2MzYxLCAxLjA1NjUyLCAxLjI2Njc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwODY4NCwgMC4wMDg3MjIsIDAuMDA4NzI2LCAwLjAwODcyOSwgMC4wMDg3MzEsIDAuMDA4NzMxLCAwLjAwODczMSIsIFwKLSAgICAgICAgICAiMC4wMDg2NTMsIDAuMDA4NjkxLCAwLjAwODY5NSwgMC4wMDg2OTcsIDAuMDA4Njk4LCAwLjAwODY5OSwgMC4wMDg3MDEiLCBcCi0gICAgICAgICAgIjAuMDA4NjM2LCAwLjAwODY3MywgMC4wMDg2NzcsIDAuMDA4NjgsIDAuMDA4NjgxLCAwLjAwODY4MiwgMC4wMDg2ODIiLCBcCi0gICAgICAgICAgIjAuMDA4NjM4LCAwLjAwODY3NSwgMC4wMDg2OCwgMC4wMDg2ODEsIDAuMDA4NjgzLCAwLjAwODY4NCwgMC4wMDg2ODQiLCBcCi0gICAgICAgICAgIjAuMDA4NjQ2LCAwLjAwODY4NSwgMC4wMDg2ODksIDAuMDA4NjkyLCAwLjAwODY5MywgMC4wMDg2OTQsIDAuMDA4Njk2IiwgXAotICAgICAgICAgICIwLjAwODY3NCwgMC4wMDg3MTMsIDAuMDA4NzE4LCAwLjAwODcyLCAwLjAwODcyMSwgMC4wMDg3MjIsIDAuMDA4NzIyIiwgXAotICAgICAgICAgICIwLjAwODcsIDAuMDA4NzM4LCAwLjAwODc0MiwgMC4wMDg3NDUsIDAuMDA4NzQ3LCAwLjAwODc0NywgMC4wMDg3NDciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDg5NjcsIDAuMDA5MDE3LCAwLjAwOTAyMSwgMC4wMDkwMjMsIDAuMDA5MDI0LCAwLjAwOTAyNSwgMC4wMDkwMjUiLCBcCi0gICAgICAgICAgIjAuMDA4OTQxLCAwLjAwODk5MSwgMC4wMDg5OTUsIDAuMDA4OTk3LCAwLjAwODk5OCwgMC4wMDg5OTksIDAuMDA4OTk5IiwgXAotICAgICAgICAgICIwLjAwODk0NiwgMC4wMDg5OTYsIDAuMDA5LCAwLjAwOTAwMiwgMC4wMDkwMDIsIDAuMDA5MDAzLCAwLjAwOTAwMyIsIFwKLSAgICAgICAgICAiMC4wMDg5NjcsIDAuMDA5MDE4LCAwLjAwOTAyMiwgMC4wMDkwMjQsIDAuMDA5MDI1LCAwLjAwOTAyNSwgMC4wMDkwMjYiLCBcCi0gICAgICAgICAgIjAuMDA5MDA2LCAwLjAwOTA1NSwgMC4wMDkwNTksIDAuMDA5MDYxLCAwLjAwOTA2MiwgMC4wMDkwNjIsIDAuMDA5MDYzIiwgXAotICAgICAgICAgICIwLjAwOTA1NSwgMC4wMDkxMDYsIDAuMDA5MTEsIDAuMDA5MTExLCAwLjAwOTExMiwgMC4wMDkxMTIsIDAuMDA5MTEzIiwgXAotICAgICAgICAgICIwLjAwOTA5NywgMC4wMDkxNSwgMC4wMDkxNTQsIDAuMDA5MTU1LCAwLjAwOTE1NiwgMC4wMDkxNTYsIDAuMDA5MTU2Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IEVERkZUUlgxICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChFREZGVFJYMSkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjUwMDc4MjsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBmZiAoTjMwLFFCSU5UKSB7Ci0gICAgbmV4dF9zdGF0ZSA6ICIoKCghKCghRCkgRSkpICghKCghRSkgKCFOMzApKSkpIFJOKSI7Ci0gICAgY2xvY2tlZF9vbiA6ICJDSyI7Ci0gIH0KLSAgcGluKENLKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2MTcxODI7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjE3MTgyOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDYxNzE3NDsKLSAgICBjbG9jayA6IHRydWU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyNTM4LCAwLjAwMjUxNCwgMC4wMDI1MDEsIDAuMDAyNTAzLCAwLjAwMjUxNywgMC4wMDI1MzUsIDAuMDAyNTU3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA2ODA2LCAwLjAwNjc4NSwgMC4wMDY3NzgsIDAuMDA2NzgyLCAwLjAwNjc4NywgMC4wMDY4MTcsIDAuMDA2ODI0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRCYhRSYhUk4iOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX0VfRVFfMF9BTl9STl9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMTcyMjIxLCAwLjE4MjQzMSwgMC4xOTUxOTMsIDAuMjA3NjMzLCAwLjIxOTAzNCwgMC4yMzQ3NDUsIDAuMjQ2ODk0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4xMDM2NTksIDAuMTEzNTIsIDAuMTI1OTI4LCAwLjEzNzc3NiwgMC4xNDgxMTUsIDAuMTYyNTE3LCAwLjE3MzQ2NyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNTg0NjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA1ODQzNzM7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNTg0NjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDU0MzYsIDAuMDA1NDAzLCAwLjAwNTM5MiwgMC4wMDUzOTcsIDAuMDA1NDA2LCAwLjAwNTQyOSwgMC4wMDU0NSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNDgzMSwgMC4wMDQ4MDYsIDAuMDA0Nzk4LCAwLjAwNDgwMywgMC4wMDQ4MTIsIDAuMDA0ODM3LCAwLjAwNDg1NyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJFJlJOIjsKLSAgICAgIHNkZl9jb25kIDogIkVfRVFfMV9BTl9STl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjA4MTI1LCAtMC4wNzYyNSwgLTAuMDYzNzUsIC0wLjA1NzUsIC0wLjA1MTI1LCAtMC4wNDc1LCAtMC4wMzg3NSIsIFwKLSAgICAgICAgICAiLTAuMDkyNSwgLTAuMDg3NSwgLTAuMDc1LCAtMC4wNjg3NSwgLTAuMDYyNSwgLTAuMDU4NzUsIC0wLjA1IiwgXAotICAgICAgICAgICItMC4xMDUsIC0wLjA5Mzc1LCAtMC4wODc1LCAtMC4wODEyNSwgLTAuMDc1LCAtMC4wNjUsIC0wLjA2MjUiLCBcCi0gICAgICAgICAgIi0wLjExMTI1LCAtMC4xMDYyNSwgLTAuMDkzNzUsIC0wLjA4NzUsIC0wLjA4MTI1LCAtMC4wNzc1LCAtMC4wNjg3NSIsIFwKLSAgICAgICAgICAiLTAuMTIzNzUsIC0wLjExMjUsIC0wLjEwNjI1LCAtMC4wOTM3NSwgLTAuMDkzNzUsIC0wLjA4Mzc1LCAtMC4wNzUiLCBcCi0gICAgICAgICAgIi0wLjEzMzc1LCAtMC4xMjI1LCAtMC4xMTYyNSwgLTAuMTEsIC0wLjEwMzc1LCAtMC4wOTM3NSwgLTAuMDg1IiwgXAotICAgICAgICAgICItMC4xMzYyNSwgLTAuMTMxMjUsIC0wLjExODc1LCAtMC4xMTI1LCAtMC4xMDYyNSwgLTAuMTAyNSwgLTAuMDkzNzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMzc1LCAtMC4wMjYyNSwgLTAuMDEzNzUsIC0wLjAwMTI1LCAwLjAwNSwgMC4wMjEyNSwgMC4wMyIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjAzNzUsIC0wLjAyNSwgLTAuMDEyNSwgMCwgMC4wMSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNSwgLTAuMDM3NSwgLTAuMDI1LCAtMC4wMTI1LCAwLjAwMzc1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjA2NzUsIC0wLjA1NjI1LCAtMC4wNDM3NSwgLTAuMDMxMjUsIC0wLjAxODc1LCAtMC4wMDg3NSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDczNzUsIC0wLjA2MjUsIC0wLjA1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAxNSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA4Mzc1LCAtMC4wNzI1LCAtMC4wNiwgLTAuMDQ3NSwgLTAuMDM1LCAtMC4wMjUsIC0wLjAxIiwgXAotICAgICAgICAgICItMC4wODYyNSwgLTAuMDgxMjUsIC0wLjA2ODc1LCAtMC4wNTYyNSwgLTAuMDQzNzUsIC0wLjAyNzUsIC0wLjAxODc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJFJlJOIjsKLSAgICAgIHNkZl9jb25kIDogIkVfRVFfMV9BTl9STl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEyNSwgMC4xMTM3NSwgMC4xMDEyNSwgMC4wOTUsIDAuMDg4NzUsIDAuMDc4NzUsIDAuMDciLCBcCi0gICAgICAgICAgIjAuMTMsIDAuMTI1LCAwLjExMjUsIDAuMTA2MjUsIDAuMSwgMC4wOSwgMC4wODEyNSIsIFwKLSAgICAgICAgICAiMC4xNDI1LCAwLjEzMTI1LCAwLjEyNSwgMC4xMTg3NSwgMC4xMDYyNSwgMC4xMDI1LCAwLjA5Mzc1IiwgXAotICAgICAgICAgICIwLjE1NSwgMC4xNDM3NSwgMC4xMzEyNSwgMC4xMjUsIDAuMTE4NzUsIDAuMTA4NzUsIDAuMSIsIFwKLSAgICAgICAgICAiMC4xNjEyNSwgMC4xNSwgMC4xMzc1LCAwLjEzMTI1LCAwLjEyNSwgMC4xMTUsIDAuMTA2MjUiLCBcCi0gICAgICAgICAgIjAuMTcxMjUsIDAuMTYsIDAuMTQ3NSwgMC4xNDEyNSwgMC4xMzUsIDAuMTI1LCAwLjExNjI1IiwgXAotICAgICAgICAgICIwLjE4LCAwLjE2ODc1LCAwLjE1NjI1LCAwLjE1LCAwLjE0Mzc1LCAwLjEzMzc1LCAwLjEyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3NSwgMC4wNjM3NSwgMC4wNTEyNSwgMC4wMzg3NSwgMC4wMjYyNSwgMC4wMSwgLTAuMDA1IiwgXAotICAgICAgICAgICIwLjA4NjI1LCAwLjA3NSwgMC4wNjI1LCAwLjA1LCAwLjAzNzUsIDAuMDIxMjUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMDkyNSwgMC4wODEyNSwgMC4wNjg3NSwgMC4wNTYyNSwgMC4wNDM3NSwgMC4wMjc1LCAwLjAxODc1IiwgXAotICAgICAgICAgICIwLjEwNSwgMC4wOTM3NSwgMC4wNzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNCwgMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMTExMjUsIDAuMSwgMC4wODc1LCAwLjA3NSwgMC4wNjI1LCAwLjA0NjI1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICIwLjEyMTI1LCAwLjExLCAwLjA5MTI1LCAwLjA3ODc1LCAwLjA2NjI1LCAwLjA1NjI1LCAwLjA0MTI1IiwgXAotICAgICAgICAgICIwLjEyMzc1LCAwLjExMjUsIDAuMSwgMC4wODc1LCAwLjA3NSwgMC4wNTg3NSwgMC4wNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxMjE4NTE7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxMjE4NTE7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxMjE3NDM7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA1OTIyLCAwLjAwNTg5NywgMC4wMDU4OTUsIDAuMDA1OTAyLCAwLjAwNTkxMywgMC4wMDU5MzcsIDAuMDA1OTYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDY4MzMsIDAuMDA2Nzk4LCAwLjAwNjgwMywgMC4wMDY4MDEsIDAuMDA2ODEzLCAwLjAwNjg0OSwgMC4wMDY4ODQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiUk4iOwotICAgICAgc2RmX2NvbmQgOiAiUk4gPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDQzNzUsIC0wLjAzMjUsIC0wLjAyLCAtMC4wMDc1LCAtMC4wMDEyNSwgMC4wMTUsIDAuMDMiLCBcCi0gICAgICAgICAgIi0wLjA1NSwgLTAuMDQzNzUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAuMDEsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjA2MTI1LCAtMC4wNTYyNSwgLTAuMDQzNzUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgLTAuMDAyNSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDczNzUsIC0wLjA2MjUsIC0wLjA1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAxNSwgMCIsIFwKLSAgICAgICAgICAiLTAuMDg2MjUsIC0wLjA3NSwgLTAuMDYyNSwgLTAuMDUsIC0wLjAzNzUsIC0wLjAyMTI1LCAtMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wOTYyNSwgLTAuMDg1LCAtMC4wNzI1LCAtMC4wNiwgLTAuMDUzNzUsIC0wLjAzNzUsIC0wLjAyMjUiLCBcCi0gICAgICAgICAgIi0wLjEwNSwgLTAuMSwgLTAuMDg3NSwgLTAuMDc1LCAtMC4wNjI1LCAtMC4wNDYyNSwgLTAuMDM3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjA1LCAtMC4wMzg3NSwgLTAuMDI2MjUsIC0wLjAxMzc1LCAtMC4wMDc1LCAwLjAwODc1LCAwLjAxNzUiLCBcCi0gICAgICAgICAgIi0wLjA2MTI1LCAtMC4wNSwgLTAuMDM3NSwgLTAuMDI1LCAtMC4wMTI1LCAtMC4wMDI1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjA2NzUsIC0wLjA2MjUsIC0wLjA1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAwODc1LCAwIiwgXAotICAgICAgICAgICItMC4wOCwgLTAuMDY4NzUsIC0wLjA1NjI1LCAtMC4wNDM3NSwgLTAuMDMxMjUsIC0wLjAyMTI1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDg2MjUsIC0wLjA3NSwgLTAuMDYyNSwgLTAuMDUsIC0wLjAzNzUsIC0wLjAyNzUsIC0wLjAxODc1IiwgXAotICAgICAgICAgICItMC4wOTYyNSwgLTAuMDg1LCAtMC4wNzI1LCAtMC4wNiwgLTAuMDQ3NSwgLTAuMDM3NSwgLTAuMDIyNSIsIFwKLSAgICAgICAgICAiLTAuMDk4NzUsIC0wLjA4NzUsIC0wLjA3NSwgLTAuMDY4NzUsIC0wLjA1NjI1LCAtMC4wNCwgLTAuMDMxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlJOIjsKLSAgICAgIHNkZl9jb25kIDogIlJOID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE0Mzc1LCAwLjEzMjUsIDAuMTIsIDAuMTEzNzUsIDAuMTA3NSwgMC4wOTc1LCAwLjA4ODc1IiwgXAotICAgICAgICAgICIwLjE1NSwgMC4xNDM3NSwgMC4xMzEyNSwgMC4xMjUsIDAuMTE4NzUsIDAuMTA4NzUsIDAuMSIsIFwKLSAgICAgICAgICAiMC4xNjEyNSwgMC4xNTYyNSwgMC4xNDM3NSwgMC4xMzc1LCAwLjEzMTI1LCAwLjEyMTI1LCAwLjExMjUiLCBcCi0gICAgICAgICAgIjAuMTczNzUsIDAuMTYyNSwgMC4xNSwgMC4xNDM3NSwgMC4xMzc1LCAwLjEyNzUsIDAuMTE4NzUiLCBcCi0gICAgICAgICAgIjAuMTgsIDAuMTY4NzUsIDAuMTYyNSwgMC4xNSwgMC4xNDM3NSwgMC4xMzM3NSwgMC4xMzEyNSIsIFwKLSAgICAgICAgICAiMC4xOSwgMC4xNzg3NSwgMC4xNzI1LCAwLjE2LCAwLjE1Mzc1LCAwLjE0Mzc1LCAwLjE0MTI1IiwgXAotICAgICAgICAgICIwLjE5ODc1LCAwLjE4NzUsIDAuMTc1LCAwLjE2ODc1LCAwLjE2MjUsIDAuMTUyNSwgMC4xNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4NzUsIDAuMDgyNSwgMC4wNywgMC4wNjM3NSwgMC4wNTc1LCAwLjA0NzUsIDAuMDQ1IiwgXAotICAgICAgICAgICIwLjA5ODc1LCAwLjA4NzUsIDAuMDgxMjUsIDAuMDc1LCAwLjA2ODc1LCAwLjA1ODc1LCAwLjA1IiwgXAotICAgICAgICAgICIwLjEwNSwgMC4xLCAwLjA4NzUsIDAuMDgxMjUsIDAuMDc1LCAwLjA3MTI1LCAwLjA2MjUiLCBcCi0gICAgICAgICAgIjAuMTE3NSwgMC4xMTI1LCAwLjEsIDAuMDkzNzUsIDAuMDg3NSwgMC4wNzc1LCAwLjA3NSIsIFwKLSAgICAgICAgICAiMC4xMywgMC4xMTg3NSwgMC4xMTI1LCAwLjEwNjI1LCAwLjEsIDAuMDksIDAuMDgxMjUiLCBcCi0gICAgICAgICAgIjAuMTQ2MjUsIDAuMTM1LCAwLjEyODc1LCAwLjEyMjUsIDAuMTE2MjUsIDAuMTA2MjUsIDAuMDk3NSIsIFwKLSAgICAgICAgICAiMC4xNjEyNSwgMC4xNSwgMC4xNDM3NSwgMC4xMzEyNSwgMC4xMjUsIDAuMTIxMjUsIDAuMTEyNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjI2MzI4MjsKLSAgICBmdW5jdGlvbiA6ICJOMzAiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5vbl91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcmlzaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE0NzI2OSwgMC4xNzE5MjksIDAuMzExMzYxLCAwLjQzMzg5NywgMC41OTgxOTYsIDAuOTI1NjcsIDEuMTMwNTgiLCBcCi0gICAgICAgICAgIjAuMTU3NCwgMC4xODE5NjgsIDAuMzIxNDc0LCAwLjQ0Mzc3MiwgMC42MDgwMDEsIDAuOTM1Nzg0LCAxLjE0MDciLCBcCi0gICAgICAgICAgIjAuMTcwMDg5LCAwLjE5NDc1OSwgMC4zMzQzMjIsIDAuNDU2NzA5LCAwLjYyMDY3MSwgMC45NDgwMzQsIDEuMTUzNCIsIFwKLSAgICAgICAgICAiMC4xODI1MjQsIDAuMjA3MTk5LCAwLjM0NjgxNiwgMC40NjkxNDYsIDAuNjMzMTA1LCAwLjk2MDQ4LCAxLjE2NTgzIiwgXAotICAgICAgICAgICIwLjE5Mzc0MiwgMC4yMTg0NDksIDAuMzU3ODIyLCAwLjQ4MDQxMiwgMC42NDQyLCAwLjk3MTk0MywgMS4xNzcwNCIsIFwKLSAgICAgICAgICAiMC4yMDkyNzksIDAuMjMzOTA2LCAwLjM3MzM3NiwgMC40OTU3OSwgMC42NjAwODIsIDAuOTg3Njk1LCAxLjE5MjA3IiwgXAotICAgICAgICAgICIwLjIyMTMxNiwgMC4yNDU5OTksIDAuMzg1NjAyLCAwLjUwODExOCwgMC42NzE5NDEsIDAuOTk5Mjc0LCAxLjIwNDc0Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5NDE2NSwgMC4xNDM2NDMsIDAuNDI5NjExLCAwLjY4NDIxNywgMS4wMjE3LCAxLjcwMjMyLCAyLjEyNjM3IiwgXAotICAgICAgICAgICIwLjA5NDgwMiwgMC4xNDQxNTgsIDAuNDMwNTUyLCAwLjY4MzczNywgMS4wMjM4OCwgMS43MDIzLCAyLjEyNjMxIiwgXAotICAgICAgICAgICIwLjA5NDE5NywgMC4xNDM3MDIsIDAuNDI5NjY2LCAwLjY4MzYyMiwgMS4wMjM4OCwgMS42OTkzNSwgMi4xMjYzNCIsIFwKLSAgICAgICAgICAiMC4wOTQyMzksIDAuMTQzNzE0LCAwLjQyOTQ4NCwgMC42ODM2MzEsIDEuMDIzODcsIDEuNzAwMTcsIDIuMTI2MzQiLCBcCi0gICAgICAgICAgIjAuMDk0ODE3LCAwLjE0MzcyNSwgMC40MzA1MzksIDAuNjg0MTk3LCAxLjAyMjUsIDEuNzAxOTksIDIuMTI2MyIsIFwKLSAgICAgICAgICAiMC4wOTQ4MjcsIDAuMTQzOTIxLCAwLjQzMDU0LCAwLjY4MzMwMywgMS4wMjE4NCwgMS43MDIyOCwgMi4xMjI2MSIsIFwKLSAgICAgICAgICAiMC4wOTQzMTYsIDAuMTQzNjczLCAwLjQyOTY3OSwgMC42ODQ2MzcsIDEuMDIzODQsIDEuNjk5MTYsIDIuMTI2NCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNjAxMzEsIDAuMTg1MTU0LCAwLjMyNTY0OCwgMC40NDkwMjQsIDAuNjE0MDY1LCAwLjk0Mzc5MywgMS4xNDk5MyIsIFwKLSAgICAgICAgICAiMC4xNzAzMjcsIDAuMTk1MTk1LCAwLjMzNTg0OSwgMC40NTk0MjMsIDAuNjI0Mjk5LCAwLjk1NDAzNCwgMS4xNjAwNyIsIFwKLSAgICAgICAgICAiMC4xODMwODUsIDAuMjA4MDcyLCAwLjM0ODUzMywgMC40NzIxNjMsIDAuNjM3MDIsIDAuOTY2ODA2LCAxLjE3MjkiLCBcCi0gICAgICAgICAgIjAuMTk1NTMxLCAwLjIyMDM5OSwgMC4zNjEwNTEsIDAuNDg0NjI1LCAwLjY0OTUsIDAuOTc5MjM3LCAxLjE4NTI4IiwgXAotICAgICAgICAgICIwLjIwNjkyNCwgMC4yMzE3OTUsIDAuMzcyNDQ0LCAwLjQ5NjAxMSwgMC42NjA5NzYsIDAuOTkwNjMxLCAxLjE5Njc1IiwgXAotICAgICAgICAgICIwLjIyMjY1MywgMC4yNDc1OSwgMC4zODgxNjYsIDAuNTExNjU2LCAwLjY3NjU4MywgMS4wMDYzNSwgMS4yMTI0NiIsIFwKLSAgICAgICAgICAiMC4yMzQ3NzIsIDAuMjU5NjQzLCAwLjQwMDE4MiwgMC41MjM1OCwgMC42ODg3MDQsIDEuMDE4NDgsIDEuMjI0NTgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDkyMTkxLCAwLjE0MTU5OCwgMC40MjEzNTgsIDAuNjcxNjM4LCAxLjAwNDI1LCAxLjY2OTA0LCAyLjA4NDgyIiwgXAotICAgICAgICAgICIwLjA5MzAyOCwgMC4xNDEzNjYsIDAuNDIyMTgsIDAuNjcxNjM5LCAxLjAwNDMsIDEuNjY5MSwgMi4wODQ4MyIsIFwKLSAgICAgICAgICAiMC4wOTMwNTcsIDAuMTQxMjI2LCAwLjQyMjI0NCwgMC42NzE2MTEsIDEuMDA0MDksIDEuNjY5MSwgMi4wODQ3OSIsIFwKLSAgICAgICAgICAiMC4wOTIxOTEsIDAuMTQxMzU3LCAwLjQyMjE5NCwgMC42NzE2NCwgMS4wMDQ0MSwgMS42NjkxLCAyLjA4NDgyIiwgXAotICAgICAgICAgICIwLjA5MjE5NiwgMC4xNDEzODYsIDAuNDIyMjI0LCAwLjY3MTYzLCAxLjAwNDM3LCAxLjY2OTEzLCAyLjA4NDg0IiwgXAotICAgICAgICAgICIwLjA5MzAyMywgMC4xNDEzNjgsIDAuNDIxMzcyLCAwLjY3MTY0OSwgMS4wMDQxMiwgMS42NjkxMiwgMi4wODQ4MyIsIFwKLSAgICAgICAgICAiMC4wOTI4NTgsIDAuMTQxMzg3LCAwLjQyMjE3OSwgMC42NzE2MDYsIDEuMDA0MSwgMS42NjkxOCwgMi4wODQ4NSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDM5NjMsIDAuMDAzOTYxLCAwLjAwMzk0MSwgMC4wMDM5MzMsIDAuMDAzOTI3LCAwLjAwMzkyMiwgMC4wMDM5MjEiLCBcCi0gICAgICAgICAgIjAuMDAzOTQ5LCAwLjAwMzk0NywgMC4wMDM5MjcsIDAuMDAzOTE4LCAwLjAwMzkxMywgMC4wMDM5MDgsIDAuMDAzOTA2IiwgXAotICAgICAgICAgICIwLjAwMzk0MiwgMC4wMDM5NCwgMC4wMDM5MiwgMC4wMDM5MTIsIDAuMDAzOTA3LCAwLjAwMzkwMSwgMC4wMDM4OTkiLCBcCi0gICAgICAgICAgIjAuMDAzOTQzLCAwLjAwMzk0MiwgMC4wMDM5MjIsIDAuMDAzOTE0LCAwLjAwMzkwOCwgMC4wMDM5MDIsIDAuMDAzOSIsIFwKLSAgICAgICAgICAiMC4wMDM5NDksIDAuMDAzOTQ4LCAwLjAwMzkyOSwgMC4wMDM5MjEsIDAuMDAzOTE0LCAwLjAwMzkwOSwgMC4wMDM5MDciLCBcCi0gICAgICAgICAgIjAuMDAzOTU0LCAwLjAwMzk1MywgMC4wMDM5MzYsIDAuMDAzOTI3LCAwLjAwMzkyLCAwLjAwMzkxNCwgMC4wMDM5MTIiLCBcCi0gICAgICAgICAgIjAuMDAzOTcxLCAwLjAwMzk3MSwgMC4wMDM5NTQsIDAuMDAzOTQ1LCAwLjAwMzkzOSwgMC4wMDM5MzMsIDAuMDAzOTMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQ3MzksIDAuMDA0NzQ2LCAwLjAwNDc1NiwgMC4wMDQ3NTksIDAuMDA0NzYsIDAuMDA0NzYxLCAwLjAwNDc2MSIsIFwKLSAgICAgICAgICAiMC4wMDQ3MjYsIDAuMDA0NzMzLCAwLjAwNDc0MywgMC4wMDQ3NDUsIDAuMDA0NzQ3LCAwLjAwNDc0OCwgMC4wMDQ3NDgiLCBcCi0gICAgICAgICAgIjAuMDA0NzI0LCAwLjAwNDczMSwgMC4wMDQ3NDIsIDAuMDA0NzQ0LCAwLjAwNDc0NSwgMC4wMDQ3NDYsIDAuMDA0NzQ2IiwgXAotICAgICAgICAgICIwLjAwNDczLCAwLjAwNDczOCwgMC4wMDQ3NDgsIDAuMDA0NzUsIDAuMDA0NzUxLCAwLjAwNDc1MiwgMC4wMDQ3NTMiLCBcCi0gICAgICAgICAgIjAuMDA0NzQyLCAwLjAwNDc0OSwgMC4wMDQ3NTksIDAuMDA0NzYxLCAwLjAwNDc2MiwgMC4wMDQ3NjMsIDAuMDA0NzY0IiwgXAotICAgICAgICAgICIwLjAwNDc1MiwgMC4wMDQ3NiwgMC4wMDQ3NywgMC4wMDQ3NzIsIDAuMDA0NzczLCAwLjAwNDc3NCwgMC4wMDQ3NzQiLCBcCi0gICAgICAgICAgIjAuMDA0Nzc4LCAwLjAwNDc4NSwgMC4wMDQ3OTQsIDAuMDA0Nzk2LCAwLjAwNDc5OCwgMC4wMDQ3OTgsIDAuMDA0Nzk5Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihRTikgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjI2Mjk5MzsKLSAgICBmdW5jdGlvbiA6ICJRQklOVCI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3NlbnNlIDogbm9uX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiByaXNpbmdfZWRnZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTcyOTA2LCAwLjE5NzQzOSwgMC4zMzY0OTgsIDAuNDU5MTQ2LCAwLjYyMjY0OSwgMC45NDk3MzksIDEuMTU0MjQiLCBcCi0gICAgICAgICAgIjAuMTgzMDkyLCAwLjIwNzYwNSwgMC4zNDY2ODcsIDAuNDY5MzEsIDAuNjMyODU4LCAwLjk1OTk1OCwgMS4xNjQ0NyIsIFwKLSAgICAgICAgICAiMC4xOTU4NTIsIDAuMjIwMzgsIDAuMzU5NDIzLCAwLjQ4MjA2NCwgMC42NDU1OTQsIDAuOTcyNzMyLCAxLjE3NzE4IiwgXAotICAgICAgICAgICIwLjIwODI5NiwgMC4yMzI4MDksIDAuMzcxODkyLCAwLjQ5NDUxNSwgMC42NTgwNjIsIDAuOTg1MTYyLCAxLjE4OTY3IiwgXAotICAgICAgICAgICIwLjIxOTY4NywgMC4yNDQyMDYsIDAuMzgzMjg1LCAwLjUwNTkwNSwgMC42Njk1MTIsIDAuOTk2NTU3LCAxLjIwMTA0IiwgXAotICAgICAgICAgICIwLjIzNTQyOSwgMC4yNTk5NDYsIDAuMzk5MDIxLCAwLjUyMTU5NiwgMC42ODUxNzMsIDEuMDEyMjksIDEuMjE2NzYiLCBcCi0gICAgICAgICAgIjAuMjQ3NTM1LCAwLjI3MjA1NCwgMC40MTExMDMsIDAuNTMzNjQxLCAwLjY5NzI5MiwgMS4wMjQ0MiwgMS4yMjg4OCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTEwMzMsIDAuMTQxNTE4LCAwLjQyNzEwNywgMC42ODEwNTUsIDEuMDE4MjQsIDEuNjkyNjUsIDIuMTE0MjciLCBcCi0gICAgICAgICAgIjAuMDkxMDE5LCAwLjE0MTQyNiwgMC40MjgxMTYsIDAuNjgxMDU1LCAxLjAxODI3LCAxLjY5MjY2LCAyLjExNDMxIiwgXAotICAgICAgICAgICIwLjA5MTA4LCAwLjE0MTM0OCwgMC40MjgxNDEsIDAuNjgxMDM0LCAxLjAxODIsIDEuNjkyNjYsIDIuMTE0MjkiLCBcCi0gICAgICAgICAgIjAuMDkxMDk4LCAwLjE0MTQyNSwgMC40MjgxMjksIDAuNjgxMDU4LCAxLjAxODMzLCAxLjY5MjY2LCAyLjExNDMxIiwgXAotICAgICAgICAgICIwLjA5MTEwMywgMC4xNDE0MjYsIDAuNDI4MDgyLCAwLjY4MTA1MSwgMS4wMTgzMSwgMS42OTI2OCwgMi4xMTQzMiIsIFwKLSAgICAgICAgICAiMC4wOTA5OTcsIDAuMTQxNDM4LCAwLjQyNzE1LCAwLjY4MTA2MywgMS4wMTgyMiwgMS42OTI2OCwgMi4xMTQzMSIsIFwKLSAgICAgICAgICAiMC4wOTExNjEsIDAuMTQxNDI1LCAwLjQyODExMSwgMC42ODEwMjgsIDEuMDE4MjMsIDEuNjkyNywgMi4xMTQzMiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNjIxODcsIDAuMTg2OTI2LCAwLjMyNzExOCwgMC40NTA3MzgsIDAuNjE1Njk5LCAwLjk0NTMzNSwgMS4xNTE0NCIsIFwKLSAgICAgICAgICAiMC4xNzIzMTQsIDAuMTk3MDU5LCAwLjMzNzIzNSwgMC40NjA3NTUsIDAuNjI1NzA4LCAwLjk1NTQ0NSwgMS4xNjE1NSIsIFwKLSAgICAgICAgICAiMC4xODQ5OTgsIDAuMjA5NzM3LCAwLjM0OTk1OSwgMC40NzM1NDgsIDAuNjM4Mzg4LCAwLjk2ODE3MSwgMS4xNzQyNCIsIFwKLSAgICAgICAgICAiMC4xOTc0MjgsIDAuMjIyMTcsIDAuMzYyNDA4LCAwLjQ4NTk4LCAwLjY1MDgxOSwgMC45ODA1OTMsIDEuMTg2NjgiLCBcCi0gICAgICAgICAgIjAuMjA4NjU5LCAwLjIzMzQwMSwgMC4zNzM1NzUsIDAuNDk3MjAyLCAwLjY2MjA0OCwgMC45OTE2NzYsIDEuMTk3ODkiLCBcCi0gICAgICAgICAgIjAuMjI0MTksIDAuMjQ4OTMyLCAwLjM4OTEwNiwgMC41MTI3NjYsIDAuNjc3NjAxLCAxLjAwNzMyLCAxLjIxMzQyIiwgXAotICAgICAgICAgICIwLjIzNjIzLCAwLjI2MDk2NiwgMC40MDExODksIDAuNTI0NzYxLCAwLjY4OTYxNSwgMS4wMTkzOCwgMS4yMjU1MSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODk3ODksIDAuMTM5MjQzLCAwLjQyMDg1MSwgMC42NzA0MTUsIDEuMDAwOTEsIDEuNjY3NTQsIDIuMDgzMDEiLCBcCi0gICAgICAgICAgIjAuMDg5NzU0LCAwLjEzOTMzLCAwLjQyMTYzNSwgMC42Njk5MjcsIDEuMDAyOSwgMS42Njc0NywgMi4wODI4OSIsIFwKLSAgICAgICAgICAiMC4wODk3OTMsIDAuMTM5MjQ0LCAwLjQyMDkwOSwgMC42Njk5MywgMS4wMDI5MSwgMS42NjQ4OCwgMi4wODI5NiIsIFwKLSAgICAgICAgICAiMC4wODk3OTIsIDAuMTM5MjQ2LCAwLjQyMDczOSwgMC42Njk5MzYsIDEuMDAyOSwgMS42NjQ5MywgMi4wODI5NyIsIFwKLSAgICAgICAgICAiMC4wODk3NTMsIDAuMTM5MjQxLCAwLjQyMTYxNCwgMC42NzA0LCAxLjAwMTc3LCAxLjY2NzA1LCAyLjA4Mjg3IiwgXAotICAgICAgICAgICIwLjA4OTc1MywgMC4xMzkyNzUsIDAuNDIxNjE2LCAwLjY2OTYzMywgMS4wMDExLCAxLjY2NzQ2LCAyLjA3OTY2IiwgXAotICAgICAgICAgICIwLjA4OTc4NSwgMC4xMzkyNCwgMC40MjA4OTUsIDAuNjcwNjc0LCAxLjAwMjksIDEuNjY0ODgsIDIuMDgzMTQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0NzM5LCAwLjAwNDc0NiwgMC4wMDQ3NTYsIDAuMDA0NzU5LCAwLjAwNDc2LCAwLjAwNDc2MSwgMC4wMDQ3NjEiLCBcCi0gICAgICAgICAgIjAuMDA0NzI2LCAwLjAwNDczMywgMC4wMDQ3NDMsIDAuMDA0NzQ1LCAwLjAwNDc0NywgMC4wMDQ3NDgsIDAuMDA0NzQ4IiwgXAotICAgICAgICAgICIwLjAwNDcyNCwgMC4wMDQ3MzEsIDAuMDA0NzQyLCAwLjAwNDc0NCwgMC4wMDQ3NDUsIDAuMDA0NzQ2LCAwLjAwNDc0NiIsIFwKLSAgICAgICAgICAiMC4wMDQ3MywgMC4wMDQ3MzgsIDAuMDA0NzQ4LCAwLjAwNDc1LCAwLjAwNDc1MSwgMC4wMDQ3NTIsIDAuMDA0NzUzIiwgXAotICAgICAgICAgICIwLjAwNDc0MiwgMC4wMDQ3NDksIDAuMDA0NzU5LCAwLjAwNDc2MSwgMC4wMDQ3NjIsIDAuMDA0NzYzLCAwLjAwNDc2NCIsIFwKLSAgICAgICAgICAiMC4wMDQ3NTIsIDAuMDA0NzYsIDAuMDA0NzcsIDAuMDA0NzcyLCAwLjAwNDc3MywgMC4wMDQ3NzQsIDAuMDA0Nzc0IiwgXAotICAgICAgICAgICIwLjAwNDc3OCwgMC4wMDQ3ODUsIDAuMDA0Nzk0LCAwLjAwNDc5NiwgMC4wMDQ3OTgsIDAuMDA0Nzk4LCAwLjAwNDc5OSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzk2MywgMC4wMDM5NjEsIDAuMDAzOTQxLCAwLjAwMzkzMywgMC4wMDM5MjcsIDAuMDAzOTIyLCAwLjAwMzkyMSIsIFwKLSAgICAgICAgICAiMC4wMDM5NDksIDAuMDAzOTQ3LCAwLjAwMzkyNywgMC4wMDM5MTgsIDAuMDAzOTEzLCAwLjAwMzkwOCwgMC4wMDM5MDYiLCBcCi0gICAgICAgICAgIjAuMDAzOTQyLCAwLjAwMzk0LCAwLjAwMzkyLCAwLjAwMzkxMiwgMC4wMDM5MDcsIDAuMDAzOTAxLCAwLjAwMzg5OSIsIFwKLSAgICAgICAgICAiMC4wMDM5NDMsIDAuMDAzOTQyLCAwLjAwMzkyMiwgMC4wMDM5MTQsIDAuMDAzOTA4LCAwLjAwMzkwMiwgMC4wMDM5IiwgXAotICAgICAgICAgICIwLjAwMzk0OSwgMC4wMDM5NDgsIDAuMDAzOTI5LCAwLjAwMzkyMSwgMC4wMDM5MTQsIDAuMDAzOTA5LCAwLjAwMzkwNyIsIFwKLSAgICAgICAgICAiMC4wMDM5NTQsIDAuMDAzOTUzLCAwLjAwMzkzNiwgMC4wMDM5MjcsIDAuMDAzOTIsIDAuMDAzOTE0LCAwLjAwMzkxMiIsIFwKLSAgICAgICAgICAiMC4wMDM5NzEsIDAuMDAzOTcxLCAwLjAwMzk1NCwgMC4wMDM5NDUsIDAuMDAzOTM5LCAwLjAwMzkzMywgMC4wMDM5MyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUk4pICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYwNDg2NDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MDQ2NDI7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjA0ODY0OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNjYxNSwgMC4wMDY1ODYsIDAuMDA2NTgxLCAwLjAwNjU5LCAwLjAwNjYsIDAuMDA2NjI0LCAwLjAwNjY0NSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNTY0MSwgMC4wMDU2MTcsIDAuMDA1NjEyLCAwLjAwNTYxNiwgMC4wMDU2MjYsIDAuMDA1NjUyLCAwLjAwNTY3NiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRCYhRSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fRV9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjEyNSwgLTAuMTIsIC0wLjEwNzUsIC0wLjEwMTI1LCAtMC4wOTUsIC0wLjA4NSwgLTAuMDgyNSIsIFwKLSAgICAgICAgICAiLTAuMTM2MjUsIC0wLjEyNSwgLTAuMTE4NzUsIC0wLjExMjUsIC0wLjEwNjI1LCAtMC4wOTYyNSwgLTAuMDkzNzUiLCBcCi0gICAgICAgICAgIi0wLjE0ODc1LCAtMC4xMzc1LCAtMC4xMzEyNSwgLTAuMTI1LCAtMC4xMTg3NSwgLTAuMTA4NzUsIC0wLjEiLCBcCi0gICAgICAgICAgIi0wLjE1NSwgLTAuMTUsIC0wLjEzNzUsIC0wLjEzMTI1LCAtMC4xMjUsIC0wLjExNSwgLTAuMTEyNSIsIFwKLSAgICAgICAgICAiLTAuMTYxMjUsIC0wLjE1NjI1LCAtMC4xNDM3NSwgLTAuMTM3NSwgLTAuMTMxMjUsIC0wLjEyNzUsIC0wLjExODc1IiwgXAotICAgICAgICAgICItMC4xNzEyNSwgLTAuMTY2MjUsIC0wLjE1Mzc1LCAtMC4xNDc1LCAtMC4xNDEyNSwgLTAuMTM3NSwgLTAuMTI4NzUiLCBcCi0gICAgICAgICAgIi0wLjE4LCAtMC4xNzUsIC0wLjE2MjUsIC0wLjE1NjI1LCAtMC4xNSwgLTAuMTQsIC0wLjEzNzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiRCZFIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMV9BTl9FX0VRXzEgPT0gMSdiMSI7Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDMxMjUsIC0wLjAyLCAtMC4wMDc1LCAwLjAwNSwgMC4wMTc1LCAwLjAyNzUsIDAuMDQyNSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLjAwNjI1LCAwLjAyMjUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLjAxLCAwLjAxODc1IiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMTI1LCAwLjAwMzc1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjA2MTI1LCAtMC4wNTYyNSwgLTAuMDQzNzUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgLTAuMDAyNSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDcxMjUsIC0wLjA2LCAtMC4wNDc1LCAtMC4wNDEyNSwgLTAuMDI4NzUsIC0wLjAxMjUsIC0wLjAwMzc1IiwgXAotICAgICAgICAgICItMC4wOCwgLTAuMDY4NzUsIC0wLjA1NjI1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDIxMjUsIC0wLjAxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEJiFFIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9FX0VRXzAgPT0gMSdiMSI7Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY4NzUsIDAuMDU3NSwgMC4wNDUsIDAuMDMyNSwgMC4wMiwgMC4wMDM3NSwgLTAuMDExMjUiLCBcCi0gICAgICAgICAgIjAuMDczNzUsIDAuMDYyNSwgMC4wNSwgMC4wMzc1LCAwLjAyNSwgMC4wMDg3NSwgMCIsIFwKLSAgICAgICAgICAiMC4wODYyNSwgMC4wNzUsIDAuMDYyNSwgMC4wNSwgMC4wMzc1LCAwLjAyMTI1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMDkyNSwgMC4wODEyNSwgMC4wNjg3NSwgMC4wNTYyNSwgMC4wNDM3NSwgMC4wMjc1LCAwLjAxODc1IiwgXAotICAgICAgICAgICIwLjA5ODc1LCAwLjA5Mzc1LCAwLjA3NSwgMC4wNjI1LCAwLjA1LCAwLjAzMzc1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiMC4xMDg3NSwgMC4wOTc1LCAwLjA4NSwgMC4wNzI1LCAwLjA2LCAwLjA0Mzc1LCAwLjAzNSIsIFwKLSAgICAgICAgICAiMC4xMTc1LCAwLjEwNjI1LCAwLjA5Mzc1LCAwLjA4MTI1LCAwLjA2ODc1LCAwLjA1MjUsIDAuMDQzNzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIkQmRSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzFfQU5fRV9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE1LCAwLjEzODc1LCAwLjEzMjUsIDAuMTI2MjUsIDAuMTIsIDAuMTEsIDAuMTAxMjUiLCBcCi0gICAgICAgICAgIjAuMTYxMjUsIDAuMTUsIDAuMTQzNzUsIDAuMTMxMjUsIDAuMTI1LCAwLjExNSwgMC4xMTI1IiwgXAotICAgICAgICAgICIwLjE3Mzc1LCAwLjE2MjUsIDAuMTUsIDAuMTQzNzUsIDAuMTM3NSwgMC4xMjc1LCAwLjEyNSIsIFwKLSAgICAgICAgICAiMC4xOCwgMC4xNjg3NSwgMC4xNjI1LCAwLjE1NjI1LCAwLjE0Mzc1LCAwLjE0LCAwLjEzMTI1IiwgXAotICAgICAgICAgICIwLjE4NjI1LCAwLjE4MTI1LCAwLjE2ODc1LCAwLjE2MjUsIDAuMTU2MjUsIDAuMTQ2MjUsIDAuMTM3NSIsIFwKLSAgICAgICAgICAiMC4xOTYyNSwgMC4xOTEyNSwgMC4xNzg3NSwgMC4xNzI1LCAwLjE2NjI1LCAwLjE1NjI1LCAwLjE0NzUiLCBcCi0gICAgICAgICAgIjAuMjA1LCAwLjE5Mzc1LCAwLjE4NzUsIDAuMTc1LCAwLjE2ODc1LCAwLjE2NSwgMC4xNTYyNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBFREZGVFJYNCAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoRURGRlRSWDQpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC43OTA2MzQ7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgZmYgKE4zMCxRQklOVCkgewotICAgIG5leHRfc3RhdGUgOiAiKCgoISgoIUQpIEUpKSAoISgoIUUpICghTjMwKSkpKSBSTikiOwotICAgIGNsb2NrZWRfb24gOiAiQ0siOwotICB9Ci0gIHBpbihDSykgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjIwNzU7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjIwNTYyOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDYyMDc1OwotICAgIGNsb2NrIDogdHJ1ZTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDI0MjQsIDAuMDAyNDAxLCAwLjAwMjM4NiwgMC4wMDIzODcsIDAuMDAyNCwgMC4wMDI0MTcsIDAuMDAyNDQ0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA2ODg0LCAwLjAwNjg2MiwgMC4wMDY4NTQsIDAuMDA2ODU5LCAwLjAwNjg2MywgMC4wMDY4OTIsIDAuMDA2OTAxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRCYhRSYhUk4iOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX0VfRVFfMF9BTl9STl9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMTYxNjkyLCAwLjE3MTkxMSwgMC4xODQ2MzIsIDAuMTk3MDg0LCAwLjIwODQ0NiwgMC4yMjQwOTgsIDAuMjM2MjM4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4xMDMyNDEsIDAuMTEzMDk3LCAwLjEyNTU0NiwgMC4xMzcyOTUsIDAuMTQ3NTg4LCAwLjE2MTc2OSwgMC4xNzI2MzEiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEQpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYwNjc0NjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MDY2NDQ7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjA2NzQ2OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNDg0OSwgMC4wMDQ4MTYsIDAuMDA0ODA1LCAwLjAwNDgxMSwgMC4wMDQ4MTgsIDAuMDA0ODQsIDAuMDA0ODYzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA1MDU2LCAwLjAwNTAzMiwgMC4wMDUwMjQsIDAuMDA1MDI3LCAwLjAwNTAzNiwgMC4wMDUwNjEsIDAuMDA1MDgyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIkUmUk4iOwotICAgICAgc2RmX2NvbmQgOiAiRV9FUV8xX0FOX1JOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDc1LCAtMC4wNywgLTAuMDU3NSwgLTAuMDUxMjUsIC0wLjA0NSwgLTAuMDQxMjUsIC0wLjAzMjUiLCBcCi0gICAgICAgICAgIi0wLjA4NjI1LCAtMC4wNzUsIC0wLjA2ODc1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDUyNSwgLTAuMDQzNzUiLCBcCi0gICAgICAgICAgIi0wLjA5ODc1LCAtMC4wODc1LCAtMC4wODEyNSwgLTAuMDc1LCAtMC4wNjg3NSwgLTAuMDU4NzUsIC0wLjA1NjI1IiwgXAotICAgICAgICAgICItMC4xMDUsIC0wLjEsIC0wLjA4NzUsIC0wLjA4MTI1LCAtMC4wNzUsIC0wLjA3MTI1LCAtMC4wNjI1IiwgXAotICAgICAgICAgICItMC4xMTEyNSwgLTAuMTA2MjUsIC0wLjA5Mzc1LCAtMC4wODc1LCAtMC4wODc1LCAtMC4wNzc1LCAtMC4wNjg3NSIsIFwKLSAgICAgICAgICAiLTAuMTIxMjUsIC0wLjExNjI1LCAtMC4xMSwgLTAuMDk3NSwgLTAuMDk3NSwgLTAuMDg3NSwgLTAuMDc4NzUiLCBcCi0gICAgICAgICAgIi0wLjEzLCAtMC4xMjUsIC0wLjExMjUsIC0wLjEwNjI1LCAtMC4xMDYyNSwgLTAuMDk2MjUsIC0wLjA4NzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMzEyNSwgLTAuMDIsIC0wLjAwNzUsIC0wLjAwMTI1LCAwLjAxMTI1LCAwLjAyNzUsIDAuMDM2MjUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAsIDAuMDE2MjUsIDAuMDI1IiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA0Mzc1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLjAwMzc1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjA2MTI1LCAtMC4wNSwgLTAuMDM3NSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDAyNSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDY3NSwgLTAuMDU2MjUsIC0wLjA0Mzc1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMDg3NSwgMCIsIFwKLSAgICAgICAgICAiLTAuMDc3NSwgLTAuMDY2MjUsIC0wLjA1Mzc1LCAtMC4wNDEyNSwgLTAuMDM1LCAtMC4wMTg3NSwgLTAuMDEiLCBcCi0gICAgICAgICAgIi0wLjA4NjI1LCAtMC4wNzUsIC0wLjA2MjUsIC0wLjA1LCAtMC4wMzc1LCAtMC4wMjc1LCAtMC4wMTg3NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiRSZSTiI7Ci0gICAgICBzZGZfY29uZCA6ICJFX0VRXzFfQU5fUk5fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTg3NSwgMC4xMDc1LCAwLjA5NSwgMC4wODg3NSwgMC4wODI1LCAwLjA3MjUsIDAuMDciLCBcCi0gICAgICAgICAgIjAuMTMsIDAuMTE4NzUsIDAuMTA2MjUsIDAuMSwgMC4wOTM3NSwgMC4wODM3NSwgMC4wNzUiLCBcCi0gICAgICAgICAgIjAuMTM2MjUsIDAuMTMxMjUsIDAuMTE4NzUsIDAuMTEyNSwgMC4xMDYyNSwgMC4wOTYyNSwgMC4wODc1IiwgXAotICAgICAgICAgICIwLjE0ODc1LCAwLjEzNzUsIDAuMTI1LCAwLjExODc1LCAwLjExMjUsIDAuMTAyNSwgMC4wOTM3NSIsIFwKLSAgICAgICAgICAiMC4xNTUsIDAuMTQzNzUsIDAuMTM3NSwgMC4xMjUsIDAuMTE4NzUsIDAuMTA4NzUsIDAuMTA2MjUiLCBcCi0gICAgICAgICAgIjAuMTY1LCAwLjE1Mzc1LCAwLjE0NzUsIDAuMTM1LCAwLjEyODc1LCAwLjExODc1LCAwLjExNjI1IiwgXAotICAgICAgICAgICIwLjE3Mzc1LCAwLjE2MjUsIDAuMTUsIDAuMTQzNzUsIDAuMTM3NSwgMC4xMjc1LCAwLjEyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3NSwgMC4wNjM3NSwgMC4wNTEyNSwgMC4wMzg3NSwgMC4wMjYyNSwgMC4wMSwgLTAuMDA1IiwgXAotICAgICAgICAgICIwLjA4NjI1LCAwLjA3NSwgMC4wNTYyNSwgMC4wNDM3NSwgMC4wMzEyNSwgMC4wMjEyNSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiMC4wOTI1LCAwLjA4MTI1LCAwLjA2ODc1LCAwLjA1NjI1LCAwLjA0Mzc1LCAwLjAyNzUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMTA1LCAwLjA5Mzc1LCAwLjA3NSwgMC4wNjI1LCAwLjA1LCAwLjA0LCAwLjAyNSIsIFwKLSAgICAgICAgICAiMC4xMTEyNSwgMC4xLCAwLjA4NzUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNDYyNSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4xMTUsIDAuMTEsIDAuMDkxMjUsIDAuMDc4NzUsIDAuMDY2MjUsIDAuMDUsIDAuMDQxMjUiLCBcCi0gICAgICAgICAgIjAuMTIzNzUsIDAuMTEyNSwgMC4xLCAwLjA4NzUsIDAuMDc1LCAwLjA1ODc1LCAwLjA1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihFKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDEzMjg2NjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDEzMjg2NjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDEzMjc0NzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDUzMjUsIDAuMDA1MzAyLCAwLjAwNTI5NSwgMC4wMDUzMDMsIDAuMDA1MzE0LCAwLjAwNTMzNiwgMC4wMDUzNiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNjMwNiwgMC4wMDYyNzEsIDAuMDA2MjY0LCAwLjAwNjI3MiwgMC4wMDYyODQsIDAuMDA2MzIsIDAuMDA2MzU5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlJOIjsKLSAgICAgIHNkZl9jb25kIDogIlJOID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjA0Mzc1LCAtMC4wMzI1LCAtMC4wMiwgLTAuMDA3NSwgMC4wMDUsIDAuMDE1LCAwLjAzIiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDQzNzUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAuMDEsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjA2MTI1LCAtMC4wNSwgLTAuMDM3NSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDAyNSwgMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wNzM3NSwgLTAuMDYyNSwgLTAuMDUsIC0wLjAzNzUsIC0wLjAyNSwgLTAuMDA4NzUsIDAiLCBcCi0gICAgICAgICAgIi0wLjA4LCAtMC4wNjg3NSwgLTAuMDU2MjUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMjEyNSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA5NjI1LCAtMC4wODUsIC0wLjA3MjUsIC0wLjA2LCAtMC4wNDc1LCAtMC4wMzEyNSwgLTAuMDIyNSIsIFwKLSAgICAgICAgICAiLTAuMTA1LCAtMC4wOTM3NSwgLTAuMDgxMjUsIC0wLjA2ODc1LCAtMC4wNTYyNSwgLTAuMDQ2MjUsIC0wLjAzMTI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDQzNzUsIC0wLjAzMjUsIC0wLjAyLCAtMC4wMTM3NSwgLTAuMDAxMjUsIDAuMDE1LCAwLjAyMzc1IiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA0Mzc1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIDAuMDAzNzUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDY3NSwgLTAuMDU2MjUsIC0wLjA0Mzc1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIC0wLjAwODc1LCAwIiwgXAotICAgICAgICAgICItMC4wNzM3NSwgLTAuMDYyNSwgLTAuMDUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMTUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wOCwgLTAuMDY4NzUsIC0wLjA1NjI1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDIxMjUsIC0wLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjA5LCAtMC4wNzg3NSwgLTAuMDY2MjUsIC0wLjA1Mzc1LCAtMC4wNDc1LCAtMC4wMzEyNSwgLTAuMDIyNSIsIFwKLSAgICAgICAgICAiLTAuMDk4NzUsIC0wLjA4NzUsIC0wLjA3NSwgLTAuMDYyNSwgLTAuMDUsIC0wLjA0LCAtMC4wMzEyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiUk4iOwotICAgICAgc2RmX2NvbmQgOiAiUk4gPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTM3NSwgMC4xMjYyNSwgMC4xMiwgMC4xMDc1LCAwLjEwMTI1LCAwLjA5MTI1LCAwLjA4ODc1IiwgXAotICAgICAgICAgICIwLjE0ODc1LCAwLjEzNzUsIDAuMTI1LCAwLjExODc1LCAwLjExMjUsIDAuMTAyNSwgMC4xIiwgXAotICAgICAgICAgICIwLjE2MTI1LCAwLjE1LCAwLjEzNzUsIDAuMTMxMjUsIDAuMTI1LCAwLjExNSwgMC4xMDYyNSIsIFwKLSAgICAgICAgICAiMC4xNjc1LCAwLjE1NjI1LCAwLjE1LCAwLjEzNzUsIDAuMTMxMjUsIDAuMTI3NSwgMC4xMTg3NSIsIFwKLSAgICAgICAgICAiMC4xNzM3NSwgMC4xNjg3NSwgMC4xNTYyNSwgMC4xNSwgMC4xNDM3NSwgMC4xMzM3NSwgMC4xMjUiLCBcCi0gICAgICAgICAgIjAuMTgzNzUsIDAuMTc4NzUsIDAuMTY2MjUsIDAuMTYsIDAuMTUzNzUsIDAuMTQzNzUsIDAuMTM1IiwgXAotICAgICAgICAgICIwLjE5MjUsIDAuMTg3NSwgMC4xNzUsIDAuMTY4NzUsIDAuMTYyNSwgMC4xNTI1LCAwLjE0Mzc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDgxMjUsIDAuMDcsIDAuMDYzNzUsIDAuMDU3NSwgMC4wNTEyNSwgMC4wNDEyNSwgMC4wMzI1IiwgXAotICAgICAgICAgICIwLjA4NjI1LCAwLjA4MTI1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDUyNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4wOTg3NSwgMC4wOTM3NSwgMC4wODEyNSwgMC4wNzUsIDAuMDY4NzUsIDAuMDU4NzUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIjAuMTExMjUsIDAuMSwgMC4wOTM3NSwgMC4wODc1LCAwLjA4MTI1LCAwLjA3MTI1LCAwLjA2ODc1IiwgXAotICAgICAgICAgICIwLjEyMzc1LCAwLjExMjUsIDAuMTA2MjUsIDAuMSwgMC4wOTM3NSwgMC4wODM3NSwgMC4wNzUiLCBcCi0gICAgICAgICAgIjAuMTQsIDAuMTI4NzUsIDAuMTIyNSwgMC4xMSwgMC4xMDM3NSwgMC4xLCAwLjA5MTI1IiwgXAotICAgICAgICAgICIwLjE0ODc1LCAwLjEzNzUsIDAuMTMxMjUsIDAuMTI1LCAwLjExODc1LCAwLjEwODc1LCAwLjEwNjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihRKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDEuMDI5NTU7Ci0gICAgZnVuY3Rpb24gOiAiTjMwIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBub25fdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJpc2luZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEzMjI0NCwgMC4yMDcyNTEsIDAuMjgwNzI3LCAwLjMzMjgyMSwgMC40MTY2MDUsIDAuNDg5NzQ4LCAwLjU5NDA0NCIsIFwKLSAgICAgICAgICAiMC4xNDI0MjMsIDAuMjE3NDI0LCAwLjI5MTA5NiwgMC4zNDMxNzMsIDAuNDI2OTQ2LCAwLjQ5OTkwMSwgMC42MDQyODgiLCBcCi0gICAgICAgICAgIjAuMTU1MDY0LCAwLjIzMDA5NCwgMC4zMDM3MywgMC4zNTUzMTIsIDAuNDM5NjQ1LCAwLjUxMjUwNiwgMC42MTY5MDYiLCBcCi0gICAgICAgICAgIjAuMTY3NDc1LCAwLjI0MjQ2NywgMC4zMTU4NywgMC4zNjc3NCwgMC40NTIwNzYsIDAuNTI0OTIyLCAwLjYyOTI5NiIsIFwKLSAgICAgICAgICAiMC4xNzg2MjMsIDAuMjUzNjIyLCAwLjMyNzAyOCwgMC4zNzg5MDQsIDAuNDYzMjE2LCAwLjUzNjA3LCAwLjY0MDQ1OCIsIFwKLSAgICAgICAgICAiMC4xOTQyMTcsIDAuMjY5MjE1LCAwLjM0MjY3MSwgMC4zOTQ4OTQsIDAuNDc4NzM2LCAwLjU1MTAyNSwgMC42NTU4MTciLCBcCi0gICAgICAgICAgIjAuMjA2NDM4LCAwLjI4MTQ0MSwgMC4zNTQ5MjksIDAuNDA3MjE3LCAwLjQ5MDk1NCwgMC41NjM5MTYsIDAuNjY4MyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzNDEyMywgMC4xODE1MjcsIDAuMzMxNjkyLCAwLjQ0MDI3MywgMC42MTQwNTUsIDAuNzY1OTY5LCAwLjk4Mjg1MyIsIFwKLSAgICAgICAgICAiMC4wMzQxMjcsIDAuMTgxNTczLCAwLjMzMTM3NiwgMC40NDAzLCAwLjYxMjU1NSwgMC43NjU5NSwgMC45ODI4MzIiLCBcCi0gICAgICAgICAgIjAuMDM0MDcsIDAuMTgxNTc1LCAwLjMzMTM3OCwgMC40Mzk2NjcsIDAuNjEyMzQxLCAwLjc2NTkzNSwgMC45ODI4MzQiLCBcCi0gICAgICAgICAgIjAuMDM0MTI1LCAwLjE4MTU3NCwgMC4zMzE2NDIsIDAuNDM5NjY5LCAwLjYxMjM2NywgMC43NjU5MzUsIDAuOTgyODM2IiwgXAotICAgICAgICAgICIwLjAzNDEyNiwgMC4xODE1NzEsIDAuMzMxNjQ1LCAwLjQzOTY3MywgMC42MTIzNTcsIDAuNzY1OTM0LCAwLjk4MjgyIiwgXAotICAgICAgICAgICIwLjAzNDE1MiwgMC4xODE1NjIsIDAuMzMxNjY1LCAwLjQ0MDI5MSwgMC42MTI1OTYsIDAuNzY0NjMyLCAwLjk4MjQyNSIsIFwKLSAgICAgICAgICAiMC4wMzQwNzEsIDAuMTgxNTczLCAwLjMzMDk0OCwgMC40NDAzMDQsIDAuNjEyNTk5LCAwLjc2NTk0OCwgMC45ODI3NzUiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMzc0NTMsIDAuMjEzMjg5LCAwLjI4NzU3NCwgMC4zMzk5MSwgMC40MjQyMTQsIDAuNDk4MDc2LCAwLjYwMzI5OCIsIFwKLSAgICAgICAgICAiMC4xNDc2NzcsIDAuMjIzNTExLCAwLjI5NzU4NCwgMC4zNTAxMTEsIDAuNDM0ODEsIDAuNTA4MzU5LCAwLjYxMzcwNyIsIFwKLSAgICAgICAgICAiMC4xNjA0MDMsIDAuMjM2MTk5LCAwLjMxMDMwNSwgMC4zNjI5MjgsIDAuNDQ3NTI1LCAwLjUyMTA0NiwgMC42MjYzMzEiLCBcCi0gICAgICAgICAgIjAuMTcyODM5LCAwLjI0ODYzOCwgMC4zMjI3NDQsIDAuMzc1MzE5LCAwLjQ2MDIwOCwgMC41MzMyMDgsIDAuNjM4Nzc2IiwgXAotICAgICAgICAgICIwLjE4NDIxMSwgMC4yNTk5NjIsIDAuMzMzODQ4LCAwLjM4NjYwNCwgMC40NzEzMTYsIDAuNTQ0ODY3LCAwLjY1MDI1NCIsIFwKLSAgICAgICAgICAiMC4xOTk4NzIsIDAuMjc1NywgMC4zNDk4MjEsIDAuNDAyMTczLCAwLjQ4Njk3MywgMC41NjA0NTksIDAuNjY2MjgxIiwgXAotICAgICAgICAgICIwLjIxMjAwNSwgMC4yODc4NjMsIDAuMzYxNjAyLCAwLjQxNDQ3MSwgMC40OTkxMDMsIDAuNTcyNjU0LCAwLjY3Nzk4NSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzMzA3OSwgMC4xNzg5MTMsIDAuMzI3Mjc3LCAwLjQzMjc2MywgMC42MDQxNjYsIDAuNzU0MDM0LCAwLjk2NzI4OCIsIFwKLSAgICAgICAgICAiMC4wMzMwODIsIDAuMTc4OTEyLCAwLjMyNzMxNiwgMC40MzIzNTcsIDAuNjA0MTg5LCAwLjc1NDAyNiwgMC45NjU5MjMiLCBcCi0gICAgICAgICAgIjAuMDMzMDczLCAwLjE3ODkwNSwgMC4zMjcyODUsIDAuNDMzMjczLCAwLjYwNDE3LCAwLjc1NDA1MiwgMC45Njc1MzEiLCBcCi0gICAgICAgICAgIjAuMDMzMDg3LCAwLjE3ODY3MywgMC4zMjcyODksIDAuNDMyMzY1LCAwLjYwMzUzMywgMC43NTQwNDgsIDAuOTY1ODY3IiwgXAotICAgICAgICAgICIwLjAzMzA5MSwgMC4xNzg5MTYsIDAuMzI3MzE5LCAwLjQzMzM3OSwgMC42MDQxNjcsIDAuNzU0MDUsIDAuOTY3NTQ1IiwgXAotICAgICAgICAgICIwLjAzMzEwMywgMC4xNzg5MTcsIDAuMzI3MzE5LCAwLjQzMzQzMywgMC42MDQxODQsIDAuNzU0MDUsIDAuOTY1ODAzIiwgXAotICAgICAgICAgICIwLjAzMzIwMSwgMC4xNzg5MTUsIDAuMzI3MzE5LCAwLjQzMzM2NCwgMC42MDQzODMsIDAuNzU0MDYsIDAuOTY3NTA0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA3NTI5LCAwLjAwNzY3NCwgMC4wMDc2OSwgMC4wMDc2OTQsIDAuMDA3Njk5LCAwLjAwNzcsIDAuMDA3NzAyIiwgXAotICAgICAgICAgICIwLjAwNzUxNywgMC4wMDc2NiwgMC4wMDc2NzYsIDAuMDA3NjgxLCAwLjAwNzY4NCwgMC4wMDc2ODYsIDAuMDA3Njg3IiwgXAotICAgICAgICAgICIwLjAwNzUwOCwgMC4wMDc2NTIsIDAuMDA3NjY5LCAwLjAwNzY3MywgMC4wMDc2NzYsIDAuMDA3Njc4LCAwLjAwNzY4IiwgXAotICAgICAgICAgICIwLjAwNzUwOCwgMC4wMDc2NTMsIDAuMDA3NjY5LCAwLjAwNzY3NCwgMC4wMDc2NzcsIDAuMDA3Njc5LCAwLjAwNzY4MSIsIFwKLSAgICAgICAgICAiMC4wMDc1MTcsIDAuMDA3NjU5LCAwLjAwNzY3NiwgMC4wMDc2ODEsIDAuMDA3Njg0LCAwLjAwNzY4NCwgMC4wMDc2ODciLCBcCi0gICAgICAgICAgIjAuMDA3NTE0LCAwLjAwNzY1OSwgMC4wMDc2NzYsIDAuMDA3NjgsIDAuMDA3Njg0LCAwLjAwNzY4NiwgMC4wMDc2ODciLCBcCi0gICAgICAgICAgIjAuMDA3NTMxLCAwLjAwNzY3NiwgMC4wMDc2OTMsIDAuMDA3Njk3LCAwLjAwNzcwMSwgMC4wMDc3MDMsIDAuMDA3NzA0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDgxNDEsIDAuMDA4Mjg0LCAwLjAwODMwMiwgMC4wMDgzMDksIDAuMDA4MzExLCAwLjAwODMxNCwgMC4wMDgzMTMiLCBcCi0gICAgICAgICAgIjAuMDA4MTI4LCAwLjAwODI3MiwgMC4wMDgyOSwgMC4wMDgyOTYsIDAuMDA4Mjk3LCAwLjAwODI5OSwgMC4wMDgzIiwgXAotICAgICAgICAgICIwLjAwODEyNiwgMC4wMDgyNywgMC4wMDgyODgsIDAuMDA4MjkyLCAwLjAwODI5NSwgMC4wMDgzLCAwLjAwODMwMSIsIFwKLSAgICAgICAgICAiMC4wMDgxMzIsIDAuMDA4Mjc3LCAwLjAwODI5MSwgMC4wMDgzLCAwLjAwODMwMSwgMC4wMDgzMDMsIDAuMDA4MzA0IiwgXAotICAgICAgICAgICIwLjAwODE1MSwgMC4wMDgyOTMsIDAuMDA4MzA5LCAwLjAwODMxNCwgMC4wMDgzMTcsIDAuMDA4MzE5LCAwLjAwODMyMSIsIFwKLSAgICAgICAgICAiMC4wMDgxNTMsIDAuMDA4Mjk2LCAwLjAwODMxNCwgMC4wMDgzMTcsIDAuMDA4MzIxLCAwLjAwODMyNCwgMC4wMDgzMjQiLCBcCi0gICAgICAgICAgIjAuMDA4MTc2LCAwLjAwODMyMSwgMC4wMDgzMzgsIDAuMDA4MzQzLCAwLjAwODM0NiwgMC4wMDgzNSwgMC4wMDgzNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUU4pICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMS4wNDU1OTsKLSAgICBmdW5jdGlvbiA6ICJRQklOVCI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3NlbnNlIDogbm9uX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiByaXNpbmdfZWRnZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNjIwNDEsIDAuMjM1MzQ1LCAwLjMwODQ1MiwgMC4zNjA2MzIsIDAuNDQ0MDM3LCAwLjUxNzI2MywgMC42MjE1MzQiLCBcCi0gICAgICAgICAgIjAuMTcyMjc1LCAwLjI0NTUxOCwgMC4zMTg1ODYsIDAuMzcwOCwgMC40NTQzNTgsIDAuNTI3NDM0LCAwLjYzMTg1OSIsIFwKLSAgICAgICAgICAiMC4xODUsIDAuMjU4MjkyLCAwLjMzMTM1MywgMC4zODM1NzQsIDAuNDY3MTIyLCAwLjU0MDIwMiwgMC42NDQ2MjciLCBcCi0gICAgICAgICAgIjAuMTk3NDI5LCAwLjI3MDczOCwgMC4zNDM3OTQsIDAuMzk2MDEyLCAwLjQ3OTY1NCwgMC41NTI0OSwgMC42NTcwNjgiLCBcCi0gICAgICAgICAgIjAuMjA4Nzk3LCAwLjI4MjA1NSwgMC4zNTUxMTIsIDAuNDA3MzI5LCAwLjQ5MDg4MSwgMC41NjM5NjQsIDAuNjY4MzgzIiwgXAotICAgICAgICAgICIwLjIyNDQ1MiwgMC4yOTc3NjMsIDAuMzcwODUsIDAuNDIzMDUxLCAwLjUwNjYwNSwgMC41Nzk1NzksIDAuNjg0MjIiLCBcCi0gICAgICAgICAgIjAuMjM2NjQ2LCAwLjMwOTgzNiwgMC4zODI5MDYsIDAuNDM1MTI2LCAwLjUxODY3MSwgMC41OTE3NTksIDAuNjk2MTc5Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDMyMDYyLCAwLjE4MDQ0OCwgMC4zMzIzNjcsIDAuNDQwMzc4LCAwLjYxNDkwOSwgMC43NjY1NzMsIDAuOTgzNTEzIiwgXAotICAgICAgICAgICIwLjAzMjA2MywgMC4xODA0NTMsIDAuMzMyMzg2LCAwLjQ0MDA0NiwgMC42MTQ5MywgMC43NjY1NjUsIDAuOTgzMDAzIiwgXAotICAgICAgICAgICIwLjAzMjA2MSwgMC4xODA1MDIsIDAuMzMyMzY1LCAwLjQ0MDMwMSwgMC42MTQ5MTMsIDAuNzY2NTY3LCAwLjk4MzczIiwgXAotICAgICAgICAgICIwLjAzMjA1NiwgMC4xODA1MjQsIDAuMzMyMzY5LCAwLjQ0MDMxNywgMC42MTM3NjQsIDAuNzY2NTU1LCAwLjk4Mjk4MiIsIFwKLSAgICAgICAgICAiMC4wMzIwNjEsIDAuMTgwNTE1LCAwLjMzMjM4OCwgMC40NDA0NjQsIDAuNjE0OTEsIDAuNzY3MDcsIDAuOTgzNzE4IiwgXAotICAgICAgICAgICIwLjAzMjA1NiwgMC4xODA1MSwgMC4zMzIzODUsIDAuNDQwNDQ2LCAwLjYxNDkzNCwgMC43NjY1NjEsIDAuOTgyOTU1IiwgXAotICAgICAgICAgICIwLjAzMjA5MSwgMC4xODA0MiwgMC4zMzIzODgsIDAuNDQwNzE2LCAwLjYxNDg5OCwgMC43NjcwOTcsIDAuOTgzNzIxIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTU4NDczLCAwLjIzMjYwNSwgMC4zMDY0MDQsIDAuMzU5MDk3LCAwLjQ0MzQ3NCwgMC41MTcyOTEsIDAuNjIyNzA3IiwgXAotICAgICAgICAgICIwLjE2ODYzOSwgMC4yNDI3ODQsIDAuMzE2NjE2LCAwLjM2OTMwOSwgMC40NTM2ODksIDAuNTI3NDc2LCAwLjYzMjkxMyIsIFwKLSAgICAgICAgICAiMC4xODEyODcsIDAuMjU1NDMsIDAuMzI5MjU1LCAwLjM4MTkzMSwgMC40NjYzNDIsIDAuNTQwMTA4LCAwLjY0NTU0OCIsIFwKLSAgICAgICAgICAiMC4xOTM3MDIsIDAuMjY3Nzg4LCAwLjM0MTU4NiwgMC4zOTQyODksIDAuNDc4NzA2LCAwLjU1MjQ2OSwgMC42NTc5MDIiLCBcCi0gICAgICAgICAgIjAuMjA0ODM5LCAwLjI3ODk4NSwgMC4zNTI3ODMsIDAuNDA1NDg1LCAwLjQ4OTg5OSwgMC41NjM2NjQsIDAuNjY5MTAxIiwgXAotICAgICAgICAgICIwLjIyMDQ1NiwgMC4yOTQ1NDIsIDAuMzY4MzUsIDAuNDIxMDU4LCAwLjUwNTQ0NiwgMC41NzkxMDQsIDAuNjg0NTg1IiwgXAotICAgICAgICAgICIwLjIzMjY1OSwgMC4zMDY3OTgsIDAuMzgwNjA0LCAwLjQzMzMyNiwgMC41MTc3MDEsIDAuNTkxNDg5LCAwLjY5NjkyNSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzMTQ0MiwgMC4xNzc1NjIsIDAuMzI2ODQ5LCAwLjQzMzU5MywgMC42MDQ2NjksIDAuNzU0MzQ0LCAwLjk2ODAwNSIsIFwKLSAgICAgICAgICAiMC4wMzE0MTUsIDAuMTc3Mzk1LCAwLjMyNjM4MSwgMC40MzM2NjUsIDAuNjAzNjk3LCAwLjc1NDMwOCwgMC45NjgwMjkiLCBcCi0gICAgICAgICAgIjAuMDMxNDE5LCAwLjE3NzUzLCAwLjMyNjM3LCAwLjQzMzIwOSwgMC42MDM2OSwgMC43NTQyODksIDAuOTY4MDA1IiwgXAotICAgICAgICAgICIwLjAzMTQyNywgMC4xNzczOTcsIDAuMzI2ODIxLCAwLjQzMzE5NSwgMC42MDM2NDEsIDAuNzU0MjgzLCAwLjk2OCIsIFwKLSAgICAgICAgICAiMC4wMzE0MTUsIDAuMTc3Mzk2LCAwLjMyNjgyMSwgMC40MzMxODcsIDAuNjAzNjY4LCAwLjc1NDI4NCwgMC45NjgwMDUiLCBcCi0gICAgICAgICAgIjAuMDMxNDUsIDAuMTc3NDAyLCAwLjMyNjgzMiwgMC40MzM2MywgMC42MDM2OTMsIDAuNzUzMzczLCAwLjk2NzY3NCIsIFwKLSAgICAgICAgICAiMC4wMzE0MTYsIDAuMTc3Mzk1LCAwLjMyNjI4MywgMC40MzM2NzQsIDAuNjAzNjkzLCAwLjc1NDMwNSwgMC45Njc5OTMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDgxNDEsIDAuMDA4Mjg0LCAwLjAwODMwMiwgMC4wMDgzMDksIDAuMDA4MzExLCAwLjAwODMxNCwgMC4wMDgzMTMiLCBcCi0gICAgICAgICAgIjAuMDA4MTI4LCAwLjAwODI3MiwgMC4wMDgyOSwgMC4wMDgyOTYsIDAuMDA4Mjk3LCAwLjAwODI5OSwgMC4wMDgzIiwgXAotICAgICAgICAgICIwLjAwODEyNiwgMC4wMDgyNywgMC4wMDgyODgsIDAuMDA4MjkyLCAwLjAwODI5NSwgMC4wMDgzLCAwLjAwODMwMSIsIFwKLSAgICAgICAgICAiMC4wMDgxMzIsIDAuMDA4Mjc3LCAwLjAwODI5MSwgMC4wMDgzLCAwLjAwODMwMSwgMC4wMDgzMDMsIDAuMDA4MzA0IiwgXAotICAgICAgICAgICIwLjAwODE1MSwgMC4wMDgyOTMsIDAuMDA4MzA5LCAwLjAwODMxNCwgMC4wMDgzMTcsIDAuMDA4MzE5LCAwLjAwODMyMSIsIFwKLSAgICAgICAgICAiMC4wMDgxNTMsIDAuMDA4Mjk2LCAwLjAwODMxNCwgMC4wMDgzMTcsIDAuMDA4MzIxLCAwLjAwODMyNCwgMC4wMDgzMjQiLCBcCi0gICAgICAgICAgIjAuMDA4MTc2LCAwLjAwODMyMSwgMC4wMDgzMzgsIDAuMDA4MzQzLCAwLjAwODM0NiwgMC4wMDgzNSwgMC4wMDgzNSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA3NTI5LCAwLjAwNzY3NCwgMC4wMDc2OSwgMC4wMDc2OTQsIDAuMDA3Njk5LCAwLjAwNzcsIDAuMDA3NzAyIiwgXAotICAgICAgICAgICIwLjAwNzUxNywgMC4wMDc2NiwgMC4wMDc2NzYsIDAuMDA3NjgxLCAwLjAwNzY4NCwgMC4wMDc2ODYsIDAuMDA3Njg3IiwgXAotICAgICAgICAgICIwLjAwNzUwOCwgMC4wMDc2NTIsIDAuMDA3NjY5LCAwLjAwNzY3MywgMC4wMDc2NzYsIDAuMDA3Njc4LCAwLjAwNzY4IiwgXAotICAgICAgICAgICIwLjAwNzUwOCwgMC4wMDc2NTMsIDAuMDA3NjY5LCAwLjAwNzY3NCwgMC4wMDc2NzcsIDAuMDA3Njc5LCAwLjAwNzY4MSIsIFwKLSAgICAgICAgICAiMC4wMDc1MTcsIDAuMDA3NjU5LCAwLjAwNzY3NiwgMC4wMDc2ODEsIDAuMDA3Njg0LCAwLjAwNzY4NCwgMC4wMDc2ODciLCBcCi0gICAgICAgICAgIjAuMDA3NTE0LCAwLjAwNzY1OSwgMC4wMDc2NzYsIDAuMDA3NjgsIDAuMDA3Njg0LCAwLjAwNzY4NiwgMC4wMDc2ODciLCBcCi0gICAgICAgICAgIjAuMDA3NTMxLCAwLjAwNzY3NiwgMC4wMDc2OTMsIDAuMDA3Njk3LCAwLjAwNzcwMSwgMC4wMDc3MDMsIDAuMDA3NzA0Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihSTikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjA4MDk4OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYwNzg3MjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2MDgwOTg7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA1OTI0LCAwLjAwNTg5MSwgMC4wMDU4ODYsIDAuMDA1ODk1LCAwLjAwNTkwNSwgMC4wMDU5MjksIDAuMDA1OTUzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA1NzQzLCAwLjAwNTcxOSwgMC4wMDU3MTMsIDAuMDA1NzE2LCAwLjAwNTcyNywgMC4wMDU3NTMsIDAuMDA1Nzc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEJiFFIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9FX0VRXzAgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMTE4NzUsIC0wLjEwNzUsIC0wLjEwMTI1LCAtMC4wOTUsIC0wLjA4ODc1LCAtMC4wNzg3NSwgLTAuMDc2MjUiLCBcCi0gICAgICAgICAgIi0wLjEyMzc1LCAtMC4xMTg3NSwgLTAuMTEyNSwgLTAuMSwgLTAuMSwgLTAuMDksIC0wLjA4MTI1IiwgXAotICAgICAgICAgICItMC4xMzYyNSwgLTAuMTMxMjUsIC0wLjExODc1LCAtMC4xMTI1LCAtMC4xMDYyNSwgLTAuMTAyNSwgLTAuMDkzNzUiLCBcCi0gICAgICAgICAgIi0wLjE0MjUsIC0wLjEzNzUsIC0wLjEyNSwgLTAuMTE4NzUsIC0wLjExODc1LCAtMC4xMDg3NSwgLTAuMSIsIFwKLSAgICAgICAgICAiLTAuMTU1LCAtMC4xNDM3NSwgLTAuMTM3NSwgLTAuMTMxMjUsIC0wLjEyNSwgLTAuMTE1LCAtMC4xMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMTU4NzUsIC0wLjE1Mzc1LCAtMC4xNDc1LCAtMC4xMzUsIC0wLjEzNSwgLTAuMTI1LCAtMC4xMTYyNSIsIFwKLSAgICAgICAgICAiLTAuMTY3NSwgLTAuMTYyNSwgLTAuMTUsIC0wLjE0Mzc1LCAtMC4xMzc1LCAtMC4xMzM3NSwgLTAuMTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIkQmRSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzFfQU5fRV9FUV8xID09IDEnYjEiOwotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAyNSwgLTAuMDEzNzUsIC0wLjAwMTI1LCAwLjAxMTI1LCAwLjAxNzUsIDAuMDMzNzUsIDAuMDQyNSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAyNSwgLTAuMDEyNSwgMCwgMC4wMTI1LCAwLjAyMjUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAsIDAuMDE2MjUsIDAuMDI1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDQzNzUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAuMDAzNzUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjA1NSwgLTAuMDUsIC0wLjAzNzUsIC0wLjAyNSwgLTAuMDEyNSwgLTAuMDAyNSwgMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wNjUsIC0wLjA1Mzc1LCAtMC4wNDEyNSwgLTAuMDM1LCAtMC4wMjI1LCAtMC4wMDYyNSwgMC4wMDI1IiwgXAotICAgICAgICAgICItMC4wNzM3NSwgLTAuMDYyNSwgLTAuMDUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMTUsIC0wLjAwNjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRCYhRSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fRV9FUV8wID09IDEnYjEiOwotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2ODc1LCAwLjA1NzUsIDAuMDQ1LCAwLjAyNjI1LCAwLjAyLCAwLjAwMzc1LCAtMC4wMTEyNSIsIFwKLSAgICAgICAgICAiMC4wNzM3NSwgMC4wNjI1LCAwLjA1LCAwLjAzNzUsIDAuMDI1LCAwLjAwODc1LCAwIiwgXAotICAgICAgICAgICIwLjA4NjI1LCAwLjA3NSwgMC4wNjI1LCAwLjA1LCAwLjAzNzUsIDAuMDIxMjUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4wOTI1LCAwLjA4MTI1LCAwLjA2ODc1LCAwLjA1NjI1LCAwLjA0Mzc1LCAwLjAyNzUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMDk4NzUsIDAuMDg3NSwgMC4wNzUsIDAuMDYyNSwgMC4wNSwgMC4wMzM3NSwgMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMTA4NzUsIDAuMDk3NSwgMC4wODUsIDAuMDcyNSwgMC4wNiwgMC4wNDM3NSwgMC4wMzUiLCBcCi0gICAgICAgICAgIjAuMTE3NSwgMC4xMDYyNSwgMC4wOTM3NSwgMC4wNzUsIDAuMDY4NzUsIDAuMDUyNSwgMC4wMzc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJEJkUiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8xX0FOX0VfRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNDM3NSwgMC4xMzI1LCAwLjEyNjI1LCAwLjEyLCAwLjEwNzUsIDAuMTAzNzUsIDAuMDk1IiwgXAotICAgICAgICAgICIwLjE1NSwgMC4xNDM3NSwgMC4xMzc1LCAwLjEyNSwgMC4xMTg3NSwgMC4xMDg3NSwgMC4xMDYyNSIsIFwKLSAgICAgICAgICAiMC4xNjc1LCAwLjE1NjI1LCAwLjE0Mzc1LCAwLjEzNzUsIDAuMTMxMjUsIDAuMTIxMjUsIDAuMTEyNSIsIFwKLSAgICAgICAgICAiMC4xNzM3NSwgMC4xNjI1LCAwLjE1NjI1LCAwLjE0Mzc1LCAwLjEzNzUsIDAuMTI3NSwgMC4xMjUiLCBcCi0gICAgICAgICAgIjAuMTgsIDAuMTY4NzUsIDAuMTYyNSwgMC4xNSwgMC4xNDM3NSwgMC4xNCwgMC4xMzEyNSIsIFwKLSAgICAgICAgICAiMC4xOSwgMC4xNzg3NSwgMC4xNzI1LCAwLjE2LCAwLjE1Mzc1LCAwLjE0Mzc1LCAwLjE0MTI1IiwgXAotICAgICAgICAgICIwLjE5ODc1LCAwLjE4NzUsIDAuMTc1LCAwLjE2ODc1LCAwLjE2MjUsIDAuMTUyNSwgMC4xNDM3NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogRURGRlgxICoKLSAqIC0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoRURGRlgxKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMzg5MTc0OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIGZmIChOMzAsUUJJTlQpIHsKLSAgICBuZXh0X3N0YXRlIDogIigoRSBEKSArICghRSAoISghTjMwKSkpKSI7Ci0gICAgY2xvY2tlZF9vbiA6ICJDSyI7Ci0gIH0KLSAgcGluKENLKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2MzY1MjU7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjM2MjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2MzY1MjU7Ci0gICAgY2xvY2sgOiB0cnVlOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzAyMywgMC4wMDI5OTgsIDAuMDAyOTg3LCAwLjAwMjk5MSwgMC4wMDI5OTksIDAuMDAzMDIzLCAwLjAwMzA0MiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNTQ4OCwgMC4wMDU0NjUsIDAuMDA1NDY1LCAwLjAwNTQ3NCwgMC4wMDU1MDQsIDAuMDA1NTQyLCAwLjAwNTU4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRCZFIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9FX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4xNjE0ODEsIDAuMTcxNzUzLCAwLjE4NDI2MiwgMC4xOTU1MTQsIDAuMjA1MywgMC4yMTkxNDUsIDAuMjI5NDAyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wODY5MTksIDAuMDk2NzExLCAwLjEwODg0NCwgMC4xMTk2MzMsIDAuMTI4Njk0LCAwLjE0MDk2LCAwLjE1MDE4MyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjIwMzU1OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYxODk7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjIwMzU1OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjcyOCwgMC4wMDI3MTIsIDAuMDAyNzAyLCAwLjAwMjY5OCwgMC4wMDI2OTUsIDAuMDAyNjk1LCAwLjAwMjcxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA0ODM1LCAwLjAwNDgyNSwgMC4wMDQ4MiwgMC4wMDQ4MTYsIDAuMDA0ODE3LCAwLjAwNDgxOCwgMC4wMDQ4MjYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiRSI7Ci0gICAgICBzZGZfY29uZCA6ICJFID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjA2MjUsIC0wLjA1MTI1LCAtMC4wNDUsIC0wLjAzODc1LCAtMC4wMzg3NSwgLTAuMDI4NzUsIC0wLjAyNjI1IiwgXAotICAgICAgICAgICItMC4wNjc1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wNCwgLTAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjA4LCAtMC4wNzUsIC0wLjA2ODc1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDUyNSwgLTAuMDQzNzUiLCBcCi0gICAgICAgICAgIi0wLjA5MjUsIC0wLjA4MTI1LCAtMC4wNzUsIC0wLjA3NSwgLTAuMDY4NzUsIC0wLjA1ODc1LCAtMC4wNTYyNSIsIFwKLSAgICAgICAgICAiLTAuMDk4NzUsIC0wLjA5Mzc1LCAtMC4wODc1LCAtMC4wODEyNSwgLTAuMDc1LCAtMC4wNzEyNSwgLTAuMDY4NzUiLCBcCi0gICAgICAgICAgIi0wLjExNSwgLTAuMTEsIC0wLjEwMzc1LCAtMC4wOTc1LCAtMC4wOTEyNSwgLTAuMDg3NSwgLTAuMDg1IiwgXAotICAgICAgICAgICItMC4xMywgLTAuMTI1LCAtMC4xMTg3NSwgLTAuMTEyNSwgLTAuMTA2MjUsIC0wLjEwMjUsIC0wLjA5Mzc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDI1LCAtMC4wMTM3NSwgLTAuMDA3NSwgMC4wMDUsIDAuMDExMjUsIDAuMDIxMjUsIDAuMDMiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMjUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLjAwNjI1LCAwLjAxNjI1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAuMDAzNzUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjA0Mzc1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMTI1LCAtMC4wMDI1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wNjEyNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMTUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wNzEyNSwgLTAuMDYsIC0wLjA1Mzc1LCAtMC4wNDc1LCAtMC4wMzUsIC0wLjAyNSwgLTAuMDE2MjUiLCBcCi0gICAgICAgICAgIi0wLjA4LCAtMC4wNjg3NSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNCwgLTAuMDMxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIkUiOwotICAgICAgc2RmX2NvbmQgOiAiRSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTM3NSwgMC4wODI1LCAwLjA3LCAwLjA2Mzc1LCAwLjA1NzUsIDAuMDUzNzUsIDAuMDQ1IiwgXAotICAgICAgICAgICIwLjEwNSwgMC4wOTM3NSwgMC4wODEyNSwgMC4wNzUsIDAuMDY4NzUsIDAuMDY1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICIwLjExMTI1LCAwLjEsIDAuMDkzNzUsIDAuMDg3NSwgMC4wODEyNSwgMC4wNzEyNSwgMC4wNjg3NSIsIFwKLSAgICAgICAgICAiMC4xMjM3NSwgMC4xMTI1LCAwLjEwNjI1LCAwLjA5Mzc1LCAwLjA5Mzc1LCAwLjA4Mzc1LCAwLjA4MTI1IiwgXAotICAgICAgICAgICIwLjEzNjI1LCAwLjEyNSwgMC4xMTI1LCAwLjEwNjI1LCAwLjEsIDAuMDk2MjUsIDAuMDg3NSIsIFwKLSAgICAgICAgICAiMC4xNTI1LCAwLjE0MTI1LCAwLjEyODc1LCAwLjEyMjUsIDAuMTE2MjUsIDAuMTEyNSwgMC4xMDM3NSIsIFwKLSAgICAgICAgICAiMC4xNjc1LCAwLjE1NjI1LCAwLjE0Mzc1LCAwLjEzNzUsIDAuMTMxMjUsIDAuMTIxMjUsIDAuMTE4NzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzUsIDAuMDYzNzUsIDAuMDUxMjUsIDAuMDM4NzUsIDAuMDMyNSwgMC4wMTYyNSwgMC4wMDc1IiwgXAotICAgICAgICAgICIwLjA4NjI1LCAwLjA3NSwgMC4wNjI1LCAwLjA1LCAwLjAzNzUsIDAuMDI3NSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4wOTI1LCAwLjA4MTI1LCAwLjA2ODc1LCAwLjA1NjI1LCAwLjA1LCAwLjAzMzc1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiMC4xMDUsIDAuMDkzNzUsIDAuMDgxMjUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNDYyNSwgMC4wMzc1IiwgXAotICAgICAgICAgICIwLjExMTI1LCAwLjEsIDAuMDg3NSwgMC4wODEyNSwgMC4wNjg3NSwgMC4wNTg3NSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4xMjc1LCAwLjExNjI1LCAwLjEwMzc1LCAwLjA5MTI1LCAwLjA4NSwgMC4wNjg3NSwgMC4wNiIsIFwKLSAgICAgICAgICAiMC4xMzYyNSwgMC4xMzEyNSwgMC4xMTg3NSwgMC4xMDYyNSwgMC4wOTM3NSwgMC4wODM3NSwgMC4wNjg3NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNDAzNTM7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNDAzMjY7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNDAzNTM7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA0NTcsIDAuMDA0NTUxLCAwLjAwNDU0OSwgMC4wMDQ1NTgsIDAuMDA0NTY3LCAwLjAwNDU5MywgMC4wMDQ2MjQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDU3NzEsIDAuMDA1NzM4LCAwLjAwNTcyNiwgMC4wMDU3MywgMC4wMDU3NDYsIDAuMDA1Nzg4LCAwLjAwNTgyNyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRCI7Ci0gICAgICBzZGZfY29uZCA6ICJEID09IDEnYjAiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjA2ODc1LCAtMC4wNTc1LCAtMC4wNDUsIC0wLjAzMjUsIC0wLjAyNjI1LCAtMC4wMSwgLTAuMDAxMjUiLCBcCi0gICAgICAgICAgIi0wLjA4LCAtMC4wNjg3NSwgLTAuMDU2MjUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMjEyNSwgLTAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDg2MjUsIC0wLjA4MTI1LCAtMC4wNjg3NSwgLTAuMDU2MjUsIC0wLjA0Mzc1LCAtMC4wMzM3NSwgLTAuMDI1IiwgXAotICAgICAgICAgICItMC4wOTg3NSwgLTAuMDg3NSwgLTAuMDc1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDQ2MjUsIC0wLjAzMTI1IiwgXAotICAgICAgICAgICItMC4xMDUsIC0wLjA5Mzc1LCAtMC4wODEyNSwgLTAuMDc1LCAtMC4wNjI1LCAtMC4wNTI1LCAtMC4wNDM3NSIsIFwKLSAgICAgICAgICAiLTAuMTE1LCAtMC4xMDM3NSwgLTAuMDkxMjUsIC0wLjA4NSwgLTAuMDcyNSwgLTAuMDYyNSwgLTAuMDUzNzUiLCBcCi0gICAgICAgICAgIi0wLjEyMzc1LCAtMC4xMTI1LCAtMC4xLCAtMC4wOTM3NSwgLTAuMDgxMjUsIC0wLjA3MTI1LCAtMC4wNjI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMCwgMC4wMTEyNSwgMC4wMTc1LCAwLjAzLCAwLjAzNjI1LCAwLjA0NjI1LCAwLjA0ODc1IiwgXAotICAgICAgICAgICItMC4wMTEyNSwgMCwgMC4wMTI1LCAwLjAxODc1LCAwLjAyNSwgMC4wMzUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTI1LCAwLCAwLjAwNjI1LCAwLjAxMjUsIDAuMDIyNSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAyNSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAsIDAuMDEsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAuMDAzNzUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDUyNSwgLTAuMDQxMjUsIC0wLjAzNSwgLTAuMDIyNSwgLTAuMDE2MjUsIC0wLjAwNjI1LCAwLjAwMjUiLCBcCi0gICAgICAgICAgIi0wLjA2MTI1LCAtMC4wNSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDE1LCAtMC4wMDYyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJEIjsKLSAgICAgIHNkZl9jb25kIDogIkQgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDYyNSwgLTAuMDU3NSwgLTAuMDQ1LCAtMC4wNDUsIC0wLjAzODc1LCAtMC4wMjg3NSwgLTAuMDI2MjUiLCBcCi0gICAgICAgICAgIi0wLjA3Mzc1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wNCwgLTAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjA4NjI1LCAtMC4wNzUsIC0wLjA2ODc1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDUyNSwgLTAuMDQzNzUiLCBcCi0gICAgICAgICAgIi0wLjA5MjUsIC0wLjA4NzUsIC0wLjA4MTI1LCAtMC4wNzUsIC0wLjA2ODc1LCAtMC4wNjUsIC0wLjA1NjI1IiwgXAotICAgICAgICAgICItMC4xMDUsIC0wLjEsIC0wLjA5Mzc1LCAtMC4wODc1LCAtMC4wODEyNSwgLTAuMDc3NSwgLTAuMDY4NzUiLCBcCi0gICAgICAgICAgIi0wLjEyNzUsIC0wLjExNjI1LCAtMC4xMSwgLTAuMTAzNzUsIC0wLjA5NzUsIC0wLjA5Mzc1LCAtMC4wODUiLCBcCi0gICAgICAgICAgIi0wLjE0MjUsIC0wLjEzMTI1LCAtMC4xMjUsIC0wLjExODc1LCAtMC4xMTI1LCAtMC4xMDg3NSwgLTAuMSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2MjUsIDAuMDE3NSwgMC4wMywgMC4wMzYyNSwgMC4wNDI1LCAwLjA1ODc1LCAwLjA2NzUiLCBcCi0gICAgICAgICAgIjAuMDAxMjUsIDAuMDA2MjUsIDAuMDE4NzUsIDAuMDMxMjUsIDAuMDM3NSwgMC4wNDc1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICItMC4wMTEyNSwgMCwgMC4wMDYyNSwgMC4wMTg3NSwgMC4wMjUsIDAuMDM1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICItMC4wMTc1LCAtMC4wMTI1LCAwLCAwLjAwNjI1LCAwLjAxODc1LCAwLjAyODc1LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAsIDAuMDA2MjUsIDAuMDE2MjUsIDAuMDI1IiwgXAotICAgICAgICAgICItMC4wNCwgLTAuMDI4NzUsIC0wLjAyMjUsIC0wLjAxLCAtMC4wMDM3NSwgMC4wMDYyNSwgMC4wMTUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzNzUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwMjUsIDAuMDA2MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEIjsKLSAgICAgIHNkZl9jb25kIDogIkQgPT0gMSdiMCI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg3NSwgMC4wNzYyNSwgMC4wNjM3NSwgMC4wNTEyNSwgMC4wMzg3NSwgMC4wMjg3NSwgMC4wMiIsIFwKLSAgICAgICAgICAiMC4wOTI1LCAwLjA4MTI1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDUsIDAuMDQsIDAuMDI1IiwgXAotICAgICAgICAgICIwLjEwNSwgMC4wOTM3NSwgMC4wODEyNSwgMC4wNzUsIDAuMDYyNSwgMC4wNDYyNSwgMC4wMzc1IiwgXAotICAgICAgICAgICIwLjExNzUsIDAuMTA2MjUsIDAuMDkzNzUsIDAuMDgxMjUsIDAuMDY4NzUsIDAuMDU4NzUsIDAuMDUiLCBcCi0gICAgICAgICAgIjAuMTIzNzUsIDAuMTEyNSwgMC4xLCAwLjA4NzUsIDAuMDgxMjUsIDAuMDY1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICIwLjEzMzc1LCAwLjEyMjUsIDAuMTEsIDAuMDk3NSwgMC4wOTEyNSwgMC4wNzUsIDAuMDY2MjUiLCBcCi0gICAgICAgICAgIjAuMTQyNSwgMC4xMzEyNSwgMC4xMTg3NSwgMC4xMDYyNSwgMC4xLCAwLjA4Mzc1LCAwLjA3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1NjI1LCAwLjA0NSwgMC4wMzg3NSwgMC4wMzI1LCAwLjAzMjUsIDAuMDIyNSwgMC4wMiIsIFwKLSAgICAgICAgICAiMC4wNjc1LCAwLjA1NjI1LCAwLjA1LCAwLjA0Mzc1LCAwLjA0Mzc1LCAwLjAzMzc1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICIwLjA4LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDU2MjUsIDAuMDQ2MjUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMDg2MjUsIDAuMDgxMjUsIDAuMDc1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDU4NzUsIDAuMDUiLCBcCi0gICAgICAgICAgIjAuMDk4NzUsIDAuMDg3NSwgMC4wODEyNSwgMC4wNzUsIDAuMDc1LCAwLjA2NSwgMC4wNjI1IiwgXAotICAgICAgICAgICIwLjEwODc1LCAwLjA5NzUsIDAuMDkxMjUsIDAuMDg1LCAwLjA4NSwgMC4wNzUsIDAuMDcyNSIsIFwKLSAgICAgICAgICAiMC4xMTc1LCAwLjEwNjI1LCAwLjEsIDAuMDkzNzUsIDAuMDkzNzUsIDAuMDgzNzUsIDAuMDgxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIkQiOwotICAgICAgc2RmX2NvbmQgOiAiRCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODc1LCAwLjA3NjI1LCAwLjA2Mzc1LCAwLjA1NzUsIDAuMDUxMjUsIDAuMDQ3NSwgMC4wMzg3NSIsIFwKLSAgICAgICAgICAiMC4wOTg3NSwgMC4wODc1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1MjUsIDAuMDUiLCBcCi0gICAgICAgICAgIjAuMTA1LCAwLjEsIDAuMDg3NSwgMC4wODEyNSwgMC4wNzUsIDAuMDY1LCAwLjA2MjUiLCBcCi0gICAgICAgICAgIjAuMTE3NSwgMC4xMDYyNSwgMC4xLCAwLjA5Mzc1LCAwLjA4NzUsIDAuMDc3NSwgMC4wNzUiLCBcCi0gICAgICAgICAgIjAuMTMsIDAuMTE4NzUsIDAuMTEyNSwgMC4xMDYyNSwgMC4xLCAwLjA5LCAwLjA4NzUiLCBcCi0gICAgICAgICAgIjAuMTQ2MjUsIDAuMTQxMjUsIDAuMTI4NzUsIDAuMTIyNSwgMC4xMTYyNSwgMC4xMDYyNSwgMC4xMDM3NSIsIFwKLSAgICAgICAgICAiMC4xNjEyNSwgMC4xNTYyNSwgMC4xNDM3NSwgMC4xMzc1LCAwLjEzMTI1LCAwLjEyMTI1LCAwLjExODc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDMxMjUsIDAuMDIsIDAuMDA3NSwgMC4wMDEyNSwgLTAuMDExMjUsIC0wLjAyMTI1LCAtMC4wMyIsIFwKLSAgICAgICAgICAiMC4wMzYyNSwgMC4wMzEyNSwgMC4wMTg3NSwgMC4wMDYyNSwgMCwgLTAuMDEsIC0wLjAxODc1IiwgXAotICAgICAgICAgICIwLjA0ODc1LCAwLjA0Mzc1LCAwLjAzMTI1LCAwLjAxODc1LCAwLjAxMjUsIC0wLjAwMzc1LCAtMC4wMTI1IiwgXAotICAgICAgICAgICIwLjA2MTI1LCAwLjA1LCAwLjA0Mzc1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMDg3NSwgMCIsIFwKLSAgICAgICAgICAiMC4wNzM3NSwgMC4wNjI1LCAwLjA1LCAwLjA0Mzc1LCAwLjAzMTI1LCAwLjAyMTI1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMDksIDAuMDc4NzUsIDAuMDY2MjUsIDAuMDUzNzUsIDAuMDQ3NSwgMC4wMzc1LCAwLjAyODc1IiwgXAotICAgICAgICAgICIwLjA5ODc1LCAwLjA4NzUsIDAuMDgxMjUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNDYyNSwgMC4wMzc1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihRKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMjYxNzc7Ci0gICAgZnVuY3Rpb24gOiAiTjMwIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBub25fdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJpc2luZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMzQyNzUsIDAuMTU4NTUzLCAwLjI5NjIxNywgMC40MTcxNTUsIDAuNTc4OTM3LCAwLjkwMjAxMiwgMS4xMDMxNCIsIFwKLSAgICAgICAgICAiMC4xNDQ0MywgMC4xNjg4MzMsIDAuMzA2Mjg1LCAwLjQyNzI3NCwgMC41ODkwMTksIDAuOTExNDE0LCAxLjExNDE5IiwgXAotICAgICAgICAgICIwLjE1NjgyOCwgMC4xODEyMzIsIDAuMzE4NDU4LCAwLjQzOTk0OSwgMC42MDEwMjcsIDAuOTI0NTU0LCAxLjEyNjM5IiwgXAotICAgICAgICAgICIwLjE2Nzg4OSwgMC4xOTIyODEsIDAuMzI5ODMyLCAwLjQ1MTIxMiwgMC42MTIxNjksIDAuOTM1NjMsIDEuMTM3NjUiLCBcCi0gICAgICAgICAgIjAuMTc3NTM5LCAwLjIwMTkzOSwgMC4zMzkxNDQsIDAuNDYwMzk0LCAwLjYyMjE0NCwgMC45NDQ0NjMsIDEuMTQ3MzgiLCBcCi0gICAgICAgICAgIjAuMTkwNzc5LCAwLjIxNTE1OSwgMC4zNTI3MTgsIDAuNDczOTE4LCAwLjYzNDkzLCAwLjk1ODUyNSwgMS4xNjAzNyIsIFwKLSAgICAgICAgICAiMC4yMDA5NTUsIDAuMjI1Mzc0LCAwLjM2MjkzMywgMC40ODQwNDIsIDAuNjQ1NTU0LCAwLjk2ODc2NywgMS4xNzA4MSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTI1MTYsIDAuMTQxNTY4LCAwLjQyMjg0LCAwLjY3MTc5NSwgMS4wMDQ4NCwgMS42Njk5LCAyLjA4MzUxIiwgXAotICAgICAgICAgICIwLjA5Mjg1NiwgMC4xNDEwOTIsIDAuNDIyODE5LCAwLjY3MDc5OSwgMS4wMDQ4OCwgMS42Njc1NywgMi4wODU0NyIsIFwKLSAgICAgICAgICAiMC4wOTI4NDcsIDAuMTQxMTY4LCAwLjQyMjEyMSwgMC42NzIzNDcsIDEuMDAyOCwgMS42Njk4MywgMi4wODUzNiIsIFwKLSAgICAgICAgICAiMC4wOTI0MjQsIDAuMTQxNDQyLCAwLjQyMjgzNywgMC42NzA3MTMsIDEuMDAzMTksIDEuNjY5ODMsIDIuMDg1MzUiLCBcCi0gICAgICAgICAgIjAuMDkyMjQzLCAwLjE0MTQ0NCwgMC40MjIwNywgMC42NzE3MTgsIDEuMDA0ODYsIDEuNjY2MywgMi4wODU0NSIsIFwKLSAgICAgICAgICAiMC4wOTI5NiwgMC4xNDA4NzksIDAuNDIyODQxLCAwLjY3MjMxOCwgMS4wMDM3LCAxLjY2OTgsIDIuMDg1MzEiLCBcCi0gICAgICAgICAgIjAuMDkyOTQ3LCAwLjE0MTA5OCwgMC40MjI4NDQsIDAuNjcyMzAzLCAxLjAwNDc5LCAxLjY2OTc4LCAyLjA4NTM3Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE0ODYyMSwgMC4xNzM2MTksIDAuMzE0MTgyLCAwLjQzNzkzOSwgMC42MDI2OCwgMC45MzMyNjQsIDEuMTM5NzYiLCBcCi0gICAgICAgICAgIjAuMTU4ODkxLCAwLjE4MzgyNSwgMC4zMjQ0NSwgMC40NDgwNzMsIDAuNjEzMjkzLCAwLjk0MzUyLCAxLjE0OTkzIiwgXAotICAgICAgICAgICIwLjE3MTQxMywgMC4xOTYzMzMsIDAuMzM2OTU3LCAwLjQ2MDU4LCAwLjYyNTc5OSwgMC45NTYwMjgsIDEuMTYyNDQiLCBcCi0gICAgICAgICAgIjAuMTgyNjYzLCAwLjIwNzY3NiwgMC4zNDgyMjYsIDAuNDcxOTc5LCAwLjYzNzEyMiwgMC45NjczMjMsIDEuMTczNzkiLCBcCi0gICAgICAgICAgIjAuMTkyNDQ4LCAwLjIxNzQ1NSwgMC4zNTc3MjcsIDAuNDgxNjIyLCAwLjY0NjgzLCAwLjk3NzAyOCwgMS4xODM1MiIsIFwKLSAgICAgICAgICAiMC4yMDYyODgsIDAuMjMxMjg2LCAwLjM3MTg1LCAwLjQ5NTYxNCwgMC42NjA3NTksIDAuOTkwOTIzLCAxLjE5NzQ1IiwgXAotICAgICAgICAgICIwLjIxNjY0LCAwLjI0MTUwMywgMC4zODIyMDMsIDAuNTA1NzYsIDAuNjcwNjgzLCAxLjAwMTI2LCAxLjIwNjY5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5MjIwMSwgMC4xNDE2NDMsIDAuNDIyNjMyLCAwLjY3MjQyMSwgMS4wMDMyOSwgMS42NzE2NSwgMi4wODgyNyIsIFwKLSAgICAgICAgICAiMC4wOTI1OTYsIDAuMTQxMTUzLCAwLjQyMjYyOSwgMC42NzI2ODcsIDEuMDA1NDcsIDEuNjcxNTcsIDIuMDg4MDIiLCBcCi0gICAgICAgICAgIjAuMDkyNjkxLCAwLjE0MTUyLCAwLjQyMjYzMSwgMC42NzI2OTUsIDEuMDA1NDcsIDEuNjcxNTQsIDIuMDg4MDEiLCBcCi0gICAgICAgICAgIjAuMDkyNjEzLCAwLjE0MTAzNSwgMC40MjI2MDQsIDAuNjcyNDExLCAxLjAwNTYsIDEuNjcxNjIsIDIuMDg4MTUiLCBcCi0gICAgICAgICAgIjAuMDkyNTUzLCAwLjE0MTE1NiwgMC40MjI2MzQsIDAuNjcyNzEyLCAxLjAwNTM3LCAxLjY3MTQ5LCAyLjA4ODAxIiwgXAotICAgICAgICAgICIwLjA5MjMzNywgMC4xNDE2MzUsIDAuNDIyNjMsIDAuNjcyNDE1LCAxLjAwNTY0LCAxLjY3MTYyLCAyLjA4ODMiLCBcCi0gICAgICAgICAgIjAuMDkyMTIsIDAuMTQxNTY1LCAwLjQyMjYxNSwgMC42NzIyMzQsIDEuMDAzMjIsIDEuNjcxNTUsIDIuMDgwMzQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0MjM3LCAwLjAwNDI0NCwgMC4wMDQyNTQsIDAuMDA0MjU2LCAwLjAwNDI1NywgMC4wMDQyNTgsIDAuMDA0MjU4IiwgXAotICAgICAgICAgICIwLjAwNDIyLCAwLjAwNDIyOCwgMC4wMDQyMzgsIDAuMDA0MjQsIDAuMDA0MjQxLCAwLjAwNDI0MiwgMC4wMDQyNDIiLCBcCi0gICAgICAgICAgIjAuMDA0MjE0LCAwLjAwNDIyMSwgMC4wMDQyMzEsIDAuMDA0MjMzLCAwLjAwNDIzNCwgMC4wMDQyMzYsIDAuMDA0MjM1IiwgXAotICAgICAgICAgICIwLjAwNDIxNywgMC4wMDQyMjUsIDAuMDA0MjM1LCAwLjAwNDIzNywgMC4wMDQyMzgsIDAuMDA0MjM5LCAwLjAwNDIzOSIsIFwKLSAgICAgICAgICAiMC4wMDQyMjIsIDAuMDA0MjMsIDAuMDA0MjQsIDAuMDA0MjQyLCAwLjAwNDI0MywgMC4wMDQyNDQsIDAuMDA0MjQ0IiwgXAotICAgICAgICAgICIwLjAwNDIzNSwgMC4wMDQyNDMsIDAuMDA0MjUyLCAwLjAwNDI1NSwgMC4wMDQyNTYsIDAuMDA0MjU3LCAwLjAwNDI1NyIsIFwKLSAgICAgICAgICAiMC4wMDQyNDksIDAuMDA0MjU3LCAwLjAwNDI2NywgMC4wMDQyNjksIDAuMDA0MjcsIDAuMDA0MjcxLCAwLjAwNDI3MSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDQ3NCwgMC4wMDQ0ODIsIDAuMDA0NDkyLCAwLjAwNDQ5NCwgMC4wMDQ0OTUsIDAuMDA0NDk1LCAwLjAwNDQ5NiIsIFwKLSAgICAgICAgICAiMC4wMDQ0NiwgMC4wMDQ0NjcsIDAuMDA0NDc4LCAwLjAwNDQ4LCAwLjAwNDQ4MSwgMC4wMDQ0ODIsIDAuMDA0NDgyIiwgXAotICAgICAgICAgICIwLjAwNDQ2MiwgMC4wMDQ0NywgMC4wMDQ0OCwgMC4wMDQ0ODIsIDAuMDA0NDg0LCAwLjAwNDQ4NSwgMC4wMDQ0ODQiLCBcCi0gICAgICAgICAgIjAuMDA0NDcxLCAwLjAwNDQ3OSwgMC4wMDQ0ODksIDAuMDA0NDkxLCAwLjAwNDQ5MiwgMC4wMDQ0OTMsIDAuMDA0NDkzIiwgXAotICAgICAgICAgICIwLjAwNDQ4NywgMC4wMDQ0OTQsIDAuMDA0NTA1LCAwLjAwNDUwNywgMC4wMDQ1MDgsIDAuMDA0NTA5LCAwLjAwNDUwOSIsIFwKLSAgICAgICAgICAiMC4wMDQ0OTYsIDAuMDA0NTA0LCAwLjAwNDUxNCwgMC4wMDQ1MTYsIDAuMDA0NTE4LCAwLjAwNDUxOCwgMC4wMDQ1MTkiLCBcCi0gICAgICAgICAgIjAuMDA0NTIxLCAwLjAwNDUyOSwgMC4wMDQ1MzksIDAuMDA0NTQsIDAuMDA0NTQyLCAwLjAwNDU0MywgMC4wMDQ1NDQiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFFOKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMjU5MTU3OwotICAgIGZ1bmN0aW9uIDogIlFCSU5UIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBub25fdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJpc2luZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNjE0ODEsIDAuMTg2NTMzLCAwLjMyODQ2MiwgMC40NTM2NDQsIDAuNjIwNjMxLCAwLjk1NDQ5NywgMS4xNjMyNiIsIFwKLSAgICAgICAgICAiMC4xNzE3NTMsIDAuMTk2Nzk3LCAwLjMzODczLCAwLjQ2MzkxNiwgMC42MzA4NDYsIDAuOTY0NzU5LCAxLjE3MzQ3IiwgXAotICAgICAgICAgICIwLjE4NDI2MiwgMC4yMDkzMDQsIDAuMzUxMjM4LCAwLjQ3NjQyMywgMC42NDMzNTMsIDAuOTc3MjY3LCAxLjE4NTk4IiwgXAotICAgICAgICAgICIwLjE5NTUxNCwgMC4yMjA1NjksIDAuMzYyNDk1LCAwLjQ4NzY3NSwgMC42NTQ2MzQsIDAuOTg4NTM2LCAxLjE5NzI4IiwgXAotICAgICAgICAgICIwLjIwNTMsIDAuMjMwMzU0LCAwLjM3MjI5MSwgMC40OTc0NjcsIDAuNjY0Mzg4LCAwLjk5ODI4MywgMS4yMDcwMyIsIFwKLSAgICAgICAgICAiMC4yMTkxNDUsIDAuMjQ0MTk3LCAwLjM4NjEyNiwgMC41MTEzMSwgMC42NzgyNzEsIDEuMDEyMTYsIDEuMjIwOTMiLCBcCi0gICAgICAgICAgIjAuMjI5NDAyLCAwLjI1NDQ0LCAwLjM5NjM4MSwgMC41MjE0NzUsIDAuNjg4MzQ4LCAxLjAyMjQsIDEuMjMwNzMiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDkxODk1LCAwLjE0MjkzLCAwLjQzNDA3NywgMC42OTA2ODYsIDEuMDMxMDYsIDEuNzE3NDgsIDIuMTQ1NTYiLCBcCi0gICAgICAgICAgIjAuMDkxODQ0LCAwLjE0MjgwMywgMC40MzQwNzQsIDAuNjkwMzg2LCAxLjAzMjkxLCAxLjcxNzQ4LCAyLjE0NTM4IiwgXAotICAgICAgICAgICIwLjA5MTk4NiwgMC4xNDMwNjMsIDAuNDM0MDc1LCAwLjY5MDM5MywgMS4wMzI5MSwgMS43MTc0OCwgMi4xNDUzOCIsIFwKLSAgICAgICAgICAiMC4wOTE4NzQsIDAuMTQyODM2LCAwLjQzNDA2NiwgMC42OTA2NzksIDEuMDMyOTEsIDEuNzE3NDUsIDIuMTQ1NDgiLCBcCi0gICAgICAgICAgIjAuMDkxODc3LCAwLjE0MjgzNCwgMC40MzM0MjgsIDAuNjkwMzkzLCAxLjAzMjg4LCAxLjcxNzM3LCAyLjE0NTM4IiwgXAotICAgICAgICAgICIwLjA5MTg4NSwgMC4xNDI5MzEsIDAuNDM0MDc3LCAwLjY5MDY4NCwgMS4wMzI5NCwgMS43MTc0NywgMi4xNDU1OCIsIFwKLSAgICAgICAgICAiMC4wOTE3MjcsIDAuMTQzMDU0LCAwLjQzNDA3NSwgMC42OTAwMTgsIDEuMDMxMjYsIDEuNzE3NDcsIDIuMTM5MTEiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTQ5MDU1LCAwLjE3Mzk2NywgMC4zMTUwOTYsIDAuNDM5NTg4LCAwLjYwNTU3NiwgMC45Mzc1NDUsIDEuMTQ1MDEiLCBcCi0gICAgICAgICAgIjAuMTU5MjA5LCAwLjE4NDEyNywgMC4zMjUyMzcsIDAuNDQ5NzM3LCAwLjYxNTcxMywgMC45NDc2OTgsIDEuMTU1MjEiLCBcCi0gICAgICAgICAgIjAuMTcxNjAzLCAwLjE5NjUyMiwgMC4zMzc2NDEsIDAuNDYyMTQ5LCAwLjYyODAwNSwgMC45NjAxMDEsIDEuMTY3NTYiLCBcCi0gICAgICAgICAgIjAuMTgyNjY4LCAwLjIwNzU4NSwgMC4zNDg3MTEsIDAuNDczMjUzLCAwLjYzOTE3NywgMC45NzExNiwgMS4xNzg2OCIsIFwKLSAgICAgICAgICAiMC4xOTIzMTUsIDAuMjE3MjMzLCAwLjM1ODM1NSwgMC40ODI4NDIsIDAuNjQ4ODIxLCAwLjk4MDgxNSwgMS4xODgzMyIsIFwKLSAgICAgICAgICAiMC4yMDU1NTMsIDAuMjMwNDcyLCAwLjM3MTU5NywgMC40OTYwOTQsIDAuNjYyMDY4LCAwLjk5NDA0OCwgMS4yMDE1MSIsIFwKLSAgICAgICAgICAiMC4yMTU3MzMsIDAuMjQwNjUsIDAuMzgxNzc3LCAwLjUwNjI1NywgMC42NzIyMzMsIDEuMDA0MjMsIDEuMjExNzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg5NzQ4LCAwLjEzOTU4MywgMC40MjMzNjgsIDAuNjczNDkxLCAxLjAwNzcyLCAxLjY3NTY0LCAyLjA5MDgzIiwgXAotICAgICAgICAgICIwLjA4OTcyOSwgMC4xMzk0NjIsIDAuNDIzMzAyLCAwLjY3Mjk5NiwgMS4wMDc2NiwgMS42NzM0OSwgMi4wOTMxNCIsIFwKLSAgICAgICAgICAiMC4wODk3MiwgMC4xMzk0MzksIDAuNDIyODY2LCAwLjY3Mzc4NSwgMS4wMDY0MSwgMS42NzU1NywgMi4wOTI4OCIsIFwKLSAgICAgICAgICAiMC4wODk3NDgsIDAuMTM5NDgyLCAwLjQyMzM0OSwgMC42NzI2NjUsIDEuMDA2NTcsIDEuNjc1NTksIDIuMDkzMTIiLCBcCi0gICAgICAgICAgIjAuMDg5NzUsIDAuMTM5NDc1LCAwLjQyMjg4NCwgMC42NzM0NDQsIDEuMDA3NjQsIDEuNjcyNzcsIDIuMDkzMTkiLCBcCi0gICAgICAgICAgIjAuMDg5NzI3LCAwLjEzOTQ4OCwgMC40MjMzNTgsIDAuNjczNzgzLCAxLjAwNjY5LCAxLjY3NTU4LCAyLjA5Mjg5IiwgXAotICAgICAgICAgICIwLjA4OTc0OCwgMC4xMzk0NjYsIDAuNDIzMzYyLCAwLjY3MzcyNCwgMS4wMDc1OSwgMS42NzU1OSwgMi4wOTMxNiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQ0NzQsIDAuMDA0NDgyLCAwLjAwNDQ5MiwgMC4wMDQ0OTQsIDAuMDA0NDk1LCAwLjAwNDQ5NSwgMC4wMDQ0OTYiLCBcCi0gICAgICAgICAgIjAuMDA0NDYsIDAuMDA0NDY3LCAwLjAwNDQ3OCwgMC4wMDQ0OCwgMC4wMDQ0ODEsIDAuMDA0NDgyLCAwLjAwNDQ4MiIsIFwKLSAgICAgICAgICAiMC4wMDQ0NjIsIDAuMDA0NDcsIDAuMDA0NDgsIDAuMDA0NDgyLCAwLjAwNDQ4NCwgMC4wMDQ0ODUsIDAuMDA0NDg0IiwgXAotICAgICAgICAgICIwLjAwNDQ3MSwgMC4wMDQ0NzksIDAuMDA0NDg5LCAwLjAwNDQ5MSwgMC4wMDQ0OTIsIDAuMDA0NDkzLCAwLjAwNDQ5MyIsIFwKLSAgICAgICAgICAiMC4wMDQ0ODcsIDAuMDA0NDk0LCAwLjAwNDUwNSwgMC4wMDQ1MDcsIDAuMDA0NTA4LCAwLjAwNDUwOSwgMC4wMDQ1MDkiLCBcCi0gICAgICAgICAgIjAuMDA0NDk2LCAwLjAwNDUwNCwgMC4wMDQ1MTQsIDAuMDA0NTE2LCAwLjAwNDUxOCwgMC4wMDQ1MTgsIDAuMDA0NTE5IiwgXAotICAgICAgICAgICIwLjAwNDUyMSwgMC4wMDQ1MjksIDAuMDA0NTM5LCAwLjAwNDU0LCAwLjAwNDU0MiwgMC4wMDQ1NDMsIDAuMDA0NTQ0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0MjM3LCAwLjAwNDI0NCwgMC4wMDQyNTQsIDAuMDA0MjU2LCAwLjAwNDI1NywgMC4wMDQyNTgsIDAuMDA0MjU4IiwgXAotICAgICAgICAgICIwLjAwNDIyLCAwLjAwNDIyOCwgMC4wMDQyMzgsIDAuMDA0MjQsIDAuMDA0MjQxLCAwLjAwNDI0MiwgMC4wMDQyNDIiLCBcCi0gICAgICAgICAgIjAuMDA0MjE0LCAwLjAwNDIyMSwgMC4wMDQyMzEsIDAuMDA0MjMzLCAwLjAwNDIzNCwgMC4wMDQyMzYsIDAuMDA0MjM1IiwgXAotICAgICAgICAgICIwLjAwNDIxNywgMC4wMDQyMjUsIDAuMDA0MjM1LCAwLjAwNDIzNywgMC4wMDQyMzgsIDAuMDA0MjM5LCAwLjAwNDIzOSIsIFwKLSAgICAgICAgICAiMC4wMDQyMjIsIDAuMDA0MjMsIDAuMDA0MjQsIDAuMDA0MjQyLCAwLjAwNDI0MywgMC4wMDQyNDQsIDAuMDA0MjQ0IiwgXAotICAgICAgICAgICIwLjAwNDIzNSwgMC4wMDQyNDMsIDAuMDA0MjUyLCAwLjAwNDI1NSwgMC4wMDQyNTYsIDAuMDA0MjU3LCAwLjAwNDI1NyIsIFwKLSAgICAgICAgICAiMC4wMDQyNDksIDAuMDA0MjU3LCAwLjAwNDI2NywgMC4wMDQyNjksIDAuMDA0MjcsIDAuMDA0MjcxLCAwLjAwNDI3MSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogRURGRlg0ICoKLSAqIC0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoRURGRlg0KSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuNjgwMDY2OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIGZmIChOMzAsUUJJTlQpIHsKLSAgICBuZXh0X3N0YXRlIDogIigoRSBEKSArICghRSAoISghTjMwKSkpKSI7Ci0gICAgY2xvY2tlZF9vbiA6ICJDSyI7Ci0gIH0KLSAgcGluKENLKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2NjY4ODg7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjY2NTk2OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDY2Njg4ODsKLSAgICBjbG9jayA6IHRydWU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzMDc4LCAwLjAwMzA1LCAwLjAwMzA0MiwgMC4wMDMwNDQsIDAuMDAzMDU0LCAwLjAwMzA3NSwgMC4wMDMwOTYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDU2NzIsIDAuMDA1NjUsIDAuMDA1NjQ5LCAwLjAwNTY1NywgMC4wMDU2ODcsIDAuMDA1NzI3LCAwLjAwNTc2NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQmRSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fRV9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMTUyMDQ3LCAwLjE2MjIyMiwgMC4xNzQ4NDIsIDAuMTg2MjgsIDAuMTk2MjYzLCAwLjIxMDI3MSwgMC4yMjAzNTYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjA4OTE5NiwgMC4wOTg5NDMsIDAuMTExMTIxLCAwLjEyMjAzMywgMC4xMzEyODEsIDAuMTQzNzEsIDAuMTUzMTUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEQpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYxODAwMTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MTY3MzI7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjE4MDAxOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjU2MiwgMC4wMDI1NDYsIDAuMDAyNTM4LCAwLjAwMjUzMiwgMC4wMDI1MzEsIDAuMDAyNTMxLCAwLjAwMjU0NCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNDkyLCAwLjAwNDkxMiwgMC4wMDQ5MDcsIDAuMDA0OTAzLCAwLjAwNDkwNSwgMC4wMDQ5MDUsIDAuMDA0OTEyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIkUiOwotICAgICAgc2RmX2NvbmQgOiAiRSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wNTYyNSwgLTAuMDUxMjUsIC0wLjA0NSwgLTAuMDM4NzUsIC0wLjAzMjUsIC0wLjAyODc1LCAtMC4wMiIsIFwKLSAgICAgICAgICAiLTAuMDY3NSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDQsIC0wLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wOCwgLTAuMDY4NzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNTYyNSwgLTAuMDQ2MjUsIC0wLjA0Mzc1IiwgXAotICAgICAgICAgICItMC4wODYyNSwgLTAuMDgxMjUsIC0wLjA3NSwgLTAuMDY4NzUsIC0wLjA2MjUsIC0wLjA1ODc1LCAtMC4wNTYyNSIsIFwKLSAgICAgICAgICAiLTAuMDk4NzUsIC0wLjA5Mzc1LCAtMC4wODc1LCAtMC4wODEyNSwgLTAuMDc1LCAtMC4wNzEyNSwgLTAuMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMTE1LCAtMC4xMSwgLTAuMTAzNzUsIC0wLjA5NzUsIC0wLjA5MTI1LCAtMC4wODc1LCAtMC4wNzg3NSIsIFwKLSAgICAgICAgICAiLTAuMTIzNzUsIC0wLjExODc1LCAtMC4xMTI1LCAtMC4xMDYyNSwgLTAuMTA2MjUsIC0wLjA5NjI1LCAtMC4wOTM3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAxODc1LCAtMC4wMDc1LCAtMC4wMDEyNSwgMC4wMTEyNSwgMC4wMTc1LCAwLjAyNzUsIDAuMDM2MjUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAsIDAuMDA2MjUsIDAuMDE2MjUsIDAuMDI1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDMxMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAwLCAwLjAxLCAwLjAxODc1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDI1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMDg3NSwgMCIsIFwKLSAgICAgICAgICAiLTAuMDY1LCAtMC4wNTM3NSwgLTAuMDQ3NSwgLTAuMDQxMjUsIC0wLjAzNSwgLTAuMDI1LCAtMC4wMTYyNSIsIFwKLSAgICAgICAgICAiLTAuMDczNzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjAzMzc1LCAtMC4wMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIkUiOwotICAgICAgc2RmX2NvbmQgOiAiRSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTM3NSwgMC4wODI1LCAwLjA3NjI1LCAwLjA3LCAwLjA2Mzc1LCAwLjA1Mzc1LCAwLjA1MTI1IiwgXAotICAgICAgICAgICIwLjEwNSwgMC4wOTM3NSwgMC4wODEyNSwgMC4wNzUsIDAuMDY4NzUsIDAuMDY1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICIwLjExNzUsIDAuMTA2MjUsIDAuMDkzNzUsIDAuMDg3NSwgMC4wODEyNSwgMC4wNzEyNSwgMC4wNjg3NSIsIFwKLSAgICAgICAgICAiMC4xMjM3NSwgMC4xMTI1LCAwLjEwNjI1LCAwLjEsIDAuMDkzNzUsIDAuMDgzNzUsIDAuMDgxMjUiLCBcCi0gICAgICAgICAgIjAuMTM2MjUsIDAuMTI1LCAwLjExODc1LCAwLjEwNjI1LCAwLjEsIDAuMDk2MjUsIDAuMDg3NSIsIFwKLSAgICAgICAgICAiMC4xNTI1LCAwLjE0MTI1LCAwLjEzNSwgMC4xMjI1LCAwLjExNjI1LCAwLjExMjUsIDAuMTAzNzUiLCBcCi0gICAgICAgICAgIjAuMTY3NSwgMC4xNTYyNSwgMC4xNDM3NSwgMC4xMzc1LCAwLjEzMTI1LCAwLjEyNzUsIDAuMTE4NzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzUsIDAuMDYzNzUsIDAuMDUxMjUsIDAuMDM4NzUsIDAuMDMyNSwgMC4wMTYyNSwgMC4wMDc1IiwgXAotICAgICAgICAgICIwLjA4NjI1LCAwLjA3NSwgMC4wNjI1LCAwLjA1LCAwLjAzNzUsIDAuMDI3NSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4wOTI1LCAwLjA4MTI1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDUsIDAuMDMzNzUsIDAuMDI1IiwgXAotICAgICAgICAgICIwLjEwNSwgMC4wOTM3NSwgMC4wODEyNSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA0NjI1LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIjAuMTExMjUsIDAuMSwgMC4wODc1LCAwLjA4MTI1LCAwLjA2ODc1LCAwLjA1ODc1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjEyNzUsIDAuMTE2MjUsIDAuMTAzNzUsIDAuMDkxMjUsIDAuMDg1LCAwLjA2ODc1LCAwLjA2IiwgXAotICAgICAgICAgICIwLjE0MjUsIDAuMTMxMjUsIDAuMTE4NzUsIDAuMTA2MjUsIDAuMDkzNzUsIDAuMDgzNzUsIDAuMDY4NzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEUpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTE4MjUyOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTE4MjUyOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTE4MTg4OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNDYzNSwgMC4wMDQ2MTIsIDAuMDA0NjA4LCAwLjAwNDYxMywgMC4wMDQ2MjQsIDAuMDA0NjQ2LCAwLjAwNDY3MiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNjAyOSwgMC4wMDU5OTUsIDAuMDA1OTk1LCAwLjAwNTk5MywgMC4wMDYwMDMsIDAuMDA2MDQyLCAwLjAwNjA4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEIjsKLSAgICAgIHNkZl9jb25kIDogIkQgPT0gMSdiMCI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDY4NzUsIC0wLjA1NzUsIC0wLjA0NSwgLTAuMDM4NzUsIC0wLjAyNjI1LCAtMC4wMTYyNSwgLTAuMDAxMjUiLCBcCi0gICAgICAgICAgIi0wLjA4LCAtMC4wNjg3NSwgLTAuMDU2MjUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMjEyNSwgLTAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDkyNSwgLTAuMDgxMjUsIC0wLjA2ODc1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjAzMzc1LCAtMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjA5ODc1LCAtMC4wODc1LCAtMC4wNzUsIC0wLjA2ODc1LCAtMC4wNTYyNSwgLTAuMDQ2MjUsIC0wLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjEwNSwgLTAuMSwgLTAuMDg3NSwgLTAuMDc1LCAtMC4wNjI1LCAtMC4wNTI1LCAtMC4wNDM3NSIsIFwKLSAgICAgICAgICAiLTAuMTIxMjUsIC0wLjExLCAtMC4wOTc1LCAtMC4wODUsIC0wLjA3ODc1LCAtMC4wNjI1LCAtMC4wNTM3NSIsIFwKLSAgICAgICAgICAiLTAuMTMsIC0wLjExODc1LCAtMC4xMDYyNSwgLTAuMDkzNzUsIC0wLjA4NzUsIC0wLjA3MTI1LCAtMC4wNjI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDI1LCAtMC4wMiwgLTAuMDIsIC0wLjAxMzc1LCAtMC4wMTM3NSwgLTAuMDAzNzUsIC0wLjAwMTI1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDMxMjUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTUsIC0wLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wNDM3NSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzNzUsIC0wLjAyNzUsIC0wLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDQsIC0wLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wNjc1LCAtMC4wNjI1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjA0NjI1LCAtMC4wNDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDcxMjUsIC0wLjA3MjUsIC0wLjA3MjUsIC0wLjA2NjI1LCAtMC4wNjYyNSwgLTAuMDU2MjUsIC0wLjA1Mzc1IiwgXAotICAgICAgICAgICItMC4wOCwgLTAuMDgxMjUsIC0wLjA4MTI1LCAtMC4wNzUsIC0wLjA3NSwgLTAuMDY1LCAtMC4wNjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIkQiOwotICAgICAgc2RmX2NvbmQgOiAiRCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wNjI1LCAtMC4wNTc1LCAtMC4wNDUsIC0wLjA0NSwgLTAuMDM4NzUsIC0wLjAyODc1LCAtMC4wMjYyNSIsIFwKLSAgICAgICAgICAiLTAuMDczNzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjA0LCAtMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDg2MjUsIC0wLjA3NSwgLTAuMDY4NzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNTI1LCAtMC4wNDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDk4NzUsIC0wLjA4NzUsIC0wLjA4MTI1LCAtMC4wNzUsIC0wLjA2ODc1LCAtMC4wNjUsIC0wLjA1NjI1IiwgXAotICAgICAgICAgICItMC4xMDUsIC0wLjEsIC0wLjA5Mzc1LCAtMC4wODc1LCAtMC4wODEyNSwgLTAuMDc3NSwgLTAuMDY4NzUiLCBcCi0gICAgICAgICAgIi0wLjEyNzUsIC0wLjExNjI1LCAtMC4xMSwgLTAuMTAzNzUsIC0wLjA5NzUsIC0wLjA5Mzc1LCAtMC4wODUiLCBcCi0gICAgICAgICAgIi0wLjE0MjUsIC0wLjEzMTI1LCAtMC4xMjUsIC0wLjExODc1LCAtMC4xMTI1LCAtMC4xMDg3NSwgLTAuMSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2MjUsIDAuMDExMjUsIDAuMDIzNzUsIDAuMDMsIDAuMDQyNSwgMC4wNTI1LCAwLjA2MTI1IiwgXAotICAgICAgICAgICItMC4wMDUsIDAuMDA2MjUsIDAuMDEyNSwgMC4wMjUsIDAuMDMxMjUsIDAuMDQxMjUsIDAuMDUiLCBcCi0gICAgICAgICAgIi0wLjAxNzUsIC0wLjAwNjI1LCAwLjAwNjI1LCAwLjAxMjUsIDAuMDE4NzUsIDAuMDI4NzUsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxODc1LCAtMC4wMDYyNSwgMCwgMC4wMTI1LCAwLjAyMjUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMjUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLCAwLjAxLCAwLjAxODc1IiwgXAotICAgICAgICAgICItMC4wNCwgLTAuMDM1LCAtMC4wMjI1LCAtMC4wMTYyNSwgLTAuMDEsIDAsIDAuMDA4NzUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDA4NzUsIDAiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEIjsKLSAgICAgIHNkZl9jb25kIDogIkQgPT0gMSdiMCI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg3NSwgMC4wNzYyNSwgMC4wNjM3NSwgMC4wNTEyNSwgMC4wNDUsIDAuMDI4NzUsIDAuMDIiLCBcCi0gICAgICAgICAgIjAuMDk4NzUsIDAuMDg3NSwgMC4wNzUsIDAuMDYyNSwgMC4wNSwgMC4wNCwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4xMTEyNSwgMC4xLCAwLjA4NzUsIDAuMDc1LCAwLjA2MjUsIDAuMDUyNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4xMTc1LCAwLjEwNjI1LCAwLjA5Mzc1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNTg3NSwgMC4wNSIsIFwKLSAgICAgICAgICAiMC4xMjM3NSwgMC4xMTI1LCAwLjEsIDAuMDkzNzUsIDAuMDgxMjUsIDAuMDY1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICIwLjEzMzc1LCAwLjEyODc1LCAwLjExLCAwLjEwMzc1LCAwLjA5MTI1LCAwLjA4MTI1LCAwLjA2NjI1IiwgXAotICAgICAgICAgICIwLjE0MjUsIDAuMTMxMjUsIDAuMTE4NzUsIDAuMTEyNSwgMC4xLCAwLjA5LCAwLjA3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1LCAwLjAzODc1LCAwLjAzMjUsIDAuMDI2MjUsIDAuMDI2MjUsIDAuMDE2MjUsIDAuMDEzNzUiLCBcCi0gICAgICAgICAgIjAuMDYxMjUsIDAuMDUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMjc1LCAwLjAxODc1IiwgXAotICAgICAgICAgICIwLjA3Mzc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDUsIDAuMDQzNzUsIDAuMDQsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMDgsIDAuMDc1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDUyNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4wOTI1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1ODc1LCAwLjA1IiwgXAotICAgICAgICAgICIwLjEwMjUsIDAuMDkxMjUsIDAuMDg1LCAwLjA3ODc1LCAwLjA3ODc1LCAwLjA2ODc1LCAwLjA2NjI1IiwgXAotICAgICAgICAgICIwLjExMTI1LCAwLjEsIDAuMDkzNzUsIDAuMDg3NSwgMC4wODEyNSwgMC4wNzc1LCAwLjA2ODc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJEIjsKLSAgICAgIHNkZl9jb25kIDogIkQgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg3NSwgMC4wNzYyNSwgMC4wNywgMC4wNjM3NSwgMC4wNTc1LCAwLjA0NzUsIDAuMDQ1IiwgXAotICAgICAgICAgICIwLjA5ODc1LCAwLjA4NzUsIDAuMDc1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDU4NzUsIDAuMDUiLCBcCi0gICAgICAgICAgIjAuMTExMjUsIDAuMSwgMC4wODc1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNzEyNSwgMC4wNjI1IiwgXAotICAgICAgICAgICIwLjEyMzc1LCAwLjExMjUsIDAuMSwgMC4wOTM3NSwgMC4wODc1LCAwLjA3NzUsIDAuMDc1IiwgXAotICAgICAgICAgICIwLjEzNjI1LCAwLjEyNSwgMC4xMTI1LCAwLjEwNjI1LCAwLjEsIDAuMDksIDAuMDg3NSIsIFwKLSAgICAgICAgICAiMC4xNTI1LCAwLjE0MTI1LCAwLjEyODc1LCAwLjEyMjUsIDAuMTE2MjUsIDAuMTEyNSwgMC4xMDM3NSIsIFwKLSAgICAgICAgICAiMC4xNjc1LCAwLjE1NjI1LCAwLjE0Mzc1LCAwLjEzNzUsIDAuMTMxMjUsIDAuMTI3NSwgMC4xMTg3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyNSwgMC4wMTM3NSwgMC4wMDEyNSwgLTAuMDExMjUsIC0wLjAxNzUsIC0wLjAyNzUsIC0wLjAzNjI1IiwgXAotICAgICAgICAgICIwLjAzLCAwLjAyNSwgMC4wMTI1LCAwLCAtMC4wMDYyNSwgLTAuMDIyNSwgLTAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMDQyNSwgMC4wMzEyNSwgMC4wMjUsIDAuMDEyNSwgMC4wMDYyNSwgLTAuMDEsIC0wLjAxODc1IiwgXAotICAgICAgICAgICIwLjA1NSwgMC4wNDM3NSwgMC4wMzEyNSwgMC4wMjUsIDAuMDEyNSwgMC4wMDI1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiMC4wNjc1LCAwLjA1NjI1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDI1LCAwLjAxNSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiMC4wODM3NSwgMC4wNzI1LCAwLjA2LCAwLjA0NzUsIDAuMDQxMjUsIDAuMDMxMjUsIDAuMDE2MjUiLCBcCi0gICAgICAgICAgIjAuMDkyNSwgMC4wODEyNSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1LCAwLjA0LCAwLjAzMTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihRKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDEuMDI4MTc7Ci0gICAgZnVuY3Rpb24gOiAiTjMwIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBub25fdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJpc2luZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExNjE4NSwgMC4xOTAzNjMsIDAuMjYzMTkzLCAwLjMxNDUxNywgMC4zOTgxMSwgMC40NzAyODgsIDAuNTczMjg4IiwgXAotICAgICAgICAgICIwLjEyNjMxLCAwLjIwMDQ2MSwgMC4yNzMwNTMsIDAuMzI0NjEyLCAwLjQwODA5NiwgMC40ODAzNTgsIDAuNTgzNDU0IiwgXAotICAgICAgICAgICIwLjEzODgyNiwgMC4yMTI5NzYsIDAuMjg1NTk3LCAwLjMzNzEyNSwgMC40MjA2NjgsIDAuNDkyODksIDAuNTk1OTcyIiwgXAotICAgICAgICAgICIwLjE1MDA1OCwgMC4yMjQxOTcsIDAuMjk3MDc5LCAwLjM0ODQwMiwgMC40MzE5MjYsIDAuNTA0MTc3LCAwLjYwNzE3IiwgXAotICAgICAgICAgICIwLjE1OTg5LCAwLjIzNDAyOSwgMC4zMDY5MDEsIDAuMzU4NTE5LCAwLjQ0MTczOSwgMC41MTM1NTksIDAuNjE3ODY4IiwgXAotICAgICAgICAgICIwLjE3MzQyNCwgMC4yNDc1NjgsIDAuMzIwNDQ4LCAwLjM3MTc2MiwgMC40NTU1MjEsIDAuNTI3NTM3LCAwLjYzMDUzOSIsIFwKLSAgICAgICAgICAiMC4xODM3ODksIDAuMjU3OTM3LCAwLjMzMDc4OSwgMC4zODIxMTYsIDAuNDY1Njk4LCAwLjUzNzg5LCAwLjY0MTIzMyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzMzY2OSwgMC4xNzkzODcsIDAuMzI3MDg3LCAwLjQzMzIxLCAwLjYwMzM5NCwgMC43NTQyNjIsIDAuOTY1NzQiLCBcCi0gICAgICAgICAgIjAuMDMzNzgxLCAwLjE3OTY5OSwgMC4zMjY5MzMsIDAuNDMzNTMyLCAwLjYwMzI0MywgMC43NTQyMzYsIDAuOTY1NjMzIiwgXAotICAgICAgICAgICIwLjAzMzg5NywgMC4xNzk2OTksIDAuMzI3Njc3LCAwLjQzMzUyOCwgMC42MDM1ODMsIDAuNzU0MjQ2LCAwLjk2NTYyNiIsIFwKLSAgICAgICAgICAiMC4wMzM4MTUsIDAuMTc5NywgMC4zMjcwMjYsIDAuNDMzMTksIDAuNjAzNTMsIDAuNzU0MjY0LCAwLjk2NTcwMyIsIFwKLSAgICAgICAgICAiMC4wMzM4MDYsIDAuMTc5NzAxLCAwLjMyNzA5MSwgMC40MzMzOTksIDAuNjAzNTgxLCAwLjc1Mjc3MiwgMC45NjUyNjUiLCBcCi0gICAgICAgICAgIjAuMDMzODQ0LCAwLjE3OTU0LCAwLjMyNzAwMiwgMC40MzMyMTIsIDAuNjAzNDgzLCAwLjc1NDI2MywgMC45NjU2NzUiLCBcCi0gICAgICAgICAgIjAuMDMzODA2LCAwLjE3OTcwNiwgMC4zMjc3MzEsIDAuNDMzMjk3LCAwLjYwMzQ2NiwgMC43NTQyNTYsIDAuOTY3NzkiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMjY3NjQsIDAuMjAyMzExLCAwLjI3NjI0MiwgMC4zMjg4NjMsIDAuNDEzMTAyLCAwLjQ4NjQyNSwgMC41OTE1MzgiLCBcCi0gICAgICAgICAgIjAuMTM2OTYzLCAwLjIxMjUzNCwgMC4yODY1MjgsIDAuMzM4ODksIDAuNDIyOTU2LCAwLjQ5NzExNCwgMC42MDE3MjkiLCBcCi0gICAgICAgICAgIjAuMTQ5NTksIDAuMjI1MTYyLCAwLjI5OTM5NiwgMC4zNTE1OTYsIDAuNDM1OTM1LCAwLjUwOTI1OCwgMC42MTQzNzMiLCBcCi0gICAgICAgICAgIjAuMTYwOTY2LCAwLjIzNjUzOCwgMC4zMTA0NDYsIDAuMzYzMTI0LCAwLjQ0NzMsIDAuNTIwNjE3LCAwLjYyNTc0MyIsIFwKLSAgICAgICAgICAiMC4xNzA5OTUsIDAuMjQ2NTY2LCAwLjMyMDU2MiwgMC4zNzI5MDUsIDAuNDU3MzU5LCAwLjUzMDc0MSwgMC42MzU2NzkiLCBcCi0gICAgICAgICAgIjAuMTg1MDA2LCAwLjI2MDU4MSwgMC4zMzQ1NzcsIDAuMzg2OTMyLCAwLjQ3MDk5MSwgMC41NDUxMjgsIDAuNjQ5NzcyIiwgXAotICAgICAgICAgICIwLjE5NTA4LCAwLjI3MDY2MSwgMC4zNDQ2NTgsIDAuMzk3MDE1LCAwLjQ4MTAyOCwgMC41NTUwMDQsIDAuNjU5ODUzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDMzMzgzLCAwLjE3ODg4MSwgMC4zMjY4NiwgMC40MzI2NTUsIDAuNjAzODg2LCAwLjc1MjUsIDAuOTY1NDY5IiwgXAotICAgICAgICAgICIwLjAzMzE4MywgMC4xNzkwMzcsIDAuMzI2OTI5LCAwLjQzMzA2NiwgMC42MDI2NTgsIDAuNzUxMTg0LCAwLjk2NTQ2OCIsIFwKLSAgICAgICAgICAiMC4wMzMyOTgsIDAuMTc5MDMyLCAwLjMyNjMxOSwgMC40MzIsIDAuNjAzODg2LCAwLjc1MjU1NSwgMC45NjU0NTEiLCBcCi0gICAgICAgICAgIjAuMDMzNDYxLCAwLjE3ODkzNiwgMC4zMjY4NTUsIDAuNDMyNzA1LCAwLjYwMzg3MywgMC43NTIzOTUsIDAuOTY1NDY5IiwgXAotICAgICAgICAgICIwLjAzMzM3MiwgMC4xNzkwMzQsIDAuMzI2OTMxLCAwLjQzMzA5MSwgMC42MDM5MDMsIDAuNzUyOTg5LCAwLjk2NDkxIiwgXAotICAgICAgICAgICIwLjAzMzI3MiwgMC4xNzkwMzgsIDAuMzI2OTI5LCAwLjQzMzA3NywgMC42MDI3MzksIDAuNzUxMDA0LCAwLjk2NTQ4OSIsIFwKLSAgICAgICAgICAiMC4wMzM0ODgsIDAuMTc5MDQzLCAwLjMyNjkzLCAwLjQzMzA3MSwgMC42MDMwMTYsIDAuNzUzMjQsIDAuOTY1NDc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA3OTM4LCAwLjAwODExNSwgMC4wMDgxMzksIDAuMDA4MTQ2LCAwLjAwODE1MywgMC4wMDgxNTYsIDAuMDA4MTU5IiwgXAotICAgICAgICAgICIwLjAwNzkxOCwgMC4wMDgwOTcsIDAuMDA4MTIyLCAwLjAwODEyOSwgMC4wMDgxMzYsIDAuMDA4MTQsIDAuMDA4MTQyIiwgXAotICAgICAgICAgICIwLjAwNzkxMiwgMC4wMDgwOTEsIDAuMDA4MTE1LCAwLjAwODEyMywgMC4wMDgxMjksIDAuMDA4MTMzLCAwLjAwODEzOCIsIFwKLSAgICAgICAgICAiMC4wMDc5MTUsIDAuMDA4MDkzLCAwLjAwODExOCwgMC4wMDgxMjQsIDAuMDA4MTMyLCAwLjAwODEzNywgMC4wMDgxMzYiLCBcCi0gICAgICAgICAgIjAuMDA3OTIxLCAwLjAwODA5OCwgMC4wMDgxMjMsIDAuMDA4MTMsIDAuMDA4MTM3LCAwLjAwODE0LCAwLjAwODE0MyIsIFwKLSAgICAgICAgICAiMC4wMDc5MywgMC4wMDgxMDksIDAuMDA4MTM0LCAwLjAwODE0NCwgMC4wMDgxNDgsIDAuMDA4MTUxLCAwLjAwODE1MiIsIFwKLSAgICAgICAgICAiMC4wMDc5NDMsIDAuMDA4MTIyLCAwLjAwODE0OCwgMC4wMDgxNTUsIDAuMDA4MTYxLCAwLjAwODE2NSwgMC4wMDgxNjciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwODUxNywgMC4wMDg2NzUsIDAuMDA4Njk3LCAwLjAwODcwMywgMC4wMDg3MDksIDAuMDA4NzEzLCAwLjAwODcxNiIsIFwKLSAgICAgICAgICAiMC4wMDg1MDMsIDAuMDA4NjYyLCAwLjAwODY4LCAwLjAwODY4NywgMC4wMDg2OTYsIDAuMDA4Njk5LCAwLjAwODY5OCIsIFwKLSAgICAgICAgICAiMC4wMDg1MDQsIDAuMDA4NjYzLCAwLjAwODY4NSwgMC4wMDg2OTMsIDAuMDA4Njk1LCAwLjAwODcsIDAuMDA4NzAzIiwgXAotICAgICAgICAgICIwLjAwODUxLCAwLjAwODY3LCAwLjAwODY5MiwgMC4wMDg2OTksIDAuMDA4NzA0LCAwLjAwODcwOCwgMC4wMDg3MTEiLCBcCi0gICAgICAgICAgIjAuMDA4NTMxLCAwLjAwODY4OSwgMC4wMDg3MTEsIDAuMDA4NzE3LCAwLjAwODcyMywgMC4wMDg3MjMsIDAuMDA4NzI4IiwgXAotICAgICAgICAgICIwLjAwODUzMywgMC4wMDg2OTMsIDAuMDA4NzE2LCAwLjAwODcxOSwgMC4wMDg3MjcsIDAuMDA4NzMsIDAuMDA4NzMzIiwgXAotICAgICAgICAgICIwLjAwODU2OCwgMC4wMDg3MywgMC4wMDg3NTMsIDAuMDA4NzU2LCAwLjAwODc2NCwgMC4wMDg3NjcsIDAuMDA4NzY3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihRTikgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAxLjA1NTQ4OwotICAgIGZ1bmN0aW9uIDogIlFCSU5UIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBub25fdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJpc2luZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE1MjA0NywgMC4yMjQ0ODgsIDAuMjk2NjYsIDAuMzQ4MjY1LCAwLjQzMDc2NSwgMC41MDI5NDcsIDAuNjA2MDg3IiwgXAotICAgICAgICAgICIwLjE2MjIyMiwgMC4yMzQ3MDMsIDAuMzA2ODk4LCAwLjM1ODQwOSwgMC40NDA5OSwgMC41MTMzMDQsIDAuNjE2MzEiLCBcCi0gICAgICAgICAgIjAuMTc0ODQyLCAwLjI0NzMxNCwgMC4zMTk1NTYsIDAuMzcxMDkxLCAwLjQ1MzU5OSwgMC41MjU3NzcsIDAuNjI4OTE3IiwgXAotICAgICAgICAgICIwLjE4NjI4LCAwLjI1ODY4OCwgMC4zMzA4NjIsIDAuMzgyNDczLCAwLjQ2NDk2NCwgMC41MzcxNSwgMC42NDAyODkiLCBcCi0gICAgICAgICAgIjAuMTk2MjYzLCAwLjI2ODcyOSwgMC4zNDA5MjcsIDAuMzkyNDM3LCAwLjQ3NTAyOSwgMC41NDcxMzgsIDAuNjUwMzg0IiwgXAotICAgICAgICAgICIwLjIxMDI3MSwgMC4yODI3NDYsIDAuMzU0OTQyLCAwLjQwNjQ1MiwgMC40ODkwMzcsIDAuNTYxMzI3LCAwLjY2NDM1NSIsIFwKLSAgICAgICAgICAiMC4yMjAzNTYsIDAuMjkyODI1LCAwLjM2NTAyLCAwLjQxNjUzLCAwLjQ5OTEyNSwgMC41NzEzMTIsIDAuNjc0NDMyIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDMyNDE4LCAwLjE3NzcxNiwgMC4zMjY1NDgsIDAuNDMyMTcxLCAwLjYwMzUxMSwgMC43NTIxMDIsIDAuOTY1MDkzIiwgXAotICAgICAgICAgICIwLjAzMjQwNSwgMC4xNzc2MywgMC4zMjY1NzksIDAuNDMyNzkxLCAwLjYwMjYxNiwgMC43NTEwNDEsIDAuOTY1MDc1IiwgXAotICAgICAgICAgICIwLjAzMjQwMiwgMC4xNzc2MjcsIDAuMzI1OTAyLCAwLjQzMTY1NywgMC42MDM1MTMsIDAuNzUyMTE0LCAwLjk2NTA5NyIsIFwKLSAgICAgICAgICAiMC4wMzI0NDgsIDAuMTc3Njc5LCAwLjMyNjU0MywgMC40MzIyODksIDAuNjAzNSwgMC43NTIwODQsIDAuOTY1MDkyIiwgXAotICAgICAgICAgICIwLjAzMjM5OSwgMC4xNzc2MzEsIDAuMzI2NTgxLCAwLjQzMjc2OCwgMC42MDM1MywgMC43NTIzOTMsIDAuOTY0MjUiLCBcCi0gICAgICAgICAgIjAuMDMyNDE5LCAwLjE3NzYzMiwgMC4zMjY1NzksIDAuNDMyNzgzLCAwLjYwMjY1NywgMC43NTA3NjgsIDAuOTY1MDgxIiwgXAotICAgICAgICAgICIwLjAzMjM3NSwgMC4xNzc2MywgMC4zMjY1OCwgMC40MzI3ODcsIDAuNjAyNTkxLCAwLjc1MjY0MSwgMC45NjUwNzUiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNDMwNDYsIDAuMjE3MTEzLCAwLjI5MDgxMSwgMC4zNDM0MjYsIDAuNDI3NzA5LCAwLjUwMTM1MiwgMC42MDY2MTQiLCBcCi0gICAgICAgICAgIjAuMTUzMTY5LCAwLjIyNzI0LCAwLjMwMDkxNiwgMC4zNTM1NTcsIDAuNDM3ODExLCAwLjUxMTQ2OSwgMC42MTY3NDIiLCBcCi0gICAgICAgICAgIjAuMTY1NzA2LCAwLjIzOTc2NCwgMC4zMTM0NDcsIDAuMzY2MDM0LCAwLjQ1MDI5OCwgMC41MjM5NDksIDAuNjI5MjE5IiwgXAotICAgICAgICAgICIwLjE3NjkxMywgMC4yNTA5NTEsIDAuMzI0NjksIDAuMzc3MzA1LCAwLjQ2MTU3OCwgMC41MzUyMzMsIDAuNjQwNDg4IiwgXAotICAgICAgICAgICIwLjE4Njc0NywgMC4yNjA3ODMsIDAuMzM0NDg3LCAwLjM4NzA5OCwgMC40NzEzNzEsIDAuNTQ1MDI2LCAwLjY1MDM5NSIsIFwKLSAgICAgICAgICAiMC4yMDAyOCwgMC4yNzQzNTksIDAuMzQ4MDU1LCAwLjQwMDY2OSwgMC40ODQ5OSwgMC41NTg1OTYsIDAuNjYzODQ5IiwgXAotICAgICAgICAgICIwLjIxMDYzNiwgMC4yODQ2ODEsIDAuMzU4MzksIDAuNDExMDQ0LCAwLjQ5NTMxOCwgMC41Njg5NjMsIDAuNjc0MjA4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDMyMDQ1LCAwLjE3Nzg3MSwgMC4zMjY0ODYsIDAuNDMzMTQ5LCAwLjYwMzMxNiwgMC43NTM4NTEsIDAuOTY2MTI5IiwgXAotICAgICAgICAgICIwLjAzMjAzNSwgMC4xNzc3NjIsIDAuMzI2NjQ1LCAwLjQzMzE4NCwgMC42MDMzOTUsIDAuNzUzNzc5LCAwLjk2NjA4NyIsIFwKLSAgICAgICAgICAiMC4wMzIwNjMsIDAuMTc3NzYzLCAwLjMyNjkyMSwgMC40MzMxODIsIDAuNjAzNDIsIDAuNzUzODAyLCAwLjk2NjA4MiIsIFwKLSAgICAgICAgICAiMC4wMzIwMjMsIDAuMTc3NzcsIDAuMzI2NDg1LCAwLjQzMzE0MywgMC42MDM0MDMsIDAuNzUzODQ4LCAwLjk2NjEwNyIsIFwKLSAgICAgICAgICAiMC4wMzIwMjksIDAuMTc3NzcsIDAuMzI2NDgxLCAwLjQzMzU4MywgMC42MDM0MzksIDAuNzUyOTA2LCAwLjk2NTQ4NCIsIFwKLSAgICAgICAgICAiMC4wMzIwNDYsIDAuMTc3NjQzLCAwLjMyNjQ4NiwgMC40MzMxNDcsIDAuNjAzNDQ5LCAwLjc1Mzg0NCwgMC45NjYwOTciLCBcCi0gICAgICAgICAgIjAuMDMyMDUsIDAuMTc3NzY2LCAwLjMyNjk3OCwgMC40MzMxNTksIDAuNjAzMzY0LCAwLjc1MzgyNCwgMC45NjcxMzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDg1MTcsIDAuMDA4Njc1LCAwLjAwODY5NywgMC4wMDg3MDMsIDAuMDA4NzA5LCAwLjAwODcxMywgMC4wMDg3MTYiLCBcCi0gICAgICAgICAgIjAuMDA4NTAzLCAwLjAwODY2MiwgMC4wMDg2OCwgMC4wMDg2ODcsIDAuMDA4Njk2LCAwLjAwODY5OSwgMC4wMDg2OTgiLCBcCi0gICAgICAgICAgIjAuMDA4NTA0LCAwLjAwODY2MywgMC4wMDg2ODUsIDAuMDA4NjkzLCAwLjAwODY5NSwgMC4wMDg3LCAwLjAwODcwMyIsIFwKLSAgICAgICAgICAiMC4wMDg1MSwgMC4wMDg2NywgMC4wMDg2OTIsIDAuMDA4Njk5LCAwLjAwODcwNCwgMC4wMDg3MDgsIDAuMDA4NzExIiwgXAotICAgICAgICAgICIwLjAwODUzMSwgMC4wMDg2ODksIDAuMDA4NzExLCAwLjAwODcxNywgMC4wMDg3MjMsIDAuMDA4NzIzLCAwLjAwODcyOCIsIFwKLSAgICAgICAgICAiMC4wMDg1MzMsIDAuMDA4NjkzLCAwLjAwODcxNiwgMC4wMDg3MTksIDAuMDA4NzI3LCAwLjAwODczLCAwLjAwODczMyIsIFwKLSAgICAgICAgICAiMC4wMDg1NjgsIDAuMDA4NzMsIDAuMDA4NzUzLCAwLjAwODc1NiwgMC4wMDg3NjQsIDAuMDA4NzY3LCAwLjAwODc2NyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA3OTM4LCAwLjAwODExNSwgMC4wMDgxMzksIDAuMDA4MTQ2LCAwLjAwODE1MywgMC4wMDgxNTYsIDAuMDA4MTU5IiwgXAotICAgICAgICAgICIwLjAwNzkxOCwgMC4wMDgwOTcsIDAuMDA4MTIyLCAwLjAwODEyOSwgMC4wMDgxMzYsIDAuMDA4MTQsIDAuMDA4MTQyIiwgXAotICAgICAgICAgICIwLjAwNzkxMiwgMC4wMDgwOTEsIDAuMDA4MTE1LCAwLjAwODEyMywgMC4wMDgxMjksIDAuMDA4MTMzLCAwLjAwODEzOCIsIFwKLSAgICAgICAgICAiMC4wMDc5MTUsIDAuMDA4MDkzLCAwLjAwODExOCwgMC4wMDgxMjQsIDAuMDA4MTMyLCAwLjAwODEzNywgMC4wMDgxMzYiLCBcCi0gICAgICAgICAgIjAuMDA3OTIxLCAwLjAwODA5OCwgMC4wMDgxMjMsIDAuMDA4MTMsIDAuMDA4MTM3LCAwLjAwODE0LCAwLjAwODE0MyIsIFwKLSAgICAgICAgICAiMC4wMDc5MywgMC4wMDgxMDksIDAuMDA4MTM0LCAwLjAwODE0NCwgMC4wMDgxNDgsIDAuMDA4MTUxLCAwLjAwODE1MiIsIFwKLSAgICAgICAgICAiMC4wMDc5NDMsIDAuMDA4MTIyLCAwLjAwODE0OCwgMC4wMDgxNTUsIDAuMDA4MTYxLCAwLjAwODE2NSwgMC4wMDgxNjciKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IEhPTERYMSAqCi0gKiAtLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKEhPTERYMSkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjA5MzE4MjU7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5vdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDMwNTA3OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMzA1MDc7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAyNzY5OTM7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMDsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxNzksIDAuMDAwMDg5LCAwLjAwMDIxLCAwLjAwMDQ2LCAwLjAwMDc2OSwgMC4wMDEzMTgsIDAuMDAxODU4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyODU2LCAwLjAwMzM4OCwgMC4wMDQwNDUsIDAuMDA0NjUsIDAuMDA1MzE5LCAwLjAwNjMxLCAwLjAwNzE2MSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBkb250X3VzZSA6IHRydWU7Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IElOVlgxICoKLSAqIC0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChJTlZYMSkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjAzNzM3MDM7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDg3NzUzNTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA4NzcxMDY7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwODc3NTM1OwotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMjY2MjQ7Ci0gICAgZnVuY3Rpb24gOiAiKCFBKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQ3MTcyLCAwLjA3MTcyMiwgMC4yMTA4NCwgMC4zMzM3NiwgMC40OTcwNzMsIDAuODI0NDc0LCAxLjAyODYzIiwgXAotICAgICAgICAgICIwLjA1NzAzLCAwLjA4MTU2OSwgMC4yMjA3ODYsIDAuMzQzMzU3LCAwLjUwNjkwNywgMC44MzQzNTMsIDEuMDM4OTciLCBcCi0gICAgICAgICAgIjAuMDY5Njc1LCAwLjA5NCwgMC4yMzMxNDQsIDAuMzU1MjksIDAuNTE4ODMxLCAwLjg0NjE2MSwgMS4wNTEwNSIsIFwKLSAgICAgICAgICAiMC4wODIzNzYsIDAuMTA2OCwgMC4yNDU3MjEsIDAuMzY4Mzc4LCAwLjUzMTEwNCwgMC44NTgyMzksIDEuMDYzMDUiLCBcCi0gICAgICAgICAgIjAuMDk0ODYyLCAwLjExOTU0OCwgMC4yNTgzMDEsIDAuMzgwODg1LCAwLjU0MzM3NiwgMC44NzExMzIsIDEuMDc0ODIiLCBcCi0gICAgICAgICAgIjAuMTEyNTQ5LCAwLjEzOTkwNSwgMC4yNzc5NzEsIDAuNDAxMTA3LCAwLjU2NDI5OCwgMC44ODk3NjIsIDEuMDk0MzMiLCBcCi0gICAgICAgICAgIjAuMTI1MzksIDAuMTU2NjM2LCAwLjI5NTUzOSwgMC40MTg2NTQsIDAuNTgxOTY2LCAwLjkwNzEwNiwgMS4xMTE0OSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODk4OTQsIDAuMTQwMTg5LCAwLjQyNjM3NywgMC42NzkxMDYsIDEuMDE1OTIsIDEuNjg4NjUsIDIuMTA4OTUiLCBcCi0gICAgICAgICAgIjAuMDkwMywgMC4xNDAyNjQsIDAuNDI2MzMsIDAuNjc5ODc2LCAxLjAxNTIyLCAxLjY4ODY1LCAyLjEwOTQzIiwgXAotICAgICAgICAgICIwLjA5NDMyMiwgMC4xNDI1MSwgMC40MjY0MDUsIDAuNjc4ODQ3LCAxLjAxNTIzLCAxLjY5MTIyLCAyLjEwOTQ3IiwgXAotICAgICAgICAgICIwLjEwMDk5MiwgMC4xNDcwMzgsIDAuNDI2Mzk4LCAwLjY3ODgxNiwgMS4wMTU0NCwgMS42OTEyMywgMi4xMDk0NCIsIFwKLSAgICAgICAgICAiMC4xMDg4OTYsIDAuMTUzMTcyLCAwLjQyNzI5NiwgMC42NzkyOCwgMS4wMTU0NSwgMS42ODkzNCwgMi4xMTMyMyIsIFwKLSAgICAgICAgICAiMC4xMjM3NDQsIDAuMTY0OTg0LCAwLjQzMTgyOCwgMC42NzkwMzIsIDEuMDE1MjIsIDEuNjg4MjgsIDIuMTEyODIiLCBcCi0gICAgICAgICAgIjAuMTM2OTczLCAwLjE3NjY3MywgMC40Mzc0ODMsIDAuNjgyMTU0LCAxLjAxNzI0LCAxLjY5MTA0LCAyLjEwODk1Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0Nzc4NCwgMC4wNzI1NTcsIDAuMjEyODUsIDAuMzM2NDQ5LCAwLjUwMTM4NSwgMC44MzEzNDQsIDEuMDM3NCIsIFwKLSAgICAgICAgICAiMC4wNTc3OTcsIDAuMDgyNjQ2LCAwLjIyMjg5NCwgMC4zNDY1MSwgMC41MTEzNTEsIDAuODQxMTY2LCAxLjA0NzQyIiwgXAotICAgICAgICAgICIwLjA3MDgxLCAwLjA5NTI3OCwgMC4yMzU2NTksIDAuMzU4NTc2LCAwLjUyMzcwNCwgMC44NTM1NDgsIDEuMDU5NzciLCBcCi0gICAgICAgICAgIjAuMDgzODM0LCAwLjEwODQ3OCwgMC4yNDg1NzgsIDAuMzcyMDMsIDAuNTM1OTU2LCAwLjg2NTg1MSwgMS4wNzE4IiwgXAotICAgICAgICAgICIwLjA5NjczOSwgMC4xMjE1MzIsIDAuMjYxMzcsIDAuMzg0OTQsIDAuNTQ5NzYzLCAwLjg3ODE2NywgMS4wODQ4NiIsIFwKLSAgICAgICAgICAiMC4xMTU1MjksIDAuMTQyNTQxLCAwLjI4MTQyMywgMC40MDQ4MTEsIDAuNTcwMjMzLCAwLjg5Nzg5NSwgMS4xMDQ2OCIsIFwKLSAgICAgICAgICAiMC4xMjk2MDgsIDAuMTYwMDY1LCAwLjI5OTQxNywgMC40MjM3NDYsIDAuNTg4NTkzLCAwLjkxNzgwMywgMS4xMjEzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4ODI1NSwgMC4xMzgxMjQsIDAuNDIwNDMyLCAwLjY2OTU2LCAxLjAwMTA1LCAxLjY2NDI1LCAyLjA3OTUiLCBcCi0gICAgICAgICAgIjAuMDg4NTE2LCAwLjEzNzk2OCwgMC40MjAwNDksIDAuNjY4NTk1LCAxLjAwMzAyLCAxLjY2NzE2LCAyLjA4MDM1IiwgXAotICAgICAgICAgICIwLjA5MjUxOCwgMC4xMzk5OTUsIDAuNDIwMDEzLCAwLjY2OTExMSwgMS4wMDA0NiwgMS42NjQyNiwgMi4wNzg4MSIsIFwKLSAgICAgICAgICAiMC4wOTg3MzgsIDAuMTQ0MjU1LCAwLjQyMDI3OCwgMC42NjkyNTksIDEuMDAyMjUsIDEuNjY0MTUsIDIuMDgzNTgiLCBcCi0gICAgICAgICAgIjAuMTA2MzkxLCAwLjE1MDI2NiwgMC40MjEzMjksIDAuNjY5MTUxLCAxLjAwMDczLCAxLjY2NTQyLCAyLjA4MDcxIiwgXAotICAgICAgICAgICIwLjEyMDA1NywgMC4xNjE2MDEsIDAuNDI1MjQsIDAuNjY4OTMzLCAxLjAwMjY1LCAxLjY2NDU4LCAyLjA4MDY3IiwgXAotICAgICAgICAgICIwLjEzMzU1LCAwLjE3MjY2MiwgMC40MzA1NDYsIDAuNjcwMjExLCAxLjAwMDQ2LCAxLjY2NDQ5LCAyLjA3ODUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDExOTksIDAuMDAxMjAxLCAwLjAwMTIwNCwgMC4wMDEyMDQsIDAuMDAxMjA1LCAwLjAwMTIwNSwgMC4wMDEyMDUiLCBcCi0gICAgICAgICAgIjAuMDAxMTgsIDAuMDAxMTg4LCAwLjAwMTE5OSwgMC4wMDEyMDMsIDAuMDAxMjAzLCAwLjAwMTIwNCwgMC4wMDEyMDQiLCBcCi0gICAgICAgICAgIjAuMDAxMTY3LCAwLjAwMTE3NiwgMC4wMDExOTQsIDAuMDAxMTk4LCAwLjAwMTIsIDAuMDAxMjA0LCAwLjAwMTIwMyIsIFwKLSAgICAgICAgICAiMC4wMDExNjQsIDAuMDAxMTcyLCAwLjAwMTE5MSwgMC4wMDExOTYsIDAuMDAxMTk5LCAwLjAwMTIwMSwgMC4wMDEyMDIiLCBcCi0gICAgICAgICAgIjAuMDAxMTY1LCAwLjAwMTE3MiwgMC4wMDExODksIDAuMDAxMTk0LCAwLjAwMTE5NywgMC4wMDEyMDEsIDAuMDAxMjAyIiwgXAotICAgICAgICAgICIwLjAwMTE3NywgMC4wMDExNzUsIDAuMDAxMTg1LCAwLjAwMTE5MywgMC4wMDExOTYsIDAuMDAxMiwgMC4wMDEyIiwgXAotICAgICAgICAgICIwLjAwMTE5MiwgMC4wMDExODYsIDAuMDAxMTg4LCAwLjAwMTE5MywgMC4wMDExOTYsIDAuMDAxMiwgMC4wMDEyMDEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDAwMDksIDAuMDAwMDA2LCAwLjAwMDAwMiwgMC4wMDAwMDEsIDAuMDAwMDAxLCAwLjAwMDAwMSwgMCIsIFwKLSAgICAgICAgICAiMC4wMDAwMzUsIDAuMDAwMDI0LCAwLjAwMDAwOSwgMC4wMDAwMDUsIDAuMDAwMDA0LCAwLjAwMDAwMiwgMC4wMDAwMDIiLCBcCi0gICAgICAgICAgIjAuMDAwMDUyLCAwLjAwMDA0LCAwLjAwMDAxNSwgMC4wMDAwMSwgMC4wMDAwMDcsIDAuMDAwMDA0LCAwLjAwMDAwMyIsIFwKLSAgICAgICAgICAiMC4wMDAwNTgsIDAuMDAwMDQ2LCAwLjAwMDAyLCAwLjAwMDAxMywgMC4wMDAwMDksIDAuMDAwMDA2LCAwLjAwMDAwNCIsIFwKLSAgICAgICAgICAiMC4wMDAwNTcsIDAuMDAwMDQ4LCAwLjAwMDAyMywgMC4wMDAwMTYsIDAuMDAwMDExLCAwLjAwMDAwNywgMC4wMDAwMDUiLCBcCi0gICAgICAgICAgIjAuMDAwMDQ1LCAwLjAwMDA0MywgMC4wMDAwMjYsIDAuMDAwMDE4LCAwLjAwMDAxMywgMC4wMDAwMDgsIDAuMDAwMDA3IiwgXAotICAgICAgICAgICIwLjAwMDAyOSwgMC4wMDAwMzQsIDAuMDAwMDI2LCAwLjAwMDAxOCwgMC4wMDAwMTMsIDAuMDAwMDA5LCAwLjAwMDAwNyIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogSU5WWDEyICoKLSAqIC0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoSU5WWDEyKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuNDg4MjEyOwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDkwNTg2NzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDkwNTQ2NTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDkwNTg2NzsKLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAzLjAyNzU3OwotICAgIGZ1bmN0aW9uIDogIighQSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwOTU1MSwgMC4wMTE2OTEsIDAuMDIzNjc4LCAwLjAzNDE5OCwgMC4wNDgxOTIsIDAuMDc2MTk5LCAwLjA5MzY5NCIsIFwKLSAgICAgICAgICAiMC4wMTg1MDUsIDAuMDIxMjksIDAuMDMzNjU4LCAwLjA0NDE3LCAwLjA1ODA5OSwgMC4wODYxMTQsIDAuMTAzNjIyIiwgXAotICAgICAgICAgICIwLjAyNTg3NSwgMC4wMjk3LCAwLjA0NjA3MSwgMC4wNTY4MTQsIDAuMDcwNzYxLCAwLjA5ODUzLCAwLjExNjA1MSIsIFwKLSAgICAgICAgICAiMC4wMzEzMDksIDAuMDM2MTY3LCAwLjA1NjQ1MywgMC4wNjkzMzUsIDAuMDgzNjIsIDAuMTExNTY2LCAwLjEyOTA0NSIsIFwKLSAgICAgICAgICAiMC4wMzU1MzksIDAuMDQxODk0LCAwLjA2NTI0MiwgMC4wODAyMjIsIDAuMDk2MTUsIDAuMTI0MTIxLCAwLjE0MTU3IiwgXAotICAgICAgICAgICIwLjA0MTkwNCwgMC4wNDg3NTEsIDAuMDc2ODk2LCAwLjA5NDUxOSwgMC4xMTQyNTMsIDAuMTQ0NzAyLCAwLjE2MjA0MyIsIFwKLSAgICAgICAgICAiMC4wNDYwMzQsIDAuMDU0MTIzLCAwLjA4NTQ2MSwgMC4xMDU5OTQsIDAuMTI3MTQ1LCAwLjE2MTg0MywgMC4xNzk4NjQiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEyNTc5LCAwLjAxNjg0NiwgMC4wNDE0MjYsIDAuMDYzMDksIDAuMDkyMDE1LCAwLjE0OTgyOSwgMC4xODU4NDQiLCBcCi0gICAgICAgICAgIjAuMDE4Nzg3LCAwLjAyMjA5OCwgMC4wNDM3MTIsIDAuMDY0MTksIDAuMDkyMjU3LCAwLjE0OTY5OCwgMC4xODU3OTUiLCBcCi0gICAgICAgICAgIjAuMDI3MTY2LCAwLjAzMTYxNCwgMC4wNTExOTIsIDAuMDcwMDA3LCAwLjA5NjQ1MSwgMC4xNTE2MSwgMC4xODY2MiIsIFwKLSAgICAgICAgICAiMC4wMzQ1NzQsIDAuMDM5NTYsIDAuMDYwNTI4LCAwLjA3NzY2MSwgMC4xMDI2MywgMC4xNTU3NzEsIDAuMTkwMDA1IiwgXAotICAgICAgICAgICIwLjA0MDk4MywgMC4wNDYzMTgsIDAuMDcwNDkzLCAwLjA4Njk4MywgMC4xMTA1OTQsIDAuMTYxNjc5LCAwLjE5NDg5MSIsIFwKLSAgICAgICAgICAiMC4wNTAxMzcsIDAuMDU2NjkxLCAwLjA4NDMzOCwgMC4xMDI1NTgsIDAuMTI0OTE2LCAwLjE3MzI5OSwgMC4yMDUxNTUiLCBcCi0gICAgICAgICAgIjAuMDU3NjQzLCAwLjA2NTEyMiwgMC4wOTYyMDMsIDAuMTE1Nzk2LCAwLjEzODQ5OSwgMC4xODQ0ODMsIDAuMjE1Mjg1Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwOTk1OSwgMC4wMTIxOTksIDAuMDI0NjQ5LCAwLjAzNTUwOCwgMC4wNTAwNTQsIDAuMDc5MDk1LCAwLjA5NzE4MyIsIFwKLSAgICAgICAgICAiMC4wMTkzNjksIDAuMDIyMTk4LCAwLjAzNDg0OCwgMC4wNDU3NjgsIDAuMDYwMTg4LCAwLjA4OTI2OSwgMC4xMDc0IiwgXAotICAgICAgICAgICIwLjAyNzQyLCAwLjAzMTYyOSwgMC4wNDc3NCwgMC4wNTg3NTEsIDAuMDczMjM0LCAwLjEwMTk4MywgMC4xMjAxMzUiLCBcCi0gICAgICAgICAgIjAuMDMzNzIxLCAwLjAzODgxOSwgMC4wNTkwMTIsIDAuMDcxNTcsIDAuMDg2MjA4LCAwLjExNTExNCwgMC4xMzI4MzciLCBcCi0gICAgICAgICAgIjAuMDM4OTg2LCAwLjA0NDg5MSwgMC4wNjg2NjQsIDAuMDgzNCwgMC4wOTk1MTgsIDAuMTI4NDczLCAwLjE0NjUxNyIsIFwKLSAgICAgICAgICAiMC4wNDU5NjQsIDAuMDUzMTk0LCAwLjA4MTU0OSwgMC4wOTkyMjcsIDAuMTE4NDg5LCAwLjE0OTE3NiwgMC4xNjcxOTEiLCBcCi0gICAgICAgICAgIjAuMDUxNDk3LCAwLjA1OTQzNSwgMC4wOTE2NSwgMC4xMTE4MjYsIDAuMTMzMTc0LCAwLjE2NzQzOSwgMC4xODU3NjgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEyNTA4LCAwLjAxNjg0LCAwLjA0MTc2OSwgMC4wNjM2MywgMC4wOTI4LCAwLjE1MTIwNywgMC4xODgxNTMiLCBcCi0gICAgICAgICAgIjAuMDE4MTg4LCAwLjAyMTYwMSwgMC4wNDM2ODYsIDAuMDY0Mzk3LCAwLjA5Mjk3NywgMC4xNTEzNzcsIDAuMTg4MjUiLCBcCi0gICAgICAgICAgIjAuMDI3MTM0LCAwLjAzMDkwOSwgMC4wNTA2MywgMC4wNjk3NzMsIDAuMDk2NzUxLCAwLjE1MjU4NywgMC4xODgyODEiLCBcCi0gICAgICAgICAgIjAuMDM0NTA3LCAwLjAzOTE3MSwgMC4wNTk3MDQsIDAuMDc3MzM3LCAwLjEwMjc4OSwgMC4xNTY3NiwgMC4xOTE2NjIiLCBcCi0gICAgICAgICAgIjAuMDQxMjA2LCAwLjA0NjU4MiwgMC4wNjkwODYsIDAuMDg1ODIxLCAwLjEwOTg2NywgMC4xNjIwMjYsIDAuMTk1NDQ5IiwgXAotICAgICAgICAgICIwLjA1MTE2NywgMC4wNTc3MjEsIDAuMDg0MTYyLCAwLjEwMTM4NiwgMC4xMjM0MzgsIDAuMTcyNjU3LCAwLjIwNTE2NSIsIFwKLSAgICAgICAgICAiMC4wNTg5MzksIDAuMDY2ODE5LCAwLjA5NTM5NSwgMC4xMTQyNDMsIDAuMTM2OTAzLCAwLjE4MzQ0OCwgMC4yMTQ2MTYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTI4MiwgMC4wMTI5MTUsIDAuMDEzMTEzLCAwLjAxMzE2MywgMC4wMTMxOTcsIDAuMDEzMjIzLCAwLjAxMzIzNiIsIFwKLSAgICAgICAgICAiMC4wMTIzMzYsIDAuMDEyNDEsIDAuMDEyNzEyLCAwLjAxMjg1MiwgMC4wMTI5NDgsIDAuMDEzMDczLCAwLjAxMzA5OSIsIFwKLSAgICAgICAgICAiMC4wMTIzNjIsIDAuMDEyNDQ2LCAwLjAxMjU3NywgMC4wMTI2OTYsIDAuMDEyODA2LCAwLjAxMjkzLCAwLjAxMjk5IiwgXAotICAgICAgICAgICIwLjAxMjcyLCAwLjAxMjY3NSwgMC4wMTI2NTUsIDAuMDEyNzE2LCAwLjAxMjc5LCAwLjAxMjg5NSwgMC4wMTI5NDYiLCBcCi0gICAgICAgICAgIjAuMDEyNzIyLCAwLjAxMjcwMSwgMC4wMTI3MDgsIDAuMDEyNzI2LCAwLjAxMjc2OCwgMC4wMTI4NjEsIDAuMDEyODk3IiwgXAotICAgICAgICAgICIwLjAxMzI1MSwgMC4wMTMxMTQsIDAuMDEzMDIzLCAwLjAxMjkwMSwgMC4wMTI4ODksIDAuMDEyOTEsIDAuMDEyOTE1IiwgXAotICAgICAgICAgICIwLjAxMzcyOCwgMC4wMTM1MzMsIDAuMDEzMzIyLCAwLjAxMzE2MywgMC4wMTMwNTcsIDAuMDEyOTk4LCAwLjAxMjk5OCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDM4NSwgMC4wMDAyNjUsIDAuMDAwMDEsIDAuMDAwMDU0LCAwLjAwMDEsIDAuMDAwMTQsIDAuMDAwMTUzIiwgXAotICAgICAgICAgICIwLjAwMTAxNSwgMC4wMDA5MTUsIDAuMDAwNTI0LCAwLjAwMDM0NywgMC4wMDAyMTcsIDAuMDAwMDczLCAwLjAwMDAyNSIsIFwKLSAgICAgICAgICAiMC4wMDA5NiwgMC4wMDA5NDQsIDAuMDAwNzM5LCAwLjAwMDU3OSwgMC4wMDA0MjYsIDAuMDAwMjYsIDAuMDAwMTg1IiwgXAotICAgICAgICAgICIwLjAwMDg0MSwgMC4wMDA4NjcsIDAuMDAwNjc1LCAwLjAwMDU5MywgMC4wMDA0ODIsIDAuMDAwMzIzLCAwLjAwMDI2NCIsIFwKLSAgICAgICAgICAiMC4wMDA0NjMsIDAuMDAwNTE4LCAwLjAwMDYwNiwgMC4wMDA2LCAwLjAwMDUxOSwgMC4wMDAzNzYsIDAuMDAwMzA4IiwgXAotICAgICAgICAgICIwLjAwMDEyNywgMC4wMDAxNzUsIDAuMDAwMjc1LCAwLjAwMDM3NywgMC4wMDA0LCAwLjAwMDM0MywgMC4wMDAzMDgiLCBcCi0gICAgICAgICAgIjAuMDAwMzI4LCAwLjAwMDQzNywgMC4wMDAwNzgsIDAuMDAwMjM4LCAwLjAwMDMyNCwgMC4wMDAzMzksIDAuMDAwMzE3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IElOVlgyICoKLSAqIC0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChJTlZYMikgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjA3NDgwOTI7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTY0MDk0OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTYzOTk2OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTY0MDk0OwotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuNTI3OTc3OwotICAgIGZ1bmN0aW9uIDogIighQSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyNjE1NSwgMC4xMjcxMzQsIDAuMjA3OTg5LCAwLjMwODcxMSwgMC40MDk5NDksIDAuNTEwNjc0LCAwLjYxMTM4OCIsIFwKLSAgICAgICAgICAiMC4wMzYwODIsIDAuMTM3MTA1LCAwLjIxNzkwNSwgMC4zMTg5LCAwLjQxOTcyNywgMC41MjA4ODEsIDAuNjIxNTc0IiwgXAotICAgICAgICAgICIwLjA0ODYyNiwgMC4xNDk0NTgsIDAuMjMwMjE0LCAwLjMzMTE2MiwgMC40MzEwOTEsIDAuNTMyMDMyLCAwLjYzMzAzNyIsIFwKLSAgICAgICAgICAiMC4wNTk5NTQsIDAuMTYyMjQ0LCAwLjI0MzAxOSwgMC4zNDM4NzUsIDAuNDQ1MDUzLCAwLjU0NTcwOSwgMC42NDY1NzIiLCBcCi0gICAgICAgICAgIjAuMDY4NjM0LCAwLjE3NDM3LCAwLjI1NTM0NCwgMC4zNTYzMTMsIDAuNDU3MDIxLCAwLjU1NjcyNCwgMC42NTc2OTEiLCBcCi0gICAgICAgICAgIjAuMDgxMzU1LCAwLjE5NTA0NCwgMC4yNzUwNDgsIDAuMzc2Mjg5LCAwLjQ3NzMyNywgMC41Nzc5MzgsIDAuNjc4NjYzIiwgXAotICAgICAgICAgICIwLjA5MDc5MSwgMC4yMTI5MiwgMC4yOTI2NDEsIDAuMzkzNTE5LCAwLjQ5NDg0LCAwLjU5NTY0NSwgMC42OTY0Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0NjU1NSwgMC4yNTQ1MTgsIDAuNDIxMDU2LCAwLjYyODczMiwgMC44MzcxNzQsIDEuMDQ0ODEsIDEuMjU0NyIsIFwKLSAgICAgICAgICAiMC4wNDg1MywgMC4yNTQ0NjQsIDAuNDIwODEzLCAwLjYyODc0NiwgMC44MzY4NTEsIDEuMDQ1MjMsIDEuMjUyNzkiLCBcCi0gICAgICAgICAgIjAuMDU1NjczLCAwLjI1NDYyNCwgMC40MjEwNDEsIDAuNjI4ODc3LCAwLjgzNjY2OSwgMS4wNDQ0OCwgMS4yNTM2NyIsIFwKLSAgICAgICAgICAiMC4wNjQyNzIsIDAuMjU2MjQ3LCAwLjQyMDkwMywgMC42Mjg3MywgMC44MzY3NTgsIDEuMDQ0NDQsIDEuMjUyNDkiLCBcCi0gICAgICAgICAgIjAuMDc0NDgxLCAwLjI1OTk1MSwgMC40MjIzODUsIDAuNjI4ODUxLCAwLjgzNjgxOCwgMS4wNDQyOSwgMS4yNTM0MiIsIFwKLSAgICAgICAgICAiMC4wODkyMjgsIDAuMjY3NzMxLCAwLjQyNjU0LCAwLjYzMDY0LCAwLjgzNjgsIDEuMDQ0ODEsIDEuMjU0NSIsIFwKLSAgICAgICAgICAiMC4xMDEwODYsIDAuMjc2MzQ4LCAwLjQzMjM2MiwgMC42MzE4OSwgMC44MzcyMzMsIDEuMDQ1NCwgMS4yNTI3OSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjY5MSwgMC4xMzA0MjQsIDAuMjEzMTU5LCAwLjMxNjY5NSwgMC40MTk5ODUsIDAuNTIzODAyLCAwLjYyNzAzMiIsIFwKLSAgICAgICAgICAiMC4wMzcwOTEsIDAuMTQwNTMyLCAwLjIyMzI4LCAwLjMyNjcwNSwgMC40MzAxMDMsIDAuNTMzNjA0LCAwLjYzNjk3NyIsIFwKLSAgICAgICAgICAiMC4wNDk5MTgsIDAuMTUzMTk0LCAwLjIzNjAxNywgMC4zMzg3NjQsIDAuNDQyMTA2LCAwLjU0NTQ3NCwgMC42NDg4ODkiLCBcCi0gICAgICAgICAgIjAuMDYxODI0LCAwLjE2NTgzOCwgMC4yNDg3OTcsIDAuMzUyMTQxLCAwLjQ1NTQ5MSwgMC41NTg5ODMsIDAuNjYxMDE1IiwgXAotICAgICAgICAgICIwLjA3MTgyMSwgMC4xNzkzNjIsIDAuMjYxNTA4LCAwLjM2NDk0MiwgMC40Njg2ODksIDAuNTcyMDUxLCAwLjY3NTQ5NyIsIFwKLSAgICAgICAgICAiMC4wODUzNzcsIDAuMTk5OTQ0LCAwLjI4MTg2NywgMC4zODU3OTYsIDAuNDg5MTAyLCAwLjU5MjMzOSwgMC42OTU3NSIsIFwKLSAgICAgICAgICAiMC4wOTU3NjgsIDAuMjE4MzEsIDAuMjk5ODUyLCAwLjQwMzI0MiwgMC41MDYyMjgsIDAuNjEwNTcyLCAwLjcxMzgzNyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDY2NDMsIDAuMjU2MDg2LCAwLjQyMzg4OSwgMC42MzI5MDEsIDAuODQxOTI3LCAxLjA1MjUxLCAxLjI2MTEiLCBcCi0gICAgICAgICAgIjAuMDQ4NDQzLCAwLjI1NjIxNSwgMC40MjQ1OSwgMC42MzMzMDEsIDAuODQzNzczLCAxLjA1MTA5LCAxLjI2MTY1IiwgXAotICAgICAgICAgICIwLjA1NDg1MywgMC4yNTYxODEsIDAuNDI0NTk3LCAwLjYzNDA3MiwgMC44NDMwNDIsIDEuMDUxNDgsIDEuMjYyMDUiLCBcCi0gICAgICAgICAgIjAuMDYzNDcsIDAuMjU3MzQ3LCAwLjQyMzY2OSwgMC42MzM3MjQsIDAuODQxOTMxLCAxLjA1MTk5LCAxLjI2Mzk4IiwgXAotICAgICAgICAgICIwLjA3MzE1NCwgMC4yNjA2MTIsIDAuNDI1MDU4LCAwLjYzMjgzMywgMC44NDI4MDUsIDEuMDUxNjMsIDEuMjYyNDQiLCBcCi0gICAgICAgICAgIjAuMDg4MzA1LCAwLjI2ODQ0NCwgMC40Mjg3NzUsIDAuNjMzMDY0LCAwLjg0MjUxNiwgMS4wNTM4LCAxLjI2MTYyIiwgXAotICAgICAgICAgICIwLjEwMDgxOSwgMC4yNzYzNzksIDAuNDM0MTU0LCAwLjYzNTc1MywgMC44NDQ2MjIsIDEuMDUxODYsIDEuMjYyNjYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDIxNjEsIDAuMDAyMTc5LCAwLjAwMjE4MSwgMC4wMDIxODEsIDAuMDAyMTgyLCAwLjAwMjE4MiwgMC4wMDIxODIiLCBcCi0gICAgICAgICAgIjAuMDAyMSwgMC4wMDIxNjIsIDAuMDAyMTcsIDAuMDAyMTc0LCAwLjAwMjE3NywgMC4wMDIxNzgsIDAuMDAyMTc5IiwgXAotICAgICAgICAgICIwLjAwMjA4LCAwLjAwMjE0NiwgMC4wMDIxNjIsIDAuMDAyMTY4LCAwLjAwMjE3MSwgMC4wMDIxNzMsIDAuMDAyMTcyIiwgXAotICAgICAgICAgICIwLjAwMjA3NywgMC4wMDIxMzksIDAuMDAyMTU0LCAwLjAwMjE2MywgMC4wMDIxNjgsIDAuMDAyMTcxLCAwLjAwMjE3MyIsIFwKLSAgICAgICAgICAiMC4wMDIwOTcsIDAuMDAyMTMzLCAwLjAwMjE1LCAwLjAwMjE2LCAwLjAwMjE2NSwgMC4wMDIxNjgsIDAuMDAyMTY5IiwgXAotICAgICAgICAgICIwLjAwMjE1LCAwLjAwMjEzOCwgMC4wMDIxNDUsIDAuMDAyMTYsIDAuMDAyMTYzLCAwLjAwMjE2NywgMC4wMDIxNyIsIFwKLSAgICAgICAgICAiMC4wMDIyMDEsIDAuMDAyMTQ4LCAwLjAwMjE1LCAwLjAwMjE1OCwgMC4wMDIxNjUsIDAuMDAyMTY3LCAwLjAwMjE2OSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDAyNCwgMC4wMDAwMDIsIDAuMDAwMDA0LCAwLjAwMDAwNSwgMC4wMDAwMDYsIDAuMDAwMDA3LCAwLjAwMDAwNyIsIFwKLSAgICAgICAgICAiMC4wMDAxMDEsIDAuMDAwMDIsIDAuMDAwMDA5LCAwLjAwMDAwNCwgMC4wMDAwMDEsIDAuMDAwMDAxLCAwLjAwMDAwMiIsIFwKLSAgICAgICAgICAiMC4wMDAxMzUsIDAuMDAwMDM5LCAwLjAwMDAyMiwgMC4wMDAwMTMsIDAuMDAwMDA4LCAwLjAwMDAwNSwgMC4wMDAwMDMiLCBcCi0gICAgICAgICAgIjAuMDAwMTIxLCAwLjAwMDA0NywgMC4wMDAwMjgsIDAuMDAwMDE4LCAwLjAwMDAxMiwgMC4wMDAwMDgsIDAuMDAwMDA2IiwgXAotICAgICAgICAgICIwLjAwMDEyMywgMC4wMDAwNjIsIDAuMDAwMDQyLCAwLjAwMDAyNywgMC4wMDAwMTksIDAuMDAwMDE0LCAwLjAwMDAxIiwgXAotICAgICAgICAgICIwLjAwMDA2MSwgMC4wMDAwNTksIDAuMDAwMDQ0LCAwLjAwMDAyOCwgMC4wMDAwMjEsIDAuMDAwMDE2LCAwLjAwMDAxMyIsIFwKLSAgICAgICAgICAiMC4wMDAwMDQsIDAuMDAwMDUxLCAwLjAwMDA0MywgMC4wMDAwMzEsIDAuMDAwMDIyLCAwLjAwMDAxNywgMC4wMDAwMTQiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogSU5WWDMgKgotICogLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKElOVlgzKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMTEyMjE5OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDIzMjU5MzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDIzMjQ4ODsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDIzMjU5MzsKLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjc3ODk1NzsKLSAgICBmdW5jdGlvbiA6ICIoIUEpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxOTg2MywgMC4xMTY0NTksIDAuMjEyOTgyLCAwLjI4MjEzNCwgMC4zOTIwOTQsIDAuNDg5MDg1LCAwLjYyNjY3MiIsIFwKLSAgICAgICAgICAiMC4wMjk4MTEsIDAuMTI2MzI5LCAwLjIyMjk4NCwgMC4yOTE4NTgsIDAuNDAyMTI3LCAwLjQ5OTA1MiwgMC42MzY1NzgiLCBcCi0gICAgICAgICAgIjAuMDQxNjY3LCAwLjEzODgyNywgMC4yMzUzNTIsIDAuMzA0MzE3LCAwLjQxNDc3NCwgMC41MTEwODQsIDAuNjQ5Mzc4IiwgXAotICAgICAgICAgICIwLjA1MDY2NywgMC4xNTEyMTcsIDAuMjQ3OTE1LCAwLjMxNjc3NSwgMC40MjYyMDEsIDAuNTIyNTg4LCAwLjY2MDI0OSIsIFwKLSAgICAgICAgICAiMC4wNTg4NTcsIDAuMTYzNjA0LCAwLjI2MDE1NSwgMC4zMjkxMzYsIDAuNDM5NDY5LCAwLjUzNTgxNCwgMC42NzIwMjIiLCBcCi0gICAgICAgICAgIjAuMDY5MzY1LCAwLjE4NDUxNywgMC4yODA5NDEsIDAuMzQ5ODM2LCAwLjQ2MDI1MywgMC41NTY1ODQsIDAuNjk0NTE0IiwgXAotICAgICAgICAgICIwLjA3NzM2MywgMC4yMDIwODQsIDAuMjk3NjMzLCAwLjM2NjQ5OCwgMC40NzY5MzksIDAuNTczNjQxLCAwLjcxMTA5NyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzMzU5OCwgMC4yMzI0NTgsIDAuNDMxMzE3LCAwLjU3MzU4LCAwLjgwMTcyNywgMC45OTk4NjEsIDEuMjgzNTUiLCBcCi0gICAgICAgICAgIjAuMDM2NjkxLCAwLjIzMjc2NSwgMC40MzEyNzksIDAuNTczNzI0LCAwLjgwMTIyMywgMC45OTk4NywgMS4yODM1NyIsIFwKLSAgICAgICAgICAiMC4wNDQ3NTUsIDAuMjMyNjYxLCAwLjQzMTkxNywgMC41NzMwOTcsIDAuODAxMTc0LCAwLjk5OTE1LCAxLjI4MzM2IiwgXAotICAgICAgICAgICIwLjA1NDY2OSwgMC4yMzUyMDYsIDAuNDMxMjksIDAuNTczNjY5LCAwLjgwMDU4NSwgMC45OTkyNjgsIDEuMjg1ODIiLCBcCi0gICAgICAgICAgIjAuMDYzMjQyLCAwLjIzODk0LCAwLjQzMTkzNCwgMC41NzMzNSwgMC44MDA2MzQsIDAuOTk5MTMsIDEuMjg1OTciLCBcCi0gICAgICAgICAgIjAuMDc2NDUxLCAwLjI0NzYyMiwgMC40MzU1NjgsIDAuNTc1NjE0LCAwLjgwMDU3NSwgMC45OTkyMTEsIDEuMjg0NDkiLCBcCi0gICAgICAgICAgIjAuMDg2ODE3LCAwLjI1Njc4MSwgMC40NDE1MTcsIDAuNTc4MzI0LCAwLjgwMTI4NCwgMC45OTk0MzksIDEuMjgzMjciKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjA0MzYsIDAuMTE4NjYyLCAwLjIxNjg0OSwgMC4yODY4MzMsIDAuMzk5MTk4LCAwLjQ5NzE0MSwgMC42Mzc1MyIsIFwKLSAgICAgICAgICAiMC4wMzA1MzUsIDAuMTI4NzY5LCAwLjIyNjkxOCwgMC4yOTcwMSwgMC40MDkxNDQsIDAuNTA3MTk4LCAwLjY0NzM2MyIsIFwKLSAgICAgICAgICAiMC4wNDI5MzEsIDAuMTQxNDcsIDAuMjM5NTk3LCAwLjMwOTcxNiwgMC40MjE4MTcsIDAuNTE5OTE2LCAwLjY2MDI1MiIsIFwKLSAgICAgICAgICAiMC4wNTI5MjUsIDAuMTU0MTg2LCAwLjI1MjMyNCwgMC4zMjI1MzcsIDAuNDMzNywgMC41MzE3OTIsIDAuNjcxOTY1IiwgXAotICAgICAgICAgICIwLjA2MTE2OSwgMC4xNjY4OCwgMC4yNjQ5OTgsIDAuMzM1MzEyLCAwLjQ0NzM1NCwgMC41NDUzMTcsIDAuNjg0MjU3IiwgXAotICAgICAgICAgICIwLjA3MzA4NSwgMC4xODg1NjYsIDAuMjg1MTcsIDAuMzU1MjM5LCAwLjQ2NzY2LCAwLjU2NTgwMiwgMC43MDU2ODUiLCBcCi0gICAgICAgICAgIjAuMDgxNzQ3LCAwLjIwNjY3MywgMC4zMDQ0ODcsIDAuMzczNTAxLCAwLjQ4NTYzLCAwLjU4MzcwMiwgMC43MjQyMDIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzMzMDYsIDAuMjMxNzQ0LCAwLjQzMDIxNSwgMC41NzE2OTUsIDAuNzk4NzgzLCAwLjk5NjYzNCwgMS4yNzkzNSIsIFwKLSAgICAgICAgICAiMC4wMzYwMzQsIDAuMjMxNjk1LCAwLjQyOTk1MiwgMC41NzE2OSwgMC43OTg0OTUsIDAuOTk4NzY5LCAxLjI3OTQiLCBcCi0gICAgICAgICAgIjAuMDQzNzUsIDAuMjMxODIyLCAwLjQzMDkwNiwgMC41NzEzNzIsIDAuNzk5ODA4LCAwLjk5ODI5OCwgMS4yNzk1NiIsIFwKLSAgICAgICAgICAiMC4wNTM1MDksIDAuMjMzNTYzLCAwLjQyOTc3MiwgMC41NzE0MTEsIDAuNzk5OTE3LCAwLjk5NzE5NCwgMS4yODA3MiIsIFwKLSAgICAgICAgICAiMC4wNjI5ODgsIDAuMjM3ODgzLCAwLjQzMDE3NCwgMC41NzI2MDksIDAuNzk4Njk5LCAwLjk5ODY3MiwgMS4yODAwOSIsIFwKLSAgICAgICAgICAiMC4wNzYyMjMsIDAuMjQ1NTg4LCAwLjQzNDY0NywgMC41NzM5MDEsIDAuNzk5NjM3LCAwLjk5NjM3OSwgMS4yODIyIiwgXAotICAgICAgICAgICIwLjA4NzcwOCwgMC4yNTQxMDEsIDAuNDM5MDM1LCAwLjU3Njg2OSwgMC43OTgyMzUsIDAuOTk4NDQyLCAxLjI3OTEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzI2OSwgMC4wMDMzMTMsIDAuMDAzMzE3LCAwLjAwMzMxOSwgMC4wMDMzMTksIDAuMDAzMzE5LCAwLjAwMzMyIiwgXAotICAgICAgICAgICIwLjAwMzE3MSwgMC4wMDMyODcsIDAuMDAzMzAzLCAwLjAwMzMwNSwgMC4wMDMzMTEsIDAuMDAzMzEzLCAwLjAwMzMxNSIsIFwKLSAgICAgICAgICAiMC4wMDMxMzMsIDAuMDAzMjU4LCAwLjAwMzI4NiwgMC4wMDMyOTQsIDAuMDAzMzAyLCAwLjAwMzMwNSwgMC4wMDMzMDkiLCBcCi0gICAgICAgICAgIjAuMDAzMTUsIDAuMDAzMjQ1LCAwLjAwMzI3NiwgMC4wMDMyODYsIDAuMDAzMjk0LCAwLjAwMzI5OSwgMC4wMDMzMDQiLCBcCi0gICAgICAgICAgIjAuMDAzMTY4LCAwLjAwMzIzOSwgMC4wMDMyNzIsIDAuMDAzMjg1LCAwLjAwMzI5MywgMC4wMDMyOTgsIDAuMDAzMzAzIiwgXAotICAgICAgICAgICIwLjAwMzI3NywgMC4wMDMyMzgsIDAuMDAzMjY2LCAwLjAwMzI3NCwgMC4wMDMyODgsIDAuMDAzMjk0LCAwLjAwMzMiLCBcCi0gICAgICAgICAgIjAuMDAzMzIyLCAwLjAwMzI2MywgMC4wMDMyNzIsIDAuMDAzMjc5LCAwLjAwMzI4OCwgMC4wMDMyOTMsIDAuMDAzMjk5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDAwMzcsIDAuMDAwMDE3LCAwLjAwMDAyMiwgMC4wMDAwMjMsIDAuMDAwMDI1LCAwLjAwMDAyNSwgMC4wMDAwMjYiLCBcCi0gICAgICAgICAgIjAuMDAwMTcsIDAuMDAwMDE4LCAwLjAwMDAwMiwgMC4wMDAwMDgsIDAuMDAwMDE0LCAwLjAwMDAxNywgMC4wMDAwMTkiLCBcCi0gICAgICAgICAgIjAuMDAwMjI0LCAwLjAwMDA1NCwgMC4wMDAwMTksIDAuMDAwMDA4LCAwLjAwMDAwMiwgMC4wMDAwMDcsIDAuMDAwMDExIiwgXAotICAgICAgICAgICIwLjAwMDIwNywgMC4wMDAwNzcsIDAuMDAwMDM2LCAwLjAwMDAyMSwgMC4wMDAwMDksIDAuMDAwMDAyLCAwLjAwMDAwNSIsIFwKLSAgICAgICAgICAiMC4wMDAxNDksIDAuMDAwMDg2LCAwLjAwMDA0MywgMC4wMDAwMjcsIDAuMDAwMDE0LCAwLjAwMDAwNiwgMC4wMDAwMDEiLCBcCi0gICAgICAgICAgIjAuMDAwMDE5LCAwLjAwMDA2OSwgMC4wMDAwMzYsIDAuMDAwMDI0LCAwLjAwMDAxMSwgMC4wMDAwMDUsIDAuMDAwMDAyIiwgXAotICAgICAgICAgICIwLjAwMDAyNCwgMC4wMDAwOCwgMC4wMDAwNTQsIDAuMDAwMDQzLCAwLjAwMDAyOCwgMC4wMDAwMTksIDAuMDAwMDA5Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IE1ERkZIUVg4ICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChNREZGSFFYOCkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjgxMzkyOwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIGZmIChOMzAsUUJJTlQpIHsKLSAgICBuZXh0X3N0YXRlIDogIigoUzAgRDEpICsgKCFTMCBEMCkpIjsKLSAgICBjbG9ja2VkX29uIDogIkNLIjsKLSAgfQotICBwaW4oQ0spICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDU4NzY5NzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA1ODc2OTU7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNTg3Njk3OwotICAgIGNsb2NrIDogdHJ1ZTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDM0MzgsIDAuMDAzNDE0LCAwLjAwMzM5OSwgMC4wMDM0LCAwLjAwMzQxMiwgMC4wMDM0MzcsIDAuMDAzNDUyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA3NjA2LCAwLjAwNzU4MywgMC4wMDc1NzgsIDAuMDA3NTk3LCAwLjAwNzYxMywgMC4wMDc2NTksIDAuMDA3NjkzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRDAmIUQxJiFTMCI7Ci0gICAgICBzZGZfY29uZCA6ICJEMF9FUV8wX0FOX0QxX0VRXzBfQU5fUzBfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjEyOTk1OCwgMC4xNDAyMjYsIDAuMTUyODksIDAuMTY1NDc2LCAwLjE3NjY4MiwgMC4xOTI1MTYsIDAuMjA0NjM1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wOTYzNjUsIDAuMTA2MzI1LCAwLjExODc4NCwgMC4xMzA2MDUsIDAuMTQxMjQzLCAwLjE1NTYxNCwgMC4xNjY3NDYiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEQwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA5MjI4MTc7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwOTIwNDQ0OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDkyMjgxNzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDM2MzcsIDAuMDAzNjA1LCAwLjAwMzU4OCwgMC4wMDM1NzksIDAuMDAzNTc0LCAwLjAwMzU4NSwgMC4wMDM1ODciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDU3MTgsIDAuMDA1Njk5LCAwLjAwNTY4OSwgMC4wMDU2ODUsIDAuMDA1Njg0LCAwLjAwNTY4OCwgMC4wMDU2OTIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIVMwIjsKLSAgICAgIHNkZl9jb25kIDogIlMwID09IDEnYjAiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjA0Mzc1LCAtMC4wMzI1LCAtMC4wMjYyNSwgLTAuMDEzNzUsIC0wLjAwNzUsIC0wLjAwMzc1LCAwLjAwNSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjA0Mzc1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDA4NzUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wNjEyNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDIxMjUsIC0wLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjA3Mzc1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzMzc1LCAtMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjA4LCAtMC4wNzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDQsIC0wLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjA5NjI1LCAtMC4wODUsIC0wLjA3ODc1LCAtMC4wNzI1LCAtMC4wNjYyNSwgLTAuMDU2MjUsIC0wLjA0NzUiLCBcCi0gICAgICAgICAgIi0wLjEwNSwgLTAuMSwgLTAuMDg3NSwgLTAuMDgxMjUsIC0wLjA3NSwgLTAuMDY1LCAtMC4wNjI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMCwgMC4wMTEyNSwgMC4wMjM3NSwgMC4wMywgMC4wNDI1LCAwLjA1MjUsIDAuMDY3NSIsIFwKLSAgICAgICAgICAiLTAuMDExMjUsIDAsIDAuMDEyNSwgMC4wMjUsIDAuMDMxMjUsIDAuMDQ3NSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiLTAuMDE3NSwgLTAuMDA2MjUsIDAuMDA2MjUsIDAuMDEyNSwgMC4wMjUsIDAuMDM1LCAwLjA1IiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLjAwNjI1LCAwLjAxMjUsIDAuMDI4NzUsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAyNSwgLTAuMDEyNSwgMCwgMC4wMDYyNSwgMC4wMjI1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wNDYyNSwgLTAuMDM1LCAtMC4wMjI1LCAtMC4wMSwgLTAuMDAzNzUsIDAuMDA2MjUsIDAuMDIxMjUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wNDM3NSwgLTAuMDMxMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAwLjAwMzc1LCAwLjAxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFTMCI7Ci0gICAgICBzZGZfY29uZCA6ICJTMCA9PSAxJ2IwIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjg3NSwgMC4wNTc1LCAwLjA1MTI1LCAwLjA0NSwgMC4wMzI1LCAwLjAyODc1LCAwLjAyIiwgXAotICAgICAgICAgICIwLjA4LCAwLjA2ODc1LCAwLjA1NjI1LCAwLjA1LCAwLjA0Mzc1LCAwLjAzMzc1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiMC4wOTI1LCAwLjA4MTI1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDQ2MjUsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiMC4wOTg3NSwgMC4wODc1LCAwLjA4MTI1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDU4NzUsIDAuMDUiLCBcCi0gICAgICAgICAgIjAuMTExMjUsIDAuMSwgMC4wODc1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNjUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIjAuMTI3NSwgMC4xMTYyNSwgMC4xMDM3NSwgMC4wOTc1LCAwLjA5MTI1LCAwLjA4MTI1LCAwLjA3MjUiLCBcCi0gICAgICAgICAgIjAuMTM2MjUsIDAuMTI1LCAwLjExODc1LCAwLjEwNjI1LCAwLjEsIDAuMDksIDAuMDg3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0Mzc1LCAwLjAzMjUsIDAuMDIsIDAuMDA3NSwgLTAuMDA1LCAtMC4wMjEyNSwgLTAuMDMiLCBcCi0gICAgICAgICAgIjAuMDU1LCAwLjA0Mzc1LCAwLjAzMTI1LCAwLjAxODc1LCAwLjAwNjI1LCAtMC4wMSwgLTAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMDYxMjUsIDAuMDUsIDAuMDM3NSwgMC4wMjUsIDAuMDE4NzUsIDAuMDAyNSwgLTAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4wNzM3NSwgMC4wNjI1LCAwLjA1LCAwLjAzNzUsIDAuMDI1LCAwLjAwODc1LCAwIiwgXAotICAgICAgICAgICIwLjA4LCAwLjA2ODc1LCAwLjA1NjI1LCAwLjA0Mzc1LCAwLjAzMTI1LCAwLjAyMTI1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICIwLjA5NjI1LCAwLjA4NSwgMC4wNzI1LCAwLjA2LCAwLjA0NzUsIDAuMDMxMjUsIDAuMDIyNSIsIFwKLSAgICAgICAgICAiMC4xMDUsIDAuMDkzNzUsIDAuMDgxMjUsIDAuMDY4NzUsIDAuMDU2MjUsIDAuMDQsIDAuMDMxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEQxKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA4OTM4MjY7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwODkwNzE7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwODkzODI2OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzQyLCAwLjAwMzM4NywgMC4wMDMzNjksIDAuMDAzMzYxLCAwLjAwMzM1NiwgMC4wMDMzNjYsIDAuMDAzMzcyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA1OTksIDAuMDA1OTcyLCAwLjAwNTk2MywgMC4wMDU5NTgsIDAuMDA1OTU0LCAwLjAwNTk2LCAwLjAwNTk2NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJTMCI7Ci0gICAgICBzZGZfY29uZCA6ICJTMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMzc1LCAtMC4wMzI1LCAtMC4wMjYyNSwgLTAuMDEzNzUsIC0wLjAwNzUsIC0wLjAwMzc1LCAwLjAwNSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjA0Mzc1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDA4NzUsIDAiLCBcCi0gICAgICAgICAgIi0wLjA2MTI1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMjEyNSwgLTAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDY3NSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzM3NSwgLTAuMDI1IiwgXAotICAgICAgICAgICItMC4wOCwgLTAuMDc1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjA0LCAtMC4wMzc1IiwgXAotICAgICAgICAgICItMC4wOTYyNSwgLTAuMDg1LCAtMC4wNzg3NSwgLTAuMDcyNSwgLTAuMDY2MjUsIC0wLjA1NjI1LCAtMC4wNDc1IiwgXAotICAgICAgICAgICItMC4xMDUsIC0wLjEsIC0wLjA4NzUsIC0wLjA4MTI1LCAtMC4wNzUsIC0wLjA2NSwgLTAuMDYyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAsIDAuMDExMjUsIDAuMDE3NSwgMC4wMywgMC4wNDI1LCAwLjA1MjUsIDAuMDYxMjUiLCBcCi0gICAgICAgICAgIi0wLjAxMTI1LCAwLCAwLjAxMjUsIDAuMDI1LCAwLjAzMTI1LCAwLjA0NzUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIi0wLjAxNzUsIC0wLjAwNjI1LCAwLCAwLjAxMjUsIDAuMDI1LCAwLjAzNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAxODc1LCAtMC4wMDYyNSwgMC4wMDYyNSwgMC4wMTI1LCAwLjAyODc1LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMjUsIC0wLjAxMjUsIDAsIDAuMDA2MjUsIDAuMDIyNSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDQ2MjUsIC0wLjAzNSwgLTAuMDIyNSwgLTAuMDE2MjUsIC0wLjAwMzc1LCAwLjAwNjI1LCAwLjAyMTI1IiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA0Mzc1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMTI1LCAtMC4wMDI1LCAwLjAxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlMwIjsKLSAgICAgIHNkZl9jb25kIDogIlMwID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2ODc1LCAwLjA1NzUsIDAuMDUxMjUsIDAuMDM4NzUsIDAuMDMyNSwgMC4wMjI1LCAwLjAyIiwgXAotICAgICAgICAgICIwLjA4LCAwLjA2ODc1LCAwLjA1NjI1LCAwLjA1LCAwLjA0Mzc1LCAwLjAzMzc1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiMC4wOTI1LCAwLjA4MTI1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDQ2MjUsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiMC4wOTg3NSwgMC4wODc1LCAwLjA4MTI1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDUyNSwgMC4wNSIsIFwKLSAgICAgICAgICAiMC4xMTEyNSwgMC4xLCAwLjA4NzUsIDAuMDgxMjUsIDAuMDc1LCAwLjA2NSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiMC4xMjc1LCAwLjExNjI1LCAwLjEwMzc1LCAwLjA5NzUsIDAuMDkxMjUsIDAuMDgxMjUsIDAuMDcyNSIsIFwKLSAgICAgICAgICAiMC4xMzYyNSwgMC4xMjUsIDAuMTE4NzUsIDAuMTA2MjUsIDAuMSwgMC4wOSwgMC4wODc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQzNzUsIDAuMDMyNSwgMC4wMiwgMC4wMDc1LCAwLjAwMTI1LCAtMC4wMTUsIC0wLjAzIiwgXAotICAgICAgICAgICIwLjA1NSwgMC4wNDM3NSwgMC4wMzEyNSwgMC4wMTg3NSwgMC4wMDYyNSwgLTAuMDEsIC0wLjAxODc1IiwgXAotICAgICAgICAgICIwLjA2MTI1LCAwLjA1LCAwLjAzNzUsIDAuMDI1LCAwLjAxODc1LCAwLjAwMjUsIC0wLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMDczNzUsIDAuMDYyNSwgMC4wNSwgMC4wMzc1LCAwLjAyNSwgMC4wMDg3NSwgMCIsIFwKLSAgICAgICAgICAiMC4wOCwgMC4wNjg3NSwgMC4wNTYyNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAyMTI1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICIwLjA5NjI1LCAwLjA4NSwgMC4wNzI1LCAwLjA2LCAwLjA0NzUsIDAuMDMxMjUsIDAuMDIyNSIsIFwKLSAgICAgICAgICAiMC4xMDUsIDAuMDkzNzUsIDAuMDgxMjUsIDAuMDY4NzUsIDAuMDU2MjUsIDAuMDQsIDAuMDMxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFEpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMi4wMDk4NTsKLSAgICBmdW5jdGlvbiA6ICJOMzAiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5vbl91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcmlzaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTE5MTI0LCAwLjE1Njg4OSwgMC4xOTI3OTMsIDAuMjE4NDEsIDAuMjU5MzgzLCAwLjI5NTIyNSwgMC4zNDY0MjMiLCBcCi0gICAgICAgICAgIjAuMTI5MzYxLCAwLjE2NzEyNSwgMC4yMDMwMzEsIDAuMjI4NjQ1LCAwLjI2OTYxNCwgMC4zMDU0NTEsIDAuMzU2NjU5IiwgXAotICAgICAgICAgICIwLjE0MTk3OSwgMC4xNzk3NDIsIDAuMjE1NjUyLCAwLjI0MTI2OCwgMC4yODIyMzcsIDAuMzE4MDc2LCAwLjM2OTI4MSIsIFwKLSAgICAgICAgICAiMC4xNTQzOTMsIDAuMTkyMTYyLCAwLjIyODA3LCAwLjI1MzY4NiwgMC4yOTQ2NTQsIDAuMzMwNDkyLCAwLjM4MTY1OCIsIFwKLSAgICAgICAgICAiMC4xNjU1NzEsIDAuMjAzMzM5LCAwLjIzOTI1NSwgMC4yNjQ4NjYsIDAuMzA1ODM1LCAwLjM0MTY3NiwgMC4zOTI4NzUiLCBcCi0gICAgICAgICAgIjAuMTgwODE4LCAwLjIxODU5MywgMC4yNTQ1MDMsIDAuMjgwMTE5LCAwLjMyMTA4OSwgMC4zNTY5MjcsIDAuNDA4MTMxIiwgXAotICAgICAgICAgICIwLjE5MzQ1NiwgMC4yMzEyMTgsIDAuMjY3MTI2LCAwLjI5Mjc0MiwgMC4zMzM3MjIsIDAuMzY5NTUsIDAuNDIwNzUyIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDIyMDc2LCAwLjA5MjE1MSwgMC4xNjUxMjIsIDAuMjE3NzU1LCAwLjMwMjQxMiwgMC4zNzU0NzgsIDAuNDgxMDYzIiwgXAotICAgICAgICAgICIwLjAyMjA4NSwgMC4wOTIxNTIsIDAuMTY1MTI1LCAwLjIxNzc1NCwgMC4zMDE4MTgsIDAuMzc1NTU3LCAwLjQ4MTA1NyIsIFwKLSAgICAgICAgICAiMC4wMjIxMDEsIDAuMDkyMjI2LCAwLjE2NTEyOCwgMC4yMTc2OTIsIDAuMzAyMzg3LCAwLjM3NjM2NywgMC40ODIxNiIsIFwKLSAgICAgICAgICAiMC4wMjIwNzUsIDAuMDkyMTUyLCAwLjE2NTEyOSwgMC4yMTc2OTMsIDAuMzAyMzc3LCAwLjM3NjM1MywgMC40ODA3NjQiLCBcCi0gICAgICAgICAgIjAuMDIyMDk0LCAwLjA5MjE1LCAwLjE2NTE2MiwgMC4yMTc3NiwgMC4zMDI0MDEsIDAuMzc2MzksIDAuNDgxNjk0IiwgXAotICAgICAgICAgICIwLjAyMjEwOCwgMC4wOTIxNTUsIDAuMTY1MTMsIDAuMjE3NjkzLCAwLjMwMjM4NCwgMC4zNzU5OTUsIDAuNDgxNjI5IiwgXAotICAgICAgICAgICIwLjAyMjEyNiwgMC4wOTIxNiwgMC4xNjUxMzEsIDAuMjE3NjkzLCAwLjMwMjM3OSwgMC4zNzYzNzQsIDAuNDgyMDQxIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTI5OTU4LCAwLjE2OTc1OSwgMC4yMDc4NDEsIDAuMjM0OTk2LCAwLjI3ODQyNywgMC4zMTY0MjQsIDAuMzcwNzI2IiwgXAotICAgICAgICAgICIwLjE0MDIyNywgMC4xODAwMTYsIDAuMjE4MTA2LCAwLjI0NTI2MSwgMC4yODg3MDYsIDAuMzI2NjkzLCAwLjM4MDk5OSIsIFwKLSAgICAgICAgICAiMC4xNTI4OSwgMC4xOTI2ODYsIDAuMjMwNzc2LCAwLjI1NzkzNywgMC4zMDEzNjIsIDAuMzM5MzYsIDAuMzkzNjYzIiwgXAotICAgICAgICAgICIwLjE2NTQ3NiwgMC4yMDUyNzIsIDAuMjQzMzU0LCAwLjI3MDUwOSwgMC4zMTM5MzcsIDAuMzUxOTM1LCAwLjQwNjIzNiIsIFwKLSAgICAgICAgICAiMC4xNzY2ODUsIDAuMjE2NDc3LCAwLjI1NDU3MywgMC4yODE3MjUsIDAuMzI1MTUzLCAwLjM2MzE1NSwgMC40MTc0NTYiLCBcCi0gICAgICAgICAgIjAuMTkyNTE5LCAwLjIzMjMxMiwgMC4yNzAzOTksIDAuMjk3NTU4LCAwLjM0MDk4NSwgMC4zNzg5ODUsIDAuNDMzMzEzIiwgXAotICAgICAgICAgICIwLjIwNDYzOSwgMC4yNDQ0MzUsIDAuMjgyNTIxLCAwLjMwOTY3OCwgMC4zNTMxMDcsIDAuMzkxMTA2LCAwLjQ0NTQxMyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyMTc0NSwgMC4wOTU0OSwgMC4xNzE4NSwgMC4yMjY4OCwgMC4zMTUxMzYsIDAuMzkxNjA0LCAwLjUwMTUwOCIsIFwKLSAgICAgICAgICAiMC4wMjE3NDYsIDAuMDk1NTk5LCAwLjE3MTg0MSwgMC4yMjY4NjksIDAuMzE1MjU0LCAwLjM5MTg1NywgMC41MDI3NDkiLCBcCi0gICAgICAgICAgIjAuMDIxNzQ2LCAwLjA5NTU5OSwgMC4xNzE3NjUsIDAuMjI2NzU2LCAwLjMxNDU4MSwgMC4zOTE3MjcsIDAuNTAxODQ5IiwgXAotICAgICAgICAgICIwLjAyMTc0OCwgMC4wOTU1MDYsIDAuMTcxODc4LCAwLjIyNjg1MSwgMC4zMTQ1ODksIDAuMzkyMzMxLCAwLjUwMTYxNiIsIFwKLSAgICAgICAgICAiMC4wMjE3NDQsIDAuMDk1NTg0LCAwLjE3MTc3NiwgMC4yMjY3NDEsIDAuMzE1MTU1LCAwLjM5MjI5OCwgMC41MDE2NzkiLCBcCi0gICAgICAgICAgIjAuMDIxNzQ0LCAwLjA5NTYxNCwgMC4xNzE4NzcsIDAuMjI2ODQ5LCAwLjMxNTEzOCwgMC4zOTE3MDMsIDAuNTAxNjQ5IiwgXAotICAgICAgICAgICIwLjAyMTc2LCAwLjA5NTU0NiwgMC4xNzE4NjksIDAuMjI2NjQ0LCAwLjMxNTE0MywgMC4zOTE2NzgsIDAuNTAxOTI3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE2Mjk5LCAwLjAxNjYzOSwgMC4wMTY3MTEsIDAuMDE2NzM0LCAwLjAxNjc1NiwgMC4wMTY3NjgsIDAuMDE2Nzc5IiwgXAotICAgICAgICAgICIwLjAxNjI3MSwgMC4wMTY2MTEsIDAuMDE2Njg0LCAwLjAxNjcxMSwgMC4wMTY3MywgMC4wMTY3MzMsIDAuMDE2NzUxIiwgXAotICAgICAgICAgICIwLjAxNjI0NCwgMC4wMTY1OSwgMC4wMTY2NjQsIDAuMDE2Njg4LCAwLjAxNjcwOCwgMC4wMTY3MiwgMC4wMTY3MjkiLCBcCi0gICAgICAgICAgIjAuMDE2MjUsIDAuMDE2NTkyLCAwLjAxNjY2NywgMC4wMTY2OTMsIDAuMDE2NzEsIDAuMDE2NzIsIDAuMDE2NzMiLCBcCi0gICAgICAgICAgIjAuMDE2MjUxLCAwLjAxNjU5OCwgMC4wMTY2NzEsIDAuMDE2Njk1LCAwLjAxNjcxNywgMC4wMTY3MywgMC4wMTY3MzkiLCBcCi0gICAgICAgICAgIjAuMDE2MjY2LCAwLjAxNjYwOCwgMC4wMTY2ODMsIDAuMDE2NzA3LCAwLjAxNjcyOCwgMC4wMTY3MzksIDAuMDE2NzQ5IiwgXAotICAgICAgICAgICIwLjAxNjMxLCAwLjAxNjY0NiwgMC4wMTY3MTksIDAuMDE2NzQ1LCAwLjAxNjc2MywgMC4wMTY3NzYsIDAuMDE2Nzg0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTY1MjksIDAuMDE2OTg1LCAwLjAxNzA4OCwgMC4wMTcxMjEsIDAuMDE3MTUxLCAwLjAxNzE2OCwgMC4wMTcxODMiLCBcCi0gICAgICAgICAgIjAuMDE2NDk5LCAwLjAxNjk1NywgMC4wMTcwNTksIDAuMDE3MDkzLCAwLjAxNzEyNCwgMC4wMTcxNCwgMC4wMTcxNTQiLCBcCi0gICAgICAgICAgIjAuMDE2NDkzLCAwLjAxNjk1MiwgMC4wMTcwNTQsIDAuMDE3MDg5LCAwLjAxNzEyLCAwLjAxNzEzNiwgMC4wMTcxNTEiLCBcCi0gICAgICAgICAgIjAuMDE2NTI3LCAwLjAxNjk3NiwgMC4wMTcwNzYsIDAuMDE3MTA5LCAwLjAxNzEzOSwgMC4wMTcxNTUsIDAuMDE3MTY5IiwgXAotICAgICAgICAgICIwLjAxNjUzNywgMC4wMTY5OTMsIDAuMDE3MDk0LCAwLjAxNzEyOCwgMC4wMTcxNTgsIDAuMDE3MTc0LCAwLjAxNzE4OSIsIFwKLSAgICAgICAgICAiMC4wMTY1NjYsIDAuMDE3MDIzLCAwLjAxNzEyNCwgMC4wMTcxNTksIDAuMDE3MTg5LCAwLjAxNzIwNSwgMC4wMTcyMiIsIFwKLSAgICAgICAgICAiMC4wMTY2MDMsIDAuMDE3MDYyLCAwLjAxNzE2NCwgMC4wMTcxOTksIDAuMDE3MjMsIDAuMDE3MjQ2LCAwLjAxNzI2MSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUzApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTY2NTAyOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTY2NDkxOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTY2NTAyOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNTM5OCwgMC4wMDUzNzYsIDAuMDA1MzY3LCAwLjAwNTM2NiwgMC4wMDUzNzcsIDAuMDA1MzkzLCAwLjAwNTQxMiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNjc5NCwgMC4wMDY3NCwgMC4wMDY3MzgsIDAuMDA2NzMsIDAuMDA2NzUxLCAwLjAwNjc5MSwgMC4wMDY4MzgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUQwJkQxIjsKLSAgICAgIHNkZl9jb25kIDogIkQwX0VRXzBfQU5fRDFfRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMzEyNSwgLTAuMDI2MjUsIC0wLjAyLCAtMC4wMDc1LCAtMC4wMDEyNSwgMC4wMDI1LCAwLjAxMTI1IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDI1LCAwIiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMTUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wNjc1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMjc1LCAtMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDgsIC0wLjA2ODc1LCAtMC4wNjI1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjA0LCAtMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDksIC0wLjA4NSwgLTAuMDcyNSwgLTAuMDY2MjUsIC0wLjA2LCAtMC4wNSwgLTAuMDQ3NSIsIFwKLSAgICAgICAgICAiLTAuMTA1LCAtMC4wOTM3NSwgLTAuMDg3NSwgLTAuMDgxMjUsIC0wLjA3NSwgLTAuMDY1LCAtMC4wNTYyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2MjUsIDAuMDE3NSwgMC4wMywgMC4wMzYyNSwgMC4wNDg3NSwgMC4wNTg3NSwgMC4wNzM3NSIsIFwKLSAgICAgICAgICAiLTAuMDA1LCAwLjAwNjI1LCAwLjAxODc1LCAwLjAzMTI1LCAwLjAzNzUsIDAuMDUzNzUsIDAuMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDExMjUsIC0wLjAwNjI1LCAwLjAwNjI1LCAwLjAxODc1LCAwLjAzMTI1LCAwLjA0MTI1LCAwLjA1IiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDEyNSwgMCwgMC4wMTI1LCAwLjAxODc1LCAwLjAzNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAxODc1LCAtMC4wMDYyNSwgMCwgMC4wMTI1LCAwLjAyMjUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjA0LCAtMC4wMjg3NSwgLTAuMDIyNSwgLTAuMDEsIDAuMDAyNSwgMC4wMTI1LCAwLjAyMTI1IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMDYyNSwgMC4wMDM3NSwgMC4wMTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIkQwJiFEMSI7Ci0gICAgICBzZGZfY29uZCA6ICJEMF9FUV8xX0FOX0QxX0VRXzAgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDEyNSwgLTAuMDAxMjUsIDAuMDExMjUsIDAuMDIzNzUsIDAuMDMsIDAuMDQ2MjUsIDAuMDU1IiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDEyNSwgMCwgMC4wMTI1LCAwLjAxODc1LCAwLjAzNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAyNSwgLTAuMDEyNSwgMCwgMC4wMDYyNSwgMC4wMjI1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIDAsIDAuMDE2MjUsIDAuMDI1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDQzNzUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAuMDAzNzUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDU4NzUsIC0wLjA1Mzc1LCAtMC4wNDEyNSwgLTAuMDI4NzUsIC0wLjAxNjI1LCAtMC4wMDYyNSwgMC4wMDI1IiwgXAotICAgICAgICAgICItMC4wNjc1LCAtMC4wNjI1LCAtMC4wNSwgLTAuMDM3NSwgLTAuMDI1LCAtMC4wMTUsIC0wLjAwNjI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDUsIC0wLjA0NSwgLTAuMDM4NzUsIC0wLjAyNjI1LCAtMC4wMiwgLTAuMDE2MjUsIC0wLjAwNzUiLCBcCi0gICAgICAgICAgIi0wLjA2MTI1LCAtMC4wNTYyNSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMjEyNSwgLTAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjA3Mzc1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wMzM3NSwgLTAuMDI1IiwgXAotICAgICAgICAgICItMC4wOCwgLTAuMDc1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjA0NjI1LCAtMC4wMzc1IiwgXAotICAgICAgICAgICItMC4wODYyNSwgLTAuMDgxMjUsIC0wLjA3NSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA1MjUsIC0wLjA0Mzc1IiwgXAotICAgICAgICAgICItMC4wOTYyNSwgLTAuMDkxMjUsIC0wLjA4NSwgLTAuMDcyNSwgLTAuMDY2MjUsIC0wLjA2MjUsIC0wLjA1Mzc1IiwgXAotICAgICAgICAgICItMC4xMDUsIC0wLjEsIC0wLjA4NzUsIC0wLjA4MTI1LCAtMC4wNzUsIC0wLjA2NSwgLTAuMDYyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUQwJkQxIjsKLSAgICAgIHNkZl9jb25kIDogIkQwX0VRXzBfQU5fRDFfRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjI1LCAwLjA1MTI1LCAwLjA0NSwgMC4wMzI1LCAwLjAyNjI1LCAwLjAyMjUsIDAuMDEzNzUiLCBcCi0gICAgICAgICAgIjAuMDczNzUsIDAuMDYyNSwgMC4wNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAyNzUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMDg2MjUsIDAuMDc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDUsIDAuMDQsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMDk4NzUsIDAuMDg3NSwgMC4wNzUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNTI1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjEwNSwgMC4xLCAwLjA4NzUsIDAuMDgxMjUsIDAuMDY4NzUsIDAuMDY1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICIwLjEyMTI1LCAwLjExNjI1LCAwLjEwMzc1LCAwLjA5NzUsIDAuMDkxMjUsIDAuMDgxMjUsIDAuMDcyNSIsIFwKLSAgICAgICAgICAiMC4xMzYyNSwgMC4xMjUsIDAuMTEyNSwgMC4xMDYyNSwgMC4xLCAwLjA5LCAwLjA4MTI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM3NSwgMC4wMjYyNSwgMC4wMTM3NSwgMC4wMDEyNSwgLTAuMDExMjUsIC0wLjAyNzUsIC0wLjAzNjI1IiwgXAotICAgICAgICAgICIwLjA0ODc1LCAwLjAzNzUsIDAuMDI1LCAwLjAxMjUsIDAsIC0wLjAxNjI1LCAtMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMDU1LCAwLjA1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMTI1LCAtMC4wMDM3NSwgLTAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMDY3NSwgMC4wNTYyNSwgMC4wNDM3NSwgMC4wMzEyNSwgMC4wMjUsIDAuMDA4NzUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICIwLjA4LCAwLjA2ODc1LCAwLjA1NjI1LCAwLjA0Mzc1LCAwLjAzMTI1LCAwLjAxNSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiMC4wOTYyNSwgMC4wODUsIDAuMDcyNSwgMC4wNiwgMC4wNDc1LCAwLjAzMTI1LCAwLjAyMjUiLCBcCi0gICAgICAgICAgIjAuMTA1LCAwLjA5Mzc1LCAwLjA4MTI1LCAwLjA2ODc1LCAwLjA1NjI1LCAwLjA0LCAwLjAzMTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJEMCYhRDEiOwotICAgICAgc2RmX2NvbmQgOiAiRDBfRVFfMV9BTl9EMV9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1NjI1LCAwLjA0NSwgMC4wMzI1LCAwLjAyLCAwLjAwNzUsIC0wLjAwODc1LCAtMC4wMTc1IiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDU2MjUsIDAuMDQzNzUsIDAuMDMxMjUsIDAuMDE4NzUsIDAuMDAyNSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMDgsIDAuMDY4NzUsIDAuMDU2MjUsIDAuMDQzNzUsIDAuMDMxMjUsIDAuMDE1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICIwLjA4NjI1LCAwLjA3NSwgMC4wNjI1LCAwLjA1LCAwLjAzNzUsIDAuMDI3NSwgMC4wMTI1IiwgXAotICAgICAgICAgICIwLjA5MjUsIDAuMDgxMjUsIDAuMDY4NzUsIDAuMDU2MjUsIDAuMDUsIDAuMDMzNzUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMTAyNSwgMC4wOTc1LCAwLjA3ODc1LCAwLjA3MjUsIDAuMDYsIDAuMDQzNzUsIDAuMDI4NzUiLCBcCi0gICAgICAgICAgIjAuMTExMjUsIDAuMSwgMC4wODc1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNTI1LCAwLjAzNzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODEyNSwgMC4wNywgMC4wNjM3NSwgMC4wNTEyNSwgMC4wNDUsIDAuMDM1LCAwLjAzMjUiLCBcCi0gICAgICAgICAgIjAuMDkyNSwgMC4wODEyNSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA0NjI1LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIjAuMTA1LCAwLjA5Mzc1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNTg3NSwgMC4wNSIsIFwKLSAgICAgICAgICAiMC4xMTEyNSwgMC4xLCAwLjA5Mzc1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNjUsIDAuMDYyNSIsIFwKLSAgICAgICAgICAiMC4xMTc1LCAwLjEwNjI1LCAwLjEsIDAuMDkzNzUsIDAuMDgxMjUsIDAuMDc3NSwgMC4wNjg3NSIsIFwKLSAgICAgICAgICAiMC4xMjc1LCAwLjExNjI1LCAwLjExLCAwLjA5NzUsIDAuMDkxMjUsIDAuMDgxMjUsIDAuMDc4NzUiLCBcCi0gICAgICAgICAgIjAuMTM2MjUsIDAuMTI1LCAwLjExMjUsIDAuMTA2MjUsIDAuMSwgMC4wOSwgMC4wODEyNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBNWDJYMSAqCi0gKiAtLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoTVgyWDEpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4xMjgwNjY7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY1NzY5MTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2NTU5Njc7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjU3NjkxOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDIxLCAwLjAwMDIxNSwgMC4wMDAyMTcsIDAuMDAwMjE3LCAwLjAwMDIxOCwgMC4wMDAyMTgsIDAuMDAwMjE5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjMzLCAwLjAwMDIyOCwgMC4wMDAyMjgsIDAuMDAwMjI3LCAwLjAwMDIyNywgMC4wMDAyMjcsIDAuMDAwMjI3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2OTE1ODc7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjkwMDMzOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDY5MTU4NzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyMTgsIDAuMDAwMjIsIDAuMDAwMjIxLCAwLjAwMDIyMiwgMC4wMDAyMjIsIDAuMDAwMjIyLCAwLjAwMDIyMiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDIzMSwgMC4wMDAyMjgsIDAuMDAwMjI3LCAwLjAwMDIyNywgMC4wMDAyMjcsIDAuMDAwMjI3LCAwLjAwMDIyNyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUzApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTMxNzQyOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTMxNjkyOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTMxNzQyOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDE2MywgMC4wMDAxMzUsIDAuMDAwMTM5LCAwLjAwMDE1MywgMC4wMDAxNTcsIDAuMDAwMTgzLCAwLjAwMDIwOCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjAzNSwgMC4wMDIwMTMsIDAuMDAyMDE1LCAwLjAwMjAyMiwgMC4wMDIwMzEsIDAuMDAyMDU3LCAwLjAwMjA4Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMjUyNzIzOwotICAgIGZ1bmN0aW9uIDogIigoUzAgQikgKyAoIVMwIEEpKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk1MTUyLCAwLjExOTkzNSwgMC4yNTkyNzQsIDAuMzgxOTkyLCAwLjU0NTY5NywgMC44NzI4MzYsIDEuMDc3MyIsIFwKLSAgICAgICAgICAiMC4xMDM4NywgMC4xMjg2OTYsIDAuMjY4MDE0LCAwLjM5MDc3LCAwLjU1NDM3OCwgMC44ODE1OCwgMS4wODYwNyIsIFwKLSAgICAgICAgICAiMC4xMTQ1MzksIDAuMTM5MzMyLCAwLjI3ODY4MSwgMC40MDE0MTQsIDAuNTY1MDM1LCAwLjg5MjIzMiwgMS4wOTY3MiIsIFwKLSAgICAgICAgICAiMC4xMjQ4MDgsIDAuMTQ5NjA0LCAwLjI4ODk2NSwgMC40MTE3LCAwLjU3NTM3MSwgMC45MDI1MjIsIDEuMTA2OTkiLCBcCi0gICAgICAgICAgIjAuMTM0NTY3LCAwLjE1OTM3NywgMC4yOTg3MiwgMC40MjE0ODIsIDAuNTg1MDM1LCAwLjkxMjIyMywgMS4xMTY3MSIsIFwKLSAgICAgICAgICAiMC4xNDg1NDksIDAuMTczNDM3LCAwLjMxMjg0NiwgMC40MzU1ODYsIDAuNTk5MTY2LCAwLjkyNjM0OSwgMS4xMzA4MiIsIFwKLSAgICAgICAgICAiMC4xNTk2NjgsIDAuMTg0NjIzLCAwLjMyMzk2MiwgMC40NDY3MzYsIDAuNjEwMzMyLCAwLjkzNzQ4MiwgMS4xNDIxOCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTU0NTEsIDAuMTQ0NTcsIDAuNDI4Njk3LCAwLjY4MjAzNCwgMS4wMTk0MywgMS42OTA1LCAyLjExMjQzIiwgXAotICAgICAgICAgICIwLjA5NTQ0OCwgMC4xNDQ1NDcsIDAuNDI5Mzg1LCAwLjY4MTE4OCwgMS4wMTgwNiwgMS42OTEzLCAyLjExNTA2IiwgXAotICAgICAgICAgICIwLjA5NTQzLCAwLjE0NDU2LCAwLjQyODU2MiwgMC42ODIwMTUsIDEuMDE4MDgsIDEuNjkxMzcsIDIuMTEyMzgiLCBcCi0gICAgICAgICAgIjAuMDk1NTk0LCAwLjE0NDYzNiwgMC40Mjg1NSwgMC42ODE5MTksIDEuMDE5MSwgMS42OTEzMiwgMi4xMTIyNCIsIFwKLSAgICAgICAgICAiMC4wOTU4MzIsIDAuMTQ0ODIyLCAwLjQyODg3OCwgMC42ODE5MzgsIDEuMDE3OTYsIDEuNjkxNiwgMi4xMTIzMSIsIFwKLSAgICAgICAgICAiMC4wOTY1OTksIDAuMTQ1MzUxLCAwLjQyOTQ2MSwgMC42ODE5NjgsIDEuMDE4OSwgMS42OTEyLCAyLjExMjM3IiwgXAotICAgICAgICAgICIwLjA5NzM4NCwgMC4xNDU4NzUsIDAuNDI5MDE3LCAwLjY4MjAxMywgMS4wMTksIDEuNjkzMTUsIDIuMTExNiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTc5NDksIDAuMTIzMDYzLCAwLjI2MzUxMywgMC4zODcyOCwgMC41NTIxNywgMC44ODE5NzIsIDEuMDg4MTEiLCBcCi0gICAgICAgICAgIjAuMTA2NTEzLCAwLjEzMTYzNywgMC4yNzIxMjUsIDAuMzk1ODMsIDAuNTYwNzQyLCAwLjg5MDU2MiwgMS4wOTY2OCIsIFwKLSAgICAgICAgICAiMC4xMTYzMTIsIDAuMTQxNDM0LCAwLjI4MTkxMywgMC40MDU2OTMsIDAuNTcwNTY0LCAwLjkwMDM4OSwgMS4xMDY1IiwgXAotICAgICAgICAgICIwLjEyNTY3MSwgMC4xNTA3OTcsIDAuMjkxMjgsIDAuNDE1MDMyLCAwLjU3OTkzMSwgMC45MDk3NTQsIDEuMTE1ODYiLCBcCi0gICAgICAgICAgIjAuMTM0Mjc5LCAwLjE1OTQ3NSwgMC4yOTk5OTEsIDAuNDIzNzc4LCAwLjU4ODY0OSwgMC45MTg0NjMsIDEuMTI0NjIiLCBcCi0gICAgICAgICAgIjAuMTQ2Nzg2LCAwLjE3MTk5NCwgMC4zMTI1MSwgMC40MzYyNDcsIDAuNjAxMTk1LCAwLjkzMDk4MywgMS4xMzcwOSIsIFwKLSAgICAgICAgICAiMC4xNTYzNDYsIDAuMTgxNjY4LCAwLjMyMjE4OSwgMC40NDU5MywgMC42MTA4ODMsIDAuOTQwNjQ2LCAxLjE0NjkxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5NTAzNCwgMC4xNDMzMjQsIDAuNDIzMzksIDAuNjcyNjQyLCAxLjAwNDgyLCAxLjY2NzU3LCAyLjA4NjQ3IiwgXAotICAgICAgICAgICIwLjA5NTAyOCwgMC4xNDMyNTQsIDAuNDIzNzczLCAwLjY3MjI1MywgMS4wMDUyNCwgMS42Njc4MSwgMi4wODI2OCIsIFwKLSAgICAgICAgICAiMC4wOTUwMjUsIDAuMTQzMjY0LCAwLjQyMzA0NiwgMC42NzI1ODIsIDEuMDA1MjYsIDEuNjY4MDgsIDIuMDgyOTgiLCBcCi0gICAgICAgICAgIjAuMDk1MTg4LCAwLjE0MzQ1MywgMC40MjM2ODEsIDAuNjcyNjUsIDEuMDA1MjMsIDEuNjY3OCwgMi4wODI2MyIsIFwKLSAgICAgICAgICAiMC4wOTU1NCwgMC4xNDM2MDYsIDAuNDIyOTgzLCAwLjY3MjUyLCAxLjAwNTI0LCAxLjY2NzU0LCAyLjA4NjU1IiwgXAotICAgICAgICAgICIwLjA5NjMwNywgMC4xNDQxNzksIDAuNDIzMDYsIDAuNjcyNzgxLCAxLjAwNTMyLCAxLjY2ODg4LCAyLjA4NTMzIiwgXAotICAgICAgICAgICIwLjA5Njk5NCwgMC4xNDQ3MzQsIDAuNDIzNTU0LCAwLjY3MjM4MSwgMS4wMDQ5OSwgMS42NzA0NiwgMi4wODA3OSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTQ2NywgMC4xMTk0NDQsIDAuMjU4NzIyLCAwLjM4MTQyNCwgMC41NDUwNCwgMC44NzIyNzcsIDEuMDc2NzIiLCBcCi0gICAgICAgICAgIjAuMTAzNjExLCAwLjEyODM4MSwgMC4yNjc2MzcsIDAuMzkwNCwgMC41NTM5ODUsIDAuODgxMjE5LCAxLjA4NTY1IiwgXAotICAgICAgICAgICIwLjExNDM5NCwgMC4xMzkxNTcsIDAuMjc4NDM4LCAwLjQwMTE2NiwgMC41NjQ3OCwgMC44OTE5MjcsIDEuMDk2NDIiLCBcCi0gICAgICAgICAgIjAuMTI0NzY0LCAwLjE0OTUwNywgMC4yODg4MDksIDAuNDExNTI1LCAwLjU3NTEzNiwgMC45MDIzMzcsIDEuMTA2ODIiLCBcCi0gICAgICAgICAgIjAuMTM0NTgsIDAuMTU5MzY0LCAwLjI5ODY0NiwgMC40MjEzOTYsIDAuNTg0OTg4LCAwLjkxMjE1OCwgMS4xMTY2MiIsIFwKLSAgICAgICAgICAiMC4xNDg3MzMsIDAuMTczNTc1LCAwLjMxMjg1NCwgMC40MzU2MTQsIDAuNTk5MTkyLCAwLjkyNjM1NiwgMS4xMzA4MiIsIFwKLSAgICAgICAgICAiMC4xNTk4MiwgMC4xODQ3MDgsIDAuMzI0MDEyLCAwLjQ0Njc0MiwgMC42MTAzMzQsIDAuOTM3NTA4LCAxLjE0MTk2Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5NTQ3NCwgMC4xNDQ1NzgsIDAuNDI4NjY5LCAwLjY4MjAyNCwgMS4wMTgxMywgMS42OTA5MywgMi4xMTI0OCIsIFwKLSAgICAgICAgICAiMC4wOTUzNzgsIDAuMTQ0NTk2LCAwLjQyOTE2MiwgMC42ODIwNTQsIDEuMDE4MDcsIDEuNjkwODMsIDIuMTEyMzYiLCBcCi0gICAgICAgICAgIjAuMDk1NDU4LCAwLjE0NDU1OSwgMC40Mjg3NzUsIDAuNjgyMDE5LCAxLjAxNzg5LCAxLjY5MzUxLCAyLjExMjUiLCBcCi0gICAgICAgICAgIjAuMDk1NjM0LCAwLjE0NDYzNCwgMC40Mjg1MjcsIDAuNjgxOTA1LCAxLjAxNzg4LCAxLjY5MTM0LCAyLjExMjM4IiwgXAotICAgICAgICAgICIwLjA5NTg0MywgMC4xNDQ3OTksIDAuNDI4ODczLCAwLjY4MTkzNCwgMS4wMTc5NiwgMS42OTE2MiwgMi4xMTI0MSIsIFwKLSAgICAgICAgICAiMC4wOTY2NTQsIDAuMTQ1MzUxLCAwLjQyOTM2OSwgMC42ODE5NzIsIDEuMDE4OTgsIDEuNjkxNDgsIDIuMTEyNDYiLCBcCi0gICAgICAgICAgIjAuMDk3NDEyLCAwLjE0NTg2NywgMC40Mjk0MjgsIDAuNjgxOSwgMS4wMTg4NiwgMS42OTMyMSwgMi4xMTQ0OCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTg2MDMsIDAuMTIzNzQ0LCAwLjI2NDE0NCwgMC4zODc4NywgMC41NTI4LCAwLjg4MjYxMSwgMS4wODg3MyIsIFwKLSAgICAgICAgICAiMC4xMDcwNDMsIDAuMTMyMTg1LCAwLjI3MjYyNCwgMC4zOTY0MDMsIDAuNTYxMjc4LCAwLjg5MTA5MiwgMS4wOTcyNSIsIFwKLSAgICAgICAgICAiMC4xMTY3NjYsIDAuMTQxODgyLCAwLjI4MjMzOCwgMC40MDYwOTksIDAuNTcwOTk4LCAwLjkwMDgzOCwgMS4xMDY5MiIsIFwKLSAgICAgICAgICAiMC4xMjYwNzgsIDAuMTUxMTk3LCAwLjI5MTY3OCwgMC40MTU0NTUsIDAuNTgwMzE4LCAwLjkxMDEzNiwgMS4xMTYyNSIsIFwKLSAgICAgICAgICAiMC4xMzQ2NjksIDAuMTU5ODM5LCAwLjMwMDMwNiwgMC40MjQwNTUsIDAuNTg4OTY5LCAwLjkxODc4LCAxLjEyNDg5IiwgXAotICAgICAgICAgICIwLjE0NzIwNSwgMC4xNzI0MTMsIDAuMzEyODkyLCAwLjQzNjY4LCAwLjYwMTU2OSwgMC45MzEzNTUsIDEuMTM3NDciLCBcCi0gICAgICAgICAgIjAuMTU2NzkyLCAwLjE4MjA3OCwgMC4zMjI1NzcsIDAuNDQ2MzM0LCAwLjYxMTIyMiwgMC45NDEwODksIDEuMTQ3MTUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk1MTgyLCAwLjE0MzM4OCwgMC40MjM3MjgsIDAuNjcyODEzLCAxLjAwNTM1LCAxLjY2Nzc5LCAyLjA4Mjc4IiwgXAotICAgICAgICAgICIwLjA5NTE3MiwgMC4xNDMzNzQsIDAuNDIzNjgxLCAwLjY3MjYwNCwgMS4wMDUyNiwgMS42Njc2MywgMi4wODY1NiIsIFwKLSAgICAgICAgICAiMC4wOTUxNDcsIDAuMTQzNDM5LCAwLjQyMjk4MSwgMC42NzI2MTQsIDEuMDA0NjksIDEuNjcwNzQsIDIuMDgzODQiLCBcCi0gICAgICAgICAgIjAuMDk1MzIsIDAuMTQzNDcyLCAwLjQyMzc2NywgMC42NzE2NjIsIDEuMDA1MjcsIDEuNjY3NjQsIDIuMDgyNDYiLCBcCi0gICAgICAgICAgIjAuMDk1NjUzLCAwLjE0MzY4NywgMC40MjM3NzIsIDAuNjcyNjkzLCAxLjAwNTMzLCAxLjY2Nzc1LCAyLjA4MjU1IiwgXAotICAgICAgICAgICIwLjA5NjQwMywgMC4xNDQzMjgsIDAuNDIzODcxLCAwLjY3MTUxOCwgMS4wMDUyNywgMS42Njk2NSwgMi4wODUzMyIsIFwKLSAgICAgICAgICAiMC4wOTcwOTQsIDAuMTQ0NzY0LCAwLjQyMzQ2NSwgMC42NzI0NDEsIDEuMDA1MjYsIDEuNjY4MDcsIDIuMDg2MjgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUzAiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4ODEzNywgMC4xMTI5MDUsIDAuMjUyMjA4LCAwLjM3NDkyNCwgMC41Mzg1MzMsIDAuODY1NzU0LCAxLjA3MDIxIiwgXAotICAgICAgICAgICIwLjA5NzIwNiwgMC4xMjE5NzksIDAuMjYxMjM5LCAwLjM4Mzk1OSwgMC41NDc2NTEsIDAuODc0NzY3LCAxLjA3OTI0IiwgXAotICAgICAgICAgICIwLjEwODg1NCwgMC4xMzM2MzEsIDAuMjcyOTQ5LCAwLjM5NTY3OCwgMC41NTkzMzIsIDAuODg2NDg2LCAxLjA5MDk2IiwgXAotICAgICAgICAgICIwLjEyMDE4NiwgMC4xNDQ5OCwgMC4yODQyOTEsIDAuNDA3MDMyLCAwLjU3MDYzNSwgMC44OTc4MSwgMS4xMDIzIiwgXAotICAgICAgICAgICIwLjEzMDUyLCAwLjE1NTMwOCwgMC4yOTQ2MjEsIDAuNDE3MzgxLCAwLjU4MDk3LCAwLjkwODE1MiwgMS4xMTI2NiIsIFwKLSAgICAgICAgICAiMC4xNDUwNzIsIDAuMTY5OTA2LCAwLjMwOTE4NCwgMC40MzE5ODgsIDAuNTk1NTQsIDAuOTIyNzI3LCAxLjEyNzIxIiwgXAotICAgICAgICAgICIwLjE1NjIxNSwgMC4xODA5NjgsIDAuMzIwMjcsIDAuNDQzMDI0LCAwLjYwNjYwMywgMC45MzM4OTYsIDEuMTM4MjciKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk1NDc1LCAwLjE0NDU2NCwgMC40Mjg2MjYsIDAuNjgyMDI3LCAxLjAxODAzLCAxLjY5MDQ5LCAyLjExMjQyIiwgXAotICAgICAgICAgICIwLjA5NTQ4NywgMC4xNDQ1NzUsIDAuNDI4NjA5LCAwLjY4MTkyLCAxLjAxOTM1LCAxLjY5MTQxLCAyLjExMjM3IiwgXAotICAgICAgICAgICIwLjA5NTUzMSwgMC4xNDQ2MSwgMC40Mjg4MzcsIDAuNjgxOTk1LCAxLjAxOTIxLCAxLjY5MTQsIDIuMTEyMzciLCBcCi0gICAgICAgICAgIjAuMDk1NzQzLCAwLjE0NDc0NSwgMC40Mjg3OTIsIDAuNjgxOTE5LCAxLjAxODAzLCAxLjY5MTM2LCAyLjExMjQiLCBcCi0gICAgICAgICAgIjAuMDk2MjQzLCAwLjE0NTA2LCAwLjQyOTM0NiwgMC42ODE5NTQsIDEuMDE4LCAxLjY5MTQsIDIuMTEyNDkiLCBcCi0gICAgICAgICAgIjAuMDk3NDUxLCAwLjE0NTg1MSwgMC40Mjk0MTksIDAuNjgyMDQzLCAxLjAxODY4LCAxLjY5MTQxLCAyLjExNDc1IiwgXAotICAgICAgICAgICIwLjA5ODU0MywgMC4xNDY1NzIsIDAuNDI5NjgzLCAwLjY4MTAzNCwgMS4wMTksIDEuNjkzNTIsIDIuMTEyMjkiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDkxNDc4LCAwLjExNjU5MSwgMC4yNTcwNTQsIDAuMzgwODA0LCAwLjU0NTY5MywgMC44NzU1MDYsIDEuMDgxNjMiLCBcCi0gICAgICAgICAgIjAuMTAwMjA1LCAwLjEyNTM0MywgMC4yNjU3OTEsIDAuMzg5NTYyLCAwLjU1NDQ0LCAwLjg4NDI1MiwgMS4wOTA1IiwgXAotICAgICAgICAgICIwLjExMTU2NywgMC4xMzY3MDIsIDAuMjc3MTg0LCAwLjQwMDk0OCwgMC41NjU4MzQsIDAuODk1NjQ1LCAxLjEwMTc4IiwgXAotICAgICAgICAgICIwLjEyMjQzMywgMC4xNDc1NzIsIDAuMjg4MDcyLCAwLjQxMTgzNywgMC41NzY3NDQsIDAuOTA2NjY1LCAxLjExMjY3IiwgXAotICAgICAgICAgICIwLjEzMjE3NSwgMC4xNTczMzYsIDAuMjk3ODQ3LCAwLjQyMTYzNCwgMC41ODY1MDQsIDAuOTE2MzIyLCAxLjEyMjQ0IiwgXAotICAgICAgICAgICIwLjE0NTU5OSwgMC4xNzA5MTMsIDAuMzExNDQsIDAuNDM1MTAzLCAwLjYwMDExNSwgMC45Mjk5NzUsIDEuMTM1OTUiLCBcCi0gICAgICAgICAgIjAuMTU1NzcyLCAwLjE4MTA5MiwgMC4zMjE2NjMsIDAuNDQ1NDI2LCAwLjYxMDM5MywgMC45NDAxNDYsIDEuMTQ2MjYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk1MDQsIDAuMTQzMjg5LCAwLjQyMzE0LCAwLjY3MTU0MywgMS4wMDUyMywgMS42Njc2MiwgMi4wODYzIiwgXAotICAgICAgICAgICIwLjA5NTA2NCwgMC4xNDMzNTYsIDAuNDIzNjI1LCAwLjY3MjU1MSwgMS4wMDUyMSwgMS42Njc0NywgMi4wODY1NiIsIFwKLSAgICAgICAgICAiMC4wOTUwOTQsIDAuMTQzMzg0LCAwLjQyMjkyOCwgMC42NzI1NjUsIDEuMDA1MiwgMS42NjkyOCwgMi4wODI4MyIsIFwKLSAgICAgICAgICAiMC4wOTUzNTMsIDAuMTQzNDYyLCAwLjQyMjk2OSwgMC42NzI1ODQsIDEuMDA0MTMsIDEuNjcwNDQsIDIuMDgyNjkiLCBcCi0gICAgICAgICAgIjAuMDk1ODgzLCAwLjE0Mzg0MSwgMC40MjI2MTgsIDAuNjcwODY4LCAxLjAwNTI1LCAxLjY2NzYxLCAyLjA4MjUiLCBcCi0gICAgICAgICAgIjAuMDk2OTEyLCAwLjE0NDU4LCAwLjQyMzUxMiwgMC42NzIxMTYsIDEuMDAzNjQsIDEuNjcwODgsIDIuMDgyNjIiLCBcCi0gICAgICAgICAgIjAuMDk3Nzg2LCAwLjE0NTI1NSwgMC40MjQwODgsIDAuNjcyMTI0LCAxLjAwNTE4LCAxLjY2NzQ4LCAyLjA4Mzc5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlMwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDczMDIsIDAuMTMyMTM1LCAwLjI3MTUwNywgMC4zOTQyMDgsIDAuNTU3ODI2LCAwLjg4NTAyMywgMS4wODk1NyIsIFwKLSAgICAgICAgICAiMC4xMTcxNTIsIDAuMTQxOTU4LCAwLjI4MTI5MywgMC40MDQwMzMsIDAuNTY3NjQ5LCAwLjg5NDg2NSwgMS4wOTkzMyIsIFwKLSAgICAgICAgICAiMC4xMjc3MSwgMC4xNTI1MDcsIDAuMjkxODQ2LCAwLjQxNDU3NywgMC41NzgyNzIsIDAuOTA1NDA2LCAxLjEwOTg3IiwgXAotICAgICAgICAgICIwLjEzNjMyNywgMC4xNjExMjIsIDAuMzAwNDU1LCAwLjQyMzE5OSwgMC41ODY4MTEsIDAuOTE0MDQxLCAxLjExODQ3IiwgXAotICAgICAgICAgICIwLjE0MzExOSwgMC4xNjc5MjYsIDAuMzA3MjU2LCAwLjQzMDAyNCwgMC41OTM2MTMsIDAuOTIwNzg5LCAxLjEyNTI1IiwgXAotICAgICAgICAgICIwLjE1MjQ2MSwgMC4xNzczNDIsIDAuMzE2NzM5LCAwLjQzOTQ3OSwgMC42MDMwODEsIDAuOTMwMjY1LCAxLjEzNDc4IiwgXAotICAgICAgICAgICIwLjE1OTY5MiwgMC4xODQ1NzUsIDAuMzI0MDM5LCAwLjQ0Njc0LCAwLjYxMDQwOCwgMC45Mzc1MjQsIDEuMTQyMDYiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk1NDM5LCAwLjE0NDU1NiwgMC40Mjg0NjcsIDAuNjgyMDA4LCAxLjAxODEzLCAxLjY5MTQyLCAyLjExNTE5IiwgXAotICAgICAgICAgICIwLjA5NTM3NCwgMC4xNDQ1NTksIDAuNDI4Nzg5LCAwLjY4MjAyOSwgMS4wMTgwNiwgMS42OTM1NSwgMi4xMTIzNyIsIFwKLSAgICAgICAgICAiMC4wOTU0NDcsIDAuMTQ0NTE2LCAwLjQyODU5OCwgMC42ODE5OTYsIDEuMDE5MzMsIDEuNjkxMjcsIDIuMTEyMzciLCBcCi0gICAgICAgICAgIjAuMDk1NDUzLCAwLjE0NDU2NSwgMC40Mjg3NjQsIDAuNjgyMDA4LCAxLjAxNzk5LCAxLjY5MzU5LCAyLjExMjY3IiwgXAotICAgICAgICAgICIwLjA5NTYwMSwgMC4xNDQ2ODcsIDAuNDI4ODg4LCAwLjY4MjAzOCwgMS4wMTc4OCwgMS42OTE0LCAyLjExNDEzIiwgXAotICAgICAgICAgICIwLjA5NTY3OCwgMC4xNDQ4MTksIDAuNDI5MzQyLCAwLjY4MTI1NiwgMS4wMTg5LCAxLjY5MTY0LCAyLjExNDY3IiwgXAotICAgICAgICAgICIwLjA5NTU4NywgMC4xNDQ4MDMsIDAuNDI4OTQ0LCAwLjY4MTg4MiwgMS4wMTg5NiwgMS42OTMwOCwgMi4xMTIzMSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDkzMzgsIDAuMTM0NDc1LCAwLjI3NDk1MSwgMC4zOTg3MDksIDAuNTYzNzAxLCAwLjg5MzQ0MiwgMS4wOTk1NyIsIFwKLSAgICAgICAgICAiMC4xMTk1MDQsIDAuMTQ0NjM2LCAwLjI4NTExMywgMC40MDg4ODEsIDAuNTczNzYzLCAwLjkwMzU4NSwgMS4xMDk3NCIsIFwKLSAgICAgICAgICAiMC4xMzA3NTEsIDAuMTU1ODY4LCAwLjI5NjMzOSwgMC40MjAxMTIsIDAuNTg1MDA2LCAwLjkxNDgxNCwgMS4xMjA5NyIsIFwKLSAgICAgICAgICAiMC4xNDAxMzgsIDAuMTY1MjczLCAwLjMwNTczMywgMC40Mjk1MSwgMC41OTQ0MDYsIDAuOTI0MjE1LCAxLjEzMDMzIiwgXAotICAgICAgICAgICIwLjE0NzkxOSwgMC4xNzI5NzQsIDAuMzEzNDUsIDAuNDM3MjksIDAuNjAyMjQ3LCAwLjkzMTkyNywgMS4xMzgxMSIsIFwKLSAgICAgICAgICAiMC4xNTgyODIsIDAuMTgzNDc3LCAwLjMyMzk5NiwgMC40NDc3NTEsIDAuNjEyNjkzLCAwLjk0MjUxOCwgMS4xNDg3NiIsIFwKLSAgICAgICAgICAiMC4xNjY0NDEsIDAuMTkxNjM1LCAwLjMzMjI0NiwgMC40NTYwMDcsIDAuNjIwOTM1LCAwLjk1MDc0LCAxLjE1NjkzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5NTE2NiwgMC4xNDMzNzksIDAuNDIzMDcsIDAuNjcyNzU2LCAxLjAwMjQ5LCAxLjY2Nzk5LCAyLjA4MzI2IiwgXAotICAgICAgICAgICIwLjA5NTE0MSwgMC4xNDMzNjUsIDAuNDIzMjIyLCAwLjY3MjU4NywgMS4wMDUzMiwgMS42Njc2NCwgMi4wODY1NSIsIFwKLSAgICAgICAgICAiMC4wOTUxNTQsIDAuMTQzNDMzLCAwLjQyMzI2LCAwLjY3MjYzLCAxLjAwNDc4LCAxLjY2NzQ0LCAyLjA4NjU4IiwgXAotICAgICAgICAgICIwLjA5NTE0NCwgMC4xNDM0MDYsIDAuNDIzNjg0LCAwLjY3MjU5NiwgMS4wMDQ5MSwgMS42Njc0OSwgMi4wODUyNiIsIFwKLSAgICAgICAgICAiMC4wOTUzLCAwLjE0MzU1LCAwLjQyMzAzNCwgMC42NzI1NTYsIDEuMDA1MTEsIDEuNjY4NDgsIDIuMDg1MzMiLCBcCi0gICAgICAgICAgIjAuMDk1MzYzLCAwLjE0MzU2MiwgMC40MjM0NDMsIDAuNjcxMzMzLCAxLjAwNDcsIDEuNjcwMzYsIDIuMDg2MzYiLCBcCi0gICAgICAgICAgIjAuMDk1MjQ5LCAwLjE0MzU5NywgMC40MjMzMDcsIDAuNjcxOTQyLCAxLjAwNDI1LCAxLjY2NjIyLCAyLjA4NTU5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxODI3LCAwLjAwMTgzNSwgMC4wMDE4NDYsIDAuMDAxODUsIDAuMDAxODUxLCAwLjAwMTg1MSwgMC4wMDE4NTMiLCBcCi0gICAgICAgICAgIjAuMDAxODA1LCAwLjAwMTgxNCwgMC4wMDE4MjcsIDAuMDAxODI5LCAwLjAwMTgzMSwgMC4wMDE4MzIsIDAuMDAxODMyIiwgXAotICAgICAgICAgICIwLjAwMTc5MiwgMC4wMDE4MDEsIDAuMDAxODE2LCAwLjAwMTgxOSwgMC4wMDE4MiwgMC4wMDE4MjEsIDAuMDAxODIyIiwgXAotICAgICAgICAgICIwLjAwMTc4NCwgMC4wMDE3OTQsIDAuMDAxODEsIDAuMDAxODEzLCAwLjAwMTgxNiwgMC4wMDE4MTcsIDAuMDAxODE4IiwgXAotICAgICAgICAgICIwLjAwMTc3OSwgMC4wMDE3OSwgMC4wMDE4MDgsIDAuMDAxODExLCAwLjAwMTgxNCwgMC4wMDE4MTYsIDAuMDAxODE3IiwgXAotICAgICAgICAgICIwLjAwMTc3OCwgMC4wMDE3ODksIDAuMDAxODEsIDAuMDAxODEzLCAwLjAwMTgxNiwgMC4wMDE4MTksIDAuMDAxODE5IiwgXAotICAgICAgICAgICIwLjAwMTc4NiwgMC4wMDE3OTQsIDAuMDAxODEzLCAwLjAwMTgxOCwgMC4wMDE4MjEsIDAuMDAxODIzLCAwLjAwMTgyNCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjc2LCAwLjAwMjc3MSwgMC4wMDI3ODYsIDAuMDAyNzg5LCAwLjAwMjc5MSwgMC4wMDI3OTIsIDAuMDAyNzkzIiwgXAotICAgICAgICAgICIwLjAwMjc0NywgMC4wMDI3NTgsIDAuMDAyNzc0LCAwLjAwMjc3OCwgMC4wMDI3NzksIDAuMDAyNzgxLCAwLjAwMjc4MSIsIFwKLSAgICAgICAgICAiMC4wMDI3MzcsIDAuMDAyNzQ5LCAwLjAwMjc2NywgMC4wMDI3NzEsIDAuMDAyNzczLCAwLjAwMjc3NSwgMC4wMDI3NzUiLCBcCi0gICAgICAgICAgIjAuMDAyNzMyLCAwLjAwMjc0NCwgMC4wMDI3NjQsIDAuMDAyNzY4LCAwLjAwMjc3LCAwLjAwMjc3MiwgMC4wMDI3NzMiLCBcCi0gICAgICAgICAgIjAuMDAyNzI3LCAwLjAwMjczOSwgMC4wMDI3NjIsIDAuMDAyNzY3LCAwLjAwMjc2OSwgMC4wMDI3NzIsIDAuMDAyNzcyIiwgXAotICAgICAgICAgICIwLjAwMjcyMywgMC4wMDI3MzcsIDAuMDAyNzYsIDAuMDAyNzY3LCAwLjAwMjc3LCAwLjAwMjc3MywgMC4wMDI3NzQiLCBcCi0gICAgICAgICAgIjAuMDAyNzI0LCAwLjAwMjczOCwgMC4wMDI3NjMsIDAuMDAyNzY5LCAwLjAwMjc3MywgMC4wMDI3NzYsIDAuMDAyNzc3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxNjE2LCAwLjAwMTYxOSwgMC4wMDE2MjIsIDAuMDAxNjIzLCAwLjAwMTYyMywgMC4wMDE2MjMsIDAuMDAxNjIzIiwgXAotICAgICAgICAgICIwLjAwMTU5NywgMC4wMDE2LCAwLjAwMTYwNCwgMC4wMDE2MDUsIDAuMDAxNjA1LCAwLjAwMTYwNSwgMC4wMDE2MDUiLCBcCi0gICAgICAgICAgIjAuMDAxNTg3LCAwLjAwMTU5MSwgMC4wMDE1OTYsIDAuMDAxNTk2LCAwLjAwMTU5NywgMC4wMDE1OTcsIDAuMDAxNTk3IiwgXAotICAgICAgICAgICIwLjAwMTU4MSwgMC4wMDE1ODUsIDAuMDAxNTkyLCAwLjAwMTU5MywgMC4wMDE1OTMsIDAuMDAxNTkzLCAwLjAwMTU5NCIsIFwKLSAgICAgICAgICAiMC4wMDE1NzgsIDAuMDAxNTg0LCAwLjAwMTU5MSwgMC4wMDE1OTIsIDAuMDAxNTkzLCAwLjAwMTU5NCwgMC4wMDE1OTMiLCBcCi0gICAgICAgICAgIjAuMDAxNTc5LCAwLjAwMTU4NSwgMC4wMDE1OTQsIDAuMDAxNTk1LCAwLjAwMTU5NSwgMC4wMDE1OTYsIDAuMDAxNTk2IiwgXAotICAgICAgICAgICIwLjAwMTU4MiwgMC4wMDE1ODgsIDAuMDAxNTk4LCAwLjAwMTU5OSwgMC4wMDE2LCAwLjAwMTYsIDAuMDAxNjAxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyOTMyLCAwLjAwMjkzOSwgMC4wMDI5NDcsIDAuMDAyOTQ4LCAwLjAwMjk0OSwgMC4wMDI5NSwgMC4wMDI5NSIsIFwKLSAgICAgICAgICAiMC4wMDI5MiwgMC4wMDI5MjcsIDAuMDAyOTM2LCAwLjAwMjkzOCwgMC4wMDI5MzgsIDAuMDAyOTM5LCAwLjAwMjkzOSIsIFwKLSAgICAgICAgICAiMC4wMDI5MTIsIDAuMDAyOTIsIDAuMDAyOTMxLCAwLjAwMjkzMywgMC4wMDI5MzQsIDAuMDAyOTM0LCAwLjAwMjkzNSIsIFwKLSAgICAgICAgICAiMC4wMDI5MSwgMC4wMDI5MTgsIDAuMDAyOTI5LCAwLjAwMjkzMiwgMC4wMDI5MzMsIDAuMDAyOTM0LCAwLjAwMjkzNCIsIFwKLSAgICAgICAgICAiMC4wMDI5MDYsIDAuMDAyOTE0LCAwLjAwMjkyOCwgMC4wMDI5MzEsIDAuMDAyOTMyLCAwLjAwMjkzMywgMC4wMDI5MzQiLCBcCi0gICAgICAgICAgIjAuMDAyOTA0LCAwLjAwMjkxNCwgMC4wMDI5MjgsIDAuMDAyOTMzLCAwLjAwMjkzNSwgMC4wMDI5MzYsIDAuMDAyOTM2IiwgXAotICAgICAgICAgICIwLjAwMjkwNiwgMC4wMDI5MTYsIDAuMDAyOTMzLCAwLjAwMjkzNiwgMC4wMDI5MzksIDAuMDAyOTQsIDAuMDAyOTQxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUzAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzg0MiwgMC4wMDM4NSwgMC4wMDM4NjUsIDAuMDAzODY4LCAwLjAwMzg3LCAwLjAwMzg3MSwgMC4wMDM4NzEiLCBcCi0gICAgICAgICAgIjAuMDAzODI0LCAwLjAwMzgzMywgMC4wMDM4NDcsIDAuMDAzODUsIDAuMDAzODUyLCAwLjAwMzg1MywgMC4wMDM4NTQiLCBcCi0gICAgICAgICAgIjAuMDAzODI1LCAwLjAwMzgzNCwgMC4wMDM4NDgsIDAuMDAzODUxLCAwLjAwMzg1MywgMC4wMDM4NTQsIDAuMDAzODU0IiwgXAotICAgICAgICAgICIwLjAwMzgyNSwgMC4wMDM4MzQsIDAuMDAzODQ3LCAwLjAwMzg1LCAwLjAwMzg1MiwgMC4wMDM4NTMsIDAuMDAzODU0IiwgXAotICAgICAgICAgICIwLjAwMzgzMywgMC4wMDM4NDIsIDAuMDAzODU2LCAwLjAwMzg1OSwgMC4wMDM4NjEsIDAuMDAzODYyLCAwLjAwMzg2MyIsIFwKLSAgICAgICAgICAiMC4wMDM4NTEsIDAuMDAzODU5LCAwLjAwMzg3NCwgMC4wMDM4NzcsIDAuMDAzODc4LCAwLjAwMzg4LCAwLjAwMzg4MiIsIFwKLSAgICAgICAgICAiMC4wMDM4NjksIDAuMDAzODc4LCAwLjAwMzg5MiwgMC4wMDM4OTEsIDAuMDAzODkzLCAwLjAwMzg5NSwgMC4wMDM4OTgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI1ODIsIDAuMDAyNTkxLCAwLjAwMjYwNSwgMC4wMDI2MDgsIDAuMDAyNjEsIDAuMDAyNjExLCAwLjAwMjYxMiIsIFwKLSAgICAgICAgICAiMC4wMDI1NiwgMC4wMDI1NjksIDAuMDAyNTgzLCAwLjAwMjU4NiwgMC4wMDI1ODcsIDAuMDAyNTg5LCAwLjAwMjU4OSIsIFwKLSAgICAgICAgICAiMC4wMDI1NTgsIDAuMDAyNTY3LCAwLjAwMjU4MSwgMC4wMDI1ODMsIDAuMDAyNTg1LCAwLjAwMjU4NywgMC4wMDI1ODciLCBcCi0gICAgICAgICAgIjAuMDAyNTYsIDAuMDAyNTY4LCAwLjAwMjU4MiwgMC4wMDI1ODQsIDAuMDAyNTg2LCAwLjAwMjU4NywgMC4wMDI1ODgiLCBcCi0gICAgICAgICAgIjAuMDAyNTY3LCAwLjAwMjU3NSwgMC4wMDI1ODgsIDAuMDAyNTkyLCAwLjAwMjU5NCwgMC4wMDI1OTQsIDAuMDAyNTk1IiwgXAotICAgICAgICAgICIwLjAwMjU4NiwgMC4wMDI1OTUsIDAuMDAyNjA5LCAwLjAwMjYxMiwgMC4wMDI2MTMsIDAuMDAyNjE1LCAwLjAwMjYxNyIsIFwKLSAgICAgICAgICAiMC4wMDI2MDQsIDAuMDAyNjEzLCAwLjAwMjYzMywgMC4wMDI2MzcsIDAuMDAyNjMxLCAwLjAwMjYzMywgMC4wMDI2MzMiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogTVgyWDIgKgotICogLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKE1YMlgyKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMTY1NTA0OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2Nzg1OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDY3NjcyOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDY3ODU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjEsIDAuMDAwMjE1LCAwLjAwMDIxNywgMC4wMDAyMTcsIDAuMDAwMjE4LCAwLjAwMDIxOCwgMC4wMDAyMTgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyMzQsIDAuMDAwMjI4LCAwLjAwMDIyOCwgMC4wMDAyMjgsIDAuMDAwMjI3LCAwLjAwMDIyNywgMC4wMDAyMjciKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY4MTI0NTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2Nzk4ODM7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjgxMjQ1OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDIxOCwgMC4wMDAyMiwgMC4wMDAyMjEsIDAuMDAwMjIxLCAwLjAwMDIyMiwgMC4wMDAyMjIsIDAuMDAwMjIyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjMsIDAuMDAwMjI4LCAwLjAwMDIyNywgMC4wMDAyMjcsIDAuMDAwMjI3LCAwLjAwMDIyNywgMC4wMDAyMjciKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFMwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDEzMDA5ODsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDEzMDAyMjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDEzMDA5ODsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxODIsIDAuMDAwMTU0LCAwLjAwMDE1NywgMC4wMDAxNjEsIDAuMDAwMTc1LCAwLjAwMDIwMywgMC4wMDAyMyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjAwMiwgMC4wMDE5ODEsIDAuMDAxOTgxLCAwLjAwMTk4OCwgMC4wMDE5OTgsIDAuMDAyMDI0LCAwLjAwMjA0NyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjUyNzU4NzsKLSAgICBmdW5jdGlvbiA6ICIoKFMwIEIpICsgKCFTMCBBKSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4NTc2OCwgMC4xOTAwNjksIDAuMjcxNDkzLCAwLjM3MzI0LCAwLjQ3NDg3OSwgMC41NzY2MTIsIDAuNjc4MTcyIiwgXAotICAgICAgICAgICIwLjA5NDQ3MywgMC4xOTg3NjUsIDAuMjgwMTc0LCAwLjM4MTkyMiwgMC40ODM1ODYsIDAuNTg1MjIzLCAwLjY4Njg1MyIsIFwKLSAgICAgICAgICAiMC4xMDUyNywgMC4yMDk1NzEsIDAuMjkxMDA3LCAwLjM5MjgwMiwgMC40OTQ0MTEsIDAuNTk2MDQxLCAwLjY5NzcwMSIsIFwKLSAgICAgICAgICAiMC4xMTU4NDUsIDAuMjIwMjAzLCAwLjMwMTYyNCwgMC40MDMzNzgsIDAuNTA1MDQ3LCAwLjYwNjY4OCwgMC43MDgzMTQiLCBcCi0gICAgICAgICAgIjAuMTI1OTkzLCAwLjIzMDMyMSwgMC4zMTE3ODQsIDAuNDEzNTA5LCAwLjUxNTE0OSwgMC42MTY4MDIsIDAuNzE4NDQ5IiwgXAotICAgICAgICAgICIwLjE0MTA1MSwgMC4yNDU1MTUsIDAuMzI2OTYyLCAwLjQyODY4NCwgMC41MzAzNDQsIDAuNjMyMDAzLCAwLjczMzYyNyIsIFwKLSAgICAgICAgICAiMC4xNTMwNTIsIDAuMjU3ODg1LCAwLjMzOTMyNywgMC40NDEwMzEsIDAuNTQyNzY2LCAwLjY0NDQzMSwgMC43NDYwMDUiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU4NzM5LCAwLjI2MTIzNSwgMC40MjgzOTYsIDAuNjM2OCwgMC44NDc1MjgsIDEuMDU3NTcsIDEuMjY1ODUiLCBcCi0gICAgICAgICAgIjAuMDU4Njg5LCAwLjI2MTYzNCwgMC40MjgyOCwgMC42MzY3NDgsIDAuODQ2NDc3LCAxLjA1NjI1LCAxLjI2NTc2IiwgXAotICAgICAgICAgICIwLjA1ODYyNSwgMC4yNjE0MDgsIDAuNDI4Mjg5LCAwLjYzNjY5OSwgMC44NDc1MzIsIDEuMDU1OTcsIDEuMjY3MiIsIFwKLSAgICAgICAgICAiMC4wNTg3NjYsIDAuMjYxMzU4LCAwLjQyODI3OSwgMC42MzY3MDMsIDAuODQ2MDI2LCAxLjA1NjE1LCAxLjI2NTczIiwgXAotICAgICAgICAgICIwLjA1ODk5MSwgMC4yNjE0MjcsIDAuNDI4Mzg1LCAwLjYzNjgwOCwgMC44NDcwODUsIDEuMDU3MTYsIDEuMjY1NzkiLCBcCi0gICAgICAgICAgIjAuMDYwMTI2LCAwLjI2MTQ5NiwgMC40Mjg0NDYsIDAuNjM3MDEyLCAwLjg0NjUwOCwgMS4wNTYxOCwgMS4yNjY5MiIsIFwKLSAgICAgICAgICAiMC4wNjE1MzQsIDAuMjYyMTk2LCAwLjQyODU0OSwgMC42Mzc3MiwgMC44NDc0OTcsIDEuMDU3MjksIDEuMjY2OTYiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg5NDcxLCAwLjE5NjI3NCwgMC4yNzkxMzYsIDAuMzgyNjQzLCAwLjQ4NjEyMiwgMC41ODk1NzIsIDAuNjkyOTkyIiwgXAotICAgICAgICAgICIwLjA5ODAxOSwgMC4yMDQ4NjksIDAuMjg3NzM1LCAwLjM5MTI2MiwgMC40OTQ3NDUsIDAuNTk4MTYxLCAwLjcwMTY2NyIsIFwKLSAgICAgICAgICAiMC4xMDc5OTksIDAuMjE0NzksIDAuMjk3NjU4LCAwLjQwMTE5LCAwLjUwNDY4LCAwLjYwODEwNCwgMC43MTE1MTciLCBcCi0gICAgICAgICAgIjAuMTE3NTg3LCAwLjIyNDM4MSwgMC4zMDcyNTMsIDAuNDEwNzY1LCAwLjUxNDI2NiwgMC42MTc2ODYsIDAuNzIxMTE4IiwgXAotICAgICAgICAgICIwLjEyNjc2NCwgMC4yMzM2MzgsIDAuMzE2NDk5LCAwLjQyMDAzMywgMC41MjM0OTEsIDAuNjI2OTU3LCAwLjczMDM2NCIsIFwKLSAgICAgICAgICAiMC4xNDAyODEsIDAuMjQ3MjUzLCAwLjMzMDEzOSwgMC40MzM3MDcsIDAuNTM3MTIyLCAwLjY0MDU4MSwgMC43NDQwMiIsIFwKLSAgICAgICAgICAiMC4xNTA3NzgsIDAuMjU4MTQ1LCAwLjM0MTAxNiwgMC40NDQ1NzQsIDAuNTQ4MDE4LCAwLjY1MTQ3NSwgMC43NTQ4ODUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU5NzI4LCAwLjI2MjM3OCwgMC40Mjg3OTEsIDAuNjM3ODYxLCAwLjg0NjU0LCAxLjA1NjEyLCAxLjI2NzQ2IiwgXAotICAgICAgICAgICIwLjA1OTY2NSwgMC4yNjIwNiwgMC40Mjg4MiwgMC42MzczNzEsIDAuODQ3ODQ2LCAxLjA1NzYxLCAxLjI2Nzc2IiwgXAotICAgICAgICAgICIwLjA1OTY0OCwgMC4yNjE4ODksIDAuNDI4Nzg0LCAwLjYzNzIzNywgMC44NDc4MjQsIDEuMDU2MDcsIDEuMjY3NDIiLCBcCi0gICAgICAgICAgIjAuMDU5Nzk5LCAwLjI2MTk1MywgMC40Mjg4MTQsIDAuNjM4MDg0LCAwLjg0NzgxMiwgMS4wNTc2LCAxLjI2NzQxIiwgXAotICAgICAgICAgICIwLjA2MDA4MiwgMC4yNjIwNTYsIDAuNDI4ODM0LCAwLjYzNzI2OSwgMC44NDc4MDEsIDEuMDU3NzMsIDEuMjY3MzgiLCBcCi0gICAgICAgICAgIjAuMDYxMjIyLCAwLjI2MjYwMSwgMC40Mjg5NzQsIDAuNjM2OTgzLCAwLjg0NjM2NCwgMS4wNTYyNCwgMS4yNjc1NCIsIFwKLSAgICAgICAgICAiMC4wNjIzODgsIDAuMjYyODQyLCAwLjQyOTE0MSwgMC42MzcwMjksIDAuODQ2NDc4LCAxLjA1NzU2LCAxLjI2NzUyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4NTcwOCwgMC4xODk4NDcsIDAuMjcxMjY0LCAwLjM3Mjk4LCAwLjQ3NDYzMywgMC41NzYzMDgsIDAuNjc3OTA4IiwgXAotICAgICAgICAgICIwLjA5NDY0OSwgMC4xOTg5MjYsIDAuMjgwMzQ1LCAwLjM4MjA2NSwgMC40ODM3MywgMC41ODUzNDIsIDAuNjg2OTkzIiwgXAotICAgICAgICAgICIwLjEwNTU2OCwgMC4yMDk4MDksIDAuMjkxMjI4LCAwLjM5MzAxNiwgMC40OTQ2MTYsIDAuNTk2MjQxLCAwLjY5Nzg5MSIsIFwKLSAgICAgICAgICAiMC4xMTYyNjYsIDAuMjIwNDE5LCAwLjMwMTgyNCwgMC40MDM1NjQsIDAuNTA1MjksIDAuNjA2OTAxLCAwLjcwODQ4NiIsIFwKLSAgICAgICAgICAiMC4xMjY0NCwgMC4yMzA3LCAwLjMxMjEyMywgMC40MTM4NjUsIDAuNTE1NTE3LCAwLjYxNzEyNywgMC43MTg3ODkiLCBcCi0gICAgICAgICAgIjAuMTQxNjQxLCAwLjI0NjA1LCAwLjMyNzQ3NCwgMC40MjkxODMsIDAuNTMwODg5LCAwLjYzMjQ5MSwgMC43MzQxMTUiLCBcCi0gICAgICAgICAgIjAuMTUzNjA3LCAwLjI1ODM5OCwgMC4zMzk4MSwgMC40NDE1MDUsIDAuNTQzMjIyLCAwLjY0NDgyNiwgMC43NDY0MzEiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU4NzU1LCAwLjI2MTM4MSwgMC40Mjg0NDEsIDAuNjM1OTA5LCAwLjg0NzU0NSwgMS4wNTc0MiwgMS4yNjU4MSIsIFwKLSAgICAgICAgICAiMC4wNTg3MzIsIDAuMjYxMzY4LCAwLjQyNzY1MiwgMC42MzY3MTEsIDAuODQ3NTMzLCAxLjA1NzMyLCAxLjI2NTgyIiwgXAotICAgICAgICAgICIwLjA1ODU5OCwgMC4yNjE0MSwgMC40MjgyNzQsIDAuNjM2NjcxLCAwLjg0NzUyMiwgMS4wNTU5NSwgMS4yNjcxNyIsIFwKLSAgICAgICAgICAiMC4wNTg3NywgMC4yNjE2MzgsIDAuNDI4Mjg2LCAwLjYzNjU5NSwgMC44NDYxMDEsIDEuMDU1NzMsIDEuMjY1NyIsIFwKLSAgICAgICAgICAiMC4wNTkwMzUsIDAuMjYxNDIxLCAwLjQyODI3OCwgMC42MzY3MzYsIDAuODQ3Mzg5LCAxLjA1NzEsIDEuMjY1NzIiLCBcCi0gICAgICAgICAgIjAuMDYwMTIxLCAwLjI2MTg1NCwgMC40Mjc2ODcsIDAuNjM2OTU1LCAwLjg0NzQ1MSwgMS4wNTcxNSwgMS4yNjU1NiIsIFwKLSAgICAgICAgICAiMC4wNjE1NTYsIDAuMjYyMjA4LCAwLjQyODUyMywgMC42Mzc3MzEsIDAuODQ3NDc5LCAxLjA1NzE1LCAxLjI2Njg5Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5MDYyNywgMC4xOTc0NDYsIDAuMjgwMzI5LCAwLjM4Mzg3MywgMC40ODczNjMsIDAuNTkwODI5LCAwLjY5NDI3NiIsIFwKLSAgICAgICAgICAiMC4wOTkwNDEsIDAuMjA1ODk2LCAwLjI4ODc2NSwgMC4zOTIzMDIsIDAuNDk1ODI1LCAwLjU5OTIzOSwgMC43MDI2NTEiLCBcCi0gICAgICAgICAgIjAuMTA4ODk5LCAwLjIxNTcxMywgMC4yOTg2LCAwLjQwMjEyNywgMC41MDU2MywgMC42MDkwODMsIDAuNzEyNTIzIiwgXAotICAgICAgICAgICIwLjExODQ2OCwgMC4yMjUyNjksIDAuMzA4MTUzLCAwLjQxMTY5MywgMC41MTUxOSwgMC42MTg2MTIsIDAuNzIyMDc0IiwgXAotICAgICAgICAgICIwLjEyNzU4MywgMC4yMzQ0NjksIDAuMzE3MzYxLCAwLjQyMDg5LCAwLjUyNDQwMSwgMC42Mjc4MiwgMC43MzEyNDkiLCBcCi0gICAgICAgICAgIjAuMTQxMTIyLCAwLjI0ODE5NSwgMC4zMzEwODIsIDAuNDM0NjA4LCAwLjUzODEwOCwgMC42NDE1NjEsIDAuNzQ0OTcxIiwgXAotICAgICAgICAgICIwLjE1MTYxOSwgMC4yNTkwNDMsIDAuMzQxOSwgMC40NDU0NjksIDAuNTQ4OTI1LCAwLjY1MjM3OCwgMC43NTU4MTYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU5OTI2LCAwLjI2MjA0NSwgMC40Mjg5MjksIDAuNjM4Mjg5LCAwLjg0Nzc5OCwgMS4wNTc2NywgMS4yNjc1OSIsIFwKLSAgICAgICAgICAiMC4wNTk4ODYsIDAuMjYyMDgyLCAwLjQyODkxMiwgMC42MzcyNjcsIDAuODQ3NzIsIDEuMDU3OCwgMS4yNjc1MiIsIFwKLSAgICAgICAgICAiMC4wNTk4NTUsIDAuMjYyMDYzLCAwLjQyODkxNywgMC42MzgyMTQsIDAuODQ3ODQsIDEuMDU3ODQsIDEuMjY3NjgiLCBcCi0gICAgICAgICAgIjAuMDU5OTU2LCAwLjI2MjIwMiwgMC40Mjg5MjcsIDAuNjM3NTIxLCAwLjg0Nzc3MiwgMS4wNTc3MiwgMS4yNjc3MSIsIFwKLSAgICAgICAgICAiMC4wNjAyMzEsIDAuMjYyMjQ3LCAwLjQyODU3MSwgMC42Mzc0NzYsIDAuODQ3NzQzLCAxLjA1Nzc3LCAxLjI2NzEzIiwgXAotICAgICAgICAgICIwLjA2MTQwNSwgMC4yNjI3NzIsIDAuNDI5MDk4LCAwLjYzNzE4MSwgMC44NDY0MDcsIDEuMDU3NjksIDEuMjY3NTQiLCBcCi0gICAgICAgICAgIjAuMDYyNTk3LCAwLjI2MjgyNCwgMC40MjkyLCAwLjYzODIwNywgMC44NDYzMjQsIDEuMDU3NjYsIDEuMjY2MjMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUzAiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3OTEwMywgMC4xODMyNiwgMC4yNjQ2NzIsIDAuMzY2NDU0LCAwLjQ2ODA2MywgMC41Njk2ODcsIDAuNjcxMzU0IiwgXAotICAgICAgICAgICIwLjA4ODE5NCwgMC4xOTIzNjUsIDAuMjczNzgsIDAuMzc1NTY3LCAwLjQ3NzE3MywgMC41Nzg3OTQsIDAuNjgwNDU3IiwgXAotICAgICAgICAgICIwLjA5OTg4NywgMC4yMDQwNzYsIDAuMjg1NTIxLCAwLjM4NzI0MywgMC40ODg4NjgsIDAuNTkwNTEzLCAwLjY5MjE3MiIsIFwKLSAgICAgICAgICAiMC4xMTE2MjgsIDAuMjE1ODYzLCAwLjI5NzMwOSwgMC4zOTkwODQsIDAuNTAwNjkyLCAwLjYwMjMxNSwgMC43MDM5NzUiLCBcCi0gICAgICAgICAgIjAuMTIyOTc5LCAwLjIyNzI4NSwgMC4zMDg3MjEsIDAuNDEwNDY0LCAwLjUxMjExNywgMC42MTM3MzgsIDAuNzE1Mzk4IiwgXAotICAgICAgICAgICIwLjEzOTQzNCwgMC4yNDM4NCwgMC4zMjUyNzksIDAuNDI3MDA4LCAwLjUyODY3NSwgMC42MzAyODksIDAuNzMxOTc0IiwgXAotICAgICAgICAgICIwLjE1MTk3NiwgMC4yNTY3MTEsIDAuMzM4MTExLCAwLjQzOTgyNCwgMC41NDE0OTksIDAuNjQzMTM2LCAwLjc0NDc3MyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTg2MDMsIDAuMjYxMTk1LCAwLjQyNzg4NiwgMC42MzY0NTgsIDAuODQ3NTQ1LCAxLjA1NjkyLCAxLjI2NTY0IiwgXAotICAgICAgICAgICIwLjA1ODYxNCwgMC4yNjEzNDgsIDAuNDI4MjksIDAuNjM2NjcxLCAwLjg0NzUxOCwgMS4wNTY4OSwgMS4yNjU2MyIsIFwKLSAgICAgICAgICAiMC4wNTg2MTIsIDAuMjYxMzQ2LCAwLjQyODM1MSwgMC42MzY3NzMsIDAuODQ3NDI5LCAxLjA1NzI2LCAxLjI2NTciLCBcCi0gICAgICAgICAgIjAuMDU4Nzg2LCAwLjI2MTM2MywgMC40Mjc2NjMsIDAuNjM2NjIyLCAwLjg0NzQ5NCwgMS4wNTY5LCAxLjI2NTYzIiwgXAotICAgICAgICAgICIwLjA1OTMwOCwgMC4yNjE0NTksIDAuNDI4Mzc0LCAwLjYzNjczOCwgMC44NDczOTgsIDEuMDU2OCwgMS4yNjU1NyIsIFwKLSAgICAgICAgICAiMC4wNjExMDksIDAuMjYxODgsIDAuNDI4NDc3LCAwLjYzNzc3NSwgMC44NDc0MzIsIDEuMDU2NzksIDEuMjY0NzciLCBcCi0gICAgICAgICAgIjAuMDYyOTc3LCAwLjI2MjQxLCAwLjQyODU3NywgMC42Mzc4MTEsIDAuODQ2NDAzLCAxLjA1NzE3LCAxLjI2NTgyIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4MzEzNCwgMC4xODk4NzIsIDAuMjcyNzM2LCAwLjM3NjI2MiwgMC40Nzk3NDIsIDAuNTgzMTU3LCAwLjY4NjYxNiIsIFwKLSAgICAgICAgICAiMC4wOTE5MzUsIDAuMTk4NjgzLCAwLjI4MTU0NywgMC4zODUwNzksIDAuNDg4NTUxLCAwLjU5MTk2OCwgMC42OTU0OTMiLCBcCi0gICAgICAgICAgIjAuMTAzMzE1LCAwLjIxMDA4MSwgMC4yOTI5ODQsIDAuMzk2NDg3LCAwLjQ5OTk2OCwgMC42MDMzODYsIDAuNzA2ODE3IiwgXAotICAgICAgICAgICIwLjExNDYzLCAwLjIyMTQzOSwgMC4zMDQzMTYsIDAuNDA3ODU1LCAwLjUxMTMwNSwgMC42MTQ3NzgsIDAuNzE4MTkxIiwgXAotICAgICAgICAgICIwLjEyNTQ5MiwgMC4yMzIzNCwgMC4zMTUyMjIsIDAuNDE4NzU0LCAwLjUyMjI0NiwgMC42MjU3MDEsIDAuNzI5MTY1IiwgXAotICAgICAgICAgICIwLjE0MTA1NywgMC4yNDgwMzYsIDAuMzMwOTg3LCAwLjQzNDQ5NiwgMC41Mzc5NTksIDAuNjQxNDE4LCAwLjc0NDg0NSIsIFwKLSAgICAgICAgICAiMC4xNTI3ODQsIDAuMjYwMTU5LCAwLjM0MzA0OCwgMC40NDY1NTgsIDAuNTUwMDI1LCAwLjY1MzQyNSwgMC43NTY4NDciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU5NjA2LCAwLjI2MjA5NywgMC40Mjg3ODcsIDAuNjM2NTkzLCAwLjg0NzgwMiwgMS4wNTc2MiwgMS4yNjc2IiwgXAotICAgICAgICAgICIwLjA1OTU5NSwgMC4yNjE4MjgsIDAuNDI4Nzg3LCAwLjYzNjczMSwgMC44NDc4MTEsIDEuMDU3NiwgMS4yNjc2NSIsIFwKLSAgICAgICAgICAiMC4wNTk2NTUsIDAuMjYyMTE0LCAwLjQyNzk1MiwgMC42MzY2NDIsIDAuODQ3Nzk4LCAxLjA1NzYyLCAxLjI2NzAxIiwgXAotICAgICAgICAgICIwLjA1OTc4NCwgMC4yNjIwODcsIDAuNDI4Nzg5LCAwLjYzNzIzNSwgMC44NDc3NCwgMS4wNTc2OSwgMS4yNjc0IiwgXAotICAgICAgICAgICIwLjA2MDI3NCwgMC4yNjIwNCwgMC40Mjg4MywgMC42MzgxNTIsIDAuODQ3ODA3LCAxLjA1Nzc4LCAxLjI2Nzc3IiwgXAotICAgICAgICAgICIwLjA2MTgyNCwgMC4yNjI2OSwgMC40MjkxMTEsIDAuNjM3MTIzLCAwLjg0NzgxLCAxLjA1NzY3LCAxLjI2NzA2IiwgXAotICAgICAgICAgICIwLjA2MzQ2NSwgMC4yNjMwNDIsIDAuNDI4MDQ2LCAwLjYzODM2MiwgMC44NDYwMDEsIDEuMDU3NzYsIDEuMjY1MzIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUzAiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5Nzg5NSwgMC4yMDIyMDMsIDAuMjgzNjQxLCAwLjM4NTM3LCAwLjQ4NzAyNCwgMC41ODg3MiwgMC42OTAzMDciLCBcCi0gICAgICAgICAgIjAuMTA3NzI5LCAwLjIxMjAzLCAwLjI5MzQ2MywgMC4zOTUyNTEsIDAuNDk2ODY1LCAwLjU5ODUsIDAuNzAwMTQ2IiwgXAotICAgICAgICAgICIwLjExODM3NSwgMC4yMjI2ODEsIDAuMzA0MTE3LCAwLjQwNTgzNiwgMC41MDc1MTcsIDAuNjA5MTUzLCAwLjcxMDgxNCIsIFwKLSAgICAgICAgICAiMC4xMjcwMTUsIDAuMjMxMzA1LCAwLjMxMjczOSwgMC40MTQ0NjIsIDAuNTE2MTM5LCAwLjYxNzc3NywgMC43MTk1MjciLCBcCi0gICAgICAgICAgIjAuMTMzOTQ1LCAwLjIzODIyMiwgMC4zMTk2NTIsIDAuNDIxMzk2LCAwLjUyMzA4MSwgMC42MjQ3MjQsIDAuNzI2MzMiLCBcCi0gICAgICAgICAgIjAuMTQzMzA4LCAwLjI0Nzc0OSwgMC4zMjkxMDUsIDAuNDMwODIxLCAwLjUzMjYyMywgMC42MzQxNTMsIDAuNzM1ODUzIiwgXAotICAgICAgICAgICIwLjE1MDMsIDAuMjU0OTM5LCAwLjMzNjM5OCwgMC40MzgwNTksIDAuNTM5NzYyLCAwLjY0MTQyMSwgMC43NDMxIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1ODY2OSwgMC4yNjExNDUsIDAuNDI4NDE5LCAwLjYzNjY4NCwgMC44NDc1LCAxLjA1NzQxLCAxLjI2NTc4IiwgXAotICAgICAgICAgICIwLjA1ODU0MiwgMC4yNjEzNzYsIDAuNDI4Mjk2LCAwLjYzNjQ5LCAwLjg0NzUxOCwgMS4wNTYwMywgMS4yNjU5MiIsIFwKLSAgICAgICAgICAiMC4wNTg2NTEsIDAuMjYxNDIyLCAwLjQyODI3OCwgMC42Mzc3OTEsIDAuODQ3NTEyLCAxLjA1NjAxLCAxLjI2NTc2IiwgXAotICAgICAgICAgICIwLjA1ODU4NSwgMC4yNjE0MTUsIDAuNDI4MjY5LCAwLjYzNzAyNywgMC44NDc1MDUsIDEuMDU2MDcsIDEuMjY3NCIsIFwKLSAgICAgICAgICAiMC4wNTg4MSwgMC4yNjE1ODMsIDAuNDI4MjU0LCAwLjYzNjU0NCwgMC44NDYxNzcsIDEuMDU1MzEsIDEuMjY1NSIsIFwKLSAgICAgICAgICAiMC4wNTg4MTYsIDAuMjYxODMsIDAuNDI3OTU3LCAwLjYzNzAzMywgMC44NDc1MTcsIDEuMDU3MTYsIDEuMjY2OTciLCBcCi0gICAgICAgICAgIjAuMDU4ODg3LCAwLjI2MTYzMSwgMC40Mjc5NDksIDAuNjM3NzIxLCAwLjg0NzMxOCwgMS4wNTYyNiwgMS4yNjUzIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwMTA5OSwgMC4yMDc5MjEsIDAuMjkwODA2LCAwLjM5NDM1MSwgMC40OTc4NDYsIDAuNjAxMjY5LCAwLjcwNDc3IiwgXAotICAgICAgICAgICIwLjExMTI1NSwgMC4yMTgxMTUsIDAuMzAxMDAzLCAwLjQwNDU1OCwgMC41MDgwMjYsIDAuNjExNDk4LCAwLjcxNDkwNiIsIFwKLSAgICAgICAgICAiMC4xMjI2MDQsIDAuMjI5NDIxLCAwLjMxMjMwOCwgMC40MTU4NDcsIDAuNTE5MzUxLCAwLjYyMjc3MiwgMC43MjYxOTUiLCBcCi0gICAgICAgICAgIjAuMTMxOTg5LCAwLjIzODgyLCAwLjMyMTcwNiwgMC40MjUyODMsIDAuNTI4NzQ1LCAwLjYzMjIzOSwgMC43MzU2MTEiLCBcCi0gICAgICAgICAgIjAuMTM5NzI3LCAwLjI0NjYxMywgMC4zMjk1LCAwLjQzMzAzOSwgMC41MzY1MzQsIDAuNjM5OTU3LCAwLjc0MzQzNyIsIFwKLSAgICAgICAgICAiMC4xNTAyMzEsIDAuMjU3MjAzLCAwLjM0MDA5NCwgMC40NDM2OTgsIDAuNTQ3MTE1LCAwLjY1MDU4MiwgMC43NTM5OTkiLCBcCi0gICAgICAgICAgIjAuMTU4MjksIDAuMjY1MzE4LCAwLjM0ODIyNiwgMC40NTE3NDMsIDAuNTU1MjM5LCAwLjY1ODcwOSwgMC43NjIyMjEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU5ODczLCAwLjI2MTk3LCAwLjQyODk3MywgMC42MzY1OTQsIDAuODQ3ODc5LCAxLjA1NzgzLCAxLjI2Nzc2IiwgXAotICAgICAgICAgICIwLjA1OTg3MSwgMC4yNjIyMTIsIDAuNDI4OTE5LCAwLjYzNzE1OSwgMC44NDU4MzQsIDEuMDU1NzgsIDEuMjY3NjEiLCBcCi0gICAgICAgICAgIjAuMDU5ODgyLCAwLjI2MjE2NSwgMC40Mjg5MzUsIDAuNjM3NDQ5LCAwLjg0NzgwNywgMS4wNTc3NCwgMS4yNjc1MiIsIFwKLSAgICAgICAgICAiMC4wNTk4NDcsIDAuMjYyMDI1LCAwLjQyODkxNCwgMC42MzgyOCwgMC44NDY0MTMsIDEuMDU3NjQsIDEuMjY3NTUiLCBcCi0gICAgICAgICAgIjAuMDU5OTU4LCAwLjI2MTk3NiwgMC40Mjg5MzEsIDAuNjM3Mjc2LCAwLjg0Nzc0OCwgMS4wNTc3MiwgMS4yNjUwMiIsIFwKLSAgICAgICAgICAiMC4wNTk5OTIsIDAuMjYyMzcsIDAuNDI4NzAyLCAwLjYzNzE3NiwgMC44NDYwOSwgMS4wNTc0OSwgMS4yNjc1OSIsIFwKLSAgICAgICAgICAiMC4wNjAwMDIsIDAuMjYyNTI2LCAwLjQyODcwNywgMC42Mzc4MDcsIDAuODQ2NTksIDEuMDU2NDksIDEuMjY2NzYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI3MjksIDAuMDAyNzk4LCAwLjAwMjgwOCwgMC4wMDI4MTMsIDAuMDAyODE1LCAwLjAwMjgxNywgMC4wMDI4MTkiLCBcCi0gICAgICAgICAgIjAuMDAyNzA4LCAwLjAwMjc4LCAwLjAwMjc4OSwgMC4wMDI3OTQsIDAuMDAyNzk3LCAwLjAwMjc5OSwgMC4wMDI4IiwgXAotICAgICAgICAgICIwLjAwMjY5MiwgMC4wMDI3NjYsIDAuMDAyNzc5LCAwLjAwMjc4NCwgMC4wMDI3ODgsIDAuMDAyNzg5LCAwLjAwMjc5IiwgXAotICAgICAgICAgICIwLjAwMjY4MSwgMC4wMDI3NTgsIDAuMDAyNzcxLCAwLjAwMjc3OCwgMC4wMDI3ODEsIDAuMDAyNzgzLCAwLjAwMjc4NiIsIFwKLSAgICAgICAgICAiMC4wMDI2NzUsIDAuMDAyNzUzLCAwLjAwMjc2OCwgMC4wMDI3NzUsIDAuMDAyNzc4LCAwLjAwMjc4MSwgMC4wMDI3ODIiLCBcCi0gICAgICAgICAgIjAuMDAyNjcyLCAwLjAwMjc0OCwgMC4wMDI3NjUsIDAuMDAyNzczLCAwLjAwMjc3NywgMC4wMDI3ODEsIDAuMDAyNzg0IiwgXAotICAgICAgICAgICIwLjAwMjY3OSwgMC4wMDI3NDksIDAuMDAyNzY3LCAwLjAwMjc3NSwgMC4wMDI3ODIsIDAuMDAyNzgzLCAwLjAwMjc4NyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzcwNiwgMC4wMDM3OTcsIDAuMDAzODEsIDAuMDAzODE3LCAwLjAwMzgyLCAwLjAwMzgyMiwgMC4wMDM4MjQiLCBcCi0gICAgICAgICAgIjAuMDAzNjkyLCAwLjAwMzc4NiwgMC4wMDM4LCAwLjAwMzgwNywgMC4wMDM4MSwgMC4wMDM4MTMsIDAuMDAzODE0IiwgXAotICAgICAgICAgICIwLjAwMzY3OSwgMC4wMDM3NzcsIDAuMDAzNzkxLCAwLjAwMzc5OSwgMC4wMDM4MDQsIDAuMDAzODA2LCAwLjAwMzgwOCIsIFwKLSAgICAgICAgICAiMC4wMDM2NzQsIDAuMDAzNzcxLCAwLjAwMzc4NiwgMC4wMDM3OTUsIDAuMDAzOCwgMC4wMDM4MDIsIDAuMDAzODA0IiwgXAotICAgICAgICAgICIwLjAwMzY2NSwgMC4wMDM3NjUsIDAuMDAzNzgzLCAwLjAwMzc5MiwgMC4wMDM3OTcsIDAuMDAzODAxLCAwLjAwMzgwMyIsIFwKLSAgICAgICAgICAiMC4wMDM2NTUsIDAuMDAzNzYxLCAwLjAwMzc3OCwgMC4wMDM3OSwgMC4wMDM3OTYsIDAuMDAzNzk5LCAwLjAwMzgwMiIsIFwKLSAgICAgICAgICAiMC4wMDM2NTksIDAuMDAzNzU3LCAwLjAwMzc3OCwgMC4wMDM3OSwgMC4wMDM3OTcsIDAuMDAzODAxLCAwLjAwMzgwNCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjUxOCwgMC4wMDI1NjEsIDAuMDAyNTY3LCAwLjAwMjU3LCAwLjAwMjU3MSwgMC4wMDI1NzIsIDAuMDAyNTczIiwgXAotICAgICAgICAgICIwLjAwMjQ5OSwgMC4wMDI1NDUsIDAuMDAyNTUsIDAuMDAyNTUzLCAwLjAwMjU1NSwgMC4wMDI1NTQsIDAuMDAyNTU2IiwgXAotICAgICAgICAgICIwLjAwMjQ4NSwgMC4wMDI1MzUsIDAuMDAyNTQzLCAwLjAwMjU0NCwgMC4wMDI1NDYsIDAuMDAyNTQ3LCAwLjAwMjU0NiIsIFwKLSAgICAgICAgICAiMC4wMDI0NzksIDAuMDAyNTMsIDAuMDAyNTM3LCAwLjAwMjU0LCAwLjAwMjU0MywgMC4wMDI1NDQsIDAuMDAyNTQ0IiwgXAotICAgICAgICAgICIwLjAwMjQ3LCAwLjAwMjUyNSwgMC4wMDI1MzUsIDAuMDAyNTM4LCAwLjAwMjU0LCAwLjAwMjU0MSwgMC4wMDI1NDIiLCBcCi0gICAgICAgICAgIjAuMDAyNDY4LCAwLjAwMjUyMywgMC4wMDI1MzMsIDAuMDAyNTM4LCAwLjAwMjU0MywgMC4wMDI1NDIsIDAuMDAyNTQ0IiwgXAotICAgICAgICAgICIwLjAwMjQ3NiwgMC4wMDI1MjQsIDAuMDAyNTM2LCAwLjAwMjUzOSwgMC4wMDI1NDUsIDAuMDAyNTQ1LCAwLjAwMjU0OCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzkyLCAwLjAwMzk5MSwgMC4wMDQwMDEsIDAuMDA0MDA2LCAwLjAwNDAwOSwgMC4wMDQwMSwgMC4wMDQwMTEiLCBcCi0gICAgICAgICAgIjAuMDAzOTA3LCAwLjAwMzk4MSwgMC4wMDM5OTEsIDAuMDAzOTk2LCAwLjAwMzk5OSwgMC4wMDQwMDEsIDAuMDA0MDAyIiwgXAotICAgICAgICAgICIwLjAwMzg5NSwgMC4wMDM5NzMsIDAuMDAzOTg1LCAwLjAwMzk5LCAwLjAwMzk5MywgMC4wMDM5OTUsIDAuMDAzOTk2IiwgXAotICAgICAgICAgICIwLjAwMzg5NCwgMC4wMDM5NywgMC4wMDM5ODIsIDAuMDAzOTg4LCAwLjAwMzk5MiwgMC4wMDM5OTMsIDAuMDAzOTk1IiwgXAotICAgICAgICAgICIwLjAwMzg5MywgMC4wMDM5NjgsIDAuMDAzOTgxLCAwLjAwMzk4OCwgMC4wMDM5OTIsIDAuMDAzOTk0LCAwLjAwMzk5NSIsIFwKLSAgICAgICAgICAiMC4wMDM4ODMsIDAuMDAzOTYyLCAwLjAwMzk3OSwgMC4wMDM5ODcsIDAuMDAzOTkxLCAwLjAwMzk5NCwgMC4wMDM5OTYiLCBcCi0gICAgICAgICAgIjAuMDAzODg4LCAwLjAwMzk2MywgMC4wMDM5NzYsIDAuMDAzOTg3LCAwLjAwMzk5MiwgMC4wMDM5OTUsIDAuMDAzOTk3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUzAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDcxMywgMC4wMDQ3ODYsIDAuMDA0Nzk0LCAwLjAwNDgwNCwgMC4wMDQ4MDYsIDAuMDA0ODA4LCAwLjAwNDgxMSIsIFwKLSAgICAgICAgICAiMC4wMDQ2OTksIDAuMDA0NzcxLCAwLjAwNDc4MSwgMC4wMDQ3ODgsIDAuMDA0NzkxLCAwLjAwNDc5MywgMC4wMDQ3OTQiLCBcCi0gICAgICAgICAgIjAuMDA0NzA0LCAwLjAwNDc3NiwgMC4wMDQ3ODgsIDAuMDA0NzkzLCAwLjAwNDc5NiwgMC4wMDQ3OTgsIDAuMDA0Nzk4IiwgXAotICAgICAgICAgICIwLjAwNDcwNCwgMC4wMDQ3NzYsIDAuMDA0Nzg2LCAwLjAwNDc5MiwgMC4wMDQ3OTYsIDAuMDA0Nzk4LCAwLjAwNDc5OSIsIFwKLSAgICAgICAgICAiMC4wMDQ3MTQsIDAuMDA0Nzg2LCAwLjAwNDc5OCwgMC4wMDQ4MDMsIDAuMDA0ODA3LCAwLjAwNDgwOCwgMC4wMDQ4MDkiLCBcCi0gICAgICAgICAgIjAuMDA0NzMxLCAwLjAwNDgwMiwgMC4wMDQ4MTgsIDAuMDA0ODI0LCAwLjAwNDgyNCwgMC4wMDQ4MjcsIDAuMDA0ODI3IiwgXAotICAgICAgICAgICIwLjAwNDc1MiwgMC4wMDQ4MjUsIDAuMDA0ODM3LCAwLjAwNDgzOSwgMC4wMDQ4NDYsIDAuMDA0ODQ3LCAwLjAwNDg0OSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzU1MiwgMC4wMDM2MzQsIDAuMDAzNjQ3LCAwLjAwMzY1MywgMC4wMDM2NTcsIDAuMDAzNjU5LCAwLjAwMzY2MSIsIFwKLSAgICAgICAgICAiMC4wMDM1MzQsIDAuMDAzNjE2LCAwLjAwMzYyOCwgMC4wMDM2MzUsIDAuMDAzNjM4LCAwLjAwMzY0MSwgMC4wMDM2NDIiLCBcCi0gICAgICAgICAgIjAuMDAzNTM2LCAwLjAwMzYxOCwgMC4wMDM2MywgMC4wMDM2MzcsIDAuMDAzNjQsIDAuMDAzNjQyLCAwLjAwMzY0NCIsIFwKLSAgICAgICAgICAiMC4wMDM1MzcsIDAuMDAzNjE5LCAwLjAwMzYzMiwgMC4wMDM2MzksIDAuMDAzNjQyLCAwLjAwMzY0NSwgMC4wMDM2NDYiLCBcCi0gICAgICAgICAgIjAuMDAzNTQ2LCAwLjAwMzYyOCwgMC4wMDM2NCwgMC4wMDM2NDcsIDAuMDAzNjUxLCAwLjAwMzY1MywgMC4wMDM2NTQiLCBcCi0gICAgICAgICAgIjAuMDAzNTcsIDAuMDAzNjUsIDAuMDAzNjYzLCAwLjAwMzY3MSwgMC4wMDM2NzMsIDAuMDAzNjc1LCAwLjAwMzY3NyIsIFwKLSAgICAgICAgICAiMC4wMDM1OTQsIDAuMDAzNjY5LCAwLjAwMzY4MSwgMC4wMDM2ODgsIDAuMDAzNjk3LCAwLjAwMzY5OSwgMC4wMDM3MDEiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogTVgyWDQgKgotICogLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKE1YMlg0KSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMjY3NjczOwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA3OTUxMDY7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNzkyODIzOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDc5NTEwNjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAzMDIsIDAuMDAwMzA5LCAwLjAwMDMxMSwgMC4wMDAzMTIsIDAuMDAwMzEzLCAwLjAwMDMxNCwgMC4wMDAzMTQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAzMzQsIDAuMDAwMzI4LCAwLjAwMDMyOCwgMC4wMDAzMjgsIDAuMDAwMzI4LCAwLjAwMDMyOCwgMC4wMDAzMjgiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDc5OTk1ODsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA3OTc1NzU7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNzk5OTU4OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDMxMywgMC4wMDAzMTcsIDAuMDAwMzE4LCAwLjAwMDMxOSwgMC4wMDAzMTksIDAuMDAwMzE5LCAwLjAwMDMyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzM1LCAwLjAwMDMyOCwgMC4wMDAzMjgsIDAuMDAwMzI4LCAwLjAwMDMyNywgMC4wMDAzMjgsIDAuMDAwMzI4Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNTE1NDk7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNTE1Mjk7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNTE1NDk7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMTk4LCAwLjAwMDE2OSwgMC4wMDAxNzIsIDAuMDAwMTkxLCAwLjAwMDE5LCAwLjAwMDIxOCwgMC4wMDAyNDUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDIxNTMsIDAuMDAyMTMyLCAwLjAwMjEzMiwgMC4wMDIxMzgsIDAuMDAyMTQ4LCAwLjAwMjE3NCwgMC4wMDIxOTYiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMS4wMzk1NzsKLSAgICBmdW5jdGlvbiA6ICIoKFMwIEIpICsgKCFTMCBBKSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4MjEyOSwgMC4xMzk2NzQsIDAuMTgwODQ5LCAwLjIzMTg3NCwgMC4yODI4NTEsIDAuMzMzNzgyLCAwLjM4NDcxMSIsIFwKLSAgICAgICAgICAiMC4wOTA4NywgMC4xNDg0MiwgMC4xODk2MDUsIDAuMjQwNjQzLCAwLjI5MTYyMSwgMC4zNDI1NTEsIDAuMzkzNDg1IiwgXAotICAgICAgICAgICIwLjEwMTcxMiwgMC4xNTkyMDcsIDAuMjAwNDA3LCAwLjI1MTQsIDAuMzAyMzU5LCAwLjM1MzMxNywgMC40MDQyNCIsIFwKLSAgICAgICAgICAiMC4xMTI0NTYsIDAuMTY5ODk3LCAwLjIxMTA4MywgMC4yNjIxMjUsIDAuMzEzMDg3LCAwLjM2NDA0LCAwLjQxNDk3MyIsIFwKLSAgICAgICAgICAiMC4xMjI3ODksIDAuMTgwMjUxLCAwLjIyMTQzNSwgMC4yNzI0NzMsIDAuMzIzNDQxLCAwLjM3NDM4NSwgMC40MjUzMiIsIFwKLSAgICAgICAgICAiMC4xMzg0ODQsIDAuMTk2MTU0LCAwLjIzNzM1NiwgMC4yODgzOTIsIDAuMzM5MzU1LCAwLjM5MDI5MywgMC40NDEyMzEiLCBcCi0gICAgICAgICAgIjAuMTUxMTIsIDAuMjA5MDI2LCAwLjI1MDIzNCwgMC4zMDEyNywgMC4zNTIyMywgMC40MDMxNjYsIDAuNDU0MDg3Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0MjY1LCAwLjE0MTM0MSwgMC4yMjI3MTgsIDAuMzI2MDQ0LCAwLjQzMDQ1NywgMC41MzUwNjQsIDAuNjM5OTQ1IiwgXAotICAgICAgICAgICIwLjA0MjU2OCwgMC4xNDEzNDUsIDAuMjIyNzAyLCAwLjMyNjAzLCAwLjQyOTgyOSwgMC41MzUwNzUsIDAuNjM5MjQ1IiwgXAotICAgICAgICAgICIwLjA0MjUyLCAwLjE0MTMyNiwgMC4yMjI3MDcsIDAuMzI2MDAzLCAwLjQzMDQ1MiwgMC41MzQ0NTEsIDAuNjM5MjAzIiwgXAotICAgICAgICAgICIwLjA0MjUwNSwgMC4xNDEzMDEsIDAuMjIyNjcsIDAuMzI2MDIsIDAuNDMwNDU5LCAwLjUzNTEyNSwgMC42MzkyMTQiLCBcCi0gICAgICAgICAgIjAuMDQzMTgyLCAwLjE0MTUyNywgMC4yMjI3ODUsIDAuMzI2MDUzLCAwLjQzMDA0LCAwLjUzNTAzOCwgMC42MzkxOTciLCBcCi0gICAgICAgICAgIjAuMDQzOTM0LCAwLjE0MTc4NSwgMC4yMjI5ODgsIDAuMzI2MTczLCAwLjQzMDUyLCAwLjUzNTA3MywgMC42Mzk5MjIiLCBcCi0gICAgICAgICAgIjAuMDQ1MjI5LCAwLjE0MjU3OCwgMC4yMjM0ODUsIDAuMzI2Mjg3LCAwLjQzMDc2MSwgMC41MzUyNDksIDAuNjM5MTk2Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4NTY4NCwgMC4xNDU0NjIsIDAuMTg4MDM3LCAwLjI0MDY1OSwgMC4yOTMxNjgsIDAuMzQ1NjQyLCAwLjM5ODExMSIsIFwKLSAgICAgICAgICAiMC4wOTQyNjUsIDAuMTU0MDUzLCAwLjE5NjYyNSwgMC4yNDkyNTIsIDAuMzAxNzUzLCAwLjM1NDIzMywgMC40MDY2OTYiLCBcCi0gICAgICAgICAgIjAuMTA0MzIyLCAwLjE2NDAxOSwgMC4yMDY2MTMsIDAuMjU5MjE2LCAwLjMxMTcxOCwgMC4zNjQxOTQsIDAuNDE2NjcxIiwgXAotICAgICAgICAgICIwLjExNDEwNiwgMC4xNzM3NzQsIDAuMjE2MzUzLCAwLjI2ODk4OCwgMC4zMjE1MDYsIDAuMzczOTc4LCAwLjQyNjQ0OSIsIFwKLSAgICAgICAgICAiMC4xMjM0MTksIDAuMTgzMTc0LCAwLjIyNTc5MSwgMC4yNzg0MzYsIDAuMzMwOTM5LCAwLjM4MzQxMywgMC40MzU4OTEiLCBcCi0gICAgICAgICAgIjAuMTM3NzQ2LCAwLjE5NzY3MywgMC4yNDAyNzMsIDAuMjkyOTA2LCAwLjM0NTQxNSwgMC4zOTc4OTEsIDAuNDUwMzcyIiwgXAotICAgICAgICAgICIwLjE0ODgwOSwgMC4yMDkyNDUsIDAuMjUxOTAyLCAwLjMwNDUxLCAwLjM1NzAyNiwgMC40MDk1MTIsIDAuNDYxOTY5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0MzYzNCwgMC4xNDQwMTksIDAuMjI2Mjg5LCAwLjMzMDkwMywgMC40MzU4OSwgMC41NDIzNDQsIDAuNjQ3NDI1IiwgXAotICAgICAgICAgICIwLjA0MzU2OSwgMC4xNDQwMTksIDAuMjI2Mjc1LCAwLjMzMDg3MSwgMC40MzY1NjIsIDAuNTQyMzU2LCAwLjY0ODE3OSIsIFwKLSAgICAgICAgICAiMC4wNDM1NTEsIDAuMTQzOTkyLCAwLjIyNjI3NCwgMC4zMzA4NTQsIDAuNDM2NTM2LCAwLjU0MjMyOSwgMC42NDg0NDgiLCBcCi0gICAgICAgICAgIjAuMDQzNTEzLCAwLjE0Mzk5NCwgMC4yMjYyNjMsIDAuMzMwOTI3LCAwLjQzNjAzMywgMC41NDIzNTUsIDAuNjQ3NDE3IiwgXAotICAgICAgICAgICIwLjA0MzkyOSwgMC4xNDQxNjUsIDAuMjI2MzEyLCAwLjMzMDkwMywgMC40MzY1NjIsIDAuNTQyMzQxLCAwLjY0NzQ1OCIsIFwKLSAgICAgICAgICAiMC4wNDQ4MzEsIDAuMTQ0NDcyLCAwLjIyNjU5MSwgMC4zMzA5NTEsIDAuNDM2NjQ5LCAwLjU0MjQyLCAwLjY0ODUyNSIsIFwKLSAgICAgICAgICAiMC4wNDYyMzIsIDAuMTQ1MjIsIDAuMjI3MDU0LCAwLjMzMTU2OCwgMC40MzY5MzYsIDAuNTQyNTU1LCAwLjY0ODI4NyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODE0NzMsIDAuMTM4OTEyLCAwLjE3OTk5MSwgMC4yMzEwMiwgMC4yODE5OSwgMC4zMzI5MiwgMC4zODM4NTkiLCBcCi0gICAgICAgICAgIjAuMDkwMzI4LCAwLjE0Nzc4NywgMC4xODg5NywgMC4yNDAwMDEsIDAuMjkwOTgxLCAwLjM0MTkwNCwgMC4zOTI4MzUiLCBcCi0gICAgICAgICAgIjAuMTAxMjg3LCAwLjE1ODY4OCwgMC4xOTk4NzcsIDAuMjUwODYsIDAuMzAxODE5LCAwLjM1Mjc3NywgMC40MDM2OTgiLCBcCi0gICAgICAgICAgIjAuMTEyMDQ3LCAwLjE2OTQwNywgMC4yMTA1OCwgMC4yNjE2MTQsIDAuMzEyNTc0LCAwLjM2MzU3NywgMC40MTQ0NTciLCBcCi0gICAgICAgICAgIjAuMTIyNTgyLCAwLjE3OTk2MywgMC4yMjExMzQsIDAuMjcyMTg5LCAwLjMyMzE0NywgMC4zNzQwODEsIDAuNDI1MTE1IiwgXAotICAgICAgICAgICIwLjEzODIzNiwgMC4xOTU5MTcsIDAuMjM3MTc0LCAwLjI4ODIyNSwgMC4zMzkxODcsIDAuMzkwMTU1LCAwLjQ0MTA2IiwgXAotICAgICAgICAgICIwLjE1MDc5OSwgMC4yMDg4ODUsIDAuMjUwMTMxLCAwLjMwMTI1NiwgMC4zNTIyMDksIDAuNDAzMTgxLCAwLjQ1NDA4Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0Mjc0NywgMC4xNDEzNDksIDAuMjIyNzI5LCAwLjMyNjI2NywgMC40MzA0OTksIDAuNTM1MDk5LCAwLjY0MDA3MiIsIFwKLSAgICAgICAgICAiMC4wNDI1NDcsIDAuMTQxMzIzLCAwLjIyMjY5NSwgMC4zMjYwMzksIDAuNDI5Njc0LCAwLjUzNTA4NywgMC42MzkyMzQiLCBcCi0gICAgICAgICAgIjAuMDQyMzc5LCAwLjE0MTMwOCwgMC4yMjI2OTYsIDAuMzI2MDE2LCAwLjQzMDQ1MywgMC41MzQ0NjgsIDAuNjM5MTgzIiwgXAotICAgICAgICAgICIwLjA0MjQ4MiwgMC4xNDEyODQsIDAuMjIyNjYxLCAwLjMyNjAxNywgMC40MzA0NjQsIDAuNTM1Mjg1LCAwLjYzOTIzMiIsIFwKLSAgICAgICAgICAiMC4wNDI3MzQsIDAuMTQxMzgyLCAwLjIyMjU4OSwgMC4zMjYwMzQsIDAuNDMwNDMsIDAuNTM1MDY5LCAwLjYzODk3NCIsIFwKLSAgICAgICAgICAiMC4wNDM4MywgMC4xNDE3NjUsIDAuMjIyOTcyLCAwLjMyNjE2NCwgMC40MzA1MjMsIDAuNTM1MjEzLCAwLjYzOTY2MyIsIFwKLSAgICAgICAgICAiMC4wNDUxODMsIDAuMTQyNDY1LCAwLjIyMzM4NiwgMC4zMjY2MTcsIDAuNDMwNjg1LCAwLjUzNTI5NiwgMC42MzkxNjIiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg2MjA2LCAwLjE0NTkwOCwgMC4xODg1MDMsIDAuMjQxMTI1LCAwLjI5MzYyLCAwLjM0NjA4OCwgMC4zOTg1NzQiLCBcCi0gICAgICAgICAgIjAuMDk0NTc3LCAwLjE1NDMzLCAwLjE5Njg5NCwgMC4yNDk1MTQsIDAuMzAyMDI0LCAwLjM1NDQ5NywgMC40MDY5NDkiLCBcCi0gICAgICAgICAgIjAuMTA0NTQxLCAwLjE2NDE2OCwgMC4yMDY3MjUsIDAuMjU5MzY1LCAwLjMxMTg2MywgMC4zNjQzMzQsIDAuNDE2ODA5IiwgXAotICAgICAgICAgICIwLjExNDI1NywgMC4xNzM4OTEsIDAuMjE2NDYxLCAwLjI2OTA4NiwgMC4zMjE1OTgsIDAuMzc0MDY2LCAwLjQyNjUzMyIsIFwKLSAgICAgICAgICAiMC4xMjM2NDcsIDAuMTgzMzEzLCAwLjIyNTkwNCwgMC4yNzg1MzIsIDAuMzMxMDMzLCAwLjM4MzU0NSwgMC40MzU5NzgiLCBcCi0gICAgICAgICAgIjAuMTM3NTY2LCAwLjE5NzUyLCAwLjI0MDExLCAwLjI5MjczMSwgMC4zNDUyMzYsIDAuMzk3NzIxLCAwLjQ1MDE3NCIsIFwKLSAgICAgICAgICAiMC4xNDg2NTcsIDAuMjA5MTY0LCAwLjI1MTgyNCwgMC4zMDQ0MjYsIDAuMzU2OTQxLCAwLjQwOTQxNSwgMC40NjE4NjMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQzNjQ0LCAwLjE0Mzk4NSwgMC4yMjYyNDUsIDAuMzMwODU3LCAwLjQzNjQ4NiwgMC41NDIzMDQsIDAuNjQ4NTI0IiwgXAotICAgICAgICAgICIwLjA0MzUzMSwgMC4xNDM5ODcsIDAuMjI2MjQ2LCAwLjMzMDg0OCwgMC40MzY1NjYsIDAuNTQyMzYzLCAwLjY0NzMwMiIsIFwKLSAgICAgICAgICAiMC4wNDM1MDMsIDAuMTQzOTc0LCAwLjIyNjI2MiwgMC4zMzExMDksIDAuNDM2NTA3LCAwLjU0MjI4MiwgMC42NDg0NDYiLCBcCi0gICAgICAgICAgIjAuMDQzNTEyLCAwLjE0Mzk2OCwgMC4yMjYyMzIsIDAuMzMwODY2LCAwLjQzNjA1OCwgMC41NDIzMSwgMC42NDczNTQiLCBcCi0gICAgICAgICAgIjAuMDQzNjI1LCAwLjE0NDA2NSwgMC4yMjYyNzcsIDAuMzMwODQ1LCAwLjQzNjQ5OSwgMC41NDI1MDcsIDAuNjQ3ODY3IiwgXAotICAgICAgICAgICIwLjA0NTI2LCAwLjE0NDU2NiwgMC4yMjY2MDcsIDAuMzMxMzEyLCAwLjQzNjYzOCwgMC41NDE4MzksIDAuNjQ4MjIiLCBcCi0gICAgICAgICAgIjAuMDQ2MzA3LCAwLjE0NTE5MywgMC4yMjcxMzQsIDAuMzMxNTI4LCAwLjQzNjkxMywgMC41NDI1MTYsIDAuNjQ4NDU3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlMwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzUzMDYsIDAuMTMyNzExLCAwLjE3Mzg3LCAwLjIyNDksIDAuMjc1ODc0LCAwLjMyNjgwNCwgMC4zNzc3NTkiLCBcCi0gICAgICAgICAgIjAuMDg0NDcyLCAwLjE0MTgyMiwgMC4xODI5ODgsIDAuMjM0MDIsIDAuMjg0OTk5LCAwLjMzNTkyOCwgMC4zODY4NzkiLCBcCi0gICAgICAgICAgIjAuMDk2MDg3LCAwLjE1MzQ3OCwgMC4xOTQ2NSwgMC4yNDU2ODUsIDAuMjk2NjQ1LCAwLjM0NzYyNiwgMC4zOTg1MzMiLCBcCi0gICAgICAgICAgIjAuMTA3ODc0LCAwLjE2NTIyOCwgMC4yMDY0MDIsIDAuMjU3NDM3LCAwLjMwODQ0OSwgMC4zNTkzNTMsIDAuNDEwMzAyIiwgXAotICAgICAgICAgICIwLjExOTYwNiwgMC4xNzcwMjQsIDAuMjE4MjAxLCAwLjI2OTI2MywgMC4zMjAyMjYsIDAuMzcxMTYzLCAwLjQyMjExMiIsIFwKLSAgICAgICAgICAiMC4xMzY5NTgsIDAuMTk0NjY5LCAwLjIzNTg5MSwgMC4yODY5MTgsIDAuMzM3ODgxLCAwLjM4ODgxNiwgMC40Mzk4MDgiLCBcCi0gICAgICAgICAgIjAuMTUwMzE2LCAwLjIwODY4NCwgMC4yNDk5LCAwLjMwMDkxNiwgMC4zNTE4NzEsIDAuNDAyODUxLCAwLjQ1Mzc5OCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDIzMjEsIDAuMTQxMjc3LCAwLjIyMjY2MiwgMC4zMjYwMzEsIDAuNDMwNDg0LCAwLjUzNTA1NCwgMC42MzkxNDQiLCBcCi0gICAgICAgICAgIjAuMDQyNDIyLCAwLjE0MTI2MywgMC4yMjI2NjQsIDAuMzI1OTk4LCAwLjQzMDQzOCwgMC41MzUwNSwgMC42MzkxNDkiLCBcCi0gICAgICAgICAgIjAuMDQyMzk4LCAwLjE0MTI1MSwgMC4yMjI2MzcsIDAuMzI1OTY4LCAwLjQzMDQwMiwgMC41MzUxNzYsIDAuNjM5MTkzIiwgXAotICAgICAgICAgICIwLjA0MjUwNywgMC4xNDEyOTEsIDAuMjIyNjU4LCAwLjMyNTk4MSwgMC40Mjk3MzgsIDAuNTM1MDUyLCAwLjYzOTIwNiIsIFwKLSAgICAgICAgICAiMC4wNDI5NDQsIDAuMTQxNDA2LCAwLjIyMjcyMiwgMC4zMjYwNDIsIDAuNDMwNDY2LCAwLjUzNTAxMywgMC42MzkxOTciLCBcCi0gICAgICAgICAgIjAuMDQ1MDU3LCAwLjE0MjA2MSwgMC4yMjMxMTQsIDAuMzI2NDQyLCAwLjQzMDU2NywgMC41MzUxMDUsIDAuNjQwMDM0IiwgXAotICAgICAgICAgICIwLjA0NzIwNSwgMC4xNDMwMTUsIDAuMjIzNzEyLCAwLjMyNjc2NCwgMC40MzA4MDIsIDAuNTM1NDA1LCAwLjY0MDIzMiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzk2ODksIDAuMTM5NDY1LCAwLjE4MjAyNywgMC4yMzQ2NTEsIDAuMjg3MTUsIDAuMzM5NjQsIDAuMzkyMDk2IiwgXAotICAgICAgICAgICIwLjA4ODY0LCAwLjE0ODMzNSwgMC4xOTA5LCAwLjI0MzUyOCwgMC4yOTYwMjgsIDAuMzQ4NTE1LCAwLjQwMDk3NyIsIFwKLSAgICAgICAgICAiMC4wOTk5NjEsIDAuMTU5NjM1LCAwLjIwMjIyMSwgMC4yNTQ4NTUsIDAuMzA3Mzg2LCAwLjM1OTg0NSwgMC40MTIzMTciLCBcCi0gICAgICAgICAgIjAuMTExNTI4LCAwLjE3MTI0NiwgMC4yMTM4MTUsIDAuMjY2NDUsIDAuMzE4OTU4LCAwLjM3MTQ1NSwgMC40MjM5MTMiLCBcCi0gICAgICAgICAgIjAuMTIyODEsIDAuMTgyNTY2LCAwLjIyNTEyOSwgMC4yNzc3NzIsIDAuMzMwMjk2LCAwLjM4Mjc2OSwgMC40MzUyNDUiLCBcCi0gICAgICAgICAgIjAuMTM5NTIsIDAuMTk5NDU4LCAwLjI0MjA1NiwgMC4yOTQ3NTIsIDAuMzQ3MjA0LCAwLjM5OTY4MiwgMC40NTIxODciLCBcCi0gICAgICAgICAgIjAuMTUyMzIzLCAwLjIxMjY5NiwgMC4yNTUzNiwgMC4zMDc5MzYsIDAuMzYwNDgyLCAwLjQxMjk3MiwgMC40NjU0MTEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQzMzc1LCAwLjE0Mzk3MywgMC4yMjYyMzUsIDAuMzMwODc4LCAwLjQzNjUzNiwgMC41NDIzOTEsIDAuNjQ3OTIzIiwgXAotICAgICAgICAgICIwLjA0MzQ2MywgMC4xNDM5NzgsIDAuMjI2MjQsIDAuMzMwODk2LCAwLjQzNjUzNSwgMC41NDE3NTYsIDAuNjQ3MzI1IiwgXAotICAgICAgICAgICIwLjA0MzQ4LCAwLjE0Mzk3NSwgMC4yMjYyNjIsIDAuMzMwODcyLCAwLjQzNjYzMSwgMC41NDIzMzMsIDAuNjQ3NDM4IiwgXAotICAgICAgICAgICIwLjA0MzQzMiwgMC4xNDM5OTgsIDAuMjI2MjQzLCAwLjMzMDg0NSwgMC40MzY1MywgMC41NDI0MDksIDAuNjQ4MDAyIiwgXAotICAgICAgICAgICIwLjA0Mzg0OCwgMC4xNDQxMzQsIDAuMjI2MzQsIDAuMzMwOTEsIDAuNDM2NTI5LCAwLjU0MjM0OSwgMC42NDg0MjMiLCBcCi0gICAgICAgICAgIjAuMDQ1NTk2LCAwLjE0NDYyOCwgMC4yMjY2NCwgMC4zMzEwNzMsIDAuNDM2NjUzLCAwLjU0MjQxOSwgMC42NDcxNTIiLCBcCi0gICAgICAgICAgIjAuMDQ3NDk1LCAwLjE0NTUxMiwgMC4yMjcyMywgMC4zMzE0NTEsIDAuNDM2MzUzLCAwLjU0MjY3LCAwLjY0ODUwNiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk0NjUyLCAwLjE1MjE1OCwgMC4xOTMyOSwgMC4yNDQzMjUsIDAuMjk1Mjk3LCAwLjM0NjIzMiwgMC4zOTcxNzEiLCBcCi0gICAgICAgICAgIjAuMTA0NDgsIDAuMTYxOTcyLCAwLjIwMzE0MiwgMC4yNTQxODQsIDAuMzA1MTQ0LCAwLjM1NjA4NCwgMC40MDcwMjMiLCBcCi0gICAgICAgICAgIjAuMTE1MjQ1LCAwLjE3MjcwMiwgMC4yMTM4NDksIDAuMjY0ODg1LCAwLjMxNTg0NCwgMC4zNjY4MTUsIDAuNDE3NzMiLCBcCi0gICAgICAgICAgIjAuMTI0NDQyLCAwLjE4MTg4LCAwLjIyMzA1MywgMC4yNzQwOTYsIDAuMzI1MDU2LCAwLjM3NTk5NSwgMC40MjY5MzYiLCBcCi0gICAgICAgICAgIjAuMTMxODM1LCAwLjE4OTAxOSwgMC4yMzAyLCAwLjI4MTIzOCwgMC4zMzI0NTgsIDAuMzgzMzg1LCAwLjQzNDMyMiIsIFwKLSAgICAgICAgICAiMC4xNDE0MjQsIDAuMTk4ODg2LCAwLjI0MDIyNiwgMC4yOTEyNTIsIDAuMzQyMjQxLCAwLjM5MzAzNiwgMC40NDQwOTciLCBcCi0gICAgICAgICAgIjAuMTQ4NzU2LCAwLjIwNjM0NywgMC4yNDc1OTEsIDAuMjk4NjMxLCAwLjM0OTYzNSwgMC40MDA1ODIsIDAuNDUxNDk2Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0MjU4NCwgMC4xNDEzMjcsIDAuMjIyNzAxLCAwLjMyNjA0NiwgMC40Mjk5NzcsIDAuNTM1MDY5LCAwLjYzOTI1NCIsIFwKLSAgICAgICAgICAiMC4wNDI0OSwgMC4xNDEzMzIsIDAuMjIyNjk3LCAwLjMyNjAxNywgMC40MzA0NjMsIDAuNTM0NDMsIDAuNjM5MjAxIiwgXAotICAgICAgICAgICIwLjA0MjU4MiwgMC4xNDEzMjgsIDAuMjIyNjk2LCAwLjMyNjAxNCwgMC40MzA0NDksIDAuNTM1MjE4LCAwLjYzOTI1IiwgXAotICAgICAgICAgICIwLjA0MjUyNCwgMC4xNDEzMjEsIDAuMjIyNjkyLCAwLjMyNjAyMSwgMC40MzA0NTMsIDAuNTM1MDIsIDAuNjM5MTkzIiwgXAotICAgICAgICAgICIwLjA0MjYwOSwgMC4xNDEzMjksIDAuMjIyNzAyLCAwLjMyNjA0NSwgMC40Mjk4NzIsIDAuNTM1MDE2LCAwLjYzOTIxNCIsIFwKLSAgICAgICAgICAiMC4wNDI0OTIsIDAuMTQxNTA1LCAwLjIyMjg1NywgMC4zMjYzNywgMC40MzAwMTEsIDAuNTM1MDUsIDAuNjM5MjUxIiwgXAotICAgICAgICAgICIwLjA0MjQ4NCwgMC4xNDE1MjYsIDAuMjIyODk4LCAwLjMyNTk3NywgMC40MzAxODgsIDAuNTM0NjMyLCAwLjYzOTM0MiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTcxNDgsIDAuMTU2OTIxLCAwLjE5OTUyLCAwLjI1MjA4NSwgMC4zMDQ2MSwgMC4zNTcwNjEsIDAuNDA5NTI3IiwgXAotICAgICAgICAgICIwLjEwNzM1NSwgMC4xNjcxMDYsIDAuMjA5NzA5LCAwLjI2MjMyNCwgMC4zMTQ4MjMsIDAuMzY3MjkzLCAwLjQxOTc3MyIsIFwKLSAgICAgICAgICAiMC4xMTg5OSwgMC4xNzg3MDQsIDAuMjIxMjk0LCAwLjI3Mzg3LCAwLjMyNjM2NywgMC4zNzg4NjEsIDAuNDMxMzEzIiwgXAotICAgICAgICAgICIwLjEyODczMiwgMC4xODgzOTYsIDAuMjMwOTczLCAwLjI4MzU5NSwgMC4zMzYxLCAwLjM4ODU3NSwgMC40NDEwMzQiLCBcCi0gICAgICAgICAgIjAuMTM2ODIxLCAwLjE5NjQ3NCwgMC4yMzkwMjksIDAuMjkxNjA5LCAwLjM0NDE0NSwgMC4zOTY2NDksIDAuNDQ5MDM5IiwgXAotICAgICAgICAgICIwLjE0NzQ4OCwgMC4yMDc0NCwgMC4yNTAwMDgsIDAuMzAyNjM1LCAwLjM1NDk1OCwgMC40MDc2MjMsIDAuNDYwMDc3IiwgXAotICAgICAgICAgICIwLjE1NTkxNSwgMC4yMTU3MDQsIDAuMjU4Mjk3LCAwLjMxMTA1MiwgMC4zNjM1NDcsIDAuNDE1OTI2LCAwLjQ2ODQ4NyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDM1MTUsIDAuMTQzOTc0LCAwLjIyNjIxMiwgMC4zMzA4MjIsIDAuNDM2Njc5LCAwLjU0MjM0MiwgMC42NDczNjciLCBcCi0gICAgICAgICAgIjAuMDQzNTE5LCAwLjE0Mzk4MiwgMC4yMjYyMjUsIDAuMzMwNzg2LCAwLjQzNjUxOCwgMC41NDIzMDgsIDAuNjQ4NDY2IiwgXAotICAgICAgICAgICIwLjA0MzQ3MiwgMC4xNDM5NzIsIDAuMjI2MjQxLCAwLjMzMDg0MSwgMC40MzY1LCAwLjU0MjM4NCwgMC42NDc3NzUiLCBcCi0gICAgICAgICAgIjAuMDQzNTIzLCAwLjE0Mzk1NywgMC4yMjYyMjksIDAuMzMwODQxLCAwLjQzNjQ3MywgMC41NDIzMTUsIDAuNjQ3NCIsIFwKLSAgICAgICAgICAiMC4wNDM0NjQsIDAuMTQzOTMzLCAwLjIyNjIwOSwgMC4zMzA3NzYsIDAuNDM2NDg5LCAwLjU0MjQzOSwgMC42NDgzMzUiLCBcCi0gICAgICAgICAgIjAuMDQzNDkxLCAwLjE0NDEwOCwgMC4yMjYzNSwgMC4zMzA1MDksIDAuNDM2NTU4LCAwLjU0MTc2LCAwLjY0NzgyMSIsIFwKLSAgICAgICAgICAiMC4wNDM0NTksIDAuMTQ0MDkzLCAwLjIyNjM4LCAwLjMzMTA0NCwgMC40MzYsIDAuNTQyMzI4LCAwLjY0NzUwMiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDgwMywgMC4wMDQ5NTksIDAuMDA0OTk0LCAwLjAwNTAxNCwgMC4wMDUwMjYsIDAuMDA1MDMxLCAwLjAwNTAzNCIsIFwKLSAgICAgICAgICAiMC4wMDQ3NzQsIDAuMDA0OTMyLCAwLjAwNDk2OCwgMC4wMDQ5ODksIDAuMDA0OTk5LCAwLjAwNTAwNywgMC4wMDUwMTIiLCBcCi0gICAgICAgICAgIjAuMDA0NzQ2LCAwLjAwNDkwOCwgMC4wMDQ5NDcsIDAuMDA0OTY5LCAwLjAwNDk4MSwgMC4wMDQ5OSwgMC4wMDQ5OTUiLCBcCi0gICAgICAgICAgIjAuMDA0NzQyLCAwLjAwNDg5MiwgMC4wMDQ5MzMsIDAuMDA0OTU3LCAwLjAwNDk3LCAwLjAwNDk3OSwgMC4wMDQ5ODUiLCBcCi0gICAgICAgICAgIjAuMDA0NzU0LCAwLjAwNDg4MywgMC4wMDQ5MjUsIDAuMDA0OTUsIDAuMDA0OTYzLCAwLjAwNDk3NiwgMC4wMDQ5NzkiLCBcCi0gICAgICAgICAgIjAuMDA0NzM5LCAwLjAwNDg2OSwgMC4wMDQ5MTQsIDAuMDA0OTQyLCAwLjAwNDk1OSwgMC4wMDQ5NjcsIDAuMDA0OTc2IiwgXAotICAgICAgICAgICIwLjAwNDc5NCwgMC4wMDQ4OCwgMC4wMDQ5MTcsIDAuMDA0OTQ1LCAwLjAwNDk2MywgMC4wMDQ5NzMsIDAuMDA0OTgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDYxNTMsIDAuMDA2MzUzLCAwLjAwNjM5OSwgMC4wMDY0MjYsIDAuMDA2NDQxLCAwLjAwNjQ1LCAwLjAwNjQ1NiIsIFwKLSAgICAgICAgICAiMC4wMDYxMjksIDAuMDA2MzM2LCAwLjAwNjM4MywgMC4wMDY0MTEsIDAuMDA2NDI3LCAwLjAwNjQzNiwgMC4wMDY0NDMiLCBcCi0gICAgICAgICAgIjAuMDA2MTA2LCAwLjAwNjMxNSwgMC4wMDYzNjYsIDAuMDA2Mzk3LCAwLjAwNjQxMywgMC4wMDY0MjQsIDAuMDA2NDMxIiwgXAotICAgICAgICAgICIwLjAwNjExMywgMC4wMDYzMDUsIDAuMDA2MzU2LCAwLjAwNjM4OCwgMC4wMDY0MDUsIDAuMDA2NDE3LCAwLjAwNjQyNCIsIFwKLSAgICAgICAgICAiMC4wMDYxMTEsIDAuMDA2MjkyLCAwLjAwNjM0NiwgMC4wMDYzOCwgMC4wMDYzOTksIDAuMDA2NDExLCAwLjAwNjQxOSIsIFwKLSAgICAgICAgICAiMC4wMDYxMTIsIDAuMDA2Mjc4LCAwLjAwNjMzNiwgMC4wMDYzNzIsIDAuMDA2MzkzLCAwLjAwNjQwNiwgMC4wMDY0MTYiLCBcCi0gICAgICAgICAgIjAuMDA2MTMsIDAuMDA2Mjc5LCAwLjAwNjMzMiwgMC4wMDYzNywgMC4wMDYzOSwgMC4wMDY0MDQsIDAuMDA2NDE0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0NTU3LCAwLjAwNDY3NywgMC4wMDQ3MDMsIDAuMDA0NzE2LCAwLjAwNDcyMiwgMC4wMDQ3MjcsIDAuMDA0NzMiLCBcCi0gICAgICAgICAgIjAuMDA0NTMxLCAwLjAwNDY1MiwgMC4wMDQ2NzcsIDAuMDA0NjkyLCAwLjAwNDcsIDAuMDA0NzAzLCAwLjAwNDcwNyIsIFwKLSAgICAgICAgICAiMC4wMDQ1MDQsIDAuMDA0NjMxLCAwLjAwNDY2LCAwLjAwNDY3NiwgMC4wMDQ2ODQsIDAuMDA0NjksIDAuMDA0Njk0IiwgXAotICAgICAgICAgICIwLjAwNDUsIDAuMDA0NjE4LCAwLjAwNDY0OSwgMC4wMDQ2NjgsIDAuMDA0Njc2LCAwLjAwNDY4MiwgMC4wMDQ2ODYiLCBcCi0gICAgICAgICAgIjAuMDA0NTAyLCAwLjAwNDYxMiwgMC4wMDQ2NDMsIDAuMDA0NjY0LCAwLjAwNDY3MywgMC4wMDQ2NzksIDAuMDA0Njg0IiwgXAotICAgICAgICAgICIwLjAwNDUxMywgMC4wMDQ2MDcsIDAuMDA0NjQsIDAuMDA0NjYxLCAwLjAwNDY3MywgMC4wMDQ2NzcsIDAuMDA0Njg0IiwgXAotICAgICAgICAgICIwLjAwNDUxMSwgMC4wMDQ1OTYsIDAuMDA0NjMxLCAwLjAwNDY1MywgMC4wMDQ2NjYsIDAuMDA0Njc5LCAwLjAwNDY4MSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjM2MiwgMC4wMDY1NTEsIDAuMDA2NTk0LCAwLjAwNjYxOSwgMC4wMDY2MzIsIDAuMDA2NjQsIDAuMDA2NjQ2IiwgXAotICAgICAgICAgICIwLjAwNjM0NywgMC4wMDY1MzcsIDAuMDA2NTgsIDAuMDA2NjA2LCAwLjAwNjYxOSwgMC4wMDY2MjgsIDAuMDA2NjM0IiwgXAotICAgICAgICAgICIwLjAwNjMyNiwgMC4wMDY1MTgsIDAuMDA2NTY0LCAwLjAwNjU5MiwgMC4wMDY2MDcsIDAuMDA2NjE3LCAwLjAwNjYyMyIsIFwKLSAgICAgICAgICAiMC4wMDYzMzMsIDAuMDA2NTEsIDAuMDA2NTU3LCAwLjAwNjU4NiwgMC4wMDY2MDEsIDAuMDA2NjExLCAwLjAwNjYxOCIsIFwKLSAgICAgICAgICAiMC4wMDYzMywgMC4wMDY1LCAwLjAwNjU0OSwgMC4wMDY1NzksIDAuMDA2NTk2LCAwLjAwNjYwNywgMC4wMDY2MTQiLCBcCi0gICAgICAgICAgIjAuMDA2MzM3LCAwLjAwNjQ4OSwgMC4wMDY1NCwgMC4wMDY1NzIsIDAuMDA2NTkxLCAwLjAwNjYwMywgMC4wMDY2MTIiLCBcCi0gICAgICAgICAgIjAuMDA2MzM0LCAwLjAwNjQ4NSwgMC4wMDY1MzcsIDAuMDA2NTcsIDAuMDA2NTg5LCAwLjAwNjYwMiwgMC4wMDY2MTEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTMCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2OSwgMC4wMDcwNTcsIDAuMDA3MDk2LCAwLjAwNzExOCwgMC4wMDcxMjksIDAuMDA3MTM3LCAwLjAwNzE0MyIsIFwKLSAgICAgICAgICAiMC4wMDY4ODksIDAuMDA3MDQ2LCAwLjAwNzA4MywgMC4wMDcxMDYsIDAuMDA3MTE4LCAwLjAwNzEyNSwgMC4wMDcxMzIiLCBcCi0gICAgICAgICAgIjAuMDA2ODkzLCAwLjAwNzA1MSwgMC4wMDcwODgsIDAuMDA3MTEsIDAuMDA3MTIyLCAwLjAwNzEzLCAwLjAwNzEzNiIsIFwKLSAgICAgICAgICAiMC4wMDY4OTQsIDAuMDA3MDUzLCAwLjAwNzA5LCAwLjAwNzExNCwgMC4wMDcxMjUsIDAuMDA3MTMzLCAwLjAwNzE0IiwgXAotICAgICAgICAgICIwLjAwNjkwNSwgMC4wMDcwNjMsIDAuMDA3MSwgMC4wMDcxMjIsIDAuMDA3MTMzLCAwLjAwNzE0NiwgMC4wMDcxNDciLCBcCi0gICAgICAgICAgIjAuMDA2OTIsIDAuMDA3MDgzLCAwLjAwNzExNiwgMC4wMDcxMzgsIDAuMDA3MTQ5LCAwLjAwNzE1OSwgMC4wMDcxNjQiLCBcCi0gICAgICAgICAgIjAuMDA2OTQ0LCAwLjAwNzA5OSwgMC4wMDcxMzUsIDAuMDA3MTUzLCAwLjAwNzE2OSwgMC4wMDcxNzcsIDAuMDA3MTgyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1ODQ0LCAwLjAwNjAzNiwgMC4wMDYwODMsIDAuMDA2MTExLCAwLjAwNjEyNiwgMC4wMDYxMzYsIDAuMDA2MTQzIiwgXAotICAgICAgICAgICIwLjAwNTgyNywgMC4wMDYwMjEsIDAuMDA2MDY3LCAwLjAwNjA5NSwgMC4wMDYxMSwgMC4wMDYxMiwgMC4wMDYxMjciLCBcCi0gICAgICAgICAgIjAuMDA1ODMzLCAwLjAwNjAyNywgMC4wMDYwNzMsIDAuMDA2MSwgMC4wMDYxMTYsIDAuMDA2MTI2LCAwLjAwNjEzMyIsIFwKLSAgICAgICAgICAiMC4wMDU4MjgsIDAuMDA2MDI1LCAwLjAwNjA3MiwgMC4wMDYwOTksIDAuMDA2MTE1LCAwLjAwNjEyNSwgMC4wMDYxMzEiLCBcCi0gICAgICAgICAgIjAuMDA1ODQ1LCAwLjAwNjAzNywgMC4wMDYwODMsIDAuMDA2MTA5LCAwLjAwNjEyNSwgMC4wMDYxMzUsIDAuMDA2MTQxIiwgXAotICAgICAgICAgICIwLjAwNTg2MiwgMC4wMDYwNTgsIDAuMDA2MTA1LCAwLjAwNjEzMywgMC4wMDYxNDYsIDAuMDA2MTU5LCAwLjAwNjE2NSIsIFwKLSAgICAgICAgICAiMC4wMDU4ODEsIDAuMDA2MDcyLCAwLjAwNjExOSwgMC4wMDYxNTMsIDAuMDA2MTY5LCAwLjAwNjE3MiwgMC4wMDYxODYiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogTVgyWDYgKgotICogLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKE1YMlg2KSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMzM4NjE3OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA3OTI1OTc7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNzkwNTk7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNzkyNTk3OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDMwMywgMC4wMDAzMSwgMC4wMDAzMTIsIDAuMDAwMzEzLCAwLjAwMDMxNCwgMC4wMDAzMTQsIDAuMDAwMzE1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzM2LCAwLjAwMDMyOSwgMC4wMDAzMjgsIDAuMDAwMzI4LCAwLjAwMDMyNiwgMC4wMDAzMjgsIDAuMDAwMzI4Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA3NDYwMjM7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNzQzNzY3OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDc0NjAyMzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAzMTQsIDAuMDAwMzE3LCAwLjAwMDMxOSwgMC4wMDAzMTksIDAuMDAwMzE5LCAwLjAwMDMyLCAwLjAwMDMyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzMyLCAwLjAwMDMyOCwgMC4wMDAzMjgsIDAuMDAwMzI3LCAwLjAwMDMyNywgMC4wMDAzMjcsIDAuMDAwMzI3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNDA2OTU7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNDA1Nzk7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNDA2OTU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjgzLCAwLjAwMDI1NCwgMC4wMDAyNTcsIDAuMDAwMjYyLCAwLjAwMDI3NiwgMC4wMDAyOTcsIDAuMDAwMzIzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyMDgzLCAwLjAwMjA2MywgMC4wMDIwNiwgMC4wMDIwNjcsIDAuMDAyMDc3LCAwLjAwMjEwNCwgMC4wMDIxMjYiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMS42NDA0OwotICAgIGZ1bmN0aW9uIDogIigoUzAgQikgKyAoIVMwIEEpKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDkyMzY4LCAwLjEzNzMwOCwgMC4xNjY0NywgMC4yMDEyNDksIDAuMjM1NjIyLCAwLjI2OTkyMSwgMC4zMDQxMDUiLCBcCi0gICAgICAgICAgIjAuMTAxMTA5LCAwLjE0NjAwOSwgMC4xNzUxMDUsIDAuMjEwMDA2LCAwLjI0NDM4MywgMC4yNzg2NDEsIDAuMzEyODYyIiwgXAotICAgICAgICAgICIwLjExMTk0NiwgMC4xNTY4MzQsIDAuMTg1OTcsIDAuMjIwODkzLCAwLjI1NTIxNiwgMC4yODk0NzIsIDAuMzIzNzA4IiwgXAotICAgICAgICAgICIwLjEyMjg0MywgMC4xNjc3MjMsIDAuMTk2ODEzLCAwLjIzMTYzMiwgMC4yNjYwNiwgMC4zMDAzMTQsIDAuMzM0NTU1IiwgXAotICAgICAgICAgICIwLjEzMzU1NCwgMC4xNzgzOTcsIDAuMjA3NDU0LCAwLjI0MjI5OSwgMC4yNzY3MjQsIDAuMzEwOTkxLCAwLjM0NTIyIiwgXAotICAgICAgICAgICIwLjE0OTc3OCwgMC4xOTQ3MTQsIDAuMjIzODcxLCAwLjI1ODcyOSwgMC4yOTMxMDEsIDAuMzI3MzkyLCAwLjM2MTYwOSIsIFwKLSAgICAgICAgICAiMC4xNjMzODgsIDAuMjA4NjYsIDAuMjM3ODI5LCAwLjI3MjgyOCwgMC4zMDcyNzcsIDAuMzQxMzg3LCAwLjM3NTYwMSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDE4OTMsIDAuMTA4Mjc0LCAwLjE2MTMwNiwgMC4yMjkxMTcsIDAuMjk3NzE0LCAwLjM2NzMxOCwgMC40MzY5MDQiLCBcCi0gICAgICAgICAgIjAuMDQyMDA5LCAwLjEwODMxLCAwLjE2MTM2NywgMC4yMjkxMTgsIDAuMjk3NzIsIDAuMzY2OTE0LCAwLjQzNjg4OCIsIFwKLSAgICAgICAgICAiMC4wNDE3NCwgMC4xMDgxMDcsIDAuMTYxMzU2LCAwLjIyOTA4NywgMC4yOTc2NjYsIDAuMzY2OTE0LCAwLjQzNjU1OCIsIFwKLSAgICAgICAgICAiMC4wNDE1NjMsIDAuMTA4MTk2LCAwLjE2MTI4NywgMC4yMjkwNjksIDAuMjk3NjYxLCAwLjM2Njg5MSwgMC40MzY1NDYiLCBcCi0gICAgICAgICAgIjAuMDQxNzQ0LCAwLjEwODI1MSwgMC4xNjEzNDEsIDAuMjI4OTk4LCAwLjI5NzY1MSwgMC4zNjY3MTMsIDAuNDM2NTMyIiwgXAotICAgICAgICAgICIwLjA0MjU0NywgMC4xMDg2MTIsIDAuMTYxNTkxLCAwLjIyOTI2MywgMC4yOTc3OTcsIDAuMzY2ODc3LCAwLjQzNjk2MyIsIFwKLSAgICAgICAgICAiMC4wNDM4OTgsIDAuMTA5MjgzLCAwLjE2MjAyNiwgMC4yMjkzODYsIDAuMjk4MTI1LCAwLjM2NzE4OCwgMC40MzcwNDQiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk3NzUzLCAwLjE0NDUyOCwgMC4xNzQ5ODEsIDAuMjExNDQzLCAwLjI0NzI3NCwgMC4yODI5NzEsIDAuMzE4NTY2IiwgXAotICAgICAgICAgICIwLjEwNjQwNywgMC4xNTMxODEsIDAuMTgzNjc0LCAwLjIyMDA3MSwgMC4yNTU4NTksIDAuMjkxNTQ5LCAwLjMyNzE0NSIsIFwKLSAgICAgICAgICAiMC4xMTY0MzcsIDAuMTYzMTcxLCAwLjE5MzY4NiwgMC4yMzAwNjQsIDAuMjY1OTM1LCAwLjMwMTYxNSwgMC4zMzcyMTgiLCBcCi0gICAgICAgICAgIjAuMTI2NDM3LCAwLjE3MzA3MiwgMC4yMDM1NTksIDAuMjM5OTUzLCAwLjI3NTc4LCAwLjMxMTQ4MywgMC4zNDcwODYiLCBcCi0gICAgICAgICAgIjAuMTM2MjIyLCAwLjE4Mjg0OSwgMC4yMTMzMjIsIDAuMjQ5NzE0LCAwLjI4NTUzOCwgMC4zMjEyNDEsIDAuMzU2ODQ1IiwgXAotICAgICAgICAgICIwLjE1MDgwOCwgMC4xOTc2NTUsIDAuMjI4MTE5LCAwLjI2NDUyNCwgMC4zMDAzOTgsIDAuMzM2MDk2LCAwLjM3MTY5OSIsIFwKLSAgICAgICAgICAiMC4xNjMxMjIsIDAuMjEwMTUxLCAwLjI0MDcxMSwgMC4yNzcxOTIsIDAuMzEzMDQ0LCAwLjM0ODcyNywgMC4zODQzNDIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQzMTMsIDAuMTExMTAzLCAwLjE2NTI0MywgMC4yMzQxMzMsIDAuMzAzODIsIDAuMzczOTU1LCAwLjQ0NTExNCIsIFwKLSAgICAgICAgICAiMC4wNDI5NzQsIDAuMTExMDcxLCAwLjE2NTE3NSwgMC4yMzQwMTMsIDAuMzAzODM4LCAwLjM3NDIwMSwgMC40NDUwNTgiLCBcCi0gICAgICAgICAgIjAuMDQyNzcsIDAuMTEwOTgsIDAuMTY1MTYzLCAwLjIzMzk0MSwgMC4zMDM3OSwgMC4zNzQ0MzcsIDAuNDQ1MDM2IiwgXAotICAgICAgICAgICIwLjA0MjcwNCwgMC4xMTA5NDgsIDAuMTY1MTMyLCAwLjIzNDA4NywgMC4zMDM4MjksIDAuMzczOTQ5LCAwLjQ0NDY4MyIsIFwKLSAgICAgICAgICAiMC4wNDI4ODQsIDAuMTExMDU1LCAwLjE2NTE4NiwgMC4yMzQxMDgsIDAuMzAzODM1LCAwLjM3NDQ1NSwgMC40NDU1ODQiLCBcCi0gICAgICAgICAgIjAuMDQzNTgxLCAwLjExMTQyMSwgMC4xNjU0NjEsIDAuMjM0MzA0LCAwLjMwMzkzNSwgMC4zNzQ1MzksIDAuNDQ1MTg4IiwgXAotICAgICAgICAgICIwLjA0NDU4MiwgMC4xMTE5NTYsIDAuMTY1ODA0LCAwLjIzNDUwMiwgMC4zMDQxMzksIDAuMzc0NzY3LCAwLjQ0NTI3NyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTIyNjEsIDAuMTM3MTU4LCAwLjE2NjI4NCwgMC4yMDExODYsIDAuMjM1NTU4LCAwLjI2OTg0OSwgMC4zMDM5NTkiLCBcCi0gICAgICAgICAgIjAuMTAxMjY2LCAwLjE0NjE1MSwgMC4xNzUyNDEsIDAuMjEwMTQyLCAwLjI0NDUyNywgMC4yNzg4MTEsIDAuMzEzMDEzIiwgXAotICAgICAgICAgICIwLjExMjIsIDAuMTU3MDgsIDAuMTg2MjIzLCAwLjIyMTA0NywgMC4yNTU0NjYsIDAuMjg5NzIsIDAuMzIzOTUzIiwgXAotICAgICAgICAgICIwLjEyMzI2NSwgMC4xNjgxMDcsIDAuMTk3MTkzLCAwLjIzMjAwNiwgMC4yNjY0MzQsIDAuMzAwNjg1LCAwLjMzNDkyNCIsIFwKLSAgICAgICAgICAiMC4xMzM5MzksIDAuMTc4NzM0LCAwLjIwNzg0OCwgMC4yNDI2NjUsIDAuMjc3MDU1LCAwLjMxMTM1LCAwLjM0NTU2MiIsIFwKLSAgICAgICAgICAiMC4xNTA1NzYsIDAuMTk1NTEyLCAwLjIyNDU3MSwgMC4yNTk0MSwgMC4yOTM4MzgsIDAuMzI4MDkyLCAwLjM2MjMzNCIsIFwKLSAgICAgICAgICAiMC4xNjM5MjUsIDAuMjA5MTkyLCAwLjIzODM3MSwgMC4yNzMzMTksIDAuMzA3NzY3LCAwLjM0MTkwNiwgMC4zNzYxMTgiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQyMDY0LCAwLjEwODM2MiwgMC4xNjEzNiwgMC4yMjkxNDksIDAuMjk3NzUyLCAwLjM2NzM1OCwgMC40MzY2MTMiLCBcCi0gICAgICAgICAgIjAuMDQxOTE0LCAwLjEwODMzNSwgMC4xNjEzOTIsIDAuMjI4OTIsIDAuMjk3NzY0LCAwLjM2NjY0NSwgMC40MzY5MTIiLCBcCi0gICAgICAgICAgIjAuMDQxNjkxLCAwLjEwODIzMywgMC4xNjEzODcsIDAuMjI5MDU1LCAwLjI5NzY2NywgMC4zNjY3MzcsIDAuNDM2NTc2IiwgXAotICAgICAgICAgICIwLjA0MTUzMiwgMC4xMDgyMjEsIDAuMTYxMzIxLCAwLjIyOTEwNCwgMC4yOTc2OTMsIDAuMzY2OTMzLCAwLjQzNjU2OSIsIFwKLSAgICAgICAgICAiMC4wNDE3OTMsIDAuMTA4MjY1LCAwLjE2MTM0NiwgMC4yMjg5MTIsIDAuMjk3NzEzLCAwLjM2NjcyMywgMC40MzY1NTMiLCBcCi0gICAgICAgICAgIjAuMDQyNDQ0LCAwLjEwODcwMSwgMC4xNjE2NzgsIDAuMjI5MzE4LCAwLjI5NzgxMSwgMC4zNjY4NDUsIDAuNDM2NjA4IiwgXAotICAgICAgICAgICIwLjA0MzgwMiwgMC4xMDkxODIsIDAuMTYxOTkzLCAwLjIyOTUyMiwgMC4yOTgwNzgsIDAuMzY2OTczLCAwLjQzNzA3Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5OTI3NSwgMC4xNDYwNzksIDAuMTc2NTY5LCAwLjIxMzA0NiwgMC4yNDg5LCAwLjI4NDYwMiwgMC4zMjAxOTUiLCBcCi0gICAgICAgICAgIjAuMTA3NzgyLCAwLjE1NDYxOSwgMC4xODUxMDEsIDAuMjIxNTY2LCAwLjI1NzM4NywgMC4yOTMwNTksIDAuMzI4NjgiLCBcCi0gICAgICAgICAgIjAuMTE3Njc5LCAwLjE2NDQ1NiwgMC4xOTUwMTUsIDAuMjMxNDA5LCAwLjI2NzI1MiwgMC4zMDI5NjEsIDAuMzM4NTY4IiwgXAotICAgICAgICAgICIwLjEyNzYyOCwgMC4xNzQzMjYsIDAuMjA0ODA4LCAwLjI0MTIxMSwgMC4yNzcwODMsIDAuMzEyNzg5LCAwLjM0ODQwMSIsIFwKLSAgICAgICAgICAiMC4xMzcyODMsIDAuMTg0MDc2LCAwLjIxNDUyNywgMC4yNTA5MzQsIDAuMjg2ODA5LCAwLjMyMjUwNCwgMC4zNTgxMTciLCBcCi0gICAgICAgICAgIjAuMTUxOTQzLCAwLjE5ODg0NywgMC4yMjkzNjQsIDAuMjY1NzczLCAwLjMwMTY1NSwgMC4zMzczMywgMC4zNzI5NjYiLCBcCi0gICAgICAgICAgIjAuMTY0MTcsIDAuMjExMjkxLCAwLjI0MTg0NiwgMC4yNzgzMDcsIDAuMzE0MTY1LCAwLjM0OTg1OCwgMC4zODU0NjciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQzMjc4LCAwLjExMTI4NCwgMC4xNjUzOTksIDAuMjM0Mjc4LCAwLjMwMzk5MiwgMC4zNzQ1NDksIDAuNDQ1Njc5IiwgXAotICAgICAgICAgICIwLjA0MzE2MSwgMC4xMTEyOTEsIDAuMTY1Mzg5LCAwLjIzNDI2MiwgMC4zMDM5NjcsIDAuMzc0NDYyLCAwLjQ0NTE4MiIsIFwKLSAgICAgICAgICAiMC4wNDMwNDMsIDAuMTExMjA5LCAwLjE2NTM2MiwgMC4yMzQyMjIsIDAuMzAzOTE4LCAwLjM3NDUyMiwgMC40NDUxNDciLCBcCi0gICAgICAgICAgIjAuMDQyOTEzLCAwLjExMTIyMiwgMC4xNjUzNzMsIDAuMjM0MjYsIDAuMzAzOTc3LCAwLjM3NDUzMywgMC40NDU3NjMiLCBcCi0gICAgICAgICAgIjAuMDQyOTMzLCAwLjExMTI1LCAwLjE2NTM5MiwgMC4yMzQxOCwgMC4zMDM5MzQsIDAuMzc0NjI3LCAwLjQ0NTIzMyIsIFwKLSAgICAgICAgICAiMC4wNDM3NTcsIDAuMTExNjQxLCAwLjE2NTY2MiwgMC4yMzQ1MTYsIDAuMzA0MDY1LCAwLjM3NDIxMiwgMC40NDUyNzMiLCBcCi0gICAgICAgICAgIjAuMDQ0ODcyLCAwLjExMjEzMiwgMC4xNjU5ODgsIDAuMjM0NywgMC4zMDQ0MTcsIDAuMzc0NzY4LCAwLjQ0NTMyNyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg1NzQ0LCAwLjEzMDYzOCwgMC4xNTk3MjcsIDAuMTk0NTY1LCAwLjIyODk4MywgMC4yNjMyMzksIDAuMjk3NDc0IiwgXAotICAgICAgICAgICIwLjA5NDk1MiwgMC4xMzk4NCwgMC4xNjg5MzEsIDAuMjAzNzc2LCAwLjIzODE4NiwgMC4yNzI0NiwgMC4zMDY2NzQiLCBcCi0gICAgICAgICAgIjAuMTA2NjQ3LCAwLjE1MTUxOCwgMC4xODA1NiwgMC4yMTU0NDIsIDAuMjQ5ODMsIDAuMjg0MTM5LCAwLjMxODM2MyIsIFwKLSAgICAgICAgICAiMC4xMTg0MzksIDAuMTYzMjMsIDAuMTkyMywgMC4yMjcxNjQsIDAuMjYxNTY3LCAwLjI5NTg2NiwgMC4zMzAwNjQiLCBcCi0gICAgICAgICAgIjAuMTMwNDU5LCAwLjE3NTI4NCwgMC4yMDQzMTcsIDAuMjM5MjM2LCAwLjI3MzYwNiwgMC4zMDc4NywgMC4zNDIxMDQiLCBcCi0gICAgICAgICAgIjAuMTQ4OTA3LCAwLjE5MzkyNCwgMC4yMjMwNTIsIDAuMjU3OTAzLCAwLjI5MjI3LCAwLjMyNjU1OCwgMC4zNjA3ODIiLCBcCi0gICAgICAgICAgIjAuMTYzODcxLCAwLjIwOTI2NiwgMC4yMzg0NDgsIDAuMjczMzA5LCAwLjMwNzcwMiwgMC4zNDE5NywgMC4zNzYxODQiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQxNTkzLCAwLjEwODE5NiwgMC4xNjEzNTEsIDAuMjI5MDY5LCAwLjI5NzY5MiwgMC4zNjcxNzcsIDAuNDM2NjEyIiwgXAotICAgICAgICAgICIwLjA0MTU4LCAwLjEwODE4NywgMC4xNjEzMzEsIDAuMjI5MDMzLCAwLjI5NzY4OCwgMC4zNjcyODUsIDAuNDM2NTgyIiwgXAotICAgICAgICAgICIwLjA0MTU2MywgMC4xMDgwNzgsIDAuMTYxMzMzLCAwLjIyODg5OSwgMC4yOTc2ODYsIDAuMzY2NzE0LCAwLjQzNyIsIFwKLSAgICAgICAgICAiMC4wNDE2MDgsIDAuMTA4MTk0LCAwLjE2MTM0LCAwLjIyOTAwNiwgMC4yOTc2NzEsIDAuMzY2NzEzLCAwLjQzNjg1NiIsIFwKLSAgICAgICAgICAiMC4wNDE4MzMsIDAuMTA4Mjk0LCAwLjE2MTM2MywgMC4yMjkwOCwgMC4yOTc2NzYsIDAuMzY3MTc3LCAwLjQzNjU1OCIsIFwKLSAgICAgICAgICAiMC4wNDMxMTksIDAuMTA4ODE4LCAwLjE2MTY1OSwgMC4yMjkzNSwgMC4yOTc4NjIsIDAuMzY2OTI2LCAwLjQzNjg4NCIsIFwKLSAgICAgICAgICAiMC4wNDU0NDMsIDAuMTA5NzkyLCAwLjE2MjMyNywgMC4yMjk3MDYsIDAuMjk4MTk0LCAwLjM2NzI1OCwgMC40MzcxMjIiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDkxNTY5LCAwLjEzODMzOCwgMC4xNjg3NTYsIDAuMjA1MjA0LCAwLjI0MTAyNywgMC4yNzY3MzEsIDAuMzEyMzM2IiwgXAotICAgICAgICAgICIwLjEwMDU3NiwgMC4xNDcyNjgsIDAuMTc3NzQ2LCAwLjIxNDE0NCwgMC4yNDk5NzEsIDAuMjg1NjcsIDAuMzIxMjc4IiwgXAotICAgICAgICAgICIwLjExMTkyNiwgMC4xNTg2MzgsIDAuMTg5MDg0LCAwLjIyNTUzMiwgMC4yNjEzNTksIDAuMjk3MDY0LCAwLjMzMjY1MSIsIFwKLSAgICAgICAgICAiMC4xMjM1MzYsIDAuMTcwMTg3LCAwLjIwMDY0MSwgMC4yMzcwOSwgMC4yNzI5MjIsIDAuMzA4NjMxLCAwLjM0NDIxNiIsIFwKLSAgICAgICAgICAiMC4xMzUxMjQsIDAuMTgxNzQ2LCAwLjIxMjE5NywgMC4yNDg2NTIsIDAuMjg0NDgzLCAwLjMyMDE5MSwgMC4zNTU3ODEiLCBcCi0gICAgICAgICAgIjAuMTUzMDk2LCAwLjE5OTkyMSwgMC4yMzAzNiwgMC4yNjY3MjYsIDAuMzAyNTk2LCAwLjMzODI4OSwgMC4zNzM5MzQiLCBcCi0gICAgICAgICAgIjAuMTY3NTY4LCAwLjIxNDY0NywgMC4yNDUxMzYsIDAuMjgxNTU2LCAwLjMxNzQyNiwgMC4zNTMwODIsIDAuMzg4NzAzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0MjY0OCwgMC4xMTA5NzEsIDAuMTY1MTQ4LCAwLjIzNDA3NSwgMC4zMDM4MTMsIDAuMzc0NDU0LCAwLjQ0NDg5IiwgXAotICAgICAgICAgICIwLjA0MjcyNywgMC4xMTA5NTIsIDAuMTY1MTI2LCAwLjIzNDA4MSwgMC4zMDM3NzksIDAuMzc0NDY3LCAwLjQ0NTAyNCIsIFwKLSAgICAgICAgICAiMC4wNDI3MDYsIDAuMTEwOTc0LCAwLjE2NTE0NCwgMC4yMzQwNjgsIDAuMzAzODAzLCAwLjM3NDQ0MywgMC40NDUwOTciLCBcCi0gICAgICAgICAgIjAuMDQyNzI3LCAwLjExMDk5MiwgMC4xNjUxNDQsIDAuMjM0MDYsIDAuMzAzNzk2LCAwLjM3MzkxNywgMC40NDUwOTYiLCBcCi0gICAgICAgICAgIjAuMDQyNzY2LCAwLjExMTAxMywgMC4xNjUxNjMsIDAuMjM0MDc2LCAwLjMwMzgwNCwgMC4zNzQ0MzIsIDAuNDQ1MTI3IiwgXAotICAgICAgICAgICIwLjA0MzcsIDAuMTExNDIyLCAwLjE2NTUxOCwgMC4yMzQzMzYsIDAuMzAzOTM1LCAwLjM3NDEyMywgMC40NDUxMDQiLCBcCi0gICAgICAgICAgIjAuMDQ1NzYyLCAwLjExMjI5NSwgMC4xNjU5MzQsIDAuMjM0Njg3LCAwLjMwNDI1NSwgMC4zNzQ2MTIsIDAuNDQ1MjU5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlMwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDQ5NDksIDAuMTQ5ODU0LCAwLjE3ODk0NCwgMC4yMTM4NiwgMC4yNDgyMjYsIDAuMjgyNTA3LCAwLjMxNjcxOCIsIFwKLSAgICAgICAgICAiMC4xMTQ3NjgsIDAuMTU5NjUyLCAwLjE4ODc5NCwgMC4yMjM2MTYsIDAuMjU4MDQ0LCAwLjI5MjI5OCwgMC4zMjY1MzgiLCBcCi0gICAgICAgICAgIjAuMTI1ODMyLCAwLjE3MDc1LCAwLjE5OTg0MSwgMC4yMzQ3NTYsIDAuMjY5MDgyLCAwLjMwMzM4MiwgMC4zMzc1NjkiLCBcCi0gICAgICAgICAgIjAuMTM0ODA4LCAwLjE3OTY2OCwgMC4yMDg3NzgsIDAuMjQzNjUyLCAwLjI3ODA0MSwgMC4zMTIzMzUsIDAuMzQ2NTc1IiwgXAotICAgICAgICAgICIwLjE0MjEwMiwgMC4xODY5NjYsIDAuMjE2MTAzLCAwLjI1MDkyMywgMC4yODUzMTMsIDAuMzE5NjA3LCAwLjM1MzgzMiIsIFwKLSAgICAgICAgICAiMC4xNTE4OTUsIDAuMTk2ODkzLCAwLjIyNTkzNiwgMC4yNjA4NTIsIDAuMjk1MTMsIDAuMzI5NTMsIDAuMzYzNjI1IiwgXAotICAgICAgICAgICIwLjE1OTI3NiwgMC4yMDQxMjgsIDAuMjMzMzA1LCAwLjI2ODE5NiwgMC4zMDI2NTgsIDAuMzM2OTMzLCAwLjM3MTEzNyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDE3MDYsIDAuMTA4MjU5LCAwLjE2MTM2NSwgMC4yMjkwOSwgMC4yOTc2OTQsIDAuMzY3MjU5LCAwLjQzNjU2NyIsIFwKLSAgICAgICAgICAiMC4wNDE3NjUsIDAuMTA4MTUxLCAwLjE2MTI3LCAwLjIyOTA2NywgMC4yOTc2ODYsIDAuMzY2OTIsIDAuNDM2NTYzIiwgXAotICAgICAgICAgICIwLjA0MTc1LCAwLjEwODI0NywgMC4xNjEyODcsIDAuMjI4OTk0LCAwLjI5NzY5NSwgMC4zNjczMDIsIDAuNDM2NTM1IiwgXAotICAgICAgICAgICIwLjA0MTc1LCAwLjEwODIxMywgMC4xNjEzNDEsIDAuMjI4ODczLCAwLjI5NzcwMSwgMC4zNjY2NjIsIDAuNDM2MTQ0IiwgXAotICAgICAgICAgICIwLjA0MTU2NCwgMC4xMDgxNDQsIDAuMTYxMjcyLCAwLjIyODk4OCwgMC4yOTc1OTYsIDAuMzY2ODA3LCAwLjQzNjUzOSIsIFwKLSAgICAgICAgICAiMC4wNDE2NDcsIDAuMTA4MzYsIDAuMTYxNDc1LCAwLjIyOTE5MiwgMC4yOTc3NTUsIDAuMzY2NzU2LCAwLjQzNjYwOCIsIFwKLSAgICAgICAgICAiMC4wNDE5ODcsIDAuMTA4Mjg2LCAwLjE2MTUwMSwgMC4yMjkzNTMsIDAuMjk3ODU1LCAwLjM2NzE1NiwgMC40MzY3MDEiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTA5ODIzLCAwLjE1NjYzMywgMC4xODcxNzcsIDAuMjIzNTcxLCAwLjI1OTQ0NywgMC4yOTUxMzQsIDAuMzMwNzQiLCBcCi0gICAgICAgICAgIjAuMTIwMSwgMC4xNjY5NDEsIDAuMTk3NDc2LCAwLjIzMzg4NywgMC4yNjk3NjYsIDAuMzA1NDUyLCAwLjM0MTA1OCIsIFwKLSAgICAgICAgICAiMC4xMzE3NjEsIDAuMTc4NTkyLCAwLjIwOTA3OCwgMC4yNDU1NiwgMC4yODE0MTEsIDAuMzE3MDI3LCAwLjM1MjcxMSIsIFwKLSAgICAgICAgICAiMC4xNDEwOCwgMC4xODc4OTEsIDAuMjE4NDE2LCAwLjI1NDgwNCwgMC4yOTA2ODcsIDAuMzI2MzU4LCAwLjM2MTk3OSIsIFwKLSAgICAgICAgICAiMC4xNDk0OTgsIDAuMTk2Mjc0LCAwLjIyNjY3MSwgMC4yNjMxOTcsIDAuMjk4OTc0LCAwLjMzNDczOSwgMC4zNzAyODgiLCBcCi0gICAgICAgICAgIjAuMTYwMTksIDAuMjA3MjI5LCAwLjIzNzU5NiwgMC4yNzM5OTYsIDAuMzA5OTgxLCAwLjM0NTUzNywgMC4zODExNDQiLCBcCi0gICAgICAgICAgIjAuMTY4NzQ0LCAwLjIxNTQ5NiwgMC4yNDYwOTQsIDAuMjgyNTg3LCAwLjMxODQwNiwgMC4zNTQwNzksIDAuMzg5NzQyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0MzA0NCwgMC4xMTEyNTQsIDAuMTY1MjcyLCAwLjIzNDE0MywgMC4zMDM5MywgMC4zNzQwNzksIDAuNDQ1Mjc0IiwgXAotICAgICAgICAgICIwLjA0MzAyLCAwLjExMTI0OCwgMC4xNjUzODQsIDAuMjM0Mjg2LCAwLjMwMzkzMiwgMC4zNzQwNzMsIDAuNDQ1MTgiLCBcCi0gICAgICAgICAgIjAuMDQzMDk1LCAwLjExMTI0NSwgMC4xNjUzNjgsIDAuMjM0MjQ4LCAwLjMwMzk2NSwgMC4zNzQzMzgsIDAuNDQ1MjI0IiwgXAotICAgICAgICAgICIwLjA0MzAxNiwgMC4xMTExODEsIDAuMTY1MzM5LCAwLjIzNDI4OSwgMC4zMDM5NSwgMC4zNzQxODYsIDAuNDQ1MTk5IiwgXAotICAgICAgICAgICIwLjA0Mjg5LCAwLjExMTE3NywgMC4xNjUzNDEsIDAuMjM0MjUyLCAwLjMwMzk0NywgMC4zNzQwOCwgMC40NDUxNDUiLCBcCi0gICAgICAgICAgIjAuMDQzMzQ3LCAwLjExMTIyLCAwLjE2NTUzMSwgMC4yMzQzNTUsIDAuMzA0MDAyLCAwLjM3NDU4NywgMC40NDU3MjEiLCBcCi0gICAgICAgICAgIjAuMDQyOTU2LCAwLjExMTI4MiwgMC4xNjU0NjgsIDAuMjM0NDI0LCAwLjMwNDE0LCAwLjM3NDc0OCwgMC40NDU0NzEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDcwNTIsIDAuMDA3MjM2LCAwLjAwNzMwMywgMC4wMDczNDcsIDAuMDA3MzczLCAwLjAwNzM4NywgMC4wMDc0MDIiLCBcCi0gICAgICAgICAgIjAuMDA3MDMxLCAwLjAwNzIxMSwgMC4wMDcyODIsIDAuMDA3MzI3LCAwLjAwNzM1MSwgMC4wMDczNjcsIDAuMDA3MzgiLCBcCi0gICAgICAgICAgIjAuMDA3LCAwLjAwNzE4MiwgMC4wMDcyNTMsIDAuMDA3MywgMC4wMDczMjksIDAuMDA3MzQ4LCAwLjAwNzM2MSIsIFwKLSAgICAgICAgICAiMC4wMDcsIDAuMDA3MTY2LCAwLjAwNzIzNywgMC4wMDcyODYsIDAuMDA3MzE1LCAwLjAwNzMzMiwgMC4wMDczNDgiLCBcCi0gICAgICAgICAgIjAuMDA3MDAxLCAwLjAwNzE1LCAwLjAwNzIxOSwgMC4wMDcyNywgMC4wMDczMDEsIDAuMDA3MzIyLCAwLjAwNzMzNyIsIFwKLSAgICAgICAgICAiMC4wMDcwMDksIDAuMDA3MTI3LCAwLjAwNzE5NywgMC4wMDcyNDgsIDAuMDA3MjgxLCAwLjAwNzMwNywgMC4wMDczMjkiLCBcCi0gICAgICAgICAgIjAuMDA3MDU2LCAwLjAwNzEzOSwgMC4wMDcyMDUsIDAuMDA3MjUyLCAwLjAwNzI4NywgMC4wMDczMDksIDAuMDA3MzI5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA3ODUzLCAwLjAwODA4NSwgMC4wMDgxNzYsIDAuMDA4MjM2LCAwLjAwODI3MSwgMC4wMDgyOTMsIDAuMDA4MzA5IiwgXAotICAgICAgICAgICIwLjAwNzgzMSwgMC4wMDgwNjcsIDAuMDA4MTU5LCAwLjAwODIyMSwgMC4wMDgyNTYsIDAuMDA4MjgsIDAuMDA4Mjk2IiwgXAotICAgICAgICAgICIwLjAwNzgwMywgMC4wMDgwNDIsIDAuMDA4MTM2LCAwLjAwODIwMSwgMC4wMDgyMzksIDAuMDA4MjY0LCAwLjAwODI4MiIsIFwKLSAgICAgICAgICAiMC4wMDc3OTksIDAuMDA4MDI0LCAwLjAwODExOCwgMC4wMDgxODQsIDAuMDA4MjI0LCAwLjAwODI1LCAwLjAwODI2OSIsIFwKLSAgICAgICAgICAiMC4wMDc4NDQsIDAuMDA4MDI1LCAwLjAwODExNCwgMC4wMDgxOCwgMC4wMDgyMTksIDAuMDA4MjQ1LCAwLjAwODI2NCIsIFwKLSAgICAgICAgICAiMC4wMDc4MTEsIDAuMDA3OTg4LCAwLjAwODA4LCAwLjAwODE1LCAwLjAwODE5NSwgMC4wMDgyMjUsIDAuMDA4MjQ2IiwgXAotICAgICAgICAgICIwLjAwNzg0NCwgMC4wMDc5ODUsIDAuMDA4MDc1LCAwLjAwODE0LCAwLjAwODE4OCwgMC4wMDgyMTksIDAuMDA4MjQxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2ODMyLCAwLjAwNjk1OSwgMC4wMDcwMDcsIDAuMDA3MDM3LCAwLjAwNzA1NiwgMC4wMDcwNywgMC4wMDcwNzYiLCBcCi0gICAgICAgICAgIjAuMDA2NzkxLCAwLjAwNjkyOSwgMC4wMDY5OCwgMC4wMDcwMTMsIDAuMDA3MDI5LCAwLjAwNzA0MywgMC4wMDcwNTIiLCBcCi0gICAgICAgICAgIjAuMDA2NzYsIDAuMDA2OTAyLCAwLjAwNjk1OCwgMC4wMDY5OTIsIDAuMDA3MDEzLCAwLjAwNzAyNiwgMC4wMDcwMzYiLCBcCi0gICAgICAgICAgIjAuMDA2NzU5LCAwLjAwNjg5LCAwLjAwNjk0NywgMC4wMDY5NzgsIDAuMDA3MDAyLCAwLjAwNzAxNywgMC4wMDcwMjciLCBcCi0gICAgICAgICAgIjAuMDA2NzY3LCAwLjAwNjg3OCwgMC4wMDY5MzQsIDAuMDA2OTcsIDAuMDA2OTkzLCAwLjAwNzAxLCAwLjAwNzAxOSIsIFwKLSAgICAgICAgICAiMC4wMDY4MTEsIDAuMDA2ODg1LCAwLjAwNjkyOCwgMC4wMDY5NywgMC4wMDY5OTIsIDAuMDA3MDA4LCAwLjAwNzAxNiIsIFwKLSAgICAgICAgICAiMC4wMDY4MjIsIDAuMDA2ODc0LCAwLjAwNjkyLCAwLjAwNjk1OCwgMC4wMDY5ODMsIDAuMDA3MDAxLCAwLjAwNzAxNyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwODEzNCwgMC4wMDgzMzMsIDAuMDA4NDA5LCAwLjAwODQ2LCAwLjAwODQ4OSwgMC4wMDg1MDgsIDAuMDA4NTIxIiwgXAotICAgICAgICAgICIwLjAwODEyNiwgMC4wMDgzMjQsIDAuMDA4NCwgMC4wMDg0NSwgMC4wMDg0NzksIDAuMDA4NDk4LCAwLjAwODUxMSIsIFwKLSAgICAgICAgICAiMC4wMDgwOTksIDAuMDA4Mjk5LCAwLjAwODM3OCwgMC4wMDg0MzIsIDAuMDA4NDY0LCAwLjAwODQ4NCwgMC4wMDg0OTgiLCBcCi0gICAgICAgICAgIjAuMDA4MDk1LCAwLjAwODI4NCwgMC4wMDgzNjQsIDAuMDA4NDE5LCAwLjAwODQ1MiwgMC4wMDg0NzMsIDAuMDA4NDg5IiwgXAotICAgICAgICAgICIwLjAwODEwMiwgMC4wMDgyNzQsIDAuMDA4MzUzLCAwLjAwODQxLCAwLjAwODQ0NCwgMC4wMDg0NjcsIDAuMDA4NDgzIiwgXAotICAgICAgICAgICIwLjAwODExMSwgMC4wMDgyNTksIDAuMDA4MzM2LCAwLjAwODM5NSwgMC4wMDg0MzEsIDAuMDA4NDU2LCAwLjAwODQ3MyIsIFwKLSAgICAgICAgICAiMC4wMDgxNjEsIDAuMDA4MjYzLCAwLjAwODMzMywgMC4wMDgzOTIsIDAuMDA4NDI4LCAwLjAwODQ1MywgMC4wMDg0NzIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTMCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA5MDkzLCAwLjAwOTI3NSwgMC4wMDkzNDQsIDAuMDA5MzksIDAuMDA5NDE4LCAwLjAwOTQzNiwgMC4wMDk0NDciLCBcCi0gICAgICAgICAgIjAuMDA5MDg0LCAwLjAwOTI2NiwgMC4wMDkzMzUsIDAuMDA5MzgxLCAwLjAwOTQwOCwgMC4wMDk0MjYsIDAuMDA5NDM5IiwgXAotICAgICAgICAgICIwLjAwOTA5MSwgMC4wMDkyNzQsIDAuMDA5MzQzLCAwLjAwOTM5LCAwLjAwOTQxNywgMC4wMDk0MzQsIDAuMDA5NDQ4IiwgXAotICAgICAgICAgICIwLjAwOTA5MSwgMC4wMDkyNzYsIDAuMDA5MzQ2LCAwLjAwOTM5NCwgMC4wMDk0MiwgMC4wMDk0MzksIDAuMDA5NDUzIiwgXAotICAgICAgICAgICIwLjAwOTEwNSwgMC4wMDkyODksIDAuMDA5MzU4LCAwLjAwOTQwNCwgMC4wMDk0MzIsIDAuMDA5NDUxLCAwLjAwOTQ2MSIsIFwKLSAgICAgICAgICAiMC4wMDkxMTQsIDAuMDA5MzA0LCAwLjAwOTM3NCwgMC4wMDk0MjEsIDAuMDA5NDUyLCAwLjAwOTQ2OCwgMC4wMDk0OCIsIFwKLSAgICAgICAgICAiMC4wMDkxNjIsIDAuMDA5MzI0LCAwLjAwOTQwMiwgMC4wMDk0NSwgMC4wMDk0NzMsIDAuMDA5NDkxLCAwLjAwOTUwMSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNzYzNywgMC4wMDc4NDEsIDAuMDA3OTIzLCAwLjAwNzk3OSwgMC4wMDgwMTIsIDAuMDA4MDM0LCAwLjAwODA0OSIsIFwKLSAgICAgICAgICAiMC4wMDc2MjUsIDAuMDA3ODMsIDAuMDA3OTExLCAwLjAwNzk2NywgMC4wMDgsIDAuMDA4MDIxLCAwLjAwODAzNyIsIFwKLSAgICAgICAgICAiMC4wMDc2MywgMC4wMDc4MzgsIDAuMDA3OTE4LCAwLjAwNzk3NCwgMC4wMDgwMDcsIDAuMDA4MDI4LCAwLjAwODA0NCIsIFwKLSAgICAgICAgICAiMC4wMDc2MzksIDAuMDA3ODUsIDAuMDA3OTMxLCAwLjAwNzk4NywgMC4wMDgwMiwgMC4wMDgwNDIsIDAuMDA4MDU3IiwgXAotICAgICAgICAgICIwLjAwNzYzNCwgMC4wMDc4NDcsIDAuMDA3OTI4LCAwLjAwNzk4NSwgMC4wMDgwMTcsIDAuMDA4MDQsIDAuMDA4MDU1IiwgXAotICAgICAgICAgICIwLjAwNzY1LCAwLjAwNzg2OSwgMC4wMDc5NDgsIDAuMDA4MDA1LCAwLjAwODA0NCwgMC4wMDgwNjEsIDAuMDA4MDc3IiwgXAotICAgICAgICAgICIwLjAwNzY4NCwgMC4wMDc4OTYsIDAuMDA3OTc5LCAwLjAwODAyNywgMC4wMDgwNjYsIDAuMDA4MDg5LCAwLjAwODA5OSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBNWDJYTCAqCi0gKiAtLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoTVgyWEwpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4xMTI5MDM7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY4NzEyMjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2ODU1ODQ7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjg3MTIyOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDIxLCAwLjAwMDIxNSwgMC4wMDAyMTcsIDAuMDAwMjE3LCAwLjAwMDIxOCwgMC4wMDAyMTgsIDAuMDAwMjE4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjM0LCAwLjAwMDIyOCwgMC4wMDAyMjgsIDAuMDAwMjI4LCAwLjAwMDIyNywgMC4wMDAyMjcsIDAuMDAwMjI3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2ODc3Nzc7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjg2NDQxOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDY4Nzc3NzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyMTgsIDAuMDAwMjIsIDAuMDAwMjIxLCAwLjAwMDIyMSwgMC4wMDAyMjEsIDAuMDAwMjIyLCAwLjAwMDIyMiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDIzMSwgMC4wMDAyMjcsIDAuMDAwMjI3LCAwLjAwMDIyNywgMC4wMDAyMjcsIDAuMDAwMjI3LCAwLjAwMDIyNyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUzApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTMyMDE0OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTMyMDE0OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTMyMDAxOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDE2OCwgMC4wMDAxNCwgMC4wMDAxNDMsIDAuMDAwMTU1LCAwLjAwMDE3NCwgMC4wMDAxODMsIDAuMDAwMjExIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyMDc2LCAwLjAwMjA1NSwgMC4wMDIwNTQsIDAuMDAyMDYxLCAwLjAwMjA3MSwgMC4wMDIwOTcsIDAuMDAyMTE5Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMTQwNjY1OwotICAgIGZ1bmN0aW9uIDogIigoUzAgQikgKyAoIVMwIEEpKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTIwODQ2LCAwLjQ3NDE3NCwgMC43NTY2ODksIDEuMTA5NjgsIDEuNDYyNjUsIDEuODE1NjcsIDIuMTY4NzMiLCBcCi0gICAgICAgICAgIjAuMTI5NDYxLCAwLjQ4Mjc5MSwgMC43NjUyMzYsIDEuMTE4MjksIDEuNDcxMjMsIDEuODI0NjcsIDIuMTc3MzQiLCBcCi0gICAgICAgICAgIjAuMTQwMDM1LCAwLjQ5MzM3MywgMC43NzU4MzIsIDEuMTI4ODcsIDEuNDgxODgsIDEuODM0ODIsIDIuMTg3ODgiLCBcCi0gICAgICAgICAgIjAuMTUwMjgxLCAwLjUwMzYyMSwgMC43ODYwNzQsIDEuMTM5MTIsIDEuNDkyMTMsIDEuODQ1MDgsIDIuMTk4MTciLCBcCi0gICAgICAgICAgIjAuMTU5NTksIDAuNTEyOTM1LCAwLjc5NTM5LCAxLjE0ODQyLCAxLjUwMTQ0LCAxLjg1NDQ1LCAyLjIwNzQzIiwgXAotICAgICAgICAgICIwLjE3MzIwMSwgMC41MjY1NjYsIDAuODA5MDAyLCAxLjE2MjE0LCAxLjUxNTI5LCAxLjg2ODA0LCAyLjIyMTA5IiwgXAotICAgICAgICAgICIwLjE4MzgzNCwgMC41MzcxOTUsIDAuODE5NjQ0LCAxLjE3MjY1LCAxLjUyNTYzLCAxLjg3ODY1LCAyLjIzMjAzIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE1NDg1OCwgMC44Nzk0NjUsIDEuNDYwMjcsIDIuMTg2MDUsIDIuOTA4NTYsIDMuNjMzMjcsIDQuMzU4MDkiLCBcCi0gICAgICAgICAgIjAuMTU0OTM2LCAwLjg3NzM5OSwgMS40NjAwNCwgMi4xODMxMSwgMi45MTEzOCwgMy42MzAwMSwgNC4zNTc4NSIsIFwKLSAgICAgICAgICAiMC4xNTQ4OTMsIDAuODc4NTEsIDEuNDU4MjYsIDIuMTgzMjcsIDIuOTA4MiwgMy42MzcyOCwgNC4zNTg3OSIsIFwKLSAgICAgICAgICAiMC4xNTQ5NDksIDAuODc4NDYzLCAxLjQ1OTgzLCAyLjE4MzAyLCAyLjkwODE0LCAzLjYzNjgzLCA0LjM1NzY0IiwgXAotICAgICAgICAgICIwLjE1NTI1OCwgMC44NzgyNjEsIDEuNDU4NCwgMi4xODMzLCAyLjkwODQxLCAzLjYzMzI3LCA0LjM1Nzk5IiwgXAotICAgICAgICAgICIwLjE1NTc4NiwgMC44NzkyMiwgMS40NTk2NiwgMi4xODU2MSwgMi45MTE1OCwgMy42MzI1OCwgNC4zNTgyNSIsIFwKLSAgICAgICAgICAiMC4xNTYwOSwgMC44NzkyMjgsIDEuNDU5NzYsIDIuMTg1NDMsIDIuOTEwOSwgMy42MzI2NiwgNC4zNjMyIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEyMTQzNiwgMC40Njc0MDQsIDAuNzQzOTU1LCAxLjA4OTY0LCAxLjQzNTUxLCAxLjc4MDk5LCAyLjEyNjcxIiwgXAotICAgICAgICAgICIwLjEzMDAxNSwgMC40NzU5OTQsIDAuNzUyNTI3LCAxLjA5ODIzLCAxLjQ0NCwgMS43ODk1NywgMi4xMzUyOSIsIFwKLSAgICAgICAgICAiMC4xMzk3NTUsIDAuNDg1NzA4LCAwLjc2MjI4NywgMS4xMDc5OCwgMS40NTM2NywgMS43OTkzMSwgMi4xNDUiLCBcCi0gICAgICAgICAgIjAuMTQ4OTcyLCAwLjQ5NTAxLCAwLjc3MTU0NiwgMS4xMTcyMSwgMS40NjI4NywgMS44MDg3LCAyLjE1NDI3IiwgXAotICAgICAgICAgICIwLjE1NzM2MiwgMC41MDMzNTcsIDAuNzc5OTI1LCAxLjEyNTYxLCAxLjQ3MTMsIDEuODE2OTksIDIuMTYyOTEiLCBcCi0gICAgICAgICAgIjAuMTY5MzIyLCAwLjUxNTMzNiwgMC43OTE5MywgMS4xMzc1NywgMS40ODMyNywgMS44MjkwOCwgMi4xNzQ2MiIsIFwKLSAgICAgICAgICAiMC4xNzg1MSwgMC41MjQ1NTksIDAuODAxMTQ1LCAxLjE0NjgyLCAxLjQ5MjQ4LCAxLjgzODE0LCAyLjE4NDA1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE0OTAxNywgMC44NDE4OTcsIDEuMzk1MzUsIDIuMDkyODEsIDIuNzg4NjcsIDMuNDc2NTUsIDQuMTcxODkiLCBcCi0gICAgICAgICAgIjAuMTQ5MDE0LCAwLjg0MTc3MSwgMS4zOTY5OSwgMi4wOTI4NiwgMi43ODI5NiwgMy40NzY1NSwgNC4xNzE0MyIsIFwKLSAgICAgICAgICAiMC4xNDkwMjksIDAuODQxODUyLCAxLjM5NTQ1LCAyLjA4OTM4LCAyLjc4MzI4LCAzLjQ4MjU3LCA0LjE3MDMxIiwgXAotICAgICAgICAgICIwLjE0OTEzMiwgMC44NDAwODIsIDEuMzk1NTcsIDIuMDg5MzIsIDIuNzg3NTgsIDMuNDgzNiwgNC4xNzExOSIsIFwKLSAgICAgICAgICAiMC4xNDkzODQsIDAuODQxOTAxLCAxLjM5NjU2LCAyLjA5MDM5LCAyLjc4MjcxLCAzLjQ3NzA1LCA0LjE3NTg3IiwgXAotICAgICAgICAgICIwLjE0OTk2NiwgMC44NDEzMDksIDEuMzk3OTEsIDIuMDkyNTEsIDIuNzg1MzYsIDMuNDc2OTMsIDQuMTcyMDkiLCBcCi0gICAgICAgICAgIjAuMTUwMzgyLCAwLjg0MDk4LCAxLjM5Nzc5LCAyLjA5Mjc3LCAyLjc4NzYxLCAzLjQ4MDk5LCA0LjE3NTg5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEyMDQwOCwgMC40NzM2NjUsIDAuNzU2MTIsIDEuMTA5MDgsIDEuNDYyMTIsIDEuODE1MTcsIDIuMTY4MTEiLCBcCi0gICAgICAgICAgIjAuMTI5MzY3LCAwLjQ4MjYxMiwgMC43NjUwNDcsIDEuMTE4MSwgMS40NzExMSwgMS44MjQxNCwgMi4xNzcxNSIsIFwKLSAgICAgICAgICAiMC4xNDAwOCwgMC40OTMzNDgsIDAuNzc1Nzc4LCAxLjEyODg3LCAxLjQ4MTc1LCAxLjgzNDgxLCAyLjE4Nzg1IiwgXAotICAgICAgICAgICIwLjE1MDM1MSwgMC41MDM2MTEsIDAuNzg2MDE5LCAxLjEzOTA3LCAxLjQ5MjM3LCAxLjg0NTA4LCAyLjE5ODEzIiwgXAotICAgICAgICAgICIwLjE1OTg4NywgMC41MTMxMzYsIDAuNzk1NTk5LCAxLjE0ODU5LCAxLjUwMTYsIDEuODU0NjQsIDIuMjA3NzIiLCBcCi0gICAgICAgICAgIjAuMTczNTc0LCAwLjUyNjgzOCwgMC44MDkzMzUsIDEuMTYyMjgsIDEuNTE1MjksIDEuODY4NDEsIDIuMjIxMjkiLCBcCi0gICAgICAgICAgIjAuMTg0MTUxLCAwLjUzNzQyOSwgMC44MTk4NzUsIDEuMTcyODcsIDEuNTI1ODQsIDEuODc4ODYsIDIuMjMxOSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNTUwOTcsIDAuODc3OTM1LCAxLjQ1NzczLCAyLjE4MzIxLCAyLjkwODU4LCAzLjYzMjk5LCA0LjM2Mzc5IiwgXAotICAgICAgICAgICIwLjE1NTA2MywgMC44NzgyNzEsIDEuNDU4MTgsIDIuMTgxNjksIDIuOTA3OTMsIDMuNjM3NjYsIDQuMzU3OTEiLCBcCi0gICAgICAgICAgIjAuMTU1MDc3LCAwLjg3OTQwNSwgMS40NTgxOSwgMi4xODU5OCwgMi45MTE1NSwgMy42MzMxNiwgNC4zNTc4IiwgXAotICAgICAgICAgICIwLjE1NDk3OCwgMC44NzkyNTYsIDEuNDU5NzMsIDIuMTg1NTYsIDIuOTA2NjYsIDMuNjMzNTQsIDQuMzU3NiIsIFwKLSAgICAgICAgICAiMC4xNTUyOTUsIDAuODc5MTYyLCAxLjQ1ODE1LCAyLjE4MzAzLCAyLjkwODA5LCAzLjYzMjkzLCA0LjM2Mjk2IiwgXAotICAgICAgICAgICIwLjE1NTYzMiwgMC44NzkyMTIsIDEuNDU5ODQsIDIuMTgzMDUsIDIuOTA4MjYsIDMuNjM3MTEsIDQuMzU4MDYiLCBcCi0gICAgICAgICAgIjAuMTU2MDksIDAuODc4NDI4LCAxLjQ1OTczLCAyLjE4NTQ0LCAyLjkxMDg5LCAzLjYzMjczLCA0LjM2Mjc5Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEyMjI0NywgMC40NjgyMywgMC43NDQ4MzksIDEuMDkwNDgsIDEuNDM2MjcsIDEuNzgxODMsIDIuMTI3NTQiLCBcCi0gICAgICAgICAgIjAuMTMwNTU1LCAwLjQ3NjUyOSwgMC43NTMxMzQsIDEuMDk4OCwgMS40NDQ1NiwgMS43OTAxNSwgMi4xMzU4NSIsIFwKLSAgICAgICAgICAiMC4xNDAxOTgsIDAuNDg2MTc3LCAwLjc2Mjc1OCwgMS4xMDg0NiwgMS40NTQxNSwgMS43OTk4NywgMi4xNDU0OCIsIFwKLSAgICAgICAgICAiMC4xNDkzOTUsIDAuNDk1MzgsIDAuNzcxOTYyLCAxLjExNzY2LCAxLjQ2MzM1LCAxLjgwOTA2LCAyLjE1NDY5IiwgXAotICAgICAgICAgICIwLjE1NzgxMSwgMC41MDM4MjIsIDAuNzgwMzk2LCAxLjEyNjA5LCAxLjQ3MTc4LCAxLjgxNzQ3LCAyLjE2MzQxIiwgXAotICAgICAgICAgICIwLjE2OTc2OSwgMC41MTU4MTcsIDAuNzkyMzgyLCAxLjEzODA3LCAxLjQ4Mzc1LCAxLjgyOTYyLCAyLjE3NTEiLCBcCi0gICAgICAgICAgIjAuMTc5MDA3LCAwLjUyNTA2NCwgMC44MDE2MzcsIDEuMTQ3MywgMS40OTI5NywgMS44Mzg3MywgMi4xODQyOSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNDkxNjcsIDAuODQxODYxLCAxLjM5NTIzLCAyLjA5Mjc0LCAyLjc4ODM4LCAzLjQ4MDQzLCA0LjE3MDgxIiwgXAotICAgICAgICAgICIwLjE0OTA5NiwgMC44NDE1NjYsIDEuMzk4MDMsIDIuMDg4NjYsIDIuNzg4MTcsIDMuNDgwNzUsIDQuMTcwODQiLCBcCi0gICAgICAgICAgIjAuMTQ5MTc1LCAwLjg0MTkxNSwgMS4zOTY1NywgMi4wODkyOSwgMi43ODMwNiwgMy40ODI5NiwgNC4xNzI2NiIsIFwKLSAgICAgICAgICAiMC4xNDkyNywgMC44NDE5MTcsIDEuMzk2NzQsIDIuMDg5MTgsIDIuNzgyOTEsIDMuNDgyODUsIDQuMTczMDQiLCBcCi0gICAgICAgICAgIjAuMTQ5NDk4LCAwLjg0MTk3MywgMS4zOTY5OSwgMi4wOTE1NywgMi43ODQ1MiwgMy40NzY4NCwgNC4xNzU4NyIsIFwKLSAgICAgICAgICAiMC4xNTAwNiwgMC44Mzk3OCwgMS4zOTU0NSwgMi4wOTE3NCwgMi43ODUxOCwgMy40ODM5LCA0LjE3MzgyIiwgXAotICAgICAgICAgICIwLjE1MDU2LCAwLjg0MTQ2OCwgMS4zOTc5MSwgMi4wOTI2NCwgMi43ODc0NCwgMy40Nzg3OSwgNC4xNzUwNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTEzNzI3LCAwLjQ2NzA2OSwgMC43NDk0MywgMS4xMDI2MiwgMS40NTU0NywgMS44MDg0OCwgMi4xNjE1NCIsIFwKLSAgICAgICAgICAiMC4xMjI3MjgsIDAuNDc2MDIxLCAwLjc1ODQ0NCwgMS4xMTE1NCwgMS40NjQ0NiwgMS44MTc0OCwgMi4xNzA1NCIsIFwKLSAgICAgICAgICAiMC4xMzQzNDEsIDAuNDg3NjE2LCAwLjc3MDA3NywgMS4xMjMxLCAxLjQ3NjExLCAxLjgyOTEsIDIuMTgyMTUiLCBcCi0gICAgICAgICAgIjAuMTQ1MzQ2LCAwLjQ5ODYzNywgMC43ODEwODEsIDEuMTM0MywgMS40ODcwOSwgMS44NDAxMiwgMi4xOTMxNSIsIFwKLSAgICAgICAgICAiMC4xNTUxMjEsIDAuNTA4NDcxLCAwLjc5MDg2NCwgMS4xNDM4NiwgMS40OTY5NSwgMS44NDk4NywgMi4yMDI5NSIsIFwKLSAgICAgICAgICAiMC4xNjg3NjUsIDAuNTIyMDQ1LCAwLjgwNDQ4NCwgMS4xNTc1LCAxLjUxMDUyLCAxLjg2MzU2LCAyLjIxNjQ3IiwgXAotICAgICAgICAgICIwLjE3OTA5LCAwLjUzMjQwMiwgMC44MTQ4NjEsIDEuMTY3ODMsIDEuNTIwODUsIDEuODczOTYsIDIuMjI2ODQiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTU1MTE1LCAwLjg3NzU2NiwgMS40NTgyNCwgMi4xODYzNSwgMi45MTE4OSwgMy42MzMyMywgNC4zNTgiLCBcCi0gICAgICAgICAgIjAuMTU1MTI1LCAwLjg3ODExNCwgMS40NTgxOSwgMi4xODI1NCwgMi45MDgyOCwgMy42MzMwNywgNC4zNjM1MiIsIFwKLSAgICAgICAgICAiMC4xNTUxNDgsIDAuODc4MzM4LCAxLjQ1OTk2LCAyLjE4MzIxLCAyLjkwODI2LCAzLjYzMzQ5LCA0LjM1Nzg1IiwgXAotICAgICAgICAgICIwLjE1NTI4LCAwLjg3ODI3OSwgMS40NTg0MywgMi4xODU4NiwgMi45MTExOCwgMy42MzM0OSwgNC4zNTc5IiwgXAotICAgICAgICAgICIwLjE1NTU0NywgMC44NzkzMjgsIDEuNDU4MiwgMi4xODU0NiwgMi45MTEzNSwgMy42MzMsIDQuMzU3NTkiLCBcCi0gICAgICAgICAgIjAuMTU2MTksIDAuODc5MjI4LCAxLjQ1ODM3LCAyLjE4MzIyLCAyLjkwODM2LCAzLjYzMjc0LCA0LjM2MjQ2IiwgXAotICAgICAgICAgICIwLjE1NjgzMSwgMC44NzgwMzQsIDEuNDU5ODYsIDIuMTgzMSwgMi45MDc5NiwgMy42MzcxNiwgNC4zNTg1OCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTQ5ODUsIDAuNDYwOTE5LCAwLjczNzQ4NywgMS4wODMxNywgMS40Mjg4NiwgMS43NzQ1NCwgMi4xMjAzNCIsIFwKLSAgICAgICAgICAiMC4xMjM2OTMsIDAuNDY5NjQyLCAwLjc0NjIwOCwgMS4wOTE4OSwgMS40Mzc1OCwgMS43ODMyNywgMi4xMjkwMSIsIFwKLSAgICAgICAgICAiMC4xMzQ5MjEsIDAuNDgwOTAzLCAwLjc1NzQ2NCwgMS4xMDMxNywgMS40NDg5MiwgMS43OTQ1MSwgMi4xNDAxOSIsIFwKLSAgICAgICAgICAiMC4xNDU0MzksIDAuNDkxNDM0LCAwLjc2Nzk5NSwgMS4xMTM3MywgMS40NTkzNywgMS44MDUwNCwgMi4xNTA3MyIsIFwKLSAgICAgICAgICAiMC4xNTQ2MSwgMC41MDA2NzMsIDAuNzc3MTc3LCAxLjEyMjkzLCAxLjQ2ODYxLCAxLjgxNDMsIDIuMTU5OTUiLCBcCi0gICAgICAgICAgIjAuMTY3MTcsIDAuNTEzMjkzLCAwLjc4OTc0NSwgMS4xMzU1NSwgMS40ODEyNCwgMS44MjY5NiwgMi4xNzI1OSIsIFwKLSAgICAgICAgICAiMC4xNzY2MDksIDAuNTIyNzcyLCAwLjc5OTI2OCwgMS4xNDUwNywgMS40OTA4NiwgMS44MzYzNiwgMi4xODIwMSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNDkwNjEsIDAuODQxODU3LCAxLjM5NjE4LCAyLjA5MDcyLCAyLjc4MjY5LCAzLjQ3NywgNC4xNzU5NyIsIFwKLSAgICAgICAgICAiMC4xNDkwNzQsIDAuODQxODY3LCAxLjM5NjQxLCAyLjA5MSwgMi43ODI1NCwgMy40NzcsIDQuMTc2MDUiLCBcCi0gICAgICAgICAgIjAuMTQ5MTA4LCAwLjg0MTkzMywgMS4zOTUyMSwgMi4wODk0MywgMi43ODgxNSwgMy40NzYyLCA0LjE3MDc2IiwgXAotICAgICAgICAgICIwLjE0OTIyNiwgMC44NDE5NDEsIDEuMzk2MDksIDIuMDg5NjEsIDIuNzg3NiwgMy40NzU1LCA0LjE3MDgiLCBcCi0gICAgICAgICAgIjAuMTQ5NzA5LCAwLjg0MTg5OSwgMS4zOTUzMywgMi4wOTAzNywgMi43ODIxMywgMy40NzY4MSwgNC4xNzM2OCIsIFwKLSAgICAgICAgICAiMC4xNTA0MDEsIDAuODQxNTEzLCAxLjM5NzY1LCAyLjA4ODUxLCAyLjc4Mjk5LCAzLjQ3Nzc4LCA0LjE3MDUzIiwgXAotICAgICAgICAgICIwLjE1MDkzOCwgMC44NDE4MSwgMS4zOTc3NSwgMi4wOTMxMSwgMi43ODg2NSwgMy40Nzg2NiwgNC4xNzAyNiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTMzODE4LCAwLjQ4NzEzOSwgMC43Njk2MDYsIDEuMTIyNjMsIDEuNDc1NjEsIDEuODI4NjcsIDIuMTgxNjIiLCBcCi0gICAgICAgICAgIjAuMTQzNjE3LCAwLjQ5Njk0NiwgMC43Nzk0MzEsIDEuMTMyNDMsIDEuNDg1NDQsIDEuODM4NTEsIDIuMTkxMzkiLCBcCi0gICAgICAgICAgIjAuMTU0MjY2LCAwLjUwNzYwNCwgMC43OTAwNTksIDEuMTQzMSwgMS40OTYxMiwgMS44NDkxMiwgMi4yMDIxMSIsIFwKLSAgICAgICAgICAiMC4xNjI5NjQsIDAuNTE2Mjc2LCAwLjc5ODc1NywgMS4xNTE3NSwgMS41MDQ3NywgMS44NTc4MiwgMi4yMTEyNCIsIFwKLSAgICAgICAgICAiMC4xNjk4MzUsIDAuNTIzMTY1LCAwLjgwNTYwNywgMS4xNTg3NiwgMS41MTE3LCAxLjg2NDY0LCAyLjIxNzciLCBcCi0gICAgICAgICAgIjAuMTc5NDUyLCAwLjUzMjgzMiwgMC44MTUzNjIsIDEuMTY4MzEsIDEuNTIxNDMsIDEuODc0MjgsIDIuMjI3MjgiLCBcCi0gICAgICAgICAgIjAuMTg2NzEsIDAuNTQwMjQyLCAwLjgyMjYxLCAxLjE3NTkyLCAxLjUyODc0LCAxLjg4MTc5LCAyLjIzNDgiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTU1MSwgMC44Nzg0MTcsIDEuNDU4MTcsIDIuMTgzNTMsIDIuOTA4MjUsIDMuNjMzMTksIDQuMzYzNDQiLCBcCi0gICAgICAgICAgIjAuMTU1MDU2LCAwLjg3ODM2NywgMS40NTcyNywgMi4xODM1OCwgMi45MDg2NCwgMy42MzI5MSwgNC4zNjMwOCIsIFwKLSAgICAgICAgICAiMC4xNTQ4NzMsIDAuODc4NDM4LCAxLjQ1ODI2LCAyLjE4MzE4LCAyLjkwODAyLCAzLjYzNzUzLCA0LjM1ODgxIiwgXAotICAgICAgICAgICIwLjE1NTEwOSwgMC44NzgzMzIsIDEuNDU4MjEsIDIuMTgzMzksIDIuOTA4NTEsIDMuNjMyODgsIDQuMzU2MDYiLCBcCi0gICAgICAgICAgIjAuMTU0OTk2LCAwLjg3ODI5MywgMS40NTgwOSwgMi4xODU2NiwgMi45MDgsIDMuNjMyODcsIDQuMzU4MTciLCBcCi0gICAgICAgICAgIjAuMTU1MjAzLCAwLjg3ODM1MywgMS40NTk4OSwgMi4xODU0NSwgMi45MTExOCwgMy42MzY2NiwgNC4zNjI1NCIsIFwKLSAgICAgICAgICAiMC4xNTUxOTYsIDAuODc4NTAxLCAxLjQ1OTUzLCAyLjE4MTg3LCAyLjkxMTE5LCAzLjYzNjkyLCA0LjM1NzU2Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEzMzgxMiwgMC40Nzk4MTIsIDAuNzU2NDA2LCAxLjEwMjEsIDEuNDQ3NzksIDEuNzkzNDksIDIuMTM5MzUiLCBcCi0gICAgICAgICAgIjAuMTQzOTU5LCAwLjQ4OTk2MiwgMC43NjY1NDgsIDEuMTEyMjksIDEuNDU3OTEsIDEuODAzNjEsIDIuMTQ5MzUiLCBcCi0gICAgICAgICAgIjAuMTU1MjY0LCAwLjUwMTI2MSwgMC43Nzc4ODgsIDEuMTIzNTQsIDEuNDY5MzIsIDEuODE0ODksIDIuMTYwNjEiLCBcCi0gICAgICAgICAgIjAuMTY0NDc1LCAwLjUxMDQ3NSwgMC43ODcwNiwgMS4xMzI3NSwgMS40Nzg0NCwgMS44MjQxMywgMi4xNjk3OSIsIFwKLSAgICAgICAgICAiMC4xNzI2MiwgMC41MTg1ODQsIDAuNzk1MTQ5LCAxLjE0MDk2LCAxLjQ4NjU0LCAxLjgzMjIsIDIuMTc3ODgiLCBcCi0gICAgICAgICAgIjAuMTgzMjMzLCAwLjUyOTQzMSwgMC44MDYwNjYsIDEuMTUxNzIsIDEuNDk3MzcsIDEuODQyOTcsIDIuMTg4NzIiLCBcCi0gICAgICAgICAgIjAuMTkxNTIsIDAuNTM3NjExLCAwLjgxNDIyNSwgMS4xNjAwMywgMS41MDU3LCAxLjg1MTM0LCAyLjE5NzA3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE0OTE1NSwgMC44NDIwMDIsIDEuMzk1NjQsIDIuMDg5MTQsIDIuNzgzMDMsIDMuNDc3NDgsIDQuMTc1OTkiLCBcCi0gICAgICAgICAgIjAuMTQ5MTU4LCAwLjg0MTk5NywgMS4zOTU2MiwgMi4wOTMxNCwgMi43ODYzOSwgMy40NzY4MywgNC4xNzYwOCIsIFwKLSAgICAgICAgICAiMC4xNDkxNDEsIDAuODQxOTM0LCAxLjM5Nzc4LCAyLjA4OTA2LCAyLjc4ODMsIDMuNDgwNDcsIDQuMTcwOTQiLCBcCi0gICAgICAgICAgIjAuMTQ5MTQ2LCAwLjg0MTk1NywgMS4zOTU0NSwgMi4wOTA1NywgMi43ODI1NCwgMy40NzY5NiwgNC4xNzYyIiwgXAotICAgICAgICAgICIwLjE0OTI1NywgMC44NDE5MSwgMS4zOTcxOCwgMi4wODc2NywgMi43ODc3LCAzLjQ4MDkzLCA0LjE3MDMxIiwgXAotICAgICAgICAgICIwLjE0OTM0OSwgMC44NDEwMDcsIDEuMzk3MDQsIDIuMDkyODQsIDIuNzg4MTYsIDMuNDgyODYsIDQuMTc2MTUiLCBcCi0gICAgICAgICAgIjAuMTQ5MzQ0LCAwLjg0MTAxOSwgMS4zOTcyMSwgMi4wODY5OCwgMi43ODc3NSwgMy40ODI4MiwgNC4xNzU4NCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTQxNiwgMC4wMDE0MjQsIDAuMDAxNDI1LCAwLjAwMTQyNSwgMC4wMDE0MjUsIDAuMDAxNDI1LCAwLjAwMTQyNSIsIFwKLSAgICAgICAgICAiMC4wMDEzOTUsIDAuMDAxNDA0LCAwLjAwMTQwNCwgMC4wMDE0MDUsIDAuMDAxNDA1LCAwLjAwMTQwNSwgMC4wMDE0MDUiLCBcCi0gICAgICAgICAgIjAuMDAxMzg0LCAwLjAwMTM5MywgMC4wMDEzOTQsIDAuMDAxMzk0LCAwLjAwMTM5NSwgMC4wMDEzOTUsIDAuMDAxMzk1IiwgXAotICAgICAgICAgICIwLjAwMTM3OCwgMC4wMDEzODksIDAuMDAxMzksIDAuMDAxMzksIDAuMDAxMzkxLCAwLjAwMTM5MSwgMC4wMDEzOTEiLCBcCi0gICAgICAgICAgIjAuMDAxMzc2LCAwLjAwMTM4OCwgMC4wMDEzODksIDAuMDAxMzksIDAuMDAxMzksIDAuMDAxMzksIDAuMDAxMzkiLCBcCi0gICAgICAgICAgIjAuMDAxMzc5LCAwLjAwMTM5MiwgMC4wMDEzOTMsIDAuMDAxMzkzLCAwLjAwMTM5NCwgMC4wMDEzOTQsIDAuMDAxMzk0IiwgXAotICAgICAgICAgICIwLjAwMTM4MywgMC4wMDEzOTcsIDAuMDAxMzk4LCAwLjAwMTQsIDAuMDAxNCwgMC4wMDE0LCAwLjAwMTQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI0MjgsIDAuMDAyNDM3LCAwLjAwMjQzOCwgMC4wMDI0MzgsIDAuMDAyNDM5LCAwLjAwMjQzOSwgMC4wMDI0MzkiLCBcCi0gICAgICAgICAgIjAuMDAyNDE2LCAwLjAwMjQyNSwgMC4wMDI0MjYsIDAuMDAyNDI3LCAwLjAwMjQyNywgMC4wMDI0MjcsIDAuMDAyNDI3IiwgXAotICAgICAgICAgICIwLjAwMjQwOCwgMC4wMDI0MTksIDAuMDAyNDIsIDAuMDAyNDIxLCAwLjAwMjQyMSwgMC4wMDI0MjEsIDAuMDAyNDIxIiwgXAotICAgICAgICAgICIwLjAwMjQwNSwgMC4wMDI0MTcsIDAuMDAyNDE4LCAwLjAwMjQxOSwgMC4wMDI0MTksIDAuMDAyNDE5LCAwLjAwMjQyIiwgXAotICAgICAgICAgICIwLjAwMjQwMiwgMC4wMDI0MTcsIDAuMDAyNDE4LCAwLjAwMjQxOSwgMC4wMDI0MTksIDAuMDAyNDE5LCAwLjAwMjQxOSIsIFwKLSAgICAgICAgICAiMC4wMDI0MDIsIDAuMDAyNDE4LCAwLjAwMjQyLCAwLjAwMjQyLCAwLjAwMjQyMSwgMC4wMDI0MjEsIDAuMDAyNDIxIiwgXAotICAgICAgICAgICIwLjAwMjQwNCwgMC4wMDI0MjIsIDAuMDAyNDI0LCAwLjAwMjQyNSwgMC4wMDI0MjUsIDAuMDAyNDI2LCAwLjAwMjQyNiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTE5NiwgMC4wMDExOTgsIDAuMDAxMTk4LCAwLjAwMTE5NywgMC4wMDExOTgsIDAuMDAxMTk4LCAwLjAwMTE5OCIsIFwKLSAgICAgICAgICAiMC4wMDExNzcsIDAuMDAxMTc4LCAwLjAwMTE3OCwgMC4wMDExNzgsIDAuMDAxMTc4LCAwLjAwMTE3OCwgMC4wMDExNzgiLCBcCi0gICAgICAgICAgIjAuMDAxMTY3LCAwLjAwMTE3LCAwLjAwMTE3LCAwLjAwMTE3LCAwLjAwMTE3LCAwLjAwMTE2OSwgMC4wMDExNyIsIFwKLSAgICAgICAgICAiMC4wMDExNjMsIDAuMDAxMTY3LCAwLjAwMTE2NiwgMC4wMDExNjcsIDAuMDAxMTY3LCAwLjAwMTE2NiwgMC4wMDExNjciLCBcCi0gICAgICAgICAgIjAuMDAxMTYxLCAwLjAwMTE2NSwgMC4wMDExNjUsIDAuMDAxMTY1LCAwLjAwMTE2NiwgMC4wMDExNjYsIDAuMDAxMTY2IiwgXAotICAgICAgICAgICIwLjAwMTE2MywgMC4wMDExNjgsIDAuMDAxMTY4LCAwLjAwMTE2OCwgMC4wMDExNjgsIDAuMDAxMTY5LCAwLjAwMTE2OSIsIFwKLSAgICAgICAgICAiMC4wMDExNjgsIDAuMDAxMTc0LCAwLjAwMTE3NCwgMC4wMDExNzUsIDAuMDAxMTc1LCAwLjAwMTE3NCwgMC4wMDExNzQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI2MzYsIDAuMDAyNjQsIDAuMDAyNjQxLCAwLjAwMjY0MSwgMC4wMDI2NDEsIDAuMDAyNjQxLCAwLjAwMjY0MSIsIFwKLSAgICAgICAgICAiMC4wMDI2MjQsIDAuMDAyNjI5LCAwLjAwMjYyOSwgMC4wMDI2MjksIDAuMDAyNjMsIDAuMDAyNjMsIDAuMDAyNjMiLCBcCi0gICAgICAgICAgIjAuMDAyNjE4LCAwLjAwMjYyNCwgMC4wMDI2MjQsIDAuMDAyNjI0LCAwLjAwMjYyNSwgMC4wMDI2MjUsIDAuMDAyNjI1IiwgXAotICAgICAgICAgICIwLjAwMjYxNSwgMC4wMDI2MjIsIDAuMDAyNjIzLCAwLjAwMjYyMywgMC4wMDI2MjMsIDAuMDAyNjIzLCAwLjAwMjYyMyIsIFwKLSAgICAgICAgICAiMC4wMDI2MTQsIDAuMDAyNjIyLCAwLjAwMjYyMywgMC4wMDI2MjMsIDAuMDAyNjIzLCAwLjAwMjYyNCwgMC4wMDI2MjQiLCBcCi0gICAgICAgICAgIjAuMDAyNjE1LCAwLjAwMjYyNSwgMC4wMDI2MjYsIDAuMDAyNjI3LCAwLjAwMjYyNywgMC4wMDI2MjcsIDAuMDAyNjI3IiwgXAotICAgICAgICAgICIwLjAwMjYxOCwgMC4wMDI2MywgMC4wMDI2MzEsIDAuMDAyNjMxLCAwLjAwMjYzMiwgMC4wMDI2MzIsIDAuMDAyNjMyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUzAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzQ5OCwgMC4wMDM1MDcsIDAuMDAzNTA5LCAwLjAwMzUwOSwgMC4wMDM1MDksIDAuMDAzNTA5LCAwLjAwMzUwOSIsIFwKLSAgICAgICAgICAiMC4wMDM0NzksIDAuMDAzNDg4LCAwLjAwMzQ4OSwgMC4wMDM0OSwgMC4wMDM0ODgsIDAuMDAzNDg4LCAwLjAwMzQ5IiwgXAotICAgICAgICAgICIwLjAwMzQ3NywgMC4wMDM0ODYsIDAuMDAzNDg3LCAwLjAwMzQ4OCwgMC4wMDM0ODgsIDAuMDAzNDg4LCAwLjAwMzQ4OCIsIFwKLSAgICAgICAgICAiMC4wMDM0NzYsIDAuMDAzNDg1LCAwLjAwMzQ4NiwgMC4wMDM0ODcsIDAuMDAzNDg2LCAwLjAwMzQ4NywgMC4wMDM0ODciLCBcCi0gICAgICAgICAgIjAuMDAzNDg0LCAwLjAwMzQ5MiwgMC4wMDM0OTQsIDAuMDAzNDk0LCAwLjAwMzQ5NCwgMC4wMDM0OTQsIDAuMDAzNDk0IiwgXAotICAgICAgICAgICIwLjAwMzUsIDAuMDAzNTExLCAwLjAwMzUxMSwgMC4wMDM1MTIsIDAuMDAzNTA3LCAwLjAwMzUxMiwgMC4wMDM1MTIiLCBcCi0gICAgICAgICAgIjAuMDAzNTE1LCAwLjAwMzUyNiwgMC4wMDM1MjUsIDAuMDAzNTI4LCAwLjAwMzUyNiwgMC4wMDM1MjksIDAuMDAzNTI4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyMjkxLCAwLjAwMjI5OSwgMC4wMDIzLCAwLjAwMjMwMSwgMC4wMDIzMDEsIDAuMDAyMzAxLCAwLjAwMjMwMSIsIFwKLSAgICAgICAgICAiMC4wMDIyNjYsIDAuMDAyMjc1LCAwLjAwMjI3NiwgMC4wMDIyNzYsIDAuMDAyMjc2LCAwLjAwMjI3NiwgMC4wMDIyNzciLCBcCi0gICAgICAgICAgIjAuMDAyMjYyLCAwLjAwMjI3LCAwLjAwMjI3MSwgMC4wMDIyNzIsIDAuMDAyMjcyLCAwLjAwMjI3MiwgMC4wMDIyNzIiLCBcCi0gICAgICAgICAgIjAuMDAyMjcxLCAwLjAwMjI4LCAwLjAwMjI4LCAwLjAwMjI4MSwgMC4wMDIyODEsIDAuMDAyMjgxLCAwLjAwMjI4MSIsIFwKLSAgICAgICAgICAiMC4wMDIyNjksIDAuMDAyMjc3LCAwLjAwMjI3NywgMC4wMDIyNzgsIDAuMDAyMjc4LCAwLjAwMjI3OCwgMC4wMDIyNzgiLCBcCi0gICAgICAgICAgIjAuMDAyMjg4LCAwLjAwMjI5OCwgMC4wMDIyOTksIDAuMDAyMywgMC4wMDIyOTgsIDAuMDAyMjk4LCAwLjAwMjMiLCBcCi0gICAgICAgICAgIjAuMDAyMzEyLCAwLjAwMjMxMywgMC4wMDIzMjIsIDAuMDAyMzE0LCAwLjAwMjMyMiwgMC4wMDIzMjMsIDAuMDAyMzE1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IE1YM1gxICoKLSAqIC0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChNWDNYMSkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjIwODg3MTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjkwODk7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjg5NDM7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjkwODk7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNjkyLCAwLjAwMDY3MiwgMC4wMDA2NjIsIDAuMDAwNjU4LCAwLjAwMDY1OSwgMC4wMDA2NjIsIDAuMDAwNjY4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyMjExLCAwLjAwMjE5OSwgMC4wMDIxOTMsIDAuMDAyMTkyLCAwLjAwMjE5MSwgMC4wMDIxOTUsIDAuMDAyMiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjM0Njk0OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYzMzMxNjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2MzQ2OTQ7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjE3LCAwLjAwMDIyLCAwLjAwMDIyMSwgMC4wMDAyMjEsIDAuMDAwMjIxLCAwLjAwMDIyMiwgMC4wMDAyMjIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyMzEsIDAuMDAwMjI4LCAwLjAwMDIyNywgMC4wMDAyMjcsIDAuMDAwMjI3LCAwLjAwMDIyNywgMC4wMDAyMjciKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEMpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYzMzMxODsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MzE3ODsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2MzMzMTg7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjE4LCAwLjAwMDIyMSwgMC4wMDAyMjEsIDAuMDAwMjIyLCAwLjAwMDIyMiwgMC4wMDAyMjIsIDAuMDAwMjIyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjMyLCAwLjAwMDIyOCwgMC4wMDAyMjcsIDAuMDAwMjI3LCAwLjAwMDIyNywgMC4wMDAyMjcsIDAuMDAwMjI3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxMjIxODI7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxMjIxODI7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxMjIxNjI7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMTczLCAwLjAwMDE0NSwgMC4wMDAxNDgsIDAuMDAwMTUxLCAwLjAwMDE2OSwgMC4wMDAxOSwgMC4wMDAyMTYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDE5NjUsIDAuMDAxOTQ1LCAwLjAwMTk0MywgMC4wMDE5NSwgMC4wMDE5NjEsIDAuMDAxOTg4LCAwLjAwMjAxIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTMSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxMjU5Mzk7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxMjU5MDg7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxMjU5Mzk7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMTgsIDAuMDAwMTUxLCAwLjAwMDE1MiwgMC4wMDAxNTgsIDAuMDAwMTcxLCAwLjAwMDE5NywgMC4wMDAyMjIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDIwMTcsIDAuMDAxOTk1LCAwLjAwMiwgMC4wMDIwMDMsIDAuMDAyMDExLCAwLjAwMjAzMywgMC4wMDIwNTYiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4yNTg0MjsKLSAgICBmdW5jdGlvbiA6ICIoKFMxIEMpICsgKCFTMSAoKFMwIEIpICsgKCFTMCBBKSkpKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTM5MjY4LCAwLjE2NTE2NiwgMC4zMDUxMDcsIDAuNDI3ODY3LCAwLjU5MTU2MiwgMC45MTg2NCwgMS4xMjMxOCIsIFwKLSAgICAgICAgICAiMC4xNDgwMjgsIDAuMTczODk5LCAwLjMxMzgzOCwgMC40MzY1OTIsIDAuNjAwMjgxLCAwLjkyNzQwMiwgMS4xMzIwMSIsIFwKLSAgICAgICAgICAiMC4xNTg3NCwgMC4xODQ2MzMsIDAuMzI0NTgyLCAwLjQ0NzMzMywgMC42MTEwNTcsIDAuOTM4MTc3LCAxLjE0MjY0IiwgXAotICAgICAgICAgICIwLjE2OTcxLCAwLjE5NTU4NCwgMC4zMzU1NjYsIDAuNDU4MzIzLCAwLjYyMjA0NCwgMC45NDkxMjgsIDEuMTUzNjEiLCBcCi0gICAgICAgICAgIjAuMTc5OTk5LCAwLjIwNTg3MywgMC4zNDU4NDYsIDAuNDY4NjA0LCAwLjYzMjIzOCwgMC45NTk1NDcsIDEuMTYzOSIsIFwKLSAgICAgICAgICAiMC4xOTU3NjcsIDAuMjIxNjU0LCAwLjM2MTYyMSwgMC40ODQ0MTIsIDAuNjQ4MDk3LCAwLjk3NTE2NywgMS4xNzk3IiwgXAotICAgICAgICAgICIwLjIwOTIyNCwgMC4yMzUxODgsIDAuMzc1MjEsIDAuNDk3OTY0LCAwLjY2MTcxNCwgMC45ODg3NjIsIDEuMTkzMjciKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTAyODgyLCAwLjE1MDkzNCwgMC40MzEyMjMsIDAuNjgzMTUzLCAxLjAxOTk4LCAxLjY5MTg4LCAyLjExMiIsIFwKLSAgICAgICAgICAiMC4xMDI5LCAwLjE1MDkyOCwgMC40MzEyNDUsIDAuNjgyODEyLCAxLjAxOTg5LCAxLjY5MTY1LCAyLjExNTcyIiwgXAotICAgICAgICAgICIwLjEwMjgzNywgMC4xNTA5MzEsIDAuNDMxMTczLCAwLjY4MjI2NywgMS4wMTk5NSwgMS42OTA3NywgMi4xMTE0IiwgXAotICAgICAgICAgICIwLjEwMjkxOSwgMC4xNTA5NDEsIDAuNDMxNDg4LCAwLjY4MjI2MiwgMS4wMTk5MywgMS42OTM4MiwgMi4xMTE1MiIsIFwKLSAgICAgICAgICAiMC4xMDI5MzksIDAuMTUwOTU1LCAwLjQzMTQ5OSwgMC42ODIyNiwgMS4wMTkyNywgMS42OTQxNiwgMi4xMTUzMyIsIFwKLSAgICAgICAgICAiMC4xMDMyMjIsIDAuMTUxMTM4LCAwLjQzMTIxNSwgMC42ODE5ODIsIDEuMDE5ODksIDEuNjkxNywgMi4xMTE4MyIsIFwKLSAgICAgICAgICAiMC4xMDM2MTEsIDAuMTUxNDM0LCAwLjQzMTMyOCwgMC42ODI5NTUsIDEuMDE5NzcsIDEuNjkxODcsIDIuMTExOTMiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTQ0MjI3LCAwLjE3MDkwMSwgMC4zMTI1NjgsIDAuNDM2MzAyLCAwLjYwMTI1NSwgMC45MzEwNjQsIDEuMTM3MDkiLCBcCi0gICAgICAgICAgIjAuMTUyNzE4LCAwLjE3OTM3NywgMC4zMjEwNTMsIDAuNDQ0Nzc2LCAwLjYwOTc3MSwgMC45Mzk0NzksIDEuMTQ1NTciLCBcCi0gICAgICAgICAgIjAuMTYyNTc1LCAwLjE4OTIyMiwgMC4zMzA5MTQsIDAuNDU0NjM4LCAwLjYxOTYzOCwgMC45NDkzNDUsIDEuMTU1NDQiLCBcCi0gICAgICAgICAgIjAuMTcyMjY0LCAwLjE5ODksIDAuMzQwNTk1LCAwLjQ2NDM2NiwgMC42MjkzNzksIDAuOTU5MDIyLCAxLjE2NTE0IiwgXAotICAgICAgICAgICIwLjE4MTY5NCwgMC4yMDgzNzIsIDAuMzUwMDQ2LCAwLjQ3Mzc3OCwgMC42Mzg4MjYsIDAuOTY4NDg1LCAxLjE3NDYiLCBcCi0gICAgICAgICAgIjAuMTk1ODM0LCAwLjIyMjU0LCAwLjM2NDIyMiwgMC40ODc5NjIsIDAuNjUyOTI4LCAwLjk4MjczMiwgMS4xODg4NCIsIFwKLSAgICAgICAgICAiMC4yMDczODIsIDAuMjM0MjExLCAwLjM3NTkzMywgMC40OTk2NzUsIDAuNjY0NjQ1LCAwLjk5NDQ0LCAxLjIwMDY0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwNDE0NCwgMC4xNTE1NDQsIDAuNDI3MDUzLCAwLjY3NDA2NywgMS4wMDQ4LCAxLjY2NzExLCAyLjA4NjQ5IiwgXAotICAgICAgICAgICIwLjEwNDM0MiwgMC4xNTE1NTIsIDAuNDI2Nzk2LCAwLjY3MzMzMywgMS4wMDQyNCwgMS42NzA4MywgMi4wODI4NCIsIFwKLSAgICAgICAgICAiMC4xMDQzNTcsIDAuMTUxNTU0LCAwLjQyNjc1LCAwLjY3MzgwNSwgMS4wMDQyNiwgMS42NzA4NSwgMi4wODI4MSIsIFwKLSAgICAgICAgICAiMC4xMDQzNzgsIDAuMTUxNTM1LCAwLjQyNjUyNywgMC42NzQ3NDUsIDEuMDAzODUsIDEuNjcwNzUsIDIuMDgzMiIsIFwKLSAgICAgICAgICAiMC4xMDQzOCwgMC4xNTE1NTQsIDAuNDI2MjY2LCAwLjY3NDQ4NSwgMS4wMDMwNywgMS42NzAxMywgMi4wODMyNSIsIFwKLSAgICAgICAgICAiMC4xMDQ3NzIsIDAuMTUxODQxLCAwLjQyNjg2MSwgMC42NzQ0OTcsIDEuMDA2MzEsIDEuNjcxMTMsIDIuMDgxNTMiLCBcCi0gICAgICAgICAgIjAuMTA1MTc2LCAwLjE1MjExNCwgMC40MjY3ODgsIDAuNjc0NTY1LCAxLjAwNjM2LCAxLjY3MTA5LCAyLjA4MDEzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEzOTcyMSwgMC4xNjU2MDMsIDAuMzA1NTYzLCAwLjQyODMyNiwgMC41OTIwMDgsIDAuOTE5MTgyLCAxLjEyMzc2IiwgXAotICAgICAgICAgICIwLjE0ODY1NCwgMC4xNzQ1NTcsIDAuMzE0NTIxLCAwLjQzNzI3NywgMC42MDEwMDUsIDAuOTI4MDQ3LCAxLjEzMjU4IiwgXAotICAgICAgICAgICIwLjE1OTUyMSwgMC4xODU0MDUsIDAuMzI1MzgyLCAwLjQ0ODE0MywgMC42MTE4NzQsIDAuOTM4OTQ0LCAxLjE0MzQ0IiwgXAotICAgICAgICAgICIwLjE3MDQ5NSwgMC4xOTYzNzYsIDAuMzM2Mzg1LCAwLjQ1OTExNiwgMC42MjI4MTYsIDAuOTQ5OTU0LCAxLjE1NDQ1IiwgXAotICAgICAgICAgICIwLjE4MDg0NSwgMC4yMDY3MjUsIDAuMzQ2NzI3LCAwLjQ2OTQ4MSwgMC42MzMxNzcsIDAuOTYwMzIzLCAxLjE2NDciLCBcCi0gICAgICAgICAgIjAuMTk2ODM2LCAwLjIyMjc1LCAwLjM2Mjc0NiwgMC40ODU1MDgsIDAuNjQ5MTU4LCAwLjk3NjM0LCAxLjE4MDg5IiwgXAotICAgICAgICAgICIwLjIxMDIzNSwgMC4yMzYyMDIsIDAuMzc2MjA0LCAwLjQ5ODk3NywgMC42NjI2OTQsIDAuOTg5Nzk0LCAxLjE5NDI5Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwMjkzOSwgMC4xNTA5NjgsIDAuNDMxMjcxLCAwLjY4MjI3NywgMS4wMTk5OCwgMS42OTEwNCwgMi4xMTEzNCIsIFwKLSAgICAgICAgICAiMC4xMDI4NzYsIDAuMTUwOTcsIDAuNDMxMjE2LCAwLjY4MjI5NiwgMS4wMTk5OSwgMS42OTM4MiwgMi4xMTE2OSIsIFwKLSAgICAgICAgICAiMC4xMDI5MzcsIDAuMTUwOTY1LCAwLjQzMTUyMywgMC42ODIyOTIsIDEuMDE5OTksIDEuNjkxODYsIDIuMTExNCIsIFwKLSAgICAgICAgICAiMC4xMDI5MzgsIDAuMTUwOTY1LCAwLjQzMTY5OSwgMC42ODI4NjYsIDEuMDE4MTcsIDEuNjkxNjUsIDIuMTExOSIsIFwKLSAgICAgICAgICAiMC4xMDI5NjMsIDAuMTUwOTc4LCAwLjQzMTA4MSwgMC42ODIyNTEsIDEuMDE4MDUsIDEuNjkxNjgsIDIuMTE1MTUiLCBcCi0gICAgICAgICAgIjAuMTAzMTgyLCAwLjE1MTE4LCAwLjQzMTYxNywgMC42ODIyMjQsIDEuMDE4MzQsIDEuNjkxNjUsIDIuMTE1NTMiLCBcCi0gICAgICAgICAgIjAuMTAzNjIxLCAwLjE1MTQ1NiwgMC40MzE2NjUsIDAuNjgyOTk1LCAxLjAxOTc4LCAxLjY5MTY2LCAyLjExMTkyIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE0NTg2NCwgMC4xNzI1NTEsIDAuMzE0MjYyLCAwLjQzODAxNSwgMC42MDMwNjUsIDAuOTMyNzE2LCAxLjEzODg0IiwgXAotICAgICAgICAgICIwLjE1NDMyNCwgMC4xODA5ODYsIDAuMzIyNzE5LCAwLjQ0NjQ2OCwgMC42MTE1MjQsIDAuOTQxMTc1LCAxLjE0NzI5IiwgXAotICAgICAgICAgICIwLjE2NDEwNiwgMC4xOTA3NzIsIDAuMzMyNTIzLCAwLjQ1NjI2MywgMC42MjEyNjksIDAuOTUwOTk2LCAxLjE1NzA5IiwgXAotICAgICAgICAgICIwLjE3Mzc0NSwgMC4yMDA0MDUsIDAuMzQyMTQ1LCAwLjQ2NTkwOCwgMC42MzA5NiwgMC45NjA2MTgsIDEuMTY2NzIiLCBcCi0gICAgICAgICAgIjAuMTgzMTIxLCAwLjIwOTc3NywgMC4zNTE1MywgMC40NzUyNzEsIDAuNjQwMzQzLCAwLjk2OTk5OCwgMS4xNzYxMiIsIFwKLSAgICAgICAgICAiMC4xOTc0MTYsIDAuMjI0MTE3LCAwLjM2NTg1MiwgMC40ODk2MDYsIDAuNjU0NjcxLCAwLjk4NDMzLCAxLjE5MDQ0IiwgXAotICAgICAgICAgICIwLjIwODgzNiwgMC4yMzU2MjUsIDAuMzc3NDM5LCAwLjUwMTE3NiwgMC42NjYxNzQsIDAuOTk1OTM2LCAxLjIwMiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDQxNzgsIDAuMTUxNjI2LCAwLjQyNjM0OCwgMC42NzQ2NjcsIDEuMDAzOTcsIDEuNjcwOCwgMi4wODMzMyIsIFwKLSAgICAgICAgICAiMC4xMDQzMywgMC4xNTE2MzksIDAuNDI2MzIsIDAuNjczODAxLCAxLjAwMzc4LCAxLjY3MDgxLCAyLjA4MzE5IiwgXAotICAgICAgICAgICIwLjEwNDQ3LCAwLjE1MTY2NCwgMC40MjY4MTEsIDAuNjczODk3LCAxLjAwNDE4LCAxLjY3MDk0LCAyLjA4MjgiLCBcCi0gICAgICAgICAgIjAuMTA0NSwgMC4xNTE2NTgsIDAuNDI2NjkxLCAwLjY3NDY5MywgMS4wMDM1OSwgMS42NzA4NCwgMi4wODMwMyIsIFwKLSAgICAgICAgICAiMC4xMDQ1MTcsIDAuMTUxNjY3LCAwLjQyNjMyLCAwLjY3NDU2MiwgMS4wMDM4NCwgMS42NzA3OCwgMi4wODMyNCIsIFwKLSAgICAgICAgICAiMC4xMDQ4NDIsIDAuMTUxOTI4LCAwLjQyNjM0NCwgMC42NzQ1ODUsIDEuMDAzOTksIDEuNjcwNzUsIDIuMDgzIiwgXAotICAgICAgICAgICIwLjEwNTI5NSwgMC4xNTIyNTEsIDAuNDI3MjE3LCAwLjY3NDY0MiwgMS4wMDQ5NiwgMS42NzA5NiwgMi4wODUxOCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTI5ODEsIDAuMTE3NzE2LCAwLjI1Njk4MiwgMC4zNzk2NjgsIDAuNTQzMjksIDAuODcwNDI2LCAxLjA3NDg5IiwgXAotICAgICAgICAgICIwLjEwMTg0MiwgMC4xMjY1NzcsIDAuMjY1ODQxLCAwLjM4ODUzOCwgMC41NTIxMzYsIDAuODc5MjU5LCAxLjA4MzcyIiwgXAotICAgICAgICAgICIwLjExMjYwMywgMC4xMzczNDcsIDAuMjc2NjI4LCAwLjM5OTMxOSwgMC41NjI5MjksIDAuODkwMDc1LCAxLjA5NDUxIiwgXAotICAgICAgICAgICIwLjEyMjkxMSwgMC4xNDc2NTksIDAuMjg2OTQsIDAuNDA5NjM5LCAwLjU3MzI1NCwgMC45MDAzNzksIDEuMTA0ODMiLCBcCi0gICAgICAgICAgIjAuMTMyNzIyLCAwLjE1NzQ3NywgMC4yOTY3NDIsIDAuNDE5NDU3LCAwLjU4MzA1OSwgMC45MTAxNzYsIDEuMTE0NjMiLCBcCi0gICAgICAgICAgIjAuMTQ2NTQ5LCAwLjE3MTM3NywgMC4zMTA2NjEsIDAuNDMzMzc0LCAwLjU5NjkyOCwgMC45MjQwNDksIDEuMTI4NDkiLCBcCi0gICAgICAgICAgIjAuMTU3NTMzLCAwLjE4MjQwOSwgMC4zMjE3MDIsIDAuNDQ0NDI1LCAwLjYwNzk3MiwgMC45MzUwNjcsIDEuMTM5NjIiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk1MDE4LCAwLjE0NDE5NywgMC40Mjg0MjIsIDAuNjgxNzY5LCAxLjAxODk2LCAxLjY5MTI3LCAyLjExMDkxIiwgXAotICAgICAgICAgICIwLjA5NTAxMywgMC4xNDQxODIsIDAuNDI4MzcsIDAuNjgxNzQ0LCAxLjAxNzYsIDEuNjkxMzcsIDIuMTExOTMiLCBcCi0gICAgICAgICAgIjAuMDk0OTcsIDAuMTQ0MjYxLCAwLjQyNzk5MiwgMC42ODE3NDQsIDEuMDE4ODcsIDEuNjg5OSwgMi4xMTE5NSIsIFwKLSAgICAgICAgICAiMC4wOTUxNDYsIDAuMTQ0MjcsIDAuNDI4Mzc2LCAwLjY4MTY1MywgMS4wMTc2MiwgMS42OTA5NSwgMi4xMTE5MiIsIFwKLSAgICAgICAgICAiMC4wOTU0NzEsIDAuMTQ0NDM1LCAwLjQyODU2MiwgMC42ODE2NjEsIDEuMDE3NTYsIDEuNjkxMTEsIDIuMTExOCIsIFwKLSAgICAgICAgICAiMC4wOTYyMjIsIDAuMTQ0OTk3LCAwLjQyOTE5NCwgMC42ODE3MTQsIDEuMDE4NjksIDEuNjkxMDQsIDIuMTExOTkiLCBcCi0gICAgICAgICAgIjAuMDk2OTE4LCAwLjE0NTQ4OSwgMC40MjkyMTcsIDAuNjgxNzg0LCAxLjAxODY5LCAxLjY5MjcxLCAyLjExMTM4Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5NjcyOSwgMC4xMjE3NzEsIDAuMjYyMTcxLCAwLjM4NTkwMSwgMC41NTA3ODksIDAuODgwNTEyLCAxLjA4NjYiLCBcCi0gICAgICAgICAgIjAuMTA1MTksIDAuMTMwMjksIDAuMjcwNjQzLCAwLjM5NDM3MiwgMC41NTkyMjYsIDAuODg5MDA4LCAxLjA5NTA2IiwgXAotICAgICAgICAgICIwLjExNDkyMiwgMC4xMzk5ODksIDAuMjgwMzk4LCAwLjQwNDExMywgMC41Njg5OTQsIDAuODk4NzU2LCAxLjEwNDgyIiwgXAotICAgICAgICAgICIwLjEyNDE5NCwgMC4xNDkyNzMsIDAuMjg5NjksIDAuNDEzNDE2LCAwLjU3ODMxNCwgMC45MDgwOCwgMS4xMTQxMSIsIFwKLSAgICAgICAgICAiMC4xMzI3NTYsIDAuMTU3ODU2LCAwLjI5ODI3NywgMC40MjIwMjgsIDAuNTg2ODY4LCAwLjkxNjYxMywgMS4xMjI3NSIsIFwKLSAgICAgICAgICAiMC4xNDUwMDIsIDAuMTcwMTQ1LCAwLjMxMDU5LCAwLjQzNDMxNCwgMC41OTkyMjYsIDAuOTI4OTQsIDEuMTM1MDEiLCBcCi0gICAgICAgICAgIjAuMTU0NDM2LCAwLjE3OTY3OSwgMC4zMjAxNDQsIDAuNDQzODQ1LCAwLjYwODgxMSwgMC45Mzg0ODgsIDEuMTQ0NTkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk0NjUzLCAwLjE0Mjk1MSwgMC40MjI2NDUsIDAuNjcyMjczLCAxLjAwNDk2LCAxLjY2NzA4LCAyLjA4MjMzIiwgXAotICAgICAgICAgICIwLjA5NDY2LCAwLjE0MjkyNywgMC40MjI2NTIsIDAuNjcyMjg3LCAxLjAwNDgzLCAxLjY3MDE2LCAyLjA4MzMiLCBcCi0gICAgICAgICAgIjAuMDk0NjU0LCAwLjE0Mjk0LCAwLjQyMzM2LCAwLjY3MTQyMSwgMS4wMDQ4NywgMS42Njc0MSwgMi4wODIwMyIsIFwKLSAgICAgICAgICAiMC4wOTQ4MjMsIDAuMTQzMDM4LCAwLjQyMjcxNCwgMC42NzIyNTQsIDEuMDA0ODIsIDEuNjY2NDQsIDIuMDgxODYiLCBcCi0gICAgICAgICAgIjAuMDk1MjIsIDAuMTQzMzgsIDAuNDIyNzczLCAwLjY3MjAxMywgMS4wMDQ4NywgMS42NjgxNywgMi4wODU5OSIsIFwKLSAgICAgICAgICAiMC4wOTYwMDIsIDAuMTQzODY5LCAwLjQyMzEyMywgMC42NzE3NDUsIDEuMDAzMDMsIDEuNjY4MDksIDIuMDg0NzgiLCBcCi0gICAgICAgICAgIjAuMDk2NTksIDAuMTQ0NDQ3LCAwLjQyMzM2MywgMC42NzI0MiwgMS4wMDI1NSwgMS42Njk5NywgMi4wODU3OCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTMzMjgxLCAwLjE1OTE2NCwgMC4yOTkxMzcsIDAuNDIxODg3LCAwLjU4NTYzNCwgMC45MTI3NDksIDEuMTE3MTIiLCBcCi0gICAgICAgICAgIjAuMTQyNDMxLCAwLjE2ODM3MywgMC4zMDgzMjIsIDAuNDMxMDg5LCAwLjU5NDc5NiwgMC45MjE4ODEsIDEuMTI2NCIsIFwKLSAgICAgICAgICAiMC4xNTQxMTcsIDAuMTc5OTk3LCAwLjMxOTk2LCAwLjQ0MjcxOSwgMC42MDY0MjcsIDAuOTMzNTUzLCAxLjEzODE4IiwgXAotICAgICAgICAgICIwLjE2NTgwNSwgMC4xOTE3MzcsIDAuMzMxNzA5LCAwLjQ1NDQ3MSwgMC42MTgyLCAwLjk0NTI5OCwgMS4xNDk3OCIsIFwKLSAgICAgICAgICAiMC4xNzc1ODEsIDAuMjAzNDYyLCAwLjM0MzQ0NywgMC40NjYyMjEsIDAuNjI5OTIyLCAwLjk1NzA3MiwgMS4xNjE2OSIsIFwKLSAgICAgICAgICAiMC4xOTUzMzEsIDAuMjIxMjgyLCAwLjM2MTI2NiwgMC40ODQwMzYsIDAuNjQ3NzQ4LCAwLjk3NDg5MSwgMS4xNzk1IiwgXAotICAgICAgICAgICIwLjIwOTc3NSwgMC4yMzU3NjYsIDAuMzc1Nzc0LCAwLjQ5ODU0NiwgMC42NjIyNjcsIDAuOTg5NDA1LCAxLjE5NDAxIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwMjkyMSwgMC4xNTA5NTYsIDAuNDMxMjE5LCAwLjY4MjMwNSwgMS4wMTc4NSwgMS42OTQwNywgMi4xMTQ1NCIsIFwKLSAgICAgICAgICAiMC4xMDI5LCAwLjE1MDg5LCAwLjQzMTI0LCAwLjY4MzE3MywgMS4wMTk5OCwgMS42OTE5NSwgMi4xMTE5NyIsIFwKLSAgICAgICAgICAiMC4xMDI5MjYsIDAuMTUwOTc2LCAwLjQzMTI1OSwgMC42ODMwMTMsIDEuMDE5OTUsIDEuNjkxNjgsIDIuMTExNTkiLCBcCi0gICAgICAgICAgIjAuMTAyOTQzLCAwLjE1MSwgMC40MzEyMjksIDAuNjgyMzA1LCAxLjAxOTk4LCAxLjY5Mzg4LCAyLjExMTczIiwgXAotICAgICAgICAgICIwLjEwMjk3NywgMC4xNTA5ODgsIDAuNDMxNTUzLCAwLjY4Mjg0MiwgMS4wMTk5MywgMS42OTE3NSwgMi4xMTE1NSIsIFwKLSAgICAgICAgICAiMC4xMDMzNTksIDAuMTUxMjQ2LCAwLjQzMTI1MywgMC42ODI5NDEsIDEuMDE5OTMsIDEuNjkxNzEsIDIuMTExMzMiLCBcCi0gICAgICAgICAgIjAuMTAzOTc0LCAwLjE1MTY4LCAwLjQzMTcwMywgMC42ODMsIDEuMDE5OCwgMS42OTE2NSwgMi4xMTEzMyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMzgyODIsIDAuMTY0OTI0LCAwLjMwNjYyLCAwLjQzMDM0MiwgMC41OTUzNDMsIDAuOTI1MDQ0LCAxLjEzMTE0IiwgXAotICAgICAgICAgICIwLjE0NzA5NywgMC4xNzM3NDQsIDAuMzE1NDM2LCAwLjQzOTE1OCwgMC42MDQxNTcsIDAuOTMzODYyLCAxLjEzOTk1IiwgXAotICAgICAgICAgICIwLjE1ODQ2LCAwLjE4NTEzNiwgMC4zMjY4MTQsIDAuNDUwNTQ1LCAwLjYxNTUyLCAwLjk0NTMyNywgMS4xNTEzOSIsIFwKLSAgICAgICAgICAiMC4xNjk3OTUsIDAuMTk2NDc1LCAwLjMzODE1NSwgMC40NjE4ODcsIDAuNjI2OTM0LCAwLjk1NjU5NSwgMS4xNjI3MSIsIFwKLSAgICAgICAgICAiMC4xODEwNzYsIDAuMjA3NzI5LCAwLjM0OTQyNSwgMC40NzMxNjMsIDAuNjM4MjAzLCAwLjk2NzkwMiwgMS4xNzM5OSIsIFwKLSAgICAgICAgICAiMC4xOTc4MTcsIDAuMjI0NTE1LCAwLjM2NjIzLCAwLjQ4OTk1NCwgMC42NTQ5ODUsIDAuOTg0NzU1LCAxLjE5MDc2IiwgXAotICAgICAgICAgICIwLjIxMTIzMywgMC4yMzc5NTksIDAuMzc5NzQ2LCAwLjUwMzQ5NCwgMC42Njg0MzQsIDAuOTk4MjE2LCAxLjIwNDMxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwNDM0NiwgMC4xNTE1NDMsIDAuNDI2NzQ0LCAwLjY3MzgwNSwgMS4wMDQ0MywgMS42NzA4NSwgMi4wODI5MSIsIFwKLSAgICAgICAgICAiMC4xMDQzNDksIDAuMTUxNTQ5LCAwLjQyNjc0OSwgMC42NzM4MDksIDEuMDA0MzEsIDEuNjcwODUsIDIuMDgyODciLCBcCi0gICAgICAgICAgIjAuMTA0MzY1LCAwLjE1MTU1LCAwLjQyNzAzNSwgMC42NzQ0ODMsIDEuMDA2NCwgMS42NzEyNiwgMi4wODQwMSIsIFwKLSAgICAgICAgICAiMC4xMDQzOTMsIDAuMTUxNTY1LCAwLjQyNjI1OSwgMC42NzQ0ODIsIDEuMDAzMzIsIDEuNjcwMTEsIDIuMDgzMzMiLCBcCi0gICAgICAgICAgIjAuMTA0NDE2LCAwLjE1MTU3NywgMC40MjY3ODEsIDAuNjc0NDg5LCAxLjAwNDEsIDEuNjcwODUsIDIuMDgyODQiLCBcCi0gICAgICAgICAgIjAuMTA0ODcxLCAwLjE1MTkxNCwgMC40MjcwNDUsIDAuNjc0NDkxLCAxLjAwMzYyLCAxLjY3MDc0LCAyLjA4NjM3IiwgXAotICAgICAgICAgICIwLjEwNTUwNywgMC4xNTIzNTIsIDAuNDI3MDA4LCAwLjY3NDU3NywgMS4wMDU3MiwgMS42NzAxLCAyLjA4MzA5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlMwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNTEwMzgsIDAuMTc2OTExLCAwLjMxNjg3NSwgMC40Mzk2MjksIDAuNjAzMzUsIDAuOTMwNTE3LCAxLjEzNDkyIiwgXAotICAgICAgICAgICIwLjE2MDY5LCAwLjE4NjYwMywgMC4zMjY1MzcsIDAuNDQ5MzM3LCAwLjYxMjk5MiwgMC45NDAwNzQsIDEuMTQ0NzUiLCBcCi0gICAgICAgICAgIjAuMTcxNTcsIDAuMTk3NDc5LCAwLjMzNzQyMiwgMC40NjAxNzksIDAuNjIzODY4LCAwLjk1MDk4OSwgMS4xNTU2IiwgXAotICAgICAgICAgICIwLjE3OTk4NiwgMC4yMDU4NTgsIDAuMzQ1ODIsIDAuNDY4NTY1LCAwLjYzMjE5NywgMC45NTkzMzQsIDEuMTYzOTEiLCBcCi0gICAgICAgICAgIjAuMTg3MDk3LCAwLjIxMjgwOSwgMC4zNTI5NzcsIDAuNDc1Njg5LCAwLjYzOTQ1OSwgMC45NjY2MDMsIDEuMTcxMTIiLCBcCi0gICAgICAgICAgIjAuMTk2NDEzLCAwLjIyMjMxNiwgMC4zNjIyODIsIDAuNDg1MDM4LCAwLjY0ODYxMSwgMC45NzU4MDYsIDEuMTgwMjkiLCBcCi0gICAgICAgICAgIjAuMjAzMzU3LCAwLjIyOTQ0MSwgMC4zNjk0NjUsIDAuNDkyMjMxLCAwLjY1NTkzOSwgMC45ODI5NjEsIDEuMTg3MzciKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTAyOTAzLCAwLjE1MDkyNywgMC40MzE1MDIsIDAuNjgyMjQ1LCAxLjAxOTk2LCAxLjY5NDA1LCAyLjExMTY3IiwgXAotICAgICAgICAgICIwLjEwMjg5MiwgMC4xNTA5MjMsIDAuNDMxMjE5LCAwLjY4MzMxNSwgMS4wMTk5MSwgMS42OTE5NCwgMi4xMTEzOSIsIFwKLSAgICAgICAgICAiMC4xMDI4NzcsIDAuMTUwOTE5LCAwLjQzMTIzOCwgMC42ODMwNjQsIDEuMDE5OTEsIDEuNjkxNjMsIDIuMTExMjgiLCBcCi0gICAgICAgICAgIjAuMTAyODg1LCAwLjE1MDkxNCwgMC40MzExMTMsIDAuNjgyMjEsIDEuMDE5ODEsIDEuNjkzODIsIDIuMTE1NDYiLCBcCi0gICAgICAgICAgIjAuMTAyODUyLCAwLjE1MDk0MiwgMC40MzE1MDksIDAuNjgyMjUxLCAxLjAxOTk0LCAxLjY5MTE3LCAyLjExNTU5IiwgXAotICAgICAgICAgICIwLjEwMzA1LCAwLjE1MTA5NCwgMC40MzEyODIsIDAuNjgyOTMsIDEuMDE5NywgMS42OTE4MiwgMi4xMTI1OCIsIFwKLSAgICAgICAgICAiMC4xMDMwNDYsIDAuMTUxMTEzLCAwLjQzMTY3MSwgMC42ODIyODMsIDEuMDE5NzQsIDEuNjkzNTgsIDIuMTEyNjciKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTU1ODE0LCAwLjE4MjUwMiwgMC4zMjQyMjksIDAuNDQ3OTY4LCAwLjYxMzAzMiwgMC45NDI2OTEsIDEuMTQ4OCIsIFwKLSAgICAgICAgICAiMC4xNjYwMzMsIDAuMTkyNzAxLCAwLjMzNDQ0MiwgMC40NTgxODEsIDAuNjIzMjU0LCAwLjk1MjkwOCwgMS4xNTkwMSIsIFwKLSAgICAgICAgICAiMC4xNzcyMTUsIDAuMjAzOTA5LCAwLjM0NTYyMywgMC40NjkzNjYsIDAuNjM0MzE0LCAwLjk2NDA3OCwgMS4xNzAyIiwgXAotICAgICAgICAgICIwLjE4NjU2NywgMC4yMTMyNjQsIDAuMzU0OTc3LCAwLjQ3ODcxOCwgMC42NDM3NzcsIDAuOTczNDMxLCAxLjE3OTU1IiwgXAotICAgICAgICAgICIwLjE5NDQwMywgMC4yMjA5NzIsIDAuMzYyODMzLCAwLjQ4NjU3NywgMC42NTE0NDgsIDAuOTgxMzc2LCAxLjE4NzM3IiwgXAotICAgICAgICAgICIwLjIwNDkwOSwgMC4yMzE2MjQsIDAuMzczMzU2LCAwLjQ5NzEsIDAuNjYyMDkyLCAwLjk5MTgyMSwgMS4xOTc5MSIsIFwKLSAgICAgICAgICAiMC4yMTI4MzcsIDAuMjM5NjMzLCAwLjM4MTQwNywgMC41MDUxMDcsIDAuNjcwMTEzLCAwLjk5OTk0NiwgMS4yMDU5NSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDQ0NjYsIDAuMTUxNjg3LCAwLjQyNjMzOSwgMC42NzM1MDksIDEuMDA0MjUsIDEuNjcxMDQsIDIuMDgzMTkiLCBcCi0gICAgICAgICAgIjAuMTA0NDYzLCAwLjE1MTYzNCwgMC40MjY2OCwgMC42NzM0NjQsIDEuMDAzNjMsIDEuNjcwOTEsIDIuMDgzIiwgXAotICAgICAgICAgICIwLjEwNDQ2NSwgMC4xNTE2NTgsIDAuNDI2Mjk4LCAwLjY3NDU3MywgMS4wMDU0NywgMS42NzA3NCwgMi4wODY2MSIsIFwKLSAgICAgICAgICAiMC4xMDQ0NTUsIDAuMTUxNjMzLCAwLjQyNjM1NiwgMC42NzQ1NjEsIDEuMDAzODUsIDEuNjcwNzQsIDIuMDgzMTMiLCBcCi0gICAgICAgICAgIjAuMTA0NDcxLCAwLjE1MTY3NywgMC40MjcxNiwgMC42NzQxMTksIDEuMDA0MjEsIDEuNjY4MTQsIDIuMDg2MzkiLCBcCi0gICAgICAgICAgIjAuMTA0NjQsIDAuMTUxODEzLCAwLjQyNjk3NSwgMC42NzQ1OTgsIDEuMDA0MTcsIDEuNjcwODQsIDIuMDgyNzciLCBcCi0gICAgICAgICAgIjAuMTA0NTYsIDAuMTUxODEyLCAwLjQyNzI2MywgMC42NzQwNjYsIDEuMDA2MTIsIDEuNjY3NTIsIDIuMDg2MzkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUzEiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4NjUxNiwgMC4xMTEyNjgsIDAuMjUwNTQ1LCAwLjM3MzI1NiwgMC41MzY4NDUsIDAuODY0MDQyLCAxLjA2ODQyIiwgXAotICAgICAgICAgICIwLjA5NTc0NSwgMC4xMjA0OTcsIDAuMjU5Nzg1LCAwLjM4MjQ5LCAwLjU0NjExMSwgMC44NzMyMTgsIDEuMDc3NjgiLCBcCi0gICAgICAgICAgIjAuMTA3Mzk1LCAwLjEzMjE1OSwgMC4yNzE0NTYsIDAuMzk0MTczLCAwLjU1Nzc1NCwgMC44ODQ5OTMsIDEuMDg5MzQiLCBcCi0gICAgICAgICAgIjAuMTE4NzE5LCAwLjE0MzQ5NywgMC4yODI3ODYsIDAuNDA1NTM0LCAwLjU2OTA5MiwgMC44OTYyMzUsIDEuMTAwNzIiLCBcCi0gICAgICAgICAgIjAuMTI4OTQxLCAwLjE1MzcyMywgMC4yOTMwMTQsIDAuNDE1NzU0LCAwLjU3OTMyMiwgMC45MDY1MDcsIDEuMTEwOSIsIFwKLSAgICAgICAgICAiMC4xNDMwNzYsIDAuMTY3ODcsIDAuMzA3MTI5LCAwLjQyOTkxMSwgMC41OTM0MzksIDAuOTIwNTY4LCAxLjEyNTA5IiwgXAotICAgICAgICAgICIwLjE1Mzg3LCAwLjE3ODc5MiwgMC4zMTgwNDQsIDAuNDQwNzYzLCAwLjYwNDM2OCwgMC45MzE0NTksIDEuMTM1ODkiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk1MDcxLCAwLjE0NDM1MywgMC40Mjg2MTQsIDAuNjgxNzc3LCAxLjAxNzY5LCAxLjY5MzM1LCAyLjExMjMyIiwgXAotICAgICAgICAgICIwLjA5NTA4MywgMC4xNDQyMzMsIDAuNDI4MzY3LCAwLjY4MTY3MSwgMS4wMTcxNywgMS42OTExMiwgMi4xMTE5NiIsIFwKLSAgICAgICAgICAiMC4wOTUxNDUsIDAuMTQ0Mzg0LCAwLjQyODU2LCAwLjY4MTc3MiwgMS4wMTc2NSwgMS42OTMxMSwgMi4xMTIxMyIsIFwKLSAgICAgICAgICAiMC4wOTUzOTgsIDAuMTQ0NDE0LCAwLjQyOTEyNiwgMC42ODA2OSwgMS4wMTc2NSwgMS42OTEwOSwgMi4xMTQzNyIsIFwKLSAgICAgICAgICAiMC4wOTU5NjMsIDAuMTQ0NzQ0LCAwLjQyODY0MywgMC42ODE2ODgsIDEuMDE3NjUsIDEuNjkyOTcsIDIuMTEyMDkiLCBcCi0gICAgICAgICAgIjAuMDk3MTgsIDAuMTQ1NTg0LCAwLjQyODY5MywgMC42ODE3OTgsIDEuMDE4NCwgMS42OTExNywgMi4xMTEzNCIsIFwKLSAgICAgICAgICAiMC4wOTgyMTYsIDAuMTQ2MjI5LCAwLjQyOTQzNiwgMC42ODExMjUsIDEuMDE4NzYsIDEuNjkxMjUsIDIuMTEyMDIiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTAxODgyLCAwLjEyODQ0MywgMC4yNjk5MTcsIDAuMzkzNjAxLCAwLjU1ODU4OCwgMC44ODg2MTQsIDEuMDk0NDYiLCBcCi0gICAgICAgICAgIjAuMTEwMzkxLCAwLjEzNjk0MywgMC4yNzg0MjMsIDAuNDAyMDk5LCAwLjU2Njk3NywgMC44OTY5MjksIDEuMTAzNDYiLCBcCi0gICAgICAgICAgIjAuMTIxMjY0LCAwLjE0NzgwNSwgMC4yODkzMjIsIDAuNDEyOTk1LCAwLjU3ODAxNSwgMC45MDgwODYsIDEuMTEzODgiLCBcCi0gICAgICAgICAgIjAuMTMyMTY3LCAwLjE1ODczMiwgMC4zMDAyNDQsIDAuNDIzOTI5LCAwLjU4ODgyNCwgMC45MTg4MTMsIDEuMTI0ODMiLCBcCi0gICAgICAgICAgIjAuMTQxOTk1LCAwLjE2ODU1OSwgMC4zMTAwODMsIDAuNDMzNzcyLCAwLjU5ODY4OSwgMC45Mjg3NTEsIDEuMTM0ODQiLCBcCi0gICAgICAgICAgIjAuMTU1NzcyLCAwLjE4MjM1OCwgMC4zMjQwMTgsIDAuNDQ3Njk3LCAwLjYxMjU5OSwgMC45NDI3MTQsIDEuMTQ4ODEiLCBcCi0gICAgICAgICAgIjAuMTY2MTI5LCAwLjE5MzAxMywgMC4zMzQ1NzYsIDAuNDU4Mjg0LCAwLjYyMzQyNywgMC45NTMzMywgMS4xNTkzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwMzU5MywgMC4xNTA5NTksIDAuNDI2MDM1LCAwLjY3MzUyLCAxLjAwMzIzLCAxLjY2NzAyLCAyLjA4NjMyIiwgXAotICAgICAgICAgICIwLjEwMzUzLCAwLjE1MDk0NywgMC40MjYwMywgMC42NzM2OSwgMS4wMDU4OCwgMS42Njg0MywgMi4wODEyMSIsIFwKLSAgICAgICAgICAiMC4xMDMyODksIDAuMTUwNzU0LCAwLjQyNTkyNCwgMC42NzMxNTksIDEuMDAzMTQsIDEuNjY2NzgsIDIuMDg3MDgiLCBcCi0gICAgICAgICAgIjAuMTAzMDk0LCAwLjE1MDYwNiwgMC40MjY2MTksIDAuNjc0MzU1LCAxLjAwNTg5LCAxLjY2NzA3LCAyLjA4NjI5IiwgXAotICAgICAgICAgICIwLjEwMzE2NywgMC4xNTA3MDMsIDAuNDI2NzI4LCAwLjY3MzA1NywgMS4wMDQzMSwgMS42NjczOSwgMi4wODI0MSIsIFwKLSAgICAgICAgICAiMC4xMDM3OTgsIDAuMTUxMTI2LCAwLjQyNjkwOSwgMC42NzM2NDksIDEuMDA0MTYsIDEuNjY3MTgsIDIuMDgyNCIsIFwKLSAgICAgICAgICAiMC4xMDQzMjMsIDAuMTUxNjE0LCAwLjQyNzE3MywgMC42NzM4NzYsIDEuMDAzNTQsIDEuNjcwOTEsIDIuMDg3MDkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUzEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwNDkxLCAwLjEzMDcxNiwgMC4yNzA0OCwgMC4zOTMxNzYsIDAuNTU2NzQ2LCAwLjg4NDIyNywgMS4wODkzMiIsIFwKLSAgICAgICAgICAiMC4xMTUxNDYsIDAuMTQwOTQ2LCAwLjI4MDcxLCAwLjQwMzQwNiwgMC41NjcwMzgsIDAuODk0MjQ4LCAxLjA5ODg4IiwgXAotICAgICAgICAgICIwLjEyNzI3OSwgMC4xNTMwOTQsIDAuMjkyODYsIDAuNDE1NTU1LCAwLjU3OTE2MywgMC45MDY5NDIsIDEuMTEwOTUiLCBcCi0gICAgICAgICAgIjAuMTM3MjM3LCAwLjE2MzA1MiwgMC4zMDI4MjIsIDAuNDI1NTIyLCAwLjU4OTE0LCAwLjkxNjgxMSwgMS4xMjEwMSIsIFwKLSAgICAgICAgICAiMC4xNDUzOTgsIDAuMTcxMjE2LCAwLjMxMDk3MSwgMC40MzM3MzQsIDAuNTk3MzEsIDAuOTI0NTUsIDEuMTI5NzIiLCBcCi0gICAgICAgICAgIjAuMTU2Mjg4LCAwLjE4MjA4NiwgMC4zMjE4NTcsIDAuNDQ0NTQ1LCAwLjYwODE2NywgMC45MzUzOTEsIDEuMTQwNSIsIFwKLSAgICAgICAgICAiMC4xNjQzOTcsIDAuMTkwMDc1LCAwLjMyOTgxLCAwLjQ1MjU3MSwgMC42MTYxMzIsIDAuOTQzNDQ2LCAxLjE0ODMiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTAyMTM2LCAwLjE1MDM1OSwgMC40MzEyMjIsIDAuNjgxOTg2LCAxLjAxOTU3LCAxLjY5MDkyLCAyLjExMjgiLCBcCi0gICAgICAgICAgIjAuMTAyMDg5LCAwLjE1MDM1OCwgMC40MzA5MDMsIDAuNjgxOTE4LCAxLjAxOTcxLCAxLjY5NDIsIDIuMTEyOTgiLCBcCi0gICAgICAgICAgIjAuMTAyMDk3LCAwLjE1MDMyLCAwLjQzMDg2NSwgMC42ODIwMzEsIDEuMDE5NzksIDEuNjkzMzQsIDIuMTE0NDkiLCBcCi0gICAgICAgICAgIjAuMTAyMDMsIDAuMTUwMjc5LCAwLjQzMTIwNCwgMC42ODIwMTcsIDEuMDE5NjksIDEuNjkwODksIDIuMTEyODIiLCBcCi0gICAgICAgICAgIjAuMTAxODY2LCAwLjE1MDIwOSwgMC40MzA4NiwgMC42ODMwNDcsIDEuMDE5NzEsIDEuNjkwNDYsIDIuMTExNTYiLCBcCi0gICAgICAgICAgIjAuMTAxNjk1LCAwLjE0OTk5NSwgMC40MzEyMzcsIDAuNjgyOTE1LCAxLjAxOTY5LCAxLjY5NDIxLCAyLjExMTcxIiwgXAotICAgICAgICAgICIwLjEwMTUzMywgMC4xNDk3OTQsIDAuNDMxMDM0LCAwLjY4Mjg4MiwgMS4wMTk1MiwgMS42OTM4OSwgMi4xMTI3NyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDgyMjYsIDAuMTMzMzI0LCAwLjI3Mzc3MSwgMC4zOTc1MywgMC41NjIzNjEsIDAuODkyMTM3LCAxLjA5ODIxIiwgXAotICAgICAgICAgICIwLjExODQ1LCAwLjE0MzUzMywgMC4yODM5NTksIDAuNDA3Njk0LCAwLjU3MjU2NiwgMC45MDIzMTIsIDEuMTA4NCIsIFwKLSAgICAgICAgICAiMC4xMjk5ODgsIDAuMTU1MDc3LCAwLjI5NTUxNCwgMC40MTkyMzQsIDAuNTg0MTQxLCAwLjkxMzg3LCAxLjExOTk1IiwgXAotICAgICAgICAgICIwLjEzOTQ4MiwgMC4xNjQ1NjEsIDAuMzA0OTk5LCAwLjQyODc0NCwgMC41OTM1OTYsIDAuOTIzMzU3LCAxLjEyOTQ0IiwgXAotICAgICAgICAgICIwLjE0NzgwMSwgMC4xNzI5MTgsIDAuMzEzMzUxLCAwLjQzNzA3OSwgMC42MDIwMDUsIDAuOTMxNzA0LCAxLjEzNzc3IiwgXAotICAgICAgICAgICIwLjE1ODgyNSwgMC4xODM5NjQsIDAuMzI0NDIsIDAuNDQ4MTM4LCAwLjYxMzA3MiwgMC45NDI3NDksIDEuMTQ4ODIiLCBcCi0gICAgICAgICAgIjAuMTY3MTg0LCAwLjE5MjMxNCwgMC4zMzI4NDIsIDAuNDU2NTY1LCAwLjYyMTQ2MywgMC45NTEyNDgsIDEuMTU3MzgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk0NjUyLCAwLjE0MjkyOSwgMC40MjI5NTYsIDAuNjcxNTE3LCAxLjAwNDk3LCAxLjY2NzgzLCAyLjA4MjQiLCBcCi0gICAgICAgICAgIjAuMDk0NjUyLCAwLjE0MjkyOCwgMC40MjI2NjUsIDAuNjcyMjg0LCAxLjAwNDEsIDEuNjY2OSwgMi4wODQ4IiwgXAotICAgICAgICAgICIwLjA5NDY0OCwgMC4xNDI5MjcsIDAuNDIyODM2LCAwLjY3MjQxMSwgMS4wMDQ3OSwgMS42NjcyOCwgMi4wODIzNSIsIFwKLSAgICAgICAgICAiMC4wOTQ2MzgsIDAuMTQyOTI3LCAwLjQyMjg4NSwgMC42NzIyNzMsIDEuMDA0OSwgMS42NjczMywgMi4wODIyNCIsIFwKLSAgICAgICAgICAiMC4wOTQ3ODIsIDAuMTQzMDk0LCAwLjQyMjc2MiwgMC42NzIyNzUsIDEuMDA0ODUsIDEuNjY4NzUsIDIuMDg0NjIiLCBcCi0gICAgICAgICAgIjAuMDk0ODEyLCAwLjE0MzA3NiwgMC40MjMwODQsIDAuNjcyLCAxLjAwNDE5LCAxLjY3MDA5LCAyLjA4NTciLCBcCi0gICAgICAgICAgIjAuMDk0NzI4LCAwLjE0MzA4OSwgMC40MjI4MjUsIDAuNjcxNjc3LCAxLjAwNDEsIDEuNjY2MTIsIDIuMDg1MDciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDIzOTksIDAuMDAyNDExLCAwLjAwMjQzMiwgMC4wMDI0MzYsIDAuMDAyNDQsIDAuMDAyNDQyLCAwLjAwMjQ0MiIsIFwKLSAgICAgICAgICAiMC4wMDIzODMsIDAuMDAyMzk1LCAwLjAwMjQxNiwgMC4wMDI0MjEsIDAuMDAyNDI0LCAwLjAwMjQyNiwgMC4wMDI0MjciLCBcCi0gICAgICAgICAgIjAuMDAyMzczLCAwLjAwMjM4NSwgMC4wMDI0MDcsIDAuMDAyNDEyLCAwLjAwMjQxNiwgMC4wMDI0MTgsIDAuMDAyNDE5IiwgXAotICAgICAgICAgICIwLjAwMjM2NywgMC4wMDIzNzksIDAuMDAyNDAyLCAwLjAwMjQwOCwgMC4wMDI0MTEsIDAuMDAyNDE0LCAwLjAwMjQxNSIsIFwKLSAgICAgICAgICAiMC4wMDIzNjQsIDAuMDAyMzc2LCAwLjAwMjM5OSwgMC4wMDI0MDUsIDAuMDAyNDA5LCAwLjAwMjQxMiwgMC4wMDI0MTMiLCBcCi0gICAgICAgICAgIjAuMDAyMzYyLCAwLjAwMjM3NCwgMC4wMDIzOTgsIDAuMDAyNDA1LCAwLjAwMjQwOSwgMC4wMDI0MTQsIDAuMDAyNDE0IiwgXAotICAgICAgICAgICIwLjAwMjM2NywgMC4wMDIzNzcsIDAuMDAyNDAxLCAwLjAwMjQwOCwgMC4wMDI0MTMsIDAuMDAyNDE3LCAwLjAwMjQxOCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDI0MiwgMC4wMDQyNTgsIDAuMDA0Mjg1LCAwLjAwNDI5MSwgMC4wMDQyOTUsIDAuMDA0Mjk4LCAwLjAwNDI5OSIsIFwKLSAgICAgICAgICAiMC4wMDQyMzMsIDAuMDA0MjQ5LCAwLjAwNDI3NiwgMC4wMDQyODIsIDAuMDA0Mjg2LCAwLjAwNDI4OSwgMC4wMDQyOSIsIFwKLSAgICAgICAgICAiMC4wMDQyMjcsIDAuMDA0MjQyLCAwLjAwNDI3MSwgMC4wMDQyNzcsIDAuMDA0MjgxLCAwLjAwNDI4NSwgMC4wMDQyODYiLCBcCi0gICAgICAgICAgIjAuMDA0MjIyLCAwLjAwNDIzOCwgMC4wMDQyNjcsIDAuMDA0Mjc0LCAwLjAwNDI3OCwgMC4wMDQyODIsIDAuMDA0MjgzIiwgXAotICAgICAgICAgICIwLjAwNDIyLCAwLjAwNDIzNSwgMC4wMDQyNjUsIDAuMDA0MjczLCAwLjAwNDI3NywgMC4wMDQyODEsIDAuMDA0MjgyIiwgXAotICAgICAgICAgICIwLjAwNDIxOSwgMC4wMDQyMzQsIDAuMDA0MjY1LCAwLjAwNDI3MywgMC4wMDQyNzgsIDAuMDA0MjgzLCAwLjAwNDI4NCIsIFwKLSAgICAgICAgICAiMC4wMDQyMiwgMC4wMDQyMzQsIDAuMDA0MjY2LCAwLjAwNDI3NSwgMC4wMDQyODEsIDAuMDA0Mjg1LCAwLjAwNDI4NyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjI0OSwgMC4wMDIyNjEsIDAuMDAyMjgyLCAwLjAwMjI4NywgMC4wMDIyOSwgMC4wMDIyOTIsIDAuMDAyMjkzIiwgXAotICAgICAgICAgICIwLjAwMjIzMywgMC4wMDIyNDUsIDAuMDAyMjY1LCAwLjAwMjI3MSwgMC4wMDIyNzMsIDAuMDAyMjc2LCAwLjAwMjI3NiIsIFwKLSAgICAgICAgICAiMC4wMDIyMjMsIDAuMDAyMjM1LCAwLjAwMjI1NywgMC4wMDIyNjIsIDAuMDAyMjY2LCAwLjAwMjI2OCwgMC4wMDIyNjkiLCBcCi0gICAgICAgICAgIjAuMDAyMjE3LCAwLjAwMjIyOCwgMC4wMDIyNTEsIDAuMDAyMjU3LCAwLjAwMjI2LCAwLjAwMjI2MywgMC4wMDIyNjQiLCBcCi0gICAgICAgICAgIjAuMDAyMjEyLCAwLjAwMjIyNCwgMC4wMDIyNDgsIDAuMDAyMjU0LCAwLjAwMjI1NywgMC4wMDIyNjEsIDAuMDAyMjYyIiwgXAotICAgICAgICAgICIwLjAwMjIxLCAwLjAwMjIyMiwgMC4wMDIyNDcsIDAuMDAyMjUzLCAwLjAwMjI1NywgMC4wMDIyNjEsIDAuMDAyMjYyIiwgXAotICAgICAgICAgICIwLjAwMjIxNCwgMC4wMDIyMjUsIDAuMDAyMjQ5LCAwLjAwMjI1NiwgMC4wMDIyNiwgMC4wMDIyNjQsIDAuMDAyMjY1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0NDc1LCAwLjAwNDQ5MSwgMC4wMDQ1MTgsIDAuMDA0NTI1LCAwLjAwNDUyOCwgMC4wMDQ1MzIsIDAuMDA0NTMzIiwgXAotICAgICAgICAgICIwLjAwNDQ2NiwgMC4wMDQ0ODIsIDAuMDA0NTA5LCAwLjAwNDUxNiwgMC4wMDQ1MTksIDAuMDA0NTIzLCAwLjAwNDUyNCIsIFwKLSAgICAgICAgICAiMC4wMDQ0NTksIDAuMDA0NDc0LCAwLjAwNDUwMywgMC4wMDQ1MSwgMC4wMDQ1MTQsIDAuMDA0NTE3LCAwLjAwNDUxOCIsIFwKLSAgICAgICAgICAiMC4wMDQ0NTUsIDAuMDA0NDcsIDAuMDA0NSwgMC4wMDQ1MDcsIDAuMDA0NTExLCAwLjAwNDUxNSwgMC4wMDQ1MTYiLCBcCi0gICAgICAgICAgIjAuMDA0NDUzLCAwLjAwNDQ2OCwgMC4wMDQ0OTgsIDAuMDA0NTA1LCAwLjAwNDUxLCAwLjAwNDUxNCwgMC4wMDQ1MTUiLCBcCi0gICAgICAgICAgIjAuMDA0NDUxLCAwLjAwNDQ2NSwgMC4wMDQ0OTcsIDAuMDA0NTA1LCAwLjAwNDUxLCAwLjAwNDUxNSwgMC4wMDQ1MTYiLCBcCi0gICAgICAgICAgIjAuMDA0NDUyLCAwLjAwNDQ2NiwgMC4wMDQ0OTgsIDAuMDA0NTA3LCAwLjAwNDUxMiwgMC4wMDQ1MTcsIDAuMDA0NTE5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxNjE3LCAwLjAwMTYyLCAwLjAwMTYyMywgMC4wMDE2MjQsIDAuMDAxNjI0LCAwLjAwMTYyNSwgMC4wMDE2MjQiLCBcCi0gICAgICAgICAgIjAuMDAxNTk3LCAwLjAwMTYsIDAuMDAxNjA0LCAwLjAwMTYwNSwgMC4wMDE2MDUsIDAuMDAxNjA1LCAwLjAwMTYwNSIsIFwKLSAgICAgICAgICAiMC4wMDE1ODYsIDAuMDAxNTksIDAuMDAxNTk2LCAwLjAwMTU5NiwgMC4wMDE1OTcsIDAuMDAxNTk4LCAwLjAwMTU5NyIsIFwKLSAgICAgICAgICAiMC4wMDE1OCwgMC4wMDE1ODYsIDAuMDAxNTkyLCAwLjAwMTU5MywgMC4wMDE1OTMsIDAuMDAxNTk0LCAwLjAwMTU5NCIsIFwKLSAgICAgICAgICAiMC4wMDE1OCwgMC4wMDE1ODUsIDAuMDAxNTkyLCAwLjAwMTU5MywgMC4wMDE1OTQsIDAuMDAxNTk0LCAwLjAwMTU5NSIsIFwKLSAgICAgICAgICAiMC4wMDE1NzksIDAuMDAxNTg1LCAwLjAwMTU5NSwgMC4wMDE1OTYsIDAuMDAxNTk2LCAwLjAwMTU5NywgMC4wMDE1OTciLCBcCi0gICAgICAgICAgIjAuMDAxNTgyLCAwLjAwMTU4OCwgMC4wMDE1OTksIDAuMDAxNiwgMC4wMDE2MDEsIDAuMDAxNjAyLCAwLjAwMTYwMiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjc5OSwgMC4wMDI4MDYsIDAuMDAyODE0LCAwLjAwMjgxNSwgMC4wMDI4MTYsIDAuMDAyODE3LCAwLjAwMjgxNyIsIFwKLSAgICAgICAgICAiMC4wMDI3ODcsIDAuMDAyNzk0LCAwLjAwMjgwMywgMC4wMDI4MDQsIDAuMDAyODA1LCAwLjAwMjgwNiwgMC4wMDI4MDYiLCBcCi0gICAgICAgICAgIjAuMDAyNzgsIDAuMDAyNzg4LCAwLjAwMjc5OCwgMC4wMDI3OTksIDAuMDAyOCwgMC4wMDI4MDEsIDAuMDAyODAxIiwgXAotICAgICAgICAgICIwLjAwMjc3NywgMC4wMDI3ODUsIDAuMDAyNzk2LCAwLjAwMjc5OCwgMC4wMDI4LCAwLjAwMjgwMSwgMC4wMDI4MDEiLCBcCi0gICAgICAgICAgIjAuMDAyNzczLCAwLjAwMjc4MiwgMC4wMDI3OTYsIDAuMDAyNzk4LCAwLjAwMjgsIDAuMDAyODAxLCAwLjAwMjgwMSIsIFwKLSAgICAgICAgICAiMC4wMDI3NzEsIDAuMDAyNzgxLCAwLjAwMjc5NSwgMC4wMDI3OTksIDAuMDAyODAxLCAwLjAwMjgwMiwgMC4wMDI4MDMiLCBcCi0gICAgICAgICAgIjAuMDAyNzczLCAwLjAwMjc4MywgMC4wMDI4LCAwLjAwMjgwMywgMC4wMDI4MDYsIDAuMDAyODA3LCAwLjAwMjgwOCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlMwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQzNDgsIDAuMDA0MzU5LCAwLjAwNDM4LCAwLjAwNDM4NywgMC4wMDQzODksIDAuMDA0MzkyLCAwLjAwNDM5MiIsIFwKLSAgICAgICAgICAiMC4wMDQzMywgMC4wMDQzNDIsIDAuMDA0MzY0LCAwLjAwNDM3LCAwLjAwNDM3MiwgMC4wMDQzNzQsIDAuMDA0Mzc1IiwgXAotICAgICAgICAgICIwLjAwNDMzMiwgMC4wMDQzNDMsIDAuMDA0MzY1LCAwLjAwNDM3LCAwLjAwNDM3MywgMC4wMDQzNzYsIDAuMDA0Mzc2IiwgXAotICAgICAgICAgICIwLjAwNDMzOSwgMC4wMDQzNSwgMC4wMDQzNzIsIDAuMDA0Mzc3LCAwLjAwNDM4MSwgMC4wMDQzODMsIDAuMDA0Mzg0IiwgXAotICAgICAgICAgICIwLjAwNDM0NywgMC4wMDQzNjIsIDAuMDA0MzgzLCAwLjAwNDM4NSwgMC4wMDQzOTEsIDAuMDA0MzkzLCAwLjAwNDM5NSIsIFwKLSAgICAgICAgICAiMC4wMDQzNzIsIDAuMDA0MzgsIDAuMDA0NDAxLCAwLjAwNDQxMSwgMC4wMDQ0MTQsIDAuMDA0NDE3LCAwLjAwNDQxMyIsIFwKLSAgICAgICAgICAiMC4wMDQzOSwgMC4wMDQ0MDUsIDAuMDA0NDI3LCAwLjAwNDQzMiwgMC4wMDQ0MzQsIDAuMDA0NDM3LCAwLjAwNDQzNSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDEwNywgMC4wMDQxMjIsIDAuMDA0MTUsIDAuMDA0MTU3LCAwLjAwNDE2LCAwLjAwNDE2NCwgMC4wMDQxNjUiLCBcCi0gICAgICAgICAgIjAuMDA0MDg0LCAwLjAwNDEsIDAuMDA0MTI4LCAwLjAwNDEzNCwgMC4wMDQxMzgsIDAuMDA0MTQyLCAwLjAwNDE0MyIsIFwKLSAgICAgICAgICAiMC4wMDQwODksIDAuMDA0MTA0LCAwLjAwNDEzMiwgMC4wMDQxMzksIDAuMDA0MTQzLCAwLjAwNDE0NiwgMC4wMDQxNDciLCBcCi0gICAgICAgICAgIjAuMDA0MDkzLCAwLjAwNDEwOCwgMC4wMDQxMzYsIDAuMDA0MTQzLCAwLjAwNDE0NywgMC4wMDQxNSwgMC4wMDQxNTEiLCBcCi0gICAgICAgICAgIjAuMDA0MTAzLCAwLjAwNDExNywgMC4wMDQxNDYsIDAuMDA0MTUyLCAwLjAwNDE1NSwgMC4wMDQxNiwgMC4wMDQxNjEiLCBcCi0gICAgICAgICAgIjAuMDA0MTI2LCAwLjAwNDE0MiwgMC4wMDQxNywgMC4wMDQxNzcsIDAuMDA0MTgxLCAwLjAwNDE4NSwgMC4wMDQxODYiLCBcCi0gICAgICAgICAgIjAuMDA0MTQ3LCAwLjAwNDE2OCwgMC4wMDQxODksIDAuMDA0MjAyLCAwLjAwNDIwNiwgMC4wMDQyMDksIDAuMDA0MjEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTMSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzODQzLCAwLjAwMzg1MywgMC4wMDM4NjksIDAuMDAzODcyLCAwLjAwMzg3NCwgMC4wMDM4NzYsIDAuMDAzODc2IiwgXAotICAgICAgICAgICIwLjAwMzg2OCwgMC4wMDM4NzgsIDAuMDAzODk0LCAwLjAwMzkwMSwgMC4wMDM4OTksIDAuMDAzOTA0LCAwLjAwMzkwMSIsIFwKLSAgICAgICAgICAiMC4wMDM5MTcsIDAuMDAzOTI3LCAwLjAwMzk0NCwgMC4wMDM5NDcsIDAuMDAzOTQ5LCAwLjAwMzk1MywgMC4wMDM5NTMiLCBcCi0gICAgICAgICAgIjAuMDAzOTUsIDAuMDAzOTU5LCAwLjAwMzk3NywgMC4wMDM5ODIsIDAuMDAzOTg0LCAwLjAwMzk4NywgMC4wMDM5ODciLCBcCi0gICAgICAgICAgIjAuMDAzOTksIDAuMDA0MDAyLCAwLjAwNDAyLCAwLjAwNDAyNCwgMC4wMDQwMjcsIDAuMDA0MDI5LCAwLjAwNDAyOSIsIFwKLSAgICAgICAgICAiMC4wMDQwNTMsIDAuMDA0MDY2LCAwLjAwNDA4MywgMC4wMDQwODcsIDAuMDA0MDksIDAuMDA0MDkzLCAwLjAwNDA5MyIsIFwKLSAgICAgICAgICAiMC4wMDQxMTksIDAuMDA0MTI5LCAwLjAwNDE0NiwgMC4wMDQxNTEsIDAuMDA0MTU1LCAwLjAwNDE1NiwgMC4wMDQxNTgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI0NzYsIDAuMDAyNDg1LCAwLjAwMjUsIDAuMDAyNTAzLCAwLjAwMjUwNCwgMC4wMDI1MDYsIDAuMDAyNTA2IiwgXAotICAgICAgICAgICIwLjAwMjQ1MywgMC4wMDI0NjIsIDAuMDAyNDc2LCAwLjAwMjQ3OSwgMC4wMDI0ODEsIDAuMDAyNDgzLCAwLjAwMjQ4MyIsIFwKLSAgICAgICAgICAiMC4wMDI0NTksIDAuMDAyNDY4LCAwLjAwMjQ4MiwgMC4wMDI0ODUsIDAuMDAyNDg2LCAwLjAwMjQ4OCwgMC4wMDI0ODgiLCBcCi0gICAgICAgICAgIjAuMDAyNDY2LCAwLjAwMjQ3NSwgMC4wMDI0ODgsIDAuMDAyNDkxLCAwLjAwMjQ5MywgMC4wMDI0OTQsIDAuMDAyNDk1IiwgXAotICAgICAgICAgICIwLjAwMjQ3MSwgMC4wMDI0ODEsIDAuMDAyNDk0LCAwLjAwMjQ5NywgMC4wMDI0OTksIDAuMDAyNSwgMC4wMDI1IiwgXAotICAgICAgICAgICIwLjAwMjQ5NSwgMC4wMDI1MDMsIDAuMDAyNTE3LCAwLjAwMjUyLCAwLjAwMjUyMiwgMC4wMDI1MjEsIDAuMDAyNTIyIiwgXAotICAgICAgICAgICIwLjAwMjUxOCwgMC4wMDI1MjcsIDAuMDAyNTQxLCAwLjAwMjU0MywgMC4wMDI1NDUsIDAuMDAyNTQ3LCAwLjAwMjU0NyIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBNWDNYMiAqCi0gKiAtLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoTVgzWDIpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4yNDYzMzE7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY3MDY2OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDY2OTE0NDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2NzA2NjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA3MTUsIDAuMDAwNjk0LCAwLjAwMDY4NSwgMC4wMDA2ODEsIDAuMDAwNjgxLCAwLjAwMDY4NCwgMC4wMDA2OTEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDIyMDUsIDAuMDAyMTkzLCAwLjAwMjE4OCwgMC4wMDIxODYsIDAuMDAyMTg2LCAwLjAwMjE4OSwgMC4wMDIxOTQiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYzNzc4NTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MzYzODg7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjM3Nzg1OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDIxNywgMC4wMDAyMiwgMC4wMDAyMjEsIDAuMDAwMjIxLCAwLjAwMDIyMSwgMC4wMDAyMjIsIDAuMDAwMjIyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjMsIDAuMDAwMjI3LCAwLjAwMDIyNywgMC4wMDAyMjcsIDAuMDAwMjI3LCAwLjAwMDIyNywgMC4wMDAyMjciKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEMpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDU5NDY2NDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA1OTMzOTY7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNTk0NjY0OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDIxOCwgMC4wMDAyMiwgMC4wMDAyMjEsIDAuMDAwMjIxLCAwLjAwMDIyMiwgMC4wMDAyMjIsIDAuMDAwMjIyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjMxLCAwLjAwMDIyOCwgMC4wMDAyMjcsIDAuMDAwMjI3LCAwLjAwMDIyNywgMC4wMDAyMjcsIDAuMDAwMjI3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxMjI0MTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDEyMjM3NDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDEyMjQxOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDE4NCwgMC4wMDAxNTYsIDAuMDAwMTU5LCAwLjAwMDE2MywgMC4wMDAxOCwgMC4wMDAyLCAwLjAwMDIyNiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTkzNiwgMC4wMDE5MTUsIDAuMDAxOTEzLCAwLjAwMTkyMiwgMC4wMDE5MzMsIDAuMDAxOTU4LCAwLjAwMTk4MiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUzEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTIwNzc7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxMjA3MzE7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxMjA3NzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxOTUsIDAuMDAwMTY3LCAwLjAwMDE2OSwgMC4wMDAxNzYsIDAuMDAwMTkxLCAwLjAwMDIyLCAwLjAwMDI0NyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTc3NSwgMC4wMDE3NTQsIDAuMDAxNzYsIDAuMDAxNzY0LCAwLjAwMTc3MiwgMC4wMDE3OTcsIDAuMDAxODIiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC40OTI4NDM7Ci0gICAgZnVuY3Rpb24gOiAiKChTMSBDKSArICghUzEgKChTMCBCKSArICghUzAgQSkpKSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEzMTEwOCwgMC4yNDEwNTgsIDAuMzIyNjc2LCAwLjQyNDQyNSwgMC41MjYwODIsIDAuNjI3NzUsIDAuNzI5MzkzIiwgXAotICAgICAgICAgICIwLjEzOTg2MiwgMC4yNDk3NDgsIDAuMzMxMzYxLCAwLjQzMzA5NiwgMC41MzQ3NywgMC42MzYzNTYsIDAuNzM4MTA2IiwgXAotICAgICAgICAgICIwLjE1MDY2NywgMC4yNjA1MTQsIDAuMzQyMTIzLCAwLjQ0MzgyOCwgMC41NDU0ODgsIDAuNjQ3MTYsIDAuNzQ4ODg5IiwgXAotICAgICAgICAgICIwLjE2MTQxMiwgMC4yNzEzMTksIDAuMzUyOTQ0LCAwLjQ1NDY1LCAwLjU1NjMxMSwgMC42NTc5NTYsIDAuNzU5NzE2IiwgXAotICAgICAgICAgICIwLjE3MTg2NSwgMC4yODE3OTYsIDAuMzYzNDI1LCAwLjQ2NTE0OCwgMC41NjY4MDksIDAuNjY4NDk1LCAwLjc3MDE3IiwgXAotICAgICAgICAgICIwLjE4ODQ2NSwgMC4yOTgzMzYsIDAuMzc5OTc3LCAwLjQ4MTY4NCwgMC41ODMzMzcsIDAuNjg1MDYxLCAwLjc4NjcwMyIsIFwKLSAgICAgICAgICAiMC4yMDE1NzEsIDAuMzExNTg1LCAwLjM5MzI0MywgMC40OTQ5NTYsIDAuNTk2NjE4LCAwLjY5ODI2OCwgMC43OTk5MTQiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY4MjcxLCAwLjI2ODE3OCwgMC40MzI3NDUsIDAuNjM5NDEyLCAwLjg0ODE1NCwgMS4wNTY5OCwgMS4yNjg2NiIsIFwKLSAgICAgICAgICAiMC4wNjgzMzcsIDAuMjY4MTksIDAuNDMyMzk4LCAwLjY0MDcxMSwgMC44NDk2NDksIDEuMDU4NzEsIDEuMjY4NjUiLCBcCi0gICAgICAgICAgIjAuMDY4Mjk0LCAwLjI2ODIxMSwgMC40MzIzOTUsIDAuNjQwNDMsIDAuODQ4MzQ1LCAxLjA1ODk1LCAxLjI2NiIsIFwKLSAgICAgICAgICAiMC4wNjgzNDksIDAuMjY4MTY4LCAwLjQzMjM4LCAwLjY0MDQyMiwgMC44NDgzNDcsIDEuMDU4NzksIDEuMjY2IiwgXAotICAgICAgICAgICIwLjA2ODM2NCwgMC4yNjgxOTYsIDAuNDMyMjE4LCAwLjY0MDYxNiwgMC44NDk0NzYsIDEuMDU2OTksIDEuMjY4NDEiLCBcCi0gICAgICAgICAgIjAuMDY4NTk5LCAwLjI2ODI3NywgMC40MzIxNjgsIDAuNjQwNDQ2LCAwLjg0OTI3NSwgMS4wNTcwOSwgMS4yNjg1OSIsIFwKLSAgICAgICAgICAiMC4wNjg5MTIsIDAuMjY4Mzk2LCAwLjQzMjMyNCwgMC42NDA0MzMsIDAuODQ5MDI4LCAxLjA1ODIyLCAxLjI2NjcyIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEzNzA0NSwgMC4yNTA4NDMsIDAuMzM0MTI2LCAwLjQzNzYzMiwgMC41NDEwODksIDAuNjQ0NTM4LCAwLjc0ODA5OSIsIFwKLSAgICAgICAgICAiMC4xNDU2MSwgMC4yNTk0MTUsIDAuMzQyNjk1LCAwLjQ0NjIxMywgMC41NDk2NiwgMC42NTMxMTQsIDAuNzU2NjYzIiwgXAotICAgICAgICAgICIwLjE1NTUxNywgMC4yNjkyMywgMC4zNTI1NDEsIDAuNDU2MDYsIDAuNTU5NTA1LCAwLjY2Mjk1LCAwLjc2NjQzMyIsIFwKLSAgICAgICAgICAiMC4xNjUxODksIDAuMjc4OTc0LCAwLjM2MjI0NCwgMC40NjU3OTIsIDAuNTY5MzA2LCAwLjY3MjY4OSwgMC43NzYyNTgiLCBcCi0gICAgICAgICAgIjAuMTc0Njc1LCAwLjI4ODQwMywgMC4zNzE3MjUsIDAuNDc1MjQ3LCAwLjU3ODcwNSwgMC42ODIxOTcsIDAuNzg1NjcxIiwgXAotICAgICAgICAgICIwLjE4OTIxLCAwLjMwMjk2MSwgMC4zODYyODUsIDAuNDg5ODEsIDAuNTkzMjU4LCAwLjY5NjcwOCwgMC44MDAyMTkiLCBcCi0gICAgICAgICAgIjAuMjAxMzU3LCAwLjMxNTI2NiwgMC4zOTg1ODQsIDAuNTAyMTE0LCAwLjYwNTU2NSwgMC43MDkwMzIsIDAuODEyNDQ3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3MDk2NywgMC4yNzA2NTUsIDAuNDM0MDk0LCAwLjY0MjAyNywgMC44NTA1MjMsIDEuMDU4LCAxLjI2NTkxIiwgXAotICAgICAgICAgICIwLjA3MDg2OSwgMC4yNzA2NTcsIDAuNDM0MDk2LCAwLjY0MTAzLCAwLjg1MDQ5MywgMS4wNTgwNiwgMS4yNjU5NyIsIFwKLSAgICAgICAgICAiMC4wNzEwNSwgMC4yNzA2MDIsIDAuNDM0MTA4LCAwLjY0MTEyNCwgMC44NTA0NzUsIDEuMDU5NjEsIDEuMjY5MzciLCBcCi0gICAgICAgICAgIjAuMDcxLCAwLjI3MDY1OCwgMC40MzQzOTcsIDAuNjQyMDUzLCAwLjg0ODk3OSwgMS4wNTc4OSwgMS4yNjY0MSIsIFwKLSAgICAgICAgICAiMC4wNzA5ODIsIDAuMjcwNzgxLCAwLjQzNDA2MSwgMC42NDExMywgMC44NTAwOSwgMS4wNTk5MSwgMS4yNjcyMSIsIFwKLSAgICAgICAgICAiMC4wNzExODUsIDAuMjcwNjI3LCAwLjQzNDA4LCAwLjY0MTExMiwgMC44NTA0NTMsIDEuMDU5NjQsIDEuMjY5NTciLCBcCi0gICAgICAgICAgIjAuMDcxNjc4LCAwLjI3MDg5MywgMC40MzQxODcsIDAuNjQxMTMzLCAwLjg1MDUwNCwgMS4wNTc5NiwgMS4yNjkwOCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMzE1OSwgMC4yNDE1NzIsIDAuMzIzMTk3LCAwLjQyNDk1MSwgMC41MjY1ODksIDAuNjI4MjcyLCAwLjcyOTkyOCIsIFwKLSAgICAgICAgICAiMC4xNDA2MywgMC4yNTA1NTYsIDAuMzMyMTc1LCAwLjQzMzg3OSwgMC41MzU1NCwgMC42MzcxODUsIDAuNzM4ODIyIiwgXAotICAgICAgICAgICIwLjE1MTQ4OCwgMC4yNjEzNTgsIDAuMzQzMDIsIDAuNDQ0NzIyLCAwLjU0NjM4MSwgMC42NDgyMDcsIDAuNzQ5Njc2IiwgXAotICAgICAgICAgICIwLjE2MjM2OSwgMC4yNzIzMTMsIDAuMzUzOTQ4LCAwLjQ1NTY2OSwgMC41NTczMzEsIDAuNjU5MDM5LCAwLjc2MDY5OSIsIFwKLSAgICAgICAgICAiMC4xNzI4MTksIDAuMjgyNzg4LCAwLjM2NDQyNSwgMC40NjYxNzQsIDAuNTY3ODgsIDAuNjY5NTIxLCAwLjc3MTE3MyIsIFwKLSAgICAgICAgICAiMC4xODkxNzMsIDAuMjk5MTU2LCAwLjM4MDc3OSwgMC40ODI1MTUsIDAuNTg0MTU5LCAwLjY4NTgzOSwgMC43ODc1NzIiLCBcCi0gICAgICAgICAgIjAuMjAyODIyLCAwLjMxMjg5LCAwLjM5NDUzOCwgMC40OTYyNSwgMC41OTc5MDUsIDAuNjk5NjM5LCAwLjgwMTI3MiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjgyOTIsIDAuMjY4MjIzLCAwLjQzMjc3NywgMC42MzkzODQsIDAuODQ4MDYxLCAxLjA1NjgyLCAxLjI2ODcyIiwgXAotICAgICAgICAgICIwLjA2ODI5NCwgMC4yNjgyMjcsIDAuNDMyNDMsIDAuNjQwNDcxLCAwLjg0ODM3OCwgMS4wNTgzNSwgMS4yNjg0OSIsIFwKLSAgICAgICAgICAiMC4wNjgzMjQsIDAuMjY4MjcsIDAuNDMyNDI0LCAwLjY0MDQ0MywgMC44NDgzNCwgMS4wNTY5MywgMS4yNjY3MiIsIFwKLSAgICAgICAgICAiMC4wNjgyNjEsIDAuMjY4MjMxLCAwLjQzMjA5NiwgMC42NDA3MDgsIDAuODQ5NDk1LCAxLjA1NzE1LCAxLjI2ODQ0IiwgXAotICAgICAgICAgICIwLjA2ODMyNiwgMC4yNjgyNCwgMC40MzI3MjcsIDAuNjQwNjQ3LCAwLjg0OTYzMSwgMS4wNTg4OSwgMS4yNjg0MyIsIFwKLSAgICAgICAgICAiMC4wNjg1MTksIDAuMjY4Mjk3LCAwLjQzMjczNywgMC42NDA3NDQsIDAuODQ4MzczLCAxLjA1ODk4LCAxLjI2NjAyIiwgXAotICAgICAgICAgICIwLjA2ODc4OSwgMC4yNjgzNjYsIDAuNDMyMzMxLCAwLjY0MDQ2NCwgMC44NDkyMjUsIDEuMDU3MTgsIDEuMjY4MzciKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTM4NzksIDAuMjUyNzE3LCAwLjMzNjAyNCwgMC40Mzk1NTIsIDAuNTQzMDE3LCAwLjY0NjQ3NSwgMC43NTAwNDciLCBcCi0gICAgICAgICAgIjAuMTQ3MzM3LCAwLjI2MTIwNCwgMC4zNDQ1MjMsIDAuNDQ4MDU5LCAwLjU1MTU2MSwgMC42NTQ5ODcsIDAuNzU4NTY5IiwgXAotICAgICAgICAgICIwLjE1NzA1NSwgMC4yNzA5NzQsIDAuMzU0Mjc3LCAwLjQ1NzgxNSwgMC41NjEyNzUsIDAuNjY0NzQsIDAuNzY4MTY1IiwgXAotICAgICAgICAgICIwLjE2Njg1MywgMC4yODA2NTgsIDAuMzY0LCAwLjQ2NzUzNiwgMC41NzEwMDYsIDAuNjc0NDc0LCAwLjc3Nzk3NiIsIFwKLSAgICAgICAgICAiMC4xNzYzMDksIDAuMjkwMTE3LCAwLjM3MzQ2MiwgMC40NzcwMDEsIDAuNTgwNDcxLCAwLjY4Mzk2OCwgMC43ODc0NDQiLCBcCi0gICAgICAgICAgIjAuMTkwNzIzLCAwLjMwNDY1NiwgMC4zODc5NTksIDAuNDkxNTQ1LCAwLjU5NDk4MywgMC42OTg0NSwgMC44MDIwMzYiLCBcCi0gICAgICAgICAgIjAuMjAyOTkxLCAwLjMxNzAyLCAwLjQwMDM0NiwgMC41MDM4ODcsIDAuNjA3MzU4LCAwLjcxMDgyNCwgMC44MTQyNTUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDcwOTgzLCAwLjI3MDc4OCwgMC40MzQyMjIsIDAuNjQxMzA2LCAwLjg1MDU4NSwgMS4wNTgwNywgMS4yNjU2NiIsIFwKLSAgICAgICAgICAiMC4wNzEwMTYsIDAuMjcwNzY1LCAwLjQzNDI2MywgMC42NDEyNTcsIDAuODUwNzg5LCAxLjA1ODIxLCAxLjI2Njg2IiwgXAotICAgICAgICAgICIwLjA3MTEwNCwgMC4yNzA3OTEsIDAuNDM0MjI3LCAwLjY0MTE3OSwgMC44NTA1ODYsIDEuMDU4MTcsIDEuMjY4ODIiLCBcCi0gICAgICAgICAgIjAuMDcxMDUxLCAwLjI3MDcxMiwgMC40MzQyNDMsIDAuNjQxMjUzLCAwLjg1MDI4NCwgMS4wNTk4MiwgMS4yNjY4OCIsIFwKLSAgICAgICAgICAiMC4wNzEwNjksIDAuMjcwNjk0LCAwLjQzNDE4NSwgMC42NDEyNDMsIDAuODUwMjc5LCAxLjA2MDAyLCAxLjI2Njk0IiwgXAotICAgICAgICAgICIwLjA3MTI5MiwgMC4yNzA3MDEsIDAuNDM0NDczLCAwLjY0MjI3MiwgMC44NTA1NDcsIDEuMDU3OTgsIDEuMjY2MjgiLCBcCi0gICAgICAgICAgIjAuMDcxNzU5LCAwLjI3MTAyOSwgMC40MzQzMDEsIDAuNjQyMTY0LCAwLjg1MDYxNywgMS4wNTgxNSwgMS4yNjg4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4NDUzNSwgMC4xODg1ODIsIDAuMjY5OTUyLCAwLjM3MTY1NiwgMC40NzMyNjUsIDAuNTc0ODY5LCAwLjY3NjQ2NyIsIFwKLSAgICAgICAgICAiMC4wOTM0OTgsIDAuMTk3NTE3LCAwLjI3ODkwNCwgMC4zODA1NzksIDAuNDgyMjEyLCAwLjU4MzgxMiwgMC42ODU0MjgiLCBcCi0gICAgICAgICAgIjAuMTA0NDQ5LCAwLjIwODQ3MiwgMC4yODk4NjcsIDAuMzkxNTQzLCAwLjQ5MzE3NiwgMC41OTQ3NzYsIDAuNjk2MzkyIiwgXAotICAgICAgICAgICIwLjExNTAyNiwgMC4yMTkwNjksIDAuMzAwNDUyLCAwLjQwMjE2MywgMC41MDM3NjMsIDAuNjA1Mzc2LCAwLjcwNzAxMiIsIFwKLSAgICAgICAgICAiMC4xMjUxODMsIDAuMjI5MjksIDAuMzEwNjgzLCAwLjQxMjQzMywgMC41MTQwMDMsIDAuNjE1NTg5LCAwLjcxNzIwNSIsIFwKLSAgICAgICAgICAiMC4xNDA0MzksIDAuMjQ0NjcxLCAwLjMyNjA4NSwgMC40Mjc3NTksIDAuNTI5Mzc1LCAwLjYzMDk5MywgMC43MzI1NjUiLCBcCi0gICAgICAgICAgIjAuMTUyMzY5LCAwLjI1NjkwMiwgMC4zMzgyNzksIDAuNDM5OTQ3LCAwLjU0MTYzMSwgMC42NDMyNzIsIDAuNzQ0Nzk3Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1ODU2NiwgMC4yNjEzMDQsIDAuNDI4MjE2LCAwLjYzNjU4NiwgMC44NDYyNzMsIDEuMDU1OTEsIDEuMjY1NDUiLCBcCi0gICAgICAgICAgIjAuMDU4NDk3LCAwLjI2MTUwNiwgMC40MjgxOTgsIDAuNjM3NjU5LCAwLjg0NzMwOSwgMS4wNTU3NSwgMS4yNjM3NCIsIFwKLSAgICAgICAgICAiMC4wNTg0NiwgMC4yNjE0OTgsIDAuNDI4MTgzLCAwLjYzNjQ5OCwgMC44NDcyODUsIDEuMDU1NzUsIDEuMjY1NTIiLCBcCi0gICAgICAgICAgIjAuMDU4NjA1LCAwLjI2MTE3NCwgMC40MjgxOTEsIDAuNjM3NzAxLCAwLjg0NzI4NSwgMS4wNTcsIDEuMjY2ODMiLCBcCi0gICAgICAgICAgIjAuMDU4ODg5LCAwLjI2MTM1NSwgMC40Mjc4MDUsIDAuNjM2NTA3LCAwLjg0NzE3MywgMS4wNTY1MSwgMS4yNjUzMSIsIFwKLSAgICAgICAgICAiMC4wNTk5OTUsIDAuMjYxOTQ4LCAwLjQyODM2OCwgMC42MzY4MjUsIDAuODQ2MzI1LCAxLjA1NTY5LCAxLjI2NjUiLCBcCi0gICAgICAgICAgIjAuMDYxMzY3LCAwLjI2MTkwMiwgMC40MjgzOTgsIDAuNjM3NTc0LCAwLjg0NzI1OSwgMS4wNTcwMiwgMS4yNjY2Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4OTQ0NywgMC4xOTYwNTIsIDAuMjc4ODk2LCAwLjM4MjM2NiwgMC40ODU4NDIsIDAuNTg5MjI1LCAwLjY5MjYzNiIsIFwKLSAgICAgICAgICAiMC4wOTc5MTgsIDAuMjA0NTUxLCAwLjI4NzM4NiwgMC4zOTA4NjgsIDAuNDk0MzA4LCAwLjU5NzcyMSwgMC43MDExMTUiLCBcCi0gICAgICAgICAgIjAuMTA3NzI5LCAwLjIxNDMzOSwgMC4yOTcxODgsIDAuNDAwNjksIDAuNTA0MTM0LCAwLjYwNzUxOCwgMC43MTA5ODciLCBcCi0gICAgICAgICAgIjAuMTE3MjE2LCAwLjIyMzg2NCwgMC4zMDY3MTYsIDAuNDEwMTkzLCAwLjUxMzY2NCwgMC42MTcwNTIsIDAuNzIwNDQ0IiwgXAotICAgICAgICAgICIwLjEyNjM1MSwgMC4yMzMwODUsIDAuMzE1OTM1LCAwLjQxOTQzNSwgMC41MjI4ODcsIDAuNjI2Mjk0LCAwLjcyOTY2OCIsIFwKLSAgICAgICAgICAiMC4xMzk4MDgsIDAuMjQ2NjA5LCAwLjMyOTQ4OCwgMC40MzI5NjgsIDAuNTM2NDI2LCAwLjYzOTg0NywgMC43NDMyMjEiLCBcCi0gICAgICAgICAgIjAuMTUwMjA2LCAwLjI1NzQzOCwgMC4zNDAyNywgMC40NDM3NTIsIDAuNTQ3MjQ3LCAwLjY1MDYyOCwgMC43NTQwMDYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU5NjY5LCAwLjI2MTkyNSwgMC40Mjg4MDksIDAuNjM4MDEsIDAuODQ3NjEzLCAxLjA1NzQsIDEuMjY1MjgiLCBcCi0gICAgICAgICAgIjAuMDU5NjQ1LCAwLjI2MjAxNywgMC40Mjg4MTIsIDAuNjM4MDI0LCAwLjg0NjM4NiwgMS4wNTU3MSwgMS4yNjcxMiIsIFwKLSAgICAgICAgICAiMC4wNTk2MDUsIDAuMjYyMDAzLCAwLjQyODgsIDAuNjM2NjYyLCAwLjg0NzYwNCwgMS4wNTczOSwgMS4yNjcyOCIsIFwKLSAgICAgICAgICAiMC4wNTk3MjYsIDAuMjYyMTE1LCAwLjQyODgxMSwgMC42MzgwMTEsIDAuODQ3NTk2LCAxLjA1NzM5LCAxLjI2NzA3IiwgXAotICAgICAgICAgICIwLjA2MDA0MSwgMC4yNjI0NDEsIDAuNDI4ODI3LCAwLjYzNzIsIDAuODQ2MTUyLCAxLjA1NzUxLCAxLjI2NzExIiwgXAotICAgICAgICAgICIwLjA2MTEyOCwgMC4yNjI3NzIsIDAuNDI5MDA0LCAwLjYzNzAxLCAwLjg0NzU3NCwgMS4wNTUyNCwgMS4yNjcyIiwgXAotICAgICAgICAgICIwLjA2MjUxLCAwLjI2MjU3NywgMC40MjkxMTgsIDAuNjM4MTEsIDAuODQ2MTUxLCAxLjA1NzMxLCAxLjI2NzIyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlMwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMjQ5MzIsIDAuMjM0ODgzLCAwLjMxNjUxNSwgMC40MTgyMTIsIDAuNTE5ODY4LCAwLjYyMTY5OSwgMC43MjMyMTUiLCBcCi0gICAgICAgICAgIjAuMTM0MTExLCAwLjI0NDA3NiwgMC4zMjU2ODgsIDAuNDI3Mzk0LCAwLjUyOTA1NiwgMC42MzA3MiwgMC43MzI0NTUiLCBcCi0gICAgICAgICAgIjAuMTQ1ODEyLCAwLjI1NTc1MiwgMC4zMzczOTgsIDAuNDM5MTE2LCAwLjU0MDc2LCAwLjY0MjM5OSwgMC43NDQxMjUiLCBcCi0gICAgICAgICAgIjAuMTU3NTQ1LCAwLjI2NzQ4NiwgMC4zNDkxMTcsIDAuNDUwODI2LCAwLjU1MjQ5MiwgMC42NTQxNDcsIDAuNzU1ODk4IiwgXAotICAgICAgICAgICIwLjE2OTM5MywgMC4yNzkyNTEsIDAuMzYwOTA2LCAwLjQ2MjYxNSwgMC41NjQyNzYsIDAuNjY2MDE4LCAwLjc2NzYzMSIsIFwKLSAgICAgICAgICAiMC4xODc1ODIsIDAuMjk3NTMxLCAwLjM3OTE3NSwgMC40ODA4OSwgMC41ODI1NTUsIDAuNjg0MjA3LCAwLjc4NTk3NSIsIFwKLSAgICAgICAgICAiMC4yMDI1MTQsIDAuMzEyNjE0LCAwLjM5NDI1NiwgMC40OTU5NzIsIDAuNTk3NjI5LCAwLjY5OTM1MSwgMC44MDEwMDMiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY4MjcxLCAwLjI2ODEwMiwgMC40MzIyNDQsIDAuNjQwNDg0LCAwLjg0OTE1MSwgMS4wNTY4MSwgMS4yNjg2OSIsIFwKLSAgICAgICAgICAiMC4wNjgyODgsIDAuMjY4MjQsIDAuNDMyNDIxLCAwLjY0MDQ1OCwgMC44NDgzOTUsIDEuMDU4OTYsIDEuMjY4NjciLCBcCi0gICAgICAgICAgIjAuMDY4MjQzLCAwLjI2ODI2NywgMC40MzIyODgsIDAuNjQwNzMyLCAwLjg0OTA3NCwgMS4wNTg4LCAxLjI2ODQ1IiwgXAotICAgICAgICAgICIwLjA2ODMzOCwgMC4yNjgxNjksIDAuNDMyNDI1LCAwLjY0MDQ1NywgMC44NDgzODEsIDEuMDU4OTEsIDEuMjY2MDIiLCBcCi0gICAgICAgICAgIjAuMDY4Mzk3LCAwLjI2ODI1OSwgMC40MzIyNDYsIDAuNjQwMzk2LCAwLjg0OTE4NCwgMS4wNTcxMSwgMS4yNjg0MSIsIFwKLSAgICAgICAgICAiMC4wNjg1OTMsIDAuMjY4MjU5LCAwLjQzMjQ0NywgMC42NDA0NTEsIDAuODQ4MzQ2LCAxLjA1ODgzLCAxLjI2NjAyIiwgXAotICAgICAgICAgICIwLjA2OTE4MywgMC4yNjg0MjYsIDAuNDMyMjc5LCAwLjY0MDQ3MiwgMC44NDkyMzgsIDEuMDU2OTQsIDEuMjY4NDIiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTMwODA0LCAwLjI0NDU2NywgMC4zMjc4NzUsIDAuNDMxMzkyLCAwLjUzNDg3MiwgMC42MzgzLCAwLjc0MTg3MSIsIFwKLSAgICAgICAgICAiMC4xMzk2NjIsIDAuMjUzNDc4LCAwLjMzNjc1OCwgMC40NDAyNzYsIDAuNTQzNzIyLCAwLjY0NzE3NiwgMC43NTA3MjYiLCBcCi0gICAgICAgICAgIjAuMTUxMDQ2LCAwLjI2NDg1NSwgMC4zNDgxMzgsIDAuNDUxNjU5LCAwLjU1NTEwNywgMC42NTg1NjIsIDAuNzYyMTEiLCBcCi0gICAgICAgICAgIjAuMTYyMzk2LCAwLjI3NjE2MywgMC4zNTk0NDcsIDAuNDYyOTg5LCAwLjU2NjQ0NCwgMC42Njk4ODUsIDAuNzczNDU1IiwgXAotICAgICAgICAgICIwLjE3Mzc0NiwgMC4yODc1MTEsIDAuMzcwODI3LCAwLjQ3NDM1MywgMC41Nzc4MDYsIDAuNjgxMjYyLCAwLjc4NDgxNyIsIFwKLSAgICAgICAgICAiMC4xOTEwMzcsIDAuMzA0Nzk3LCAwLjM4ODExMywgMC40OTE2NDksIDAuNTk1MTMxLCAwLjY5ODU0OSwgMC44MDIwNjQiLCBcCi0gICAgICAgICAgIjAuMjA1MDQ2LCAwLjMxODk2NCwgMC40MDIyNjksIDAuNTA1ODA3LCAwLjYwOTI2MywgMC43MTI3MjgsIDAuODE2MjM1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3MDkwNSwgMC4yNzA2MjIsIDAuNDM0MTM2LCAwLjY0MTE0NCwgMC44NTA2MjcsIDEuMDU5NjgsIDEuMjY2NDUiLCBcCi0gICAgICAgICAgIjAuMDcwOTI4LCAwLjI3MDY1OSwgMC40MzQwOTgsIDAuNjQxMDM0LCAwLjg1MDQ4NCwgMS4wNTgwNSwgMS4yNjU5NiIsIFwKLSAgICAgICAgICAiMC4wNzA5MDMsIDAuMjcwNjYyLCAwLjQzNDEsIDAuNjQxMDM2LCAwLjg1MDQ4MiwgMS4wNTgwNiwgMS4yNjU5NiIsIFwKLSAgICAgICAgICAiMC4wNzEwMjYsIDAuMjcwNDkyLCAwLjQzNDA4OCwgMC42NDIwNzQsIDAuODQ5NTUyLCAxLjA1NzksIDEuMjY1NDkiLCBcCi0gICAgICAgICAgIjAuMDcxMDExLCAwLjI3MDY3LCAwLjQzNDAzMiwgMC42NDE5MjYsIDAuODUwNTE2LCAxLjA1ODA1LCAxLjI2NTk1IiwgXAotICAgICAgICAgICIwLjA3MTM4MiwgMC4yNzA3NDgsIDAuNDM0MDkxLCAwLjY0MTEzNiwgMC44NTA1OTUsIDEuMDU5NiwgMS4yNjY3MiIsIFwKLSAgICAgICAgICAiMC4wNzE5NDIsIDAuMjcwOTY0LCAwLjQzNDUxNywgMC42NDExMDUsIDAuODUwNDkyLCAxLjA1OTY5LCAxLjI2NjQ4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlMwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNDI0NSwgMC4yNTIzNSwgMC4zMzM5ODUsIDAuNDM1Njg2LCAwLjUzNzM0NCwgMC42MzkwNzUsIDAuNzQwNjk2IiwgXAotICAgICAgICAgICIwLjE1MjMxMSwgMC4yNjIxMzYsIDAuMzQzNzc0LCAwLjQ0NTQ3MiwgMC41NDcxMjEsIDAuNjQ4ODU5LCAwLjc1MDQ3NyIsIFwKLSAgICAgICAgICAiMC4xNjI5NjcsIDAuMjcyODY0LCAwLjM1NDQ5MywgMC40NTYxOTQsIDAuNTU3ODUyLCAwLjY1OTY3MywgMC43NjExNzIiLCBcCi0gICAgICAgICAgIjAuMTcxMjg5LCAwLjI4MTEyNywgMC4zNjI3NjksIDAuNDY0NDY3LCAwLjU2NjExNiwgMC42Njc4NTksIDAuNzY5NDY5IiwgXAotICAgICAgICAgICIwLjE3ODEyMywgMC4yODgwMjcsIDAuMzY5OTA5LCAwLjQ3MTYxMSwgMC41NzMyNjksIDAuNjc0OTE2LCAwLjc3NjY1MSIsIFwKLSAgICAgICAgICAiMC4xODc1NjQsIDAuMjk3NTk4LCAwLjM3OTA2OSwgMC40ODA5MzUsIDAuNTgyNTg1LCAwLjY4NDMwOSwgMC43ODU5NDkiLCBcCi0gICAgICAgICAgIjAuMTk0NTE2LCAwLjMwNDU4OSwgMC4zODYyNDUsIDAuNDg3OTUzLCAwLjU4OTYzMywgMC42OTEzMDksIDAuNzkzMDI1Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2ODMyLCAwLjI2ODE1NiwgMC40MzIzODIsIDAuNjQwNDQsIDAuODQ5MDkxLCAxLjA1NzEyLCAxLjI2ODU5IiwgXAotICAgICAgICAgICIwLjA2ODM2MiwgMC4yNjgyMjMsIDAuNDMyMjEzLCAwLjY0MDQ0MiwgMC44NDkyNywgMS4wNTcxNCwgMS4yNjg2MyIsIFwKLSAgICAgICAgICAiMC4wNjgzMjIsIDAuMjY4MjA1LCAwLjQzMjM4OCwgMC42NDA0MjQsIDAuODQ4MzIxLCAxLjA1NjkyLCAxLjI2ODUyIiwgXAotICAgICAgICAgICIwLjA2ODI1MiwgMC4yNjgyMjUsIDAuNDMyMjE0LCAwLjY0MDQyMiwgMC44NDkyNDYsIDEuMDU3MTIsIDEuMjY4NTkiLCBcCi0gICAgICAgICAgIjAuMDY4MzMxLCAwLjI2ODE2MiwgMC40MzIzNzYsIDAuNjQwNDE2LCAwLjg0ODMyNywgMS4wNTczNiwgMS4yNjYwMSIsIFwKLSAgICAgICAgICAiMC4wNjg2LCAwLjI2ODI4NiwgMC40MzIyNiwgMC42NDA0NjMsIDAuODQ5Mjg5LCAxLjA1NzIzLCAxLjI2ODU4IiwgXAotICAgICAgICAgICIwLjA2ODQyNywgMC4yNjgzODQsIDAuNDMyMzE3LCAwLjY0MDQ3LCAwLjg0OTQyNywgMS4wNTg3MiwgMS4yNjYwMiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNDgyNzMsIDAuMjYyMDc5LCAwLjM0NTQxMiwgMC40NDg5NTMsIDAuNTUyNDE4LCAwLjY1NTk3NCwgMC43NTk0NjIiLCBcCi0gICAgICAgICAgIjAuMTU4NDM2LCAwLjI3MjI3NSwgMC4zNTU1ODksIDAuNDU5MTI4LCAwLjU2MjYwOCwgMC42NjYwNDYsIDAuNzY5NjQxIiwgXAotICAgICAgICAgICIwLjE2OTY0MywgMC4yODM0NDEsIDAuMzY2NzgsIDAuNDcwMzE2LCAwLjU3Mzc4MywgMC42NzcyNjMsIDAuNzgwNzYyIiwgXAotICAgICAgICAgICIwLjE3ODg3NCwgMC4yOTI3NjEsIDAuMzc2MDcxLCAwLjQ3OTYxNywgMC41ODMwNjYsIDAuNjg2NTI1LCAwLjc5MDA5IiwgXAotICAgICAgICAgICIwLjE4NjcxOSwgMC4zMDA1MjEsIDAuMzgzODY1LCAwLjQ4NzQsIDAuNTkwODU3LCAwLjY5NDMxMywgMC43OTc4MzEiLCBcCi0gICAgICAgICAgIjAuMTk2OTkzLCAwLjMxMDk2NiwgMC4zOTQyNTQsIDAuNDk3ODM5LCAwLjYwMTI5OCwgMC43MDQ3NjQsIDAuODA4MjgzIiwgXAotICAgICAgICAgICIwLjIwNDkwMiwgMC4zMTg5MDksIDAuNDAyMTU0LCAwLjUwNTc5NywgMC42MDkyNTksIDAuNzEyNjI5LCAwLjgxNjA1NCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzA4MzIsIDAuMjcwNzI4LCAwLjQzNDIzNywgMC42NDEzMjUsIDAuODQ5MjU1LCAxLjA1NzQzLCAxLjI2NjczIiwgXAotICAgICAgICAgICIwLjA3MTA3NSwgMC4yNzA3NzUsIDAuNDM0MjQ5LCAwLjY0MTI4MiwgMC44NTA2OTQsIDEuMDU3OTksIDEuMjY2MjMiLCBcCi0gICAgICAgICAgIjAuMDcxMDMsIDAuMjcwNzA1LCAwLjQzNDI0MiwgMC42NDEyNjEsIDAuODUwMTgxLCAxLjA1OTksIDEuMjY3MTciLCBcCi0gICAgICAgICAgIjAuMDcwOTc4LCAwLjI3MDc4OCwgMC40MzQyMTgsIDAuNjQyMjE1LCAwLjg1MDU4NSwgMS4wNTgxLCAxLjI2NjA0IiwgXAotICAgICAgICAgICIwLjA3MTE1OCwgMC4yNzA3NTYsIDAuNDM0MTY3LCAwLjY0MTI0OSwgMC44NTA1NzgsIDEuMDU5OTUsIDEuMjY2NjMiLCBcCi0gICAgICAgICAgIjAuMDcxMTA0LCAwLjI3MDc5NiwgMC40MzQxOTgsIDAuNjQyMTM3LCAwLjg1MDU0NywgMS4wNTgwMSwgMS4yNjk3MyIsIFwKLSAgICAgICAgICAiMC4wNzExODMsIDAuMjcxMDE3LCAwLjQzNDMwMywgMC42NDEzMiwgMC44NTA2MzUsIDEuMDU4MDYsIDEuMjY5MjQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUzEiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3ODExNiwgMC4xODIxMTQsIDAuMjYzNTM4LCAwLjM2NTIzMiwgMC40NjY4MSwgMC41Njg0MDcsIDAuNjcwMDMzIiwgXAotICAgICAgICAgICIwLjA4NzQzOSwgMC4xOTE0NDcsIDAuMjcyODQ1LCAwLjM3NDU3NywgMC40NzYxNTIsIDAuNTc3NzM5LCAwLjY3OTM2OCIsIFwKLSAgICAgICAgICAiMC4wOTkxMjksIDAuMjAzMTUyLCAwLjI4NDU1MywgMC4zODYzLCAwLjQ4Nzg1LCAwLjU4OTU2NCwgMC42OTEwNzEiLCBcCi0gICAgICAgICAgIjAuMTEwOTQxLCAwLjIxNSwgMC4yOTY0MDEsIDAuMzk4MDg2LCAwLjQ5OTczNiwgMC42MDEzNSwgMC43MDI5NzEiLCBcCi0gICAgICAgICAgIjAuMTIyMjEzLCAwLjIyNjM2MSwgMC4zMDc3NzgsIDAuNDA5NTE3LCAwLjUxMTA4NywgMC42MTI2NzYsIDAuNzE0MzAxIiwgXAotICAgICAgICAgICIwLjEzODQzNiwgMC4yNDI2OCwgMC4zMjQwNzQsIDAuNDI1NzMzLCAwLjUyNzM5NiwgMC42Mjg5NzYsIDAuNzMwNjM2IiwgXAotICAgICAgICAgICIwLjE1MDg5NCwgMC4yNTU1MDQsIDAuMzM2ODQzLCAwLjQzODUyNiwgMC41NDAxOTUsIDAuNjQxNzc0LCAwLjc0MzM1OCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTg0MjgsIDAuMjYxMjc2LCAwLjQyODM3NiwgMC42Mzc4MDgsIDAuODQ3MzM0LCAxLjA1NTc1LCAxLjI2NTI4IiwgXAotICAgICAgICAgICIwLjA1ODQwNCwgMC4yNjEyNzIsIDAuNDI3NzI1LCAwLjYzNjQ3MiwgMC44NDczMDcsIDEuMDU2NjQsIDEuMjY1MjUiLCBcCi0gICAgICAgICAgIjAuMDU4NDU0LCAwLjI2MTMwNSwgMC40MjgyOCwgMC42Mzc1NiwgMC44NDcyNDgsIDEuMDU3MjcsIDEuMjY1NDgiLCBcCi0gICAgICAgICAgIjAuMDU4NjI4LCAwLjI2MTUzMiwgMC40MjgxOTUsIDAuNjM3MzQ3LCAwLjg0NzMyMywgMS4wNTcwNiwgMS4yNjY3MyIsIFwKLSAgICAgICAgICAiMC4wNTkxOTQsIDAuMjYxNDEyLCAwLjQyODI5OSwgMC42MzY1MzQsIDAuODQ3MTg2LCAxLjA1NjUyLCAxLjI2NTE5IiwgXAotICAgICAgICAgICIwLjA2MDk2MywgMC4yNjE2ODIsIDAuNDI4MzksIDAuNjM3NjEyLCAwLjg0NzIyNSwgMS4wNTU2LCAxLjI2NjY5IiwgXAotICAgICAgICAgICIwLjA2MjkzLCAwLjI2MjAxMywgMC40Mjg0MjgsIDAuNjM3NjgsIDAuODQ1OTk2LCAxLjA1NjksIDEuMjY1MiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTYzOTQsIDAuMjA5ODg5LCAwLjI5MzEyOCwgMC4zOTY1OTgsIDAuNTAwMDEzLCAwLjYwMzQ0NSwgMC43MDcwMzUiLCBcCi0gICAgICAgICAgIjAuMTA1MDYsIDAuMjE4NTU5LCAwLjMwMTc5OSwgMC40MDUyNzEsIDAuNTA4NzExLCAwLjYxMjExMiwgMC43MTU2ODUiLCBcCi0gICAgICAgICAgIjAuMTE1ODQ3LCAwLjIyOTMxOCwgMC4zMTI1NjksIDAuNDE2MDQ1LCAwLjUxOTQ5MSwgMC42MjI5MDEsIDAuNzI2NDY1IiwgXAotICAgICAgICAgICIwLjEyNjQ4NCwgMC4yMzk5NDUsIDAuMzIzMTkzLCAwLjQyNjY3NiwgMC41MzAxMjUsIDAuNjMzNTM1LCAwLjczNzA5OCIsIFwKLSAgICAgICAgICAiMC4xMzcwNzQsIDAuMjUwNDk3LCAwLjMzMzc0OSwgMC40MzcyMzYsIDAuNTQwNjY1LCAwLjY0NDA5OCwgMC43NDc2NzciLCBcCi0gICAgICAgICAgIjAuMTUyNjM5LCAwLjI2NjE0OCwgMC4zNDkzODIsIDAuNDUyOTA0LCAwLjU1NjMwOCwgMC42NTk3MjYsIDAuNzYzMjY5IiwgXAotICAgICAgICAgICIwLjE2NDc0MiwgMC4yNzgzNywgMC4zNjE1MDQsIDAuNDY1MDc5LCAwLjU2ODQ0NywgMC42NzE5MzMsIDAuNzc1NDI2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3MDM3LCAwLjI3MDQ2NSwgMC40MzM4NjEsIDAuNjQwODg4LCAwLjg1MDI2MiwgMS4wNTk0NywgMS4yNjkyOSIsIFwKLSAgICAgICAgICAiMC4wNzAzNCwgMC4yNzAzOTQsIDAuNDM0MTg1LCAwLjY0MDkxNCwgMC44NTA1OTMsIDEuMDU4NDcsIDEuMjY1NjQiLCBcCi0gICAgICAgICAgIjAuMDcwMjQ4LCAwLjI3MDQsIDAuNDMzODU1LCAwLjY0MDkwNywgMC44NTAzNTksIDEuMDU5NzIsIDEuMjY1NTkiLCBcCi0gICAgICAgICAgIjAuMDY5OTI3LCAwLjI3MDIzNywgMC40MzM4MjUsIDAuNjQwODk0LCAwLjg1MDM0NiwgMS4wNTk0MywgMS4yNjU2IiwgXAotICAgICAgICAgICIwLjA2OTg0MiwgMC4yNzAzNDUsIDAuNDMzNzkxLCAwLjY0MDg5LCAwLjg0OTY5NSwgMS4wNTk0OSwgMS4yNjU0OSIsIFwKLSAgICAgICAgICAiMC4wNzA0NjcsIDAuMjcwMzIxLCAwLjQzNDEwOCwgMC42NDE5NzcsIDAuODUwMywgMS4wNTc4MSwgMS4yNjU3MSIsIFwKLSAgICAgICAgICAiMC4wNzE1NzksIDAuMjcwNjk4LCAwLjQzNDQ3NSwgMC42NDE5MzMsIDAuODUwNTU0LCAxLjA1NzY5LCAxLjI2NTUxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlMxIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTQyNywgMC4yMDM5NiwgMC4yODU1MjgsIDAuMzg3MTY5LCAwLjQ4ODc3OSwgMC41OTA1OSwgMC42OTIwNzgiLCBcCi0gICAgICAgICAgIjAuMTA0MzQ2LCAwLjIxNDAwMSwgMC4yOTU1NjEsIDAuMzk3MTk5LCAwLjQ5ODgyMywgMC42MDA0OTcsIDAuNzAyMTMyIiwgXAotICAgICAgICAgICIwLjExNjEyMSwgMC4yMjU3NzksIDAuMzA3MzI0LCAwLjQwOTAwNiwgMC41MTA2NDIsIDAuNjEyMjA2LCAwLjcxMzkyNCIsIFwKLSAgICAgICAgICAiMC4xMjYwNDMsIDAuMjM1NjUzLCAwLjMxNzIxNywgMC40MTg4NTcsIDAuNTIwNDY3LCAwLjYyMjE2OCwgMC43MjM3OTIiLCBcCi0gICAgICAgICAgIjAuMTMzOTEsIDAuMjQzNDgyLCAwLjMyNTA0MywgMC40MjY2ODQsIDAuNTI4MzI5LCAwLjYzMDAwOSwgMC43MzE2MTciLCBcCi0gICAgICAgICAgIjAuMTQ0MzI0LCAwLjI1Mzc0OSwgMC4zMzUyOTUsIDAuNDM2OTQyLCAwLjUzODU2OSwgMC42NDAzNjgsIDAuNzQyMDAxIiwgXAotICAgICAgICAgICIwLjE1MjAzMiwgMC4yNjEyOTcsIDAuMzQyODc3LCAwLjQ0NDU1NSwgMC41NDYxNTcsIDAuNjQ3ODgzLCAwLjc0OTQ0Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2NzYyMSwgMC4yNjc4NjMsIDAuNDMxODk5LCAwLjY0MDE0MSwgMC44NDg5NjksIDEuMDU2NjEsIDEuMjY4NDEiLCBcCi0gICAgICAgICAgIjAuMDY3NzA1LCAwLjI2NzgyOSwgMC40MzE4MjEsIDAuNjM5NjI0LCAwLjg0ODIyLCAxLjA1NjU1LCAxLjI2ODQ2IiwgXAotICAgICAgICAgICIwLjA2NzU4NiwgMC4yNjc4NDIsIDAuNDMyMDg2LCAwLjY0MDQyMiwgMC44NDkzNTMsIDEuMDU4NDUsIDEuMjY4NDciLCBcCi0gICAgICAgICAgIjAuMDY3NTI4LCAwLjI2Nzc5LCAwLjQzMTgyOCwgMC42Mzk2NCwgMC44NDg5MzEsIDEuMDU2NywgMS4yNjg0NCIsIFwKLSAgICAgICAgICAiMC4wNjczNCwgMC4yNjc2MTgsIDAuNDMxODA0LCAwLjY0MDE0MSwgMC44NDkyNzcsIDEuMDU2OTMsIDEuMjY4NDMiLCBcCi0gICAgICAgICAgIjAuMDY3MTQzLCAwLjI2NzY1MSwgMC40MzIwMDEsIDAuNjQwMDg4LCAwLjg0ODAwOSwgMS4wNTY2OSwgMS4yNjU1IiwgXAotICAgICAgICAgICIwLjA2NzIxMiwgMC4yNjc1MTUsIDAuNDMyMjI4LCAwLjY0MDI4MSwgMC44NDkxNSwgMS4wNTg0MywgMS4yNjgxOSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTg2NTQsIDAuMjA1MzA5LCAwLjI4ODE1NSwgMC4zOTE2NjIsIDAuNDk1MDc1LCAwLjU5ODUwMywgMC43MDE4OSIsIFwKLSAgICAgICAgICAiMC4xMDg4NDYsIDAuMjE1NDkzLCAwLjI5ODM0NCwgMC40MDE4MjUsIDAuNTA1Mjk0LCAwLjYwODY4MiwgMC43MTIwOTEiLCBcCi0gICAgICAgICAgIjAuMTIwMDAyLCAwLjIyNjY2NiwgMC4zMDk1MzgsIDAuNDEzMDE1LCAwLjUxNjQ4MiwgMC42MTk4NjQsIDAuNzIzMjU0IiwgXAotICAgICAgICAgICIwLjEyODk2MywgMC4yMzU2MDYsIDAuMzE4NDQ3LCAwLjQyMTk1NCwgMC41MjUzNTQsIDAuNjI4NzkxLCAwLjczMjE3NCIsIFwKLSAgICAgICAgICAiMC4xMzY5MDIsIDAuMjQzNTM3LCAwLjMyNjM3NiwgMC40Mjk4MjUsIDAuNTMzMzUyLCAwLjYzNjczNCwgMC43NDAxMDUiLCBcCi0gICAgICAgICAgIjAuMTQ3MTYyLCAwLjI1Mzk0NCwgMC4zMzY3OTYsIDAuNDQwMjc5LCAwLjU0MzY4MywgMC42NDcwNiwgMC43NTA1NDYiLCBcCi0gICAgICAgICAgIjAuMTU0OTgsIDAuMjYxODUxLCAwLjM0NDcxNywgMC40NDgyMzMsIDAuNTUxNjMxLCAwLjY1NTA2LCAwLjc1ODQ4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1OTY0NiwgMC4yNjIxNzIsIDAuNDI4ODQyLCAwLjYzNzM0LCAwLjg0NzYzNCwgMS4wNTc1OCwgMS4yNjcxOSIsIFwKLSAgICAgICAgICAiMC4wNTk2MzUsIDAuMjYxODk4LCAwLjQyODc5NSwgMC42MzgwNDEsIDAuODQ3NjEyLCAxLjA1NzQ2LCAxLjI2NzMiLCBcCi0gICAgICAgICAgIjAuMDU5NjEzLCAwLjI2MTk0MiwgMC40Mjg5NDEsIDAuNjM3MzExLCAwLjg0NzU1MiwgMS4wNTc0NywgMS4yNjY3NyIsIFwKLSAgICAgICAgICAiMC4wNTk1NywgMC4yNjE5MjQsIDAuNDI4Nzg0LCAwLjYzNzIzMSwgMC44NDc2MjMsIDEuMDU3NTEsIDEuMjY3MTUiLCBcCi0gICAgICAgICAgIjAuMDU5NzQ1LCAwLjI2MjM1NywgMC40Mjg4MTEsIDAuNjM4MDQsIDAuODQ3Njk5LCAxLjA1NzUxLCAxLjI2NzE1IiwgXAotICAgICAgICAgICIwLjA1OTc0LCAwLjI2MjUzOSwgMC40Mjg1NTgsIDAuNjM3MzQ4LCAwLjg0NzQwNywgMS4wNTYwNCwgMS4yNjcyNyIsIFwKLSAgICAgICAgICAiMC4wNTk3NzIsIDAuMjYyMjEyLCAwLjQyODQsIDAuNjM3NDY5LCAwLjg0NzIzMiwgMS4wNTYsIDEuMjY2OTUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDMzMzEsIDAuMDAzNDEsIDAuMDAzNDI2LCAwLjAwMzQzNSwgMC4wMDM0NDEsIDAuMDAzNDQzLCAwLjAwMzQ0NiIsIFwKLSAgICAgICAgICAiMC4wMDMzMTUsIDAuMDAzMzk1LCAwLjAwMzQxLCAwLjAwMzQyLCAwLjAwMzQyNSwgMC4wMDM0MjgsIDAuMDAzNDMiLCBcCi0gICAgICAgICAgIjAuMDAzMzA2LCAwLjAwMzM4NSwgMC4wMDM0MDIsIDAuMDAzNDExLCAwLjAwMzQxNywgMC4wMDM0MjEsIDAuMDAzNDIyIiwgXAotICAgICAgICAgICIwLjAwMzMsIDAuMDAzMzc4LCAwLjAwMzM5NiwgMC4wMDM0MDYsIDAuMDAzNDExLCAwLjAwMzQxNSwgMC4wMDM0MTciLCBcCi0gICAgICAgICAgIjAuMDAzMjk2LCAwLjAwMzM3NCwgMC4wMDMzOTEsIDAuMDAzNDAyLCAwLjAwMzQxLCAwLjAwMzQxMiwgMC4wMDM0MTIiLCBcCi0gICAgICAgICAgIjAuMDAzMzAxLCAwLjAwMzM3MiwgMC4wMDMzOSwgMC4wMDM0MDEsIDAuMDAzNDA4LCAwLjAwMzQxMiwgMC4wMDM0MTQiLCBcCi0gICAgICAgICAgIjAuMDAzMywgMC4wMDMzNjksIDAuMDAzMzg5LCAwLjAwMzQwMiwgMC4wMDM0MDksIDAuMDAzNDE0LCAwLjAwMzQxNiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNTI2MywgMC4wMDUzNjYsIDAuMDA1Mzg4LCAwLjAwNTQwMSwgMC4wMDU0MDcsIDAuMDA1NDExLCAwLjAwNTQxNCIsIFwKLSAgICAgICAgICAiMC4wMDUyNTUsIDAuMDA1MzU4LCAwLjAwNTM4LCAwLjAwNTM5MiwgMC4wMDUzOTksIDAuMDA1NDAzLCAwLjAwNTQwNiIsIFwKLSAgICAgICAgICAiMC4wMDUyNDgsIDAuMDA1MzUxLCAwLjAwNTM3NCwgMC4wMDUzODcsIDAuMDA1Mzk0LCAwLjAwNTM5OCwgMC4wMDU0MDEiLCBcCi0gICAgICAgICAgIjAuMDA1MjQ0LCAwLjAwNTM0NiwgMC4wMDUzNjksIDAuMDA1MzgzLCAwLjAwNTM5LCAwLjAwNTM5NSwgMC4wMDUzOTgiLCBcCi0gICAgICAgICAgIjAuMDA1MjQxLCAwLjAwNTM0MSwgMC4wMDUzNjUsIDAuMDA1Mzc5LCAwLjAwNTM4NywgMC4wMDUzOTIsIDAuMDA1Mzk2IiwgXAotICAgICAgICAgICIwLjAwNTIzOSwgMC4wMDUzMzcsIDAuMDA1MzYyLCAwLjAwNTM3NywgMC4wMDUzODYsIDAuMDA1MzkxLCAwLjAwNTM5NSIsIFwKLSAgICAgICAgICAiMC4wMDUyNTEsIDAuMDA1MzM4LCAwLjAwNTM2NCwgMC4wMDUzOCwgMC4wMDUzODksIDAuMDA1Mzk0LCAwLjAwNTM5OCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzE3MywgMC4wMDMyNTMsIDAuMDAzMjY4LCAwLjAwMzI3NywgMC4wMDMyODIsIDAuMDAzMjg2LCAwLjAwMzI4OCIsIFwKLSAgICAgICAgICAiMC4wMDMxNTcsIDAuMDAzMjM3LCAwLjAwMzI1MywgMC4wMDMyNjMsIDAuMDAzMjY3LCAwLjAwMzI3MSwgMC4wMDMyNzMiLCBcCi0gICAgICAgICAgIjAuMDAzMTQ4LCAwLjAwMzIyOCwgMC4wMDMyNDQsIDAuMDAzMjU0LCAwLjAwMzI1OSwgMC4wMDMyNjMsIDAuMDAzMjY1IiwgXAotICAgICAgICAgICIwLjAwMzE0MiwgMC4wMDMyMiwgMC4wMDMyMzgsIDAuMDAzMjQ4LCAwLjAwMzI1NSwgMC4wMDMyNTcsIDAuMDAzMjU5IiwgXAotICAgICAgICAgICIwLjAwMzEzNywgMC4wMDMyMTUsIDAuMDAzMjM0LCAwLjAwMzI0NCwgMC4wMDMyNTEsIDAuMDAzMjUzLCAwLjAwMzI1NiIsIFwKLSAgICAgICAgICAiMC4wMDMxMzYsIDAuMDAzMjA5LCAwLjAwMzIyOSwgMC4wMDMyNDEsIDAuMDAzMjQ4LCAwLjAwMzI1MiwgMC4wMDMyNTQiLCBcCi0gICAgICAgICAgIjAuMDAzMTQsIDAuMDAzMjA5LCAwLjAwMzIzLCAwLjAwMzI0MiwgMC4wMDMyNSwgMC4wMDMyNTQsIDAuMDAzMjU3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1NTEzLCAwLjAwNTYxNywgMC4wMDU2MzksIDAuMDA1NjUxLCAwLjAwNTY1OCwgMC4wMDU2NjIsIDAuMDA1NjY1IiwgXAotICAgICAgICAgICIwLjAwNTUwNCwgMC4wMDU2MDgsIDAuMDA1NjMsIDAuMDA1NjQyLCAwLjAwNTY0OSwgMC4wMDU2NTMsIDAuMDA1NjU2IiwgXAotICAgICAgICAgICIwLjAwNTQ5OCwgMC4wMDU2MDEsIDAuMDA1NjI0LCAwLjAwNTYzNywgMC4wMDU2NDQsIDAuMDA1NjQ4LCAwLjAwNTY1MSIsIFwKLSAgICAgICAgICAiMC4wMDU0OTQsIDAuMDA1NTk1LCAwLjAwNTYxOSwgMC4wMDU2MzMsIDAuMDA1NjQsIDAuMDA1NjQ1LCAwLjAwNTY0OCIsIFwKLSAgICAgICAgICAiMC4wMDU0OTEsIDAuMDA1NTkxLCAwLjAwNTYxNSwgMC4wMDU2MywgMC4wMDU2MzgsIDAuMDA1NjQzLCAwLjAwNTY0NiIsIFwKLSAgICAgICAgICAiMC4wMDU0ODksIDAuMDA1NTg2LCAwLjAwNTYxMSwgMC4wMDU2MjcsIDAuMDA1NjM1LCAwLjAwNTY0MSwgMC4wMDU2NDUiLCBcCi0gICAgICAgICAgIjAuMDA1NSwgMC4wMDU1ODcsIDAuMDA1NjEzLCAwLjAwNTYyOSwgMC4wMDU2MzgsIDAuMDA1NjQzLCAwLjAwNTY0NyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjUzOCwgMC4wMDI1ODIsIDAuMDAyNTg5LCAwLjAwMjU5MSwgMC4wMDI1OTEsIDAuMDAyNTkyLCAwLjAwMjU5NSIsIFwKLSAgICAgICAgICAiMC4wMDI1MTgsIDAuMDAyNTY2LCAwLjAwMjU3MSwgMC4wMDI1NzMsIDAuMDAyNTc2LCAwLjAwMjU3NiwgMC4wMDI1NzYiLCBcCi0gICAgICAgICAgIjAuMDAyNTA0LCAwLjAwMjU1NSwgMC4wMDI1NjMsIDAuMDAyNTY0LCAwLjAwMjU2OCwgMC4wMDI1NjgsIDAuMDAyNTY4IiwgXAotICAgICAgICAgICIwLjAwMjQ5NywgMC4wMDI1NDksIDAuMDAyNTU3LCAwLjAwMjU2LCAwLjAwMjU2MywgMC4wMDI1NjMsIDAuMDAyNTY0IiwgXAotICAgICAgICAgICIwLjAwMjQ4OCwgMC4wMDI1NDUsIDAuMDAyNTUyLCAwLjAwMjU1NywgMC4wMDI1NjEsIDAuMDAyNTYxLCAwLjAwMjU2MiIsIFwKLSAgICAgICAgICAiMC4wMDI1MDQsIDAuMDAyNTUxLCAwLjAwMjU1NywgMC4wMDI1NjEsIDAuMDAyNTYzLCAwLjAwMjU2NCwgMC4wMDI1NjYiLCBcCi0gICAgICAgICAgIjAuMDAyNTA5LCAwLjAwMjU1LCAwLjAwMjU2LCAwLjAwMjU2MywgMC4wMDI1NjcsIDAuMDAyNTY3LCAwLjAwMjU2OSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzg3LCAwLjAwMzk0MSwgMC4wMDM5NTEsIDAuMDAzOTU2LCAwLjAwMzk1OCwgMC4wMDM5NiwgMC4wMDM5NjEiLCBcCi0gICAgICAgICAgIjAuMDAzODU4LCAwLjAwMzkzMSwgMC4wMDM5NDEsIDAuMDAzOTQ2LCAwLjAwMzk0OSwgMC4wMDM5NSwgMC4wMDM5NTEiLCBcCi0gICAgICAgICAgIjAuMDAzODQ1LCAwLjAwMzkyMywgMC4wMDM5MzQsIDAuMDAzOTQsIDAuMDAzOTQzLCAwLjAwMzk0NSwgMC4wMDM5NDYiLCBcCi0gICAgICAgICAgIjAuMDAzODQzLCAwLjAwMzkyLCAwLjAwMzkzMSwgMC4wMDM5MzgsIDAuMDAzOTQxLCAwLjAwMzk0MywgMC4wMDM5NDQiLCBcCi0gICAgICAgICAgIjAuMDAzODM2LCAwLjAwMzkxNCwgMC4wMDM5MjcsIDAuMDAzOTM1LCAwLjAwMzkzOCwgMC4wMDM5NDEsIDAuMDAzOTQyIiwgXAotICAgICAgICAgICIwLjAwMzgyNywgMC4wMDM5MTUsIDAuMDAzOTI3LCAwLjAwMzkzNSwgMC4wMDM5NCwgMC4wMDM5NDIsIDAuMDAzOTQ0IiwgXAotICAgICAgICAgICIwLjAwMzgzNCwgMC4wMDM5MTIsIDAuMDAzOTI4LCAwLjAwMzkzNywgMC4wMDM5NDEsIDAuMDAzOTQ0LCAwLjAwMzk0NiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlMwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDUyNDcsIDAuMDA1MzI1LCAwLjAwNTM0MiwgMC4wMDUzNTMsIDAuMDA1MzU5LCAwLjAwNTM2MSwgMC4wMDUzNjIiLCBcCi0gICAgICAgICAgIjAuMDA1MjI5LCAwLjAwNTMwNywgMC4wMDUzMjQsIDAuMDA1MzMyLCAwLjAwNTMzOCwgMC4wMDUzNDMsIDAuMDA1MzQ0IiwgXAotICAgICAgICAgICIwLjAwNTIzLCAwLjAwNTMwOSwgMC4wMDUzMjYsIDAuMDA1MzM1LCAwLjAwNTM0LCAwLjAwNTM0NCwgMC4wMDUzNDYiLCBcCi0gICAgICAgICAgIjAuMDA1MjM3LCAwLjAwNTMxNiwgMC4wMDUzMzMsIDAuMDA1MzQyLCAwLjAwNTM0OCwgMC4wMDUzNTEsIDAuMDA1MzUzIiwgXAotICAgICAgICAgICIwLjAwNTI0OSwgMC4wMDUzMjgsIDAuMDA1MzQ1LCAwLjAwNTM1NCwgMC4wMDUzNTksIDAuMDA1MzYyLCAwLjAwNTM2MiIsIFwKLSAgICAgICAgICAiMC4wMDUyNzMsIDAuMDA1MzQ4LCAwLjAwNTM2OCwgMC4wMDUzNzQsIDAuMDA1MzgzLCAwLjAwNTM4NiwgMC4wMDUzODgiLCBcCi0gICAgICAgICAgIjAuMDA1Mjk3LCAwLjAwNTM3NCwgMC4wMDUzOTEsIDAuMDA1NCwgMC4wMDU0MDYsIDAuMDA1NDA3LCAwLjAwNTQxMSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNTEzLCAwLjAwNTIzMiwgMC4wMDUyNTQsIDAuMDA1MjY3LCAwLjAwNTI3NCwgMC4wMDUyNzgsIDAuMDA1MjgyIiwgXAotICAgICAgICAgICIwLjAwNTEwOCwgMC4wMDUyMTEsIDAuMDA1MjMzLCAwLjAwNTI0NiwgMC4wMDUyNTMsIDAuMDA1MjU3LCAwLjAwNTI2IiwgXAotICAgICAgICAgICIwLjAwNTExMiwgMC4wMDUyMTUsIDAuMDA1MjM3LCAwLjAwNTI1LCAwLjAwNTI1NywgMC4wMDUyNjEsIDAuMDA1MjY0IiwgXAotICAgICAgICAgICIwLjAwNTExNiwgMC4wMDUyMTksIDAuMDA1MjQxLCAwLjAwNTI1NCwgMC4wMDUyNjEsIDAuMDA1MjY2LCAwLjAwNTI2OSIsIFwKLSAgICAgICAgICAiMC4wMDUxMjcsIDAuMDA1MjMsIDAuMDA1MjUyLCAwLjAwNTI2NSwgMC4wMDUyNzIsIDAuMDA1Mjc2LCAwLjAwNTI4IiwgXAotICAgICAgICAgICIwLjAwNTE1MSwgMC4wMDUyNTUsIDAuMDA1Mjc1LCAwLjAwNTI5MSwgMC4wMDUyOTgsIDAuMDA1MzAyLCAwLjAwNTMwNSIsIFwKLSAgICAgICAgICAiMC4wMDUxNzgsIDAuMDA1MjgsIDAuMDA1MzAzLCAwLjAwNTMxNiwgMC4wMDUzMjMsIDAuMDA1MzI3LCAwLjAwNTMzMSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlMxIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQ0NzQsIDAuMDA0NTQ5LCAwLjAwNDU2MSwgMC4wMDQ1NjcsIDAuMDA0NTcxLCAwLjAwNDU3MSwgMC4wMDQ1NzQiLCBcCi0gICAgICAgICAgIjAuMDA0NDkxLCAwLjAwNDU2NCwgMC4wMDQ1NzYsIDAuMDA0NTgzLCAwLjAwNDU4NSwgMC4wMDQ1ODgsIDAuMDA0NTg5IiwgXAotICAgICAgICAgICIwLjAwNDUzOCwgMC4wMDQ2MDksIDAuMDA0NjIyLCAwLjAwNDYyOSwgMC4wMDQ2MzMsIDAuMDA0NjM1LCAwLjAwNDYzNyIsIFwKLSAgICAgICAgICAiMC4wMDQ1NzQsIDAuMDA0NjQ1LCAwLjAwNDY1OCwgMC4wMDQ2NjYsIDAuMDA0NjcsIDAuMDA0NjczLCAwLjAwNDY3NSIsIFwKLSAgICAgICAgICAiMC4wMDQ2MTQsIDAuMDA0Njg2LCAwLjAwNDcsIDAuMDA0NzA4LCAwLjAwNDcxMywgMC4wMDQ3MTUsIDAuMDA0NzE2IiwgXAotICAgICAgICAgICIwLjAwNDY3NywgMC4wMDQ3NDcsIDAuMDA0NzYyLCAwLjAwNDc3LCAwLjAwNDc3NSwgMC4wMDQ3NzcsIDAuMDA0Nzc4IiwgXAotICAgICAgICAgICIwLjAwNDczOSwgMC4wMDQ4MDYsIDAuMDA0ODIyLCAwLjAwNDgzLCAwLjAwNDgzNSwgMC4wMDQ4MzcsIDAuMDA0ODM5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzNTE2LCAwLjAwMzU5OCwgMC4wMDM2MSwgMC4wMDM2MTcsIDAuMDAzNjIxLCAwLjAwMzYyMywgMC4wMDM2MjQiLCBcCi0gICAgICAgICAgIjAuMDAzNDk3LCAwLjAwMzU3OCwgMC4wMDM1OTEsIDAuMDAzNTk4LCAwLjAwMzYwMSwgMC4wMDM2MDMsIDAuMDAzNjA1IiwgXAotICAgICAgICAgICIwLjAwMzUwOCwgMC4wMDM1ODksIDAuMDAzNjAyLCAwLjAwMzYwOSwgMC4wMDM2MTIsIDAuMDAzNjE0LCAwLjAwMzYxNiIsIFwKLSAgICAgICAgICAiMC4wMDM1MTksIDAuMDAzNiwgMC4wMDM2MTIsIDAuMDAzNjE5LCAwLjAwMzYyMywgMC4wMDM2MjUsIDAuMDAzNjI3IiwgXAotICAgICAgICAgICIwLjAwMzUyNiwgMC4wMDM2MDgsIDAuMDAzNjIsIDAuMDAzNjI2LCAwLjAwMzYzMSwgMC4wMDM2MzMsIDAuMDAzNjMzIiwgXAotICAgICAgICAgICIwLjAwMzU1NCwgMC4wMDM2MzUsIDAuMDAzNjQ3LCAwLjAwMzY1NCwgMC4wMDM2NTUsIDAuMDAzNjU3LCAwLjAwMzY2MiIsIFwKLSAgICAgICAgICAiMC4wMDM1OCwgMC4wMDM2NiwgMC4wMDM2NjksIDAuMDAzNjc5LCAwLjAwMzY4MiwgMC4wMDM2ODQsIDAuMDAzNjg2Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IE1YM1g0ICoKLSAqIC0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChNWDNYNCkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjM2MjI0NzsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjU0NzMyOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDY1MzA4NzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2NTQ3MzI7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwODUzLCAwLjAwMDgzNCwgMC4wMDA4MjQsIDAuMDAwODE5LCAwLjAwMDgxOSwgMC4wMDA4MjEsIDAuMDAwODI3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyMzc0LCAwLjAwMjM2MywgMC4wMDIzNTcsIDAuMDAyMzU1LCAwLjAwMjM1NSwgMC4wMDIzNTYsIDAuMDAyMzYxIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2NDY4MjY7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjQ1NDU4OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDY0NjgyNjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyMTcsIDAuMDAwMjIsIDAuMDAwMjIxLCAwLjAwMDIyMSwgMC4wMDAyMjEsIDAuMDAwMjIxLCAwLjAwMDIyMiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDIzLCAwLjAwMDIyNywgMC4wMDAyMjcsIDAuMDAwMjI3LCAwLjAwMDIyNywgMC4wMDAyMjcsIDAuMDAwMjI3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihDKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA4NTQ2MzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA4NTIwNDU7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwODU0NjM7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzk0LCAwLjAwMDM5OCwgMC4wMDAzOTksIDAuMDAwNCwgMC4wMDA0LCAwLjAwMDQwMSwgMC4wMDA0MDEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA0MTcsIDAuMDAwNDExLCAwLjAwMDQxMSwgMC4wMDA0MTEsIDAuMDAwNDExLCAwLjAwMDQxMSwgMC4wMDA0MTEiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFMwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDExODQxOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTE4MzE7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxMTg0MTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyMTMsIDAuMDAwMTg1LCAwLjAwMDE4OSwgMC4wMDAxOTIsIDAuMDAwMjEsIDAuMDAwMjMsIDAuMDAwMjU1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxOTIxLCAwLjAwMTksIDAuMDAxODk5LCAwLjAwMTkwNiwgMC4wMDE5MTgsIDAuMDAxOTQ0LCAwLjAwMTk2NyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUzEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTQ4ODk0OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTQ4ODI4OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTQ4ODk0OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDMyMywgMC4wMDAyOTIsIDAuMDAwMjg4LCAwLjAwMDMwNywgMC4wMDAzMTIsIDAuMDAwMzQyLCAwLjAwMDM2NyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjEwNywgMC4wMDIwODUsIDAuMDAyMDg1LCAwLjAwMjA5LCAwLjAwMjEwNCwgMC4wMDIxMiwgMC4wMDIxNDQiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC44OTY4NDY7Ci0gICAgZnVuY3Rpb24gOiAiKChTMSBDKSArICghUzEgKChTMCBCKSArICghUzAgQSkpKSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTQ5NzQ5LCAwLjI0MjcwMSwgMC4zMTc1NzcsIDAuMzY5NTQxLCAwLjQ1MjI3OCwgMC41MjQ0NTcsIDAuNjI3NTcxIiwgXAotICAgICAgICAgICIwLjE1ODU4MiwgMC4yNTE0NywgMC4zMjYzNDIsIDAuMzc4MzEzLCAwLjQ2MTAzOSwgMC41MzMyNDUsIDAuNjM2MzYzIiwgXAotICAgICAgICAgICIwLjE2OTMzMSwgMC4yNjIzMDYsIDAuMzM3MTQsIDAuMzg5MTE1LCAwLjQ3MTg0OSwgMC41NDQwNDcsIDAuNjQ3MTY5IiwgXAotICAgICAgICAgICIwLjE4MDI3NCwgMC4yNzMxMTQsIDAuMzQ3OTU4LCAwLjM5OTk4NywgMC40ODI2OTEsIDAuNTU0ODksIDAuNjU4MDQxIiwgXAotICAgICAgICAgICIwLjE5MTA0NiwgMC4yODM5NDksIDAuMzU4ODMxLCAwLjQxMDgxMSwgMC40OTM1LCAwLjU2NTc0MywgMC42Njg4NjciLCBcCi0gICAgICAgICAgIjAuMjA3OTY5LCAwLjMwMDkwNiwgMC4zNzU3MTUsIDAuNDI3NzQ3LCAwLjUxMDQ1LCAwLjU4MjcxOCwgMC42ODU4MDgiLCBcCi0gICAgICAgICAgIjAuMjIyMzQ3LCAwLjMxNTMxMywgMC4zOTAwODcsIDAuNDQyMTIyLCAwLjUyNDgzMSwgMC41OTcwMzQsIDAuNzAwMjQ0Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU4MzIsIDAuMjAxMjc3LCAwLjM0MzM3MywgMC40NDY0ODYsIDAuNjEyNzg5LCAwLjc2MDM5MywgMC45NzIwOTciLCBcCi0gICAgICAgICAgIjAuMDU4MjMxLCAwLjIwMTE5LCAwLjM0MzM2MywgMC40NDY0ODQsIDAuNjEzODA5LCAwLjc2MDMzMiwgMC45NzIwOTUiLCBcCi0gICAgICAgICAgIjAuMDU4NDIyLCAwLjIwMTM1MSwgMC4zNDMzNTMsIDAuNDQ2NDU4LCAwLjYxMzgzNiwgMC43NjAzLCAwLjk3MjA5NyIsIFwKLSAgICAgICAgICAiMC4wNTgxODQsIDAuMjAxMjE4LCAwLjM0MzI2OCwgMC40NDY0MjEsIDAuNjEzMDc0LCAwLjc2MDI4MiwgMC45NzIwMzEiLCBcCi0gICAgICAgICAgIjAuMDU4MzUyLCAwLjIwMTIzOSwgMC4zNDMzNTksIDAuNDQ2NDgsIDAuNjEzMjc2LCAwLjc2MDI3OSwgMC45NzIwOTYiLCBcCi0gICAgICAgICAgIjAuMDU4MjU1LCAwLjIwMTE3NywgMC4zNDMyNTUsIDAuNDQ2NTcsIDAuNjEzMDkzLCAwLjc1OTU4NSwgMC45NzIwMDMiLCBcCi0gICAgICAgICAgIjAuMDU4NTY2LCAwLjIwMTM3NiwgMC4zNDMzMjksIDAuNDQ2NDk1LCAwLjYxMzA3OCwgMC43NjAzMjQsIDAuOTcyNDI5Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTU3NjQyLCAwLjI1NDM5NiwgMC4zMzEzOSwgMC4zODQ1NzcsIDAuNDY4ODIyLCAwLjU0MjI5MSwgMC42NDcxMzMiLCBcCi0gICAgICAgICAgIjAuMTY2MzA2LCAwLjI2MzA4NywgMC4zNDAxMDcsIDAuMzkzMjQzLCAwLjQ3NzUzNCwgMC41NTA5NzYsIDAuNjU1ODYyIiwgXAotICAgICAgICAgICIwLjE3NjIyNSwgMC4yNzMwMTgsIDAuMzUwMDU0LCAwLjQwMzE5NywgMC40ODc0NDcsIDAuNTYwODkzLCAwLjY2NTc2IiwgXAotICAgICAgICAgICIwLjE4NjA0NSwgMC4yODI4MDcsIDAuMzU5ODE4LCAwLjQxMjk0MSwgMC40OTcyNDYsIDAuNTcwNjg5LCAwLjY3NTYwOCIsIFwKLSAgICAgICAgICAiMC4xOTU3NTgsIDAuMjkyNTY4LCAwLjM2OTYxMywgMC40MjI3MzUsIDAuNTA3MDAzLCAwLjU4MDQ4NiwgMC42ODUzMyIsIFwKLSAgICAgICAgICAiMC4yMTEyLCAwLjMwODAzMSwgMC4zODUwOCwgMC40MzgyMDQsIDAuNTIyNDcsIDAuNTk1OTU5LCAwLjcwMDgwMiIsIFwKLSAgICAgICAgICAiMC4yMjM5NTgsIDAuMzIwNjg0LCAwLjM5Nzc0NiwgMC40NTA5MDksIDAuNTM1MTU2LCAwLjYwODYwOCwgMC43MTM0OSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2MTM3OCwgMC4yMDUyOTcsIDAuMzQ2Njk1LCAwLjQ0OTQ1MywgMC42MTUxNSwgMC43NjE5MjksIDAuOTczMjI3IiwgXAotICAgICAgICAgICIwLjA2MTM2MywgMC4yMDUzMjgsIDAuMzQ2NjgxLCAwLjQ0OTAxNywgMC42MTUwOTcsIDAuNzYwOTgyLCAwLjk3MzQzNCIsIFwKLSAgICAgICAgICAiMC4wNjEzOTIsIDAuMjA1MzEyLCAwLjM0NjY0NywgMC40NDk1MDgsIDAuNjE1MTYxLCAwLjc2MjY2NSwgMC45NzMzMDUiLCBcCi0gICAgICAgICAgIjAuMDYxMzMyLCAwLjIwNTMxNCwgMC4zNDY2NywgMC40NDkyMzksIDAuNjE1MDk4LCAwLjc2MjA2NywgMC45NzA5NjEiLCBcCi0gICAgICAgICAgIjAuMDYxMjQ2LCAwLjIwNTMxMSwgMC4zNDY2NiwgMC40NDkyMjcsIDAuNjE1NTMxLCAwLjc2MjE5MSwgMC45NzMyNTciLCBcCi0gICAgICAgICAgIjAuMDYxMTg4LCAwLjIwNTMyNSwgMC4zNDY2MjQsIDAuNDQ5MjMzLCAwLjYxNTQ1MSwgMC43NjIxMzksIDAuOTczMjUyIiwgXAotICAgICAgICAgICIwLjA2MTQ0OCwgMC4yMDUyNjEsIDAuMzQ2NjQ5LCAwLjQ0OTQ2MywgMC42MTUxMjksIDAuNzYyMDg2LCAwLjk3MzIwMSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE0OTQ0LCAwLjI0MjQyMywgMC4zMTcxOTgsIDAuMzY5MjIzLCAwLjQ1MTkyLCAwLjUyNDEzMywgMC42MjcyNTkiLCBcCi0gICAgICAgICAgIjAuMTU4NTQsIDAuMjUxMzg1LCAwLjMyNjIzMSwgMC4zNzgyMDQsIDAuNDYwOTQ2LCAwLjUzMzE0LCAwLjYzNjI5IiwgXAotICAgICAgICAgICIwLjE2OTM4NiwgMC4yNjIzNDEsIDAuMzM3MTc5LCAwLjM4OTE1MiwgMC40NzE4NzUsIDAuNTQ0MDc0LCAwLjY0NzE5MSIsIFwKLSAgICAgICAgICAiMC4xODAzODMsIDAuMjczMTY4LCAwLjM0ODA1NywgMC40MDAwODgsIDAuNDgyNzgsIDAuNTU0OTc3LCAwLjY1ODIwMSIsIFwKLSAgICAgICAgICAiMC4xOTEyMjMsIDAuMjg0MTIsIDAuMzU4OTgxLCAwLjQxMDk2NywgMC40OTM2OTksIDAuNTY1ODk0LCAwLjY2OTA2MiIsIFwKLSAgICAgICAgICAiMC4yMDg0NjgsIDAuMzAxMzc3LCAwLjM3NjI1MSwgMC40MjgyMjYsIDAuNTEwOTE3LCAwLjU4MzE1OCwgMC42ODYyNzkiLCBcCi0gICAgICAgICAgIjAuMjIyNzg0LCAwLjMxNTc0MiwgMC4zOTA1OTUsIDAuNDQyNTY0LCAwLjUyNTI2NSwgMC41OTc1LCAwLjcwMDYyNiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1ODI4OCwgMC4yMDEzMjMsIDAuMzQzMjQsIDAuNDQ2NTk4LCAwLjYxMjg1MSwgMC43NjAxNzYsIDAuOTcyMTA1IiwgXAotICAgICAgICAgICIwLjA1ODIwNCwgMC4yMDExNTksIDAuMzQzMDMyLCAwLjQ0NjQzMSwgMC42MTMwMywgMC43NjAzMTIsIDAuOTcxMDcyIiwgXAotICAgICAgICAgICIwLjA1ODM0NiwgMC4yMDEzMjYsIDAuMzQzMzI1LCAwLjQ0NjQzMiwgMC42MTM3ODQsIDAuNzYwMjcyLCAwLjk3MjA2NCIsIFwKLSAgICAgICAgICAiMC4wNTgxMTQsIDAuMjAxMjAxLCAwLjM0MzI3MSwgMC40NDY1MzEsIDAuNjEzMDQ3LCAwLjc2MDI0OCwgMC45NzA2NDMiLCBcCi0gICAgICAgICAgIjAuMDU4MTc3LCAwLjIwMTI3MiwgMC4zNDMxMzMsIDAuNDQ2NDM3LCAwLjYxMzAyNywgMC43NjAyNSwgMC45NzIzNzciLCBcCi0gICAgICAgICAgIjAuMDU4MjMzLCAwLjIwMTIxMywgMC4zNDMzMjQsIDAuNDQ2NDIyLCAwLjYxMzI0MSwgMC43NjAxOSwgMC45NzE5NjgiLCBcCi0gICAgICAgICAgIjAuMDU4Mzk3LCAwLjIwMTM5MSwgMC4zNDMzNzYsIDAuNDQ2NDc3LCAwLjYxMjg3NCwgMC43NjA4MDYsIDAuOTcyMDY2Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTU4NjEsIDAuMjU1NDkyLCAwLjMzMjU0NSwgMC4zODU2ODYsIDAuNDY5OTQsIDAuNTQzNDM2LCAwLjY0ODI4OCIsIFwKLSAgICAgICAgICAiMC4xNjcxOTgsIDAuMjYzOTQ0LCAwLjM0MTA1NywgMC4zOTQyMTMsIDAuNDc4NDY5LCAwLjU1MTk0NSwgMC42NTY4IiwgXAotICAgICAgICAgICIwLjE3NzAzMSwgMC4yNzM4MzQsIDAuMzUwODk0LCAwLjQwNDAzNywgMC40ODgzMDksIDAuNTYxNzY3LCAwLjY2NjYzNyIsIFwKLSAgICAgICAgICAiMC4xODY3OTEsIDAuMjgzNjA5LCAwLjM2MDYxMiwgMC40MTM3NDUsIDAuNDk4MDU5LCAwLjU3MTUwNiwgMC42NzYzOTciLCBcCi0gICAgICAgICAgIjAuMTk2Mzg0LCAwLjI5MzI1LCAwLjM3MDMxLCAwLjQyMzQzOSwgMC41MDc3MTUsIDAuNTgxMjEyLCAwLjY4NjA2MSIsIFwKLSAgICAgICAgICAiMC4yMTE3OTcsIDAuMzA4NjAxLCAwLjM4NTY3MSwgMC40Mzg4MTEsIDAuNTIzMDkyLCAwLjU5NjU3LCAwLjcwMTQyMiIsIFwKLSAgICAgICAgICAiMC4yMjQ1NzksIDAuMzIxNDUyLCAwLjM5ODQ4MywgMC40NTE2MTYsIDAuNTM1OTM5LCAwLjYwOTM5LCAwLjcxNDI4NiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2MTM5NSwgMC4yMDUzODcsIDAuMzQ2NzM3LCAwLjQ0OTQ1NiwgMC42MTU2NjYsIDAuNzYyMTU2LCAwLjk3MzM1MyIsIFwKLSAgICAgICAgICAiMC4wNjE0MjksIDAuMjA1MzU0LCAwLjM0Njc1LCAwLjQ0OTYxMywgMC42MTUyMTMsIDAuNzYxNywgMC45NzMzMjUiLCBcCi0gICAgICAgICAgIjAuMDYxMzE2LCAwLjIwNTM4MywgMC4zNDY3MjIsIDAuNDQ5NDczLCAwLjYxNTI1MSwgMC43NjE3MjMsIDAuOTczMzc5IiwgXAotICAgICAgICAgICIwLjA2MTQwMywgMC4yMDUzODgsIDAuMzQ2NzM3LCAwLjQ0OTMxMiwgMC42MTUxNzksIDAuNzYyMTM5LCAwLjk3MjM0NSIsIFwKLSAgICAgICAgICAiMC4wNjEzMDgsIDAuMjA1MzgxLCAwLjM0NjY5MSwgMC40NDkzMDEsIDAuNjE1NjM0LCAwLjc2MjE5OSwgMC45NzMzMTEiLCBcCi0gICAgICAgICAgIjAuMDYxMzE0LCAwLjIwNTM4NCwgMC4zNDY2ODUsIDAuNDQ5NDE1LCAwLjYxNTI0NywgMC43NjIwOTksIDAuOTczMzEiLCBcCi0gICAgICAgICAgIjAuMDYxNDQ1LCAwLjIwNTQ0NSwgMC4zNDY3MywgMC40NDkzMzQsIDAuNjE1MTg4LCAwLjc2MjI2MywgMC45NzEyNzEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzM3MDYsIDAuMTUwOTY3LCAwLjIyMzI5MSwgMC4yNzQ4NzIsIDAuMzU3NDE1LCAwLjQyOTU4NiwgMC41MzI2MTQiLCBcCi0gICAgICAgICAgIjAuMDgyNjkzLCAwLjE1OTkwMSwgMC4yMzIyMzEsIDAuMjgzODEyLCAwLjM2NjM0MywgMC40Mzg1MzIsIDAuNTQxNTYzIiwgXAotICAgICAgICAgICIwLjA5MzYxNCwgMC4xNzA4NDUsIDAuMjQzMTg2LCAwLjI5NDc3LCAwLjM3NzMyLCAwLjQ0OTQ4NiwgMC41NTI1MTciLCBcCi0gICAgICAgICAgIjAuMTA0MzY0LCAwLjE4MTU1NywgMC4yNTM4OTksIDAuMzA1NDg1LCAwLjM4ODAyMywgMC40NjAyMDcsIDAuNTYzMjQxIiwgXAotICAgICAgICAgICIwLjExNDYxOSwgMC4xOTE5MjksIDAuMjY0Mjc0LCAwLjMxNTg3NCwgMC4zOTgzNjgsIDAuNDcwNTU3LCAwLjU3MzU5MiIsIFwKLSAgICAgICAgICAiMC4xMjk4NTksIDAuMjA3NDk0LCAwLjI3OTg2MywgMC4zMzE0MjksIDAuNDEzOTQ3LCAwLjQ4NjE3OCwgMC41ODkxOTYiLCBcCi0gICAgICAgICAgIjAuMTQxNjg5LCAwLjIxOTkzMSwgMC4yOTIyNiwgMC4zNDM4NDMsIDAuNDI2MzYsIDAuNDk4NTc5LCAwLjYwMTYwNSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzOTk4MSwgMC4xODE3NjMsIDAuMzI4ODY2LCAwLjQzNDcxNCwgMC42MDM1NjMsIDAuNzUzNjcxLCAwLjk2NjM2MyIsIFwKLSAgICAgICAgICAiMC4wMzk5ODMsIDAuMTgxODEyLCAwLjMyODg0OCwgMC40MzQ2OTQsIDAuNjAzODY5LCAwLjc1MzYyOCwgMC45NjYzNTMiLCBcCi0gICAgICAgICAgIjAuMDM5ODM4LCAwLjE4MTc4MSwgMC4zMjg4MjgsIDAuNDM0Njc0LCAwLjYwMzY2NiwgMC43NTM2MjEsIDAuOTY2Mjg2IiwgXAotICAgICAgICAgICIwLjA0MDAzNSwgMC4xODE4MTIsIDAuMzI4ODQzLCAwLjQzNDY4NiwgMC42MDM4MzUsIDAuNzUzNjE4LCAwLjk2NjMxMyIsIFwKLSAgICAgICAgICAiMC4wNDAzMjcsIDAuMTgxODk4LCAwLjMyODQ1OCwgMC40MzQxLCAwLjYwMzg3NCwgMC43NTIxNjgsIDAuOTY2MTQ4IiwgXAotICAgICAgICAgICIwLjA0MTc1OSwgMC4xODIyNjksIDAuMzI5MDk2LCAwLjQzNDc3MSwgMC42MDQwMTQsIDAuNzUzNjkyLCAwLjk2NjE3OCIsIFwKLSAgICAgICAgICAiMC4wNDMwNSwgMC4xODI4NDQsIDAuMzI5MjY2LCAwLjQzNDUxMSwgMC42MDQ2NzQsIDAuNzUzNTcsIDAuOTY2MTc5Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc3Njk1LCAwLjE1NzAwNCwgMC4yMzA1NjYsIDAuMjgzMDIxLCAwLjM2NjkxNCwgMC40NDAzMjIsIDAuNTQ1MTE5IiwgXAotICAgICAgICAgICIwLjA4NjE1MiwgMC4xNjU0NywgMC4yMzkwMjksIDAuMjkxNDg1LCAwLjM3NTM4LCAwLjQ0ODc4NywgMC41NTM1ODYiLCBcCi0gICAgICAgICAgIjAuMDk2MDIyLCAwLjE3NTM0MSwgMC4yNDg5NTQsIDAuMzAxMzY0LCAwLjM4NTI2OSwgMC40NTg3MDMsIDAuNTYzNDYyIiwgXAotICAgICAgICAgICIwLjEwNTcyNiwgMC4xODUwNDEsIDAuMjU4NjYsIDAuMzExMTIyLCAwLjM5NTAyMiwgMC40NjgzODQsIDAuNTczMjU1IiwgXAotICAgICAgICAgICIwLjExNDk2MywgMC4xOTQzOTgsIDAuMjY3OTcsIDAuMzIwNDI1LCAwLjQwNDMxNCwgMC40Nzc2OTMsIDAuNTgyNTM1IiwgXAotICAgICAgICAgICIwLjEyODUzMiwgMC4yMDgyNzQsIDAuMjgxOTI2LCAwLjMzNDM3NywgMC40MTgyNzgsIDAuNDkxNjcyLCAwLjU5NjQ5MSIsIFwKLSAgICAgICAgICAiMC4xMzkyMDksIDAuMjE5NTA4LCAwLjI5MzA2OCwgMC4zNDU1NTcsIDAuNDI5NDUyLCAwLjUwMjgzMSwgMC42MDc2MTgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDA1OTQsIDAuMTgyNDAxLCAwLjMyOTE2NCwgMC40MzQ3MzcsIDAuNjAzMzU0LCAwLjc1MTc2NiwgMC45NjU2NjUiLCBcCi0gICAgICAgICAgIjAuMDQwNTY4LCAwLjE4MjM5NCwgMC4zMjkxNzYsIDAuNDM0NzQ1LCAwLjYwMzM1MiwgMC43NTE3MzgsIDAuOTY1Njg2IiwgXAotICAgICAgICAgICIwLjA0MDQyOSwgMC4xODI0NzIsIDAuMzI5MTQxLCAwLjQzNDcyNSwgMC42MDM0NDksIDAuNzUxMjAyLCAwLjk2NTYzNiIsIFwKLSAgICAgICAgICAiMC4wNDA2LCAwLjE4MjQ5OCwgMC4zMjkyMDIsIDAuNDM0ODA4LCAwLjYwMzY0LCAwLjc1MjU3NCwgMC45NjU1OTgiLCBcCi0gICAgICAgICAgIjAuMDQwOTU2LCAwLjE4MjUyNywgMC4zMjkyNTIsIDAuNDM0NzgzLCAwLjYwNDMzMSwgMC43NTI5ODgsIDAuOTYzNzMzIiwgXAotICAgICAgICAgICIwLjA0MjI0OCwgMC4xODI5MzQsIDAuMzI5NDMyLCAwLjQzNDksIDAuNjAzNDY3LCAwLjc1MTM3NiwgMC45NjU1NjkiLCBcCi0gICAgICAgICAgIjAuMDQzMzg5LCAwLjE4MzQ1NiwgMC4zMjk2MzgsIDAuNDM1MTQyLCAwLjYwNDQ1NiwgMC43NTI5NTUsIDAuOTY0NTA3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlMwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE0MjcxOSwgMC4yMzU2ODgsIDAuMzEwNTQyLCAwLjM2MjUxMSwgMC40NDUyMTQsIDAuNTE3NDM3LCAwLjYyMDU1IiwgXAotICAgICAgICAgICIwLjE1MjA5LCAwLjI0NDk5MSwgMC4zMTk4MzQsIDAuMzcxODM2LCAwLjQ1NDU0OSwgMC41MjY3NDQsIDAuNjI5ODczIiwgXAotICAgICAgICAgICIwLjE2MzgzLCAwLjI1NjY5LCAwLjMzMTUyMSwgMC4zODM1NDgsIDAuNDY2MjQ2LCAwLjUzODQ0MSwgMC42NDE1OTciLCBcCi0gICAgICAgICAgIjAuMTc1NjI1LCAwLjI2ODUxMSwgMC4zNDMzNjEsIDAuMzk1MzQ3LCAwLjQ3ODA4LCAwLjU1MDI3NSwgMC42NTM0MTUiLCBcCi0gICAgICAgICAgIjAuMTg3NDU3LCAwLjI4MDM3NCwgMC4zNTUyMywgMC40MDcyMDUsIDAuNDg5OTMzLCAwLjU2MjEzNiwgMC42NjUyNTYiLCBcCi0gICAgICAgICAgIjAuMjA2NDg5LCAwLjI5OTMwNCwgMC4zNzQxNjMsIDAuNDI2MTUyLCAwLjUwODg4OCwgMC41ODExODEsIDAuNjg0Mjk3IiwgXAotICAgICAgICAgICIwLjIyMjczNCwgMC4zMTU2NTMsIDAuMzkwNDYyLCAwLjQ0MjQ5NCwgMC41MjUxOTcsIDAuNTk3NDE2LCAwLjcwMDYzOCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1ODI1NiwgMC4yMDExODIsIDAuMzQzMzQyLCAwLjQ0NjQ1NywgMC42MTM3NDIsIDAuNzYwMzU2LCAwLjk3MjEwOSIsIFwKLSAgICAgICAgICAiMC4wNTgzMzcsIDAuMjAxMTY4LCAwLjM0MzIwMiwgMC40NDY0NTgsIDAuNjEzMDQ3LCAwLjc2MDMxLCAwLjk3MjAxNSIsIFwKLSAgICAgICAgICAiMC4wNTgzMTYsIDAuMjAxMTgzLCAwLjM0MzI1LCAwLjQ0NjM5NywgMC42MTMwNDcsIDAuNzYwMjU3LCAwLjk3MTEwNSIsIFwKLSAgICAgICAgICAiMC4wNTgzMDksIDAuMjAxMTQ3LCAwLjM0MzIwMywgMC40NDY0MDMsIDAuNjEzMDI2LCAwLjc2MDI1OCwgMC45NzExMTciLCBcCi0gICAgICAgICAgIjAuMDU4MzIxLCAwLjIwMTMyOCwgMC4zNDMzMjEsIDAuNDQ2NDI4LCAwLjYxMzc4LCAwLjc2MDI3NiwgMC45NzIwNjYiLCBcCi0gICAgICAgICAgIjAuMDU4MjY1LCAwLjIwMTE2OSwgMC4zNDMwNDMsIDAuNDQ2NDQ2LCAwLjYxMzAzMiwgMC43NjAyMTcsIDAuOTcxOTY2IiwgXAotICAgICAgICAgICIwLjA1ODQ0MywgMC4yMDEyOTIsIDAuMzQzMjI4LCAwLjQ0NjU5NiwgMC42MTMwODIsIDAuNzYwMTc0LCAwLjk3MjA4MSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE1MDg1MiwgMC4yNDc2NzQsIDAuMzI0NzU2LCAwLjM3NzkxMSwgMC40NjIxNDgsIDAuNTM1NjM1LCAwLjY0MDQ2OCIsIFwKLSAgICAgICAgICAiMC4xNTk4MTEsIDAuMjU2NjcsIDAuMzMzNzEsIDAuMzg2ODMyLCAwLjQ3MTExNSwgMC41NDQ1NzgsIDAuNjQ5NDE5IiwgXAotICAgICAgICAgICIwLjE3MTM0NywgMC4yNjgxMzgsIDAuMzQ1MTQ3LCAwLjM5ODMwMSwgMC40ODI1NDIsIDAuNTU2MDEsIDAuNjYwODYyIiwgXAotICAgICAgICAgICIwLjE4Mjc3NiwgMC4yNzk1MjQsIDAuMzU2NTU1LCAwLjQwOTcwNywgMC40OTM5NTQsIDAuNTY3NDI3LCAwLjY3MjI3IiwgXAotICAgICAgICAgICIwLjE5NDI5MSwgMC4yOTEwMTcsIDAuMzY4MDY1LCAwLjQyMTE3LCAwLjUwNTQ2OCwgMC41Nzg5MDksIDAuNjgzNzkiLCBcCi0gICAgICAgICAgIjAuMjEyNTk2LCAwLjMwOTMzNSwgMC4zODYzNCwgMC40Mzk0NjcsIDAuNTIzNzc0LCAwLjU5NzIyLCAwLjcwMjA5NiIsIFwKLSAgICAgICAgICAiMC4yMjgwNzQsIDAuMzI0ODc1LCAwLjQwMTkyNywgMC40NTUwMzYsIDAuNTM5MzQyLCAwLjYxMjgxLCAwLjcxNzY1NCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2MTIyMSwgMC4yMDUyMzQsIDAuMzQ2NjY5LCAwLjQ0OTUxNSwgMC42MTUxMjYsIDAuNzYyODcxLCAwLjk3MzI2IiwgXAotICAgICAgICAgICIwLjA2MTIxMywgMC4yMDUzMDYsIDAuMzQ2NjYsIDAuNDQ5MjI0LCAwLjYxNTExNywgMC43NjIwOTMsIDAuOTczMjI3IiwgXAotICAgICAgICAgICIwLjA2MTM0LCAwLjIwNTI5NCwgMC4zNDY2NzcsIDAuNDQ5NTIzLCAwLjYxNTEyNSwgMC43NjEzNzYsIDAuOTczMjY2IiwgXAotICAgICAgICAgICIwLjA2MTM2OCwgMC4yMDUzMDEsIDAuMzQ2NjQ3LCAwLjQ0OTU0NCwgMC42MTUxNSwgMC43NjE5NDMsIDAuOTczMjY5IiwgXAotICAgICAgICAgICIwLjA2MTM0NSwgMC4yMDUzMTUsIDAuMzQ2Njc5LCAwLjQ0OTIyMSwgMC42MTUxMjEsIDAuNzYyMTM2LCAwLjk3MzI1MyIsIFwKLSAgICAgICAgICAiMC4wNjEzMTQsIDAuMjA1Mjk5LCAwLjM0NjY4MiwgMC40NDkyNDYsIDAuNjE1MTEsIDAuNzYyMTgxLCAwLjk3MzIxNiIsIFwKLSAgICAgICAgICAiMC4wNjE0NTYsIDAuMjA1Mzk0LCAwLjM0NjY1NiwgMC40NDkyNTQsIDAuNjE1MTgyLCAwLjc2MjEzNSwgMC45NzMyMzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUzAiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTYwNzE2LCAwLjI1MzY4NCwgMC4zMjg1MzUsIDAuMzgwNTExLCAwLjQ2MzI0NSwgMC41MzU0NDUsIDAuNjM4NTY3IiwgXAotICAgICAgICAgICIwLjE3MDYsIDAuMjYzNDg2LCAwLjMzODMzNiwgMC4zOTAzMzMsIDAuNDczMDYxLCAwLjU0NTI2LCAwLjY0ODM5NCIsIFwKLSAgICAgICAgICAiMC4xODExMTQsIDAuMjc0MDQyLCAwLjM0ODgzNiwgMC40MDA4ODEsIDAuNDgzNTg0LCAwLjU1NTgsIDAuNjU4OTMzIiwgXAotICAgICAgICAgICIwLjE4OTYyNywgMC4yODI1NzEsIDAuMzU3NDIxLCAwLjQwOTM5NywgMC40OTIxMjMsIDAuNTY0MzI5LCAwLjY2NzQ1MSIsIFwKLSAgICAgICAgICAiMC4xOTY1NzUsIDAuMjg5NDgyLCAwLjM2NDU4NCwgMC40MTY1NTUsIDAuNDk5MjU2LCAwLjU3MTQ2OCwgMC42NzQ2MSIsIFwKLSAgICAgICAgICAiMC4yMDYwOTYsIDAuMjk5MTksIDAuMzc0MTM3LCAwLjQyNjExMSwgMC41MDg4MDYsIDAuNTgxMDQ4LCAwLjY4NDE3MSIsIFwKLSAgICAgICAgICAiMC4yMTMyMDYsIDAuMzA2MjQ4LCAwLjM4MTEyMywgMC40MzMxLCAwLjUxNTc5OCwgMC41ODgwMzUsIDAuNjkxMTY3Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU4MzYyLCAwLjIwMTE3MiwgMC4zNDMzNzYsIDAuNDQ2NDksIDAuNjEzODYyLCAwLjc2MDMwNiwgMC45NzIxMjUiLCBcCi0gICAgICAgICAgIjAuMDU4MzgyLCAwLjIwMTE4MSwgMC4zNDMyMjUsIDAuNDQ2MjUsIDAuNjEzMDcsIDAuNzYwMzM2LCAwLjk3MjA2MSIsIFwKLSAgICAgICAgICAiMC4wNTgzNDUsIDAuMjAxMjEzLCAwLjM0MzMxOSwgMC40NDY1OTksIDAuNjEzMTE0LCAwLjc2MDg1NywgMC45NzIxIiwgXAotICAgICAgICAgICIwLjA1ODQsIDAuMjAxMzUyLCAwLjM0MzM2MiwgMC40NDY0ODIsIDAuNjEzODAxLCAwLjc2MDMwOCwgMC45NzIwOTUiLCBcCi0gICAgICAgICAgIjAuMDU4MzQ4LCAwLjIwMTIwMiwgMC4zNDMzNTksIDAuNDQ2NDgsIDAuNjEzNjk2LCAwLjc2MDI3MiwgMC45NzIwOTUiLCBcCi0gICAgICAgICAgIjAuMDU4MjcyLCAwLjIwMTMzOCwgMC4zNDMzNDQsIDAuNDQ2NDU0LCAwLjYxMzcsIDAuNzYwMjU1LCAwLjk3MjAwNCIsIFwKLSAgICAgICAgICAiMC4wNTg2MTcsIDAuMjAxMzU2LCAwLjM0MzQ0NSwgMC40NDY1NTcsIDAuNjEzMzM4LCAwLjc2MDg5MiwgMC45NzIxMzUiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNjgxMTcsIDAuMjY0OTI3LCAwLjM0MTk4LCAwLjM5NTEyMywgMC40NzkzOTcsIDAuNTUyODgyLCAwLjY1NzczNSIsIFwKLSAgICAgICAgICAiMC4xNzgzMDgsIDAuMjc1MTc4LCAwLjM1MjIzMSwgMC40MDUzNzMsIDAuNDg5NjU5LCAwLjU2MzEyOCwgMC42Njc5NzciLCBcCi0gICAgICAgICAgIjAuMTg5NDUsIDAuMjg2MzQxLCAwLjM2MzM5NCwgMC40MTY1MzcsIDAuNTAwNzg3LCAwLjU3NDI5MiwgMC42NzkxNDIiLCBcCi0gICAgICAgICAgIjAuMTk4ODc5LCAwLjI5NTY4MiwgMC4zNzI3MjUsIDAuNDI1ODc4LCAwLjUxMDEzNSwgMC41ODM1OTQsIDAuNjg4NDY1IiwgXAotICAgICAgICAgICIwLjIwNjQzOCwgMC4zMDMyODcsIDAuMzgwNDE3LCAwLjQzMzQ3MiwgMC41MTc4MjIsIDAuNTkxMzE3LCAwLjY5NjE2MyIsIFwKLSAgICAgICAgICAiMC4yMTcyMDgsIDAuMzEzOTcsIDAuMzkxMDQ3LCAwLjQ0NDE0OSwgMC41Mjg1LCAwLjYwMTkwMywgMC43MDY3ODciLCBcCi0gICAgICAgICAgIjAuMjI1MjY0LCAwLjMyMjA0NCwgMC4zOTkxNjYsIDAuNDUyMzEyLCAwLjUzNjU4NSwgMC42MDk5NTcsIDAuNzE0ODQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjE0NzgsIDAuMjA1Mzk2LCAwLjM0Njc1MywgMC40NDkzNTMsIDAuNjE1MTgzLCAwLjc2MTI3NiwgMC45NzE4ODciLCBcCi0gICAgICAgICAgIjAuMDYxMzk2LCAwLjIwNTM5NSwgMC4zNDY3NDYsIDAuNDQ5MzQ1LCAwLjYxNTIxNCwgMC43NjEwMzQsIDAuOTczMzY0IiwgXAotICAgICAgICAgICIwLjA2MTM2NSwgMC4yMDUzOTEsIDAuMzQ2NzQyLCAwLjQ0OTM0MywgMC42MTU0NjksIDAuNzYxNjQyLCAwLjk3MzM4NyIsIFwKLSAgICAgICAgICAiMC4wNjE0MTYsIDAuMjA1MzY0LCAwLjM0Njc0OSwgMC40NDk2MTksIDAuNjE1MjE3LCAwLjc2MjcyOCwgMC45NzMzMzkiLCBcCi0gICAgICAgICAgIjAuMDYxMzAyLCAwLjIwNTMxNiwgMC4zNDY3MzEsIDAuNDQ5MzAxLCAwLjYxNTU5MywgMC43NjIxODEsIDAuOTczMzY0IiwgXAotICAgICAgICAgICIwLjA2MTM3NywgMC4yMDUyNTUsIDAuMzQ2NzM5LCAwLjQ0OTI4NywgMC42MTUxOTEsIDAuNzYyMjY4LCAwLjk3MzMxMSIsIFwKLSAgICAgICAgICAiMC4wNjE1MjIsIDAuMjA1NDU1LCAwLjM0NjcxOSwgMC40NDk0NjEsIDAuNjE1MjcsIDAuNzYyMjI5LCAwLjk3MjAwNCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTMSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjcxNjYsIDAuMTQ0NDA3LCAwLjIxNjc1OSwgMC4yNjgzMjMsIDAuMzUwODk2LCAwLjQyMzA4NywgMC41MjYwOCIsIFwKLSAgICAgICAgICAiMC4wNzY2NDIsIDAuMTUzODQsIDAuMjI2MTg0LCAwLjI3Nzc2NywgMC4zNjAzMTcsIDAuNDMyNDgsIDAuNTM1NTEyIiwgXAotICAgICAgICAgICIwLjA4ODM2NiwgMC4xNjU2MDYsIDAuMjM3OTMzLCAwLjI4OTUxOSwgMC4zNzIwNzMsIDAuNDQ0MjM0LCAwLjU0NzI2NCIsIFwKLSAgICAgICAgICAiMC4xMDAxOTEsIDAuMTc3NDMxLCAwLjI0OTc4MywgMC4zMDEzNzEsIDAuMzgzOTE5LCAwLjQ1NjA5NSwgMC41NTkxMyIsIFwKLSAgICAgICAgICAiMC4xMTE0NiwgMC4xODg4MjksIDAuMjYxMTc4LCAwLjMxMjc3MSwgMC4zOTUzMjQsIDAuNDY3NDkyLCAwLjU3MDUyMSIsIFwKLSAgICAgICAgICAiMC4xMjc1MjMsIDAuMjA1NDA5LCAwLjI3NzcxNywgMC4zMjkzMDksIDAuNDExODI1LCAwLjQ4NDA0MSwgMC41ODcwNTYiLCBcCi0gICAgICAgICAgIjAuMTQwMDgxLCAwLjIxODM0OCwgMC4yOTA2NzQsIDAuMzQyMjc5LCAwLjQyNDgxNCwgMC40OTcwMDksIDAuNjAwMDAzIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM5Nzg2LCAwLjE4MTc3MiwgMC4zMjg5MDUsIDAuNDM0Njk1LCAwLjYwMzU2OCwgMC43NTIxOTUsIDAuOTY1MzA3IiwgXAotICAgICAgICAgICIwLjAzOTgyMSwgMC4xODE3NjYsIDAuMzI4ODI5LCAwLjQzNDY3OSwgMC42MDM3MywgMC43NTM2MjYsIDAuOTY2MzE2IiwgXAotICAgICAgICAgICIwLjAzOTc0MSwgMC4xODE3NTIsIDAuMzI4ODI5LCAwLjQzNDY3OCwgMC42MDM3NDQsIDAuNzUzNjI2LCAwLjk2NjI5NCIsIFwKLSAgICAgICAgICAiMC4wNDAwMjksIDAuMTgxODEsIDAuMzI4ODIsIDAuNDM0NjkzLCAwLjYwMzUxNSwgMC43NTM2MjIsIDAuOTY2Mjk2IiwgXAotICAgICAgICAgICIwLjA0MDc4MiwgMC4xODE5NywgMC4zMjg4NjQsIDAuNDM0Njc4LCAwLjYwMzY2NCwgMC43NTM0OTksIDAuOTY2MTg2IiwgXAotICAgICAgICAgICIwLjA0MzI4NCwgMC4xODI1NTQsIDAuMzI4ODYyLCAwLjQzNDkxMiwgMC42MDM5NjUsIDAuNzUzNzAzLCAwLjk2NjE5OSIsIFwKLSAgICAgICAgICAiMC4wNDUyOTEsIDAuMTgzMjU3LCAwLjMyOTE4NCwgMC40MzUxNDMsIDAuNjAzNjY1LCAwLjc1MjM0MywgMC45NjYyNDQiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTEyNTEsIDAuMjA4MDQxLCAwLjI4NDk5MSwgMC4zMzgwNzksIDAuNDIyMjkxLCAwLjQ5NTc0MywgMC42MDA1NTkiLCBcCi0gICAgICAgICAgIjAuMTE5NCwgMC4yMTYwOTQsIDAuMjkzMDM4LCAwLjM0NjE0MiwgMC40MzAzNDUsIDAuNTAzNzg1LCAwLjYwODYwMyIsIFwKLSAgICAgICAgICAiMC4xMjkyLCAwLjIyNTg5NSwgMC4zMDI4NzUsIDAuMzU1OTgxLCAwLjQ0MDE5MywgMC41MTM2MTQsIDAuNjE4NDYyIiwgXAotICAgICAgICAgICIwLjEzOTA1NCwgMC4yMzU3NzYsIDAuMzEyNjk1LCAwLjM2NTgxMywgMC40NTAwMTIsIDAuNTIzNDQ3LCAwLjYyODI4IiwgXAotICAgICAgICAgICIwLjE0ODc2NywgMC4yNDUzMDMsIDAuMzIyMjk2LCAwLjM3NTQyMiwgMC40NTk2MjYsIDAuNTMzMDkxLCAwLjYzNzg5OSIsIFwKLSAgICAgICAgICAiMC4xNjQ1OTQsIDAuMjYxMTM2LCAwLjMzODA1MywgMC4zOTExNSwgMC40NzUzNjYsIDAuNTQ4NzE0LCAwLjY1MzY1MyIsIFwKLSAgICAgICAgICAiMC4xNzc2MjUsIDAuMjczOTY2LCAwLjM1MDkzMywgMC40MDQwMDgsIDAuNDg4MjczLCAwLjU2MTY5MSwgMC42NjY1NTciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjA4MDcsIDAuMjA0OTc3LCAwLjM0NjM3NSwgMC40NDkwNywgMC42MTUyNjQsIDAuNzYxODU1LCAwLjk3MzAzNSIsIFwKLSAgICAgICAgICAiMC4wNjA4NzYsIDAuMjA0OTY0LCAwLjM0NjM2MywgMC40NDkyMiwgMC42MTQ5MTQsIDAuNzYxNzMsIDAuOTczMDIiLCBcCi0gICAgICAgICAgIjAuMDYwODExLCAwLjIwNDk2MiwgMC4zNDYzNjgsIDAuNDQ5MjA4LCAwLjYxNDg3LCAwLjc2MTg1MywgMC45NzI5NjkiLCBcCi0gICAgICAgICAgIjAuMDYwNjYxLCAwLjIwNDkyNSwgMC4zNDYzNSwgMC40NDkyMTksIDAuNjE0ODYxLCAwLjc2MjUxNCwgMC45NzI5OTYiLCBcCi0gICAgICAgICAgIjAuMDYwMywgMC4yMDQ4MDUsIDAuMzQ2MzE4LCAwLjQ0OTE4NywgMC42MTQ4MzgsIDAuNzYyNTY3LCAwLjk3Mjk5MSIsIFwKLSAgICAgICAgICAiMC4wNjAwNjMsIDAuMjA0ODIxLCAwLjM0NjMxOSwgMC40NDkwNDYsIDAuNjE1MjgxLCAwLjc2MTksIDAuOTczMTEyIiwgXAotICAgICAgICAgICIwLjA2MDgyMywgMC4yMDUwMTUsIDAuMzQ2MzkzLCAwLjQ0OTAwNCwgMC42MTQ4OCwgMC43NjE5NDgsIDAuOTcxNDM0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlMxIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwNzAzNCwgMC4xOTk4MzgsIDAuMjc0NTQ0LCAwLjMyNjUyNywgMC40MDkxNzMsIDAuNDgxMzc1LCAwLjU4NDQ1NiIsIFwKLSAgICAgICAgICAiMC4xMTY5NzYsIDAuMjA5NjUsIDAuMjg0NDA0LCAwLjMzNjM1MiwgMC40MTkwMzYsIDAuNDkxMjA1LCAwLjU5NDMyMSIsIFwKLSAgICAgICAgICAiMC4xMjgyMzQsIDAuMjIwOTUxLCAwLjI5NTcwNywgMC4zNDc2OTYsIDAuNDMwMzQ4LCAwLjUwMjUxOCwgMC42MDU2NjgiLCBcCi0gICAgICAgICAgIjAuMTM4NTcxLCAwLjIzMTM0MiwgMC4zMDYwOTEsIDAuMzU4MDE0LCAwLjQ0MDY2NiwgMC41MTI4NzIsIDAuNjE1OTU3IiwgXAotICAgICAgICAgICIwLjE0NzY4NywgMC4yNDAzNjYsIDAuMzE1MTMxLCAwLjM2NzExMSwgMC40NDk3NjUsIDAuNTIxOTM0LCAwLjYyNTEwMyIsIFwKLSAgICAgICAgICAiMC4xNTk3NDYsIDAuMjUyMTU3LCAwLjMyNjg5MywgMC4zNzkwMiwgMC40NjE2NiwgMC41MzM4ODIsIDAuNjM2OTYiLCBcCi0gICAgICAgICAgIjAuMTY4NjA2LCAwLjI2MDQ3NCwgMC4zMzU3MDIsIDAuMzg3MzMsIDAuNDcwMzY4LCAwLjU0MjUzNSwgMC42NDUzMDgiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTc4MTQsIDAuMjAwODE4LCAwLjM0MjkwOSwgMC40NDYyNDMsIDAuNjEyNzM5LCAwLjc1OTg0OSwgMC45NzE3OTgiLCBcCi0gICAgICAgICAgIjAuMDU3ODcxLCAwLjIwMDg5OSwgMC4zNDI4NjEsIDAuNDQ2MjA3LCAwLjYxMjcxNCwgMC43NjAwMDgsIDAuOTcyMDY4IiwgXAotICAgICAgICAgICIwLjA1NzcxMiwgMC4yMDA5LCAwLjM0Mjg0LCAwLjQ0NjEsIDAuNjEyNjg5LCAwLjc2MDAwMywgMC45NzIxODYiLCBcCi0gICAgICAgICAgIjAuMDU3NjMxLCAwLjIwMDkxOSwgMC4zNDI5NzYsIDAuNDQ2MTExLCAwLjYxMjYxLCAwLjc2MDU1NCwgMC45NzE3NjQiLCBcCi0gICAgICAgICAgIjAuMDU3NDIyLCAwLjIwMDgxMywgMC4zNDI4ODEsIDAuNDQ2MDcyLCAwLjYxMjcxMSwgMC43NTk5NzgsIDAuOTcwNTU0IiwgXAotICAgICAgICAgICIwLjA1NjkzMiwgMC4yMDA3MTYsIDAuMzQyOTEzLCAwLjQ0NjA0MSwgMC42MTI5LCAwLjc1OTg3OSwgMC45NzE3NTUiLCBcCi0gICAgICAgICAgIjAuMDU2NzI0LCAwLjIwMDcxNSwgMC4zNDI3NjUsIDAuNDQ1OTk3LCAwLjYxMjYxNywgMC43NTk5NDMsIDAuOTcyMDA5Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg5NjQxLCAwLjE2ODk4LCAwLjI0MjU4LCAwLjI5NTAyOCwgMC4zNzg5NjYsIDAuNDUyMzA4LCAwLjU1NzE1NyIsIFwKLSAgICAgICAgICAiMC4xMDAwNzgsIDAuMTc5MzgxLCAwLjI1Mjk4MSwgMC4zMDU0MzQsIDAuMzg5MzQ2LCAwLjQ2MjcwNSwgMC41Njc1ODQiLCBcCi0gICAgICAgICAgIjAuMTExOTk3LCAwLjE5MTI5OSwgMC4yNjQ5MTksIDAuMzE3MzczLCAwLjQwMTI5MSwgMC40NzQ3MDgsIDAuNTc5NDc1IiwgXAotICAgICAgICAgICIwLjEyMjA4NSwgMC4yMDEzNzcsIDAuMjc1MDEsIDAuMzI3NDY2LCAwLjQxMTM3MiwgMC40ODQ4MTgsIDAuNTg5NTc4IiwgXAotICAgICAgICAgICIwLjEzMDYyLCAwLjIwOTkzMSwgMC4yODM1MzIsIDAuMzM1OTkxLCAwLjQxOTg3LCAwLjQ5MzMyNSwgMC41OTgwOSIsIFwKLSAgICAgICAgICAiMC4xNDIxNTksIDAuMjIxNTUxLCAwLjI5NTE4MSwgMC4zNDc2MzQsIDAuNDMxNTM1LCAwLjUwNDkyOCwgMC42MDk3NTIiLCBcCi0gICAgICAgICAgIjAuMTUwODczLCAwLjIzMDM0MywgMC4zMDQwMDQsIDAuMzU2NDY3LCAwLjQ0MDM1MSwgMC41MTM3MjMsIDAuNjE4NTUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDA0ODUsIDAuMTgyNDA0LCAwLjMyOTIzNiwgMC40MzQ3NzgsIDAuNjA0NTkzLCAwLjc1MzA4OCwgMC45NjU3MjEiLCBcCi0gICAgICAgICAgIjAuMDQwNTMxLCAwLjE4MjQwOCwgMC4zMjkyMTQsIDAuNDM0MTQzLCAwLjYwMzcyNywgMC43NTI3NDksIDAuOTY1NjU5IiwgXAotICAgICAgICAgICIwLjA0MDU0NCwgMC4xODIzNTYsIDAuMzI4NzIsIDAuNDM0NzQzLCAwLjYwMzYzMywgMC43NTMwMjksIDAuOTY1NjYzIiwgXAotICAgICAgICAgICIwLjA0MDUwOCwgMC4xODI0NjcsIDAuMzI5MTIsIDAuNDM0NzUxLCAwLjYwMzQxNiwgMC43NTI5NzEsIDAuOTY1NzM0IiwgXAotICAgICAgICAgICIwLjA0MDUxNiwgMC4xODI0NDksIDAuMzI4NzI4LCAwLjQzNDc5NCwgMC42MDQzNTIsIDAuNzUzMDQ3LCAwLjk2NTYzMyIsIFwKLSAgICAgICAgICAiMC4wNDA1MTQsIDAuMTgyNjA1LCAwLjMyODg2OCwgMC40MzQ4MTEsIDAuNjA0Mzc2LCAwLjc1MTI5MiwgMC45NjU0NDQiLCBcCi0gICAgICAgICAgIjAuMDQwNTU3LCAwLjE4MjU2LCAwLjMyOTA2OCwgMC40MzQyMTEsIDAuNjA0MjMzLCAwLjc1Mjk0MiwgMC45NjQ1MjYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNTc5NSwgMC4wMDU4ODksIDAuMDA1OTQxLCAwLjAwNTk2LCAwLjAwNTk3NywgMC4wMDU5ODcsIDAuMDA1OTk3IiwgXAotICAgICAgICAgICIwLjAwNTc3OSwgMC4wMDU4NzQsIDAuMDA1OTI1LCAwLjAwNTk0NCwgMC4wMDU5NjMsIDAuMDA1OTczLCAwLjAwNTk4MiIsIFwKLSAgICAgICAgICAiMC4wMDU3NywgMC4wMDU4NjYsIDAuMDA1OTE4LCAwLjAwNTkzOSwgMC4wMDU5NTcsIDAuMDA1OTY1LCAwLjAwNTk3NSIsIFwKLSAgICAgICAgICAiMC4wMDU3NjYsIDAuMDA1ODU2LCAwLjAwNTkxLCAwLjAwNTkzMSwgMC4wMDU5NDksIDAuMDA1OTU5LCAwLjAwNTk2OSIsIFwKLSAgICAgICAgICAiMC4wMDU3NjEsIDAuMDA1ODQ4LCAwLjAwNTkwMiwgMC4wMDU5MjMsIDAuMDA1OTQzLCAwLjAwNTk1NSwgMC4wMDU5NjYiLCBcCi0gICAgICAgICAgIjAuMDA1NzY1LCAwLjAwNTg0LCAwLjAwNTg5NSwgMC4wMDU5MTUsIDAuMDA1OTM3LCAwLjAwNTk1LCAwLjAwNTk2MSIsIFwKLSAgICAgICAgICAiMC4wMDU3ODEsIDAuMDA1ODM4LCAwLjAwNTg5MiwgMC4wMDU5MTMsIDAuMDA1OTM1LCAwLjAwNTk0NywgMC4wMDU5NjQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNzc0NSwgMC4wMDc4NzEsIDAuMDA3OTQxLCAwLjAwNzk2NywgMC4wMDc5OTMsIDAuMDA4MDA2LCAwLjAwODAxOSIsIFwKLSAgICAgICAgICAiMC4wMDc3MzYsIDAuMDA3ODY0LCAwLjAwNzkzNCwgMC4wMDc5NiwgMC4wMDc5ODUsIDAuMDA3OTk5LCAwLjAwODAxMiIsIFwKLSAgICAgICAgICAiMC4wMDc3MzIsIDAuMDA3ODU3LCAwLjAwNzkyNywgMC4wMDc5NTQsIDAuMDA3OTgsIDAuMDA3OTk0LCAwLjAwODAwNyIsIFwKLSAgICAgICAgICAiMC4wMDc3MjgsIDAuMDA3ODQ5LCAwLjAwNzkyLCAwLjAwNzk0OCwgMC4wMDc5NzQsIDAuMDA3OTg5LCAwLjAwODAwMyIsIFwKLSAgICAgICAgICAiMC4wMDc3MjUsIDAuMDA3ODQyLCAwLjAwNzkxNCwgMC4wMDc5NDIsIDAuMDA3OTcsIDAuMDA3OTg1LCAwLjAwNzk5OSIsIFwKLSAgICAgICAgICAiMC4wMDc3MjgsIDAuMDA3ODM0LCAwLjAwNzkwNiwgMC4wMDc5MzUsIDAuMDA3OTY0LCAwLjAwNzk4LCAwLjAwNzk5NSIsIFwKLSAgICAgICAgICAiMC4wMDc3NDEsIDAuMDA3ODI4LCAwLjAwNzksIDAuMDA3OTI5LCAwLjAwNzk1OSwgMC4wMDc5NzYsIDAuMDA3OTkzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDU1OTIsIDAuMDA1Njg2LCAwLjAwNTczNywgMC4wMDU3NTYsIDAuMDA1Nzc1LCAwLjAwNTc4NiwgMC4wMDU3OTQiLCBcCi0gICAgICAgICAgIjAuMDA1NTc2LCAwLjAwNTY3MiwgMC4wMDU3MjMsIDAuMDA1NzQzLCAwLjAwNTc2MSwgMC4wMDU3NzEsIDAuMDA1NzgxIiwgXAotICAgICAgICAgICIwLjAwNTU2NywgMC4wMDU2NjIsIDAuMDA1NzE3LCAwLjAwNTczNywgMC4wMDU3NTUsIDAuMDA1NzY0LCAwLjAwNTc3MyIsIFwKLSAgICAgICAgICAiMC4wMDU1NjMsIDAuMDA1NjU1LCAwLjAwNTcwNywgMC4wMDU3MjcsIDAuMDA1NzQ2LCAwLjAwNTc1NywgMC4wMDU3NjciLCBcCi0gICAgICAgICAgIjAuMDA1NTU5LCAwLjAwNTY0NywgMC4wMDU3LCAwLjAwNTcyMSwgMC4wMDU3NDIsIDAuMDA1NzUyLCAwLjAwNTc2NyIsIFwKLSAgICAgICAgICAiMC4wMDU1NiwgMC4wMDU2MzgsIDAuMDA1NjkzLCAwLjAwNTcxMywgMC4wMDU3MzUsIDAuMDA1NzQ2LCAwLjAwNTc1OCIsIFwKLSAgICAgICAgICAiMC4wMDU1NzUsIDAuMDA1NjM1LCAwLjAwNTY4OCwgMC4wMDU3MSwgMC4wMDU3MzIsIDAuMDA1NzQ1LCAwLjAwNTc1NiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA3OTc0LCAwLjAwODA5OSwgMC4wMDgxNjksIDAuMDA4MTk2LCAwLjAwODIyMSwgMC4wMDgyMzUsIDAuMDA4MjQ4IiwgXAotICAgICAgICAgICIwLjAwNzk2NywgMC4wMDgwOTEsIDAuMDA4MTYyLCAwLjAwODE4OCwgMC4wMDgyMTQsIDAuMDA4MjI4LCAwLjAwODI0MSIsIFwKLSAgICAgICAgICAiMC4wMDc5NjEsIDAuMDA4MDg0LCAwLjAwODE1NSwgMC4wMDgxODIsIDAuMDA4MjA4LCAwLjAwODIyMiwgMC4wMDgyMzYiLCBcCi0gICAgICAgICAgIjAuMDA3OTU4LCAwLjAwODA3NywgMC4wMDgxNDgsIDAuMDA4MTc1LCAwLjAwODIwMiwgMC4wMDgyMTcsIDAuMDA4MjMxIiwgXAotICAgICAgICAgICIwLjAwNzk1NiwgMC4wMDgwNywgMC4wMDgxNDIsIDAuMDA4MTcsIDAuMDA4MTk4LCAwLjAwODIxMywgMC4wMDgyMjciLCBcCi0gICAgICAgICAgIjAuMDA3OTU4LCAwLjAwODA2MSwgMC4wMDgxMzMsIDAuMDA4MTYzLCAwLjAwODE5MiwgMC4wMDgyMDgsIDAuMDA4MjIzIiwgXAotICAgICAgICAgICIwLjAwNzk3LCAwLjAwODA1NiwgMC4wMDgxMjgsIDAuMDA4MTU4LCAwLjAwODE4OCwgMC4wMDgyMDUsIDAuMDA4MjIxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQ2NzYsIDAuMDA0ODA4LCAwLjAwNDgyOCwgMC4wMDQ4MzYsIDAuMDA0ODQsIDAuMDA0ODQ0LCAwLjAwNDg0NyIsIFwKLSAgICAgICAgICAiMC4wMDQ2NCwgMC4wMDQ3NzgsIDAuMDA0Nzk5LCAwLjAwNDgwNywgMC4wMDQ4MDksIDAuMDA0ODE2LCAwLjAwNDgxOSIsIFwKLSAgICAgICAgICAiMC4wMDQ2MSwgMC4wMDQ3NTMsIDAuMDA0Nzc4LCAwLjAwNDc4NSwgMC4wMDQ3OTIsIDAuMDA0Nzk1LCAwLjAwNDc5OCIsIFwKLSAgICAgICAgICAiMC4wMDQ2MDMsIDAuMDA0NzQxLCAwLjAwNDc2OCwgMC4wMDQ3NzcsIDAuMDA0NzgzLCAwLjAwNDc4OSwgMC4wMDQ3OTEiLCBcCi0gICAgICAgICAgIjAuMDA0NTk1LCAwLjAwNDczMSwgMC4wMDQ3NjIsIDAuMDA0NzY5LCAwLjAwNDc4LCAwLjAwNDc4NCwgMC4wMDQ3OTEiLCBcCi0gICAgICAgICAgIjAuMDA0NjEyLCAwLjAwNDcyOCwgMC4wMDQ3NTgsIDAuMDA0NzcyLCAwLjAwNDc4LCAwLjAwNDc4MywgMC4wMDQ3OTMiLCBcCi0gICAgICAgICAgIjAuMDA0NjA4LCAwLjAwNDcyMSwgMC4wMDQ3NTQsIDAuMDA0NzY2LCAwLjAwNDc3NiwgMC4wMDQ3ODYsIDAuMDA0Nzg3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDY2OTEsIDAuMDA2ODkyLCAwLjAwNjkyNSwgMC4wMDY5MzYsIDAuMDA2OTQ1LCAwLjAwNjk1LCAwLjAwNjk1NCIsIFwKLSAgICAgICAgICAiMC4wMDY2NzEsIDAuMDA2ODc0LCAwLjAwNjkwOCwgMC4wMDY5MTksIDAuMDA2OTI4LCAwLjAwNjkzMywgMC4wMDY5MzciLCBcCi0gICAgICAgICAgIjAuMDA2NjQ5LCAwLjAwNjg1NywgMC4wMDY4OTQsIDAuMDA2OTA1LCAwLjAwNjkxNiwgMC4wMDY5MjEsIDAuMDA2OTI2IiwgXAotICAgICAgICAgICIwLjAwNjY1NiwgMC4wMDY4NDgsIDAuMDA2ODg4LCAwLjAwNjkwMSwgMC4wMDY5MTIsIDAuMDA2OTE4LCAwLjAwNjkyMyIsIFwKLSAgICAgICAgICAiMC4wMDY2MzQsIDAuMDA2ODM0LCAwLjAwNjg3OSwgMC4wMDY4OTQsIDAuMDA2OTA3LCAwLjAwNjkxNCwgMC4wMDY5MiIsIFwKLSAgICAgICAgICAiMC4wMDY2MzMsIDAuMDA2ODIsIDAuMDA2ODcxLCAwLjAwNjg4OCwgMC4wMDY5MDMsIDAuMDA2OTExLCAwLjAwNjkxOCIsIFwKLSAgICAgICAgICAiMC4wMDY2NDMsIDAuMDA2ODIxLCAwLjAwNjg3MSwgMC4wMDY4ODgsIDAuMDA2OTA1LCAwLjAwNjkxNCwgMC4wMDY5MjIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTMCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDc2NzIsIDAuMDA3NzY1LCAwLjAwNzgxNywgMC4wMDc4MzYsIDAuMDA3ODU1LCAwLjAwNzg2NSwgMC4wMDc4NzUiLCBcCi0gICAgICAgICAgIjAuMDA3NjU2LCAwLjAwNzc0OSwgMC4wMDc3OTksIDAuMDA3ODE4LCAwLjAwNzgzOSwgMC4wMDc4NDgsIDAuMDA3ODU4IiwgXAotICAgICAgICAgICIwLjAwNzY2NCwgMC4wMDc3NTcsIDAuMDA3ODA4LCAwLjAwNzgyNywgMC4wMDc4NDYsIDAuMDA3ODU2LCAwLjAwNzg2NiIsIFwKLSAgICAgICAgICAiMC4wMDc2NjQsIDAuMDA3NzYxLCAwLjAwNzgxMSwgMC4wMDc4MywgMC4wMDc4NSwgMC4wMDc4NiwgMC4wMDc4NyIsIFwKLSAgICAgICAgICAiMC4wMDc2NzUsIDAuMDA3NzcxLCAwLjAwNzgyMywgMC4wMDc4NDMsIDAuMDA3ODYzLCAwLjAwNzg3LCAwLjAwNzg4MyIsIFwKLSAgICAgICAgICAiMC4wMDc3MDEsIDAuMDA3Nzk3LCAwLjAwNzg1MSwgMC4wMDc4NjksIDAuMDA3ODg1LCAwLjAwNzg5NiwgMC4wMDc5MDUiLCBcCi0gICAgICAgICAgIjAuMDA3NzIxLCAwLjAwNzgyMiwgMC4wMDc4NzYsIDAuMDA3ODkzLCAwLjAwNzkxMiwgMC4wMDc5MjMsIDAuMDA3OTMzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDc2MTEsIDAuMDA3NzM0LCAwLjAwNzgwNSwgMC4wMDc4MzEsIDAuMDA3ODU3LCAwLjAwNzg3MiwgMC4wMDc4ODUiLCBcCi0gICAgICAgICAgIjAuMDA3NTg3LCAwLjAwNzcxMywgMC4wMDc3ODMsIDAuMDA3ODEsIDAuMDA3ODM2LCAwLjAwNzg1LCAwLjAwNzg2MyIsIFwKLSAgICAgICAgICAiMC4wMDc1OTMsIDAuMDA3NzE4LCAwLjAwNzc4OCwgMC4wMDc4MTUsIDAuMDA3ODQxLCAwLjAwNzg1NiwgMC4wMDc4NjkiLCBcCi0gICAgICAgICAgIjAuMDA3NjAyLCAwLjAwNzcyNCwgMC4wMDc3OTUsIDAuMDA3ODIxLCAwLjAwNzg0OCwgMC4wMDc4NjIsIDAuMDA3ODc1IiwgXAotICAgICAgICAgICIwLjAwNzYwOCwgMC4wMDc3MzQsIDAuMDA3ODA1LCAwLjAwNzgzMSwgMC4wMDc4NTgsIDAuMDA3ODczLCAwLjAwNzg4NiIsIFwKLSAgICAgICAgICAiMC4wMDc2MzYsIDAuMDA3NzYyLCAwLjAwNzgzMywgMC4wMDc4NiwgMC4wMDc4ODYsIDAuMDA3OSwgMC4wMDc5MTQiLCBcCi0gICAgICAgICAgIjAuMDA3NjY2LCAwLjAwNzc5LCAwLjAwNzg1NCwgMC4wMDc4ODYsIDAuMDA3OTA3LCAwLjAwNzkyNiwgMC4wMDc5NCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlMxIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNzE5MSwgMC4wMDczMzIsIDAuMDA3Mzc4LCAwLjAwNzM5MiwgMC4wMDc0MDUsIDAuMDA3NDE0LCAwLjAwNzQxOSIsIFwKLSAgICAgICAgICAiMC4wMDcyNDQsIDAuMDA3MzgsIDAuMDA3NDI0LCAwLjAwNzQzOSwgMC4wMDc0NTMsIDAuMDA3NDYxLCAwLjAwNzQ2OCIsIFwKLSAgICAgICAgICAiMC4wMDczMzgsIDAuMDA3NDcyLCAwLjAwNzUxNCwgMC4wMDc1MywgMC4wMDc1NDQsIDAuMDA3NTUyLCAwLjAwNzU2IiwgXAotICAgICAgICAgICIwLjAwNzQwNCwgMC4wMDc1MzQsIDAuMDA3NTc4LCAwLjAwNzU5NCwgMC4wMDc2MDksIDAuMDA3NjE3LCAwLjAwNzYyNiIsIFwKLSAgICAgICAgICAiMC4wMDc0NDIsIDAuMDA3NTY5LCAwLjAwNzYxNSwgMC4wMDc2MzEsIDAuMDA3NjQ4LCAwLjAwNzY1NiwgMC4wMDc2NjQiLCBcCi0gICAgICAgICAgIjAuMDA3NTQ1LCAwLjAwNzY2NiwgMC4wMDc3MTMsIDAuMDA3NzM3LCAwLjAwNzc1MSwgMC4wMDc3NjEsIDAuMDA3NzciLCBcCi0gICAgICAgICAgIjAuMDA3NjM2LCAwLjAwNzczOCwgMC4wMDc4MDQsIDAuMDA3NzkzLCAwLjAwNzgzNiwgMC4wMDc4NDYsIDAuMDA3ODM0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDc0MjYsIDAuMDA3NjIyLCAwLjAwNzY3NiwgMC4wMDc2OTUsIDAuMDA3NzExLCAwLjAwNzcyLCAwLjAwNzcyOCIsIFwKLSAgICAgICAgICAiMC4wMDczNzMsIDAuMDA3NTY5LCAwLjAwNzYyMywgMC4wMDc2NDEsIDAuMDA3NjU4LCAwLjAwNzY2NiwgMC4wMDc2NzQiLCBcCi0gICAgICAgICAgIjAuMDA3MzUyLCAwLjAwNzU0MSwgMC4wMDc1OTgsIDAuMDA3NjE3LCAwLjAwNzYzNSwgMC4wMDc2NDUsIDAuMDA3NjUzIiwgXAotICAgICAgICAgICIwLjAwNzM0MywgMC4wMDc1MjQsIDAuMDA3NTg1LCAwLjAwNzYwNywgMC4wMDc2MjcsIDAuMDA3NjM3LCAwLjAwNzY0NyIsIFwKLSAgICAgICAgICAiMC4wMDczNzYsIDAuMDA3NTQ1LCAwLjAwNzYxLCAwLjAwNzYzMywgMC4wMDc2NTUsIDAuMDA3NjY3LCAwLjAwNzY3OCIsIFwKLSAgICAgICAgICAiMC4wMDczOTgsIDAuMDA3NTQzLCAwLjAwNzYxMSwgMC4wMDc2MzYsIDAuMDA3NjYxLCAwLjAwNzY3NSwgMC4wMDc2ODgiLCBcCi0gICAgICAgICAgIjAuMDA3NDg5LCAwLjAwNzYwNCwgMC4wMDc2NzEsIDAuMDA3Njk4LCAwLjAwNzcyNCwgMC4wMDc3MzgsIDAuMDA3NzUyIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IE1YNFg0ICoKLSAqIC0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChNWDRYNCkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjM4OTM0ODsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNTg3MDUxOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDU4NTY2MzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA1ODcwNTE7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwODU5LCAwLjAwMDg0MSwgMC4wMDA4MywgMC4wMDA4MjUsIDAuMDAwODIzLCAwLjAwMDgyMywgMC4wMDA4MjYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDI5MzIsIDAuMDAyOTIxLCAwLjAwMjkxNSwgMC4wMDI5MTEsIDAuMDAyOTEyLCAwLjAwMjkxMiwgMC4wMDI5MTUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYzMjc0ODsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MzEzODk7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjMyNzQ4OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDIxNywgMC4wMDAyMiwgMC4wMDAyMjEsIDAuMDAwMjIxLCAwLjAwMDIyMiwgMC4wMDAyMjIsIDAuMDAwMjIyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjMzLCAwLjAwMDIyOCwgMC4wMDAyMjgsIDAuMDAwMjI3LCAwLjAwMDIyNywgMC4wMDAyMjcsIDAuMDAwMjI3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihDKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2MDU4MjY7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjA0MTYxOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDYwNTgyNjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDEwNTUsIDAuMDAxMDM2LCAwLjAwMTAyNiwgMC4wMDEwMjEsIDAuMDAxMDE5LCAwLjAwMTAxOSwgMC4wMDEwMjIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDMwMTMsIDAuMDAzMDAyLCAwLjAwMjk5NywgMC4wMDI5OTQsIDAuMDAyOTkzLCAwLjAwMjk5NCwgMC4wMDI5OTYiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEQpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYxNDMxODsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MTMwMDQ7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjE0MzE4OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDIxOCwgMC4wMDAyMjEsIDAuMDAwMjIyLCAwLjAwMDIyMiwgMC4wMDAyMjIsIDAuMDAwMjIyLCAwLjAwMDIyMiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDIzLCAwLjAwMDIyNywgMC4wMDAyMjcsIDAuMDAwMjI3LCAwLjAwMDIyNywgMC4wMDAyMjcsIDAuMDAwMjI3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAyMTY5NjY7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAyMTY5NjY7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAyMTY5MTQ7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzkxLCAwLjAwMDM2NCwgMC4wMDAzNTksIDAuMDAwMzYyLCAwLjAwMDM3MywgMC4wMDA0MTcsIDAuMDAwNDQ3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzMzU3LCAwLjAwMzMzNiwgMC4wMDMzMzUsIDAuMDAzMzM0LCAwLjAwMzM1MiwgMC4wMDMzNjYsIDAuMDAzMzc5Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTMSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNDIyNDM7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNDIxOTg7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNDIyNDM7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMDk3LCAwLjAwMDA2NiwgMC4wMDAwNjcsIDAuMDAwMDcsIDAuMDAwMDk0LCAwLjAwMDEwOCwgMC4wMDAxMzMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDIzNjUsIDAuMDAyMzQyLCAwLjAwMjMzOSwgMC4wMDIzNTUsIDAuMDAyMzU4LCAwLjAwMjM3MywgMC4wMDIzOTUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMS4wNzcwODsKLSAgICBmdW5jdGlvbiA6ICIoKFMxICgoUzAgRCkgKyAoIVMwIEMpKSkgKyAoIVMxICgoUzAgQikgKyAoIVMwIEEpKSkpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE1NjA1NiwgMC4yNTAxOTEsIDAuMzI1NzY5LCAwLjM3ODE4NywgMC40NjE1NTEsIDAuNTM0MzUxLCAwLjYzODI3NCIsIFwKLSAgICAgICAgICAiMC4xNjUxMzcsIDAuMjU5MjQ0LCAwLjMzNDc3NCwgMC4zODcyNTksIDAuNDcwNjI2LCAwLjU0MzM5OSwgMC42NDczNDQiLCBcCi0gICAgICAgICAgIjAuMTc2MDMyLCAwLjI3MDE0MywgMC4zNDU3MTgsIDAuMzk4MTM1LCAwLjQ4MTQ5MywgMC41NTQyOTYsIDAuNjU4MjIxIiwgXAotICAgICAgICAgICIwLjE4NjkzMSwgMC4yODEwNTIsIDAuMzU2NTg3LCAwLjQwOTA1OCwgMC40OTI0MjQsIDAuNTY1MjI4LCAwLjY2OTE0OCIsIFwKLSAgICAgICAgICAiMC4xOTc3NSwgMC4yOTE4NjQsIDAuMzY3NDg1LCAwLjQxOTg5MiwgMC41MDMyOTQsIDAuNTc2MDU4LCAwLjY4MDA3MyIsIFwKLSAgICAgICAgICAiMC4yMTUxNDQsIDAuMzA5MjUzLCAwLjM4NDg0LCAwLjQzNzI2MywgMC41MjA2MjMsIDAuNTkzNDI5LCAwLjY5NzM2MSIsIFwKLSAgICAgICAgICAiMC4yMjk0NDEsIDAuMzIzNTA5LCAwLjM5OTEwNywgMC40NTE1MzksIDAuNTM0OTQ0LCAwLjYwNzcxMSwgMC43MTE2NzciKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTg5OTcsIDAuMjA0NzY2LCAwLjM0ODk3OCwgMC40NTM2NTgsIDAuNjIzMzkyLCAwLjc3MjMyNSwgMC45ODcxNjMiLCBcCi0gICAgICAgICAgIjAuMDU5MTA0LCAwLjIwNDYyOCwgMC4zNDg4ODEsIDAuNDUzNzc1LCAwLjYyMjcwOSwgMC43NzIyMDEsIDAuOTg3MTM4IiwgXAotICAgICAgICAgICIwLjA1ODk5OCwgMC4yMDQ3NDgsIDAuMzQ4OTcxLCAwLjQ1Mzc3NCwgMC42MjI3NjksIDAuNzcyMjUsIDAuOTg3MTI1IiwgXAotICAgICAgICAgICIwLjA1ODk2NywgMC4yMDQ2MDgsIDAuMzQ4ODY4LCAwLjQ1Mzc2NSwgMC42MjI1NDUsIDAuNzcyODE3LCAwLjk4NzEzOSIsIFwKLSAgICAgICAgICAiMC4wNTg5NzgsIDAuMjA0NzA0LCAwLjM0ODk5MSwgMC40NTM2NzksIDAuNjIyNzQ2LCAwLjc3MjI5MywgMC45ODc1OTEiLCBcCi0gICAgICAgICAgIjAuMDU5MDkyLCAwLjIwNDc2MywgMC4zNDg5NjcsIDAuNDUzNzg2LCAwLjYyMjg1NywgMC43NzI3MjgsIDAuOTg3MTQyIiwgXAotICAgICAgICAgICIwLjA1ODk1MywgMC4yMDQ2MTUsIDAuMzQ4ODAzLCAwLjQ1MzY3MywgMC42MjI3NjgsIDAuNzcyMzEsIDAuOTg3MzA2Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTY0MTIxLCAwLjI2MTc0MiwgMC4zMzkwNjcsIDAuMzkyMzExLCAwLjQ3NjY5NywgMC41NTAyMTcsIDAuNjU1MiIsIFwKLSAgICAgICAgICAiMC4xNzI5MzMsIDAuMjcwNDY1LCAwLjM0NzgxMiwgMC40MDEwODYsIDAuNDg1NDI1LCAwLjU1ODk1NywgMC42NjM5MDEiLCBcCi0gICAgICAgICAgIjAuMTgyNzY4LCAwLjI4MDM3MSwgMC4zNTc3MTMsIDAuNDEwOTkxLCAwLjQ5NTMyOSwgMC41Njg4NDgsIDAuNjczODA3IiwgXAotICAgICAgICAgICIwLjE5Mjc3NSwgMC4yOTAzMTYsIDAuMzY3NjExLCAwLjQyMDg0MSwgMC41MDUyNDQsIDAuNTc4NzY1LCAwLjY4MzcxMiIsIFwKLSAgICAgICAgICAiMC4yMDI0MTcsIDAuMjk5OTY5LCAwLjM3NzMsIDAuNDMwNTI3LCAwLjUxNDkyNSwgMC41ODg0NDYsIDAuNjkzNDA1IiwgXAotICAgICAgICAgICIwLjIxNzk5NywgMC4zMTU1NjUsIDAuMzkyOTA1LCAwLjQ0NjE1OSwgMC41MzA1MjYsIDAuNjA0MDcxLCAwLjcwOTAwNSIsIFwKLSAgICAgICAgICAiMC4yMzExNTgsIDAuMzI4NTQzLCAwLjQwNTk1NCwgMC40NTkyMzEsIDAuNTQzNTc0LCAwLjYxNzExNCwgMC43MjIwNTIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjE3NDMsIDAuMjA2MjcxLCAwLjM0Nzc0NywgMC40NTA0ODEsIDAuNjE2MTQxLCAwLjc2MjE3NywgMC45NzQ1MTgiLCBcCi0gICAgICAgICAgIjAuMDYxOTA0LCAwLjIwNjM5NCwgMC4zNDc3NTYsIDAuNDUwMTAxLCAwLjYxNjE1LCAwLjc2MzcyMiwgMC45NzQzMTQiLCBcCi0gICAgICAgICAgIjAuMDYxNjc4LCAwLjIwNjI4NCwgMC4zNDc3NDMsIDAuNDUwMDk5LCAwLjYxNjEzOCwgMC43NjMyMzIsIDAuOTc0MjQ5IiwgXAotICAgICAgICAgICIwLjA2MTgxOSwgMC4yMDYyLCAwLjM0NzczMywgMC40NTAyODMsIDAuNjE2MTI0LCAwLjc2MjIwNywgMC45NzI4NzciLCBcCi0gICAgICAgICAgIjAuMDYxNjk5LCAwLjIwNjMwOCwgMC4zNDc3MzQsIDAuNDUwMjU5LCAwLjYxNjEzOSwgMC43NjMwOTYsIDAuOTc0MjciLCBcCi0gICAgICAgICAgIjAuMDYxNzAzLCAwLjIwNjM2NSwgMC4zNDc2NjcsIDAuNDUwNDMsIDAuNjE2MTk0LCAwLjc2Mjk2MiwgMC45NzI4MTgiLCBcCi0gICAgICAgICAgIjAuMDYxOTA0LCAwLjIwNjM1MiwgMC4zNDc3MiwgMC40NTAwOTksIDAuNjE2MTUxLCAwLjc2MjI2NSwgMC45NzQyMjYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNTQwMjEsIDAuMjQ4MTIyLCAwLjMyMzY4MSwgMC4zNzYwOTMsIDAuNDU5NDY0LCAwLjUzMjI2OSwgMC42MzYxOTUiLCBcCi0gICAgICAgICAgIjAuMTYyOTE0LCAwLjI1Njk3NSwgMC4zMzI1NzIsIDAuMzg0OTgyLCAwLjQ2ODM4OCwgMC41NDExNSwgMC42NDUwNzkiLCBcCi0gICAgICAgICAgIjAuMTczODgxLCAwLjI2Nzg1OCwgMC4zNDM0NjEsIDAuMzk1ODU0LCAwLjQ3OTI2OSwgMC41NTIwMzUsIDAuNjU1OTkzIiwgXAotICAgICAgICAgICIwLjE4NDcxNSwgMC4yNzg4MDYsIDAuMzU0MzA4LCAwLjQwNjc3OSwgMC40OTAxNTEsIDAuNTYyOTgxLCAwLjY2Njg3OCIsIFwKLSAgICAgICAgICAiMC4xOTU1NTQsIDAuMjg5NTUyLCAwLjM2NTE0OSwgMC40MTc2MDgsIDAuNTAwOTgzLCAwLjU3Mzc1MSwgMC42Nzc3MjYiLCBcCi0gICAgICAgICAgIjAuMjEyNzgsIDAuMzA2ODgzLCAwLjM4MjM4NiwgMC40MzQ4NjEsIDAuNTE4MjMzLCAwLjU5MTAzOSwgMC42OTQ5NjUiLCBcCi0gICAgICAgICAgIjAuMjI3ODI0LCAwLjMyMTg3MywgMC4zOTczODEsIDAuNDQ5ODU2LCAwLjUzMzIzMSwgMC42MDYwMTcsIDAuNzA5OTYyIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU4OTAxLCAwLjIwNDU2NSwgMC4zNDg4MDQsIDAuNDUzNTAxLCAwLjYyMjY4OCwgMC43NzIxNzcsIDAuOTg3MDY5IiwgXAotICAgICAgICAgICIwLjA1ODc5MSwgMC4yMDQzMzQsIDAuMzQ4Nzk3LCAwLjQ1MzUxLCAwLjYyMjYwNiwgMC43NzIxOTIsIDAuOTg3MDc0IiwgXAotICAgICAgICAgICIwLjA1ODgxNCwgMC4yMDQzNzcsIDAuMzQ4Nzk4LCAwLjQ1MzQ1MywgMC42MjIyNzgsIDAuNzcyMTUzLCAwLjk4NjExNCIsIFwKLSAgICAgICAgICAiMC4wNTg4ODUsIDAuMjA0NTI2LCAwLjM0ODcxNSwgMC40NTM2MSwgMC42MjIzODUsIDAuNzcxNTQ4LCAwLjk4NzA1MSIsIFwKLSAgICAgICAgICAiMC4wNTg5MzIsIDAuMjA0NDc0LCAwLjM0ODQ4NiwgMC40NTMzMzYsIDAuNjIyNjI3LCAwLjc3MjE3NiwgMC45ODczMiIsIFwKLSAgICAgICAgICAiMC4wNTg4NDQsIDAuMjA0NTM0LCAwLjM0ODY1NCwgMC40NTM2MSwgMC42MjIzNjIsIDAuNzcyNjQ2LCAwLjk4Njk3IiwgXAotICAgICAgICAgICIwLjA1ODk5MywgMC4yMDQ1ODgsIDAuMzQ4NjgzLCAwLjQ1MzYzNywgMC42MjI0MjcsIDAuNzcxOTg0LCAwLjk4NzA2NiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE2Mjg5NywgMC4yNjA0LCAwLjMzNzY5NCwgMC4zOTA5MDksIDAuNDc1MzA4LCAwLjU0ODgxMSwgMC42NTM3NDciLCBcCi0gICAgICAgICAgIjAuMTcxNDU5LCAwLjI2ODkxNywgMC4zNDYxNzEsIDAuMzk5NTMzLCAwLjQ4Mzg1NywgMC41NTczOTgsIDAuNjYyMzExIiwgXAotICAgICAgICAgICIwLjE4MTMzMywgMC4yNzg4MTIsIDAuMzU2MTI1LCAwLjQwOTM2NSwgMC40OTM2OTgsIDAuNTY3MjMsIDAuNjcyMTQyIiwgXAotICAgICAgICAgICIwLjE5MDk4OSwgMC4yODg1NTcsIDAuMzY1ODU4LCAwLjQxOTA4MywgMC41MDM0NTIsIDAuNTc2OTY4LCAwLjY4MTkxMiIsIFwKLSAgICAgICAgICAiMC4yMDA4OTQsIDAuMjk4NDQ0LCAwLjM3NTc2OCwgMC40Mjg5OTcsIDAuNTEzMzM1LCAwLjU4Njg4OCwgMC42OTE4MDgiLCBcCi0gICAgICAgICAgIjAuMjE2Mjk2LCAwLjMxMzc5MiwgMC4zOTExMDgsIDAuNDQ0MzI4LCAwLjUyODY5OCwgMC42MDIyMzYsIDAuNzA3MTg5IiwgXAotICAgICAgICAgICIwLjIyOTA0NiwgMC4zMjY0NjYsIDAuNDAzNzk5LCAwLjQ1NzAyMiwgMC41NDE0MywgMC42MTQ5MzgsIDAuNzE5ODg3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDYxNzA0LCAwLjIwNjE4OSwgMC4zNDc1NCwgMC40NTAwODgsIDAuNjE1OTMyLCAwLjc2MjYyMSwgMC45NzMyMSIsIFwKLSAgICAgICAgICAiMC4wNjE3NTEsIDAuMjA2MTE1LCAwLjM0NzQ1NywgMC40NDk5MzEsIDAuNjE1OTU2LCAwLjc2MzUzNywgMC45NzQwOTQiLCBcCi0gICAgICAgICAgIjAuMDYxNjA5LCAwLjIwNjE2NCwgMC4zNDc0NjQsIDAuNDUwMjc1LCAwLjYxNTk5NCwgMC43NjMwNTcsIDAuOTc0MTgiLCBcCi0gICAgICAgICAgIjAuMDYxNTI3LCAwLjIwNjEwNywgMC4zNDc1MzMsIDAuNDUwMjAzLCAwLjYxNTk0LCAwLjc2MTk4NiwgMC45NzI5ODgiLCBcCi0gICAgICAgICAgIjAuMDYxNjMzLCAwLjIwNjE3NywgMC4zNDc0NzYsIDAuNDUwMjMxLCAwLjYxNjM3NSwgMC43NjI2MiwgMC45NzI2MzkiLCBcCi0gICAgICAgICAgIjAuMDYxNTgyLCAwLjIwNjE4OCwgMC4zNDc0ODgsIDAuNDUwMDc3LCAwLjYxNTkxLCAwLjc2MjA1NiwgMC45NzQyMzQiLCBcCi0gICAgICAgICAgIjAuMDYxODA2LCAwLjIwNjIxNywgMC4zNDc0ODYsIDAuNDUwMDc4LCAwLjYxNTkzLCAwLjc2MjAyNCwgMC45NzQyMDYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNTk0MjcsIDAuMjU0MDk1LCAwLjMyOTg1MiwgMC4zODIzMjQsIDAuNDY1NzI3LCAwLjUzODU0OCwgMC42NDI0ODUiLCBcCi0gICAgICAgICAgIjAuMTY4NDMzLCAwLjI2MzA2MiwgMC4zMzg4NiwgMC4zOTEzNDEsIDAuNDc0Nzk3LCAwLjU0NzU1NSwgMC42NTE1MDEiLCBcCi0gICAgICAgICAgIjAuMTc5Mjk3LCAwLjI3Mzk0LCAwLjM0OTczMSwgMC40MDIyMDcsIDAuNDg1NjYsIDAuNTU4NDE3LCAwLjY2MjM2OSIsIFwKLSAgICAgICAgICAiMC4xOTAxMiwgMC4yODQ3NywgMC4zNjA1NTYsIDAuNDEzMDU4LCAwLjQ5NjQ4MiwgMC41NjkyNDMsIDAuNjczMTkzIiwgXAotICAgICAgICAgICIwLjIwMDk0NCwgMC4yOTU2MDksIDAuMzcxNDA3LCAwLjQyMzg3NSwgMC41MDczNDYsIDAuNTgwMTA0LCAwLjY4NDEzMyIsIFwKLSAgICAgICAgICAiMC4yMTgwMzMsIDAuMzEyNzM5LCAwLjM4ODUsIDAuNDQwOTc4LCAwLjUyNDM4LCAwLjU5NzIwNCwgMC43MDExNDgiLCBcCi0gICAgICAgICAgIjAuMjMzMDgsIDAuMzI3NjgxLCAwLjQwMzQzNywgMC40NTU5MjUsIDAuNTM5NDAxLCAwLjYxMjE1NCwgMC43MTYwNzYiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTk0ODMsIDAuMjA1MzIxLCAwLjM0OTQ1NSwgMC40NTQwNzUsIDAuNjIzMDgzLCAwLjc3MjUzMywgMC45ODczNTgiLCBcCi0gICAgICAgICAgIjAuMDU5Mjc5LCAwLjIwNTI0NSwgMC4zNDk0NjMsIDAuNDUzOTEsIDAuNjIyOTU0LCAwLjc3MjU4MSwgMC45ODcyNTIiLCBcCi0gICAgICAgICAgIjAuMDU5NDk2LCAwLjIwNTEzNywgMC4zNDk0NjcsIDAuNDU0MDc3LCAwLjYyMjk1MiwgMC43NzI2MTksIDAuOTg3MjY1IiwgXAotICAgICAgICAgICIwLjA1OTM3NCwgMC4yMDUxMjgsIDAuMzQ5NDQ1LCAwLjQ1NDE3MywgMC42MjM3NDEsIDAuNzcyNjE1LCAwLjk4NzIwMiIsIFwKLSAgICAgICAgICAiMC4wNTk0MDEsIDAuMjA1MjQ4LCAwLjM0OTQ1MiwgMC40NTQxNjMsIDAuNjIyOTQ3LCAwLjc3MjU3OCwgMC45ODc3NTciLCBcCi0gICAgICAgICAgIjAuMDU5NDgyLCAwLjIwNTMyNSwgMC4zNDk0NTQsIDAuNDU0MTgzLCAwLjYyMzE3NSwgMC43NzI1MDYsIDAuOTg3MjQ0IiwgXAotICAgICAgICAgICIwLjA1OTUxMSwgMC4yMDUzNDQsIDAuMzQ5NDgzLCAwLjQ1NDE4OSwgMC42MjM2MjMsIDAuNzczMTM2LCAwLjk4NzMzNyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE2ODMzNiwgMC4yNjY1NTksIDAuMzQ0MTI1LCAwLjM5NzQ0LCAwLjQ4MTg1OCwgMC41NTU0MDksIDAuNjYwMzQxIiwgXAotICAgICAgICAgICIwLjE3NzE4OSwgMC4yNzU0MDcsIDAuMzUyOTI3LCAwLjQwNjI3NCwgMC40OTA2NTUsIDAuNTY0MjA4LCAwLjY2OTE0NSIsIFwKLSAgICAgICAgICAiMC4xODcyNjksIDAuMjg1NDQ5LCAwLjM2Mjk3LCAwLjQxNjI4MiwgMC41MDA3MTcsIDAuNTc0MjU1LCAwLjY3OTIiLCBcCi0gICAgICAgICAgIjAuMTk3MDAxLCAwLjI5NTIxMiwgMC4zNzI3OCwgMC40MjYxMDUsIDAuNTEwNDk0LCAwLjU4NDA2NiwgMC42ODkiLCBcCi0gICAgICAgICAgIjAuMjA2ODQ1LCAwLjMwNTAyNSwgMC4zODI1NzQsIDAuNDM1OTI2LCAwLjUyMDMxNiwgMC41OTM4NTEsIDAuNjk4ODUiLCBcCi0gICAgICAgICAgIjAuMjIyNDksIDAuMzIwNjU2LCAwLjM5ODIxNCwgMC40NTE1NjQsIDAuNTM1OTQ5LCAwLjYwOTQ4OSwgMC43MTQ0NzMiLCBcCi0gICAgICAgICAgIjAuMjM1NDU5LCAwLjMzMzYzMSwgMC40MTEyMDEsIDAuNDY0NTQ0LCAwLjU0ODkzNiwgMC42MjI0NzUsIDAuNzI3NDQxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDYyMjEsIDAuMjA3MTYyLCAwLjM0ODQzOSwgMC40NTEwNiwgMC42MTY2ODUsIDAuNzYyNzY3LCAwLjk3MzE4OCIsIFwKLSAgICAgICAgICAiMC4wNjIzNDMsIDAuMjA3MTU3LCAwLjM0ODQ3NywgMC40NTA4ODUsIDAuNjE2Njg5LCAwLjc2MzI1OSwgMC45NzQ1OTQiLCBcCi0gICAgICAgICAgIjAuMDYyMjY5LCAwLjIwNzExLCAwLjM0ODQ2MSwgMC40NTEwNjIsIDAuNjE2NjYxLCAwLjc2Mjg1OCwgMC45NzMyMTIiLCBcCi0gICAgICAgICAgIjAuMDYyMTU3LCAwLjIwNzE1MiwgMC4zNDg0MzcsIDAuNDUxMTA3LCAwLjYxNjkwMSwgMC43NjI3NTksIDAuOTczMjAzIiwgXAotICAgICAgICAgICIwLjA2MjA5NiwgMC4yMDcwOTUsIDAuMzQ4NDU1LCAwLjQ1MTA2NiwgMC42MTY2NzcsIDAuNzYzNywgMC45NzQ4NjQiLCBcCi0gICAgICAgICAgIjAuMDYyMDg1LCAwLjIwNzEyOSwgMC4zNDg0NjMsIDAuNDUxMDcyLCAwLjYxNjY3MywgMC43NjM0MzIsIDAuOTc0NjA0IiwgXAotICAgICAgICAgICIwLjA2MjEwMiwgMC4yMDcwNTcsIDAuMzQ4NDI5LCAwLjQ1MDg4NCwgMC42MTY2NywgMC43NjMyMSwgMC45NzQ1OTUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNTczNzEsIDAuMjUxODk2LCAwLjMyNzU5NCwgMC4zODAwOSwgMC40NjM1NTQsIDAuNTM2MzA1LCAwLjY0MDI0MSIsIFwKLSAgICAgICAgICAiMC4xNjYzNjUsIDAuMjYwOTcyLCAwLjMzNjY4NywgMC4zODkxNDIsIDAuNDcyNTU0LCAwLjU0NTMzNiwgMC42NDkyNjQiLCBcCi0gICAgICAgICAgIjAuMTc3MzY0LCAwLjI3MTg3MiwgMC4zNDc2MjYsIDAuNDAwMDc2LCAwLjQ4MzUyMiwgMC41NTYyNjksIDAuNjYwMjA5IiwgXAotICAgICAgICAgICIwLjE4ODI2NiwgMC4yODI4NTgsIDAuMzU4NTY4LCAwLjQxMTAzMSwgMC40OTQ0MSwgMC41NjcyMTEsIDAuNjcxMTUiLCBcCi0gICAgICAgICAgIjAuMTk5MDUsIDAuMjkzNjA5LCAwLjM2OTM2NSwgMC40MjE4MDksIDAuNTA1MjY3LCAwLjU3ODAxNCwgMC42ODE5NTQiLCBcCi0gICAgICAgICAgIjAuMjE2NTI4LCAwLjMxMTEwNiwgMC4zODY4NDcsIDAuNDM5MzE0LCAwLjUyMjc0MiwgMC41OTU1MTQsIDAuNjk5NTA4IiwgXAotICAgICAgICAgICIwLjIzMTA4MywgMC4zMjU1OTksIDAuNDAxMzYxLCAwLjQ1MzgzNSwgMC41MzcyNywgMC42MTAwMiwgMC43MTM5NTkiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTkxNTMsIDAuMjA0OTg4LCAwLjM0OTAzLCAwLjQ1Mzg4NiwgMC42MjM2NDgsIDAuNzcyMzc3LCAwLjk4NzE4MiIsIFwKLSAgICAgICAgICAiMC4wNTkyNzEsIDAuMjA1MTY1LCAwLjM0OTMsIDAuNDUzOTQyLCAwLjYyMzYxNSwgMC43NzI0NzUsIDAuOTg3MjEzIiwgXAotICAgICAgICAgICIwLjA1OTM1MSwgMC4yMDQ5ODIsIDAuMzQ5MzE3LCAwLjQ1MzkyMywgMC42MjI4MTEsIDAuNzcyNDgyLCAwLjk4NjM5NSIsIFwKLSAgICAgICAgICAiMC4wNTkyNDQsIDAuMjA1MTYsIDAuMzQ5MzA0LCAwLjQ1NDAzNiwgMC42MjMwNSwgMC43NzIyMTUsIDAuOTg3MjE0IiwgXAotICAgICAgICAgICIwLjA1OTI0MSwgMC4yMDQ5ODcsIDAuMzQ5MzE2LCAwLjQ1NDAyLCAwLjYyMjgwMywgMC43NzI0NjMsIDAuOTg3MTcyIiwgXAotICAgICAgICAgICIwLjA1OTM1MywgMC4yMDUxNzYsIDAuMzQ5MzE2LCAwLjQ1Mzk0NiwgMC42MjM1OTUsIDAuNzcyNDcyLCAwLjk4NzY4NyIsIFwKLSAgICAgICAgICAiMC4wNTkzMTYsIDAuMjA1MDEsIDAuMzQ5MzM1LCAwLjQ1Mzk1NCwgMC42MjI4MDYsIDAuNzcyNDkzLCAwLjk4NzA5OSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE2NzU1OCwgMC4yNjU3MjcsIDAuMzQzMjY2LCAwLjM5NjU2OSwgMC40ODA5NjYsIDAuNTU0NTI4LCAwLjY1OTQ1NyIsIFwKLSAgICAgICAgICAiMC4xNzYwODcsIDAuMjc0Mjc5LCAwLjM1MTgxLCAwLjQwNTA5NCwgMC40ODk1MjgsIDAuNTYzMDU5LCAwLjY2ODAwNyIsIFwKLSAgICAgICAgICAiMC4xODU5ODYsIDAuMjg0MTEyLCAwLjM2MTYxLCAwLjQxNDkxMiwgMC40OTkzNDcsIDAuNTcyODc1LCAwLjY3Nzg0OCIsIFwKLSAgICAgICAgICAiMC4xOTU3OTUsIDAuMjkzOTE5LCAwLjM3MTQxOCwgMC40MjQ3MiwgMC41MDkxNDksIDAuNTgyNjgzLCAwLjY4NzYyOCIsIFwKLSAgICAgICAgICAiMC4yMDU2NzcsIDAuMzAzNzg2LCAwLjM4MTI3OCwgMC40MzQ1ODEsIDAuNTE5MDExLCAwLjU5MjU0MiwgMC42OTc0OTkiLCBcCi0gICAgICAgICAgIjAuMjIxMTg0LCAwLjMxOTI1OSwgMC4zOTY3NzMsIDAuNDUwMDc4LCAwLjUzNDUxNiwgMC42MDgwNDMsIDAuNzEzMDE2IiwgXAotICAgICAgICAgICIwLjIzMzk0LCAwLjMzMTk3MSwgMC40MDk1MjEsIDAuNDYyODU5LCAwLjU0NzIzNiwgMC42MjA3NzgsIDAuNzI1NzMzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDYyMTIyLCAwLjIwNzA3NCwgMC4zNDgzNTgsIDAuNDUwOTQ5LCAwLjYxNjU4NCwgMC43NjI3MDksIDAuOTczMTMyIiwgXAotICAgICAgICAgICIwLjA2MjEsIDAuMjA3MDAyLCAwLjM0ODM4MSwgMC40NTA4MjgsIDAuNjE2NjA0LCAwLjc2MjU5NywgMC45NzMxNDUiLCBcCi0gICAgICAgICAgIjAuMDYyMjE5LCAwLjIwNzA5NywgMC4zNDgzNzQsIDAuNDUwOTc0LCAwLjYxNjU4NCwgMC43NjI3MjksIDAuOTc0ODEyIiwgXAotICAgICAgICAgICIwLjA2MjIyMSwgMC4yMDY5NDMsIDAuMzQ4Mzc0LCAwLjQ1MDk2MiwgMC42MTY1ODcsIDAuNzYyNzY4LCAwLjk3MzI4OSIsIFwKLSAgICAgICAgICAiMC4wNjIxNzMsIDAuMjA3MDgyLCAwLjM0ODMxMywgMC40NTA4OTgsIDAuNjE2NTcsIDAuNzYyNzcxLCAwLjk3MzcwMyIsIFwKLSAgICAgICAgICAiMC4wNjIxNzEsIDAuMjA3MDk3LCAwLjM0ODM2OCwgMC40NTA5NjYsIDAuNjE2NTc3LCAwLjc2Mjc3NSwgMC45NzMyNiIsIFwKLSAgICAgICAgICAiMC4wNjIxMzMsIDAuMjA2OTQ0LCAwLjM0ODM0MywgMC40NTA3LCAwLjYxNjU5OCwgMC43NjQwMDEsIDAuOTc0NTEyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlMwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE1MTI3MSwgMC4yNDU4OTEsIDAuMzIxNTgyLCAwLjM3NDA2MywgMC40NTc0NjUsIDAuNTMwMjc1LCAwLjYzNDE3NSIsIFwKLSAgICAgICAgICAiMC4xNjA0NjMsIDAuMjU1MDcyLCAwLjMzMDc4MywgMC4zODMyNDQsIDAuNDY2NjgyLCAwLjUzOTQzNSwgMC42NDM0MDUiLCBcCi0gICAgICAgICAgIjAuMTcyMTk4LCAwLjI2Njc5OSwgMC4zNDI1MTUsIDAuMzk0OTc4LCAwLjQ3ODM3MiwgMC41NTExNjcsIDAuNjU1MTA1IiwgXAotICAgICAgICAgICIwLjE4Mzk2MywgMC4yNzg1MjUsIDAuMzU0MjM0LCAwLjQwNjY5NiwgMC40OTAwOSwgMC41NjI4NywgMC42NjY4MTQiLCBcCi0gICAgICAgICAgIjAuMTk2MDA0LCAwLjI5MDU1NSwgMC4zNjYyNzYsIDAuNDE4NzM2LCAwLjUwMjA4MywgMC41NzQ4OTMsIDAuNjc4ODY2IiwgXAotICAgICAgICAgICIwLjIxNDg4OSwgMC4zMDk0NDQsIDAuMzg1MjEyLCAwLjQzNzY2MiwgMC41MjExMjQsIDAuNTkzODc0LCAwLjY5Nzg0MSIsIFwKLSAgICAgICAgICAiMC4yMzE1NjksIDAuMzI2MDMsIDAuNDAxNzgxLCAwLjQ1NDI3LCAwLjUzNzY4NCwgMC42MTA0MzYsIDAuNzE0NDAzIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU5MjIzLCAwLjIwNTE0NiwgMC4zNDkzMjEsIDAuNDUzOTc5LCAwLjYyMzY4NiwgMC43NzMwNDgsIDAuOTg3MjUiLCBcCi0gICAgICAgICAgIjAuMDU5MjI5LCAwLjIwNTE1LCAwLjM0OTMwNSwgMC40NTQwNDcsIDAuNjIzNjM5LCAwLjc3Mjc4NCwgMC45ODc2ODgiLCBcCi0gICAgICAgICAgIjAuMDU5MzMyLCAwLjIwNTE0LCAwLjM0OTMxOCwgMC40NTQwMTgsIDAuNjIzNjIyLCAwLjc3MjkzMiwgMC45ODcyMDYiLCBcCi0gICAgICAgICAgIjAuMDU5MjYsIDAuMjA1MTUsIDAuMzQ5MzE0LCAwLjQ1NDAyNCwgMC42MjI5NywgMC43NzI4MTgsIDAuOTg3NTYyIiwgXAotICAgICAgICAgICIwLjA1OTI1MywgMC4yMDUxNjgsIDAuMzQ5Mjg4LCAwLjQ1NDA0NCwgMC42MjM2MiwgMC43NzI5NCwgMC45ODcyMTUiLCBcCi0gICAgICAgICAgIjAuMDU5MjYsIDAuMjA1MTcyLCAwLjM0OTMwOCwgMC40NTQwMjIsIDAuNjIzNjA5LCAwLjc3MjczOCwgMC45ODc0NzciLCBcCi0gICAgICAgICAgIjAuMDU5MzQsIDAuMjA1MTc1LCAwLjM0OTM0NSwgMC40NTQwNTIsIDAuNjIzNjIyLCAwLjc3Mjk2LCAwLjk4NzMwNiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE2MDY1NSwgMC4yNTg3ODUsIDAuMzM2MzQ4LCAwLjM4OTY4NCwgMC40NzQwNjMsIDAuNTQ3NjI4LCAwLjY1MjU2MyIsIFwKLSAgICAgICAgICAiMC4xNjk1MDcsIDAuMjY3NzA3LCAwLjM0NTI0NywgMC4zOTg1OTQsIDAuNDgyOTc3LCAwLjU1NjU0MSwgMC42NjE0NzIiLCBcCi0gICAgICAgICAgIjAuMTgwOTY0LCAwLjI3OTEzNSwgMC4zNTY2ODMsIDAuNDEwMDEyLCAwLjQ5NDM5MiwgMC41Njc5NjgsIDAuNjcyOTAzIiwgXAotICAgICAgICAgICIwLjE5MjI2NywgMC4yOTA0NTMsIDAuMzY4MDE0LCAwLjQyMTM2OCwgMC41MDU3NDYsIDAuNTc5MjgsIDAuNjg0MjQyIiwgXAotICAgICAgICAgICIwLjIwMzk4MywgMC4zMDIwODksIDAuMzc5NjI4LCAwLjQzMjk3MSwgMC41MTczNywgMC41OTA5MTEsIDAuNjk1OTA3IiwgXAotICAgICAgICAgICIwLjIyMjE0NywgMC4zMjAzMjUsIDAuMzk3ODg0LCAwLjQ1MTE5NiwgMC41MzU2MzEsIDAuNjA5MTY5LCAwLjcxNDEyNSIsIFwKLSAgICAgICAgICAiMC4yMzgyMzEsIDAuMzM2MzMxLCAwLjQxMzg2MSwgMC40NjcxNjIsIDAuNTUxNjE2LCAwLjYyNTE1NCwgMC43MzAxMTEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjIyNDYsIDAuMjA3MTc4LCAwLjM0ODQ2NiwgMC40NTEwOTIsIDAuNjE3MDk3LCAwLjc2MjkzNCwgMC45NzQ2NCIsIFwKLSAgICAgICAgICAiMC4wNjIzMTEsIDAuMjA3MTkxLCAwLjM0ODQ2MywgMC40NTEwODgsIDAuNjE3MTU1LCAwLjc2MzI1OCwgMC45NzQ1OTMiLCBcCi0gICAgICAgICAgIjAuMDYyMjYxLCAwLjIwNzIsIDAuMzQ4NDgsIDAuNDUxMDc4LCAwLjYxNzA4NywgMC43NjM5OTQsIDAuOTc0NzAzIiwgXAotICAgICAgICAgICIwLjA2MjE1LCAwLjIwNzEzMywgMC4zNDg0NzgsIDAuNDUxMDIsIDAuNjE2NjgzLCAwLjc2NDA4OCwgMC45NzQ2NzIiLCBcCi0gICAgICAgICAgIjAuMDYyMjQ3LCAwLjIwNzE3NiwgMC4zNDg0OSwgMC40NTEwNzgsIDAuNjE2NzE1LCAwLjc2MzA4MywgMC45NzQ4NjQiLCBcCi0gICAgICAgICAgIjAuMDYyMjM3LCAwLjIwNzE1OSwgMC4zNDg0OTQsIDAuNDUwOTM3LCAwLjYxNjY4NywgMC43NjQwMzMsIDAuOTc0Njc0IiwgXAotICAgICAgICAgICIwLjA2MjIzMiwgMC4yMDcyMzQsIDAuMzQ4NDU1LCAwLjQ1MSwgMC42MTY2ODIsIDAuNzYzMjI2LCAwLjk3NDY1MiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xODAzODYsIDAuMjc1MDQxLCAwLjM1MDcxMiwgMC40MDMyMzUsIDAuNDg2NjUxLCAwLjU1OTQyLCAwLjY2MzM3NCIsIFwKLSAgICAgICAgICAiMC4xOTAzMDksIDAuMjg0OTU1LCAwLjM2MDY5MiwgMC40MTMxNTUsIDAuNDk2NTQ4LCAwLjU2OTM2NywgMC42NzMzMDQiLCBcCi0gICAgICAgICAgIjAuMjAyNTMxLCAwLjI5NzEzMSwgMC4zNzI4MzUsIDAuNDI1MzIxLCAwLjUwODczNiwgMC41ODE1MjcsIDAuNjg1NDYxIiwgXAotICAgICAgICAgICIwLjIxMzA2OSwgMC4zMDc2ODMsIDAuMzgzNDUyLCAwLjQzNTkwNSwgMC41MTkzNjMsIDAuNTkyMTE3LCAwLjY5NjA2NSIsIFwKLSAgICAgICAgICAiMC4yMjI0MTgsIDAuMzE3MDc4LCAwLjM5MjgxMywgMC40NDUyNywgMC41Mjg2NjksIDAuNjAxNDg1LCAwLjcwNTQyMyIsIFwKLSAgICAgICAgICAiMC4yMzQ5NDIsIDAuMzI5NTg5LCAwLjQwNTMzLCAwLjQ1Nzc5MywgMC41NDExODMsIDAuNjE0MDAyLCAwLjcxNzk0IiwgXAotICAgICAgICAgICIwLjI0NDE5MSwgMC4zMzg4NDEsIDAuNDE0NjE3LCAwLjQ2NzA5MSwgMC41NTA1NDIsIDAuNjIzMjk0LCAwLjcyNzI0NiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1OTM2OSwgMC4yMDUzNDgsIDAuMzQ5NDU5LCAwLjQ1NDE5MywgMC42MjM3ODUsIDAuNzcyNjIyLCAwLjk4NzY3MiIsIFwKLSAgICAgICAgICAiMC4wNTk0OTYsIDAuMjA1MzM2LCAwLjM0OTQ4MywgMC40NTQxOCwgMC42MjM3OTIsIDAuNzczMDE1LCAwLjk4NzY2MyIsIFwKLSAgICAgICAgICAiMC4wNTk0OSwgMC4yMDUzNTMsIDAuMzQ5NTA3LCAwLjQ1NDIwNCwgMC42MjM3NDksIDAuNzczMDg5LCAwLjk4NzY1NyIsIFwKLSAgICAgICAgICAiMC4wNTk0MDYsIDAuMjA1MzIzLCAwLjM0OTQ4NCwgMC40NTQxNjgsIDAuNjIzNzc1LCAwLjc3MjYxMywgMC45ODc2NDMiLCBcCi0gICAgICAgICAgIjAuMDU5NDI0LCAwLjIwNTMzOCwgMC4zNDk0NjEsIDAuNDU0MDg0LCAwLjYyMzcwNywgMC43NzI2MDQsIDAuOTg3NDEzIiwgXAotICAgICAgICAgICIwLjA1OTQ1MiwgMC4yMDUzMjgsIDAuMzQ5NDY3LCAwLjQ1NDE4NSwgMC42MjM3NTUsIDAuNzczMTMsIDAuOTg3NzUzIiwgXAotICAgICAgICAgICIwLjA1OTM4NCwgMC4yMDUzMTUsIDAuMzQ5NDc3LCAwLjQ1NDE4MywgMC42MjM3NzMsIDAuNzcyNjE5LCAwLjk4NzM0MyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE4NzE1NiwgMC4yODUzMzMsIDAuMzYyODcsIDAuNDE2MTg4LCAwLjUwMDU3MywgMC41NzQxMzQsIDAuNjc5MDYzIiwgXAotICAgICAgICAgICIwLjE5NzM0NywgMC4yOTU1MTIsIDAuMzczMDU2LCAwLjQyNjM2NywgMC41MTA3MzksIDAuNTg0MzIsIDAuNjg5MjQ5IiwgXAotICAgICAgICAgICIwLjIwOTg1LCAwLjMwODAxNSwgMC4zODU1NiwgMC40Mzg4NzIsIDAuNTIzMjU1LCAwLjU5NjgyOCwgMC43MDE3NTYiLCBcCi0gICAgICAgICAgIjAuMjIwOTk2LCAwLjMxOTEyMSwgMC4zOTY2MjQsIDAuNDQ5OTc1LCAwLjUzNDM1LCAwLjYwNzkxMywgMC43MTI4NCIsIFwKLSAgICAgICAgICAiMC4yMzEyNDcsIDAuMzI5NTk2LCAwLjQwNjg4LCAwLjQ2MDE5OSwgMC41NDQ1NzIsIDAuNjE4MTMxLCAwLjcyMzM0OCIsIFwKLSAgICAgICAgICAiMC4yNDUwNTEsIDAuMzQzMTU3LCAwLjQyMDY0OSwgMC40NzM5NSwgMC41NTgzNzYsIDAuNjMxOTA3LCAwLjczNjg1MiIsIFwKLSAgICAgICAgICAiMC4yNTU0NDUsIDAuMzUzNTcsIDAuNDMxMDg0LCAwLjQ4NDQyMywgMC41Njg4MDQsIDAuNjQyMzY4LCAwLjc0NzI4MSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2MjI3MSwgMC4yMDcwOTQsIDAuMzQ4MzgxLCAwLjQ1MTAzNSwgMC42MTY2NDEsIDAuNzYzNTg1LCAwLjk3NTAxMyIsIFwKLSAgICAgICAgICAiMC4wNjIyNDYsIDAuMjA3MDkxLCAwLjM0ODM3NiwgMC40NTEwMywgMC42MTcwNjIsIDAuNzYyOTcyLCAwLjk3NDg0OCIsIFwKLSAgICAgICAgICAiMC4wNjIyNDIsIDAuMjA3MDg4LCAwLjM0ODM4LCAwLjQ1MDk5NiwgMC42MTY1OTEsIDAuNzYyODYxLCAwLjk3NDc4MSIsIFwKLSAgICAgICAgICAiMC4wNjIyNzcsIDAuMjA3MDg3LCAwLjM0ODM4MiwgMC40NTEwNTcsIDAuNjE3MDYxLCAwLjc2MzEzNSwgMC45NzQ3OSIsIFwKLSAgICAgICAgICAiMC4wNjIyMTksIDAuMjA3MDk5LCAwLjM0ODM2LCAwLjQ1MDk3NCwgMC42MTcwMzgsIDAuNzYzMTExLCAwLjk3NDY2OSIsIFwKLSAgICAgICAgICAiMC4wNjIyNjQsIDAuMjA3MDgsIDAuMzQ4MzYzLCAwLjQ1MDk1OSwgMC42MTY2MjEsIDAuNzYyOTM4LCAwLjk3NDg2MyIsIFwKLSAgICAgICAgICAiMC4wNjIyMjIsIDAuMjA3MDY1LCAwLjM0ODM1OCwgMC40NTA5NjUsIDAuNjE2NjE1LCAwLjc2MzE0OSwgMC45NzQ4MjgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUzEiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk4Mzc4LCAwLjE5MjY4OSwgMC4yNjgzMDksIDAuMzIwNzUzLCAwLjQwNDA5NywgMC40NzY4MzcsIDAuNTgwNzI5IiwgXAotICAgICAgICAgICIwLjEwNzIzMiwgMC4yMDE1NzksIDAuMjc3MTAzLCAwLjMyOTU3NiwgMC40MTI5MiwgMC40ODU2NDcsIDAuNTg5NTQ4IiwgXAotICAgICAgICAgICIwLjExNzg0NiwgMC4yMTIxNDEsIDAuMjg3NzY3LCAwLjM0MDE1MywgMC40MjM1NSwgMC40OTYyNjMsIDAuNjAwMjMxIiwgXAotICAgICAgICAgICIwLjEyODE1LCAwLjIyMjM0OCwgMC4yOTgsIDAuMzUwNDEzLCAwLjQzMzc2OCwgMC41MDY0ODIsIDAuNjEwNDAzIiwgXAotICAgICAgICAgICIwLjEzODgyLCAwLjIzMjg1NiwgMC4zMDg0MywgMC4zNjA4NTcsIDAuNDQ0MjA4LCAwLjUxNjk1MiwgMC42MjA4NDkiLCBcCi0gICAgICAgICAgIjAuMTU1NjIzLCAwLjI0OTM0NCwgMC4zMjQ5NTEsIDAuMzc3MzQ2LCAwLjQ2MDczMSwgMC41MzM0NSwgMC42Mzc0MTQiLCBcCi0gICAgICAgICAgIjAuMTY5NTc1LCAwLjI2MzA3OCwgMC4zMzg2ODMsIDAuMzkxMDk2LCAwLjQ3NDQzMSwgMC41NDcyMDYsIDAuNjUxMDk5Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU4MzU3LCAwLjIwNDY0OSwgMC4zNDg5MDEsIDAuNDUzNjI2LCAwLjYyMzMzOSwgMC43NzIwNDYsIDAuOTg2ODk2IiwgXAotICAgICAgICAgICIwLjA1ODI1MywgMC4yMDQ2MTEsIDAuMzQ4Nzg2LCAwLjQ1MzYwMSwgMC42MjMyNjksIDAuNzcyNDc1LCAwLjk4NjgwMSIsIFwKLSAgICAgICAgICAiMC4wNTgwMTUsIDAuMjA0NDc1LCAwLjM0ODg1NiwgMC40NTM0ODEsIDAuNjIzMjE0LCAwLjc3MjAwOCwgMC45ODcyMjgiLCBcCi0gICAgICAgICAgIjAuMDU3NzY1LCAwLjIwNDQyNiwgMC4zNDg3NywgMC40NTM1OTEsIDAuNjIzMjgzLCAwLjc3MjEwOSwgMC45ODY4OTYiLCBcCi0gICAgICAgICAgIjAuMDU3MTg5LCAwLjIwNDI0OCwgMC4zNDg3NiwgMC40NTM1MTYsIDAuNjIzMjQ4LCAwLjc3MTUyNCwgMC45ODY4NjYiLCBcCi0gICAgICAgICAgIjAuMDU3MDE5LCAwLjIwNDEyMiwgMC4zNDg2NjMsIDAuNDUzMzY0LCAwLjYyMzE2MywgMC43NzE5NSwgMC45ODcyMDUiLCBcCi0gICAgICAgICAgIjAuMDU4MjgyLCAwLjIwNDE5LCAwLjM0ODY2NywgMC40NTM0MzUsIDAuNjIyNjMxLCAwLjc3MjAzOCwgMC45ODY3NzEiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDg3MywgMC4yMDYwOTcsIDAuMjgzMywgMC4zMzY0OTcsIDAuNDIwNzksIDAuNDk0MjkyLCAwLjU5OTE3NiIsIFwKLSAgICAgICAgICAiMC4xMTcyOCwgMC4yMTQ2NTIsIDAuMjkxODUxLCAwLjM0NTA0OSwgMC40MjkzMzksIDAuNTAyODQsIDAuNjA3NzI1IiwgXAotICAgICAgICAgICIwLjEyNzUyNywgMC4yMjQ4NTYsIDAuMzAyMDYsIDAuMzU1MjM0LCAwLjQzOTU1LCAwLjUxMzA1NiwgMC42MTc5NDgiLCBcCi0gICAgICAgICAgIjAuMTM3NjExLCAwLjIzNDkzMiwgMC4zMTIxMzksIDAuMzY1MzQyLCAwLjQ0OTYzMywgMC41MjMxMzgsIDAuNjI4MDI0IiwgXAotICAgICAgICAgICIwLjE0NzU2LCAwLjI0NDgsIDAuMzIxOTcyLCAwLjM3NTE4NCwgMC40NTk1MDIsIDAuNTMyOTg4LCAwLjYzNzkzNiIsIFwKLSAgICAgICAgICAiMC4xNjM3NSwgMC4yNjA3NzUsIDAuMzM3OTMxLCAwLjM5MTE0OSwgMC40NzU0NCwgMC41NDg5NDUsIDAuNjUzODQiLCBcCi0gICAgICAgICAgIjAuMTc3MTQ0LCAwLjI3MzkzNSwgMC4zNTExNSwgMC40MDQzMTgsIDAuNDg4NjM4LCAwLjU2MjEyOCwgMC42NjcwNjEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjEwNDMsIDAuMjA1NzksIDAuMzQ3MjA4LCAwLjQ1MDAwOCwgMC42MTU3NCwgMC43NjI3MjEsIDAuOTczODY2IiwgXAotICAgICAgICAgICIwLjA2MDk5OCwgMC4yMDU3ODEsIDAuMzQ3MiwgMC40NTAwNjEsIDAuNjE1NzMzLCAwLjc2MjY2NiwgMC45NzM4ODEiLCBcCi0gICAgICAgICAgIjAuMDYwOTg4LCAwLjIwNTc1OCwgMC4zNDcxNTIsIDAuNDQ5Nzc0LCAwLjYxNTc1LCAwLjc2MjM1MywgMC45NzI0MDIiLCBcCi0gICAgICAgICAgIjAuMDYwNzExLCAwLjIwNTcwNywgMC4zNDcxNjcsIDAuNDQ5NjI3LCAwLjYxNTcwOCwgMC43NjI0OCwgMC45NzM4NiIsIFwKLSAgICAgICAgICAiMC4wNjAyMjcsIDAuMjA1NTksIDAuMzQ3MTMzLCAwLjQ0OTc5OCwgMC42MTU2MjksIDAuNzYxNzY5LCAwLjk3NDEzIiwgXAotICAgICAgICAgICIwLjA1OTc1NywgMC4yMDU0OTgsIDAuMzQ3MDM2LCAwLjQ0OTU4NywgMC42MTU2MTQsIDAuNzYzMjI1LCAwLjk3Mzg0NCIsIFwKLSAgICAgICAgICAiMC4wNjA0NDgsIDAuMjA1NTQxLCAwLjM0NzA4OSwgMC40NDk5ODgsIDAuNjE1NjM1LCAwLjc2MzI0MiwgMC45NzM4NTMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUzEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTA1OTkyLCAwLjE5OTkyMywgMC4yNzUzNSwgMC4zMjc3NTgsIDAuNDExMDc3LCAwLjQ4Mzg0NSwgMC41ODc3MzEiLCBcCi0gICAgICAgICAgIjAuMTE1Nzk1LCAwLjIwOTY5NCwgMC4yODUxNzEsIDAuMzM3NTMzLCAwLjQyMDg1NiwgMC40OTM2MTcsIDAuNTk3NTEyIiwgXAotICAgICAgICAgICIwLjEyNzM0NCwgMC4yMjExNjgsIDAuMjk2NjQ5LCAwLjM0OTA3NiwgMC40MzIzOSwgMC41MDUxNTYsIDAuNjA5MDU1IiwgXAotICAgICAgICAgICIwLjEzODMyNSwgMC4yMzIyMjcsIDAuMzA3NjQ0LCAwLjM2MDA2NCwgMC40NDMzOCwgMC41MTYxMjQsIDAuNjIwMDQ0IiwgXAotICAgICAgICAgICIwLjE0ODAyOCwgMC4yNDE4MDIsIDAuMzE3Mjg2LCAwLjM2OTY5MywgMC40NTMwMjYsIDAuNTI1NzYxLCAwLjYyOTY2OSIsIFwKLSAgICAgICAgICAiMC4xNjA1MzIsIDAuMjU0MjM0LCAwLjMyOTY2OSwgMC4zODIwNTEsIDAuNDY1MzYyLCAwLjUzODE0MywgMC42NDIwNDIiLCBcCi0gICAgICAgICAgIjAuMTcwMTk5LCAwLjI2MzYyMywgMC4zMzkwNDgsIDAuMzkxNDQ4LCAwLjQ3NDc3LCAwLjU0NzU0NCwgMC42NTE0NDgiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTgxOCwgMC4yMDQyLCAwLjM0ODQ5MywgMC40NTMzMjQsIDAuNjIyMzk5LCAwLjc3MjM3NCwgMC45ODY3NzMiLCBcCi0gICAgICAgICAgIjAuMDU4MjMxLCAwLjIwNDA2NiwgMC4zNDg0OTYsIDAuNDUzMjE4LCAwLjYyMjg2NSwgMC43NzE5MjYsIDAuOTg3MzExIiwgXAotICAgICAgICAgICIwLjA1ODExLCAwLjIwNDEyNSwgMC4zNDgyMDQsIDAuNDUzMjk5LCAwLjYyMjI2NiwgMC43NzI0MjgsIDAuOTg2NzY3IiwgXAotICAgICAgICAgICIwLjA1ODAwMiwgMC4yMDQxNDksIDAuMzQ4MzI0LCAwLjQ1MzI5NiwgMC42MjIxMzIsIDAuNzcyNDE5LCAwLjk4Njc2MiIsIFwKLSAgICAgICAgICAiMC4wNTc3NzMsIDAuMjA0MDM4LCAwLjM0ODEyMiwgMC40NTMwODksIDAuNjIyMDU2LCAwLjc3MTg1OCwgMC45ODY5MjIiLCBcCi0gICAgICAgICAgIjAuMDU3Mjg5LCAwLjIwNDAxOSwgMC4zNDgzODcsIDAuNDUzMTY2LCAwLjYyMjI3OSwgMC43NzE3NjYsIDAuOTg2NjU1IiwgXAotICAgICAgICAgICIwLjA1NzAzNiwgMC4yMDM5ODksIDAuMzQ4MjcxLCAwLjQ1MzA1LCAwLjYyMjc0NCwgMC43NzE4NjQsIDAuOTg2NjU3Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTEzNjk0LCAwLjIxMTY3MiwgMC4yODkxLCAwLjM0MjMzMywgMC40MjY3MTgsIDAuNTAwMjIyLCAwLjYwNTEzMyIsIFwKLSAgICAgICAgICAiMC4xMjQyMzIsIDAuMjIyMTk3LCAwLjI5OTYzNiwgMC4zNTI5MDQsIDAuNDM3MjM3LCAwLjUxMDc3NywgMC42MTU2NzIiLCBcCi0gICAgICAgICAgIjAuMTM2Njk4LCAwLjIzNDY0NiwgMC4zMTIwOTMsIDAuMzY1MzUyLCAwLjQ0OTczNiwgMC41MjMyMjksIDAuNjI4MTczIiwgXAotICAgICAgICAgICIwLjE0Nzg1NCwgMC4yNDU3MzcsIDAuMzIzMjQ1LCAwLjM3NjU0NywgMC40NjA4NjQsIDAuNTM0NDEzLCAwLjYzOTI5MSIsIFwKLSAgICAgICAgICAiMC4xNTgyNjEsIDAuMjU2MTUzLCAwLjMzMzU5LCAwLjM4Njg1MiwgMC40NzEyMDEsIDAuNTQ0NzMzLCAwLjY0OTYyOSIsIFwKLSAgICAgICAgICAiMC4xNzE2MTMsIDAuMjY5NDI4LCAwLjM0Njg2NSwgMC40MDAxNDgsIDAuNDg0NDc5LCAwLjU1ODAwOSwgMC42NjI5MDYiLCBcCi0gICAgICAgICAgIjAuMTgxODYxLCAwLjI3OTUwNCwgMC4zNTY5MjcsIDAuNDEwMTkyLCAwLjQ5NDU0MywgMC41NjgwODIsIDAuNjczMDMzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDYxNjc4LCAwLjIwNjY4OSwgMC4zNDgwMjIsIDAuNDUwNTQ3LCAwLjYxNjI3NiwgMC43NjI1MTcsIDAuOTczMSIsIFwKLSAgICAgICAgICAiMC4wNjE2MjIsIDAuMjA2Njg1LCAwLjM0ODAyMywgMC40NTA2NzQsIDAuNjE2NjkyLCAwLjc2MjQ0OSwgMC45NzI4OTciLCBcCi0gICAgICAgICAgIjAuMDYxNTQ0LCAwLjIwNjY2NSwgMC4zNDc5NiwgMC40NTA1NTksIDAuNjE2MjU5LCAwLjc2MjU0MywgMC45NzQ1MTUiLCBcCi0gICAgICAgICAgIjAuMDYxNTAyLCAwLjIwNjU4NCwgMC4zNDc5NjMsIDAuNDUwNDYxLCAwLjYxNjI4NSwgMC43NjM0NDMsIDAuOTc0MjYiLCBcCi0gICAgICAgICAgIjAuMDYxMTY1LCAwLjIwNjU3MSwgMC4zNDc5NjIsIDAuNDUwNTM2LCAwLjYxNjA3MSwgMC43NjI0MjEsIDAuOTcyODUyIiwgXAotICAgICAgICAgICIwLjA2MDg1MiwgMC4yMDY1MzEsIDAuMzQ3ODg1LCAwLjQ1MDQ0NSwgMC42MTYyODQsIDAuNzYyMjM2LCAwLjk3MjgxMyIsIFwKLSAgICAgICAgICAiMC4wNjA2MTksIDAuMjA2NDM2LCAwLjM0Nzg2MiwgMC40NTA1NTEsIDAuNjE2NTI5LCAwLjc2MjM3NywgMC45NzQ1MDgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNTU3NCwgMC4wMDU1OTgsIDAuMDA1NjI1LCAwLjAwNTYzNSwgMC4wMDU2NDMsIDAuMDA1NjQ4LCAwLjAwNTY1MyIsIFwKLSAgICAgICAgICAiMC4wMDU1NjMsIDAuMDA1NTg1LCAwLjAwNTYxMSwgMC4wMDU2MjEsIDAuMDA1NjMxLCAwLjAwNTYzNSwgMC4wMDU2NCIsIFwKLSAgICAgICAgICAiMC4wMDU1NTEsIDAuMDA1NTc2LCAwLjAwNTYwNSwgMC4wMDU2MTQsIDAuMDA1NjIzLCAwLjAwNTYyOSwgMC4wMDU2MzQiLCBcCi0gICAgICAgICAgIjAuMDA1NTQzLCAwLjAwNTU2OSwgMC4wMDU1OTcsIDAuMDA1NjA4LCAwLjAwNTYxOCwgMC4wMDU2MjUsIDAuMDA1NjI5IiwgXAotICAgICAgICAgICIwLjAwNTUzNywgMC4wMDU1NjMsIDAuMDA1NTk0LCAwLjAwNTYwNCwgMC4wMDU2MTUsIDAuMDA1NjIxLCAwLjAwNTYyNyIsIFwKLSAgICAgICAgICAiMC4wMDU1MzksIDAuMDA1NTU5LCAwLjAwNTU5MSwgMC4wMDU2MDEsIDAuMDA1NjE0LCAwLjAwNTYxOSwgMC4wMDU2MjYiLCBcCi0gICAgICAgICAgIjAuMDA1NTU0LCAwLjAwNTU1NywgMC4wMDU1ODcsIDAuMDA1NiwgMC4wMDU2MTEsIDAuMDA1NjE4LCAwLjAwNTYyNCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA4Mzg0LCAwLjAwODQ1MiwgMC4wMDg1MDEsIDAuMDA4NTE5LCAwLjAwODUzNywgMC4wMDg1NDcsIDAuMDA4NTU2IiwgXAotICAgICAgICAgICIwLjAwODM3OCwgMC4wMDg0NDUsIDAuMDA4NDk0LCAwLjAwODUxMiwgMC4wMDg1MywgMC4wMDg1NCwgMC4wMDg1NDkiLCBcCi0gICAgICAgICAgIjAuMDA4MzY5LCAwLjAwODQzOCwgMC4wMDg0ODcsIDAuMDA4NTA2LCAwLjAwODUyNSwgMC4wMDg1MzUsIDAuMDA4NTQ0IiwgXAotICAgICAgICAgICIwLjAwODM2NiwgMC4wMDg0MzIsIDAuMDA4NDgyLCAwLjAwODUwMSwgMC4wMDg1MiwgMC4wMDg1MzEsIDAuMDA4NTQiLCBcCi0gICAgICAgICAgIjAuMDA4MzYyLCAwLjAwODQyNiwgMC4wMDg0NzcsIDAuMDA4NDk3LCAwLjAwODUxNywgMC4wMDg1MjgsIDAuMDA4NTM4IiwgXAotICAgICAgICAgICIwLjAwODM2NiwgMC4wMDg0MiwgMC4wMDg0NzIsIDAuMDA4NDk0LCAwLjAwODUxNCwgMC4wMDg1MjUsIDAuMDA4NTM2IiwgXAotICAgICAgICAgICIwLjAwODQwMSwgMC4wMDg0MjUsIDAuMDA4NDczLCAwLjAwODQ5NCwgMC4wMDg1MTUsIDAuMDA4NTI2LCAwLjAwODUzNyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1MzgzLCAwLjAwNTQ2MiwgMC4wMDU1MTMsIDAuMDA1NTMyLCAwLjAwNTU1MSwgMC4wMDU1NjEsIDAuMDA1NTciLCBcCi0gICAgICAgICAgIjAuMDA1MzY2LCAwLjAwNTQ0OCwgMC4wMDU1LCAwLjAwNTUxOCwgMC4wMDU1MzcsIDAuMDA1NTQ3LCAwLjAwNTU1NyIsIFwKLSAgICAgICAgICAiMC4wMDUzNTgsIDAuMDA1NDM5LCAwLjAwNTQ5NCwgMC4wMDU1MSwgMC4wMDU1MjksIDAuMDA1NTQsIDAuMDA1NTQ5IiwgXAotICAgICAgICAgICIwLjAwNTM1MSwgMC4wMDU0MywgMC4wMDU0ODIsIDAuMDA1NTAzLCAwLjAwNTUyMywgMC4wMDU1MzUsIDAuMDA1NTQ0IiwgXAotICAgICAgICAgICIwLjAwNTM0NiwgMC4wMDU0MjQsIDAuMDA1NDc2LCAwLjAwNTQ5NywgMC4wMDU1MTcsIDAuMDA1NTI5LCAwLjAwNTUzOSIsIFwKLSAgICAgICAgICAiMC4wMDUzNDksIDAuMDA1NDE2LCAwLjAwNTQ2OCwgMC4wMDU0ODksIDAuMDA1NTExLCAwLjAwNTUyMywgMC4wMDU1MzUiLCBcCi0gICAgICAgICAgIjAuMDA1MzczLCAwLjAwNTQxNywgMC4wMDU0NjgsIDAuMDA1NDg5LCAwLjAwNTUxMSwgMC4wMDU1MjQsIDAuMDA1NTM1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDg0NDEsIDAuMDA4NTU0LCAwLjAwODYyMSwgMC4wMDg2NDcsIDAuMDA4NjcyLCAwLjAwODY4NSwgMC4wMDg2OTgiLCBcCi0gICAgICAgICAgIjAuMDA4NDMzLCAwLjAwODU0NiwgMC4wMDg2MTQsIDAuMDA4NjQsIDAuMDA4NjY1LCAwLjAwODY3OSwgMC4wMDg2OTEiLCBcCi0gICAgICAgICAgIjAuMDA4NDI3LCAwLjAwODUzOSwgMC4wMDg2MDcsIDAuMDA4NjM0LCAwLjAwODY1OSwgMC4wMDg2NzMsIDAuMDA4Njg2IiwgXAotICAgICAgICAgICIwLjAwODQyMSwgMC4wMDg1MzIsIDAuMDA4NjAxLCAwLjAwODYyOCwgMC4wMDg2NTQsIDAuMDA4NjY4LCAwLjAwODY4MiIsIFwKLSAgICAgICAgICAiMC4wMDg0MTksIDAuMDA4NTI2LCAwLjAwODU5NiwgMC4wMDg2MjMsIDAuMDA4NjUsIDAuMDA4NjY1LCAwLjAwODY3OSIsIFwKLSAgICAgICAgICAiMC4wMDg0MjUsIDAuMDA4NTE4LCAwLjAwODU4OCwgMC4wMDg2MTYsIDAuMDA4NjQ0LCAwLjAwODY2LCAwLjAwODY3NSIsIFwKLSAgICAgICAgICAiMC4wMDg0NDQsIDAuMDA4NTExLCAwLjAwODU4MSwgMC4wMDg2MSwgMC4wMDg2NCwgMC4wMDg2NTYsIDAuMDA4NjcyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDUzNzQsIDAuMDA1NDQ1LCAwLjAwNTQ5NiwgMC4wMDU1MTYsIDAuMDA1NTM2LCAwLjAwNTU0NSwgMC4wMDU1NTUiLCBcCi0gICAgICAgICAgIjAuMDA1MzU2LCAwLjAwNTQzLCAwLjAwNTQ4MiwgMC4wMDU1MDMsIDAuMDA1NTIyLCAwLjAwNTUzMSwgMC4wMDU1NDEiLCBcCi0gICAgICAgICAgIjAuMDA1MzQ5LCAwLjAwNTQyMSwgMC4wMDU0NzUsIDAuMDA1NDkzLCAwLjAwNTUxNSwgMC4wMDU1MjMsIDAuMDA1NTM1IiwgXAotICAgICAgICAgICIwLjAwNTMzOSwgMC4wMDU0MTEsIDAuMDA1NDY3LCAwLjAwNTQ4NSwgMC4wMDU1MDYsIDAuMDA1NTE3LCAwLjAwNTUyOCIsIFwKLSAgICAgICAgICAiMC4wMDUzMzEsIDAuMDA1NDAzLCAwLjAwNTQ2LCAwLjAwNTQ3OSwgMC4wMDU1MDIsIDAuMDA1NTExLCAwLjAwNTUyMyIsIFwKLSAgICAgICAgICAiMC4wMDUzMjksIDAuMDA1Mzk0LCAwLjAwNTQ1LCAwLjAwNTQ3LCAwLjAwNTQ5NCwgMC4wMDU1MDUsIDAuMDA1NTE3IiwgXAotICAgICAgICAgICIwLjAwNTM2LCAwLjAwNTM5OCwgMC4wMDU0NTEsIDAuMDA1NDY5LCAwLjAwNTQ5MiwgMC4wMDU1MDMsIDAuMDA1NTE2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDg5MDEsIDAuMDA5MDAyLCAwLjAwOTA2OSwgMC4wMDkwOTUsIDAuMDA5MTIsIDAuMDA5MTM0LCAwLjAwOTE0NyIsIFwKLSAgICAgICAgICAiMC4wMDg4OTUsIDAuMDA4OTk0LCAwLjAwOTA2MiwgMC4wMDkwODgsIDAuMDA5MTEzLCAwLjAwOTEyNywgMC4wMDkxNCIsIFwKLSAgICAgICAgICAiMC4wMDg4ODUsIDAuMDA4OTg3LCAwLjAwOTA1NSwgMC4wMDkwODIsIDAuMDA5MTA3LCAwLjAwOTEyMSwgMC4wMDkxMzUiLCBcCi0gICAgICAgICAgIjAuMDA4ODgxLCAwLjAwODk4LCAwLjAwOTA0OSwgMC4wMDkwNzYsIDAuMDA5MTAzLCAwLjAwOTExNywgMC4wMDkxMyIsIFwKLSAgICAgICAgICAiMC4wMDg4NzgsIDAuMDA4OTczLCAwLjAwOTA0MiwgMC4wMDkwNywgMC4wMDkwOTcsIDAuMDA5MTEzLCAwLjAwOTEyNyIsIFwKLSAgICAgICAgICAiMC4wMDg4ODEsIDAuMDA4OTY2LCAwLjAwOTAzNSwgMC4wMDkwNjMsIDAuMDA5MDkyLCAwLjAwOTEwOCwgMC4wMDkxMjMiLCBcCi0gICAgICAgICAgIjAuMDA4ODk1LCAwLjAwODk2MiwgMC4wMDkwMywgMC4wMDkwNTksIDAuMDA5MDg4LCAwLjAwOTEwNCwgMC4wMDkxMiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkQiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1MTEyLCAwLjAwNTE4OSwgMC4wMDUyNDEsIDAuMDA1MjYsIDAuMDA1Mjc5LCAwLjAwNTI4OSwgMC4wMDUyOTkiLCBcCi0gICAgICAgICAgIjAuMDA1MTAxLCAwLjAwNTE3NywgMC4wMDUyMywgMC4wMDUyNDYsIDAuMDA1MjY4LCAwLjAwNTI3NiwgMC4wMDUyODUiLCBcCi0gICAgICAgICAgIjAuMDA1MDksIDAuMDA1MTY2LCAwLjAwNTIyLCAwLjAwNTIzOCwgMC4wMDUyNTksIDAuMDA1MjY4LCAwLjAwNTI3OSIsIFwKLSAgICAgICAgICAiMC4wMDUwODEsIDAuMDA1MTU2LCAwLjAwNTIxMSwgMC4wMDUyMywgMC4wMDUyNTEsIDAuMDA1MjYyLCAwLjAwNTI3MiIsIFwKLSAgICAgICAgICAiMC4wMDUwNzQsIDAuMDA1MTQ5LCAwLjAwNTIwNCwgMC4wMDUyMjQsIDAuMDA1MjQ2LCAwLjAwNTI1NywgMC4wMDUyNjkiLCBcCi0gICAgICAgICAgIjAuMDA1MDc2LCAwLjAwNTE0MiwgMC4wMDUxOTUsIDAuMDA1MjE2LCAwLjAwNTIzOSwgMC4wMDUyNTEsIDAuMDA1MjY0IiwgXAotICAgICAgICAgICIwLjAwNTA5MSwgMC4wMDUxMzcsIDAuMDA1MTkxLCAwLjAwNTIxMywgMC4wMDUyMzcsIDAuMDA1MjQ5LCAwLjAwNTI2MSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA5MDI2LCAwLjAwOTEyOCwgMC4wMDkxOTUsIDAuMDA5MjIxLCAwLjAwOTI0NiwgMC4wMDkyNiwgMC4wMDkyNzMiLCBcCi0gICAgICAgICAgIjAuMDA5MDE5LCAwLjAwOTEyMSwgMC4wMDkxODgsIDAuMDA5MjE0LCAwLjAwOTI0LCAwLjAwOTI1NCwgMC4wMDkyNjciLCBcCi0gICAgICAgICAgIjAuMDA5MDEzLCAwLjAwOTExMywgMC4wMDkxODEsIDAuMDA5MjA4LCAwLjAwOTIzNCwgMC4wMDkyNDgsIDAuMDA5MjYxIiwgXAotICAgICAgICAgICIwLjAwOTAwNiwgMC4wMDkxMDYsIDAuMDA5MTc1LCAwLjAwOTIwMiwgMC4wMDkyMjksIDAuMDA5MjQzLCAwLjAwOTI1NyIsIFwKLSAgICAgICAgICAiMC4wMDkwMDYsIDAuMDA5MSwgMC4wMDkxNjksIDAuMDA5MTk3LCAwLjAwOTIyNCwgMC4wMDkyMzksIDAuMDA5MjU0IiwgXAotICAgICAgICAgICIwLjAwOTAxMiwgMC4wMDkwOTMsIDAuMDA5MTYyLCAwLjAwOTE5LCAwLjAwOTIxOSwgMC4wMDkyMzUsIDAuMDA5MjUiLCBcCi0gICAgICAgICAgIjAuMDA5MDE5LCAwLjAwOTA4NywgMC4wMDkxNTYsIDAuMDA5MTg1LCAwLjAwOTIxNCwgMC4wMDkyMzEsIDAuMDA5MjQ3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUzAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDExMTE4LCAwLjAxMTE0OSwgMC4wMTExODIsIDAuMDExMTkzLCAwLjAxMTIwNSwgMC4wMTEyMTMsIDAuMDExMjIxIiwgXAotICAgICAgICAgICIwLjAxMTA4NCwgMC4wMTExMTYsIDAuMDExMTQ4LCAwLjAxMTE1OSwgMC4wMTExNzIsIDAuMDExMTc5LCAwLjAxMTE4NSIsIFwKLSAgICAgICAgICAiMC4wMTEwNzIsIDAuMDExMTA0LCAwLjAxMTE0LCAwLjAxMTE0OCwgMC4wMTExNTksIDAuMDExMTY2LCAwLjAxMTE3NiIsIFwKLSAgICAgICAgICAiMC4wMTEwODUsIDAuMDExMTE1LCAwLjAxMTE0NywgMC4wMTExNTYsIDAuMDExMTcxLCAwLjAxMTE3OSwgMC4wMTExODQiLCBcCi0gICAgICAgICAgIjAuMDExMDg3LCAwLjAxMTExOSwgMC4wMTExNTEsIDAuMDExMTYzLCAwLjAxMTE3NywgMC4wMTExODIsIDAuMDExMTg4IiwgXAotICAgICAgICAgICIwLjAxMTExOCwgMC4wMTExNTQsIDAuMDExMTg2LCAwLjAxMTE5OCwgMC4wMTEyMSwgMC4wMTEyMTgsIDAuMDExMjI1IiwgXAotICAgICAgICAgICIwLjAxMTE2MSwgMC4wMTExOTMsIDAuMDExMjI1LCAwLjAxMTIzOCwgMC4wMTEyNSwgMC4wMTEyNTYsIDAuMDExMjYzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTEzNTgsIDAuMDExNDU4LCAwLjAxMTUyNiwgMC4wMTE1NTMsIDAuMDExNTc5LCAwLjAxMTU5MywgMC4wMTE2MDciLCBcCi0gICAgICAgICAgIjAuMDExMzQxLCAwLjAxMTQ0MSwgMC4wMTE1MSwgMC4wMTE1MzYsIDAuMDExNTYyLCAwLjAxMTU3NywgMC4wMTE1OSIsIFwKLSAgICAgICAgICAiMC4wMTEzMjksIDAuMDExNDI5LCAwLjAxMTQ5NywgMC4wMTE1MjQsIDAuMDExNTUsIDAuMDExNTY0LCAwLjAxMTU3OCIsIFwKLSAgICAgICAgICAiMC4wMTEzMywgMC4wMTE0MjksIDAuMDExNDk3LCAwLjAxMTUyNCwgMC4wMTE1NSwgMC4wMTE1NjQsIDAuMDExNTc4IiwgXAotICAgICAgICAgICIwLjAxMTMzMywgMC4wMTE0MzIsIDAuMDExNSwgMC4wMTE1MjcsIDAuMDExNTUzLCAwLjAxMTU2NywgMC4wMTE1ODEiLCBcCi0gICAgICAgICAgIjAuMDExMzUyLCAwLjAxMTQ1MSwgMC4wMTE1MTksIDAuMDExNTQ1LCAwLjAxMTU3MiwgMC4wMTE1ODYsIDAuMDExNiIsIFwKLSAgICAgICAgICAiMC4wMTEzNjQsIDAuMDExNDY0LCAwLjAxMTUzMiwgMC4wMTE1NTksIDAuMDExNTg1LCAwLjAxMTYsIDAuMDExNjEzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUzEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA3MjE3LCAwLjAwNzM2MiwgMC4wMDc0MDYsIDAuMDA3NDIsIDAuMDA3NDMzLCAwLjAwNzQ0MSwgMC4wMDc0NDciLCBcCi0gICAgICAgICAgIjAuMDA3MjM1LCAwLjAwNzM3NywgMC4wMDc0MiwgMC4wMDc0MzMsIDAuMDA3NDQ4LCAwLjAwNzQ1NSwgMC4wMDc0NjIiLCBcCi0gICAgICAgICAgIjAuMDA3Mjg1LCAwLjAwNzQxOSwgMC4wMDc0NjIsIDAuMDA3NDc4LCAwLjAwNzQ5NCwgMC4wMDc1MDIsIDAuMDA3NTExIiwgXAotICAgICAgICAgICIwLjAwNzMzMSwgMC4wMDc0NiwgMC4wMDc1MDYsIDAuMDA3NTIxLCAwLjAwNzUzOCwgMC4wMDc1NDYsIDAuMDA3NTU1IiwgXAotICAgICAgICAgICIwLjAwNzM5MSwgMC4wMDc1MTcsIDAuMDA3NTYyLCAwLjAwNzU3OSwgMC4wMDc1OTYsIDAuMDA3NjA1LCAwLjAwNzYxNCIsIFwKLSAgICAgICAgICAiMC4wMDc0NTcsIDAuMDA3NTc5LCAwLjAwNzYyNiwgMC4wMDc2NDIsIDAuMDA3NjYxLCAwLjAwNzY2OSwgMC4wMDc2NzgiLCBcCi0gICAgICAgICAgIjAuMDA3NTM1LCAwLjAwNzY1MywgMC4wMDc2OTgsIDAuMDA3NzE0LCAwLjAwNzczNSwgMC4wMDc3NDMsIDAuMDA3NzUzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDYxMTcsIDAuMDA2Mjk1LCAwLjAwNjM1NCwgMC4wMDYzNzQsIDAuMDA2MzkyLCAwLjAwNjQwMiwgMC4wMDY0MTEiLCBcCi0gICAgICAgICAgIjAuMDA2MTQxLCAwLjAwNjMxNiwgMC4wMDYzNzUsIDAuMDA2Mzk1LCAwLjAwNjQxNCwgMC4wMDY0MjUsIDAuMDA2NDM0IiwgXAotICAgICAgICAgICIwLjAwNjIxMywgMC4wMDYzODIsIDAuMDA2NDQxLCAwLjAwNjQ2MiwgMC4wMDY0ODIsIDAuMDA2NDkzLCAwLjAwNjUwMyIsIFwKLSAgICAgICAgICAiMC4wMDYyODIsIDAuMDA2NDQ3LCAwLjAwNjUwNSwgMC4wMDY1MjcsIDAuMDA2NTQ4LCAwLjAwNjU1OSwgMC4wMDY1NyIsIFwKLSAgICAgICAgICAiMC4wMDYzMzEsIDAuMDA2NDkyLCAwLjAwNjU1MiwgMC4wMDY1NzQsIDAuMDA2NTk2LCAwLjAwNjYwOCwgMC4wMDY2MTkiLCBcCi0gICAgICAgICAgIjAuMDA2NDAzLCAwLjAwNjU2MiwgMC4wMDY2MjIsIDAuMDA2NjQ1LCAwLjAwNjY2OCwgMC4wMDY2OCwgMC4wMDY2OTIiLCBcCi0gICAgICAgICAgIjAuMDA2NTIyLCAwLjAwNjY3NCwgMC4wMDY3MzMsIDAuMDA2NzU3LCAwLjAwNjc3OSwgMC4wMDY3OTIsIDAuMDA2ODA0Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBNWEkyWDEgKgotICogLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChNWEkyWDEpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4xNDA5MTM7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDgzMTkwNTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA4MjkxNTE7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwODMxOTA1OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDM3OSwgMC4wMDAzODcsIDAuMDAwMzksIDAuMDAwMzkyLCAwLjAwMDM5MiwgMC4wMDAzOTMsIDAuMDAwMzk0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNDE3LCAwLjAwMDQxMSwgMC4wMDA0MTEsIDAuMDAwNDExLCAwLjAwMDQxMSwgMC4wMDA0MTEsIDAuMDAwNDExIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA5MTgxMTQ7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwOTE1MDk2OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDkxODExNDsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAzOTMsIDAuMDAwMzk3LCAwLjAwMDM5OSwgMC4wMDAzOTksIDAuMDAwNCwgMC4wMDA0LCAwLjAwMDQwMSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDQyMiwgMC4wMDA0MTIsIDAuMDAwNDExLCAwLjAwMDQxMSwgMC4wMDA0MTEsIDAuMDAwNDExLCAwLjAwMDQxMSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUzApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTc1ODM7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNzU3NDk7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNzU4MzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyMjIsIDAuMDAwMTkzLCAwLjAwMDE5MywgMC4wMDAyMDQsIDAuMDAwMjIxLCAwLjAwMDI2OSwgMC4wMDAyNjgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDIxMzYsIDAuMDAyMTE2LCAwLjAwMjExNiwgMC4wMDIxMjQsIDAuMDAyMTM0LCAwLjAwMjE1NywgMC4wMDIxOCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjEzODI5OwotICAgIGZ1bmN0aW9uIDogIighKChTMCBCKSArICghUzAgQSkpKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk3NzIxLCAwLjE0NDQzNiwgMC40MDkwODIsIDAuNjQyNjA2LCAwLjk1MzY0NCwgMS41NzYwMSwgMS45NjYwNCIsIFwKLSAgICAgICAgICAiMC4xMDY0ODEsIDAuMTUzMjM1LCAwLjQxODAyNiwgMC42NTEzMzIsIDAuOTYyNzEzLCAxLjU4NTY1LCAxLjk3NCIsIFwKLSAgICAgICAgICAiMC4xMTY1NjMsIDAuMTYzMzc0LCAwLjQyODA2NSwgMC42NjEyODgsIDAuOTczMDE2LCAxLjU5NTcyLCAxLjk4NDExIiwgXAotICAgICAgICAgICIwLjEyNjU2NywgMC4xNzMzNzIsIDAuNDM4MTE3LCAwLjY3MTQ4MiwgMC45ODMwMSwgMS42MDU3NSwgMS45OTM3OCIsIFwKLSAgICAgICAgICAiMC4xMzY1MywgMC4xODMzMTksIDAuNDQ4MDg3LCAwLjY4MTUwMywgMC45OTMyMDUsIDEuNjE2MTMsIDIuMDA0NiIsIFwKLSAgICAgICAgICAiMC4xNTI0NDYsIDAuMTk5NTQ3LCAwLjQ2Mzg5NywgMC42OTc3NDgsIDEuMDA5MDgsIDEuNjMyMjEsIDIuMDIwNTUiLCBcCi0gICAgICAgICAgIjAuMTY2MzI2LCAwLjIxMzE1NywgMC40NzgwNDMsIDAuNzExNjQ1LCAxLjAyMzI1LCAxLjY0NTk1LCAyLjAzNTUiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTgxOTQsIDAuMjc2MzgzLCAwLjgxMTQyMSwgMS4yODQwNywgMS45MTM2OSwgMy4xNzE2NCwgMy45NTkxMiIsIFwKLSAgICAgICAgICAiMC4xODE5NCwgMC4yNzY0MzQsIDAuODExNjIzLCAxLjI4MzkyLCAxLjkxMzA4LCAzLjE3MjIsIDMuOTU4MzciLCBcCi0gICAgICAgICAgIjAuMTgyMjQ5LCAwLjI3NjM5OSwgMC44MTE0MjQsIDEuMjg0MjUsIDEuOTEzOCwgMy4xNzIyMSwgMy45NTg2MyIsIFwKLSAgICAgICAgICAiMC4xODQzOTcsIDAuMjc3MDg0LCAwLjgxMTg2NCwgMS4yODM3LCAxLjkxMzEyLCAzLjE3MjI2LCAzLjk1ODE0IiwgXAotICAgICAgICAgICIwLjE4NzQ5NSwgMC4yNzg5MjUsIDAuODExODQ1LCAxLjI4Mzc3LCAxLjkxMzM2LCAzLjE3MzA3LCAzLjk1OTExIiwgXAotICAgICAgICAgICIwLjE5NDI2MSwgMC4yODQxNDgsIDAuODExNDE0LCAxLjI4MzY4LCAxLjkxMzY0LCAzLjE3MzMyLCAzLjk1ODIiLCBcCi0gICAgICAgICAgIjAuMjAxNjk3LCAwLjI4OTU1NiwgMC44MTI1NjcsIDEuMjgzODUsIDEuOTEzNDksIDMuMTcyODQsIDMuOTYwMDIiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk3Nzk1LCAwLjE0MzQ5NiwgMC40MDIxNTMsIDAuNjI5NzUzLCAwLjkzMzQ1MiwgMS41NDEwOSwgMS45MjA5IiwgXAotICAgICAgICAgICIwLjEwNjYyNywgMC4xNTIzNjYsIDAuNDEwOTI2LCAwLjYzOTA4NywgMC45NDI4MTIsIDEuNTUwNjMsIDEuOTMxNiIsIFwKLSAgICAgICAgICAiMC4xMTc1MzUsIDAuMTYzMjY3LCAwLjQyMTkwMywgMC42NDk5NiwgMC45NTQzMTQsIDEuNTYyMTQsIDEuOTQyMTMiLCBcCi0gICAgICAgICAgIjAuMTI4MzY4LCAwLjE3NDI3OCwgMC40MzI5OTMsIDAuNjYwOTc1LCAwLjk2NTEwNCwgMS41NzI3NSwgMS45NTM3OSIsIFwKLSAgICAgICAgICAiMC4xMzk0MzcsIDAuMTg1MjI1LCAwLjQ0NDA2MSwgMC42NzIyNjEsIDAuOTc2MDM4LCAxLjU4NDgsIDEuOTY0MDYiLCBcCi0gICAgICAgICAgIjAuMTU2NzUxLCAwLjIwMjgxMSwgMC40NjE3NzYsIDAuNjg5NzgsIDAuOTkzOTIxLCAxLjYwMTY0LCAxLjk4Mjc3IiwgXAotICAgICAgICAgICIwLjE3MTc1NywgMC4yMTgwNjEsIDAuNDc3MDAyLCAwLjcwNTE2NSwgMS4wMDkxOSwgMS42MTcyLCAxLjk5Njg2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE3NDE2OSwgMC4yNjQwMjYsIDAuNzcyODE0LCAxLjIyMTU1LCAxLjgxOTg1LCAzLjAxNzM0LCAzLjc2NTM5IiwgXAotICAgICAgICAgICIwLjE3NDA0NywgMC4yNjQwMDUsIDAuNzczMDk3LCAxLjIyMjM3LCAxLjgyMDY5LCAzLjAxODU1LCAzLjc2NzU2IiwgXAotICAgICAgICAgICIwLjE3NDQwMSwgMC4yNjQwMTgsIDAuNzcyODAxLCAxLjIyMTc3LCAxLjgyMTgzLCAzLjAxNzkzLCAzLjc2NjMyIiwgXAotICAgICAgICAgICIwLjE3NjM2OSwgMC4yNjQ1OTUsIDAuNzcyODAyLCAxLjIyMjE1LCAxLjgyMDYsIDMuMDE3MiwgMy43Njc5MSIsIFwKLSAgICAgICAgICAiMC4xNzk4MzksIDAuMjY2NTYxLCAwLjc3Mjc1NiwgMS4yMjE5NiwgMS44MjA3NiwgMy4wMTk0MSwgMy43NjU5NyIsIFwKLSAgICAgICAgICAiMC4xODY3MjMsIDAuMjcxNzE4LCAwLjc3MzA1NCwgMS4yMjIxNiwgMS44MjA2LCAzLjAxNzIzLCAzLjc2NjQyIiwgXAotICAgICAgICAgICIwLjE5NDEsIDAuMjc3NDI3LCAwLjc3MzM1NiwgMS4yMjE5NSwgMS44MjAyOCwgMy4wMTczNiwgMy43NjQ2MyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTgwNzQsIDAuMTQ0ODUzLCAwLjQwOTUyNSwgMC42NDI5NzUsIDAuOTU0NTQzLCAxLjU3NjQ0LCAxLjk2NjQyIiwgXAotICAgICAgICAgICIwLjEwNjYzOCwgMC4xNTM0MTgsIDAuNDE3OTU2LCAwLjY1MTMzMiwgMC45NjI3MjgsIDEuNTg1MjIsIDEuOTczNzgiLCBcCi0gICAgICAgICAgIjAuMTE2NTY4LCAwLjE2MzQwMiwgMC40MjgyODMsIDAuNjYxNjE5LCAwLjk3MzA1NCwgMS41OTYzNCwgMS45ODQyNCIsIFwKLSAgICAgICAgICAiMC4xMjY1MzgsIDAuMTczMzUsIDAuNDM4MTQzLCAwLjY3MTQ3MSwgMC45ODI1NTQsIDEuNjA1NCwgMS45OTQ1OSIsIFwKLSAgICAgICAgICAiMC4xMzY0NDIsIDAuMTgzMjYzLCAwLjQ0ODEzNSwgMC42ODE1NjUsIDAuOTkzMTg4LCAxLjYxNjE4LCAyLjAwMzg3IiwgXAotICAgICAgICAgICIwLjE1MjIyNSwgMC4xOTk0MjksIDAuNDY0NTE4LCAwLjY5Nzc1NywgMS4wMDkwNSwgMS42MzIxMywgMi4wMjAzMyIsIFwKLSAgICAgICAgICAiMC4xNjYxMTEsIDAuMjEzMDM2LCAwLjQ3ODUwNywgMC43MTE5NSwgMS4wMjI4NywgMS42NDUyMiwgMi4wMzU3NiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xODE3ODMsIDAuMjc2MzAzLCAwLjgxMTgwMSwgMS4yODM4LCAxLjkxNDM1LCAzLjE3MTk3LCAzLjk1OTMiLCBcCi0gICAgICAgICAgIjAuMTgxODYzLCAwLjI3NjMxMSwgMC44MTIwMjYsIDEuMjgzODgsIDEuOTEzMDYsIDMuMTcxODYsIDMuOTU5OTkiLCBcCi0gICAgICAgICAgIjAuMTgyMzg5LCAwLjI3NjMyNSwgMC44MTE4LCAxLjI4Mzc5LCAxLjkxMzIzLCAzLjE3MzIyLCAzLjk1OTA0IiwgXAotICAgICAgICAgICIwLjE4NDQ1MiwgMC4yNzcxODEsIDAuODEyMDg1LCAxLjI4Mzg0LCAxLjkxMzUyLCAzLjE3MjEyLCAzLjk1OTI5IiwgXAotICAgICAgICAgICIwLjE4NzY5NSwgMC4yNzg5NjQsIDAuODExOTg5LCAxLjI4Mzg5LCAxLjkxMzc0LCAzLjE3Mjg4LCAzLjk1ODQ1IiwgXAotICAgICAgICAgICIwLjE5NDIzNCwgMC4yODQyNCwgMC44MTE1ODQsIDEuMjgzODIsIDEuOTE0MSwgMy4xNzIwNSwgMy45NjA4MyIsIFwKLSAgICAgICAgICAiMC4yMDE3MDMsIDAuMjg5NDgxLCAwLjgxMjIxNywgMS4yODM4MywgMS45MTM3MiwgMy4xNzE2OSwgMy45NTk5NiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTY1MzksIDAuMTQyMjg3LCAwLjQwMDg1OCwgMC42MjkwMTMsIDAuOTMzMzgxLCAxLjU0MDg3LCAxLjkyMTY2IiwgXAotICAgICAgICAgICIwLjEwNTQ5OCwgMC4xNTEyMjIsIDAuNDA5NzQsIDAuNjM3NzM2LCAwLjk0MTc0MSwgMS41NDkzNSwgMS45Mjk2MSIsIFwKLSAgICAgICAgICAiMC4xMTY0NTcsIDAuMTYyMjMzLCAwLjQyMDg0MSwgMC42NDg4NjgsIDAuOTUzMTg5LCAxLjU2MTUsIDEuOTQxMDMiLCBcCi0gICAgICAgICAgIjAuMTI3MzUxLCAwLjE3MzIxLCAwLjQzMjE1NCwgMC42NjAxNzIsIDAuOTY0MjY4LCAxLjU3MjY2LCAxLjk1MzEzIiwgXAotICAgICAgICAgICIwLjEzODQ3MSwgMC4xODQwNzIsIDAuNDQzMTIzLCAwLjY3MTI1NCwgMC45NzUwODMsIDEuNTgzNDYsIDEuOTYyNjkiLCBcCi0gICAgICAgICAgIjAuMTU1OTM1LCAwLjIwMTYwOSwgMC40NjAxMzIsIDAuNjg4Nzk5LCAwLjk5MzA5NSwgMS42MDA3OCwgMS45ODA3NSIsIFwKLSAgICAgICAgICAiMC4xNzA5NjUsIDAuMjE2OTA1LCAwLjQ3NjQzOCwgMC43MDQ2NDYsIDEuMDA5MTEsIDEuNjE3MDcsIDEuOTk2NDMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTczMjQ4LCAwLjI2MzA5NCwgMC43NzE5NjcsIDEuMjIxNDQsIDEuODIwOTIsIDMuMDE4MjUsIDMuNzY2MDUiLCBcCi0gICAgICAgICAgIjAuMTczMjI0LCAwLjI2MzA5OCwgMC43NzE5ODYsIDEuMjIxMzYsIDEuODIwMDgsIDMuMDE3MjUsIDMuNzY2MTkiLCBcCi0gICAgICAgICAgIjAuMTczNzI2LCAwLjI2MzIyMywgMC43NzE5ODUsIDEuMjIxMzcsIDEuODIwNzIsIDMuMDE4NzcsIDMuNzY2MzgiLCBcCi0gICAgICAgICAgIjAuMTc1Njk3LCAwLjI2Mzc0NiwgMC43NzE5NDEsIDEuMjIxMDQsIDEuODIwNzcsIDMuMDE4MjYsIDMuNzY2NDYiLCBcCi0gICAgICAgICAgIjAuMTc5MjUxLCAwLjI2NTY1NywgMC43NzE5MzUsIDEuMjIxMDksIDEuODIwMTEsIDMuMDE4NzUsIDMuNzY0NzUiLCBcCi0gICAgICAgICAgIjAuMTg2NDM3LCAwLjI3MDgxMiwgMC43NzE5MjIsIDEuMjIxMjYsIDEuODIwNDYsIDMuMDE3OTYsIDMuNzY0OSIsIFwKLSAgICAgICAgICAiMC4xOTM3OTYsIDAuMjc2NTgxLCAwLjc3MjYzMSwgMS4yMjEwMywgMS44MjExNywgMy4wMTg0MiwgMy43NjQ4MSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTA4MTg1LCAwLjE1NDc5OCwgMC40MTkxMzksIDAuNjUyMzg0LCAwLjk2MzQ2OCwgMS41ODQ3NSwgMS45NzM2NSIsIFwKLSAgICAgICAgICAiMC4xMTgzODEsIDAuMTY0OTY1LCAwLjQyOTIyMSwgMC42NjI0NTQsIDAuOTczODc2LCAxLjU5NjI3LCAxLjk4NTcyIiwgXAotICAgICAgICAgICIwLjEyOTg5NSwgMC4xNzY0MzksIDAuNDQwNjg4LCAwLjY3NDQxNiwgMC45ODUzNjgsIDEuNjA4MTIsIDEuOTk2OTEiLCBcCi0gICAgICAgICAgIjAuMTM5NDgsIDAuMTg2MDE3LCAwLjQ1MDI5MywgMC42ODM0MzcsIDAuOTk1MDE4LCAxLjYxNzU2LCAyLjAwNTY4IiwgXAotICAgICAgICAgICIwLjE0NzQ2OCwgMC4xOTQwMjYsIDAuNDU4Mzg1LCAwLjY5MTQ1NiwgMS4wMDI3NSwgMS42MjUxOCwgMi4wMTQ0OCIsIFwKLSAgICAgICAgICAiMC4xNTgzNzEsIDAuMjA0OTM4LCAwLjQ2OTM0MSwgMC43MDIyNjgsIDEuMDEzNjMsIDEuNjM2OTcsIDIuMDI0NjYiLCBcCi0gICAgICAgICAgIjAuMTY2NzY5LCAwLjIxMzI3MywgMC40Nzc1NTQsIDAuNzEwNzgyLCAxLjAyMTY3LCAxLjY0MzkxLCAyLjAzMzc1Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE4MTg4NSwgMC4yNzYyOTYsIDAuODExNTA0LCAxLjI4Mzg2LCAxLjkxMzU2LCAzLjE3MTcsIDMuOTU3NjEiLCBcCi0gICAgICAgICAgIjAuMTgxODczLCAwLjI3NjMwNywgMC44MTIyNjEsIDEuMjgzODcsIDEuOTEyODQsIDMuMTcxODgsIDMuOTU4NjUiLCBcCi0gICAgICAgICAgIjAuMTgxOTksIDAuMjc2NDE2LCAwLjgxMTc5NywgMS4yODQzMiwgMS45MTM2MywgMy4xNzM4NCwgMy45NTg0NyIsIFwKLSAgICAgICAgICAiMC4xODE4MjIsIDAuMjc2MzQ3LCAwLjgxMTU2MSwgMS4yODM4NSwgMS45MTM0MSwgMy4xNzE4OCwgMy45NTg0NCIsIFwKLSAgICAgICAgICAiMC4xODE2MjQsIDAuMjc2MDU0LCAwLjgxMTUzNiwgMS4yODM4NCwgMS45MTM2NiwgMy4xNzI5MiwgMy45NTgzNCIsIFwKLSAgICAgICAgICAiMC4xODE0OTgsIDAuMjc1NzcxLCAwLjgxMTkyOCwgMS4yODM4OSwgMS45MTI3MywgMy4xNzI2OSwgMy45NjAyMyIsIFwKLSAgICAgICAgICAiMC4xODE1LCAwLjI3NTU4NywgMC44MTEyODEsIDEuMjgzNzUsIDEuOTEzNTYsIDMuMTcxNjEsIDMuOTU4MzkiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTA4ODM3LCAwLjE1NDM4NCwgMC40MTI3MDgsIDAuNjQwNTMyLCAwLjk0NDM4NywgMS41NTE2NywgMS45MzE5MSIsIFwKLSAgICAgICAgICAiMC4xMTg3ODcsIDAuMTY0MjY0LCAwLjQyMjU0MiwgMC42NTAzMjQsIDAuOTU0NTkyLCAxLjU2Mjg2LCAxLjk0MjQ3IiwgXAotICAgICAgICAgICIwLjEyOTg3LCAwLjE3NTM1NiwgMC40MzM1NCwgMC42NjE2MjUsIDAuOTY1NjU4LCAxLjU3MjIzLCAxLjk1Mzg4IiwgXAotICAgICAgICAgICIwLjEzODU3NSwgMC4xODQwNTcsIDAuNDQyMzAyLCAwLjY3MDIwMywgMC45NzQxMzgsIDEuNTgyMDIsIDEuOTYyNzMiLCBcCi0gICAgICAgICAgIjAuMTQ1OTU0LCAwLjE5MTQ0MSwgMC40NDk2MzIsIDAuNjc3NDY2LCAwLjk4MTg3MiwgMS41ODg5OCwgMS45Njg3MiIsIFwKLSAgICAgICAgICAiMC4xNTU4MTEsIDAuMjAxMTg4LCAwLjQ1OTI0LCAwLjY4NzM4NSwgMC45OTEyMjcsIDEuNTk4OTMsIDEuOTc5MzUiLCBcCi0gICAgICAgICAgIjAuMTYzMDk2LCAwLjIwODY1LCAwLjQ2NjcyMiwgMC42OTQ1OSwgMC45OTg2MzEsIDEuNjA2MzYsIDEuOTg3MjEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTc0MjY1LCAwLjI2Mzg4OCwgMC43NzI4MjMsIDEuMjIyMzUsIDEuODIwNjgsIDMuMDE3MzQsIDMuNzY1MTYiLCBcCi0gICAgICAgICAgIjAuMTc0MTU1LCAwLjI2MzgyNywgMC43NzMxNjYsIDEuMjIyMTUsIDEuODIxNjUsIDMuMDE5MDMsIDMuNzY2OTQiLCBcCi0gICAgICAgICAgIjAuMTc0MTkyLCAwLjI2MzkwNCwgMC43NzI3NSwgMS4yMjIyNSwgMS44MjEzNiwgMy4wMTc1NiwgMy43Njk1OSIsIFwKLSAgICAgICAgICAiMC4xNzQwNDksIDAuMjYzODUyLCAwLjc3MjcyMSwgMS4yMjIxNiwgMS44MjA1NCwgMy4wMTc5NiwgMy43Njc0MiIsIFwKLSAgICAgICAgICAiMC4xNzM3OTgsIDAuMjYzNTk0LCAwLjc3Mjk0OSwgMS4yMjIyOSwgMS44MjE1MSwgMy4wMTgzMywgMy43NjQ1MyIsIFwKLSAgICAgICAgICAiMC4xNzM0NjQsIDAuMjYzMDcxLCAwLjc3MjkxMSwgMS4yMjE5OSwgMS44MjExNywgMy4wMTg0LCAzLjc2NzA4IiwgXAotICAgICAgICAgICIwLjE3MzQ1MywgMC4yNjMwMDMsIDAuNzcyMzQ5LCAxLjIyMjIzLCAxLjgyMDg2LCAzLjAxNzMxLCAzLjc2NzQyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlMwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTEzMywgMC4xMzgwOTUsIDAuNDAyOTI5LCAwLjYzNjA3OCwgMC45NDczMzgsIDEuNTcwNTcsIDEuOTU4MiIsIFwKLSAgICAgICAgICAiMC4xMDA0MTMsIDAuMTQ3MjE4LCAwLjQxMTg4MiwgMC42NDUzODUsIDAuOTU2MzA5LCAxLjU3OTE5LCAxLjk2Nzk2IiwgXAotICAgICAgICAgICIwLjExMTgxNSwgMC4xNTg2NTEsIDAuNDIzNDgsIDAuNjU2ODE4LCAwLjk2ODYyOCwgMS41OTA4MiwgMS45Nzk0NCIsIFwKLSAgICAgICAgICAiMC4xMjM1NSwgMC4xNzA0MDgsIDAuNDM1MTcxLCAwLjY2ODc2MywgMC45Nzk3NDgsIDEuNjAzMTcsIDEuOTkxNSIsIFwKLSAgICAgICAgICAiMC4xMzUyNTQsIDAuMTgyMDk2LCAwLjQ0NjkyNywgMC42ODA0NjMsIDAuOTkxNjUzLCAxLjYxNDUxLCAyLjAwNDQ0IiwgXAotICAgICAgICAgICIwLjE1NDAzMywgMC4yMDA4MDgsIDAuNDY0OTE5LCAwLjY5OTIwOSwgMS4wMTA0MiwgMS42MzI1NCwgMi4wMjE5NiIsIFwKLSAgICAgICAgICAiMC4xNzA0NCwgMC4yMTcyMjcsIDAuNDgxODc0LCAwLjcxNTM5OCwgMS4wMjY2MywgMS42NDk2NSwgMi4wMzc1NiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xODA5NjUsIDAuMjc2MDM4LCAwLjgxMTc4OSwgMS4yODM3MywgMS45MTM1LCAzLjE3MjYxLCAzLjk1ODEzIiwgXAotICAgICAgICAgICIwLjE4MDk0MywgMC4yNzYxMSwgMC44MTE1OTMsIDEuMjg0MDMsIDEuOTEzMjgsIDMuMTcxNDcsIDMuOTU5MjMiLCBcCi0gICAgICAgICAgIjAuMTgyMTQzLCAwLjI3NjA1NSwgMC44MTE1NDQsIDEuMjgzNzQsIDEuOTEzNCwgMy4xNzE0MSwgMy45NTkzNCIsIFwKLSAgICAgICAgICAiMC4xODU5NzgsIDAuMjc3NjkzLCAwLjgxMTYzMSwgMS4yODM2NywgMS45MTM0MiwgMy4xNzIyMywgMy45NTg5NCIsIFwKLSAgICAgICAgICAiMC4xOTEzNjEsIDAuMjgxMzk3LCAwLjgxMTg4MSwgMS4yODM2NiwgMS45MTM1NSwgMy4xNzIxMSwgMy45NjAxNyIsIFwKLSAgICAgICAgICAiMC4yMDIxNjMsIDAuMjg5NjE0LCAwLjgxMTQ1NSwgMS4yODM3NCwgMS45MTI4OCwgMy4xNzMxMSwgMy45NTkxMiIsIFwKLSAgICAgICAgICAiMC4yMTI5NDQsIDAuMjk4NDEyLCAwLjgxMjU1NSwgMS4yODM3OSwgMS45MTM2NiwgMy4xNzIzOSwgMy45NTc5NiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTA4MDgsIDAuMTM2NTUyLCAwLjM5NDkyMSwgMC42MjI5MjQsIDAuOTI3MTM3LCAxLjUzNDg5LCAxLjkxNSIsIFwKLSAgICAgICAgICAiMC4xMDAxMDksIDAuMTQ1OTMxLCAwLjQwNDc5NSwgMC42MzI2NTUsIDAuOTM2ODYxLCAxLjU0NTA5LCAxLjkyNDk5IiwgXAotICAgICAgICAgICIwLjExMTc3LCAwLjE1NzY0NCwgMC40MTY1MjQsIDAuNjQ0NDc2LCAwLjk0ODg1NiwgMS41NTY5MiwgMS45MzY3NyIsIFwKLSAgICAgICAgICAiMC4xMjM1MDgsIDAuMTY5MzM3LCAwLjQyODUwMiwgMC42NTY1NzEsIDAuOTYwOTUyLCAxLjU2OTA2LCAxLjk0ODIzIiwgXAotICAgICAgICAgICIwLjEzNTUxLCAwLjE4MTMzLCAwLjQ0MDIzNCwgMC42Njg0MTksIDAuOTcyNzcxLCAxLjU4MDM3LCAxLjk2MTI0IiwgXAotICAgICAgICAgICIwLjE1NDY3MSwgMC4yMDAzOTMsIDAuNDU4OTExLCAwLjY4NzI3NywgMC45OTEzOTUsIDEuNjAwMzgsIDEuOTc5NzgiLCBcCi0gICAgICAgICAgIjAuMTcxNjExLCAwLjIxNzI2OCwgMC40NzU4OTIsIDAuNzA0MTk3LCAxLjAwODQ1LCAxLjYxNjA4LCAxLjk5NjkzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE3MjIwOSwgMC4yNjI3NDYsIDAuNzcyMDI1LCAxLjIyMTQsIDEuODIwMTMsIDMuMDE3MjUsIDMuNzY1MDMiLCBcCi0gICAgICAgICAgIjAuMTcxODksIDAuMjYyNzgxLCAwLjc3MTk5OCwgMS4yMjE2MSwgMS44MTk5MSwgMy4wMTg2MSwgMy43NjY4MyIsIFwKLSAgICAgICAgICAiMC4xNzI4ODEsIDAuMjYyODIsIDAuNzcyMTQxLCAxLjIyMTA2LCAxLjgyMTAxLCAzLjAxODksIDMuNzY1NjQiLCBcCi0gICAgICAgICAgIjAuMTc2NjcsIDAuMjY0NDAzLCAwLjc3MjAwMiwgMS4yMjE0NCwgMS44MjA1MiwgMy4wMTgyMywgMy43NjQxMiIsIFwKLSAgICAgICAgICAiMC4xODE5NTgsIDAuMjY3OTc4LCAwLjc3MjMwNCwgMS4yMjEwMywgMS44MjEsIDMuMDE4MSwgMy43NjcwNSIsIFwKLSAgICAgICAgICAiMC4xOTIyMDYsIDAuMjc1OTE0LCAwLjc3MjE1MiwgMS4yMjEwNiwgMS44MjAxOSwgMy4wMTg3NSwgMy43Njc5OSIsIFwKLSAgICAgICAgICAiMC4yMDI2NDcsIDAuMjg0MjU2LCAwLjc3MywgMS4yMjE1OSwgMS44MjA4MywgMy4wMTgwMSwgMy43NjU5MSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjIwNiwgMC4wMDIyMDYsIDAuMDAyMjA3LCAwLjAwMjIwNywgMC4wMDIyMDcsIDAuMDAyMjA2LCAwLjAwMjIwNiIsIFwKLSAgICAgICAgICAiMC4wMDIxOTYsIDAuMDAyMTk4LCAwLjAwMjIwMSwgMC4wMDIyMDEsIDAuMDAyMjAxLCAwLjAwMjIwMSwgMC4wMDIyIiwgXAotICAgICAgICAgICIwLjAwMjE4OSwgMC4wMDIxOTMsIDAuMDAyMTk4LCAwLjAwMjIsIDAuMDAyMiwgMC4wMDIyMDIsIDAuMDAyMjAyIiwgXAotICAgICAgICAgICIwLjAwMjE4NSwgMC4wMDIxOSwgMC4wMDIxOTcsIDAuMDAyMTk4LCAwLjAwMjE5OSwgMC4wMDIxOTksIDAuMDAyMTk5IiwgXAotICAgICAgICAgICIwLjAwMjE4MiwgMC4wMDIxODcsIDAuMDAyMTk1LCAwLjAwMjE5NywgMC4wMDIxOTgsIDAuMDAyMTk4LCAwLjAwMjE5OSIsIFwKLSAgICAgICAgICAiMC4wMDIxOCwgMC4wMDIxODUsIDAuMDAyMTkyLCAwLjAwMjE5NywgMC4wMDIxOTgsIDAuMDAyMTk4LCAwLjAwMjE5OSIsIFwKLSAgICAgICAgICAiMC4wMDIxODIsIDAuMDAyMTg1LCAwLjAwMjE5NCwgMC4wMDIxOTcsIDAuMDAyMTk4LCAwLjAwMjE5OSwgMC4wMDIxOTgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDA5LCAwLjAwMDksIDAuMDAwOTAxLCAwLjAwMDkwMSwgMC4wMDA5MDEsIDAuMDAwOSwgMC4wMDA5IiwgXAotICAgICAgICAgICIwLjAwMDg3OSwgMC4wMDA4ODMsIDAuMDAwODg3LCAwLjAwMDg4OCwgMC4wMDA4ODgsIDAuMDAwODg4LCAwLjAwMDg4OCIsIFwKLSAgICAgICAgICAiMC4wMDA4NjgsIDAuMDAwODc0LCAwLjAwMDg4MywgMC4wMDA4ODQsIDAuMDAwODg1LCAwLjAwMDg4NiwgMC4wMDA4ODYiLCBcCi0gICAgICAgICAgIjAuMDAwODYxLCAwLjAwMDg2OCwgMC4wMDA4OCwgMC4wMDA4ODIsIDAuMDAwODgzLCAwLjAwMDg4NSwgMC4wMDA4ODUiLCBcCi0gICAgICAgICAgIjAuMDAwODU1LCAwLjAwMDg2MywgMC4wMDA4NzcsIDAuMDAwODgxLCAwLjAwMDg4MiwgMC4wMDA4ODQsIDAuMDAwODg0IiwgXAotICAgICAgICAgICIwLjAwMDg1MSwgMC4wMDA4NTksIDAuMDAwODc1LCAwLjAwMDg3OCwgMC4wMDA4ODEsIDAuMDAwODgzLCAwLjAwMDg4MyIsIFwKLSAgICAgICAgICAiMC4wMDA4NTEsIDAuMDAwODU4LCAwLjAwMDg3MywgMC4wMDA4NzgsIDAuMDAwODgsIDAuMDAwODgyLCAwLjAwMDg4MiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjQ0LCAwLjAwMjQ0LCAwLjAwMjQ0LCAwLjAwMjQ0MSwgMC4wMDI0NCwgMC4wMDI0MzksIDAuMDAyNDM5IiwgXAotICAgICAgICAgICIwLjAwMjQzLCAwLjAwMjQzMiwgMC4wMDI0MzQsIDAuMDAyNDM1LCAwLjAwMjQzNSwgMC4wMDI0MzUsIDAuMDAyNDM1IiwgXAotICAgICAgICAgICIwLjAwMjQyMywgMC4wMDI0MjcsIDAuMDAyNDMzLCAwLjAwMjQzMywgMC4wMDI0MzQsIDAuMDAyNDM1LCAwLjAwMjQzNCIsIFwKLSAgICAgICAgICAiMC4wMDI0MTksIDAuMDAyNDIzLCAwLjAwMjQzMiwgMC4wMDI0MzMsIDAuMDAyNDMzLCAwLjAwMjQzMywgMC4wMDI0MzMiLCBcCi0gICAgICAgICAgIjAuMDAyNDE2LCAwLjAwMjQyMSwgMC4wMDI0MywgMC4wMDI0MzIsIDAuMDAyNDMzLCAwLjAwMjQzMywgMC4wMDI0MzMiLCBcCi0gICAgICAgICAgIjAuMDAyNDE0LCAwLjAwMjQxOSwgMC4wMDI0MjYsIDAuMDAyNDMsIDAuMDAyNDMxLCAwLjAwMjQzMiwgMC4wMDI0MzIiLCBcCi0gICAgICAgICAgIjAuMDAyNDE1LCAwLjAwMjQxOSwgMC4wMDI0MjgsIDAuMDAyNDMsIDAuMDAyNDMxLCAwLjAwMjQzMiwgMC4wMDI0MzMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDA1ODgsIDAuMDAwNTg5LCAwLjAwMDU4OSwgMC4wMDA1ODksIDAuMDAwNTg5LCAwLjAwMDU4OSwgMC4wMDA1ODkiLCBcCi0gICAgICAgICAgIjAuMDAwNTY4LCAwLjAwMDU3MSwgMC4wMDA1NzYsIDAuMDAwNTc2LCAwLjAwMDU3NywgMC4wMDA1NzcsIDAuMDAwNTc3IiwgXAotICAgICAgICAgICIwLjAwMDU1NywgMC4wMDA1NjMsIDAuMDAwNTcxLCAwLjAwMDU3MywgMC4wMDA1NzQsIDAuMDAwNTc0LCAwLjAwMDU3NCIsIFwKLSAgICAgICAgICAiMC4wMDA1NSwgMC4wMDA1NTcsIDAuMDAwNTY4LCAwLjAwMDU3MSwgMC4wMDA1NzIsIDAuMDAwNTczLCAwLjAwMDU3MyIsIFwKLSAgICAgICAgICAiMC4wMDA1NDUsIDAuMDAwNTUyLCAwLjAwMDU2NiwgMC4wMDA1NjksIDAuMDAwNTcxLCAwLjAwMDU3MiwgMC4wMDA1NzIiLCBcCi0gICAgICAgICAgIjAuMDAwNTQxLCAwLjAwMDU0OSwgMC4wMDA1NjQsIDAuMDAwNTY3LCAwLjAwMDU3LCAwLjAwMDU3MSwgMC4wMDA1NzEiLCBcCi0gICAgICAgICAgIjAuMDAwNTQxLCAwLjAwMDU0NywgMC4wMDA1NjIsIDAuMDAwNTY2LCAwLjAwMDU2OSwgMC4wMDA1NzEsIDAuMDAwNTcxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUzAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTc3NCwgMC4wMDE3NiwgMC4wMDE3MzcsIDAuMDAxNzM0LCAwLjAwMTczMywgMC4wMDE3MjksIDAuMDAxNzI4IiwgXAotICAgICAgICAgICIwLjAwMTc2MywgMC4wMDE3NDUsIDAuMDAxNzE2LCAwLjAwMTcxLCAwLjAwMTcwNiwgMC4wMDE3MDIsIDAuMDAxNzAxIiwgXAotICAgICAgICAgICIwLjAwMTc2OSwgMC4wMDE3NTEsIDAuMDAxNzE4LCAwLjAwMTcwOSwgMC4wMDE3MDQsIDAuMDAxNjk5LCAwLjAwMTY5NyIsIFwKLSAgICAgICAgICAiMC4wMDE3ODMsIDAuMDAxNzY5LCAwLjAwMTczMiwgMC4wMDE3MjEsIDAuMDAxNzE2LCAwLjAwMTcxLCAwLjAwMTcwNyIsIFwKLSAgICAgICAgICAiMC4wMDE4LCAwLjAwMTc4NSwgMC4wMDE3NDksIDAuMDAxNzM3LCAwLjAwMTczLCAwLjAwMTcyNCwgMC4wMDE3MjEiLCBcCi0gICAgICAgICAgIjAuMDAxODI2LCAwLjAwMTgxNSwgMC4wMDE3ODEsIDAuMDAxNzY2LCAwLjAwMTc2LCAwLjAwMTc1MiwgMC4wMDE3NDkiLCBcCi0gICAgICAgICAgIjAuMDAxODUzLCAwLjAwMTg0MywgMC4wMDE4MDYsIDAuMDAxNzkyLCAwLjAwMTc4OCwgMC4wMDE3NzksIDAuMDAxNzc2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyOTAxLCAwLjAwMjg4NSwgMC4wMDI4NjEsIDAuMDAyODU2LCAwLjAwMjg1MiwgMC4wMDI4NSwgMC4wMDI4NDkiLCBcCi0gICAgICAgICAgIjAuMDAyODk4LCAwLjAwMjg3OSwgMC4wMDI4NDgsIDAuMDAyODQxLCAwLjAwMjgzNiwgMC4wMDI4MzMsIDAuMDAyODMxIiwgXAotICAgICAgICAgICIwLjAwMjkwOSwgMC4wMDI4ODksIDAuMDAyODUyLCAwLjAwMjg0NSwgMC4wMDI4MzksIDAuMDAyODM0LCAwLjAwMjgzMiIsIFwKLSAgICAgICAgICAiMC4wMDI5MjIsIDAuMDAyOTAzLCAwLjAwMjg2NiwgMC4wMDI4NTUsIDAuMDAyODQ5LCAwLjAwMjg0MywgMC4wMDI4NDEiLCBcCi0gICAgICAgICAgIjAuMDAyOTM3LCAwLjAwMjkyLCAwLjAwMjg4MSwgMC4wMDI4NjgsIDAuMDAyODYxLCAwLjAwMjg1NiwgMC4wMDI4NTIiLCBcCi0gICAgICAgICAgIjAuMDAyOTYxLCAwLjAwMjk1MSwgMC4wMDI5MDksIDAuMDAyODk3LCAwLjAwMjg4OCwgMC4wMDI4OCwgMC4wMDI4NzgiLCBcCi0gICAgICAgICAgIjAuMDAyOTg5LCAwLjAwMjk3NiwgMC4wMDI5MzgsIDAuMDAyOTI0LCAwLjAwMjkxMywgMC4wMDI5MDQsIDAuMDAyOTAzIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBNWEkyWDYgKgotICogLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChNWEkyWDYpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC40MjMwODU7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY1NjQ3NDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2NTQ3ODM7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjU2NDc0OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDIxLCAwLjAwMDIxNSwgMC4wMDAyMTcsIDAuMDAwMjE3LCAwLjAwMDIxOCwgMC4wMDAyMTgsIDAuMDAwMjE4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjMzLCAwLjAwMDIyOCwgMC4wMDAyMjgsIDAuMDAwMjI3LCAwLjAwMDIyNywgMC4wMDAyMjcsIDAuMDAwMjI3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2NDc2NTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2NDYxOTY7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjQ3NjU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjE4LCAwLjAwMDIyLCAwLjAwMDIyMSwgMC4wMDAyMjEsIDAuMDAwMjIyLCAwLjAwMDIyMiwgMC4wMDAyMjIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyMjksIDAuMDAwMjI3LCAwLjAwMDIyNywgMC4wMDAyMjcsIDAuMDAwMjI3LCAwLjAwMDIyNywgMC4wMDAyMjciKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFMwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDEyOTY2MjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDEyOTYzOTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDEyOTY2MjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyMDksIDAuMDAwMTgxLCAwLjAwMDE4NCwgMC4wMDAxODgsIDAuMDAwMjAyLCAwLjAwMDIzMSwgMC4wMDAyNTgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDE5NTYsIDAuMDAxOTM1LCAwLjAwMTkzNiwgMC4wMDE5NDIsIDAuMDAxOTUzLCAwLjAwMTk3NywgMC4wMDIwMDEiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMS41Mzc4NjsKLSAgICBmdW5jdGlvbiA6ICIoISgoUzAgQikgKyAoIVMwIEEpKSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk0OTAxLCAwLjE0Mzk5NSwgMC4xOTE3MiwgMC4yMjU3NjMsIDAuMjgwMjQ3LCAwLjMyNzk0NCwgMC4zOTYwODgiLCBcCi0gICAgICAgICAgIjAuMTAzNTcsIDAuMTUyNjU2LCAwLjIwMDM3MywgMC4yMzQ0MjgsIDAuMjg4OTA1LCAwLjMzNjYwMywgMC40MDQ3NDkiLCBcCi0gICAgICAgICAgIjAuMTEzNTI0LCAwLjE2MjU4MywgMC4yMTAyOTQsIDAuMjQ0MzQ5LCAwLjI5ODgyNywgMC4zNDY1MjYsIDAuNDE0NjY3IiwgXAotICAgICAgICAgICIwLjEyMzExMiwgMC4xNzIxOTQsIDAuMjE5OTEsIDAuMjUzOTc5LCAwLjMwODQ0OCwgMC4zNTYxNCwgMC40MjQyOTMiLCBcCi0gICAgICAgICAgIjAuMTMyMjk2LCAwLjE4MTQzOCwgMC4yMjkxNSwgMC4yNjMyMDksIDAuMzE3Njk2LCAwLjM2NTM5NCwgMC40MzM0ODUiLCBcCi0gICAgICAgICAgIjAuMTQ1NzM5LCAwLjE5NDg1MiwgMC4yNDI1NTksIDAuMjc2NjE2LCAwLjMzMTEsIDAuMzc4NzgxLCAwLjQ0NjkyNCIsIFwKLSAgICAgICAgICAiMC4xNTY0MiwgMC4yMDUzNzMsIDAuMjUzMDg1LCAwLjI4NzE0OCwgMC4zNDE2NDUsIDAuMzg5Mjk5LCAwLjQ1NzQzNCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyNTQ4MSwgMC4xMTk4NjYsIDAuMjE3NTU5LCAwLjI4Nzk3LCAwLjQwMDQ1LCAwLjQ5ODEwNywgMC42Mzk4OTIiLCBcCi0gICAgICAgICAgIjAuMDI1NDk1LCAwLjExOTg4NSwgMC4yMTc0MDUsIDAuMjg3NTg4LCAwLjQwMDQzMywgMC40OTgxMiwgMC42Mzk4OTIiLCBcCi0gICAgICAgICAgIjAuMDI1NTA5LCAwLjExOTc5LCAwLjIxNzE4MSwgMC4yODcyMjksIDAuNDAwNDI0LCAwLjQ5ODE2MywgMC42Mzk4OTQiLCBcCi0gICAgICAgICAgIjAuMDI1NDg3LCAwLjExOTg1OSwgMC4yMTc1NDIsIDAuMjg4MDg0LCAwLjQwMDQ1MywgMC40OTgwNDMsIDAuNjM5ODk0IiwgXAotICAgICAgICAgICIwLjAyNTQ2NiwgMC4xMTk4NzMsIDAuMjE3NTM1LCAwLjI4ODAwNCwgMC40MDA0ODYsIDAuNDk5MTYxLCAwLjYzOTczMiIsIFwKLSAgICAgICAgICAiMC4wMjU2OTIsIDAuMTE5OTQ0LCAwLjIxNzU2LCAwLjI4Nzk4NCwgMC40MDA0NTIsIDAuNDk4OTg0LCAwLjYzODc1OSIsIFwKLSAgICAgICAgICAiMC4wMjU3NTEsIDAuMTE5OTg5LCAwLjIxNzU2LCAwLjI4ODAwNiwgMC40MDA1NTUsIDAuNDk4ODk5LCAwLjYzOTcwMyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5MzA1LCAwLjE0NDIyLCAwLjE5Mzk4LCAwLjIyOTQ4LCAwLjI4NjI4MiwgMC4zMzYwMjksIDAuNDA2OTk1IiwgXAotICAgICAgICAgICIwLjEwMTc5NSwgMC4xNTI5MTUsIDAuMjAyNjcxLCAwLjIzODE3NiwgMC4yOTQ5NzYsIDAuMzQ0NzI4LCAwLjQxNTY5MiIsIFwKLSAgICAgICAgICAiMC4xMTI2NTQsIDAuMTYzNjk5LCAwLjIxMzQ0OSwgMC4yNDg5NTMsIDAuMzA1Nzc1LCAwLjM1NTQ5NCwgMC40MjY0NTkiLCBcCi0gICAgICAgICAgIjAuMTIzMjMzLCAwLjE3NDM4NiwgMC4yMjQxNDksIDAuMjU5NjQ3LCAwLjMxNjM5OCwgMC4zNjYxMzYsIDAuNDM3MSIsIFwKLSAgICAgICAgICAiMC4xMzMzODEsIDAuMTg0NDMyLCAwLjIzNDE4LCAwLjI2OTY4NiwgMC4zMjY0ODYsIDAuMzc2MTg3LCAwLjQ0NzIwNSIsIFwKLSAgICAgICAgICAiMC4xNDg0MTcsIDAuMTk5NTEyLCAwLjI0OTI2MSwgMC4yODQ3NjYsIDAuMzQxNTY2LCAwLjM5MTMyNywgMC40NjIyOSIsIFwKLSAgICAgICAgICAiMC4xNjA1NCwgMC4yMTE2NzEsIDAuMjYxNDI3LCAwLjI5NjkzMywgMC4zNTM3MjgsIDAuNDAzNDg3LCAwLjQ3NDQ1NiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyNTAzMiwgMC4xMjE1OTcsIDAuMjIwODQsIDAuMjkyODIyLCAwLjQwNjYwOSwgMC41MDc3NDMsIDAuNjUwNzE1IiwgXAotICAgICAgICAgICIwLjAyNTA1OCwgMC4xMjE1OTYsIDAuMjIxMzc1LCAwLjI5MjgxLCAwLjQwNjU2OSwgMC41MDYxOTEsIDAuNjUwNjkxIiwgXAotICAgICAgICAgICIwLjAyNTA4LCAwLjEyMTU5OSwgMC4yMjEzNjIsIDAuMjkyNzgxLCAwLjQwNzM4NSwgMC41MDc2NjcsIDAuNjUwNjMyIiwgXAotICAgICAgICAgICIwLjAyNTAzLCAwLjEyMTY3MywgMC4yMjEzNzksIDAuMjkyODIyLCAwLjQwNzM5NywgMC41MDYxNzEsIDAuNjUwNzMiLCBcCi0gICAgICAgICAgIjAuMDI1MDYzLCAwLjEyMTY2OSwgMC4yMjEzMzYsIDAuMjkyNzc1LCAwLjQwNjU1NSwgMC41MDc0MTUsIDAuNjQ5NDY3IiwgXAotICAgICAgICAgICIwLjAyNTE3NSwgMC4xMjE2NjUsIDAuMjIxMzY5LCAwLjI5Mjg0OCwgMC40MDY2MDksIDAuNTA2Mjk2LCAwLjY1MDc2NyIsIFwKLSAgICAgICAgICAiMC4wMjUyNjMsIDAuMTIxNzM4LCAwLjIyMTIyMywgMC4yOTIyODksIDAuNDA2NjExLCAwLjUwNjM0NiwgMC42NTA4MTMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTYxMTgsIDAuMTQ1MjI1LCAwLjE5MjkzOSwgMC4yMjY5NjcsIDAuMjgxNDU2LCAwLjMyOTEyNCwgMC4zOTcyODEiLCBcCi0gICAgICAgICAgIjAuMTA0NjUzLCAwLjE1Mzc2NSwgMC4yMDE0ODIsIDAuMjM1NTM1LCAwLjI5MDAyLCAwLjMzNzcwNiwgMC40MDU4NzMiLCBcCi0gICAgICAgICAgIjAuMTE0NTAzLCAwLjE2MzYwMywgMC4yMTEzMDksIDAuMjQ1MzYyLCAwLjI5OTg0NiwgMC4zNDc1NDMsIDAuNDE1Njg0IiwgXAotICAgICAgICAgICIwLjEyNDA5NCwgMC4xNzMxODMsIDAuMjIwODk5LCAwLjI1NDk1NSwgMC4zMDk0MzQsIDAuMzU3MTI3LCAwLjQyNTI4MiIsIFwKLSAgICAgICAgICAiMC4xMzMzNTcsIDAuMTgyNDk0LCAwLjIzMDIyMSwgMC4yNjQyNzksIDAuMzE4NzYyLCAwLjM2NjQ0NywgMC40MzQ0ODIiLCBcCi0gICAgICAgICAgIjAuMTQ2NjUyLCAwLjE5NTc1OCwgMC4yNDM0NjYsIDAuMjc3NTI1LCAwLjMzMjAyMiwgMC4zNzk3MDUsIDAuNDQ3NzkiLCBcCi0gICAgICAgICAgIjAuMTU3Mzk3LCAwLjIwNjU4NywgMC4yNTQyOTQsIDAuMjg4MzQ4LCAwLjM0MjgzOCwgMC4zOTA1MSwgMC40NTg3MTMiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjU1MzIsIDAuMTE5NzQ5LCAwLjIxNzU5NSwgMC4yODczMTQsIDAuNDAwMzg5LCAwLjQ5ODQ3OSwgMC42Mzk4NDQiLCBcCi0gICAgICAgICAgIjAuMDI1NDk3LCAwLjExOTg2NCwgMC4yMTc0NjEsIDAuMjg3MzczLCAwLjQwMDQ1LCAwLjQ5ODQxOSwgMC42Mzk5MjEiLCBcCi0gICAgICAgICAgIjAuMDI1NTE0LCAwLjExOTgyOCwgMC4yMTc1MzgsIDAuMjg3NzM5LCAwLjQwMDA3MiwgMC40OTc2NTUsIDAuNjM5ODg1IiwgXAotICAgICAgICAgICIwLjAyNTUxNCwgMC4xMTk5MDYsIDAuMjE3NDg1LCAwLjI4NzI0MywgMC40MDA0NDEsIDAuNDk4MDQ4LCAwLjYzOTkwMyIsIFwKLSAgICAgICAgICAiMC4wMjU0NjMsIDAuMTE5ODc3LCAwLjIxNzU1OSwgMC4yODgwMDgsIDAuNDAwNDY4LCAwLjQ5ODQ2MywgMC42MzgxMDEiLCBcCi0gICAgICAgICAgIjAuMDI1NzUsIDAuMTE5OTUsIDAuMjE3NTYzLCAwLjI4Nzk4OCwgMC40MDA1NjMsIDAuNDk5MDc3LCAwLjYzOTYzMyIsIFwKLSAgICAgICAgICAiMC4wMjU4NzUsIDAuMTE5OTQ4LCAwLjIxNzUyOCwgMC4yODc3NjgsIDAuNDAwNDU4LCAwLjQ5ODQ0LCAwLjYzODYxNSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5MzA4MywgMC4xNDQxNzYsIDAuMTkzOTI1LCAwLjIyOTQyOSwgMC4yODYyMzUsIDAuMzM1OTY1LCAwLjQwNjk0OSIsIFwKLSAgICAgICAgICAiMC4xMDIxNTgsIDAuMTUzMzAyLCAwLjIwMzA2MywgMC4yMzg1NiwgMC4yOTUzNjMsIDAuMzQ1MTEyLCAwLjQxNjA4IiwgXAotICAgICAgICAgICIwLjExMzEyNiwgMC4xNjQxNzIsIDAuMjEzOTIxLCAwLjI0OTQyNiwgMC4zMDYyNDgsIDAuMzU1OTcsIDAuNDI2OTMyIiwgXAotICAgICAgICAgICIwLjEyMzgzNywgMC4xNzQ4NzgsIDAuMjI0NjQsIDAuMjYwMTQzLCAwLjMxNjk2LCAwLjM2NjY4NSwgMC40Mzc2NTIiLCBcCi0gICAgICAgICAgIjAuMTM0MDQ4LCAwLjE4NTA5LCAwLjIzNDgzOCwgMC4yNzAzNCwgMC4zMjcxNSwgMC4zNzY4OTMsIDAuNDQ3ODY2IiwgXAotICAgICAgICAgICIwLjE0OTI3MywgMC4yMDAzNjMsIDAuMjUwMTEsIDAuMjg1NjE0LCAwLjM0MjQxNiwgMC4zOTIxNTEsIDAuNDYzMTM5IiwgXAotICAgICAgICAgICIwLjE2MTQ2NiwgMC4yMTI1NDIsIDAuMjYyMjkxLCAwLjI5Nzc5MiwgMC4zNTQ1ODYsIDAuNDA0MzEzLCAwLjQ3NTMxOSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyNTA2NiwgMC4xMjE2NjcsIDAuMjIxMzAzLCAwLjI5Mjc3NiwgMC40MDczMDQsIDAuNTA3NjcyLCAwLjY1MDc0MSIsIFwKLSAgICAgICAgICAiMC4wMjUwNDUsIDAuMTIxNjczLCAwLjIyMTMyNiwgMC4yOTI4MTcsIDAuNDA2NTk4LCAwLjUwNjIxNiwgMC42NTA3MiIsIFwKLSAgICAgICAgICAiMC4wMjUwODQsIDAuMTIxNiwgMC4yMjEzNTQsIDAuMjkyNzkzLCAwLjQwNzM5NSwgMC41MDc2ODQsIDAuNjUwNjQ4IiwgXAotICAgICAgICAgICIwLjAyNDk4MywgMC4xMjE2NjcsIDAuMjIxMjcyLCAwLjI5MjIxNywgMC40MDczOTksIDAuNTA2MTgyLCAwLjY1MDY4MSIsIFwKLSAgICAgICAgICAiMC4wMjUwMDIsIDAuMTIxNjc0LCAwLjIyMTMzOSwgMC4yOTI3ODgsIDAuNDA2NTk3LCAwLjUwNzY5NSwgMC42NTA2ODIiLCBcCi0gICAgICAgICAgIjAuMDI1MTk2LCAwLjEyMTc0OCwgMC4yMjEzNTgsIDAuMjkyODQ5LCAwLjQwNzI5OCwgMC41MDc2OTYsIDAuNjUwNzczIiwgXAotICAgICAgICAgICIwLjAyNTIxMiwgMC4xMjE2NzksIDAuMjIwODgzLCAwLjI5Mjk0LCAwLjQwNjg2LCAwLjUwNjM0MywgMC42NDkxOSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDYwODEsIDAuMTU1MTc5LCAwLjIwMjg5NCwgMC4yMzY5NTEsIDAuMjkxNDQ2LCAwLjMzOTA2NSwgMC40MDcyMjMiLCBcCi0gICAgICAgICAgIjAuMTE2MzM1LCAwLjE2NTQyMywgMC4yMTMxMiwgMC4yNDcyMDMsIDAuMzAxNjc4LCAwLjM0OTM2MSwgMC40MTc1NDgiLCBcCi0gICAgICAgICAgIjAuMTI3NTU2LCAwLjE3NjY1NSwgMC4yMjQzMzQsIDAuMjU4NDE0LCAwLjMxMjg5OSwgMC4zNjA1MzgsIDAuNDI4NzAzIiwgXAotICAgICAgICAgICIwLjEzNjg5NywgMC4xODYwMDEsIDAuMjMzNjg2LCAwLjI2Nzc3LCAwLjMyMjI4LCAwLjM2OTg4OSwgMC40MzgwNDQiLCBcCi0gICAgICAgICAgIjAuMTQ0NDQsIDAuMTkzNTYzLCAwLjI0MTI2NSwgMC4yNzUzMjIsIDAuMzI5ODEyLCAwLjM3NzUxMSwgMC40NDU1OTUiLCBcCi0gICAgICAgICAgIjAuMTU0OTQxLCAwLjIwMzg5NiwgMC4yNTE1OTgsIDAuMjg1NjU2LCAwLjM0MDExNywgMC4zODc4MjUsIDAuNDU1OTI2IiwgXAotICAgICAgICAgICIwLjE2MjkyMiwgMC4yMTE5NzcsIDAuMjU5NzI3LCAwLjI5Mzc5MiwgMC4zNDgyMjksIDAuMzk1OTY3LCAwLjQ2NDA0MiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyNTUwMSwgMC4xMTk4NjMsIDAuMjE3NTUzLCAwLjI4ODA0NywgMC40MDA2MTgsIDAuNDk4ODM2LCAwLjYzODk3OCIsIFwKLSAgICAgICAgICAiMC4wMjU1MDMsIDAuMTE5ODY5LCAwLjIxNzIxMSwgMC4yODgwNDQsIDAuNDAwNDY4LCAwLjQ5ODUzNywgMC42Mzg2MjgiLCBcCi0gICAgICAgICAgIjAuMDI1NTI1LCAwLjExOTgxMiwgMC4yMTcyMTgsIDAuMjg4MDI1LCAwLjM5OTM5OSwgMC40OTg4MjIsIDAuNjM5ODMzIiwgXAotICAgICAgICAgICIwLjAyNTQ5LCAwLjExOTc0OSwgMC4yMTcyMTQsIDAuMjg4MDM0LCAwLjM5OTY5MywgMC40OTgzODksIDAuNjM4OTgxIiwgXAotICAgICAgICAgICIwLjAyNTQ4MiwgMC4xMTk4NzgsIDAuMjE3NTU3LCAwLjI4ODAwNiwgMC40MDA1NDgsIDAuNDk5MTU2LCAwLjYzOTc1MiIsIFwKLSAgICAgICAgICAiMC4wMjU1ODIsIDAuMTE5ODc5LCAwLjIxNzU2MiwgMC4yODgwMTMsIDAuNDAwNDMyLCAwLjQ5OTA3NywgMC42Mzk0OTMiLCBcCi0gICAgICAgICAgIjAuMDI1NTMzLCAwLjExOTg4NiwgMC4yMTc1ODYsIDAuMjg3OTk5LCAwLjQwMDEyOCwgMC40OTgyNjUsIDAuNjM4Nzg0Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTA0Nzk4LCAwLjE1NTg4NywgMC4yMDU2NDEsIDAuMjQxMTQ0LCAwLjI5Nzk0MywgMC4zNDc2OTUsIDAuNDE4NjU5IiwgXAotICAgICAgICAgICIwLjExNDY1MiwgMC4xNjU3NDcsIDAuMjE1NDk2LCAwLjI1MSwgMC4zMDc4MTMsIDAuMzU3NTEzLCAwLjQyODUxNyIsIFwKLSAgICAgICAgICAiMC4xMjUyMTIsIDAuMTc2MzA1LCAwLjIyNjA2MiwgMC4yNjE1NjUsIDAuMzE4MzY0LCAwLjM2ODExMSwgMC40MzkwNzgiLCBcCi0gICAgICAgICAgIjAuMTMzOCwgMC4xODQ4OTYsIDAuMjM0NjU1LCAwLjI3MDE1NCwgMC4zMjY5NTQsIDAuMzc2NzAyLCAwLjQ0NzY2OCIsIFwKLSAgICAgICAgICAiMC4xNDA3MzQsIDAuMTkxODQsIDAuMjQxNTg4LCAwLjI3NzAzMywgMC4zMzM5MTIsIDAuMzgzNTgsIDAuNDU0NjE1IiwgXAotICAgICAgICAgICIwLjE0OTY2OCwgMC4yMDA5NzcsIDAuMjUwNzE5LCAwLjI4NjAyMSwgMC4zNDMwMjgsIDAuMzkyNzMzLCAwLjQ2MzU1OCIsIFwKLSAgICAgICAgICAiMC4xNTY4MDYsIDAuMjA3OTk5LCAwLjI1Nzc1MiwgMC4yOTMxNzEsIDAuMzUwMDY0LCAwLjM5OTY4OCwgMC40NzA3NzYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjUwMzEsIDAuMTIxNTk4LCAwLjIyMTM3NCwgMC4yOTI4MzYsIDAuNDA3Mjc5LCAwLjUwNjE5LCAwLjY1MDczNCIsIFwKLSAgICAgICAgICAiMC4wMjUwNDYsIDAuMTIxNjYyLCAwLjIyMTM0LCAwLjI5Mjc2MywgMC40MDczNDEsIDAuNTA2NTI1LCAwLjY1MDY3OCIsIFwKLSAgICAgICAgICAiMC4wMjUwNDMsIDAuMTIxNTk4LCAwLjIyMDkwOCwgMC4yOTI3ODQsIDAuNDA2NTcyLCAwLjUwNjIwOCwgMC42NTA2NzMiLCBcCi0gICAgICAgICAgIjAuMDI1MDQxLCAwLjEyMTU5NywgMC4yMjA4MzEsIDAuMjkyODA2LCAwLjQwNjU4MiwgMC41MDYyMDQsIDAuNjUwNjk5IiwgXAotICAgICAgICAgICIwLjAyNDk4LCAwLjEyMTY3MywgMC4yMjEzNTYsIDAuMjkyNzc3LCAwLjQwNzM4NSwgMC41MDc2OTcsIDAuNjUwNjg2IiwgXAotICAgICAgICAgICIwLjAyNTAwNywgMC4xMjE3MTYsIDAuMjIxMzk5LCAwLjI5Mjg0LCAwLjQwNzMyMSwgMC41MDc1NjUsIDAuNjUwNjI1IiwgXAotICAgICAgICAgICIwLjAyNTAxMSwgMC4xMjE2NzcsIDAuMjIxMDQ5LCAwLjI5MjI2MywgMC40MDYzMDIsIDAuNTA3MDE5LCAwLjY1MDA1MyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODgzNjIsIDAuMTM3NDUxLCAwLjE4NTE2NCwgMC4yMTkyMjIsIDAuMjczNzAyLCAwLjMyMTM5NiwgMC4zODk1NDQiLCBcCi0gICAgICAgICAgIjAuMDk3MTc3LCAwLjE0NjI3LCAwLjE5Mzk1MSwgMC4yMjgwMjksIDAuMjgyNTA4LCAwLjMzMDIsIDAuMzk4MzU3IiwgXAotICAgICAgICAgICIwLjEwODU3NSwgMC4xNTc2NjcsIDAuMjA1Mzg5LCAwLjIzOTQ0MywgMC4yOTM5MTgsIDAuMzQxNjExLCAwLjQwOTc2MSIsIFwKLSAgICAgICAgICAiMC4xMTk5NTMsIDAuMTY5MDM3LCAwLjIxNjc2LCAwLjI1MDgxNywgMC4zMDUyOTUsIDAuMzUyOTg4LCAwLjQyMTE1MSIsIFwKLSAgICAgICAgICAiMC4xMzA5NzEsIDAuMTgwMDA0LCAwLjIyNzc0NiwgMC4yNjE3OTcsIDAuMzE2MzE0LCAwLjM2Mzk0OCwgMC40MzIxMDIiLCBcCi0gICAgICAgICAgIjAuMTQ2MzI4LCAwLjE5NTQ1NiwgMC4yNDMxNDYsIDAuMjc3MjI3LCAwLjMzMTcxMSwgMC4zNzkzNjYsIDAuNDQ3NTc2IiwgXAotICAgICAgICAgICIwLjE1ODE1OSwgMC4yMDczNDgsIDAuMjU1MDc1LCAwLjI4OTEwMywgMC4zNDM1OTUsIDAuMzkxMzE3LCAwLjQ1OTM3OSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyNTQ2MiwgMC4xMTk4NTcsIDAuMjE3NzE2LCAwLjI4ODAxMywgMC40MDA0NTUsIDAuNDk4MDU4LCAwLjYzOTg5NCIsIFwKLSAgICAgICAgICAiMC4wMjU0ODUsIDAuMTE5ODY3LCAwLjIxNzI0NiwgMC4yODgwMTUsIDAuNDAwNDM4LCAwLjQ5NzY0NCwgMC42Mzk5MTYiLCBcCi0gICAgICAgICAgIjAuMDI1NDYsIDAuMTE5ODU4LCAwLjIxNzU1NywgMC4yODgwNDIsIDAuNDAwNDU5LCAwLjQ5ODA0NCwgMC42Mzk4OTMiLCBcCi0gICAgICAgICAgIjAuMDI1NDYzLCAwLjExOTg2NSwgMC4yMTc1NDksIDAuMjg4MDI0LCAwLjQwMDA4MywgMC40OTg0NDUsIDAuNjM5OTEyIiwgXAotICAgICAgICAgICIwLjAyNTQ1OSwgMC4xMTk4MzUsIDAuMjE3NTQ5LCAwLjI4Nzk5NiwgMC4zOTk4OTcsIDAuNDk4MzUsIDAuNjM5OTA0IiwgXAotICAgICAgICAgICIwLjAyNTczMiwgMC4xMTk5NTIsIDAuMjE3NTYzLCAwLjI4Nzk4NCwgMC40MDA0MjUsIDAuNDk4NDg3LCAwLjYzODYwNiIsIFwKLSAgICAgICAgICAiMC4wMjU5NDcsIDAuMTIwMDEzLCAwLjIxNzU5MiwgMC4yODc3MjUsIDAuNDAwNDcsIDAuNDk4MjMzLCAwLjYzOTQ2OCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4NjQwNSwgMC4xMzc0NzMsIDAuMTg3MjIsIDAuMjIyNzI0LCAwLjI3OTUzLCAwLjMyOTI2NCwgMC40MDAyMzciLCBcCi0gICAgICAgICAgIjAuMDk1NSwgMC4xNDY2NDQsIDAuMTk2NDA2LCAwLjIzMTkwMywgMC4yODg3MDUsIDAuMzM4NDUsIDAuNDA5NDE5IiwgXAotICAgICAgICAgICIwLjEwNzE5OSwgMC4xNTgyNjYsIDAuMjA4MDIsIDAuMjQzNTM3LCAwLjMwMDMyOCwgMC4zNTAwNjcsIDAuNDIxMDM4IiwgXAotICAgICAgICAgICIwLjExODk3NiwgMC4xNzAwNTcsIDAuMjE5ODE0LCAwLjI1NTMxNywgMC4zMTIxMTgsIDAuMzYxODY5LCAwLjQzMjgzNiIsIFwKLSAgICAgICAgICAiMC4xMzA0MzUsIDAuMTgxNTM1LCAwLjIzMTIzOCwgMC4yNjY3NDIsIDAuMzIzNTcyLCAwLjM3MzI1MSwgMC40NDQyODUiLCBcCi0gICAgICAgICAgIjAuMTQ2OTMxLCAwLjE5Nzk2NSwgMC4yNDc3MDUsIDAuMjgzMjIyLCAwLjM0MDAwOSwgMC4zODk3NjgsIDAuNDYwNzMyIiwgXAotICAgICAgICAgICIwLjE1OTU2MSwgMC4yMTA3MSwgMC4yNjA0NTcsIDAuMjk2MDU5LCAwLjM1Mjg1NywgMC40MDI1NjIsIDAuNDczNTQ3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDI1MDMyLCAwLjEyMTU5OSwgMC4yMjEzODQsIDAuMjkyNzksIDAuNDA2NjEyLCAwLjUwNzY4NCwgMC42NTA2OTEiLCBcCi0gICAgICAgICAgIjAuMDI1MDI2LCAwLjEyMTU5NywgMC4yMjEzNDIsIDAuMjkyODMzLCAwLjQwNjYwOSwgMC41MDc3NjQsIDAuNjUwNzIiLCBcCi0gICAgICAgICAgIjAuMDI0OTc5LCAwLjEyMTU5OCwgMC4yMjEwNjksIDAuMjkyODc4LCAwLjQwNjU4OSwgMC41MDc2NSwgMC42NTA2NTQiLCBcCi0gICAgICAgICAgIjAuMDI1MDQxLCAwLjEyMTY3NywgMC4yMjEzNzUsIDAuMjkyODI1LCAwLjQwNjYwMiwgMC41MDYxOTEsIDAuNjUwNzQxIiwgXAotICAgICAgICAgICIwLjAyNTAzMywgMC4xMjE2ODYsIDAuMjIxMzY3LCAwLjI5MjgyLCAwLjQwNzQ1OCwgMC41MDY3MjcsIDAuNjUwODkxIiwgXAotICAgICAgICAgICIwLjAyNTIyMSwgMC4xMjE3MDUsIDAuMjIxNDM1LCAwLjI5MjI3NywgMC40MDcwMTUsIDAuNTA2NTIzLCAwLjY1MDc0NyIsIFwKLSAgICAgICAgICAiMC4wMjU0OCwgMC4xMjE4NDQsIDAuMjIxMjU5LCAwLjI5MjUxOSwgMC40MDcyOTksIDAuNTA3NTEsIDAuNjUwNjA1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTAxNSwgMC4wMTAzOSwgMC4wMTA0MzQsIDAuMDEwNDU3LCAwLjAxMDQ2LCAwLjAxMDQ2NiwgMC4wMTA0NzIiLCBcCi0gICAgICAgICAgIjAuMDEwMTM1LCAwLjAxMDM3NSwgMC4wMTA0MTksIDAuMDEwNDMzLCAwLjAxMDQzNywgMC4wMTA0NiwgMC4wMTA0NyIsIFwKLSAgICAgICAgICAiMC4wMTAxMjUsIDAuMDEwMzY2LCAwLjAxMDQwOSwgMC4wMTA0MjUsIDAuMDEwNDM0LCAwLjAxMDQ0NiwgMC4wMTA0NDYiLCBcCi0gICAgICAgICAgIjAuMDEwMTIzLCAwLjAxMDM2NCwgMC4wMTA0MTMsIDAuMDEwNDIyLCAwLjAxMDQzNCwgMC4wMTA0NCwgMC4wMTA0NDYiLCBcCi0gICAgICAgICAgIjAuMDEwMTA0LCAwLjAxMDM1LCAwLjAxMDM5NywgMC4wMTA0MDksIDAuMDEwNDI1LCAwLjAxMDQzNCwgMC4wMTA0NCIsIFwKLSAgICAgICAgICAiMC4wMTAxMSwgMC4wMTAzNjYsIDAuMDEwNDE2LCAwLjAxMDQyOCwgMC4wMTA0NDUsIDAuMDEwNDU2LCAwLjAxMDQ1NiIsIFwKLSAgICAgICAgICAiMC4wMTAxMjksIDAuMDEwMzU1LCAwLjAxMDQwNywgMC4wMTA0MTQsIDAuMDEwNDM5LCAwLjAxMDQ0OCwgMC4wMTA0NDgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwODg2OSwgMC4wMDkxOTgsIDAuMDA5MjU5LCAwLjAwOTI3OSwgMC4wMDkyOTYsIDAuMDA5MzA1LCAwLjAwOTMxNCIsIFwKLSAgICAgICAgICAiMC4wMDg4NSwgMC4wMDkxNzksIDAuMDA5MjQsIDAuMDA5MjYsIDAuMDA5Mjc4LCAwLjAwOTI4NiwgMC4wMDkyOTUiLCBcCi0gICAgICAgICAgIjAuMDA4ODQxLCAwLjAwOTE2NywgMC4wMDkyMjcsIDAuMDA5MjQ2LCAwLjAwOTI2NCwgMC4wMDkyNzIsIDAuMDA5MjgxIiwgXAotICAgICAgICAgICIwLjAwODgyMywgMC4wMDkxNTcsIDAuMDA5MjE4LCAwLjAwOTIzOCwgMC4wMDkyNTYsIDAuMDA5MjY1LCAwLjAwOTI3MyIsIFwKLSAgICAgICAgICAiMC4wMDg4MDMsIDAuMDA5MTM4LCAwLjAwOTIwNCwgMC4wMDkyMjQsIDAuMDA5MjQ0LCAwLjAwOTI1NCwgMC4wMDkyNjMiLCBcCi0gICAgICAgICAgIjAuMDA4ODI2LCAwLjAwOTE2NiwgMC4wMDkyMzIsIDAuMDA5MjU0LCAwLjAwOTI3MywgMC4wMDkyODMsIDAuMDA5MjkyIiwgXAotICAgICAgICAgICIwLjAwODgyMywgMC4wMDkxNTEsIDAuMDA5MjI0LCAwLjAwOTI0NiwgMC4wMDkyNjcsIDAuMDA5Mjc3LCAwLjAwOTI4NyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEwMzgzLCAwLjAxMDYyMSwgMC4wMTA2NjIsIDAuMDEwNjc2LCAwLjAxMDY5MSwgMC4wMTA2OTcsIDAuMDEwNjk2IiwgXAotICAgICAgICAgICIwLjAxMDM1OCwgMC4wMTA2MDQsIDAuMDEwNjUsIDAuMDEwNjYzLCAwLjAxMDY3NiwgMC4wMTA2OTMsIDAuMDEwNzAyIiwgXAotICAgICAgICAgICIwLjAxMDM1OCwgMC4wMTA1OTgsIDAuMDEwNjQyLCAwLjAxMDY1NSwgMC4wMTA2NjcsIDAuMDEwNjc0LCAwLjAxMDY3OSIsIFwKLSAgICAgICAgICAiMC4wMTAzNiwgMC4wMTA2LCAwLjAxMDY0MywgMC4wMTA2NjQsIDAuMDEwNjcsIDAuMDEwNjg2LCAwLjAxMDY4MiIsIFwKLSAgICAgICAgICAiMC4wMTAzNDcsIDAuMDEwNTkzLCAwLjAxMDY0MywgMC4wMTA2NTUsIDAuMDEwNjcyLCAwLjAxMDY4LCAwLjAxMDY4MSIsIFwKLSAgICAgICAgICAiMC4wMTAzNDQsIDAuMDEwNTk1LCAwLjAxMDY0NywgMC4wMTA2NTksIDAuMDEwNjc4LCAwLjAxMDY4NiwgMC4wMTA2ODciLCBcCi0gICAgICAgICAgIjAuMDEwMzQ0LCAwLjAxMDU5LCAwLjAxMDYzOCwgMC4wMTA2NjQsIDAuMDEwNjc1LCAwLjAxMDY3OSwgMC4wMTA2ODkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwODY4NiwgMC4wMDkwMDMsIDAuMDA5MDYzLCAwLjAwOTA4MywgMC4wMDkxMDEsIDAuMDA5MTEsIDAuMDA5MTE4IiwgXAotICAgICAgICAgICIwLjAwODY1MiwgMC4wMDg5ODEsIDAuMDA5MDQzLCAwLjAwOTA2MiwgMC4wMDkwOCwgMC4wMDkwODksIDAuMDA5MDk4IiwgXAotICAgICAgICAgICIwLjAwODY0NiwgMC4wMDg5NzIsIDAuMDA5MDMxLCAwLjAwOTA1MSwgMC4wMDkwNjgsIDAuMDA5MDc3LCAwLjAwOTA4NiIsIFwKLSAgICAgICAgICAiMC4wMDg2NDUsIDAuMDA4OTY2LCAwLjAwOTAyOCwgMC4wMDkwNDgsIDAuMDA5MDY2LCAwLjAwOTA3NSwgMC4wMDkwODQiLCBcCi0gICAgICAgICAgIjAuMDA4NjE1LCAwLjAwODk0NSwgMC4wMDkwMSwgMC4wMDkwMzEsIDAuMDA5MDUsIDAuMDA5MDYsIDAuMDA5MDY5IiwgXAotICAgICAgICAgICIwLjAwODYzOCwgMC4wMDg5OTQsIDAuMDA5MDU5LCAwLjAwOTA4LCAwLjAwOTA5OSwgMC4wMDkxMDksIDAuMDA5MTE5IiwgXAotICAgICAgICAgICIwLjAwODY0NCwgMC4wMDg5NjYsIDAuMDA5MDM0LCAwLjAwOTA1NSwgMC4wMDkwNzgsIDAuMDA5MDg5LCAwLjAwOTA5OCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlMwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMDAzNiwgMC4wMTAyNjYsIDAuMDEwMzA4LCAwLjAxMDMzOCwgMC4wMTAzMzMsIDAuMDEwMzUxLCAwLjAxMDM2IiwgXAotICAgICAgICAgICIwLjAwOTk5OCwgMC4wMTAyNDgsIDAuMDEwMjc3LCAwLjAxMDMyMSwgMC4wMTAzMzEsIDAuMDEwMzQxLCAwLjAxMDMyNyIsIFwKLSAgICAgICAgICAiMC4wMTAwMTcsIDAuMDEwMjQ4LCAwLjAxMDI5MSwgMC4wMTAzMTQsIDAuMDEwMzIzLCAwLjAxMDMyMiwgMC4wMTAzMjgiLCBcCi0gICAgICAgICAgIjAuMDEwMDIsIDAuMDEwMjUyLCAwLjAxMDI5OSwgMC4wMTAzMDYsIDAuMDEwMzE5LCAwLjAxMDMyNSwgMC4wMTAzNDUiLCBcCi0gICAgICAgICAgIjAuMDEwMDEzLCAwLjAxMDI1NCwgMC4wMTAyOTcsIDAuMDEwMzA1LCAwLjAxMDMyMywgMC4wMTAzMywgMC4wMTAzNCIsIFwKLSAgICAgICAgICAiMC4wMTAwMjUsIDAuMDEwMjc4LCAwLjAxMDMyNCwgMC4wMTAzMzgsIDAuMDEwMzUxLCAwLjAxMDM2MSwgMC4wMTAzNjMiLCBcCi0gICAgICAgICAgIjAuMDEwMDc5LCAwLjAxMDMsIDAuMDEwMzU0LCAwLjAxMDM2MiwgMC4wMTAzNywgMC4wMTAzODEsIDAuMDEwMzgyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTA4MSwgMC4wMTExMzYsIDAuMDExMTk1LCAwLjAxMTIxNCwgMC4wMTEyMzIsIDAuMDExMjQsIDAuMDExMjQ4IiwgXAotICAgICAgICAgICIwLjAxMDc5NCwgMC4wMTExMiwgMC4wMTExOCwgMC4wMTExOTksIDAuMDExMjE3LCAwLjAxMTIyNSwgMC4wMTEyMzQiLCBcCi0gICAgICAgICAgIjAuMDEwODA4LCAwLjAxMTEyOCwgMC4wMTExODcsIDAuMDExMjA2LCAwLjAxMTIyMywgMC4wMTEyMzEsIDAuMDExMjQiLCBcCi0gICAgICAgICAgIjAuMDEwODAyLCAwLjAxMTEyOCwgMC4wMTExODcsIDAuMDExMjA2LCAwLjAxMTIyMywgMC4wMTEyMzIsIDAuMDExMjQiLCBcCi0gICAgICAgICAgIjAuMDEwNzk1LCAwLjAxMTEyNSwgMC4wMTExODcsIDAuMDExMjA0LCAwLjAxMTIyNSwgMC4wMTEyMzEsIDAuMDExMjQzIiwgXAotICAgICAgICAgICIwLjAxMDgyLCAwLjAxMTE3MywgMC4wMTEyMzQsIDAuMDExMjU2LCAwLjAxMTI3MSwgMC4wMTEyOCwgMC4wMTEyOCIsIFwKLSAgICAgICAgICAiMC4wMTA4NDgsIDAuMDExMTc4LCAwLjAxMTIzOCwgMC4wMTEyNTQsIDAuMDExMjc3LCAwLjAxMTI4LCAwLjAxMTI5NCIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogTVhJMlhMICoKLSAqIC0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoTVhJMlhMKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMDkwOTY2OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2MTA3MjY7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjA5MzIxOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDYxMDcyNjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyMSwgMC4wMDAyMTUsIDAuMDAwMjE2LCAwLjAwMDIxNywgMC4wMDAyMTgsIDAuMDAwMjE4LCAwLjAwMDIxOCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDIzMSwgMC4wMDAyMjgsIDAuMDAwMjI3LCAwLjAwMDIyNywgMC4wMDAyMjcsIDAuMDAwMjI3LCAwLjAwMDIyNyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjM1OTY7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjM0NTE3OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDYzNTk2OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDIxNywgMC4wMDAyMiwgMC4wMDAyMjEsIDAuMDAwMjIxLCAwLjAwMDIyMSwgMC4wMDAyMjIsIDAuMDAwMjIyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjMzLCAwLjAwMDIyOCwgMC4wMDAyMjgsIDAuMDAwMjI3LCAwLjAwMDIyNywgMC4wMDAyMjcsIDAuMDAwMjI3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxMjYzOTM7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxMjYzNTc7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxMjYzOTM7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMTU3LCAwLjAwMDEyOCwgMC4wMDAxMjgsIDAuMDAwMTM4LCAwLjAwMDE1NSwgMC4wMDAxNzUsIDAuMDAwMTk2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyMDgyLCAwLjAwMjA2MiwgMC4wMDIwNiwgMC4wMDIwNjksIDAuMDAyMDc5LCAwLjAwMjEwMiwgMC4wMDIxMjYiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4wODMxOTAxOwotICAgIGZ1bmN0aW9uIDogIighKChTMCBCKSArICghUzAgQSkpKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTU0ODAyLCAwLjE4MTUwOSwgMC40MjA2NTEsIDAuODE5MTM4LCAxLjIxODI0LCAyLjE0OTQzLCAyLjY3OTk2IiwgXAotICAgICAgICAgICIwLjE2MzQ0MSwgMC4xODk5OTYsIDAuNDI5NDg5LCAwLjgyNzgwMywgMS4yMjcwMiwgMi4xNTczNSwgMi42ODg1NCIsIFwKLSAgICAgICAgICAiMC4xNzMzNDcsIDAuMjAwMDQ4LCAwLjQzOTI1NiwgMC44MzgyNTMsIDEuMjM2NzEsIDIuMTY3MjQsIDIuNjk4NCIsIFwKLSAgICAgICAgICAiMC4xODMyMTEsIDAuMjA5ODI0LCAwLjQ0OTIwNSwgMC44NDc4OTcsIDEuMjQ2ODcsIDIuMTc3NDksIDIuNzA4NTUiLCBcCi0gICAgICAgICAgIjAuMTkyOTg5LCAwLjIxOTcwOSwgMC40NTkwNDQsIDAuODU4MzU1LCAxLjI1NzE2LCAyLjE4NzUyLCAyLjcxNzYiLCBcCi0gICAgICAgICAgIjAuMjA4OCwgMC4yMzUzNTcsIDAuNDc0OTA0LCAwLjg3Mzc3NSwgMS4yNzI3MiwgMi4yMDMzNCwgMi43MzM5IiwgXAotICAgICAgICAgICIwLjIyMjk1MSwgMC4yNDg5NDMsIDAuNDg4NzU2LCAwLjg4NzYzNiwgMS4yODYzOSwgMi4yMTc2NywgMi43NDc5MyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yOTc5NDgsIDAuMzUxNjk4LCAwLjgzNzQxLCAxLjY0NDg5LCAyLjQ1MjY3LCA0LjMzODg3LCA1LjQxNTc4IiwgXAotICAgICAgICAgICIwLjI5Nzc3MywgMC4zNTE2MDksIDAuODM2NzY3LCAxLjY0NTIsIDIuNDUyNjUsIDQuMzM4MDIsIDUuNDE2MzUiLCBcCi0gICAgICAgICAgIjAuMjk3Njc4LCAwLjM1MTY4LCAwLjgzNzIxOSwgMS42NDUzNywgMi40NTMzOSwgNC4zMzc5MSwgNS40MTY5MiIsIFwKLSAgICAgICAgICAiMC4yOTgzNjgsIDAuMzUxOTY0LCAwLjgzNjcxMiwgMS42NDU2NiwgMi40NTI0OCwgNC4zMzc5LCA1LjQxNjY4IiwgXAotICAgICAgICAgICIwLjMwMDA3OCwgMC4zNTMyNTYsIDAuODM2OTczLCAxLjY0NTExLCAyLjQ1MzE4LCA0LjMzNzk0LCA1LjQxNDc3IiwgXAotICAgICAgICAgICIwLjMwNTAwNCwgMC4zNTcwMTgsIDAuODM2ODY3LCAxLjY0NTM4LCAyLjQ1MzYsIDQuMzM3OTUsIDUuNDE3NTQiLCBcCi0gICAgICAgICAgIjAuMzEwNzY3LCAwLjM2MTU5OCwgMC44Mzc0ODUsIDEuNjQ1MjEsIDIuNDUyNTcsIDQuMzM4NTgsIDUuNDE4NTYiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTUwMDMsIDAuMTc1NDg5LCAwLjQwNDM3MSwgMC43ODYwNjcsIDEuMTY3NTMsIDIuMDU3NjYsIDIuNTY2MzQiLCBcCi0gICAgICAgICAgIjAuMTU4OTQzLCAwLjE4NDQwOCwgMC40MTMzMywgMC43OTQ5NzYsIDEuMTc2NjgsIDIuMDY2ODgsIDIuNTc0NzciLCBcCi0gICAgICAgICAgIjAuMTY5ODkzLCAwLjE5NTQyNiwgMC40MjQzMTksIDAuODA2MTE0LCAxLjE4NzM1LCAyLjA3Njc5LCAyLjU4NTkyIiwgXAotICAgICAgICAgICIwLjE4MDgxMSwgMC4yMDYyNjQsIDAuNDM1Mzg0LCAwLjgxNzE3OSwgMS4xOTg2NCwgMi4wODkzNiwgMi41OTY3OSIsIFwKLSAgICAgICAgICAiMC4xOTE1OSwgMC4yMTcyMzksIDAuNDQ2Mzg3LCAwLjgyNzc1NywgMS4yMDkxNiwgMi4wOTk3MSwgMi42MDgwOCIsIFwKLSAgICAgICAgICAiMC4yMDkxNjIsIDAuMjM0NTExLCAwLjQ2Mzk1NywgMC44NDU2MDcsIDEuMjI2NzMsIDIuMTE3NjIsIDIuNjI0NTQiLCBcCi0gICAgICAgICAgIjAuMjI0MTk3LCAwLjI0OTk5NSwgMC40NzkxNjQsIDAuODYxMTg2LCAxLjI0MzAzLCAyLjEzMjYxLCAyLjY0MDU2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI3Nzk2NSwgMC4zMjgyNTQsIDAuNzc5NjE2LCAxLjUzMTkxLCAyLjI4NDI3LCA0LjAzNzcsIDUuMDM5NDciLCBcCi0gICAgICAgICAgIjAuMjc4MDc1LCAwLjMyODA5OSwgMC43Nzk0OTUsIDEuNTMxNjIsIDIuMjgzNzUsIDQuMDM3MzUsIDUuMDM4OSIsIFwKLSAgICAgICAgICAiMC4yNzc5NjEsIDAuMzI4MDc4LCAwLjc3OTQ4NywgMS41MzIyNywgMi4yODM0NCwgNC4wMzgwNywgNS4wMzkxNyIsIFwKLSAgICAgICAgICAiMC4yNzg1MTYsIDAuMzI4MjAzLCAwLjc3OTIwMiwgMS41MzIyMSwgMi4yODQ3MSwgNC4wMzgxNSwgNS4wMzgyNiIsIFwKLSAgICAgICAgICAiMC4yODAyMTIsIDAuMzI5Njc4LCAwLjc3OTE3MiwgMS41MzE0OCwgMi4yODM0NCwgNC4wMzc2NCwgNS4wMzc4MyIsIFwKLSAgICAgICAgICAiMC4yODUzNTksIDAuMzMzMzcxLCAwLjc3OTQyMywgMS41MzE5MSwgMi4yODM0OCwgNC4wMzg1NCwgNS4wMzczIiwgXAotICAgICAgICAgICIwLjI5MDc1OSwgMC4zMzg2MTUsIDAuNzc5Nzg2LCAxLjUzMTM3LCAyLjI4MzY2LCA0LjAzNzkzLCA1LjA0MDQ3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE1NDgwMiwgMC4xODEzODIsIDAuNDIwNjMxLCAwLjgxOTY3LCAxLjIxODE3LCAyLjE0ODQ1LCAyLjY3OTcyIiwgXAotICAgICAgICAgICIwLjE2MzM2NCwgMC4xODk5MDYsIDAuNDI5NDAxLCAwLjgyNzg3NywgMS4yMjY5NCwgMi4xNTc5MywgMi42ODg5IiwgXAotICAgICAgICAgICIwLjE3MzE5OCwgMC4xOTk4OTgsIDAuNDM5MTI0LCAwLjgzODI3NCwgMS4yMzY2NSwgMi4xNjc3LCAyLjY5ODQ4IiwgXAotICAgICAgICAgICIwLjE4MzAxOCwgMC4yMDk2MTksIDAuNDQ5MDEyLCAwLjg0Nzc1NywgMS4yNDY0MSwgMi4xNzcwMiwgMi43MDg1NSIsIFwKLSAgICAgICAgICAiMC4xOTI3ODQsIDAuMjE5NDIxLCAwLjQ1ODg1MiwgMC44NTgyMTUsIDEuMjU3MzEsIDIuMTg3NCwgMi43MTc0NyIsIFwKLSAgICAgICAgICAiMC4yMDg2MzYsIDAuMjM0OTYsIDAuNDc0MDU1LCAwLjg3MzQxMSwgMS4yNzIxOCwgMi4yMDIyNSwgMi43MzQ0MiIsIFwKLSAgICAgICAgICAiMC4yMjE5MjEsIDAuMjQ4NzA1LCAwLjQ4ODYxOSwgMC44ODc0OTksIDEuMjg2MTcsIDIuMjE3NCwgMi43NDc4MSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yOTc2ODUsIDAuMzUxNzUyLCAwLjgzNjY2OCwgMS42NDUzMSwgMi40NTI2MiwgNC4zMzg3NSwgNS40MTc1NyIsIFwKLSAgICAgICAgICAiMC4yOTc3MTIsIDAuMzUxNTYyLCAwLjgzNzE2NywgMS42NDUyOCwgMi40NTI1NiwgNC4zMzk2LCA1LjQxNTQ1IiwgXAotICAgICAgICAgICIwLjI5NzY4NiwgMC4zNTE1OTQsIDAuODM3MzE5LCAxLjY0NTE5LCAyLjQ1MzMsIDQuMzM4MDMsIDUuNDE3MDQiLCBcCi0gICAgICAgICAgIjAuMjk4MzY5LCAwLjM1MTkxMSwgMC44MzY2NzQsIDEuNjQ1NDEsIDIuNDUzODksIDQuMzM4MTgsIDUuNDE2NDEiLCBcCi0gICAgICAgICAgIjAuMzAwMDcyLCAwLjM1MzE5NiwgMC44MzY2MzUsIDEuNjQ0OTgsIDIuNDUzODYsIDQuMzM4MSwgNS40MTgwMSIsIFwKLSAgICAgICAgICAiMC4zMDQ5ODIsIDAuMzU2ODc1LCAwLjgzNjcxMywgMS42NDUwOCwgMi40NTI2NCwgNC4zNDExMiwgNS40MTU2MiIsIFwKLSAgICAgICAgICAiMC4zMTAwMjgsIDAuMzYxNTk5LCAwLjgzNzM4MiwgMS42NDQ4OCwgMi40NTI2LCA0LjMzODEsIDUuNDE4MSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNDkxNzksIDAuMTc0Njc3LCAwLjQwMzgzMSwgMC43ODUzNywgMS4xNjYzNCwgMi4wNTY0MiwgMi41NjUyIiwgXAotICAgICAgICAgICIwLjE1ODE3NSwgMC4xODM3LCAwLjQxMjczOSwgMC43OTQxNjMsIDEuMTc1OTYsIDIuMDY2MzYsIDIuNTc0MTciLCBcCi0gICAgICAgICAgIjAuMTY5MTYzLCAwLjE5NDY4NiwgMC40MjM1OTEsIDAuODA1MzYzLCAxLjE4NjczLCAyLjA3NjA5LCAyLjU4NTM0IiwgXAotICAgICAgICAgICIwLjE4MDAyNSwgMC4yMDU1MzUsIDAuNDM0NjY2LCAwLjgxNjUyMywgMS4xOTgyNywgMi4wODgwMiwgMi41OTY2NSIsIFwKLSAgICAgICAgICAiMC4xOTA4NjMsIDAuMjE2NSwgMC40NDU2MjUsIDAuODI3MTQ1LCAxLjIwODQzLCAyLjA5ODc1LCAyLjYwNzU4IiwgXAotICAgICAgICAgICIwLjIwODQxMiwgMC4yMzM2NTMsIDAuNDYzMTUzLCAwLjg0NDY0MywgMS4yMjYwNSwgMi4xMTU4LCAyLjYyNTI2IiwgXAotICAgICAgICAgICIwLjIyNDAzLCAwLjI0OTA5NywgMC40Nzg2MzcsIDAuODYwMTg1LCAxLjI0MTYxLCAyLjEzMTU5LCAyLjYzOTY2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI3NzQ5OSwgMC4zMjc1MTEsIDAuNzc4OTMsIDEuNTMxNzQsIDIuMjgyNjcsIDQuMDM4MDcsIDUuMDM5MDciLCBcCi0gICAgICAgICAgIjAuMjc3Mzg4LCAwLjMyNzU5NSwgMC43Nzg3MjUsIDEuNTMxMjYsIDIuMjgzNDUsIDQuMDM2OSwgNS4wMzg2IiwgXAotICAgICAgICAgICIwLjI3NzQyMywgMC4zMjc0OTgsIDAuNzc4OTU0LCAxLjUzMTU2LCAyLjI4MzExLCA0LjAzNzEyLCA1LjAzODUzIiwgXAotICAgICAgICAgICIwLjI3Nzk1NywgMC4zMjc4MzQsIDAuNzc4NjE3LCAxLjUzMTMyLCAyLjI4Mzc2LCA0LjAzNzQsIDUuMDM3OTEiLCBcCi0gICAgICAgICAgIjAuMjc5NzgzLCAwLjMyOTA4MiwgMC43Nzg2MzcsIDEuNTMxMDgsIDIuMjgyOTcsIDQuMDM2NDIsIDUuMDQwMjIiLCBcCi0gICAgICAgICAgIjAuMjg0OTM0LCAwLjMzMjkwMiwgMC43Nzg3NjMsIDEuNTMwODksIDIuMjgyOTIsIDQuMDM2MjIsIDUuMDM5OTkiLCBcCi0gICAgICAgICAgIjAuMjkwOTQ4LCAwLjMzNzgxLCAwLjc3OTIzLCAxLjUzMDg3LCAyLjI4Mjk0LCA0LjAzNzUxLCA1LjAzODI0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlMwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNjUyOSwgMC4xOTE3NjEsIDAuNDMwODc2LCAwLjgyOTg2OCwgMS4yMjg4MiwgMi4xNTkxOCwgMi42ODkxOCIsIFwKLSAgICAgICAgICAiMC4xNzU0MzYsIDAuMjAxOTIyLCAwLjQ0MTAwNywgMC44Mzk5NjcsIDEuMjM4NDgsIDIuMTY5MiwgMi43MDA3MyIsIFwKLSAgICAgICAgICAiMC4xODcwNTgsIDAuMjEzNTM3LCAwLjQ1MjgwOCwgMC44NTE0NDYsIDEuMjUwNDIsIDIuMTgxNTIsIDIuNzExODkiLCBcCi0gICAgICAgICAgIjAuMTk2NjAzLCAwLjIyMzExLCAwLjQ2MjEyMywgMC44NjA3OTQsIDEuMjU5NzEsIDIuMTg5ODEsIDIuNzIxNjIiLCBcCi0gICAgICAgICAgIjAuMjA0NjE3LCAwLjIzMTA1LCAwLjQ3MDIyMiwgMC44Njg1NDksIDEuMjY3NjksIDIuMTk4NzYsIDIuNzI4OCIsIFwKLSAgICAgICAgICAiMC4yMTU1MjUsIDAuMjQyMDYyLCAwLjQ4MDk5OSwgMC44Nzk1MjQsIDEuMjc4MjgsIDIuMjA4NzUsIDIuNzM5NjQiLCBcCi0gICAgICAgICAgIjAuMjIzOTg5LCAwLjI1MDQwOCwgMC40ODkzODUsIDAuODg3OTA0LCAxLjI4NjY3LCAyLjIxODI3LCAyLjc0NzY4Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI5NzcxNSwgMC4zNTE1NTgsIDAuODM3MzgzLCAxLjY0NDk4LCAyLjQ1MzQ1LCA0LjMzODA1LCA1LjQxNDc2IiwgXAotICAgICAgICAgICIwLjI5NzcyLCAwLjM1MTc3LCAwLjgzNjc5NCwgMS42NDQ5NCwgMi40NTM1OSwgNC4zMzkzLCA1LjQxNTU4IiwgXAotICAgICAgICAgICIwLjI5NzcxMSwgMC4zNTE1ODQsIDAuODM3MDQ0LCAxLjY0NDksIDIuNDUzMzQsIDQuMzM5MzMsIDUuNDE1NzgiLCBcCi0gICAgICAgICAgIjAuMjk3NzM4LCAwLjM1MTcwMSwgMC44MzY4NDIsIDEuNjQ1MDMsIDIuNDUyOTYsIDQuMzM4MzQsIDUuNDE1NiIsIFwKLSAgICAgICAgICAiMC4yOTc0MTQsIDAuMzUxNDc0LCAwLjgzNzMxLCAxLjY0NTIxLCAyLjQ1MzIyLCA0LjMzODQ2LCA1LjQxNzc2IiwgXAotICAgICAgICAgICIwLjI5NzE5LCAwLjM1MTEsIDAuODM2NjM0LCAxLjY0NTIxLCAyLjQ1MzQyLCA0LjMzODMzLCA1LjQxODY3IiwgXAotICAgICAgICAgICIwLjI5NzA2MSwgMC4zNTA4OTMsIDAuODM2NTMsIDEuNjQ1MTcsIDIuNDUyOTUsIDQuMzM5MDYsIDUuNDE0Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE2MTIxMywgMC4xODY2MzksIDAuNDE1NDI5LCAwLjc5NjcxMiwgMS4xNzgzNywgMi4wNjgxOCwgMi41NzY2MSIsIFwKLSAgICAgICAgICAiMC4xNzEwMjYsIDAuMTk2NDIzLCAwLjQyNTE4MywgMC44MDY2MzcsIDEuMTg4MiwgMi4wNzgwMiwgMi41ODY1NyIsIFwKLSAgICAgICAgICAiMC4xODIwNDIsIDAuMjA3NDI5LCAwLjQzNjIyMSwgMC44MTc4MTEsIDEuMTk5NTQsIDIuMDg5NjgsIDIuNTk3NDEiLCBcCi0gICAgICAgICAgIjAuMTkwODI0LCAwLjIxNjIzNSwgMC40NDQ5NTEsIDAuODI2MDA2LCAxLjIwNzcsIDIuMDk3NDcsIDIuNjA1OTYiLCBcCi0gICAgICAgICAgIjAuMTk4MjQ3LCAwLjIyMzYyMiwgMC40NTIyMzIsIDAuODMzOTUxLCAxLjIxNDc5LCAyLjEwNTI0LCAyLjYxMzY2IiwgXAotICAgICAgICAgICIwLjIwNzkzLCAwLjIzMzMxNCwgMC40NjIxMzQsIDAuODQzMzU2LCAxLjIyNDYzLCAyLjExNTA5LCAyLjYyMzI4IiwgXAotICAgICAgICAgICIwLjIxNTQwNiwgMC4yNDA3ODgsIDAuNDY5NDIzLCAwLjg1MDY4OCwgMS4yMzIxMSwgMi4xMjI3NCwgMi42MzAxNCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yNzc5MDYsIDAuMzI4MTE5LCAwLjc3OTEzMSwgMS41MzEwMiwgMi4yODM5OCwgNC4wMzcwNywgNS4wMzk4NCIsIFwKLSAgICAgICAgICAiMC4yNzc4OTQsIDAuMzI4MDcxLCAwLjc3OTExNiwgMS41MzE0NCwgMi4yODM5NCwgNC4wMzY4NCwgNS4wMzgwOCIsIFwKLSAgICAgICAgICAiMC4yNzc5NjUsIDAuMzI4MjMxLCAwLjc3OTUzNywgMS41MzE2OCwgMi4yODQwNSwgNC4wMzc0NywgNS4wMzg4OCIsIFwKLSAgICAgICAgICAiMC4yNzgxMTgsIDAuMzI4MTE4LCAwLjc3OTE3MywgMS41MzEzOSwgMi4yODM4MywgNC4wMzYyNywgNS4wNDAxNyIsIFwKLSAgICAgICAgICAiMC4yNzc2NDksIDAuMzI3NzQ2LCAwLjc3OTQ5MiwgMS41MzIwMiwgMi4yODM0NiwgNC4wMzc1MSwgNS4wMzkxOCIsIFwKLSAgICAgICAgICAiMC4yNzczLCAwLjMyNzUzMSwgMC43NzkzNjgsIDEuNTMxNTQsIDIuMjgzNTMsIDQuMDM3NjYsIDUuMDM4NTciLCBcCi0gICAgICAgICAgIjAuMjc3MDUsIDAuMzI3MzU5LCAwLjc3ODg1NiwgMS41MzEzOSwgMi4yODM1OSwgNC4wMzgwMywgNS4wNDAwNCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTQ4NDc2LCAwLjE3NTA2NSwgMC40MTQ0LCAwLjgxMzA0NCwgMS4yMTI1NCwgMi4xNDI3MiwgMi42NzI4OSIsIFwKLSAgICAgICAgICAiMC4xNTc0ODgsIDAuMTg0MDc2LCAwLjQyMzUzMiwgMC44MjIyMzksIDEuMjIxMTQsIDIuMTUwNCwgMi42ODI1MiIsIFwKLSAgICAgICAgICAiMC4xNjg5MzUsIDAuMTk1NTkyLCAwLjQzNTI0OSwgMC44MzM1ODgsIDEuMjMyMjIsIDIuMTYyODIsIDIuNjk0MDciLCBcCi0gICAgICAgICAgIjAuMTgwNDAyLCAwLjIwNzA3MSwgMC40NDY0MzQsIDAuODQ1NjE3LCAxLjI0MzkxLCAyLjE3NTEzLCAyLjcwNTAzIiwgXAotICAgICAgICAgICIwLjE5MTk1MSwgMC4yMTg1OTYsIDAuNDU4MDE5LCAwLjg1Njg2NywgMS4yNTUzMywgMi4xODYxLCAyLjcxNzkyIiwgXAotICAgICAgICAgICIwLjIxMDQzNCwgMC4yMzcwMjgsIDAuNDc2MjY1LCAwLjg3NTEyMiwgMS4yNzQwNywgMi4yMDM4NCwgMi43MzU1OSIsIFwKLSAgICAgICAgICAiMC4yMjY2NDgsIDAuMjUzMjMsIDAuNDkyNTY3LCAwLjg5MTIyNCwgMS4yODk4NSwgMi4yMjA5NSwgMi43NTE4NiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yOTc2MDUsIDAuMzUxNjM5LCAwLjgzNjc4NCwgMS42NDUyOCwgMi40NTM0MywgNC4zMzc5NiwgNS40MTg3NiIsIFwKLSAgICAgICAgICAiMC4yOTc1MzMsIDAuMzUxNTM5LCAwLjgzNjY5OCwgMS42NDU0NywgMi40NTI2OSwgNC4zMzk1NCwgNS40MTczIiwgXAotICAgICAgICAgICIwLjI5NzU2MiwgMC4zNTE2MDcsIDAuODM3MTg3LCAxLjY0NTA1LCAyLjQ1MzM3LCA0LjMzODEsIDUuNDE3NSIsIFwKLSAgICAgICAgICAiMC4yOTg5NTcsIDAuMzUyMDE1LCAwLjgzNjk1NSwgMS42NDU0OSwgMi40NTM3NywgNC4zMzg2LCA1LjQxODY4IiwgXAotICAgICAgICAgICIwLjMwMjE5MiwgMC4zNTQzMTYsIDAuODM3MjQ0LCAxLjY0NTQ1LCAyLjQ1MjUsIDQuMzM5NjIsIDUuNDE1NDYiLCBcCi0gICAgICAgICAgIjAuMzA5ODkzLCAwLjM2MDgwMSwgMC44MzY0OCwgMS42NDUxNCwgMi40NTI1NywgNC4zNDAwMiwgNS40MTczOSIsIFwKLSAgICAgICAgICAiMC4zMTgyNzcsIDAuMzY4MTkxLCAwLjgzNzU1NSwgMS42NDU1LCAyLjQ1MjQ2LCA0LjMzNzk2LCA1LjQxNjEyIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE0MzU5MiwgMC4xNjkwNDMsIDAuMzk4MDI0LCAwLjc3OTAyNiwgMS4xNjEyLCAyLjA1MTE4LCAyLjU1OTQ5IiwgXAotICAgICAgICAgICIwLjE1MzAwNywgMC4xNzg0NzUsIDAuNDA3NTIxLCAwLjc4ODk3NiwgMS4xNzAzNywgMi4wNTk5NywgMi41NjkxNyIsIFwKLSAgICAgICAgICAiMC4xNjQ2NDEsIDAuMTkwMTIxLCAwLjQxOTIwNiwgMC44MDA3ODUsIDEuMTgyNTMsIDIuMDcyNTksIDIuNTgwODkiLCBcCi0gICAgICAgICAgIjAuMTc2MzQ2LCAwLjIwMjAwOSwgMC40MzEyNjksIDAuODEyNjI0LCAxLjE5NDU0LCAyLjA4NDcyLCAyLjU5MzQxIiwgXAotICAgICAgICAgICIwLjE4ODMyMSwgMC4yMTM4NSwgMC40NDI5NzcsIDAuODI0NTAxLCAxLjIwNTc4LCAyLjA5NjM5LCAyLjYwNDkyIiwgXAotICAgICAgICAgICIwLjIwNzM2NSwgMC4yMzI4NDMsIDAuNDYyMDM4LCAwLjg0MzY4MSwgMS4yMjQ4NywgMi4xMTQ2MSwgMi42MjM3MSIsIFwKLSAgICAgICAgICAiMC4yMjQyLCAwLjI0OTY0MSwgMC40Nzg2NDgsIDAuODYwMzU2LCAxLjI0MTQ2LCAyLjEzMTYyLCAyLjY0MDY1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI3NzE0OCwgMC4zMjc0MTYsIDAuNzc4OTYzLCAxLjUzMDAzLCAyLjI4MzA3LCA0LjAzNjU3LCA1LjA0MDIxIiwgXAotICAgICAgICAgICIwLjI3NzExNywgMC4zMjc1MzksIDAuNzc4OTQ5LCAxLjUzMTAzLCAyLjI4MzExLCA0LjAzNzEsIDUuMDM5NDYiLCBcCi0gICAgICAgICAgIjAuMjc3MDMxLCAwLjMyNzQ4NywgMC43Nzg5NTQsIDEuNTMxMTIsIDIuMjgzNjEsIDQuMDM2NjMsIDUuMDM4NzMiLCBcCi0gICAgICAgICAgIjAuMjc4NTM5LCAwLjMyNzg5MywgMC43Nzg5NTIsIDEuNTMwOTUsIDIuMjgzMjcsIDQuMDM3MzMsIDUuMDM5MjUiLCBcCi0gICAgICAgICAgIjAuMjgxNzAzLCAwLjMzMDI1MiwgMC43Nzg2NDQsIDEuNTMxMDUsIDIuMjgyODgsIDQuMDM2ODgsIDUuMDM5NjkiLCBcCi0gICAgICAgICAgIjAuMjg5MjA4LCAwLjMzNjYsIDAuNzc4NTg1LCAxLjUzMTQ0LCAyLjI4Mjk3LCA0LjAzNTI5LCA1LjAzOTMzIiwgXAotICAgICAgICAgICIwLjI5NzQxOCwgMC4zNDM4MjIsIDAuNzc5NjI1LCAxLjUzMTE1LCAyLjI4Mjg3LCA0LjAzODAxLCA1LjAzNzYxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxNDk3LCAwLjAwMTQ5OCwgMC4wMDE0OTgsIDAuMDAxNDk4LCAwLjAwMTQ5NywgMC4wMDE0OTcsIDAuMDAxNDk3IiwgXAotICAgICAgICAgICIwLjAwMTQ5MywgMC4wMDE0OTMsIDAuMDAxNDk2LCAwLjAwMTQ5MywgMC4wMDE0OTUsIDAuMDAxNDk0LCAwLjAwMTQ5NCIsIFwKLSAgICAgICAgICAiMC4wMDE0OSwgMC4wMDE0OTEsIDAuMDAxNDkzLCAwLjAwMTQ5NCwgMC4wMDE0OTQsIDAuMDAxNDk0LCAwLjAwMTQ5MyIsIFwKLSAgICAgICAgICAiMC4wMDE0ODgsIDAuMDAxNDg5LCAwLjAwMTQ5MiwgMC4wMDE0OTMsIDAuMDAxNDkzLCAwLjAwMTQ5MywgMC4wMDE0OTMiLCBcCi0gICAgICAgICAgIjAuMDAxNDg3LCAwLjAwMTQ4OCwgMC4wMDE0OTIsIDAuMDAxNDkzLCAwLjAwMTQ5MywgMC4wMDE0OTMsIDAuMDAxNDkzIiwgXAotICAgICAgICAgICIwLjAwMTQ4NiwgMC4wMDE0ODcsIDAuMDAxNDksIDAuMDAxNDkzLCAwLjAwMTQ5MywgMC4wMDE0OTMsIDAuMDAxNDkzIiwgXAotICAgICAgICAgICIwLjAwMTQ4NywgMC4wMDE0ODcsIDAuMDAxNDkxLCAwLjAwMTQ5MiwgMC4wMDE0OTMsIDAuMDAxNDkzLCAwLjAwMTQ5MyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDUzNCwgMC4wMDA1MzQsIDAuMDAwNTM0LCAwLjAwMDUzNCwgMC4wMDA1MzQsIDAuMDAwNTMzLCAwLjAwMDUzMyIsIFwKLSAgICAgICAgICAiMC4wMDA1MjQsIDAuMDAwNTI1LCAwLjAwMDUyNiwgMC4wMDA1MjcsIDAuMDAwNTI3LCAwLjAwMDUyNywgMC4wMDA1MjYiLCBcCi0gICAgICAgICAgIjAuMDAwNTIsIDAuMDAwNTIsIDAuMDAwNTI0LCAwLjAwMDUyNSwgMC4wMDA1MjUsIDAuMDAwNTI1LCAwLjAwMDUyNSIsIFwKLSAgICAgICAgICAiMC4wMDA1MTYsIDAuMDAwNTE4LCAwLjAwMDUyMiwgMC4wMDA1MjQsIDAuMDAwNTI1LCAwLjAwMDUyNSwgMC4wMDA1MjUiLCBcCi0gICAgICAgICAgIjAuMDAwNTE0LCAwLjAwMDUxNiwgMC4wMDA1MjEsIDAuMDAwNTIzLCAwLjAwMDUyNCwgMC4wMDA1MjQsIDAuMDAwNTI0IiwgXAotICAgICAgICAgICIwLjAwMDUxMiwgMC4wMDA1MTQsIDAuMDAwNTIsIDAuMDAwNTIzLCAwLjAwMDUyMywgMC4wMDA1MjQsIDAuMDAwNTI0IiwgXAotICAgICAgICAgICIwLjAwMDUxMiwgMC4wMDA1MTMsIDAuMDAwNTE5LCAwLjAwMDUyMiwgMC4wMDA1MjMsIDAuMDAwNTIzLCAwLjAwMDUyNCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTY0MSwgMC4wMDE2NDEsIDAuMDAxNjQxLCAwLjAwMTY0MSwgMC4wMDE2NDEsIDAuMDAxNjQsIDAuMDAxNjQiLCBcCi0gICAgICAgICAgIjAuMDAxNjM2LCAwLjAwMTYzNywgMC4wMDE2MzgsIDAuMDAxNjM4LCAwLjAwMTYzOCwgMC4wMDE2MzgsIDAuMDAxNjM3IiwgXAotICAgICAgICAgICIwLjAwMTYzNCwgMC4wMDE2MzQsIDAuMDAxNjM2LCAwLjAwMTYzNywgMC4wMDE2MzgsIDAuMDAxNjM3LCAwLjAwMTYzNyIsIFwKLSAgICAgICAgICAiMC4wMDE2MzIsIDAuMDAxNjMzLCAwLjAwMTYzNSwgMC4wMDE2MzYsIDAuMDAxNjM3LCAwLjAwMTYzNywgMC4wMDE2MzciLCBcCi0gICAgICAgICAgIjAuMDAxNjMsIDAuMDAxNjMxLCAwLjAwMTYzNSwgMC4wMDE2MzYsIDAuMDAxNjM3LCAwLjAwMTYzNywgMC4wMDE2MzYiLCBcCi0gICAgICAgICAgIjAuMDAxNjMsIDAuMDAxNjMxLCAwLjAwMTYzMywgMC4wMDE2MzYsIDAuMDAxNjM2LCAwLjAwMTYzNiwgMC4wMDE2MzYiLCBcCi0gICAgICAgICAgIjAuMDAxNjMsIDAuMDAxNjMxLCAwLjAwMTYzNCwgMC4wMDE2MzYsIDAuMDAxNjM2LCAwLjAwMTYzNiwgMC4wMDE2MzYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDAzNSwgMC4wMDAzNSwgMC4wMDAzNSwgMC4wMDAzNSwgMC4wMDAzNSwgMC4wMDAzNDksIDAuMDAwMzQ5IiwgXAotICAgICAgICAgICIwLjAwMDM0LCAwLjAwMDM0MSwgMC4wMDAzNDIsIDAuMDAwMzQzLCAwLjAwMDM0MywgMC4wMDAzNDMsIDAuMDAwMzQyIiwgXAotICAgICAgICAgICIwLjAwMDMzNSwgMC4wMDAzMzYsIDAuMDAwMzQsIDAuMDAwMzQxLCAwLjAwMDM0MSwgMC4wMDAzNDEsIDAuMDAwMzQxIiwgXAotICAgICAgICAgICIwLjAwMDMzMiwgMC4wMDAzMzQsIDAuMDAwMzM4LCAwLjAwMDM0LCAwLjAwMDM0MSwgMC4wMDAzNDEsIDAuMDAwMzQxIiwgXAotICAgICAgICAgICIwLjAwMDMzLCAwLjAwMDMzMiwgMC4wMDAzMzcsIDAuMDAwMzM5LCAwLjAwMDM0LCAwLjAwMDM0LCAwLjAwMDM0IiwgXAotICAgICAgICAgICIwLjAwMDMyOSwgMC4wMDAzMywgMC4wMDAzMzYsIDAuMDAwMzM4LCAwLjAwMDMzOSwgMC4wMDAzNCwgMC4wMDAzNCIsIFwKLSAgICAgICAgICAiMC4wMDAzMjgsIDAuMDAwMzMsIDAuMDAwMzM1LCAwLjAwMDMzOCwgMC4wMDAzMzksIDAuMDAwMzQsIDAuMDAwMzQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTMCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxMjYyLCAwLjAwMTI2LCAwLjAwMTI1MSwgMC4wMDEyNDksIDAuMDAxMjQ2LCAwLjAwMTI0NSwgMC4wMDEyNDYiLCBcCi0gICAgICAgICAgIjAuMDAxMjQzLCAwLjAwMTI0LCAwLjAwMTIyOCwgMC4wMDEyMjMsIDAuMDAxMjIxLCAwLjAwMTIxOSwgMC4wMDEyMTgiLCBcCi0gICAgICAgICAgIjAuMDAxMjUyLCAwLjAwMTI0OSwgMC4wMDEyMzQsIDAuMDAxMjIyLCAwLjAwMTIxOSwgMC4wMDEyMTYsIDAuMDAxMjE1IiwgXAotICAgICAgICAgICIwLjAwMTI1NywgMC4wMDEyNTMsIDAuMDAxMjM3LCAwLjAwMTIzLCAwLjAwMTIyNiwgMC4wMDEyMjQsIDAuMDAxMjIzIiwgXAotICAgICAgICAgICIwLjAwMTI3MywgMC4wMDEyNjgsIDAuMDAxMjUyLCAwLjAwMTI0MywgMC4wMDEyMzksIDAuMDAxMjM2LCAwLjAwMTIzNCIsIFwKLSAgICAgICAgICAiMC4wMDEzMDEsIDAuMDAxMjk4LCAwLjAwMTI4LCAwLjAwMTI3MSwgMC4wMDEyNjcsIDAuMDAxMjYxLCAwLjAwMTI2IiwgXAotICAgICAgICAgICIwLjAwMTMyNCwgMC4wMDEzMjUsIDAuMDAxMzEsIDAuMDAxMjk1LCAwLjAwMTI5NCwgMC4wMDEyODUsIDAuMDAxMjg4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyNTE1LCAwLjAwMjUxMywgMC4wMDI1MDMsIDAuMDAyNSwgMC4wMDI0OTgsIDAuMDAyNDk3LCAwLjAwMjQ5NiIsIFwKLSAgICAgICAgICAiMC4wMDI1MDIsIDAuMDAyNDk5LCAwLjAwMjQ4NywgMC4wMDI0ODIsIDAuMDAyNDgsIDAuMDAyNDc4LCAwLjAwMjQ3NyIsIFwKLSAgICAgICAgICAiMC4wMDI1MTMsIDAuMDAyNTA5LCAwLjAwMjQ5LCAwLjAwMjQ4MywgMC4wMDI0ODEsIDAuMDAyNDc4LCAwLjAwMjQ3NyIsIFwKLSAgICAgICAgICAiMC4wMDI1MTksIDAuMDAyNTE1LCAwLjAwMjUsIDAuMDAyNDkyLCAwLjAwMjQ4OSwgMC4wMDI0ODYsIDAuMDAyNDg1IiwgXAotICAgICAgICAgICIwLjAwMjUzNCwgMC4wMDI1MywgMC4wMDI1MTEsIDAuMDAyNTA0LCAwLjAwMjUsIDAuMDAyNDk2LCAwLjAwMjQ5NiIsIFwKLSAgICAgICAgICAiMC4wMDI1NjIsIDAuMDAyNTU4LCAwLjAwMjUzNywgMC4wMDI1MywgMC4wMDI1MjYsIDAuMDAyNTIyLCAwLjAwMjUyMSIsIFwKLSAgICAgICAgICAiMC4wMDI1ODYsIDAuMDAyNTgzLCAwLjAwMjU2NSwgMC4wMDI1NTIsIDAuMDAyNTQ4LCAwLjAwMjU0NCwgMC4wMDI1NDIiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IE1YSTNYMSAqCi0gKiAtLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKE1YSTNYMSkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjI0MzkxODsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjE2MjQzOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYxNDU3OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDYxNjI0MzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA5NDQsIDAuMDAwOTIzLCAwLjAwMDkxMywgMC4wMDA5MDgsIDAuMDAwOTA3LCAwLjAwMDkwOSwgMC4wMDA5MTQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDIxMDUsIDAuMDAyMDkzLCAwLjAwMjA4NywgMC4wMDIwODUsIDAuMDAyMDg0LCAwLjAwMjA4NSwgMC4wMDIwODciKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYxNDUyMzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MTMxODg7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjE0NTIzOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDIxNywgMC4wMDAyMiwgMC4wMDAyMjEsIDAuMDAwMjIxLCAwLjAwMDIyMSwgMC4wMDAyMjEsIDAuMDAwMjIyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjI5LCAwLjAwMDIyNywgMC4wMDAyMjcsIDAuMDAwMjI3LCAwLjAwMDIyNywgMC4wMDAyMjcsIDAuMDAwMjI3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihDKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA1OTkxNTE7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNTk4OTYzOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDU5OTE1MTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAzMDQsIDAuMDAwMjc4LCAwLjAwMDI3NSwgMC4wMDAyODUsIDAuMDAwMjk1LCAwLjAwMDMyMSwgMC4wMDAzNDYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDE1NDcsIDAuMDAxNTI3LCAwLjAwMTUyNCwgMC4wMDE1MzEsIDAuMDAxNTQ1LCAwLjAwMTU3MSwgMC4wMDE1OTMiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFMwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDEyMjQ2ODsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDEyMjQyOTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDEyMjQ2ODsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxOTYsIDAuMDAwMTY4LCAwLjAwMDE3MywgMC4wMDAxODYsIDAuMDAwMTksIDAuMDAwMjE4LCAwLjAwMDI0NCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTk2LCAwLjAwMTk0LCAwLjAwMTkzOCwgMC4wMDE5NDcsIDAuMDAxOTU4LCAwLjAwMTk4NCwgMC4wMDIwMDciKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFMxKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDEyNDEyMTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDEyNDA2OTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDEyNDEyMTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyNjksIDAuMDAwMjQyLCAwLjAwMDI0NCwgMC4wMDAyNDYsIDAuMDAwMjU2LCAwLjAwMDI3OSwgMC4wMDAzMDUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDIxNjgsIDAuMDAyMTQ3LCAwLjAwMjE0NywgMC4wMDIxNTQsIDAuMDAyMTY2LCAwLjAwMjE4NSwgMC4wMDIyMDciKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4yNTY5ODsKLSAgICBmdW5jdGlvbiA6ICIoISgoUzEgQykgKyAoIVMxICgoUzAgQikgKyAoIVMwIEEpKSkpKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTQxMTYxLCAwLjE2NjA0MiwgMC4zMDU0MywgMC40MjgyMzksIDAuNTkxODk5LCAwLjkxOTIxLCAxLjEyMzc2IiwgXAotICAgICAgICAgICIwLjE0OTkyNiwgMC4xNzQ4MDksIDAuMzE0MTk3LCAwLjQzNzAwOCwgMC42MDA2NzcsIDAuOTI3OTc3LCAxLjEzMjUzIiwgXAotICAgICAgICAgICIwLjE1OTgyOCwgMC4xODQ3MDQsIDAuMzI0MDkyLCAwLjQ0NjkwMSwgMC42MTA1NTQsIDAuOTM3ODczLCAxLjE0MjQyIiwgXAotICAgICAgICAgICIwLjE2OTA3OCwgMC4xOTM5NjEsIDAuMzMzMzUsIDAuNDU2MTY0LCAwLjYxOTg2MSwgMC45NDcwODMsIDEuMTUxNjciLCBcCi0gICAgICAgICAgIjAuMTc3NDM3LCAwLjIwMjMwNywgMC4zNDE2OTgsIDAuNDY0NTMyLCAwLjYyODE1NywgMC45NTU0ODMsIDEuMTYwMDEiLCBcCi0gICAgICAgICAgIjAuMTg5MDc0LCAwLjIxMzk0NSwgMC4zNTMzMjMsIDAuNDc2MTM5LCAwLjYzOTc4OSwgMC45NjcwOCwgMS4xNzE2MyIsIFwKLSAgICAgICAgICAiMC4xOTgxMTMsIDAuMjIzMDAzLCAwLjM2MjM4NywgMC40ODUyMDgsIDAuNjQ4ODQ4LCAwLjk3NjEzNSwgMS4xODA3NCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTU5OTYsIDAuMTQ0ODk3LCAwLjQyODgxMywgMC42ODIwMTMsIDEuMDE4MTMsIDEuNjkxNzQsIDIuMTEyODMiLCBcCi0gICAgICAgICAgIjAuMDk1OTk0LCAwLjE0NDg5NiwgMC40Mjg4MDcsIDAuNjgyMDE0LCAxLjAxNzk2LCAxLjY5MTczLCAyLjExMjc5IiwgXAotICAgICAgICAgICIwLjA5NTk5NywgMC4xNDQ4OTYsIDAuNDI4ODE4LCAwLjY4MjAyLCAxLjAxODg1LCAxLjY5MTc1LCAyLjExMjc5IiwgXAotICAgICAgICAgICIwLjA5NTk5MywgMC4xNDQ4OTcsIDAuNDI4Nzk0LCAwLjY4MjAxNSwgMS4wMTkyOSwgMS42OTM3LCAyLjExMjcyIiwgXAotICAgICAgICAgICIwLjA5NTk5MSwgMC4xNDQ4OTYsIDAuNDI4ODI0LCAwLjY4MjA3NywgMS4wMTg4MiwgMS42OTA1OSwgMi4xMTI3NyIsIFwKLSAgICAgICAgICAiMC4wOTYwNzQsIDAuMTQ0OTgyLCAwLjQyODczOCwgMC42ODE5MjMsIDEuMDE4MTIsIDEuNjkzNTksIDIuMTEzMDMiLCBcCi0gICAgICAgICAgIjAuMDk2MDA5LCAwLjE0NDkwNiwgMC40MjkyODEsIDAuNjgxOTMzLCAxLjAxODA3LCAxLjY5MTg2LCAyLjExNTIyIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE0MzIyNSwgMC4xNjg0NTIsIDAuMzA5MDI1LCAwLjQzMjgyMywgMC41OTc4MTcsIDAuOTI3NzgzLCAxLjEzMzk4IiwgXAotICAgICAgICAgICIwLjE1MTk5MiwgMC4xNzcyMTYsIDAuMzE3Nzk1LCAwLjQ0MTYwMSwgMC42MDY1ODYsIDAuOTM2NTUyLCAxLjE0Mjc0IiwgXAotICAgICAgICAgICIwLjE2MjY2NCwgMC4xODc4ODksIDAuMzI4NDY4LCAwLjQ1MjI1OCwgMC42MTcyNjEsIDAuOTQ3MjE4LCAxLjE1MzQxIiwgXAotICAgICAgICAgICIwLjE3MjgyMywgMC4xOTgwODEsIDAuMzM4NjU0LCAwLjQ2MjQ4NiwgMC42Mjc1MzIsIDAuOTU3NDQxLCAxLjE2MzYiLCBcCi0gICAgICAgICAgIjAuMTgyMjQ4LCAwLjIwNzUwNywgMC4zNDgwOTEsIDAuNDcxOTE3LCAwLjYzNjg3MywgMC45NjY4MTgsIDEuMTczMDciLCBcCi0gICAgICAgICAgIjAuMTk1NDgzLCAwLjIyMDcxNywgMC4zNjEyODYsIDAuNDg1MTE1LCAwLjY1MDE2MSwgMC45ODAwMjgsIDEuMTg2MjUiLCBcCi0gICAgICAgICAgIjAuMjA1OTg4LCAwLjIzMTI2MywgMC4zNzE4MjksIDAuNDk1NjU4LCAwLjY2MDYzMiwgMC45OTA1NjYsIDEuMTk2NzciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk1NjYsIDAuMTQzODIxLCAwLjQyMzAzMywgMC42NzIyMSwgMS4wMDU1MSwgMS42Njg4MiwgMi4wODM3MSIsIFwKLSAgICAgICAgICAiMC4wOTU2OTcsIDAuMTQzNzM4LCAwLjQyMzcyNiwgMC42NzI4OTMsIDEuMDA1NDQsIDEuNjY4NzMsIDIuMDgzNDQiLCBcCi0gICAgICAgICAgIjAuMDk1Njk2LCAwLjE0MzczOSwgMC40MjMwMDIsIDAuNjcyODAyLCAxLjAwNTQ0LCAxLjY2ODQ1LCAyLjA4MzQ0IiwgXAotICAgICAgICAgICIwLjA5NTYyOCwgMC4xNDM4MjMsIDAuNDIzNTA2LCAwLjY3MjY0MSwgMS4wMDM0LCAxLjY2NzI1LCAyLjA4MzQ2IiwgXAotICAgICAgICAgICIwLjA5NTcwNSwgMC4xNDM3NDYsIDAuNDIzODA0LCAwLjY3MjY2LCAxLjAwNDkxLCAxLjY2ODA5LCAyLjA4NzIxIiwgXAotICAgICAgICAgICIwLjA5NTc4MywgMC4xNDM3ODIsIDAuNDIzMjE1LCAwLjY3MjY1NCwgMS4wMDUwOCwgMS42NjgwNCwgMi4wODM4MiIsIFwKLSAgICAgICAgICAiMC4wOTU2OTksIDAuMTQzNzYsIDAuNDIzMDI5LCAwLjY3MjY4NCwgMS4wMDM3NCwgMS42Njc5MSwgMi4wODM0OSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNDA3MjYsIDAuMTY1NjA3LCAwLjMwNDk5NSwgMC40Mjc4MDUsIDAuNTkxNDcsIDAuOTE4NzczLCAxLjEyMzMzIiwgXAotICAgICAgICAgICIwLjE0OTE0NCwgMC4xNzQwMjYsIDAuMzEzNDE0LCAwLjQzNjIyNSwgMC41OTk4OTUsIDAuOTI3MTkzLCAxLjEzMTc1IiwgXAotICAgICAgICAgICIwLjE1ODgwNSwgMC4xODM2NzcsIDAuMzIzMDY0LCAwLjQ0NTg3MiwgMC42MDk1MzIsIDAuOTM2ODQ1LCAxLjE0MTM5IiwgXAotICAgICAgICAgICIwLjE2Nzg5MywgMC4xOTI3NjMsIDAuMzMyMTUxLCAwLjQ1NDk4NiwgMC42MTg2MDIsIDAuOTQ1OTM2LCAxLjE1MDQ3IiwgXAotICAgICAgICAgICIwLjE3NjEyNSwgMC4yMDA5OTEsIDAuMzQwMzg0LCAwLjQ2MzE4OSwgMC42MjY4NiwgMC45NTQxNjQsIDEuMTU4NzEiLCBcCi0gICAgICAgICAgIjAuMTg3NTM5LCAwLjIxMjM5NSwgMC4zNTE3OCwgMC40NzQ1OTMsIDAuNjM4MjcsIDAuOTY1NTM1LCAxLjE3MDA5IiwgXAotICAgICAgICAgICIwLjE5NjQwOCwgMC4yMjEzMzEsIDAuMzYwNzA2LCAwLjQ4MzUyNCwgMC42NDcxNjQsIDAuOTc0NDU0LCAxLjE3ODk4Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5NTk5NSwgMC4xNDQ4OTYsIDAuNDI4ODA3LCAwLjY4MjAxMSwgMS4wMTgwNiwgMS42OTE3MSwgMi4xMTI3OCIsIFwKLSAgICAgICAgICAiMC4wOTU5OTUsIDAuMTQ0ODk3LCAwLjQyODgwNSwgMC42ODIwMTIsIDEuMDE3OTcsIDEuNjkxNzIsIDIuMTEyNzgiLCBcCi0gICAgICAgICAgIjAuMDk1OTk4LCAwLjE0NDg5NywgMC40Mjg4MiwgMC42ODIwMDksIDEuMDE5MiwgMS42OTE3NSwgMi4xMTI3OSIsIFwKLSAgICAgICAgICAiMC4wOTU5OTIsIDAuMTQ0OSwgMC40Mjg4NDUsIDAuNjgyMDc5LCAxLjAxOTE0LCAxLjY5MTg1LCAyLjExMjc3IiwgXAotICAgICAgICAgICIwLjA5NTk5NSwgMC4xNDQ4OTUsIDAuNDI4ODQsIDAuNjgyMDAyLCAxLjAxOTIxLCAxLjY5MTY5LCAyLjExMjc3IiwgXAotICAgICAgICAgICIwLjA5NjA4MSwgMC4xNDQ5NTIsIDAuNDI4NzY5LCAwLjY4MTkxOCwgMS4wMTkxLCAxLjY5MTg3LCAyLjExMjc1IiwgXAotICAgICAgICAgICIwLjA5NTk5LCAwLjE0NDg2NSwgMC40Mjg3NjQsIDAuNjgxOTMyLCAxLjAxODA3LCAxLjY5MTc5LCAyLjExNDU3Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE0MTcxOCwgMC4xNjY5MTEsIDAuMzA3NTE4LCAwLjQzMTM0LCAwLjU5NjMwNSwgMC45MjYyNzgsIDEuMTMyNDciLCBcCi0gICAgICAgICAgIjAuMTUwNjE0LCAwLjE3NTg5MSwgMC4zMTY0NzIsIDAuNDQwMzAxLCAwLjYwNTI1OSwgMC45MzUyMjYsIDEuMTQxNDEiLCBcCi0gICAgICAgICAgIjAuMTYxNDMyLCAwLjE4NjY1OCwgMC4zMjcyMjMsIDAuNDUxMDUxLCAwLjYxNjAzNywgMC45NDU5NjUsIDEuMTUyMTkiLCBcCi0gICAgICAgICAgIjAuMTcxNjU2LCAwLjE5Njg4MywgMC4zMzc0NTksIDAuNDYxMjU3LCAwLjYyNjI1NCwgMC45NTYyMTMsIDEuMTYyNDEiLCBcCi0gICAgICAgICAgIjAuMTgxMDM3LCAwLjIwNjI2NCwgMC4zNDY4MzQsIDAuNDcwNjU0LCAwLjYzNTYzNywgMC45NjU1ODEsIDEuMTcxOCIsIFwKLSAgICAgICAgICAiMC4xOTQxNzcsIDAuMjE5NDA1LCAwLjM1OTk5MywgMC40ODM4MTIsIDAuNjQ4Nzc5LCAwLjk3ODc0MSwgMS4xODQ5MyIsIFwKLSAgICAgICAgICAiMC4yMDQ0OTYsIDAuMjI5NzIyLCAwLjM3MDMwNCwgMC40OTQxMjQsIDAuNjU5MTE0LCAwLjk4OTA0MSwgMS4xOTUyNiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTU2NTIsIDAuMTQzNzI2LCAwLjQyMzc1OSwgMC42NzI4MDMsIDEuMDA1NSwgMS42NjksIDIuMDgzNTkiLCBcCi0gICAgICAgICAgIjAuMDk1NjY2LCAwLjE0Mzc0LCAwLjQyMzczNywgMC42NzE2NywgMS4wMDU0NSwgMS42NjM0OSwgMi4wODM0MyIsIFwKLSAgICAgICAgICAiMC4wOTU2NDUsIDAuMTQzNzM1LCAwLjQyMzI2MSwgMC42NzI3MDEsIDEuMDAzOTgsIDEuNjY4MSwgMi4wODM4OCIsIFwKLSAgICAgICAgICAiMC4wOTU2OTEsIDAuMTQzNzg4LCAwLjQyMjk4OSwgMC42NzIzNDYsIDEuMDA1NDQsIDEuNjY4NDcsIDIuMDgzNDciLCBcCi0gICAgICAgICAgIjAuMDk1NjM1LCAwLjE0Mzc5NSwgMC40MjI5NSwgMC42NzE2NzksIDEuMDA1NDcsIDEuNjY4MTksIDIuMDgzNzkiLCBcCi0gICAgICAgICAgIjAuMDk1NzY2LCAwLjE0MzgyNiwgMC40MjM3MzcsIDAuNjcyNzM4LCAxLjAwNTQxLCAxLjY2ODI1LCAyLjA4MzMyIiwgXAotICAgICAgICAgICIwLjA5NTY5MSwgMC4xNDM3NDcsIDAuNDIzMDc3LCAwLjY3MTQ5OCwgMS4wMDQwMywgMS42NjgwNywgMi4wODM0NCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTQ1MzksIDAuMTM5NDU4LCAwLjI3ODg1LCAwLjQwMTYzNywgMC41NjUyOTIsIDAuODkyNjE3LCAxLjA5NzEyIiwgXAotICAgICAgICAgICIwLjEyNDIzOSwgMC4xNDkxMjMsIDAuMjg4NTM0LCAwLjQxMTM0NSwgMC41NzUwNDMsIDAuOTAyMzYxLCAxLjEwNjg5IiwgXAotICAgICAgICAgICIwLjEzNDUyOSwgMC4xNTkzOTgsIDAuMjk4ODA5LCAwLjQyMTYzLCAwLjU4NTI5LCAwLjkxMjYzNCwgMS4xMTcxNSIsIFwKLSAgICAgICAgICAiMC4xNDI4MjIsIDAuMTY3Njg5LCAwLjMwNzEwNywgMC40Mjk5NTEsIDAuNTkzNTgyLCAwLjkyMDkzNiwgMS4xMjU0NiIsIFwKLSAgICAgICAgICAiMC4xNDk2MTUsIDAuMTc0NDgyLCAwLjMxMzg5MSwgMC40MzY3MDYsIDAuNjAwNDU0LCAwLjkyNzgwOSwgMS4xMzIyNiIsIFwKLSAgICAgICAgICAiMC4xNTg4NDYsIDAuMTgzNzI2LCAwLjMyMzEyLCAwLjQ0NTk0LCAwLjYwOTYwNSwgMC45MzY5MjUsIDEuMTQxNDQiLCBcCi0gICAgICAgICAgIjAuMTY1NywgMC4xOTA2MzcsIDAuMzMwMDcsIDAuNDUyODMyLCAwLjYxNjUzNSwgMC45NDM4NTEsIDEuMTQ4MzgiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk1OTI2LCAwLjE0NDg3NywgMC40Mjk0NTMsIDAuNjgyMDkyLCAxLjAxODE4LCAxLjY5MTg0LCAyLjExNTUyIiwgXAotICAgICAgICAgICIwLjA5NTk0NCwgMC4xNDQ4NzksIDAuNDI4ODI0LCAwLjY4MjA2NiwgMS4wMTgwNywgMS42OTExNywgMi4xMTI5IiwgXAotICAgICAgICAgICIwLjA5NTkzMSwgMC4xNDQ4ODQsIDAuNDI5MzczLCAwLjY4MTE2MywgMS4wMTgxMSwgMS42OTA5OSwgMi4xMTI4MyIsIFwKLSAgICAgICAgICAiMC4wOTU5MTgsIDAuMTQ0ODY5LCAwLjQyODgwMywgMC42ODIxMzMsIDEuMDE4MDIsIDEuNjkxMjMsIDIuMTEyODMiLCBcCi0gICAgICAgICAgIjAuMDk1OTEyLCAwLjE0NDkwNywgMC40Mjg4NTQsIDAuNjgxOTcsIDEuMDE5MjksIDEuNjk0MTcsIDIuMTEyOTYiLCBcCi0gICAgICAgICAgIjAuMDk1OTQ1LCAwLjE0NDg3MiwgMC40MjkyOTEsIDAuNjgxOTY0LCAxLjAxODAyLCAxLjY5MTcyLCAyLjExNTIyIiwgXAotICAgICAgICAgICIwLjA5NTg1NywgMC4xNDQ5MjIsIDAuNDI5MzU1LCAwLjY4MTc1OCwgMS4wMTgwMSwgMS42OTA3OCwgMi4xMTI3NCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTgxNzYsIDAuMTQzNDcyLCAwLjI4NDA2MiwgMC40MDc4NTgsIDAuNTcyODU3LCAwLjkwMjgyMSwgMS4xMDkwMSIsIFwKLSAgICAgICAgICAiMC4xMjgzMzcsIDAuMTUzNjA2LCAwLjI5NDE5MiwgMC40MTgwMjksIDAuNTgzMDA1LCAwLjkxMjk0NCwgMS4xMTkxNSIsIFwKLSAgICAgICAgICAiMC4xMzkzNjYsIDAuMTY0NjAyLCAwLjMwNTE4NywgMC40MjkwMjQsIDAuNTkzOTg1LCAwLjkyMzk0NywgMS4xMzAxNCIsIFwKLSAgICAgICAgICAiMC4xNDgzMzUsIDAuMTczNiwgMC4zMTQxODQsIDAuNDM4MDMsIDAuNjAyOTc5LCAwLjkzMjkyOCwgMS4xMzkyIiwgXAotICAgICAgICAgICIwLjE1NTcyMywgMC4xODA5NjcsIDAuMzIxNTQ1LCAwLjQ0NTM4OSwgMC42MTAzNzEsIDAuOTQwNDIsIDEuMTQ2NTEiLCBcCi0gICAgICAgICAgIjAuMTY2MTE5LCAwLjE5MTM5NSwgMC4zMzE5NjcsIDAuNDU1ODIxLCAwLjYyMDc2NSwgMC45NTA3MTQsIDEuMTU2OTEiLCBcCi0gICAgICAgICAgIjAuMTc0MDIyLCAwLjE5OTI1NiwgMC4zMzk4NDgsIDAuNDYzNjgsIDAuNjI4NjM0LCAwLjk1ODU4MywgMS4xNjQ4NiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTU3NDYsIDAuMTQzODczLCAwLjQyMzA3MSwgMC42NzI5MTIsIDEuMDA1NTMsIDEuNjY4NywgMi4wODM1MyIsIFwKLSAgICAgICAgICAiMC4wOTU3NTIsIDAuMTQzODg2LCAwLjQyMzQ2NywgMC42NzI2OTIsIDEuMDA0MDEsIDEuNjY4MTEsIDIuMDgzNDUiLCBcCi0gICAgICAgICAgIjAuMDk1NywgMC4xNDM4NjUsIDAuNDIzNDUxLCAwLjY3MjY2OSwgMS4wMDU0LCAxLjY3MDk4LCAyLjA4MzQ2IiwgXAotICAgICAgICAgICIwLjA5NTczNCwgMC4xNDM3OTgsIDAuNDIzMDQ3LCAwLjY3MjYzNCwgMS4wMDU0MSwgMS42Njc5NywgMi4wODcyIiwgXAotICAgICAgICAgICIwLjA5NTgxNywgMC4xNDM4MDEsIDAuNDIyOTg3LCAwLjY3MjY4OCwgMS4wMDU1NiwgMS42Njc4OCwgMi4wODM0NSIsIFwKLSAgICAgICAgICAiMC4wOTU3MzksIDAuMTQzODU5LCAwLjQyMzUyNSwgMC42NzI1ODksIDEuMDA1NDEsIDEuNjY4MDMsIDIuMDgzMDQiLCBcCi0gICAgICAgICAgIjAuMDk1NzQxLCAwLjE0Mzg5NSwgMC40MjMxNCwgMC42NzI2OTIsIDEuMDA1MzgsIDEuNjY3OTQsIDIuMDg3MTciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUzAiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE1MDY0NiwgMC4xNzU1MDUsIDAuMzE0ODkzLCAwLjQzNzcxNCwgMC42MDEzNjUsIDAuOTI4NjcyLCAxLjEzMzI0IiwgXAotICAgICAgICAgICIwLjE2MDc2LCAwLjE4NTY0MiwgMC4zMjUwMywgMC40NDc4NCwgMC42MTE1MDYsIDAuOTM4ODA5LCAxLjE0MzM2IiwgXAotICAgICAgICAgICIwLjE3MTcyNiwgMC4xOTY1OTgsIDAuMzM1OTg3LCAwLjQ1ODc5NSwgMC42MjI0NDUsIDAuOTQ5NzY5LCAxLjE1NDMxIiwgXAotICAgICAgICAgICIwLjE4MDc1OCwgMC4yMDU2NTcsIDAuMzQ1MDM4LCAwLjQ2NzczNywgMC42MzE1MDMsIDAuOTU4NzksIDEuMTYzMzMiLCBcCi0gICAgICAgICAgIjAuMTg4MDE1LCAwLjIxMjkwOCwgMC4zNTIyODcsIDAuNDc0OTg3LCAwLjYzODc1NCwgMC45NjYwNDIsIDEuMTcwNjciLCBcCi0gICAgICAgICAgIjAuMTk4MjMzLCAwLjIyMzA5NiwgMC4zNjI0NzcsIDAuNDg1Mjk1LCAwLjY0ODk0MSwgMC45NzYwOSwgMS4xODA3NyIsIFwKLSAgICAgICAgICAiMC4yMDYwNzcsIDAuMjMwOTQxLCAwLjM3MDMzNCwgMC40OTMxNzUsIDAuNjU2ODExLCAwLjk4NDA1OCwgMS4xODg2Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5NTk4OCwgMC4xNDQ5MDUsIDAuNDI4NzUsIDAuNjgxMjIxLCAxLjAxODE4LCAxLjY5MTcyLCAyLjExNTY1IiwgXAotICAgICAgICAgICIwLjA5NTk5NSwgMC4xNDQ4OTcsIDAuNDI4ODEsIDAuNjgyMDExLCAxLjAxODAxLCAxLjY5MTcyLCAyLjExMjc5IiwgXAotICAgICAgICAgICIwLjA5NTk5OCwgMC4xNDQ4OTYsIDAuNDI4ODIyLCAwLjY4MjAwOCwgMS4wMTkxOSwgMS42OTE3NiwgMi4xMTI4IiwgXAotICAgICAgICAgICIwLjA5NTk3MywgMC4xNDQ4OTYsIDAuNDI4NzU5LCAwLjY4MDQwOCwgMS4wMTgxMiwgMS42OTE5MywgMi4xMTMwOCIsIFwKLSAgICAgICAgICAiMC4wOTU5NzcsIDAuMTQ0OSwgMC40Mjg3NDksIDAuNjgwNDAxLCAxLjAxODE0LCAxLjY5MTg0LCAyLjExMjE0IiwgXAotICAgICAgICAgICIwLjA5NjA0NCwgMC4xNDQ5MzEsIDAuNDI4NzY5LCAwLjY4MjAzMSwgMS4wMTgxLCAxLjY5MzgyLCAyLjExMzAzIiwgXAotICAgICAgICAgICIwLjA5NTk2MywgMC4xNDQ4ODYsIDAuNDI4Nzc2LCAwLjY4MTk5NSwgMS4wMTkxMiwgMS42OTE2NSwgMi4xMTI4NyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNTQwNDQsIDAuMTc5Mjc1LCAwLjMxOTg0LCAwLjQ0MzY2LCAwLjYwODY0MSwgMC45Mzg1ODIsIDEuMTQ0OCIsIFwKLSAgICAgICAgICAiMC4xNjM4MzYsIDAuMTg5MDY2LCAwLjMyOTYzMywgMC40NTM0NTEsIDAuNjE4NDMyLCAwLjk0ODM3NCwgMS4xNTQ1OSIsIFwKLSAgICAgICAgICAiMC4xNzQwMjUsIDAuMTk5Mjk0LCAwLjMzOTg1OSwgMC40NjM2OTMsIDAuNjI4NjQ0LCAwLjk1ODYxNCwgMS4xNjQ5NiIsIFwKLSAgICAgICAgICAiMC4xODIzNjgsIDAuMjA3NTkyLCAwLjM0ODE1OSwgMC40NzE5OTEsIDAuNjM2OTU4LCAwLjk2Njg4NywgMS4xNzMxMSIsIFwKLSAgICAgICAgICAiMC4xODg5NzgsIDAuMjE0MjM4LCAwLjM1NDgwOSwgMC40Nzg2NDMsIDAuNjQzNjM5LCAwLjk3MzU5NiwgMS4xNzk3NSIsIFwKLSAgICAgICAgICAiMC4xOTc3NTcsIDAuMjIyOTkxLCAwLjM2MzU1NywgMC40ODczNTMsIDAuNjUyMzUzLCAwLjk4MjE5OSwgMS4xODg0NyIsIFwKLSAgICAgICAgICAiMC4yMDQ0ODYsIDAuMjI5NjQyLCAwLjM3MDMyOSwgMC40OTQxMjEsIDAuNjU5MTI0LCAwLjk4OTA1OCwgMS4xOTUyNiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTU2NDksIDAuMTQzNzIsIDAuNDIyOTQ3LCAwLjY3MTI0NiwgMS4wMDU1LCAxLjY2ODE1LCAyLjA4Mzg4IiwgXAotICAgICAgICAgICIwLjA5NTY0NCwgMC4xNDM2OTEsIDAuNDIyOTUzLCAwLjY3MTE3MiwgMS4wMDU0OSwgMS42NjgxNiwgMi4wODM3NyIsIFwKLSAgICAgICAgICAiMC4wOTU2ODMsIDAuMTQzODI0LCAwLjQyMzU0OCwgMC42NzI2ODUsIDEuMDA1MzksIDEuNjcxMDUsIDIuMDgwNzgiLCBcCi0gICAgICAgICAgIjAuMDk1NjQ4LCAwLjE0Mzc5MiwgMC40MjM0NzcsIDAuNjcyNjg0LCAxLjAwNDI4LCAxLjY3MDc5LCAyLjA4MzU2IiwgXAotICAgICAgICAgICIwLjA5NTY2NiwgMC4xNDM4MjMsIDAuNDIzNTE1LCAwLjY3MjY3NCwgMS4wMDUzMiwgMS42NzEwMiwgMi4wODMzOCIsIFwKLSAgICAgICAgICAiMC4wOTU2NzUsIDAuMTQzNzcxLCAwLjQyMzUzMywgMC42NzI2MzcsIDEuMDA1NDQsIDEuNjY3ODgsIDIuMDg3MjkiLCBcCi0gICAgICAgICAgIjAuMDk1Njg2LCAwLjE0MzczOSwgMC40MjMxMDQsIDAuNjcxNjY5LCAxLjAwNTUsIDEuNjY3OTIsIDIuMDgzMjIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUzAiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEzMzQyMiwgMC4xNTgyOTcsIDAuMjk3NjgsIDAuNDIwNTQ2LCAwLjU4NDE0MSwgMC45MTE0NzcsIDEuMTE2IiwgXAotICAgICAgICAgICIwLjE0MjE1NCwgMC4xNjcwMjgsIDAuMzA2NDEzLCAwLjQyOTIzOSwgMC41OTI4NzMsIDAuOTIwMjEsIDEuMTI0NzIiLCBcCi0gICAgICAgICAgIjAuMTUzNDA5LCAwLjE3ODMyNywgMC4zMTc3MTUsIDAuNDQwNTI5LCAwLjYwNDIwMSwgMC45MzE0OSwgMS4xMzYwMyIsIFwKLSAgICAgICAgICAiMC4xNjM2NjgsIDAuMTg4NTM3LCAwLjMyNzkzMiwgMC40NTA3NDcsIDAuNjE0MzgxLCAwLjk0MTY4OCwgMS4xNDYyMSIsIFwKLSAgICAgICAgICAiMC4xNzI2MjcsIDAuMTk3NTIyLCAwLjMzNjkwOCwgMC40NTk3MywgMC42MjMzNzcsIDAuOTUwNjY5LCAxLjE1NTM4IiwgXAotICAgICAgICAgICIwLjE4NDYyLCAwLjIwOTQ5OSwgMC4zNDg4OTEsIDAuNDcxNzA1LCAwLjYzNTM5MywgMC45NjI3OTcsIDEuMTY3MiIsIFwKLSAgICAgICAgICAiMC4xOTM3OTUsIDAuMjE4NTgyLCAwLjM1ODA2OSwgMC40ODA4ODMsIDAuNjQ0NTY1LCAwLjk3MTc1OCwgMS4xNzYzNyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTU5OTEsIDAuMTQ0OTAxLCAwLjQyOTMwMiwgMC42ODA2NDgsIDEuMDE3OTIsIDEuNjkwOCwgMi4xMTI3OSIsIFwKLSAgICAgICAgICAiMC4wOTU5ODksIDAuMTQ0OTAyLCAwLjQyOTMwOCwgMC42ODA5MjIsIDEuMDE3OTQsIDEuNjkwODcsIDIuMTEyODEiLCBcCi0gICAgICAgICAgIjAuMDk1OTM2LCAwLjE0NDg5OCwgMC40Mjg3ODcsIDAuNjgyMDE3LCAxLjAxOTIzLCAxLjY5MTcxLCAyLjExMjczIiwgXAotICAgICAgICAgICIwLjA5NTk5MywgMC4xNDQ5MDEsIDAuNDI5MzM2LCAwLjY4MjA0NywgMS4wMTgwNCwgMS42OTE2NywgMi4xMTU0NCIsIFwKLSAgICAgICAgICAiMC4wOTU5NCwgMC4xNDQ4OTQsIDAuNDI4NzQ1LCAwLjY4MjAyMiwgMS4wMTgxNiwgMS42OTE3NSwgMi4xMTA4OSIsIFwKLSAgICAgICAgICAiMC4wOTYwNDIsIDAuMTQ0OTMxLCAwLjQyODc2NywgMC42ODE5MTQsIDEuMDE5MTEsIDEuNjkwMzUsIDIuMTEyNzYiLCBcCi0gICAgICAgICAgIjAuMDk2MDYsIDAuMTQ0OTQyLCAwLjQyODgyLCAwLjY4MTkyMiwgMS4wMTkxMSwgMS42OTM2MSwgMi4xMTI3NiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMzQ2MywgMC4xNTk4NTQsIDAuMzAwNDMsIDAuNDI0MjMxLCAwLjU4OTIxNiwgMC45MTkxOTQsIDEuMTI1MzgiLCBcCi0gICAgICAgICAgIjAuMTQzNTkyLCAwLjE2ODg3LCAwLjMwOTQzMiwgMC40MzMyNTYsIDAuNTk4MjM4LCAwLjkyODIsIDEuMTM0MzkiLCBcCi0gICAgICAgICAgIjAuMTU1MTk5LCAwLjE4MDQyNiwgMC4zMjEsIDAuNDQ0Nzk2LCAwLjYwOTc5MywgMC45Mzk3NTEsIDEuMTQ1OTUiLCBcCi0gICAgICAgICAgIjAuMTY2MDA1LCAwLjE5MTI1NCwgMC4zMzE4MjUsIDAuNDU1NjU4LCAwLjYyMDY1OSwgMC45NTA2MDMsIDEuMTU2NzgiLCBcCi0gICAgICAgICAgIjAuMTc1NDA5LCAwLjIwMDYzNiwgMC4zNDEyNTcsIDAuNDY1MDcyLCAwLjYzMDAxNiwgMC45NTk5NywgMS4xNjYxNiIsIFwKLSAgICAgICAgICAiMC4xODgzNzcsIDAuMjEzNjM0LCAwLjM1NDIsIDAuNDc4MDM3LCAwLjY0Mjk4OCwgMC45NzI5MzcsIDEuMTc5MjUiLCBcCi0gICAgICAgICAgIjAuMTk4MjM0LCAwLjIyMzQ5MiwgMC4zNjQwNzEsIDAuNDg3ODk4LCAwLjY1Mjg3MSwgMC45ODI4MDYsIDEuMTg5MDIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk1NjYsIDAuMTQzODA1LCAwLjQyMzA3NCwgMC42NzI5NjUsIDEuMDA1NTEsIDEuNjY5MjEsIDIuMDgzNjYiLCBcCi0gICAgICAgICAgIjAuMDk1NjU5LCAwLjE0Mzc0MiwgMC40MjM2NjcsIDAuNjcyODcsIDEuMDA1NDQsIDEuNjY1MzYsIDIuMDgzMzkiLCBcCi0gICAgICAgICAgIjAuMDk1NywgMC4xNDM3OTEsIDAuNDIyOTk0LCAwLjY3MjQ0NSwgMS4wMDU0NSwgMS42Njg0OCwgMi4wODM0NiIsIFwKLSAgICAgICAgICAiMC4wOTU2ODQsIDAuMTQzODIsIDAuNDIzNSwgMC42NzI2NzgsIDEuMDAzNiwgMS42NjY2MSwgMi4wODM0NSIsIFwKLSAgICAgICAgICAiMC4wOTU2OTcsIDAuMTQzNzM4LCAwLjQyMzg3NCwgMC42NzI2MDgsIDEuMDA1MzksIDEuNjY4MTYsIDIuMDgzMTQiLCBcCi0gICAgICAgICAgIjAuMDk1Nzg3LCAwLjE0MzkyLCAwLjQyMzUzOSwgMC42NzI2NjMsIDEuMDA1MzcsIDEuNjY3ODcsIDIuMDg2ODMiLCBcCi0gICAgICAgICAgIjAuMDk1NzI5LCAwLjE0Mzc5NCwgMC40MjMxMjcsIDAuNjcyNjgsIDEuMDA1NTEsIDEuNjcwOSwgMi4wODM1MiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTMSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDkyNzgsIDAuMTE3NjQ2LCAwLjI1NzA0MywgMC4zNzk4NDksIDAuNTQzNTM0LCAwLjg3MDgzLCAxLjA3NTQiLCBcCi0gICAgICAgICAgIjAuMTAxNzkxLCAwLjEyNjY1OSwgMC4yNjYwNzUsIDAuMzg4ODcyLCAwLjU1MjU0MSwgMC44Nzk4NjgsIDEuMDg0MzkiLCBcCi0gICAgICAgICAgIjAuMTEzNDM4LCAwLjEzODMxLCAwLjI3NzczNiwgMC40MDA1NTMsIDAuNTY0MjE1LCAwLjg5MTUzLCAxLjA5NjA4IiwgXAotICAgICAgICAgICIwLjEyNDkzNCwgMC4xNDk4MTYsIDAuMjg5MjUzLCAwLjQxMjA4MiwgMC41NzU3MzksIDAuOTAzMTQ2LCAxLjEwNzU5IiwgXAotICAgICAgICAgICIwLjEzNTgyNCwgMC4xNjA3MzUsIDAuMzAwMTU5LCAwLjQyMzA0MiwgMC41ODY2NzEsIDAuOTEzOTcxLCAxLjExODUxIiwgXAotICAgICAgICAgICIwLjE1MTA0MSwgMC4xNzU5NzYsIDAuMzE1Mzg2LCAwLjQzODI0OCwgMC42MDE5MDUsIDAuOTI5Mjg5LCAxLjEzMzc0IiwgXAotICAgICAgICAgICIwLjE2MjY5MSwgMC4xODc3NzMsIDAuMzI3MTk4LCAwLjQ0OTk4MSwgMC42MTM2NzEsIDAuOTQwOTUxLCAxLjE0NTUyIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5NTk3MiwgMC4xNDQ5NTIsIDAuNDI4ODUxLCAwLjY4MjA3MywgMS4wMTgwMiwgMS42OTE3NywgMi4xMTEzNyIsIFwKLSAgICAgICAgICAiMC4wOTU5ODUsIDAuMTQ0OTE4LCAwLjQyOTM3NSwgMC42ODEyMTUsIDEuMDE4MDEsIDEuNjkxNzUsIDIuMTEyOTkiLCBcCi0gICAgICAgICAgIjAuMDk2MDQsIDAuMTQ0OTQxLCAwLjQyODg5MywgMC42ODIwNDYsIDEuMDE5MjEsIDEuNjkwMTMsIDIuMTEyODIiLCBcCi0gICAgICAgICAgIjAuMDk2MTg0LCAwLjE0NTAyNiwgMC40Mjg4MiwgMC42ODE5NiwgMS4wMTgsIDEuNjkzNzksIDIuMTEzMDkiLCBcCi0gICAgICAgICAgIjAuMDk2NTc2LCAwLjE0NTMwNiwgMC40MjkzNDcsIDAuNjgwODMsIDEuMDE3OTUsIDEuNjkxNjMsIDIuMTEyNjkiLCBcCi0gICAgICAgICAgIjAuMDk3ODY0LCAwLjE0NjExMSwgMC40Mjk0NDEsIDAuNjgyMDU2LCAxLjAxNzMzLCAxLjY5MzgsIDIuMTEyNzQiLCBcCi0gICAgICAgICAgIjAuMDk4ODM1LCAwLjE0Njg5NCwgMC40Mjk2OTQsIDAuNjgyMDIxLCAxLjAxNzk0LCAxLjY5MTc3LCAyLjExMjciKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk1NTQ0LCAwLjEyMDc2OCwgMC4yNjEzMzQsIDAuMzg1MTI4LCAwLjU1MDEyNCwgMC44ODAwNjYsIDEuMDg2MjciLCBcCi0gICAgICAgICAgIjAuMTA0MzA4LCAwLjEyOTU0MiwgMC4yNzAxMDgsIDAuMzkzOTMzLCAwLjU1ODk2MiwgMC44ODg4NCwgMS4wOTUwNSIsIFwKLSAgICAgICAgICAiMC4xMTU1MTksIDAuMTQwNzU3LCAwLjI4MTM1MiwgMC40MDUxNTgsIDAuNTcwMTU5LCAwLjkwMDA5OCwgMS4xMDYzIiwgXAotICAgICAgICAgICIwLjEyNjgzNCwgMC4xNTIwNzUsIDAuMjkyNjg2LCAwLjQxNjUyNCwgMC41ODE1NTYsIDAuOTExNDQ0LCAxLjExNzY1IiwgXAotICAgICAgICAgICIwLjEzNzAzMSwgMC4xNjIzMDcsIDAuMzAyOTIzLCAwLjQyNjc3NSwgMC41OTE3MzEsIDAuOTIxNjc2LCAxLjEyNzg5IiwgXAotICAgICAgICAgICIwLjE1MTE2MywgMC4xNzY1MDIsIDAuMzE3MTM1LCAwLjQ0MDk2LCAwLjYwNTk5OSwgMC45MzU4NzcsIDEuMTQyMDkiLCBcCi0gICAgICAgICAgIjAuMTYxODQyLCAwLjE4NzM1MiwgMC4zMjc5NzgsIDAuNDUxODA3LCAwLjYxNjc2MywgMC45NDY3MjksIDEuMTUyOTQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk1Njc2LCAwLjE0Mzc5NCwgMC40MjI5OTQsIDAuNjcxNjMsIDEuMDA1NDQsIDEuNjY4MTEsIDIuMDgzMjgiLCBcCi0gICAgICAgICAgIjAuMDk1NjI1LCAwLjE0Mzc1NSwgMC40MjI5NzgsIDAuNjcyNjExLCAxLjAwNTE1LCAxLjY3MDA5LCAyLjA4MzM2IiwgXAotICAgICAgICAgICIwLjA5NTczLCAwLjE0MzgzOSwgMC40MjI5OTMsIDAuNjcxNzU3LCAxLjAwNTQ2LCAxLjY2Nzk3LCAyLjA4MzI1IiwgXAotICAgICAgICAgICIwLjA5NTg0MSwgMC4xNDM5NTgsIDAuNDIzMjU3LCAwLjY3MjYxNywgMS4wMDUxOCwgMS42Njg5MiwgMi4wODMzMSIsIFwKLSAgICAgICAgICAiMC4wOTYzMjMsIDAuMTQ0MTU3LCAwLjQyMzc0MSwgMC42NzI2MDEsIDEuMDA1MzcsIDEuNjcwODIsIDIuMDgzMTkiLCBcCi0gICAgICAgICAgIjAuMDk3MzY5LCAwLjE0NDk4NywgMC40MjQwMTMsIDAuNjcxNDc3LCAxLjAwNTI0LCAxLjY3MDA1LCAyLjA4NTc5IiwgXAotICAgICAgICAgICIwLjA5ODMxLCAwLjE0NTY1MywgMC40MjQxODYsIDAuNjcyMTY1LCAxLjAwNTM5LCAxLjY3MDA3LCAyLjA4MzM1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlMxIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTIzNzUsIDAuMTM3MjY1LCAwLjI3NjY5LCAwLjM5OTQ3MiwgMC41NjMxMTUsIDAuODkwNDE1LCAxLjA5NTAxIiwgXAotICAgICAgICAgICIwLjEyMjI0LCAwLjE0NzExMywgMC4yODY1MDEsIDAuNDA5MzEyLCAwLjU3MzAwOSwgMC45MDA0NDgsIDEuMTA0ODQiLCBcCi0gICAgICAgICAgIjAuMTMzMDE2LCAwLjE1NzkxOSwgMC4yOTczMDksIDAuNDIwMTI0LCAwLjU4Mzc3NSwgMC45MTEwNjksIDEuMTE1NjEiLCBcCi0gICAgICAgICAgIjAuMTQyMzg4LCAwLjE2NzIzNiwgMC4zMDY2MjEsIDAuNDI5NDM5LCAwLjU5MzA5MSwgMC45MjAzOCwgMS4xMjUwNyIsIFwKLSAgICAgICAgICAiMC4xNDk0MDksIDAuMTc0Mjc0LCAwLjMxMzY3MiwgMC40MzY0NjgsIDAuNjAwMTMyLCAwLjkyNzQyMywgMS4xMzIwMSIsIFwKLSAgICAgICAgICAiMC4xNTkzOCwgMC4xODQzNDMsIDAuMzIzNjc0LCAwLjQ0NjYwNiwgMC42MTAyNjcsIDAuOTM3NTIxLCAxLjE0MTk3IiwgXAotICAgICAgICAgICIwLjE2NjgwOCwgMC4xOTE3NjcsIDAuMzMxMjgxLCAwLjQ1NDA2OCwgMC42MTc4MTUsIDAuOTQ1MTY4LCAxLjE0OTY2Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5NTkxMiwgMC4xNDQ4NDIsIDAuNDI5MzgzLCAwLjY4MjAyOSwgMS4wMTgxLCAxLjY5MTYxLCAyLjExNTUzIiwgXAotICAgICAgICAgICIwLjA5NTkyMiwgMC4xNDQ4NDcsIDAuNDI4ODA0LCAwLjY4MjAxNiwgMS4wMTc1MywgMS42OTA4LCAyLjExMjU5IiwgXAotICAgICAgICAgICIwLjA5NTg2NSwgMC4xNDQ4NDMsIDAuNDI4NzgyLCAwLjY4MTk5NywgMS4wMTgxMiwgMS42OTM3NCwgMi4xMTI5OSIsIFwKLSAgICAgICAgICAiMC4wOTU4OTMsIDAuMTQ0ODMzLCAwLjQyODc2NywgMC42ODIwMDUsIDEuMDE4MTEsIDEuNjkxODIsIDIuMTE1NzUiLCBcCi0gICAgICAgICAgIjAuMDk2MDQ5LCAwLjE0NDkzMiwgMC40MjkyNDcsIDAuNjgxMTU0LCAxLjAxNzg3LCAxLjY5MTk1LCAyLjExNTE2IiwgXAotICAgICAgICAgICIwLjA5NjEzMiwgMC4xNDUwODcsIDAuNDI4OTM3LCAwLjY4MDk5OSwgMS4wMTkxMSwgMS42OTM1OCwgMi4xMTUwNiIsIFwKLSAgICAgICAgICAiMC4wOTYwOCwgMC4xNDUxMjQsIDAuNDI4ODYyLCAwLjY4MTg4NSwgMS4wMTkwOSwgMS42OTM3OCwgMi4xMTUxNyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTQ5MTksIDAuMTQwMTUzLCAwLjI4MDczOSwgMC40MDQ1NjksIDAuNTY5NTQxLCAwLjg5OTQ4OSwgMS4xMDU2OSIsIFwKLSAgICAgICAgICAiMC4xMjUwOSwgMC4xNTAzNDksIDAuMjkwOTMsIDAuNDE0NzY3LCAwLjU3OTc3NiwgMC45MDk3NDksIDEuMTE1ODgiLCBcCi0gICAgICAgICAgIjAuMTM2NzM3LCAwLjE2MTk5NywgMC4zMDI1NzksIDAuNDI2NDE4LCAwLjU5MTM3MiwgMC45MjEzNDksIDEuMTI3NTYiLCBcCi0gICAgICAgICAgIjAuMTQ2MjM3LCAwLjE3MTQ4MywgMC4zMTIwNjMsIDAuNDM1ODk0LCAwLjYwMDg4NSwgMC45MzA4MDcsIDEuMTM3MDIiLCBcCi0gICAgICAgICAgIjAuMTU0NTYxLCAwLjE3OTgwOCwgMC4zMjA0MTEsIDAuNDQ0MjM5LCAwLjYwOTIwNywgMC45MzkxNTQsIDEuMTQ1MzQiLCBcCi0gICAgICAgICAgIjAuMTY1Njc3LCAwLjE5MDk4OCwgMC4zMzE2MTgsIDAuNDU1NDIzLCAwLjYyMDQzOSwgMC45NTAzNTgsIDEuMTU2NTUiLCBcCi0gICAgICAgICAgIjAuMTc0MTA4LCAwLjE5OTQwMSwgMC4zNDAxMTQsIDAuNDYzOTE1LCAwLjYyODkwMiwgMC45NTg5NjQsIDEuMTY1MTIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk1NzI2LCAwLjE0Mzc2OSwgMC40MjMwMiwgMC42NzI3ODQsIDEuMDA0NjksIDEuNjcxMDYsIDIuMDgzNTMiLCBcCi0gICAgICAgICAgIjAuMDk1NzU0LCAwLjE0Mzg4NiwgMC40MjM1MDcsIDAuNjcyNjUzLCAxLjAwNTI5LCAxLjY3MDk1LCAyLjA4MzMiLCBcCi0gICAgICAgICAgIjAuMDk1NzQ1LCAwLjE0Mzg4MywgMC40MjM1MzMsIDAuNjcyNjUxLCAxLjAwNTQzLCAxLjY3MTExLCAyLjA4NDIxIiwgXAotICAgICAgICAgICIwLjA5NTczOSwgMC4xNDM3NzQsIDAuNDIyOTgyLCAwLjY3MjY4OSwgMS4wMDQyNCwgMS42Njc5MywgMi4wODM1NiIsIFwKLSAgICAgICAgICAiMC4wOTU4ODMsIDAuMTQzOTUzLCAwLjQyMzc4MSwgMC42NzI2MzQsIDEuMDA1NDUsIDEuNjY5NjIsIDIuMDgyOTkiLCBcCi0gICAgICAgICAgIjAuMDk1OTAxLCAwLjE0Mzk4MywgMC40MjMwODgsIDAuNjcxOTkyLCAxLjAwNTA5LCAxLjY3MDg1LCAyLjA4Njc0IiwgXAotICAgICAgICAgICIwLjA5NTkxMywgMC4xNDM5OTEsIDAuNDIzMjM0LCAwLjY3MjA5MiwgMS4wMDQxOSwgMS42NjYwOSwgMi4wODY0MiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDExMSwgMC4wMDQxMjEsIDAuMDA0MTM1LCAwLjAwNDEzOCwgMC4wMDQxMzksIDAuMDA0MTQyLCAwLjAwNDE0MiIsIFwKLSAgICAgICAgICAiMC4wMDQwOTksIDAuMDA0MTA4LCAwLjAwNDEyMywgMC4wMDQxMjYsIDAuMDA0MTI3LCAwLjAwNDEyOCwgMC4wMDQxMjkiLCBcCi0gICAgICAgICAgIjAuMDA0MDkxLCAwLjAwNDEwMSwgMC4wMDQxMTUsIDAuMDA0MTE4LCAwLjAwNDExOSwgMC4wMDQxMjEsIDAuMDA0MTIyIiwgXAotICAgICAgICAgICIwLjAwNDA4NywgMC4wMDQwOTYsIDAuMDA0MTExLCAwLjAwNDExNCwgMC4wMDQxMTUsIDAuMDA0MTE2LCAwLjAwNDExNyIsIFwKLSAgICAgICAgICAiMC4wMDQwODMsIDAuMDA0MDkzLCAwLjAwNDEwOCwgMC4wMDQxMTEsIDAuMDA0MTEzLCAwLjAwNDExNCwgMC4wMDQxMTQiLCBcCi0gICAgICAgICAgIjAuMDA0MDgyLCAwLjAwNDA5MiwgMC4wMDQxMDcsIDAuMDA0MTEsIDAuMDA0MTEyLCAwLjAwNDExNCwgMC4wMDQxMTQiLCBcCi0gICAgICAgICAgIjAuMDA0MDg1LCAwLjAwNDA5MywgMC4wMDQxMSwgMC4wMDQxMTIsIDAuMDA0MTE1LCAwLjAwNDExNiwgMC4wMDQxMTciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDM3NTksIDAuMDAzNzcxLCAwLjAwMzc4OCwgMC4wMDM3OTIsIDAuMDAzNzk0LCAwLjAwMzc5NiwgMC4wMDM3OTYiLCBcCi0gICAgICAgICAgIjAuMDAzNzM3LCAwLjAwMzc0OSwgMC4wMDM3NjcsIDAuMDAzNzcxLCAwLjAwMzc3MiwgMC4wMDM3NzQsIDAuMDAzNzc1IiwgXAotICAgICAgICAgICIwLjAwMzcyNiwgMC4wMDM3MzgsIDAuMDAzNzU1LCAwLjAwMzc1OSwgMC4wMDM3NjEsIDAuMDAzNzYzLCAwLjAwMzc2NCIsIFwKLSAgICAgICAgICAiMC4wMDM3MTksIDAuMDAzNzMxLCAwLjAwMzc0OSwgMC4wMDM3NTIsIDAuMDAzNzU1LCAwLjAwMzc1NiwgMC4wMDM3NTciLCBcCi0gICAgICAgICAgIjAuMDAzNzE3LCAwLjAwMzcyOSwgMC4wMDM3NDcsIDAuMDAzNzUxLCAwLjAwMzc1MywgMC4wMDM3NTUsIDAuMDAzNzU2IiwgXAotICAgICAgICAgICIwLjAwMzcxOSwgMC4wMDM3MzIsIDAuMDAzNzUsIDAuMDAzNzU0LCAwLjAwMzc1NiwgMC4wMDM3NTgsIDAuMDAzNzU4IiwgXAotICAgICAgICAgICIwLjAwMzcyMiwgMC4wMDM3MzYsIDAuMDAzNzU0LCAwLjAwMzc1OCwgMC4wMDM3NiwgMC4wMDM3NjIsIDAuMDAzNzYyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0Mjg1LCAwLjAwNDI5NSwgMC4wMDQzMDksIDAuMDA0MzEyLCAwLjAwNDMxMywgMC4wMDQzMTYsIDAuMDA0MzE3IiwgXAotICAgICAgICAgICIwLjAwNDI3MywgMC4wMDQyODIsIDAuMDA0Mjk2LCAwLjAwNDI5OSwgMC4wMDQzMDEsIDAuMDA0MzAzLCAwLjAwNDMwMyIsIFwKLSAgICAgICAgICAiMC4wMDQyNjYsIDAuMDA0Mjc1LCAwLjAwNDI4OSwgMC4wMDQyOTMsIDAuMDA0Mjk0LCAwLjAwNDI5NiwgMC4wMDQyOTciLCBcCi0gICAgICAgICAgIjAuMDA0MjYyLCAwLjAwNDI3MSwgMC4wMDQyODYsIDAuMDA0Mjg5LCAwLjAwNDI5MSwgMC4wMDQyOTIsIDAuMDA0MjkzIiwgXAotICAgICAgICAgICIwLjAwNDI1OSwgMC4wMDQyNjksIDAuMDA0MjgzLCAwLjAwNDI4NywgMC4wMDQyODgsIDAuMDA0MjksIDAuMDA0MjkiLCBcCi0gICAgICAgICAgIjAuMDA0MjYyLCAwLjAwNDI3MSwgMC4wMDQyODYsIDAuMDA0Mjg5LCAwLjAwNDI5MSwgMC4wMDQyOTMsIDAuMDA0MjkzIiwgXAotICAgICAgICAgICIwLjAwNDI2MywgMC4wMDQyNzQsIDAuMDA0Mjg4LCAwLjAwNDI5MiwgMC4wMDQyOTQsIDAuMDA0Mjk2LCAwLjAwNDI5NiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzQ4MSwgMC4wMDM0OTMsIDAuMDAzNTExLCAwLjAwMzUxNSwgMC4wMDM1MTcsIDAuMDAzNTE4LCAwLjAwMzUxOSIsIFwKLSAgICAgICAgICAiMC4wMDM0NiwgMC4wMDM0NzIsIDAuMDAzNDksIDAuMDAzNDk0LCAwLjAwMzQ5NiwgMC4wMDM0OTgsIDAuMDAzNDk4IiwgXAotICAgICAgICAgICIwLjAwMzQ1LCAwLjAwMzQ2MiwgMC4wMDM0OCwgMC4wMDM0ODMsIDAuMDAzNDg1LCAwLjAwMzQ4NywgMC4wMDM0ODgiLCBcCi0gICAgICAgICAgIjAuMDAzNDQ1LCAwLjAwMzQ1NywgMC4wMDM0NzQsIDAuMDAzNDc4LCAwLjAwMzQ4LCAwLjAwMzQ4MiwgMC4wMDM0ODMiLCBcCi0gICAgICAgICAgIjAuMDAzNDQyLCAwLjAwMzQ1NSwgMC4wMDM0NzMsIDAuMDAzNDc3LCAwLjAwMzQ3OSwgMC4wMDM0ODEsIDAuMDAzNDgxIiwgXAotICAgICAgICAgICIwLjAwMzQ0NCwgMC4wMDM0NTcsIDAuMDAzNDc1LCAwLjAwMzQ3OSwgMC4wMDM0ODEsIDAuMDAzNDgzLCAwLjAwMzQ4MyIsIFwKLSAgICAgICAgICAiMC4wMDM0NDksIDAuMDAzNDYyLCAwLjAwMzQ4LCAwLjAwMzQ4NCwgMC4wMDM0ODYsIDAuMDAzNDg4LCAwLjAwMzQ4OSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzQzNCwgMC4wMDM0NDMsIDAuMDAzNDU3LCAwLjAwMzQ2LCAwLjAwMzQ2MiwgMC4wMDM0NjMsIDAuMDAzNDY0IiwgXAotICAgICAgICAgICIwLjAwMzQwOSwgMC4wMDM0MTgsIDAuMDAzNDM0LCAwLjAwMzQzNywgMC4wMDM0MzgsIDAuMDAzNDQsIDAuMDAzNDQxIiwgXAotICAgICAgICAgICIwLjAwMzQwNSwgMC4wMDM0MTUsIDAuMDAzNDI5LCAwLjAwMzQzMywgMC4wMDM0MzUsIDAuMDAzNDM2LCAwLjAwMzQzNyIsIFwKLSAgICAgICAgICAiMC4wMDM0MDUsIDAuMDAzNDE0LCAwLjAwMzQyOSwgMC4wMDM0MzIsIDAuMDAzNDM0LCAwLjAwMzQzNiwgMC4wMDM0MzYiLCBcCi0gICAgICAgICAgIjAuMDAzNDE1LCAwLjAwMzQyNCwgMC4wMDM0MzksIDAuMDAzNDQyLCAwLjAwMzQ0NCwgMC4wMDM0NDYsIDAuMDAzNDQ3IiwgXAotICAgICAgICAgICIwLjAwMzQzNiwgMC4wMDM0NDYsIDAuMDAzNDU5LCAwLjAwMzQ2MywgMC4wMDM0NjUsIDAuMDAzNDY3LCAwLjAwMzQ2OCIsIFwKLSAgICAgICAgICAiMC4wMDM0NTksIDAuMDAzNDY4LCAwLjAwMzQ4MiwgMC4wMDM0ODQsIDAuMDAzNDg2LCAwLjAwMzQ4NywgMC4wMDM0ODkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDMzMDYsIDAuMDAzMzE5LCAwLjAwMzMzNywgMC4wMDMzNDEsIDAuMDAzMzQzLCAwLjAwMzM0NSwgMC4wMDMzNDUiLCBcCi0gICAgICAgICAgIjAuMDAzMjc1LCAwLjAwMzI4NywgMC4wMDMzMDYsIDAuMDAzMzEsIDAuMDAzMzEyLCAwLjAwMzMxNCwgMC4wMDMzMTUiLCBcCi0gICAgICAgICAgIjAuMDAzMjc3LCAwLjAwMzI4OSwgMC4wMDMzMDgsIDAuMDAzMzEyLCAwLjAwMzMxNCwgMC4wMDMzMTYsIDAuMDAzMzE3IiwgXAotICAgICAgICAgICIwLjAwMzI3OSwgMC4wMDMyOTEsIDAuMDAzMzEsIDAuMDAzMzE0LCAwLjAwMzMxNiwgMC4wMDMzMTksIDAuMDAzMzE5IiwgXAotICAgICAgICAgICIwLjAwMzI5LCAwLjAwMzMwMiwgMC4wMDMzMjEsIDAuMDAzMzI1LCAwLjAwMzMyNywgMC4wMDMzMywgMC4wMDMzMyIsIFwKLSAgICAgICAgICAiMC4wMDMzMTIsIDAuMDAzMzI0LCAwLjAwMzM0MiwgMC4wMDMzNDYsIDAuMDAzMzQ5LCAwLjAwMzM1MSwgMC4wMDMzNTIiLCBcCi0gICAgICAgICAgIjAuMDAzMzM2LCAwLjAwMzM0OCwgMC4wMDMzNjYsIDAuMDAzMzcsIDAuMDAzMzcyLCAwLjAwMzM3NCwgMC4wMDMzNzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTMCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzOTI1LCAwLjAwMzkzNSwgMC4wMDM5NDksIDAuMDAzOTUxLCAwLjAwMzk1NCwgMC4wMDM5NTQsIDAuMDAzOTU2IiwgXAotICAgICAgICAgICIwLjAwMzg5OCwgMC4wMDM5MDgsIDAuMDAzOTIyLCAwLjAwMzkyNCwgMC4wMDM5MjYsIDAuMDAzOTI5LCAwLjAwMzkzIiwgXAotICAgICAgICAgICIwLjAwMzg5OCwgMC4wMDM5MDgsIDAuMDAzOTIyLCAwLjAwMzkyNCwgMC4wMDM5MjYsIDAuMDAzOTI5LCAwLjAwMzkyOSIsIFwKLSAgICAgICAgICAiMC4wMDM4OTgsIDAuMDAzOTA4LCAwLjAwMzkyMiwgMC4wMDM5MjUsIDAuMDAzOTI2LCAwLjAwMzkyOSwgMC4wMDM5MjgiLCBcCi0gICAgICAgICAgIjAuMDAzOTA4LCAwLjAwMzkxOCwgMC4wMDM5MzMsIDAuMDAzOTM2LCAwLjAwMzkzNywgMC4wMDM5MzgsIDAuMDAzOTM5IiwgXAotICAgICAgICAgICIwLjAwMzkyOSwgMC4wMDM5MzgsIDAuMDAzOTUyLCAwLjAwMzk1NSwgMC4wMDM5NTcsIDAuMDAzOTU2LCAwLjAwMzk1OSIsIFwKLSAgICAgICAgICAiMC4wMDM5NTMsIDAuMDAzOTYyLCAwLjAwMzk3NiwgMC4wMDM5NzksIDAuMDAzOTgxLCAwLjAwMzk4MiwgMC4wMDM5ODIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDU2NjYsIDAuMDA1Njc4LCAwLjAwNTY5NiwgMC4wMDU3LCAwLjAwNTcwMiwgMC4wMDU3MDQsIDAuMDA1NzA0IiwgXAotICAgICAgICAgICIwLjAwNTY0OCwgMC4wMDU2NiwgMC4wMDU2NzgsIDAuMDA1NjgxLCAwLjAwNTY4NCwgMC4wMDU2ODUsIDAuMDA1Njg2IiwgXAotICAgICAgICAgICIwLjAwNTY0OCwgMC4wMDU2NiwgMC4wMDU2NzcsIDAuMDA1NjgxLCAwLjAwNTY4MywgMC4wMDU2ODUsIDAuMDA1Njg1IiwgXAotICAgICAgICAgICIwLjAwNTY0NywgMC4wMDU2NTgsIDAuMDA1Njc2LCAwLjAwNTY4LCAwLjAwNTY4MiwgMC4wMDU2ODQsIDAuMDA1Njg0IiwgXAotICAgICAgICAgICIwLjAwNTY1NywgMC4wMDU2NjksIDAuMDA1Njg2LCAwLjAwNTY5LCAwLjAwNTY5MiwgMC4wMDU2OTQsIDAuMDA1Njk0IiwgXAotICAgICAgICAgICIwLjAwNTY3MiwgMC4wMDU2ODUsIDAuMDA1NzAyLCAwLjAwNTcwNiwgMC4wMDU3MDgsIDAuMDA1NzA5LCAwLjAwNTcxIiwgXAotICAgICAgICAgICIwLjAwNTY5NSwgMC4wMDU3MDUsIDAuMDA1NzI0LCAwLjAwNTcyOCwgMC4wMDU3MywgMC4wMDU3MzIsIDAuMDA1NzMzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUzEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzkwNSwgMC4wMDM5MTQsIDAuMDAzOTI5LCAwLjAwMzkzMiwgMC4wMDM5MzUsIDAuMDAzOTM2LCAwLjAwMzkzNyIsIFwKLSAgICAgICAgICAiMC4wMDM4OSwgMC4wMDM4OTksIDAuMDAzOTE1LCAwLjAwMzkxNywgMC4wMDM5MTksIDAuMDAzOTIxLCAwLjAwMzkyMSIsIFwKLSAgICAgICAgICAiMC4wMDM4OSwgMC4wMDM4OTksIDAuMDAzOTE1LCAwLjAwMzkxOCwgMC4wMDM5MiwgMC4wMDM5MjIsIDAuMDAzOTIyIiwgXAotICAgICAgICAgICIwLjAwMzg5MiwgMC4wMDM5MDEsIDAuMDAzOTE1LCAwLjAwMzkxOCwgMC4wMDM5MiwgMC4wMDM5MjIsIDAuMDAzOTIyIiwgXAotICAgICAgICAgICIwLjAwMzg5OCwgMC4wMDM5MDgsIDAuMDAzOTIzLCAwLjAwMzkyNSwgMC4wMDM5MjcsIDAuMDAzOTMsIDAuMDAzOTMxIiwgXAotICAgICAgICAgICIwLjAwMzkxNiwgMC4wMDM5MjYsIDAuMDAzOTQsIDAuMDAzOTQzLCAwLjAwMzk0NSwgMC4wMDM5NDcsIDAuMDAzOTQ4IiwgXAotICAgICAgICAgICIwLjAwMzkzMywgMC4wMDM5NDIsIDAuMDAzOTU3LCAwLjAwMzk1OSwgMC4wMDM5NjEsIDAuMDAzOTYzLCAwLjAwMzk2NCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjk0MywgMC4wMDI5NTUsIDAuMDAyOTc0LCAwLjAwMjk3OCwgMC4wMDI5OCwgMC4wMDI5ODIsIDAuMDAyOTgzIiwgXAotICAgICAgICAgICIwLjAwMjkyMSwgMC4wMDI5MzMsIDAuMDAyOTUxLCAwLjAwMjk1NSwgMC4wMDI5NTcsIDAuMDAyOTU5LCAwLjAwMjk2IiwgXAotICAgICAgICAgICIwLjAwMjkxNywgMC4wMDI5MjksIDAuMDAyOTQ3LCAwLjAwMjk1MSwgMC4wMDI5NTMsIDAuMDAyOTU1LCAwLjAwMjk1NiIsIFwKLSAgICAgICAgICAiMC4wMDI5MjYsIDAuMDAyOTM3LCAwLjAwMjk1NiwgMC4wMDI5NiwgMC4wMDI5NjIsIDAuMDAyOTY0LCAwLjAwMjk2NCIsIFwKLSAgICAgICAgICAiMC4wMDI5MjMsIDAuMDAyOTM1LCAwLjAwMjk1MywgMC4wMDI5NTcsIDAuMDAyOTYsIDAuMDAyOTYyLCAwLjAwMjk2MiIsIFwKLSAgICAgICAgICAiMC4wMDI5NDMsIDAuMDAyOTU2LCAwLjAwMjk3NCwgMC4wMDI5NzgsIDAuMDAyOTgsIDAuMDAyOTgyLCAwLjAwMjk4MyIsIFwKLSAgICAgICAgICAiMC4wMDI5NjQsIDAuMDAyOTc2LCAwLjAwMjk5NSwgMC4wMDI5OTksIDAuMDAzMDAxLCAwLjAwMzAwMywgMC4wMDMwMDQiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IE1YSTNYNCAqCi0gKiAtLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKE1YSTNYNCkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjM5ODQ2NDsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjM4NTY2OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYzNzA1NzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2Mzg1NjY7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwODk0LCAwLjAwMDg3NSwgMC4wMDA4NjUsIDAuMDAwODYsIDAuMDAwODU5LCAwLjAwMDg2LCAwLjAwMDg2NSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjQyMywgMC4wMDI0MTIsIDAuMDAyNDA2LCAwLjAwMjQwMywgMC4wMDI0MDMsIDAuMDAyNDA0LCAwLjAwMjQwOCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjYyNzg1OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDY2MTM3NTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2NjI3ODU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjE3LCAwLjAwMDIyLCAwLjAwMDIyLCAwLjAwMDIyMSwgMC4wMDAyMjEsIDAuMDAwMjIxLCAwLjAwMDIyMiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDIzNCwgMC4wMDAyMjgsIDAuMDAwMjI4LCAwLjAwMDIyOCwgMC4wMDAyMjcsIDAuMDAwMjI3LCAwLjAwMDIyNyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQykgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNTY3MzU7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNTY3MTI7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNTY3MzU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzI3LCAwLjAwMDMwMSwgMC4wMDAyOTcsIDAuMDAwMzA0LCAwLjAwMDMxNSwgMC4wMDAzNDEsIDAuMDAwMzY2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxNzI1LCAwLjAwMTcwNSwgMC4wMDE3MDEsIDAuMDAxNzA3LCAwLjAwMTcxOCwgMC4wMDE3NDYsIDAuMDAxNzY2Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxMzMzMjk7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxMzMzMDU7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxMzMzMjk7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMTEyLCAwLjAwMDA4NCwgMC4wMDAwODksIDAuMDAwMTA4LCAwLjAwMDExMiwgMC4wMDAxNCwgMC4wMDAxNjgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDE3MzUsIDAuMDAxNzE1LCAwLjAwMTcxNCwgMC4wMDE3MjIsIDAuMDAxNzM2LCAwLjAwMTc2MywgMC4wMDE3ODciKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFMxKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE0ODc4MzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE0ODczNjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE0ODc4MzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyNDIsIDAuMDAwMjE1LCAwLjAwMDIyLCAwLjAwMDIyMiwgMC4wMDAyMzIsIDAuMDAwMjU4LCAwLjAwMDI4NCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTk3NCwgMC4wMDE5NTQsIDAuMDAxOTYyLCAwLjAwMTk2NCwgMC4wMDE5NzQsIDAuMDAxOTk5LCAwLjAwMjAyMyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAxLjAzNTQ3OwotICAgIGZ1bmN0aW9uIDogIighKChTMSBDKSArICghUzEgKChTMCBCKSArICghUzAgQSkpKSkpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEyODU4NSwgMC4yMDY3MzgsIDAuMjc4NDk1LCAwLjMyOTY0LCAwLjQxMTM1NCwgMC40ODI4NjQsIDAuNTg0OTk1IiwgXAotICAgICAgICAgICIwLjEzNzEyMSwgMC4yMTUyNjMsIDAuMjg3MDE5LCAwLjMzODE1MywgMC40MTk4NzgsIDAuNDkxMzkzLCAwLjU5MzUxNyIsIFwKLSAgICAgICAgICAiMC4xNDY5NDgsIDAuMjI1MDc3LCAwLjI5NjgzNCwgMC4zNDc5NjksIDAuNDI5Njk0LCAwLjUwMTIsIDAuNjAzMzgyIiwgXAotICAgICAgICAgICIwLjE1NjMwMywgMC4yMzQ0MDgsIDAuMzA2MTY1LCAwLjM1NzI4MywgMC40MzkwMzEsIDAuNTEwNTM0LCAwLjYxMjczNiIsIFwKLSAgICAgICAgICAiMC4xNjQ4NzMsIDAuMjQzMDI4LCAwLjMxNDc3OCwgMC4zNjU4NzksIDAuNDQ3NjI0LCAwLjUxOTE1NSwgMC42MjEyNDMiLCBcCi0gICAgICAgICAgIjAuMTc3MTI1LCAwLjI1NTI0LCAwLjMyNzAwMSwgMC4zNzgxMTEsIDAuNDU5ODYsIDAuNTMxNDU1LCAwLjYzMzUwNiIsIFwKLSAgICAgICAgICAiMC4xODY0NDYsIDAuMjY0NjEsIDAuMzM2MzM5LCAwLjM4NzQ3MSwgMC40NjkxOTQsIDAuNTQwNzA5LCAwLjY0Mjg0Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQyODM1LCAwLjE4MjUwMSwgMC4zMjcyMiwgMC40MzIxOTEsIDAuNTk5MzYxLCAwLjc0NjUxMiwgMC45NTgxMjgiLCBcCi0gICAgICAgICAgIjAuMDQyNzcyLCAwLjE4MjQ5OSwgMC4zMjcyMDIsIDAuNDMyMTY4LCAwLjU5OTM2MywgMC43NDY2MTgsIDAuOTU4MTI1IiwgXAotICAgICAgICAgICIwLjA0Mjg0NSwgMC4xODI1MDEsIDAuMzI3MjI0LCAwLjQzMTQ0MSwgMC41OTkzNDYsIDAuNzQ3MTA0LCAwLjk1ODIxNSIsIFwKLSAgICAgICAgICAiMC4wNDI4ODYsIDAuMTgyNTA0LCAwLjMyNzIxNywgMC40MzE1OTksIDAuNjAwMTA4LCAwLjc0NzQ1MSwgMC45NTgyNjYiLCBcCi0gICAgICAgICAgIjAuMDQyODg0LCAwLjE4MjQ1MywgMC4zMjc1MjEsIDAuNDMxOTk0LCAwLjU5OTk1LCAwLjc0NTIyOCwgMC45NTY4ODYiLCBcCi0gICAgICAgICAgIjAuMDQyNzkxLCAwLjE4MjQ5MSwgMC4zMjcyMTYsIDAuNDMxOTc3LCAwLjU5OTMzLCAwLjc0NTc2OSwgMC45NTgxMjEiLCBcCi0gICAgICAgICAgIjAuMDQyNzg0LCAwLjE4MjYxOCwgMC4zMjcyNTMsIDAuNDMyMTMxLCAwLjU5OTI5NywgMC43NDY1NTIsIDAuOTU3OTkyIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTMwMTE3LCAwLjIxMDk0MSwgMC4yODQ3NjYsIDAuMzM3Mjg0LCAwLjQyMTI3NiwgMC40OTQ3OCwgMC41OTk2OSIsIFwKLSAgICAgICAgICAiMC4xMzg5MiwgMC4yMTk3NzIsIDAuMjkzNTksIDAuMzQ2MTA4LCAwLjQzMDA5OSwgMC41MDM1OTksIDAuNjA4NTE0IiwgXAotICAgICAgICAgICIwLjE0OTYxMSwgMC4yMzA1MSwgMC4zMDQzMjEsIDAuMzU2ODY3LCAwLjQ0MDgzNiwgMC41MTQzMDMsIDAuNjE5MjMxIiwgXAotICAgICAgICAgICIwLjE1OTkwNiwgMC4yNDA3OTIsIDAuMzE0NjE1LCAwLjM2NzE1MywgMC40NTExMjgsIDAuNTI0NTg1LCAwLjYyOTU0NSIsIFwKLSAgICAgICAgICAiMC4xNjk2NjQsIDAuMjUwNTMsIDAuMzI0MzQ4LCAwLjM3Njg2OCwgMC40NjA4NTksIDAuNTM0MzU4LCAwLjYzOTI3NyIsIFwKLSAgICAgICAgICAiMC4xODM1MjcsIDAuMjY0Mzg5LCAwLjMzODE4NywgMC4zOTA3MDUsIDAuNDc0Njk4LCAwLjU0ODE5NiwgMC42NTMxMTUiLCBcCi0gICAgICAgICAgIjAuMTk0MjA2LCAwLjI3NTA4OSwgMC4zNDg5MTEsIDAuNDAxNDU5LCAwLjQ4NTQyOSwgMC41NTg4OTYsIDAuNjYzODE3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQzNDg0LCAwLjE4NTA2NiwgMC4zMzEwNDcsIDAuNDM2ODYzLCAwLjYwNTM2NCwgMC43NTM3NzcsIDAuOTY4MTA2IiwgXAotICAgICAgICAgICIwLjA0MzUxNCwgMC4xODUwNjEsIDAuMzMxMDczLCAwLjQzNjg2MywgMC42MDU4OTQsIDAuNzUzNjMzLCAwLjk2ODAzNiIsIFwKLSAgICAgICAgICAiMC4wNDM0OCwgMC4xODUwNDksIDAuMzMxMDg5LCAwLjQzNjkzOSwgMC42MDU0MTYsIDAuNzU1MTQ2LCAwLjk2NjU1NCIsIFwKLSAgICAgICAgICAiMC4wNDM0NzYsIDAuMTg1MDEsIDAuMzMxMDgzLCAwLjQzNjkwNiwgMC42MDU0LCAwLjc1NTA5OSwgMC45NjU4NzkiLCBcCi0gICAgICAgICAgIjAuMDQzNTE5LCAwLjE4NTA0MiwgMC4zMzEwNTYsIDAuNDM2ODQyLCAwLjYwNTk2LCAwLjc1MzQ5MSwgMC45NjgwMzYiLCBcCi0gICAgICAgICAgIjAuMDQzMzkzLCAwLjE4NTAxNSwgMC4zMzEwNTIsIDAuNDM2ODMxLCAwLjYwNTg3NywgMC43NTM1OTYsIDAuOTY3OTMzIiwgXAotICAgICAgICAgICIwLjA0MzUwMywgMC4xODUxMDgsIDAuMzMxMTU5LCAwLjQzNjk1NywgMC42MDYzOTUsIDAuNzU1MTU0LCAwLjk2NjM3OCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEyODI0OSwgMC4yMDY0MDEsIDAuMjc4MTUzLCAwLjMyOTI4NCwgMC40MTEwMDksIDAuNDgyNTIzLCAwLjU4NDY0NyIsIFwKLSAgICAgICAgICAiMC4xMzY3MzcsIDAuMjE0ODY3LCAwLjI4NjYxNiwgMC4zMzc3MjQsIDAuNDE5NDcyLCAwLjQ5MDk4OCwgMC41OTMxMTEiLCBcCi0gICAgICAgICAgIjAuMTQ2NTE1LCAwLjIyNDU4MSwgMC4yOTYzMzQsIDAuMzQ3NDg1LCAwLjQyOTE5MiwgMC41MDA2OTYsIDAuNjAyODY4IiwgXAotICAgICAgICAgICIwLjE1NTY5OCwgMC4yMzM4MjksIDAuMzA1NTgyLCAwLjM1NjcxNCwgMC40Mzg0MzgsIDAuNTA5OTUyLCAwLjYxMjA3NSIsIFwKLSAgICAgICAgICAiMC4xNjQyMywgMC4yNDI0MDcsIDAuMzE0MTI1LCAwLjM2NTI1MywgMC40NDY5ODIsIDAuNTE4NTI1LCAwLjYyMDY0NCIsIFwKLSAgICAgICAgICAiMC4xNzYzOCwgMC4yNTQ0NSwgMC4zMjYxNjMsIDAuMzc3MzA2LCAwLjQ1OTA4NCwgMC41MzA1MzQsIDAuNjMyNjQ4IiwgXAotICAgICAgICAgICIwLjE4NTU0MywgMC4yNjM2ODUsIDAuMzM1NDIsIDAuMzg2NTMxLCAwLjQ2ODI3NSwgMC41Mzk4MjMsIDAuNjQxOTI3Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQyNzQzLCAwLjE4MjQ2LCAwLjMyNzE3NCwgMC40MzIxMzYsIDAuNTk5MzM3LCAwLjc0NjU2OCwgMC45NTgxIiwgXAotICAgICAgICAgICIwLjA0MjgyMywgMC4xODI0NTcsIDAuMzI3MTc0LCAwLjQzMTk1NCwgMC41OTkzMjksIDAuNzQ2NTM1LCAwLjk1ODEwMiIsIFwKLSAgICAgICAgICAiMC4wNDI4NTYsIDAuMTgyNDYzLCAwLjMyNzE5NiwgMC40MzEyNDgsIDAuNTk5MzQzLCAwLjc0NzA4NiwgMC45NTgxNjkiLCBcCi0gICAgICAgICAgIjAuMDQyODIyLCAwLjE4MjQ2MiwgMC4zMjcxNzksIDAuNDMyMTM5LCAwLjU5OTM0LCAwLjc0NjU5OCwgMC45NTgwOTciLCBcCi0gICAgICAgICAgIjAuMDQyODE0LCAwLjE4MjQxOSwgMC4zMjc0MDcsIDAuNDMxOTY3LCAwLjU5OTk0MywgMC43NDUyMTQsIDAuOTU2MzE0IiwgXAotICAgICAgICAgICIwLjA0MjgxMSwgMC4xODI0MjYsIDAuMzI3MTU1LCAwLjQzMjEyLCAwLjYwMDA3OSwgMC43NDYzOTMsIDAuOTU2ODYxIiwgXAotICAgICAgICAgICIwLjA0Mjc5LCAwLjE4MjUzNSwgMC4zMjcxOCwgMC40MzE5MjQsIDAuNTk5MjE1LCAwLjc0NjE4NCwgMC45NTc5NzIiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMjg4NjksIDAuMjA5NzI0LCAwLjI4MzUzNywgMC4zMzYwNTUsIDAuNDIwMDQ1LCAwLjQ5MzU4NSwgMC41OTg0NDkiLCBcCi0gICAgICAgICAgIjAuMTM3NjIsIDAuMjE4NTE0LCAwLjI5MjI5NiwgMC4zNDQ4NDEsIDAuNDI4ODAyLCAwLjUwMjI3NCwgMC42MDcxODUiLCBcCi0gICAgICAgICAgIjAuMTQ4Mzc1LCAwLjIyOTIxNywgMC4zMDMwMzYsIDAuMzU1NTUsIDAuNDM5NTQzLCAwLjUxMzA0MywgMC42MTc5NTMiLCBcCi0gICAgICAgICAgIjAuMTU4NzY2LCAwLjIzOTY3OSwgMC4zMTM0ODYsIDAuMzY2MDAzLCAwLjQ0OTk4MSwgMC41MjM0NzgsIDAuNjI4NDE1IiwgXAotICAgICAgICAgICIwLjE2ODM5MywgMC4yNDkyMTgsIDAuMzIzMDM2LCAwLjM3NTU3NCwgMC40NTk1NDksIDAuNTMzMDA1LCAwLjYzNzk2NyIsIFwKLSAgICAgICAgICAiMC4xODIxNDksIDAuMjYyOTkxLCAwLjMzNjc4MywgMC4zODkyOTksIDAuNDczMjg4LCAwLjU0Njc4NSwgMC42NTE3MDciLCBcCi0gICAgICAgICAgIjAuMTkyODc2LCAwLjI3MzcxOCwgMC4zNDc1MzEsIDAuNDAwMDY1LCAwLjQ4NDA1NCwgMC41NTc1NjksIDAuNjYyNDIzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQzNDYxLCAwLjE4NDk1OSwgMC4zMzEwNzgsIDAuNDM2NDk5LCAwLjYwNTQxNCwgMC43NTM1OTEsIDAuOTY4MDY0IiwgXAotICAgICAgICAgICIwLjA0MzQ2NiwgMC4xODQ5MzksIDAuMzMxMDYsIDAuNDM2OTY0LCAwLjYwNTM5MiwgMC43NTUxNzQsIDAuOTY2MjkxIiwgXAotICAgICAgICAgICIwLjA0MzQ1NCwgMC4xODQ5NTUsIDAuMzMxMDMxLCAwLjQzNjgwNywgMC42MDUzNDcsIDAuNzUzNzU4LCAwLjk2Nzk4MSIsIFwKLSAgICAgICAgICAiMC4wNDM0NjQsIDAuMTg0OTM0LCAwLjMzMDk1NiwgMC40MzY4MDMsIDAuNjA2MzExLCAwLjc1NDMxMiwgMC45Njc5MTYiLCBcCi0gICAgICAgICAgIjAuMDQzNDIyLCAwLjE4NDk2MywgMC4zMzEwMDYsIDAuNDM2ODcxLCAwLjYwNTM3LCAwLjc1NTA2NywgMC45NjU5MzUiLCBcCi0gICAgICAgICAgIjAuMDQzMzM3LCAwLjE4NDk3LCAwLjMzMDk3OSwgMC40MzY3NzcsIDAuNjA2MDU1LCAwLjc1MzQ3MSwgMC45Njc4NzciLCBcCi0gICAgICAgICAgIjAuMDQzNDcsIDAuMTg1MDI3LCAwLjMzMTEyMSwgMC40MzYzMywgMC42MDYzOTcsIDAuNzU1MzQ1LCAwLjk2Nzc5NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5NzcyOCwgMC4xNzU3NzQsIDAuMjQ3NDM3LCAwLjI5ODU2LCAwLjM4MDMzNCwgMC40NTE4NDQsIDAuNTUzOTQxIiwgXAotICAgICAgICAgICIwLjEwNzQxMiwgMC4xODU0NTcsIDAuMjU3MTc4LCAwLjMwODMxLCAwLjM5MDA1NCwgMC40NjE1ODEsIDAuNTYzNzEzIiwgXAotICAgICAgICAgICIwLjExODIsIDAuMTk2MjIzLCAwLjI2Nzk4MSwgMC4zMTkwOTMsIDAuNDAwODQ3LCAwLjQ3MjQyOSwgMC41NzQ0ODUiLCBcCi0gICAgICAgICAgIjAuMTI2OTc5LCAwLjIwNTAyNSwgMC4yNzY3NzksIDAuMzI3ODksIDAuNDA5NjM2LCAwLjQ4MTE4OSwgMC41ODMyOTIiLCBcCi0gICAgICAgICAgIjAuMTM0MjkzLCAwLjIxMjMwNSwgMC4yODQwNTUsIDAuMzM1MTY2LCAwLjQxNjkxMywgMC40ODg0NjUsIDAuNTkwNTY4IiwgXAotICAgICAgICAgICIwLjE0NDA1OSwgMC4yMjIwODcsIDAuMjkzODExLCAwLjM0NDkyNCwgMC40MjY2NzYsIDAuNDk4MjcsIDAuNjAwMzIiLCBcCi0gICAgICAgICAgIjAuMTUxMzI0LCAwLjIyOTM3MiwgMC4zMDExMTgsIDAuMzUyMjM0LCAwLjQzMzk4NywgMC41MDU1NTIsIDAuNjA3NjI2Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQyNTI2LCAwLjE4MjMwMiwgMC4zMjcwNzEsIDAuNDMxNDczLCAwLjYwMDExMywgMC43NDYwNTIsIDAuOTU2OTk1IiwgXAotICAgICAgICAgICIwLjA0MjQ4MywgMC4xODIyMDQsIDAuMzI3MDg0LCAwLjQzMTk4NywgMC42MDAwOTYsIDAuNzQ3NDU1LCAwLjk1NjYyMyIsIFwKLSAgICAgICAgICAiMC4wNDI0MDgsIDAuMTgyMjkxLCAwLjMyNzA5OCwgMC40MzE4OTEsIDAuNTk5MzI0LCAwLjc0NiwgMC45NTgwOTUiLCBcCi0gICAgICAgICAgIjAuMDQyNDQ4LCAwLjE4MjI5NiwgMC4zMjcwOSwgMC40MzE4OTcsIDAuNTk5MjQyLCAwLjc0NjIxMiwgMC45NTgxMDgiLCBcCi0gICAgICAgICAgIjAuMDQyNDYzLCAwLjE4MjE4NCwgMC4zMjczMTMsIDAuNDMxODk1LCAwLjU5OTI0LCAwLjc0NjE4OCwgMC45NTgxMTQiLCBcCi0gICAgICAgICAgIjAuMDQyNDEzLCAwLjE4MjMzOSwgMC4zMjcxMDYsIDAuNDMxODU5LCAwLjU5OTI2NiwgMC43NDYxNDEsIDAuOTU3OTU0IiwgXAotICAgICAgICAgICIwLjA0MjQ2MiwgMC4xODIyOTIsIDAuMzI3Mjg3LCAwLjQzMTg5OSwgMC41OTkzNzIsIDAuNzQ3NDA4LCAwLjk1Nzk1OCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwMTk4MSwgMC4xODI5MjcsIDAuMjU2NzA1LCAwLjMwOTIzLCAwLjM5MzIyMywgMC40NjY2NTQsIDAuNTcxNjMyIiwgXAotICAgICAgICAgICIwLjExMjIxLCAwLjE5MzA5NiwgMC4yNjY4OTcsIDAuMzE5NDEsIDAuNDAzMzgyLCAwLjQ3Njg3MiwgMC41ODE4MDMiLCBcCi0gICAgICAgICAgIjAuMTIzNTI0LCAwLjIwNDQ5NiwgMC4yNzgyMzksIDAuMzMwNzY5LCAwLjQxNDc2MywgMC40ODgyLCAwLjU5MzE0NCIsIFwKLSAgICAgICAgICAiMC4xMzI3MjIsIDAuMjEzNjYyLCAwLjI4NzQzMSwgMC4zMzk5NDIsIDAuNDIzOTI3LCAwLjQ5NzQxNywgMC42MDIzMjkiLCBcCi0gICAgICAgICAgIjAuMTQwOTI0LCAwLjIyMTc3MiwgMC4yOTU1NzIsIDAuMzQ4MDc5LCAwLjQzMjA1NywgMC41MDU1MzUsIDAuNjEwNDgyIiwgXAotICAgICAgICAgICIwLjE1MTYzNSwgMC4yMzI1NzYsIDAuMzA2Mzg1LCAwLjM1ODg5NSwgMC40NDI4NjgsIDAuNTE2MzU1LCAwLjYyMTI5MSIsIFwKLSAgICAgICAgICAiMC4xNjAwOTcsIDAuMjQwOTk0LCAwLjMxNDc5NiwgMC4zNjczMSwgMC40NTEyOSwgMC41MjQ3NzMsIDAuNjI5NzAyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQzNTQsIDAuMTg1MDE1LCAwLjMzMTA3OSwgMC40MzY4NjEsIDAuNjA2NTExLCAwLjc1NTA5NSwgMC45Njc5NDIiLCBcCi0gICAgICAgICAgIjAuMDQzNjAzLCAwLjE4NDkxLCAwLjMzMTAyNywgMC40MzY4MjcsIDAuNjA2MzAyLCAwLjc1NDI5NiwgMC45Njc5NTIiLCBcCi0gICAgICAgICAgIjAuMDQzNTExLCAwLjE4NDk4MSwgMC4zMzA5ODIsIDAuNDM2ODM4LCAwLjYwNjQ5MSwgMC43NTQ2NDgsIDAuOTY3OTkiLCBcCi0gICAgICAgICAgIjAuMDQzNDc5LCAwLjE4NDk3NywgMC4zMzEwMzgsIDAuNDM2Nzk4LCAwLjYwNTMxNywgMC43NTM1MjcsIDAuOTY3ODg4IiwgXAotICAgICAgICAgICIwLjA0MzQyNCwgMC4xODUwNTEsIDAuMzMxNDE3LCAwLjQzNjc3NywgMC42MDYzMzQsIDAuNzU0MjI1LCAwLjk2Nzg2OSIsIFwKLSAgICAgICAgICAiMC4wNDM0MzUsIDAuMTg1MTMsIDAuMzMwNTg5LCAwLjQzNjgwOSwgMC42MDYyOTgsIDAuNzU0MzA1LCAwLjk2NzgzOSIsIFwKLSAgICAgICAgICAiMC4wNDM1MzksIDAuMTg1MDA3LCAwLjMzMDk5NCwgMC40MzY4NCwgMC42MDUzODgsIDAuNzUzMzI0LCAwLjk2Nzg5OCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMzU4NDcsIDAuMjEzOTksIDAuMjg1NzQyLCAwLjMzNjg2LCAwLjQxODYwMiwgMC40OTAxMTEsIDAuNTkyMzEzIiwgXAotICAgICAgICAgICIwLjE0NTkwNCwgMC4yMjQwNDMsIDAuMjk1NzkyLCAwLjM0Njg5OSwgMC40Mjg2NDYsIDAuNTAwMTYzLCAwLjYwMjI4NSIsIFwKLSAgICAgICAgICAiMC4xNTY0OTMsIDAuMjM0NjI2LCAwLjMwNjM2NiwgMC4zNTc0ODUsIDAuNDM5MjM0LCAwLjUxMDc0NiwgMC42MTI4OTYiLCBcCi0gICAgICAgICAgIjAuMTY0ODUxLCAwLjI0Mjk1MiwgMC4zMTQ2OTksIDAuMzY1ODkxLCAwLjQ0NzYwOCwgMC41MTkxMiwgMC42MjEyNDkiLCBcCi0gICAgICAgICAgIjAuMTcxNzY2LCAwLjI0OTkzMywgMC4zMjE2NDIsIDAuMzcyNzE2LCAwLjQ1NDUxMywgMC41MjYxMDcsIDAuNjI4MTQ5IiwgXAotICAgICAgICAgICIwLjE4MTIwNCwgMC4yNTk0ODIsIDAuMzMxMjI4LCAwLjM4MjMzMywgMC40NjQwNzMsIDAuNTM1NjE1LCAwLjYzNzczMiIsIFwKLSAgICAgICAgICAiMC4xODg1NzksIDAuMjY2NTc2LCAwLjMzODQ0MSwgMC4zODk0MjUsIDAuNDcxMTY2LCAwLjU0MjcxNCwgMC42NDQ5NSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0Mjc4NiwgMC4xODI0NjMsIDAuMzI3MTcxLCAwLjQzMTU3LCAwLjYwMDA5LCAwLjc0NzQ1MiwgMC45NTgzMjEiLCBcCi0gICAgICAgICAgIjAuMDQyODE1LCAwLjE4MjQ1NywgMC4zMjcxNzUsIDAuNDMxOTU0LCAwLjU5OTMyNywgMC43NDY1MywgMC45NTgxMDIiLCBcCi0gICAgICAgICAgIjAuMDQyODEsIDAuMTgyMzI3LCAwLjMyNzE3NiwgMC40MzE5NDEsIDAuNjAwMTE1LCAwLjc0NzQ0MywgMC45NTY1ODgiLCBcCi0gICAgICAgICAgIjAuMDQyODAzLCAwLjE4MjQ1NywgMC4zMjcxNzUsIDAuNDMyMTUsIDAuNTk5MzIzLCAwLjc0NjU1NiwgMC45NTgxMDUiLCBcCi0gICAgICAgICAgIjAuMDQyODI0LCAwLjE4MjQzOCwgMC4zMjc0MDksIDAuNDMxOTczLCAwLjU5OTM5OCwgMC43NDYwNTgsIDAuOTU4MDgxIiwgXAotICAgICAgICAgICIwLjA0MjY2NSwgMC4xODI0NDIsIDAuMzI3MTU5LCAwLjQzMjE0MSwgMC41OTk3OTQsIDAuNzQ2MjU3LCAwLjk1ODEyMSIsIFwKLSAgICAgICAgICAiMC4wNDI3NjYsIDAuMTgyNTQ1LCAwLjMyNzEwMiwgMC40MzE5MTIsIDAuNTk5NzgsIDAuNzQ2MTg1LCAwLjk1Nzk4MSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEzODQxMywgMC4yMTkyODEsIDAuMjkzMDk3LCAwLjM0NTYxNSwgMC40Mjk2MDQsIDAuNTAzMTAxLCAwLjYwODAyIiwgXAotICAgICAgICAgICIwLjE0ODE0LCAwLjIyOTAwMiwgMC4zMDI4MTgsIDAuMzU1MzM2LCAwLjQzOTMyNSwgMC41MTI4MjMsIDAuNjE3NzQxIiwgXAotICAgICAgICAgICIwLjE1ODA2NSwgMC4yMzg4ODQsIDAuMzEyNzUyLCAwLjM2NTI2OCwgMC40NDkyNTksIDAuNTIyNzI4LCAwLjYyNzY2OCIsIFwKLSAgICAgICAgICAiMC4xNjU1MDcsIDAuMjQ2MzU5LCAwLjMyMDE3LCAwLjM3MjY5MSwgMC40NTY2NzgsIDAuNTMwMTc0LCAwLjYzNTA5OCIsIFwKLSAgICAgICAgICAiMC4xNzE2NjksIDAuMjUyNjE5LCAwLjMyNjQyNywgMC4zNzg5NTEsIDAuNDYyOTIyLCAwLjUzNjQxOSwgMC42NDEzNTgiLCBcCi0gICAgICAgICAgIjAuMTgwMTQ3LCAwLjI2MDkwNCwgMC4zMzQ3MDQsIDAuMzg3MjgyLCAwLjQ3MTI4NiwgMC41NDQ3NTIsIDAuNjQ5NjQiLCBcCi0gICAgICAgICAgIjAuMTg2MjM3LCAwLjI2NzE2MywgMC4zNDA5OCwgMC4zOTM0OTYsIDAuNDc3NDc3LCAwLjU1MDg2OSwgMC42NTU3ODIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDM1MTYsIDAuMTg1MDY3LCAwLjMzMTA2LCAwLjQzNjg1NiwgMC42MDYwMzIsIDAuNzUzNTU4LCAwLjk2ODAwOSIsIFwKLSAgICAgICAgICAiMC4wNDM1MTgsIDAuMTg1MDYzLCAwLjMzMTA2MSwgMC40MzY4NTcsIDAuNjA2MDI2LCAwLjc1MzU1MywgMC45NjgwMSIsIFwKLSAgICAgICAgICAiMC4wNDM1MSwgMC4xODQ5NTUsIDAuMzMwODk0LCAwLjQzNjg1OSwgMC42MDUzODgsIDAuNzUzODA4LCAwLjk2ODAyNSIsIFwKLSAgICAgICAgICAiMC4wNDM0ODQsIDAuMTg1MDM5LCAwLjMzMTA0OCwgMC40MzY4NjgsIDAuNjA2MTY0LCAwLjc1MzQyNSwgMC45Njc5OTEiLCBcCi0gICAgICAgICAgIjAuMDQzNDk3LCAwLjE4NDk4NSwgMC4zMzA5OTMsIDAuNDM2ODM5LCAwLjYwNjM0NCwgMC43NTQzNDEsIDAuOTY3OTYxIiwgXAotICAgICAgICAgICIwLjA0MzQzMSwgMC4xODUwMzcsIDAuMzMxMzY4LCAwLjQzNzAwOCwgMC42MDUxNDMsIDAuNzU0MjEsIDAuOTY3ODc3IiwgXAotICAgICAgICAgICIwLjA0MzQxMiwgMC4xODUxMzUsIDAuMzMxNDkxLCAwLjQzNjgzOSwgMC42MDYzNjYsIDAuNzUzNTc3LCAwLjk2Nzg5NiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMjIwMzYsIDAuMjAwMTk4LCAwLjI3MTk0MSwgMC4zMjMwNjEsIDAuNDA0ODEyLCAwLjQ3NjMyNSwgMC41Nzg0NzciLCBcCi0gICAgICAgICAgIjAuMTMwNzc0LCAwLjIwODk5MywgMC4yODA3MzgsIDAuMzMxODQ1LCAwLjQxMzU4MywgMC40ODUxMjcsIDAuNTg3MjQ3IiwgXAotICAgICAgICAgICIwLjE0MjExNSwgMC4yMjAyOTUsIDAuMjkyMDQ1LCAwLjM0MzE4LCAwLjQyNDkwMywgMC40OTY0MiwgMC41OTg1NDciLCBcCi0gICAgICAgICAgIjAuMTUzLCAwLjIzMTI1MywgMC4zMDI5OTMsIDAuMzU0MTA0LCAwLjQzNTg5MiwgMC41MDczNzgsIDAuNjA5MzE0IiwgXAotICAgICAgICAgICIwLjE2MjczOCwgMC4yNDA4OTksIDAuMzEyNjUyLCAwLjM2MzY4MywgMC40NDU0MjIsIDAuNTE3MDMsIDAuNjE5MTU0IiwgXAotICAgICAgICAgICIwLjE3NjA4OCwgMC4yNTQxNzMsIDAuMzI1ODk1LCAwLjM3NzAzMiwgMC40NTg3NSwgMC41MzAyOTksIDAuNjMyNDMzIiwgXAotICAgICAgICAgICIwLjE4NTk3NywgMC4yNjQxNzQsIDAuMzM1ODc2LCAwLjM4NzAyNiwgMC40Njg3MzMsIDAuNTQwMzM1LCAwLjY0MjQyNyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0Mjg0MiwgMC4xODIzNzQsIDAuMzI3MjExLCAwLjQzMTk2MywgMC42MDAxNDUsIDAuNzQ3NDcyLCAwLjk1NjYxNCIsIFwKLSAgICAgICAgICAiMC4wNDI4NjYsIDAuMTgyNDI1LCAwLjMyNzIxNCwgMC40MzE5OTcsIDAuNTk5NzU4LCAwLjc0NTIwNiwgMC45NTgxNTIiLCBcCi0gICAgICAgICAgIjAuMDQyNzY2LCAwLjE4MjQ4MSwgMC4zMjcyMDgsIDAuNDMyMTY0LCAwLjU5OTMzNiwgMC43NDY2MTQsIDAuOTU4MTI5IiwgXAotICAgICAgICAgICIwLjA0MjgwNywgMC4xODI0OTYsIDAuMzI2ODcyLCAwLjQzMTk5NSwgMC42MDAyMDUsIDAuNzQ1MjI2LCAwLjk1NjYxIiwgXAotICAgICAgICAgICIwLjA0Mjc4MiwgMC4xODI0OTgsIDAuMzI3NDIyLCAwLjQzMTk4NiwgMC41OTk4MDQsIDAuNzQ2NTMzLCAwLjk1ODEyMyIsIFwKLSAgICAgICAgICAiMC4wNDI4MzksIDAuMTgyNTA2LCAwLjMyNzE5MiwgMC40MzE5ODUsIDAuNTk5MjkxLCAwLjc0NjIyNiwgMC45NTgxNDkiLCBcCi0gICAgICAgICAgIjAuMDQyNzc1LCAwLjE4MjU4NCwgMC4zMjcyMzYsIDAuNDMxOTU5LCAwLjU5OTI3NywgMC43NDYyMDksIDAuOTU3OTg4Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTIzMTY3LCAwLjIwNDAxOSwgMC4yNzc4NCwgMC4zMzAzNjgsIDAuNDE0MzQ4LCAwLjQ4NzgsIDAuNTkyNzU4IiwgXAotICAgICAgICAgICIwLjEzMjE5MiwgMC4yMTMwMTUsIDAuMjg2ODI4LCAwLjMzOTM0NSwgMC40MjMzMTgsIDAuNDk2ODYzLCAwLjYwMTczOCIsIFwKLSAgICAgICAgICAiMC4xNDM4NDMsIDAuMjI0Njc3LCAwLjI5ODQ5OSwgMC4zNTEwMTYsIDAuNDM1MDA5LCAwLjUwODQ3OSwgMC42MTM0MTciLCBcCi0gICAgICAgICAgIjAuMTU1MTcyLCAwLjIzNjA4MywgMC4zMDk4OTEsIDAuMzYyNDA4LCAwLjQ0NjM4OCwgMC41MTk4ODUsIDAuNjI0ODIyIiwgXAotICAgICAgICAgICIwLjE2NTM3MiwgMC4yNDYyODEsIDAuMzIwMDg4LCAwLjM3MjYwNSwgMC40NTY1ODUsIDAuNTMwMDgyLCAwLjYzNTAyIiwgXAotICAgICAgICAgICIwLjE3OTcyOSwgMC4yNjA1NDcsIDAuMzM0MzYsIDAuMzg2ODc4LCAwLjQ3MDg2OCwgMC41NDQzNjcsIDAuNjQ5MjgyIiwgXAotICAgICAgICAgICIwLjE5MDQ0NSwgMC4yNzEzNjMsIDAuMzQ1MTYyLCAwLjM5NzY5MSwgMC40ODE2NzEsIDAuNTU1MTY1LCAwLjY2MDEwNiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0MzQ3MiwgMC4xODUwMjQsIDAuMzMwNjUxLCAwLjQzNjg5NCwgMC42MDU0NjEsIDAuNzU1MTM2LCAwLjk2NTgzNSIsIFwKLSAgICAgICAgICAiMC4wNDM0NCwgMC4xODUwMTMsIDAuMzMxMDMzLCAwLjQzNjgzMSwgMC42MDYxOTcsIDAuNzUzNDI2LCAwLjk2Nzk2MSIsIFwKLSAgICAgICAgICAiMC4wNDMzNTMsIDAuMTg1MDA0LCAwLjMzMTA0MSwgMC40MzY4MjUsIDAuNjA1MzY5LCAwLjc1MzgxNiwgMC45NjgwMDciLCBcCi0gICAgICAgICAgIjAuMDQzNDY0LCAwLjE4NDkzMywgMC4zMzA5NiwgMC40MzY4MDQsIDAuNjA2MzA5LCAwLjc1NDMwOCwgMC45Njc5MTYiLCBcCi0gICAgICAgICAgIjAuMDQzNDY0LCAwLjE4NDkzMywgMC4zMzA5NTYsIDAuNDM2ODA0LCAwLjYwNjMxLCAwLjc1NDMwMywgMC45Njc5MTEiLCBcCi0gICAgICAgICAgIjAuMDQzMzc0LCAwLjE4NDk4MywgMC4zMzA5NTYsIDAuNDM2Nzg1LCAwLjYwNTMxNywgMC43NTM1NzgsIDAuOTY3OTM0IiwgXAotICAgICAgICAgICIwLjA0MzQ2MSwgMC4xODQ5MjIsIDAuMzMxMDksIDAuNDM2ODAzLCAwLjYwNjMzNiwgMC43NTQzNjMsIDAuOTY3OTA5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlMxIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3NDgzNCwgMC4xNTI4MDEsIDAuMjI0NTI3LCAwLjI3NTY1MywgMC4zNTczODgsIDAuNDI4OTUxLCAwLjUzMTA0NSIsIFwKLSAgICAgICAgICAiMC4wODM4OTEsIDAuMTYxODkyLCAwLjIzMzY0MywgMC4yODQ3NTYsIDAuMzY2NTA5LCAwLjQzODA5NSwgMC41NDAxNDkiLCBcCi0gICAgICAgICAgIjAuMDk1NTIsIDAuMTczNTA4LCAwLjI0NTI2OSwgMC4yOTYzODUsIDAuMzc4MTM5LCAwLjQ0OTczMiwgMC41NTE3ODUiLCBcCi0gICAgICAgICAgIjAuMTA3Mzg2LCAwLjE4NTM1OSwgMC4yNTcxMzEsIDAuMzA4MjM4LCAwLjM4OTk4NywgMC40NjE1MzUsIDAuNTYzNzEzIiwgXAotICAgICAgICAgICIwLjExODk4NiwgMC4xOTcwMDYsIDAuMjY4NzYzLCAwLjMxOTg4NCwgMC40MDE2MzgsIDAuNDczMjQ3LCAwLjU3NTI5NyIsIFwKLSAgICAgICAgICAiMC4xMzYxOTcsIDAuMjE0NjIsIDAuMjg2MzY0LCAwLjMzNzQ4MiwgMC40MTkyMjIsIDAuNDkwNzY0LCAwLjU5MjkwNCIsIFwKLSAgICAgICAgICAiMC4xNDk0ODYsIDAuMjI4MzkxLCAwLjMwMDExNiwgMC4zNTEyMzUsIDAuNDMyOTQ4LCAwLjUwNDQ4MSwgMC42MDY2NDMiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDIzOTEsIDAuMTgyMTk0LCAwLjMyNzA1MiwgMC40MzE5LCAwLjU5OTk2OSwgMC43NDU3NjMsIDAuOTU2ODYzIiwgXAotICAgICAgICAgICIwLjA0MjMyNCwgMC4xODIyNDEsIDAuMzI3MDY3LCAwLjQzMTgzOSwgMC41OTkzMjIsIDAuNzQ1OTk3LCAwLjk1ODA4NCIsIFwKLSAgICAgICAgICAiMC4wNDIzNjQsIDAuMTgyMjUxLCAwLjMyNzA2NiwgMC40MzE4ODQsIDAuNTk5MjYyLCAwLjc0NTg1OSwgMC45NTgwODYiLCBcCi0gICAgICAgICAgIjAuMDQyMzksIDAuMTgyMTc1LCAwLjMyNjgxOSwgMC40MzE4ODksIDAuNTk5OTYyLCAwLjc0NjI0MywgMC45NTgyMzciLCBcCi0gICAgICAgICAgIjAuMDQyOTkyLCAwLjE4MjM5NiwgMC4zMjcwNzEsIDAuNDMxOTAzLCAwLjU5OTE4LCAwLjc0NjAxNywgMC45NTgwNzQiLCBcCi0gICAgICAgICAgIjAuMDQ1MDI4LCAwLjE4Mjg5NCwgMC4zMjc1MTEsIDAuNDMyMDA1LCAwLjU5OTkzMSwgMC43NDY0MDcsIDAuOTU3OTkiLCBcCi0gICAgICAgICAgIjAuMDQ3NDgsIDAuMTgzNTIxLCAwLjMyNzg0NiwgMC40MzIzMjYsIDAuNjAwMDM4LCAwLjc0NjQ0MiwgMC45NTgwNDgiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzg0NCwgMC4xNTkyNzgsIDAuMjMzMTAxLCAwLjI4NTYxNSwgMC4zNjk2MDgsIDAuNDQzMDc3LCAwLjU0ODAxMiIsIFwKLSAgICAgICAgICAiMC4wODc0MzQsIDAuMTY4MjIzLCAwLjI0MjAzOSwgMC4yOTQ1NjQsIDAuMzc4NTUyLCAwLjQ1MjAzNCwgMC41NTY5MjYiLCBcCi0gICAgICAgICAgIjAuMDk4NzQsIDAuMTc5NTQ0LCAwLjI1MzM0LCAwLjMwNTg2OSwgMC4zODk4NTQsIDAuNDYzMzUyLCAwLjU2ODI4OCIsIFwKLSAgICAgICAgICAiMC4xMTA0MTUsIDAuMTkxMjIyLCAwLjI2NDk5NywgMC4zMTc1NzgsIDAuNDAxNTkyLCAwLjQ3NTAyNSwgMC41ODAwMTkiLCBcCi0gICAgICAgICAgIjAuMTIxNjY3LCAwLjIwMjQ5OSwgMC4yNzYzMzEsIDAuMzI4ODc5LCAwLjQxMjg0MywgMC40ODYzNDEsIDAuNTkxMjgzIiwgXAotICAgICAgICAgICIwLjEzODI4NCwgMC4yMTk0MjksIDAuMjkzMjMzLCAwLjM0NTc3LCAwLjQyOTc1NiwgMC41MDMyNDYsIDAuNjA4MTc4IiwgXAotICAgICAgICAgICIwLjE1MDg3MywgMC4yMzI1MDgsIDAuMzA2MzQxLCAwLjM1ODg1OCwgMC40NDI4MzksIDAuNTE2MzM0LCAwLjYyMTI5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQzMjc5LCAwLjE4NTAxNCwgMC4zMzEwOTgsIDAuNDM2ODMzLCAwLjYwNTQxMiwgMC43NTM4NDksIDAuOTY3OTgiLCBcCi0gICAgICAgICAgIjAuMDQzMzQsIDAuMTg0OTc0LCAwLjMzMTA4NywgMC40MzY4MTcsIDAuNjA2Mzg1LCAwLjc1NTI0NCwgMC45NjcyODYiLCBcCi0gICAgICAgICAgIjAuMDQzMzcxLCAwLjE4NDg3OCwgMC4zMzEzMjIsIDAuNDM2ODEzLCAwLjYwNjAxOSwgMC43NTQwNCwgMC45Njc5MzUiLCBcCi0gICAgICAgICAgIjAuMDQzNDE5LCAwLjE4NTAwNiwgMC4zMzEwNDgsIDAuNDM2MTc0LCAwLjYwNjYwMiwgMC43NTUxMzksIDAuOTY3ODI4IiwgXAotICAgICAgICAgICIwLjA0MzgzMSwgMC4xODUxMTMsIDAuMzMxNDYsIDAuNDM2ODcsIDAuNjA2NDk2LCAwLjc1NDMyMSwgMC45Njc5NyIsIFwKLSAgICAgICAgICAiMC4wNDU1NzksIDAuMTg1NDk4LCAwLjMzMTU4MSwgMC40MzY5NTEsIDAuNjA2NTUyLCAwLjc1NDA1LCAwLjk2Nzg3OSIsIFwKLSAgICAgICAgICAiMC4wNDczODYsIDAuMTg2MjI3LCAwLjMzMTg2NywgMC40MzcyNjEsIDAuNjA2NDkzLCAwLjc1NTEzMiwgMC45Njc5MjEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUzEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDkyMzc5LCAwLjE3MDU2OSwgMC4yNDIyNDMsIDAuMjkzMzc3LCAwLjM3NTE3LCAwLjQ0NjYyNywgMC41NDg3MzUiLCBcCi0gICAgICAgICAgIjAuMTAyMzQ2LCAwLjE4MDU0OCwgMC4yNTIyMjIsIDAuMzAzMzQ1LCAwLjM4NTA4NiwgMC40NTY1ODMsIDAuNTU4NzY5IiwgXAotICAgICAgICAgICIwLjExMjg0NCwgMC4xOTEwMjcsIDAuMjYyNzA2LCAwLjMxMzgxOCwgMC4zOTU1NjYsIDAuNDY3MTcyLCAwLjU2OTIxOSIsIFwKLSAgICAgICAgICAiMC4xMjE0MDEsIDAuMTk5NTYzLCAwLjI3MTI5NSwgMC4zMjI0MjIsIDAuNDA0MjQ0LCAwLjQ3NTY3MiwgMC41Nzc3ODMiLCBcCi0gICAgICAgICAgIjAuMTI4NDYyLCAwLjIwNjM0NCwgMC4yNzgwNzQsIDAuMzI5MjE1LCAwLjQxMDk3OCwgMC40ODI1NDksIDAuNTg0NzkiLCBcCi0gICAgICAgICAgIjAuMTM3NTcxLCAwLjIxNTc3MSwgMC4yODc1MDYsIDAuMzM4NTk2LCAwLjQyMDM3MywgMC40OTE5MjEsIDAuNTk0MDI2IiwgXAotICAgICAgICAgICIwLjE0NDQ5NSwgMC4yMjI4MzYsIDAuMjk0NjQ0LCAwLjM0NTc3NywgMC40Mjc0NjgsIDAuNDk5MDE4LCAwLjYwMTExOCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0MjY1NCwgMC4xODI0NTMsIDAuMzI3Mzk2LCAwLjQzMjAyOSwgMC42MDAyMDMsIDAuNzQ2NDk5LCAwLjk1NzY0MiIsIFwKLSAgICAgICAgICAiMC4wNDI2NjcsIDAuMTgyMzUxLCAwLjMyNzE4OCwgMC40MzE0ODEsIDAuNTk5MzUxLCAwLjc0NzQzMiwgMC45NTgxOTkiLCBcCi0gICAgICAgICAgIjAuMDQyNjYsIDAuMTgyMzY5LCAwLjMyNzE4OCwgMC40MzE5NzEsIDAuNTk5Mjk1LCAwLjc0NjA4OSwgMC45NTgxMjYiLCBcCi0gICAgICAgICAgIjAuMDQyNTg2LCAwLjE4MjM3MSwgMC4zMjczOTksIDAuNDMxNTI5LCAwLjU5ODk3NSwgMC43NDc0MjcsIDAuOTU4MDQxIiwgXAotICAgICAgICAgICIwLjA0Mjc5NSwgMC4xODI0MDMsIDAuMzI3NDAyLCAwLjQzMjA5MiwgMC42MDAwNDgsIDAuNzQ2MDY4LCAwLjk1ODE3IiwgXAotICAgICAgICAgICIwLjA0MjY2LCAwLjE4MjY0MywgMC4zMjc1MzksIDAuNDMyMDU4LCAwLjU5OTMxMywgMC43NDY0OTIsIDAuOTU4MDE3IiwgXAotICAgICAgICAgICIwLjA0MjcyMiwgMC4xODI2OTksIDAuMzI3NjA2LCAwLjQzMjE4NSwgMC41OTk0MzQsIDAuNzQ3MzE3LCAwLjk1Nzg2MyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5NTIxLCAwLjE3NjEwNSwgMC4yNDk5MjIsIDAuMzAyNDQ3LCAwLjM4NjQxOCwgMC40NTk4NzEsIDAuNTY0ODA4IiwgXAotICAgICAgICAgICIwLjEwNTQwNSwgMC4xODYzNDksIDAuMjYwMTE1LCAwLjMxMjYyNywgMC4zOTY2MTIsIDAuNDcwMTA1LCAwLjU3NTAxNCIsIFwKLSAgICAgICAgICAiMC4xMTY2NDUsIDAuMTk3NTg3LCAwLjI3MTM5MSwgMC4zMjM5LCAwLjQwNzg3NiwgMC40ODEzNjQsIDAuNTg2MzAxIiwgXAotICAgICAgICAgICIwLjEyNTkxMSwgMC4yMDY3NTMsIDAuMjgwNTQ4LCAwLjMzMzA2NywgMC40MTcwNjMsIDAuNDkwNTI0LCAwLjU5NTQ3MSIsIFwKLSAgICAgICAgICAiMC4xMzM2MTYsIDAuMjE0NDQ3LCAwLjI4ODI0NSwgMC4zNDA3NTcsIDAuNDI0NzQyLCAwLjQ5ODIyOSwgMC42MDMxNDkiLCBcCi0gICAgICAgICAgIjAuMTQzOTc4LCAwLjIyNDkzOSwgMC4yOTg3MzQsIDAuMzUxMjc3LCAwLjQzNTI0MSwgMC41MDg3MDQsIDAuNjEzNjA5IiwgXAotICAgICAgICAgICIwLjE1MTkyNiwgMC4yMzI5MjEsIDAuMzA2NzY3LCAwLjM1OTI4OSwgMC40NDMyNjcsIDAuNTE2NzI1LCAwLjYyMTY0OSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0MzUzMywgMC4xODUwNywgMC4zMzA2NDksIDAuNDM2OTA2LCAwLjYwNTQxOCwgMC43NTUxNDMsIDAuOTY1MTciLCBcCi0gICAgICAgICAgIjAuMDQzNDg2LCAwLjE4NDk5MywgMC4zMzEwNzIsIDAuNDM2ODEzLCAwLjYwNTMyNSwgMC43NTM1OTIsIDAuOTY3OTMzIiwgXAotICAgICAgICAgICIwLjA0MzQ4NywgMC4xODUsIDAuMzMwODI4LCAwLjQzNjgxMSwgMC42MDYyNzgsIDAuNzU0MTgyLCAwLjk2Nzg4NCIsIFwKLSAgICAgICAgICAiMC4wNDM0NzMsIDAuMTg1MDQ4LCAwLjMzMDkwMywgMC40MzY3OTQsIDAuNjA2NDQ3LCAwLjc1NDE4NSwgMC45Njc4NzciLCBcCi0gICAgICAgICAgIjAuMDQzNDkzLCAwLjE4NTAyMiwgMC4zMzEwMDMsIDAuNDM2Nzc1LCAwLjYwNjEyMSwgMC43NTQxNzUsIDAuOTY3ODczIiwgXAotICAgICAgICAgICIwLjA0MzQ3MSwgMC4xODUxMzYsIDAuMzMxMTM1LCAwLjQzNzAwMywgMC42MDY0MDEsIDAuNzU0NzI2LCAwLjk2NzgxMSIsIFwKLSAgICAgICAgICAiMC4wNDM0NDksIDAuMTg1MTAyLCAwLjMzMTIxNiwgMC40MzY2ODQsIDAuNjA1NDg1LCAwLjc1NDA2OCwgMC45NjU3NjkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNzc2LCAwLjAwNzg5NywgMC4wMDc5MjQsIDAuMDA3OTMxLCAwLjAwNzkzOSwgMC4wMDc5NDQsIDAuMDA3OTQ3IiwgXAotICAgICAgICAgICIwLjAwNzc0OCwgMC4wMDc4ODUsIDAuMDA3OTExLCAwLjAwNzkyLCAwLjAwNzkyNywgMC4wMDc5MzEsIDAuMDA3OTM0IiwgXAotICAgICAgICAgICIwLjAwNzc0LCAwLjAwNzg3OCwgMC4wMDc5MDUsIDAuMDA3OTEyLCAwLjAwNzkxOSwgMC4wMDc5MjQsIDAuMDA3OTI4IiwgXAotICAgICAgICAgICIwLjAwNzczMywgMC4wMDc4NzIsIDAuMDA3ODk5LCAwLjAwNzkwNiwgMC4wMDc5MTQsIDAuMDA3OTE3LCAwLjAwNzkyMiIsIFwKLSAgICAgICAgICAiMC4wMDc3MywgMC4wMDc4NjgsIDAuMDA3ODk1LCAwLjAwNzkwNCwgMC4wMDc5MTEsIDAuMDA3OTE1LCAwLjAwNzkyIiwgXAotICAgICAgICAgICIwLjAwNzczMywgMC4wMDc4NjcsIDAuMDA3ODk1LCAwLjAwNzkwMywgMC4wMDc5MTEsIDAuMDA3OTE1LCAwLjAwNzkxOCIsIFwKLSAgICAgICAgICAiMC4wMDc3MzEsIDAuMDA3ODcxLCAwLjAwNzkwMSwgMC4wMDc5MSwgMC4wMDc5MTcsIDAuMDA3OTE4LCAwLjAwNzkyOCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2NTk2LCAwLjAwNjgyNiwgMC4wMDY4NzQsIDAuMDA2ODg5LCAwLjAwNjkwMywgMC4wMDY5MTEsIDAuMDA2OTE3IiwgXAotICAgICAgICAgICIwLjAwNjU4NiwgMC4wMDY4MDksIDAuMDA2ODU2LCAwLjAwNjg3MSwgMC4wMDY4ODQsIDAuMDA2ODkyLCAwLjAwNjg5OCIsIFwKLSAgICAgICAgICAiMC4wMDY1NzUsIDAuMDA2Nzk4LCAwLjAwNjg0NCwgMC4wMDY4NiwgMC4wMDY4NzMsIDAuMDA2ODgsIDAuMDA2ODg3IiwgXAotICAgICAgICAgICIwLjAwNjU2NywgMC4wMDY3OSwgMC4wMDY4MzYsIDAuMDA2ODUxLCAwLjAwNjg2NSwgMC4wMDY4NzIsIDAuMDA2ODc5IiwgXAotICAgICAgICAgICIwLjAwNjU2NiwgMC4wMDY3ODksIDAuMDA2ODM0LCAwLjAwNjg1LCAwLjAwNjg2NCwgMC4wMDY4NzEsIDAuMDA2ODc4IiwgXAotICAgICAgICAgICIwLjAwNjU2MywgMC4wMDY3ODgsIDAuMDA2ODM0LCAwLjAwNjg0OSwgMC4wMDY4NjQsIDAuMDA2ODcxLCAwLjAwNjg3NyIsIFwKLSAgICAgICAgICAiMC4wMDY1NjQsIDAuMDA2NzkyLCAwLjAwNjg0LCAwLjAwNjg1NSwgMC4wMDY4NjksIDAuMDA2ODc3LCAwLjAwNjg4NCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA3ODYxLCAwLjAwNzk5NywgMC4wMDgwMjMsIDAuMDA4MDMxLCAwLjAwODAzOCwgMC4wMDgwNDEsIDAuMDA4MDQ1IiwgXAotICAgICAgICAgICIwLjAwNzg0OSwgMC4wMDc5ODUsIDAuMDA4MDExLCAwLjAwODAxOSwgMC4wMDgwMjYsIDAuMDA4MDMsIDAuMDA4MDMzIiwgXAotICAgICAgICAgICIwLjAwNzg0MiwgMC4wMDc5NzgsIDAuMDA4MDA0LCAwLjAwODAxMSwgMC4wMDgwMTksIDAuMDA4MDIyLCAwLjAwODAyNSIsIFwKLSAgICAgICAgICAiMC4wMDc4MzYsIDAuMDA3OTczLCAwLjAwNzk5OSwgMC4wMDgwMDYsIDAuMDA4MDEzLCAwLjAwODAxNywgMC4wMDgwMiIsIFwKLSAgICAgICAgICAiMC4wMDc4MzEsIDAuMDA3OTcsIDAuMDA3OTk3LCAwLjAwODAwNSwgMC4wMDgwMSwgMC4wMDgwMTUsIDAuMDA4MDE5IiwgXAotICAgICAgICAgICIwLjAwNzgzNCwgMC4wMDc5NjgsIDAuMDA3OTk1LCAwLjAwODAwMywgMC4wMDgwMDksIDAuMDA4MDE0LCAwLjAwODAxNyIsIFwKLSAgICAgICAgICAiMC4wMDc4MjksIDAuMDA3OTcxLCAwLjAwODAwMSwgMC4wMDgwMSwgMC4wMDgwMTcsIDAuMDA4MDE5LCAwLjAwODAyOCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2NDQsIDAuMDA2NjYzLCAwLjAwNjcwOCwgMC4wMDY3MjMsIDAuMDA2NzM2LCAwLjAwNjc0MywgMC4wMDY3NDkiLCBcCi0gICAgICAgICAgIjAuMDA2NDIsIDAuMDA2NjQzLCAwLjAwNjY4OCwgMC4wMDY3MDMsIDAuMDA2NzE2LCAwLjAwNjcyMywgMC4wMDY3MjkiLCBcCi0gICAgICAgICAgIjAuMDA2NDA5LCAwLjAwNjYzMiwgMC4wMDY2NzcsIDAuMDA2NjkyLCAwLjAwNjcwNSwgMC4wMDY3MTIsIDAuMDA2NzE4IiwgXAotICAgICAgICAgICIwLjAwNjQwMSwgMC4wMDY2MjQsIDAuMDA2NjcsIDAuMDA2Njg0LCAwLjAwNjY5OCwgMC4wMDY3MDUsIDAuMDA2NzExIiwgXAotICAgICAgICAgICIwLjAwNjM5OSwgMC4wMDY2MjIsIDAuMDA2NjY3LCAwLjAwNjY4MiwgMC4wMDY2OTYsIDAuMDA2NzAzLCAwLjAwNjcwOSIsIFwKLSAgICAgICAgICAiMC4wMDYzOTIsIDAuMDA2NjIxLCAwLjAwNjY2OCwgMC4wMDY2ODMsIDAuMDA2Njk3LCAwLjAwNjcwNCwgMC4wMDY3MTEiLCBcCi0gICAgICAgICAgIjAuMDA2NDA0LCAwLjAwNjYzLCAwLjAwNjY3NywgMC4wMDY2OTIsIDAuMDA2NzA1LCAwLjAwNjcxMywgMC4wMDY3MTkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjg0NiwgMC4wMDcwMzEsIDAuMDA3MDY2LCAwLjAwNzA3NiwgMC4wMDcwODYsIDAuMDA3MDkxLCAwLjAwNzA5NyIsIFwKLSAgICAgICAgICAiMC4wMDY4MjEsIDAuMDA3MDA1LCAwLjAwNzA0MiwgMC4wMDcwNTEsIDAuMDA3MDYxLCAwLjAwNzA2NiwgMC4wMDcwNzIiLCBcCi0gICAgICAgICAgIjAuMDA2ODE3LCAwLjAwNzAwMSwgMC4wMDcwMzYsIDAuMDA3MDQ3LCAwLjAwNzA1NywgMC4wMDcwNjIsIDAuMDA3MDY3IiwgXAotICAgICAgICAgICIwLjAwNjgxLCAwLjAwNjk5NywgMC4wMDcwMzMsIDAuMDA3MDQ0LCAwLjAwNzA1NCwgMC4wMDcwNiwgMC4wMDcwNjQiLCBcCi0gICAgICAgICAgIjAuMDA2ODIzLCAwLjAwNzAwNiwgMC4wMDcwNDMsIDAuMDA3MDUzLCAwLjAwNzA2NCwgMC4wMDcwNjgsIDAuMDA3MDc0IiwgXAotICAgICAgICAgICIwLjAwNjgzOCwgMC4wMDcwMjYsIDAuMDA3MDYxLCAwLjAwNzA3NSwgMC4wMDcwODUsIDAuMDA3MDg4LCAwLjAwNzA5NyIsIFwKLSAgICAgICAgICAiMC4wMDY4NiwgMC4wMDcwNDQsIDAuMDA3MDgsIDAuMDA3MDk0LCAwLjAwNzEwMiwgMC4wMDcxMDcsIDAuMDA3MTE2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDYyNDQsIDAuMDA2NDgzLCAwLjAwNjUzLCAwLjAwNjU0NSwgMC4wMDY1NTksIDAuMDA2NTY2LCAwLjAwNjU3MiIsIFwKLSAgICAgICAgICAiMC4wMDYyMTQsIDAuMDA2NDUyLCAwLjAwNjQ5OSwgMC4wMDY1MTUsIDAuMDA2NTI4LCAwLjAwNjUzNSwgMC4wMDY1NDIiLCBcCi0gICAgICAgICAgIjAuMDA2MjEsIDAuMDA2NDUxLCAwLjAwNjQ5OCwgMC4wMDY1MTMsIDAuMDA2NTI3LCAwLjAwNjUzNCwgMC4wMDY1NDEiLCBcCi0gICAgICAgICAgIjAuMDA2MjIxLCAwLjAwNjQ2MSwgMC4wMDY1MDksIDAuMDA2NTI1LCAwLjAwNjUzOSwgMC4wMDY1NDYsIDAuMDA2NTUzIiwgXAotICAgICAgICAgICIwLjAwNjIyMSwgMC4wMDY0NjEsIDAuMDA2NTA4LCAwLjAwNjUyNCwgMC4wMDY1MzgsIDAuMDA2NTQ1LCAwLjAwNjU1MiIsIFwKLSAgICAgICAgICAiMC4wMDYyNDQsIDAuMDA2NDg0LCAwLjAwNjUzMywgMC4wMDY1NDgsIDAuMDA2NTYzLCAwLjAwNjU3MSwgMC4wMDY1NzciLCBcCi0gICAgICAgICAgIjAuMDA2MjY3LCAwLjAwNjUwNCwgMC4wMDY1NTMsIDAuMDA2NTY5LCAwLjAwNjU4MywgMC4wMDY1OTEsIDAuMDA2NTk4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUzAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA3NDkxLCAwLjAwNzYyNiwgMC4wMDc2NTEsIDAuMDA3NjU4LCAwLjAwNzY2NSwgMC4wMDc2NjksIDAuMDA3NjcyIiwgXAotICAgICAgICAgICIwLjAwNzQ2OCwgMC4wMDc2MDQsIDAuMDA3NjI5LCAwLjAwNzYzNiwgMC4wMDc2NDMsIDAuMDA3NjQ3LCAwLjAwNzY0OCIsIFwKLSAgICAgICAgICAiMC4wMDc0NjMsIDAuMDA3NTk5LCAwLjAwNzYyNSwgMC4wMDc2MzEsIDAuMDA3NjM4LCAwLjAwNzY0MSwgMC4wMDc2NDUiLCBcCi0gICAgICAgICAgIjAuMDA3NDY5LCAwLjAwNzYwNSwgMC4wMDc2MywgMC4wMDc2MzgsIDAuMDA3NjQ1LCAwLjAwNzY0OCwgMC4wMDc2NDkiLCBcCi0gICAgICAgICAgIjAuMDA3NDgyLCAwLjAwNzYxOCwgMC4wMDc2NDMsIDAuMDA3NjQ3LCAwLjAwNzY1NiwgMC4wMDc2NiwgMC4wMDc2NjQiLCBcCi0gICAgICAgICAgIjAuMDA3NDk4LCAwLjAwNzY0MiwgMC4wMDc2NjcsIDAuMDA3Njc0LCAwLjAwNzY4MywgMC4wMDc2ODUsIDAuMDA3Njg4IiwgXAotICAgICAgICAgICIwLjAwNzUyOCwgMC4wMDc2NjYsIDAuMDA3Njg3LCAwLjAwNzY5OSwgMC4wMDc3MDYsIDAuMDA3NzEsIDAuMDA3NzE1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDgyNTksIDAuMDA4NDgyLCAwLjAwODUyNiwgMC4wMDg1NDEsIDAuMDA4NTUzLCAwLjAwODU2LCAwLjAwODU2NiIsIFwKLSAgICAgICAgICAiMC4wMDgyNDYsIDAuMDA4NDY4LCAwLjAwODUxMywgMC4wMDg1MjcsIDAuMDA4NTQsIDAuMDA4NTQ3LCAwLjAwODU1MyIsIFwKLSAgICAgICAgICAiMC4wMDgyNDMsIDAuMDA4NDY1LCAwLjAwODUxLCAwLjAwODUyNCwgMC4wMDg1MzcsIDAuMDA4NTQ0LCAwLjAwODU1IiwgXAotICAgICAgICAgICIwLjAwODI0OSwgMC4wMDg0NzIsIDAuMDA4NTE3LCAwLjAwODUzMSwgMC4wMDg1NDQsIDAuMDA4NTUsIDAuMDA4NTU2IiwgXAotICAgICAgICAgICIwLjAwODI2MSwgMC4wMDg0ODMsIDAuMDA4NTI4LCAwLjAwODU0MiwgMC4wMDg1NTUsIDAuMDA4NTYyLCAwLjAwODU2OCIsIFwKLSAgICAgICAgICAiMC4wMDgyNzksIDAuMDA4NDk5LCAwLjAwODU0NCwgMC4wMDg1NjEsIDAuMDA4NTc0LCAwLjAwODU4MSwgMC4wMDg1ODciLCBcCi0gICAgICAgICAgIjAuMDA4Mjk4LCAwLjAwODUyNiwgMC4wMDg1NywgMC4wMDg1ODMsIDAuMDA4NTk2LCAwLjAwODYwMywgMC4wMDg2MTEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTMSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDY5MjUsIDAuMDA3MDcxLCAwLjAwNzEwMywgMC4wMDcxMTIsIDAuMDA3MTIxLCAwLjAwNzEyNywgMC4wMDcxMzIiLCBcCi0gICAgICAgICAgIjAuMDA2OTE2LCAwLjAwNzA2MywgMC4wMDcwOTUsIDAuMDA3MTA1LCAwLjAwNzExNCwgMC4wMDcxMTcsIDAuMDA3MTI0IiwgXAotICAgICAgICAgICIwLjAwNjkyNCwgMC4wMDcwNzEsIDAuMDA3MTAzLCAwLjAwNzExMiwgMC4wMDcxMjEsIDAuMDA3MTI1LCAwLjAwNzEzIiwgXAotICAgICAgICAgICIwLjAwNjkyNCwgMC4wMDcwNzUsIDAuMDA3MTAzLCAwLjAwNzExMywgMC4wMDcxMjMsIDAuMDA3MTI4LCAwLjAwNzEzMSIsIFwKLSAgICAgICAgICAiMC4wMDY5MzYsIDAuMDA3MDgzLCAwLjAwNzExMywgMC4wMDcxMjIsIDAuMDA3MTMsIDAuMDA3MTM1LCAwLjAwNzE0IiwgXAotICAgICAgICAgICIwLjAwNjk2LCAwLjAwNzEwMywgMC4wMDcxMzUsIDAuMDA3MTQ1LCAwLjAwNzE1NSwgMC4wMDcxNTgsIDAuMDA3MTY4IiwgXAotICAgICAgICAgICIwLjAwNjk4NSwgMC4wMDcxMjUsIDAuMDA3MTUxLCAwLjAwNzE2OCwgMC4wMDcxNzIsIDAuMDA3MTgsIDAuMDA3MTgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNTc0MywgMC4wMDU5NzgsIDAuMDA2MDI3LCAwLjAwNjA0MywgMC4wMDYwNTgsIDAuMDA2MDY2LCAwLjAwNjA3MyIsIFwKLSAgICAgICAgICAiMC4wMDU3MjcsIDAuMDA1OTYyLCAwLjAwNjAxMSwgMC4wMDYwMjcsIDAuMDA2MDQyLCAwLjAwNjA1LCAwLjAwNjA1NyIsIFwKLSAgICAgICAgICAiMC4wMDU3MjMsIDAuMDA1OTYxLCAwLjAwNjAxLCAwLjAwNjAyNiwgMC4wMDYwNDEsIDAuMDA2MDQ5LCAwLjAwNjA1NSIsIFwKLSAgICAgICAgICAiMC4wMDU3MjgsIDAuMDA1OTY2LCAwLjAwNjAxNSwgMC4wMDYwMzIsIDAuMDA2MDQ2LCAwLjAwNjA1NCwgMC4wMDYwNjEiLCBcCi0gICAgICAgICAgIjAuMDA1NzQyLCAwLjAwNTk3OCwgMC4wMDYwMjcsIDAuMDA2MDQzLCAwLjAwNjA1NywgMC4wMDYwNjUsIDAuMDA2MDcyIiwgXAotICAgICAgICAgICIwLjAwNTc2MywgMC4wMDYsIDAuMDA2MDUsIDAuMDA2MDY2LCAwLjAwNjA4MSwgMC4wMDYwODksIDAuMDA2MDk2IiwgXAotICAgICAgICAgICIwLjAwNTc4OCwgMC4wMDYwMjEsIDAuMDA2MDcsIDAuMDA2MDg2LCAwLjAwNjEwMiwgMC4wMDYxMSwgMC4wMDYxMTciKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IE1YSTRYMiAqCi0gKiAtLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKE1YSTRYMikgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjMyNzIwNzsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjY3MzY0OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDY2NTk3MTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2NjczNjQ7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwODMxLCAwLjAwMDgxMSwgMC4wMDA4MDIsIDAuMDAwNzk3LCAwLjAwMDc5NiwgMC4wMDA3OTcsIDAuMDAwODAyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyNTQ3LCAwLjAwMjUzNiwgMC4wMDI1MywgMC4wMDI1MjgsIDAuMDAyNTI4LCAwLjAwMjUyOSwgMC4wMDI1MzQiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYxNDIyNDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MTI3MjU7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjE0MjI0OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDIxOCwgMC4wMDAyMjEsIDAuMDAwMjIyLCAwLjAwMDIyMiwgMC4wMDAyMjIsIDAuMDAwMjIyLCAwLjAwMDIyMiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDIyOSwgMC4wMDAyMjcsIDAuMDAwMjI3LCAwLjAwMDIyNywgMC4wMDAyMjcsIDAuMDAwMjI3LCAwLjAwMDIyNyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQykgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNTkxNDI4OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDU4OTY2OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDU5MTQyODsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDExMjIsIDAuMDAxMTAyLCAwLjAwMTA5MSwgMC4wMDEwODYsIDAuMDAxMDg0LCAwLjAwMTA4NCwgMC4wMDEwODgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDI1OTMsIDAuMDAyNTgxLCAwLjAwMjU3NSwgMC4wMDI1NzIsIDAuMDAyNTcyLCAwLjAwMjU3MiwgMC4wMDI1NzQiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEQpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDU5MjQ0MzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA1OTEwMTI7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNTkyNDQzOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDIxNywgMC4wMDAyMjEsIDAuMDAwMjIxLCAwLjAwMDIyMiwgMC4wMDAyMjIsIDAuMDAwMjIyLCAwLjAwMDIyMiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDIyOCwgMC4wMDAyMjcsIDAuMDAwMjI3LCAwLjAwMDIyNywgMC4wMDAyMjcsIDAuMDAwMjI3LCAwLjAwMDIyNyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUzApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMjE0Njk3OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMjE0NjU4OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMjE0Njk3OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDQ4LCAwLjAwMDQ1MywgMC4wMDA0NDksIDAuMDAwNDUsIDAuMDAwNDY5LCAwLjAwMDQ5OSwgMC4wMDA1MjYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDM2NjgsIDAuMDAzNjQ3LCAwLjAwMzY0NCwgMC4wMDM2NSwgMC4wMDM2NTYsIDAuMDAzNjcxLCAwLjAwMzY4NyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUzEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTQ2MjYyOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTQ2MTY7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNDYyNjI7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNCwgMC4wMDAzNzUsIDAuMDAwMzY4LCAwLjAwMDM3NCwgMC4wMDAzODQsIDAuMDAwNDA3LCAwLjAwMDQzMSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjQ4NCwgMC4wMDI0NjUsIDAuMDAyNDYxLCAwLjAwMjQ2OCwgMC4wMDI0NzUsIDAuMDAyNSwgMC4wMDI1MjEiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC41MjIzNjY7Ci0gICAgZnVuY3Rpb24gOiAiKCEoKFMxICgoUzAgRCkgKyAoIVMwIEMpKSkgKyAoIVMxICgoUzAgQikgKyAoIVMwIEEpKSkpKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTQwMzA3LCAwLjI0NjQ2OSwgMC4zMjg4NTQsIDAuNDMxNzk0LCAwLjUzNDY3NCwgMC42Mzc0NzEsIDAuNzQwMzAyIiwgXAotICAgICAgICAgICIwLjE0ODgzNCwgMC4yNTQ5NjEsIDAuMzM3MzM4LCAwLjQ0MDI4NCwgMC41NDMxNjgsIDAuNjQ1OTY3LCAwLjc0ODgiLCBcCi0gICAgICAgICAgIjAuMTU4NjI2LCAwLjI2NDc4NiwgMC4zNDcxODUsIDAuNDUwMDk3LCAwLjU1MjkwMiwgMC42NTU4MDEsIDAuNzU4Njc5IiwgXAotICAgICAgICAgICIwLjE2Nzk3NCwgMC4yNzQxMzgsIDAuMzU2NTUsIDAuNDU5NDY2LCAwLjU2MjM2MiwgMC42NjUxNTgsIDAuNzY3OTgxIiwgXAotICAgICAgICAgICIwLjE3NjU1OCwgMC4yODI3MTQsIDAuMzY1MDkyLCAwLjQ2ODAzNywgMC41NzA5MjMsIDAuNjczNzIsIDAuNzc2NTUxIiwgXAotICAgICAgICAgICIwLjE4ODg5LCAwLjI5NDk5MSwgMC4zNzc0MDEsIDAuNDgwMzYyLCAwLjU4MzIxOSwgMC42ODYwMiwgMC43ODg4NTMiLCBcCi0gICAgICAgICAgIjAuMTk4MzEsIDAuMzA0NDUsIDAuMzg2ODU1LCAwLjQ4OTc3NCwgMC41OTI3NCwgMC42OTU1MzgsIDAuNzk4MzQ4Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2MTQ2MSwgMC4yNjc2MzYsIDAuNDM3MjU5LCAwLjY0OTQ4NCwgMC44NjQ0OTUsIDEuMDc4MywgMS4yOTA5NCIsIFwKLSAgICAgICAgICAiMC4wNjE0MzgsIDAuMjY3NjE0LCAwLjQzNzE2NCwgMC42NDk4ODQsIDAuODY0NTAyLCAxLjA3ODI5LCAxLjI5MTA3IiwgXAotICAgICAgICAgICIwLjA2MTM5MiwgMC4yNjcyNDQsIDAuNDM3MjYsIDAuNjQ5ODUzLCAwLjg2MjA5OCwgMS4wNzgzLCAxLjI5MjMiLCBcCi0gICAgICAgICAgIjAuMDYxNDQ1LCAwLjI2NzYyOCwgMC40Mzc0MjQsIDAuNjQ5ODgzLCAwLjg2NDUxNCwgMS4wNzgzLCAxLjI5MDk3IiwgXAotICAgICAgICAgICIwLjA2MTQzNiwgMC4yNjc2MywgMC40MzY4MSwgMC42NDk4NzksIDAuODY0NDk3LCAxLjA3ODMsIDEuMjkwOTgiLCBcCi0gICAgICAgICAgIjAuMDYxMzk4LCAwLjI2NzE5NywgMC40MzcyNSwgMC42NTA3NiwgMC44NjQ0OTMsIDEuMDc4MjgsIDEuMjkyMTkiLCBcCi0gICAgICAgICAgIjAuMDYxNDU5LCAwLjI2NzQ1MSwgMC40MzcyMTYsIDAuNjUwNjIyLCAwLjg2MzA0NywgMS4wNzgyMiwgMS4yOTA2OSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNDIxOTMsIDAuMjQ5MTEsIDAuMzMxMzQ2LCAwLjQzNDA5MSwgMC41MzY3MSwgMC42MzkzNjYsIDAuNzQxOTcxIiwgXAotICAgICAgICAgICIwLjE1MTE2MywgMC4yNTc5NjMsIDAuMzQwMTk4LCAwLjQ0Mjg5OCwgMC41NDU1OTcsIDAuNjQ4MTk3LCAwLjc1MDgyMyIsIFwKLSAgICAgICAgICAiMC4xNjE3ODgsIDAuMjY4Njk5LCAwLjM1MDkzNSwgMC40NTM2ODYsIDAuNTU2MzA1LCAwLjY1ODk1NywgMC43NjE1NjkiLCBcCi0gICAgICAgICAgIjAuMTcyMTczLCAwLjI3OTAwNywgMC4zNjEyNTQsIDAuNDYzOTQsIDAuNTY2NjYyLCAwLjY2OTI1MywgMC43NzE4NDMiLCBcCi0gICAgICAgICAgIjAuMTgxOTE2LCAwLjI4ODcwNywgMC4zNzA5NDUsIDAuNDczNjQ3LCAwLjU3NjMyMiwgMC42Nzg5NzYsIDAuNzgxNTc2IiwgXAotICAgICAgICAgICIwLjE5NTg1MywgMC4zMDI2NzQsIDAuMzg0OTEsIDAuNDg3NjI0LCAwLjU5MDM1MywgMC42OTI5NDIsIDAuNzk1NTMxIiwgXAotICAgICAgICAgICIwLjIwNjcxOSwgMC4zMTM0ODUsIDAuMzk1NzIyLCAwLjQ5ODQyMywgMC42MDExNDMsIDAuNzAzNzM4LCAwLjgwNjMzMiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjEyMjksIDAuMjYxMTU5LCAwLjQyNjIzMSwgMC42MzM4ODgsIDAuODQxNTY0LCAxLjA0OTg0LCAxLjI1NzgzIiwgXAotICAgICAgICAgICIwLjA2MTQyNywgMC4yNjExNzksIDAuNDI2MjY0LCAwLjYzMzM0NywgMC44NDAwNjEsIDEuMDQ3ODEsIDEuMjU3OCIsIFwKLSAgICAgICAgICAiMC4wNjExNywgMC4yNjExNTQsIDAuNDI2MjEsIDAuNjMzODQ4LCAwLjg0MDE5NywgMS4wNDc5MywgMS4yNTc4IiwgXAotICAgICAgICAgICIwLjA2MTI0LCAwLjI2MTE1MywgMC40MjYzNjMsIDAuNjMyNjA4LCAwLjgzOTQ2LCAxLjA0OTcyLCAxLjI1NzY3IiwgXAotICAgICAgICAgICIwLjA2MTQyMywgMC4yNjExNzQsIDAuNDI2MjQ4LCAwLjYzMjUzNSwgMC44NDE1NTYsIDEuMDQ5NjgsIDEuMjU3NzYiLCBcCi0gICAgICAgICAgIjAuMDYxMzA5LCAwLjI2MTMwNywgMC40MjYyMzIsIDAuNjMyNTgxLCAwLjgzOTIzNCwgMS4wNDk3MSwgMS4yNTc2NyIsIFwKLSAgICAgICAgICAiMC4wNjEyMjksIDAuMjYxMTYxLCAwLjQyNTY4MSwgMC42MzI2MzIsIDAuODQxNDczLCAxLjA0OTY3LCAxLjI1NzY4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE0MjIzNiwgMC4yNDgzODgsIDAuMzMwNzg1LCAwLjQzMzcyNiwgMC41MzY2MDUsIDAuNjM5MjM3LCAwLjc0MjI1MyIsIFwKLSAgICAgICAgICAiMC4xNTA4NTMsIDAuMjU2OTgsIDAuMzM5MzY5LCAwLjQ0MjMwNCwgMC41NDUxOSwgMC42NDc5ODcsIDAuNzUwNjgyIiwgXAotICAgICAgICAgICIwLjE2MDY2OSwgMC4yNjY4NDQsIDAuMzQ5MjQ3LCAwLjQ1MjE1NiwgMC41NTUwNjYsIDAuNjU3ODYyLCAwLjc2MDc5NSIsIFwKLSAgICAgICAgICAiMC4xNzAxMjYsIDAuMjc2Mjk4LCAwLjM1ODcwMSwgMC40NjE2MDksIDAuNTY0NDU3LCAwLjY2NzMxNiwgMC43NzAyMjYiLCBcCi0gICAgICAgICAgIjAuMTc4ODYyLCAwLjI4NDk4MywgMC4zNjczOCwgMC40NzAzMjIsIDAuNTczMjAxLCAwLjY3NTk5NywgMC43Nzg3NjEiLCBcCi0gICAgICAgICAgIjAuMTkxMzkzLCAwLjI5NzQ5OCwgMC4zNzk5MSwgMC40ODI4NTgsIDAuNTg1Nzc4LCAwLjY4ODM3LCAwLjc5MTE3OCIsIFwKLSAgICAgICAgICAiMC4yMDA3OTMsIDAuMzA3MDI3LCAwLjM4OTQzMiwgMC40OTIzNzMsIDAuNTk1MjQ5LCAwLjY5ODA1LCAwLjgwMDkwMiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjE0OCwgMC4yNjczMDIsIDAuNDM3MjYxLCAwLjY0OTUxMywgMC44NjQ1MDIsIDEuMDc2ODEsIDEuMjkyMjciLCBcCi0gICAgICAgICAgIjAuMDYxNDYyLCAwLjI2NzYzOCwgMC40MzY3OTcsIDAuNjQ5ODgsIDAuODY0NSwgMS4wNzgzLCAxLjI5MDkxIiwgXAotICAgICAgICAgICIwLjA2MTQzOSwgMC4yNjczNzgsIDAuNDM3MjYxLCAwLjY1MDY4OSwgMC44NjQ0OTMsIDEuMDc4MywgMS4yOTIzOSIsIFwKLSAgICAgICAgICAiMC4wNjE0ODIsIDAuMjY3Mzc0LCAwLjQzNzI1OSwgMC42NTA2ODgsIDAuODY0NDk1LCAxLjA3ODMsIDEuMjkyMzMiLCBcCi0gICAgICAgICAgIjAuMDYxNDg2LCAwLjI2NzMwOSwgMC40MzcyNTcsIDAuNjQ5NTA2LCAwLjg2NDQ5NCwgMS4wNzgyOSwgMS4yOTIzMSIsIFwKLSAgICAgICAgICAiMC4wNjE0MDYsIDAuMjY3Mzc5LCAwLjQzNzI0NCwgMC42NDk1NzksIDAuODY0NTY4LCAxLjA3NTMxLCAxLjI5MDkxIiwgXAotICAgICAgICAgICIwLjA2MTcwOCwgMC4yNjczMzQsIDAuNDM3MjEsIDAuNjUwNjQxLCAwLjg2NDM2NywgMS4wNzgxOCwgMS4yOTA5NiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNDM1NzQsIDAuMjUwMzc3LCAwLjMzMjYxMiwgMC40MzUzMTYsIDAuNTM4MDE2LCAwLjY0MDY0NSwgMC43NDMyMzMiLCBcCi0gICAgICAgICAgIjAuMTUyNTM2LCAwLjI1OTMzNSwgMC4zNDE1NzMsIDAuNDQ0Mjc0LCAwLjU0Njk1OCwgMC42NDk1NjcsIDAuNzUyMTk5IiwgXAotICAgICAgICAgICIwLjE2MzMyOCwgMC4yNzAyMTYsIDAuMzUyNDU1LCAwLjQ1NTE4MSwgMC41NTc4MTgsIDAuNjYwNDYsIDAuNzYzMDg2IiwgXAotICAgICAgICAgICIwLjE3MzgzNiwgMC4yODA3MDgsIDAuMzYyOTQxLCAwLjQ2NTY5OSwgMC41NjgzMDYsIDAuNjcwOTU1LCAwLjc3MzU3NCIsIFwKLSAgICAgICAgICAiMC4xODM2NjQsIDAuMjkwNSwgMC4zNzI3NTMsIDAuNDc1NDM0LCAwLjU3ODE1OCwgMC42ODA3NSwgMC43ODMzNDEiLCBcCi0gICAgICAgICAgIjAuMTk3OTc0LCAwLjMwNDc0MSwgMC4zODY5NzcsIDAuNDg5Njg2LCAwLjU5MjQxMywgMC42OTQ5ODEsIDAuNzk3NjA4IiwgXAotICAgICAgICAgICIwLjIwODkyNSwgMC4zMTU3NDQsIDAuMzk3OTcsIDAuNTAwNjgxLCAwLjYwMzQxOSwgMC43MDYwMDUsIDAuODA4NTkzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2MTQ0NywgMC4yNjExODEsIDAuNDI2Mjg2LCAwLjYzMjUwOCwgMC44NDAxMjYsIDEuMDQ5NzMsIDEuMjU3ODEiLCBcCi0gICAgICAgICAgIjAuMDYxNDQsIDAuMjYxMzI2LCAwLjQyNjI2OSwgMC42MzMzMjksIDAuODQwMzM2LCAxLjA0OTU1LCAxLjI1Nzc4IiwgXAotICAgICAgICAgICIwLjA2MTM1NiwgMC4yNjExNzYsIDAuNDI2MjUxLCAwLjYzMzczOCwgMC44NDE0OTUsIDEuMDQ5NjUsIDEuMjU3NzgiLCBcCi0gICAgICAgICAgIjAuMDYxMzkzLCAwLjI2MTE3MSwgMC40MjYyNTEsIDAuNjMxODM0LCAwLjg0MDE0OCwgMS4wNDgzNywgMS4yNTc4MyIsIFwKLSAgICAgICAgICAiMC4wNjE0MTEsIDAuMjYxMTUyLCAwLjQyNjM3NCwgMC42MzI2MTUsIDAuODM5NDY2LCAxLjA0OTcxLCAxLjI1NzY2IiwgXAotICAgICAgICAgICIwLjA2MTM1NiwgMC4yNjExNjksIDAuNDI2MjI2LCAwLjYzMzA1MywgMC44MzkzOTIsIDEuMDQ4NzYsIDEuMjU3NzUiLCBcCi0gICAgICAgICAgIjAuMDYxNTcsIDAuMjYxMjA3LCAwLjQyNjI1MywgMC42MzI1NTgsIDAuODM5NjA4LCAxLjA0OTU4LCAxLjI1NzciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTQ2MDQ5LCAwLjI1MjEyNCwgMC4zMzQ1MjIsIDAuNDM3NDcxLCAwLjU0MDM1NiwgMC42NDMxNTUsIDAuNzQ1OTkzIiwgXAotICAgICAgICAgICIwLjE1NDg5MiwgMC4yNjEwMzYsIDAuMzQzNDQxLCAwLjQ0NjM1MSwgMC41NDkyNzQsIDAuNjUyMDcyLCAwLjc1NDkwNyIsIFwKLSAgICAgICAgICAiMC4xNjQ5MDMsIDAuMjcxMTM5LCAwLjM1MzU1MSwgMC40NTY1NSwgMC41NTkzMjQsIDAuNjYyMjE4LCAwLjc2NTA0IiwgXAotICAgICAgICAgICIwLjE3NDQ4MSwgMC4yODA2NzcsIDAuMzYzMDU4LCAwLjQ2NjAxNCwgMC41Njg4OTksIDAuNjcxNjk4LCAwLjc3NDUzOSIsIFwKLSAgICAgICAgICAiMC4xODM1MzEsIDAuMjg5NjE1LCAwLjM3MjAwNCwgMC40NzQ5NDksIDAuNTc3ODM3LCAwLjY4MDYzNiwgMC43ODM0NzQiLCBcCi0gICAgICAgICAgIjAuMTk2NDU4LCAwLjMwMjU4OSwgMC4zODQ5ODUsIDAuNDg3OTE4LCAwLjU5MDgyLCAwLjY5MzYxOSwgMC43OTY0NTEiLCBcCi0gICAgICAgICAgIjAuMjA2Mjg1LCAwLjMxMjMyNywgMC4zOTQ3MzIsIDAuNDk3NjgzLCAwLjYwMDUzNCwgMC43MDMzOTUsIDAuODA2MjEzIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2MTc0OSwgMC4yNjc0NCwgMC40MzczNjksIDAuNjQ5NTczLCAwLjg2NDU5NSwgMS4wNzgzNywgMS4yOTEwMyIsIFwKLSAgICAgICAgICAiMC4wNjE3MDEsIDAuMjY3MzU1LCAwLjQzNzM2MywgMC42NTA3NSwgMC44NjQ1ODUsIDEuMDc4MzcsIDEuMjkyNDYiLCBcCi0gICAgICAgICAgIjAuMDYxNjU3LCAwLjI2NzUyNCwgMC40MzczNTksIDAuNjQ5Njc3LCAwLjg2MzA3NCwgMS4wNzg0MSwgMS4yOTIzMyIsIFwKLSAgICAgICAgICAiMC4wNjE2ODQsIDAuMjY3NzY5LCAwLjQzNzI2MSwgMC42NDk1NzksIDAuODY0NTgsIDEuMDc4MzcsIDEuMjg5NDMiLCBcCi0gICAgICAgICAgIjAuMDYxNzUxLCAwLjI2Nzc3MSwgMC40MzczNjIsIDAuNjQ5OTY2LCAwLjg2NDU4NywgMS4wNzgzNywgMS4yOTEwNiIsIFwKLSAgICAgICAgICAiMC4wNjE2NjIsIDAuMjY3NzQxLCAwLjQzNjc5MSwgMC42NDk5NzcsIDAuODY0NTk2LCAxLjA3ODM3LCAxLjI5MTEiLCBcCi0gICAgICAgICAgIjAuMDYxNjksIDAuMjY3NTg5LCAwLjQzNzMyNiwgMC42NTAwMjEsIDAuODYzNTYxLCAxLjA3ODM1LCAxLjI5MDk3Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE0ODY4MywgMC4yNTU1OTcsIDAuMzM3ODUyLCAwLjQ0MDU3MSwgMC41NDMyNzgsIDAuNjQ1OTE1LCAwLjc0ODUxIiwgXAotICAgICAgICAgICIwLjE1NzYxNCwgMC4yNjQ1NDEsIDAuMzQ2Nzk1LCAwLjQ0OTQ5OCwgMC41NTIyMzgsIDAuNjU0ODM0LCAwLjc1NzQyOSIsIFwKLSAgICAgICAgICAiMC4xNjg0MzMsIDAuMjc1MzYxLCAwLjM1NzYxNCwgMC40NjAzMTYsIDAuNTYzMDU5LCAwLjY2NTY1NCwgMC43NjgyNDkiLCBcCi0gICAgICAgICAgIjAuMTc4ODUzLCAwLjI4NTg2MSwgMC4zNjgxMDgsIDAuNDcwODMsIDAuNTczNDg5LCAwLjY3NjEzMywgMC43Nzg3NzkiLCBcCi0gICAgICAgICAgIjAuMTg4NzcyLCAwLjI5NTc3OSwgMC4zNzgwMzUsIDAuNDgwNzQ4LCAwLjU4MzQ0MSwgMC42ODYwNiwgMC43ODg3MDEiLCBcCi0gICAgICAgICAgIjAuMjAzMzI1LCAwLjMxMDI3OSwgMC4zOTI1MjksIDAuNDk1MjU4LCAwLjU5NzkxNCwgMC43MDA1NiwgMC44MDMyMDUiLCBcCi0gICAgICAgICAgIjAuMjE0NTg1LCAwLjMyMTUyOSwgMC40MDM3ODIsIDAuNTA2NDk1LCAwLjYwOTIzMiwgMC43MTE4MjgsIDAuODE0NTE1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2MTc3NCwgMC4yNjE0MDQsIDAuNDI2NDU0LCAwLjYzMjY5LCAwLjg0MDIyOSwgMS4wNDk3MywgMS4yNTc5MyIsIFwKLSAgICAgICAgICAiMC4wNjE2MjEsIDAuMjYxMzk0LCAwLjQyNjUxOCwgMC42MzI3MzcsIDAuODM5ODg2LCAxLjA0OTcsIDEuMjU3ODMiLCBcCi0gICAgICAgICAgIjAuMDYxNzIsIDAuMjYxMzk2LCAwLjQyNjUwOCwgMC42MzI3MTksIDAuODQwMDQ4LCAxLjA0OTY3LCAxLjI1NzgyIiwgXAotICAgICAgICAgICIwLjA2MTcwNywgMC4yNjE0MTgsIDAuNDI2NDIzLCAwLjYzMjg5LCAwLjg0MTA2MSwgMS4wNDc5NCwgMS4yNTc5NSIsIFwKLSAgICAgICAgICAiMC4wNjE2ODMsIDAuMjYxNDIzLCAwLjQyNjQzNiwgMC42MzM0NzEsIDAuODQwMjE5LCAxLjA0ODksIDEuMjU3ODgiLCBcCi0gICAgICAgICAgIjAuMDYxNjYsIDAuMjYxNDE2LCAwLjQyNjQxNSwgMC42MzI5MzIsIDAuODQwODYyLCAxLjA0OCwgMS4yNTc5MSIsIFwKLSAgICAgICAgICAiMC4wNjE4NiwgMC4yNjE0MzcsIDAuNDI1ODMzLCAwLjYzMjc1NSwgMC44MzkzMDUsIDEuMDQ5NywgMS4yNTc3MyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJEIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNDY2NTEsIDAuMjUyODAzLCAwLjMzNTIxLCAwLjQzODEyOCwgMC41NDEwNDMsIDAuNjQzODQxLCAwLjc0NjYwNiIsIFwKLSAgICAgICAgICAiMC4xNTUzOTMsIDAuMjYxNTQ2LCAwLjM0Mzk0OCwgMC40NDY4OTYsIDAuNTQ5NzgsIDAuNjUyNTc5LCAwLjc1NTM2OCIsIFwKLSAgICAgICAgICAiMC4xNjUzMTYsIDAuMjcxNDgyLCAwLjM1Mzg3NCwgMC40NTY4MjUsIDAuNTU5NzE4LCAwLjY2MjUxOCwgMC43NjUzNTUiLCBcCi0gICAgICAgICAgIjAuMTc0ODU3LCAwLjI4MDk2MSwgMC4zNjMzNTYsIDAuNDY2Mjk3LCAwLjU2OTE4MiwgMC42NzE5ODIsIDAuNzc0ODI1IiwgXAotICAgICAgICAgICIwLjE4MzcyNCwgMC4yODk4ODksIDAuMzcyMjkxLCAwLjQ3NTIyOSwgMC41Nzc5NjMsIDAuNjgwOTUyLCAwLjc4Mzc1NyIsIFwKLSAgICAgICAgICAiMC4xOTY1MzUsIDAuMzAyNzc4LCAwLjM4NTE2NiwgMC40ODgxMDksIDAuNTkxMDA5LCAwLjY5MzgwOCwgMC43OTY2NDIiLCBcCi0gICAgICAgICAgIjAuMjA2Mzk4LCAwLjMxMjQ0OCwgMC4zOTQ4NTMsIDAuNDk3ODA0LCAwLjYwMDY1NSwgMC43MDM1MTYsIDAuODA2MzM0Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2MTY2MiwgMC4yNjc1MjQsIDAuNDM3MzY4LCAwLjY1MDgxOCwgMC44NjQ1OTMsIDEuMDc4MzcsIDEuMjkyMDMiLCBcCi0gICAgICAgICAgIjAuMDYxNzAxLCAwLjI2NzQ4OCwgMC40MzczNjQsIDAuNjQ5NTk5LCAwLjg2NDU4NywgMS4wNzgzNywgMS4yOTI2IiwgXAotICAgICAgICAgICIwLjA2MTY3OCwgMC4yNjczNzIsIDAuNDM2OTg2LCAwLjY0OTk4MSwgMC44NjQ1ODgsIDEuMDc4MzYsIDEuMjkxMTQiLCBcCi0gICAgICAgICAgIjAuMDYxNzUsIDAuMjY3NzcxLCAwLjQzNzM2MywgMC42NDk5NzIsIDAuODY0NTg3LCAxLjA3ODM4LCAxLjI5MTE1IiwgXAotICAgICAgICAgICIwLjA2MTc1NSwgMC4yNjc0NTUsIDAuNDM3MzU5LCAwLjY1MDA5LCAwLjg2MjM3OSwgMS4wNzcxLCAxLjI5MDc5IiwgXAotICAgICAgICAgICIwLjA2MTU4OSwgMC4yNjc3NTEsIDAuNDM2ODc1LCAwLjY0OTk2OSwgMC44NjQ1ODUsIDEuMDc4MzcsIDEuMjkxMTEiLCBcCi0gICAgICAgICAgIjAuMDYxNzM1LCAwLjI2NzYwMiwgMC40MzczMjgsIDAuNjUwMDIzLCAwLjg2MzU2OCwgMS4wNzgzNSwgMS4yOTA5NyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNDc5ODgsIDAuMjU0OTg1LCAwLjMzNzIzNywgMC40Mzk5NTcsIDAuNTQyNjM4LCAwLjY0NTMyNCwgMC43NDc4OTgiLCBcCi0gICAgICAgICAgIjAuMTU3MTU3LCAwLjI2NDA5NiwgMC4zNDYzNjgsIDAuNDQ5MDU3LCAwLjU1MTc5MSwgMC42NTQzODksIDAuNzU2OTg2IiwgXAotICAgICAgICAgICIwLjE2ODAzNSwgMC4yNzQ5NjQsIDAuMzU3MjE4LCAwLjQ1OTkyLCAwLjU2MjY2MSwgMC42NjUyNTcsIDAuNzY3ODUyIiwgXAotICAgICAgICAgICIwLjE3ODYzNywgMC4yODU2NDUsIDAuMzY3ODkyLCAwLjQ3MDYxOCwgMC41NzMyNzQsIDAuNjc1OTE5LCAwLjc3ODU2MyIsIFwKLSAgICAgICAgICAiMC4xODg3MDUsIDAuMjk1NjE2LCAwLjM3Nzg2OSwgMC40ODA1ODMsIDAuNTgzMjU0LCAwLjY4NTk0OCwgMC43ODg1MzYiLCBcCi0gICAgICAgICAgIjAuMjAzMTkyLCAwLjMxMDE0OCwgMC4zOTIzOTcsIDAuNDk1MTUyLCAwLjU5Nzc4NywgMC43MDA0NDgsIDAuODAzMDYyIiwgXAotICAgICAgICAgICIwLjIxNDQ1NiwgMC4zMjE0MDMsIDAuNDAzNjYzLCAwLjUwNjM3MSwgMC42MDkxMDcsIDAuNzExNzA0LCAwLjgxNDQwMyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjE3MTEsIDAuMjYxNDE2LCAwLjQyNjQ1OSwgMC42MzI4NzEsIDAuODQxNjk2LCAxLjA0OTYxLCAxLjI1Nzk5IiwgXAotICAgICAgICAgICIwLjA2MTU2LCAwLjI2MTM5NiwgMC40MjY2MjQsIDAuNjMyNzY5LCAwLjgzOTYxNywgMS4wNDk3MiwgMS4yNTc4MyIsIFwKLSAgICAgICAgICAiMC4wNjE1NzQsIDAuMjYxMzk0LCAwLjQyNjUxNCwgMC42MzI3MjcsIDAuODQwMDM1LCAxLjA0OTY4LCAxLjI1NzgxIiwgXAotICAgICAgICAgICIwLjA2MTcwNCwgMC4yNjE0MTcsIDAuNDI2NDIzLCAwLjYzMzAzLCAwLjg0MDg2OSwgMS4wNDc5OSwgMS4yNTc5NiIsIFwKLSAgICAgICAgICAiMC4wNjE3NDgsIDAuMjYxNDI1LCAwLjQyNjQyOSwgMC42MzM0NjYsIDAuODQxNjI4LCAxLjA0OTU1LCAxLjI1Nzg2IiwgXAotICAgICAgICAgICIwLjA2MTY1OCwgMC4yNjE0MDksIDAuNDI2NDI1LCAwLjYzMzkxOCwgMC44NDAyODcsIDEuMDQ4MDMsIDEuMjU1ODQiLCBcCi0gICAgICAgICAgIjAuMDYxODU3LCAwLjI2MTQzNywgMC40MjY0NzEsIDAuNjMyNzYxLCAwLjgzOTM4NCwgMS4wNDk3MSwgMS4yNTUzOCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTY3NzY4LCAwLjI3Mzk0OSwgMC4zNTYzMzYsIDAuNDU5MzA2LCAwLjU2MjE2NiwgMC42NjQ5NzQsIDAuNzY3ODI2IiwgXAotICAgICAgICAgICIwLjE3ODA3NSwgMC4yODQyNjcsIDAuMzY2NjUzLCAwLjQ2OTU3MywgMC41NzI0OCwgMC42NzUyOSwgMC43NzgyMjgiLCBcCi0gICAgICAgICAgIjAuMTkwNTE4LCAwLjI5NjgwOCwgMC4zNzkxOTIsIDAuNDgyMTU1LCAwLjU4NTAyNywgMC42ODc4MjcsIDAuNzkwNjg4IiwgXAotICAgICAgICAgICIwLjIwMTk2LCAwLjMwODIzNywgMC4zOTA2MzYsIDAuNDkzNTgzLCAwLjU5NjQ1OCwgMC42OTkyNTcsIDAuODAyMDAzIiwgXAotICAgICAgICAgICIwLjIxMjI4NiwgMC4zMTg1NzUsIDAuNDAwOTU4LCAwLjUwMzkyMiwgMC42MDY3OTQsIDAuNzA5NTk0LCAwLjgxMjQ1NCIsIFwKLSAgICAgICAgICAiMC4yMjU3MjEsIDAuMzMxOTI0LCAwLjQxNDMxNSwgMC41MTcyODIsIDAuNjIwMTQyLCAwLjcyMjk1MSwgMC44MjU3OTQiLCBcCi0gICAgICAgICAgIjAuMjM3MTA4LCAwLjM0MzMyMywgMC40MjU2OTMsIDAuNTI4NjYzLCAwLjYzMTU0NCwgMC43MzQzNDUsIDAuODM3MTkzIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2MTc2MiwgMC4yNjc3OCwgMC40MzczNzEsIDAuNjUwNzI2LCAwLjg2NDY0OCwgMS4wNzg0NCwgMS4yOTIxMiIsIFwKLSAgICAgICAgICAiMC4wNjE3NSwgMC4yNjc3OTYsIDAuNDM3MzY3LCAwLjY1MDgyMSwgMC44NjQ2NTcsIDEuMDc4MzgsIDEuMjkyNTkiLCBcCi0gICAgICAgICAgIjAuMDYxNjkxLCAwLjI2Nzc3OSwgMC40Mzc1NTYsIDAuNjQ5OTg3LCAwLjg2NDY2MiwgMS4wNzg0NiwgMS4yOTE2NSIsIFwKLSAgICAgICAgICAiMC4wNjE3NDksIDAuMjY3Nzc5LCAwLjQzNzM2MywgMC42NTA3NzEsIDAuODY0NjY1LCAxLjA3ODQ2LCAxLjI5MTY1IiwgXAotICAgICAgICAgICIwLjA2MTY5OSwgMC4yNjc3NzgsIDAuNDM3NTUyLCAwLjY1MDEyOCwgMC44NjQ2NjIsIDEuMDc4NDYsIDEuMjkyMzkiLCBcCi0gICAgICAgICAgIjAuMDYxNzU5LCAwLjI2Nzc4MiwgMC40MzczNjUsIDAuNjUwODUxLCAwLjg2NDU4OSwgMS4wNzg0MSwgMS4yOTI0MiIsIFwKLSAgICAgICAgICAiMC4wNjE2MjcsIDAuMjY3Nzc2LCAwLjQzNzU0MSwgMC42NTAwMDQsIDAuODY0NjU4LCAxLjA3ODQ4LCAxLjI5MjMzIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE3MjU5MywgMC4yNzk1MywgMC4zNjE3OSwgMC40NjQ0ODcsIDAuNTY3MjI3LCAwLjY2OTgyMywgMC43NzI0MTgiLCBcCi0gICAgICAgICAgIjAuMTgyNTkyLCAwLjI4OTUzOSwgMC4zNzE3OTMsIDAuNDc0NDk4LCAwLjU3NzIzNiwgMC42Nzk4MzMsIDAuNzgyNDMiLCBcCi0gICAgICAgICAgIjAuMTk0NDk3LCAwLjMwMTQ5NiwgMC4zODM3NDgsIDAuNDg2NDgxLCAwLjU4OTEzMiwgMC42OTE3NzksIDAuNzk0NDEzIiwgXAotICAgICAgICAgICIwLjIwNTU3OSwgMC4zMTI1OTgsIDAuMzk0ODQ0LCAwLjQ5NzU5NiwgMC42MDAyMjgsIDAuNzAyODg3LCAwLjgwNTQ5MiIsIFwKLSAgICAgICAgICAiMC4yMTQ5NzUsIDAuMzIxODcsIDAuNDA0MTMxLCAwLjUwNjg0NywgMC42MDk1NDksIDAuNzEyMTk0LCAwLjgxNDc4OSIsIFwKLSAgICAgICAgICAiMC4yMjc3MDcsIDAuMzM0Njc4LCAwLjQxNjk1OCwgMC41MTk2MzgsIDAuNjIyMzczLCAwLjcyNDk3MSwgMC44Mjc1NzYiLCBcCi0gICAgICAgICAgIjAuMjM3Mzg3LCAwLjM0NDI2NywgMC40MjY1MiwgMC41MjkyMTksIDAuNjMxOTIyLCAwLjczNDU5NCwgMC44MzcxNjEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDYxNzcxLCAwLjI2MTU5MSwgMC40MjY1NDMsIDAuNjMzNzUyLCAwLjg0MTgsIDEuMDQ5ODYsIDEuMjU4MDYiLCBcCi0gICAgICAgICAgIjAuMDYxNzE1LCAwLjI2MTYwOCwgMC40MjY1MTgsIDAuNjMzOTQ5LCAwLjg0MTY1NSwgMS4wNDk3LCAxLjI1ODE1IiwgXAotICAgICAgICAgICIwLjA2MTc2NiwgMC4yNjE2NDksIDAuNDI2NDkxLCAwLjYzMzg4NCwgMC44NDE2OTQsIDEuMDQ5ODQsIDEuMjU3OTciLCBcCi0gICAgICAgICAgIjAuMDYxNzY3LCAwLjI2MTU0OSwgMC40MjY0MjYsIDAuNjMzOTE4LCAwLjg0MTc0NCwgMS4wNDk4NSwgMS4yNTgwNiIsIFwKLSAgICAgICAgICAiMC4wNjE3NzUsIDAuMjYxNjEsIDAuNDI2NSwgMC42MzM4MTQsIDAuODQxNjc1LCAxLjA0OTk2LCAxLjI1ODEyIiwgXAotICAgICAgICAgICIwLjA2MTc4MywgMC4yNjE1NywgMC40MjY1MzQsIDAuNjMzNzMyLCAwLjg0MTYzOCwgMS4wNDk4NiwgMS4yNTc5NSIsIFwKLSAgICAgICAgICAiMC4wNjE3MDYsIDAuMjYxNDI1LCAwLjQyNjQ2OCwgMC42MzM4NzQsIDAuODQxNjA0LCAxLjA0OTg5LCAxLjI1ODExIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlMwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMzcyNCwgMC4yNDM0MzMsIDAuMzI1ODIzLCAwLjQyODc5MywgMC41MzE2NSwgMC42MzQ0NiwgMC43MzczMjciLCBcCi0gICAgICAgICAgIjAuMTQ1OTgyLCAwLjI1MjE1NSwgMC4zMzQ1NjUsIDAuNDM3NTA2LCAwLjU0MDM5NCwgMC42NDMxOTEsIDAuNzQ2MDM2IiwgXAotICAgICAgICAgICIwLjE1NzM0LCAwLjI2MzQ0MiwgMC4zNDU4NTcsIDAuNDQ4NzgsIDAuNTUxNjg3LCAwLjY1NDQ4NSwgMC43NTc0NDgiLCBcCi0gICAgICAgICAgIjAuMTY4MjY4LCAwLjI3NDM3MiwgMC4zNTY3NzksIDAuNDU5NzMzLCAwLjU2MjY3OCwgMC42NjU0NjQsIDAuNzY4MjU4IiwgXAotICAgICAgICAgICIwLjE3ODE0OCwgMC4yODQ0MjEsIDAuMzY2ODQ1LCAwLjQ2OTc2OCwgMC41NzI2NDQsIDAuNjc1NDQ0LCAwLjc3ODMiLCBcCi0gICAgICAgICAgIjAuMTkxODksIDAuMjk4MDMxLCAwLjM4MDQxOSwgMC40ODMzMywgMC41ODYyNTQsIDAuNjg5MDU2LCAwLjc5MTkwOSIsIFwKLSAgICAgICAgICAiMC4yMDIxMTksIDAuMzA4MzAzLCAwLjM5MDcwOSwgMC40OTM2NDUsIDAuNTk2NTYsIDAuNjk5NDMzLCAwLjgwMjE4OSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjE3NTYsIDAuMjY3NzcyLCAwLjQzNzM2NCwgMC42NTA4MTYsIDAuODY0NjU4LCAxLjA3ODM4LCAxLjI5MjQ3IiwgXAotICAgICAgICAgICIwLjA2MTc3MiwgMC4yNjc3NzksIDAuNDM3NTUzLCAwLjY1MDgxMSwgMC44NjQ2NjQsIDEuMDc4NDcsIDEuMjkyMjgiLCBcCi0gICAgICAgICAgIjAuMDYxNzcsIDAuMjY3NzczLCAwLjQzNzU1MywgMC42NTA4MjcsIDAuODY0NjU3LCAxLjA3ODM3LCAxLjI5MjI5IiwgXAotICAgICAgICAgICIwLjA2MTcxMSwgMC4yNjc3NzcsIDAuNDM3NTUxLCAwLjY0OTk4NCwgMC44NjQ2NDcsIDEuMDc4MzcsIDEuMjkyNDciLCBcCi0gICAgICAgICAgIjAuMDYxNjkzLCAwLjI2Nzc4LCAwLjQzNzU1MSwgMC42NTA3MDksIDAuODY0NjU5LCAxLjA3ODQ2LCAxLjI5MTA2IiwgXAotICAgICAgICAgICIwLjA2MTY4NiwgMC4yNjc3NzIsIDAuNDM3MzYyLCAwLjY1MDgzNywgMC44NjQ2NTQsIDEuMDc4NDYsIDEuMjkyMzUiLCBcCi0gICAgICAgICAgIjAuMDYxOTUxLCAwLjI2NzYwMiwgMC40MzczNjYsIDAuNjUwNzc0LCAwLjg2NDQ3MywgMS4wNzg0MSwgMS4yOTIyNCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMzk2MjgsIDAuMjQ2NjEzLCAwLjMyODg3NiwgMC40MzE1OTUsIDAuNTM0MjY4LCAwLjYzNjkzNiwgMC43Mzk1MyIsIFwKLSAgICAgICAgICAiMC4xNDg2ODgsIDAuMjU1NzA3LCAwLjMzNzk1NSwgMC40NDA2OTUsIDAuNTQzMzM4LCAwLjY0NTk4NSwgMC43NDg2MjMiLCBcCi0gICAgICAgICAgIjAuMTYwMjcyLCAwLjI2NzI2NSwgMC4zNDk1MTcsIDAuNDUyMjczLCAwLjU1NDkwOCwgMC42NTc1NjQsIDAuNzYwMTgyIiwgXAotICAgICAgICAgICIwLjE3MTU4NSwgMC4yNzg1ODYsIDAuMzYwODQyLCAwLjQ2MzU1NCwgMC41NjYyNTgsIDAuNjY4OTUxLCAwLjc3MTUwOCIsIFwKLSAgICAgICAgICAiMC4xODIxODcsIDAuMjg5MjAyLCAwLjM3MTQ1NywgMC40NzQxODMsIDAuNTc2ODU3LCAwLjY3OTUyMSwgMC43ODIxMjYiLCBcCi0gICAgICAgICAgIjAuMTk2ODcyLCAwLjMwMzc2MSwgMC4zODYwMTMsIDAuNDg4NzMzLCAwLjU5MTQzNSwgMC42OTQwODQsIDAuNzk2Njc2IiwgXAotICAgICAgICAgICIwLjIwNzYyNiwgMC4zMTQ1ODEsIDAuMzk2ODM5LCAwLjQ5OTU2OSwgMC42MDIyMjQsIDAuNzA0ODY3LCAwLjgwNzUwMSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjE3NTgsIDAuMjYxNTk2LCAwLjQyNjUwMywgMC42MzM4MjYsIDAuODQxNzM0LCAxLjA0OTk3LCAxLjI1ODA5IiwgXAotICAgICAgICAgICIwLjA2MTc2NSwgMC4yNjE0MTksIDAuNDI2NTEsIDAuNjMzNTk4LCAwLjg0MTY3NywgMS4wNDk4NCwgMS4yNTgxIiwgXAotICAgICAgICAgICIwLjA2MTc4MiwgMC4yNjE1OTUsIDAuNDI2NTMyLCAwLjYzMzkzNCwgMC44NDE3MDIsIDEuMDQ5OTUsIDEuMjU3OTgiLCBcCi0gICAgICAgICAgIjAuMDYxNzYxLCAwLjI2MTQyNiwgMC40MjY1NTQsIDAuNjMzNDY3LCAwLjg0MTYxMywgMS4wNDk4MiwgMS4yNTgwMyIsIFwKLSAgICAgICAgICAiMC4wNjE3ODUsIDAuMjYxNTgxLCAwLjQyNjQzNSwgMC42MzM3NzYsIDAuODQxNjYxLCAxLjA0OTk0LCAxLjI1ODA5IiwgXAotICAgICAgICAgICIwLjA2MTcxMywgMC4yNjE2MjQsIDAuNDI2NDE5LCAwLjYzMzE0LCAwLjg0MTE0NSwgMS4wNDk4MywgMS4yNTgxIiwgXAotICAgICAgICAgICIwLjA2MTc1MiwgMC4yNjE2NDgsIDAuNDI2NTQ0LCAwLjYzMzg0NiwgMC44NDE2MDUsIDEuMDQ5ODIsIDEuMjU4MDkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUzEiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4NjQyOCwgMC4xOTI1MTgsIDAuMjc0OTY3LCAwLjM3Nzg5NSwgMC40ODA3ODIsIDAuNTgzNTg1LCAwLjY4NjQyMyIsIFwKLSAgICAgICAgICAiMC4wOTU1NzcsIDAuMjAxNzIsIDAuMjg0MTE3LCAwLjM4NzA1NCwgMC40ODk5NDUsIDAuNTkyNzQ4LCAwLjY5NTU4NSIsIFwKLSAgICAgICAgICAiMC4xMDcxOTYsIDAuMjEzMjc5LCAwLjI5NTY3NCwgMC4zOTg2MjQsIDAuNTAxNTA5LCAwLjYwNDMxLCAwLjcwNzE0NyIsIFwKLSAgICAgICAgICAiMC4xMTg4OTUsIDAuMjI1MDU1LCAwLjMwNzQ2NywgMC40MTA0MDIsIDAuNTEzMjk1LCAwLjYxNjA5OSwgMC43MTg5MzYiLCBcCi0gICAgICAgICAgIjAuMTMwNzYsIDAuMjM2ODgxLCAwLjMxOTI5NiwgMC40MjIyMzIsIDAuNTI1MTM2LCAwLjYyNzkzOSwgMC43MzA5MjYiLCBcCi0gICAgICAgICAgIjAuMTQ4MDIsIDAuMjU0Mzc2LCAwLjMzNjgxMywgMC40Mzk3MjMsIDAuNTQyNTg1LCAwLjY0NTQ0NiwgMC43NDgyNjciLCBcCi0gICAgICAgICAgIjAuMTYxNTQxLCAwLjI2ODA1OCwgMC4zNTA0MjIsIDAuNDUzMzU1LCAwLjU1NjMxNSwgMC42NTkwOTcsIDAuNzYxODk2Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2MTQ5NCwgMC4yNjc1MDgsIDAuNDM3NTM3LCAwLjY0OTU4NSwgMC44NjQ2MTIsIDEuMDc4NCwgMS4yOTExNyIsIFwKLSAgICAgICAgICAiMC4wNjE0ODQsIDAuMjY3NzMxLCAwLjQzNjc4MiwgMC42NDk5OCwgMC44NjQ1ODMsIDEuMDc4MzcsIDEuMjkxMTQiLCBcCi0gICAgICAgICAgIjAuMDYxNTM4LCAwLjI2NzcyNywgMC40MzczMDUsIDAuNjQ5NTgsIDAuODY0NDUxLCAxLjA3ODI1LCAxLjI5MDk2IiwgXAotICAgICAgICAgICIwLjA2MTYxNCwgMC4yNjc3NDcsIDAuNDM2Nzc4LCAwLjY0OTk3LCAwLjg2NDU2OSwgMS4wNzgzNSwgMS4yOTEwNyIsIFwKLSAgICAgICAgICAiMC4wNjE5NDQsIDAuMjY3NDkyLCAwLjQzNzM2LCAwLjY1MDcyMywgMC44NjQ0NTEsIDEuMDc4MjUsIDEuMjkwMjgiLCBcCi0gICAgICAgICAgIjAuMDYzNDQ3LCAwLjI2Nzk4NSwgMC40Mzc1OTgsIDAuNjUwMTA4LCAwLjg2NDQxNSwgMS4wNzgyNSwgMS4yOTEwMSIsIFwKLSAgICAgICAgICAiMC4wNjUyNDMsIDAuMjY4MTYsIDAuNDM3NTEyLCAwLjY1MDExNiwgMC44NjMxMDgsIDEuMDc4MjcsIDEuMjkwNzUiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg4ODQ1LCAwLjE5NTU0MywgMC4yNzc3NzYsIDAuMzgwNDU3LCAwLjQ4MzE3MywgMC41ODU3NjMsIDAuNjg4MzUyIiwgXAotICAgICAgICAgICIwLjA5NzYxMywgMC4yMDQzNzgsIDAuMjg2NjExLCAwLjM4OTI5MiwgMC40OTIwMTIsIDAuNTk0NjAxLCAwLjY5NzE4OSIsIFwKLSAgICAgICAgICAiMC4xMDg4MjYsIDAuMjE1NiwgMC4yOTc4MzYsIDAuNDAwNTQsIDAuNTAzMjM0LCAwLjYwNTg2MywgMC43MDg0NTEiLCBcCi0gICAgICAgICAgIjAuMTIwNDk3LCAwLjIyNzI4MSwgMC4zMDk1MTgsIDAuNDEyMjE5LCAwLjUxNDkzNywgMC42MTc1MywgMC43MjAxNjMiLCBcCi0gICAgICAgICAgIjAuMTMxNjM5LCAwLjIzODQzLCAwLjMyMDY3MSwgMC40MjMzOCwgMC41MjYwNTEsIDAuNjI4NzE1LCAwLjczMTMwMiIsIFwKLSAgICAgICAgICAiMC4xNDc5MjQsIDAuMjU0ODc1LCAwLjMzNzA5OCwgMC40Mzk3OTQsIDAuNTQyNDgxLCAwLjY0NTE0OSwgMC43NDc3MjgiLCBcCi0gICAgICAgICAgIjAuMTYwMzksIDAuMjY3NjkxLCAwLjM0OTg4NSwgMC40NTI1ODksIDAuNTU1MjcyLCAwLjY1NzkzMSwgMC43NjA1NDgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDYxMzI2LCAwLjI2MTE0OSwgMC40MjYzNDMsIDAuNjMyNjE0LCAwLjg0MTM5NiwgMS4wNDk2NywgMS4yNTc2NSIsIFwKLSAgICAgICAgICAiMC4wNjEyODMsIDAuMjYxMTQ4LCAwLjQyNjM1MiwgMC42MzI2MiwgMC44Mzk1MTIsIDEuMDQ5NjUsIDEuMjU3NjYiLCBcCi0gICAgICAgICAgIjAuMDYxMzE1LCAwLjI2MTA2NSwgMC40MjYyMzYsIDAuNjMyNTMsIDAuODQwMTU3LCAxLjA0OTU3LCAxLjI1NzciLCBcCi0gICAgICAgICAgIjAuMDYxMzg0LCAwLjI2MTE3MSwgMC40MjYyNDksIDAuNjMyNjQyLCAwLjg0MTQwMSwgMS4wNDk2NywgMS4yNTc4NyIsIFwKLSAgICAgICAgICAiMC4wNjE3NTQsIDAuMjYxMjU4LCAwLjQyNjI1OSwgMC42MzI5OTgsIDAuODQwMzk5LCAxLjA0OTUxLCAxLjI1NzczIiwgXAotICAgICAgICAgICIwLjA2MzE0MiwgMC4yNjE3NjIsIDAuNDI2NDE1LCAwLjYzMzU4NiwgMC44NDE0OSwgMS4wNDk1OSwgMS4yNTc3NiIsIFwKLSAgICAgICAgICAiMC4wNjQ2MzIsIDAuMjYyMDI1LCAwLjQyNjYxMiwgMC42MzM3NCwgMC44NDAxNTQsIDEuMDQ5NTksIDEuMjU3OTUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUzEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwODMxOSwgMC4yMTQ0MjksIDAuMjk2ODE2LCAwLjM5OTc1MywgMC41MDI2MzYsIDAuNjA1NDM1LCAwLjcwODI3IiwgXAotICAgICAgICAgICIwLjExODI1MiwgMC4yMjQzNjcsIDAuMzA2NzY5LCAwLjQwOTY4OCwgMC41MTI1ODEsIDAuNjE1Mzc5LCAwLjcxODIwNCIsIFwKLSAgICAgICAgICAiMC4xMjk2OTQsIDAuMjM1Nzc1LCAwLjMxODE2LCAwLjQyMTA5OCwgMC41MjM5ODksIDAuNjI2Nzg3LCAwLjcyOTYxNyIsIFwKLSAgICAgICAgICAiMC4xMzg5NTYsIDAuMjQ1MDkyLCAwLjMyNzQ5NywgMC40MzA0MTIsIDAuNTMzMzE3LCAwLjYzNjExNCwgMC43MzkwMyIsIFwKLSAgICAgICAgICAiMC4xNDczNDMsIDAuMjUzNDE2LCAwLjMzNTgxNSwgMC40Mzg3NiwgMC41NDE2NDEsIDAuNjQ0NTEzLCAwLjc0NzI3NSIsIFwKLSAgICAgICAgICAiMC4xNTc5NDUsIDAuMjYzOTU2LCAwLjM0NjYyNiwgMC40NDk1NDQsIDAuNTUyNDQyLCAwLjY1NTI2MSwgMC43NTgwOSIsIFwKLSAgICAgICAgICAiMC4xNjU5MzgsIDAuMjcyMjMxLCAwLjM1NDY3MywgMC40NTc1NzMsIDAuNTYwNDQ4LCAwLjY2MzM4MSwgMC43NjYxNTciKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDYxMzQyLCAwLjI2NzIyLCAwLjQzNzMxLCAwLjY0OTQ4OCwgMC44NjQ0OTMsIDEuMDc4MjksIDEuMjkxMDUiLCBcCi0gICAgICAgICAgIjAuMDYxMzM1LCAwLjI2NzU5NCwgMC40Mzc0LCAwLjY0OTg3NiwgMC44NjQ1LCAxLjA3ODI4LCAxLjI5MDk5IiwgXAotICAgICAgICAgICIwLjA2MTM3NiwgMC4yNjc1OTUsIDAuNDM2NzM4LCAwLjY0OTgzNSwgMC44NjQ0OTEsIDEuMDc4MjksIDEuMjkxMDIiLCBcCi0gICAgICAgICAgIjAuMDYxMzIyLCAwLjI2NzE5MywgMC40MzcyMzgsIDAuNjQ5ODQyLCAwLjg2NDQ3MywgMS4wNzgyOSwgMS4yOTIzMiIsIFwKLSAgICAgICAgICAiMC4wNjEyNzIsIDAuMjY3MjkzLCAwLjQzNzIyNSwgMC42NDk5MTQsIDAuODY0NDUyLCAxLjA3ODM4LCAxLjI5MDgyIiwgXAotICAgICAgICAgICIwLjA2MTQ5NSwgMC4yNjc3NTMsIDAuNDM3MzE3LCAwLjY1MDYwNSwgMC44NjQzNzYsIDEuMDc4MTUsIDEuMjkyMDYiLCBcCi0gICAgICAgICAgIjAuMDYxNTc4LCAwLjI2NzcyNiwgMC40MzY5NzgsIDAuNjUwMTg5LCAwLjg2MzQ1OSwgMS4wNzY2MywgMS4yOTIwNyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTA5MjYsIDAuMjE3ODg3LCAwLjMwMDA5LCAwLjQwMjgxNiwgMC41MDU1NTgsIDAuNjA4MTU3LCAwLjcxMDc1MyIsIFwKLSAgICAgICAgICAiMC4xMjEyNTgsIDAuMjI4MjM1LCAwLjMxMDQyOCwgMC40MTMxNTYsIDAuNTE1ODY2LCAwLjYxODUwNiwgMC43MjExMDEiLCBcCi0gICAgICAgICAgIjAuMTMzMDM4LCAwLjI0MDA2OCwgMC4zMjIyNTksIDAuNDI0OTgyLCAwLjUyNzY5MSwgMC42MzAzMzEsIDAuNzMyOTI3IiwgXAotICAgICAgICAgICIwLjE0MzQxLCAwLjI1MDM4OSwgMC4zMzI2NTUsIDAuNDM1Mzc0LCAwLjUzODEwMywgMC42NDA3MDcsIDAuNzQzMzIyIiwgXAotICAgICAgICAgICIwLjE1MjAyMSwgMC4yNTg5NjIsIDAuMzQxMjE2LCAwLjQ0MzkzOCwgMC41NDY2ODMsIDAuNjQ5MjgxLCAwLjc1MTg4NSIsIFwKLSAgICAgICAgICAiMC4xNjM5NjIsIDAuMjcxMDU3LCAwLjM1MzMyOCwgMC40NTYwNTgsIDAuNTU4NzUzLCAwLjY2MTQxMiwgMC43NjQwMDYiLCBcCi0gICAgICAgICAgIjAuMTczMTQ1LCAwLjI4MDMwNiwgMC4zNjI1OTEsIDAuNDY1MzE2LCAwLjU2Nzk4NiwgMC42NzA2OTUsIDAuNzczMjc5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2MTY2NCwgMC4yNjEzNzEsIDAuNDI1NzY3LCAwLjYzMjc1NCwgMC44Mzk5NzYsIDEuMDQ5NzUsIDEuMjU3OSIsIFwKLSAgICAgICAgICAiMC4wNjE2MTQsIDAuMjYxMzczLCAwLjQyNjQxMywgMC42MzI2NzMsIDAuODQwMzI1LCAxLjA0OTU4LCAxLjI1Nzg2IiwgXAotICAgICAgICAgICIwLjA2MTYwNCwgMC4yNjEzNzEsIDAuNDI2NDA5LCAwLjYzMjY3MywgMC44NDAyMzQsIDEuMDQ5NiwgMS4yNTc4NCIsIFwKLSAgICAgICAgICAiMC4wNjE2MDcsIDAuMjYxMzI5LCAwLjQyNjM4NywgMC42MzI3OTUsIDAuODQxNTI1LCAxLjA0OTcxLCAxLjI1NTc3IiwgXAotICAgICAgICAgICIwLjA2MTUwMywgMC4yNjEzNTksIDAuNDI2Mzk0LCAwLjYzMjcyNCwgMC44Mzk5MDQsIDEuMDQ5NTksIDEuMjU3ODQiLCBcCi0gICAgICAgICAgIjAuMDYxNzI4LCAwLjI2MTcxMywgMC40MjY0MDgsIDAuNjMyNzE5LCAwLjgzOTc1NSwgMS4wNDk0NiwgMS4yNTc4NyIsIFwKLSAgICAgICAgICAiMC4wNjE3MzksIDAuMjYxODMxLCAwLjQyNjQ1NCwgMC42MzM0MzgsIDAuODQxNTMxLCAxLjA0OTQ2LCAxLjI1NzEzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1NTYzLCAwLjAwNTYzNywgMC4wMDU2NDksIDAuMDA1NjU2LCAwLjAwNTY1OCwgMC4wMDU2NiwgMC4wMDU2NjEiLCBcCi0gICAgICAgICAgIjAuMDA1NTUyLCAwLjAwNTYyNiwgMC4wMDU2MzcsIDAuMDA1NjQzLCAwLjAwNTY0NywgMC4wMDU2NDgsIDAuMDA1NjUiLCBcCi0gICAgICAgICAgIjAuMDA1NTQ1LCAwLjAwNTYxOSwgMC4wMDU2MywgMC4wMDU2MzYsIDAuMDA1NjM5LCAwLjAwNTY0MSwgMC4wMDU2NDIiLCBcCi0gICAgICAgICAgIjAuMDA1NTQsIDAuMDA1NjE0LCAwLjAwNTYyNSwgMC4wMDU2MzMsIDAuMDA1NjM2LCAwLjAwNTYzNywgMC4wMDU2MzkiLCBcCi0gICAgICAgICAgIjAuMDA1NTM4LCAwLjAwNTYxNCwgMC4wMDU2MjQsIDAuMDA1NjMxLCAwLjAwNTYzMywgMC4wMDU2MzUsIDAuMDA1NjM3IiwgXAotICAgICAgICAgICIwLjAwNTUzOSwgMC4wMDU2MTMsIDAuMDA1NjI2LCAwLjAwNTYzMSwgMC4wMDU2MzUsIDAuMDA1NjM3LCAwLjAwNTYzOCIsIFwKLSAgICAgICAgICAiMC4wMDU1NCwgMC4wMDU2MTgsIDAuMDA1NjMxLCAwLjAwNTYzNCwgMC4wMDU2MzksIDAuMDA1NjM5LCAwLjAwNTY0MiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDg2MiwgMC4wMDQ5NiwgMC4wMDQ5NzUsIDAuMDA0OTgzLCAwLjAwNDk4NywgMC4wMDQ5ODksIDAuMDA0OTkxIiwgXAotICAgICAgICAgICIwLjAwNDg0NiwgMC4wMDQ5NDIsIDAuMDA0OTU2LCAwLjAwNDk2NCwgMC4wMDQ5NjgsIDAuMDA0OTcsIDAuMDA0OTcyIiwgXAotICAgICAgICAgICIwLjAwNDgzMiwgMC4wMDQ5MywgMC4wMDQ5NDUsIDAuMDA0OTUzLCAwLjAwNDk1NywgMC4wMDQ5NTksIDAuMDA0OTYxIiwgXAotICAgICAgICAgICIwLjAwNDgyOSwgMC4wMDQ5MjMsIDAuMDA0OTM4LCAwLjAwNDk0NiwgMC4wMDQ5NDksIDAuMDA0OTUyLCAwLjAwNDk1NCIsIFwKLSAgICAgICAgICAiMC4wMDQ4MjcsIDAuMDA0OTIyLCAwLjAwNDkzNiwgMC4wMDQ5NDQsIDAuMDA0OTQ5LCAwLjAwNDk1MSwgMC4wMDQ5NTMiLCBcCi0gICAgICAgICAgIjAuMDA0ODI3LCAwLjAwNDkyMywgMC4wMDQ5MzgsIDAuMDA0OTQ2LCAwLjAwNDk1LCAwLjAwNDk1MywgMC4wMDQ5NTQiLCBcCi0gICAgICAgICAgIjAuMDA0ODMxLCAwLjAwNDkyNywgMC4wMDQ5NDIsIDAuMDA0OTUxLCAwLjAwNDk1NSwgMC4wMDQ5NTcsIDAuMDA0OTU5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1NzcsIDAuMDA1ODQzLCAwLjAwNTg1NSwgMC4wMDU4NjIsIDAuMDA1ODY0LCAwLjAwNTg2NywgMC4wMDU4NjciLCBcCi0gICAgICAgICAgIjAuMDA1NzU4LCAwLjAwNTgzMiwgMC4wMDU4NDMsIDAuMDA1ODUsIDAuMDA1ODUyLCAwLjAwNTg1NCwgMC4wMDU4NTYiLCBcCi0gICAgICAgICAgIjAuMDA1NzUxLCAwLjAwNTgyNSwgMC4wMDU4MzYsIDAuMDA1ODQzLCAwLjAwNTg0NSwgMC4wMDU4NDcsIDAuMDA1ODQ4IiwgXAotICAgICAgICAgICIwLjAwNTc0NiwgMC4wMDU4MiwgMC4wMDU4MzEsIDAuMDA1ODM3LCAwLjAwNTg0MSwgMC4wMDU4NDIsIDAuMDA1ODQzIiwgXAotICAgICAgICAgICIwLjAwNTc0NCwgMC4wMDU4MTgsIDAuMDA1ODI5LCAwLjAwNTgzNSwgMC4wMDU4MzksIDAuMDA1ODQxLCAwLjAwNTg0MiIsIFwKLSAgICAgICAgICAiMC4wMDU3NDMsIDAuMDA1ODE3LCAwLjAwNTgyOSwgMC4wMDU4MzUsIDAuMDA1ODM4LCAwLjAwNTg0LCAwLjAwNTg0MSIsIFwKLSAgICAgICAgICAiMC4wMDU3NDEsIDAuMDA1ODE5LCAwLjAwNTgzMywgMC4wMDU4MzcsIDAuMDA1ODQ0LCAwLjAwNTg0MiwgMC4wMDU4NDQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQ3OTMsIDAuMDA0ODg4LCAwLjAwNDkwMiwgMC4wMDQ5MSwgMC4wMDQ5MTQsIDAuMDA0OTE3LCAwLjAwNDkxOCIsIFwKLSAgICAgICAgICAiMC4wMDQ3NzMsIDAuMDA0ODY4LCAwLjAwNDg4MywgMC4wMDQ4OSwgMC4wMDQ4OTQsIDAuMDA0ODk3LCAwLjAwNDg5OCIsIFwKLSAgICAgICAgICAiMC4wMDQ3NjIsIDAuMDA0ODU3LCAwLjAwNDg3MiwgMC4wMDQ4NzksIDAuMDA0ODgzLCAwLjAwNDg4NiwgMC4wMDQ4ODciLCBcCi0gICAgICAgICAgIjAuMDA0NzU1LCAwLjAwNDg1LCAwLjAwNDg2NCwgMC4wMDQ4NzIsIDAuMDA0ODc2LCAwLjAwNDg3OSwgMC4wMDQ4OCIsIFwKLSAgICAgICAgICAiMC4wMDQ3NTMsIDAuMDA0ODQ4LCAwLjAwNDg2MiwgMC4wMDQ4NywgMC4wMDQ4NzQsIDAuMDA0ODc2LCAwLjAwNDg3OCIsIFwKLSAgICAgICAgICAiMC4wMDQ3NDksIDAuMDA0ODQ2LCAwLjAwNDg2MSwgMC4wMDQ4NjksIDAuMDA0ODczLCAwLjAwNDg3NSwgMC4wMDQ4NzciLCBcCi0gICAgICAgICAgIjAuMDA0NzU1LCAwLjAwNDg1MywgMC4wMDQ4NjcsIDAuMDA0ODc2LCAwLjAwNDg4LCAwLjAwNDg4MywgMC4wMDQ4ODQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDU0ODYsIDAuMDA1NTMyLCAwLjAwNTUzNywgMC4wMDU1NDIsIDAuMDA1NTQyLCAwLjAwNTU0MywgMC4wMDU1NDMiLCBcCi0gICAgICAgICAgIjAuMDA1NDc1LCAwLjAwNTUyMSwgMC4wMDU1MjYsIDAuMDA1NTMsIDAuMDA1NTMsIDAuMDA1NTMxLCAwLjAwNTUzMyIsIFwKLSAgICAgICAgICAiMC4wMDU0NjgsIDAuMDA1NTEzLCAwLjAwNTUxOSwgMC4wMDU1MjMsIDAuMDA1NTI1LCAwLjAwNTUyNCwgMC4wMDU1MjciLCBcCi0gICAgICAgICAgIjAuMDA1NDYzLCAwLjAwNTUwOSwgMC4wMDU1MTcsIDAuMDA1NTE4LCAwLjAwNTUxOSwgMC4wMDU1MiwgMC4wMDU1MjEiLCBcCi0gICAgICAgICAgIjAuMDA1NDYxLCAwLjAwNTUwNiwgMC4wMDU1MTIsIDAuMDA1NTE3LCAwLjAwNTUxNywgMC4wMDU1MTgsIDAuMDA1NTE4IiwgXAotICAgICAgICAgICIwLjAwNTQ1NywgMC4wMDU1MDQsIDAuMDA1NTExLCAwLjAwNTUxNCwgMC4wMDU1MTYsIDAuMDA1NTE3LCAwLjAwNTUxNyIsIFwKLSAgICAgICAgICAiMC4wMDU0NTgsIDAuMDA1NTA2LCAwLjAwNTUxNSwgMC4wMDU1MTYsIDAuMDA1NTE3LCAwLjAwNTUxOSwgMC4wMDU1MTkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDUzODcsIDAuMDA1NDU3LCAwLjAwNTQ2NywgMC4wMDU0NzIsIDAuMDA1NDc1LCAwLjAwNTQ3NiwgMC4wMDU0NzciLCBcCi0gICAgICAgICAgIjAuMDA1MzY3LCAwLjAwNTQzNywgMC4wMDU0NDcsIDAuMDA1NDUyLCAwLjAwNTQ1NCwgMC4wMDU0NTYsIDAuMDA1NDU3IiwgXAotICAgICAgICAgICIwLjAwNTM1NiwgMC4wMDU0MjYsIDAuMDA1NDM2LCAwLjAwNTQ0MSwgMC4wMDU0NDQsIDAuMDA1NDQ2LCAwLjAwNTQ0NyIsIFwKLSAgICAgICAgICAiMC4wMDUzNDksIDAuMDA1NDIsIDAuMDA1NDI5LCAwLjAwNTQzNSwgMC4wMDU0MzcsIDAuMDA1NDM5LCAwLjAwNTQ0IiwgXAotICAgICAgICAgICIwLjAwNTM0NiwgMC4wMDU0MTYsIDAuMDA1NDI1LCAwLjAwNTQzMSwgMC4wMDU0MzMsIDAuMDA1NDM1LCAwLjAwNTQzNiIsIFwKLSAgICAgICAgICAiMC4wMDUzNDIsIDAuMDA1NDE1LCAwLjAwNTQyNSwgMC4wMDU0MzEsIDAuMDA1NDM0LCAwLjAwNTQzNSwgMC4wMDU0MzciLCBcCi0gICAgICAgICAgIjAuMDA1MzQ3LCAwLjAwNTQyLCAwLjAwNTQzLCAwLjAwNTQzNSwgMC4wMDU0MzgsIDAuMDA1NDQsIDAuMDA1NDQxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1NzA3LCAwLjAwNTc1MiwgMC4wMDU3NTgsIDAuMDA1NzYyLCAwLjAwNTc2MiwgMC4wMDU3NjMsIDAuMDA1NzY1IiwgXAotICAgICAgICAgICIwLjAwNTY5NSwgMC4wMDU3NCwgMC4wMDU3NDYsIDAuMDA1NzUsIDAuMDA1NzUxLCAwLjAwNTc1MSwgMC4wMDU3NTIiLCBcCi0gICAgICAgICAgIjAuMDA1Njg4LCAwLjAwNTczMywgMC4wMDU3MzksIDAuMDA1NzQyLCAwLjAwNTc0NCwgMC4wMDU3NDUsIDAuMDA1NzQ1IiwgXAotICAgICAgICAgICIwLjAwNTY4NCwgMC4wMDU3MjksIDAuMDA1NzM0LCAwLjAwNTczOSwgMC4wMDU3MzksIDAuMDA1NzQsIDAuMDA1NzQiLCBcCi0gICAgICAgICAgIjAuMDA1NjgxLCAwLjAwNTcyNywgMC4wMDU3MzMsIDAuMDA1NzM3LCAwLjAwNTczNywgMC4wMDU3MzgsIDAuMDA1NzM5IiwgXAotICAgICAgICAgICIwLjAwNTY3OCwgMC4wMDU3MjUsIDAuMDA1NzMyLCAwLjAwNTczNSwgMC4wMDU3MzcsIDAuMDA1NzM4LCAwLjAwNTczOCIsIFwKLSAgICAgICAgICAiMC4wMDU2NzgsIDAuMDA1NzI4LCAwLjAwNTczNSwgMC4wMDU3MzYsIDAuMDA1NzM4LCAwLjAwNTc0LCAwLjAwNTc0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1MTcxLCAwLjAwNTI0MSwgMC4wMDUyNTEsIDAuMDA1MjU2LCAwLjAwNTI1OCwgMC4wMDUyNiwgMC4wMDUyNjEiLCBcCi0gICAgICAgICAgIjAuMDA1MTUxLCAwLjAwNTIyMiwgMC4wMDUyMzEsIDAuMDA1MjM3LCAwLjAwNTIzOSwgMC4wMDUyNDEsIDAuMDA1MjQyIiwgXAotICAgICAgICAgICIwLjAwNTE0LCAwLjAwNTIxLCAwLjAwNTIyLCAwLjAwNTIyNSwgMC4wMDUyMjgsIDAuMDA1MjI5LCAwLjAwNTIzIiwgXAotICAgICAgICAgICIwLjAwNTEzNCwgMC4wMDUyMDQsIDAuMDA1MjE0LCAwLjAwNTIxOSwgMC4wMDUyMjEsIDAuMDA1MjIzLCAwLjAwNTIyNCIsIFwKLSAgICAgICAgICAiMC4wMDUxMjksIDAuMDA1MTk5LCAwLjAwNTIwOSwgMC4wMDUyMTUsIDAuMDA1MjE3LCAwLjAwNTIxOSwgMC4wMDUyMiIsIFwKLSAgICAgICAgICAiMC4wMDUxMjQsIDAuMDA1MTk3LCAwLjAwNTIwOCwgMC4wMDUyMTMsIDAuMDA1MjE2LCAwLjAwNTIxOCwgMC4wMDUyMTkiLCBcCi0gICAgICAgICAgIjAuMDA1MTMsIDAuMDA1MjAzLCAwLjAwNTIxMywgMC4wMDUyMTksIDAuMDA1MjIxLCAwLjAwNTIyMywgMC4wMDUyMjQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTMCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA3OSwgMC4wMDc5NywgMC4wMDc5OCwgMC4wMDc5ODYsIDAuMDA3OTg4LCAwLjAwNzk5MSwgMC4wMDc5OTIiLCBcCi0gICAgICAgICAgIjAuMDA3ODg0LCAwLjAwNzk1NCwgMC4wMDc5NjQsIDAuMDA3OTcsIDAuMDA3OTczLCAwLjAwNzk3MywgMC4wMDc5NzUiLCBcCi0gICAgICAgICAgIjAuMDA3ODU5LCAwLjAwNzkyOSwgMC4wMDc5NCwgMC4wMDc5NDUsIDAuMDA3OTQ3LCAwLjAwNzk0OSwgMC4wMDc5NTMiLCBcCi0gICAgICAgICAgIjAuMDA3ODU1LCAwLjAwNzkyNSwgMC4wMDc5MzUsIDAuMDA3OTQxLCAwLjAwNzk0NCwgMC4wMDc5NDUsIDAuMDA3OTQ3IiwgXAotICAgICAgICAgICIwLjAwNzg1MSwgMC4wMDc5MjIsIDAuMDA3OTMxLCAwLjAwNzkzOCwgMC4wMDc5MzksIDAuMDA3OTQsIDAuMDA3OTQ1IiwgXAotICAgICAgICAgICIwLjAwNzg3MSwgMC4wMDc5NCwgMC4wMDc5NTEsIDAuMDA3OTU3LCAwLjAwNzk2LCAwLjAwNzk2MSwgMC4wMDc5NjIiLCBcCi0gICAgICAgICAgIjAuMDA3ODczLCAwLjAwNzk0NSwgMC4wMDc5NTYsIDAuMDA3OTYzLCAwLjAwNzk2NCwgMC4wMDc5NjYsIDAuMDA3OTY4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEwODkzLCAwLjAxMDk2MywgMC4wMTA5NzIsIDAuMDEwOTc3LCAwLjAxMDk4LCAwLjAxMDk4MSwgMC4wMTA5ODMiLCBcCi0gICAgICAgICAgIjAuMDEwODU4LCAwLjAxMDkyOCwgMC4wMTA5MzcsIDAuMDEwOTQyLCAwLjAxMDk0NSwgMC4wMTA5NDcsIDAuMDEwOTQ3IiwgXAotICAgICAgICAgICIwLjAxMDgzOCwgMC4wMTA5MDgsIDAuMDEwOTE3LCAwLjAxMDkyMiwgMC4wMTA5MjUsIDAuMDEwOTI3LCAwLjAxMDkyNyIsIFwKLSAgICAgICAgICAiMC4wMTA4NDUsIDAuMDEwOTE1LCAwLjAxMDkyNCwgMC4wMTA5MjksIDAuMDEwOTMyLCAwLjAxMDkzMywgMC4wMTA5MzUiLCBcCi0gICAgICAgICAgIjAuMDEwODQ4LCAwLjAxMDkxOCwgMC4wMTA5MjcsIDAuMDEwOTMyLCAwLjAxMDkzNSwgMC4wMTA5MzcsIDAuMDEwOTM3IiwgXAotICAgICAgICAgICIwLjAxMDg3OCwgMC4wMTA5NDgsIDAuMDEwOTU3LCAwLjAxMDk2MywgMC4wMTA5NjUsIDAuMDEwOTY3LCAwLjAxMDk2NyIsIFwKLSAgICAgICAgICAiMC4wMTA4OSwgMC4wMTA5NjEsIDAuMDEwOTgxLCAwLjAxMDk4NywgMC4wMTA5NzgsIDAuMDEwOTkxLCAwLjAxMDk5MiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlMxIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDUxNjgsIDAuMDA1MjQxLCAwLjAwNTI1NCwgMC4wMDUyNiwgMC4wMDUyNjQsIDAuMDA1MjY2LCAwLjAwNTI2NyIsIFwKLSAgICAgICAgICAiMC4wMDUxNTQsIDAuMDA1MjI2LCAwLjAwNTIzOCwgMC4wMDUyNDUsIDAuMDA1MjQ5LCAwLjAwNTI1MSwgMC4wMDUyNTMiLCBcCi0gICAgICAgICAgIjAuMDA1MTU0LCAwLjAwNTIyNywgMC4wMDUyMzksIDAuMDA1MjQ2LCAwLjAwNTI1LCAwLjAwNTI1MiwgMC4wMDUyNTQiLCBcCi0gICAgICAgICAgIjAuMDA1MTYxLCAwLjAwNTIzNCwgMC4wMDUyNDYsIDAuMDA1MjU0LCAwLjAwNTI1NywgMC4wMDUyNTksIDAuMDA1MjYxIiwgXAotICAgICAgICAgICIwLjAwNTE2NSwgMC4wMDUyMzcsIDAuMDA1MjQ5LCAwLjAwNTI1NSwgMC4wMDUyNTksIDAuMDA1MjYxLCAwLjAwNTI2MiIsIFwKLSAgICAgICAgICAiMC4wMDUxODMsIDAuMDA1MjU0LCAwLjAwNTI2OSwgMC4wMDUyNzQsIDAuMDA1Mjc2LCAwLjAwNTI3OSwgMC4wMDUyODIiLCBcCi0gICAgICAgICAgIjAuMDA1MTk4LCAwLjAwNTI3MiwgMC4wMDUyODIsIDAuMDA1Mjg4LCAwLjAwNTI5MiwgMC4wMDUyOTUsIDAuMDA1Mjk4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0MjQ2LCAwLjAwNDMyNywgMC4wMDQzNDEsIDAuMDA0MzQ4LCAwLjAwNDM1MiwgMC4wMDQzNTQsIDAuMDA0MzU2IiwgXAotICAgICAgICAgICIwLjAwNDIyNiwgMC4wMDQzMDcsIDAuMDA0MzIsIDAuMDA0MzI4LCAwLjAwNDMzMiwgMC4wMDQzMzQsIDAuMDA0MzM2IiwgXAotICAgICAgICAgICIwLjAwNDIyNCwgMC4wMDQzMDUsIDAuMDA0MzE4LCAwLjAwNDMyNSwgMC4wMDQzMjksIDAuMDA0MzMyLCAwLjAwNDMzNCIsIFwKLSAgICAgICAgICAiMC4wMDQyMzEsIDAuMDA0MzEyLCAwLjAwNDMyNSwgMC4wMDQzMzMsIDAuMDA0MzM3LCAwLjAwNDMzOSwgMC4wMDQzNDEiLCBcCi0gICAgICAgICAgIjAuMDA0MjQ2LCAwLjAwNDMyNiwgMC4wMDQzMzksIDAuMDA0MzQ2LCAwLjAwNDM1LCAwLjAwNDM1MywgMC4wMDQzNTQiLCBcCi0gICAgICAgICAgIjAuMDA0MjUzLCAwLjAwNDMzMywgMC4wMDQzNDYsIDAuMDA0MzUzLCAwLjAwNDM1NywgMC4wMDQzNiwgMC4wMDQzNjEiLCBcCi0gICAgICAgICAgIjAuMDA0Mjc0LCAwLjAwNDM1MiwgMC4wMDQzNjYsIDAuMDA0MzczLCAwLjAwNDM3NywgMC4wMDQzNzksIDAuMDA0MzgxIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBNWEk0WEwgKgotICogLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChNWEk0WEwpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4yNjUyNzM7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY2MjE1OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDY2MDc3NzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2NjIxNTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA4MzMsIDAuMDAwODEzLCAwLjAwMDgwMywgMC4wMDA3OTgsIDAuMDAwNzk3LCAwLjAwMDc5OCwgMC4wMDA4MDMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDIzNTcsIDAuMDAyMzQ1LCAwLjAwMjMzOSwgMC4wMDIzMzcsIDAuMDAyMzM3LCAwLjAwMjMzOSwgMC4wMDIzNDMiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYwNTUxNDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MDQxNzY7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjA1NTE0OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDIxNywgMC4wMDAyMiwgMC4wMDAyMjEsIDAuMDAwMjIxLCAwLjAwMDIyMiwgMC4wMDAyMjIsIDAuMDAwMjIyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjMsIDAuMDAwMjI3LCAwLjAwMDIyNywgMC4wMDAyMjcsIDAuMDAwMjI3LCAwLjAwMDIyNywgMC4wMDAyMjciKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEMpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYzNDcwMzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MzMwODQ7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjM0NzAzOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDg2NiwgMC4wMDA4NDUsIDAuMDAwODM1LCAwLjAwMDgzMSwgMC4wMDA4MywgMC4wMDA4MzIsIDAuMDAwODM4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyMjEyLCAwLjAwMjIsIDAuMDAyMTk0LCAwLjAwMjE5MiwgMC4wMDIxOTEsIDAuMDAyMTkzLCAwLjAwMjE5NyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNTgzMjYyOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDU4MTc1MTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA1ODMyNjI7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjE4LCAwLjAwMDIyMSwgMC4wMDAyMjIsIDAuMDAwMjIyLCAwLjAwMDIyMiwgMC4wMDAyMjIsIDAuMDAwMjIzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjI5LCAwLjAwMDIyNywgMC4wMDAyMjcsIDAuMDAwMjI3LCAwLjAwMDIyNywgMC4wMDAyMjcsIDAuMDAwMjI3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxODg4Mjk7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxODg3ODI7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxODg4Mjk7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNDQ0LCAwLjAwMDQxNiwgMC4wMDA0MTEsIDAuMDAwNDE0LCAwLjAwMDQyOCwgMC4wMDA0NTksIDAuMDAwNDkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDMzNTYsIDAuMDAzMzM1LCAwLjAwMzMzNSwgMC4wMDMzMzcsIDAuMDAzMzU1LCAwLjAwMzM2NSwgMC4wMDMzNzgiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFMxKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDEzODYxODsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDEzODUzOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTM4NjE4OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDIxMSwgMC4wMDAxODUsIDAuMDAwMTg2LCAwLjAwMDE5NywgMC4wMDAyMDgsIDAuMDAwMjM2LCAwLjAwMDI2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxNjY3LCAwLjAwMTY0OCwgMC4wMDE2NTYsIDAuMDAxNjYsIDAuMDAxNjc1LCAwLjAwMTY5OCwgMC4wMDE3MjIiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4xNDc4MDg7Ci0gICAgZnVuY3Rpb24gOiAiKCEoKFMxICgoUzAgRCkgKyAoIVMwIEMpKSkgKyAoIVMxICgoUzAgQikgKyAoIVMwIEEpKSkpKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTY0MDAxLCAwLjE3ODE2OSwgMC4zMDU0OTgsIDAuNTE3MzM2LCAwLjcyOTIwOSwgMS4yMjMzNywgMS41MDU3OCIsIFwKLSAgICAgICAgICAiMC4xNzI1MDMsIDAuMTg2NjcyLCAwLjMxMzk1LCAwLjUyNTgyOSwgMC43Mzc2NjIsIDEuMjMxODUsIDEuNTE0MjYiLCBcCi0gICAgICAgICAgIjAuMTgyMjkxLCAwLjE5NjQ0NCwgMC4zMjM3MjUsIDAuNTM1NjU2LCAwLjc0NzQ0OCwgMS4yNDE3NSwgMS41MjQwNCIsIFwKLSAgICAgICAgICAiMC4xOTE1NDYsIDAuMjA1NzExLCAwLjMzMzAyOCwgMC41NDQ4ODMsIDAuNzU2NzMxLCAxLjI1MDk0LCAxLjUzMzMzIiwgXAotICAgICAgICAgICIwLjIwMDAwNSwgMC4yMTQxNzYsIDAuMzQxNTA0LCAwLjU1MzM0NSwgMC43NjUyMTQsIDEuMjU5MzgsIDEuNTQxNzkiLCBcCi0gICAgICAgICAgIjAuMjExODM2LCAwLjIyNjAwNCwgMC4zNTMzLCAwLjU2NTIxOSwgMC43NzcwMDEsIDEuMjcxMzYsIDEuNTUzNiIsIFwKLSAgICAgICAgICAiMC4yMjEwMTksIDAuMjM1MTg0LCAwLjM2MjQ2MywgMC41NzQzNjMsIDAuNzg2MTc2LCAxLjI4MDQ1LCAxLjU2Mjc2Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE1NDY0OSwgMC4xODMzMjksIDAuNDQzOTQ2LCAwLjg3ODI3OSwgMS4zMTQ2MywgMi4zMjc5NiwgMi45MDgxMyIsIFwKLSAgICAgICAgICAiMC4xNTQ1NzksIDAuMTgzMzI2LCAwLjQ0MzM3OCwgMC44NzgxNTksIDEuMzEzMjQsIDIuMzMwNDQsIDIuOTA4MTQiLCBcCi0gICAgICAgICAgIjAuMTU0NTU5LCAwLjE4MzQxOCwgMC40NDM4MjgsIDAuODc5MTk1LCAxLjMxMzE4LCAyLjMzMDc5LCAyLjkwNzkiLCBcCi0gICAgICAgICAgIjAuMTU0NzYzLCAwLjE4MzMyMywgMC40NDM5MTQsIDAuODc4MTg2LCAxLjMxMjk4LCAyLjMyODA0LCAyLjkxMTI5IiwgXAotICAgICAgICAgICIwLjE1NDU1NSwgMC4xODMzMjYsIDAuNDQzOTM5LCAwLjg3NzQyNCwgMS4zMTQ2LCAyLjMyNzksIDIuOTA4MjQiLCBcCi0gICAgICAgICAgIjAuMTU0Nzk2LCAwLjE4MzMzNCwgMC40NDM3OTYsIDAuODc3ODUsIDEuMzEzMTcsIDIuMzMwNTQsIDIuOTA3NzEiLCBcCi0gICAgICAgICAgIjAuMTU0NjM5LCAwLjE4MzM0MSwgMC40NDMzNDMsIDAuODc4MDU2LCAxLjMxMzE1LCAyLjMzMDM5LCAyLjkwNzU2Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE2MzIzNSwgMC4xNzcxMiwgMC4zMDE3NTQsIDAuNTA5MjAyLCAwLjcxNjY0OCwgMS4yMDA1NCwgMS40NzcwNiIsIFwKLSAgICAgICAgICAiMC4xNzIwODgsIDAuMTg1OTU5LCAwLjMxMDU5MSwgMC41MTgwNDgsIDAuNzI1NDY1LCAxLjIwOTM5LCAxLjQ4NTg4IiwgXAotICAgICAgICAgICIwLjE4MjgwNywgMC4xOTY2OTEsIDAuMzIxMzI4LCAwLjUyODc5MiwgMC43MzYxOTQsIDEuMjIwMTEsIDEuNDk2NiIsIFwKLSAgICAgICAgICAiMC4xOTMxMjgsIDAuMjA3MDE5LCAwLjMzMTY1MiwgMC41MzkxMjksIDAuNzQ2NTE5LCAxLjIzMDQ0LCAxLjUwNjk2IiwgXAotICAgICAgICAgICIwLjIwMjYxNSwgMC4yMTY0OTcsIDAuMzQxMTMsIDAuNTQ4NiwgMC43NTYwMDMsIDEuMjM5OTIsIDEuNTE2NSIsIFwKLSAgICAgICAgICAiMC4yMTYxNTgsIDAuMjMwMDM1LCAwLjM1NDY2OSwgMC41NjIxMjEsIDAuNzY5NTM2LCAxLjI1MzQ2LCAxLjUyOTk1IiwgXAotICAgICAgICAgICIwLjIyNjc2LCAwLjI0MDY0OSwgMC4zNjUyNzMsIDAuNTcyNzI3LCAwLjc4MDE0MSwgMS4yNjQwNSwgMS41NDA1NyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNDg2NTYsIDAuMTc1ODk4LCAwLjQyNDI4NCwgMC44NDA3MzUsIDEuMjU0OTksIDIuMjI3NDUsIDIuNzgyODgiLCBcCi0gICAgICAgICAgIjAuMTQ4NjU0LCAwLjE3NjIwMSwgMC40MjUwNCwgMC44NDE2NiwgMS4yNTY0MywgMi4yMzEzOCwgMi43ODU2NCIsIFwKLSAgICAgICAgICAiMC4xNDg2NjksIDAuMTc1ODY3LCAwLjQyNDI1NywgMC44NDE2NDUsIDEuMjU2NDksIDIuMjI3NjQsIDIuNzg3MDUiLCBcCi0gICAgICAgICAgIjAuMTQ4NzkyLCAwLjE3NTg2NywgMC40MjQyOTUsIDAuODQxNTAzLCAxLjI1NjUyLCAyLjIyNzY2LCAyLjc4NzI3IiwgXAotICAgICAgICAgICIwLjE0ODY3MiwgMC4xNzYxNDcsIDAuNDI0MjM4LCAwLjg0MDExNiwgMS4yNTY1NiwgMi4yMjc2NywgMi43ODc2NSIsIFwKLSAgICAgICAgICAiMC4xNDg3MTQsIDAuMTc2MDA5LCAwLjQyNTAyMiwgMC44NDE2MzksIDEuMjU2MzYsIDIuMjMxMzEsIDIuNzg1NzEiLCBcCi0gICAgICAgICAgIjAuMTQ4NzY3LCAwLjE3NjE4MSwgMC40MjQ0MTMsIDAuODQxNjA2LCAxLjI1NzIzLCAyLjIzMTE2LCAyLjc4MTUxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE2NTMyNiwgMC4xNzk0ODEsIDAuMzA2Nzk1LCAwLjUxODY1MSwgMC43MzA1MDMsIDEuMjI0NzEsIDEuNTA3MzciLCBcCi0gICAgICAgICAgIjAuMTczOTczLCAwLjE4ODE0LCAwLjMxNTQ2MiwgMC41MjcyOTYsIDAuNzM5MTMyLCAxLjIzMzM4LCAxLjUxNTczIiwgXAotICAgICAgICAgICIwLjE4MzcyMywgMC4xOTc4OTcsIDAuMzI1MjE4LCAwLjUzNzA3LCAwLjc0ODg4NywgMS4yNDMxMSwgMS41MjU1MiIsIFwKLSAgICAgICAgICAiMC4xOTMwNTksIDAuMjA3MjMyLCAwLjMzNDU1NSwgMC41NDY0MDIsIDAuNzU4MjY3LCAxLjI1MjQ0LCAxLjUzNDg1IiwgXAotICAgICAgICAgICIwLjIwMTU2OCwgMC4yMTU3MzksIDAuMzQzMDY3LCAwLjU1NDkwNywgMC43NjY3NjUsIDEuMjYwOTQsIDEuNTQzMzUiLCBcCi0gICAgICAgICAgIjAuMjEzNTc3LCAwLjIyNzc0NiwgMC4zNTUwNzUsIDAuNTY2OTE1LCAwLjc3ODc3NiwgMS4yNzI5NCwgMS41NTUzNiIsIFwKLSAgICAgICAgICAiMC4yMjI4MzYsIDAuMjM3MDI0LCAwLjM2NDMyMywgMC41NzYxODQsIDAuNzg4MDc0LCAxLjI4MjIzLCAxLjU2NDYzIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE1NDc5NCwgMC4xODMzMjIsIDAuNDQzOTE0LCAwLjg3ODI2OSwgMS4zMTMwMiwgMi4zMjgwNSwgMi45MTEyOSIsIFwKLSAgICAgICAgICAiMC4xNTQ1OTIsIDAuMTgzMzI3LCAwLjQ0MzkzOSwgMC44NzgxMjMsIDEuMzEzMjcsIDIuMzI3NzMsIDIuOTA4MDQiLCBcCi0gICAgICAgICAgIjAuMTU0NjUsIDAuMTgzMzI2LCAwLjQ0MzkzNCwgMC44NzgxMDEsIDEuMzE0NTMsIDIuMzI4MiwgMi45MDc4MiIsIFwKLSAgICAgICAgICAiMC4xNTQ2NTIsIDAuMTgzMzMyLCAwLjQ0MzkzOSwgMC44NzgxNzYsIDEuMzEyMzksIDIuMzI4MDgsIDIuOTA3OTYiLCBcCi0gICAgICAgICAgIjAuMTU0NTYzLCAwLjE4MzMyOSwgMC40NDM5NDEsIDAuODc4MjQ1LCAxLjMxNDU4LCAyLjMyNzg3LCAyLjkwODMxIiwgXAotICAgICAgICAgICIwLjE1NDYzNiwgMC4xODMzNDksIDAuNDQzOTM4LCAwLjg3ODI0NywgMS4zMTQ1OSwgMi4zMjc4NiwgMi45MDgzMSIsIFwKLSAgICAgICAgICAiMC4xNTQ3NzgsIDAuMTgzNDY4LCAwLjQ0MzgyOCwgMC44NzgyMTcsIDEuMzE0NDYsIDIuMzI4MDQsIDIuOTA3NzYiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTYzNjczLCAwLjE3NzU1NCwgMC4zMDIxNjUsIDAuNTA5Njk1LCAwLjcxNzA1NCwgMS4yMDA5NywgMS40Nzc1NSIsIFwKLSAgICAgICAgICAiMC4xNzI2MSwgMC4xODY0OTcsIDAuMzExMTIsIDAuNTE4NjI0LCAwLjcyNTk4OCwgMS4yMDk5NCwgMS40ODY0MiIsIFwKLSAgICAgICAgICAiMC4xODM0MjIsIDAuMTk3Mjk3LCAwLjMyMTkzNSwgMC41MjkzODEsIDAuNzM2Nzk4LCAxLjIyMDc3LCAxLjQ5NzIyIiwgXAotICAgICAgICAgICIwLjE5MzczLCAwLjIwNzYxMywgMC4zMzIyNDgsIDAuNTM5Njk4LCAwLjc0NzExMiwgMS4yMzEwMywgMS41MDc1NSIsIFwKLSAgICAgICAgICAiMC4yMDM0MDgsIDAuMjE3Mjk3LCAwLjM0MTkzLCAwLjU0OTQsIDAuNzU2Nzk4LCAxLjI0MDcyLCAxLjUxNzIxIiwgXAotICAgICAgICAgICIwLjIxNzE0MiwgMC4yMzEwMTksIDAuMzU1NjMzLCAwLjU2MzE0MiwgMC43NzA1MjIsIDEuMjU0NDQsIDEuNTMwOTQiLCBcCi0gICAgICAgICAgIjAuMjI3OTA0LCAwLjI0MTc4OSwgMC4zNjY0MjMsIDAuNTczODY5LCAwLjc4MTMyMiwgMS4yNjUzNSwgMS41NDE3MSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNDg3NSwgMC4xNzU5MTMsIDAuNDI0NzM3LCAwLjg0MTQ4NCwgMS4yNTY1NywgMi4yMjc3OCwgMi43ODc5IiwgXAotICAgICAgICAgICIwLjE0ODY1MiwgMC4xNzU4NzcsIDAuNDI0NDY2LCAwLjg0MTY2NCwgMS4yNTY1MywgMi4yMzE2MiwgMi43ODcyOCIsIFwKLSAgICAgICAgICAiMC4xNDg2NTcsIDAuMTc1OTMsIDAuNDI0MTI1LCAwLjg0MTYyMSwgMS4yNTYzMywgMi4yMzE2NSwgMi43ODQ2OCIsIFwKLSAgICAgICAgICAiMC4xNDg2NjgsIDAuMTc2MDQ0LCAwLjQyNDEyLCAwLjg0MTA4MSwgMS4yNTYzMSwgMi4yMjczNywgMi43ODI2MiIsIFwKLSAgICAgICAgICAiMC4xNDg2NTIsIDAuMTc1ODQ4LCAwLjQyNDIyNywgMC44NDE2MDYsIDEuMjU2NDksIDIuMjI3NjIsIDIuNzg3MDciLCBcCi0gICAgICAgICAgIjAuMTQ4NzExLCAwLjE3NjA5OSwgMC40MjUwMTQsIDAuODQxNDQyLCAxLjI1NjQxLCAyLjIyNzU3LCAyLjc4NTY4IiwgXAotICAgICAgICAgICIwLjE0ODc2NCwgMC4xNzU4NzQsIDAuNDI1MDYzLCAwLjg0MTYyNiwgMS4yNTU5NiwgMi4yMzE3OSwgMi43ODQyMiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNjEyMzUsIDAuMTc1Mzk0LCAwLjMwMjY1MywgMC41MTQ1MjIsIDAuNzI2MzU3LCAxLjIyMDcxLCAxLjUwMjk1IiwgXAotICAgICAgICAgICIwLjE2OTg2NSwgMC4xODQwMTQsIDAuMzExMjk2LCAwLjUyMzIxOCwgMC43MzQ5OTIsIDEuMjI5MTUsIDEuNTExNTUiLCBcCi0gICAgICAgICAgIjAuMTc5NjMsIDAuMTkzNzgxLCAwLjMyMTA2NiwgMC41MzI5NTcsIDAuNzQ0NzU5LCAxLjIzODksIDEuNTIxNTkiLCBcCi0gICAgICAgICAgIjAuMTg4OTAxLCAwLjIwMzA1MiwgMC4zMzAzMzgsIDAuNTQyMjIsIDAuNzU0MDMyLCAxLjI0ODE3LCAxLjUzMDcyIiwgXAotICAgICAgICAgICIwLjE5NzMxMSwgMC4yMTE0OCwgMC4zMzg3NzcsIDAuNTUwNjI1LCAwLjc2MjQ4OCwgMS4yNTY2NiwgMS41MzkwNiIsIFwKLSAgICAgICAgICAiMC4yMDg5ODQsIDAuMjIzMTQ3LCAwLjM1MDQzNywgMC41NjIyOCwgMC43NzQxMywgMS4yNjgzMiwgMS41NTA3OCIsIFwKLSAgICAgICAgICAiMC4yMTgwMTIsIDAuMjMyMTgyLCAwLjM1OTQzMiwgMC41NzEzMDUsIDAuNzgzMTMsIDEuMjc3MzcsIDEuNTU5NyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNTQ0MjIsIDAuMTgzMjAxLCAwLjQ0MzU4MiwgMC44NzkwNiwgMS4zMTMwOCwgMi4zMzA5MywgMi45MDgwNiIsIFwKLSAgICAgICAgICAiMC4xNTQ0MDksIDAuMTgzMzIyLCAwLjQ0MzAzNCwgMC44NzkyMjcsIDEuMzEyOTIsIDIuMzMwNDcsIDIuOTA3ODQiLCBcCi0gICAgICAgICAgIjAuMTU0NDIzLCAwLjE4MzE5NCwgMC40NDM4MTgsIDAuODc5MTU0LCAxLjMxMjkyLCAyLjMzMDMyLCAyLjkxMTc2IiwgXAotICAgICAgICAgICIwLjE1NDQyNiwgMC4xODMxOTYsIDAuNDQzODE4LCAwLjg3OTEzNCwgMS4zMTI5MiwgMi4zMzAyNywgMi45MTEzOCIsIFwKLSAgICAgICAgICAiMC4xNTQ1MjIsIDAuMTgzMjA1LCAwLjQ0Mzg0NCwgMC44NzgwMDMsIDEuMzEyNjEsIDIuMzI3ODksIDIuOTA3NTYiLCBcCi0gICAgICAgICAgIjAuMTU0Njg3LCAwLjE4MzM3NCwgMC40NDM3NzMsIDAuODc4MDE0LCAxLjMxMjk4LCAyLjMyNzYxLCAyLjkxMDk3IiwgXAotICAgICAgICAgICIwLjE1NDY3MywgMC4xODMzNzQsIDAuNDQzMjY4LCAwLjg3ODk1OCwgMS4zMTI5NSwgMi4zMzAzNSwgMi45MDc3NCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNjEyNTYsIDAuMTc1MTQ4LCAwLjI5OTc4NSwgMC41MDcyNjksIDAuNzE0NjE4LCAxLjE5ODUzLCAxLjQ3NTA4IiwgXAotICAgICAgICAgICIwLjE2OTk4MSwgMC4xODM4NiwgMC4zMDg0NzgsIDAuNTE1OTA5LCAwLjcyMzMyNiwgMS4yMDcyNCwgMS40ODM3NiIsIFwKLSAgICAgICAgICAiMC4xODA2NCwgMC4xOTQ1MTksIDAuMzE5MTMzLCAwLjUyNjU2OCwgMC43MzM5ODYsIDEuMjE3ODksIDEuNDk0NDEiLCBcCi0gICAgICAgICAgIjAuMTkwODcxLCAwLjIwNDc0OCwgMC4zMjkzNjIsIDAuNTM2OCwgMC43NDQyNDQsIDEuMjI4MTIsIDEuNTA0NjMiLCBcCi0gICAgICAgICAgIjAuMjAwMjg3LCAwLjIxNDE2NywgMC4zMzg3ODIsIDAuNTQ2MjE4LCAwLjc1MzY2LCAxLjIzNzUzLCAxLjUxNDA1IiwgXAotICAgICAgICAgICIwLjIxMzYzMywgMC4yMjc1MDYsIDAuMzUyMTE2LCAwLjU1OTU5OSwgMC43NjY5NzIsIDEuMjUwODgsIDEuNTI3NDUiLCBcCi0gICAgICAgICAgIjAuMjI0MTE2LCAwLjIzNzk5MiwgMC4zNjI1OTQsIDAuNTcwMDUsIDAuNzc3NDQ5LCAxLjI2MTM2LCAxLjUzNzg4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE0ODczMywgMC4xNzYxNCwgMC40MjQxODMsIDAuODQwMTMzLCAxLjI1NjYsIDIuMjI3ODEsIDIuNzg3NzYiLCBcCi0gICAgICAgICAgIjAuMTQ4NjA4LCAwLjE3NjAwNywgMC40MjQwODksIDAuODQxNTQ2LCAxLjI1NjIsIDIuMjI3MjksIDIuNzgyNiIsIFwKLSAgICAgICAgICAiMC4xNDg2MjYsIDAuMTc1OTQxLCAwLjQyNDI3MSwgMC44NDE1MywgMS4yNTg0NiwgMi4yMjk1MywgMi43ODIzMyIsIFwKLSAgICAgICAgICAiMC4xNDg2MjIsIDAuMTc1OTIsIDAuNDI0NDk1LCAwLjg0MTU1MSwgMS4yNTYyOSwgMi4yMzAwNiwgMi43ODIxNCIsIFwKLSAgICAgICAgICAiMC4xNDg2MDIsIDAuMTc1OTQxLCAwLjQyNDI2MiwgMC44NDE1MDMsIDEuMjU2NTcsIDIuMjMwMDgsIDIuNzgyMTQiLCBcCi0gICAgICAgICAgIjAuMTQ4Njg0LCAwLjE3NTkxOSwgMC40MjUwMDEsIDAuODQxMTI4LCAxLjI1NjE3LCAyLjIzMTE0LCAyLjc4NzQyIiwgXAotICAgICAgICAgICIwLjE0ODY0OSwgMC4xNzU5NTEsIDAuNDI0MzAxLCAwLjg0MTYzOCwgMS4yNTY4LCAyLjIyNzMsIDIuNzg3MSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJEIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNjI1MDksIDAuMTc2Njc1LCAwLjMwMzg3LCAwLjUxNTgxMSwgMC43Mjc2NzEsIDEuMjIxODMsIDEuNTA0MjUiLCBcCi0gICAgICAgICAgIjAuMTcxMDgxLCAwLjE4NTIzOCwgMC4zMTI0OTEsIDAuNTI0Mzk5LCAwLjczNjIwMSwgMS4yMzA1NiwgMS41MTI3OCIsIFwKLSAgICAgICAgICAiMC4xODA3NTcsIDAuMTk0OTE4LCAwLjMyMjIwNSwgMC41MzQwNTksIDAuNzQ1OTA5LCAxLjI0MDExLCAxLjUyMjYzIiwgXAotICAgICAgICAgICIwLjE5MDAwOSwgMC4yMDQxNjUsIDAuMzMxNDIzLCAwLjU0MzI5NCwgMC43NTUxMzIsIDEuMjQ5MzksIDEuNTMxNzEiLCBcCi0gICAgICAgICAgIjAuMTk4NDU1LCAwLjIxMjYxNSwgMC4zMzk5MTIsIDAuNTUxNzYsIDAuNzYzNTkxLCAxLjI1Nzc5LCAxLjU0MDE5IiwgXAotICAgICAgICAgICIwLjIxMDIyOSwgMC4yMjQzODgsIDAuMzUxNjg5LCAwLjU2MzUzMiwgMC43NzUzMzgsIDEuMjY5NTUsIDEuNTUxOTYiLCBcCi0gICAgICAgICAgIjAuMjE5MzU1LCAwLjIzMzUxNCwgMC4zNjA3NTgsIDAuNTcyNjU4LCAwLjc4NDQ2NSwgMS4yNzg2MywgMS41NjEyOSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNTQ1MjYsIDAuMTgzMjA3LCAwLjQ0MzI0MiwgMC44NzgwNzEsIDEuMzE0NjEsIDIuMzI4MTMsIDIuOTA3NjgiLCBcCi0gICAgICAgICAgIjAuMTU0NDAxLCAwLjE4MzMzNSwgMC40NDM3NywgMC44NzkxMiwgMS4zMTI5NCwgMi4zMzA5NSwgMi45MDgxMyIsIFwKLSAgICAgICAgICAiMC4xNTQ2NDIsIDAuMTgzMjE5LCAwLjQ0MzgzMSwgMC44NzgwMTksIDEuMzEyMjEsIDIuMzI3NzQsIDIuOTExNTciLCBcCi0gICAgICAgICAgIjAuMTU0NDAzLCAwLjE4MzIwNCwgMC40NDMyMSwgMC44NzkwMjQsIDEuMzEyOTIsIDIuMzMwNywgMi45MDgwMyIsIFwKLSAgICAgICAgICAiMC4xNTQ2NDYsIDAuMTgzMjA5LCAwLjQ0Mzg0NCwgMC44NzgwMDUsIDEuMzEyOTcsIDIuMzI3ODksIDIuOTA3NiIsIFwKLSAgICAgICAgICAiMC4xNTQ2MDYsIDAuMTgzMzUyLCAwLjQ0Mzc4MywgMC44NzgwMDMsIDEuMzEzOTUsIDIuMzI4MDcsIDIuOTA3NDYiLCBcCi0gICAgICAgICAgIjAuMTU0NjksIDAuMTgzMzk2LCAwLjQ0MzU0NiwgMC44Nzc1NywgMS4zMTI4NywgMi4zMzAxMywgMi45MTEyMiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNjE2MSwgMC4xNzU0OTcsIDAuMzAwMTExLCAwLjUwNzU0NywgMC43MTQ5NTksIDEuMTk4ODgsIDEuNDc1MzkiLCBcCi0gICAgICAgICAgIjAuMTcwNTk3LCAwLjE4NDQ4LCAwLjMwOTA5NywgMC41MTY1MjcsIDAuNzIzOTQ0LCAxLjIwNzg2LCAxLjQ4NDM4IiwgXAotICAgICAgICAgICIwLjE4MTQ0MiwgMC4xOTUzMjIsIDAuMzE5OTM5LCAwLjUyNzM3LCAwLjczNDc4NSwgMS4yMTg3LCAxLjQ5NTIyIiwgXAotICAgICAgICAgICIwLjE5MTczNywgMC4yMDU2MTQsIDAuMzMwMjI4LCAwLjUzNzY2NSwgMC43NDUxMDcsIDEuMjI4OTgsIDEuNTA1NSIsIFwKLSAgICAgICAgICAiMC4yMDEyNzUsIDAuMjE1MTQ2LCAwLjMzOTc1MSwgMC41NDcyMjUsIDAuNzU0NjE3LCAxLjIzODUzLCAxLjUxNTA1IiwgXAotICAgICAgICAgICIwLjIxNDc1OSwgMC4yMjg2MzQsIDAuMzUzMjQxLCAwLjU2MDY5MiwgMC43NjgwOTYsIDEuMjUyMTEsIDEuNTI4NTEiLCBcCi0gICAgICAgICAgIjAuMjI1MzQyLCAwLjIzOTIyMSwgMC4zNjM4MjksIDAuNTcxMjgzLCAwLjc3ODY4MiwgMS4yNjI2LCAxLjUzOTE5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE0ODYyOSwgMC4xNzU4MzYsIDAuNDI0MTgzLCAwLjg0MTE3LCAxLjI1NjM4LCAyLjIyNzU4LCAyLjc4Mjg0IiwgXAotICAgICAgICAgICIwLjE0ODYzMiwgMC4xNzYwMTUsIDAuNDI0MDg3LCAwLjg0MTU1OSwgMS4yNTYyMywgMi4yMjczMiwgMi43ODI2IiwgXAotICAgICAgICAgICIwLjE0ODYzNCwgMC4xNzYwMjcsIDAuNDI0MDY5LCAwLjg0MTU0MSwgMS4yNTYxOCwgMi4yMjcyMiwgMi43ODI1NyIsIFwKLSAgICAgICAgICAiMC4xNDg2MjMsIDAuMTc1OTIxLCAwLjQyNDQ5NywgMC44NDE1NTEsIDEuMjU2NiwgMi4yMzAwNiwgMi43ODIxNiIsIFwKLSAgICAgICAgICAiMC4xNDg2MiwgMC4xNzU5MjMsIDAuNDI0OTg1LCAwLjg0MDU0OSwgMS4yNTYyNCwgMi4yMjc0MiwgMi43ODcxNiIsIFwKLSAgICAgICAgICAiMC4xNDg2ODQsIDAuMTc2MjA1LCAwLjQyNDk3MiwgMC44NDE1ODMsIDEuMjU3NDMsIDIuMjMxNzgsIDIuNzg1NTciLCBcCi0gICAgICAgICAgIjAuMTQ4NzIyLCAwLjE3NTkyLCAwLjQyNDM0NCwgMC44NDE2MjYsIDEuMjU3MDEsIDIuMjMxMiwgMi43ODA0MiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTg0OTAyLCAwLjE5OTA1NCwgMC4zMjYzNTgsIDAuNTM4MjUyLCAwLjc1MDA5LCAxLjI0NDMxLCAxLjUyNjc3IiwgXAotICAgICAgICAgICIwLjE5NTE5NSwgMC4yMDkzNDcsIDAuMzM2NjU1LCAwLjU0ODU0NCwgMC43NjAzNzYsIDEuMjU0NTksIDEuNTM2OTciLCBcCi0gICAgICAgICAgIjAuMjA3NTgzLCAwLjIyMTczNSwgMC4zNDkwNDMsIDAuNTYwOTM1LCAwLjc3Mjc2NCwgMS4yNjY5NywgMS41NDkzNiIsIFwKLSAgICAgICAgICAiMC4yMTg4MywgMC4yMzI5OTksIDAuMzYwMzAzLCAwLjU3MjE3MywgMC43ODQwNDksIDEuMjc4MjcsIDEuNTYwNjMiLCBcCi0gICAgICAgICAgIjAuMjI4ODc1LCAwLjI0MzA0NSwgMC4zNzAzNTMsIDAuNTgyMjI4LCAwLjc5NDA3NywgMS4yODgzLCAxLjU3MDciLCBcCi0gICAgICAgICAgIjAuMjQyMzQxLCAwLjI1NjUwNSwgMC4zODM3OTMsIDAuNTk1Njc4LCAwLjgwNzUxNSwgMS4zMDE3MywgMS41ODQxNiIsIFwKLSAgICAgICAgICAiMC4yNTI2NDQsIDAuMjY2ODEzLCAwLjM5NDEyMywgMC42MDU5OTUsIDAuODE3ODQ4LCAxLjMxMjA2LCAxLjU5NDQ3Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE1NDgwNiwgMC4xODMzNywgMC40NDM5NDEsIDAuODc5MjkxLCAxLjMxNDY3LCAyLjMzMDg0LCAyLjkxMTc4IiwgXAotICAgICAgICAgICIwLjE1NDgwMiwgMC4xODMzNjQsIDAuNDQzOTI1LCAwLjg3OTMzOSwgMS4zMTMwOCwgMi4zMzA5NiwgMi45MTE2MyIsIFwKLSAgICAgICAgICAiMC4xNTQ4MDQsIDAuMTgzNDc3LCAwLjQ0Mzg5NCwgMC44NzkzNiwgMS4zMTQ3NCwgMi4zMzA5NiwgMi45MTEyMiIsIFwKLSAgICAgICAgICAiMC4xNTQ3NjgsIDAuMTgzMzc1LCAwLjQ0Mzk0MywgMC44NzkyMzgsIDEuMzE0NjgsIDIuMzMwNjUsIDIuOTA4MyIsIFwKLSAgICAgICAgICAiMC4xNTQ3NTMsIDAuMTgzNDgsIDAuNDQzOTU4LCAwLjg3OTA5NCwgMS4zMTMyNiwgMi4zMjgxNCwgMi45MTE3MyIsIFwKLSAgICAgICAgICAiMC4xNTQ4MTQsIDAuMTgzNDYyLCAwLjQ0Mzk0NSwgMC44NzkxMzIsIDEuMzE0NzIsIDIuMzMwODYsIDIuOTExMzMiLCBcCi0gICAgICAgICAgIjAuMTU0NzM2LCAwLjE4MzM2OSwgMC40NDM4NzgsIDAuODc5MDU4LCAxLjMxNDU3LCAyLjMzMDY0LCAyLjkxMTMxIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE4NTQ2NiwgMC4xOTkzNTUsIDAuMzIzOTg3LCAwLjUzMTM2OSwgMC43Mzg4NTQsIDEuMjIyNzcsIDEuNDk5IiwgXAotICAgICAgICAgICIwLjE5NTQ0MSwgMC4yMDkzMjQsIDAuMzMzOTQzLCAwLjU0MTQxLCAwLjc0ODgyNywgMS4yMzI3NSwgMS41MDkzNSIsIFwKLSAgICAgICAgICAiMC4yMDcxNDMsIDAuMjIxMDQzLCAwLjM0NTY5NywgMC41NTMxMjUsIDAuNzYwNTQyLCAxLjI0NDQ2LCAxLjUyMDgiLCBcCi0gICAgICAgICAgIjAuMjE3Nzc2LCAwLjIzMTY4MiwgMC4zNTYzMzYsIDAuNTYzNzc5LCAwLjc3MTE4MywgMS4yNTUxLCAxLjUzMTM3IiwgXAotICAgICAgICAgICIwLjIyNzIyOCwgMC4yNDExMTIsIDAuMzY1NzQ4LCAwLjU3MzE5NiwgMC43ODAyNzQsIDEuMjY0MTksIDEuNTQxMDUiLCBcCi0gICAgICAgICAgIjAuMjM5MTc1LCAwLjI1MzA1NywgMC4zNzc2OTIsIDAuNTg1MjAzLCAwLjc5MjU2MywgMS4yNzY0OSwgMS41NTMwMiIsIFwKLSAgICAgICAgICAiMC4yNDg2ODQsIDAuMjYyNTYxLCAwLjM4NzE4OSwgMC41OTQ2NDEsIDAuODAyMDk1LCAxLjI4NTk2LCAxLjU2MjQ4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE0ODc3LCAwLjE3NjE2NywgMC40MjQ0NTEsIDAuODQxNTY3LCAxLjI1ODU5LCAyLjIzMTU0LCAyLjc4ODQ2IiwgXAotICAgICAgICAgICIwLjE0ODc1MiwgMC4xNzYxNzcsIDAuNDI0NDIsIDAuODQxODUyLCAxLjI1ODQ0LCAyLjIyOTI1LCAyLjc4NzcxIiwgXAotICAgICAgICAgICIwLjE0ODc3MSwgMC4xNzYyMzgsIDAuNDI1MDAyLCAwLjg0MTYyNiwgMS4yNTg2LCAyLjIzMDIyLCAyLjc4NzEzIiwgXAotICAgICAgICAgICIwLjE0ODc2OCwgMC4xNzYxNjIsIDAuNDI0NDk2LCAwLjg0MTkxOCwgMS4yNTg1OCwgMi4yMzE3NywgMi43ODc4NCIsIFwKLSAgICAgICAgICAiMC4xNDg3NTgsIDAuMTc2MjA4LCAwLjQyNTAxLCAwLjg0MTcxNCwgMS4yNTg4NSwgMi4yMjk0OSwgMi43ODc2MiIsIFwKLSAgICAgICAgICAiMC4xNDg3NTIsIDAuMTc2MTU0LCAwLjQyNTEwOCwgMC44NDE3NDIsIDEuMjU4NTQsIDIuMjMxOTUsIDIuNzg3MjgiLCBcCi0gICAgICAgICAgIjAuMTQ4ODM0LCAwLjE3NjIwNSwgMC40MjQ0OTcsIDAuODQxNjg5LCAxLjI1ODYsIDIuMjI5NTIsIDIuNzg4MDkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUzAiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE1NzU2NiwgMC4xNzE3MzQsIDAuMjk5MDM5LCAwLjUxMDkxNCwgMC43MjI3OSwgMS4yMTcwMSwgMS40OTk0NiIsIFwKLSAgICAgICAgICAiMC4xNjYyMTcsIDAuMTgwMzY4LCAwLjMwNzY3MywgMC41MTk1NDYsIDAuNzMxNDE3LCAxLjIyNTY0LCAxLjUwNzk4IiwgXAotICAgICAgICAgICIwLjE3NzQ2NSwgMC4xOTE2MzUsIDAuMzE4OTQ5LCAwLjUzMDgxMiwgMC43NDI3MDIsIDEuMjM2ODYsIDEuNTE5MjkiLCBcCi0gICAgICAgICAgIjAuMTg3OTY5LCAwLjIwMjEzNCwgMC4zMjk0MTcsIDAuNTQxMzAzLCAwLjc1MzEzOCwgMS4yNDczNSwgMS41Mjk3OCIsIFwKLSAgICAgICAgICAiMC4xOTc0NTksIDAuMjExNjExLCAwLjMzODkwNSwgMC41NTA3OSwgMC43NjI2NDIsIDEuMjU2ODksIDEuNTM5MjQiLCBcCi0gICAgICAgICAgIjAuMjA5ODkzLCAwLjIyNDA1OSwgMC4zNTEzNTQsIDAuNTYzMjUsIDAuNzc1MDc0LCAxLjI2OTMzLCAxLjU1MTY5IiwgXAotICAgICAgICAgICIwLjIxOTY0NSwgMC4yMzM4MDgsIDAuMzYxMDk4LCAwLjU3Mjk3NywgMC43ODQ4NDIsIDEuMjc5MDcsIDEuNTYxNjUiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTU0ODAxLCAwLjE4MzM2NywgMC40NDM5NDgsIDAuODc5MjgzLCAxLjMxNDY3LCAyLjMzMDYyLCAyLjkwODA5IiwgXAotICAgICAgICAgICIwLjE1NDgwOSwgMC4xODMzNywgMC40NDM5NDYsIDAuODc5MjQ2LCAxLjMxNDczLCAyLjMzMDc0LCAyLjkxMTI4IiwgXAotICAgICAgICAgICIwLjE1NDc5MSwgMC4xODMzODgsIDAuNDQzOTcsIDAuODc5MTYxLCAxLjMxNDg0LCAyLjMzMDg5LCAyLjkxMTI4IiwgXAotICAgICAgICAgICIwLjE1NDgxOCwgMC4xODMzNCwgMC40NDM4OTIsIDAuODc5MTg0LCAxLjMxMzIyLCAyLjMzMDcyLCAyLjkxMTY2IiwgXAotICAgICAgICAgICIwLjE1NDgxMSwgMC4xODMzNDEsIDAuNDQzOTI5LCAwLjg3OTMzLCAxLjMxNDYsIDIuMzMwOTYsIDIuOTExMzYiLCBcCi0gICAgICAgICAgIjAuMTU0ODQyLCAwLjE4MzUxMSwgMC40NDM4NjQsIDAuODc4OTUyLCAxLjMxMzE3LCAyLjMzMDU2LCAyLjkwODE1IiwgXAotICAgICAgICAgICIwLjE1NDg1NiwgMC4xODM1MjQsIDAuNDQzOTA1LCAwLjg3OTA4OSwgMS4zMTQ0NiwgMi4zMzA0NCwgMi45MTE1Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE1NjQ4MiwgMC4xNzAzNjgsIDAuMjk0OTkxLCAwLjUwMjQ4LCAwLjcwOTg4MiwgMS4xOTM4MiwgMS40NzAzNSIsIFwKLSAgICAgICAgICAiMC4xNjU0MzksIDAuMTc5MzI0LCAwLjMwMzk3NiwgMC41MTE0MjIsIDAuNzE4ODQxLCAxLjIwMjc3LCAxLjQ3OTMxIiwgXAotICAgICAgICAgICIwLjE3NjkyLCAwLjE5MDgxMywgMC4zMTU0NjcsIDAuNTIyOTQxLCAwLjczMDMzNCwgMS4yMTQyNywgMS40OTA4IiwgXAotICAgICAgICAgICIwLjE4Nzg4NSwgMC4yMDE3NzYsIDAuMzI2NDMzLCAwLjUzMzg3LCAwLjc0MTI5MSwgMS4yMjUyMywgMS41MDE2OCIsIFwKLSAgICAgICAgICAiMC4xOTc4NDMsIDAuMjExNzMzLCAwLjMzNjM5NSwgMC41NDM4MjUsIDAuNzUxMjQ1LCAxLjIzNTE4LCAxLjUxMTcxIiwgXAotICAgICAgICAgICIwLjIxMTIxNywgMC4yMjUxMTEsIDAuMzQ5NzY4LCAwLjU1NzIyNywgMC43NjQ2MjcsIDEuMjQ4NTUsIDEuNTI1MTMiLCBcCi0gICAgICAgICAgIjAuMjIxNTU5LCAwLjIzNTQ1MiwgMC4zNjAwNzEsIDAuNTY3NTY2LCAwLjc3NDk2NCwgMS4yNTg4NiwgMS41MzUzNSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNDg3NjMsIDAuMTc2MjIzLCAwLjQyNDYsIDAuODQxNzg2LCAxLjI1ODQ4LCAyLjIzMTkyLCAyLjc4ODEzIiwgXAotICAgICAgICAgICIwLjE0ODc3NSwgMC4xNzYyMzEsIDAuNDI1MTExLCAwLjg0MTY4MiwgMS4yNTg1MywgMi4yMzE2OSwgMi43ODc5IiwgXAotICAgICAgICAgICIwLjE0ODczLCAwLjE3NjIxMywgMC40MjQyNDksIDAuODQxNjQ2LCAxLjI1ODY5LCAyLjIyODYsIDIuNzg4MTUiLCBcCi0gICAgICAgICAgIjAuMTQ4Nzc1LCAwLjE3NjE3NiwgMC40MjUwMTgsIDAuODQxODk1LCAxLjI1NzUzLCAyLjIzMDA4LCAyLjc4ODE2IiwgXAotICAgICAgICAgICIwLjE0ODc4NywgMC4xNzYyMTEsIDAuNDI1MDAyLCAwLjg0MTU4LCAxLjI1NzYxLCAyLjIzMTcxLCAyLjc4NzA0IiwgXAotICAgICAgICAgICIwLjE0ODkxOSwgMC4xNzYyNjIsIDAuNDI0OTIzLCAwLjg0MTczLCAxLjI1ODUxLCAyLjIzMTgxLCAyLjc4ODM1IiwgXAotICAgICAgICAgICIwLjE0ODg2MywgMC4xNzYyNDgsIDAuNDI1MDAzLCAwLjg0MTcxMiwgMS4yNTg1MywgMi4yMzE3NCwgMi43ODc4MSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTMSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTExNTcsIDAuMTI1NzE1LCAwLjI1Mjk2MywgMC40NjQ4MDgsIDAuNjc2NjUyLCAxLjE3MDg1LCAxLjQ1MzMiLCBcCi0gICAgICAgICAgIjAuMTIwNjI2LCAwLjEzNDc3NywgMC4yNjIwMDgsIDAuNDczODY0LCAwLjY4NTY5LCAxLjE3OTkzLCAxLjQ2MjI2IiwgXAotICAgICAgICAgICIwLjEzMjIxNiwgMC4xNDYzNzcsIDAuMjczNjU2LCAwLjQ4NTQ5LCAwLjY5NzMxMywgMS4xOTE1MSwgMS40NzM5MiIsIFwKLSAgICAgICAgICAiMC4xNDMxMDUsIDAuMTU3MjU5LCAwLjI4NDUxNiwgMC40OTYzNjcsIDAuNzA4MTk4LCAxLjIwMjM4LCAxLjQ4NDc5IiwgXAotICAgICAgICAgICIwLjE1MjYxOSwgMC4xNjY3OCwgMC4yOTQwMzUsIDAuNTA1ODg1LCAwLjcxNzcwNywgMS4yMTIxMiwgMS40OTQzMSIsIFwKLSAgICAgICAgICAiMC4xNjU5MTksIDAuMTgwMDgsIDAuMzA3MzExLCAwLjUxOTI2OCwgMC43MzEwMDgsIDEuMjI1MjMsIDEuNTA3NzIiLCBcCi0gICAgICAgICAgIjAuMTc2Mjc2LCAwLjE5MDIyMSwgMC4zMTc0ODIsIDAuNTI5MzA2LCAwLjc0MTEyMiwgMS4yMzU0NCwgMS41MTc3NSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNTQ2NjUsIDAuMTgzMjAzLCAwLjQ0Mzg0MSwgMC44NzgwNDIsIDEuMzEyMTgsIDIuMzI3OCwgMi45MTE1OCIsIFwKLSAgICAgICAgICAiMC4xNTQ0ODMsIDAuMTgzMDc1LCAwLjQ0MzI3OCwgMC44NzgwNTIsIDEuMzEyOTksIDIuMzMwNjksIDIuOTA3OTciLCBcCi0gICAgICAgICAgIjAuMTU0NTM5LCAwLjE4MzIxMSwgMC40NDM3NzEsIDAuODc4MDE4LCAxLjMxMzExLCAyLjMyODE5LCAyLjkwNzY0IiwgXAotICAgICAgICAgICIwLjE1NDc4OSwgMC4xODM0MjEsIDAuNDQzNTQsIDAuODc4MDkzLCAxLjMxNDM1LCAyLjMyNzc4LCAyLjkwNzg1IiwgXAotICAgICAgICAgICIwLjE1NDkxNywgMC4xODM3MDUsIDAuNDQzMjE3LCAwLjg3ODAxOSwgMS4zMTMwOSwgMi4zMzA2MiwgMi45MDc5IiwgXAotICAgICAgICAgICIwLjE1NTYzOSwgMC4xODQwMzEsIDAuNDQzODg0LCAwLjg3NzY4OCwgMS4zMTI4NSwgMi4zMjc1NiwgMi45MTA5OSIsIFwKLSAgICAgICAgICAiMC4xNTYzNzYsIDAuMTg0NTM4LCAwLjQ0NDA5LCAwLjg3ODk0MywgMS4zMTI3NCwgMi4zMjY5NywgMi45MDc0NiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTI3MjksIDAuMTI2NTk5LCAwLjI1MTIwOSwgMC40NTg2NDYsIDAuNjY2MDU2LCAxLjE0OTk3LCAxLjQyNjY4IiwgXAotICAgICAgICAgICIwLjEyMTUwOSwgMC4xMzUzOTQsIDAuMjYwMDAzLCAwLjQ2NzQ2MSwgMC42NzQ4NTksIDEuMTU4NzcsIDEuNDM1MzQiLCBcCi0gICAgICAgICAgIjAuMTMyNjk4LCAwLjE0NjU4MSwgMC4yNzEyMDcsIDAuNDc4NjQ5LCAwLjY4NjE1MiwgMS4xNywgMS40NDY1IiwgXAotICAgICAgICAgICIwLjE0MzA2NCwgMC4xNTY5MzcsIDAuMjgxNTcxLCAwLjQ4OTA1MiwgMC42OTY0NCwgMS4xODAzNiwgMS40NTY4NyIsIFwKLSAgICAgICAgICAiMC4xNTIwNywgMC4xNjU5NTMsIDAuMjkwNTc2LCAwLjQ5ODAzNCwgMC43MDU0ODMsIDEuMTg5MzYsIDEuNDY1ODgiLCBcCi0gICAgICAgICAgIjAuMTY0NDE0LCAwLjE3ODMwNSwgMC4zMDI5MSwgMC41MTA0MTgsIDAuNzE3Nzk1LCAxLjIwMTcyLCAxLjQ3ODI3IiwgXAotICAgICAgICAgICIwLjE3MzYzOSwgMC4xODc1OTksIDAuMzEyMjM5LCAwLjUxOTY5NywgMC43MjcxMiwgMS4yMTEwMSwgMS40ODc2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE0ODY2NywgMC4xNzU4NjUsIDAuNDI0MzY2LCAwLjg0MTEzNSwgMS4yNTY0MiwgMi4yMjc0OCwgMi43ODc0NCIsIFwKLSAgICAgICAgICAiMC4xNDg4LCAwLjE3NTg4MywgMC40MjQxODksIDAuODQwNzM1LCAxLjI1NjQ0LCAyLjIyNzQ0LCAyLjc4NzQ4IiwgXAotICAgICAgICAgICIwLjE0ODc3OSwgMC4xNzYwMjUsIDAuNDI0NTM3LCAwLjg0MTU3MiwgMS4yNTgyMiwgMi4yMjc4NCwgMi43ODIzOCIsIFwKLSAgICAgICAgICAiMC4xNDg4MzEsIDAuMTc2MzcyLCAwLjQyNDU0NCwgMC44NDE1OTYsIDEuMjU1OTksIDIuMjI3MjEsIDIuNzgyMjgiLCBcCi0gICAgICAgICAgIjAuMTQ5Mjc3LCAwLjE3NjY1NSwgMC40MjQzNTYsIDAuODQxNTc5LCAxLjI1ODYsIDIuMjI5NjcsIDIuNzgyMTYiLCBcCi0gICAgICAgICAgIjAuMTQ5OTcsIDAuMTc3MTEzLCAwLjQyNDg3MSwgMC44NDE0ODQsIDEuMjU3MTksIDIuMjI3NTUsIDIuNzg3NDMiLCBcCi0gICAgICAgICAgIjAuMTUwNDQ3LCAwLjE3NzU3NiwgMC40MjQ4OTgsIDAuODQxMTE4LCAxLjI1NzAxLCAyLjIyOTAyLCAyLjc4MzYzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlMxIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMjgxMTYsIDAuMTQyMjg1LCAwLjI2OTU4NywgMC40ODE0NjIsIDAuNjkzMjk1LCAxLjE4Nzc0LCAxLjQ2OTg5IiwgXAotICAgICAgICAgICIwLjEzNzc2MywgMC4xNTE5MiwgMC4yNzkyMzgsIDAuNDkxMTIzLCAwLjcwMjk2MiwgMS4xOTcxNywgMS40Nzk1NiIsIFwKLSAgICAgICAgICAiMC4xNDc2NTEsIDAuMTYxODA4LCAwLjI4OTEyMywgMC41MDEwMTQsIDAuNzEyODQ0LCAxLjIwNzA1LCAxLjQ4OTQxIiwgXAotICAgICAgICAgICIwLjE1NDkwNSwgMC4xNjkwNjIsIDAuMjk2Mzg0LCAwLjUwODIzOCwgMC43MjAwODgsIDEuMjE0MywgMS40OTY3NyIsIFwKLSAgICAgICAgICAiMC4xNjExODcsIDAuMTc1MzU4LCAwLjMwMjY1NSwgMC41MTQ1NDcsIDAuNzI2NDc0LCAxLjIyMDU5LCAxLjUwMjk0IiwgXAotICAgICAgICAgICIwLjE2OTQ0MywgMC4xODM2NSwgMC4zMTEwMDUsIDAuNTIyOTUyLCAwLjczNDcyMiwgMS4yMjg5OCwgMS41MTE1MyIsIFwKLSAgICAgICAgICAiMC4xNzU2NzcsIDAuMTg5Njc0LCAwLjMxNzExOSwgMC41MjkwMjIsIDAuNzQwODc0LCAxLjIzNTA5LCAxLjUxNzcxIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE1NDUsIDAuMTgzMjU3LCAwLjQ0Mzg2NCwgMC44NzgyLCAxLjMxMzIxLCAyLjMyNzEyLCAyLjkwODAzIiwgXAotICAgICAgICAgICIwLjE1NDUyMywgMC4xODMyNjcsIDAuNDQzODksIDAuODc5MTU4LCAxLjMxMjg4LCAyLjMyNzc2LCAyLjkwODE3IiwgXAotICAgICAgICAgICIwLjE1NDUxOCwgMC4xODMyNjEsIDAuNDQzODgyLCAwLjg3OTE2NywgMS4zMTI4OCwgMi4zMjc4MSwgMi45MDc1MyIsIFwKLSAgICAgICAgICAiMC4xNTQ1NDUsIDAuMTgzMzQxLCAwLjQ0Mzg5OCwgMC44NzgxNDUsIDEuMzEzMDEsIDIuMzI4MjQsIDIuOTExMzMiLCBcCi0gICAgICAgICAgIjAuMTU0OTIxLCAwLjE4MzYyOCwgMC40NDMzNDIsIDAuODc4OTk3LCAxLjMxNDU0LCAyLjMzMDM3LCAyLjkxMDg4IiwgXAotICAgICAgICAgICIwLjE1NDgzNSwgMC4xODM2MDMsIDAuNDQzODgxLCAwLjg3ODk3MywgMS4zMTMwMywgMi4zMzAyNiwgMi45MTExIiwgXAotICAgICAgICAgICIwLjE1NTA2NCwgMC4xODM1NjcsIDAuNDQzNjI2LCAwLjg3ODk5LCAxLjMxMjcxLCAyLjMyNzY0LCAyLjkxMTE4Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEyNzQ5NiwgMC4xNDEzNzYsIDAuMjY2MDAzLCAwLjQ3MzQ0NSwgMC42ODA4ODEsIDEuMTY0NzYsIDEuNDQxMyIsIFwKLSAgICAgICAgICAiMC4xMzc1MjQsIDAuMTUxNDA2LCAwLjI3NjAyNywgMC40ODM0NjQsIDAuNjkwOTYzLCAxLjE3NDc4LCAxLjQ1MTMxIiwgXAotICAgICAgICAgICIwLjE0NzkyOCwgMC4xNjE4MDksIDAuMjg2NDI3LCAwLjQ5Mzg2NywgMC43MDEzMywgMS4xODUzNSwgMS40NjE3MSIsIFwKLSAgICAgICAgICAiMC4xNTYyMTQsIDAuMTcwMDksIDAuMjk0NzE0LCAwLjUwMjE4NCwgMC43MDk1NzEsIDEuMTkzNDgsIDEuNDcwMDMiLCBcCi0gICAgICAgICAgIjAuMTYzMTc2LCAwLjE3NzA1OSwgMC4zMDE2NzUsIDAuNTA5MTQ1LCAwLjcxNjU0NSwgMS4yMDA1OCwgMS40NzY5NSIsIFwKLSAgICAgICAgICAiMC4xNzI1OSwgMC4xODY0OTUsIDAuMzExMTM0LCAwLjUxODYxNSwgMC43MjYwMjksIDEuMjA5OTIsIDEuNDg2NDYiLCBcCi0gICAgICAgICAgIjAuMTgwMDQsIDAuMTkzOTUxLCAwLjMxODY1NiwgMC41MjYxNywgMC43MzM1NDMsIDEuMjE3NDksIDEuNDk0MTEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTQ4NTgyLCAwLjE3NTgxOCwgMC40MjQxNzUsIDAuODQwODg3LCAxLjI1ODgyLCAyLjIyNzAyLCAyLjc3NzM0IiwgXAotICAgICAgICAgICIwLjE0ODY2MiwgMC4xNzU5MDksIDAuNDIzOTgyLCAwLjg0MTU0NSwgMS4yNTgzLCAyLjIzMDA0LCAyLjc4MjMiLCBcCi0gICAgICAgICAgIjAuMTQ4NTc5LCAwLjE3NTg4MSwgMC40MjQyODYsIDAuODQxNDg5LCAxLjI1ODQ2LCAyLjIzMTQxLCAyLjc4MjA2IiwgXAotICAgICAgICAgICIwLjE0ODYxMSwgMC4xNzU4NDYsIDAuNDI0MTI5LCAwLjg0MDM4NywgMS4yNTYzMiwgMi4yMjcyNSwgMi43ODczOCIsIFwKLSAgICAgICAgICAiMC4xNDg2MjEsIDAuMTc2MjYzLCAwLjQyNDQ4OSwgMC44NDE0MTQsIDEuMjU4NDYsIDIuMjMxNDgsIDIuNzg2OTUiLCBcCi0gICAgICAgICAgIjAuMTQ4NzgxLCAwLjE3NjA4NiwgMC40MjQ2MDMsIDAuODQxMDAyLCAxLjI1Njc2LCAyLjIzMTIxLCAyLjc4NzE1IiwgXAotICAgICAgICAgICIwLjE0ODYzOSwgMC4xNzU5OTUsIDAuNDI0MjI4LCAwLjg0MDU5OSwgMS4yNTc0MiwgMi4yMjc4OSwgMi43ODY2MiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzk5LCAwLjAwMzk5MiwgMC4wMDM5OTcsIDAuMDAzOTk5LCAwLjAwMzk5OSwgMC4wMDQsIDAuMDA0IiwgXAotICAgICAgICAgICIwLjAwMzk3OCwgMC4wMDM5OCwgMC4wMDM5ODQsIDAuMDAzOTg2LCAwLjAwMzk4NywgMC4wMDM5ODgsIDAuMDAzOTg4IiwgXAotICAgICAgICAgICIwLjAwMzk3MSwgMC4wMDM5NzIsIDAuMDAzOTc3LCAwLjAwMzk3OSwgMC4wMDM5OCwgMC4wMDM5ODEsIDAuMDAzOTgiLCBcCi0gICAgICAgICAgIjAuMDAzOTY2LCAwLjAwMzk2OCwgMC4wMDM5NzMsIDAuMDAzOTc1LCAwLjAwMzk3NSwgMC4wMDM5NzYsIDAuMDAzOTc2IiwgXAotICAgICAgICAgICIwLjAwMzk2NCwgMC4wMDM5NjYsIDAuMDAzOTcxLCAwLjAwMzk3MywgMC4wMDM5NzQsIDAuMDAzOTc0LCAwLjAwMzk3NCIsIFwKLSAgICAgICAgICAiMC4wMDM5NjUsIDAuMDAzOTY3LCAwLjAwMzk3MiwgMC4wMDM5NzQsIDAuMDAzOTc1LCAwLjAwMzk3NSwgMC4wMDM5NzYiLCBcCi0gICAgICAgICAgIjAuMDAzOTY3LCAwLjAwMzk2OSwgMC4wMDM5NzQsIDAuMDAzOTc2LCAwLjAwMzk3NywgMC4wMDM5NzcsIDAuMDAzOTc3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyOTg0LCAwLjAwMjk4NiwgMC4wMDI5OTIsIDAuMDAyOTk0LCAwLjAwMjk5NSwgMC4wMDI5OTUsIDAuMDAyOTk2IiwgXAotICAgICAgICAgICIwLjAwMjk2NCwgMC4wMDI5NjYsIDAuMDAyOTcxLCAwLjAwMjk3NCwgMC4wMDI5NzQsIDAuMDAyOTc1LCAwLjAwMjk3NSIsIFwKLSAgICAgICAgICAiMC4wMDI5NTMsIDAuMDAyOTU1LCAwLjAwMjk2MSwgMC4wMDI5NjMsIDAuMDAyOTY0LCAwLjAwMjk2NCwgMC4wMDI5NjQiLCBcCi0gICAgICAgICAgIjAuMDAyOTQ1LCAwLjAwMjk0NywgMC4wMDI5NTMsIDAuMDAyOTU1LCAwLjAwMjk1NiwgMC4wMDI5NTcsIDAuMDAyOTU3IiwgXAotICAgICAgICAgICIwLjAwMjk0NCwgMC4wMDI5NDYsIDAuMDAyOTUyLCAwLjAwMjk1NSwgMC4wMDI5NTUsIDAuMDAyOTU2LCAwLjAwMjk1NiIsIFwKLSAgICAgICAgICAiMC4wMDI5NDgsIDAuMDAyOTUsIDAuMDAyOTU2LCAwLjAwMjk1OCwgMC4wMDI5NTksIDAuMDAyOTYsIDAuMDAyOTYiLCBcCi0gICAgICAgICAgIjAuMDAyOTQ4LCAwLjAwMjk1MSwgMC4wMDI5NTcsIDAuMDAyOTU5LCAwLjAwMjk2LCAwLjAwMjk2MSwgMC4wMDI5NjEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQxNiwgMC4wMDQxNjEsIDAuMDA0MTY2LCAwLjAwNDE2OCwgMC4wMDQxNjgsIDAuMDA0MTY5LCAwLjAwNDE3IiwgXAotICAgICAgICAgICIwLjAwNDE0OCwgMC4wMDQxNDksIDAuMDA0MTU0LCAwLjAwNDE1NiwgMC4wMDQxNTcsIDAuMDA0MTU4LCAwLjAwNDE1NyIsIFwKLSAgICAgICAgICAiMC4wMDQxNCwgMC4wMDQxNDIsIDAuMDA0MTQ2LCAwLjAwNDE0OCwgMC4wMDQxNSwgMC4wMDQxNDksIDAuMDA0MTUiLCBcCi0gICAgICAgICAgIjAuMDA0MTM2LCAwLjAwNDEzNywgMC4wMDQxNDIsIDAuMDA0MTQ0LCAwLjAwNDE0NSwgMC4wMDQxNDUsIDAuMDA0MTQ1IiwgXAotICAgICAgICAgICIwLjAwNDEzMywgMC4wMDQxMzUsIDAuMDA0MTQsIDAuMDA0MTQyLCAwLjAwNDE0MywgMC4wMDQxNDMsIDAuMDA0MTQ0IiwgXAotICAgICAgICAgICIwLjAwNDEzMSwgMC4wMDQxMzIsIDAuMDA0MTM4LCAwLjAwNDE0LCAwLjAwNDE0LCAwLjAwNDE0MSwgMC4wMDQxNDEiLCBcCi0gICAgICAgICAgIjAuMDA0MTMzLCAwLjAwNDEzNSwgMC4wMDQxNDEsIDAuMDA0MTQzLCAwLjAwNDE0NCwgMC4wMDQxNDQsIDAuMDA0MTQ1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyODk1LCAwLjAwMjg5NywgMC4wMDI5MDMsIDAuMDAyOTA1LCAwLjAwMjkwNiwgMC4wMDI5MDcsIDAuMDAyOTA3IiwgXAotICAgICAgICAgICIwLjAwMjg3NSwgMC4wMDI4NzYsIDAuMDAyODgyLCAwLjAwMjg4NSwgMC4wMDI4ODUsIDAuMDAyODg2LCAwLjAwMjg4NiIsIFwKLSAgICAgICAgICAiMC4wMDI4NjQsIDAuMDAyODY1LCAwLjAwMjg3MSwgMC4wMDI4NzMsIDAuMDAyODc0LCAwLjAwMjg3NSwgMC4wMDI4NzUiLCBcCi0gICAgICAgICAgIjAuMDAyODU2LCAwLjAwMjg1OCwgMC4wMDI4NjQsIDAuMDAyODY2LCAwLjAwMjg2NywgMC4wMDI4NjgsIDAuMDAyODY4IiwgXAotICAgICAgICAgICIwLjAwMjg1NSwgMC4wMDI4NTYsIDAuMDAyODYzLCAwLjAwMjg2NSwgMC4wMDI4NjYsIDAuMDAyODY2LCAwLjAwMjg2NiIsIFwKLSAgICAgICAgICAiMC4wMDI4NTcsIDAuMDAyODU5LCAwLjAwMjg2NSwgMC4wMDI4NjgsIDAuMDAyODY4LCAwLjAwMjg2OSwgMC4wMDI4NjkiLCBcCi0gICAgICAgICAgIjAuMDAyODYsIDAuMDAyODYxLCAwLjAwMjg2NywgMC4wMDI4NjksIDAuMDAyODcsIDAuMDAyODcxLCAwLjAwMjg3MSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzYzLCAwLjAwMzYzMiwgMC4wMDM2MzcsIDAuMDAzNjM4LCAwLjAwMzYzOSwgMC4wMDM2NCwgMC4wMDM2NCIsIFwKLSAgICAgICAgICAiMC4wMDM2MTgsIDAuMDAzNjE5LCAwLjAwMzYyNCwgMC4wMDM2MjYsIDAuMDAzNjI3LCAwLjAwMzYyNywgMC4wMDM2MjciLCBcCi0gICAgICAgICAgIjAuMDAzNjEsIDAuMDAzNjEyLCAwLjAwMzYxNiwgMC4wMDM2MTksIDAuMDAzNjE5LCAwLjAwMzYyLCAwLjAwMzYyIiwgXAotICAgICAgICAgICIwLjAwMzYwNiwgMC4wMDM2MDcsIDAuMDAzNjEyLCAwLjAwMzYxNCwgMC4wMDM2MTUsIDAuMDAzNjE2LCAwLjAwMzYxNSIsIFwKLSAgICAgICAgICAiMC4wMDM2MDQsIDAuMDAzNjA2LCAwLjAwMzYxMSwgMC4wMDM2MTMsIDAuMDAzNjE0LCAwLjAwMzYxNCwgMC4wMDM2MTQiLCBcCi0gICAgICAgICAgIjAuMDAzNjAzLCAwLjAwMzYwNSwgMC4wMDM2MSwgMC4wMDM2MTMsIDAuMDAzNjEzLCAwLjAwMzYxNCwgMC4wMDM2MTQiLCBcCi0gICAgICAgICAgIjAuMDAzNjA2LCAwLjAwMzYwNywgMC4wMDM2MTMsIDAuMDAzNjE1LCAwLjAwMzYxNSwgMC4wMDM2MTYsIDAuMDAzNjE2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzMTY5LCAwLjAwMzE3MSwgMC4wMDMxNzYsIDAuMDAzMTc5LCAwLjAwMzE3OSwgMC4wMDMxOCwgMC4wMDMxOCIsIFwKLSAgICAgICAgICAiMC4wMDMxNDgsIDAuMDAzMTUsIDAuMDAzMTU1LCAwLjAwMzE1OCwgMC4wMDMxNTgsIDAuMDAzMTU5LCAwLjAwMzE1OSIsIFwKLSAgICAgICAgICAiMC4wMDMxMzcsIDAuMDAzMTM5LCAwLjAwMzE0NSwgMC4wMDMxNDcsIDAuMDAzMTQ3LCAwLjAwMzE0OCwgMC4wMDMxNDgiLCBcCi0gICAgICAgICAgIjAuMDAzMTMsIDAuMDAzMTMyLCAwLjAwMzEzOCwgMC4wMDMxNCwgMC4wMDMxNDEsIDAuMDAzMTQxLCAwLjAwMzE0MiIsIFwKLSAgICAgICAgICAiMC4wMDMxMjksIDAuMDAzMTMxLCAwLjAwMzEzNywgMC4wMDMxMzksIDAuMDAzMTQsIDAuMDAzMTQsIDAuMDAzMTQxIiwgXAotICAgICAgICAgICIwLjAwMzEzMywgMC4wMDMxMzQsIDAuMDAzMTQsIDAuMDAzMTQzLCAwLjAwMzE0MywgMC4wMDMxNDQsIDAuMDAzMTQ0IiwgXAotICAgICAgICAgICIwLjAwMzEzNiwgMC4wMDMxMzgsIDAuMDAzMTQzLCAwLjAwMzE0NiwgMC4wMDMxNDYsIDAuMDAzMTQ3LCAwLjAwMzE0NyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkQiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzg3LCAwLjAwMzg3MiwgMC4wMDM4NzcsIDAuMDAzODc5LCAwLjAwMzg3OSwgMC4wMDM4OCwgMC4wMDM4OCIsIFwKLSAgICAgICAgICAiMC4wMDM4NTgsIDAuMDAzODU5LCAwLjAwMzg2NCwgMC4wMDM4NjYsIDAuMDAzODY3LCAwLjAwMzg2OCwgMC4wMDM4NjgiLCBcCi0gICAgICAgICAgIjAuMDAzODUsIDAuMDAzODUyLCAwLjAwMzg1NywgMC4wMDM4NTksIDAuMDAzODU5LCAwLjAwMzg2LCAwLjAwMzg2IiwgXAotICAgICAgICAgICIwLjAwMzg0NiwgMC4wMDM4NDcsIDAuMDAzODUyLCAwLjAwMzg1NCwgMC4wMDM4NTUsIDAuMDAzODU2LCAwLjAwMzg1NiIsIFwKLSAgICAgICAgICAiMC4wMDM4NDQsIDAuMDAzODQ2LCAwLjAwMzg1MSwgMC4wMDM4NTMsIDAuMDAzODU0LCAwLjAwMzg1NSwgMC4wMDM4NTQiLCBcCi0gICAgICAgICAgIjAuMDAzODQ0LCAwLjAwMzg0NSwgMC4wMDM4NTEsIDAuMDAzODUzLCAwLjAwMzg1MywgMC4wMDM4NTQsIDAuMDAzODU0IiwgXAotICAgICAgICAgICIwLjAwMzg0NSwgMC4wMDM4NDcsIDAuMDAzODUyLCAwLjAwMzg1NCwgMC4wMDM4NTUsIDAuMDAzODU1LCAwLjAwMzg1NiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMywgMC4wMDMwMDIsIDAuMDAzMDA4LCAwLjAwMzAxLCAwLjAwMzAxLCAwLjAwMzAxMSwgMC4wMDMwMTEiLCBcCi0gICAgICAgICAgIjAuMDAyOTc5LCAwLjAwMjk4MSwgMC4wMDI5ODcsIDAuMDAyOTg5LCAwLjAwMjk5LCAwLjAwMjk5LCAwLjAwMjk5MSIsIFwKLSAgICAgICAgICAiMC4wMDI5NjgsIDAuMDAyOTcsIDAuMDAyOTc2LCAwLjAwMjk3OCwgMC4wMDI5NzksIDAuMDAyOTc5LCAwLjAwMjk3OSIsIFwKLSAgICAgICAgICAiMC4wMDI5NiwgMC4wMDI5NjIsIDAuMDAyOTY4LCAwLjAwMjk3LCAwLjAwMjk3MSwgMC4wMDI5NzEsIDAuMDAyOTcyIiwgXAotICAgICAgICAgICIwLjAwMjk1OSwgMC4wMDI5NiwgMC4wMDI5NjYsIDAuMDAyOTY5LCAwLjAwMjk2OSwgMC4wMDI5NywgMC4wMDI5NyIsIFwKLSAgICAgICAgICAiMC4wMDI5NjIsIDAuMDAyOTY0LCAwLjAwMjk3LCAwLjAwMjk3MiwgMC4wMDI5NzMsIDAuMDAyOTczLCAwLjAwMjk3MyIsIFwKLSAgICAgICAgICAiMC4wMDI5NjQsIDAuMDAyOTY1LCAwLjAwMjk3MSwgMC4wMDI5NzQsIDAuMDAyOTc0LCAwLjAwMjk3NSwgMC4wMDI5NzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTMCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1OTc0LCAwLjAwNTk3NSwgMC4wMDU5OCwgMC4wMDU5ODIsIDAuMDA1OTgzLCAwLjAwNTk4MywgMC4wMDU5ODUiLCBcCi0gICAgICAgICAgIjAuMDA1OTU0LCAwLjAwNTk1NiwgMC4wMDU5NjEsIDAuMDA1OTYzLCAwLjAwNTk2MywgMC4wMDU5NjQsIDAuMDA1OTY0IiwgXAotICAgICAgICAgICIwLjAwNTkyOCwgMC4wMDU5MjksIDAuMDA1OTM0LCAwLjAwNTkzNiwgMC4wMDU5MzYsIDAuMDA1OTM2LCAwLjAwNTkzOCIsIFwKLSAgICAgICAgICAiMC4wMDU5MjMsIDAuMDA1OTI1LCAwLjAwNTkzLCAwLjAwNTkzMiwgMC4wMDU5MzIsIDAuMDA1OTMzLCAwLjAwNTkzMyIsIFwKLSAgICAgICAgICAiMC4wMDU5MTksIDAuMDA1OTIxLCAwLjAwNTkyNiwgMC4wMDU5MjgsIDAuMDA1OTI4LCAwLjAwNTkyOSwgMC4wMDU5MjgiLCBcCi0gICAgICAgICAgIjAuMDA1OTQxLCAwLjAwNTk0MiwgMC4wMDU5NDcsIDAuMDA1OTQ5LCAwLjAwNTk1LCAwLjAwNTk1MSwgMC4wMDU5NSIsIFwKLSAgICAgICAgICAiMC4wMDU5NDQsIDAuMDA1OTQ1LCAwLjAwNTk1MSwgMC4wMDU5NTMsIDAuMDA1OTU0LCAwLjAwNTk1NCwgMC4wMDU5NTQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDgyMjUsIDAuMDA4MjI3LCAwLjAwODIzMiwgMC4wMDgyMzUsIDAuMDA4MjM1LCAwLjAwODIzNiwgMC4wMDgyMzYiLCBcCi0gICAgICAgICAgIjAuMDA4MTg3LCAwLjAwODE4OSwgMC4wMDgxOTQsIDAuMDA4MTk2LCAwLjAwODE5NywgMC4wMDgxOTgsIDAuMDA4MTk4IiwgXAotICAgICAgICAgICIwLjAwODE2NiwgMC4wMDgxNjgsIDAuMDA4MTc0LCAwLjAwODE3NiwgMC4wMDgxNzYsIDAuMDA4MTc3LCAwLjAwODE3NyIsIFwKLSAgICAgICAgICAiMC4wMDgxNzIsIDAuMDA4MTc0LCAwLjAwODE3OSwgMC4wMDgxODIsIDAuMDA4MTgyLCAwLjAwODE4MywgMC4wMDgxODMiLCBcCi0gICAgICAgICAgIjAuMDA4MTczLCAwLjAwODE3NSwgMC4wMDgxODEsIDAuMDA4MTgzLCAwLjAwODE4MywgMC4wMDgxODQsIDAuMDA4MTg0IiwgXAotICAgICAgICAgICIwLjAwODIwNSwgMC4wMDgyMDcsIDAuMDA4MjEyLCAwLjAwODIxNSwgMC4wMDgyMTUsIDAuMDA4MjE2LCAwLjAwODIxNiIsIFwKLSAgICAgICAgICAiMC4wMDgyNDEsIDAuMDA4MjQzLCAwLjAwODI0OCwgMC4wMDgyNSwgMC4wMDgyNTEsIDAuMDA4MjUyLCAwLjAwODI1MiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlMxIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDMwMDUsIDAuMDAzMDA2LCAwLjAwMzAxMiwgMC4wMDMwMTQsIDAuMDAzMDE1LCAwLjAwMzAxNiwgMC4wMDMwMTYiLCBcCi0gICAgICAgICAgIjAuMDAyOTg4LCAwLjAwMjk4OSwgMC4wMDI5OTUsIDAuMDAyOTk3LCAwLjAwMjk5OCwgMC4wMDI5OTksIDAuMDAzIiwgXAotICAgICAgICAgICIwLjAwMjk4MywgMC4wMDI5ODUsIDAuMDAyOTksIDAuMDAyOTkzLCAwLjAwMjk5NCwgMC4wMDI5OTUsIDAuMDAyOTk1IiwgXAotICAgICAgICAgICIwLjAwMjk5LCAwLjAwMjk5MSwgMC4wMDI5OTcsIDAuMDAyOTk5LCAwLjAwMzAwMSwgMC4wMDMwMDEsIDAuMDAzMDAxIiwgXAotICAgICAgICAgICIwLjAwMywgMC4wMDMwMDEsIDAuMDAzMDA2LCAwLjAwMzAwOSwgMC4wMDMwMSwgMC4wMDMwMTEsIDAuMDAzMDExIiwgXAotICAgICAgICAgICIwLjAwMzAxOCwgMC4wMDMwMTksIDAuMDAzMDI0LCAwLjAwMzAyNiwgMC4wMDMwMjcsIDAuMDAzMDI3LCAwLjAwMzAyOSIsIFwKLSAgICAgICAgICAiMC4wMDMwNCwgMC4wMDMwNCwgMC4wMDMwNDQsIDAuMDAzMDQ3LCAwLjAwMzA0NywgMC4wMDMwNDgsIDAuMDAzMDQ5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyMjM3LCAwLjAwMjIzOSwgMC4wMDIyNDYsIDAuMDAyMjQ4LCAwLjAwMjI0OSwgMC4wMDIyNSwgMC4wMDIyNSIsIFwKLSAgICAgICAgICAiMC4wMDIyMTMsIDAuMDAyMjE1LCAwLjAwMjIyMiwgMC4wMDIyMjUsIDAuMDAyMjI1LCAwLjAwMjIyNiwgMC4wMDIyMjciLCBcCi0gICAgICAgICAgIjAuMDAyMjExLCAwLjAwMjIxMywgMC4wMDIyMiwgMC4wMDIyMjIsIDAuMDAyMjIzLCAwLjAwMjIyNCwgMC4wMDIyMjUiLCBcCi0gICAgICAgICAgIjAuMDAyMjEsIDAuMDAyMjExLCAwLjAwMjIxOCwgMC4wMDIyMjEsIDAuMDAyMjIyLCAwLjAwMjIyMywgMC4wMDIyMjMiLCBcCi0gICAgICAgICAgIjAuMDAyMjIxLCAwLjAwMjIyMiwgMC4wMDIyMjksIDAuMDAyMjMyLCAwLjAwMjIzMywgMC4wMDIyMzQsIDAuMDAyMjM0IiwgXAotICAgICAgICAgICIwLjAwMjI0NCwgMC4wMDIyNDUsIDAuMDAyMjUxLCAwLjAwMjI1NSwgMC4wMDIyNTYsIDAuMDAyMjU3LCAwLjAwMjI1NyIsIFwKLSAgICAgICAgICAiMC4wMDIyNjcsIDAuMDAyMjY5LCAwLjAwMjI3NSwgMC4wMDIyNzgsIDAuMDAyMjc5LCAwLjAwMjI4LCAwLjAwMjI4Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IE5BTkQyQlgxICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChOQU5EMkJYMSkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjA5OTg2ODM7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEFOKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2NjQ3OTk7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjY0NjIyOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDY2NDc5OTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA0MzUsIDAuMDAwNDA4LCAwLjAwMDQxLCAwLjAwMDQxMSwgMC4wMDA0MjEsIDAuMDAwNDQ0LCAwLjAwMDQ3MSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTU4NCwgMC4wMDE1NjUsIDAuMDAxNTYyLCAwLjAwMTU2OCwgMC4wMDE1OCwgMC4wMDE2MDUsIDAuMDAxNjI4Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA5MTk4NTM7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwOTE5MjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA5MTk4NTM7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjYsIDAuMDAwMjYsIDAuMDAwMjYsIDAuMDAwMjYsIDAuMDAwMjU5LCAwLjAwMDI1OSwgMC4wMDAyNiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDQ2NCwgMC4wMDA0NjUsIDAuMDAwNDY2LCAwLjAwMDQ2NSwgMC4wMDA0NjUsIDAuMDAwNDY1LCAwLjAwMDQ2NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjE0NzUzOTsKLSAgICBmdW5jdGlvbiA6ICIoISgoIUFOKSBCKSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkFOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjcyMTIsIDAuMDkxODIsIDAuMjMwOTQ0LCAwLjM1MzU5MywgMC41MTc0NDMsIDAuODQ0ODI0LCAxLjA0OTY3IiwgXAotICAgICAgICAgICIwLjA3NzIwMSwgMC4xMDE3OTcsIDAuMjQxMDk3LCAwLjM2MzgxNiwgMC41Mjc3NTEsIDAuODU1MjEyLCAxLjA1OTc5IiwgXAotICAgICAgICAgICIwLjA4ODk1OSwgMC4xMTM1NjIsIDAuMjUyODc2LCAwLjM3NTUyNCwgMC41MzkyNjYsIDAuODY2NjIxLCAxLjA3MTYzIiwgXAotICAgICAgICAgICIwLjA5ODUwMSwgMC4xMjMwOSwgMC4yNjIyNzIsIDAuMzg1MDcsIDAuNTQ4Njk0LCAwLjg3NjU1NSwgMS4wODA1NyIsIFwKLSAgICAgICAgICAiMC4xMDY4MjQsIDAuMTMxNDQsIDAuMjcwNjU1LCAwLjM5MzQxOCwgMC41NTcwODUsIDAuODg0NDY4LCAxLjA4OTY1IiwgXAotICAgICAgICAgICIwLjExNzkyMiwgMC4xNDI0OTYsIDAuMjgxNDkyLCAwLjQwNDI4MywgMC41Njc5NDIsIDAuODk1MzE4LCAxLjEiLCBcCi0gICAgICAgICAgIjAuMTI2MjE4LCAwLjE1MTAwMiwgMC4yOTA1NiwgMC40MTI4MTcsIDAuNTc3MDksIDAuOTA0MzI2LCAxLjEwODk3Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5NTI0MywgMC4xNDU1NTEsIDAuNDMxODgxLCAwLjY4NDQxOSwgMS4wMjE3OCwgMS42OTU3OSwgMi4xMTcwNSIsIFwKLSAgICAgICAgICAiMC4wOTUyNjQsIDAuMTQ1NjY3LCAwLjQzMTk1NSwgMC42ODQ5MDIsIDEuMDIyMDUsIDEuNjk1ODQsIDIuMTE2NjMiLCBcCi0gICAgICAgICAgIjAuMDk1NDM4LCAwLjE0NTYzMiwgMC40MzE5NzUsIDAuNjg0Nzc1LCAxLjAyMTgzLCAxLjY5NTgzLCAyLjExNzIzIiwgXAotICAgICAgICAgICIwLjA5NTc5NywgMC4xNDU4MDMsIDAuNDMxODMxLCAwLjY4NDgzMiwgMS4wMjE0NSwgMS42OTYzNCwgMi4xMTYyMiIsIFwKLSAgICAgICAgICAiMC4wOTYyNTUsIDAuMTQ2MDA4LCAwLjQzMTg1NiwgMC42ODQ3MzcsIDEuMDIxMzEsIDEuNjk1OSwgMi4xMTc2IiwgXAotICAgICAgICAgICIwLjA5NzEwNiwgMC4xNDY0ODIsIDAuNDMxOTc4LCAwLjY4NDY3OCwgMS4wMjE2NywgMS42OTU3OSwgMi4xMTY5NiIsIFwKLSAgICAgICAgICAiMC4wOTc4OTEsIDAuMTQ2OTg2LCAwLjQzMTk3NCwgMC42ODQ2NSwgMS4wMjIwMSwgMS42OTU2MiwgMi4xMTY0NiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDcxMywgMC4xNTI3MzgsIDAuNDExMjUxLCAwLjYzOTM5MywgMC45NDM1OCwgMS41NTE5NywgMS45MzExNyIsIFwKLSAgICAgICAgICAiMC4xMTY5NDQsIDAuMTYyNTk2LCAwLjQyMTEyMywgMC42NDkyMzUsIDAuOTUzMzUyLCAxLjU2MTU3LCAxLjk0MDM1IiwgXAotICAgICAgICAgICIwLjEyNzYyMiwgMC4xNzMyNzksIDAuNDMxODA5LCAwLjY2MDA2NSwgMC45NjQyNjMsIDEuNTcyNjYsIDEuOTUxODIiLCBcCi0gICAgICAgICAgIjAuMTM2MzQ3LCAwLjE4MjAzNiwgMC40NDA1NjQsIDAuNjY4NDcyLCAwLjk3MjQ3NiwgMS41ODA2NiwgMS45NjExNCIsIFwKLSAgICAgICAgICAiMC4xNDM1NCwgMC4xODkyMTEsIDAuNDQ4MDAzLCAwLjY3NTgyMywgMC45ODAzMTYsIDEuNTg4MTQsIDEuOTY4NTEiLCBcCi0gICAgICAgICAgIjAuMTUzMzc4LCAwLjE5ODk4MSwgMC40NTc2NjcsIDAuNjg1NzkzLCAwLjk4OTc3NiwgMS41OTc0MiwgMS45Nzc4OCIsIFwKLSAgICAgICAgICAiMC4xNjA2MjYsIDAuMjA2MzE0LCAwLjQ2NDc5MywgMC42OTI3ODQsIDAuOTk3NDI4LCAxLjYwNTg0LCAxLjk4NDU2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE2NTkzMSwgMC4yNTU1LCAwLjc2NTMyNCwgMS4yMTM0OCwgMS44MTIwOSwgMy4wMDk2MiwgMy43NzE2NiIsIFwKLSAgICAgICAgICAiMC4xNjU5MDgsIDAuMjU1NTExLCAwLjc2NTM0NSwgMS4yMTM1NCwgMS44MTIzNywgMy4wMDk5OCwgMy43NzAxOCIsIFwKLSAgICAgICAgICAiMC4xNjU4OTIsIDAuMjU1ODc2LCAwLjc2NjU5LCAxLjIxMzM2LCAxLjgxMjAzLCAzLjAxMTA1LCAzLjc3MTczIiwgXAotICAgICAgICAgICIwLjE2NTkxMSwgMC4yNTU1NTIsIDAuNzY4OTg4LCAxLjIyMDQ1LCAxLjgxNzUxLCAzLjAxMzg4LCAzLjc1ODgyIiwgXAotICAgICAgICAgICIwLjE2NjAwOSwgMC4yNTU0OTIsIDAuNzY0NTUyLCAxLjIxNzI5LCAxLjgxMjAzLCAzLjAxMDU0LCAzLjc1ODM2IiwgXAotICAgICAgICAgICIwLjE2NTgwMywgMC4yNTU5NjEsIDAuNzY0Nzc1LCAxLjIxMzY3LCAxLjgxMjgsIDMuMDE4ODgsIDMuNzU5OSIsIFwKLSAgICAgICAgICAiMC4xNjU3NDIsIDAuMjU1Njc3LCAwLjc2NjUzMywgMS4yMTcxNCwgMS44MTI5OSwgMy4wMTEwOCwgMy43Njk0MiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDg2MDYsIDAuMDczMTkzLCAwLjIxMjM1LCAwLjMzNTIzMiwgMC40OTg3NTUsIDAuODI1OTQ1LCAxLjAzMTU1IiwgXAotICAgICAgICAgICIwLjA1ODQ3MSwgMC4wODMwNywgMC4yMjIzMzcsIDAuMzQ1MDk3LCAwLjUwODY4NCwgMC44MzY3MTQsIDEuMDQwNzkiLCBcCi0gICAgICAgICAgIjAuMDcwODM0LCAwLjA5NTM5MywgMC4yMzQ2MDUsIDAuMzU3MDk4LCAwLjUxOTkyMSwgMC44NDc0MTksIDEuMDUyMjMiLCBcCi0gICAgICAgICAgIjAuMDgzNzQxLCAwLjEwODE3NSwgMC4yNDcxNTksIDAuMzY5ODAyLCAwLjUzMzQ0MiwgMC44NTk0MzMsIDEuMDY0NDEiLCBcCi0gICAgICAgICAgIjAuMDk2MzQxLCAwLjEyMDk2NiwgMC4yNTk3NTUsIDAuMzgyMzU4LCAwLjU0NjA0LCAwLjg3MjUzOSwgMS4wNzY0MSIsIFwKLSAgICAgICAgICAiMC4xMTQyNjUsIDAuMTQwOTY3LCAwLjI3OTQ5NywgMC40MDI3MTcsIDAuNTY1OTQ4LCAwLjg5MTUxNCwgMS4wOTYyMSIsIFwKLSAgICAgICAgICAiMC4xMjczMDYsIDAuMTU4MTgxLCAwLjI5NzA2OCwgMC40MjAyNDcsIDAuNTgzNjIzLCAwLjkwODkwNiwgMS4xMTMzIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5MjY1MiwgMC4xNDMyNzEsIDAuNDI5NzUyLCAwLjY4MjUwOCwgMS4wMTk2OCwgMS42OTM0MiwgMi4xMTU5NyIsIFwKLSAgICAgICAgICAiMC4wOTI5NzEsIDAuMTQzNDg1LCAwLjQyOTcxMiwgMC42ODI1ODIsIDEuMDIxMTYsIDEuNjk0NDYsIDIuMTE1MTIiLCBcCi0gICAgICAgICAgIjAuMDk3Mjk5LCAwLjE0NTM1NCwgMC40Mjk3NTMsIDAuNjgyODA0LCAxLjAyMTQ0LCAxLjY5NDg3LCAyLjExNTIiLCBcCi0gICAgICAgICAgIjAuMTAzNDc0LCAwLjE0OTc5OSwgMC40Mjk5NjcsIDAuNjgzNTA4LCAxLjAxOTM1LCAxLjY5NjI1LCAyLjExNTIiLCBcCi0gICAgICAgICAgIjAuMTExMjkzLCAwLjE1NTcyNSwgMC40MzA4OSwgMC42ODIzNjgsIDEuMDE5NjMsIDEuNjk0NDYsIDIuMTE4OTUiLCBcCi0gICAgICAgICAgIjAuMTI1MywgMC4xNjcwNTQsIDAuNDM1MDU5LCAwLjY4Mjc2MSwgMS4wMTk0MSwgMS42OTcwOCwgMi4xMTg0MyIsIFwKLSAgICAgICAgICAiMC4xMzkwMzYsIDAuMTc5MDE2LCAwLjQ0MDY5NSwgMC42ODU4MzcsIDEuMDIxNDUsIDEuNjk0NTIsIDIuMTE0NjUiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg4MjAzLCAwLjEzMzgxOSwgMC4zOTIzMDIsIDAuNjIwMTEsIDAuOTI0Mzk3LCAxLjUzMjcxLCAxLjkxMTQ2IiwgXAotICAgICAgICAgICIwLjA5NzMzNywgMC4xNDMwMDUsIDAuNDAxNjQ2LCAwLjYyOTM1LCAwLjkzNDAzOSwgMS41NDIyNCwgMS45MjA4OSIsIFwKLSAgICAgICAgICAiMC4xMDkxMTIsIDAuMTU0NTcsIDAuNDEzNDY3LCAwLjY0MTU5MSwgMC45NDU4NSwgMS41NTQ0NSwgMS45MzM1NCIsIFwKLSAgICAgICAgICAiMC4xMjA0MDQsIDAuMTY2MTg3LCAwLjQyNDk3MiwgMC42NTMwNDMsIDAuOTU3MDY3LCAxLjU2NTQsIDEuOTQ1MDEiLCBcCi0gICAgICAgICAgIjAuMTMyNTMsIDAuMTc3ODA5LCAwLjQzNjY1MSwgMC42NjQ1MzIsIDAuOTY5MDg3LCAxLjU3NjkzLCAxLjk1NzM1IiwgXAotICAgICAgICAgICIwLjE1MTY5NCwgMC4xOTY3MDksIDAuNDUyNjQ1LCAwLjY4MzI3NCwgMC45ODczNzIsIDEuNTk1NTYsIDEuOTc1MTciLCBcCi0gICAgICAgICAgIjAuMTY4MzU3LCAwLjIxMzkwOSwgMC40NzE0NiwgMC42OTk3MTgsIDEuMDAzNDcsIDEuNjExMzgsIDEuOTkyMzgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTY1ODQxLCAwLjI1NTk2NywgMC43NjQ2MzcsIDEuMjE5OTUsIDEuODEyODcsIDMuMDEwMTMsIDMuNzcwMSIsIFwKLSAgICAgICAgICAiMC4xNjYyODgsIDAuMjU1ODQ3LCAwLjc2NDQ5MSwgMS4yMTcwMywgMS44MTIwMywgMy4wMjkxOSwgMy43Njg3NiIsIFwKLSAgICAgICAgICAiMC4xNjcxMDgsIDAuMjU1ODUsIDAuNzY1MjM4LCAxLjIxMzc4LCAxLjgxMjI0LCAzLjAzLCAzLjc3MTc2IiwgXAotICAgICAgICAgICIwLjE3MDIyNCwgMC4yNTc0MzUsIDAuNzY0MjIsIDEuMjE0NzMsIDEuODE0NTksIDMuMDExODUsIDMuNzU5MzUiLCBcCi0gICAgICAgICAgIjAuMTc1Njc2LCAwLjI2MDAzOSwgMC43NjQxNDQsIDEuMjE3MiwgMS44MTIwNCwgMy4wMTA0OSwgMy43NTgyNCIsIFwKLSAgICAgICAgICAiMC4xODU4NzMsIDAuMjY4NjYsIDAuNzY4NzAzLCAxLjIxNDc3LCAxLjgxNDc4LCAzLjAxMDgsIDMuNzcwNDEiLCBcCi0gICAgICAgICAgIjAuMTk2NjQsIDAuMjc2NjQzLCAwLjc2NzMxNSwgMS4yMTM2NiwgMS44MTc1MiwgMy4wMjc4OCwgMy43NTg1MyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkFOIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDE4NDEsIDAuMDAxODQyLCAwLjAwMTg0MSwgMC4wMDE4NDQsIDAuMDAxODQzLCAwLjAwMTg0MSwgMC4wMDE4NCIsIFwKLSAgICAgICAgICAiMC4wMDE4MTMsIDAuMDAxODE1LCAwLjAwMTgxOCwgMC4wMDE4MTcsIDAuMDAxODE4LCAwLjAwMTgxOCwgMC4wMDE4MTgiLCBcCi0gICAgICAgICAgIjAuMDAxODEyLCAwLjAwMTgxNCwgMC4wMDE4MTgsIDAuMDAxODE5LCAwLjAwMTgxOSwgMC4wMDE4MTksIDAuMDAxODE5IiwgXAotICAgICAgICAgICIwLjAwMTgyMywgMC4wMDE4MjcsIDAuMDAxODMxLCAwLjAwMTgzMiwgMC4wMDE4MzMsIDAuMDAxODMzLCAwLjAwMTgzMyIsIFwKLSAgICAgICAgICAiMC4wMDE4MjQsIDAuMDAxODI3LCAwLjAwMTgzMywgMC4wMDE4MzQsIDAuMDAxODM0LCAwLjAwMTgzNCwgMC4wMDE4MzUiLCBcCi0gICAgICAgICAgIjAuMDAxODQ4LCAwLjAwMTg1MSwgMC4wMDE4NTcsIDAuMDAxODU5LCAwLjAwMTg1OSwgMC4wMDE4NTksIDAuMDAxODU5IiwgXAotICAgICAgICAgICIwLjAwMTg3MSwgMC4wMDE4NzYsIDAuMDAxODc5LCAwLjAwMTg3NSwgMC4wMDE4ODIsIDAuMDAxODgyLCAwLjAwMTg4MiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjMzLCAwLjAwMjMzMiwgMC4wMDIzMzYsIDAuMDAyMzM2LCAwLjAwMjMzNywgMC4wMDIzMzcsIDAuMDAyMzM3IiwgXAotICAgICAgICAgICIwLjAwMjMwNSwgMC4wMDIzMSwgMC4wMDIzMTYsIDAuMDAyMzE3LCAwLjAwMjMxOCwgMC4wMDIzMTgsIDAuMDAyMzE4IiwgXAotICAgICAgICAgICIwLjAwMjMwMSwgMC4wMDIzMDgsIDAuMDAyMzE4LCAwLjAwMjMyLCAwLjAwMjMyMSwgMC4wMDIzMjIsIDAuMDAyMzIyIiwgXAotICAgICAgICAgICIwLjAwMjI5OSwgMC4wMDIzMDcsIDAuMDAyMzE5LCAwLjAwMjMyMiwgMC4wMDIzMjMsIDAuMDAyMzI0LCAwLjAwMjMyNCIsIFwKLSAgICAgICAgICAiMC4wMDIzMDcsIDAuMDAyMzE1LCAwLjAwMjMyOSwgMC4wMDIzMzIsIDAuMDAyMzM0LCAwLjAwMjMzNSwgMC4wMDIzMzYiLCBcCi0gICAgICAgICAgIjAuMDAyMzI0LCAwLjAwMjMzMSwgMC4wMDIzNDksIDAuMDAyMzUzLCAwLjAwMjM1NSwgMC4wMDIzNTQsIDAuMDAyMzU1IiwgXAotICAgICAgICAgICIwLjAwMjM0MiwgMC4wMDIzNTMsIDAuMDAyMzcsIDAuMDAyMzczLCAwLjAwMjM3NSwgMC4wMDIzNzksIDAuMDAyMzc4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxMzcxLCAwLjAwMTM3MiwgMC4wMDEzNzUsIDAuMDAxMzc1LCAwLjAwMTM3NSwgMC4wMDEzNzYsIDAuMDAxMzc2IiwgXAotICAgICAgICAgICIwLjAwMTM1NywgMC4wMDEzNjUsIDAuMDAxMzc2LCAwLjAwMTM3OCwgMC4wMDEzNzgsIDAuMDAxMzgsIDAuMDAxMzgiLCBcCi0gICAgICAgICAgIjAuMDAxMzQ1LCAwLjAwMTM1NCwgMC4wMDEzNzIsIDAuMDAxMzc2LCAwLjAwMTM4LCAwLjAwMTM4MSwgMC4wMDEzODEiLCBcCi0gICAgICAgICAgIjAuMDAxMzQsIDAuMDAxMzUsIDAuMDAxMzY5LCAwLjAwMTM3MywgMC4wMDEzNzYsIDAuMDAxMzc5LCAwLjAwMTM4IiwgXAotICAgICAgICAgICIwLjAwMTMzNiwgMC4wMDEzNDcsIDAuMDAxMzY3LCAwLjAwMTM3MiwgMC4wMDEzNzUsIDAuMDAxMzc4LCAwLjAwMTM3OSIsIFwKLSAgICAgICAgICAiMC4wMDEzNDMsIDAuMDAxMzQ1LCAwLjAwMTM2NCwgMC4wMDEzNzEsIDAuMDAxMzc0LCAwLjAwMTM3NywgMC4wMDEzNzgiLCBcCi0gICAgICAgICAgIjAuMDAxMzUzLCAwLjAwMTM1NCwgMC4wMDEzNjUsIDAuMDAxMzcxLCAwLjAwMTM3NSwgMC4wMDEzNzcsIDAuMDAxMzc4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwMzE4LCAwLjAwMDMyLCAwLjAwMDMyNCwgMC4wMDAzMjUsIDAuMDAwMzI1LCAwLjAwMDMyNSwgMC4wMDAzMjYiLCBcCi0gICAgICAgICAgIjAuMDAwMjkyLCAwLjAwMDMwMiwgMC4wMDAzMTcsIDAuMDAwMzIxLCAwLjAwMDMyMywgMC4wMDAzMjQsIDAuMDAwMzI0IiwgXAotICAgICAgICAgICIwLjAwMDI3NSwgMC4wMDAyODgsIDAuMDAwMzExLCAwLjAwMDMxNiwgMC4wMDAzMiwgMC4wMDAzMjIsIDAuMDAwMzIzIiwgXAotICAgICAgICAgICIwLjAwMDI2NCwgMC4wMDAyNzgsIDAuMDAwMzA1LCAwLjAwMDMxMiwgMC4wMDAzMTcsIDAuMDAwMzIsIDAuMDAwMzIxIiwgXAotICAgICAgICAgICIwLjAwMDI2NSwgMC4wMDAyNzQsIDAuMDAwMzAxLCAwLjAwMDMwOSwgMC4wMDAzMTQsIDAuMDAwMzE5LCAwLjAwMDMyIiwgXAotICAgICAgICAgICIwLjAwMDI3MywgMC4wMDAyNzUsIDAuMDAwMjk2LCAwLjAwMDMwNiwgMC4wMDAzMTIsIDAuMDAwMzE3LCAwLjAwMDMxOSIsIFwKLSAgICAgICAgICAiMC4wMDAyODYsIDAuMDAwMjg0LCAwLjAwMDI5NywgMC4wMDAzMDUsIDAuMDAwMzExLCAwLjAwMDMxNiwgMC4wMDAzMTgiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogTkFORDJCWDIgKgotICogLS0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKE5BTkQyQlgyKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMTc0NDQ2OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBTikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNTg4NTY4OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDU4ODU2ODsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA1ODg1MzY7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwODc2LCAwLjAwMDg1MywgMC4wMDA4NDIsIDAuMDAwODQ2LCAwLjAwMDg1NSwgMC4wMDA4NzYsIDAuMDAwODk3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyMTQ3LCAwLjAwMjEyOSwgMC4wMDIxMjMsIDAuMDAyMTI5LCAwLjAwMjEzOSwgMC4wMDIxNjIsIDAuMDAyMTgxIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE2Nzc0NTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE2NzYyNDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE2Nzc0NTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA1MTksIDAuMDAwNTE4LCAwLjAwMDUxNywgMC4wMDA1MTcsIDAuMDAwNTE3LCAwLjAwMDUxNywgMC4wMDA1MTciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA5MjgsIDAuMDAwOTI5LCAwLjAwMDkyOSwgMC4wMDA5MywgMC4wMDA5MywgMC4wMDA5MywgMC4wMDA5MyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjI4Njk1OwotICAgIGZ1bmN0aW9uIDogIighKCghQU4pIEIpKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQU4iOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1NDc2MiwgMC4xNTc0LCAwLjIzOTI5MywgMC4zNDE3MjIsIDAuNDQzNjUzLCAwLjU0NjE3MywgMC42NDg1MjUiLCBcCi0gICAgICAgICAgIjAuMDY1MDgzLCAwLjE2NzczOCwgMC4yNDk2MTQsIDAuMzUxODEzLCAwLjQ1NDI5NiwgMC41NTY2NjYsIDAuNjU5MDM5IiwgXAotICAgICAgICAgICIwLjA3NzY0LCAwLjE4MDI4OSwgMC4yNjIxODIsIDAuMzY0NTM5LCAwLjQ2Njc5MiwgMC41NjkyMzYsIDAuNjcxNDU3IiwgXAotICAgICAgICAgICIwLjA4ODg1MywgMC4xOTE1MjUsIDAuMjczNDMxLCAwLjM3NTkwNiwgMC40NzgwNzksIDAuNTgwNDM4LCAwLjY4MzA5MSIsIFwKLSAgICAgICAgICAiMC4wOTg4MDMsIDAuMjAxMzM5LCAwLjI4MzIwNywgMC4zODU1NDEsIDAuNDg3OTc1LCAwLjU5MDI1LCAwLjY5MjQ1OCIsIFwKLSAgICAgICAgICAiMC4xMTIyNjgsIDAuMjE1MTQzLCAwLjI5Njk4MiwgMC4zOTkyNzcsIDAuNTAxNjE4LCAwLjYwNDA1MywgMC43MDY0NjQiLCBcCi0gICAgICAgICAgIjAuMTIyNjk3LCAwLjIyNTY2MiwgMC4zMDc0NzcsIDAuNDA5NzY3LCAwLjUxMjE0MSwgMC42MTQzODksIDAuNzE2NyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTUyOTMsIDAuMjYzNzUxLCAwLjQzMjExNSwgMC42NDI3NDYsIDAuODUzMjAzLCAxLjA2NDMzLCAxLjI3NTAxIiwgXAotICAgICAgICAgICIwLjA1NTIxMywgMC4yNjM4MjYsIDAuNDMyMjM0LCAwLjY0MjYyOCwgMC44NTM1NDMsIDEuMDY0MDcsIDEuMjc1MTQiLCBcCi0gICAgICAgICAgIjAuMDU1NDg4LCAwLjI2MzcwNSwgMC40MzIxMiwgMC42NDI5NDksIDAuODUzNjUsIDEuMDY0MjIsIDEuMjc0OTUiLCBcCi0gICAgICAgICAgIjAuMDU2MjU4LCAwLjI2Mzg3MiwgMC40MzIxNzIsIDAuNjQyOTk3LCAwLjg1MzU2MSwgMS4wNjQxNSwgMS4yNzUxMyIsIFwKLSAgICAgICAgICAiMC4wNTcyMjUsIDAuMjYzOTE5LCAwLjQzMjIyMiwgMC42NDI3NzQsIDAuODUzODQyLCAxLjA2Mzk2LCAxLjI3NDMyIiwgXAotICAgICAgICAgICIwLjA1OTA2OSwgMC4yNjQxMzcsIDAuNDMyMjE0LCAwLjY0Mjg4NCwgMC44NTM1NTQsIDEuMDY0NTYsIDEuMjc1MjgiLCBcCi0gICAgICAgICAgIjAuMDYwNTk5LCAwLjI2NDQxLCAwLjQzMjI5NCwgMC42NDI5MiwgMC44NTM3MjUsIDEuMDY0MTQsIDEuMjc0OTMiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc3MjI5LCAwLjI2NzYzMSwgMC40MTk4NjUsIDAuNjEwMTE0LCAwLjgwMDQ1LCAwLjk5MDY4NCwgMS4xODEwNyIsIFwKLSAgICAgICAgICAiMC4wODcwMjcsIDAuMjc3NTQzLCAwLjQyOTc4MywgMC42MjAwMDEsIDAuODEwMTMsIDEuMDAwNDMsIDEuMTkxMjgiLCBcCi0gICAgICAgICAgIjAuMDk5MDA4LCAwLjI4OTYwNSwgMC40NDE4NTEsIDAuNjMxOTcyLCAwLjgyMjYwNywgMS4wMTMwOSwgMS4yMDMxNiIsIFwKLSAgICAgICAgICAiMC4xMDk0MzYsIDAuMzAwMTM3LCAwLjQ1MjI2NywgMC42NDI1NzcsIDAuODMyNzg3LCAxLjAyMzAyLCAxLjIxMzU2IiwgXAotICAgICAgICAgICIwLjExODI5OSwgMC4zMDg4NjksIDAuNDYxMjU2LCAwLjY1MTQ1OSwgMC44NDE2NTIsIDEuMDMyNjYsIDEuMjIxOTUiLCBcCi0gICAgICAgICAgIjAuMTMwMzcyLCAwLjMyMDk2LCAwLjQ3MzMzOSwgMC42NjM1NTUsIDAuODUzNzU1LCAxLjA0MzgzLCAxLjIzNDA5IiwgXAotICAgICAgICAgICIwLjE0MDE3OSwgMC4zMzA4MzIsIDAuNDgzMDA4LCAwLjY3MzMzNSwgMC44NjM1OTcsIDEuMDUzODUsIDEuMjQ0NTYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDkxNDkzLCAwLjQ2ODIwOCwgMC43NzAxMTQsIDEuMTUxNDgsIDEuNTIwOTMsIDEuODk5MDksIDIuMjczNzQiLCBcCi0gICAgICAgICAgIjAuMDkxNDg2LCAwLjQ2NzMwNSwgMC43NjgyNDEsIDEuMTUwODcsIDEuNTI5MiwgMS45MDIyMywgMi4yNzI4MyIsIFwKLSAgICAgICAgICAiMC4wOTE1NDEsIDAuNDY5NTE0LCAwLjc3MjY4MiwgMS4xNTA3NSwgMS41MjEzNCwgMS44OTc3NiwgMi4yNzM5MyIsIFwKLSAgICAgICAgICAiMC4wOTE1OTUsIDAuNDY3MDA3LCAwLjc2ODY5OCwgMS4xNTE0NSwgMS41MjIzMiwgMS45MDIyMywgMi4yNzM1NCIsIFwKLSAgICAgICAgICAiMC4wOTE5MTMsIDAuNDY4MTEyLCAwLjc2ODEzLCAxLjE1MTQ3LCAxLjUzMDMzLCAxLjg5Nzc1LCAyLjI4Njk4IiwgXAotICAgICAgICAgICIwLjA5MjQwMSwgMC40NjgxOTQsIDAuNzY4MDkyLCAxLjE1MTQ4LCAxLjUzMDM1LCAxLjkwMTg2LCAyLjI4Njk0IiwgXAotICAgICAgICAgICIwLjA5MzA5MywgMC40NjgzMjcsIDAuNzcwMDg4LCAxLjE1MTM5LCAxLjUzMDMsIDEuOTA5MDksIDIuMjczMDgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDI4NTI5LCAwLjEzMzEwMywgMC4yMTY2NTEsIDAuMzIxMzk4LCAwLjQyNTY3NCwgMC41MzA2MDksIDAuNjM0OTY1IiwgXAotICAgICAgICAgICIwLjAzODQ1OCwgMC4xNDI4MTgsIDAuMjI2MzQ5LCAwLjMzMDk5OCwgMC40MzUzNTgsIDAuNTQwMDc4LCAwLjY0NDM5OSIsIFwKLSAgICAgICAgICAiMC4wNTExMzEsIDAuMTU1NzE3LCAwLjIzOTI4NCwgMC4zNDM4NjEsIDAuNDQ4Mjc1LCAwLjU1MzE0MywgMC42NTcyMTYiLCBcCi0gICAgICAgICAgIjAuMDYyNDIzLCAwLjE2NzkwNCwgMC4yNTE0MDcsIDAuMzU1ODAxLCAwLjQ2MDMxMSwgMC41NjUxMDQsIDAuNjY4MTU4IiwgXAotICAgICAgICAgICIwLjA3MTg3LCAwLjE4MDIwMywgMC4yNjM5OTQsIDAuMzY4MzU1LCAwLjQ3MjkzMiwgMC41NzcyMTgsIDAuNjgwMDc1IiwgXAotICAgICAgICAgICIwLjA4NTIwMSwgMC4yMDA4NywgMC4yODM3NzMsIDAuMzg4NTc3LCAwLjQ5Mjg2MiwgMC41OTczMTksIDAuNzAxNzU5IiwgXAotICAgICAgICAgICIwLjA5NDUzOCwgMC4yMTg2OTEsIDAuMzAxMzM1LCAwLjQwNTc4MywgMC41MTA2MzQsIDAuNjE0ODUzLCAwLjcxOTM2NyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTEzNDIsIDAuMjY2NjQzLCAwLjQzODg2OSwgMC42NTQ0MTEsIDAuODY5NDYzLCAxLjA4NTA1LCAxLjI5OTg2IiwgXAotICAgICAgICAgICIwLjA1MzAzOCwgMC4yNjY2MTMsIDAuNDM4NjIzLCAwLjY1NDEzOSwgMC44NzA2NjIsIDEuMDg0NjksIDEuMzAwMDUiLCBcCi0gICAgICAgICAgIjAuMDU5NDM3LCAwLjI2NjYyNiwgMC40Mzg3NjksIDAuNjU0MTMxLCAwLjg2OTEyMywgMS4wODQ1NCwgMS4zMDE4NyIsIFwKLSAgICAgICAgICAiMC4wNjgzMDcsIDAuMjY4NDcyLCAwLjQzOTE0NSwgMC42NTQ0NTIsIDAuODY5MDQ4LCAxLjA4NDY1LCAxLjMwMDUzIiwgXAotICAgICAgICAgICIwLjA3Nzk4NiwgMC4yNzE3OTMsIDAuNDQwMTg5LCAwLjY1NDU3NSwgMC44Njk0NzEsIDEuMDg0NTEsIDEuMzAxODMiLCBcCi0gICAgICAgICAgIjAuMDkzMzg2LCAwLjI3ODg4NiwgMC40NDM5MjgsIDAuNjU0MzgyLCAwLjg3MTE1NCwgMS4wODQ3MiwgMS4zMDA4MSIsIFwKLSAgICAgICAgICAiMC4xMDU4MTMsIDAuMjg3MzA0LCAwLjQ0OTQ0NCwgMC42NTY2MTgsIDAuODcwMDI2LCAxLjA4NDUsIDEuMzAwNDciKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDUwMDQ5LCAwLjI0MDM5MiwgMC4zOTI4NDIsIDAuNTgyODMyLCAwLjc3MzQ0MywgMC45NjMwOTUsIDEuMTUzOSIsIFwKLSAgICAgICAgICAiMC4wNTkwMTYsIDAuMjQ5NzYsIDAuNDAxODYzLCAwLjU5MjA3MiwgMC43ODI0ODcsIDAuOTcyNDAzLCAxLjE2Mjc5IiwgXAotICAgICAgICAgICIwLjA3MDQxMywgMC4yNjExMTMsIDAuNDEzMzcsIDAuNjAzNzk4LCAwLjc5MzgxNiwgMC45ODM5OTUsIDEuMTc0MTgiLCBcCi0gICAgICAgICAgIjAuMDgyNTkzLCAwLjI3MzAwNiwgMC40MjU0NTMsIDAuNjE1NjEsIDAuODA1NzcsIDAuOTk2NjcsIDEuMTg2MTMiLCBcCi0gICAgICAgICAgIjAuMDk0MzE0LCAwLjI4NDQ4MSwgMC40MzY3OTYsIDAuNjI3MDI2LCAwLjgxNzI3MiwgMS4wMDc0MSwgMS4xOTc3MSIsIFwKLSAgICAgICAgICAiMC4xMTA5ODMsIDAuMzAzMjEsIDAuNDUzMDMxLCAwLjY0NTY4NCwgMC44MzYyNzMsIDEuMDI2MzgsIDEuMjE2MzciLCBcCi0gICAgICAgICAgIjAuMTIyOTUyLCAwLjMxOTYsIDAuNDcxODAzLCAwLjY2MjE3NCwgMC44NTI1MDksIDEuMDQzMDYsIDEuMjMzMDEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDkwODEzLCAwLjQ2ODE5MiwgMC43Njc4MzYsIDEuMTQ1NjIsIDEuNTIwMzcsIDEuOTAxOTYsIDIuMjc1ODgiLCBcCi0gICAgICAgICAgIjAuMDkwOTczLCAwLjQ2Njk5NywgMC43NzIwMDksIDEuMTUwMzgsIDEuNTIwODEsIDEuOTAyNDcsIDIuMjc1NjgiLCBcCi0gICAgICAgICAgIjAuMDk0OTY1LCAwLjQ2ODI0OSwgMC43NzIwOSwgMS4xNDU1OSwgMS41MjQ1OCwgMS45MDgxMywgMi4yNzkxMSIsIFwKLSAgICAgICAgICAiMC4xMDA4MjksIDAuNDY4MjI1LCAwLjc2ODA0NiwgMS4xNDc0MiwgMS41Mjk1OSwgMS44OTY1OCwgMi4yNzkwMiIsIFwKLSAgICAgICAgICAiMC4xMDg2MDYsIDAuNDY3NTA5LCAwLjc3MjQ4MSwgMS4xNTEwNywgMS41Mjk5OCwgMS45MDc0LCAyLjI3OTIyIiwgXAotICAgICAgICAgICIwLjEyMzA1NSwgMC40NzA1ODIsIDAuNzcyMjIsIDEuMTUwMjIsIDEuNTIwNjcsIDEuODk3NzUsIDIuMjg3MTYiLCBcCi0gICAgICAgICAgIjAuMTM2MDcyLCAwLjQ3NTgyNywgMC43NzA5MzEsIDEuMTQ1NDYsIDEuNTIyNTQsIDEuODk2ODksIDIuMjc5OTUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzNTUsIDAuMDAzNTY0LCAwLjAwMzU2NiwgMC4wMDM1NjYsIDAuMDAzNTcsIDAuMDAzNTY2LCAwLjAwMzU2NiIsIFwKLSAgICAgICAgICAiMC4wMDM1MiwgMC4wMDM1NDEsIDAuMDAzNTQzLCAwLjAwMzU0NywgMC4wMDM1NDQsIDAuMDAzNTQ1LCAwLjAwMzU0NCIsIFwKLSAgICAgICAgICAiMC4wMDM1MDcsIDAuMDAzNTM1LCAwLjAwMzUzOCwgMC4wMDM1NCwgMC4wMDM1NCwgMC4wMDM1NDEsIDAuMDAzNTQxIiwgXAotICAgICAgICAgICIwLjAwMzUxMywgMC4wMDM1NCwgMC4wMDM1NDQsIDAuMDAzNTQ2LCAwLjAwMzU0NywgMC4wMDM1NDcsIDAuMDAzNTQ3IiwgXAotICAgICAgICAgICIwLjAwMzUyLCAwLjAwMzU1LCAwLjAwMzU1NSwgMC4wMDM1NTgsIDAuMDAzNTU5LCAwLjAwMzU2LCAwLjAwMzU1OSIsIFwKLSAgICAgICAgICAiMC4wMDM1NDUsIDAuMDAzNTc0LCAwLjAwMzU4LCAwLjAwMzU4MywgMC4wMDM1ODQsIDAuMDAzNTg1LCAwLjAwMzU4NiIsIFwKLSAgICAgICAgICAiMC4wMDM1NjgsIDAuMDAzNTk2LCAwLjAwMzYwMSwgMC4wMDM2MDMsIDAuMDAzNjA1LCAwLjAwMzYwNSwgMC4wMDM2MDYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDM2NDgsIDAuMDAzNjg3LCAwLjAwMzY5MSwgMC4wMDM2OTMsIDAuMDAzNjk0LCAwLjAwMzY5NSwgMC4wMDM2OTUiLCBcCi0gICAgICAgICAgIjAuMDAzNjE1LCAwLjAwMzY2NCwgMC4wMDM2NywgMC4wMDM2NzMsIDAuMDAzNjc0LCAwLjAwMzY3NSwgMC4wMDM2NzYiLCBcCi0gICAgICAgICAgIjAuMDAzNTkzLCAwLjAwMzY1NiwgMC4wMDM2NjUsIDAuMDAzNjY5LCAwLjAwMzY3MiwgMC4wMDM2NzMsIDAuMDAzNjc0IiwgXAotICAgICAgICAgICIwLjAwMzU4NywgMC4wMDM2NTcsIDAuMDAzNjY4LCAwLjAwMzY3NCwgMC4wMDM2NzcsIDAuMDAzNjc4LCAwLjAwMzY4IiwgXAotICAgICAgICAgICIwLjAwMzU4OCwgMC4wMDM2NjIsIDAuMDAzNjc0LCAwLjAwMzY4MSwgMC4wMDM2ODUsIDAuMDAzNjg3LCAwLjAwMzY4OSIsIFwKLSAgICAgICAgICAiMC4wMDM1OTksIDAuMDAzNjc4LCAwLjAwMzY5MSwgMC4wMDM3LCAwLjAwMzcwNCwgMC4wMDM3MDcsIDAuMDAzNzA5IiwgXAotICAgICAgICAgICIwLjAwMzYwMywgMC4wMDM2ODUsIDAuMDAzNywgMC4wMDM3MDksIDAuMDAzNzE0LCAwLjAwMzcxNywgMC4wMDM3MTkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI1OTMsIDAuMDAyNjA4LCAwLjAwMjYxMSwgMC4wMDI2MTEsIDAuMDAyNjEyLCAwLjAwMjYxMSwgMC4wMDI2MTIiLCBcCi0gICAgICAgICAgIjAuMDAyNTQ0LCAwLjAwMjYwNCwgMC4wMDI2MTIsIDAuMDAyNjE1LCAwLjAwMjYxOCwgMC4wMDI2MTgsIDAuMDAyNjIiLCBcCi0gICAgICAgICAgIjAuMDAyNTE1LCAwLjAwMjU4OCwgMC4wMDI2MDMsIDAuMDAyNjA5LCAwLjAwMjYxMywgMC4wMDI2MTUsIDAuMDAyNjE2IiwgXAotICAgICAgICAgICIwLjAwMjUxMSwgMC4wMDI1ODQsIDAuMDAyNTk2LCAwLjAwMjYwNywgMC4wMDI2MTEsIDAuMDAyNjEzLCAwLjAwMjYxNSIsIFwKLSAgICAgICAgICAiMC4wMDI1MTQsIDAuMDAyNTc5LCAwLjAwMjU5NSwgMC4wMDI2MDMsIDAuMDAyNjA5LCAwLjAwMjYxMSwgMC4wMDI2MTUiLCBcCi0gICAgICAgICAgIjAuMDAyNTQ3LCAwLjAwMjU3NywgMC4wMDI1OTIsIDAuMDAyNjAxLCAwLjAwMjYwNiwgMC4wMDI2MDksIDAuMDAyNjEiLCBcCi0gICAgICAgICAgIjAuMDAyNTg4LCAwLjAwMjU4MiwgMC4wMDI1OTEsIDAuMDAyNTk5LCAwLjAwMjYwNiwgMC4wMDI2MDksIDAuMDAyNjExIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwNjU3LCAwLjAwMDY3OSwgMC4wMDA2ODEsIDAuMDAwNjgzLCAwLjAwMDY4MywgMC4wMDA2ODQsIDAuMDAwNjg0IiwgXAotICAgICAgICAgICIwLjAwMDU3NiwgMC4wMDA2NTgsIDAuMDAwNjY4LCAwLjAwMDY3NCwgMC4wMDA2NzcsIDAuMDAwNjc4LCAwLjAwMDY4IiwgXAotICAgICAgICAgICIwLjAwMDU0LCAwLjAwMDYzOCwgMC4wMDA2NTUsIDAuMDAwNjY0LCAwLjAwMDY2OSwgMC4wMDA2NzMsIDAuMDAwNjc1IiwgXAotICAgICAgICAgICIwLjAwMDUyNywgMC4wMDA2MiwgMC4wMDA2NDIsIDAuMDAwNjU1LCAwLjAwMDY2MiwgMC4wMDA2NjcsIDAuMDAwNjciLCBcCi0gICAgICAgICAgIjAuMDAwNTQ0LCAwLjAwMDYxMiwgMC4wMDA2MzYsIDAuMDAwNjUsIDAuMDAwNjU4LCAwLjAwMDY2MywgMC4wMDA2NjciLCBcCi0gICAgICAgICAgIjAuMDAwNTg1LCAwLjAwMDYwNiwgMC4wMDA2MjQsIDAuMDAwNjQzLCAwLjAwMDY1MiwgMC4wMDA2NTgsIDAuMDAwNjYyIiwgXAotICAgICAgICAgICIwLjAwMDYzMiwgMC4wMDA2MDgsIDAuMDAwNjI2LCAwLjAwMDY0LCAwLjAwMDY0OSwgMC4wMDA2NTUsIDAuMDAwNjYiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogTkFORDJCWEwgKgotICogLS0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKE5BTkQyQlhMKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMDY5NjcyOwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBTikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjEwNjI3OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYxMDQyODsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2MTA2Mjc7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjgxLCAwLjAwMDI1NCwgMC4wMDAyNTMsIDAuMDAwMjY0LCAwLjAwMDI3NSwgMC4wMDAzMDMsIDAuMDAwMzI4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxMjUyLCAwLjAwMTIzMywgMC4wMDEyMzQsIDAuMDAxMjQyLCAwLjAwMTI1NSwgMC4wMDEyODMsIDAuMDAxMzA3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2MTA5MTQ7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjEwNDkxOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDYxMDkxNDsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxMTUsIDAuMDAwMTE0LCAwLjAwMDExNCwgMC4wMDAxMTQsIDAuMDAwMTE0LCAwLjAwMDExNCwgMC4wMDAxMTQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyNTcsIDAuMDAwMjU3LCAwLjAwMDI1NywgMC4wMDAyNTcsIDAuMDAwMjU3LCAwLjAwMDI1NywgMC4wMDAyNTciKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4wNzc2MDc5OwotICAgIGZ1bmN0aW9uIDogIighKCghQU4pIEIpKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQU4iOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5MzY4OCwgMC4xMDc4MjQsIDAuMjM1MDI4LCAwLjQ0Njg1NiwgMC42NTg2ODMsIDEuMTUzMzIsIDEuNDM1NDEiLCBcCi0gICAgICAgICAgIjAuMTAzNjgxLCAwLjExNzgxOCwgMC4yNDUwMTYsIDAuNDU2ODk1LCAwLjY2ODk4NiwgMS4xNjI5OSwgMS40NDY1IiwgXAotICAgICAgICAgICIwLjExNDE1NywgMC4xMjgzMDYsIDAuMjU1NDQ5LCAwLjQ2NzYxNiwgMC42Nzk1MDYsIDEuMTc0MiwgMS40NTYzNyIsIFwKLSAgICAgICAgICAiMC4xMjI3MjgsIDAuMTM2ODcxLCAwLjI2NDA1NiwgMC40NzU5OTgsIDAuNjg3ODA1LCAxLjE4MjgzLCAxLjQ2NDUxIiwgXAotICAgICAgICAgICIwLjEyOTU4MSwgMC4xNDM3MTEsIDAuMjcwOTI4LCAwLjQ4Mjk2MiwgMC42OTQ2OTMsIDEuMTg5NzIsIDEuNDcxNDkiLCBcCi0gICAgICAgICAgIjAuMTM5MTY0LCAwLjE1MzMzLCAwLjI4MDQzLCAwLjQ5MjM2LCAwLjcwNDQ0OCwgMS4xOTg1NywgMS40ODA5NyIsIFwKLSAgICAgICAgICAiMC4xNDY3NzYsIDAuMTYxMDA1LCAwLjI4Nzk5NiwgMC40OTk5MywgMC43MTE3NzgsIDEuMjA2MzQsIDEuNDg4NTciKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTU3MTE0LCAwLjE4NjE2OSwgMC40NDY1OTMsIDAuODgxNTIxLCAxLjMxNjQsIDIuMzMwNjUsIDIuOTA5NDMiLCBcCi0gICAgICAgICAgIjAuMTU3MTIsIDAuMTg2MDgxLCAwLjQ0NzAwMywgMC44ODEzMjIsIDEuMzE2NTEsIDIuMzMxMDcsIDIuOTEwNyIsIFwKLSAgICAgICAgICAiMC4xNTcxNjUsIDAuMTg2MTI4LCAwLjQ0Njk4LCAwLjg4MTk3NywgMS4zMTY4MywgMi4zMzA5LCAyLjkwOTc2IiwgXAotICAgICAgICAgICIwLjE1NzM3MywgMC4xODYyMDMsIDAuNDQ2OTc4LCAwLjg4MTY4NSwgMS4zMTY0MSwgMi4zMzA4OCwgMi45MTA1NiIsIFwKLSAgICAgICAgICAiMC4xNTc1NzIsIDAuMTg2MzIzLCAwLjQ0Njk4NSwgMC44ODE5NjEsIDEuMzE2NDYsIDIuMzMwNTcsIDIuOTEwMTQiLCBcCi0gICAgICAgICAgIjAuMTU3NzA2LCAwLjE4NjQ3NSwgMC40NDY5NzIsIDAuODgxMzA3LCAxLjMxNjYzLCAyLjMzMDU4LCAyLjkwODg0IiwgXAotICAgICAgICAgICIwLjE1Nzk4LCAwLjE4NjcxMywgMC40NDcxNDEsIDAuODgxNjY3LCAxLjMxNjA1LCAyLjMzMDI3LCAyLjkwODg0Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE1NTU1MiwgMC4xODEwMzksIDAuNDA5OTM2LCAwLjc5MTQ3NywgMS4xNzI5LCAyLjA2MzA4LCAyLjU3MTA4IiwgXAotICAgICAgICAgICIwLjE2NTI2OCwgMC4xOTA3ODksIDAuNDE5NTA1LCAwLjgwMTE0MSwgMS4xODMyNiwgMi4wNzM3MiwgMi41ODEwMiIsIFwKLSAgICAgICAgICAiMC4xNzQ4NzksIDAuMjAwMjgsIDAuNDI5MzA0LCAwLjgxMDU1LCAxLjE5MTc0LCAyLjA4MiwgMi41OTA1OSIsIFwKLSAgICAgICAgICAiMC4xODIxOCwgMC4yMDc2MzgsIDAuNDM2NDksIDAuODE4MjE5LCAxLjE5OTc0LCAyLjA4OTUzLCAyLjU5ODA5IiwgXAotICAgICAgICAgICIwLjE4ODMxNiwgMC4yMTM3OTMsIDAuNDQyNzUsIDAuODI0MjA4LCAxLjIwNjIyLCAyLjA5NTg4LCAyLjYwNDUiLCBcCi0gICAgICAgICAgIjAuMTk2NjU0LCAwLjIyMjA4NywgMC40NTExMTksIDAuODMyNDU2LCAxLjIxMzc1LCAyLjEwMzY3LCAyLjYxMzA4IiwgXAotICAgICAgICAgICIwLjIwMjY5NCwgMC4yMjgyNTMsIDAuNDU3MTAzLCAwLjgzODUxOCwgMS4yMjAzNywgMi4xMDk5OSwgMi42MTg1NSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yNjk0MzksIDAuMzE4OTU5LCAwLjc3MTIzOSwgMS41MjIyNCwgMi4yNzQ3NywgNC4wMjk1NCwgNS4wNDI4OCIsIFwKLSAgICAgICAgICAiMC4yNzAzNTcsIDAuMzE4OTYyLCAwLjc3NDU2NiwgMS41MjI1NCwgMi4yNzUzOSwgNC4wMzA5OSwgNS4wMzI2OCIsIFwKLSAgICAgICAgICAiMC4yNzAyMjksIDAuMzE5ODMyLCAwLjc3MTA3MiwgMS41MjY0NSwgMi4yODA0OCwgNC4wNDI3NywgNS4wMzg1NiIsIFwKLSAgICAgICAgICAiMC4yNjkwNzcsIDAuMzE5MjczLCAwLjc3MjQ2MiwgMS41MjIzNSwgMi4yNzQzOSwgNC4wMjk4NSwgNS4wMzUwNSIsIFwKLSAgICAgICAgICAiMC4yNjkwODcsIDAuMzE5OTA3LCAwLjc3MjE4OCwgMS41MzIxNywgMi4yNzM5MSwgNC4wMjk5MSwgNS4wMzU4OSIsIFwKLSAgICAgICAgICAiMC4yNjk0OTQsIDAuMzE5NzE0LCAwLjc3NDU0OCwgMS41MzE1NiwgMi4yODg0LCA0LjA0MDQ5LCA1LjAzMjQ5IiwgXAotICAgICAgICAgICIwLjI2ODkxNywgMC4zMTkyNjYsIDAuNzc0MzMyLCAxLjUyNjc4LCAyLjI3NDMyLCA0LjAzMzMxLCA1LjAzNTgzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3OTAxMiwgMC4wOTMxMTksIDAuMjIwMjU5LCAwLjQzMjA1NSwgMC42NDQxNzcsIDEuMTM5MTgsIDEuNDIxMTEiLCBcCi0gICAgICAgICAgIjAuMDg4NzI4LCAwLjEwMjg2LCAwLjIyOTk5NiwgMC40NDIwNSwgMC42NTM2OTUsIDEuMTQ4MDYsIDEuNDMyMDUiLCBcCi0gICAgICAgICAgIjAuMTAwOTYsIDAuMTE1MTA5LCAwLjI0MjQwNSwgMC40NTQwODgsIDAuNjY1MjA4LCAxLjE1OTgsIDEuNDQyMjYiLCBcCi0gICAgICAgICAgIjAuMTEzMjkxLCAwLjEyNzQzNywgMC4yNTQ3MTksIDAuNDY2NTUzLCAwLjY3NzE5NywgMS4xNzI2MywgMS40NTQ0MSIsIFwKLSAgICAgICAgICAiMC4xMjYxNjYsIDAuMTQwMjM4LCAwLjI2NzExMywgMC40Nzg3NDgsIDAuNjg5NzIsIDEuMTg0MDksIDEuNDY2ODUiLCBcCi0gICAgICAgICAgIjAuMTQ2MzExLCAwLjE2MDMyMiwgMC4yODY2MjcsIDAuNDk4NTQ3LCAwLjcxMDMxMSwgMS4yMDQyNywgMS40ODU2MiIsIFwKLSAgICAgICAgICAiMC4xNjMzMDcsIDAuMTc3ODYyLCAwLjMwMzkxMiwgMC41MTYwOCwgMC43Mjc1MzksIDEuMjIwNDgsIDEuNTA0MDQiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTU0OTU3LCAwLjE4NDIxMywgMC40NDUxNDksIDAuODgxMDQyLCAxLjMxNDQ0LCAyLjMyODY5LCAyLjkwODgxIiwgXAotICAgICAgICAgICIwLjE1NTE2MywgMC4xODQyMTIsIDAuNDQ1NDQ0LCAwLjg4MDIzNywgMS4zMTYyNiwgMi4zMzAwNiwgMi45MjE1IiwgXAotICAgICAgICAgICIwLjE1Njc0OSwgMC4xODQ3MTMsIDAuNDQ0ODE2LCAwLjg3OTU3MywgMS4zMTUyLCAyLjMyODk5LCAyLjkwODYyIiwgXAotICAgICAgICAgICIwLjE2MTA5MywgMC4xODg2MDQsIDAuNDQ0ODIsIDAuODc5NTk3LCAxLjMxNDE2LCAyLjMyOTk2LCAyLjkwODc4IiwgXAotICAgICAgICAgICIwLjE2NjUyOSwgMC4xOTM1MDEsIDAuNDQ1ODczLCAwLjg4MDc4MiwgMS4zMTQ0NCwgMi4zMzIzNSwgMi45MDg3MSIsIFwKLSAgICAgICAgICAiMC4xNzgwNTcsIDAuMjAzNjEyLCAwLjQ0OTk2LCAwLjg4MTE3NCwgMS4zMTYxOSwgMi4zMjk5NiwgMi45MDgwOSIsIFwKLSAgICAgICAgICAiMC4xODkzMDgsIDAuMjE0MDgxLCAwLjQ1NTIzMSwgMC44ODAzMjIsIDEuMzE2NzgsIDIuMzI4OSwgMi45MDk5NCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNDAzNDIsIDAuMTY1NzQ0LCAwLjM5NDUzNywgMC43NzU4MzUsIDEuMTU3MTcsIDIuMDQ2NzYsIDIuNTU1OTciLCBcCi0gICAgICAgICAgIjAuMTQ5NjI1LCAwLjE3NTA0NiwgMC40MDQxNzgsIDAuNzg1NDUsIDEuMTY3NDQsIDIuMDU4MDEsIDIuNTY1NDMiLCBcCi0gICAgICAgICAgIjAuMTYxMDM4LCAwLjE4NjQ4NiwgMC40MTU2NDgsIDAuNzk3MzUyLCAxLjE3ODQ2LCAyLjA2ODQ1LCAyLjU3NzA0IiwgXAotICAgICAgICAgICIwLjE3MjYyNiwgMC4xOTgxMDUsIDAuNDI3MzE3LCAwLjgwODQ2NSwgMS4xOTAwNywgMi4wNzk0LCAyLjU4ODYzIiwgXAotICAgICAgICAgICIwLjE4NDI4NCwgMC4yMDk3MzksIDAuNDM4NzE3LCAwLjgyMDE0NSwgMS4yMDE1LCAyLjA5MjA1LCAyLjYwMDU1IiwgXAotICAgICAgICAgICIwLjIwMzE1OCwgMC4yMjg0NjQsIDAuNDU0OTk3LCAwLjgzOTE0MywgMS4yMjAxNCwgMi4xMTE4LCAyLjYxODk2IiwgXAotICAgICAgICAgICIwLjIyMDE5NiwgMC4yNDUxMzMsIDAuNDczNzQsIDAuODU1MzA5LCAxLjIzNjc2LCAyLjEyNjA5LCAyLjYzNTIyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI3MDIwOCwgMC4zMTk4MzcsIDAuNzcyMjU0LCAxLjUyNjIsIDIuMjc2ODMsIDQuMDQxNDQsIDUuMDM3MTYiLCBcCi0gICAgICAgICAgIjAuMjY4Nzc5LCAwLjMxOTg2NywgMC43NzAwMiwgMS41MzI2MSwgMi4yNzM5MiwgNC4wMzA2NywgNS4wMzI2MyIsIFwKLSAgICAgICAgICAiMC4yNjk0OTYsIDAuMzE5ODE3LCAwLjc3MTMzNywgMS41MjE5NiwgMi4yOTAzNCwgNC4wMjk2OSwgNS4wMzQwNCIsIFwKLSAgICAgICAgICAiMC4yNzA2NzYsIDAuMzIxMDE5LCAwLjc3MDA1NiwgMS41MzEyNiwgMi4yNzY2NCwgNC4wMzk4OCwgNS4wMzgxOCIsIFwKLSAgICAgICAgICAiMC4yNzM3MDgsIDAuMzIyMzIsIDAuNzcyMzIzLCAxLjUzMTk0LCAyLjI4MDQ1LCA0LjAzMzEyLCA1LjAzMzQzIiwgXAotICAgICAgICAgICIwLjI4MTQwOSwgMC4zMjg1MywgMC43NzAyMzgsIDEuNTIyMjQsIDIuMjg4MTEsIDQuMDMxMDIsIDUuMDQyODciLCBcCi0gICAgICAgICAgIjAuMjg5MDc2LCAwLjMzNTkxMywgMC43NzMxNzQsIDEuNTI0MDYsIDIuMjgxMjcsIDQuMDM5NzYsIDUuMDM3MTQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxMjIxLCAwLjAwMTIyMSwgMC4wMDEyMjEsIDAuMDAxMjIxLCAwLjAwMTIyMSwgMC4wMDEyMjEsIDAuMDAxMjIiLCBcCi0gICAgICAgICAgIjAuMDAxMTk1LCAwLjAwMTE5NSwgMC4wMDExOTUsIDAuMDAxMTk1LCAwLjAwMTE5NiwgMC4wMDExOTUsIDAuMDAxMTk1IiwgXAotICAgICAgICAgICIwLjAwMTIsIDAuMDAxMjAxLCAwLjAwMTIwMiwgMC4wMDEyMDIsIDAuMDAxMjAyLCAwLjAwMTIwMiwgMC4wMDEyMDIiLCBcCi0gICAgICAgICAgIjAuMDAxMjA0LCAwLjAwMTIwNCwgMC4wMDEyMDYsIDAuMDAxMjA2LCAwLjAwMTIwNiwgMC4wMDEyMDYsIDAuMDAxMjA2IiwgXAotICAgICAgICAgICIwLjAwMTIxOCwgMC4wMDEyMTgsIDAuMDAxMjIxLCAwLjAwMTIyMSwgMC4wMDEyMjEsIDAuMDAxMjIyLCAwLjAwMTIyMSIsIFwKLSAgICAgICAgICAiMC4wMDEyNDUsIDAuMDAxMjQ2LCAwLjAwMTI0OCwgMC4wMDEyNDksIDAuMDAxMjQ5LCAwLjAwMTI0OSwgMC4wMDEyNDkiLCBcCi0gICAgICAgICAgIjAuMDAxMjcsIDAuMDAxMjcxLCAwLjAwMTI3LCAwLjAwMTI3NCwgMC4wMDEyNzEsIDAuMDAxMjc0LCAwLjAwMTI3NCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTc1MiwgMC4wMDE3NTIsIDAuMDAxNzUzLCAwLjAwMTc1NCwgMC4wMDE3NTQsIDAuMDAxNzU0LCAwLjAwMTc1NCIsIFwKLSAgICAgICAgICAiMC4wMDE3MzEsIDAuMDAxNzMxLCAwLjAwMTczNCwgMC4wMDE3MzQsIDAuMDAxNzM1LCAwLjAwMTczNSwgMC4wMDE3MzUiLCBcCi0gICAgICAgICAgIjAuMDAxNzMsIDAuMDAxNzMxLCAwLjAwMTczNCwgMC4wMDE3MzYsIDAuMDAxNzM2LCAwLjAwMTczNywgMC4wMDE3MzciLCBcCi0gICAgICAgICAgIjAuMDAxNzM4LCAwLjAwMTc0LCAwLjAwMTc0NCwgMC4wMDE3NDYsIDAuMDAxNzQ2LCAwLjAwMTc0NywgMC4wMDE3NDciLCBcCi0gICAgICAgICAgIjAuMDAxNzQ4LCAwLjAwMTc0OSwgMC4wMDE3NTYsIDAuMDAxNzU4LCAwLjAwMTc1NywgMC4wMDE3NiwgMC4wMDE3NiIsIFwKLSAgICAgICAgICAiMC4wMDE3NzQsIDAuMDAxNzc1LCAwLjAwMTc4MiwgMC4wMDE3ODQsIDAuMDAxNzg1LCAwLjAwMTc4NSwgMC4wMDE3ODYiLCBcCi0gICAgICAgICAgIjAuMDAxNzk1LCAwLjAwMTgsIDAuMDAxODAzLCAwLjAwMTgxLCAwLjAwMTgwNywgMC4wMDE4MTEsIDAuMDAxODEyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwODgxLCAwLjAwMDg4MSwgMC4wMDA4ODIsIDAuMDAwODgzLCAwLjAwMDg4MywgMC4wMDA4ODMsIDAuMDAwODgzIiwgXAotICAgICAgICAgICIwLjAwMDg3OCwgMC4wMDA4NzgsIDAuMDAwODgzLCAwLjAwMDg4NCwgMC4wMDA4ODUsIDAuMDAwODg0LCAwLjAwMDg4NSIsIFwKLSAgICAgICAgICAiMC4wMDA4NzIsIDAuMDAwODc0LCAwLjAwMDg4MSwgMC4wMDA4ODQsIDAuMDAwODg1LCAwLjAwMDg4NiwgMC4wMDA4ODYiLCBcCi0gICAgICAgICAgIjAuMDAwODY5LCAwLjAwMDg3MSwgMC4wMDA4NzksIDAuMDAwODgzLCAwLjAwMDg4NCwgMC4wMDA4ODUsIDAuMDAwODg1IiwgXAotICAgICAgICAgICIwLjAwMDg2OSwgMC4wMDA4NywgMC4wMDA4NzgsIDAuMDAwODgyLCAwLjAwMDg4MywgMC4wMDA4ODUsIDAuMDAwODg1IiwgXAotICAgICAgICAgICIwLjAwMDg3MSwgMC4wMDA4NzMsIDAuMDAwODc4LCAwLjAwMDg4MiwgMC4wMDA4ODMsIDAuMDAwODg1LCAwLjAwMDg4NSIsIFwKLSAgICAgICAgICAiMC4wMDA4NzYsIDAuMDAwODc2LCAwLjAwMDg3OCwgMC4wMDA4ODIsIDAuMDAwODgzLCAwLjAwMDg4NSwgMC4wMDA4ODUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDAyNjEsIDAuMDAwMjYxLCAwLjAwMDI2MywgMC4wMDAyNjMsIDAuMDAwMjYzLCAwLjAwMDI2NCwgMC4wMDAyNjQiLCBcCi0gICAgICAgICAgIjAuMDAwMjUxLCAwLjAwMDI1MywgMC4wMDAyNTksIDAuMDAwMjYxLCAwLjAwMDI2MiwgMC4wMDAyNjMsIDAuMDAwMjYzIiwgXAotICAgICAgICAgICIwLjAwMDI0NCwgMC4wMDAyNDYsIDAuMDAwMjU1LCAwLjAwMDI1OSwgMC4wMDAyNjEsIDAuMDAwMjYyLCAwLjAwMDI2MiIsIFwKLSAgICAgICAgICAiMC4wMDAyMzksIDAuMDAwMjQyLCAwLjAwMDI1MywgMC4wMDAyNTgsIDAuMDAwMjYsIDAuMDAwMjYxLCAwLjAwMDI2MiIsIFwKLSAgICAgICAgICAiMC4wMDAyMzcsIDAuMDAwMjQsIDAuMDAwMjUxLCAwLjAwMDI1NywgMC4wMDAyNTksIDAuMDAwMjYxLCAwLjAwMDI2MSIsIFwKLSAgICAgICAgICAiMC4wMDAyMzksIDAuMDAwMjQsIDAuMDAwMjQ4LCAwLjAwMDI1NSwgMC4wMDAyNTgsIDAuMDAwMjYsIDAuMDAwMjYxIiwgXAotICAgICAgICAgICIwLjAwMDI0NiwgMC4wMDAyNDQsIDAuMDAwMjUsIDAuMDAwMjU1LCAwLjAwMDI1NywgMC4wMDAyNiwgMC4wMDAyNjEiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBOQU5EMlg2ICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKE5BTkQyWDYpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC40NDUwNDI7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwNTAyMjk5OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwNTAyMjk5OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwNTAxMDA2OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjQ1NSwgMC4wMDI0NTMsIDAuMDAyNDUzLCAwLjAwMjQ1MSwgMC4wMDI0NTIsIDAuMDAyNDUxLCAwLjAwMjQ1MSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjUyMywgMC4wMDI0NjksIDAuMDAyNDY2LCAwLjAwMjQ2MSwgMC4wMDI0NjEsIDAuMDAyNDYxLCAwLjAwMjQ2MSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDA0ODEwNjg7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDA0ODA3MTE7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDA0ODEwNjg7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxNDgyLCAwLjAwMTQ3OSwgMC4wMDE0NzcsIDAuMDAxNDc4LCAwLjAwMTQ3NywgMC4wMDE0NzgsIDAuMDAxNDc3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyNzgzLCAwLjAwMjc4NSwgMC4wMDI3ODQsIDAuMDAyNzg4LCAwLjAwMjc4NywgMC4wMDI3ODcsIDAuMDAyNzg3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuODM0NTcyOwotICAgIGZ1bmN0aW9uIDogIighKEEgQikpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxNTcyMywgMC4wNjQzMSwgMC4xMTI3MjcsIDAuMTQ3MjY4LCAwLjIwMjQ5LCAwLjI1MDk2OSwgMC4zMTk5ODIiLCBcCi0gICAgICAgICAgIjAuMDI1NzA0LCAwLjA3NDE4MywgMC4xMjI0LCAwLjE1Njk2LCAwLjIxMjM2NiwgMC4yNjA1ODMsIDAuMzI5Njc4IiwgXAotICAgICAgICAgICIwLjAzNjExLCAwLjA4NjUzNCwgMC4xMzUwMzksIDAuMTY5NTE1LCAwLjIyNDczMSwgMC4yNzMxNSwgMC4zNDIxOSIsIFwKLSAgICAgICAgICAiMC4wNDQxOTYsIDAuMDk5NTA3LCAwLjE0NzQ5NCwgMC4xODIwMjIsIDAuMjM3NDM1LCAwLjI4NTgsIDAuMzUzOTk5IiwgXAotICAgICAgICAgICIwLjA1MDcwOCwgMC4xMTIxMjcsIDAuMTU5ODYxLCAwLjE5NDQwOCwgMC4yNDk4NjMsIDAuMjk4MTM0LCAwLjM2NzE3NSIsIFwKLSAgICAgICAgICAiMC4wNjAzMTYsIDAuMTMyMjE0LCAwLjE4MDYyMywgMC4yMTUwNjIsIDAuMjY5NzA3LCAwLjMxODA2NiwgMC4zODczODEiLCBcCi0gICAgICAgICAgIjAuMDY2ODY5LCAwLjE0ODA5MywgMC4xOTg1NTEsIDAuMjMyODkyLCAwLjI4NzIwNiwgMC4zMzU0OTQsIDAuNDA0NjM3Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDI0MDc3LCAwLjEyMzY1NywgMC4yMjMzMzIsIDAuMjk0NDk5LCAwLjQwODEyNSwgMC41MDc5MjksIDAuNjUwMDM0IiwgXAotICAgICAgICAgICIwLjAyNzkwMywgMC4xMjM2NjEsIDAuMjIzMzAyLCAwLjI5NDMyMywgMC40MDgzMjEsIDAuNTA3NTMxLCAwLjY0OTk2NiIsIFwKLSAgICAgICAgICAiMC4wMzcxMTEsIDAuMTI2MzY0LCAwLjIyMzQ0MSwgMC4yOTQzNDUsIDAuNDA4Mjg2LCAwLjUwNzc4NSwgMC42NTAwMDEiLCBcCi0gICAgICAgICAgIjAuMDQ1ODE3LCAwLjEzMTQyMywgMC4yMjU4MzcsIDAuMjk1MjczLCAwLjQwODE1NywgMC41MDc4MzksIDAuNjUwMTkxIiwgXAotICAgICAgICAgICIwLjA1NDI1NiwgMC4xMzgyNjUsIDAuMjMwMjExLCAwLjI5ODAzNSwgMC40MDkwMjQsIDAuNTA3Nzk2LCAwLjY1MDIxMiIsIFwKLSAgICAgICAgICAiMC4wNjQ1NjMsIDAuMTUwNjU2LCAwLjIzODkwNCwgMC4zMDQ5MzUsIDAuNDEzNTIsIDAuNTEwMTgxLCAwLjY1MDQxIiwgXAotICAgICAgICAgICIwLjA3NDEwNSwgMC4xNjI5MjYsIDAuMjQ4MjUxLCAwLjMxMjc2NSwgMC40MTk0MTgsIDAuNTE0Njc5LCAwLjY1Mjc5MSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyNzY0OCwgMC4xMjA0NTUsIDAuMjEzMDc3LCAwLjI3OTMzOSwgMC4zODQ5NjksIDAuNDc3ODc5LCAwLjYwOTg2MiIsIFwKLSAgICAgICAgICAiMC4wMzYzMDksIDAuMTI5NDI2LCAwLjIyMjE3LCAwLjI4ODM1NCwgMC4zOTQwNzksIDAuNDg2NjA4LCAwLjYxODcxMiIsIFwKLSAgICAgICAgICAiMC4wNDY5NzcsIDAuMTQwMzI1LCAwLjIzMzI2MiwgMC4yOTkzNzIsIDAuNDA1MTU3LCAwLjQ5NzY4OCwgMC42MzAyMzEiLCBcCi0gICAgICAgICAgIjAuMDU2MjQ0LCAwLjE1MTQyNiwgMC4yNDQyNjEsIDAuMzEwNDI1LCAwLjQxNjM4OSwgMC41MDg5NzMsIDAuNjQxMjUzIiwgXAotICAgICAgICAgICIwLjA2NDMzMiwgMC4xNjIzMTgsIDAuMjU1MjU0LCAwLjMyMTEyOCwgMC40Mjc2MjgsIDAuNTIwMDU3LCAwLjY1MjQ5MyIsIFwKLSAgICAgICAgICAiMC4wNzU1NDIsIDAuMTgwMTQ0LCAwLjI3MjU4MywgMC4zMzg5NzcsIDAuNDQ0NzA2LCAwLjUzNzU1MSwgMC42Njk5NDUiLCBcCi0gICAgICAgICAgIjAuMDg0MTczLCAwLjE5NTE3NCwgMC4yODc5NDEsIDAuMzU0Mjg1LCAwLjQ2MDQ2OCwgMC41NTI3NTUsIDAuNjg1NDkyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQxNywgMC4yMjQ4MDIsIDAuNDA3OTcyLCAwLjUzODkwMywgMC43NTI5MiwgMC45MzE2MTcsIDEuMTkzMTIiLCBcCi0gICAgICAgICAgIjAuMDQyNTQ1LCAwLjIyNTM1OCwgMC40MDgwMjYsIDAuNTM4ODU4LCAwLjc1MjIxOSwgMC45MzY1NTYsIDEuMTk2MTkiLCBcCi0gICAgICAgICAgIjAuMDQ2NzkzLCAwLjIyNDg0OCwgMC40MDc5NDcsIDAuNTQwMjA0LCAwLjc1MjQ3MywgMC45MzM5NDUsIDEuMTkzNDkiLCBcCi0gICAgICAgICAgIjAuMDUzMDg2LCAwLjIyNjM3MywgMC40MTAyNDQsIDAuNTQwMTUzLCAwLjc0ODE4LCAwLjkzNjk2NSwgMS4yMDAyNiIsIFwKLSAgICAgICAgICAiMC4wNTk3MjEsIDAuMjI4OTM3LCAwLjQwODc5MywgMC41NDAxMTMsIDAuNzQ4MTc2LCAwLjkzMzkzMiwgMS4xOTMxMiIsIFwKLSAgICAgICAgICAiMC4wNzAxOTMsIDAuMjM1MTExLCAwLjQxMjA0NiwgMC41NDE0NzMsIDAuNzQ4MjQxLCAwLjkzMzg5NiwgMS4xOTYzNCIsIFwKLSAgICAgICAgICAiMC4wNzg4MzcsIDAuMjQxMTU3LCAwLjQxNTYwMSwgMC41NDI3MzgsIDAuNzUxMTMzLCAwLjkzMTA2OCwgMS4xOTU5MiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxNDUsIDAuMDYzMzkyLCAwLjExMjI3NywgMC4xNDcwNzcsIDAuMjAyODk4LCAwLjI1MTcwOSwgMC4zMjE1MjUiLCBcCi0gICAgICAgICAgIjAuMDI0NDIsIDAuMDczMzAyLCAwLjEyMjE3MiwgMC4xNTcwMjYsIDAuMjEyOTYyLCAwLjI2MTU5NiwgMC4zMzE0OTkiLCBcCi0gICAgICAgICAgIjAuMDM0MDI5LCAwLjA4NTY1MSwgMC4xMzQ1MTQsIDAuMTY5NDMsIDAuMjI1MTUyLCAwLjI3NDA5MywgMC4zNDMwNSIsIFwKLSAgICAgICAgICAiMC4wNDE3NTgsIDAuMDk4NjEsIDAuMTQ3NDIzLCAwLjE4MjI4MywgMC4yMzgxOTEsIDAuMjg3MDQsIDAuMzU2NTYyIiwgXAotICAgICAgICAgICIwLjA0NzkyMywgMC4xMTEwODYsIDAuMTU5MzQ1LCAwLjE5NDIwNSwgMC4yNTAyMDMsIDAuMjk4OTQ1LCAwLjM2ODY4NyIsIFwKLSAgICAgICAgICAiMC4wNTYzNDQsIDAuMTMxMDk1LCAwLjE4MDA3MSwgMC4yMTQ4NDUsIDAuMjY5OTg3LCAwLjMxODg4MSwgMC4zODg4MzYiLCBcCi0gICAgICAgICAgIjAuMDYyMDE1LCAwLjE0NjgzOCwgMC4xOTc5NzgsIDAuMjMyNjQ3LCAwLjI4NzUxMSwgMC4zMzYyODgsIDAuNDA2MDY4Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDIyNjA4LCAwLjEyMzEyMiwgMC4yMjM3MjMsIDAuMjk2MDAyLCAwLjQxMDU2MywgMC41MTE1MTksIDAuNjU0ODkiLCBcCi0gICAgICAgICAgIjAuMDI2NzYyLCAwLjEyMzEzMywgMC4yMjM3NCwgMC4yOTYwMjYsIDAuNDEwNzI0LCAwLjUxMTA1OCwgMC42NTQ4NzQiLCBcCi0gICAgICAgICAgIjAuMDM2MzM0LCAwLjEyNjAyLCAwLjIyMzkzNiwgMC4yOTU3OTIsIDAuNDEwNDgyLCAwLjUxMTE3OCwgMC42NTQ4NyIsIFwKLSAgICAgICAgICAiMC4wNDQ3MTUsIDAuMTMxMDgyLCAwLjIyNjYxOCwgMC4yOTY4ODMsIDAuNDEwNTg0LCAwLjUxMTE4NiwgMC42NTU3NyIsIFwKLSAgICAgICAgICAiMC4wNTI5NTIsIDAuMTM3ODIyLCAwLjIzMDkzNywgMC4yOTk4LCAwLjQxMjE2NiwgMC41MTIyMDEsIDAuNjU0ODYxIiwgXAotICAgICAgICAgICIwLjA2NDIyMiwgMC4xNTAzODQsIDAuMjM5NTYyLCAwLjMwNjQ0NiwgMC40MTY1MjksIDAuNTEzNTg5LCAwLjY1NTA5MiIsIFwKLSAgICAgICAgICAiMC4wNzM1MTgsIDAuMTYyNzA5LCAwLjI0ODg1NywgMC4zMTQyMzIsIDAuNDIyNDk2LCAwLjUxODA5MiwgMC42NTc2MTQiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjUyMzYsIDAuMTE4MDUyLCAwLjIxMDY3NiwgMC4yNzcsIDAuMzgyNjIyLCAwLjQ3NTUzOCwgMC42MDc1MTIiLCBcCi0gICAgICAgICAgIjAuMDM0MTg2LCAwLjEyNzI1NSwgMC4yMTk5MDUsIDAuMjg2MTAzLCAwLjM5MTkwNiwgMC40ODQ0NjEsIDAuNjE2NjgiLCBcCi0gICAgICAgICAgIjAuMDQ1Nzg0LCAwLjEzODc2MywgMC4yMzE1NzQsIDAuMjk3NjY3LCAwLjQwMzU2OCwgMC40OTYwNjYsIDAuNjI4MzgzIiwgXAotICAgICAgICAgICIwLjA1NTY2NCwgMC4xNTA4NiwgMC4yNDM2NDUsIDAuMzA5ODIyLCAwLjQxNTY2NiwgMC41MDgzMDEsIDAuNjQwMzQ1IiwgXAotICAgICAgICAgICIwLjA2MzY4MiwgMC4xNjIyMzcsIDAuMjU0OTMzLCAwLjMxOTMzNCwgMC40MjcyMjMsIDAuNTE5NTY5LCAwLjY1MTc4OCIsIFwKLSAgICAgICAgICAiMC4wNzQ1MzQsIDAuMTgxNTM4LCAwLjI3MzU2NCwgMC4zMzk2ODIsIDAuNDQzMTAxLCAwLjUzODE1MywgMC42NzA1NDUiLCBcCi0gICAgICAgICAgIjAuMDgzOTI2LCAwLjE5ODQ1OSwgMC4yOTAwNTcsIDAuMzU2MjI0LCAwLjQ2MjAxOCwgMC41NTM5MjYsIDAuNjg2OTMxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQxNjQ0LCAwLjIyNTkyMiwgMC40MDgyNzcsIDAuNTM4OTM4LCAwLjc1MDQ3OSwgMC45MzE2MzYsIDEuMTkzMTMiLCBcCi0gICAgICAgICAgIjAuMDQzNTE3LCAwLjIyNDc3LCAwLjQwODkyOSwgMC41NDA0NTQsIDAuNzUwNDI4LCAwLjkzNjI3NSwgMS4xOTI5NyIsIFwKLSAgICAgICAgICAiMC4wNTA1ODUsIDAuMjI1NDcsIDAuNDA4MDA0LCAwLjU0MTYwMiwgMC43NDgwOTUsIDAuOTMzOTcyLCAxLjE5OTU1IiwgXAotICAgICAgICAgICIwLjA1OTM0MiwgMC4yMjc1NDMsIDAuNDA3OTAxLCAwLjUzODgzNCwgMC43NDgyNzYsIDAuOTMxNDI0LCAxLjE5NjM0IiwgXAotICAgICAgICAgICIwLjA2ODg0MSwgMC4yMzA5NDgsIDAuNDEwODk4LCAwLjUzOTIxNSwgMC43NDgwMjgsIDAuOTMzNTk1LCAxLjE5NjM1IiwgXAotICAgICAgICAgICIwLjA4MTg2OCwgMC4yMzk5MTgsIDAuNDEzMTc3LCAwLjU0MTgyMiwgMC43NDgwMzYsIDAuOTMzOTIyLCAxLjE5NDQiLCBcCi0gICAgICAgICAgIjAuMDkxMjgsIDAuMjQ4NDEyLCAwLjQxOTMzNiwgMC41NDU0NzksIDAuNzUxMjMsIDAuOTMxODQ2LCAxLjIwMDI2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTA1ODUsIDAuMDEwNjIzLCAwLjAxMDYyOSwgMC4wMTA2MjgsIDAuMDEwNjI5LCAwLjAxMDYzMSwgMC4wMTA2MjkiLCBcCi0gICAgICAgICAgIjAuMDEwMzk5LCAwLjAxMDU0MywgMC4wMTA1NjQsIDAuMDEwNTczLCAwLjAxMDU3OCwgMC4wMTA1NzUsIDAuMDEwNTg1IiwgXAotICAgICAgICAgICIwLjAxMDM5OCwgMC4wMTA1MTQsIDAuMDEwNTQ5LCAwLjAxMDU1OSwgMC4wMTA1NzIsIDAuMDEwNTc0LCAwLjAxMDU3OSIsIFwKLSAgICAgICAgICAiMC4wMTA0MDksIDAuMDEwNDk2LCAwLjAxMDUyNiwgMC4wMTA1NCwgMC4wMTA1NDQsIDAuMDEwNTY1LCAwLjAxMDU2NCIsIFwKLSAgICAgICAgICAiMC4wMTA1MjYsIDAuMDEwNTE1LCAwLjAxMDUzNSwgMC4wMTA1NDcsIDAuMDEwNTYzLCAwLjAxMDU3LCAwLjAxMDU3MSIsIFwKLSAgICAgICAgICAiMC4wMTA1ODQsIDAuMDEwNTU2LCAwLjAxMDU2LCAwLjAxMDU2MywgMC4wMTA1NTYsIDAuMDEwNTY2LCAwLjAxMDU3NiIsIFwKLSAgICAgICAgICAiMC4wMTA3MjcsIDAuMDEwNjE2LCAwLjAxMDU5NiwgMC4wMTA1OSwgMC4wMTA1NzYsIDAuMDEwNTc4LCAwLjAxMDU3OSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxMjg4LCAwLjAwMTQwNSwgMC4wMDE0MTksIDAuMDAxNDIzLCAwLjAwMTQyNywgMC4wMDE0MjgsIDAuMDAxNDMiLCBcCi0gICAgICAgICAgIjAuMDAwOTgyLCAwLjAwMTI5NCwgMC4wMDEzNTMsIDAuMDAxMzcyLCAwLjAwMTM5LCAwLjAwMTM5OSwgMC4wMDE0MDciLCBcCi0gICAgICAgICAgIjAuMDAwODQ2LCAwLjAwMTE4NCwgMC4wMDEyODEsIDAuMDAxMzE0LCAwLjAwMTM0NiwgMC4wMDEzNjMsIDAuMDAxMzc4IiwgXAotICAgICAgICAgICIwLjAwMDgwMSwgMC4wMDExMDksIDAuMDAxMjIyLCAwLjAwMTI2NSwgMC4wMDEzMDcsIDAuMDAxMzMsIDAuMDAxMzUyIiwgXAotICAgICAgICAgICIwLjAwMDc5LCAwLjAwMTA1NiwgMC4wMDExNzcsIDAuMDAxMjI3LCAwLjAwMTI3NSwgMC4wMDEzMDMsIDAuMDAxMzI5IiwgXAotICAgICAgICAgICIwLjAwMDgyMywgMC4wMDEwMDIsIDAuMDAxMTE4LCAwLjAwMTE3MSwgMC4wMDEyMjksIDAuMDAxMjYxLCAwLjAwMTI5NCIsIFwKLSAgICAgICAgICAiMC4wMDA4ODEsIDAuMDAwOTg0LCAwLjAwMTA4OCwgMC4wMDExNCwgMC4wMDExOTksIDAuMDAxMjMyLCAwLjAwMTI3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDgyMTMsIDAuMDA4MzE1LCAwLjAwODMyNSwgMC4wMDgzMjksIDAuMDA4MzMyLCAwLjAwODMzLCAwLjAwODMzNCIsIFwKLSAgICAgICAgICAiMC4wMDc5NywgMC4wMDgyNTksIDAuMDA4MzA4LCAwLjAwODMyMSwgMC4wMDgzMzUsIDAuMDA4MzQsIDAuMDA4MzQ3IiwgXAotICAgICAgICAgICIwLjAwNzkwOSwgMC4wMDgxOTUsIDAuMDA4MjY3LCAwLjAwODI5MSwgMC4wMDgzMTQsIDAuMDA4MzI0LCAwLjAwODM0IiwgXAotICAgICAgICAgICIwLjAwNzkyNSwgMC4wMDgxNTIsIDAuMDA4MjI4LCAwLjAwODI2NSwgMC4wMDgyOTIsIDAuMDA4MzA3LCAwLjAwODMyMSIsIFwKLSAgICAgICAgICAiMC4wMDc5NTksIDAuMDA4MTYxLCAwLjAwODIyLCAwLjAwODI1LCAwLjAwODI4OCwgMC4wMDgzMDYsIDAuMDA4MzE4IiwgXAotICAgICAgICAgICIwLjAwODExMiwgMC4wMDgxNjcsIDAuMDA4MjIsIDAuMDA4MjQ3LCAwLjAwODI2OSwgMC4wMDgyOTEsIDAuMDA4MzEiLCBcCi0gICAgICAgICAgIjAuMDA4MjksIDAuMDA4MjA2LCAwLjAwODI0LCAwLjAwODI2MywgMC4wMDgyNywgMC4wMDgyNzcsIDAuMDA4MzAxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDEyNTgsIDAuMDAxNDA0LCAwLjAwMTQyMSwgMC4wMDE0MjYsIDAuMDAxNDMxLCAwLjAwMTQzNCwgMC4wMDE0MzYiLCBcCi0gICAgICAgICAgIjAuMDAwOTMxLCAwLjAwMTI3NiwgMC4wMDEzNDUsIDAuMDAxMzY4LCAwLjAwMTM4OCwgMC4wMDEzOTksIDAuMDAxNDA4IiwgXAotICAgICAgICAgICIwLjAwMDg3NywgMC4wMDExNzMsIDAuMDAxMjczLCAwLjAwMTMwOSwgMC4wMDEzNDMsIDAuMDAxMzYxLCAwLjAwMTM3OCIsIFwKLSAgICAgICAgICAiMC4wMDA5NDYsIDAuMDAxMTM1LCAwLjAwMTIzOCwgMC4wMDEyNzYsIDAuMDAxMzE2LCAwLjAwMTMzOCwgMC4wMDEzNTkiLCBcCi0gICAgICAgICAgIjAuMDAxMDcsIDAuMDAxMDgyLCAwLjAwMTE4NiwgMC4wMDEyMjYsIDAuMDAxMjc5LCAwLjAwMTMwNiwgMC4wMDEzMzMiLCBcCi0gICAgICAgICAgIjAuMDAxMjk5LCAwLjAwMTExNCwgMC4wMDExNzMsIDAuMDAxMjEzLCAwLjAwMTI0OSwgMC4wMDEyODYsIDAuMDAxMzE0IiwgXAotICAgICAgICAgICIwLjAwMTM2MiwgMC4wMDExNjUsIDAuMDAxMTc5LCAwLjAwMTIxMSwgMC4wMDEyNSwgMC4wMDEyNzQsIDAuMDAxMzA0Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IE5BTkQzQlg0ICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChOQU5EM0JYNCkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjQ4ODUyMTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQU4pICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDkyNjI4MTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA5MjU4NTc7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwOTI2MjgxOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTYxOSwgMC4wMDE1NzUsIDAuMDAxNTcxLCAwLjAwMTU2MywgMC4wMDE1NzMsIDAuMDAxNTk4LCAwLjAwMTYzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA0MjkzLCAwLjAwNDI1OCwgMC4wMDQyNDYsIDAuMDA0MjUsIDAuMDA0MjU5LCAwLjAwNDI4OSwgMC4wMDQzMTgiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMzU1MjExOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMzU1MjExOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMzU0Mzg0OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTYzNywgMC4wMDE2MzYsIDAuMDAxNjM1LCAwLjAwMTYzNSwgMC4wMDE2MzUsIDAuMDAxNjM0LCAwLjAwMTYzNCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTcxMywgMC4wMDE2NDcsIDAuMDAxNjQ1LCAwLjAwMTY0NCwgMC4wMDE2NDEsIDAuMDAxNjQxLCAwLjAwMTY0Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihDKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDMyNjk4OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMzI2ODEzOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMzI2OTg7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwOTM2LCAwLjAwMDkzNSwgMC4wMDA5MzUsIDAuMDAwOTM0LCAwLjAwMDkzNCwgMC4wMDA5MzMsIDAuMDAwOTMzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxODU2LCAwLjAwMTg1OCwgMC4wMDE4NTcsIDAuMDAxODYsIDAuMDAxODYsIDAuMDAxODU5LCAwLjAwMTg1OSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjM5NDYwNjsKLSAgICBmdW5jdGlvbiA6ICIoISgoKCFBTikgQikgQykpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTEzNDEsIDAuMTI0NzI5LCAwLjE5Njk3NCwgMC4yNDg1NCwgMC4zMzEwOTcsIDAuNDAzMjY2LCAwLjUwNjQ4MSIsIFwKLSAgICAgICAgICAiMC4wNjE2MTIsIDAuMTM0OTY3LCAwLjIwNzI3OSwgMC4yNTg4NTEsIDAuMzQxMzM3LCAwLjQxMzYyNywgMC41MTY2NjgiLCBcCi0gICAgICAgICAgIjAuMDc0NDEzLCAwLjE0NzY3NCwgMC4yMTk5ODIsIDAuMjcxNTY3LCAwLjM1NDEyMSwgMC40MjYxNzEsIDAuNTI5MzA0IiwgXAotICAgICAgICAgICIwLjA4NjE5MywgMC4xNTk1NTMsIDAuMjMxODQsIDAuMjgzMzkxLCAwLjM2NTg4OCwgMC40MzgxMTQsIDAuNTQxMzgiLCBcCi0gICAgICAgICAgIjAuMDk2NzA3LCAwLjE3MDIwOCwgMC4yNDI0NiwgMC4yOTQwMzYsIDAuMzc2NDk2LCAwLjQ0ODY5OSwgMC41NTE4MzUiLCBcCi0gICAgICAgICAgIjAuMTExMjk2LCAwLjE4NTAzNywgMC4yNTcyNDYsIDAuMzA4NzgxLCAwLjM5MTMwMywgMC40NjM0NTQsIDAuNTY2NTEiLCBcCi0gICAgICAgICAgIjAuMTIyNDk2LCAwLjE5NjUzNSwgMC4yNjg2ODcsIDAuMzIwMjY3LCAwLjQwMjcyMiwgMC40NzQ4NDYsIDAuNTc4MDA0Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQxMDg5LCAwLjE4NjQzMywgMC4zMzQ1NjYsIDAuNDQwODA2LCAwLjYxMDQsIDAuNzU5MTg0LCAwLjk3MTE5NCIsIFwKLSAgICAgICAgICAiMC4wNDEwODMsIDAuMTg2NTE1LCAwLjMzNDYsIDAuNDQwNzQ0LCAwLjYxMDM5NiwgMC43NTkwMSwgMC45NzEwNjkiLCBcCi0gICAgICAgICAgIjAuMDQxMjUzLCAwLjE4NjUzOSwgMC4zMzQ1NzYsIDAuNDQwNjk3LCAwLjYxMDM4OCwgMC43NTkxMywgMC45NzEwNTciLCBcCi0gICAgICAgICAgIjAuMDQyMDgzLCAwLjE4NjY4MywgMC4zMzQ2NjgsIDAuNDQwNjQsIDAuNjEwMzYsIDAuNzU4ODg4LCAwLjk3MTM5MiIsIFwKLSAgICAgICAgICAiMC4wNDMzMTksIDAuMTg2Nzc1LCAwLjMzNDgzOCwgMC40NDA2NjUsIDAuNjEwNTUsIDAuNzU4ODU2LCAwLjk3MTEwMiIsIFwKLSAgICAgICAgICAiMC4wNDUzNzEsIDAuMTg3Mzk1LCAwLjMzNDg0NiwgMC40NDA5MiwgMC42MTAzMiwgMC43NTg4NTksIDAuOTcxMDg5IiwgXAotICAgICAgICAgICIwLjA0NzMzNCwgMC4xODc5NTYsIDAuMzM1MDQ4LCAwLjQ0MDgwNSwgMC42MTA0MjEsIDAuNzU4OTYxLCAwLjk3MTA2NyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4MTQxOCwgMC4yNzcxODksIDAuNDcyMzksIDAuNjExODQ1LCAwLjgzNTUyOCwgMS4wMzAwMSwgMS4zMDk0MyIsIFwKLSAgICAgICAgICAiMC4wOTEyNDgsIDAuMjg3MDYsIDAuNDgyMzQxLCAwLjYyMTcxOCwgMC44NDQ3NjYsIDEuMDQwMTgsIDEuMzE5MDUiLCBcCi0gICAgICAgICAgIjAuMTAzNTQ1LCAwLjI5OTQ0NSwgMC40OTQ4MDMsIDAuNjM0MjI2LCAwLjg1NzU4OCwgMS4wNTMwOCwgMS4zMzIwMSIsIFwKLSAgICAgICAgICAiMC4xMTQ1NDEsIDAuMzEwNDk4LCAwLjUwNTgxNiwgMC42NDUyMjUsIDAuODY4Mjg1LCAxLjA2MzY5LCAxLjM0MjUxIiwgXAotICAgICAgICAgICIwLjEyMzk0MiwgMC4zMTk5MDUsIDAuNTE1MzI3LCAwLjY1NDY1NiwgMC44Nzc4MjcsIDEuMDcyODgsIDEuMzUyODUiLCBcCi0gICAgICAgICAgIjAuMTM2ODA2LCAwLjMzMjczNSwgMC41MjgxNDksIDAuNjY3NjQzLCAwLjg5MDc1NywgMS4wODY2NCwgMS4zNjQ2OCIsIFwKLSAgICAgICAgICAiMC4xNDY1NDQsIDAuMzQyNDk2LCAwLjUzNzgzNiwgMC42Nzc3NTEsIDAuOTAwNDQ2LCAxLjA5NTcsIDEuMzc0ODciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODYzOTgsIDAuNDcwNjcsIDAuODUwNDczLCAxLjEyNDk0LCAxLjU1OTM5LCAxLjk0NjMyLCAyLjQ5NTIxIiwgXAotICAgICAgICAgICIwLjA4NjQwNCwgMC40NzA2ODcsIDAuODUyMDUyLCAxLjEyNTIyLCAxLjU2Mjg2LCAxLjk0MjQ4LCAyLjQ5MDI2IiwgXAotICAgICAgICAgICIwLjA4NjQyOSwgMC40NzA2NTgsIDAuODUwMDE2LCAxLjEyMzY0LCAxLjU1OTg3LCAxLjk0MTQ0LCAyLjQ4NzQiLCBcCi0gICAgICAgICAgIjAuMDg2NDY1LCAwLjQ2OTA0NywgMC44NTIwNTIsIDEuMTI1NjIsIDEuNTYzMzUsIDEuOTQ3MDgsIDIuNDg5NTIiLCBcCi0gICAgICAgICAgIjAuMDg2NjUyLCAwLjQ2Nzg2NSwgMC44NTIzMDUsIDEuMTI1NTcsIDEuNTYyNDEsIDEuOTQ2MzIsIDIuNDg3MzciLCBcCi0gICAgICAgICAgIjAuMDg2OTMyLCAwLjQ2ODk5NiwgMC44NTA2ODcsIDEuMTI1NjcsIDEuNTYyNDUsIDEuOTQxNTEsIDIuNDkyODUiLCBcCi0gICAgICAgICAgIjAuMDg3NDQ5LCAwLjQ2Nzg2OCwgMC44NTEzMjksIDEuMTIyODgsIDEuNTYzMjQsIDEuOTQ2MzQsIDIuNDk0NTgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjA1NjksIDAuMDkyNDM4LCAwLjE2NDE5NSwgMC4yMTUzNTksIDAuMjk3NDI1LCAwLjM2ODkzOSwgMC40NzEzMjYiLCBcCi0gICAgICAgICAgIjAuMDMwNTU1LCAwLjEwMjM3NywgMC4xNzQwNzYsIDAuMjI1Mjg4LCAwLjMwNzM1NiwgMC4zNzg4NzQsIDAuNDgxMzAyIiwgXAotICAgICAgICAgICIwLjA0MjQ0NiwgMC4xMTQ3OTYsIDAuMTg2NDE2LCAwLjIzNzU5OSwgMC4zMTk1MzgsIDAuMzkxMzQsIDAuNDkyNDI2IiwgXAotICAgICAgICAgICIwLjA1MTkyMywgMC4xMjcxMjQsIDAuMTk4OTE3LCAwLjI1MDA2NSwgMC4zMzIwMjcsIDAuNDAzNjEsIDAuNTA1ODgxIiwgXAotICAgICAgICAgICIwLjA2MDMsIDAuMTM5NjMsIDAuMjExMjU2LCAwLjI2MjYsIDAuMzQ0Mzk1LCAwLjQxNTk4NywgMC41MTg1OCIsIFwKLSAgICAgICAgICAiMC4wNzExMjQsIDAuMTYwNDU1LCAwLjIzMTI1MSwgMC4yODI0MTksIDAuMzY0NjAyLCAwLjQzNTk0LCAwLjUzODM0IiwgXAotICAgICAgICAgICIwLjA3OTM0LCAwLjE3ODIyMiwgMC4yNDk1OTEsIDAuMjk5OTkyLCAwLjM4MTg1LCAwLjQ1Mzg4MywgMC41NTUxNjkiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzQwMDMsIDAuMTgxNTIyLCAwLjMyOTE5NiwgMC40MzQ0NTgsIDAuNjAzMzA3LCAwLjc1MDg5MywgMC45NjEzMjQiLCBcCi0gICAgICAgICAgIjAuMDM2NzA2LCAwLjE4MTUzOSwgMC4zMjkwNDksIDAuNDM0NDM4LCAwLjYwMzMsIDAuNzUwNzg1LCAwLjk2MTM3OCIsIFwKLSAgICAgICAgICAiMC4wNDQ3NjMsIDAuMTgyMzAzLCAwLjMyOTA2NiwgMC40MzQ0MjMsIDAuNjAzMjMsIDAuNzUwOTYyLCAwLjk2MTYwOSIsIFwKLSAgICAgICAgICAiMC4wNTQ0MzksIDAuMTg1OTc3LCAwLjMyOTQzNSwgMC40MzQ1NDYsIDAuNjAzMjMyLCAwLjc1MDc5MSwgMC45NjEwOTciLCBcCi0gICAgICAgICAgIjAuMDYyNTY1LCAwLjE5MTE4NiwgMC4zMzE2NjQsIDAuNDM0OTgyLCAwLjYwMzA5OSwgMC43NTA4MjUsIDAuOTYxODAyIiwgXAotICAgICAgICAgICIwLjA3NTYyMiwgMC4yMDEyMzQsIDAuMzM4MDA4LCAwLjQzOTAxMSwgMC42MDQwMTksIDAuNzUwNzU2LCAwLjk2MTUwOCIsIFwKLSAgICAgICAgICAiMC4wODU5NDgsIDAuMjExNTU1LCAwLjM0NDc4OSwgMC40NDQ0NDgsIDAuNjA2OTY2LCAwLjc1MjAzNywgMC45NjEwODQiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTE4NywgMC4yNDczNzksIDAuNDQyNjk0LCAwLjU4MjE3MSwgMC44MDU0MzQsIDEuMDAwMjksIDEuMjgwMDIiLCBcCi0gICAgICAgICAgIjAuMDYwMTA1LCAwLjI1NTk5MiwgMC40NTEyMTIsIDAuNTkwNjQ3LCAwLjgxMzYxNCwgMS4wMDg5NSwgMS4yODc1NSIsIFwKLSAgICAgICAgICAiMC4wNzA1MTYsIDAuMjY2NjM1LCAwLjQ2MTk2MywgMC42MDE0MDEsIDAuODI1MTA0LCAxLjAxOTk3LCAxLjI5OTciLCBcCi0gICAgICAgICAgIjAuMDgwOTA1LCAwLjI3NzI4MywgMC40NzI4MjUsIDAuNjEyMzA3LCAwLjgzNTg0OCwgMS4wMzAzNiwgMS4zMTAyNCIsIFwKLSAgICAgICAgICAiMC4wOTExMzksIDAuMjg3ODk5LCAwLjQ4MzM1NCwgMC42MjI5NjgsIDAuODQ2MTg4LCAxLjA0MTI2LCAxLjMyMDIzIiwgXAotICAgICAgICAgICIwLjEwNTU3NCwgMC4zMDQ4NSwgMC41MDAyMzQsIDAuNjM5OTM2LCAwLjg2MzE3NiwgMS4wNTgzNCwgMS4zMzcyNyIsIFwKLSAgICAgICAgICAiMC4xMTY0NDUsIDAuMzE5NTA5LCAwLjUxNTQ1NSwgMC42NTUyNjUsIDAuODc4Mjc3LCAxLjA3MzcxLCAxLjM1MjQ4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg1ODc0LCAwLjQ2Nzg4MiwgMC44NTAxNzksIDEuMTMxNDQsIDEuNTY0NzQsIDEuOTQ3MTUsIDIuNDg3MDUiLCBcCi0gICAgICAgICAgIjAuMDg1OTg0LCAwLjQ2ODY2MSwgMC44NTA2MDEsIDEuMTI0OTYsIDEuNTYzNjIsIDEuOTQzMDUsIDIuNDg5MTciLCBcCi0gICAgICAgICAgIjAuMDg4MjM3LCAwLjQ2ODkyNSwgMC44NTE5MjYsIDEuMTI1NTYsIDEuNTU5NDgsIDEuOTQyMTQsIDIuNDg3NDEiLCBcCi0gICAgICAgICAgIjAuMDkyNTYxLCAwLjQ2OTA3OSwgMC44NTI0NDIsIDEuMTI2MDksIDEuNTU5NDMsIDEuOTQ1MTcsIDIuNDg3MzIiLCBcCi0gICAgICAgICAgIjAuMDk4NDIsIDAuNDY5MTYxLCAwLjg1MjA1NiwgMS4xMjM4OCwgMS41NTk1OSwgMS45NDU3MywgMi40ODg1MiIsIFwKLSAgICAgICAgICAiMC4xMDkyMTYsIDAuNDcwMzgsIDAuODUyMDU0LCAxLjEyNTU4LCAxLjU2OTg2LCAxLjk0NjA3LCAyLjQ5Mzk1IiwgXAotICAgICAgICAgICIwLjExOTQwNywgMC40NzQyMDYsIDAuODUyMjQ5LCAxLjEyNjE1LCAxLjU2MzUyLCAxLjk1NDI3LCAyLjQ5MzIxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE5MjI1LCAwLjA5MTA0NiwgMC4xNjI3OTUsIDAuMjE0MTExLCAwLjI5NjIwNSwgMC4zNjgwNDgsIDAuNDcwNjY1IiwgXAotICAgICAgICAgICIwLjAyOTIyNiwgMC4xMDEwNTEsIDAuMTcyODMxLCAwLjIyNDE5NCwgMC4zMDYyOTksIDAuMzc3ODIyLCAwLjQ4MDU5MyIsIFwKLSAgICAgICAgICAiMC4wNDA3ODMsIDAuMTEzNDEzLCAwLjE4NTIxNiwgMC4yMzY1NDQsIDAuMzE3OTE3LCAwLjM4OTY3NCwgMC40OTE5NDMiLCBcCi0gICAgICAgICAgIjAuMDQ5ODE3LCAwLjEyNjM5MiwgMC4xOTgyMTQsIDAuMjQ5Mzk4LCAwLjMzMTQwNywgMC40MDMzMTksIDAuNTA1ODg2IiwgXAotICAgICAgICAgICIwLjA1NzE4NiwgMC4xMzg3MzIsIDAuMjEwMDAxLCAwLjI2MTUyOCwgMC4zNDM1MSwgMC40MTUwNTgsIDAuNTE3NjY1IiwgXAotICAgICAgICAgICIwLjA2Njg5NCwgMC4xNTkxOTMsIDAuMjMwMDUyLCAwLjI4MTMwOSwgMC4zNjM2MywgMC40MzUyNzYsIDAuNTM3NjUiLCBcCi0gICAgICAgICAgIjAuMDc1MjgsIDAuMTc3MTE1LCAwLjI0ODQxMywgMC4yOTg4OCwgMC4zODA3ODIsIDAuNDUyOTU4LCAwLjU1NTI0MSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzMjQ0MywgMC4xODA1OTYsIDAuMzI4ODMzLCAwLjQzNTIwOSwgMC42MDQzNCwgMC43NTI1MjQsIDAuOTY0MjU1IiwgXAotICAgICAgICAgICIwLjAzNTM2OCwgMC4xODA2NjEsIDAuMzI4OTQxLCAwLjQzNDgwOSwgMC42MDQyMDUsIDAuNzUzODg0LCAwLjk2NDQxOCIsIFwKLSAgICAgICAgICAiMC4wNDM2NjIsIDAuMTgxNDE0LCAwLjMyOTM2NiwgMC40MzQ4NzgsIDAuNjA0Mjk1LCAwLjc1MjYzMiwgMC45NjU3NDMiLCBcCi0gICAgICAgICAgIjAuMDUzMDg0LCAwLjE4NDk4NCwgMC4zMjkyNjQsIDAuNDM1NjgsIDAuNjA1MjUsIDAuNzUyNTk2LCAwLjk2NDM4MiIsIFwKLSAgICAgICAgICAiMC4wNjI3OTcsIDAuMTkwMTQ4LCAwLjMzMTcyOSwgMC40MzUyMTMsIDAuNjA0MzQ0LCAwLjc1MjMyOSwgMC45NjQ2NDEiLCBcCi0gICAgICAgICAgIjAuMDc2MjY4LCAwLjIwMDQwNCwgMC4zMzgyNTksIDAuNDQwMDgxLCAwLjYwNjI3MywgMC43NTI0NTQsIDAuOTY0MjQ1IiwgXAotICAgICAgICAgICIwLjA4NTM3MiwgMC4yMTEwMDYsIDAuMzQ0NjI0LCAwLjQ0NDgxNSwgMC42MDg0NzYsIDAuNzU0NjQyLCAwLjk2NjE1Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQ3Mjg3LCAwLjI0Mjc0NCwgMC40Mzc5OTMsIDAuNTc3MzA1LCAwLjgwMDczNCwgMC45OTU1NTUsIDEuMjc0OTMiLCBcCi0gICAgICAgICAgIjAuMDU1NDI4LCAwLjI1MTQ1NSwgMC40NDY3NDYsIDAuNTg2MDY0LCAwLjgwOTI1NCwgMS4wMDQzNiwgMS4yODI3OSIsIFwKLSAgICAgICAgICAiMC4wNjYyMDcsIDAuMjYyMjA5LCAwLjQ1NzU5MywgMC41OTcwMzMsIDAuODIwMTU3LCAxLjAxNTI2LCAxLjI5NDA0IiwgXAotICAgICAgICAgICIwLjA3NzIxMSwgMC4yNzI4OTIsIDAuNDY4MzE0LCAwLjYwNzc1OSwgMC44MzExMjYsIDEuMDI2MDQsIDEuMzA1NzEiLCBcCi0gICAgICAgICAgIjAuMDg4NDkxLCAwLjI4NDE4MywgMC40Nzk3NDYsIDAuNjE5MzIsIDAuODQyNTE1LCAxLjAzNzU1LCAxLjMxNjE0IiwgXAotICAgICAgICAgICIwLjEwMzIzNSwgMC4zMDE1MTEsIDAuNDk2NzMzLCAwLjYzNjM4NCwgMC44NTk0MTEsIDEuMDU0NjMsIDEuMzMzNjciLCBcCi0gICAgICAgICAgIjAuMTE0MzczLCAwLjMxNzIwOCwgMC41MTI0MzksIDAuNjUyMTMsIDAuODc1MTA3LCAxLjA3MDQsIDEuMzQ5MTYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODU3NjcsIDAuNDY4Njk3LCAwLjg1MDUxLCAxLjEyNDg0LCAxLjU2NDQ4LCAxLjk0NTE3LCAyLjQ5NTI1IiwgXAotICAgICAgICAgICIwLjA4NjAwNCwgMC40NzA4NDIsIDAuODU1NTkzLCAxLjEyNTUxLCAxLjU1OTE0LCAxLjk0NjU2LCAyLjQ5MzcxIiwgXAotICAgICAgICAgICIwLjA4OTk0NCwgMC40NjkwNjUsIDAuODUxOTksIDEuMTI1NiwgMS41NjMzOSwgMS45NDQ5MywgMi41MDI3NyIsIFwKLSAgICAgICAgICAiMC4wOTY2LCAwLjQ2ODk3NiwgMC44NTA0NTYsIDEuMTIzNTksIDEuNTU5ODIsIDEuOTQ2MjgsIDIuNDg3NDIiLCBcCi0gICAgICAgICAgIjAuMTAzOTU5LCAwLjQ2OTExNywgMC44NDk5ODQsIDEuMTI2MTMsIDEuNTY0MTMsIDEuOTQzMTIsIDIuNDkzMyIsIFwKLSAgICAgICAgICAiMC4xMTgzNzksIDAuNDcxNDkzLCAwLjg1MjA0NywgMS4xMjU2OCwgMS41NjMxNiwgMS45NDYzNSwgMi40ODkxNCIsIFwKLSAgICAgICAgICAiMC4xMzAzNDgsIDAuNDc2NzIzLCAwLjg1MjI3MiwgMS4xMjU5NywgMS41NjMxNiwgMS45NDYyNSwgMi40OTM1NiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkFOIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwOTk2OCwgMC4wMDk5OTMsIDAuMDA5OTk2LCAwLjAwOTk5NywgMC4wMDk5OTYsIDAuMDA5OTk3LCAwLjAwOTk5NyIsIFwKLSAgICAgICAgICAiMC4wMDk5MDksIDAuMDA5OTQ2LCAwLjAwOTk1MSwgMC4wMDk5NTEsIDAuMDA5OTUyLCAwLjAwOTk1MywgMC4wMDk5NTMiLCBcCi0gICAgICAgICAgIjAuMDA5ODc1LCAwLjAwOTkyNSwgMC4wMDk5MzIsIDAuMDA5OTM0LCAwLjAwOTkzNSwgMC4wMDk5MzcsIDAuMDA5OTM3IiwgXAotICAgICAgICAgICIwLjAwOTg3NiwgMC4wMDk5MjgsIDAuMDA5OTM3LCAwLjAwOTkzOSwgMC4wMDk5NDIsIDAuMDA5OTQxLCAwLjAwOTk0MSIsIFwKLSAgICAgICAgICAiMC4wMDk4ODQsIDAuMDA5OTM5LCAwLjAwOTk0OSwgMC4wMDk5NTMsIDAuMDA5OTU2LCAwLjAwOTk1NiwgMC4wMDk5NTYiLCBcCi0gICAgICAgICAgIjAuMDA5OTIzLCAwLjAwOTk3NiwgMC4wMDk5ODYsIDAuMDA5OTg5LCAwLjAwOTk5MiwgMC4wMDk5OTIsIDAuMDA5OTkzIiwgXAotICAgICAgICAgICIwLjAwOTk1OSwgMC4wMTAwMDUsIDAuMDEwMDE1LCAwLjAxMDAxOSwgMC4wMTAwMjIsIDAuMDEwMDI2LCAwLjAxMDAyNCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA4MTYsIDAuMDA4Mjk3LCAwLjAwODMxNSwgMC4wMDgzMiwgMC4wMDgzMjUsIDAuMDA4MzI4LCAwLjAwODMzIiwgXAotICAgICAgICAgICIwLjAwODA5OSwgMC4wMDgyNTEsIDAuMDA4Mjc0LCAwLjAwODI4MSwgMC4wMDgyODcsIDAuMDA4MjkxLCAwLjAwODI5NCIsIFwKLSAgICAgICAgICAiMC4wMDgwNDcsIDAuMDA4MjIxLCAwLjAwODI1MiwgMC4wMDgyNjIsIDAuMDA4MjcxLCAwLjAwODI3NiwgMC4wMDgyOCIsIFwKLSAgICAgICAgICAiMC4wMDgwMjQsIDAuMDA4MjExLCAwLjAwODI0OSwgMC4wMDgyNjIsIDAuMDA4MjczLCAwLjAwODI3OSwgMC4wMDgyODUiLCBcCi0gICAgICAgICAgIjAuMDA4MDE1LCAwLjAwODIwOCwgMC4wMDgyNTEsIDAuMDA4MjY2LCAwLjAwODI4LCAwLjAwODI4NywgMC4wMDgyOTMiLCBcCi0gICAgICAgICAgIjAuMDA4MDIzLCAwLjAwODIxNywgMC4wMDgyNjcsIDAuMDA4Mjg0LCAwLjAwODMsIDAuMDA4MzA5LCAwLjAwODMxNyIsIFwKLSAgICAgICAgICAiMC4wMDgwMzksIDAuMDA4MjM0LCAwLjAwODI4NiwgMC4wMDgzMDYsIDAuMDA4MzI0LCAwLjAwODMzNCwgMC4wMDgzNDMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwODA0MiwgMC4wMDgwNjEsIDAuMDA4MDYyLCAwLjAwODA2MywgMC4wMDgwNjQsIDAuMDA4MDYzLCAwLjAwODA2NCIsIFwKLSAgICAgICAgICAiMC4wMDc5NDgsIDAuMDA4MDM3LCAwLjAwODA0OSwgMC4wMDgwNTMsIDAuMDA4MDU2LCAwLjAwODA1NywgMC4wMDgwNTkiLCBcCi0gICAgICAgICAgIjAuMDA3OTI0LCAwLjAwODAyNCwgMC4wMDgwNDIsIDAuMDA4MDQ4LCAwLjAwODA1MywgMC4wMDgwNTUsIDAuMDA4MDU0IiwgXAotICAgICAgICAgICIwLjAwNzkzMiwgMC4wMDgwMTcsIDAuMDA4MDM4LCAwLjAwODA0NSwgMC4wMDgwNDksIDAuMDA4MDU1LCAwLjAwODA1NiIsIFwKLSAgICAgICAgICAiMC4wMDc5MDYsIDAuMDA4MDE2LCAwLjAwODAzNiwgMC4wMDgwNDMsIDAuMDA4MDQ3LCAwLjAwODA1MSwgMC4wMDgwNTciLCBcCi0gICAgICAgICAgIjAuMDA3OTU2LCAwLjAwODAzNSwgMC4wMDgwMzcsIDAuMDA4MDQyLCAwLjAwODA1MiwgMC4wMDgwNDEsIDAuMDA4MDU1IiwgXAotICAgICAgICAgICIwLjAwODA0MSwgMC4wMDgwNTksIDAuMDA4MDU1LCAwLjAwODA1MiwgMC4wMDgwNTUsIDAuMDA4MDU5LCAwLjAwODA0MSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyMTg0LCAwLjAwMjI0MSwgMC4wMDIyNDcsIDAuMDAyMjQ5LCAwLjAwMjI1MSwgMC4wMDIyNTIsIDAuMDAyMjUzIiwgXAotICAgICAgICAgICIwLjAwMjAwNywgMC4wMDIxODksIDAuMDAyMjE3LCAwLjAwMjIyNiwgMC4wMDIyMzQsIDAuMDAyMjM5LCAwLjAwMjI0MiIsIFwKLSAgICAgICAgICAiMC4wMDE5MDksIDAuMDAyMTMzLCAwLjAwMjE4MiwgMC4wMDIxOTksIDAuMDAyMjE0LCAwLjAwMjIyMiwgMC4wMDIyMjkiLCBcCi0gICAgICAgICAgIjAuMDAxODY2LCAwLjAwMjA5MSwgMC4wMDIxNTQsIDAuMDAyMTc2LCAwLjAwMjE5NiwgMC4wMDIyMDcsIDAuMDAyMjE3IiwgXAotICAgICAgICAgICIwLjAwMTg0OCwgMC4wMDIwNTcsIDAuMDAyMTI3LCAwLjAwMjE1NCwgMC4wMDIxNzksIDAuMDAyMTkzLCAwLjAwMjIwNSIsIFwKLSAgICAgICAgICAiMC4wMDE4NTIsIDAuMDAyMDE1LCAwLjAwMjA5MiwgMC4wMDIxMjMsIDAuMDAyMTU0LCAwLjAwMjE3MSwgMC4wMDIxODgiLCBcCi0gICAgICAgICAgIjAuMDAxODc1LCAwLjAwMTk5NSwgMC4wMDIwNywgMC4wMDIxMDMsIDAuMDAyMTM3LCAwLjAwMjE1NiwgMC4wMDIxNzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjM0OCwgMC4wMDYzOTYsIDAuMDA2NDAxLCAwLjAwNjQwMywgMC4wMDY0MDQsIDAuMDA2NDA1LCAwLjAwNjQwNSIsIFwKLSAgICAgICAgICAiMC4wMDYyNDcsIDAuMDA2NDAyLCAwLjAwNjQyMiwgMC4wMDY0MjksIDAuMDA2NDMzLCAwLjAwNjQzNywgMC4wMDY0MzkiLCBcCi0gICAgICAgICAgIjAuMDA2MTkxLCAwLjAwNjM3NywgMC4wMDY0MTEsIDAuMDA2NDIxLCAwLjAwNjQzNCwgMC4wMDY0MzksIDAuMDA2NDQyIiwgXAotICAgICAgICAgICIwLjAwNjE4MiwgMC4wMDYzNjgsIDAuMDA2Mzk5LCAwLjAwNjQxNSwgMC4wMDY0MjMsIDAuMDA2NDI4LCAwLjAwNjQzNCIsIFwKLSAgICAgICAgICAiMC4wMDYyMSwgMC4wMDYzNTgsIDAuMDA2Mzk1LCAwLjAwNjQxLCAwLjAwNjQyMiwgMC4wMDY0MjksIDAuMDA2NDM2IiwgXAotICAgICAgICAgICIwLjAwNjI5NywgMC4wMDYzNTUsIDAuMDA2Mzg1LCAwLjAwNjM4OSwgMC4wMDY0MjIsIDAuMDA2NDE5LCAwLjAwNjQzMSIsIFwKLSAgICAgICAgICAiMC4wMDYzMzQsIDAuMDA2MzY5LCAwLjAwNjM5OCwgMC4wMDY0MDEsIDAuMDA2NDIxLCAwLjAwNjQyNCwgMC4wMDY0MTQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjE2NCwgMC4wMDIyMzMsIDAuMDAyMjQxLCAwLjAwMjI0MywgMC4wMDIyNDUsIDAuMDAyMjQ2LCAwLjAwMjI0NyIsIFwKLSAgICAgICAgICAiMC4wMDE5NzEsIDAuMDAyMTc0LCAwLjAwMjIwNiwgMC4wMDIyMTcsIDAuMDAyMjI2LCAwLjAwMjIzMSwgMC4wMDIyMzUiLCBcCi0gICAgICAgICAgIjAuMDAxOSwgMC4wMDIxMTksIDAuMDAyMTcxLCAwLjAwMjE4OSwgMC4wMDIyMDUsIDAuMDAyMjEzLCAwLjAwMjIyMSIsIFwKLSAgICAgICAgICAiMC4wMDE5MTksIDAuMDAyMDg3LCAwLjAwMjE0NywgMC4wMDIxNjksIDAuMDAyMTg5LCAwLjAwMjIsIDAuMDAyMjExIiwgXAotICAgICAgICAgICIwLjAwMTk3OCwgMC4wMDIwNzYsIDAuMDAyMTM1LCAwLjAwMjE1OCwgMC4wMDIxOCwgMC4wMDIxOTIsIDAuMDAyMjA0IiwgXAotICAgICAgICAgICIwLjAwMjA4LCAwLjAwMjA1NywgMC4wMDIxMTEsIDAuMDAyMTM2LCAwLjAwMjE2MSwgMC4wMDIxNzYsIDAuMDAyMTkiLCBcCi0gICAgICAgICAgIjAuMDAyMTU5LCAwLjAwMjA1NywgMC4wMDIxLCAwLjAwMjEyNCwgMC4wMDIxNDksIDAuMDAyMTY1LCAwLjAwMjE4MSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBOQU5EM0JYTCAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoTkFORDNCWEwpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4wOTE2NjY4OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBTikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjc4Nzc2OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDY3ODY3MTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2Nzg3NzY7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjIyLCAwLjAwMDE5NSwgMC4wMDAyMDEsIDAuMDAwMjA1LCAwLjAwMDIyMiwgMC4wMDAyNDIsIDAuMDAwMjY5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxMzk0LCAwLjAwMTM3NSwgMC4wMDEzNzQsIDAuMDAxMzgzLCAwLjAwMTM5NSwgMC4wMDE0MjIsIDAuMDAxNDQ2Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2Mjk2Mzc7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjI5NjM3OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDYyODY2OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDIyNiwgMC4wMDAyMjYsIDAuMDAwMjI2LCAwLjAwMDIyNiwgMC4wMDAyMjYsIDAuMDAwMjI2LCAwLjAwMDIyNiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDIzNywgMC4wMDAyMjgsIDAuMDAwMjI4LCAwLjAwMDIyNywgMC4wMDAyMjcsIDAuMDAwMjI3LCAwLjAwMDIyNyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQykgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjUxMzQ3OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDY1MDk1NzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2NTEzNDc7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMTE0LCAwLjAwMDExMywgMC4wMDAxMTMsIDAuMDAwMTEzLCAwLjAwMDExMywgMC4wMDAxMTMsIDAuMDAwMTEzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjU3LCAwLjAwMDI1NywgMC4wMDAyNTgsIDAuMDAwMjU3LCAwLjAwMDI1NywgMC4wMDAyNTcsIDAuMDAwMjU3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMDU2NjMzMzsKLSAgICBmdW5jdGlvbiA6ICIoISgoKCFBTikgQikgQykpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk3NjMsIDAuMTExODA1LCAwLjIzOTAwMiwgMC40NTEwNzEsIDAuNjYzMDk0LCAxLjE1NzE1LCAxLjQzOTY5IiwgXAotICAgICAgICAgICIwLjEwNzY4NiwgMC4xMjE4NTUsIDAuMjQ5MTUxLCAwLjQ2MTE1OSwgMC42NzMwNzYsIDEuMTY3NzksIDEuNDUwNDMiLCBcCi0gICAgICAgICAgIjAuMTE4NTI1LCAwLjEzMjcsIDAuMjU5OTUsIDAuNDcyMTAxLCAwLjY4NDA1OCwgMS4xNzg0NSwgMS40NjA4NSIsIFwKLSAgICAgICAgICAiMC4xMjcyMTgsIDAuMTQxMzc5LCAwLjI2ODY3MiwgMC40ODA2MiwgMC42OTI0NDQsIDEuMTg2ODMsIDEuNDcwMTkiLCBcCi0gICAgICAgICAgIjAuMTM0MjkyLCAwLjE0ODQ1LCAwLjI3NTcyNSwgMC40ODc3NzYsIDAuNjk5NTc1LCAxLjE5NDQzLCAxLjQ3NjU2IiwgXAotICAgICAgICAgICIwLjE0NDE4MSwgMC4xNTgzNTIsIDAuMjg1NTgxLCAwLjQ5NzUxOSwgMC43MDk2MTgsIDEuMjA0MDEsIDEuNDg2MjQiLCBcCi0gICAgICAgICAgIjAuMTUyMDM5LCAwLjE2NjE5NiwgMC4yOTMzODUsIDAuNTA1Mzc5LCAwLjcxNzM0NCwgMS4yMTE3MSwgMS40OTQyOSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNjI1ODcsIDAuMTkxNDMyLCAwLjQ1MjM1NSwgMC44ODczMDEsIDEuMzIxOTgsIDIuMzM1MzIsIDIuOTE3MSIsIFwKLSAgICAgICAgICAiMC4xNjI0NjYsIDAuMTkxNTY2LCAwLjQ1MjE5NSwgMC44ODczNDMsIDEuMzIyMTgsIDIuMzM2NzgsIDIuOTE1NjkiLCBcCi0gICAgICAgICAgIjAuMTYyNjE2LCAwLjE5MTQyNSwgMC40NTI0MTYsIDAuODg3MDc5LCAxLjMyMTg3LCAyLjMzNjAxLCAyLjkxNDk1IiwgXAotICAgICAgICAgICIwLjE2Mjc2MywgMC4xOTE2NzMsIDAuNDUyMTc4LCAwLjg4NzE1MywgMS4zMjE1MywgMi4zMzcyOSwgMi45MTY3OCIsIFwKLSAgICAgICAgICAiMC4xNjI3MzMsIDAuMTkxNjUsIDAuNDUyNDU2LCAwLjg4NzA2MywgMS4zMjE1OSwgMi4zMzY0OCwgMi45MTU5IiwgXAotICAgICAgICAgICIwLjE2MzAzNSwgMC4xOTE4NDYsIDAuNDUyMzQ1LCAwLjg4NzExNCwgMS4zMjE4LCAyLjMzNjIzLCAyLjkxNjQ0IiwgXAotICAgICAgICAgICIwLjE2MzI3OCwgMC4xOTE5OTcsIDAuNDUyMzgxLCAwLjg4Njg1MywgMS4zMjE3NiwgMi4zMzY3LCAyLjkxNTQ4Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIyNzEwOCwgMC4yNjQxNDcsIDAuNTk3NDk4LCAxLjE1MzM1LCAxLjcwNzMsIDMuMDAyNDksIDMuNzQyMjIiLCBcCi0gICAgICAgICAgIjAuMjM2OTUsIDAuMjczODcyLCAwLjYwNzY2MSwgMS4xNjI4NiwgMS43MTkzMSwgMy4wMTM2LCAzLjc1MzU1IiwgXAotICAgICAgICAgICIwLjI0NjU3NywgMC4yODM2NTUsIDAuNjE3Mjg4LCAxLjE3MjU3LCAxLjcyODU2LCAzLjAyMzUyLCAzLjc2MzQ0IiwgXAotICAgICAgICAgICIwLjI1Mzk1LCAwLjI5MTAxMywgMC42MjQ5MDYsIDEuMTc5NjcsIDEuNzM1NjEsIDMuMDMxNTMsIDMuNzcwNjYiLCBcCi0gICAgICAgICAgIjAuMjYwMTgyLCAwLjI5NzI0MiwgMC42MzA3MjEsIDEuMTg2MDgsIDEuNzQyNDQsIDMuMDM3MDksIDMuNzc3MDQiLCBcCi0gICAgICAgICAgIjAuMjY4MzU2LCAwLjMwNTUwOCwgMC42Mzg4NDYsIDEuMTk1MTEsIDEuNzQ5NjQsIDMuMDQ1OTgsIDMuNzg1MzkiLCBcCi0gICAgICAgICAgIjAuMjc0NTM5LCAwLjMxMTQ4NywgMC42NDQ5NTgsIDEuMjAwNTgsIDEuNzU2MiwgMy4wNTE5MywgMy43OTE3MiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zOTkyNiwgMC40NzE5MzQsIDEuMTIzODgsIDIuMjA5OSwgMy4yOTg0NiwgNS44MjY0MSwgNy4yODAwNyIsIFwKLSAgICAgICAgICAiMC4zOTgxNDEsIDAuNDcxOTA4LCAxLjEyMjkxLCAyLjIxNjEsIDMuMjk2NzIsIDUuODM2NjgsIDcuMjgxNjQiLCBcCi0gICAgICAgICAgIjAuMzk5MzQ3LCAwLjQ3MTkxMSwgMS4xMjI5MywgMi4yMTU4MywgMy4zMDc1MSwgNS44Mzc5LCA3LjI4MTY4IiwgXAotICAgICAgICAgICIwLjM5OTMzNywgMC40NzM1ODcsIDEuMTIyOTIsIDIuMjE1ODIsIDMuMzA2MTcsIDUuODMyODEsIDcuMjgxMyIsIFwKLSAgICAgICAgICAiMC4zOTkzMjcsIDAuNDcxOTc5LCAxLjEyMzc2LCAyLjIxMTMxLCAzLjI5Njc4LCA1LjgzNzI0LCA3LjI4MTIxIiwgXAotICAgICAgICAgICIwLjM5ODMxMiwgMC40NzExMjksIDEuMTIzNTksIDIuMjA5NzcsIDMuMzAyNSwgNS44MzA1OSwgNy4yODEzMSIsIFwKLSAgICAgICAgICAiMC4zOTg0OTMsIDAuNDcxNTU5LCAxLjEyNTU3LCAyLjIxNTI4LCAzLjI5OTE3LCA1LjgzMzQ2LCA3LjI4MTM4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4MjMyNiwgMC4wOTY0NjUsIDAuMjIzNjk0LCAwLjQzNTUwNywgMC42NDc2MDcsIDEuMTQyNDUsIDEuNDI0NTQiLCBcCi0gICAgICAgICAgIjAuMDkyMTM1LCAwLjEwNjI2MywgMC4yMzM0ODIsIDAuNDQ1NDQ0LCAwLjY1NzQ5NSwgMS4xNTIwNSwgMS40MzQwOSIsIFwKLSAgICAgICAgICAiMC4xMDQzLCAwLjExODUzNCwgMC4yNDU1OTksIDAuNDU2NjQ1LCAwLjY2ODcxMSwgMS4xNjMwOSwgMS40NDU0MiIsIFwKLSAgICAgICAgICAiMC4xMTY1ODcsIDAuMTMwNzE4LCAwLjI1NzkzNiwgMC40Njk3NjgsIDAuNjgwNDc5LCAxLjE3NDQ5LCAxLjQ1NzY1IiwgXAotICAgICAgICAgICIwLjEyOTM1LCAwLjE0MzA1OCwgMC4yNzAzMDEsIDAuNDgyMTcsIDAuNjk0MDM1LCAxLjE4NjYyLCAxLjQ2OTI1IiwgXAotICAgICAgICAgICIwLjE0OTQ1MSwgMC4xNjM1NywgMC4yODk5MiwgMC41MDE4NjcsIDAuNzEzNzU0LCAxLjIwNjcyLCAxLjQ4ODI1IiwgXAotICAgICAgICAgICIwLjE2Njg5LCAwLjE4MTMyMSwgMC4zMDcyNTgsIDAuNTE5MzMyLCAwLjczMDg2NSwgMS4yMjMyMywgMS41MDYzNCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNjAyODgsIDAuMTg5MjQ3LCAwLjQ1MDE1MywgMC44ODQ5MzgsIDEuMzE5NDcsIDIuMzMzNzYsIDIuOTEyODkiLCBcCi0gICAgICAgICAgIjAuMTYwMjY3LCAwLjE4OTI3NSwgMC40NTAxOTksIDAuODg1MTY3LCAxLjMxOTY2LCAyLjMzMzM4LCAyLjkxMjQ0IiwgXAotICAgICAgICAgICIwLjE2MTY2NywgMC4xODk5MTksIDAuNDUwMTg5LCAwLjg4NTE2MSwgMS4zMTk2NiwgMi4zMzM2OSwgMi45MTI3MyIsIFwKLSAgICAgICAgICAiMC4xNjU5ODQsIDAuMTkzMzc5LCAwLjQ1MDE4OCwgMC44ODQ5MjEsIDEuMzE5ODcsIDIuMzMyOCwgMi45MTMxNyIsIFwKLSAgICAgICAgICAiMC4xNzE1NywgMC4xOTg1NDUsIDAuNDUwNTYxLCAwLjg4NTM5OCwgMS4zMTk0NywgMi4zMzM5NSwgMi45MTMxMSIsIFwKLSAgICAgICAgICAiMC4xODI1ODcsIDAuMjA4NTI4LCAwLjQ1NDEzNiwgMC44ODUwMjIsIDEuMzE5MzIsIDIuMzM0MTMsIDIuOTEyNTEiLCBcCi0gICAgICAgICAgIjAuMTkzNzIzLCAwLjIxODc4NiwgMC40NTk1MzUsIDAuODg0ODY1LCAxLjMxOTU1LCAyLjMzMzYxLCAyLjkxMzg0Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIxMTY3NywgMC4yNDg4MDgsIDAuNTgyMDU3LCAxLjEzNzMyLCAxLjY5MjkyLCAyLjk4OTExLCAzLjcyNzg3IiwgXAotICAgICAgICAgICIwLjIyMDE2NywgMC4yNTcyMzksIDAuNTkwNTQzLCAxLjE0Njc4LCAxLjcwMTMsIDIuOTk3MDgsIDMuNzM3MDMiLCBcCi0gICAgICAgICAgIjAuMjMwODI0LCAwLjI2Nzg1MywgMC42MDE0ODEsIDEuMTU2NjIsIDEuNzEyNTksIDMuMDA4MzQsIDMuNzQ3OTYiLCBcCi0gICAgICAgICAgIjAuMjQxMjY4LCAwLjI3ODQ3NCwgMC42MTIzMSwgMS4xNjc1OCwgMS43MjMyNiwgMy4wMTkyNCwgMy43NTg1NSIsIFwKLSAgICAgICAgICAiMC4yNTE3MzUsIDAuMjg4ODYyLCAwLjYyMjczMywgMS4xNzg0NSwgMS43MzQzLCAzLjAyOTY1LCAzLjc2ODk2IiwgXAotICAgICAgICAgICIwLjI2ODYyMiwgMC4zMDU3MjgsIDAuNjM5NjYsIDEuMTk0OTgsIDEuNzUwNTUsIDMuMDQ2NzQsIDMuNzg2MzEiLCBcCi0gICAgICAgICAgIjAuMjgzMjI3LCAwLjMyMDU0MywgMC42NTQzNiwgMS4yMTAwMiwgMS43NjU2LCAzLjA2MTMxLCAzLjgwMTEyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjQwMTE4NiwgMC40NzA3NTMsIDEuMTI2MzYsIDIuMjE1NjQsIDMuMzA2MTEsIDUuODMyMzcsIDcuMjgxNDciLCBcCi0gICAgICAgICAgIjAuMzk5MzE1LCAwLjQ3MTk5NCwgMS4xMjU4OSwgMi4yMDk3MSwgMy4zMDIzNCwgNS44MzY0NSwgNy4yODE1OSIsIFwKLSAgICAgICAgICAiMC4zOTg0OTYsIDAuNDcxODc3LCAxLjEyNjA2LCAyLjIxNTczLCAzLjMwNjQsIDUuODM0NjYsIDcuMjgxODciLCBcCi0gICAgICAgICAgIjAuMzk5Mjk2LCAwLjQ3NDA4NCwgMS4xMjI5MiwgMi4yMTEzNiwgMy4yOTcwOSwgNS44Mzc2MiwgNy4yODEzIiwgXAotICAgICAgICAgICIwLjM5OTk3MywgMC40NzIwODQsIDEuMTI2MjksIDIuMjE2MjksIDMuMjk2ODMsIDUuODMyNDYsIDcuMjgxMSIsIFwKLSAgICAgICAgICAiMC40MDI2MzcsIDAuNDc0MDQxLCAxLjEyMjk5LCAyLjIxMzk4LCAzLjI5OTIyLCA1LjgzMDEyLCA3LjI4MTI4IiwgXAotICAgICAgICAgICIwLjQwNjE3MywgMC40NzcwNTUsIDEuMTI0NzcsIDIuMjIzODYsIDMuMzE4MDgsIDUuODM2NDcsIDcuMjgxMTYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDgwNjA3LCAwLjA5NDc0LCAwLjIyMTk3OSwgMC40MzM4ODEsIDAuNjQ2MjI2LCAxLjE0MTA1LCAxLjQyMjg3IiwgXAotICAgICAgICAgICIwLjA5MDQ0OCwgMC4xMDQ1ODQsIDAuMjMxNzIxLCAwLjQ0MzY1NiwgMC42NTU3NiwgMS4xNTAzNSwgMS40MzI4MiIsIFwKLSAgICAgICAgICAiMC4xMDI2NzMsIDAuMTE2NzkxLCAwLjI0MzkzMywgMC40NTQ5MDYsIDAuNjY3MDQ5LCAxLjE2MTQsIDEuNDQzNzYiLCBcCi0gICAgICAgICAgIjAuMTE0OTcsIDAuMTI5MTMyLCAwLjI1NjM2OSwgMC40NjgxNTIsIDAuNjc5MDA3LCAxLjE3MzU2LCAxLjQ1NjMzIiwgXAotICAgICAgICAgICIwLjEyNzgyNCwgMC4xNDE4ODgsIDAuMjY4NzQ5LCAwLjQ4MDQwOSwgMC42OTExMjEsIDEuMTg1NTcsIDEuNDY4MTYiLCBcCi0gICAgICAgICAgIjAuMTQ3ODg0LCAwLjE2MjA0LCAwLjI4ODM3MSwgMC41MDAyNjksIDAuNzEyMTgyLCAxLjIwNTk1LCAxLjQ4NzMxIiwgXAotICAgICAgICAgICIwLjE2NTExNiwgMC4xNzk1NTcsIDAuMzA1NjQsIDAuNTE3NzQxLCAwLjcyOTI0MywgMS4yMjIxMiwgMS41MDU3MiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNTg2NzgsIDAuMTg3Mzk1LCAwLjQ0ODYyOSwgMC44ODMxMTksIDEuMzE4NDYsIDIuMzMzNDIsIDIuOTEyMTUiLCBcCi0gICAgICAgICAgIjAuMTU4NzM1LCAwLjE4NzUyOCwgMC40NDkwMTQsIDAuODgzNTQsIDEuMzE3OTgsIDIuMzMyNTYsIDIuOTEyMiIsIFwKLSAgICAgICAgICAiMC4xNTk4NiwgMC4xODgzNzIsIDAuNDQ5MjAyLCAwLjg4MjgxNCwgMS4zMTc5OCwgMi4zMzI0MiwgMi45MTIyMSIsIFwKLSAgICAgICAgICAiMC4xNjQ0MjYsIDAuMTkxNTcyLCAwLjQ0ODMyMSwgMC44ODMxNDQsIDEuMzE4NzUsIDIuMzMyNTQsIDIuOTEyMTgiLCBcCi0gICAgICAgICAgIjAuMTY5OCwgMC4xOTY0OTEsIDAuNDQ5NTkyLCAwLjg4MjkxLCAxLjMxNzg3LCAyLjMzNDE2LCAyLjkxMjE1IiwgXAotICAgICAgICAgICIwLjE4MDk0NywgMC4yMDY3OSwgMC40NTIyNzUsIDAuODgyOTA2LCAxLjMxNzksIDIuMzMzNDEsIDIuOTExNTMiLCBcCi0gICAgICAgICAgIjAuMTkyMjM4LCAwLjIxNzAwMSwgMC40NTg2MjQsIDAuODgzNjI0LCAxLjMxOTc3LCAyLjMzMjM1LCAyLjkyNTE2Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIwNjk2NywgMC4yNDQwNDEsIDAuNTc3NDAzLCAxLjEzMzIxLCAxLjY4ODU5LCAyLjk4Mzk1LCAzLjcyMzczIiwgXAotICAgICAgICAgICIwLjIxNTUxNiwgMC4yNTI1NzYsIDAuNTg1OTA1LCAxLjE0MTk4LCAxLjY5Njg2LCAyLjk5MjQ1LCAzLjczMjQzIiwgXAotICAgICAgICAgICIwLjIyNjM4MiwgMC4yNjM0OTEsIDAuNTk2OTIxLCAxLjE1Mjc4LCAxLjcwNzYsIDMuMDA0MjEsIDMuNzQzNTgiLCBcCi0gICAgICAgICAgIjAuMjM2Nzc4LCAwLjI3NDIwNCwgMC42MDc5MTMsIDEuMTYzMzUsIDEuNzE4NzgsIDMuMDE0MzMsIDMuNzU0MjUiLCBcCi0gICAgICAgICAgIjAuMjQ4MDIxLCAwLjI4NTA0OSwgMC42MTg1OCwgMS4xNzQ4NCwgMS43MzEwNiwgMy4wMjUzMSwgMy43NjUyOCIsIFwKLSAgICAgICAgICAiMC4yNjU1NDEsIDAuMzAyNjkxLCAwLjYzNjE3NSwgMS4xOTI1MSwgMS43NDc5NiwgMy4wNDM2MiwgMy43ODI3MyIsIFwKLSAgICAgICAgICAiMC4yODEwODksIDAuMzE4MTExLCAwLjY1MTY3NSwgMS4yMDc0NSwgMS43NjI0MiwgMy4wNTgxLCAzLjc5ODEyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjQwMDcxMiwgMC40NzExLCAxLjEyNjAxLCAyLjIwOTc2LCAzLjMwNjk2LCA1LjgzMzk5LCA3LjI4MTczIiwgXAotICAgICAgICAgICIwLjM5ODQyMywgMC40NzE4NzgsIDEuMTI0OTgsIDIuMjA5ODksIDMuMjk5NDcsIDUuODM2NDQsIDcuMjgxNDgiLCBcCi0gICAgICAgICAgIjAuMzk5MjI5LCAwLjQ3MTEzNiwgMS4xMjU2MywgMi4yMTA1NywgMy4zMDI0NSwgNS44Mzc2NSwgNy4yODA2MyIsIFwKLSAgICAgICAgICAiMC4zOTkxNywgMC40NzExMzMsIDEuMTIzMTMsIDIuMjExMzQsIDMuMzAwMDQsIDUuODM3LCA3LjI4MTIzIiwgXAotICAgICAgICAgICIwLjQwMTY5NSwgMC40NzIwNjcsIDEuMTI1NTYsIDIuMjA5ODUsIDMuMjk3NTEsIDUuODM2NTksIDcuMjgxMzMiLCBcCi0gICAgICAgICAgIjAuNDAzNDgzLCAwLjQ3NDM5MSwgMS4xMjU3OSwgMi4yMDk3OSwgMy4yOTY4MywgNS44Mjk3NiwgNy4yODE1MyIsIFwKLSAgICAgICAgICAiMC40MDk3MTMsIDAuNDc5OCwgMS4xMjYyNSwgMi4yMTY1NiwgMy4zMDQ2MiwgNS44MzY5NiwgNy4yODEwNyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkFOIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDE2ODMsIDAuMDAxNjgzLCAwLjAwMTY4MywgMC4wMDE2ODMsIDAuMDAxNjg1LCAwLjAwMTY3OSwgMC4wMDE2ODIiLCBcCi0gICAgICAgICAgIjAuMDAxNjU3LCAwLjAwMTY1NywgMC4wMDE2NTgsIDAuMDAxNjU4LCAwLjAwMTY1OCwgMC4wMDE2NTgsIDAuMDAxNjU2IiwgXAotICAgICAgICAgICIwLjAwMTY2MSwgMC4wMDE2NjEsIDAuMDAxNjYzLCAwLjAwMTY2MiwgMC4wMDE2NjIsIDAuMDAxNjYyLCAwLjAwMTY2MSIsIFwKLSAgICAgICAgICAiMC4wMDE2NjQsIDAuMDAxNjY0LCAwLjAwMTY2NSwgMC4wMDE2NjUsIDAuMDAxNjY1LCAwLjAwMTY2NSwgMC4wMDE2NjQiLCBcCi0gICAgICAgICAgIjAuMDAxNjc4LCAwLjAwMTY3OSwgMC4wMDE2OCwgMC4wMDE2OCwgMC4wMDE2NzksIDAuMDAxNjc5LCAwLjAwMTY3OSIsIFwKLSAgICAgICAgICAiMC4wMDE3MDUsIDAuMDAxNzA2LCAwLjAwMTcwNywgMC4wMDE3MDcsIDAuMDAxNzA3LCAwLjAwMTcwNiwgMC4wMDE3MDciLCBcCi0gICAgICAgICAgIjAuMDAxNzMsIDAuMDAxNzMsIDAuMDAxNzI5LCAwLjAwMTczMiwgMC4wMDE3MjksIDAuMDAxNzI4LCAwLjAwMTcyOCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTk3NSwgMC4wMDE5NzYsIDAuMDAxOTc3LCAwLjAwMTk3NywgMC4wMDE5NzcsIDAuMDAxOTc3LCAwLjAwMTk3NyIsIFwKLSAgICAgICAgICAiMC4wMDE5NTUsIDAuMDAxOTU1LCAwLjAwMTk1NywgMC4wMDE5NTgsIDAuMDAxOTU4LCAwLjAwMTk1OCwgMC4wMDE5NTgiLCBcCi0gICAgICAgICAgIjAuMDAxOTU0LCAwLjAwMTk1NSwgMC4wMDE5NTgsIDAuMDAxOTU5LCAwLjAwMTk2LCAwLjAwMTk2LCAwLjAwMTk2IiwgXAotICAgICAgICAgICIwLjAwMTk2LCAwLjAwMTk2MSwgMC4wMDE5NjYsIDAuMDAxOTY3LCAwLjAwMTk2OCwgMC4wMDE5NjksIDAuMDAxOTY5IiwgXAotICAgICAgICAgICIwLjAwMTk3MSwgMC4wMDE5NzMsIDAuMDAxOTc4LCAwLjAwMTk3OCwgMC4wMDE5NzgsIDAuMDAxOTgxLCAwLjAwMTk4MSIsIFwKLSAgICAgICAgICAiMC4wMDE5OTIsIDAuMDAxOTk2LCAwLjAwMiwgMC4wMDIwMDIsIDAuMDAyMDA1LCAwLjAwMjAwNiwgMC4wMDIwMDYiLCBcCi0gICAgICAgICAgIjAuMDAyMDE5LCAwLjAwMjAxNywgMC4wMDIwMjMsIDAuMDAyMDMsIDAuMDAyMDMxLCAwLjAwMjAyOCwgMC4wMDIwMzIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDE0LCAwLjAwMTQsIDAuMDAxNCwgMC4wMDE0LCAwLjAwMTQsIDAuMDAxNCwgMC4wMDE0IiwgXAotICAgICAgICAgICIwLjAwMTM5NiwgMC4wMDEzOTcsIDAuMDAxMzk5LCAwLjAwMTM5OSwgMC4wMDE0LCAwLjAwMTQsIDAuMDAxNCIsIFwKLSAgICAgICAgICAiMC4wMDEzOTQsIDAuMDAxMzk1LCAwLjAwMTM5OCwgMC4wMDEzOTksIDAuMDAxMzk5LCAwLjAwMTM5OSwgMC4wMDEzOTkiLCBcCi0gICAgICAgICAgIjAuMDAxMzkzLCAwLjAwMTM5NCwgMC4wMDEzOTgsIDAuMDAxMzk5LCAwLjAwMTQsIDAuMDAxMzk5LCAwLjAwMTM5OSIsIFwKLSAgICAgICAgICAiMC4wMDEzOTUsIDAuMDAxMzk1LCAwLjAwMTM5OCwgMC4wMDEzOTksIDAuMDAxMzk5LCAwLjAwMTM5OSwgMC4wMDEzOTkiLCBcCi0gICAgICAgICAgIjAuMDAxMzk4LCAwLjAwMTM5OCwgMC4wMDEzOTgsIDAuMDAxMzk5LCAwLjAwMTQsIDAuMDAxMzk5LCAwLjAwMTM5OSIsIFwKLSAgICAgICAgICAiMC4wMDE0MDMsIDAuMDAxNDAyLCAwLjAwMTQsIDAuMDAxNCwgMC4wMDE0LCAwLjAwMTQsIDAuMDAxNCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDM0MiwgMC4wMDAzNDMsIDAuMDAwMzQ0LCAwLjAwMDM0NCwgMC4wMDAzNDQsIDAuMDAwMzQ0LCAwLjAwMDM0NCIsIFwKLSAgICAgICAgICAiMC4wMDAzMzQsIDAuMDAwMzM2LCAwLjAwMDM0MSwgMC4wMDAzNDIsIDAuMDAwMzQzLCAwLjAwMDM0NCwgMC4wMDAzNDQiLCBcCi0gICAgICAgICAgIjAuMDAwMzI2LCAwLjAwMDMyOCwgMC4wMDAzMzcsIDAuMDAwMzQxLCAwLjAwMDM0MiwgMC4wMDAzNDMsIDAuMDAwMzQzIiwgXAotICAgICAgICAgICIwLjAwMDMyLCAwLjAwMDMyMiwgMC4wMDAzMzQsIDAuMDAwMzM5LCAwLjAwMDM0MSwgMC4wMDAzNDIsIDAuMDAwMzQzIiwgXAotICAgICAgICAgICIwLjAwMDMxNSwgMC4wMDAzMTgsIDAuMDAwMzMxLCAwLjAwMDMzNywgMC4wMDAzMzksIDAuMDAwMzQyLCAwLjAwMDM0MiIsIFwKLSAgICAgICAgICAiMC4wMDAzMSwgMC4wMDAzMTMsIDAuMDAwMzI3LCAwLjAwMDMzNSwgMC4wMDAzMzgsIDAuMDAwMzQsIDAuMDAwMzQxIiwgXAotICAgICAgICAgICIwLjAwMDMwOCwgMC4wMDAzMSwgMC4wMDAzMjQsIDAuMDAwMzMzLCAwLjAwMDMzNiwgMC4wMDAzNCwgMC4wMDAzNDEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDExNDYsIDAuMDAxMTQ2LCAwLjAwMTE0NywgMC4wMDExNDgsIDAuMDAxMTQ3LCAwLjAwMTE0NywgMC4wMDExNDciLCBcCi0gICAgICAgICAgIjAuMDAxMTQ2LCAwLjAwMTE0NywgMC4wMDExNTEsIDAuMDAxMTUxLCAwLjAwMTE1MiwgMC4wMDExNTMsIDAuMDAxMTUyIiwgXAotICAgICAgICAgICIwLjAwMTE0MiwgMC4wMDExNDQsIDAuMDAxMTUsIDAuMDAxMTUzLCAwLjAwMTE1MywgMC4wMDExNTQsIDAuMDAxMTU0IiwgXAotICAgICAgICAgICIwLjAwMTEzOSwgMC4wMDExNDIsIDAuMDAxMTQ4LCAwLjAwMTE1MSwgMC4wMDExNTMsIDAuMDAxMTU0LCAwLjAwMTE1NCIsIFwKLSAgICAgICAgICAiMC4wMDExNCwgMC4wMDExNDEsIDAuMDAxMTQ4LCAwLjAwMTE1MSwgMC4wMDExNTMsIDAuMDAxMTU0LCAwLjAwMTE1NCIsIFwKLSAgICAgICAgICAiMC4wMDExNDEsIDAuMDAxMTQyLCAwLjAwMTE0NywgMC4wMDExNTEsIDAuMDAxMTUyLCAwLjAwMTE1NCwgMC4wMDExNTQiLCBcCi0gICAgICAgICAgIjAuMDAxMTQ1LCAwLjAwMTE0NSwgMC4wMDExNDgsIDAuMDAxMTUxLCAwLjAwMTE1MiwgMC4wMDExNTQsIDAuMDAxMTU0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwMzQyLCAwLjAwMDM0MiwgMC4wMDAzNDQsIDAuMDAwMzQ0LCAwLjAwMDM0NCwgMC4wMDAzNDQsIDAuMDAwMzQ0IiwgXAotICAgICAgICAgICIwLjAwMDMzMywgMC4wMDAzMzQsIDAuMDAwMzQsIDAuMDAwMzQyLCAwLjAwMDM0MywgMC4wMDAzNDQsIDAuMDAwMzQ0IiwgXAotICAgICAgICAgICIwLjAwMDMyNCwgMC4wMDAzMjcsIDAuMDAwMzM2LCAwLjAwMDM0LCAwLjAwMDM0MiwgMC4wMDAzNDMsIDAuMDAwMzQzIiwgXAotICAgICAgICAgICIwLjAwMDMyLCAwLjAwMDMyMywgMC4wMDAzMzQsIDAuMDAwMzM5LCAwLjAwMDM0LCAwLjAwMDM0MiwgMC4wMDAzNDMiLCBcCi0gICAgICAgICAgIjAuMDAwMzE4LCAwLjAwMDMyLCAwLjAwMDMzMiwgMC4wMDAzMzcsIDAuMDAwMzQsIDAuMDAwMzQyLCAwLjAwMDM0MiIsIFwKLSAgICAgICAgICAiMC4wMDAzMTksIDAuMDAwMzIsIDAuMDAwMzMsIDAuMDAwMzM2LCAwLjAwMDMzOSwgMC4wMDAzNDEsIDAuMDAwMzQyIiwgXAotICAgICAgICAgICIwLjAwMDMyMiwgMC4wMDAzMjMsIDAuMDAwMzMsIDAuMDAwMzM1LCAwLjAwMDMzOCwgMC4wMDAzNDEsIDAuMDAwMzQxIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogTkFORDNYMSAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChOQU5EM1gxKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMTExMzA4OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA4Njk3MzM7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwODY5NzMzOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDg2NzU3NDsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA0MDksIDAuMDAwNDA5LCAwLjAwMDQwOSwgMC4wMDA0MDksIDAuMDAwNDA5LCAwLjAwMDQwOSwgMC4wMDA0MDkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA0MSwgMC4wMDA0MSwgMC4wMDA0MSwgMC4wMDA0MSwgMC4wMDA0MSwgMC4wMDA0MSwgMC4wMDA0MSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwOTAyNzcyOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDkwMjc3MjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA5MDA4NzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA0MDksIDAuMDAwNDA5LCAwLjAwMDQwOSwgMC4wMDA0MDksIDAuMDAwNDA4LCAwLjAwMDQwOCwgMC4wMDA0MDgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA0MSwgMC4wMDA0MSwgMC4wMDA0MSwgMC4wMDA0MSwgMC4wMDA0MSwgMC4wMDA0MSwgMC4wMDA0MTEiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEMpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDkyNjA0MTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA5MjUyMjI7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwOTI2MDQxOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDI4OSwgMC4wMDAyODgsIDAuMDAwMjg4LCAwLjAwMDI4OCwgMC4wMDAyODgsIDAuMDAwMjg4LCAwLjAwMDI4OCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDQ2NCwgMC4wMDA0NjUsIDAuMDAwNDY1LCAwLjAwMDQ2NSwgMC4wMDA0NjUsIDAuMDAwNDY1LCAwLjAwMDQ2NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjA5MDYyODg7Ci0gICAgZnVuY3Rpb24gOiAiKCEoKEEgQikgQykpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTIyNTgsIDAuMDc2NjUxLCAwLjIxNDQ1MiwgMC4zMzYwNzksIDAuNDk4MDUzLCAwLjgyMjAzMywgMS4wMjQzNCIsIFwKLSAgICAgICAgICAiMC4wNjIwNzksIDAuMDg2NTE1LCAwLjIyNDM5NiwgMC4zNDU5NjMsIDAuNTA3OTA4LCAwLjgzMTc5MiwgMS4wMzQ2IiwgXAotICAgICAgICAgICIwLjA3NDQ3NiwgMC4wOTg4NjksIDAuMjM2NzMxLCAwLjM1ODA1NiwgMC41MTkwOTksIDAuODQzMTc0LCAxLjA0NTk2IiwgXAotICAgICAgICAgICIwLjA4NzQwNywgMC4xMTEzNTYsIDAuMjQ5MjIsIDAuMzcwNjk4LCAwLjUzMjYxMiwgMC44NTQ5MzIsIDEuMDU3NjYiLCBcCi0gICAgICAgICAgIjAuMDk5OTIyLCAwLjEyNDQyMywgMC4yNjE4ODgsIDAuMzgzMjE1LCAwLjU0NTE5NCwgMC44NjczMiwgMS4wNjk4IiwgXAotICAgICAgICAgICIwLjExODg5MiwgMC4xNDQ4NjEsIDAuMjgxNzE3LCAwLjQwMzYyNCwgMC41NjUxODksIDAuODg3MzI2LCAxLjA4OTgzIiwgXAotICAgICAgICAgICIwLjEzMzAyOCwgMC4xNjIxMDIsIDAuMjk5Mjk4LCAwLjQyMTE5NywgMC41ODI4NDcsIDAuOTA0NTk4LCAxLjEwNjk0Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5Nzk0NywgMC4xNDgwNjEsIDAuNDMxMjUzLCAwLjY4MTM2NSwgMS4wMTQ1NSwgMS42ODE1NywgMi4wOTgyIiwgXAotICAgICAgICAgICIwLjA5ODEwNywgMC4xNDgwNTMsIDAuNDMxMzAxLCAwLjY4MTM5LCAxLjAxNDg3LCAxLjY4MTQ4LCAyLjA5ODUyIiwgXAotICAgICAgICAgICIwLjEwMTkyLCAwLjE0OTU5LCAwLjQzMTIzNiwgMC42ODEyOTYsIDEuMDE0NDUsIDEuNjgxNDYsIDIuMDk4NTgiLCBcCi0gICAgICAgICAgIjAuMTA3OTY4LCAwLjE1NDExMiwgMC40MzEyMjQsIDAuNjgxNDU0LCAxLjAxNDQ1LCAxLjY4MTE5LCAyLjA5ODYiLCBcCi0gICAgICAgICAgIjAuMTE1MTM3LCAwLjE1OTgxMiwgMC40MzIwMTcsIDAuNjgxMTUxLCAxLjAxNDUsIDEuNjgxNTMsIDIuMDk4MzYiLCBcCi0gICAgICAgICAgIjAuMTI4ODkzLCAwLjE3MTEyOCwgMC40MzU3MjksIDAuNjgxNDYyLCAxLjAxNDQ3LCAxLjY4MTE3LCAyLjA5ODMyIiwgXAotICAgICAgICAgICIwLjE0MjAyMywgMC4xODI1NjgsIDAuNDQxMzA3LCAwLjY4MzMwMiwgMS4wMTQ1MSwgMS42ODE1OSwgMi4wOTc3MSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMzcwMTUsIDAuMjAzNDk2LCAwLjU4MDA2NCwgMC45MTI2MTMsIDEuMzU2NTMsIDIuMjQyMTgsIDIuNzk1NzIiLCBcCi0gICAgICAgICAgIjAuMTQ1MjAzLCAwLjIxMTc2NywgMC41ODg3NjIsIDAuOTIxNTIyLCAxLjM2MzgxLCAyLjI1MDQsIDIuODAzOTEiLCBcCi0gICAgICAgICAgIjAuMTU0MjcyLCAwLjIyMDk4MSwgMC41OTgxNywgMC45MzA1NjIsIDEuMzczODUsIDIuMjYwNjYsIDIuODEzOTEiLCBcCi0gICAgICAgICAgIjAuMTYzMTkzLCAwLjIyOTkzOCwgMC42MDY5ODIsIDAuOTM5NzMyLCAxLjM4Mjc4LCAyLjI2ODYsIDIuODIyNzYiLCBcCi0gICAgICAgICAgIjAuMTcyMDksIDAuMjM4ODEsIDAuNjE2MjI1LCAwLjk0ODQ0NywgMS4zOTE1NCwgMi4yNzg4OCwgMi44MzE5NSIsIFwKLSAgICAgICAgICAiMC4xODYzMjksIDAuMjUzMDczLCAwLjYzMDQ2NSwgMC45NjMxNDMsIDEuNDA2MTIsIDIuMjkyOTcsIDIuODQ3MSIsIFwKLSAgICAgICAgICAiMC4xOTg5NTksIDAuMjY1NDg4LCAwLjY0Mjk2OCwgMC45NzU4MDMsIDEuNDE5MTEsIDIuMzA0ODgsIDIuODU4OTEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjQ3MjIyLCAwLjM3NzA1MiwgMS4xMTI5MSwgMS43NjU4OSwgMi42MjU3MiwgNC4zNjkyLCA1LjQzOTU5IiwgXAotICAgICAgICAgICIwLjI0NzkwMSwgMC4zNzgwMTYsIDEuMTE1NDksIDEuNzYwNjUsIDIuNjMyODEsIDQuMzY4NTIsIDUuNDQwMDQiLCBcCi0gICAgICAgICAgIjAuMjQ3ODcyLCAwLjM3NzA3MiwgMS4xMjA5MSwgMS43NjYzNiwgMi42MzM4NCwgNC4zNzAxMiwgNS40NDYzMiIsIFwKLSAgICAgICAgICAiMC4yNDg2MjYsIDAuMzc3OTg5LCAxLjExNDM4LCAxLjc2MTA2LCAyLjYyODE1LCA0LjM2MzgzLCA1LjQ0MTkxIiwgXAotICAgICAgICAgICIwLjI0OTcwMywgMC4zNzg2ODIsIDEuMTE1NTYsIDEuNzY1MjgsIDIuNjQyNjcsIDQuMzY5NDEsIDUuNDM4NDkiLCBcCi0gICAgICAgICAgIjAuMjUzNzM4LCAwLjM4MDEyNCwgMS4xMTUxNCwgMS43NjU3NSwgMi42MzIzOCwgNC4zNjAwMSwgNS40NDY0MyIsIFwKLSAgICAgICAgICAiMC4yNTgzMjQsIDAuMzgzNDY2LCAxLjExNDE3LCAxLjc2MTM1LCAyLjYyODQzLCA0LjM2NzQ4LCA1LjQ0MDE4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1MTQzOSwgMC4wNzYwMTYsIDAuMjE1Mjg0LCAwLjMzODA0NSwgMC41MDE5OTIsIDAuODI5NCwgMS4wMzQxNiIsIFwKLSAgICAgICAgICAiMC4wNjEzNCwgMC4wODU5NzQsIDAuMjI1MTgxLCAwLjM0ODAwOSwgMC41MTE2OTUsIDAuODM5NDQ4LCAxLjA0MzgzIiwgXAotICAgICAgICAgICIwLjA3MzY4MywgMC4wOTgyNzgsIDAuMjM3NTIyLCAwLjM2MDA2NiwgMC41MjMwODgsIDAuODUwNjIxLCAxLjA1NTIiLCBcCi0gICAgICAgICAgIjAuMDg2NTUyLCAwLjExMDcxMSwgMC4yNDk5MTIsIDAuMzcyNjksIDAuNTM2Mzg0LCAwLjg2MjEyMSwgMS4wNjcwOSIsIFwKLSAgICAgICAgICAiMC4wOTkyMywgMC4xMjM2OTEsIDAuMjYyNTA3LCAwLjM4NTExMywgMC41NDg4NjcsIDAuODc1ODY0LCAxLjA3ODYiLCBcCi0gICAgICAgICAgIjAuMTE3NzEzLCAwLjE0NDA4NywgMC4yODIzMjgsIDAuNDA1NCwgMC41Njg3MzUsIDAuODk2MjY4LCAxLjA5ODI3IiwgXAotICAgICAgICAgICIwLjEzMTY5NSwgMC4xNjEyOTYsIDAuMjk5OTAzLCAwLjQyMzAzNSwgMC41ODY0MDYsIDAuOTEzNzQ1LCAxLjExODIzIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5NzM1NiwgMC4xNDc4MzIsIDAuNDM0MzYxLCAwLjY4NzMzNywgMS4wMjQ1LCAxLjY5ODYsIDIuMTE5ODgiLCBcCi0gICAgICAgICAgIjAuMDk3NDc4LCAwLjE0NzgwOCwgMC40MzQyNTUsIDAuNjg3MjYyLCAxLjAyNDE1LCAxLjY5ODc4LCAyLjExOTA3IiwgXAotICAgICAgICAgICIwLjEwMTQsIDAuMTQ5NTE2LCAwLjQzNDMyOCwgMC42ODY4NDEsIDEuMDI0NDksIDEuNjk4NzMsIDIuMTE5MTUiLCBcCi0gICAgICAgICAgIjAuMTA3NTU5LCAwLjE1NDA4LCAwLjQzNDIzNiwgMC42ODcxMywgMS4wMjQxMywgMS42OTgyNywgMi4xMTkxNCIsIFwKLSAgICAgICAgICAiMC4xMTUxMjMsIDAuMTU5OTI0LCAwLjQzNDg3OCwgMC42ODcwNjQsIDEuMDI0MDIsIDEuNjk4NzUsIDIuMTE4OTIiLCBcCi0gICAgICAgICAgIjAuMTI4OTU0LCAwLjE3MTM5OSwgMC40Mzg3NTEsIDAuNjg3NDUxLCAxLjAyNDEzLCAxLjY5ODM3LCAyLjExOTM4IiwgXAotICAgICAgICAgICIwLjE0MjA5NCwgMC4xODI5MjEsIDAuNDQ0MjU5LCAwLjY4ODk3NiwgMS4wMjQwOSwgMS42OTgzOSwgMi4xMTk0OCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMzQ3NzIsIDAuMjAxMzEzLCAwLjU3ODE4NSwgMC45MTA0MDcsIDEuMzU0MTgsIDIuMjM5NzUsIDIuNzkzNzUiLCBcCi0gICAgICAgICAgIjAuMTQzMjk0LCAwLjIwOTg1MiwgMC41ODY2NDIsIDAuOTE4OTU4LCAxLjM2MjI5LCAyLjI0Nzg3LCAyLjgwMTg4IiwgXAotICAgICAgICAgICIwLjE1MzgwMywgMC4yMjA0NDgsIDAuNTk3Nzc3LCAwLjkyOTc0MSwgMS4zNzM0MywgMi4yNjAyOCwgMi44MTM1OSIsIFwKLSAgICAgICAgICAiMC4xNjQyNjksIDAuMjMxMDIxLCAwLjYwODI0MywgMC45NDA3NCwgMS4zODQyNiwgMi4yNzEzMiwgMi44MjQyNCIsIFwKLSAgICAgICAgICAiMC4xNzQ4ODEsIDAuMjQxNTU3LCAwLjYxOTA2MywgMC45NTEyNjIsIDEuMzk0NzQsIDIuMjgxMjEsIDIuODM0NiIsIFwKLSAgICAgICAgICAiMC4xOTIwNywgMC4yNTg0OTksIDAuNjM2MDc2LCAwLjk2ODg2LCAxLjQxMTc2LCAyLjI5ODI2LCAyLjg1MjU0IiwgXAotICAgICAgICAgICIwLjIwNjc5MywgMC4yNzM0NSwgMC42NTA5MjcsIDAuOTgzNjI5LCAxLjQyNjY5LCAyLjMxMzUsIDIuODY2ODkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjQ3NzI5LCAwLjM3ODA1MSwgMS4xMTU4MSwgMS43NjU3MywgMi42MjU4NiwgNC4zNjg3NCwgNS40Mzc1NyIsIFwKLSAgICAgICAgICAiMC4yNDc4NTcsIDAuMzc3OTY5LCAxLjExNTIzLCAxLjc2NTY5LCAyLjYzMzAzLCA0LjM2MzEzLCA1LjQ0MDU5IiwgXAotICAgICAgICAgICIwLjI0NzI1NCwgMC4zNzkyODQsIDEuMTExOTgsIDEuNzY0MzYsIDIuNjMzNzcsIDQuMzU3OTYsIDUuNDM1MyIsIFwKLSAgICAgICAgICAiMC4yNDg4NTIsIDAuMzc3Njc3LCAxLjExNTQzLCAxLjc2NTgzLCAyLjYzNDA0LCA0LjM1NTcxLCA1LjQ0NjE1IiwgXAotICAgICAgICAgICIwLjI1MTAxLCAwLjM3ODgzMywgMS4xMTU2NiwgMS43NjQ2MSwgMi42MzMxNSwgNC4zNjg4MywgNS40NDIxIiwgXAotICAgICAgICAgICIwLjI1NjUzNiwgMC4zODE5NDEsIDEuMTE1MDMsIDEuNzY2MDEsIDIuNjMyNzYsIDQuMzU4NDQsIDUuNDMzMDMiLCBcCi0gICAgICAgICAgIjAuMjYzMDMsIDAuMzg2NDEyLCAxLjExNDg0LCAxLjc2MjMsIDIuNjMyNjMsIDQuMzY4MzQsIDUuNDQwNTUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQ5OTY3LCAwLjA3NDUyNiwgMC4yMTM3MDcsIDAuMzM2NTA2LCAwLjUwMDMzOCwgMC44Mjc2NTIsIDEuMDMyNTIiLCBcCi0gICAgICAgICAgIjAuMDU5ODU4LCAwLjA4NDQ2LCAwLjIyMzYyNiwgMC4zNDYzOTEsIDAuNTEwMTk4LCAwLjgzNzg5NywgMS4wNDE5IiwgXAotICAgICAgICAgICIwLjA3MjIyNiwgMC4wOTY4MDcsIDAuMjM2MDIzLCAwLjM1ODk3OSwgMC41MjEzNiwgMC44NDg3NDMsIDEuMDUzOTkiLCBcCi0gICAgICAgICAgIjAuMDg1MTMzLCAwLjEwOTI4MiwgMC4yNDg0NjksIDAuMzcxMjAzLCAwLjUzNDgzOCwgMC44NjEyNDcsIDEuMDY1NjEiLCBcCi0gICAgICAgICAgIjAuMDk3Nzg4LCAwLjEyMjI4MiwgMC4yNjExMDcsIDAuMzgzNzA4LCAwLjU0NzQxNywgMC44NzMwODgsIDEuMDc3NjMiLCBcCi0gICAgICAgICAgIjAuMTE2MTMsIDAuMTQyODQ3LCAwLjI4MDkyMiwgMC40MDQxNjEsIDAuNTY3Mzc0LCAwLjg5Mjk0NiwgMS4wOTc2NiIsIFwKLSAgICAgICAgICAiMC4xMjkyNjIsIDAuMTU5NzE5LCAwLjI5ODQ4NCwgMC40MjE2ODEsIDAuNTg1MDM1LCAwLjkxMDI2NywgMS4xMTQ2NSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTU2MTgsIDAuMTQ2NDIzLCAwLjQzMjk2MSwgMC42ODYwMTMsIDEuMDIyNjUsIDEuNjk2ODEsIDIuMTE4MjMiLCBcCi0gICAgICAgICAgIjAuMDk2MDIyLCAwLjE0NjQ0MywgMC40MzI3NTUsIDAuNjg1OTE1LCAxLjAyMjY0LCAxLjY5NjY1LCAyLjEyMTIyIiwgXAotICAgICAgICAgICIwLjEwMDAwMSwgMC4xNDgyMzEsIDAuNDMyNzE1LCAwLjY4NTQxOSwgMS4wMjIzLCAxLjY5OTMxLCAyLjExNzg3IiwgXAotICAgICAgICAgICIwLjEwNjEzMSwgMC4xNTI3NzIsIDAuNDMzMzUsIDAuNjg1ODkxLCAxLjAyMjM3LCAxLjY5NjU1LCAyLjExOTcyIiwgXAotICAgICAgICAgICIwLjExMzc3NCwgMC4xNTg0MTEsIDAuNDM0MDk0LCAwLjY4NTQsIDEuMDIyNjUsIDEuNjk3OTcsIDIuMTIxMzQiLCBcCi0gICAgICAgICAgIjAuMTI3NzAxLCAwLjE3MDA1NywgMC40Mzc5MzQsIDAuNjg1NzUxLCAxLjAyMjQxLCAxLjY5OTQsIDIuMTIxNDYiLCBcCi0gICAgICAgICAgIjAuMTQxNzk2LCAwLjE4MTQyNiwgMC40NDM1MTgsIDAuNjg3NDI4LCAxLjAyMzk5LCAxLjY5NzYsIDIuMTIyMzMiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTMwNjExLCAwLjE5NzE4NiwgMC41NzM5NjgsIDAuOTA2Nzc3LCAxLjM0ODk2LCAyLjIzNTc5LCAyLjc4OCIsIFwKLSAgICAgICAgICAiMC4xMzkwMzEsIDAuMjA1NjU0LCAwLjU4MjQzMywgMC45MTQ3NDQsIDEuMzU4MDUsIDIuMjQzOTcsIDIuNzk3ODYiLCBcCi0gICAgICAgICAgIjAuMTQ5NzA0LCAwLjIxNjYzOSwgMC41OTM4NSwgMC45MjYxNDEsIDEuMzY5ODQsIDIuMjU2ODIsIDIuODA5NzUiLCBcCi0gICAgICAgICAgIjAuMTYwNjI5LCAwLjIyNjk2MywgMC42MDQ3OTksIDAuOTM3MDI4LCAxLjM4MDU4LCAyLjI2NzY2LCAyLjgyMDQ1IiwgXAotICAgICAgICAgICIwLjE3MTU4NCwgMC4yMzgxNSwgMC42MTUxNzgsIDAuOTQ3NjcxLCAxLjM5MDk5LCAyLjI3NzQ0LCAyLjgzMDk0IiwgXAotICAgICAgICAgICIwLjE4OTQ3LCAwLjI1NTc5MiwgMC42MzI3MDksIDAuOTY1NTE4LCAxLjQwODM0LCAyLjI5NDcyLCAyLjg0ODgyIiwgXAotICAgICAgICAgICIwLjIwNTEyMSwgMC4yNzEzNzQsIDAuNjQ4MzExLCAwLjk4MDc2MywgMS40MjM3OSwgMi4zMTExNiwgMi44NjQxNiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yNDc1MjcsIDAuMzc4MjIxLCAxLjExNTYyLCAxLjc2MDk0LCAyLjYzMjg4LCA0LjM2OTEsIDUuNDQ0NzIiLCBcCi0gICAgICAgICAgIjAuMjQ3ODc4LCAwLjM3NzkyLCAxLjExNTIyLCAxLjc2NTY1LCAyLjYyNjAxLCA0LjM1NTQ2LCA1LjQzOTkyIiwgXAotICAgICAgICAgICIwLjI0NzgzOSwgMC4zNzgwMjQsIDEuMTEyMTQsIDEuNzY1NzQsIDIuNjI1ODMsIDQuMzU1NTUsIDUuNDQ2NTEiLCBcCi0gICAgICAgICAgIjAuMjQ5MDI3LCAwLjM3OTUzMiwgMS4xMTIzOCwgMS43NjYxOCwgMi42MjU4LCA0LjM1NDk2LCA1LjQ0NjE5IiwgXAotICAgICAgICAgICIwLjI1MjcwMiwgMC4zNzkxMjMsIDEuMTE0MzIsIDEuNzY1NDIsIDIuNjMzMDksIDQuMzY4NjEsIDUuNDQwMDEiLCBcCi0gICAgICAgICAgIjAuMjYwNTY0LCAwLjM4NDAxNSwgMS4xMTQyNSwgMS43NjYzMiwgMi42MzI0NiwgNC4zNjQ3NywgNS40MzY4NyIsIFwKLSAgICAgICAgICAiMC4yNjkyMTcsIDAuMzg5OTU4LCAxLjExNTUzLCAxLjc2MTM4LCAyLjYzMTI2LCA0LjM1NTU5LCA1LjQzODY5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyNTE1LCAwLjAwMjUxNSwgMC4wMDI1MTUsIDAuMDAyNTE1LCAwLjAwMjUxNCwgMC4wMDI1MTQsIDAuMDAyNTE0IiwgXAotICAgICAgICAgICIwLjAwMjQ5OSwgMC4wMDI1MDEsIDAuMDAyNTAzLCAwLjAwMjUwNSwgMC4wMDI1MDUsIDAuMDAyNTA0LCAwLjAwMjUwNCIsIFwKLSAgICAgICAgICAiMC4wMDI0OTUsIDAuMDAyNDk3LCAwLjAwMjUwMSwgMC4wMDI1MDIsIDAuMDAyNSwgMC4wMDI0OTksIDAuMDAyNSIsIFwKLSAgICAgICAgICAiMC4wMDI0OTYsIDAuMDAyNDk2LCAwLjAwMjUwMSwgMC4wMDI1MDEsIDAuMDAyNTAyLCAwLjAwMjUwMSwgMC4wMDI0OTkiLCBcCi0gICAgICAgICAgIjAuMDAyNTA0LCAwLjAwMjQ5OSwgMC4wMDI1MDEsIDAuMDAyNTAxLCAwLjAwMjUwMSwgMC4wMDI0OTksIDAuMDAyNSIsIFwKLSAgICAgICAgICAiMC4wMDI1MDcsIDAuMDAyNTA2LCAwLjAwMjUwMiwgMC4wMDI1MDMsIDAuMDAyNTAyLCAwLjAwMjUsIDAuMDAyNSIsIFwKLSAgICAgICAgICAiMC4wMDI1MTksIDAuMDAyNTE0LCAwLjAwMjUwNSwgMC4wMDI1MDUsIDAuMDAyNTA0LCAwLjAwMjUwMSwgMC4wMDI1MDEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDA0NTQsIDAuMDAwNDU2LCAwLjAwMDQ1OSwgMC4wMDA0NTksIDAuMDAwNDU5LCAwLjAwMDQ2LCAwLjAwMDQ2IiwgXAotICAgICAgICAgICIwLjAwMDQzMiwgMC4wMDA0NCwgMC4wMDA0NTQsIDAuMDAwNDU1LCAwLjAwMDQ1NywgMC4wMDA0NTgsIDAuMDAwNDU5IiwgXAotICAgICAgICAgICIwLjAwMDQxMSwgMC4wMDA0MjQsIDAuMDAwNDQ2LCAwLjAwMDQ1MSwgMC4wMDA0NTQsIDAuMDAwNDU2LCAwLjAwMDQ1NyIsIFwKLSAgICAgICAgICAiMC4wMDAzOTgsIDAuMDAwNDEzLCAwLjAwMDQ0LCAwLjAwMDQ0NywgMC4wMDA0NTEsIDAuMDAwNDU1LCAwLjAwMDQ1NiIsIFwKLSAgICAgICAgICAiMC4wMDAzODgsIDAuMDAwNDAzLCAwLjAwMDQzNCwgMC4wMDA0NDMsIDAuMDAwNDQ4LCAwLjAwMDQ1MywgMC4wMDA0NTQiLCBcCi0gICAgICAgICAgIjAuMDAwMzc3LCAwLjAwMDM5MSwgMC4wMDA0MjcsIDAuMDAwNDM4LCAwLjAwMDQ0NSwgMC4wMDA0NTEsIDAuMDAwNDUzIiwgXAotICAgICAgICAgICIwLjAwMDM3MywgMC4wMDAzODUsIDAuMDAwNDIxLCAwLjAwMDQzMywgMC4wMDA0NDEsIDAuMDAwNDQ4LCAwLjAwMDQ1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyMTI2LCAwLjAwMjEyNywgMC4wMDIxMjgsIDAuMDAyMTI4LCAwLjAwMjEyOCwgMC4wMDIxMjgsIDAuMDAyMTI4IiwgXAotICAgICAgICAgICIwLjAwMjExNiwgMC4wMDIxMiwgMC4wMDIxMjYsIDAuMDAyMTI3LCAwLjAwMjEyNywgMC4wMDIxMjgsIDAuMDAyMTI3IiwgXAotICAgICAgICAgICIwLjAwMjExLCAwLjAwMjExNiwgMC4wMDIxMjUsIDAuMDAyMTI2LCAwLjAwMjEyNiwgMC4wMDIxMjcsIDAuMDAyMTI3IiwgXAotICAgICAgICAgICIwLjAwMjExLCAwLjAwMjExNCwgMC4wMDIxMjMsIDAuMDAyMTI2LCAwLjAwMjEyNywgMC4wMDIxMjcsIDAuMDAyMTI3IiwgXAotICAgICAgICAgICIwLjAwMjExMSwgMC4wMDIxMTYsIDAuMDAyMTIzLCAwLjAwMjEyNSwgMC4wMDIxMjYsIDAuMDAyMTI2LCAwLjAwMjEyNiIsIFwKLSAgICAgICAgICAiMC4wMDIxMTgsIDAuMDAyMTE5LCAwLjAwMjEyMywgMC4wMDIxMjYsIDAuMDAyMTI2LCAwLjAwMjEyNywgMC4wMDIxMjciLCBcCi0gICAgICAgICAgIjAuMDAyMTI5LCAwLjAwMjEyNiwgMC4wMDIxMjUsIDAuMDAyMTI3LCAwLjAwMjEyNywgMC4wMDIxMjgsIDAuMDAyMTI3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwNDU1LCAwLjAwMDQ1NywgMC4wMDA0NiwgMC4wMDA0NiwgMC4wMDA0NjEsIDAuMDAwNDYxLCAwLjAwMDQ2MSIsIFwKLSAgICAgICAgICAiMC4wMDA0MzIsIDAuMDAwNDQxLCAwLjAwMDQ1NCwgMC4wMDA0NTcsIDAuMDAwNDU4LCAwLjAwMDQ1OSwgMC4wMDA0NiIsIFwKLSAgICAgICAgICAiMC4wMDA0MTIsIDAuMDAwNDI1LCAwLjAwMDQ0NywgMC4wMDA0NTIsIDAuMDAwNDU1LCAwLjAwMDQ1OCwgMC4wMDA0NTgiLCBcCi0gICAgICAgICAgIjAuMDAwMzk5LCAwLjAwMDQxNCwgMC4wMDA0NDEsIDAuMDAwNDQ4LCAwLjAwMDQ1MiwgMC4wMDA0NTYsIDAuMDAwNDU3IiwgXAotICAgICAgICAgICIwLjAwMDM5LCAwLjAwMDQwNSwgMC4wMDA0MzYsIDAuMDAwNDQ0LCAwLjAwMDQ1LCAwLjAwMDQ1NCwgMC4wMDA0NTYiLCBcCi0gICAgICAgICAgIjAuMDAwMzgyLCAwLjAwMDM5NSwgMC4wMDA0MjgsIDAuMDAwNDM5LCAwLjAwMDQ0NSwgMC4wMDA0NTEsIDAuMDAwNDUzIiwgXAotICAgICAgICAgICIwLjAwMDM4LCAwLjAwMDM5MSwgMC4wMDA0MjMsIDAuMDAwNDM1LCAwLjAwMDQ0MiwgMC4wMDA0NDksIDAuMDAwNDUyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxNzM4LCAwLjAwMTc0LCAwLjAwMTc0MiwgMC4wMDE3NDMsIDAuMDAxNzQyLCAwLjAwMTc0MywgMC4wMDE3NDMiLCBcCi0gICAgICAgICAgIjAuMDAxNzMzLCAwLjAwMTczOSwgMC4wMDE3NDgsIDAuMDAxNzUsIDAuMDAxNzUxLCAwLjAwMTc1MiwgMC4wMDE3NTIiLCBcCi0gICAgICAgICAgIjAuMDAxNzI0LCAwLjAwMTczNCwgMC4wMDE3NDcsIDAuMDAxNzUsIDAuMDAxNzUzLCAwLjAwMTc1NCwgMC4wMDE3NTUiLCBcCi0gICAgICAgICAgIjAuMDAxNzE4LCAwLjAwMTcyNywgMC4wMDE3NDQsIDAuMDAxNzQ5LCAwLjAwMTc1MSwgMC4wMDE3NTUsIDAuMDAxNzU0IiwgXAotICAgICAgICAgICIwLjAwMTcxNiwgMC4wMDE3MjYsIDAuMDAxNzQyLCAwLjAwMTc0OCwgMC4wMDE3NSwgMC4wMDE3NTMsIDAuMDAxNzU0IiwgXAotICAgICAgICAgICIwLjAwMTcxOCwgMC4wMDE3MjUsIDAuMDAxNzQxLCAwLjAwMTc0NywgMC4wMDE3NDksIDAuMDAxNzUzLCAwLjAwMTc1MyIsIFwKLSAgICAgICAgICAiMC4wMDE3MjcsIDAuMDAxNzI5LCAwLjAwMTc0MSwgMC4wMDE3NDcsIDAuMDAxNzQ4LCAwLjAwMTc1MywgMC4wMDE3NTMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDA0NTMsIDAuMDAwNDU2LCAwLjAwMDQ1OSwgMC4wMDA0NiwgMC4wMDA0NiwgMC4wMDA0NjEsIDAuMDAwNDYxIiwgXAotICAgICAgICAgICIwLjAwMDQyOCwgMC4wMDA0MzgsIDAuMDAwNDUzLCAwLjAwMDQ1NiwgMC4wMDA0NTgsIDAuMDAwNDU5LCAwLjAwMDQ2IiwgXAotICAgICAgICAgICIwLjAwMDQxMSwgMC4wMDA0MjQsIDAuMDAwNDQ2LCAwLjAwMDQ1MiwgMC4wMDA0NTUsIDAuMDAwNDU4LCAwLjAwMDQ1OCIsIFwKLSAgICAgICAgICAiMC4wMDA0LCAwLjAwMDQxMywgMC4wMDA0NCwgMC4wMDA0NDgsIDAuMDAwNDUyLCAwLjAwMDQ1NSwgMC4wMDA0NTciLCBcCi0gICAgICAgICAgIjAuMDAwMzk3LCAwLjAwMDQwOCwgMC4wMDA0MzYsIDAuMDAwNDQ0LCAwLjAwMDQ1LCAwLjAwMDQ1NCwgMC4wMDA0NTUiLCBcCi0gICAgICAgICAgIjAuMDAwNDAyLCAwLjAwMDQwOCwgMC4wMDA0MzIsIDAuMDAwNDQxLCAwLjAwMDQ0NywgMC4wMDA0NTIsIDAuMDAwNDU0IiwgXAotICAgICAgICAgICIwLjAwMDQxMiwgMC4wMDA0MTMsIDAuMDAwNDMsIDAuMDAwNDM5LCAwLjAwMDQ0NSwgMC4wMDA0NTEsIDAuMDAwNDUzIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogTkFORDNYNCAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChOQU5EM1g0KSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuNDQ1MDA1OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDM2NjYwMTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDM2NjYwMTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDM2NTUxMjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDE2MzcsIDAuMDAxNjM1LCAwLjAwMTYzNSwgMC4wMDE2MzQsIDAuMDAxNjM1LCAwLjAwMTYzNCwgMC4wMDE2MzQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDE2MzksIDAuMDAxNjQsIDAuMDAxNjQyLCAwLjAwMTY0LCAwLjAwMTY0LCAwLjAwMTY0LCAwLjAwMTY0MSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAzNjA4NjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDM2MDg2OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMzYwMDMyOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTYzNywgMC4wMDE2MzUsIDAuMDAxNjM1LCAwLjAwMTYzNSwgMC4wMDE2MzQsIDAuMDAxNjM0LCAwLjAwMTYzNCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTYzOSwgMC4wMDE2NCwgMC4wMDE2NCwgMC4wMDE2NDEsIDAuMDAxNjQxLCAwLjAwMTY0MiwgMC4wMDE2NDIiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEMpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMzI3MTg0OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMzI2OTk3OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMzI3MTg0OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTA2MywgMC4wMDEwNjEsIDAuMDAxMDYxLCAwLjAwMTA2MSwgMC4wMDEwNiwgMC4wMDEwNTksIDAuMDAxMDYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDE4NTYsIDAuMDAxODU4LCAwLjAwMTg1OCwgMC4wMDE4NiwgMC4wMDE4NTksIDAuMDAxODU5LCAwLjAwMTg1OSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjM5MjI0ODsKLSAgICBmdW5jdGlvbiA6ICIoISgoQSBCKSBDKSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDIxODgzLCAwLjA5NDYwNiwgMC4xNjY4MDksIDAuMjE4NDI1LCAwLjMwMDg0LCAwLjM3Mjk2NiwgMC40NzYxNjkiLCBcCi0gICAgICAgICAgIjAuMDMxODc0LCAwLjEwNDQ3NywgMC4xNzY3NDIsIDAuMjI4MzQyLCAwLjMxMDkxOCwgMC4zODI5NDUsIDAuNDg2MTQyIiwgXAotICAgICAgICAgICIwLjA0NDA3OCwgMC4xMTY4MzIsIDAuMTg5MDk4LCAwLjI0MDY2OCwgMC4zMjMxNTMsIDAuMzk1MjU3LCAwLjQ5NzQ3IiwgXAotICAgICAgICAgICIwLjA1NDI1OSwgMC4xMjk3NDEsIDAuMjAxNjY4LCAwLjI1MzI3MywgMC4zMzU3OTksIDAuNDA3ODgzLCAwLjUxMDg5MiIsIFwKLSAgICAgICAgICAiMC4wNjIzOTQsIDAuMTQyMTk2LCAwLjIxMzk4MSwgMC4yNjU3MDUsIDAuMzQ4MDM3LCAwLjQyMDEyNiwgMC41MjM0MTUiLCBcCi0gICAgICAgICAgIjAuMDczNzk1LCAwLjE2MjY5MiwgMC4yMzQwNjgsIDAuMjg1NTQ5LCAwLjM2ODMzMiwgMC40Mzk4OTEsIDAuNTQzNTIxIiwgXAotICAgICAgICAgICIwLjA4MjI1OCwgMC4xODA0MzUsIDAuMjUyMzgsIDAuMzAzMTM4LCAwLjM4NTUwNCwgMC40NTgwNjgsIDAuNTYwODQ3Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM2MTU5LCAwLjE4NDc4NSwgMC4zMzMxMTEsIDAuNDM5NDE3LCAwLjYwODc3LCAwLjc1NzMyMiwgMC45Njk0MDQiLCBcCi0gICAgICAgICAgIjAuMDM4NTQ3LCAwLjE4NDU5NiwgMC4zMzMwNzcsIDAuNDM5MjQyLCAwLjYwOTAyNiwgMC43NTc2MjIsIDAuOTY5NjI3IiwgXAotICAgICAgICAgICIwLjA0NjIxNSwgMC4xODUyOTUsIDAuMzMzMDU5LCAwLjQzOTMxMywgMC42MDg4OTEsIDAuNzU3MjIxLCAwLjk2OTc1NCIsIFwKLSAgICAgICAgICAiMC4wNTUyNSwgMC4xODg0OTksIDAuMzMzMzY5LCAwLjQzOTE0OSwgMC42MDg5NzEsIDAuNzU3MjUxLCAwLjk2OTcxOSIsIFwKLSAgICAgICAgICAiMC4wNjQ3NDcsIDAuMTkzNjE4LCAwLjMzNTQ5NSwgMC40Mzk2NDcsIDAuNjA4NzUzLCAwLjc1NzIxMSwgMC45Njk2NTciLCBcCi0gICAgICAgICAgIjAuMDc4MDE3LCAwLjIwMzcxNiwgMC4zNDE2OTUsIDAuNDQzNCwgMC42MDk3NzIsIDAuNzU3MzA0LCAwLjk2OTYzMyIsIFwKLSAgICAgICAgICAiMC4wODg5NDksIDAuMjEzOTE5LCAwLjM0ODM3NSwgMC40NDg4NTIsIDAuNjEyNjkyLCAwLjc1ODUwNywgMC45NjkxNDMiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTQzMTYsIDAuMjQ5NzY0LCAwLjQ0NTA1OCwgMC41ODQ1NTEsIDAuODA3Mzc2LCAxLjAwMzIxLCAxLjI4MTYiLCBcCi0gICAgICAgICAgIjAuMDYyMzAxLCAwLjI1ODI0MywgMC40NTM1MzQsIDAuNTkzMzM4LCAwLjgxNjI2MSwgMS4wMTE5NSwgMS4yOTAyNSIsIFwKLSAgICAgICAgICAiMC4wNzEzMzksIDAuMjY3MzYzLCAwLjQ2MjczNywgMC42MDIyNTMsIDAuODI1MjM1LCAxLjAyMTE0LCAxLjI5OTE5IiwgXAotICAgICAgICAgICIwLjA4MDI0MiwgMC4yNzYzNzEsIDAuNDcxODM2LCAwLjYxMTMxNSwgMC44MzQzOTUsIDEuMDMwMTIsIDEuMzA4OTkiLCBcCi0gICAgICAgICAgIjAuMDg4NzM3LCAwLjI4NTMzMywgMC40ODA5NDYsIDAuNjIwMjY0LCAwLjg0Mzk1OSwgMS4wMzg3MiwgMS4zMTc3NyIsIFwKLSAgICAgICAgICAiMC4xMDExMTUsIDAuMjk5NTk2LCAwLjQ5NTMzOCwgMC42MzQ3NjQsIDAuODU4MDEyLCAxLjA1MzI1LCAxLjMzMjMiLCBcCi0gICAgICAgICAgIjAuMTEwOTU4LCAwLjMxMjA4NywgMC41MDc4MTEsIDAuNjQ3NjYxLCAwLjg3MDYwNywgMS4wNjYyOSwgMS4zNDUwOSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4NTg5OCwgMC40NjkxOTksIDAuODUyNjQxLCAxLjEyNjQzLCAxLjU2MDc5LCAxLjk0MTgzLCAyLjQ5NDU0IiwgXAotICAgICAgICAgICIwLjA4NTc5NSwgMC40NjkxODksIDAuODUyNDQ1LCAxLjEyMjk0LCAxLjU2NDUyLCAxLjk0MTc5LCAyLjQ5NDYzIiwgXAotICAgICAgICAgICIwLjA4NzE3MiwgMC40Njg2NzUsIDAuODUyMTA5LCAxLjEyMzg5LCAxLjU2MzkxLCAxLjk0MTg0LCAyLjQ5NDQ0IiwgXAotICAgICAgICAgICIwLjA4OTg1OCwgMC40NjgxNzcsIDAuODUxNjY1LCAxLjEyNTAxLCAxLjU2MzEyLCAxLjk0NzksIDIuNDk1MjMiLCBcCi0gICAgICAgICAgIjAuMDkzNjA5LCAwLjQ2ODM1LCAwLjg1MjQyNCwgMS4xMjU4NiwgMS41NTk3MSwgMS45NDU1NCwgMi40OTQ0MyIsIFwKLSAgICAgICAgICAiMC4xMDEzNjUsIDAuNDY5OTU5LCAwLjg1MjI2NiwgMS4xMjU5MSwgMS41NjI2NCwgMS45NDY1OSwgMi40OTQ0NCIsIFwKLSAgICAgICAgICAiMC4xMDkyODMsIDAuNDcyMDczLCAwLjg1MDM3NiwgMS4xMjYxNCwgMS41NjM3NywgMS45NDc1NiwgMi40OTQ0OCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyMDYyOSwgMC4wOTI0NzQsIDAuMTY0MjM1LCAwLjIxNTM5MywgMC4yOTc0NSwgMC4zNjg5NTgsIDAuNDcxMzE2IiwgXAotICAgICAgICAgICIwLjAzMDYxOCwgMC4xMDI0MjYsIDAuMTc0MTE4LCAwLjIyNTMyMSwgMC4zMDczODQsIDAuMzc4OSwgMC40ODEzMTgiLCBcCi0gICAgICAgICAgIjAuMDQyNTE3LCAwLjExNDg0MSwgMC4xODY0NTMsIDAuMjM3NjMsIDAuMzE5NTA1LCAwLjM5MTM3OCwgMC40OTI0MzUiLCBcCi0gICAgICAgICAgIjAuMDUyMDExLCAwLjEyNzE3MSwgMC4xOTg5NTUsIDAuMjUwMDQ2LCAwLjMzMjA1MiwgMC40MDM2MjgsIDAuNTA1ODkiLCBcCi0gICAgICAgICAgIjAuMDYwNDAzLCAwLjEzOTY3OCwgMC4yMTEyOTcsIDAuMjYyNjM0LCAwLjM0NDQxOSwgMC40MTYwMDcsIDAuNTE4NTg5IiwgXAotICAgICAgICAgICIwLjA3MTI0OCwgMC4xNjA1MDQsIDAuMjMxMjkxLCAwLjI4MjQ1NiwgMC4zNjQ2MjgsIDAuNDM1OTM5LCAwLjUzODM0MiIsIFwKLSAgICAgICAgICAiMC4wNzk0NzgsIDAuMTc4MjcyLCAwLjI0OTYzMiwgMC4zMDAwMjgsIDAuMzgxODc2LCAwLjQ1MzksIDAuNTU1MTM4Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM0MTA1LCAwLjE4MTU3OCwgMC4zMjkxNTEsIDAuNDM0MzU3LCAwLjYwMzEyMywgMC43NTA2MzYsIDAuOTYwOTEzIiwgXAotICAgICAgICAgICIwLjAzNjgxMiwgMC4xODE1NjYsIDAuMzI5MDAyLCAwLjQzNDMzMywgMC42MDMxMTgsIDAuNzUwNTI1LCAwLjk2MTUwNiIsIFwKLSAgICAgICAgICAiMC4wNDQ4NDcsIDAuMTgyMzI3LCAwLjMyOTAxOCwgMC40MzQzMjEsIDAuNjAzMDEzLCAwLjc1MDU3MiwgMC45NjExNzQiLCBcCi0gICAgICAgICAgIjAuMDU0NTA4LCAwLjE4NTk5MiwgMC4zMjkzOSwgMC40MzQzNDgsIDAuNjAzMDQ5LCAwLjc1MDUzMiwgMC45NjA3MzQiLCBcCi0gICAgICAgICAgIjAuMDYyNjUxLCAwLjE5MTIwNCwgMC4zMzE2MTcsIDAuNDM0ODgzLCAwLjYwMzAyLCAwLjc1MDU2NywgMC45NjE0NCIsIFwKLSAgICAgICAgICAiMC4wNzU3MTgsIDAuMjAxMjUxLCAwLjMzNzk1NCwgMC40Mzg5MDcsIDAuNjAzODM3LCAwLjc1MDQ5MSwgMC45NjExNSIsIFwKLSAgICAgICAgICAiMC4wODYwNSwgMC4yMTE1NjgsIDAuMzQ0NzM4LCAwLjQ0NDM0MiwgMC42MDY3OCwgMC43NTE3NzIsIDAuOTYwODIiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTE5OTEsIDAuMjQ3NDM1LCAwLjQ0MjY1OCwgMC41ODI0NjMsIDAuODA1MTk3LCAxLjAwMDY3LCAxLjI3OTc0IiwgXAotICAgICAgICAgICIwLjA2MDIwMiwgMC4yNTYwMzUsIDAuNDUxMzA4LCAwLjU5MTA3NSwgMC44MTM4NTQsIDEuMDA5NDYsIDEuMjg4NDUiLCBcCi0gICAgICAgICAgIjAuMDcwNjIzLCAwLjI2NjcwNCwgMC40NjIwNDEsIDAuNjAxNDYsIDAuODI1MTg4LCAxLjAxOTgzLCAxLjI5OTgyIiwgXAotICAgICAgICAgICIwLjA4MTAyMywgMC4yNzczNDMsIDAuNDcyOTA4LCAwLjYxMjM1NywgMC44MzU5NSwgMS4wMzA0OCwgMS4zMTAzOCIsIFwKLSAgICAgICAgICAiMC4wOTExMSwgMC4yODc4NDksIDAuNDgzMzUyLCAwLjYyMzAxNCwgMC44NDYyMywgMS4wNDEyNSwgMS4zMjA0MyIsIFwKLSAgICAgICAgICAiMC4xMDU3MjYsIDAuMzA0ODgsIDAuNTAwNjAyLCAwLjY0MDAyNCwgMC44NjMyMTgsIDEuMDU4NDcsIDEuMzM3OCIsIFwKLSAgICAgICAgICAiMC4xMTY2MDIsIDAuMzE5NjA2LCAwLjUxNTQxMiwgMC42NTUwNjYsIDAuODc4MTk4LCAxLjA3MzcxLCAxLjM1MjYyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg1OTA0LCAwLjQ2OTE1MSwgMC44NTIzMDgsIDEuMTIyOTUsIDEuNTYzOTQsIDEuOTQ4MDYsIDIuNDg3NzgiLCBcCi0gICAgICAgICAgIjAuMDg1ODA5LCAwLjQ2OTExMiwgMC44NTIzMzEsIDEuMTI2NjEsIDEuNTYwNjgsIDEuOTQ3OTEsIDIuNDg3MjYiLCBcCi0gICAgICAgICAgIjAuMDg4MjY4LCAwLjQ2ODk5OCwgMC44NTIwNSwgMS4xMjYsIDEuNTU5NywgMS45NDY2OSwgMi40ODc4MSIsIFwKLSAgICAgICAgICAiMC4wOTI2MDksIDAuNDY5MTAxLCAwLjg1MjU1OCwgMS4xMjYxMywgMS41NTk2NCwgMS45NDU0MiwgMi40ODc2NiIsIFwKLSAgICAgICAgICAiMC4wOTgyODgsIDAuNDY5MjQxLCAwLjg1MDUwMiwgMS4xMjMwNiwgMS41NjQwOCwgMS45NDYxNywgMi40OTQ4NiIsIFwKLSAgICAgICAgICAiMC4xMDkzMjQsIDAuNDcxMTk3LCAwLjg1MjQ1NywgMS4xMjM3MywgMS41NjI2MywgMS45NDY2MywgMi40OTUxMSIsIFwKLSAgICAgICAgICAiMC4xMTk0NTIsIDAuNDc0Mzc0LCAwLjg1MjM3NSwgMS4xMjU2OCwgMS41NjMyNSwgMS45NDIsIDIuNDg5OTQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTkyOSwgMC4wOTExMDQsIDAuMTYyODU5LCAwLjIxNDE3OSwgMC4yOTYzNTMsIDAuMzY4MTI3LCAwLjQ3MDU3NSIsIFwKLSAgICAgICAgICAiMC4wMjkyOTgsIDAuMTAxMTE2LCAwLjE3Mjg5NywgMC4yMjQyNTgsIDAuMzA2MzY3LCAwLjM3Nzg5MSwgMC40ODA2NTkiLCBcCi0gICAgICAgICAgIjAuMDQwODk0LCAwLjExMzUsIDAuMTg1MzE5LCAwLjIzNjE5OCwgMC4zMTgwMDYsIDAuMzg5NjcxLCAwLjQ5MjY5NCIsIFwKLSAgICAgICAgICAiMC4wNDk5NDYsIDAuMTI1Nzk0LCAwLjE5NzYzLCAwLjI0ODg1OSwgMC4zMzA4MjYsIDAuNDAyNjc5LCAwLjUwNDMyNSIsIFwKLSAgICAgICAgICAiMC4wNTc1MjcsIDAuMTM4OTI3LCAwLjIxMDIwMiwgMC4yNjE1MjMsIDAuMzQzNjkxLCAwLjQxNTI4NCwgMC41MTY3ODkiLCBcCi0gICAgICAgICAgIjAuMDY3MDQ5LCAwLjE1OTI1OSwgMC4yMzAxMTQsIDAuMjgxMzgzLCAwLjM2MzcsIDAuNDM1MjE4LCAwLjUzNzczOCIsIFwKLSAgICAgICAgICAiMC4wNzU0NywgMC4xNzcxODEsIDAuMjQ4NDc4LCAwLjI5ODkyNCwgMC4zODA4NTEsIDAuNDUzMDE3LCAwLjU1NTMxOCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzMjUwMiwgMC4xODA2NjMsIDAuMzI4OTA3LCAwLjQzNTA1OSwgMC42MDQ1NzcsIDAuNzUyNTA4LCAwLjk2NDQ2MiIsIFwKLSAgICAgICAgICAiMC4wMzU0NjIsIDAuMTgwNzQ0LCAwLjMyOTAwNywgMC40MzQ4NjYsIDAuNjA0MjMzLCAwLjc1Mzg5MSwgMC45NjQ0MTEiLCBcCi0gICAgICAgICAgIjAuMDQzNzA5LCAwLjE4MTQ3LCAwLjMyODg1MiwgMC40MzQ4ODQsIDAuNjA0MzM5LCAwLjc1MjQzNiwgMC45NjQ2NjYiLCBcCi0gICAgICAgICAgIjAuMDUzNDcsIDAuMTg1NDE5LCAwLjMyOTQwNywgMC40MzQ4MTUsIDAuNjA0MjMsIDAuNzUzMDIzLCAwLjk2NDMwOCIsIFwKLSAgICAgICAgICAiMC4wNjI1NzYsIDAuMTkwMjEyLCAwLjMzMjE0OCwgMC40MzU0ODMsIDAuNjA0MzM4LCAwLjc1MjQyNSwgMC45NjU2ODEiLCBcCi0gICAgICAgICAgIjAuMDc2MzY0LCAwLjIwMDQ3NiwgMC4zMzgzMDYsIDAuNDQwMTQ2LCAwLjYwNjMxMywgMC43NTM2NDksIDAuOTY0MTE5IiwgXAotICAgICAgICAgICIwLjA4NTEwOSwgMC4yMTEwNzMsIDAuMzQ0ODg4LCAwLjQ0NDk3OSwgMC42MDg1LCAwLjc1NTA3OSwgMC45NjYxNDciKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDczODEsIDAuMjQyOTQ0LCAwLjQzODE2NywgMC41Nzc4MDEsIDAuODAwNzYxLCAwLjk5NTgwNiwgMS4yNzU0NCIsIFwKLSAgICAgICAgICAiMC4wNTU1OTYsIDAuMjUxNDgxLCAwLjQ0Njc2MSwgMC41ODYzMjksIDAuODA5MDk3LCAxLjAwNDQsIDEuMjgzMjQiLCBcCi0gICAgICAgICAgIjAuMDY2MzI2LCAwLjI2MjMwMSwgMC40NTc3MDgsIDAuNTk3MTA3LCAwLjgyMDI1NCwgMS4wMTUyMywgMS4yOTQxMyIsIFwKLSAgICAgICAgICAiMC4wNzczNjMsIDAuMjczMDE4LCAwLjQ2ODQwOCwgMC42MDgwOSwgMC44MzEwNTIsIDEuMDI2MTcsIDEuMzA0ODciLCBcCi0gICAgICAgICAgIjAuMDg4NTA2LCAwLjI4NDA2LCAwLjQ3OTU0MiwgMC42MTkxOTYsIDAuODQyMzY5LCAxLjAzNzQsIDEuMzE2MDQiLCBcCi0gICAgICAgICAgIjAuMTAzMTk2LCAwLjMwMTc4NCwgMC40OTcwMywgMC42MzY2ODQsIDAuODU5NjU0LCAxLjA1NDk2LCAxLjMzMzg4IiwgXAotICAgICAgICAgICIwLjExNDkyNCwgMC4zMTc0NzgsIDAuNTEyNzY0LCAwLjY1MjM0NCwgMC44NzUzMDYsIDEuMDcxMjQsIDEuMzQ5MzciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODU4LCAwLjQ3MTQwNCwgMC44NTI0ODUsIDEuMTIyOTgsIDEuNTY0NCwgMS45NDcwNCwgMi40ODc2NiIsIFwKLSAgICAgICAgICAiMC4wODYwNDMsIDAuNDY3OTExLCAwLjg1MjEyLCAxLjEyNjExLCAxLjU2MjE0LCAxLjk0NzE4LCAyLjQ4NjI3IiwgXAotICAgICAgICAgICIwLjA4OTk3NiwgMC40NjkwNjQsIDAuODUyMjY3LCAxLjEyNTc2LCAxLjU2MzYsIDEuOTQ2OTcsIDIuNDk0NTEiLCBcCi0gICAgICAgICAgIjAuMDk2NjE2LCAwLjQ2ODE2OCwgMC44NTA0OTcsIDEuMTI2MTcsIDEuNTYzNjUsIDEuOTQ3MTQsIDIuNDkxODQiLCBcCi0gICAgICAgICAgIjAuMTA0MjgxLCAwLjQ2OTIxNSwgMC44NTA5MDgsIDEuMTI2MzEsIDEuNTY0MjgsIDEuOTQzMjcsIDIuNDkyMTQiLCBcCi0gICAgICAgICAgIjAuMTE4MTM3LCAwLjQ3MTQ4MSwgMC44NTIxODMsIDEuMTI1NzgsIDEuNTYzNjgsIDEuOTQ2NTcsIDIuNDkzODIiLCBcCi0gICAgICAgICAgIjAuMTMwMDAxLCAwLjQ3NjcyOCwgMC44NTIyMzcsIDEuMTI2LCAxLjU2MzQ0LCAxLjk0MTgsIDIuNDg5NjkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMDEyMiwgMC4wMTAxMjgsIDAuMDEwMTMsIDAuMDEwMTMsIDAuMDEwMTMxLCAwLjAxMDEzLCAwLjAxMDEyOSIsIFwKLSAgICAgICAgICAiMC4wMTAwMjYsIDAuMDEwMDcyLCAwLjAxMDA4LCAwLjAxMDA4MSwgMC4wMTAwODQsIDAuMDEwMDgzLCAwLjAxMDA4NCIsIFwKLSAgICAgICAgICAiMC4wMTAwMSwgMC4wMTAwNTksIDAuMDEwMDcsIDAuMDEwMDcyLCAwLjAxMDA3NiwgMC4wMTAwNzYsIDAuMDEwMDc1IiwgXAotICAgICAgICAgICIwLjAxMDAwMSwgMC4wMTAwNTIsIDAuMDEwMDYsIDAuMDEwMDY0LCAwLjAxMDA2NywgMC4wMTAwNzIsIDAuMDEwMDcxIiwgXAotICAgICAgICAgICIwLjAxMDA2NiwgMC4wMTAwNjgsIDAuMDEwMDcsIDAuMDEwMDc1LCAwLjAxMDA3MiwgMC4wMTAwNzQsIDAuMDEwMDc0IiwgXAotICAgICAgICAgICIwLjAxMDE0NiwgMC4wMTAwODcsIDAuMDEwMDc1LCAwLjAxMDA3NiwgMC4wMTAwNzksIDAuMDEwMDYsIDAuMDEwMDc2IiwgXAotICAgICAgICAgICIwLjAxMDI0NiwgMC4wMTAxMTcsIDAuMDEwMDk5LCAwLjAxMDA4NiwgMC4wMTAwODMsIDAuMDEwMDg2LCAwLjAxMDA5NiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxNzg1LCAwLjAwMTg0MSwgMC4wMDE4NDcsIDAuMDAxODQ5LCAwLjAwMTg1MSwgMC4wMDE4NTIsIDAuMDAxODUyIiwgXAotICAgICAgICAgICIwLjAwMTYwNiwgMC4wMDE3ODgsIDAuMDAxODE3LCAwLjAwMTgyNiwgMC4wMDE4MzQsIDAuMDAxODM4LCAwLjAwMTg0MiIsIFwKLSAgICAgICAgICAiMC4wMDE1MDUsIDAuMDAxNzMyLCAwLjAwMTc4NSwgMC4wMDE3OTgsIDAuMDAxODEzLCAwLjAwMTgyMSwgMC4wMDE4MjkiLCBcCi0gICAgICAgICAgIjAuMDAxNDU3LCAwLjAwMTY4NywgMC4wMDE3NTEsIDAuMDAxNzczLCAwLjAwMTc5NCwgMC4wMDE4MDYsIDAuMDAxODE2IiwgXAotICAgICAgICAgICIwLjAwMTQzMSwgMC4wMDE2NTIsIDAuMDAxNzI1LCAwLjAwMTc1MiwgMC4wMDE3NzcsIDAuMDAxNzkxLCAwLjAwMTgwNSIsIFwKLSAgICAgICAgICAiMC4wMDE0MTYsIDAuMDAxNjA1LCAwLjAwMTY4NiwgMC4wMDE3MTgsIDAuMDAxNzUsIDAuMDAxNzY4LCAwLjAwMTc4NSIsIFwKLSAgICAgICAgICAiMC4wMDE0MTgsIDAuMDAxNTc5LCAwLjAwMTY2MSwgMC4wMDE2OTUsIDAuMDAxNzMxLCAwLjAwMTc1MiwgMC4wMDE3NzIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwODUyNSwgMC4wMDg1NDMsIDAuMDA4NTQ1LCAwLjAwODU0NiwgMC4wMDg1NDYsIDAuMDA4NTQ2LCAwLjAwODU0NiIsIFwKLSAgICAgICAgICAiMC4wMDg0MzEsIDAuMDA4NTE5LCAwLjAwODUzMiwgMC4wMDg1MzUsIDAuMDA4NTM5LCAwLjAwODU0MiwgMC4wMDg1NDYiLCBcCi0gICAgICAgICAgIjAuMDA4NDA4LCAwLjAwODUwNywgMC4wMDg1MjcsIDAuMDA4NTMsIDAuMDA4NTM0LCAwLjAwODUzOCwgMC4wMDg1MzciLCBcCi0gICAgICAgICAgIjAuMDA4NDE0LCAwLjAwODUsIDAuMDA4NTIsIDAuMDA4NTI2LCAwLjAwODUzMiwgMC4wMDg1MzgsIDAuMDA4NTM4IiwgXAotICAgICAgICAgICIwLjAwODM4OSwgMC4wMDg0OTksIDAuMDA4NTIxLCAwLjAwODUyNiwgMC4wMDg1MzEsIDAuMDA4NTM0LCAwLjAwODU0IiwgXAotICAgICAgICAgICIwLjAwODQzOSwgMC4wMDg1MTcsIDAuMDA4NTIyLCAwLjAwODUyNSwgMC4wMDg1MzUsIDAuMDA4NTI0LCAwLjAwODUzOCIsIFwKLSAgICAgICAgICAiMC4wMDg1MjMsIDAuMDA4NTQyLCAwLjAwODUzOCwgMC4wMDg1MzQsIDAuMDA4NTM3LCAwLjAwODU0MSwgMC4wMDg1MjIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTc4MSwgMC4wMDE4MzgsIDAuMDAxODQ0LCAwLjAwMTg0NiwgMC4wMDE4NDgsIDAuMDAxODQ4LCAwLjAwMTg0OSIsIFwKLSAgICAgICAgICAiMC4wMDE2MDQsIDAuMDAxNzg1LCAwLjAwMTgxNCwgMC4wMDE4MjMsIDAuMDAxODMxLCAwLjAwMTgzNSwgMC4wMDE4MzkiLCBcCi0gICAgICAgICAgIjAuMDAxNTA2LCAwLjAwMTczLCAwLjAwMTc3OSwgMC4wMDE3OTUsIDAuMDAxODExLCAwLjAwMTgxOCwgMC4wMDE4MjUiLCBcCi0gICAgICAgICAgIjAuMDAxNDYyLCAwLjAwMTY4OCwgMC4wMDE3NSwgMC4wMDE3NzIsIDAuMDAxNzkzLCAwLjAwMTgwNCwgMC4wMDE4MTQiLCBcCi0gICAgICAgICAgIjAuMDAxNDQ0LCAwLjAwMTY1MywgMC4wMDE3MjQsIDAuMDAxNzUsIDAuMDAxNzc2LCAwLjAwMTc5LCAwLjAwMTgwMiIsIFwKLSAgICAgICAgICAiMC4wMDE0NDcsIDAuMDAxNjExLCAwLjAwMTY4OCwgMC4wMDE3MTksIDAuMDAxNzUsIDAuMDAxNzY4LCAwLjAwMTc4NCIsIFwKLSAgICAgICAgICAiMC4wMDE0NzEsIDAuMDAxNTkxLCAwLjAwMTY2NiwgMC4wMDE2OTksIDAuMDAxNzMzLCAwLjAwMTc1MywgMC4wMDE3NzIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjgyNSwgMC4wMDY4NzQsIDAuMDA2ODc4LCAwLjAwNjg4LCAwLjAwNjg4MSwgMC4wMDY4ODIsIDAuMDA2ODgxIiwgXAotICAgICAgICAgICIwLjAwNjcyNCwgMC4wMDY4NzgsIDAuMDA2ODk5LCAwLjAwNjkwNSwgMC4wMDY5MTEsIDAuMDA2OTE0LCAwLjAwNjkxNiIsIFwKLSAgICAgICAgICAiMC4wMDY2NjUsIDAuMDA2ODUyLCAwLjAwNjg4NywgMC4wMDY4OTksIDAuMDA2OTEsIDAuMDA2OTE1LCAwLjAwNjkxOSIsIFwKLSAgICAgICAgICAiMC4wMDY2NzgsIDAuMDA2ODU0LCAwLjAwNjg4MiwgMC4wMDY4OTMsIDAuMDA2OTAzLCAwLjAwNjkxLCAwLjAwNjkyIiwgXAotICAgICAgICAgICIwLjAwNjY4MSwgMC4wMDY4MTksIDAuMDA2ODY3LCAwLjAwNjg4MSwgMC4wMDY4OTQsIDAuMDA2OTAzLCAwLjAwNjkxMSIsIFwKLSAgICAgICAgICAiMC4wMDY3OCwgMC4wMDY4MzEsIDAuMDA2ODYyLCAwLjAwNjg3OCwgMC4wMDY4OTgsIDAuMDA2ODkyLCAwLjAwNjkwOCIsIFwKLSAgICAgICAgICAiMC4wMDY4MSwgMC4wMDY4NDYsIDAuMDA2ODc2LCAwLjAwNjg4MiwgMC4wMDY4OTMsIDAuMDA2OTA0LCAwLjAwNjkwMSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxNzYxLCAwLjAwMTgyOSwgMC4wMDE4MzcsIDAuMDAxODM5LCAwLjAwMTg0MSwgMC4wMDE4NDIsIDAuMDAxODQzIiwgXAotICAgICAgICAgICIwLjAwMTU4MSwgMC4wMDE3NzcsIDAuMDAxODA1LCAwLjAwMTgxNSwgMC4wMDE4MjMsIDAuMDAxODI4LCAwLjAwMTgzMiIsIFwKLSAgICAgICAgICAiMC4wMDE0OTUsIDAuMDAxNzE1LCAwLjAwMTc2NywgMC4wMDE3ODUsIDAuMDAxODAxLCAwLjAwMTgxLCAwLjAwMTgxOCIsIFwKLSAgICAgICAgICAiMC4wMDE1MDgsIDAuMDAxNjgyLCAwLjAwMTc0MiwgMC4wMDE3NjQsIDAuMDAxNzg1LCAwLjAwMTc5NiwgMC4wMDE4MDciLCBcCi0gICAgICAgICAgIjAuMDAxNTk0LCAwLjAwMTY3NywgMC4wMDE3MzYsIDAuMDAxNzU2LCAwLjAwMTc3OCwgMC4wMDE3OSwgMC4wMDE4MDEiLCBcCi0gICAgICAgICAgIjAuMDAxNjUsIDAuMDAxNjQ0LCAwLjAwMTcwMiwgMC4wMDE3MjcsIDAuMDAxNzU0LCAwLjAwMTc2OSwgMC4wMDE3ODQiLCBcCi0gICAgICAgICAgIjAuMDAxNzg2LCAwLjAwMTY4MSwgMC4wMDE3MTYsIDAuMDAxNzM2LCAwLjAwMTc1OCwgMC4wMDE3NzIsIDAuMDAxNzg1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogTkFORDNYNiAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChOQU5EM1g2KSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuNjYzMTk2OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDU0MjU1MTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDU0MjU1MTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDU0MTAwMTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDI0NTYsIDAuMDAyNDUzLCAwLjAwMjQ1MiwgMC4wMDI0NTEsIDAuMDAyNDUyLCAwLjAwMjQ1MSwgMC4wMDI0NTEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDI0NTgsIDAuMDAyNDYsIDAuMDAyNDYyLCAwLjAwMjQ2LCAwLjAwMjQ2LCAwLjAwMjQ2LCAwLjAwMjQ2MSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDA1MzE3ODc7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDA1MzE3ODc7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDA1MzA1NDE7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyNDU2LCAwLjAwMjQ1MywgMC4wMDI0NTIsIDAuMDAyNDUzLCAwLjAwMjQ1MSwgMC4wMDI0NTEsIDAuMDAyNDUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDI0NTgsIDAuMDAyNDYsIDAuMDAyNDYyLCAwLjAwMjQ2MSwgMC4wMDI0NjIsIDAuMDAyNDYzLCAwLjAwMjQ2NCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQykgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDA1MDA4NTk7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDA1MDA1NTk7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDA1MDA4NTk7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxNTY0LCAwLjAwMTU2MiwgMC4wMDE1NiwgMC4wMDE1NiwgMC4wMDE1NTksIDAuMDAxNTU4LCAwLjAwMTU1OCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjc4MywgMC4wMDI3ODUsIDAuMDAyNzg0LCAwLjAwMjc4OCwgMC4wMDI3ODcsIDAuMDAyNzg2LCAwLjAwMjc4NiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjU3NjkzOTsKLSAgICBmdW5jdGlvbiA6ICIoISgoQSBCKSBDKSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE4Mjg4LCAwLjA2NzMyOCwgMC4xMTU4OTYsIDAuMTUwNTM0LCAwLjIwNTg5MiwgMC4yNTQzNzYsIDAuMzIzNTcxIiwgXAotICAgICAgICAgICIwLjAyODI4NSwgMC4wNzcxODEsIDAuMTI1NzU0LCAwLjE2MDM3OSwgMC4yMTU4MTEsIDAuMjY0MTkxLCAwLjMzMzI2NyIsIFwKLSAgICAgICAgICAiMC4wMzk4MTksIDAuMDg5NTc3LCAwLjEzODExNywgMC4xNzI3OTMsIDAuMjI4MTE0LCAwLjI3NjA3MiwgMC4zNDUxNTIiLCBcCi0gICAgICAgICAgIjAuMDQ4NzkzLCAwLjEwMjYyMiwgMC4xNTExMTQsIDAuMTg1NzIyLCAwLjI0MTExMywgMC4yODk1MSwgMC4zNTg3MDkiLCBcCi0gICAgICAgICAgIjAuMDU2MDk4LCAwLjExNDk5NiwgMC4xNjI5NzMsIDAuMTk3NTc4LCAwLjI1MzE0NiwgMC4zMDE1MTIsIDAuMzcwNTg2IiwgXAotICAgICAgICAgICIwLjA2NjI2NSwgMC4xMzUzMSwgMC4xODM2OTksIDAuMjE3NjY0LCAwLjI3Mjk1NiwgMC4zMjEzNjMsIDAuMzkwODUzIiwgXAotICAgICAgICAgICIwLjA3NDUyNywgMC4xNTE2MTQsIDAuMjAxNjM5LCAwLjIzNjA2NCwgMC4yOTA0ODEsIDAuMzM4ODg3LCAwLjQwODEyNSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyODk1NCwgMC4xMjg5NjMsIDAuMjI4OTgyLCAwLjMwMDM0MSwgMC40MTQ1NjksIDAuNTE0MzUyLCAwLjY1NzExIiwgXAotICAgICAgICAgICIwLjAzMTk4OCwgMC4xMjg5NDgsIDAuMjI4OTcyLCAwLjMwMDE0NywgMC40MTQ0MjksIDAuNTE0NTE0LCAwLjY1Njc5NiIsIFwKLSAgICAgICAgICAiMC4wNDAzMjksIDAuMTMxMTc5LCAwLjIyODkwOCwgMC4zMDAxMjQsIDAuNDE0MjY3LCAwLjUxNDMzOCwgMC42NTY5NzQiLCBcCi0gICAgICAgICAgIjAuMDQ5MjcxLCAwLjEzNTkxNywgMC4yMzA5OTgsIDAuMzAwODAxLCAwLjQxNDQyNiwgMC41MTQxNiwgMC42NTcxNzEiLCBcCi0gICAgICAgICAgIjAuMDU4Mjg4LCAwLjE0MjYzNCwgMC4yMzUyODgsIDAuMzAzNjExLCAwLjQxNTEyNCwgMC41MTQyMDYsIDAuNjU3MTUzIiwgXAotICAgICAgICAgICIwLjA3MDU1OSwgMC4xNTQ3OTUsIDAuMjQzODE0LCAwLjMxMDgxOSwgMC40MTk0NDEsIDAuNTE2NTkxLCAwLjY1NzE5NSIsIFwKLSAgICAgICAgICAiMC4wNzg5MzksIDAuMTY2OCwgMC4yNTMwOTYsIDAuMzE4MDAxLCAwLjQyNTI4OSwgMC41MjA4MDgsIDAuNjU5NTg1Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQ1OTQ0LCAwLjE4MDU3LCAwLjMxNDkyMSwgMC40MTExMzcsIDAuNTY0MzkzLCAwLjY5ODM3OCwgMC44OTA3NzMiLCBcCi0gICAgICAgICAgIjAuMDUzOTM3LCAwLjE4OTAyLCAwLjMyMzQ0MywgMC40MTk0MDIsIDAuNTcyODc3LCAwLjcwNzIxOSwgMC44OTkyNTMiLCBcCi0gICAgICAgICAgIjAuMDYzMDc5LCAwLjE5ODI3LCAwLjMzMjc5OSwgMC40Mjg3ODQsIDAuNTgyMzQ4LCAwLjcxNjkxLCAwLjkwODYxOCIsIFwKLSAgICAgICAgICAiMC4wNzE5NjUsIDAuMjA3MjM5LCAwLjM0MTgyOSwgMC40Mzc5MSwgMC41OTE0NjcsIDAuNzI2MDU1LCAwLjkxNzk2NyIsIFwKLSAgICAgICAgICAiMC4wODAwMTksIDAuMjE2MjE5LCAwLjM1MTAxOSwgMC40NDY5ODUsIDAuNjAwNzg1LCAwLjczNDg5MywgMC45MjczNjgiLCBcCi0gICAgICAgICAgIjAuMDkxNjIxLCAwLjIzMDU3MiwgMC4zNjUzMSwgMC40NjE3MjYsIDAuNjE1MzAyLCAwLjc0OTY3OSwgMC45NDE2MiIsIFwKLSAgICAgICAgICAiMC4xMDA4NDksIDAuMjQzMTExLCAwLjM3Nzg5NCwgMC40NzQwOCwgMC42Mjc3MDcsIDAuNzYyMjI1LCAwLjk1NDEzNCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2ODY3MiwgMC4zMzE2MjgsIDAuNTk0Mzg0LCAwLjc3OTkwMSwgMS4wODIzOSwgMS4zNDIyLCAxLjcyMTA5IiwgXAotICAgICAgICAgICIwLjA2ODg0NSwgMC4zMzE1NiwgMC41OTM4MjUsIDAuNzgyMDU4LCAxLjA4MjI5LCAxLjM0MzkzLCAxLjcyMDQ5IiwgXAotICAgICAgICAgICIwLjA3MDM1OSwgMC4zMzE1MSwgMC41OTQyNjEsIDAuNzgwMjQzLCAxLjA4MTQzLCAxLjM0MTcxLCAxLjcxNjk5IiwgXAotICAgICAgICAgICIwLjA3MzM5OCwgMC4zMzE2ODUsIDAuNTkzODMxLCAwLjc4MTg4MSwgMS4wODIwNSwgMS4zNDUzOSwgMS43MTY5MSIsIFwKLSAgICAgICAgICAiMC4wNzc1OTcsIDAuMzMyNTY5LCAwLjU5NzEyNSwgMC43ODA1MTksIDEuMDgyNywgMS4zNDUwMywgMS43MTUyNiIsIFwKLSAgICAgICAgICAiMC4wODU3NjgsIDAuMzM1MDI3LCAwLjU5NDk0NiwgMC43Nzk3NjYsIDEuMDgyNDYsIDEuMzQyMjIsIDEuNzIwNCIsIFwKLSAgICAgICAgICAiMC4wOTI5ODksIDAuMzM4NjEzLCAwLjU5NDgwNSwgMC43ODU5NywgMS4wODIwNiwgMS4zNDUsIDEuNzE2OTgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTcwNjYsIDAuMDY1MTY5LCAwLjExMzEwNiwgMC4xNDcyNzcsIDAuMjAxOTk2LCAwLjI0OTkwMiwgMC4zMTgyODQiLCBcCi0gICAgICAgICAgIjAuMDI3MDE4LCAwLjA3NTAzNCwgMC4xMjI5NjgsIDAuMTU3MTU1LCAwLjIxMTk4NywgMC4yNTk3MDcsIDAuMzI4MjIzIiwgXAotICAgICAgICAgICIwLjAzNzkyMSwgMC4wODczNTEsIDAuMTM1MzY3LCAwLjE2OTUwNSwgMC4yMjQxNTksIDAuMjcyMTA4LCAwLjM0MDM4MyIsIFwKLSAgICAgICAgICAiMC4wNDY2NzQsIDAuMTAwMTA3LCAwLjE0NzY3NywgMC4xODIwMjcsIDAuMjM2MDA3LCAwLjI4NDQ1NywgMC4zNTI4NiIsIFwKLSAgICAgICAgICAiMC4wNTM3MSwgMC4xMTI4NjEsIDAuMTYwMTM5LCAwLjE5NDMxNywgMC4yNDkyNDIsIDAuMjk2OTg3LCAwLjM2NTI1OSIsIFwKLSAgICAgICAgICAiMC4wNjMyNTIsIDAuMTMyOTYzLCAwLjE4MDg3LCAwLjIxNDM0NiwgMC4yNjg5OTIsIDAuMzE2ODM1LCAwLjM4NTQ2MSIsIFwKLSAgICAgICAgICAiMC4wNzAzNjIsIDAuMTQ4OTU4LCAwLjE5ODc2NSwgMC4yMzI3MDMsIDAuMjg2NTIyLCAwLjMzNDMzNiwgMC40MDI2NjQiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjY4MTEsIDAuMTI1Njc1LCAwLjIyNDQwMiwgMC4yOTQ5ODQsIDAuNDA3NzE0LCAwLjUwNjYxOCwgMC42NDc2NjUiLCBcCi0gICAgICAgICAgIjAuMDMwMjI2LCAwLjEyNTY4MiwgMC4yMjQ0MDMsIDAuMjk0OTU1LCAwLjQwNzg1NiwgMC41MDY0MTUsIDAuNjQ3Njk1IiwgXAotICAgICAgICAgICIwLjAzOTA2OSwgMC4xMjgxNTUsIDAuMjI0NDkzLCAwLjI5NDg4LCAwLjQwNzgxOCwgMC41MDY1NiwgMC42NDc3MjUiLCBcCi0gICAgICAgICAgIjAuMDQ3NjgsIDAuMTMzMjY0LCAwLjIyNjkyMiwgMC4yOTU3NDMsIDAuNDA3NzE0LCAwLjUwNjM5MywgMC42NDc2NjkiLCBcCi0gICAgICAgICAgIjAuMDU2MDI2LCAwLjEzOTk2NiwgMC4yMzEyNTIsIDAuMjk4NjE2LCAwLjQwODYzMSwgMC41MDY1MTEsIDAuNjQ3NTE3IiwgXAotICAgICAgICAgICIwLjA2ODA3NiwgMC4xNTI0MzEsIDAuMjQwMSwgMC4zMDU2OTUsIDAuNDEzMjE0LCAwLjUwOTA5MSwgMC42NDc5NjYiLCBcCi0gICAgICAgICAgIjAuMDc3NzUsIDAuMTY0NjQ5LCAwLjI0OTM3MiwgMC4zMTMzMTgsIDAuNDE5MDM5LCAwLjUxMzQ1OSwgMC42NTA1MzgiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDM0NzgsIDAuMTc4MDkxLCAwLjMxMjUzLCAwLjQwODQyMSwgMC41NjIzMDUsIDAuNjk2MzczLCAwLjg4ODA3NSIsIFwKLSAgICAgICAgICAiMC4wNTE2NTUsIDAuMTg2NzI2LCAwLjMyMTEzNSwgMC40MTcxMjIsIDAuNTcxMDM5LCAwLjcwNDk0NCwgMC44OTcwMDMiLCBcCi0gICAgICAgICAgIjAuMDYyMDk5LCAwLjE5NzI4OCwgMC4zMzE5MTYsIDAuNDI3ODM1LCAwLjU4MTQ4OCwgMC43MTYzMTgsIDAuOTA3NjIxIiwgXAotICAgICAgICAgICIwLjA3MjQ4NSwgMC4yMDc5MTUsIDAuMzQyNzIzLCAwLjQzODU5MywgMC41OTI2MDcsIDAuNzI2NTM4LCAwLjkxODc2MyIsIFwKLSAgICAgICAgICAiMC4wODE4NDMsIDAuMjE4NTg4LCAwLjM1MzIwOCwgMC40NDkyOTksIDAuNjAzMjE3LCAwLjczNzMwNywgMC45Mjk1MDkiLCBcCi0gICAgICAgICAgIjAuMDk0OTM2LCAwLjIzNTYyMSwgMC4zNzA1LCAwLjQ2NjY0MiwgMC42MjAzMzIsIDAuNzU0Njk3LCAwLjk0Njk5NiIsIFwKLSAgICAgICAgICAiMC4xMDUyNzIsIDAuMjUwNzM2LCAwLjM4NTM2NiwgMC40ODE0MTUsIDAuNjM1MDA0LCAwLjc2OTY3NSwgMC45NjE1NTIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjg4NDMsIDAuMzMxMDAyLCAwLjU5MjkxOSwgMC43ODIxMjcsIDEuMDc5MjYsIDEuMzQ1NTgsIDEuNzE2NTEiLCBcCi0gICAgICAgICAgIjAuMDY4OTk1LCAwLjMzMTUyLCAwLjU5NDMzLCAwLjc4MDY3NCwgMS4wNzk0LCAxLjM0NDg0LCAxLjcxNjciLCBcCi0gICAgICAgICAgIjAuMDcxODM2LCAwLjMzMjY3OCwgMC41OTMzNTIsIDAuNzgxODM0LCAxLjA4MDUyLCAxLjM0MTQyLCAxLjcxNjkyIiwgXAotICAgICAgICAgICIwLjA3NjczOCwgMC4zMzE2NzksIDAuNTk3MjQxLCAwLjc4MTgxOCwgMS4wNzk0MiwgMS4zNDQ3OSwgMS43MjA3OSIsIFwKLSAgICAgICAgICAiMC4wODI4OSwgMC4zMzI3NzUsIDAuNTk0MjIzLCAwLjc4MTk2NywgMS4wODI3NywgMS4zNDQ2NSwgMS43MTYwNiIsIFwKLSAgICAgICAgICAiMC4wOTQ0MjIsIDAuMzM2MzI5LCAwLjU5NTAzNCwgMC43ODQ2NjcsIDEuMDgyMTcsIDEuMzQyMjksIDEuNzIwOTEiLCBcCi0gICAgICAgICAgIjAuMTA0MjE5LCAwLjM0MjAzOCwgMC41OTY5OCwgMC43ODAzMywgMS4wODIyLCAxLjM0NDg0LCAxLjcxNjc4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE1NzExLCAwLjA2MzgwNiwgMC4xMTE4MTksIDAuMTQ2MTA0LCAwLjIwMTE2MiwgMC4yNDg5NzcsIDAuMzE3NzcxIiwgXAotICAgICAgICAgICIwLjAyNTY5OSwgMC4wNzM2MjMsIDAuMTIxNzgsIDAuMTU2MDczLCAwLjIxMTA2MywgMC4yNTg5NjksIDAuMzI3NTQ2IiwgXAotICAgICAgICAgICIwLjAzNTk3NiwgMC4wODYxMjgsIDAuMTM0MTcxLCAwLjE2ODUwNywgMC4yMjMxNDMsIDAuMjcxMTgxLCAwLjMzOTYyNyIsIFwKLSAgICAgICAgICAiMC4wNDQwMzUsIDAuMDk5MTE4LCAwLjE0NjQ1NSwgMC4xODA3NTIsIDAuMjM1NjY3LCAwLjI4MzY5OCwgMC4zNTE1NTYiLCBcCi0gICAgICAgICAgIjAuMDUwMjg4LCAwLjExMTY3NCwgMC4xNTk2MTgsIDAuMTkzNDUxLCAwLjI0ODI5NywgMC4yOTYzMTQsIDAuMzY0ODg1IiwgXAotICAgICAgICAgICIwLjA1OTI4NywgMC4xMzE1OSwgMC4xNzk4MTUsIDAuMjEzOTYxLCAwLjI2ODE4LCAwLjMxNjE4NiwgMC4zODQ3NDkiLCBcCi0gICAgICAgICAgIjAuMDY1NjgzLCAwLjE0NzMzOSwgMC4xOTc2MTcsIDAuMjMxNzUyLCAwLjI4NjQyMSwgMC4zMzM2MjgsIDAuNDAyMzQ4Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDI1MzEzLCAwLjEyNTE0MywgMC4yMjQ3OTksIDAuMjk2NTQ1LCAwLjQxMDM5OSwgMC41MDk4OTMsIDAuNjUyNTQ0IiwgXAotICAgICAgICAgICIwLjAyOTA0NywgMC4xMjUwNjcsIDAuMjI0ODUyLCAwLjI5NjU3MiwgMC40MTAyNDksIDAuNTA5OTA0LCAwLjY1MjQzOCIsIFwKLSAgICAgICAgICAiMC4wMzgyMzUsIDAuMTI3ODAxLCAwLjIyNTMwNywgMC4yOTYwMiwgMC40MTAyNDcsIDAuNTA5OTYyLCAwLjY1MjY3IiwgXAotICAgICAgICAgICIwLjA0NzI5LCAwLjEzMjg1NywgMC4yMjc2MzYsIDAuMjk3NTM3LCAwLjQxMDAyOCwgMC41MDk3ODEsIDAuNjUyNTE4IiwgXAotICAgICAgICAgICIwLjA1NjEwMywgMC4xMzkzNjEsIDAuMjMxODYxLCAwLjI5OTc4OSwgMC40MTE5MDksIDAuNTEwMDIsIDAuNjUyNTEzIiwgXAotICAgICAgICAgICIwLjA2NzI0NiwgMC4xNTIwOTMsIDAuMjQwNTgsIDAuMzA3MDg5LCAwLjQxNjM1OCwgMC41MTI4MDQsIDAuNjUyOTc1IiwgXAotICAgICAgICAgICIwLjA3Njk0MiwgMC4xNjQyOTUsIDAuMjUwMDIyLCAwLjMxNDg2NSwgMC40MjIwMTYsIDAuNTE3ODAzLCAwLjY1NTI2NSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzODY0OCwgMC4xNzMzNTIsIDAuMzA3NzgzLCAwLjQwMzkwNCwgMC41NTczNywgMC42OTE5MzYsIDAuODgzNDI5IiwgXAotICAgICAgICAgICIwLjA0Njc0MiwgMC4xODE4NCwgMC4zMTYzMjYsIDAuNDEyMzYxLCAwLjU2NTk1MSwgMC43MDAwOCwgMC44OTIwOTYiLCBcCi0gICAgICAgICAgIjAuMDU3NjU3LCAwLjE5MjY4NywgMC4zMjcxODksIDAuNDIzMzE0LCAwLjU3Njc4NSwgMC43MTEzNDksIDAuOTAyOTM5IiwgXAotICAgICAgICAgICIwLjA2ODgyNiwgMC4yMDM0MDIsIDAuMzM4MTA2LCAwLjQzNDAxNiwgMC41ODc1NzIsIDAuNzIxOTA5LCAwLjkxMzg3MyIsIFwKLSAgICAgICAgICAiMC4wNzg4OSwgMC4yMTQ3NTMsIDAuMzQ5MjksIDAuNDQ1NDQsIDAuNTk4OTU0LCAwLjczMzMwMSwgMC45MjUyMDIiLCBcCi0gICAgICAgICAgIjAuMDkxODMxLCAwLjIzMjA2NiwgMC4zNjY1OTMsIDAuNDYwMzM0LCAwLjYxNjM2NiwgMC43NTA1NjEsIDAuOTQyODA1IiwgXAotICAgICAgICAgICIwLjEwMTg1NSwgMC4yNDgzMjcsIDAuMzgyNTg1LCAwLjQ3ODQ5MywgMC42MzIwNjMsIDAuNzY2NzM2LCAwLjk1ODk1OCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2ODgwMSwgMC4zMzE3MTMsIDAuNTk3MjIxLCAwLjc3OTkwMSwgMS4wNzg5OCwgMS4zNDE0MiwgMS43MjA3MyIsIFwKLSAgICAgICAgICAiMC4wNjkxNDEsIDAuMzMxNTA1LCAwLjU5NDE3NSwgMC43ODIxMDQsIDEuMDgyNDYsIDEuMzQ1MDUsIDEuNzIwNCIsIFwKLSAgICAgICAgICAiMC4wNzQxNDEsIDAuMzMxNDk0LCAwLjU5MzExNiwgMC43ODIxMywgMS4wODIxNCwgMS4zNDU0NiwgMS43MjA0NiIsIFwKLSAgICAgICAgICAiMC4wODEzNSwgMC4zMzE3MDgsIDAuNTk0NDY2LCAwLjc4MDU2NiwgMS4wODAyLCAxLjM0NTE0LCAxLjcyMDIxIiwgXAotICAgICAgICAgICIwLjA5MDE0NiwgMC4zMzM1NzMsIDAuNTk0MTcyLCAwLjc4MjA4NywgMS4wODAzMSwgMS4zNDQwMywgMS43MjAxMyIsIFwKLSAgICAgICAgICAiMC4xMDQxMTIsIDAuMzM4Nzg0LCAwLjU5MzQ5MiwgMC43ODE4ODgsIDEuMDgyNTEsIDEuMzQ0MDQsIDEuNzIxMDEiLCBcCi0gICAgICAgICAgIjAuMTE0Nzg1LCAwLjM0NTQ1LCAwLjU5NzY5NSwgMC43ODEyNDMsIDEuMDgwMTYsIDEuMzQ1NTEsIDEuNzE1NjQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxNDczOCwgMC4wMTQ3NTEsIDAuMDE0NzUxLCAwLjAxNDc1LCAwLjAxNDc1MywgMC4wMTQ3NTIsIDAuMDE0NzU0IiwgXAotICAgICAgICAgICIwLjAxNDU3NywgMC4wMTQ2NTQsIDAuMDE0NjY5LCAwLjAxNDY3MywgMC4wMTQ2NzYsIDAuMDE0Njc3LCAwLjAxNDY3OSIsIFwKLSAgICAgICAgICAiMC4wMTQ1NDIsIDAuMDE0NjI3LCAwLjAxNDY0NywgMC4wMTQ2NTksIDAuMDE0NjYyLCAwLjAxNDY1NywgMC4wMTQ2NTkiLCBcCi0gICAgICAgICAgIjAuMDE0NTYyLCAwLjAxNDYyOSwgMC4wMTQ2NDksIDAuMDE0NjUzLCAwLjAxNDY1OSwgMC4wMTQ2NjQsIDAuMDE0NjY4IiwgXAotICAgICAgICAgICIwLjAxNDY1OSwgMC4wMTQ2NTQsIDAuMDE0NjUyLCAwLjAxNDY1NywgMC4wMTQ2NjQsIDAuMDE0NjY0LCAwLjAxNDY2NCIsIFwKLSAgICAgICAgICAiMC4wMTQ3ODgsIDAuMDE0Njg4LCAwLjAxNDY3OSwgMC4wMTQ2NjMsIDAuMDE0NjcsIDAuMDE0NjY1LCAwLjAxNDY3IiwgXAotICAgICAgICAgICIwLjAxNDg1NywgMC4wMTQ3NDIsIDAuMDE0NzE2LCAwLjAxNDcwMywgMC4wMTQ2ODEsIDAuMDE0NjgsIDAuMDE0Njc3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI3NjQsIDAuMDAyODYzLCAwLjAwMjg3NiwgMC4wMDI4OCwgMC4wMDI4ODMsIDAuMDAyODg1LCAwLjAwMjg4NyIsIFwKLSAgICAgICAgICAiMC4wMDI0NjgsIDAuMDAyNzYsIDAuMDAyODExLCAwLjAwMjgzLCAwLjAwMjg0NywgMC4wMDI4NTUsIDAuMDAyODY0IiwgXAotICAgICAgICAgICIwLjAwMjMyNCwgMC4wMDI2NDksIDAuMDAyNzQsIDAuMDAyNzczLCAwLjAwMjgwMywgMC4wMDI4MiwgMC4wMDI4MzUiLCBcCi0gICAgICAgICAgIjAuMDAyMjYsIDAuMDAyNTY5LCAwLjAwMjY4LCAwLjAwMjcyMiwgMC4wMDI3NjQsIDAuMDAyNzg2LCAwLjAwMjgwOCIsIFwKLSAgICAgICAgICAiMC4wMDIyMjcsIDAuMDAyNTExLCAwLjAwMjYzMiwgMC4wMDI2ODEsIDAuMDAyNzMsIDAuMDAyNzU4LCAwLjAwMjc4NCIsIFwKLSAgICAgICAgICAiMC4wMDIyMSwgMC4wMDI0NDMsIDAuMDAyNTY1LCAwLjAwMjYyLCAwLjAwMjY3OCwgMC4wMDI3MTMsIDAuMDAyNzQ2IiwgXAotICAgICAgICAgICIwLjAwMjIxNywgMC4wMDI0MDUsIDAuMDAyNTIzLCAwLjAwMjU4LCAwLjAwMjY0MywgMC4wMDI2OCwgMC4wMDI3MTgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMjMxNiwgMC4wMTIzNSwgMC4wMTIzNTQsIDAuMDEyMzU1LCAwLjAxMjM1NywgMC4wMTIzNTYsIDAuMDEyMzU2IiwgXAotICAgICAgICAgICIwLjAxMjE1MiwgMC4wMTIyOTEsIDAuMDEyMzI5LCAwLjAxMjMzNSwgMC4wMTIzNDIsIDAuMDEyMzQ3LCAwLjAxMjM0OSIsIFwKLSAgICAgICAgICAiMC4wMTIxMjUsIDAuMDEyMjc1LCAwLjAxMjMxMywgMC4wMTIzMjEsIDAuMDEyMzM0LCAwLjAxMjMzOSwgMC4wMTIzNDQiLCBcCi0gICAgICAgICAgIjAuMDEyMDYzLCAwLjAxMjI2OCwgMC4wMTIzLCAwLjAxMjMxNywgMC4wMTIyODcsIDAuMDEyMzMsIDAuMDEyMzM4IiwgXAotICAgICAgICAgICIwLjAxMjA4OSwgMC4wMTIyNzYsIDAuMDEyMjk5LCAwLjAxMjMxMSwgMC4wMTIzMzEsIDAuMDEyMzMxLCAwLjAxMjMzOCIsIFwKLSAgICAgICAgICAiMC4wMTIyMDQsIDAuMDEyMzAxLCAwLjAxMjMxOSwgMC4wMTIzMTUsIDAuMDEyMzI3LCAwLjAxMjMzMywgMC4wMTIzNDEiLCBcCi0gICAgICAgICAgIjAuMDEyMzQ1LCAwLjAxMjM0NiwgMC4wMTIzNDYsIDAuMDEyMzQ1LCAwLjAxMjMzOCwgMC4wMTIzNDMsIDAuMDEyMzQzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI3NTYsIDAuMDAyODU1LCAwLjAwMjg2OCwgMC4wMDI4NzIsIDAuMDAyODc2LCAwLjAwMjg3NywgMC4wMDI4NzkiLCBcCi0gICAgICAgICAgIjAuMDAyNDY0LCAwLjAwMjc0OCwgMC4wMDI4MDksIDAuMDAyODIzLCAwLjAwMjg0LCAwLjAwMjg0OCwgMC4wMDI4NTYiLCBcCi0gICAgICAgICAgIjAuMDAyMzI0LCAwLjAwMjY0MiwgMC4wMDI3MzMsIDAuMDAyNzY1LCAwLjAwMjc5NiwgMC4wMDI4MTIsIDAuMDAyODI4IiwgXAotICAgICAgICAgICIwLjAwMjI2OCwgMC4wMDI1NjksIDAuMDAyNjc3LCAwLjAwMjcxOSwgMC4wMDI3NTksIDAuMDAyNzgxLCAwLjAwMjgwMiIsIFwKLSAgICAgICAgICAiMC4wMDIyNDgsIDAuMDAyNTEyLCAwLjAwMjYyOSwgMC4wMDI2NzcsIDAuMDAyNzI2LCAwLjAwMjc1MywgMC4wMDI3NzkiLCBcCi0gICAgICAgICAgIjAuMDAyMjY2LCAwLjAwMjQ1MywgMC4wMDI1NjksIDAuMDAyNjIxLCAwLjAwMjY3NywgMC4wMDI3MSwgMC4wMDI3NDMiLCBcCi0gICAgICAgICAgIjAuMDAyMzAyLCAwLjAwMjQyOSwgMC4wMDI1MzUsIDAuMDAyNTg3LCAwLjAwMjY0NiwgMC4wMDI2ODEsIDAuMDAyNzE3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDk3NTIsIDAuMDA5ODM3LCAwLjAwOTg1MSwgMC4wMDk4NTUsIDAuMDA5ODU2LCAwLjAwOTg1OSwgMC4wMDk4NiIsIFwKLSAgICAgICAgICAiMC4wMDk1NywgMC4wMDk4MTMsIDAuMDA5ODcyLCAwLjAwOTg4NSwgMC4wMDk4OTgsIDAuMDA5OTA1LCAwLjAwOTkwOSIsIFwKLSAgICAgICAgICAiMC4wMDk0OSwgMC4wMDk3NzYsIDAuMDA5ODQyLCAwLjAwOTg2LCAwLjAwOTg4NiwgMC4wMDk4OTUsIDAuMDA5OTA5IiwgXAotICAgICAgICAgICIwLjAwOTUzNCwgMC4wMDk3NzEsIDAuMDA5ODMyLCAwLjAwOTg1NiwgMC4wMDk4NzEsIDAuMDA5ODg4LCAwLjAwOTkwNyIsIFwKLSAgICAgICAgICAiMC4wMDk1NDIsIDAuMDA5NzIzLCAwLjAwOTgwMSwgMC4wMDk4MjYsIDAuMDA5ODYzLCAwLjAwOTg2OSwgMC4wMDk4ODYiLCBcCi0gICAgICAgICAgIjAuMDA5NTkzLCAwLjAwOTc0NywgMC4wMDk4MDgsIDAuMDA5ODMzLCAwLjAwOTg2MiwgMC4wMDk4NjksIDAuMDA5ODg4IiwgXAotICAgICAgICAgICIwLjAwOTc0MiwgMC4wMDk3ODEsIDAuMDA5ODA4LCAwLjAwOTg1LCAwLjAwOTg2NCwgMC4wMDk4NywgMC4wMDk4ODciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjcxNiwgMC4wMDI4MzQsIDAuMDAyODQ5LCAwLjAwMjg1MywgMC4wMDI4NTcsIDAuMDAyODU5LCAwLjAwMjg2MSIsIFwKLSAgICAgICAgICAiMC4wMDI0MDQsIDAuMDAyNzE5LCAwLjAwMjc3NywgMC4wMDI3OTgsIDAuMDAyODE3LCAwLjAwMjgyNywgMC4wMDI4MzYiLCBcCi0gICAgICAgICAgIjAuMDAyMzEzLCAwLjAwMjYxMywgMC4wMDI3MDcsIDAuMDAyNzQxLCAwLjAwMjc3MywgMC4wMDI3OTEsIDAuMDAyODA3IiwgXAotICAgICAgICAgICIwLjAwMjM3NSwgMC4wMDI1NjMsIDAuMDAyNjYyLCAwLjAwMjcwMiwgMC4wMDI3NDIsIDAuMDAyNzY0LCAwLjAwMjc4NSIsIFwKLSAgICAgICAgICAiMC4wMDI0NzcsIDAuMDAyNTU3LCAwLjAwMjY0NiwgMC4wMDI2ODUsIDAuMDAyNzI2LCAwLjAwMjc1LCAwLjAwMjc3MiIsIFwKLSAgICAgICAgICAiMC4wMDI2NjIsIDAuMDAyNTM3LCAwLjAwMjYwOCwgMC4wMDI2MzUsIDAuMDAyNjkxLCAwLjAwMjcxOCwgMC4wMDI3NDUiLCBcCi0gICAgICAgICAgIjAuMDAyODQ1LCAwLjAwMjYzMywgMC4wMDI2NTIsIDAuMDAyNjc1LCAwLjAwMjcwNiwgMC4wMDI3MjcsIDAuMDAyNzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBOQU5EM1hMICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKE5BTkQzWEwpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4wNjYyNjA3OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA1Nzg0MjI7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNTc4NDIyOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDU3NzEyODsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyMjYsIDAuMDAwMjI2LCAwLjAwMDIyNiwgMC4wMDAyMjYsIDAuMDAwMjI2LCAwLjAwMDIyNiwgMC4wMDAyMjYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyMjcsIDAuMDAwMjI3LCAwLjAwMDIyNywgMC4wMDAyMjcsIDAuMDAwMjI3LCAwLjAwMDIyNywgMC4wMDAyMjciKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYwOTY4ODsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MDk2ODg7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjA4NzE7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjI2LCAwLjAwMDIyNiwgMC4wMDAyMjYsIDAuMDAwMjI2LCAwLjAwMDIyNiwgMC4wMDAyMjYsIDAuMDAwMjI2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjI3LCAwLjAwMDIyNywgMC4wMDAyMjcsIDAuMDAwMjI3LCAwLjAwMDIyNywgMC4wMDAyMjcsIDAuMDAwMjI3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihDKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2MDg1MjI7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjA4MDk3OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDYwODUyMjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxNDMsIDAuMDAwMTQzLCAwLjAwMDE0MywgMC4wMDAxNDMsIDAuMDAwMTQzLCAwLjAwMDE0MywgMC4wMDAxNDMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyNTcsIDAuMDAwMjU3LCAwLjAwMDI1NywgMC4wMDAyNTcsIDAuMDAwMjU3LCAwLjAwMDI1NywgMC4wMDAyNTciKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4wNTUyOTk2OwotICAgIGZ1bmN0aW9uIDogIighKChBIEIpIEMpKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDgzNDI2LCAwLjA5NzU3MywgMC4yMjQ4NzgsIDAuNDM2OTMxLCAwLjY0OTE2OCwgMS4xNDM5LCAxLjQyNTk2IiwgXAotICAgICAgICAgICIwLjA5MzEwNiwgMC4xMDcyNTEsIDAuMjM0NTQ3LCAwLjQ0NjY5OSwgMC42NTg3MTQsIDEuMTUzNjEsIDEuNDM1NzMiLCBcCi0gICAgICAgICAgIjAuMTA1MzY2LCAwLjExOTYzLCAwLjI0NjgyMSwgMC40NTg2MjksIDAuNjY5OTY0LCAxLjE2NDMxLCAxLjQ0NzAxIiwgXAotICAgICAgICAgICIwLjExNzY5NCwgMC4xMzE4NTgsIDAuMjU5MTYzLCAwLjQ3MDk2NiwgMC42ODE5LCAxLjE3NjIyLCAxLjQ1ODgzIiwgXAotICAgICAgICAgICIwLjEzMDUzNiwgMC4xNDQ2MzUsIDAuMjcxNjAyLCAwLjQ4MzMyNSwgMC42OTM5MjUsIDEuMTg4NDEsIDEuNDcxMTgiLCBcCi0gICAgICAgICAgIjAuMTUwNzIxLCAwLjE2NDgxMSwgMC4yOTExOTIsIDAuNTAzMjU2LCAwLjcxNDk5OCwgMS4yMDg2MSwgMS40OTAzMyIsIFwKLSAgICAgICAgICAiMC4xNjgxLCAwLjE4MjQ5OSwgMC4zMDg1MiwgMC41MjA2OCwgMC43MzIyMjUsIDEuMjI0OTksIDEuNTA4MzEiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTYxNTkyLCAwLjE5MDU2LCAwLjQ1MTUwNywgMC44ODYwNjUsIDEuMzIwNjYsIDIuMzM1OTMsIDIuOTE0NDYiLCBcCi0gICAgICAgICAgIjAuMTYxNDIyLCAwLjE5MDU1MSwgMC40NTExOTQsIDAuODg2MTM5LCAxLjMyMTA0LCAyLjMzNTk4LCAyLjkxNDU4IiwgXAotICAgICAgICAgICIwLjE2MjczNSwgMC4xOTEwMzcsIDAuNDUxNDYzLCAwLjg4NjEyOSwgMS4zMjA5NCwgMi4zMzUwNSwgMi45MTU1NiIsIFwKLSAgICAgICAgICAiMC4xNjcwNTUsIDAuMTk0NDA1LCAwLjQ1MTIxMSwgMC44ODU4NTcsIDEuMzIwOTQsIDIuMzM1MTksIDIuOTE0NCIsIFwKLSAgICAgICAgICAiMC4xNzI0ODEsIDAuMTk5MTM1LCAwLjQ1MTYzMSwgMC44ODYxMSwgMS4zMjA3OSwgMi4zMzUxNiwgMi45MTQ1OCIsIFwKLSAgICAgICAgICAiMC4xODM0MDksIDAuMjA5Mjg2LCAwLjQ1NTIyNCwgMC44ODYxMTIsIDEuMzIxMDMsIDIuMzM1NjksIDIuOTEzOTEiLCBcCi0gICAgICAgICAgIjAuMTk0Mzc3LCAwLjIxOTU2MywgMC40NjA1NDksIDAuODg2MjE0LCAxLjMyMDc3LCAyLjMzNDgzLCAyLjkxNTEiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjEzMDY3LCAwLjI1MDAxMiwgMC41ODMzOTMsIDEuMTM4NzUsIDEuNjk0MjYsIDIuOTkwMTksIDMuNzI5NjciLCBcCi0gICAgICAgICAgIjAuMjIxMzU3LCAwLjI1ODQ1MSwgMC41OTIyMDUsIDEuMTQ3ODksIDEuNzAyNTYsIDIuOTk4ODEsIDMuNzM4MDciLCBcCi0gICAgICAgICAgIjAuMjMwNDQ4LCAwLjI2NzUxNywgMC42MDA5NjUsIDEuMTU3MzgsIDEuNzExNzEsIDMuMDA3MzgsIDMuNzQ3MzMiLCBcCi0gICAgICAgICAgIjAuMjM5MzI2LCAwLjI3NjQzOSwgMC42MTAzODMsIDEuMTY1OTUsIDEuNzIxMzgsIDMuMDE2NTQsIDMuNzU2NDIiLCBcCi0gICAgICAgICAgIjAuMjQ4MjQ3LCAwLjI4NTMxNSwgMC42MTg4OTYsIDEuMTc0NDksIDEuNzMwMDksIDMuMDI1NDgsIDMuNzY1NDkiLCBcCi0gICAgICAgICAgIjAuMjYyMjk4LCAwLjI5OTQ0MiwgMC42MzMyOSwgMS4xODkwOSwgMS43NDQ3NCwgMy4wNDAwNywgMy43ODAwMSIsIFwKLSAgICAgICAgICAiMC4yNzQ2NjIsIDAuMzExOTE4LCAwLjY0NTYyNywgMS4yMDE4MywgMS43NTY3OCwgMy4wNTI0NywgMy43OTI0OSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zOTY2MzgsIDAuNDcwMzQ2LCAxLjEyNDY1LCAyLjIxNDE5LCAzLjMwNDM3LCA1LjgyOTczLCA3LjI4MDI3IiwgXAotICAgICAgICAgICIwLjM5NzAzLCAwLjQ3MDQyOSwgMS4xMjEyMywgMi4yMDgxNCwgMy4yOTc2MSwgNS44MzU5NywgNy4yNzk4OCIsIFwKLSAgICAgICAgICAiMC4zOTY4OTIsIDAuNDcwMjAzLCAxLjEyMzQ0LCAyLjIwODEyLCAzLjMwMjg2LCA1LjgzNDY4LCA3LjI3OTM1IiwgXAotICAgICAgICAgICIwLjM5NzI1OSwgMC40NjkzNSwgMS4xMjEyLCAyLjIwODQ5LCAzLjI5NjgzLCA1LjgzNDU5LCA3LjI3OTM1IiwgXAotICAgICAgICAgICIwLjM5NzA3NSwgMC40Njk2NDMsIDEuMTIzOSwgMi4yMTIxMSwgMy4yOTgyMiwgNS44MzUxNSwgNy4yNzk0IiwgXAotICAgICAgICAgICIwLjM5OTY1OSwgMC40NzEwNDMsIDEuMTI0MTIsIDIuMjEwMjgsIDMuMjk4NDksIDUuODM1MzUsIDcuMjc5NTgiLCBcCi0gICAgICAgICAgIjAuNDAzNTI1LCAwLjQ3MzI5NiwgMS4xMjE4NiwgMi4yMTQ4OSwgMy4zMDMyMSwgNS44MzUyLCA3LjI3OTI5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4MjAwMywgMC4wOTYxNjIsIDAuMjIzNDM0LCAwLjQzNTIxNCwgMC42NDcyNDEsIDEuMTQyMDEsIDEuNDI0MTciLCBcCi0gICAgICAgICAgIjAuMDkxOTEyLCAwLjEwNjAzNCwgMC4yMzMyMjEsIDAuNDQ1MzU5LCAwLjY1Njk4NywgMS4xNTE0NywgMS40MzQzOSIsIFwKLSAgICAgICAgICAiMC4xMDM5MiwgMC4xMTgxMzksIDAuMjQ1MjY0LCAwLjQ1NjE3LCAwLjY2ODI2NSwgMS4xNjI3NywgMS40NDU0NCIsIFwKLSAgICAgICAgICAiMC4xMTYxNzksIDAuMTMwMzM5LCAwLjI1NzQ4OSwgMC40NjkzNywgMC42ODAwODQsIDEuMTc0MSwgMS40NTcyNSIsIFwKLSAgICAgICAgICAiMC4xMjg5NzMsIDAuMTQyNjc2LCAwLjI2OTkwOSwgMC40ODE3MTYsIDAuNjkzNjA0LCAxLjE4NjA5LCAxLjQ2ODg2IiwgXAotICAgICAgICAgICIwLjE0OTA2NiwgMC4xNjMxMzEsIDAuMjg5NTExLCAwLjUwMTQ3MiwgMC43MTMyMjQsIDEuMjA2MzQsIDEuNDg4OTciLCBcCi0gICAgICAgICAgIjAuMTY2NDkxLCAwLjE4MDkzNywgMC4zMDY4NTgsIDAuNTE4OTQ0LCAwLjczMDQ2NywgMS4yMjI4MywgMS41MDU5NCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNTk3MjUsIDAuMTg4NjU2LCAwLjQ0OTU3MiwgMC44ODQzOTksIDEuMzE4OCwgMi4zMzI2NywgMi45MTIxNCIsIFwKLSAgICAgICAgICAiMC4xNTk2MDQsIDAuMTg4NjgsIDAuNDQ5MzQxLCAwLjg4NDUwMywgMS4zMTg5MSwgMi4zMzMxLCAyLjkxMjQxIiwgXAotICAgICAgICAgICIwLjE2MDk3LCAwLjE4OTI1OSwgMC40NDk0ODQsIDAuODg0MjYzLCAxLjMxOTA2LCAyLjMzMjk1LCAyLjkxMjczIiwgXAotICAgICAgICAgICIwLjE2NTIzNSwgMC4xOTI3MjgsIDAuNDQ5NDg3LCAwLjg4NDI1OCwgMS4zMTkxNCwgMi4zMzIxMSwgMi45MTI0OCIsIFwKLSAgICAgICAgICAiMC4xNzEwMDQsIDAuMTk3ODc0LCAwLjQ0OTg5NywgMC44ODQ0MzUsIDEuMzE4NjEsIDIuMzMzNDcsIDIuOTEyMzciLCBcCi0gICAgICAgICAgIjAuMTgyMDEzLCAwLjIwNzczNCwgMC40NTM1MzQsIDAuODg0MjQ3LCAxLjMxODk4LCAyLjMzMzQ0LCAyLjkxMjc2IiwgXAotICAgICAgICAgICIwLjE5MzE3LCAwLjIxODIzNywgMC40NTg5MDgsIDAuODg0MTk3LCAxLjMxODg3LCAyLjMzMjk0LCAyLjkxMzE2Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIxMDgyNywgMC4yNDc3NDIsIDAuNTgxMjc0LCAxLjEzNjc1LCAxLjY5MjAxLCAyLjk4Nzc3LCAzLjcyNzM4IiwgXAotICAgICAgICAgICIwLjIxOTQyMiwgMC4yNTYzNzIsIDAuNTg5ODI0LCAxLjE0NTEsIDEuNzAxMTIsIDIuOTk2MjksIDMuNzM2MTYiLCBcCi0gICAgICAgICAgIjAuMjI5ODg0LCAwLjI2Njk1NywgMC42MDA1ODQsIDEuMTU1NzgsIDEuNzExNjksIDMuMDA3MjgsIDMuNzQ2OTYiLCBcCi0gICAgICAgICAgIjAuMjQwNDAxLCAwLjI3NzU0MSwgMC42MTE1MTIsIDEuMTY2NjQsIDEuNzIyMTQsIDMuMDE4MzEsIDMuNzU3NiIsIFwKLSAgICAgICAgICAiMC4yNTA4MTcsIDAuMjg3OTcsIDAuNjIxNTY1LCAxLjE3OCwgMS43MzMyOCwgMy4wMjgzLCAzLjc2ODI5IiwgXAotICAgICAgICAgICIwLjI2NzU3MiwgMC4zMDQ5OTksIDAuNjM4Njg0LCAxLjE5NDYsIDEuNzUwNjgsIDMuMDQ2MDQsIDMuNzg1NTUiLCBcCi0gICAgICAgICAgIjAuMjgyNTk1LCAwLjMxOTQ5MiwgMC42NTM4OSwgMS4yMDkzMSwgMS43NjQ4NiwgMy4wNjA1MywgMy44MDA1NCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zOTY2MDMsIDAuNDcwMzY3LCAxLjEyMTI0LCAyLjIxNTA1LCAzLjMwNDQ5LCA1LjgzMTk2LCA3LjI4MDA2IiwgXAotICAgICAgICAgICIwLjM5NjYxMiwgMC40Njk5MjgsIDEuMTI0MjIsIDIuMjA5NzksIDMuMzA1NCwgNS44MzYzNywgNy4yNzk4NiIsIFwKLSAgICAgICAgICAiMC4zOTc2NjYsIDAuNDcwMjMyLCAxLjEyNDQ4LCAyLjIxMzM3LCAzLjMwNDQ2LCA1LjgzMTY5LCA3LjI3OTg3IiwgXAotICAgICAgICAgICIwLjM5NzU0NiwgMC40NjkxMDgsIDEuMTIxMjIsIDIuMjA5NzMsIDMuMjk1MiwgNS44MzU4MywgNy4yNzk0NyIsIFwKLSAgICAgICAgICAiMC4zOTcyNDQsIDAuNDcwNDI5LCAxLjEyNDA5LCAyLjIwODA3LCAzLjI5NTQ2LCA1LjgzNDM2LCA3LjI3OTQyIiwgXAotICAgICAgICAgICIwLjQwMDE5NywgMC40NzEzOSwgMS4xMjM5NywgMi4yMTA0OSwgMy4yOTUwOSwgNS44Mjk0MSwgNy4yNzk1NCIsIFwKLSAgICAgICAgICAiMC40MDU1MDcsIDAuNDc1NjQsIDEuMTIxMDMsIDIuMjEzNjQsIDMuMzE2NTQsIDUuODM0NzksIDcuMjc5MzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDgwMzUxLCAwLjA5NDQ0MiwgMC4yMjE3NjcsIDAuNDMzNTU0LCAwLjY0NTg5LCAxLjE0MDcxLCAxLjQyMjUzIiwgXAotICAgICAgICAgICIwLjA5MDA3LCAwLjEwNDIwOCwgMC4yMzEzNjIsIDAuNDQzNDI2LCAwLjY1NTcxNiwgMS4xNTA1MiwgMS40MzIyOCIsIFwKLSAgICAgICAgICAiMC4xMDIzMzQsIDAuMTE2NDUyLCAwLjI0MzcwMywgMC40NTQ4NTcsIDAuNjY2NzM0LCAxLjE2MTA3LCAxLjQ0MzYxIiwgXAotICAgICAgICAgICIwLjExNDYyNSwgMC4xMjg3ODMsIDAuMjU2MDQyLCAwLjQ2NzY5NiwgMC42Nzg1OSwgMS4xNzMzMSwgMS40NTU2MyIsIFwKLSAgICAgICAgICAiMC4xMjc0ODUsIDAuMTQxNTU0LCAwLjI2ODQwNiwgMC40ODAxMywgMC42OTA3MjksIDEuMTg1MDcsIDEuNDY3ODQiLCBcCi0gICAgICAgICAgIjAuMTQ3NTQzLCAwLjE2MTYwNCwgMC4yODgwMDYsIDAuNDk5OTM1LCAwLjcxMTY3OSwgMS4yMDU2MiwgMS40ODY5NyIsIFwKLSAgICAgICAgICAiMC4xNjQ3NTgsIDAuMTc5MjI1LCAwLjMwNTI4NiwgMC41MTc0MDcsIDAuNzI4OSwgMS4yMjE3OCwgMS41MDUzMyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNTc4NDcsIDAuMTg2Nzg5LCAwLjQ0Nzg5LCAwLjg4MjQ5MSwgMS4zMTc4NCwgMi4zMzI3OSwgMi45MTE1MiIsIFwKLSAgICAgICAgICAiMC4xNTgwNSwgMC4xODY3ODUsIDAuNDQ3NTM4LCAwLjg4MjU0LCAxLjMxNzg0LCAyLjMzMjc5LCAyLjkxMTU4IiwgXAotICAgICAgICAgICIwLjE1OTU3NywgMC4xODc1OTksIDAuNDQ3NzEsIDAuODgyNDM3LCAxLjMxNzM3LCAyLjMzMTc5LCAyLjkxMTQ1IiwgXAotICAgICAgICAgICIwLjE2Mzc4MSwgMC4xOTEzNDYsIDAuNDQ3NzE2LCAwLjg4NDE3OCwgMS4zMTcyOSwgMi4zMzE5MiwgMi45MTE1MyIsIFwKLSAgICAgICAgICAiMC4xNjkyMzEsIDAuMTk2MjEsIDAuNDQ4OTExLCAwLjg4MzA3OCwgMS4zMTcyOCwgMi4zMzUxNywgMi45MTE1MiIsIFwKLSAgICAgICAgICAiMC4xODA0MDQsIDAuMjA2MTQsIDAuNDUxODk4LCAwLjg4MzU3MiwgMS4zMTkwMywgMi4zMzI3OCwgMi45MTA5IiwgXAotICAgICAgICAgICIwLjE5MTcwNiwgMC4yMTY1MDIsIDAuNDU4MDA3LCAwLjg4MzA0NywgMS4zMTkxOSwgMi4zMzE3MiwgMi45MTI3NSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMDYyNDcsIDAuMjQzMjQxLCAwLjU3NjUxMSwgMS4xMzE3MywgMS42ODY5NywgMi45ODMwOSwgMy43MjI5IiwgXAotICAgICAgICAgICIwLjIxNDg1NywgMC4yNTE5MTIsIDAuNTg1MjU5LCAxLjE0MDc4LCAxLjY5NjM4LCAyLjk5MjU5LCAzLjczMTUyIiwgXAotICAgICAgICAgICIwLjIyNTU1NiwgMC4yNjI1OTMsIDAuNTk2MDA1LCAxLjE1MTc0LCAxLjcwNzIxLCAzLjAwMzM3LCAzLjc0MjIzIiwgXAotICAgICAgICAgICIwLjIzNjAzMywgMC4yNzM0MjYsIDAuNjA3MjE5LCAxLjE2MjU4LCAxLjcxNzY4LCAzLjAxMzgzLCAzLjc1MzQ2IiwgXAotICAgICAgICAgICIwLjI0NzI3NywgMC4yODQzMTcsIDAuNjE3ODgyLCAxLjE3NDExLCAxLjczMDM0LCAzLjAyNDUsIDMuNzY0NDciLCBcCi0gICAgICAgICAgIjAuMjY0ODA1LCAwLjMwMTk1OSwgMC42MzU0MzIsIDEuMTkxNzcsIDEuNzQ3MjQsIDMuMDQyNzgsIDMuNzgxOCIsIFwKLSAgICAgICAgICAiMC4yODAzNjMsIDAuMzE3Mzc0LCAwLjY1MDkyNCwgMS4yMDY3LCAxLjc2MTY2LCAzLjA1NzMxLCAzLjc5NzMxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjM5OTI2NiwgMC40NzAzNDgsIDEuMTIxMTksIDIuMjEzOTUsIDMuMjk3MTksIDUuODI4NTQsIDcuMjgwMDciLCBcCi0gICAgICAgICAgIjAuMzk3NjMxLCAwLjQ3MDIxLCAxLjEyMTksIDIuMjEzODMsIDMuMzA0MzUsIDUuODI4MzUsIDcuMjc5NTYiLCBcCi0gICAgICAgICAgIjAuMzk2NzczLCAwLjQ3MDI3OSwgMS4xMjM4NSwgMi4yMTAyMiwgMy4zMDM5NywgNS44MzU5NSwgNy4yNzkxNSIsIFwKLSAgICAgICAgICAiMC4zOTc1OTQsIDAuNDcwMjYyLCAxLjEyMTQ3LCAyLjIwOTgyLCAzLjMwMTEsIDUuODI5MTUsIDcuMjc5NDIiLCBcCi0gICAgICAgICAgIjAuNDAwMDQsIDAuNDY5NTQ1LCAxLjEyMzk4LCAyLjIwODE0LCAzLjI5NDkxLCA1LjgzNDU3LCA3LjI3OTQ4IiwgXAotICAgICAgICAgICIwLjQwMTg4NiwgMC40NzI0NzcsIDEuMTI0MTEsIDIuMjA4MSwgMy4yOTUwOCwgNS44Mjg4MSwgNy4yNzkyNyIsIFwKLSAgICAgICAgICAiMC40MDg0OTgsIDAuNDc4MjAzLCAxLjEyNDU2LCAyLjIxNDg5LCAzLjMwMjksIDUuODM1MjQsIDcuMjc5MjQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDE1MDgsIDAuMDAxNTA4LCAwLjAwMTUwOCwgMC4wMDE1MDgsIDAuMDAxNTA4LCAwLjAwMTUwOCwgMC4wMDE1MDciLCBcCi0gICAgICAgICAgIjAuMDAxNTAxLCAwLjAwMTUwMSwgMC4wMDE1MDIsIDAuMDAxNTAyLCAwLjAwMTUwMiwgMC4wMDE1MDIsIDAuMDAxNTAyIiwgXAotICAgICAgICAgICIwLjAwMTUsIDAuMDAxNSwgMC4wMDE1MDEsIDAuMDAxNTAxLCAwLjAwMTUsIDAuMDAxNSwgMC4wMDE1IiwgXAotICAgICAgICAgICIwLjAwMTQ5OSwgMC4wMDE0OTksIDAuMDAxNTAxLCAwLjAwMTUwMSwgMC4wMDE1LCAwLjAwMTUsIDAuMDAxNDk5IiwgXAotICAgICAgICAgICIwLjAwMTUwMSwgMC4wMDE1MDEsIDAuMDAxNTAxLCAwLjAwMTUwMSwgMC4wMDE1MDEsIDAuMDAxNSwgMC4wMDE1IiwgXAotICAgICAgICAgICIwLjAwMTUwNiwgMC4wMDE1MDUsIDAuMDAxNTAyLCAwLjAwMTUwMiwgMC4wMDE1MDEsIDAuMDAxNSwgMC4wMDE1IiwgXAotICAgICAgICAgICIwLjAwMTUxMiwgMC4wMDE1MTEsIDAuMDAxNTA0LCAwLjAwMTUwMywgMC4wMDE1MDIsIDAuMDAxNTAxLCAwLjAwMTUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDA0MDMsIDAuMDAwNDAzLCAwLjAwMDQwNCwgMC4wMDA0MDUsIDAuMDAwNDA1LCAwLjAwMDQwNSwgMC4wMDA0MDUiLCBcCi0gICAgICAgICAgIjAuMDAwMzk0LCAwLjAwMDM5NiwgMC4wMDA0MDEsIDAuMDAwNDAzLCAwLjAwMDQwNCwgMC4wMDA0MDQsIDAuMDAwNDA0IiwgXAotICAgICAgICAgICIwLjAwMDM4NiwgMC4wMDAzODksIDAuMDAwMzk3LCAwLjAwMDQwMSwgMC4wMDA0MDIsIDAuMDAwNDA0LCAwLjAwMDQwNCIsIFwKLSAgICAgICAgICAiMC4wMDAzOCwgMC4wMDAzODMsIDAuMDAwMzk0LCAwLjAwMDM5OSwgMC4wMDA0MDEsIDAuMDAwNDAzLCAwLjAwMDQwMyIsIFwKLSAgICAgICAgICAiMC4wMDAzNzQsIDAuMDAwMzc4LCAwLjAwMDM5MSwgMC4wMDAzOTcsIDAuMDAwNCwgMC4wMDA0MDIsIDAuMDAwNDAzIiwgXAotICAgICAgICAgICIwLjAwMDM2OCwgMC4wMDAzNzIsIDAuMDAwMzg3LCAwLjAwMDM5NSwgMC4wMDAzOTgsIDAuMDAwNDAxLCAwLjAwMDQwMiIsIFwKLSAgICAgICAgICAiMC4wMDAzNjUsIDAuMDAwMzY4LCAwLjAwMDM4NCwgMC4wMDAzOTMsIDAuMDAwMzk2LCAwLjAwMDQsIDAuMDAwNDAxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxMjcxLCAwLjAwMTI3MSwgMC4wMDEyNzIsIDAuMDAxMjcyLCAwLjAwMTI3MiwgMC4wMDEyNzEsIDAuMDAxMjcyIiwgXAotICAgICAgICAgICIwLjAwMTI2OCwgMC4wMDEyNjksIDAuMDAxMjcxLCAwLjAwMTI3LCAwLjAwMTI3LCAwLjAwMTI3LCAwLjAwMTI3MSIsIFwKLSAgICAgICAgICAiMC4wMDEyNjYsIDAuMDAxMjY3LCAwLjAwMTI3LCAwLjAwMTI3LCAwLjAwMTI3MSwgMC4wMDEyNzEsIDAuMDAxMjcxIiwgXAotICAgICAgICAgICIwLjAwMTI2NSwgMC4wMDEyNjYsIDAuMDAxMjY5LCAwLjAwMTI3MSwgMC4wMDEyNzEsIDAuMDAxMjcxLCAwLjAwMTI3MSIsIFwKLSAgICAgICAgICAiMC4wMDEyNjYsIDAuMDAxMjY2LCAwLjAwMTI3LCAwLjAwMTI3MSwgMC4wMDEyNzEsIDAuMDAxMjcxLCAwLjAwMTI3MSIsIFwKLSAgICAgICAgICAiMC4wMDEyNjksIDAuMDAxMjcsIDAuMDAxMjcsIDAuMDAxMjcxLCAwLjAwMTI3MSwgMC4wMDEyNzEsIDAuMDAxMjcxIiwgXAotICAgICAgICAgICIwLjAwMTI3NCwgMC4wMDEyNzQsIDAuMDAxMjcxLCAwLjAwMTI3MiwgMC4wMDEyNzIsIDAuMDAxMjcyLCAwLjAwMTI3MSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDQwMywgMC4wMDA0MDMsIDAuMDAwNDA0LCAwLjAwMDQwNSwgMC4wMDA0MDUsIDAuMDAwNDA1LCAwLjAwMDQwNSIsIFwKLSAgICAgICAgICAiMC4wMDAzOTQsIDAuMDAwMzk2LCAwLjAwMDQwMSwgMC4wMDA0MDMsIDAuMDAwNDA0LCAwLjAwMDQwNCwgMC4wMDA0MDQiLCBcCi0gICAgICAgICAgIjAuMDAwMzg2LCAwLjAwMDM4OSwgMC4wMDAzOTcsIDAuMDAwNDAxLCAwLjAwMDQwMiwgMC4wMDA0MDMsIDAuMDAwNDA0IiwgXAotICAgICAgICAgICIwLjAwMDM4LCAwLjAwMDM4MywgMC4wMDAzOTQsIDAuMDAwMzk5LCAwLjAwMDQwMSwgMC4wMDA0MDMsIDAuMDAwNDAzIiwgXAotICAgICAgICAgICIwLjAwMDM3NSwgMC4wMDAzNzgsIDAuMDAwMzkxLCAwLjAwMDM5NywgMC4wMDA0LCAwLjAwMDQwMiwgMC4wMDA0MDMiLCBcCi0gICAgICAgICAgIjAuMDAwMzcsIDAuMDAwMzczLCAwLjAwMDM4NywgMC4wMDAzOTUsIDAuMDAwMzk4LCAwLjAwMDQwMSwgMC4wMDA0MDIiLCBcCi0gICAgICAgICAgIjAuMDAwMzY4LCAwLjAwMDM3MSwgMC4wMDAzODUsIDAuMDAwMzkzLCAwLjAwMDM5NywgMC4wMDA0LCAwLjAwMDQwMSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTAyNSwgMC4wMDEwMjYsIDAuMDAxMDI2LCAwLjAwMTAyNywgMC4wMDEwMjcsIDAuMDAxMDI3LCAwLjAwMTAyNyIsIFwKLSAgICAgICAgICAiMC4wMDEwMjUsIDAuMDAxMDI2LCAwLjAwMTAzLCAwLjAwMTAzMSwgMC4wMDEwMzEsIDAuMDAxMDMyLCAwLjAwMTAzMiIsIFwKLSAgICAgICAgICAiMC4wMDEwMjEsIDAuMDAxMDIzLCAwLjAwMTAyOSwgMC4wMDEwMzIsIDAuMDAxMDMzLCAwLjAwMTAzMywgMC4wMDEwMzQiLCBcCi0gICAgICAgICAgIjAuMDAxMDE5LCAwLjAwMTAyMSwgMC4wMDEwMjgsIDAuMDAxMDMxLCAwLjAwMTAzMiwgMC4wMDEwMzMsIDAuMDAxMDM0IiwgXAotICAgICAgICAgICIwLjAwMTAxOSwgMC4wMDEwMjEsIDAuMDAxMDI3LCAwLjAwMTAzLCAwLjAwMTAzMiwgMC4wMDEwMzMsIDAuMDAxMDMzIiwgXAotICAgICAgICAgICIwLjAwMTAyLCAwLjAwMTAyMSwgMC4wMDEwMjcsIDAuMDAxMDMsIDAuMDAxMDMxLCAwLjAwMTAzMywgMC4wMDEwMzMiLCBcCi0gICAgICAgICAgIjAuMDAxMDI0LCAwLjAwMTAyNCwgMC4wMDEwMjcsIDAuMDAxMDMxLCAwLjAwMTAzMiwgMC4wMDEwMzMsIDAuMDAxMDMzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwNDAzLCAwLjAwMDQwMywgMC4wMDA0MDQsIDAuMDAwNDA1LCAwLjAwMDQwNSwgMC4wMDA0MDUsIDAuMDAwNDA2IiwgXAotICAgICAgICAgICIwLjAwMDM5MywgMC4wMDAzOTUsIDAuMDAwNCwgMC4wMDA0MDMsIDAuMDAwNDAzLCAwLjAwMDQwNCwgMC4wMDA0MDQiLCBcCi0gICAgICAgICAgIjAuMDAwMzg1LCAwLjAwMDM4OCwgMC4wMDAzOTcsIDAuMDAwNDAxLCAwLjAwMDQwMiwgMC4wMDA0MDMsIDAuMDAwNDA0IiwgXAotICAgICAgICAgICIwLjAwMDM4LCAwLjAwMDM4MywgMC4wMDAzOTQsIDAuMDAwMzk5LCAwLjAwMDQwMSwgMC4wMDA0MDMsIDAuMDAwNDAzIiwgXAotICAgICAgICAgICIwLjAwMDM3OCwgMC4wMDAzODEsIDAuMDAwMzkyLCAwLjAwMDM5OCwgMC4wMDA0LCAwLjAwMDQwMiwgMC4wMDA0MDMiLCBcCi0gICAgICAgICAgIjAuMDAwMzc5LCAwLjAwMDM4LCAwLjAwMDM5LCAwLjAwMDM5NiwgMC4wMDAzOTksIDAuMDAwNDAxLCAwLjAwMDQwMiIsIFwKLSAgICAgICAgICAiMC4wMDAzODMsIDAuMDAwMzgzLCAwLjAwMDM5LCAwLjAwMDM5NiwgMC4wMDAzOTgsIDAuMDAwNDAxLCAwLjAwMDQwMiIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogTkFORDRCQlgyICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoTkFORDRCQlgyKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMzQ1NzAyOwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBTikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjQxMDEzOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDY0MDY1MjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2NDEwMTM7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwODQ0LCAwLjAwMDgyLCAwLjAwMDgxLCAwLjAwMDgxMywgMC4wMDA4MiwgMC4wMDA4NCwgMC4wMDA4NjMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDIzNzIsIDAuMDAyMzUzLCAwLjAwMjM0OCwgMC4wMDIzNTQsIDAuMDAyMzY0LCAwLjAwMjM4NiwgMC4wMDI0MDUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEJOKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2NDM5NDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2NDM3NjE7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjQzOTQ7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwODI2LCAwLjAwMDgwMywgMC4wMDA3OTUsIDAuMDAwNzk4LCAwLjAwMDgwNiwgMC4wMDA4MjgsIDAuMDAwODQ4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyNDUzLCAwLjAwMjQzNSwgMC4wMDI0MywgMC4wMDI0MzQsIDAuMDAyNDQ1LCAwLjAwMjQ2NSwgMC4wMDI0ODMiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEMpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTYwNTc3OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTYwNTc3OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTYwMTI5OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDgxOSwgMC4wMDA4MTgsIDAuMDAwODE4LCAwLjAwMDgxNywgMC4wMDA4MTcsIDAuMDAwODE3LCAwLjAwMDgxNyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDg0MSwgMC4wMDA4MjEsIDAuMDAwODIxLCAwLjAwMDgyMSwgMC4wMDA4MjEsIDAuMDAwODIsIDAuMDAwODIiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEQpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTY1MzA4OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTY1MTgyOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTY1MzA4OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDE0NCwgMC4wMDAxNDQsIDAuMDAwMTQzLCAwLjAwMDE0MywgMC4wMDAxNDMsIDAuMDAwMTQzLCAwLjAwMDE0MyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDkyOCwgMC4wMDA5MjksIDAuMDAwOTI5LCAwLjAwMDkzLCAwLjAwMDkzLCAwLjAwMDkyOSwgMC4wMDA5MjkiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4xNDI3MjQ7Ci0gICAgZnVuY3Rpb24gOiAiKCEoKCgoIUJOKSAoIUFOKSkgQykgRCkpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDYwMzAzLCAwLjE2MzUwOCwgMC4yNDUxMzUsIDAuMzQ2OTkzLCAwLjQ0ODc5NiwgMC41NTA0OTMsIDAuNjUyMzMzIiwgXAotICAgICAgICAgICIwLjA3MDQ5OCwgMC4xNzM2OTgsIDAuMjU1Mjg1LCAwLjM1NzA1NSwgMC40NTg5OTIsIDAuNTYwNzY0LCAwLjY2MjY0MSIsIFwKLSAgICAgICAgICAiMC4wODMwNjYsIDAuMTg2MjMxLCAwLjI2Nzg2OSwgMC4zNjk3NDksIDAuNDcxNTU4LCAwLjU3MzM3NCwgMC42NzUwMDgiLCBcCi0gICAgICAgICAgIjAuMDk0MjU0LCAwLjE5NzI5NCwgMC4yNzg5MjUsIDAuMzgwOTQ0LCAwLjQ4MjcyMSwgMC41ODQ1MDUsIDAuNjg2MDciLCBcCi0gICAgICAgICAgIjAuMTA0MDU5LCAwLjIwNzE3NywgMC4yODg3OTEsIDAuMzkwNjg1LCAwLjQ5MjUxMiwgMC41OTQyMzcsIDAuNjk1OTMyIiwgXAotICAgICAgICAgICIwLjExNzU2NiwgMC4yMjA4MzYsIDAuMzAyNDM1LCAwLjQwNDI4OSwgMC41MDYwOTcsIDAuNjA3ODkxLCAwLjcwOTY1OSIsIFwKLSAgICAgICAgICAiMC4xMjc5MjcsIDAuMjMxMjc1LCAwLjMxMjg0OCwgMC40MTQ2OTQsIDAuNTE2NTMyLCAwLjYxODI4OSwgMC43MTk5NTgiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY1MzIsIDAuMjczMjUyLCAwLjQ0MDkwNCwgMC42NTA0MTEsIDAuODU5OTYyLCAxLjA2OTI3LCAxLjI3ODYyIiwgXAotICAgICAgICAgICIwLjA2NTMxMSwgMC4yNzM0MTEsIDAuNDQwODg3LCAwLjY1MDMxNCwgMC44NTk3MDksIDEuMDY5MTUsIDEuMjc5MDIiLCBcCi0gICAgICAgICAgIjAuMDY1NDcxLCAwLjI3MzMyNSwgMC40NDA4MTksIDAuNjUwNDU0LCAwLjg1OTc2MSwgMS4wNjk3OSwgMS4yNzg2IiwgXAotICAgICAgICAgICIwLjA2NjAzMSwgMC4yNzMzMzksIDAuNDQwODQ1LCAwLjY1MDQxMywgMC44NTk3LCAxLjA2OTIsIDEuMjc4NzMiLCBcCi0gICAgICAgICAgIjAuMDY2ODA2LCAwLjI3MzUxMywgMC40NDEyMDcsIDAuNjUwNzM0LCAwLjg1OTc2OCwgMS4wNjkyLCAxLjI3OTMiLCBcCi0gICAgICAgICAgIjAuMDY4MzY0LCAwLjI3MzY3MSwgMC40NDA5OTIsIDAuNjUwMjU4LCAwLjg2MDAzNywgMS4wNjkyMiwgMS4yNzg3MiIsIFwKLSAgICAgICAgICAiMC4wNjk1ODcsIDAuMjc0MDEyLCAwLjQ0MTAwOSwgMC42NTA0NzksIDAuODU5NjcyLCAxLjA2OTE5LCAxLjI3OTE2Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE0OTczNiwgMC41MzIzMTQsIDAuODM4MjMsIDEuMjIwMjksIDEuNjAyNTksIDEuOTg1MzUsIDIuMzY3NSIsIFwKLSAgICAgICAgICAiMC4xNTk0NSwgMC41NDIxMDcsIDAuODQ3ODgyLCAxLjIyOTk0LCAxLjYxMjgsIDEuOTk0OTcsIDIuMzc3MjMiLCBcCi0gICAgICAgICAgIjAuMTcxMjA4LCAwLjU1NDE0LCAwLjg1OTg1NSwgMS4yNDIxNywgMS42MjUzOCwgMi4wMDY1NSwgMi4zODg0MyIsIFwKLSAgICAgICAgICAiMC4xODEyNjksIDAuNTY0MTczLCAwLjg3MDQ3NywgMS4yNTI0NywgMS42MzQ0OCwgMi4wMTY5NSwgMi4zOTk3IiwgXAotICAgICAgICAgICIwLjE4OTY4NiwgMC41NzI2NTMsIDAuODc4NDY0LCAxLjI2MDg3LCAxLjY0MzQ0LCAyLjAyNTE5LCAyLjQwNzU1IiwgXAotICAgICAgICAgICIwLjIwMTEzNiwgMC41ODQyMTksIDAuODkwMDE4LCAxLjI3MjEsIDEuNjU0NTUsIDIuMDM3OTgsIDIuNDE5MDEiLCBcCi0gICAgICAgICAgIjAuMjEwNDcxLCAwLjU5MzU0MSwgMC44OTk0ODUsIDEuMjgxNTQsIDEuNjYzNiwgMi4wNDY2OSwgMi40MjgxNSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMDQzNjIsIDAuOTUwMDg2LCAxLjU0NzA5LCAyLjI5MzAxLCAzLjA0MjM1LCAzLjc5NDA5LCA0LjUyNzE2IiwgXAotICAgICAgICAgICIwLjIwMzk2NSwgMC45NTE3MzksIDEuNTQ3MzUsIDIuMjkyODMsIDMuMDQzMjcsIDMuNzkzNzYsIDQuNTI3MzkiLCBcCi0gICAgICAgICAgIjAuMjAzOTk3LCAwLjk0OTIwOSwgMS41NDY3NywgMi4yOTM0NSwgMy4wMzYyOSwgMy43OTMyOSwgNC41NDA0NCIsIFwKLSAgICAgICAgICAiMC4yMDQ0MiwgMC45NTAzMiwgMS41NDkzNiwgMi4yOTE4NCwgMy4wMzk2NywgMy43ODI4NCwgNC41MjYzMyIsIFwKLSAgICAgICAgICAiMC4yMDM5NTMsIDAuOTUwMDQ0LCAxLjU0Njc1LCAyLjI5MzQ2LCAzLjAzNjU3LCAzLjc5MzE0LCA0LjUyNzA4IiwgXAotICAgICAgICAgICIwLjIwNDMzOCwgMC45NTAxNDcsIDEuNTQ2OTksIDIuMjkzLCAzLjAzOTAxLCAzLjc4MTc4LCA0LjU0MDk3IiwgXAotICAgICAgICAgICIwLjIwNDE0MSwgMC45NDk5NzksIDEuNTQ3MTEsIDIuMjkzMDUsIDMuMDM4OTgsIDMuNzkzOTMsIDQuNTMxNjgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQk4iOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2MjA5NiwgMC4xNjU0NzksIDAuMjQ3NjUsIDAuMzUwMTg2LCAwLjQ1Mjg5NywgMC41NTU0MzMsIDAuNjU3Nzc1IiwgXAotICAgICAgICAgICIwLjA3MjMxMiwgMC4xNzU2NjMsIDAuMjU3ODE4LCAwLjM2MDQ0NCwgMC40NjI3LCAwLjU2NTQ1MywgMC42NjgwNDEiLCBcCi0gICAgICAgICAgIjAuMDg1MDEzLCAwLjE4ODMyLCAwLjI3MDUwMywgMC4zNzMwNDcsIDAuNDc1NzQyLCAwLjU3ODE0NiwgMC42ODA2NDMiLCBcCi0gICAgICAgICAgIjAuMDk2NTUzLCAwLjE5OTkzLCAwLjI4MjA5MiwgMC4zODQ2MjYsIDAuNDg3MzcxLCAwLjU4OTY5LCAwLjY5MjI3OSIsIFwKLSAgICAgICAgICAiMC4xMDY5MjQsIDAuMjEwMzIxLCAwLjI5MjQ1MSwgMC4zOTUwNDEsIDAuNDk3NjI3LCAwLjYwMDExMywgMC43MDI3MjQiLCBcCi0gICAgICAgICAgIjAuMTIxMDQ0LCAwLjIyNDQ4NiwgMC4zMDY1ODYsIDAuNDA5MTYzLCAwLjUxMTc5NiwgMC42MTQ1MTYsIDAuNzE2NzczIiwgXAotICAgICAgICAgICIwLjEzMTk1MywgMC4yMzU1NzMsIDAuMzE3NjYzLCAwLjQyMDIyMSwgMC41MjI4NjQsIDAuNjI1NDY2LCAwLjcyNzc0NCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjM5OSwgMC4yNzM3ODIsIDAuNDQyODkxLCAwLjY1NDU0OSwgMC44NjYxNTcsIDEuMDc3ODUsIDEuMjg5MzgiLCBcCi0gICAgICAgICAgIjAuMDYzOTk2LCAwLjI3MzcwOCwgMC40NDI5NTcsIDAuNjU0Njg5LCAwLjg2NjEwOSwgMS4wNzc3NiwgMS4yODkyNiIsIFwKLSAgICAgICAgICAiMC4wNjQxNiwgMC4yNzM3NjksIDAuNDQzLCAwLjY1NDQ3MSwgMC44NjYyNjcsIDEuMDc3NjUsIDEuMjg5MjQiLCBcCi0gICAgICAgICAgIjAuMDY0ODI4LCAwLjI3MzgxMywgMC40NDMwNywgMC42NTQ1MjMsIDAuODY2MzYsIDEuMDc3NzUsIDEuMjg5MjkiLCBcCi0gICAgICAgICAgIjAuMDY1NTY4LCAwLjI3Mzg5MSwgMC40NDI5MjIsIDAuNjU0NDQ3LCAwLjg2NjA3NSwgMS4wNzc2NCwgMS4yODkzNiIsIFwKLSAgICAgICAgICAiMC4wNjcyNjIsIDAuMjc0MDc2LCAwLjQ0Mjk4NywgMC42NTQ1MDIsIDAuODY2NDc1LCAxLjA3ODA5LCAxLjI4OTI2IiwgXAotICAgICAgICAgICIwLjA2ODUzMiwgMC4yNzQyNTIsIDAuNDQzMDYsIDAuNjU0NTk3LCAwLjg2NjEyNSwgMS4wNzc4NSwgMS4yODk0Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE0NzM0MywgMC41MzAxMTIsIDAuODM1NjA4LCAxLjIxODIxLCAxLjYwMDIxLCAxLjk4MjcxLCAyLjM2NDM2IiwgXAotICAgICAgICAgICIwLjE1NzEzNywgMC41Mzk5MzYsIDAuODQ1ODY3LCAxLjIyODIzLCAxLjYxMDE3LCAxLjk5MjksIDIuMzc0MyIsIFwKLSAgICAgICAgICAiMC4xNjg5NzUsIDAuNTUxNzk5LCAwLjg1ODA0NCwgMS4yNDA2NCwgMS42MjE5MiwgMi4wMDU0NywgMi4zODY1NiIsIFwKLSAgICAgICAgICAiMC4xNzk0NzcsIDAuNTYyNDgxLCAwLjg2ODQ4OSwgMS4yNTA4NCwgMS42MzI2OCwgMi4wMTU0NSwgMi4zOTY5NyIsIFwKLSAgICAgICAgICAiMC4xODgzNTQsIDAuNTcxMzMyLCAwLjg3NzE0OSwgMS4yNTkyMiwgMS42NDIyOCwgMi4wMjM0OCwgMi40MDY1OCIsIFwKLSAgICAgICAgICAiMC4yMDA0NTIsIDAuNTgzNTcsIDAuODg5MzQzLCAxLjI3MTQ1LCAxLjY1NDI0LCAyLjAzNjY1LCAyLjQxODgyIiwgXAotICAgICAgICAgICIwLjIxMDI1NiwgMC41OTMzMjMsIDAuODk5MTksIDEuMjgxMzksIDEuNjY0MiwgMi4wNDU2MSwgMi40Mjg4NSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMDQyNjEsIDAuOTUwMTY5LCAxLjU0Njk5LCAyLjI5NTgxLCAzLjAzOTQsIDMuNzkzNzksIDQuNTQwNjUiLCBcCi0gICAgICAgICAgIjAuMjA0NDA5LCAwLjk1MDAyOSwgMS41NDg4OCwgMi4yOTYxNSwgMy4wNDI0LCAzLjc5NDIsIDQuNTQwNzQiLCBcCi0gICAgICAgICAgIjAuMjA0Mzk1LCAwLjk1MDA4NCwgMS41NDkyNSwgMi4yOTA3NSwgMy4wMzk1NywgMy43ODIwNywgNC41NDExMSIsIFwKLSAgICAgICAgICAiMC4yMDQ0MjUsIDAuOTQ5OTI1LCAxLjU0ODg2LCAyLjI5NjA0LCAzLjAzODk0LCAzLjc5NCwgNC41NDA2OSIsIFwKLSAgICAgICAgICAiMC4yMDQzMDEsIDAuOTUwMDQ4LCAxLjU0Njk1LCAyLjI5Mjk5LCAzLjA0MzU1LCAzLjc4NDY2LCA0LjUyNzg1IiwgXAotICAgICAgICAgICIwLjIwMzk4MSwgMC45NTAyLCAxLjU0NywgMi4yOTMwNSwgMy4wNDMwNSwgMy43OTM5NCwgNC41MjcyMiIsIFwKLSAgICAgICAgICAiMC4yMDQyMjcsIDAuOTUwMDQ2LCAxLjU0Njk3LCAyLjI5MzEzLCAzLjA0MzI1LCAzLjc4NTQ4LCA0LjUyNjk4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzMjYzMSwgMC4xMzUzOTQsIDAuMjE3NDI2LCAwLjMyMDIxNSwgMC40MjI1MzgsIDAuNTI1Mzk1LCAwLjYyNzY2MiIsIFwKLSAgICAgICAgICAiMC4wNDI2NiwgMC4xNDUxNTIsIDAuMjI3MjA0LCAwLjMyOTgxMywgMC40MzIyLCAwLjUzNDc0NSwgMC42MzcyMjciLCBcCi0gICAgICAgICAgIjAuMDU1Mzc5LCAwLjE1ODEzNywgMC4yNDAyMTYsIDAuMzQyNzg5LCAwLjQ0NTIxOSwgMC41NDgwNjYsIDAuNjUwMjQ0IiwgXAotICAgICAgICAgICIwLjA2NzMzNCwgMC4xNzAwOTUsIDAuMjUyMjEzLCAwLjM1NDYyLCAwLjQ1NzE5NywgMC41NTk2MzgsIDAuNjYwOTI5IiwgXAotICAgICAgICAgICIwLjA3Nzc5NiwgMC4xODI1MjQsIDAuMjY0NzMzLCAwLjM2NzA5NSwgMC40Njk1NjYsIDAuNTcyMDk0LCAwLjY3NDYyIiwgXAotICAgICAgICAgICIwLjA5MTk5OCwgMC4yMDI1NDcsIDAuMjg0NDcxLCAwLjM4NzIxNiwgMC40ODk1NTEsIDAuNTkyMTIzLCAwLjY5NDU0IiwgXAotICAgICAgICAgICIwLjEwMjY3MiwgMC4yMjA4MDksIDAuMzAxOTc0LCAwLjQwNDQxMiwgMC41MDcxNzMsIDAuNjA5NTA1LCAwLjcxMTg5NCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTg0NzUsIDAuMjcwMTUyLCAwLjQzOTY4NSwgMC42NTE0ODUsIDAuODYzMTAyLCAxLjA3NTAzLCAxLjI4NjI1IiwgXAotICAgICAgICAgICIwLjA1OTU5MSwgMC4yNzAxNywgMC40Mzk0NjYsIDAuNjUxMjAzLCAwLjg2MjgwOSwgMS4wNzQ1MywgMS4yODY1OCIsIFwKLSAgICAgICAgICAiMC4wNjUzMTcsIDAuMjcwMjQ0LCAwLjQzOTU4OCwgMC42NTEzMzIsIDAuODYyOTUyLCAxLjA3NSwgMS4yODYzOCIsIFwKLSAgICAgICAgICAiMC4wNzM2MSwgMC4yNzE0NjMsIDAuNDM5NjA1LCAwLjY1MTE1MiwgMC44NjI5MTMsIDEuMDc0NTYsIDEuMjg2NjYiLCBcCi0gICAgICAgICAgIjAuMDgyODE2LCAwLjI3NDkwMiwgMC40NDAwMzMsIDAuNjUxMTgxLCAwLjg2MzEzOSwgMS4wNzQ2NCwgMS4yODYzOCIsIFwKLSAgICAgICAgICAiMC4wOTgzNDQsIDAuMjgyNzcxLCAwLjQ0Mzg0NiwgMC42NTE1OTgsIDAuODYyODM1LCAxLjA3NDgzLCAxLjI4NjU4IiwgXAotICAgICAgICAgICIwLjExMTI0OSwgMC4yOTA3MzcsIDAuNDQ5Mzg1LCAwLjY1NDA4NSwgMC44NjMzMjcsIDEuMDc0ODgsIDEuMjg1ODkiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTE0NjczLCAwLjQ5NzA0LCAwLjgwMjU2LCAxLjE4NTE5LCAxLjU2Njk1LCAxLjk1MDIsIDIuMzMxMzkiLCBcCi0gICAgICAgICAgIjAuMTIyODA5LCAwLjUwNTU1OSwgMC44MTE0OTYsIDEuMTkzMzIsIDEuNTc1MTksIDEuOTU3NDIsIDIuMzQwNzUiLCBcCi0gICAgICAgICAgIjAuMTMyODAzLCAwLjUxNTgzNSwgMC44MjE2LCAxLjIwNDM3LCAxLjU4NjA0LCAxLjk2ODY5LCAyLjM0OTg1IiwgXAotICAgICAgICAgICIwLjE0MjkwMywgMC41MjYxNjUsIDAuODMyMzU2LCAxLjIxNDQyLCAxLjU5NjQsIDEuOTc5MiwgMi4zNjE0NCIsIFwKLSAgICAgICAgICAiMC4xNTMxNTYsIDAuNTM2NjUxLCAwLjg0Mjk3OSwgMS4yMjUyNCwgMS42MDY5NiwgMS45ODk3MiwgMi4zNzA4IiwgXAotICAgICAgICAgICIwLjE2OTQwNywgMC41NTMwNjUsIDAuODU5MDAzLCAxLjI0MjI1LCAxLjYyMzUsIDIuMDA1NTIsIDIuMzg3OTMiLCBcCi0gICAgICAgICAgIjAuMTgzOTQ2LCAwLjU2NzM3OSwgMC44NzM4MTIsIDEuMjU2MDksIDEuNjM5MzEsIDIuMDIwMDMsIDIuNDAzMzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjA0MzA4LCAwLjk1MDI0NywgMS41NDk2OSwgMi4yOTYwOCwgMy4wMzkyNSwgMy43OTQ1OSwgNC41NDA5MiIsIFwKLSAgICAgICAgICAiMC4yMDQxMzgsIDAuOTQ5OTMzLCAxLjU0NTY2LCAyLjI5MzA2LCAzLjA0NDI3LCAzLjc4NTA5LCA0LjU0MTgxIiwgXAotICAgICAgICAgICIwLjIwNDI3OCwgMC45NTE3MDgsIDEuNTQ5NjQsIDIuMjk2MDUsIDMuMDM4NjYsIDMuNzkzNTIsIDQuNTM5NDQiLCBcCi0gICAgICAgICAgIjAuMjA1NTY0LCAwLjk1MDA3NCwgMS41NDU3MywgMi4yOTI5MiwgMy4wMzkzMywgMy43ODI0NCwgNC41NDE1NCIsIFwKLSAgICAgICAgICAiMC4yMDgyNzYsIDAuOTUxMTA0LCAxLjU0OTUsIDIuMjk2MTgsIDMuMDM5LCAzLjc5Mzg2LCA0LjUzOTY2IiwgXAotICAgICAgICAgICIwLjIxNDQxMiwgMC45NTAwNTksIDEuNTQ5ODIsIDIuMjkxMDYsIDMuMDM5LCAzLjc5MjI5LCA0LjUzMTEiLCBcCi0gICAgICAgICAgIjAuMjIxNzg1LCAwLjk0OTAzNywgMS41NDg1MiwgMi4yOTM0LCAzLjAzNjIxLCAzLjc5MjIyLCA0LjU0MTY2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkQiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzMDM1MywgMC4xMzIxODMsIDAuMjEzNzM3LCAwLjMxNTQwOCwgMC40MTc1OTUsIDAuNTE5MDE4LCAwLjYyMTI2IiwgXAotICAgICAgICAgICIwLjA0MDQxMiwgMC4xNDIyMjIsIDAuMjIzNzI2LCAwLjMyNTQ1OSwgMC40Mjc0NDEsIDAuNTI5NDc1LCAwLjYzMTExOCIsIFwKLSAgICAgICAgICAiMC4wNTI5NjksIDAuMTU0NjMyLCAwLjIzNjA4OSwgMC4zMzczMDEsIDAuNDM4ODY3LCAwLjU0MDc3OSwgMC42NDIzMDQiLCBcCi0gICAgICAgICAgIjAuMDY0OTY1LCAwLjE2NzE3LCAwLjI0ODYzMSwgMC4zNTA2MzMsIDAuNDUyMjM2LCAwLjU1MzcyNCwgMC42NTU3NzYiLCBcCi0gICAgICAgICAgIjAuMDc0NzI0LCAwLjE3OTUyMiwgMC4yNjExNjcsIDAuMzYyODA1LCAwLjQ2NDQ4MywgMC41NjYzNDQsIDAuNjY4MjQyIiwgXAotICAgICAgICAgICIwLjA4ODQ5NiwgMC4yMDAyMjEsIDAuMjgwOTY3LCAwLjM4MzA2MSwgMC40ODQ3MTgsIDAuNTg2NDA4LCAwLjY4ODQxMyIsIFwKLSAgICAgICAgICAiMC4wOTg3MzIsIDAuMjE4MDQyLCAwLjI5ODUzMiwgMC40MDAzMTcsIDAuNTAyNTc2LCAwLjYwNDEwNiwgMC43MDU3NDIiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU1NTY5LCAwLjI2NTgwNywgMC40MzQwODYsIDAuNjQ1MjA4LCAwLjg1NDk2NywgMS4wNjY2LCAxLjI3NDk4IiwgXAotICAgICAgICAgICIwLjA1NzAwNSwgMC4yNjU4MDYsIDAuNDM0MDc3LCAwLjY0NDE5MSwgMC44NTUyMTIsIDEuMDY1MTksIDEuMjc2MDciLCBcCi0gICAgICAgICAgIjAuMDYzMjIzLCAwLjI2NjMzOCwgMC40MzQzMDcsIDAuNjQ0Mzg5LCAwLjg1NTg3OCwgMS4wNjQ5NywgMS4yNzQ3OSIsIFwKLSAgICAgICAgICAiMC4wNzEyMjMsIDAuMjY3NzEyLCAwLjQzMzk4NSwgMC42NDQzMTEsIDAuODU2MDQ2LCAxLjA2NTg0LCAxLjI3NDk0IiwgXAotICAgICAgICAgICIwLjA4MTMxNiwgMC4yNzEwODEsIDAuNDM1NDQ4LCAwLjY0NTIyNSwgMC44NTYyMzksIDEuMDY0NTcsIDEuMjc1MiIsIFwKLSAgICAgICAgICAiMC4wOTY0NDUsIDAuMjc4MjUxLCAwLjQzOTI5OCwgMC42NDYwMjcsIDAuODU0NDY1LCAxLjA2NDUsIDEuMjc1MjciLCBcCi0gICAgICAgICAgIjAuMTA5MzEsIDAuMjg2NjkzLCAwLjQ0NDg4MiwgMC42NDczMjgsIDAuODU0OTAyLCAxLjA2NDM0LCAxLjI3NDY5Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwNDE1NCwgMC40ODY1MDcsIDAuNzkyMTg3LCAxLjE3NDc3LCAxLjU1Njk0LCAxLjkzODM1LCAyLjMyMTUiLCBcCi0gICAgICAgICAgIjAuMTEyMDE1LCAwLjQ5NTA1MSwgMC44MDA2NTgsIDEuMTgyNzQsIDEuNTY0NywgMS45NDY3OCwgMi4zMjg5OCIsIFwKLSAgICAgICAgICAiMC4xMjIwNDcsIDAuNTA1MzU1LCAwLjgxMDk0NSwgMS4xOTMwNCwgMS41NzUxNCwgMS45NTczLCAyLjM0MDgyIiwgXAotICAgICAgICAgICIwLjEzMjU2MywgMC41MTU2MzMsIDAuODIxNDE0LCAxLjIwMzQ4LCAxLjU4NjU5LCAxLjk2NzY4LCAyLjM1MDYxIiwgXAotICAgICAgICAgICIwLjE0Mjk4NiwgMC41MjYwMDgsIDAuODMyMDUzLCAxLjIxNDI1LCAxLjU5NywgMS45Nzk1NiwgMi4zNjE0OSIsIFwKLSAgICAgICAgICAiMC4xNjAwNzMsIDAuNTQyMzkxLCAwLjg0ODI1MywgMS4yMzA2MiwgMS42MTMzMywgMS45OTQ5LCAyLjM3ODAzIiwgXAotICAgICAgICAgICIwLjE3NDgwMywgMC41NTcyNTYsIDAuODYzMDc3LCAxLjI0NTE3LCAxLjYyNzMyLCAyLjAxMDMsIDIuMzkxNDciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjA0MjU1LCAwLjk1MDEyMywgMS41NDcyLCAyLjI5NjA1LCAzLjA0MzEzLCAzLjc5MjQ0LCA0LjUyNzI1IiwgXAotICAgICAgICAgICIwLjIwNDA1OCwgMC45NTEwMTUsIDEuNTQ3MDMsIDIuMjkzMDgsIDMuMDM5MDEsIDMuNzkyMTQsIDQuNTMwOTUiLCBcCi0gICAgICAgICAgIjAuMjAzNDk5LCAwLjk1MTEyMywgMS41NDk2NywgMi4yOTcwOCwgMy4wNDQ2MywgMy43ODQ4MSwgNC41NDIxNCIsIFwKLSAgICAgICAgICAiMC4yMDU5MTQsIDAuOTUwMTExLCAxLjU0NjgsIDIuMjk3MDgsIDMuMDQzNDYsIDMuNzkyMTEsIDQuNTI4NzkiLCBcCi0gICAgICAgICAgIjAuMjEwMjg2LCAwLjk1MDA1NCwgMS41NDcyMiwgMi4yOTMxNSwgMy4wNDMzNSwgMy43ODE2MywgNC41MjcyMSIsIFwKLSAgICAgICAgICAiMC4yMTk3NjIsIDAuOTQ5OSwgMS41NDcwNCwgMi4yOTMyNCwgMy4wNDI3NiwgMy43ODUwNiwgNC41NDE4NSIsIFwKLSAgICAgICAgICAiMC4yMjg4OTQsIDAuOTQ4NzU1LCAxLjU0NzE0LCAyLjI5MzA4LCAzLjAzOTI1LCAzLjc5MzkxLCA0LjUzMzg4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQU4iOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjYwOCwgMC4wMDY2MSwgMC4wMDY2MTEsIDAuMDA2NjExLCAwLjAwNjYxLCAwLjAwNjYwOSwgMC4wMDY2MDgiLCBcCi0gICAgICAgICAgIjAuMDA2NTgsIDAuMDA2NTg0LCAwLjAwNjU4NCwgMC4wMDY1ODUsIDAuMDA2NTg0LCAwLjAwNjU4NCwgMC4wMDY1ODEiLCBcCi0gICAgICAgICAgIjAuMDA2NTY0LCAwLjAwNjU3NCwgMC4wMDY1NzQsIDAuMDA2NTc1LCAwLjAwNjU3NSwgMC4wMDY1NzMsIDAuMDA2NTczIiwgXAotICAgICAgICAgICIwLjAwNjU2OSwgMC4wMDY1NzksIDAuMDA2NTgxLCAwLjAwNjU3OSwgMC4wMDY1NzksIDAuMDA2NTc4LCAwLjAwNjU4IiwgXAotICAgICAgICAgICIwLjAwNjU3NiwgMC4wMDY1ODksIDAuMDA2NTksIDAuMDA2NTksIDAuMDA2NTkxLCAwLjAwNjU5LCAwLjAwNjU5MSIsIFwKLSAgICAgICAgICAiMC4wMDY2LCAwLjAwNjYxMSwgMC4wMDY2MTYsIDAuMDA2NjE1LCAwLjAwNjYxNSwgMC4wMDY2MTcsIDAuMDA2NjE0IiwgXAotICAgICAgICAgICIwLjAwNjYyLCAwLjAwNjYzNCwgMC4wMDY2MzcsIDAuMDA2NjM3LCAwLjAwNjYzMiwgMC4wMDY2MzYsIDAuMDA2NjM2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1MTg2LCAwLjAwNTIyOCwgMC4wMDUyMzMsIDAuMDA1MjM2LCAwLjAwNTIzNywgMC4wMDUyMzgsIDAuMDA1MjM4IiwgXAotICAgICAgICAgICIwLjAwNTE1MSwgMC4wMDUyMDMsIDAuMDA1MjEsIDAuMDA1MjEzLCAwLjAwNTIxNSwgMC4wMDUyMTYsIDAuMDA1MjE3IiwgXAotICAgICAgICAgICIwLjAwNTEyNywgMC4wMDUxOTIsIDAuMDA1MjAyLCAwLjAwNTIwOCwgMC4wMDUyMSwgMC4wMDUyMTIsIDAuMDA1MjEzIiwgXAotICAgICAgICAgICIwLjAwNTExOCwgMC4wMDUxOTIsIDAuMDA1MjA1LCAwLjAwNTIxMSwgMC4wMDUyMTUsIDAuMDA1MjE3LCAwLjAwNTIxOSIsIFwKLSAgICAgICAgICAiMC4wMDUxMTksIDAuMDA1MTk5LCAwLjAwNTIxMywgMC4wMDUyMiwgMC4wMDUyMjUsIDAuMDA1MjI3LCAwLjAwNTIyOSIsIFwKLSAgICAgICAgICAiMC4wMDUxMjksIDAuMDA1MjEyLCAwLjAwNTIyOCwgMC4wMDUyMzgsIDAuMDA1MjQzLCAwLjAwNTI0NiwgMC4wMDUyNDgiLCBcCi0gICAgICAgICAgIjAuMDA1MTMyLCAwLjAwNTIxOSwgMC4wMDUyMzcsIDAuMDA1MjQ3LCAwLjAwNTI1MiwgMC4wMDUyNTYsIDAuMDA1MjU4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQk4iOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNTg0MSwgMC4wMDU4NDksIDAuMDA1ODQ5LCAwLjAwNTg1MSwgMC4wMDU4NTUsIDAuMDA1ODQ4LCAwLjAwNTg0OCIsIFwKLSAgICAgICAgICAiMC4wMDU4MTIsIDAuMDA1ODIzLCAwLjAwNTgyNSwgMC4wMDU4MjUsIDAuMDA1ODI1LCAwLjAwNTgyNCwgMC4wMDU4MjQiLCBcCi0gICAgICAgICAgIjAuMDA1Nzk1LCAwLjAwNTgxMywgMC4wMDU4MTUsIDAuMDA1ODE2LCAwLjAwNTgxNywgMC4wMDU4MTcsIDAuMDA1ODE1IiwgXAotICAgICAgICAgICIwLjAwNTc5MywgMC4wMDU4MTYsIDAuMDA1ODE5LCAwLjAwNTgyMSwgMC4wMDU4MjIsIDAuMDA1ODIxLCAwLjAwNTgyMiIsIFwKLSAgICAgICAgICAiMC4wMDU4MDEsIDAuMDA1ODI3LCAwLjAwNTgyOSwgMC4wMDU4MzEsIDAuMDA1ODMxLCAwLjAwNTgzMSwgMC4wMDU4MyIsIFwKLSAgICAgICAgICAiMC4wMDU4MjQsIDAuMDA1ODQ4LCAwLjAwNTg1MywgMC4wMDU4NTUsIDAuMDA1ODU1LCAwLjAwNTg1NiwgMC4wMDU4NTUiLCBcCi0gICAgICAgICAgIjAuMDA1ODQ0LCAwLjAwNTg2OCwgMC4wMDU4NzIsIDAuMDA1ODc2LCAwLjAwNTg3NywgMC4wMDU4NzcsIDAuMDA1ODc3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1MDkzLCAwLjAwNTEzOCwgMC4wMDUxNDMsIDAuMDA1MTQ2LCAwLjAwNTE0NywgMC4wMDUxNDgsIDAuMDA1MTQ5IiwgXAotICAgICAgICAgICIwLjAwNTA2MSwgMC4wMDUxMTQsIDAuMDA1MTIxLCAwLjAwNTEyNSwgMC4wMDUxMjcsIDAuMDA1MTI4LCAwLjAwNTEyOSIsIFwKLSAgICAgICAgICAiMC4wMDUwMzcsIDAuMDA1MTA0LCAwLjAwNTExNCwgMC4wMDUxMTksIDAuMDA1MTIyLCAwLjAwNTEyNCwgMC4wMDUxMjUiLCBcCi0gICAgICAgICAgIjAuMDA1MDI2LCAwLjAwNTEwMSwgMC4wMDUxMTMsIDAuMDA1MTIsIDAuMDA1MTIzLCAwLjAwNTEyNiwgMC4wMDUxMjciLCBcCi0gICAgICAgICAgIjAuMDA1MDI2LCAwLjAwNTEwNiwgMC4wMDUxMjEsIDAuMDA1MTI4LCAwLjAwNTEzMywgMC4wMDUxMzUsIDAuMDA1MTM3IiwgXAotICAgICAgICAgICIwLjAwNTAzNSwgMC4wMDUxMTksIDAuMDA1MTM2LCAwLjAwNTE0NSwgMC4wMDUxNTEsIDAuMDA1MTU0LCAwLjAwNTE1NiIsIFwKLSAgICAgICAgICAiMC4wMDUwMzgsIDAuMDA1MTI2LCAwLjAwNTE0NCwgMC4wMDUxNTQsIDAuMDA1MTYsIDAuMDA1MTY0LCAwLjAwNTE2NiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDU1LCAwLjAwNDU1NSwgMC4wMDQ1NTUsIDAuMDA0NTU1LCAwLjAwNDU1NSwgMC4wMDQ1NTQsIDAuMDA0NTU0IiwgXAotICAgICAgICAgICIwLjAwNDUzNSwgMC4wMDQ1NjMsIDAuMDA0NTY3LCAwLjAwNDU2OCwgMC4wMDQ1NjYsIDAuMDA0NTY5LCAwLjAwNDU3NSIsIFwKLSAgICAgICAgICAiMC4wMDQ1MTksIDAuMDA0NTU5LCAwLjAwNDU2NiwgMC4wMDQ1NjgsIDAuMDA0NTY5LCAwLjAwNDU3LCAwLjAwNDU3IiwgXAotICAgICAgICAgICIwLjAwNDUyMiwgMC4wMDQ1NiwgMC4wMDQ1NjYsIDAuMDA0NTY4LCAwLjAwNDU3MiwgMC4wMDQ1NzMsIDAuMDA0NTciLCBcCi0gICAgICAgICAgIjAuMDA0NTI4LCAwLjAwNDU1OSwgMC4wMDQ1NjYsIDAuMDA0NTcsIDAuMDA0NTcxLCAwLjAwNDU3MSwgMC4wMDQ1NzIiLCBcCi0gICAgICAgICAgIjAuMDA0NTU0LCAwLjAwNDU2MywgMC4wMDQ1NjgsIDAuMDA0NTcxLCAwLjAwNDU3MywgMC4wMDQ1NzQsIDAuMDA0NTc0IiwgXAotICAgICAgICAgICIwLjAwNDU4NiwgMC4wMDQ1NzcsIDAuMDA0NTczLCAwLjAwNDU3NCwgMC4wMDQ1NzQsIDAuMDA0NTc0LCAwLjAwNDU3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTc3MywgMC4wMDE3ODksIDAuMDAxNzkxLCAwLjAwMTc5MiwgMC4wMDE3OTIsIDAuMDAxNzkyLCAwLjAwMTc5MyIsIFwKLSAgICAgICAgICAiMC4wMDE3MDksIDAuMDAxNzcxLCAwLjAwMTc4LCAwLjAwMTc4NCwgMC4wMDE3ODcsIDAuMDAxNzg4LCAwLjAwMTc4OSIsIFwKLSAgICAgICAgICAiMC4wMDE2NjEsIDAuMDAxNzUxLCAwLjAwMTc2NiwgMC4wMDE3NzUsIDAuMDAxNzc5LCAwLjAwMTc4MiwgMC4wMDE3ODQiLCBcCi0gICAgICAgICAgIjAuMDAxNjMyLCAwLjAwMTczNCwgMC4wMDE3NTUsIDAuMDAxNzY2LCAwLjAwMTc3MywgMC4wMDE3NzcsIDAuMDAxNzc5IiwgXAotICAgICAgICAgICIwLjAwMTYxNCwgMC4wMDE3MTksIDAuMDAxNzQzLCAwLjAwMTc1OCwgMC4wMDE3NjYsIDAuMDAxNzcxLCAwLjAwMTc3NSIsIFwKLSAgICAgICAgICAiMC4wMDE2LCAwLjAwMTY5OSwgMC4wMDE3MjgsIDAuMDAxNzQ2LCAwLjAwMTc1NywgMC4wMDE3NjMsIDAuMDAxNzY4IiwgXAotICAgICAgICAgICIwLjAwMTU5NywgMC4wMDE2ODcsIDAuMDAxNzE3LCAwLjAwMTczNywgMC4wMDE3NDksIDAuMDAxNzU3LCAwLjAwMTc2MiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkQiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzMzMywgMC4wMDMzNDYsIDAuMDAzMzQ4LCAwLjAwMzM0OSwgMC4wMDMzNSwgMC4wMDMzNDksIDAuMDAzMzUiLCBcCi0gICAgICAgICAgIjAuMDAzMzI0LCAwLjAwMzM3MSwgMC4wMDMzNzYsIDAuMDAzMzc5LCAwLjAwMzM4MSwgMC4wMDMzODIsIDAuMDAzMzgyIiwgXAotICAgICAgICAgICIwLjAwMzMwOSwgMC4wMDMzNjUsIDAuMDAzMzc4LCAwLjAwMzM4NiwgMC4wMDMzODgsIDAuMDAzMzksIDAuMDAzMzkyIiwgXAotICAgICAgICAgICIwLjAwMzI5MSwgMC4wMDMzNjMsIDAuMDAzMzc1LCAwLjAwMzM4MSwgMC4wMDMzODYsIDAuMDAzMzg2LCAwLjAwMzM4OCIsIFwKLSAgICAgICAgICAiMC4wMDMzLCAwLjAwMzM2NCwgMC4wMDMzNzYsIDAuMDAzMzgzLCAwLjAwMzM4NSwgMC4wMDMzODcsIDAuMDAzMzg4IiwgXAotICAgICAgICAgICIwLjAwMzMxNSwgMC4wMDMzNjQsIDAuMDAzMzc0LCAwLjAwMzM4MywgMC4wMDMzODQsIDAuMDAzMzg3LCAwLjAwMzM5IiwgXAotICAgICAgICAgICIwLjAwMzM0NSwgMC4wMDMzNzEsIDAuMDAzMzc2LCAwLjAwMzM4MiwgMC4wMDMzODYsIDAuMDAzMzg4LCAwLjAwMzM5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxNzY2LCAwLjAwMTc4NiwgMC4wMDE3ODksIDAuMDAxNzksIDAuMDAxNzksIDAuMDAxNzkxLCAwLjAwMTc5MSIsIFwKLSAgICAgICAgICAiMC4wMDE2OTQsIDAuMDAxNzY2LCAwLjAwMTc3NiwgMC4wMDE3ODEsIDAuMDAxNzg0LCAwLjAwMTc4NSwgMC4wMDE3ODYiLCBcCi0gICAgICAgICAgIjAuMDAxNjUzLCAwLjAwMTc0NSwgMC4wMDE3NjIsIDAuMDAxNzcxLCAwLjAwMTc3NiwgMC4wMDE3NzksIDAuMDAxNzgxIiwgXAotICAgICAgICAgICIwLjAwMTY0OSwgMC4wMDE3MzQsIDAuMDAxNzU0LCAwLjAwMTc2NSwgMC4wMDE3NzEsIDAuMDAxNzc1LCAwLjAwMTc3OCIsIFwKLSAgICAgICAgICAiMC4wMDE2NCwgMC4wMDE3MTgsIDAuMDAxNzQxLCAwLjAwMTc1NiwgMC4wMDE3NjQsIDAuMDAxNzY5LCAwLjAwMTc3MyIsIFwKLSAgICAgICAgICAiMC4wMDE2NjksIDAuMDAxNzExLCAwLjAwMTczNCwgMC4wMDE3NDksIDAuMDAxNzU4LCAwLjAwMTc2NCwgMC4wMDE3NjgiLCBcCi0gICAgICAgICAgIjAuMDAxNywgMC4wMDE3MDksIDAuMDAxNzMsIDAuMDAxNzQ1LCAwLjAwMTc1NCwgMC4wMDE3NjEsIDAuMDAxNzY1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBOQU5ENEJCWEwgKgotICogLS0tLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChOQU5ENEJCWEwpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4xMzg2OTk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEFOKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2NTQ0Mjk7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjU0MTc7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjU0NDI5OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDI0NiwgMC4wMDAyMTgsIDAuMDAwMjIzLCAwLjAwMDIyOCwgMC4wMDAyNDQsIDAuMDAwMjY1LCAwLjAwMDI5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxMzk4LCAwLjAwMTM3OSwgMC4wMDEzNzgsIDAuMDAxMzg3LCAwLjAwMTQsIDAuMDAxNDI3LCAwLjAwMTQ1MSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQk4pICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYxNzE2ODsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MTY5Mjc7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjE3MTY4OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDIxNCwgMC4wMDAxODgsIDAuMDAwMTk0LCAwLjAwMDE5NywgMC4wMDAyMDgsIDAuMDAwMjM0LCAwLjAwMDI1OSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTUwOCwgMC4wMDE0ODksIDAuMDAxNDg4LCAwLjAwMTQ5NCwgMC4wMDE1MDcsIDAuMDAxNTM1LCAwLjAwMTU1OCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQykgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNzAyODM5OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDcwMjgzOTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA3MDE5MzQ7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjI2LCAwLjAwMDIyNiwgMC4wMDAyMjYsIDAuMDAwMjI2LCAwLjAwMDIyNiwgMC4wMDAyMjYsIDAuMDAwMjI2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjQxLCAwLjAwMDIyOSwgMC4wMDAyMjgsIDAuMDAwMjI4LCAwLjAwMDIyNywgMC4wMDAyMjcsIDAuMDAwMjI3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihEKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA3MDc0Njg7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNzA2OTkxOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDcwNzQ2ODsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxMzUsIDAuMDAwMTM1LCAwLjAwMDEzNSwgMC4wMDAxMzUsIDAuMDAwMTM1LCAwLjAwMDEzNSwgMC4wMDAxMzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyNTcsIDAuMDAwMjU3LCAwLjAwMDI1NywgMC4wMDAyNTcsIDAuMDAwMjU3LCAwLjAwMDI1NywgMC4wMDAyNTciKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4wNDI3NjM7Ci0gICAgZnVuY3Rpb24gOiAiKCEoKCgoIUFOKSAoIUJOKSkgQykgRCkpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTAwNTczLCAwLjExNDc4LCAwLjI0MjI5LCAwLjQ1NDMxLCAwLjY2NjE4NiwgMS4xNjA5NywgMS40NDIzNyIsIFwKLSAgICAgICAgICAiMC4xMTA1OTIsIDAuMTI0Nzk0LCAwLjI1MjI3NiwgMC40NjQzODMsIDAuNjc2MzM5LCAxLjE3MTAzLCAxLjQ1MzkxIiwgXAotICAgICAgICAgICIwLjEyMTIxMSwgMC4xMzU0MTIsIDAuMjYyOTMzLCAwLjQ3NDk0MiwgMC42ODY5OTcsIDEuMTgxMjEsIDEuNDY0NzEiLCBcCi0gICAgICAgICAgIjAuMTI5OTIyLCAwLjE0NDEzMywgMC4yNzE1OTksIDAuNDgzNjkyLCAwLjY5NTY1LCAxLjE5MDg1LCAxLjQ3MjQ4IiwgXAotICAgICAgICAgICIwLjEzNjkxNiwgMC4xNTExMSwgMC4yNzg1NjYsIDAuNDkwNzgyLCAwLjcwMjYzNSwgMS4xOTcyOCwgMS40Nzk4NCIsIFwKLSAgICAgICAgICAiMC4xNDY2OTYsIDAuMTYwODk4LCAwLjI4ODMxNSwgMC41MDAzMzEsIDAuNzEyNTMsIDEuMjA2OTksIDEuNDg5MjgiLCBcCi0gICAgICAgICAgIjAuMTU0NDY5LCAwLjE2ODY3NSwgMC4yOTYwMzQsIDAuNTA4MTEsIDAuNzIwMDI1LCAxLjIxNDQ4LCAxLjQ5NzE3Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE2ODIzLCAwLjE5NzIzNiwgMC40NTc3MDgsIDAuODkzMDE3LCAxLjMyNzE5LCAyLjM0MjE4LCAyLjkyMDYzIiwgXAotICAgICAgICAgICIwLjE2ODExNiwgMC4xOTcyNDUsIDAuNDU3ODQ5LCAwLjg5MzA3MSwgMS4zMjc3NCwgMi4zNDIyMiwgMi45MjE4OCIsIFwKLSAgICAgICAgICAiMC4xNjgxNDEsIDAuMTk3MTA5LCAwLjQ1Nzk4NCwgMC44OTI1MTgsIDEuMzI3NTcsIDIuMzQxNDYsIDIuOTIxODIiLCBcCi0gICAgICAgICAgIjAuMTY4Mjk1LCAwLjE5NzE4MiwgMC40NTc4NjQsIDAuODkyNTMyLCAxLjMyNzczLCAyLjM0MjE2LCAyLjkyMDk0IiwgXAotICAgICAgICAgICIwLjE2ODQxOSwgMC4xOTcyNjUsIDAuNDU3OTEyLCAwLjg5Mjg5MSwgMS4zMjc3MywgMi4zNDE1MSwgMi45MjE4IiwgXAotICAgICAgICAgICIwLjE2ODYzOCwgMC4xOTc0NTYsIDAuNDU3OTAyLCAwLjg5MjU3LCAxLjMyNzMxLCAyLjM0MjI2LCAyLjkyMTUiLCBcCi0gICAgICAgICAgIjAuMTY4Nzk1LCAwLjE5NzYyNCwgMC40NTgyMTQsIDAuODkyNzYzLCAxLjMyNzIyLCAyLjM0MTk4LCAyLjkyMTc4Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMwMzM4LCAwLjM1MTkzNywgMC43OTAxNTcsIDEuNTIwMjIsIDIuMjUxNDgsIDMuOTUyNjYsIDQuOTI1MTkiLCBcCi0gICAgICAgICAgIjAuMzEyOTc5LCAwLjM2MTU1MSwgMC43OTk3NjEsIDEuNTI5ODksIDIuMjYwODEsIDMuOTYyMzMsIDQuOTM1MDIiLCBcCi0gICAgICAgICAgIjAuMzIyNDE5LCAwLjM3MTQxMSwgMC44MDk1MjQsIDEuNTQwNDMsIDIuMjY5NCwgMy45NzE5OSwgNC45NDQ2MiIsIFwKLSAgICAgICAgICAiMC4zMjk2NzQsIDAuMzc4NDEyLCAwLjgxNjkwNiwgMS41NDY5MiwgMi4yNzc2OCwgMy45NzkzNSwgNC45NTIxMSIsIFwKLSAgICAgICAgICAiMC4zMzU3MzIsIDAuMzg0NDc0LCAwLjgyMzA4NywgMS41NTMsIDIuMjgzMywgMy45ODU0NywgNC45NTgxNyIsIFwKLSAgICAgICAgICAiMC4zNDM4NDQsIDAuMzkyNDkzLCAwLjgzMDg5NCwgMS41NjEyMywgMi4yOTEyOCwgMy45OTM4OSwgNC45NjYyNyIsIFwKLSAgICAgICAgICAiMC4zNDk4MTcsIDAuMzk4NDE5LCAwLjgzNjY4LCAxLjU2NjgzLCAyLjI5ODAyLCAzLjk5OTY1LCA0Ljk3MjIyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjUzNDg0MiwgMC42MzA5NTUsIDEuNDg1NzksIDIuOTA3NTEsIDQuMzQwMjEsIDcuNjQzNzQsIDkuNTMzIiwgXAotICAgICAgICAgICIwLjUzNjE3NywgMC42Mjk5MDksIDEuNDg1NDUsIDIuOTA3NDMsIDQuMzM5NjQsIDcuNjQzNjgsIDkuNTMzNTQiLCBcCi0gICAgICAgICAgIjAuNTM1MzU2LCAwLjYyOTYxMywgMS40ODMwOCwgMi45MTE2MSwgNC4zMzc4NywgNy42NDI4MSwgOS41MzQyIiwgXAotICAgICAgICAgICIwLjUzNTMwOCwgMC42MzAxOTgsIDEuNDg1OTEsIDIuOTA3MjYsIDQuMzM5NDQsIDcuNjQzNjUsIDkuNTMyMSIsIFwKLSAgICAgICAgICAiMC41MzUzMTcsIDAuNjMwMTMzLCAxLjQ4NjEzLCAyLjkwNjY2LCA0LjMzODU3LCA3LjY0MzU3LCA5LjUzMjU0IiwgXAotICAgICAgICAgICIwLjUzNTM3NSwgMC42MzAwNTYsIDEuNDgzODksIDIuOTA2ODgsIDQuMzI5NzIsIDcuNjQzODIsIDkuNTMzMzMiLCBcCi0gICAgICAgICAgIjAuNTM1ODYsIDAuNjMwMDM0LCAxLjQ4NjUzLCAyLjkwNjgyLCA0LjMzOTQzLCA3LjY0MzE0LCA5LjUzMjQ2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkJOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDAzNzQsIDAuMTE0NTQzLCAwLjI0MTg3MiwgMC40NTM3NTIsIDAuNjY1Nzg2LCAxLjE2MDAyLCAxLjQ0MzIxIiwgXAotICAgICAgICAgICIwLjExMDQzMiwgMC4xMjQ1ODMsIDAuMjUxODc4LCAwLjQ2Mzc3NiwgMC42NzU5ODQsIDEuMTcwMzksIDEuNDUyODgiLCBcCi0gICAgICAgICAgIjAuMTIxNDYyLCAwLjEzNTYzOCwgMC4yNjI5NjMsIDAuNDc0OTAyLCAwLjY4NjgzLCAxLjE4MTYyLCAxLjQ2NDA2IiwgXAotICAgICAgICAgICIwLjEzMDUwNSwgMC4xNDQ2NzQsIDAuMjcxOTc1LCAwLjQ4Mzg3MSwgMC42OTYwNzgsIDEuMTkwNDgsIDEuNDcyOTciLCBcCi0gICAgICAgICAgIjAuMTM3ODU4LCAwLjE1MjAxOSwgMC4yNzkzMDMsIDAuNDkxMzk3LCAwLjcwMzE2MiwgMS4xOTgxNiwgMS40ODAwNSIsIFwKLSAgICAgICAgICAiMC4xNDgyNCwgMC4xNjI3NzksIDAuMjg5ODIyLCAwLjUwMTkyOCwgMC43MTM3NzYsIDEuMjA4MDgsIDEuNDkxMSIsIFwKLSAgICAgICAgICAiMC4xNTYwNDksIDAuMTcwMzMsIDAuMjk3NDI1LCAwLjUwOTM3OSwgMC43MjEyNTgsIDEuMjE2MDUsIDEuNDk4NDgiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTY2MTM4LCAwLjE5NTA4MywgMC40NTU5MDEsIDAuODkwNDg2LCAxLjMyNTcyLCAyLjM0MDMxLCAyLjkxOTMzIiwgXAotICAgICAgICAgICIwLjE2NjE3MiwgMC4xOTUxMDQsIDAuNDU1ODU2LCAwLjg5MDQ5NiwgMS4zMjU2LCAyLjMzOTY3LCAyLjkxOTYiLCBcCi0gICAgICAgICAgIjAuMTY2MjkxLCAwLjE5NTEwMiwgMC40NTU4OTQsIDAuODkwOTcxLCAxLjMyNTgxLCAyLjM0MDUyLCAyLjkxOTExIiwgXAotICAgICAgICAgICIwLjE2NjQzNCwgMC4xOTUzMywgMC40NTYxMzIsIDAuODkwNSwgMS4zMjU2MSwgMi4zMzk2NCwgMi45MTk3NiIsIFwKLSAgICAgICAgICAiMC4xNjY0ODIsIDAuMTk1NDU1LCAwLjQ1NTg2NiwgMC44OTA4NDgsIDEuMzI1NTIsIDIuMzQwMTcsIDIuOTE5NjYiLCBcCi0gICAgICAgICAgIjAuMTY2NzEsIDAuMTk1NjA3LCAwLjQ1NTk0LCAwLjg5MDcxMiwgMS4zMjU0MywgMi4zMzk4NywgMi45MjAzMiIsIFwKLSAgICAgICAgICAiMC4xNjcwNTUsIDAuMTk1NzUxLCAwLjQ1NjExMiwgMC44OTA1NTcsIDEuMzI1MTksIDIuMzQwMDcsIDIuOTIwMTQiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzAxNzY0LCAwLjM1MDQwOSwgMC43ODg4NzIsIDEuNTE5ODYsIDIuMjQ4OTUsIDMuOTUxMTcsIDQuOTIzNjUiLCBcCi0gICAgICAgICAgIjAuMzExMzE5LCAwLjM2MDAyOSwgMC43OTgyMTgsIDEuNTI4MzMsIDIuMjU4NjgsIDMuOTYwODUsIDQuOTMzNTUiLCBcCi0gICAgICAgICAgIjAuMzIxMzM5LCAwLjM3MDAzLCAwLjgwODI0OCwgMS41MzgzNywgMi4yNjkzNSwgMy45NzA4MiwgNC45NDM1MSIsIFwKLSAgICAgICAgICAiMC4zMjkwMSwgMC4zNzc3NDEsIDAuODE1OTc5LCAxLjU0NjczLCAyLjI3NzQ2LCAzLjk3ODQ0LCA0Ljk1MTI3IiwgXAotICAgICAgICAgICIwLjMzNTMwNiwgMC4zODM5OTYsIDAuODIyMzQ5LCAxLjU1Mjg1LCAyLjI4MzgzLCAzLjk4NTI2LCA0Ljk1NzY2IiwgXAotICAgICAgICAgICIwLjM0MzgwNSwgMC4zOTI1NTQsIDAuODMwODMxLCAxLjU2MTcyLCAyLjI5MjYyLCAzLjk5MzcyLCA0Ljk2NjQ3IiwgXAotICAgICAgICAgICIwLjM0OTk3LCAwLjM5ODc4NywgMC44MzcxMTIsIDEuNTY3MzIsIDIuMjk3NDMsIDQuMDAwMywgNC45NzI2MyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC41MzUwOTEsIDAuNjMwMjA1LCAxLjQ4NTkzLCAyLjkwNDIzLCA0LjMzODQ2LCA3LjY0MzYsIDkuNTMzODciLCBcCi0gICAgICAgICAgIjAuNTM1MjM5LCAwLjYzMDE3OSwgMS40ODM2NSwgMi45MDcxNywgNC4zMzg1MiwgNy42NDM1OSwgOS41MzQzOCIsIFwKLSAgICAgICAgICAiMC41MzUzNDIsIDAuNjMwMTY5LCAxLjQ4NTY0LCAyLjkwNzQsIDQuMzM5NzUsIDcuNjQzNjcsIDkuNTMzNTEiLCBcCi0gICAgICAgICAgIjAuNTM1Mzc5LCAwLjYzMDI1NCwgMS40ODM4MiwgMi45MTA5NSwgNC4zMjU5OSwgNy42NDI5LCA5LjUzMzcyIiwgXAotICAgICAgICAgICIwLjUzNTMxNywgMC42MzAwNjksIDEuNDg0MDUsIDIuOTA2MjQsIDQuMzI1OTcsIDcuNjM4NTEsIDkuNTMzNyIsIFwKLSAgICAgICAgICAiMC41MzUzMjUsIDAuNjMwMjAyLCAxLjQ4NDA5LCAyLjkxMDg4LCA0LjMyNTMzLCA3LjY0MzEzLCA5LjUzMTk4IiwgXAotICAgICAgICAgICIwLjUzNDc1OCwgMC42MzA4MjYsIDEuNDg2NTUsIDIuOTA2ODYsIDQuMzI5NTUsIDcuNjM5MDEsIDkuNTMyMzEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDgzOTc5LCAwLjA5ODEwOCwgMC4yMjUyNjUsIDAuNDM3MTI0LCAwLjY0OTI1OCwgMS4xNDM5MiwgMS40MjU3NSIsIFwKLSAgICAgICAgICAiMC4wOTM3ODIsIDAuMTA3OTExLCAwLjIzNTA5NCwgMC40NDcwMywgMC42NTkxMDgsIDEuMTUzOTUsIDEuNDM2MTEiLCBcCi0gICAgICAgICAgIjAuMTA1OTYzLCAwLjEyMDE4LCAwLjI0Nzc1OSwgMC40NTk3MDUsIDAuNjcxNzg4LCAxLjE2NjE5LCAxLjQ0OTIiLCBcCi0gICAgICAgICAgIjAuMTE4MjUsIDAuMTMyMzg0LCAwLjI1OTUzNywgMC40NzEzNTksIDAuNjgyMTEzLCAxLjE3NjE3LCAxLjQ1OTM2IiwgXAotICAgICAgICAgICIwLjEzMDk0NywgMC4xNDQ2ODEsIDAuMjcxOTA3LCAwLjQ4Mzc2NiwgMC42OTU2MjEsIDEuMTg4MjksIDEuNDcwOTIiLCBcCi0gICAgICAgICAgIjAuMTUxMDA4LCAwLjE2NTEyLCAwLjI5MTQ1LCAwLjUwMzM0MywgMC43MTUxNzksIDEuMjA3OTUsIDEuNDg5NjQiLCBcCi0gICAgICAgICAgIjAuMTY4NDE4LCAwLjE4MjYzNywgMC4zMDg3MzYsIDAuNTIwNzIyLCAwLjczMjM1MSwgMS4yMjQyMiwgMS41MDc0NSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNjM5MjIsIDAuMTkyODk2LCAwLjQ1MzY5MSwgMC44ODg0NjMsIDEuMzIzMTQsIDIuMzM3MTEsIDIuOTE2MDYiLCBcCi0gICAgICAgICAgIjAuMTY0MDE0LCAwLjE5MjkxLCAwLjQ1NDA1NywgMC44ODg1MDEsIDEuMzIzMzEsIDIuMzM3MjYsIDIuOTE2NjMiLCBcCi0gICAgICAgICAgIjAuMTY1MTY1LCAwLjE5MzU0NCwgMC40NTM4OSwgMC44ODg4ODEsIDEuMzIzMywgMi4zMzc0MSwgMi45MTY1OSIsIFwKLSAgICAgICAgICAiMC4xNjkzMjgsIDAuMTk2ODE1LCAwLjQ1MzY4NCwgMC44ODg0NjYsIDEuMzIzMzIsIDIuMzM2NDIsIDIuOTE2OTIiLCBcCi0gICAgICAgICAgIjAuMTc0OTA5LCAwLjIwMTk0LCAwLjQ1NDIxLCAwLjg4ODgyOCwgMS4zMjI5NiwgMi4zMzc2NSwgMi45MTY3MiIsIFwKLSAgICAgICAgICAiMC4xODU5MDksIDAuMjExODYzLCAwLjQ1Nzc3MSwgMC44ODg1NDksIDEuMzIzMzQsIDIuMzM3ODgsIDIuOTE1NzUiLCBcCi0gICAgICAgICAgIjAuMTk3MTUxLCAwLjIyMjEwMywgMC40NjMxMTksIDAuODg4NTEsIDEuMzIzMiwgMi4zMzY0MywgMi45MTciKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjgzMDYyLCAwLjMzMTk0MiwgMC43Njk4OTUsIDEuNTAwMDcsIDIuMjMxMzEsIDMuOTMyMzUsIDQuOTA1MDEiLCBcCi0gICAgICAgICAgIjAuMjkxMjk0LCAwLjM0MDEzOCwgMC43Nzg1NjYsIDEuNTA4NywgMi4yMzg4NiwgMy45NDEwNCwgNC45MTM2MSIsIFwKLSAgICAgICAgICAiMC4zMDEzNzQsIDAuMzUwMTQxLCAwLjc4ODY1MywgMS41MTk2OCwgMi4yNDg4LCAzLjk1MTMzLCA0LjkyMzg3IiwgXAotICAgICAgICAgICIwLjMxMTUyMiwgMC4zNjA0NzQsIDAuNzk4NzQ2LCAxLjUyOTMsIDIuMjYwNTksIDMuOTYxNzQsIDQuOTM0NDEiLCBcCi0gICAgICAgICAgIjAuMzIxNzk1LCAwLjM3MDU1OCwgMC44MDkxNDksIDEuNTM5MjgsIDIuMjcwMjgsIDMuOTcxOTUsIDQuOTQ0NjUiLCBcCi0gICAgICAgICAgIjAuMzM3OTUyLCAwLjM4Njk2OCwgMC44MjU3NiwgMS41NTU4LCAyLjI4NTk2LCAzLjk4ODk2LCA0Ljk2MTQiLCBcCi0gICAgICAgICAgIjAuMzUyMjEyLCAwLjQwMTMwNCwgMC44Mzk4NTMsIDEuNTcwNjgsIDIuMzAxOTUsIDQuMDAzMDYsIDQuOTc1NzIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuNTM0OTI1LCAwLjYzMTMsIDEuNDg1NDIsIDIuOTA3NDcsIDQuMzQwMTgsIDcuNjQyNzksIDkuNTMzNjgiLCBcCi0gICAgICAgICAgIjAuNTM1MTkzLCAwLjYzMTA4NSwgMS40ODYwMywgMi45MTAyNSwgNC4zMjY0MSwgNy42NDM3NCwgOS41MzI5OCIsIFwKLSAgICAgICAgICAiMC41MzUzMTYsIDAuNjMwMjQzLCAxLjQ4NDAzLCAyLjkxMTU2LCA0LjMyODk2LCA3LjY0MjcsIDkuNTMzNyIsIFwKLSAgICAgICAgICAiMC41MzYyMzEsIDAuNjMxMDIzLCAxLjQ4Mzk2LCAyLjkwOTk4LCA0LjM0MDIxLCA3LjY0MzE3LCA5LjUzMjg1IiwgXAotICAgICAgICAgICIwLjUzNjI0NCwgMC42MzEyMzQsIDEuNDgzODYsIDIuOTA3NzMsIDQuMzM5MDksIDcuNjQyOTYsIDkuNTMzMzkiLCBcCi0gICAgICAgICAgIjAuNTM3NTc1LCAwLjYzMTksIDEuNDg3MDEsIDIuOTEyMTUsIDQuMzMwNzEsIDcuNjQzODMsIDkuNTMyMzUiLCBcCi0gICAgICAgICAgIjAuNTM5MTY2LCAwLjYzMTk2MiwgMS40ODY1LCAyLjkwNjE2LCA0LjMyNTQxLCA3LjY0Mjg2LCA5LjUzMzYzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkQiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4MjQwNywgMC4wOTY1MzcsIDAuMjIzNzE0LCAwLjQzNTU2NSwgMC42NDc4MjUsIDEuMTQxNjksIDEuNDI1NDgiLCBcCi0gICAgICAgICAgIjAuMDkyMjQ2LCAwLjEwNjE1MiwgMC4yMzM1MTEsIDAuNDQ1MzM4LCAwLjY1NzQ5MSwgMS4xNTE5MiwgMS40MzQ0NCIsIFwKLSAgICAgICAgICAiMC4xMDQ0NjMsIDAuMTE4NTkxLCAwLjI0NTc0NiwgMC40NTY3MTEsIDAuNjY4NDU2LCAxLjE2Mjg1LCAxLjQ0NjEzIiwgXAotICAgICAgICAgICIwLjExNjc3MiwgMC4xMzA5MTQsIDAuMjU4MDQxLCAwLjQ2OTgyMywgMC42ODA2NjgsIDEuMTc1MDMsIDEuNDU3NzgiLCBcCi0gICAgICAgICAgIjAuMTI5NTk2LCAwLjE0MzY2LCAwLjI3MDUxNCwgMC40ODI0MDksIDAuNjkyNzQsIDEuMTg3ODEsIDEuNDcwOCIsIFwKLSAgICAgICAgICAiMC4xNDk2NiwgMC4xNjM4MSwgMC4yOTAxMDIsIDAuNTAyMDY5LCAwLjcxMzgxOSwgMS4yMDc3MiwgMS40ODkwOCIsIFwKLSAgICAgICAgICAiMC4xNjY5OTUsIDAuMTgxMzI4LCAwLjMwNzQxNywgMC41MTk0OTIsIDAuNzMxMDM1LCAxLjIyMzg1LCAxLjUwNzQiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTYyMjk4LCAwLjE5MTU2NiwgMC40NTI3MzQsIDAuODg4MTE0LCAxLjMyMTY2LCAyLjMzOTM5LCAyLjkxNzI2IiwgXAotICAgICAgICAgICIwLjE2MjIwNSwgMC4xOTE1NjcsIDAuNDUyMDE5LCAwLjg4ODE3MywgMS4zMjE3NSwgMi4zMzYyNywgMi45MTgzMiIsIFwKLSAgICAgICAgICAiMC4xNjM1MDYsIDAuMTkxODI2LCAwLjQ1MjMxNiwgMC44ODY1NDQsIDEuMzIzNDQsIDIuMzM1NiwgMi45MTY2NSIsIFwKLSAgICAgICAgICAiMC4xNjc5MTksIDAuMTk1MTU2LCAwLjQ1MjY1NywgMC44ODg2MjksIDEuMzIxNywgMi4zMzc1NywgMi45MTYwNyIsIFwKLSAgICAgICAgICAiMC4xNzMyMzgsIDAuMjAwMDA5LCAwLjQ1MzI5LCAwLjg4Njk1LCAxLjMyMTczLCAyLjMzNjA5LCAyLjkxNzI2IiwgXAotICAgICAgICAgICIwLjE4NDIxMSwgMC4yMTAxNTYsIDAuNDU2ODkzLCAwLjg4ODAwMSwgMS4zMjM0NywgMi4zMzcyNywgMi45MTU0IiwgXAotICAgICAgICAgICIwLjE5NTQ3NSwgMC4yMjAyNzIsIDAuNDYyMjM3LCAwLjg4ODA5MiwgMS4zMjM0OCwgMi4zMzYyNiwgMi45MTcyNSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yNzY4MTcsIDAuMzI1NzE1LCAwLjc2MzY2NywgMS40OTQ3NywgMi4yMjM0NSwgMy45MjU5MywgNC44OTg4MyIsIFwKLSAgICAgICAgICAiMC4yODUxMDEsIDAuMzMzNzA1LCAwLjc3MTkxOSwgMS41MDI3LCAyLjIzMjQxLCAzLjkzNDc4LCA0LjkwNzM5IiwgXAotICAgICAgICAgICIwLjI5NTEzOSwgMC4zNDM5MTEsIDAuNzgyNTA3LCAxLjUxMzA4LCAyLjI0MzIsIDMuOTQ1MDcsIDQuOTE3OTMiLCBcCi0gICAgICAgICAgIjAuMzA1NDUyLCAwLjM1NDE1MSwgMC43OTMxNTMsIDEuNTIyNzcsIDIuMjUzNDQsIDMuOTU1MzgsIDQuOTI3ODIiLCBcCi0gICAgICAgICAgIjAuMzE1Njk2LCAwLjM2NDQ5LCAwLjgwMzIxMSwgMS41MzMyNCwgMi4yNjMxNiwgMy45NjU4MiwgNC45Mzg0MSIsIFwKLSAgICAgICAgICAiMC4zMzIzNTYsIDAuMzgwOTYyLCAwLjgxOTUyNCwgMS41NTA5OCwgMi4yODAyNSwgMy45ODI1NywgNC45NTUxNiIsIFwKLSAgICAgICAgICAiMC4zNDY4NzgsIDAuMzk1NzY1LCAwLjgzMzk5NCwgMS41NjQyMywgMi4yOTQyNCwgMy45OTY3LCA0Ljk2OTU3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjUzNTMzNiwgMC42MzExNjksIDEuNDgzOTUsIDIuOTExNjgsIDQuMzI5NSwgNy42NDI3NywgOS41MzM2MiIsIFwKLSAgICAgICAgICAiMC41MzU4ODYsIDAuNjMxMjY1LCAxLjQ4MzczLCAyLjkxMDU3LCA0LjMyODM2LCA3LjY0MzY4LCA5LjUzMjYiLCBcCi0gICAgICAgICAgIjAuNTM1MjI5LCAwLjYzMDIwMywgMS40ODU2OCwgMi45MTAzOSwgNC4zMzkxLCA3LjY0MzA4LCA5LjUzMTk0IiwgXAotICAgICAgICAgICIwLjUzNTM4NywgMC42MzAxNzgsIDEuNDgyNDgsIDIuOTA2OTUsIDQuMzM4OTMsIDcuNjQzMDIsIDkuNTMzNTYiLCBcCi0gICAgICAgICAgIjAuNTM1MTI5LCAwLjYzMDI2NywgMS40ODI5MSwgMi45MDY2OCwgNC4zMjkyMiwgNy42NDEyNCwgOS41MzM0IiwgXAotICAgICAgICAgICIwLjUzODAzNSwgMC42MzE3MzEsIDEuNDg0MTMsIDIuOTEyMDEsIDQuMzI5NTcsIDcuNjQzNzMsIDkuNTMzMDEiLCBcCi0gICAgICAgICAgIjAuNTQwOTY2LCAwLjYzNDA4MywgMS40ODM5MSwgMi45MDY5MiwgNC4zMzc2NywgNy42NDI4LCA5LjUzMzQyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQU4iOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTk5OCwgMC4wMDE5OTgsIDAuMDAxOTk4LCAwLjAwMTk5OCwgMC4wMDE5OTcsIDAuMDAxOTk3LCAwLjAwMTk5NiIsIFwKLSAgICAgICAgICAiMC4wMDE5NzEsIDAuMDAxOTcxLCAwLjAwMTk3MiwgMC4wMDE5NzEsIDAuMDAxOTcxLCAwLjAwMTk3LCAwLjAwMTk3IiwgXAotICAgICAgICAgICIwLjAwMTk3NiwgMC4wMDE5NzcsIDAuMDAxOTc3LCAwLjAwMTk3NywgMC4wMDE5NzYsIDAuMDAxOTc3LCAwLjAwMTk3NiIsIFwKLSAgICAgICAgICAiMC4wMDE5NzksIDAuMDAxOTc5LCAwLjAwMTk3OSwgMC4wMDE5OCwgMC4wMDE5NzksIDAuMDAxOTc4LCAwLjAwMTk3OCIsIFwKLSAgICAgICAgICAiMC4wMDE5OTMsIDAuMDAxOTkzLCAwLjAwMTk5NCwgMC4wMDE5OTQsIDAuMDAxOTk0LCAwLjAwMTk5MywgMC4wMDE5OTIiLCBcCi0gICAgICAgICAgIjAuMDAyMDIsIDAuMDAyMDIxLCAwLjAwMjAyMSwgMC4wMDIwMjEsIDAuMDAyMDIxLCAwLjAwMjAyLCAwLjAwMjAyIiwgXAotICAgICAgICAgICIwLjAwMjA0NSwgMC4wMDIwNDYsIDAuMDAyMDQ2LCAwLjAwMjA0NiwgMC4wMDIwNDUsIDAuMDAyMDQyLCAwLjAwMjA0MiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjI2LCAwLjAwMjI2LCAwLjAwMjI2MSwgMC4wMDIyNjEsIDAuMDAyMjYxLCAwLjAwMjI2MSwgMC4wMDIyNjEiLCBcCi0gICAgICAgICAgIjAuMDAyMjQsIDAuMDAyMjQxLCAwLjAwMjI0MywgMC4wMDIyNDQsIDAuMDAyMjQ0LCAwLjAwMjI0NCwgMC4wMDIyNDQiLCBcCi0gICAgICAgICAgIjAuMDAyMjM3LCAwLjAwMjIzOCwgMC4wMDIyNDEsIDAuMDAyMjQyLCAwLjAwMjI0MywgMC4wMDIyNDMsIDAuMDAyMjQzIiwgXAotICAgICAgICAgICIwLjAwMjI0NSwgMC4wMDIyNDYsIDAuMDAyMjUsIDAuMDAyMjUyLCAwLjAwMjI1MywgMC4wMDIyNTMsIDAuMDAyMjUzIiwgXAotICAgICAgICAgICIwLjAwMjI1NCwgMC4wMDIyNTYsIDAuMDAyMjYxLCAwLjAwMjI2NCwgMC4wMDIyNjUsIDAuMDAyMjY2LCAwLjAwMjI2NiIsIFwKLSAgICAgICAgICAiMC4wMDIyNzgsIDAuMDAyMjc5LCAwLjAwMjI4NywgMC4wMDIyOSwgMC4wMDIyODgsIDAuMDAyMjkxLCAwLjAwMjI5MSIsIFwKLSAgICAgICAgICAiMC4wMDIzMDQsIDAuMDAyMzAyLCAwLjAwMjMwOSwgMC4wMDIzMTEsIDAuMDAyMzE2LCAwLjAwMjMxNiwgMC4wMDIzMTMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxODI4LCAwLjAwMTgyOCwgMC4wMDE4MjgsIDAuMDAxODI4LCAwLjAwMTgyOCwgMC4wMDE4MjgsIDAuMDAxODI3IiwgXAotICAgICAgICAgICIwLjAwMTgsIDAuMDAxOCwgMC4wMDE4MDEsIDAuMDAxODAxLCAwLjAwMTgwMSwgMC4wMDE4LCAwLjAwMTgiLCBcCi0gICAgICAgICAgIjAuMDAxODA0LCAwLjAwMTgwNCwgMC4wMDE4MDUsIDAuMDAxODA2LCAwLjAwMTgwNSwgMC4wMDE4MDUsIDAuMDAxODA1IiwgXAotICAgICAgICAgICIwLjAwMTgwNiwgMC4wMDE4MDYsIDAuMDAxODA4LCAwLjAwMTgwOCwgMC4wMDE4MDgsIDAuMDAxODA4LCAwLjAwMTgwNyIsIFwKLSAgICAgICAgICAiMC4wMDE4MiwgMC4wMDE4MiwgMC4wMDE4MjIsIDAuMDAxODIyLCAwLjAwMTgyMiwgMC4wMDE4MjIsIDAuMDAxODIxIiwgXAotICAgICAgICAgICIwLjAwMTg0MiwgMC4wMDE4NDUsIDAuMDAxODQ2LCAwLjAwMTg0OCwgMC4wMDE4NDcsIDAuMDAxODQ1LCAwLjAwMTg0NyIsIFwKLSAgICAgICAgICAiMC4wMDE4NzIsIDAuMDAxODczLCAwLjAwMTg3NSwgMC4wMDE4NzEsIDAuMDAxODcxLCAwLjAwMTg3MywgMC4wMDE4NzMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDIzMiwgMC4wMDIzMjEsIDAuMDAyMzIyLCAwLjAwMjMyMywgMC4wMDIzMjMsIDAuMDAyMzIzLCAwLjAwMjMyMyIsIFwKLSAgICAgICAgICAiMC4wMDIyOTgsIDAuMDAyMjk5LCAwLjAwMjMwMiwgMC4wMDIzMDMsIDAuMDAyMzA0LCAwLjAwMjMwNCwgMC4wMDIzMDQiLCBcCi0gICAgICAgICAgIjAuMDAyMjk2LCAwLjAwMjI5NywgMC4wMDIzMDYsIDAuMDAyMzA4LCAwLjAwMjMwOSwgMC4wMDIzMDksIDAuMDAyMzA5IiwgXAotICAgICAgICAgICIwLjAwMjMsIDAuMDAyMzAyLCAwLjAwMjMwNywgMC4wMDIzMDgsIDAuMDAyMzEsIDAuMDAyMzExLCAwLjAwMjMxMSIsIFwKLSAgICAgICAgICAiMC4wMDIzMTEsIDAuMDAyMzExLCAwLjAwMjMxOSwgMC4wMDIzMjIsIDAuMDAyMzIxLCAwLjAwMjMyNCwgMC4wMDIzMjQiLCBcCi0gICAgICAgICAgIjAuMDAyMzM0LCAwLjAwMjMzNiwgMC4wMDIzNDEsIDAuMDAyMzQ2LCAwLjAwMjM0NywgMC4wMDIzNDgsIDAuMDAyMzQ5IiwgXAotICAgICAgICAgICIwLjAwMjM1MywgMC4wMDIzNTksIDAuMDAyMzY3LCAwLjAwMjM3MSwgMC4wMDIzNjksIDAuMDAyMzczLCAwLjAwMjM3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxNTM1LCAwLjAwMTUzNSwgMC4wMDE1MzUsIDAuMDAxNTM1LCAwLjAwMTUzNSwgMC4wMDE1MzUsIDAuMDAxNTM1IiwgXAotICAgICAgICAgICIwLjAwMTUzNiwgMC4wMDE1MzYsIDAuMDAxNTM4LCAwLjAwMTUzOSwgMC4wMDE1MzksIDAuMDAxNTM5LCAwLjAwMTUzOSIsIFwKLSAgICAgICAgICAiMC4wMDE1MzUsIDAuMDAxNTM1LCAwLjAwMTUzOCwgMC4wMDE1MzksIDAuMDAxNTM5LCAwLjAwMTUzOSwgMC4wMDE1MzkiLCBcCi0gICAgICAgICAgIjAuMDAxNTM0LCAwLjAwMTUzNSwgMC4wMDE1MzgsIDAuMDAxNTQsIDAuMDAxNTQsIDAuMDAxNTQsIDAuMDAxNTQiLCBcCi0gICAgICAgICAgIjAuMDAxNTM2LCAwLjAwMTUzNiwgMC4wMDE1MzgsIDAuMDAxNTM5LCAwLjAwMTU0LCAwLjAwMTU0LCAwLjAwMTU0IiwgXAotICAgICAgICAgICIwLjAwMTUzOSwgMC4wMDE1MzksIDAuMDAxNTM5LCAwLjAwMTU0LCAwLjAwMTU0LCAwLjAwMTU0MSwgMC4wMDE1NCIsIFwKLSAgICAgICAgICAiMC4wMDE1NDUsIDAuMDAxNTQ0LCAwLjAwMTU0MSwgMC4wMDE1NDEsIDAuMDAxNTQxLCAwLjAwMTU0MSwgMC4wMDE1NDEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDA1NjMsIDAuMDAwNTY0LCAwLjAwMDU2NSwgMC4wMDA1NjUsIDAuMDAwNTY1LCAwLjAwMDU2NSwgMC4wMDA1NjUiLCBcCi0gICAgICAgICAgIjAuMDAwNTU1LCAwLjAwMDU1NywgMC4wMDA1NjEsIDAuMDAwNTYzLCAwLjAwMDU2NCwgMC4wMDA1NjQsIDAuMDAwNTY1IiwgXAotICAgICAgICAgICIwLjAwMDU0NywgMC4wMDA1NDksIDAuMDAwNTU4LCAwLjAwMDU2MSwgMC4wMDA1NjMsIDAuMDAwNTY0LCAwLjAwMDU2NCIsIFwKLSAgICAgICAgICAiMC4wMDA1NDEsIDAuMDAwNTQzLCAwLjAwMDU1NSwgMC4wMDA1NTksIDAuMDAwNTYxLCAwLjAwMDU2MywgMC4wMDA1NjMiLCBcCi0gICAgICAgICAgIjAuMDAwNTM2LCAwLjAwMDUzOSwgMC4wMDA1NTIsIDAuMDAwNTU4LCAwLjAwMDU2LCAwLjAwMDU2MiwgMC4wMDA1NjMiLCBcCi0gICAgICAgICAgIjAuMDAwNTMsIDAuMDAwNTMzLCAwLjAwMDU0OCwgMC4wMDA1NTUsIDAuMDAwNTU4LCAwLjAwMDU2MSwgMC4wMDA1NjIiLCBcCi0gICAgICAgICAgIjAuMDAwNTI4LCAwLjAwMDUzMSwgMC4wMDA1NDUsIDAuMDAwNTUzLCAwLjAwMDU1NywgMC4wMDA1NiwgMC4wMDA1NjEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJEIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDEzMDMsIDAuMDAxMzAzLCAwLjAwMTMwNCwgMC4wMDEzMDQsIDAuMDAxMzA0LCAwLjAwMTMwNCwgMC4wMDEzMDQiLCBcCi0gICAgICAgICAgIjAuMDAxMzA2LCAwLjAwMTMwNywgMC4wMDEzMSwgMC4wMDEzMTEsIDAuMDAxMzExLCAwLjAwMTMxMiwgMC4wMDEzMTIiLCBcCi0gICAgICAgICAgIjAuMDAxMzA0LCAwLjAwMTMwNSwgMC4wMDEzMSwgMC4wMDEzMTMsIDAuMDAxMzEzLCAwLjAwMTMxNCwgMC4wMDEzMTQiLCBcCi0gICAgICAgICAgIjAuMDAxMzAyLCAwLjAwMTMwNCwgMC4wMDEzMSwgMC4wMDEzMTIsIDAuMDAxMzEzLCAwLjAwMTMxNSwgMC4wMDEzMTUiLCBcCi0gICAgICAgICAgIjAuMDAxMzAyLCAwLjAwMTMwMywgMC4wMDEzMDksIDAuMDAxMzExLCAwLjAwMTMxNCwgMC4wMDEzMTQsIDAuMDAxMzE0IiwgXAotICAgICAgICAgICIwLjAwMTMwMywgMC4wMDEzMDQsIDAuMDAxMzA5LCAwLjAwMTMxMSwgMC4wMDEzMTIsIDAuMDAxMzE0LCAwLjAwMTMxNCIsIFwKLSAgICAgICAgICAiMC4wMDEzMDYsIDAuMDAxMzA3LCAwLjAwMTMxLCAwLjAwMTMxMiwgMC4wMDEzMTMsIDAuMDAxMzE0LCAwLjAwMTMxNSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDU2MywgMC4wMDA1NjMsIDAuMDAwNTY0LCAwLjAwMDU2NSwgMC4wMDA1NjUsIDAuMDAwNTY1LCAwLjAwMDU2NSIsIFwKLSAgICAgICAgICAiMC4wMDA1NTQsIDAuMDAwNTU2LCAwLjAwMDU2MSwgMC4wMDA1NjMsIDAuMDAwNTY0LCAwLjAwMDU2NCwgMC4wMDA1NjUiLCBcCi0gICAgICAgICAgIjAuMDAwNTQ2LCAwLjAwMDU0OCwgMC4wMDA1NTcsIDAuMDAwNTYxLCAwLjAwMDU2MiwgMC4wMDA1NjQsIDAuMDAwNTY0IiwgXAotICAgICAgICAgICIwLjAwMDU0MSwgMC4wMDA1NDMsIDAuMDAwNTU0LCAwLjAwMDU1OSwgMC4wMDA1NjEsIDAuMDAwNTYzLCAwLjAwMDU2MyIsIFwKLSAgICAgICAgICAiMC4wMDA1MzgsIDAuMDAwNTQxLCAwLjAwMDU1MiwgMC4wMDA1NTgsIDAuMDAwNTYsIDAuMDAwNTYyLCAwLjAwMDU2MyIsIFwKLSAgICAgICAgICAiMC4wMDA1MzgsIDAuMDAwNTQsIDAuMDAwNTUsIDAuMDAwNTU2LCAwLjAwMDU1OSwgMC4wMDA1NjIsIDAuMDAwNTYyIiwgXAotICAgICAgICAgICIwLjAwMDU0MSwgMC4wMDA1NDIsIDAuMDAwNTUsIDAuMDAwNTU2LCAwLjAwMDU1OCwgMC4wMDA1NjEsIDAuMDAwNTYyIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogTkFORDRYMiAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChOQU5ENFgyKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMjk0ODQxOwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDIwMjk5ODsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDIwMjk5ODsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDIwMjQ1NDsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA4MTgsIDAuMDAwODE3LCAwLjAwMDgxNywgMC4wMDA4MTcsIDAuMDAwODE3LCAwLjAwMDgxNywgMC4wMDA4MTciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA4MiwgMC4wMDA4MiwgMC4wMDA4MiwgMC4wMDA4MiwgMC4wMDA4MiwgMC4wMDA4MiwgMC4wMDA4MiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxODI3NDg7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxODI3NDg7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxODIzOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDgxOCwgMC4wMDA4MTgsIDAuMDAwODE3LCAwLjAwMDgxNywgMC4wMDA4MTcsIDAuMDAwODE3LCAwLjAwMDgxNyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDgyLCAwLjAwMDgyLCAwLjAwMDgyLCAwLjAwMDgyMSwgMC4wMDA4MjEsIDAuMDAwODIsIDAuMDAwODIiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEMpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTcwMTc5OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTcwMTc5OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTY5NzkyOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDgxOCwgMC4wMDA4MTcsIDAuMDAwODE4LCAwLjAwMDgxNywgMC4wMDA4MTcsIDAuMDAwODE3LCAwLjAwMDgxNyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDgxOSwgMC4wMDA4MjEsIDAuMDAwODIsIDAuMDAwODIxLCAwLjAwMDgyMSwgMC4wMDA4MjEsIDAuMDAwODIxIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihEKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE1NzgzMzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE1NzcwODsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE1NzgzMzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA1MjYsIDAuMDAwNTI1LCAwLjAwMDUyNSwgMC4wMDA1MjUsIDAuMDAwNTI1LCAwLjAwMDUyNSwgMC4wMDA1MjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA5MjgsIDAuMDAwOTI5LCAwLjAwMDkyOSwgMC4wMDA5MywgMC4wMDA5MjksIDAuMDAwOTI5LCAwLjAwMDkyOSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjE1Mjc5NTsKLSAgICBmdW5jdGlvbiA6ICIoISgoKEEgQikgQykgRCkpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzQ2NDUsIDAuMTM3MjU2LCAwLjIxODgzMSwgMC4zMjA2NDMsIDAuNDIyNDE5LCAwLjUyNDMyNSwgMC42MjYxMjciLCBcCi0gICAgICAgICAgIjAuMDQ0NDg5LCAwLjE0NzExOCwgMC4yMjg2NDQsIDAuMzMwNTE3LCAwLjQzMjI3MiwgMC41MzQyMjIsIDAuNjM1OTg0IiwgXAotICAgICAgICAgICIwLjA1NzM0MywgMC4xNTk1OTQsIDAuMjQxMTcxLCAwLjM0MzAzOCwgMC40NDQ4NjYsIDAuNTQ2NjIxLCAwLjY0ODQ5NiIsIFwKLSAgICAgICAgICAiMC4wNjk3NjcsIDAuMTcxOTAzLCAwLjI1MzU0OCwgMC4zNTUzMTQsIDAuNDU3MTI1LCAwLjU1ODg0MywgMC42NjA0OTQiLCBcCi0gICAgICAgICAgIjAuMDgwNzgyLCAwLjE4NDQwNywgMC4yNjYxNjcsIDAuMzY3ODQ3LCAwLjQ2OTUwMSwgMC41NzEzMDIsIDAuNjczMDUzIiwgXAotICAgICAgICAgICIwLjA5NTg1NSwgMC4yMDUxMDEsIDAuMjg2LCAwLjM4ODExOCwgMC40ODk3NDEsIDAuNTkxNTA5LCAwLjY5MzE3OSIsIFwKLSAgICAgICAgICAiMC4xMDcxOTcsIDAuMjIyOTA5LCAwLjMwMzU1MiwgMC40MDUzMTcsIDAuNTA3NSwgMC42MDkwNTIsIDAuNzEwNjA0Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2MTkyNCwgMC4yNzE4OTUsIDAuNDQwMjM0LCAwLjY0OTg2NCwgMC44NjAyOSwgMS4wNzAzNywgMS4yODAyNyIsIFwKLSAgICAgICAgICAiMC4wNjI5MDgsIDAuMjcxODk5LCAwLjQzOTkyMiwgMC42NTAzMzgsIDAuODU5ODQ3LCAxLjA3MDMxLCAxLjI4MDEiLCBcCi0gICAgICAgICAgIjAuMDY4MzAzLCAwLjI3MTk1OCwgMC40NDAyMjgsIDAuNjQ5OTYzLCAwLjg1OTk2NiwgMS4wNzA0OSwgMS4yODAzMiIsIFwKLSAgICAgICAgICAiMC4wNzYxMDYsIDAuMjczMTI2LCAwLjQ0MDA1MSwgMC42NDk5MjUsIDAuODYwMzgzLCAxLjA2OTksIDEuMjgwMzQiLCBcCi0gICAgICAgICAgIjAuMDg0OTA0LCAwLjI3NjM0MywgMC40NDA2NjEsIDAuNjUwMjA3LCAwLjg1OTg5LCAxLjA2OTg3LCAxLjI4MDQ1IiwgXAotICAgICAgICAgICIwLjA5OTgwNCwgMC4yODM1OCwgMC40NDQxNzUsIDAuNjUwMjg5LCAwLjg1OTgzMywgMS4wNzAwMywgMS4yODAyOSIsIFwKLSAgICAgICAgICAiMC4xMTI2MzUsIDAuMjkxOTMxLCAwLjQ0OTU3MSwgMC42NTI2NTMsIDAuODYwMzM2LCAxLjA2OTg3LCAxLjI3OTg2Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExNjM4NSwgMC40ODExMTUsIDAuNzcyNjI1LCAxLjEzNzQyLCAxLjUwMTQ0LCAxLjg2NzA4LCAyLjIzMDk1IiwgXAotICAgICAgICAgICIwLjEyNDM2MSwgMC40ODk1NjUsIDAuNzgxMzg1LCAxLjE0NTY2LCAxLjUxMDMsIDEuODc0MTIsIDIuMjQwMzYiLCBcCi0gICAgICAgICAgIjAuMTMyODI1LCAwLjQ5ODA5LCAwLjc5MDAyNSwgMS4xNTQ2NiwgMS41MTkxNCwgMS44ODQyMSwgMi4yNDgwNiIsIFwKLSAgICAgICAgICAiMC4xNDA3NDgsIDAuNTA2MzU4LCAwLjc5ODI2OCwgMS4xNjMyOSwgMS41MjcxNCwgMS44OTI5LCAyLjI1NjQ3IiwgXAotICAgICAgICAgICIwLjE0ODQ3OCwgMC41MTQwMTksIDAuODA1Nzg1LCAxLjE3MDk2LCAxLjUzNTUsIDEuODk5MTMsIDIuMjY1MTYiLCBcCi0gICAgICAgICAgIjAuMTYwNzU4LCAwLjUyNjIyOCwgMC44MTg0ODksIDEuMTgyNzEsIDEuNTQ3NDMsIDEuOTEyMDUsIDIuMjc2OTMiLCBcCi0gICAgICAgICAgIjAuMTcxMzIzLCAwLjUzNjkyMSwgMC44Mjg3ODQsIDEuMTkzNzYsIDEuNTU4MjgsIDEuOTIyODcsIDIuMjg3NTgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTk1NDIxLCAwLjkwNTY0NSwgMS40NzM1MiwgMi4xODQ1NiwgMi44OTA3NCwgMy42MDkyOCwgNC4zMTkzNiIsIFwKLSAgICAgICAgICAiMC4xOTUxNzksIDAuOTA1NjU5LCAxLjQ3NDIxLCAyLjE4MTM2LCAyLjg5NDMzLCAzLjYwNjY5LCA0LjMwNTU4IiwgXAotICAgICAgICAgICIwLjE5NTQyNiwgMC45MDQ0ODgsIDEuNDczNjksIDIuMTg0MDgsIDIuODk0MjQsIDMuNjA4ODUsIDQuMzE4NzUiLCBcCi0gICAgICAgICAgIjAuMTk1NjUsIDAuOTAzOTUyLCAxLjQ3NDE2LCAyLjE4NTMxLCAyLjg5MzY0LCAzLjYwOTUzLCA0LjMxOTE0IiwgXAotICAgICAgICAgICIwLjE5NzQyNiwgMC45MDQzNzQsIDEuNDcyMDUsIDIuMTg0OCwgMi44OTUxMSwgMy42MDY4MywgNC4zMDU4MiIsIFwKLSAgICAgICAgICAiMC4yMDA0OSwgMC45MDYwNTgsIDEuNDc0MjEsIDIuMTgxNDksIDIuODg4NzksIDMuNTk5NjksIDQuMzE5MzQiLCBcCi0gICAgICAgICAgIjAuMjA0MjY3LCAwLjkwNDY3OSwgMS40NzE4MywgMi4xODQxMSwgMi44OTQwNCwgMy42MDAxMSwgNC4zMTkyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzMzk0MywgMC4xMzY4OSwgMC4yMTg4ODEsIDAuMzIxNDk4LCAwLjQyMzk3OSwgMC41MjY2MDMsIDAuNjI5MDYyIiwgXAotICAgICAgICAgICIwLjA0Mzc4MywgMC4xNDY3MzIsIDAuMjI4Nzc3LCAwLjMzMTI2OSwgMC40MzM5MDYsIDAuNTM2NTkxLCAwLjYzODgzMyIsIFwKLSAgICAgICAgICAiMC4wNTY2MTcsIDAuMTU5NDg0LCAwLjI0MTU2MywgMC4zNDQwOCwgMC40NDY1MjgsIDAuNTQ5MDMzLCAwLjY1MTcwNSIsIFwKLSAgICAgICAgICAiMC4wNjg3MzUsIDAuMTcxNDc5LCAwLjI1MzU3NCwgMC4zNTYwMjgsIDAuNDU4NTc5LCAwLjU2MDk1MSwgMC42NjMzMDgiLCBcCi0gICAgICAgICAgIjAuMDc5NDkzLCAwLjE4Mzg5OSwgMC4yNjYwODgsIDAuMzY4MzgzLCAwLjQ3MDg2OCwgMC41NzMzMzUsIDAuNjc1ODk1IiwgXAotICAgICAgICAgICIwLjA5NDA4MiwgMC4yMDM5MjcsIDAuMjg1ODMyLCAwLjM4ODU0NywgMC40OTA5MywgMC41OTMzODIsIDAuNjk1Njg4IiwgXAotICAgICAgICAgICIwLjEwNTkxLCAwLjIyMjE3LCAwLjMwMzM0OCwgMC40MDU4MzIsIDAuNTA4NjQzLCAwLjYxMDc2OSwgMC43MTMwNzEiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDYwNjI0LCAwLjI3MjM4NywgMC40NDE0MjIsIDAuNjUzMTg3LCAwLjg2NDU0OCwgMS4wNzY0NiwgMS4yODc5NCIsIFwKLSAgICAgICAgICAiMC4wNjE2ODIsIDAuMjcyMTQ2LCAwLjQ0MTM1NywgMC42NTI5MDMsIDAuODY0NzA4LCAxLjA3NjQ1LCAxLjI4NzY2IiwgXAotICAgICAgICAgICIwLjA2NzIyOSwgMC4yNzIxNDMsIDAuNDQxNTkxLCAwLjY1Mjk1MywgMC44NjQ0MjgsIDEuMDc2NSwgMS4yODc5MyIsIFwKLSAgICAgICAgICAiMC4wNzUzMjMsIDAuMjczNDE0LCAwLjQ0MTQwNSwgMC42NTI5MjEsIDAuODY0ODE2LCAxLjA3NTk3LCAxLjI4ODAzIiwgXAotICAgICAgICAgICIwLjA4NDUyNCwgMC4yNzY3MjgsIDAuNDQyMDU3LCAwLjY1MzEwNCwgMC44NjQ3ODYsIDEuMDc1OTUsIDEuMjg3NTkiLCBcCi0gICAgICAgICAgIjAuMDk5ODIxLCAwLjI4NDUzMSwgMC40NDU2NzgsIDAuNjUzMzQ3LCAwLjg2NDQ4MSwgMS4wNzYxLCAxLjI4Nzk5IiwgXAotICAgICAgICAgICIwLjExMDg5MSwgMC4yOTI2MzIsIDAuNDUxMTcxLCAwLjY1NTg2LCAwLjg2NDc4NiwgMS4wNzU5MywgMS4yODc2MSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTQxOTEsIDAuNDc4ODc1LCAwLjc3MDc1NSwgMS4xMzQ5NCwgMS41MDAyNCwgMS44NjQwNCwgMi4yMjgzMiIsIFwKLSAgICAgICAgICAiMC4xMjIyMSwgMC40ODc0NjIsIDAuNzc5NDI5LCAxLjE0MzI0LCAxLjUwODY0LCAxLjg3MjUyLCAyLjIzNzIxIiwgXAotICAgICAgICAgICIwLjEzMTIzNywgMC40OTY1NTIsIDAuNzg4NTYzLCAxLjE1Mjk4LCAxLjUxODQ4LCAxLjg4MjI2LCAyLjI0NjQzIiwgXAotICAgICAgICAgICIwLjE0MDA4NSwgMC41MDU3MTQsIDAuNzk3MjkzLCAxLjE2MjM3LCAxLjUyNjMxLCAxLjg5MTUzLCAyLjI1NjE0IiwgXAotICAgICAgICAgICIwLjE0OTAwNCwgMC41MTQ2MDMsIDAuODA2MzMzLCAxLjE3MTIsIDEuNTM1ODYsIDEuOTAwMjMsIDIuMjY1MDIiLCBcCi0gICAgICAgICAgIjAuMTYzMzMzLCAwLjUyOTAwOSwgMC44MjA5NjIsIDEuMTg2MTIsIDEuNTUwNTcsIDEuOTE1MDgsIDIuMjc5NCIsIFwKLSAgICAgICAgICAiMC4xNzU3OTcsIDAuNTQxNTk5LCAwLjgzMzQxOCwgMS4xOTgzNywgMS41NjI1LCAxLjkyNzk1LCAyLjI5MjY5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE5NTE5OSwgMC45MDU0NTEsIDEuNDcwNDgsIDIuMTgzNjcsIDIuODk1OTYsIDMuNjA4MDEsIDQuMzE4NTIiLCBcCi0gICAgICAgICAgIjAuMTk1MDA4LCAwLjkwNTc4OCwgMS40NzQ2MywgMi4xODU0LCAyLjg5NTUzLCAzLjYwNzc3LCA0LjMwNTgxIiwgXAotICAgICAgICAgICIwLjE5NTA1MywgMC45MDQ0NjQsIDEuNDczOTMsIDIuMTgzNzUsIDIuODg4MTIsIDMuNjA4MjcsIDQuMzE4NiIsIFwKLSAgICAgICAgICAiMC4xOTY2MSwgMC45MDM5MjIsIDEuNDcxODMsIDIuMTg0NjUsIDIuODkwOTcsIDMuNjA4NTQsIDQuMzE5NTIiLCBcCi0gICAgICAgICAgIjAuMTk4MzQ2LCAwLjkwNTM3MywgMS40NzIwNywgMi4xODQwNywgMi44ODkyNCwgMy42MDc5MywgNC4zMTkyNCIsIFwKLSAgICAgICAgICAiMC4yMDMwMDEsIDAuOTA0NDU3LCAxLjQ3MjA1LCAyLjE3ODg5LCAyLjg4OTE0LCAzLjYwODAzLCA0LjMwOTE3IiwgXAotICAgICAgICAgICIwLjIwODQ2NSwgMC45MDQ3MjIsIDEuNDcxODQsIDIuMTg0MDYsIDIuODk2MTksIDMuNTk3ODMsIDQuMzE5NjciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDMyNTI3LCAwLjEzNTE3OSwgMC4yMTczMjIsIDAuMzE5NzI5LCAwLjQyMjE2OCwgMC41MjQ3NjUsIDAuNjI3MjU4IiwgXAotICAgICAgICAgICIwLjA0MjQ4LCAwLjE0NTE1OSwgMC4yMjcxMjQsIDAuMzI5NjI1LCAwLjQzMjM0OCwgMC41MzQ2ODksIDAuNjM3MTMyIiwgXAotICAgICAgICAgICIwLjA1NTI2MiwgMC4xNTc5MjEsIDAuMjM5OTg1LCAwLjM0MjQ3MSwgMC40NDQ4MzIsIDAuNTQ3NjEyLCAwLjY0OTcxNCIsIFwKLSAgICAgICAgICAiMC4wNjcyNiwgMC4xNjk4OTUsIDAuMjUyMDA1LCAwLjM1NDQwNywgMC40NTY4MzcsIDAuNTU5MjkyLCAwLjY2MTU5MSIsIFwKLSAgICAgICAgICAiMC4wNzc2ODksIDAuMTgyMzEsIDAuMjY0NDUsIDAuMzY2OTIxLCAwLjQ2OTE2NiwgMC41NzE2NzMsIDAuNjc0MTc3IiwgXAotICAgICAgICAgICIwLjA5MTg2MiwgMC4yMDIzNDUsIDAuMjg0MjA5LCAwLjM4Njg4NiwgMC40ODkzLCAwLjU5MTY3MiwgMC42OTQwODYiLCBcCi0gICAgICAgICAgIjAuMTAzMzY1LCAwLjIyMDY0MSwgMC4zMDE3MTcsIDAuNDA0MTMyLCAwLjUwNjgzOCwgMC42MDkwNywgMC43MTEzOTQiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU4NzQzLCAwLjI3MDI1NSwgMC40Mzk3MjUsIDAuNjUxMjg2LCAwLjg2MzEwNywgMS4wNzQ4OCwgMS4yODY0OCIsIFwKLSAgICAgICAgICAiMC4wNTk5NjIsIDAuMjcwMjcxLCAwLjQzOTUxMiwgMC42NTExMjQsIDAuODYzMDU0LCAxLjA3NDgzLCAxLjI4NjEyIiwgXAotICAgICAgICAgICIwLjA2NTY4MywgMC4yNzAyNDgsIDAuNDM5NTc3LCAwLjY1MTI2MiwgMC44NjI5NTYsIDEuMDc0OTgsIDEuMjg1NDciLCBcCi0gICAgICAgICAgIjAuMDc0MDEsIDAuMjcxNTg4LCAwLjQzOTY1LCAwLjY1MTE0OCwgMC44NjMwMzcsIDEuMDc0MzcsIDEuMjg2NDkiLCBcCi0gICAgICAgICAgIjAuMDgzMjg4LCAwLjI3NDk4MSwgMC40NDAwNTQsIDAuNjUxMjgzLCAwLjg2Mjg4MSwgMS4wNzQ0NCwgMS4yODYzMiIsIFwKLSAgICAgICAgICAiMC4wOTg4MDcsIDAuMjgyOTQ2LCAwLjQ0NDAwOCwgMC42NTE1MzQsIDAuODYyOTY3LCAxLjA3NDIxLCAxLjI4NjM2IiwgXAotICAgICAgICAgICIwLjEwOTc3NSwgMC4yOTA5NjQsIDAuNDQ5NDIxLCAwLjY1NDE2NywgMC44NjMxNDgsIDEuMDc0NTgsIDEuMjg2MTciKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTA5NTE1LCAwLjQ3NDMwMiwgMC43NjYxOTQsIDEuMTMwMjQsIDEuNDk1NDYsIDEuODU5MjgsIDIuMjIzMDIiLCBcCi0gICAgICAgICAgIjAuMTE3NTAyLCAwLjQ4MjU1NSwgMC43NzQ0NjEsIDEuMTM4NzgsIDEuNTAzNTMsIDEuODY3NTYsIDIuMjMyNzYiLCBcCi0gICAgICAgICAgIjAuMTI3NDM2LCAwLjQ5MzExNSwgMC43ODQ5NzQsIDEuMTQ5MzYsIDEuNTEzODcsIDEuODc4MjUsIDIuMjQzODUiLCBcCi0gICAgICAgICAgIjAuMTM3NTQyLCAwLjUwMzE5NCwgMC43OTQ5NDcsIDEuMTU5NTIsIDEuNTI0MzIsIDEuODg5NDcsIDIuMjU0MzIiLCBcCi0gICAgICAgICAgIjAuMTQ3NzEyLCAwLjUxMzQzMiwgMC44MDUzOTcsIDEuMTcwMTUsIDEuNTM0MzMsIDEuODk5NjYsIDIuMjY0MTEiLCBcCi0gICAgICAgICAgIjAuMTY0MjkyLCAwLjUyOTk0NiwgMC44MjIwNTYsIDEuMTg2NzMsIDEuNTUwOTYsIDEuOTE2NDgsIDIuMjc5OTYiLCBcCi0gICAgICAgICAgIjAuMTc5MDEzLCAwLjU0NDAzLCAwLjgzNjM4MiwgMS4yMDE2MywgMS41NjYxNywgMS45MzAwOSwgMi4yOTU5NyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xOTQ5MzksIDAuOTA1ODMxLCAxLjQ3NDY3LCAyLjE4MzczLCAyLjg5NTc5LCAzLjYwNzksIDQuMzE3MzciLCBcCi0gICAgICAgICAgIjAuMTk1NDMzLCAwLjkwNDM5NywgMS40NzQwOSwgMi4xODAyMSwgMi44ODc1OCwgMy41OTk2MSwgNC4zMTk0NiIsIFwKLSAgICAgICAgICAiMC4xOTU1LCAwLjkwNjA0NiwgMS40NzQ1MiwgMi4xODAyLCAyLjg5NDI4LCAzLjYwNzgxLCA0LjMwNTciLCBcCi0gICAgICAgICAgIjAuMTk3MTgyLCAwLjkwNTI4NCwgMS40NzE4OSwgMi4xODEyOCwgMi44OTQ0MiwgMy41OTY1MiwgNC4zMDU4NiIsIFwKLSAgICAgICAgICAiMC4xOTk3MDgsIDAuOTA0NjEzLCAxLjQ3MTc5LCAyLjE3OTY0LCAyLjg5MTI0LCAzLjYwODc1LCA0LjMxOTMxIiwgXAotICAgICAgICAgICIwLjIwNzA0NSwgMC45MDQzMzUsIDEuNDc1MDksIDIuMTgxMTksIDIuODk2MjksIDMuNjA4NzEsIDQuMzEwMjkiLCBcCi0gICAgICAgICAgIjAuMjE0OTMxLCAwLjkwNTYyMSwgMS40NzQ2MiwgMi4xODQ4MywgMi44ODkwOSwgMy42MDcxNSwgNC4zMjAwOCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJEIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzE2MTMsIDAuMTM2MzAyLCAwLjIxOTk3MSwgMC4zMjQ4NjcsIDAuNDI5MjM3LCAwLjUzNDAyMywgMC42Mzg0ODkiLCBcCi0gICAgICAgICAgIjAuMDQxNjUzLCAwLjE0NjI4MiwgMC4yMjk5ODcsIDAuMzM0NTg0LCAwLjQzOTU2OCwgMC41NDM4NDQsIDAuNjQ5MDEyIiwgXAotICAgICAgICAgICIwLjA1NDE3NCwgMC4xNTg3LCAwLjI0MTgxNSwgMC4zNDYzODMsIDAuNDUwNzg2LCAwLjU1NTM1NSwgMC42NjAyMDMiLCBcCi0gICAgICAgICAgIjAuMDY2MzIsIDAuMTcxMTg5LCAwLjI1NDk0NSwgMC4zNTk1MzUsIDAuNDY0MjEyLCAwLjU2ODc3NiwgMC42NzM0MyIsIFwKLSAgICAgICAgICAiMC4wNzYzMzYsIDAuMTgzNDgsIDAuMjY3NDE2LCAwLjM3MTgyNywgMC40NzY0MSwgMC41ODEzNTksIDAuNjg2MDc0IiwgXAotICAgICAgICAgICIwLjA5MDM5NCwgMC4yMDQxMDksIDAuMjg3MTkyLCAwLjM5MjEyNCwgMC40OTY1MzMsIDAuNjAwOTkzLCAwLjcwNTc1MiIsIFwKLSAgICAgICAgICAiMC4xMDA3NjgsIDAuMjIxODgxLCAwLjMwNDc1NCwgMC40MDkzOTUsIDAuNTE0MjMzLCAwLjYxODc1MSwgMC43MjMxMTIiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU4MDgzLCAwLjI3NDI1OSwgMC40NDc5MSwgMC42NjM3MDgsIDAuODgwOTE0LCAxLjA5NTkzLCAxLjMxMzk1IiwgXAotICAgICAgICAgICIwLjA1OTM3MiwgMC4yNzQzOTQsIDAuNDQ3MTE0LCAwLjY2NDM4NywgMC44Nzk1MTUsIDEuMDk3NjUsIDEuMzEyNiIsIFwKLSAgICAgICAgICAiMC4wNjU0MjgsIDAuMjc0MTIxLCAwLjQ0NzE1OCwgMC42NjM0NTcsIDAuODc5NDQyLCAxLjA5NzQxLCAxLjMxMjE3IiwgXAotICAgICAgICAgICIwLjA3MzM3OSwgMC4yNzU5NjUsIDAuNDQ3MjQzLCAwLjY2MzMyOSwgMC44ODA4MzUsIDEuMDk3NzUsIDEuMzExNjEiLCBcCi0gICAgICAgICAgIjAuMDgzNDU3LCAwLjI3OTE4NCwgMC40NDc0ODYsIDAuNjYzMzI1LCAwLjg3OTUwNCwgMS4wOTU4NCwgMS4zMTE5NyIsIFwKLSAgICAgICAgICAiMC4wOTg5MjIsIDAuMjg2MzQ5LCAwLjQ1MjEyLCAwLjY2MzUxOCwgMC44ODA3MiwgMS4wOTc1NCwgMS4zMTMwNSIsIFwKLSAgICAgICAgICAiMC4xMTE1MTMsIDAuMjk0MzY3LCAwLjQ1NjYzNywgMC42NjYwNDIsIDAuODgwMjQ3LCAxLjA5NjY5LCAxLjMxMTg0Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwMjI3MSwgMC40NjcwMzYsIDAuNzU4NzA4LCAxLjEyMzA1LCAxLjQ4ODQzLCAxLjg1MjI0LCAyLjIxNjQ0IiwgXAotICAgICAgICAgICIwLjExMDA1NCwgMC40NzUxMjUsIDAuNzY2OCwgMS4xMzEyNSwgMS40OTU1OSwgMS44NTk5NywgMi4yMjQ0MyIsIFwKLSAgICAgICAgICAiMC4xMjAwNjIsIDAuNDg1NDQ1LCAwLjc3NzE3MywgMS4xNDE1NCwgMS41MDY1MiwgMS44NzA0NiwgMi4yMzQ5OSIsIFwKLSAgICAgICAgICAiMC4xMzAyNTUsIDAuNDk1NjY4LCAwLjc4Nzg5MSwgMS4xNTIzOCwgMS41MTYyOSwgMS44ODEzOSwgMi4yNDUwMSIsIFwKLSAgICAgICAgICAiMC4xNDEwNzEsIDAuNTA2NDU2LCAwLjc5ODIwOCwgMS4xNjMxNSwgMS41Mjc0NSwgMS44OTIwNiwgMi4yNTY4NCIsIFwKLSAgICAgICAgICAiMC4xNTc5NjUsIDAuNTIyNTc5LCAwLjgxNDUwNSwgMS4xNzkyMiwgMS41NDQ1NSwgMS45MDg4OCwgMi4yNzM4MyIsIFwKLSAgICAgICAgICAiMC4xNzMzMDYsIDAuNTM3NTg0LCAwLjgyOTMyOSwgMS4xOTQzLCAxLjU1ODI5LCAxLjkyNDQ0LCAyLjI4Nzg3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE5NTMyMiwgMC45MDM5NywgMS40NzEwNiwgMi4xODM3OCwgMi44OTYyLCAzLjYwODE4LCA0LjMxODU3IiwgXAotICAgICAgICAgICIwLjE5NDc5LCAwLjkwNjA0NCwgMS40NzA1NiwgMi4xODExNiwgMi44OTYwNCwgMy41OTY3MSwgNC4zMTc2NiIsIFwKLSAgICAgICAgICAiMC4xOTUzMzEsIDAuOTA0MjE4LCAxLjQ3MjA4LCAyLjE4MTA2LCAyLjg4ODM5LCAzLjYwNjg5LCA0LjMwOTIyIiwgXAotICAgICAgICAgICIwLjE5ODIwNiwgMC45MDU0ODgsIDEuNDcwNTksIDIuMTg0NzgsIDIuODkwNTcsIDMuNjA4MzYsIDQuMzE3NjUiLCBcCi0gICAgICAgICAgIjAuMjAyMjIxLCAwLjkwNTM1NCwgMS40NzMzNiwgMi4xODQzNywgMi44OTA0MywgMy42MDgsIDQuMzE5MjciLCBcCi0gICAgICAgICAgIjAuMjExODYsIDAuOTA0MzUxLCAxLjQ3MzM3LCAyLjE4MzczLCAyLjg5NTksIDMuNjA4NjYsIDQuMzA1ODYiLCBcCi0gICAgICAgICAgIjAuMjIxODcxLCAwLjkwNDQ5MiwgMS40NzIwMiwgMi4xODQxNiwgMi44OTExNywgMy41OTY4OSwgNC4zMTg5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2MjE3LCAwLjAwNjIxOCwgMC4wMDYyMTcsIDAuMDA2MjE2LCAwLjAwNjIxNiwgMC4wMDYyMTcsIDAuMDA2MjE2IiwgXAotICAgICAgICAgICIwLjAwNjE3NSwgMC4wMDYxODUsIDAuMDA2MTg2LCAwLjAwNjE4NiwgMC4wMDYxODMsIDAuMDA2MTg2LCAwLjAwNjE4NiIsIFwKLSAgICAgICAgICAiMC4wMDYxNjMsIDAuMDA2MTc2LCAwLjAwNjE3OCwgMC4wMDYxOCwgMC4wMDYxNzksIDAuMDA2MTgsIDAuMDA2MTgiLCBcCi0gICAgICAgICAgIjAuMDA2MTcyLCAwLjAwNjE3NywgMC4wMDYxNzgsIDAuMDA2MTc4LCAwLjAwNjE3OCwgMC4wMDYxNzksIDAuMDA2MTc4IiwgXAotICAgICAgICAgICIwLjAwNjE4LCAwLjAwNjE3NywgMC4wMDYxODEsIDAuMDA2MTgsIDAuMDA2MTc5LCAwLjAwNjE3NywgMC4wMDYxNzciLCBcCi0gICAgICAgICAgIjAuMDA2MTk5LCAwLjAwNjE4NSwgMC4wMDYxOCwgMC4wMDYxODEsIDAuMDA2MTc5LCAwLjAwNjE3OCwgMC4wMDYxNzgiLCBcCi0gICAgICAgICAgIjAuMDA2MjM2LCAwLjAwNjE5NiwgMC4wMDYxODYsIDAuMDA2MTgzLCAwLjAwNjE4MywgMC4wMDYxODIsIDAuMDA2MTc5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxNzY3LCAwLjAwMTc4MywgMC4wMDE3ODUsIDAuMDAxNzg2LCAwLjAwMTc4NiwgMC4wMDE3ODYsIDAuMDAxNzg2IiwgXAotICAgICAgICAgICIwLjAwMTcwNCwgMC4wMDE3NjUsIDAuMDAxNzczLCAwLjAwMTc3OCwgMC4wMDE3OCwgMC4wMDE3ODIsIDAuMDAxNzgzIiwgXAotICAgICAgICAgICIwLjAwMTY1NiwgMC4wMDE3NDUsIDAuMDAxNzYsIDAuMDAxNzY5LCAwLjAwMTc3MywgMC4wMDE3NzYsIDAuMDAxNzc4IiwgXAotICAgICAgICAgICIwLjAwMTYyNywgMC4wMDE3MjgsIDAuMDAxNzQ4LCAwLjAwMTc2LCAwLjAwMTc2NiwgMC4wMDE3NywgMC4wMDE3NzMiLCBcCi0gICAgICAgICAgIjAuMDAxNjA4LCAwLjAwMTcxMywgMC4wMDE3MzcsIDAuMDAxNzUyLCAwLjAwMTc2LCAwLjAwMTc2NSwgMC4wMDE3NjgiLCBcCi0gICAgICAgICAgIjAuMDAxNTksIDAuMDAxNjkxLCAwLjAwMTcyLCAwLjAwMTczOSwgMC4wMDE3NDksIDAuMDAxNzU2LCAwLjAwMTc2MSIsIFwKLSAgICAgICAgICAiMC4wMDE1ODIsIDAuMDAxNjc3LCAwLjAwMTcwOCwgMC4wMDE3MjksIDAuMDAxNzQxLCAwLjAwMTc0OSwgMC4wMDE3NTUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDU0NDEsIDAuMDA1NDQyLCAwLjAwNTQ0MywgMC4wMDU0NDMsIDAuMDA1NDQyLCAwLjAwNTQ0MiwgMC4wMDU0NDEiLCBcCi0gICAgICAgICAgIjAuMDA1NDA1LCAwLjAwNTQyMiwgMC4wMDU0MjMsIDAuMDA1NDI1LCAwLjAwNTQyMywgMC4wMDU0MjYsIDAuMDA1NDI1IiwgXAotICAgICAgICAgICIwLjAwNTM5NCwgMC4wMDU0MTUsIDAuMDA1NDIsIDAuMDA1NDIyLCAwLjAwNTQyMywgMC4wMDU0MjMsIDAuMDA1NDI1IiwgXAotICAgICAgICAgICIwLjAwNTM5OCwgMC4wMDU0MTMsIDAuMDA1NDE4LCAwLjAwNTQyMSwgMC4wMDU0MjEsIDAuMDA1NDIyLCAwLjAwNTQyIiwgXAotICAgICAgICAgICIwLjAwNTQwOSwgMC4wMDU0MTcsIDAuMDA1NDIyLCAwLjAwNTQyMSwgMC4wMDU0MjIsIDAuMDA1NDIxLCAwLjAwNTQyMiIsIFwKLSAgICAgICAgICAiMC4wMDU0MzcsIDAuMDA1NDIzLCAwLjAwNTQyNCwgMC4wMDU0MjQsIDAuMDA1NDIyLCAwLjAwNTQyMiwgMC4wMDU0MjIiLCBcCi0gICAgICAgICAgIjAuMDA1NDI2LCAwLjAwNTQzOCwgMC4wMDU0MywgMC4wMDU0MjUsIDAuMDA1NDI2LCAwLjAwNTQyNSwgMC4wMDU0MjQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDE3NjksIDAuMDAxNzg0LCAwLjAwMTc4NiwgMC4wMDE3ODcsIDAuMDAxNzg3LCAwLjAwMTc4OCwgMC4wMDE3ODgiLCBcCi0gICAgICAgICAgIjAuMDAxNzA1LCAwLjAwMTc2NiwgMC4wMDE3NzUsIDAuMDAxNzc5LCAwLjAwMTc4MiwgMC4wMDE3ODMsIDAuMDAxNzg0IiwgXAotICAgICAgICAgICIwLjAwMTY1NywgMC4wMDE3NDYsIDAuMDAxNzYyLCAwLjAwMTc3LCAwLjAwMTc3NSwgMC4wMDE3NzcsIDAuMDAxNzc5IiwgXAotICAgICAgICAgICIwLjAwMTYyOSwgMC4wMDE3MjksIDAuMDAxNzUsIDAuMDAxNzYyLCAwLjAwMTc2OCwgMC4wMDE3NzMsIDAuMDAxNzc2IiwgXAotICAgICAgICAgICIwLjAwMTYxLCAwLjAwMTcxNCwgMC4wMDE3MzgsIDAuMDAxNzUzLCAwLjAwMTc2MSwgMC4wMDE3NjYsIDAuMDAxNzciLCBcCi0gICAgICAgICAgIjAuMDAxNTkyLCAwLjAwMTY5MywgMC4wMDE3MjIsIDAuMDAxNzQsIDAuMDAxNzUxLCAwLjAwMTc1OCwgMC4wMDE3NjMiLCBcCi0gICAgICAgICAgIjAuMDAxNTg3LCAwLjAwMTY3OSwgMC4wMDE3MSwgMC4wMDE3MzEsIDAuMDAxNzQzLCAwLjAwMTc1MSwgMC4wMDE3NTciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQ1NjUsIDAuMDA0NTcsIDAuMDA0NTcsIDAuMDA0NTcsIDAuMDA0NTcsIDAuMDA0NTcsIDAuMDA0NTciLCBcCi0gICAgICAgICAgIjAuMDA0NTQ3LCAwLjAwNDU3NiwgMC4wMDQ1NzksIDAuMDA0NTgxLCAwLjAwNDU4MiwgMC4wMDQ1ODIsIDAuMDA0NTgyIiwgXAotICAgICAgICAgICIwLjAwNDUzNSwgMC4wMDQ1NzEsIDAuMDA0NTc4LCAwLjAwNDU4MSwgMC4wMDQ1ODIsIDAuMDA0NTgzLCAwLjAwNDU4MyIsIFwKLSAgICAgICAgICAiMC4wMDQ1MzUsIDAuMDA0NTcxLCAwLjAwNDU3NywgMC4wMDQ1ODEsIDAuMDA0NTgyLCAwLjAwNDU4MywgMC4wMDQ1ODQiLCBcCi0gICAgICAgICAgIjAuMDA0NTQzLCAwLjAwNDU3MSwgMC4wMDQ1NzgsIDAuMDA0NTgyLCAwLjAwNDU4MywgMC4wMDQ1ODQsIDAuMDA0NTg0IiwgXAotICAgICAgICAgICIwLjAwNDU2NywgMC4wMDQ1NzUsIDAuMDA0NTgsIDAuMDA0NTgzLCAwLjAwNDU4NCwgMC4wMDQ1ODQsIDAuMDA0NTg1IiwgXAotICAgICAgICAgICIwLjAwNDU1NSwgMC4wMDQ1ODksIDAuMDA0NTg2LCAwLjAwNDU4NywgMC4wMDQ1ODYsIDAuMDA0NTg3LCAwLjAwNDU4OCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTc2OCwgMC4wMDE3ODQsIDAuMDAxNzg2LCAwLjAwMTc4NywgMC4wMDE3ODcsIDAuMDAxNzg4LCAwLjAwMTc4OCIsIFwKLSAgICAgICAgICAiMC4wMDE3MDUsIDAuMDAxNzY2LCAwLjAwMTc3NSwgMC4wMDE3NzksIDAuMDAxNzgyLCAwLjAwMTc4MywgMC4wMDE3ODQiLCBcCi0gICAgICAgICAgIjAuMDAxNjU3LCAwLjAwMTc0NiwgMC4wMDE3NjEsIDAuMDAxNzcsIDAuMDAxNzc0LCAwLjAwMTc3NywgMC4wMDE3OCIsIFwKLSAgICAgICAgICAiMC4wMDE2MywgMC4wMDE3MjksIDAuMDAxNzUsIDAuMDAxNzYxLCAwLjAwMTc2OCwgMC4wMDE3NzIsIDAuMDAxNzc0IiwgXAotICAgICAgICAgICIwLjAwMTYxMywgMC4wMDE3MTUsIDAuMDAxNzM5LCAwLjAwMTc1NCwgMC4wMDE3NjIsIDAuMDAxNzY3LCAwLjAwMTc3IiwgXAotICAgICAgICAgICIwLjAwMTYwMSwgMC4wMDE2OTUsIDAuMDAxNzIzLCAwLjAwMTc0MiwgMC4wMDE3NTIsIDAuMDAxNzU4LCAwLjAwMTc2MyIsIFwKLSAgICAgICAgICAiMC4wMDE2MDIsIDAuMDAxNjgyLCAwLjAwMTcxMywgMC4wMDE3MzMsIDAuMDAxNzQ1LCAwLjAwMTc1MiwgMC4wMDE3NTgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJEIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDM2NTIsIDAuMDAzNjY2LCAwLjAwMzY2NiwgMC4wMDM2NjYsIDAuMDAzNjY4LCAwLjAwMzY2OCwgMC4wMDM2NjciLCBcCi0gICAgICAgICAgIjAuMDAzNjM3LCAwLjAwMzY4NSwgMC4wMDM2OSwgMC4wMDM2OTEsIDAuMDAzNjk1LCAwLjAwMzY5NiwgMC4wMDM2OTciLCBcCi0gICAgICAgICAgIjAuMDAzNjIsIDAuMDAzNjgsIDAuMDAzNjkyLCAwLjAwMzY5OCwgMC4wMDM3MDEsIDAuMDAzNywgMC4wMDM3MDMiLCBcCi0gICAgICAgICAgIjAuMDAzNTk4LCAwLjAwMzY3LCAwLjAwMzY4NywgMC4wMDM2OTIsIDAuMDAzNjk2LCAwLjAwMzY5OCwgMC4wMDM2OTkiLCBcCi0gICAgICAgICAgIjAuMDAzNjEyLCAwLjAwMzY3NCwgMC4wMDM2ODcsIDAuMDAzNjkzLCAwLjAwMzY5NiwgMC4wMDM2OTksIDAuMDAzNyIsIFwKLSAgICAgICAgICAiMC4wMDM2MjYsIDAuMDAzNjc0LCAwLjAwMzY4NCwgMC4wMDM2OTIsIDAuMDAzNjkzLCAwLjAwMzY5OCwgMC4wMDM2OTgiLCBcCi0gICAgICAgICAgIjAuMDAzNjU0LCAwLjAwMzY3OSwgMC4wMDM2ODQsIDAuMDAzNjkzLCAwLjAwMzY5OCwgMC4wMDM2OTgsIDAuMDAzNyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTc2OCwgMC4wMDE3ODgsIDAuMDAxNzksIDAuMDAxNzkxLCAwLjAwMTc5MiwgMC4wMDE3OTIsIDAuMDAxNzkyIiwgXAotICAgICAgICAgICIwLjAwMTY5NiwgMC4wMDE3NjcsIDAuMDAxNzc3LCAwLjAwMTc4MiwgMC4wMDE3ODUsIDAuMDAxNzg3LCAwLjAwMTc4OCIsIFwKLSAgICAgICAgICAiMC4wMDE2NTIsIDAuMDAxNzQ2LCAwLjAwMTc2MywgMC4wMDE3NzIsIDAuMDAxNzc3LCAwLjAwMTc4LCAwLjAwMTc4MyIsIFwKLSAgICAgICAgICAiMC4wMDE2NDYsIDAuMDAxNzMzLCAwLjAwMTc1MywgMC4wMDE3NjUsIDAuMDAxNzcyLCAwLjAwMTc3OCwgMC4wMDE3NzkiLCBcCi0gICAgICAgICAgIjAuMDAxNjM0LCAwLjAwMTcyLCAwLjAwMTc0MywgMC4wMDE3NTgsIDAuMDAxNzY2LCAwLjAwMTc3MSwgMC4wMDE3NzQiLCBcCi0gICAgICAgICAgIjAuMDAxNjY2LCAwLjAwMTcxMSwgMC4wMDE3MzUsIDAuMDAxNzUsIDAuMDAxNzYsIDAuMDAxNzY2LCAwLjAwMTc3IiwgXAotICAgICAgICAgICIwLjAwMTcsIDAuMDAxNzA2LCAwLjAwMTcyOCwgMC4wMDE3NDQsIDAuMDAxNzU0LCAwLjAwMTc2MSwgMC4wMDE3NjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBOQU5ENFg2ICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKE5BTkQ0WDYpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC44NjQyMzM7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwNDQzNDEyOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwNDQzNDEyOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwNDQxNDU5OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjQ2MSwgMC4wMDI0NTksIDAuMDAyNDU4LCAwLjAwMjQ1NywgMC4wMDI0NTYsIDAuMDAyNDU3LCAwLjAwMjQ1NiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjQ2MywgMC4wMDI0NjUsIDAuMDAyNDY1LCAwLjAwMjQ2NywgMC4wMDI0NjUsIDAuMDAyNDY1LCAwLjAwMjQ2NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDA0MjUwNzI7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDA0MjUwNzI7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDA0MjMzNTc7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyNDYxLCAwLjAwMjQ1OSwgMC4wMDI0NTcsIDAuMDAyNDU2LCAwLjAwMjQ1NywgMC4wMDI0NTYsIDAuMDAyNDU1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyNDYyLCAwLjAwMjQ2NSwgMC4wMDI0NjUsIDAuMDAyNDY4LCAwLjAwMjQ2NSwgMC4wMDI0NTYsIDAuMDAyNDY3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihDKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDQzMzY0NjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDQzMzY0NjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDQzMjE4MzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDI0NjEsIDAuMDAyNDU5LCAwLjAwMjQ1OSwgMC4wMDI0NTMsIDAuMDAyNDU3LCAwLjAwMjQ1NywgMC4wMDI0NTYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDI0NjMsIDAuMDAyNDY1LCAwLjAwMjQ2NiwgMC4wMDI0NjcsIDAuMDAyNDY4LCAwLjAwMjQ2NiwgMC4wMDI0NjciKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEQpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwNDM3NTAyOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwNDM3MTU1OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwNDM3NTAyOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTE2OCwgMC4wMDExNjQsIDAuMDAxMTYxLCAwLjAwMTE2MywgMC4wMDExNjMsIDAuMDAxMTYyLCAwLjAwMTE2MSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjc4NywgMC4wMDI3ODksIDAuMDAyNzksIDAuMDAyNzksIDAuMDAyNzg5LCAwLjAwMjc5MywgMC4wMDI3OTIiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC40MTQxNzM7Ci0gICAgZnVuY3Rpb24gOiAiKCEoKChBIEIpIEMpIEQpKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjA4MDYsIDAuMDcxNDI5LCAwLjEyMDc2NywgMC4xNTU4OSwgMC4yMTE5NzQsIDAuMjYxMDY2LCAwLjMzMTAxMSIsIFwKLSAgICAgICAgICAiMC4wMzEwMTEsIDAuMDgxNTE2LCAwLjEzMDg0NSwgMC4xNjU5NTcsIDAuMjIyMDU2LCAwLjI3MTA4OSwgMC4zNDExNjUiLCBcCi0gICAgICAgICAgIjAuMDQzNTU1LCAwLjA5Mzg2NywgMC4xNDMxODcsIDAuMTc4Mjg4LCAwLjIzNDM4NSwgMC4yODM0NTYsIDAuMzUzNDciLCBcCi0gICAgICAgICAgIjAuMDUzNjE4LCAwLjEwNjcxMSwgMC4xNTU2NzMsIDAuMTkwNzYzLCAwLjI0Njk1NiwgMC4yOTU5MjMsIDAuMzY1OTI5IiwgXAotICAgICAgICAgICIwLjA2MjQyMiwgMC4xMTkzNzUsIDAuMTY4MTIyLCAwLjIwMzE4NSwgMC4yNTkyNDYsIDAuMzA4MzI5LCAwLjM3ODM0MiIsIFwKLSAgICAgICAgICAiMC4wNzM5NjUsIDAuMTM5OTg1LCAwLjE4OTMyOSwgMC4yMjQyOTQsIDAuMjgwMzMyLCAwLjMyOTM1LCAwLjM5ODYyNCIsIFwKLSAgICAgICAgICAiMC4wODIyNjksIDAuMTU2ODE3LCAwLjIwNjk3MywgMC4yNDE4OTgsIDAuMjk3MDYzLCAwLjM0NjAzMSwgMC40MTU5OSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzNDc4NywgMC4xMzYwNzcsIDAuMjM3MTA4LCAwLjMwOTM1OSwgMC40MjUwNTYsIDAuNTI2MTI3LCAwLjY3MDA2NyIsIFwKLSAgICAgICAgICAiMC4wMzcxMDQsIDAuMTM1OTAxLCAwLjIzNzA1MiwgMC4zMDkyNTksIDAuNDI0Njc1LCAwLjUyNTkxMiwgMC42NzA1ODMiLCBcCi0gICAgICAgICAgIjAuMDQ0NDI4LCAwLjEzNzg3MywgMC4yMzcwODEsIDAuMzA5MTg5LCAwLjQyNDc0NCwgMC41MjU3NDIsIDAuNjcwMTA5IiwgXAotICAgICAgICAgICIwLjA1MzYxNywgMC4xNDIzMDQsIDAuMjM4OTQsIDAuMzA5ODIxLCAwLjQyNDc2MSwgMC41MjU3MDYsIDAuNjcwMzEzIiwgXAotICAgICAgICAgICIwLjA2MTc1NywgMC4xNDg1NTEsIDAuMjQyOTQ1LCAwLjMxMjI4LCAwLjQyNTM3MiwgMC41MjU3NjksIDAuNjcwMjg5IiwgXAotICAgICAgICAgICIwLjA3NDcyMiwgMC4xNTk3ODIsIDAuMjUwNzQ4LCAwLjMxODIyNiwgMC40Mjg5ODcsIDAuNTI3NDg4LCAwLjY3MDMwNSIsIFwKLSAgICAgICAgICAiMC4wODYwMTgsIDAuMTcxNzM1LCAwLjI1OTkxMiwgMC4zMjU4MTYsIDAuNDM0ODA3LCAwLjUzMTY0NiwgMC42NzI0NSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3NDc5NywgMC4yNjI3NzQsIDAuNDUwNTk3LCAwLjU4NDUwNywgMC43OTkzNzEsIDAuOTg2NTg4LCAxLjI1NDgyIiwgXAotICAgICAgICAgICIwLjA4Mjc5NywgMC4yNzE0MTIsIDAuNDU5MzUsIDAuNTkzMzgzLCAwLjgwODM1MywgMC45OTU2NSwgMS4yNjM2MyIsIFwKLSAgICAgICAgICAiMC4wOTE2MSwgMC4yODA0MzIsIDAuNDY4NDk3LCAwLjYwMjgyNCwgMC44MTY5MSwgMS4wMDQ0OSwgMS4yNzI1MyIsIFwKLSAgICAgICAgICAiMC4wOTk3OTIsIDAuMjg4NTc3LCAwLjQ3NjQ4MSwgMC42MTA2NjYsIDAuODI1MTQ4LCAxLjAxMjcyLCAxLjI4MDgzIiwgXAotICAgICAgICAgICIwLjEwNzYxNywgMC4yOTYyODEsIDAuNDg0MzI1LCAwLjYxODU0NCwgMC44MzMwMjIsIDEuMDIwNzYsIDEuMjg4NzgiLCBcCi0gICAgICAgICAgIjAuMTE5MDMyLCAwLjMwODMxLCAwLjQ5NjQ5MSwgMC42MzA1ODgsIDAuODQ1NTQ2LCAxLjAzMjksIDEuMzAxMDMiLCBcCi0gICAgICAgICAgIjAuMTI4MDA5LCAwLjMxODU5NywgMC41MDY3MSwgMC42NDA5NzUsIDAuODU2MDIsIDEuMDQzNjMsIDEuMzExMzYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDc5MjQsIDAuNDc0NzEyLCAwLjg0MTA4NSwgMS4xMDQxMywgMS41MjU4LCAxLjg5MDc3LCAyLjQxNzQ5IiwgXAotICAgICAgICAgICIwLjEwNzkxMywgMC40NzQ4NDMsIDAuODQxMzA0LCAxLjEwNDk2LCAxLjUyMjA0LCAxLjg5MjQ1LCAyLjQxMjMzIiwgXAotICAgICAgICAgICIwLjEwODA2LCAwLjQ3NDc4MywgMC44NDI3MzksIDEuMTA1NjcsIDEuNTIzMzUsIDEuODkwMjcsIDIuNDE0NjQiLCBcCi0gICAgICAgICAgIjAuMTA5MDY5LCAwLjQ3NDc2LCAwLjg0MTUwOCwgMS4xMDM4OSwgMS41MjYwOCwgMS44OTM2MSwgMi40MTQ5NCIsIFwKLSAgICAgICAgICAiMC4xMTA3MDcsIDAuNDc0NDYxLCAwLjg0MTM0OCwgMS4xMDQsIDEuNTIzMzQsIDEuODkwNDUsIDIuNDE0NDMiLCBcCi0gICAgICAgICAgIjAuMTE0NDU5LCAwLjQ3NjIyMywgMC44NDA5OSwgMS4xMDM3NSwgMS41MjUwOCwgMS44OTEwNCwgMi40MTQ2OSIsIFwKLSAgICAgICAgICAiMC4xMTg5MTMsIDAuNDc3MjAyLCAwLjg0MTI3MywgMS4xMDM5OCwgMS41MjU1LCAxLjg5MjQ0LCAyLjQxNDY1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDIwMjUxLCAwLjA3MDI2OSwgMC4xMTk2NSwgMC4xNTQ4NSwgMC4yMTExMDksIDAuMjYwMjgyLCAwLjMzMDc1OSIsIFwKLSAgICAgICAgICAiMC4wMzAzMzQsIDAuMDgwMzQyLCAwLjEyOTczOCwgMC4xNjQ5NTMsIDAuMjIxMjM4LCAwLjI3MDQ5NSwgMC4zNDA3NjgiLCBcCi0gICAgICAgICAgIjAuMDQyNDgxLCAwLjA5MjY4OSwgMC4xNDIwNjgsIDAuMTc3MjcxLCAwLjIzMzE2MiwgMC4yODI0NTMsIDAuMzUyNzUiLCBcCi0gICAgICAgICAgIjAuMDUyMDUsIDAuMTA1NSwgMC4xNTQ1MDksIDAuMTg5NzIxLCAwLjI0NjEwNCwgMC4yOTUyNSwgMC4zNjQ3MDciLCBcCi0gICAgICAgICAgIjAuMDYwMzc2LCAwLjExODExOCwgMC4xNjY5MTIsIDAuMjAyMDYyLCAwLjI1ODM2OCwgMC4zMDc1NDksIDAuMzc3OTI0IiwgXAotICAgICAgICAgICIwLjA3MTE3LCAwLjEzODg1NiwgMC4xODgwMTIsIDAuMjIzMTA1LCAwLjI3ODY2LCAwLjMyNzg1MywgMC4zOTgyMDgiLCBcCi0gICAgICAgICAgIjAuMDc5NTE5LCAwLjE1NTExOSwgMC4yMDU1MDQsIDAuMjQwNTEzLCAwLjI5NTkzOCwgMC4zNDUwODMsIDAuNDE1MzE2Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDMyNzg1LCAwLjEzNDM0OSwgMC4yMzYxOTksIDAuMzA4Nzk4LCAwLjQyNDY0MywgMC41MjYyOTEsIDAuNjcxNjI4IiwgXAotICAgICAgICAgICIwLjAzNTI0MiwgMC4xMzQ0MzEsIDAuMjM1OTg5LCAwLjMwODc5OSwgMC40MjQ5NzMsIDAuNTI2NjMyLCAwLjY3MTYyOCIsIFwKLSAgICAgICAgICAiMC4wNDI4NjIsIDAuMTM2NDE5LCAwLjIzNjA5MiwgMC4zMDg1MjcsIDAuNDI0NjkxLCAwLjUyNjI3NywgMC42NzE0MDUiLCBcCi0gICAgICAgICAgIjAuMDUyMTczLCAwLjE0MDkzMSwgMC4yMzgwNTUsIDAuMzA5MTc0LCAwLjQyNDYzNywgMC41MjYyMjgsIDAuNjcxNDAzIiwgXAotICAgICAgICAgICIwLjA2MDU0OCwgMC4xNDc0NDQsIDAuMjQyMDg5LCAwLjMxMTY5NiwgMC40MjUzMzksIDAuNTI2NTYyLCAwLjY3MTM4OSIsIFwKLSAgICAgICAgICAiMC4wNzM1NTEsIDAuMTU4OTQ2LCAwLjI1MDAyNCwgMC4zMTc4MDksIDAuNDI5MjczLCAwLjUyODI3NCwgMC42NzE2MDIiLCBcCi0gICAgICAgICAgIjAuMDgzNDM0LCAwLjE3MTM1NiwgMC4yNTk1MTksIDAuMzI1NjY3LCAwLjQzNTEyNywgMC41MzI0MSwgMC42NzM5NzQiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzE0ODIsIDAuMjU5NDYzLCAwLjQ0NzIzNCwgMC41ODEyNDMsIDAuNzk2MTY1LCAwLjk4MzQ1NywgMS4yNTA5MiIsIFwKLSAgICAgICAgICAiMC4wNzkzNTUsIDAuMjY3OTk4LCAwLjQ1NjAxNywgMC41ODk5NzMsIDAuODA0Njc4LCAwLjk5MTg2MSwgMS4yNjA4OCIsIFwKLSAgICAgICAgICAiMC4wODg0NzEsIDAuMjc3MjUxLCAwLjQ2NTIwMiwgMC41OTk1MDUsIDAuODE0MjI2LCAxLjAwMTMzLCAxLjI3MDQ4IiwgXAotICAgICAgICAgICIwLjA5NzMxNywgMC4yODYxLCAwLjQ3NDE0LCAwLjYwODM2OSwgMC44MjI4MywgMS4wMTA2OCwgMS4yNzg4IiwgXAotICAgICAgICAgICIwLjEwNjA4MywgMC4yOTQ3NSwgMC40ODI4MjcsIDAuNjE3MDMsIDAuODMxODM0LCAxLjAxOTI1LCAxLjI4ODAxIiwgXAotICAgICAgICAgICIwLjExOTAyMywgMC4zMDg4MTgsIDAuNDk2ODk5LCAwLjYzMTA5MSwgMC44NDU4MjcsIDEuMDMzNDgsIDEuMzAxNTgiLCBcCi0gICAgICAgICAgIjAuMTI5MzQ3LCAwLjMyMDg5MywgMC41MDkxMTksIDAuNjQzNDY2LCAwLjg1ODEwNCwgMS4wNDYyLCAxLjMxNDUyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTA3ODkxLCAwLjQ3NDg2NiwgMC44NDE0NDYsIDEuMTA1MDUsIDEuNTIxOTEsIDEuODkyNjQsIDIuNDE4OTQiLCBcCi0gICAgICAgICAgIjAuMTA3OTI2LCAwLjQ3NDY2NCwgMC44NDMwMTQsIDEuMTA1MDIsIDEuNTI1NDksIDEuODkwMTQsIDIuNDE4NzUiLCBcCi0gICAgICAgICAgIjAuMTA4MzU0LCAwLjQ3NTU2LCAwLjg0MTc2OCwgMS4xMDUxNCwgMS41MjU1NCwgMS44OTM3NiwgMi40MTIzMyIsIFwKLSAgICAgICAgICAiMC4xMTAwOTQsIDAuNDc0NzIxLCAwLjg0MTY4NiwgMS4xMDM5NiwgMS41MjMyOSwgMS44OTIyMywgMi40MTQ5NCIsIFwKLSAgICAgICAgICAiMC4xMTI3NTEsIDAuNDc0NTAzLCAwLjg0MzIyLCAxLjEwMzcyLCAxLjUyMjUyLCAxLjg5MDM0LCAyLjQxNzk3IiwgXAotICAgICAgICAgICIwLjExODg3NiwgMC40NzYxODgsIDAuODQxNzI4LCAxLjEwNTgyLCAxLjUyMjcsIDEuODkwNDYsIDIuNDE0NyIsIFwKLSAgICAgICAgICAiMC4xMjU2NzksIDAuNDc5MDI0LCAwLjg0MzQ4NywgMS4xMDM5NywgMS41MjMyNCwgMS44OTI3LCAyLjQxNzczIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE4OTk1LCAwLjA2ODQ0NSwgMC4xMTc3MiwgMC4xNTI4ODcsIDAuMjA5MDk2LCAwLjI1ODQxLCAwLjMyODY4NiIsIFwKLSAgICAgICAgICAiMC4wMjkxMTIsIDAuMDc4NjI1LCAwLjEyNzkxNywgMC4xNjMwNDksIDAuMjE5Mzk3LCAwLjI2ODUzNCwgMC4zMzg4NzkiLCBcCi0gICAgICAgICAgIjAuMDQwNzg2LCAwLjA5MDk5NCwgMC4xNDAyNDEsIDAuMTc1NDcyLCAwLjIzMTY1NSwgMC4yODA4OTUsIDAuMzUxMTgxIiwgXAotICAgICAgICAgICIwLjA0OTc5NiwgMC4xMDM4NDIsIDAuMTUyNzE0LCAwLjE4NzkyNCwgMC4yNDQyODQsIDAuMjkzNDQxLCAwLjM2MzcyNSIsIFwKLSAgICAgICAgICAiMC4wNTc2MjgsIDAuMTE2NDMsIDAuMTY1MTM2LCAwLjIwMDI0OSwgMC4yNTY1NTEsIDAuMzA1NzE4LCAwLjM3NjA2NCIsIFwKLSAgICAgICAgICAiMC4wNjc3MzYsIDAuMTM3MDc2LCAwLjE4NjIwNiwgMC4yMjEzMDksIDAuMjc2ODQ2LCAwLjMyNTk5NiwgMC4zOTYyNyIsIFwKLSAgICAgICAgICAiMC4wNzU3MzYsIDAuMTUzMjgyLCAwLjIwMzgzMywgMC4yMzg4MiwgMC4yOTQxOSwgMC4zNDMzMTcsIDAuNDEzNTMyIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDMwNDQyLCAwLjEzMTk1NiwgMC4yMzM0NDgsIDAuMzA2MTMzLCAwLjQyMTg2NiwgMC41MjM1NTEsIDAuNjY4NTQ2IiwgXAotICAgICAgICAgICIwLjAzMzI5MywgMC4xMzE5NTQsIDAuMjMzNTU5LCAwLjMwNTkxOCwgMC40MjIwNTcsIDAuNTIzNjU0LCAwLjY2ODYiLCBcCi0gICAgICAgICAgIjAuMDQxMzUxLCAwLjEzNDA5NiwgMC4yMzM2NzYsIDAuMzA2MDIsIDAuNDIxODcyLCAwLjUyMzM3OSwgMC42NjgzNjkiLCBcCi0gICAgICAgICAgIjAuMDUwODI0LCAwLjEzODkzOCwgMC4yMzU2MjEsIDAuMzA2NjIsIDAuNDIyLCAwLjUyMzQ3OCwgMC42Njg1NTYiLCBcCi0gICAgICAgICAgIjAuMDU5MDU2LCAwLjE0NTM2OSwgMC4yMzk4NTksIDAuMzA5MjYzLCAwLjQyMjYwNCwgMC41MjM1OCwgMC42NjgzODIiLCBcCi0gICAgICAgICAgIjAuMDcyMDQ4LCAwLjE1NzAwOCwgMC4yNDc3MTQsIDAuMzE1Mzc0LCAwLjQyNjYxNiwgMC41MjU2MDIsIDAuNjY4NjMzIiwgXAotICAgICAgICAgICIwLjA4MTY0MSwgMC4xNjk0MTcsIDAuMjU3MTc1LCAwLjMyMzE0LCAwLjQzMjM4OSwgMC41Mjk2MDgsIDAuNjcwOTM4Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY1MjQ4LCAwLjI1MzMwMSwgMC40NDA4NjIsIDAuNTc1MzI1LCAwLjc4OTQsIDAuOTc3NjU2LCAxLjI0NTIiLCBcCi0gICAgICAgICAgIjAuMDcyOTU2LCAwLjI2MTU3NCwgMC40NDk0MTIsIDAuNTgzNjM5LCAwLjc5ODA2NywgMC45ODU3OTcsIDEuMjUzNTgiLCBcCi0gICAgICAgICAgIjAuMDgyODIsIDAuMjcxNjk4LCAwLjQ1OTY2OCwgMC41OTM2NTksIDAuODA4NDgsIDAuOTk1NzY3LCAxLjI2NDciLCBcCi0gICAgICAgICAgIjAuMDkyOTA4LCAwLjI4MTczMywgMC40Njk3MjIsIDAuNjAzOTIxLCAwLjgxODY4NSwgMS4wMDYwNSwgMS4yNzQyMiIsIFwKLSAgICAgICAgICAiMC4xMDMxNjYsIDAuMjkxNjE0LCAwLjQ4MDA1NCwgMC42MTQyMjgsIDAuODI4ODYzLCAxLjAxNjM3LCAxLjI4NDU0IiwgXAotICAgICAgICAgICIwLjExODAxOCwgMC4zMDgyODUsIDAuNDk2MzgxLCAwLjYzMDUzNCwgMC44NDUyMTMsIDEuMDMyODMsIDEuMzAxOTciLCBcCi0gICAgICAgICAgIjAuMTI5NDYzLCAwLjMyMjQ5MSwgMC41MTA2MDYsIDAuNjQ0OTI4LCAwLjg1OTY3MSwgMS4wNDczOSwgMS4zMTU1NiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwNzg4NSwgMC40NzUyNDUsIDAuODQxODA2LCAxLjEwNTc1LCAxLjUyMzY0LCAxLjg4ODUxLCAyLjQxNzM3IiwgXAotICAgICAgICAgICIwLjEwNzg3NywgMC40NzQ3NSwgMC44NDE2NTcsIDEuMTA1MTMsIDEuNTIyMTksIDEuODkyMzgsIDIuNDE0NCIsIFwKLSAgICAgICAgICAiMC4xMDg5OTMsIDAuNDc0Nzg2LCAwLjg0MTc3NCwgMS4xMDM4MSwgMS41MjUxMiwgMS44OTAzMSwgMi40MTgzOCIsIFwKLSAgICAgICAgICAiMC4xMTIxNDQsIDAuNDc1NDg2LCAwLjg0MTU3OSwgMS4xMDMxNSwgMS41MjQ4OCwgMS44OTM3OCwgMi40MTQ4IiwgXAotICAgICAgICAgICIwLjExNjg2NywgMC40NzUyNjIsIDAuODQxNzc4LCAxLjEwMjg3LCAxLjUyMzQ5LCAxLjg5Mzc1LCAyLjQxNDY4IiwgXAotICAgICAgICAgICIwLjEyNjE5OCwgMC40NzY5OTQsIDAuODQxNzgyLCAxLjEwMzg4LCAxLjUyMzQyLCAxLjg5MDMzLCAyLjQxODY3IiwgXAotICAgICAgICAgICIwLjEzNTc2MiwgMC40ODAxNywgMC44NDM0MDgsIDEuMTA0LCAxLjUyMzM5LCAxLjg5Mzk5LCAyLjQxNDczIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkQiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE3MTE1LCAwLjA2NjIzNywgMC4xMTUyODEsIDAuMTUwNDE2LCAwLjIwNjQyNCwgMC4yNTU0ODMsIDAuMzI1NjM2IiwgXAotICAgICAgICAgICIwLjAyNzIxNSwgMC4wNzYyNjMsIDAuMTI1MzA0LCAwLjE2MDM3OSwgMC4yMTY0NywgMC4yNjU0OTEsIDAuMzM1NTk0IiwgXAotICAgICAgICAgICIwLjAzODI4NCwgMC4wODkwMDMsIDAuMTM3ODcsIDAuMTcyOTM1LCAwLjIyOTAxMywgMC4yNzgxNDksIDAuMzQ4MjI5IiwgXAotICAgICAgICAgICIwLjA0NjU2NSwgMC4xMDE2NTcsIDAuMTUwMzU5LCAwLjE4NTQxMiwgMC4yNDE1OTQsIDAuMjkwNjM2LCAwLjM2MDgyNiIsIFwKLSAgICAgICAgICAiMC4wNTM5MTgsIDAuMTE0MzIyLCAwLjE2Mjc5MiwgMC4xOTc4MTcsIDAuMjUzOTg2LCAwLjMwMzA5NiwgMC4zNzMyNTEiLCBcCi0gICAgICAgICAgIjAuMDYzMTkzLCAwLjEzNDgzOCwgMC4xODM5OTEsIDAuMjE4OTIxLCAwLjI3NDkwNywgMC4zMjM5NDIsIDAuMzkzMjkzIiwgXAotICAgICAgICAgICIwLjA3MDI0NCwgMC4xNTA4OTQsIDAuMjAxNzExLCAwLjIzNjU4NywgMC4yOTI0MDUsIDAuMzQwNzQ2LCAwLjQxMDc1MSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyODEyNCwgMC4xMjkyNTEsIDAuMjMwNzcsIDAuMzAyODA1LCAwLjQxOTA0OCwgMC41MTk0OTksIDAuNjY0NzI0IiwgXAotICAgICAgICAgICIwLjAzMTM5NywgMC4xMjkyODEsIDAuMjMwNDQ3LCAwLjMwMjc5LCAwLjQxODQ1NywgMC41MTk1NDMsIDAuNjYzOTY3IiwgXAotICAgICAgICAgICIwLjA0MDAyMywgMC4xMzE2MzcsIDAuMjMxMDEsIDAuMzAyNzI2LCAwLjQxODM4MywgMC41MTk2NjYsIDAuNjY0MjY4IiwgXAotICAgICAgICAgICIwLjA0OTY1NSwgMC4xMzY0MDYsIDAuMjMyODMyLCAwLjMwMzU5NSwgMC40MTkyNiwgMC41MTk2ODksIDAuNjY0MjY5IiwgXAotICAgICAgICAgICIwLjA1NzY4OCwgMC4xNDMwMSwgMC4yMzcyMTcsIDAuMzA2NTIyLCAwLjQxOTE5OSwgMC41MjAzNiwgMC42NjQzMTQiLCBcCi0gICAgICAgICAgIjAuMDcwNjM5LCAwLjE1NTA1MSwgMC4yNDUzMTYsIDAuMzEyNzY1LCAwLjQyMzE0OCwgMC41MjI2MTksIDAuNjY1ODQxIiwgXAotICAgICAgICAgICIwLjA4MDAyNCwgMC4xNjY5NzEsIDAuMjU0NTA0LCAwLjMyMDAxNSwgMC40MjkyMTUsIDAuNTI2OTY1LCAwLjY2NzkxMyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1NTQ4NSwgMC4yNDM1NCwgMC40MzEzNDIsIDAuNTY1MzQ2LCAwLjc3OTc1NSwgMC45Njc2MjEsIDEuMjM1NTYiLCBcCi0gICAgICAgICAgIjAuMDYzMDksIDAuMjUxODE0LCAwLjQzOTU1NSwgMC41NzM2NDgsIDAuNzg4MTU1LCAwLjk3NTY3OCwgMS4yNDM3IiwgXAotICAgICAgICAgICIwLjA3MzI2OSwgMC4yNjE5OTIsIDAuNDQ5OTIxLCAwLjU4NDA2NiwgMC43OTg0NTQsIDAuOTg2MjczLCAxLjI1NDYzIiwgXAotICAgICAgICAgICIwLjA4MzkyMSwgMC4yNzIzMDYsIDAuNDYwMzYsIDAuNTk0NDE1LCAwLjgwOTE2MiwgMC45OTY2NzksIDEuMjY0NjciLCBcCi0gICAgICAgICAgIjAuMDk0ODM3LCAwLjI4MjY0NiwgMC40NzA2MDMsIDAuNjA0NzY3LCAwLjgxOTQ1NiwgMS4wMDcwOCwgMS4yNzQ5NyIsIFwKLSAgICAgICAgICAiMC4xMTA1NTUsIDAuMjk5MjQzLCAwLjQ4NDkzOSwgMC42MjEwOTEsIDAuODM1NjQ4LCAxLjAyMzM2LCAxLjI5MTQ3IiwgXAotICAgICAgICAgICIwLjEyMjk2NSwgMC4zMTQ1MzQsIDAuNTAyMjQ5LCAwLjYzNjQ5OSwgMC44NTEwMDgsIDEuMDM4OTcsIDEuMzA2OTEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDc2OSwgMC40NzQ3NTYsIDAuODQyNzE5LCAxLjEwNDAxLCAxLjUyMzcxLCAxLjg4ODg5LCAyLjQxNzMzIiwgXAotICAgICAgICAgICIwLjEwNjg2MywgMC40NzQzNjUsIDAuODQxNjI3LCAxLjEwNTg3LCAxLjUyMzQ2LCAxLjg5MDg1LCAyLjQxNDY4IiwgXAotICAgICAgICAgICIwLjEwOTUwMSwgMC40NzU0ODUsIDAuODQzMTkyLCAxLjEwMjY2LCAxLjUyMzAzLCAxLjg5MDUsIDIuNDExODgiLCBcCi0gICAgICAgICAgIjAuMTE1MTYxLCAwLjQ3NTQ1NywgMC44NDE3NTYsIDEuMTAzNjksIDEuNTIzNTgsIDEuODg5MDcsIDIuNDE5MDciLCBcCi0gICAgICAgICAgIjAuMTIyMjgzLCAwLjQ3NDU5NiwgMC44NDE2MDgsIDEuMTAzODYsIDEuNTIxODIsIDEuODg4MzcsIDIuNDE5IiwgXAotICAgICAgICAgICIwLjEzNTg4MiwgMC40NzcxNzcsIDAuODQwNzU0LCAxLjEwNTgyLCAxLjUyMzMxLCAxLjg5MDM3LCAyLjQxNDc0IiwgXAotICAgICAgICAgICIwLjE0NjMxNCwgMC40ODI1MjksIDAuODQzMzM2LCAxLjEwNDAxLCAxLjUyMzAyLCAxLjg5MDc3LCAyLjQxNDU2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjAxNjUsIDAuMDIwMTY0LCAwLjAyMDE2NywgMC4wMjAxNjIsIDAuMDIwMTY0LCAwLjAyMDE2MywgMC4wMjAxNTkiLCBcCi0gICAgICAgICAgIjAuMDIwMDI0LCAwLjAyMDA2LCAwLjAyMDA2NSwgMC4wMjAwNjgsIDAuMDIwMDY3LCAwLjAyMDA2OCwgMC4wMjAwNjciLCBcCi0gICAgICAgICAgIjAuMDE5OTYzLCAwLjAyMDAxNSwgMC4wMjAwMjgsIDAuMDIwMDMzLCAwLjAyMDAzMywgMC4wMjAwMzcsIDAuMDIwMDM3IiwgXAotICAgICAgICAgICIwLjAxOTk3MSwgMC4wMjAwMTIsIDAuMDIwMDE3LCAwLjAyMDAyNCwgMC4wMjAwMjgsIDAuMDIwMDI5LCAwLjAyMDAyNyIsIFwKLSAgICAgICAgICAiMC4wMTk5NTUsIDAuMDIwMDM3LCAwLjAyMDAyNywgMC4wMjAwMjgsIDAuMDIwMDMsIDAuMDIwMDE1LCAwLjAyMDAzMiIsIFwKLSAgICAgICAgICAiMC4wMjAxMTgsIDAuMDIwMDY5LCAwLjAyMDA0OCwgMC4wMjAwMzYsIDAuMDIwMDQyLCAwLjAyMDAzOCwgMC4wMjAwMTEiLCBcCi0gICAgICAgICAgIjAuMDIwMjI5LCAwLjAyMDA5MywgMC4wMjAwNzIsIDAuMDIwMDYzLCAwLjAyMDA0MSwgMC4wMjAwMzgsIDAuMDIwMDM0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQyMDIsIDAuMDA0Mjg2LCAwLjAwNDI5OSwgMC4wMDQzMDIsIDAuMDA0MzA2LCAwLjAwNDMwOCwgMC4wMDQzMDkiLCBcCi0gICAgICAgICAgIjAuMDAzOTEyLCAwLjAwNDE4MSwgMC4wMDQyMzUsIDAuMDA0MjUzLCAwLjAwNDI3LCAwLjAwNDI3OSwgMC4wMDQyODciLCBcCi0gICAgICAgICAgIjAuMDAzNzcxLCAwLjAwNDA3NywgMC4wMDQxNjcsIDAuMDA0MjAxLCAwLjAwNDIyOCwgMC4wMDQyNSwgMC4wMDQyNTkiLCBcCi0gICAgICAgICAgIjAuMDAzNjk0LCAwLjAwMzk5OCwgMC4wMDQxMDcsIDAuMDA0MTU0LCAwLjAwNDE4OSwgMC4wMDQyMTEsIDAuMDA0MjM4IiwgXAotICAgICAgICAgICIwLjAwMzY1MSwgMC4wMDM5MzQsIDAuMDA0MDU0LCAwLjAwNDEwMywgMC4wMDQxNTIsIDAuMDA0MTgsIDAuMDA0MjA2IiwgXAotICAgICAgICAgICIwLjAwMzYxNiwgMC4wMDM4NTksIDAuMDAzOTg1LCAwLjAwNDA0MiwgMC4wMDQxMDEsIDAuMDA0MTM1LCAwLjAwNDE2OSIsIFwKLSAgICAgICAgICAiMC4wMDM1OTUsIDAuMDAzODE0LCAwLjAwMzkzOCwgMC4wMDM5OTcsIDAuMDA0MDYxLCAwLjAwNDEsIDAuMDA0MTM4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTcwNjksIDAuMDE3MDc5LCAwLjAxNzA3NywgMC4wMTcwNzcsIDAuMDE3MDc3LCAwLjAxNzA3NywgMC4wMTcwNzYiLCBcCi0gICAgICAgICAgIjAuMDE2OTM2LCAwLjAxNzAwNiwgMC4wMTcwMTksIDAuMDE3MDIsIDAuMDE3MDI0LCAwLjAxNzAyMywgMC4wMTcwMjgiLCBcCi0gICAgICAgICAgIjAuMDE2ODU0LCAwLjAxNjk2MiwgMC4wMTY5ODQsIDAuMDE2OTk1LCAwLjAxNjk5NywgMC4wMTcwMDEsIDAuMDE3MDAzIiwgXAotICAgICAgICAgICIwLjAxNjg1MiwgMC4wMTY5NTgsIDAuMDE2OTc4LCAwLjAxNjk4NSwgMC4wMTY5OTYsIDAuMDE2OTk4LCAwLjAxNjk5NyIsIFwKLSAgICAgICAgICAiMC4wMTY4MzYsIDAuMDE2OTgxLCAwLjAxNjk4OCwgMC4wMTY5OTUsIDAuMDE2OTk5LCAwLjAxNjk4OCwgMC4wMTcwMDMiLCBcCi0gICAgICAgICAgIjAuMDE2OTUyLCAwLjAxNjk2NSwgMC4wMTY5ODIsIDAuMDE2OTg5LCAwLjAxNjk4NiwgMC4wMTY5OSwgMC4wMTY5OTQiLCBcCi0gICAgICAgICAgIjAuMDE3MDExLCAwLjAxNzA2NCwgMC4wMTcwNDksIDAuMDE3MDQsIDAuMDE3MDIyLCAwLjAxNzAyLCAwLjAxNzAxNiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0MTk5LCAwLjAwNDI4OCwgMC4wMDQzLCAwLjAwNDMwNCwgMC4wMDQzMDcsIDAuMDA0MzA5LCAwLjAwNDMxMSIsIFwKLSAgICAgICAgICAiMC4wMDM5MTQsIDAuMDA0MTgyLCAwLjAwNDIzNywgMC4wMDQyNTUsIDAuMDA0MjcyLCAwLjAwNDI4LCAwLjAwNDI4OCIsIFwKLSAgICAgICAgICAiMC4wMDM3NjYsIDAuMDA0MDgsIDAuMDA0MTY4LCAwLjAwNDIsIDAuMDA0MjMsIDAuMDA0MjQ2LCAwLjAwNDI2MSIsIFwKLSAgICAgICAgICAiMC4wMDM2OTQsIDAuMDAzOTk5LCAwLjAwNDEwOCwgMC4wMDQxNSwgMC4wMDQxOTEsIDAuMDA0MjEzLCAwLjAwNDIzNCIsIFwKLSAgICAgICAgICAiMC4wMDM2NTMsIDAuMDAzOTQsIDAuMDA0MDU2LCAwLjAwNDEwNSwgMC4wMDQxNTQsIDAuMDA0MTgyLCAwLjAwNDIwOSIsIFwKLSAgICAgICAgICAiMC4wMDM2MTgsIDAuMDAzODY0LCAwLjAwMzk4OSwgMC4wMDQwNDQsIDAuMDA0MTAzLCAwLjAwNDEzNywgMC4wMDQxNzEiLCBcCi0gICAgICAgICAgIjAuMDAzNjA3LCAwLjAwMzgxOSwgMC4wMDM5NDIsIDAuMDA0MDAxLCAwLjAwNDA2NSwgMC4wMDQxMDMsIDAuMDA0MTQxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTM5MzMsIDAuMDEzOTU4LCAwLjAxMzk2LCAwLjAxMzk2MywgMC4wMTM5NjIsIDAuMDEzOTYzLCAwLjAxMzk2NCIsIFwKLSAgICAgICAgICAiMC4wMTM4MzcsIDAuMDEzOTY1LCAwLjAxMzk4NiwgMC4wMTM5OTMsIDAuMDEzOTk5LCAwLjAxNDAwMSwgMC4wMTQwMDQiLCBcCi0gICAgICAgICAgIjAuMDEzNzUsIDAuMDEzOTMsIDAuMDEzOTY5LCAwLjAxMzk3MiwgMC4wMTM5OTQsIDAuMDEzOTk5LCAwLjAxNDAwNCIsIFwKLSAgICAgICAgICAiMC4wMTM3NTUsIDAuMDEzOTIxLCAwLjAxMzk1OSwgMC4wMTM5NzQsIDAuMDEzOTg5LCAwLjAxMzk5NCwgMC4wMTQwMDMiLCBcCi0gICAgICAgICAgIjAuMDEzNzE3LCAwLjAxMzkzNSwgMC4wMTM5NjQsIDAuMDEzOTc3LCAwLjAxMzk5MywgMC4wMTM5OTQsIDAuMDE0MDA1IiwgXAotICAgICAgICAgICIwLjAxMzgyNCwgMC4wMTM5MSwgMC4wMTM5NSwgMC4wMTM5NjcsIDAuMDEzOTczLCAwLjAxMzk4OCwgMC4wMTM5OTciLCBcCi0gICAgICAgICAgIjAuMDEzODU1LCAwLjAxMzk4MiwgMC4wMTQwMDEsIDAuMDE0MDAyLCAwLjAxMzk5OCwgMC4wMTQwMDMsIDAuMDE0MDA2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQyLCAwLjAwNDI5MSwgMC4wMDQzMDQsIDAuMDA0MzA4LCAwLjAwNDMxMSwgMC4wMDQzMTMsIDAuMDA0MzE1IiwgXAotICAgICAgICAgICIwLjAwMzkxNSwgMC4wMDQxODUsIDAuMDA0MjQsIDAuMDA0MjU5LCAwLjAwNDI3NSwgMC4wMDQyOSwgMC4wMDQyOTIiLCBcCi0gICAgICAgICAgIjAuMDAzNzY3LCAwLjAwNDA4MiwgMC4wMDQxNzEsIDAuMDA0MjAyLCAwLjAwNDIzMywgMC4wMDQyNDksIDAuMDA0MjY0IiwgXAotICAgICAgICAgICIwLjAwMzY5NywgMC4wMDQwMDEsIDAuMDA0MTExLCAwLjAwNDE1MywgMC4wMDQxOTQsIDAuMDA0MjE2LCAwLjAwNDIzNyIsIFwKLSAgICAgICAgICAiMC4wMDM2NjQsIDAuMDAzOTM0LCAwLjAwNDA2LCAwLjAwNDEwOSwgMC4wMDQxNTgsIDAuMDA0MTg2LCAwLjAwNDIxMiIsIFwKLSAgICAgICAgICAiMC4wMDM2NDgsIDAuMDAzODcyLCAwLjAwMzk5NSwgMC4wMDQwNSwgMC4wMDQxMDgsIDAuMDA0MTQyLCAwLjAwNDE3NiIsIFwKLSAgICAgICAgICAiMC4wMDM2NjQsIDAuMDAzODM3LCAwLjAwMzk1NSwgMC4wMDQwMTEsIDAuMDA0MDczLCAwLjAwNDExLCAwLjAwNDE0OCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkQiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEwNjU4LCAwLjAxMDczOSwgMC4wMTA3NDYsIDAuMDEwNzUxLCAwLjAxMDc1MSwgMC4wMTA3NTMsIDAuMDEwNzU0IiwgXAotICAgICAgICAgICIwLjAxMDU1NywgMC4wMTA3NzQsIDAuMDEwODA2LCAwLjAxMDgyMSwgMC4wMTA4MywgMC4wMTA4MzQsIDAuMDEwODQxIiwgXAotICAgICAgICAgICIwLjAxMDQ2NCwgMC4wMTA3NDgsIDAuMDEwNzk0LCAwLjAxMDgxMSwgMC4wMTA4MywgMC4wMTA4MzksIDAuMDEwODQ1IiwgXAotICAgICAgICAgICIwLjAxMDQ2NywgMC4wMTA3MTcsIDAuMDEwNzc4LCAwLjAxMDgwOSwgMC4wMTA4MjIsIDAuMDEwODM4LCAwLjAxMDg0NCIsIFwKLSAgICAgICAgICAiMC4wMTA0MywgMC4wMTA3MDksIDAuMDEwNzg1LCAwLjAxMDgwNiwgMC4wMTA4MjEsIDAuMDEwODMxLCAwLjAxMDg0NyIsIFwKLSAgICAgICAgICAiMC4wMTA2MzgsIDAuMDEwNzI5LCAwLjAxMDc4MiwgMC4wMTA4MDMsIDAuMDEwODIzLCAwLjAxMDgzLCAwLjAxMDgzMSIsIFwKLSAgICAgICAgICAiMC4wMTA1OTYsIDAuMDEwNzI0LCAwLjAxMDc3NywgMC4wMTA3OTUsIDAuMDEwODE3LCAwLjAxMDgyNCwgMC4wMTA4MzgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDE3NywgMC4wMDQyODQsIDAuMDA0MywgMC4wMDQzMDUsIDAuMDA0MzA5LCAwLjAwNDMxMSwgMC4wMDQzMTMiLCBcCi0gICAgICAgICAgIjAuMDAzODc3LCAwLjAwNDE2OSwgMC4wMDQyMzYsIDAuMDA0MjUxLCAwLjAwNDI2OSwgMC4wMDQyNzksIDAuMDA0Mjg4IiwgXAotICAgICAgICAgICIwLjAwMzc0NSwgMC4wMDQwNTUsIDAuMDA0MTUyLCAwLjAwNDE4OCwgMC4wMDQyMjEsIDAuMDA0MjQsIDAuMDA0MjU3IiwgXAotICAgICAgICAgICIwLjAwMzc0NiwgMC4wMDM5ODgsIDAuMDA0MDk4LCAwLjAwNDE0NiwgMC4wMDQxODQsIDAuMDA0MjA3LCAwLjAwNDIzIiwgXAotICAgICAgICAgICIwLjAwMzgxLCAwLjAwMzk1NywgMC4wMDQwNjIsIDAuMDA0MTA4LCAwLjAwNDE1NiwgMC4wMDQxODMsIDAuMDA0MjA5IiwgXAotICAgICAgICAgICIwLjAwNDAyNywgMC4wMDM5NzQsIDAuMDA0MDQxLCAwLjAwNDA4NywgMC4wMDQxMzMsIDAuMDA0MTYxLCAwLjAwNDE5IiwgXAotICAgICAgICAgICIwLjAwNDA4MSwgMC4wMDM5NTQsIDAuMDA0MDE1LCAwLjAwNDA1MywgMC4wMDQxMDEsIDAuMDA0MTMyLCAwLjAwNDE2MyIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IE5PUjJCWDEgKgotICogLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoTk9SMkJYMSkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjA5MjQ5NDE7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEFOKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA1OTMzNTQ7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNTkzMjAxOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDU5MzM1NDsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA0NzQsIDAuMDAwNDQ4LCAwLjAwMDQ0NSwgMC4wMDA0NTQsIDAuMDAwNDY1LCAwLjAwMDQ5MSwgMC4wMDA1MTYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDE0NzQsIDAuMDAxNDUzLCAwLjAwMTQ0OSwgMC4wMDE0NTMsIDAuMDAxNDY1LCAwLjAwMTQ4OSwgMC4wMDE1MTMiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDkzNTA2ODsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA5MzUwNjg7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwOTM0OTc1OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDEyNSwgMC4wMDAxMjUsIDAuMDAwMTI1LCAwLjAwMDEyNSwgMC4wMDAxMjUsIDAuMDAwMTI1LCAwLjAwMDEyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDM2MywgMC4wMDAzNjMsIDAuMDAwMzYzLCAwLjAwMDM2MywgMC4wMDAzNjMsIDAuMDAwMzYzLCAwLjAwMDM2MyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjE0MTQxODsKLSAgICBmdW5jdGlvbiA6ICIoISgoIUFOKStCKSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkFOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDcsIDAuMTUzNjU1LCAwLjQxODM2MSwgMC42NTE5MjcsIDAuOTYzNTUyLCAxLjU4Njc1LCAxLjk3NDYxIiwgXAotICAgICAgICAgICIwLjExNzE3NCwgMC4xNjM4NCwgMC40Mjg5NiwgMC42NjI0OTUsIDAuOTczMjAyLCAxLjU5NjY5LCAxLjk4NTgiLCBcCi0gICAgICAgICAgIjAuMTI4NDMzLCAwLjE3NTIxNywgMC40Mzk4NTEsIDAuNjczNjk1LCAwLjk4NDg2MSwgMS42MDc3OCwgMS45OTgzNSIsIFwKLSAgICAgICAgICAiMC4xMzc2MTEsIDAuMTg0MzcyLCAwLjQ0OTExOCwgMC42ODI1NzgsIDAuOTkzOTQsIDEuNjE3LCAyLjAwNzE2IiwgXAotICAgICAgICAgICIwLjE0NTI5MywgMC4xOTIwNDQsIDAuNDU2ODgsIDAuNjkwNTU2LCAxLjAwMjE3LCAxLjYyNDg4LCAyLjAxNDU1IiwgXAotICAgICAgICAgICIwLjE1NTg5NCwgMC4yMDI2MTQsIDAuNDY3NjM0LCAwLjcwMTM2MiwgMS4wMTIzLCAxLjYzNTA2LCAyLjAyNDY0IiwgXAotICAgICAgICAgICIwLjE2NDExMiwgMC4yMTA4NDMsIDAuNDc1NTg3LCAwLjcwOTAxLCAxLjAyMDc1LCAxLjY0NDI2LCAyLjAzMjE5Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE3MzYzLCAwLjI2NzcyMywgMC44MDY0NjMsIDEuMjgxNCwgMS45MDk5MywgMy4xNzIwNywgMy45NzE1IiwgXAotICAgICAgICAgICIwLjE3MzYyMiwgMC4yNjgwNDQsIDAuODA0ODkyLCAxLjI3OCwgMS45MTQyNCwgMy4xNzM3NiwgMy45NjIyMyIsIFwKLSAgICAgICAgICAiMC4xNzM2MzgsIDAuMjY3OTM0LCAwLjgwNTkyLCAxLjI3ODcsIDEuOTExMjgsIDMuMTcyOTcsIDMuOTYyODMiLCBcCi0gICAgICAgICAgIjAuMTczNjM5LCAwLjI2ODAwMiwgMC44MDY1NTIsIDEuMjc5MDYsIDEuOTEwOTMsIDMuMTcyOTcsIDMuOTYwOSIsIFwKLSAgICAgICAgICAiMC4xNzM1ODUsIDAuMjY4NTcxLCAwLjgwNDczMSwgMS4yNzgyNCwgMS45MDk0LCAzLjE3MjkyLCAzLjk2MTI4IiwgXAotICAgICAgICAgICIwLjE3MzQ4MSwgMC4yNjgxNjMsIDAuODA0NDE2LCAxLjI3ODI4LCAxLjkxMzk5LCAzLjE3NDg0LCAzLjk2MjAzIiwgXAotICAgICAgICAgICIwLjE3MzQ3NSwgMC4yNjgxOTQsIDAuODA1MDA4LCAxLjI4MDEsIDEuOTA5NjIsIDMuMTcxNzcsIDMuOTY4NTYiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY4MTA1LCAwLjA5MjkzNCwgMC4yMzMyMywgMC4zNTY5NywgMC41MjE4NjksIDAuODUyMTA1LCAxLjA1NzQ4IiwgXAotICAgICAgICAgICIwLjA3Nzk2NCwgMC4xMDI3ODQsIDAuMjQzMTM3LCAwLjM2Njg5MSwgMC41MzE3NywgMC44NjE3MzMsIDEuMDY4MTUiLCBcCi0gICAgICAgICAgIjAuMDg4NjUsIDAuMTEzNDcsIDAuMjUzNzc0LCAwLjM3NzUyOSwgMC41NDI1OTcsIDAuODcyNjAzLCAxLjA3ODgxIiwgXAotICAgICAgICAgICIwLjA5NzM1OCwgMC4xMjIxNzcsIDAuMjYyNTMyLCAwLjM4NjIzMSwgMC41NTExNjksIDAuODgxNDAyLCAxLjA4NzEzIiwgXAotICAgICAgICAgICIwLjEwNDQ1OSwgMC4xMjkyNTksIDAuMjY5NTI1LCAwLjM5MzI1LCAwLjU1ODM3MSwgMC44ODgwODgsIDEuMDk0NTIiLCBcCi0gICAgICAgICAgIjAuMTE0MjU2LCAwLjEzOTE1NiwgMC4yNzkzNzcsIDAuNDAyNDA5LCAwLjU2ODE0LCAwLjg5Nzg1MSwgMS4xMDM0OSIsIFwKLSAgICAgICAgICAiMC4xMjE3NzIsIDAuMTQ2NTI5LCAwLjI4NjcwOSwgMC40MTAzOTEsIDAuNTc1Mzk4LCAwLjkwNTIxNiwgMS4xMTE1MSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTM0NCwgMC4xNDI5ODEsIDAuNDI0NjM3LCAwLjY3MzA4NCwgMS4wMDQ0NywgMS42Njc5NCwgMi4wODEwMiIsIFwKLSAgICAgICAgICAiMC4wOTM1LCAwLjE0MjkxNCwgMC40MjQ1MzMsIDAuNjczMTEzLCAxLjAwNDc4LCAxLjY2NzQ3LCAyLjA4MjUyIiwgXAotICAgICAgICAgICIwLjA5MzY0OCwgMC4xNDMwMDEsIDAuNDI0NDIsIDAuNjcyOTg0LCAxLjAwNDg0LCAxLjY2ODE0LCAyLjA4MjU5IiwgXAotICAgICAgICAgICIwLjA5NDEwNywgMC4xNDMyMzksIDAuNDI0NTIzLCAwLjY3MzE4NCwgMS4wMDQ3MSwgMS42Njg2NCwgMi4wODEzMSIsIFwKLSAgICAgICAgICAiMC4wOTQ0MjUsIDAuMTQzNDc5LCAwLjQyNDQ5MSwgMC42NzI5OCwgMS4wMDQ3MSwgMS42Njc2MSwgMi4wODE4MSIsIFwKLSAgICAgICAgICAiMC4wOTUwNzIsIDAuMTQzODYyLCAwLjQyNDYxNCwgMC42NzMxNzksIDEuMDA0NjUsIDEuNjY3MTQsIDIuMDgxNjMiLCBcCi0gICAgICAgICAgIjAuMDk1NTYxLCAwLjE0NDA5NiwgMC40MjQ3MDIsIDAuNjczMTE1LCAxLjAwNDUzLCAxLjY2NzM5LCAyLjA4MjYzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4ODY1NywgMC4xMzUzNDcsIDAuNDAwNDYxLCAwLjYzMzgxMiwgMC45NDU3MjQsIDEuNTY5MjYsIDEuOTU3NjMiLCBcCi0gICAgICAgICAgIjAuMDk3NTYxLCAwLjE0NDQyNywgMC40MDk0ODIsIDAuNjQyNTY5LCAwLjk1NDIwOCwgMS41Nzc5LCAxLjk2NjIiLCBcCi0gICAgICAgICAgIjAuMTA4ODM5LCAwLjE1NTQyMywgMC40MjA0NzEsIDAuNjUzOTQzLCAwLjk2NTc5NCwgMS41ODg4NiwgMS45NzgzIiwgXAotICAgICAgICAgICIwLjEyMDMzNCwgMC4xNjcxODIsIDAuNDMxOTg3LCAwLjY2NTY1OSwgMC45Nzc0MzUsIDEuNjAwMzcsIDEuOTg4NjMiLCBcCi0gICAgICAgICAgIjAuMTMxOTQxLCAwLjE3ODU5MiwgMC40NDM2MDUsIDAuNjc3MjEyLCAwLjk4ODU5NywgMS42MTIzNywgMi4wMDIwNyIsIFwKLSAgICAgICAgICAiMC4xNTA3NTksIDAuMTk3MDc5LCAwLjQ2MDQ3OCwgMC42OTU5MTQsIDEuMDA2ODEsIDEuNjI5NywgMi4wMTkxOCIsIFwKLSAgICAgICAgICAiMC4xNjY5ODgsIDAuMjEzMzY4LCAwLjQ3Nzg1MywgMC43MTE2MjQsIDEuMDIyOTYsIDEuNjQ2MDEsIDIuMDM0OTkiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTczMjE3LCAwLjI2ODU1NiwgMC44MDQ5ODcsIDEuMjc4NDcsIDEuOTEwMTEsIDMuMTczOTIsIDMuOTYxNyIsIFwKLSAgICAgICAgICAiMC4xNzMyMDUsIDAuMjY3ODg1LCAwLjgwNDg4OCwgMS4yNzkwMywgMS45MDk3MSwgMy4xNzE5NiwgMy45NzIzNCIsIFwKLSAgICAgICAgICAiMC4xNzQzMTQsIDAuMjY4NTgzLCAwLjgwNTIwNCwgMS4yNzkxMiwgMS45MDk2NSwgMy4xNzIyNiwgMy45NjEyOSIsIFwKLSAgICAgICAgICAiMC4xNzg1OTcsIDAuMjcwMTQ2LCAwLjgwNjQ2MSwgMS4yNzgyMiwgMS45MDk0LCAzLjE3MjM0LCAzLjk3MTkiLCBcCi0gICAgICAgICAgIjAuMTg0MDEsIDAuMjczMjk5LCAwLjgwNDcxMSwgMS4yNzgzOSwgMS45MDk3OSwgMy4xNzIyMiwgMy45NjI4NyIsIFwKLSAgICAgICAgICAiMC4xOTQ2MjYsIDAuMjgxMTE2LCAwLjgwNTEyMiwgMS4yNzgwMiwgMS45MTQwMywgMy4xNzUxMSwgMy45NjIzMiIsIFwKLSAgICAgICAgICAiMC4yMDU3MjIsIDAuMjkwMTMzLCAwLjgwNzM4NSwgMS4yNzgyMiwgMS45MTQzLCAzLjE3MjkyLCAzLjk2NTExIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0ODcwMiwgMC4wNzM0MzksIDAuMjEzNzI4LCAwLjMzNzQ5MywgMC41MDIyOTQsIDAuODMyMjQ0LCAxLjAzODc1IiwgXAotICAgICAgICAgICIwLjA1ODgyMiwgMC4wODM2OCwgMC4yMjM5MTQsIDAuMzQ3NTI0LCAwLjUxMjQyMiwgMC44NDIxNjYsIDEuMDQ4MjkiLCBcCi0gICAgICAgICAgIjAuMDcxODg1LCAwLjA5NjM3MywgMC4yMzY2NzksIDAuMzYwMzU3LCAwLjUyNTM5OSwgMC44NTUxMzgsIDEuMDYyMDMiLCBcCi0gICAgICAgICAgIjAuMDg0NzAzLCAwLjEwODk0OCwgMC4yNDk1MTMsIDAuMzcyOTA4LCAwLjUzNzc2MSwgMC44NjcyMzIsIDEuMDcyMDgiLCBcCi0gICAgICAgICAgIjAuMDk3NjUzLCAwLjEyMjM2MiwgMC4yNjIyLCAwLjM4NTkyLCAwLjU1MDc2MiwgMC44Nzg2NjYsIDEuMDg0ODkiLCBcCi0gICAgICAgICAgIjAuMTE2NTE3LCAwLjE0MzQwNCwgMC4yODIzNjYsIDAuNDA2NDEyLCAwLjU3MTA2NCwgMC45MDA3NzYsIDEuMTA2ODciLCBcCi0gICAgICAgICAgIjAuMTMwNjQ1LCAwLjE2MDkyOSwgMC4zMDAzNTQsIDAuNDI0NjEyLCAwLjU4OTQwNywgMC45MTg2OTYsIDEuMTI0ODQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg5OTg2LCAwLjE0MDA2MywgMC40MjE1OTUsIDAuNjcwMjc3LCAxLjAwMzA5LCAxLjY2NTg0LCAyLjA4MTI3IiwgXAotICAgICAgICAgICIwLjA5MDMxOCwgMC4xMzk3MTksIDAuNDIxNjgzLCAwLjY3MDMzNywgMS4wMDIwMiwgMS42NjU2NiwgMi4wNzk4MyIsIFwKLSAgICAgICAgICAiMC4wOTM4OTMsIDAuMTQxMjEzLCAwLjQyMTc1NSwgMC42NzA3NDYsIDEuMDAyNzEsIDEuNjY3MzUsIDIuMDgyMjIiLCBcCi0gICAgICAgICAgIjAuMTAwMDk3LCAwLjE0NjEsIDAuNDIxNzIzLCAwLjY3MDU5LCAxLjAwMTk3LCAxLjY2NTQ5LCAyLjA4MDQ4IiwgXAotICAgICAgICAgICIwLjEwNzU4OCwgMC4xNTEzNzgsIDAuNDIzMjQ1LCAwLjY3MDc2MiwgMS4wMDMzOCwgMS42NjUyMywgMi4wODE3MSIsIFwKLSAgICAgICAgICAiMC4xMjExNjYsIDAuMTYyNzU5LCAwLjQyNjg3MiwgMC42NzE5OCwgMS4wMDQwNywgMS42NjQ5OCwgMi4wODQ4OSIsIFwKLSAgICAgICAgICAiMC4xMzQ3NjgsIDAuMTczODU2LCAwLjQzMjE2NiwgMC42NzIyMjksIDEuMDAyMTksIDEuNjY0NzcsIDIuMDgwODciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxODY2LCAwLjAwMTg2NiwgMC4wMDE4NjcsIDAuMDAxODY3LCAwLjAwMTg2NywgMC4wMDE4NjcsIDAuMDAxODY3IiwgXAotICAgICAgICAgICIwLjAwMTgzOCwgMC4wMDE4NCwgMC4wMDE4NDIsIDAuMDAxODQyLCAwLjAwMTg0MiwgMC4wMDE4NDQsIDAuMDAxODQyIiwgXAotICAgICAgICAgICIwLjAwMTg0LCAwLjAwMTg0MywgMC4wMDE4NDYsIDAuMDAxODQ3LCAwLjAwMTg0OCwgMC4wMDE4NDgsIDAuMDAxODQ4IiwgXAotICAgICAgICAgICIwLjAwMTg0MSwgMC4wMDE4NDUsIDAuMDAxODUsIDAuMDAxODUyLCAwLjAwMTg1MiwgMC4wMDE4NTIsIDAuMDAxODUyIiwgXAotICAgICAgICAgICIwLjAwMTg1MSwgMC4wMDE4NTUsIDAuMDAxODYxLCAwLjAwMTg2MiwgMC4wMDE4NjMsIDAuMDAxODYzLCAwLjAwMTg2MyIsIFwKLSAgICAgICAgICAiMC4wMDE4NzUsIDAuMDAxODc4LCAwLjAwMTg4NiwgMC4wMDE4ODcsIDAuMDAxODg4LCAwLjAwMTg4OCwgMC4wMDE4ODkiLCBcCi0gICAgICAgICAgIjAuMDAxODk2LCAwLjAwMTkwMSwgMC4wMDE5MDksIDAuMDAxOTEsIDAuMDAxOTA4LCAwLjAwMTkxMiwgMC4wMDE5MTIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDIyMjgsIDAuMDAyMjI5LCAwLjAwMjIzLCAwLjAwMjIzLCAwLjAwMjIzLCAwLjAwMjIzLCAwLjAwMjIzIiwgXAotICAgICAgICAgICIwLjAwMjIwNCwgMC4wMDIyMDcsIDAuMDAyMjA5LCAwLjAwMjIxLCAwLjAwMjIxLCAwLjAwMjIxLCAwLjAwMjIxIiwgXAotICAgICAgICAgICIwLjAwMjIwNCwgMC4wMDIyMDcsIDAuMDAyMjExLCAwLjAwMjIxMSwgMC4wMDIyMTIsIDAuMDAyMjEyLCAwLjAwMjIxMiIsIFwKLSAgICAgICAgICAiMC4wMDIyMDUsIDAuMDAyMjA3LCAwLjAwMjIxMiwgMC4wMDIyMTMsIDAuMDAyMjEzLCAwLjAwMjIxMywgMC4wMDIyMTQiLCBcCi0gICAgICAgICAgIjAuMDAyMjE2LCAwLjAwMjIxOSwgMC4wMDIyMjUsIDAuMDAyMjI1LCAwLjAwMjIyNiwgMC4wMDIyMjYsIDAuMDAyMjI2IiwgXAotICAgICAgICAgICIwLjAwMjIzNiwgMC4wMDIyNCwgMC4wMDIyNDcsIDAuMDAyMjQxLCAwLjAwMjI0OCwgMC4wMDIyNSwgMC4wMDIyNDIiLCBcCi0gICAgICAgICAgIjAuMDAyMjUyLCAwLjAwMjI2LCAwLjAwMjI2NywgMC4wMDIyNjksIDAuMDAyMjY4LCAwLjAwMjI2OCwgMC4wMDIyNyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTUwNywgMC4wMDE1MSwgMC4wMDE1MTIsIDAuMDAxNTEzLCAwLjAwMTUxMywgMC4wMDE1MTQsIDAuMDAxNTE0IiwgXAotICAgICAgICAgICIwLjAwMTQ4NiwgMC4wMDE0OTUsIDAuMDAxNTA3LCAwLjAwMTUwOSwgMC4wMDE1MSwgMC4wMDE1MTIsIDAuMDAxNTEyIiwgXAotICAgICAgICAgICIwLjAwMTQ3MiwgMC4wMDE0ODMsIDAuMDAxNTAxLCAwLjAwMTUwNSwgMC4wMDE1MDgsIDAuMDAxNTEsIDAuMDAxNTExIiwgXAotICAgICAgICAgICIwLjAwMTQ2NiwgMC4wMDE0NzYsIDAuMDAxNDk3LCAwLjAwMTUwMiwgMC4wMDE1MDYsIDAuMDAxNTA5LCAwLjAwMTUwOSIsIFwKLSAgICAgICAgICAiMC4wMDE0NjYsIDAuMDAxNDc0LCAwLjAwMTQ5NCwgMC4wMDE1LCAwLjAwMTUwNCwgMC4wMDE1MDcsIDAuMDAxNTA5IiwgXAotICAgICAgICAgICIwLjAwMTQ3NSwgMC4wMDE0NzYsIDAuMDAxNDg5LCAwLjAwMTQ5OCwgMC4wMDE1MDIsIDAuMDAxNTA2LCAwLjAwMTUwOCIsIFwKLSAgICAgICAgICAiMC4wMDE0ODgsIDAuMDAxNDgzLCAwLjAwMTQ5MiwgMC4wMDE0OTcsIDAuMDAxNTAxLCAwLjAwMTUwNiwgMC4wMDE1MDciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMCwgMC4wMDAwMDMsIDAuMDAwMDA2LCAwLjAwMDAwNywgMC4wMDAwMDcsIDAuMDAwMDA4LCAwLjAwMDAwOCIsIFwKLSAgICAgICAgICAiMC4wMDAwMTQsIDAuMDAwMDAzLCAwLjAwMDAxMiwgMC4wMDAwMTUsIDAuMDAwMDE2LCAwLjAwMDAxNywgMC4wMDAwMTgiLCBcCi0gICAgICAgICAgIjAuMDAwMDMzLCAwLjAwMDAxOCwgMC4wMDAwMDcsIDAuMDAwMDEyLCAwLjAwMDAxNSwgMC4wMDAwMTcsIDAuMDAwMDE4IiwgXAotICAgICAgICAgICIwLjAwMDAzNiwgMC4wMDAwMjMsIDAuMDAwMDAzLCAwLjAwMDAxLCAwLjAwMDAxNCwgMC4wMDAwMTgsIDAuMDAwMDIiLCBcCi0gICAgICAgICAgIjAuMDAwMDM5LCAwLjAwMDAyNiwgMC4wMDAwMDEsIDAuMDAwMDA3LCAwLjAwMDAxMiwgMC4wMDAwMTcsIDAuMDAwMDE5IiwgXAotICAgICAgICAgICIwLjAwMDAzNywgMC4wMDAwMjcsIDAuMDAwMDAzLCAwLjAwMDAwNiwgMC4wMDAwMTEsIDAuMDAwMDE1LCAwLjAwMDAxNyIsIFwKLSAgICAgICAgICAiMC4wMDAwMjgsIDAuMDAwMDIzLCAwLjAwMDAwNCwgMC4wMDAwMDUsIDAuMDAwMDEsIDAuMDAwMDE1LCAwLjAwMDAxNiIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IE5PUjJCWDIgKgotICogLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoTk9SMkJYMikgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjE2MjY1NDsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQU4pICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYwMzIzODsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MDMwMjY7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjAzMjM4OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDkwNywgMC4wMDA4ODMsIDAuMDAwODc1LCAwLjAwMDg4MSwgMC4wMDA4ODksIDAuMDAwOTExLCAwLjAwMDkzMiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjIwMSwgMC4wMDIxODIsIDAuMDAyMTc0LCAwLjAwMjE3OSwgMC4wMDIxODcsIDAuMDAyMjA5LCAwLjAwMjIyNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNjY3Mzk7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNjY3MTM7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNjY3Mzk7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjUsIDAuMDAwMjUsIDAuMDAwMjUsIDAuMDAwMjUsIDAuMDAwMjUsIDAuMDAwMjUsIDAuMDAwMjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA3NjMsIDAuMDAwNzYzLCAwLjAwMDc2MywgMC4wMDA3NjMsIDAuMDAwNzYzLCAwLjAwMDc2MywgMC4wMDA3NjMiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4yODU2OTY7Ci0gICAgZnVuY3Rpb24gOiAiKCEoKCFBTikrQikpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc3MDA0LCAwLjI3MDkwNCwgMC40MjU4OTksIDAuNjIwMTExLCAwLjgxNDI2OCwgMS4wMDc5MywgMS4yMDI1IiwgXAotICAgICAgICAgICIwLjA4NzE4LCAwLjI4MTEwOCwgMC40MzY0NTMsIDAuNjMwMzEsIDAuODI0NjkyLCAxLjAxODc1LCAxLjIxMjA3IiwgXAotICAgICAgICAgICIwLjA5OTc1OCwgMC4yOTM4MzgsIDAuNDQ5MTI3LCAwLjY0MjkyNywgMC44MzYzODksIDEuMDMxNjgsIDEuMjI0NTQiLCBcCi0gICAgICAgICAgIjAuMTEwOTAyLCAwLjMwNTAzMiwgMC40NjAyMjYsIDAuNjU0ODAyLCAwLjg0ODAyOCwgMS4wNDIzMywgMS4yMzU5MSIsIFwKLSAgICAgICAgICAiMC4xMjA1NTgsIDAuMzE0ODM1LCAwLjQ3MDEyNSwgMC42NjM5MSwgMC44NTc2MTYsIDEuMDUxNjUsIDEuMjQ2MTIiLCBcCi0gICAgICAgICAgIjAuMTMzODYzLCAwLjMyODA5NywgMC40ODMzMTksIDAuNjc3MjUzLCAwLjg3MTEyOCwgMS4wNjU4LCAxLjI1ODg3IiwgXAotICAgICAgICAgICIwLjE0NDE1NywgMC4zMzgyOTEsIDAuNDkzNjY3LCAwLjY4NzQ0NiwgMC44ODE4NiwgMS4wNzY0MSwgMS4yNjkyNSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTQ4NzIsIDAuNDg2NjIxLCAwLjgwMDMxOSwgMS4xOTY5OCwgMS41ODczNCwgMS45ODI5OCwgMi4zNzI1NyIsIFwKLSAgICAgICAgICAiMC4wOTQ4NjksIDAuNDg2NzEyLCAwLjgwMzM1LCAxLjE5Njk4LCAxLjU4NjksIDEuOTc5NjMsIDIuMzc0NjQiLCBcCi0gICAgICAgICAgIjAuMDk0OSwgMC40ODgyMzksIDAuODAxMzk0LCAxLjE5NjkxLCAxLjU4NzgzLCAxLjk4MDQxLCAyLjM3NDI2IiwgXAotICAgICAgICAgICIwLjA5NTA2MywgMC40ODgxMzIsIDAuODAzMTkzLCAxLjE5NDY2LCAxLjU4OTY3LCAxLjk4MDI2LCAyLjM3NDM1IiwgXAotICAgICAgICAgICIwLjA5NTM3NiwgMC40ODcwOTEsIDAuODAxMjQ1LCAxLjE5NzE3LCAxLjU4OCwgMS45ODI4NCwgMi4zNzI3OCIsIFwKLSAgICAgICAgICAiMC4wOTU4MjUsIDAuNDg4MzcyLCAwLjgwMTM3NCwgMS4xOTcxMiwgMS41OTA3LCAxLjk3OTU3LCAyLjM3Nzk4IiwgXAotICAgICAgICAgICIwLjA5NjU3LCAwLjQ4ODIwNiwgMC44MDE1MTQsIDEuMTk2ODMsIDEuNTg2ODgsIDEuOTc5OTYsIDIuMzc4MDgiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU3NjAyLCAwLjE2MTMyMywgMC4yNDM4NDYsIDAuMzQ2OTc3LCAwLjQ1MDE0MywgMC41NTMyNzUsIDAuNjU2MzE2IiwgXAotICAgICAgICAgICIwLjA2NzQ5OSwgMC4xNzExMzYsIDAuMjUzNjk2LCAwLjM1Njc4NiwgMC40NTk5MjgsIDAuNTYzMDA2LCAwLjY2NjE0NCIsIFwKLSAgICAgICAgICAiMC4wNzk2MTksIDAuMTgzMjQ2LCAwLjI2NTc2OCwgMC4zNjg5MjksIDAuNDcyMDk2LCAwLjU3NTEyNywgMC42NzgyMDkiLCBcCi0gICAgICAgICAgIjAuMDkwMjQsIDAuMTkzODE4LCAwLjI3NjM0NywgMC4zNzk0OTQsIDAuNDgyNzA4LCAwLjU4NTgyNywgMC42ODg3OTUiLCBcCi0gICAgICAgICAgIjAuMDk5Mzc2LCAwLjIwMjU4NCwgMC4yODUxLCAwLjM4ODIxOSwgMC40OTEzNzksIDAuNTk0NTA2LCAwLjY5NzUzMiIsIFwKLSAgICAgICAgICAiMC4xMTE4MzcsIDAuMjE0NTU2LCAwLjI5NzA0LCAwLjQwMDE5NywgMC41MDMyODYsIDAuNjA2NDA2LCAwLjcwOTQ3MiIsIFwKLSAgICAgICAgICAiMC4xMjE2ODcsIDAuMjI1NTA4LCAwLjMwNzg5OCwgMC40MTEwMiwgMC41MTQxNSwgMC42MTczNywgMC43MjAzMjMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU0ODU1LCAwLjI1OTgwMSwgMC40MjUzMjksIDAuNjMyNDg0LCAwLjgzOTg1NSwgMS4wNDcwNywgMS4yNTQwOCIsIFwKLSAgICAgICAgICAiMC4wNTQ4MzcsIDAuMjU5NzY1LCAwLjQyNTMxOSwgMC42MzI3MDgsIDAuODM5NzEzLCAxLjA0Njg1LCAxLjI1NDQzIiwgXAotICAgICAgICAgICIwLjA1NTAyMSwgMC4yNTk4MzEsIDAuNDI1MzE4LCAwLjYzMjcxMywgMC44Mzk3NTQsIDEuMDQ3MDcsIDEuMjU0MTQiLCBcCi0gICAgICAgICAgIjAuMDU1NzAzLCAwLjI1OTg3OCwgMC40MjU0NzcsIDAuNjMyNDI1LCAwLjgzOTc4NSwgMS4wNDcwNiwgMS4yNTQxMiIsIFwKLSAgICAgICAgICAiMC4wNTY1NTcsIDAuMjU5OTQyLCAwLjQyNTMxMSwgMC42MzI3MDcsIDAuODM5NzM0LCAxLjA0NzAyLCAxLjI1NDU1IiwgXAotICAgICAgICAgICIwLjA1Nzk3NCwgMC4yNjAzNTUsIDAuNDI1NjA1LCAwLjYzMjYyNywgMC44Mzk1OTksIDEuMDQ2OTcsIDEuMjU0NTIiLCBcCi0gICAgICAgICAgIjAuMDU5MjA4LCAwLjI2MDU2MSwgMC40MjU1OCwgMC42MzI1MDUsIDAuODM5ODA0LCAxLjA0NzA5LCAxLjI1NDI5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0OTU3NSwgMC4yNDM2MTgsIDAuMzk4OTQ3LCAwLjU5MjkzOSwgMC43ODY4MTEsIDAuOTgwNzc1LCAxLjE3NDg2IiwgXAotICAgICAgICAgICIwLjA1ODQ4MiwgMC4yNTI3OTYsIDAuNDA3OTE3LCAwLjYwMTgyMSwgMC43OTU3MDIsIDAuOTkwMDU2LCAxLjE4NDgiLCBcCi0gICAgICAgICAgIjAuMDY5NzQsIDAuMjY0MDI4LCAwLjQxOTE5NiwgMC42MTI3ODksIDAuODA3NTc3LCAxLjAwMDk4LCAxLjE5NTY0IiwgXAotICAgICAgICAgICIwLjA4MTQ4NCwgMC4yNzU3NzEsIDAuNDMxMSwgMC42MjQ5NCwgMC44MTg4MzMsIDEuMDEzMDMsIDEuMjA3MTUiLCBcCi0gICAgICAgICAgIjAuMDkyOTU3LCAwLjI4Njk3MiwgMC40NDIxOTgsIDAuNjM2MDk4LCAwLjgzMDA1OCwgMS4wMjQwMSwgMS4yMTg2OSIsIFwKLSAgICAgICAgICAiMC4xMDg5NjEsIDAuMzA1NDI0LCAwLjQ1OTMzOCwgMC42NTQ1MSwgMC44NDg0ODIsIDEuMDQyNDYsIDEuMjM3MjMiLCBcCi0gICAgICAgICAgIjAuMTIwNjU5LCAwLjMyMTQ3NCwgMC40NzY2NTgsIDAuNjcxMDY5LCAwLjg2NTI5MywgMS4wNTkwMywgMS4yNTI1OSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTQxOTEsIDAuNDg4MTQ5LCAwLjgwMTM2NSwgMS4xOTQzLCAxLjU4ODgyLCAxLjk3OTk4LCAyLjM3Mjk5IiwgXAotICAgICAgICAgICIwLjA5NDQxOSwgMC40ODcwODcsIDAuODAzMTM2LCAxLjE5NjgzLCAxLjU5MDUzLCAxLjk4MDExLCAyLjM3MzU0IiwgXAotICAgICAgICAgICIwLjA5ODgwNiwgMC40ODc0NzEsIDAuODAzMTM5LCAxLjE5NDY2LCAxLjU4Njg3LCAxLjk4MzE3LCAyLjM3MjQ5IiwgXAotICAgICAgICAgICIwLjEwNTI4LCAwLjQ4OTY2NiwgMC44MDE0NzMsIDEuMTk2OTQsIDEuNTkwNjUsIDEuOTgwMTYsIDIuMzczMTciLCBcCi0gICAgICAgICAgIjAuMTEzMTM4LCAwLjQ4NzY4OSwgMC44MDMxNDEsIDEuMTk1ODgsIDEuNTg4MiwgMS45ODQzNywgMi4zNzI0NSIsIFwKLSAgICAgICAgICAiMC4xMjc0NjYsIDAuNDkxNjExLCAwLjgwMTM2NCwgMS4xOTcxMiwgMS41ODk2NywgMS45ODQzNywgMi4zNzIyNyIsIFwKLSAgICAgICAgICAiMC4xNDAyODcsIDAuNDk2MDA2LCAwLjgwNDE2NywgMS4xOTQwNywgMS41ODc0MywgMS45Nzk4NCwgMi4zNzg0MSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjg4NzUsIDAuMTM0ODA1LCAwLjIxOTU3NywgMC4zMjU1MjEsIDAuNDMxMDQ1LCAwLjUzNzM5MywgMC42NDI5MjIiLCBcCi0gICAgICAgICAgIjAuMDM5MDY3LCAwLjE0NDk2NCwgMC4yMjk2ODYsIDAuMzM1NDU4LCAwLjQ0MTIyLCAwLjU0NzEzOCwgMC42NTI4OTEiLCBcCi0gICAgICAgICAgIjAuMDUxOTE0LCAwLjE1Nzc1NywgMC4yNDIyODUsIDAuMzQ4Mjc4LCAwLjQ1MzA1NiwgMC41NTg2NDUsIDAuNjY0NDgzIiwgXAotICAgICAgICAgICIwLjA2NDA2NywgMC4xNzA3MTksIDAuMjU1MzkxLCAwLjM2MTMsIDAuNDY3MTcsIDAuNTcyODc5LCAwLjY3OTIyNCIsIFwKLSAgICAgICAgICAiMC4wNzQwNzEsIDAuMTgyOTUzLCAwLjI2NzkyLCAwLjM3MzY1MSwgMC40Nzk0NjMsIDAuNTg1MjU0LCAwLjY5MDkyOSIsIFwKLSAgICAgICAgICAiMC4wODgyNTYsIDAuMjA0MTA1LCAwLjI4ODA4LCAwLjM5NDQyLCAwLjQ5OTk5MiwgMC42MDU2MjcsIDAuNzExNDI4IiwgXAotICAgICAgICAgICIwLjA5ODk1MywgMC4yMjIzNSwgMC4zMDYwNDUsIDAuNDEyMzk3LCAwLjUxODAzMywgMC42MjM4MDgsIDAuNzI5NTE2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1MDAwNywgMC4yNjMyNDEsIDAuNDMzNTU1LCAwLjY0Njk3MywgMC44NTkzMTMsIDEuMDcyNzIsIDEuMjg1NzgiLCBcCi0gICAgICAgICAgIjAuMDUxMzY5LCAwLjI2Mjc3NywgMC40MzM0MSwgMC42NDY4ODMsIDAuODYxNjg2LCAxLjA3MTk3LCAxLjI4NTIyIiwgXAotICAgICAgICAgICIwLjA1NzUwNywgMC4yNjI5MDYsIDAuNDM0Mjc4LCAwLjY0NjIxOSwgMC44NjA2NDksIDEuMDcyMjQsIDEuMjg4NzEiLCBcCi0gICAgICAgICAgIjAuMDY1NjQ4LCAwLjI2NDYxLCAwLjQzMzI0MywgMC42NDY1OTIsIDAuODU5NTA2LCAxLjA3NTE2LCAxLjI4NjEzIiwgXAotICAgICAgICAgICIwLjA3NTUyOSwgMC4yNjc3NDYsIDAuNDMzNTYyLCAwLjY0NjUyNCwgMC44NTk0MjcsIDEuMDcyODMsIDEuMjg4NTMiLCBcCi0gICAgICAgICAgIjAuMDkwOTQ3LCAwLjI3NDY2NCwgMC40MzcwMDIsIDAuNjQ2NTcxLCAwLjg2MDIwNSwgMS4wNzIwOCwgMS4yODQ3OSIsIFwKLSAgICAgICAgICAiMC4xMDM5OTIsIDAuMjgyNjQ0LCAwLjQ0MjMwOCwgMC42NTAyNDEsIDAuODYxODI1LCAxLjA3MzY4LCAxLjI4NjcyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQU4iOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzY4LCAwLjAwMzY5NywgMC4wMDM3MDIsIDAuMDAzNjk2LCAwLjAwMzcsIDAuMDAzNzAyLCAwLjAwMzciLCBcCi0gICAgICAgICAgIjAuMDAzNjQ5LCAwLjAwMzY3MiwgMC4wMDM2NzUsIDAuMDAzNjc3LCAwLjAwMzY3NywgMC4wMDM2NzcsIDAuMDAzNjc4IiwgXAotICAgICAgICAgICIwLjAwMzYzNSwgMC4wMDM2NjUsIDAuMDAzNjcsIDAuMDAzNjc0LCAwLjAwMzY3NCwgMC4wMDM2NzQsIDAuMDAzNjc1IiwgXAotICAgICAgICAgICIwLjAwMzYzNSwgMC4wMDM2NjksIDAuMDAzNjc1LCAwLjAwMzY3OCwgMC4wMDM2OCwgMC4wMDM2OCwgMC4wMDM2ODEiLCBcCi0gICAgICAgICAgIjAuMDAzNjQyLCAwLjAwMzY4MSwgMC4wMDM2ODYsIDAuMDAzNjg5LCAwLjAwMzY5MSwgMC4wMDM2OTIsIDAuMDAzNjkzIiwgXAotICAgICAgICAgICIwLjAwMzY2MiwgMC4wMDM3MDIsIDAuMDAzNzA5LCAwLjAwMzcxNCwgMC4wMDM3MTUsIDAuMDAzNzE3LCAwLjAwMzcxOCIsIFwKLSAgICAgICAgICAiMC4wMDM2ODIsIDAuMDAzNzIxLCAwLjAwMzczLCAwLjAwMzczNSwgMC4wMDM3MzYsIDAuMDAzNzM4LCAwLjAwMzczOCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzgwMSwgMC4wMDM4MTYsIDAuMDAzODE5LCAwLjAwMzgxOCwgMC4wMDM4MTgsIDAuMDAzODE4LCAwLjAwMzgxOCIsIFwKLSAgICAgICAgICAiMC4wMDM3NzQsIDAuMDAzNzk2LCAwLjAwMzc5OSwgMC4wMDM4LCAwLjAwMzgsIDAuMDAzOCwgMC4wMDM4MDEiLCBcCi0gICAgICAgICAgIjAuMDAzNzY2LCAwLjAwMzc5NiwgMC4wMDM3OTksIDAuMDAzODAxLCAwLjAwMzgwMSwgMC4wMDM4MDIsIDAuMDAzODAyIiwgXAotICAgICAgICAgICIwLjAwMzc2NSwgMC4wMDM3OTIsIDAuMDAzNzk3LCAwLjAwMzc5OSwgMC4wMDM4LCAwLjAwMzgwMSwgMC4wMDM4MDEiLCBcCi0gICAgICAgICAgIjAuMDAzNzY1LCAwLjAwMzgwMiwgMC4wMDM4MDYsIDAuMDAzODA5LCAwLjAwMzgxLCAwLjAwMzgxMSwgMC4wMDM4MTEiLCBcCi0gICAgICAgICAgIjAuMDAzNzc4LCAwLjAwMzgxMSwgMC4wMDM4MTksIDAuMDAzODIxLCAwLjAwMzgyMywgMC4wMDM4MjUsIDAuMDAzODI1IiwgXAotICAgICAgICAgICIwLjAwMzgwNSwgMC4wMDM4MzUsIDAuMDAzODQsIDAuMDAzODQ0LCAwLjAwMzg0NSwgMC4wMDM4NDQsIDAuMDAzODQ0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyOTk0LCAwLjAwMzAxMiwgMC4wMDMwMTQsIDAuMDAzMDE1LCAwLjAwMzAxNCwgMC4wMDMwMTUsIDAuMDAzMDE2IiwgXAotICAgICAgICAgICIwLjAwMjkzLCAwLjAwMjk5NSwgMC4wMDMwMDMsIDAuMDAzMDA3LCAwLjAwMzAxLCAwLjAwMzAxLCAwLjAwMzAxMSIsIFwKLSAgICAgICAgICAiMC4wMDI5MDMsIDAuMDAyOTc5LCAwLjAwMjk5MiwgMC4wMDI5OTksIDAuMDAzMDAzLCAwLjAwMzAwNiwgMC4wMDMwMDciLCBcCi0gICAgICAgICAgIjAuMDAyODkxLCAwLjAwMjk2NSwgMC4wMDI5ODIsIDAuMDAyOTk0LCAwLjAwMjk5OCwgMC4wMDMwMDIsIDAuMDAzMDA0IiwgXAotICAgICAgICAgICIwLjAwMjkxMSwgMC4wMDI5NjEsIDAuMDAyOTc4LCAwLjAwMjk4OSwgMC4wMDI5OTUsIDAuMDAyOTk4LCAwLjAwMzAwMSIsIFwKLSAgICAgICAgICAiMC4wMDI5NSwgMC4wMDI5NTcsIDAuMDAyOTY3LCAwLjAwMjk4NSwgMC4wMDI5OTEsIDAuMDAyOTk0LCAwLjAwMjk5OCIsIFwKLSAgICAgICAgICAiMC4wMDI5OTYsIDAuMDAyOTYxLCAwLjAwMjk3MiwgMC4wMDI5ODMsIDAuMDAyOTg5LCAwLjAwMjk5MywgMC4wMDI5OTciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDAwNDIsIDAuMDAwMDY0LCAwLjAwMDA2NywgMC4wMDAwNjgsIDAuMDAwMDY4LCAwLjAwMDA2OSwgMC4wMDAwNjkiLCBcCi0gICAgICAgICAgIjAuMDAwMDE1LCAwLjAwMDA2OSwgMC4wMDAwNzksIDAuMDAwMDg0LCAwLjAwMDA4NiwgMC4wMDAwODgsIDAuMDAwMDg5IiwgXAotICAgICAgICAgICIwLjAwMDA1NiwgMC4wMDAwNTMsIDAuMDAwMDcsIDAuMDAwMDc5LCAwLjAwMDA4NiwgMC4wMDAwODksIDAuMDAwMDkxIiwgXAotICAgICAgICAgICIwLjAwMDA4NiwgMC4wMDAwMzcsIDAuMDAwMDU5LCAwLjAwMDA3MiwgMC4wMDAwNzcsIDAuMDAwMDgxLCAwLjAwMDA4NCIsIFwKLSAgICAgICAgICAiMC4wMDAwNTksIDAuMDAwMDM1LCAwLjAwMDA1NywgMC4wMDAwNzEsIDAuMDAwMDc3LCAwLjAwMDA4MSwgMC4wMDAwODQiLCBcCi0gICAgICAgICAgIjAuMDAwMDMyLCAwLjAwMDAyOSwgMC4wMDAwNSwgMC4wMDAwNjUsIDAuMDAwMDczLCAwLjAwMDA3NywgMC4wMDAwODEiLCBcCi0gICAgICAgICAgIjAuMDAwMDA4LCAwLjAwMDAzMSwgMC4wMDAwNDcsIDAuMDAwMDYzLCAwLjAwMDA3MSwgMC4wMDAwNzYsIDAuMDAwMDgiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBOT1IyQlg0ICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKE5PUjJCWDQpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4zMDMwMTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQU4pICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYxMjUzMjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MTIyNzg7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjEyNTMyOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTc2NCwgMC4wMDE3NDUsIDAuMDAxNzM0LCAwLjAwMTc0LCAwLjAwMTc0NywgMC4wMDE3NjcsIDAuMDAxNzc5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzNDc5LCAwLjAwMzQ2NSwgMC4wMDM0NTgsIDAuMDAzNDYxLCAwLjAwMzQ2OCwgMC4wMDM0ODYsIDAuMDAzNTAyIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDMyNzA1MjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDMyNzAzMjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDMyNzA1MjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA0OTksIDAuMDAwNDk5LCAwLjAwMDQ5OSwgMC4wMDA0OTksIDAuMDAwNDk5LCAwLjAwMDQ5OSwgMC4wMDA0OTkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDE1MjMsIDAuMDAxNTIzLCAwLjAwMTUyMywgMC4wMDE1MjMsIDAuMDAxNTIyLCAwLjAwMTUyMywgMC4wMDE1MjIiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC41NjMzNTQ7Ci0gICAgZnVuY3Rpb24gOiAiKCEoKCFBTikrQikpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzMzMzEsIDAuMjExMDMxLCAwLjM0ODExLCAwLjQ0NTgzNCwgMC42MDMwMjgsIDAuNzQwMDk5LCAwLjkzNTcyNiIsIFwKLSAgICAgICAgICAiMC4wODM0OSwgMC4yMjEyMDgsIDAuMzU4Mjg3LCAwLjQ1NjIyNSwgMC42MTMxNjksIDAuNzUwMDQxLCAwLjk0NTg1IiwgXAotICAgICAgICAgICIwLjA5NjM5NywgMC4yMzQxMjgsIDAuMzcxMTk5LCAwLjQ2ODk5NywgMC42MjU5NzksIDAuNzYzMzk0LCAwLjk1ODgyNSIsIFwKLSAgICAgICAgICAiMC4xMDkxMTQsIDAuMjQ2ODY2LCAwLjM4Mzk1NiwgMC40ODE5NiwgMC42MzgxOTMsIDAuNzc1NTYxLCAwLjk3MTU0NSIsIFwKLSAgICAgICAgICAiMC4xMjEwNTYsIDAuMjU4ODIsIDAuMzk1OTMzLCAwLjQ5Mzk2NCwgMC42NTA5MjksIDAuNzg3NzI5LCAwLjk4MzYxMiIsIFwKLSAgICAgICAgICAiMC4xMzgwMDcsIDAuMjc1OTYsIDAuNDEzMDk3LCAwLjUxMTIxNSwgMC42Njc4ODUsIDAuODA0OTI5LCAxLjAwMDY1IiwgXAotICAgICAgICAgICIwLjE1MTA2LCAwLjI4OTIxOCwgMC40MjYyODIsIDAuNTI0MTMyLCAwLjY4MDk2OCwgMC44MTgxMjMsIDEuMDEzNTUiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTgxNzcsIDAuMzMzNDM3LCAwLjYxMTc1NiwgMC44MDg5NSwgMS4xMjU4MSwgMS40MDM1MiwgMS44MDAxMyIsIFwKLSAgICAgICAgICAiMC4wNTgxNjgsIDAuMzMzNDQyLCAwLjYxMTc1NSwgMC44MTA2MjgsIDEuMTI1ODksIDEuNDA2OTYsIDEuODA0NiIsIFwKLSAgICAgICAgICAiMC4wNTgxODgsIDAuMzMzNDQxLCAwLjYxMTcyMSwgMC44MDk4OTQsIDEuMTI2MiwgMS40MDMyNCwgMS44MDQ2NSIsIFwKLSAgICAgICAgICAiMC4wNTgzMzYsIDAuMzMzMDQ3LCAwLjYxMTc0LCAwLjgxMDUwMSwgMS4xMjYwMywgMS40MDcwNywgMS44MDE2OCIsIFwKLSAgICAgICAgICAiMC4wNTg3OTksIDAuMzMzMzc2LCAwLjYxMTcwOSwgMC44MTA1MzcsIDEuMTI1NzQsIDEuNDAzNTYsIDEuODAxODQiLCBcCi0gICAgICAgICAgIjAuMDU5OTU5LCAwLjMzMzc3MiwgMC42MTE3OTYsIDAuODA4NjYzLCAxLjEyNjM1LCAxLjQwNDA5LCAxLjgwMTU2IiwgXAotICAgICAgICAgICIwLjA2MTQyMSwgMC4zMzMzNjgsIDAuNjExODA2LCAwLjgwOTAzMywgMS4xMjU5MSwgMS40MDM1NCwgMS44MDQ0NCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2NDE5MSwgMC4xNDAwMzYsIDAuMjEzMzMyLCAwLjI2NTQ5NCwgMC4zNDkwOSwgMC40MjIzNDQsIDAuNTI2NzIzIiwgXAotICAgICAgICAgICIwLjA3NDAyMywgMC4xNDk5NTcsIDAuMjIzMjQxLCAwLjI3NTQ1LCAwLjM1OTA1MiwgMC40MzIxOTEsIDAuNTM2Njc5IiwgXAotICAgICAgICAgICIwLjA4NjQ2NywgMC4xNjI0LCAwLjIzNTY1NiwgMC4yODc5MzMsIDAuMzcxNTQ0LCAwLjQ0NDY4MSwgMC41NDkyMzIiLCBcCi0gICAgICAgICAgIjAuMDk4NzE3LCAwLjE3NDQ3NiwgMC4yNDc3MTksIDAuMywgMC4zODM1OTksIDAuNDU2ODUzLCAwLjU2MTIzOCIsIFwKLSAgICAgICAgICAiMC4xMDk5OTksIDAuMTg2MTEzLCAwLjI1OTM0LCAwLjMxMTYwNCwgMC4zOTUyMjgsIDAuNDY4NDA2LCAwLjU3MzA2MyIsIFwKLSAgICAgICAgICAiMC4xMjU4NDYsIDAuMjAyNjQ1LCAwLjI3NTc5MSwgMC4zMjgwNTMsIDAuNDExNjYxLCAwLjQ4NDc3NSwgMC41ODkyNzEiLCBcCi0gICAgICAgICAgIjAuMTM4MTkyLCAwLjIxNDIzNywgMC4yODczNjYsIDAuMzM5NTk5LCAwLjQyMzIyNiwgMC40OTYzMTksIDAuNjAwODY3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQwMTczLCAwLjE4MTk0LCAwLjMyNzYyMywgMC40MzIzMiwgMC42MDAwMDMsIDAuNzQ3MDM4LCAwLjk1Njk4NCIsIFwKLSAgICAgICAgICAiMC4wNDAwNTYsIDAuMTgxODUxLCAwLjMyNzYyNywgMC40MzIxOCwgMC41OTk5MTYsIDAuNzQ3MTAyLCAwLjk1NjkzNCIsIFwKLSAgICAgICAgICAiMC4wNDAwNTksIDAuMTgxODAyLCAwLjMyNzYxNywgMC40MzIxOTcsIDAuNTk5OTYsIDAuNzQ3MTg3LCAwLjk1NjkxOSIsIFwKLSAgICAgICAgICAiMC4wNDA0LCAwLjE4MTk3OSwgMC4zMjc2NjgsIDAuNDMyMjQ3LCAwLjYwMDAwOSwgMC43NDcwMDYsIDAuOTU2OTkyIiwgXAotICAgICAgICAgICIwLjA0MTU1MiwgMC4xODIwODgsIDAuMzI3NzA0LCAwLjQzMjI3MiwgMC42MDAwNTksIDAuNzQ2ODgsIDAuOTU3MTQ2IiwgXAotICAgICAgICAgICIwLjA0NDEwNCwgMC4xODI4NzcsIDAuMzI3OTM3LCAwLjQzMjM1MSwgMC41OTk5NzMsIDAuNzQ3MTk2LCAwLjk1NjkxNCIsIFwKLSAgICAgICAgICAiMC4wNDUyMzMsIDAuMTgzNjY5LCAwLjMyODEwOSwgMC40MzI2NCwgMC42MDAwMjksIDAuNzQ2OTI4LCAwLjk1NjkxMyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyOTkxNiwgMC4xNjcxMzQsIDAuMzA0MjMxLCAwLjQwMjE1LCAwLjU1OTEzOSwgMC42OTU3ODUsIDAuODkxNTczIiwgXAotICAgICAgICAgICIwLjAzODczNywgMC4xNzYyNTEsIDAuMzEzMzczLCAwLjQxMTM4NCwgMC41Njc5NzEsIDAuNzA1MzE2LCAwLjkwMDc2OSIsIFwKLSAgICAgICAgICAiMC4wNDk5NTQsIDAuMTg3NTYsIDAuMzI0NjczLCAwLjQyMjkzMiwgMC41NzkxMTEsIDAuNzE2Mzc1LCAwLjkxMjE0OCIsIFwKLSAgICAgICAgICAiMC4wNjA5MTMsIDAuMTk5MjI1LCAwLjMzNjUyNSwgMC40MzQzMjksIDAuNTkxMDE5LCAwLjcyODM2MiwgMC45MjM3OTciLCBcCi0gICAgICAgICAgIjAuMDY5MTU2LCAwLjIxMDU0NiwgMC4zNDc2NzEsIDAuNDQ1NTc0LCAwLjYwMjY0LCAwLjczOTM4MiwgMC45MzUxOTMiLCBcCi0gICAgICAgICAgIjAuMDgwNDAxLCAwLjIyODkwOCwgMC4zNjYwMzQsIDAuNDYzMjE4LCAwLjYyMDYyMiwgMC43NTc2NjcsIDAuOTUzODE1IiwgXAotICAgICAgICAgICIwLjA4ODYzNywgMC4yNDUxMjQsIDAuMzgyMjEsIDAuNDgwMTE3LCAwLjYzNjkyNiwgMC43NzM4ODIsIDAuOTY5NTY0Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU0ODQ2LCAwLjMzMzM1NCwgMC42MTE1ODgsIDAuODEwMzYsIDEuMTI2MjUsIDEuNDA2NjMsIDEuODA0MTciLCBcCi0gICAgICAgICAgIjAuMDU2MzA5LCAwLjMzMzM5NCwgMC42MDk2ODIsIDAuODEyOTM3LCAxLjEyODM1LCAxLjQwMzc4LCAxLjgwNDA0IiwgXAotICAgICAgICAgICIwLjA2MjYxOSwgMC4zMzI2NDIsIDAuNjExNzMxLCAwLjgwODY1NywgMS4xMjU5NCwgMS40MDU2NSwgMS44MDQxNiIsIFwKLSAgICAgICAgICAiMC4wNzEzMzgsIDAuMzMzMTc2LCAwLjYxMzQ3OCwgMC44MDk4MjQsIDEuMTI4MzEsIDEuNDAzNzQsIDEuODAzMTMiLCBcCi0gICAgICAgICAgIjAuMDgwOTcxLCAwLjMzNTIzMywgMC42MTE3NzQsIDAuODEwNTkzLCAxLjEyNTc0LCAxLjQwNjY0LCAxLjgwNDIiLCBcCi0gICAgICAgICAgIjAuMDk1MDQ3LCAwLjM0MjMzMywgMC42MTI3NTksIDAuODEwNDQ1LCAxLjEyNjY3LCAxLjQwNDQ3LCAxLjgwMDQ1IiwgXAotICAgICAgICAgICIwLjEwNjE0NywgMC4zNDkyNSwgMC42MTU5MzksIDAuODExNDEyLCAxLjEyNjA1LCAxLjQwMzU4LCAxLjgwMTM4Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE4MDY3LCAwLjA5MjI3OSwgMC4xNjYzODQsIDAuMjE5NDEzLCAwLjMwNDEzMSwgMC4zNzgzNTUsIDAuNDg0MTEiLCBcCi0gICAgICAgICAgIjAuMDI4MjIxLCAwLjEwMjQ0NiwgMC4xNzYzMjQsIDAuMjI5Mjc3LCAwLjMxNDA2OSwgMC4zODgwNjEsIDAuNDkzOTM4IiwgXAotICAgICAgICAgICIwLjAzOTk2OSwgMC4xMTUwMzUsIDAuMTg5MjA2LCAwLjI0MjEyNywgMC4zMjY4NzEsIDAuNDAwOTMxLCAwLjUwNTU5NyIsIFwKLSAgICAgICAgICAiMC4wNDg5OTksIDAuMTI3ODIyLCAwLjIwMTk5NywgMC4yNTUwOSwgMC4zMzk2NTksIDAuNDEzOTc2LCAwLjUxODc5MyIsIFwKLSAgICAgICAgICAiMC4wNTY3MjYsIDAuMTQwOTQzLCAwLjIxNDk0MSwgMC4yNjc3OSwgMC4zNTIzMywgMC40MjYzMywgMC41MzIyNTQiLCBcCi0gICAgICAgICAgIjAuMDY3NDQsIDAuMTYxODk4LCAwLjIzNTA3MywgMC4yODc5NSwgMC4zNzMwMjEsIDAuNDQ2OTkxLCAwLjU1Mjc0NSIsIFwKLSAgICAgICAgICAiMC4wNzU3MjEsIDAuMTgwMzAzLCAwLjI1MzgyNSwgMC4zMDU4ODYsIDAuMzkxMjQsIDAuNDY1MDk1LCAwLjU3MDc3NiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyODIxOSwgMC4xNzc4MywgMC4zMjc0MDEsIDAuNDMzMDYxLCAwLjYwNDM3OSwgMC43NTMzMzEsIDAuOTY3MjExIiwgXAotICAgICAgICAgICIwLjAzMTE5OSwgMC4xNzc4NDksIDAuMzI3MzA1LCAwLjQzMzUzMSwgMC42MDM1NjksIDAuNzUyNDQ1LCAwLjk2NTQiLCBcCi0gICAgICAgICAgIjAuMDM5ODQsIDAuMTc4Mzk1LCAwLjMyNzI2NCwgMC40MzM2OTcsIDAuNjAzOTI4LCAwLjc1MjU4MywgMC45NjU3MjEiLCBcCi0gICAgICAgICAgIjAuMDQ5NjQxLCAwLjE4MTY1OSwgMC4zMjcwNjcsIDAuNDMzMDIzLCAwLjYwNTAxNSwgMC43NTMwNiwgMC45NjU4NDgiLCBcCi0gICAgICAgICAgIjAuMDU4NDIxLCAwLjE4NjMzMywgMC4zMjg5OTksIDAuNDMzMzE4LCAwLjYwNTAwNiwgMC43NTI2MTUsIDAuOTY2ODM1IiwgXAotICAgICAgICAgICIwLjA3MTAwNywgMC4xOTYxMDksIDAuMzM1NDkxLCAwLjQzNjc3NCwgMC42MDU3NzMsIDAuNzU0NTc5LCAwLjk2Njc1NCIsIFwKLSAgICAgICAgICAiMC4wODEyMjYsIDAuMjA2MjQxLCAwLjM0MTY5OCwgMC40NDIyMTQsIDAuNjA2MzgzLCAwLjc1NTQ4NiwgMC45NjU3NTgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDcwMTgsIDAuMDA3MTA4LCAwLjAwNzEyLCAwLjAwNzEyNCwgMC4wMDcxMjksIDAuMDA3MTMsIDAuMDA3MTMiLCBcCi0gICAgICAgICAgIjAuMDA2OTksIDAuMDA3MDg2LCAwLjAwNzA5OSwgMC4wMDcxMDIsIDAuMDA3MTA4LCAwLjAwNzExMSwgMC4wMDcxMTIiLCBcCi0gICAgICAgICAgIjAuMDA2OTY3LCAwLjAwNzA2OSwgMC4wMDcwODcsIDAuMDA3MDkzLCAwLjAwNzA5NywgMC4wMDcxLCAwLjAwNzEwNCIsIFwKLSAgICAgICAgICAiMC4wMDY5NjEsIDAuMDA3MDY3LCAwLjAwNzA5LCAwLjAwNzA5NSwgMC4wMDcxMDUsIDAuMDA3MTA2LCAwLjAwNzEwOCIsIFwKLSAgICAgICAgICAiMC4wMDY5NTUsIDAuMDA3MDY0LCAwLjAwNzA4OCwgMC4wMDcwOTQsIDAuMDA3MTA0LCAwLjAwNzEwNywgMC4wMDcxMSIsIFwKLSAgICAgICAgICAiMC4wMDY5NjIsIDAuMDA3MDY5LCAwLjAwNzA5NiwgMC4wMDcxMDUsIDAuMDA3MTE0LCAwLjAwNzExOSwgMC4wMDcxMjQiLCBcCi0gICAgICAgICAgIjAuMDA2OTgzLCAwLjAwNzA3OCwgMC4wMDcxMDcsIDAuMDA3MTE3LCAwLjAwNzEyNywgMC4wMDcxMywgMC4wMDcxNCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2NjEsIDAuMDA2Njg2LCAwLjAwNjY5NywgMC4wMDY3LCAwLjAwNjcwMiwgMC4wMDY3MDQsIDAuMDA2NzA1IiwgXAotICAgICAgICAgICIwLjAwNjU4LCAwLjAwNjY2NywgMC4wMDY2NzgsIDAuMDA2Njg0LCAwLjAwNjY4MywgMC4wMDY2ODcsIDAuMDA2Njg5IiwgXAotICAgICAgICAgICIwLjAwNjU2NiwgMC4wMDY2NjMsIDAuMDA2Njc3LCAwLjAwNjY4MywgMC4wMDY2ODYsIDAuMDA2Njg4LCAwLjAwNjY5IiwgXAotICAgICAgICAgICIwLjAwNjU3MSwgMC4wMDY2NTcsIDAuMDA2Njc1LCAwLjAwNjY4LCAwLjAwNjY4NSwgMC4wMDY2ODcsIDAuMDA2NjkiLCBcCi0gICAgICAgICAgIjAuMDA2NTkyLCAwLjAwNjY3LCAwLjAwNjY4NywgMC4wMDY2OTMsIDAuMDA2Njk4LCAwLjAwNjcsIDAuMDA2NzAzIiwgXAotICAgICAgICAgICIwLjAwNjYwNSwgMC4wMDY2NjgsIDAuMDA2Njg2LCAwLjAwNjY5MiwgMC4wMDY2OTgsIDAuMDA2NzAxLCAwLjAwNjcwNCIsIFwKLSAgICAgICAgICAiMC4wMDY1NzMsIDAuMDA2NjczLCAwLjAwNjY5NywgMC4wMDY3MDMsIDAuMDA2NzEsIDAuMDA2NzE0LCAwLjAwNjcxNyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1NzE5LCAwLjAwNTc4MiwgMC4wMDU3ODgsIDAuMDA1Nzg5LCAwLjAwNTc5MSwgMC4wMDU3OSwgMC4wMDU3OTMiLCBcCi0gICAgICAgICAgIjAuMDA1NTUyLCAwLjAwNTczMiwgMC4wMDU3NiwgMC4wMDU3NjgsIDAuMDA1Nzc3LCAwLjAwNTc3OSwgMC4wMDU3ODMiLCBcCi0gICAgICAgICAgIjAuMDA1NTAxLCAwLjAwNTY5LCAwLjAwNTczMiwgMC4wMDU3NDYsIDAuMDA1NzU5LCAwLjAwNTc2NiwgMC4wMDU3NzIiLCBcCi0gICAgICAgICAgIjAuMDA1NTIyLCAwLjAwNTY1OSwgMC4wMDU3MDksIDAuMDA1NzI2LCAwLjAwNTc0NCwgMC4wMDU3NTMsIDAuMDA1NzYyIiwgXAotICAgICAgICAgICIwLjAwNTYxMywgMC4wMDU2NTEsIDAuMDA1Njk4LCAwLjAwNTcxNywgMC4wMDU3MzYsIDAuMDA1NzQ2LCAwLjAwNTc1NyIsIFwKLSAgICAgICAgICAiMC4wMDU3MzQsIDAuMDA1NjUzLCAwLjAwNTY5LCAwLjAwNTcsIDAuMDA1NzI2LCAwLjAwNTczOCwgMC4wMDU3NDgiLCBcCi0gICAgICAgICAgIjAuMDA1ODQ4LCAwLjAwNTY3MSwgMC4wMDU2OTMsIDAuMDA1NzA4LCAwLjAwNTcyNSwgMC4wMDU3MzUsIDAuMDA1NzQ1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDAwMjksIDAuMDAwMTA4LCAwLjAwMDExNSwgMC4wMDAxMTgsIDAuMDAwMTE5LCAwLjAwMDEyLCAwLjAwMDEyMSIsIFwKLSAgICAgICAgICAiMC4wMDAxNDgsIDAuMDAwMDk5LCAwLjAwMDEzNCwgMC4wMDAxNDUsIDAuMDAwMTU0LCAwLjAwMDE1OSwgMC4wMDAxNjMiLCBcCi0gICAgICAgICAgIjAuMDAwMjEzLCAwLjAwMDA1OCwgMC4wMDAxMDksIDAuMDAwMTI2LCAwLjAwMDE0MSwgMC4wMDAxNDgsIDAuMDAwMTYyIiwgXAotICAgICAgICAgICIwLjAwMDIwMiwgMC4wMDAwMTMsIDAuMDAwMDgxLCAwLjAwMDEwNCwgMC4wMDAxMjUsIDAuMDAwMTM2LCAwLjAwMDE1IiwgXAotICAgICAgICAgICIwLjAwMDE2MSwgMC4wMDAwMTUsIDAuMDAwMDc5LCAwLjAwMDEsIDAuMDAwMTIxLCAwLjAwMDEzMywgMC4wMDAxNDMiLCBcCi0gICAgICAgICAgIjAuMDAwMTUsIDAuMDAwMDA2LCAwLjAwMDA1OSwgMC4wMDAwODUsIDAuMDAwMTExLCAwLjAwMDEyMywgMC4wMDAxMzUiLCBcCi0gICAgICAgICAgIjAuMDAwMDM0LCAwLjAwMDAxNiwgMC4wMDAwNjMsIDAuMDAwMDgsIDAuMDAwMTA4LCAwLjAwMDEyMSwgMC4wMDAxMzIiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBOT1IyQlhMICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKE5PUjJCWEwpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4wNjE4MTk2OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBTikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjc1NDQ0OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDY3NTI0NzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2NzU0NDQ7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjMxLCAwLjAwMDIwNCwgMC4wMDAyMSwgMC4wMDAyMTUsIDAuMDAwMjMxLCAwLjAwMDI1MiwgMC4wMDAyNzgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDE0MzUsIDAuMDAxNDE0LCAwLjAwMTQxMSwgMC4wMDE0MTgsIDAuMDAxNDMxLCAwLjAwMTQ1OCwgMC4wMDE0ODEiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY5MTIxMzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2OTEyMTM7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjkxMjA2OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDA2OSwgMC4wMDAwNjksIDAuMDAwMDY5LCAwLjAwMDA2OSwgMC4wMDAwNjksIDAuMDAwMDY5LCAwLjAwMDA2OSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDIwNCwgMC4wMDAyMDQsIDAuMDAwMjA0LCAwLjAwMDIwNCwgMC4wMDAyMDMsIDAuMDAwMjAzLCAwLjAwMDIwMyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjA3ODg2OwotICAgIGZ1bmN0aW9uIDogIighKCghQU4pK0IpKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQU4iOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE2MTY5OCwgMC4xODgyOSwgMC40Mjc0ODQsIDAuODI2NTA5LCAxLjIyNDc3LCAyLjE1NTMsIDIuNjg2NTYiLCBcCi0gICAgICAgICAgIjAuMTcxODA3LCAwLjE5ODM3MSwgMC40Mzc5MTksIDAuODM2MTM2LCAxLjIzNTIxLCAyLjE2NTc5LCAyLjY5NjQiLCBcCi0gICAgICAgICAgIjAuMTgyNTYxLCAwLjIwOTIxNywgMC40NDgyNjcsIDAuODQ3MzkyLCAxLjI0Njk0LCAyLjE3Nzg0LCAyLjcwODE2IiwgXAotICAgICAgICAgICIwLjE5MDg5OCwgMC4yMTc1MTUsIDAuNDU2NzM3LCAwLjg1NTQxNywgMS4yNTQ0MiwgMi4xODQ3MywgMi43MTUwOCIsIFwKLSAgICAgICAgICAiMC4xOTc5NzUsIDAuMjI0NTg5LCAwLjQ2Mzc3OSwgMC44NjI0ODMsIDEuMjYxNjMsIDIuMTkxNzQsIDIuNzIzNDgiLCBcCi0gICAgICAgICAgIjAuMjA3NjY5LCAwLjIzNDIzLCAwLjQ3MzQ5NCwgMC44NzIxMDMsIDEuMjcxOSwgMi4yMDE0NSwgMi43MzI0MiIsIFwKLSAgICAgICAgICAiMC4yMTUxOCwgMC4yNDE2MzgsIDAuNDgwOTU1LCAwLjg3OTYyMywgMS4yNzgzLCAyLjIwOTU0LCAyLjczOTg5Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI4ODkzLCAwLjM0MzI2MiwgMC44MjkwODQsIDEuNjM1OTQsIDIuNDQ5NjgsIDQuMzQxNDgsIDUuNDEyNDkiLCBcCi0gICAgICAgICAgIjAuMjg4OTYyLCAwLjM0MzM0NiwgMC44Mjc0MTcsIDEuNjM4MTgsIDIuNDQ0LCA0LjMzMDA4LCA1LjQxMTk1IiwgXAotICAgICAgICAgICIwLjI4ODgyOSwgMC4zNDI2MTEsIDAuODI5Mzk4LCAxLjYzNTQ4LCAyLjQ0NTAyLCA0LjMzMTU0LCA1LjQwODQ4IiwgXAotICAgICAgICAgICIwLjI4ODk3LCAwLjM0Mjk0NSwgMC44Mjk0MjUsIDEuNjM5NjMsIDIuNDQ0MjEsIDQuMzMwMjQsIDUuNDE0NzgiLCBcCi0gICAgICAgICAgIjAuMjg4OTM0LCAwLjM0MzQ5OCwgMC44MjkzMTUsIDEuNjM3MTQsIDIuNDQzOTEsIDQuMzI5NjgsIDUuNDA3ODYiLCBcCi0gICAgICAgICAgIjAuMjg4NzY2LCAwLjM0Mjg4OSwgMC44MjkzMTQsIDEuNjM4OTUsIDIuNDQ0NDgsIDQuMzI5NjUsIDUuNDExMDEiLCBcCi0gICAgICAgICAgIjAuMjg5MDE3LCAwLjM0Mjg3NiwgMC44Mjk2MDcsIDEuNjM5MiwgMi40NDkyNSwgNC4zMjkzNCwgNS40MTA2MSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTQ0NjEsIDAuMTA4MzI2LCAwLjIzMjg4NSwgMC40NDAyODksIDAuNjQ3NDg0LCAxLjEzMTM0LCAxLjQwNzY5IiwgXAotICAgICAgICAgICIwLjEwNDE3NiwgMC4xMTgwMiwgMC4yNDI2NTMsIDAuNDUwMzEsIDAuNjU3ODQ1LCAxLjE0MjA0LCAxLjQxODM4IiwgXAotICAgICAgICAgICIwLjExNDM5OSwgMC4xMjgyNDksIDAuMjUyODg4LCAwLjQ2MDM2OSwgMC42NjgxNDcsIDEuMTUyMzIsIDEuNDI4NzIiLCBcCi0gICAgICAgICAgIjAuMTIyMjE1LCAwLjEzNjA1OCwgMC4yNjA2NjUsIDAuNDY4MjI2LCAwLjY3NTU3NiwgMS4xNTk5MywgMS40MzY2NCIsIFwKLSAgICAgICAgICAiMC4xMjgzODEsIDAuMTQyMjMsIDAuMjY3MzQsIDAuNDc0Mjk4LCAwLjY4MTkwMywgMS4xNjY0MywgMS40NDIzIiwgXAotICAgICAgICAgICIwLjEzNzY2MSwgMC4xNTE1MjQsIDAuMjc2MDIzLCAwLjQ4MzgzOCwgMC42OTEwMzEsIDEuMTc1NCwgMS40NTE4OSIsIFwKLSAgICAgICAgICAiMC4xNDM4NjksIDAuMTU3NzQ2LCAwLjI4Mjk3MiwgMC40ODk3MywgMC42OTczMTksIDEuMTgxNzEsIDEuNDU3ODIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTUwNDkxLCAwLjE3ODEwMSwgMC40MjczNDksIDAuODQyNzg0LCAxLjI1NzQyLCAyLjIyNTk4LCAyLjc3OTUiLCBcCi0gICAgICAgICAgIjAuMTUwNDE4LCAwLjE3ODEwMSwgMC40Mjc0MzcsIDAuODQzMDE1LCAxLjI1ODk0LCAyLjIyODQyLCAyLjc4MjU0IiwgXAotICAgICAgICAgICIwLjE1MDU0MiwgMC4xNzgxOTksIDAuNDI3NDQsIDAuODQzMTI2LCAxLjI1ODg3LCAyLjIyODU3LCAyLjc4MjgxIiwgXAotICAgICAgICAgICIwLjE1MDcwNCwgMC4xNzgyOTMsIDAuNDI3NDM0LCAwLjg0MzA4NCwgMS4yNTgyMSwgMi4yMjg3MiwgMi43ODE0MSIsIFwKLSAgICAgICAgICAiMC4xNTA5NywgMC4xNzg0ODksIDAuNDI3MzcyLCAwLjg0MzEwNCwgMS4yNTg5NSwgMi4yMjk1NywgMi43ODE1MyIsIFwKLSAgICAgICAgICAiMC4xNTEyMDIsIDAuMTc4NzE3LCAwLjQyNzUwOSwgMC44NDMwNzksIDEuMjU4MjksIDIuMjI4MTcsIDIuNzgyNjEiLCBcCi0gICAgICAgICAgIjAuMTUxNTU3LCAwLjE3ODk0NiwgMC40Mjc2NzIsIDAuODQzMDg1LCAxLjI1ODg2LCAyLjIyODQsIDIuNzgxNiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNDU1NzQsIDAuMTcyMTgsIDAuNDExNDk1LCAwLjgxMDkwMiwgMS4yMDg0NSwgMi4xMzkxMSwgMi42NzA1NCIsIFwKLSAgICAgICAgICAiMC4xNTQ1NDksIDAuMTgxMTgyLCAwLjQyMDM1NiwgMC44MTg5MTIsIDEuMjE3NDcsIDIuMTQ3MzYsIDIuNjc5ODUiLCBcCi0gICAgICAgICAgIjAuMTY1Njg1LCAwLjE5MjI3OCwgMC40MzE5MjMsIDAuODMwNTAyLCAxLjIyOTE2LCAyLjE1OTUsIDIuNjkxMSIsIFwKLSAgICAgICAgICAiMC4xNzcwMTcsIDAuMjAzNjYzLCAwLjQ0MzA5OSwgMC44NDE2MiwgMS4yNDA3NywgMi4xNzE1LCAyLjcwMjMxIiwgXAotICAgICAgICAgICIwLjE4ODMyNCwgMC4yMTQ5OTcsIDAuNDU0MjM3LCAwLjg1MjkxNiwgMS4yNTI2OSwgMi4xODI4LCAyLjcxMzAzIiwgXAotICAgICAgICAgICIwLjIwNjU0NywgMC4yMzMxMTgsIDAuNDcyNTUzLCAwLjg3MTQxMywgMS4yNjk2NCwgMi4xOTk0OSwgMi43MzE0OSIsIFwKLSAgICAgICAgICAiMC4yMjI2MTUsIDAuMjQ5MjgxLCAwLjQ4ODMxNywgMC44ODc2MjUsIDEuMjg2MzQsIDIuMjE1NTIsIDIuNzQ2NzciKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjg5NDAyLCAwLjM0MjkyNSwgMC44MjgyOCwgMS42MzU3MiwgMi40NDU0NSwgNC4zNDEzNCwgNS40MTY4NCIsIFwKLSAgICAgICAgICAiMC4yODkwMjgsIDAuMzQzNTcxLCAwLjgyOTYwOCwgMS42MzgxMywgMi40NDk4MiwgNC4zMzY3NywgNS40MDgzMyIsIFwKLSAgICAgICAgICAiMC4yODkwNCwgMC4zNDM0NzksIDAuODI3NDQyLCAxLjYzNTk1LCAyLjQ0MzgxLCA0LjMyOTUsIDUuNDA1NzMiLCBcCi0gICAgICAgICAgIjAuMjkwNjI1LCAwLjM0Mzg5NywgMC44Mjc2ODMsIDEuNjM4MTUsIDIuNDQzOTUsIDQuMzI5MjIsIDUuNDA3MjYiLCBcCi0gICAgICAgICAgIjAuMjkzNzEyLCAwLjM0NjA3NSwgMC44Mjk1MjEsIDEuNjM5MjMsIDIuNDQ0NDIsIDQuMzI5NCwgNS40MTYwNCIsIFwKLSAgICAgICAgICAiMC4zMDExMSwgMC4zNTE1NDQsIDAuODI3NTk1LCAxLjYzNTg1LCAyLjQ0ODQyLCA0LjMzNjg5LCA1LjQxMTQ1IiwgXAotICAgICAgICAgICIwLjMwOTM3NSwgMC4zNTk2OTIsIDAuODMyNTI2LCAxLjYzNTM4LCAyLjQ0NTE0LCA0LjMzMjEzLCA1LjQxNTc2Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3NzUzMywgMC4wOTEzNzEsIDAuMjE1OTg0LCAwLjQyMzI0NywgMC42MzA5ODgsIDEuMTE1MTgsIDEuMzkxMzkiLCBcCi0gICAgICAgICAgIjAuMDg3NzI1LCAwLjEwMTUxLCAwLjIyNjA2NiwgMC40MzM1NDcsIDAuNjQwOTksIDEuMTI1NjMsIDEuNDAxMzkiLCBcCi0gICAgICAgICAgIjAuMTAwNDc3LCAwLjExNDI4MywgMC4yMzg2OTYsIDAuNDQ2MDY2LCAwLjY1MjY0LCAxLjEzNjcsIDEuNDEyNyIsIFwKLSAgICAgICAgICAiMC4xMTI5OTgsIDAuMTI2ODEyLCAwLjI1MTQyMiwgMC40NTg4MDEsIDAuNjY1NzUxLCAxLjE0ODU4LCAxLjQyNTE1IiwgXAotICAgICAgICAgICIwLjEyNjMyMywgMC4xNDAwODQsIDAuMjY0Mjk2LCAwLjQ3MTU0MSwgMC42NzkxMDgsIDEuMTYxMDUsIDEuNDM2ODciLCBcCi0gICAgICAgICAgIjAuMTQ3MTk1LCAwLjE2MTAzMSwgMC4yODQ0OCwgMC40OTIxMjksIDAuNjk5NjA3LCAxLjE4MDU1LCAxLjQ1ODEzIiwgXAotICAgICAgICAgICIwLjE2NTE3LCAwLjE3OTQzNSwgMC4zMDI0MzQsIDAuNTEwMjIxLCAwLjcxNzMzNiwgMS4xOTgxOSwgMS40NzQ3MyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNDc1NjUsIDAuMTc1NTQ1LCAwLjQyNTA5MiwgMC44NDMyNjEsIDEuMjU2NzcsIDIuMjI3NDIsIDIuNzg3ODUiLCBcCi0gICAgICAgICAgIjAuMTQ3Njc3LCAwLjE3NTY0OSwgMC40MjUwNjQsIDAuODQxNjQ2LCAxLjI1Nzg4LCAyLjIyNjU3LCAyLjc4ODA4IiwgXAotICAgICAgICAgICIwLjE0OTM0NSwgMC4xNzU5NjEsIDAuNDI1MDA1LCAwLjg0MTU4NywgMS4yNTcyOSwgMi4yMjczNSwgMi43ODE2MyIsIFwKLSAgICAgICAgICAiMC4xNTMzNjgsIDAuMTc5NTMsIDAuNDI1NjM1LCAwLjg0MDQyOCwgMS4yNTkzOSwgMi4yMjgwOSwgMi43ODM1NSIsIFwKLSAgICAgICAgICAiMC4xNTg4ODQsIDAuMTg0MzYzLCAwLjQyNjQ4MiwgMC44NDE4OTYsIDEuMjU4MDEsIDIuMjI2NSwgMi43ODc5IiwgXAotICAgICAgICAgICIwLjE2OTgsIDAuMTk0MzYyLCAwLjQyODgzMywgMC44NDIxMTIsIDEuMjU2NzUsIDIuMjI2MDksIDIuNzg0MjIiLCBcCi0gICAgICAgICAgIjAuMTgwODQ0LCAwLjIwNDQ4OSwgMC40MzUzMDcsIDAuODQyNjIxLCAxLjI1OTgsIDIuMjI2MjUsIDIuNzgwNzEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxMjU5LCAwLjAwMTI1OSwgMC4wMDEyNTksIDAuMDAxMjU5LCAwLjAwMTI1OCwgMC4wMDEyNTgsIDAuMDAxMjU4IiwgXAotICAgICAgICAgICIwLjAwMTIzNCwgMC4wMDEyMzQsIDAuMDAxMjM1LCAwLjAwMTIzNSwgMC4wMDEyMzUsIDAuMDAxMjM1LCAwLjAwMTIzNSIsIFwKLSAgICAgICAgICAiMC4wMDEyMzksIDAuMDAxMjM5LCAwLjAwMTI0MSwgMC4wMDEyNDEsIDAuMDAxMjQxLCAwLjAwMTI0MiwgMC4wMDEyNDIiLCBcCi0gICAgICAgICAgIjAuMDAxMjQsIDAuMDAxMjQxLCAwLjAwMTI0MywgMC4wMDEyNDQsIDAuMDAxMjQ0LCAwLjAwMTI0NCwgMC4wMDEyNDUiLCBcCi0gICAgICAgICAgIjAuMDAxMjU1LCAwLjAwMTI1NSwgMC4wMDEyNTgsIDAuMDAxMjU5LCAwLjAwMTI1OSwgMC4wMDEyNTksIDAuMDAxMjU5IiwgXAotICAgICAgICAgICIwLjAwMTI4MSwgMC4wMDEyODEsIDAuMDAxMjg2LCAwLjAwMTI4NywgMC4wMDEyODcsIDAuMDAxMjg4LCAwLjAwMTI4OCIsIFwKLSAgICAgICAgICAiMC4wMDEzMDUsIDAuMDAxMzAzLCAwLjAwMTMwNywgMC4wMDEzMTEsIDAuMDAxMzExLCAwLjAwMTMxMSwgMC4wMDEzMTEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDE4NywgMC4wMDE4NywgMC4wMDE4NywgMC4wMDE4NywgMC4wMDE4NywgMC4wMDE4NywgMC4wMDE4NyIsIFwKLSAgICAgICAgICAiMC4wMDE4NTEsIDAuMDAxODUxLCAwLjAwMTg1MiwgMC4wMDE4NTIsIDAuMDAxODUyLCAwLjAwMTg1MiwgMC4wMDE4NTIiLCBcCi0gICAgICAgICAgIjAuMDAxODQ4LCAwLjAwMTg0OSwgMC4wMDE4NSwgMC4wMDE4NTEsIDAuMDAxODUxLCAwLjAwMTg1MSwgMC4wMDE4NTEiLCBcCi0gICAgICAgICAgIjAuMDAxODU2LCAwLjAwMTg1NywgMC4wMDE4NTgsIDAuMDAxODU4LCAwLjAwMTg1OCwgMC4wMDE4NTgsIDAuMDAxODU4IiwgXAotICAgICAgICAgICIwLjAwMTg2MywgMC4wMDE4NjMsIDAuMDAxODcxLCAwLjAwMTg2NywgMC4wMDE4NjcsIDAuMDAxODY3LCAwLjAwMTg2NyIsIFwKLSAgICAgICAgICAiMC4wMDE4OTIsIDAuMDAxODkyLCAwLjAwMTg5NSwgMC4wMDE4OTIsIDAuMDAxODk3LCAwLjAwMTg5MywgMC4wMDE4OTciLCBcCi0gICAgICAgICAgIjAuMDAxOTE0LCAwLjAwMTkxNSwgMC4wMDE5MTYsIDAuMDAxOTE5LCAwLjAwMTkyLCAwLjAwMTkyLCAwLjAwMTkyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxMDkxLCAwLjAwMTA5MiwgMC4wMDEwOTMsIDAuMDAxMDkzLCAwLjAwMTA5MywgMC4wMDEwOTMsIDAuMDAxMDk0IiwgXAotICAgICAgICAgICIwLjAwMTA4NCwgMC4wMDEwODYsIDAuMDAxMDksIDAuMDAxMDkyLCAwLjAwMTA5MywgMC4wMDEwOTMsIDAuMDAxMDkzIiwgXAotICAgICAgICAgICIwLjAwMTA3OCwgMC4wMDEwOCwgMC4wMDEwODcsIDAuMDAxMDksIDAuMDAxMDkxLCAwLjAwMTA5MiwgMC4wMDEwOTIiLCBcCi0gICAgICAgICAgIjAuMDAxMDc0LCAwLjAwMTA3NywgMC4wMDEwODUsIDAuMDAxMDg5LCAwLjAwMTA5LCAwLjAwMTA5MiwgMC4wMDEwOTIiLCBcCi0gICAgICAgICAgIjAuMDAxMDc0LCAwLjAwMTA3NSwgMC4wMDEwODQsIDAuMDAxMDg4LCAwLjAwMTA5LCAwLjAwMTA5MSwgMC4wMDEwOTIiLCBcCi0gICAgICAgICAgIjAuMDAxMDc2LCAwLjAwMTA3NywgMC4wMDEwODMsIDAuMDAxMDg3LCAwLjAwMTA4OSwgMC4wMDEwOTEsIDAuMDAxMDkyIiwgXAotICAgICAgICAgICIwLjAwMTA4MSwgMC4wMDEwODEsIDAuMDAxMDg0LCAwLjAwMTA4NywgMC4wMDEwODksIDAuMDAxMDkxLCAwLjAwMTA5MSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDAxLCAwLjAwMDAxMSwgMC4wMDAwMTIsIDAuMDAwMDEyLCAwLjAwMDAxMywgMC4wMDAwMTMsIDAuMDAwMDEzIiwgXAotICAgICAgICAgICIwLjAwMDAwOCwgMC4wMDAwMDksIDAuMDAwMDE1LCAwLjAwMDAxNywgMC4wMDAwMTgsIDAuMDAwMDE4LCAwLjAwMDAxOCIsIFwKLSAgICAgICAgICAiMC4wMDAwMDIsIDAuMDAwMDA0LCAwLjAwMDAxMywgMC4wMDAwMTcsIDAuMDAwMDE5LCAwLjAwMDAyLCAwLjAwMDAyIiwgXAotICAgICAgICAgICIwLjAwMDAwMiwgMCwgMC4wMDAwMTEsIDAuMDAwMDE1LCAwLjAwMDAxNywgMC4wMDAwMiwgMC4wMDAwMiIsIFwKLSAgICAgICAgICAiMC4wMDAwMDMsIDAuMDAwMDAxLCAwLjAwMDAxLCAwLjAwMDAxNSwgMC4wMDAwMTYsIDAuMDAwMDE5LCAwLjAwMDAyIiwgXAotICAgICAgICAgICIwLjAwMDAwMywgMC4wMDAwMDEsIDAuMDAwMDA4LCAwLjAwMDAxNCwgMC4wMDAwMTYsIDAuMDAwMDE5LCAwLjAwMDAxOSIsIFwKLSAgICAgICAgICAiMCwgMC4wMDAwMDIsIDAuMDAwMDA4LCAwLjAwMDAxNCwgMC4wMDAwMTYsIDAuMDAwMDE5LCAwLjAwMDAxOSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogTk9SMlgxICoKLSAqIC0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoTk9SMlgxKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMDcwMTc2NzsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwODY1OTQxOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDg2MDY0MzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA4NjU5NDE7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzY1LCAwLjAwMDM4NywgMC4wMDAzOTEsIDAuMDAwMzkzLCAwLjAwMDM5NCwgMC4wMDAzOTYsIDAuMDAwMzk4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNDI5LCAwLjAwMDQzLCAwLjAwMDQzLCAwLjAwMDQzLCAwLjAwMDQzLCAwLjAwMDQyOSwgMC4wMDA0MyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwOTEwMjI7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwOTEwMjI7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwOTEwMTk7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMTA4LCAwLjAwMDEwOCwgMC4wMDAxMDgsIDAuMDAwMTA4LCAwLjAwMDEwOCwgMC4wMDAxMDgsIDAuMDAwMTA4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzA4LCAwLjAwMDMwOCwgMC4wMDAzMDgsIDAuMDAwMzA4LCAwLjAwMDMwOCwgMC4wMDAzMDgsIDAuMDAwMzA4Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMTQxMjE2OwotICAgIGZ1bmN0aW9uIDogIighKEErQikpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTE1NzksIDAuMTM4MjgsIDAuNDAyODksIDAuNjM2NjQyLCAwLjk0NzI5NCwgMS41Njk4LCAxLjk1ODA2IiwgXAotICAgICAgICAgICIwLjEwMDE1NiwgMC4xNDY5NzYsIDAuNDExNjU5LCAwLjY0NTA2NSwgMC45NTY4NTgsIDEuNTc4MzksIDEuOTY3NzkiLCBcCi0gICAgICAgICAgIjAuMTEwMjA0LCAwLjE1NzAwOSwgMC40MjE4NTcsIDAuNjU1MTg4LCAwLjk2NjgwNiwgMS41ODk5LCAxLjk3NzczIiwgXAotICAgICAgICAgICIwLjEyMDA4OSwgMC4xNjcwMTgsIDAuNDMxNzE0LCAwLjY2NTEyMiwgMC45NzY3NDcsIDEuNTk5MjUsIDEuOTg3MjQiLCBcCi0gICAgICAgICAgIjAuMTMwMDUzLCAwLjE3Njg4OSwgMC40NDE3OTgsIDAuNjc1Mzc1LCAwLjk4NzA4NiwgMS42MSwgMS45OTgxNiIsIFwKLSAgICAgICAgICAiMC4xNDU4OCwgMC4xOTMxMDEsIDAuNDU3NDIsIDAuNjkxNDE0LCAxLjAwMjYsIDEuNjI2MzgsIDIuMDEzNDkiLCBcCi0gICAgICAgICAgIjAuMTU5NTAxLCAwLjIwNzM1NSwgMC40NzIwMDksIDAuNzA1NzcsIDEuMDE3MDQsIDEuNjM5MzQsIDIuMDMiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTcyNDc3LCAwLjI2NjkwMiwgMC44MDE5MzcsIDEuMjc0NSwgMS45MDgyNSwgMy4xNjI3NCwgMy45NTIyIiwgXAotICAgICAgICAgICIwLjE3MjkxMiwgMC4yNjY4ODYsIDAuODAxOTA4LCAxLjI3NDE4LCAxLjkwNDIxLCAzLjE2NTg0LCAzLjk1MDA0IiwgXAotICAgICAgICAgICIwLjE3MzUyNiwgMC4yNjgzNywgMC44MDE4NjcsIDEuMjc0MzUsIDEuOTAzMjIsIDMuMTYzNTUsIDMuOTQ5NDQiLCBcCi0gICAgICAgICAgIjAuMTc1NjE5LCAwLjI2ODA4NiwgMC44MDM4MjEsIDEuMjc3MTcsIDEuOTAzNTEsIDMuMTYyNjMsIDMuOTU5NjciLCBcCi0gICAgICAgICAgIjAuMTc4ODI1LCAwLjI3MDUxNywgMC44MDQwMzMsIDEuMjc0MjUsIDEuOTAzMzEsIDMuMTYzNTYsIDMuOTQ5NjUiLCBcCi0gICAgICAgICAgIjAuMTg1OTQyLCAwLjI3NTU3LCAwLjgwMjU5NywgMS4yNzczMywgMS45MDgxNCwgMy4xNjM2MywgMy45NTk1OSIsIFwKLSAgICAgICAgICAiMC4xOTM0NzgsIDAuMjgxNjQyLCAwLjgwNDc4MSwgMS4yNzcsIDEuOTA4MDcsIDMuMTcwMDEsIDMuOTUwNDQiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDUwODg0LCAwLjA3NTY3MywgMC4yMTYwNDcsIDAuMzM5Nzk2LCAwLjUwNDYwNCwgMC44MzQ0MjUsIDEuMDQwODciLCBcCi0gICAgICAgICAgIjAuMDYxMDM0LCAwLjA4NTc2OCwgMC4yMjYxMTEsIDAuMzQ5NzY4LCAwLjUxNDgyOCwgMC44NDQ2MTYsIDEuMDUxMjYiLCBcCi0gICAgICAgICAgIjAuMDczOTg1LCAwLjA5ODQ5NSwgMC4yMzg3NjQsIDAuMzYyNDYzLCAwLjUyNjkzNywgMC44NTU4ODcsIDEuMDYyMzEiLCBcCi0gICAgICAgICAgIjAuMDg2ODU2LCAwLjExMTcwMiwgMC4yNTE2MDEsIDAuMzc1MTYxLCAwLjU0MDExOSwgMC44NjkyNjEsIDEuMDc0MzIiLCBcCi0gICAgICAgICAgIjAuMDk5OTY0LCAwLjEyNDYxLCAwLjI2NDQ2NSwgMC4zODc5MzcsIDAuNTUyOTMzLCAwLjg4MDk2NiwgMS4wODczNiIsIFwKLSAgICAgICAgICAiMC4xMTkzMTcsIDAuMTQ1NTIzLCAwLjI4NDY1MiwgMC40MDg3MiwgMC41NzM0LCAwLjkwMzEwNCwgMS4xMDkxNiIsIFwKLSAgICAgICAgICAiMC4xMzQxNDgsIDAuMTYzNTE1LCAwLjMwMjY2OCwgMC40MjY5MDYsIDAuNTkxNjQxLCAwLjkyMTA0LCAxLjEyNzIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDkyNDEsIDAuMTQyMTM5LCAwLjQyMzksIDAuNjcyNDcsIDEuMDA0MTUsIDEuNjY2NjUsIDIuMDgxOTQiLCBcCi0gICAgICAgICAgIjAuMDkyNTg4LCAwLjE0MjEzMSwgMC40MjM4MzMsIDAuNjcyMzI5LCAxLjAwMzgxLCAxLjY2NjgxLCAyLjA4MTE4IiwgXAotICAgICAgICAgICIwLjA5NjE2NSwgMC4xNDM3MjUsIDAuNDIzOTE4LCAwLjY3MjQ1MywgMS4wMDQxMywgMS42NjY2NCwgMi4wODE4OCIsIFwKLSAgICAgICAgICAiMC4xMDIyMDMsIDAuMTQ3NzUyLCAwLjQyMzkwNywgMC42NzIzNTIsIDEuMDAzOTgsIDEuNjY2NjcsIDIuMDgxMDgiLCBcCi0gICAgICAgICAgIjAuMTA5NTEsIDAuMTUzNjA0LCAwLjQyNDIyNywgMC42NzIzMTYsIDEuMDAzOTcsIDEuNjY3MDMsIDIuMDgxODIiLCBcCi0gICAgICAgICAgIjAuMTIyOTk3LCAwLjE2NDY1MSwgMC40Mjc5NTQsIDAuNjcyNjk4LCAxLjAwMzkzLCAxLjY2Njg3LCAyLjA4MTE4IiwgXAotICAgICAgICAgICIwLjEzNjAwNiwgMC4xNzU3OTYsIDAuNDMzMTI0LCAwLjY3NDE2NiwgMS4wMDQsIDEuNjY2NjYsIDIuMDgxMDciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg4NDUsIDAuMTM1MTcyLCAwLjM5OTY1MSwgMC42MzI4NjIsIDAuOTQ0NTM4LCAxLjU2NzcyLCAxLjk1NTY5IiwgXAotICAgICAgICAgICIwLjA5NzM5OCwgMC4xNDQxNjYsIDAuNDA4NTEsIDAuNjQyMzEyLCAwLjk1MzM3MiwgMS41NzUyMiwgMS45NjU5NiIsIFwKLSAgICAgICAgICAiMC4xMDg2NjksIDAuMTU1MTk2LCAwLjQyMDQyNywgMC42NTM3OTIsIDAuOTY1NjI0LCAxLjU4ODU1LCAxLjk3NjQ3IiwgXAotICAgICAgICAgICIwLjEyMDE1MSwgMC4xNjY5NTksIDAuNDMxNTc5LCAwLjY2NDg1NiwgMC45NzY1NDQsIDEuNTk5MjYsIDEuOTg4MDYiLCBcCi0gICAgICAgICAgIjAuMTMxNzcyLCAwLjE3ODM4MywgMC40NDMwMywgMC42NzY2NDcsIDAuOTg3NzA0LCAxLjYwOTYxLCAyLjAwMDg5IiwgXAotICAgICAgICAgICIwLjE1MDYwMSwgMC4xOTY4OTEsIDAuNDYwMDksIDAuNjk1MDIyLCAxLjAwNjA1LCAxLjYyODUsIDIuMDE3NjYiLCBcCi0gICAgICAgICAgIjAuMTY2ODE5LCAwLjIxMzE3LCAwLjQ3NzQ2LCAwLjcxMTA2NywgMS4wMjIxOSwgMS42NDQ4MiwgMi4wMzM1MSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNzI4MzQsIDAuMjY3MTA4LCAwLjgwMjU5LCAxLjI3NzI3LCAxLjkwMzY1LCAzLjE2MjI0LCAzLjk2MDY0IiwgXAotICAgICAgICAgICIwLjE3MjU1LCAwLjI2Njg5OCwgMC44MDM4MjYsIDEuMjc0MTEsIDEuOTA4NTMsIDMuMTY0NjEsIDMuOTQ4OTQiLCBcCi0gICAgICAgICAgIjAuMTczNTY1LCAwLjI2NzUwNywgMC44MDIxOTUsIDEuMjczOTksIDEuOTA0MzUsIDMuMTYyNiwgMy45NTAwNCIsIFwKLSAgICAgICAgICAiMC4xNzc5MTIsIDAuMjY5MTU5LCAwLjgwMzgwNiwgMS4yNzU4NiwgMS45MDM2NiwgMy4xNjIyNywgMy45NDk2OCIsIFwKLSAgICAgICAgICAiMC4xODMzMzEsIDAuMjcyMzE0LCAwLjgwMzc1OCwgMS4yNzQzMiwgMS45MDUyNCwgMy4xNjc5MiwgMy45NDkzNyIsIFwKLSAgICAgICAgICAiMC4xOTM4NywgMC4yODAxMjgsIDAuODAzODc1LCAxLjI3NDQ2LCAxLjkwODA5LCAzLjE2NTIyLCAzLjk0OTU2IiwgXAotICAgICAgICAgICIwLjIwNTA1NywgMC4yODkxNzEsIDAuODA0NzczLCAxLjI3NDExLCAxLjkwODM2LCAzLjE2MzA3LCAzLjk1MjgxIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0ODcxNiwgMC4wNzM0NSwgMC4yMTM2NjMsIDAuMzM3NTA5LCAwLjUwMjU1MywgMC44MzIzMzMsIDEuMDM4NjIiLCBcCi0gICAgICAgICAgIjAuMDU4NzkzLCAwLjA4MzY0NywgMC4yMjM5OTEsIDAuMzQ3NjQ4LCAwLjUxMjU2MSwgMC44NDIzNTIsIDEuMDQ5MTciLCBcCi0gICAgICAgICAgIjAuMDcxNzg4LCAwLjA5NjY2MSwgMC4yMzY1NDksIDAuMzYwMjMzLCAwLjUyNDY5NywgMC44NTM2OTEsIDEuMDYwMjkiLCBcCi0gICAgICAgICAgIjAuMDg0NzQ5LCAwLjEwOTQ1NiwgMC4yNDkzMDMsIDAuMzcyOTM1LCAwLjUzNzgyMSwgMC44NjczNjUsIDEuMDcyMjgiLCBcCi0gICAgICAgICAgIjAuMDk3NjQzLCAwLjEyMjM1NiwgMC4yNjIzNTIsIDAuMzg1OTM1LCAwLjU1MDc5MiwgMC44Nzg3MzcsIDEuMDg0OTgiLCBcCi0gICAgICAgICAgIjAuMTE2NTA2LCAwLjE0MzI3NiwgMC4yODIzNjMsIDAuNDA2NDQ2LCAwLjU3MTE2NCwgMC45MDA4NjgsIDEuMTA2OTMiLCBcCi0gICAgICAgICAgIjAuMTMwNjYzLCAwLjE2MDkyNCwgMC4zMDAzNjcsIDAuNDI0NjUxLCAwLjU4OTMwMSwgMC45MTg3OTMsIDEuMTI0OTciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg5ODMzLCAwLjEzOTU2NSwgMC40MjI2OTYsIDAuNjcwMzMxLCAxLjAwMjYyLCAxLjY2NTY1LCAyLjA4MDY4IiwgXAotICAgICAgICAgICIwLjA5MDIxOCwgMC4xMzk2MywgMC40MjE3MzYsIDAuNjcwNDIyLCAxLjAwMjE0LCAxLjY3MDY2LCAyLjA3OTk3IiwgXAotICAgICAgICAgICIwLjA5Mzg3NCwgMC4xNDEwNjIsIDAuNDIxNjcsIDAuNjcwODksIDEuMDA0NiwgMS42Njk5LCAyLjA4MDExIiwgXAotICAgICAgICAgICIwLjA5OTg5NSwgMC4xNDU2NjEsIDAuNDIxNTUsIDAuNjcwNjE1LCAxLjAwMTg4LCAxLjY2NTQ2LCAyLjA4MDI2IiwgXAotICAgICAgICAgICIwLjEwNzUyMiwgMC4xNTEzNzcsIDAuNDIzMjAyLCAwLjY3MDc2NywgMS4wMDMzNSwgMS42NjUzNCwgMi4wODE3OSIsIFwKLSAgICAgICAgICAiMC4xMjEwODUsIDAuMTYyNjk3LCAwLjQyNjc0NiwgMC42NzE5OCwgMS4wMDI3MiwgMS42NjUwMiwgMi4wODU2OCIsIFwKLSAgICAgICAgICAiMC4xMzQ1NzgsIDAuMTczNzg5LCAwLjQzMjEwOCwgMC42NzIyMTYsIDEuMDAzMjQsIDEuNjY2LCAyLjA4MTM5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxODAyLCAwLjAwMTgwNCwgMC4wMDE4MDYsIDAuMDAxODA2LCAwLjAwMTgwNiwgMC4wMDE4MDYsIDAuMDAxODA2IiwgXAotICAgICAgICAgICIwLjAwMTc4OCwgMC4wMDE3OTQsIDAuMDAxODAyLCAwLjAwMTgwNCwgMC4wMDE4MDQsIDAuMDAxODAyLCAwLjAwMTgwNSIsIFwKLSAgICAgICAgICAiMC4wMDE3NzcsIDAuMDAxNzg1LCAwLjAwMTc5OCwgMC4wMDE4MDEsIDAuMDAxODAzLCAwLjAwMTgwNCwgMC4wMDE4MDUiLCBcCi0gICAgICAgICAgIjAuMDAxNzY5LCAwLjAwMTc3OCwgMC4wMDE3OTUsIDAuMDAxNzk5LCAwLjAwMTgwMSwgMC4wMDE4MDMsIDAuMDAxODAzIiwgXAotICAgICAgICAgICIwLjAwMTc2NCwgMC4wMDE3NzMsIDAuMDAxNzkyLCAwLjAwMTc5NywgMC4wMDE4LCAwLjAwMTgwMiwgMC4wMDE4MDMiLCBcCi0gICAgICAgICAgIjAuMDAxNzYxLCAwLjAwMTc2OCwgMC4wMDE3ODksIDAuMDAxNzk0LCAwLjAwMTc5OCwgMC4wMDE4MDEsIDAuMDAxODAyIiwgXAotICAgICAgICAgICIwLjAwMTc2MSwgMC4wMDE3NjcsIDAuMDAxNzg2LCAwLjAwMTc5MiwgMC4wMDE3OTYsIDAuMDAxOCwgMC4wMDE4MDIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDAyOTcsIDAuMDAwMjk4LCAwLjAwMDI5OSwgMC4wMDAyOTksIDAuMDAwMjk5LCAwLjAwMDI5OSwgMC4wMDAyOTkiLCBcCi0gICAgICAgICAgIjAuMDAwMjc3LCAwLjAwMDI4LCAwLjAwMDI4NSwgMC4wMDAyODYsIDAuMDAwMjg4LCAwLjAwMDI4OCwgMC4wMDAyODgiLCBcCi0gICAgICAgICAgIjAuMDAwMjY4LCAwLjAwMDI3MiwgMC4wMDAyODIsIDAuMDAwMjg0LCAwLjAwMDI4NCwgMC4wMDAyODIsIDAuMDAwMjgyIiwgXAotICAgICAgICAgICIwLjAwMDI3MSwgMC4wMDAyNzEsIDAuMDAwMjgxLCAwLjAwMDI4MywgMC4wMDAyODQsIDAuMDAwMjgzLCAwLjAwMDI4MiIsIFwKLSAgICAgICAgICAiMC4wMDAyNzQsIDAuMDAwMjc2LCAwLjAwMDI4MSwgMC4wMDAyODIsIDAuMDAwMjgyLCAwLjAwMDI4MiwgMC4wMDAyODIiLCBcCi0gICAgICAgICAgIjAuMDAwMjg0LCAwLjAwMDI4MiwgMC4wMDAyODEsIDAuMDAwMjgzLCAwLjAwMDI4MywgMC4wMDAyODQsIDAuMDAwMjg0IiwgXAotICAgICAgICAgICIwLjAwMDI5OSwgMC4wMDAyOTIsIDAuMDAwMjg0LCAwLjAwMDI4NSwgMC4wMDAyODUsIDAuMDAwMjg0LCAwLjAwMDI4NCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTQ2NCwgMC4wMDE0NjcsIDAuMDAxNDY5LCAwLjAwMTQ3MSwgMC4wMDE0NywgMC4wMDE0NywgMC4wMDE0NyIsIFwKLSAgICAgICAgICAiMC4wMDE0NDQsIDAuMDAxNDUyLCAwLjAwMTQ2NCwgMC4wMDE0NjYsIDAuMDAxNDY4LCAwLjAwMTQ2OSwgMC4wMDE0NjkiLCBcCi0gICAgICAgICAgIjAuMDAxNDI5LCAwLjAwMTQ0LCAwLjAwMTQ1OCwgMC4wMDE0NjIsIDAuMDAxNDY1LCAwLjAwMTQ2NywgMC4wMDE0NjgiLCBcCi0gICAgICAgICAgIjAuMDAxNDIzLCAwLjAwMTQzMywgMC4wMDE0NTQsIDAuMDAxNDU5LCAwLjAwMTQ2MywgMC4wMDE0NjYsIDAuMDAxNDY2IiwgXAotICAgICAgICAgICIwLjAwMTQyMywgMC4wMDE0MzEsIDAuMDAxNDUxLCAwLjAwMTQ1NywgMC4wMDE0NjEsIDAuMDAxNDY1LCAwLjAwMTQ2NiIsIFwKLSAgICAgICAgICAiMC4wMDE0MzIsIDAuMDAxNDMzLCAwLjAwMTQ0NiwgMC4wMDE0NTUsIDAuMDAxNDU5LCAwLjAwMTQ2MywgMC4wMDE0NjUiLCBcCi0gICAgICAgICAgIjAuMDAxNDQ1LCAwLjAwMTQ0LCAwLjAwMTQ0OSwgMC4wMDE0NTQsIDAuMDAxNDU5LCAwLjAwMTQ2MywgMC4wMDE0NjQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDAwMzEsIDAuMDAwMDM0LCAwLjAwMDAzNywgMC4wMDAwMzgsIDAuMDAwMDM4LCAwLjAwMDAzOCwgMC4wMDAwMzgiLCBcCi0gICAgICAgICAgIjAuMDAwMDE4LCAwLjAwMDAyOSwgMC4wMDAwNDMsIDAuMDAwMDQ1LCAwLjAwMDA0NywgMC4wMDAwNDgsIDAuMDAwMDQ5IiwgXAotICAgICAgICAgICIwLCAwLjAwMDAxNiwgMC4wMDAwNCwgMC4wMDAwNDQsIDAuMDAwMDQ4LCAwLjAwMDA1MiwgMC4wMDAwNTIiLCBcCi0gICAgICAgICAgIjAuMDAwMDEsIDAuMDAwMDA2LCAwLjAwMDAzNiwgMC4wMDAwNDIsIDAuMDAwMDQ2LCAwLjAwMDA1LCAwLjAwMDA1MiIsIFwKLSAgICAgICAgICAiMC4wMDAwMDksIDAuMDAwMDA1LCAwLjAwMDAzMSwgMC4wMDAwMzksIDAuMDAwMDQzLCAwLjAwMDA0OSwgMC4wMDAwNSIsIFwKLSAgICAgICAgICAiMC4wMDAwMDcsIDAuMDAwMDAzLCAwLjAwMDAyOSwgMC4wMDAwMzcsIDAuMDAwMDQyLCAwLjAwMDA0NywgMC4wMDAwNDgiLCBcCi0gICAgICAgICAgIjAuMDAwMDAyLCAwLjAwMDAwNywgMC4wMDAwMjcsIDAuMDAwMDM3LCAwLjAwMDA0MiwgMC4wMDAwNDYsIDAuMDAwMDQ4Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBOT1IyWDIgKgotICogLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChOT1IyWDIpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4xNDAzNTI7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTc5NzY1OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTc4NzExOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTc5NzY1OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDczMiwgMC4wMDA3NzQsIDAuMDAwNzgyLCAwLjAwMDc4NywgMC4wMDA3ODksIDAuMDAwNzkyLCAwLjAwMDc5NSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDg1OSwgMC4wMDA4NiwgMC4wMDA4NiwgMC4wMDA4NiwgMC4wMDA4NjEsIDAuMDAwODYxLCAwLjAwMDg2MSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNjc3MjQ7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNjc3MTI7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNjc3MjQ7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjE2LCAwLjAwMDIxNiwgMC4wMDAyMTYsIDAuMDAwMjE2LCAwLjAwMDIxNiwgMC4wMDAyMTYsIDAuMDAwMjE2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNjM2LCAwLjAwMDYzNiwgMC4wMDA2MzYsIDAuMDAwNjM2LCAwLjAwMDYzNiwgMC4wMDA2MzYsIDAuMDAwNjM1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMjc2ODMxOwotICAgIGZ1bmN0aW9uIDogIighKEErQikpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTIzODMsIDAuMjQ1NDI0LCAwLjM5OTk0NCwgMC41OTI3MDksIDAuNzg1NzUzLCAwLjk3ODUwNCwgMS4xNzI0IiwgXAotICAgICAgICAgICIwLjA2MDkzOCwgMC4yNTQwNjYsIDAuNDA4MzYzLCAwLjYwMTM3OCwgMC43OTQxNjUsIDAuOTg3NTgxLCAxLjE4MDQzIiwgXAotICAgICAgICAgICIwLjA3MDg5OSwgMC4yNjQyNDksIDAuNDE4OTU5LCAwLjYxMTgzMiwgMC44MDQzNzMsIDAuOTk3NjYxLCAxLjE5MDA0IiwgXAotICAgICAgICAgICIwLjA4MDgyMSwgMC4yNzQyNiwgMC40Mjg2NzUsIDAuNjIyMTcyLCAwLjgxNDQ1OCwgMS4wMDc3MiwgMS4yMDAzMSIsIFwKLSAgICAgICAgICAiMC4wOTAzMjYsIDAuMjg0MTk5LCAwLjQzODc3NywgMC42MzE3NDksIDAuODI1NDU5LCAxLjAxNzQ1LCAxLjIxMTUzIiwgXAotICAgICAgICAgICIwLjEwNDAwOSwgMC4zMDAxMjksIDAuNDU0NDE3LCAwLjY0NzcxNiwgMC44NDA2ODcsIDEuMDMzNjQsIDEuMjI2MzEiLCBcCi0gICAgICAgICAgIjAuMTE0NDIyLCAwLjMxNDA5NywgMC40Njg5NTksIDAuNjYyMDUsIDAuODU0OTAyLCAxLjA0Nzg4LCAxLjI0MTA1Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5MzUzNywgMC40ODQxOCwgMC43OTY1ODksIDEuMTg3NjgsIDEuNTc4MzcsIDEuOTc0MDksIDIuMzYwNjgiLCBcCi0gICAgICAgICAgIjAuMDkzNjQ1LCAwLjQ4NTI2NywgMC43OTczOTMsIDEuMTk0MTMsIDEuNTc5NTEsIDEuOTY4OTQsIDIuMzU5OTUiLCBcCi0gICAgICAgICAgIjAuMDk1NjM5LCAwLjQ4NDIwOSwgMC43OTcwMzIsIDEuMTg3MzQsIDEuNTc5NDMsIDEuOTY5MjEsIDIuMzY1MTUiLCBcCi0gICAgICAgICAgIjAuMDk5NTA2LCAwLjQ4NTE3NywgMC43OTg1ODgsIDEuMTg3ODksIDEuNTgwODksIDEuOTY5NDUsIDIuMzYxNTEiLCBcCi0gICAgICAgICAgIjAuMTA0NTE1LCAwLjQ4Njk2LCAwLjc5NjcwOSwgMS4xODc2MSwgMS41Nzg4NywgMS45NzM1MSwgMi4zNjA1OCIsIFwKLSAgICAgICAgICAiMC4xMTQyMjEsIDAuNDg3NDA4LCAwLjc5NjgwMywgMS4xODk2MiwgMS41ODE4MywgMS45NzM0OCwgMi4zNjM5NiIsIFwKLSAgICAgICAgICAiMC4xMjM2MDQsIDAuNDkwNzY0LCAwLjgwMTg1OCwgMS4xODc2NiwgMS41ODIxMiwgMS45NzM1LCAyLjM1OTc1Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzMDIzOCwgMC4xMzM2MDcsIDAuMjE2MTU3LCAwLjMxOTMxMiwgMC40MjIyNzgsIDAuNTI1NTQxLCAwLjYyODU5NSIsIFwKLSAgICAgICAgICAiMC4wNDA0NDMsIDAuMTQzODAzLCAwLjIyNjMyNSwgMC4zMjk0MDYsIDAuNDMyNTIxLCAwLjUzNTYyNCwgMC42Mzg2NTIiLCBcCi0gICAgICAgICAgIjAuMDUzNDg4LCAwLjE1NjgyMywgMC4yMzkzNTEsIDAuMzQxOTYzLCAwLjQ0NTYyNCwgMC41NDg0NTUsIDAuNjUxODc5IiwgXAotICAgICAgICAgICIwLjA2NTc0LCAwLjE2OTMyOSwgMC4yNTE3MTYsIDAuMzU0NzkxLCAwLjQ1NzczMywgMC41NjA4NDQsIDAuNjY0MDY3IiwgXAotICAgICAgICAgICIwLjA3NjQ0OSwgMC4xODE5MTcsIDAuMjY0NzI5LCAwLjM2Nzc3MiwgMC40NzA1MjksIDAuNTczNzM4LCAwLjY3Njg1MSIsIFwKLSAgICAgICAgICAiMC4wOTExMzksIDAuMjAzMDQ2LCAwLjI4NDc3LCAwLjM4ODMwMSwgMC40OTExNiwgMC41OTQxNTcsIDAuNjk3MjE3IiwgXAotICAgICAgICAgICIwLjEwMjY0LCAwLjIyMTQxNCwgMC4zMDI3ODgsIDAuNDA2NDE4LCAwLjUwOTM0NiwgMC42MTIyMTQsIDAuNzE1MTEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDUxMTM0LCAwLjI1ODM5OSwgMC40MjQxNzgsIDAuNjMxMzg1LCAwLjgzODU3NCwgMS4wNDU5MywgMS4yNTMwOCIsIFwKLSAgICAgICAgICAiMC4wNTI0NjYsIDAuMjU4MzQ1LCAwLjQyNDA2NSwgMC42MzEyMTEsIDAuODM4MjY1LCAxLjA0NTg3LCAxLjI1MjczIiwgXAotICAgICAgICAgICIwLjA1ODI5MSwgMC4yNTgzODEsIDAuNDI0MTI0LCAwLjYzMTE0NiwgMC44Mzg2MTYsIDEuMDQ1NjQsIDEuMjUzMDkiLCBcCi0gICAgICAgICAgIjAuMDY2NjM4LCAwLjI1OTUzNiwgMC40MjQxMDksIDAuNjMxMzcxLCAwLjgzODMxNiwgMS4wNDU2NywgMS4yNTMxNCIsIFwKLSAgICAgICAgICAiMC4wNzU4NjQsIDAuMjYyNzQ4LCAwLjQyNDQxNywgMC42MzEzMDYsIDAuODM4NTksIDEuMDQ1NzYsIDEuMjUzMjgiLCBcCi0gICAgICAgICAgIjAuMDkxMTI1LCAwLjI2OTkwMSwgMC40MjgwOSwgMC42MzE0NDQsIDAuODM4NjIsIDEuMDQ1ODcsIDEuMjUzIiwgXAotICAgICAgICAgICIwLjEwMzQ4NiwgMC4yNzgwNDQsIDAuNDMzMzE5LCAwLjYzMzY2NCwgMC44Mzg2NjUsIDEuMDQ1NTYsIDEuMjUyNzMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQ5MjgxLCAwLjI0MjMzNiwgMC4zOTY4LCAwLjU4OTQ5NiwgMC43ODI2MjQsIDAuOTc1MTA2LCAxLjE2OTMxIiwgXAotICAgICAgICAgICIwLjA1ODE2NSwgMC4yNTE0MzIsIDAuNDA1NjcxLCAwLjU5ODkyOCwgMC43OTE5NiwgMC45ODUyMzgsIDEuMTc4MTciLCBcCi0gICAgICAgICAgIjAuMDY5NDk1LCAwLjI2Mjc2NCwgMC40MTcxNzgsIDAuNjEwMDk1LCAwLjgwMzQ1NiwgMC45OTU4NTQsIDEuMTg4OTciLCBcCi0gICAgICAgICAgIjAuMDgxMzYsIDAuMjc0NDgxLCAwLjQyODc4OSwgMC42MjE3LCAwLjgxNDYyMywgMS4wMDc0NiwgMS4yMDA1NyIsIFwKLSAgICAgICAgICAiMC4wOTI2NDksIDAuMjg1NjYsIDAuNDQwMDA5LCAwLjYzMjg4NiwgMC44MjY3NjUsIDEuMDE4NzQsIDEuMjEyODkiLCBcCi0gICAgICAgICAgIjAuMTA4NTk5LCAwLjMwNDA3NSwgMC40NTcxNSwgMC42NTEzMDYsIDAuODQ0MjI0LCAxLjAzNzIsIDEuMjMwOTQiLCBcCi0gICAgICAgICAgIjAuMTIwMjU4LCAwLjMyMDE1NSwgMC40NzQ1LCAwLjY2Nzg1NywgMC44NjEwMzksIDEuMDUzNzUsIDEuMjQ2MzIiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDkzNTM2LCAwLjQ4NDE1MSwgMC43OTY2NjYsIDEuMTkwMjQsIDEuNTc4NTgsIDEuOTcwMjUsIDIuMzYwNjUiLCBcCi0gICAgICAgICAgIjAuMDkzODE2LCAwLjQ4NDA5NCwgMC43OTc4NjgsIDEuMTg3NSwgMS41NzgxMywgMS45Njg3OSwgMi4zNTkzNSIsIFwKLSAgICAgICAgICAiMC4wOTc5NiwgMC40ODUyMDUsIDAuNzk4NzMyLCAxLjE5MDM5LCAxLjU3ODAyLCAxLjk3MDkyLCAyLjM2MjExIiwgXAotICAgICAgICAgICIwLjEwNDM0NSwgMC40ODY3NDEsIDAuNzk4NjQzLCAxLjE4ODIzLCAxLjU4MTgzLCAxLjk3MzQ3LCAyLjM2MTcyIiwgXAotICAgICAgICAgICIwLjExMjQxOCwgMC40ODQzNzcsIDAuNzk4NzI4LCAxLjE5MDM2LCAxLjU3ODg3LCAxLjk3MzUsIDIuMzYwNzEiLCBcCi0gICAgICAgICAgIjAuMTI2ODI2LCAwLjQ4ODcyMiwgMC43OTg0NzUsIDEuMTkwMSwgMS41ODEwOCwgMS45NzM1NiwgMi4zNTkzOCIsIFwKLSAgICAgICAgICAiMC4xMzk3NTYsIDAuNDkyNzAxLCAwLjc5OTU3NSwgMS4xODczNCwgMS41Nzg0OCwgMS45NjksIDIuMzY1NTYiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDI4ODMyLCAwLjEzNDc0OSwgMC4yMTk0ODIsIDAuMzI1MjY4LCAwLjQzMTE3NSwgMC41MzY5MjMsIDAuNjQyODk0IiwgXAotICAgICAgICAgICIwLjAzOTAzNCwgMC4xNDUwNDcsIDAuMjI5NzgyLCAwLjMzNTU1OCwgMC40NDE0MzUsIDAuNTQ3MTc4LCAwLjY1MzA3OCIsIFwKLSAgICAgICAgICAiMC4wNTE5NDQsIDAuMTU3NjQyLCAwLjI0MjI5MSwgMC4zNDgxMjUsIDAuNDUzMTMyLCAwLjU1ODg4LCAwLjY2NDc5NyIsIFwKLSAgICAgICAgICAiMC4wNjM5MjksIDAuMTcwOTAyLCAwLjI1NTU5NSwgMC4zNjE0NTIsIDAuNDY3MjI4LCAwLjU3MzA2LCAwLjY3ODc4NyIsIFwKLSAgICAgICAgICAiMC4wNzQxNjQsIDAuMTgzMDc5LCAwLjI2Nzc2NCwgMC4zNzM4MjksIDAuNDc5NTY1LCAwLjU4NDEzLCAwLjY4OTc1OSIsIFwKLSAgICAgICAgICAiMC4wODgxOTIsIDAuMjA0MDYxLCAwLjI4ODAzNSwgMC4zOTQzNiwgMC40OTk5MjIsIDAuNjA1NTEsIDAuNzExMzQ0IiwgXAotICAgICAgICAgICIwLjA5ODg2OCwgMC4yMjIzMDcsIDAuMzA1OTc0LCAwLjQxMjM0MywgMC41MTc5NzQsIDAuNjIzNzQyLCAwLjcyOTQ0MiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDk5MDYsIDAuMjYzMTE3LCAwLjQzMzEyNiwgMC42NDY5MDMsIDAuODU5MjIzLCAxLjA3MzI3LCAxLjI4NTMiLCBcCi0gICAgICAgICAgIjAuMDUxMTM5LCAwLjI2MzUwNiwgMC40MzMzNSwgMC42NDYwOTMsIDAuODU5Njc4LCAxLjA3NDk1LCAxLjI4NTU4IiwgXAotICAgICAgICAgICIwLjA1NzQ1MSwgMC4yNjMzNDQsIDAuNDMzMTA3LCAwLjY0Njk1OCwgMC44NTkzOCwgMS4wNzIwNCwgMS4yODU5NCIsIFwKLSAgICAgICAgICAiMC4wNjU2NzIsIDAuMjYzNzIzLCAwLjQzMzA1OCwgMC42NDYzNzYsIDAuODU4ODI4LCAxLjA3MTYzLCAxLjI4NTEiLCBcCi0gICAgICAgICAgIjAuMDc1MjI4LCAwLjI2NzY2MiwgMC40MzM0NDgsIDAuNjQ3MTEsIDAuODU5MzEsIDEuMDcyMzIsIDEuMjg0OTgiLCBcCi0gICAgICAgICAgIjAuMDkwODYzLCAwLjI3NDU1OSwgMC40MzY4NDksIDAuNjQ2NDMxLCAwLjg1OTk2OCwgMS4wNzUyNCwgMS4yODQ2NiIsIFwKLSAgICAgICAgICAiMC4xMDM5MDUsIDAuMjgyNTUxLCAwLjQ0MjE3LCAwLjY1MDA4NSwgMC44NjE2NTgsIDEuMDczNDgsIDEuMjg2NTEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDM2MjksIDAuMDAzNjQxLCAwLjAwMzY0MSwgMC4wMDM2NDIsIDAuMDAzNjQzLCAwLjAwMzY0MiwgMC4wMDM2NDIiLCBcCi0gICAgICAgICAgIjAuMDAzNTg1LCAwLjAwMzYzNCwgMC4wMDM2MzUsIDAuMDAzNjM4LCAwLjAwMzYzMiwgMC4wMDM2NDEsIDAuMDAzNjQxIiwgXAotICAgICAgICAgICIwLjAwMzU1OCwgMC4wMDM2MTcsIDAuMDAzNjI3LCAwLjAwMzYzMiwgMC4wMDM2MywgMC4wMDM2MzcsIDAuMDAzNjM4IiwgXAotICAgICAgICAgICIwLjAwMzU0MywgMC4wMDM2MDUsIDAuMDAzNjIsIDAuMDAzNjI3LCAwLjAwMzYzMSwgMC4wMDM2MzMsIDAuMDAzNjM1IiwgXAotICAgICAgICAgICIwLjAwMzUzNywgMC4wMDM1OTgsIDAuMDAzNjEzLCAwLjAwMzYyMywgMC4wMDM2MjgsIDAuMDAzNjMyLCAwLjAwMzYzMyIsIFwKLSAgICAgICAgICAiMC4wMDM1MzQsIDAuMDAzNTg5LCAwLjAwMzYwNSwgMC4wMDM2MTcsIDAuMDAzNjIyLCAwLjAwMzYyNSwgMC4wMDM2MjgiLCBcCi0gICAgICAgICAgIjAuMDAzNTM5LCAwLjAwMzU4NSwgMC4wMDM2MDIsIDAuMDAzNjEzLCAwLjAwMzYyLCAwLjAwMzYyNCwgMC4wMDM2MjciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDA2MiwgMC4wMDA2MjYsIDAuMDAwNjI3LCAwLjAwMDYyNywgMC4wMDA2MjcsIDAuMDAwNjI3LCAwLjAwMDYyNyIsIFwKLSAgICAgICAgICAiMC4wMDA1NjYsIDAuMDAwNTk3LCAwLjAwMDYsIDAuMDAwNjAyLCAwLjAwMDYwMywgMC4wMDA2MDMsIDAuMDAwNjA0IiwgXAotICAgICAgICAgICIwLjAwMDU0NiwgMC4wMDA1ODcsIDAuMDAwNTkzLCAwLjAwMDU5NSwgMC4wMDA1OTgsIDAuMDAwNTk5LCAwLjAwMDU5OSIsIFwKLSAgICAgICAgICAiMC4wMDA1NiwgMC4wMDA1ODYsIDAuMDAwNTksIDAuMDAwNTkzLCAwLjAwMDU5NSwgMC4wMDA1OTYsIDAuMDAwNTk2IiwgXAotICAgICAgICAgICIwLjAwMDU3NiwgMC4wMDA1NzgsIDAuMDAwNTg4LCAwLjAwMDU5MSwgMC4wMDA1OTQsIDAuMDAwNTk1LCAwLjAwMDU5NSIsIFwKLSAgICAgICAgICAiMC4wMDA2MTUsIDAuMDAwNTkyLCAwLjAwMDU5MSwgMC4wMDA1OTUsIDAuMDAwNTk1LCAwLjAwMDU5NSwgMC4wMDA1OTUiLCBcCi0gICAgICAgICAgIjAuMDAwNjYyLCAwLjAwMDYwNCwgMC4wMDA1OTYsIDAuMDAwNTk5LCAwLjAwMDU5OCwgMC4wMDA1OTgsIDAuMDAwNTk3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyOTQ1LCAwLjAwMjk2NCwgMC4wMDI5NjYsIDAuMDAyOTY3LCAwLjAwMjk2NywgMC4wMDI5NjcsIDAuMDAyOTY3IiwgXAotICAgICAgICAgICIwLjAwMjg4MSwgMC4wMDI5NDYsIDAuMDAyOTU1LCAwLjAwMjk1OSwgMC4wMDI5NjEsIDAuMDAyOTYzLCAwLjAwMjk2MyIsIFwKLSAgICAgICAgICAiMC4wMDI4NTEsIDAuMDAyOTMsIDAuMDAyOTQ0LCAwLjAwMjk1LCAwLjAwMjk1NSwgMC4wMDI5NTcsIDAuMDAyOTU4IiwgXAotICAgICAgICAgICIwLjAwMjg1OCwgMC4wMDI5MjIsIDAuMDAyOTM3LCAwLjAwMjk0NSwgMC4wMDI5NTEsIDAuMDAyOTU0LCAwLjAwMjk1NiIsIFwKLSAgICAgICAgICAiMC4wMDI4NjMsIDAuMDAyOTEyLCAwLjAwMjkzLCAwLjAwMjk0LCAwLjAwMjk0NiwgMC4wMDI5NSwgMC4wMDI5NTIiLCBcCi0gICAgICAgICAgIjAuMDAyOTAyLCAwLjAwMjkwOCwgMC4wMDI5MTksIDAuMDAyOTM2LCAwLjAwMjk0MiwgMC4wMDI5NDYsIDAuMDAyOTUiLCBcCi0gICAgICAgICAgIjAuMDAyOTQ4LCAwLjAwMjkxMywgMC4wMDI5MjQsIDAuMDAyOTM1LCAwLjAwMjk0MSwgMC4wMDI5NDUsIDAuMDAyOTQ4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwMDU1LCAwLjAwMDA3OSwgMC4wMDAwODEsIDAuMDAwMDgyLCAwLjAwMDA4MywgMC4wMDAwODMsIDAuMDAwMDg0IiwgXAotICAgICAgICAgICIwLjAwMDAwMSwgMC4wMDAwODIsIDAuMDAwMDkxLCAwLjAwMDA5NiwgMC4wMDAwOTgsIDAuMDAwMSwgMC4wMDAxMDEiLCBcCi0gICAgICAgICAgIjAuMDAwMDUxLCAwLjAwMDA2NCwgMC4wMDAwODMsIDAuMDAwMDkyLCAwLjAwMDEsIDAuMDAwMTAzLCAwLjAwMDEwNSIsIFwKLSAgICAgICAgICAiMC4wMDAwNjIsIDAuMDAwMDU1LCAwLjAwMDA3NSwgMC4wMDAwODYsIDAuMDAwMDkyLCAwLjAwMDA5NSwgMC4wMDAwOTgiLCBcCi0gICAgICAgICAgIjAuMDAwMDYyLCAwLjAwMDA0LCAwLjAwMDA2NSwgMC4wMDAwOCwgMC4wMDAwODgsIDAuMDAwMDk0LCAwLjAwMDA5OCIsIFwKLSAgICAgICAgICAiMC4wMDAwMTksIDAuMDAwMDQzLCAwLjAwMDA2MywgMC4wMDAwNzksIDAuMDAwMDg2LCAwLjAwMDA5MSwgMC4wMDAwOTUiLCBcCi0gICAgICAgICAgIjAuMDAwMDIyLCAwLjAwMDA0NSwgMC4wMDAwNjEsIDAuMDAwMDc3LCAwLjAwMDA4NSwgMC4wMDAwOSwgMC4wMDAwOTMiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IE5PUjJYNCAqCi0gKiAtLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKE5PUjJYNCkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjI4MDY5MTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAzMzQ4MDY7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAzMzI2NTY7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAzMzQ4MDY7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxNDU5LCAwLjAwMTU0OCwgMC4wMDE1NiwgMC4wMDE1NzEsIDAuMDAxNTc3LCAwLjAwMTU4NSwgMC4wMDE1OTEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDE3MTksIDAuMDAxNzIsIDAuMDAxNzIxLCAwLjAwMTcyMSwgMC4wMDE3MjIsIDAuMDAxNzIyLCAwLjAwMTcyMiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAzMjE5MTc7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAzMjE4OTY7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAzMjE5MTc7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNDMxLCAwLjAwMDQzMSwgMC4wMDA0MzEsIDAuMDAwNDMxLCAwLjAwMDQzMSwgMC4wMDA0MzEsIDAuMDAwNDMxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxMjU5LCAwLjAwMTI1OSwgMC4wMDEyNTksIDAuMDAxMjU5LCAwLjAwMTI1OSwgMC4wMDEyNTksIDAuMDAxMjU5Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuNTYxODU3OwotICAgIGZ1bmN0aW9uIDogIighKEErQikpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzMzE2NiwgMC4xNzAxLCAwLjMwNzMxLCAwLjQwNDc2NCwgMC41NjE0MjUsIDAuNjk4MDUyLCAwLjg5NDQ0NyIsIFwKLSAgICAgICAgICAiMC4wNDE2NjEsIDAuMTc4OTA4LCAwLjMxNTgxLCAwLjQxMzU1MywgMC41NzAwNTUsIDAuNzA2ODc2LCAwLjkwMjYwOSIsIFwKLSAgICAgICAgICAiMC4wNTE2MjEsIDAuMTg4OTY1LCAwLjMyNjAwMiwgMC40MjM3MiwgMC41ODAxNDksIDAuNzE3MjU2LCAwLjkxMjU4MyIsIFwKLSAgICAgICAgICAiMC4wNjA1NDUsIDAuMTk5MDQxLCAwLjMzNjE0NCwgMC40MzQxNDYsIDAuNTkwMzU3LCAwLjcyNzY2MiwgMC45MjI3NDQiLCBcCi0gICAgICAgICAgIjAuMDY4Mjg3LCAwLjIwODkwOCwgMC4zNDU5NjIsIDAuNDQzODg2LCAwLjYwMDM1NSwgMC43MzcxNzcsIDAuOTMyNjgiLCBcCi0gICAgICAgICAgIjAuMDc4OTgxLCAwLjIyNDkzMiwgMC4zNjIxNTMsIDAuNDYwMDI0LCAwLjYxNjUyMywgMC43NTM2NjksIDAuOTQ5NDM4IiwgXAotICAgICAgICAgICIwLjA4NzM3MSwgMC4yMzkyMjIsIDAuMzc1OTY1LCAwLjQ3Mzk1MSwgMC42MzA2NjYsIDAuNzY4MTUxLCAwLjk2Mzc5NSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1NDQ2MSwgMC4zMzI2MTYsIDAuNjA5NTg4LCAwLjgwOTk1OCwgMS4xMjUzMiwgMS40MDYzOSwgMS43OTkyNyIsIFwKLSAgICAgICAgICAiMC4wNTUwNDEsIDAuMzMyNzg0LCAwLjYxMDk5NCwgMC44MDk5ODUsIDEuMTI2MiwgMS40MDU5NSwgMS44MDA3OSIsIFwKLSAgICAgICAgICAiMC4wNTg0NDQsIDAuMzMyODUxLCAwLjYxMTE4NCwgMC44MDk2OTIsIDEuMTI4MDgsIDEuNDAyOTUsIDEuODAwNzIiLCBcCi0gICAgICAgICAgIjAuMDYzNzI0LCAwLjMzMjM5NCwgMC42MDk3ODYsIDAuODA3ODM2LCAxLjEyNzgzLCAxLjQwMjcyLCAxLjgwMjI4IiwgXAotICAgICAgICAgICIwLjA2OTk1MiwgMC4zMzQ1NjUsIDAuNjEwOTkzLCAwLjgwODA3NCwgMS4xMjc5OSwgMS40MDYwMywgMS44MDM0MyIsIFwKLSAgICAgICAgICAiMC4wODAxMTEsIDAuMzM4MjEzLCAwLjYxMDg4NiwgMC44MDk5NTcsIDEuMTI3MjksIDEuNDAyOTgsIDEuNzk5NjgiLCBcCi0gICAgICAgICAgIjAuMDg4MDE2LCAwLjM0MzMyNSwgMC42MTM4NzUsIDAuODA5NDYzLCAxLjEyOCwgMS40MDMxNSwgMS43OTkzIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE5ODUsIDAuMDkzMzY5LCAwLjE2NjU0OSwgMC4yMTg4OTMsIDAuMzAyNTMyLCAwLjM3NTY1MSwgMC40ODAxNDIiLCBcCi0gICAgICAgICAgIjAuMDMwMDgxLCAwLjEwMzU4NywgMC4xNzY3NjYsIDAuMjI5MDMsIDAuMzEyNjg1LCAwLjM4NTc4MiwgMC40OTAzNCIsIFwKLSAgICAgICAgICAiMC4wNDIzODEsIDAuMTE2MTQ3LCAwLjE4OTQyNiwgMC4yNDE2MjcsIDAuMzI1MTgzLCAwLjM5ODMzLCAwLjUwMTgxMSIsIFwKLSAgICAgICAgICAiMC4wNTI1MDIsIDAuMTI4OTIsIDAuMjAyNjA3LCAwLjI1NDg0MSwgMC4zMzgzOTksIDAuNDExNjc4LCAwLjUxNTk4NSIsIFwKLSAgICAgICAgICAiMC4wNjA1NTMsIDAuMTQxNjUzLCAwLjIxNDg1NCwgMC4yNjc0MjgsIDAuMzUwODkzLCAwLjQyMzkzNiwgMC41Mjg0NzEiLCBcCi0gICAgICAgICAgIjAuMDcyMjY4LCAwLjE2MzA1MywgMC4yMzUyNzEsIDAuMjg3NDY1LCAwLjM3MTQyMiwgMC40NDQzMzQsIDAuNTQ4NzI0IiwgXAotICAgICAgICAgICIwLjA4MTc0OSwgMC4xODEzMjUsIDAuMjU0MDU0LCAwLjMwNTQyMSwgMC4zODk1NjcsIDAuNDYyNTU3LCAwLjU2Njk4MyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzMDU1OSwgMC4xNzc2NDcsIDAuMzI0NTcxLCAwLjQyOTc0MSwgMC41OTc4MiwgMC43NDQ4MSwgMC45NTUwODQiLCBcCi0gICAgICAgICAgIjAuMDMzMTEsIDAuMTc3NTYyLCAwLjMyNDYwMywgMC40Mjk3NjEsIDAuNTk3NTkxLCAwLjc0NDY3NiwgMC45NTQ2MzMiLCBcCi0gICAgICAgICAgIjAuMDQwOTM3LCAwLjE3ODIxNiwgMC4zMjQ3MDYsIDAuNDI5NjcyLCAwLjU5Nzg0OSwgMC43NDQ2MjcsIDAuOTU1MDQ4IiwgXAotICAgICAgICAgICIwLjA0OTkzMSwgMC4xODE0MjYsIDAuMzI0NzY5LCAwLjQyOTU3MywgMC41OTc4NzksIDAuNzQ0ODY0LCAwLjk1NDg2NCIsIFwKLSAgICAgICAgICAiMC4wNTk2MiwgMC4xODY1NzQsIDAuMzI2ODM1LCAwLjQyOTkzNCwgMC41OTc4NjcsIDAuNzQ0OTMyLCAwLjk1NDc5MiIsIFwKLSAgICAgICAgICAiMC4wNzI3MywgMC4xOTYwMDMsIDAuMzMyNzU1LCAwLjQzMzQ5OCwgMC41OTgxODMsIDAuNzQ0NzM4LCAwLjk1NDg2IiwgXAotICAgICAgICAgICIwLjA4MTgyMywgMC4yMDYwMTUsIDAuMzM5MTA4LCAwLjQzODU5OSwgMC42MDA2OTYsIDAuNzQ1NDA2LCAwLjk1NDgzOSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyOTk0OCwgMC4xNjcxNTksIDAuMzA0MDY1LCAwLjQwMTY3NiwgMC41NTgzOTIsIDAuNjk1MTI4LCAwLjg5MTQxMyIsIFwKLSAgICAgICAgICAiMC4wMzg3MDksIDAuMTc2MTkyLCAwLjMxMjkxOSwgMC40MTA4NjMsIDAuNTY3NzY3LCAwLjcwNDMwNywgMC45MDA3MDIiLCBcCi0gICAgICAgICAgIjAuMDQ5ODgsIDAuMTg3MzM4LCAwLjMyNDQxNSwgMC40MjI1MTgsIDAuNTc4NTMsIDAuNzE1NzkzLCAwLjkxMTYxNCIsIFwKLSAgICAgICAgICAiMC4wNjA4MDYsIDAuMTk5MDI4LCAwLjMzNTk5OSwgMC40MzM4MjIsIDAuNTkwODgxLCAwLjcyNzE2OSwgMC45MjM1OTIiLCBcCi0gICAgICAgICAgIjAuMDY5MDI0LCAwLjIxMDI4NywgMC4zNDcyNDMsIDAuNDQ1MDEyLCAwLjYwMTUxOCwgMC43Mzg0NywgMC45MzQyNTciLCBcCi0gICAgICAgICAgIjAuMDgwMjM3LCAwLjIyODYzOSwgMC4zNjU1NDMsIDAuNDYyNjM2LCAwLjYxOTgyOCwgMC43NTY2NjgsIDAuOTUyNjQ3IiwgXAotICAgICAgICAgICIwLjA4ODQ0NiwgMC4yNDQ4NzUsIDAuMzgxNzE4LCAwLjQ3OTQ4MywgMC42MzYxNzYsIDAuNzcyODc0LCAwLjk2ODMwOSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1NDUzNywgMC4zMzIwMTksIDAuNjA5NjY1LCAwLjgwODU3MiwgMS4xMjUyOSwgMS40MDYyOSwgMS44MDAwNyIsIFwKLSAgICAgICAgICAiMC4wNTYwMSwgMC4zMzIxMTcsIDAuNjEwMDI0LCAwLjgwOTk0MywgMS4xMjU1NSwgMS40MDYzLCAxLjgwMDE3IiwgXAotICAgICAgICAgICIwLjA2MjM0NCwgMC4zMzIzNTYsIDAuNjA5NzUzLCAwLjgwODI1LCAxLjEyNzczLCAxLjQwMjksIDEuNzk5MjMiLCBcCi0gICAgICAgICAgIjAuMDcxMDg4LCAwLjMzMzMwOSwgMC42MTAwNjgsIDAuODA5MjAxLCAxLjEyNTY3LCAxLjQwNTk4LCAxLjgiLCBcCi0gICAgICAgICAgIjAuMDgwNzIxLCAwLjMzNTYzMywgMC42MTAyMjEsIDAuODA5OTcyLCAxLjEyNzE5LCAxLjQwNiwgMS43OTk4MiIsIFwKLSAgICAgICAgICAiMC4wOTQ3OTcsIDAuMzQyMDAyLCAwLjYxMjE0NSwgMC44MDk4MzYsIDEuMTI1OTYsIDEuNDA2MjIsIDEuNzk5OCIsIFwKLSAgICAgICAgICAiMC4xMDU4ODEsIDAuMzQ5Mjg5LCAwLjYxNTM0MiwgMC44MTA0ODYsIDEuMTI1MzksIDEuNDA0LCAxLjgwMzgxIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE4MDIzLCAwLjA5MjI0MiwgMC4xNjYzNTIsIDAuMjE5MzUzLCAwLjMwNDEwNCwgMC4zNzgxNzcsIDAuNDg0MDk5IiwgXAotICAgICAgICAgICIwLjAyODE4MSwgMC4xMDI1MzksIDAuMTc2NjQsIDAuMjI5NTkyLCAwLjMxNDQwNywgMC4zODgzOTYsIDAuNDk0MzAzIiwgXAotICAgICAgICAgICIwLjAzOTkyOCwgMC4xMTQ5OTMsIDAuMTg5MjczLCAwLjI0MjA5MSwgMC4zMjY4NTYsIDAuNDAwOTE0LCAwLjUwNTU3NyIsIFwKLSAgICAgICAgICAiMC4wNDg5NDIsIDAuMTI3NjY1LCAwLjIwMjA1NywgMC4yNTQ5NTMsIDAuMzM5NDYxLCAwLjQxMzY5MywgMC41MTk1MjIiLCBcCi0gICAgICAgICAgIjAuMDU2NjU2LCAwLjE0MTA2OSwgMC4yMTQ5MiwgMC4yNjc5MjUsIDAuMzUyMzM5LCAwLjQyNjQ5NywgMC41MzIzODciLCBcCi0gICAgICAgICAgIjAuMDY3MzUxLCAwLjE2MTg2NCwgMC4yMzUwNDMsIDAuMjg3OTI1LCAwLjM3MzAwNCwgMC40NDY5NzksIDAuNTUyNzQ1IiwgXAotICAgICAgICAgICIwLjA3NTYxLCAwLjE4MDEwMiwgMC4yNTM4MDEsIDAuMzA1ODY3LCAwLjM5MTIyOSwgMC40NjUwOTIsIDAuNTcwNzgzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDI4MTY2LCAwLjE3Nzc2NiwgMC4zMjczNjYsIDAuNDMzMTQsIDAuNjA0MjgsIDAuNzUzMDUxLCAwLjk2NzA4NCIsIFwKLSAgICAgICAgICAiMC4wMzExMTQsIDAuMTc3NzgzLCAwLjMyNzIxOSwgMC40MzM0NTEsIDAuNjAzNjAzLCAwLjc1MjYzNywgMC45NjUzMTgiLCBcCi0gICAgICAgICAgIjAuMDM5NDU5LCAwLjE3ODMxMiwgMC4zMjY0OCwgMC40MzQwMTcsIDAuNjAzODQ4LCAwLjc1MjU4NywgMC45NjU3NDIiLCBcCi0gICAgICAgICAgIjAuMDQ5NTY5LCAwLjE4MTY2NiwgMC4zMjY4NTUsIDAuNDMzMDg2LCAwLjYwNTA0LCAwLjc1MjkzMiwgMC45NjYzNDciLCBcCi0gICAgICAgICAgIjAuMDU4MzQ3LCAwLjE4NTg4MSwgMC4zMjg0OTIsIDAuNDMzMjkzLCAwLjYwNDg1OSwgMC43NTI2MDgsIDAuOTY2ODQyIiwgXAotICAgICAgICAgICIwLjA3MDkyOCwgMC4xOTYwNTgsIDAuMzM1NDQ4LCAwLjQzNjc0OSwgMC42MDU3NTMsIDAuNzU0NTk0LCAwLjk2Njc5MSIsIFwKLSAgICAgICAgICAiMC4wODE2MDIsIDAuMjA1OTksIDAuMzQxNjUzLCAwLjQ0MjIwOSwgMC42MDY0NjIsIDAuNzU1NDgyLCAwLjk2NTc5MSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA3MDUzLCAwLjAwNzA5MywgMC4wMDcwOTcsIDAuMDA3MDk4LCAwLjAwNzEsIDAuMDA3MDk5LCAwLjAwNzEiLCBcCi0gICAgICAgICAgIjAuMDA2OTM5LCAwLjAwNzA2MSwgMC4wMDcwNzksIDAuMDA3MDg1LCAwLjAwNzA5LCAwLjAwNzA3OSwgMC4wMDcwOTUiLCBcCi0gICAgICAgICAgIjAuMDA2ODgzLCAwLjAwNzAyNywgMC4wMDcwNTgsIDAuMDA3MDY4LCAwLjAwNzA2NiwgMC4wMDcwODIsIDAuMDA3MDg2IiwgXAotICAgICAgICAgICIwLjAwNjg2MiwgMC4wMDcsIDAuMDA3MDQxLCAwLjAwNzA1NSwgMC4wMDcwNjcsIDAuMDA3MDc0LCAwLjAwNzA4IiwgXAotICAgICAgICAgICIwLjAwNjg1NywgMC4wMDY5ODIsIDAuMDA3MDI2LCAwLjAwNzA0MiwgMC4wMDcwNTMsIDAuMDA3MDY2LCAwLjAwNzA3OCIsIFwKLSAgICAgICAgICAiMC4wMDY4NywgMC4wMDY5NjUsIDAuMDA3MDEsIDAuMDA3MDI2LCAwLjAwNzA0NSwgMC4wMDcwNTMsIDAuMDA3MDY0IiwgXAotICAgICAgICAgICIwLjAwNjg5MSwgMC4wMDY5NTksIDAuMDA3LCAwLjAwNzAxOCwgMC4wMDcwMzcsIDAuMDA3MDQ4LCAwLjAwNzA1OSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxMTc1LCAwLjAwMTE5NiwgMC4wMDExOTgsIDAuMDAxMTk4LCAwLjAwMTE5OSwgMC4wMDExOTksIDAuMDAxMTk5IiwgXAotICAgICAgICAgICIwLjAwMTAzNSwgMC4wMDExMjksIDAuMDAxMTQsIDAuMDAxMTQ1LCAwLjAwMTE0OCwgMC4wMDExNDksIDAuMDAxMTUxIiwgXAotICAgICAgICAgICIwLjAwMTAwOCwgMC4wMDEwOTksIDAuMDAxMTE2LCAwLjAwMTEyNiwgMC4wMDExMzIsIDAuMDAxMTM1LCAwLjAwMTEyNiIsIFwKLSAgICAgICAgICAiMC4wMDEwMDcsIDAuMDAxMDg2LCAwLjAwMTExMiwgMC4wMDExMiwgMC4wMDExMjcsIDAuMDAxMTMxLCAwLjAwMTEzNSIsIFwKLSAgICAgICAgICAiMC4wMDExMTMsIDAuMDAxMTAyLCAwLjAwMTEwNywgMC4wMDExMTksIDAuMDAxMTI0LCAwLjAwMTEyNywgMC4wMDExMyIsIFwKLSAgICAgICAgICAiMC4wMDEyMzQsIDAuMDAxMTMzLCAwLjAwMTEyMywgMC4wMDExMjcsIDAuMDAxMTM1LCAwLjAwMTEzNywgMC4wMDExMzQiLCBcCi0gICAgICAgICAgIjAuMDAxMjU5LCAwLjAwMTE2NiwgMC4wMDExNDcsIDAuMDAxMTM3LCAwLjAwMTE0NCwgMC4wMDExNDMsIDAuMDAxMTQyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDU2NjcsIDAuMDA1NzI5LCAwLjAwNTczNiwgMC4wMDU3MzgsIDAuMDA1NzM5LCAwLjAwNTc0LCAwLjAwNTc0IiwgXAotICAgICAgICAgICIwLjAwNTQ5OSwgMC4wMDU2OCwgMC4wMDU3MDcsIDAuMDA1NzE1LCAwLjAwNTcyMiwgMC4wMDU3MjYsIDAuMDA1NzMiLCBcCi0gICAgICAgICAgIjAuMDA1NDQ4LCAwLjAwNTYzOCwgMC4wMDU2NzksIDAuMDA1NjkzLCAwLjAwNTcwNSwgMC4wMDU3MTIsIDAuMDA1NzE5IiwgXAotICAgICAgICAgICIwLjAwNTQ3NiwgMC4wMDU2MDYsIDAuMDA1NjU2LCAwLjAwNTY3NCwgMC4wMDU2OTEsIDAuMDA1NywgMC4wMDU3MDgiLCBcCi0gICAgICAgICAgIjAuMDA1NTU5LCAwLjAwNTU5NywgMC4wMDU2NDYsIDAuMDA1NjY1LCAwLjAwNTY4MywgMC4wMDU2OTEsIDAuMDA1NzAyIiwgXAotICAgICAgICAgICIwLjAwNTY4MSwgMC4wMDU1OTksIDAuMDA1NjM3LCAwLjAwNTY1NiwgMC4wMDU2NzMsIDAuMDA1Njg1LCAwLjAwNTY5NSIsIFwKLSAgICAgICAgICAiMC4wMDU3OTUsIDAuMDA1NjE4LCAwLjAwNTY0MiwgMC4wMDU2NTUsIDAuMDA1NjcyLCAwLjAwNTY4MiwgMC4wMDU2OTMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDAyNCwgMC4wMDAxMDEsIDAuMDAwMTA5LCAwLjAwMDExMSwgMC4wMDAxMTMsIDAuMDAwMTEzLCAwLjAwMDExNCIsIFwKLSAgICAgICAgICAiMC4wMDAxNTEsIDAuMDAwMDk1LCAwLjAwMDEyNiwgMC4wMDAxMzUsIDAuMDAwMTQzLCAwLjAwMDE0OCwgMC4wMDAxNTEiLCBcCi0gICAgICAgICAgIjAuMDAwMjE1LCAwLjAwMDA1NSwgMC4wMDAxMDUsIDAuMDAwMTIyLCAwLjAwMDEzNiwgMC4wMDAxNDQsIDAuMDAwMTU4IiwgXAotICAgICAgICAgICIwLjAwMDIwOCwgMC4wMDAwMjcsIDAuMDAwMDg4LCAwLjAwMDEwNywgMC4wMDAxMjYsIDAuMDAwMTM2LCAwLjAwMDE0NSIsIFwKLSAgICAgICAgICAiMC4wMDAxNjUsIDAuMDAwMDAzLCAwLjAwMDA3NSwgMC4wMDAwODksIDAuMDAwMTE3LCAwLjAwMDEyNCwgMC4wMDAxMzYiLCBcCi0gICAgICAgICAgIjAuMDAwMTUyLCAwLjAwMDAwMywgMC4wMDAwNTYsIDAuMDAwMDgxLCAwLjAwMDEwNywgMC4wMDAxMTksIDAuMDAwMTMxIiwgXAotICAgICAgICAgICIwLjAwMDAzNywgMC4wMDAwMTQsIDAuMDAwMDU5LCAwLjAwMDA3NiwgMC4wMDAxMDQsIDAuMDAwMTE3LCAwLjAwMDEyOCIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogTk9SMlg2ICoKLSAqIC0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoTk9SMlg2KSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuNDIwMTE0OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDQ5MTA5OTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDQ4NzkzMzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDQ5MTA5OTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDIxODUsIDAuMDAyMzIxLCAwLjAwMjM0LCAwLjAwMjM1NCwgMC4wMDIzNjUsIDAuMDAyMzc3LCAwLjAwMjM4OCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjU3NywgMC4wMDI1OCwgMC4wMDI1ODEsIDAuMDAyNTgxLCAwLjAwMjU4MiwgMC4wMDI1ODIsIDAuMDAyNTgyIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDQ4MzA0ODsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDQ4Mjk3OTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDQ4MzA0ODsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA2NDMsIDAuMDAwNjQ0LCAwLjAwMDY0NCwgMC4wMDA2NDQsIDAuMDAwNjQ0LCAwLjAwMDY0NCwgMC4wMDA2NDQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDE4NSwgMC4wMDE4NDksIDAuMDAxODUsIDAuMDAxODUsIDAuMDAxODQ5LCAwLjAwMTg0OSwgMC4wMDE4NDkiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC44NDAyMTI7Ci0gICAgZnVuY3Rpb24gOiAiKCEoQStCKSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDI2MzU3LCAwLjExODA5NCwgMC4yMDk2MDYsIDAuMjc1MDE3LCAwLjM3OTU5NSwgMC40NzEyODQsIDAuNjAyMTY3IiwgXAotICAgICAgICAgICIwLjAzNDgxOCwgMC4xMjY3MjcsIDAuMjE4MjU0LCAwLjI4MzgwMywgMC4zODg0MjIsIDAuNDgwMTU5LCAwLjYxMDk2NiIsIFwKLSAgICAgICAgICAiMC4wNDQ0NDEsIDAuMTM2NzczLCAwLjIyODQ2NSwgMC4yOTM3ODgsIDAuMzk4NDA0LCAwLjQ4OTk5OCwgMC42MjEzOTciLCBcCi0gICAgICAgICAgIjAuMDUyNDI3LCAwLjE0NjY1NSwgMC4yMzgxNzksIDAuMzAzOTMzLCAwLjQwODYzNiwgMC41MDAyMjgsIDAuNjMwODUiLCBcCi0gICAgICAgICAgIjAuMDU5MywgMC4xNTY1OTcsIDAuMjQ4NDc1LCAwLjMxMzg1LCAwLjQxODY4MywgMC41MTAxNjgsIDAuNjQxMjI4IiwgXAotICAgICAgICAgICIwLjA2ODcyMywgMC4xNzI2MTUsIDAuMjY0MjY1LCAwLjMyOTg5NSwgMC40MzQ3NjEsIDAuNTI2MjU4LCAwLjY1NzI5MSIsIFwKLSAgICAgICAgICAiMC4wNzU3MzEsIDAuMTg2NDIzLCAwLjI3ODQzMywgMC4zNDM4MjEsIDAuNDQ4ODA4LCAwLjU0MDMxMSwgMC42NzExNSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0MDg3MiwgMC4yMjYzNDcsIDAuNDEyMDU4LCAwLjU0NDU0OSwgMC43NTY3MDYsIDAuOTQyMjEsIDEuMjA3MjMiLCBcCi0gICAgICAgICAgIjAuMDQxNzA0LCAwLjIyNjM3NSwgMC40MTI5NzIsIDAuNTQ0NzksIDAuNzU2NzQ1LCAwLjk0MjE2NCwgMS4yMDcyNSIsIFwKLSAgICAgICAgICAiMC4wNDU3NjksIDAuMjI3MDk4LCAwLjQxMjIxMiwgMC41NDU3NzMsIDAuNzU3ODUxLCAwLjk0NDY0MSwgMS4yMTUzMiIsIFwKLSAgICAgICAgICAiMC4wNTE2NTEsIDAuMjI4NDE3LCAwLjQxMjI2MiwgMC41NDU3NDUsIDAuNzU4NTQ0LCAwLjk0MjM0NSwgMS4yMDg0NSIsIFwKLSAgICAgICAgICAiMC4wNTc2ODQsIDAuMjMwNzExLCAwLjQxMjc3NSwgMC41NDQ2NjgsIDAuNzU3MzkyLCAwLjk0Mzc5NCwgMS4yMDc1OCIsIFwKLSAgICAgICAgICAiMC4wNjY4MzQsIDAuMjM2ODE3LCAwLjQxNTQ1MywgMC41NDY0NTIsIDAuNzYwOTMxLCAwLjk0NDM2NCwgMS4yMDgwMiIsIFwKLSAgICAgICAgICAiMC4wNzQ2MjcsIDAuMjQzMDg1LCAwLjQyMDA2MywgMC41NDg4OCwgMC43NTk5NTgsIDAuOTQ0ODExLCAxLjIxMDA0Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE2NzI5LCAwLjA2Nzg2MiwgMC4xMTg2MzgsIDAuMTU0ODg1LCAwLjIxMjg2NiwgMC4yNjM2NjMsIDAuMzM2MDkiLCBcCi0gICAgICAgICAgIjAuMDI2OTYxLCAwLjA3ODE0NCwgMC4xMjg5MjQsIDAuMTY1MTM5LCAwLjIyMzEyMywgMC4yNzM4OSwgMC4zNDYzMzMiLCBcCi0gICAgICAgICAgIjAuMDM4NDM2LCAwLjA5MDcxMywgMC4xNDE0MjIsIDAuMTc3ODgzLCAwLjIzNTc0OCwgMC4yODY1NDgsIDAuMzU5MDIiLCBcCi0gICAgICAgICAgIjAuMDQ3NzIzLCAwLjEwMzk4MywgMC4xNTQ5MDUsIDAuMTkwODQyLCAwLjI0OTE3MywgMC4yOTk4NTksIDAuMzcyNDQ1IiwgXAotICAgICAgICAgICIwLjA1NTIzNywgMC4xMTY5NTIsIDAuMTY3MTkyLCAwLjIwMzQsIDAuMjYxNjk5LCAwLjMxMjQ0MywgMC4zODQ3MDYiLCBcCi0gICAgICAgICAgIjAuMDY2MjM5LCAwLjEzNzkzNCwgMC4xODg0NTksIDAuMjIzODI5LCAwLjI4MTc4MSwgMC4zMzMwNDMsIDAuNDA1MzQzIiwgXAotICAgICAgICAgICIwLjA3NDI2MSwgMC4xNTUyOCwgMC4yMDY3NjUsIDAuMjQyODg4LCAwLjI5OTg0NCwgMC4zNTA0NiwgMC40MjM1NjMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjQxMjQsIDAuMTI2MTM0LCAwLjIyODE2NiwgMC4zMDEwODEsIDAuNDE3NjcsIDAuNTE5ODE4LCAwLjY2NTU4MyIsIFwKLSAgICAgICAgICAiMC4wMjcyOTEsIDAuMTI2MTM0LCAwLjIyODE3NywgMC4zMDEwNjIsIDAuNDE3NzM4LCAwLjUxOTYzNiwgMC42NjUzNjciLCBcCi0gICAgICAgICAgIjAuMDM1NzQsIDAuMTI4MjA3LCAwLjIyODIyOSwgMC4zMDEwNzYsIDAuNDE3NjQ5LCAwLjUxOTc0NiwgMC42NjU0MDMiLCBcCi0gICAgICAgICAgIjAuMDQ0NDMxLCAwLjEzMjcxNSwgMC4yMjk5MDgsIDAuMzAxNDk1LCAwLjQxNzY0LCAwLjUxOTYyNywgMC42NjU1NjQiLCBcCi0gICAgICAgICAgIjAuMDUzMjYzLCAwLjEzOTA1MiwgMC4yMzM4NjEsIDAuMzAzNzg0LCAwLjQxODA2MSwgMC41MTk2OTcsIDAuNjY1MzU1IiwgXAotICAgICAgICAgICIwLjA2NDIwNCwgMC4xNTA3NTgsIDAuMjQxOTMsIDAuMzEwMzIyLCAwLjQyMTcyNiwgMC41MjEyMDcsIDAuNjY1Njc4IiwgXAotICAgICAgICAgICIwLjA3MzkxOSwgMC4xNjI0NzQsIDAuMjUwNDIzLCAwLjMxNjk0OSwgMC40MjcxNTIsIDAuNTI0OTU3LCAwLjY2NzIxMSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyMzE2MywgMC4xMTQ5NTMsIDAuMjA2NDE5LCAwLjI3MjAzNiwgMC4zNzYzNDUsIDAuNDY4MzYxLCAwLjU5ODc4NSIsIFwKLSAgICAgICAgICAiMC4wMzE4OTksIDAuMTI0MDUsIDAuMjE1NDAzLCAwLjI4MDg0MiwgMC4zODU0NTUsIDAuNDc2OTg4LCAwLjYwODAxMyIsIFwKLSAgICAgICAgICAiMC4wNDI5NDYsIDAuMTM1MTUzLCAwLjIyNjc4OCwgMC4yOTI0MTgsIDAuMzk2OTA0LCAwLjQ4ODYwMSwgMC42MTg3MzQiLCBcCi0gICAgICAgICAgIjAuMDUxNjQ4LCAwLjE0Njg4NywgMC4yMzg0MiwgMC4zMDQxMjIsIDAuNDA4NjA3LCAwLjUwMDE3MiwgMC42MzA4ODMiLCBcCi0gICAgICAgICAgIjAuMDU5NDA3LCAwLjE1ODA4NSwgMC4yNDk2NTgsIDAuMzE0NzQ4LCAwLjQxOTc0OCwgMC41MTEyNTgsIDAuNjQyMjEiLCBcCi0gICAgICAgICAgIjAuMDY4OTQ2LCAwLjE3NjUzOSwgMC4yNjgwMjIsIDAuMzMzMzg2LCAwLjQzNzYxOSwgMC41Mjk2NDUsIDAuNjYwMzQiLCBcCi0gICAgICAgICAgIjAuMDc1Nzg4LCAwLjE5MzIyOCwgMC4yODQxOTUsIDAuMzQ5NTEsIDAuNDU0MTE4LCAwLjU0NDg3NCwgMC42NzY0NDIiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDA4NDUsIDAuMjI2MzksIDAuNDEyODU0LCAwLjU0NDUwNywgMC43NTg1MTUsIDAuOTQyNjAzLCAxLjIxMDQiLCBcCi0gICAgICAgICAgIjAuMDQzMjQxLCAwLjIyNjM0MywgMC40MTI2NTgsIDAuNTQ0OTI3LCAwLjc1NjYzMSwgMC45NDQ2ODksIDEuMjA3NjUiLCBcCi0gICAgICAgICAgIjAuMDUxMDI2LCAwLjIyNzA4NywgMC40MTI2MTksIDAuNTQ0NDg4LCAwLjc1ODU0MiwgMC45NDIzMzcsIDEuMjA3OTQiLCBcCi0gICAgICAgICAgIjAuMDYwMDcyLCAwLjIyOTA5NiwgMC40MTI5NiwgMC41NDQ1MzQsIDAuNzU4Mzc1LCAwLjk0NDQ0NCwgMS4yMTAxMSIsIFwKLSAgICAgICAgICAiMC4wNjgyMSwgMC4yMzM5NTEsIDAuNDE0MDA3LCAwLjU0NDY3LCAwLjc1ODM2NiwgMC45NDI5MzMsIDEuMjA3NjQiLCBcCi0gICAgICAgICAgIjAuMDgwNTI3LCAwLjI0MjkxOSwgMC40MTg1ODYsIDAuNTQ3ODYsIDAuNzU2ODE2LCAwLjk0Mjk4OSwgMS4yMTAzOCIsIFwKLSAgICAgICAgICAiMC4wOTAzNTksIDAuMjUyMjI3LCAwLjQyNDY3NywgMC41NTA5NjQsIDAuNzU5ODY1LCAwLjk0NDY2LCAxLjIxMDQiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTQ2NzIsIDAuMDY1NzAxLCAwLjExNjY4MiwgMC4xNTI5NzMsIDAuMjExMTY0LCAwLjI2MjAzLCAwLjMzNDcwNyIsIFwKLSAgICAgICAgICAiMC4wMjQ4NSwgMC4wNzYwNTEsIDAuMTI2OTU4LCAwLjE2MzI2LCAwLjIyMTQyNSwgMC4yNzIyNTgsIDAuMzQ0OTk3IiwgXAotICAgICAgICAgICIwLjAzNTE4MiwgMC4wODg5NCwgMC4xMzk1NDEsIDAuMTc2MDE2LCAwLjIzNDA2MSwgMC4yODQ5NTgsIDAuMzU3NzQxIiwgXAotICAgICAgICAgICIwLjA0MzQ4MywgMC4xMDE5NiwgMC4xNTIyOTQsIDAuMTg5Mjg1LCAwLjI0NzUxOSwgMC4yOTgzNSwgMC4zNzEwMDUiLCBcCi0gICAgICAgICAgIjAuMDUwMzk2LCAwLjExNDg0OCwgMC4xNjUxNDMsIDAuMjAxNDc4LCAwLjI1OTk1OSwgMC4zMTA4NzIsIDAuMzgzMzgiLCBcCi0gICAgICAgICAgIjAuMDU5NTE0LCAwLjEzNTU4NCwgMC4xODYzODYsIDAuMjIxODcxLCAwLjI4MDAzLCAwLjMzMTQ0OSwgMC40MDM5NjQiLCBcCi0gICAgICAgICAgIjAuMDY2NTk3LCAwLjE1MjYzMywgMC4yMDQ3OTgsIDAuMjQwOTExLCAwLjI5ODA3LCAwLjM0ODg0NCwgMC40MjIyMDEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjE0MTIsIDAuMTIzODcyLCAwLjIyNjM0MywgMC4yOTk1ODgsIDAuNDE2NTUzLCAwLjUxOTExMywgMC42NjU2ODQiLCBcCi0gICAgICAgICAgIjAuMDI1MDkzLCAwLjEyMzg2NywgMC4yMjYzNTcsIDAuMzAwMjk4LCAwLjQxNzAxMiwgMC41MjA0MzEsIDAuNjY1MzI0IiwgXAotICAgICAgICAgICIwLjAzNDQyLCAwLjEyNjE2NSwgMC4yMjYyNDEsIDAuMjk5NjYsIDAuNDE3NzE4LCAwLjUxOTUxMSwgMC42NjU0OTIiLCBcCi0gICAgICAgICAgIjAuMDQzMzMzLCAwLjEzMDczNywgMC4yMjg1NjMsIDAuMjk5ODMxLCAwLjQxNjYzNCwgMC41MTg5NTcsIDAuNjY1MDU1IiwgXAotICAgICAgICAgICIwLjA1MTUyMywgMC4xMzY5NDYsIDAuMjMyMTIsIDAuMzAyMTkzLCAwLjQxODE2MSwgMC41MTkwNzcsIDAuNjY1NTcyIiwgXAotICAgICAgICAgICIwLjA2MzcwMiwgMC4xNDkxMDYsIDAuMjQwNjAxLCAwLjMwOTQxMSwgMC40MjA2MzgsIDAuNTIwNjgzLCAwLjY2Njk2NyIsIFwKLSAgICAgICAgICAiMC4wNzM0MzEsIDAuMTYwNjg3LCAwLjI0OTA5NywgMC4zMTYyNzUsIDAuNDI3MjYsIDAuNTI1NzE2LCAwLjY2Nzg4OSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEwMjgzLCAwLjAxMDM1NSwgMC4wMTAzNjIsIDAuMDEwMzY1LCAwLjAxMDM2NywgMC4wMTAzNjgsIDAuMDEwMzY5IiwgXAotICAgICAgICAgICIwLjAxMDA5MywgMC4wMTAyODksIDAuMDEwMzI0LCAwLjAxMDMzNiwgMC4wMTAzNDYsIDAuMDEwMzUxLCAwLjAxMDM1NiIsIFwKLSAgICAgICAgICAiMC4wMTAwMTcsIDAuMDEwMjI2LCAwLjAxMDI4MywgMC4wMTAzMDQsIDAuMDEwMzIyLCAwLjAxMDMzMSwgMC4wMTAzNDMiLCBcCi0gICAgICAgICAgIjAuMDA5OTk0LCAwLjAxMDE4MywgMC4wMTAyNDQsIDAuMDEwMjc0LCAwLjAxMDI5OSwgMC4wMTAzMTIsIDAuMDEwMzI1IiwgXAotICAgICAgICAgICIwLjAwOTk4OSwgMC4wMTAxNTMsIDAuMDEwMjI0LCAwLjAxMDI1NywgMC4wMTAyODYsIDAuMDEwMzAyLCAwLjAxMDMxMiIsIFwKLSAgICAgICAgICAiMC4wMTAwMTcsIDAuMDEwMTI0LCAwLjAxMDE5NywgMC4wMTAyMjQsIDAuMDEwMjYzLCAwLjAxMDI3OSwgMC4wMTAyOTciLCBcCi0gICAgICAgICAgIjAuMDEwMDYxLCAwLjAxMDExMSwgMC4wMTAxNzksIDAuMDEwMjA4LCAwLjAxMDI0NSwgMC4wMTAyNjMsIDAuMDEwMjgzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDE2ODEsIDAuMDAxNzE4LCAwLjAwMTcyMiwgMC4wMDE3MjQsIDAuMDAxNzI1LCAwLjAwMTcyNSwgMC4wMDE3MjUiLCBcCi0gICAgICAgICAgIjAuMDAxNDQsIDAuMDAxNjAxLCAwLjAwMTYyNSwgMC4wMDE2MzMsIDAuMDAxNjQsIDAuMDAxNjQ0LCAwLjAwMTY0NyIsIFwKLSAgICAgICAgICAiMC4wMDEzOTksIDAuMDAxNTQxLCAwLjAwMTU4NywgMC4wMDE1OTIsIDAuMDAxNjExLCAwLjAwMTYxNiwgMC4wMDE2MjIiLCBcCi0gICAgICAgICAgIjAuMDAxNDI0LCAwLjAwMTUzNCwgMC4wMDE1ODMsIDAuMDAxNTg4LCAwLjAwMTYwNSwgMC4wMDE2MTIsIDAuMDAxNjIiLCBcCi0gICAgICAgICAgIjAuMDAxNTk2LCAwLjAwMTU3LCAwLjAwMTU1OCwgMC4wMDE1NzYsIDAuMDAxNTk3LCAwLjAwMTYwNCwgMC4wMDE2MSIsIFwKLSAgICAgICAgICAiMC4wMDE2NDEsIDAuMDAxNjEzLCAwLjAwMTYwOSwgMC4wMDE1OTksIDAuMDAxNjA2LCAwLjAwMTYyLCAwLjAwMTYyMSIsIFwKLSAgICAgICAgICAiMC4wMDE3OTUsIDAuMDAxNjc1LCAwLjAwMTY0OCwgMC4wMDE2MzgsIDAuMDAxNjIyLCAwLjAwMTYyNCwgMC4wMDE2MzMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwODE5NiwgMC4wMDgzMTIsIDAuMDA4MzI0LCAwLjAwODMyOCwgMC4wMDgzMzMsIDAuMDA4MzMyLCAwLjAwODMzNCIsIFwKLSAgICAgICAgICAiMC4wMDc5MjgsIDAuMDA4MjE1LCAwLjAwODI2MSwgMC4wMDgyODcsIDAuMDA4Mjk3LCAwLjAwODMwNCwgMC4wMDgzMTEiLCBcCi0gICAgICAgICAgIjAuMDA3OTExLCAwLjAwODEzNCwgMC4wMDgyMDksIDAuMDA4MjM1LCAwLjAwODI2MywgMC4wMDgyNzcsIDAuMDA4Mjg5IiwgXAotICAgICAgICAgICIwLjAwNzk3OSwgMC4wMDgxMDQsIDAuMDA4MTY4LCAwLjAwODIxMSwgMC4wMDgyNCwgMC4wMDgyNTcsIDAuMDA4Mjc1IiwgXAotICAgICAgICAgICIwLjAwODAyOCwgMC4wMDgwNzksIDAuMDA4MTUsIDAuMDA4MTgzLCAwLjAwODIxOSwgMC4wMDgyMzgsIDAuMDA4MjU1IiwgXAotICAgICAgICAgICIwLjAwODE1NywgMC4wMDgwOTcsIDAuMDA4MTQ1LCAwLjAwODE3MywgMC4wMDgyLCAwLjAwODIyNCwgMC4wMDgyNDQiLCBcCi0gICAgICAgICAgIjAuMDA4MzIxLCAwLjAwODE1NywgMC4wMDgxNjMsIDAuMDA4MTgsIDAuMDA4MjAzLCAwLjAwODIxNywgMC4wMDgyNDQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDA0MSwgMC4wMDAxMDksIDAuMDAwMTI1LCAwLjAwMDEyOSwgMC4wMDAxMzQsIDAuMDAwMTM2LCAwLjAwMDEzOCIsIFwKLSAgICAgICAgICAiMC4wMDAzNTYsIDAuMDAwMDY0LCAwLjAwMDEyOSwgMC4wMDAxNDksIDAuMDAwMTY3LCAwLjAwMDE3NiwgMC4wMDAxODQiLCBcCi0gICAgICAgICAgIjAuMDAwNDU2LCAwLjAwMDA0LCAwLjAwMDA3MSwgMC4wMDAxMDgsIDAuMDAwMTQsIDAuMDAwMTU3LCAwLjAwMDE3MyIsIFwKLSAgICAgICAgICAiMC4wMDA0NDIsIDAuMDAwMDgyLCAwLjAwMDAyNCwgMC4wMDAwNzQsIDAuMDAwMTEzLCAwLjAwMDEzMywgMC4wMDAxNTMiLCBcCi0gICAgICAgICAgIjAuMDAwMzU0LCAwLjAwMDEyMiwgMC4wMDAwMTEsIDAuMDAwMDM5LCAwLjAwMDA5LCAwLjAwMDExNSwgMC4wMDAxMzkiLCBcCi0gICAgICAgICAgIjAuMDAwMTA3LCAwLjAwMDEsIDAuMDAwMDA2LCAwLjAwMDAyOCwgMC4wMDAwNzUsIDAuMDAwMTA2LCAwLjAwMDEzIiwgXAotICAgICAgICAgICIwLjAwMDE4NywgMC4wMDAwNywgMCwgMC4wMDAwMzMsIDAuMDAwMDY2LCAwLjAwMDA5MywgMC4wMDAxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IE5PUjJYTCAqCi0gKiAtLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKE5PUjJYTCkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjAzOTUyNzk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYxNzc2OTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MTUxNTk7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjE3NzY5OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDIwMSwgMC4wMDAyMTQsIDAuMDAwMjE2LCAwLjAwMDIxOCwgMC4wMDAyMTgsIDAuMDAwMjE5LCAwLjAwMDIyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjQsIDAuMDAwMjQxLCAwLjAwMDI0MSwgMC4wMDAyNDEsIDAuMDAwMjQxLCAwLjAwMDI0MSwgMC4wMDAyNDEiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY1MTQ5NzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2NTE0Mzk7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjUxNDk3OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDA1OSwgMC4wMDAwNTksIDAuMDAwMDU5LCAwLjAwMDA1OSwgMC4wMDAwNTksIDAuMDAwMDU5LCAwLjAwMDA1OSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjA4MDA4Nzc7Ci0gICAgZnVuY3Rpb24gOiAiKCEoQStCKSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE0ODMwNCwgMC4xNzQ4NDQsIDAuNDE0MzU2LCAwLjgxMzE4LCAxLjIxMTYyLCAyLjE0MTU0LCAyLjY3MzA0IiwgXAotICAgICAgICAgICIwLjE1Njc3MiwgMC4xODMzMDIsIDAuNDIyNzYsIDAuODIxNDM5LCAxLjIyMDQyLCAyLjE0OTY0LCAyLjY4MTU1IiwgXAotICAgICAgICAgICIwLjE2NjYyNiwgMC4xOTMzMzQsIDAuNDMyNDg0LCAwLjgzMTU2OSwgMS4yMzExNCwgMi4xNjIxNCwgMi42OTIxNCIsIFwKLSAgICAgICAgICAiMC4xNzYzODcsIDAuMjAzMDQ4LCAwLjQ0MjMzNCwgMC44NDA5MTMsIDEuMjQwNTUsIDIuMTY5NTcsIDIuNzAxMzMiLCBcCi0gICAgICAgICAgIjAuMTg2MzA0LCAwLjIxMjczOCwgMC40NTIzMTEsIDAuODUxODY0LCAxLjI1MDc0LCAyLjE4MDc5LCAyLjcxMDgzIiwgXAotICAgICAgICAgICIwLjIwMTcwNywgMC4yMjg0NywgMC40NjczNzUsIDAuODY2ODQ5LCAxLjI2NjIyLCAyLjE5NTM0LCAyLjcyNzQ5IiwgXAotICAgICAgICAgICIwLjIxNTY5NiwgMC4yNDIxMDMsIDAuNDgxNzQ3LCAwLjg4MDY0OCwgMS4yNzk0NCwgMi4yMTA2OCwgMi43NDEwMyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yODgwODQsIDAuMzQyMDM3LCAwLjgyNzA3OCwgMS42MzQ2NywgMi40NDQyMiwgNC4zMzk5OSwgNS40MTA2OCIsIFwKLSAgICAgICAgICAiMC4yODgxMjYsIDAuMzQyMjEsIDAuODI2OTQ0LCAxLjYzNTI0LCAyLjQ0MzQyLCA0LjMzMjcyLCA1LjQxMTU4IiwgXAotICAgICAgICAgICIwLjI4OTU5MiwgMC4zNDIwMzksIDAuODI4NzMzLCAxLjYzNDg5LCAyLjQ0MzE3LCA0LjMzMDQ1LCA1LjQwNzExIiwgXAotICAgICAgICAgICIwLjI4OTUyNCwgMC4zNDIyODYsIDAuODI4Njc4LCAxLjYzODYxLCAyLjQ0MjcsIDQuMzM5ODEsIDUuNDExMTEiLCBcCi0gICAgICAgICAgIjAuMjkxNTE4LCAwLjM0NDM2OCwgMC44Mjg2NjIsIDEuNjM1NTUsIDIuNDQyODcsIDQuMzI4ODIsIDUuNDE1MDMiLCBcCi0gICAgICAgICAgIjAuMjk1OTM5LCAwLjM0ODAyOSwgMC44MjczNTksIDEuNjM1MDUsIDIuNDQyODYsIDQuMzM1MywgNS40MDg0NSIsIFwKLSAgICAgICAgICAiMC4zMDE2OTksIDAuMzUyODQ1LCAwLjgyODI1LCAxLjYzOTAyLCAyLjQ0ODYxLCA0LjMyODU1LCA1LjQwOTg0Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3OTQ4OCwgMC4wOTMzNSwgMC4yMTc5MDUsIDAuNDI1Mzk4LCAwLjYzMjgyLCAxLjExNzA5LCAxLjM5MzcyIiwgXAotICAgICAgICAgICIwLjA4OTU0MiwgMC4xMDMzOTEsIDAuMjI3OTcsIDAuNDM1NDc2LCAwLjY0MjkxNSwgMS4xMjczNiwgMS40MDMzMSIsIFwKLSAgICAgICAgICAiMC4xMDIzNzMsIDAuMTE2MTg5LCAwLjI0MDU5OCwgMC40NDc4NjksIDAuNjU0MzkyLCAxLjEzODUyLCAxLjQxNTMiLCBcCi0gICAgICAgICAgIjAuMTE0OTIsIDAuMTI4ODc0LCAwLjI1MzQxMiwgMC40NjA3MTIsIDAuNjY4MywgMS4xNTA1MSwgMS40MjcwMiIsIFwKLSAgICAgICAgICAiMC4xMjgyNjMsIDAuMTQxNTksIDAuMjY2MjQ1LCAwLjQ3MzQ4NywgMC42ODEwNTMsIDEuMTYyNDcsIDEuNDM5MjIiLCBcCi0gICAgICAgICAgIjAuMTQ5MTcxLCAwLjE2MzAxMiwgMC4yODY0NCwgMC40OTQwODksIDAuNzAxNDU0LCAxLjE4MjMzLCAxLjQ1OTYxIiwgXAotICAgICAgICAgICIwLjE2NzM2MywgMC4xODE0NDUsIDAuMzA0NDIyLCAwLjUxMjE4MywgMC43MTkyOSwgMS4yMDAwOCwgMS40NzY1MyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNDk2NjYsIDAuMTc3NDEsIDAuNDI2NzE0LCAwLjg0MjQyNiwgMS4yNTgwMSwgMi4yMjc0LCAyLjc4MjI5IiwgXAotICAgICAgICAgICIwLjE0OTY2MywgMC4xNzc0NTYsIDAuNDI2NzAxLCAwLjg0MjM2LCAxLjI1NzUsIDIuMjI3MzcsIDIuNzgxNTgiLCBcCi0gICAgICAgICAgIjAuMTUwOTc4LCAwLjE3Nzk5NiwgMC40MjY3MTUsIDAuODQyMzM4LCAxLjI1ODE1LCAyLjIyNzQ4LCAyLjc4MTIiLCBcCi0gICAgICAgICAgIjAuMTU1MjgsIDAuMTgxMzQzLCAwLjQyNjY3OCwgMC44NDIzNzMsIDEuMjU3NiwgMi4yMjczNiwgMi43ODE4MiIsIFwKLSAgICAgICAgICAiMC4xNjA2OSwgMC4xODY0NjUsIDAuNDI3MDExLCAwLjg0MjI5OCwgMS4yNTc2NywgMi4yMjc3LCAyLjc4MDUxIiwgXAotICAgICAgICAgICIwLjE3MTQ2OCwgMC4xOTYwMTgsIDAuNDMwNjE1LCAwLjg0MjI4NiwgMS4yNTgxOCwgMi4yMjc1LCAyLjc4MTk1IiwgXAotICAgICAgICAgICIwLjE4MjQxLCAwLjIwNjIwNSwgMC40MzU4NTcsIDAuODQyMzY2LCAxLjI1Nzc3LCAyLjIyNzQ2LCAyLjc4MDU5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE0NTMwMiwgMC4xNzE5NiwgMC40MTExNDEsIDAuODEwNDI1LCAxLjIwODEzLCAyLjEzOTI3LCAyLjY3MDEyIiwgXAotICAgICAgICAgICIwLjE1NDMxOCwgMC4xODA5ODIsIDAuNDIwMTMyLCAwLjgxODk5MiwgMS4yMTg0NSwgMi4xNDk1MywgMi42Nzk4NyIsIFwKLSAgICAgICAgICAiMC4xNjUzNzcsIDAuMTkxOTgyLCAwLjQzMTYxNywgMC44MzAxOTEsIDEuMjI4ODQsIDIuMTU5MTcsIDIuNjkwNzUiLCBcCi0gICAgICAgICAgIjAuMTc2NzE3LCAwLjIwMzM1NywgMC40NDI4MjcsIDAuODQxMzA3LCAxLjI0MDQ2LCAyLjE3MTE3LCAyLjcwMTk3IiwgXAotICAgICAgICAgICIwLjE4ODAyMywgMC4yMTQ2OTEsIDAuNDUzOTc3LCAwLjg1MjYxOSwgMS4yNTIzNywgMi4xODI0NywgMi43MTI2OSIsIFwKLSAgICAgICAgICAiMC4yMDYyNzcsIDAuMjMyODE4LCAwLjQ3MjI1NiwgMC44NzExMjcsIDEuMjY5MzMsIDIuMTk5MTUsIDIuNzMxMTUiLCBcCi0gICAgICAgICAgIjAuMjIyMzE4LCAwLjI0ODk4MiwgMC40ODgwMDMsIDAuODg3MzI3LCAxLjI4NTkxLCAyLjIxNzI0LCAyLjc0NjQzIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI4ODMzMywgMC4zNDE5ODEsIDAuODI3NjU2LCAxLjYzNTQ0LCAyLjQ0NDcxLCA0LjMyODg2LCA1LjQxMDczIiwgXAotICAgICAgICAgICIwLjI4ODc0NiwgMC4zNDIwMTUsIDAuODI3NDI0LCAxLjYzNDk4LCAyLjQ0MjgyLCA0LjMzLCA1LjQwNzc5IiwgXAotICAgICAgICAgICIwLjI4ODMxNCwgMC4zNDI2OTcsIDAuODI2NzQzLCAxLjYzNTIzLCAyLjQ0MzA4LCA0LjMyODc0LCA1LjQwNDk2IiwgXAotICAgICAgICAgICIwLjI4OTk1MSwgMC4zNDMyMDgsIDAuODI2OTA3LCAxLjYzNzQ0LCAyLjQ0MzIxLCA0LjMyODQ2LCA1LjQwNjQ4IiwgXAotICAgICAgICAgICIwLjI5MzAzNSwgMC4zNDUzOTgsIDAuODI4NjgsIDEuNjM4NTYsIDIuNDQzNjksIDQuMzI4NjQsIDUuNDE1MjYiLCBcCi0gICAgICAgICAgIjAuMzAwNzIzLCAwLjM1MDg5NCwgMC44MjY5NjksIDEuNjM1MDcsIDIuNDQ4NDUsIDQuMzM2MDUsIDUuNDEwNjgiLCBcCi0gICAgICAgICAgIjAuMzA4NzQ5LCAwLjM1OTAyOCwgMC44MjkzMzksIDEuNjM0NjgsIDIuNDQzNzIsIDQuMzI4MTcsIDUuNDE0OTkiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc3MzUyLCAwLjA5MTIwNiwgMC4yMTU2NjcsIDAuNDIzMTU0LCAwLjYzMDUwMiwgMS4xMTQ1MSwgMS4zOTE1MSIsIFwKLSAgICAgICAgICAiMC4wODc1LCAwLjEwMTM2MywgMC4yMjU4ODYsIDAuNDMzNDA3LCAwLjY0MDczMSwgMS4xMjQ4NywgMS40MDE5MyIsIFwKLSAgICAgICAgICAiMC4xMDAzMDYsIDAuMTE0MTA5LCAwLjIzODUzNywgMC40NDU5MTEsIDAuNjUyNDkzLCAxLjEzNjU2LCAxLjQxMjYiLCBcCi0gICAgICAgICAgIjAuMTEyODI5LCAwLjEyNjc2MywgMC4yNTEyMzIsIDAuNDU4NjM3LCAwLjY2NjIwNSwgMS4xNDg0MywgMS40MjQ5NiIsIFwKLSAgICAgICAgICAiMC4xMjYxNTUsIDAuMTM5OTE5LCAwLjI2NDEzLCAwLjQ3MTM3NCwgMC42Nzg5MDksIDEuMTYwODYsIDEuNDM3MjkiLCBcCi0gICAgICAgICAgIjAuMTQ3MDI0LCAwLjE2MDg2MiwgMC4yODQzMTcsIDAuNDkxOTUxLCAwLjY5OTQ5NiwgMS4xODAzOCwgMS40NTc5MiIsIFwKLSAgICAgICAgICAiMC4xNjQ5OSwgMC4xNzkyNjUsIDAuMzAyMjYyLCAwLjUxMDA1NSwgMC43MTcxNjgsIDEuMTk4MDYsIDEuNDc0NjQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTQ3MjQxLCAwLjE3NDk2NywgMC40MjU1NTksIDAuODQyMzIxLCAxLjI1OTUsIDIuMjI2NjMsIDIuNzg1MzEiLCBcCi0gICAgICAgICAgIjAuMTQ3NzE0LCAwLjE3NTA2NCwgMC40MjQ4MjksIDAuODQxNTIxLCAxLjI1OTI0LCAyLjIyODU3LCAyLjc4MTUyIiwgXAotICAgICAgICAgICIwLjE0OTAzMSwgMC4xNzU2NzEsIDAuNDI0NjI0LCAwLjg0MDY4NywgMS4yNTcxLCAyLjIyNjkzLCAyLjc4MDk1IiwgXAotICAgICAgICAgICIwLjE1MzI1OCwgMC4xNzkxMjgsIDAuNDI1NzcxLCAwLjg0MDA2LCAxLjI1NzUzLCAyLjIyNzYzLCAyLjc4NjExIiwgXAotICAgICAgICAgICIwLjE1ODY2MywgMC4xODQzMTgsIDAuNDI2MTYzLCAwLjg0MTYyMiwgMS4yNTgxNCwgMi4yMjYyOCwgMi43ODE2NSIsIFwKLSAgICAgICAgICAiMC4xNjk1MzUsIDAuMTk0MDgyLCAwLjQyODc0LCAwLjg0MjE1OSwgMS4yNTYyNCwgMi4yMjU4MSwgMi43ODM0IiwgXAotICAgICAgICAgICIwLjE4MDU3MSwgMC4yMDQyMjcsIDAuNDM0OTg4LCAwLjg0MjI4OSwgMS4yNTk0OCwgMi4yMjU4NiwgMi43Nzk4NyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTI0OSwgMC4wMDEyNSwgMC4wMDEyNSwgMC4wMDEyNTEsIDAuMDAxMjUxLCAwLjAwMTI1MSwgMC4wMDEyNTEiLCBcCi0gICAgICAgICAgIjAuMDAxMjQ0LCAwLjAwMTI0NSwgMC4wMDEyNDgsIDAuMDAxMjUsIDAuMDAxMjUsIDAuMDAxMjUsIDAuMDAxMjUyIiwgXAotICAgICAgICAgICIwLjAwMTIzOSwgMC4wMDEyNDEsIDAuMDAxMjQ1LCAwLjAwMTI0OSwgMC4wMDEyNDksIDAuMDAxMjUsIDAuMDAxMjUiLCBcCi0gICAgICAgICAgIjAuMDAxMjM1LCAwLjAwMTIzOCwgMC4wMDEyNDUsIDAuMDAxMjQ3LCAwLjAwMTI0OCwgMC4wMDEyNDksIDAuMDAxMjUiLCBcCi0gICAgICAgICAgIjAuMDAxMjMzLCAwLjAwMTIzNSwgMC4wMDEyNDMsIDAuMDAxMjQ2LCAwLjAwMTI0OCwgMC4wMDEyNDksIDAuMDAxMjUiLCBcCi0gICAgICAgICAgIjAuMDAxMjMxLCAwLjAwMTIzMiwgMC4wMDEyMzksIDAuMDAxMjQ1LCAwLjAwMTI0NywgMC4wMDEyNDksIDAuMDAxMjQ5IiwgXAotICAgICAgICAgICIwLjAwMTIzMSwgMC4wMDEyMzIsIDAuMDAxMjQsIDAuMDAxMjQ0LCAwLjAwMTI0NywgMC4wMDEyNDgsIDAuMDAxMjQ5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwMTU3LCAwLjAwMDE1NywgMC4wMDAxNTcsIDAuMDAwMTU3LCAwLjAwMDE1NywgMC4wMDAxNTcsIDAuMDAwMTU3IiwgXAotICAgICAgICAgICIwLjAwMDE0NiwgMC4wMDAxNDcsIDAuMDAwMTQ5LCAwLjAwMDE1LCAwLjAwMDE1LCAwLjAwMDE1LCAwLjAwMDE1IiwgXAotICAgICAgICAgICIwLjAwMDE0NSwgMC4wMDAxNDUsIDAuMDAwMTQ4LCAwLjAwMDE0OCwgMC4wMDAxNDcsIDAuMDAwMTQ3LCAwLjAwMDE0NyIsIFwKLSAgICAgICAgICAiMC4wMDAxNDQsIDAuMDAwMTQyLCAwLjAwMDE0NywgMC4wMDAxNDgsIDAuMDAwMTQ5LCAwLjAwMDE0NywgMC4wMDAxNDciLCBcCi0gICAgICAgICAgIjAuMDAwMTQ2LCAwLjAwMDE0NSwgMC4wMDAxNDgsIDAuMDAwMTQ4LCAwLjAwMDE0OSwgMC4wMDAxNDcsIDAuMDAwMTQ3IiwgXAotICAgICAgICAgICIwLjAwMDE1MSwgMC4wMDAxNTEsIDAuMDAwMTQ4LCAwLjAwMDE0OSwgMC4wMDAxNDksIDAuMDAwMTQ4LCAwLjAwMDE0NyIsIFwKLSAgICAgICAgICAiMC4wMDAxNTgsIDAuMDAwMTU2LCAwLjAwMDE1LCAwLjAwMDE1LCAwLjAwMDE1LCAwLjAwMDE0OCwgMC4wMDAxNDgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDEwNTksIDAuMDAxMDU5LCAwLjAwMTA2LCAwLjAwMTA2MSwgMC4wMDEwNjEsIDAuMDAxMDYxLCAwLjAwMTA2MSIsIFwKLSAgICAgICAgICAiMC4wMDEwNTEsIDAuMDAxMDUzLCAwLjAwMTA1NywgMC4wMDEwNTksIDAuMDAxMDYsIDAuMDAxMDYsIDAuMDAxMDYiLCBcCi0gICAgICAgICAgIjAuMDAxMDQ1LCAwLjAwMTA0NywgMC4wMDEwNTQsIDAuMDAxMDU3LCAwLjAwMTA1OCwgMC4wMDEwNTksIDAuMDAxMDYiLCBcCi0gICAgICAgICAgIjAuMDAxMDQyLCAwLjAwMTA0NCwgMC4wMDEwNTIsIDAuMDAxMDU2LCAwLjAwMTA1OCwgMC4wMDEwNTksIDAuMDAxMDU5IiwgXAotICAgICAgICAgICIwLjAwMTA0MSwgMC4wMDEwNDMsIDAuMDAxMDUxLCAwLjAwMTA1NSwgMC4wMDEwNTcsIDAuMDAxMDU5LCAwLjAwMTA1OSIsIFwKLSAgICAgICAgICAiMC4wMDEwNDMsIDAuMDAxMDQ0LCAwLjAwMTA1LCAwLjAwMTA1NSwgMC4wMDEwNTYsIDAuMDAxMDU4LCAwLjAwMTA1OSIsIFwKLSAgICAgICAgICAiMC4wMDEwNDgsIDAuMDAxMDQ4LCAwLjAwMTA1MSwgMC4wMDEwNTQsIDAuMDAxMDU2LCAwLjAwMTA1OCwgMC4wMDEwNTkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDAwMSwgMC4wMDAwMSwgMC4wMDAwMTEsIDAuMDAwMDEyLCAwLjAwMDAxMiwgMC4wMDAwMTIsIDAuMDAwMDEyIiwgXAotICAgICAgICAgICIwLjAwMDAwNywgMC4wMDAwMDksIDAuMDAwMDE1LCAwLjAwMDAxNywgMC4wMDAwMTgsIDAuMDAwMDE4LCAwLjAwMDAxOCIsIFwKLSAgICAgICAgICAiMC4wMDAwMDIsIDAuMDAwMDA0LCAwLjAwMDAxMywgMC4wMDAwMTcsIDAuMDAwMDE5LCAwLjAwMDAyLCAwLjAwMDAyIiwgXAotICAgICAgICAgICIwLjAwMDAwMiwgMC4wMDAwMDIsIDAuMDAwMDExLCAwLjAwMDAxNSwgMC4wMDAwMTcsIDAuMDAwMDIsIDAuMDAwMDIiLCBcCi0gICAgICAgICAgIjAuMDAwMDAzLCAwLjAwMDAwMSwgMC4wMDAwMSwgMC4wMDAwMTUsIDAuMDAwMDE2LCAwLjAwMDAyLCAwLjAwMDAyIiwgXAotICAgICAgICAgICIwLjAwMDAwMywgMC4wMDAwMDEsIDAuMDAwMDA4LCAwLjAwMDAxNCwgMC4wMDAwMTYsIDAuMDAwMDE5LCAwLjAwMDAxOSIsIFwKLSAgICAgICAgICAiMCwgMC4wMDAwMDEsIDAuMDAwMDA4LCAwLjAwMDAxNCwgMC4wMDAwMTYsIDAuMDAwMDE5LCAwLjAwMDAxOSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IE5PUjNCWDEgKgotICogLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoTk9SM0JYMSkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjEyNTE3MTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQU4pICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYyODk0MTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2Mjg1MDc7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjI4OTQxOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDc4OCwgMC4wMDA3NjEsIDAuMDAwNzYsIDAuMDAwNzY4LCAwLjAwMDc3OCwgMC4wMDA4MDMsIDAuMDAwODI5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxNTA5LCAwLjAwMTQ4NywgMC4wMDE0ODIsIDAuMDAxNDg3LCAwLjAwMTQ5NiwgMC4wMDE1MjEsIDAuMDAxNTQyIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA5MTU5Nzc7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwOTEwOTQ7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwOTE1OTc3OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDE1MywgMC4wMDAxNTMsIDAuMDAwMTUzLCAwLjAwMDE1MywgMC4wMDAxNTMsIDAuMDAwMTUzLCAwLjAwMDE1MyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDMyNSwgMC4wMDAzMjUsIDAuMDAwMzI1LCAwLjAwMDMyNSwgMC4wMDAzMjUsIDAuMDAwMzI0LCAwLjAwMDMyNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQykgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwOTM5MjM7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwOTM5MjM7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwOTM5MDI7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMTExLCAwLjAwMDExMSwgMC4wMDAxMTEsIDAuMDAwMTExLCAwLjAwMDExMSwgMC4wMDAxMTEsIDAuMDAwMTExIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjU3LCAwLjAwMDI1OCwgMC4wMDAyNTcsIDAuMDAwMjU3LCAwLjAwMDI1NywgMC4wMDAyNTcsIDAuMDAwMjU3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMDk2Mjk0OwotICAgIGZ1bmN0aW9uIDogIighKCgoIUFOKStCKStDKSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkFOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNTU5MTMsIDAuMjI1MTMsIDAuNjE3ODM2LCAwLjk2NDM5MiwgMS40MjcyOSwgMi4zNTAzNiwgMi45MjY2NyIsIFwKLSAgICAgICAgICAiMC4xNjYwODYsIDAuMjM1MzQsIDAuNjI3ODU3LCAwLjk3NDIzNywgMS40MzY2LCAyLjM2MDg4LCAyLjkzNjM0IiwgXAotICAgICAgICAgICIwLjE3NzE4OSwgMC4yNDY1MzIsIDAuNjM5NzI5LCAwLjk4NTk0NCwgMS40NDc0NCwgMi4zNzE0NiwgMi45NDg1NCIsIFwKLSAgICAgICAgICAiMC4xODYzNDQsIDAuMjU1NjI1LCAwLjY0ODU0LCAwLjk5NTAxLCAxLjQ1Nzg5LCAyLjM4MTIzLCAyLjk1NzY0IiwgXAotICAgICAgICAgICIwLjE5MzgyOSwgMC4yNjMxMzYsIDAuNjU1ODEsIDEuMDAyMjEsIDEuNDYzOTQsIDIuMzg4MTgsIDIuOTY1NDMiLCBcCi0gICAgICAgICAgIjAuMjA0MTcsIDAuMjczNTI5LCAwLjY2NjI2NywgMS4wMTI3MSwgMS40NzQ0MSwgMi4zOTg1NiwgMi45NzUwMiIsIFwKLSAgICAgICAgICAiMC4yMTIxNzYsIDAuMjgxMzg4LCAwLjY3NDY2MywgMS4wMjA2MSwgMS40ODI3NSwgMi40MDc4MiwgMi45ODMyNyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yNjE0NDUsIDAuNDAxMzQyLCAxLjE5MDg0LCAxLjg4NDkyLCAyLjgxNTYsIDQuNjczOTcsIDUuODIyNjUiLCBcCi0gICAgICAgICAgIjAuMjYyMTA4LCAwLjQwMTMyNSwgMS4xODk4OCwgMS44ODY5NywgMi44MTIzMywgNC42NzQzLCA1LjgyMzM5IiwgXAotICAgICAgICAgICIwLjI2MTQ5NSwgMC40MDEzMjksIDEuMTg4MDIsIDEuODgzMDUsIDIuODE1NzQsIDQuNjczNDUsIDUuODE4NyIsIFwKLSAgICAgICAgICAiMC4yNjIwOSwgMC40MDEzMDIsIDEuMTg5MzUsIDEuODg0OTEsIDIuODA5NDgsIDQuNjYyNTgsIDUuODE5NzkiLCBcCi0gICAgICAgICAgIjAuMjYxOTA1LCAwLjQwMTA1NywgMS4xOTA1NywgMS44ODM3MywgMi44MTU0OCwgNC42NzM0NywgNS44MjU1MyIsIFwKLSAgICAgICAgICAiMC4yNjE4MzcsIDAuNDAxMDcyLCAxLjE5MDY0LCAxLjg4MzcxLCAyLjgxNTU1LCA0LjY2MTk4LCA1LjgyMjgxIiwgXAotICAgICAgICAgICIwLjI2MTQzNiwgMC40MDAyNjIsIDEuMTg3OCwgMS44ODcxOSwgMi44MTA2MSwgNC42NjI3MSwgNS44MjQ3MSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzExNDUsIDAuMDk2MTA1LCAwLjIzNjYzLCAwLjM2MDQ1OSwgMC41MjUzNzIsIDAuODU1NjIyLCAxLjA2MDk0IiwgXAotICAgICAgICAgICIwLjA4MDk3LCAwLjEwNTkwNiwgMC4yNDY0MzUsIDAuMzcwMzI4LCAwLjUzNTI1NiwgMC44NjUyMjMsIDEuMDcxNjUiLCBcCi0gICAgICAgICAgIjAuMDkxNjg0LCAwLjExNjYyOSwgMC4yNTcxODEsIDAuMzgwOTc2LCAwLjU0NjI1NiwgMC44NzYwOTYsIDEuMDgyMTgiLCBcCi0gICAgICAgICAgIjAuMTAwNDI3LCAwLjEyNTM2OCwgMC4yNjU5NDEsIDAuMzg5NjkxLCAwLjU1NDY5MywgMC44ODQ5NTgsIDEuMDkwODEiLCBcCi0gICAgICAgICAgIjAuMTA3NTc1LCAwLjEzMjQ5NiwgMC4yNzMwMjksIDAuMzk2NzkzLCAwLjU2MTc5NSwgMC44OTE2NzksIDEuMDk4MTgiLCBcCi0gICAgICAgICAgIjAuMTE3NDA2LCAwLjE0MjQ0NSwgMC4yODI5MDQsIDAuNDA2NjY1LCAwLjU3MTczOSwgMC45MDE2MDgsIDEuMTA2OTIiLCBcCi0gICAgICAgICAgIjAuMTI0OTczLCAwLjE0OTgxMSwgMC4yOTAyMjMsIDAuNDEzOTIxLCAwLjU3ODk2MywgMC45MDkyMDIsIDEuMTE1MDkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk3ODA1LCAwLjE0NzEzLCAwLjQyOTAwMSwgMC42NzczNCwgMS4wMDg3NSwgMS42NzE3NCwgMi4wODUyOCIsIFwKLSAgICAgICAgICAiMC4wOTc3NzMsIDAuMTQ3MjIyLCAwLjQyODgwNiwgMC42Nzc0ODYsIDEuMDA4NywgMS42NzIzLCAyLjA4NjE2IiwgXAotICAgICAgICAgICIwLjA5ODAwNSwgMC4xNDczOTIsIDAuNDI4NzY0LCAwLjY3NzMyLCAxLjAwODk3LCAxLjY3MTgyLCAyLjA4Njc1IiwgXAotICAgICAgICAgICIwLjA5ODMzMSwgMC4xNDc1MjYsIDAuNDI4ODYyLCAwLjY3NzMxMiwgMS4wMDg3LCAxLjY3MTkxLCAyLjA4NjY2IiwgXAotICAgICAgICAgICIwLjA5ODYzNywgMC4xNDc3NTcsIDAuNDI4ODA1LCAwLjY3NzMxLCAxLjAwODY4LCAxLjY3MTQ0LCAyLjA4NjE0IiwgXAotICAgICAgICAgICIwLjA5OTIxMSwgMC4xNDgwOTIsIDAuNDI4OTk3LCAwLjY3NzQzNCwgMS4wMDg3MSwgMS42NzE0NSwgMi4wODU3MiIsIFwKLSAgICAgICAgICAiMC4wOTk3NjksIDAuMTQ4Mzc5LCAwLjQyOTE2OSwgMC42Nzc0NzIsIDEuMDA4NywgMS42NzE4NiwgMi4wODU2NCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMzc3MTQsIDAuMjA3MDI0LCAwLjU5OTg4NSwgMC45NDU4NywgMS40MDg0NiwgMi4zMzI5OCwgMi45MDk0NiIsIFwKLSAgICAgICAgICAiMC4xNDYwOTUsIDAuMjE1NTQyLCAwLjYwODI1MSwgMC45NTQ5MDgsIDEuNDE3OCwgMi4zNDAwOSwgMi45MTcwNSIsIFwKLSAgICAgICAgICAiMC4xNTU4NzEsIDAuMjI1MzEsIDAuNjE4Mzk0LCAwLjk2NTAzMiwgMS40Mjc4NSwgMi4zNTE1OCwgMi45MjcwOSIsIFwKLSAgICAgICAgICAiMC4xNjU2OCwgMC4yMzUwOTgsIDAuNjI3OTU0LCAwLjk3NTQyNCwgMS40MzY0OSwgMi4zNjExNSwgMi45MzY5NSIsIFwKLSAgICAgICAgICAiMC4xNzU0MTEsIDAuMjQ0OTU2LCAwLjYzODA1MSwgMC45ODUyMDgsIDEuNDQ3NTksIDIuMzcxMzYsIDIuOTQ3OTgiLCBcCi0gICAgICAgICAgIjAuMTkxNDI4LCAwLjI2MDU1NywgMC42NTQzMzksIDEuMDAwNDksIDEuNDYyMiwgMi4zODYxMywgMi45NjM0IiwgXAotICAgICAgICAgICIwLjIwNTAyNywgMC4yNzQzOCwgMC42Njc3NzMsIDEuMDE0NDQsIDEuNDc3NywgMi40MDA5MywgMi45NzY5MiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yNjE3MjgsIDAuNDAwNjY0LCAxLjE4ODE3LCAxLjg4NTg5LCAyLjgxMjU2LCA0LjY2MjI5LCA1LjgyNjIiLCBcCi0gICAgICAgICAgIjAuMjYyMDU0LCAwLjQwMDU0MiwgMS4xOTA3OCwgMS44ODQ5NCwgMi44MTUzMiwgNC42NzI4OCwgNS44MjIzNSIsIFwKLSAgICAgICAgICAiMC4yNjE4OTUsIDAuNDAwNTg4LCAxLjE4OTQsIDEuODgyNjEsIDIuODA5NCwgNC42NjIzOSwgNS44MjI0MyIsIFwKLSAgICAgICAgICAiMC4yNjMwODUsIDAuNDAxMDk5LCAxLjE4ODY0LCAxLjg4Mjg4LCAyLjgxMDY5LCA0LjY2MjYyLCA1LjgyMjM1IiwgXAotICAgICAgICAgICIwLjI2NDY2OSwgMC40MDEzMTEsIDEuMTkwNTksIDEuODgzMDIsIDIuODA5NTEsIDQuNjYyMjgsIDUuODI2MDUiLCBcCi0gICAgICAgICAgIjAuMjcwNTM0LCAwLjQwNDM2LCAxLjE4ODA1LCAxLjg4NzE3LCAyLjgxNTUsIDQuNjY0NiwgNS44MTk2MSIsIFwKLSAgICAgICAgICAiMC4yNzY1MzYsIDAuNDA4NjEyLCAxLjE4ODA4LCAxLjg4NzEsIDIuODA5NDgsIDQuNjczOTksIDUuODI0NDciKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDUxODk1LCAwLjA3NjY4LCAwLjIxNjk5LCAwLjM0MDc0LCAwLjUwNTgxMSwgMC44MzU5LCAxLjA0MTgxIiwgXAotICAgICAgICAgICIwLjA2MTk5MywgMC4wODY4NTcsIDAuMjI3MTM3LCAwLjM1MDc4OCwgMC41MTU3NTgsIDAuODQ1NTM4LCAxLjA1MTkxIiwgXAotICAgICAgICAgICIwLjA3NTA0NywgMC4wOTk1NjEsIDAuMjM5ODc5LCAwLjM2MjY4NCwgMC41MjgwMjksIDAuODU4MTMzLCAxLjA2NDUxIiwgXAotICAgICAgICAgICIwLjA4Nzg0NywgMC4xMTI3MDUsIDAuMjUyNTI4LCAwLjM3NjEzMSwgMC41NDEwMjYsIDAuODY4ODY4LCAxLjA3NTM2IiwgXAotICAgICAgICAgICIwLjEwMTAxNCwgMC4xMjU3MzksIDAuMjY1MzcxLCAwLjM4ODkzLCAwLjU1Mzg4NiwgMC44ODM2MjgsIDEuMDg4ODQiLCBcCi0gICAgICAgICAgIjAuMTIwMzE4LCAwLjE0NjgwMSwgMC4yODU0OTYsIDAuNDA5NzA1LCAwLjU3NTQyMywgMC45MDUxOTQsIDEuMTEwMDEiLCBcCi0gICAgICAgICAgIjAuMTM1MTMyLCAwLjE2NDMyLCAwLjMwMzM2OSwgMC40Mjc1NzgsIDAuNTkyMTcsIDAuOTIxNzkyLCAxLjEyNzk1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5NDIxMSwgMC4xNDM5MDUsIDAuNDI1NzIxLCAwLjY3NDMyNiwgMS4wMDU5MiwgMS42NjkyNSwgMi4wODMwNCIsIFwKLSAgICAgICAgICAiMC4wOTQzMTksIDAuMTQzOTksIDAuNDI1NiwgMC42NzQxNzIsIDEuMDA1NiwgMS42Njg2OSwgMi4wODM1IiwgXAotICAgICAgICAgICIwLjA5NzY5MSwgMC4xNDUzODMsIDAuNDI1Njg5LCAwLjY3NDIzMSwgMS4wMDU2MywgMS42NjkyMSwgMi4wODM3MiIsIFwKLSAgICAgICAgICAiMC4xMDM3MDIsIDAuMTQ5MzM0LCAwLjQyNTU4NCwgMC42NzQxMzIsIDEuMDA1NjQsIDEuNjY4MzYsIDIuMDgzNzciLCBcCi0gICAgICAgICAgIjAuMTEwNjg3LCAwLjE1NDkwOCwgMC40MjU5NzUsIDAuNjc0MjIsIDEuMDA1OTUsIDEuNjY4NDEsIDIuMDgzNDUiLCBcCi0gICAgICAgICAgIjAuMTI0NTI2LCAwLjE2NTY1NCwgMC40Mjk1NDUsIDAuNjc0NDUsIDEuMDA1ODEsIDEuNjY4MiwgMi4wODI5OSIsIFwKLSAgICAgICAgICAiMC4xMzc2MDIsIDAuMTc3NDExLCAwLjQzNDc3NSwgMC42NzU5NDQsIDEuMDA1NzgsIDEuNjY4NTUsIDIuMDgzMDYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTMxNTksIDAuMjAwODkxLCAwLjU5MzU0OSwgMC45NDAxMTgsIDEuNDAyMDMsIDIuMzI2MDksIDIuOTAyNjkiLCBcCi0gICAgICAgICAgIjAuMTM5ODMzLCAwLjIwOTIwNCwgMC42MDIzMjIsIDAuOTQ4MzQxLCAxLjQxMDksIDIuMzM1NDIsIDIuOTExODMiLCBcCi0gICAgICAgICAgIjAuMTUwMzU5LCAwLjIxOTkzNCwgMC42MTI2MzIsIDAuOTU5MDk2LCAxLjQyMTIzLCAyLjM0NTE4LCAyLjkyMTU0IiwgXAotICAgICAgICAgICIwLjE2MTA1OCwgMC4yMzA0NDUsIDAuNjIzMjcxLCAwLjk3MDAwMywgMS40MzIxNywgMi4zNTYzNywgMi45MzI5NCIsIFwKLSAgICAgICAgICAiMC4xNzE4MzksIDAuMjQxMjE4LCAwLjYzNDIyNCwgMC45ODA0NjEsIDEuNDQyOCwgMi4zNjY2OSwgMi45NDQwMiIsIFwKLSAgICAgICAgICAiMC4xODkzOSwgMC4yNTg2MzcsIDAuNjUxNDgsIDAuOTk4MDk4LCAxLjQ1OTc1LCAyLjM4NDgxLCAyLjk2MDg2IiwgXAotICAgICAgICAgICIwLjIwNDc4MSwgMC4yNzM4NjcsIDAuNjY2Njg0LCAxLjAxMzQ0LCAxLjQ3NjM1LCAyLjM5OTU0LCAyLjk3NTQ4Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI2MjAxMiwgMC40MDEwOTUsIDEuMTg4NDksIDEuODg3MzIsIDIuODE2MDUsIDQuNjczNzgsIDUuODI1NTIiLCBcCi0gICAgICAgICAgIjAuMjYxNTQzLCAwLjQwMDczLCAxLjE4Nzg0LCAxLjg4Njk3LCAyLjgxMjYyLCA0LjY2MjY1LCA1LjgyNjA5IiwgXAotICAgICAgICAgICIwLjI2MTQxOCwgMC40MDE0MjcsIDEuMTkwNTUsIDEuODgzODIsIDIuODE2LCA0LjY3MzU2LCA1LjgyMjM4IiwgXAotICAgICAgICAgICIwLjI2MzM5MywgMC40MDEwMDYsIDEuMTg5ODMsIDEuODg3MjgsIDIuODEyMzMsIDQuNjc0MTIsIDUuODE4NzciLCBcCi0gICAgICAgICAgIjAuMjY2OTAyLCAwLjQwMjMzNywgMS4xOTA3NCwgMS44ODM3MSwgMi44MTYxMSwgNC42NzM1NSwgNS44MjYwMiIsIFwKLSAgICAgICAgICAiMC4yNzQ5NjksIDAuNDA3MjM3LCAxLjE5MDYsIDEuODg3MjUsIDIuODE1NTMsIDQuNjc0NDcsIDUuODE5MjciLCBcCi0gICAgICAgICAgIjAuMjgzOTg5LCAwLjQxMjc1NCwgMS4xOTA3OCwgMS44ODQ5NCwgMi44MTAwMiwgNC42NzQwNCwgNS44MjQ0NCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDk1ODcsIDAuMDc0MzU4LCAwLjIxNDU1MywgMC4zMzgyMDIsIDAuNTAzMTAyLCAwLjgzMzA5NSwgMS4wMzkzIiwgXAotICAgICAgICAgICIwLjA1OTc5MiwgMC4wODQ2MTYsIDAuMjI0ODY3LCAwLjM0ODQ3MSwgMC41MTMzNTUsIDAuODQzMjA0LCAxLjA0OTIyIiwgXAotICAgICAgICAgICIwLjA3Mjg2MiwgMC4wOTcyOTEsIDAuMjM3OTMyLCAwLjM2MTM0NywgMC41MjYyMDMsIDAuODU2MTU4LCAxLjA2MjQ1IiwgXAotICAgICAgICAgICIwLjA4NTY1OSwgMC4xMTA0NTgsIDAuMjUwMjYyLCAwLjM3Mzk1NiwgMC41Mzg4NjUsIDAuODY3ODQ0LCAxLjA3MzA2IiwgXAotICAgICAgICAgICIwLjA5ODY5NSwgMC4xMjM0ODQsIDAuMjYzMTQ5LCAwLjM4NjY1NSwgMC41NTE2MTMsIDAuODgxNDUsIDEuMDg2NjEiLCBcCi0gICAgICAgICAgIjAuMTE3NjUyLCAwLjE0NDM2MiwgMC4yODQ1MTEsIDAuNDA3MzA5LCAwLjU3MTk3OSwgMC45MDE2OCwgMS4xMDc4OSIsIFwKLSAgICAgICAgICAiMC4xMzE4NjEsIDAuMTYxOTcxLCAwLjMwMTI2OCwgMC40MjU0MTQsIDAuNTkwMjQ0LCAwLjkyMDkxOCwgMS4xMjcwNSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTE5OTMsIDAuMTQxNTU0LCAwLjQyMzc2NywgMC42NzIxMjYsIDEuMDA2MjcsIDEuNjY3OTksIDIuMDg0ODkiLCBcCi0gICAgICAgICAgIjAuMDkxODczLCAwLjE0MTg2OCwgMC40MjM1NDUsIDAuNjcyMjM3LCAxLjAwNjg5LCAxLjY3MTU2LCAyLjA4MjE2IiwgXAotICAgICAgICAgICIwLjA5NTU0OSwgMC4xNDMzODIsIDAuNDIzOTYsIDAuNjcyNjM0LCAxLjAwMzcxLCAxLjY3MTI5LCAyLjA4MjgzIiwgXAotICAgICAgICAgICIwLjEwMTYsIDAuMTQ3MzY4LCAwLjQyMzQyMiwgMC42NzIzNTEsIDEuMDA0MzQsIDEuNjcxOSwgMi4wODI0MiIsIFwKLSAgICAgICAgICAiMC4xMDg5NCwgMC4xNTI4NTQsIDAuNDI1MDcsIDAuNjcyMDY2LCAxLjAwNTU0LCAxLjY3MDQzLCAyLjA4MzM2IiwgXAotICAgICAgICAgICIwLjEyMjUwMywgMC4xNjQxOTksIDAuNDI4NzgsIDAuNjc0MjczLCAxLjAwNjU3LCAxLjY2NzA5LCAyLjA4MjY4IiwgXAotICAgICAgICAgICIwLjEzNjU4NSwgMC4xNzU0MTEsIDAuNDMyNTQzLCAwLjY3NDM5MiwgMS4wMDQwOSwgMS42NjY2OCwgMi4wODQ0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQU4iOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjUxNCwgMC4wMDI1MTUsIDAuMDAyNTE2LCAwLjAwMjUxNiwgMC4wMDI1MTYsIDAuMDAyNTE2LCAwLjAwMjUxNiIsIFwKLSAgICAgICAgICAiMC4wMDI0ODcsIDAuMDAyNDg4LCAwLjAwMjQ5MSwgMC4wMDI0OTEsIDAuMDAyNDkyLCAwLjAwMjQ5MSwgMC4wMDI0OTEiLCBcCi0gICAgICAgICAgIjAuMDAyNDg5LCAwLjAwMjQ5MiwgMC4wMDI0OTYsIDAuMDAyNDk3LCAwLjAwMjQ5NywgMC4wMDI0OTcsIDAuMDAyNDk3IiwgXAotICAgICAgICAgICIwLjAwMjQ5MSwgMC4wMDI0OTQsIDAuMDAyNDk5LCAwLjAwMjUsIDAuMDAyNTAxLCAwLjAwMjUwMSwgMC4wMDI1MDEiLCBcCi0gICAgICAgICAgIjAuMDAyNDk5LCAwLjAwMjUwMywgMC4wMDI1MSwgMC4wMDI1MTEsIDAuMDAyNTEyLCAwLjAwMjUxMiwgMC4wMDI1MTMiLCBcCi0gICAgICAgICAgIjAuMDAyNTI0LCAwLjAwMjUyOSwgMC4wMDI1MzQsIDAuMDAyNTM2LCAwLjAwMjUzNiwgMC4wMDI1MzYsIDAuMDAyNTM4IiwgXAotICAgICAgICAgICIwLjAwMjU0NSwgMC4wMDI1NDYsIDAuMDAyNTU3LCAwLjAwMjU1NiwgMC4wMDI1NiwgMC4wMDI1NiwgMC4wMDI1NTkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI1MTUsIDAuMDAyNTE1LCAwLjAwMjUxNiwgMC4wMDI1MTYsIDAuMDAyNTE2LCAwLjAwMjUxNiwgMC4wMDI1MTYiLCBcCi0gICAgICAgICAgIjAuMDAyNDkyLCAwLjAwMjQ5MywgMC4wMDI0OTQsIDAuMDAyNDk0LCAwLjAwMjQ5NCwgMC4wMDI0OTMsIDAuMDAyNDkzIiwgXAotICAgICAgICAgICIwLjAwMjQ5MywgMC4wMDI0OTEsIDAuMDAyNDkzLCAwLjAwMjQ5NCwgMC4wMDI0OTMsIDAuMDAyNDkzLCAwLjAwMjQ5MyIsIFwKLSAgICAgICAgICAiMC4wMDI0OSwgMC4wMDI0OTIsIDAuMDAyNDk0LCAwLjAwMjQ5NSwgMC4wMDI0OTQsIDAuMDAyNDk1LCAwLjAwMjQ5NCIsIFwKLSAgICAgICAgICAiMC4wMDI1MDQsIDAuMDAyNTA2LCAwLjAwMjUwNywgMC4wMDI1MDgsIDAuMDAyNTA4LCAwLjAwMjUwOCwgMC4wMDI1MDgiLCBcCi0gICAgICAgICAgIjAuMDAyNTI0LCAwLjAwMjUyNSwgMC4wMDI1MjgsIDAuMDAyNTMsIDAuMDAyNTMsIDAuMDAyNTMsIDAuMDAyNTIxIiwgXAotICAgICAgICAgICIwLjAwMjU0MywgMC4wMDI1NDMsIDAuMDAyNTQ5LCAwLjAwMjU0NywgMC4wMDI1NDcsIDAuMDAyNTQ3LCAwLjAwMjU0OSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjE1OCwgMC4wMDIxNiwgMC4wMDIxNjIsIDAuMDAyMTYxLCAwLjAwMjE2MiwgMC4wMDIxNTUsIDAuMDAyMTYyIiwgXAotICAgICAgICAgICIwLjAwMjE0NSwgMC4wMDIxNSwgMC4wMDIxNTgsIDAuMDAyMTYsIDAuMDAyMTYxLCAwLjAwMjE2MSwgMC4wMDIxNjEiLCBcCi0gICAgICAgICAgIjAuMDAyMTMzLCAwLjAwMjE0LCAwLjAwMjE1NCwgMC4wMDIxNTcsIDAuMDAyMTU4LCAwLjAwMjE2LCAwLjAwMjE2MSIsIFwKLSAgICAgICAgICAiMC4wMDIxMjUsIDAuMDAyMTMyLCAwLjAwMjE1LCAwLjAwMjE1NSwgMC4wMDIxNTcsIDAuMDAyMTU5LCAwLjAwMjE1OSIsIFwKLSAgICAgICAgICAiMC4wMDIxMTksIDAuMDAyMTI4LCAwLjAwMjE0NywgMC4wMDIxNTIsIDAuMDAyMTU2LCAwLjAwMjE1NywgMC4wMDIxNTkiLCBcCi0gICAgICAgICAgIjAuMDAyMTE1LCAwLjAwMjEyMywgMC4wMDIxNDMsIDAuMDAyMTQ5LCAwLjAwMjE1MywgMC4wMDIxNTYsIDAuMDAyMTU3IiwgXAotICAgICAgICAgICIwLjAwMjExNCwgMC4wMDIxMjEsIDAuMDAyMTQsIDAuMDAyMTQ3LCAwLjAwMjE1MSwgMC4wMDIxNTUsIDAuMDAyMTU3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwMjczLCAwLjAwMDI3NCwgMC4wMDAyNzUsIDAuMDAwMjc1LCAwLjAwMDI3NSwgMC4wMDAyNzUsIDAuMDAwMjc0IiwgXAotICAgICAgICAgICIwLjAwMDI2LCAwLjAwMDI2NSwgMC4wMDAyNzIsIDAuMDAwMjczLCAwLjAwMDI3MywgMC4wMDAyNzQsIDAuMDAwMjc0IiwgXAotICAgICAgICAgICIwLjAwMDI0OSwgMC4wMDAyNTYsIDAuMDAwMjY5LCAwLjAwMDI3MSwgMC4wMDAyNzIsIDAuMDAwMjczLCAwLjAwMDI3MyIsIFwKLSAgICAgICAgICAiMC4wMDAyNTEsIDAuMDAwMjUzLCAwLjAwMDI2OCwgMC4wMDAyNzEsIDAuMDAwMjcyLCAwLjAwMDI3MywgMC4wMDAyNzMiLCBcCi0gICAgICAgICAgIjAuMDAwMjQ0LCAwLjAwMDI1MiwgMC4wMDAyNjgsIDAuMDAwMjcsIDAuMDAwMjcyLCAwLjAwMDI3MywgMC4wMDAyNzMiLCBcCi0gICAgICAgICAgIjAuMDAwMjYyLCAwLjAwMDI1NywgMC4wMDAyNjksIDAuMDAwMjY5LCAwLjAwMDI3MSwgMC4wMDAyNzMsIDAuMDAwMjczIiwgXAotICAgICAgICAgICIwLjAwMDI3NywgMC4wMDAyNzQsIDAuMDAwMjcyLCAwLjAwMDI3NCwgMC4wMDAyNzQsIDAuMDAwMjc0LCAwLjAwMDI3NCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTgyLCAwLjAwMTgyMiwgMC4wMDE4MjUsIDAuMDAxODI1LCAwLjAwMTgyNywgMC4wMDE4MjYsIDAuMDAxODI2IiwgXAotICAgICAgICAgICIwLjAwMTgsIDAuMDAxODA4LCAwLjAwMTgxOSwgMC4wMDE4MjIsIDAuMDAxODIzLCAwLjAwMTgyMiwgMC4wMDE4MjUiLCBcCi0gICAgICAgICAgIjAuMDAxNzg1LCAwLjAwMTc5NSwgMC4wMDE4MTMsIDAuMDAxODE4LCAwLjAwMTgyLCAwLjAwMTgyMiwgMC4wMDE4MjMiLCBcCi0gICAgICAgICAgIjAuMDAxNzc4LCAwLjAwMTc4OCwgMC4wMDE4MDksIDAuMDAxODE1LCAwLjAwMTgxOCwgMC4wMDE4MjEsIDAuMDAxODIyIiwgXAotICAgICAgICAgICIwLjAwMTc3NywgMC4wMDE3ODUsIDAuMDAxODA2LCAwLjAwMTgxMiwgMC4wMDE4MTYsIDAuMDAxODIsIDAuMDAxODIxIiwgXAotICAgICAgICAgICIwLjAwMTc4MiwgMC4wMDE3ODYsIDAuMDAxODAzLCAwLjAwMTgxLCAwLjAwMTgxNCwgMC4wMDE4MTgsIDAuMDAxODE5IiwgXAotICAgICAgICAgICIwLjAwMTc5MywgMC4wMDE3OTIsIDAuMDAxODAzLCAwLjAwMTgwOSwgMC4wMDE4MTMsIDAuMDAxODE3LCAwLjAwMTgxOCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDAwOSwgMC4wMDAwMTIsIDAuMDAwMDE1LCAwLjAwMDAxNSwgMC4wMDAwMTYsIDAuMDAwMDE2LCAwLjAwMDAxNiIsIFwKLSAgICAgICAgICAiMC4wMDAwMDksIDAuMDAwMDE4LCAwLjAwMDAzMSwgMC4wMDAwMzQsIDAuMDAwMDM1LCAwLjAwMDAzNiwgMC4wMDAwMzYiLCBcCi0gICAgICAgICAgIjAuMDAwMDA3LCAwLjAwMDAwOCwgMC4wMDAwMjgsIDAuMDAwMDM0LCAwLjAwMDAzNiwgMC4wMDAwMzgsIDAuMDAwMDM5IiwgXAotICAgICAgICAgICIwLjAwMDAxLCAwLjAwMDAwMSwgMC4wMDAwMjcsIDAuMDAwMDMzLCAwLjAwMDAzNiwgMC4wMDAwNCwgMC4wMDAwNDQiLCBcCi0gICAgICAgICAgIjAuMDAwMDEzLCAwLjAwMDAwMywgMC4wMDAwMjYsIDAuMDAwMDMyLCAwLjAwMDAzNSwgMC4wMDAwMzgsIDAuMDAwMDQxIiwgXAotICAgICAgICAgICIwLjAwMDAxMiwgMCwgMC4wMDAwMjMsIDAuMDAwMDMxLCAwLjAwMDAzNSwgMC4wMDAwMzgsIDAuMDAwMDM5IiwgXAotICAgICAgICAgICIwLjAwMDAwNCwgMC4wMDAwMDQsIDAuMDAwMDIzLCAwLjAwMDAzMSwgMC4wMDAwMzUsIDAuMDAwMDM3LCAwLjAwMDAzOCIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IE5PUjNCWDIgKgotICogLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoTk9SM0JYMikgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjIyODA3MTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQU4pICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYyNzczMjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2Mjc1MzM7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjI3NzMyOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTUyOSwgMC4wMDE1MDcsIDAuMDAxNDk1LCAwLjAwMTUwMiwgMC4wMDE1MDgsIDAuMDAxNTMsIDAuMDAxNTQ5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyNjAyLCAwLjAwMjU4MiwgMC4wMDI1NzMsIDAuMDAyNTc0LCAwLjAwMjU4MiwgMC4wMDI2MDEsIDAuMDAyNjE3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE3Nzc1NzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE3NjcxMjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE3Nzc1NzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAzMjYsIDAuMDAwMzI2LCAwLjAwMDMyNiwgMC4wMDAzMjYsIDAuMDAwMzI3LCAwLjAwMDMyNiwgMC4wMDAzMjciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA2MzEsIDAuMDAwNjMxLCAwLjAwMDYzMSwgMC4wMDA2MzEsIDAuMDAwNjMxLCAwLjAwMDYzLCAwLjAwMDYzMSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQykgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNTg3MzE7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNTg3MzE7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNTg3MjQ7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjI1LCAwLjAwMDIyNSwgMC4wMDAyMjUsIDAuMDAwMjI1LCAwLjAwMDIyNSwgMC4wMDAyMjUsIDAuMDAwMjI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNTYxLCAwLjAwMDU2MiwgMC4wMDA1NjEsIDAuMDAwNTYxLCAwLjAwMDU2MSwgMC4wMDA1NjEsIDAuMDAwNTYxIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMTg1NDc5OwotICAgIGZ1bmN0aW9uIDogIighKCgoIUFOKStCKStDKSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkFOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTA3LCAwLjM5ODg5LCAwLjYyOTIzMiwgMC45MTcyODIsIDEuMjA1MjUsIDEuNDkzMSwgMS43ODE5OCIsIFwKLSAgICAgICAgICAiMC4xMjA4NzIsIDAuNDA5MTYyLCAwLjY0MDA0OCwgMC45MjgxMDksIDEuMjE1MzksIDEuNTA0MjQsIDEuNzkxMDQiLCBcCi0gICAgICAgICAgIjAuMTMzNTUyLCAwLjQyMTU0NiwgMC42NTIyNTYsIDAuOTQwNTEsIDEuMjI4MzksIDEuNTE3MzIsIDEuODA0NjUiLCBcCi0gICAgICAgICAgIjAuMTQ0OTkzLCAwLjQzMzQ0MSwgMC42NjM2NTYsIDAuOTUxNzY4LCAxLjIzOTU4LCAxLjUyODIzLCAxLjgxNjEiLCBcCi0gICAgICAgICAgIjAuMTU0OTIyLCAwLjQ0MzE4NiwgMC42NzM2MzEsIDAuOTYxNTY1LCAxLjI1MDAxLCAxLjUzODAxLCAxLjgyNjE3IiwgXAotICAgICAgICAgICIwLjE2ODU2OCwgMC40NTY4MjYsIDAuNjg3MzI1LCAwLjk3NTI5NCwgMS4yNjQyMSwgMS41NTI0MiwgMS44Mzk5NiIsIFwKLSAgICAgICAgICAiMC4xNzkxMTMsIDAuNDY3NTQ0LCAwLjY5Nzc4NiwgMC45ODU5MjQsIDEuMjczNzUsIDEuNTYxNzQsIDEuODUwNjEiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTQ4MjkzLCAwLjcyNjg2NywgMS4xODc3MSwgMS43NjUyMywgMi4zNDY4NywgMi45MjAyNywgMy41MDAxNSIsIFwKLSAgICAgICAgICAiMC4xNDgyOTMsIDAuNzI2OTQyLCAxLjE4NzA4LCAxLjc2NDQ1LCAyLjM0MjgsIDIuOTE4NDcsIDMuNDk3NjkiLCBcCi0gICAgICAgICAgIjAuMTQ4MzIsIDAuNzI0MzIsIDEuMTg5NzEsIDEuNzY0NDUsIDIuMzQxNTEsIDIuOTE4OTcsIDMuNDk5NzEiLCBcCi0gICAgICAgICAgIjAuMTQ4MzgxLCAwLjcyNzAxOCwgMS4xODc3OCwgMS43NjUxNiwgMi4zNDY2NywgMi45MTg5OSwgMy40OTk2NSIsIFwKLSAgICAgICAgICAiMC4xNDg0MzEsIDAuNzI2NzY5LCAxLjE4OTY1LCAxLjc2NTQxLCAyLjM0NzI3LCAyLjkxOTI2LCAzLjQ5OTc5IiwgXAotICAgICAgICAgICIwLjE0ODQ3NywgMC43MjU1OCwgMS4xODk2NywgMS43NjgxOSwgMi4zNDE3MywgMi45MTg4NCwgMy40OTYxOCIsIFwKLSAgICAgICAgICAiMC4xNDg2NTYsIDAuNzI2OTUsIDEuMTg3NDgsIDEuNzY4MywgMi4zNDY2NCwgMi45MjA0LCAzLjUwMDA1Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2Mzg2NCwgMC4xNjgxMiwgMC4yNTA3NzcsIDAuMzU0MDA4LCAwLjQ1NzE2LCAwLjU2MDA4OCwgMC42NjM0NjIiLCBcCi0gICAgICAgICAgIjAuMDczNzkyLCAwLjE3Nzk1MywgMC4yNjA1NzYsIDAuMzYzNzYyLCAwLjQ2Njk4OCwgMC41NzAwMDYsIDAuNjczMjE4IiwgXAotICAgICAgICAgICIwLjA4NjAxOSwgMC4xOTAxNjcsIDAuMjcyODA1LCAwLjM3NTk5NSwgMC40NzkxNjEsIDAuNTgyMjgyLCAwLjY4NTQ4MSIsIFwKLSAgICAgICAgICAiMC4wOTcwNjMsIDAuMjAxMTY2LCAwLjI4Mzc5NCwgMC4zODcwNTMsIDAuNDkwMjkxLCAwLjU5MzQ3MywgMC42OTYzODEiLCBcCi0gICAgICAgICAgIjAuMTA2NjI5LCAwLjIxMDgwNSwgMC4yOTM0NjEsIDAuMzk2NjYsIDAuNDk5ODE1LCAwLjYwMjkzMiwgMC43MDYwODEiLCBcCi0gICAgICAgICAgIjAuMTE5OTg3LCAwLjIyMzcyNSwgMC4zMDYzMjYsIDAuNDA5NTE2LCAwLjUxMjYzOCwgMC42MTU4NDIsIDAuNzE4OTE1IiwgXAotICAgICAgICAgICIwLjEyOTk3NSwgMC4yMzM5NTEsIDAuMzE2NDkyLCAwLjQxOTYzMiwgMC41MjI4MjQsIDAuNjI1OTM0LCAwLjcyOTI0NiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjAzNjEsIDAuMjY1MTgyLCAwLjQzMDYyMiwgMC42Mzc4MDEsIDAuODQ1MDExLCAxLjA1MjE0LCAxLjI1OTE3IiwgXAotICAgICAgICAgICIwLjA2MDM1LCAwLjI2NTE5MywgMC40MzA2MDMsIDAuNjM3NzcyLCAwLjg0NDkwMywgMS4wNTIwOCwgMS4yNTkxNSIsIFwKLSAgICAgICAgICAiMC4wNjA0NiwgMC4yNjUxMjEsIDAuNDMwNzUxLCAwLjYzNzY5NiwgMC44NDUyMTQsIDEuMDUyLCAxLjI1OTIxIiwgXAotICAgICAgICAgICIwLjA2MTEyLCAwLjI2NTIzMiwgMC40MzA2MywgMC42Mzc3MjcsIDAuODQ1MDc5LCAxLjA1MjI4LCAxLjI1OTE0IiwgXAotICAgICAgICAgICIwLjA2MjA0MiwgMC4yNjUzMzUsIDAuNDMwNjE2LCAwLjYzNzcwNywgMC44NDQ4NjksIDEuMDUyMDIsIDEuMjU5MTkiLCBcCi0gICAgICAgICAgIjAuMDYzMjIyLCAwLjI2NTU4NSwgMC40MzA3OCwgMC42Mzc4MTksIDAuODQ0ODQ3LCAxLjA1MjI4LCAxLjI1OTE2IiwgXAotICAgICAgICAgICIwLjA2NDI3NiwgMC4yNjU4MzYsIDAuNDMwODU2LCAwLjYzODAxLCAwLjg0NDg2NiwgMS4wNTE5OSwgMS4yNTkzNCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODE2MTgsIDAuMzY5NzgzLCAwLjU5OTY0NiwgMC44ODgzMTMsIDEuMTc2ODMsIDEuNDY1MTEsIDEuNzUyMzMiLCBcCi0gICAgICAgICAgIjAuMDg5OTg1LCAwLjM3ODQ1MSwgMC42MDg5NDEsIDAuODk2OTU0LCAxLjE4NDc5LCAxLjQ3MzUxLCAxLjc2MDk1IiwgXAotICAgICAgICAgICIwLjA5OTc2MywgMC4zODg1LCAwLjYxODY4NywgMC45MDY5MzksIDEuMTk1MjQsIDEuNDgzMDEsIDEuNzcxNzUiLCBcCi0gICAgICAgICAgIjAuMTA5NTk0LCAwLjM5ODQ0LCAwLjYyODU3NiwgMC45MTY1NTksIDEuMjA1OSwgMS40OTMzNCwgMS43ODExNyIsIFwKLSAgICAgICAgICAiMC4xMTkzNzIsIDAuNDA4MTQ5LCAwLjYzODU0MiwgMC45Mjc0OSwgMS4yMTQ1MSwgMS41MDMzOCwgMS43OTA1NSIsIFwKLSAgICAgICAgICAiMC4xMzQ3ODYsIDAuNDIzODE4LCAwLjY1NDc5MywgMC45NDI3OTQsIDEuMjMxMzEsIDEuNTE4MzgsIDEuODA3NTUiLCBcCi0gICAgICAgICAgIjAuMTQ3MzQsIDAuNDM3Njc1LCAwLjY2ODM4NCwgMC45NTcyNTksIDEuMjQ0ODMsIDEuNTMzNzUsIDEuODIwNTciKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTQ4Mjk0LCAwLjcyNjkzOSwgMS4xODY0NywgMS43NjYxMiwgMi4zNDE2NiwgMi45MTkwNCwgMy41MDQ0NCIsIFwKLSAgICAgICAgICAiMC4xNDgyOTIsIDAuNzI2MDY0LCAxLjE4ODM0LCAxLjc2NjA4LCAyLjM0NjkzLCAyLjkxODQ2LCAzLjUwNDM1IiwgXAotICAgICAgICAgICIwLjE0OTA3LCAwLjcyNTIzMiwgMS4xODc1LCAxLjc2ODUyLCAyLjM0MTc0LCAyLjkyNTc5LCAzLjQ5NTgxIiwgXAotICAgICAgICAgICIwLjE1MTY0NSwgMC43MjUyNjQsIDEuMTg4OSwgMS43NjcwOCwgMi4zNDE1NywgMi45MTksIDMuNDk5NjUiLCBcCi0gICAgICAgICAgIjAuMTU1NDE1LCAwLjcyNjkyOSwgMS4xODk2MywgMS43NjQyNiwgMi4zNDMyNywgMi45MjIyNywgMy41MDM4NCIsIFwKLSAgICAgICAgICAiMC4xNjMzOTUsIDAuNzI2OTk3LCAxLjE4NjkyLCAxLjc2ODU5LCAyLjM0MTYsIDIuOTIxMTEsIDMuNDk1NjgiLCBcCi0gICAgICAgICAgIjAuMTcxODAyLCAwLjcyODMwOSwgMS4xODczNywgMS43NjQzNywgMi4zNDY5OSwgMi45MTkwNCwgMy41MDM3NCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzE4MywgMC4xMzUxOTUsIDAuMjE3NzI0LCAwLjMyMDk4OCwgMC40MjQwNzcsIDAuNTI3MTg5LCAwLjYzMDMyMyIsIFwKLSAgICAgICAgICAiMC4wNDE5MDgsIDAuMTQ1MzMyLCAwLjIyNzkwNCwgMC4zMzA5OSwgMC40MzQxNTIsIDAuNTM3MTcsIDAuNjQwMTc4IiwgXAotICAgICAgICAgICIwLjA1NTA2MSwgMC4xNTgyMDcsIDAuMjQwOTc5LCAwLjM0NDA0NiwgMC40NDYxNywgMC41NDkwMDYsIDAuNjUyNDciLCBcCi0gICAgICAgICAgIjAuMDY3NDE3LCAwLjE3MDc5OCwgMC4yNTMyNTMsIDAuMzU2NDE0LCAwLjQ1OTM4MiwgMC41NjI1MSwgMC42NjU4MjciLCBcCi0gICAgICAgICAgIjAuMDc4MzQ3LCAwLjE4MzU1OSwgMC4yNjYxMzYsIDAuMzY5MTU2LCAwLjQ3MjE2NSwgMC41NzUzODMsIDAuNjc4NTA5IiwgXAotICAgICAgICAgICIwLjA5MzI2LCAwLjIwMzgxLCAwLjI4NzUyOCwgMC4zODk3NjIsIDAuNDkyNjI4LCAwLjU5NTY2NywgMC42OTg4MDEiLCBcCi0gICAgICAgICAgIjAuMTA1NjE2LCAwLjIyMjc1NCwgMC4zMDQxMzMsIDAuNDA3NzQyLCAwLjUxMDY5NSwgMC42MTUwMTcsIDAuNzE2NTI0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1Mzk1MSwgMC4yNjExMjgsIDAuNDI3MDksIDAuNjM0Mjk3LCAwLjg0MTUzLCAxLjA0ODc0LCAxLjI1NjA0IiwgXAotICAgICAgICAgICIwLjA1NTAzLCAwLjI2MTIzNywgMC40MjY4OTEsIDAuNjM0MDUsIDAuODQxMjI2LCAxLjA0ODUsIDEuMjU1NTgiLCBcCi0gICAgICAgICAgIjAuMDYwNTg1LCAwLjI2MTE4OCwgMC40MjY4NzksIDAuNjM0MTczLCAwLjg0MTU2NiwgMS4wNDg2MywgMS4yNTYxMSIsIFwKLSAgICAgICAgICAiMC4wNjg2NiwgMC4yNjIzMTgsIDAuNDI2ODY5LCAwLjYzNDIzOSwgMC44NDEyMjQsIDEuMDQ4NTksIDEuMjU2MjMiLCBcCi0gICAgICAgICAgIjAuMDc3ODAxLCAwLjI2NTM1MiwgMC40MjcyNDYsIDAuNjM0MTgsIDAuODQxNTQ5LCAxLjA0ODcyLCAxLjI1NjI3IiwgXAotICAgICAgICAgICIwLjA5MzM5LCAwLjI3Mjk4OCwgMC40MzA1MSwgMC42MzQzMzQsIDAuODQxNTczLCAxLjA0ODgyLCAxLjI1NTk2IiwgXAotICAgICAgICAgICIwLjEwNDQ2NywgMC4yODA1ODUsIDAuNDM1OTgzLCAwLjYzNjU5MSwgMC44NDE2MDMsIDEuMDQ4NzUsIDEuMjU1NjkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc0NTI2LCAwLjM2Mjc0OCwgMC41OTMzNywgMC44ODE2MTcsIDEuMTY5NywgMS40NTgxMiwgMS43NDUyOCIsIFwKLSAgICAgICAgICAiMC4wODI3MjUsIDAuMzcxMTY4LCAwLjYwMjEzNywgMC44OTA1MTgsIDEuMTc3NTMsIDEuNDY3MDcsIDEuNzU0MDYiLCBcCi0gICAgICAgICAgIjAuMDkzMTM4LCAwLjM4MTksIDAuNjExNzkzLCAwLjkwMDQsIDEuMTg4MSwgMS40NzY3NiwgMS43NjQ2NCIsIFwKLSAgICAgICAgICAiMC4xMDQyLCAwLjM5MjY5MSwgMC42MjMxMTksIDAuOTExMTAxLCAxLjIsIDEuNDg3MzEsIDEuNzc2MDEiLCBcCi0gICAgICAgICAgIjAuMTE0OTI0LCAwLjQwMzI1NywgMC42MzM5NDMsIDAuOTIxNzY4LCAxLjIxMDM0LCAxLjQ5NzY2LCAxLjc4NjkiLCBcCi0gICAgICAgICAgIjAuMTMyNTI1LCAwLjQyMDQ5NSwgMC42NTA5OTUsIDAuOTM5MDQyLCAxLjIyNzA1LCAxLjUxNDkzLCAxLjgwMjk1IiwgXAotICAgICAgICAgICIwLjE0Njc5NywgMC40MzU2OTQsIDAuNjY2NDA4LCAwLjk1NDM5MywgMS4yNDI0NCwgMS41MzEzNywgMS44MTgwOSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNDgyNTYsIDAuNzI1NDIyLCAxLjE4ODQ4LCAxLjc2NDM2LCAyLjM0MTM4LCAyLjkxODk4LCAzLjUwNDQyIiwgXAotICAgICAgICAgICIwLjE0ODAwNiwgMC43MjU2NTEsIDEuMTg3MDksIDEuNzY0NjUsIDIuMzQ2NjksIDIuOTE5MiwgMy40OTk2MiIsIFwKLSAgICAgICAgICAiMC4xNDk2MjEsIDAuNzI3MDQsIDEuMTg2ODMsIDEuNzY1MTUsIDIuMzQ2NjMsIDIuOTE4OTUsIDMuNTA0NTciLCBcCi0gICAgICAgICAgIjAuMTU0MTU0LCAwLjcyNTU1NywgMS4xODc5NywgMS43NjcwNywgMi4zNDE0NywgMi45MTk5OCwgMy40OTYzMiIsIFwKLSAgICAgICAgICAiMC4xNjA2MzksIDAuNzI1MTMyLCAxLjE4OTk2LCAxLjc2ODI3LCAyLjM0NDMsIDIuOTIwMzQsIDMuNDk2MTgiLCBcCi0gICAgICAgICAgIjAuMTcyNjAxLCAwLjcyNjQ1NSwgMS4xODc1MywgMS43NjgxNSwgMi4zNDY3MSwgMi45MjM0NywgMy40OTgxIiwgXAotICAgICAgICAgICIwLjE4MzkzNSwgMC43Mjg3NzMsIDEuMTg5OTgsIDEuNzY0MDYsIDIuMzQ3MDYsIDIuOTIyNzIsIDMuNTAzNzYiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDI5NTQyLCAwLjEzMzA5MSwgMC4yMTU4MDcsIDAuMzE5MjQ4LCAwLjQyMjcxMywgMC41MjYxODQsIDAuNjI5OTc1IiwgXAotICAgICAgICAgICIwLjAzOTgyNCwgMC4xNDMzMDksIDAuMjI2MDE5LCAwLjMyOTQ3NiwgMC40MzI4ODQsIDAuNTM2NDU0LCAwLjYzOTY5OCIsIFwKLSAgICAgICAgICAiMC4wNTI2NzQsIDAuMTU2MDk2LCAwLjIzOTEwNiwgMC4zNDI2NDgsIDAuNDQ2MDA3LCAwLjU0ODE3NiwgMC42NTE2ODUiLCBcCi0gICAgICAgICAgIjAuMDY0OTg5LCAwLjE2OTI3LCAwLjI1MTYyLCAwLjM1NTIxMiwgMC40NTg0OTYsIDAuNTYxOTg5LCAwLjY2NTkxMSIsIFwKLSAgICAgICAgICAiMC4wNzUxOTcsIDAuMTgxMzMsIDAuMjY0NDA1LCAwLjM2NzgxNywgMC40NzEyNiwgMC41NzQ2MiwgMC42Nzc4ODUiLCBcCi0gICAgICAgICAgIjAuMDg5NTIyLCAwLjIwMjk3NSwgMC4yODQ1MDIsIDAuMzg4NDU0LCAwLjQ5MTYyOCwgMC41OTQ5MDEsIDAuNjk4MzU0IiwgXAotICAgICAgICAgICIwLjEwMDM1LCAwLjIyMDc2LCAwLjMwMjQzNywgMC40MDcyMTQsIDAuNTA5NjkxLCAwLjYxMjk3NCwgMC43MTYyNjMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDUxNzE3LCAwLjI2MTAzOSwgMC40Mjg2OTEsIDAuNjM3NzE3LCAwLjg0ODI5OSwgMS4wNTk1NCwgMS4yNjc0MiIsIFwKLSAgICAgICAgICAiMC4wNTI5NzMsIDAuMjYxMTY5LCAwLjQyOTY2MSwgMC42MzkzOTcsIDAuODQ4MjMyLCAxLjA1NzM1LCAxLjI2OTYxIiwgXAotICAgICAgICAgICIwLjA1ODkwNywgMC4yNjE2NjIsIDAuNDI5NzAzLCAwLjYzODI4MSwgMC44NDczMjMsIDEuMDU2NzUsIDEuMjY2ODIiLCBcCi0gICAgICAgICAgIjAuMDY2NzgzLCAwLjI2MjcwNSwgMC40Mjg3NzIsIDAuNjM3OTYyLCAwLjg0NzI2LCAxLjA1NzQ0LCAxLjI2Njk4IiwgXAotICAgICAgICAgICIwLjA3NjU1LCAwLjI2NTkyNywgMC40Mjg5MDcsIDAuNjM4MDY4LCAwLjg0NzI5LCAxLjA1Njk0LCAxLjI2ODkyIiwgXAotICAgICAgICAgICIwLjA5MjA4OSwgMC4yNzI2NDMsIDAuNDMyODMzLCAwLjYzODQwMywgMC44NDk0MTEsIDEuMDU2NzcsIDEuMjY3MDIiLCBcCi0gICAgICAgICAgIjAuMTA1MTgsIDAuMjgwOTk3LCAwLjQzNzY5NywgMC42NDE4MDMsIDAuODQ5MzU3LCAxLjA1OTQsIDEuMjY2MTQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1MTQ1LCAwLjAwNTE2MywgMC4wMDUxNjQsIDAuMDA1MTY1LCAwLjAwNTE2NiwgMC4wMDUxNjYsIDAuMDA1MTY3IiwgXAotICAgICAgICAgICIwLjAwNTExNiwgMC4wMDUxMzgsIDAuMDA1MTQsIDAuMDA1MTQyLCAwLjAwNTE0MiwgMC4wMDUxNDEsIDAuMDA1MTQzIiwgXAotICAgICAgICAgICIwLjAwNTEwMiwgMC4wMDUxMywgMC4wMDUxMzQsIDAuMDA1MTM0LCAwLjAwNTEzNywgMC4wMDUxMzgsIDAuMDA1MTQiLCBcCi0gICAgICAgICAgIjAuMDA1MTAyLCAwLjAwNTEzNiwgMC4wMDUxNDEsIDAuMDA1MTQ0LCAwLjAwNTE0NiwgMC4wMDUxNDUsIDAuMDA1MTQ3IiwgXAotICAgICAgICAgICIwLjAwNTEwOCwgMC4wMDUxNDMsIDAuMDA1MTQ5LCAwLjAwNTE1MiwgMC4wMDUxNTUsIDAuMDA1MTU0LCAwLjAwNTE1NSIsIFwKLSAgICAgICAgICAiMC4wMDUxMjYsIDAuMDA1MTYzLCAwLjAwNTE3LCAwLjAwNTE3MywgMC4wMDUxNzYsIDAuMDA1MTc4LCAwLjAwNTE3OCIsIFwKLSAgICAgICAgICAiMC4wMDUxNDIsIDAuMDA1MTgxLCAwLjAwNTE4OSwgMC4wMDUxOTMsIDAuMDA1MTk2LCAwLjAwNTE5NywgMC4wMDUxOTgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQ4NzksIDAuMDA0ODg0LCAwLjAwNDg4NiwgMC4wMDQ4ODUsIDAuMDA0ODg0LCAwLjAwNDg4NCwgMC4wMDQ4ODQiLCBcCi0gICAgICAgICAgIjAuMDA0ODU1LCAwLjAwNDg2NSwgMC4wMDQ4NjUsIDAuMDA0ODY2LCAwLjAwNDg2NiwgMC4wMDQ4NjYsIDAuMDA0ODY2IiwgXAotICAgICAgICAgICIwLjAwNDg1LCAwLjAwNDg2MiwgMC4wMDQ4NjQsIDAuMDA0ODY1LCAwLjAwNDg2NSwgMC4wMDQ4NjUsIDAuMDA0ODY1IiwgXAotICAgICAgICAgICIwLjAwNDg0LCAwLjAwNDg1OCwgMC4wMDQ4NjEsIDAuMDA0ODYxLCAwLjAwNDg2MiwgMC4wMDQ4NjIsIDAuMDA0ODYyIiwgXAotICAgICAgICAgICIwLjAwNDg1NiwgMC4wMDQ4NzEsIDAuMDA0ODc1LCAwLjAwNDg3NiwgMC4wMDQ4NzYsIDAuMDA0ODc3LCAwLjAwNDg3NyIsIFwKLSAgICAgICAgICAiMC4wMDQ4NjQsIDAuMDA0ODgsIDAuMDA0ODgzLCAwLjAwNDg4NywgMC4wMDQ4ODgsIDAuMDA0ODg4LCAwLjAwNDg4OCIsIFwKLSAgICAgICAgICAiMC4wMDQ4ODEsIDAuMDA0OTA0LCAwLjAwNDkwNywgMC4wMDQ5MDcsIDAuMDA0OTA5LCAwLjAwNDkxLCAwLjAwNDkxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0NDk4LCAwLjAwNDUwOCwgMC4wMDQ1MDksIDAuMDA0NTEsIDAuMDA0NTEsIDAuMDA0NTEsIDAuMDA0NTEiLCBcCi0gICAgICAgICAgIjAuMDA0NDU2LCAwLjAwNDQ5NywgMC4wMDQ1MDQsIDAuMDA0NTA1LCAwLjAwNDUwNywgMC4wMDQ1MDYsIDAuMDA0NTA4IiwgXAotICAgICAgICAgICIwLjAwNDQyNywgMC4wMDQ0ODUsIDAuMDA0NDk0LCAwLjAwNDQ5OSwgMC4wMDQ1MDQsIDAuMDA0NTAzLCAwLjAwNDUwNSIsIFwKLSAgICAgICAgICAiMC4wMDQ0MTEsIDAuMDA0NDc0LCAwLjAwNDQ4NSwgMC4wMDQ0OTQsIDAuMDA0NDk4LCAwLjAwNDUwMSwgMC4wMDQ1MDMiLCBcCi0gICAgICAgICAgIjAuMDA0NDAyLCAwLjAwNDQ2NiwgMC4wMDQ0OCwgMC4wMDQ0OSwgMC4wMDQ0OTIsIDAuMDA0NDk4LCAwLjAwNDQ5OSIsIFwKLSAgICAgICAgICAiMC4wMDQzOTgsIDAuMDA0NDU1LCAwLjAwNDQ3MiwgMC4wMDQ0ODMsIDAuMDA0NDg5LCAwLjAwNDQ5MywgMC4wMDQ0OTYiLCBcCi0gICAgICAgICAgIjAuMDA0NDAzLCAwLjAwNDQ0OSwgMC4wMDQ0NjYsIDAuMDA0NDc4LCAwLjAwNDQ4NiwgMC4wMDQ0ODksIDAuMDA0NDkzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwODExLCAwLjAwMDgxNywgMC4wMDA4MTcsIDAuMDAwODE4LCAwLjAwMDgxOCwgMC4wMDA4MTgsIDAuMDAwODE4IiwgXAotICAgICAgICAgICIwLjAwMDc2OCwgMC4wMDA4MDUsIDAuMDAwODEsIDAuMDAwODEyLCAwLjAwMDgxMywgMC4wMDA4MTMsIDAuMDAwODEzIiwgXAotICAgICAgICAgICIwLjAwMDczOCwgMC4wMDA3OTUsIDAuMDAwODA0LCAwLjAwMDgwOCwgMC4wMDA4MDksIDAuMDAwODEsIDAuMDAwODExIiwgXAotICAgICAgICAgICIwLjAwMDc0OSwgMC4wMDA3ODcsIDAuMDAwODAyLCAwLjAwMDgwNywgMC4wMDA4MDksIDAuMDAwODEsIDAuMDAwODExIiwgXAotICAgICAgICAgICIwLjAwMDc1NywgMC4wMDA3ODMsIDAuMDAwODAyLCAwLjAwMDgwNiwgMC4wMDA4MDgsIDAuMDAwODEsIDAuMDAwODEiLCBcCi0gICAgICAgICAgIjAuMDAwNzkzLCAwLjAwMDc5NywgMC4wMDA4LCAwLjAwMDgwOCwgMC4wMDA4MDksIDAuMDAwODEsIDAuMDAwODExIiwgXAotICAgICAgICAgICIwLjAwMDc2OCwgMC4wMDA4MTEsIDAuMDAwODA5LCAwLjAwMDgxMiwgMC4wMDA4MTMsIDAuMDAwODEyLCAwLjAwMDgxMyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzc5LCAwLjAwMzgwNiwgMC4wMDM4MDgsIDAuMDAzODA5LCAwLjAwMzgwOCwgMC4wMDM4MSwgMC4wMDM4MDkiLCBcCi0gICAgICAgICAgIjAuMDAzNzI3LCAwLjAwMzc4OSwgMC4wMDM3OTcsIDAuMDAzODAxLCAwLjAwMzgwMywgMC4wMDM4MDUsIDAuMDAzODA1IiwgXAotICAgICAgICAgICIwLjAwMzcwMiwgMC4wMDM3NzMsIDAuMDAzNzg2LCAwLjAwMzc5MywgMC4wMDM3OTcsIDAuMDAzNzk5LCAwLjAwMzgwMSIsIFwKLSAgICAgICAgICAiMC4wMDM2OSwgMC4wMDM3NiwgMC4wMDM3NzcsIDAuMDAzNzg2LCAwLjAwMzc5LCAwLjAwMzc5NSwgMC4wMDM3OTciLCBcCi0gICAgICAgICAgIjAuMDAzNzA0LCAwLjAwMzc1NSwgMC4wMDM3NzIsIDAuMDAzNzgxLCAwLjAwMzc4OCwgMC4wMDM3OTEsIDAuMDAzNzk1IiwgXAotICAgICAgICAgICIwLjAwMzczMiwgMC4wMDM3NSwgMC4wMDM3NjYsIDAuMDAzNzc3LCAwLjAwMzc4NCwgMC4wMDM3ODgsIDAuMDAzNzkxIiwgXAotICAgICAgICAgICIwLjAwMzc3MywgMC4wMDM3NTMsIDAuMDAzNzY1LCAwLjAwMzc3NSwgMC4wMDM3ODIsIDAuMDAzNzg2LCAwLjAwMzc4OSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDEzNCwgMC4wMDAxNTUsIDAuMDAwMTU3LCAwLjAwMDE1OCwgMC4wMDAxNTksIDAuMDAwMTU5LCAwLjAwMDE1OSIsIFwKLSAgICAgICAgICAiMC4wMDAxMTEsIDAuMDAwMTg1LCAwLjAwMDE5NCwgMC4wMDAxOTgsIDAuMDAwMiwgMC4wMDAyMDIsIDAuMDAwMjAzIiwgXAotICAgICAgICAgICIwLjAwMDA3NywgMC4wMDAxNzYsIDAuMDAwMTg5LCAwLjAwMDE5NiwgMC4wMDAyLCAwLjAwMDIxMSwgMC4wMDAyMTMiLCBcCi0gICAgICAgICAgIjAuMDAwMDQ0LCAwLjAwMDE2NywgMC4wMDAxODQsIDAuMDAwMTk1LCAwLjAwMDIsIDAuMDAwMjA0LCAwLjAwMDIwNiIsIFwKLSAgICAgICAgICAiMC4wMDAwNjQsIDAuMDAwMTY0LCAwLjAwMDE4MywgMC4wMDAxOTQsIDAuMDAwMiwgMC4wMDAyMDQsIDAuMDAwMjA2IiwgXAotICAgICAgICAgICIwLjAwMDA4NCwgMC4wMDAxNTcsIDAuMDAwMTc5LCAwLjAwMDE5MiwgMC4wMDAxOTgsIDAuMDAwMjAyLCAwLjAwMDIwNSIsIFwKLSAgICAgICAgICAiMC4wMDAxMTYsIDAuMDAwMTY0LCAwLjAwMDE3OSwgMC4wMDAxOTMsIDAuMDAwMTk4LCAwLjAwMDIwMiwgMC4wMDAyMDUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBOT1IzQlhMICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKE5PUjNCWEwpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4wNzkwNTIzOwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBTikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjQxODQ2OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDY0MTY2MzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2NDE4NDY7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzg4LCAwLjAwMDM2MSwgMC4wMDAzNjgsIDAuMDAwMzczLCAwLjAwMDM4OSwgMC4wMDA0MSwgMC4wMDA0MzYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDEzOTMsIDAuMDAxMzcyLCAwLjAwMTM2OSwgMC4wMDEzNzcsIDAuMDAxMzg5LCAwLjAwMTQxNSwgMC4wMDE0MzkiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY2NDg5OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDY2MjIyMTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2NjQ4OTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAwODYsIDAuMDAwMDg2LCAwLjAwMDA4NiwgMC4wMDAwODYsIDAuMDAwMDg2LCAwLjAwMDA4NiwgMC4wMDAwODYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxOTUsIDAuMDAwMTk1LCAwLjAwMDE5NSwgMC4wMDAxOTUsIDAuMDAwMTk1LCAwLjAwMDE5NSwgMC4wMDAxOTUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEMpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY5MTAyMjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2OTEwMjI7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjkwODIzOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDA2MiwgMC4wMDAwNjIsIDAuMDAwMDYyLCAwLjAwMDA2MiwgMC4wMDAwNjIsIDAuMDAwMDYyLCAwLjAwMDA2MiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDE5LCAwLjAwMDE5LCAwLjAwMDE5LCAwLjAwMDE5LCAwLjAwMDE5LCAwLjAwMDE5LCAwLjAwMDE5Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMDUwMzI2OTsKLSAgICBmdW5jdGlvbiA6ICIoISgoKCFBTikrQikrQykpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjM4NTcsIDAuMjc3ODg4LCAwLjYzMTUyNCwgMS4yMjE2MywgMS44MDk0OSwgMy4xODQ3MiwgMy45Njg4IiwgXAotICAgICAgICAgICIwLjI0ODY1MywgMC4yODgxODQsIDAuNjQyMDk1LCAxLjIzMTIsIDEuODIxNjgsIDMuMTkzNjEsIDMuOTc4NzYiLCBcCi0gICAgICAgICAgIjAuMjU5MDY0LCAwLjI5ODU5NSwgMC42NTIyNTQsIDEuMjQxMzMsIDEuODMxODMsIDMuMjA0MTQsIDMuOTg5MDUiLCBcCi0gICAgICAgICAgIjAuMjY3Mjk5LCAwLjMwNjUzMywgMC42NTk5OTIsIDEuMjQ5NTIsIDEuODM4NzYsIDMuMjEzMzUsIDMuOTk3NjQiLCBcCi0gICAgICAgICAgIjAuMjc0MDgxLCAwLjMxMzM2MiwgMC42NjcwMDQsIDEuMjU1OTQsIDEuODQ1NzYsIDMuMjIwMTEsIDQuMDA0MyIsIFwKLSAgICAgICAgICAiMC4yODMzNTcsIDAuMzIyNjQyLCAwLjY3NjE2NywgMS4yNjYyMSwgMS44NTU4MiwgMy4yMjg1NiwgNC4wMTM0MiIsIFwKLSAgICAgICAgICAiMC4yOTA1MTYsIDAuMzI5OTA5LCAwLjY4MzYzNSwgMS4yNzI2MywgMS44NjE2OSwgMy4yMzU3OSwgNC4wMjA2Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjQzMzMwMywgMC41MTIzMTcsIDEuMjIzMjIsIDIuNDA2ODYsIDMuNTk4NzUsIDYuMzUxMzYsIDcuOTMzMDUiLCBcCi0gICAgICAgICAgIjAuNDM0MDQzLCAwLjUxMjA4MSwgMS4yMjI2NCwgMi40MTI4MywgMy41OTE2MywgNi4zNTcyMywgNy45MzI5IiwgXAotICAgICAgICAgICIwLjQzNDA1MSwgMC41MTIwODIsIDEuMjIyNSwgMi40MTI0NiwgMy41OTExMywgNi4zNTY3LCA3LjkzMjE0IiwgXAotICAgICAgICAgICIwLjQzNDEyMiwgMC41MTMxNzEsIDEuMjI1MTQsIDIuNDEyNDIsIDMuNTk5MzgsIDYuMzUxNzMsIDcuOTI3NzUiLCBcCi0gICAgICAgICAgIjAuNDM0MDM1LCAwLjUxMjIyOCwgMS4yMjMxMSwgMi40MTA1LCAzLjU5OTU1LCA2LjM1MiwgNy45Mjk5NyIsIFwKLSAgICAgICAgICAiMC40MzM3NzMsIDAuNTEyMDM4LCAxLjIyMzAxLCAyLjQwNjcxLCAzLjU5MTEsIDYuMzU3NTcsIDcuOTMyMSIsIFwKLSAgICAgICAgICAiMC40MzI5MzgsIDAuNTExODEyLCAxLjIyMjYxLCAyLjQxMiwgMy41OTMwOSwgNi4zNTc1NywgNy45MzIxMSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTc1MzgsIDAuMTExNDI2LCAwLjIzNjE1MSwgMC40NDM4MDUsIDAuNjUxMjUxLCAxLjEzNTE1LCAxLjQxMTk2IiwgXAotICAgICAgICAgICIwLjEwNzE2NCwgMC4xMjEwNiwgMC4yNDU3ODEsIDAuNDUzNjExLCAwLjY2MTE3MiwgMS4xNDUyOCwgMS40MjIxNiIsIFwKLSAgICAgICAgICAiMC4xMTcyNzIsIDAuMTMxMTU5LCAwLjI1NTk1NiwgMC40NjM0NTYsIDAuNjcxMjMyLCAxLjE1NTA2LCAxLjQzMjI2IiwgXAotICAgICAgICAgICIwLjEyNDk0MywgMC4xMzg4MzUsIDAuMjYzNTksIDAuNDcxMTU2LCAwLjY3ODkxLCAxLjE2MzM4LCAxLjQzOTY5IiwgXAotICAgICAgICAgICIwLjEzMTUyNywgMC4xNDU0MTIsIDAuMjcwMTM4LCAwLjQ3NzM1NSwgMC42ODQ2NTgsIDEuMTY4ODYsIDEuNDQ2NDQiLCBcCi0gICAgICAgICAgIjAuMTQwMDgyLCAwLjE1Mzk2OSwgMC4yNzg5MDMsIDAuNDg2NDk3LCAwLjY5NDA3NiwgMS4xNzc5NiwgMS40NTQ3NSIsIFwKLSAgICAgICAgICAiMC4xNDY4NzUsIDAuMTYwODEyLCAwLjI4NTUwNCwgMC40OTIzNiwgMC43MDA2MDcsIDEuMTg0NDUsIDEuNDYxMzMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTU1NzI2LCAwLjE4MzQ2OCwgMC40MzI2OTUsIDAuODQ4MTA3LCAxLjI2MzY2LCAyLjIzMzQ3LCAyLjc4NzA2IiwgXAotICAgICAgICAgICIwLjE1NTgxNCwgMC4xODM0MTEsIDAuNDMyODI4LCAwLjg0ODQxOSwgMS4yNjM5MiwgMi4yMzM1MSwgMi43ODc3NCIsIFwKLSAgICAgICAgICAiMC4xNTU4MDQsIDAuMTgzNTMzLCAwLjQzMjc0NiwgMC44NDgwOTIsIDEuMjYzODQsIDIuMjMzMjcsIDIuNzg4MTEiLCBcCi0gICAgICAgICAgIjAuMTU1OTU2LCAwLjE4MzY4NywgMC40MzI4NzEsIDAuODQ4MDg3LCAxLjI2Mzk0LCAyLjIzMzM5LCAyLjc4Nzc2IiwgXAotICAgICAgICAgICIwLjE1NjIzNywgMC4xODM4MzgsIDAuNDMyODU0LCAwLjg0ODMxNCwgMS4yNjM1LCAyLjIzMzc4LCAyLjc4Nzc0IiwgXAotICAgICAgICAgICIwLjE1NjQ1OSwgMC4xODM5NzksIDAuNDMyODYxLCAwLjg0ODQ3NiwgMS4yNjQxMiwgMi4yMzM3LCAyLjc4Nzg3IiwgXAotICAgICAgICAgICIwLjE1NjU4MiwgMC4xODQxNTcsIDAuNDMyOTAxLCAwLjg0ODMzMiwgMS4yNjM0OSwgMi4yMzM1NywgMi43ODc1NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMjI5MTMsIDAuMjYyMjc4LCAwLjYxNTgzNSwgMS4yMDU0MSwgMS43OTQxNiwgMy4xNjgzOCwgMy45NTI4NyIsIFwKLSAgICAgICAgICAiMC4yMzExMiwgMC4yNzA0NSwgMC42MjQxNywgMS4yMTQyLCAxLjgwMjgsIDMuMTc2ODQsIDMuOTYxMTkiLCBcCi0gICAgICAgICAgIjAuMjQwODk5LCAwLjI4MDM5NywgMC42MzM4MzYsIDEuMjIzNiwgMS44MTQxMiwgMy4xODcxMywgMy45NzExNCIsIFwKLSAgICAgICAgICAiMC4yNTA1NTMsIDAuMjg5OTkyLCAwLjY0MzkzNywgMS4yMzMwNywgMS44MjMzMSwgMy4xOTYyNCwgMy45ODA3MiIsIFwKLSAgICAgICAgICAiMC4yNjAxNzIsIDAuMjk5Njg1LCAwLjY1MzQwOSwgMS4yNDI1OCwgMS44MzI2LCAzLjIwNjA4LCAzLjk5MTEzIiwgXAotICAgICAgICAgICIwLjI3NTU3NCwgMC4zMTUwNDMsIDAuNjY4ODY4LCAxLjI1OTAyLCAxLjg0ODUsIDMuMjIyMTksIDQuMDA2NDEiLCBcCi0gICAgICAgICAgIjAuMjg5MjI3LCAwLjMyODQzNiwgMC42ODI2ODIsIDEuMjcyMzMsIDEuODYxMjgsIDMuMjM1NDksIDQuMDIwMjkiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuNDMzMDk1LCAwLjUxMTk5MywgMS4yMjI1OSwgMi40MDk2MiwgMy41OTIzNywgNi4zNTE4NCwgNy45MzI4MSIsIFwKLSAgICAgICAgICAiMC40MzMzMiwgMC41MTMxNDUsIDEuMjI1NCwgMi40MDY4MiwgMy41OTk0NCwgNi4zNTMsIDcuOTMxNTYiLCBcCi0gICAgICAgICAgIjAuNDMzMTA5LCAwLjUxMjAyOSwgMS4yMjMxOSwgMi40MTI3OSwgMy41OTE1MywgNi4zNTEyNSwgNy45MzI2NyIsIFwKLSAgICAgICAgICAiMC40MzM3NzIsIDAuNTEzMjM3LCAxLjIyNTYyLCAyLjQxMjUsIDMuNTkxMjEsIDYuMzU0NTUsIDcuOTMyMjMiLCBcCi0gICAgICAgICAgIjAuNDMzNzM2LCAwLjUxMzM0OSwgMS4yMjUyLCAyLjQwODU2LCAzLjU5OTcxLCA2LjM1NzY2LCA3LjkzMjQ2IiwgXAotICAgICAgICAgICIwLjQzNzI1NSwgMC41MTQyMzgsIDEuMjI1MiwgMi40MDY5LCAzLjU5MDc0LCA2LjM1MzE2LCA3LjkzMjIyIiwgXAotICAgICAgICAgICIwLjQ0MDU2OCwgMC41MTY5MjksIDEuMjI0NDUsIDIuNDEyMjQsIDMuNTk4NywgNi4zNTc1NSwgNy45MzIxIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4MTE3OSwgMC4wOTUwMTYsIDAuMjE5NjA1LCAwLjQyNzAzMiwgMC42MzQ0MDUsIDEuMTE4NjgsIDEuMzk1MDciLCBcCi0gICAgICAgICAgIjAuMDkxMjg4LCAwLjEwNTE0MiwgMC4yMjk3NDksIDAuNDM3MTc5LCAwLjY0NDYwOCwgMS4xMjg1MSwgMS40MDUxOSIsIFwKLSAgICAgICAgICAiMC4xMDQzNywgMC4xMTgyMjEsIDAuMjQyNDcsIDAuNDQ5MjksIDAuNjU2ODYzLCAxLjE0MjI4LCAxLjQxODMiLCBcCi0gICAgICAgICAgIjAuMTE2NjI4LCAwLjEzMDQ2NSwgMC4yNTUwNzEsIDAuNDYyNDg5LCAwLjY2OTQzMywgMS4xNTIzMSwgMS40Mjg5NiIsIFwKLSAgICAgICAgICAiMC4xMjk4OSwgMC4xNDMyMDgsIDAuMjY3OTAyLCAwLjQ3NTI3MSwgMC42ODI4MjgsIDEuMTY0MDMsIDEuNDQxMTUiLCBcCi0gICAgICAgICAgIjAuMTUwNzM4LCAwLjE2NDQ0NywgMC4yODg1NTksIDAuNDk1NzU4LCAwLjcwMzAxLCAxLjE4Mzg1LCAxLjQ2MDI0IiwgXAotICAgICAgICAgICIwLjE2ODg4OSwgMC4xODI3NTQsIDAuMzA1ODYsIDAuNTEzNTk4LCAwLjcyMDcxMywgMS4yMDE2NiwgMS40Nzc4NyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNTI3MTMsIDAuMTgwNDE2LCAwLjQyOTgxNCwgMC44NDUzNDQsIDEuMjYwODcsIDIuMjMwMzEsIDIuNzg0ODIiLCBcCi0gICAgICAgICAgIjAuMTUyNzI4LCAwLjE4MDQ5NSwgMC40Mjk2OTYsIDAuODQ1MDcsIDEuMjYxLCAyLjIzMDQ0LCAyLjc4NDQ3IiwgXAotICAgICAgICAgICIwLjE1MzgzOCwgMC4xODA5MDMsIDAuNDI5NzcyLCAwLjg0NTQ4MSwgMS4yNjEyOCwgMi4yMzEwNSwgMi43ODM4OCIsIFwKLSAgICAgICAgICAiMC4xNTgwMTIsIDAuMTg0MjQ0LCAwLjQyOTg2NiwgMC44NDUyNiwgMS4yNjA2NywgMi4yMzA1MywgMi43ODU0OCIsIFwKLSAgICAgICAgICAiMC4xNjMzNzEsIDAuMTg5MjMyLCAwLjQzMDAyLCAwLjg0NTUxNCwgMS4yNjEyNSwgMi4yMzA3MSwgMi43ODQ1NiIsIFwKLSAgICAgICAgICAiMC4xNzQxMiwgMC4xOTg3ODMsIDAuNDMzNDI2LCAwLjg0NTMzMiwgMS4yNjEyNiwgMi4yMzA0NiwgMi43ODM5MSIsIFwKLSAgICAgICAgICAiMC4xODUxMzcsIDAuMjA4NzkyLCAwLjQzODc3OCwgMC44NDU1MDQsIDEuMjYwODYsIDIuMjMxMjQsIDIuNzg0MDEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjE2NDM1LCAwLjI1NTg0LCAwLjYwOTcwMSwgMS4xOTg4MiwgMS43ODkxNSwgMy4xNjE1NSwgMy45NDYzNSIsIFwKLSAgICAgICAgICAiMC4yMjQ5NDgsIDAuMjY0MjA1LCAwLjYxNzc0OCwgMS4yMDgyNCwgMS43OTYwNCwgMy4xNzExOCwgMy45NTQ4NyIsIFwKLSAgICAgICAgICAiMC4yMzUyNzgsIDAuMjc0NTg3LCAwLjYyODIxMywgMS4yMTc5NSwgMS44MDg1MSwgMy4xODA2NCwgMy45NjU1IiwgXAotICAgICAgICAgICIwLjI0NTQ4MSwgMC4yODUxNiwgMC42MzkwNDUsIDEuMjI5NDMsIDEuODE3NTYsIDMuMTkxOTUsIDMuOTc2MjUiLCBcCi0gICAgICAgICAgIjAuMjU2NDc0LCAwLjI5NTY5OSwgMC42NDk3NTEsIDEuMjM5NDMsIDEuODI4NTMsIDMuMjAxOTEsIDMuOTg2NzQiLCBcCi0gICAgICAgICAgIjAuMjczNTI3LCAwLjMxMjkyNSwgMC42NjY1ODQsIDEuMjU2MDMsIDEuODQ2MTQsIDMuMjE5OTIsIDQuMDAzODYiLCBcCi0gICAgICAgICAgIjAuMjg4NjI4LCAwLjMyNzkwOCwgMC42ODEzNzYsIDEuMjcxMDUsIDEuODU5ODEsIDMuMjM0LCA0LjAxODc5Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjQzMzQ5LCAwLjUxMzI1OCwgMS4yMjI2NiwgMi40MTI1NiwgMy41OTA4OSwgNi4zNTY4LCA3LjkzMjY2IiwgXAotICAgICAgICAgICIwLjQzNDE2OSwgMC41MTIyNzUsIDEuMjIzMjIsIDIuNDA2OTcsIDMuNTkyMTksIDYuMzUxNDYsIDcuOTMxMTciLCBcCi0gICAgICAgICAgIjAuNDM0MDU0LCAwLjUxMjI1NiwgMS4yMjM1MSwgMi40MTI2NSwgMy41OTExNSwgNi4zNTcwNiwgNy45MzI0MSIsIFwKLSAgICAgICAgICAiMC40MzM5NDUsIDAuNTEzMTk0LCAxLjIyNTQ4LCAyLjQwNjg5LCAzLjU5MjY0LCA2LjM1MjQsIDcuOTMyMjIiLCBcCi0gICAgICAgICAgIjAuNDMzODA3LCAwLjUxMjkxMiwgMS4yMjU1NiwgMi40MDY0NiwgMy41OTEzOCwgNi4zNTcxNiwgNy45MzIwNyIsIFwKLSAgICAgICAgICAiMC40Mzg3NjcsIDAuNTE1NjgzLCAxLjIyNTE4LCAyLjQxMjI1LCAzLjU5MDY4LCA2LjM1MjA5LCA3LjkzMjA0IiwgXAotICAgICAgICAgICIwLjQ0NDQzNiwgMC41MjA0NDIsIDEuMjIzMDEsIDIuNDEyNDIsIDMuNTk4NjYsIDYuMzU3NTQsIDcuOTMyMDkiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc4ODI2LCAwLjA5MjY2MywgMC4yMTcxNTcsIDAuNDI0NTMzLCAwLjYzMjQwNCwgMS4xMTY1OCwgMS4zOTI1NyIsIFwKLSAgICAgICAgICAiMC4wODkwNzEsIDAuMTAyODY4LCAwLjIyNzQzOCwgMC40MzQ5NzksIDAuNjQyNDYzLCAxLjEyNjE3LCAxLjQwMjgxIiwgXAotICAgICAgICAgICIwLjEwMTY2MywgMC4xMTU2NDMsIDAuMjQwMTYsIDAuNDQ2ODkxLCAwLjY1NDU2NSwgMS4xMzc1NSwgMS40MTQ2NyIsIFwKLSAgICAgICAgICAiMC4xMTQzNzksIDAuMTI4MjAzLCAwLjI1Mjg1NiwgMC40NjAxNzYsIDAuNjY3MjY4LCAxLjE0OTk3LCAxLjQyNjU1IiwgXAotICAgICAgICAgICIwLjEyNzg0OCwgMC4xNDEwMTMsIDAuMjY1NjU0LCAwLjQ3MjkxOSwgMC42ODA1MTUsIDEuMTYxNjksIDEuNDM5MSIsIFwKLSAgICAgICAgICAiMC4xNDg1NjUsIDAuMTYyMjU0LCAwLjI4NTgxMywgMC40OTQzODEsIDAuNzAwOTI3LCAxLjE4MjExLCAxLjQ1ODE5IiwgXAotICAgICAgICAgICIwLjE2NjYzMSwgMC4xODA3NTQsIDAuMzAzNzQzLCAwLjUxMTQ1OSwgMC43MTg1NzcsIDEuMTk5MjEsIDEuNDc1ODciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTUwNjg5LCAwLjE3ODQ0LCAwLjQyNzM2NywgMC44NDU5MjYsIDEuMjU5MDUsIDIuMjI5NywgMi43OTE2NSIsIFwKLSAgICAgICAgICAiMC4xNTAyMzUsIDAuMTc4Mzk4LCAwLjQyNzY3OCwgMC44NDM4NzgsIDEuMjYwNTEsIDIuMjM2MTgsIDIuNzkxMTUiLCBcCi0gICAgICAgICAgIjAuMTUxNTU3LCAwLjE3OTAzOSwgMC40MjgyMTcsIDAuODQ0NTk3LCAxLjI1OTg2LCAyLjIyOTU2LCAyLjc4Nzc2IiwgXAotICAgICAgICAgICIwLjE1NTc3MiwgMC4xODE5OTYsIDAuNDI3NTg4LCAwLjg0MzEwNSwgMS4yNjExOCwgMi4yMzA3MywgMi43ODYyNCIsIFwKLSAgICAgICAgICAiMC4xNjEwMTQsIDAuMTg2OTQ1LCAwLjQyOTEyOSwgMC44NDQxOTMsIDEuMjYwNjksIDIuMjI5MzIsIDIuNzgzNjYiLCBcCi0gICAgICAgICAgIjAuMTcyMDAyLCAwLjE5NjU4MiwgMC40MzE5NDcsIDAuODQ0MDk4LCAxLjI1OTQsIDIuMjMzMzgsIDIuNzgzNDMiLCBcCi0gICAgICAgICAgIjAuMTgyOTU2LCAwLjIwNjkzMiwgMC40Mzc5MTMsIDAuODQ1MjY4LCAxLjI2MjE2LCAyLjIzNTY3LCAyLjc4MjgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxNzIsIDAuMDAxNzIsIDAuMDAxNzIsIDAuMDAxNzIsIDAuMDAxNzIsIDAuMDAxNzIsIDAuMDAxNzIiLCBcCi0gICAgICAgICAgIjAuMDAxNjk2LCAwLjAwMTY5NiwgMC4wMDE2OTcsIDAuMDAxNjk3LCAwLjAwMTY5NywgMC4wMDE2OTgsIDAuMDAxNjk2IiwgXAotICAgICAgICAgICIwLjAwMTcwMSwgMC4wMDE3MDEsIDAuMDAxNzAzLCAwLjAwMTcwMywgMC4wMDE3MDMsIDAuMDAxNzAzLCAwLjAwMTcwMyIsIFwKLSAgICAgICAgICAiMC4wMDE3MDMsIDAuMDAxNzA0LCAwLjAwMTcwNSwgMC4wMDE3MDYsIDAuMDAxNzA3LCAwLjAwMTcwNywgMC4wMDE3MDciLCBcCi0gICAgICAgICAgIjAuMDAxNzE3LCAwLjAwMTcxOCwgMC4wMDE3MiwgMC4wMDE3MjEsIDAuMDAxNzIyLCAwLjAwMTcyMiwgMC4wMDE3MjIiLCBcCi0gICAgICAgICAgIjAuMDAxNzQ0LCAwLjAwMTc0NSwgMC4wMDE3NDgsIDAuMDAxNzQ5LCAwLjAwMTc0OSwgMC4wMDE3NSwgMC4wMDE3NSIsIFwKLSAgICAgICAgICAiMC4wMDE3NjksIDAuMDAxNzcsIDAuMDAxNzczLCAwLjAwMTc3NCwgMC4wMDE3NzUsIDAuMDAxNzc0LCAwLjAwMTc3MiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjAxNywgMC4wMDIwMTcsIDAuMDAyMDE3LCAwLjAwMjAxOCwgMC4wMDIwMTcsIDAuMDAyMDE3LCAwLjAwMjAxNyIsIFwKLSAgICAgICAgICAiMC4wMDE5OTksIDAuMDAxOTk4LCAwLjAwMTk5OSwgMC4wMDE5OTksIDAuMDAxOTk5LCAwLjAwMTk5OCwgMC4wMDE5OTgiLCBcCi0gICAgICAgICAgIjAuMDAxOTkzLCAwLjAwMTk5NCwgMC4wMDE5OTQsIDAuMDAxOTk0LCAwLjAwMTk5NCwgMC4wMDE5OTQsIDAuMDAxOTk0IiwgXAotICAgICAgICAgICIwLjAwMjAwMiwgMC4wMDIwMDMsIDAuMDAyMDAzLCAwLjAwMjAwMywgMC4wMDIwMDMsIDAuMDAyMDAyLCAwLjAwMjAwMiIsIFwKLSAgICAgICAgICAiMC4wMDIwMTUsIDAuMDAyMDE1LCAwLjAwMjAxNiwgMC4wMDIwMSwgMC4wMDIwMSwgMC4wMDIwMSwgMC4wMDIwMTYiLCBcCi0gICAgICAgICAgIjAuMDAyMDM4LCAwLjAwMjAzOSwgMC4wMDIwMzcsIDAuMDAyMDM2LCAwLjAwMjAzNywgMC4wMDIwNDEsIDAuMDAyMDM3IiwgXAotICAgICAgICAgICIwLjAwMjA1OSwgMC4wMDIwNiwgMC4wMDIwNjEsIDAuMDAyMDYzLCAwLjAwMjA2MiwgMC4wMDIwNjQsIDAuMDAyMDYzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxNTUyLCAwLjAwMTU1MywgMC4wMDE1NTMsIDAuMDAxNTUzLCAwLjAwMTU1NCwgMC4wMDE1NTMsIDAuMDAxNTU0IiwgXAotICAgICAgICAgICIwLjAwMTU0NywgMC4wMDE1NDgsIDAuMDAxNTUxLCAwLjAwMTU1MiwgMC4wMDE1NTMsIDAuMDAxNTUzLCAwLjAwMTU1MyIsIFwKLSAgICAgICAgICAiMC4wMDE1NDIsIDAuMDAxNTQzLCAwLjAwMTU0OSwgMC4wMDE1NTEsIDAuMDAxNTUyLCAwLjAwMTU1MiwgMC4wMDE1NTMiLCBcCi0gICAgICAgICAgIjAuMDAxNTM4LCAwLjAwMTU0LCAwLjAwMTU0NywgMC4wMDE1NSwgMC4wMDE1NTEsIDAuMDAxNTUyLCAwLjAwMTU1MiIsIFwKLSAgICAgICAgICAiMC4wMDE1MzUsIDAuMDAxNTM3LCAwLjAwMTU0NSwgMC4wMDE1NDksIDAuMDAxNTUsIDAuMDAxNTUxLCAwLjAwMTU1MiIsIFwKLSAgICAgICAgICAiMC4wMDE1MzIsIDAuMDAxNTM0LCAwLjAwMTU0MywgMC4wMDE1NDgsIDAuMDAxNTQ5LCAwLjAwMTU1MSwgMC4wMDE1NTEiLCBcCi0gICAgICAgICAgIjAuMDAxNTMyLCAwLjAwMTUzMywgMC4wMDE1NDIsIDAuMDAxNTQ2LCAwLjAwMTU0OCwgMC4wMDE1NSwgMC4wMDE1NTEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDAxOTEsIDAuMDAwMTkxLCAwLjAwMDE5MSwgMC4wMDAxOTEsIDAuMDAwMTkxLCAwLjAwMDE5MSwgMC4wMDAxOTEiLCBcCi0gICAgICAgICAgIjAuMDAwMTg2LCAwLjAwMDE4NywgMC4wMDAxODksIDAuMDAwMTksIDAuMDAwMTkxLCAwLjAwMDE5MSwgMC4wMDAxOTEiLCBcCi0gICAgICAgICAgIjAuMDAwMTgzLCAwLjAwMDE4NCwgMC4wMDAxODgsIDAuMDAwMTg5LCAwLjAwMDE5LCAwLjAwMDE5LCAwLjAwMDE5IiwgXAotICAgICAgICAgICIwLjAwMDE4MiwgMC4wMDAxODMsIDAuMDAwMTg4LCAwLjAwMDE5LCAwLjAwMDE5LCAwLjAwMDE5LCAwLjAwMDE5IiwgXAotICAgICAgICAgICIwLjAwMDE4NCwgMC4wMDAxODQsIDAuMDAwMTg4LCAwLjAwMDE5LCAwLjAwMDE5LCAwLjAwMDE5LCAwLjAwMDE5IiwgXAotICAgICAgICAgICIwLjAwMDE4OCwgMC4wMDAxODksIDAuMDAwMTksIDAuMDAwMTksIDAuMDAwMTksIDAuMDAwMTksIDAuMDAwMTkxIiwgXAotICAgICAgICAgICIwLjAwMDE5NSwgMC4wMDAxOTQsIDAuMDAwMTkxLCAwLjAwMDE5MSwgMC4wMDAxOTEsIDAuMDAwMTkxLCAwLjAwMDE5MSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTM2LCAwLjAwMTM1OSwgMC4wMDEzNjEsIDAuMDAxMzYxLCAwLjAwMTM2MiwgMC4wMDEzNjIsIDAuMDAxMzYyIiwgXAotICAgICAgICAgICIwLjAwMTM1MiwgMC4wMDEzNTQsIDAuMDAxMzU4LCAwLjAwMTM2LCAwLjAwMTM2MSwgMC4wMDEzNiwgMC4wMDEzNjEiLCBcCi0gICAgICAgICAgIjAuMDAxMzQ2LCAwLjAwMTM0OCwgMC4wMDEzNTUsIDAuMDAxMzU4LCAwLjAwMTM2LCAwLjAwMTM2LCAwLjAwMTM2IiwgXAotICAgICAgICAgICIwLjAwMTM0MiwgMC4wMDEzNDUsIDAuMDAxMzUzLCAwLjAwMTM1NywgMC4wMDEzNTgsIDAuMDAxMzYsIDAuMDAxMzYiLCBcCi0gICAgICAgICAgIjAuMDAxMzQxLCAwLjAwMTM0MywgMC4wMDEzNTEsIDAuMDAxMzU2LCAwLjAwMTM1OCwgMC4wMDEzNTksIDAuMDAxMzU5IiwgXAotICAgICAgICAgICIwLjAwMTM0MiwgMC4wMDEzNDMsIDAuMDAxMzUsIDAuMDAxMzU1LCAwLjAwMTM1NywgMC4wMDEzNTksIDAuMDAxMzU5IiwgXAotICAgICAgICAgICIwLjAwMTM0NiwgMC4wMDEzNDYsIDAuMDAxMzUxLCAwLjAwMTM1NSwgMC4wMDEzNTYsIDAuMDAxMzU3LCAwLjAwMTM1OSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDAyLCAwLjAwMDAyMSwgMC4wMDAwMjIsIDAuMDAwMDIyLCAwLjAwMDAyMiwgMC4wMDAwMjMsIDAuMDAwMDIzIiwgXAotICAgICAgICAgICIwLjAwMDAyNSwgMC4wMDAwMjYsIDAuMDAwMDMxLCAwLjAwMDAzMywgMC4wMDAwMzMsIDAuMDAwMDM0LCAwLjAwMDAzNCIsIFwKLSAgICAgICAgICAiMC4wMDAwMjEsIDAuMDAwMDIzLCAwLjAwMDAzLCAwLjAwMDAzNSwgMC4wMDAwMzYsIDAuMDAwMDM4LCAwLjAwMDAzOCIsIFwKLSAgICAgICAgICAiMC4wMDAwMTgsIDAuMDAwMDIsIDAuMDAwMDI5LCAwLjAwMDAzMywgMC4wMDAwMzUsIDAuMDAwMDM4LCAwLjAwMDAzOSIsIFwKLSAgICAgICAgICAiMC4wMDAwMTUsIDAuMDAwMDE4LCAwLjAwMDAyOSwgMC4wMDAwMzMsIDAuMDAwMDM0LCAwLjAwMDAzOCwgMC4wMDAwMzkiLCBcCi0gICAgICAgICAgIjAuMDAwMDE4LCAwLjAwMDAyLCAwLjAwMDAyOCwgMC4wMDAwMzIsIDAuMDAwMDM0LCAwLjAwMDAzOCwgMC4wMDAwMzgiLCBcCi0gICAgICAgICAgIjAuMDAwMDIxLCAwLjAwMDAyMiwgMC4wMDAwMjgsIDAuMDAwMDMzLCAwLjAwMDAzNSwgMC4wMDAwMzgsIDAuMDAwMDM4Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBOT1IzWDEgKgotICogLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChOT1IzWDEpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4xMDI4ODE7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDg1MDc2MzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA4NDQ4MjU7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwODUwNzYzOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDM1LCAwLjAwMDM3LCAwLjAwMDM3OCwgMC4wMDAzODMsIDAuMDAwMzg0LCAwLjAwMDM4NywgMC4wMDAzODUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA3NDEsIDAuMDAwNzQxLCAwLjAwMDc0MSwgMC4wMDA3NDEsIDAuMDAwNzQxLCAwLjAwMDc0MSwgMC4wMDA3NDEiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDg4MjU0MTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA4Nzc0NDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA4ODI1NDE7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzQ5LCAwLjAwMDM4NCwgMC4wMDAzOSwgMC4wMDAzOTEsIDAuMDAwMzkyLCAwLjAwMDM5NiwgMC4wMDAzOTciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA0MywgMC4wMDA0MywgMC4wMDA0MywgMC4wMDA0MywgMC4wMDA0MywgMC4wMDA0MywgMC4wMDA0MyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQykgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwODg4NzQ4OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDg4ODc0ODsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA4ODg3MTk7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMTA4LCAwLjAwMDEwOCwgMC4wMDAxMDgsIDAuMDAwMTA4LCAwLjAwMDEwOCwgMC4wMDAxMDgsIDAuMDAwMTA4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzIzLCAwLjAwMDMyMywgMC4wMDAzMjMsIDAuMDAwMzIzLCAwLjAwMDMyMywgMC4wMDAzMjMsIDAuMDAwMzIzIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMDk2NjE5ODsKLSAgICBmdW5jdGlvbiA6ICIoISgoQStCKStDKSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE0MTQ3OCwgMC4yMTA3NzYsIDAuNjAzMjU4LCAwLjk0OTc2NywgMS40MTI0MiwgMi4zMzQ2NiwgMi45MTEwOSIsIFwKLSAgICAgICAgICAiMC4xNDk3MzIsIDAuMjE5MTI5LCAwLjYxMTgyOCwgMC45NTg2ODYsIDEuNDE5NDQsIDIuMzQzMjcsIDIuOTE5ODYiLCBcCi0gICAgICAgICAgIjAuMTU4MzEzLCAwLjIyNzY3NCwgMC42MjA4NTUsIDAuOTY3NjA1LCAxLjQyODk4LCAyLjM1MzA0LCAyLjkyOTMiLCBcCi0gICAgICAgICAgIjAuMTY2MzUzLCAwLjIzNTcwNSwgMC42Mjg0NzQsIDAuOTc1NzU4LCAxLjQzNjcyLCAyLjM2MTMyLCAyLjkzNjY2IiwgXAotICAgICAgICAgICIwLjE3NDI1OCwgMC4yNDM3NjIsIDAuNjM2MzQ1LCAwLjk4MjY0NiwgMS40NDQ1LCAyLjM2ODM4LCAyLjk0NTI1IiwgXAotICAgICAgICAgICIwLjE4Njc4NSwgMC4yNTYxODcsIDAuNjQ4OTcxLCAwLjk5NTUwNCwgMS40NTg0NCwgMi4zODE3OSwgMi45NTcwOSIsIFwKLSAgICAgICAgICAiMC4xOTc4NTksIDAuMjY3MTk5LCAwLjY2MDA3LCAxLjAwNjQ3LCAxLjQ2ODMzLCAyLjM5MjEsIDIuOTY5NDUiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjYyMzUsIDAuNDAxMTksIDEuMTg5NDMsIDEuODgyMTQsIDIuODA0NTQsIDQuNjY0NzMsIDUuODExNzciLCBcCi0gICAgICAgICAgIjAuMjYyNTk0LCAwLjQwMDc2NCwgMS4xODc5MiwgMS44ODAxNCwgMi44MTA4MSwgNC42NjQ4OSwgNS44MDg0MiIsIFwKLSAgICAgICAgICAiMC4yNjI1NzksIDAuNDAwODk1LCAxLjE4NjY2LCAxLjg4MDA5LCAyLjgwNzg4LCA0LjY1MzU0LCA1LjgxNDcyIiwgXAotICAgICAgICAgICIwLjI2MzA4NywgMC40MDA5MywgMS4xODcyMiwgMS44ODA0NSwgMi44MDYwMiwgNC42NTM2NiwgNS44MTE0OCIsIFwKLSAgICAgICAgICAiMC4yNjQyMTMsIDAuNDAxMjY4LCAxLjE4NzE2LCAxLjg4MzAzLCAyLjgwNTczLCA0LjY2NTA1LCA1LjgwNzc4IiwgXAotICAgICAgICAgICIwLjI2NzczNSwgMC40MDM5NDgsIDEuMTg5MTgsIDEuODg0MzgsIDIuODA0NzcsIDQuNjY1OTQsIDUuODEzNzciLCBcCi0gICAgICAgICAgIjAuMjcxODQ1LCAwLjQwNjc0MiwgMS4xODg0OCwgMS44ODQyNSwgMi44MTA5OCwgNC42NTYzMywgNS44MTUxNCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTQxMzksIDAuMDc5MDgsIDAuMjE5NTkyLCAwLjM0MzM3NCwgMC41MDgzMjEsIDAuODM4MzEzLCAxLjA0NDc5IiwgXAotICAgICAgICAgICIwLjA2NDIzOCwgMC4wODkxNDksIDAuMjI5NjcsIDAuMzUzNDA3LCAwLjUxODM2MiwgMC44NDgxNzcsIDEuMDU0ODkiLCBcCi0gICAgICAgICAgIjAuMDc3MTc2LCAwLjEwMjIxOCwgMC4yNDI0MjEsIDAuMzY1MjI0LCAwLjUzMDIxOSwgMC44NjAxNjcsIDEuMDY2NTkiLCBcCi0gICAgICAgICAgIjAuMDkwMDI4LCAwLjExNDUxMSwgMC4yNTUxMiwgMC4zNzg4MSwgMC41NDM3MywgMC44NzI4MjUsIDEuMDc4MDIiLCBcCi0gICAgICAgICAgIjAuMTAzMjk2LCAwLjEyNzg3NywgMC4yNjc5OTQsIDAuMzkxNjU5LCAwLjU1NjUwMSwgMC44ODY0MTUsIDEuMDkxNjUiLCBcCi0gICAgICAgICAgIjAuMTIzMjIzLCAwLjE0OTE0NiwgMC4yODgxNzQsIDAuNDEyMjMxLCAwLjU3NzAxNSwgMC45MDY3MjEsIDEuMTEyOTMiLCBcCi0gICAgICAgICAgIjAuMTM4Mjg5LCAwLjE2Njg5OSwgMC4zMDYwNywgMC40MzAzOTUsIDAuNTk1MTI5LCAwLjkyNTk5MywgMS4xMzIxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5NzQyMywgMC4xNDcxNDUsIDAuNDI4NzUxLCAwLjY3NzMsIDEuMDA4NjUsIDEuNjcxNzksIDIuMDg2MDEiLCBcCi0gICAgICAgICAgIjAuMDk3MzkzLCAwLjE0NzE1MSwgMC40Mjg3NzIsIDAuNjc3MzI4LCAxLjAwODc3LCAxLjY3MTUzLCAyLjA4NjE2IiwgXAotICAgICAgICAgICIwLjEwMDYwMywgMC4xNDgyMjIsIDAuNDI4ODc2LCAwLjY3NzI4NSwgMS4wMDg2NiwgMS42NzIyMywgMi4wODYwNyIsIFwKLSAgICAgICAgICAiMC4xMDYyNTgsIDAuMTUyNTU4LCAwLjQyODk2NiwgMC42Nzc0MjYsIDEuMDA4NjUsIDEuNjcxMzUsIDIuMDg2MDYiLCBcCi0gICAgICAgICAgIjAuMTEzMjY1LCAwLjE1Nzg3NCwgMC40MjkxMjgsIDAuNjc3NDU5LCAxLjAwODY3LCAxLjY3MjI1LCAyLjA4NjExIiwgXAotICAgICAgICAgICIwLjEyNjAzNCwgMC4xNjgxNjksIDAuNDMyNTE5LCAwLjY3NzM5NCwgMS4wMDkxMywgMS42NzEzNywgMi4wODU2MiIsIFwKLSAgICAgICAgICAiMC4xMzk0MjgsIDAuMTc5NzIzLCAwLjQzNzYyNSwgMC42Nzg5NDcsIDEuMDA4NywgMS42NzEzNywgMi4wODU1NiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMzg1NTUsIDAuMjA3OTgsIDAuNjAwNjA2LCAwLjk0NzM5MywgMS40MDgzNSwgMi4zMzIwNywgMi45MDgwMiIsIFwKLSAgICAgICAgICAiMC4xNDY5MzMsIDAuMjE2NDg5LCAwLjYwOTEwMSwgMC45NTUzMDMsIDEuNDE3OTcsIDIuMzQwNDEsIDIuOTE2OCIsIFwKLSAgICAgICAgICAiMC4xNTY3NDEsIDAuMjI2MjgzLCAwLjYxODc5OCwgMC45NjUyMjcsIDEuNDI4MjEsIDIuMzUxNjEsIDIuOTI2OTIiLCBcCi0gICAgICAgICAgIjAuMTY2NTAzLCAwLjIzNTk3NSwgMC42Mjg3MywgMC45NzUxNTgsIDEuNDM3MTIsIDIuMzYxMSwgMi45MzY1NSIsIFwKLSAgICAgICAgICAiMC4xNzYzNTYsIDAuMjQ1NzUyLCAwLjYzODY3MSwgMC45ODU2NzQsIDEuNDQ3ODUsIDIuMzcxMzksIDIuOTQ3NzMiLCBcCi0gICAgICAgICAgIjAuMTkyMjc0LCAwLjI2MTU1MSwgMC42NTQ0ODUsIDEuMDAxMDIsIDEuNDYzNzksIDIuMzg3MjgsIDIuOTYyODIiLCBcCi0gICAgICAgICAgIjAuMjA1ODU5LCAwLjI3NTQ1NSwgMC42NjgyNzgsIDEuMDE0ODYsIDEuNDc3OTIsIDIuNDAwODIsIDIuOTc2NjIiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjYyMDM0LCAwLjQwMDcyOSwgMS4xODY1NywgMS44OCwgMi44MTEyNCwgNC42NjUxOCwgNS44MTIxMSIsIFwKLSAgICAgICAgICAiMC4yNjI1NywgMC40MDA3NjksIDEuMTg5NiwgMS44ODQ1OCwgMi44MDQ3OCwgNC42NjQ3NiwgNS44MTE3MiIsIFwKLSAgICAgICAgICAiMC4yNjI0NSwgMC40MDExOTYsIDEuMTg3MjYsIDEuODgwOTgsIDIuODA0NjMsIDQuNjUzODEsIDUuODExNjIiLCBcCi0gICAgICAgICAgIjAuMjYzNDI4LCAwLjQwMTM3MiwgMS4xODkzLCAxLjg4NDQ1LCAyLjgwNzUxLCA0LjY2NTY5LCA1LjgxMjUiLCBcCi0gICAgICAgICAgIjAuMjY1NTA0LCAwLjQwMjE4NCwgMS4xODkyNCwgMS44ODAxMywgMi44MDQ4NSwgNC42NTM0MiwgNS44MTQ2OSIsIFwKLSAgICAgICAgICAiMC4yNzA4ODksIDAuNDA1MzY3LCAxLjE4NywgMS44ODA5LCAyLjgwNDgsIDQuNjY1OTgsIDUuODEzOTEiLCBcCi0gICAgICAgICAgIjAuMjc2ODE1LCAwLjQwODgwMSwgMS4xODkxOCwgMS44ODQzMSwgMi44MDQ3NiwgNC42NjU0NiwgNS44MTMyOSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTIyMjIsIDAuMDc3MDIyLCAwLjIxNzMyNSwgMC4zNDEwOCwgMC41MDYxODYsIDAuODM2MTYzLCAxLjA0MjI2IiwgXAotICAgICAgICAgICIwLjA2MjUyOSwgMC4wODczNTEsIDAuMjI3NjUyLCAwLjM1MDg5NSwgMC41MTYyOTgsIDAuODQ2Mjc3LCAxLjA1Mjc0IiwgXAotICAgICAgICAgICIwLjA3NTMyNywgMC4wOTk4NzcsIDAuMjQwNjA0LCAwLjM2MzA3NSwgMC41MjgwODUsIDAuODU3OTg2LCAxLjA2NDYiLCBcCi0gICAgICAgICAgIjAuMDg4MTgsIDAuMTEyNTEyLCAwLjI1MzA5NCwgMC4zNzY1MjQsIDAuNTQxNDI4LCAwLjg2OTI5LCAxLjA3NTc1IiwgXAotICAgICAgICAgICIwLjEwMTE5NCwgMC4xMjU4NDksIDAuMjY2MDAzLCAwLjM4OTMyNSwgMC41NTQxNjcsIDAuODg0MDQ1LCAxLjA4OTUxIiwgXAotICAgICAgICAgICIwLjEyMDk4OCwgMC4xNDcxMzgsIDAuMjg1ODg1LCAwLjQxMDA5LCAwLjU3NTgzNywgMC45MDU2NTUsIDEuMTExNzgiLCBcCi0gICAgICAgICAgIjAuMTM1NTk5LCAwLjE2NDY2NiwgMC4zMDM3NDksIDAuNDI3OTgyLCAwLjU5MjU3OCwgMC45MjIyNiwgMS4xMjg1MSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTQ3MjgsIDAuMTQ0NDMsIDAuNDI2MTQ1LCAwLjY3NDc2MSwgMS4wMDY1MSwgMS42Njk5MywgMi4wODQ1MSIsIFwKLSAgICAgICAgICAiMC4wOTQ4MTEsIDAuMTQ0NTExLCAwLjQyNjE0NiwgMC42NzQ3MzksIDEuMDA2MjIsIDEuNjY5NzksIDIuMDg0MzMiLCBcCi0gICAgICAgICAgIjAuMDk4MTc4LCAwLjE0NTc5NywgMC40MjYyNDMsIDAuNjc0ODIxLCAxLjAwNjUyLCAxLjY2OTc3LCAyLjA4NDQ4IiwgXAotICAgICAgICAgICIwLjEwNDEzNCwgMC4xNTAxNDYsIDAuNDI2MTM5LCAwLjY3NDcxMywgMS4wMDY0MSwgMS42NjkwMywgMi4wODM2MyIsIFwKLSAgICAgICAgICAiMC4xMTEzMiwgMC4xNTU1NiwgMC40MjY1LCAwLjY3NDgwMSwgMS4wMDYzNSwgMS42NjkwOCwgMi4wODQzOSIsIFwKLSAgICAgICAgICAiMC4xMjQxODIsIDAuMTY2MDQsIDAuNDMwMDU4LCAwLjY3NTA0NSwgMS4wMDY0NiwgMS42NjkzOSwgMi4wODMzMyIsIFwKLSAgICAgICAgICAiMC4xMzc5NjUsIDAuMTc3NzY5LCAwLjQzNTI5MiwgMC42NzY0OTQsIDEuMDA2MzQsIDEuNjY5MTQsIDIuMDgzMzYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTMxODA4LCAwLjIwMTAzOCwgMC41OTM5OTMsIDAuOTM5OTE3LCAxLjQwMTIxLCAyLjMyNTE4LCAyLjkwMTcxIiwgXAotICAgICAgICAgICIwLjE0MDA4MywgMC4yMDk0MDIsIDAuNjAyNDcxLCAwLjk0ODQ5MiwgMS40MTA2OCwgMi4zMzQ3MywgMi45MTEwMyIsIFwKLSAgICAgICAgICAiMC4xNTA1NDQsIDAuMjIwMTI0LCAwLjYxMjY3NiwgMC45NTkwNzcsIDEuNDIwNTgsIDIuMzQ0NDQsIDIuOTIwNyIsIFwKLSAgICAgICAgICAiMC4xNjEyNDYsIDAuMjMwNjEsIDAuNjIzNDYyLCAwLjk2OTU1NCwgMS40MzE3NCwgMi4zNTU0MywgMi45MzEzNSIsIFwKLSAgICAgICAgICAiMC4xNzIwMjMsIDAuMjQxMzY5LCAwLjYzNDE3OCwgMC45ODA0NTIsIDEuNDQzMDMsIDIuMzY1OTgsIDIuOTQyMiIsIFwKLSAgICAgICAgICAiMC4xODk1ODYsIDAuMjU4Nzk5LCAwLjY1MTQ5NSwgMC45OTc5NzgsIDEuNDU5NDUsIDIuMzgzODEsIDIuOTU5ODIiLCBcCi0gICAgICAgICAgIjAuMjA0OTc1LCAwLjI3NDAzMSwgMC42NjY3NDgsIDEuMDEzMDEsIDEuNDc2MDQsIDIuMzk4ODksIDIuOTc0NjQiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjYyMzQyLCAwLjQwMTU4NSwgMS4xODY2OCwgMS44ODA1OCwgMi44MDU2NSwgNC42NjQ5MywgNS44MDg0NCIsIFwKLSAgICAgICAgICAiMC4yNjIxMDEsIDAuNDAxMzIxLCAxLjE4NjY3LCAxLjg4NDUsIDIuODA3ODksIDQuNjUzNjIsIDUuODE1MSIsIFwKLSAgICAgICAgICAiMC4yNjE5NjQsIDAuNDAwNjgyLCAxLjE4NzE4LCAxLjg4MTAxLCAyLjgxMDgxLCA0LjY2NDg5LCA1LjgxMjE2IiwgXAotICAgICAgICAgICIwLjI2Mzg5MywgMC40MDEyNjEsIDEuMTg5MzYsIDEuODgxMDIsIDIuODExNDIsIDQuNjY1MjMsIDUuODEyMzciLCBcCi0gICAgICAgICAgIjAuMjY3Mzg1LCAwLjQwMjc3MywgMS4xODkzMywgMS44ODQyNiwgMi44MDQzOCwgNC42NjQ5NSwgNS44MTIwMiIsIFwKLSAgICAgICAgICAiMC4yNzUzNjUsIDAuNDA3NDQ0LCAxLjE4OTI2LCAxLjg4NDQ4LCAyLjgxMDgzLCA0LjY2NTU0LCA1LjgwODM2IiwgXAotICAgICAgICAgICIwLjI4NDQxNiwgMC40MTI5NiwgMS4xODk0OSwgMS44ODQzOSwgMi44MDUxNiwgNC42NjU1MywgNS44MTM0NyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDk3NjMsIDAuMDc0NTIxLCAwLjIxNDczLCAwLjMzODQxNCwgMC41MDMzMSwgMC44MzMxNjksIDEuMDM5NzkiLCBcCi0gICAgICAgICAgIjAuMDU5OTM4LCAwLjA4NDc0NiwgMC4yMjUwMjEsIDAuMzQ4NjU0LCAwLjUxMzU1NywgMC44NDMzNjMsIDEuMDUwMiIsIFwKLSAgICAgICAgICAiMC4wNzI2MTYsIDAuMDk3MzY2LCAwLjIzODEwNywgMC4zNjA2NSwgMC41MjU0OTEsIDAuODU1NDA1LCAxLjA2MTgxIiwgXAotICAgICAgICAgICIwLjA4NTg1OSwgMC4xMTAxMzYsIDAuMjUwNjI2LCAwLjM3NDE1NiwgMC41MzkxMDEsIDAuODY4MSwgMS4wNzMzNyIsIFwKLSAgICAgICAgICAiMC4wOTg4OTEsIDAuMTIzNjUxLCAwLjI2MzM1MiwgMC4zODY4NjgsIDAuNTUxODE4LCAwLjg4MTY2NSwgMS4wODY5NyIsIFwKLSAgICAgICAgICAiMC4xMTc4NjgsIDAuMTQ0NTAyLCAwLjI4NDY5MSwgMC40MDc1NTcsIDAuNTcyMjE4LCAwLjkwMTk0OSwgMS4xMDgxNyIsIFwKLSAgICAgICAgICAiMC4xMzIxMjcsIDAuMTYyMjAxLCAwLjMwMTQ2NiwgMC40MjU2NDEsIDAuNTkwNDY4LCAwLjkxOTg3MSwgMS4xMjU5OSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTIyODYsIDAuMTQxODAxLCAwLjQyMzYzOSwgMC42NzQzMDksIDEuMDA3MjEsIDEuNjcyMDYsIDIuMDgyNTYiLCBcCi0gICAgICAgICAgIjAuMDkyMTgyLCAwLjE0MjE4NCwgMC40MjM4ODYsIDAuNjcyNDg0LCAxLjAwNDMxLCAxLjY3MjM4LCAyLjA4MzY3IiwgXAotICAgICAgICAgICIwLjA5NTk5LCAwLjE0MzQwNCwgMC40MjQyNjcsIDAuNjcyNzQxLCAxLjAwMzk5LCAxLjY3MjExLCAyLjA4Mjk3IiwgXAotICAgICAgICAgICIwLjEwMTc5OCwgMC4xNDc5ODYsIDAuNDI0Mjc1LCAwLjY3Mjc1LCAxLjAwNDY1LCAxLjY3MjQxLCAyLjA4Mjc5IiwgXAotICAgICAgICAgICIwLjEwOTIyOSwgMC4xNTMxOTcsIDAuNDI1NDE5LCAwLjY3MjQyNywgMS4wMDU3NCwgMS42NzE5LCAyLjA4MzY5IiwgXAotICAgICAgICAgICIwLjEyMjY5MiwgMC4xNjQ1MiwgMC40MjkwOTcsIDAuNjc0MzU2LCAxLjAwNjkzLCAxLjY2NzQ0LCAyLjA4MzI3IiwgXAotICAgICAgICAgICIwLjEzNjY4NSwgMC4xNzU1MjYsIDAuNDM0MjYsIDAuNjc0ODEsIDEuMDA0NTIsIDEuNjY4MzIsIDIuMDgxNjgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI1MDMsIDAuMDAyNTA1LCAwLjAwMjUwNywgMC4wMDI1MDcsIDAuMDAyNTA3LCAwLjAwMjUwNywgMC4wMDI1MDciLCBcCi0gICAgICAgICAgIjAuMDAyNDksIDAuMDAyNDk1LCAwLjAwMjUwMywgMC4wMDI1MDUsIDAuMDAyNTA2LCAwLjAwMjUwNywgMC4wMDI1MDciLCBcCi0gICAgICAgICAgIjAuMDAyNDc4LCAwLjAwMjQ4NiwgMC4wMDI0OTksIDAuMDAyNTAyLCAwLjAwMjUwNCwgMC4wMDI1MDUsIDAuMDAyNTA2IiwgXAotICAgICAgICAgICIwLjAwMjQ2OCwgMC4wMDI0NzcsIDAuMDAyNDk2LCAwLjAwMjUsIDAuMDAyNTAyLCAwLjAwMjUwNCwgMC4wMDI1MDUiLCBcCi0gICAgICAgICAgIjAuMDAyNDY0LCAwLjAwMjQ3MywgMC4wMDI0OTIsIDAuMDAyNDk4LCAwLjAwMjUwMSwgMC4wMDI1MDMsIDAuMDAyNTA0IiwgXAotICAgICAgICAgICIwLjAwMjQ1OCwgMC4wMDI0NjcsIDAuMDAyNDg3LCAwLjAwMjQ5NCwgMC4wMDI0OTksIDAuMDAyNTAyLCAwLjAwMjUwMyIsIFwKLSAgICAgICAgICAiMC4wMDI0NTUsIDAuMDAyNDYzLCAwLjAwMjQ4NSwgMC4wMDI0OTEsIDAuMDAyNDk2LCAwLjAwMjUsIDAuMDAyNTAyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwNjM0LCAwLjAwMDYzNCwgMC4wMDA2MzQsIDAuMDAwNjM0LCAwLjAwMDYzNCwgMC4wMDA2MzQsIDAuMDAwNjM0IiwgXAotICAgICAgICAgICIwLjAwMDYwOCwgMC4wMDA2MDksIDAuMDAwNjExLCAwLjAwMDYxMSwgMC4wMDA2MTEsIDAuMDAwNjExLCAwLjAwMDYxMSIsIFwKLSAgICAgICAgICAiMC4wMDA2LCAwLjAwMDYwNCwgMC4wMDA2MDYsIDAuMDAwNjA0LCAwLjAwMDYwNCwgMC4wMDA2MDQsIDAuMDAwNjA0IiwgXAotICAgICAgICAgICIwLjAwMDYwNCwgMC4wMDA2MDMsIDAuMDAwNjA2LCAwLjAwMDYwNiwgMC4wMDA2MDYsIDAuMDAwNjA0LCAwLjAwMDYwMSIsIFwKLSAgICAgICAgICAiMC4wMDA2MDIsIDAuMDAwNjA3LCAwLjAwMDYwNywgMC4wMDA2MDYsIDAuMDAwNjA2LCAwLjAwMDYwNiwgMC4wMDA2MDQiLCBcCi0gICAgICAgICAgIjAuMDAwNjE1LCAwLjAwMDYxMiwgMC4wMDA2MDgsIDAuMDAwNjA4LCAwLjAwMDYwNywgMC4wMDA2MDYsIDAuMDAwNjA1IiwgXAotICAgICAgICAgICIwLjAwMDYzNCwgMC4wMDA2MjYsIDAuMDAwNjExLCAwLjAwMDYxLCAwLjAwMDYwOCwgMC4wMDA2MDksIDAuMDAwNjA5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyMTcxLCAwLjAwMjE3MiwgMC4wMDIxNzQsIDAuMDAyMTc0LCAwLjAwMjE3MywgMC4wMDIxNzUsIDAuMDAyMTczIiwgXAotICAgICAgICAgICIwLjAwMjE1NywgMC4wMDIxNjMsIDAuMDAyMTcsIDAuMDAyMTcyLCAwLjAwMjE3MywgMC4wMDIxNzQsIDAuMDAyMTc1IiwgXAotICAgICAgICAgICIwLjAwMjE0NSwgMC4wMDIxNTMsIDAuMDAyMTY2LCAwLjAwMjE3LCAwLjAwMjE3MiwgMC4wMDIxNzMsIDAuMDAyMTczIiwgXAotICAgICAgICAgICIwLjAwMjEzNywgMC4wMDIxNDYsIDAuMDAyMTYzLCAwLjAwMjE2NywgMC4wMDIxNjksIDAuMDAyMTcxLCAwLjAwMjE3MiIsIFwKLSAgICAgICAgICAiMC4wMDIxMzIsIDAuMDAyMTQxLCAwLjAwMjE2LCAwLjAwMjE2NSwgMC4wMDIxNjgsIDAuMDAyMTcxLCAwLjAwMjE2OSIsIFwKLSAgICAgICAgICAiMC4wMDIxMjcsIDAuMDAyMTMzLCAwLjAwMjE1NiwgMC4wMDIxNjIsIDAuMDAyMTY2LCAwLjAwMjE2OSwgMC4wMDIxNzEiLCBcCi0gICAgICAgICAgIjAuMDAyMTI3LCAwLjAwMjEzMywgMC4wMDIxNTMsIDAuMDAyMTU5LCAwLjAwMjE2NCwgMC4wMDIxNjgsIDAuMDAyMTciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDAzNjYsIDAuMDAwMzY3LCAwLjAwMDM2OCwgMC4wMDAzNjgsIDAuMDAwMzY4LCAwLjAwMDM2OCwgMC4wMDAzNjgiLCBcCi0gICAgICAgICAgIjAuMDAwMzU1LCAwLjAwMDM1OSwgMC4wMDAzNjUsIDAuMDAwMzY2LCAwLjAwMDM2NywgMC4wMDAzNjcsIDAuMDAwMzY3IiwgXAotICAgICAgICAgICIwLjAwMDM0MywgMC4wMDAzNSwgMC4wMDAzNjIsIDAuMDAwMzY0LCAwLjAwMDM2NSwgMC4wMDAzNjYsIDAuMDAwMzY3IiwgXAotICAgICAgICAgICIwLjAwMDM0NCwgMC4wMDAzNDksIDAuMDAwMzYsIDAuMDAwMzY0LCAwLjAwMDM2NSwgMC4wMDAzNjYsIDAuMDAwMzY2IiwgXAotICAgICAgICAgICIwLjAwMDM0NiwgMC4wMDAzNTEsIDAuMDAwMzU5LCAwLjAwMDM2MywgMC4wMDAzNjUsIDAuMDAwMzY2LCAwLjAwMDM2NiIsIFwKLSAgICAgICAgICAiMC4wMDAzNDUsIDAuMDAwMzQ5LCAwLjAwMDM2MiwgMC4wMDAzNjIsIDAuMDAwMzY1LCAwLjAwMDM2NiwgMC4wMDAzNjYiLCBcCi0gICAgICAgICAgIjAuMDAwMzY5LCAwLjAwMDM2NiwgMC4wMDAzNjUsIDAuMDAwMzY3LCAwLjAwMDM2NywgMC4wMDAzNjcsIDAuMDAwMzY3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxODI4LCAwLjAwMTgzLCAwLjAwMTgzMywgMC4wMDE4MzQsIDAuMDAxODM0LCAwLjAwMTgzNCwgMC4wMDE4MzQiLCBcCi0gICAgICAgICAgIjAuMDAxODA4LCAwLjAwMTgxNiwgMC4wMDE4MjcsIDAuMDAxODMsIDAuMDAxODMxLCAwLjAwMTgzMiwgMC4wMDE4MzMiLCBcCi0gICAgICAgICAgIjAuMDAxNzkzLCAwLjAwMTgwMywgMC4wMDE4MjIsIDAuMDAxODI1LCAwLjAwMTgyOCwgMC4wMDE4MywgMC4wMDE4MzEiLCBcCi0gICAgICAgICAgIjAuMDAxNzg2LCAwLjAwMTc5NywgMC4wMDE4MTcsIDAuMDAxODIzLCAwLjAwMTgyNiwgMC4wMDE4MjksIDAuMDAxODMiLCBcCi0gICAgICAgICAgIjAuMDAxNzg1LCAwLjAwMTc5MywgMC4wMDE4MTQsIDAuMDAxODIsIDAuMDAxODI0LCAwLjAwMTgyOCwgMC4wMDE4MjkiLCBcCi0gICAgICAgICAgIjAuMDAxNzksIDAuMDAxNzk0LCAwLjAwMTgxMSwgMC4wMDE4MTgsIDAuMDAxODIyLCAwLjAwMTgyNiwgMC4wMDE4MjciLCBcCi0gICAgICAgICAgIjAuMDAxODAxLCAwLjAwMTc5OSwgMC4wMDE4MTEsIDAuMDAxODE3LCAwLjAwMTgyMSwgMC4wMDE4MjUsIDAuMDAxODI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwMDU1LCAwLjAwMDA1NywgMC4wMDAwNiwgMC4wMDAwNjEsIDAuMDAwMDYxLCAwLjAwMDA2MiwgMC4wMDAwNjIiLCBcCi0gICAgICAgICAgIjAuMDAwMDU2LCAwLjAwMDA2NiwgMC4wMDAwNzgsIDAuMDAwMDgxLCAwLjAwMDA4MiwgMC4wMDAwODMsIDAuMDAwMDg0IiwgXAotICAgICAgICAgICIwLjAwMDA0NCwgMC4wMDAwNTgsIDAuMDAwMDc2LCAwLjAwMDA4NCwgMC4wMDAwODcsIDAuMDAwMDg5LCAwLjAwMDA5IiwgXAotICAgICAgICAgICIwLjAwMDAzNywgMC4wMDAwNSwgMC4wMDAwNzQsIDAuMDAwMDgsIDAuMDAwMDgzLCAwLjAwMDA4OCwgMC4wMDAwOTEiLCBcCi0gICAgICAgICAgIjAuMDAwMDMzLCAwLjAwMDA0NCwgMC4wMDAwNzMsIDAuMDAwMDc5LCAwLjAwMDA4MywgMC4wMDAwODYsIDAuMDAwMDg4IiwgXAotICAgICAgICAgICIwLjAwMDAzNCwgMC4wMDAwNDYsIDAuMDAwMDcsIDAuMDAwMDc2LCAwLjAwMDA4MiwgMC4wMDAwODYsIDAuMDAwMDg3IiwgXAotICAgICAgICAgICIwLjAwMDA0MiwgMC4wMDAwNSwgMC4wMDAwNywgMC4wMDAwNzgsIDAuMDAwMDgyLCAwLjAwMDA4NiwgMC4wMDAwODciKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogTk9SNEJCWDIgKgotICogLS0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKE5PUjRCQlgyKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMzE1NjsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQU4pICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDU5NzcxMjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA1OTc1OTY7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNTk3NzEyOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDkyLCAwLjAwMDg5NiwgMC4wMDA4ODksIDAuMDAwODk1LCAwLjAwMDkwMywgMC4wMDA5MjgsIDAuMDAwOTQ3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyMDUxLCAwLjAwMjAzMiwgMC4wMDIwMjIsIDAuMDAyMDI0LCAwLjAwMjAzMywgMC4wMDIwNTUsIDAuMDAyMDcxIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCTikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjIxODQ2OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYyMTU3MzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2MjE4NDY7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNTc5LCAwLjAwMDU1NiwgMC4wMDA1NDcsIDAuMDAwNTUsIDAuMDAwNTU4LCAwLjAwMDU4LCAwLjAwMDYwMSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjUwNywgMC4wMDI0ODgsIDAuMDAyNDg0LCAwLjAwMjQ4OSwgMC4wMDI1LCAwLjAwMjUyMiwgMC4wMDI1NDQiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEMpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTU5NzYyOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTU4NjQ0OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTU5NzYyOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDI3OSwgMC4wMDAyNzksIDAuMDAwMjc5LCAwLjAwMDI3OSwgMC4wMDAyNzksIDAuMDAwMjgsIDAuMDAwMjgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA2MTgsIDAuMDAwNjE4LCAwLjAwMDYxOSwgMC4wMDA2MTcsIDAuMDAwNjE4LCAwLjAwMDYxOCwgMC4wMDA2MTciKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEQpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTYzODc5OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTYzODc5OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTYzODc5OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDE3MiwgMC4wMDAxNzIsIDAuMDAwMTcyLCAwLjAwMDE3MiwgMC4wMDAxNzIsIDAuMDAwMTcyLCAwLjAwMDE3MiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDUxMiwgMC4wMDA1MTIsIDAuMDAwNTEyLCAwLjAwMDUxMiwgMC4wMDA1MTIsIDAuMDAwNTEyLCAwLjAwMDUxMSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjEzMjE0NDsKLSAgICBmdW5jdGlvbiA6ICIoISgoKCghQk4pKyghQU4pKStDKStEKSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkFOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNTEwMzUsIDAuNTQ4NzksIDAuODY3MDMsIDEuMjY0MjcsIDEuNjYyMTUsIDIuMDU4ODMsIDIuNDU3NCIsIFwKLSAgICAgICAgICAiMC4xNjExNDgsIDAuNTU4OTAxLCAwLjg3NzY4MiwgMS4yNzQ3NCwgMS42NzIyMywgMi4wNjk3NCwgMi40Njc3NyIsIFwKLSAgICAgICAgICAiMC4xNzM0NiwgMC41NzEzMTYsIDAuODkwMjM5LCAxLjI4NzA0LCAxLjY4NDc3LCAyLjA4MTg4LCAyLjQ4MDA5IiwgXAotICAgICAgICAgICIwLjE4NDExMSwgMC41ODIwMSwgMC45MDAwODgsIDEuMjk3OTEsIDEuNjk1NzgsIDIuMDkzMTMsIDIuNDkwMTMiLCBcCi0gICAgICAgICAgIjAuMTkzMTY5LCAwLjU5MTMwMywgMC45MDk5MSwgMS4zMDcwMSwgMS43MDU4MiwgMi4xMDIxNiwgMi40OTk2MSIsIFwKLSAgICAgICAgICAiMC4yMDYwNjQsIDAuNjA0MTc4LCAwLjkyMjE0OCwgMS4zMjAxNCwgMS43MTY4NywgMi4xMTY2MywgMi41MTMwNyIsIFwKLSAgICAgICAgICAiMC4yMTUyNjYsIDAuNjEzNDc3LCAwLjkzMTQ4LCAxLjMyODgzLCAxLjcyNjk1LCAyLjEyMzk1LCAyLjUyMTM1Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIxMDcyNSwgMS4wMDY2NiwgMS42MzkyNywgMi40MzU3LCAzLjIzNjI3LCA0LjAyNTI3LCA0LjgxODgiLCBcCi0gICAgICAgICAgIjAuMjEwNzI1LCAxLjAwNTIzLCAxLjY0NDIsIDIuNDM1NTEsIDMuMjM2MiwgNC4wMzIzOCwgNC44MTg3MyIsIFwKLSAgICAgICAgICAiMC4yMTA3MjcsIDEuMDA2NjEsIDEuNjQxMDEsIDIuNDM1NDksIDMuMjM2MzEsIDQuMDI0NjEsIDQuODE4NDgiLCBcCi0gICAgICAgICAgIjAuMjEwMzg4LCAxLjAwNTIyLCAxLjY0MDg1LCAyLjQ0MDA2LCAzLjIyOTU4LCA0LjAzMjYxLCA0LjgxOTMzIiwgXAotICAgICAgICAgICIwLjIxMDM3NCwgMS4wMDY3OCwgMS42NDA2LCAyLjQ0MDAzLCAzLjIzMDEsIDQuMDMyNTMsIDQuODI4NjYiLCBcCi0gICAgICAgICAgIjAuMjEwMzczLCAxLjAwNjczLCAxLjY0MTU2LCAyLjQ0MDE5LCAzLjIzNTU0LCA0LjAyNDU3LCA0LjgyOTEzIiwgXAotICAgICAgICAgICIwLjIxMDQ0NywgMS4wMDY3NywgMS42NDM2NiwgMi40MzgxNCwgMy4yMzY0LCA0LjAyNTE3LCA0LjgyODIiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDYxNjIyLCAwLjE2NzkxOCwgMC4yNTEyMDgsIDAuMzU0OTkzLCAwLjQ1ODY1NSwgMC41NjIzMDMsIDAuNjY1ODQxIiwgXAotICAgICAgICAgICIwLjA3MTQ5OSwgMC4xNzc3NTIsIDAuMjYxMDMxLCAwLjM2NDg2LCAwLjQ2ODUzNywgMC41NzIxMTUsIDAuNjc1Nzk1IiwgXAotICAgICAgICAgICIwLjA4MzQ3NywgMC4xODk2OTksIDAuMjcyOTg1LCAwLjM3NjgyMiwgMC40ODA0ODMsIDAuNTg0MDU5LCAwLjY4NzcxNyIsIFwKLSAgICAgICAgICAiMC4wOTM4MDksIDAuMjAwMDgyLCAwLjI4MzM2LCAwLjM4NzE4MywgMC40OTA4MzEsIDAuNTk0NDExLCAwLjY5ODA0OSIsIFwKLSAgICAgICAgICAiMC4xMDI3MzIsIDAuMjA4MzQ4LCAwLjI5MTYxNywgMC4zOTU0MzksIDAuNDk5MDkzLCAwLjYwMjcyMSwgMC43MDYyNTQiLCBcCi0gICAgICAgICAgIjAuMTE0OTIxLCAwLjIyMTAxMSwgMC4zMDQyNjgsIDAuNDA3OTU2LCAwLjUxMTY0NywgMC42MTUyNSwgMC43MTg3OTIiLCBcCi0gICAgICAgICAgIjAuMTI0NDc0LCAwLjIyOTg1NywgMC4zMTMwNDgsIDAuNDE2ODEyLCAwLjUyMDUwMSwgMC42MjQwNTIsIDAuNzI3NjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY1MTQzLCAwLjI3MzA1LCAwLjQ0MDczMiwgMC42NDk3NTEsIDAuODU5MzQyLCAxLjA2ODMyLCAxLjI3NzQzIiwgXAotICAgICAgICAgICIwLjA2NTEzNSwgMC4yNzMwNTMsIDAuNDQwNjg4LCAwLjY0OTc3OCwgMC44NTg5ODksIDEuMDY4ODEsIDEuMjc4MjciLCBcCi0gICAgICAgICAgIjAuMDY1MjU4LCAwLjI3MzA3LCAwLjQ0MDQzNiwgMC42NDk5OTMsIDAuODU4OTc1LCAxLjA2ODI1LCAxLjI3NzgyIiwgXAotICAgICAgICAgICIwLjA2NTcwNywgMC4yNzMyOSwgMC40NDA3MDQsIDAuNjUwMDIxLCAwLjg1ODk1MywgMS4wNjgyNCwgMS4yNzc1OSIsIFwKLSAgICAgICAgICAiMC4wNjYzNTgsIDAuMjczMzg4LCAwLjQ0MDQ3NCwgMC42NTAwMzMsIDAuODU4OTYxLCAxLjA2ODI4LCAxLjI3NzU1IiwgXAotICAgICAgICAgICIwLjA2NzcyMSwgMC4yNzM2MDQsIDAuNDQwNTAxLCAwLjY1MDAyNiwgMC44NTg5NzcsIDEuMDY4MjcsIDEuMjc3NTUiLCBcCi0gICAgICAgICAgIjAuMDY4MzQ3LCAwLjI3MzgxMywgMC40NDA1OTEsIDAuNjQ5NzM2LCAwLjg1OTExNCwgMS4wNjgyMywgMS4yNzgxNiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTQ2OTMxLCAwLjU0NDcxOSwgMC44NjMzODMsIDEuMjYwMTQsIDEuNjU4MTIsIDIuMDU0OTksIDIuNDUzOSIsIFwKLSAgICAgICAgICAiMC4xNTY5ODksIDAuNTU0NjAzLCAwLjg3MzYsIDEuMjcwNTcsIDEuNjY4MTIsIDIuMDY1ODksIDIuNDYzNjIiLCBcCi0gICAgICAgICAgIjAuMTY5NTEyLCAwLjU2NzQ4MSwgMC44ODU1NDMsIDEuMjgzMjYsIDEuNjgxMDEsIDIuMDc3NjksIDIuNDc2MDYiLCBcCi0gICAgICAgICAgIjAuMTgwNDgyLCAwLjU3ODI1MiwgMC44OTY1MjEsIDEuMjk0NjYsIDEuNjkyMiwgMi4wODk2MiwgMi40ODcwNiIsIFwKLSAgICAgICAgICAiMC4xOTAxNCwgMC41ODgxOTMsIDAuOTA2MTk3LCAxLjMwNDIyLCAxLjcwMTg1LCAyLjA5ODUyLCAyLjQ5Njc5IiwgXAotICAgICAgICAgICIwLjIwMzMwMywgMC42MDEzNjMsIDAuOTE5NDI2LCAxLjMxNzQ1LCAxLjcxNTI0LCAyLjExMzMzLCAyLjUwOTg1IiwgXAotICAgICAgICAgICIwLjIxMzQ1OCwgMC42MTE0OTcsIDAuOTI5NjU5LCAxLjMyNzAzLCAxLjcyNTIyLCAyLjEyMjA4LCAyLjUxOTk5Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIxMDM0MywgMS4wMDY2NSwgMS42NDQyMSwgMi40MzU2MiwgMy4yMzYzMiwgNC4wMjUxOSwgNC44MTg2NSIsIFwKLSAgICAgICAgICAiMC4yMTA0NDMsIDEuMDA0NTQsIDEuNjQ0MjQsIDIuNDM1NSwgMy4yMzYyMiwgNC4wMzI2NCwgNC44MTg4MSIsIFwKLSAgICAgICAgICAiMC4yMTA3MjYsIDEuMDA2NzEsIDEuNjQwOTUsIDIuNDQwMDYsIDMuMjM2NDcsIDQuMDMxOSwgNC44MTgwNSIsIFwKLSAgICAgICAgICAiMC4yMTA3MzUsIDEuMDA1MTMsIDEuNjQxMDMsIDIuNDQwMzgsIDMuMjM2NTksIDQuMDMyNzIsIDQuODE4NTYiLCBcCi0gICAgICAgICAgIjAuMjEwNzk1LCAxLjAwNjczLCAxLjY0MDk1LCAyLjQ0MDI2LCAzLjIzNjU2LCA0LjAzMTg1LCA0LjgxODM0IiwgXAotICAgICAgICAgICIwLjIxMDQzOSwgMS4wMDU2NiwgMS42NDM1NywgMi40NDAyNSwgMy4yMzY2NywgNC4wMzMzOCwgNC44MTk3IiwgXAotICAgICAgICAgICIwLjIxMDQ2NCwgMS4wMDUyOCwgMS42NDM2NSwgMi40MzcyNSwgMy4yMzY0NywgNC4wMjQ5OSwgNC44Mjg2MyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjM1MDcsIDAuMTY4NDk3LCAwLjI1MTUyMSwgMC4zNTUxNzQsIDAuNDU4NzY5LCAwLjU2MjMzMywgMC42NjU4MDMiLCBcCi0gICAgICAgICAgIjAuMDczMzcsIDAuMTc4Mjc1LCAwLjI2MTMwNSwgMC4zNjQ5MjIsIDAuNDY4NjE3LCAwLjU3MjA4OSwgMC42NzU2NDQiLCBcCi0gICAgICAgICAgIjAuMDg1NDg4LCAwLjE5MDQyMSwgMC4yNzM0NTMsIDAuMzc3MTI3LCAwLjQ4MDcxLCAwLjU4NDI5NCwgMC42ODc4NjEiLCBcCi0gICAgICAgICAgIjAuMDk2MzEyLCAwLjIwMTE4NiwgMC4yODQxODksIDAuMzg3ODIyLCAwLjQ5MTUxNiwgMC41OTQ5OTEsIDAuNjk4NjU4IiwgXAotICAgICAgICAgICIwLjEwNTY0LCAwLjIxMDQyNCwgMC4yOTM0MzksIDAuMzk3MDY5LCAwLjUwMDU2NCwgMC42MDQyNDIsIDAuNzA3NzAyIiwgXAotICAgICAgICAgICIwLjExODU0NCwgMC4yMjI5MjIsIDAuMzA1OTAyLCAwLjQwOTU0NCwgMC41MTMwOTksIDAuNjE2NzYzLCAwLjcyMDE5IiwgXAotICAgICAgICAgICIwLjEyODcwOSwgMC4yMzM3MDksIDAuMzE2NTk5LCAwLjQyMDIyLCAwLjUyMzczNiwgMC42MjczODgsIDAuNzMwOTg4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2MjE3NSwgMC4yNjk2MTMsIDAuNDM2NzYyLCAwLjY0NjEwNSwgMC44NTU2NjcsIDEuMDY0NiwgMS4yNzM5NyIsIFwKLSAgICAgICAgICAiMC4wNjIyLCAwLjI2OTYxOSwgMC40MzY2ODQsIDAuNjQ2MDUxLCAwLjg1NTU4MywgMS4wNjQ2MSwgMS4yNzM5MiIsIFwKLSAgICAgICAgICAiMC4wNjIyNjIsIDAuMjY5NDU2LCAwLjQzNjk3OCwgMC42NDYzMDcsIDAuODU1NDk5LCAxLjA2NDg2LCAxLjI3NDQiLCBcCi0gICAgICAgICAgIjAuMDYyODE1LCAwLjI2OTQ5NywgMC40MzY3NywgMC42NDU5OTksIDAuODU1NTM5LCAxLjA2NDYzLCAxLjI3NDIxIiwgXAotICAgICAgICAgICIwLjA2Mzc3OSwgMC4yNjk1OTgsIDAuNDM2NzgxLCAwLjY0NjAwMSwgMC44NTUzNjcsIDEuMDY0NjYsIDEuMjczODgiLCBcCi0gICAgICAgICAgIjAuMDY0ODcxLCAwLjI2OTk4LCAwLjQzNjg5MSwgMC42NDYzMiwgMC44NTUzLCAxLjA2NDg1LCAxLjI3MzkxIiwgXAotICAgICAgICAgICIwLjA2NTg2LCAwLjI3MDI2NSwgMC40MzY5MTksIDAuNjQ2MDgzLCAwLjg1NTMwOCwgMS4wNjQ2NywgMS4yNzQzNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTM0MDIsIDAuNTEwODYxLCAwLjgyOTI2NiwgMS4yMjY2NiwgMS42MjU0MiwgMi4wMjE5OSwgMi40MTkwNSIsIFwKLSAgICAgICAgICAiMC4xMjE1NzcsIDAuNTE5OTExLCAwLjgzNzY5NiwgMS4yMzUyNiwgMS42MzQwNiwgMi4wMzA2NSwgMi40Mjc2NiIsIFwKLSAgICAgICAgICAiMC4xMzEyOTQsIDAuNTI5NTUzLCAwLjg0Nzk3NSwgMS4yNDU3OSwgMS42NDIxMSwgMi4wNDAyMywgMi40MzgwNSIsIFwKLSAgICAgICAgICAiMC4xNDA3OTEsIDAuNTM5MTE3LCAwLjg1NzA2OSwgMS4yNTQ1NiwgMS42NTI2NiwgMi4wNDk3MywgMi40NDc4NCIsIFwKLSAgICAgICAgICAiMC4xNTAzNTYsIDAuNTQ4NzM2LCAwLjg2NjgxNywgMS4yNjQyNiwgMS42NjMyNywgMi4wNTk0OSwgMi40NTgwMyIsIFwKLSAgICAgICAgICAiMC4xNjU2MDYsIDAuNTY0MTk2LCAwLjg4MjY0OCwgMS4yODA0NCwgMS42Nzg4MSwgMi4wNzU0OSwgMi40NzI4OCIsIFwKLSAgICAgICAgICAiMC4xNzkwOSwgMC41NzYwNTksIDAuODk2MDAxLCAxLjI5MzY0LCAxLjY5MDk4LCAyLjA5MDUyLCAyLjQ4NjY0Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIxMDY2NCwgMS4wMDUwOSwgMS42NDM4NywgMi40NCwgMy4yMzczNSwgNC4wMzI3NCwgNC44Mjg1OCIsIFwKLSAgICAgICAgICAiMC4yMTA2MTksIDEuMDA0ODYsIDEuNjQwNCwgMi40NDAwNSwgMy4yMjk5OSwgNC4wMzI3OSwgNC44Mjg1MyIsIFwKLSAgICAgICAgICAiMC4yMTAzMDIsIDEuMDA0OTMsIDEuNjQ0MDMsIDIuNDQwNTQsIDMuMjMwODcsIDQuMDMyNCwgNC44Mjg4OCIsIFwKLSAgICAgICAgICAiMC4yMTE3MTQsIDEuMDA2NzcsIDEuNjQxNjgsIDIuNDM2MzIsIDMuMjM2NDMsIDQuMDI0NiwgNC44MTg1MiIsIFwKLSAgICAgICAgICAiMC4yMTM4MzIsIDEuMDA0ODQsIDEuNjQzNTgsIDIuNDM3MDUsIDMuMjM3MjEsIDQuMDI1MDEsIDQuODE4NDUiLCBcCi0gICAgICAgICAgIjAuMjE5ODM4LCAxLjAwNjY4LCAxLjY0Mzk3LCAyLjQ0MDI1LCAzLjIzNzE5LCA0LjAzMjU5LCA0LjgxOTY5IiwgXAotICAgICAgICAgICIwLjIyNjczOSwgMS4wMDUwNywgMS42NDA3NiwgMi40Mzk3MSwgMy4yMzAyNywgNC4wMzM3NiwgNC44Mjg3Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzMjY0LCAwLjEzNjU0MSwgMC4yMTk0MDgsIDAuMzIyOTM2LCAwLjQyNjQ4NywgMC41MzAwMSwgMC42MzM2OCIsIFwKLSAgICAgICAgICAiMC4wNDI5NSwgMC4xNDY3NzEsIDAuMjI5NjM5LCAwLjMzMzE1MSwgMC40MzY2MTEsIDAuNTQwMTc1LCAwLjY0MzYxNiIsIFwKLSAgICAgICAgICAiMC4wNTU4MTgsIDAuMTU5NDM3LCAwLjI0MjMyNSwgMC4zNDUxODMsIDAuNDQ5NDQ3LCAwLjU1MTkyOSwgMC42NTU0ODQiLCBcCi0gICAgICAgICAgIjAuMDY4NjU4LCAwLjE3MjI5NiwgMC4yNTUyOTEsIDAuMzU4Nzg1LCAwLjQ2MjY2NywgMC41NjU2NiwgMC42NjgyMjIiLCBcCi0gICAgICAgICAgIjAuMDc5NDgxLCAwLjE4NDc2NCwgMC4yNjc4MzEsIDAuMzcxNjA3LCAwLjQ3NDc5NywgMC41NzgyNzIsIDAuNjgxNTU1IiwgXAotICAgICAgICAgICIwLjA5NDYzNywgMC4yMDUyNjIsIDAuMjg5Mjk2LCAwLjM5MTk4NiwgMC40OTUyOSwgMC41OTg2NjIsIDAuNzAyMDYiLCBcCi0gICAgICAgICAgIjAuMTA3MDU3LCAwLjIyNDA5NCwgMC4zMDU4MiwgMC40MDkzMDEsIDAuNTEzMTk3LCAwLjYxNjU3MywgMC43MTk4MjgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU1NDk3LCAwLjI2NDk1NiwgMC40MzI1MTQsIDAuNjQxNTg0LCAwLjg1MTA5MywgMS4wNjA3OCwgMS4yNjk5NSIsIFwKLSAgICAgICAgICAiMC4wNTY0MTQsIDAuMjY0ODQyLCAwLjQzMjM2NSwgMC42NDE3MTQsIDAuODUwOTMyLCAxLjA2MDI1LCAxLjI2OTU1IiwgXAotICAgICAgICAgICIwLjA2MTgwNywgMC4yNjQ5NTcsIDAuNDMyNDcsIDAuNjQxNzUxLCAwLjg1MDg0OCwgMS4wNjAyNywgMS4yNjk1MiIsIFwKLSAgICAgICAgICAiMC4wNjkyNTQsIDAuMjY1ODE4LCAwLjQzMjI4NSwgMC42NDE3NzEsIDAuODUwODYyLCAxLjA2MDE5LCAxLjI2OTgiLCBcCi0gICAgICAgICAgIjAuMDc4NzM3LCAwLjI2OTAwMywgMC40MzI2MDMsIDAuNjQxNzE1LCAwLjg1MTEyMSwgMS4wNjA0MiwgMS4yNjk0NiIsIFwKLSAgICAgICAgICAiMC4wOTM5NDcsIDAuMjc2Mjk0LCAwLjQzNTYyNiwgMC42NDE5NTgsIDAuODUxMTYyLCAxLjA2MDUsIDEuMjY5NTMiLCBcCi0gICAgICAgICAgIjAuMTA1Mjg3LCAwLjI4Mzk1NCwgMC40NDExNTEsIDAuNjQ0MDc0LCAwLjg1MTAxNCwgMS4wNjA2NywgMS4yNjk0NiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJEIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTc2NTUsIDAuNDk1NDA0LCAwLjgxMzI2OSwgMS4yMTE5MSwgMS42MDgwNSwgMi4wMDc1OCwgMi40MDM2NyIsIFwKLSAgICAgICAgICAiMC4xMDU0OCwgMC41MDM3NjgsIDAuODIxNTk1LCAxLjIxOTM2LCAxLjYxNjM0LCAyLjAxMzU0LCAyLjQxMTEiLCBcCi0gICAgICAgICAgIjAuMTE1NDU2LCAwLjUxMzc3NCwgMC44MzE5MTIsIDEuMjI5NzYsIDEuNjI2NjMsIDIuMDI2MTksIDIuNDIyMjgiLCBcCi0gICAgICAgICAgIjAuMTI1OTIzLCAwLjUyNDIzNCwgMC44NDI0MDIsIDEuMjQxMDcsIDEuNjM3MjgsIDIuMDM2MTIsIDIuNDMyMTYiLCBcCi0gICAgICAgICAgIjAuMTM2MjQyLCAwLjUzNDMyNiwgMC44NTI0ODIsIDEuMjUwNDQsIDEuNjQ3MywgMi4wNDYxMiwgMi40NDMxMiIsIFwKLSAgICAgICAgICAiMC4xNTMwOSwgMC41NTA5MjMsIDAuODY4NzE4LCAxLjI2NjM3LCAxLjY2Mzg3LCAyLjA2Mjc2LCAyLjQ1ODUyIiwgXAotICAgICAgICAgICIwLjE2ODM0LCAwLjU2NTA4LCAwLjg4MzE3OCwgMS4yODA3NiwgMS42NzgyNCwgMi4wNzU0NiwgMi40NzI5NiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMDk5NDEsIDEuMDA2NzMsIDEuNjM5MywgMi40NDA3OSwgMy4yMzU3NywgNC4wMjQ4NSwgNC44Mjg3OCIsIFwKLSAgICAgICAgICAiMC4yMDg5MjksIDEuMDA2NzgsIDEuNjQzNTYsIDIuNDM5OTIsIDMuMjMxMzgsIDQuMDI1NzksIDQuODIxMTQiLCBcCi0gICAgICAgICAgIjAuMjA4OTE4LCAxLjAwNjcsIDEuNjQzNjMsIDIuNDM1NDksIDMuMjMwNiwgNC4wMjQ4NiwgNC44Mjg2OSIsIFwKLSAgICAgICAgICAiMC4yMTE4MjUsIDEuMDA2NiwgMS42NDEwOSwgMi40NDA4LCAzLjIzMjMsIDQuMDMzMTksIDQuODI3ODkiLCBcCi0gICAgICAgICAgIjAuMjE2NzM4LCAxLjAwNjcsIDEuNjQzNjEsIDIuNDM1MTMsIDMuMjMzNTQsIDQuMDMzMTIsIDQuODI4ODYiLCBcCi0gICAgICAgICAgIjAuMjI2NTgzLCAxLjAwNDU0LCAxLjY0MTM1LCAyLjQzOTc4LCAzLjIzNTgyLCA0LjAzMzM1LCA0LjgyNzkiLCBcCi0gICAgICAgICAgIjAuMjM2Njk2LCAxLjAwNjE4LCAxLjY0MzUyLCAyLjQzOTY5LCAzLjIzNTc5LCA0LjAzMTY1LCA0LjgyMjUyIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyOTQ5NiwgMC4xMzMwMTUsIDAuMjE1Nzk0LCAwLjMxOTQyNCwgMC40MjI4NiwgMC41MjY1MzQsIDAuNjI5ODE5IiwgXAotICAgICAgICAgICIwLjAzOTg2OCwgMC4xNDMzOTgsIDAuMjI2MTYyLCAwLjMyOTY2LCAwLjQzMzIxMywgMC41MzY3MDMsIDAuNjQwMTQ0IiwgXAotICAgICAgICAgICIwLjA1Mjc5NCwgMC4xNTYwNzgsIDAuMjM4OTgxLCAwLjM0MTgxNCwgMC40NDUxMzgsIDAuNTQ4NjA4LCAwLjY1MjEyNyIsIFwKLSAgICAgICAgICAiMC4wNjUxOSwgMC4xNjk0MzQsIDAuMjUxODAxLCAwLjM1NTE4OCwgMC40NTg3NDQsIDAuNTYxMTIxLCAwLjY2NDQ1MyIsIFwKLSAgICAgICAgICAiMC4wNzU2MzcsIDAuMTgxNjA1LCAwLjI2NDM5MywgMC4zNjc5MjYsIDAuNDcxNTY2LCAwLjU3NDA3OCwgMC42NzcyNjEiLCBcCi0gICAgICAgICAgIjAuMDg5NzU1LCAwLjIwMjc0NiwgMC4yODU4NjIsIDAuMzg4NzEsIDAuNDkxOTM4LCAwLjU5NTI3MywgMC42OTg4NzkiLCBcCi0gICAgICAgICAgIjAuMTAwNjE5LCAwLjIyMDg4NywgMC4zMDI2NjMsIDAuNDA1OTk3LCAwLjUwOTEwNiwgMC42MTMzMSwgMC43MTY2MzgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDUxNzU0LCAwLjI2MTg5LCAwLjQyOTk4OCwgMC42Mzg0MzQsIDAuODQ4MjMzLCAxLjA1NzQsIDEuMjY2NDUiLCBcCi0gICAgICAgICAgIjAuMDUyOTM2LCAwLjI2MTIwMSwgMC40Mjk5NDUsIDAuNjM4ODE0LCAwLjg0ODM3LCAxLjA1NzczLCAxLjI2NjUyIiwgXAotICAgICAgICAgICIwLjA1ODg5NCwgMC4yNjE4NDcsIDAuNDI5MDMxLCAwLjYzOTEzNCwgMC44NDk2ODcsIDEuMDU3MjcsIDEuMjY3NjYiLCBcCi0gICAgICAgICAgIjAuMDY2NzMxLCAwLjI2Mjg4LCAwLjQyOTkxLCAwLjYzOTc0NSwgMC44NDgxNjcsIDEuMDU3NzcsIDEuMjcwMTEiLCBcCi0gICAgICAgICAgIjAuMDc2MjUsIDAuMjY2MDkyLCAwLjQzMDM2MywgMC42Mzk3MjQsIDAuODQ4NjY1LCAxLjA1NzM1LCAxLjI2NzI0IiwgXAotICAgICAgICAgICIwLjA5MTcxMiwgMC4yNzI3ODIsIDAuNDMyMzQsIDAuNjM5MDU4LCAwLjg0OTc4MiwgMS4wNTk4NCwgMS4yNjcwMiIsIFwKLSAgICAgICAgICAiMC4xMDQ4MzIsIDAuMjgwNjk3LCAwLjQzOTA5MiwgMC42NDE5NjYsIDAuODQ3NzYyLCAxLjA1NzMxLCAxLjI2Njg0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQU4iOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNzM3LCAwLjAwNzM5MywgMC4wMDczOTQsIDAuMDA3Mzk3LCAwLjAwNzM5NywgMC4wMDczOTcsIDAuMDA3Mzk4IiwgXAotICAgICAgICAgICIwLjAwNzMzNCwgMC4wMDczNjQsIDAuMDA3MzY4LCAwLjAwNzM3LCAwLjAwNzM3MSwgMC4wMDczNzEsIDAuMDA3MzcxIiwgXAotICAgICAgICAgICIwLjAwNzMxNywgMC4wMDczNTYsIDAuMDA3MzY0LCAwLjAwNzM2NCwgMC4wMDczNjYsIDAuMDA3MzY2LCAwLjAwNzM2NyIsIFwKLSAgICAgICAgICAiMC4wMDczMTksIDAuMDA3MzYzLCAwLjAwNzM2OCwgMC4wMDczNzQsIDAuMDA3Mzc1LCAwLjAwNzM3NSwgMC4wMDczNzYiLCBcCi0gICAgICAgICAgIjAuMDA3MzI1LCAwLjAwNzM3MiwgMC4wMDczNzgsIDAuMDA3Mzg1LCAwLjAwNzM4NSwgMC4wMDczODksIDAuMDA3Mzg4IiwgXAotICAgICAgICAgICIwLjAwNzMzLCAwLjAwNzM4LCAwLjAwNzM4OSwgMC4wMDczOTUsIDAuMDA3Mzk3LCAwLjAwNzM5OSwgMC4wMDc0IiwgXAotICAgICAgICAgICIwLjAwNzM2LCAwLjAwNzQxMywgMC4wMDc0MjQsIDAuMDA3NDMsIDAuMDA3NDM0LCAwLjAwNzQzMiwgMC4wMDc0MzYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQ5NzUsIDAuMDA0OTc1LCAwLjAwNDk3NSwgMC4wMDQ5NzYsIDAuMDA0OTc0LCAwLjAwNDk3NCwgMC4wMDQ5NzQiLCBcCi0gICAgICAgICAgIjAuMDA0OTQ3LCAwLjAwNDk1LCAwLjAwNDk1LCAwLjAwNDk1MSwgMC4wMDQ5NTEsIDAuMDA0OTUsIDAuMDA0OTUiLCBcCi0gICAgICAgICAgIjAuMDA0OTM4LCAwLjAwNDk0MywgMC4wMDQ5NDQsIDAuMDA0OTQ0LCAwLjAwNDk0MywgMC4wMDQ5NDMsIDAuMDA0OTQzIiwgXAotICAgICAgICAgICIwLjAwNDkzNSwgMC4wMDQ5MzgsIDAuMDA0OTM5LCAwLjAwNDkzOSwgMC4wMDQ5MzksIDAuMDA0OTM5LCAwLjAwNDkzOSIsIFwKLSAgICAgICAgICAiMC4wMDQ5MzgsIDAuMDA0OTQ3LCAwLjAwNDk0OCwgMC4wMDQ5NDksIDAuMDA0OTQ5LCAwLjAwNDk0OSwgMC4wMDQ5NDkiLCBcCi0gICAgICAgICAgIjAuMDA0OTQzLCAwLjAwNDk1MywgMC4wMDQ5NTQsIDAuMDA0OTU0LCAwLjAwNDk1NCwgMC4wMDQ5NTQsIDAuMDA0OTU0IiwgXAotICAgICAgICAgICIwLjAwNDk1NSwgMC4wMDQ5NjYsIDAuMDA0OTY3LCAwLjAwNDk2OCwgMC4wMDQ5NjgsIDAuMDA0OTY4LCAwLjAwNDk2OCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkJOIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDYxNDgsIDAuMDA2MTc1LCAwLjAwNjE3NywgMC4wMDYxNzgsIDAuMDA2MTc5LCAwLjAwNjE3OSwgMC4wMDYxODEiLCBcCi0gICAgICAgICAgIjAuMDA2MTE2LCAwLjAwNjE0OCwgMC4wMDYxNTIsIDAuMDA2MTUzLCAwLjAwNjE1NSwgMC4wMDYxNTQsIDAuMDA2MTU2IiwgXAotICAgICAgICAgICIwLjAwNjA5NiwgMC4wMDYxMzYsIDAuMDA2MTQyLCAwLjAwNjE0NSwgMC4wMDYxNDgsIDAuMDA2MTQ5LCAwLjAwNjE0OSIsIFwKLSAgICAgICAgICAiMC4wMDYwOTksIDAuMDA2MTQ1LCAwLjAwNjE1MiwgMC4wMDYxNTYsIDAuMDA2MTU5LCAwLjAwNjE1OSwgMC4wMDYxNiIsIFwKLSAgICAgICAgICAiMC4wMDYxMDEsIDAuMDA2MTQ5LCAwLjAwNjE1NywgMC4wMDYxNjMsIDAuMDA2MTY0LCAwLjAwNjE2NiwgMC4wMDYxNjkiLCBcCi0gICAgICAgICAgIjAuMDA2MTE3LCAwLjAwNjE2OCwgMC4wMDYxNzcsIDAuMDA2MTg0LCAwLjAwNjE4NywgMC4wMDYxOSwgMC4wMDYxOSIsIFwKLSAgICAgICAgICAiMC4wMDYxMzQsIDAuMDA2MTg2LCAwLjAwNjE5NywgMC4wMDYyMDQsIDAuMDA2MjA4LCAwLjAwNjIxMSwgMC4wMDYyMSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDc1NSwgMC4wMDQ3NjEsIDAuMDA0NzYyLCAwLjAwNDc2MSwgMC4wMDQ3NjEsIDAuMDA0NzYxLCAwLjAwNDc2MSIsIFwKLSAgICAgICAgICAiMC4wMDQ3MjYsIDAuMDA0NzM2LCAwLjAwNDczOCwgMC4wMDQ3MzgsIDAuMDA0NzM5LCAwLjAwNDczOCwgMC4wMDQ3MzkiLCBcCi0gICAgICAgICAgIjAuMDA0NzE0LCAwLjAwNDczLCAwLjAwNDczMywgMC4wMDQ3MzMsIDAuMDA0NzMzLCAwLjAwNDczMywgMC4wMDQ3MzMiLCBcCi0gICAgICAgICAgIjAuMDA0NzEsIDAuMDA0NzMsIDAuMDA0NzMyLCAwLjAwNDczNCwgMC4wMDQ3MzUsIDAuMDA0NzM0LCAwLjAwNDczNCIsIFwKLSAgICAgICAgICAiMC4wMDQ3MTgsIDAuMDA0NzQsIDAuMDA0NzQ0LCAwLjAwNDc0NSwgMC4wMDQ3NDYsIDAuMDA0NzQ2LCAwLjAwNDc0NiIsIFwKLSAgICAgICAgICAiMC4wMDQ3MjEsIDAuMDA0NzUyLCAwLjAwNDc1NywgMC4wMDQ3NiwgMC4wMDQ3NjEsIDAuMDA0NzYxLCAwLjAwNDc2MSIsIFwKLSAgICAgICAgICAiMC4wMDQ3NDEsIDAuMDA0NzY2LCAwLjAwNDc3LCAwLjAwNDc3MywgMC4wMDQ3NzMsIDAuMDA0NzczLCAwLjAwNDc3NCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNTEwMSwgMC4wMDUxMTEsIDAuMDA1MTEzLCAwLjAwNTExNSwgMC4wMDUxMTIsIDAuMDA1MTEzLCAwLjAwNTExMyIsIFwKLSAgICAgICAgICAiMC4wMDUwNjEsIDAuMDA1MSwgMC4wMDUxMDUsIDAuMDA1MTA4LCAwLjAwNTEwOSwgMC4wMDUxMSwgMC4wMDUxMSIsIFwKLSAgICAgICAgICAiMC4wMDUwMzIsIDAuMDA1MDg4LCAwLjAwNTA5OSwgMC4wMDUxMDIsIDAuMDA1MTA0LCAwLjAwNTEwNywgMC4wMDUxMDgiLCBcCi0gICAgICAgICAgIjAuMDA1MDE2LCAwLjAwNTA3OCwgMC4wMDUwOTEsIDAuMDA1MDk4LCAwLjAwNTEwMSwgMC4wMDUxMDIsIDAuMDA1MTA3IiwgXAotICAgICAgICAgICIwLjAwNTAwMywgMC4wMDUwNywgMC4wMDUwODQsIDAuMDA1MDkzLCAwLjAwNTA5NywgMC4wMDUxLCAwLjAwNTEiLCBcCi0gICAgICAgICAgIjAuMDA0OTk3LCAwLjAwNTA1OCwgMC4wMDUwNzUsIDAuMDA1MDg2LCAwLjAwNTA5MywgMC4wMDUwOTUsIDAuMDA1MDk5IiwgXAotICAgICAgICAgICIwLjAwNDk5NCwgMC4wMDUwNDEsIDAuMDA1MDY2LCAwLjAwNTA3OSwgMC4wMDUwODksIDAuMDA1MDkyLCAwLjAwNTA5NSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDc0MywgMC4wMDA3NDcsIDAuMDAwNzQ3LCAwLjAwMDc0NywgMC4wMDA3NDcsIDAuMDAwNzQ3LCAwLjAwMDc0NyIsIFwKLSAgICAgICAgICAiMC4wMDA3MzIsIDAuMDAwNzY1LCAwLjAwMDc2OSwgMC4wMDA3NzEsIDAuMDAwNzcxLCAwLjAwMDc3MywgMC4wMDA3NzMiLCBcCi0gICAgICAgICAgIjAuMDAwNzExLCAwLjAwMDc2NCwgMC4wMDA3NzEsIDAuMDAwNzc2LCAwLjAwMDc3NiwgMC4wMDA3OCwgMC4wMDA3ODEiLCBcCi0gICAgICAgICAgIjAuMDAwNjg5LCAwLjAwMDc1NSwgMC4wMDA3NjgsIDAuMDAwNzc0LCAwLjAwMDc3NiwgMC4wMDA3NzgsIDAuMDAwNzgxIiwgXAotICAgICAgICAgICIwLjAwMDcxNiwgMC4wMDA3NjMsIDAuMDAwNzY2LCAwLjAwMDc3MiwgMC4wMDA3NzgsIDAuMDAwNzgsIDAuMDAwNzgiLCBcCi0gICAgICAgICAgIjAuMDAwNzM3LCAwLjAwMDc2NCwgMC4wMDA3NjgsIDAuMDAwNzc3LCAwLjAwMDc3OSwgMC4wMDA3OCwgMC4wMDA3ODIiLCBcCi0gICAgICAgICAgIjAuMDAwNzEsIDAuMDAwNzc4LCAwLjAwMDc3OCwgMC4wMDA3ODEsIDAuMDAwNzgzLCAwLjAwMDc4NCwgMC4wMDA3ODQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJEIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDM4NzgsIDAuMDAzODk0LCAwLjAwMzg5NSwgMC4wMDM4OTgsIDAuMDAzODk2LCAwLjAwMzg5NiwgMC4wMDM4OTciLCBcCi0gICAgICAgICAgIjAuMDAzODE2LCAwLjAwMzg3NiwgMC4wMDM4ODQsIDAuMDAzODg4LCAwLjAwMzg5LCAwLjAwMzg5MSwgMC4wMDM4OTIiLCBcCi0gICAgICAgICAgIjAuMDAzNzg4LCAwLjAwMzg2MSwgMC4wMDM4NzMsIDAuMDAzODgsIDAuMDAzODg2LCAwLjAwMzg4NiwgMC4wMDM4ODgiLCBcCi0gICAgICAgICAgIjAuMDAzNzc1LCAwLjAwMzg0NywgMC4wMDM4NjUsIDAuMDAzODczLCAwLjAwMzg3OCwgMC4wMDM4ODEsIDAuMDAzODg2IiwgXAotICAgICAgICAgICIwLjAwMzc4NSwgMC4wMDM4NCwgMC4wMDM4NTgsIDAuMDAzODY5LCAwLjAwMzg3NCwgMC4wMDM4NzgsIDAuMDAzODgxIiwgXAotICAgICAgICAgICIwLjAwMzgxLCAwLjAwMzgzNCwgMC4wMDM4NTEsIDAuMDAzODYzLCAwLjAwMzg3LCAwLjAwMzg3NCwgMC4wMDM4NzciLCBcCi0gICAgICAgICAgIjAuMDAzODQzLCAwLjAwMzgzNSwgMC4wMDM4NDksIDAuMDAzODYsIDAuMDAzODY3LCAwLjAwMzg3MiwgMC4wMDM4NzMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDAwNjUsIDAuMDAwMDg2LCAwLjAwMDA4OCwgMC4wMDAwODksIDAuMDAwMDg5LCAwLjAwMDA5LCAwLjAwMDA5IiwgXAotICAgICAgICAgICIwLjAwMDA2NiwgMC4wMDAxMzUsIDAuMDAwMTQzLCAwLjAwMDE0NywgMC4wMDAxNDksIDAuMDAwMTUsIDAuMDAwMTUxIiwgXAotICAgICAgICAgICIwLjAwMDA0MywgMC4wMDAxMzcsIDAuMDAwMTUsIDAuMDAwMTYyLCAwLjAwMDE2NiwgMC4wMDAxNjksIDAuMDAwMTcxIiwgXAotICAgICAgICAgICIwLjAwMDAzMSwgMC4wMDAxMzIsIDAuMDAwMTQ5LCAwLjAwMDE1OCwgMC4wMDAxNjMsIDAuMDAwMTcyLCAwLjAwMDE3NCIsIFwKLSAgICAgICAgICAiMC4wMDAwMjUsIDAuMDAwMTI5LCAwLjAwMDE0NywgMC4wMDAxNTcsIDAuMDAwMTYzLCAwLjAwMDE3MSwgMC4wMDAxNzMiLCBcCi0gICAgICAgICAgIjAuMDAwMDQ2LCAwLjAwMDEzMiwgMC4wMDAxNDcsIDAuMDAwMTU5LCAwLjAwMDE2NCwgMC4wMDAxNjgsIDAuMDAwMTciLCBcCi0gICAgICAgICAgIjAuMDAwMDc0LCAwLjAwMDEzNywgMC4wMDAxNSwgMC4wMDAxNiwgMC4wMDAxNjUsIDAuMDAwMTY5LCAwLjAwMDE3MSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBOT1I0QkJYNCAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoTk9SNEJCWDQpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC42MTY5NDE7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEFOKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA5MDMzOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDkwMjYzNzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA5MDMzOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTc0MiwgMC4wMDE2OTQsIDAuMDAxNjkxLCAwLjAwMTY4NiwgMC4wMDE3MDIsIDAuMDAxNzI3LCAwLjAwMTc1OSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzYxNywgMC4wMDM1ODMsIDAuMDAzNTY1LCAwLjAwMzU2NSwgMC4wMDM1NywgMC4wMDM2LCAwLjAwMzYyMyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQk4pICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDkyNTg4MTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA5MjU0MjY7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwOTI1ODgxOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTA3OSwgMC4wMDEwMzMsIDAuMDAxMDI4LCAwLjAwMTAyMiwgMC4wMDEwMzYsIDAuMDAxMDYyLCAwLjAwMTA5MiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNDEwNCwgMC4wMDQwNjgsIDAuMDA0MDYxLCAwLjAwNDA2NywgMC4wMDQwNzksIDAuMDA0MTExLCAwLjAwNDE0NyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQykgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAzMDA2OTU7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAyOTg0MTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDMwMDY5NTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA1NzYsIDAuMDAwNTc2LCAwLjAwMDU3NiwgMC4wMDA1NzYsIDAuMDAwNTc2LCAwLjAwMDU3NiwgMC4wMDA1NzYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDEyNDcsIDAuMDAxMjQ3LCAwLjAwMTI0NywgMC4wMDEyNDcsIDAuMDAxMjQ3LCAwLjAwMTI0NywgMC4wMDEyNDUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEQpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMzE1NzM7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAzMTU2NjM7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAzMTU3MzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAzNTUsIDAuMDAwMzU1LCAwLjAwMDM1NSwgMC4wMDAzNTUsIDAuMDAwMzU1LCAwLjAwMDM1NSwgMC4wMDAzNTUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDEwMzMsIDAuMDAxMDM0LCAwLjAwMTAzMywgMC4wMDEwMzQsIDAuMDAxMDMyLCAwLjAwMTAzMywgMC4wMDEwMzMiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4yNjU1ODc7Ci0gICAgZnVuY3Rpb24gOiAiKCEoKCgoIUJOKSsoIUFOKSkrQykrRCkpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTMwMjYsIDAuMzk0MTA1LCAwLjY3NDUyOCwgMC44NzQ2NjksIDEuMTk0OTMsIDEuNDc1MjUsIDEuODc1NTYiLCBcCi0gICAgICAgICAgIjAuMTIzMTA4LCAwLjQwNDI3NCwgMC42ODQ0NjksIDAuODg1MjQsIDEuMjA1NjIsIDEuNDg3NjIsIDEuODg3MjgiLCBcCi0gICAgICAgICAgIjAuMTM1NTgyLCAwLjQxNjgyOCwgMC42OTcyNzIsIDAuODk4MTMzLCAxLjIxODk4LCAxLjQ5OTk0LCAxLjg5OTMiLCBcCi0gICAgICAgICAgIjAuMTQ2NTA0LCAwLjQyNzc5NSwgMC43MDgxNDksIDAuOTA4ODg4LCAxLjIyOTc4LCAxLjUxMDUsIDEuOTEwOTYiLCBcCi0gICAgICAgICAgIjAuMTU1OTI0LCAwLjQzNzI2MiwgMC43MTg0ODEsIDAuOTE4MTU2LCAxLjIzOTA5LCAxLjUxOTY0LCAxLjkyMDU4IiwgXAotICAgICAgICAgICIwLjE2OTM1NSwgMC40NTA3MTMsIDAuNzMxMzE3LCAwLjkzMjIxNSwgMS4yNTMwNywgMS41MzI2MiwgMS45MzUwNyIsIFwKLSAgICAgICAgICAiMC4xNzk0MDksIDAuNDYwOTEzLCAwLjc0MTUzLCAwLjk0MjUwNSwgMS4yNjI4NywgMS41NDI5MywgMS45NDQyOCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEzMjA4NiwgMC42OTQzNDMsIDEuMjU2NjQsIDEuNjU3NTYsIDIuMjk3NTIsIDIuODU5MDYsIDMuNjU5NTciLCBcCi0gICAgICAgICAgIjAuMTMyMDg1LCAwLjY5NDM2LCAxLjI1NDMyLCAxLjY1NTc5LCAyLjI5NzU5LCAyLjg1ODk5LCAzLjY2NzQ4IiwgXAotICAgICAgICAgICIwLjEzMjExMiwgMC42OTQzNTgsIDEuMjU2NDMsIDEuNjU1MjUsIDIuMzAxNzYsIDIuODY0NjgsIDMuNjY2ODkiLCBcCi0gICAgICAgICAgIjAuMTMyMTE2LCAwLjY5NDM1OCwgMS4yNTUzOCwgMS42NTg1NSwgMi4zMDE2NiwgMi44NTgwNCwgMy42Njc1NCIsIFwKLSAgICAgICAgICAiMC4xMzIzNjksIDAuNjk0NCwgMS4yNTQ2OSwgMS42NTcwOCwgMi4zMDE1NCwgMi44NTg2MiwgMy42Njc2OSIsIFwKLSAgICAgICAgICAiMC4xMzI0MjgsIDAuNjk0Mzk1LCAxLjI1Njc0LCAxLjY1ODkxLCAyLjMwMTg5LCAyLjg2MzQ0LCAzLjY2ODU4IiwgXAotICAgICAgICAgICIwLjEzMjI5LCAwLjY5NDUyMiwgMS4yNTY4NywgMS42NTkxLCAyLjI5Njc3LCAyLjg1ODI1LCAzLjY2MDI1Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDUxNzkyLCAwLjEyODczNSwgMC4yMDI4ODgsIDAuMjU1NTg1LCAwLjMzOTc3NSwgMC40MTMzMywgMC41MTgzMzQiLCBcCi0gICAgICAgICAgIjAuMDYxNzMyLCAwLjEzODY2MSwgMC4yMTI4MDEsIDAuMjY1NTA0LCAwLjM0OTY4MywgMC40MjMzMTUsIDAuNTI4MzgiLCBcCi0gICAgICAgICAgIjAuMDc0MDE1LCAwLjE1MDkxMSwgMC4yMjUwNiwgMC4yNzc3NjQsIDAuMzYxOTYxLCAwLjQzNTU4OCwgMC41NDA1OTgiLCBcCi0gICAgICAgICAgIjAuMDg0ODA1LCAwLjE2MTYxMywgMC4yMzU3NDcsIDAuMjg4NDU3LCAwLjM3MjY2NywgMC40NDYxODcsIDAuNTUxMjY2IiwgXAotICAgICAgICAgICIwLjA5NDA4MiwgMC4xNzA2MTYsIDAuMjQ0NzI2LCAwLjI5NzQzNCwgMC4zODE2MzMsIDAuNDU1MTk2LCAwLjU2MDI5NyIsIFwKLSAgICAgICAgICAiMC4xMDczMjQsIDAuMTg0MTEzLCAwLjI1ODE4MywgMC4zMTA4NjgsIDAuMzk1MDI2LCAwLjQ2ODQ3NCwgMC41NzM1NjQiLCBcCi0gICAgICAgICAgIjAuMTE2OTI2LCAwLjE5MzUxOCwgMC4yNjc1MDcsIDAuMzIwMTg5LCAwLjQwNDMzMSwgMC40Nzc5MjEsIDAuNTgzMDE0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQ1Mjc0LCAwLjE5MjM2MSwgMC4zNDA3NjMsIDAuNDQ2NjgsIDAuNjE2NDgyLCAwLjc2NTEwMiwgMC45Nzc0MzMiLCBcCi0gICAgICAgICAgIjAuMDQ1MjYsIDAuMTkyMzU4LCAwLjM0MDU4MiwgMC40NDY4NjIsIDAuNjE2Mzk2LCAwLjc2NTI2NSwgMC45NzczODIiLCBcCi0gICAgICAgICAgIjAuMDQ1NDA4LCAwLjE5MjM3NSwgMC4zNDA1ODQsIDAuNDQ2ODczLCAwLjYxNjQzNCwgMC43NjUxMDcsIDAuOTc3MzQ2IiwgXAotICAgICAgICAgICIwLjA0NjA5NywgMC4xOTI0MjMsIDAuMzQwNjEyLCAwLjQ0NjkwOCwgMC42MTY4MDUsIDAuNzY1MDk1LCAwLjk3NzMzNCIsIFwKLSAgICAgICAgICAiMC4wNDY4OTcsIDAuMTkyNjg1LCAwLjM0MDY5LCAwLjQ0NjcwNCwgMC42MTY1MTksIDAuNzY1MDMyLCAwLjk3NzY1NiIsIFwKLSAgICAgICAgICAiMC4wNDgzMTIsIDAuMTkzMDA1LCAwLjM0MDcxNSwgMC40NDY4MDEsIDAuNjE2NTE5LCAwLjc2NTI0LCAwLjk3NzU1IiwgXAotICAgICAgICAgICIwLjA0OTQwMiwgMC4xOTMzMSwgMC4zNDA5NTcsIDAuNDQ2ODk0LCAwLjYxNjYxNywgMC43NjUyMDcsIDAuOTc3NiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDczMiwgMC4zODgyNDMsIDAuNjY4OTE4LCAwLjg2ODk5NiwgMS4xOTA0MywgMS40NzAwOSwgMS44NyIsIFwKLSAgICAgICAgICAiMC4xMTc0MTUsIDAuMzk4NTk1LCAwLjY3OTQ3OCwgMC44ODAyNTksIDEuMjAwMDcsIDEuNDgxNDIsIDEuODgxNDYiLCBcCi0gICAgICAgICAgIjAuMTI5ODYzLCAwLjQxMDkzNiwgMC42OTIwNzksIDAuODkyMjE1LCAxLjIxMjkzLCAxLjQ5NDM2LCAxLjg5NDE3IiwgXAotICAgICAgICAgICIwLjE0MTAwNywgMC40MjIyMzgsIDAuNzAyNTMyLCAwLjkwMzI0MSwgMS4yMjM4MywgMS41MDU4MSwgMS45MDU0MyIsIFwKLSAgICAgICAgICAiMC4xNTA1ODcsIDAuNDMxODY0LCAwLjcxMzExNSwgMC45MTI4MzQsIDEuMjMzMjcsIDEuNTE0NDMsIDEuOTE1MTMiLCBcCi0gICAgICAgICAgIjAuMTYzOTA3LCAwLjQ0NTM5NCwgMC43MjU5MTQsIDAuOTI2ODQxLCAxLjI0Nzg1LCAxLjUyNzM3LCAxLjkyODgzIiwgXAotICAgICAgICAgICIwLjE3NDE4NywgMC40NTU1NzcsIDAuNzM2NDUzLCAwLjkzNjYyLCAxLjI1NzA5LCAxLjUzOTA3LCAxLjkzODM1Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTMyMDkxLCAwLjY5MzI5LCAxLjI1NjcyLCAxLjY1NzI2LCAyLjMwMTc2LCAyLjg2MzM0LCAzLjY2MDY3IiwgXAotICAgICAgICAgICIwLjEzMjA5OSwgMC42OTMxMDgsIDEuMjU3MDYsIDEuNjU5MTUsIDIuMjk3NDYsIDIuODY0NDYsIDMuNjY3MzgiLCBcCi0gICAgICAgICAgIjAuMTMyMjgsIDAuNjkzMzMzLCAxLjI1NzA5LCAxLjY1NTU5LCAyLjI5NjQ3LCAyLjg2NDgsIDMuNjY3NDYiLCBcCi0gICAgICAgICAgIjAuMTMyMjk0LCAwLjY5NDI5NiwgMS4yNTQzNiwgMS42NTYwNCwgMi4zMDEyLCAyLjg1ODQ4LCAzLjY2NzUzIiwgXAotICAgICAgICAgICIwLjEzMjM5NywgMC42OTMwOTEsIDEuMjU0NTcsIDEuNjU2OCwgMi4yOTgzNSwgMi44NTg3NiwgMy42Njc1OCIsIFwKLSAgICAgICAgICAiMC4xMzI0OTUsIDAuNjk0NTExLCAxLjI1NDQyLCAxLjY1ODk3LCAyLjMwMjA4LCAyLjg1ODg5LCAzLjY2Nzg2IiwgXAotICAgICAgICAgICIwLjEzMjQ1OCwgMC42OTQ0MTgsIDEuMjU2OTksIDEuNjU4NDgsIDIuMjk3MTYsIDIuODU4NiwgMy42NjciKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTIzNTMsIDAuMTI3ODkxLCAwLjIwMTYyNCwgMC4yNTQyMTUsIDAuMzM4MzE5LCAwLjQxMTgwMSwgMC41MTY3NTUiLCBcCi0gICAgICAgICAgIjAuMDYyMjg5LCAwLjEzNzgwNiwgMC4yMTE2MDYsIDAuMjY0MjA1LCAwLjM0ODI2NywgMC40MjE4OTYsIDAuNTI2ODg1IiwgXAotICAgICAgICAgICIwLjA3NDYyOSwgMC4xNTAxNjEsIDAuMjIzOTY0LCAwLjI3NjU3NiwgMC4zNjA2MjYsIDAuNDM0MDk2LCAwLjUzOTIxMiIsIFwKLSAgICAgICAgICAiMC4wODU1ODEsIDAuMTYxMDE4LCAwLjIzNDgxMywgMC4yODczOTUsIDAuMzcxNDU3LCAwLjQ0NDk1NywgMC41NDk5OSIsIFwKLSAgICAgICAgICAiMC4wOTUwMjMsIDAuMTcwNDI0LCAwLjI0NDIwMiwgMC4yOTY3ODgsIDAuMzgwODg1LCAwLjQ1NDQ3OCwgMC41NTkzMyIsIFwKLSAgICAgICAgICAiMC4xMDc5MzQsIDAuMTgzMDI3LCAwLjI1Njc2NCwgMC4zMDkzMjcsIDAuMzkzNDAzLCAwLjQ2NywgMC41NzE4OTEiLCBcCi0gICAgICAgICAgIjAuMTE4MzAyLCAwLjE5MzgxNiwgMC4yNjc0NTgsIDAuMzIwMDI1LCAwLjQwNDA4NywgMC40Nzc1NDUsIDAuNTgyNjI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQyNTA4LCAwLjE4ODc5NCwgMC4zMzcxNTEsIDAuNDQzMTMxLCAwLjYxMjk1NiwgMC43NjE2NTYsIDAuOTc0MDIyIiwgXAotICAgICAgICAgICIwLjA0MjQ0MiwgMC4xODg3ODgsIDAuMzM2OTkyLCAwLjQ0MzIzOSwgMC42MTI5ODEsIDAuNzYxODIzLCAwLjk3Mzk2NyIsIFwKLSAgICAgICAgICAiMC4wNDI2MzcsIDAuMTg4ODEzLCAwLjMzNjk5LCAwLjQ0MzEyNywgMC42MTI5MjQsIDAuNzYxNjI5LCAwLjk3Mzk1NSIsIFwKLSAgICAgICAgICAiMC4wNDMzNTEsIDAuMTg4OTMyLCAwLjMzNjk1NSwgMC40NDMzMiwgMC42MTI5MjcsIDAuNzYxODkyLCAwLjk3MzkwNyIsIFwKLSAgICAgICAgICAiMC4wNDQyNDMsIDAuMTg5MTU0LCAwLjMzNzA2MSwgMC40NDMxMTgsIDAuNjEyOTM0LCAwLjc2MTc1MSwgMC45NzQxNjUiLCBcCi0gICAgICAgICAgIjAuMDQ1NzQ1LCAwLjE4OTYxOSwgMC4zMzczNywgMC40NDM0MzcsIDAuNjEzMjM2LCAwLjc2MTc1LCAwLjk3Mzg5MSIsIFwKLSAgICAgICAgICAiMC4wNDY5NTcsIDAuMTg5OTA5LCAwLjMzNzQzMywgMC40NDMzNjYsIDAuNjEzMDI4LCAwLjc2MTcxMiwgMC45NzM5MzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzM5MzMsIDAuMzU0NTMsIDAuNjM1MDIzLCAwLjgzNTc5LCAxLjE1NzE5LCAxLjQzNjk4LCAxLjgzNzU4IiwgXAotICAgICAgICAgICIwLjA4MjAwNiwgMC4zNjMxNDQsIDAuNjQzNzAxLCAwLjg0NDMwMywgMS4xNjU3NiwgMS40NDU0NiwgMS44NDc3NCIsIFwKLSAgICAgICAgICAiMC4wOTE1NzksIDAuMzcyOTc5LCAwLjY1MzYwNSwgMC44NTM5NTgsIDEuMTc1MTEsIDEuNDU1NCwgMS44NTc2NSIsIFwKLSAgICAgICAgICAiMC4xMDEwNzIsIDAuMzgyNTUzLCAwLjY2MzI4OSwgMC44NjM3MSwgMS4xODUyLCAxLjQ2NDY3LCAxLjg2NjciLCBcCi0gICAgICAgICAgIjAuMTEwNjQzLCAwLjM5MjE3OCwgMC42NzI5OTQsIDAuODczMzYsIDEuMTkzODcsIDEuNDc0NzIsIDEuODc0OTEiLCBcCi0gICAgICAgICAgIjAuMTI1MDIyLCAwLjQwNzY4MSwgMC42ODgzODUsIDAuODg5MjQyLCAxLjIwOTYsIDEuNDkxMjEsIDEuODkwNjkiLCBcCi0gICAgICAgICAgIjAuMTM2MzY5LCAwLjQyMTA2NiwgMC43MDIxODksIDAuOTAyNDk3LCAxLjIyMzI0LCAxLjUwNDIzLCAxLjkwNTMxIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTMyMDIyLCAwLjY5MjczNiwgMS4yNTU5MSwgMS42NTg2NCwgMi4zMDIxNCwgMi44NjQwNSwgMy42NjA1NCIsIFwKLSAgICAgICAgICAiMC4xMzE5MzMsIDAuNjkzMDU2LCAxLjI1NDg3LCAxLjY1ODY2LCAyLjI5NzE4LCAyLjg2NDAxLCAzLjY2MDE3IiwgXAotICAgICAgICAgICIwLjEzMjMyOCwgMC42OTQzNTksIDEuMjU2NzMsIDEuNjU1NjEsIDIuMzAxNjYsIDIuODY0LCAzLjY2MTMyIiwgXAotICAgICAgICAgICIwLjEzNDczOSwgMC42OTQzMzIsIDEuMjU2NzYsIDEuNjU4NDgsIDIuMjk2OTEsIDIuODYzNSwgMy42NjgyNSIsIFwKLSAgICAgICAgICAiMC4xMzg1MSwgMC42OTQzNTQsIDEuMjU2ODMsIDEuNjU4NDcsIDIuMzAxMTIsIDIuODYzOTIsIDMuNjYyMjgiLCBcCi0gICAgICAgICAgIjAuMTQ2NDg2LCAwLjY5NDY5LCAxLjI1NjY0LCAxLjY1ODc3LCAyLjMwMTM0LCAyLjg2NDc0LCAzLjY2NzAzIiwgXAotICAgICAgICAgICIwLjE1NTM5MSwgMC42OTU5MTQsIDEuMjU2ODcsIDEuNjU1NjgsIDIuMzAxMzQsIDIuODY0MTYsIDMuNjU5OTgiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjI0MjksIDAuMDk2MzY2LCAwLjE2OTk3LCAwLjIyMjQ3NSwgMC4zMDY0NzEsIDAuMzc5OTQ5LCAwLjQ4NTI3IiwgXAotICAgICAgICAgICIwLjAzMjc0NywgMC4xMDY4MzMsIDAuMTgwNDM0LCAwLjIzMjkxMiwgMC4zMTY5MDksIDAuMzkwNDY0LCAwLjQ5NTUyOSIsIFwKLSAgICAgICAgICAiMC4wNDU0MTUsIDAuMTE5NDEsIDAuMTkzMDM4LCAwLjI0NTUxLCAwLjMyOTUxMywgMC40MDMsIDAuNTA4MDQ5IiwgXAotICAgICAgICAgICIwLjA1NjExLCAwLjEzMjYxNCwgMC4yMDU3OTYsIDAuMjU4NzMxLCAwLjM0MTY0LCAwLjQxNTE3NCwgMC41MjAxMDkiLCBcCi0gICAgICAgICAgIjAuMDY0OTgzLCAwLjE0NTUyLCAwLjIxODQ2NiwgMC4yNzA5OCwgMC4zNTQ5NSwgMC40Mjg2MTMsIDAuNTMyNDE0IiwgXAotICAgICAgICAgICIwLjA3NzY4NywgMC4xNjYyMTEsIDAuMjM4ODE3LCAwLjI5MTI3NSwgMC4zNzUyOTYsIDAuNDQ4ODA3LCAwLjU1Mzk4NyIsIFwKLSAgICAgICAgICAiMC4wODY4ODgsIDAuMTg0Njc0LCAwLjI1ODAzMiwgMC4zMTA0NzEsIDAuMzkzMzUyLCAwLjQ2Njg4LCAwLjU3MTkzMyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzNTAzLCAwLjE4Mzc2MiwgMC4zMzI0MzIsIDAuNDM4NTM2LCAwLjYwODQzMiwgMC43NTcwODYsIDAuOTY5OTM2IiwgXAotICAgICAgICAgICIwLjAzNjkxLCAwLjE4MzY2NywgMC4zMzI0MzUsIDAuNDM4NTMxLCAwLjYwODQzMSwgMC43NTcyNTgsIDAuOTY5NzkzIiwgXAotICAgICAgICAgICIwLjA0Mzg0NSwgMC4xODQxMzIsIDAuMzMyNDAxLCAwLjQzODU4MiwgMC42MDg0NzgsIDAuNzU3MTczLCAwLjk2OTc4NiIsIFwKLSAgICAgICAgICAiMC4wNTI3MjgsIDAuMTg2OTYyLCAwLjMzMjUzOCwgMC40Mzg1MjYsIDAuNjA4NjkzLCAwLjc1NzE2MywgMC45Njk3NjgiLCBcCi0gICAgICAgICAgIjAuMDYyMTU5LCAwLjE5MTUxNiwgMC4zMzQyMDcsIDAuNDM4ODc2LCAwLjYwODQ3NywgMC43NTcyODUsIDAuOTY5NTE1IiwgXAotICAgICAgICAgICIwLjA3NDk3MiwgMC4yMDEyMzcsIDAuMzQwMDM1LCAwLjQ0MjI1OCwgMC42MDkwNTUsIDAuNzU3MjQzLCAwLjk2OTUiLCBcCi0gICAgICAgICAgIjAuMDg2NDg2LCAwLjIxMDUwNSwgMC4zNDYwNjIsIDAuNDQ2ODEsIDAuNjExNTEyLCAwLjc1Nzc1MiwgMC45Njk2NTIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTg1MzgsIDAuMzM5NTE3LCAwLjYyMDI5NSwgMC44MjA0MzksIDEuMTQwODQsIDEuNDIyMzQsIDEuODIxOCIsIFwKLSAgICAgICAgICAiMC4wNjYxNTcsIDAuMzQ3NzM5LCAwLjYyODQzMSwgMC44Mjg2NzksIDEuMTQ5MjUsIDEuNDMwODQsIDEuODMwMjgiLCBcCi0gICAgICAgICAgIjAuMDc2NTY4LCAwLjM1ODA1NCwgMC42Mzg3MzQsIDAuODM4NzYsIDEuMTU5ODUsIDEuNDQwMjEsIDEuODQxNDYiLCBcCi0gICAgICAgICAgIjAuMDg3MDIyLCAwLjM2ODIyLCAwLjY0OTA5NCwgMC44NDk2NjYsIDEuMTcwNDcsIDEuNDUwNDgsIDEuODUxMjQiLCBcCi0gICAgICAgICAgIjAuMDk3OTgyLCAwLjM3ODM2NywgMC42NTk2NTYsIDAuODU5NjgzLCAxLjE4MDQyLCAxLjQ2MDgzLCAxLjg2MjcyIiwgXAotICAgICAgICAgICIwLjExMzkxMSwgMC4zOTQ1MTEsIDAuNjc1MjMsIDAuODc1NzM1LCAxLjE5NjYzLCAxLjQ3NjkxLCAxLjg3OTM3IiwgXAotICAgICAgICAgICIwLjEyNTc5NywgMC40MDk0MywgMC42OTAxNDIsIDAuODkwNjIyLCAxLjIxMTMxLCAxLjQ5MTgxLCAxLjg5MjY0Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTMwMzIsIDAuNjk0MzYyLCAxLjI1NDMzLCAxLjY1NTgxLCAyLjI5OSwgMi44NjQ1NywgMy42NjI5NyIsIFwKLSAgICAgICAgICAiMC4xMjkwNzcsIDAuNjkzMDgzLCAxLjI1NDMsIDEuNjU4NDIsIDIuMzAxMjYsIDIuODY0NjcsIDMuNjY2OTgiLCBcCi0gICAgICAgICAgIjAuMTMxODAzLCAwLjY5NDMxNSwgMS4yNTQ0NCwgMS42NTQ1NiwgMi4yOTc0OSwgMi44NjM2MSwgMy42NjA3MSIsIFwKLSAgICAgICAgICAiMC4xMzczNDgsIDAuNjkzMzY0LCAxLjI1NjgsIDEuNjU4NjMsIDIuMzAxNTIsIDIuODYxMiwgMy42NjIyNiIsIFwKLSAgICAgICAgICAiMC4xNDQyNDIsIDAuNjkyOTA1LCAxLjI1NDIyLCAxLjY1ODQ2LCAyLjI5NzExLCAyLjg2MzcsIDMuNjY4MjEiLCBcCi0gICAgICAgICAgIjAuMTU3NjEzLCAwLjY5MjczNSwgMS4yNTQ1MiwgMS42NTU1OSwgMi4zMDE0NywgMi44NjM1NywgMy42NjAyNSIsIFwKLSAgICAgICAgICAiMC4xNjgyNzQsIDAuNjk0ODI2LCAxLjI1NjU4LCAxLjY1ODM2LCAyLjMwMTIzLCAyLjg2MzYxLCAzLjY2NzI0Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE5NTQ4LCAwLjA5MzEyNSwgMC4xNjY2MzIsIDAuMjE5MTY4LCAwLjMwMzIxOCwgMC4zNzY3NDksIDAuNDgxNzMxIiwgXAotICAgICAgICAgICIwLjAyOTg4NSwgMC4xMDM1ODEsIDAuMTc3MTA5LCAwLjIyOTY1NywgMC4zMTM3MTQsIDAuMzg3MjMzLCAwLjQ5MjE5MyIsIFwKLSAgICAgICAgICAiMC4wNDIwNTIsIDAuMTE2MjAyLCAwLjE4OTc1MSwgMC4yNDIyNTQsIDAuMzI2MzY4LCAwLjM5OTgyMywgMC41MDQ4NDkiLCBcCi0gICAgICAgICAgIjAuMDUxNjMzLCAwLjEyOTQyMiwgMC4yMDI5MzcsIDAuMjU1MDc2LCAwLjMzOTAxNywgMC40MTI1NjMsIDAuNTE3NTI2IiwgXAotICAgICAgICAgICIwLjA1OTY5NCwgMC4xNDIzMTQsIDAuMjE1MjI1LCAwLjI2Nzc0OCwgMC4zNTE3MzcsIDAuNDI1MzU0LCAwLjUyOTM0NyIsIFwKLSAgICAgICAgICAiMC4wNzA5NjgsIDAuMTYzMDQ4LCAwLjIzNTU5MiwgMC4yODgwNDYsIDAuMzcyMDM0LCAwLjQ0NTU0LCAwLjU1MDc3MSIsIFwKLSAgICAgICAgICAiMC4wNzkxOSwgMC4xODE2NjcsIDAuMjU0Nzg5LCAwLjMwNzIyNiwgMC4zOTAxMzQsIDAuNDYzNzAzLCAwLjU2ODcyOSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzMTMwMiwgMC4xODA1OTYsIDAuMzI5ODY4LCAwLjQzNTc0MiwgMC42MDYxOTcsIDAuNzU0Nzc3LCAwLjk2NjY1MiIsIFwKLSAgICAgICAgICAiMC4wMzM4MTEsIDAuMTgwNTczLCAwLjMyOTY4NywgMC40MzU3OTgsIDAuNjA1ODA0LCAwLjc1NDc3OCwgMC45NjY4OSIsIFwKLSAgICAgICAgICAiMC4wNDE0NzMsIDAuMTgwNjg1LCAwLjMyOTg3MSwgMC40MzY0MjIsIDAuNjA1NjU4LCAwLjc1NDA2MSwgMC45NjY3MTUiLCBcCi0gICAgICAgICAgIjAuMDUxMDE0LCAwLjE4MzYyNSwgMC4zMjk4LCAwLjQzNTUyNCwgMC42MDcwMTgsIDAuNzU0MjU1LCAwLjk2NzYxNiIsIFwKLSAgICAgICAgICAiMC4wNjAyMzEsIDAuMTg4NjA4LCAwLjMzMTg0NiwgMC40MzU2MzUsIDAuNjA3MDEzLCAwLjc1NjAyNywgMC45Njc0NTIiLCBcCi0gICAgICAgICAgIjAuMDczNTE0LCAwLjE5ODM2NCwgMC4zMzc1NTcsIDAuNDQwMDQ4LCAwLjYwNjQzMywgMC43NTU4OTUsIDAuOTY2ODYxIiwgXAotICAgICAgICAgICIwLjA4NDk1NiwgMC4yMDgxMDQsIDAuMzQzNTQ4LCAwLjQ0NDY3OSwgMC42MTAwNzYsIDAuNzU1MzUzLCAwLjk2ODM3MiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkFOIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxNDE5NSwgMC4wMTQyNzEsIDAuMDE0MjgsIDAuMDE0MjgyLCAwLjAxNDI4NSwgMC4wMTQyODUsIDAuMDE0Mjg2IiwgXAotICAgICAgICAgICIwLjAxNDEyNiwgMC4wMTQyMTUsIDAuMDE0MjI5LCAwLjAxNDIzMywgMC4wMTQyMzgsIDAuMDE0MjM2LCAwLjAxNDIzOCIsIFwKLSAgICAgICAgICAiMC4wMTQwODEsIDAuMDE0MTg3LCAwLjAxNDIwNiwgMC4wMTQyMTEsIDAuMDE0MjE1LCAwLjAxNDIxOCwgMC4wMTQyMiIsIFwKLSAgICAgICAgICAiMC4wMTQwODEsIDAuMDE0MTk1LCAwLjAxNDIxNywgMC4wMTQyMjQsIDAuMDE0MjMyLCAwLjAxNDIzNCwgMC4wMTQyMzUiLCBcCi0gICAgICAgICAgIjAuMDE0MDkyLCAwLjAxNDIwOSwgMC4wMTQyMzQsIDAuMDE0MjQzLCAwLjAxNDI1MiwgMC4wMTQyNTQsIDAuMDE0MjU4IiwgXAotICAgICAgICAgICIwLjAxNDA5MSwgMC4wMTQyMTIsIDAuMDE0MjQsIDAuMDE0MjUsIDAuMDE0MjU5LCAwLjAxNDI2NCwgMC4wMTQyNjgiLCBcCi0gICAgICAgICAgIjAuMDE0MTE1LCAwLjAxNDIzNywgMC4wMTQyNjgsIDAuMDE0Mjc5LCAwLjAxNDI4NywgMC4wMTQyOTQsIDAuMDE0MyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA5NTE4LCAwLjAwOTUxOSwgMC4wMDk1MTgsIDAuMDA5NTIsIDAuMDA5NTE3LCAwLjAwOTUwOSwgMC4wMDk1MjQiLCBcCi0gICAgICAgICAgIjAuMDA5NDY3LCAwLjAwOTQ3OCwgMC4wMDk0NzgsIDAuMDA5NDgsIDAuMDA5NDc5LCAwLjAwOTQ3OSwgMC4wMDk0NzkiLCBcCi0gICAgICAgICAgIjAuMDA5NDM4LCAwLjAwOTQ1OCwgMC4wMDk0NTksIDAuMDA5NDU4LCAwLjAwOTQ1OSwgMC4wMDk0NiwgMC4wMDk0NTgiLCBcCi0gICAgICAgICAgIjAuMDA5NDMyLCAwLjAwOTQ0LCAwLjAwOTQ0MywgMC4wMDk0NDMsIDAuMDA5NDQ2LCAwLjAwOTQ0NSwgMC4wMDk0NDUiLCBcCi0gICAgICAgICAgIjAuMDA5NDI4LCAwLjAwOTQ2MiwgMC4wMDk0NjUsIDAuMDA5NDY4LCAwLjAwOTQ2OSwgMC4wMDk0NjcsIDAuMDA5NDY4IiwgXAotICAgICAgICAgICIwLjAwOTQzMywgMC4wMDk0NTcsIDAuMDA5NDYsIDAuMDA5NDYxLCAwLjAwOTQ2MiwgMC4wMDk0NjYsIDAuMDA5NDY4IiwgXAotICAgICAgICAgICIwLjAwOTQzOSwgMC4wMDk0ODMsIDAuMDA5NDgzLCAwLjAwOTQ4NSwgMC4wMDk0ODgsIDAuMDA5NDg4LCAwLjAwOTQ4OSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkJOIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMTg4NSwgMC4wMTE5NjQsIDAuMDExOTczLCAwLjAxMTk3MSwgMC4wMTE5ODIsIDAuMDExOTc5LCAwLjAxMTk4IiwgXAotICAgICAgICAgICIwLjAxMTgxOSwgMC4wMTE5MTEsIDAuMDExOTI3LCAwLjAxMTkyMywgMC4wMTE5MzgsIDAuMDExOTI2LCAwLjAxMTkzMyIsIFwKLSAgICAgICAgICAiMC4wMTE3NzQsIDAuMDExODgsIDAuMDExODk5LCAwLjAxMTkwNCwgMC4wMTE5MTQsIDAuMDExOTEyLCAwLjAxMTkxMSIsIFwKLSAgICAgICAgICAiMC4wMTE3NzUsIDAuMDExODg5LCAwLjAxMTkxMiwgMC4wMTE5MTcsIDAuMDExOTI3LCAwLjAxMTkzLCAwLjAxMTkzMiIsIFwKLSAgICAgICAgICAiMC4wMTE3NzksIDAuMDExODk2LCAwLjAxMTkyMywgMC4wMTE5MzEsIDAuMDExOTQsIDAuMDExOTQyLCAwLjAxMTk0NyIsIFwKLSAgICAgICAgICAiMC4wMTE4MDEsIDAuMDExOTIyLCAwLjAxMTk0OSwgMC4wMTE5NiwgMC4wMTE5NywgMC4wMTE5NjUsIDAuMDExOTc3IiwgXAotICAgICAgICAgICIwLjAxMTgyNCwgMC4wMTE5NDUsIDAuMDExOTc3LCAwLjAxMTk4OCwgMC4wMTE5OTksIDAuMDEyMDAzLCAwLjAxMjAxMyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA4NjQzLCAwLjAwODY2MSwgMC4wMDg2NjQsIDAuMDA4NjY2LCAwLjAwODY2NCwgMC4wMDg2NjQsIDAuMDA4NjY4IiwgXAotICAgICAgICAgICIwLjAwODU4NywgMC4wMDg2MiwgMC4wMDg2MjMsIDAuMDA4NjI0LCAwLjAwODYyNiwgMC4wMDg2MjYsIDAuMDA4NjI2IiwgXAotICAgICAgICAgICIwLjAwODU1MSwgMC4wMDg2MDIsIDAuMDA4NjA3LCAwLjAwODYxLCAwLjAwODYxMiwgMC4wMDg2MTEsIDAuMDA4NjEzIiwgXAotICAgICAgICAgICIwLjAwODUzOCwgMC4wMDg1OTMsIDAuMDA4NjAyLCAwLjAwODYwNCwgMC4wMDg2MDgsIDAuMDA4NjA4LCAwLjAwODYwOSIsIFwKLSAgICAgICAgICAiMC4wMDg1MzMsIDAuMDA4NjA4LCAwLjAwODYyMSwgMC4wMDg2MjQsIDAuMDA4NjI1LCAwLjAwODYyNywgMC4wMDg2MjciLCBcCi0gICAgICAgICAgIjAuMDA4NTMzLCAwLjAwODYxOSwgMC4wMDg2MzUsIDAuMDA4NjM4LCAwLjAwODY0NCwgMC4wMDg2NDUsIDAuMDA4NjQ3IiwgXAotICAgICAgICAgICIwLjAwODUyOSwgMC4wMDg2MzQsIDAuMDA4NjQ1LCAwLjAwODY0NywgMC4wMDg2NTMsIDAuMDA4NjU1LCAwLjAwODY1NiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEwMDQ2LCAwLjAxMDA4LCAwLjAxMDA4NSwgMC4wMTAwODUsIDAuMDEwMDg3LCAwLjAxMDA4NSwgMC4wMTAwODYiLCBcCi0gICAgICAgICAgIjAuMDA5OTQsIDAuMDEwMDQ5LCAwLjAxMDA2NiwgMC4wMTAwNzEsIDAuMDEwMDc2LCAwLjAxMDA3OCwgMC4wMTAwNzciLCBcCi0gICAgICAgICAgIjAuMDA5ODgsIDAuMDEwMDE2LCAwLjAxMDA0NiwgMC4wMTAwNjQsIDAuMDEwMDY0LCAwLjAxMDA2OCwgMC4wMTAwNjUiLCBcCi0gICAgICAgICAgIjAuMDA5ODUyLCAwLjAwOTk5MSwgMC4wMTAwMzIsIDAuMDEwMDQ1LCAwLjAxMDA1MywgMC4wMTAwNTksIDAuMDEwMDY5IiwgXAotICAgICAgICAgICIwLjAwOTgzNywgMC4wMDk5NjgsIDAuMDEwMDA2LCAwLjAxMDAzNCwgMC4wMTAwMzcsIDAuMDEwMDUsIDAuMDEwMDUyIiwgXAotICAgICAgICAgICIwLjAwOTgyNywgMC4wMDk5NDMsIDAuMDA5OTksIDAuMDEwMDA2LCAwLjAxMDAzLCAwLjAxMDAzOSwgMC4wMTAwNDciLCBcCi0gICAgICAgICAgIjAuMDA5ODMzLCAwLjAwOTkzLCAwLjAwOTk3NiwgMC4wMDk5OSwgMC4wMTAwMTcsIDAuMDEwMDI5LCAwLjAxMDA0MyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxNDk1LCAwLjAwMTUxMSwgMC4wMDE1MTMsIDAuMDAxNTEzLCAwLjAwMTUxNCwgMC4wMDE1MTMsIDAuMDAxNTEzIiwgXAotICAgICAgICAgICIwLjAwMTQ0MSwgMC4wMDE1MzYsIDAuMDAxNTQ5LCAwLjAwMTU1MiwgMC4wMDE1NTYsIDAuMDAxNTU3LCAwLjAwMTU1OSIsIFwKLSAgICAgICAgICAiMC4wMDEzNjksIDAuMDAxNTIyLCAwLjAwMTU0NywgMC4wMDE1NTYsIDAuMDAxNTYyLCAwLjAwMTU2NiwgMC4wMDE1NjkiLCBcCi0gICAgICAgICAgIjAuMDAxMzQsIDAuMDAxNTA4LCAwLjAwMTUzNywgMC4wMDE1NSwgMC4wMDE1NiwgMC4wMDE1NjYsIDAuMDAxNTcxIiwgXAotICAgICAgICAgICIwLjAwMTM1MywgMC4wMDE1MDMsIDAuMDAxNTMzLCAwLjAwMTU0NiwgMC4wMDE1NTcsIDAuMDAxNTYzLCAwLjAwMTU3IiwgXAotICAgICAgICAgICIwLjAwMTM2MSwgMC4wMDE1MTgsIDAuMDAxNTM4LCAwLjAwMTU1LCAwLjAwMTU2LCAwLjAwMTU2NiwgMC4wMDE1NzEiLCBcCi0gICAgICAgICAgIjAuMDAxNDQ5LCAwLjAwMTUwNCwgMC4wMDE1MzQsIDAuMDAxNTQ0LCAwLjAwMTU1MSwgMC4wMDE1NTgsIDAuMDAxNTY1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDc3MjQsIDAuMDA3NzgxLCAwLjAwNzc4NiwgMC4wMDc3ODgsIDAuMDA3NzksIDAuMDA3NzksIDAuMDA3NzkxIiwgXAotICAgICAgICAgICIwLjAwNzU3MiwgMC4wMDc3MzMsIDAuMDA3NzU5LCAwLjAwNzc2NSwgMC4wMDc3NzMsIDAuMDA3Nzc2LCAwLjAwNzc4IiwgXAotICAgICAgICAgICIwLjAwNzUyNiwgMC4wMDc2OTIsIDAuMDA3NzMyLCAwLjAwNzc0NiwgMC4wMDc3NTcsIDAuMDA3NzY0LCAwLjAwNzc2OSIsIFwKLSAgICAgICAgICAiMC4wMDc1MTgsIDAuMDA3NjU4LCAwLjAwNzcwNywgMC4wMDc3MjUsIDAuMDA3NzQxLCAwLjAwNzc0OSwgMC4wMDc3NTgiLCBcCi0gICAgICAgICAgIjAuMDA3NTUxLCAwLjAwNzY0MiwgMC4wMDc2OTIsIDAuMDA3NzExLCAwLjAwNzczMywgMC4wMDc3NDEsIDAuMDA3NzQ5IiwgXAotICAgICAgICAgICIwLjAwNzY2MywgMC4wMDc2NCwgMC4wMDc2NzksIDAuMDA3Njk5LCAwLjAwNzcxOSwgMC4wMDc3MzEsIDAuMDA3NzQxIiwgXAotICAgICAgICAgICIwLjAwNzcxNywgMC4wMDc2MzYsIDAuMDA3NjcsIDAuMDA3Njg4LCAwLjAwNzcwNiwgMC4wMDc3MjEsIDAuMDA3NzMzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDAxMSwgMC4wMDAxNzgsIDAuMDAwMTg1LCAwLjAwMDE4NywgMC4wMDAxODksIDAuMDAwMTksIDAuMDAwMTkxIiwgXAotICAgICAgICAgICIwLjAwMDA2LCAwLjAwMDI1OSwgMC4wMDAyODMsIDAuMDAwMjkxLCAwLjAwMDI5NywgMC4wMDAzMDEsIDAuMDAwMzA0IiwgXAotICAgICAgICAgICIwLjAwMDAxMywgMC4wMDAyNTMsIDAuMDAwMjk2LCAwLjAwMDMxLCAwLjAwMDMyMSwgMC4wMDAzMjgsIDAuMDAwMzMzIiwgXAotICAgICAgICAgICIwLjAwMDAzNywgMC4wMDAyMzYsIDAuMDAwMjg4LCAwLjAwMDMwNiwgMC4wMDAzMjIsIDAuMDAwMzMsIDAuMDAwMzM4IiwgXAotICAgICAgICAgICIwLjAwMDAyMSwgMC4wMDAyMjIsIDAuMDAwMjgzLCAwLjAwMDMwMiwgMC4wMDAzMiwgMC4wMDAzMjksIDAuMDAwMzQ2IiwgXAotICAgICAgICAgICIwLjAwMDAxNywgMC4wMDAyMzIsIDAuMDAwMjgxLCAwLjAwMDMwMiwgMC4wMDAzMjEsIDAuMDAwMzMxLCAwLjAwMDM0IiwgXAotICAgICAgICAgICIwLjAwMDA5NSwgMC4wMDAyMTQsIDAuMDAwMjcyLCAwLjAwMDI5MiwgMC4wMDAzMTEsIDAuMDAwMzIzLCAwLjAwMDMzNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBOT1I0QkJYTCAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoTk9SNEJCWEwpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4xMTg1MjU7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEFOKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2NjQ1MDQ7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjY0MjExOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDY2NDUwNDsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyMjUsIDAuMDAwMTk3LCAwLjAwMDIwMywgMC4wMDAyMDgsIDAuMDAwMjI0LCAwLjAwMDI0NCwgMC4wMDAyNyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTQyMiwgMC4wMDE0LCAwLjAwMTQwMiwgMC4wMDE0MTIsIDAuMDAxNDIxLCAwLjAwMTQ0OCwgMC4wMDE0NzIiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEJOKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA1NzkyOTg7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNTc4ODY3OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDU3OTI5ODsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxNzMsIDAuMDAwMTQ3LCAwLjAwMDE0NCwgMC4wMDAxNTYsIDAuMDAwMTY1LCAwLjAwMDE5NCwgMC4wMDAyMTgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDE1NDcsIDAuMDAxNTI4LCAwLjAwMTUyNiwgMC4wMDE1MzUsIDAuMDAxNTUsIDAuMDAxNTc3LCAwLjAwMTYiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEMpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY5MTA4OTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2ODg1MjE7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjkxMDg5OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDA4NSwgMC4wMDAwODUsIDAuMDAwMDg1LCAwLjAwMDA4NSwgMC4wMDAwODUsIDAuMDAwMDg1LCAwLjAwMDA4NSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDE3NCwgMC4wMDAxNzQsIDAuMDAwMTczLCAwLjAwMDE3NCwgMC4wMDAxNzMsIDAuMDAwMTczLCAwLjAwMDE3MyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNzAwODc2OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDcwMDg3NjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA3MDA3NDQ7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMDYyLCAwLjAwMDA2MiwgMC4wMDAwNjIsIDAuMDAwMDYyLCAwLjAwMDA2MiwgMC4wMDAwNjIsIDAuMDAwMDYyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMTY2LCAwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY2LCAwLjAwMDE2NiwgMC4wMDAxNjYsIDAuMDAwMTY2Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMDM5Nzk5MjsKLSAgICBmdW5jdGlvbiA6ICIoISgoKCghQU4pKyghQk4pKStDKStEKSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkFOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMjIxNjcsIDAuMzc0MDc2LCAwLjg0MzEzOCwgMS42MjQ2MywgMi40MDczMywgNC4yMjc5NCwgNS4yNjgzMyIsIFwKLSAgICAgICAgICAiMC4zMzIwNTgsIDAuMzg0NDU1LCAwLjg1MzMxNywgMS42MzU5NiwgMi40MTYyMiwgNC4yMzc3LCA1LjI3ODQiLCBcCi0gICAgICAgICAgIjAuMzQyODY3LCAwLjM5NDc1OCwgMC44NjM5NjcsIDEuNjQ1NDMsIDIuNDI3NiwgNC4yNDgyNCwgNS4yODg5NiIsIFwKLSAgICAgICAgICAiMC4zNTA4NDMsIDAuNDAyOTg1LCAwLjg3MTk5LCAxLjY1NDEsIDIuNDM1MiwgNC4yNTY2NiwgNS4yOTc2IiwgXAotICAgICAgICAgICIwLjM1Nzg5MywgMC40MDk5NTgsIDAuODc4NzgzLCAxLjY2MTksIDIuNDQxNDcsIDQuMjYzNDYsIDUuMzA0MjciLCBcCi0gICAgICAgICAgIjAuMzY3MjM0LCAwLjQxOTMwMSwgMC44ODgyMTIsIDEuNjY5OTQsIDIuNDUxNTEsIDQuMjcyODgsIDUuMzEzNjgiLCBcCi0gICAgICAgICAgIjAuMzc0NDA0LCAwLjQyNjQ2NCwgMC44OTU4MTgsIDEuNjc2NzUsIDIuNDU5MDUsIDQuMjgwNDYsIDUuMzIxMzMiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuNTg1Njc2LCAwLjY4OTc5MywgMS42Mjg0MiwgMy4xOTI2LCA0Ljc1Nzg4LCA4LjM5MDE0LCAxMC40NjYzIiwgXAotICAgICAgICAgICIwLjU4NTUxOCwgMC42OTAwNTMsIDEuNjI1NjcsIDMuMTg2OTEsIDQuNzU2ODQsIDguMzg5NzgsIDEwLjQ2NjIiLCBcCi0gICAgICAgICAgIjAuNTg1NzY3LCAwLjY4OTgzLCAxLjYyODYxLCAzLjE5Mjc3LCA0Ljc0ODA4LCA4LjM4OTY2LCAxMC40NjciLCBcCi0gICAgICAgICAgIjAuNTg1NDcxLCAwLjY4OTc2MSwgMS42MjU0MywgMy4xODYyLCA0Ljc1NjgsIDguMzg5NjMsIDEwLjQ2NzEiLCBcCi0gICAgICAgICAgIjAuNTg1NjEzLCAwLjY4OTgzLCAxLjYyNjY3LCAzLjE4NjUzLCA0Ljc1NjE3LCA4LjM4OTQ5LCAxMC40NjY5IiwgXAotICAgICAgICAgICIwLjU4NDQwNCwgMC42ODk3MjcsIDEuNjI4MTYsIDMuMTg3NCwgNC43NDg0NiwgOC4zODk0NiwgMTAuNDY2OCIsIFwKLSAgICAgICAgICAiMC41ODQ0NzMsIDAuNjg4NTg0LCAxLjYyNTE5LCAzLjE4OTI5LCA0Ljc1NzExLCA4LjM4OTczLCAxMC40NjcyIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwMTIzNCwgMC4xMTUyMTIsIDAuMjQwMzA4LCAwLjQ0ODAyNSwgMC42NTU1NjYsIDEuMTM5ODgsIDEuNDE3MjciLCBcCi0gICAgICAgICAgIjAuMTEwOTU2LCAwLjEyNDkyOSwgMC4yNTAwNCwgMC40NTc3NjUsIDAuNjY1MjY2LCAxLjE0OTgxLCAxLjQyNjY4IiwgXAotICAgICAgICAgICIwLjEyMTAwMSwgMC4xMzQ5NjgsIDAuMjYwMDI3LCAwLjQ2Nzg0LCAwLjY3NTQ4NCwgMS4xNTk3LCAxLjQzNzE4IiwgXAotICAgICAgICAgICIwLjEyODk1MiwgMC4xNDI5MjcsIDAuMjY3OTk4LCAwLjQ3NTc0NywgMC42ODM0MjQsIDEuMTY4MDUsIDEuNDQ1MDMiLCBcCi0gICAgICAgICAgIjAuMTM1MTExLCAwLjE0OTYwNywgMC4yNzQ2MzksIDAuNDgxOTkyLCAwLjY4OTYyMywgMS4xNzQ3NCwgMS40NTA5OSIsIFwKLSAgICAgICAgICAiMC4xNDQzODMsIDAuMTU4NTA2LCAwLjI4MzUsIDAuNDkxMTk1LCAwLjY5ODY0NywgMS4xODMwNiwgMS40NTk3IiwgXAotICAgICAgICAgICIwLjE1MDU4OCwgMC4xNjQ1NjgsIDAuMjg5NTQyLCAwLjQ5ODAzMSwgMC43MDU2ODgsIDEuMTg5MTQsIDEuNDY2NjMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTYxMzQ4LCAwLjE4ODkzNiwgMC40MzgyNjQsIDAuODUzNjAzLCAxLjI2OTA2LCAyLjIzOTQyLCAyLjc5Mjk4IiwgXAotICAgICAgICAgICIwLjE2MTI3OSwgMC4xODkwMjksIDAuNDM4MjU0LCAwLjg1MzYwNywgMS4yNjk1NCwgMi4yMzk2MSwgMi43OTI5MSIsIFwKLSAgICAgICAgICAiMC4xNjEyOTQsIDAuMTg5MDUzLCAwLjQzODEyNywgMC44NTQwNTIsIDEuMjY5MSwgMi4yMzk0NywgMi43OTMyNSIsIFwKLSAgICAgICAgICAiMC4xNjE0OTYsIDAuMTg5MDg0LCAwLjQzODI0OSwgMC44NTM1OTcsIDEuMjY5MDksIDIuMjM5MDQsIDIuNzkzMTciLCBcCi0gICAgICAgICAgIjAuMTYxNzM5LCAwLjE4OTMxMywgMC40MzgxOTksIDAuODUzODY1LCAxLjI2OTMsIDIuMjM4OTcsIDIuNzkzNjIiLCBcCi0gICAgICAgICAgIjAuMTYxODQ4LCAwLjE4OTQ2MiwgMC40MzgzOTcsIDAuODUzNjMzLCAxLjI2OTA4LCAyLjIzODM5LCAyLjc5MzYyIiwgXAotICAgICAgICAgICIwLjE2MjEzMywgMC4xODk2OTQsIDAuNDM4NTUzLCAwLjg1Mzc1OSwgMS4yNjkwMywgMi4yMzgzOCwgMi43OTIzMyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzE5MzU2LCAwLjM3MTY5NiwgMC44NDExNTMsIDEuNjIyNjEsIDIuNDAzODUsIDQuMjI0OTksIDUuMjY1NzIiLCBcCi0gICAgICAgICAgIjAuMzI5NjQxLCAwLjM4MTcxNCwgMC44NTEyNDMsIDEuNjMzMDIsIDIuNDE0NDksIDQuMjM0OTYsIDUuMjc1OCIsIFwKLSAgICAgICAgICAiMC4zNDAwMjMsIDAuMzkyMDgzLCAwLjg2MTIyOCwgMS42NDI0NCwgMi40MjQ5NiwgNC4yNDYwOCwgNS4yODY1NiIsIFwKLSAgICAgICAgICAiMC4zNDg1MzYsIDAuNDAxMDAyLCAwLjg3MDE5OCwgMS42NTE0OCwgMi40MzM2NywgNC4yNTQ4MSwgNS4yOTUwNSIsIFwKLSAgICAgICAgICAiMC4zNTU3MjYsIDAuNDA3Nzk4LCAwLjg3NzM3LCAxLjY1OTkyLCAyLjQ0MDA3LCA0LjI2MTQ0LCA1LjMwMjI1IiwgXAotICAgICAgICAgICIwLjM2NTI5NSwgMC40MTc0ODgsIDAuODg2NjA0LCAxLjY2ODg2LCAyLjQ1MDMsIDQuMjcxMzMsIDUuMzEyMTIiLCBcCi0gICAgICAgICAgIjAuMzcyNjQ0LCAwLjQyNDc0MSwgMC44OTM5OTQsIDEuNjc1MjEsIDIuNDU3NDcsIDQuMjc5MTQsIDUuMzE5NTIiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuNTg1MDYyLCAwLjY4OTk2MywgMS42MjUyNywgMy4xOTMwNywgNC43NDgzMywgOC4zODk3NSwgMTAuNDY3MSIsIFwKLSAgICAgICAgICAiMC41ODU3NywgMC42ODk5OTksIDEuNjI1MzYsIDMuMTkzNDgsIDQuNzQ3MDQsIDguMzg5NjcsIDEwLjQ2NzEiLCBcCi0gICAgICAgICAgIjAuNTg0NDc5LCAwLjY4OTIwNCwgMS42Mjg0NCwgMy4xODY3MiwgNC43NTc0OCwgOC4zODk4NywgMTAuNDY2NCIsIFwKLSAgICAgICAgICAiMC41ODU1MzYsIDAuNjg4NjY4LCAxLjYyODgxLCAzLjE5Mjc4LCA0Ljc0Nzg0LCA4LjM5LCAxMC40NjY2IiwgXAotICAgICAgICAgICIwLjU4NDQ5MiwgMC42ODk4MjEsIDEuNjI4ODQsIDMuMTg2NjUsIDQuNzU2OTEsIDguMzg5NSwgMTAuNDY2OSIsIFwKLSAgICAgICAgICAiMC41ODU0NzMsIDAuNjg4NTQzLCAxLjYyODMzLCAzLjE5MzIyLCA0Ljc0NzcyLCA4LjM4NzQ1LCAxMC40NjY4IiwgXAotICAgICAgICAgICIwLjU4NDM1MiwgMC42ODk3MjEsIDEuNjI1NDEsIDMuMTkyMTcsIDQuNzU3MTYsIDguMzg1MzEsIDEwLjQ2NjgiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTAwMzM5LCAwLjExNDIyOSwgMC4yMzg5MzUsIDAuNDQ2NTQ5LCAwLjY1Mzk0NSwgMS4xMzgsIDEuNDE0NzQiLCBcCi0gICAgICAgICAgIjAuMTEwMDcyLCAwLjEyMzk2MywgMC4yNDg2NjYsIDAuNDU2MzA1LCAwLjY2Mzc4NiwgMS4xNDgxMiwgMS40MjUwNCIsIFwKLSAgICAgICAgICAiMC4xMjAyOTcsIDAuMTM0MiwgMC4yNTg5MDUsIDAuNDY2NTE4LCAwLjY3NDA5NiwgMS4xNTg4NSwgMS40MzUwMSIsIFwKLSAgICAgICAgICAiMC4xMjg3NDQsIDAuMTQyMzYxLCAwLjI2NzQxNiwgMC40NzQ5NjcsIDAuNjgyODY2LCAxLjE2NjU3LCAxLjQ0MzYiLCBcCi0gICAgICAgICAgIjAuMTM1MDgsIDAuMTQ5NDU0LCAwLjI3NDE4OCwgMC40ODE0NzQsIDAuNjg5NDIzLCAxLjE3MzExLCAxLjQ0OTc1IiwgXAotICAgICAgICAgICIwLjE0NDc3LCAwLjE1ODU3NCwgMC4yODMyNTIsIDAuNDkwOTk1LCAwLjY5ODU2NCwgMS4xODI0OCwgMS40NTkyOCIsIFwKLSAgICAgICAgICAiMC4xNTExODUsIDAuMTY1MDg3LCAwLjI5MDQzMiwgMC40OTczMzMsIDAuNzA1NjgyLCAxLjE4OTcxLCAxLjQ2NjA5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE1ODQxNywgMC4xODYwODEsIDAuNDM1MzI5LCAwLjg1MDgxMSwgMS4yNjYwOSwgMi4yMzU3NywgMi43OTAyMyIsIFwKLSAgICAgICAgICAiMC4xNTg0MTYsIDAuMTg2MDc4LCAwLjQzNTQ3OCwgMC44NTA3NTcsIDEuMjY2MTYsIDIuMjM2NiwgMi43OTA0MiIsIFwKLSAgICAgICAgICAiMC4xNTg1NTcsIDAuMTg2MTIyLCAwLjQzNTQ3OSwgMC44NTA3NDksIDEuMjY2OCwgMi4yMzY0NCwgMi43OTA1NCIsIFwKLSAgICAgICAgICAiMC4xNTg3MywgMC4xODYzNTksIDAuNDM1MzkyLCAwLjg1MDc0NCwgMS4yNjY1MiwgMi4yMzYyLCAyLjc5MDYxIiwgXAotICAgICAgICAgICIwLjE1ODk0NywgMC4xODY1MDYsIDAuNDM1MzM3LCAwLjg1MDk5NCwgMS4yNjY0MSwgMi4yMzY2LCAyLjc5MDMxIiwgXAotICAgICAgICAgICIwLjE1OTA3OSwgMC4xODY1OTksIDAuNDM1NDkzLCAwLjg1MDkzLCAxLjI2NjIzLCAyLjIzNTk1LCAyLjc5MDQzIiwgXAotICAgICAgICAgICIwLjE1OTQzNSwgMC4xODY4OTEsIDAuNDM1NTM3LCAwLjg1MDg4NiwgMS4yNjYyMywgMi4yMzU5OSwgMi43OTA5MyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yOTkwMzcsIDAuMzUxMzcsIDAuODIwNTQsIDEuNjAxOTUsIDIuMzgzMywgNC4yMDQ3MywgNS4yNDUzMiIsIFwKLSAgICAgICAgICAiMC4zMDcyNDYsIDAuMzU5MjQ5LCAwLjgyODgzOCwgMS42MTA2LCAyLjM5MjQ5LCA0LjIxMjczLCA1LjI1MzU3IiwgXAotICAgICAgICAgICIwLjMxNjU0MywgMC4zNjg2NzQsIDAuODM3ODE1LCAxLjYyMDksIDIuNDAxMDQsIDQuMjIyNTEsIDUuMjYzMiIsIFwKLSAgICAgICAgICAiMC4zMjU5NTksIDAuMzc4MjEyLCAwLjg0NzI1OSwgMS42MjkxOCwgMi40MTA2LCA0LjIzMjA1LCA1LjI3Mjg0IiwgXAotICAgICAgICAgICIwLjMzNTQ5OCwgMC4zODc3NzcsIDAuODU2NzYxLCAxLjYzOTMyLCAyLjQyMDU4LCA0LjI0MjA1LCA1LjI4MjM0IiwgXAotICAgICAgICAgICIwLjM1MDU1OCwgMC40MDI2MTgsIDAuODcyMzMyLCAxLjY1NDE4LCAyLjQzNTI0LCA0LjI1NzI1LCA1LjI5NzczIiwgXAotICAgICAgICAgICIwLjM2Mzc5NywgMC40MTU5ODUsIDAuODg1NjM3LCAxLjY2NywgMi40NDgzNywgNC4yNzA3NywgNS4zMTExOSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC41ODQ4NDMsIDAuNjg5OTk0LCAxLjYyODc2LCAzLjE4NjgsIDQuNzU2OTgsIDguMzg5ODMsIDEwLjQ2NyIsIFwKLSAgICAgICAgICAiMC41ODU3MDIsIDAuNjg5ODU0LCAxLjYyODkzLCAzLjE5MzM1LCA0Ljc0Njk5LCA4LjM4OTU4LCAxMC40NjY4IiwgXAotICAgICAgICAgICIwLjU4NDU2OCwgMC42ODk4MjMsIDEuNjI1NDcsIDMuMTg2NywgNC43NTY4MSwgOC4zODk2LCAxMC40NjY5IiwgXAotICAgICAgICAgICIwLjU4NDUxNywgMC42ODk4ODYsIDEuNjI4MjgsIDMuMTg3MiwgNC43NTY4LCA4LjM4OTU2LCAxMC40NjY0IiwgXAotICAgICAgICAgICIwLjU4NTYxOCwgMC42ODk5NzgsIDEuNjI4MjYsIDMuMTkzMzcsIDQuNzQ4MjIsIDguMzg1NiwgMTAuNDY2NyIsIFwKLSAgICAgICAgICAiMC41ODY4MTksIDAuNjkwMTQzLCAxLjYyODcsIDMuMTg2MzMsIDQuNzQ5MDQsIDguMzg1OCwgMTAuNDY2NCIsIFwKLSAgICAgICAgICAiMC41ODg4OCwgMC42OTA3NDQsIDEuNjI1MjgsIDMuMTkyMjYsIDQuNzUxMDMsIDguMzg1NjcsIDEwLjQ2NjgiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDgyNDc0LCAwLjA5NjMyMywgMC4yMjA4ODgsIDAuNDI4MzQ2LCAwLjYzNTk4LCAxLjExOTg4LCAxLjM5NjQ0IiwgXAotICAgICAgICAgICIwLjA5MjcwMSwgMC4xMDY1MzgsIDAuMjMxMTE0LCAwLjQzODYyMSwgMC42NDU5NjEsIDEuMTMwMTEsIDEuNDA2NzQiLCBcCi0gICAgICAgICAgIjAuMTA1NzczLCAwLjExOTYwMiwgMC4yNDQwODMsIDAuNDUxNTgxLCAwLjY1OTIyNywgMS4xNDMzMiwgMS40MjAxMiIsIFwKLSAgICAgICAgICAiMC4xMTg3MjEsIDAuMTMyNTI2LCAwLjI1NzA0MSwgMC40NjQwNDgsIDAuNjcwNTg1LCAxLjE1NDY1LCAxLjQzMzA0IiwgXAotICAgICAgICAgICIwLjEzMTIzLCAwLjE0NDU3NCwgMC4yNjkyNzIsIDAuNDc2OTUxLCAwLjY4NDA3LCAxLjE2NTQ5LCAxLjQ0MjU2IiwgXAotICAgICAgICAgICIwLjE1MjA4MiwgMC4xNjU4MzEsIDAuMjg5ODk5LCAwLjQ5Njk5MSwgMC43MDQzNjgsIDEuMTg1NTEsIDEuNDYxOTgiLCBcCi0gICAgICAgICAgIjAuMTcwMjIxLCAwLjE4NDAyMSwgMC4zMDcxNzQsIDAuNTE0ODgzLCAwLjcyMjA2NywgMS4yMDI4MywgMS40NzkzOCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNTU0MjksIDAuMTgzMTI1LCAwLjQzMjM5MiwgMC44NDc4NTEsIDEuMjYzNTYsIDIuMjMzMTksIDIuNzg3MzciLCBcCi0gICAgICAgICAgIjAuMTU1NDE4LCAwLjE4MzEzLCAwLjQzMjM5MSwgMC44NDc4MjgsIDEuMjYzNjEsIDIuMjMzMDEsIDIuNzg3NjEiLCBcCi0gICAgICAgICAgIjAuMTU2NDUsIDAuMTgzNTY2LCAwLjQzMjM5MSwgMC44NDgyOTYsIDEuMjY0MDIsIDIuMjM0NTksIDIuNzg3ODYiLCBcCi0gICAgICAgICAgIjAuMTYwMDI4LCAwLjE4NjQ1NCwgMC40MzIzOSwgMC44NDgwNTQsIDEuMjYzOTUsIDIuMjMzMzYsIDIuNzg4MDIiLCBcCi0gICAgICAgICAgIjAuMTY1NzUxLCAwLjE5MTY2OCwgMC40MzI3MTQsIDAuODQ4MjE0LCAxLjI2Mzg3LCAyLjIzMzYsIDIuNzg3MyIsIFwKLSAgICAgICAgICAiMC4xNzY0MTcsIDAuMjAxMDg4LCAwLjQzNjA0NSwgMC44NDgxODEsIDEuMjY0MDcsIDIuMjMzOTgsIDIuNzg3NyIsIFwKLSAgICAgICAgICAiMC4xODczODYsIDAuMjExMDksIDAuNDQxMzUxLCAwLjg0ODAzNSwgMS4yNjM2NiwgMi4yMzM3MSwgMi43ODcxNiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJEIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yODk2NywgMC4zNDE3NDgsIDAuODExMDM0LCAxLjU5MjM3LCAyLjM3MzE2LCA0LjE5NTM2LCA1LjIzNjAyIiwgXAotICAgICAgICAgICIwLjI5Nzc2NSwgMC4zNDk2NiwgMC44MTg1ODUsIDEuNTk5OTMsIDIuMzgyMzksIDQuMjAzMTcsIDUuMjQ0MjEiLCBcCi0gICAgICAgICAgIjAuMzA3NzczLCAwLjM1OTcyNywgMC44Mjk3MjIsIDEuNjEwNzUsIDIuMzkzMzcsIDQuMjE0MDUsIDUuMjU0NDgiLCBcCi0gICAgICAgICAgIjAuMzE3NTYsIDAuMzY5OTY3LCAwLjgzODkzLCAxLjYyMTMyLCAyLjQwMjc5LCA0LjIyNDI1LCA1LjI2NDUiLCBcCi0gICAgICAgICAgIjAuMzI3NjM2LCAwLjM3OTc5MSwgMC44NDkwOTEsIDEuNjMxMTUsIDIuNDEzNjUsIDQuMjM0MTksIDUuMjc0NzYiLCBcCi0gICAgICAgICAgIjAuMzQzOTE5LCAwLjM5NTkyOSwgMC44NjUxODIsIDEuNjQ4MDQsIDIuNDI5MTUsIDQuMjUwNDEsIDUuMjkwODkiLCBcCi0gICAgICAgICAgIjAuMzU4MTIsIDAuNDEwMzk2LCAwLjg3OTI5LCAxLjY2MTA1LCAyLjQ0MjEsIDQuMjY0MzYsIDUuMzA1MTIiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuNTg0NDE5LCAwLjY4OTc4NCwgMS42Mjg2NywgMy4xODcwMiwgNC43NTYyNiwgOC4zODk4NiwgMTAuNDY3MSIsIFwKLSAgICAgICAgICAiMC41ODQ0OTMsIDAuNjg5NzQyLCAxLjYyODEyLCAzLjE4ODc5LCA0Ljc1NzIyLCA4LjM4ODgxLCAxMC40NjcxIiwgXAotICAgICAgICAgICIwLjU4NTY5MywgMC42ODk3NDUsIDEuNjI1NTQsIDMuMTkyNzksIDQuNzQ3MTEsIDguMzg5OSwgMTAuNDY2MSIsIFwKLSAgICAgICAgICAiMC41ODQ1MTMsIDAuNjg5OTgzLCAxLjYyODI3LCAzLjE5MzIzLCA0Ljc0NzQ1LCA4LjM5MDAxLCAxMC40NjYzIiwgXAotICAgICAgICAgICIwLjU4NTE4LCAwLjY4ODQ2LCAxLjYyODM5LCAzLjE5Mjk5LCA0Ljc0Njk4LCA4LjM4OTk4LCAxMC40NjY0IiwgXAotICAgICAgICAgICIwLjU4NjkyMywgMC42ODk5MzQsIDEuNjI4MjgsIDMuMTkzNjUsIDQuNzQ3NDQsIDguMzg5ODksIDEwLjQ2NjQiLCBcCi0gICAgICAgICAgIjAuNTkwMjc3LCAwLjY5MjQwNSwgMS42MjY4MiwgMy4xOTI0MiwgNC43NTYxMSwgOC4zODk2LCAxMC40NjY5Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4MDIwMiwgMC4wOTQwMzQsIDAuMjE4NTMzLCAwLjQyNjA3MywgMC42MzM0MzQsIDEuMTE3NCwgMS4zOTQyMiIsIFwKLSAgICAgICAgICAiMC4wOTA0NTgsIDAuMTA0Mjc1LCAwLjIyODg2MywgMC40MzYzMzksIDAuNjQzNzc1LCAxLjEyNzY1LCAxLjQwNDI4IiwgXAotICAgICAgICAgICIwLjEwMzExNSwgMC4xMTcwOTIsIDAuMjQxNDI2LCAwLjQ0ODUzMSwgMC42NTUwMTYsIDEuMTM5NjMsIDEuNDE2NjciLCBcCi0gICAgICAgICAgIjAuMTE1ODM2LCAwLjEyOTY1OCwgMC4yNTQ0NCwgMC40NjE3NTEsIDAuNjY4NjIxLCAxLjE1MTE2LCAxLjQyODk0IiwgXAotICAgICAgICAgICIwLjEyOTE2OSwgMC4xNDI0MjEsIDAuMjY3MTI4LCAwLjQ3NDczNiwgMC42ODAxOTYsIDEuMTYzMTUsIDEuNDQwMzYiLCBcCi0gICAgICAgICAgIjAuMTQ5OTk3LCAwLjE2MzcxMiwgMC4yODcyNzksIDAuNDk0NzcxLCAwLjcwMzMzNywgMS4xODM1MiwgMS40NTk2OSIsIFwKLSAgICAgICAgICAiMC4xNjgxMzEsIDAuMTgxOTk5LCAwLjMwNTIwMSwgMC41MTI4NjgsIDAuNzIwMDI3LCAxLjIwMDc3LCAxLjQ3NzMzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE1MzQ2NywgMC4xODEyODMsIDAuNDMwMjQ5LCAwLjg0NjUyMiwgMS4yNjE0MywgMi4yMzI0MiwgMi43OTAwNiIsIFwKLSAgICAgICAgICAiMC4xNTMzNzQsIDAuMTgxMjQzLCAwLjQzMDM4NCwgMC44NDY1NjksIDEuMjYyOTUsIDIuMjMyNTYsIDIuNzg1OTYiLCBcCi0gICAgICAgICAgIjAuMTU0MzY4LCAwLjE4MTc1NywgMC40MzE1MDEsIDAuODQ1ODk0LCAxLjI2MjAyLCAyLjIzMjM4LCAyLjc4OTEiLCBcCi0gICAgICAgICAgIjAuMTU4NjExLCAwLjE4NDksIDAuNDMwNDYzLCAwLjg0NTgxNiwgMS4yNjMxMiwgMi4yMzc0NiwgMi43ODg3MyIsIFwKLSAgICAgICAgICAiMC4xNjM3NjUsIDAuMTg5MzQsIDAuNDMwNDk4LCAwLjg0NjYyMywgMS4yNjE4LCAyLjIzMjA5LCAyLjc4NzIyIiwgXAotICAgICAgICAgICIwLjE3NDI2NiwgMC4xOTg5NTMsIDAuNDM0MDMyLCAwLjg0ODYyLCAxLjI2Mjk0LCAyLjIzNTU3LCAyLjc4NjIyIiwgXAotICAgICAgICAgICIwLjE4NTE2MywgMC4yMDkwNDEsIDAuNDM5MTQsIDAuODQ4NjkxLCAxLjI2NDksIDIuMjM3NjcsIDIuNzg1ODMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyMjA0LCAwLjAwMjIwNCwgMC4wMDIyMDQsIDAuMDAyMjA0LCAwLjAwMjIwNCwgMC4wMDIyMDQsIDAuMDAyMjAyIiwgXAotICAgICAgICAgICIwLjAwMjE3OCwgMC4wMDIxNzksIDAuMDAyMTc5LCAwLjAwMjE4LCAwLjAwMjE3OSwgMC4wMDIxNzksIDAuMDAyMTc3IiwgXAotICAgICAgICAgICIwLjAwMjE4NCwgMC4wMDIxODQsIDAuMDAyMTg2LCAwLjAwMjE4NiwgMC4wMDIxODYsIDAuMDAyMTg3LCAwLjAwMjE4NiIsIFwKLSAgICAgICAgICAiMC4wMDIxODYsIDAuMDAyMTg2LCAwLjAwMjE4OCwgMC4wMDIxODksIDAuMDAyMTg5LCAwLjAwMjE4OSwgMC4wMDIxODYiLCBcCi0gICAgICAgICAgIjAuMDAyMiwgMC4wMDIyLCAwLjAwMjIwMywgMC4wMDIyMDMsIDAuMDAyMjA0LCAwLjAwMjIwNCwgMC4wMDIyMDIiLCBcCi0gICAgICAgICAgIjAuMDAyMjI2LCAwLjAwMjIyNywgMC4wMDIyMzEsIDAuMDAyMjMxLCAwLjAwMjIzMSwgMC4wMDIyMzIsIDAuMDAyMjMiLCBcCi0gICAgICAgICAgIjAuMDAyMjUsIDAuMDAyMjQ5LCAwLjAwMjI1NCwgMC4wMDIyNTUsIDAuMDAyMjU1LCAwLjAwMjI1NSwgMC4wMDIyNTQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDIyNTEsIDAuMDAyMjUxLCAwLjAwMjI1MSwgMC4wMDIyNTEsIDAuMDAyMjUsIDAuMDAyMjUsIDAuMDAyMjUiLCBcCi0gICAgICAgICAgIjAuMDAyMjI5LCAwLjAwMjIyOSwgMC4wMDIyMjksIDAuMDAyMjI5LCAwLjAwMjIyOSwgMC4wMDIyMjgsIDAuMDAyMjI4IiwgXAotICAgICAgICAgICIwLjAwMjIyOCwgMC4wMDIyMjgsIDAuMDAyMjI4LCAwLjAwMjIyOCwgMC4wMDIyMjgsIDAuMDAyMjI4LCAwLjAwMjIyNyIsIFwKLSAgICAgICAgICAiMC4wMDIyMzQsIDAuMDAyMjM0LCAwLjAwMjIzNCwgMC4wMDIyMzQsIDAuMDAyMjMzLCAwLjAwMjIzMywgMC4wMDIyMzMiLCBcCi0gICAgICAgICAgIjAuMDAyMjQxLCAwLjAwMjI0NiwgMC4wMDIyNDYsIDAuMDAyMjQxLCAwLjAwMjI0MSwgMC4wMDIyNDYsIDAuMDAyMjQ1IiwgXAotICAgICAgICAgICIwLjAwMjI2OSwgMC4wMDIyNjYsIDAuMDAyMjY3LCAwLjAwMjI3LCAwLjAwMjI3MSwgMC4wMDIyNjYsIDAuMDAyMjciLCBcCi0gICAgICAgICAgIjAuMDAyMjkyLCAwLjAwMjI5MywgMC4wMDIyOTMsIDAuMDAyMjkxLCAwLjAwMjI5MSwgMC4wMDIyOTMsIDAuMDAyMjkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyMDIsIDAuMDAyMDIsIDAuMDAyMDIyLCAwLjAwMjAyMiwgMC4wMDIwMjIsIDAuMDAyMDIyLCAwLjAwMjAyMSIsIFwKLSAgICAgICAgICAiMC4wMDE5OTMsIDAuMDAxOTkzLCAwLjAwMTk5NSwgMC4wMDE5OTUsIDAuMDAxOTk2LCAwLjAwMTk5NSwgMC4wMDE5OTQiLCBcCi0gICAgICAgICAgIjAuMDAxOTk2LCAwLjAwMTk5NiwgMC4wMDE5OTksIDAuMDAyLCAwLjAwMjAwMSwgMC4wMDIwMDEsIDAuMDAyIiwgXAotICAgICAgICAgICIwLjAwMTk5NiwgMC4wMDE5OTcsIDAuMDAyLCAwLjAwMjAwMiwgMC4wMDIwMDIsIDAuMDAyMDAzLCAwLjAwMjAwMSIsIFwKLSAgICAgICAgICAiMC4wMDIwMDksIDAuMDAyMDEsIDAuMDAyMDE1LCAwLjAwMjAxNiwgMC4wMDIwMTYsIDAuMDAyMDE4LCAwLjAwMjAxNSIsIFwKLSAgICAgICAgICAiMC4wMDIwMzUsIDAuMDAyMDM3LCAwLjAwMjA0MiwgMC4wMDIwNDMsIDAuMDAyMDQ1LCAwLjAwMjA0MywgMC4wMDIwNDEiLCBcCi0gICAgICAgICAgIjAuMDAyMDYxLCAwLjAwMjA2MiwgMC4wMDIwNjgsIDAuMDAyMDcsIDAuMDAyMDcxLCAwLjAwMjA2OSwgMC4wMDIwNjgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDIxNzUsIDAuMDAyMTc1LCAwLjAwMjE3NSwgMC4wMDIxNzUsIDAuMDAyMTc0LCAwLjAwMjE3NCwgMC4wMDIxNzQiLCBcCi0gICAgICAgICAgIjAuMDAyMTUzLCAwLjAwMjE1MywgMC4wMDIxNTQsIDAuMDAyMTU0LCAwLjAwMjE1NCwgMC4wMDIxNTQsIDAuMDAyMTUzIiwgXAotICAgICAgICAgICIwLjAwMjE1NiwgMC4wMDIxNTcsIDAuMDAyMTU4LCAwLjAwMjE1OCwgMC4wMDIxNTgsIDAuMDAyMTU4LCAwLjAwMjE1NyIsIFwKLSAgICAgICAgICAiMC4wMDIxNTYsIDAuMDAyMTU2LCAwLjAwMjE1OCwgMC4wMDIxNTgsIDAuMDAyMTU4LCAwLjAwMjE1NywgMC4wMDIxNTgiLCBcCi0gICAgICAgICAgIjAuMDAyMTY2LCAwLjAwMjE2OSwgMC4wMDIxNywgMC4wMDIxNjgsIDAuMDAyMTcxLCAwLjAwMjE2OCwgMC4wMDIxNjgiLCBcCi0gICAgICAgICAgIjAuMDAyMTksIDAuMDAyMTk0LCAwLjAwMjE5NSwgMC4wMDIxOTYsIDAuMDAyMTkzLCAwLjAwMjE5MywgMC4wMDIxOTMiLCBcCi0gICAgICAgICAgIjAuMDAyMjE2LCAwLjAwMjIxNywgMC4wMDIyMTYsIDAuMDAyMjIsIDAuMDAyMjE2LCAwLjAwMjIxNiwgMC4wMDIyMiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTg0NCwgMC4wMDE4NDQsIDAuMDAxODQ1LCAwLjAwMTg0NCwgMC4wMDE4NDUsIDAuMDAxODQ0LCAwLjAwMTg0NCIsIFwKLSAgICAgICAgICAiMC4wMDE4MzksIDAuMDAxODM5LCAwLjAwMTg0MiwgMC4wMDE4NDQsIDAuMDAxODQ0LCAwLjAwMTg0NCwgMC4wMDE4NDIiLCBcCi0gICAgICAgICAgIjAuMDAxODM0LCAwLjAwMTgzNSwgMC4wMDE4NCwgMC4wMDE4NDMsIDAuMDAxODQzLCAwLjAwMTg0NCwgMC4wMDE4NDIiLCBcCi0gICAgICAgICAgIjAuMDAxODMsIDAuMDAxODMxLCAwLjAwMTgzOCwgMC4wMDE4NDEsIDAuMDAxODQzLCAwLjAwMTg0MywgMC4wMDE4NDIiLCBcCi0gICAgICAgICAgIjAuMDAxODI3LCAwLjAwMTgyOCwgMC4wMDE4MzcsIDAuMDAxODQsIDAuMDAxODQyLCAwLjAwMTg0MywgMC4wMDE4NDEiLCBcCi0gICAgICAgICAgIjAuMDAxODI0LCAwLjAwMTgyNiwgMC4wMDE4MzQsIDAuMDAxODM5LCAwLjAwMTg0MSwgMC4wMDE4NDMsIDAuMDAxODQxIiwgXAotICAgICAgICAgICIwLjAwMTgyMiwgMC4wMDE4MjQsIDAuMDAxODMyLCAwLjAwMTgzNywgMC4wMDE4MzksIDAuMDAxODQyLCAwLjAwMTg0MSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDE3NywgMC4wMDAxNzcsIDAuMDAwMTc4LCAwLjAwMDE3OCwgMC4wMDAxNzgsIDAuMDAwMTc4LCAwLjAwMDE3OCIsIFwKLSAgICAgICAgICAiMC4wMDAxODEsIDAuMDAwMTgyLCAwLjAwMDE4NCwgMC4wMDAxODUsIDAuMDAwMTg1LCAwLjAwMDE4NSwgMC4wMDAxODUiLCBcCi0gICAgICAgICAgIjAuMDAwMTc4LCAwLjAwMDE4LCAwLjAwMDE4NCwgMC4wMDAxODYsIDAuMDAwMTg2LCAwLjAwMDE4NywgMC4wMDAxODciLCBcCi0gICAgICAgICAgIjAuMDAwMTc4LCAwLjAwMDE3OSwgMC4wMDAxODQsIDAuMDAwMTg2LCAwLjAwMDE4NywgMC4wMDAxODgsIDAuMDAwMTg3IiwgXAotICAgICAgICAgICIwLjAwMDE4LCAwLjAwMDE4LCAwLjAwMDE4NSwgMC4wMDAxODYsIDAuMDAwMTg3LCAwLjAwMDE4OCwgMC4wMDAxODgiLCBcCi0gICAgICAgICAgIjAuMDAwMTg0LCAwLjAwMDE4NSwgMC4wMDAxODYsIDAuMDAwMTg3LCAwLjAwMDE4OCwgMC4wMDAxODksIDAuMDAwMTg5IiwgXAotICAgICAgICAgICIwLjAwMDE5LCAwLjAwMDE5LCAwLjAwMDE4OSwgMC4wMDAxODksIDAuMDAwMTg4LCAwLjAwMDE4OSwgMC4wMDAxODkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJEIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDE2NTQsIDAuMDAxNjU0LCAwLjAwMTY1NCwgMC4wMDE2NTUsIDAuMDAxNjU1LCAwLjAwMTY1NiwgMC4wMDE2NTMiLCBcCi0gICAgICAgICAgIjAuMDAxNjQ2LCAwLjAwMTY0NywgMC4wMDE2NTIsIDAuMDAxNjUzLCAwLjAwMTY1NCwgMC4wMDE2NTUsIDAuMDAxNjUzIiwgXAotICAgICAgICAgICIwLjAwMTYzOSwgMC4wMDE2NDEsIDAuMDAxNjQ5LCAwLjAwMTY1MiwgMC4wMDE2NTIsIDAuMDAxNjU1LCAwLjAwMTY1MiIsIFwKLSAgICAgICAgICAiMC4wMDE2MzYsIDAuMDAxNjM4LCAwLjAwMTY0NywgMC4wMDE2NTEsIDAuMDAxNjUyLCAwLjAwMTY1MywgMC4wMDE2NTIiLCBcCi0gICAgICAgICAgIjAuMDAxNjM0LCAwLjAwMTYzNiwgMC4wMDE2NDUsIDAuMDAxNjQ5LCAwLjAwMTY1MSwgMC4wMDE2NTMsIDAuMDAxNjUyIiwgXAotICAgICAgICAgICIwLjAwMTYzNSwgMC4wMDE2MzYsIDAuMDAxNjQ0LCAwLjAwMTY0OCwgMC4wMDE2NSwgMC4wMDE2NTIsIDAuMDAxNjUxIiwgXAotICAgICAgICAgICIwLjAwMTYzOCwgMC4wMDE2MzgsIDAuMDAxNjQzLCAwLjAwMTY0OCwgMC4wMDE2NSwgMC4wMDE2NTMsIDAuMDAxNjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDAwMTYsIDAuMDAwMDE2LCAwLjAwMDAxNywgMC4wMDAwMTgsIDAuMDAwMDE4LCAwLjAwMDAxOCwgMC4wMDAwMTgiLCBcCi0gICAgICAgICAgIjAuMDAwMDI1LCAwLjAwMDAyNiwgMC4wMDAwMywgMC4wMDAwMzIsIDAuMDAwMDMzLCAwLjAwMDAzMywgMC4wMDAwMzMiLCBcCi0gICAgICAgICAgIjAuMDAwMDIzLCAwLjAwMDAyNSwgMC4wMDAwMzIsIDAuMDAwMDM1LCAwLjAwMDAzOCwgMC4wMDAwMzksIDAuMDAwMDM5IiwgXAotICAgICAgICAgICIwLjAwMDAyMSwgMC4wMDAwMjMsIDAuMDAwMDMxLCAwLjAwMDAzNSwgMC4wMDAwMzcsIDAuMDAwMDQsIDAuMDAwMDQiLCBcCi0gICAgICAgICAgIjAuMDAwMDIsIDAuMDAwMDIyLCAwLjAwMDAzMSwgMC4wMDAwMzUsIDAuMDAwMDM4LCAwLjAwMDA0MSwgMC4wMDAwNDEiLCBcCi0gICAgICAgICAgIjAuMDAwMDIxLCAwLjAwMDAyMywgMC4wMDAwMzEsIDAuMDAwMDM1LCAwLjAwMDAzNiwgMC4wMDAwNCwgMC4wMDAwNDEiLCBcCi0gICAgICAgICAgIjAuMDAwMDI0LCAwLjAwMDAyNiwgMC4wMDAwMzIsIDAuMDAwMDM2LCAwLjAwMDAzNywgMC4wMDAwNDEsIDAuMDAwMDQxIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBOT1I0WDIgKgotICogLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChOT1I0WDIpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4yNzExNzc7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTk1NTM5OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTk0MTg5OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTk1NTM5OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDY5LCAwLjAwMDcyNiwgMC4wMDA3NDMsIDAuMDAwNzU0LCAwLjAwMDc1OSwgMC4wMDA3NjIsIDAuMDAwNzY0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyMDg0LCAwLjAwMjA4NSwgMC4wMDIwODUsIDAuMDAyMDg1LCAwLjAwMjA4NSwgMC4wMDIwODYsIDAuMDAyMDg1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE4ODg4MTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE4NzY4MTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE4ODg4MTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA2NzcsIDAuMDAwNzI0LCAwLjAwMDc0NywgMC4wMDA3NTYsIDAuMDAwNzYyLCAwLjAwMDc3MiwgMC4wMDA3NzgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDE0ODksIDAuMDAxNDksIDAuMDAxNDksIDAuMDAxNDksIDAuMDAxNDksIDAuMDAxNDkxLCAwLjAwMTQ5MSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQykgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNzczMTk7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNzYyODc7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNzczMTk7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNjkxLCAwLjAwMDc2MywgMC4wMDA3NzgsIDAuMDAwNzgzLCAwLjAwMDc4NSwgMC4wMDA3ODcsIDAuMDAwNzkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA4NiwgMC4wMDA4NjEsIDAuMDAwODYxLCAwLjAwMDg2MSwgMC4wMDA4NjEsIDAuMDAwODYxLCAwLjAwMDg2MSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNjE3NjY7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNjE3NjY7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNjE3NTk7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjE4LCAwLjAwMDIxOCwgMC4wMDAyMTksIDAuMDAwMjE5LCAwLjAwMDIxOSwgMC4wMDAyMTksIDAuMDAwMjE5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNjg2LCAwLjAwMDY4NiwgMC4wMDA2ODYsIDAuMDAwNjg2LCAwLjAwMDY4NiwgMC4wMDA2ODYsIDAuMDAwNjg2Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMTMwNDAxOwotICAgIGZ1bmN0aW9uIDogIighKCgoQStCKStDKStEKSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExODQxMSwgMC41MDI0NTEsIDAuODA4ODg2LCAxLjE5Mjg0LCAxLjU3Nzg1LCAxLjk2MDY4LCAyLjM0Mzg2IiwgXAotICAgICAgICAgICIwLjEyNjQ3NCwgMC41MTA4NjgsIDAuODE4MTc5LCAxLjIwMTYzLCAxLjU4NTY0LCAxLjk2ODk5LCAyLjM1MzU1IiwgXAotICAgICAgICAgICIwLjEzNDYwOCwgMC41MTkwOTcsIDAuODI2ODM0LCAxLjIxMDQyLCAxLjU5NDIzLCAxLjk3NzQ4LCAyLjM2MTk1IiwgXAotICAgICAgICAgICIwLjE0MjAyOCwgMC41MjY1MDgsIDAuODMzNTM1LCAxLjIxNzY1LCAxLjYwMTY3LCAxLjk4NDYxLCAyLjM2OTYiLCBcCi0gICAgICAgICAgIjAuMTQ5MDAzLCAwLjUzMzgxLCAwLjg0MDY4OSwgMS4yMjQzOCwgMS42MDgwNiwgMS45OTM1LCAyLjM3NjQ3IiwgXAotICAgICAgICAgICIwLjE1OTc5MiwgMC41NDQxNzQsIDAuODUxMzI3LCAxLjIzNTA1LCAxLjYyMDQ3LCAyLjAwMjY3LCAyLjM4NjgyIiwgXAotICAgICAgICAgICIwLjE2ODg3MiwgMC41NTMzODgsIDAuODYxMTk5LCAxLjI0NDcxLCAxLjYyODExLCAyLjAxMjcsIDIuMzk2MzMiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjAzNDc4LCAwLjk2ODgxMSwgMS41ODMyNSwgMi4zNDc0MSwgMy4xMjAxLCAzLjg4NjU4LCA0LjY1MzM0IiwgXAotICAgICAgICAgICIwLjIwMzQ5NCwgMC45NzA5MDYsIDEuNTg1LCAyLjM1MiwgMy4xMTk1MiwgMy44ODY0NSwgNC42NDQ2MSIsIFwKLSAgICAgICAgICAiMC4yMDM0NywgMC45NjkwMTksIDEuNTgxNSwgMi4zNTIzMSwgMy4xMTk2NCwgMy44ODY0NiwgNC42NDQ4NiIsIFwKLSAgICAgICAgICAiMC4yMDQwNTMsIDAuOTcwNjg5LCAxLjU4MjA0LCAyLjM1MjAyLCAzLjExOTUzLCAzLjg4NTkyLCA0LjY0NDU0IiwgXAotICAgICAgICAgICIwLjIwNDk5NSwgMC45Njg4MjIsIDEuNTgxNzYsIDIuMzQ3OSwgMy4xMTg4LCAzLjg4NzY5LCA0LjY1NDI2IiwgXAotICAgICAgICAgICIwLjIwNzgzNywgMC45NjkxNTUsIDEuNTgzNCwgMi4zNDc3MiwgMy4xMTMzMywgMy44ODYwNCwgNC42NDU0IiwgXAotICAgICAgICAgICIwLjIxMTEwMywgMC45NzA4MTIsIDEuNTg1LCAyLjM1MTk1LCAzLjExODc1LCAzLjg3ODc1LCA0LjY1NDAzIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzNTMwOCwgMC4xNDAwNjcsIDAuMjIyODQzLCAwLjMyNjA2MiwgMC40MjkzNDksIDAuNTMyNDM5LCAwLjYzNTY4OCIsIFwKLSAgICAgICAgICAiMC4wNDUzMjMsIDAuMTUwMDUzLCAwLjIzMjg0NywgMC4zMzYwOSwgMC40MzkzMzQsIDAuNTQyNDEzLCAwLjY0NTYzOSIsIFwKLSAgICAgICAgICAiMC4wNTg0NjYsIDAuMTYyODg3LCAwLjI0NTU1NywgMC4zNDg4NDUsIDAuNDUxMTY2LCAwLjU1NDI0MSwgMC42NTczMDciLCBcCi0gICAgICAgICAgIjAuMDcxNTAyLCAwLjE3NTY1MiwgMC4yNTg0MiwgMC4zNjE1MDUsIDAuNDY0NjI4LCAwLjU2NzgxMywgMC42NzEwNjciLCBcCi0gICAgICAgICAgIjAuMDgzNDksIDAuMTg4MTY1LCAwLjI3MTE2OSwgMC4zNzQzLCAwLjQ3NzI4MiwgMC41ODA0MzEsIDAuNjgzNzI0IiwgXAotICAgICAgICAgICIwLjA5OTQ0MywgMC4yMDk4NzYsIDAuMjkyNDkxLCAwLjM5NDk5OCwgMC40OTg4NjEsIDAuNjAyMDg0LCAwLjcwNTI0OSIsIFwKLSAgICAgICAgICAiMC4xMTE4MDQsIDAuMjI4MDY0LCAwLjMwOTIyLCAwLjQxMzAzNywgMC41MTYwMjcsIDAuNjE5MTY2LCAwLjcyMjA3MyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjA1MDIsIDAuMjY3NDUzLCAwLjQzMzE2NywgMC42NDAzNDgsIDAuODQ3OTgxLCAxLjA1NDY4LCAxLjI2MTg4IiwgXAotICAgICAgICAgICIwLjA2MTEwNCwgMC4yNjc0NzgsIDAuNDMzMTY3LCAwLjY0MDQ0MywgMC44NDc1MjEsIDEuMDU0NzUsIDEuMjYxODQiLCBcCi0gICAgICAgICAgIjAuMDY2MDMyLCAwLjI2NzQ1NiwgMC40MzMxODgsIDAuNjQwNDk1LCAwLjg0Nzk1MywgMS4wNTQ2NiwgMS4yNjE5NyIsIFwKLSAgICAgICAgICAiMC4wNzMzMDgsIDAuMjY4MzE3LCAwLjQzMzE2MiwgMC42NDA0ODksIDAuODQ3NDksIDEuMDU1MTUsIDEuMjYyMjgiLCBcCi0gICAgICAgICAgIjAuMDgxNzEzLCAwLjI3MTM1MiwgMC40MzM0NDksIDAuNjQwNDUxLCAwLjg0NzU0MSwgMS4wNTQ5LCAxLjI2MjQ3IiwgXAotICAgICAgICAgICIwLjA5NzA4MywgMC4yNzc1NzksIDAuNDM2NCwgMC42NDA3OTcsIDAuODQ3Nzc5LCAxLjA1NTExLCAxLjI2MTg0IiwgXAotICAgICAgICAgICIwLjExMDAzNywgMC4yODUzOTcsIDAuNDQxNjc3LCAwLjY0MjQ5NywgMC44NDc2NDMsIDEuMDU0OTcsIDEuMjYyMjMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTE1NjM5LCAwLjQ5OTQ0LCAwLjgwNjU3OSwgMS4xOTExNywgMS41NzQxLCAxLjk1ODI4LCAyLjM0Mjc0IiwgXAotICAgICAgICAgICIwLjEyMzY0MywgMC41MDc5MDQsIDAuODE1MTQ4LCAxLjE5ODYyLCAxLjU4MzQ3LCAxLjk2NjMxLCAyLjM0OTg2IiwgXAotICAgICAgICAgICIwLjEzMjQwMiwgMC41MTY3MTYsIDAuODI0MDAxLCAxLjIwNzYyLCAxLjU5MjE4LCAxLjk3NTMsIDIuMzU4OTIiLCBcCi0gICAgICAgICAgIjAuMTQwNjIyLCAwLjUyNTE3MSwgMC44MzIwOTgsIDEuMjE2NDcsIDEuNjAwMzYsIDEuOTgzMjksIDIuMzY4MTciLCBcCi0gICAgICAgICAgIjAuMTQ4Njg5LCAwLjUzMzE1NCwgMC44NDAyMzksIDEuMjI0MDUsIDEuNjA4NDgsIDEuOTkyMTIsIDIuMzc1MDQiLCBcCi0gICAgICAgICAgIjAuMTYxNTMzLCAwLjU0NTk2NiwgMC44NTM0MDYsIDEuMjM3MSwgMS42MjA2OCwgMi4wMDU3NSwgMi4zODkxNCIsIFwKLSAgICAgICAgICAiMC4xNzI1NTMsIDAuNTU3MjE4LCAwLjg2NDM2NSwgMS4yNDgzMSwgMS42MzIwOSwgMi4wMTcwNSwgMi40MDAyMiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMDM1LCAwLjk2OTA4OCwgMS41ODEzNCwgMi4zNTI3MSwgMy4xMTkyNywgMy44ODY5MywgNC42NDQwNyIsIFwKLSAgICAgICAgICAiMC4yMDM0NSwgMC45NjkwMDgsIDEuNTgxNCwgMi4zNTE3OSwgMy4xMjAwNywgMy44ODY1NCwgNC42NDUxMiIsIFwKLSAgICAgICAgICAiMC4yMDMxOCwgMC45Njk3MDMsIDEuNTgxNzcsIDIuMzQ3NDcsIDMuMTE5NzgsIDMuODg2NDksIDQuNjUzNjYiLCBcCi0gICAgICAgICAgIjAuMjA0NDM1LCAwLjk2OTAwNiwgMS41ODI4LCAyLjM1MjIsIDMuMTE5NiwgMy44ODYxLCA0LjY0NDQ3IiwgXAotICAgICAgICAgICIwLjIwNjA2MywgMC45NzA2MzMsIDEuNTgyNTksIDIuMzQ4MDksIDMuMTE5NTUsIDMuODg2NzMsIDQuNjQ1NTEiLCBcCi0gICAgICAgICAgIjAuMjEwMzI5LCAwLjk2OTA1NSwgMS41ODQ2OCwgMi4zNDc4NiwgMy4xMTg4NywgMy44ODczMywgNC42NTQyNiIsIFwKLSAgICAgICAgICAiMC4yMTUxNTUsIDAuOTY5MDQsIDEuNTg0MzEsIDIuMzUxNjMsIDMuMTE4ODYsIDMuODg3MywgNC42NDQ0NiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzQxOTYsIDAuMTM4MDk3LCAwLjIyMDcwNiwgMC4zMjM4NjcsIDAuNDI3MDI0LCAwLjUzMDMzNCwgMC42MzMyNCIsIFwKLSAgICAgICAgICAiMC4wNDQyMywgMC4xNDgxNTgsIDAuMjMwODA0LCAwLjMzMzk1NywgMC40MzcxNjMsIDAuNTQwMTg5LCAwLjY0MzI1MSIsIFwKLSAgICAgICAgICAiMC4wNTczMTEsIDAuMTYwOTM3LCAwLjI0MzU2OSwgMC4zNDY4MjEsIDAuNDQ5MDQ2LCAwLjU1MjA0MiwgMC42NTU0MzIiLCBcCi0gICAgICAgICAgIjAuMDcwMjQsIDAuMTczNjI3LCAwLjI1NjM5NywgMC4zNTk1MjksIDAuNDYyNTc0LCAwLjU2NDQxMiwgMC42Njc3ODQiLCBcCi0gICAgICAgICAgIjAuMDgxNzUyLCAwLjE4NjM5OSwgMC4yNjkwMDQsIDAuMzcyOTI4LCAwLjQ3NjAzNywgMC41NzkzNTgsIDAuNjgyNDY3IiwgXAotICAgICAgICAgICIwLjA5NzU4NSwgMC4yMDY2MzQsIDAuMjg5NzA1LCAwLjM5MjcxMiwgMC40OTU2MDQsIDAuNTk4NjM3LCAwLjcwMTc3OSIsIFwKLSAgICAgICAgICAiMC4xMDk3MzQsIDAuMjI1NDg1LCAwLjMwNjk2NiwgMC40MTA2MzMsIDAuNTEzNTk5LCAwLjYxNjUwMiwgMC43MTk1MiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTc4MDEsIDAuMjY0ODI4LCAwLjQzMDYwOSwgMC42Mzc4NzIsIDAuODQ1MDA1LCAxLjA1MjUsIDEuMjU5NCIsIFwKLSAgICAgICAgICAiMC4wNTg1NTMsIDAuMjY0ODQ3LCAwLjQzMDYwMiwgMC42Mzc4NzQsIDAuODQ0OTgxLCAxLjA1MjE4LCAxLjI1OTExIiwgXAotICAgICAgICAgICIwLjA2MzY1NSwgMC4yNjQ4MjksIDAuNDMwNTgxLCAwLjYzNzkzNSwgMC44NDUyNDEsIDEuMDUyMTIsIDEuMjU5NjQiLCBcCi0gICAgICAgICAgIjAuMDcxMDgxLCAwLjI2NTgzMywgMC40MzA1ODEsIDAuNjM3OTUsIDAuODQ0OTUsIDEuMDUyMTUsIDEuMjU5NTkiLCBcCi0gICAgICAgICAgIjAuMDc5NzU5LCAwLjI2ODcyNSwgMC40MzA5MTEsIDAuNjM3NzY0LCAwLjg0NTE1NSwgMS4wNTIzNSwgMS4yNTkzNiIsIFwKLSAgICAgICAgICAiMC4wOTQ4NTMsIDAuMjc2MTk3LCAwLjQzNDIxNCwgMC42MzgxNTUsIDAuODQ1MjEsIDEuMDUyNDcsIDEuMjU5MzUiLCBcCi0gICAgICAgICAgIjAuMTA3MDI4LCAwLjI4MzkyMSwgMC40Mzk1MjUsIDAuNjQwMDY4LCAwLjg0NTI4OCwgMS4wNTIxLCAxLjI1OTg4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwOTE0OCwgMC40OTMyNSwgMC44MDA1NDMsIDEuMTg0MDcsIDEuNTY4LCAxLjk1MTMzLCAyLjMzNDgxIiwgXAotICAgICAgICAgICIwLjExNzA5NSwgMC41MDEzNzgsIDAuODA4NTM4LCAxLjE5MzA4LCAxLjU3NjA0LCAxLjk1OTEzLCAyLjM0NDU2IiwgXAotICAgICAgICAgICIwLjEyNjYxMiwgMC41MTEyNCwgMC44MTgyOTQsIDEuMjAyODYsIDEuNTg1NzQsIDEuOTcxMDksIDIuMzU0MiIsIFwKLSAgICAgICAgICAiMC4xMzYwNjEsIDAuNTIwNjM5LCAwLjgyODM2NywgMS4yMTE3OCwgMS41OTU5LCAxLjk3ODksIDIuMzYzNzQiLCBcCi0gICAgICAgICAgIjAuMTQ1NzY5LCAwLjUzMDU4NSwgMC44Mzc0MTMsIDEuMjIyMDIsIDEuNjA1NzUsIDEuOTg4MzEsIDIuMzczNCIsIFwKLSAgICAgICAgICAiMC4xNjEwNzUsIDAuNTQ2MDUzLCAwLjg1MzQ0OSwgMS4yMzY4NSwgMS42MjEyNywgMi4wMDQzMSwgMi4zODk2MiIsIFwKLSAgICAgICAgICAiMC4xNzQzOTksIDAuNTU4OTU0LCAwLjg2NjQ1NywgMS4yNTAzNSwgMS42MzQxNywgMi4wMTkyLCAyLjQwMjQ1Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIwMzQ1NiwgMC45NzA4NzksIDEuNTg1MDIsIDIuMzUyMSwgMy4xMTk1NCwgMy44ODY0NSwgNC42NTM0OCIsIFwKLSAgICAgICAgICAiMC4yMDMyMzksIDAuOTcwNzU0LCAxLjU4NDcyLCAyLjM1MjY5LCAzLjExOTI3LCAzLjg4MDI1LCA0LjY0NDM4IiwgXAotICAgICAgICAgICIwLjIwMzY4OSwgMC45NzA5MTQsIDEuNTg0NzUsIDIuMzQ3NTYsIDMuMTE5MjEsIDMuODc5NDYsIDQuNjU0NjQiLCBcCi0gICAgICAgICAgIjAuMjA0ODk4LCAwLjk3MDY5OCwgMS41ODUwNywgMi4zNDc3LCAzLjExOTU3LCAzLjg4NjAzLCA0LjY0NDM2IiwgXAotICAgICAgICAgICIwLjIwODA2NiwgMC45NzA5MjQsIDEuNTg0NDQsIDIuMzUyNDcsIDMuMTE5NywgMy44ODI2OSwgNC42NDQ2IiwgXAotICAgICAgICAgICIwLjIxNDU2OSwgMC45NzA4MDgsIDEuNTg0ODYsIDIuMzUxNjQsIDMuMTE5NTYsIDMuODgwMTMsIDQuNjU0ODQiLCBcCi0gICAgICAgICAgIjAuMjIxODQyLCAwLjk3MDkzMSwgMS41ODI2NSwgMi4zNTE1OCwgMy4xMTg4MywgMy44ODczNCwgNC42NTQxNiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzIzMjIsIDAuMTM1Njg1LCAwLjIxODIyOSwgMC4zMjE0NzksIDAuNDI0NDE2LCAwLjUyNzcxNywgMC42MzA4ODgiLCBcCi0gICAgICAgICAgIjAuMDQyNDg3LCAwLjE0NTkyNywgMC4yMjg0NzUsIDAuMzMxNTU1LCAwLjQzNDcwNywgMC41Mzc3NjUsIDAuNjQwNzkxIiwgXAotICAgICAgICAgICIwLjA1NTY1NiwgMC4xNTg2OTUsIDAuMjQxMjAyLCAwLjM0NDM4NCwgMC40NDY1MTIsIDAuNTQ5NjYsIDAuNjUyOTMzIiwgXAotICAgICAgICAgICIwLjA2ODI5NiwgMC4xNzE5NTgsIDAuMjU0NDksIDAuMzU3MTY4LCAwLjQ2MDE1OCwgMC41NjE5ODMsIDAuNjY1NDAxIiwgXAotICAgICAgICAgICIwLjA3OTA1MiwgMC4xODQxNTEsIDAuMjY2OTk1LCAwLjM3MDU0NCwgMC40NzM4NTIsIDAuNTc2OTAyLCAwLjY3OTg1NyIsIFwKLSAgICAgICAgICAiMC4wOTQwOTMsIDAuMjA0MzU5LCAwLjI4ODE0MSwgMC4zOTAzMzIsIDAuNDkzMTU4LCAwLjU5NjE0NywgMC42OTkzNDgiLCBcCi0gICAgICAgICAgIjAuMTA2MjcyLCAwLjIyMzI1MSwgMC4zMDQ2MjcsIDAuNDA4MjM3LCAwLjUxMTU2MSwgMC42MTQxMzMsIDAuNzE3MDQ1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1NDkyOSwgMC4yNjIxNDYsIDAuNDI4MTMsIDAuNjM1MjQxLCAwLjg0MjI4MSwgMS4wNDk4MywgMS4yNTcxNSIsIFwKLSAgICAgICAgICAiMC4wNTU5NTMsIDAuMjYyMjA3LCAwLjQyNzkxNCwgMC42MzUxNjEsIDAuODQyMjY4LCAxLjA0OTY2LCAxLjI1Njc0IiwgXAotICAgICAgICAgICIwLjA2MTM1NSwgMC4yNjIyNTgsIDAuNDI4MDM3LCAwLjYzNTI0MywgMC44NDIyODEsIDEuMDQ5NzQsIDEuMjU3MDkiLCBcCi0gICAgICAgICAgIjAuMDY4OTk5LCAwLjI2MzA3MiwgMC40Mjc4OTcsIDAuNjM1MjY0LCAwLjg0MjI4NCwgMS4wNDk2NywgMS4yNTcwNSIsIFwKLSAgICAgICAgICAiMC4wNzg0MzksIDAuMjY2Mjc0LCAwLjQyODIyMiwgMC42MzUwNzQsIDAuODQyNTY5LCAxLjA0OTcyLCAxLjI1Njc5IiwgXAotICAgICAgICAgICIwLjA5Mzk4MywgMC4yNzM4NjgsIDAuNDMxNCwgMC42MzUzODQsIDAuODQyNjMsIDEuMDQ5OTIsIDEuMjU3MDUiLCBcCi0gICAgICAgICAgIjAuMTA1NDkxLCAwLjI4MTQ2OCwgMC40MzcwMDUsIDAuNjM3NDMzLCAwLjg0MjcxOCwgMS4wNDk2NSwgMS4yNTY4NiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJEIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTgxNDMsIDAuNDgyMDg4LCAwLjc4OTI0NiwgMS4xNzI5NywgMS41NTczMywgMS45NDA0NiwgMi4zMjQwNCIsIFwKLSAgICAgICAgICAiMC4xMDU4ODYsIDAuNDkwMzM3LCAwLjc5NzA3MywgMS4xODEzNCwgMS41NjUzMiwgMS45NDkyNywgMi4zMzI1MiIsIFwKLSAgICAgICAgICAiMC4xMTU3NDksIDAuNTAwMjgyLCAwLjgwNzMxNiwgMS4xOTE0MiwgMS41NzQ4MywgMS45NjAzNSwgMi4zNDI4MSIsIFwKLSAgICAgICAgICAiMC4xMjYyMjIsIDAuNTEwODcsIDAuODE3NDEsIDEuMjAxNTQsIDEuNTg1OTQsIDEuOTY5MjIsIDIuMzU0MzIiLCBcCi0gICAgICAgICAgIjAuMTM2NDM2LCAwLjUyMDcxMSwgMC44MjgwNzQsIDEuMjExNjIsIDEuNTk1NzYsIDEuOTc5MzMsIDIuMzYzOTciLCBcCi0gICAgICAgICAgIjAuMTUzMjA3LCAwLjUzNzAxMiwgMC44NDQxNjIsIDEuMjI4MTcsIDEuNjEyNywgMS45OTUzMSwgMi4zODA4NCIsIFwKLSAgICAgICAgICAiMC4xNjgyOTMsIDAuNTUxNTcsIDAuODU4NTgsIDEuMjQyNjIsIDEuNjI2MjQsIDIuMDEwNzQsIDIuMzkzNjUiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjAzMzU0LCAwLjk2OTA4MiwgMS41ODQ2NiwgMi4zNDczNywgMy4xMTk3NSwgMy44ODY0OCwgNC42NTM2MiIsIFwKLSAgICAgICAgICAiMC4yMDI5OTQsIDAuOTcwNzIyLCAxLjU4MTIyLCAyLjM1MjAxLCAzLjEwOTY3LCAzLjg4Njk1LCA0LjY1Mzc5IiwgXAotICAgICAgICAgICIwLjIwMjg3MywgMC45NzA2NTgsIDEuNTgyNDcsIDIuMzUxOTgsIDMuMTEzNjgsIDMuODg3OCwgNC42NTM5MyIsIFwKLSAgICAgICAgICAiMC4yMDYwOCwgMC45NzA3NTQsIDEuNTgxMzksIDIuMzQ5OTgsIDMuMTE5NDMsIDMuODc5ODIsIDQuNjQ0MTUiLCBcCi0gICAgICAgICAgIjAuMjEwNjk0LCAwLjk3MDYzNSwgMS41ODQ2OCwgMi4zNTE2LCAzLjExOTI3LCAzLjg3OTk4LCA0LjY1NDQ0IiwgXAotICAgICAgICAgICIwLjIyMDgwNiwgMC45NzA2NTgsIDEuNTg0MzksIDIuMzUxODgsIDMuMTE5ODEsIDMuODgyMTIsIDQuNjU0OTIiLCBcCi0gICAgICAgICAgIjAuMjMxMDYsIDAuOTcwNTYyLCAxLjU4NDM3LCAyLjM1MTksIDMuMTE4OTEsIDMuODc4MzcsIDQuNjUzMyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzA1NzMsIDAuMTM2NDQ2LCAwLjIyMTE1MiwgMC4zMjcwMzcsIDAuNDMyODQ5LCAwLjUzODY2OSwgMC42NDQ5NTciLCBcCi0gICAgICAgICAgIjAuMDQwOTI3LCAwLjE0Njc5MywgMC4yMzE0NDYsIDAuMzM3MzA5LCAwLjQ0MzExMSwgMC41NDkwMDYsIDAuNjU0NzY3IiwgXAotICAgICAgICAgICIwLjA1Mzg0MSwgMC4xNTk4MzMsIDAuMjQ0NDc2LCAwLjM1MDQ0MSwgMC40NTYyNDcsIDAuNTYxOTU0LCAwLjY2Nzc0IiwgXAotICAgICAgICAgICIwLjA2NjMyNSwgMC4xNzIyMjMsIDAuMjU3MDgzLCAwLjM2Mjc3NiwgMC40Njg2OTcsIDAuNTc0MzkxLCAwLjY3ODU4MyIsIFwKLSAgICAgICAgICAiMC4wNzcxMTMsIDAuMTg0OTcxLCAwLjI2OTc5MywgMC4zNzU2MDgsIDAuNDgxNzA1LCAwLjU4NzQwNiwgMC42OTMzMTIiLCBcCi0gICAgICAgICAgIjAuMDkxMzEzLCAwLjIwNjQ0NywgMC4yOTExMiwgMC4zOTYwNjIsIDAuNTAxNzAyLCAwLjYwNzQyNiwgMC43MTM0MTEiLCBcCi0gICAgICAgICAgIjAuMTAyMzE0LCAwLjIyNDEyOSwgMC4zMDc3NTQsIDAuNDE0OTgyLCAwLjUxOTk4MiwgMC42MjU1MzUsIDAuNzMxMTY3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1MzU2NiwgMC4yNjcyOTQsIDAuNDM3NDEzLCAwLjY1MDM2LCAwLjg2NTM3LCAxLjA3NTc3LCAxLjI5MDMzIiwgXAotICAgICAgICAgICIwLjA1NDYwOCwgMC4yNjY1LCAwLjQzODE3MiwgMC42NTA2NTEsIDAuODY0Nzk0LCAxLjA3NTgyLCAxLjI5Mjk4IiwgXAotICAgICAgICAgICIwLjA2MDM4MSwgMC4yNjczMTYsIDAuNDM2OTM2LCAwLjY1MDEsIDAuODYzMTk0LCAxLjA3NTk5LCAxLjI5Mjk4IiwgXAotICAgICAgICAgICIwLjA2ODI1NiwgMC4yNjgyOTYsIDAuNDM3Mjg4LCAwLjY1MTQ1MSwgMC44NjM1MSwgMS4wNzU2MiwgMS4yODk0NSIsIFwKLSAgICAgICAgICAiMC4wNzc1MDUsIDAuMjcxMTYsIDAuNDM3NDA5LCAwLjY1MTA2MywgMC44NjI5ODgsIDEuMDc2NjcsIDEuMjg5NzciLCBcCi0gICAgICAgICAgIjAuMDkzNzg1LCAwLjI3NzM1MywgMC40NDE1ODksIDAuNjUxNjYsIDAuODY1NTEzLCAxLjA3NjAxLCAxLjI4OTU1IiwgXAotICAgICAgICAgICIwLjEwNjU0NSwgMC4yODU5NjYsIDAuNDQ2Mzc3LCAwLjY1MzM3OCwgMC44NjM0NCwgMS4wNzc1LCAxLjI5MjEyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2MTg3LCAwLjAwNjE5OCwgMC4wMDYxOTgsIDAuMDA2MTk5LCAwLjAwNjE5OSwgMC4wMDYxOTksIDAuMDA2MTk5IiwgXAotICAgICAgICAgICIwLjAwNjE0NywgMC4wMDYxODcsIDAuMDA2MTkzLCAwLjAwNjE5NSwgMC4wMDYxOTYsIDAuMDA2MTk3LCAwLjAwNjE5NyIsIFwKLSAgICAgICAgICAiMC4wMDYxMTcsIDAuMDA2MTc0LCAwLjAwNjE4NCwgMC4wMDYxODksIDAuMDA2MTkyLCAwLjAwNjE5MywgMC4wMDYxOTQiLCBcCi0gICAgICAgICAgIjAuMDA2MTAxLCAwLjAwNjE2NCwgMC4wMDYxNzcsIDAuMDA2MTg1LCAwLjAwNjE4OSwgMC4wMDYxOTIsIDAuMDA2MTkxIiwgXAotICAgICAgICAgICIwLjAwNjA5LCAwLjAwNjE1NSwgMC4wMDYxNywgMC4wMDYxNzksIDAuMDA2MTg1LCAwLjAwNjE4NSwgMC4wMDYxODkiLCBcCi0gICAgICAgICAgIjAuMDA2MDc5LCAwLjAwNjE0MiwgMC4wMDYxNiwgMC4wMDYxNzEsIDAuMDA2MTc4LCAwLjAwNjE4MiwgMC4wMDYxODYiLCBcCi0gICAgICAgICAgIjAuMDA2MDc0LCAwLjAwNjEzNCwgMC4wMDYxNTMsIDAuMDA2MTY2LCAwLjAwNjE3NCwgMC4wMDYxNzgsIDAuMDA2MTgxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxOTI3LCAwLjAwMTkyOCwgMC4wMDE5MjgsIDAuMDAxOTI2LCAwLjAwMTkyOCwgMC4wMDE5MjcsIDAuMDAxOTI3IiwgXAotICAgICAgICAgICIwLjAwMTg2MiwgMC4wMDE4NjYsIDAuMDAxODY4LCAwLjAwMTg2OCwgMC4wMDE4NjcsIDAuMDAxODY4LCAwLjAwMTg2NyIsIFwKLSAgICAgICAgICAiMC4wMDE4NDUsIDAuMDAxODU1LCAwLjAwMTg1NSwgMC4wMDE4NTUsIDAuMDAxODQ2LCAwLjAwMTg0NiwgMC4wMDE4NDgiLCBcCi0gICAgICAgICAgIjAuMDAxODQ0LCAwLjAwMTg1NCwgMC4wMDE4NTIsIDAuMDAxODUyLCAwLjAwMTg1MywgMC4wMDE4NTEsIDAuMDAxODUxIiwgXAotICAgICAgICAgICIwLjAwMTg1MywgMC4wMDE4NTIsIDAuMDAxODUzLCAwLjAwMTg1MiwgMC4wMDE4NTEsIDAuMDAxODUxLCAwLjAwMTg1IiwgXAotICAgICAgICAgICIwLjAwMTg5NCwgMC4wMDE4NjEsIDAuMDAxODU5LCAwLjAwMTg1MSwgMC4wMDE4NTQsIDAuMDAxODUzLCAwLjAwMTg1MyIsIFwKLSAgICAgICAgICAiMC4wMDE5MzMsIDAuMDAxODc4LCAwLjAwMTg2MSwgMC4wMDE4NiwgMC4wMDE4NTYsIDAuMDAxODU0LCAwLjAwMTg1MiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNTU0LCAwLjAwNTU1LCAwLjAwNTU1MSwgMC4wMDU1NTMsIDAuMDA1NTU0LCAwLjAwNTU1MywgMC4wMDU1NSIsIFwKLSAgICAgICAgICAiMC4wMDU0OTksIDAuMDA1NTM5LCAwLjAwNTU0NCwgMC4wMDU1NDksIDAuMDA1NTUsIDAuMDA1NTUsIDAuMDA1NTUiLCBcCi0gICAgICAgICAgIjAuMDA1NDY5LCAwLjAwNTUyNiwgMC4wMDU1MzYsIDAuMDA1NTQxLCAwLjAwNTU0NCwgMC4wMDU1NDQsIDAuMDA1NTQ4IiwgXAotICAgICAgICAgICIwLjAwNTQ1MywgMC4wMDU1MTYsIDAuMDA1NTI5LCAwLjAwNTUzNiwgMC4wMDU1MzksIDAuMDA1NTQzLCAwLjAwNTU0MyIsIFwKLSAgICAgICAgICAiMC4wMDU0NDIsIDAuMDA1NTA3LCAwLjAwNTUyMywgMC4wMDU1MywgMC4wMDU1MzYsIDAuMDA1NTM5LCAwLjAwNTU0MiIsIFwKLSAgICAgICAgICAiMC4wMDU0MzEsIDAuMDA1NDk2LCAwLjAwNTUxMywgMC4wMDU1MjIsIDAuMDA1NTMsIDAuMDA1NTM0LCAwLjAwNTUzNyIsIFwKLSAgICAgICAgICAiMC4wMDU0MjksIDAuMDA1NDg3LCAwLjAwNTUwNiwgMC4wMDU1MTgsIDAuMDA1NTI4LCAwLjAwNTUzLCAwLjAwNTUzNCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTQwMiwgMC4wMDE0MDMsIDAuMDAxNDAzLCAwLjAwMTQwMywgMC4wMDE0MDMsIDAuMDAxNDAzLCAwLjAwMTQwMiIsIFwKLSAgICAgICAgICAiMC4wMDEzNTIsIDAuMDAxMzY5LCAwLjAwMTM3MSwgMC4wMDEzNzIsIDAuMDAxMzcyLCAwLjAwMTM3MiwgMC4wMDEzNzIiLCBcCi0gICAgICAgICAgIjAuMDAxMzMsIDAuMDAxMzU1LCAwLjAwMTM1OSwgMC4wMDEzNjIsIDAuMDAxMzYxLCAwLjAwMTM2MSwgMC4wMDEzNjIiLCBcCi0gICAgICAgICAgIjAuMDAxMzIxLCAwLjAwMTM1LCAwLjAwMTM1NywgMC4wMDEzNTksIDAuMDAxMzYxLCAwLjAwMTM1OCwgMC4wMDEzNTkiLCBcCi0gICAgICAgICAgIjAuMDAxMzIzLCAwLjAwMTM0NywgMC4wMDEzNjIsIDAuMDAxMzYyLCAwLjAwMTM2MiwgMC4wMDEzNjMsIDAuMDAxMzYzIiwgXAotICAgICAgICAgICIwLjAwMTM0NSwgMC4wMDEzNjMsIDAuMDAxMzY2LCAwLjAwMTM2NSwgMC4wMDEzNjQsIDAuMDAxMzY0LCAwLjAwMTM2NCIsIFwKLSAgICAgICAgICAiMC4wMDEzNDcsIDAuMDAxMzgxLCAwLjAwMTM3MSwgMC4wMDEzNzEsIDAuMDAxMzY5LCAwLjAwMTM2OCwgMC4wMDEzNjYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQ4NywgMC4wMDQ4ODEsIDAuMDA0ODgyLCAwLjAwNDg4MywgMC4wMDQ4ODIsIDAuMDA0ODgyLCAwLjAwNDg4MiIsIFwKLSAgICAgICAgICAiMC4wMDQ4MjgsIDAuMDA0ODY5LCAwLjAwNDg3MywgMC4wMDQ4NzcsIDAuMDA0ODc4LCAwLjAwNDg3NCwgMC4wMDQ4OCIsIFwKLSAgICAgICAgICAiMC4wMDQ4LCAwLjAwNDg1NywgMC4wMDQ4NjYsIDAuMDA0ODc0LCAwLjAwNDg3NCwgMC4wMDQ4NzIsIDAuMDA0ODc4IiwgXAotICAgICAgICAgICIwLjAwNDc4MywgMC4wMDQ4NDYsIDAuMDA0ODU5LCAwLjAwNDg2NSwgMC4wMDQ4NjksIDAuMDA0ODc1LCAwLjAwNDg3NyIsIFwKLSAgICAgICAgICAiMC4wMDQ3NzMsIDAuMDA0ODM3LCAwLjAwNDg1MiwgMC4wMDQ4NjEsIDAuMDA0ODY2LCAwLjAwNDg2OSwgMC4wMDQ4NzIiLCBcCi0gICAgICAgICAgIjAuMDA0NzY1LCAwLjAwNDgyNiwgMC4wMDQ4NDMsIDAuMDA0ODU0LCAwLjAwNDg2LCAwLjAwNDg2OCwgMC4wMDQ4NjciLCBcCi0gICAgICAgICAgIjAuMDA0NzY4LCAwLjAwNDgxNiwgMC4wMDQ4MzcsIDAuMDA0ODQ3LCAwLjAwNDg1NywgMC4wMDQ4NiwgMC4wMDQ4NjQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDA3OTEsIDAuMDAwNzk2LCAwLjAwMDc5NywgMC4wMDA3OTcsIDAuMDAwNzk3LCAwLjAwMDc5NywgMC4wMDA3OTciLCBcCi0gICAgICAgICAgIjAuMDAwNzc5LCAwLjAwMDgxNCwgMC4wMDA4MTgsIDAuMDAwODIsIDAuMDAwODIxLCAwLjAwMDgyMSwgMC4wMDA4MjIiLCBcCi0gICAgICAgICAgIjAuMDAwNzUsIDAuMDAwODA5LCAwLjAwMDgxOCwgMC4wMDA4MjIsIDAuMDAwODI2LCAwLjAwMDgyNywgMC4wMDA4MjgiLCBcCi0gICAgICAgICAgIjAuMDAwNzQ3LCAwLjAwMDgwNiwgMC4wMDA4MTUsIDAuMDAwODIsIDAuMDAwODIzLCAwLjAwMDgyNywgMC4wMDA4MjgiLCBcCi0gICAgICAgICAgIjAuMDAwNzY0LCAwLjAwMDgsIDAuMDAwODEzLCAwLjAwMDgyLCAwLjAwMDgyMywgMC4wMDA4MjQsIDAuMDAwODI1IiwgXAotICAgICAgICAgICIwLjAwMDc5MywgMC4wMDA4MTMsIDAuMDAwODE1LCAwLjAwMDgyNCwgMC4wMDA4MjYsIDAuMDAwODI4LCAwLjAwMDgyOCIsIFwKLSAgICAgICAgICAiMC4wMDA3NTUsIDAuMDAwODI3LCAwLjAwMDgyNiwgMC4wMDA4MywgMC4wMDA4MjUsIDAuMDAwODMyLCAwLjAwMDgzMSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkQiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDE3NCwgMC4wMDQxOTIsIDAuMDA0MTkyLCAwLjAwNDE5MywgMC4wMDQxOTMsIDAuMDA0MTkzLCAwLjAwNDE5NCIsIFwKLSAgICAgICAgICAiMC4wMDQxMTIsIDAuMDA0MTczLCAwLjAwNDE4LCAwLjAwNDE4NiwgMC4wMDQxODcsIDAuMDA0MTg4LCAwLjAwNDE5MSIsIFwKLSAgICAgICAgICAiMC4wMDQwODIsIDAuMDA0MTU3LCAwLjAwNDE3MSwgMC4wMDQxNzgsIDAuMDA0MTgxLCAwLjAwNDE4NCwgMC4wMDQxODYiLCBcCi0gICAgICAgICAgIjAuMDA0MDY4LCAwLjAwNDE0MywgMC4wMDQxNTksIDAuMDA0MTcsIDAuMDA0MTc1LCAwLjAwNDE4LCAwLjAwNDE4NCIsIFwKLSAgICAgICAgICAiMC4wMDQwNzcsIDAuMDA0MTM3LCAwLjAwNDE1NCwgMC4wMDQxNjgsIDAuMDA0MTcxLCAwLjAwNDE3NSwgMC4wMDQxNzgiLCBcCi0gICAgICAgICAgIjAuMDA0MTAzLCAwLjAwNDEzLCAwLjAwNDE0NywgMC4wMDQxNiwgMC4wMDQxNjYsIDAuMDA0MTcxLCAwLjAwNDE3NCIsIFwKLSAgICAgICAgICAiMC4wMDQxMzYsIDAuMDA0MTMsIDAuMDA0MTQ1LCAwLjAwNDE1NiwgMC4wMDQxNjQsIDAuMDA0MTY3LCAwLjAwNDE2OSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDA5NSwgMC4wMDAxMTUsIDAuMDAwMTE3LCAwLjAwMDExOCwgMC4wMDAxMTgsIDAuMDAwMTE4LCAwLjAwMDExOSIsIFwKLSAgICAgICAgICAiMC4wMDAwOTEsIDAuMDAwMTU5LCAwLjAwMDE2NywgMC4wMDAxNzEsIDAuMDAwMTczLCAwLjAwMDE3NCwgMC4wMDAxNzUiLCBcCi0gICAgICAgICAgIjAuMDAwMDYzLCAwLjAwMDE1NiwgMC4wMDAxNjksIDAuMDAwMTc2LCAwLjAwMDE4LCAwLjAwMDE4MSwgMC4wMDAxODMiLCBcCi0gICAgICAgICAgIjAuMDAwMDU2LCAwLjAwMDE1MiwgMC4wMDAxNjgsIDAuMDAwMTc4LCAwLjAwMDE4MiwgMC4wMDAxODUsIDAuMDAwMTk2IiwgXAotICAgICAgICAgICIwLjAwMDAzNCwgMC4wMDAxNDcsIDAuMDAwMTY0LCAwLjAwMDE3NSwgMC4wMDAxODEsIDAuMDAwMTg1LCAwLjAwMDE4NyIsIFwKLSAgICAgICAgICAiMC4wMDAwNywgMC4wMDAxNDYsIDAuMDAwMTY0LCAwLjAwMDE3NywgMC4wMDAxODMsIDAuMDAwMTg2LCAwLjAwMDE4OSIsIFwKLSAgICAgICAgICAiMC4wMDAwOTcsIDAuMDAwMTU1LCAwLjAwMDE2OCwgMC4wMDAxNzgsIDAuMDAwMTgyLCAwLjAwMDE4NywgMC4wMDAxOSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogTk9SNFg2ICoKLSAqIC0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoTk9SNFg2KSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuODE2MzA0OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDQzNTA5OTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDQzMDc0ODsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDQzNTA5OTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDE5OTMsIDAuMDAyMTIsIDAuMDAyMTkyLCAwLjAwMjIxLCAwLjAwMjIzOCwgMC4wMDIyNzEsIDAuMDAyMjc0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA4MTEzLCAwLjAwODExOCwgMC4wMDgxMTksIDAuMDA4MTE5LCAwLjAwODExOSwgMC4wMDgxMiwgMC4wMDgxMTkiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwNDI3NTAxOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwNDIzNTcxOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwNDI3NTAxOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTkzNywgMC4wMDIwODgsIDAuMDAyMTc5LCAwLjAwMjIxOSwgMC4wMDIyNDIsIDAuMDAyMjYsIDAuMDAyMjgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDU0ODMsIDAuMDA1NDg1LCAwLjAwNTQ4NSwgMC4wMDU0ODYsIDAuMDA1NDg2LCAwLjAwNTQ4NiwgMC4wMDU0ODciKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEMpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwNDM2NDI7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDA0MzMwNjQ7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDA0MzY0MjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDIwMDgsIDAuMDAyMiwgMC4wMDIyNjksIDAuMDAyMjk1LCAwLjAwMjMwOSwgMC4wMDIzMTcsIDAuMDAyMzIxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyNjY1LCAwLjAwMjY2NiwgMC4wMDI2NjcsIDAuMDAyNjY3LCAwLjAwMjY2NywgMC4wMDI2NjcsIDAuMDAyNjY3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihEKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDQzNjMyNjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDQzNjI4ODsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDQzNjMyNjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA1NjQsIDAuMDAwNTY1LCAwLjAwMDU2NSwgMC4wMDA1NjUsIDAuMDAwNTY1LCAwLjAwMDU2NSwgMC4wMDA1NjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDIwNzEsIDAuMDAyMDcxLCAwLjAwMjA3MiwgMC4wMDIwNzEsIDAuMDAyMDcyLCAwLjAwMjA3LCAwLjAwMjA3MSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjQwMTk4MjsKLSAgICBmdW5jdGlvbiA6ICIoISgoKEErQikrQykrRCkpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3NDY4OCwgMC4yNjQ1NTYsIDAuNDUzNTkyLCAwLjU4ODcyNCwgMC44MDYxNTEsIDAuOTk1MDc1LCAxLjI2NTQ2IiwgXAotICAgICAgICAgICIwLjA4Mjk0NCwgMC4yNzMwNzMsIDAuNDYyODM2LCAwLjU5Nzg3OSwgMC44MTQ1MDIsIDEuMDAzODIsIDEuMjc0OCIsIFwKLSAgICAgICAgICAiMC4wOTE3MDYsIDAuMjgxOTI2LCAwLjQ3MTgwNCwgMC42MDcxMzgsIDAuODIzNDU3LCAxLjAxMzA4LCAxLjI4MzI1IiwgXAotICAgICAgICAgICIwLjA5OTU3OSwgMC4yODk5NDgsIDAuNDc5NDE0LCAwLjYxNDc4NiwgMC44MzE2MzcsIDEuMDIwNjEsIDEuMjkxNzciLCBcCi0gICAgICAgICAgIjAuMTA2ODQ5LCAwLjI5Njk4MSwgMC40ODY3MjUsIDAuNjIyMzAyLCAwLjgzODQ5LCAxLjAyNzgyLCAxLjI5ODU0IiwgXAotICAgICAgICAgICIwLjExNzEzNywgMC4zMDgxMDIsIDAuNDk3NzA5LCAwLjYzMzExMywgMC44NDk3MDYsIDEuMDM5MjgsIDEuMzEwNjgiLCBcCi0gICAgICAgICAgIjAuMTI1MDY4LCAwLjMxNzQwOCwgMC41MDcwMzUsIDAuNjQyNjY2LCAwLjg1OTQ1NywgMS4wNDg1NywgMS4zMTkyMSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwNzc2OSwgMC40ODU0NTcsIDAuODYzNzc4LCAxLjEzMjg5LCAxLjU2ODgxLCAxLjk0NzE0LCAyLjQ4Nzk1IiwgXAotICAgICAgICAgICIwLjEwNzgxNywgMC40ODY0MTQsIDAuODY1Mjg2LCAxLjEzMzYxLCAxLjU2ODM5LCAxLjk0NzA0LCAyLjQ4ODM5IiwgXAotICAgICAgICAgICIwLjEwNzk3OCwgMC40ODU2NTUsIDAuODY1MzIxLCAxLjEzNTc4LCAxLjU2NTQ5LCAxLjk0NzI4LCAyLjQ4MzI4IiwgXAotICAgICAgICAgICIwLjEwODkxNSwgMC40ODU1NDQsIDAuODY1MDY3LCAxLjEzNTU0LCAxLjU2ODU4LCAxLjk0NDI0LCAyLjQ4ODM2IiwgXAotICAgICAgICAgICIwLjExMDM0OSwgMC40ODY0MjYsIDAuODY1MDg0LCAxLjEzNTc0LCAxLjU2ODIyLCAxLjk0Njc4LCAyLjQ4MzI3IiwgXAotICAgICAgICAgICIwLjExMzYxNSwgMC40ODczNTUsIDAuODY1MDIsIDEuMTM1NDYsIDEuNTY4MywgMS45NDcwOCwgMi40ODg3MyIsIFwKLSAgICAgICAgICAiMC4xMTczOTEsIDAuNDg4NzQsIDAuODYzODM0LCAxLjEzNTYyLCAxLjU2ODU1LCAxLjk0Njk3LCAyLjQ4NzkzIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDIxNzI1LCAwLjA3NTUzMywgMC4xMjY5NzcsIDAuMTYzNDQ4LCAwLjIyMTY4NiwgMC4yNzI1NTksIDAuMzQ1MTQ4IiwgXAotICAgICAgICAgICIwLjAzMjIwMywgMC4wODU1OTgsIDAuMTM3MDIyLCAwLjE3MzUxNywgMC4yMzE3MzMsIDAuMjgyNTk3LCAwLjM1NTE3OSIsIFwKLSAgICAgICAgICAiMC4wNDU1MjMsIDAuMDk4Mzc1LCAwLjE0OTc0LCAwLjE4NjI3NiwgMC4yNDQ0OTksIDAuMjk1Mzc1LCAwLjM2NzkyOCIsIFwKLSAgICAgICAgICAiMC4wNTcwNywgMC4xMTE2ODgsIDAuMTYzMDU4LCAwLjE5OTU0NywgMC4yNTc3NSwgMC4zMDg1NTQsIDAuMzgxMTYyIiwgXAotICAgICAgICAgICIwLjA2NjQ1NywgMC4xMjQ1OTIsIDAuMTc1MzEzLCAwLjIxMTc4NywgMC4yNjk5OCwgMC4zMjEwNSwgMC4zOTM1MiIsIFwKLSAgICAgICAgICAiMC4wNzk5OTgsIDAuMTQ1ODcxLCAwLjE5NzA4LCAwLjIzMzQ0NSwgMC4yOTE2MjksIDAuMzQyNDY0LCAwLjQxNDM0MiIsIFwKLSAgICAgICAgICAiMC4wOTA0MTEsIDAuMTYzNjkyLCAwLjIxNTI0OSwgMC4yNTE1NDQsIDAuMzA4NjA3LCAwLjM1OTQ1MiwgMC40MzIwMjYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzU2MjYsIDAuMTM4MjQ4LCAwLjI0MDE1NCwgMC4zMTMwMTIsIDAuNDI5NTA0LCAwLjUzMTgzOSwgMC42NzcyMDYiLCBcCi0gICAgICAgICAgIjAuMDM3NDA5LCAwLjEzODA2NCwgMC4yNDAyMzcsIDAuMzEyOTg4LCAwLjQyOTc4NCwgMC41MzE3OTEsIDAuNjc3MzIyIiwgXAotICAgICAgICAgICIwLjA0Mzk2NSwgMC4xMzkzNzgsIDAuMjQwMTYzLCAwLjMxMzEwNCwgMC40Mjk3MzksIDAuNTMxNTkzLCAwLjY3NzQ4NiIsIFwKLSAgICAgICAgICAiMC4wNTI0NzIsIDAuMTQzMzMsIDAuMjQxNDMzLCAwLjMxMzEzMSwgMC40Mjk1MjUsIDAuNTMxNTU2LCAwLjY3NzMyNiIsIFwKLSAgICAgICAgICAiMC4wNjE2MiwgMC4xNDg5NjgsIDAuMjQ0ODg0LCAwLjMxNTEyLCAwLjQyOTcyNSwgMC41MzE3NzcsIDAuNjc3MjU0IiwgXAotICAgICAgICAgICIwLjA3NDc0OSwgMC4xNTk0OTQsIDAuMjUxNzI2LCAwLjMyMDM3LCAwLjQzMjY2NywgMC41MzI2NTQsIDAuNjc3MjM5IiwgXAotICAgICAgICAgICIwLjA4NTQ1NCwgMC4xNzA2NDUsIDAuMjYwMTQ1LCAwLjMyNzE4NSwgMC40MzgwNzEsIDAuNTM2MTU1LCAwLjY3ODkyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDcwNTEzLCAwLjI2MDI5NywgMC40NDk1NTMsIDAuNTg1MDc0LCAwLjgwMTQ3NiwgMC45OTEyODcsIDEuMjYxNDQiLCBcCi0gICAgICAgICAgIjAuMDc4NjU4LCAwLjI2ODc5LCAwLjQ1ODU2MSwgMC41OTM1ODMsIDAuODEwMjI1LCAwLjk5OTcyOCwgMS4yNzA2MiIsIFwKLSAgICAgICAgICAiMC4wODc4MTQsIDAuMjc4MDQzLCAwLjQ2NzYxNCwgMC42MDMxNTIsIDAuODE5NzIxLCAxLjAwOTQyLCAxLjI3OTg3IiwgXAotICAgICAgICAgICIwLjA5NjMzMywgMC4yODY1MiwgMC40NzYxOTIsIDAuNjExNTQzLCAwLjgyODM5MSwgMS4wMTc1MSwgMS4yODgyNiIsIFwKLSAgICAgICAgICAiMC4xMDQ0MDMsIDAuMjk0NjM3LCAwLjQ4NDMxLCAwLjYxOTkzOCwgMC44MzYwODYsIDEuMDI1NTksIDEuMjk2MDMiLCBcCi0gICAgICAgICAgIjAuMTE1ODY4LCAwLjMwNzM0MiwgMC40OTcxMTUsIDAuNjMyNDYyLCAwLjg0ODk4OCwgMS4wMzg1LCAxLjMwOTE1IiwgXAotICAgICAgICAgICIwLjEyNTE2NSwgMC4zMTg2MzEsIDAuNTA4NDQxLCAwLjY0Mzg1LCAwLjg2MDI0NCwgMS4wNTAzNSwgMS4zMjAzNCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwNzc3OSwgMC40ODU1NzcsIDAuODY0OTcxLCAxLjEzNTY2LCAxLjU2NTUsIDEuOTQ3NDcsIDIuNDgyNjEiLCBcCi0gICAgICAgICAgIjAuMTA3OTc0LCAwLjQ4NjQxNSwgMC44NjUyOTYsIDEuMTMzNzYsIDEuNTY4NCwgMS45NDcyMiwgMi40ODg0NyIsIFwKLSAgICAgICAgICAiMC4xMDgyODEsIDAuNDg2NDE2LCAwLjg2NTA0NiwgMS4xMzU2OSwgMS41Njg0OSwgMS45NDc0OCwgMi40ODI3NSIsIFwKLSAgICAgICAgICAiMC4xMDk4OTUsIDAuNDg2Mzk4LCAwLjg2NTA3NiwgMS4xMzU1MywgMS41Njg1NiwgMS45NDM3NCwgMi40ODgxMyIsIFwKLSAgICAgICAgICAiMC4xMTIxNzIsIDAuNDg1Njk5LCAwLjg2NTAxNywgMS4xMzU3LCAxLjU2NjYzLCAxLjk0NDQ3LCAyLjQ4MzczIiwgXAotICAgICAgICAgICIwLjExNzQyNSwgMC40ODY5NjIsIDAuODY1MDc2LCAxLjEzMzU1LCAxLjU2NTQ4LCAxLjk0NjkxLCAyLjQ4NzkiLCBcCi0gICAgICAgICAgIjAuMTIzNDg1LCAwLjQ4OTEwNywgMC44NjU1MzQsIDEuMTM1NTYsIDEuNTY1ODcsIDEuOTQ3NDMsIDIuNDg3ODIiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjEyNDIsIDAuMDczNzMyLCAwLjEyNDk4NSwgMC4xNjE0NzUsIDAuMjE5Nzc4LCAwLjI3MDc4NiwgMC4zNDM1MjciLCBcCi0gICAgICAgICAgIjAuMDMxNTk3LCAwLjA4NDA1OSwgMC4xMzUyOTIsIDAuMTcxODExLCAwLjIzMDEyMywgMC4yODEwODgsIDAuMzUzOTAzIiwgXAotICAgICAgICAgICIwLjA0NDQ0NywgMC4wOTY2NDQsIDAuMTQ3ODU1LCAwLjE4NDM4MiwgMC4yNDI2OSwgMC4yOTM3MTksIDAuMzY2NDUyIiwgXAotICAgICAgICAgICIwLjA1NTMyOSwgMC4xMDk4NjYsIDAuMTYwNjUsIDAuMTk3MTMsIDAuMjU1NjEsIDAuMzA2NTAyLCAwLjM3OTI1NyIsIFwKLSAgICAgICAgICAiMC4wNjM5MzYsIDAuMTIyOTA2LCAwLjE3NDIzMywgMC4yMDk4NTYsIDAuMjY4NDY2LCAwLjMxOTM2NywgMC4zOTIwNTIiLCBcCi0gICAgICAgICAgIjAuMDc2OTk2LCAwLjE0NDE0NywgMC4xOTQ3OSwgMC4yMzExOTksIDAuMjg5NTE4LCAwLjM0MDQ2OCwgMC40MTI1MDciLCBcCi0gICAgICAgICAgIjAuMDg2MTQzLCAwLjE2MTUzNywgMC4yMTMxMDMsIDAuMjQ5NDI5LCAwLjMwNjcwMiwgMC4zNTc2ODEsIDAuNDMwNDUzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDMyNzkyLCAwLjEzNTEwNSwgMC4yMzc0NDMsIDAuMzEwNTgxLCAwLjQyNzYwNywgMC41MzAxMjgsIDAuNjc2MzM3IiwgXAotICAgICAgICAgICIwLjAzNDYwMiwgMC4xMzUxMTQsIDAuMjM3NDcsIDAuMzEwNjc0LCAwLjQyNzYyNywgMC41MzAwODcsIDAuNjc2MjY1IiwgXAotICAgICAgICAgICIwLjA0MTQ1NywgMC4xMzY1MDcsIDAuMjM3NDIzLCAwLjMxMDc5NiwgMC40Mjc4MjUsIDAuNTMwMDA2LCAwLjY3NjUzNCIsIFwKLSAgICAgICAgICAiMC4wNTAwNDcsIDAuMTQwNjM3LCAwLjIzODk2OCwgMC4zMTEwNDEsIDAuNDI3NTk5LCAwLjUzMDAyMSwgMC42NzYyNTkiLCBcCi0gICAgICAgICAgIjAuMDU5MzkyLCAwLjE0NjMzLCAwLjI0MjAxNiwgMC4zMTMwNjQsIDAuNDI3OTksIDAuNTMwMjE1LCAwLjY3NjI2NSIsIFwKLSAgICAgICAgICAiMC4wNzE1OTksIDAuMTU2OTg2LCAwLjI0OTc2MSwgMC4zMTg0MzQsIDAuNDMwOTU5LCAwLjUzMTI2NCwgMC42NzYzMTUiLCBcCi0gICAgICAgICAgIjAuMDgzMDQ2LCAwLjE2ODU3MSwgMC4yNTgxMTUsIDAuMzI1MTcsIDAuNDM2NDA3LCAwLjUzNDczNywgMC42Nzc5NDYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjE3NjUsIDAuMjUxNDQ1LCAwLjQ0MTA5MSwgMC41NzU4NDYsIDAuNzkzMTA2LCAwLjk4MjA4MiwgMS4yNTM1MiIsIFwKLSAgICAgICAgICAiMC4wNjk2MywgMC4yNTk4NTgsIDAuNDQ5Mjg3LCAwLjU4NDkwNSwgMC44MDEyNDQsIDAuOTkxMTU0LCAxLjI2MTE1IiwgXAotICAgICAgICAgICIwLjA3OTIyMywgMC4yNjk0NzIsIDAuNDU5MDE2LCAwLjU5NDQxNSwgMC44MTEzNDQsIDEuMDAwMDgsIDEuMjcxNjciLCBcCi0gICAgICAgICAgIjAuMDg4ODIyLCAwLjI3OTE1NywgMC40Njg3MDYsIDAuNjA0MDc3LCAwLjgyMDUwMSwgMS4wMTA5MSwgMS4yODA0IiwgXAotICAgICAgICAgICIwLjA5ODE4NywgMC4yODg1NiwgMC40NzgyMjMsIDAuNjEzNzQ0LCAwLjgzMDE4OCwgMS4wMjAxNiwgMS4yOTAxMyIsIFwKLSAgICAgICAgICAiMC4xMTE1NTMsIDAuMzA0MTM1LCAwLjQ5MzYzMiwgMC42MjkwMDUsIDAuODQ1ODU1LCAxLjAzNTQ3LCAxLjMwNTYyIiwgXAotICAgICAgICAgICIwLjEyMjA0MSwgMC4zMTczOTEsIDAuNTA3Mzc4LCAwLjY0MjcwNiwgMC44NTkyOTMsIDEuMDQ4NywgMS4zMTkzNCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwNzkyMiwgMC40ODU4MjgsIDAuODY1MjU5LCAxLjEzMjY3LCAxLjU2ODcyLCAxLjk0NzEsIDIuNDg4ODYiLCBcCi0gICAgICAgICAgIjAuMTA3ODQ2LCAwLjQ4NjUsIDAuODYzNDQ1LCAxLjEzNTgxLCAxLjU2NTIxLCAxLjk0NzYyLCAyLjQ4ODA4IiwgXAotICAgICAgICAgICIwLjEwODgzMywgMC40ODY0MTYsIDAuODY1MDE4LCAxLjEzNTUzLCAxLjU2ODY2LCAxLjk0NDAxLCAyLjQ4NTYiLCBcCi0gICAgICAgICAgIjAuMTExNzIsIDAuNDg2NDcsIDAuODYzOTQ4LCAxLjEzNTQ5LCAxLjU2NTY5LCAxLjk0MzI5LCAyLjQ4NzcxIiwgXAotICAgICAgICAgICIwLjExNjA0NCwgMC40ODU4MTQsIDAuODYzNjE3LCAxLjEzMzQ5LCAxLjU2ODI5LCAxLjk0NzQ0LCAyLjQ4NDE3IiwgXAotICAgICAgICAgICIwLjEyNTA3MiwgMC40ODc0OTgsIDAuODY1MDE2LCAxLjEzNTQ0LCAxLjU2NTY1LCAxLjk0NzMsIDIuNDg3ODIiLCBcCi0gICAgICAgICAgIjAuMTM0MTg1LCAwLjQ5MDQyNSwgMC44NjM2LCAxLjEzNDQzLCAxLjU2NTgsIDEuOTQ2NzQsIDIuNDg3NzYiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTk1NjUsIDAuMDcxMDI4LCAwLjEyMjA3LCAwLjE1ODU2MywgMC4yMTY3ODgsIDAuMjY3ODE3LCAwLjM0MDY1NSIsIFwKLSAgICAgICAgICAiMC4wMjk5MjcsIDAuMDgxMjk4LCAwLjEzMjM3MSwgMC4xNjg4MDQsIDAuMjI3MDU5LCAwLjI3ODAxMSwgMC4zNTA4NjMiLCBcCi0gICAgICAgICAgIjAuMDQyMjMzLCAwLjA5NDA3MSwgMC4xNDUxNSwgMC4xODE2OCwgMC4yMzk4ODcsIDAuMjkwODQ4LCAwLjM2Mjk4NSIsIFwKLSAgICAgICAgICAiMC4wNTIwOTYsIDAuMTA3MjM3LCAwLjE1Nzg2LCAwLjE5NDYyNiwgMC4yNTI4MTUsIDAuMzAzNzE5LCAwLjM3NjM3OCIsIFwKLSAgICAgICAgICAiMC4wNjA2NzYsIDAuMTIwNDAyLCAwLjE3MTUyMSwgMC4yMDc5MzcsIDAuMjY1Nzc4LCAwLjMxNzE2NCwgMC4zODk4NTUiLCBcCi0gICAgICAgICAgIjAuMDcyMTc5LCAwLjE0MTEyNywgMC4xOTIzOTMsIDAuMjI4ODA1LCAwLjI4Njk4NiwgMC4zMzcxMDksIDAuNDA5NzM4IiwgXAotICAgICAgICAgICIwLjA4MDc0NywgMC4xNTg5MywgMC4yMTA3MjYsIDAuMjQ3MDAxLCAwLjMwNTE2OSwgMC4zNTYxOTMsIDAuNDI3ODA5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDI5MjUzLCAwLjEzMTYxNiwgMC4yMzQwODYsIDAuMzA3MzM3LCAwLjQyNDI3MSwgMC41MjY4MzYsIDAuNjczMTkiLCBcCi0gICAgICAgICAgIjAuMDMxNTEzLCAwLjEzMTYxNiwgMC4yMzQxNjEsIDAuMzA3MjY2LCAwLjQyNDQ0OCwgMC41MjY4NzYsIDAuNjczMDAzIiwgXAotICAgICAgICAgICIwLjAzODk1OSwgMC4xMzMzNTksIDAuMjM0MDg1LCAwLjMwNzI0MSwgMC40MjQzMTcsIDAuNTI2NjY2LCAwLjY3Mjk5NiIsIFwKLSAgICAgICAgICAiMC4wNDgyMTQsIDAuMTM3NjY5LCAwLjIzNTc3NSwgMC4zMDc1MywgMC40MjQzODgsIDAuNTI2NzgzLCAwLjY3Mjk3OSIsIFwKLSAgICAgICAgICAiMC4wNTY0MjYsIDAuMTQzMzYzLCAwLjIzODg4NiwgMC4zMDk0MjEsIDAuNDI0NTg3LCAwLjUyNjgyOSwgMC42NzI5NjkiLCBcCi0gICAgICAgICAgIjAuMDY5MTY3LCAwLjE1NTA3NiwgMC4yNDY1NTEsIDAuMzE1MTk2LCAwLjQyNzY3MywgMC41MjgxNTUsIDAuNjczMDQ0IiwgXAotICAgICAgICAgICIwLjA4MDAzOCwgMC4xNjU5MTMsIDAuMjU1MjQ2LCAwLjMyMjE2OSwgMC40MzI1NjEsIDAuNTMxMjUyLCAwLjY3NDY5NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJEIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0NzI4NywgMC4yMzcxMjUsIDAuNDI2NTgyLCAwLjU2MjI4MywgMC43NzgyNzgsIDAuOTY3OTc0LCAxLjIzODQ4IiwgXAotICAgICAgICAgICIwLjA1NDkxNCwgMC4yNDUyOTYsIDAuNDM1MDI1LCAwLjU3MDM4OSwgMC43ODY1NzQsIDAuOTc1OTQxLCAxLjI0NjM2IiwgXAotICAgICAgICAgICIwLjA2NTE3OSwgMC4yNTU1NzIsIDAuNDQ1MTI4LCAwLjU4MDU5OSwgMC43OTc3NzYsIDAuOTg2NDM0LCAxLjI1Nzc5IiwgXAotICAgICAgICAgICIwLjA3NjAzNywgMC4yNjU3MjIsIDAuNDU1MzI2LCAwLjU5MDgzOSwgMC44MDY4MjMsIDAuOTk2MjE1LCAxLjI2ODExIiwgXAotICAgICAgICAgICIwLjA4NjU1OSwgMC4yNzU2NTksIDAuNDY1MzYzLCAwLjYwMDc1NSwgMC44MTc0MjYsIDEuMDA2NjUsIDEuMjc2NjkiLCBcCi0gICAgICAgICAgIjAuMTAxNTQ1LCAwLjI5Mjc3MSwgMC40ODE3MDgsIDAuNjE3NzAyLCAwLjgzNDEzMiwgMS4wMjM1OCwgMS4yOTQxMSIsIFwKLSAgICAgICAgICAiMC4xMTE5NTMsIDAuMzA3MjI2LCAwLjQ5Njc5NSwgMC42MzIyNjQsIDAuODQ4NzUsIDEuMDM4NzQsIDEuMzA4NTQiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDYwNjksIDAuNDg2NDA4LCAwLjg2NTA3MiwgMS4xMzQ1OSwgMS41NjU1OSwgMS45NDcyNiwgMi40ODgxNyIsIFwKLSAgICAgICAgICAiMC4xMDUxMTIsIDAuNDg1NjQ2LCAwLjg2NTE2OCwgMS4xMzU2NywgMS41NjY2OSwgMS45NDY4MSwgMi40ODQxMiIsIFwKLSAgICAgICAgICAiMC4xMDg5NTYsIDAuNDg2NDA4LCAwLjg2NDk5NCwgMS4xMzU1NSwgMS41NjU0NSwgMS45NDY5MSwgMi40ODg1NiIsIFwKLSAgICAgICAgICAiMC4xMTUzMjcsIDAuNDg1OTEzLCAwLjg2NSwgMS4xMzU1OCwgMS41NjUxMywgMS45NDM4MiwgMi40ODg2MSIsIFwKLSAgICAgICAgICAiMC4xMjMyMTEsIDAuNDg1MTYsIDAuODYzNTMsIDEuMTM1NDUsIDEuNTY4MzEsIDEuOTQ2ODMsIDIuNDgzOTIiLCBcCi0gICAgICAgICAgIjAuMTM1NDg2LCAwLjQ4OTA5MywgMC44NjQ2OTQsIDEuMTMzMzQsIDEuNTY4MiwgMS45NDQ2NSwgMi40ODU4MyIsIFwKLSAgICAgICAgICAiMC4xNDgwODUsIDAuNDkzNzM4LCAwLjg2NTE3NCwgMS4xMzU2LCAxLjU2ODMyLCAxLjk0NzU1LCAyLjQ4NTM5Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE2NzIsIDAuMDY3NjUxLCAwLjExODQ4LCAwLjE1NDgxMSwgMC4yMTI4NjMsIDAuMjYzNzEyLCAwLjMzNjMxNiIsIFwKLSAgICAgICAgICAiMC4wMjcxMDcsIDAuMDc4MjAyLCAwLjEyOTAzOSwgMC4xNjUzMjMsIDAuMjIzNDQ0LCAwLjI3NDM4LCAwLjM0NjgyIiwgXAotICAgICAgICAgICIwLjAzODQ4NCwgMC4wOTA4MTgsIDAuMTQxNjg1LCAwLjE3ODAyMiwgMC4yMzYwOTUsIDAuMjg2OTUzLCAwLjM1OTU1NyIsIFwKLSAgICAgICAgICAiMC4wNDczODgsIDAuMTA0MTA2LCAwLjE1NDUwNiwgMC4xOTEyMywgMC4yNDkzMzIsIDAuMzAwMjA0LCAwLjM3MjQ1NyIsIFwKLSAgICAgICAgICAiMC4wNTQ3MjgsIDAuMTE3MTIzLCAwLjE2Nzg5MSwgMC4yMDQyMzYsIDAuMjYyMzE2LCAwLjMxMjcxOCwgMC4zODUyMDUiLCBcCi0gICAgICAgICAgIjAuMDY0OTUsIDAuMTM4MjA1LCAwLjE4ODg1MSwgMC4yMjUxMjEsIDAuMjgxOTU5LCAwLjMzMjc2OCwgMC40MDU3MzgiLCBcCi0gICAgICAgICAgIjAuMDcyNTk0LCAwLjE1NTI3NiwgMC4yMDcyMTYsIDAuMjQzNDIxLCAwLjMwMTM4OCwgMC4zNTExMDksIDAuNDIzNjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjU1NzQsIDAuMTI4MTA0LCAwLjIzMDY1MSwgMC4zMDI5MzksIDAuNDIxMTIxLCAwLjUyMjYyNiwgMC42Njk5ODUiLCBcCi0gICAgICAgICAgIjAuMDI4NTMzLCAwLjEyNzc3MiwgMC4yMjk5OSwgMC4zMDM4NTcsIDAuNDIwMzg5LCAwLjUyMjM4OCwgMC42Njk5OTYiLCBcCi0gICAgICAgICAgIjAuMDM3MDE1LCAwLjEyOTk5NSwgMC4yMzA2NSwgMC4zMDMxNjgsIDAuNDIxMDI0LCAwLjUyMjE3OCwgMC42NjgxMDgiLCBcCi0gICAgICAgICAgIjAuMDQ2MjQsIDAuMTM0MTMxLCAwLjIzMjQyNiwgMC4zMDQxOTMsIDAuNDIxMDYsIDAuNTIyMzA0LCAwLjY2Nzk1OCIsIFwKLSAgICAgICAgICAiMC4wNTUzNTUsIDAuMTQwMzE0LCAwLjIzNTY1NiwgMC4zMDYzMjcsIDAuNDIwNTM3LCAwLjUyMzY1NSwgMC42Njk2MDUiLCBcCi0gICAgICAgICAgIjAuMDY3NjE5LCAwLjE1MTY1MywgMC4yNDMyMjEsIDAuMzExNTksIDAuNDI0NzMzLCAwLjUyNTAzMywgMC42NjgyMDUiLCBcCi0gICAgICAgICAgIjAuMDc4NDczLCAwLjE2MzE4NywgMC4yNTE4NiwgMC4zMTg3MTksIDAuNDI4NjIxLCAwLjUyODY4NywgMC42NzEyOSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDIwOTc2LCAwLjAyMTAzNSwgMC4wMjEwNDMsIDAuMDIxMDQ1LCAwLjAyMTA0NywgMC4wMjEwNDgsIDAuMDIxMDUxIiwgXAotICAgICAgICAgICIwLjAyMDc5OCwgMC4wMjA5NzEsIDAuMDIxMDA1LCAwLjAyMTAyMiwgMC4wMjEwMjYsIDAuMDIxMDMzLCAwLjAyMTAzNSIsIFwKLSAgICAgICAgICAiMC4wMjA3MTIsIDAuMDIwOTA5LCAwLjAyMDk2MywgMC4wMjA5ODIsIDAuMDIxMDAxLCAwLjAyMTAxMSwgMC4wMjEwMTciLCBcCi0gICAgICAgICAgIjAuMDIwNjcxLCAwLjAyMDg2MSwgMC4wMjA5MjcsIDAuMDIwOTYyLCAwLjAyMDk3NywgMC4wMjA5OSwgMC4wMjEwMTIiLCBcCi0gICAgICAgICAgIjAuMDIwNjQ3LCAwLjAyMDgyNCwgMC4wMjA4OTcsIDAuMDIwOTE5LCAwLjAyMDk1NiwgMC4wMjA5NzMsIDAuMDIwOTcyIiwgXAotICAgICAgICAgICIwLjAyMDYyOSwgMC4wMjA3ODMsIDAuMDIwODYzLCAwLjAyMDg5NiwgMC4wMjA5MjUsIDAuMDIwOTQ1LCAwLjAyMDk3NSIsIFwKLSAgICAgICAgICAiMC4wMjA2MiwgMC4wMjA3NTUsIDAuMDIwODI1LCAwLjAyMDg2MSwgMC4wMjA5MDQsIDAuMDIwOTI3LCAwLjAyMDk0NiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2MTQ5LCAwLjAwNjE0OCwgMC4wMDYxNDcsIDAuMDA2MTQ4LCAwLjAwNjE0OCwgMC4wMDYxNDYsIDAuMDA2MTQ2IiwgXAotICAgICAgICAgICIwLjAwNTkzNCwgMC4wMDU5NTIsIDAuMDA1OTU1LCAwLjAwNTk1NCwgMC4wMDU5NTYsIDAuMDA1OTU3LCAwLjAwNTk1NiIsIFwKLSAgICAgICAgICAiMC4wMDU4NTksIDAuMDA1ODksIDAuMDA1ODk1LCAwLjAwNTkwNCwgMC4wMDU5MDgsIDAuMDA1OTA4LCAwLjAwNTkxIiwgXAotICAgICAgICAgICIwLjAwNTg1MiwgMC4wMDU4NzcsIDAuMDA1ODg3LCAwLjAwNTg5MiwgMC4wMDU4OTYsIDAuMDA1ODk3LCAwLjAwNTg5OCIsIFwKLSAgICAgICAgICAiMC4wMDU4OTcsIDAuMDA1ODk3LCAwLjAwNTg4MywgMC4wMDU4ODcsIDAuMDA1ODg5LCAwLjAwNTg5MiwgMC4wMDU4ODgiLCBcCi0gICAgICAgICAgIjAuMDA2MDA0LCAwLjAwNTkxLCAwLjAwNTksIDAuMDA1ODk5LCAwLjAwNTg5NSwgMC4wMDU4OTYsIDAuMDA1ODc4IiwgXAotICAgICAgICAgICIwLjAwNjA4OCwgMC4wMDU5NTIsIDAuMDA1OTI2LCAwLjAwNTkxNywgMC4wMDU4ODksIDAuMDA1ODg4LCAwLjAwNTg4NSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE4MDIzLCAwLjAxODA4MSwgMC4wMTgwODksIDAuMDE4MDkyLCAwLjAxODA5NiwgMC4wMTgwOTQsIDAuMDE4MDk1IiwgXAotICAgICAgICAgICIwLjAxNzg0MiwgMC4wMTgwMTgsIDAuMDE4MDUyLCAwLjAxODA2LCAwLjAxODA3MywgMC4wMTgwODEsIDAuMDE4MDgyIiwgXAotICAgICAgICAgICIwLjAxNzc1NywgMC4wMTc5NTQsIDAuMDE4MDA4LCAwLjAxODAyNSwgMC4wMTgwNDUsIDAuMDE4MDU2LCAwLjAxODA2MSIsIFwKLSAgICAgICAgICAiMC4wMTc3MTYsIDAuMDE3OTA2LCAwLjAxNzk3MywgMC4wMTc5OTgsIDAuMDE4MDIyLCAwLjAxODAzNiwgMC4wMTgwNDgiLCBcCi0gICAgICAgICAgIjAuMDE3NjkyLCAwLjAxNzg2OCwgMC4wMTc5NDMsIDAuMDE3OTcxLCAwLjAxNzk5NiwgMC4wMTgwMTcsIDAuMDE4MDMyIiwgXAotICAgICAgICAgICIwLjAxNzY3MywgMC4wMTc4MjYsIDAuMDE3OTAzLCAwLjAxNzkzNywgMC4wMTc5NzQsIDAuMDE3OTk1LCAwLjAxODAxNiIsIFwKLSAgICAgICAgICAiMC4wMTc2NjgsIDAuMDE3OCwgMC4wMTc4NzcsIDAuMDE3OTA5LCAwLjAxNzk0NSwgMC4wMTc5NywgMC4wMTc5OTEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDM2NiwgMC4wMDQzNzEsIDAuMDA0MzcyLCAwLjAwNDM3MiwgMC4wMDQzNzIsIDAuMDA0MzcxLCAwLjAwNDM3IiwgXAotICAgICAgICAgICIwLjAwNDE5MywgMC4wMDQyNjEsIDAuMDA0MjcyLCAwLjAwNDI3NiwgMC4wMDQyNzksIDAuMDA0MjgsIDAuMDA0MjgxIiwgXAotICAgICAgICAgICIwLjAwNDA3OCwgMC4wMDQxOTUsIDAuMDA0MjE5LCAwLjAwNDIzMiwgMC4wMDQyMzksIDAuMDA0MjQzLCAwLjAwNDI0NiIsIFwKLSAgICAgICAgICAiMC4wMDQwNDksIDAuMDA0MTc5LCAwLjAwNDIsIDAuMDA0MjE0LCAwLjAwNDIyNSwgMC4wMDQyMjksIDAuMDA0MjM0IiwgXAotICAgICAgICAgICIwLjAwNDEwOSwgMC4wMDQxNzcsIDAuMDA0MjA1LCAwLjAwNDIxMywgMC4wMDQyMjcsIDAuMDA0MjI4LCAwLjAwNDIzIiwgXAotICAgICAgICAgICIwLjAwNDExNywgMC4wMDQxNjcsIDAuMDA0MTgyLCAwLjAwNDE5NiwgMC4wMDQyMDgsIDAuMDA0MjE1LCAwLjAwNDIxMyIsIFwKLSAgICAgICAgICAiMC4wMDQyOTksIDAuMDA0MjI2LCAwLjAwNDIyOCwgMC4wMDQyMywgMC4wMDQyMTksIDAuMDA0MjI1LCAwLjAwNDIyOSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE1MTg5LCAwLjAxNTI0OSwgMC4wMTUyNTcsIDAuMDE1MjU5LCAwLjAxNTI2MSwgMC4wMTUyNjIsIDAuMDE1MjYzIiwgXAotICAgICAgICAgICIwLjAxNTAwOCwgMC4wMTUxODMsIDAuMDE1MjE3LCAwLjAxNTIyOCwgMC4wMTUyMzYsIDAuMDE1MjQ2LCAwLjAxNTI0OCIsIFwKLSAgICAgICAgICAiMC4wMTQ5MjEsIDAuMDE1MTE5LCAwLjAxNTE3NCwgMC4wMTUxOTgsIDAuMDE1MjEyLCAwLjAxNTIyMSwgMC4wMTUyMyIsIFwKLSAgICAgICAgICAiMC4wMTQ4ODIsIDAuMDE1MDcxLCAwLjAxNTEzNywgMC4wMTUxNjMsIDAuMDE1MTk1LCAwLjAxNTIwMSwgMC4wMTUyMTQiLCBcCi0gICAgICAgICAgIjAuMDE0ODU4LCAwLjAxNTAzNSwgMC4wMTUxMDksIDAuMDE1MTM4LCAwLjAxNTE2OCwgMC4wMTUxODMsIDAuMDE1MjAyIiwgXAotICAgICAgICAgICIwLjAxNDg1OSwgMC4wMTQ5OTYsIDAuMDE1MDcxLCAwLjAxNTEwNCwgMC4wMTUxNDEsIDAuMDE1MTU5LCAwLjAxNTE3OCIsIFwKLSAgICAgICAgICAiMC4wMTQ4NjcsIDAuMDE0OTc2LCAwLjAxNTA0OCwgMC4wMTUwODIsIDAuMDE1MTEyLCAwLjAxNTEzNiwgMC4wMTUxNTciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjMzNywgMC4wMDIzNjIsIDAuMDAyMzY2LCAwLjAwMjM2NywgMC4wMDIzNjcsIDAuMDAyMzY4LCAwLjAwMjM2OCIsIFwKLSAgICAgICAgICAiMC4wMDIyMzgsIDAuMDAyNDAxLCAwLjAwMjQyOCwgMC4wMDI0MzYsIDAuMDAyNDQ0LCAwLjAwMjQ0NywgMC4wMDI0NTEiLCBcCi0gICAgICAgICAgIjAuMDAyMTMyLCAwLjAwMjM2NSwgMC4wMDI0MTQsIDAuMDAyNDMyLCAwLjAwMjQ0NywgMC4wMDI0NTUsIDAuMDAyNDY2IiwgXAotICAgICAgICAgICIwLjAwMjEzLCAwLjAwMjM1MywgMC4wMDI0MDIsIDAuMDAyNDIxLCAwLjAwMjQ0LCAwLjAwMjQ0OCwgMC4wMDI0NTkiLCBcCi0gICAgICAgICAgIjAuMDAyMDg0LCAwLjAwMjMyOSwgMC4wMDIzOTMsIDAuMDAyNDE1LCAwLjAwMjQzMywgMC4wMDI0NDEsIDAuMDAyNDUzIiwgXAotICAgICAgICAgICIwLjAwMjEzMiwgMC4wMDIzODQsIDAuMDAyMzk0LCAwLjAwMjQxNiwgMC4wMDI0MzYsIDAuMDAyNDYsIDAuMDAyNDY2IiwgXAotICAgICAgICAgICIwLjAwMjI2NiwgMC4wMDIzMjEsIDAuMDAyMzc4LCAwLjAwMjQwMSwgMC4wMDI0NTYsIDAuMDAyNDYzLCAwLjAwMjQ0MyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkQiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEyMTQ4LCAwLjAxMjI0NCwgMC4wMTIyNTYsIDAuMDEyMjU5LCAwLjAxMjI2MywgMC4wMTIyNjYsIDAuMDEyMjY4IiwgXAotICAgICAgICAgICIwLjAxMTkwMSwgMC4wMTIxNDcsIDAuMDEyMTk5LCAwLjAxMjIxNywgMC4wMTIyMywgMC4wMTIyMzQsIDAuMDEyMjQ5IiwgXAotICAgICAgICAgICIwLjAxMTgxNCwgMC4wMTIwNjIsIDAuMDEyMTM4LCAwLjAxMjE2NiwgMC4wMTIxOTIsIDAuMDEyMjA2LCAwLjAxMjIxOSIsIFwKLSAgICAgICAgICAiMC4wMTE4MzgsIDAuMDEyMDEzLCAwLjAxMjA5OCwgMC4wMTIxMywgMC4wMTIxNjMsIDAuMDEyMTgyLCAwLjAxMjE5OCIsIFwKLSAgICAgICAgICAiMC4wMTE5MzMsIDAuMDExOTk3LCAwLjAxMjA3NCwgMC4wMTIxMDgsIDAuMDEyMTM3LCAwLjAxMjE2NCwgMC4wMTIxODIiLCBcCi0gICAgICAgICAgIjAuMDEyMDg1LCAwLjAxMjAxLCAwLjAxMjA1MSwgMC4wMTIwOTMsIDAuMDEyMTI3LCAwLjAxMjE0NiwgMC4wMTIxNjgiLCBcCi0gICAgICAgICAgIjAuMDEyMjAxLCAwLjAxMjAxMywgMC4wMTIwNDYsIDAuMDEyMDczLCAwLjAxMjEwNiwgMC4wMTIxMjcsIDAuMDEyMTUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDIwMSwgMC4wMDAzMjYsIDAuMDAwMzQsIDAuMDAwMzQ1LCAwLjAwMDM0OSwgMC4wMDAzNTEsIDAuMDAwMzUzIiwgXAotICAgICAgICAgICIwLjAwMDA4LCAwLjAwMDQxMywgMC4wMDA0NjQsIDAuMDAwNDgsIDAuMDAwNDk1LCAwLjAwMDUwMiwgMC4wMDA1MDkiLCBcCi0gICAgICAgICAgIjAuMDAwMDM1LCAwLjAwMDM4LCAwLjAwMDQ2NywgMC4wMDA0OTUsIDAuMDAwNTIxLCAwLjAwMDUzNSwgMC4wMDA1NDYiLCBcCi0gICAgICAgICAgIjAuMDAwMDYxLCAwLjAwMDM0NSwgMC4wMDA0NDYsIDAuMDAwNDc4LCAwLjAwMDUwOSwgMC4wMDA1MjcsIDAuMDAwNTQ4IiwgXAotICAgICAgICAgICIwLjAwMDAwMiwgMC4wMDAzMzEsIDAuMDAwNDI2LCAwLjAwMDQ2NCwgMC4wMDA1MDEsIDAuMDAwNTI2LCAwLjAwMDU0NSIsIFwKLSAgICAgICAgICAiMC4wMDAwMDEsIDAuMDAwMzUzLCAwLjAwMDQyMiwgMC4wMDA0NjEsIDAuMDAwNTE0LCAwLjAwMDUzMywgMC4wMDA1NDkiLCBcCi0gICAgICAgICAgIjAuMDAwMTg1LCAwLjAwMDMwNCwgMC4wMDA0MDUsIDAuMDAwNDg3LCAwLjAwMDUxNSwgMC4wMDA1MDYsIDAuMDAwNTMxIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBPQTIxWDEgKgotICogLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChPQTIxWDEpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4wOTM5MjkyOwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNTgwMDM7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNTc4ODc2OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDU4MDAzOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDIyNiwgMC4wMDAyMjYsIDAuMDAwMjI2LCAwLjAwMDIyNiwgMC4wMDAyMjYsIDAuMDAwMjI2LCAwLjAwMDIyNiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDIyNywgMC4wMDAyMjcsIDAuMDAwMjI3LCAwLjAwMDIyNywgMC4wMDAyMjcsIDAuMDAwMjI3LCAwLjAwMDIyNyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQTEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYwMjA4MzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MDIwODM7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjAxMDA1OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDIyNywgMC4wMDAyMjYsIDAuMDAwMjI2LCAwLjAwMDIyNiwgMC4wMDAyMjYsIDAuMDAwMjI2LCAwLjAwMDIyNiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDIyNywgMC4wMDAyMjcsIDAuMDAwMjI3LCAwLjAwMDIyNywgMC4wMDAyMjYsIDAuMDAwMjI3LCAwLjAwMDIyNyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQjApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY1NjA5NjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2NTU5Mzk7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjU2MDk2OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDI3OCwgMC4wMDAyNzksIDAuMDAwMjc5LCAwLjAwMDI3OSwgMC4wMDAyNzksIDAuMDAwMjc5LCAwLjAwMDI3OSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDI1NywgMC4wMDAyNTcsIDAuMDAwMjU3LCAwLjAwMDI1NywgMC4wMDAyNTcsIDAuMDAwMjU3LCAwLjAwMDI1NyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjI0NjQzMjsKLSAgICBmdW5jdGlvbiA6ICIoKEEwK0ExKSBCMCkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTQxODcsIDAuMTE4NjA4LCAwLjI1NTk2NywgMC4zNzY5NjMsIDAuNTM4Mjc0LCAwLjg2MDg2LCAxLjA2MjQyIiwgXAotICAgICAgICAgICIwLjEwMzc0LCAwLjEyODE4OSwgMC4yNjU1MzYsIDAuMzg2NTQyLCAwLjU0Nzg1MywgMC44NzA0MSwgMS4wNzE5NyIsIFwKLSAgICAgICAgICAiMC4xMTQ2ODgsIDAuMTM5MTIxLCAwLjI3NjUsIDAuMzk3NDg3LCAwLjU1ODgxNywgMC44ODEzNzQsIDEuMDgyOTUiLCBcCi0gICAgICAgICAgIjAuMTI1MjM4LCAwLjE0OTY3NCwgMC4yODcwNiwgMC40MDgwNTMsIDAuNTY5MzUzLCAwLjg5MTkyNSwgMS4wOTM1MiIsIFwKLSAgICAgICAgICAiMC4xMzUxNTUsIDAuMTU5NTk5LCAwLjI5Njk4MiwgMC40MTc5OTksIDAuNTc5MjksIDAuOTAxODUyLCAxLjEwMzQzIiwgXAotICAgICAgICAgICIwLjE0OTQ4NSwgMC4xNzM5NzksIDAuMzExMzI5LCAwLjQzMjM0OCwgMC41OTM2NDEsIDAuOTE2MTk0LCAxLjExNzgxIiwgXAotICAgICAgICAgICIwLjE2MDY3MiwgMC4xODUxOTQsIDAuMzIyNTY3LCAwLjQ0MzU4MywgMC42MDQ5MDksIDAuOTI3NDM5LCAxLjEyOSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTM4MTYsIDAuMTQyNDUxLCAwLjQyMjQ5MiwgMC42NzIyNzEsIDEuMDAzMjksIDEuNjY5MzEsIDIuMDgyIiwgXAotICAgICAgICAgICIwLjA5MzgwOSwgMC4xNDIzMSwgMC40MjMyMTUsIDAuNjcyMDIyLCAxLjAwMzI2LCAxLjY2NzA0LCAyLjA4NDQ1IiwgXAotICAgICAgICAgICIwLjA5Mzc4OCwgMC4xNDI0MTcsIDAuNDIyNTMsIDAuNjcyMjE1LCAxLjAwMzI5LCAxLjY2NzA1LCAyLjA4MTk0IiwgXAotICAgICAgICAgICIwLjA5MzkyNCwgMC4xNDI0NzYsIDAuNDIyNTQxLCAwLjY3MjE0NCwgMS4wMDQ0NCwgMS42NjcwNSwgMi4wODE5MiIsIFwKLSAgICAgICAgICAiMC4wOTQxODcsIDAuMTQyNTgyLCAwLjQyMjY2OCwgMC42NzIxNDUsIDEuMDAzMjksIDEuNjY3MjQsIDIuMDgyMTUiLCBcCi0gICAgICAgICAgIjAuMDk1MDA4LCAwLjE0MzEyOCwgMC40MjMwODcsIDAuNjcxNDA5LCAxLjAwNDI4LCAxLjY2Njg5LCAyLjA4MTgiLCBcCi0gICAgICAgICAgIjAuMDk1Njc3LCAwLjE0MzU5OSwgMC40MjI5MiwgMC42NzIxNTMsIDEuMDA0MzgsIDEuNjY4ODIsIDIuMDg0MTEiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk3Nzg5LCAwLjEyMjk4MiwgMC4yNjM3NDMsIDAuMzg3NTcxLCAwLjU1MjU2NywgMC44ODI0NTcsIDEuMDg4NzEiLCBcCi0gICAgICAgICAgIjAuMTA2MzQ1LCAwLjEzMTUzLCAwLjI3MjI4MSwgMC4zOTYxMjYsIDAuNTYxMTI3LCAwLjg5MTAxOSwgMS4wOTcxNSIsIFwKLSAgICAgICAgICAiMC4xMTYxMzYsIDAuMTQxMzIxLCAwLjI4MjA5NSwgMC40MDU5NDMsIDAuNTcwOTMzLCAwLjkwMDg3OSwgMS4xMDY5NiIsIFwKLSAgICAgICAgICAiMC4xMjU1MDIsIDAuMTUwNjc5LCAwLjI5MTQ2OCwgMC40MTUzMTUsIDAuNTgwMzE0LCAwLjkxMDE5OCwgMS4xMTYzNCIsIFwKLSAgICAgICAgICAiMC4xMzQyNCwgMC4xNTk0MjUsIDAuMzAwMjEyLCAwLjQyNDA3MiwgMC41ODkwNzYsIDAuOTE4OTU2LCAxLjEyNTA5IiwgXAotICAgICAgICAgICIwLjE0Njc4NCwgMC4xNzIwMDIsIDAuMzEyNzg4LCAwLjQzNjY5LCAwLjYwMTY2MSwgMC45MzE1MzgsIDEuMTM3NjgiLCBcCi0gICAgICAgICAgIjAuMTU2NDUyLCAwLjE4MTgwMSwgMC4zMjI2MiwgMC40NDY0NDgsIDAuNjExNDYxLCAwLjk0MTM4OCwgMS4xNDc0NyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTQ5NzgsIDAuMTQzNDA5LCAwLjQyMzE4NiwgMC42NzMyNDIsIDEuMDA1NzEsIDEuNjY5MzIsIDIuMDg1ODUiLCBcCi0gICAgICAgICAgIjAuMDk0OTE5LCAwLjE0MzM5LCAwLjQyNDE5NiwgMC42NzI3NTIsIDEuMDA1NzUsIDEuNjY4LCAyLjA4NDkzIiwgXAotICAgICAgICAgICIwLjA5NDk0NywgMC4xNDMzOTksIDAuNDIzNzU4LCAwLjY3MzEwMywgMS4wMDQ4OCwgMS42Njg0MywgMi4wODQ5MyIsIFwKLSAgICAgICAgICAiMC4wOTUwOTEsIDAuMTQzNDg2LCAwLjQyMzc1NSwgMC42NzMxMzYsIDEuMDA0ODgsIDEuNjY4OTYsIDIuMDgyNzkiLCBcCi0gICAgICAgICAgIjAuMDk1Mzc4LCAwLjE0MzcwMSwgMC40MjM2NzgsIDAuNjczMDYyLCAxLjAwNDMyLCAxLjY2OTQ3LCAyLjA4NDI5IiwgXAotICAgICAgICAgICIwLjA5NjEzMSwgMC4xNDQxNTUsIDAuNDIzNjAyLCAwLjY3Mjg0MSwgMS4wMDU2LCAxLjY2OTEyLCAyLjA4NDUxIiwgXAotICAgICAgICAgICIwLjA5NjYxNywgMC4xNDQ2NTYsIDAuNDIzMzE1LCAwLjY3MzA4OCwgMS4wMDQ2LCAxLjY2NzgsIDIuMDg1MDYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTEiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4ODI5MywgMC4xMTI2NjgsIDAuMjQ5ODQyLCAwLjM3MDk3MSwgMC41MzI0NTUsIDAuODU0Nzk0LCAxLjA1Njc0IiwgXAotICAgICAgICAgICIwLjA5Nzc4OCwgMC4xMjIxNDYsIDAuMjU5MzYsIDAuMzgwNDE4LCAwLjU0MjAyMywgMC44NjQzMjYsIDEuMDY1ODQiLCBcCi0gICAgICAgICAgIjAuMTA4NjMzLCAwLjEzMjk3LCAwLjI3MDE5NiwgMC4zOTEyNjgsIDAuNTUyMzE0LCAwLjg3NTM3MSwgMS4wNzY4NiIsIFwKLSAgICAgICAgICAiMC4xMTkwMjksIDAuMTQzMzc0LCAwLjI4MDU3MywgMC40MDE2NDIsIDAuNTYyODYsIDAuODg1NTI5LCAxLjA4NzI1IiwgXAotICAgICAgICAgICIwLjEyODQ2OCwgMC4xNTI3OTcsIDAuMjkwMDYsIDAuNDEwOTkxLCAwLjU3MjY0MywgMC44OTUwOTEsIDEuMDk3NTEiLCBcCi0gICAgICAgICAgIjAuMTQyMDE2LCAwLjE2NjQwMSwgMC4zMDM2MTMsIDAuNDI0NjE3LCAwLjU4NTk5NywgMC45MDg1MzgsIDEuMTEwNTgiLCBcCi0gICAgICAgICAgIjAuMTUyNDc5LCAwLjE3Njk3NiwgMC4zMTQxMzksIDAuNDM1MTIsIDAuNTk2NDk4LCAwLjkxOTI2MiwgMS4xMjA5OSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTMxNjMsIDAuMTQxODY0LCAwLjQyMjg5NSwgMC42NzA4MjUsIDEuMDAyNiwgMS42NjU3NiwgMi4wODI3IiwgXAotICAgICAgICAgICIwLjA5MzEzLCAwLjE0MTg1MiwgMC40MjIwMDMsIDAuNjcwODUzLCAxLjAwMjQ3LCAxLjY2NTYzLCAyLjA4MDUiLCBcCi0gICAgICAgICAgIjAuMDkzMTY0LCAwLjE0MTc0NiwgMC40MjE5NzgsIDAuNjcwODEsIDEuMDAzMDMsIDEuNjY2NywgMi4wODQxOSIsIFwKLSAgICAgICAgICAiMC4wOTMzNTMsIDAuMTQxOTU5LCAwLjQyMjI5NSwgMC42NzA4NjEsIDEuMDA0MDEsIDEuNjY1OCwgMi4wODE5NiIsIFwKLSAgICAgICAgICAiMC4wOTM4MzIsIDAuMTQyMjQxLCAwLjQyMTk0MiwgMC42NzIwMDUsIDEuMDAyNTYsIDEuNjY2MzEsIDIuMDgxODIiLCBcCi0gICAgICAgICAgIjAuMDk0NzgxLCAwLjE0Mjg0MywgMC40MjI5NjIsIDAuNjcwNjg0LCAxLjAwMzE0LCAxLjY2NTg0LCAyLjA4MjQyIiwgXAotICAgICAgICAgICIwLjA5NTY3OCwgMC4xNDMzMjgsIDAuNDIyOTI3LCAwLjY3MjAwMywgMS4wMDIzOSwgMS42NjYyOCwgMi4wODA4OSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTQyNTEsIDAuMTE5Mzg0LCAwLjI2MDEzMiwgMC4zODM5OTcsIDAuNTQ4OTY4LCAwLjg3ODg1NiwgMS4wODUxNiIsIFwKLSAgICAgICAgICAiMC4xMDMwNCwgMC4xMjgyMzIsIDAuMjY4OTgxLCAwLjM5MjgyMSwgMC41NTc4MjcsIDAuODg3NzIsIDEuMDkzODUiLCBcCi0gICAgICAgICAgIjAuMTE0Mjc5LCAwLjEzOTQ1MiwgMC4yODAyNDcsIDAuNDA0MTE4LCAwLjU2OTA4NCwgMC44OTg5NzgsIDEuMTA1MTEiLCBcCi0gICAgICAgICAgIjAuMTI1NDUyLCAwLjE1MDYzMiwgMC4yOTE0MzEsIDAuNDE1Mjg3LCAwLjU4MDMzNSwgMC45MTAyMDQsIDEuMTE2MzEiLCBcCi0gICAgICAgICAgIjAuMTM1NTE0LCAwLjE2MDcwNiwgMC4zMDE0OSwgMC40MjUzNjMsIDAuNTkwMzU0LCAwLjkyMDI4NSwgMS4xMjYzOCIsIFwKLSAgICAgICAgICAiMC4xNDk1NTUsIDAuMTc0ODIzLCAwLjMxNTU0OSwgMC40Mzk0NDgsIDAuNjA0NDI4LCAwLjkzNDMxMiwgMS4xNDA0NSIsIFwKLSAgICAgICAgICAiMC4xNTk5NTQsIDAuMTg1MzUyLCAwLjMyNjEyNCwgMC40NDk5NzgsIDAuNjE1MDE0LCAwLjk0NDg4MywgMS4xNTEwMSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTQ5NzcsIDAuMTQzNDI3LCAwLjQyMzUxOCwgMC42NzMwMjgsIDEuMDA1NzEsIDEuNjY5NjEsIDIuMDgwMzkiLCBcCi0gICAgICAgICAgIjAuMDk0OTE0LCAwLjE0MzQwMSwgMC40MjQyLCAwLjY3MzI5OCwgMS4wMDU3NCwgMS42Njc5MywgMi4wODUwMSIsIFwKLSAgICAgICAgICAiMC4wOTQ5OTEsIDAuMTQzNDM1LCAwLjQyMzE4LCAwLjY3MzAwMiwgMS4wMDU3MSwgMS42NjgsIDIuMDg0NTYiLCBcCi0gICAgICAgICAgIjAuMDk1MTE4LCAwLjE0MzQ5MSwgMC40MjM3NTQsIDAuNjczMTQsIDEuMDA1MTgsIDEuNjcwNjIsIDIuMDg0NjQiLCBcCi0gICAgICAgICAgIjAuMDk1NDQsIDAuMTQzNjc3LCAwLjQyMzU1NCwgMC42NzMwMzgsIDEuMDA0OTcsIDEuNjcwNSwgMi4wODUwMSIsIFwKLSAgICAgICAgICAiMC4wOTYyNDEsIDAuMTQ0MzA1LCAwLjQyNDM4NiwgMC42NzI4ODEsIDEuMDA1NjUsIDEuNjY3OTksIDIuMDgyOTIiLCBcCi0gICAgICAgICAgIjAuMDk2OTUyLCAwLjE0NDg5NiwgMC40MjM4NDUsIDAuNjczMzgsIDEuMDA1NTMsIDEuNjY5NTcsIDIuMDg2MzciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjAiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4NzQyMSwgMC4xMTE4NDIsIDAuMjQ5MiwgMC4zNzAxOTYsIDAuNTMxNTAyLCAwLjg1NDEzLCAxLjA1NTY0IiwgXAotICAgICAgICAgICIwLjA5NjQ0OSwgMC4xMjA5LCAwLjI1ODIyOSwgMC4zNzkyMjEsIDAuNTQwNTMxLCAwLjg2MzA4NywgMS4wNjQ2NyIsIFwKLSAgICAgICAgICAiMC4xMDgyMDMsIDAuMTMyNjM3LCAwLjI3MDAyMSwgMC4zOTEwMiwgMC41NTIzNCwgMC44NzQ4ODcsIDEuMDc2NDkiLCBcCi0gICAgICAgICAgIjAuMTE5NjcsIDAuMTQ0MTA0LCAwLjI4MTQ2MywgMC40MDI1NDYsIDAuNTYzNzk3LCAwLjg4NjM3MSwgMS4wODc5OSIsIFwKLSAgICAgICAgICAiMC4xMjk5MTcsIDAuMTU0MzQxLCAwLjI5MTcxMSwgMC40MTI3MjksIDAuNTc0MDM2LCAwLjg5NjU5MSwgMS4wOTgxOCIsIFwKLSAgICAgICAgICAiMC4xNDQ1NzgsIDAuMTY5MDk0LCAwLjMwNjQ4NCwgMC40Mjc1MywgMC41ODg3ODUsIDAuOTExMzY3LCAxLjExMjk0IiwgXAotICAgICAgICAgICIwLjE1NTYyNiwgMC4xODAzMTgsIDAuMzE3NTgxLCAwLjQzODU3NCwgMC41OTk4NzQsIDAuOTIyNDYxLCAxLjEyNDA1Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5MzgxNywgMC4xNDIzMzEsIDAuNDIyNDc5LCAwLjY3MjI1NiwgMS4wMDQwNCwgMS42NjkzNSwgMi4wODIwOCIsIFwKLSAgICAgICAgICAiMC4wOTM4MSwgMC4xNDIzMzUsIDAuNDIzMjUsIDAuNjcyMjA5LCAxLjAwMzY5LCAxLjY2ODY4LCAyLjA4NDQ5IiwgXAotICAgICAgICAgICIwLjA5Mzc3OCwgMC4xNDIzMjQsIDAuNDIyNTMxLCAwLjY3MjIxLCAxLjAwNDUsIDEuNjY3MjYsIDIuMDgxODUiLCBcCi0gICAgICAgICAgIjAuMDk0MDIsIDAuMTQyNDM2LCAwLjQyMzE0OCwgMC42NzIyNjMsIDEuMDAzMzUsIDEuNjY4MzQsIDIuMDg0MjkiLCBcCi0gICAgICAgICAgIjAuMDk0NDQxLCAwLjE0MjcxNywgMC40MjI2NjgsIDAuNjcyMTQ2LCAxLjAwMzIxLCAxLjY2OTAyLCAyLjA4MTk2IiwgXAotICAgICAgICAgICIwLjA5NTMyNSwgMC4xNDMyOTUsIDAuNDIzMDA1LCAwLjY3MjI1NSwgMS4wMDMyMywgMS42NjY5NSwgMi4wODE4NyIsIFwKLSAgICAgICAgICAiMC4wOTYyNTEsIDAuMTQzODEzLCAwLjQyMzQ4LCAwLjY3MjAwNywgMS4wMDQzNiwgMS42NjY5NywgMi4wODE4MiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzEyNCwgMC4wOTYwMjEsIDAuMjM2MjI1LCAwLjM1OTk0MywgMC41MjQ4ODYsIDAuODU0NzUxLCAxLjA2MTY0IiwgXAotICAgICAgICAgICIwLjA4MTA2NSwgMC4xMDU4NTMsIDAuMjQ2MDY1LCAwLjM2OTgxMSwgMC41MzQ2NzgsIDAuODY0NTYzLCAxLjA3MTE0IiwgXAotICAgICAgICAgICIwLjA5MjU2OSwgMC4xMTczNywgMC4yNTc2MDUsIDAuMzgxMzExLCAwLjU0NjM2OCwgMC44NzY3LCAxLjA4MjIyIiwgXAotICAgICAgICAgICIwLjEwMjMxMywgMC4xMjcxMTcsIDAuMjY3Mzg0LCAwLjM5MTA1NiwgMC41NTU5OTgsIDAuODg1OTA5LCAxLjA5MTkiLCBcCi0gICAgICAgICAgIjAuMTEwOTkxLCAwLjEzNTc4LCAwLjI3NjAyMSwgMC4zOTk3MywgMC41NjQ4MjIsIDAuODk0NTkxLCAxLjEwMTA2IiwgXAotICAgICAgICAgICIwLjEyMjYwNiwgMC4xNDc0NTIsIDAuMjg3NjUsIDAuNDExMzI4LCAwLjU3NjMwNCwgMC45MDYyNzQsIDEuMTEzMjMiLCBcCi0gICAgICAgICAgIjAuMTMxMzUzLCAwLjE1NjA4MywgMC4yOTY0MjQsIDAuNDIwMTUzLCAwLjU4NTE5LCAwLjkxNDk3OSwgMS4xMjExNSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTEzMDQsIDAuMTQwNTA2LCAwLjQyMjQ4LCAwLjY3MTg4NywgMS4wMDQ1LCAxLjY2OTczLCAyLjA4MjA4IiwgXAotICAgICAgICAgICIwLjA5MTMxNSwgMC4xNDAzMiwgMC40MjI0MTcsIDAuNjcxNTUxLCAxLjAwNDM4LCAxLjY2NjU1LCAyLjA4NTQ3IiwgXAotICAgICAgICAgICIwLjA5MTQ5MiwgMC4xNDA2MDMsIDAuNDIyNDUsIDAuNjcwNDczLCAxLjAwMzg4LCAxLjY2Njg5LCAyLjA4NTIzIiwgXAotICAgICAgICAgICIwLjA5MjAzNywgMC4xNDA4NjYsIDAuNDIxMjAyLCAwLjY3MTk4OCwgMS4wMDQwNSwgMS42Njk1NSwgMi4wODA0OSIsIFwKLSAgICAgICAgICAiMC4wOTI3NDUsIDAuMTQxMTM4LCAwLjQyMjU1LCAwLjY3MiwgMS4wMDIwMywgMS42Njk2MSwgMi4wODE0NyIsIFwKLSAgICAgICAgICAiMC4wOTM3MzEsIDAuMTQxNzc3LCAwLjQyMjYwMiwgMC42NzE5NDQsIDEuMDAxNzIsIDEuNjY5NzcsIDIuMDgwODIiLCBcCi0gICAgICAgICAgIjAuMDk1MDEyLCAwLjE0MjI0NSwgMC40MjI1NjksIDAuNjcxNjgsIDEuMDA0MDIsIDEuNjY2MDcsIDIuMDgwMzYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxNzI0LCAwLjAwMTczMiwgMC4wMDE3NDMsIDAuMDAxNzQ1LCAwLjAwMTc0NywgMC4wMDE3NDcsIDAuMDAxNzQ4IiwgXAotICAgICAgICAgICIwLjAwMTcwMywgMC4wMDE3MTEsIDAuMDAxNzIyLCAwLjAwMTcyNCwgMC4wMDE3MjcsIDAuMDAxNzI4LCAwLjAwMTcyNiIsIFwKLSAgICAgICAgICAiMC4wMDE2ODksIDAuMDAxNjk4LCAwLjAwMTcxMSwgMC4wMDE3MTMsIDAuMDAxNzE1LCAwLjAwMTcxNiwgMC4wMDE3MTciLCBcCi0gICAgICAgICAgIjAuMDAxNjgsIDAuMDAxNjksIDAuMDAxNzA1LCAwLjAwMTcwNywgMC4wMDE3MSwgMC4wMDE3MTEsIDAuMDAxNzEyIiwgXAotICAgICAgICAgICIwLjAwMTY3NSwgMC4wMDE2ODUsIDAuMDAxNzAxLCAwLjAwMTcwNCwgMC4wMDE3MDYsIDAuMDAxNzA4LCAwLjAwMTcwOCIsIFwKLSAgICAgICAgICAiMC4wMDE2NywgMC4wMDE2OCwgMC4wMDE2OTgsIDAuMDAxNzAyLCAwLjAwMTcwNCwgMC4wMDE3MDYsIDAuMDAxNzA3IiwgXAotICAgICAgICAgICIwLjAwMTY2NywgMC4wMDE2NzgsIDAuMDAxNjk3LCAwLjAwMTcwMiwgMC4wMDE3MDQsIDAuMDAxNzA3LCAwLjAwMTcwOCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjk2NywgMC4wMDI5NzgsIDAuMDAyOTk0LCAwLjAwMjk5NywgMC4wMDI5OTksIDAuMDAzLCAwLjAwMzAwMSIsIFwKLSAgICAgICAgICAiMC4wMDI5NTMsIDAuMDAyOTY0LCAwLjAwMjk4MSwgMC4wMDI5ODQsIDAuMDAyOTg2LCAwLjAwMjk4OCwgMC4wMDI5ODgiLCBcCi0gICAgICAgICAgIjAuMDAyOTQzLCAwLjAwMjk1NSwgMC4wMDI5NzMsIDAuMDAyOTc3LCAwLjAwMjk3OSwgMC4wMDI5ODEsIDAuMDAyOTgxIiwgXAotICAgICAgICAgICIwLjAwMjkzNiwgMC4wMDI5NDksIDAuMDAyOTY5LCAwLjAwMjk3NCwgMC4wMDI5NzYsIDAuMDAyOTc4LCAwLjAwMjk3OSIsIFwKLSAgICAgICAgICAiMC4wMDI5MzEsIDAuMDAyOTQ2LCAwLjAwMjk2NiwgMC4wMDI5NzEsIDAuMDAyOTc0LCAwLjAwMjk3NywgMC4wMDI5NzciLCBcCi0gICAgICAgICAgIjAuMDAyOTI3LCAwLjAwMjk0MSwgMC4wMDI5NjUsIDAuMDAyOTcxLCAwLjAwMjk3NCwgMC4wMDI5NzgsIDAuMDAyOTc4IiwgXAotICAgICAgICAgICIwLjAwMjkyOCwgMC4wMDI5NDIsIDAuMDAyOTY3LCAwLjAwMjk3MywgMC4wMDI5NzcsIDAuMDAyOTgxLCAwLjAwMjk4MiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkExIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDE1MTgsIDAuMDAxNTI1LCAwLjAwMTUzNCwgMC4wMDE1MzUsIDAuMDAxNTM2LCAwLjAwMTUzNiwgMC4wMDE1MzciLCBcCi0gICAgICAgICAgIjAuMDAxNDg4LCAwLjAwMTQ5NiwgMC4wMDE1MDQsIDAuMDAxNTA2LCAwLjAwMTUwNywgMC4wMDE1MDcsIDAuMDAxNTA3IiwgXAotICAgICAgICAgICIwLjAwMTQ2NSwgMC4wMDE0NzMsIDAuMDAxNDg0LCAwLjAwMTQ4NiwgMC4wMDE0ODcsIDAuMDAxNDg4LCAwLjAwMTQ4OCIsIFwKLSAgICAgICAgICAiMC4wMDE0NTIsIDAuMDAxNDYxLCAwLjAwMTQ3NCwgMC4wMDE0NzYsIDAuMDAxNDc4LCAwLjAwMTQ3OSwgMC4wMDE0NzkiLCBcCi0gICAgICAgICAgIjAuMDAxNDQ0LCAwLjAwMTQ1NCwgMC4wMDE0NjgsIDAuMDAxNDcxLCAwLjAwMTQ3MywgMC4wMDE0NzQsIDAuMDAxNDc1IiwgXAotICAgICAgICAgICIwLjAwMTQzNywgMC4wMDE0NDgsIDAuMDAxNDYyLCAwLjAwMTQ2OCwgMC4wMDE0NywgMC4wMDE0NzIsIDAuMDAxNDcyIiwgXAotICAgICAgICAgICIwLjAwMTQzNywgMC4wMDE0NDcsIDAuMDAxNDY0LCAwLjAwMTQ2NywgMC4wMDE0NzEsIDAuMDAxNDczLCAwLjAwMTQ3NCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjc3LCAwLjAwMjc4MSwgMC4wMDI3OTcsIDAuMDAyOCwgMC4wMDI4MDIsIDAuMDAyODAzLCAwLjAwMjgwMyIsIFwKLSAgICAgICAgICAiMC4wMDI3NDcsIDAuMDAyNzU5LCAwLjAwMjc3NiwgMC4wMDI3OCwgMC4wMDI3ODIsIDAuMDAyNzg0LCAwLjAwMjc4NCIsIFwKLSAgICAgICAgICAiMC4wMDI3MzgsIDAuMDAyNzUsIDAuMDAyNzcsIDAuMDAyNzc0LCAwLjAwMjc3NywgMC4wMDI3OCwgMC4wMDI3OCIsIFwKLSAgICAgICAgICAiMC4wMDI3MzMsIDAuMDAyNzQ2LCAwLjAwMjc3LCAwLjAwMjc3NiwgMC4wMDI3NzksIDAuMDAyNzgyLCAwLjAwMjc4MyIsIFwKLSAgICAgICAgICAiMC4wMDI3MzYsIDAuMDAyNzQ5LCAwLjAwMjc3NiwgMC4wMDI3ODIsIDAuMDAyNzg2LCAwLjAwMjc4OSwgMC4wMDI3OSIsIFwKLSAgICAgICAgICAiMC4wMDI3NSwgMC4wMDI3NjMsIDAuMDAyNzkxLCAwLjAwMjc5OCwgMC4wMDI4MDIsIDAuMDAyODA2LCAwLjAwMjgwOCIsIFwKLSAgICAgICAgICAiMC4wMDI3NjUsIDAuMDAyNzc4LCAwLjAwMjgwNiwgMC4wMDI4MTQsIDAuMDAyODE5LCAwLjAwMjgyMywgMC4wMDI4MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxNzMxLCAwLjAwMTczOSwgMC4wMDE3NSwgMC4wMDE3NTIsIDAuMDAxNzUzLCAwLjAwMTc1NCwgMC4wMDE3NTQiLCBcCi0gICAgICAgICAgIjAuMDAxNzAyLCAwLjAwMTcxLCAwLjAwMTcyMywgMC4wMDE3MjUsIDAuMDAxNzI3LCAwLjAwMTcyNywgMC4wMDE3MjgiLCBcCi0gICAgICAgICAgIjAuMDAxNjkxLCAwLjAwMTcsIDAuMDAxNzE2LCAwLjAwMTcyLCAwLjAwMTcyMSwgMC4wMDE3MjMsIDAuMDAxNzI0IiwgXAotICAgICAgICAgICIwLjAwMTY5MSwgMC4wMDE3MDIsIDAuMDAxNzE5LCAwLjAwMTcyNCwgMC4wMDE3MjYsIDAuMDAxNzI4LCAwLjAwMTcyOSIsIFwKLSAgICAgICAgICAiMC4wMDE3LCAwLjAwMTcxMSwgMC4wMDE3MjksIDAuMDAxNzMzLCAwLjAwMTczNywgMC4wMDE3MzksIDAuMDAxNzQiLCBcCi0gICAgICAgICAgIjAuMDAxNzIxLCAwLjAwMTczMSwgMC4wMDE3NTIsIDAuMDAxNzU3LCAwLjAwMTc2MSwgMC4wMDE3NjQsIDAuMDAxNzY1IiwgXAotICAgICAgICAgICIwLjAwMTc0MSwgMC4wMDE3NTEsIDAuMDAxNzczLCAwLjAwMTc3OSwgMC4wMDE3ODIsIDAuMDAxNzg2LCAwLjAwMTc4NyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjMxMywgMC4wMDIzMTgsIDAuMDAyMzI0LCAwLjAwMjMyNSwgMC4wMDIzMjUsIDAuMDAyMzI2LCAwLjAwMjMyNiIsIFwKLSAgICAgICAgICAiMC4wMDIyODgsIDAuMDAyMjk2LCAwLjAwMjMwNSwgMC4wMDIzMDcsIDAuMDAyMzA4LCAwLjAwMjMwOSwgMC4wMDIzMDkiLCBcCi0gICAgICAgICAgIjAuMDAyMjc1LCAwLjAwMjI4NCwgMC4wMDIyOTgsIDAuMDAyMywgMC4wMDIzMDIsIDAuMDAyMzAzLCAwLjAwMjMwNCIsIFwKLSAgICAgICAgICAiMC4wMDIyNzQsIDAuMDAyMjg1LCAwLjAwMjMwMiwgMC4wMDIzMDYsIDAuMDAyMzA5LCAwLjAwMjMxLCAwLjAwMjMxMSIsIFwKLSAgICAgICAgICAiMC4wMDIyNzEsIDAuMDAyMjgzLCAwLjAwMjMwMiwgMC4wMDIzMDcsIDAuMDAyMzA5LCAwLjAwMjMxMSwgMC4wMDIzMTEiLCBcCi0gICAgICAgICAgIjAuMDAyMjg0LCAwLjAwMjI5NywgMC4wMDIzMTgsIDAuMDAyMzIsIDAuMDAyMzI2LCAwLjAwMjMyNiwgMC4wMDIzMyIsIFwKLSAgICAgICAgICAiMC4wMDIzMDEsIDAuMDAyMzEyLCAwLjAwMjMzNywgMC4wMDIzNDIsIDAuMDAyMzQzLCAwLjAwMjM0NiwgMC4wMDIzNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogT0EyMlgxICoKLSAqIC0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoT0EyMlgxKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMTE3NzE0OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNTk5ODU1OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDU5OTA2MjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA1OTk4NTU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjI2LCAwLjAwMDIyNiwgMC4wMDAyMjYsIDAuMDAwMjI2LCAwLjAwMDIyNiwgMC4wMDAyMjYsIDAuMDAwMjI2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjI3LCAwLjAwMDIyNywgMC4wMDAyMjcsIDAuMDAwMjI3LCAwLjAwMDIyNywgMC4wMDAyMjcsIDAuMDAwMjI3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihBMSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjMzMTI7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjMzMTI7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjMxODE4OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDIyNiwgMC4wMDAyMjYsIDAuMDAwMjI2LCAwLjAwMDIyNiwgMC4wMDAyMjYsIDAuMDAwMjI2LCAwLjAwMDIyNiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDIyNywgMC4wMDAyMjcsIDAuMDAwMjI3LCAwLjAwMDIyNywgMC4wMDAyMjcsIDAuMDAwMjI3LCAwLjAwMDIyNyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQjApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDU5NDE2NjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA1OTExNTE7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNTk0MTY2OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDQ1NiwgMC4wMDA0NTYsIDAuMDAwNDU2LCAwLjAwMDQ1NiwgMC4wMDA0NTYsIDAuMDAwNDU2LCAwLjAwMDQ1NiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDI1NywgMC4wMDAyNTcsIDAuMDAwMjU3LCAwLjAwMDI1NywgMC4wMDAyNTcsIDAuMDAwMjU3LCAwLjAwMDI1NyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQjEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY1OTQzNDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2NTkyNjI7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjU5NDM0OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDQ1NSwgMC4wMDA0NTYsIDAuMDAwNDU1LCAwLjAwMDQ1NiwgMC4wMDA0NTUsIDAuMDAwNDU1LCAwLjAwMDQ1NSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDI1NywgMC4wMDAyNTcsIDAuMDAwMjU3LCAwLjAwMDI1NywgMC4wMDAyNTcsIDAuMDAwMjU3LCAwLjAwMDI1NyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjI1NTAwMzsKLSAgICBmdW5jdGlvbiA6ICIoKEEwK0ExKSAoQjArQjEpKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTAiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwNjI1NywgMC4xMzExODIsIDAuMjcwNzIyLCAwLjM5MzU1OSwgMC41NTcyNDksIDAuODg0NTEyLCAxLjA4OTAzIiwgXAotICAgICAgICAgICIwLjExNjA1NywgMC4xNDA5OTIsIDAuMjgwNTIsIDAuNDAzMzc2LCAwLjU2NzAyNCwgMC44OTQzMjUsIDEuMDk4OCIsIFwKLSAgICAgICAgICAiMC4xMjc1NiwgMC4xNTI1MTUsIDAuMjkyMDYyLCAwLjQxNDk1MiwgMC41Nzg1NTksIDAuOTA1ODYyLCAxLjExMDM0IiwgXAotICAgICAgICAgICIwLjEzODMyLCAwLjE2MzI0OSwgMC4zMDI4LCAwLjQyNTY1MiwgMC41ODkzMTMsIDAuOTE2NTY3LCAxLjEyMTA3IiwgXAotICAgICAgICAgICIwLjE0ODg1NSwgMC4xNzM3OCwgMC4zMTMzNTEsIDAuNDM2MTg4LCAwLjU5OTg4OSwgMC45MjcxNDEsIDEuMTMxNjQiLCBcCi0gICAgICAgICAgIjAuMTY0NTQzLCAwLjE4OTQ5OCwgMC4zMjkwNDUsIDAuNDUxOTI0LCAwLjYxNTU1LCAwLjk0MjgxMSwgMS4xNDc0IiwgXAotICAgICAgICAgICIwLjE3NzAzNSwgMC4yMDIwNDYsIDAuMzQxNjI2LCAwLjQ2NDQ2NSwgMC42MjgxMjUsIDAuOTU1MzY4LCAxLjE1OTk3Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5NjE2NCwgMC4xNDUyMTEsIDAuNDI5Mzg3LCAwLjY4MjM4NiwgMS4wMTg4LCAxLjY5MTY2LCAyLjExNTE4IiwgXAotICAgICAgICAgICIwLjA5NjE1MSwgMC4xNDUyLCAwLjQyOTcxNiwgMC42ODE5NDMsIDEuMDE4MTksIDEuNjkzNTEsIDIuMTE0NzEiLCBcCi0gICAgICAgICAgIjAuMDk2MTQyLCAwLjE0NTE5MywgMC40MjkxNDQsIDAuNjgyNDg5LCAxLjAxOTI0LCAxLjY5MTI3LCAyLjExMjU5IiwgXAotICAgICAgICAgICIwLjA5NjE1NywgMC4xNDUyMDYsIDAuNDI5MjMxLCAwLjY4MjM1NywgMS4wMTkxNSwgMS42OTE5MywgMi4xMTMwNCIsIFwKLSAgICAgICAgICAiMC4wOTYzNDEsIDAuMTQ1MzA1LCAwLjQyOTE2NiwgMC42ODIyNDQsIDEuMDE5MzEsIDEuNjkxNjUsIDIuMTEyNSIsIFwKLSAgICAgICAgICAiMC4wOTY5MywgMC4xNDU1OTcsIDAuNDI5NzIxLCAwLjY4MjMxNCwgMS4wMTg4NiwgMS42OTE4OCwgMi4xMTUwNyIsIFwKLSAgICAgICAgICAiMC4wOTc0OTksIDAuMTQ2MTI2LCAwLjQyOTc3NywgMC42ODE3OTYsIDEuMDE5MjUsIDEuNjkyODUsIDIuMTE1MDQiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTEwNjEzLCAwLjEzNjMwOSwgMC4yNzc0NCwgMC40MDEzODksIDAuNTY2NDkzLCAwLjg5NjQ0NiwgMS4xMDI2MSIsIFwKLSAgICAgICAgICAiMC4xMTkwODQsIDAuMTQ0Nzg2LCAwLjI4NTkxNiwgMC40MDk4NjMsIDAuNTc0OTk2LCAwLjkwNDk0NiwgMS4xMTExMSIsIFwKLSAgICAgICAgICAiMC4xMjg5MTMsIDAuMTU0NjA4LCAwLjI5NTc1NCwgMC40MTk3MDEsIDAuNTg0ODEyLCAwLjkxNDc2NSwgMS4xMjA5NSIsIFwKLSAgICAgICAgICAiMC4xMzg0ODQsIDAuMTY0MTc2LCAwLjMwNTMyMywgMC40MjkzMDMsIDAuNTk0NDAxLCAwLjkyNDMyOSwgMS4xMzA1NCIsIFwKLSAgICAgICAgICAiMC4xNDc2MTQsIDAuMTczMzA4LCAwLjMxNDQ1NywgMC40Mzg0MTcsIDAuNjAzNTI5LCAwLjkzMzQ4NSwgMS4xMzk2NyIsIFwKLSAgICAgICAgICAiMC4xNjEwODEsIDAuMTg2ODI1LCAwLjMyNzk5NywgMC40NTE5NDgsIDAuNjE3MDY4LCAwLjk0NzAxNiwgMS4xNTMyOCIsIFwKLSAgICAgICAgICAiMC4xNzE3MTMsIDAuMTk3NTAyLCAwLjMzODcwMywgMC40NjI2NTksIDAuNjI3ODEzLCAwLjk1NzczNSwgMS4xNjM5MiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTkyMjUsIDAuMTQ2NzMzLCAwLjQyNTIwNiwgMC42NzMzOTgsIDEuMDA1OTMsIDEuNjcwOTksIDIuMDg2NjEiLCBcCi0gICAgICAgICAgIjAuMDk5MjE0LCAwLjE0NjcyNSwgMC40MjUyMTEsIDAuNjczODIyLCAxLjAwNTYzLCAxLjY3MDg0LCAyLjA4NTA2IiwgXAotICAgICAgICAgICIwLjA5OTIxMywgMC4xNDY3MTksIDAuNDI1MjQxLCAwLjY3MzM2NywgMS4wMDU5NSwgMS42NjkxNCwgMi4wODUwMiIsIFwKLSAgICAgICAgICAiMC4wOTkyNTEsIDAuMTQ2NzM0LCAwLjQyNTIsIDAuNjczNTIzLCAxLjAwNiwgMS42NzA5OSwgMi4wODU4NyIsIFwKLSAgICAgICAgICAiMC4wOTk0NTksIDAuMTQ2ODc0LCAwLjQyNTIwMywgMC42NzMyOTMsIDEuMDA1OSwgMS42NzA2LCAyLjA4NDgxIiwgXAotICAgICAgICAgICIwLjEwMDE4OSwgMC4xNDczMiwgMC40MjUzNjQsIDAuNjczMzA5LCAxLjAwNTk5LCAxLjY2OTgsIDIuMDg2MjMiLCBcCi0gICAgICAgICAgIjAuMTAwOTU2LCAwLjE0NzkzMSwgMC40MjQ5MjksIDAuNjczOTMsIDEuMDA1OTgsIDEuNjcxMSwgMi4wODU3MiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTAxMTI1LCAwLjEyNjAxNywgMC4yNjUzODksIDAuMzg4MTY2LCAwLjU1MTc4MiwgMC44Nzg5MzgsIDEuMDgzNDIiLCBcCi0gICAgICAgICAgIjAuMTEwOTQ2LCAwLjEzNTgwMSwgMC4yNzUxODMsIDAuMzk3OTQ0LCAwLjU2MTU2MywgMC44ODg3OTYsIDEuMDkzMjUiLCBcCi0gICAgICAgICAgIjAuMTIyMjA0LCAwLjE0NzA1OCwgMC4yODY0MzksIDAuNDA5MjA1LCAwLjU3Mjg0OSwgMC45MDAwMTgsIDEuMTA0NTIiLCBcCi0gICAgICAgICAgIjAuMTMyNzYsIDAuMTU3NjE2LCAwLjI5Njk5NSwgMC40MTk3OTUsIDAuNTgzMzk1LCAwLjkxMDYyNSwgMS4xMTUwOCIsIFwKLSAgICAgICAgICAiMC4xNDMxNzMsIDAuMTY4MDMyLCAwLjMwNzQxMSwgMC40MzAxODgsIDAuNTkzODA2LCAwLjkyMTEyOCwgMS4xMjU1IiwgXAotICAgICAgICAgICIwLjE1ODI1LCAwLjE4MzEyNywgMC4zMjI1MDQsIDAuNDQ1MzEsIDAuNjA4OTA5LCAwLjkzNjExNiwgMS4xNDA2IiwgXAotICAgICAgICAgICIwLjE3MDE3OCwgMC4xOTUxMzUsIDAuMzM0NTA5LCAwLjQ1NzMxOSwgMC42MjA5NTksIDAuOTQ4MTI5LCAxLjE1MjYzIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5NTY4LCAwLjE0NDc1OCwgMC40Mjg4NjcsIDAuNjgyMDcsIDEuMDE3OTgsIDEuNjkxNTgsIDIuMTE0MTMiLCBcCi0gICAgICAgICAgIjAuMDk1NjcyLCAwLjE0NDc0NiwgMC40Mjg4MzksIDAuNjgyMDMsIDEuMDE4MDQsIDEuNjkzNTksIDIuMTE1NTkiLCBcCi0gICAgICAgICAgIjAuMDk1Njc4LCAwLjE0NDc1OSwgMC40Mjg3OTYsIDAuNjgyMDIzLCAxLjAxOTE3LCAxLjY5MzQ4LCAyLjExNDM2IiwgXAotICAgICAgICAgICIwLjA5NTcxOCwgMC4xNDQ3NDgsIDAuNDI5MzcyLCAwLjY4MDk2MiwgMS4wMTc5MSwgMS42OTMxMiwgMi4xMTI0OSIsIFwKLSAgICAgICAgICAiMC4wOTU5MzQsIDAuMTQ0OTE3LCAwLjQyODg2NywgMC42ODE5MjQsIDEuMDE4MDIsIDEuNjkzNTEsIDIuMTEyMjkiLCBcCi0gICAgICAgICAgIjAuMDk2NzIxLCAwLjE0NTQxNSwgMC40MjkyMTUsIDAuNjgxOTY5LCAxLjAxOTE3LCAxLjY5MzMzLCAyLjExMjI3IiwgXAotICAgICAgICAgICIwLjA5NzM5MiwgMC4xNDU5OTksIDAuNDI5MDQ5LCAwLjY4MTcwMiwgMS4wMTkwNCwgMS42OTEyOSwgMi4xMTQ3Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwNzE2MSwgMC4xMzI4NSwgMC4yNzQwMDIsIDAuMzk3OTIyLCAwLjU2MzA0NiwgMC44OTI5ODgsIDEuMDk5MTgiLCBcCi0gICAgICAgICAgIjAuMTE2MDA0LCAwLjE0MTcwMywgMC4yODI4NDEsIDAuNDA2NzkxLCAwLjU3MTg5NywgMC45MDE4NTIsIDEuMTA4MDMiLCBcCi0gICAgICAgICAgIjAuMTI3MjUzLCAwLjE1Mjk0NSwgMC4yOTQwOTMsIDAuNDE4MDQyLCAwLjU4MzE4MSwgMC45MTMxMjQsIDEuMTE5MyIsIFwKLSAgICAgICAgICAiMC4xMzg2NjIsIDAuMTY0MzU0LCAwLjMwNTUzMiwgMC40Mjk0NTEsIDAuNTk0NTkyLCAwLjkyNDU0LCAxLjEzMDc0IiwgXAotICAgICAgICAgICIwLjE0OTU0NCwgMC4xNzUyMzgsIDAuMzE2MzkyLCAwLjQ0MDM2NCwgMC42MDU0ODEsIDAuOTM1NDM5LCAxLjE0MTYzIiwgXAotICAgICAgICAgICIwLjE2NTMxNCwgMC4xOTEwMzMsIDAuMzMyMTk3LCAwLjQ1NjE2MywgMC42MjEyOTIsIDAuOTUxMjQ5LCAxLjE1NzQzIiwgXAotICAgICAgICAgICIwLjE3NzUzLCAwLjIwMzMxNCwgMC4zNDQ0OTUsIDAuNDY4NDc5LCAwLjYzMzYzMSwgMC45NjM1NzYsIDEuMTY5NzMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk5MjI0LCAwLjE0NjczLCAwLjQyNTM1MiwgMC42NzM4NDIsIDEuMDA1OTgsIDEuNjY5NzQsIDIuMDg0NzgiLCBcCi0gICAgICAgICAgIjAuMDk5MjIxLCAwLjE0NjcyOSwgMC40MjUyMDYsIDAuNjczMzIzLCAxLjAwNTk3LCAxLjY3MTAyLCAyLjA4NjciLCBcCi0gICAgICAgICAgIjAuMDk5MTk0LCAwLjE0NjczLCAwLjQyNTIwNSwgMC42NzM4NDcsIDEuMDA2LCAxLjY3MSwgMi4wODY2OCIsIFwKLSAgICAgICAgICAiMC4wOTkyODEsIDAuMTQ2NzQ5LCAwLjQyNTMzMywgMC42NzM4MDcsIDEuMDA1OTgsIDEuNjY5ODcsIDIuMDg2MDEiLCBcCi0gICAgICAgICAgIjAuMDk5NDkyLCAwLjE0Njg1NSwgMC40MjUwNjksIDAuNjczMzcsIDEuMDA2MDEsIDEuNjY5MTcsIDIuMDg1MDkiLCBcCi0gICAgICAgICAgIjAuMTAwMzcsIDAuMTQ3NDI3LCAwLjQyNTI1MiwgMC42NzMyNzQsIDEuMDA1OSwgMS42NjkwNCwgMi4wODQzNyIsIFwKLSAgICAgICAgICAiMC4xMDEzNzgsIDAuMTQ4MTcxLCAwLjQyNTM5NiwgMC42NzM0MiwgMS4wMDU4NSwgMS42NzEsIDIuMDg2MDgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjAiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5NjUzNSwgMC4xMjE0NTYsIDAuMjYwOTk3LCAwLjM4Mzg0NSwgMC41NDc1MzQsIDAuODc0Nzc3LCAxLjA3OTI4IiwgXAotICAgICAgICAgICIwLjEwNTcxNSwgMC4xMzA2NSwgMC4yNzAxOTgsIDAuMzkzMDMzLCAwLjU1NjcwMiwgMC44ODM5ODIsIDEuMDg4NDkiLCBcCi0gICAgICAgICAgIjAuMTE3NTAzLCAwLjE0MjQ0MSwgMC4yODIwMTQsIDAuNDA0ODQzLCAwLjU2ODUwMywgMC44OTU3NzQsIDEuMTAwMyIsIFwKLSAgICAgICAgICAiMC4xMjkyMTksIDAuMTU0MTQ4LCAwLjI5MzcxMywgMC40MTY1NiwgMC41ODAyOTksIDAuOTA3NTcyLCAxLjExMjAyIiwgXAotICAgICAgICAgICIwLjE0MDQxMywgMC4xNjUzNzcsIDAuMzA0OTI0LCAwLjQyNzc3OSwgMC41OTE0NTYsIDAuOTE4NzIsIDEuMTIzMjMiLCBcCi0gICAgICAgICAgIjAuMTU2MzI4LCAwLjE4MTI4NywgMC4zMjA4MiwgMC40NDM2NTYsIDAuNjA3MzM2LCAwLjkzNDYwNCwgMS4xMzkxIiwgXAotICAgICAgICAgICIwLjE2ODkyMywgMC4xOTM5OTUsIDAuMzMzNTksIDAuNDU2NDM2LCAwLjYyMDExNCwgMC45NDc0MDEsIDEuMTUxODYiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk2MTksIDAuMTQ1MjIyLCAwLjQyOTI1MywgMC42ODIzODMsIDEuMDE5NDksIDEuNjkxMzgsIDIuMTEyNjciLCBcCi0gICAgICAgICAgIjAuMDk2MTQ1LCAwLjE0NTIwNCwgMC40Mjk0MywgMC42ODIzMjcsIDEuMDE4MjUsIDEuNjkzLCAyLjExMjc4IiwgXAotICAgICAgICAgICIwLjA5NjE0MywgMC4xNDUxODUsIDAuNDI5Nzc5LCAwLjY4MjMzOSwgMS4wMTgzLCAxLjY5MTYzLCAyLjExNTI2IiwgXAotICAgICAgICAgICIwLjA5NjIzNSwgMC4xNDUyNDgsIDAuNDI5MjI2LCAwLjY4MjMzNiwgMS4wMTk1NiwgMS42OTM4OSwgMi4xMTI1OSIsIFwKLSAgICAgICAgICAiMC4wOTY1MTYsIDAuMTQ1NDI2LCAwLjQyOTIzOCwgMC42ODIyNDksIDEuMDE4MjMsIDEuNjkxNjEsIDIuMTEyNTEiLCBcCi0gICAgICAgICAgIjAuMDk3MzQsIDAuMTQ1OTc5LCAwLjQyOTc1NiwgMC42ODIwMDQsIDEuMDE5MjUsIDEuNjkzMjYsIDIuMTEyOTQiLCBcCi0gICAgICAgICAgIjAuMDk3ODcyLCAwLjE0NjM4NiwgMC40Mjk4NDQsIDAuNjgyMjQ3LCAxLjAxODY3LCAxLjY5MzUxLCAyLjExNDA4Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5ODU4NywgMC4xMjM4ODYsIDAuMjY0MjQ1LCAwLjM4ODAwNywgMC41NTI4NTUsIDAuODgzMTc0LCAxLjA4OTA1IiwgXAotICAgICAgICAgICIwLjEwNzI0OSwgMC4xMzI1NTMsIDAuMjcyOTE3LCAwLjM5NjcwMiwgMC41NjE2NTIsIDAuODkxNzg2LCAxLjA5Nzc1IiwgXAotICAgICAgICAgICIwLjExNjkxNSwgMC4xNDIyMzEsIDAuMjgyNjA0LCAwLjQwNjM3MSwgMC41NzE0NDgsIDAuOTAxNDQzLCAxLjEwNzMzIiwgXAotICAgICAgICAgICIwLjEyNjIyNiwgMC4xNTE1NTIsIDAuMjkxOTU1LCAwLjQxNTY0NSwgMC41ODA2NjEsIDAuOTEwODY0LCAxLjExNjcyIiwgXAotICAgICAgICAgICIwLjEzNDgzMiwgMC4xNjAxNjQsIDAuMzAwNTY2LCAwLjQyNDMwMiwgMC41ODkyOTEsIDAuOTE5MzgsIDEuMTI1NjIiLCBcCi0gICAgICAgICAgIjAuMTQ3MTE2LCAwLjE3MjUyMywgMC4zMTI5NjEsIDAuNDM2NjMyLCAwLjYwMTU4MywgMC45MzE4NTksIDEuMTM4MTMiLCBcCi0gICAgICAgICAgIjAuMTU2NTc2LCAwLjE4MjExNCwgMC4zMjI1NTMsIDAuNDQ2MjQ1LCAwLjYxMTE2MywgMC45NDEyNzksIDEuMTQ3NTkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk3MDUzLCAwLjE0NDcyLCAwLjQyMzY2NSwgMC42NzI0MSwgMS4wMDQ3MiwgMS42NjcyMSwgMi4wODI3OSIsIFwKLSAgICAgICAgICAiMC4wOTcwNDUsIDAuMTQ0NzE0LCAwLjQyMzEyNCwgMC42NzA3NjQsIDEuMDA1MjcsIDEuNjY2MDEsIDIuMDgxOTciLCBcCi0gICAgICAgICAgIjAuMDk3MDc5LCAwLjE0NDc0LCAwLjQyMzY2NiwgMC42NzIwNTMsIDEuMDA0NzksIDEuNjcwNjYsIDIuMDgwMDMiLCBcCi0gICAgICAgICAgIjAuMDk3MjM3LCAwLjE0NDgyNCwgMC40MjM4MDcsIDAuNjcyNDIxLCAxLjAwNDc1LCAxLjY2NjczLCAyLjA4NDEiLCBcCi0gICAgICAgICAgIjAuMDk3Njc1LCAwLjE0NTEzNCwgMC40MjM3MzMsIDAuNjcyNTM0LCAxLjAwNTI1LCAxLjY2NjEsIDIuMDgwNzkiLCBcCi0gICAgICAgICAgIjAuMDk4NzcyLCAwLjE0NTg5MSwgMC40MjM5OCwgMC42NzE3ODcsIDEuMDA1MjMsIDEuNjY2MzEsIDIuMDgxMjIiLCBcCi0gICAgICAgICAgIjAuMDk5NjcyLCAwLjE0NjY3MSwgMC40MjQxMTMsIDAuNjcyNjg4LCAxLjAwNTE3LCAxLjY2ODQsIDIuMDgwODIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjEiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5MDQ5MSwgMC4xMTUzMTMsIDAuMjU0NjQ5LCAwLjM3NzM4NSwgMC41NDEwMzksIDAuODY4MjY1LCAxLjA3MjY4IiwgXAotICAgICAgICAgICIwLjA5OTY0NiwgMC4xMjQ0NzUsIDAuMjYzODA3LCAwLjM4NjU2LCAwLjU1MDE2MiwgMC44Nzc0MjEsIDEuMDgxODMiLCBcCi0gICAgICAgICAgIjAuMTExMjg5LCAwLjEzNjEyNSwgMC4yNzU0ODIsIDAuMzk4MjI4LCAwLjU2MTg2MiwgMC44ODkwMzQsIDEuMDkzNTIiLCBcCi0gICAgICAgICAgIjAuMTIyNzg1LCAwLjE0NzYyNCwgMC4yODY5NzgsIDAuNDA5NzMzLCAwLjU3MzM1MywgMC45MDA1NTQsIDEuMTA1MDMiLCBcCi0gICAgICAgICAgIjAuMTMzNDY2LCAwLjE1ODI1NywgMC4yOTc1OSwgMC40MjAzNzksIDAuNTgzOTc5LCAwLjkxMTE3MywgMS4xMTU2OCIsIFwKLSAgICAgICAgICAiMC4xNDgxMzUsIDAuMTczMDY5LCAwLjMxMjQyNCwgMC40MzUxODgsIDAuNTk4NzY5LCAwLjkyNTk2MSwgMS4xMzA0NiIsIFwKLSAgICAgICAgICAiMC4xNTk4OCwgMC4xODUwNDcsIDAuMzI0MjE3LCAwLjQ0Njk4MywgMC42MTA2MDYsIDAuOTM3ODI2LCAxLjE0MjMxIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5NTU4LCAwLjE0NDY1NywgMC40Mjg5OCwgMC42ODE5NDMsIDEuMDE5MTcsIDEuNjkzNjYsIDIuMTEyMzkiLCBcCi0gICAgICAgICAgIjAuMDk1NTc0LCAwLjE0NDY1NywgMC40Mjg4MywgMC42ODE5MzgsIDEuMDE3OTgsIDEuNjkzNiwgMi4xMTU0NiIsIFwKLSAgICAgICAgICAiMC4wOTU1NTcsIDAuMTQ0NjM5LCAwLjQyODc0OSwgMC42ODE5MiwgMS4wMTkwOCwgMS42OTM0NCwgMi4xMTQzMiIsIFwKLSAgICAgICAgICAiMC4wOTU3MjMsIDAuMTQ0NzA1LCAwLjQyODczNCwgMC42ODE4MzEsIDEuMDE3OTQsIDEuNjkzMTgsIDIuMTE0MzkiLCBcCi0gICAgICAgICAgIjAuMDk2MDczLCAwLjE0NDkwNiwgMC40MjkyNDYsIDAuNjgxODU4LCAxLjAxNzgzLCAxLjY5MTM1LCAyLjExMjIiLCBcCi0gICAgICAgICAgIjAuMDk2OTk1LCAwLjE0NTU4MiwgMC40Mjk0MTMsIDAuNjgxOTE2LCAxLjAxODIxLCAxLjY5MjkyLCAyLjExNDY2IiwgXAotICAgICAgICAgICIwLjA5ODE3NSwgMC4xNDYxOTEsIDAuNDI5NDI0LCAwLjY4MTkxNiwgMS4wMTg5MSwgMS42OTEzNiwgMi4xMTE0MiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTQzNzYsIDAuMTE5NjksIDAuMjYwMDk2LCAwLjM4Mzg1NSwgMC41NDg4MjMsIDAuODc4OTAxLCAxLjA4NDk5IiwgXAotICAgICAgICAgICIwLjEwMzIwOCwgMC4xMjg1MjEsIDAuMjY4OTA4LCAwLjM5MjY3NCwgMC41NTc1NCwgMC44ODc4MjcsIDEuMDk0MTkiLCBcCi0gICAgICAgICAgIjAuMTE0NDEzLCAwLjEzOTczNiwgMC4yODAxNDEsIDAuNDAzOTE0LCAwLjU2OTAwMywgMC44OTkwNDEsIDEuMTA1MTciLCBcCi0gICAgICAgICAgIjAuMTI1MjQ0LCAwLjE1MDU4OCwgMC4yOTEwMDgsIDAuNDE0NzkxLCAwLjU3OTg3MywgMC45MDk4NjEsIDEuMTE1NzMiLCBcCi0gICAgICAgICAgIjAuMTM1MDI4LCAwLjE2MDM2OSwgMC4zMDA3OTYsIDAuNDI0NDkyLCAwLjU4OTYzNCwgMC45MTk2NzMsIDEuMTI1NjEiLCBcCi0gICAgICAgICAgIjAuMTQ5MTU0LCAwLjE3NDU5MywgMC4zMTUwNTYsIDAuNDM4NzQ3LCAwLjYwMzgwMiwgMC45MzQwOTgsIDEuMTQwMTYiLCBcCi0gICAgICAgICAgIjAuMTU5NTgyLCAwLjE4NTIwMSwgMC4zMjU2NzksIDAuNDQ5MzQ3LCAwLjYxNDQ3OCwgMC45NDQ3NDMsIDEuMTUwMzgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk3MDE4LCAwLjE0NDY5NywgMC40MjM4MTQsIDAuNjcyMTQ5LCAxLjAwMjk0LCAxLjY2NjA1LCAyLjA4NTY5IiwgXAotICAgICAgICAgICIwLjA5NzA0MSwgMC4xNDQ3MDYsIDAuNDIzNjYyLCAwLjY3MjQzMSwgMS4wMDUyMywgMS42NjYyNCwgMi4wODE3NiIsIFwKLSAgICAgICAgICAiMC4wOTcwOTQsIDAuMTQ0NzM0LCAwLjQyMzY2NCwgMC42NzIwNzUsIDEuMDAzMTgsIDEuNjY1OTgsIDIuMDg2MTciLCBcCi0gICAgICAgICAgIjAuMDk3MzMsIDAuMTQ0ODc3LCAwLjQyMzY4OSwgMC42NzIxOTMsIDEuMDA0NzcsIDEuNjY2MDcsIDIuMDg0IiwgXAotICAgICAgICAgICIwLjA5Nzk0LCAwLjE0NTI4MywgMC40MjM3NTUsIDAuNjcyNDgzLCAxLjAwNTI0LCAxLjY2NjIsIDIuMDgxNCIsIFwKLSAgICAgICAgICAiMC4wOTkyNDEsIDAuMTQ2MTc3LCAwLjQyMzYyMywgMC42NzEzODQsIDEuMDAyODMsIDEuNjY2NzEsIDIuMDgxMjMiLCBcCi0gICAgICAgICAgIjAuMTAwMzY5LCAwLjE0NzA2OCwgMC40MjQ0MDEsIDAuNjcyNzQ4LCAxLjAwNTE1LCAxLjY2ODUsIDIuMDgwOTUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxODgsIDAuMDAxODg5LCAwLjAwMTkwNCwgMC4wMDE5MDYsIDAuMDAxOTA3LCAwLjAwMTkwOSwgMC4wMDE5MDkiLCBcCi0gICAgICAgICAgIjAuMDAxODYyLCAwLjAwMTg3MSwgMC4wMDE4ODUsIDAuMDAxODg4LCAwLjAwMTg5LCAwLjAwMTg5MSwgMC4wMDE4OTIiLCBcCi0gICAgICAgICAgIjAuMDAxODUsIDAuMDAxODU5LCAwLjAwMTg3NCwgMC4wMDE4NzgsIDAuMDAxODc5LCAwLjAwMTg4MSwgMC4wMDE4ODEiLCBcCi0gICAgICAgICAgIjAuMDAxODQyLCAwLjAwMTg1MiwgMC4wMDE4NjgsIDAuMDAxODcxLCAwLjAwMTg3MywgMC4wMDE4NzQsIDAuMDAxODc1IiwgXAotICAgICAgICAgICIwLjAwMTgzNSwgMC4wMDE4NDYsIDAuMDAxODYzLCAwLjAwMTg2NywgMC4wMDE4NywgMC4wMDE4NzIsIDAuMDAxODcyIiwgXAotICAgICAgICAgICIwLjAwMTgzLCAwLjAwMTg0MSwgMC4wMDE4NTksIDAuMDAxODYzLCAwLjAwMTg2NiwgMC4wMDE4NjgsIDAuMDAxODY4IiwgXAotICAgICAgICAgICIwLjAwMTgyNSwgMC4wMDE4MzcsIDAuMDAxODU3LCAwLjAwMTg2MSwgMC4wMDE4NjQsIDAuMDAxODY3LCAwLjAwMTg2OCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzY2NiwgMC4wMDM2NzgsIDAuMDAzNjk1LCAwLjAwMzcsIDAuMDAzNzAxLCAwLjAwMzcwMywgMC4wMDM3MDMiLCBcCi0gICAgICAgICAgIjAuMDAzNjUyLCAwLjAwMzY2NSwgMC4wMDM2ODMsIDAuMDAzNjg3LCAwLjAwMzY4OSwgMC4wMDM2OSwgMC4wMDM2OTEiLCBcCi0gICAgICAgICAgIjAuMDAzNjQyLCAwLjAwMzY1NSwgMC4wMDM2NzUsIDAuMDAzNjc5LCAwLjAwMzY4MSwgMC4wMDM2ODMsIDAuMDAzNjg0IiwgXAotICAgICAgICAgICIwLjAwMzYzNiwgMC4wMDM2NDksIDAuMDAzNjcxLCAwLjAwMzY3NSwgMC4wMDM2NzgsIDAuMDAzNjgxLCAwLjAwMzY4MSIsIFwKLSAgICAgICAgICAiMC4wMDM2MzIsIDAuMDAzNjQ1LCAwLjAwMzY2OCwgMC4wMDM2NzMsIDAuMDAzNjc2LCAwLjAwMzY3OSwgMC4wMDM2NzkiLCBcCi0gICAgICAgICAgIjAuMDAzNjI4LCAwLjAwMzY0MiwgMC4wMDM2NjcsIDAuMDAzNjczLCAwLjAwMzY3NywgMC4wMDM2OCwgMC4wMDM2ODEiLCBcCi0gICAgICAgICAgIjAuMDAzNjI3LCAwLjAwMzY0LCAwLjAwMzY2OCwgMC4wMDM2NzQsIDAuMDAzNjc5LCAwLjAwMzY4MiwgMC4wMDM2ODMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxNjkyLCAwLjAwMTcwMSwgMC4wMDE3MTIsIDAuMDAxNzE0LCAwLjAwMTcxNiwgMC4wMDE3MTcsIDAuMDAxNzE3IiwgXAotICAgICAgICAgICIwLjAwMTY3LCAwLjAwMTY3OSwgMC4wMDE2OTEsIDAuMDAxNjkzLCAwLjAwMTY5NSwgMC4wMDE2OTUsIDAuMDAxNjk2IiwgXAotICAgICAgICAgICIwLjAwMTY0NywgMC4wMDE2NTcsIDAuMDAxNjcxLCAwLjAwMTY3MiwgMC4wMDE2NzMsIDAuMDAxNjc2LCAwLjAwMTY3NSIsIFwKLSAgICAgICAgICAiMC4wMDE2MzMsIDAuMDAxNjQzLCAwLjAwMTY1OCwgMC4wMDE2NjEsIDAuMDAxNjYzLCAwLjAwMTY2NCwgMC4wMDE2NjQiLCBcCi0gICAgICAgICAgIjAuMDAxNjI0LCAwLjAwMTYzNCwgMC4wMDE2NSwgMC4wMDE2NTMsIDAuMDAxNjU2LCAwLjAwMTY1NywgMC4wMDE2NTgiLCBcCi0gICAgICAgICAgIjAuMDAxNjE1LCAwLjAwMTYyNSwgMC4wMDE2NDQsIDAuMDAxNjQ4LCAwLjAwMTY1LCAwLjAwMTY1MiwgMC4wMDE2NTIiLCBcCi0gICAgICAgICAgIjAuMDAxNjEsIDAuMDAxNjIsIDAuMDAxNjQsIDAuMDAxNjQ1LCAwLjAwMTY0OCwgMC4wMDE2NSwgMC4wMDE2NSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzQ2OCwgMC4wMDM0OCwgMC4wMDM0OTcsIDAuMDAzNTAxLCAwLjAwMzUwMywgMC4wMDM1MDQsIDAuMDAzNTA1IiwgXAotICAgICAgICAgICIwLjAwMzQ0OCwgMC4wMDM0NiwgMC4wMDM0NzgsIDAuMDAzNDgyLCAwLjAwMzQ4NSwgMC4wMDM0ODYsIDAuMDAzNDg3IiwgXAotICAgICAgICAgICIwLjAwMzQzNiwgMC4wMDM0NDksIDAuMDAzNDcsIDAuMDAzNDc1LCAwLjAwMzQ3OCwgMC4wMDM0OCwgMC4wMDM0ODEiLCBcCi0gICAgICAgICAgIjAuMDAzNDMzLCAwLjAwMzQ0NiwgMC4wMDM0NywgMC4wMDM0NzYsIDAuMDAzNDc5LCAwLjAwMzQ4MiwgMC4wMDM0ODMiLCBcCi0gICAgICAgICAgIjAuMDAzNDMzLCAwLjAwMzQ0NywgMC4wMDM0NzMsIDAuMDAzNDgsIDAuMDAzNDg0LCAwLjAwMzQ4NywgMC4wMDM0ODgiLCBcCi0gICAgICAgICAgIjAuMDAzNDQ2LCAwLjAwMzQ1OSwgMC4wMDM0ODcsIDAuMDAzNDk0LCAwLjAwMzQ5OSwgMC4wMDM1MDMsIDAuMDAzNTA0IiwgXAotICAgICAgICAgICIwLjAwMzQ1OSwgMC4wMDM0NzIsIDAuMDAzNSwgMC4wMDM1MDksIDAuMDAzNTE0LCAwLjAwMzUxOSwgMC4wMDM1MiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDE4OCwgMC4wMDE4ODksIDAuMDAxOTAzLCAwLjAwMTkwNiwgMC4wMDE5MDcsIDAuMDAxOTA5LCAwLjAwMTkwOSIsIFwKLSAgICAgICAgICAiMC4wMDE4NTcsIDAuMDAxODY2LCAwLjAwMTg4MSwgMC4wMDE4ODQsIDAuMDAxODg2LCAwLjAwMTg4NywgMC4wMDE4ODgiLCBcCi0gICAgICAgICAgIjAuMDAxODUxLCAwLjAwMTg2MSwgMC4wMDE4NzcsIDAuMDAxODgxLCAwLjAwMTg4MywgMC4wMDE4ODUsIDAuMDAxODg1IiwgXAotICAgICAgICAgICIwLjAwMTg1LCAwLjAwMTg2LCAwLjAwMTg3OSwgMC4wMDE4ODMsIDAuMDAxODg2LCAwLjAwMTg4OCwgMC4wMDE4ODkiLCBcCi0gICAgICAgICAgIjAuMDAxODU0LCAwLjAwMTg2NCwgMC4wMDE4ODQsIDAuMDAxODg5LCAwLjAwMTg5MywgMC4wMDE4OTUsIDAuMDAxODk2IiwgXAotICAgICAgICAgICIwLjAwMTg3LCAwLjAwMTg3OSwgMC4wMDE4OTksIDAuMDAxOTA0LCAwLjAwMTkwNywgMC4wMDE5MTEsIDAuMDAxOTExIiwgXAotICAgICAgICAgICIwLjAwMTg4MiwgMC4wMDE4OTIsIDAuMDAxOTE1LCAwLjAwMTkyLCAwLjAwMTkyNSwgMC4wMDE5MjgsIDAuMDAxOTI5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyNzQxLCAwLjAwMjc0NiwgMC4wMDI3NTIsIDAuMDAyNzU0LCAwLjAwMjc1NCwgMC4wMDI3NTUsIDAuMDAyNzU1IiwgXAotICAgICAgICAgICIwLjAwMjcyNSwgMC4wMDI3MzEsIDAuMDAyNzM4LCAwLjAwMjczOSwgMC4wMDI3NCwgMC4wMDI3NCwgMC4wMDI3NDEiLCBcCi0gICAgICAgICAgIjAuMDAyNzEzLCAwLjAwMjcyLCAwLjAwMjcyOSwgMC4wMDI3MywgMC4wMDI3MzEsIDAuMDAyNzMyLCAwLjAwMjczMiIsIFwKLSAgICAgICAgICAiMC4wMDI3MDUsIDAuMDAyNzEzLCAwLjAwMjcyNCwgMC4wMDI3MjYsIDAuMDAyNzI3LCAwLjAwMjcyOCwgMC4wMDI3MjgiLCBcCi0gICAgICAgICAgIjAuMDAyNzAxLCAwLjAwMjcxLCAwLjAwMjcyMSwgMC4wMDI3MjMsIDAuMDAyNzI1LCAwLjAwMjcyNiwgMC4wMDI3MjYiLCBcCi0gICAgICAgICAgIjAuMDAyNzAzLCAwLjAwMjcxMiwgMC4wMDI3MjMsIDAuMDAyNzI3LCAwLjAwMjcyOCwgMC4wMDI3MjksIDAuMDAyNzMiLCBcCi0gICAgICAgICAgIjAuMDAyNzA0LCAwLjAwMjcxMiwgMC4wMDI3MjgsIDAuMDAyNzMsIDAuMDAyNzMyLCAwLjAwMjczNCwgMC4wMDI3MzQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxNjIyLCAwLjAwMTYzLCAwLjAwMTY0MiwgMC4wMDE2NDQsIDAuMDAxNjQ0LCAwLjAwMTY0NiwgMC4wMDE2NDciLCBcCi0gICAgICAgICAgIjAuMDAxNTk4LCAwLjAwMTYwNywgMC4wMDE2MjEsIDAuMDAxNjIxLCAwLjAwMTYyNCwgMC4wMDE2MjUsIDAuMDAxNjI1IiwgXAotICAgICAgICAgICIwLjAwMTU4MSwgMC4wMDE1OTEsIDAuMDAxNjA3LCAwLjAwMTYxMSwgMC4wMDE2MTIsIDAuMDAxNjE0LCAwLjAwMTYxNCIsIFwKLSAgICAgICAgICAiMC4wMDE1NzYsIDAuMDAxNTg3LCAwLjAwMTYwNSwgMC4wMDE2MDgsIDAuMDAxNjExLCAwLjAwMTYxMywgMC4wMDE2MTUiLCBcCi0gICAgICAgICAgIjAuMDAxNTc5LCAwLjAwMTU4OSwgMC4wMDE2MDksIDAuMDAxNjE0LCAwLjAwMTYxNywgMC4wMDE2MTgsIDAuMDAxNjIiLCBcCi0gICAgICAgICAgIjAuMDAxNTk2LCAwLjAwMTYwNywgMC4wMDE2MjksIDAuMDAxNjMzLCAwLjAwMTYzNywgMC4wMDE2NCwgMC4wMDE2NDEiLCBcCi0gICAgICAgICAgIjAuMDAxNTkzLCAwLjAwMTYwNCwgMC4wMDE2MjcsIDAuMDAxNjMyLCAwLjAwMTYzNSwgMC4wMDE2MzksIDAuMDAxNjQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI1MzgsIDAuMDAyNTQ2LCAwLjAwMjU1NiwgMC4wMDI1NTgsIDAuMDAyNTU5LCAwLjAwMjU2LCAwLjAwMjU2IiwgXAotICAgICAgICAgICIwLjAwMjUxNywgMC4wMDI1MjYsIDAuMDAyNTM3LCAwLjAwMjU0LCAwLjAwMjU0MSwgMC4wMDI1NDIsIDAuMDAyNTQyIiwgXAotICAgICAgICAgICIwLjAwMjUwNiwgMC4wMDI1MTUsIDAuMDAyNTMsIDAuMDAyNTMzLCAwLjAwMjUzNSwgMC4wMDI1MzYsIDAuMDAyNTM3IiwgXAotICAgICAgICAgICIwLjAwMjUwMiwgMC4wMDI1MTMsIDAuMDAyNTMxLCAwLjAwMjUzNCwgMC4wMDI1MzcsIDAuMDAyNTM5LCAwLjAwMjUzOSIsIFwKLSAgICAgICAgICAiMC4wMDI1MDgsIDAuMDAyNTIsIDAuMDAyNTM5LCAwLjAwMjU0MywgMC4wMDI1NDYsIDAuMDAyNTQ4LCAwLjAwMjU0OSIsIFwKLSAgICAgICAgICAiMC4wMDI1MTIsIDAuMDAyNTIzLCAwLjAwMjU0NCwgMC4wMDI1NSwgMC4wMDI1NTMsIDAuMDAyNTU1LCAwLjAwMjU1NiIsIFwKLSAgICAgICAgICAiMC4wMDI1MjgsIDAuMDAyNTM5LCAwLjAwMjU2LCAwLjAwMjU2NSwgMC4wMDI1NjksIDAuMDAyNTcyLCAwLjAwMjU3MyIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogT0EyMlgyICoKLSAqIC0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoT0EyMlgyKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMTU1MTgyOwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjI0Njk2OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYyMzYyNTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2MjQ2OTY7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjI2LCAwLjAwMDIyNiwgMC4wMDAyMjYsIDAuMDAwMjI2LCAwLjAwMDIyNiwgMC4wMDAyMjYsIDAuMDAwMjI2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjI3LCAwLjAwMDIyNywgMC4wMDAyMjcsIDAuMDAwMjI3LCAwLjAwMDIyNywgMC4wMDAyMjcsIDAuMDAwMjI3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihBMSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjc1OTMyOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDY3NTkzMjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2NzQyNTE7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjI2LCAwLjAwMDIyNiwgMC4wMDAyMjYsIDAuMDAwMjI2LCAwLjAwMDIyNiwgMC4wMDAyMjYsIDAuMDAwMjI2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjI3LCAwLjAwMDIyNywgMC4wMDAyMjcsIDAuMDAwMjI3LCAwLjAwMDIyNywgMC4wMDAyMjcsIDAuMDAwMjI3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjI3MzE1OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYyNDE4NTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2MjczMTU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNDgxLCAwLjAwMDQ4MiwgMC4wMDA0ODEsIDAuMDAwNDgyLCAwLjAwMDQ4MiwgMC4wMDA0ODIsIDAuMDAwNDgxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjU3LCAwLjAwMDI1OCwgMC4wMDAyNTcsIDAuMDAwMjU3LCAwLjAwMDI1NywgMC4wMDAyNTcsIDAuMDAwMjU3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCMSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjcwNDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2NzAyNTE7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjcwNDsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA0ODEsIDAuMDAwNDgxLCAwLjAwMDQ4MSwgMC4wMDA0ODIsIDAuMDAwNDgxLCAwLjAwMDQ4MSwgMC4wMDA0ODIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyNTcsIDAuMDAwMjU3LCAwLjAwMDI1NywgMC4wMDAyNTcsIDAuMDAwMjU3LCAwLjAwMDI1NywgMC4wMDAyNTciKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC41MTI4NzsKLSAgICBmdW5jdGlvbiA6ICIoKEEwK0ExKSAoQjArQjEpKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTAiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5NzkyMSwgMC4yMDI5NDksIDAuMjg0NDUzLCAwLjM4NjI1OCwgMC40ODc5NzMsIDAuNTg5NjEsIDAuNjkxMjgiLCBcCi0gICAgICAgICAgIjAuMTA3ODA3LCAwLjIxMjgzMywgMC4yOTQzNDYsIDAuMzk2MTQzLCAwLjQ5Nzg2MywgMC41OTk0OTksIDAuNzAxMjI5IiwgXAotICAgICAgICAgICIwLjExOTM4MywgMC4yMjQzODksIDAuMzA1OTA2LCAwLjQwNzY5MywgMC41MDk0MjQsIDAuNjExMDYsIDAuNzEyNzE0IiwgXAotICAgICAgICAgICIwLjEzMDIzLCAwLjIzNTIyMSwgMC4zMTY3MzEsIDAuNDE4NTM3LCAwLjUyMDI1OCwgMC42MjE4OTcsIDAuNzIzNTYyIiwgXAotICAgICAgICAgICIwLjE0MTAzOCwgMC4yNDU5NzIsIDAuMzI3NTEyLCAwLjQyOTI4OSwgMC41MzEwMTMsIDAuNjMyNjUyLCAwLjczNDMxNiIsIFwKLSAgICAgICAgICAiMC4xNTcyOTcsIDAuMjYyNDU1LCAwLjM0Mzk1OSwgMC40NDU3NTgsIDAuNTQ3NTAyLCAwLjY0OTIzNiwgMC43NTA3ODciLCBcCi0gICAgICAgICAgIjAuMTcwNTc3LCAwLjI3NTc5MiwgMC4zNTczMjksIDAuNDU5MTAyLCAwLjU2MDg2NiwgMC42NjI0OTEsIDAuNzY0MTIiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU5NzY0LCAwLjI2MjA1NywgMC40Mjg4NDgsIDAuNjM3MDk4LCAwLjg0Nzk0MSwgMS4wNTc2MywgMS4yNjYxMiIsIFwKLSAgICAgICAgICAiMC4wNTk3NTksIDAuMjYyMTUzLCAwLjQyODg0NCwgMC42Mzc3ODYsIDAuODQ3OTA0LCAxLjA1NzU5LCAxLjI2NzU4IiwgXAotICAgICAgICAgICIwLjA1OTcxOCwgMC4yNjIwNzgsIDAuNDI4OTksIDAuNjM3MDM2LCAwLjg0NzkxMiwgMS4wNTc1OSwgMS4yNjYzOCIsIFwKLSAgICAgICAgICAiMC4wNTk2NzEsIDAuMjYyMDYsIDAuNDI4NDM3LCAwLjYzNzgyNSwgMC44NDc4OTIsIDEuMDU3NTcsIDEuMjY3MDUiLCBcCi0gICAgICAgICAgIjAuMDU5ODQ2LCAwLjI2MjExNCwgMC40MjkwMDIsIDAuNjM2OTc1LCAwLjg0Nzg5NCwgMS4wNTc1NywgMS4yNjcwMSIsIFwKLSAgICAgICAgICAiMC4wNjA1MzMsIDAuMjYyMTY1LCAwLjQyODg0OCwgMC42Mzc3MTQsIDAuODQ3Nzc1LCAxLjA1NzA1LCAxLjI2NTY5IiwgXAotICAgICAgICAgICIwLjA2MTUxMiwgMC4yNjI1MDgsIDAuNDI5MDY2LCAwLjYzNzQxOSwgMC44NDc4MzIsIDEuMDU3NDQsIDEuMjY3MDkiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTAyMTU5LCAwLjIxMTQ4NSwgMC4yOTQ2MjMsIDAuMzk4MzE5LCAwLjUwMTk0MywgMC42MDU1NTQsIDAuNzA5MDE4IiwgXAotICAgICAgICAgICIwLjExMDcwMSwgMC4yMjAwMjQsIDAuMzAzMTc0LCAwLjQwNjg2MiwgMC41MTA0OTMsIDAuNjE0MDgyLCAwLjcxNzU1NyIsIFwKLSAgICAgICAgICAiMC4xMjA1MzYsIDAuMjI5ODg4LCAwLjMxMzAyOSwgMC40MTY3MjIsIDAuNTIwMzUxLCAwLjYyMzk1LCAwLjcyNzQxOSIsIFwKLSAgICAgICAgICAiMC4xMzAyNDcsIDAuMjM5NTgsIDAuMzIyNzM3LCAwLjQyNjQyNiwgMC41MzAwNiwgMC42MzM2NSwgMC43MzcxMTQiLCBcCi0gICAgICAgICAgIjAuMTM5NzE3LCAwLjI0OTA1NSwgMC4zMzIxOTksIDAuNDM1OTAyLCAwLjUzOTUyNSwgMC42NDMxNDgsIDAuNzQ2NjA5IiwgXAotICAgICAgICAgICIwLjE1NDAzMSwgMC4yNjM0NzMsIDAuMzQ2NjIyLCAwLjQ1MDMyNSwgMC41NTM5NDYsIDAuNjU3NTc5LCAwLjc2MTAzNSIsIFwKLSAgICAgICAgICAiMC4xNjU1NDEsIDAuMjc1MTY0LCAwLjM1ODMxNywgMC40NjIwMiwgMC41NjU2MzYsIDAuNjY5MTg2LCAwLjc3MjcyMSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjUwNSwgMC4yNjQ5OSwgMC40MzA4OTUsIDAuNjM5NjE1LCAwLjg0ODU0NSwgMS4wNTg1LCAxLjI2ODMxIiwgXAotICAgICAgICAgICIwLjA2NTAwNSwgMC4yNjQ5NTgsIDAuNDMwODkxLCAwLjYzOTYwMywgMC44NDg2NjksIDEuMDU4MzgsIDEuMjY4MzUiLCBcCi0gICAgICAgICAgIjAuMDY1MDA1LCAwLjI2NDk4LCAwLjQzMDg5MywgMC42Mzk2LCAwLjg0ODUyNywgMS4wNTg0NCwgMS4yNjgzMSIsIFwKLSAgICAgICAgICAiMC4wNjUwNjcsIDAuMjY0OTUyLCAwLjQzMDg5NCwgMC42Mzk1OTMsIDAuODQ4NTM3LCAxLjA1ODQ4LCAxLjI2ODMxIiwgXAotICAgICAgICAgICIwLjA2NTIzNywgMC4yNjUwOTgsIDAuNDMwODk3LCAwLjYzOTYwNiwgMC44NDg2MDcsIDEuMDU4NTIsIDEuMjY4NDMiLCBcCi0gICAgICAgICAgIjAuMDY2MDc4LCAwLjI2NTA4NiwgMC40MzA5NzUsIDAuNjM5NjM5LCAwLjg0ODUsIDEuMDU4NDksIDEuMjY4MzQiLCBcCi0gICAgICAgICAgIjAuMDY3MDUxLCAwLjI2NTQwNCwgMC40MzA1MjEsIDAuNjM5NzI2LCAwLjg0ODUyNSwgMS4wNTg1NSwgMS4yNjg0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkExIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTI5NjYsIDAuMTk3NjM4LCAwLjI3OTA3NywgMC4zODA4MjcsIDAuNDgyNDk4LCAwLjU4NDExLCAwLjY4NTc2MiIsIFwKLSAgICAgICAgICAiMC4xMDI5OTIsIDAuMjA3NTkzLCAwLjI4OTA0NSwgMC4zOTA3NzUsIDAuNDkyNDYyLCAwLjU5NDA3NSwgMC42OTU3MTEiLCBcCi0gICAgICAgICAgIjAuMTE0MjM2LCAwLjIxODk1NywgMC4zMDA0LCAwLjQwMjE1OCwgMC41MDM4MjQsIDAuNjA1NDM1LCAwLjcwNzA4NiIsIFwKLSAgICAgICAgICAiMC4xMjUwMzgsIDAuMjI5NjYsIDAuMzExMTA3LCAwLjQxMjgzNSwgMC41MTQ1MjgsIDAuNjE2MTQyLCAwLjcxNzg1OSIsIFwKLSAgICAgICAgICAiMC4xMzU1NjMsIDAuMjQwMjQsIDAuMzIxNzA5LCAwLjQyMzQ0MiwgMC41MjUxMiwgMC42MjY3MzMsIDAuNzI4MzgzIiwgXAotICAgICAgICAgICIwLjE1MTU5NCwgMC4yNTYzNTcsIDAuMzM3Nzk4LCAwLjQzOTUyNSwgMC41NDEyMjksIDAuNjQyODM4LCAwLjc0NDU0NyIsIFwKLSAgICAgICAgICAiMC4xNjQzNTcsIDAuMjY5Mzc5LCAwLjM1MDg0OCwgMC40NTI1ODQsIDAuNTU0MywgMC42NTU5MDIsIDAuNzU3NTI0Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1OTE4MywgMC4yNjE2NTcsIDAuNDI4MDM5LCAwLjYzNjg0MSwgMC44NDc2MSwgMS4wNTczMSwgMS4yNjY1OSIsIFwKLSAgICAgICAgICAiMC4wNTkyMjYsIDAuMjYxNjQ2LCAwLjQyODY0NiwgMC42MzY2ODcsIDAuODQ3NjE0LCAxLjA1NzMxLCAxLjI2NjY3IiwgXAotICAgICAgICAgICIwLjA1OTE1NiwgMC4yNjE2MTgsIDAuNDI4NDgsIDAuNjM2ODgzLCAwLjg0NzU3NywgMS4wNTcyNywgMS4yNjU3NiIsIFwKLSAgICAgICAgICAiMC4wNTkxNDEsIDAuMjYxNTY4LCAwLjQyODQ3NywgMC42MzcxNCwgMC44NDc1NzksIDEuMDU3MjUsIDEuMjY3MjIiLCBcCi0gICAgICAgICAgIjAuMDU5NDUxLCAwLjI2MTY1MywgMC40Mjg1NzYsIDAuNjM2ODI4LCAwLjg0NzQ2NywgMS4wNTcyNSwgMS4yNjY0OSIsIFwKLSAgICAgICAgICAiMC4wNjAyNjgsIDAuMjYyMTQ0LCAwLjQyODUxMiwgMC42Mzc4MTcsIDAuODQ3NDYsIDEuMDU3MTMsIDEuMjY2MzgiLCBcCi0gICAgICAgICAgIjAuMDYxMzkyLCAwLjI2MjI0OCwgMC40Mjg3NSwgMC42MzcwNzksIDAuODQ3NTM1LCAxLjA1NzE2LCAxLjI2NzAzIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5ODgzNywgMC4yMDgxNjMsIDAuMjkxMzA1LCAwLjM5NDk4NywgMC40OTg2MTEsIDAuNjAyMjE3LCAwLjcwNTY4MSIsIFwKLSAgICAgICAgICAiMC4xMDc1NTYsIDAuMjE2ODkyLCAwLjMwMDAyNSwgMC40MDM3MTMsIDAuNTA3MzI2LCAwLjYxMDg2NSwgMC43MTQ0MzkiLCBcCi0gICAgICAgICAgIjAuMTE4ODEzLCAwLjIyODEzOCwgMC4zMTEyOTYsIDAuNDE1MDIxLCAwLjUxODYyNCwgMC42MjIxOCwgMC43MjU2ODMiLCBcCi0gICAgICAgICAgIjAuMTMwNDAxLCAwLjIzOTczLCAwLjMyMjg5MywgMC40MjY1OTgsIDAuNTMwMTk2LCAwLjYzMzc1MywgMC43MzczMTkiLCBcCi0gICAgICAgICAgIjAuMTQxNzk3LCAwLjI1MTEyMywgMC4zMzQyODcsIDAuNDM3OTg0LCAwLjU0MTYyLCAwLjY0NTIxMywgMC43NDg2ODYiLCBcCi0gICAgICAgICAgIjAuMTU4OTY3LCAwLjI2ODMyNSwgMC4zNTE0OTIsIDAuNDU1MjIzLCAwLjU1ODgzLCAwLjY2MjM4NiwgMC43NjU5MTIiLCBcCi0gICAgICAgICAgIjAuMTcyNTcsIDAuMjgyMTE5LCAwLjM2NTI4NywgMC40Njg5NzUsIDAuNTcyNTk2LCAwLjY3NjE4OSwgMC43Nzk2OTYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY1MDU5LCAwLjI2NDk5NCwgMC40Mjk5MzIsIDAuNjM5NjAxLCAwLjg0ODUzNSwgMS4wNTg0NSwgMS4yNjg0NiIsIFwKLSAgICAgICAgICAiMC4wNjUwMzQsIDAuMjY0OTk1LCAwLjQzMDM0OSwgMC42Mzk1NDksIDAuODQ5MDI4LCAxLjA1ODY2LCAxLjI2ODQ1IiwgXAotICAgICAgICAgICIwLjA2NTAyLCAwLjI2NDkxNSwgMC40MzA4ODMsIDAuNjM5NzY4LCAwLjg0ODU2OSwgMS4wNTg1NywgMS4yNjg0IiwgXAotICAgICAgICAgICIwLjA2NTE1MiwgMC4yNjQ4ODUsIDAuNDMwOTA4LCAwLjYzOTEzNiwgMC44NDkwMTcsIDEuMDU4NTcsIDEuMjY4MSIsIFwKLSAgICAgICAgICAiMC4wNjUyNDQsIDAuMjY0ODYyLCAwLjQzMDg5MSwgMC42Mzk1OTUsIDAuODQ4NzUsIDEuMDU4NTYsIDEuMjY4NCIsIFwKLSAgICAgICAgICAiMC4wNjYyNTUsIDAuMjY1MzIzLCAwLjQzMDk0OSwgMC42Mzg1MTUsIDAuODQ4NzU3LCAxLjA1ODU4LCAxLjI2ODQxIiwgXAotICAgICAgICAgICIwLjA2NzcxLCAwLjI2NTQyMiwgMC40MzExODIsIDAuNjM5NjczLCAwLjg0ODc3LCAxLjA1ODYxLCAxLjI2ODQyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODc4ODksIDAuMTkyOTQyLCAwLjI3NDQ1MywgMC4zNzYyNTYsIDAuNDc3OTM5LCAwLjU3OTYyNSwgMC42ODEyNjkiLCBcCi0gICAgICAgICAgIjAuMDk3MjI2LCAwLjIwMjI1MiwgMC4yODM3NjEsIDAuMzg1NTQ3LCAwLjQ4NzI4NywgMC41ODg5ODQsIDAuNjkwNTgxIiwgXAotICAgICAgICAgICIwLjEwODg3NywgMC4yMTM4OTYsIDAuMjk1NDI1LCAwLjM5NzIxMSwgMC40OTg5NDIsIDAuNjAwNTgsIDAuNzAyMjM3IiwgXAotICAgICAgICAgICIwLjEyMDc3LCAwLjIyNTcyMSwgMC4zMDcyMzYsIDAuNDA5MDQ3LCAwLjUxMDczOCwgMC42MTI0MjIsIDAuNzE0MDc0IiwgXAotICAgICAgICAgICIwLjEzMjUwMiwgMC4yMzc0MzMsIDAuMzE4OTc2LCAwLjQyMDc1NCwgMC41MjI0OTMsIDAuNjI0MTMyLCAwLjcyNTc4NCIsIFwKLSAgICAgICAgICAiMC4xNTAwNjYsIDAuMjU1MTY0LCAwLjMzNjY4NiwgMC40Mzg0ODEsIDAuNTQwMjI0LCAwLjY0MTg1OCwgMC43NDM1MTQiLCBcCi0gICAgICAgICAgIjAuMTYzODA1LCAwLjI2ODkxMywgMC4zNTA0MTIsIDAuNDUyMTgsIDAuNTUzOTU5LCAwLjY1NTU3NywgMC43NTcyNjkiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU5NzM4LCAwLjI2MjM1MywgMC40Mjg4NDksIDAuNjM3MzQ5LCAwLjg0NzYxOSwgMS4wNTczNiwgMS4yNjY5NyIsIFwKLSAgICAgICAgICAiMC4wNTk2OTksIDAuMjYxOTk0LCAwLjQyODgyMSwgMC42MzgyMDksIDAuODQ3NTc5LCAxLjA1NzI1LCAxLjI2NjkxIiwgXAotICAgICAgICAgICIwLjA1OTY3MywgMC4yNjIwNzQsIDAuNDI4OTc5LCAwLjYzNzgwMiwgMC44NDc5MDMsIDEuMDU3NTUsIDEuMjY2NTkiLCBcCi0gICAgICAgICAgIjAuMDU5Njc4LCAwLjI2MjA0MiwgMC40Mjg4MjUsIDAuNjM3Mzc3LCAwLjg0NzU3MiwgMS4wNTcyNSwgMS4yNjU4IiwgXAotICAgICAgICAgICIwLjA2MDA1MiwgMC4yNjIwNTMsIDAuNDI4OTUxLCAwLjYzNzM5MywgMC44NDc4OTUsIDEuMDU3NDUsIDEuMjY2NTEiLCBcCi0gICAgICAgICAgIjAuMDYxNDYsIDAuMjYyNTY4LCAwLjQyODg5MywgMC42MzczOCwgMC44NDc3NzksIDEuMDU3NDIsIDEuMjY1NzUiLCBcCi0gICAgICAgICAgIjAuMDYyOCwgMC4yNjI3OTMsIDAuNDI5MDMsIDAuNjM3ODY0LCAwLjg0Nzg1NCwgMS4wNTc0MywgMS4yNjY5OCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTA0NDcsIDAuMTk4MjkzLCAwLjI4MTExNywgMC4zODQ1NzIsIDAuNDg4MTE0LCAwLjU5MTU1NiwgMC42OTUxMjkiLCBcCi0gICAgICAgICAgIjAuMDk5MTIyLCAwLjIwNjk3MSwgMC4yODk3ODcsIDAuMzkzMjQxLCAwLjQ5NjgyOCwgMC42MDAxNzYsIDAuNzAzOTQzIiwgXAotICAgICAgICAgICIwLjEwODg5OSwgMC4yMTY3NzIsIDAuMjk5NTk0LCAwLjQwMzA4LCAwLjUwNjUwMiwgMC42MTAwMDEsIDAuNzEzNjA1IiwgXAotICAgICAgICAgICIwLjExODQ2NCwgMC4yMjYzMjksIDAuMzA5MTYzLCAwLjQxMjYyNCwgMC41MTYxMDQsIDAuNjE5NTk0LCAwLjcyMzE3MSIsIFwKLSAgICAgICAgICAiMC4xMjc1OTksIDAuMjM1NTMzLCAwLjMxODM1OCwgMC40MjE4MTcsIDAuNTI1NDAyLCAwLjYyODc1MiwgMC43MzI1MTUiLCBcCi0gICAgICAgICAgIjAuMTQwOTc2LCAwLjI0OTExNiwgMC4zMzE5NzIsIDAuNDM1NDU0LCAwLjUzOTAwNywgMC42NDI0MDUsIDAuNzQ1OTkiLCBcCi0gICAgICAgICAgIjAuMTUxNDIyLCAwLjI1OTk2MywgMC4zNDI3OTEsIDAuNDQ2Mjk3LCAwLjU0OTcwOCwgMC42NTMxNTgsIDAuNzU2Njg2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2MjU1OSwgMC4yNjMwNTUsIDAuNDI5MjY1LCAwLjYzODA4OCwgMC44NDc2MDUsIDEuMDU2NywgMS4yNjY4IiwgXAotICAgICAgICAgICIwLjA2MjU3NiwgMC4yNjMwNiwgMC40MjkyNjgsIDAuNjM4MDgyLCAwLjg0NzU5MSwgMS4wNTc2MSwgMS4yNjUwOSIsIFwKLSAgICAgICAgICAiMC4wNjI1NjcsIDAuMjYzMDc1LCAwLjQyOTI1NCwgMC42MzgyNzQsIDAuODQ3NjU4LCAxLjA1NTgzLCAxLjI2NzY0IiwgXAotICAgICAgICAgICIwLjA2MjcyMywgMC4yNjMyNDYsIDAuNDI5MjYzLCAwLjYzODA5NywgMC44NDY1MDcsIDEuMDU2MDQsIDEuMjY0NyIsIFwKLSAgICAgICAgICAiMC4wNjMxMjQsIDAuMjYzMDg0LCAwLjQyOTI5MywgMC42MzgxMDgsIDAuODQ3NjI5LCAxLjA1NzYsIDEuMjY3NjQiLCBcCi0gICAgICAgICAgIjAuMDY0MzUzLCAwLjI2MzUyNCwgMC40Mjk0NTQsIDAuNjM4MzI5LCAwLjg0NzcxLCAxLjA1NzY0LCAxLjI2NDk0IiwgXAotICAgICAgICAgICIwLjA2NTczNiwgMC4yNjM5NTQsIDAuNDI4ODg4LCAwLjYzODUyLCAwLjg0NzcwOCwgMS4wNTc1NSwgMS4yNjY1MSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDgyMDU3LCAwLjE4NjYzNCwgMC4yNjgwNSwgMC4zNjk3ODEsIDAuNDcxNDQzLCAwLjU3MzA3NSwgMC42NzQ2OTciLCBcCi0gICAgICAgICAgIjAuMDkxMTE1LCAwLjE5NTc1MSwgMC4yNzcxODEsIDAuMzc4OTA5LCAwLjQ4MDU2OCwgMC41ODIxNzMsIDAuNjgzODIiLCBcCi0gICAgICAgICAgIjAuMTAyOTU3LCAwLjIwNzQ5NywgMC4yODg5MjYsIDAuMzkwNjczLCAwLjQ5MjMyOCwgMC41OTM5MzIsIDAuNjk1NjAyIiwgXAotICAgICAgICAgICIwLjExNDY0NywgMC4yMTkyMzEsIDAuMzAwNjYyLCAwLjQwMjQwNCwgMC41MDQwNzUsIDAuNjA1NjgxLCAwLjcwNzMyNiIsIFwKLSAgICAgICAgICAiMC4xMjYxNDYsIDAuMjMwNzc1LCAwLjMxMjIxMywgMC40MTM5NCwgMC41MTU2MiwgMC42MTcyMjksIDAuNzE4ODgyIiwgXAotICAgICAgICAgICIwLjE0MjcwMSwgMC4yNDc0NTMsIDAuMzI4ODg1LCAwLjQzMDU4NCwgMC41MzIyOTQsIDAuNjMzODg5LCAwLjczNTY0MSIsIFwKLSAgICAgICAgICAiMC4xNTU2OTgsIDAuMjYwODQ0LCAwLjM0MjI1LCAwLjQ0Mzk2MSwgMC41NDU2NzcsIDAuNjQ3Mjc1LCAwLjc0ODk0Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1OTExMiwgMC4yNjE2NDcsIDAuNDI4Mzc2LCAwLjYzNjk3NSwgMC44NDY4NDQsIDEuMDU2MSwgMS4yNjY2MiIsIFwKLSAgICAgICAgICAiMC4wNTkxMDksIDAuMjYxNTY4LCAwLjQyNzkyNiwgMC42MzY3NDIsIDAuODQ3Mzg2LCAxLjA1NzE4LCAxLjI2NTY4IiwgXAotICAgICAgICAgICIwLjA1OTA1NiwgMC4yNjE0NTEsIDAuNDI4Mzc4LCAwLjYzNjc1MywgMC44NDc0ODIsIDEuMDU3MDUsIDEuMjY3MDQiLCBcCi0gICAgICAgICAgIjAuMDU5MTQ3LCAwLjI2MTQ5OSwgMC40Mjg0MDUsIDAuNjM2NzQzLCAwLjg0NzQ5MSwgMS4wNTcxOCwgMS4yNjU3NCIsIFwKLSAgICAgICAgICAiMC4wNTk0OTcsIDAuMjYxNzY3LCAwLjQyODM1OSwgMC42Mzc3MiwgMC44NDczNTgsIDEuMDU3MDIsIDEuMjY1NDMiLCBcCi0gICAgICAgICAgIjAuMDYxNDUyLCAwLjI2MTg2OSwgMC40Mjg0OTUsIDAuNjM3NDkyLCAwLjg0NzM5OSwgMS4wNTcwNiwgMS4yNjcwNiIsIFwKLSAgICAgICAgICAiMC4wNjI2OTQsIDAuMjYyNTY2LCAwLjQyODU2NCwgMC42Mzc4MiwgMC44NDc0NDksIDEuMDU3MDgsIDEuMjY2OTIiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg2MjMyLCAwLjE5NDEsIDAuMjc2OTE3LCAwLjM4MDM3NCwgMC40ODM5NTQsIDAuNTg3MzA3LCAwLjY5MTA2OSIsIFwKLSAgICAgICAgICAiMC4wOTUxMjksIDAuMjAzMDE2LCAwLjI4NTgzNCwgMC4zODkyOTQsIDAuNDkyODc4LCAwLjU5NjIyOSwgMC42OTk5OTEiLCBcCi0gICAgICAgICAgIjAuMTA2MzU0LCAwLjIxNDI2MSwgMC4yOTcwODUsIDAuNDAwNTQ3LCAwLjUwNDEzMiwgMC42MDc0ODUsIDAuNzExMjQ5IiwgXAotICAgICAgICAgICIwLjExNzcxNCwgMC4yMjU2MzEsIDAuMzA4NDczLCAwLjQxMTk0LCAwLjUxNTUsIDAuNjE4OTc4LCAwLjcyMjUwNiIsIFwKLSAgICAgICAgICAiMC4xMjg1MjQsIDAuMjM2NTA5LCAwLjMxOTM1NSwgMC40MjI4MTMsIDAuNTI2Mzg0LCAwLjYyOTc0NiwgMC43MzMyMTkiLCBcCi0gICAgICAgICAgIjAuMTQ0MTE5LCAwLjI1MjMyNiwgMC4zMzUxNjgsIDAuNDM4NjI1LCAwLjU0MjE1NywgMC42NDU1NjYsIDAuNzQ5MDIzIiwgXAotICAgICAgICAgICIwLjE1NjA0NSwgMC4yNjQ2NDUsIDAuMzQ3NDc2LCAwLjQ1MDk3MSwgMC41NTQ0MzMsIDAuNjU3ODc4LCAwLjc2MTM4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2MjU2NCwgMC4yNjMxLCAwLjQyOTI2NSwgMC42MzgwODksIDAuODQ1NjQ1LCAxLjA1NzYsIDEuMjY1MTYiLCBcCi0gICAgICAgICAgIjAuMDYyNTcxLCAwLjI2MzA3MywgMC40MjkyNTMsIDAuNjM4MDk5LCAwLjg0NzY0NCwgMS4wNTc2LCAxLjI2NDQ4IiwgXAotICAgICAgICAgICIwLjA2MjYxMywgMC4yNjMxMzIsIDAuNDI5MjUzLCAwLjYzODA5NiwgMC44NDc2MjEsIDEuMDU3NiwgMS4yNjQ4OSIsIFwKLSAgICAgICAgICAiMC4wNjI3ODMsIDAuMjYzMDM2LCAwLjQyOTI2MywgMC42MzgxMDMsIDAuODQ3NjA3LCAxLjA1NTA2LCAxLjI2NDciLCBcCi0gICAgICAgICAgIjAuMDYzMjkxLCAwLjI2MzI4NSwgMC40MjkyOTcsIDAuNjM4MTA0LCAwLjg0NzYzNCwgMS4wNTc1NywgMS4yNjciLCBcCi0gICAgICAgICAgIjAuMDY1MDc5LCAwLjI2MzU2MywgMC40Mjk0NzEsIDAuNjM4MTkxLCAwLjg0NjI3OCwgMS4wNTc2MSwgMS4yNjciLCBcCi0gICAgICAgICAgIjAuMDY2OTUxLCAwLjI2NDIxNiwgMC40MjkxMDgsIDAuNjM4NTE3LCAwLjg0Njc0MiwgMS4wNTc3LCAxLjI2NDc0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjc1OCwgMC4wMDI4MzEsIDAuMDAyODQyLCAwLjAwMjg0OCwgMC4wMDI4NSwgMC4wMDI4NTIsIDAuMDAyODU0IiwgXAotICAgICAgICAgICIwLjAwMjc0MSwgMC4wMDI4MTUsIDAuMDAyODI2LCAwLjAwMjgzMiwgMC4wMDI4MzUsIDAuMDAyODM3LCAwLjAwMjgzOCIsIFwKLSAgICAgICAgICAiMC4wMDI3MjgsIDAuMDAyODA0LCAwLjAwMjgxNiwgMC4wMDI4MjIsIDAuMDAyODI0LCAwLjAwMjgyNiwgMC4wMDI4MjgiLCBcCi0gICAgICAgICAgIjAuMDAyNzE3LCAwLjAwMjc5NSwgMC4wMDI4MDgsIDAuMDAyODE0LCAwLjAwMjgxNywgMC4wMDI4MiwgMC4wMDI4MjEiLCBcCi0gICAgICAgICAgIjAuMDAyNzE1LCAwLjAwMjc5LCAwLjAwMjgwMywgMC4wMDI4MSwgMC4wMDI4MTMsIDAuMDAyODE2LCAwLjAwMjgxNyIsIFwKLSAgICAgICAgICAiMC4wMDI3MDUsIDAuMDAyNzgyLCAwLjAwMjc5NiwgMC4wMDI4MDUsIDAuMDAyODExLCAwLjAwMjgxMiwgMC4wMDI4MTQiLCBcCi0gICAgICAgICAgIjAuMDAyNywgMC4wMDI3NzYsIDAuMDAyNzkzLCAwLjAwMjgwMSwgMC4wMDI4MDYsIDAuMDAyODA5LCAwLjAwMjgxMSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDczLCAwLjAwNDgyNiwgMC4wMDQ4NDEsIDAuMDA0ODQ5LCAwLjAwNDg1MywgMC4wMDQ4NTYsIDAuMDA0ODU3IiwgXAotICAgICAgICAgICIwLjAwNDcxNywgMC4wMDQ4MTQsIDAuMDA0ODI5LCAwLjAwNDgzNywgMC4wMDQ4NDEsIDAuMDA0ODQ0LCAwLjAwNDg0NSIsIFwKLSAgICAgICAgICAiMC4wMDQ3MDQsIDAuMDA0ODA0LCAwLjAwNDgyMSwgMC4wMDQ4MjksIDAuMDA0ODM0LCAwLjAwNDgzNywgMC4wMDQ4MzkiLCBcCi0gICAgICAgICAgIjAuMDA0NzAxLCAwLjAwNDc5OSwgMC4wMDQ4MTUsIDAuMDA0ODI1LCAwLjAwNDgzLCAwLjAwNDgzMywgMC4wMDQ4MzUiLCBcCi0gICAgICAgICAgIjAuMDA0Njk4LCAwLjAwNDc5MywgMC4wMDQ4MTIsIDAuMDA0ODIyLCAwLjAwNDgyNywgMC4wMDQ4MywgMC4wMDQ4MzMiLCBcCi0gICAgICAgICAgIjAuMDA0Njk3LCAwLjAwNDc5LCAwLjAwNDgwOSwgMC4wMDQ4MiwgMC4wMDQ4MjYsIDAuMDA0ODMsIDAuMDA0ODMzIiwgXAotICAgICAgICAgICIwLjAwNDY5NCwgMC4wMDQ3ODYsIDAuMDA0ODA3LCAwLjAwNDgxOSwgMC4wMDQ4MjYsIDAuMDA0ODMsIDAuMDA0ODMzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjU3OSwgMC4wMDI2NDgsIDAuMDAyNjYxLCAwLjAwMjY2MywgMC4wMDI2NjcsIDAuMDAyNjY3LCAwLjAwMjY3IiwgXAotICAgICAgICAgICIwLjAwMjU2LCAwLjAwMjYzMywgMC4wMDI2NCwgMC4wMDI2NDcsIDAuMDAyNjQ4LCAwLjAwMjY1MSwgMC4wMDI2NTQiLCBcCi0gICAgICAgICAgIjAuMDAyNTM2LCAwLjAwMjYxMiwgMC4wMDI2MjIsIDAuMDAyNjI3LCAwLjAwMjYzLCAwLjAwMjYzMiwgMC4wMDI2MzMiLCBcCi0gICAgICAgICAgIjAuMDAyNTIsIDAuMDAyNTk3LCAwLjAwMjYwOCwgMC4wMDI2MTQsIDAuMDAyNjE3LCAwLjAwMjYxOSwgMC4wMDI2MiIsIFwKLSAgICAgICAgICAiMC4wMDI1MDgsIDAuMDAyNTg2LCAwLjAwMjU5OSwgMC4wMDI2MDUsIDAuMDAyNjA5LCAwLjAwMjYxMSwgMC4wMDI2MTIiLCBcCi0gICAgICAgICAgIjAuMDAyNDk4LCAwLjAwMjU3NSwgMC4wMDI1ODksIDAuMDAyNTk3LCAwLjAwMjYwMiwgMC4wMDI2MDMsIDAuMDAyNjA1IiwgXAotICAgICAgICAgICIwLjAwMjQ5MSwgMC4wMDI1NjgsIDAuMDAyNTgzLCAwLjAwMjU5MiwgMC4wMDI1OTksIDAuMDAyNTk4LCAwLjAwMjYwMSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDUzNCwgMC4wMDQ2MjksIDAuMDA0NjQ0LCAwLjAwNDY1MiwgMC4wMDQ2NTUsIDAuMDA0NjU4LCAwLjAwNDY2IiwgXAotICAgICAgICAgICIwLjAwNDUxMywgMC4wMDQ2MSwgMC4wMDQ2MjYsIDAuMDA0NjM0LCAwLjAwNDYzOSwgMC4wMDQ2NDEsIDAuMDA0NjQzIiwgXAotICAgICAgICAgICIwLjAwNDQ5OCwgMC4wMDQ1OTcsIDAuMDA0NjE1LCAwLjAwNDYyNCwgMC4wMDQ2MywgMC4wMDQ2MzIsIDAuMDA0NjM1IiwgXAotICAgICAgICAgICIwLjAwNDUsIDAuMDA0NTkzLCAwLjAwNDYxMiwgMC4wMDQ2MjMsIDAuMDA0NjI5LCAwLjAwNDYzMiwgMC4wMDQ2MzUiLCBcCi0gICAgICAgICAgIjAuMDA0NTAyLCAwLjAwNDU5MSwgMC4wMDQ2MTIsIDAuMDA0NjIzLCAwLjAwNDYzLCAwLjAwNDYzNCwgMC4wMDQ2MzciLCBcCi0gICAgICAgICAgIjAuMDA0NTAxLCAwLjAwNDU5NSwgMC4wMDQ2MTgsIDAuMDA0NjMyLCAwLjAwNDY0LCAwLjAwNDY0NCwgMC4wMDQ2NDgiLCBcCi0gICAgICAgICAgIjAuMDA0NTE2LCAwLjAwNDYwMywgMC4wMDQ2MjYsIDAuMDA0NjQxLCAwLjAwNDY1MSwgMC4wMDQ2NTYsIDAuMDA0NjYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyNzU3LCAwLjAwMjgzMSwgMC4wMDI4NDIsIDAuMDAyODQ4LCAwLjAwMjg1MSwgMC4wMDI4NTIsIDAuMDAyODU0IiwgXAotICAgICAgICAgICIwLjAwMjczNywgMC4wMDI4MTMsIDAuMDAyODI0LCAwLjAwMjgzLCAwLjAwMjgzNCwgMC4wMDI4MzUsIDAuMDAyODM3IiwgXAotICAgICAgICAgICIwLjAwMjcyNiwgMC4wMDI4MDMsIDAuMDAyODE1LCAwLjAwMjgyMywgMC4wMDI4MjYsIDAuMDAyODI4LCAwLjAwMjgzMSIsIFwKLSAgICAgICAgICAiMC4wMDI3MjIsIDAuMDAyOCwgMC4wMDI4MTMsIDAuMDAyODIyLCAwLjAwMjgyNiwgMC4wMDI4MjksIDAuMDAyODMxIiwgXAotICAgICAgICAgICIwLjAwMjczNCwgMC4wMDI4MDIsIDAuMDAyODE1LCAwLjAwMjgyNiwgMC4wMDI4MzEsIDAuMDAyODMzLCAwLjAwMjgzOCIsIFwKLSAgICAgICAgICAiMC4wMDI3MzYsIDAuMDAyODA2LCAwLjAwMjgyNSwgMC4wMDI4MzUsIDAuMDAyODQxLCAwLjAwMjg0MywgMC4wMDI4NDciLCBcCi0gICAgICAgICAgIjAuMDAyNzc0LCAwLjAwMjgyNCwgMC4wMDI4MzksIDAuMDAyODUsIDAuMDAyODU4LCAwLjAwMjg1OSwgMC4wMDI4NjIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDM3ODksIDAuMDAzODU4LCAwLjAwMzg2NiwgMC4wMDM4NzEsIDAuMDAzODczLCAwLjAwMzg3NCwgMC4wMDM4NzUiLCBcCi0gICAgICAgICAgIjAuMDAzNzc3LCAwLjAwMzg0NywgMC4wMDM4NTYsIDAuMDAzODYsIDAuMDAzODYyLCAwLjAwMzg2NCwgMC4wMDM4NjQiLCBcCi0gICAgICAgICAgIjAuMDAzNzYsIDAuMDAzODM1LCAwLjAwMzg0NSwgMC4wMDM4NDksIDAuMDAzODUyLCAwLjAwMzg1NCwgMC4wMDM4NTUiLCBcCi0gICAgICAgICAgIjAuMDAzNzQ4LCAwLjAwMzgyNywgMC4wMDM4MzgsIDAuMDAzODQ0LCAwLjAwMzg0NywgMC4wMDM4NDksIDAuMDAzODUiLCBcCi0gICAgICAgICAgIjAuMDAzNzQyLCAwLjAwMzgyMiwgMC4wMDM4MzQsIDAuMDAzODQsIDAuMDAzODQ0LCAwLjAwMzg0NiwgMC4wMDM4NDciLCBcCi0gICAgICAgICAgIjAuMDAzNzMxLCAwLjAwMzgyLCAwLjAwMzgzLCAwLjAwMzgzOCwgMC4wMDM4NDIsIDAuMDAzODQ1LCAwLjAwMzg0NiIsIFwKLSAgICAgICAgICAiMC4wMDM3MzcsIDAuMDAzODE3LCAwLjAwMzgzMiwgMC4wMDM4MzksIDAuMDAzODQzLCAwLjAwMzg0NiwgMC4wMDM4NDgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyNTA4LCAwLjAwMjU3OCwgMC4wMDI1ODcsIDAuMDAyNTkyLCAwLjAwMjU5NCwgMC4wMDI1OTcsIDAuMDAyNTk4IiwgXAotICAgICAgICAgICIwLjAwMjQ4NSwgMC4wMDI1NTgsIDAuMDAyNTY4LCAwLjAwMjU3MywgMC4wMDI1NzYsIDAuMDAyNTc3LCAwLjAwMjU3OSIsIFwKLSAgICAgICAgICAiMC4wMDI0NjcsIDAuMDAyNTQyLCAwLjAwMjU1NCwgMC4wMDI1NiwgMC4wMDI1NjMsIDAuMDAyNTY0LCAwLjAwMjU2NiIsIFwKLSAgICAgICAgICAiMC4wMDI0NiwgMC4wMDI1MzUsIDAuMDAyNTQ4LCAwLjAwMjU1NiwgMC4wMDI1NTksIDAuMDAyNTYyLCAwLjAwMjU2NCIsIFwKLSAgICAgICAgICAiMC4wMDI0NTMsIDAuMDAyNTMsIDAuMDAyNTQ2LCAwLjAwMjU1NSwgMC4wMDI1NiwgMC4wMDI1NjIsIDAuMDAyNTY2IiwgXAotICAgICAgICAgICIwLjAwMjQ3NiwgMC4wMDI1NCwgMC4wMDI1NTcsIDAuMDAyNTY2LCAwLjAwMjU3LCAwLjAwMjU3NCwgMC4wMDI1NzgiLCBcCi0gICAgICAgICAgIjAuMDAyNDg0LCAwLjAwMjU1MiwgMC4wMDI1NzEsIDAuMDAyNTc5LCAwLjAwMjU4NywgMC4wMDI1ODksIDAuMDAyNTk1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzNTg4LCAwLjAwMzY2MywgMC4wMDM2NzMsIDAuMDAzNjc4LCAwLjAwMzY4LCAwLjAwMzY4MiwgMC4wMDM2ODMiLCBcCi0gICAgICAgICAgIjAuMDAzNTY3LCAwLjAwMzY0NiwgMC4wMDM2NTcsIDAuMDAzNjYzLCAwLjAwMzY2NiwgMC4wMDM2NjcsIDAuMDAzNjY4IiwgXAotICAgICAgICAgICIwLjAwMzU1MSwgMC4wMDM2MzMsIDAuMDAzNjQ1LCAwLjAwMzY1MiwgMC4wMDM2NTYsIDAuMDAzNjU4LCAwLjAwMzY2IiwgXAotICAgICAgICAgICIwLjAwMzU0NywgMC4wMDM2MjgsIDAuMDAzNjQzLCAwLjAwMzY1MSwgMC4wMDM2NTUsIDAuMDAzNjU3LCAwLjAwMzY1OSIsIFwKLSAgICAgICAgICAiMC4wMDM1MzksIDAuMDAzNjI1LCAwLjAwMzY0MiwgMC4wMDM2NTIsIDAuMDAzNjU3LCAwLjAwMzY2LCAwLjAwMzY2MiIsIFwKLSAgICAgICAgICAiMC4wMDM1NTEsIDAuMDAzNjMzLCAwLjAwMzY1MiwgMC4wMDM2NjMsIDAuMDAzNjY5LCAwLjAwMzY3MywgMC4wMDM2NzUiLCBcCi0gICAgICAgICAgIjAuMDAzNTcsIDAuMDAzNjQ2LCAwLjAwMzY2NSwgMC4wMDM2NzcsIDAuMDAzNjgzLCAwLjAwMzY4OCwgMC4wMDM2OSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBPQUkyMTFYMiAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoT0FJMjExWDIpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4yODc5NDI7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE3MzkzODsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE3MzQ3NTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE3MzkzODsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA4MTgsIDAuMDAwODE4LCAwLjAwMDgxNywgMC4wMDA4MTcsIDAuMDAwODE3LCAwLjAwMDgxNywgMC4wMDA4MTciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA4MTksIDAuMDAwODIsIDAuMDAwODIsIDAuMDAwODIsIDAuMDAwODIsIDAuMDAwODIxLCAwLjAwMDgyMSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQTEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTY0ODkzOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTY0ODkzOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTY0Mjc1OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDgxOSwgMC4wMDA4MTgsIDAuMDAwODE4LCAwLjAwMDgxOCwgMC4wMDA4MTgsIDAuMDAwODE3LCAwLjAwMDgxNyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDgxOSwgMC4wMDA4MiwgMC4wMDA4MiwgMC4wMDA4MiwgMC4wMDA4MiwgMC4wMDA4MiwgMC4wMDA4MiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQjApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTY0MDk7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNjQwOTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE2MzYwODsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA4MTksIDAuMDAwODE4LCAwLjAwMDgxOCwgMC4wMDA4MTcsIDAuMDAwODE3LCAwLjAwMDgxNywgMC4wMDA4MTciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA4MiwgMC4wMDA4MiwgMC4wMDA4MiwgMC4wMDA4MiwgMC4wMDA4MiwgMC4wMDA4MjEsIDAuMDAwODIxIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihDMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNjE5NjE7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNjE4Nzg7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNjE5NjE7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMTg3LCAwLjAwMDE4NiwgMC4wMDAxODYsIDAuMDAwMTg1LCAwLjAwMDE4NSwgMC4wMDAxODUsIDAuMDAwMTg1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwOTI4LCAwLjAwMDkyOSwgMC4wMDA5MjksIDAuMDAwOTMxLCAwLjAwMDkzLCAwLjAwMDkyOSwgMC4wMDA5MjkiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4xOTA0MTc7Ci0gICAgZnVuY3Rpb24gOiAiKCEoKChBMCtBMSkgQjApIEMwKSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjQ4NDIsIDAuMjYwMTUzLCAwLjQxNTcyNSwgMC42MDk3NzcsIDAuODA0MjkxLCAwLjk5Nzc5OSwgMS4xOTI3NiIsIFwKLSAgICAgICAgICAiMC4wNzM0OTIsIDAuMjY4ODc2LCAwLjQyNDQxMSwgMC42MTg3MjYsIDAuODEyODI4LCAxLjAwNzE4LCAxLjIwMDg1IiwgXAotICAgICAgICAgICIwLjA4MzU1NywgMC4yNzkwMjgsIDAuNDM0NDQyLCAwLjYyODY1MSwgMC44MjI5MjksIDEuMDE2OTIsIDEuMjExNjMiLCBcCi0gICAgICAgICAgIjAuMDkzNTI3LCAwLjI4OTEyNywgMC40NDQ1ODksIDAuNjM4NzY5LCAwLjgzMzE5LCAxLjAyNjg0LCAxLjIyMTEzIiwgXAotICAgICAgICAgICIwLjEwMzQ2MiwgMC4yOTkxMDMsIDAuNDU0NjEzLCAwLjY0ODgxMywgMC44NDI4NDUsIDEuMDM2NzksIDEuMjMxNyIsIFwKLSAgICAgICAgICAiMC4xMTgyNjIsIDAuMzE1MTYzLCAwLjQ3MDA1MywgMC42NjQ4NDMsIDAuODU5Mzk5LCAxLjA1MzI5LCAxLjI0Nzc4IiwgXAotICAgICAgICAgICIwLjEyOTk2NiwgMC4zMjkxODMsIDAuNDg0NzU2LCAwLjY3OTA4MSwgMC44NzMyMTksIDEuMDY3NzIsIDEuMjYxNDMiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTEyMzk0LCAwLjUwNTk5MiwgMC44MjEzOTksIDEuMjE0NTIsIDEuNjA3OTgsIDIuMDAxMzEsIDIuMzk1NDYiLCBcCi0gICAgICAgICAgIjAuMTEyMzc3LCAwLjUwNjUzMywgMC44MjEwMjMsIDEuMjE0NDMsIDEuNjA3OTIsIDIuMDAxNDMsIDIuMzk1MjQiLCBcCi0gICAgICAgICAgIjAuMTEzNzAyLCAwLjUwNjI2NSwgMC44MjA5OTEsIDEuMjE1MTUsIDEuNjA4MDEsIDIuMDAxNTgsIDIuMzk1MDciLCBcCi0gICAgICAgICAgIjAuMTE2OTE3LCAwLjUwNjI4NCwgMC44MjEwMzgsIDEuMjE0NjEsIDEuNjA4NTQsIDIuMDAyMDEsIDIuMzk1NTEiLCBcCi0gICAgICAgICAgIjAuMTIxMTk1LCAwLjUwNjE2NSwgMC44MjEwMzUsIDEuMjE0NTcsIDEuNjA4MTMsIDIuMDAxNCwgMi4zOTUwMiIsIFwKLSAgICAgICAgICAiMC4xMjk0NjQsIDAuNTA3OTgsIDAuODIxMzcyLCAxLjIxNDEyLCAxLjYwODE4LCAyLjAwMTY1LCAyLjM5NTQ1IiwgXAotICAgICAgICAgICIwLjEzODE2LCAwLjUxMDg4NywgMC44MjE5NzYsIDEuMjE0OTYsIDEuNjA3OSwgMi4wMDE3NCwgMi4zOTUwOSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTU2NzksIDAuMzgzMjg2LCAwLjYxMzE5MSwgMC45MDAxNTYsIDEuMTg2OTcsIDEuNDc0MTgsIDEuNzYxMjgiLCBcCi0gICAgICAgICAgIjAuMTA0NzA3LCAwLjM5MjUxMywgMC42MjIyNzIsIDAuOTA5Mjg4LCAxLjE5NywgMS40ODM2MiwgMS43NzA3OCIsIFwKLSAgICAgICAgICAiMC4xMTQ0OTksIDAuNDAyNjA3LCAwLjYzMjQzNCwgMC45MTk3NywgMS4yMDY3LCAxLjQ5NDI5LCAxLjc4MTU3IiwgXAotICAgICAgICAgICIwLjEyMzYxNSwgMC40MTE2MTcsIDAuNjQxNDI4LCAwLjkyODg4MSwgMS4yMTYxNiwgMS41MDI3NiwgMS43OTEwOCIsIFwKLSAgICAgICAgICAiMC4xMzI1NzQsIDAuNDIwNjQ5LCAwLjY1MDQ1MywgMC45MzgyODgsIDEuMjI0ODEsIDEuNTEyNiwgMS43OTg5IiwgXAotICAgICAgICAgICIwLjE0NjY4LCAwLjQzNDg3NSwgMC42NjQ2NjIsIDAuOTUyMzk3LCAxLjIzOTA1LCAxLjUyNjE1LCAxLjgxMzkiLCBcCi0gICAgICAgICAgIjAuMTU4NTA1LCAwLjQ0NzE0NSwgMC42NzczMTUsIDAuOTY0NTM3LCAxLjI1MTg3LCAxLjUzODYzLCAxLjgyNjY1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE1MzYxNywgMC43MTcwMywgMS4xNjc3MiwgMS43MzEzMiwgMi4yOTQ2NSwgMi44NTY3MSwgMy40MTk3NSIsIFwKLSAgICAgICAgICAiMC4xNTM1MDksIDAuNzE3MTA2LCAxLjE2NzgsIDEuNzMxLCAyLjI5NDc5LCAyLjg1NzkyLCAzLjQyMTI5IiwgXAotICAgICAgICAgICIwLjE1MzczNywgMC43MTcwNTEsIDEuMTY3NzMsIDEuNzMyMjksIDIuMjkzODksIDIuODU5MSwgMy40MjIxMiIsIFwKLSAgICAgICAgICAiMC4xNTQ4MTUsIDAuNzE2ODQxLCAxLjE2ODM2LCAxLjczMTMsIDIuMjk0NzYsIDIuODU2NzksIDMuNDIyNjYiLCBcCi0gICAgICAgICAgIjAuMTU2NzgyLCAwLjcxNzA5NCwgMS4xNjc3NSwgMS43MzEzNywgMi4yOTQ2MSwgMi44NTgzNiwgMy40MTk2OSIsIFwKLSAgICAgICAgICAiMC4xNjEwMzMsIDAuNzE3MjAzLCAxLjE2ODI4LCAxLjczMTYsIDIuMjk0MzksIDIuODU2NzQsIDMuNDIwODciLCBcCi0gICAgICAgICAgIjAuMTY1OTcsIDAuNzE3OTA1LCAxLjE2NzkzLCAxLjczMTY1LCAyLjI5NTEzLCAyLjg1NjcxLCAzLjQyMTE2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkExIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjE3ODgsIDAuMjU3MDc3LCAwLjQxMjUyOCwgMC42MDY5MzgsIDAuODAxMDksIDAuOTk1MjE1LCAxLjE4ODc3IiwgXAotICAgICAgICAgICIwLjA3MDcwOSwgMC4yNjYxMzYsIDAuNDIxNTYyLCAwLjYxNTY1MiwgMC44MTAyNTIsIDEuMDA0MTIsIDEuMTk3NzciLCBcCi0gICAgICAgICAgIjAuMDgyMjM0LCAwLjI3NzY3MiwgMC40MzMwMTcsIDAuNjI3MTAyLCAwLjgyMTE5NSwgMS4wMTU2NiwgMS4yMDk2NCIsIFwKLSAgICAgICAgICAiMC4wOTM0ODUsIDAuMjg4ODg4LCAwLjQ0NDMxNiwgMC42Mzg2NzUsIDAuODMyNTM2LCAxLjAyNjkzLCAxLjIyMTIzIiwgXAotICAgICAgICAgICIwLjEwNTQwNiwgMC4zMDAzNTYsIDAuNDU1ODM5LCAwLjY1MDE0OCwgMC44NDM5MDEsIDEuMDM4MDYsIDEuMjMzMDIiLCBcCi0gICAgICAgICAgIjAuMTIzMzAxLCAwLjMxODkwMSwgMC40NzQ0MDcsIDAuNjY4NDcsIDAuODYyNjQ3LCAxLjA1NjU4LCAxLjI1MTI2IiwgXAotICAgICAgICAgICIwLjEzNjgwNCwgMC4zMzQ5NjcsIDAuNDkwNDkzLCAwLjY4NDU0NiwgMC44NzkwNjYsIDEuMDczMDQsIDEuMjY3MzEiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTEyMzQ5LCAwLjUwNTk2MywgMC44MjA5MzUsIDEuMjE0MzgsIDEuNjA4NTQsIDIuMDAxMzksIDIuMzk0NzkiLCBcCi0gICAgICAgICAgIjAuMTEyMzI5LCAwLjUwNjE3MSwgMC44MjA5NDIsIDEuMjE0MjEsIDEuNjA4MjgsIDIuMDAxNjIsIDIuMzk0NzciLCBcCi0gICAgICAgICAgIjAuMTE1MDI3LCAwLjUwNjE2OCwgMC44MjE0MDcsIDEuMjE0MSwgMS42MDc1MiwgMi4wMDE2MywgMi4zOTUzOSIsIFwKLSAgICAgICAgICAiMC4xMjA2NTUsIDAuNTA2MDQ5LCAwLjgyMDk5MSwgMS4yMTQ1NywgMS42MDc5OCwgMi4wMDE0OSwgMi4zOTQ3OCIsIFwKLSAgICAgICAgICAiMC4xMjczNjcsIDAuNTA2MDkyLCAwLjgyMTAwMywgMS4yMTQ0OSwgMS42MDc1MiwgMi4wMDEzOCwgMi4zOTUwNyIsIFwKLSAgICAgICAgICAiMC4xNDAyMTMsIDAuNTA4NzAzLCAwLjgyMTA2MSwgMS4yMTUwNCwgMS42MDgxNSwgMi4wMDE0NSwgMi4zOTQ4MSIsIFwKLSAgICAgICAgICAiMC4xNTI4NjUsIDAuNTEzMDM4LCAwLjgyMTY1NywgMS4yMTQyMiwgMS42MDc4NiwgMi4wMDE0NiwgMi4zOTU0NSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTAyMDQsIDAuMzgwODIyLCAwLjYxMzQ1NSwgMC45MDMyOTUsIDEuMTk0NDUsIDEuNDg0MjksIDEuNzc0MjQiLCBcCi0gICAgICAgICAgIjAuMDk5MzI3LCAwLjM5MDMwNSwgMC42MjI1NTEsIDAuOTEzMjQ5LCAxLjIwMzM1LCAxLjQ5NDM5LCAxLjc4NDQ1IiwgXAotICAgICAgICAgICIwLjEwODg2MywgMC40MDAxMzksIDAuNjMyODMyLCAwLjkyMzc4NiwgMS4yMTM1NiwgMS41MDM4OSwgMS43OTUyOSIsIFwKLSAgICAgICAgICAiMC4xMTc4NDUsIDAuNDA5MjksIDAuNjQxNzQ0LCAwLjkzMjIxOCwgMS4yMjI4OSwgMS41MTMzNiwgMS44MDQ3MSIsIFwKLSAgICAgICAgICAiMC4xMjY2NzcsIDAuNDE4Mjc3LCAwLjY1MDc3NSwgMC45NDE4NzQsIDEuMjMxNjEsIDEuNTIyODMsIDEuODEyNjkiLCBcCi0gICAgICAgICAgIjAuMTQwNjU5LCAwLjQzMjQyLCAwLjY2NDg3OCwgMC45NTU1NTUsIDEuMjQ1NzgsIDEuNTM3NTksIDEuODI2NDIiLCBcCi0gICAgICAgICAgIjAuMTUyMTMxLCAwLjQ0NDU4NiwgMC42Nzc0ODMsIDAuOTY3OTk5LCAxLjI1ODIyLCAxLjU0ODgyLCAxLjgzOTgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTQ3ODY3LCAwLjcxOTQyMSwgMS4xNzMwNCwgMS43NDcwMSwgMi4zMTI0NywgMi44ODk4OSwgMy40NTc4IiwgXAotICAgICAgICAgICIwLjE0NzkzMSwgMC43MTczNjEsIDEuMTc1NzQsIDEuNzQ3NjksIDIuMzE0MTksIDIuODkxMTQsIDMuNDc1NzEiLCBcCi0gICAgICAgICAgIjAuMTQ4MTIyLCAwLjcxODU0LCAxLjE3NjU4LCAxLjc0MjU5LCAyLjMxODQ1LCAyLjg4OTUzLCAzLjQ1MTgyIiwgXAotICAgICAgICAgICIwLjE0OTAxMSwgMC43MTg2MzMsIDEuMTc1MTIsIDEuNzQzOTgsIDIuMzE4NzYsIDIuODkwMSwgMy40NTE3NyIsIFwKLSAgICAgICAgICAiMC4xNTEwMDksIDAuNzE4MDIxLCAxLjE3Mzg4LCAxLjc0Mjc2LCAyLjMxNjc0LCAyLjg4MjEzLCAzLjQ2MTE2IiwgXAotICAgICAgICAgICIwLjE1NTU3LCAwLjcxNzQyMywgMS4xNzM4MSwgMS43NDcyNiwgMi4zMTY0NiwgMi44ODI1MSwgMy40NjA5MyIsIFwKLSAgICAgICAgICAiMC4xNjA4NzQsIDAuNzE5ODc1LCAxLjE3MzMsIDEuNzQ3MTcsIDIuMzEzOTIsIDIuODg0MjIsIDMuNDc1OTIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjAiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzMTY2MSwgMC4xMzQ0ODksIDAuMjE2NDI4LCAwLjMxOTAwOCwgMC40MjE0MjgsIDAuNTIzOTgsIDAuNjI2NDg4IiwgXAotICAgICAgICAgICIwLjA0MTYzNywgMC4xNDQxNywgMC4yMjYyNzQsIDAuMzI4NjYzLCAwLjQzMTIzNSwgMC41MzM2ODQsIDAuNjM2MTQzIiwgXAotICAgICAgICAgICIwLjA1NDM0OCwgMC4xNTcxNDgsIDAuMjM5MTYsIDAuMzQxNjUyLCAwLjQ0NDE5MiwgMC41NDY3NDUsIDAuNjQ5MDg4IiwgXAotICAgICAgICAgICIwLjA2NjI1NywgMC4xNjkxNTYsIDAuMjUxMzEzLCAwLjM1MzY0MywgMC40NTYxMTcsIDAuNTU4NjgzLCAwLjY2MTAyOSIsIFwKLSAgICAgICAgICAiMC4wNzY1NTgsIDAuMTgxNjA1LCAwLjI2MzgsIDAuMzY2MTMsIDAuNDY4NTgzLCAwLjU3MTA2NywgMC42NzM1MzYiLCBcCi0gICAgICAgICAgIjAuMDkwNTg4LCAwLjIwMjIwOCwgMC4yODM1NzcsIDAuMzg2MzI3LCAwLjQ4ODYxNywgMC41OTA5ODgsIDAuNjkzNDU3IiwgXAotICAgICAgICAgICIwLjEwMTIwMywgMC4yMjAwMDMsIDAuMzAxMTI3LCAwLjQwMzQ5OSwgMC41MDYyOTYsIDAuNjA4NTc5LCAwLjcxMDk3MiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjEzMjgsIDAuMjcyNTc5LCAwLjQ0MTU5MywgMC42NTMxODQsIDAuODY0Mzg4LCAxLjA3NTk4LCAxLjI4NzUiLCBcCi0gICAgICAgICAgIjAuMDYyNTg3LCAwLjI3MjU1NCwgMC40NDE2OTcsIDAuNjUzLCAwLjg2NDQxNywgMS4wNzYwMywgMS4yODcyMiIsIFwKLSAgICAgICAgICAiMC4wNjg1NTgsIDAuMjcyNTkxLCAwLjQ0MTYxMSwgMC42NTMxNTcsIDAuODY0NjE3LCAxLjA3NTg0LCAxLjI4NzE5IiwgXAotICAgICAgICAgICIwLjA3NjkwMiwgMC4yNzM5NTEsIDAuNDQxNzc4LCAwLjY1MzE2OCwgMC44NjQ0LCAxLjA3NTgxLCAxLjI4NzQ1IiwgXAotICAgICAgICAgICIwLjA4NjA4NiwgMC4yNzcyMDQsIDAuNDQyMTUzLCAwLjY1MzAyMiwgMC44NjQ0MjMsIDEuMDc2MDYsIDEuMjg3MjYiLCBcCi0gICAgICAgICAgIjAuMTAxNTY2LCAwLjI4NDgxMSwgMC40NDYwMTcsIDAuNjUzNTk3LCAwLjg2NDU1MSwgMS4wNzYwNCwgMS4yODc0MyIsIFwKLSAgICAgICAgICAiMC4xMTQ2MTcsIDAuMjkzMTYyLCAwLjQ1MTUyLCAwLjY1NjAyOSwgMC44NjQ2NjksIDEuMDc1ODgsIDEuMjg3MjEiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDkxMzA2LCAwLjM3OTA5NCwgMC42MDg3MDgsIDAuODk4MTM2LCAxLjE4ODE4LCAxLjQ3OTU2LCAxLjc2OTMiLCBcCi0gICAgICAgICAgIjAuMDk5ODg3LCAwLjM4NzgwMiwgMC42MTc5NTksIDAuOTA3NDIzLCAxLjE5NzEzLCAxLjQ4Nzg1LCAxLjc3ODY5IiwgXAotICAgICAgICAgICIwLjExMDM0OCwgMC4zOTg2MTQsIDAuNjI4NDcxLCAwLjkxODA2MywgMS4yMDg2OCwgMS40OTk0MSwgMS43ODkxIiwgXAotICAgICAgICAgICIwLjEyMDgxNSwgMC40MDkyMTgsIDAuNjM5MTkyLCAwLjkyODY1LCAxLjIxOTA4LCAxLjUwOTUyLCAxLjc5OTI1IiwgXAotICAgICAgICAgICIwLjEzMTQ4NCwgMC40MTk4MjEsIDAuNjQ5OTYyLCAwLjkzOTY2MiwgMS4yMzAwMywgMS41MjA0NiwgMS44MTE3NiIsIFwKLSAgICAgICAgICAiMC4xNDgxNDcsIDAuNDM1NDE3LCAwLjY2NzIzNiwgMC45NTY1MTIsIDEuMjQ3NjgsIDEuNTM3MDgsIDEuODI4MzEiLCBcCi0gICAgICAgICAgIjAuMTYyNjYxLCAwLjQ1MTU0OCwgMC42ODE3ODIsIDAuOTcxMTg4LCAxLjI2MTU2LCAxLjU1MjY2LCAxLjg0MjI0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE1MzYyNywgMC43MTc4OTksIDEuMTc1OSwgMS43NDc3MSwgMi4zMTQwNSwgMi44ODIxMywgMy40NjE3NCIsIFwKLSAgICAgICAgICAiMC4xNTM1OTUsIDAuNzE5MzUsIDEuMTczMDQsIDEuNzQyNDQsIDIuMzE0MiwgMi44ODI1LCAzLjQ3NjAyIiwgXAotICAgICAgICAgICIwLjE1Mzk5MSwgMC43MTczMDIsIDEuMTc2NDEsIDEuNzQ3OTUsIDIuMzEyNDIsIDIuODgyMTMsIDMuNDYxNTYiLCBcCi0gICAgICAgICAgIjAuMTU2LCAwLjcxODk4MSwgMS4xNzYyNCwgMS43NDc2MywgMi4zMTUyMywgMi44ODk5OSwgMy40NjEyMiIsIFwKLSAgICAgICAgICAiMC4xNTk3ODQsIDAuNzE5MTUxLCAxLjE3NjMzLCAxLjc0MjYxLCAyLjMxOTI4LCAyLjg5MDUsIDMuNDUxNDgiLCBcCi0gICAgICAgICAgIjAuMTY3MDU1LCAwLjcxNzM2OSwgMS4xNzI3NCwgMS43NDc0OCwgMi4zMTI0MiwgMi44ODc3NCwgMy40NzYxMSIsIFwKLSAgICAgICAgICAiMC4xNzUzNjgsIDAuNzIwMTM3LCAxLjE3NjMsIDEuNzQ3MTcsIDIuMzE3OTQsIDIuODkwOCwgMy40NTk3MSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDI5NDQxLCAwLjEzMTI4NywgMC4yMTI3MjYsIDAuMzE0NTM4LCAwLjQxNjI4MywgMC41MTgwOTQsIDAuNjE5OCIsIFwKLSAgICAgICAgICAiMC4wMzk0OTMsIDAuMTQxMzIsIDAuMjIyODMyLCAwLjMyNDY3NSwgMC40MjYzNDQsIDAuNTI4MDcxLCAwLjYyOTc4OCIsIFwKLSAgICAgICAgICAiMC4wNTIwODksIDAuMTUzNTcxLCAwLjIzNTE4NiwgMC4zMzYzNDcsIDAuNDM4Mjg2LCAwLjU0MDIyNCwgMC42NDE2MTEiLCBcCi0gICAgICAgICAgIjAuMDYzOTE0LCAwLjE2NjAzMywgMC4yNDc1NTYsIDAuMzQ5MjQ5LCAwLjQ1MDkxMywgMC41NTE2NDEsIDAuNjUzMzA0IiwgXAotICAgICAgICAgICIwLjA3Mzc4NiwgMC4xNzg3MzYsIDAuMjYwMTYzLCAwLjM2MjA3NiwgMC40NjMwNzMsIDAuNTY0ODMyLCAwLjY2NjU5MyIsIFwKLSAgICAgICAgICAiMC4wODY5ODgsIDAuMTk5MzM0LCAwLjI4MDA3NywgMC4zODIxNTcsIDAuNDgzNzk4LCAwLjU4NTQyMywgMC42ODczNSIsIFwKLSAgICAgICAgICAiMC4wOTcwNzYsIDAuMjE3MTU1LCAwLjI5NzU5OSwgMC4zOTkyODEsIDAuNTAxNDM0LCAwLjYwMzA1MywgMC43MDQ2ODciKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU4Mzg3LCAwLjI2ODAzMSwgMC40MzU5MjgsIDAuNjQ1NzEyLCAwLjg1NTYxNSwgMS4wNjU1LCAxLjI3NTUxIiwgXAotICAgICAgICAgICIwLjA1OTg2NywgMC4yNjc5OTUsIDAuNDM1OTY2LCAwLjY0NTgwMywgMC44NTU4NjIsIDEuMDY1OTQsIDEuMjc1NSIsIFwKLSAgICAgICAgICAiMC4wNjYyNzIsIDAuMjY3OTc3LCAwLjQzNTg1LCAwLjY0NTczMSwgMC44NTU4ODEsIDEuMDY1NTksIDEuMjc1OCIsIFwKLSAgICAgICAgICAiMC4wNzQ2NSwgMC4yNjk0NzgsIDAuNDM1ODEsIDAuNjQ1NzI1LCAwLjg1NTU5OSwgMS4wNjU1OSwgMS4yNzU1NiIsIFwKLSAgICAgICAgICAiMC4wODM4MjksIDAuMjcyODQ0LCAwLjQzNjQzMiwgMC42NDU3MDcsIDAuODU1ODMsIDEuMDY1NiwgMS4yNzU2OCIsIFwKLSAgICAgICAgICAiMC4wOTk2NTYsIDAuMjgwNDk0LCAwLjQ0MDM2MywgMC42NDYxMjgsIDAuODU1ODk4LCAxLjA2NTYzLCAxLjI3NTU0IiwgXAotICAgICAgICAgICIwLjExMjU5NCwgMC4yODkwMiwgMC40NDU5NjYsIDAuNjQ4ODgsIDAuODU1OTQyLCAxLjA2NTgyLCAxLjI3NTU0Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4NDE4NywgMC4zNzE5NCwgMC42MDE3OTksIDAuODkxNDE4LCAxLjE4MTIzLCAxLjQ3MTg0LCAxLjc2Mjk0IiwgXAotICAgICAgICAgICIwLjA5MjQ3NiwgMC4zODA1NTEsIDAuNjEwMjc4LCAwLjg5OTMxMiwgMS4xODk1NywgMS40Nzk5MiwgMS43NzA0OSIsIFwKLSAgICAgICAgICAiMC4xMDMzNjIsIDAuMzkxNDk0LCAwLjYyMTI2NiwgMC45MTAzMzYsIDEuMjAwNzMsIDEuNDkxNTQsIDEuNzgxNDIiLCBcCi0gICAgICAgICAgIjAuMTE0MTk4LCAwLjQwMjMxMiwgMC42MzIzNDQsIDAuOTIxMjc3LCAxLjIxMjAyLCAxLjUwMTk3LCAxLjc5MzU1IiwgXAotICAgICAgICAgICIwLjEyNTEyMywgMC40MTMwMzUsIDAuNjQzMTU5LCAwLjkzMTk4OCwgMS4yMjIzMiwgMS41MTMwNiwgMS44MDM4MSIsIFwKLSAgICAgICAgICAiMC4xNDM2NCwgMC40MzA1NDUsIDAuNjYwOTgxLCAwLjk1MDMzNiwgMS4yNDA1NSwgMS41MzIwNSwgMS44MjEwNyIsIFwKLSAgICAgICAgICAiMC4xNTg0NDksIDAuNDQ2MDQxLCAwLjY3NTk3NiwgMC45NjU1MjUsIDEuMjU1MzYsIDEuNTQ1NTksIDEuODM2MiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNTM1NCwgMC43MTkzNTcsIDEuMTc2NTIsIDEuNzQyNzksIDIuMzE4NTksIDIuODkwNjIsIDMuNDUxODMiLCBcCi0gICAgICAgICAgIjAuMTUzNTE2LCAwLjcyMjEyNiwgMS4xNzYyNywgMS43NDY3NCwgMi4zMTQ1NCwgMi44OSwgMy40NTQ3OCIsIFwKLSAgICAgICAgICAiMC4xNTQxOCwgMC43MTc3NDQsIDEuMTc2MTMsIDEuNzQ3NDIsIDIuMzE4NzcsIDIuODgxMSwgMy40NjEzOCIsIFwKLSAgICAgICAgICAiMC4xNTgxNjEsIDAuNzE5MTI2LCAxLjE3NjIsIDEuNzQ2ODIsIDIuMzE4OTcsIDIuODg3MDEsIDMuNDUxOCIsIFwKLSAgICAgICAgICAiMC4xNjM4MywgMC43MTc3MzEsIDEuMTcyODksIDEuNzQ2ODEsIDIuMzE3NzEsIDIuODg1MzYsIDMuNDc1OTQiLCBcCi0gICAgICAgICAgIjAuMTc0MzA0LCAwLjcxOTEwNCwgMS4xNzYxMywgMS43NDc2MSwgMi4zMTgwMSwgMi44OTIwMywgMy40NjA5OCIsIFwKLSAgICAgICAgICAiMC4xODU3NDksIDAuNzE5MDQzLCAxLjE3NjA2LCAxLjc0Mjc4LCAyLjMxNzk3LCAyLjg4ODY2LCAzLjQ1NDI5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjg2MywgMC4wMDY4NjEsIDAuMDA2ODYxLCAwLjAwNjg2MSwgMC4wMDY4NiwgMC4wMDY4NjEsIDAuMDA2ODU2IiwgXAotICAgICAgICAgICIwLjAwNjgyNywgMC4wMDY4MzMsIDAuMDA2ODMyLCAwLjAwNjgzMiwgMC4wMDY4MzEsIDAuMDA2ODI5LCAwLjAwNjgyOSIsIFwKLSAgICAgICAgICAiMC4wMDY4MTQsIDAuMDA2ODI2LCAwLjAwNjgyOSwgMC4wMDY4MjcsIDAuMDA2ODI1LCAwLjAwNjgyMywgMC4wMDY4MjciLCBcCi0gICAgICAgICAgIjAuMDA2ODA1LCAwLjAwNjgyMiwgMC4wMDY4MiwgMC4wMDY4MjMsIDAuMDA2ODIzLCAwLjAwNjgyMiwgMC4wMDY4MjIiLCBcCi0gICAgICAgICAgIjAuMDA2ODAyLCAwLjAwNjgxOCwgMC4wMDY4MiwgMC4wMDY4MiwgMC4wMDY4MjMsIDAuMDA2ODIxLCAwLjAwNjgyMyIsIFwKLSAgICAgICAgICAiMC4wMDY3OTksIDAuMDA2ODE3LCAwLjAwNjgwOSwgMC4wMDY4MiwgMC4wMDY4MjIsIDAuMDA2ODE5LCAwLjAwNjgyIiwgXAotICAgICAgICAgICIwLjAwNjgwNCwgMC4wMDY4MTcsIDAuMDA2ODE4LCAwLjAwNjgyLCAwLjAwNjgyLCAwLjAwNjgxOSwgMC4wMDY4MTkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDE1NTEsIDAuMDAxNTU1LCAwLjAwMTU1MywgMC4wMDE1NTUsIDAuMDAxNTU1LCAwLjAwMTU1NCwgMC4wMDE1NTQiLCBcCi0gICAgICAgICAgIjAuMDAxNTAxLCAwLjAwMTUyNiwgMC4wMDE1MjgsIDAuMDAxNTMsIDAuMDAxNTMzLCAwLjAwMTUzLCAwLjAwMTUzIiwgXAotICAgICAgICAgICIwLjAwMTQ3MywgMC4wMDE1MTMsIDAuMDAxNTE4LCAwLjAwMTUyMiwgMC4wMDE1MjMsIDAuMDAxNTI0LCAwLjAwMTUyMyIsIFwKLSAgICAgICAgICAiMC4wMDE0NTIsIDAuMDAxNTA0LCAwLjAwMTUxMywgMC4wMDE1MTcsIDAuMDAxNTIsIDAuMDAxNTIsIDAuMDAxNTIxIiwgXAotICAgICAgICAgICIwLjAwMTQzOCwgMC4wMDE0OTcsIDAuMDAxNTA4LCAwLjAwMTUxMywgMC4wMDE1MTYsIDAuMDAxNTE4LCAwLjAwMTUxOSIsIFwKLSAgICAgICAgICAiMC4wMDE0MjMsIDAuMDAxNDg3LCAwLjAwMTUsIDAuMDAxNTA4LCAwLjAwMTUxMywgMC4wMDE1MTUsIDAuMDAxNTE2IiwgXAotICAgICAgICAgICIwLjAwMTQxNSwgMC4wMDE0NzksIDAuMDAxNDk0LCAwLjAwMTUwNCwgMC4wMDE1MDgsIDAuMDAxNTExLCAwLjAwMTUxMyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkExIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDYxOTMsIDAuMDA2MTkyLCAwLjAwNjE5MiwgMC4wMDYxOSwgMC4wMDYxOSwgMC4wMDYxODcsIDAuMDA2MTg4IiwgXAotICAgICAgICAgICIwLjAwNjE0NCwgMC4wMDYxNTksIDAuMDA2MTU5LCAwLjAwNjE2MSwgMC4wMDYxNTcsIDAuMDA2MTU4LCAwLjAwNjE1NSIsIFwKLSAgICAgICAgICAiMC4wMDYxMzEsIDAuMDA2MTUxLCAwLjAwNjE1NCwgMC4wMDYxNTMsIDAuMDA2MTUyLCAwLjAwNjE1NCwgMC4wMDYxNTIiLCBcCi0gICAgICAgICAgIjAuMDA2MTIyLCAwLjAwNjE0NCwgMC4wMDYxNDgsIDAuMDA2MTQ4LCAwLjAwNjE0OCwgMC4wMDYxNDgsIDAuMDA2MTQ2IiwgXAotICAgICAgICAgICIwLjAwNjEzLCAwLjAwNjE0MywgMC4wMDYxNDYsIDAuMDA2MTQ5LCAwLjAwNjE0NiwgMC4wMDYxNDgsIDAuMDA2MTQ3IiwgXAotICAgICAgICAgICIwLjAwNjE0OCwgMC4wMDYxNDUsIDAuMDA2MTQ2LCAwLjAwNjE0NywgMC4wMDYxNDYsIDAuMDA2MTQ1LCAwLjAwNjE0NiIsIFwKLSAgICAgICAgICAiMC4wMDYxOCwgMC4wMDYxNTEsIDAuMDA2MTUxLCAwLjAwNjE0OSwgMC4wMDYxNDksIDAuMDA2MTQ2LCAwLjAwNjE0NyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDk4MiwgMC4wMDA5OTksIDAuMDAxMDAxLCAwLjAwMTAwMiwgMC4wMDEwMDIsIDAuMDAxMDAyLCAwLjAwMTAwMyIsIFwKLSAgICAgICAgICAiMC4wMDA5MzUsIDAuMDAxMDA1LCAwLjAwMTAxMywgMC4wMDEwMTcsIDAuMDAxMDE5LCAwLjAwMTAyMSwgMC4wMDEwMjIiLCBcCi0gICAgICAgICAgIjAuMDAwODc1LCAwLjAwMDk4NywgMC4wMDEwMDMsIDAuMDAxMDEyLCAwLjAwMTAxNiwgMC4wMDEwMTksIDAuMDAxMDIxIiwgXAotICAgICAgICAgICIwLjAwMDgzMywgMC4wMDA5NjksIDAuMDAwOTkyLCAwLjAwMTAwNCwgMC4wMDEwMTEsIDAuMDAxMDE1LCAwLjAwMTAxNyIsIFwKLSAgICAgICAgICAiMC4wMDA4MDMsIDAuMDAwOTUyLCAwLjAwMDk4LCAwLjAwMDk5NiwgMC4wMDEwMDQsIDAuMDAxMDEsIDAuMDAxMDEzIiwgXAotICAgICAgICAgICIwLjAwMDc3NSwgMC4wMDA5MjgsIDAuMDAwOTYzLCAwLjAwMDk4MywgMC4wMDA5OTQsIDAuMDAxMDAxLCAwLjAwMTAwNiIsIFwKLSAgICAgICAgICAiMC4wMDA3NTcsIDAuMDAwOTEsIDAuMDAwOTQ5LCAwLjAwMDk3MywgMC4wMDA5ODYsIDAuMDAwOTk1LCAwLjAwMTAwMSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDUyODksIDAuMDA1MjkzLCAwLjAwNTI5MywgMC4wMDUyOTMsIDAuMDA1MjkzLCAwLjAwNTI5NCwgMC4wMDUyOTMiLCBcCi0gICAgICAgICAgIjAuMDA1MjU5LCAwLjAwNTI4NywgMC4wMDUyOTEsIDAuMDA1Mjk0LCAwLjAwNTI5NSwgMC4wMDUyOTQsIDAuMDA1MjkzIiwgXAotICAgICAgICAgICIwLjAwNTI0MiwgMC4wMDUyODMsIDAuMDA1Mjg4LCAwLjAwNTI5MSwgMC4wMDUyOTMsIDAuMDA1MjkzLCAwLjAwNTI5NCIsIFwKLSAgICAgICAgICAiMC4wMDUyNDEsIDAuMDA1MjgsIDAuMDA1Mjg2LCAwLjAwNTI5LCAwLjAwNTI5MiwgMC4wMDUyOTMsIDAuMDA1Mjk1IiwgXAotICAgICAgICAgICIwLjAwNTI1MiwgMC4wMDUyNzksIDAuMDA1Mjg3LCAwLjAwNTI5LCAwLjAwNTI5MSwgMC4wMDUyOTMsIDAuMDA1MjkzIiwgXAotICAgICAgICAgICIwLjAwNTI3MywgMC4wMDUyODQsIDAuMDA1Mjg3LCAwLjAwNTI5MSwgMC4wMDUyOTEsIDAuMDA1MjkzLCAwLjAwNTI5MyIsIFwKLSAgICAgICAgICAiMC4wMDUzMTMsIDAuMDA1Mjk0LCAwLjAwNTI5MSwgMC4wMDUyOTMsIDAuMDA1Mjk2LCAwLjAwNTI5NSwgMC4wMDUyOTQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDE2MDUsIDAuMDAxNjIsIDAuMDAxNjIsIDAuMDAxNjE5LCAwLjAwMTYyMiwgMC4wMDE2MjgsIDAuMDAxNjIyIiwgXAotICAgICAgICAgICIwLjAwMTU0MywgMC4wMDE2MDIsIDAuMDAxNjExLCAwLjAwMTYxMywgMC4wMDE2MTcsIDAuMDAxNjE4LCAwLjAwMTYxOCIsIFwKLSAgICAgICAgICAiMC4wMDE0OTYsIDAuMDAxNTgyLCAwLjAwMTU5NywgMC4wMDE2MDUsIDAuMDAxNjA5LCAwLjAwMTYxMiwgMC4wMDE2MTMiLCBcCi0gICAgICAgICAgIjAuMDAxNDY4LCAwLjAwMTU2NSwgMC4wMDE1ODUsIDAuMDAxNTk2LCAwLjAwMTYwMywgMC4wMDE2MDYsIDAuMDAxNjA5IiwgXAotICAgICAgICAgICIwLjAwMTQ1MSwgMC4wMDE1NSwgMC4wMDE1NzQsIDAuMDAxNTg5LCAwLjAwMTU5NiwgMC4wMDE2LCAwLjAwMTYwNCIsIFwKLSAgICAgICAgICAiMC4wMDE0MzcsIDAuMDAxNTI3LCAwLjAwMTU2LCAwLjAwMTU3NywgMC4wMDE1ODcsIDAuMDAxNTkzLCAwLjAwMTU5NyIsIFwKLSAgICAgICAgICAiMC4wMDE0MzUsIDAuMDAxNTE5LCAwLjAwMTU0OSwgMC4wMDE1NjksIDAuMDAxNTgsIDAuMDAxNTg3LCAwLjAwMTU5MiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQwNywgMC4wMDQwODUsIDAuMDA0MDg3LCAwLjAwNDA4NywgMC4wMDQwODgsIDAuMDA0MDg4LCAwLjAwNDA4OCIsIFwKLSAgICAgICAgICAiMC4wMDQwNDcsIDAuMDA0MDk5LCAwLjAwNDEwNSwgMC4wMDQxMDgsIDAuMDA0MTEsIDAuMDA0MTExLCAwLjAwNDExMSIsIFwKLSAgICAgICAgICAiMC4wMDQwMiwgMC4wMDQwODYsIDAuMDA0MTAyLCAwLjAwNDEwOSwgMC4wMDQxMTIsIDAuMDA0MTE0LCAwLjAwNDExNyIsIFwKLSAgICAgICAgICAiMC4wMDQwMiwgMC4wMDQwOSwgMC4wMDQxMDEsIDAuMDA0MTA3LCAwLjAwNDExMywgMC4wMDQxMTIsIDAuMDA0MTE3IiwgXAotICAgICAgICAgICIwLjAwNDAwMiwgMC4wMDQwNzgsIDAuMDA0MDk0LCAwLjAwNDEwMywgMC4wMDQxMDcsIDAuMDA0MTA5LCAwLjAwNDExMyIsIFwKLSAgICAgICAgICAiMC4wMDQwMzgsIDAuMDA0MDgzLCAwLjAwNDA5MywgMC4wMDQxMDMsIDAuMDA0MTA3LCAwLjAwNDEwOSwgMC4wMDQxMTIiLCBcCi0gICAgICAgICAgIjAuMDA0MDcsIDAuMDA0MDg5LCAwLjAwNDA5NSwgMC4wMDQxMDQsIDAuMDA0MTA5LCAwLjAwNDExLCAwLjAwNDExMyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTU5OCwgMC4wMDE2MTgsIDAuMDAxNjE5LCAwLjAwMTYyLCAwLjAwMTYyLCAwLjAwMTYyLCAwLjAwMTYxOCIsIFwKLSAgICAgICAgICAiMC4wMDE1MzIsIDAuMDAxNTk3LCAwLjAwMTYwNywgMC4wMDE2MTIsIDAuMDAxNjE0LCAwLjAwMTYxNSwgMC4wMDE2MTYiLCBcCi0gICAgICAgICAgIjAuMDAxNDg3LCAwLjAwMTU3NiwgMC4wMDE1OTIsIDAuMDAxNjAxLCAwLjAwMTYwNiwgMC4wMDE2MDksIDAuMDAxNjExIiwgXAotICAgICAgICAgICIwLjAwMTQ3NywgMC4wMDE1NjIsIDAuMDAxNTgyLCAwLjAwMTU5NCwgMC4wMDE2LCAwLjAwMTYwNCwgMC4wMDE2MDUiLCBcCi0gICAgICAgICAgIjAuMDAxNDkyLCAwLjAwMTU1NSwgMC4wMDE1NzYsIDAuMDAxNTg5LCAwLjAwMTU5NiwgMC4wMDE2LCAwLjAwMTYwMyIsIFwKLSAgICAgICAgICAiMC4wMDE0OTYsIDAuMDAxNTM4LCAwLjAwMTU2MywgMC4wMDE1NzgsIDAuMDAxNTg3LCAwLjAwMTU5MywgMC4wMDE1OTciLCBcCi0gICAgICAgICAgIjAuMDAxNTYxLCAwLjAwMTU0OCwgMC4wMDE1NjUsIDAuMDAxNTc4LCAwLjAwMTU4NywgMC4wMDE1OTIsIDAuMDAxNTk2Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IE9BSTIxMVg0ICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChPQUkyMTFYNCkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjU3NTQ1MzsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQTApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMzMwMDQyOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMzI5MTU2OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMzMwMDQyOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTYzNywgMC4wMDE2MzUsIDAuMDAxNjM1LCAwLjAwMTYzNSwgMC4wMDE2MzUsIDAuMDAxNjM1LCAwLjAwMTYzNCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTYzOSwgMC4wMDE2NDEsIDAuMDAxNjQsIDAuMDAxNjQsIDAuMDAxNjQxLCAwLjAwMTY0MSwgMC4wMDE2NDEiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEExKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDMxOTcxNDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDMxOTcxNDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDMxODUyODsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDE2MzgsIDAuMDAxNjM3LCAwLjAwMTYzNiwgMC4wMDE2MzUsIDAuMDAxNjM2LCAwLjAwMTYzNSwgMC4wMDE2MzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDE2MzgsIDAuMDAxNjQsIDAuMDAxNjM5LCAwLjAwMTYzOSwgMC4wMDE2NCwgMC4wMDE2NCwgMC4wMDE2NCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQjApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMzA1MTY0OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMzA1MTY0OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMzA0MjI1OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTYzNywgMC4wMDE2MzUsIDAuMDAxNjM1LCAwLjAwMTYzNSwgMC4wMDE2MzQsIDAuMDAxNjM0LCAwLjAwMTYzNCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTYzOCwgMC4wMDE2NDEsIDAuMDAxNjQsIDAuMDAxNjQsIDAuMDAxNjQxLCAwLjAwMTY0MiwgMC4wMDE2NDEiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEMwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDMwNjcwODsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDMwNjQ4MzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDMwNjcwODsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA0NiwgMC4wMDA0NTgsIDAuMDAwNDU3LCAwLjAwMDQ1NywgMC4wMDA0NTcsIDAuMDAwNDU3LCAwLjAwMDQ1NyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTg1NywgMC4wMDE4NTcsIDAuMDAxODYsIDAuMDAxODU5LCAwLjAwMTg1OCwgMC4wMDE4NTgsIDAuMDAxODU4Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMzg1NDYzOwotICAgIGZ1bmN0aW9uIDogIighKCgoQTArQTEpIEIwKSBDMCkpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDQ4NzYsIDAuMTgzNDYzLCAwLjMyMDY0OSwgMC40MTg0ODYsIDAuNTc1Mjk0LCAwLjcxMjM5MiwgMC45MDc4NzciLCBcCi0gICAgICAgICAgIjAuMDUzNTE5LCAwLjE5MjE0NSwgMC4zMjk0NjcsIDAuNDI3NDAyLCAwLjU4Mzk2NSwgMC43MjExODQsIDAuOTE2NjA1IiwgXAotICAgICAgICAgICIwLjA2MzU4NiwgMC4yMDIyNzEsIDAuMzM5NDg3LCAwLjQzNzQ4MSwgMC41OTM5OTEsIDAuNzMwODU0LCAwLjkyNjUzNCIsIFwKLSAgICAgICAgICAiMC4wNzM0ODIsIDAuMjEyMzA1LCAwLjM0OTY2MiwgMC40NDc1NDgsIDAuNjA0MTU4LCAwLjc0MTAwNSwgMC45MzY1NjMiLCBcCi0gICAgICAgICAgIjAuMDgyNTI1LCAwLjIyMjQ0MSwgMC4zNTk3MSwgMC40NTc3MDUsIDAuNjE0MTE4LCAwLjc1MTI2OCwgMC45NDY3ODUiLCBcCi0gICAgICAgICAgIjAuMDk1MjkyLCAwLjIzODMyMiwgMC4zNzU4LCAwLjQ3MzE0MiwgMC42MzA1NTEsIDAuNzY3MzE2LCAwLjk2MzMwNSIsIFwKLSAgICAgICAgICAiMC4xMDUxOCwgMC4yNTIyNTUsIDAuMzg5NjIyLCAwLjQ4Nzk3MiwgMC42NDQ2ODEsIDAuNzgxODE0LCAwLjk3NzczOCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3Mjc1MywgMC4zNTA3NTUsIDAuNjI4ODc5LCAwLjgyNjU0OCwgMS4xNDQ0OCwgMS40MjE3MywgMS44MTg5NiIsIFwKLSAgICAgICAgICAiMC4wNzI5NTgsIDAuMzUxMDQ1LCAwLjYyODQ1MSwgMC44MjcwMDYsIDEuMTQ0MjYsIDEuNDIyMTMsIDEuODE4NyIsIFwKLSAgICAgICAgICAiMC4wNzUzMiwgMC4zNTA3NiwgMC42MjgyOTIsIDAuODI3NDIzLCAxLjE0NDE1LCAxLjQyMjI3LCAxLjgxODQxIiwgXAotICAgICAgICAgICIwLjA3OTM3NywgMC4zNTA3ODIsIDAuNjI4NjcyLCAwLjgyNjg3LCAxLjE0NDc5LCAxLjQyMTU4LCAxLjgxOTAxIiwgXAotICAgICAgICAgICIwLjA4NDU2NSwgMC4zNTIwNTQsIDAuNjI4NTksIDAuODI3MTAxLCAxLjE0NDU0LCAxLjQyMTgyLCAxLjgxODA4IiwgXAotICAgICAgICAgICIwLjA5NDIyOCwgMC4zNTYwNjcsIDAuNjI5MTU4LCAwLjgyNjYwMiwgMS4xNDQyOCwgMS40MjIxNiwgMS44MTg1OCIsIFwKLSAgICAgICAgICAiMC4xMDI2OTMsIDAuMzYwMjIxLCAwLjYzMDg0NCwgMC44Mjc3NzgsIDEuMTQ0MzQsIDEuNDIxOSwgMS44MTgzNCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2NzEzOCwgMC4yNzE5MDMsIDAuNDc2Mjg0LCAwLjYyMTk2MiwgMC44NTQ4MTcsIDEuMDU5NTIsIDEuMzUwMyIsIFwKLSAgICAgICAgICAiMC4wNzYxMDEsIDAuMjgxMTEyLCAwLjQ4NTM0NywgMC42MzEwNTUsIDAuODY0Njg2LCAxLjA2ODM5LCAxLjM2MDYzIiwgXAotICAgICAgICAgICIwLjA4NTcyMSwgMC4yOTA4NjcsIDAuNDk1MDY2LCAwLjY0MTMxNCwgMC44NzQyMTIsIDEuMDc4NzUsIDEuMzY5ODMiLCBcCi0gICAgICAgICAgIjAuMDk0ODM4LCAwLjMwMDA2MSwgMC41MDQ1NzIsIDAuNjUwMTkzLCAwLjg4Mzc1NywgMS4wODgyNywgMS4zNzk1NyIsIFwKLSAgICAgICAgICAiMC4xMDM2NDYsIDAuMzA4ODg2LCAwLjUxMzM2LCAwLjY1OTA5OSwgMC44OTI2MTUsIDEuMDk2NywgMS4zODg3NCIsIFwKLSAgICAgICAgICAiMC4xMTY3NDcsIDAuMzIzMDE0LCAwLjUyNzUwNywgMC42NzMyNywgMC45MDY2MTMsIDEuMTEwOCwgMS40MDMxMiIsIFwKLSAgICAgICAgICAiMC4xMjcxOTEsIDAuMzM1MjI2LCAwLjUzOTc0MSwgMC42ODU4MTYsIDAuOTE5MDQ4LCAxLjEyMzE1LCAxLjQxNDc5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk4MjY2LCAwLjQ5OTg1LCAwLjkwMDg3OSwgMS4xODc0MSwgMS42NDU3NCwgMi4wNDczNiwgMi42MjA1NSIsIFwKLSAgICAgICAgICAiMC4wOTgxOTYsIDAuNDk5NTkyLCAwLjkwMDc2MSwgMS4xODgyNywgMS42NDYwMiwgMi4wNDcwNCwgMi42MjIxNCIsIFwKLSAgICAgICAgICAiMC4wOTg3NjIsIDAuNDk5NDksIDAuOTAxMDgxLCAxLjE4NzM5LCAxLjY0NTksIDIuMDQ3NDQsIDIuNjIwNCIsIFwKLSAgICAgICAgICAiMC4xMDA0NjIsIDAuNDk5NjY3LCAwLjkwMDgyMywgMS4xODc4OCwgMS42NDYzLCAyLjA0NzU0LCAyLjYyMTIiLCBcCi0gICAgICAgICAgIjAuMTAyODgsIDAuNDk5NTEsIDAuOTAwODA5LCAxLjE4NzM2LCAxLjY0NjExLCAyLjA0NzIzLCAyLjYyMTY4IiwgXAotICAgICAgICAgICIwLjEwODQ0OSwgMC41MDA1MTYsIDAuOTAwOTc5LCAxLjE4Nzc2LCAxLjY0NjAxLCAyLjA0NzEzLCAyLjYyMTQ2IiwgXAotICAgICAgICAgICIwLjExNDY1NCwgMC41MDI0NDUsIDAuOTAwNzYsIDEuMTg3NTEsIDEuNjQ2MDgsIDIuMDQ3MTQsIDIuNjE5NDYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQxNjExLCAwLjE4MDE2NSwgMC4zMTc0NDEsIDAuNDE1MzE2LCAwLjU3MjE0LCAwLjcwODk1NCwgMC45MDUwMzMiLCBcCi0gICAgICAgICAgIjAuMDUwNTA0LCAwLjE4OTE3MSwgMC4zMjYzNzYsIDAuNDI0MjMyLCAwLjU4MDc5MiwgMC43MTc4MzQsIDAuOTEzMzI2IiwgXAotICAgICAgICAgICIwLjA2MTgxNCwgMC4yMDA0NTQsIDAuMzM3NzcsIDAuNDM1NjYyLCAwLjU5MjA5NiwgMC43Mjk0MTUsIDAuOTI1MjU3IiwgXAotICAgICAgICAgICIwLjA3MzY3OSwgMC4yMTIxNDksIDAuMzQ5MzY1LCAwLjQ0NzQzOCwgMC42MDM4NDYsIDAuNzQwODIxLCAwLjkzNjM2NiIsIFwKLSAgICAgICAgICAiMC4wODQzNDYsIDAuMjIzMzY2LCAwLjM2MDY0MiwgMC40NTg1OTYsIDAuNjE1MTYsIDAuNzUyMTE0LCAwLjk0Nzk0MSIsIFwKLSAgICAgICAgICAiMC4wOTg0NzYsIDAuMjQxODY5LCAwLjM3OTEwNCwgMC40NzY4OTMsIDAuNjMzNTU2LCAwLjc3MDM4NSwgMC45NjYzNzYiLCBcCi0gICAgICAgICAgIjAuMTA5MzIyLCAwLjI1ODA2OSwgMC4zOTUyNzgsIDAuNDkzMTY3LCAwLjY0OTYzMywgMC43ODY5NCwgMC45ODI0MzQiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzI4MjEsIDAuMzUwNzM4LCAwLjYyODk1NSwgMC44MjY4NywgMS4xNDQxNCwgMS40MjIxNSwgMS44MTg1MSIsIFwKLSAgICAgICAgICAiMC4wNzMxOTIsIDAuMzUxMDEsIDAuNjI4MzMxLCAwLjgyNjU0NSwgMS4xNDQ1MywgMS40MjE4NCwgMS44MTkiLCBcCi0gICAgICAgICAgIjAuMDc4LCAwLjM1MDc3LCAwLjYyODUxMywgMC44MjY4NjUsIDEuMTQ0NTQsIDEuNDIxODIsIDEuODE4NDEiLCBcCi0gICAgICAgICAgIjAuMDg0OTc4LCAwLjM1MTAyMywgMC42Mjg4MzcsIDAuODI2ODUxLCAxLjE0Mzg5LCAxLjQyMTc2LCAxLjgxOTAyIiwgXAotICAgICAgICAgICIwLjA5MzIxNiwgMC4zNTI4MiwgMC42Mjg1MDcsIDAuODI3MDE4LCAxLjE0NDc5LCAxLjQyMjU0LCAxLjgxODkzIiwgXAotICAgICAgICAgICIwLjEwNzY0NSwgMC4zNTg0NDIsIDAuNjI5MDUyLCAwLjgyNzA1OSwgMS4xNDQxMSwgMS40MjIxOCwgMS44MTg1NSIsIFwKLSAgICAgICAgICAiMC4xMTk0NDYsIDAuMzY1MywgMC42MzE4NzIsIDAuODI3NDc4LCAxLjE0Mzk1LCAxLjQyMTc4LCAxLjgxODU5Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDYwODE2LCAwLjI2NjM3MiwgMC40NzE2NDYsIDAuNjE4Njk1LCAwLjg1Mjg2NCwgMS4wNTg0NSwgMS4zNTE4NyIsIFwKLSAgICAgICAgICAiMC4wNjk2NDYsIDAuMjc1NzY4LCAwLjQ4MTQyOCwgMC42Mjc4NTEsIDAuODYyNzIzLCAxLjA2Nzc1LCAxLjM2MTEzIiwgXAotICAgICAgICAgICIwLjA3OTA0MiwgMC4yODU1NzEsIDAuNDkwOTEsIDAuNjM3ODQ4LCAwLjg3MjQ4MiwgMS4wNzc4MywgMS4zNzA1IiwgXAotICAgICAgICAgICIwLjA4Nzk5NiwgMC4yOTQ0OTEsIDAuNTAwNDU2LCAwLjY0NjY4OCwgMC44ODEyNjgsIDEuMDg3MjYsIDEuMzc5NjEiLCBcCi0gICAgICAgICAgIjAuMDk2NjU4LCAwLjMwMzI1OCwgMC41MDg5NjMsIDAuNjU1Nzg4LCAwLjg5MDUxNCwgMS4wOTU4LCAxLjM4OTQ4IiwgXAotICAgICAgICAgICIwLjEwOTEyMSwgMC4zMTcyNjUsIDAuNTIzMDY1LCAwLjY2OTcxLCAwLjkwNDQxMiwgMS4xMDk4MiwgMS40MDM5IiwgXAotICAgICAgICAgICIwLjExOTE3NCwgMC4zMjk0NzgsIDAuNTM1MzEyLCAwLjY4MjI0MSwgMC45MTY3ODQsIDEuMTIyMTIsIDEuNDE1NDUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTEwNjMsIDAuNDk1NzE0LCAwLjkwMDE1MSwgMS4xODYxMSwgMS42NTE1MywgMi4wNTA0MiwgMi42MjY4NSIsIFwKLSAgICAgICAgICAiMC4wOTEwNzUsIDAuNDk0NjYzLCAwLjg5NzY3MywgMS4xODkwOSwgMS42NDY5NiwgMi4wNTU4MiwgMi42MjczMSIsIFwKLSAgICAgICAgICAiMC4wOTE2ODMsIDAuNDk0NTQ1LCAwLjg5OTczOSwgMS4xODkzOCwgMS42NDc1NSwgMi4wNTYyOCwgMi42MzM3MiIsIFwKLSAgICAgICAgICAiMC4wOTMzMzksIDAuNDk1MTUsIDAuODk3NzU0LCAxLjE4OCwgMS42NTA2NiwgMi4wNTA0MywgMi42MzM5MSIsIFwKLSAgICAgICAgICAiMC4wOTYwOTMsIDAuNDk0NTM1LCAwLjg5OTc4NSwgMS4xODcwNiwgMS42NDg3OCwgMi4wNTU4LCAyLjYyNzU5IiwgXAotICAgICAgICAgICIwLjEwMjE3NSwgMC40OTY1NTEsIDAuODk3ODMsIDEuMTg3ODYsIDEuNjUwNzgsIDIuMDUyNTEsIDIuNjI2OCIsIFwKLSAgICAgICAgICAiMC4xMDg2ODUsIDAuNDk3MjQsIDAuOTAwMjEsIDEuMTg4OTgsIDEuNjUwNjYsIDIuMDU1MTIsIDIuNjMyOSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjEyOTgsIDAuMDk0MjU4LCAwLjE2NjgzMSwgMC4yMTg4NDEsIDAuMzAxNjY1LCAwLjM3NDE3MiwgMC40Nzc5MzYiLCBcCi0gICAgICAgICAgIjAuMDMxMjc3LCAwLjEwMzk5MiwgMC4xNzY2MjYsIDAuMjI4NDI5LCAwLjMxMTM0OCwgMC4zODM5NTgsIDAuNDg3NTkiLCBcCi0gICAgICAgICAgIjAuMDQzMzg1LCAwLjExNjQ1MiwgMC4xODkxMDgsIDAuMjQwOTUsIDAuMzIzMTc2LCAwLjM5NTY1OSwgMC40OTkyMTkiLCBcCi0gICAgICAgICAgIjAuMDUyOTg2LCAwLjEyODg5NCwgMC4yMDE2MzksIDAuMjUzMzk2LCAwLjMzNjI1NywgMC40MDg4NjYsIDAuNTEyNTA2IiwgXAotICAgICAgICAgICIwLjA2MTA5MiwgMC4xNDE3NjYsIDAuMjEzOTUyLCAwLjI2NTk3NywgMC4zNDg3NTksIDAuNDIxMjg2LCAwLjUyNDkyOSIsIFwKLSAgICAgICAgICAiMC4wNzI3LCAwLjE2MjE0OSwgMC4yMzM5NTEsIDAuMjg1NzQ4LCAwLjM2ODk3LCAwLjQ0MDg4OSwgMC41NDQ4ODgiLCBcCi0gICAgICAgICAgIjAuMDgwOTksIDAuMTc5OTM5LCAwLjI1MjE5MiwgMC4zMDMyNTUsIDAuMzg2MTA3LCAwLjQ1OTAxOCwgMC41NjI0NzMiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDA1OTYsIDAuMTkwMDIyLCAwLjMzOTYwMiwgMC40NDY2NTcsIDAuNjE3NjYxLCAwLjc2NzM2MiwgMC45ODEyMjQiLCBcCi0gICAgICAgICAgIjAuMDQzMTQzLCAwLjE5MDAyNiwgMC4zMzk2MzgsIDAuNDQ2NTE0LCAwLjYxNzY5NSwgMC43Njc0ODgsIDAuOTgxMzY1IiwgXAotICAgICAgICAgICIwLjA1MDg3LCAwLjE5MDcxNCwgMC4zMzk2MzEsIDAuNDQ2NjM1LCAwLjYxNzYzOCwgMC43NjczNjQsIDAuOTgxMjA0IiwgXAotICAgICAgICAgICIwLjA2MDM2NSwgMC4xOTQxNjQsIDAuMzM5OTI3LCAwLjQ0NjYyMiwgMC42MTc2MTEsIDAuNzY3MzE5LCAwLjk4MTI0OCIsIFwKLSAgICAgICAgICAiMC4wNzAwODgsIDAuMTk5MDg3LCAwLjM0MjA5LCAwLjQ0NzAxMiwgMC42MTc3MTgsIDAuNzY3NDA4LCAwLjk4MTE2NCIsIFwKLSAgICAgICAgICAiMC4wODI4MzYsIDAuMjA5MzM0LCAwLjM0ODIzOSwgMC40NTA4ODMsIDAuNjE4Mzg5LCAwLjc2NzM3MiwgMC45ODExNjIiLCBcCi0gICAgICAgICAgIjAuMDk0MTEyLCAwLjIxOTY4MSwgMC4zNTUwNjcsIDAuNDU2MzA3LCAwLjYyMTMxLCAwLjc2ODQ3MSwgMC45ODEyNjEiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjI3NjEsIDAuMjY3NzQzLCAwLjQ3MTk5NCwgMC42MTc1ODQsIDAuODUxMjMzLCAxLjA1NTIsIDEuMzQ3NSIsIFwKLSAgICAgICAgICAiMC4wNzExNiwgMC4yNzY0NDMsIDAuNDgwNjg4LCAwLjYyNjQ2LCAwLjg1OTc5MiwgMS4wNjM4MywgMS4zNTUzOSIsIFwKLSAgICAgICAgICAiMC4wODE0ODQsIDAuMjg3MDkyLCAwLjQ5MTcwNCwgMC42Mzc0NjksIDAuODcwNzg4LCAxLjA3NTEzLCAxLjM2NjkyIiwgXAotICAgICAgICAgICIwLjA5MTg2MSwgMC4yOTc1ODQsIDAuNTAyMDA3LCAwLjY0Nzg1MSwgMC44ODE1NjMsIDEuMDg1MzYsIDEuMzc3NSIsIFwKLSAgICAgICAgICAiMC4xMDIzMTMsIDAuMzA2OTY5LCAwLjUxMjYwNywgMC42NTg1OTIsIDAuODkxODI0LCAxLjA5NjM0LCAxLjM4Nzg2IiwgXAotICAgICAgICAgICIwLjExNzY1MywgMC4zMjQ3ODEsIDAuNTI5NTQ0LCAwLjY3NTU3MSwgMC45MDg4MDcsIDEuMTEyOTIsIDEuNDA1MDIiLCBcCi0gICAgICAgICAgIjAuMTI5NzgyLCAwLjMzOTQxOSwgMC41NDQ0MTksIDAuNjkwMjQ3LCAwLjkyMzg2MSwgMS4xMjc4MSwgMS40MTk1MiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5ODI1NiwgMC40OTk2MjMsIDAuOTAwODMsIDEuMTg4NjEsIDEuNjUyMDUsIDIuMDU1NzYsIDIuNjI2NzkiLCBcCi0gICAgICAgICAgIjAuMDk4MjE3LCAwLjQ5OTQ1OCwgMC45MDA2MDUsIDEuMTg4OTMsIDEuNjQ3MzcsIDIuMDU1MzEsIDIuNjI4NzMiLCBcCi0gICAgICAgICAgIjAuMDk5NTAyLCAwLjQ5OTU5NSwgMC45MDA4NDgsIDEuMTg3NDEsIDEuNjUxNywgMi4wNTIzLCAyLjYyNjgxIiwgXAotICAgICAgICAgICIwLjEwMjkwMywgMC40OTk2MTIsIDAuOTAwNjk3LCAxLjE4ODczLCAxLjY0NjY2LCAyLjA1NDI5LCAyLjYyNjI5IiwgXAotICAgICAgICAgICIwLjEwNzU0NywgMC40OTk0ODQsIDAuOTAwOTA2LCAxLjE4OTEzLCAxLjY1MDg3LCAyLjA1MjMyLCAyLjYzNDExIiwgXAotICAgICAgICAgICIwLjExNjg1NiwgMC41MDA4MzcsIDAuOTAwNzYsIDEuMTg4ODgsIDEuNjUxNSwgMi4wNTQ5OSwgMi42MzI4NSIsIFwKLSAgICAgICAgICAiMC4xMjYxNTMsIDAuNTAzNTE0LCAwLjkwMDg2MiwgMS4xODczLCAxLjY1MTI0LCAyLjA1MDk0LCAyLjYzMTEyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxOTMwMSwgMC4wOTE3NjQsIDAuMTY0MTcsIDAuMjE1ODc4LCAwLjI5ODQzNiwgMC4zNzA4MzQsIDAuNDc0MTIiLCBcCi0gICAgICAgICAgIjAuMDI5Mjk3LCAwLjEwMTcyMSwgMC4xNzM5MjgsIDAuMjI1Njc1LCAwLjMwODIyMiwgMC4zODA2MDYsIDAuNDgzOTIiLCBcCi0gICAgICAgICAgIjAuMDQwOTU0LCAwLjExNDA2MSwgMC4xODYzOTksIDAuMjM4MDksIDAuMzIwMDgzLCAwLjM5MjM0NywgMC40OTU1ODgiLCBcCi0gICAgICAgICAgIjAuMDQ5OTkxLCAwLjEyNjUxOSwgMC4xOTkwMjYsIDAuMjUwNjk5LCAwLjMzMzIxMiwgMC40MDU1NzcsIDAuNTA4OTAxIiwgXAotICAgICAgICAgICIwLjA1NzQ5MywgMC4xMzk0NzEsIDAuMjExMzU3LCAwLjI2MzI0OCwgMC4zNDU3OTEsIDAuNDE4MDQ4LCAwLjUyMTQ5OCIsIFwKLSAgICAgICAgICAiMC4wNjc1NDgsIDAuMTU5ODgzLCAwLjIzMTM4NiwgMC4yODMwNDcsIDAuMzY2MDc0LCAwLjQzODA1MywgMC41NDE0ODgiLCBcCi0gICAgICAgICAgIjAuMDc1MTYsIDAuMTc3NjUsIDAuMjQ5NzE2LCAwLjMwMDU2MywgMC4zODMyMDIsIDAuNDU1OTM0LCAwLjU1OTA5OCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzODAyLCAwLjE4NjkwNiwgMC4zMzYwODgsIDAuNDQyNzg5LCAwLjYxMzE0NCwgMC43NjI0NiwgMC45NzU4OTQiLCBcCi0gICAgICAgICAgIjAuMDQwOTY5LCAwLjE4Njg4LCAwLjMzNjAyNywgMC40NDI4NTEsIDAuNjEzMTA4LCAwLjc2MjQwNCwgMC45NzU2NDUiLCBcCi0gICAgICAgICAgIjAuMDQ5MTczLCAwLjE4NzcxNSwgMC4zMzU5OTcsIDAuNDQyNzEsIDAuNjEzMTM4LCAwLjc2MjQ3NSwgMC45NzU5NDMiLCBcCi0gICAgICAgICAgIjAuMDU4ODQyLCAwLjE5MTIzOCwgMC4zMzY0MDUsIDAuNDQyNjM1LCAwLjYxMzExNCwgMC43NjI0NDMsIDAuOTc1NzQzIiwgXAotICAgICAgICAgICIwLjA2ODQ1LCAwLjE5NjIxLCAwLjMzODU5MiwgMC40NDMyMDUsIDAuNjEzMTM5LCAwLjc2MjQ3MiwgMC45NzU4NjIiLCBcCi0gICAgICAgICAgIjAuMDgyNzU5LCAwLjIwNjUwNCwgMC4zNDQ3NjYsIDAuNDQ3MDM1LCAwLjYxMzkzOCwgMC43NjI0MiwgMC45NzU5MzYiLCBcCi0gICAgICAgICAgIjAuMDk0NDI0LCAwLjIxNjkxNSwgMC4zNTE2MzMsIDAuNDUyNTA1LCAwLjYxNzEwNywgMC43NjM0NzksIDAuOTc1ODU0Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU1OTMxLCAwLjI2MDc5MSwgMC40NjUxMywgMC42MTEwNTQsIDAuODQ0MjUsIDEuMDQ4NzQsIDEuMzQwMDEiLCBcCi0gICAgICAgICAgIjAuMDY0MTY1LCAwLjI2OTUwOSwgMC40NzM3ODEsIDAuNjE5NjQ4LCAwLjg1MzAwNiwgMS4wNTY5NSwgMS4zNDg1NSIsIFwKLSAgICAgICAgICAiMC4wNzQ4NDQsIDAuMjgwMjk0LCAwLjQ4NDU0NiwgMC42MzA0NjIsIDAuODYzNzU3LCAxLjA2ODQ4LCAxLjM1OTM4IiwgXAotICAgICAgICAgICIwLjA4NjEyNSwgMC4yOTEzOTYsIDAuNDk1ODgsIDAuNjQxNzA4LCAwLjg3NTE5NCwgMS4wNzkzMywgMS4zNzEwOCIsIFwKLSAgICAgICAgICAiMC4wOTczODMsIDAuMzAyMTY4LCAwLjUwNjU1NCwgMC42NTI2OTIsIDAuODg1ODUxLCAxLjA5MDYxLCAxLjM4MTU0IiwgXAotICAgICAgICAgICIwLjExNDAwMiwgMC4zMTk3MzgsIDAuNTI0MjM5LCAwLjY3MDA1NSwgMC45MDM3NzksIDEuMTA4MSwgMS4zOTkwNCIsIFwKLSAgICAgICAgICAiMC4xMjY0MzIsIDAuMzM1MTI1LCAwLjUzODgzNCwgMC42ODUzOTgsIDAuOTE4NzQ3LCAxLjEyMzQ0LCAxLjQxNTQ3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk4MjIxLCAwLjQ5OTQ4OCwgMC45MDA4MDUsIDEuMTg5NDUsIDEuNjUxMjYsIDIuMDUwNDMsIDIuNjMzNjIiLCBcCi0gICAgICAgICAgIjAuMDk3OTAyLCAwLjQ5OTY0NCwgMC45MDExNDksIDEuMTg4NywgMS42NTEyLCAyLjA1NTk5LCAyLjYyNjg0IiwgXAotICAgICAgICAgICIwLjEwMDc5NSwgMC40OTk1MzMsIDAuOTAxMDY2LCAxLjE4OTEyLCAxLjY1MTU1LCAyLjA1MDQ0LCAyLjYzMzk3IiwgXAotICAgICAgICAgICIwLjEwNjQ3MywgMC40OTk0NiwgMC45MDA3NjEsIDEuMTg4NzksIDEuNjQ4NzIsIDIuMDUyMTcsIDIuNjMzNjQiLCBcCi0gICAgICAgICAgIjAuMTEzNjMxLCAwLjQ5OTQyMSwgMC45MDA2ODIsIDEuMTg3NDEsIDEuNjUwODgsIDIuMDUwNCwgMi42MzIxMiIsIFwKLSAgICAgICAgICAiMC4xMjY2MTIsIDAuNTAxODczLCAwLjkwMDY5NSwgMS4xODgwNSwgMS42NDY5OCwgMi4wNTExLCAyLjYzMjY3IiwgXAotICAgICAgICAgICIwLjEzODY0NSwgMC41MDU4NzgsIDAuOTAwNzIzLCAxLjE4ODgsIDEuNjUwNjMsIDIuMDU1MTEsIDIuNjI2NzgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTM0MzcsIDAuMDEzNDM4LCAwLjAxMzQzNiwgMC4wMTM0MzYsIDAuMDEzNDM0LCAwLjAxMzQzMiwgMC4wMTM0MzMiLCBcCi0gICAgICAgICAgIjAuMDEzMzYxLCAwLjAxMzM3OCwgMC4wMTMzNzksIDAuMDEzMzc4LCAwLjAxMzM3OSwgMC4wMTMzNzUsIDAuMDEzMzc0IiwgXAotICAgICAgICAgICIwLjAxMzMyNSwgMC4wMTMzNTksIDAuMDEzMzY0LCAwLjAxMzM2NiwgMC4wMTMzNjQsIDAuMDEzMzY1LCAwLjAxMzM2MSIsIFwKLSAgICAgICAgICAiMC4wMTMzMDgsIDAuMDEzMzUyLCAwLjAxMzM1OCwgMC4wMTMzNiwgMC4wMTMzNiwgMC4wMTMzNTcsIDAuMDEzMzU5IiwgXAotICAgICAgICAgICIwLjAxMzMwMSwgMC4wMTMzNDIsIDAuMDEzMzU0LCAwLjAxMzM1NiwgMC4wMTMzNTYsIDAuMDEzMzU1LCAwLjAxMzM1NSIsIFwKLSAgICAgICAgICAiMC4wMTMyOTQsIDAuMDEzMzM4LCAwLjAxMzM0OSwgMC4wMTMzMzksIDAuMDEzMzUyLCAwLjAxMzM1OCwgMC4wMTMzNTIiLCBcCi0gICAgICAgICAgIjAuMDEzMzEzLCAwLjAxMzM0MSwgMC4wMTMzNDksIDAuMDEzMzUxLCAwLjAxMzM1MiwgMC4wMTMzNTMsIDAuMDEzMzUyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDMxMTUsIDAuMDAzMTI3LCAwLjAwMzEyOCwgMC4wMDMxMjcsIDAuMDAzMTI3LCAwLjAwMzEyOSwgMC4wMDMxMjYiLCBcCi0gICAgICAgICAgIjAuMDAyOTkxLCAwLjAwMzA2MiwgMC4wMDMwNywgMC4wMDMwNzMsIDAuMDAzMDc4LCAwLjAwMzA3NiwgMC4wMDMwNzciLCBcCi0gICAgICAgICAgIjAuMDAyOTIsIDAuMDAzMDMyLCAwLjAwMzA0OCwgMC4wMDMwNTYsIDAuMDAzMDU5LCAwLjAwMzA1OSwgMC4wMDMwNjQiLCBcCi0gICAgICAgICAgIjAuMDAyODc3LCAwLjAwMzAwNiwgMC4wMDMwMzMsIDAuMDAzMDQyLCAwLjAwMzA0OSwgMC4wMDMwNTUsIDAuMDAzMDU2IiwgXAotICAgICAgICAgICIwLjAwMjg1LCAwLjAwMjk4NywgMC4wMDMwMiwgMC4wMDMwMzEsIDAuMDAzMDQxLCAwLjAwMzA0NywgMC4wMDMwNSIsIFwKLSAgICAgICAgICAiMC4wMDI4MjQsIDAuMDAyOTYxLCAwLjAwMzAwMiwgMC4wMDMwMTUsIDAuMDAzMDI5LCAwLjAwMzAzNiwgMC4wMDMwNDEiLCBcCi0gICAgICAgICAgIjAuMDAyODEzLCAwLjAwMjk0NCwgMC4wMDI5ODgsIDAuMDAzMDA0LCAwLjAwMzAyLCAwLjAwMzAyOSwgMC4wMDMwMzYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTIwNjUsIDAuMDEyMDY4LCAwLjAxMjA2NiwgMC4wMTIwNjcsIDAuMDEyMDY1LCAwLjAxMjA2MSwgMC4wMTIwNjMiLCBcCi0gICAgICAgICAgIjAuMDExOTUzLCAwLjAxMTk5MywgMC4wMTE5OTksIDAuMDExOTk5LCAwLjAxMjAwMSwgMC4wMTE5OTksIDAuMDExOTk5IiwgXAotICAgICAgICAgICIwLjAxMTkxOCwgMC4wMTE5NzMsIDAuMDExOTgxLCAwLjAxMTk4MiwgMC4wMTE5ODYsIDAuMDExOTg1LCAwLjAxMTk4NCIsIFwKLSAgICAgICAgICAiMC4wMTE4OTUsIDAuMDExOTYxLCAwLjAxMTk3MSwgMC4wMTE5NzQsIDAuMDExOTc4LCAwLjAxMTk3NywgMC4wMTE5ODEiLCBcCi0gICAgICAgICAgIjAuMDExOTQxLCAwLjAxMTk2MiwgMC4wMTE5NzEsIDAuMDExOTczLCAwLjAxMTk3NywgMC4wMTE5NzUsIDAuMDExOTc2IiwgXAotICAgICAgICAgICIwLjAxMjAwMywgMC4wMTE5NjgsIDAuMDExOTc1LCAwLjAxMTk3NywgMC4wMTE5NzcsIDAuMDExOTc4LCAwLjAxMTk3NCIsIFwKLSAgICAgICAgICAiMC4wMTIwODgsIDAuMDExOTg4LCAwLjAxMTk4NCwgMC4wMTE5ODEsIDAuMDExOTgxLCAwLjAxMTk3OCwgMC4wMTE5NzciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTkwNSwgMC4wMDE5NjIsIDAuMDAxOTY4LCAwLjAwMTk2OSwgMC4wMDE5NzEsIDAuMDAxOTcyLCAwLjAwMTk3MyIsIFwKLSAgICAgICAgICAiMC4wMDE3NTUsIDAuMDAxOTU5LCAwLjAwMTk4NywgMC4wMDE5OTUsIDAuMDAyMDAzLCAwLjAwMjAwNiwgMC4wMDIwMSIsIFwKLSAgICAgICAgICAiMC4wMDE2MTYsIDAuMDAxOTA5LCAwLjAwMTk1OSwgMC4wMDE5NzYsIDAuMDAxOTkxLCAwLjAwMTk5OCwgMC4wMDIwMDUiLCBcCi0gICAgICAgICAgIjAuMDAxNTM0LCAwLjAwMTg2MSwgMC4wMDE5MywgMC4wMDE5NTMsIDAuMDAxOTc0LCAwLjAwMTk4NSwgMC4wMDE5OTUiLCBcCi0gICAgICAgICAgIjAuMDAxNDg0LCAwLjAwMTgxOSwgMC4wMDE5MDEsIDAuMDAxOTMsIDAuMDAxOTU3LCAwLjAwMTk3MSwgMC4wMDE5ODQiLCBcCi0gICAgICAgICAgIjAuMDAxNDM5LCAwLjAwMTc1OCwgMC4wMDE4NTksIDAuMDAxODk1LCAwLjAwMTkzLCAwLjAwMTk0OSwgMC4wMDE5NjciLCBcCi0gICAgICAgICAgIjAuMDAxNDIyLCAwLjAwMTcxNiwgMC4wMDE4MjcsIDAuMDAxODY4LCAwLjAwMTkwOSwgMC4wMDE5MzEsIDAuMDAxOTUyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEwMzQ5LCAwLjAxMDM2NCwgMC4wMTAzNjYsIDAuMDEwMzY3LCAwLjAxMDM2NSwgMC4wMTAzNjYsIDAuMDEwMzY3IiwgXAotICAgICAgICAgICIwLjAxMDI2MSwgMC4wMTAzNDcsIDAuMDEwMzU4LCAwLjAxMDM2MiwgMC4wMTAzNjUsIDAuMDEwMzY1LCAwLjAxMDM2NSIsIFwKLSAgICAgICAgICAiMC4wMTAyMzQsIDAuMDEwMzMzLCAwLjAxMDM1MSwgMC4wMTAzNTcsIDAuMDEwMzYxLCAwLjAxMDM2MiwgMC4wMTAzNjQiLCBcCi0gICAgICAgICAgIjAuMDEwMjQyLCAwLjAxMDMyNywgMC4wMTAzNDgsIDAuMDEwMzU0LCAwLjAxMDM2LCAwLjAxMDM2MywgMC4wMTAzNjQiLCBcCi0gICAgICAgICAgIjAuMDEwMjc0LCAwLjAxMDMzMSwgMC4wMTAzNDcsIDAuMDEwMzU1LCAwLjAxMDM1OCwgMC4wMTAzNjIsIDAuMDEwMzY0IiwgXAotICAgICAgICAgICIwLjAxMDI4NSwgMC4wMTAzNDcsIDAuMDEwMzUxLCAwLjAxMDM1NywgMC4wMTAzNjMsIDAuMDEwMzUyLCAwLjAxMDM2NiIsIFwKLSAgICAgICAgICAiMC4wMTAzMzgsIDAuMDEwMzY4LCAwLjAxMDM2OCwgMC4wMTAzNjQsIDAuMDEwMzY3LCAwLjAxMDM3MSwgMC4wMTAzNDIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzIwNCwgMC4wMDMyNTIsIDAuMDAzMjYxLCAwLjAwMzI2LCAwLjAwMzI1NiwgMC4wMDMyNjEsIDAuMDAzMjcxIiwgXAotICAgICAgICAgICIwLjAwMzA0NSwgMC4wMDMyMDIsIDAuMDAzMjI4LCAwLjAwMzIzOCwgMC4wMDMyNDQsIDAuMDAzMjQ4LCAwLjAwMzI1MSIsIFwKLSAgICAgICAgICAiMC4wMDI5NDUsIDAuMDAzMTQ5LCAwLjAwMzE5NiwgMC4wMDMyMTEsIDAuMDAzMjI0LCAwLjAwMzIzLCAwLjAwMzI0IiwgXAotICAgICAgICAgICIwLjAwMjg5NSwgMC4wMDMxMDYsIDAuMDAzMTY1LCAwLjAwMzE4NywgMC4wMDMyMDUsIDAuMDAzMjE3LCAwLjAwMzIyOCIsIFwKLSAgICAgICAgICAiMC4wMDI4NjgsIDAuMDAzMDY1LCAwLjAwMzE0LCAwLjAwMzE2NSwgMC4wMDMxODksIDAuMDAzMjAyLCAwLjAwMzIxNSIsIFwKLSAgICAgICAgICAiMC4wMDI4NTQsIDAuMDAzMDI5LCAwLjAwMzEwNCwgMC4wMDMxMzUsIDAuMDAzMTY1LCAwLjAwMzE4MiwgMC4wMDMxOTciLCBcCi0gICAgICAgICAgIjAuMDAyODYyLCAwLjAwMzAwNSwgMC4wMDMwODEsIDAuMDAzMTEzLCAwLjAwMzE0NywgMC4wMDMxNjYsIDAuMDAzMTg0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQzAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA4MDA3LCAwLjAwODA1NiwgMC4wMDgwNiwgMC4wMDgwNjEsIDAuMDA4MDYyLCAwLjAwODA2MywgMC4wMDgwNjMiLCBcCi0gICAgICAgICAgIjAuMDA3OTIsIDAuMDA4MDcyLCAwLjAwODA5NCwgMC4wMDgxMDQsIDAuMDA4MTA3LCAwLjAwODEwOSwgMC4wMDgxMTEiLCBcCi0gICAgICAgICAgIjAuMDA3ODgyLCAwLjAwODA1NCwgMC4wMDgwODYsIDAuMDA4MDk1LCAwLjAwODEwOCwgMC4wMDgxMTMsIDAuMDA4MTE3IiwgXAotICAgICAgICAgICIwLjAwNzg2NSwgMC4wMDgwMzcsIDAuMDA4MDc3LCAwLjAwODA4OSwgMC4wMDgxLCAwLjAwODEwNSwgMC4wMDgxMTEiLCBcCi0gICAgICAgICAgIjAuMDA3ODg1LCAwLjAwODAzMSwgMC4wMDgwNywgMC4wMDgwODQsIDAuMDA4MDk0LCAwLjAwODEwMywgMC4wMDgxMDgiLCBcCi0gICAgICAgICAgIjAuMDA3OTcxLCAwLjAwODAzMSwgMC4wMDgwNiwgMC4wMDgwNzYsIDAuMDA4MDkyLCAwLjAwODA4OSwgMC4wMDgxMDUiLCBcCi0gICAgICAgICAgIjAuMDA4MDY5LCAwLjAwODA0NSwgMC4wMDgwNzMsIDAuMDA4MDc4LCAwLjAwODA5MiwgMC4wMDgxMDIsIDAuMDA4MDk4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDMxODksIDAuMDAzMjQ3LCAwLjAwMzI1MywgMC4wMDMyNiwgMC4wMDMyNjIsIDAuMDAzMjUzLCAwLjAwMzI1OSIsIFwKLSAgICAgICAgICAiMC4wMDMwMTMsIDAuMDAzMTkxLCAwLjAwMzIyMSwgMC4wMDMyMzMsIDAuMDAzMjQyLCAwLjAwMzI0MywgMC4wMDMyNDciLCBcCi0gICAgICAgICAgIjAuMDAyOTQ2LCAwLjAwMzE0LCAwLjAwMzE4OSwgMC4wMDMyMDUsIDAuMDAzMjE5LCAwLjAwMzIyNSwgMC4wMDMyMzQiLCBcCi0gICAgICAgICAgIjAuMDAyOTE5LCAwLjAwMzA5OCwgMC4wMDMxNTgsIDAuMDAzMTgxLCAwLjAwMzIwMSwgMC4wMDMyMTEsIDAuMDAzMjIyIiwgXAotICAgICAgICAgICIwLjAwMjk2OCwgMC4wMDMwODIsIDAuMDAzMTQzLCAwLjAwMzE2NiwgMC4wMDMxODksIDAuMDAzMjAxLCAwLjAwMzIxNCIsIFwKLSAgICAgICAgICAiMC4wMDMwNjcsIDAuMDAzMDcyLCAwLjAwMzEyNSwgMC4wMDMxNSwgMC4wMDMxNzQsIDAuMDAzMTg4LCAwLjAwMzIwMiIsIFwKLSAgICAgICAgICAiMC4wMDMxNjYsIDAuMDAzMDgsIDAuMDAzMTE3LCAwLjAwMzE0MywgMC4wMDMxNjYsIDAuMDAzMTgxLCAwLjAwMzE5NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IE9BSTIxWDQgKgotICogLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoT0FJMjFYNCkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjQyODk0MjsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQTApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMzM1OTc7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAzMzQ5NjQ7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAzMzU5NzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDE2MzcsIDAuMDAxNjM1LCAwLjAwMTYzNSwgMC4wMDE2MzUsIDAuMDAxNjM1LCAwLjAwMTYzNCwgMC4wMDE2MzQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDE2NDIsIDAuMDAxNjQxLCAwLjAwMTY0LCAwLjAwMTY0LCAwLjAwMTY0MSwgMC4wMDE2NDEsIDAuMDAxNjQxIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihBMSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAzMjMxMzg7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAzMjMxMzg7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAzMjIwMzQ7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxNjM4LCAwLjAwMTYzNywgMC4wMDE2MzMsIDAuMDAxNjM2LCAwLjAwMTYzNSwgMC4wMDE2MzUsIDAuMDAxNjM1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxNjQsIDAuMDAxNjQsIDAuMDAxNjM5LCAwLjAwMTYzOSwgMC4wMDE2NCwgMC4wMDE2NCwgMC4wMDE2NCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQjApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMzA2NjYzOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMzA2NDkyOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMzA2NjYzOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDYxOSwgMC4wMDA2MjEsIDAuMDAwNjIxLCAwLjAwMDYyMSwgMC4wMDA2MjIsIDAuMDAwNjIyLCAwLjAwMDYyMSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTg1NywgMC4wMDE4NTgsIDAuMDAxODU4LCAwLjAwMTg1OCwgMC4wMDE4NiwgMC4wMDE4NiwgMC4wMDE4NiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjU1MzQyMTsKLSAgICBmdW5jdGlvbiA6ICIoISgoQTArQTEpIEIwKSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzODk4OSwgMC4xNzY1NDIsIDAuMzEzNjIxLCAwLjQxMTUxMSwgMC41Njc4NzYsIDAuNzA0NDE2LCAwLjkwMDYyMiIsIFwKLSAgICAgICAgICAiMC4wNDc2MDQsIDAuMTg1MjY3LCAwLjMyMjIzNSwgMC40MjAwMSwgMC41NzY2ODcsIDAuNzEzMTk2LCAwLjkwODczMyIsIFwKLSAgICAgICAgICAiMC4wNTc1ODUsIDAuMTk1Mzc3LCAwLjMzMjQxNCwgMC40MzAxMzEsIDAuNTg2NDkxLCAwLjcyMzM4MywgMC45MTkxNjciLCBcCi0gICAgICAgICAgIjAuMDY3MTgzLCAwLjIwNTQ1OSwgMC4zNDI0OTIsIDAuNDQwNDc2LCAwLjU5NzIxMSwgMC43MzM1NDcsIDAuOTI5MzczIiwgXAotICAgICAgICAgICIwLjA3NTY4LCAwLjIxNTM4NSwgMC4zNTI0MiwgMC40NTAyNjUsIDAuNjA2OTY5LCAwLjc0MzU0MSwgMC45Mzk1NTEiLCBcCi0gICAgICAgICAgIjAuMDg3NDMyLCAwLjIzMTQ4OSwgMC4zNjg3MTMsIDAuNDY2NjMyLCAwLjYyMzAwOCwgMC43NTk4MjgsIDAuOTU1NDc5IiwgXAotICAgICAgICAgICIwLjA5NjU5NCwgMC4yNDU3NTYsIDAuMzgyNzkxLCAwLjQ4MDUyNCwgMC42MzcwOTcsIDAuNzc0MzA4LCAwLjk2OTgzNiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2MjQsIDAuMzQwMzU4LCAwLjYxNzY4MywgMC44MTU5MywgMS4xMzMwOCwgMS40MTExMSwgMS44MDgyNSIsIFwKLSAgICAgICAgICAiMC4wNjI3MjQsIDAuMzQwMDM4LCAwLjYxODA2MiwgMC44MTU4OTQsIDEuMTMzMTgsIDEuNDExMjIsIDEuODA3MTIiLCBcCi0gICAgICAgICAgIjAuMDY1NTkyLCAwLjM0MDM1NywgMC42MTc2OTksIDAuODE1ODc5LCAxLjEzMjk4LCAxLjQxMTI2LCAxLjgwNzMzIiwgXAotICAgICAgICAgICIwLjA3MDE1NCwgMC4zNDAyNzYsIDAuNjE3OTA2LCAwLjgxNTkxNSwgMS4xMzMzLCAxLjQxMDU2LCAxLjgwNzM3IiwgXAotICAgICAgICAgICIwLjA3NTk4MSwgMC4zNDE3MSwgMC42MTc1NTEsIDAuODE1OTM2LCAxLjEzMzM3LCAxLjQxMDY1LCAxLjgwODE1IiwgXAotICAgICAgICAgICIwLjA4NTc3MywgMC4zNDU4NDksIDAuNjE4NDYzLCAwLjgxNTkzMiwgMS4xMzMyMywgMS40MTEyNSwgMS44MDc1MSIsIFwKLSAgICAgICAgICAiMC4wOTM5NzIsIDAuMzUwNTksIDAuNjIwODM4LCAwLjgxNjY1MywgMS4xMzMsIDEuNDEwNzIsIDEuODA3ODciKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDA0NTksIDAuMTc3OTAyLCAwLjMxNTA2NCwgMC40MTI3MzgsIDAuNTY5NTIxLCAwLjcwNjQxMSwgMC45MDI0NjkiLCBcCi0gICAgICAgICAgIjAuMDQ5NzI1LCAwLjE4NzM3NCwgMC4zMjQ1MSwgMC40MjIyMTgsIDAuNTc4Njk4LCAwLjcxNTcwOSwgMC45MTE3NjQiLCBcCi0gICAgICAgICAgIjAuMDYwNTg3LCAwLjE5ODM1MywgMC4zMzU0NTksIDAuNDMzMjQ3LCAwLjU5MDEyMSwgMC43MjY3NDEsIDAuOTIyNzQ0IiwgXAotICAgICAgICAgICIwLjA3MTE0OSwgMC4yMDkyNzYsIDAuMzQ2NDgyLCAwLjQ0NDM3NSwgMC42MDA5ODUsIDAuNzM3NzM5LCAwLjkzMzMxMyIsIFwKLSAgICAgICAgICAiMC4wODA2ODcsIDAuMjIwMDUzLCAwLjM1NzIxOSwgMC40NTUwOTYsIDAuNjExODQzLCAwLjc0ODc4NCwgMC45NDQzNjciLCBcCi0gICAgICAgICAgIjAuMDk0MTU5LCAwLjIzNzM0NywgMC4zNzQ2NDYsIDAuNDcyNTUsIDAuNjI5MTgsIDAuNzY2NDI3LCAwLjk2MjAwNyIsIFwKLSAgICAgICAgICAiMC4xMDQ2OTgsIDAuMjUyMjk2LCAwLjM5MDEzNywgMC40ODgwNDIsIDAuNjQ0NTU1LCAwLjc4MTc0NCwgMC45Nzc2OTEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTk0ODMsIDAuMzMxNDU0LCAwLjYwMzAyNywgMC43OTcwOTMsIDEuMTA3OCwgMS4zNzk5LCAxLjc2Nzk0IiwgXAotICAgICAgICAgICIwLjA1OTY1MSwgMC4zMzEzMDQsIDAuNjAzMjEsIDAuNzk3MDkzLCAxLjEwNzY3LCAxLjM3OTU5LCAxLjc2NzgiLCBcCi0gICAgICAgICAgIjAuMDYyMDE0LCAwLjMzMTIxOSwgMC42MDMwMzksIDAuNzk3MDc1LCAxLjEwNzc5LCAxLjM3OTgsIDEuNzY4MjQiLCBcCi0gICAgICAgICAgIjAuMDY2MjExLCAwLjMzMTQxLCAwLjYwMjk2NiwgMC43OTcxMzYsIDEuMTA3NjYsIDEuMzc5ODgsIDEuNzY3NjgiLCBcCi0gICAgICAgICAgIjAuMDcxNjE3LCAwLjMzMjM5NywgMC42MDMyNjcsIDAuNzk3NDIxLCAxLjEwODExLCAxLjM3OTY3LCAxLjc2Nzg0IiwgXAotICAgICAgICAgICIwLjA4MTM5NywgMC4zMzU5NzEsIDAuNjAzNDg3LCAwLjc5NzIwMSwgMS4xMDgwMywgMS4zNzk3OSwgMS43NjgyNiIsIFwKLSAgICAgICAgICAiMC4wODk4NjcsIDAuMzQwMjEzLCAwLjYwNTI4LCAwLjc5NzQyMiwgMS4xMDc5MywgMS4zNzkzNywgMS43Njg1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkExIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzNTc4LCAwLjE3MzQ0NywgMC4zMTA0MTEsIDAuNDA4MTMzLCAwLjU2NDY2OCwgMC43MDE2MzYsIDAuODk3NDE4IiwgXAotICAgICAgICAgICIwLjA0NDY1NCwgMC4xODIzMzIsIDAuMzE5MzcxLCAwLjQxNzEyOCwgMC41NzM0OTcsIDAuNzEwNDg3LCAwLjkwNjYiLCBcCi0gICAgICAgICAgIjAuMDU1OTkzLCAwLjE5MzcyNCwgMC4zMzA3NzksIDAuNDI4NTU0LCAwLjU4NTE4MywgMC43MjE3MjgsIDAuOTE3NiIsIFwKLSAgICAgICAgICAiMC4wNjc1MzMsIDAuMjA1NDYxLCAwLjM0MjYwMywgMC40NDAxOTIsIDAuNTk3MDM0LCAwLjczMzgyNSwgMC45Mjk1NTYiLCBcCi0gICAgICAgICAgIjAuMDc2OTg0LCAwLjIxNjcyNywgMC4zNTM3ODUsIDAuNDUxNDcyLCAwLjYwNzkwNiwgMC43NDQ2NjEsIDAuOTQwMTAzIiwgXAotICAgICAgICAgICIwLjA5MDA3NCwgMC4yMzUxNjMsIDAuMzcyMDg2LCAwLjQ3MDAyOSwgMC42MjYzODksIDAuNzYzNDM3LCAwLjk1ODc5MSIsIFwKLSAgICAgICAgICAiMC4wOTk4ODQsIDAuMjUxNDI0LCAwLjM4ODI1NiwgMC40ODYwMDgsIDAuNjQyMzU5LCAwLjc3OTE1LCAwLjk3NTAzMSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2MjM3NSwgMC4zNDAxMzUsIDAuNjE3NzA3LCAwLjgxNTk4OSwgMS4xMzMxMywgMS40MTA3MywgMS44MDgyMyIsIFwKLSAgICAgICAgICAiMC4wNjMyODgsIDAuMzQwMzQ0LCAwLjYxNzY3NSwgMC44MTU4NDgsIDEuMTMyOTksIDEuNDExMDUsIDEuODA4MjYiLCBcCi0gICAgICAgICAgIjAuMDY5MDUsIDAuMzQwMTUyLCAwLjYxNzY5OCwgMC44MTU5NjMsIDEuMTMzMTMsIDEuNDExMzEsIDEuODA4MTIiLCBcCi0gICAgICAgICAgIjAuMDc2NDg5LCAwLjM0MDM4NiwgMC42MTc2ODMsIDAuODE1ODYxLCAxLjEzMzIzLCAxLjQxMDc5LCAxLjgwODE3IiwgXAotICAgICAgICAgICIwLjA4NTQxOCwgMC4zNDI1OTYsIDAuNjE3NjYxLCAwLjgxNTkyOSwgMS4xMzM2NywgMS40MTA1NSwgMS44MDc5OCIsIFwKLSAgICAgICAgICAiMC4wOTk3NDIsIDAuMzQ4NjcxLCAwLjYxODU0NSwgMC44MTU5MTYsIDEuMTMzMTgsIDEuNDEwOTQsIDEuODA3MjQiLCBcCi0gICAgICAgICAgIjAuMTExMjI0LCAwLjM1NTg3NywgMC42MjE0NTEsIDAuODE2NjQ1LCAxLjEzMzA0LCAxLjQxMTEsIDEuODA3NDQiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzY1NjYsIDAuMTc1MjI1LCAwLjMxMzgyNSwgMC40MTI3MiwgMC41NzEwODgsIDAuNzA5Mzk3LCAwLjkwNzk0MyIsIFwKLSAgICAgICAgICAiMC4wNDU2NzEsIDAuMTg0ODE4LCAwLjMyMzYxMiwgMC40MjIyNzYsIDAuNTgwNTExLCAwLjcxOTEwMywgMC45MTczODciLCBcCi0gICAgICAgICAgIjAuMDU2MzQxLCAwLjE5NTY5LCAwLjMzNDM2NywgMC40MzMyNTMsIDAuNTkyMDA4LCAwLjczMDA0MywgMC45Mjg0MDYiLCBcCi0gICAgICAgICAgIjAuMDY2MzgxLCAwLjIwNjQzOCwgMC4zNDUxOTIsIDAuNDQ0MzI2LCAwLjYwMjQxMywgMC43NDA5MjYsIDAuOTM5MDg0IiwgXAotICAgICAgICAgICIwLjA3NTU5MSwgMC4yMTcwOTcsIDAuMzU1ODgyLCAwLjQ1NTA3OSwgMC42MTM1ODIsIDAuNzUxOTc4LCAwLjk0OTczIiwgXAotICAgICAgICAgICIwLjA4NzkwMiwgMC4yMzQyMjMsIDAuMzczMTc3LCAwLjQ3MjE5LCAwLjYzMDYxMywgMC43Njk2NDIsIDAuOTY3MzE3IiwgXAotICAgICAgICAgICIwLjA5Nzc0NCwgMC4yNDkwMDgsIDAuMzg4NDI1LCAwLjQ4NzY4MywgMC42NDU4OTQsIDAuNzg0NjQ2LCAwLjk4MzA5OSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1NTA5OCwgMC4zMzExNDMsIDAuNjA1NTIxLCAwLjgwNzE3LCAxLjExNjczLCAxLjQwMDAxLCAxLjc4NTQ2IiwgXAotICAgICAgICAgICIwLjA1NTE4MSwgMC4zMzIwMzEsIDAuNjA1Njg4LCAwLjgwNDI1MywgMS4xMTkyMSwgMS4zOTU0MywgMS43ODQ4MiIsIFwKLSAgICAgICAgICAiMC4wNTc5MjUsIDAuMzMyMDI3LCAwLjYwOTAzNSwgMC44MDQyODEsIDEuMTE2MzQsIDEuMzk1OCwgMS43ODQ4IiwgXAotICAgICAgICAgICIwLjA2MjQzNiwgMC4zMzIxMDcsIDAuNjA4OTM3LCAwLjgwMTk1NywgMS4xMjI0NCwgMS4zOTU3NiwgMS43ODUzIiwgXAotICAgICAgICAgICIwLjA2ODM1OCwgMC4zMzIyMTEsIDAuNjA3MTI5LCAwLjgwMjc4MiwgMS4xMTY1LCAxLjM5NTcyLCAxLjc5NjA1IiwgXAotICAgICAgICAgICIwLjA3ODQwOCwgMC4zMzUxMjYsIDAuNjA1OTE0LCAwLjgwNDE4OSwgMS4xMjI3OCwgMS4zOTE0NywgMS43ODUzNyIsIFwKLSAgICAgICAgICAiMC4wODcyNjUsIDAuMzM5NzU5LCAwLjYwOTE1NSwgMC44MDI1OTUsIDEuMTE5NzMsIDEuNDAwNDQsIDEuNzg0NTYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjAiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE3NzcxLCAwLjA5MDIwMSwgMC4xNjI1MDQsIDAuMjE0MjM1LCAwLjI5NjcyMywgMC4zNjkxNDMsIDAuNDcyNTQ1IiwgXAotICAgICAgICAgICIwLjAyNzczMywgMC4wOTk5NDYsIDAuMTcyMzc4LCAwLjIyNDAwNCwgMC4zMDY1LCAwLjM3ODgzMywgMC40ODIwNzQiLCBcCi0gICAgICAgICAgIjAuMDM4ODA4LCAwLjExMjQ1MiwgMC4xODQ3NjgsIDAuMjM2NTM0LCAwLjMxODMyMywgMC4zOTA1NDEsIDAuNDkzNzM2IiwgXAotICAgICAgICAgICIwLjA0NzU1MSwgMC4xMjUzMDYsIDAuMTk3MzMsIDAuMjQ5MTcsIDAuMzMxNTg1LCAwLjQwMzIzMSwgMC41MDY1MDMiLCBcCi0gICAgICAgICAgIjAuMDU0NTkxLCAwLjEzNzkxNCwgMC4yMDk3MzMsIDAuMjYxNjE1LCAwLjM0NDEwMiwgMC40MTYzMTMsIDAuNTE5NjgyIiwgXAotICAgICAgICAgICIwLjA2NDYzNSwgMC4xNTgyODYsIDAuMjI5NzQsIDAuMjgxMzU1LCAwLjM2NDMzMiwgMC40MzY2NDYsIDAuNTM5NzA0IiwgXAotICAgICAgICAgICIwLjA3MjI2LCAwLjE3NTkyNywgMC4yNDgwOCwgMC4yOTg5MDcsIDAuMzgxNDU3LCAwLjQ1NDE0LCAwLjU1NzI2Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM0NjYxLCAwLjE4MzQxNywgMC4zMzI0MDgsIDAuNDM4OTg0LCAwLjYwOTQ0NiwgMC43NTg1MjgsIDAuOTcxNDEzIiwgXAotICAgICAgICAgICIwLjAzODAxLCAwLjE4MzQwMSwgMC4zMzI0NjksIDAuNDM4OTQyLCAwLjYwOTI3NiwgMC43NTg0NDYsIDAuOTcxNDUyIiwgXAotICAgICAgICAgICIwLjA0NjcyNywgMC4xODQyNzgsIDAuMzMyNDAxLCAwLjQzODk4MywgMC42MDkyNjMsIDAuNzU4Mzk1LCAwLjk3MTU3OCIsIFwKLSAgICAgICAgICAiMC4wNTYzODEsIDAuMTg3NywgMC4zMzI4MDYsIDAuNDM5MDIzLCAwLjYwOTI4MiwgMC43NTg0MjMsIDAuOTcxNDE4IiwgXAotICAgICAgICAgICIwLjA2NTkyOCwgMC4xOTI5NjksIDAuMzM1MDUxLCAwLjQzOTQ1NCwgMC42MDkyMzUsIDAuNzU4Mzk3LCAwLjk3MTQyMSIsIFwKLSAgICAgICAgICAiMC4wNzg1MDMsIDAuMjAzNDI3LCAwLjM0MTQxMiwgMC40NDM0NDgsIDAuNjEwMTQzLCAwLjc1ODUzMywgMC45NzE0MjUiLCBcCi0gICAgICAgICAgIjAuMDg4OTUyLCAwLjIxMzg1LCAwLjM0ODM2NywgMC40NDkwNDMsIDAuNjEzMTY1LCAwLjc1OTQ5LCAwLjk3MTUzMSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzNTcxNiwgMC4xNzMzMzUsIDAuMzEwNTM3LCAwLjQwODI2LCAwLjU2NjEyNSwgMC43MDQyOTcsIDAuOTAyMTU4IiwgXAotICAgICAgICAgICIwLjA0NDY2NiwgMC4xODI1ODksIDAuMzE5NzM3LCAwLjQxNzQ2MiwgMC41NzQ5MzMsIDAuNzEzNTI0LCAwLjkxMTI3NyIsIFwKLSAgICAgICAgICAiMC4wNTY0MjcsIDAuMTk0MDczLCAwLjMzMTI5MSwgMC40MjkxNiwgMC41ODY2MzIsIDAuNzI1MTg4LCAwLjkyMjg5MyIsIFwKLSAgICAgICAgICAiMC4wNjgyOTcsIDAuMjA1OTc0LCAwLjM0MzE2NSwgMC40NDEwODgsIDAuNTk4ODk5LCAwLjczNzA2NSwgMC45MzU0ODciLCBcCi0gICAgICAgICAgIjAuMDc4NCwgMC4yMTc0ODYsIDAuMzU0NzE4LCAwLjQ1MjUyMSwgMC42MTAwMDYsIDAuNzQ4NjEyLCAwLjk0NjQ2MyIsIFwKLSAgICAgICAgICAiMC4wOTIzMDgsIDAuMjM2MjksIDAuMzczNDMyLCAwLjQ3MTMzOCwgMC42Mjg4NTQsIDAuNzY3ODQ5LCAwLjk2NTQ3NyIsIFwKLSAgICAgICAgICAiMC4xMDI3MSwgMC4yNTI4OTYsIDAuMzg5ODg1LCAwLjQ4Nzc2NywgMC42NDUzNTQsIDAuNzgzOTIsIDAuOTgyMjU0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU5NTEyLCAwLjMzMTQ5OCwgMC42MDU4MDUsIDAuODAyMDc4LCAxLjExNzAzLCAxLjM5MTk4LCAxLjc4NjQ3IiwgXAotICAgICAgICAgICIwLjA2MDEzLCAwLjMzMTM0NSwgMC42MDU1MjcsIDAuODAzOTM2LCAxLjExOTc1LCAxLjQwMDI3LCAxLjc4OTIiLCBcCi0gICAgICAgICAgIjAuMDY1NDA1LCAwLjMzMTIyNCwgMC42MDU0OTMsIDAuODAyMDkzLCAxLjEyMjg3LCAxLjM5MzI5LCAxLjc5MDEyIiwgXAotICAgICAgICAgICIwLjA3Mjc2NCwgMC4zMzE1ODIsIDAuNjA3MTI0LCAwLjgwMjE1OSwgMS4xMTY3NywgMS4zOTk3LCAxLjc4NTQ5IiwgXAotICAgICAgICAgICIwLjA4MTc4NiwgMC4zMzM0NDQsIDAuNjA1OTAxLCAwLjgwNjY5OCwgMS4xMTk3MSwgMS4zOTUzMSwgMS43OTAyMSIsIFwKLSAgICAgICAgICAiMC4wOTU5MTIsIDAuMzM5MjIyLCAwLjYwNjIzNCwgMC44MDIxMSwgMS4xMjM1NiwgMS4zOTE0OSwgMS43ODUzMyIsIFwKLSAgICAgICAgICAiMC4xMDc0NDEsIDAuMzQ2NDAzLCAwLjYwOTUzOSwgMC44MDMxLCAxLjEyMzIzLCAxLjQwMDM2LCAxLjc4NDY3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEwMDE0LCAwLjAxMDAxOSwgMC4wMTAwMTksIDAuMDEwMDE4LCAwLjAxMDAxNywgMC4wMTAwMTYsIDAuMDEwMDE2IiwgXAotICAgICAgICAgICIwLjAwOTkzNywgMC4wMDk5NzksIDAuMDA5OTg0LCAwLjAwOTk4NiwgMC4wMDk5ODYsIDAuMDA5OTg0LCAwLjAwOTk4NSIsIFwKLSAgICAgICAgICAiMC4wMDk4OTUsIDAuMDA5OTYyLCAwLjAwOTk3MiwgMC4wMDk5NzMsIDAuMDA5OTc5LCAwLjAwOTk3NywgMC4wMDk5ODIiLCBcCi0gICAgICAgICAgIjAuMDA5ODc1LCAwLjAwOTk1MSwgMC4wMDk5NjQsIDAuMDA5OTY4LCAwLjAwOTk2NywgMC4wMDk5NzUsIDAuMDA5OTcxIiwgXAotICAgICAgICAgICIwLjAwOTg2OSwgMC4wMDk5MzYsIDAuMDA5OTU4LCAwLjAwOTk2MywgMC4wMDk5NjMsIDAuMDA5OTY5LCAwLjAwOTk3OCIsIFwKLSAgICAgICAgICAiMC4wMDk4NzUsIDAuMDA5OTM1LCAwLjAwOTk1MywgMC4wMDk5NTEsIDAuMDA5OTY1LCAwLjAwOTk2NiwgMC4wMDk5NjYiLCBcCi0gICAgICAgICAgIjAuMDA5ODkxLCAwLjAwOTkzMywgMC4wMDk5NTEsIDAuMDA5OTU4LCAwLjAwOTk2MiwgMC4wMDk5NjMsIDAuMDA5OTY2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDIxMjEsIDAuMDAyMTM0LCAwLjAwMjEzNSwgMC4wMDIxMzYsIDAuMDAyMTM1LCAwLjAwMjEzNSwgMC4wMDIxMzUiLCBcCi0gICAgICAgICAgIjAuMDAxOTkyLCAwLjAwMjA2OSwgMC4wMDIwNzksIDAuMDAyMDgxLCAwLjAwMjA4NCwgMC4wMDIwODUsIDAuMDAyMDg1IiwgXAotICAgICAgICAgICIwLjAwMTkxOSwgMC4wMDIwMzcsIDAuMDAyMDU3LCAwLjAwMjA2MywgMC4wMDIwNjgsIDAuMDAyMDcsIDAuMDAyMDczIiwgXAotICAgICAgICAgICIwLjAwMTg3OSwgMC4wMDIwMTQsIDAuMDAyMDQxLCAwLjAwMjA1LCAwLjAwMjA1OCwgMC4wMDIwNjIsIDAuMDAyMDY2IiwgXAotICAgICAgICAgICIwLjAwMTg1NiwgMC4wMDE5OTYsIDAuMDAyMDI5LCAwLjAwMjA0LCAwLjAwMjA1LCAwLjAwMjA1NSwgMC4wMDIwNiIsIFwKLSAgICAgICAgICAiMC4wMDE4NDYsIDAuMDAxOTc0LCAwLjAwMjAxMywgMC4wMDIwMjcsIDAuMDAyMDQsIDAuMDAyMDQ3LCAwLjAwMjA1MyIsIFwKLSAgICAgICAgICAiMC4wMDE4NTEsIDAuMDAxOTYxLCAwLjAwMjAwMywgMC4wMDIwMTgsIDAuMDAyMDMyLCAwLjAwMjA0MSwgMC4wMDIwNDgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDg2MzUsIDAuMDA4NjQ5LCAwLjAwODY1LCAwLjAwODY1LCAwLjAwODY0OSwgMC4wMDg2NDgsIDAuMDA4NjQ3IiwgXAotICAgICAgICAgICIwLjAwODUxNiwgMC4wMDg1OTYsIDAuMDA4NjA3LCAwLjAwODYwNiwgMC4wMDg2MTMsIDAuMDA4NjA5LCAwLjAwODYwOCIsIFwKLSAgICAgICAgICAiMC4wMDg0ODEsIDAuMDA4NTczLCAwLjAwODU4OCwgMC4wMDg1OTQsIDAuMDA4NTk2LCAwLjAwODU5OSwgMC4wMDg1OTkiLCBcCi0gICAgICAgICAgIjAuMDA4NDc1LCAwLjAwODU1NywgMC4wMDg1NzksIDAuMDA4NTg0LCAwLjAwODU5MSwgMC4wMDg1OTMsIDAuMDA4NTk1IiwgXAotICAgICAgICAgICIwLjAwODUxOSwgMC4wMDg1NTcsIDAuMDA4NTc2LCAwLjAwODU4MywgMC4wMDg1ODksIDAuMDA4NTksIDAuMDA4NTk0IiwgXAotICAgICAgICAgICIwLjAwODYxOSwgMC4wMDg1NjYsIDAuMDA4NTc5LCAwLjAwODU4MywgMC4wMDg1ODgsIDAuMDA4NTkxLCAwLjAwODU5MSIsIFwKLSAgICAgICAgICAiMC4wMDg3MjMsIDAuMDA4NTg3LCAwLjAwODU4OCwgMC4wMDg1OTEsIDAuMDA4NTk0LCAwLjAwODU5NCwgMC4wMDg1OTMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDk1MiwgMC4wMDEwMTYsIDAuMDAxMDIzLCAwLjAwMTAyNCwgMC4wMDEwMjYsIDAuMDAxMDI3LCAwLjAwMTAyNyIsIFwKLSAgICAgICAgICAiMC4wMDA3ODYsIDAuMDAxMDEyLCAwLjAwMTA0LCAwLjAwMTA0OSwgMC4wMDEwNTcsIDAuMDAxMDYxLCAwLjAwMTA2NCIsIFwKLSAgICAgICAgICAiMC4wMDA2NDUsIDAuMDAwOTYxLCAwLjAwMTAxMywgMC4wMDEwMywgMC4wMDEwNDUsIDAuMDAxMDUyLCAwLjAwMTA1OSIsIFwKLSAgICAgICAgICAiMC4wMDA1NzIsIDAuMDAwOTEzLCAwLjAwMDk4NCwgMC4wMDEwMDcsIDAuMDAxMDI4LCAwLjAwMTAzOSwgMC4wMDEwNSIsIFwKLSAgICAgICAgICAiMC4wMDA1MzEsIDAuMDAwODcsIDAuMDAwOTU1LCAwLjAwMDk4NCwgMC4wMDEwMTEsIDAuMDAxMDI1LCAwLjAwMTAzOSIsIFwKLSAgICAgICAgICAiMC4wMDA1MDUsIDAuMDAwODE1LCAwLjAwMDkxNSwgMC4wMDA5NTIsIDAuMDAwOTg2LCAwLjAwMTAwNSwgMC4wMDEwMjIiLCBcCi0gICAgICAgICAgIjAuMDAwNTA1LCAwLjAwMDc3OSwgMC4wMDA4ODYsIDAuMDAwOTI3LCAwLjAwMDk2NywgMC4wMDA5ODgsIDAuMDAxMDA4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2NzU1LCAwLjAwNjgxLCAwLjAwNjgxNSwgMC4wMDY4MTQsIDAuMDA2ODE4LCAwLjAwNjgxOSwgMC4wMDY4MTgiLCBcCi0gICAgICAgICAgIjAuMDA2NjI0LCAwLjAwNjgwMSwgMC4wMDY4MjQsIDAuMDA2ODMyLCAwLjAwNjgzOSwgMC4wMDY4NDEsIDAuMDA2ODQ0IiwgXAotICAgICAgICAgICIwLjAwNjU4OSwgMC4wMDY3NzMsIDAuMDA2ODA5LCAwLjAwNjgyMSwgMC4wMDY4MzMsIDAuMDA2ODM2LCAwLjAwNjg0MiIsIFwKLSAgICAgICAgICAiMC4wMDY1NjYsIDAuMDA2NzQ3LCAwLjAwNjc4OSwgMC4wMDY4MDUsIDAuMDA2ODIsIDAuMDA2ODI5LCAwLjAwNjgzNCIsIFwKLSAgICAgICAgICAiMC4wMDY2MzQsIDAuMDA2NzQsIDAuMDA2Nzg0LCAwLjAwNjgwMiwgMC4wMDY4MTUsIDAuMDA2ODI1LCAwLjAwNjgzMiIsIFwKLSAgICAgICAgICAiMC4wMDY2NjYsIDAuMDA2NzQ0LCAwLjAwNjc3NCwgMC4wMDY3OTIsIDAuMDA2ODEyLCAwLjAwNjgxMSwgMC4wMDY4MjciLCBcCi0gICAgICAgICAgIjAuMDA2NzYyLCAwLjAwNjc1LCAwLjAwNjc4OCwgMC4wMDY3OTMsIDAuMDA2ODA4LCAwLjAwNjgyMiwgMC4wMDY4MTgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjE5MSwgMC4wMDIyNTcsIDAuMDAyMjY0LCAwLjAwMjI2OSwgMC4wMDIyNjcsIDAuMDAyMjYzLCAwLjAwMjI2OCIsIFwKLSAgICAgICAgICAiMC4wMDIwMDUsIDAuMDAyMTk4LCAwLjAwMjIzLCAwLjAwMjI0LCAwLjAwMjI0OSwgMC4wMDIyNTYsIDAuMDAyMjU3IiwgXAotICAgICAgICAgICIwLjAwMTk1NiwgMC4wMDIxNDgsIDAuMDAyMTk3LCAwLjAwMjIxNSwgMC4wMDIyMjgsIDAuMDAyMjM3LCAwLjAwMjI0NCIsIFwKLSAgICAgICAgICAiMC4wMDE5NDEsIDAuMDAyMTA2LCAwLjAwMjE2NywgMC4wMDIxODksIDAuMDAyMjEsIDAuMDAyMjIxLCAwLjAwMjIzMSIsIFwKLSAgICAgICAgICAiMC4wMDIwMDYsIDAuMDAyMDkzLCAwLjAwMjE1MywgMC4wMDIxNzcsIDAuMDAyMiwgMC4wMDIyMTIsIDAuMDAyMjI0IiwgXAotICAgICAgICAgICIwLjAwMjEyOSwgMC4wMDIwODgsIDAuMDAyMTQsIDAuMDAyMTYzLCAwLjAwMjE4NywgMC4wMDIyMDEsIDAuMDAyMjE0IiwgXAotICAgICAgICAgICIwLjAwMjI0NCwgMC4wMDIxMDIsIDAuMDAyMTM5LCAwLjAwMjE1NywgMC4wMDIxODEsIDAuMDAyMTk1LCAwLjAwMjIwOCIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IE9BSTIxWEwgKgotICogLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoT0FJMjFYTCkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjA2MTYyMDY7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA1OTgwMjM7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNTk2NzI3OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDU5ODAyMzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyMjYsIDAuMDAwMjI2LCAwLjAwMDIyNiwgMC4wMDAyMjYsIDAuMDAwMjI2LCAwLjAwMDIyNiwgMC4wMDAyMjYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyMjcsIDAuMDAwMjI3LCAwLjAwMDIyNywgMC4wMDAyMjcsIDAuMDAwMjI3LCAwLjAwMDIyNywgMC4wMDAyMjciKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEExKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2Mjk5NDI7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjI5OTQyOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDYyODM2OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDIyNiwgMC4wMDAyMjYsIDAuMDAwMjI2LCAwLjAwMDIyNiwgMC4wMDAyMjYsIDAuMDAwMjI2LCAwLjAwMDIyNiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDIyNywgMC4wMDAyMjcsIDAuMDAwMjI3LCAwLjAwMDIyNywgMC4wMDAyMjcsIDAuMDAwMjI3LCAwLjAwMDIyNyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQjApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY3NTkwNjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2NzU2Mzg7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjc1OTA2OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDI0MiwgMC4wMDAyNDMsIDAuMDAwMjQyLCAwLjAwMDI0MywgMC4wMDAyNDMsIDAuMDAwMjQzLCAwLjAwMDI0MyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDI1NywgMC4wMDAyNTcsIDAuMDAwMjU3LCAwLjAwMDI1NywgMC4wMDAyNTcsIDAuMDAwMjU3LCAwLjAwMDI1NyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjA4MTEyMTc7Ci0gICAgZnVuY3Rpb24gOiAiKCEoKEEwK0ExKSBCMCkpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTU3MTU4LCAwLjE4MzczOSwgMC40MjMxNzMsIDAuODIyMDcyLCAxLjIyMSwgMi4xNTE2OSwgMi42ODI3OCIsIFwKLSAgICAgICAgICAiMC4xNjU3NTQsIDAuMTkyNDQ0LCAwLjQzMTkzOSwgMC44MzA4NTksIDEuMjI5NjIsIDIuMTYwMDIsIDIuNjkxMjIiLCBcCi0gICAgICAgICAgIjAuMTc1NzA4LCAwLjIwMjQyOCwgMC40NDE4NjYsIDAuODQxMDExLCAxLjIzOTkzLCAyLjE2OTI5LCAyLjcwMTIzIiwgXAotICAgICAgICAgICIwLjE4NTUsIDAuMjEyMjE0LCAwLjQ1MTgzNywgMC44NTA2MzUsIDEuMjQ5NTIsIDIuMTgwMDMsIDIuNzExMzYiLCBcCi0gICAgICAgICAgIjAuMTk1MzksIDAuMjIyMDY1LCAwLjQ2MTY5MiwgMC44NjA0ODQsIDEuMjU5MjUsIDIuMTg5ODgsIDIuNzIxMjciLCBcCi0gICAgICAgICAgIjAuMjExMTM2LCAwLjIzNzYzNywgMC40NzYyODksIDAuODc2MTgyLCAxLjI3NDc4LCAyLjIwNjA3LCAyLjczNjkyIiwgXAotICAgICAgICAgICIwLjIyNTI1LCAwLjI1MTMzLCAwLjQ5MTIzOSwgMC44OTAzOTUsIDEuMjg5MTEsIDIuMjIwNDYsIDIuNzUwNyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yOTk1MzEsIDAuMzUzNDM2LCAwLjgzODI2OSwgMS42NDcwOCwgMi40NTU2OCwgNC4zNDA4OSwgNS40MTc5OSIsIFwKLSAgICAgICAgICAiMC4yOTkyNzEsIDAuMzUzMjE4LCAwLjgzODU1OSwgMS42NDY4OSwgMi40NTU4NywgNC4zNDAxNywgNS40MTc3NyIsIFwKLSAgICAgICAgICAiMC4yOTkyOTUsIDAuMzUzMjA0LCAwLjgzODgxNSwgMS42NDc4LCAyLjQ1NjUzLCA0LjM0MTQ3LCA1LjQxODY0IiwgXAotICAgICAgICAgICIwLjI5OTc1NSwgMC4zNTM2MSwgMC44Mzg4NjgsIDEuNjQ3NjksIDIuNDU1MjYsIDQuMzQwOSwgNS40MTc4NiIsIFwKLSAgICAgICAgICAiMC4zMDE3MzIsIDAuMzU0Njg5LCAwLjgzODgxOCwgMS42NDY3NSwgMi40NTU0OSwgNC4zNDA5MSwgNS40MTc3NSIsIFwKLSAgICAgICAgICAiMC4zMDYxODksIDAuMzU4Mjg2LCAwLjgzODM4OCwgMS42NDc0MSwgMi40NTU4MywgNC4zNDMxMiwgNS40MTg2MyIsIFwKLSAgICAgICAgICAiMC4zMTE5MTQsIDAuMzYzMTM4LCAwLjgzOTE5NCwgMS42NDY5MSwgMi40NTU0NiwgNC4zNDIzMiwgNS40MjE0MiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNTM0NjUsIDAuMTc5MjUsIDAuNDExMzU0LCAwLjc5NzkwMSwgMS4xODQzLCAyLjA4NjAyLCAyLjYwMTU4IiwgXAotICAgICAgICAgICIwLjE2MzE2NywgMC4xODkwMjgsIDAuNDIwODY0LCAwLjgwNzUxLCAxLjE5NDM2LCAyLjA5NjMsIDIuNjExMjIiLCBcCi0gICAgICAgICAgIjAuMTc0MzU0LCAwLjIwMDE1OCwgMC40MzIxOTEsIDAuODE4ODIyLCAxLjIwNTc2LCAyLjEwNzg2LCAyLjYyMjM0IiwgXAotICAgICAgICAgICIwLjE4NTE4LCAwLjIxMDczNCwgMC40NDMxMDYsIDAuODMwMTIyLCAxLjIxNjM3LCAyLjExODgzLCAyLjYzMzQ5IiwgXAotICAgICAgICAgICIwLjE5NjIyLCAwLjIyMTg2OSwgMC40NTQwNjUsIDAuODQwNTk2LCAxLjIyNzMzLCAyLjEyODk1LCAyLjY0NDA2IiwgXAotICAgICAgICAgICIwLjIxMzU0NywgMC4yMzkzMjEsIDAuNDcxNTQ5LCAwLjg1Nzk5OSwgMS4yNDQ0OSwgMi4xNDcwOSwgMi42NjE4OSIsIFwKLSAgICAgICAgICAiMC4yMjg4ODgsIDAuMjU0NjEyLCAwLjQ4Njc4OCwgMC44NzM1ODcsIDEuMjYwMDYsIDIuMTYzMDEsIDIuNjc3MTkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjc5ODQ4LCAwLjMzMDg3MywgMC43ODg2MjIsIDEuNTUyNTgsIDIuMzE1NzgsIDQuMDk0OTQsIDUuMTEyNzMiLCBcCi0gICAgICAgICAgIjAuMjc5ODU1LCAwLjMzMDgzMiwgMC43ODg5MjksIDEuNTUxODcsIDIuMzE2MTcsIDQuMDk1NDYsIDUuMTExMDkiLCBcCi0gICAgICAgICAgIjAuMjc5ODQsIDAuMzMwNzg2LCAwLjc4ODk5OSwgMS41NTI0NywgMi4zMTU5NiwgNC4wOTUzMywgNS4xMTE3NSIsIFwKLSAgICAgICAgICAiMC4yODAxNTgsIDAuMzMwOTMyLCAwLjc4OTE5NiwgMS41NTI5LCAyLjMxNTc4LCA0LjA5ODczLCA1LjExMTA4IiwgXAotICAgICAgICAgICIwLjI4MTcyOSwgMC4zMzE2MjYsIDAuNzg4NTcsIDEuNTUyMTEsIDIuMzE2MjYsIDQuMDk0OTIsIDUuMTEzNDMiLCBcCi0gICAgICAgICAgIjAuMjg1OTIsIDAuMzM1MDkzLCAwLjc4ODg0NCwgMS41NTIsIDIuMzE1LCA0LjA5NTMzLCA1LjExMjI0IiwgXAotICAgICAgICAgICIwLjI5MTI4OSwgMC4zMzk3MTYsIDAuNzg5MTczLCAxLjU1Mjc5LCAyLjMxNTY3LCA0LjA5NjI3LCA1LjExMTg0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkExIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNTM1MzgsIDAuMTgwMjM2LCAwLjQxOTgyLCAwLjgxODUzOCwgMS4yMTc2MSwgMi4xNDgyMSwgMi42Nzg5OSIsIFwKLSAgICAgICAgICAiMC4xNjI2MiwgMC4xODkyMDEsIDAuNDI4Njg4LCAwLjgyNzczOCwgMS4yMjYwMywgMi4xNTc5MywgMi42ODg3NiIsIFwKLSAgICAgICAgICAiMC4xNzM2NTYsIDAuMjAwMzgxLCAwLjQzOTgyNywgMC44Mzg3MzIsIDEuMjM3MDQsIDIuMTY3ODcsIDIuNjk5MDQiLCBcCi0gICAgICAgICAgIjAuMTg1MDU5LCAwLjIxMTc0NCwgMC40NTEyNTYsIDAuODUwMDM2LCAxLjI0ODk3LCAyLjE3OTQ4LCAyLjcxMDc1IiwgXAotICAgICAgICAgICIwLjE5NjQyLCAwLjIyMzEzMiwgMC40NjI1OCwgMC44NjE5NTIsIDEuMjYwODIsIDIuMTkxMjcsIDIuNzIxNDYiLCBcCi0gICAgICAgICAgIjAuMjE0NjQ4LCAwLjI0MTMwNCwgMC40ODA4ODksIDAuODc5NTMxLCAxLjI3ODg0LCAyLjIwODA0LCAyLjczOTk4IiwgXAotICAgICAgICAgICIwLjIzMDg1OSwgMC4yNTcyODQsIDAuNDk2NzcsIDAuODk1NzI1LCAxLjI5NDY1LCAyLjIyNTUzLCAyLjc1NTI5Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI5OTE4NiwgMC4zNTMyNDgsIDAuODM4NDIsIDEuNjQ2ODIsIDIuNDU1MjUsIDQuMzQxMjEsIDUuNDE3NzciLCBcCi0gICAgICAgICAgIjAuMjk5Mjk4LCAwLjM1MzQyNiwgMC44MzgyODQsIDEuNjQ3NzcsIDIuNDU1MTYsIDQuMzQxNDYsIDUuNDE3NjEiLCBcCi0gICAgICAgICAgIjAuMjk5MiwgMC4zNTMyMTQsIDAuODM4MzMxLCAxLjY0NzExLCAyLjQ1NTkyLCA0LjM0MDQyLCA1LjQxODc1IiwgXAotICAgICAgICAgICIwLjMwMDExNiwgMC4zNTM1MDEsIDAuODM4MzgyLCAxLjY0NzY5LCAyLjQ1NTI5LCA0LjM0MDkxLCA1LjQxNzg3IiwgXAotICAgICAgICAgICIwLjMwMjkxMiwgMC4zNTUzMjUsIDAuODM4Mjk1LCAxLjY0NzU3LCAyLjQ1NjkyLCA0LjM0MjM1LCA1LjQxOTA2IiwgXAotICAgICAgICAgICIwLjMxMDMyMywgMC4zNjEyMjksIDAuODM4MzE5LCAxLjY0Njc1LCAyLjQ1Njg1LCA0LjM0MDk1LCA1LjQxODYyIiwgXAotICAgICAgICAgICIwLjMxODQ1OCwgMC4zNjgxMDQsIDAuODM4OTcsIDEuNjQ2OTIsIDIuNDU2MjQsIDQuMzQwOTksIDUuNDE4MTgiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTQ2OTEsIDAuMTcyNDY0LCAwLjQwMTI2NiwgMC43ODMxNSwgMS4xNjQ0MSwgMi4wNTM5MiwgMi41NjIwNyIsIFwKLSAgICAgICAgICAiMC4xNTY3NjQsIDAuMTgyMzA3LCAwLjQxMTMxLCAwLjc5MjU4NywgMS4xNzQ1MiwgMi4wNjUwOSwgMi41NzI1NSIsIFwKLSAgICAgICAgICAiMC4xNjc5NzMsIDAuMTkzNDE0LCAwLjQyMjM2MiwgMC44MDM5ODIsIDEuMTg2MTEsIDIuMDc2NTgsIDIuNTgzOSIsIFwKLSAgICAgICAgICAiMC4xNzg3OTIsIDAuMjA0MDYzLCAwLjQzMzQxNiwgMC44MTU1NzMsIDEuMTk2NDYsIDIuMDg3MDMsIDIuNTk1MjMiLCBcCi0gICAgICAgICAgIjAuMTg5NzAzLCAwLjIxNTE2OCwgMC40NDQ0NywgMC44MjU4OTksIDEuMjA3NjIsIDIuMDk3NDUsIDIuNjA2MzEiLCBcCi0gICAgICAgICAgIjAuMjA3MjExLCAwLjIzMjY3MiwgMC40NjE5MzIsIDAuODQzNTA3LCAxLjIyNDc2LCAyLjExNTM3LCAyLjYyMzc4IiwgXAotICAgICAgICAgICIwLjIyMjY1OCwgMC4yNDc3OTMsIDAuNDc3Mzc1LCAwLjg1ODk3NiwgMS4yNDA1NSwgMi4xMzE4NSwgMi42MzgzOCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yNzE4MzUsIDAuMzIwNjM5LCAwLjc3Mjg0NSwgMS41MjQ0OSwgMi4yNzY1NSwgNC4wNDQ0OCwgNS4wNDQxMSIsIFwKLSAgICAgICAgICAiMC4yNzE3NzYsIDAuMzIwODg0LCAwLjc3MjkxMywgMS41MzQzLCAyLjI3NTQ5LCA0LjAzMjE2LCA1LjAzNDIiLCBcCi0gICAgICAgICAgIjAuMjcwNDE4LCAwLjMyMTQxNywgMC43NzM4MzQsIDEuNTI0MjIsIDIuMjc2OTMsIDQuMDMyNTIsIDUuMDM0MjQiLCBcCi0gICAgICAgICAgIjAuMjcyMTQ3LCAwLjMyMTM4NiwgMC43NzI1NjcsIDEuNTIzOTQsIDIuMjc4NjIsIDQuMDMzMDEsIDUuMDM0NzUiLCBcCi0gICAgICAgICAgIjAuMjcyODk3LCAwLjMyMjQzMiwgMC43NzE5MzEsIDEuNTMzMjYsIDIuMjc2MTgsIDQuMDMxMzMsIDUuMDMzOSIsIFwKLSAgICAgICAgICAiMC4yNzczOTksIDAuMzI1NTM3LCAwLjc3MzkzMSwgMS41Mjc5NCwgMi4yODI3OCwgNC4wMzI2OCwgNS4wMzkyNyIsIFwKLSAgICAgICAgICAiMC4yODI2MTksIDAuMzMwNDUxLCAwLjc3MjM0OSwgMS41MzMwOSwgMi4yNzYxMywgNC4wMzIzNywgNS4wNDM2MyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc5NDIzLCAwLjA5MzU3OSwgMC4yMjA3MzMsIDAuNDMyNjMyLCAwLjY0NDg5MywgMS4xMzkyNiwgMS40MjIyMSIsIFwKLSAgICAgICAgICAiMC4wODkyMjcsIDAuMTAzMzU1LCAwLjIzMDY2OSwgMC40NDI1MjQsIDAuNjU0NDgxLCAxLjE0OTE3LCAxLjQzMTYyIiwgXAotICAgICAgICAgICIwLjEwMTQ3OCwgMC4xMTU2MzMsIDAuMjQyODA2LCAwLjQ1NDE5OSwgMC42NjYxODUsIDEuMTYwNzgsIDEuNDQzMTYiLCBcCi0gICAgICAgICAgIjAuMTE0MDkxLCAwLjEyNzkyNiwgMC4yNTUxOTIsIDAuNDY2MjMyLCAwLjY3ODIzOCwgMS4xNzI3MSwgMS40NTUzNSIsIFwKLSAgICAgICAgICAiMC4xMjY2MDQsIDAuMTQwNzEyLCAwLjI2Nzc1OCwgMC40Nzk0MSwgMC42OTAzMDEsIDEuMTg0NzMsIDEuNDY3NDYiLCBcCi0gICAgICAgICAgIjAuMTQ2Nzc3LCAwLjE2MDc3NSwgMC4yODcxNjIsIDAuNDk5MTgxLCAwLjcxMTAzNywgMS4yMDQ1NywgMS40ODY1NiIsIFwKLSAgICAgICAgICAiMC4xNjM4MjksIDAuMTc4MzAzLCAwLjMwNDQ5MywgMC41MTY2MywgMC43MjgzMDUsIDEuMjIxMSwgMS41MDQzNSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNjA3MTIsIDAuMTg5NjQ1LCAwLjQ0OTk5NCwgMC44ODQyNTksIDEuMzE5MDgsIDIuMzMyOSwgMi45MTM0NCIsIFwKLSAgICAgICAgICAiMC4xNjA2OTEsIDAuMTg5NjIyLCAwLjQ1MDE2NywgMC44ODQ1MjgsIDEuMzE5MDYsIDIuMzMzMTMsIDIuOTEyMzgiLCBcCi0gICAgICAgICAgIjAuMTYyMTc3LCAwLjE5MDM3MywgMC40NTAwMiwgMC44ODQ0NCwgMS4zMTkwNSwgMi4zMzI5LCAyLjkxMjA4IiwgXAotICAgICAgICAgICIwLjE2NjM5NCwgMC4xOTM4NzIsIDAuNDQ5OTc3LCAwLjg4NDI4NiwgMS4zMTg1NSwgMi4zMzMwNSwgMi45MTIxNSIsIFwKLSAgICAgICAgICAiMC4xNzIyNjIsIDAuMTk4ODY2LCAwLjQ1MDYwNywgMC44ODQ0NTQsIDEuMzE5MDYsIDIuMzMzMTEsIDIuOTEyMzQiLCBcCi0gICAgICAgICAgIjAuMTgzNzUxLCAwLjIwOTIyNSwgMC40NTQyMzcsIDAuODg0NDM0LCAxLjMxODg4LCAyLjMzMjkzLCAyLjkxMjM1IiwgXAotICAgICAgICAgICIwLjE5NDk4LCAwLjIxOTY5OCwgMC40NTk3OTcsIDAuODg0NiwgMS4zMTg2LCAyLjMzMzI3LCAyLjkxMjQ2Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE0NzMwNCwgMC4xNzMxNzksIDAuNDA1MTIyLCAwLjc5MTg2OSwgMS4xNzc5MywgMi4wNzk3MiwgMi41OTUxOCIsIFwKLSAgICAgICAgICAiMC4xNTY1MDYsIDAuMTgyMzE3LCAwLjQxNDMzOCwgMC44MDEyNjQsIDEuMTg3MjgsIDIuMDg4OTUsIDIuNjA0OTgiLCBcCi0gICAgICAgICAgIjAuMTY4MTUxLCAwLjE5NDAwOSwgMC40MjYxMjIsIDAuODEyODMsIDEuMTk5OCwgMi4xMDE5MSwgMi42MTYzNSIsIFwKLSAgICAgICAgICAiMC4xNzk2ODksIDAuMjA1NDk1LCAwLjQzNzY0MSwgMC44MjQ2NjYsIDEuMjEwOTQsIDIuMTEzNTgsIDIuNjI3ODkiLCBcCi0gICAgICAgICAgIjAuMTkxMzY3LCAwLjIxNzIxOSwgMC40NDkzMDEsIDAuODM1ODI3LCAxLjIyMjczLCAyLjEyMzg4LCAyLjYzOTM5IiwgXAotICAgICAgICAgICIwLjIxMDEyNiwgMC4yMzU5NTMsIDAuNDY3OTg5LCAwLjg1NDU2OCwgMS4yNDA4OCwgMi4xNDI2NiwgMi42NTg2MyIsIFwKLSAgICAgICAgICAiMC4yMjY5MTMsIDAuMjUyNTc5LCAwLjQ4NDM5NywgMC44NzExMTYsIDEuMjU3NDgsIDIuMTYwMTEsIDIuNjc0MTUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjc5ODQ5LCAwLjMzMDgzNSwgMC43ODg5NDcsIDEuNTUzMjIsIDIuMzE1MzUsIDQuMDk0NzQsIDUuMTEyNDQiLCBcCi0gICAgICAgICAgIjAuMjc5OTgxLCAwLjMzMDg3NSwgMC43ODg5NjksIDEuNTUyNzYsIDIuMzE1MTcsIDQuMDk2MTIsIDUuMTEyNTkiLCBcCi0gICAgICAgICAgIjAuMjc5NzYsIDAuMzMwNzIxLCAwLjc4ODYxNCwgMS41NTI2MSwgMi4zMTU4OSwgNC4wOTUzNSwgNS4xMTE1OSIsIFwKLSAgICAgICAgICAiMC4yODA1ODMsIDAuMzMxMDA1LCAwLjc4ODYxNSwgMS41NTI4OCwgMi4zMTU4OCwgNC4wOTQ4NywgNS4xMTE1NyIsIFwKLSAgICAgICAgICAiMC4yODMyMjgsIDAuMzMyNzY3LCAwLjc4ODYxNiwgMS41NTE2MiwgMi4zMTU4NiwgNC4wOTM5MywgNS4xMTM0IiwgXAotICAgICAgICAgICIwLjI5MDM1NSwgMC4zMzg2MDYsIDAuNzg4ODYsIDEuNTUxODYsIDIuMzE1MzMsIDQuMDk3NzMsIDUuMTEyNzQiLCBcCi0gICAgICAgICAgIjAuMjk4NzQ1LCAwLjM0NTY2OSwgMC43ODkyODQsIDEuNTUyMjksIDIuMzE1NTcsIDQuMDk2NTMsIDUuMTExNzEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxODEyLCAwLjAwMTgxMSwgMC4wMDE4MTEsIDAuMDAxODExLCAwLjAwMTgxLCAwLjAwMTgwOSwgMC4wMDE4MDgiLCBcCi0gICAgICAgICAgIjAuMDAxODA1LCAwLjAwMTgwNiwgMC4wMDE4MDYsIDAuMDAxODA1LCAwLjAwMTgwNiwgMC4wMDE4MDQsIDAuMDAxODAzIiwgXAotICAgICAgICAgICIwLjAwMTgwMiwgMC4wMDE4MDMsIDAuMDAxODA1LCAwLjAwMTgwNSwgMC4wMDE4MDUsIDAuMDAxODA0LCAwLjAwMTgwMiIsIFwKLSAgICAgICAgICAiMC4wMDE4LCAwLjAwMTgwMSwgMC4wMDE4MDQsIDAuMDAxODA0LCAwLjAwMTgwNCwgMC4wMDE4MDMsIDAuMDAxODAyIiwgXAotICAgICAgICAgICIwLjAwMTc5OSwgMC4wMDE4LCAwLjAwMTgwMywgMC4wMDE4MDQsIDAuMDAxODA0LCAwLjAwMTgwMiwgMC4wMDE4MDIiLCBcCi0gICAgICAgICAgIjAuMDAxNzk4LCAwLjAwMTc5OSwgMC4wMDE3OTksIDAuMDAxODAzLCAwLjAwMTgwNCwgMC4wMDE4MDIsIDAuMDAxODAyIiwgXAotICAgICAgICAgICIwLjAwMTc5OCwgMC4wMDE3OTksIDAuMDAxODAyLCAwLjAwMTgwMywgMC4wMDE4MDMsIDAuMDAxODAyLCAwLjAwMTgwMiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDQwOSwgMC4wMDA0MDksIDAuMDAwNDA5LCAwLjAwMDQwOSwgMC4wMDA0MDksIDAuMDAwNDA4LCAwLjAwMDQxMSIsIFwKLSAgICAgICAgICAiMC4wMDAzOTksIDAuMDAwNCwgMC4wMDA0MDEsIDAuMDAwNDAyLCAwLjAwMDQwMiwgMC4wMDA0MDIsIDAuMDAwNDAyIiwgXAotICAgICAgICAgICIwLjAwMDM5NSwgMC4wMDAzOTYsIDAuMDAwMzk5LCAwLjAwMDQsIDAuMDAwNCwgMC4wMDA0LCAwLjAwMDQiLCBcCi0gICAgICAgICAgIjAuMDAwMzkxLCAwLjAwMDM5MiwgMC4wMDAzOTcsIDAuMDAwMzk5LCAwLjAwMDQsIDAuMDAwNCwgMC4wMDA0IiwgXAotICAgICAgICAgICIwLjAwMDM4OCwgMC4wMDAzOSwgMC4wMDAzOTYsIDAuMDAwMzk4LCAwLjAwMDM5OSwgMC4wMDAzOTksIDAuMDAwMzk5IiwgXAotICAgICAgICAgICIwLjAwMDM4NSwgMC4wMDAzODcsIDAuMDAwMzk0LCAwLjAwMDM5NywgMC4wMDAzOTgsIDAuMDAwMzk5LCAwLjAwMDM5OSIsIFwKLSAgICAgICAgICAiMC4wMDAzODMsIDAuMDAwMzg1LCAwLjAwMDM5MywgMC4wMDAzOTYsIDAuMDAwMzk4LCAwLjAwMDM5OCwgMC4wMDAzOTkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxNjE1LCAwLjAwMTYxNSwgMC4wMDE2MTUsIDAuMDAxNjE0LCAwLjAwMTYxNCwgMC4wMDE2MTIsIDAuMDAxNjExIiwgXAotICAgICAgICAgICIwLjAwMTYwNywgMC4wMDE2MDcsIDAuMDAxNjA5LCAwLjAwMTYwOSwgMC4wMDE2MDksIDAuMDAxNjA3LCAwLjAwMTYwNiIsIFwKLSAgICAgICAgICAiMC4wMDE2MDMsIDAuMDAxNjA0LCAwLjAwMTYwNywgMC4wMDE2MDcsIDAuMDAxNjA3LCAwLjAwMTYwNiwgMC4wMDE2MDUiLCBcCi0gICAgICAgICAgIjAuMDAxNjAxLCAwLjAwMTYwMiwgMC4wMDE2MDYsIDAuMDAxNjA3LCAwLjAwMTYwNywgMC4wMDE2MDUsIDAuMDAxNjA1IiwgXAotICAgICAgICAgICIwLjAwMTYwMSwgMC4wMDE2MDIsIDAuMDAxNjA1LCAwLjAwMTYwNiwgMC4wMDE2MDcsIDAuMDAxNjA1LCAwLjAwMTYwNSIsIFwKLSAgICAgICAgICAiMC4wMDE2MDQsIDAuMDAxNjA0LCAwLjAwMTYwNiwgMC4wMDE2MDYsIDAuMDAxNjA2LCAwLjAwMTYwNSwgMC4wMDE2MDUiLCBcCi0gICAgICAgICAgIjAuMDAxNjA4LCAwLjAwMTYwOCwgMC4wMDE2MDcsIDAuMDAxNjA3LCAwLjAwMTYwNywgMC4wMDE2MDYsIDAuMDAxNjA0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwMjEsIDAuMDAwMjEsIDAuMDAwMjEyLCAwLjAwMDIxMiwgMC4wMDAyMTIsIDAuMDAwMjEyLCAwLjAwMDIxMiIsIFwKLSAgICAgICAgICAiMC4wMDAyMDgsIDAuMDAwMjEsIDAuMDAwMjE1LCAwLjAwMDIxNywgMC4wMDAyMTcsIDAuMDAwMjE4LCAwLjAwMDIxOCIsIFwKLSAgICAgICAgICAiMC4wMDAyLCAwLjAwMDIwMywgMC4wMDAyMTIsIDAuMDAwMjE2LCAwLjAwMDIxNywgMC4wMDAyMTgsIDAuMDAwMjE5IiwgXAotICAgICAgICAgICIwLjAwMDE5MywgMC4wMDAxOTYsIDAuMDAwMjA5LCAwLjAwMDIxNCwgMC4wMDAyMTYsIDAuMDAwMjE4LCAwLjAwMDIxOCIsIFwKLSAgICAgICAgICAiMC4wMDAxODYsIDAuMDAwMTksIDAuMDAwMjA2LCAwLjAwMDIxMywgMC4wMDAyMTUsIDAuMDAwMjE3LCAwLjAwMDIxOCIsIFwKLSAgICAgICAgICAiMC4wMDAxNzgsIDAuMDAwMTgzLCAwLjAwMDIwMiwgMC4wMDAyMSwgMC4wMDAyMTMsIDAuMDAwMjE2LCAwLjAwMDIxNyIsIFwKLSAgICAgICAgICAiMC4wMDAxNzMsIDAuMDAwMTc4LCAwLjAwMDE5OCwgMC4wMDAyMDgsIDAuMDAwMjEyLCAwLjAwMDIxNiwgMC4wMDAyMTciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxMTk1LCAwLjAwMTE5NSwgMC4wMDExOTYsIDAuMDAxMTk2LCAwLjAwMTE5NiwgMC4wMDExOTYsIDAuMDAxMTk2IiwgXAotICAgICAgICAgICIwLjAwMTE5NCwgMC4wMDExOTQsIDAuMDAxMTk4LCAwLjAwMTIsIDAuMDAxMiwgMC4wMDEyMDEsIDAuMDAxMiIsIFwKLSAgICAgICAgICAiMC4wMDExODgsIDAuMDAxMTksIDAuMDAxMTk3LCAwLjAwMTE5OSwgMC4wMDEyMDEsIDAuMDAxMjAyLCAwLjAwMTIwMiIsIFwKLSAgICAgICAgICAiMC4wMDExODYsIDAuMDAxMTg3LCAwLjAwMTE5NSwgMC4wMDExOTksIDAuMDAxMiwgMC4wMDEyMDIsIDAuMDAxMjAyIiwgXAotICAgICAgICAgICIwLjAwMTE4NSwgMC4wMDExODcsIDAuMDAxMTk1LCAwLjAwMTE5OCwgMC4wMDEyLCAwLjAwMTIwMSwgMC4wMDEyMDEiLCBcCi0gICAgICAgICAgIjAuMDAxMTg3LCAwLjAwMTE4OSwgMC4wMDExOTQsIDAuMDAxMTk4LCAwLjAwMTE5OSwgMC4wMDEyMDEsIDAuMDAxMjAxIiwgXAotICAgICAgICAgICIwLjAwMTE5MSwgMC4wMDExOTIsIDAuMDAxMTk1LCAwLjAwMTE5OCwgMC4wMDEyLCAwLjAwMTIwMSwgMC4wMDEyMDEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDA0MjYsIDAuMDAwNDI2LCAwLjAwMDQyNywgMC4wMDA0MjgsIDAuMDAwNDI4LCAwLjAwMDQyNywgMC4wMDA0MjciLCBcCi0gICAgICAgICAgIjAuMDAwNDE3LCAwLjAwMDQxOCwgMC4wMDA0MjQsIDAuMDAwNDI2LCAwLjAwMDQyNiwgMC4wMDA0MjcsIDAuMDAwNDI2IiwgXAotICAgICAgICAgICIwLjAwMDQwOCwgMC4wMDA0MTEsIDAuMDAwNDIsIDAuMDAwNDI0LCAwLjAwMDQyNSwgMC4wMDA0MjYsIDAuMDAwNDI2IiwgXAotICAgICAgICAgICIwLjAwMDQwNSwgMC4wMDA0MDcsIDAuMDAwNDE4LCAwLjAwMDQyMiwgMC4wMDA0MjQsIDAuMDAwNDI1LCAwLjAwMDQyNiIsIFwKLSAgICAgICAgICAiMC4wMDA0MDMsIDAuMDAwNDA1LCAwLjAwMDQxNiwgMC4wMDA0MjEsIDAuMDAwNDIzLCAwLjAwMDQyNSwgMC4wMDA0MjUiLCBcCi0gICAgICAgICAgIjAuMDAwNDA0LCAwLjAwMDQwNiwgMC4wMDA0MTQsIDAuMDAwNDIsIDAuMDAwNDIyLCAwLjAwMDQyNCwgMC4wMDA0MjUiLCBcCi0gICAgICAgICAgIjAuMDAwNDA5LCAwLjAwMDQwOSwgMC4wMDA0MTUsIDAuMDAwNDIsIDAuMDAwNDIyLCAwLjAwMDQyNCwgMC4wMDA0MjQiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogT0FJMjIxWEwgKgotICogLS0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKE9BSTIyMVhMKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMTAwNjQzOwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNTkzNDI0OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDU5MjU2ODsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA1OTM0MjQ7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjI2LCAwLjAwMDIyNiwgMC4wMDAyMjYsIDAuMDAwMjI2LCAwLjAwMDIyNiwgMC4wMDAyMjYsIDAuMDAwMjI2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjI3LCAwLjAwMDIyNywgMC4wMDAyMjcsIDAuMDAwMjI3LCAwLjAwMDIyNywgMC4wMDAyMjcsIDAuMDAwMjI3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihBMSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNTkxNzU7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNTkxNzU7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNTg5NjU3OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDIyNiwgMC4wMDAyMjYsIDAuMDAwMjI2LCAwLjAwMDIyNiwgMC4wMDAyMjYsIDAuMDAwMjI2LCAwLjAwMDIyNiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDIyNywgMC4wMDAyMjcsIDAuMDAwMjI3LCAwLjAwMDIyNywgMC4wMDAyMjcsIDAuMDAwMjI3LCAwLjAwMDIyNyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQjApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYzOTU2OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYzODE1OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDYzOTU2OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDIyNiwgMC4wMDAyMjYsIDAuMDAwMjI2LCAwLjAwMDIyNiwgMC4wMDAyMjYsIDAuMDAwMjI2LCAwLjAwMDIyNiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDIyNywgMC4wMDAyMjcsIDAuMDAwMjI3LCAwLjAwMDIyNywgMC4wMDAyMjcsIDAuMDAwMjI3LCAwLjAwMDIyNyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQjEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYxODU3MjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MTg1NzI7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjE3MDI2OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDIyNiwgMC4wMDAyMjYsIDAuMDAwMjI2LCAwLjAwMDIyNiwgMC4wMDAyMjYsIDAuMDAwMjI2LCAwLjAwMDIyNiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDIyNywgMC4wMDAyMjcsIDAuMDAwMjI3LCAwLjAwMDIyNywgMC4wMDAyMjcsIDAuMDAwMjI3LCAwLjAwMDIyNyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQzApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY5MTI3OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDY5MTAxNDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2OTEyNzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyNjIsIDAuMDAwMjYzLCAwLjAwMDI2MywgMC4wMDAyNjMsIDAuMDAwMjYzLCAwLjAwMDI2MywgMC4wMDAyNjMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyNTcsIDAuMDAwMjU3LCAwLjAwMDI1NywgMC4wMDAyNTcsIDAuMDAwMjU3LCAwLjAwMDI1NywgMC4wMDAyNTciKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4wNTgxMTc5OwotICAgIGZ1bmN0aW9uIDogIighKCgoQTArQTEpIChCMCtCMSkpIEMwKSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNzE5MzgsIDAuMTk4NzY2LCAwLjQzOTIwMSwgMC44MzgzNzMsIDEuMjM3OTEsIDIuMTY4LCAyLjcwMDExIiwgXAotICAgICAgICAgICIwLjE4MDYzMywgMC4yMDc0NTIsIDAuNDQ3NzAzLCAwLjg0Njk4OCwgMS4yNDY2MSwgMi4xNzczNywgMi43MDgyNiIsIFwKLSAgICAgICAgICAiMC4xOTA1NjgsIDAuMjE3NDM4LCAwLjQ1NzgwOSwgMC44NTcyODcsIDEuMjU2NCwgMi4xODcwMywgMi43MTgwNiIsIFwKLSAgICAgICAgICAiMC4yMDAzNjgsIDAuMjI3MjUxLCAwLjQ2NzYzNiwgMC44NjcyLCAxLjI2NjA4LCAyLjE5NjgsIDIuNzI4NCIsIFwKLSAgICAgICAgICAiMC4yMTAzNzUsIDAuMjM3MDQ5LCAwLjQ3NzM4NywgMC44NzY2NjIsIDEuMjc1ODgsIDIuMjA3MjQsIDIuNzM3NzMiLCBcCi0gICAgICAgICAgIjAuMjI1OTc1LCAwLjI1MjcwOSwgMC40OTM1MTcsIDAuODkyNzQ4LCAxLjI5MjA1LCAyLjIyMzE0LCAyLjc1NDMiLCBcCi0gICAgICAgICAgIjAuMjM5NTM3LCAwLjI2NjY1MiwgMC41MDY5NTIsIDAuOTA2Mjc3LCAxLjMwNTY0LCAyLjIzNjc0LCAyLjc2NzUiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzMwNTY4LCAwLjM4NDQzOSwgMC44Njk0NTksIDEuNjc3ODYsIDIuNDg1MTcsIDQuMzcwNjQsIDUuNDQ5MDMiLCBcCi0gICAgICAgICAgIjAuMzMwNTUyLCAwLjM4NDQ4NywgMC44Njk1NTgsIDEuNjc3ODIsIDIuNDg1NzMsIDQuMzY5NzUsIDUuNDQ3NCIsIFwKLSAgICAgICAgICAiMC4zMzA1ODIsIDAuMzg0NDYyLCAwLjg2OTU4NCwgMS42NzczNywgMi40ODUyMywgNC4zNzEwMywgNS40NDgyMiIsIFwKLSAgICAgICAgICAiMC4zMzA4NjIsIDAuMzg0NTgyLCAwLjg2OTYyNCwgMS42Nzc0MiwgMi40ODUwNCwgNC4zNzA1NSwgNS40NDgwMyIsIFwKLSAgICAgICAgICAiMC4zMzIzNjUsIDAuMzg1NDgsIDAuODY5NTIxLCAxLjY3NzQyLCAyLjQ4NTYyLCA0LjM3MDM4LCA1LjQ0NzkiLCBcCi0gICAgICAgICAgIjAuMzM2MjU1LCAwLjM4ODY2MiwgMC44Njk1MzcsIDEuNjc3MzksIDIuNDg1MzYsIDQuMzcwOTUsIDUuNDQ4NzkiLCBcCi0gICAgICAgICAgIjAuMzQxMDA0LCAwLjM5MzA0NywgMC44Njk4ODksIDEuNjc3MjYsIDIuNDg1MzQsIDQuMzcwOCwgNS40NDY5MiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yNDc1NiwgMC4yODUxMDMsIDAuNjIyODQ3LCAxLjE4NDg2LCAxLjc1MDk4LCAzLjA3MDU5LCAzLjgyNDc3IiwgXAotICAgICAgICAgICIwLjI1NzQ1OSwgMC4yOTUwMTcsIDAuNjMyNjUxLCAxLjE5NDk5LCAxLjc2MDQsIDMuMDgxMzEsIDMuODM0NzIiLCBcCi0gICAgICAgICAgIjAuMjY4MjQ0LCAwLjMwNTkzNywgMC42NDM1NiwgMS4yMDU0OCwgMS43NzIxOCwgMy4wOTE1MSwgMy44NDU2NSIsIFwKLSAgICAgICAgICAiMC4yNzgyMDgsIDAuMzE1OTAxLCAwLjY1MzY1NiwgMS4yMTU4OCwgMS43ODEwMywgMy4xMDE0NywgMy44NTU4IiwgXAotICAgICAgICAgICIwLjI4NzgxNywgMC4zMjUzODEsIDAuNjYzMDc3LCAxLjIyNTMyLCAxLjc5MTA1LCAzLjExMTk2LCAzLjg2NTE1IiwgXAotICAgICAgICAgICIwLjMwMjQwNCwgMC4zNDAwMTQsIDAuNjc3OTEyLCAxLjIzOTU3LCAxLjgwNiwgMy4xMjU4NSwgMy44OCIsIFwKLSAgICAgICAgICAiMC4zMTQ5NTQsIDAuMzUyNTc4LCAwLjY5MDMyOCwgMS4yNTMxLCAxLjgxODk5LCAzLjEzOTMzLCAzLjg5MjkxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjQyOTQ0NSwgMC41MDI1MTksIDEuMTY0MzUsIDIuMjc1MTgsIDMuMzg2MDIsIDUuOTczMTUsIDcuNDU0IiwgXAotICAgICAgICAgICIwLjQyOTQyLCAwLjUwMjY4NywgMS4xNjM5MSwgMi4yNzQ5NSwgMy4zODQxLCA1Ljk3MjY3LCA3LjQ1Mzc4IiwgXAotICAgICAgICAgICIwLjQyOTE4MywgMC41MDI3NDMsIDEuMTYzOSwgMi4yNzQ3NSwgMy4zODU0OCwgNS45NzQzMSwgNy40NTMzMSIsIFwKLSAgICAgICAgICAiMC40MjkzNDEsIDAuNTAyNTI4LCAxLjE2NDIyLCAyLjI3NTQsIDMuMzgzODEsIDUuOTczMzUsIDcuNDU0MDYiLCBcCi0gICAgICAgICAgIjAuNDI5MTgsIDAuNTAyNTE5LCAxLjE2NDIzLCAyLjI3NDU2LCAzLjM4MzUsIDUuOTcyMDYsIDcuNDUzOSIsIFwKLSAgICAgICAgICAiMC40MzAwNCwgMC41MDI5NzUsIDEuMTY0MjIsIDIuMjc0MjQsIDMuMzg1ODQsIDUuOTcyNzcsIDcuNDUzODgiLCBcCi0gICAgICAgICAgIjAuNDMxNjk1LCAwLjUwNDUwOCwgMS4xNjQ3NCwgMi4yNzUyOSwgMy4zODM5OCwgNS45NzE1OSwgNy40NTQ0OSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTY4MTY4LCAwLjE5NTAxOCwgMC40MzUyMSwgMC44MzUwNSwgMS4yMzM3OSwgMi4xNjQzNSwgMi42OTYyNiIsIFwKLSAgICAgICAgICAiMC4xNzcwNDMsIDAuMjAzOTMyLCAwLjQ0NDQyMSwgMC44NDM2ODMsIDEuMjQzMTksIDIuMTc0MzMsIDIuNzA0ODUiLCBcCi0gICAgICAgICAgIjAuMTg4MjI4LCAwLjIxNTA5MywgMC40NTU0MDUsIDAuODU1MDAyLCAxLjI1Mzg3LCAyLjE4NDIyLCAyLjcxNTg1IiwgXAotICAgICAgICAgICIwLjE5OTU4NiwgMC4yMjYxMTUsIDAuNDY2ODk5LCAwLjg2NjI4OCwgMS4yNjUyMiwgMi4xOTYsIDIuNzI3NTIiLCBcCi0gICAgICAgICAgIjAuMjEwOTc5LCAwLjIzNzc2MiwgMC40NzgxNzQsIDAuODc3Mzg5LCAxLjI3NzA5LCAyLjIwNzQyLCAyLjczODQ0IiwgXAotICAgICAgICAgICIwLjIyOTE1OSwgMC4yNTYwMDEsIDAuNDk2NDAxLCAwLjg5NTU2NywgMS4yOTQ2OCwgMi4yMjUyMiwgMi43NTY3MSIsIFwKLSAgICAgICAgICAiMC4yNDUzMTEsIDAuMjcxOTY2LCAwLjUxMjI1OCwgMC45MTE2MzEsIDEuMzEwNjgsIDIuMjQyMDksIDIuNzcyMzgiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzMwNjIsIDAuMzg0NTc1LCAwLjg2OTY0NiwgMS42Nzc0NSwgMi40ODU3NywgNC4zNjk5NSwgNS40NDc0IiwgXAotICAgICAgICAgICIwLjMzMDYzMywgMC4zODQ0ODUsIDAuODY5NTY0LCAxLjY3NzU3LCAyLjQ4NTM3LCA0LjM3MTE2LCA1LjQ0Nzc1IiwgXAotICAgICAgICAgICIwLjMzMDUxNywgMC4zODQ0MzcsIDAuODY5NjQsIDEuNjc3NDIsIDIuNDg1NzYsIDQuMzcwNTUsIDUuNDQ3NyIsIFwKLSAgICAgICAgICAiMC4zMzA5NTEsIDAuMzg0NDQ1LCAwLjg2OTUxOCwgMS42NzczNCwgMi40ODUwMiwgNC4zNzA3MiwgNS40NDgwMiIsIFwKLSAgICAgICAgICAiMC4zMzMxOTEsIDAuMzg1ODYsIDAuODY5NTE3LCAxLjY3NzM5LCAyLjQ4NTY1LCA0LjM3MDk5LCA1LjQ0NzU2IiwgXAotICAgICAgICAgICIwLjMzOTQ5NiwgMC4zOTEwMjMsIDAuODY5NTAzLCAxLjY3NzQ0LCAyLjQ4NDg3LCA0LjM3MTE1LCA1LjQ0NzUzIiwgXAotICAgICAgICAgICIwLjM0NzE1MiwgMC4zOTc0MTMsIDAuODY5ODE2LCAxLjY3NzM3LCAyLjQ4NTMxLCA0LjM3MDUxLCA1LjQ0NzQ1Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI0MDEzOCwgMC4yNzc2NDgsIDAuNjE0ODE5LCAxLjE3NzE0LCAxLjc0MzA3LCAzLjA2MzU5LCAzLjgxNzMxIiwgXAotICAgICAgICAgICIwLjI1MDIyMywgMC4yODc4MTQsIDAuNjI1Mzk4LCAxLjE4NzMzLCAxLjc1NDI5LCAzLjA3MzE1LCAzLjgyNzQ1IiwgXAotICAgICAgICAgICIwLjI2MTA2MiwgMC4yOTg3NSwgMC42MzYzNDQsIDEuMTk4MjgsIDEuNzY1MTQsIDMuMDg0MjgsIDMuODM4NDIiLCBcCi0gICAgICAgICAgIjAuMjcwOTgzLCAwLjMwODYyOCwgMC42NDYzNDgsIDEuMjA4NjYsIDEuNzczNjUsIDMuMDk0MzUsIDMuODQ4NTciLCBcCi0gICAgICAgICAgIjAuMjgwNDQsIDAuMzE4MDYyLCAwLjY1NTc3MSwgMS4yMTc5MywgMS43ODM3OCwgMy4xMDQ3MiwgMy44NTc5MyIsIFwKLSAgICAgICAgICAiMC4yOTQ5MTgsIDAuMzMyNTM0LCAwLjY3MDU1OCwgMS4yMzIzLCAxLjc5OTI1LCAzLjExODYzLCAzLjg3Mjc2IiwgXAotICAgICAgICAgICIwLjMwNzM5NiwgMC4zNDUwMDQsIDAuNjgyOTY0LCAxLjI0NTc5LCAxLjgxMTY3LCAzLjEzMjA3LCAzLjg4NTY2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjQyMDQyMSwgMC40OTM3NTgsIDEuMTU4NDgsIDIuMjY5MzYsIDMuMzk5OTcsIDUuOTYzOTcsIDcuNDQ1NiIsIFwKLSAgICAgICAgICAiMC40MjA0NDMsIDAuNDk0MTM0LCAxLjE2NDcyLCAyLjI3MjIzLCAzLjM3NTEsIDUuOTY5NjMsIDcuNDQ1NDgiLCBcCi0gICAgICAgICAgIjAuNDIwNDM0LCAwLjQ5Mzk5MSwgMS4xNTUzNywgMi4yNzE0NiwgMy4zNzU0NSwgNS45NjkzMSwgNy40NDUwOCIsIFwKLSAgICAgICAgICAiMC40MjA2NiwgMC40OTM4NjksIDEuMTU2NTIsIDIuMjY2MDMsIDMuMzg0MjQsIDUuOTY5NzgsIDcuNDQ1MDUiLCBcCi0gICAgICAgICAgIjAuNDIwNDk5LCAwLjQ5Mzg5MywgMS4xNTYzLCAyLjI2NjY2LCAzLjM4NDgyLCA1Ljk2MzY2LCA3LjQ0NDg4IiwgXAotICAgICAgICAgICIwLjQyMTQ3NywgMC40OTQyMywgMS4xNTU0NiwgMi4yNzA3LCAzLjM3NTU5LCA1Ljk2Nzc2LCA3LjQ0NSIsIFwKLSAgICAgICAgICAiMC40MjMzOCwgMC40OTU4NDQsIDEuMTU4MjIsIDIuMjY1NDQsIDMuMzc1NTIsIDUuOTYzNDIsIDcuNDQ1MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjAiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE2MzExMiwgMC4xODk4NzMsIDAuNDI5NTc4LCAwLjgyODczOSwgMS4yMjc5MSwgMi4xNTgxOSwgMi42ODkwNSIsIFwKLSAgICAgICAgICAiMC4xNzIwMTcsIDAuMTk4NzA4LCAwLjQzODQ3MywgMC44Mzc3MDcsIDEuMjM2NjIsIDIuMTY2NjgsIDIuNjk4MDQiLCBcCi0gICAgICAgICAgIjAuMTgxOTMsIDAuMjA4NjYsIDAuNDQ4NDY5LCAwLjg0NzYyOCwgMS4yNDY4NSwgMi4xNzcwNywgMi43MDgwMiIsIFwKLSAgICAgICAgICAiMC4xOTE4MTIsIDAuMjE4NjA2LCAwLjQ1ODQ3OCwgMC44NTc2NiwgMS4yNTY2NiwgMi4xODY4OCwgMi43MTgxMiIsIFwKLSAgICAgICAgICAiMC4yMDE3MTQsIDAuMjI4NDY1LCAwLjQ2ODI0MywgMC44Njc0NTMsIDEuMjY2NDQsIDIuMTk2NjQsIDIuNzI4MTQiLCBcCi0gICAgICAgICAgIjAuMjE3Mzg4LCAwLjI0NDAwOSwgMC40ODQxNCwgMC44ODM1MTcsIDEuMjgyNDQsIDIuMjEyODksIDIuNzQ0MDIiLCBcCi0gICAgICAgICAgIjAuMjMwOTk0LCAwLjI1NzkzNywgMC40OTc4MTIsIDAuODk3MjA0LCAxLjI5NjMyLCAyLjIyNjQ1LCAyLjc1NzU5Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMxOTY0MSwgMC4zNzM1NiwgMC44NTgxNjcsIDEuNjY1NzMsIDIuNDc0MDYsIDQuMzU5MzQsIDUuNDM3NTMiLCBcCi0gICAgICAgICAgIjAuMzE5NjU3LCAwLjM3MzQ2NSwgMC44NTgyOTgsIDEuNjY2MDIsIDIuNDczODcsIDQuMzU5OTgsIDUuNDM2MzYiLCBcCi0gICAgICAgICAgIjAuMzE5NjE0LCAwLjM3MzUyNSwgMC44NTgxNDgsIDEuNjY1NzEsIDIuNDc0MDgsIDQuMzU5MzcsIDUuNDM2MzkiLCBcCi0gICAgICAgICAgIjAuMzIwMDQsIDAuMzczNTc1LCAwLjg1ODE1NSwgMS42NjU4MSwgMi40NzMzMywgNC4zNTkxLCA1LjQzNzY0IiwgXAotICAgICAgICAgICIwLjMyMTU3NywgMC4zNzQ3NTUsIDAuODU4MTU0LCAxLjY2NTczLCAyLjQ3NDAzLCA0LjM1ODYzLCA1LjQzNzM5IiwgXAotICAgICAgICAgICIwLjMyNTkyLCAwLjM3ODA0MiwgMC44NTgyOTYsIDEuNjY1NzQsIDIuNDczODEsIDQuMzU4NjEsIDUuNDM1OTYiLCBcCi0gICAgICAgICAgIjAuMzMwOTk3LCAwLjM4MjcyNCwgMC44NTg2NjMsIDEuNjY1NzksIDIuNDc0MDMsIDQuMzU5MTIsIDUuNDM2MzMiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjM5MDc3LCAwLjI3NjU4NywgMC42MTQwMjYsIDEuMTc2MTYsIDEuNzM4MDgsIDMuMDQ5MSwgMy43OTY1NCIsIFwKLSAgICAgICAgICAiMC4yNDgzNCwgMC4yODYwNDksIDAuNjIzNDA3LCAxLjE4NTQzLCAxLjc0Nzc1LCAzLjA1NzY1LCAzLjgwNjAxIiwgXAotICAgICAgICAgICIwLjI1OTE4LCAwLjI5Njc4NCwgMC42MzQzOTIsIDEuMTk2ODcsIDEuNzU4ODMsIDMuMDY4NDMsIDMuODE3MDIiLCBcCi0gICAgICAgICAgIjAuMjY5ODcsIDAuMzA3NTU0LCAwLjY0NTMyLCAxLjIwNzI0LCAxLjc2OTcxLCAzLjA3OTQyLCAzLjgyNzg2IiwgXAotICAgICAgICAgICIwLjI4MDI0MywgMC4zMTgxNTgsIDAuNjU1ODYzLCAxLjIxODM3LCAxLjc4MDI0LCAzLjA5MDEzLCAzLjgzODYxIiwgXAotICAgICAgICAgICIwLjI5NzQyMywgMC4zMzUxMjEsIDAuNjcyODE3LCAxLjIzNTE5LCAxLjc5NzU4LCAzLjEwNzU1LCAzLjg1NTM5IiwgXAotICAgICAgICAgICIwLjMxMjI4NSwgMC4zNDk4MjEsIDAuNjg3NzY2LCAxLjI1MDAxLCAxLjgxMjI0LCAzLjEyMjIzLCAzLjg3MDcyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjQyOTE2MiwgMC41MDI1NTUsIDEuMTYzMDksIDIuMjYzOSwgMy4zNjI2NSwgNS45Mjc2OSwgNy4zOTM5NSIsIFwKLSAgICAgICAgICAiMC40MjkxNjQsIDAuNTAyNjc1LCAxLjE2MzAxLCAyLjI2Mzg5LCAzLjM2MzA5LCA1LjkyODYzLCA3LjM5Mzk5IiwgXAotICAgICAgICAgICIwLjQyOTE2LCAwLjUwMjg2NiwgMS4xNjMxLCAyLjI2NDAxLCAzLjM2MzkyLCA1LjkyOTU2LCA3LjM5NjQ0IiwgXAotICAgICAgICAgICIwLjQyOTE2NSwgMC41MDI2NDUsIDEuMTYzMjYsIDIuMjYzODUsIDMuMzY0MDcsIDUuOTI5MDgsIDcuMzk0MDciLCBcCi0gICAgICAgICAgIjAuNDI5MzM0LCAwLjUwMjUyMywgMS4xNjI5OSwgMi4yNjM4NywgMy4zNjM1LCA1LjkzMDcsIDcuMzk1MzciLCBcCi0gICAgICAgICAgIjAuNDMwOTg5LCAwLjUwMzM1NiwgMS4xNjMsIDIuMjYzMzQsIDMuMzYzMjYsIDUuOTI2OTgsIDcuMzk1OTYiLCBcCi0gICAgICAgICAgIjAuNDMzODg3LCAwLjUwNTc1NywgMS4xNjM2NSwgMi4yNjM4LCAzLjM2MzYsIDUuOTI2ODksIDcuMzk1OTMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE1OTEsIDAuMTg1ODI4LCAwLjQyNTQ2OCwgMC44MjQ1NjYsIDEuMjIzNzQsIDIuMTU0MDIsIDIuNjg0OTEiLCBcCi0gICAgICAgICAgIjAuMTY4MTMxLCAwLjE5NDgwNywgMC40MzQ2MywgMC44MzM4MSwgMS4yMzI4NywgMi4xNjMxNiwgMi42OTQxNyIsIFwKLSAgICAgICAgICAiMC4xNzkxODksIDAuMjA1OTAzLCAwLjQ0NTc0NywgMC44NDQ5MSwgMS4yNDM5LCAyLjE3NDI2LCAyLjcwNTI5IiwgXAotICAgICAgICAgICIwLjE5MDUwNCwgMC4yMTczNCwgMC40NTcwOTksIDAuODU2MTY5LCAxLjI1NTIxLCAyLjE4NTQyLCAyLjcxNjY2IiwgXAotICAgICAgICAgICIwLjIwMjAxMiwgMC4yMjg2OCwgMC40Njg1MTUsIDAuODY3NjkyLCAxLjI2NjgsIDIuMTk3MDEsIDIuNzI4MjgiLCBcCi0gICAgICAgICAgIjAuMjIwMjEyLCAwLjI0NjkzNSwgMC40ODY1OCwgMC44ODU4ODcsIDEuMjg0ODcsIDIuMjE0ODYsIDIuNzQ2MTUiLCBcCi0gICAgICAgICAgIjAuMjM2MzM3LCAwLjI2Mjg0MiwgMC41MDI1MjgsIDAuOTAxNzc4LCAxLjMwMDYsIDIuMjMwOTMsIDIuNzYxOTMiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzE5NjQ3LCAwLjM3MzYyNSwgMC44NTgyODYsIDEuNjY2MDQsIDIuNDczNDEsIDQuMzU5OTksIDUuNDM2NCIsIFwKLSAgICAgICAgICAiMC4zMTk2ODYsIDAuMzczNDY1LCAwLjg1ODM0NSwgMS42NjU4NiwgMi40NzM2MiwgNC4zNTk1OSwgNS40MzU2IiwgXAotICAgICAgICAgICIwLjMxOTYwMiwgMC4zNzM1NSwgMC44NTgyMjIsIDEuNjY1NjUsIDIuNDczNDcsIDQuMzU5MzUsIDUuNDM1NTciLCBcCi0gICAgICAgICAgIjAuMzIwMjUxLCAwLjM3MzY0MSwgMC44NTgzMjEsIDEuNjY2MDMsIDIuNDczMTgsIDQuMzU5MTEsIDUuNDM2MTYiLCBcCi0gICAgICAgICAgIjAuMzIyODE2LCAwLjM3NTMzNywgMC44NTgxODksIDEuNjY1ODMsIDIuNDczNDMsIDQuMzU4NDEsIDUuNDM2OTciLCBcCi0gICAgICAgICAgIjAuMzI5NzA1LCAwLjM4MDg4NywgMC44NTgyMzMsIDEuNjY2MTIsIDIuNDczOTcsIDQuMzU3OTUsIDUuNDM1NzYiLCBcCi0gICAgICAgICAgIjAuMzM3NzI3LCAwLjM4Nzc1MiwgMC44NTg2ODIsIDEuNjY2MTEsIDIuNDczNzIsIDQuMzU5NDUsIDUuNDM1NiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMzI5NjUsIDAuMjcwNzM5LCAwLjYxMDc1NywgMS4xNzcwMywgMS43NDMwNywgMy4wNjM5OSwgMy44MTczIiwgXAotICAgICAgICAgICIwLjI0MjQxMiwgMC4yODAzNzksIDAuNjIwMjA2LCAxLjE4NjQzLCAxLjc1MzE2LCAzLjA3MjgsIDMuODI2ODkiLCBcCi0gICAgICAgICAgIjAuMjUzMTk0LCAwLjI5MTAwNSwgMC42MzExNzIsIDEuMTk3ODcsIDEuNzYzOTksIDMuMDgzNzEsIDMuODM3OTEiLCBcCi0gICAgICAgICAgIjAuMjYzNzA3LCAwLjMwMTY1NiwgMC42NDIwMjcsIDEuMjA4MiwgMS43NzUwOCwgMy4wOTQ1OCwgMy44NDg3IiwgXAotICAgICAgICAgICIwLjI3MzkyLCAwLjMxMjE3OSwgMC42NTIzMDYsIDEuMjE5MzEsIDEuNzg1MzYsIDMuMTA1MjMsIDMuODU5NCIsIFwKLSAgICAgICAgICAiMC4yOTA5MTYsIDAuMzI4ODc0LCAwLjY2OTIwNywgMS4yMzU3LCAxLjgwMjY3LCAzLjEyMjYyLCAzLjg3NjEiLCBcCi0gICAgICAgICAgIjAuMzA1NjI0LCAwLjM0MzUxMiwgMC42ODQxMDQsIDEuMjUwNjcsIDEuODE3MywgMy4xMzcxNiwgMy44OTEzNSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC40MjM5OSwgMC40OTc3MjcsIDEuMTYzOTIsIDIuMjc0MTMsIDMuMzg1MzUsIDUuOTcyMTMsIDcuNDU0NDIiLCBcCi0gICAgICAgICAgIjAuNDIzNzM1LCAwLjQ5NzkwMiwgMS4xNjQxNywgMi4yNzQ2OCwgMy4zODQwNCwgNS45NzI5MywgNy40NTE3NCIsIFwKLSAgICAgICAgICAiMC40MjM3MjEsIDAuNDk3NzI4LCAxLjE2NDA4LCAyLjI3NDg5LCAzLjM4NDU5LCA1Ljk3MjYzLCA3LjQ1NDA0IiwgXAotICAgICAgICAgICIwLjQyMzcyOCwgMC40OTc5MDQsIDEuMTY0MiwgMi4yNzQ3LCAzLjM4NDA2LCA1Ljk3MzIzLCA3LjQ1MTc3IiwgXAotICAgICAgICAgICIwLjQyMzgwOCwgMC40OTc4MjIsIDEuMTY0NzEsIDIuMjc0ODgsIDMuMzg0MjUsIDUuOTc1MTcsIDcuNDUzMzIiLCBcCi0gICAgICAgICAgIjAuNDI1NTIsIDAuNDk4OTAyLCAxLjE2NDA2LCAyLjI3Mzk2LCAzLjM4NCwgNS45NzIzMiwgNy40NTMwNiIsIFwKLSAgICAgICAgICAiMC40Mjg3MDcsIDAuNTAxMDgsIDEuMTY0NjYsIDIuMjc0NjIsIDMuMzg1NTgsIDUuOTcxMiwgNy40NTMzNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDgxODc0LCAwLjA5NjA0MSwgMC4yMjMyNzgsIDAuNDM1Mzk4LCAwLjY0NzQ5OSwgMS4xNDI0MywgMS40MjUzOCIsIFwKLSAgICAgICAgICAiMC4wOTE2NzMsIDAuMTA1ODk5LCAwLjIzMzMzNSwgMC40NDUzMjIsIDAuNjU3NDM4LCAxLjE1MjI1LCAxLjQzNDk4IiwgXAotICAgICAgICAgICIwLjEwMzk4NSwgMC4xMTgxOTcsIDAuMjQ1NjQ1LCAwLjQ1NzEyMywgMC42NjkyMTcsIDEuMTY0LCAxLjQ0Njc3IiwgXAotICAgICAgICAgICIwLjExNjYwOSwgMC4xMzA0NjQsIDAuMjU3ODUyLCAwLjQ2OTEyNCwgMC42ODEyNTYsIDEuMTc2MTYsIDEuNDU4ODMiLCBcCi0gICAgICAgICAgIjAuMTI5MDc1LCAwLjE0MzIyNywgMC4yNzAzMjIsIDAuNDgyMjQ5LCAwLjY5MzMxOSwgMS4xODgxNiwgMS40NzExMSIsIFwKLSAgICAgICAgICAiMC4xNDkxMjUsIDAuMTYzMjk1LCAwLjI4OTgyLCAwLjUwMjA1MiwgMC43MTQwNjEsIDEuMjA3NDQsIDEuNDkwMTkiLCBcCi0gICAgICAgICAgIjAuMTY2NTEsIDAuMTgxMDYyLCAwLjMwNzE0NywgMC41MTk0NTQsIDAuNzMxMjU2LCAxLjIyNDUxLCAxLjUwNzE2Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE3MjE1NSwgMC4yMDEwOTksIDAuNDYxNDA2LCAwLjg5NTcwMiwgMS4zMjk3NywgMi4zNDM4NSwgMi45MjM2OSIsIFwKLSAgICAgICAgICAiMC4xNzIxMzgsIDAuMjAxMDc4LCAwLjQ2MTQwOCwgMC44OTU3MDQsIDEuMzI5OCwgMi4zNDM0NCwgMi45MjI2MiIsIFwKLSAgICAgICAgICAiMC4xNzM0NzYsIDAuMjAxNzAyLCAwLjQ2MTM5NywgMC44OTU3NTIsIDEuMzI5OCwgMi4zNDMyOSwgMi45MjM0MyIsIFwKLSAgICAgICAgICAiMC4xNzc1MjcsIDAuMjA1MDQ5LCAwLjQ2MTQxNiwgMC44OTU0ODMsIDEuMzI5NzcsIDIuMzQzNTksIDIuOTIyNjIiLCBcCi0gICAgICAgICAgIjAuMTgzMTk2LCAwLjIwOTkyNCwgMC40NjE3MywgMC44OTU3MTcsIDEuMzI5ODMsIDIuMzQ0MDYsIDIuOTIzNjYiLCBcCi0gICAgICAgICAgIjAuMTk0NDM0LCAwLjIyMDA5NywgMC40NjUzODcsIDAuODk1Njc0LCAxLjMyOTgsIDIuMzQ0MzUsIDIuOTIyNTUiLCBcCi0gICAgICAgICAgIjAuMjA1NjEzLCAwLjIzMDU2NiwgMC40NzA3OTUsIDAuODk1ODIzLCAxLjMyOTc2LCAyLjM0MzY0LCAyLjkyMzYiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjI2MTM0LCAwLjI2MzU5MywgMC42MDEzNTUsIDEuMTYzMzUsIDEuNzI5NjUsIDMuMDQ5NDksIDMuODAzNDIiLCBcCi0gICAgICAgICAgIjAuMjM0ODYyLCAwLjI3MjQzNywgMC42MDk5NTYsIDEuMTcxNjcsIDEuNzM4NjMsIDMuMDU4NTcsIDMuODEyMyIsIFwKLSAgICAgICAgICAiMC4yNDU3OTQsIDAuMjgzNDc1LCAwLjYyMDkzLCAxLjE4MzIzLCAxLjc0OTYzLCAzLjA3MDE5LCAzLjgyMzY2IiwgXAotICAgICAgICAgICIwLjI1NTM4OSwgMC4yOTQxMTksIDAuNjMxODQ4LCAxLjE5Mzg2LCAxLjc2MDMyLCAzLjA4MTAxLCAzLjgzNDYzIiwgXAotICAgICAgICAgICIwLjI2NzQ2LCAwLjMwNTAzNiwgMC42NDI4NzIsIDEuMjA1MTMsIDEuNzcwOTYsIDMuMDkyMDgsIDMuODQ1NTQiLCBcCi0gICAgICAgICAgIjAuMjg1MDA0LCAwLjMyMjY2MSwgMC42NjAyNDQsIDEuMjIyMzksIDEuNzg4NDYsIDMuMTA5MTcsIDMuODYyODkiLCBcCi0gICAgICAgICAgIjAuMzAwNTgsIDAuMzM3OTcyLCAwLjY3NTY0OCwgMS4yMzc2OCwgMS44MDQ0OSwgMy4xMjQ3NiwgMy44NzgzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjQyOTE3MSwgMC41MDI1NiwgMS4xNjM5MSwgMi4yNzQ5NCwgMy4zODQwNiwgNS45NzI2MiwgNy40NTIzIiwgXAotICAgICAgICAgICIwLjQyOTIxOSwgMC41MDI2MjcsIDEuMTY0MzIsIDIuMjc0MDEsIDMuMzg0MDcsIDUuOTcxMzEsIDcuNDUzOTciLCBcCi0gICAgICAgICAgIjAuNDI5MTQ0LCAwLjUwMjY3NywgMS4xNjM5MiwgMi4yNzQzMSwgMy4zODM4MiwgNS45NzI2NiwgNy40NTQxNyIsIFwKLSAgICAgICAgICAiMC40Mjg4MzksIDAuNTAyNTAxLCAxLjE2NDAyLCAyLjI3NDQ3LCAzLjQsIDUuOTcyMTMsIDcuNDU0NDgiLCBcCi0gICAgICAgICAgIjAuNDI5MDE4LCAwLjUwMjM5NywgMS4xNjM5OCwgMi4yNzQ1MSwgMy4zODQ4NSwgNS45NzI2OCwgNy40NTQyNSIsIFwKLSAgICAgICAgICAiMC40MzI0MjUsIDAuNTA0MTE2LCAxLjE2NDY4LCAyLjI3NDUsIDMuMzg0MDcsIDUuOTcyNzEsIDcuNDUzNjgiLCBcCi0gICAgICAgICAgIjAuNDM3NDQsIDAuNTA4MDM2LCAxLjE2Mzk4LCAyLjI3NDMzLCAzLjM4NDg3LCA1Ljk3MjE3LCA3LjQ1MTE2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzA4OCwgMC4wMDMwODgsIDAuMDAzMDg3LCAwLjAwMzA4NiwgMC4wMDMwODQsIDAuMDAzMDgsIDAuMDAzMDc5IiwgXAotICAgICAgICAgICIwLjAwMzA3OCwgMC4wMDMwNzgsIDAuMDAzMDc4LCAwLjAwMzA3NiwgMC4wMDMwNzYsIDAuMDAzMDcsIDAuMDAzMDY4IiwgXAotICAgICAgICAgICIwLjAwMzA3NSwgMC4wMDMwNzQsIDAuMDAzMDc1LCAwLjAwMzA3MywgMC4wMDMwNzMsIDAuMDAzMDcxLCAwLjAwMzA2NyIsIFwKLSAgICAgICAgICAiMC4wMDMwNzQsIDAuMDAzMDc0LCAwLjAwMzA3NSwgMC4wMDMwNzQsIDAuMDAzMDcyLCAwLjAwMzA2OCwgMC4wMDMwNjciLCBcCi0gICAgICAgICAgIjAuMDAzMDczLCAwLjAwMzA3MiwgMC4wMDMwNzMsIDAuMDAzMDczLCAwLjAwMzA3MSwgMC4wMDMwNjgsIDAuMDAzMDY2IiwgXAotICAgICAgICAgICIwLjAwMzA3MSwgMC4wMDMwNzIsIDAuMDAzMDc0LCAwLjAwMzA3MiwgMC4wMDMwNzEsIDAuMDAzMDY4LCAwLjAwMzA2NiIsIFwKLSAgICAgICAgICAiMC4wMDMwNzIsIDAuMDAzMDcyLCAwLjAwMzA3MiwgMC4wMDMwNzIsIDAuMDAzMDcxLCAwLjAwMzA2OCwgMC4wMDMwNjciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDA5NjcsIDAuMDAwOTY3LCAwLjAwMDk2NywgMC4wMDA5NjYsIDAuMDAwOTY2LCAwLjAwMDk2NSwgMC4wMDA5NjQiLCBcCi0gICAgICAgICAgIjAuMDAwOTU3LCAwLjAwMDk1OCwgMC4wMDA5NTksIDAuMDAwOTYsIDAuMDAwOTU5LCAwLjAwMDk1OCwgMC4wMDA5NTciLCBcCi0gICAgICAgICAgIjAuMDAwOTUzLCAwLjAwMDk1MywgMC4wMDA5NTYsIDAuMDAwOTU3LCAwLjAwMDk1NiwgMC4wMDA5NTYsIDAuMDAwOTU1IiwgXAotICAgICAgICAgICIwLjAwMDk0OSwgMC4wMDA5NSwgMC4wMDA5NTUsIDAuMDAwOTU2LCAwLjAwMDk1NiwgMC4wMDA5NTUsIDAuMDAwOTU0IiwgXAotICAgICAgICAgICIwLjAwMDk0NiwgMC4wMDA5NDgsIDAuMDAwOTUzLCAwLjAwMDk1NSwgMC4wMDA5NTYsIDAuMDAwOTU1LCAwLjAwMDk1NCIsIFwKLSAgICAgICAgICAiMC4wMDA5NDMsIDAuMDAwOTQ0LCAwLjAwMDk1MSwgMC4wMDA5NTQsIDAuMDAwOTU1LCAwLjAwMDk1NCwgMC4wMDA5NTQiLCBcCi0gICAgICAgICAgIjAuMDAwOTQsIDAuMDAwOTQyLCAwLjAwMDk1LCAwLjAwMDk1MywgMC4wMDA5NTQsIDAuMDAwOTU0LCAwLjAwMDk1MyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkExIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI4OTUsIDAuMDAyODk1LCAwLjAwMjg5NSwgMC4wMDI4OTMsIDAuMDAyODkyLCAwLjAwMjg4OCwgMC4wMDI4ODYiLCBcCi0gICAgICAgICAgIjAuMDAyODg1LCAwLjAwMjg4NCwgMC4wMDI4ODQsIDAuMDAyODgzLCAwLjAwMjg4MiwgMC4wMDI4NzksIDAuMDAyODc3IiwgXAotICAgICAgICAgICIwLjAwMjg4MSwgMC4wMDI4OCwgMC4wMDI4ODIsIDAuMDAyODgxLCAwLjAwMjg4LCAwLjAwMjg3NiwgMC4wMDI4NzMiLCBcCi0gICAgICAgICAgIjAuMDAyODc5LCAwLjAwMjg3OSwgMC4wMDI4OCwgMC4wMDI4OCwgMC4wMDI4NzksIDAuMDAyODc2LCAwLjAwMjg3MyIsIFwKLSAgICAgICAgICAiMC4wMDI4NzksIDAuMDAyODc5LCAwLjAwMjg4LCAwLjAwMjg3OSwgMC4wMDI4NzgsIDAuMDAyODc1LCAwLjAwMjg3MyIsIFwKLSAgICAgICAgICAiMC4wMDI4OCwgMC4wMDI4OCwgMC4wMDI4OCwgMC4wMDI4NzksIDAuMDAyODc4LCAwLjAwMjg3NSwgMC4wMDI4NzIiLCBcCi0gICAgICAgICAgIjAuMDAyODg0LCAwLjAwMjg4NCwgMC4wMDI4ODEsIDAuMDAyODgsIDAuMDAyODc4LCAwLjAwMjg3NCwgMC4wMDI4NzMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDA3NDIsIDAuMDAwNzQyLCAwLjAwMDc0MywgMC4wMDA3NDYsIDAuMDAwNzQzLCAwLjAwMDc0MywgMC4wMDA3NDIiLCBcCi0gICAgICAgICAgIjAuMDAwNzQxLCAwLjAwMDc0MywgMC4wMDA3NDcsIDAuMDAwNzQ4LCAwLjAwMDc0OSwgMC4wMDA3NDksIDAuMDAwNzQ4IiwgXAotICAgICAgICAgICIwLjAwMDczNCwgMC4wMDA3MzYsIDAuMDAwNzQ0LCAwLjAwMDc0OCwgMC4wMDA3NDgsIDAuMDAwNzQ5LCAwLjAwMDc0OSIsIFwKLSAgICAgICAgICAiMC4wMDA3MjYsIDAuMDAwNzI5LCAwLjAwMDc0MSwgMC4wMDA3NDYsIDAuMDAwNzQ4LCAwLjAwMDc0OCwgMC4wMDA3NDgiLCBcCi0gICAgICAgICAgIjAuMDAwNzIsIDAuMDAwNzI0LCAwLjAwMDczOCwgMC4wMDA3NDQsIDAuMDAwNzQ2LCAwLjAwMDc0OCwgMC4wMDA3NDgiLCBcCi0gICAgICAgICAgIjAuMDAwNzExLCAwLjAwMDcxNiwgMC4wMDA3MzMsIDAuMDAwNzQyLCAwLjAwMDc0NSwgMC4wMDA3NDcsIDAuMDAwNzQ3IiwgXAotICAgICAgICAgICIwLjAwMDcwNSwgMC4wMDA3MSwgMC4wMDA3MywgMC4wMDA3MzksIDAuMDAwNzQzLCAwLjAwMDc0NiwgMC4wMDA3NDYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyMzEyLCAwLjAwMjMxMiwgMC4wMDIzMTEsIDAuMDAyMzExLCAwLjAwMjMxLCAwLjAwMjMwOCwgMC4wMDIzMDciLCBcCi0gICAgICAgICAgIjAuMDAyMzEsIDAuMDAyMzEsIDAuMDAyMzExLCAwLjAwMjMxMSwgMC4wMDIzMSwgMC4wMDIzMDksIDAuMDAyMzA4IiwgXAotICAgICAgICAgICIwLjAwMjMwNywgMC4wMDIzMDgsIDAuMDAyMzEsIDAuMDAyMzExLCAwLjAwMjMxLCAwLjAwMjMwOSwgMC4wMDIzMDciLCBcCi0gICAgICAgICAgIjAuMDAyMzA0LCAwLjAwMjMwNSwgMC4wMDIzMDksIDAuMDAyMzEsIDAuMDAyMzEsIDAuMDAyMzA4LCAwLjAwMjMwOCIsIFwKLSAgICAgICAgICAiMC4wMDIzMDIsIDAuMDAyMzAzLCAwLjAwMjMwOCwgMC4wMDIzMDksIDAuMDAyMzA5LCAwLjAwMjMwOCwgMC4wMDIzMDciLCBcCi0gICAgICAgICAgIjAuMDAyMywgMC4wMDIzMDEsIDAuMDAyMzA2LCAwLjAwMjMwOCwgMC4wMDIzMDksIDAuMDAyMzA4LCAwLjAwMjMwNyIsIFwKLSAgICAgICAgICAiMC4wMDIyOTksIDAuMDAyMywgMC4wMDIzMDYsIDAuMDAyMzA4LCAwLjAwMjMwOSwgMC4wMDIzMDgsIDAuMDAyMzA3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwOTY3LCAwLjAwMDk2NywgMC4wMDA5NjgsIDAuMDAwOTY2LCAwLjAwMDk2NiwgMC4wMDA5NjUsIDAuMDAwOTY0IiwgXAotICAgICAgICAgICIwLjAwMDk1OCwgMC4wMDA5NTgsIDAuMDAwOTU5LCAwLjAwMDk1OSwgMC4wMDA5NTksIDAuMDAwOTU3LCAwLjAwMDk1NyIsIFwKLSAgICAgICAgICAiMC4wMDA5NTMsIDAuMDAwOTU0LCAwLjAwMDk1NywgMC4wMDA5NTcsIDAuMDAwOTU3LCAwLjAwMDk1NiwgMC4wMDA5NTUiLCBcCi0gICAgICAgICAgIjAuMDAwOTQ5LCAwLjAwMDk1MSwgMC4wMDA5NTUsIDAuMDAwOTU2LCAwLjAwMDk1NiwgMC4wMDA5NTUsIDAuMDAwOTU1IiwgXAotICAgICAgICAgICIwLjAwMDk0NiwgMC4wMDA5NDgsIDAuMDAwOTUzLCAwLjAwMDk1NSwgMC4wMDA5NTUsIDAuMDAwOTU1LCAwLjAwMDk1NCIsIFwKLSAgICAgICAgICAiMC4wMDA5NDMsIDAuMDAwOTQ1LCAwLjAwMDk1MSwgMC4wMDA5NTQsIDAuMDAwOTU1LCAwLjAwMDk1NCwgMC4wMDA5NTQiLCBcCi0gICAgICAgICAgIjAuMDAwOTQxLCAwLjAwMDk0MywgMC4wMDA5NSwgMC4wMDA5NTMsIDAuMDAwOTU0LCAwLjAwMDk1NCwgMC4wMDA5NTMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyMTE0LCAwLjAwMjExNCwgMC4wMDIxMTQsIDAuMDAyMTEzLCAwLjAwMjExMywgMC4wMDIxMTEsIDAuMDAyMTEiLCBcCi0gICAgICAgICAgIjAuMDAyMTExLCAwLjAwMjExMiwgMC4wMDIxMTMsIDAuMDAyMTEzLCAwLjAwMjExMywgMC4wMDIxMTEsIDAuMDAyMTEiLCBcCi0gICAgICAgICAgIjAuMDAyMTA4LCAwLjAwMjEwOSwgMC4wMDIxMTIsIDAuMDAyMTEzLCAwLjAwMjExMywgMC4wMDIxMTEsIDAuMDAyMTEiLCBcCi0gICAgICAgICAgIjAuMDAyMTA2LCAwLjAwMjEwNywgMC4wMDIxMTEsIDAuMDAyMTEyLCAwLjAwMjExMiwgMC4wMDIxMTEsIDAuMDAyMTEiLCBcCi0gICAgICAgICAgIjAuMDAyMTA1LCAwLjAwMjEwNiwgMC4wMDIxMSwgMC4wMDIxMTIsIDAuMDAyMTEyLCAwLjAwMjExMSwgMC4wMDIxMSIsIFwKLSAgICAgICAgICAiMC4wMDIxMDYsIDAuMDAyMTA3LCAwLjAwMjExLCAwLjAwMjExMiwgMC4wMDIxMTIsIDAuMDAyMTExLCAwLjAwMjExIiwgXAotICAgICAgICAgICIwLjAwMjEwOSwgMC4wMDIxMSwgMC4wMDIxMTIsIDAuMDAyMTEyLCAwLjAwMjExMiwgMC4wMDIxMSwgMC4wMDIxMDkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDA3MTgsIDAuMDAwNzE4LCAwLjAwMDcyLCAwLjAwMDcyMiwgMC4wMDA3MTksIDAuMDAwNzIxLCAwLjAwMDcxOCIsIFwKLSAgICAgICAgICAiMC4wMDA3MTcsIDAuMDAwNzE5LCAwLjAwMDcyMywgMC4wMDA3MjUsIDAuMDAwNzI1LCAwLjAwMDcyNSwgMC4wMDA3MjUiLCBcCi0gICAgICAgICAgIjAuMDAwNzEsIDAuMDAwNzEyLCAwLjAwMDcyMSwgMC4wMDA3MjQsIDAuMDAwNzI1LCAwLjAwMDcyNSwgMC4wMDA3MjUiLCBcCi0gICAgICAgICAgIjAuMDAwNzAzLCAwLjAwMDcwNiwgMC4wMDA3MTcsIDAuMDAwNzIyLCAwLjAwMDcyNCwgMC4wMDA3MjUsIDAuMDAwNzI1IiwgXAotICAgICAgICAgICIwLjAwMDY5NSwgMC4wMDA3LCAwLjAwMDcxNCwgMC4wMDA3MjEsIDAuMDAwNzIzLCAwLjAwMDcyNCwgMC4wMDA3MjQiLCBcCi0gICAgICAgICAgIjAuMDAwNjg4LCAwLjAwMDY5MiwgMC4wMDA3MSwgMC4wMDA3MTgsIDAuMDAwNzIxLCAwLjAwMDcyMywgMC4wMDA3MjQiLCBcCi0gICAgICAgICAgIjAuMDAwNjgyLCAwLjAwMDY4NywgMC4wMDA3MDYsIDAuMDAwNzE2LCAwLjAwMDcxOSwgMC4wMDA3MjIsIDAuMDAwNzIzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQzAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTYyOCwgMC4wMDE2MjgsIDAuMDAxNjI5LCAwLjAwMTYyOSwgMC4wMDE2MjksIDAuMDAxNjMsIDAuMDAxNjMiLCBcCi0gICAgICAgICAgIjAuMDAxNjMxLCAwLjAwMTYzMiwgMC4wMDE2MzYsIDAuMDAxNjM3LCAwLjAwMTYzOCwgMC4wMDE2MzgsIDAuMDAxNjM5IiwgXAotICAgICAgICAgICIwLjAwMTYyOCwgMC4wMDE2MywgMC4wMDE2MzYsIDAuMDAxNjM5LCAwLjAwMTYzOSwgMC4wMDE2NCwgMC4wMDE2NCIsIFwKLSAgICAgICAgICAiMC4wMDE2MjYsIDAuMDAxNjI4LCAwLjAwMTYzNSwgMC4wMDE2MzksIDAuMDAxNjQsIDAuMDAxNjQsIDAuMDAxNjQxIiwgXAotICAgICAgICAgICIwLjAwMTYyNiwgMC4wMDE2MjcsIDAuMDAxNjM1LCAwLjAwMTYzOCwgMC4wMDE2NCwgMC4wMDE2NDEsIDAuMDAxNjQxIiwgXAotICAgICAgICAgICIwLjAwMTYyOSwgMC4wMDE2MywgMC4wMDE2MzUsIDAuMDAxNjM4LCAwLjAwMTYzOSwgMC4wMDE2NDEsIDAuMDAxNjQxIiwgXAotICAgICAgICAgICIwLjAwMTYzMiwgMC4wMDE2MzMsIDAuMDAxNjM2LCAwLjAwMTYzOSwgMC4wMDE2NCwgMC4wMDE2NDEsIDAuMDAxNjQyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwOTg0LCAwLjAwMDk4NCwgMC4wMDA5ODUsIDAuMDAwOTg0LCAwLjAwMDk4NCwgMC4wMDA5ODMsIDAuMDAwOTgyIiwgXAotICAgICAgICAgICIwLjAwMDk3NSwgMC4wMDA5NzYsIDAuMDAwOTgxLCAwLjAwMDk4MywgMC4wMDA5ODMsIDAuMDAwOTgyLCAwLjAwMDk4MiIsIFwKLSAgICAgICAgICAiMC4wMDA5NjcsIDAuMDAwOTY5LCAwLjAwMDk3OCwgMC4wMDA5ODEsIDAuMDAwOTgyLCAwLjAwMDk4MiwgMC4wMDA5ODEiLCBcCi0gICAgICAgICAgIjAuMDAwOTU5LCAwLjAwMDk2NSwgMC4wMDA5NzUsIDAuMDAwOTc5LCAwLjAwMDk4LCAwLjAwMDk4MSwgMC4wMDA5OCIsIFwKLSAgICAgICAgICAiMC4wMDA5NjEsIDAuMDAwOTYzLCAwLjAwMDk3MywgMC4wMDA5NzgsIDAuMDAwOTc5LCAwLjAwMDk4LCAwLjAwMDk4IiwgXAotICAgICAgICAgICIwLjAwMDk2MSwgMC4wMDA5NjMsIDAuMDAwOTcxLCAwLjAwMDk3NywgMC4wMDA5NzksIDAuMDAwOTc5LCAwLjAwMDk3OSIsIFwKLSAgICAgICAgICAiMC4wMDA5NjQsIDAuMDAwOTY1LCAwLjAwMDk3MSwgMC4wMDA5NzYsIDAuMDAwOTc4LCAwLjAwMDk3OSwgMC4wMDA5NzkiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogT0FJMjIyWDIgKgotICogLS0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKE9BSTIyMlgyKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuNDE4Nzg2OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNjUzNDc7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNjQ5MTc7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNjUzNDc7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwODE4LCAwLjAwMDgxOCwgMC4wMDA4MTgsIDAuMDAwODE3LCAwLjAwMDgxNywgMC4wMDA4MTcsIDAuMDAwODE3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwODE5LCAwLjAwMDgyLCAwLjAwMDgyLCAwLjAwMDgyLCAwLjAwMDgyMSwgMC4wMDA4MjEsIDAuMDAwODIxIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihBMSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNTc3Mzg7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNTc3Mzg7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNTcwOTI7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwODE5LCAwLjAwMDgxOCwgMC4wMDA4MTgsIDAuMDAwODE4LCAwLjAwMDgxOCwgMC4wMDA4MTgsIDAuMDAwODE4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwODE5LCAwLjAwMDgyLCAwLjAwMDgxOSwgMC4wMDA4MiwgMC4wMDA4MiwgMC4wMDA4MiwgMC4wMDA4MiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQjApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTY4ODE0OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTY4Mjk7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNjg4MTQ7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwODE4LCAwLjAwMDgxOCwgMC4wMDA4MTcsIDAuMDAwODE3LCAwLjAwMDgxNywgMC4wMDA4MTcsIDAuMDAwODE3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwODE5LCAwLjAwMDgyLCAwLjAwMDgyLCAwLjAwMDgyMSwgMC4wMDA4MjEsIDAuMDAwODIxLCAwLjAwMDgyMSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQjEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTU4NTI0OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTU4NTI0OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTU3OTUyOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDgxOSwgMC4wMDA4MTksIDAuMDAwODE4LCAwLjAwMDgxOCwgMC4wMDA4MTgsIDAuMDAwODE4LCAwLjAwMDgxOCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDgxOSwgMC4wMDA4MiwgMC4wMDA4MTksIDAuMDAwODIsIDAuMDAwODIsIDAuMDAwODIsIDAuMDAwODIiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEMwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE4MjMxNzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE4MTI1OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTgyMzE3OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDQ4MiwgMC4wMDA0ODMsIDAuMDAwNDg0LCAwLjAwMDQ4NCwgMC4wMDA0ODMsIDAuMDAwNDgzLCAwLjAwMDQ4MyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDkyOCwgMC4wMDA5MywgMC4wMDA5MjksIDAuMDAwOTMsIDAuMDAwOTMsIDAuMDAwOTI5LCAwLjAwMDkyOSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQzEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTY2MTc3OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTY2MTQ4OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTY2MTc3OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDQ4MiwgMC4wMDA0ODIsIDAuMDAwNDgzLCAwLjAwMDQ4MiwgMC4wMDA0ODMsIDAuMDAwNDgyLCAwLjAwMDQ4MiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDkyOCwgMC4wMDA5MjgsIDAuMDAwOTI4LCAwLjAwMDkyOSwgMC4wMDA5MjksIDAuMDAwOTI5LCAwLjAwMDkyOSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjE5MTQ7Ci0gICAgZnVuY3Rpb24gOiAiKCEoKChDMCtDMSkgKEEwK0ExKSkgKEIwK0IxKSkpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDczNywgMC4yNzAyNjgsIDAuNDI2NDUxLCAwLjYyMTY3NywgMC44MTcxNjMsIDEuMDExNzMsIDEuMjA2NDEiLCBcCi0gICAgICAgICAgIjAuMDgyNDA5LCAwLjI3OTAzMywgMC40MzUyMjQsIDAuNjMwNjQ0LCAwLjgyNTY5NCwgMS4wMjA1OSwgMS4yMTUyMiIsIFwKLSAgICAgICAgICAiMC4wOTI0ODIsIDAuMjg5MjU0LCAwLjQ0NTUxOCwgMC42NDA1MzcsIDAuODM2MDIsIDEuMDMwNjEsIDEuMjI1NzUiLCBcCi0gICAgICAgICAgIjAuMTAyNTczLCAwLjI5OTM5NiwgMC40NTU3NTUsIDAuNjUxMDUxLCAwLjg0NTc0OCwgMS4wNDA4LCAxLjIzNTUiLCBcCi0gICAgICAgICAgIjAuMTEyNDYzLCAwLjMwOTQwMSwgMC40NjU1NjYsIDAuNjYwNjk0LCAwLjg1NjI2NCwgMS4wNTA1LCAxLjI0NjI0IiwgXAotICAgICAgICAgICIwLjEyNzgxLCAwLjMyNTQxNSwgMC40ODE4NjcsIDAuNjc2OTM0LCAwLjg3MjMwMywgMS4wNjc0OSwgMS4yNjE2OSIsIFwKLSAgICAgICAgICAiMC4xNDAxNTksIDAuMzM5Mzc5LCAwLjQ5NTc0NSwgMC42OTA4NjksIDAuODg1OTM4LCAxLjA4MDgxLCAxLjI3NTc2Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE0MDcyNywgMC41MzY4MTgsIDAuODU0MDMxLCAxLjI1MDQ3LCAxLjY0NjcsIDIuMDQyODcsIDIuNDM5MzUiLCBcCi0gICAgICAgICAgIjAuMTQwNjcxLCAwLjUzNjgxMSwgMC44NTQwNDIsIDEuMjUwNCwgMS42NDcwMywgMi4wNDMyMiwgMi40Mzk4MSIsIFwKLSAgICAgICAgICAiMC4xNDE2ODIsIDAuNTM2ODAxLCAwLjg1NDExNCwgMS4yNTA0OSwgMS42NDcsIDIuMDQzNDcsIDIuNDM5MzYiLCBcCi0gICAgICAgICAgIjAuMTQ0NTEsIDAuNTM2ODY1LCAwLjg1NDA2MywgMS4yNTAyNSwgMS42NDY2MSwgMi4wNDI5MiwgMi40Mzk3NCIsIFwKLSAgICAgICAgICAiMC4xNDg0OTQsIDAuNTM2ODk0LCAwLjg1NDA0OSwgMS4yNTAzMSwgMS42NDY3NiwgMi4wNDMzMSwgMi40Mzk3NyIsIFwKLSAgICAgICAgICAiMC4xNTYyOTUsIDAuNTM4NTcyLCAwLjg1NDA5NCwgMS4yNTAzMSwgMS42NDY3MiwgMi4wNDMzNSwgMi40Mzk4MyIsIFwKLSAgICAgICAgICAiMC4xNjQyOTgsIDAuNTQxMjk0LCAwLjg1NDY0MiwgMS4yNTAyMiwgMS42NDY3MiwgMi4wNDMxMSwgMi40Mzk4MiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTgwNzQsIDAuNDAzNjQsIDAuNjMxNzEzLCAwLjkxOTU2NiwgMS4yMDgwOSwgMS40OTYxOCwgMS43ODU3NyIsIFwKLSAgICAgICAgICAiMC4xMjc0MTYsIDAuNDEyOTk3LCAwLjY0MDkxOSwgMC45MjkyNTUsIDEuMjE2OTgsIDEuNTA1OTUsIDEuNzk0OTEiLCBcCi0gICAgICAgICAgIjAuMTM3ODA4LCAwLjQyMzY4NSwgMC42NTE0NzcsIDAuOTM5NzQ0LCAxLjIyNzY1LCAxLjUxNjMsIDEuODA1ODkiLCBcCi0gICAgICAgICAgIjAuMTQ3MzY4LCAwLjQzMzIwNywgMC42NjE1NjgsIDAuOTQ5Mzc1LCAxLjIzNzM3LCAxLjUyNTk2LCAxLjgxNjA1IiwgXAotICAgICAgICAgICIwLjE1NjYxNCwgMC40NDI1MTcsIDAuNjcwNTY4LCAwLjk1ODg4OSwgMS4yNDY1NywgMS41MzU3NiwgMS44MjQ5MiIsIFwKLSAgICAgICAgICAiMC4xNzEwOTMsIDAuNDU3MTA4LCAwLjY4NTA3NywgMC45NzMwNDQsIDEuMjYwODYsIDEuNTQ5NDEsIDEuODM5NzkiLCBcCi0gICAgICAgICAgIjAuMTgzNTM1LCAwLjQ2OTU1NiwgMC42OTczOTUsIDAuOTg1NTY2LCAxLjI3NDE4LCAxLjU2MTU2LCAxLjg1MjE4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE3NDIyMSwgMC43MzQ1ODksIDEuMTg2NiwgMS43NTUsIDIuMzI0ODUsIDIuODkxOTksIDMuNDYwNDUiLCBcCi0gICAgICAgICAgIjAuMTc0MzM4LCAwLjczNDY0MywgMS4xODY5MSwgMS43NTQ3MywgMi4zMjM3MSwgMi44OTE4NywgMy40NjA4MyIsIFwKLSAgICAgICAgICAiMC4xNzQyNzQsIDAuNzM0NjM3LCAxLjE4Njk5LCAxLjc1NDk4LCAyLjMyMzg0LCAyLjg5MTU5LCAzLjQ2IiwgXAotICAgICAgICAgICIwLjE3NDYwNiwgMC43MzQyNDQsIDEuMTg2MjYsIDEuNzU0NjgsIDIuMzIzNzgsIDIuODkzMSwgMy40NjE4NSIsIFwKLSAgICAgICAgICAiMC4xNzU3NzcsIDAuNzM0NDUsIDEuMTg2MjksIDEuNzU1NCwgMi4zMjM2NiwgMi44OTI0MiwgMy40NjAxNiIsIFwKLSAgICAgICAgICAiMC4xNzg5MzUsIDAuNzM0MjI4LCAxLjE4NjMyLCAxLjc1NDUsIDIuMzI0MTMsIDIuODkyMzMsIDMuNDYxOTYiLCBcCi0gICAgICAgICAgIjAuMTgyNjY2LCAwLjczNDY1LCAxLjE4Njk3LCAxLjc1NDY3LCAyLjMyNDcxLCAyLjg5MTEsIDMuNDYxOCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDcwMjYsIDAuMjY2ODM0LCAwLjQyMzAxNSwgMC42MTg0NTIsIDAuODEzMjgsIDEuMDA3NDEsIDEuMjAzNzUiLCBcCi0gICAgICAgICAgIjAuMDc5MjA0LCAwLjI3NTgyLCAwLjQzMjI1MywgMC42MjcxMzEsIDAuODIxOTgzLCAxLjAxNzA3LCAxLjIxMTcxIiwgXAotICAgICAgICAgICIwLjA5MDY3NiwgMC4yODc0MTIsIDAuNDQzNzE2LCAwLjYzODk2NCwgMC44MzQwNjYsIDEuMDI4NDUsIDEuMjIzOCIsIFwKLSAgICAgICAgICAiMC4xMDIwMDMsIDAuMjk4Nzc1LCAwLjQ1NDg1NSwgMC42NTAzMzksIDAuODQ1MTU1LCAxLjA0MDA5LCAxLjIzNDg0IiwgXAotICAgICAgICAgICIwLjExMzYxMiwgMC4zMDk3OTgsIDAuNDY2NDM4LCAwLjY2MTY1OCwgMC44NTY0OCwgMS4wNTEzOCwgMS4yNDcyNSIsIFwKLSAgICAgICAgICAiMC4xMzI0NDEsIDAuMzI4NTYsIDAuNDg0ODMyLCAwLjY4MDEzOCwgMC44NzQ4NDQsIDEuMDY5NjgsIDEuMjY0ODQiLCBcCi0gICAgICAgICAgIjAuMTQ3MjE2LCAwLjM0NDY5NCwgMC41MDEwNjQsIDAuNjk2MDA3LCAwLjg5MTE3MywgMS4wODU5LCAxLjI4MDk3Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE0MDc1MywgMC41MzY4MDYsIDAuODU0MDY3LCAxLjI1MDMyLCAxLjY0NywgMi4wNDI3MSwgMi40MzkwNiIsIFwKLSAgICAgICAgICAiMC4xNDA1NTMsIDAuNTM2ODUxLCAwLjg1NDA1NywgMS4yNTAyLCAxLjY0NzAyLCAyLjA0Mjc4LCAyLjQzOTY5IiwgXAotICAgICAgICAgICIwLjE0MjY2NywgMC41MzY4NTgsIDAuODU0MDk3LCAxLjI1MDQyLCAxLjY0Njc5LCAyLjA0MjgxLCAyLjQzOTc2IiwgXAotICAgICAgICAgICIwLjE0NzgyLCAwLjUzNjg3MiwgMC44NTQxMTEsIDEuMjUwNCwgMS42NDY5MywgMi4wNDMzNiwgMi40Mzk3MyIsIFwKLSAgICAgICAgICAiMC4xNTQxMDIsIDAuNTM2ODk0LCAwLjg1NDA5MiwgMS4yNTAyNywgMS42NDY5OSwgMi4wNDI5MiwgMi40Mzk2MSIsIFwKLSAgICAgICAgICAiMC4xNjYzNzEsIDAuNTM5MTI1LCAwLjg1NDA2NiwgMS4yNTAyMywgMS42NDcwNywgMi4wNDI4OSwgMi40Mzk2NiIsIFwKLSAgICAgICAgICAiMC4xNzgyMiwgMC41NDMzMDksIDAuODU0NTM5LCAxLjI1MDI2LCAxLjY0NywgMi4wNDM0MSwgMi40Mzk2NiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTIyMzEsIDAuNDAwNzk2LCAwLjYzMTE5LCAwLjkyMjI2OCwgMS4yMTQwNSwgMS41MDUsIDEuNzk4MyIsIFwKLSAgICAgICAgICAiMC4xMjE3OTQsIDAuNDEwNTkyLCAwLjY0MDc4MiwgMC45MzIyOTUsIDEuMjIzNjYsIDEuNTE1NjQsIDEuODA3OTgiLCBcCi0gICAgICAgICAgIjAuMTMyMDI0LCAwLjQyMTExNiwgMC42NTE2MzcsIDAuOTQyOTYzLCAxLjIzNDA0LCAxLjUyNjAyLCAxLjgxOTQ5IiwgXAotICAgICAgICAgICIwLjE0MTM5OCwgMC40MzA2MzYsIDAuNjYxMzkzLCAwLjk1MjUsIDEuMjQzNjgsIDEuNTM1NDEsIDEuODI4NzQiLCBcCi0gICAgICAgICAgIjAuMTUwNTM4LCAwLjQzOTkzMSwgMC42NzA1NzQsIDAuOTYyMDQzLCAxLjI1Mjc0LCAxLjU0NDYxLCAxLjgzODAxIiwgXAotICAgICAgICAgICIwLjE2NDg5NywgMC40NTQzMDEsIDAuNjg0OTExLCAwLjk3NjE5MywgMS4yNjcxMiwgMS41NTkxNCwgMS44NTIzMSIsIFwKLSAgICAgICAgICAiMC4xNzcyMjYsIDAuNDY2Nzc5LCAwLjY5NzI0NCwgMC45ODg3ODIsIDEuMjc5NjEsIDEuNTcwODYsIDEuODY0NzciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTY4MTIzLCAwLjczMzkzOSwgMS4xOTA4NywgMS43NzAzMywgMi4zNDA2LCAyLjkyNDA5LCAzLjUxNDM2IiwgXAotICAgICAgICAgICIwLjE2ODA5NywgMC43MzQxNDQsIDEuMTkzMiwgMS43NzA0LCAyLjM0MDY0LCAyLjkxNTcyLCAzLjUxNDEiLCBcCi0gICAgICAgICAgIjAuMTY4MDQ1LCAwLjczMzg1OSwgMS4xOTA0NCwgMS43NjYwMiwgMi4zNDY5MSwgMi45MTU3MiwgMy40OTA3IiwgXAotICAgICAgICAgICIwLjE2ODQzMiwgMC43MzM3MTIsIDEuMTkwNDksIDEuNzY3MzcsIDIuMzQ2ODYsIDIuOTE2MjgsIDMuNDg5OTUiLCBcCi0gICAgICAgICAgIjAuMTY5NjI5LCAwLjczNDA3NiwgMS4xOTA2OSwgMS43NjkxNSwgMi4zNDcsIDIuOTE4NzEsIDMuNDkwNjciLCBcCi0gICAgICAgICAgIjAuMTcyOTQ3LCAwLjczMzYyNywgMS4xOTA2NiwgMS43NjcyMSwgMi4zNDYwNiwgMi45MjQzNSwgMy41MTQ0OCIsIFwKLSAgICAgICAgICAiMC4xNzY4ODcsIDAuNzM0MDA4LCAxLjE5MzIyLCAxLjc3MDA5LCAyLjM0NzYzLCAyLjkyMjQ2LCAzLjUxNDUxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjcxNTcsIDAuMjYyNzI0LCAwLjQxODg2MiwgMC42MTM4ODcsIDAuODA4Nzc5LCAxLjAwMzg0LCAxLjE5OTAyIiwgXAotICAgICAgICAgICIwLjA3NiwgMC4yNzE3MzMsIDAuNDI3NzM0LCAwLjYyMjgwMywgMC44MTc3NjQsIDEuMDEyNzksIDEuMjA3NzUiLCBcCi0gICAgICAgICAgIjAuMDg1OTg3LCAwLjI4MTg2OSwgMC40MzgwMDQsIDAuNjMyOTc3LCAwLjgyNzk2MywgMS4wMjI4OSwgMS4yMTgxNCIsIFwKLSAgICAgICAgICAiMC4wOTU5NDcsIDAuMjkyMDE4LCAwLjQ0ODE5MSwgMC42NDMyNDksIDAuODM4MTU3LCAxLjAzMzI0LCAxLjIyODEzIiwgXAotICAgICAgICAgICIwLjEwNTgyLCAwLjMwMTk5NCwgMC40NTgwNzIsIDAuNjUzMTEzLCAwLjg0ODE1NiwgMS4wNDMwNCwgMS4yMzgxMSIsIFwKLSAgICAgICAgICAiMC4xMjA5NDIsIDAuMzE4MTU0LCAwLjQ3MzM0LCAwLjY2OTQ2MiwgMC44NjQ0MjEsIDEuMDU5NDQsIDEuMjU0NDMiLCBcCi0gICAgICAgICAgIjAuMTMyNTcyLCAwLjMzMTgzLCAwLjQ4ODMxNiwgMC42ODMzODEsIDAuODc4NjE2LCAxLjA3Mzc2LCAxLjI2OTE0Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEzMjYyNSwgMC41Mjg1NzksIDAuODQ1NjI2LCAxLjI0MTkzLCAxLjYzODE1LCAyLjAzNDg0LCAyLjQzMDgiLCBcCi0gICAgICAgICAgIjAuMTMyNjA3LCAwLjUyODY1OSwgMC44NDU2MjksIDEuMjQxODIsIDEuNjM4NCwgMi4wMzQ3NCwgMi40MzA1NiIsIFwKLSAgICAgICAgICAiMC4xMzM4ODgsIDAuNTI4NjQzLCAwLjg0NTc4OSwgMS4yNDIwMiwgMS42MzgxLCAyLjAzNDQ2LCAyLjQzMDc0IiwgXAotICAgICAgICAgICIwLjEzNzAxNiwgMC41Mjg2NjEsIDAuODQ1NzU0LCAxLjI0MjA1LCAxLjYzNzk2LCAyLjAzNDQ3LCAyLjQzMDY3IiwgXAotICAgICAgICAgICIwLjE0MTI5LCAwLjUyODc5MiwgMC44NDU3MTUsIDEuMjQyMDYsIDEuNjM4MDUsIDIuMDM0NzksIDIuNDMxMDMiLCBcCi0gICAgICAgICAgIjAuMTQ5NTAyLCAwLjUzMDYyOCwgMC44NDU2NjEsIDEuMjQxNzIsIDEuNjM3OTYsIDIuMDM0MzUsIDIuNDMwNjUiLCBcCi0gICAgICAgICAgIjAuMTU3ODY0LCAwLjUzMzM4NywgMC44NDYzNDIsIDEuMjQxNzYsIDEuNjM4NDIsIDIuMDM0NjYsIDIuNDMwODYiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTExODYsIDAuMzk3MzA3LCAwLjYyNTQ3LCAwLjkxNTI4NCwgMS4yMDYxNCwgMS40OTc2NSwgMS43ODg3NyIsIFwKLSAgICAgICAgICAiMC4xMjA4NTgsIDAuNDA2NTc2LCAwLjYzNDY3NCwgMC45MjQzNDUsIDEuMjE0OTUsIDEuNTA2NDUsIDEuNzk3OTUiLCBcCi0gICAgICAgICAgIjAuMTMxNzIsIDAuNDE3NTIsIDAuNjQ1NTkzLCAwLjkzNTA2MywgMS4yMjYzNywgMS41MTY5NiwgMS44MDk1MSIsIFwKLSAgICAgICAgICAiMC4xNDIzMTEsIDAuNDI4MjMyLCAwLjY1NjM2NywgMC45NDYxNzksIDEuMjM2NjksIDEuNTI4ODgsIDEuODE5NDciLCBcCi0gICAgICAgICAgIjAuMTUzMDI4LCAwLjQzOTAyOSwgMC42NjY3MjcsIDAuOTU2NDgsIDEuMjQ3OTgsIDEuNTM4NzgsIDEuODMwNjMiLCBcCi0gICAgICAgICAgIjAuMTcwMDQ3LCAwLjQ1NjEyMywgMC42ODM3ODksIDAuOTczNDM5LCAxLjI2NTAxLCAxLjU1NTcxLCAxLjg0NzY3IiwgXAotICAgICAgICAgICIwLjE4NDY4OCwgMC40NzA5NzIsIDAuNjk4NzksIDAuOTg4NTA5LCAxLjI3OTQ5LCAxLjU3MTMzLCAxLjg2MTYyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE3NDMzNSwgMC43MzQ2NzIsIDEuMTkwNDMsIDEuNzYxMjcsIDIuMzMyMDQsIDIuOTA0NDMsIDMuNDczMzQiLCBcCi0gICAgICAgICAgIjAuMTc0MzM2LCAwLjczNDIwNCwgMS4xOTA0LCAxLjc2MTg0LCAyLjMzMTgzLCAyLjkwMzI3LCAzLjQ3MzM5IiwgXAotICAgICAgICAgICIwLjE3NDM3MiwgMC43MzQ1MjEsIDEuMTkwNDMsIDEuNzYxNDEsIDIuMzMyNTYsIDIuOTAyNTMsIDMuNDc1NDEiLCBcCi0gICAgICAgICAgIjAuMTc1MjA3LCAwLjczNDI2MiwgMS4xOTAzOSwgMS43NjEyOCwgMi4zMzE5OSwgMi45MDM2MywgMy40NzI3NyIsIFwKLSAgICAgICAgICAiMC4xNzc0NzQsIDAuNzM0NDMyLCAxLjE5MDQ0LCAxLjc2MTg1LCAyLjMzMjMyLCAyLjkwMzAzLCAzLjQ3NjAzIiwgXAotICAgICAgICAgICIwLjE4MzIzNSwgMC43MzQ0NSwgMS4xOTAzNywgMS43NjEzLCAyLjMzMjMxLCAyLjkwMjkxLCAzLjQ3MzQyIiwgXAotICAgICAgICAgICIwLjE4OTUzNCwgMC43MzQ3MzYsIDEuMTkxMzYsIDEuNzYxMjUsIDIuMzMyMjIsIDIuOTAzNzcsIDMuNDcyMTYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2MzQ3MSwgMC4yNTkwOTYsIDAuNDE1MjczLCAwLjYxMDE0OSwgMC44MDUwNDEsIDEuMDAwMTUsIDEuMTk1MTEiLCBcCi0gICAgICAgICAgIjAuMDcyNDgyLCAwLjI2ODI0NCwgMC40MjQzLCAwLjYxOTMxMSwgMC44MTQzMjcsIDEuMDA5MzQsIDEuMjA0MyIsIFwKLSAgICAgICAgICAiMC4wODM5MzksIDAuMjc5OTYyLCAwLjQzNTg5NSwgMC42MzA4NiwgMC44MjU5NDgsIDEuMDIwODMsIDEuMjE1OTIiLCBcCi0gICAgICAgICAgIjAuMDk1MTY2LCAwLjI5MDk1MSwgMC40NDcxMjEsIDAuNjQyMDc1LCAwLjgzNzA3NywgMS4wMzIxMiwgMS4yMjcwNCIsIFwKLSAgICAgICAgICAiMC4xMDY5NCwgMC4zMDE5NjEsIDAuNDU4NTc4LCAwLjY1MzU4MywgMC44NDg1MTUsIDEuMDQzNSwgMS4yMzg1OSIsIFwKLSAgICAgICAgICAiMC4xMjUwNzUsIDAuMzIwOTAyLCAwLjQ3NjkyNywgMC42NzE5NSwgMC44NjcwMTIsIDEuMDYxOTUsIDEuMjU3MDQiLCBcCi0gICAgICAgICAgIjAuMTM4ODI1LCAwLjMzNzAwMSwgMC40OTMwNTUsIDAuNjg4MDY2LCAwLjg4MzEwNywgMS4wNzgwNSwgMS4yNzI5NCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMzI2MjgsIDAuNTI4NjExLCAwLjg0NTc0LCAxLjI0MTgzLCAxLjYzODMzLCAyLjAzNDg0LCAyLjQzMDYxIiwgXAotICAgICAgICAgICIwLjEzMjU4NCwgMC41Mjg2OSwgMC44NDU1NzksIDEuMjQxNywgMS42MzgwNiwgMi4wMzQ5MSwgMi40MzA2MSIsIFwKLSAgICAgICAgICAiMC4xMzUyMzUsIDAuNTI4NzIzLCAwLjg0NTc0MiwgMS4yNDE4LCAxLjYzODUsIDIuMDM0NTMsIDIuNDMwNyIsIFwKLSAgICAgICAgICAiMC4xNDA5NDgsIDAuNTI4NjYsIDAuODQ1NjI2LCAxLjI0MjA5LCAxLjYzODQzLCAyLjAzNDU5LCAyLjQzMDc0IiwgXAotICAgICAgICAgICIwLjE0Nzc0MSwgMC41Mjg3NCwgMC44NDU3NjQsIDEuMjQxNzgsIDEuNjM4NDQsIDIuMDM0MjQsIDIuNDMwOCIsIFwKLSAgICAgICAgICAiMC4xNjA3MjcsIDAuNTMxMzI4LCAwLjg0NTY3OCwgMS4yNDE3MiwgMS42Mzg1LCAyLjAzNDM3LCAyLjQzMDYzIiwgXAotICAgICAgICAgICIwLjE3MzA0OCwgMC41MzU2MjksIDAuODQ2MjQ5LCAxLjI0MTc2LCAxLjYzODQ0LCAyLjAzNDQ2LCAyLjQzMDciKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTA1NzExLCAwLjM5NDYwNSwgMC42MjUxNDEsIDAuOTE1MTAxLCAxLjIwNTg2LCAxLjQ5ODU4LCAxLjc5MjUyIiwgXAotICAgICAgICAgICIwLjExNDg3MiwgMC40MDQxNjUsIDAuNjM0OTExLCAwLjkyMzkyMSwgMS4yMTQ5NiwgMS41MDg1MSwgMS44MDE1OSIsIFwKLSAgICAgICAgICAiMC4xMjU0NTgsIDAuNDE0OTM5LCAwLjY0NTc0NiwgMC45MzUzNDMsIDEuMjI2MzYsIDEuNTE5NDEsIDEuODEyMTEiLCBcCi0gICAgICAgICAgIjAuMTM1NzY0LCAwLjQyNTQzOSwgMC42NTYzNDYsIDAuOTQ2MjAxLCAxLjIzNjY1LCAxLjUzMDgsIDEuODIyOSIsIFwKLSAgICAgICAgICAiMC4xNDYxNzgsIDAuNDM2MjAxLCAwLjY2NjczNCwgMC45NTYyNTQsIDEuMjQ4LCAxLjU0MDkxLCAxLjgzNDc2IiwgXAotICAgICAgICAgICIwLjE2MywgMC40NTMwMzEsIDAuNjgzNTgyLCAwLjk3MzM0NywgMS4yNjQzOCwgMS41NTcyLCAxLjg1MDc3IiwgXAotICAgICAgICAgICIwLjE3NzY4NywgMC40Njc1NjcsIDAuNjk4NTExLCAwLjk4Nzk4NiwgMS4yNzk1LCAxLjU3MzEsIDEuODY0ODgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTY4MjQyLCAwLjczMzA5LCAxLjE5MzgyLCAxLjc2NTUzLCAyLjM0NzEyLCAyLjkyMzc3LCAzLjQ5MDg2IiwgXAotICAgICAgICAgICIwLjE2ODI1OSwgMC43MzMxNzgsIDEuMTkxMzgsIDEuNzY4NjEsIDIuMzQ0NTEsIDIuOTI0MzEsIDMuNDkwNSIsIFwKLSAgICAgICAgICAiMC4xNjgxNDIsIDAuNzMzMTk5LCAxLjE5MzI4LCAxLjc3MDQyLCAyLjM0MTA4LCAyLjkyNDIyLCAzLjUxNDAxIiwgXAotICAgICAgICAgICIwLjE2OTI4OCwgMC43MzI5NTQsIDEuMTkwNDQsIDEuNzY1NSwgMi4zNDQ4OCwgMi45MTUxOSwgMy41MTQxMyIsIFwKLSAgICAgICAgICAiMC4xNzE2NTMsIDAuNzMzMTEyLCAxLjE5MzQ3LCAxLjc2OTcyLCAyLjM0NzYsIDIuOTE1NTgsIDMuNDkwOTciLCBcCi0gICAgICAgICAgIjAuMTc3ODk5LCAwLjczMzAwNiwgMS4xOTM1OSwgMS43NzAwNSwgMi4zNDQ2MywgMi45MjEyMiwgMy41MTQzOCIsIFwKLSAgICAgICAgICAiMC4xODQ2NTgsIDAuNzMzMzg3LCAxLjE5MzUyLCAxLjc2OTcsIDIuMzQ2MzgsIDIuOTE1NjgsIDMuNDk5MDUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQzAiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1ODEzNSwgMC4yNTM0ODcsIDAuNDEwMDksIDAuNjA0ODY4LCAwLjgwMDEwNSwgMC45OTUyMTksIDEuMTkwMzEiLCBcCi0gICAgICAgICAgIjAuMDY2ODMsIDAuMjYyMzc4LCAwLjQxODUxNywgMC42MTM3MDUsIDAuODA4ODQ1LCAxLjAwNDEzLCAxLjE5OTM1IiwgXAotICAgICAgICAgICIwLjA3Njc2OSwgMC4yNzI1MywgMC40Mjg2MjksIDAuNjIzODkyLCAwLjgxOTA5NSwgMS4wMTQzOCwgMS4yMDk0OCIsIFwKLSAgICAgICAgICAiMC4wODY2NTgsIDAuMjgyNTksIDAuNDM4ODU0LCAwLjYzNDEzNiwgMC44MjkyNjUsIDEuMDI0NTUsIDEuMjE5NTMiLCBcCi0gICAgICAgICAgIjAuMDk2NzExLCAwLjI5MjU3NSwgMC40NDg4OTEsIDAuNjQ0MTM4LCAwLjgzOTM2NSwgMS4wMzQ1NywgMS4yMjk3MiIsIFwKLSAgICAgICAgICAiMC4xMTA3MjQsIDAuMzA4ODI0LCAwLjQ2NDYxMSwgMC42NjAyNjIsIDAuODU1NTcsIDEuMDUwNzgsIDEuMjQ1OTQiLCBcCi0gICAgICAgICAgIjAuMTIxNzM3LCAwLjMyMjU2OCwgMC40NzkzNzMsIDAuNjc0NzA5LCAwLjg3MDA3NSwgMS4wNjUyNywgMS4yNjA0NiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMjU4NCwgMC41MjEzODEsIDAuODM4MjYyLCAxLjIzNDQ2LCAxLjYzMDc0LCAyLjAyNzAxLCAyLjQyMzI4IiwgXAotICAgICAgICAgICIwLjEyNTg2NCwgMC41MjEzLCAwLjgzODIyMywgMS4yMzQzNSwgMS42MzA3LCAyLjAyNzA3LCAyLjQyMzM5IiwgXAotICAgICAgICAgICIwLjEyNzc0LCAwLjUyMTMxNCwgMC44MzgyMTgsIDEuMjM0MzMsIDEuNjMwNjksIDIuMDI3MDYsIDIuNDIzMjQiLCBcCi0gICAgICAgICAgIjAuMTMxMzg3LCAwLjUyMTI5NSwgMC44MzgyMzIsIDEuMjM0NDgsIDEuNjMwNTksIDIuMDI2OTksIDIuNDIzNDIiLCBcCi0gICAgICAgICAgIjAuMTM2MjM5LCAwLjUyMTUyNywgMC44MzgyMjMsIDEuMjM0MjksIDEuNjMwNzUsIDIuMDI2OTksIDIuNDIzMTQiLCBcCi0gICAgICAgICAgIjAuMTQ1MTg0LCAwLjUyMzU0NSwgMC44MzgyNTYsIDEuMjM0MjksIDEuNjMwNTIsIDIuMDI3MDIsIDIuNDIzMjEiLCBcCi0gICAgICAgICAgIjAuMTU0MDA2LCAwLjUyNjUwMiwgMC44Mzg5NzksIDEuMjM0MjQsIDEuNjMwNzMsIDIuMDI2OTEsIDIuNDIzMzciKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk5MjI0LCAwLjM4NDc0NiwgMC42MTI0NDIsIDAuOTAwODQ5LCAxLjE5MjI1LCAxLjQ4MzI3LCAxLjc3NDM5IiwgXAotICAgICAgICAgICIwLjEwNzc4MSwgMC4zOTM1NzEsIDAuNjIxMTA4LCAwLjkwOTQyMSwgMS4yMDA2NCwgMS40OTE2NywgMS43ODM2NyIsIFwKLSAgICAgICAgICAiMC4xMTg2ODgsIDAuNDA0NjE2LCAwLjYzMjQ5MSwgMC45MjEwNTIsIDEuMjExODgsIDEuNTAzNiwgMS43OTM4MiIsIFwKLSAgICAgICAgICAiMC4xMjk1NDUsIDAuNDE1NjQ5LCAwLjY0MjgxNiwgMC45MzExNjUsIDEuMjIyNSwgMS41MTM5LCAxLjgwNTIyIiwgXAotICAgICAgICAgICIwLjE0MDY5MywgMC40MjY0MzcsIDAuNjU0Mzg3LCAwLjk0MjUyNCwgMS4yMzM2NCwgMS41MjU2NCwgMS44MTYwNyIsIFwKLSAgICAgICAgICAiMC4xNTg2MzEsIDAuNDQzMjI0LCAwLjY3MTQ0MywgMC45NjAwMzEsIDEuMjUxMDksIDEuNTQyOTMsIDEuODMzMjMiLCBcCi0gICAgICAgICAgIjAuMTc1MDA1LCAwLjQ1OTI0LCAwLjY4NzE5NCwgMC45NzU3MDcsIDEuMjY2NDksIDEuNTU3NzQsIDEuODUwMDMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTc0MjMyLCAwLjczMjk1OSwgMS4xODkxNSwgMS43NjAwMywgMi4zMzE4NywgMi45MDEyLCAzLjQ3MTcyIiwgXAotICAgICAgICAgICIwLjE3NDE2NCwgMC43MzI5MTYsIDEuMTg5OTIsIDEuNzU5ODEsIDIuMzI5OSwgMi45MDEyLCAzLjQ3MjM5IiwgXAotICAgICAgICAgICIwLjE3Mzg2NywgMC43MzI5MzcsIDEuMTg5MzMsIDEuNzYwMTQsIDIuMzMxMDQsIDIuOTAxMzQsIDMuNDcwNTYiLCBcCi0gICAgICAgICAgIjAuMTc2NDIyLCAwLjczMzE4OCwgMS4xOSwgMS43NTk5MiwgMi4zMzExNiwgMi45MDE5OSwgMy40NzE4NiIsIFwKLSAgICAgICAgICAiMC4xODExMzMsIDAuNzMyOTI5LCAxLjE4OTUzLCAxLjc1OTk1LCAyLjMyOTg2LCAyLjkwMjQ4LCAzLjQ3MTg1IiwgXAotICAgICAgICAgICIwLjE5MDU3LCAwLjczMjcxOSwgMS4xODk3NiwgMS43NjAxNywgMi4zMjk5MiwgMi45MDIyOSwgMy40NzA3OCIsIFwKLSAgICAgICAgICAiMC4yMDAxODcsIDAuNzMzOTc1LCAxLjE4OTE0LCAxLjc2MDA4LCAyLjMzMDU2LCAyLjkwMDQ3LCAzLjQ3MzkzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMxIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTUxODksIDAuMjUwODA1LCAwLjQwNjcxLCAwLjYwMTkyNSwgMC43OTcwNTEsIDAuOTkyNDA0LCAxLjE4NzM3IiwgXAotICAgICAgICAgICIwLjA2NDI3LCAwLjI1OTc5NSwgMC40MTYwNTksIDAuNjExMjk4LCAwLjgwNjQyNiwgMS4wMDE3MSwgMS4xOTY3MyIsIFwKLSAgICAgICAgICAiMC4wNzU0NzgsIDAuMjcxMjM3LCAwLjQyNzM1LCAwLjYyMjYxNywgMC44MTc3NzMsIDEuMDEzMDUsIDEuMjA4MSIsIFwKLSAgICAgICAgICAiMC4wODcxMzgsIDAuMjgzMDUxLCAwLjQzOTA5OCwgMC42MzQzMTYsIDAuODI5NTAyLCAxLjAyNDgyLCAxLjIxOTg1IiwgXAotICAgICAgICAgICIwLjA5ODg0NiwgMC4yOTQzMDcsIDAuNDUwNDA2LCAwLjY0NTYxOCwgMC44NDA4MzMsIDEuMDM2MDMsIDEuMjMxMTciLCBcCi0gICAgICAgICAgIjAuMTE1NTA0LCAwLjMxMjU5NSwgMC40Njg3MzUsIDAuNjYzOTYyLCAwLjg1OTI0MSwgMS4wNTQ0MiwgMS4yNDk1OCIsIFwKLSAgICAgICAgICAiMC4xMjgyNzYsIDAuMzI4NTc3LCAwLjQ4NDg0MiwgMC42ODAwOSwgMC44NzUyODcsIDEuMDcwNTMsIDEuMjY1NjIiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTI1ODUzLCAwLjUyMTQ4MSwgMC44MzgwNTgsIDEuMjM0NDUsIDEuNjMwMzYsIDIuMDI3MDIsIDIuNDIyOTgiLCBcCi0gICAgICAgICAgIjAuMTI1OTMsIDAuNTIxMjg3LCAwLjgzODIzOSwgMS4yMzQ0NywgMS42MzA2OSwgMi4wMjY5OSwgMi40MjMwOSIsIFwKLSAgICAgICAgICAiMC4xMjk1MjIsIDAuNTIxMjk4LCAwLjgzODIzMSwgMS4yMzQ0NywgMS42MzA3LCAyLjAyNzA1LCAyLjQyMzIiLCBcCi0gICAgICAgICAgIjAuMTM1NTY4LCAwLjUyMTQyOSwgMC44MzgyMywgMS4yMzQ0MSwgMS42MzA2LCAyLjAyNzA5LCAyLjQyMzQxIiwgXAotICAgICAgICAgICIwLjE0Mjk5OSwgMC41MjE1NDIsIDAuODM4MjYxLCAxLjIzNDI0LCAxLjYzMDc1LCAyLjAyNjk0LCAyLjQyMzA1IiwgXAotICAgICAgICAgICIwLjE1Njc0MiwgMC41MjQyODMsIDAuODM4MjI1LCAxLjIzNDQyLCAxLjYzMDU3LCAyLjAyNzA5LCAyLjQyMzMxIiwgXAotICAgICAgICAgICIwLjE2OTYzNiwgMC41Mjg4MjEsIDAuODM4OTYsIDEuMjM0MzQsIDEuNjMwNzEsIDIuMDI2OTgsIDIuNDIzMTQiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk0MzIxLCAwLjM4MzI1MiwgMC42MTM4NTQsIDAuOTAzMDYzLCAxLjE5NTA2LCAxLjQ4NTk1LCAxLjc3ODQ2IiwgXAotICAgICAgICAgICIwLjEwMzA0MywgMC4zOTI0MzYsIDAuNjIyOTA2LCAwLjkxMjI3NywgMS4yMDQxMiwgMS40OTQ2NSwgMS43ODc5OCIsIFwKLSAgICAgICAgICAiMC4xMTM3OTEsIDAuNDAzNDAyLCAwLjYzNDMxLCAwLjkyMzI3OCwgMS4yMTQ1OSwgMS41MDU3MSwgMS43OTg4MiIsIFwKLSAgICAgICAgICAiMC4xMjQ3MTMsIDAuNDE0MDkzLCAwLjY0NDU2OSwgMC45MzQwMjYsIDEuMjI1MDEsIDEuNTE3MjgsIDEuODA5OTkiLCBcCi0gICAgICAgICAgIjAuMTM1NTc5LCAwLjQyNTIyLCAwLjY1NTk5NiwgMC45NDU0NTMsIDEuMjM2MzksIDEuNTI4NzIsIDEuODIwOCIsIFwKLSAgICAgICAgICAiMC4xNTMzOCwgMC40NDE5MDMsIDAuNjczMjQ0LCAwLjk2MjYxMywgMS4yNTM4LCAxLjU0NjEyLCAxLjgzODE3IiwgXAotICAgICAgICAgICIwLjE2OTQxNSwgMC40NTc5NjgsIDAuNjg4NjcxLCAwLjk3ODIxNSwgMS4yNjkyMiwgMS41NjA4MSwgMS44NTUxMyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNjkzNjUsIDAuNzM0MjM3LCAxLjE5MTM0LCAxLjc3MDQ4LCAyLjM0MDY0LCAyLjkyNDAxLCAzLjQ5OTUxIiwgXAotICAgICAgICAgICIwLjE2OTI3NiwgMC43MzQyMjQsIDEuMTkzMjIsIDEuNzY5NzYsIDIuMzQwNjMsIDIuOTIzNTYsIDMuNDkzNzYiLCBcCi0gICAgICAgICAgIjAuMTY4OTMxLCAwLjczNDY3NSwgMS4xOTA0LCAxLjc3MDIxLCAyLjM0MjM3LCAyLjkyMzU0LCAzLjQ5NzM5IiwgXAotICAgICAgICAgICIwLjE3MTg4MiwgMC43MzQzMTksIDEuMTkzMjksIDEuNzY2ODMsIDIuMzQ3LCAyLjkxNjcsIDMuNTE0MTUiLCBcCi0gICAgICAgICAgIjAuMTc2OTA2LCAwLjczNDIzOCwgMS4xOTM5MywgMS43NjY5NywgMi4zNDYwOSwgMi45MTU2LCAzLjQ5ODk1IiwgXAotICAgICAgICAgICIwLjE4NjU5OCwgMC43MzQ0MzMsIDEuMTkzMTksIDEuNzcwMDIsIDIuMzQ2MzMsIDIuOTE1NzEsIDMuNDk4OTkiLCBcCi0gICAgICAgICAgIjAuMTk2NzczLCAwLjczNTI5NCwgMS4xOTM5MywgMS43NzA2NCwgMi4zNDU2OSwgMi45MjI4MSwgMy40OTA3MiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTAwOTQsIDAuMDEwMDkzLCAwLjAxMDA5MiwgMC4wMTAwOSwgMC4wMTAwODgsIDAuMDEwMDg4LCAwLjAxMDA4NCIsIFwKLSAgICAgICAgICAiMC4wMTAwNTgsIDAuMDEwMDYyLCAwLjAxMDA2MSwgMC4wMTAwNTksIDAuMDEwMDU4LCAwLjAxMDA1OCwgMC4wMTAwNTMiLCBcCi0gICAgICAgICAgIjAuMDEwMDQzLCAwLjAxMDA1MywgMC4wMTAwNTUsIDAuMDEwMDUyLCAwLjAxMDA1MSwgMC4wMTAwNSwgMC4wMTAwNDYiLCBcCi0gICAgICAgICAgIjAuMDEwMDM1LCAwLjAxMDA0OCwgMC4wMTAwNTEsIDAuMDEwMDUsIDAuMDEwMDQ5LCAwLjAxMDA0NywgMC4wMTAwNDYiLCBcCi0gICAgICAgICAgIjAuMDEwMDMsIDAuMDEwMDQ3LCAwLjAxMDA0OCwgMC4wMTAwNDYsIDAuMDEwMDQ3LCAwLjAxMDA0NCwgMC4wMTAwNDQiLCBcCi0gICAgICAgICAgIjAuMDEwMDIzLCAwLjAxMDA0NCwgMC4wMTAwNDUsIDAuMDEwMDQ0LCAwLjAxMDA0NCwgMC4wMTAwNDQsIDAuMDEwMDQiLCBcCi0gICAgICAgICAgIjAuMDEwMDMyLCAwLjAxMDA0MiwgMC4wMTAwNDQsIDAuMDEwMDQ1LCAwLjAxMDA0MywgMC4wMTAwNDQsIDAuMDEwMDQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDMwNjYsIDAuMDAzMDY4LCAwLjAwMzA2NywgMC4wMDMwNjYsIDAuMDAzMDYsIDAuMDAzMDY0LCAwLjAwMzA2MyIsIFwKLSAgICAgICAgICAiMC4wMDMwMTksIDAuMDAzMDM3LCAwLjAwMzA0LCAwLjAwMzA0MiwgMC4wMDMwMzksIDAuMDAzMDM2LCAwLjAwMzAzOCIsIFwKLSAgICAgICAgICAiMC4wMDI5OTUsIDAuMDAzMDI0LCAwLjAwMzAzLCAwLjAwMzAzMiwgMC4wMDMwMzIsIDAuMDAzMDMxLCAwLjAwMzAzMSIsIFwKLSAgICAgICAgICAiMC4wMDI5NzQsIDAuMDAzMDE3LCAwLjAwMzAyNCwgMC4wMDMwMjcsIDAuMDAzMDI4LCAwLjAwMzAyOCwgMC4wMDMwMjciLCBcCi0gICAgICAgICAgIjAuMDAyOTYsIDAuMDAzMDA5LCAwLjAwMzAxOCwgMC4wMDMwMjIsIDAuMDAzMDI1LCAwLjAwMzAyNiwgMC4wMDMwMjUiLCBcCi0gICAgICAgICAgIjAuMDAyOTQ0LCAwLjAwMjk5OSwgMC4wMDMwMSwgMC4wMDMwMTcsIDAuMDAzMDIsIDAuMDAzMDIyLCAwLjAwMzAyMyIsIFwKLSAgICAgICAgICAiMC4wMDI5MzUsIDAuMDAyOTkyLCAwLjAwMzAwNSwgMC4wMDMwMTMsIDAuMDAzMDE3LCAwLjAwMzAxOSwgMC4wMDMwMiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkExIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDk0MTIsIDAuMDA5NDEsIDAuMDA5NDA5LCAwLjAwOTQwNywgMC4wMDk0MDQsIDAuMDA5NDA0LCAwLjAwOTQwMyIsIFwKLSAgICAgICAgICAiMC4wMDkzNiwgMC4wMDkzNzUsIDAuMDA5Mzc1LCAwLjAwOTM3MywgMC4wMDkzNzEsIDAuMDA5MzcyLCAwLjAwOTM3IiwgXAotICAgICAgICAgICIwLjAwOTM0NywgMC4wMDkzNjUsIDAuMDA5MzY4LCAwLjAwOTM2NywgMC4wMDkzNjYsIDAuMDA5MzYzLCAwLjAwOTM2MSIsIFwKLSAgICAgICAgICAiMC4wMDkzMzcsIDAuMDA5MzU5LCAwLjAwOTM2MSwgMC4wMDkzNiwgMC4wMDkzNiwgMC4wMDkzNTksIDAuMDA5MzU3IiwgXAotICAgICAgICAgICIwLjAwOTM0LCAwLjAwOTM0OCwgMC4wMDkzNTgsIDAuMDA5MzU4LCAwLjAwOTM1NywgMC4wMDkzNTcsIDAuMDA5MzU4IiwgXAotICAgICAgICAgICIwLjAwOTM2LCAwLjAwOTM1NywgMC4wMDkzNTksIDAuMDA5MzU5LCAwLjAwOTM1NywgMC4wMDkzNTYsIDAuMDA5MzU0IiwgXAotICAgICAgICAgICIwLjAwOTM4NiwgMC4wMDkzNjIsIDAuMDA5MzYxLCAwLjAwOTM1OSwgMC4wMDkzNiwgMC4wMDkzNTcsIDAuMDA5MzU3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyMzkyLCAwLjAwMjQwNiwgMC4wMDI0MDcsIDAuMDAyNDA3LCAwLjAwMjQwNiwgMC4wMDI0MDcsIDAuMDAyNDA2IiwgXAotICAgICAgICAgICIwLjAwMjM2MSwgMC4wMDI0MTMsIDAuMDAyNDIsIDAuMDAyNDIzLCAwLjAwMjQyNiwgMC4wMDI0MjgsIDAuMDAyNDI2IiwgXAotICAgICAgICAgICIwLjAwMjMxLCAwLjAwMjQsIDAuMDAyNDEzLCAwLjAwMjQyMSwgMC4wMDI0MjMsIDAuMDAyNDI1LCAwLjAwMjQyNiIsIFwKLSAgICAgICAgICAiMC4wMDIyNzEsIDAuMDAyMzgyLCAwLjAwMjQwMSwgMC4wMDI0MTIsIDAuMDAyNDE3LCAwLjAwMjQyMSwgMC4wMDI0MjIiLCBcCi0gICAgICAgICAgIjAuMDAyMjQyLCAwLjAwMjM2NSwgMC4wMDIzOSwgMC4wMDI0MDQsIDAuMDAyNDExLCAwLjAwMjQxNiwgMC4wMDI0MTgiLCBcCi0gICAgICAgICAgIjAuMDAyMjA3LCAwLjAwMjM0MiwgMC4wMDIzNzQsIDAuMDAyMzkyLCAwLjAwMjQwMiwgMC4wMDI0MDcsIDAuMDAyNDEyIiwgXAotICAgICAgICAgICIwLjAwMjE4NywgMC4wMDIzMjQsIDAuMDAyMzYsIDAuMDAyMzgyLCAwLjAwMjM5NCwgMC4wMDI0MDEsIDAuMDAyNDA2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwODE2NiwgMC4wMDgxNjcsIDAuMDA4MTY2LCAwLjAwODE2NSwgMC4wMDgxNjQsIDAuMDA4MTY0LCAwLjAwODE2MiIsIFwKLSAgICAgICAgICAiMC4wMDgxNDcsIDAuMDA4MTYzLCAwLjAwODE2NCwgMC4wMDgxNjQsIDAuMDA4MTYzLCAwLjAwODE2MywgMC4wMDgxNjMiLCBcCi0gICAgICAgICAgIjAuMDA4MTIyLCAwLjAwODE1NiwgMC4wMDgxNTksIDAuMDA4MTYxLCAwLjAwODE2MiwgMC4wMDgxNjEsIDAuMDA4MTYyIiwgXAotICAgICAgICAgICIwLjAwODEwNSwgMC4wMDgxNSwgMC4wMDgxNTYsIDAuMDA4MTU5LCAwLjAwODE2LCAwLjAwODE2MSwgMC4wMDgxNTgiLCBcCi0gICAgICAgICAgIjAuMDA4MDk0LCAwLjAwODE0NCwgMC4wMDgxNTEsIDAuMDA4MTU1LCAwLjAwODE1NywgMC4wMDgxNiwgMC4wMDgxNiIsIFwKLSAgICAgICAgICAiMC4wMDgwODUsIDAuMDA4MTM4LCAwLjAwODEzMywgMC4wMDgxNTMsIDAuMDA4MTU0LCAwLjAwODE1NSwgMC4wMDgxNTYiLCBcCi0gICAgICAgICAgIjAuMDA4MDg3LCAwLjAwODEzMywgMC4wMDgxNDIsIDAuMDA4MTUxLCAwLjAwODE1MywgMC4wMDgxNTMsIDAuMDA4MTU2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzMDY3LCAwLjAwMzA2OSwgMC4wMDMwNjcsIDAuMDAzMDY3LCAwLjAwMzA2NiwgMC4wMDMwNjUsIDAuMDAzMDY0IiwgXAotICAgICAgICAgICIwLjAwMzAyLCAwLjAwMzAzNywgMC4wMDMwMzcsIDAuMDAzMDM5LCAwLjAwMzAzOSwgMC4wMDMwMzgsIDAuMDAzMDM3IiwgXAotICAgICAgICAgICIwLjAwMjk5MywgMC4wMDMwMjYsIDAuMDAzMDMsIDAuMDAzMDMxLCAwLjAwMzAzMiwgMC4wMDMwMzQsIDAuMDAzMDMiLCBcCi0gICAgICAgICAgIjAuMDAyOTc1LCAwLjAwMzAxNywgMC4wMDMwMjMsIDAuMDAzMDI4LCAwLjAwMzAyOCwgMC4wMDMwMjgsIDAuMDAzMDI4IiwgXAotICAgICAgICAgICIwLjAwMjk2LCAwLjAwMzAxLCAwLjAwMzAxOSwgMC4wMDMwMjMsIDAuMDAzMDI1LCAwLjAwMzAyNiwgMC4wMDMwMjUiLCBcCi0gICAgICAgICAgIjAuMDAyOTQ3LCAwLjAwMjk5OSwgMC4wMDMwMTEsIDAuMDAzMDE3LCAwLjAwMzAyMSwgMC4wMDMwMjIsIDAuMDAzMDIzIiwgXAotICAgICAgICAgICIwLjAwMjk0LCAwLjAwMjk5NCwgMC4wMDMwMDYsIDAuMDAzMDE0LCAwLjAwMzAxNywgMC4wMDMwMiwgMC4wMDMwMiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIxIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDc0NjQsIDAuMDA3NDY1LCAwLjAwNzQ2NiwgMC4wMDc0NjQsIDAuMDA3NDYzLCAwLjAwNzQ2MywgMC4wMDc0NjIiLCBcCi0gICAgICAgICAgIjAuMDA3NDI3LCAwLjAwNzQ1OSwgMC4wMDc0NiwgMC4wMDc0NjEsIDAuMDA3NDYyLCAwLjAwNzQ2LCAwLjAwNzQ1OSIsIFwKLSAgICAgICAgICAiMC4wMDc0MTMsIDAuMDA3NDUxLCAwLjAwNzQ1NiwgMC4wMDc0NTgsIDAuMDA3NDU4LCAwLjAwNzQ1OSwgMC4wMDc0NTgiLCBcCi0gICAgICAgICAgIjAuMDA3Mzk4LCAwLjAwNzQ0NSwgMC4wMDc0NTEsIDAuMDA3NDU0LCAwLjAwNzQ1NiwgMC4wMDc0NTYsIDAuMDA3NDU2IiwgXAotICAgICAgICAgICIwLjAwNzQwMSwgMC4wMDc0MzcsIDAuMDA3NDQ4LCAwLjAwNzQ1MywgMC4wMDc0NTMsIDAuMDA3NDU2LCAwLjAwNzQ1NSIsIFwKLSAgICAgICAgICAiMC4wMDc0MTYsIDAuMDA3NDQsIDAuMDA3NDQ4LCAwLjAwNzQ1MSwgMC4wMDc0NTMsIDAuMDA3NDU0LCAwLjAwNzQ1NCIsIFwKLSAgICAgICAgICAiMC4wMDc0NDQsIDAuMDA3NDQ0LCAwLjAwNzQ1MSwgMC4wMDc0NTIsIDAuMDA3NDU0LCAwLjAwNzQ1NCwgMC4wMDc0NTUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDIzNDEsIDAuMDAyMzU0LCAwLjAwMjM1NSwgMC4wMDIzNTYsIDAuMDAyMzU1LCAwLjAwMjM1NCwgMC4wMDIzNTIiLCBcCi0gICAgICAgICAgIjAuMDAyMzA5LCAwLjAwMjM2MywgMC4wMDIzNywgMC4wMDIzNzQsIDAuMDAyMzc0LCAwLjAwMjM3NSwgMC4wMDIzNzYiLCBcCi0gICAgICAgICAgIjAuMDAyMjU4LCAwLjAwMjM0NywgMC4wMDIzNjIsIDAuMDAyMzY5LCAwLjAwMjM3MiwgMC4wMDIzNzQsIDAuMDAyMzc1IiwgXAotICAgICAgICAgICIwLjAwMjIyLCAwLjAwMjMzLCAwLjAwMjM1LCAwLjAwMjM2MSwgMC4wMDIzNjcsIDAuMDAyMzcsIDAuMDAyMzcyIiwgXAotICAgICAgICAgICIwLjAwMjE5LCAwLjAwMjMxNSwgMC4wMDIzMzksIDAuMDAyMzUzLCAwLjAwMjM2LCAwLjAwMjM2NCwgMC4wMDIzNjgiLCBcCi0gICAgICAgICAgIjAuMDAyMTU5LCAwLjAwMjI5MSwgMC4wMDIzMjMsIDAuMDAyMzQxLCAwLjAwMjM1MSwgMC4wMDIzNTcsIDAuMDAyMzYxIiwgXAotICAgICAgICAgICIwLjAwMjE0MywgMC4wMDIyNzUsIDAuMDAyMzEsIDAuMDAyMzMxLCAwLjAwMjM0MywgMC4wMDIzNSwgMC4wMDIzNTUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDMCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2MDI1LCAwLjAwNjAzNiwgMC4wMDYwMzYsIDAuMDA2MDM3LCAwLjAwNjAzNywgMC4wMDYwMzcsIDAuMDA2MDM3IiwgXAotICAgICAgICAgICIwLjAwNjAxNSwgMC4wMDYwNTcsIDAuMDA2MDYyLCAwLjAwNjA2NSwgMC4wMDYwNjYsIDAuMDA2MDY2LCAwLjAwNjA2NyIsIFwKLSAgICAgICAgICAiMC4wMDU5ODcsIDAuMDA2MDUyLCAwLjAwNjA2MiwgMC4wMDYwNjYsIDAuMDA2MDY4LCAwLjAwNjA2OSwgMC4wMDYwNyIsIFwKLSAgICAgICAgICAiMC4wMDU5NjQsIDAuMDA2MDQ1LCAwLjAwNjA1NywgMC4wMDYwNjQsIDAuMDA2MDY2LCAwLjAwNjA3LCAwLjAwNjA2OSIsIFwKLSAgICAgICAgICAiMC4wMDU5NSwgMC4wMDYwMzcsIDAuMDA2MDUyLCAwLjAwNjA1OSwgMC4wMDYwNjIsIDAuMDA2MDY3LCAwLjAwNjA2OCIsIFwKLSAgICAgICAgICAiMC4wMDU5NCwgMC4wMDYwMjcsIDAuMDA2MDQ2LCAwLjAwNjA1NSwgMC4wMDYwNiwgMC4wMDYwNjMsIDAuMDA2MDY3IiwgXAotICAgICAgICAgICIwLjAwNTkzMiwgMC4wMDYwMjEsIDAuMDA2MDQxLCAwLjAwNjA1MiwgMC4wMDYwNTgsIDAuMDA2MDYzLCAwLjAwNjA2NiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzA2LCAwLjAwMzA2NSwgMC4wMDMwNjQsIDAuMDAzMDYzLCAwLjAwMzA2NywgMC4wMDMwNjEsIDAuMDAzMDY1IiwgXAotICAgICAgICAgICIwLjAwMzAxMSwgMC4wMDMwMzQsIDAuMDAzMDM3LCAwLjAwMzAzNywgMC4wMDMwMzcsIDAuMDAzMDM3LCAwLjAwMzAzNiIsIFwKLSAgICAgICAgICAiMC4wMDI5ODksIDAuMDAzMDIyLCAwLjAwMzAyOSwgMC4wMDMwMywgMC4wMDMwMywgMC4wMDMwMzEsIDAuMDAzMDI4IiwgXAotICAgICAgICAgICIwLjAwMjk4OSwgMC4wMDMwMTUsIDAuMDAzMDI0LCAwLjAwMzAyNywgMC4wMDMwMjgsIDAuMDAzMDI4LCAwLjAwMzAyOCIsIFwKLSAgICAgICAgICAiMC4wMDI5OTMsIDAuMDAzMDEzLCAwLjAwMzAyLCAwLjAwMzAyNCwgMC4wMDMwMjQsIDAuMDAzMDI2LCAwLjAwMzAyNSIsIFwKLSAgICAgICAgICAiMC4wMDMwMSwgMC4wMDMwMTQsIDAuMDAzMDIyLCAwLjAwMzAyNCwgMC4wMDMwMjUsIDAuMDAzMDI2LCAwLjAwMzAyNiIsIFwKLSAgICAgICAgICAiMC4wMDMwNDMsIDAuMDAzMDIyLCAwLjAwMzAyNCwgMC4wMDMwMjUsIDAuMDAzMDI1LCAwLjAwMzAyNSwgMC4wMDMwMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDMSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1MzUxLCAwLjAwNTM2NCwgMC4wMDUzNjYsIDAuMDA1MzY5LCAwLjAwNTM2OCwgMC4wMDUzNjgsIDAuMDA1MzY4IiwgXAotICAgICAgICAgICIwLjAwNTMzMSwgMC4wMDUzODQsIDAuMDA1MzksIDAuMDA1MzkzLCAwLjAwNTM5NCwgMC4wMDUzOTYsIDAuMDA1Mzk2IiwgXAotICAgICAgICAgICIwLjAwNTMwNiwgMC4wMDUzNzksIDAuMDA1Mzg5LCAwLjAwNTM5NSwgMC4wMDUzOTcsIDAuMDA1Mzk5LCAwLjAwNTM5OSIsIFwKLSAgICAgICAgICAiMC4wMDUyODMsIDAuMDA1MzY5LCAwLjAwNTM4NCwgMC4wMDUzOSwgMC4wMDUzOTUsIDAuMDA1Mzk3LCAwLjAwNTM5OSIsIFwKLSAgICAgICAgICAiMC4wMDUyODksIDAuMDA1MzY2LCAwLjAwNTM4LCAwLjAwNTM4OSwgMC4wMDUzOTQsIDAuMDA1Mzk3LCAwLjAwNTM5OCIsIFwKLSAgICAgICAgICAiMC4wMDUzMDYsIDAuMDA1MzYxLCAwLjAwNTM3NywgMC4wMDUzODcsIDAuMDA1MzkyLCAwLjAwNTM5NSwgMC4wMDUzOTgiLCBcCi0gICAgICAgICAgIjAuMDA1MzMzLCAwLjAwNTM2MiwgMC4wMDUzNzcsIDAuMDA1Mzg2LCAwLjAwNTM5MiwgMC4wMDUzOTUsIDAuMDA1Mzk3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyNTUsIDAuMDAyNTY1LCAwLjAwMjU2NywgMC4wMDI1NjYsIDAuMDAyNTY3LCAwLjAwMjU2NiwgMC4wMDI1NjUiLCBcCi0gICAgICAgICAgIjAuMDAyNTEyLCAwLjAwMjU3MSwgMC4wMDI1NzgsIDAuMDAyNTgxLCAwLjAwMjU4MywgMC4wMDI1ODQsIDAuMDAyNTgzIiwgXAotICAgICAgICAgICIwLjAwMjQ2OSwgMC4wMDI1NTYsIDAuMDAyNTcsIDAuMDAyNTc3LCAwLjAwMjU4LCAwLjAwMjU4MiwgMC4wMDI1ODMiLCBcCi0gICAgICAgICAgIjAuMDAyNDQyLCAwLjAwMjU0NSwgMC4wMDI1NjMsIDAuMDAyNTczLCAwLjAwMjU3NiwgMC4wMDI1OCwgMC4wMDI1ODEiLCBcCi0gICAgICAgICAgIjAuMDAyNDQyLCAwLjAwMjUzMSwgMC4wMDI1NTIsIDAuMDAyNTY1LCAwLjAwMjU3MSwgMC4wMDI1NzYsIDAuMDAyNTc4IiwgXAotICAgICAgICAgICIwLjAwMjQ0MywgMC4wMDI1MjEsIDAuMDAyNTQ2LCAwLjAwMjU1OSwgMC4wMDI1NjcsIDAuMDAyNTcyLCAwLjAwMjU3NSIsIFwKLSAgICAgICAgICAiMC4wMDI0NjcsIDAuMDAyNTE4LCAwLjAwMjU0MSwgMC4wMDI1NTYsIDAuMDAyNTYzLCAwLjAwMjU2OSwgMC4wMDI1NzIiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogT0FJMjIyWDQgKgotICogLS0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKE9BSTIyMlg0KSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuODM3MDg7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDMzMzYzNTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDMzMjc4OTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDMzMzYzNTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDE2MzcsIDAuMDAxNjM2LCAwLjAwMTYzNSwgMC4wMDE2MzQsIDAuMDAxNjM1LCAwLjAwMTYzNCwgMC4wMDE2MzIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDE2MzksIDAuMDAxNjQxLCAwLjAwMTY0LCAwLjAwMTY0LCAwLjAwMTY0MSwgMC4wMDE2NDEsIDAuMDAxNjQxIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihBMSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAzMjM3NDM7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAzMjM3NDM7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAzMjI1MDI7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxNjM4LCAwLjAwMTYzNywgMC4wMDE2MzcsIDAuMDAxNjM2LCAwLjAwMTYzNiwgMC4wMDE2MzYsIDAuMDAxNjM1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxNjM4LCAwLjAwMTYzOSwgMC4wMDE2MzksIDAuMDAxNjM5LCAwLjAwMTYzOSwgMC4wMDE2NCwgMC4wMDE2NCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQjApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMzI2MjE4OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMzI1MTg1OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMzI2MjE4OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTYzNywgMC4wMDE2MzUsIDAuMDAxNjM1LCAwLjAwMTYzNCwgMC4wMDE2MzQsIDAuMDAxNjM0LCAwLjAwMTYzNCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTYzOCwgMC4wMDE2NCwgMC4wMDE2NCwgMC4wMDE2NDEsIDAuMDAxNjQyLCAwLjAwMTY0MSwgMC4wMDE2NDIiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIxKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDMxMDk4NDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDMxMDk4NDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDMwOTkwNzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDE2MzgsIDAuMDAxNjM2LCAwLjAwMTYzNywgMC4wMDE2MzYsIDAuMDAxNjM2LCAwLjAwMTYzNiwgMC4wMDE2MzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDE2MzgsIDAuMDAxNjM5LCAwLjAwMTYzOSwgMC4wMDE2MzksIDAuMDAxNjQsIDAuMDAxNjQsIDAuMDAxNjQxIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihDMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAzMzc0ODY7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAzMzUzMTc7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAzMzc0ODY7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwODA1LCAwLjAwMDgwNiwgMC4wMDA4MDcsIDAuMDAwODA3LCAwLjAwMDgwNiwgMC4wMDA4MDcsIDAuMDAwODA3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxODU3LCAwLjAwMTg1OSwgMC4wMDE4NTgsIDAuMDAxODYsIDAuMDAxODU5LCAwLjAwMTg1OSwgMC4wMDE4NTkiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEMxKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDMyNTEzMjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDMyNTA3MzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDMyNTEzMjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA4MDIsIDAuMDAwODA1LCAwLjAwMDgwNywgMC4wMDA4MDQsIDAuMDAwODA2LCAwLjAwMDgwNSwgMC4wMDA4MDUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDE4NTYsIDAuMDAxODU3LCAwLjAwMTg1NywgMC4wMDE4NTgsIDAuMDAxODU4LCAwLjAwMTg1OCwgMC4wMDE4NTgiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4zNzMwNzI7Ci0gICAgZnVuY3Rpb24gOiAiKCEoKChDMCtDMSkgKEEwK0ExKSkgKEIwK0IxKSkpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTI0NjQsIDAuMTkxOTMyLCAwLjMyOTY4OSwgMC40Mjc4MjksIDAuNTg1MDc3LCAwLjcyMjI0OCwgMC45MTg4MjYiLCBcCi0gICAgICAgICAgIjAuMDYxMDYyLCAwLjIwMDU0NywgMC4zMzg0NDUsIDAuNDM2Nzg1LCAwLjU5Mzc4NSwgMC43MzE0NTYsIDAuOTI3NTQxIiwgXAotICAgICAgICAgICIwLjA3MTA4LCAwLjIxMDcsIDAuMzQ4NDEzLCAwLjQ0NjY3NywgMC42MDM4NzQsIDAuNzQxNTQzLCAwLjkzNzc3NCIsIFwKLSAgICAgICAgICAiMC4wODEwMiwgMC4yMjA4MjMsIDAuMzU4NzQ4LCAwLjQ1NjgyLCAwLjYxMzg5NywgMC43NTEzNjgsIDAuOTQ4MDY2IiwgXAotICAgICAgICAgICIwLjA5MDc2MywgMC4yMzA5MDEsIDAuMzY4Nzk0LCAwLjQ2Njk0NCwgMC42MjQwODMsIDAuNzYxNTI3LCAwLjk1NzcyOCIsIFwKLSAgICAgICAgICAiMC4xMDQwOTUsIDAuMjQ2NTc3LCAwLjM4NDg0OCwgMC40ODMxMTksIDAuNjQwMTc3LCAwLjc3Nzk2MSwgMC45NzQwNjMiLCBcCi0gICAgICAgICAgIjAuMTE0OTk0LCAwLjI2MDg2NSwgMC4zOTg4LCAwLjQ5NzEzMywgMC42NTQxNjUsIDAuNzkxOTI1LCAwLjk4ODIzOSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5OTU1OCwgMC4zNzgzNTIsIDAuNjU3ODc3LCAwLjg1NzUzNSwgMS4xNzY5LCAxLjQ1NTk2LCAxLjg1NTMiLCBcCi0gICAgICAgICAgIjAuMDk5NTU2LCAwLjM3ODQzOCwgMC42NTc4LCAwLjg1NzM3MiwgMS4xNzY3LCAxLjQ1NTk2LCAxLjg1NTE2IiwgXAotICAgICAgICAgICIwLjEwMTU3MywgMC4zNzg0MzIsIDAuNjU3ODc4LCAwLjg1NzM5MSwgMS4xNzY1NywgMS40NTYyOCwgMS44NTU1IiwgXAotICAgICAgICAgICIwLjEwNTQwNSwgMC4zNzg0NjgsIDAuNjU3OTE2LCAwLjg1NzY5NywgMS4xNzY5OCwgMS40NTYzOSwgMS44NTUxNCIsIFwKLSAgICAgICAgICAiMC4xMTAyOTQsIDAuMzc5NTk1LCAwLjY1Nzg3OSwgMC44NTc0ODMsIDEuMTc2NjEsIDEuNDU2MzgsIDEuODU1NSIsIFwKLSAgICAgICAgICAiMC4xMTk0NSwgMC4zODI5MzYsIDAuNjU4NDY4LCAwLjg1NzUzLCAxLjE3Njk4LCAxLjQ1NjA4LCAxLjg1NTUyIiwgXAotICAgICAgICAgICIwLjEyODE4NSwgMC4zODc0NzEsIDAuNjYwNDU0LCAwLjg1ODA3NywgMS4xNzY4NywgMS40NTYzMiwgMS44NTU1Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg3Nzk2LCAwLjI5MTQyOSwgMC40OTM5MjgsIDAuNjM4MzY1LCAwLjg2ODk2NiwgMS4wNzEzNiwgMS4zNjEyIiwgXAotICAgICAgICAgICIwLjA5NzE5NCwgMC4zMDEsIDAuNTAzNTkxLCAwLjY0NzkzOSwgMC44NzkxNywgMS4wODA5NCwgMS4zNzEyNiIsIFwKLSAgICAgICAgICAiMC4xMDczNDEsIDAuMzExNDM2LCAwLjUxMzk3OCwgMC42NTg0NzMsIDAuODg5NTYyLCAxLjA5MTk1LCAxLjM4MTU3IiwgXAotICAgICAgICAgICIwLjExNzAxLCAwLjMyMTAyNSwgMC41MjMzODUsIDAuNjY4MTQ2LCAwLjg5OTAyMywgMS4xMDE3NywgMS4zOTEyIiwgXAotICAgICAgICAgICIwLjEyNjE1MywgMC4zMzAyOCwgMC41MzI3ODQsIDAuNjc3NTI3LCAwLjkwODQ1NiwgMS4xMTAzNiwgMS40MDAzNSIsIFwKLSAgICAgICAgICAiMC4xNDAzNjcsIDAuMzQ0NTg2LCAwLjU0NzA4MywgMC42OTE5NDQsIDAuOTIyNzQsIDEuMTI1MjksIDEuNDE0NjciLCBcCi0gICAgICAgICAgIjAuMTUyMTM4LCAwLjM1NjkzLCAwLjU1OTQyNiwgMC43MDQyMiwgMC45MzUyMTYsIDEuMTM3NCwgMS40MjY5NSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExNzAxMywgMC41MTQyNDQsIDAuOTEwMzIsIDEuMTk0MjcsIDEuNjUwMzgsIDIuMDQ5ODIsIDIuNjIxODciLCBcCi0gICAgICAgICAgIjAuMTE2OTc4LCAwLjUxNDE2MSwgMC45MTAzNzEsIDEuMTk0NDYsIDEuNjUwNjMsIDIuMDQ5NjUsIDIuNjIxNTIiLCBcCi0gICAgICAgICAgIjAuMTE3MTM1LCAwLjUxNDIzNiwgMC45MTAyODIsIDEuMTk0NDQsIDEuNjUwODIsIDIuMDUwNTUsIDIuNjIwMTciLCBcCi0gICAgICAgICAgIjAuMTE3ODU3LCAwLjUxMzk1MSwgMC45MTA5MTIsIDEuMTk0OTksIDEuNjUwNjMsIDIuMDQ5OTgsIDIuNjIxMDQiLCBcCi0gICAgICAgICAgIjAuMTE5NiwgMC41MTQwMjQsIDAuOTEwNTE2LCAxLjE5NDc4LCAxLjY1MDU3LCAyLjA0OTUzLCAyLjYyMTI5IiwgXAotICAgICAgICAgICIwLjEyMzQ2OSwgMC41MTQzNzksIDAuOTEwMDYsIDEuMTk1MTUsIDEuNjUwNTgsIDIuMDQ5NDIsIDIuNjIwNzYiLCBcCi0gICAgICAgICAgIjAuMTI4MDI3LCAwLjUxNTgzOSwgMC45MDk5MDcsIDEuMTk1MTYsIDEuNjUwNTQsIDIuMDQ5NTcsIDIuNjIwOTQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQ5Mzc3LCAwLjE4ODg2NiwgMC4zMjY2NywgMC40MjQ3NiwgMC41ODE4OSwgMC43MTkxNjUsIDAuOTE1NjUyIiwgXAotICAgICAgICAgICIwLjA1ODI1OSwgMC4xOTc4MDgsIDAuMzM1NjU2LCAwLjQzMzc5OCwgMC41OTA4MzQsIDAuNzI4Mjk1LCAwLjkyNDI3NyIsIFwKLSAgICAgICAgICAiMC4wNjk3OTEsIDAuMjA5MzQxLCAwLjM0NzE0NCwgMC40NDU0NjQsIDAuNjAyNDIxLCAwLjc0MDI4MSwgMC45MzYwMTkiLCBcCi0gICAgICAgICAgIjAuMDgxMjg0LCAwLjIyMDU2OSwgMC4zNTgzMzgsIDAuNDU2NTQ1LCAwLjYxMzYyNCwgMC43NTEwMzgsIDAuOTQ3ODM3IiwgXAotICAgICAgICAgICIwLjA5MjUzOSwgMC4yMzIwNSwgMC4zNjk4OSwgMC40NjgxNjcsIDAuNjI1MjE5LCAwLjc2MjY0MywgMC45NTg3MTUiLCBcCi0gICAgICAgICAgIjAuMTA4NzE4LCAwLjI1MDQ4NiwgMC4zODgzMjYsIDAuNDg2NDIyLCAwLjY0MzYwNSwgMC43ODExNywgMC45Nzc0MDIiLCBcCi0gICAgICAgICAgIjAuMTIwODQ5LCAwLjI2NjYwOCwgMC40MDQzMjQsIDAuNTAyNTIyLCAwLjY1OTk1MywgMC43OTcwMjgsIDAuOTkzMzUiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTk2MzYsIDAuMzc4MzI3LCAwLjY1Nzg3OCwgMC44NTc1MDksIDEuMTc2OSwgMS40NTYzNiwgMS44NTUxMyIsIFwKLSAgICAgICAgICAiMC4wOTk2MjIsIDAuMzc4MzUzLCAwLjY1Nzg1NSwgMC44NTc1MjEsIDEuMTc2OSwgMS40NTYwMSwgMS44NTUwMiIsIFwKLSAgICAgICAgICAiMC4xMDM1NDYsIDAuMzc4NDI1LCAwLjY1NzkxNywgMC44NTc1ODcsIDEuMTc3MiwgMS40NTY0MywgMS44NTU1MiIsIFwKLSAgICAgICAgICAiMC4xMTAxMDQsIDAuMzc4NTI0LCAwLjY1Nzg5MSwgMC44NTc0ODEsIDEuMTc2OTQsIDEuNDU2MzcsIDEuODU1MSIsIFwKLSAgICAgICAgICAiMC4xMTc4ODgsIDAuMzgwMDgzLCAwLjY1NzkwNSwgMC44NTc1MjcsIDEuMTc2OSwgMS40NTU5MiwgMS44NTUxNiIsIFwKLSAgICAgICAgICAiMC4xMzE1NzEsIDAuMzg1NDg4LCAwLjY1ODM0NywgMC44NTc1MTksIDEuMTc2OTIsIDEuNDU2MzksIDEuODU1NDciLCBcCi0gICAgICAgICAgIjAuMTQ0MzgsIDAuMzkyMTQ2LCAwLjY2MTEyMywgMC44NTc5NTMsIDEuMTc2ODcsIDEuNDU1OTksIDEuODU1MDUiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODE3NjUsIDAuMjg2MzA3LCAwLjQ4OTkzMSwgMC42MzUxMjUsIDAuODY3ODQyLCAxLjA3MDk1LCAxLjM2MTc5IiwgXAotICAgICAgICAgICIwLjA5MTE5NywgMC4yOTYxMzEsIDAuNDk5OTYsIDAuNjQ0OTc1LCAwLjg3Nzc5OSwgMS4wODA3NiwgMS4zNzE3MSIsIFwKLSAgICAgICAgICAiMC4xMDEyNjgsIDAuMzA2NDIxLCAwLjUxMDMwNiwgMC42NTU2NTMsIDAuODg3OTczLCAxLjA5MDk3LCAxLjM4Mjk5IiwgXAotICAgICAgICAgICIwLjExMDU4NiwgMC4zMTYwNDMsIDAuNTE5NjUxLCAwLjY2NTE4MywgMC44OTc5NTYsIDEuMTAwOTMsIDEuMzkyMTgiLCBcCi0gICAgICAgICAgIjAuMTE5NjcxLCAwLjMyNTE2OCwgMC41Mjg4NjUsIDAuNjc0NDYzLCAwLjkwNjYzMiwgMS4xMTA2MiwgMS40MDA5NSIsIFwKLSAgICAgICAgICAiMC4xMzM3NzUsIDAuMzM5MzQzLCAwLjU0MzMyNywgMC42ODg4NCwgMC45MjEwNDMsIDEuMTI0NDQsIDEuNDE2MDUiLCBcCi0gICAgICAgICAgIjAuMTQ1MDI0LCAwLjM1MTYzOSwgMC41NTU0MzEsIDAuNzAxMDg5LCAwLjkzMzM2NCwgMS4xMzY4NCwgMS40Mjc5MyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExMDI1MSwgMC41MDkxOTIsIDAuOTA3NjAzLCAxLjE5Mjc3LCAxLjY1MTcxLCAyLjA1ODU0LCAyLjYzMjE1IiwgXAotICAgICAgICAgICIwLjExMDEzMiwgMC41MDkxOTMsIDAuOTA3NDA2LCAxLjE5MzY0LCAxLjY1MTQ4LCAyLjA1NzU0LCAyLjYzNDEiLCBcCi0gICAgICAgICAgIjAuMTEwMTg5LCAwLjUwOTE5MSwgMC45MDc0MTcsIDEuMTkyOTQsIDEuNjU0MTEsIDIuMDU3LCAyLjYyNzU0IiwgXAotICAgICAgICAgICIwLjExMTE1NiwgMC41MDg4ODEsIDAuOTA3MTUsIDEuMTkyNzQsIDEuNjUxNjIsIDIuMDU3ODMsIDIuNjMwNTEiLCBcCi0gICAgICAgICAgIjAuMTEyOTczLCAwLjUwODk4NSwgMC45MDcxMzcsIDEuMTkyNzgsIDEuNjUzMjEsIDIuMDUzNzEsIDIuNjM0NjMiLCBcCi0gICAgICAgICAgIjAuMTE3MTE4LCAwLjUwOTM2NywgMC45MDcyOTQsIDEuMTkzMzcsIDEuNjUzNDYsIDIuMDUzMzgsIDIuNjMzNzYiLCBcCi0gICAgICAgICAgIjAuMTIyMDA3LCAwLjUxMDgzOSwgMC45MDczMTksIDEuMTkyOTYsIDEuNjUzMjEsIDIuMDU3MDcsIDIuNjM0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0NjQwMiwgMC4xODQ2MTUsIDAuMzIyMTk5LCAwLjQyMDQxOSwgMC41Nzc1NTUsIDAuNzE0OTIsIDAuOTExMzA5IiwgXAotICAgICAgICAgICIwLjA1NTA4MiwgMC4xOTM1MDUsIDAuMzMxMTQ0LCAwLjQyOTI2NywgMC41ODY0MDEsIDAuNzIzODI4LCAwLjkyMDIyMiIsIFwKLSAgICAgICAgICAiMC4wNjUwMzgsIDAuMjAzNzUxLCAwLjM0MTI0MiwgMC40Mzk0NTksIDAuNTk2NTYzLCAwLjczNDA4NSwgMC45MzAzMTciLCBcCi0gICAgICAgICAgIjAuMDc0ODYzLCAwLjIxMzczMiwgMC4zNTE0MDMsIDAuNDQ5Njg5LCAwLjYwNjc3MSwgMC43NDQyNCwgMC45NDA2MDgiLCBcCi0gICAgICAgICAgIjAuMDgzOTE1LCAwLjIyMzc4NiwgMC4zNjEzOTksIDAuNDU5NjI5LCAwLjYxNjgyNSwgMC43NTQxMDMsIDAuOTUwNjA0IiwgXAotICAgICAgICAgICIwLjA5NjgzLCAwLjIzOTYxNywgMC4zNzc2NzEsIDAuNDc1ODI2LCAwLjYzMzAyNiwgMC43NzA0OTIsIDAuOTY2ODQzIiwgXAotICAgICAgICAgICIwLjEwNjY5MywgMC4yNTM4MTUsIDAuMzkxNjA3LCAwLjQ4OTg0NiwgMC42NDcwODcsIDAuNzg0NjUsIDAuOTgxMDQiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTExMDMsIDAuMzcwMTQ2LCAwLjY0OTU0OSwgMC44NDg5NDEsIDEuMTY4NDgsIDEuNDQ3NDgsIDEuODQ3MDkiLCBcCi0gICAgICAgICAgIjAuMDkxMjUzLCAwLjM3MDAzOCwgMC42NDk0OTgsIDAuODQ4OTU2LCAxLjE2ODM5LCAxLjQ0NzYzLCAxLjg0NjU0IiwgXAotICAgICAgICAgICIwLjA5MzY0OSwgMC4zNzAxNDQsIDAuNjQ5Mzk4LCAwLjg0ODk5NywgMS4xNjg0LCAxLjQ0Nzc1LCAxLjg0Njc0IiwgXAotICAgICAgICAgICIwLjA5Nzg3OCwgMC4zNzAzMTcsIDAuNjQ5Mzg1LCAwLjg0ODg2OSwgMS4xNjg0OCwgMS40NDc4NSwgMS44NDY3OSIsIFwKLSAgICAgICAgICAiMC4xMDMwNTQsIDAuMzcxNTMzLCAwLjY0OTUwNiwgMC44NDkwODksIDEuMTY4MzcsIDEuNDQ3ODIsIDEuODQ3MDUiLCBcCi0gICAgICAgICAgIjAuMTEyNjM1LCAwLjM3NTA5NSwgMC42NTAyMzYsIDAuODQ5MTA4LCAxLjE2ODQ3LCAxLjQ0NzU4LCAxLjg0NzAxIiwgXAotICAgICAgICAgICIwLjEyMTczLCAwLjM3OTgzNywgMC42NTE5MDIsIDAuODQ5NjE3LCAxLjE2ODM2LCAxLjQ0NzU0LCAxLjg0Njk1Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDgxNTUzLCAwLjI4NTI1NSwgMC40ODc3OTUsIDAuNjMyMjE0LCAwLjg2MzU3MywgMS4wNjU0OSwgMS4zNTUwNCIsIFwKLSAgICAgICAgICAiMC4wOTA2MzUsIDAuMjk0MzYsIDAuNDk2ODk3LCAwLjY0MTE3MSwgMC44NzI3NTgsIDEuMDc0OCwgMS4zNjM5NCIsIFwKLSAgICAgICAgICAiMC4xMDExNzUsIDAuMzA1MTU1LCAwLjUwNzgwMywgMC42NTIxNTIsIDAuODgzMzczLCAxLjA4NTU4LCAxLjM3NTQzIiwgXAotICAgICAgICAgICIwLjExMTgyNiwgMC4zMTU4MDIsIDAuNTE4NjE5LCAwLjY2Mjg1MywgMC44OTQxNDcsIDEuMDk2NjIsIDEuMzg1NTUiLCBcCi0gICAgICAgICAgIjAuMTIyNDA0LCAwLjMyNjQyNSwgMC41MjkxMTgsIDAuNjczNTgxLCAwLjkwNDYwNCwgMS4xMDcxNiwgMS4zOTYxMSIsIFwKLSAgICAgICAgICAiMC4xMzg5MjQsIDAuMzQzMzksIDAuNTQ1OTU0LCAwLjY5MDUzNywgMC45MjIxODcsIDEuMTIzNzcsIDEuNDEzMjQiLCBcCi0gICAgICAgICAgIjAuMTUyNzQxLCAwLjM1ODQwNywgMC41NjEwNTQsIDAuNzA1NDU0LCAwLjkzNjcxLCAxLjEzODY5LCAxLjQyODM5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTE3MDc0LCAwLjUxNDIyMSwgMC45MTA1NjksIDEuMTk0MzcsIDEuNjUxNDcsIDIuMDUzMTIsIDIuNjI1MTkiLCBcCi0gICAgICAgICAgIjAuMTE2OTcsIDAuNTEzODQ3LCAwLjkxMDQwNSwgMS4xOTQ2NywgMS42NTE4MiwgMi4wNTI5MiwgMi42MjU5MiIsIFwKLSAgICAgICAgICAiMC4xMTczNjEsIDAuNTEzOTA3LCAwLjkxMDMxNCwgMS4xOTQzNCwgMS42NTE0NSwgMi4wNTI2MywgMi42MjczOSIsIFwKLSAgICAgICAgICAiMC4xMTkxMDIsIDAuNTE0MTY5LCAwLjkxMDQ0NywgMS4xOTQ3NCwgMS42NTE0OSwgMi4wNTMwOSwgMi42MjcxMSIsIFwKLSAgICAgICAgICAiMC4xMjI0OTMsIDAuNTEzODUxLCAwLjkxMDA4OSwgMS4xOTQzNCwgMS42NTE1MiwgMi4wNTMyOCwgMi42MjU5IiwgXAotICAgICAgICAgICIwLjEyOTUyOCwgMC41MTQ3MTEsIDAuOTEwMDgxLCAxLjE5NTIxLCAxLjY1MTUzLCAyLjA1MzM3LCAyLjYyNTA2IiwgXAotICAgICAgICAgICIwLjEzNzI5MywgMC41MTY4NTQsIDAuOTEwMjQ3LCAxLjE5NDk2LCAxLjY1MTQxLCAyLjA1MjUxLCAyLjYyNjMxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIxIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0Mjk1MiwgMC4xODEyMTYsIDAuMzE4Nzc2LCAwLjQxNjkzNywgMC41NzQxMTksIDAuNzExNTg2LCAwLjkwNzg1OCIsIFwKLSAgICAgICAgICAiMC4wNTE4ODgsIDAuMTkwMzYsIDAuMzI3OTc0LCAwLjQyNjE1OSwgMC41ODMzNDYsIDAuNzIwNzMsIDAuOTE3MDQ0IiwgXAotICAgICAgICAgICIwLjA2MzEwMywgMC4yMDE2MjEsIDAuMzM5MjQyLCAwLjQzNzQ5LCAwLjU5NDUxOCwgMC43MzE5NywgMC45Mjg0MjMiLCBcCi0gICAgICAgICAgIjAuMDc0OTYxLCAwLjIxMzMwNywgMC4zNTA5NDksIDAuNDQ5MjMyLCAwLjYwNjI4MywgMC43NDM3NSwgMC45NDAxMjgiLCBcCi0gICAgICAgICAgIjAuMDg1NjI4LCAwLjIyNDQ5NiwgMC4zNjIwODksIDAuNDYwMzg4LCAwLjYxNzQ2NCwgMC43NTQ4NDIsIDAuOTUxMjQ5IiwgXAotICAgICAgICAgICIwLjEwMDE0NiwgMC4yNDI5ODIsIDAuMzgwNDk1LCAwLjQ3ODcyLCAwLjYzNTg5MiwgMC43NzMyMzcsIDAuOTY5NjQ4IiwgXAotICAgICAgICAgICIwLjExMDk1NiwgMC4yNTkxMTgsIDAuMzk2Njc1LCAwLjQ5NDgzNSwgMC42NTE5NTQsIDAuNzg5NDI4LCAwLjk4NTY4NSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5MTExMSwgMC4zNzAxNDIsIDAuNjQ5NDkxLCAwLjg0ODk3MywgMS4xNjg0MywgMS40NDc5LCAxLjg0NjY0IiwgXAotICAgICAgICAgICIwLjA5MTU1OSwgMC4zNzAxMzUsIDAuNjQ5Mzc4LCAwLjg0ODkwOCwgMS4xNjg0OCwgMS40NDc2OSwgMS44NDY1OCIsIFwKLSAgICAgICAgICAiMC4wOTY0OSwgMC4zNzAwODcsIDAuNjQ5NTEyLCAwLjg0OTAxNiwgMS4xNjg0LCAxLjQ0Nzc4LCAxLjg0NzAxIiwgXAotICAgICAgICAgICIwLjEwMzYyNiwgMC4zNzAzMywgMC42NDkzNzksIDAuODQ5MDE0LCAxLjE2ODQsIDEuNDQ3NDMsIDEuODQ2ODYiLCBcCi0gICAgICAgICAgIjAuMTExODkyLCAwLjM3MjE3NywgMC42NDk1MTMsIDAuODQ4OTY0LCAxLjE2ODQsIDEuNDQ3NzcsIDEuODQ2NTEiLCBcCi0gICAgICAgICAgIjAuMTI2NDA3LCAwLjM3Nzk2OSwgMC42NTAyMzksIDAuODQ4ODc1LCAxLjE2ODQ2LCAxLjQ0Nzc2LCAxLjg0NjY5IiwgXAotICAgICAgICAgICIwLjEzOTY2NywgMC4zODQ5MywgMC42NTMwOTksIDAuODQ5NjY4LCAxLjE2ODQ3LCAxLjQ0Nzc5LCAxLjg0NjQ2Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc1MDc2LCAwLjI3OTY4MywgMC40ODM0NDgsIDAuNjI4ODM2LCAwLjg2MTI4NCwgMS4wNjUwOSwgMS4zNTU0NCIsIFwKLSAgICAgICAgICAiMC4wODQwODksIDAuMjg5MDUxLCAwLjQ5MjgsIDAuNjM4MDkxLCAwLjg3MDY0MSwgMS4wNzQwNywgMS4zNjQ2OCIsIFwKLSAgICAgICAgICAiMC4wOTQ1MDcsIDAuMjk5ODUzLCAwLjUwMzYyNywgMC42NDg5NDYsIDAuODgxOTQxLCAxLjA4NDg4LCAxLjM3NjEyIiwgXAotICAgICAgICAgICIwLjEwNDgzMSwgMC4zMTAyOTYsIDAuNTE0MTE0LCAwLjY1OTg5LCAwLjg5MjMxNSwgMS4wOTU5MSwgMS4zODY2MiIsIFwKLSAgICAgICAgICAiMC4xMTUyOTYsIDAuMzIwODQ5LCAwLjUyNDg1MywgMC42NzAyNTcsIDAuOTAyNzYxLCAxLjEwNjc4LCAxLjM5NzAyIiwgXAotICAgICAgICAgICIwLjEzMTMzMiwgMC4zMzc1NjEsIDAuNTQxNTM5LCAwLjY4NzE3NCwgMC45MTk2OSwgMS4xMjMzNSwgMS40MTM4OCIsIFwKLSAgICAgICAgICAiMC4xNDQzNzYsIDAuMzUyMDMzLCAwLjU1NjQ0OCwgMC43MDE5ODIsIDAuOTM0NzQ4LCAxLjEzODMyLCAxLjQyOTE5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTA5ODc0LCAwLjUwOTI4NiwgMC45MDg3OSwgMS4xOTM3NSwgMS42NTM2NSwgMi4wNTIzOSwgMi42MzQ4MSIsIFwKLSAgICAgICAgICAiMC4xMDk3NTcsIDAuNTA5Mjc1LCAwLjkwODUwOCwgMS4xOTQwMywgMS42NTMyNywgMi4wNTU3NCwgMi42MzM4IiwgXAotICAgICAgICAgICIwLjExMDE4NSwgMC41MDkyNzMsIDAuOTA4ODI0LCAxLjE5NDU2LCAxLjY1MjA5LCAyLjA1MTgxLCAyLjYzMjI0IiwgXAotICAgICAgICAgICIwLjExMjM2MywgMC41MDk1NjgsIDAuOTA4OSwgMS4xOTM3NCwgMS42NTMxMSwgMi4wNTIzLCAyLjYzMzgzIiwgXAotICAgICAgICAgICIwLjExNTkzLCAwLjUwOTI3MywgMC45MDg1NDIsIDEuMTk0NTksIDEuNjUzMiwgMi4wNTMyLCAyLjYzMjAzIiwgXAotICAgICAgICAgICIwLjEyMzMxNCwgMC41MTAxNTcsIDAuOTA4NTU1LCAxLjE5MzcyLCAxLjY1MzQ4LCAyLjA1MzAyLCAyLjYzMzgiLCBcCi0gICAgICAgICAgIjAuMTMxNTEsIDAuNTEyMzQ2LCAwLjkwOTIxOSwgMS4xOTQzOCwgMS42NTExMywgMi4wNTIyNiwgMi42MzAxNyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzgyMTcsIDAuMTc2MDI1LCAwLjMxMzYzLCAwLjQxMjAxOSwgMC41NjkyOCwgMC43MDY5ODksIDAuOTAzNTgzIiwgXAotICAgICAgICAgICIwLjA0NjgwNSwgMC4xODQ5MDcsIDAuMzIyNTcsIDAuNDIxMDU0LCAwLjU3ODI4NSwgMC43MTU4NzIsIDAuOTEyNDgxIiwgXAotICAgICAgICAgICIwLjA1NjcyNSwgMC4xOTQ5ODIsIDAuMzMyNjk5LCAwLjQzMTA0LCAwLjU4ODM4NiwgMC43MjYxMzUsIDAuOTIyNTU5IiwgXAotICAgICAgICAgICIwLjA2NjA2NCwgMC4yMDUxNTgsIDAuMzQyODM5LCAwLjQ0MTI0MywgMC41OTg1NDUsIDAuNzM2MTMsIDAuOTMyODEzIiwgXAotICAgICAgICAgICIwLjA3NDM0NCwgMC4yMTUyNjEsIDAuMzUzMDU4LCAwLjQ1MTgyOSwgMC42MDg3MjgsIDAuNzQ2NDQsIDAuOTQzMDQ1IiwgXAotICAgICAgICAgICIwLjA4NTgxNSwgMC4yMzEwMzMsIDAuMzY5MDM4LCAwLjQ2NzE1OCwgMC42MjQ4MywgMC43NjI1NDIsIDAuOTU5MTUiLCBcCi0gICAgICAgICAgIjAuMDk1MTAzLCAwLjI0NDg0LCAwLjM4MzIyNiwgMC40ODE0OTgsIDAuNjM4ODk1LCAwLjc3Njc0MiwgMC45NzMzOTciKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODM4ODgsIDAuMzYyNTA3LCAwLjY0MTY4MSwgMC44NDEyMDIsIDEuMTYwNDYsIDEuNDM5OTMsIDEuODM5MTIiLCBcCi0gICAgICAgICAgIjAuMDg0MjUyLCAwLjM2MjQ1MywgMC42NDE1OTUsIDAuODQxMTIxLCAxLjE2MDQ0LCAxLjQzOTg2LCAxLjgzODk5IiwgXAotICAgICAgICAgICIwLjA4NzMzNywgMC4zNjI0NSwgMC42NDE3MDMsIDAuODQxMTg0LCAxLjE2MDQ4LCAxLjQzOTk2LCAxLjgzOTA2IiwgXAotICAgICAgICAgICIwLjA5MjA1MSwgMC4zNjI3MTgsIDAuNjQxNjI3LCAwLjg0MTIyNSwgMS4xNjA0MywgMS40Mzk4NywgMS44MzkxMyIsIFwKLSAgICAgICAgICAiMC4wOTc3NzcsIDAuMzY0MTcsIDAuNjQxNzE0LCAwLjg0MTM4MiwgMS4xNjA0MiwgMS40Mzk4NywgMS44MzkxNSIsIFwKLSAgICAgICAgICAiMC4xMDgyMjEsIDAuMzY3OTU3LCAwLjY0MjM3NSwgMC44NDExOTQsIDEuMTYwNDksIDEuNDM5OTMsIDEuODM5MDMiLCBcCi0gICAgICAgICAgIjAuMTE3ODE5LCAwLjM3MjYyMiwgMC42NDQ2ODEsIDAuODQxOTM4LCAxLjE2MDQsIDEuNDM5NjksIDEuODM4OTgiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjk0NzMsIDAuMjczMTk3LCAwLjQ3NTUxNCwgMC42MjAxMSwgMC44NTEwMzcsIDEuMDUzNTMsIDEuMzQyNTIiLCBcCi0gICAgICAgICAgIjAuMDc4MDk3LCAwLjI4MjAzNSwgMC40ODQzODEsIDAuNjI4ODIzLCAwLjg1OTg2MywgMS4wNjE4MSwgMS4zNTA4OCIsIFwKLSAgICAgICAgICAiMC4wODg5NTcsIDAuMjkzMDE0LCAwLjQ5NTQwMiwgMC42Mzk4NzQsIDAuODcxNDI4LCAxLjA3MzA1LCAxLjM2Mjc5IiwgXAotICAgICAgICAgICIwLjA5OTkzLCAwLjMwMzk1OSwgMC41MDYzMzQsIDAuNjUwNDg1LCAwLjg4MTU0OSwgMS4wODQyLCAxLjM3MzA2IiwgXAotICAgICAgICAgICIwLjExMTA1MSwgMC4zMTQxNDQsIDAuNTE3MzUxLCAwLjY2MTk3NCwgMC44OTI5MzIsIDEuMDk1MSwgMS4zODQxOCIsIFwKLSAgICAgICAgICAiMC4xMjg5MDgsIDAuMzMyMjQ1LCAwLjUzNDc3MSwgMC42NzkyMDgsIDAuOTEwNjY2LCAxLjExMjI1LCAxLjQwMTY2IiwgXAotICAgICAgICAgICIwLjE0NDExMiwgMC4zNDc3NTMsIDAuNTQ5MzgzLCAwLjY5NDgyMywgMC45MjU2ODEsIDEuMTI4NDMsIDEuNDE3NDgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTY5NzEsIDAuNTE0MjEzLCAwLjkxMDUzOSwgMS4xOTM3NSwgMS42NTA2NSwgMi4wNTIzMiwgMi42MjQ4IiwgXAotICAgICAgICAgICIwLjExNjMzOCwgMC41MTM5MjYsIDAuOTEwMDksIDEuMTk0MDcsIDEuNjUwNzYsIDIuMDUxODksIDIuNjI1MDciLCBcCi0gICAgICAgICAgIjAuMTE3NjIzLCAwLjUxMzgzOSwgMC45MTAyMzMsIDEuMTk0MDcsIDEuNjUxNDgsIDIuMDUxODQsIDIuNjI1MTUiLCBcCi0gICAgICAgICAgIjAuMTIyMjAxLCAwLjUxMzk0MSwgMC45MTAxNDMsIDEuMTk0NDgsIDEuNjUwODEsIDIuMDUyNSwgMi42MjQ1OCIsIFwKLSAgICAgICAgICAiMC4xMjgxODEsIDAuNTEzNzEzLCAwLjkxMDEzNiwgMS4xOTM3NSwgMS42NTA5LCAyLjA1MjE4LCAyLjYyNTk2IiwgXAotICAgICAgICAgICIwLjEzOTU0NiwgMC41MTUzNDcsIDAuOTEwNDkzLCAxLjE5NDUsIDEuNjUwODcsIDIuMDUxOTMsIDIuNjI1NjQiLCBcCi0gICAgICAgICAgIjAuMTUwNzk1LCAwLjUxODk0NiwgMC45MTA0MjYsIDEuMTkzOCwgMS42NTA3NywgMi4wNTI3NCwgMi42MjU3NyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDMSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzUwNzYsIDAuMTcyOTg5LCAwLjMxMDk2MSwgMC40MDg4NzcsIDAuNTY2MjM5LCAwLjcwMzkwOSwgMC45MDA1MjIiLCBcCi0gICAgICAgICAgIjAuMDQ0MDMsIDAuMTgyMTU4LCAwLjMxOTgzNSwgMC40MTgyMTEsIDAuNTc1NTQxLCAwLjcxMzE2NCwgMC45MDk4NjYiLCBcCi0gICAgICAgICAgIjAuMDU1NDg3LCAwLjE5MzY4MywgMC4zMzE0MjksIDAuNDI5NzQ2LCAwLjU4NzE0OSwgMC43MjQ3MjMsIDAuOTIxNDYzIiwgXAotICAgICAgICAgICIwLjA2NjU0NywgMC4yMDQ5MDcsIDAuMzQyNjk5LCAwLjQ0MTAyOSwgMC41OTgzNzcsIDAuNzM2MDQ5LCAwLjkzMjY1IiwgXAotICAgICAgICAgICIwLjA3NjA5MywgMC4yMTY0MjYsIDAuMzU0MTQyLCAwLjQ1MjYwNiwgMC42MDk5MTMsIDAuNzQ3NTY5LCAwLjk0NDE3NyIsIFwKLSAgICAgICAgICAiMC4wODg2MTYsIDAuMjM0ODYxLCAwLjM3MjU0OCwgMC40NzA5MTMsIDAuNjI4Mjc0LCAwLjc2NTk0MSwgMC45NjI1MzIiLCBcCi0gICAgICAgICAgIjAuMDk4MDAzLCAwLjI1MTA1MiwgMC4zODg2OTEsIDAuNDg2OTU3LCAwLjY0NDMyNywgMC43ODE5OCwgMC45Nzg2MzMiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODM4ODYsIDAuMzYyNDU4LCAwLjY0MTc3MywgMC44NDExNzksIDEuMTYwNTUsIDEuNDM5OTYsIDEuODM5MDciLCBcCi0gICAgICAgICAgIjAuMDg0ODY2LCAwLjM2MjQ1NiwgMC42NDE2OTcsIDAuODQxMTM3LCAxLjE2MDIzLCAxLjQzOTU2LCAxLjgzODkiLCBcCi0gICAgICAgICAgIjAuMDkwNTQ0LCAwLjM2MjQ0NCwgMC42NDE3MSwgMC44NDExNjksIDEuMTYwNDYsIDEuNDM5NzEsIDEuODM5MDciLCBcCi0gICAgICAgICAgIjAuMDk4NjEzLCAwLjM2Mjc5NywgMC42NDE3MjIsIDAuODQxMTgzLCAxLjE2MDUsIDEuNDM5OTIsIDEuODM5MDciLCBcCi0gICAgICAgICAgIjAuMTA3NTQxLCAwLjM2NDkwNiwgMC42NDE2OCwgMC44NDEyMTIsIDEuMTYwNTEsIDEuNDM5ODgsIDEuODM5MDYiLCBcCi0gICAgICAgICAgIjAuMTIyODgsIDAuMzcwOTg4LCAwLjY0MjQ0NSwgMC44NDExMTUsIDEuMTYwNTMsIDEuNDM5NzEsIDEuODM4OTkiLCBcCi0gICAgICAgICAgIjAuMTM2Mzg2LCAwLjM3ODMzMiwgMC42NDU1NzMsIDAuODQxODc1LCAxLjE2MDUsIDEuNDM5OCwgMS44Mzg5MSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2MzU2NCwgMC4yNjgyMjYsIDAuNDcxOTc4LCAwLjYxNzQ0OCwgMC44NDk5MzIsIDEuMDUzNzQsIDEuMzQ0MjEiLCBcCi0gICAgICAgICAgIjAuMDcyMDUxLCAwLjI3NzM2NSwgMC40ODA5NTgsIDAuNjI2Mzg1LCAwLjg1ODg4MywgMS4wNjIyLCAxLjM1Mjg4IiwgXAotICAgICAgICAgICIwLjA4Mjg1NiwgMC4yODgyNzYsIDAuNDkxOTYsIDAuNjM3MzM3LCAwLjg3MDI1MSwgMS4wNzMyOCwgMS4zNjQ2NyIsIFwKLSAgICAgICAgICAiMC4wOTM5NjUsIDAuMjk5MzY4LCAwLjUwMzEyMywgMC42NDg1NDUsIDAuODgxMTQ0LCAxLjA4NTA2LCAxLjM3NTQyIiwgXAotICAgICAgICAgICIwLjEwNDcwNSwgMC4zMDk2MTUsIDAuNTEzODk4LCAwLjY1OTQ1MiwgMC44OTE5NzQsIDEuMDk1MzUsIDEuMzg2MzkiLCBcCi0gICAgICAgICAgIjAuMTIyOTA5LCAwLjMyNzQwMywgMC41MzEzMDEsIDAuNjc2NjQyLCAwLjkwOTY3MiwgMS4xMTI3NSwgMS40MDM3NiIsIFwKLSAgICAgICAgICAiMC4xMzYwNDIsIDAuMzQyNzU3LCAwLjU0NTg1NiwgMC42OTIyOCwgMC45MjQ3MjYsIDEuMTI4NzUsIDEuNDE5MjEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTAxNzMsIDAuNTA5ODY5LCAwLjkwOTE3MiwgMS4xOTQ3NiwgMS42NTM4MywgMi4wNTQyNCwgMi42MzUzNiIsIFwKLSAgICAgICAgICAiMC4xMDk0NjksIDAuNTA5ODYxLCAwLjkwOTQ2OCwgMS4xOTQ2NywgMS42NTM4LCAyLjA1NzY1LCAyLjYzNDgxIiwgXAotICAgICAgICAgICIwLjExMTE0OSwgMC41MDk4NjUsIDAuOTA5MTA4LCAxLjE5NDYzLCAxLjY1MTUzLCAyLjA1NjkzLCAyLjYyNzU5IiwgXAotICAgICAgICAgICIwLjExNTk5NywgMC41MDk4NjgsIDAuOTA5MDA5LCAxLjE5NTIxLCAxLjY1MzE1LCAyLjA1ODM5LCAyLjYzMjY2IiwgXAotICAgICAgICAgICIwLjEyMjU3NywgMC41MDk1OTcsIDAuOTA5MDEyLCAxLjE5NDI2LCAxLjY1MzI5LCAyLjA1NjgyLCAyLjYyOTk3IiwgXAotICAgICAgICAgICIwLjEzNDUwMSwgMC41MTEzMywgMC45MDkwNzksIDEuMTk0NjEsIDEuNjUxNDMsIDIuMDU3NTYsIDIuNjMwMDgiLCBcCi0gICAgICAgICAgIjAuMTQ2NDM5LCAwLjUxNTExMiwgMC45MDkzMjIsIDEuMTk0MjksIDEuNjUzMTIsIDIuMDUzMDMsIDIuNjM1NCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxOTUyNCwgMC4wMTk1MjUsIDAuMDE5NTE5LCAwLjAxOTUyMSwgMC4wMTk1MTUsIDAuMDE5NTEyLCAwLjAxOTUxIiwgXAotICAgICAgICAgICIwLjAxOTQ0NSwgMC4wMTk0NTYsIDAuMDE5NDU4LCAwLjAxOTQ1NCwgMC4wMTk0NTIsIDAuMDE5NDUsIDAuMDE5NDQ3IiwgXAotICAgICAgICAgICIwLjAxOTQxLCAwLjAxOTQzOCwgMC4wMTk0NDEsIDAuMDE5NDM5LCAwLjAxOTQzOCwgMC4wMTk0MzcsIDAuMDE5NDMzIiwgXAotICAgICAgICAgICIwLjAxOTM5MywgMC4wMTk0MjcsIDAuMDE5NDM1LCAwLjAxOTQzMSwgMC4wMTk0MzMsIDAuMDE5NDM0LCAwLjAxOTQyOCIsIFwKLSAgICAgICAgICAiMC4wMTkzNzksIDAuMDE5NDE5LCAwLjAxOTQyNSwgMC4wMTk0MjYsIDAuMDE5NDI3LCAwLjAxOTQyNywgMC4wMTk0MjMiLCBcCi0gICAgICAgICAgIjAuMDE5Mzg1LCAwLjAxOTQxMiwgMC4wMTk0MjEsIDAuMDE5NDIzLCAwLjAxOTQyMywgMC4wMTk0MjQsIDAuMDE5NDIyIiwgXAotICAgICAgICAgICIwLjAxOTM4NCwgMC4wMTk0MTIsIDAuMDE5NDIxLCAwLjAxOTQyMywgMC4wMTk0MjIsIDAuMDE5NDIsIDAuMDE5NDIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNTYzOSwgMC4wMDU2NDcsIDAuMDA1NjQ1LCAwLjAwNTY0NSwgMC4wMDU2NDYsIDAuMDA1NjQ1LCAwLjAwNTY0MiIsIFwKLSAgICAgICAgICAiMC4wMDU1MzQsIDAuMDA1NTg1LCAwLjAwNTU5MSwgMC4wMDU1OTUsIDAuMDA1NTk5LCAwLjAwNTU5NSwgMC4wMDU1ODgiLCBcCi0gICAgICAgICAgIjAuMDA1NDc1LCAwLjAwNTU1NywgMC4wMDU1NzMsIDAuMDA1NTc4LCAwLjAwNTU3OSwgMC4wMDU1ODEsIDAuMDA1NTgzIiwgXAotICAgICAgICAgICIwLjAwNTQzLCAwLjAwNTUzMiwgMC4wMDU1NTYsIDAuMDA1NTYzLCAwLjAwNTU2OSwgMC4wMDU1NzIsIDAuMDA1NTc1IiwgXAotICAgICAgICAgICIwLjAwNTQwMywgMC4wMDU1MTUsIDAuMDA1NTQ0LCAwLjAwNTU1MywgMC4wMDU1NjEsIDAuMDA1NTY1LCAwLjAwNTU2OCIsIFwKLSAgICAgICAgICAiMC4wMDU0MTEsIDAuMDA1NDksIDAuMDA1NTI1LCAwLjAwNTUzNywgMC4wMDU1NDksIDAuMDA1NTU1LCAwLjAwNTU2MSIsIFwKLSAgICAgICAgICAiMC4wMDUzNTQsIDAuMDA1NDcsIDAuMDA1NTE0LCAwLjAwNTUyNiwgMC4wMDU1NCwgMC4wMDU1NDcsIDAuMDA1NTUyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE4MTc5LCAwLjAxODE3OSwgMC4wMTgxNzYsIDAuMDE4MTczLCAwLjAxODE3MSwgMC4wMTgxNjgsIDAuMDE4MTYzIiwgXAotICAgICAgICAgICIwLjAxODA2OCwgMC4wMTgxMDIsIDAuMDE4MTAzLCAwLjAxODEwMSwgMC4wMTgxMDEsIDAuMDE4MTAyLCAwLjAxODA5NyIsIFwKLSAgICAgICAgICAiMC4wMTgwMzIsIDAuMDE4MDgzLCAwLjAxODA4OCwgMC4wMTgwOSwgMC4wMTgwOSwgMC4wMTgwODgsIDAuMDE4MDg3IiwgXAotICAgICAgICAgICIwLjAxODAyLCAwLjAxODA2NCwgMC4wMTgwNzMsIDAuMDE4MDc0LCAwLjAxODA3NSwgMC4wMTgwNzYsIDAuMDE4MDczIiwgXAotICAgICAgICAgICIwLjAxODAzNCwgMC4wMTgwNjEsIDAuMDE4MDcxLCAwLjAxODA3MiwgMC4wMTgwNzMsIDAuMDE4MDcyLCAwLjAxODA2OSIsIFwKLSAgICAgICAgICAiMC4wMTgwODksIDAuMDE4MDY5LCAwLjAxODA3MywgMC4wMTgwNzQsIDAuMDE4MDc0LCAwLjAxODA3LCAwLjAxODA2OSIsIFwKLSAgICAgICAgICAiMC4wMTgxNjYsIDAuMDE4MDgzLCAwLjAxODA4LCAwLjAxODA3OSwgMC4wMTgwNzYsIDAuMDE4MDczLCAwLjAxODA3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQ1MjUsIDAuMDA0NTY1LCAwLjAwNDU3LCAwLjAwNDU3LCAwLjAwNDU3MSwgMC4wMDQ1NzMsIDAuMDA0NTciLCBcCi0gICAgICAgICAgIjAuMDA0NDE5LCAwLjAwNDU2NiwgMC4wMDQ1OSwgMC4wMDQ1OTYsIDAuMDA0NiwgMC4wMDQ2MDQsIDAuMDA0NjA2IiwgXAotICAgICAgICAgICIwLjAwNDI5OSwgMC4wMDQ1MjMsIDAuMDA0NTY2LCAwLjAwNDU4LCAwLjAwNDU5MiwgMC4wMDQ1OTcsIDAuMDA0NjA2IiwgXAotICAgICAgICAgICIwLjAwNDIxNiwgMC4wMDQ0NzUsIDAuMDA0NTM1LCAwLjAwNDU1NiwgMC4wMDQ1NzQsIDAuMDA0NTg0LCAwLjAwNDU5MSIsIFwKLSAgICAgICAgICAiMC4wMDQxNTksIDAuMDA0NDMzLCAwLjAwNDUwOSwgMC4wMDQ1MzYsIDAuMDA0NTU3LCAwLjAwNDU3LCAwLjAwNDU4IiwgXAotICAgICAgICAgICIwLjAwNDEsIDAuMDA0Mzc2LCAwLjAwNDQ2NywgMC4wMDQ1MDEsIDAuMDA0NTMxLCAwLjAwNDU0OCwgMC4wMDQ1NjMiLCBcCi0gICAgICAgICAgIjAuMDA0MDY5LCAwLjAwNDMzNCwgMC4wMDQ0MzcsIDAuMDA0NDc0LCAwLjAwNDUxLCAwLjAwNDUzMSwgMC4wMDQ1NDkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTU2ODYsIDAuMDE1Njg4LCAwLjAxNTY4NywgMC4wMTU2ODcsIDAuMDE1Njg4LCAwLjAxNTY4NywgMC4wMTU2ODMiLCBcCi0gICAgICAgICAgIjAuMDE1NjI5LCAwLjAxNTY3OCwgMC4wMTU2ODIsIDAuMDE1NjgzLCAwLjAxNTY4NCwgMC4wMTU2ODMsIDAuMDE1NjgyIiwgXAotICAgICAgICAgICIwLjAxNTU2OSwgMC4wMTU2NTcsIDAuMDE1NjcxLCAwLjAxNTY3NSwgMC4wMTU2NzksIDAuMDE1Njc4LCAwLjAxNTY4NiIsIFwKLSAgICAgICAgICAiMC4wMTU1MzEsIDAuMDE1NjQsIDAuMDE1NjYxLCAwLjAxNTY2NywgMC4wMTU2NzIsIDAuMDE1NjczLCAwLjAxNTY3NiIsIFwKLSAgICAgICAgICAiMC4wMTU1MSwgMC4wMTU2MjcsIDAuMDE1NjUsIDAuMDE1NjU5LCAwLjAxNTY2NiwgMC4wMTU2NywgMC4wMTU2NzIiLCBcCi0gICAgICAgICAgIjAuMDE1NSwgMC4wMTU2MTEsIDAuMDE1NjQxLCAwLjAxNTYyOCwgMC4wMTU2NTksIDAuMDE1NjYzLCAwLjAxNTY2NiIsIFwKLSAgICAgICAgICAiMC4wMTU1MDYsIDAuMDE1NjAxLCAwLjAxNTYzNCwgMC4wMTU2NDQsIDAuMDE1NjU2LCAwLjAxNTY2LCAwLjAxNTY2NCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1NjQ0LCAwLjAwNTY1LCAwLjAwNTY1MiwgMC4wMDU2NDksIDAuMDA1NjUsIDAuMDA1NjQ2LCAwLjAwNTY0NCIsIFwKLSAgICAgICAgICAiMC4wMDU1MzUsIDAuMDA1NTg3LCAwLjAwNTU5NCwgMC4wMDU1OTYsIDAuMDA1NTk3LCAwLjAwNTU5NiwgMC4wMDU1OTUiLCBcCi0gICAgICAgICAgIjAuMDA1NDcyLCAwLjAwNTU1NSwgMC4wMDU1NzIsIDAuMDA1NTc3LCAwLjAwNTU3OCwgMC4wMDU1NzksIDAuMDA1NTgyIiwgXAotICAgICAgICAgICIwLjAwNTQzMywgMC4wMDU1MzUsIDAuMDA1NTU4LCAwLjAwNTU2NCwgMC4wMDU1NywgMC4wMDU1NzQsIDAuMDA1NTczIiwgXAotICAgICAgICAgICIwLjAwNTQwNSwgMC4wMDU1MTYsIDAuMDA1NTQ0LCAwLjAwNTU1NCwgMC4wMDU1NjEsIDAuMDA1NTY2LCAwLjAwNTU2OSIsIFwKLSAgICAgICAgICAiMC4wMDUzNzgsIDAuMDA1NDkyLCAwLjAwNTUyNywgMC4wMDU1NCwgMC4wMDU1NTIsIDAuMDA1NTU1LCAwLjAwNTU2IiwgXAotICAgICAgICAgICIwLjAwNTM2OSwgMC4wMDU0NzYsIDAuMDA1NTE1LCAwLjAwNTUyOCwgMC4wMDU1NDEsIDAuMDA1NTUsIDAuMDA1NTU1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE0MzAxLCAwLjAxNDMwOSwgMC4wMTQzMSwgMC4wMTQzMDksIDAuMDE0MzA4LCAwLjAxNDMwNiwgMC4wMTQzMDYiLCBcCi0gICAgICAgICAgIjAuMDE0MjE0LCAwLjAxNDI4OCwgMC4wMTQyOTgsIDAuMDE0MywgMC4wMTQzMDIsIDAuMDE0MzAyLCAwLjAxNDMwMiIsIFwKLSAgICAgICAgICAiMC4wMTQxNjIsIDAuMDE0MjY5LCAwLjAxNDI4NSwgMC4wMTQyOSwgMC4wMTQyOTUsIDAuMDE0Mjk3LCAwLjAxNDI5NiIsIFwKLSAgICAgICAgICAiMC4wMTQxMjYsIDAuMDE0MjUsIDAuMDE0Mjc0LCAwLjAxNDI4MiwgMC4wMTQyODcsIDAuMDE0MjksIDAuMDE0MjkxIiwgXAotICAgICAgICAgICIwLjAxNDE2MiwgMC4wMTQyNDYsIDAuMDE0MjcsIDAuMDE0Mjc3LCAwLjAxNDI4NCwgMC4wMTQyODYsIDAuMDE0MjkxIiwgXAotICAgICAgICAgICIwLjAxNDIxOSwgMC4wMTQyNDgsIDAuMDE0MjY5LCAwLjAxNDI3NiwgMC4wMTQyODMsIDAuMDE0Mjg0LCAwLjAxNDI4OSIsIFwKLSAgICAgICAgICAiMC4wMTQzLCAwLjAxNDI2MSwgMC4wMTQyNzQsIDAuMDE0MjgyLCAwLjAxNDI4NywgMC4wMTQyODgsIDAuMDE0MjkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDM1NSwgMC4wMDQzOTUsIDAuMDA0NCwgMC4wMDQzOTksIDAuMDA0NDAxLCAwLjAwNDQwNSwgMC4wMDQ0IiwgXAotICAgICAgICAgICIwLjAwNDI1MSwgMC4wMDQ0LCAwLjAwNDQyMSwgMC4wMDQ0MjksIDAuMDA0NDM1LCAwLjAwNDQzOCwgMC4wMDQ0NCIsIFwKLSAgICAgICAgICAiMC4wMDQxMywgMC4wMDQzNTIsIDAuMDA0Mzk3LCAwLjAwNDQxMSwgMC4wMDQ0MjMsIDAuMDA0NDMsIDAuMDA0NDM1IiwgXAotICAgICAgICAgICIwLjAwNDA0NywgMC4wMDQzMDgsIDAuMDA0MzY5LCAwLjAwNDM4OSwgMC4wMDQ0MDgsIDAuMDA0NDE3LCAwLjAwNDQyNiIsIFwKLSAgICAgICAgICAiMC4wMDM5OTIsIDAuMDA0MjY3LCAwLjAwNDM0MiwgMC4wMDQzNjgsIDAuMDA0MzkxLCAwLjAwNDQwNCwgMC4wMDQ0MTUiLCBcCi0gICAgICAgICAgIjAuMDAzOTQxLCAwLjAwNDIxMiwgMC4wMDQzMDEsIDAuMDA0MzM1LCAwLjAwNDM2NSwgMC4wMDQzODIsIDAuMDA0Mzk3IiwgXAotICAgICAgICAgICIwLjAwMzkxOCwgMC4wMDQxNzMsIDAuMDA0MjcxLCAwLjAwNDMwOSwgMC4wMDQzNDYsIDAuMDA0MzY1LCAwLjAwNDM4NSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMTU5OCwgMC4wMTE2MzEsIDAuMDExNjM1LCAwLjAxMTYzNiwgMC4wMTE2MzcsIDAuMDExNjM4LCAwLjAxMTYzOCIsIFwKLSAgICAgICAgICAiMC4wMTE1NDYsIDAuMDExNjY2LCAwLjAxMTY4MiwgMC4wMTE2ODYsIDAuMDExNjksIDAuMDExNjkyLCAwLjAxMTY5NSIsIFwKLSAgICAgICAgICAiMC4wMTE0NywgMC4wMTE2NDcsIDAuMDExNjc5LCAwLjAxMTY4NSwgMC4wMTE2OTMsIDAuMDExNjk3LCAwLjAxMTcwMSIsIFwKLSAgICAgICAgICAiMC4wMTE0MjMsIDAuMDExNjI2LCAwLjAxMTY2NCwgMC4wMTE2NzUsIDAuMDExNjg3LCAwLjAxMTY5NSwgMC4wMTE2OTYiLCBcCi0gICAgICAgICAgIjAuMDExMzk4LCAwLjAxMTYwNCwgMC4wMTE2NDksIDAuMDExNjY0LCAwLjAxMTY4MSwgMC4wMTE2ODksIDAuMDExNjk0IiwgXAotICAgICAgICAgICIwLjAxMTM4OSwgMC4wMTE1ODEsIDAuMDExNjM1LCAwLjAxMTY0OSwgMC4wMTE2NywgMC4wMTE2NzgsIDAuMDExNjg5IiwgXAotICAgICAgICAgICIwLjAxMTM5NywgMC4wMTE1NjQsIDAuMDExNjIzLCAwLjAxMTY0MywgMC4wMTE2NjQsIDAuMDExNjc0LCAwLjAxMTY4NCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1NjM1LCAwLjAwNTY0NywgMC4wMDU2NDgsIDAuMDA1NjQ3LCAwLjAwNTY0NiwgMC4wMDU2NDUsIDAuMDA1NjQzIiwgXAotICAgICAgICAgICIwLjAwNTUxNSwgMC4wMDU1ODIsIDAuMDA1NTg3LCAwLjAwNTU5MSwgMC4wMDU1OTMsIDAuMDA1NTkyLCAwLjAwNTU5MiIsIFwKLSAgICAgICAgICAiMC4wMDU0NjcsIDAuMDA1NTU4LCAwLjAwNTU2NiwgMC4wMDU1NzgsIDAuMDA1NTgyLCAwLjAwNTU4MywgMC4wMDU1ODQiLCBcCi0gICAgICAgICAgIjAuMDA1NDc2LCAwLjAwNTUzNSwgMC4wMDU1NTUsIDAuMDA1NTY4LCAwLjAwNTU3MSwgMC4wMDU1NzYsIDAuMDA1NTc2IiwgXAotICAgICAgICAgICIwLjAwNTQ5NSwgMC4wMDU1MzQsIDAuMDA1NTUsIDAuMDA1NTU4LCAwLjAwNTU2NCwgMC4wMDU1NjcsIDAuMDA1NTY3IiwgXAotICAgICAgICAgICIwLjAwNTU1OSwgMC4wMDU1NDIsIDAuMDA1NTU1LCAwLjAwNTU2MSwgMC4wMDU1NjYsIDAuMDA1NTY3LCAwLjAwNTU3IiwgXAotICAgICAgICAgICIwLjAwNTYzNywgMC4wMDU1NTgsIDAuMDA1NTU4LCAwLjAwNTU2NSwgMC4wMDU1NjcsIDAuMDA1NTcsIDAuMDA1NTciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDMSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTAyMzIsIDAuMDEwMjgsIDAuMDEwMjg1LCAwLjAxMDI4NiwgMC4wMTAyODgsIDAuMDEwMjg4LCAwLjAxMDI4OCIsIFwKLSAgICAgICAgICAiMC4wMTAxNSwgMC4wMTAzMDYsIDAuMDEwMzI3LCAwLjAxMDMzMywgMC4wMTAzNDQsIDAuMDEwMzQxLCAwLjAxMDM0MiIsIFwKLSAgICAgICAgICAiMC4wMTAxMDUsIDAuMDEwMjg4LCAwLjAxMDMxOSwgMC4wMTAzMjksIDAuMDEwMzM4LCAwLjAxMDM0MywgMC4wMTAzNDYiLCBcCi0gICAgICAgICAgIjAuMDEwMDc1LCAwLjAxMDI2NywgMC4wMTAzMDgsIDAuMDEwMzIzLCAwLjAxMDMzMiwgMC4wMTAzNCwgMC4wMTAzNDYiLCBcCi0gICAgICAgICAgIjAuMDEwMDk0LCAwLjAxMDI1MiwgMC4wMTAyOTgsIDAuMDEwMzE0LCAwLjAxMDMyOSwgMC4wMTAzMzYsIDAuMDEwMzQzIiwgXAotICAgICAgICAgICIwLjAxMDE2NCwgMC4wMTAyNDUsIDAuMDEwMjkxLCAwLjAxMDMwNywgMC4wMTAzMiwgMC4wMTAzMzMsIDAuMDEwMzQiLCBcCi0gICAgICAgICAgIjAuMDEwMjQ4LCAwLjAxMDI0OSwgMC4wMTAyOTEsIDAuMDEwMzA3LCAwLjAxMDMyMSwgMC4wMTAzMzEsIDAuMDEwMzQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDUzNywgMC4wMDQ1ODYsIDAuMDA0NTk0LCAwLjAwNDU5NSwgMC4wMDQ1OTUsIDAuMDA0NTk1LCAwLjAwNDU5NCIsIFwKLSAgICAgICAgICAiMC4wMDQ0MTgsIDAuMDA0NTgzLCAwLjAwNDYwOCwgMC4wMDQ2MTYsIDAuMDA0NjIzLCAwLjAwNDYyNSwgMC4wMDQ2MjciLCBcCi0gICAgICAgICAgIjAuMDA0MzI1LCAwLjAwNDUzNywgMC4wMDQ1ODUsIDAuMDA0NjAxLCAwLjAwNDYxMywgMC4wMDQ2MTksIDAuMDA0NjI3IiwgXAotICAgICAgICAgICIwLjAwNDI2NiwgMC4wMDQ0OTksIDAuMDA0NTU4LCAwLjAwNDU3OSwgMC4wMDQ1OTYsIDAuMDA0NjA4LCAwLjAwNDYxNSIsIFwKLSAgICAgICAgICAiMC4wMDQyOTUsIDAuMDA0NDczLCAwLjAwNDU0MiwgMC4wMDQ1NjUsIDAuMDA0NTg3LCAwLjAwNDU5OSwgMC4wMDQ2MDkiLCBcCi0gICAgICAgICAgIjAuMDA0MzQsIDAuMDA0NDYyLCAwLjAwNDUyOCwgMC4wMDQ1NTIsIDAuMDA0NTc2LCAwLjAwNDU4OCwgMC4wMDQ2IiwgXAotICAgICAgICAgICIwLjAwNDQwNCwgMC4wMDQ0NTcsIDAuMDA0NTEyLCAwLjAwNDU0MywgMC4wMDQ1NjcsIDAuMDA0NTgxLCAwLjAwNDU5NCIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IE9BSTIyWDEgKgotICogLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoT0FJMjJYMSkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjE0Mjg0NjsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQTApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDg3MDI2NTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA4Njc2ODY7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwODcwMjY1OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDQwOSwgMC4wMDA0MDksIDAuMDAwNDA5LCAwLjAwMDQwOSwgMC4wMDA0MDksIDAuMDAwNDA5LCAwLjAwMDQwOSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDQxLCAwLjAwMDQxLCAwLjAwMDQxLCAwLjAwMDQxLCAwLjAwMDQxLCAwLjAwMDQxLCAwLjAwMDQxIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihBMSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwODk4MDU5OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDg5ODA1OTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA4OTQ5NDg7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNDA5LCAwLjAwMDQwOSwgMC4wMDA0MDksIDAuMDAwNDA5LCAwLjAwMDQwOSwgMC4wMDA0MDksIDAuMDAwNDA5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNDEsIDAuMDAwNDEsIDAuMDAwNDEsIDAuMDAwNDEsIDAuMDAwNDEsIDAuMDAwNDEsIDAuMDAwNDEiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA4MzU4ODY7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwODMwMjMzOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDgzNTg4NjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA0MTQsIDAuMDAwNDE1LCAwLjAwMDQxNSwgMC4wMDA0MTQsIDAuMDAwNDE0LCAwLjAwMDQxNCwgMC4wMDA0MTQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA0NjQsIDAuMDAwNDY0LCAwLjAwMDQ2NSwgMC4wMDA0NjUsIDAuMDAwNDY1LCAwLjAwMDQ2NSwgMC4wMDA0NjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIxKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA5MDcwNTE7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwOTA2OTU5OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDkwNzA1MTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA0MTQsIDAuMDAwNDE0LCAwLjAwMDQxNSwgMC4wMDA0MTQsIDAuMDAwNDE0LCAwLjAwMDQxNCwgMC4wMDA0MTQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA0NjQsIDAuMDAwNDY0LCAwLjAwMDQ2NCwgMC4wMDA0NjQsIDAuMDAwNDY1LCAwLjAwMDQ2NCwgMC4wMDA0NjQiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4xMzk2MTc7Ci0gICAgZnVuY3Rpb24gOiAiKCEoKEIwK0IxKSAoQTArQTEpKSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDMxNDEsIDAuMTQ5NzIyLCAwLjQxMjk0MSwgMC42NDUyMjIsIDAuOTUzOTE0LCAxLjU3Mjc0LCAxLjk1OTY0IiwgXAotICAgICAgICAgICIwLjExMTg2LCAwLjE1ODQzNiwgMC40MjE1NjUsIDAuNjUzODQ1LCAwLjk2MzExNywgMS41ODIxOCwgMS45Njg5IiwgXAotICAgICAgICAgICIwLjEyMTkxNywgMC4xNjg1NTksIDAuNDMxNzU5LCAwLjY2MzkxNywgMC45NzMzMDksIDEuNTkyMTQsIDEuOTc4MjUiLCBcCi0gICAgICAgICAgIjAuMTMxOTMsIDAuMTc4NTcsIDAuNDQxOTMyLCAwLjY3Mzg0MiwgMC45ODM1MTEsIDEuNjAyMzMsIDEuOTg3OTciLCBcCi0gICAgICAgICAgIjAuMTQxODI4LCAwLjE4ODQ5NywgMC40NTE4NzUsIDAuNjgzODExLCAwLjk5MzAyNiwgMS42MTI1MywgMS45OTkiLCBcCi0gICAgICAgICAgIjAuMTU3ODMxLCAwLjIwNDcxMywgMC40Njc2ODIsIDAuNzAwMDk3LCAxLjAwOTU2LCAxLjYyODg1LCAyLjAxNDYzIiwgXAotICAgICAgICAgICIwLjE3MTc4MiwgMC4yMTkwNzYsIDAuNDgxNzgsIDAuNzE0MTgxLCAxLjAyMzYxLCAxLjY0MTY5LCAyLjAyNzk2Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE5NTUxOSwgMC4yODkyNjIsIDAuODIwODkxLCAxLjI4OTQ4LCAxLjkxNDY1LCAzLjE2NTE1LCAzLjk0NzE1IiwgXAotICAgICAgICAgICIwLjE5NTU1NiwgMC4yODkzMDksIDAuODIwNjI5LCAxLjI4OTQ2LCAxLjkxNDk3LCAzLjE2NDYyLCAzLjk0NzI4IiwgXAotICAgICAgICAgICIwLjE5NTg2NywgMC4yODkyODgsIDAuODIwODE5LCAxLjI4OTQ0LCAxLjkxNTAzLCAzLjE2NTE3LCAzLjk0NzMzIiwgXAotICAgICAgICAgICIwLjE5Nzc0MiwgMC4yODk5NTQsIDAuODIwOCwgMS4yODk3MywgMS45MTQ4MywgMy4xNjU1NCwgMy45NDcwMSIsIFwKLSAgICAgICAgICAiMC4yMDA3NTEsIDAuMjkxODE2LCAwLjgyMDY2LCAxLjI4OTczLCAxLjkxNDc2LCAzLjE2NDk0LCAzLjk0Njg4IiwgXAotICAgICAgICAgICIwLjIwNzQ0LCAwLjI5Njc2LCAwLjgyMDgzOCwgMS4yODk3MywgMS45MTUsIDMuMTY0NzYsIDMuOTQ1ODEiLCBcCi0gICAgICAgICAgIjAuMjE0NTE5LCAwLjMwMjYzNiwgMC44MjEzNzUsIDEuMjg5NDIsIDEuOTE0NjYsIDMuMTY0NjgsIDMuOTQ2NjYiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTA4MzQ5LCAwLjE1NTA5OSwgMC40MTk3NjYsIDAuNjUzMjc0LCAwLjk2MzYwOSwgMS41ODU3NSwgMS45NzQ4MSIsIFwKLSAgICAgICAgICAiMC4xMTgwOTgsIDAuMTY0OTIxLCAwLjQyOTQ0NSwgMC42NjI3MjIsIDAuOTczMzczLCAxLjU5NTk3LCAxLjk4MzU2IiwgXAotICAgICAgICAgICIwLjEyOTE2MiwgMC4xNzYwMywgMC40NDA4NjIsIDAuNjc0MTE5LCAwLjk4NTI5NywgMS42MDcyNCwgMS45OTU5NSIsIFwKLSAgICAgICAgICAiMC4xNDAxNTEsIDAuMTg3MDY4LCAwLjQ1MTc2NywgMC42ODQ5NjMsIDAuOTk2MTg5LCAxLjYxODEsIDIuMDA2MiIsIFwKLSAgICAgICAgICAiMC4xNTEwNzcsIDAuMTk3OTIxLCAwLjQ2MjY5NiwgMC42OTU5OTksIDEuMDA3MzQsIDEuNjI4OTIsIDIuMDE4MzMiLCBcCi0gICAgICAgICAgIjAuMTY4NDU1LCAwLjIxNTI0NCwgMC40ODAzNDYsIDAuNzEzNTcxLCAxLjAyNDU4LCAxLjY0NzM0LCAyLjAzNDc3IiwgXAotICAgICAgICAgICIwLjE4MzM4MiwgMC4yMzA3OTgsIDAuNDk1NTMyLCAwLjcyOTAzNCwgMS4wMzk5NywgMS42NjE1OSwgMi4wNTEwNCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xODQ3NzQsIDAuMjc2OTkyLCAwLjc5ODg2NCwgMS4yNjAwNiwgMS44NzM1OCwgMy4xMDEzOSwgMy44NzA0MiIsIFwKLSAgICAgICAgICAiMC4xODQ2NjcsIDAuMjc2ODA0LCAwLjc5ODkxNCwgMS4yNTk5NSwgMS44NzMyLCAzLjEwMTYxLCAzLjg2NzY0IiwgXAotICAgICAgICAgICIwLjE4NDY4OSwgMC4yNzY4MDgsIDAuNzk4OTQyLCAxLjI1OTkyLCAxLjg3NDQ0LCAzLjEwMzM3LCAzLjg3MDMyIiwgXAotICAgICAgICAgICIwLjE4NTg3NywgMC4yNzcwNTYsIDAuNzk4OTAyLCAxLjI2MDA4LCAxLjg3NDQ3LCAzLjEwMjM2LCAzLjg2OTM5IiwgXAotICAgICAgICAgICIwLjE4ODQxNSwgMC4yNzg0NDMsIDAuNzk5MDk0LCAxLjI1OTQ1LCAxLjg3NDY0LCAzLjEwMTg4LCAzLjg2OTk4IiwgXAotICAgICAgICAgICIwLjE5NDEzLCAwLjI4MjE1OCwgMC43OTg4NjEsIDEuMjU5OCwgMS44NzM3NCwgMy4xMDE4NiwgMy44Njc3OSIsIFwKLSAgICAgICAgICAiMC4yMDAxMDUsIDAuMjg3NDczLCAwLjc5OTIwMSwgMS4yNTk0NiwgMS44NzM3LCAzLjEwMDYzLCAzLjg2OTUyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkExIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTk5MzUsIDAuMTQ2NTM5LCAwLjQwOTczNiwgMC42NDE5MzgsIDAuOTUxMjczLCAxLjU2OTUsIDEuOTU1NzkiLCBcCi0gICAgICAgICAgIjAuMTA4ODkxLCAwLjE1NTUwNSwgMC40MTg1NjQsIDAuNjUwOTA1LCAwLjk2MDE0NywgMS41Nzg3NiwgMS45NjYwNyIsIFwKLSAgICAgICAgICAiMC4xMjAyMDksIDAuMTY2ODM4LCAwLjQzMDM2NCwgMC42NjIzNjUsIDAuOTcxNzYzLCAxLjU5MDM4LCAxLjk3NzE4IiwgXAotICAgICAgICAgICIwLjEzMTcyOCwgMC4xNzgzMjksIDAuNDQxNjEsIDAuNjczNTkyLCAwLjk4MzEwNywgMS42MDIwNCwgMS45ODgwOSIsIFwKLSAgICAgICAgICAiMC4xNDMyNDMsIDAuMTg5ODI5LCAwLjQ1MzEyMiwgMC42ODUyNTMsIDAuOTk0MjYsIDEuNjEzMjIsIDIuMDAwNTUiLCBcCi0gICAgICAgICAgIjAuMTYxODc1LCAwLjIwODI5MSwgMC40NzE1NCwgMC43MDM1MjcsIDEuMDEyODQsIDEuNjMxMjMsIDIuMDE4MTciLCBcCi0gICAgICAgICAgIjAuMTc4Njk5LCAwLjIyNDYwNiwgMC40ODc2MzQsIDAuNzE5NjU4LCAxLjAyODg3LCAxLjY0Nzk1LCAyLjAzMzgxIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE5NTUyLCAwLjI4OTM3MiwgMC44MjA2NDksIDEuMjg5ODIsIDEuOTE0NzYsIDMuMTY1MTMsIDMuOTQ2ODUiLCBcCi0gICAgICAgICAgIjAuMTk1NTE3LCAwLjI4OTMwNiwgMC44MjA4NTMsIDEuMjg5NDYsIDEuOTE1MDUsIDMuMTY1MTksIDMuOTQ3NyIsIFwKLSAgICAgICAgICAiMC4xOTYxMjgsIDAuMjg5MjU3LCAwLjgyMDg0LCAxLjI4OTQ3LCAxLjkxNDgxLCAzLjE2NTQxLCAzLjk0Njk3IiwgXAotICAgICAgICAgICIwLjE5OTM5MSwgMC4yOTAzNTUsIDAuODIwNjYsIDEuMjg5NDYsIDEuOTE0OTksIDMuMTY1NCwgMy45NDczMyIsIFwKLSAgICAgICAgICAiMC4yMDQ0NjksIDAuMjkzMzQ0LCAwLjgyMDYzMiwgMS4yODk0NSwgMS45MTQ0LCAzLjE2NDY2LCAzLjk0NjE1IiwgXAotICAgICAgICAgICIwLjIxNDg2MywgMC4zMDA4NjEsIDAuODIwNjI2LCAxLjI4OTY5LCAxLjkxNDkzLCAzLjE2NTAzLCAzLjk0NzIxIiwgXAotICAgICAgICAgICIwLjIyNDgwMSwgMC4zMDkyOTUsIDAuODIxMzMyLCAxLjI4OTUyLCAxLjkxNDY0LCAzLjE2NTI5LCAzLjk0NjM4Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwMzc4NiwgMC4xNTA1NTYsIDAuNDE1MDYyLCAwLjY0ODMzNywgMC45NTkxMDgsIDEuNTgwODUsIDEuOTY5NDQiLCBcCi0gICAgICAgICAgIjAuMTEzNjE2LCAwLjE2MDM5OCwgMC40MjUwMDQsIDAuNjU4MzQ5LCAwLjk2OTA2MiwgMS41OTAzLCAxLjk4MDE4IiwgXAotICAgICAgICAgICIwLjEyNDYyNiwgMC4xNzE0OTgsIDAuNDM2MzIzLCAwLjY2OTU3OCwgMC45ODA2MjUsIDEuNjAyMDksIDEuOTkxNTIiLCBcCi0gICAgICAgICAgIjAuMTM1NTQ2LCAwLjE4MjQ3NywgMC40NDcyNzcsIDAuNjgwNDA1LCAwLjk5MTUyMiwgMS42MTM1LCAyLjAwMTIxIiwgXAotICAgICAgICAgICIwLjE0NjI3LCAwLjE5MzI4OSwgMC40NTgxNDIsIDAuNjkxMzM1LCAxLjAwMjI2LCAxLjYyNDQxLCAyLjAxMzA0IiwgXAotICAgICAgICAgICIwLjE2MzYwOSwgMC4yMTA2MDgsIDAuNDc1NzA2LCAwLjcwOTI1NCwgMS4wMTk5NiwgMS42NDI3MiwgMi4wMzAyOCIsIFwKLSAgICAgICAgICAiMC4xNzg1MDksIDAuMjI1OTQzLCAwLjQ5MDc2LCAwLjcyNDI4NSwgMS4wMzU0NCwgMS42NTY5MywgMi4wNDYyMyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNzkzNjgsIDAuMjcxNDA0LCAwLjc5MzIwOCwgMS4yNTQwMiwgMS44NjgwNCwgMy4wOTUyNiwgMy44NjI0NSIsIFwKLSAgICAgICAgICAiMC4xNzkyNzQsIDAuMjcxMzY2LCAwLjc5MzEwOCwgMS4yNTQxLCAxLjg2NzUzLCAzLjA5NDM2LCAzLjg2Mjk4IiwgXAotICAgICAgICAgICIwLjE3OTI2NywgMC4yNzE0NzIsIDAuNzkzMjQxLCAxLjI1NDA2LCAxLjg2OTE3LCAzLjA5NDgzLCAzLjg2MzY3IiwgXAotICAgICAgICAgICIwLjE4MDY1MiwgMC4yNzE2MTksIDAuNzkzMDk3LCAxLjI1MzU2LCAxLjg2ODEyLCAzLjA5NywgMy44NjEzOCIsIFwKLSAgICAgICAgICAiMC4xODI5NjksIDAuMjcyODk2LCAwLjc5MzM3MywgMS4yNTQwNSwgMS44Njc0NCwgMy4wOTY1OCwgMy44NjI3NyIsIFwKLSAgICAgICAgICAiMC4xODkwNDcsIDAuMjc3MjAxLCAwLjc5MzA5MSwgMS4yNTM3OCwgMS44Njc3NywgMy4wOTYxMiwgMy44NjE3MiIsIFwKLSAgICAgICAgICAiMC4xOTU0OTUsIDAuMjgyNDgzLCAwLjc5MzY2NiwgMS4yNTM1OCwgMS44NjgzNCwgMy4wOTQ1MSwgMy44NjMyOCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk0OTQ1LCAwLjE0MTYyNSwgMC40MDY0MTcsIDAuNjM5ODA1LCAwLjk1MTE5MywgMS41NzM3OCwgMS45NjI3NSIsIFwKLSAgICAgICAgICAiMC4xMDM3NjksIDAuMTUwNDkyLCAwLjQxNTE4NywgMC42NDg3NjksIDAuOTYwMDcyLCAxLjU4Mjc1LCAxLjk3MjM3IiwgXAotICAgICAgICAgICIwLjExMzc2NSwgMC4xNjA1OTMsIDAuNDI1MzczLCAwLjY1ODkzMSwgMC45NzAzMjEsIDEuNTkzMDgsIDEuOTgxOTEiLCBcCi0gICAgICAgICAgIjAuMTIzNzIxLCAwLjE3MDU4NywgMC40MzU1NDIsIDAuNjY5MDYzLCAwLjk4MDQ3MiwgMS42MDMsIDEuOTkxOSIsIFwKLSAgICAgICAgICAiMC4xMzM4MDQsIDAuMTgwNDY5LCAwLjQ0NTQ5MSwgMC42NzkwMDIsIDAuOTkwMzM3LCAxLjYxMzExLCAyLjAwMTYyIiwgXAotICAgICAgICAgICIwLjE0OTM4NSwgMC4xOTY2ODMsIDAuNDYxMjM3LCAwLjY5NTMxMywgMS4wMDY2OSwgMS42Mjk5MywgMi4wMTgwNiIsIFwKLSAgICAgICAgICAiMC4xNjM0NTIsIDAuMjEwMjA5LCAwLjQ3NTM0NCwgMC43MDkwNTYsIDEuMDIwNDYsIDEuNjQyOTksIDIuMDMyODciKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTg3NjMyLCAwLjI4MTc5MSwgMC44MTYyOCwgMS4yODc5NywgMS45MTcyOSwgMy4xNzU1NSwgMy45NjY3IiwgXAotICAgICAgICAgICIwLjE4NzYzNCwgMC4yODE4MDEsIDAuODE2MTQ0LCAxLjI4ODA0LCAxLjkxNzExLCAzLjE3NjM2LCAzLjk2MTYiLCBcCi0gICAgICAgICAgIjAuMTg4MDg4LCAwLjI4MTc3NywgMC44MTYyMiwgMS4yODc5MiwgMS45MTY5NCwgMy4xNzQ4OCwgMy45NjY3MSIsIFwKLSAgICAgICAgICAiMC4xOTAyMjMsIDAuMjgyNjYzLCAwLjgxNjEwMywgMS4yODc5MiwgMS45MTY5MiwgMy4xNzQ4NSwgMy45NjYwMyIsIFwKLSAgICAgICAgICAiMC4xOTM2NzQsIDAuMjg0NjAxLCAwLjgxNjA5NywgMS4yODc3NywgMS45MTY1NiwgMy4xNzU0OCwgMy45NjE0OSIsIFwKLSAgICAgICAgICAiMC4yMDA0MzQsIDAuMjg5OTI2LCAwLjgxNjE2NCwgMS4yODc5MywgMS45MTY1OSwgMy4xNzU0MSwgMy45NjE0OCIsIFwKLSAgICAgICAgICAiMC4yMDgwNzMsIDAuMjk1MjMzLCAwLjgxNjg2OSwgMS4yODc4MSwgMS45MTY2NCwgMy4xNzQ2NSwgMy45NjUzNSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDExMjYsIDAuMTQ3OTMsIDAuNDEyNDg1LCAwLjY0NTg5MiwgMC45NTY4MjIsIDEuNTc4ODYsIDEuOTY2NTQiLCBcCi0gICAgICAgICAgIjAuMTEwMzA2LCAwLjE1NzMwOCwgMC40MjE4NDgsIDAuNjU1MzcyLCAwLjk2NjQ5LCAxLjU4ODAyLCAxLjk3NjkiLCBcCi0gICAgICAgICAgIjAuMTIxOTU2LCAwLjE2ODgwMiwgMC40MzMyMzMsIDAuNjY2NTk1LCAwLjk3NzQ4LCAxLjU5OTA0LCAxLjk4ODg2IiwgXAotICAgICAgICAgICIwLjEzMzQ2NywgMC4xODA1MzEsIDAuNDQ0OTUzLCAwLjY3ODA3OSwgMC45ODkwMiwgMS42MTEwMiwgMi4wMDAyNSIsIFwKLSAgICAgICAgICAiMC4xNDUyNTksIDAuMTkyMDA4LCAwLjQ1NjU3MywgMC42OTAxNzMsIDEuMDAwOTksIDEuNjIzMjksIDIuMDExNzIiLCBcCi0gICAgICAgICAgIjAuMTY0ODUyLCAwLjIxMDkwNiwgMC40NzU1MDIsIDAuNzA4NjUzLCAxLjAxOTUyLCAxLjY0MTk1LCAyLjAyOTc4IiwgXAotICAgICAgICAgICIwLjE4MTgxMywgMC4yMjgxMTksIDAuNDkxODcyLCAwLjcyNTMzLCAxLjAzNjAzLCAxLjY1Nzc0LCAyLjA0NzMzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE4NDY0MSwgMC4yNzY4MTQsIDAuNzk5MjY0LCAxLjI1OTc0LCAxLjg3NDE0LCAzLjEwMzExLCAzLjg2NzY2IiwgXAotICAgICAgICAgICIwLjE4NDYzNSwgMC4yNzY3ODQsIDAuNzk5MTQ2LCAxLjI1OTY4LCAxLjg3NDc5LCAzLjEwMjE2LCAzLjg2OTA1IiwgXAotICAgICAgICAgICIwLjE4NDk5OSwgMC4yNzY3OSwgMC43OTg5NCwgMS4yNTk3NSwgMS44NzM1MywgMy4xMDE2NiwgMy44Njg5NiIsIFwKLSAgICAgICAgICAiMC4xODc4MjMsIDAuMjc3NTAxLCAwLjc5OTA2OSwgMS4yNjAwOCwgMS44NzM3MywgMy4xMDIyLCAzLjg3MDE3IiwgXAotICAgICAgICAgICIwLjE5Mjc1MSwgMC4yODAyNjIsIDAuNzk4OTA2LCAxLjI1OTQ0LCAxLjg3MzYyLCAzLjEwMjQzLCAzLjg2ODc3IiwgXAotICAgICAgICAgICIwLjIwMjAxNSwgMC4yODczNzYsIDAuNzk4ODk1LCAxLjI2MDA5LCAxLjg3MzY4LCAzLjEwMTU1LCAzLjg2Nzk3IiwgXAotICAgICAgICAgICIwLjIxMTc3NCwgMC4yOTQ2OTEsIDAuNzk5NTMyLCAxLjI1OTM3LCAxLjg3MzY5LCAzLjEwMDczLCAzLjg2OTA0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIxIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTE2NTgsIDAuMTM4MzExLCAwLjQwMzAwNiwgMC42MzY0ODksIDAuOTQ3NzcxLCAxLjU3MDUsIDEuOTU5MjEiLCBcCi0gICAgICAgICAgIjAuMTAwNjI2LCAwLjE0NzQwOCwgMC40MTIxNjYsIDAuNjQ1NjI1LCAwLjk1NzA5MSwgMS41ODAxOCwgMS45Njg0NyIsIFwKLSAgICAgICAgICAiMC4xMTE5MjksIDAuMTU4Mzg4LCAwLjQyMzUyLCAwLjY1NzA0NywgMC45Njg2LCAxLjU5MTU4LCAxLjk3OTkyIiwgXAotICAgICAgICAgICIwLjEyMzM3MiwgMC4xNzAyMzUsIDAuNDM1MDcyLCAwLjY2ODU5NCwgMC45Nzk5NzksIDEuNjAyNSwgMS45OTEyNCIsIFwKLSAgICAgICAgICAiMC4xMzQ5NzQsIDAuMTgxNjYxLCAwLjQ0NjU2NSwgMC42ODAxMDUsIDAuOTkxMzk3LCAxLjYxMzkyLCAyLjAwMzQ2IiwgXAotICAgICAgICAgICIwLjE1MzcyNSwgMC4yMDAyMjEsIDAuNDY0OTI3LCAwLjY5ODQxNywgMS4wMDk4NiwgMS42MzIyNiwgMi4wMjE1MSIsIFwKLSAgICAgICAgICAiMC4xNzAwODIsIDAuMjE2MzI1LCAwLjQ4MTAzMSwgMC43MTQ1ODUsIDEuMDI1OTUsIDEuNjQ4NDMsIDIuMDM3MyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xODc2NSwgMC4yODE3OTIsIDAuODE2MjY1LCAxLjI4ODA0LCAxLjkxNjg3LCAzLjE3NjcyLCAzLjk2NjY5IiwgXAotICAgICAgICAgICIwLjE4NzYxOCwgMC4yODE4MDIsIDAuODE2MTg5LCAxLjI4Nzc4LCAxLjkxNzA1LCAzLjE3NTUxLCAzLjk2MTgzIiwgXAotICAgICAgICAgICIwLjE4ODUxNywgMC4yODE4MDQsIDAuODE2MDcsIDEuMjg4LCAxLjkxNjk0LCAzLjE3NTUzLCAzLjk2MTgxIiwgXAotICAgICAgICAgICIwLjE5MjE5NywgMC4yODMxMzMsIDAuODE2MDg3LCAxLjI4NzkzLCAxLjkxNzE1LCAzLjE3NTUyLCAzLjk2MTY0IiwgXAotICAgICAgICAgICIwLjE5NzY1MSwgMC4yODY0NTMsIDAuODE2MjUyLCAxLjI4Nzk1LCAxLjkxNjgyLCAzLjE3NDQ5LCAzLjk2MTkzIiwgXAotICAgICAgICAgICIwLjIwODIzMiwgMC4yOTQ0NDEsIDAuODE2MjE4LCAxLjI4Nzk1LCAxLjkxNzA5LCAzLjE3NDY1LCAzLjk2MTI5IiwgXAotICAgICAgICAgICIwLjIxOTA4OCwgMC4zMDMxMiwgMC44MTY5MSwgMS4yODgwMSwgMS45MTY2NCwgMy4xNzQ5OSwgMy45NjE2OCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTY1MzMsIDAuMTQzMjc5LCAwLjQwNzcyMiwgMC42NDA4MzYsIDAuOTUxODM1LCAxLjU3Mzc4LCAxLjk2MTkxIiwgXAotICAgICAgICAgICIwLjEwNTc1NCwgMC4xNTI2MDMsIDAuNDE3MDg5LCAwLjY1MDQ5MSwgMC45NjE3MDUsIDEuNTgzNjUsIDEuOTcxNTUiLCBcCi0gICAgICAgICAgIjAuMTE3MzQ4LCAwLjE2NDA2NCwgMC40Mjg1OTcsIDAuNjYxOTY1LCAwLjk3MjgwNCwgMS41OTQ1MSwgMS45ODQwNSIsIFwKLSAgICAgICAgICAiMC4xMjg5ODcsIDAuMTc1ODMyLCAwLjQ0MDMxLCAwLjY3MzQwMiwgMC45ODQzMzYsIDEuNjA2MzEsIDEuOTk1NDQiLCBcCi0gICAgICAgICAgIjAuMTQwNTA1LCAwLjE4NzI5OSwgMC40NTIxNjEsIDAuNjg1NDc4LCAwLjk5NTk1LCAxLjYxODIyLCAyLjAwNjY2IiwgXAotICAgICAgICAgICIwLjE1OTk3OCwgMC4yMDYxMiwgMC40NzA4MzksIDAuNzAzOTQ1LCAxLjAxNDgxLCAxLjYzNzE5LCAyLjAyNTAyIiwgXAotICAgICAgICAgICIwLjE3Njg4MSwgMC4yMjMzNjQsIDAuNDg3MTI0LCAwLjcyMDYwMywgMS4wMzEzLCAxLjY1Mjk5LCAyLjA0MjU0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE3OTIxMSwgMC4yNzEzMzQsIDAuNzkzMzYzLCAxLjI1MzY1LCAxLjg2OCwgMy4wOTY1MywgMy44NjMxOSIsIFwKLSAgICAgICAgICAiMC4xNzkzMTIsIDAuMjcxNDQsIDAuNzkzNDI3LCAxLjI1Mzk1LCAxLjg2Nzk5LCAzLjA5NTQsIDMuODYyMDgiLCBcCi0gICAgICAgICAgIjAuMTc5NTE0LCAwLjI3MTI4NSwgMC43OTMxMzIsIDEuMjUzODcsIDEuODY3MzYsIDMuMDk2MDQsIDMuODYyNTkiLCBcCi0gICAgICAgICAgIjAuMTgyNjM0LCAwLjI3MjE1MywgMC43OTMzMjUsIDEuMjU0MSwgMS44NjczOSwgMy4wOTYwMywgMy44NjM3OSIsIFwKLSAgICAgICAgICAiMC4xODc2MTEsIDAuMjc0ODg3LCAwLjc5MzEyOSwgMS4yNTM1NCwgMS44Njc1OSwgMy4wOTYyMSwgMy44NjIzOSIsIFwKLSAgICAgICAgICAiMC4xOTcxODcsIDAuMjgyMDk2LCAwLjc5MzAzNiwgMS4yNTQxNSwgMS44Njc2MywgMy4wOTUzLCAzLjg2MTY0IiwgXAotICAgICAgICAgICIwLjIwNzI4NywgMC4yOTAxMjEsIDAuNzkzNzcyLCAxLjI1Mzg3LCAxLjg2NzY2LCAzLjA5NDUyLCAzLjg2MjQ2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzU3MywgMC4wMDM1NzQsIDAuMDAzNTczLCAwLjAwMzU3MiwgMC4wMDM1NzEsIDAuMDAzNTY5LCAwLjAwMzU2OCIsIFwKLSAgICAgICAgICAiMC4wMDM1NiwgMC4wMDM1NjEsIDAuMDAzNTYzLCAwLjAwMzU2MywgMC4wMDM1NjIsIDAuMDAzNTYxLCAwLjAwMzU1OSIsIFwKLSAgICAgICAgICAiMC4wMDM1NTMsIDAuMDAzNTU2LCAwLjAwMzU2LCAwLjAwMzU2LCAwLjAwMzU2LCAwLjAwMzU1OSwgMC4wMDM1NiIsIFwKLSAgICAgICAgICAiMC4wMDM1NDksIDAuMDAzNTUyLCAwLjAwMzU1OCwgMC4wMDM1NjEsIDAuMDAzNTU5LCAwLjAwMzU1OCwgMC4wMDM1NTciLCBcCi0gICAgICAgICAgIjAuMDAzNTQ1LCAwLjAwMzU1LCAwLjAwMzU1NiwgMC4wMDM1NTgsIDAuMDAzNTU5LCAwLjAwMzU1OCwgMC4wMDM1NTYiLCBcCi0gICAgICAgICAgIjAuMDAzNTQzLCAwLjAwMzU0NywgMC4wMDM1NTEsIDAuMDAzNTU4LCAwLjAwMzU1OCwgMC4wMDM1NTcsIDAuMDAzNTU2IiwgXAotICAgICAgICAgICIwLjAwMzU0NCwgMC4wMDM1NDgsIDAuMDAzNTU0LCAwLjAwMzU1NywgMC4wMDM1NTcsIDAuMDAzNTU2LCAwLjAwMzU1NSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDk0NSwgMC4wMDA5NDYsIDAuMDAwOTQ2LCAwLjAwMDk0NSwgMC4wMDA5NDUsIDAuMDAwOTQ0LCAwLjAwMDk0NCIsIFwKLSAgICAgICAgICAiMC4wMDA5MjYsIDAuMDAwOTI5LCAwLjAwMDkzMiwgMC4wMDA5MzMsIDAuMDAwOTMzLCAwLjAwMDkzMywgMC4wMDA5MzIiLCBcCi0gICAgICAgICAgIjAuMDAwOTE2LCAwLjAwMDkyLCAwLjAwMDkyOCwgMC4wMDA5MjksIDAuMDAwOTMsIDAuMDAwOTMsIDAuMDAwOTMiLCBcCi0gICAgICAgICAgIjAuMDAwOTA3LCAwLjAwMDkxMywgMC4wMDA5MjUsIDAuMDAwOTI3LCAwLjAwMDkyOCwgMC4wMDA5MjksIDAuMDAwOTI5IiwgXAotICAgICAgICAgICIwLjAwMDkwMSwgMC4wMDA5MDksIDAuMDAwOTIyLCAwLjAwMDkyNSwgMC4wMDA5MjcsIDAuMDAwOTI4LCAwLjAwMDkyOCIsIFwKLSAgICAgICAgICAiMC4wMDA4OTQsIDAuMDAwOTAyLCAwLjAwMDkxOSwgMC4wMDA5MjMsIDAuMDAwOTI1LCAwLjAwMDkyNiwgMC4wMDA5MjciLCBcCi0gICAgICAgICAgIjAuMDAwODkxLCAwLjAwMDg5OCwgMC4wMDA5MTYsIDAuMDAwOTIxLCAwLjAwMDkyNCwgMC4wMDA5MjUsIDAuMDAwOTI2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzIzMiwgMC4wMDMyMzIsIDAuMDAzMjMyLCAwLjAwMzIzMSwgMC4wMDMyMzEsIDAuMDAzMjI5LCAwLjAwMzIyNyIsIFwKLSAgICAgICAgICAiMC4wMDMyMTMsIDAuMDAzMjE2LCAwLjAwMzIyLCAwLjAwMzIyMSwgMC4wMDMyMiwgMC4wMDMyMTksIDAuMDAzMjE4IiwgXAotICAgICAgICAgICIwLjAwMzIwNCwgMC4wMDMyMDksIDAuMDAzMjE2LCAwLjAwMzIxNywgMC4wMDMyMTcsIDAuMDAzMjE2LCAwLjAwMzIxNSIsIFwKLSAgICAgICAgICAiMC4wMDMyLCAwLjAwMzIwNSwgMC4wMDMyMTMsIDAuMDAzMjE1LCAwLjAwMzIxNiwgMC4wMDMyMTUsIDAuMDAzMjE0IiwgXAotICAgICAgICAgICIwLjAwMzIsIDAuMDAzMjA0LCAwLjAwMzIxMiwgMC4wMDMyMTQsIDAuMDAzMjE1LCAwLjAwMzIxNCwgMC4wMDMyMTQiLCBcCi0gICAgICAgICAgIjAuMDAzMjA2LCAwLjAwMzIwNywgMC4wMDMyMTIsIDAuMDAzMjE0LCAwLjAwMzIxNSwgMC4wMDMyMTQsIDAuMDAzMjEzIiwgXAotICAgICAgICAgICIwLjAwMzIxOCwgMC4wMDMyMTMsIDAuMDAzMjE0LCAwLjAwMzIxNSwgMC4wMDMyMTUsIDAuMDAzMjE0LCAwLjAwMzIxMyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDY1NCwgMC4wMDA2NTYsIDAuMDAwNjU4LCAwLjAwMDY1OSwgMC4wMDA2NTksIDAuMDAwNjU5LCAwLjAwMDY1OSIsIFwKLSAgICAgICAgICAiMC4wMDA2NDUsIDAuMDAwNjUzLCAwLjAwMDY2NSwgMC4wMDA2NjcsIDAuMDAwNjY4LCAwLjAwMDY2OSwgMC4wMDA2NjkiLCBcCi0gICAgICAgICAgIjAuMDAwNjI0LCAwLjAwMDYzOCwgMC4wMDA2NiwgMC4wMDA2NjUsIDAuMDAwNjY3LCAwLjAwMDY2OSwgMC4wMDA2NyIsIFwKLSAgICAgICAgICAiMC4wMDA2MDYsIDAuMDAwNjI0LCAwLjAwMDY1NCwgMC4wMDA2NjEsIDAuMDAwNjY1LCAwLjAwMDY2OCwgMC4wMDA2NjkiLCBcCi0gICAgICAgICAgIjAuMDAwNTkzLCAwLjAwMDYxMiwgMC4wMDA2NDgsIDAuMDAwNjU3LCAwLjAwMDY2MiwgMC4wMDA2NjYsIDAuMDAwNjY3IiwgXAotICAgICAgICAgICIwLjAwMDU3NiwgMC4wMDA1OTcsIDAuMDAwNjQsIDAuMDAwNjUxLCAwLjAwMDY1OCwgMC4wMDA2NjQsIDAuMDAwNjY1IiwgXAotICAgICAgICAgICIwLjAwMDU2NywgMC4wMDA1ODcsIDAuMDAwNjMzLCAwLjAwMDY0NiwgMC4wMDA2NTUsIDAuMDAwNjYyLCAwLjAwMDY2MyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI0MzksIDAuMDAyNDQsIDAuMDAyNDQyLCAwLjAwMjQ0MywgMC4wMDI0NDMsIDAuMDAyNDQzLCAwLjAwMjQ0MiIsIFwKLSAgICAgICAgICAiMC4wMDI0MzQsIDAuMDAyNDQsIDAuMDAyNDQ4LCAwLjAwMjQ1LCAwLjAwMjQ1LCAwLjAwMjQ1MSwgMC4wMDI0NTEiLCBcCi0gICAgICAgICAgIjAuMDAyNDIyLCAwLjAwMjQzMSwgMC4wMDI0NDUsIDAuMDAyNDQ4LCAwLjAwMjQ1LCAwLjAwMjQ1MSwgMC4wMDI0NSIsIFwKLSAgICAgICAgICAiMC4wMDI0MTIsIDAuMDAyNDIzLCAwLjAwMjQ0MiwgMC4wMDI0NDYsIDAuMDAyNDQ5LCAwLjAwMjQ1MiwgMC4wMDI0NTIiLCBcCi0gICAgICAgICAgIjAuMDAyNDA1LCAwLjAwMjQxNywgMC4wMDI0MzksIDAuMDAyNDQzLCAwLjAwMjQ0NywgMC4wMDI0NSwgMC4wMDI0NTEiLCBcCi0gICAgICAgICAgIjAuMDAyMzk4LCAwLjAwMjQxLCAwLjAwMjQzMiwgMC4wMDI0NDEsIDAuMDAyNDQ1LCAwLjAwMjQ0OSwgMC4wMDI0NDkiLCBcCi0gICAgICAgICAgIjAuMDAyMzk1LCAwLjAwMjQwNiwgMC4wMDI0MzEsIDAuMDAyNDM5LCAwLjAwMjQ0MywgMC4wMDI0NDcsIDAuMDAyNDUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDA5NDUsIDAuMDAwOTQ1LCAwLjAwMDk0NiwgMC4wMDA5NDYsIDAuMDAwOTQ4LCAwLjAwMDk0NSwgMC4wMDA5NDQiLCBcCi0gICAgICAgICAgIjAuMDAwOTIzLCAwLjAwMDkyOCwgMC4wMDA5MzMsIDAuMDAwOTM0LCAwLjAwMDkzNCwgMC4wMDA5MzQsIDAuMDAwOTMzIiwgXAotICAgICAgICAgICIwLjAwMDkxNCwgMC4wMDA5MTksIDAuMDAwOTI4LCAwLjAwMDkzLCAwLjAwMDkzMSwgMC4wMDA5MzEsIDAuMDAwOTMiLCBcCi0gICAgICAgICAgIjAuMDAwOTEzLCAwLjAwMDkxNSwgMC4wMDA5MjcsIDAuMDAwOTI4LCAwLjAwMDkyOSwgMC4wMDA5MywgMC4wMDA5MjkiLCBcCi0gICAgICAgICAgIjAuMDAwOTE0LCAwLjAwMDkxOCwgMC4wMDA5MjYsIDAuMDAwOTI3LCAwLjAwMDkyOCwgMC4wMDA5MjgsIDAuMDAwOTI4IiwgXAotICAgICAgICAgICIwLjAwMDkyMywgMC4wMDA5MiwgMC4wMDA5MjYsIDAuMDAwOTI3LCAwLjAwMDkyOCwgMC4wMDA5MjgsIDAuMDAwOTI4IiwgXAotICAgICAgICAgICIwLjAwMDkzNCwgMC4wMDA5MywgMC4wMDA5MjcsIDAuMDAwOTI4LCAwLjAwMDkyOSwgMC4wMDA5MjgsIDAuMDAwOTI4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjA5NSwgMC4wMDIwOTcsIDAuMDAyMDk5LCAwLjAwMjEsIDAuMDAyMSwgMC4wMDIxLCAwLjAwMjEiLCBcCi0gICAgICAgICAgIjAuMDAyMDg2LCAwLjAwMjA5NCwgMC4wMDIxMDQsIDAuMDAyMTA2LCAwLjAwMjEwNywgMC4wMDIxMDgsIDAuMDAyMTA4IiwgXAotICAgICAgICAgICIwLjAwMjA3MiwgMC4wMDIwODIsIDAuMDAyMSwgMC4wMDIxMDQsIDAuMDAyMTA2LCAwLjAwMjEwOCwgMC4wMDIxMDgiLCBcCi0gICAgICAgICAgIjAuMDAyMDY0LCAwLjAwMjA3NiwgMC4wMDIwOTcsIDAuMDAyMTAyLCAwLjAwMjEwNSwgMC4wMDIxMDgsIDAuMDAyMTA4IiwgXAotICAgICAgICAgICIwLjAwMjA2LCAwLjAwMjA3MiwgMC4wMDIwOTQsIDAuMDAyMSwgMC4wMDIxMDQsIDAuMDAyMTA2LCAwLjAwMjEwNyIsIFwKLSAgICAgICAgICAiMC4wMDIwNjQsIDAuMDAyMDcsIDAuMDAyMDkxLCAwLjAwMjA5OCwgMC4wMDIxMDIsIDAuMDAyMTA2LCAwLjAwMjEwNyIsIFwKLSAgICAgICAgICAiMC4wMDIwNzIsIDAuMDAyMDc0LCAwLjAwMjA5MSwgMC4wMDIwOTcsIDAuMDAyMTAxLCAwLjAwMjEwNSwgMC4wMDIxMDYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDA2NDQsIDAuMDAwNjQ3LCAwLjAwMDY0OSwgMC4wMDA2NSwgMC4wMDA2NDYsIDAuMDAwNjQ5LCAwLjAwMDY1IiwgXAotICAgICAgICAgICIwLjAwMDYzNCwgMC4wMDA2NDMsIDAuMDAwNjU2LCAwLjAwMDY1OCwgMC4wMDA2NTksIDAuMDAwNjYsIDAuMDAwNjYiLCBcCi0gICAgICAgICAgIjAuMDAwNjE0LCAwLjAwMDYzLCAwLjAwMDY1MiwgMC4wMDA2NTcsIDAuMDAwNjU5LCAwLjAwMDY2MSwgMC4wMDA2NjEiLCBcCi0gICAgICAgICAgIjAuMDAwNjAyLCAwLjAwMDYxOCwgMC4wMDA2NDgsIDAuMDAwNjU0LCAwLjAwMDY1OCwgMC4wMDA2NiwgMC4wMDA2NjEiLCBcCi0gICAgICAgICAgIjAuMDAwNTk5LCAwLjAwMDYxNSwgMC4wMDA2NDIsIDAuMDAwNjUsIDAuMDAwNjU2LCAwLjAwMDY1OSwgMC4wMDA2NiIsIFwKLSAgICAgICAgICAiMC4wMDA2LCAwLjAwMDYwOSwgMC4wMDA2MzksIDAuMDAwNjQ4LCAwLjAwMDY1MywgMC4wMDA2NTgsIDAuMDAwNjU5IiwgXAotICAgICAgICAgICIwLjAwMDYwNSwgMC4wMDA2MTIsIDAuMDAwNjM3LCAwLjAwMDY0NiwgMC4wMDA2NTIsIDAuMDAwNjU3LCAwLjAwMDY1OCIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IE9BSTIyWDIgKgotICogLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoT0FJMjJYMikgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjI4NTY2MTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQTApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTc2Mjc3OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTc1ODI3OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTc2Mjc3OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDgxOCwgMC4wMDA4MTcsIDAuMDAwODE3LCAwLjAwMDgxNywgMC4wMDA4MTcsIDAuMDAwODE3LCAwLjAwMDgxNyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDgyLCAwLjAwMDgyLCAwLjAwMDgyLCAwLjAwMDgyLCAwLjAwMDgyLCAwLjAwMDgyMSwgMC4wMDA4MjEiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEExKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE2ODQ1MTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE2ODQ1MTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE2Nzg2MzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA4MTksIDAuMDAwODE4LCAwLjAwMDgxOCwgMC4wMDA4MTgsIDAuMDAwODE4LCAwLjAwMDgxOCwgMC4wMDA4MTgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA4MiwgMC4wMDA4MiwgMC4wMDA4MTksIDAuMDAwODIsIDAuMDAwODIsIDAuMDAwODIsIDAuMDAwODIiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE3MjA4MjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE3MDk4NTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE3MjA4MjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA2ODYsIDAuMDAwNjg3LCAwLjAwMDY4NywgMC4wMDA2ODcsIDAuMDAwNjg3LCAwLjAwMDY4NiwgMC4wMDA2ODciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA5MjgsIDAuMDAwOTMsIDAuMDAwOTI5LCAwLjAwMDkzLCAwLjAwMDkzLCAwLjAwMDkzLCAwLjAwMDkzIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCMSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNjQ2NTQ7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNjQ2MTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE2NDY1NDsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA2ODYsIDAuMDAwNjg2LCAwLjAwMDY4NiwgMC4wMDA2ODYsIDAuMDAwNjg2LCAwLjAwMDY4NiwgMC4wMDA2ODYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA5MjgsIDAuMDAwOTI4LCAwLjAwMDkyOCwgMC4wMDA5MjksIDAuMDAwOTMsIDAuMDAwOTI5LCAwLjAwMDkyOSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjI3NTIwNDsKLSAgICBmdW5jdGlvbiA6ICIoISgoQjArQjEpIChBMCtBMSkpKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTAiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2MzE4MiwgMC4yNTg2ODYsIDAuNDE0NDExLCAwLjYwOTA2MiwgMC44MDM2NzQsIDAuOTk4NzA3LCAxLjE5MzA5IiwgXAotICAgICAgICAgICIwLjA3MTc5LCAwLjI2NzE1NCwgMC40MjMwNzcsIDAuNjE4MDk3LCAwLjgxMjQ1NSwgMS4wMDc2MywgMS4yMDIiLCBcCi0gICAgICAgICAgIjAuMDgxNzQ5LCAwLjI3NzI4NiwgMC40MzMxMTMsIDAuNjI3ODQ1LCAwLjgyMzAwNiwgMS4wMTczNSwgMS4yMTE5MiIsIFwKLSAgICAgICAgICAiMC4wOTE3NzUsIDAuMjg3Mzk4LCAwLjQ0MzI5MSwgMC42MzgzNDIsIDAuODMyNjk4LCAxLjAyNzU3LCAxLjIyMTkzIiwgXAotICAgICAgICAgICIwLjEwMTczNSwgMC4yOTczODcsIDAuNDUzMjk1LCAwLjY0ODEyOSwgMC44NDMyNzcsIDEuMDM3MjcsIDEuMjMyNjgiLCBcCi0gICAgICAgICAgIjAuMTE2NDM2LCAwLjMxMzUxOSwgMC40Njg5OTUsIDAuNjY0NTMzLCAwLjg1ODkzMiwgMS4wNTM0OCwgMS4yNDgzNCIsIFwKLSAgICAgICAgICAiMC4xMjc3MDMsIDAuMzI3MjI2LCAwLjQ4MzcyMSwgMC42Nzg2MzYsIDAuODczMTc1LCAxLjA2ODA4LCAxLjI2MjU5Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExNjQ1MywgMC41MTA4NTIsIDAuODI2MzU2LCAxLjIyMDU1LCAxLjYxNTIxLCAyLjAwOTMyLCAyLjQwNDA2IiwgXAotICAgICAgICAgICIwLjExNjQ4NywgMC41MTA4MTIsIDAuODI2NDYyLCAxLjIyMDksIDEuNjE1MDIsIDIuMDA5MzIsIDIuNDAzOTQiLCBcCi0gICAgICAgICAgIjAuMTE4MTIzLCAwLjUxMDg2NCwgMC44MjY0MzUsIDEuMjIwODcsIDEuNjE1MTUsIDIuMDA5MzYsIDIuNDA0MDgiLCBcCi0gICAgICAgICAgIjAuMTIxNTIzLCAwLjUxMDg2NCwgMC44MjY0NTUsIDEuMjIwODksIDEuNjE0ODEsIDIuMDA5NDIsIDIuNDAzOTgiLCBcCi0gICAgICAgICAgIjAuMTI2MTMyLCAwLjUxMDk1MSwgMC44MjYyNTMsIDEuMjIwODQsIDEuNjE0ODYsIDIuMDA5NjEsIDIuNDAzODQiLCBcCi0gICAgICAgICAgIjAuMTM0ODMyLCAwLjUxMjk5LCAwLjgyNjQ1OCwgMS4yMjA4MiwgMS42MTUyNSwgMi4wMDkyNiwgMi40MDM1OCIsIFwKLSAgICAgICAgICAiMC4xNDMxNTcsIDAuNTE1NzMzLCAwLjgyNzEwOSwgMS4yMjA4MSwgMS42MTUyMSwgMi4wMDkyOSwgMi40MDM5NiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjY5OTYsIDAuMjYwMDIzLCAwLjQxNzI2NSwgMC42MTM3NzQsIDAuODEwNTE5LCAxLjAwNjgzLCAxLjIwMjg0IiwgXAotICAgICAgICAgICIwLjA3NjY0NSwgMC4yNjk2NzksIDAuNDI3MDc2LCAwLjYyMzU2MSwgMC44MjAxMzIsIDEuMDE2ODUsIDEuMjEzMDEiLCBcCi0gICAgICAgICAgIjAuMDg3NzY1LCAwLjI4MDg0OSwgMC40MzgyODIsIDAuNjM0ODQ2LCAwLjgzMTEyOCwgMS4wMjc4NywgMS4yMjQxNiIsIFwKLSAgICAgICAgICAiMC4wOTg2NzgsIDAuMjkxODU1LCAwLjQ0OTA2NiwgMC42NDU0NjMsIDAuODQyNDA3LCAxLjAzODQxLCAxLjIzNTMzIiwgXAotICAgICAgICAgICIwLjEwOTU2OSwgMC4zMDIyMzcsIDAuNDYwMTI4LCAwLjY1NjU2NCwgMC44NTI4NDQsIDEuMDQ5OCwgMS4yNDU2NCIsIFwKLSAgICAgICAgICAiMC4xMjYzNDQsIDAuMzIwMjY0LCAwLjQ3NzM1MSwgMC42NzQxMDMsIDAuODcwNDI4LCAxLjA2Njg0LCAxLjI2MzY1IiwgXAotICAgICAgICAgICIwLjEzOTY4NCwgMC4zMzU1ODMsIDAuNDkyNDgsIDAuNjg5MzAxLCAwLjg4NTYzOSwgMS4wODIxOCwgMS4yNzg3NSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDQ3NDUsIDAuNDkwNTAyLCAwLjgwMTQwMSwgMS4xOTAwNywgMS41Nzg3NywgMS45Njc2MiwgMi4zNTUxIiwgXAotICAgICAgICAgICIwLjEwNDcyNCwgMC40OTA1NjUsIDAuODAxMTQsIDEuMTkwMTQsIDEuNTc5MjMsIDEuOTY3NTIsIDIuMzU0NzciLCBcCi0gICAgICAgICAgIjAuMTA1NDkyLCAwLjQ5MDM2LCAwLjgwMTIsIDEuMTkwMTUsIDEuNTc4MTYsIDEuOTY3NDksIDIuMzU0NzgiLCBcCi0gICAgICAgICAgIjAuMTA4MTIxLCAwLjQ5MDM1MiwgMC44MDEwNjgsIDEuMTkwMDIsIDEuNTc5MjcsIDEuOTY2NjgsIDIuMzU2NDciLCBcCi0gICAgICAgICAgIjAuMTExODksIDAuNDkwMzc5LCAwLjgwMTE3NSwgMS4xODk2NCwgMS41NzgzNiwgMS45Njc5NCwgMi4zNTUzIiwgXAotICAgICAgICAgICIwLjExOTgwNCwgMC40OTE2NjEsIDAuODAxMTYsIDEuMTg5OTksIDEuNTc4MTYsIDEuOTY2NzgsIDIuMzU1OCIsIFwKLSAgICAgICAgICAiMC4xMjgwMDcsIDAuNDkzOTksIDAuODAxNTUzLCAxLjE4OTU5LCAxLjU3ODI2LCAxLjk2NzA2LCAyLjM1NTQxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkExIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjAyMzMsIDAuMjU1NTk0LCAwLjQxMTM4OSwgMC42MDYyNjksIDAuODAwNDk2LCAwLjk5NTk2OCwgMS4xOTAyNyIsIFwKLSAgICAgICAgICAiMC4wNjkwNDIsIDAuMjY0NjA4LCAwLjQyMDM0NiwgMC42MTUwMDUsIDAuODA5Njc2LCAxLjAwNDMyLCAxLjE5ODkzIiwgXAotICAgICAgICAgICIwLjA4MDY1OCwgMC4yNzYxMzYsIDAuNDMyMDA5LCAwLjYyNjU0MywgMC44MjE2ODEsIDEuMDE2MTksIDEuMjEwODEiLCBcCi0gICAgICAgICAgIjAuMDkxOTUzLCAwLjI4NzQ2MSwgMC40NDMyNzcsIDAuNjM4MzA1LCAwLjgzMjU3NiwgMS4wMjc1LCAxLjIyMjMyIiwgXAotICAgICAgICAgICIwLjEwMzgzLCAwLjI5ODg3MywgMC40NTQ3MzMsIDAuNjQ5NTY5LCAwLjg0NDY3NywgMS4wMzg2NiwgMS4yMzQyNCIsIFwKLSAgICAgICAgICAiMC4xMjE1NTgsIDAuMzE3MzQ0LCAwLjQ3MzIzLCAwLjY2Nzc3NywgMC44NjI2MTUsIDEuMDU3MDksIDEuMjUyMjgiLCBcCi0gICAgICAgICAgIjAuMTM0ODA0LCAwLjMzMzM3MywgMC40ODkyMzQsIDAuNjgzODY3LCAwLjg3ODkzNywgMS4wNzM1LCAxLjI2ODQxIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExNjQ2MiwgMC41MTA4NjQsIDAuODI2MjU0LCAxLjIyMDk2LCAxLjYxNTE5LCAyLjAwOTQ2LCAyLjQwMzk4IiwgXAotICAgICAgICAgICIwLjExNjQ3OSwgMC41MTA4NTIsIDAuODI2NCwgMS4yMjA4MiwgMS42MTUwMiwgMi4wMDkzMSwgMi40MDM4NCIsIFwKLSAgICAgICAgICAiMC4xMTk1NDEsIDAuNTEwODg3LCAwLjgyNjQ1MywgMS4yMjA2NiwgMS42MTQ4NywgMi4wMDkzNSwgMi40MDM1IiwgXAotICAgICAgICAgICIwLjEyNTUsIDAuNTEwNzg1LCAwLjgyNjQwNCwgMS4yMjA4NywgMS42MTUyNCwgMi4wMDkzNSwgMi40MDM4MiIsIFwKLSAgICAgICAgICAiMC4xMzI1OTcsIDAuNTEwODkyLCAwLjgyNjI1NywgMS4yMjA2MSwgMS42MTQ4NywgMi4wMDk1LCAyLjQwMzU5IiwgXAotICAgICAgICAgICIwLjE0NTc1MiwgMC41MTM2OTQsIDAuODI2NDI3LCAxLjIyMDc5LCAxLjYxNTI4LCAyLjAwOTc0LCAyLjQwMzg4IiwgXAotICAgICAgICAgICIwLjE1ODEzLCAwLjUxODA5OSwgMC44MjcxMjYsIDEuMjIwODksIDEuNjE1MTksIDIuMDA5NDQsIDIuNDAzNzkiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY0MTg2LCAwLjI2MTE5MiwgMC40MTgzNzYsIDAuNjE2MDA4LCAwLjgxNTI3OCwgMS4wMTM1NCwgMS4yMTE5NiIsIFwKLSAgICAgICAgICAiMC4wNzM4MTYsIDAuMjcwOTkyLCAwLjQyODI2MywgMC42MjU5NTcsIDAuODI0NDk2LCAxLjAyMzYxLCAxLjIyMTkzIiwgXAotICAgICAgICAgICIwLjA4NDY1OSwgMC4yODIxNjIsIDAuNDM5NDAzLCAwLjYzNzE2NywgMC44MzU5MjgsIDEuMDM0MjMsIDEuMjMzMTciLCBcCi0gICAgICAgICAgIjAuMDk1MzMsIDAuMjkzMDQ1LCAwLjQ1MDI2LCAwLjY0Nzc0MiwgMC44NDY5NDMsIDEuMDQ1NjMsIDEuMjQ0MzIiLCBcCi0gICAgICAgICAgIjAuMTA1OTg3LCAwLjMwMzYzNCwgMC40NjEwNzIsIDAuNjU4NTI5LCAwLjg1NzIxNSwgMS4wNTY0NCwgMS4yNTQ5MiIsIFwKLSAgICAgICAgICAiMC4xMjIyNzQsIDAuMzIwOTI0LCAwLjQ3ODU2OSwgMC42NzYxMzYsIDAuODc0NTMzLCAxLjA3MzMzLCAxLjI3MjA4IiwgXAotICAgICAgICAgICIwLjEzNDk4MSwgMC4zMzU5OTgsIDAuNDkzNjQ1LCAwLjY5MTI3NywgMC44ODk3MzQsIDEuMDg4NTMsIDEuMjg3MjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTAyMjY0LCAwLjQ5MTk1OSwgMC44MDYzMDIsIDEuMjA3ODcsIDEuNjAzNTMsIDEuOTg2MjksIDIuMzk2MjciLCBcCi0gICAgICAgICAgIjAuMTAyMjM4LCAwLjQ5MjczMiwgMC44MDg0MDIsIDEuMTk5NjcsIDEuNjAzNDgsIDEuOTg1OTksIDIuMzk2MjgiLCBcCi0gICAgICAgICAgIjAuMTAzMTAyLCAwLjQ5NDM4OSwgMC44MTA2NzQsIDEuMTk5NSwgMS41OTI4NCwgMS45OTE3OSwgMi4zODAxMiIsIFwKLSAgICAgICAgICAiMC4xMDU5MjEsIDAuNDkxNTAxLCAwLjgxMDk1OSwgMS4yMDI2MywgMS41OTI1NCwgMS45ODU5NywgMi4zODExIiwgXAotICAgICAgICAgICIwLjEwOTczOSwgMC40OTE5OTgsIDAuODEwNTk0LCAxLjIwNjM5LCAxLjYwMjg4LCAxLjk4NTk1LCAyLjM4MTA2IiwgXAotICAgICAgICAgICIwLjExNzc1MywgMC40OTQwMTgsIDAuODA2MzA2LCAxLjE5OTY5LCAxLjU5NzUzLCAxLjk5MTYxLCAyLjM5NDY3IiwgXAotICAgICAgICAgICIwLjEyNjA4NywgMC40OTUxODksIDAuODA4Njc3LCAxLjE5OTY5LCAxLjU5Njk4LCAxLjk5MTU3LCAyLjM5NTQ0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTUwNjksIDAuMjQ5MDI2LCAwLjQwNDEzMSwgMC41OTgxNTUsIDAuNzkxOTk4LCAwLjk4NTkxLCAxLjE3OTg4IiwgXAotICAgICAgICAgICIwLjA2MzgwOSwgMC4yNTc5NzMsIDAuNDEzMTA0LCAwLjYwNzAyMiwgMC44MDA5ODMsIDAuOTk1MDU5LCAxLjE4ODc0IiwgXAotICAgICAgICAgICIwLjA3MzY4OCwgMC4yNjgxMTMsIDAuNDIzMjA5LCAwLjYxNzE0OSwgMC44MTExNywgMS4wMDUxMSwgMS4xOTg4NCIsIFwKLSAgICAgICAgICAiMC4wODM1NjMsIDAuMjc4MTU2LCAwLjQzMzQzOSwgMC42MjczNTksIDAuODIxMjQsIDEuMDE1MjcsIDEuMjA5MDQiLCBcCi0gICAgICAgICAgIjAuMDkzMjQzLCAwLjI4ODA0MiwgMC40NDMyNCwgMC42MzcyNTgsIDAuODMxMjMxLCAxLjAyNTQxLCAxLjIxODkyIiwgXAotICAgICAgICAgICIwLjEwNjk4NywgMC4zMDQxMDEsIDAuNDU5MDkyLCAwLjY1MzQ2NCwgMC44NDc0MzYsIDEuMDQxNCwgMS4yMzUxOSIsIFwKLSAgICAgICAgICAiMC4xMTc4ODcsIDAuMzE3OTc5LCAwLjQ3MzYsIDAuNjY3NjI1LCAwLjg2MTY1NCwgMS4wNTU2NCwgMS4yNDk1OSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDY5OTEsIDAuNDk5MjYxLCAwLjgxMzMyMiwgMS4yMDYyMSwgMS41OTg5MiwgMS45OTE3NiwgMi4zODQzMSIsIFwKLSAgICAgICAgICAiMC4xMDcwNDEsIDAuNDk5MTg5LCAwLjgxMzM0OCwgMS4yMDYxMiwgMS41OTg1NiwgMS45OTE0MywgMi4zODQzNCIsIFwKLSAgICAgICAgICAiMC4xMDg5ODksIDAuNDk5MjksIDAuODEzMzQ4LCAxLjIwNjEsIDEuNTk5MDMsIDEuOTkxODEsIDIuMzgzNzgiLCBcCi0gICAgICAgICAgIjAuMTEyNzYsIDAuNDk5Mjc2LCAwLjgxMzM2OCwgMS4yMDU5NSwgMS41OTg4NSwgMS45OTE2OCwgMi4zODQwMiIsIFwKLSAgICAgICAgICAiMC4xMTc2NywgMC40OTk0NTcsIDAuODEzMzE3LCAxLjIwNjE0LCAxLjU5ODc4LCAxLjk5MTY5LCAyLjM4Mzk0IiwgXAotICAgICAgICAgICIwLjEyNjc0OSwgMC41MDEzNzgsIDAuODEzMzE2LCAxLjIwNTk4LCAxLjU5ODY3LCAxLjk5MTU3LCAyLjM4Mzc5IiwgXAotICAgICAgICAgICIwLjEzNTgwOSwgMC41MDQ0MTksIDAuODE0MDc2LCAxLjIwNjEzLCAxLjU5ODY2LCAxLjk5MTY5LCAyLjM4NDU2Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2MDM1MywgMC4yNTM2NjUsIDAuNDEwOTE1LCAwLjYwNzM4MiwgMC44MDQwOTksIDEuMDAwNjEsIDEuMTk3MTciLCBcCi0gICAgICAgICAgIjAuMDY5NDk3LCAwLjI2MzA0OCwgMC40MjAzMjEsIDAuNjE2OTc5LCAwLjgxMzE2NCwgMS4wMTAxOSwgMS4yMDU5OCIsIFwKLSAgICAgICAgICAiMC4wODEzMjksIDAuMjc0ODkxLCAwLjQzMjA5NywgMC42Mjg2OTIsIDAuODI1MzgxLCAxLjAyMTY3LCAxLjIxODY2IiwgXAotICAgICAgICAgICIwLjA5MzAyNSwgMC4yODYwNjMsIDAuNDQzNDUyLCAwLjYzOTgzOSwgMC44MzYzMywgMS4wMzMsIDEuMjI5NiIsIFwKLSAgICAgICAgICAiMC4xMDQ5NjgsIDAuMjk3ODQ2LCAwLjQ1NTMyMywgMC42NTIwNzQsIDAuODQ4NDIsIDEuMDQ0OTgsIDEuMjQxMzYiLCBcCi0gICAgICAgICAgIjAuMTIzNjc1LCAwLjMxNjY4OSwgMC40NzQwMzEsIDAuNjcwNTY0LCAwLjg2NjgzNiwgMS4wNjMzOSwgMS4yNTk3IiwgXAotICAgICAgICAgICIwLjEzNzY2NywgMC4zMzMyMSwgMC40OTAzOCwgMC42ODcxMTEsIDAuODgzMjkzLCAxLjA3OTkyLCAxLjI3NjMxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwNDY4NywgMC40OTA4MjQsIDAuODAxOTg2LCAxLjE5MDM4LCAxLjU3OTgyLCAxLjk2ODI2LCAyLjM1NjM0IiwgXAotICAgICAgICAgICIwLjEwNDQ4LCAwLjQ5MDgyNywgMC44MDE2MTksIDEuMTkwNTUsIDEuNTc5MDYsIDEuOTY3NDcsIDIuMzU1NTIiLCBcCi0gICAgICAgICAgIjAuMTA3MDY5LCAwLjQ5MDgyNSwgMC44MDE2NDMsIDEuMTkwNTYsIDEuNTc4ODEsIDEuOTY3MTEsIDIuMzU3MDUiLCBcCi0gICAgICAgICAgIjAuMTEyMzYsIDAuNDkwODEsIDAuODAxODM4LCAxLjE5MDc2LCAxLjU3ODYyLCAxLjk2NzYzLCAyLjM1NTI3IiwgXAotICAgICAgICAgICIwLjExOTA5MSwgMC40OTA4NjgsIDAuODAxNjM2LCAxLjE5MDI0LCAxLjU3ODcxLCAxLjk2NzI0LCAyLjM1NTU0IiwgXAotICAgICAgICAgICIwLjEzMTk1NSwgMC40OTM0NTIsIDAuODAxNTU5LCAxLjE5MDcsIDEuNTc4NjMsIDEuOTY3NDYsIDIuMzU1OSIsIFwKLSAgICAgICAgICAiMC4xNDQwMjMsIDAuNDk3NDEsIDAuODAyMjE0LCAxLjE5MDEzLCAxLjU3ODQ4LCAxLjk2NzIzLCAyLjM1NTgxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIxIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTE4MjYsIDAuMjQ1Nzk3LCAwLjQwMDk2MSwgMC41OTQ5MTksIDAuNzg4OTA1LCAwLjk4MjczMSwgMS4xNzY0MiIsIFwKLSAgICAgICAgICAiMC4wNjA3ODYsIDAuMjU1MDIzLCAwLjQxMDE3NSwgMC42MDQxNTMsIDAuNzk3OTk0LCAwLjk5MTg3MywgMS4xODU5MSIsIFwKLSAgICAgICAgICAiMC4wNzE5ODMsIDAuMjY2MzM3LCAwLjQyMTUyNiwgMC42MTU0NTksIDAuODA5MzQ2LCAxLjAwMzM1LCAxLjE5NzI1IiwgXAotICAgICAgICAgICIwLjA4MzcyMywgMC4yNzgwOTMsIDAuNDMzMjMyLCAwLjYyNzE4OCwgMC44MjEwODIsIDEuMDE1MDksIDEuMjA4OTkiLCBcCi0gICAgICAgICAgIjAuMDk1Mzg0LCAwLjI4OTQzMSwgMC40NDQ1MjcsIDAuNjM4NDAzLCAwLjgzMjQxMywgMS4wMjYzLCAxLjIyMDI3IiwgXAotICAgICAgICAgICIwLjExMTQ2MywgMC4zMDc3MjEsIDAuNDYyMjI1LCAwLjY1Njg2NCwgMC44NTA3ODMsIDEuMDQ0NywgMS4yMzg1OCIsIFwKLSAgICAgICAgICAiMC4xMjM2MDYsIDAuMzIzNzk3LCAwLjQ3ODk3MiwgMC42NzI5NywgMC44NjY4NTQsIDEuMDYwNzgsIDEuMjU0NzQiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTA2OTk4LCAwLjQ5OTI1OCwgMC44MTMzNjksIDEuMjA2MTIsIDEuNTk4NzQsIDEuOTkxNSwgMi4zODQ0NCIsIFwKLSAgICAgICAgICAiMC4xMDcxNTIsIDAuNDk5MTksIDAuODEzMzQxLCAxLjIwNjE5LCAxLjU5ODY2LCAxLjk5MTU1LCAyLjM4NDM2IiwgXAotICAgICAgICAgICIwLjExMTEwOSwgMC40OTkyMTIsIDAuODEzMzQyLCAxLjIwNjAyLCAxLjU5ODcyLCAxLjk5MTg3LCAyLjM4NDI2IiwgXAotICAgICAgICAgICIwLjExNzQ3MiwgMC40OTkzMDIsIDAuODEzMzQ4LCAxLjIwNjE0LCAxLjU5ODQ4LCAxLjk5MTY1LCAyLjM4NDExIiwgXAotICAgICAgICAgICIwLjEyNTIzNywgMC40OTk1MDYsIDAuODEzMzYyLCAxLjIwNjA5LCAxLjU5ODczLCAxLjk5MTczLCAyLjM4NDMyIiwgXAotICAgICAgICAgICIwLjEzOTE3MiwgMC41MDIzOSwgMC44MTMzMDksIDEuMjA1OTUsIDEuNTk4OTUsIDEuOTkxNjIsIDIuMzg0MjciLCBcCi0gICAgICAgICAgIjAuMTUyMTk4LCAwLjUwNzE5NSwgMC44MTQxMzEsIDEuMjA2MTEsIDEuNTk4NjQsIDEuOTkxMzcsIDIuMzg0MzUiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU3MjQ4LCAwLjI1NDE2MywgMC40MTE0MzMsIDAuNjA5Mzg1LCAwLjgwODYyNCwgMS4wMDY4NCwgMS4yMDUzMiIsIFwKLSAgICAgICAgICAiMC4wNjY0MjcsIDAuMjYzNjA3LCAwLjQyMDk1MSwgMC42MTg5MzMsIDAuODE3NDIyLCAxLjAxNjA4LCAxLjIxNDY0IiwgXAotICAgICAgICAgICIwLjA3Nzg4NiwgMC4yNzUyOTcsIDAuNDMyNjY4LCAwLjYzMDU5OCwgMC44MjkyNzcsIDEuMDI4MTUsIDEuMjI2NjEiLCBcCi0gICAgICAgICAgIjAuMDg5ODM1LCAwLjI4NjYwNywgMC40NDQwODYsIDAuNjQyMzYzLCAwLjg0MDU4NywgMS4wMzk2MSwgMS4yMzgwNSIsIFwKLSAgICAgICAgICAiMC4xMDE3MjEsIDAuMjk4MDY4LCAwLjQ1NTU2OSwgMC42NTQxNzcsIDAuODUyMjM3LCAxLjA1MTMzLCAxLjI0OTQ2IiwgXAotICAgICAgICAgICIwLjExOTgzMSwgMC4zMTcwOTQsIDAuNDc0NDI5LCAwLjY3MjQ0MSwgMC44NzE1MDIsIDEuMDY5OTIsIDEuMjY4NiIsIFwKLSAgICAgICAgICAiMC4xMzMzNzEsIDAuMzMzNTk5LCAwLjQ5MDgxOSwgMC42ODg5NjQsIDAuODg3NTk0LCAxLjA4NjE0LCAxLjI4NDg5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwMTgwMSwgMC40OTI4NDgsIDAuODA3MTE4LCAxLjIwMzQ5LCAxLjU5MzY0LCAxLjk4NjY5LCAyLjM5NTc5IiwgXAotICAgICAgICAgICIwLjEwMTY2MywgMC40OTQyMjksIDAuODA2MjM2LCAxLjIwNjg0LCAxLjU5NzAxLCAxLjk5ODEyLCAyLjM4NjE0IiwgXAotICAgICAgICAgICIwLjEwNDU2OSwgMC40OTI4MDEsIDAuODExMjI3LCAxLjIwMzA3LCAxLjYwMjA3LCAxLjk4OCwgMi4zOTQzOSIsIFwKLSAgICAgICAgICAiMC4xMDk5NDcsIDAuNDkyNjc0LCAwLjgxMDczNCwgMS4xOTkyNiwgMS41OTcxNiwgMS45ODYzOCwgMi4zODIyMyIsIFwKLSAgICAgICAgICAiMC4xMTcwOTUsIDAuNDk0MTgxLCAwLjgxMDU4NSwgMS4xOTk1MiwgMS42MDE5NSwgMS45ODgxMiwgMi4zODYxOSIsIFwKLSAgICAgICAgICAiMC4xMzAzOTEsIDAuNDk1MTcsIDAuODEwODU3LCAxLjIwMjksIDEuNTkyNzUsIDEuOTkyMjgsIDIuMzgyNTIiLCBcCi0gICAgICAgICAgIjAuMTQzMDEsIDAuNDk5NTI3LCAwLjgwODY5NywgMS4yMDY1NywgMS42MDIxMywgMS45OTEzOCwgMi4zOTQ1MSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDY4NDMsIDAuMDA2ODQzLCAwLjAwNjg0MywgMC4wMDY4NDEsIDAuMDA2ODQxLCAwLjAwNjg0MiwgMC4wMDY4MzkiLCBcCi0gICAgICAgICAgIjAuMDA2ODA5LCAwLjAwNjgyMywgMC4wMDY4MjQsIDAuMDA2ODI0LCAwLjAwNjgyMywgMC4wMDY4MjMsIDAuMDA2ODIyIiwgXAotICAgICAgICAgICIwLjAwNjc5MSwgMC4wMDY4MTUsIDAuMDA2ODE4LCAwLjAwNjgxOSwgMC4wMDY4MTksIDAuMDA2ODE5LCAwLjAwNjgxNiIsIFwKLSAgICAgICAgICAiMC4wMDY3NzYsIDAuMDA2ODEsIDAuMDA2ODE1LCAwLjAwNjgxNSwgMC4wMDY4MTQsIDAuMDA2ODE3LCAwLjAwNjgxNiIsIFwKLSAgICAgICAgICAiMC4wMDY3NywgMC4wMDY4MDYsIDAuMDA2ODExLCAwLjAwNjgxMywgMC4wMDY4MTUsIDAuMDA2ODE1LCAwLjAwNjgxNSIsIFwKLSAgICAgICAgICAiMC4wMDY3NzIsIDAuMDA2ODAyLCAwLjAwNjgwNiwgMC4wMDY4MTEsIDAuMDA2ODEyLCAwLjAwNjgxNCwgMC4wMDY4MTIiLCBcCi0gICAgICAgICAgIjAuMDA2Nzc4LCAwLjAwNjgwMSwgMC4wMDY4MDcsIDAuMDA2ODEsIDAuMDA2ODExLCAwLjAwNjgxMiwgMC4wMDY4MTMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDE2OCwgMC4wMDE2ODMsIDAuMDAxNjgzLCAwLjAwMTY4NCwgMC4wMDE2ODMsIDAuMDAxNjgyLCAwLjAwMTY4MiIsIFwKLSAgICAgICAgICAiMC4wMDE2MzIsIDAuMDAxNjU1LCAwLjAwMTY1NywgMC4wMDE2NTgsIDAuMDAxNjU5LCAwLjAwMTY1OSwgMC4wMDE2NTkiLCBcCi0gICAgICAgICAgIjAuMDAxNjA0LCAwLjAwMTY0MywgMC4wMDE2NDksIDAuMDAxNjUyLCAwLjAwMTY1MywgMC4wMDE2NTQsIDAuMDAxNjU0IiwgXAotICAgICAgICAgICIwLjAwMTU4NSwgMC4wMDE2MzQsIDAuMDAxNjQzLCAwLjAwMTY0NiwgMC4wMDE2NDgsIDAuMDAxNjUsIDAuMDAxNjUiLCBcCi0gICAgICAgICAgIjAuMDAxNTcxLCAwLjAwMTYyNSwgMC4wMDE2MzcsIDAuMDAxNjQzLCAwLjAwMTY0NiwgMC4wMDE2NDcsIDAuMDAxNjQ4IiwgXAotICAgICAgICAgICIwLjAwMTU1OSwgMC4wMDE2MTcsIDAuMDAxNjMsIDAuMDAxNjM3LCAwLjAwMTY0MSwgMC4wMDE2NDMsIDAuMDAxNjQ1IiwgXAotICAgICAgICAgICIwLjAwMTU1NCwgMC4wMDE2MTEsIDAuMDAxNjI1LCAwLjAwMTYzNCwgMC4wMDE2MzksIDAuMDAxNjQxLCAwLjAwMTY0MiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkExIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDYxNjQsIDAuMDA2MTY2LCAwLjAwNjE2NSwgMC4wMDYxNjUsIDAuMDA2MTY0LCAwLjAwNjE2MywgMC4wMDYxNjIiLCBcCi0gICAgICAgICAgIjAuMDA2MTE2LCAwLjAwNjE0MSwgMC4wMDYxNDMsIDAuMDA2MTQ0LCAwLjAwNjE0MywgMC4wMDYxNDMsIDAuMDA2MTQ1IiwgXAotICAgICAgICAgICIwLjAwNjEsIDAuMDA2MTMzLCAwLjAwNjEzNywgMC4wMDYxMzksIDAuMDA2MTM5LCAwLjAwNjE0MSwgMC4wMDYxNCIsIFwKLSAgICAgICAgICAiMC4wMDYwODksIDAuMDA2MTI1LCAwLjAwNjEzMiwgMC4wMDYxMzQsIDAuMDA2MTM2LCAwLjAwNjEzNywgMC4wMDYxMzYiLCBcCi0gICAgICAgICAgIjAuMDA2MDk4LCAwLjAwNjEyMywgMC4wMDYxMjgsIDAuMDA2MTMyLCAwLjAwNjEzMywgMC4wMDYxMzQsIDAuMDA2MTM0IiwgXAotICAgICAgICAgICIwLjAwNjEyNSwgMC4wMDYxMjQsIDAuMDA2MTI4LCAwLjAwNjEzMiwgMC4wMDYxMzQsIDAuMDA2MTMzLCAwLjAwNjEzNSIsIFwKLSAgICAgICAgICAiMC4wMDYxNiwgMC4wMDYxMywgMC4wMDYxMzIsIDAuMDA2MTM0LCAwLjAwNjEzNCwgMC4wMDYxMzUsIDAuMDA2MTM0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxMTcsIDAuMDAxMTg3LCAwLjAwMTE4NywgMC4wMDExOTIsIDAuMDAxMTg5LCAwLjAwMTE4OSwgMC4wMDExODkiLCBcCi0gICAgICAgICAgIjAuMDAxMTI3LCAwLjAwMTE5MiwgMC4wMDExOTksIDAuMDAxMjAzLCAwLjAwMTIwNSwgMC4wMDEyMDcsIDAuMDAxMjA3IiwgXAotICAgICAgICAgICIwLjAwMTA3LCAwLjAwMTE3NSwgMC4wMDExOSwgMC4wMDExOTgsIDAuMDAxMjAyLCAwLjAwMTIwNSwgMC4wMDEyMDYiLCBcCi0gICAgICAgICAgIjAuMDAxMDI5LCAwLjAwMTE1NywgMC4wMDExNzgsIDAuMDAxMTksIDAuMDAxMTk3LCAwLjAwMTIsIDAuMDAxMjAzIiwgXAotICAgICAgICAgICIwLjAwMTAwMSwgMC4wMDExNDIsIDAuMDAxMTY3LCAwLjAwMTE4MiwgMC4wMDExOTEsIDAuMDAxMTk1LCAwLjAwMTE5OSIsIFwKLSAgICAgICAgICAiMC4wMDA5NzIsIDAuMDAxMTE3LCAwLjAwMTE1LCAwLjAwMTE3LCAwLjAwMTE4MSwgMC4wMDExODgsIDAuMDAxMTkyIiwgXAotICAgICAgICAgICIwLjAwMDk1OSwgMC4wMDExMDEsIDAuMDAxMTM4LCAwLjAwMTE2MSwgMC4wMDExNzMsIDAuMDAxMTgxLCAwLjAwMTE4NiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQ3MjcsIDAuMDA0NzM4LCAwLjAwNDczOSwgMC4wMDQ3NCwgMC4wMDQ3MzksIDAuMDA0NzQsIDAuMDA0NzQiLCBcCi0gICAgICAgICAgIjAuMDA0Njk1LCAwLjAwNDc0NCwgMC4wMDQ3NSwgMC4wMDQ3NTIsIDAuMDA0NzU0LCAwLjAwNDc1NSwgMC4wMDQ3NTUiLCBcCi0gICAgICAgICAgIjAuMDA0NjY0LCAwLjAwNDczMywgMC4wMDQ3NDQsIDAuMDA0NzQ5LCAwLjAwNDc1LCAwLjAwNDc1NiwgMC4wMDQ3NTUiLCBcCi0gICAgICAgICAgIjAuMDA0NjM5LCAwLjAwNDcyNCwgMC4wMDQ3MzgsIDAuMDA0NzQ3LCAwLjAwNDc0OCwgMC4wMDQ3NTIsIDAuMDA0NzUzIiwgXAotICAgICAgICAgICIwLjAwNDYyNywgMC4wMDQ3MTQsIDAuMDA0NzMyLCAwLjAwNDc0LCAwLjAwNDc0NSwgMC4wMDQ3NDcsIDAuMDA0NzUiLCBcCi0gICAgICAgICAgIjAuMDA0NjIsIDAuMDA0NzAzLCAwLjAwNDcxOSwgMC4wMDQ3MzUsIDAuMDA0NzQyLCAwLjAwNDc0NSwgMC4wMDQ3NDgiLCBcCi0gICAgICAgICAgIjAuMDA0NjE4LCAwLjAwNDY5NiwgMC4wMDQ3MTYsIDAuMDA0NzMsIDAuMDA0NzM3LCAwLjAwNDc0MiwgMC4wMDQ3NDUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDE2NzcsIDAuMDAxNjgxLCAwLjAwMTY4MiwgMC4wMDE2NzksIDAuMDAxNjgxLCAwLjAwMTY4MSwgMC4wMDE2ODEiLCBcCi0gICAgICAgICAgIjAuMDAxNjIyLCAwLjAwMTY1MSwgMC4wMDE2NTUsIDAuMDAxNjU2LCAwLjAwMTY1NywgMC4wMDE2NTcsIDAuMDAxNjU3IiwgXAotICAgICAgICAgICIwLjAwMTU5OSwgMC4wMDE2NCwgMC4wMDE2NDYsIDAuMDAxNjUsIDAuMDAxNjUyLCAwLjAwMTY1MiwgMC4wMDE2NTEiLCBcCi0gICAgICAgICAgIjAuMDAxNjA4LCAwLjAwMTYzNywgMC4wMDE2NDMsIDAuMDAxNjQ2LCAwLjAwMTY0OCwgMC4wMDE2NDgsIDAuMDAxNjQ4IiwgXAotICAgICAgICAgICIwLjAwMTYxNywgMC4wMDE2MzUsIDAuMDAxNjM4LCAwLjAwMTY0MiwgMC4wMDE2NDUsIDAuMDAxNjQ2LCAwLjAwMTY0NyIsIFwKLSAgICAgICAgICAiMC4wMDE2NDQsIDAuMDAxNjM3LCAwLjAwMTY0LCAwLjAwMTY0MywgMC4wMDE2NDUsIDAuMDAxNjQ2LCAwLjAwMTY0NiIsIFwKLSAgICAgICAgICAiMC4wMDE2OCwgMC4wMDE2NDMsIDAuMDAxNjQ1LCAwLjAwMTY0NiwgMC4wMDE2NDcsIDAuMDAxNjQ2LCAwLjAwMTY0NyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIxIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQwMzcsIDAuMDA0MDUzLCAwLjAwNDA1NSwgMC4wMDQwNTUsIDAuMDA0MDU2LCAwLjAwNDA1NiwgMC4wMDQwNTciLCBcCi0gICAgICAgICAgIjAuMDAzOTk1LCAwLjAwNDA1NiwgMC4wMDQwNjMsIDAuMDA0MDY3LCAwLjAwNDA2OSwgMC4wMDQwNywgMC4wMDQwNzEiLCBcCi0gICAgICAgICAgIjAuMDAzOTYxLCAwLjAwNDA0NCwgMC4wMDQwNTYsIDAuMDA0MDYzLCAwLjAwNDA2NywgMC4wMDQwNjgsIDAuMDA0MDciLCBcCi0gICAgICAgICAgIjAuMDAzOTQsIDAuMDA0MDMyLCAwLjAwNDA0OCwgMC4wMDQwNTgsIDAuMDA0MDYyLCAwLjAwNDA2NSwgMC4wMDQwNjciLCBcCi0gICAgICAgICAgIjAuMDAzOTUxLCAwLjAwNDAyNywgMC4wMDQwNDQsIDAuMDA0MDU0LCAwLjAwNDA2LCAwLjAwNDA2MywgMC4wMDQwNjUiLCBcCi0gICAgICAgICAgIjAuMDAzOTc2LCAwLjAwNDAyMSwgMC4wMDQwMzMsIDAuMDA0MDUsIDAuMDA0MDU2LCAwLjAwNDA2LCAwLjAwNDA2MyIsIFwKLSAgICAgICAgICAiMC4wMDQwMTIsIDAuMDA0MDIyLCAwLjAwNDAzOCwgMC4wMDQwNDksIDAuMDA0MDU2LCAwLjAwNDA1OCwgMC4wMDQwNjIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDEwNjcsIDAuMDAxMDg2LCAwLjAwMTA4OCwgMC4wMDEwODksIDAuMDAxMDg5LCAwLjAwMTA4OSwgMC4wMDEwOSIsIFwKLSAgICAgICAgICAiMC4wMDEwMiwgMC4wMDEwOTIsIDAuMDAxMSwgMC4wMDExMDYsIDAuMDAxMTA3LCAwLjAwMTEwOSwgMC4wMDExMSIsIFwKLSAgICAgICAgICAiMC4wMDA5NzIsIDAuMDAxMDc2LCAwLjAwMTA5MiwgMC4wMDExLCAwLjAwMTEwNCwgMC4wMDExMDcsIDAuMDAxMTA4IiwgXAotICAgICAgICAgICIwLjAwMDk1MiwgMC4wMDEwNjYsIDAuMDAxMDg1LCAwLjAwMTA5NiwgMC4wMDExMDIsIDAuMDAxMTA1LCAwLjAwMTEwOCIsIFwKLSAgICAgICAgICAiMC4wMDA5NTgsIDAuMDAxMDUsIDAuMDAxMDc4LCAwLjAwMTA4OSwgMC4wMDEwOTgsIDAuMDAxMTAyLCAwLjAwMTEwNSIsIFwKLSAgICAgICAgICAiMC4wMDA5NzIsIDAuMDAxMDQ1LCAwLjAwMTA2OSwgMC4wMDEwODQsIDAuMDAxMDkyLCAwLjAwMTA5OCwgMC4wMDExMDEiLCBcCi0gICAgICAgICAgIjAuMDAwOTk5LCAwLjAwMTA0MSwgMC4wMDEwNjUsIDAuMDAxMDgxLCAwLjAwMTA4OSwgMC4wMDEwOTUsIDAuMDAxMDk5Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBPQUkyQkIxWDIgKgotICogLS0tLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChPQUkyQkIxWDIpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4xODc3NzM7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEwTikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNTY0MDM1OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDU2NDAzNTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA1NjI2NzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyMjYsIDAuMDAwMjI2LCAwLjAwMDIyNiwgMC4wMDAyMjYsIDAuMDAwMjI2LCAwLjAwMDIyNiwgMC4wMDAyMjYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyMywgMC4wMDAyMjcsIDAuMDAwMjI3LCAwLjAwMDIyNywgMC4wMDAyMjcsIDAuMDAwMjI3LCAwLjAwMDIyNyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQTFOKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA1Nzg3NTY7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNTc4NDE4OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDU3ODc1NjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAwNzIsIDAuMDAwMDcxLCAwLjAwMDA3MSwgMC4wMDAwNzEsIDAuMDAwMDcxLCAwLjAwMDA3MSwgMC4wMDAwNzEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyNTcsIDAuMDAwMjU3LCAwLjAwMDI1NywgMC4wMDAyNTcsIDAuMDAwMjU3LCAwLjAwMDI1NywgMC4wMDAyNTciKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE3NjU2NTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE3NjU2NTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE3NjE0NzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA4MTgsIDAuMDAwODE4LCAwLjAwMDgxNywgMC4wMDA4MTcsIDAuMDAwODE3LCAwLjAwMDgxNywgMC4wMDA4MTciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA4NDQsIDAuMDAwODI0LCAwLjAwMDgyMSwgMC4wMDA4MjEsIDAuMDAwODIxLCAwLjAwMDgyMSwgMC4wMDA4MjEiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4yNzg0MjE7Ci0gICAgZnVuY3Rpb24gOiAiKCEoKCEoQTBOIEExTikpIEIwKSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEwTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDgwNzg1LCAwLjE4NzA3NywgMC4yNzA2MzksIDAuMzc1MTA1LCAwLjQ3OTYzNSwgMC41ODM5NjYsIDAuNjg4NjYxIiwgXAotICAgICAgICAgICIwLjA4OTcwOSwgMC4xOTYwNSwgMC4yNzk2ODcsIDAuMzg0MTUyLCAwLjQ4ODgxOCwgMC41OTMxODcsIDAuNjk3NTMiLCBcCi0gICAgICAgICAgIjAuMTAwNTA4LCAwLjIwNjc1OSwgMC4yOTAzMTYsIDAuMzk0ODE4LCAwLjQ5OTAwNywgMC42MDM5OTIsIDAuNzA4MzExIiwgXAotICAgICAgICAgICIwLjExMDg4NCwgMC4yMTcwOTYsIDAuMzAwNjYxLCAwLjQwNTA5OCwgMC41MDk3NDcsIDAuNjEzOTg0LCAwLjcxODU5NCIsIFwKLSAgICAgICAgICAiMC4xMjA3OTMsIDAuMjI3MDkyLCAwLjMxMDY1NywgMC40MTUxMjgsIDAuNTE5Nzg5LCAwLjYyMzk3OSwgMC43Mjg4NDYiLCBcCi0gICAgICAgICAgIjAuMTM1MTUzLCAwLjI0MTc5NiwgMC4zMjUzNjIsIDAuNDI5ODYyLCAwLjUzNDQ2NSwgMC42Mzg5NzgsIDAuNzQzMjczIiwgXAotICAgICAgICAgICIwLjE0NjY5MSwgMC4yNTM2ODYsIDAuMzM3MjMxLCAwLjQ0MTc2NiwgMC41NDYxOTYsIDAuNjUwNjc5LCAwLjc1NDk4OCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjE1ODgsIDAuMjcwNTgzLCAwLjQ0MTg2LCAwLjY1NzEyMywgMC44NzA4MzksIDEuMDg3ODcsIDEuMzAwNjMiLCBcCi0gICAgICAgICAgIjAuMDYxNTI1LCAwLjI3MDUwNywgMC40NDE4MzYsIDAuNjU3MDA0LCAwLjg3MDY5OSwgMS4wODU2OSwgMS4zMDEyMyIsIFwKLSAgICAgICAgICAiMC4wNjE0MTIsIDAuMjcwMzQ2LCAwLjQ0MTMwNiwgMC42NTU4NzcsIDAuODY5NjA1LCAxLjA4NTcxLCAxLjMwMTQzIiwgXAotICAgICAgICAgICIwLjA2MTg2NCwgMC4yNzAzNDEsIDAuNDQxODQ0LCAwLjY1NjYxLCAwLjg3MDY4NiwgMS4wODc4LCAxLjMwMDYzIiwgXAotICAgICAgICAgICIwLjA2MjM3NiwgMC4yNzA3MDQsIDAuNDQxODU5LCAwLjY1NzEwMywgMC44NzA4NjQsIDEuMDg3NzksIDEuMzAwNjIiLCBcCi0gICAgICAgICAgIjAuMDYzNzk2LCAwLjI3MDc3MSwgMC40NDEzNTQsIDAuNjU1NjM1LCAwLjg3MDc4OCwgMS4wODU3MSwgMS4zMDEzNCIsIFwKLSAgICAgICAgICAiMC4wNjQ3NzUsIDAuMjcxMzE5LCAwLjQ0MjEzLCAwLjY1NTU3LCAwLjg3MDI5MSwgMS4wODU2NiwgMS4zMDIzMyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODAxMzEsIDAuMjcwNzQ3LCAwLjQyMjkxMywgMC42MTMxMzYsIDAuODAzMjA4LCAwLjk5MzM1MywgMS4xODM2MiIsIFwKLSAgICAgICAgICAiMC4wODk4NCwgMC4yODA1MDYsIDAuNDMyNjg1LCAwLjYyMjkyNCwgMC44MTI5ODcsIDEuMDAzMTQsIDEuMTkzNDEiLCBcCi0gICAgICAgICAgIjAuMTAxOTE3LCAwLjI5MjYzMSwgMC40NDQ4MjEsIDAuNjM0OTgxLCAwLjgyNTEzNiwgMS4wMTUyOSwgMS4yMDU0OCIsIFwKLSAgICAgICAgICAiMC4xMTMyLCAwLjMwMzkzNiwgMC40NTYxMjksIDAuNjQ2MzcxLCAwLjgzNjU0OCwgMS4wMjY2MSwgMS4yMTY3NCIsIFwKLSAgICAgICAgICAiMC4xMjI4NjgsIDAuMzEzNTg4LCAwLjQ2NTc3OCwgMC42NTU5NjUsIDAuODQ2MTIzLCAxLjAzNjI4LCAxLjIyNjQ5IiwgXAotICAgICAgICAgICIwLjEzNjA5NiwgMC4zMjY3OTEsIDAuNDc4OTk4LCAwLjY2OTE3MSwgMC44NTkzMjMsIDEuMDQ5NTEsIDEuMjM5NjIiLCBcCi0gICAgICAgICAgIjAuMTQ2MDgsIDAuMzM2ODAyLCAwLjQ4OTAxMSwgMC42NzkyMDIsIDAuODY5NDM4LCAxLjA1OTQ5LCAxLjI0OTYxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5MzE4LCAwLjQ2OTI5MiwgMC43Njk4OTEsIDEuMTQ4NiwgMS41MjU3OSwgMS44OTk5NCwgMi4yODA1NCIsIFwKLSAgICAgICAgICAiMC4wOTMyLCAwLjQ2OTI4NSwgMC43Njk4MjksIDEuMTQ4NjUsIDEuNTI1NzgsIDEuOTAwMDIsIDIuMjgwNTgiLCBcCi0gICAgICAgICAgIjAuMDkzMjk0LCAwLjQ2OTI4NywgMC43Njk5MTMsIDEuMTQ4MTcsIDEuNTI1NywgMS44OTk5LCAyLjI4MDIiLCBcCi0gICAgICAgICAgIjAuMDkzNTM5LCAwLjQ2OTMxNSwgMC43Njk5NDMsIDEuMTQ4NTUsIDEuNTI1ODgsIDEuODk5NTYsIDIuMjc5OTQiLCBcCi0gICAgICAgICAgIjAuMDk0MDE4LCAwLjQ2OTM0MiwgMC43NzExNjEsIDEuMTQ4NDUsIDEuNTI1NjcsIDEuODk5NjMsIDIuMjc1MTUiLCBcCi0gICAgICAgICAgIjAuMDk0ODIzLCAwLjQ2OTM2MiwgMC43NzEwNDksIDEuMTQ4MTcsIDEuNTI1MzQsIDEuOTAyNzYsIDIuMjc5ODUiLCBcCi0gICAgICAgICAgIjAuMDk1NzIzLCAwLjQ2OTQ0MiwgMC43Njg5NDksIDEuMTQ4MzYsIDEuNTI2MDEsIDEuOTAyNjcsIDIuMjc5NzYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTFOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzc4MDgsIDAuMTg0MDkyLCAwLjI2NzY5MSwgMC4zNzIxMTgsIDAuNDc2NjI0LCAwLjU4MDk5OCwgMC42ODU0MzkiLCBcCi0gICAgICAgICAgIjAuMDg2OTY0LCAwLjE5MzMwNywgMC4yNzY4NTcsIDAuMzgxNDIyLCAwLjQ4NTczOCwgMC41OTAzMDIsIDAuNjk0NzAxIiwgXAotICAgICAgICAgICIwLjA5ODcyOSwgMC4yMDQ5NDgsIDAuMjg4NTE1LCAwLjM5Mjk3OCwgMC40OTc2MjUsIDAuNjAxODQxLCAwLjcwNjcwMiIsIFwKLSAgICAgICAgICAiMC4xMTAyMzksIDAuMjE2NDc5LCAwLjMwMDAzNCwgMC40MDQ1LCAwLjUwOTE1MSwgMC42MTMzNTcsIDAuNzE4Mjg0IiwgXAotICAgICAgICAgICIwLjEyMTM0LCAwLjIyNzc5MiwgMC4zMTEzNjIsIDAuNDE1ODQ1LCAwLjUyMDMyNywgMC42MjQ3MjIsIDAuNzI5NjE5IiwgXAotICAgICAgICAgICIwLjEzNjk2LCAwLjI0MzQ5NSwgMC4zMjY5NzMsIDAuNDMxNDcyLCAwLjUzNTg0NiwgMC42NDAzMDMsIDAuNzQ1MjI1IiwgXAotICAgICAgICAgICIwLjE0OTMzOCwgMC4yNTYwMTIsIDAuMzM5NTY1LCAwLjQ0NDAyNCwgMC41NDg0MjcsIDAuNjUzMDY0LCAwLjc1NzM1Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2MTY2NCwgMC4yNzAzNzQsIDAuNDQxMDY5LCAwLjY1NzExNCwgMC44NzAyNzcsIDEuMDg1NDMsIDEuMzAxMjgiLCBcCi0gICAgICAgICAgIjAuMDYxNDYzLCAwLjI3MDM1OSwgMC40NDE4MTEsIDAuNjU1NzM2LCAwLjg3MTc5MSwgMS4wODYxLCAxLjMwMTM4IiwgXAotICAgICAgICAgICIwLjA2MTQ3NywgMC4yNzAzNDksIDAuNDQxODI1LCAwLjY1NzA2MiwgMC44NzA2OTcsIDEuMDg3OCwgMS4zMDA2NCIsIFwKLSAgICAgICAgICAiMC4wNjIxNjgsIDAuMjcwNjY1LCAwLjQ0MTgxOSwgMC42NTcwNywgMC44NzA3MDUsIDEuMDg3NjEsIDEuMzAwNTEiLCBcCi0gICAgICAgICAgIjAuMDYyNjc4LCAwLjI3MDcxMiwgMC40NDE0MjgsIDAuNjU4MTQ1LCAwLjg3MDM5NSwgMS4wODU0MywgMS4zMDA1NCIsIFwKLSAgICAgICAgICAiMC4wNjQ2NzQsIDAuMjcxMTA1LCAwLjQ0MjExOSwgMC42NTU2MzcsIDAuODcxNzk0LCAxLjA4NTQzLCAxLjMwMDQ5IiwgXAotICAgICAgICAgICIwLjA2NjA2MywgMC4yNzE0MTQsIDAuNDQxNzIzLCAwLjY1NzE5NSwgMC44NzIyNDIsIDEuMDg1NzksIDEuMzAwMzYiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc3OTg3LCAwLjI2ODUwOSwgMC40MjA3MDQsIDAuNjEwOTgsIDAuODAxMTk4LCAwLjk5MTMxNCwgMS4xODE2NyIsIFwKLSAgICAgICAgICAiMC4wODc3OTIsIDAuMjc4NDAxLCAwLjQzMDc2MiwgMC42MjA5NDYsIDAuODExMTc3LCAxLjAwMTMsIDEuMTkxOTciLCBcCi0gICAgICAgICAgIjAuMDk5NjY2LCAwLjI5MDM3OSwgMC40NDI2NTYsIDAuNjMyODI3LCAwLjgyMzE3MywgMS4wMTMyLCAxLjIwMzciLCBcCi0gICAgICAgICAgIjAuMTEwNDEzLCAwLjMwMTEzMiwgMC40NTM0OTEsIDAuNjQzNjU4LCAwLjgzNDQyNiwgMS4wMjM5NiwgMS4yMTQ5OSIsIFwKLSAgICAgICAgICAiMC4xMTk1MTQsIDAuMzEwMTI3LCAwLjQ2MjYsIDAuNjUyNTk2LCAwLjg0MjgxMiwgMS4wMzMzNiwgMS4yMjMzMiIsIFwKLSAgICAgICAgICAiMC4xMzI0MDQsIDAuMzIzMzE3LCAwLjQ3NTU1NSwgMC42NjU5MDUsIDAuODU2MDcxLCAxLjA0NjMxLCAxLjIzNjIxIiwgXAotICAgICAgICAgICIwLjE0MTY5OSwgMC4zMzI1NDQsIDAuNDg0NzUzLCAwLjY3NTAyNiwgMC44NjUzODcsIDEuMDU1NDgsIDEuMjQ1NzkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDkyOTk2LCAwLjQ2ODQ2NSwgMC43NzEwMiwgMS4xNDY1MywgMS41Mjk3NywgMS45MDgzNiwgMi4yODE4MSIsIFwKLSAgICAgICAgICAiMC4wOTI5ODksIDAuNDY4NDk0LCAwLjc2OTE5NywgMS4xNDU1MiwgMS41MjMyNywgMS45MDMxOCwgMi4yNzQ0NiIsIFwKLSAgICAgICAgICAiMC4wOTMxNzQsIDAuNDY4MDc2LCAwLjc2OTI4LCAxLjE0ODUsIDEuNTIzNDgsIDEuOTAzMjgsIDIuMjc3MjIiLCBcCi0gICAgICAgICAgIjAuMDkzNTEyLCAwLjQ2ODM2NSwgMC43NjkxNTYsIDEuMTUyMzMsIDEuNTIyMzMsIDEuOTA4NzksIDIuMjczOTkiLCBcCi0gICAgICAgICAgIjAuMDk0MTg2LCAwLjQ3MDU0MSwgMC43NjkwMjQsIDEuMTUxNzcsIDEuNTMwNCwgMS44OTgzNSwgMi4yODA0NiIsIFwKLSAgICAgICAgICAiMC4wOTUxMzcsIDAuNDcwNTA0LCAwLjc3MzY3OSwgMS4xNTI1OSwgMS41MzE0MywgMS45MDk3LCAyLjI4ODY5IiwgXAotICAgICAgICAgICIwLjA5NjE0MywgMC40Njk0NzYsIDAuNzcxMjgzLCAxLjE0ODM2LCAxLjUzMTM2LCAxLjkwMzE0LCAyLjI4OTAyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjkyNzQsIDAuMTMxNzU0LCAwLjIxMzYzMywgMC4zMTYwNTgsIDAuNDE4MjA0LCAwLjUyMDcyMSwgMC42MjI4NjUiLCBcCi0gICAgICAgICAgIjAuMDM5Mjg3LCAwLjE0MTY1OCwgMC4yMjM1NDUsIDAuMzI1ODg4LCAwLjQyODEwOCwgMC41MzAzNTksIDAuNjMyNzUzIiwgXAotICAgICAgICAgICIwLjA1MTkyNSwgMC4xNTM5OTQsIDAuMjM1ODI0LCAwLjMzODEzLCAwLjQzOTk3OCwgMC41NDE1NzIsIDAuNjQ0MDUxIiwgXAotICAgICAgICAgICIwLjA2MzYzOSwgMC4xNjY3MjYsIDAuMjQ4MzY2LCAwLjM1MDU1MSwgMC40NTI4NDQsIDAuNTUzODEzLCAwLjY1NjM2MyIsIFwKLSAgICAgICAgICAiMC4wNzM1NDMsIDAuMTc5MDM3LCAwLjI2MTAzNiwgMC4zNjMyNjcsIDAuNDY1Mzg5LCAwLjU2NzYwNSwgMC42NjgzNzgiLCBcCi0gICAgICAgICAgIjAuMDg3MDM2LCAwLjE5OTcyMywgMC4yODA4MiwgMC4zODMzODYsIDAuNDg1NDksIDAuNTg3NzIxLCAwLjY4OTc5OSIsIFwKLSAgICAgICAgICAiMC4wOTcyNjgsIDAuMjE3NTg0LCAwLjI5ODQwNCwgMC40MDA2MSwgMC41MDMzMDcsIDAuNjA1MzMsIDAuNzA3MzMiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDUyMDI3LCAwLjI2MjM2NywgMC40MzA2MzUsIDAuNjQxMTIzLCAwLjg1MTI1OCwgMS4wNjIxNSwgMS4yNzI0MSIsIFwKLSAgICAgICAgICAiMC4wNTM2NDIsIDAuMjYyMzAyLCAwLjQzMDcsIDAuNjQxMjE0LCAwLjg1MTE4MSwgMS4wNjE2OCwgMS4yNzI0MiIsIFwKLSAgICAgICAgICAiMC4wNjAyMTcsIDAuMjYyMjk3LCAwLjQzMDc0MiwgMC42NDEwNjEsIDAuODUxMjg3LCAxLjA2MTYyLCAxLjI3MjQyIiwgXAotICAgICAgICAgICIwLjA2ODYzMiwgMC4yNjM3NTEsIDAuNDMwNTM3LCAwLjY0MTAzLCAwLjg1MTQ3LCAxLjA2MTY1LCAxLjI3MjM4IiwgXAotICAgICAgICAgICIwLjA3Nzk4OCwgMC4yNjcyNzksIDAuNDMxMTk4LCAwLjY0MTA1NSwgMC44NTEzOTMsIDEuMDYxNjQsIDEuMjcyMTUiLCBcCi0gICAgICAgICAgIjAuMDkyOTc0LCAwLjI3NDg1OSwgMC40MzUxMzQsIDAuNjQxNDQsIDAuODUxMzc2LCAxLjA2MjAzLCAxLjI3MTg5IiwgXAotICAgICAgICAgICIwLjEwNTIwOSwgMC4yODMzMywgMC40NDA3NDEsIDAuNjQ0MDAyLCAwLjg1MTM1OSwgMS4wNjE3OCwgMS4yNzIwNSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTM3NDQsIDAuMjQ0MjAyLCAwLjM5NjMwNSwgMC41ODY3OTQsIDAuNzc3NDIsIDAuOTY3MDEyLCAxLjE1NzQ4IiwgXAotICAgICAgICAgICIwLjA2MjE1LCAwLjI1MjkxMSwgMC40MDQ5OTksIDAuNTk1MzY4LCAwLjc4NTUxMywgMC45NzU1OTYsIDEuMTY1ODIiLCBcCi0gICAgICAgICAgIjAuMDcyNjYxLCAwLjI2MzY1NSwgMC40MTU5MDcsIDAuNjA2MTgyLCAwLjc5NjQ0OSwgMC45ODY2OTEsIDEuMTc3MzMiLCBcCi0gICAgICAgICAgIjAuMDgzMzk5LCAwLjI3NDY0NCwgMC40MjY5MzcsIDAuNjE3MTgyLCAwLjgwNzUyMSwgMC45OTc2MjQsIDEuMTg4MTQiLCBcCi0gICAgICAgICAgIjAuMDkzODcyLCAwLjI4NTQyMywgMC40MzgwNDksIDAuNjI4MzEzLCAwLjgxODQ0OCwgMS4wMDg1NiwgMS4xOTg3NSIsIFwKLSAgICAgICAgICAiMC4xMDkwNTcsIDAuMzAzMDY3LCAwLjQ1NDksIDAuNjQ1OTQyLCAwLjgzNjQ0MywgMS4wMjY1NywgMS4yMTY2OCIsIFwKLSAgICAgICAgICAiMC4xMjA4NSwgMC4zMTc5MzMsIDAuNDcwODgsIDAuNjYxMzU0LCAwLjg1MTgwMiwgMS4wNDIwOCwgMS4yMzIyNiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTIxMzQsIDAuNDY4MTEyLCAwLjc3Mzc4NywgMS4xNDYwMywgMS41MjI0MiwgMS45MDk3OSwgMi4yODkzOSIsIFwKLSAgICAgICAgICAiMC4wOTIxMzMsIDAuNDcwMTYxLCAwLjc3MTM0MSwgMS4xNTIwMSwgMS41MjYxLCAxLjkwMzM0LCAyLjI4MDI3IiwgXAotICAgICAgICAgICIwLjA5NDI2NywgMC40NzAyMTIsIDAuNzcxMDc5LCAxLjE1MjU2LCAxLjUyNjIyLCAxLjkwOTM0LCAyLjI3NjIyIiwgXAotICAgICAgICAgICIwLjA5ODMyMSwgMC40NzA1NjMsIDAuNzczNzgzLCAxLjE0ODQ2LCAxLjUyNjIyLCAxLjkwMzM3LCAyLjI4MTI5IiwgXAotICAgICAgICAgICIwLjEwMzU1NSwgMC40Njk1MTIsIDAuNzY5MDg0LCAxLjE0NTc0LCAxLjUyMzQsIDEuOTAzNjMsIDIuMjg2OTEiLCBcCi0gICAgICAgICAgIjAuMTEzOTQsIDAuNDcwNzc3LCAwLjc3MTIyMywgMS4xNTE1OCwgMS41MzA0OSwgMS44OTk1MywgMi4yODc5NiIsIFwKLSAgICAgICAgICAiMC4xMjMxOTcsIDAuNDc0NDY0LCAwLjc3MTU0LCAxLjE0NjIsIDEuNTI1NSwgMS45MTAwNCwgMi4yNzU0MyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEwTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzMDA4LCAwLjAwMzA2NSwgMC4wMDMwNjYsIDAuMDAzMDY5LCAwLjAwMzA3MSwgMC4wMDMwNzksIDAuMDAzMDcyIiwgXAotICAgICAgICAgICIwLjAwMjk3OCwgMC4wMDMwMzQsIDAuMDAzMDQyLCAwLjAwMzA0MywgMC4wMDMwNDUsIDAuMDAzMDQ3LCAwLjAwMzA0OCIsIFwKLSAgICAgICAgICAiMC4wMDI5NTYsIDAuMDAzMDE4LCAwLjAwMzAyNiwgMC4wMDMwMywgMC4wMDMwMzEsIDAuMDAzMDMzLCAwLjAwMzAzNCIsIFwKLSAgICAgICAgICAiMC4wMDI5NDYsIDAuMDAzMDEyLCAwLjAwMzAyLCAwLjAwMzAyNCwgMC4wMDMwMjcsIDAuMDAzMDI4LCAwLjAwMzAyOSIsIFwKLSAgICAgICAgICAiMC4wMDI5MzYsIDAuMDAzMDA5LCAwLjAwMzAxOCwgMC4wMDMwMjQsIDAuMDAzMDI2LCAwLjAwMzAyNywgMC4wMDMwMjgiLCBcCi0gICAgICAgICAgIjAuMDAyOTU3LCAwLjAwMzAxMywgMC4wMDMwMjEsIDAuMDAzMDI1LCAwLjAwMzAyOCwgMC4wMDMwMywgMC4wMDMwMyIsIFwKLSAgICAgICAgICAiMC4wMDI5MzksIDAuMDAzMDA3LCAwLjAwMzAyMiwgMC4wMDMwMjcsIDAuMDAzMDMsIDAuMDAzMDMyLCAwLjAwMzAzNSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDA1LCAwLjAwNDExNCwgMC4wMDQxMjIsIDAuMDA0MTI2LCAwLjAwNDEyOCwgMC4wMDQxMjksIDAuMDA0MTMiLCBcCi0gICAgICAgICAgIjAuMDA0MDIsIDAuMDA0MDk1LCAwLjAwNDEwNSwgMC4wMDQxMSwgMC4wMDQxMTMsIDAuMDA0MTE0LCAwLjAwNDExNSIsIFwKLSAgICAgICAgICAiMC4wMDM5OTksIDAuMDA0MDg0LCAwLjAwNDA5NywgMC4wMDQxMDQsIDAuMDA0MTA3LCAwLjAwNDExLCAwLjAwNDExMSIsIFwKLSAgICAgICAgICAiMC4wMDM5ODUsIDAuMDA0MDc5LCAwLjAwNDA5NSwgMC4wMDQxMDQsIDAuMDA0MTA4LCAwLjAwNDExMSwgMC4wMDQxMTMiLCBcCi0gICAgICAgICAgIjAuMDAzOTgxLCAwLjAwNDA3OSwgMC4wMDQwOTcsIDAuMDA0MTA3LCAwLjAwNDExMiwgMC4wMDQxMTUsIDAuMDA0MTE4IiwgXAotICAgICAgICAgICIwLjAwMzk4OSwgMC4wMDQwODgsIDAuMDA0MTA4LCAwLjAwNDExOSwgMC4wMDQxMjYsIDAuMDA0MTMsIDAuMDA0MTMzIiwgXAotICAgICAgICAgICIwLjAwNDAwMywgMC4wMDQxMDEsIDAuMDA0MTIyLCAwLjAwNDEzNiwgMC4wMDQxNDMsIDAuMDA0MTQ4LCAwLjAwNDE1MSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkExTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzMDA4LCAwLjAwMzA2MywgMC4wMDMwNywgMC4wMDMwNzMsIDAuMDAzMDc1LCAwLjAwMzA3NiwgMC4wMDMwNzYiLCBcCi0gICAgICAgICAgIjAuMDAyOTc1LCAwLjAwMzAzNiwgMC4wMDMwNDYsIDAuMDAzMDQ4LCAwLjAwMzA1LCAwLjAwMzA1MSwgMC4wMDMwNSIsIFwKLSAgICAgICAgICAiMC4wMDI5NTcsIDAuMDAzMDI0LCAwLjAwMzAzMiwgMC4wMDMwMzcsIDAuMDAzMDM5LCAwLjAwMzA0MSwgMC4wMDMwNDIiLCBcCi0gICAgICAgICAgIjAuMDAyOTU1LCAwLjAwMzAyNSwgMC4wMDMwMzcsIDAuMDAzMDQxLCAwLjAwMzA0MywgMC4wMDMwNDYsIDAuMDAzMDQ3IiwgXAotICAgICAgICAgICIwLjAwMjk2NywgMC4wMDMwMzMsIDAuMDAzMDQzLCAwLjAwMzA0OCwgMC4wMDMwNTMsIDAuMDAzMDU1LCAwLjAwMzA1NSIsIFwKLSAgICAgICAgICAiMC4wMDI5OCwgMC4wMDMwNDcsIDAuMDAzMDYxLCAwLjAwMzA2OCwgMC4wMDMwNzEsIDAuMDAzMDc1LCAwLjAwMzA3NyIsIFwKLSAgICAgICAgICAiMC4wMDI5ODcsIDAuMDAzMDY0LCAwLjAwMzA3OSwgMC4wMDMwODcsIDAuMDAzMDkzLCAwLjAwMzA5NSwgMC4wMDMwOTciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDM3NTcsIDAuMDAzODE3LCAwLjAwMzgyNCwgMC4wMDM4MjcsIDAuMDAzODI5LCAwLjAwMzgzLCAwLjAwMzgzMSIsIFwKLSAgICAgICAgICAiMC4wMDM3MjIsIDAuMDAzNzk0LCAwLjAwMzgwMiwgMC4wMDM4MDcsIDAuMDAzODA5LCAwLjAwMzgxLCAwLjAwMzgxMSIsIFwKLSAgICAgICAgICAiMC4wMDM3LCAwLjAwMzc4MSwgMC4wMDM3OTMsIDAuMDAzNzk5LCAwLjAwMzgwMywgMC4wMDM4MDUsIDAuMDAzODA2IiwgXAotICAgICAgICAgICIwLjAwMzY3OSwgMC4wMDM3NzMsIDAuMDAzNzg4LCAwLjAwMzc5NiwgMC4wMDM4LCAwLjAwMzgwMywgMC4wMDM4MDUiLCBcCi0gICAgICAgICAgIjAuMDAzNjgyLCAwLjAwMzc3NCwgMC4wMDM3OTEsIDAuMDAzOCwgMC4wMDM4MDUsIDAuMDAzODA4LCAwLjAwMzgxIiwgXAotICAgICAgICAgICIwLjAwMzY3NSwgMC4wMDM3NzQsIDAuMDAzNzkyLCAwLjAwMzgwMiwgMC4wMDM4MDgsIDAuMDAzODExLCAwLjAwMzgxMSIsIFwKLSAgICAgICAgICAiMC4wMDM2OTMsIDAuMDAzNzg0LCAwLjAwMzgwNCwgMC4wMDM4MTYsIDAuMDAzODIyLCAwLjAwMzgyNiwgMC4wMDM4MjkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyOTUxLCAwLjAwMjk2LCAwLjAwMjk2MSwgMC4wMDI5NjEsIDAuMDAyOTYxLCAwLjAwMjk2MSwgMC4wMDI5NjEiLCBcCi0gICAgICAgICAgIjAuMDAyOTE0LCAwLjAwMjk0MywgMC4wMDI5NDcsIDAuMDAyOTQ5LCAwLjAwMjk1LCAwLjAwMjk0OSwgMC4wMDI5NTIiLCBcCi0gICAgICAgICAgIjAuMDAyOTA2LCAwLjAwMjkzMSwgMC4wMDI5NDMsIDAuMDAyOTQ1LCAwLjAwMjk0NiwgMC4wMDI5NDIsIDAuMDAyOTQ0IiwgXAotICAgICAgICAgICIwLjAwMjkwNywgMC4wMDI5MzUsIDAuMDAyOTQsIDAuMDAyOTQzLCAwLjAwMjk0NSwgMC4wMDI5NDMsIDAuMDAyOTQ0IiwgXAotICAgICAgICAgICIwLjAwMjkxNywgMC4wMDI5MzIsIDAuMDAyOTQxLCAwLjAwMjk0MiwgMC4wMDI5NDUsIDAuMDAyOTQ2LCAwLjAwMjk0NSIsIFwKLSAgICAgICAgICAiMC4wMDI5NTUsIDAuMDAyOTQsIDAuMDAyOTQsIDAuMDAyOTQ1LCAwLjAwMjk0NSwgMC4wMDI5NDYsIDAuMDAyOTQ2IiwgXAotICAgICAgICAgICIwLjAwMywgMC4wMDI5NTIsIDAuMDAyOTQ2LCAwLjAwMjk0NiwgMC4wMDI5NDgsIDAuMDAyOTQ4LCAwLjAwMjk0OSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTEwMiwgMC4wMDExMjEsIDAuMDAxMTIzLCAwLjAwMTEyNCwgMC4wMDExMjQsIDAuMDAxMTI1LCAwLjAwMTEyNSIsIFwKLSAgICAgICAgICAiMC4wMDEwMzEsIDAuMDAxMTAyLCAwLjAwMTExMSwgMC4wMDExMTYsIDAuMDAxMTE5LCAwLjAwMTEyLCAwLjAwMTEyMSIsIFwKLSAgICAgICAgICAiMC4wMDA5ODMsIDAuMDAxMDgxLCAwLjAwMTA5OCwgMC4wMDExMDcsIDAuMDAxMTExLCAwLjAwMTExNCwgMC4wMDExMTYiLCBcCi0gICAgICAgICAgIjAuMDAwOTU4LCAwLjAwMTA2NSwgMC4wMDEwODYsIDAuMDAxMDk4LCAwLjAwMTEwNSwgMC4wMDExMDksIDAuMDAxMTEyIiwgXAotICAgICAgICAgICIwLjAwMDk0NiwgMC4wMDEwNTEsIDAuMDAxMDc1LCAwLjAwMTA5LCAwLjAwMTA5OCwgMC4wMDExMDQsIDAuMDAxMTA3IiwgXAotICAgICAgICAgICIwLjAwMDk0MywgMC4wMDEwMzMsIDAuMDAxMDYyLCAwLjAwMTA3OSwgMC4wMDEwODksIDAuMDAxMDk2LCAwLjAwMTEwMSIsIFwKLSAgICAgICAgICAiMC4wMDA5NTMsIDAuMDAxMDIzLCAwLjAwMTA1MiwgMC4wMDEwNzEsIDAuMDAxMDgzLCAwLjAwMTA5LCAwLjAwMTA5NiIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogT0FJMkJCMlgxICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoT0FJMkJCMlgxKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMTkwNDY0OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBME4pICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYyNzM0OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYyNzE4OTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2MjczNDsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA0MDMsIDAuMDAwMzc4LCAwLjAwMDM3NCwgMC4wMDAzODIsIDAuMDAwMzkyLCAwLjAwMDQxOCwgMC4wMDA0NDUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDE1NzEsIDAuMDAxNTUzLCAwLjAwMTU1LCAwLjAwMTU1NiwgMC4wMDE1NjgsIDAuMDAxNTk1LCAwLjAwMTYxNyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQTFOKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2MzIyNzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MzIwODU7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjMyMjc7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNDEyLCAwLjAwMDM4OCwgMC4wMDAzODIsIDAuMDAwMzg3LCAwLjAwMDM5NywgMC4wMDA0MjIsIDAuMDAwNDQ3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxOTIsIDAuMDAxOTAxLCAwLjAwMTg5NywgMC4wMDE5MDMsIDAuMDAxOTEzLCAwLjAwMTkzOCwgMC4wMDE5NiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQjApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDg1MjM0MzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA4NDY3MDM7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwODUyMzQzOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDM2OCwgMC4wMDAzODgsIDAuMDAwMzkyLCAwLjAwMDM5NCwgMC4wMDAzOTUsIDAuMDAwMzk2LCAwLjAwMDM5OCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDQzLCAwLjAwMDQzMSwgMC4wMDA0MzEsIDAuMDAwNDMxLCAwLjAwMDQzMSwgMC4wMDA0MzEsIDAuMDAwNDMxIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCMSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwODk3OTQxOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDg5Nzg0OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDg5Nzk0MTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxMSwgMC4wMDAxMSwgMC4wMDAxMSwgMC4wMDAxMSwgMC4wMDAxMSwgMC4wMDAxMSwgMC4wMDAxMSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDM0NSwgMC4wMDAzNDUsIDAuMDAwMzQ1LCAwLjAwMDM0NSwgMC4wMDAzNDUsIDAuMDAwMzQ1LCAwLjAwMDM0NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjE0MTgxMzsKLSAgICBmdW5jdGlvbiA6ICIoISgoQjArQjEpICghKEEwTiBBMU4pKSkpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBME4iOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEyMDA4OSwgMC4xNjY2MTQsIDAuNDI5Njg4LCAwLjY2MTMyMiwgMC45NzA1MjEsIDEuNTg4NjksIDEuOTczOTUiLCBcCi0gICAgICAgICAgIjAuMTMwMjM0LCAwLjE3NjczOCwgMC40MzkzNzksIDAuNjcxMjU4LCAwLjk3OTk2LCAxLjU5NzUyLCAxLjk4Mzg4IiwgXAotICAgICAgICAgICIwLjE0MTU5MywgMC4xODgxNDEsIDAuNDUxMjc4LCAwLjY4MjkxNCwgMC45OTIxNTIsIDEuNjEwMjMsIDEuOTk1NTMiLCBcCi0gICAgICAgICAgIjAuMTUwOTA2LCAwLjE5NzQ1NCwgMC40NjAzNjEsIDAuNjkxOTkzLCAxLjAwMDgzLCAxLjYxODg3LCAyLjAwNTcyIiwgXAotICAgICAgICAgICIwLjE1ODY3NSwgMC4yMDUyNDMsIDAuNDY4MjMzLCAwLjcwMDA0MywgMS4wMDkyMywgMS42MjczNiwgMi4wMTI1OSIsIFwKLSAgICAgICAgICAiMC4xNjk0MjcsIDAuMjE1OTc4LCAwLjQ3OTA4OSwgMC43MTA1OTEsIDEuMDE5NDYsIDEuNjM3MDMsIDIuMDIzNjYiLCBcCi0gICAgICAgICAgIjAuMTc3NjMsIDAuMjI0MTUyLCAwLjQ4NzAzMywgMC43MTg3OTgsIDEuMDI4MDQsIDEuNjQ1MTQsIDIuMDMyNDYiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTk2NTA2LCAwLjI5MDM0OCwgMC44MjIyNzYsIDEuMjkxNjgsIDEuOTE3NjUsIDMuMTY5NDEsIDMuOTUyMzgiLCBcCi0gICAgICAgICAgIjAuMTk2NDc2LCAwLjI5MDMxNiwgMC44MjIyMTQsIDEuMjkxOTYsIDEuOTE3NDgsIDMuMTY5MzYsIDMuOTUxNzgiLCBcCi0gICAgICAgICAgIjAuMTk2NTE2LCAwLjI5MDMzNCwgMC44MjIyOTgsIDEuMjkxODYsIDEuOTE3NjgsIDMuMTY5NDYsIDMuOTUyMzYiLCBcCi0gICAgICAgICAgIjAuMTk2NTUzLCAwLjI5MDMwNywgMC44MjI0NjksIDEuMjkxNiwgMS45MTc3MiwgMy4xNjk0MiwgMy45NTIwNCIsIFwKLSAgICAgICAgICAiMC4xOTY1NjksIDAuMjkwMzgxLCAwLjgyMjI1MiwgMS4yOTE1MywgMS45MTc3MiwgMy4xNjk0NSwgMy45NTI1NCIsIFwKLSAgICAgICAgICAiMC4xOTY3MDIsIDAuMjkwNDE5LCAwLjgyMjQwNSwgMS4yOTE1OSwgMS45MTc4MSwgMy4xNjk1MiwgMy45NTE0IiwgXAotICAgICAgICAgICIwLjE5NjgyNCwgMC4yOTA0NjQsIDAuODIyMjkyLCAxLjI5MTU5LCAxLjkxNzc1LCAzLjE2OTU0LCAzLjk1MTkxIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEyNTc2NywgMC4xNzI2MDIsIDAuNDM3MTU4LCAwLjY3MDYxLCAwLjk4MTQ4NSwgMS42MDI4OSwgMS45OTI5MyIsIFwKLSAgICAgICAgICAiMC4xMzU1OCwgMC4xODI0MjksIDAuNDQ3MzI1LCAwLjY4MDUzOSwgMC45OTE2MzgsIDEuNjEzNzMsIDIuMDAyMjYiLCBcCi0gICAgICAgICAgIjAuMTQ2MjQzLCAwLjE5MzA3NywgMC40NTc3NTUsIDAuNjkxMTE0LCAxLjAwMjI2LCAxLjYyNDU4LCAyLjAxMjYxIiwgXAotICAgICAgICAgICIwLjE1NTAwMiwgMC4yMDE4NywgMC40NjY1ODUsIDAuNjk5NzI5LCAxLjAxMTAxLCAxLjYzMzA1LCAyLjAyMDcyIiwgXAotICAgICAgICAgICIwLjE2MjI0NiwgMC4yMDkwMzEsIDAuNDczNjU0LCAwLjcwNzEwNiwgMS4wMTgyMSwgMS42NDAxLCAyLjAyODciLCBcCi0gICAgICAgICAgIjAuMTcxOTQ5LCAwLjIxODczOCwgMC40ODM1NDYsIDAuNzE2OTM1LCAxLjAyNzk1LCAxLjY1LCAyLjAzODkiLCBcCi0gICAgICAgICAgIjAuMTc5MTUxLCAwLjIyNTk4NywgMC40OTA3MzgsIDAuNzIzOTA1LCAxLjAzNDgzLCAxLjY1NzU3LCAyLjA0NjI3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE4NTE2MywgMC4yNzczODEsIDAuNzk5MzY2LCAxLjI2MDM4LCAxLjg3NDA3LCAzLjEwMTM0LCAzLjg2OTg5IiwgXAotICAgICAgICAgICIwLjE4NTA3MSwgMC4yNzczOSwgMC43OTk1MDYsIDEuMjYwNDYsIDEuODc1NzUsIDMuMTA0NjcsIDMuODcwNTkiLCBcCi0gICAgICAgICAgIjAuMTg1MDU1LCAwLjI3NzI0MywgMC43OTkzNDUsIDEuMjU5OTgsIDEuODc1MDgsIDMuMTAyOTEsIDMuODY5NTYiLCBcCi0gICAgICAgICAgIjAuMTg1MjAzLCAwLjI3NzM1NSwgMC43OTk3MzYsIDEuMjU5OTcsIDEuODc1MDUsIDMuMTAyNjMsIDMuODY3ODMiLCBcCi0gICAgICAgICAgIjAuMTg1MjU4LCAwLjI3NzQxLCAwLjc5OTY0MiwgMS4yNjA2LCAxLjg3NTA0LCAzLjEwMjE2LCAzLjg3MDY3IiwgXAotICAgICAgICAgICIwLjE4NTQ0MSwgMC4yNzc0NDksIDAuNzk5NTg4LCAxLjI1OTkxLCAxLjg3NDc2LCAzLjEwMzkyLCAzLjg2OTY0IiwgXAotICAgICAgICAgICIwLjE4NTI5LCAwLjI3NzM2NiwgMC43OTkzOCwgMS4yNjA1NiwgMS44NzQyNCwgMy4xMDI4OCwgMy44Njk2NiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMU4iOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExODc3MSwgMC4xNjUyMzksIDAuNDI4MTI2LCAwLjY1OTg2NywgMC45Njg1MjIsIDEuNTg2MDQsIDEuOTczMDgiLCBcCi0gICAgICAgICAgIjAuMTI4OTQ4LCAwLjE3NTQ5NCwgMC40Mzg0ODgsIDAuNjcwMzk1LCAwLjk3OTIzNCwgMS41OTcyMSwgMS45ODMxMyIsIFwKLSAgICAgICAgICAiMC4xNDA3OTUsIDAuMTg3Mzk0LCAwLjQ1MDQ0LCAwLjY4MTgzMywgMC45OTExNDEsIDEuNjA5MzIsIDEuOTk0NjgiLCBcCi0gICAgICAgICAgIjAuMTUwNTQ0LCAwLjE5NzExMywgMC40NTk5OTYsIDAuNjkxNjEzLCAxLjAwMDc4LCAxLjYxODgyLCAyLjAwNDIyIiwgXAotICAgICAgICAgICIwLjE1OTI4NiwgMC4yMDU4NzEsIDAuNDY4ODczLCAwLjcwMDU3MSwgMS4wMDk2NCwgMS42Mjc4MSwgMi4wMTMyNSIsIFwKLSAgICAgICAgICAiMC4xNzA5MDcsIDAuMjE3NDUzLCAwLjQ4MDMxMSwgMC43MTIwODUsIDEuMDIxNTcsIDEuNjM4MzgsIDIuMDI0NjkiLCBcCi0gICAgICAgICAgIjAuMTc5ODc3LCAwLjIyNjM4OSwgMC40ODkyNCwgMC43MjA5MDgsIDEuMDMwMDQsIDEuNjQ4NCwgMi4wMzMxNyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xOTY1MjQsIDAuMjkwMjkzLCAwLjgyMjQ2NCwgMS4yOTE1OSwgMS45MTc0NCwgMy4xNjg5MSwgMy45NTIyIiwgXAotICAgICAgICAgICIwLjE5NjUyMSwgMC4yOTAzMDUsIDAuODIyNDI0LCAxLjI5MTYsIDEuOTE3MjgsIDMuMTY4MSwgMy45NTE2OSIsIFwKLSAgICAgICAgICAiMC4xOTY1MzUsIDAuMjkwMzEsIDAuODIyMzA0LCAxLjI5MTU3LCAxLjkxNzkxLCAzLjE2OTc1LCAzLjk1MjAyIiwgXAotICAgICAgICAgICIwLjE5NjU3MSwgMC4yOTAzNTksIDAuODIyMjU2LCAxLjI5MTYyLCAxLjkxNzg0LCAzLjE2OTIxLCAzLjk1MTk3IiwgXAotICAgICAgICAgICIwLjE5NjcyMiwgMC4yOTA0NTUsIDAuODIyNDQsIDEuMjkxODUsIDEuOTE3NzEsIDMuMTY5NDQsIDMuOTUyNjIiLCBcCi0gICAgICAgICAgIjAuMTk2OTc1LCAwLjI5MDQ3MiwgMC44MjIyOCwgMS4yOTE2NCwgMS45MTc2NywgMy4xNjkxMSwgMy45NTIzNSIsIFwKLSAgICAgICAgICAiMC4xOTcyNDcsIDAuMjkwNjQyLCAwLjgyMjQ2MywgMS4yOTE0OSwgMS45MTc2OSwgMy4xNjk0MywgMy45NTIxMyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMjQxMjgsIDAuMTcwOTA4LCAwLjQzNTMyOCwgMC42Njg5NTYsIDAuOTc5NTc2LCAxLjYwMTU4LCAxLjk5MDE5IiwgXAotICAgICAgICAgICIwLjEzMzk4OCwgMC4xODA3NjYsIDAuNDQ1MjYyLCAwLjY3ODM3MSwgMC45ODk2MTQsIDEuNjExNTEsIDIuMDAwNDciLCBcCi0gICAgICAgICAgIjAuMTQ1MjgxLCAwLjE5MjEwMywgMC40NTY2NDYsIDAuNjg5ODAxLCAxLjAwMDY0LCAxLjYyMjI5LCAyLjAxMjA5IiwgXAotICAgICAgICAgICIwLjE1NDQ0OSwgMC4yMDEzMTEsIDAuNDY1OTEsIDAuNjk5MDc0LCAxLjAxMDA4LCAxLjYzMjAxLCAyLjAyMTA5IiwgXAotICAgICAgICAgICIwLjE2MjU0LCAwLjIwOTQwNCwgMC40NzQwMzYsIDAuNzA3NjE4LCAxLjAxODc0LCAxLjY0MDY2LCAyLjAyODI0IiwgXAotICAgICAgICAgICIwLjE3MzE4NSwgMC4yMjAwNDUsIDAuNDg0Njk3LCAwLjcxNzkxOSwgMS4wMjg3OCwgMS42NTA0NCwgMi4wMzk0NiIsIFwKLSAgICAgICAgICAiMC4xODEwODcsIDAuMjI3OTIsIDAuNDkyNTE5LCAwLjcyNTgwMSwgMS4wMzY2NiwgMS42NTg0MiwgMi4wNDgxNiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNzk1NjgsIDAuMjcxNjI5LCAwLjc5MzUsIDEuMjU0NTUsIDEuODY3OTYsIDMuMDk3MDEsIDMuODYzMyIsIFwKLSAgICAgICAgICAiMC4xNzk1NSwgMC4yNzE2MTcsIDAuNzkzNjk3LCAxLjI1NDI5LCAxLjg2ODYyLCAzLjA5NzE2LCAzLjg2NDYiLCBcCi0gICAgICAgICAgIjAuMTc5NTcyLCAwLjI3MTYzMiwgMC43OTM0ODYsIDEuMjU0NTMsIDEuODY3NzksIDMuMDk1MDksIDMuODY3NjYiLCBcCi0gICAgICAgICAgIjAuMTc5NjgzLCAwLjI3MTY3MSwgMC43OTM0NDcsIDEuMjU0NjEsIDEuODY4MDQsIDMuMDk1ODIsIDMuODY0OTYiLCBcCi0gICAgICAgICAgIjAuMTc5NzUxLCAwLjI3MTY3NSwgMC43OTM0NjEsIDEuMjU0NTIsIDEuODY4MjgsIDMuMDk2NTUsIDMuODYyMjIiLCBcCi0gICAgICAgICAgIjAuMTc5ODEzLCAwLjI3MTY2MywgMC43OTM0NjcsIDEuMjU0NjUsIDEuODY4MjcsIDMuMDk1MTMsIDMuODY0MjIiLCBcCi0gICAgICAgICAgIjAuMTc5ODM0LCAwLjI3MTc4MSwgMC43OTM0OSwgMS4yNTQ0MiwgMS44NjgwOSwgMy4wOTUxNiwgMy44NjQ0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTQ1MTYsIDAuMTQwOTMsIDAuNDA0MTg0LCAwLjYzNjQxNSwgMC45NDU5NiwgMS41NjUyOSwgMS45NTE4OSIsIFwKLSAgICAgICAgICAiMC4xMDMyNTQsIDAuMTQ5ODYxLCAwLjQxMzAyMywgMC42NDUyOTQsIDAuOTU1MDA0LCAxLjU3NDI5LCAxLjk2MTA1IiwgXAotICAgICAgICAgICIwLjExMzI3MSwgMC4xNTk4OTksIDAuNDIzMjMyLCAwLjY1NTUxNCwgMC45NjUyMTgsIDEuNTg0NDcsIDEuOTcxMjgiLCBcCi0gICAgICAgICAgIjAuMTIzMjc3LCAwLjE2OTk0MSwgMC40MzM0NDksIDAuNjY1NjQ0LCAwLjk3NTM1NywgMS41OTQ0OCwgMS45ODExIiwgXAotICAgICAgICAgICIwLjEzMzA1NCwgMC4xNzk3NTUsIDAuNDQzNjI0LCAwLjY3NTYzNiwgMC45ODUzMDYsIDEuNjA0MzEsIDEuOTkxNjQiLCBcCi0gICAgICAgICAgIjAuMTQ5MTUzLCAwLjE5NTY4NSwgMC40NTk2NDYsIDAuNjkxOTY0LCAxLjAwMTY2LCAxLjYyMDgxLCAyLjAwNzUxIiwgXAotICAgICAgICAgICIwLjE2Mjg2NiwgMC4yMDk1MTYsIDAuNDczMjMsIDAuNzA1NjM3LCAxLjAxNTIyLCAxLjYzNDcxLCAyLjAyMjM2Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE4NzMwMSwgMC4yODEwOTEsIDAuODEzOTE1LCAxLjI4NDA4LCAxLjkxMTIyLCAzLjE2NjU0LCAzLjk1Mzk0IiwgXAotICAgICAgICAgICIwLjE4NzIzNiwgMC4yODExNDIsIDAuODEzODM2LCAxLjI4NDE2LCAxLjkxMTMxLCAzLjE2NTMsIDMuOTQ5MTgiLCBcCi0gICAgICAgICAgIjAuMTg3NzE2LCAwLjI4MTA5NCwgMC44MTM4MjUsIDEuMjg0MjIsIDEuOTExMTMsIDMuMTY1NDEsIDMuOTU0MDQiLCBcCi0gICAgICAgICAgIjAuMTg5ODc5LCAwLjI4MTkwOCwgMC44MTM4ODYsIDEuMjg0MDgsIDEuOTExMDksIDMuMTY1MDMsIDMuOTQ5NSIsIFwKLSAgICAgICAgICAiMC4xOTMwMDcsIDAuMjgzOTE1LCAwLjgxNDAwOCwgMS4yODQxOSwgMS45MTEyOCwgMy4xNjY2MSwgMy45NDk3NyIsIFwKLSAgICAgICAgICAiMC4yMDAyNDQsIDAuMjg4OTMxLCAwLjgxMzcyOCwgMS4yODQxMywgMS45MTA5OCwgMy4xNjU5NSwgMy45NTAwNCIsIFwKLSAgICAgICAgICAiMC4yMDc2NTEsIDAuMjk0NjU3LCAwLjgxNDY3NSwgMS4yODQyLCAxLjkxMTI1LCAzLjE2NTMsIDMuOTQ5NjMiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTAxNDA4LCAwLjE0ODI1OSwgMC40MTI5OSwgMC42NDYyNjgsIDAuOTU2OTk4LCAxLjU3OTA2LCAxLjk2NzciLCBcCi0gICAgICAgICAgIjAuMTEwNTkzLCAwLjE1NzU3LCAwLjQyMjIyNCwgMC42NTU0MjEsIDAuOTY2NzI5LCAxLjU4ODg3LCAxLjk3NjQ4IiwgXAotICAgICAgICAgICIwLjEyMjIxNCwgMC4xNjkyNTcsIDAuNDMzOTEyLCAwLjY2NzM2NywgMC45NzgxNiwgMS41OTk2OCwgMS45ODk3NCIsIFwKLSAgICAgICAgICAiMC4xMzM5MzcsIDAuMTgwNzk0LCAwLjQ0NTI5NSwgMC42Nzg0MzMsIDAuOTg5NDE1LCAxLjYxMTQ4LCAyLjAwMDY5IiwgXAotICAgICAgICAgICIwLjE0NTUxNiwgMC4xOTIyODksIDAuNDU3MTgxLCAwLjY5MDUyNCwgMS4wMDEzNywgMS42MjM0MiwgMi4wMTE5IiwgXAotICAgICAgICAgICIwLjE2NTA5OSwgMC4yMTExNzYsIDAuNDc1ODMsIDAuNzA5MDA4LCAxLjAxOTkxLCAxLjY0MjM5LCAyLjAzMDI2IiwgXAotICAgICAgICAgICIwLjE4MjA1LCAwLjIyODM5MSwgMC40OTIxOTgsIDAuNzI1Njg4LCAxLjAzNjQxLCAxLjY1ODE4LCAyLjA0Nzc5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE4NTE0OSwgMC4yNzcyMTYsIDAuNzk5NjMzLCAxLjI2MDQzLCAxLjg3NDM3LCAzLjEwMjEzLCAzLjg2OTU0IiwgXAotICAgICAgICAgICIwLjE4NTAzNSwgMC4yNzcyMiwgMC43OTk0NzQsIDEuMjYwNDIsIDEuODc0OTMsIDMuMTAyNCwgMy44Njg1NCIsIFwKLSAgICAgICAgICAiMC4xODUzNywgMC4yNzcxODEsIDAuNzk5MzkxLCAxLjI1OTk2LCAxLjg3NDAyLCAzLjEwMTMsIDMuODY5ODgiLCBcCi0gICAgICAgICAgIjAuMTg4MDM1LCAwLjI3Nzk5NSwgMC43OTk1MjcsIDEuMjYwNTYsIDEuODc0LCAzLjEwMjk3LCAzLjg3MTA0IiwgXAotICAgICAgICAgICIwLjE5MzA3NSwgMC4yODA2MTMsIDAuNzk5MzU3LCAxLjI1OTkzLCAxLjg3NDIsIDMuMTAzMjYsIDMuODY5NjEiLCBcCi0gICAgICAgICAgIjAuMjAyMzMsIDAuMjg3NzE4LCAwLjc5OTM0NCwgMS4yNjA1OSwgMS44NzQyNiwgMy4xMDIzMywgMy44Njg4MiIsIFwKLSAgICAgICAgICAiMC4yMTIwNzEsIDAuMjk0OTk5LCAwLjc5OTk3OSwgMS4yNTk4NywgMS44NzQyOCwgMy4xMDE0NywgMy44Njk3OCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDkxMTY4LCAwLjEzNzU1MywgMC40MDA3NjgsIDAuNjMzMDMxLCAwLjk0MjcyOSwgMS41NjE4NywgMS45NDg1NSIsIFwKLSAgICAgICAgICAiMC4xMDAyMTUsIDAuMTQ2NzgzLCAwLjQxMDI0OCwgMC42NDIyMzQsIDAuOTUxODQ3LCAxLjU3MTUxLCAxLjk1NzciLCBcCi0gICAgICAgICAgIjAuMTExNDQ1LCAwLjE1NzczNCwgMC40MjEzMTIsIDAuNjUzNjA0LCAwLjk2MzM3NywgMS41ODMwMiwgMS45NjkyOCIsIFwKLSAgICAgICAgICAiMC4xMjI5MTMsIDAuMTY5NTIsIDAuNDMyOTA4LCAwLjY2NTE1NywgMC45NzQ4MTIsIDEuNTkzOTYsIDEuOTgwNjMiLCBcCi0gICAgICAgICAgIjAuMTM0NTA1LCAwLjE4MTAxMSwgMC40NDQ0MDksIDAuNjc2NjcyLCAwLjk4NjI2NiwgMS42MDUzOSwgMS45OTI3NCIsIFwKLSAgICAgICAgICAiMC4xNTMyNzIsIDAuMTk5NTExLCAwLjQ2MjEzLCAwLjY5NTA3NiwgMS4wMDQ3MywgMS42MjM3NiwgMi4wMTA4NiIsIFwKLSAgICAgICAgICAiMC4xNjk2NTIsIDAuMjE1NzAxLCAwLjQ3ODg4NywgMC43MTExNywgMS4wMjA3NywgMS42Mzk4NiwgMi4wMjY2NyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xODcyOTQsIDAuMjgxMDk1LCAwLjgxMzg2NSwgMS4yODQwMSwgMS45MTEzNywgMy4xNjU3OCwgMy45NDk5IiwgXAotICAgICAgICAgICIwLjE4NzIzNCwgMC4yODExMjMsIDAuODE0MDE5LCAxLjI4NDIzLCAxLjkxMTI3LCAzLjE2NTY5LCAzLjk0OTY2IiwgXAotICAgICAgICAgICIwLjE4ODE4MiwgMC4yODExNCwgMC44MTM2ODQsIDEuMjgzOTksIDEuOTExMjcsIDMuMTc5NTEsIDMuOTQ5NzUiLCBcCi0gICAgICAgICAgIjAuMTkxODY2LCAwLjI4MjUxLCAwLjgxMzc1LCAxLjI4NDE1LCAxLjkxMTQxLCAzLjE3OTAyLCAzLjk0ODY4IiwgXAotICAgICAgICAgICIwLjE5NzM4OCwgMC4yODU4OTEsIDAuODEzNjg0LCAxLjI4NDE3LCAxLjkxMDk5LCAzLjE2NTc0LCAzLjk0ODY0IiwgXAotICAgICAgICAgICIwLjIwNzk4NywgMC4yOTM4ODgsIDAuODEzODg2LCAxLjI4NDA2LCAxLjkxMTI5LCAzLjE2NTU1LCAzLjk0OTE2IiwgXAotICAgICAgICAgICIwLjIxODg3OCwgMC4zMDI2NywgMC44MTQ1ODUsIDEuMjg0MTcsIDEuOTExMjcsIDMuMTY1NTksIDMuOTQ5NzMiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk2NjYzLCAwLjE0MzQzNiwgMC40MDgwNjEsIDAuNjQxMjEzLCAwLjk1MjA0MiwgMS41NzM5MiwgMS45NjMwMiIsIFwKLSAgICAgICAgICAiMC4xMDU5NywgMC4xNTI5MzEsIDAuNDE3NjQ0LCAwLjY1MDkxNywgMC45NjE5OTIsIDEuNTgzNTYsIDEuOTcyNDkiLCBcCi0gICAgICAgICAgIjAuMTE3NTQsIDAuMTY0NDM1LCAwLjQyOTA1NSwgMC42NjIzMzgsIDAuOTczNDUsIDEuNTk1MTksIDEuOTg0NzYiLCBcCi0gICAgICAgICAgIjAuMTI5MTM1LCAwLjE3NTc5NSwgMC40NDA1LCAwLjY3MzY0NSwgMC45ODQ1ODIsIDEuNjA2NTcsIDEuOTk1ODkiLCBcCi0gICAgICAgICAgIjAuMTQwNjQzLCAwLjE4NzcxMSwgMC40NTIxMDMsIDAuNjg1NzMzLCAwLjk5NjUwMSwgMS42MTg0NCwgMi4wMDcwMSIsIFwKLSAgICAgICAgICAiMC4xNjAwOTksIDAuMjA2MjY2LCAwLjQ3MTAzNiwgMC43MDQxNywgMS4wMTUwNiwgMS42Mzc1MiwgMi4wMjUzNSIsIFwKLSAgICAgICAgICAiMC4xNzcsIDAuMjIzNDgyLCAwLjQ4NzMxNCwgMC43MjA4MTMsIDEuMDMxNTUsIDEuNjUzMjksIDIuMDQyOSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNzk2MDksIDAuMjcxNjM0LCAwLjc5MzU5NSwgMS4yNTQ0OCwgMS44Njg3MSwgMy4wOTU4MSwgMy44NjM4NCIsIFwKLSAgICAgICAgICAiMC4xNzk1NTksIDAuMjcxNzYzLCAwLjc5MzUzNywgMS4yNTQzNiwgMS44NjgxNCwgMy4wOTY5NSwgMy44NjQzIiwgXAotICAgICAgICAgICIwLjE3OTc4OCwgMC4yNzE2OTcsIDAuNzkzNDc3LCAxLjI1Mzk0LCAxLjg2ODY4LCAzLjA5NjI4LCAzLjg2MzQ2IiwgXAotICAgICAgICAgICIwLjE4MjkxOCwgMC4yNzIzMywgMC43OTM2MjcsIDEuMjU0NTMsIDEuODY3ODUsIDMuMDk2NTYsIDMuODY0MzgiLCBcCi0gICAgICAgICAgIjAuMTg3ODU4LCAwLjI3NTA0MiwgMC43OTM0NzYsIDEuMjUzOTMsIDEuODY4MDgsIDMuMDk3MDIsIDMuODYzMTIiLCBcCi0gICAgICAgICAgIjAuMTk3MzU3LCAwLjI4MjUzNSwgMC43OTMzOCwgMS4yNTQ1NiwgMS44NjgxMiwgMy4wOTY0MSwgMy44NjE3NCIsIFwKLSAgICAgICAgICAiMC4yMDc1MTQsIDAuMjkwMjc2LCAwLjc5NDAzMiwgMS4yNTQwNywgMS44NjgxNSwgMy4wOTUxMywgMy44NjMyNiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEwTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzNTg2LCAwLjAwMzU4NywgMC4wMDM1ODYsIDAuMDAzNTg2LCAwLjAwMzU4NSwgMC4wMDM1ODQsIDAuMDAzNTg0IiwgXAotICAgICAgICAgICIwLjAwMzU1NSwgMC4wMDM1NTUsIDAuMDAzNTU2LCAwLjAwMzU1NiwgMC4wMDM1NTQsIDAuMDAzNTU1LCAwLjAwMzU1MiIsIFwKLSAgICAgICAgICAiMC4wMDM1NTYsIDAuMDAzNTU3LCAwLjAwMzU1OCwgMC4wMDM1NTgsIDAuMDAzNTU4LCAwLjAwMzU1NywgMC4wMDM1NTUiLCBcCi0gICAgICAgICAgIjAuMDAzNTU4LCAwLjAwMzU2LCAwLjAwMzU2MiwgMC4wMDM1NjIsIDAuMDAzNTYxLCAwLjAwMzU2LCAwLjAwMzU1OSIsIFwKLSAgICAgICAgICAiMC4wMDM1NjcsIDAuMDAzNTY5LCAwLjAwMzU3MSwgMC4wMDM1NzEsIDAuMDAzNTcxLCAwLjAwMzU3LCAwLjAwMzU2OSIsIFwKLSAgICAgICAgICAiMC4wMDM1OSwgMC4wMDM1OTMsIDAuMDAzNTk2LCAwLjAwMzU5NywgMC4wMDM1OTgsIDAuMDAzNTk2LCAwLjAwMzU5NSIsIFwKLSAgICAgICAgICAiMC4wMDM2MTUsIDAuMDAzNjE4LCAwLjAwMzYyMiwgMC4wMDM2MjMsIDAuMDAzNjIzLCAwLjAwMzYyLCAwLjAwMzYxOSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzA0NCwgMC4wMDMwNDUsIDAuMDAzMDQ1LCAwLjAwMzA0NSwgMC4wMDMwNDUsIDAuMDAzMDQ1LCAwLjAwMzA0NCIsIFwKLSAgICAgICAgICAiMC4wMDMwMjEsIDAuMDAzMDIzLCAwLjAwMzAyNSwgMC4wMDMwMjUsIDAuMDAzMDI1LCAwLjAwMzAyNCwgMC4wMDMwMjQiLCBcCi0gICAgICAgICAgIjAuMDAzMDE5LCAwLjAwMzAyMSwgMC4wMDMwMjUsIDAuMDAzMDI2LCAwLjAwMzAyNSwgMC4wMDMwMjUsIDAuMDAzMDI0IiwgXAotICAgICAgICAgICIwLjAwMzAxNywgMC4wMDMwMiwgMC4wMDMwMjUsIDAuMDAzMDI1LCAwLjAwMzAyNiwgMC4wMDMwMjUsIDAuMDAzMDI1IiwgXAotICAgICAgICAgICIwLjAwMzAyNiwgMC4wMDMwMjgsIDAuMDAzMDMzLCAwLjAwMzAzNSwgMC4wMDMwMzYsIDAuMDAzMDM1LCAwLjAwMzAzNSIsIFwKLSAgICAgICAgICAiMC4wMDMwNDUsIDAuMDAzMDQ4LCAwLjAwMzA1NiwgMC4wMDMwNTgsIDAuMDAzMDU4LCAwLjAwMzA1OCwgMC4wMDMwNTUiLCBcCi0gICAgICAgICAgIjAuMDAzMDY4LCAwLjAwMzA3MiwgMC4wMDMwNzgsIDAuMDAzMDc5LCAwLjAwMzA4MiwgMC4wMDMwNzksIDAuMDAzMDgxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTFOIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDMyNDcsIDAuMDAzMjQ5LCAwLjAwMzI0OSwgMC4wMDMyNDksIDAuMDAzMjQ4LCAwLjAwMzI0NiwgMC4wMDMyNDQiLCBcCi0gICAgICAgICAgIjAuMDAzMjE3LCAwLjAwMzIyLCAwLjAwMzIyMSwgMC4wMDMyMjEsIDAuMDAzMjIxLCAwLjAwMzIxOSwgMC4wMDMyMTgiLCBcCi0gICAgICAgICAgIjAuMDAzMjExLCAwLjAwMzIxNSwgMC4wMDMyMTgsIDAuMDAzMjIsIDAuMDAzMjE5LCAwLjAwMzIxNywgMC4wMDMyMTYiLCBcCi0gICAgICAgICAgIjAuMDAzMjE5LCAwLjAwMzIyNCwgMC4wMDMyMjgsIDAuMDAzMjI5LCAwLjAwMzIyOSwgMC4wMDMyMjgsIDAuMDAzMjI4IiwgXAotICAgICAgICAgICIwLjAwMzIyMiwgMC4wMDMyMjYsIDAuMDAzMjMyLCAwLjAwMzIzMywgMC4wMDMyMzMsIDAuMDAzMjMyLCAwLjAwMzIzMSIsIFwKLSAgICAgICAgICAiMC4wMDMyNCwgMC4wMDMyNDUsIDAuMDAzMjUyLCAwLjAwMzI1MywgMC4wMDMyNTMsIDAuMDAzMjUzLCAwLjAwMzI1MSIsIFwKLSAgICAgICAgICAiMC4wMDMyNjIsIDAuMDAzMjY2LCAwLjAwMzI3NSwgMC4wMDMyNzcsIDAuMDAzMjc3LCAwLjAwMzI3NiwgMC4wMDMyNzYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDMxMTgsIDAuMDAzMTIyLCAwLjAwMzEyOCwgMC4wMDMxMjgsIDAuMDAzMTI5LCAwLjAwMzEyOSwgMC4wMDMxMjgiLCBcCi0gICAgICAgICAgIjAuMDAzMDkyLCAwLjAwMzA5NywgMC4wMDMxMDUsIDAuMDAzMTA3LCAwLjAwMzEwOCwgMC4wMDMxMDgsIDAuMDAzMTA4IiwgXAotICAgICAgICAgICIwLjAwMzA4NywgMC4wMDMwOTUsIDAuMDAzMTA3LCAwLjAwMzExLCAwLjAwMzExMSwgMC4wMDMxMTIsIDAuMDAzMTEyIiwgXAotICAgICAgICAgICIwLjAwMzA5LCAwLjAwMzEsIDAuMDAzMTE1LCAwLjAwMzExOSwgMC4wMDMxMiwgMC4wMDMxMjIsIDAuMDAzMTIyIiwgXAotICAgICAgICAgICIwLjAwMzA4NywgMC4wMDMxLCAwLjAwMzExNiwgMC4wMDMxMTgsIDAuMDAzMTIxLCAwLjAwMzEyMywgMC4wMDMxMjMiLCBcCi0gICAgICAgICAgIjAuMDAzMTAzLCAwLjAwMzExNiwgMC4wMDMxMzYsIDAuMDAzMTQxLCAwLjAwMzE0MSwgMC4wMDMxNDUsIDAuMDAzMTQ1IiwgXAotICAgICAgICAgICIwLjAwMzEyLCAwLjAwMzEzNCwgMC4wMDMxNTYsIDAuMDAzMTYxLCAwLjAwMzE2MiwgMC4wMDMxNjQsIDAuMDAzMTY2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjM3NSwgMC4wMDIzNzYsIDAuMDAyMzc4LCAwLjAwMjM3OCwgMC4wMDIzNzgsIDAuMDAyMzc4LCAwLjAwMjM3OCIsIFwKLSAgICAgICAgICAiMC4wMDIzNywgMC4wMDIzNzYsIDAuMDAyMzg0LCAwLjAwMjM4NiwgMC4wMDIzODYsIDAuMDAyMzg3LCAwLjAwMjM4NyIsIFwKLSAgICAgICAgICAiMC4wMDIzNTgsIDAuMDAyMzY3LCAwLjAwMjM4MSwgMC4wMDIzODMsIDAuMDAyMzg2LCAwLjAwMjM4NiwgMC4wMDIzODYiLCBcCi0gICAgICAgICAgIjAuMDAyMzQ4LCAwLjAwMjM1OSwgMC4wMDIzNzgsIDAuMDAyMzgyLCAwLjAwMjM4NSwgMC4wMDIzODcsIDAuMDAyMzg3IiwgXAotICAgICAgICAgICIwLjAwMjM0LCAwLjAwMjM1MywgMC4wMDIzNzQsIDAuMDAyMzgsIDAuMDAyMzgzLCAwLjAwMjM4NSwgMC4wMDIzODYiLCBcCi0gICAgICAgICAgIjAuMDAyMzMzLCAwLjAwMjM0NiwgMC4wMDIzNywgMC4wMDIzNzcsIDAuMDAyMzgxLCAwLjAwMjM4NCwgMC4wMDIzODYiLCBcCi0gICAgICAgICAgIjAuMDAyMzMxLCAwLjAwMjM0MiwgMC4wMDIzNjcsIDAuMDAyMzc1LCAwLjAwMjM3OSwgMC4wMDIzODMsIDAuMDAyMzg1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxMDI4LCAwLjAwMTAyOSwgMC4wMDEwMjksIDAuMDAxMDI5LCAwLjAwMTAyOSwgMC4wMDEwMjcsIDAuMDAxMDI3IiwgXAotICAgICAgICAgICIwLjAwMTAwNSwgMC4wMDEwMSwgMC4wMDEwMTUsIDAuMDAxMDE1LCAwLjAwMTAxNSwgMC4wMDEwMTUsIDAuMDAxMDE0IiwgXAotICAgICAgICAgICIwLjAwMDk5NiwgMC4wMDEsIDAuMDAxMDEsIDAuMDAxMDEyLCAwLjAwMTAxMiwgMC4wMDEwMTIsIDAuMDAxMDEyIiwgXAotICAgICAgICAgICIwLjAwMDk5MiwgMC4wMDA5OTgsIDAuMDAxMDA4LCAwLjAwMTAxLCAwLjAwMTAxMSwgMC4wMDEwMTEsIDAuMDAxMDExIiwgXAotICAgICAgICAgICIwLjAwMDk5NiwgMC4wMDEsIDAuMDAxMDA2LCAwLjAwMTAwOCwgMC4wMDEwMSwgMC4wMDEwMSwgMC4wMDEwMSIsIFwKLSAgICAgICAgICAiMC4wMDEwMDUsIDAuMDAxMDAzLCAwLjAwMTAwOCwgMC4wMDEwMDksIDAuMDAxMDEsIDAuMDAxMDEsIDAuMDAxMDEiLCBcCi0gICAgICAgICAgIjAuMDAxMDE2LCAwLjAwMTAxMiwgMC4wMDEwMDksIDAuMDAxMDEsIDAuMDAxMDEsIDAuMDAxMDEsIDAuMDAxMDEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyMDI4LCAwLjAwMjAzLCAwLjAwMjAzMywgMC4wMDIwMzMsIDAuMDAyMDMyLCAwLjAwMjAzMywgMC4wMDIwMzQiLCBcCi0gICAgICAgICAgIjAuMDAyMDIsIDAuMDAyMDI3LCAwLjAwMjAzOCwgMC4wMDIwNCwgMC4wMDIwNDEsIDAuMDAyMDQyLCAwLjAwMjA0MiIsIFwKLSAgICAgICAgICAiMC4wMDIwMDYsIDAuMDAyMDE1LCAwLjAwMjAzNCwgMC4wMDIwMzgsIDAuMDAyMDM5LCAwLjAwMjA0MSwgMC4wMDIwNDIiLCBcCi0gICAgICAgICAgIjAuMDAxOTk3LCAwLjAwMjAwOSwgMC4wMDIwMywgMC4wMDIwMzYsIDAuMDAyMDM4LCAwLjAwMjA0MSwgMC4wMDIwNDEiLCBcCi0gICAgICAgICAgIjAuMDAxOTkzLCAwLjAwMjAwNSwgMC4wMDIwMjgsIDAuMDAyMDM0LCAwLjAwMjAzNywgMC4wMDIwNCwgMC4wMDIwNDEiLCBcCi0gICAgICAgICAgIjAuMDAxOTk4LCAwLjAwMjAwNCwgMC4wMDIwMjQsIDAuMDAyMDMyLCAwLjAwMjAzNiwgMC4wMDIwMzksIDAuMDAyMDQiLCBcCi0gICAgICAgICAgIjAuMDAyMDA2LCAwLjAwMjAwNywgMC4wMDIwMjUsIDAuMDAyMDMxLCAwLjAwMjAzNSwgMC4wMDIwMzksIDAuMDAyMDQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDA3MTcsIDAuMDAwNzE5LCAwLjAwMDcyMiwgMC4wMDA3MjIsIDAuMDAwNzIyLCAwLjAwMDcyMiwgMC4wMDA3MjIiLCBcCi0gICAgICAgICAgIjAuMDAwNzA2LCAwLjAwMDcxNSwgMC4wMDA3MjgsIDAuMDAwNzMsIDAuMDAwNzMyLCAwLjAwMDczMiwgMC4wMDA3MzIiLCBcCi0gICAgICAgICAgIjAuMDAwNjg3LCAwLjAwMDcwMSwgMC4wMDA3MjQsIDAuMDAwNzI4LCAwLjAwMDczMSwgMC4wMDA3MzMsIDAuMDAwNzMzIiwgXAotICAgICAgICAgICIwLjAwMDY3NSwgMC4wMDA2OTQsIDAuMDAwNzIsIDAuMDAwNzI2LCAwLjAwMDczLCAwLjAwMDczMiwgMC4wMDA3MzMiLCBcCi0gICAgICAgICAgIjAuMDAwNjczLCAwLjAwMDY4NCwgMC4wMDA3MTYsIDAuMDAwNzIzLCAwLjAwMDcyNywgMC4wMDA3MzEsIDAuMDAwNzMyIiwgXAotICAgICAgICAgICIwLjAwMDY3MywgMC4wMDA2ODIsIDAuMDAwNzEyLCAwLjAwMDcyLCAwLjAwMDcyNiwgMC4wMDA3MywgMC4wMDA3MzEiLCBcCi0gICAgICAgICAgIjAuMDAwNjc5LCAwLjAwMDY4NiwgMC4wMDA3MSwgMC4wMDA3MTksIDAuMDAwNzI0LCAwLjAwMDcyOSwgMC4wMDA3MyIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogT0FJMkJCMlhMICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoT0FJMkJCMlhMKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMTI3ODc2OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBME4pICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYzODg3NDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2Mzg3ODE7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjM4ODc0OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDI0LCAwLjAwMDIxMywgMC4wMDAyMTksIDAuMDAwMjIzLCAwLjAwMDIzNCwgMC4wMDAyNTksIDAuMDAwMjg2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxNDMxLCAwLjAwMTQxMiwgMC4wMDE0MTEsIDAuMDAxNDE5LCAwLjAwMTQzMSwgMC4wMDE0NTksIDAuMDAxNDgyIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihBMU4pICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY1NTQ1MzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2NTUxMzU7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjU1NDUzOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDIyMiwgMC4wMDAxOTcsIDAuMDAwMTkyLCAwLjAwMDE5OCwgMC4wMDAyMDksIDAuMDAwMjM0LCAwLjAwMDI1OCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTk1NiwgMC4wMDE5MzcsIDAuMDAxOTM1LCAwLjAwMTk0LCAwLjAwMTk1MSwgMC4wMDE5NzYsIDAuMDAxOTk5Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjQ5ODM2OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDY0NzA5OTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2NDk4MzY7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjAxLCAwLjAwMDIxNCwgMC4wMDAyMTcsIDAuMDAwMjE4LCAwLjAwMDIxOCwgMC4wMDAyMTksIDAuMDAwMjIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyNCwgMC4wMDAyNDEsIDAuMDAwMjQxLCAwLjAwMDI0MSwgMC4wMDAyNDEsIDAuMDAwMjQxLCAwLjAwMDI0MSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQjEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY5MjQ0NzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2OTI0MTc7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjkyNDQ3OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDA1OSwgMC4wMDAwNTksIDAuMDAwMDU5LCAwLjAwMDA1OSwgMC4wMDAwNTksIDAuMDAwMDU5LCAwLjAwMDA1OSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDE2OSwgMC4wMDAxNjksIDAuMDAwMTY5LCAwLjAwMDE2OSwgMC4wMDAxNjksIDAuMDAwMTY5LCAwLjAwMDE2OSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjA4MDU0NTU7Ci0gICAgZnVuY3Rpb24gOiAiKCEoKEIwK0IxKSAoIShBME4gQTFOKSkpKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTBOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNzkxNzQsIDAuMjA1ODc4LCAwLjQ0NTgyMiwgMC44NDQ5MTUsIDEuMjQzMTksIDIuMTczODksIDIuNzA1MiIsIFwKLSAgICAgICAgICAiMC4xODkxMzUsIDAuMjE1OCwgMC40NTU3MTksIDAuODU0NzIzLCAxLjI1MzU1LCAyLjE4NDA1LCAyLjcxNTQ3IiwgXAotICAgICAgICAgICIwLjE5OTc5NSwgMC4yMjY1MzcsIDAuNDY2NDUyLCAwLjg2NTU1NiwgMS4yNjQyOCwgMi4xOTQ5MSwgMi43MjYzOCIsIFwKLSAgICAgICAgICAiMC4yMDgyOSwgMC4yMzUwMTQsIDAuNDc0NzYzLCAwLjg3MzU3MSwgMS4yNzI4NCwgMi4yMDMzMiwgMi43MzM5NCIsIFwKLSAgICAgICAgICAiMC4yMTU0MjQsIDAuMjQyMTMxLCAwLjQ4MjA0MywgMC44ODA4MDMsIDEuMjc5OTcsIDIuMjEwMzgsIDIuNzQxOTMiLCBcCi0gICAgICAgICAgIjAuMjI1MTgxLCAwLjI1MTg3OSwgMC40OTE3NjksIDAuODkwNywgMS4yOTAxNCwgMi4yMjAyMiwgMi43NTEyMiIsIFwKLSAgICAgICAgICAiMC4yMzI2MDYsIDAuMjU5MzE3LCAwLjQ5OTA4NiwgMC44OTgwNjIsIDEuMjk3MDMsIDIuMjI4NzQsIDIuNzU4ODEiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzE2NTE5LCAwLjM3MDQyOSwgMC44NTU0MDMsIDEuNjYzNywgMi40NzE3OSwgNC4zNTgxLCA1LjQzMzg4IiwgXAotICAgICAgICAgICIwLjMxNjUyMSwgMC4zNzA0OTEsIDAuODU1NDA3LCAxLjY2MzY2LCAyLjQ3MTgxLCA0LjM1NjU2LCA1LjQzMzc4IiwgXAotICAgICAgICAgICIwLjMxNjUyMiwgMC4zNzA0OTMsIDAuODU1MzYsIDEuNjYzMzksIDIuNDcxNTQsIDQuMzU2OTUsIDUuNDM0NjYiLCBcCi0gICAgICAgICAgIjAuMzE2NTQ2LCAwLjM3MDQzNSwgMC44NTU1MjQsIDEuNjYzNTEsIDIuNDcxNzQsIDQuMzU3MTQsIDUuNDM0MTYiLCBcCi0gICAgICAgICAgIjAuMzE2NTM5LCAwLjM3MDQ5NSwgMC44NTU2NTksIDEuNjYzNzUsIDIuNDcxMzcsIDQuMzU1OTgsIDUuNDM1MTYiLCBcCi0gICAgICAgICAgIjAuMzE2NTcyLCAwLjM3MDQ1MiwgMC44NTU2MSwgMS42NjM2NywgMi40NzE2NiwgNC4zNTc1MywgNS40MzQ0IiwgXAotICAgICAgICAgICIwLjMxNjYyNCwgMC4zNzA0NzksIDAuODU1NDE1LCAxLjY2Mzc1LCAyLjQ3MTYzLCA0LjM1NzA4LCA1LjQzNDIxIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE3ODIxNiwgMC4yMDQwMiwgMC40MzYwMjgsIDAuODIyNzY2LCAxLjIwOTMyLCAyLjExMTI0LCAyLjYyNjQ5IiwgXAotICAgICAgICAgICIwLjE4OCwgMC4yMTM3NjksIDAuNDQ2MDQzLCAwLjgzMjU3MywgMS4yMTk1NywgMi4xMjIyNiwgMi42MzY0IiwgXAotICAgICAgICAgICIwLjE5ODIsIDAuMjI0MDEyLCAwLjQ1NjMyNywgMC44NDI3MjcsIDEuMjI5NSwgMi4xMzE3MywgMi42NDY0NiIsIFwKLSAgICAgICAgICAiMC4yMDYwNzMsIDAuMjMxOTE2LCAwLjQ2Mzk0NSwgMC44NTA3NzYsIDEuMjM3MzgsIDIuMTM5NjEsIDIuNjUzNjMiLCBcCi0gICAgICAgICAgIjAuMjEyNTMsIDAuMjM4NDE4LCAwLjQ3MDUzMSwgMC44NTcxODYsIDEuMjQzOTcsIDIuMTQ1NzksIDIuNjYwODgiLCBcCi0gICAgICAgICAgIjAuMjIxNTIyLCAwLjI0NzM0LCAwLjQ3OTQ4OCwgMC44NjYxOTMsIDEuMjUzMDEsIDIuMTU0NjQsIDIuNjY5ODciLCBcCi0gICAgICAgICAgIjAuMjI3OTk2LCAwLjI1Mzk1NiwgMC40ODYyMDksIDAuODcyNTgyLCAxLjI1OTI2LCAyLjE2MTAyLCAyLjY3NjQzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI4Nzg4LCAwLjMzODc5MSwgMC43OTcxOTMsIDEuNTYwMzUsIDIuMzIzNTUsIDQuMTAzNTIsIDUuMTIwNzUiLCBcCi0gICAgICAgICAgIjAuMjg3OTQ0LCAwLjMzODc4OSwgMC43OTcyOTQsIDEuNTYwOTYsIDIuMzI0MTEsIDQuMTA1MzksIDUuMTIxNDEiLCBcCi0gICAgICAgICAgIjAuMjg3ODc3LCAwLjMzODc5LCAwLjc5NzIwNywgMS41NjA4MiwgMi4zMjQxLCA0LjEwNDQ5LCA1LjEyMTEyIiwgXAotICAgICAgICAgICIwLjI4NzgxLCAwLjMzODkyNCwgMC43OTcyNTUsIDEuNTYwOTQsIDIuMzI0MjMsIDQuMTA0NCwgNS4xMjE5MSIsIFwKLSAgICAgICAgICAiMC4yODgxMjIsIDAuMzM4NzM5LCAwLjc5NjkyOSwgMS41NjA2MiwgMi4zMjQxNywgNC4xMDM4OSwgNS4xMjIxNCIsIFwKLSAgICAgICAgICAiMC4yODgwMTEsIDAuMzM4OTE5LCAwLjc5Njk0LCAxLjU2MDI3LCAyLjMyMzksIDQuMTA1MTYsIDUuMTIyMzgiLCBcCi0gICAgICAgICAgIjAuMjg4MDIsIDAuMzM4OTQ2LCAwLjc5NjksIDEuNTYwNTEsIDIuMzI0MjUsIDQuMTA0MjksIDUuMTIzMDkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTFOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNzk4NDMsIDAuMjA2NTcyLCAwLjQ0NjM5MywgMC44NDU1NDQsIDEuMjQzOTMsIDIuMTc1MDIsIDIuNzA1MDIiLCBcCi0gICAgICAgICAgIjAuMTkwMSwgMC4yMTY4MzgsIDAuNDU2NTI3LCAwLjg1NTkyNiwgMS4yNTQ3MiwgMi4xODU3LCAyLjcxNjg4IiwgXAotICAgICAgICAgICIwLjIwMTc0NiwgMC4yMjg1MTQsIDAuNDY4NTIxLCAwLjg2NzIwMywgMS4yNjU2NiwgMi4xOTY2MSwgMi43Mjc4IiwgXAotICAgICAgICAgICIwLjIxMTIyNywgMC4yMzc5NzQsIDAuNDc3NzQsIDAuODc3MzAyLCAxLjI3NTc0LCAyLjIwNjg5LCAyLjczODMiLCBcCi0gICAgICAgICAgIjAuMjE5NjIzLCAwLjI0NjM0OSwgMC40ODYyMzYsIDAuODg1MDY5LCAxLjI4MzkxLCAyLjIxMzc0LCAyLjc0NTc1IiwgXAotICAgICAgICAgICIwLjIzMDk5NCwgMC4yNTc3MDcsIDAuNDk3NDc5LCAwLjg5NjU4LCAxLjI5NTE4LCAyLjIyNTg3LCAyLjc1ODA5IiwgXAotICAgICAgICAgICIwLjIzOTQxLCAwLjI2NjEyMSwgMC41MDU5MzUsIDAuOTA1MDI4LCAxLjMwMzg2LCAyLjIzNDA4LCAyLjc2NjM0Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMxNjUzNCwgMC4zNzA0NjksIDAuODU1NjM3LCAxLjY2MzI3LCAyLjQ3MTU3LCA0LjM1NjksIDUuNDM0MDMiLCBcCi0gICAgICAgICAgIjAuMzE2NTQxLCAwLjM3MDQyNiwgMC44NTU2NiwgMS42NjM3NCwgMi40NzE2MywgNC4zNTYzNywgNS40MzQ4NSIsIFwKLSAgICAgICAgICAiMC4zMTY1MjQsIDAuMzcwNDMxLCAwLjg1NTQyMywgMS42NjM2NiwgMi40NzE0MywgNC4zNTc4NCwgNS40MzQ5MiIsIFwKLSAgICAgICAgICAiMC4zMTY1NjUsIDAuMzcwNDIzLCAwLjg1NTYwNSwgMS42NjMyMSwgMi40NzE2NiwgNC4zNTU4OCwgNS40MzQ5IiwgXAotICAgICAgICAgICIwLjMxNjU2OSwgMC4zNzA0OTEsIDAuODU1NDA4LCAxLjY2MzgsIDIuNDcxMjcsIDQuMzU2MjgsIDUuNDM0OTEiLCBcCi0gICAgICAgICAgIjAuMzE2Njc0LCAwLjM3MDUyNSwgMC44NTU2NTgsIDEuNjYzNzQsIDIuNDcxNTksIDQuMzU2NDIsIDUuNDM0OTIiLCBcCi0gICAgICAgICAgIjAuMzE2Nzg1LCAwLjM3MDY0MywgMC44NTU1NzQsIDEuNjYzNjgsIDIuNDcxNjUsIDQuMzU4MiwgNS40MzQ3MSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNzg0NzYsIDAuMjA0MjgyLCAwLjQzNjI0OSwgMC44MjI2MTEsIDEuMjA5NjYsIDIuMTExNDIsIDIuNjI2MDQiLCBcCi0gICAgICAgICAgIjAuMTg4Mzc0LCAwLjIxNDE5OSwgMC40NDYxNDEsIDAuODMyODg1LCAxLjIxOTY0LCAyLjEyMjI0LCAyLjYzNjM1IiwgXAotICAgICAgICAgICIwLjE5OTQ4MywgMC4yMjUzMSwgMC40NTc1MjMsIDAuODQzODMyLCAxLjIzMDQ4LCAyLjEzMjE1LCAyLjY0NzQ1IiwgXAotICAgICAgICAgICIwLjIwODY2NSwgMC4yMzQ0NzUsIDAuNDY2NTM5LCAwLjg1Mjk5NiwgMS4yMzk4MiwgMi4xNDE2NSwgMi42NTU5MyIsIFwKLSAgICAgICAgICAiMC4yMTYyNTQsIDAuMjQyMDg3LCAwLjQ3NDE1NiwgMC44NjA3ODQsIDEuMjQ3MjEsIDIuMTQ5NDEsIDIuNjY0MzQiLCBcCi0gICAgICAgICAgIjAuMjI2NTUxLCAwLjI1MjMwMiwgMC40ODQ2MzgsIDAuODcxMTA4LCAxLjI1NzkxLCAyLjE1OTQ2LCAyLjY3NDUzIiwgXAotICAgICAgICAgICIwLjIzNDE3MiwgMC4yNjAwMDMsIDAuNDkyMDYyLCAwLjg3OTAxNCwgMS4yNjUxMiwgMi4xNjc0OSwgMi42ODIyMSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yODMwMSwgMC4zMzM4MjIsIDAuNzkxOTkzLCAxLjU1NTEsIDIuMzE4ODQsIDQuMDk4MTUsIDUuMTE2NzMiLCBcCi0gICAgICAgICAgIjAuMjgyOTQ3LCAwLjMzMzc1MywgMC43OTIwODUsIDEuNTU1NzksIDIuMzE4NDUsIDQuMDk5NTMsIDUuMTE1MzQiLCBcCi0gICAgICAgICAgIjAuMjgyODkxLCAwLjMzMzc2LCAwLjc5MTg3OSwgMS41NTUzNCwgMi4zMTg0NSwgNC4wOTgwMiwgNS4xMTYxNyIsIFwKLSAgICAgICAgICAiMC4yODI4MzgsIDAuMzMzNzU4LCAwLjc5MjA4MiwgMS41NTUyMSwgMi4zMTg0NywgNC4wOTcyNiwgNS4xMTQ5MyIsIFwKLSAgICAgICAgICAiMC4yODI5MDUsIDAuMzMzNzg4LCAwLjc5MTY4NSwgMS41NTUzNCwgMi4zMTc4NiwgNC4wOTgzMywgNS4xMTYxNCIsIFwKLSAgICAgICAgICAiMC4yODMwNSwgMC4zMzM4NDcsIDAuNzkxNzQ4LCAxLjU1NTIxLCAyLjMxODM4LCA0LjA5ODE0LCA1LjExNjc5IiwgXAotICAgICAgICAgICIwLjI4Mjk5NCwgMC4zMzM4MTQsIDAuNzkxNzYsIDEuNTU1ODYsIDIuMzE4NDksIDQuMDk4MjQsIDUuMTE3MzQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjAiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE1MTA5NSwgMC4xNzc3MDgsIDAuNDE3MTcxLCAwLjgxNjE4OCwgMS4yMTQ5OCwgMi4xNDU5MywgMi42NzYyNiIsIFwKLSAgICAgICAgICAiMC4xNTk3MiwgMC4xODYzMTgsIDAuNDI1Nzk2LCAwLjgyNDc1MSwgMS4yMjM3NywgMi4xNTM2OSwgMi42ODQ0MiIsIFwKLSAgICAgICAgICAiMC4xNjk2ODMsIDAuMTk2Mjc2LCAwLjQzNTc3LCAwLjgzNDg1LCAxLjIzMzgsIDIuMTYzODMsIDIuNjk0OCIsIFwKLSAgICAgICAgICAiMC4xNzkzOSwgMC4yMDU5ODksIDAuNDQ1NTc0LCAwLjg0NDY2NSwgMS4yNDM1LCAyLjE3MzczLCAyLjcwNDMxIiwgXAotICAgICAgICAgICIwLjE4OTE3MywgMC4yMTU4MDUsIDAuNDU1NjE2LCAwLjg1NDYyLCAxLjI1MzUxLCAyLjE4MzUsIDIuNzE0MjEiLCBcCi0gICAgICAgICAgIjAuMjA0NzUzLCAwLjIzMTU2OCwgMC40NzA3MjYsIDAuODcwMjQzLCAxLjI2OTE0LCAyLjE5ODk2LCAyLjczMDM0IiwgXAotICAgICAgICAgICIwLjIxODc4MywgMC4yNDU1NjksIDAuNDg1MTQ0LCAwLjg4NDM5LCAxLjI4MzM4LCAyLjIxMzQ4LCAyLjc0NDIiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzAxMjgxLCAwLjM1NTA5MiwgMC44Mzk1MzcsIDEuNjQ3MzEsIDIuNDU0MzMsIDQuMzQ1OCwgNS40MTYyNiIsIFwKLSAgICAgICAgICAiMC4zMDEyNzcsIDAuMzU1MDYsIDAuODM5NTM1LCAxLjY0NzAyLCAyLjQ1NTAzLCA0LjMzODg0LCA1LjQxNjAzIiwgXAotICAgICAgICAgICIwLjMwMTM0MSwgMC4zNTUxMjMsIDAuODM5NTg0LCAxLjY0NzE4LCAyLjQ1NTI2LCA0LjM0NiwgNS40MjE3MiIsIFwKLSAgICAgICAgICAiMC4zMDE5OTYsIDAuMzU1MzcyLCAwLjgzOTUwOCwgMS42NDcxNywgMi40NjIxMywgNC4zMzk4NCwgNS40MTY4NiIsIFwKLSAgICAgICAgICAiMC4zMDM5MTMsIDAuMzU2NzI3LCAwLjgzOTU0MiwgMS42NDcxOCwgMi40NTUwMiwgNC4zMzk3MiwgNS40MjA0OCIsIFwKLSAgICAgICAgICAiMC4zMDg3MzQsIDAuMzYwNzg0LCAwLjgzOTQ5MywgMS42NDcyNSwgMi40NTQ1NSwgNC4zNDA2NSwgNS40MTc2NCIsIFwKLSAgICAgICAgICAiMC4zMTQ1NTUsIDAuMzY1NzQ3LCAwLjg0MDI2MiwgMS42NDY5NCwgMi40NTUwMiwgNC4zMzk2NywgNS40MTUyOCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNTE0ODIsIDAuMTc3MjM5LCAwLjQwOTM5LCAwLjc5NTc5MiwgMS4xODIxLCAyLjA4MzYxLCAyLjU5OTcxIiwgXAotICAgICAgICAgICIwLjE2MDY4MiwgMC4xODY0OTYsIDAuNDE4NzgxLCAwLjgwNTY3NSwgMS4xOTE1OCwgMi4wOTM1LCAyLjYwOTQ0IiwgXAotICAgICAgICAgICIwLjE3MjE5MiwgMC4xOTc5OTQsIDAuNDMwMTQ2LCAwLjgxNjcxMiwgMS4yMDM1MywgMi4xMDU0LCAyLjYxOTk0IiwgXAotICAgICAgICAgICIwLjE4Mzc5MSwgMC4yMDk4NjMsIDAuNDQxOTA1LCAwLjgyODI2NywgMS4yMTQ3LCAyLjExNjIzLCAyLjYzMjExIiwgXAotICAgICAgICAgICIwLjE5NTQ5NCwgMC4yMjEzNCwgMC40NTM0MDYsIDAuODM5OTg2LCAxLjIyNjM5LCAyLjEyODg2LCAyLjY0NDEiLCBcCi0gICAgICAgICAgIjAuMjE0MzY5LCAwLjI0MDE1MiwgMC40NzIzMDcsIDAuODU4ODExLCAxLjI0NTMxLCAyLjE0NzcyLCAyLjY2Mjc4IiwgXAotICAgICAgICAgICIwLjIzMTY0NCwgMC4yNTY4NjEsIDAuNDg4NjI5LCAwLjg3NTE1OCwgMS4yNjE2NywgMi4xNjM0NSwgMi42Nzg5MiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yODc4OTUsIDAuMzM4NzgsIDAuNzk2ODUzLCAxLjU2MDU1LCAyLjMyMzY5LCA0LjEwMjQ0LCA1LjEyMTQ1IiwgXAotICAgICAgICAgICIwLjI4Nzg2NywgMC4zMzg5MTYsIDAuNzk2OTIzLCAxLjU2MDg2LCAyLjMyMzk0LCA0LjEwNDcyLCA1LjEyMDM2IiwgXAotICAgICAgICAgICIwLjI4Nzg1LCAwLjMzODY1NywgMC43OTY5MDIsIDEuNTYwNzQsIDIuMzI0MDUsIDQuMTAzNTMsIDUuMTIzNDEiLCBcCi0gICAgICAgICAgIjAuMjg4NDc3LCAwLjMzODY5MywgMC43OTY4OTcsIDEuNTYwNTUsIDIuMzIyNjEsIDQuMTAyNjUsIDUuMTIyMjciLCBcCi0gICAgICAgICAgIjAuMjkwODk2LCAwLjM0MDMxNiwgMC43OTcyODksIDEuNTYwNzEsIDIuMzIzOTEsIDQuMTA0ODEsIDUuMTIwNzgiLCBcCi0gICAgICAgICAgIjAuMjk3NjQ5LCAwLjM0NTc5OCwgMC43OTY4MzUsIDEuNTYwMjIsIDIuMzIyNzgsIDQuMTA0MzYsIDUuMTIxODEiLCBcCi0gICAgICAgICAgIjAuMzA0ODQ4LCAwLjM1MjgwMiwgMC43OTcyNzIsIDEuNTYwNTIsIDIuMzIyNiwgNC4xMDQ0MywgNS4xMjMyOCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTQ4MTI2LCAwLjE3NDcwMywgMC40MTQxNDEsIDAuODEzMjA1LCAxLjIxMTk2LCAyLjE0Mjk1LCAyLjY3MzI3IiwgXAotICAgICAgICAgICIwLjE1NzIwMywgMC4xODM4MTgsIDAuNDIzMzE4LCAwLjgyMjMxNywgMS4yMjExNywgMi4xNTA4NywgMi42ODIwNSIsIFwKLSAgICAgICAgICAiMC4xNjgzNjcsIDAuMTk0OTgzLCAwLjQzNDU1NCwgMC44MzM1MjcsIDEuMjMyNTgsIDIuMTYyNDksIDIuNjkzMTkiLCBcCi0gICAgICAgICAgIjAuMTc5Njk5LCAwLjIwNjMzNywgMC40NDU5MjQsIDAuODQ0ODgxLCAxLjI0MzczLCAyLjE3MzQ2LCAyLjcwNDY5IiwgXAotICAgICAgICAgICIwLjE5MTAyMywgMC4yMTc2OTcsIDAuNDU3MjgyLCAwLjg1NjI5MSwgMS4yNTUxNywgMi4xODU0MywgMi43MTY1IiwgXAotICAgICAgICAgICIwLjIwOTI0NCwgMC4yMzU4MzQsIDAuNDc1NDM0LCAwLjg3NDQ2MiwgMS4yNzMxNSwgMi4yMDMyNCwgMi43MzQxMSIsIFwKLSAgICAgICAgICAiMC4yMjUzMjYsIDAuMjUxOTY5LCAwLjQ5MTI5NSwgMC44OTAzNiwgMS4yODkxOCwgMi4yMjAxMiwgMi43NDk5NCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMDEyOTMsIDAuMzU1MTA3LCAwLjgzOTQ3NywgMS42NDcxOCwgMi40NjM0NywgNC4zNDAzNywgNS40MTYwNiIsIFwKLSAgICAgICAgICAiMC4zMDEyNTYsIDAuMzU1MTExLCAwLjgzOTQ2OCwgMS42NDY4MSwgMi40NTQ3NywgNC4zMzg4MiwgNS40MTU1OSIsIFwKLSAgICAgICAgICAiMC4zMDEyNTksIDAuMzU1MTEzLCAwLjgzOTQ4OSwgMS42NDY5OCwgMi40NTUyNiwgNC4zMzkyMiwgNS40MTY2MiIsIFwKLSAgICAgICAgICAiMC4zMDIzMzEsIDAuMzU1NDI0LCAwLjgzOTQ5OSwgMS42NDY3NywgMi40NTUsIDQuMzQwMTYsIDUuNDE3NTgiLCBcCi0gICAgICAgICAgIjAuMzA1MzMyLCAwLjM1NzQ3NiwgMC44Mzk0OTIsIDEuNjQ3MTYsIDIuNDU0NjUsIDQuMzM5NTksIDUuNDE1MzEiLCBcCi0gICAgICAgICAgIjAuMzEyODAzLCAwLjM2MzY0NiwgMC44MzkzNTEsIDEuNjQ3MTIsIDIuNDU0NDUsIDQuMzQ0NjUsIDUuNDE2MTkiLCBcCi0gICAgICAgICAgIjAuMzIxMzI1LCAwLjM3MTA4MiwgMC44NDAwOTMsIDEuNjQ3MTQsIDIuNDU1MDEsIDQuMzM5MzIsIDUuNDIwNTciKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTQ3MzY4LCAwLjE3MzEwOSwgMC40MDUxMTgsIDAuNzkxNTEzLCAxLjE3Nzg1LCAyLjA3OTU0LCAyLjU5NTQ0IiwgXAotICAgICAgICAgICIwLjE1NjcwMywgMC4xODI1MjEsIDAuNDE0NzM1LCAwLjgwMTI5NywgMS4xODc0NiwgMi4wODkyOSwgMi42MDUzNCIsIFwKLSAgICAgICAgICAiMC4xNjgxNjYsIDAuMTkzOTg5LCAwLjQyNjEyOCwgMC44MTI3NzQsIDEuMTk5NDgsIDIuMTAxMzMsIDIuNjE1NjMiLCBcCi0gICAgICAgICAgIjAuMTc5NzExLCAwLjIwNTc2NywgMC40Mzc3NjUsIDAuODI0MTQxLCAxLjIxMDk3LCAyLjExMjczLCAyLjYyNzk2IiwgXAotICAgICAgICAgICIwLjE5MTM4NiwgMC4yMTcxOTgsIDAuNDQ5MzIsIDAuODM1OTAyLCAxLjIyMjI1LCAyLjEyNDY5LCAyLjYzOTk5IiwgXAotICAgICAgICAgICIwLjIxMDE2OSwgMC4yMzU5NzEsIDAuNDY4MjQxLCAwLjg1NDYyMiwgMS4yNDEyMSwgMi4xNDMxLCAyLjY1ODgiLCBcCi0gICAgICAgICAgIjAuMjI3NDI1LCAwLjI1MjYyOCwgMC40ODQ0OTEsIDAuODcxMDcsIDEuMjU3NTYsIDIuMTU4OTYsIDIuNjc0NzciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjgyOTM1LCAwLjMzMzgwOSwgMC43OTE2OTYsIDEuNTU1MjQsIDIuMzE4MzgsIDQuMDk4ODcsIDUuMTE2MTgiLCBcCi0gICAgICAgICAgIjAuMjgyOTI1LCAwLjMzMzk0NywgMC43OTE3MjUsIDEuNTU2MDcsIDIuMzE4NjksIDQuMDk5MywgNS4xMTU2OCIsIFwKLSAgICAgICAgICAiMC4yODI4OTYsIDAuMzMzODk4LCAwLjc5MTcxMywgMS41NTU1NywgMi4zMTg5LCA0LjA5NzQzLCA1LjExNDMxIiwgXAotICAgICAgICAgICIwLjI4MzMwMiwgMC4zMzM3MjIsIDAuNzkyMTExLCAxLjU1NTIsIDIuMzE4MywgNC4wOTgyNSwgNS4xMTY1OSIsIFwKLSAgICAgICAgICAiMC4yODYwNTEsIDAuMzM1NDEzLCAwLjc5MjA5NSwgMS41NTUzOSwgMi4zMTg0NywgNC4wOTkyMSwgNS4xMTQ1NSIsIFwKLSAgICAgICAgICAiMC4yOTMwMzQsIDAuMzQxMDE1LCAwLjc5MTY0NSwgMS41NTUxOCwgMi4zMTczNSwgNC4wOTk3LCA1LjExNDU1IiwgXAotICAgICAgICAgICIwLjMwMDUyOSwgMC4zNDgxOTksIDAuNzkyMTExLCAxLjU1NTI0LCAyLjMxNzIyLCA0LjA5Njk1LCA1LjExNzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBME4iOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjcwMSwgMC4wMDI3MDEsIDAuMDAyNzAxLCAwLjAwMjcsIDAuMDAyNjk4LCAwLjAwMjY5NSwgMC4wMDI2OTMiLCBcCi0gICAgICAgICAgIjAuMDAyNjczLCAwLjAwMjY3MywgMC4wMDI2NzMsIDAuMDAyNjcxLCAwLjAwMjY3MSwgMC4wMDI2NjgsIDAuMDAyNjY3IiwgXAotICAgICAgICAgICIwLjAwMjY3NiwgMC4wMDI2NzYsIDAuMDAyNjc2LCAwLjAwMjY3NSwgMC4wMDI2NzMsIDAuMDAyNjcxLCAwLjAwMjY3IiwgXAotICAgICAgICAgICIwLjAwMjY3NywgMC4wMDI2NzcsIDAuMDAyNjc4LCAwLjAwMjY3NywgMC4wMDI2NzYsIDAuMDAyNjc0LCAwLjAwMjY3MSIsIFwKLSAgICAgICAgICAiMC4wMDI2OTIsIDAuMDAyNjkyLCAwLjAwMjY5MiwgMC4wMDI2OTEsIDAuMDAyNjksIDAuMDAyNjg4LCAwLjAwMjY4NiIsIFwKLSAgICAgICAgICAiMC4wMDI3MTksIDAuMDAyNzE4LCAwLjAwMjcxOCwgMC4wMDI3MiwgMC4wMDI3MTgsIDAuMDAyNzE2LCAwLjAwMjcxNSIsIFwKLSAgICAgICAgICAiMC4wMDI3NDUsIDAuMDAyNzQ1LCAwLjAwMjc0NiwgMC4wMDI3NDQsIDAuMDAyNzQzLCAwLjAwMjczOSwgMC4wMDI3MzQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDIxODksIDAuMDAyMTg5LCAwLjAwMjE4OSwgMC4wMDIxODksIDAuMDAyMTg5LCAwLjAwMjE4OCwgMC4wMDIxODgiLCBcCi0gICAgICAgICAgIjAuMDAyMTY2LCAwLjAwMjE2NiwgMC4wMDIxNjcsIDAuMDAyMTY3LCAwLjAwMjE2NywgMC4wMDIxNjYsIDAuMDAyMTY2IiwgXAotICAgICAgICAgICIwLjAwMjE2NiwgMC4wMDIxNjYsIDAuMDAyMTY4LCAwLjAwMjE2OCwgMC4wMDIxNjgsIDAuMDAyMTY3LCAwLjAwMjE2NyIsIFwKLSAgICAgICAgICAiMC4wMDIxNzIsIDAuMDAyMTczLCAwLjAwMjE3MiwgMC4wMDIxNzQsIDAuMDAyMTcyLCAwLjAwMjE3NCwgMC4wMDIxNzQiLCBcCi0gICAgICAgICAgIjAuMDAyMTg0LCAwLjAwMjE4MiwgMC4wMDIxODQsIDAuMDAyMTg1LCAwLjAwMjE4NSwgMC4wMDIxODcsIDAuMDAyMTg2IiwgXAotICAgICAgICAgICIwLjAwMjIwNywgMC4wMDIyMDgsIDAuMDAyMjExLCAwLjAwMjIxMSwgMC4wMDIyMTIsIDAuMDAyMjA5LCAwLjAwMjIxMSIsIFwKLSAgICAgICAgICAiMC4wMDIyMjksIDAuMDAyMjMyLCAwLjAwMjIzNiwgMC4wMDIyMzcsIDAuMDAyMjM3LCAwLjAwMjIzNiwgMC4wMDIyMzYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMU4iOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjQ5MiwgMC4wMDI0OTIsIDAuMDAyNDkyLCAwLjAwMjQ5MSwgMC4wMDI0OSwgMC4wMDI0ODcsIDAuMDAyNDg3IiwgXAotICAgICAgICAgICIwLjAwMjQ2MiwgMC4wMDI0NjMsIDAuMDAyNDYzLCAwLjAwMjQ2MiwgMC4wMDI0NjEsIDAuMDAyNDU4LCAwLjAwMjQ1NiIsIFwKLSAgICAgICAgICAiMC4wMDI0NjEsIDAuMDAyNDYyLCAwLjAwMjQ2MywgMC4wMDI0NjIsIDAuMDAyNDYxLCAwLjAwMjQ1OSwgMC4wMDI0NTciLCBcCi0gICAgICAgICAgIjAuMDAyNDcyLCAwLjAwMjQ3MiwgMC4wMDI0NzQsIDAuMDAyNDc0LCAwLjAwMjQ3MywgMC4wMDI0NywgMC4wMDI0NjgiLCBcCi0gICAgICAgICAgIjAuMDAyNDc0LCAwLjAwMjQ3NCwgMC4wMDI0NzUsIDAuMDAyNDc1LCAwLjAwMjQ3NCwgMC4wMDI0NzIsIDAuMDAyNDciLCBcCi0gICAgICAgICAgIjAuMDAyNDk2LCAwLjAwMjQ5NywgMC4wMDI0OTksIDAuMDAyNDk5LCAwLjAwMjQ5OSwgMC4wMDI0OTYsIDAuMDAyNDk0IiwgXAotICAgICAgICAgICIwLjAwMjUyLCAwLjAwMjUyLCAwLjAwMjUyMywgMC4wMDI1MjMsIDAuMDAyNTIyLCAwLjAwMjUyLCAwLjAwMjUxOCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjU4MywgMC4wMDI1ODQsIDAuMDAyNTg2LCAwLjAwMjU4NywgMC4wMDI1ODcsIDAuMDAyNTg2LCAwLjAwMjU4NiIsIFwKLSAgICAgICAgICAiMC4wMDI1NjIsIDAuMDAyNTYyLCAwLjAwMjU2NiwgMC4wMDI1NjcsIDAuMDAyNTY3LCAwLjAwMjU2NywgMC4wMDI1NjciLCBcCi0gICAgICAgICAgIjAuMDAyNTYxLCAwLjAwMjU2MiwgMC4wMDI1NjcsIDAuMDAyNTY5LCAwLjAwMjU2OSwgMC4wMDI1NjksIDAuMDAyNTY5IiwgXAotICAgICAgICAgICIwLjAwMjU2MywgMC4wMDI1NjQsIDAuMDAyNTcsIDAuMDAyNTcyLCAwLjAwMjU3MywgMC4wMDI1NzMsIDAuMDAyNTczIiwgXAotICAgICAgICAgICIwLjAwMjU2OSwgMC4wMDI1NywgMC4wMDI1NzgsIDAuMDAyNTc5LCAwLjAwMjU4LCAwLjAwMjU4MiwgMC4wMDI1ODIiLCBcCi0gICAgICAgICAgIjAuMDAyNTg5LCAwLjAwMjU4OSwgMC4wMDI2LCAwLjAwMjYwMywgMC4wMDI2MDEsIDAuMDAyNjAyLCAwLjAwMjYwMiIsIFwKLSAgICAgICAgICAiMC4wMDI2MDksIDAuMDAyNjEyLCAwLjAwMjYyMiwgMC4wMDI2MjYsIDAuMDAyNjI0LCAwLjAwMjYyNywgMC4wMDI2MjciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxNTQ1LCAwLjAwMTU0NSwgMC4wMDE1NDYsIDAuMDAxNTQ2LCAwLjAwMTU0NiwgMC4wMDE1NDYsIDAuMDAxNTQ2IiwgXAotICAgICAgICAgICIwLjAwMTU0NiwgMC4wMDE1NDcsIDAuMDAxNTUxLCAwLjAwMTU1MSwgMC4wMDE1NTMsIDAuMDAxNTUsIDAuMDAxNTUzIiwgXAotICAgICAgICAgICIwLjAwMTU0MiwgMC4wMDE1NDMsIDAuMDAxNTQ5LCAwLjAwMTU1MSwgMC4wMDE1NTIsIDAuMDAxNTUzLCAwLjAwMTU1MyIsIFwKLSAgICAgICAgICAiMC4wMDE1MzgsIDAuMDAxNTQsIDAuMDAxNTQ3LCAwLjAwMTU1LCAwLjAwMTU1MSwgMC4wMDE1NTMsIDAuMDAxNTUzIiwgXAotICAgICAgICAgICIwLjAwMTUzMywgMC4wMDE1MzcsIDAuMDAxNTQ3LCAwLjAwMTU1LCAwLjAwMTU1MSwgMC4wMDE1NTIsIDAuMDAxNTUzIiwgXAotICAgICAgICAgICIwLjAwMTUzMSwgMC4wMDE1MzQsIDAuMDAxNTQyLCAwLjAwMTU0OSwgMC4wMDE1NTEsIDAuMDAxNTUzLCAwLjAwMTU1MyIsIFwKLSAgICAgICAgICAiMC4wMDE1MywgMC4wMDE1MzIsIDAuMDAxNTQzLCAwLjAwMTU0OCwgMC4wMDE1NSwgMC4wMDE1NTIsIDAuMDAxNTUyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwNTA5LCAwLjAwMDUwOSwgMC4wMDA1MSwgMC4wMDA1MDksIDAuMDAwNTA5LCAwLjAwMDUwOCwgMC4wMDA1MDgiLCBcCi0gICAgICAgICAgIjAuMDAwNDk5LCAwLjAwMDUsIDAuMDAwNTAyLCAwLjAwMDUwMywgMC4wMDA1MDIsIDAuMDAwNTAyLCAwLjAwMDUwMSIsIFwKLSAgICAgICAgICAiMC4wMDA0OTYsIDAuMDAwNDk3LCAwLjAwMDUsIDAuMDAwNTAxLCAwLjAwMDUwMSwgMC4wMDA1MDEsIDAuMDAwNSIsIFwKLSAgICAgICAgICAiMC4wMDA0OTUsIDAuMDAwNDk1LCAwLjAwMDQ5OSwgMC4wMDA1LCAwLjAwMDUwMSwgMC4wMDA1LCAwLjAwMDUiLCBcCi0gICAgICAgICAgIjAuMDAwNDk2LCAwLjAwMDQ5NiwgMC4wMDA0OTksIDAuMDAwNSwgMC4wMDA1LCAwLjAwMDUsIDAuMDAwNSIsIFwKLSAgICAgICAgICAiMC4wMDA0OTgsIDAuMDAwNDk4LCAwLjAwMDQ5OSwgMC4wMDA1LCAwLjAwMDUsIDAuMDAwNSwgMC4wMDA1IiwgXAotICAgICAgICAgICIwLjAwMDUwNCwgMC4wMDA1MDIsIDAuMDAwNTAxLCAwLjAwMDUwMSwgMC4wMDA1MDEsIDAuMDAwNSwgMC4wMDA1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTM1NiwgMC4wMDEzNTYsIDAuMDAxMzU2LCAwLjAwMTM1NywgMC4wMDEzNTcsIDAuMDAxMzU3LCAwLjAwMTM1NyIsIFwKLSAgICAgICAgICAiMC4wMDEzNTUsIDAuMDAxMzU2LCAwLjAwMTM2LCAwLjAwMTM2MiwgMC4wMDEzNjIsIDAuMDAxMzYzLCAwLjAwMTM2MyIsIFwKLSAgICAgICAgICAiMC4wMDEzNSwgMC4wMDEzNTIsIDAuMDAxMzU5LCAwLjAwMTM2MSwgMC4wMDEzNjIsIDAuMDAxMzYzLCAwLjAwMTM2MyIsIFwKLSAgICAgICAgICAiMC4wMDEzNDcsIDAuMDAxMzQ5LCAwLjAwMTM1NywgMC4wMDEzNjEsIDAuMDAxMzYyLCAwLjAwMTM2MywgMC4wMDEzNjMiLCBcCi0gICAgICAgICAgIjAuMDAxMzQ1LCAwLjAwMTM0NywgMC4wMDEzNTYsIDAuMDAxMzYsIDAuMDAxMzYyLCAwLjAwMTM2MywgMC4wMDEzNjMiLCBcCi0gICAgICAgICAgIjAuMDAxMzQ1LCAwLjAwMTM0NywgMC4wMDEzNTUsIDAuMDAxMzU5LCAwLjAwMTM2MSwgMC4wMDEzNjMsIDAuMDAxMzYzIiwgXAotICAgICAgICAgICIwLjAwMTM0OCwgMC4wMDEzNDksIDAuMDAxMzU1LCAwLjAwMTM1OSwgMC4wMDEzNjEsIDAuMDAxMzYzLCAwLjAwMTM2MyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDM2LCAwLjAwMDM2LCAwLjAwMDM2MiwgMC4wMDAzNjEsIDAuMDAwMzYxLCAwLjAwMDM2MSwgMC4wMDAzNjEiLCBcCi0gICAgICAgICAgIjAuMDAwMzU3LCAwLjAwMDM1OSwgMC4wMDAzNjQsIDAuMDAwMzY2LCAwLjAwMDM2NywgMC4wMDAzNjcsIDAuMDAwMzY3IiwgXAotICAgICAgICAgICIwLjAwMDM1MSwgMC4wMDAzNTQsIDAuMDAwMzYyLCAwLjAwMDM2NSwgMC4wMDAzNjYsIDAuMDAwMzY3LCAwLjAwMDM2NyIsIFwKLSAgICAgICAgICAiMC4wMDAzNDcsIDAuMDAwMzQ4LCAwLjAwMDM2LCAwLjAwMDM2NCwgMC4wMDAzNjYsIDAuMDAwMzY3LCAwLjAwMDM2NyIsIFwKLSAgICAgICAgICAiMC4wMDAzNDQsIDAuMDAwMzQ3LCAwLjAwMDM1OCwgMC4wMDAzNjMsIDAuMDAwMzY1LCAwLjAwMDM2NiwgMC4wMDAzNjciLCBcCi0gICAgICAgICAgIjAuMDAwMzQxLCAwLjAwMDM0NCwgMC4wMDAzNTYsIDAuMDAwMzYyLCAwLjAwMDM2NCwgMC4wMDAzNjYsIDAuMDAwMzY2IiwgXAotICAgICAgICAgICIwLjAwMDM0NCwgMC4wMDAzNDQsIDAuMDAwMzU1LCAwLjAwMDM2MSwgMC4wMDAzNjMsIDAuMDAwMzY1LCAwLjAwMDM2NiIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IE9BSTMxWEwgKgotICogLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoT0FJMzFYTCkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjA3ODgxNTM7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2MDY2NDI7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjA1MzI7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjA2NjQyOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDIyNiwgMC4wMDAyMjYsIDAuMDAwMjI2LCAwLjAwMDIyNiwgMC4wMDAyMjYsIDAuMDAwMjI2LCAwLjAwMDIyNiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDIyNywgMC4wMDAyMjcsIDAuMDAwMjI3LCAwLjAwMDIyNywgMC4wMDAyMjcsIDAuMDAwMjI3LCAwLjAwMDIyNyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQTEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY0OTE2ODsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2NDgxNTE7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjQ5MTY4OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDIyNiwgMC4wMDAyMjYsIDAuMDAwMjI2LCAwLjAwMDIyNiwgMC4wMDAyMjYsIDAuMDAwMjI2LCAwLjAwMDIyNiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDIyNywgMC4wMDAyMjcsIDAuMDAwMjI3LCAwLjAwMDIyNywgMC4wMDAyMjcsIDAuMDAwMjI3LCAwLjAwMDIyNyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQTIpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY2NDk3NTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2NjQ5NzU7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjYzMzYyOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDIyNiwgMC4wMDAyMjYsIDAuMDAwMjI2LCAwLjAwMDIyNiwgMC4wMDAyMjYsIDAuMDAwMjI2LCAwLjAwMDIyNiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDIyNywgMC4wMDAyMjcsIDAuMDAwMjI3LCAwLjAwMDIyNywgMC4wMDAyMjcsIDAuMDAwMjI3LCAwLjAwMDIyNyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQjApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY1NzYyMTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2NTczMzc7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjU3NjIxOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDM4NiwgMC4wMDAzODcsIDAuMDAwMzg2LCAwLjAwMDM4NywgMC4wMDAzODcsIDAuMDAwMzg3LCAwLjAwMDM4NiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDI1NywgMC4wMDAyNTcsIDAuMDAwMjU3LCAwLjAwMDI1NywgMC4wMDAyNTcsIDAuMDAwMjU3LCAwLjAwMDI1NyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjA1NTAzNzM7Ci0gICAgZnVuY3Rpb24gOiAiKCEoKChBMCtBMSkrQTIpIEIwKSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMzcxMTIsIDAuMjc2NTQyLCAwLjYzMTAyNCwgMS4yMjA3MiwgMS44MDkwMiwgMy4xODQyOCwgMy45NjgzOCIsIFwKLSAgICAgICAgICAiMC4yNDUyODEsIDAuMjg0NjM5LCAwLjYzODksIDEuMjI4ODksIDEuODE3NjksIDMuMTkyMzUsIDMuOTc2MDEiLCBcCi0gICAgICAgICAgIjAuMjUzNzQ1LCAwLjI5MzE3OCwgMC42NDc1NTQsIDEuMjM2ODEsIDEuODI2NzEsIDMuMTk5OTQsIDMuOTg0NzIiLCBcCi0gICAgICAgICAgIjAuMjYxNjM2LCAwLjMwMTE1NiwgMC42NTU1MTYsIDEuMjQ0NDIsIDEuODM0MzcsIDMuMjA4NjcsIDMuOTkyNzMiLCBcCi0gICAgICAgICAgIjAuMjY5NDA3LCAwLjMwODgsIDAuNjYzMDM4LCAxLjI1MzM0LCAxLjg0MjEsIDMuMjE1NjksIDQuMDAwNTkiLCBcCi0gICAgICAgICAgIjAuMjgxNjA5LCAwLjMyMTAzNywgMC42NzUyNDksIDEuMjY1MTMsIDEuODU0NzEsIDMuMjI4MTIsIDQuMDEyODgiLCBcCi0gICAgICAgICAgIjAuMjkyMzksIDAuMzMxODQsIDAuNjg2MjQzLCAxLjI3NTU1LCAxLjg2NDc2LCAzLjIzOTI4LCA0LjAyNDM5Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjQ0NDgzOSwgMC41MjM2NiwgMS4yMzQ4MiwgMi40MTk2NSwgMy42MDM2NSwgNi4zNjQxNywgNy45NDYwMSIsIFwKLSAgICAgICAgICAiMC40NDQ1NTMsIDAuNTIzNDg3LCAxLjIzNDY5LCAyLjQxOTY1LCAzLjYwNDMxLCA2LjM2NDM0LCA3Ljk0NDU0IiwgXAotICAgICAgICAgICIwLjQ0NDU0OSwgMC41MjM1NywgMS4yMzQ3NCwgMi40MTk0MywgMy42MDQwMiwgNi4zNjY2OCwgNy45NDUwMyIsIFwKLSAgICAgICAgICAiMC40NDQ4MTMsIDAuNTIzNTYsIDEuMjM0NjYsIDIuNDIwNDIsIDMuNjA0NTUsIDYuMzY2MDEsIDcuOTQyMDUiLCBcCi0gICAgICAgICAgIjAuNDQ0OTYxLCAwLjUyMzk1NCwgMS4yMzQ3NiwgMi40MTk4MSwgMy42MDQ0MywgNi4zNjUyOCwgNy45NDU0NSIsIFwKLSAgICAgICAgICAiMC40NDY4NzksIDAuNTI1MzM5LCAxLjIzNDIsIDIuNDIwMDcsIDMuNjA1MSwgNi4zNjYzNCwgNy45NDQ4NSIsIFwKLSAgICAgICAgICAiMC40NDkzLCAwLjUyNzQyMiwgMS4yMzQyLCAyLjQyMDMyLCAzLjYwMzU3LCA2LjM3MTE0LCA3Ljk0NjIxIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE1ODg5MywgMC4xODQ3MDMsIDAuNDE2ODE2LCAwLjgwMzc0MiwgMS4xODk5OSwgMi4wOTE0LCAyLjYwNzI0IiwgXAotICAgICAgICAgICIwLjE2ODYyLCAwLjE5NDQ2OSwgMC40MjY2MSwgMC44MTM0MzcsIDEuMTk5NTUsIDIuMTAxMTIsIDIuNjE3MjQiLCBcCi0gICAgICAgICAgIjAuMTc5ODU5LCAwLjIwNTc0OCwgMC40Mzc4NjksIDAuODI0ODYyLCAxLjIxMTEzLCAyLjExMzAzLCAyLjYyNzM1IiwgXAotICAgICAgICAgICIwLjE5MDkzMiwgMC4yMTY4MjQsIDAuNDQ5MTU5LCAwLjgzNTg4OSwgMS4yMjI3NiwgMi4xMjQ3OCwgMi42MzkzNSIsIFwKLSAgICAgICAgICAiMC4yMDE5MzgsIDAuMjI3NzEzLCAwLjQ2MDAyMSwgMC44NDY1NTUsIDEuMjMzNTEsIDIuMTM1MjMsIDIuNjUwMjkiLCBcCi0gICAgICAgICAgIjAuMjE5MTgsIDAuMjQ1MTMyLCAwLjQ3NzYzNCwgMC44NjQyOTMsIDEuMjUxMSwgMi4xNTI5OCwgMi42NjgxMyIsIFwKLSAgICAgICAgICAiMC4yMzQ0NjYsIDAuMjYwNDU4LCAwLjQ5Mjc3OCwgMC44Nzk2MzUsIDEuMjY2MjksIDIuMTY3NjgsIDIuNjgzMSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yODUwNjYsIDAuMzM1OTU1LCAwLjc5MzU0NiwgMS41NTY3MywgMi4zMTk3NywgNC4xMDEzNSwgNS4xMTk2OCIsIFwKLSAgICAgICAgICAiMC4yODQ4ODgsIDAuMzM1NzcsIDAuNzkzNjcxLCAxLjU1NzEyLCAyLjMyMDQ5LCA0LjEwMTEyLCA1LjExNzg2IiwgXAotICAgICAgICAgICIwLjI4NDgwNCwgMC4zMzU3NzQsIDAuNzkzOTUyLCAxLjU1NjY5LCAyLjMxOTksIDQuMDk5ODUsIDUuMTE3NSIsIFwKLSAgICAgICAgICAiMC4yODUwMDksIDAuMzM1NzkyLCAwLjc5MzYwOCwgMS41NTY2MiwgMi4zMTk5NSwgNC4xMDE1OCwgNS4xMTcwOCIsIFwKLSAgICAgICAgICAiMC4yODYyNywgMC4zMzY1MDMsIDAuNzkzOTQsIDEuNTU2NjksIDIuMzE5NzUsIDQuMTAxNDYsIDUuMTE3MTQiLCBcCi0gICAgICAgICAgIjAuMjg5OTQyLCAwLjMzOTQ2MywgMC43OTM2MDUsIDEuNTU2NzMsIDIuMzE5NywgNC4xMDEyNiwgNS4xMjE1NCIsIFwKLSAgICAgICAgICAiMC4yOTUwNjksIDAuMzQzOTI1LCAwLjc5MzkyNSwgMS41NTcxMywgMi4zMjA3OCwgNC4xMDA4NCwgNS4xMTg5MyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjM0Mjc0LCAwLjI3MzcwNCwgMC42MjgwMjEsIDEuMjE3MzksIDEuODA2ODEsIDMuMTgwMzYsIDMuOTY1MTgiLCBcCi0gICAgICAgICAgIjAuMjQyNjUsIDAuMjgyMDczLCAwLjYzNjQyOCwgMS4yMjU5LCAxLjgxNTcxLCAzLjE4ODg0LCAzLjk3MzI4IiwgXAotICAgICAgICAgICIwLjI1MjUxNCwgMC4yOTE4MTgsIDAuNjQ2MDgzLCAxLjIzNTY5LCAxLjgyNjA5LCAzLjE5ODYsIDMuOTgzNTciLCBcCi0gICAgICAgICAgIjAuMjYyMTY4LCAwLjMwMTYwNywgMC42NTU1OTMsIDEuMjQ1NzEsIDEuODM1MTIsIDMuMjA4MzMsIDMuOTkzMyIsIFwKLSAgICAgICAgICAiMC4yNzE4MTEsIDAuMzEwOTAxLCAwLjY2NTU1NiwgMS4yNTQ1MywgMS44NDQwNCwgMy4yMTgwNywgNC4wMDMzOSIsIFwKLSAgICAgICAgICAiMC4yODczMzIsIDAuMzI2OTUyLCAwLjY4MDk3NywgMS4yNzA0NywgMS44NjA1MSwgMy4yMzQ4MiwgNC4wMTg1OSIsIFwKLSAgICAgICAgICAiMC4zMDA3MjUsIDAuMzQwMjEsIDAuNjk0NTk3LCAxLjI4NDM3LCAxLjg3MzQyLCAzLjI0NzY4LCA0LjAzMjQ4Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjQ0NDgzOCwgMC41MjM1NjQsIDEuMjM0NzIsIDIuNDE4NzcsIDMuNjA1MDUsIDYuMzY4MjQsIDcuOTQ1MjIiLCBcCi0gICAgICAgICAgIjAuNDQ0ODcsIDAuNTIzNTcsIDEuMjM0NzQsIDIuNDE5MzYsIDMuNjA0MTUsIDYuMzY1NzksIDcuOTQ0MzIiLCBcCi0gICAgICAgICAgIjAuNDQ0NTcyLCAwLjUyMzg0NCwgMS4yMzQ4NCwgMi40MTkzMSwgMy42MDUxMywgNi4zNjUyNywgNy45NDU1NiIsIFwKLSAgICAgICAgICAiMC40NDQ1NzgsIDAuNTIzNjczLCAxLjIzNDIxLCAyLjQxOTU2LCAzLjYwNTI1LCA2LjM2NTMxLCA3Ljk0NTU3IiwgXAotICAgICAgICAgICIwLjQ0NTA0NywgMC41MjM1NzcsIDEuMjM0NTgsIDIuNDIwMzgsIDMuNjAzODEsIDYuMzY2MDQsIDcuOTQ2MDkiLCBcCi0gICAgICAgICAgIjAuNDQ3NjQ0LCAwLjUyNTI0LCAxLjIzNDI2LCAyLjQyMSwgMy42MDM5MSwgNi4zNjQwMywgNy45NDUyNyIsIFwKLSAgICAgICAgICAiMC40NTEyNCwgMC41MjgxMDgsIDEuMjM1MTEsIDIuNDIxNTcsIDMuNjAzNzIsIDYuMzY2MTcsIDcuOTQ1MzkiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTU0OTY4LCAwLjE4MDg2MSwgMC40MTI4NjYsIDAuNzk5MzQ3LCAxLjE4NTgxLCAyLjA4NzU0LCAyLjYwMzA1IiwgXAotICAgICAgICAgICIwLjE2NDk4MSwgMC4xOTA3NTYsIDAuNDIyOTQ1LCAwLjgwOTU2MSwgMS4xOTU1OCwgMi4wOTc0MywgMi42MTE3IiwgXAotICAgICAgICAgICIwLjE3NjIyOCwgMC4yMDIxMjcsIDAuNDM0MDU1LCAwLjgyMDc4OCwgMS4yMDc2NCwgMi4xMDk4OSwgMi42MjQ1NyIsIFwKLSAgICAgICAgICAiMC4xODcxNjQsIDAuMjEyOTI0LCAwLjQ0NTEwNCwgMC44MzE3NzUsIDEuMjE4NCwgMi4xMjAxOSwgMi42MzQ1NCIsIFwKLSAgICAgICAgICAiMC4xOTgxMjIsIDAuMjIzODMzLCAwLjQ1NjI3MSwgMC44NDI0NzYsIDEuMjI5NTMsIDIuMTMxMDgsIDIuNjQ2MDUiLCBcCi0gICAgICAgICAgIjAuMjE1NTA3LCAwLjI0MTI1MSwgMC40NzM2MTQsIDAuODYwMjc4LCAxLjI0NzAxLCAyLjE0OTEyLCAyLjY2Mzk5IiwgXAotICAgICAgICAgICIwLjIzMDU2MSwgMC4yNTYzMDQsIDAuNDg4OTUzLCAwLjg3NTY2MiwgMS4yNjIyNywgMi4xNjUxOSwgMi42Nzg5NCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yODAyOTksIDAuMzMxMjE2LCAwLjc4OTM0MiwgMS41NTI2LCAyLjMxNjUzLCA0LjA5NjAzLCA1LjExMTQzIiwgXAotICAgICAgICAgICIwLjI4MDI5OSwgMC4zMzExNjMsIDAuNzg5MTYzLCAxLjU1MjcsIDIuMzE1NDIsIDQuMDk1NzksIDUuMTExODUiLCBcCi0gICAgICAgICAgIjAuMjgwMjk3LCAwLjMzMTI2NCwgMC43ODk0NTMsIDEuNTUzMTksIDIuMzE2NTUsIDQuMDk2NDcsIDUuMTEyNjEiLCBcCi0gICAgICAgICAgIjAuMjgwNDkzLCAwLjMzMTE1OCwgMC43ODkwNDIsIDEuNTUyODksIDIuMzE2NDYsIDQuMDk1NDYsIDUuMTExMjciLCBcCi0gICAgICAgICAgIjAuMjgxODI4LCAwLjMzMTkxMiwgMC43ODkxNDgsIDEuNTUyNDYsIDIuMzE2MjIsIDQuMDk0OTksIDUuMTExNzkiLCBcCi0gICAgICAgICAgIjAuMjg1NzI3LCAwLjMzNTA2NiwgMC43ODkwMDIsIDEuNTUyNjIsIDIuMzE1ODYsIDQuMDk2MzUsIDUuMTEyMTQiLCBcCi0gICAgICAgICAgIjAuMjkwNzI3LCAwLjMzOTI5MiwgMC43ODk1NTYsIDEuNTUyNTYsIDIuMzE2MDMsIDQuMDk2ODEsIDUuMTE0MDkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTIiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIyNzQ1LCAwLjI2Njc1OCwgMC42MjA5OTEsIDEuMjA5OTIsIDEuODAwMDksIDMuMTczNywgMy45NTg2OSIsIFwKLSAgICAgICAgICAiMC4yMzU3OTYsIDAuMjc1MTkyLCAwLjYyOTMxNSwgMS4yMTk1NiwgMS44MDc5MiwgMy4xODMwMywgMy45NjcwOSIsIFwKLSAgICAgICAgICAiMC4yNDYxNjgsIDAuMjg1NjMzLCAwLjYzOTg4MSwgMS4yMjkzNCwgMS44MTk2NywgMy4xOTI0MywgMy45NzcyNCIsIFwKLSAgICAgICAgICAiMC4yNTY0NTQsIDAuMjk2MzA4LCAwLjY1MDM1MiwgMS4yNDA1MywgMS44Mjk2MiwgMy4yMDMwMiwgMy45ODc5OCIsIFwKLSAgICAgICAgICAiMC4yNjc0MDQsIDAuMzA2ODg0LCAwLjY2MTI2MiwgMS4yNTEwNiwgMS44NDA1NCwgMy4yMTM2OCwgMy45OTg1MSIsIFwKLSAgICAgICAgICAiMC4yODQ2NTgsIDAuMzI0MDg1LCAwLjY3ODA0OSwgMS4yNjc0LCAxLjg1NzU4LCAzLjIzMTc2LCA0LjAxNTU2IiwgXAotICAgICAgICAgICIwLjI5OTY0NSwgMC4zMzg5ODYsIDAuNjkzMTA2LCAxLjI4MjU3LCAxLjg3MTU4LCAzLjI0NTgxLCA0LjAzMDYxIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjQ0NDcwNCwgMC41MjM5MTcsIDEuMjM0NywgMi40MjAyLCAzLjYwNCwgNi4zNjU2MSwgNy45NDA1MyIsIFwKLSAgICAgICAgICAiMC40NDQ1NiwgMC41MjM1NzEsIDEuMjM0ODIsIDIuNDE5ODEsIDMuNjAzODksIDYuMzY1MjcsIDcuOTQ1OTkiLCBcCi0gICAgICAgICAgIjAuNDQ0NzgzLCAwLjUyMzkwMiwgMS4yMzQ4NCwgMi40MTk0MSwgMy42MDQ0OCwgNi4zNjc3MywgNy45NDUxMyIsIFwKLSAgICAgICAgICAiMC40NDQ0NjksIDAuNTIzNjE5LCAxLjIzNDQyLCAyLjQxOTY1LCAzLjYwNSwgNi4zNjUzMiwgNy45NDU1NSIsIFwKLSAgICAgICAgICAiMC40NDQ5NDQsIDAuNTIzNTY0LCAxLjIzNDczLCAyLjQxOTUsIDMuNjA1MiwgNi4zNjk0OCwgNy45NDUxMiIsIFwKLSAgICAgICAgICAiMC40NDg5MTUsIDAuNTI2MzA5LCAxLjIzNDI2LCAyLjQyMDUxLCAzLjYwMzk2LCA2LjM2NTM3LCA3Ljk0NTI2IiwgXAotICAgICAgICAgICIwLjQ1NDI4OCwgMC41MzAzMTcsIDEuMjM0MjIsIDIuNDIxNTUsIDMuNjAzNiwgNi4zNjYxNywgNy45NDUzOCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNDg0LCAwLjE3MzgyOCwgMC40MDI2MzcsIDAuNzg0MTk2LCAxLjE2NjMsIDIuMDU1NDMsIDIuNTY0MzIiLCBcCi0gICAgICAgICAgIjAuMTU4NTUyLCAwLjE4Mzk4NCwgMC40MTMxNTgsIDAuNzk0NDI0LCAxLjE3NjUxLCAyLjA2NzAzLCAyLjU3NDM3IiwgXAotICAgICAgICAgICIwLjE2OTgwMiwgMC4xOTUyMjIsIDAuNDI0MjM3LCAwLjgwNjI3OCwgMS4xODcxMSwgMi4wNzgwOCwgMi41ODU4NiIsIFwKLSAgICAgICAgICAiMC4xODA4MjksIDAuMjA1OTQ5LCAwLjQzNTUxOCwgMC44MTcxNDMsIDEuMTk5LCAyLjA4OTM1LCAyLjU5NjgiLCBcCi0gICAgICAgICAgIjAuMTkxNzIxLCAwLjIxNzI3NSwgMC40NDY1MTEsIDAuODI4MzgxLCAxLjIwOTgzLCAyLjA5OTUzLCAyLjYwODMzIiwgXAotICAgICAgICAgICIwLjIwOTAyNywgMC4yMzQ2NTUsIDAuNDY0MTgsIDAuODQ1NTEyLCAxLjIyNjk5LCAyLjExNzg2LCAyLjYyNTg2IiwgXAotICAgICAgICAgICIwLjIyNDQxMiwgMC4yNTAwNjMsIDAuNDc5MzAxLCAwLjg2MTEwMiwgMS4yNDI3MywgMi4xMzE4NSwgMi42NDA5NSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yNzI2OTgsIDAuMzIyMDc2LCAwLjc3NDYzLCAxLjUyNTAyLCAyLjI3NzY2LCA0LjAzMjA4LCA1LjAzNjU2IiwgXAotICAgICAgICAgICIwLjI3MTc2OSwgMC4zMjIwMjUsIDAuNzcyNzAyLCAxLjUyNDgxLCAyLjI3Njg1LCA0LjAzMTA2LCA1LjAzNTAyIiwgXAotICAgICAgICAgICIwLjI3MTQzLCAwLjMyMjEyOCwgMC43NzczMDgsIDEuNTI1MjIsIDIuMjkxMzUsIDQuMDMyNzQsIDUuMDM2MDQiLCBcCi0gICAgICAgICAgIjAuMjcxNTcsIDAuMzIxNjEyLCAwLjc3MjQ2MywgMS41MjQ0NSwgMi4yNzc0NCwgNC4wMzI2NiwgNS4wNDUwNCIsIFwKLSAgICAgICAgICAiMC4yNzI5NSwgMC4zMjMxMjQsIDAuNzczMjk2LCAxLjUyNDI1LCAyLjI3NjQyLCA0LjAzMjEyLCA1LjAzNDcxIiwgXAotICAgICAgICAgICIwLjI3NzQxMSwgMC4zMjYyMiwgMC43NzIzNjgsIDEuNTI4OTIsIDIuMjc5MzYsIDQuMDMwOSwgNS4wNDA4NSIsIFwKLSAgICAgICAgICAiMC4yODIyNDIsIDAuMzMwNzU4LCAwLjc3MzQ5OSwgMS41MjY5NCwgMi4yNzkzMSwgNC4wNDIxMSwgNS4wMzk2OCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc5NTAxLCAwLjA5MzY1NSwgMC4yMjA4MjksIDAuNDMyODA3LCAwLjY0NDk1NCwgMS4xMzk4NywgMS40MjIiLCBcCi0gICAgICAgICAgIjAuMDg5NDU1LCAwLjEwMzU5MSwgMC4yMzA4MjIsIDAuNDQyNzI4LCAwLjY1NDcwMywgMS4xNDkyLCAxLjQzMTU3IiwgXAotICAgICAgICAgICIwLjEwMTU3OCwgMC4xMTU3MTQsIDAuMjQyOTA5LCAwLjQ1NDM3MiwgMC42NjYzNzIsIDEuMTYwOTcsIDEuNDQzOTMiLCBcCi0gICAgICAgICAgIjAuMTE0MTc4LCAwLjEyODAxMiwgMC4yNTUyODYsIDAuNDY2MzYxLCAwLjY3ODM2MSwgMS4xNzI4NywgMS40NTU1MiIsIFwKLSAgICAgICAgICAiMC4xMjY2ODgsIDAuMTQwNzcsIDAuMjY3ODQ1LCAwLjQ3OTQ0OCwgMC42OTA0MDgsIDEuMTg0ODQsIDEuNDY3NjEiLCBcCi0gICAgICAgICAgIjAuMTQ2ODYxLCAwLjE2MDg1OSwgMC4yODcyNDksIDAuNDk5MjY4LCAwLjcxMTA2MSwgMS4yMDQ2OSwgMS40ODY3IiwgXAotICAgICAgICAgICIwLjE2MzkyLCAwLjE3ODQxMSwgMC4zMDQ1NzYsIDAuNTE2NzI0LCAwLjcyODQwMiwgMS4yMjEyMSwgMS41MDQ0OCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNjU2MDUsIDAuMTk0NDczLCAwLjQ1NDU3NiwgMC44ODg3MTcsIDEuMzIyNzIsIDIuMzM2MTksIDIuOTE1MjMiLCBcCi0gICAgICAgICAgIjAuMTY1NTgzLCAwLjE5NDQ0OCwgMC40NTQ2MjEsIDAuODg4NzMxLCAxLjMyMjk2LCAyLjMzNjEzLCAyLjkxNDg0IiwgXAotICAgICAgICAgICIwLjE2NzA3NCwgMC4xOTUyMDIsIDAuNDU0NTM4LCAwLjg4ODc1NCwgMS4zMjMxMywgMi4zMzY5NSwgMi45MTYwNyIsIFwKLSAgICAgICAgICAiMC4xNzEyOSwgMC4xOTg3MjQsIDAuNDU0NTM5LCAwLjg4ODcwOSwgMS4zMjI5NywgMi4zMzY4LCAyLjkxNTExIiwgXAotICAgICAgICAgICIwLjE3NzEyNSwgMC4yMDM2OTIsIDAuNDU1MTI0LCAwLjg4ODY3NSwgMS4zMjMwNSwgMi4zMzYxNCwgMi45MTY1OSIsIFwKLSAgICAgICAgICAiMC4xODg2MTYsIDAuMjE0MDY2LCAwLjQ1ODg2NSwgMC44ODg0NzcsIDEuMzIyNzEsIDIuMzM2MjUsIDIuOTE1MjQiLCBcCi0gICAgICAgICAgIjAuMTk5ODUxLCAwLjIyNDUxNywgMC40NjQzMTMsIDAuODg4ODY2LCAxLjMyMjczLCAyLjMzNjc5LCAyLjkyMjU5Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE1MTI3NywgMC4xNzcxMDYsIDAuNDA5NDg1LCAwLjc5NTczLCAxLjE4MjcxLCAyLjA4NDY0LCAyLjU5ODc2IiwgXAotICAgICAgICAgICIwLjE2MDQ2MiwgMC4xODYzNzcsIDAuNDE4NTYyLCAwLjgwNTE4NCwgMS4xOTE4OSwgMi4wOTM3MSwgMi42MDg4IiwgXAotICAgICAgICAgICIwLjE3MjA2MiwgMC4xOTc5NTcsIDAuNDMwMjg2LCAwLjgxNzA4MiwgMS4yMDM5NSwgMi4xMDYwOSwgMi42MjA2NCIsIFwKLSAgICAgICAgICAiMC4xODM2ODksIDAuMjA5NTY2LCAwLjQ0MjAxMiwgMC44Mjg5NjMsIDEuMjE1NzUsIDIuMTE3NTQsIDIuNjMyMjgiLCBcCi0gICAgICAgICAgIjAuMTk1MzgzLCAwLjIyMTI3NiwgMC40NTM1OTQsIDAuODQwMzcyLCAxLjIyNjk2LCAyLjEyODk5LCAyLjY0MzkxIiwgXAotICAgICAgICAgICIwLjIxNDE1NiwgMC4yNDAwNTksIDAuNDcyMzU0LCAwLjg1ODk1OSwgMS4yNDU0OCwgMi4xNDcyOSwgMi42NjMxMyIsIFwKLSAgICAgICAgICAiMC4yMzA5MSwgMC4yNTY1ODgsIDAuNDg4Njc2LCAwLjg3NTI0MSwgMS4yNjE3OSwgMi4xNjQwNSwgMi42Nzg4MyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yODQ4MDEsIDAuMzM1NjU3LCAwLjc5MzY5NywgMS41NTY5MSwgMi4zMTk4NCwgNC4xMDEzLCA1LjExNzczIiwgXAotICAgICAgICAgICIwLjI4NDc5NCwgMC4zMzU3OSwgMC43OTM5NzIsIDEuNTU3MzgsIDIuMzE5ODQsIDQuMTAxNDksIDUuMTE5MTMiLCBcCi0gICAgICAgICAgIjAuMjg0OTgzLCAwLjMzNTY4MywgMC43OTM3MTksIDEuNTU2NzEsIDIuMzE5ODksIDQuMTAxNDQsIDUuMTE4NjciLCBcCi0gICAgICAgICAgIjAuMjg1MzM5LCAwLjMzNTcyLCAwLjc5MzYxMywgMS41NTY3NCwgMi4zMTk5NiwgNC4xMDE0NSwgNS4xMTcwMiIsIFwKLSAgICAgICAgICAiMC4yODgwMTksIDAuMzM3NTk4LCAwLjc5MzcxMSwgMS41NTY2MywgMi4zMTk3MSwgNC4xMDEzNywgNS4xMTkwOSIsIFwKLSAgICAgICAgICAiMC4yOTQ4MDEsIDAuMzQzMDk4LCAwLjc5MzY4LCAxLjU1NzAyLCAyLjMyMDU1LCA0LjEwMSwgNS4xMTg4OSIsIFwKLSAgICAgICAgICAiMC4zMDI4NjcsIDAuMzQ5ODgsIDAuNzk0MzY1LCAxLjU1NjY5LCAyLjMxOTg2LCA0LjEwMTMsIDUuMTE5MjQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyMTc3LCAwLjAwMjE3NywgMC4wMDIxNzYsIDAuMDAyMTc2LCAwLjAwMjE3NCwgMC4wMDIxNywgMC4wMDIxNjgiLCBcCi0gICAgICAgICAgIjAuMDAyMTcsIDAuMDAyMTcsIDAuMDAyMTcsIDAuMDAyMTcsIDAuMDAyMTY5LCAwLjAwMjE2NSwgMC4wMDIxNjMiLCBcCi0gICAgICAgICAgIjAuMDAyMTY3LCAwLjAwMjE2OCwgMC4wMDIxNjgsIDAuMDAyMTcsIDAuMDAyMTY2LCAwLjAwMjE2NSwgMC4wMDIxNjIiLCBcCi0gICAgICAgICAgIjAuMDAyMTY1LCAwLjAwMjE2NiwgMC4wMDIxNjgsIDAuMDAyMTY4LCAwLjAwMjE2NywgMC4wMDIxNjQsIDAuMDAyMTYzIiwgXAotICAgICAgICAgICIwLjAwMjE2MywgMC4wMDIxNjQsIDAuMDAyMTY3LCAwLjAwMjE2NywgMC4wMDIxNjYsIDAuMDAyMTY0LCAwLjAwMjE2MiIsIFwKLSAgICAgICAgICAiMC4wMDIxNjEsIDAuMDAyMTYyLCAwLjAwMjE2NiwgMC4wMDIxNjcsIDAuMDAyMTY3LCAwLjAwMjE2NCwgMC4wMDIxNjIiLCBcCi0gICAgICAgICAgIjAuMDAyMTYsIDAuMDAyMTYxLCAwLjAwMjE2NCwgMC4wMDIxNjUsIDAuMDAyMTY2LCAwLjAwMjE2MywgMC4wMDIxNjEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDA1NDIsIDAuMDAwNTQxLCAwLjAwMDU0MSwgMC4wMDA1NDEsIDAuMDAwNTQxLCAwLjAwMDU0LCAwLjAwMDU0IiwgXAotICAgICAgICAgICIwLjAwMDUyOSwgMC4wMDA1MjksIDAuMDAwNTI5LCAwLjAwMDUyOSwgMC4wMDA1MjksIDAuMDAwNTI5LCAwLjAwMDUyOCIsIFwKLSAgICAgICAgICAiMC4wMDA1MjUsIDAuMDAwNTI1LCAwLjAwMDUyNywgMC4wMDA1MjcsIDAuMDAwNTI3LCAwLjAwMDUyNywgMC4wMDA1MjYiLCBcCi0gICAgICAgICAgIjAuMDAwNTIyLCAwLjAwMDUyMywgMC4wMDA1MjUsIDAuMDAwNTI2LCAwLjAwMDUyNiwgMC4wMDA1MjYsIDAuMDAwNTI1IiwgXAotICAgICAgICAgICIwLjAwMDUyLCAwLjAwMDUyMSwgMC4wMDA1MjQsIDAuMDAwNTI1LCAwLjAwMDUyNSwgMC4wMDA1MjUsIDAuMDAwNTI1IiwgXAotICAgICAgICAgICIwLjAwMDUxNywgMC4wMDA1MTksIDAuMDAwNTIzLCAwLjAwMDUyNCwgMC4wMDA1MjUsIDAuMDAwNTI1LCAwLjAwMDUyNCIsIFwKLSAgICAgICAgICAiMC4wMDA1MTcsIDAuMDAwNTE4LCAwLjAwMDUyMiwgMC4wMDA1MjQsIDAuMDAwNTI0LCAwLjAwMDUyNCwgMC4wMDA1MjQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxOTkyLCAwLjAwMTk5MiwgMC4wMDE5OTMsIDAuMDAxOTg4LCAwLjAwMTk4OSwgMC4wMDE5ODcsIDAuMDAxOTg0IiwgXAotICAgICAgICAgICIwLjAwMTk4NSwgMC4wMDE5ODUsIDAuMDAxOTg1LCAwLjAwMTk4NiwgMC4wMDE5ODIsIDAuMDAxOTgxLCAwLjAwMTk3OSIsIFwKLSAgICAgICAgICAiMC4wMDE5ODIsIDAuMDAxOTgyLCAwLjAwMTk4NCwgMC4wMDE5ODMsIDAuMDAxOTgzLCAwLjAwMTk4LCAwLjAwMTk3OCIsIFwKLSAgICAgICAgICAiMC4wMDE5OCwgMC4wMDE5OCwgMC4wMDE5ODMsIDAuMDAxOTgzLCAwLjAwMTk4MiwgMC4wMDE5OCwgMC4wMDE5NzciLCBcCi0gICAgICAgICAgIjAuMDAxOTc4LCAwLjAwMTk3NywgMC4wMDE5ODIsIDAuMDAxOTgyLCAwLjAwMTk4MiwgMC4wMDE5NzksIDAuMDAxOTc3IiwgXAotICAgICAgICAgICIwLjAwMTk3NiwgMC4wMDE5NzcsIDAuMDAxOTgxLCAwLjAwMTk4MiwgMC4wMDE5ODEsIDAuMDAxOTc4LCAwLjAwMTk3NyIsIFwKLSAgICAgICAgICAiMC4wMDE5NzYsIDAuMDAxOTc3LCAwLjAwMTk4MSwgMC4wMDE5ODEsIDAuMDAxOTgsIDAuMDAxOTc5LCAwLjAwMTk3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDM4OSwgMC4wMDAzODksIDAuMDAwMzg5LCAwLjAwMDM4OSwgMC4wMDAzODksIDAuMDAwMzg5LCAwLjAwMDM4OCIsIFwKLSAgICAgICAgICAiMC4wMDAzODQsIDAuMDAwMzg1LCAwLjAwMDM4NywgMC4wMDAzODgsIDAuMDAwMzg4LCAwLjAwMDM4OCwgMC4wMDAzODgiLCBcCi0gICAgICAgICAgIjAuMDAwMzc5LCAwLjAwMDM4LCAwLjAwMDM4NSwgMC4wMDAzODcsIDAuMDAwMzg3LCAwLjAwMDM4NywgMC4wMDAzODciLCBcCi0gICAgICAgICAgIjAuMDAwMzc0LCAwLjAwMDM3NywgMC4wMDAzODMsIDAuMDAwMzg2LCAwLjAwMDM4NiwgMC4wMDAzODcsIDAuMDAwMzg3IiwgXAotICAgICAgICAgICIwLjAwMDM3LCAwLjAwMDM3MywgMC4wMDAzODEsIDAuMDAwMzg1LCAwLjAwMDM4NiwgMC4wMDAzODcsIDAuMDAwMzg3IiwgXAotICAgICAgICAgICIwLjAwMDM2NSwgMC4wMDAzNjgsIDAuMDAwMzc5LCAwLjAwMDM4MywgMC4wMDAzODUsIDAuMDAwMzg2LCAwLjAwMDM4NiIsIFwKLSAgICAgICAgICAiMC4wMDAzNjEsIDAuMDAwMzY1LCAwLjAwMDM3NywgMC4wMDAzODIsIDAuMDAwMzg0LCAwLjAwMDM4NSwgMC4wMDAzODYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxNzkzLCAwLjAwMTc5MywgMC4wMDE3OTMsIDAuMDAxNzkyLCAwLjAwMTc5MSwgMC4wMDE3ODcsIDAuMDAxNzg0IiwgXAotICAgICAgICAgICIwLjAwMTc4NSwgMC4wMDE3ODYsIDAuMDAxNzg2LCAwLjAwMTc4NywgMC4wMDE3ODUsIDAuMDAxNzgyLCAwLjAwMTc4IiwgXAotICAgICAgICAgICIwLjAwMTc4LCAwLjAwMTc4MSwgMC4wMDE3ODQsIDAuMDAxNzg0LCAwLjAwMTc4NCwgMC4wMDE3ODEsIDAuMDAxNzc5IiwgXAotICAgICAgICAgICIwLjAwMTc3NywgMC4wMDE3OCwgMC4wMDE3ODMsIDAuMDAxNzg0LCAwLjAwMTc4MywgMC4wMDE3OCwgMC4wMDE3NzkiLCBcCi0gICAgICAgICAgIjAuMDAxNzc4LCAwLjAwMTc3OSwgMC4wMDE3ODIsIDAuMDAxNzgzLCAwLjAwMTc4MiwgMC4wMDE3OCwgMC4wMDE3NzciLCBcCi0gICAgICAgICAgIjAuMDAxNzgsIDAuMDAxNzgsIDAuMDAxNzgyLCAwLjAwMTc4MywgMC4wMDE3ODIsIDAuMDAxNzgsIDAuMDAxNzc4IiwgXAotICAgICAgICAgICIwLjAwMTc4NCwgMC4wMDE3ODMsIDAuMDAxNzgzLCAwLjAwMTc4MywgMC4wMDE3ODIsIDAuMDAxNzc5LCAwLjAwMTc3NyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDE5NSwgMC4wMDAxOTYsIDAuMDAwMTk3LCAwLjAwMDE5NywgMC4wMDAxOTcsIDAuMDAwMTk3LCAwLjAwMDE5NyIsIFwKLSAgICAgICAgICAiMC4wMDAyLCAwLjAwMDIwMSwgMC4wMDAyMDYsIDAuMDAwMjA4LCAwLjAwMDIwOCwgMC4wMDAyMDksIDAuMDAwMjA5IiwgXAotICAgICAgICAgICIwLjAwMDE5NCwgMC4wMDAxOTYsIDAuMDAwMjA1LCAwLjAwMDIwOCwgMC4wMDAyMDksIDAuMDAwMjEsIDAuMDAwMjExIiwgXAotICAgICAgICAgICIwLjAwMDE4NywgMC4wMDAxOSwgMC4wMDAyMDIsIDAuMDAwMjA3LCAwLjAwMDIwOSwgMC4wMDAyMSwgMC4wMDAyMTEiLCBcCi0gICAgICAgICAgIjAuMDAwMTgxLCAwLjAwMDE4NSwgMC4wMDAyLCAwLjAwMDIwNiwgMC4wMDAyMDgsIDAuMDAwMjEsIDAuMDAwMjExIiwgXAotICAgICAgICAgICIwLjAwMDE3MywgMC4wMDAxNzgsIDAuMDAwMTk2LCAwLjAwMDIwNCwgMC4wMDAyMDcsIDAuMDAwMjA5LCAwLjAwMDIxIiwgXAotICAgICAgICAgICIwLjAwMDE2NywgMC4wMDAxNzIsIDAuMDAwMTkzLCAwLjAwMDIwMiwgMC4wMDAyMDUsIDAuMDAwMjA5LCAwLjAwMDIwOSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDE0MTgsIDAuMDAxNDE4LCAwLjAwMTQxOSwgMC4wMDE0MiwgMC4wMDE0MiwgMC4wMDE0MiwgMC4wMDE0MiIsIFwKLSAgICAgICAgICAiMC4wMDE0MTcsIDAuMDAxNDE4LCAwLjAwMTQyMywgMC4wMDE0MjQsIDAuMDAxNDIzLCAwLjAwMTQyNiwgMC4wMDE0MjUiLCBcCi0gICAgICAgICAgIjAuMDAxNDEyLCAwLjAwMTQxNCwgMC4wMDE0MjEsIDAuMDAxNDI0LCAwLjAwMTQyNSwgMC4wMDE0MjYsIDAuMDAxNDI2IiwgXAotICAgICAgICAgICIwLjAwMTQxLCAwLjAwMTQxMSwgMC4wMDE0MiwgMC4wMDE0MjMsIDAuMDAxNDI0LCAwLjAwMTQyNiwgMC4wMDE0MjYiLCBcCi0gICAgICAgICAgIjAuMDAxNDA5LCAwLjAwMTQxMSwgMC4wMDE0MTksIDAuMDAxNDIzLCAwLjAwMTQyNCwgMC4wMDE0MjYsIDAuMDAxNDI2IiwgXAotICAgICAgICAgICIwLjAwMTQxMiwgMC4wMDE0MTMsIDAuMDAxNDE5LCAwLjAwMTQyMiwgMC4wMDE0MjQsIDAuMDAxNDI1LCAwLjAwMTQyNiIsIFwKLSAgICAgICAgICAiMC4wMDE0MTYsIDAuMDAxNDE3LCAwLjAwMTQxOSwgMC4wMDE0MjMsIDAuMDAxNDI0LCAwLjAwMTQyNSwgMC4wMDE0MjYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDA1NjMsIDAuMDAwNTY0LCAwLjAwMDU2NSwgMC4wMDA1NjUsIDAuMDAwNTY1LCAwLjAwMDU2NCwgMC4wMDA1NjQiLCBcCi0gICAgICAgICAgIjAuMDAwNTU1LCAwLjAwMDU1NiwgMC4wMDA1NjEsIDAuMDAwNTYzLCAwLjAwMDU2MywgMC4wMDA1NjQsIDAuMDAwNTY0IiwgXAotICAgICAgICAgICIwLjAwMDU0NywgMC4wMDA1NDksIDAuMDAwNTU4LCAwLjAwMDU2MiwgMC4wMDA1NjIsIDAuMDAwNTYzLCAwLjAwMDU2MyIsIFwKLSAgICAgICAgICAiMC4wMDA1NDMsIDAuMDAwNTQ1LCAwLjAwMDU1NSwgMC4wMDA1NiwgMC4wMDA1NjEsIDAuMDAwNTYyLCAwLjAwMDU2MiIsIFwKLSAgICAgICAgICAiMC4wMDA1NDEsIDAuMDAwNTQzLCAwLjAwMDU1MywgMC4wMDA1NTgsIDAuMDAwNTYsIDAuMDAwNTYyLCAwLjAwMDU2MiIsIFwKLSAgICAgICAgICAiMC4wMDA1NDIsIDAuMDAwNTQ0LCAwLjAwMDU1MiwgMC4wMDA1NTcsIDAuMDAwNTU5LCAwLjAwMDU2MSwgMC4wMDA1NjEiLCBcCi0gICAgICAgICAgIjAuMDAwNTQ2LCAwLjAwMDU0NiwgMC4wMDA1NTIsIDAuMDAwNTU3LCAwLjAwMDU1OSwgMC4wMDA1NjEsIDAuMDAwNTYxIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogT0FJMzJYTCAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChPQUkzMlhMKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMDk3ODA0MjsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQTApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYwNjgwMzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MDUzMDk7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjA2ODAzOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDIyNiwgMC4wMDAyMjYsIDAuMDAwMjI2LCAwLjAwMDIyNiwgMC4wMDAyMjYsIDAuMDAwMjI2LCAwLjAwMDIyNiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDIyNywgMC4wMDAyMjcsIDAuMDAwMjI3LCAwLjAwMDIyNywgMC4wMDAyMjcsIDAuMDAwMjI3LCAwLjAwMDIyNyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQTEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYxMzcwNzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MTI4MTY7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjEzNzA3OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDIyNiwgMC4wMDAyMjYsIDAuMDAwMjI2LCAwLjAwMDIyNiwgMC4wMDAyMjYsIDAuMDAwMjI2LCAwLjAwMDIyNiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDIyNywgMC4wMDAyMjcsIDAuMDAwMjI3LCAwLjAwMDIyNywgMC4wMDAyMjcsIDAuMDAwMjI3LCAwLjAwMDIyNyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQTIpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYwOTE2OTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MDkxNjk7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjA3NDcyOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDIyNywgMC4wMDAyMjYsIDAuMDAwMjI2LCAwLjAwMDIyNiwgMC4wMDAyMjYsIDAuMDAwMjI2LCAwLjAwMDIyNiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDIyNywgMC4wMDAyMjcsIDAuMDAwMjI3LCAwLjAwMDIyNywgMC4wMDAyMjcsIDAuMDAwMjI3LCAwLjAwMDIyNyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQjApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYxMjcyMzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MDk4NTI7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjEyNzIzOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDYxMywgMC4wMDA2MTMsIDAuMDAwNjEzLCAwLjAwMDYxMywgMC4wMDA2MTMsIDAuMDAwNjEzLCAwLjAwMDYxMyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDI1NywgMC4wMDAyNTcsIDAuMDAwMjU3LCAwLjAwMDI1NywgMC4wMDAyNTcsIDAuMDAwMjU3LCAwLjAwMDI1NyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQjEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYyNjkwOTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MjY4ODk7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjI2OTA5OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDYxMywgMC4wMDA2MTMsIDAuMDAwNjEzLCAwLjAwMDYxMywgMC4wMDA2MTMsIDAuMDAwNjEzLCAwLjAwMDYxMyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDI1NywgMC4wMDAyNTcsIDAuMDAwMjU3LCAwLjAwMDI1NywgMC4wMDAyNTcsIDAuMDAwMjU3LCAwLjAwMDI1NyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjA1NjA5NzE7Ci0gICAgZnVuY3Rpb24gOiAiKCEoKEIwK0IxKSAoKEEwK0ExKStBMikpKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTAiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI0NzY4OSwgMC4yODcwOTksIDAuNjQxNTU3LCAxLjIzMTE1LCAxLjgyMTQ2LCAzLjE5NDU1LCAzLjk3OTgyIiwgXAotICAgICAgICAgICIwLjI1NjE0MywgMC4yOTU2LCAwLjY1MDIzOSwgMS4yMzk5MywgMS44Mjg5MSwgMy4yMDM1NiwgMy45ODgwOSIsIFwKLSAgICAgICAgICAiMC4yNjQ4NDYsIDAuMzA0MjcxLCAwLjY1ODU3OSwgMS4yNDgxNSwgMS44Mzg1OSwgMy4yMTIyNCwgMy45OTY1OCIsIFwKLSAgICAgICAgICAiMC4yNzI4MjQsIDAuMzEyMjQ1LCAwLjY2NjQyOSwgMS4yNTYzNiwgMS44NDU5MywgMy4yMjAzMSwgNC4wMDQ4NiIsIFwKLSAgICAgICAgICAiMC4yODA1OTgsIDAuMzE5OTczLCAwLjY3NDM3OSwgMS4yNjM4OSwgMS44NTM2NywgMy4yMjc2NSwgNC4wMTI3OCIsIFwKLSAgICAgICAgICAiMC4yOTI4MywgMC4zMzIyOTMsIDAuNjg2NTU4LCAxLjI3NzEyLCAxLjg2NjAzLCAzLjIzOTkxLCA0LjAyNTA5IiwgXAotICAgICAgICAgICIwLjMwMzUxOCwgMC4zNDMwMjIsIDAuNjk3MzEzLCAxLjI4NzIxLCAxLjg3NjcsIDMuMjUwOTYsIDQuMDM1NzUiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuNDY5ODUsIDAuNTQ4ODgzLCAxLjI1OTQ1LCAyLjQ0Mjc3LCAzLjYyNjQ5LCA2LjM4OTkyLCA3Ljk2NjE3IiwgXAotICAgICAgICAgICIwLjQ2OTg3MSwgMC41NDg4MSwgMS4yNTk0OSwgMi40NDI4MSwgMy42MjY1OCwgNi4zOTAxNywgNy45NjYyIiwgXAotICAgICAgICAgICIwLjQ2OTgzLCAwLjU0OTAwOCwgMS4yNTk0NCwgMi40NDI3MiwgMy42MjY5OCwgNi4zOTA2OCwgNy45NjU1MyIsIFwKLSAgICAgICAgICAiMC40Njk4OTEsIDAuNTQ4ODE0LCAxLjI1OTQ3LCAyLjQ0MjU4LCAzLjYyNywgNi4zOTA0LCA3Ljk2NTIxIiwgXAotICAgICAgICAgICIwLjQ3MDE2OCwgMC41NDg5MjcsIDEuMjU5NDgsIDIuNDQyNDksIDMuNjI2MjYsIDYuMzg5OTEsIDcuOTY2MTciLCBcCi0gICAgICAgICAgIjAuNDcxNzU1LCAwLjU1MDA1OCwgMS4yNTk0NSwgMi40NDMwMywgMy42MjY2OCwgNi4zODk4OCwgNy45NjYxMyIsIFwKLSAgICAgICAgICAiMC40NzQxODMsIDAuNTUyMDk0LCAxLjI1OTQzLCAyLjQ0MzAyLCAzLjYyNTg5LCA2LjM4ODE3LCA3Ljk2NDk1Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE2OTU0NywgMC4xOTU0MzcsIDAuNDI3OTc2LCAwLjgxNDYzOSwgMS4yMDE3MywgMi4xMDQwMywgMi42MTg1OCIsIFwKLSAgICAgICAgICAiMC4xNzk1LCAwLjIwNTM2NywgMC40Mzc4LCAwLjgyNDc1OCwgMS4yMTExMywgMi4xMTI5OCwgMi42Mjg1NiIsIFwKLSAgICAgICAgICAiMC4xOTEyNTQsIDAuMjE3MTk1LCAwLjQ0OTU3MiwgMC44MzY1NjYsIDEuMjIyOCwgMi4xMjQ4MiwgMi42NDAxMyIsIFwKLSAgICAgICAgICAiMC4yMDIyMjQsIDAuMjI4MTgxLCAwLjQ2MDYzNSwgMC44NDczMjUsIDEuMjMzOTcsIDIuMTM1MTcsIDIuNjUxMiIsIFwKLSAgICAgICAgICAiMC4yMTMzNDgsIDAuMjM5MjU2LCAwLjQ3MTY5MSwgMC44NTg1MTQsIDEuMjQ0OSwgMi4xNDcxLCAyLjY2MjMxIiwgXAotICAgICAgICAgICIwLjIzMDc2NSwgMC4yNTY2NzMsIDAuNDg5Mjg1LCAwLjg3NjI4OCwgMS4yNjI2NSwgMi4xNjQ4MywgMi42ODAyNiIsIFwKLSAgICAgICAgICAiMC4yNDU5MzcsIDAuMjcyMDEzLCAwLjUwNDU4NiwgMC44OTE0OTYsIDEuMjc3ODYsIDIuMTgwNzYsIDIuNjk0NzMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjk1NTgzLCAwLjM0NjQ1MywgMC44MDQ4MDcsIDEuNTY4MTUsIDIuMzMxNTEsIDQuMTEyNTMsIDUuMTI5MTgiLCBcCi0gICAgICAgICAgIjAuMjk1NTY2LCAwLjM0NjUxNSwgMC44MDUwOTgsIDEuNTY4MiwgMi4zMzE5OSwgNC4xMTI3NCwgNS4xMzAwNCIsIFwKLSAgICAgICAgICAiMC4yOTU1NjgsIDAuMzQ2NTc2LCAwLjgwNTA3MywgMS41Njg1NSwgMi4zMzEyOSwgNC4xMTE2NCwgNS4xMjk4OSIsIFwKLSAgICAgICAgICAiMC4yOTU2MjgsIDAuMzQ2NTU5LCAwLjgwNTExOCwgMS41Njg3MywgMi4zMzEzLCA0LjExMzY1LCA1LjEyOTkiLCBcCi0gICAgICAgICAgIjAuMjk2MzQsIDAuMzQ2ODUzLCAwLjgwNDU5LCAxLjU2ODY0LCAyLjMzMTI3LCA0LjExMTc0LCA1LjEzMDA2IiwgXAotICAgICAgICAgICIwLjI5OTQ3NiwgMC4zNDkyMDgsIDAuODA0Nzg5LCAxLjU2ODMzLCAyLjMzMTI5LCA0LjExMjI3LCA1LjEyOTQ2IiwgXAotICAgICAgICAgICIwLjMwMzY0LCAwLjM1Mjk1MSwgMC44MDQ5MywgMS41Njg0MywgMi4zMzEzMiwgNC4xMTIzNiwgNS4xMjg5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkExIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yNDQ3MDUsIDAuMjg0MTA2LCAwLjYzODM5OSwgMS4yMjgwNCwgMS44MTczNCwgMy4xOTE1LCAzLjk3NjY5IiwgXAotICAgICAgICAgICIwLjI1Mjk4NywgMC4yOTI1MzcsIDAuNjQ3LCAxLjIzNjQ5LCAxLjgyNTg2LCAzLjE5OTg1LCAzLjk4NDk4IiwgXAotICAgICAgICAgICIwLjI2Mjk1OCwgMC4zMDI0MjksIDAuNjU2ODE5LCAxLjI0NjI1LCAxLjgzNjA2LCAzLjIwOTg2LCAzLjk5NSIsIFwKLSAgICAgICAgICAiMC4yNzI2MTMsIDAuMzEyMDY4LCAwLjY2NjIzOSwgMS4yNTY0OSwgMS44NDU2OSwgMy4yMTk4OCwgNC4wMDQ3OSIsIFwKLSAgICAgICAgICAiMC4yODIyNTUsIDAuMzIwODQyLCAwLjY3NTkwNiwgMS4yNjU1LCAxLjg1NTI4LCAzLjIyOTQzLCA0LjAxNDY1IiwgXAotICAgICAgICAgICIwLjI5ODAxNywgMC4zMzczOTIsIDAuNjkxMzgyLCAxLjI4MTE3LCAxLjg3MDksIDMuMjQ1MjksIDQuMDI5OTUiLCBcCi0gICAgICAgICAgIjAuMzExMjgxLCAwLjM1MDY2MSwgMC43MDUzODgsIDEuMjk1LCAxLjg4NDUzLCAzLjI1ODc2LCA0LjA0Mzk3Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjQ2OTg2NCwgMC41NDg4ODcsIDEuMjU5NDQsIDIuNDQzMTQsIDMuNjI1NywgNi4zODc3LCA3Ljk2Njk0IiwgXAotICAgICAgICAgICIwLjQ2OTg4MywgMC41NDg5NywgMS4yNTkzMiwgMi40NDMwNiwgMy42MjYxOCwgNi4zODk5NSwgNy45NjYyMiIsIFwKLSAgICAgICAgICAiMC40Njk5MDIsIDAuNTQ4ODc2LCAxLjI1OTQsIDIuNDQzMTcsIDMuNjI2NzgsIDYuMzg3ODgsIDcuOTY2NDEiLCBcCi0gICAgICAgICAgIjAuNDY5ODU2LCAwLjU0ODc5OCwgMS4yNTk0NywgMi40NDI3OSwgMy42MjU4NCwgNi4zOTAxNSwgNy45NjYxNyIsIFwKLSAgICAgICAgICAiMC40NzAxOTEsIDAuNTQ4ODA4LCAxLjI1OTQ2LCAyLjQ0MjgyLCAzLjYyNjU1LCA2LjM4OTk1LCA3Ljk2NzQyIiwgXAotICAgICAgICAgICIwLjQ3MjUwNywgMC41NTAyNzYsIDEuMjU5NDEsIDIuNDQyNzksIDMuNjI2OTYsIDYuMzg5OTIsIDcuOTY2MjciLCBcCi0gICAgICAgICAgIjAuNDc1ODAxLCAwLjU1Mjg1NiwgMS4yNTk0MywgMi40NDMxNSwgMy42MjU5NCwgNi4zOTA3NCwgNy45Njc0OSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNjUyNTIsIDAuMTkxMTI0LCAwLjQyMzIzNCwgMC44MDk2NDgsIDEuMTk2MDEsIDIuMDk3NTcsIDIuNjEzMTkiLCBcCi0gICAgICAgICAgIjAuMTc1NDg5LCAwLjIwMTM1NCwgMC40MzM2NTMsIDAuODIwMjc1LCAxLjIwNzA5LCAyLjEwODksIDIuNjI0IiwgXAotICAgICAgICAgICIwLjE4NzEzMiwgMC4yMTMwMjcsIDAuNDQ1MTU1LCAwLjgzMjAwNywgMS4yMTg1NSwgMi4xMjAyNCwgMi42MzU1MiIsIFwKLSAgICAgICAgICAiMC4xOTgyMTIsIDAuMjI0MTMsIDAuNDU2MzUzLCAwLjg0MjkzMywgMS4yMjk2MywgMi4xMzA2OSwgMi42NDY3MiIsIFwKLSAgICAgICAgICAiMC4yMDkxMTksIDAuMjM1MDEyLCAwLjQ2NzQsIDAuODU0MzI5LCAxLjI0MTAyLCAyLjE0MzAxLCAyLjY1Nzc4IiwgXAotICAgICAgICAgICIwLjIyNjUzMywgMC4yNTIzNjksIDAuNDg0ODAxLCAwLjg3MTU2MywgMS4yNTgyMSwgMi4xNjA1MiwgMi42NzU2MSIsIFwKLSAgICAgICAgICAiMC4yNDE2OTYsIDAuMjY3Nzc3LCAwLjUwMDE3MywgMC44ODY4NTcsIDEuMjczNDgsIDIuMTc2MzUsIDIuNjkwOTQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjkwNTE4LCAwLjM0MTU0LCAwLjc5OTkxMSwgMS41NjMzMywgMi4zMjY2MSwgNC4xMDc0NywgNS4xMjQ5OCIsIFwKLSAgICAgICAgICAiMC4yOTA1OTUsIDAuMzQxNjk2LCAwLjc5OTk3OCwgMS41NjM3NSwgMi4zMjg3MSwgNC4xMDcyNiwgNS4xMjM4MyIsIFwKLSAgICAgICAgICAiMC4yOTA1MTEsIDAuMzQxNTQxLCAwLjc5OTY4MywgMS41NjMyLCAyLjMyNzAzLCA0LjEwNjg3LCA1LjEyNDc0IiwgXAotICAgICAgICAgICIwLjI5MDU5NCwgMC4zNDE1NDksIDAuODAwMDA0LCAxLjU2MjkzLCAyLjMyNzEzLCA0LjEwNTE0LCA1LjEyNDcyIiwgXAotICAgICAgICAgICIwLjI5MTU3NiwgMC4zNDE4NjcsIDAuNzk5NjAxLCAxLjU2NDAzLCAyLjMyNzI2LCA0LjEwNzY4LCA1LjEyMzI5IiwgXAotICAgICAgICAgICIwLjI5NDc0NiwgMC4zNDQzOTIsIDAuNzk5OTE1LCAxLjU2Mjg2LCAyLjMyNzA3LCA0LjEwNzI2LCA1LjEyMzQ5IiwgXAotICAgICAgICAgICIwLjI5OTA2MywgMC4zNDgzMTEsIDAuNzk5ODA4LCAxLjU2MzczLCAyLjMyNjg5LCA0LjEwODI2LCA1LjEyNDc0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEyIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMzY1ODksIDAuMjc2MDAzLCAwLjYzMDIyMiwgMS4yMTk3MiwgMS44MDkzNywgMy4xODM0NSwgMy45Njg0OSIsIFwKLSAgICAgICAgICAiMC4yNDQ5NTYsIDAuMjg0NDQ3LCAwLjYzODgwNywgMS4yMjg1MywgMS44MTc5NSwgMy4xOTIzNCwgMy45NzY4OCIsIFwKLSAgICAgICAgICAiMC4yNTU0NiwgMC4yOTQ4NzIsIDAuNjQ5NTI3LCAxLjIzODczLCAxLjgyODU0LCAzLjIwMjY2LCAzLjk4NzY4IiwgXAotICAgICAgICAgICIwLjI2NjA2MiwgMC4zMDU1ODMsIDAuNjU5NzAxLCAxLjI0OTU2LCAxLjgzOTc4LCAzLjIxMzA4LCAzLjk5ODI0IiwgXAotICAgICAgICAgICIwLjI3NjY3NiwgMC4zMTU2OTcsIDAuNjcwNzA5LCAxLjI2MDI0LCAxLjg1MDA2LCAzLjIyMzg4LCA0LjAwODk0IiwgXAotICAgICAgICAgICIwLjI5MzkyNiwgMC4zMzMzMDksIDAuNjg3NDM3LCAxLjI3NzIsIDEuODY2NzcsIDMuMjQxMzMsIDQuMDI2IiwgXAotICAgICAgICAgICIwLjMwODg5OCwgMC4zNDgyLCAwLjcwMjcxMywgMS4yOTIwOSwgMS44ODE1OSwgMy4yNTU3MSwgNC4wNDEiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuNDY5ODA5LCAwLjU0ODkxNSwgMS4yNTk0OSwgMi40NDMwMSwgMy42MjY3NywgNi4zOTAxNywgNy45Njc1NSIsIFwKLSAgICAgICAgICAiMC40Njk5MDIsIDAuNTQ4ODg3LCAxLjI1OTQ5LCAyLjQ0MjgzLCAzLjYyNjQ0LCA2LjM5MDY3LCA3Ljk2NTQiLCBcCi0gICAgICAgICAgIjAuNDY5ODcsIDAuNTQ4ODk2LCAxLjI1OTM4LCAyLjQ0MzA1LCAzLjYyNjkxLCA2LjM5MDA5LCA3Ljk2NjM3IiwgXAotICAgICAgICAgICIwLjQ2OTg1MywgMC41NDg5MDQsIDEuMjU5NCwgMi40NDI4MiwgMy42MjY1MywgNi4zOTA1LCA3Ljk2NjQ1IiwgXAotICAgICAgICAgICIwLjQ3MDE3OCwgMC41NDg3ODUsIDEuMjU5NDEsIDIuNDQyNTgsIDMuNjI2NTMsIDYuMzkwMjksIDcuOTY2NDciLCBcCi0gICAgICAgICAgIjAuNDczNTk5LCAwLjU1MDg2MywgMS4yNTkyOSwgMi40NDMxLCAzLjYyNjg2LCA2LjM5MDQ4LCA3Ljk2NjI1IiwgXAotICAgICAgICAgICIwLjQ3ODg1NywgMC41NTQ4NjgsIDEuMjU5NDUsIDIuNDQzMTEsIDMuNjI1OTIsIDYuMzg5OTQsIDcuOTY3MzUiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTU5OTQ1LCAwLjE4NTY5LCAwLjQxNzg3MSwgMC44MDQzMTQsIDEuMTkwODUsIDIuMDkyNzQsIDIuNjA4MDIiLCBcCi0gICAgICAgICAgIjAuMTcwMjQzLCAwLjE5NjEyOSwgMC40MjgxOCwgMC44MTQ5MTgsIDEuMjAxMzksIDIuMTAzNDcsIDIuNjE4NDIiLCBcCi0gICAgICAgICAgIjAuMTgxODk1LCAwLjIwNzc4OSwgMC40Mzk4NDQsIDAuODI2NjI2LCAxLjIxMzExLCAyLjExNDc2LCAyLjYzMDAzIiwgXAotICAgICAgICAgICIwLjE5Mjc0LCAwLjIxODc4NCwgMC40NTA4ODQsIDAuODM3NDQsIDEuMjI0MDksIDIuMTI1MTQsIDIuNjQxMTMiLCBcCi0gICAgICAgICAgIjAuMjAzODg0LCAwLjIyOTY1NiwgMC40NjE5OTYsIDAuODQ4NjM2LCAxLjIzNDg5LCAyLjEzNzQzLCAyLjY1MjI3IiwgXAotICAgICAgICAgICIwLjIyMTI0NSwgMC4yNDcwNDEsIDAuNDc5NDI5LCAwLjg2NjI0MywgMS4yNTI1MiwgMi4xNTQ3NCwgMi42NzAwOCIsIFwKLSAgICAgICAgICAiMC4yMzYzMzUsIDAuMjYyMzYxLCAwLjQ5NDY4NiwgMC44ODEzNTgsIDEuMjY3ODQsIDIuMTcwMTUsIDIuNjg1MDIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjg0NDk3LCAwLjMzNTU3MSwgMC43OTM0NzYsIDEuNTU2ODgsIDIuMzIwOTksIDQuMTAwMzIsIDUuMTE1ODciLCBcCi0gICAgICAgICAgIjAuMjg0NTA0LCAwLjMzNTQ2OSwgMC43OTM2MjQsIDEuNTU3MzcsIDIuMzIwODIsIDQuMDk5ODcsIDUuMTE3NjMiLCBcCi0gICAgICAgICAgIjAuMjg0NDg3LCAwLjMzNTM2LCAwLjc5MzI5MSwgMS41NTY2NiwgMi4zMjAzNSwgNC4wOTk3MSwgNS4xMTc3MiIsIFwKLSAgICAgICAgICAiMC4yODQ0ODcsIDAuMzM1Mzc2LCAwLjc5MzMwNiwgMS41NTYzNywgMi4zMjAyMywgNC4wOTgyNCwgNS4xMTc3NSIsIFwKLSAgICAgICAgICAiMC4yODU1LCAwLjMzNTgwOSwgMC43OTM2MDYsIDEuNTU2MzksIDIuMzE5OTksIDQuMDk5ODYsIDUuMTE3NzYiLCBcCi0gICAgICAgICAgIjAuMjg4OTIzLCAwLjMzODM4OSwgMC43OTM1NzgsIDEuNTU3MTMsIDIuMzIwMTIsIDQuMTAxMDgsIDUuMTE1OTQiLCBcCi0gICAgICAgICAgIjAuMjkzMzEyLCAwLjM0MjUxOCwgMC43OTM3MTEsIDEuNTU2MjksIDIuMzIwMDUsIDQuMDk5ODgsIDUuMTE5MDIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjAiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE1MjMxNCwgMC4xNzg3OTIsIDAuNDE4MjIyLCAwLjgxNzI0NiwgMS4yMTYzOCwgMi4xNDY5NiwgMi42Nzg0NiIsIFwKLSAgICAgICAgICAiMC4xNjEwOSwgMC4xODc2ODgsIDAuNDI3MTExLCAwLjgyNjE1NSwgMS4yMjUxLCAyLjE1NTc5LCAyLjY4NzA2IiwgXAotICAgICAgICAgICIwLjE3MDkwOSwgMC4xOTc1NjksIDAuNDM3MDc2LCAwLjgzNjE4MywgMS4yMzUxNSwgMi4xNjU0MSwgMi42OTcwOSIsIFwKLSAgICAgICAgICAiMC4xODA3NzUsIDAuMjA3NSwgMC40NDY5NzYsIDAuODQ2MDYsIDEuMjQ0OTQsIDIuMTc1NTcsIDIuNzA2ODciLCBcCi0gICAgICAgICAgIjAuMTkwNDczLCAwLjIxNzMxNSwgMC40NTY4NTgsIDAuODU1OTM2LCAxLjI1NDk0LCAyLjE4NTY0LCAyLjcxNzI2IiwgXAotICAgICAgICAgICIwLjIwNjA0LCAwLjIzMjkxMiwgMC40NzI2ODgsIDAuODcyMDIyLCAxLjI3MTEyLCAyLjIwMTM0LCAyLjczMzM2IiwgXAotICAgICAgICAgICIwLjIyMDQyNywgMC4yNDY0NzEsIDAuNDg2NjcxLCAwLjg4NTQ0NiwgMS4yODQ1NCwgMi4yMTU2NiwgMi43NDcyNyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMTQ4LCAwLjM2ODQ1NiwgMC44NTIxMDMsIDEuNjU5MzMsIDIuNDY2ODIsIDQuMzUwNDgsIDUuNDI3NDgiLCBcCi0gICAgICAgICAgIjAuMzE0NzMsIDAuMzY4NDE3LCAwLjg1MjE3LCAxLjY1OTEzLCAyLjQ2Njc1LCA0LjM1MDI0LCA1LjQyNjczIiwgXAotICAgICAgICAgICIwLjMxNDcxMiwgMC4zNjgzNjEsIDAuODUyMTEzLCAxLjY1OTMyLCAyLjQ2NjczLCA0LjM1MDMyLCA1LjQyNjg5IiwgXAotICAgICAgICAgICIwLjMxNTM1NywgMC4zNjg2MzYsIDAuODUyMTE2LCAxLjY1OTM3LCAyLjQ2NjY3LCA0LjM1MDQ5LCA1LjQyNzMzIiwgXAotICAgICAgICAgICIwLjMxNzEyMSwgMC4zNjk5NTgsIDAuODUyMjY2LCAxLjY1OTI3LCAyLjQ2NjcyLCA0LjM1MDM0LCA1LjQyNzg4IiwgXAotICAgICAgICAgICIwLjMyMTc5NCwgMC4zNzM4MywgMC44NTIyNjgsIDEuNjU4OSwgMi40NjY4LCA0LjM1MDgzLCA1LjQyNzc1IiwgXAotICAgICAgICAgICIwLjMyNzkwNywgMC4zNzg0NzYsIDAuODUyOTAxLCAxLjY1OTMzLCAyLjQ2NjcyLCA0LjM1MDg5LCA1LjQyNzYyIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE1ODUwNywgMC4xODQzNzEsIDAuNDE2ODc0LCAwLjgwMzU2NCwgMS4xODk5NCwgMi4wOTEzNywgMi42MDc0MyIsIFwKLSAgICAgICAgICAiMC4xNjc2NywgMC4xOTM1NDksIDAuNDI2MDA3LCAwLjgxMzE0LCAxLjE5OTQ0LCAyLjEwMTQyLCAyLjYxNzEiLCBcCi0gICAgICAgICAgIjAuMTc5Mzg2LCAwLjIwNTE1MiwgMC40Mzc1NTEsIDAuODI0MTQxLCAxLjIxMTA0LCAyLjExMywgMi42MjgwNyIsIFwKLSAgICAgICAgICAiMC4xOTA4MzcsIDAuMjE2NzYzLCAwLjQ0OTIxLCAwLjgzNTk1MiwgMS4yMjIzNiwgMi4xMjQ1LCAyLjYzOTcxIiwgXAotICAgICAgICAgICIwLjIwMjU0MSwgMC4yMjg0NjYsIDAuNDYwNzU3LCAwLjg0NzQ5LCAxLjIzNDA3LCAyLjEzNjcsIDIuNjUxNiIsIFwKLSAgICAgICAgICAiMC4yMjEzOCwgMC4yNDczNCwgMC40Nzk3OTUsIDAuODY2NjAyLCAxLjI1Mjg2LCAyLjE1NDkxLCAyLjY3MDUyIiwgXAotICAgICAgICAgICIwLjIzODE0NywgMC4yNjM4ODUsIDAuNDk2MDUyLCAwLjg4MjgyNiwgMS4yNjkyMiwgMi4xNzA2NCwgMi42ODY1MSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yOTU1ODMsIDAuMzQ2NjU1LCAwLjgwNDkzLCAxLjU2ODQ1LCAyLjMzMTk3LCA0LjExNDAyLCA1LjEyOTU4IiwgXAotICAgICAgICAgICIwLjI5NTU2MSwgMC4zNDY2NDUsIDAuODA0NzU0LCAxLjU2ODUxLCAyLjMzMjIxLCA0LjExMjQsIDUuMTMwMTEiLCBcCi0gICAgICAgICAgIjAuMjk1NTA3LCAwLjM0NjU0NSwgMC44MDQ3NTEsIDEuNTY3OTcsIDIuMzMxNDEsIDQuMTExNzcsIDUuMTI5NjQiLCBcCi0gICAgICAgICAgIjAuMjk1NzUzLCAwLjM0NjQzOSwgMC44MDUwOTcsIDEuNTY4MzcsIDIuMzMxMywgNC4xMTE3MSwgNS4xMzAwMyIsIFwKLSAgICAgICAgICAiMC4yOTgxMjgsIDAuMzQ3NzI0LCAwLjgwNDk0NywgMS41NjgxLCAyLjMzMjE1LCA0LjExMzA3LCA1LjEyOTE2IiwgXAotICAgICAgICAgICIwLjMwNDQyNCwgMC4zNTMwNDgsIDAuODA0ODMxLCAxLjU2ODEsIDIuMzMxMzQsIDQuMTEzMjksIDUuMTI4NjciLCBcCi0gICAgICAgICAgIjAuMzEyMDgsIDAuMzU5Mjk0LCAwLjgwNDg1LCAxLjU2ODExLCAyLjMzMTMsIDQuMTEzNjcsIDUuMTMxMDEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE0ODU3NywgMC4xNzUwODgsIDAuNDE0NTY3LCAwLjgxMzU4NywgMS4yMTI2OCwgMi4xNDMwMiwgMi42NzQ4NiIsIFwKLSAgICAgICAgICAiMC4xNTc0NTIsIDAuMTg0MTExLCAwLjQyMzU5MSwgMC44MjI3MDgsIDEuMjIxNjEsIDIuMTUyNTYsIDIuNjgzODgiLCBcCi0gICAgICAgICAgIjAuMTY4NzMzLCAwLjE5NTM1NCwgMC40MzQ4ODYsIDAuODMzOTQzLCAxLjIzMjg5LCAyLjE2MzY4LCAyLjY5NDgxIiwgXAotICAgICAgICAgICIwLjE4MDA1NCwgMC4yMDY2OSwgMC40NDYzMjIsIDAuODQ1NDAzLCAxLjI0NDMzLCAyLjE3NDczLCAyLjcwNjMiLCBcCi0gICAgICAgICAgIjAuMTkxMzgzLCAwLjIxODA0OSwgMC40NTc1NzksIDAuODU2NzA2LCAxLjI1NTcsIDIuMTg2NDUsIDIuNzE3NzkiLCBcCi0gICAgICAgICAgIjAuMjA5NTk4LCAwLjIzNjE4NSwgMC40NzU3NjUsIDAuODc0ODk0LCAxLjI3Mzc5LCAyLjIwNDA4LCAyLjczNTciLCBcCi0gICAgICAgICAgIjAuMjI1Njc1LCAwLjI1MjM1MiwgMC40OTE2NTIsIDAuODkwNzg3LCAxLjI4OTc0LCAyLjIyMDMxLCAyLjc1MTQ3Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMxNDcxOCwgMC4zNjgzNzQsIDAuODUyMjQ4LCAxLjY1OTM1LCAyLjQ2NjksIDQuMzUwODksIDUuNDI4MDEiLCBcCi0gICAgICAgICAgIjAuMzE0NzI0LCAwLjM2ODM5MSwgMC44NTIxMzIsIDEuNjU5NDIsIDIuNDY2NzEsIDQuMzUwMjMsIDUuNDI4MjciLCBcCi0gICAgICAgICAgIjAuMzE0Njk1LCAwLjM2ODM2MSwgMC44NTIyMjksIDEuNjU5MzEsIDIuNDY2NzEsIDQuMzUwNSwgNS40MjczNCIsIFwKLSAgICAgICAgICAiMC4zMTU2OTQsIDAuMzY4NjkzLCAwLjg1MjE3MSwgMS42NTkyNCwgMi40NjY3MiwgNC4zNTA0OCwgNS40MjcwNSIsIFwKLSAgICAgICAgICAiMC4zMTg3MDEsIDAuMzcwNzU4LCAwLjg1MjIwMiwgMS42NTkyNSwgMi40NjY1MywgNC4zNTA0NiwgNS40Mjc0MyIsIFwKLSAgICAgICAgICAiMC4zMjYxNTMsIDAuMzc2ODE1LCAwLjg1MTk3MywgMS42NTkzOCwgMi40NjYzNCwgNC4zNTA4MSwgNS40MjczNyIsIFwKLSAgICAgICAgICAiMC4zMzQ1ODUsIDAuMzg0MjEzLCAwLjg1MjcyNSwgMS42NTkzLCAyLjQ2NjcxLCA0LjM1MDIxLCA1LjQyNjE4Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE1MzU5LCAwLjE3OTQ2NiwgMC40MTE2OTcsIDAuNzk4MTgyLCAxLjE4NDg5LCAyLjA4NjEzLCAyLjYwMjIyIiwgXAotICAgICAgICAgICIwLjE2MzEzNiwgMC4xODkwNjgsIDAuNDIxMTgxLCAwLjgwODExOSwgMS4xOTQ0NSwgMi4wOTYyNCwgMi42MTE5NiIsIFwKLSAgICAgICAgICAiMC4xNzQ0NTEsIDAuMjAwMzcsIDAuNDMyNzIsIDAuODE5MjUsIDEuMjA2MTEsIDIuMTA4MDIsIDIuNjIzMTQiLCBcCi0gICAgICAgICAgIjAuMTg2MTk0LCAwLjIxMjEyMywgMC40NDQzNTQsIDAuODMxMDY4LCAxLjIxNzQ2LCAyLjExOTUzLCAyLjYzNDczIiwgXAotICAgICAgICAgICIwLjE5NzY1NCwgMC4yMjM1ODUsIDAuNDU1OTUyLCAwLjg0MjU5NSwgMS4yMjkxNywgMi4xMzE3OSwgMi42NDY2IiwgXAotICAgICAgICAgICIwLjIxNjQ1NSwgMC4yNDI0MDIsIDAuNDc0Nzc5LCAwLjg2MTY5OSwgMS4yNDc5NCwgMi4xNDk5NiwgMi42NjU1MiIsIFwKLSAgICAgICAgICAiMC4yMzMxNjcsIDAuMjU4ODc5LCAwLjQ5MTEwOCwgMC44Nzc5MDUsIDEuMjY0MjksIDIuMTY1NzQsIDIuNjgxNTMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjg5NzY1LCAwLjM0MDYwNSwgMC43OTg2NjUsIDEuNTYxNywgMi4zMjUyNywgNC4xMDc0MiwgNS4xMjY5NyIsIFwKLSAgICAgICAgICAiMC4yODk3MTQsIDAuMzQwNzY0LCAwLjc5ODY4NiwgMS41NjE4MiwgMi4zMjU3MywgNC4xMDU1MSwgNS4xMjMzNiIsIFwKLSAgICAgICAgICAiMC4yODk4NjksIDAuMzQwNjI2LCAwLjc5ODY4NywgMS41NjE2NywgMi4zMjQ4LCA0LjEwNzIsIDUuMTI0NjIiLCBcCi0gICAgICAgICAgIjAuMjkwMTgxLCAwLjM0MDQ5NCwgMC43OTkwMzEsIDEuNTYyMDMsIDIuMzI0ODEsIDQuMTA2NTksIDUuMTI0NCIsIFwKLSAgICAgICAgICAiMC4yOTI0OTEsIDAuMzQxOTY5LCAwLjc5ODk3NSwgMS41NjE3OCwgMi4zMjY3LCA0LjEwNzQsIDUuMTI0MTQiLCBcCi0gICAgICAgICAgIjAuMjk5MDk1LCAwLjM0NzU0MiwgMC43OTg5MSwgMS41NjE1OCwgMi4zMjQ4NSwgNC4xMDU3MSwgNS4xMjQwNyIsIFwKLSAgICAgICAgICAiMC4zMDY3MTcsIDAuMzUzODk4LCAwLjc5ODc4MSwgMS41NjE3NiwgMi4zMjQ4NCwgNC4xMDYzNywgNS4xMjM2NiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI3MzUsIDAuMDAyNzM1LCAwLjAwMjczNCwgMC4wMDI3MzIsIDAuMDAyNzMsIDAuMDAyNzI2LCAwLjAwMjcyNCIsIFwKLSAgICAgICAgICAiMC4wMDI3MjcsIDAuMDAyNzI4LCAwLjAwMjcyNywgMC4wMDI3MjYsIDAuMDAyNzI1LCAwLjAwMjcyLCAwLjAwMjcxNyIsIFwKLSAgICAgICAgICAiMC4wMDI3MjQsIDAuMDAyNzI1LCAwLjAwMjcyNSwgMC4wMDI3MjQsIDAuMDAyNzIzLCAwLjAwMjcxOSwgMC4wMDI3MTUiLCBcCi0gICAgICAgICAgIjAuMDAyNzIyLCAwLjAwMjcyMiwgMC4wMDI3MjQsIDAuMDAyNzI0LCAwLjAwMjcyMiwgMC4wMDI3MTgsIDAuMDAyNzE2IiwgXAotICAgICAgICAgICIwLjAwMjcyLCAwLjAwMjcyMSwgMC4wMDI3MjQsIDAuMDAyNzIzLCAwLjAwMjcyMiwgMC4wMDI3MTksIDAuMDAyNzE1IiwgXAotICAgICAgICAgICIwLjAwMjcxOCwgMC4wMDI3MTgsIDAuMDAyNzIyLCAwLjAwMjcyMiwgMC4wMDI3MjEsIDAuMDAyNzE4LCAwLjAwMjcxNSIsIFwKLSAgICAgICAgICAiMC4wMDI3MTYsIDAuMDAyNzE4LCAwLjAwMjcyMSwgMC4wMDI3MjIsIDAuMDAyNzIxLCAwLjAwMjcxNywgMC4wMDI3MTUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDA5NzMsIDAuMDAwOTczLCAwLjAwMDk3MywgMC4wMDA5NzMsIDAuMDAwOTcyLCAwLjAwMDk3MSwgMC4wMDA5NzEiLCBcCi0gICAgICAgICAgIjAuMDAwOTYsIDAuMDAwOTYsIDAuMDAwOTYsIDAuMDAwOTYsIDAuMDAwOTYsIDAuMDAwOTU5LCAwLjAwMDk1OCIsIFwKLSAgICAgICAgICAiMC4wMDA5NTYsIDAuMDAwOTU3LCAwLjAwMDk1OCwgMC4wMDA5NTgsIDAuMDAwOTU4LCAwLjAwMDk1NiwgMC4wMDA5NTUiLCBcCi0gICAgICAgICAgIjAuMDAwOTU0LCAwLjAwMDk1NCwgMC4wMDA5NTYsIDAuMDAwOTU2LCAwLjAwMDk1NiwgMC4wMDA5NTUsIDAuMDAwOTU1IiwgXAotICAgICAgICAgICIwLjAwMDk1MiwgMC4wMDA5NTIsIDAuMDAwOTU1LCAwLjAwMDk1NiwgMC4wMDA5NTYsIDAuMDAwOTU1LCAwLjAwMDk1NCIsIFwKLSAgICAgICAgICAiMC4wMDA5NDksIDAuMDAwOTUsIDAuMDAwOTU0LCAwLjAwMDk1NSwgMC4wMDA5NTUsIDAuMDAwOTU1LCAwLjAwMDk1NCIsIFwKLSAgICAgICAgICAiMC4wMDA5NDcsIDAuMDAwOTQ4LCAwLjAwMDk1MywgMC4wMDA5NTQsIDAuMDAwOTU1LCAwLjAwMDk1NCwgMC4wMDA5NTQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyNTQzLCAwLjAwMjU0NCwgMC4wMDI1NDIsIDAuMDAyNTQxLCAwLjAwMjUzOSwgMC4wMDI1MzUsIDAuMDAyNTMxIiwgXAotICAgICAgICAgICIwLjAwMjUzNiwgMC4wMDI1MzYsIDAuMDAyNTM2LCAwLjAwMjUzNSwgMC4wMDI1MzMsIDAuMDAyNTI4LCAwLjAwMjUyNSIsIFwKLSAgICAgICAgICAiMC4wMDI1MzIsIDAuMDAyNTMzLCAwLjAwMjUzNCwgMC4wMDI1MzMsIDAuMDAyNTMyLCAwLjAwMjUyNywgMC4wMDI1MjQiLCBcCi0gICAgICAgICAgIjAuMDAyNTMsIDAuMDAyNTMxLCAwLjAwMjUzMywgMC4wMDI1MzIsIDAuMDAyNTMxLCAwLjAwMjUyNiwgMC4wMDI1MjQiLCBcCi0gICAgICAgICAgIjAuMDAyNTI4LCAwLjAwMjUyMSwgMC4wMDI1MzEsIDAuMDAyNTMyLCAwLjAwMjUzLCAwLjAwMjUyNywgMC4wMDI1MjQiLCBcCi0gICAgICAgICAgIjAuMDAyNTI3LCAwLjAwMjUyNywgMC4wMDI1MywgMC4wMDI1MzEsIDAuMDAyNTI5LCAwLjAwMjUyNSwgMC4wMDI1MjMiLCBcCi0gICAgICAgICAgIjAuMDAyNTI2LCAwLjAwMjUyNywgMC4wMDI1MjksIDAuMDAyNTMsIDAuMDAyNTI5LCAwLjAwMjUyNSwgMC4wMDI1MjIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDA3OSwgMC4wMDA3OTEsIDAuMDAwNzkxLCAwLjAwMDc5LCAwLjAwMDc5LCAwLjAwMDc4OSwgMC4wMDA3ODkiLCBcCi0gICAgICAgICAgIjAuMDAwNzg2LCAwLjAwMDc4NywgMC4wMDA3ODksIDAuMDAwNzg5LCAwLjAwMDc4OSwgMC4wMDA3ODgsIDAuMDAwNzg4IiwgXAotICAgICAgICAgICIwLjAwMDc4MSwgMC4wMDA3ODIsIDAuMDAwNzg3LCAwLjAwMDc4OCwgMC4wMDA3ODgsIDAuMDAwNzg4LCAwLjAwMDc4NyIsIFwKLSAgICAgICAgICAiMC4wMDA3NzcsIDAuMDAwNzc4LCAwLjAwMDc4NSwgMC4wMDA3ODcsIDAuMDAwNzg3LCAwLjAwMDc4NywgMC4wMDA3ODciLCBcCi0gICAgICAgICAgIjAuMDAwNzczLCAwLjAwMDc3NSwgMC4wMDA3ODMsIDAuMDAwNzg2LCAwLjAwMDc4NywgMC4wMDA3ODcsIDAuMDAwNzg3IiwgXAotICAgICAgICAgICIwLjAwMDc2NywgMC4wMDA3NywgMC4wMDA3OCwgMC4wMDA3ODQsIDAuMDAwNzg1LCAwLjAwMDc4NiwgMC4wMDA3ODYiLCBcCi0gICAgICAgICAgIjAuMDAwNzYzLCAwLjAwMDc2NiwgMC4wMDA3NzgsIDAuMDAwNzgzLCAwLjAwMDc4NSwgMC4wMDA3ODYsIDAuMDAwNzg1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTIiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjM0NywgMC4wMDIzNDcsIDAuMDAyMzQ2LCAwLjAwMjM0NSwgMC4wMDIzNDMsIDAuMDAyMzM4LCAwLjAwMjMzNiIsIFwKLSAgICAgICAgICAiMC4wMDIzMzcsIDAuMDAyMzM4LCAwLjAwMjMzOSwgMC4wMDIzMzgsIDAuMDAyMzM2LCAwLjAwMjMzMSwgMC4wMDIzMjkiLCBcCi0gICAgICAgICAgIjAuMDAyMzMzLCAwLjAwMjMzNCwgMC4wMDIzMzYsIDAuMDAyMzM1LCAwLjAwMjMzNCwgMC4wMDIzMywgMC4wMDIzMjgiLCBcCi0gICAgICAgICAgIjAuMDAyMzMxLCAwLjAwMjMzMiwgMC4wMDIzMzUsIDAuMDAyMzM1LCAwLjAwMjMzMywgMC4wMDIzMywgMC4wMDIzMjciLCBcCi0gICAgICAgICAgIjAuMDAyMzMxLCAwLjAwMjMzMSwgMC4wMDIzMzQsIDAuMDAyMzM0LCAwLjAwMjMzMywgMC4wMDIzMjksIDAuMDAyMzI2IiwgXAotICAgICAgICAgICIwLjAwMjMzMiwgMC4wMDIzMzIsIDAuMDAyMzM0LCAwLjAwMjMzNCwgMC4wMDIzMzMsIDAuMDAyMzI4LCAwLjAwMjMyNiIsIFwKLSAgICAgICAgICAiMC4wMDIzMzUsIDAuMDAyMzM1LCAwLjAwMjMzNSwgMC4wMDIzMzQsIDAuMDAyMzMzLCAwLjAwMjMyOCwgMC4wMDIzMjYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDA1NDIsIDAuMDAwNTQzLCAwLjAwMDU0MywgMC4wMDA1NDQsIDAuMDAwNTQ0LCAwLjAwMDU0MywgMC4wMDA1NDMiLCBcCi0gICAgICAgICAgIjAuMDAwNTQ4LCAwLjAwMDU0OSwgMC4wMDA1NTMsIDAuMDAwNTU0LCAwLjAwMDU1NSwgMC4wMDA1NTUsIDAuMDAwNTU1IiwgXAotICAgICAgICAgICIwLjAwMDU0MiwgMC4wMDA1NDUsIDAuMDAwNTUyLCAwLjAwMDU1NSwgMC4wMDA1NTYsIDAuMDAwNTU3LCAwLjAwMDU1NyIsIFwKLSAgICAgICAgICAiMC4wMDA1MzYsIDAuMDAwNTM5LCAwLjAwMDU1LCAwLjAwMDU1NSwgMC4wMDA1NTYsIDAuMDAwNTU3LCAwLjAwMDU1NyIsIFwKLSAgICAgICAgICAiMC4wMDA1MywgMC4wMDA1MzQsIDAuMDAwNTQ4LCAwLjAwMDU1MywgMC4wMDA1NTUsIDAuMDAwNTU3LCAwLjAwMDU1NyIsIFwKLSAgICAgICAgICAiMC4wMDA1MjIsIDAuMDAwNTI2LCAwLjAwMDU0NCwgMC4wMDA1NTEsIDAuMDAwNTU0LCAwLjAwMDU1NiwgMC4wMDA1NTYiLCBcCi0gICAgICAgICAgIjAuMDAwNTE2LCAwLjAwMDUyMSwgMC4wMDA1NCwgMC4wMDA1NDksIDAuMDAwNTUzLCAwLjAwMDU1NSwgMC4wMDA1NTYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxNjk2LCAwLjAwMTY5NiwgMC4wMDE2OTcsIDAuMDAxNjk3LCAwLjAwMTY5NywgMC4wMDE2OTcsIDAuMDAxNjk3IiwgXAotICAgICAgICAgICIwLjAwMTY5NywgMC4wMDE2OTgsIDAuMDAxNzAxLCAwLjAwMTcwMiwgMC4wMDE3MDEsIDAuMDAxNzAzLCAwLjAwMTcwMyIsIFwKLSAgICAgICAgICAiMC4wMDE2OTIsIDAuMDAxNjk0LCAwLjAwMTcsIDAuMDAxNzAyLCAwLjAwMTcwMywgMC4wMDE3MDMsIDAuMDAxNzA0IiwgXAotICAgICAgICAgICIwLjAwMTY4OCwgMC4wMDE2OSwgMC4wMDE2OTgsIDAuMDAxNzAxLCAwLjAwMTcwMiwgMC4wMDE3MDMsIDAuMDAxNzAzIiwgXAotICAgICAgICAgICIwLjAwMTY4NSwgMC4wMDE2ODcsIDAuMDAxNjk2LCAwLjAwMTcsIDAuMDAxNzAyLCAwLjAwMTcwMywgMC4wMDE3MDMiLCBcCi0gICAgICAgICAgIjAuMDAxNjgxLCAwLjAwMTY4MywgMC4wMDE2OTMsIDAuMDAxNjk5LCAwLjAwMTcwMSwgMC4wMDE3MDIsIDAuMDAxNzAzIiwgXAotICAgICAgICAgICIwLjAwMTY4LCAwLjAwMTY4MiwgMC4wMDE2OTIsIDAuMDAxNjk4LCAwLjAwMTcsIDAuMDAxNzAyLCAwLjAwMTcwMyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDk3NywgMC4wMDA5NzcsIDAuMDAwOTc4LCAwLjAwMDk3NywgMC4wMDA5NzcsIDAuMDAwOTc1LCAwLjAwMDk3NSIsIFwKLSAgICAgICAgICAiMC4wMDA5NjcsIDAuMDAwOTY3LCAwLjAwMDk2OSwgMC4wMDA5NywgMC4wMDA5NywgMC4wMDA5NzEsIDAuMDAwOTY4IiwgXAotICAgICAgICAgICIwLjAwMDk2MywgMC4wMDA5NjQsIDAuMDAwOTY3LCAwLjAwMDk2OCwgMC4wMDA5NjgsIDAuMDAwOTY3LCAwLjAwMDk2NiIsIFwKLSAgICAgICAgICAiMC4wMDA5NjIsIDAuMDAwOTYzLCAwLjAwMDk2NiwgMC4wMDA5NjcsIDAuMDAwOTY3LCAwLjAwMDk2NiwgMC4wMDA5NjUiLCBcCi0gICAgICAgICAgIjAuMDAwOTYzLCAwLjAwMDk2MywgMC4wMDA5NjYsIDAuMDAwOTY3LCAwLjAwMDk2NiwgMC4wMDA5NjYsIDAuMDAwOTY1IiwgXAotICAgICAgICAgICIwLjAwMDk2NSwgMC4wMDA5NjUsIDAuMDAwOTY2LCAwLjAwMDk2NywgMC4wMDA5NjcsIDAuMDAwOTY2LCAwLjAwMDk2NSIsIFwKLSAgICAgICAgICAiMC4wMDA5NjksIDAuMDAwOTY5LCAwLjAwMDk2OCwgMC4wMDA5NjcsIDAuMDAwOTY3LCAwLjAwMDk2NiwgMC4wMDA5NjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxNTAxLCAwLjAwMTUwMSwgMC4wMDE1MDIsIDAuMDAxNTAyLCAwLjAwMTUwMiwgMC4wMDE1MDMsIDAuMDAxNTAzIiwgXAotICAgICAgICAgICIwLjAwMTUsIDAuMDAxNTAyLCAwLjAwMTUwNiwgMC4wMDE1MDcsIDAuMDAxNTA4LCAwLjAwMTUwOCwgMC4wMDE1MDgiLCBcCi0gICAgICAgICAgIjAuMDAxNDk2LCAwLjAwMTQ5NywgMC4wMDE1MDQsIDAuMDAxNTA3LCAwLjAwMTUwOCwgMC4wMDE1MDgsIDAuMDAxNTA5IiwgXAotICAgICAgICAgICIwLjAwMTQ5MiwgMC4wMDE0OTQsIDAuMDAxNTAyLCAwLjAwMTUwNiwgMC4wMDE1MDcsIDAuMDAxNTA4LCAwLjAwMTUwOSIsIFwKLSAgICAgICAgICAiMC4wMDE0OSwgMC4wMDE0OTIsIDAuMDAxNTAxLCAwLjAwMTUwNSwgMC4wMDE1MDcsIDAuMDAxNTA4LCAwLjAwMTUwOSIsIFwKLSAgICAgICAgICAiMC4wMDE0OTEsIDAuMDAxNDkyLCAwLjAwMTUsIDAuMDAxNTA1LCAwLjAwMTUwNiwgMC4wMDE1MDgsIDAuMDAxNTA4IiwgXAotICAgICAgICAgICIwLjAwMTQ5MywgMC4wMDE0OTQsIDAuMDAxNTAxLCAwLjAwMTUwNSwgMC4wMDE1MDYsIDAuMDAxNTA4LCAwLjAwMTUwOSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDc2MywgMC4wMDA3NjMsIDAuMDAwNzY1LCAwLjAwMDc2NiwgMC4wMDA3NjQsIDAuMDAwNzYzLCAwLjAwMDc2MyIsIFwKLSAgICAgICAgICAiMC4wMDA3NjEsIDAuMDAwNzYzLCAwLjAwMDc2OCwgMC4wMDA3NjksIDAuMDAwNzY5LCAwLjAwMDc2OSwgMC4wMDA3NjkiLCBcCi0gICAgICAgICAgIjAuMDAwNzU2LCAwLjAwMDc1OCwgMC4wMDA3NjYsIDAuMDAwNzY5LCAwLjAwMDc3LCAwLjAwMDc3LCAwLjAwMDc3IiwgXAotICAgICAgICAgICIwLjAwMDc1LCAwLjAwMDc1MiwgMC4wMDA3NjMsIDAuMDAwNzY4LCAwLjAwMDc2OSwgMC4wMDA3NywgMC4wMDA3NjkiLCBcCi0gICAgICAgICAgIjAuMDAwNzQ4LCAwLjAwMDc1MSwgMC4wMDA3NjEsIDAuMDAwNzY3LCAwLjAwMDc2OCwgMC4wMDA3NjksIDAuMDAwNzY5IiwgXAotICAgICAgICAgICIwLjAwMDc0NiwgMC4wMDA3NDgsIDAuMDAwNzYsIDAuMDAwNzY1LCAwLjAwMDc2NywgMC4wMDA3NjksIDAuMDAwNzY5IiwgXAotICAgICAgICAgICIwLjAwMDc0NywgMC4wMDA3NDksIDAuMDAwNzU5LCAwLjAwMDc2NSwgMC4wMDA3NjcsIDAuMDAwNzY4LCAwLjAwMDc2OSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IE9BSTMzWDEgKgotICogLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoT0FJMzNYMSkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjIxNzg0NjsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQTApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDkxNDk5MjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA5MTIwMDc7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwOTE0OTkyOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDQwOSwgMC4wMDA0MDksIDAuMDAwNDA5LCAwLjAwMDQwOSwgMC4wMDA0MDgsIDAuMDAwNDA5LCAwLjAwMDQwOCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDQxLCAwLjAwMDQxLCAwLjAwMDQxLCAwLjAwMDQxLCAwLjAwMDQxLCAwLjAwMDQxLCAwLjAwMDQxIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihBMSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwOTQxMDQ3OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDkzODg2OTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA5NDEwNDc7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNDA5LCAwLjAwMDQwOSwgMC4wMDA0MDksIDAuMDAwNDA5LCAwLjAwMDQwOSwgMC4wMDA0MDksIDAuMDAwNDA5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNDEsIDAuMDAwNDEsIDAuMDAwNDEsIDAuMDAwNDEsIDAuMDAwNDEsIDAuMDAwNDEsIDAuMDAwNDEiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEEyKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA5MTU3Nzc7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwOTE1Nzc3OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDkxMjc1OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDQwOSwgMC4wMDA0MDksIDAuMDAwNDA5LCAwLjAwMDQwOSwgMC4wMDA0MDksIDAuMDAwNDA5LCAwLjAwMDQwOSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDQxLCAwLjAwMDQxLCAwLjAwMDQxLCAwLjAwMDQxLCAwLjAwMDQxLCAwLjAwMDQxLCAwLjAwMDQxIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwOTQyNjUyOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDkzNjU1OTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA5NDI2NTI7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNjg3LCAwLjAwMDY4OCwgMC4wMDA2ODcsIDAuMDAwNjg4LCAwLjAwMDY4NywgMC4wMDA2ODcsIDAuMDAwNjg4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNDY0LCAwLjAwMDQ2NCwgMC4wMDA0NjUsIDAuMDAwNDY1LCAwLjAwMDQ2NSwgMC4wMDA0NjUsIDAuMDAwNDY1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCMSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwOTQwOTAzOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDkzNTczMjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA5NDA5MDM7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNjg3LCAwLjAwMDY4NywgMC4wMDA2ODgsIDAuMDAwNjg4LCAwLjAwMDY4NywgMC4wMDA2ODcsIDAuMDAwNjg3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNDY0LCAwLjAwMDQ2NCwgMC4wMDA0NjQsIDAuMDAwNDY0LCAwLjAwMDQ2NSwgMC4wMDA0NjQsIDAuMDAwNDY1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCMikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwOTI5ODcxOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDkyOTg3MTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA5Mjk4NTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA2ODcsIDAuMDAwNjg3LCAwLjAwMDY4NywgMC4wMDA2ODcsIDAuMDAwNjg3LCAwLjAwMDY4NywgMC4wMDA2ODciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA0NjQsIDAuMDAwNDY0LCAwLjAwMDQ2NCwgMC4wMDA0NjQsIDAuMDAwNDY0LCAwLjAwMDQ2NCwgMC4wMDA0NjQiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4wOTIyNjk0OwotICAgIGZ1bmN0aW9uIDogIighKCgoQjArQjEpK0IyKSAoKEEwK0ExKStBMikpKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTAiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE2NDU5MiwgMC4yMzM4MzYsIDAuNjI1NDA0LCAwLjk3MDA1LCAxLjQzMDE1LCAyLjM1MDIsIDIuOTI0MDEiLCBcCi0gICAgICAgICAgIjAuMTcyODM5LCAwLjI0MjEwNSwgMC42MzMzODQsIDAuOTc4MTI0LCAxLjQzNzg5LCAyLjM1ODAxLCAyLjkzMTUzIiwgXAotICAgICAgICAgICIwLjE4MTQ0OSwgMC4yNTA3NzUsIDAuNjQyNDUxLCAwLjk4NzU3LCAxLjQ0NzA3LCAyLjM2NjY3LCAyLjk0MDIiLCBcCi0gICAgICAgICAgIjAuMTg5NTU5LCAwLjI1ODg4LCAwLjY1MDI5NywgMC45OTU2NzIsIDEuNDU1MTYsIDIuMzc0MzgsIDIuOTQ4NTciLCBcCi0gICAgICAgICAgIjAuMTk3NDA5LCAwLjI2Njc1NSwgMC42NTgxNTQsIDEuMDAzMDMsIDEuNDYzMzMsIDIuMzgyOTEsIDIuOTU2NzEiLCBcCi0gICAgICAgICAgIjAuMjA5OTkyLCAwLjI3OTM1MywgMC42NzEwNTksIDEuMDE1OTgsIDEuNDc2MzQsIDIuMzk2NTEsIDIuOTY5NDIiLCBcCi0gICAgICAgICAgIjAuMjIwOTM0LCAwLjI5MDIxNCwgMC42ODIxMzMsIDEuMDI2ODksIDEuNDg3OTEsIDIuNDA3MTEsIDIuOTgwMzMiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzEzMjMsIDAuNDUxMjAxLCAxLjIzMzMzLCAxLjkyMzQ2LCAyLjg0MzU4LCA0LjY4MzE0LCA1LjgzNDY1IiwgXAotICAgICAgICAgICIwLjMxMzI1OSwgMC40NTExOCwgMS4yMzMwNSwgMS45MjMzNywgMi44NDM2MSwgNC42ODMxNiwgNS44MzM1IiwgXAotICAgICAgICAgICIwLjMxMzI1MywgMC40NTExNTUsIDEuMjMzMSwgMS45MjMzNCwgMi44NDM2MywgNC42ODMyMSwgNS44MzQzNiIsIFwKLSAgICAgICAgICAiMC4zMTM2NjgsIDAuNDUxMTU2LCAxLjIzMzEsIDEuOTIzMywgMi44NDM1NCwgNC42ODMwMywgNS44MzQxOSIsIFwKLSAgICAgICAgICAiMC4zMTQ4MTIsIDAuNDUxNjMxLCAxLjIzMzM0LCAxLjkyMzU3LCAyLjg0Mzc0LCA0LjY4MzI0LCA1LjgzMzUyIiwgXAotICAgICAgICAgICIwLjMxNzkyNiwgMC40NTM2MzMsIDEuMjMzMzEsIDEuOTIzNTIsIDIuODQzNjYsIDQuNjgyNzksIDUuODMzMTIiLCBcCi0gICAgICAgICAgIjAuMzIxNjQ2LCAwLjQ1NjE2OCwgMS4yMzMwMywgMS45MjM1NiwgMi44NDM3NSwgNC42ODI2MSwgNS44MzQyMSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMjA2NywgMC4xNjc4MjIsIDAuNDMyOTgzLCAwLjY2NjQ1OCwgMC45Nzc4MTQsIDEuNTk5MDIsIDEuOTg4NzciLCBcCi0gICAgICAgICAgIjAuMTMwNTczLCAwLjE3NzY5NCwgMC40NDI3NzksIDAuNjc2Mjk5LCAwLjk4NzUyOSwgMS42MDk0OSwgMS45OTcyNCIsIFwKLSAgICAgICAgICAiMC4xNDE5NTYsIDAuMTg5MTI5LCAwLjQ1NDIwNywgMC42ODc4NjcsIDAuOTk5MTgxLCAxLjYyMTM4LCAyLjAwOTAzIiwgXAotICAgICAgICAgICIwLjE1MzAyNiwgMC4yMDAxNTUsIDAuNDY1NDYxLCAwLjY5OTEyNSwgMS4wMTA0NywgMS42MzI1OCwgMi4wMjA1MyIsIFwKLSAgICAgICAgICAiMC4xNjM5MDgsIDAuMjExMDYzLCAwLjQ3NjQyLCAwLjcwOTgxNywgMS4wMjA4NSwgMS42NDI5OSwgMi4wMzE4MSIsIFwKLSAgICAgICAgICAiMC4xODEzMjIsIDAuMjI4NTU4LCAwLjQ5Mzk0NywgMC43Mjc1MDIsIDEuMDM4NDIsIDEuNjYxMjUsIDIuMDQ4NjUiLCBcCi0gICAgICAgICAgIjAuMTk2NDU4LCAwLjI0Mzk0NywgMC41MDkyNDcsIDAuNzQyNzUzLCAxLjA1Mzc1LCAxLjY3NTY4LCAyLjA2NTU3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE5ODk4LCAwLjI5MTM4NCwgMC44MTM1MDQsIDEuMjczOTMsIDEuODg4MDcsIDMuMTE2OTcsIDMuODg0MDYiLCBcCi0gICAgICAgICAgIjAuMTk5MTQzLCAwLjI5MTE4NCwgMC44MTMyMzgsIDEuMjc0MjUsIDEuODg4MDksIDMuMTE1OTIsIDMuODg0MDQiLCBcCi0gICAgICAgICAgIjAuMTk4OTg4LCAwLjI5MTQzNywgMC44MTM2NzgsIDEuMjczOTksIDEuODg3OSwgMy4xMTY0OCwgMy44ODQyNyIsIFwKLSAgICAgICAgICAiMC4xOTk3NDYsIDAuMjkxMjMxLCAwLjgxMzg0OSwgMS4yNzM5NCwgMS44ODc5OSwgMy4xMTYzOCwgMy44ODM2MyIsIFwKLSAgICAgICAgICAiMC4yMDE1NDIsIDAuMjkyMjcyLCAwLjgxMzQ0MSwgMS4yNzM5OCwgMS44ODg3NiwgMy4xMTY2NywgMy44ODM4MSIsIFwKLSAgICAgICAgICAiMC4yMDYxOTEsIDAuMjk1NTUzLCAwLjgxMzc2MSwgMS4yNzQ1MSwgMS44ODc4OSwgMy4xMTYwNSwgMy44ODQ5MSIsIFwKLSAgICAgICAgICAiMC4yMTE4NTIsIDAuMzAwMTA0LCAwLjgxMzUxOSwgMS4yNzM5MywgMS44ODc4OCwgMy4xMTY3OSwgMy44ODUzNyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTYxODI1LCAwLjIzMTE0MywgMC42MjI3MDIsIDAuOTY3MzkyLCAxLjQyNzE0LCAyLjM0NzExLCAyLjkyMTM1IiwgXAotICAgICAgICAgICIwLjE3MDI5MiwgMC4yMzk1NTgsIDAuNjMxMDI2LCAwLjk3NTkxMSwgMS40MzYzNiwgMi4zNTUxNiwgMi45MjkwMiIsIFwKLSAgICAgICAgICAiMC4xODAyMDEsIDAuMjQ5NTA3LCAwLjY0MDk1NywgMC45ODYwNjksIDEuNDQ2NTksIDIuMzY1MjMsIDIuOTM5NDYiLCBcCi0gICAgICAgICAgIjAuMTg5OTQ0LCAwLjI1OTM4MywgMC42NTA3ODksIDAuOTk2Mjc5LCAxLjQ1NTg1LCAyLjM3NTI3LCAyLjk0OTI4IiwgXAotICAgICAgICAgICIwLjE5OTgwNCwgMC4yNjkyLCAwLjY2MDg5OSwgMS4wMDU2NSwgMS40NjU0NiwgMi4zODUzMywgMi45NTk2MiIsIFwKLSAgICAgICAgICAiMC4yMTU2MjIsIDAuMjg0OTk3LCAwLjY3NjUxOSwgMS4wMjE2MiwgMS40ODEzNCwgMi40MDA5MywgMi45NzU0NCIsIFwKLSAgICAgICAgICAiMC4yMjk0MTYsIDAuMjk4NTg4LCAwLjY5MDg4NywgMS4wMzU1MywgMS40OTYzNCwgMi40MTU1NywgMi45ODg5Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMxMzI0NSwgMC40NTEyMDcsIDEuMjMzMzIsIDEuOTIzMTIsIDIuODQzNzIsIDQuNjgzMDcsIDUuODMzNDUiLCBcCi0gICAgICAgICAgIjAuMzEzMjUsIDAuNDUxMjc0LCAxLjIzMzI5LCAxLjkyMzY1LCAyLjg0MzU2LCA0LjY4MzAzLCA1LjgzNDE2IiwgXAotICAgICAgICAgICIwLjMxMzI0LCAwLjQ1MTIwOSwgMS4yMzMzMywgMS45MjM0OSwgMi44NDM2MiwgNC42ODI3NywgNS44MzM0NyIsIFwKLSAgICAgICAgICAiMC4zMTM4MTMsIDAuNDUxMjEsIDEuMjMzMjgsIDEuOTIzMzEsIDIuODQzNDIsIDQuNjgzMDUsIDUuODM0MzIiLCBcCi0gICAgICAgICAgIjAuMzE1NDM0LCAwLjQ1MTcwNywgMS4yMzMzLCAxLjkyMzQ1LCAyLjg0MzU0LCA0LjY4MzIsIDUuODM0NDIiLCBcCi0gICAgICAgICAgIjAuMzIwMTg3LCAwLjQ1NDE3NSwgMS4yMzMzLCAxLjkyMzIsIDIuODQzNzcsIDQuNjgyNzYsIDUuODMzMTYiLCBcCi0gICAgICAgICAgIjAuMzI1NTYxLCAwLjQ1Nzg2NywgMS4yMzMyOSwgMS45MjM2LCAyLjg0MzU0LCA0LjY4Mjk3LCA1LjgzMzQ0Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExNjczOSwgMC4xNjM3MDIsIDAuNDI4NDcxLCAwLjY2MTk4NCwgMC45NzMzODgsIDEuNTk0OTcsIDEuOTg0MTYiLCBcCi0gICAgICAgICAgIjAuMTI2Nzg0LCAwLjE3Mzc4MiwgMC40Mzg2MDEsIDAuNjcxODg4LCAwLjk4MzE5OSwgMS42MDUxOCwgMS45OTMiLCBcCi0gICAgICAgICAgIjAuMTM4MTQxLCAwLjE4NTE4NSwgMC40NTAyMzYsIDAuNjgzNDc1LCAwLjk5NDYxNCwgMS42MTY5NCwgMi4wMDUwOCIsIFwKLSAgICAgICAgICAiMC4xNDkxMjQsIDAuMTk2MTgxLCAwLjQ2MTI1LCAwLjY5NDg5MywgMS4wMDYxOSwgMS42MjgxNCwgMi4wMTYyNiIsIFwKLSAgICAgICAgICAiMC4xNTk5NTgsIDAuMjA3MDA1LCAwLjQ3MjE4OCwgMC43MDU1NTQsIDEuMDE2NTgsIDEuNjM4ODUsIDIuMDI3MjUiLCBcCi0gICAgICAgICAgIjAuMTc3NDQ1LCAwLjIyNDQxNywgMC40ODk2NjEsIDAuNzIzMTkxLCAxLjAzNDExLCAxLjY1NjkxLCAyLjA0NDMyIiwgXAotICAgICAgICAgICIwLjE5MjU1MSwgMC4yMzk2MTMsIDAuNTA0OTcsIDAuNzM4NjYzLCAxLjA0OTQzLCAxLjY3MTI3LCAyLjA2MTE1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE5NDI3MiwgMC4yODY0OCwgMC44MDg0MzMsIDEuMjY5MTcsIDEuODgzNDYsIDMuMTExNTYsIDMuODc4NiIsIFwKLSAgICAgICAgICAiMC4xOTQyNjksIDAuMjg2NDg0LCAwLjgwODQyNSwgMS4yNjk1MSwgMS44ODMxOSwgMy4xMTEwOCwgMy44Nzk5MSIsIFwKLSAgICAgICAgICAiMC4xOTQyNjYsIDAuMjg2NDAyLCAwLjgwODYxNiwgMS4yNjkxNiwgMS44ODMwOCwgMy4xMTExNywgMy44Nzc4MyIsIFwKLSAgICAgICAgICAiMC4xOTUwNDIsIDAuMjg2NjQ4LCAwLjgwODk2NywgMS4yNjkxNCwgMS44ODMxNSwgMy4xMTEyMiwgMy44Nzg1OSIsIFwKLSAgICAgICAgICAiMC4xOTY5NjEsIDAuMjg3NDg3LCAwLjgwODkyOCwgMS4yNjk2NSwgMS44ODM4NSwgMy4xMTIxMiwgMy44Nzg2NiIsIFwKLSAgICAgICAgICAiMC4yMDIxMiwgMC4yOTA4MDUsIDAuODA4NDM5LCAxLjI2OTU5LCAxLjg4Mjk4LCAzLjExMTIzLCAzLjg3OTk4IiwgXAotICAgICAgICAgICIwLjIwNzY1OCwgMC4yOTUyMTQsIDAuODA4NTc0LCAxLjI2OTEzLCAxLjg4Mjk2LCAzLjExMTk1LCAzLjg3OTIyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEyIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNTUwODcsIDAuMjI0NDE1LCAwLjYxNTk0OSwgMC45NjA4OCwgMS40MjAzOSwgMi4zNDA0OSwgMi45MTQ0NSIsIFwKLSAgICAgICAgICAiMC4xNjM0MTMsIDAuMjMyNzQ3LCAwLjYyNDA3NywgMC45NjkyNzMsIDEuNDI5MjQsIDIuMzQ5NTEsIDIuOTIzMjIiLCBcCi0gICAgICAgICAgIjAuMTc0MTM1LCAwLjI0MzUxOSwgMC42MzQ1MDQsIDAuOTgwMDA1LCAxLjQzOTQ1LCAyLjM1OTM1LCAyLjkzMzExIiwgXAotICAgICAgICAgICIwLjE4NDY0NSwgMC4yNTI3NzcsIDAuNjQ1Mzk3LCAwLjk5MDYyNiwgMS40NTA0NiwgMi4zNzAxNywgMi45NDQ2IiwgXAotICAgICAgICAgICIwLjE5NTQsIDAuMjY0NzU1LCAwLjY1NjIwMiwgMS4wMDExMiwgMS40NjEzMiwgMi4zODA3NiwgMi45NTQ0NCIsIFwKLSAgICAgICAgICAiMC4yMTI4OTIsIDAuMjgyMTkzLCAwLjY3MzU0LCAxLjAxODYyLCAxLjQ3ODI3LCAyLjM5ODU4LCAyLjk3MjA3IiwgXAotICAgICAgICAgICIwLjIyODI5NywgMC4yOTc0MDEsIDAuNjg4NjQ0LCAxLjAzMzY1LCAxLjQ5NDQ3LCAyLjQxMzY1LCAyLjk4NjkyIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMxMzI1NSwgMC40NTExOTIsIDEuMjMzMjksIDEuOTIzNTIsIDIuODQzNzQsIDQuNjgzOTYsIDUuODM0MDMiLCBcCi0gICAgICAgICAgIjAuMzEzMjU4LCAwLjQ1MTIyNiwgMS4yMzMzLCAxLjkyMzM4LCAyLjg0MzUxLCA0LjY4MjgsIDUuODM0NTgiLCBcCi0gICAgICAgICAgIjAuMzEzMjAyLCAwLjQ1MTE5NCwgMS4yMzMwNywgMS45MjM1MiwgMi44NDM3OSwgNC42ODMxNiwgNS44MzQzNiIsIFwKLSAgICAgICAgICAiMC4zMTM5ODIsIDAuNDUxMTA4LCAxLjIzMzMsIDEuOTIzNTQsIDIuODQzNzUsIDQuNjg0MDcsIDUuODMzNCIsIFwKLSAgICAgICAgICAiMC4zMTY3OTUsIDAuNDUxOCwgMS4yMzMxOSwgMS45MjM2LCAyLjg0MzU4LCA0LjY4MjkzLCA1LjgzMzQ0IiwgXAotICAgICAgICAgICIwLjMyMzg0NSwgMC40NTU4NDUsIDEuMjMzMzMsIDEuOTIzNTgsIDIuODQzNzMsIDQuNjgzNDYsIDUuODM0MTYiLCBcCi0gICAgICAgICAgIjAuMzMxOTc3LCAwLjQ2MTMsIDEuMjMzMzIsIDEuOTIzMjMsIDIuODQzNTksIDQuNjgzMjEsIDUuODMzMzIiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTExOTM0LCAwLjE1ODg1NiwgMC40MjM1MTMsIDAuNjU2ODk2LCAwLjk2ODE0OCwgMS41OTAwNiwgMS45NzgyMyIsIFwKLSAgICAgICAgICAiMC4xMjIxNzQsIDAuMTY5MTQxLCAwLjQzMzkwMywgMC42NjcxMDEsIDAuOTc4MzA3LCAxLjYwMDI3LCAxLjk4ODQyIiwgXAotICAgICAgICAgICIwLjEzMzQyNCwgMC4xODA0ODIsIDAuNDQ1MzM2LCAwLjY3ODgwNywgMC45ODk5ODEsIDEuNjExMzYsIDIuMDAwNjIiLCBcCi0gICAgICAgICAgIjAuMTQ0MzQzLCAwLjE5MTQzNSwgMC40NTY0NSwgMC42ODk5ODgsIDEuMDAwODUsIDEuNjIyNTYsIDIuMDExOCIsIFwKLSAgICAgICAgICAiMC4xNTUyMDIsIDAuMjAyMjMzLCAwLjQ2NzM4MSwgMC43MDA5MSwgMS4wMTIyNiwgMS42MzQzNCwgMi4wMjIzNCIsIFwKLSAgICAgICAgICAiMC4xNzI0ODMsIDAuMjE5NzEzLCAwLjQ4NDg4NSwgMC43MTg0MDEsIDEuMDI5MywgMS42NTIwNiwgMi4wMzk0NiIsIFwKLSAgICAgICAgICAiMC4xODc0NjMsIDAuMjM0OTc1LCAwLjUwMDE4NCwgMC43MzM3NjMsIDEuMDQ0NTUsIDEuNjY2NDEsIDIuMDU2MyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xODg4NzksIDAuMjgxMDg0LCAwLjgwMzI2MywgMS4yNjMyNywgMS44NzcwOSwgMy4xMDUwMiwgMy44NzIzMyIsIFwKLSAgICAgICAgICAiMC4xODg5MTksIDAuMjgxMDA4LCAwLjgwMzI1OSwgMS4yNjM3MiwgMS44NzcxNCwgMy4xMDQ4MywgMy44NzIxIiwgXAotICAgICAgICAgICIwLjE4OTA1LCAwLjI4MDk5LCAwLjgwMzA4NiwgMS4yNjMxOSwgMS44NzcyNSwgMy4xMDQ3NCwgMy44NzI3MSIsIFwKLSAgICAgICAgICAiMC4xODk4MzIsIDAuMjgxMjAxLCAwLjgwMjkzMywgMS4yNjM2MywgMS44Nzc2NywgMy4xMDQ3NCwgMy44NzI2OCIsIFwKLSAgICAgICAgICAiMC4xOTE3MTksIDAuMjgyMzExLCAwLjgwMzI1NSwgMS4yNjM1OSwgMS44Nzc2LCAzLjEwNDksIDMuODcxNCIsIFwKLSAgICAgICAgICAiMC4xOTcxMDYsIDAuMjg1NjI2LCAwLjgwMjg2NywgMS4yNjM3OSwgMS44NzcwOSwgMy4xMDQ4OSwgMy44NzM2NCIsIFwKLSAgICAgICAgICAiMC4yMDI4MTEsIDAuMjkwMjg0LCAwLjgwMzAwMSwgMS4yNjMyNCwgMS44NzcwOCwgMy4xMDU3MSwgMy44NzM2NCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTQ2NDMsIDAuMjE1OTc5LCAwLjYwODc3NywgMC45NTU1NjYsIDEuNDE3NiwgMi4zNDE0LCAyLjkxODY3IiwgXAotICAgICAgICAgICIwLjE1NDg0MywgMC4yMjQ0ODcsIDAuNjE3MzM5LCAwLjk2NDE1NCwgMS40MjYxOSwgMi4zNDk5NCwgMi45MjcyNiIsIFwKLSAgICAgICAgICAiMC4xNjM0MDksIDAuMjMyOTczLCAwLjYyNjA5MSwgMC45NzI4NzYsIDEuNDM1LCAyLjM1ODc0LCAyLjkzNjM2IiwgXAotICAgICAgICAgICIwLjE3MTQ2NCwgMC4yNDEwMDIsIDAuNjM0MTk0LCAwLjk4MDk1NSwgMS40NDMxLCAyLjM2NjkzLCAyLjk0NDIiLCBcCi0gICAgICAgICAgIjAuMTc5Mjg1LCAwLjI0ODg0NCwgMC42NDIxNjcsIDAuOTg4OTc2LCAxLjQ1MTI4LCAyLjM3NTI3LCAyLjk1MjEzIiwgXAotICAgICAgICAgICIwLjE5MTc0MSwgMC4yNjEzNDIsIDAuNjU0Nzk0LCAxLjAwMTYxLCAxLjQ2Mzg5LCAyLjM4Nzc5LCAyLjk2NDgxIiwgXAotICAgICAgICAgICIwLjIwMjYxNSwgMC4yNzI0NjIsIDAuNjY1NzM1LCAxLjAxMjc2LCAxLjQ3NTExLCAyLjM5OTAyLCAyLjk3NjM5Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI5NzYzNSwgMC40MzU5NDQsIDEuMjIwNDEsIDEuOTEzNTcsIDIuODM3NDYsIDQuNjg2MTgsIDUuODQwOTYiLCBcCi0gICAgICAgICAgIjAuMjk3NjY4LCAwLjQzNTk2NiwgMS4yMjAzMSwgMS45MTM1NywgMi44MzczNiwgNC42ODU1MiwgNS44NDA3NyIsIFwKLSAgICAgICAgICAiMC4yOTc2NDYsIDAuNDM1ODc5LCAxLjIyMDMyLCAxLjkxMzU3LCAyLjgzNzM2LCA0LjY4NTUsIDUuODQxNzIiLCBcCi0gICAgICAgICAgIjAuMjk4MjIyLCAwLjQzNTkzOCwgMS4yMjAzLCAxLjkxMzM1LCAyLjgzNzQyLCA0LjY4NTcyLCA1Ljg0MDk2IiwgXAotICAgICAgICAgICIwLjI5OTYyMSwgMC40MzY1NTYsIDEuMjIwNTYsIDEuOTEzMzgsIDIuODM3MjksIDQuNjg1NzUsIDUuODQwOTgiLCBcCi0gICAgICAgICAgIjAuMzAzMTM0LCAwLjQzODcxNywgMS4yMjAzMiwgMS45MTM0NCwgMi44Mzc0NSwgNC42ODU2NCwgNS44NDA4NyIsIFwKLSAgICAgICAgICAiMC4zMDcxMDcsIDAuNDQxNTUyLCAxLjIyMDMzLCAxLjkxMzQ3LCAyLjgzNzM5LCA0LjY4NTQ0LCA1Ljg0MTA0Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExMTU1MywgMC4xNTg2NTcsIDAuNDIzODc1LCAwLjY1NzMwOCwgMC45Njg2OSwgMS41OTA2OCwgMS45Nzg5MiIsIFwKLSAgICAgICAgICAiMC4xMjA2MzUsIDAuMTY3NzY1LCAwLjQzMjg5NiwgMC42NjYyMzEsIDAuOTc3MDcyLCAxLjU5ODgxLCAxLjk4NzU0IiwgXAotICAgICAgICAgICIwLjEzMjYyOSwgMC4xNzk3ODgsIDAuNDQ0NDUyLCAwLjY3NzczMSwgMC45ODkwNjEsIDEuNjExMTMsIDEuOTk5ODgiLCBcCi0gICAgICAgICAgIjAuMTQzODA1LCAwLjE5MDkxNSwgMC40NTU5NTgsIDAuNjg5NjYsIDEuMDAwNzQsIDEuNjIyOTYsIDIuMDExMTYiLCBcCi0gICAgICAgICAgIjAuMTU1NTAyLCAwLjIwMjYsIDAuNDY3NjE5LCAwLjcwMTIxNywgMS4wMTI2MywgMS42MzQzNCwgMi4wMjI4NCIsIFwKLSAgICAgICAgICAiMC4xNzU1MDMsIDAuMjIxNDI1LCAwLjQ4NjYwMSwgMC43MTk4NDksIDEuMDMwODksIDEuNjUzMjIsIDIuMDQxMzIiLCBcCi0gICAgICAgICAgIjAuMTkxODUxLCAwLjIzODE1MiwgMC41MDM5ODMsIDAuNzM3NjUzLCAxLjA0ODMsIDEuNjcwMTMsIDIuMDU4NDQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTk5MDE4LCAwLjI5MTIyLCAwLjgxMzQ2MSwgMS4yNzM5OCwgMS44ODc5OCwgMy4xMTYxMiwgMy44ODM1IiwgXAotICAgICAgICAgICIwLjE5OTEzNywgMC4yOTEzMzksIDAuODEzNDMzLCAxLjI3MzkyLCAxLjg4NzU4LCAzLjExNjM5LCAzLjg4Mzk5IiwgXAotICAgICAgICAgICIwLjE5ODg0NywgMC4yOTExNCwgMC44MTM4NDIsIDEuMjc0NDEsIDEuODg4NDIsIDMuMTE3MTIsIDMuODgzNzMiLCBcCi0gICAgICAgICAgIjAuMjAxMTcsIDAuMjkxNiwgMC44MTMyNTgsIDEuMjc0MjgsIDEuODg4NDksIDMuMTE2NzksIDMuODgzNjQiLCBcCi0gICAgICAgICAgIjAuMjA1MzQxLCAwLjI5Mzg0NCwgMC44MTM2NzMsIDEuMjc0NjEsIDEuODg3OTMsIDMuMTE1OTIsIDMuODgzMjciLCBcCi0gICAgICAgICAgIjAuMjEzNDkyLCAwLjMwMDIyLCAwLjgxMzQxNSwgMS4yNzM5MiwgMS44ODg0MywgMy4xMTU5NiwgMy44ODQyMiIsIFwKLSAgICAgICAgICAiMC4yMjI5MjYsIDAuMzA3NzczLCAwLjgxMzQwNywgMS4yNzM5NiwgMS44ODc4NywgMy4xMTcxMSwgMy44ODM3NCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTQzNzk0LCAwLjIxMzIzNywgMC42MDYwMzUsIDAuOTUyNzMsIDEuNDE1LCAyLjMzODgsIDIuOTE2MjUiLCBcCi0gICAgICAgICAgIjAuMTUyMjY5LCAwLjIyMTg0NiwgMC42MTQ3NjYsIDAuOTYxNTc5LCAxLjQyMzYyLCAyLjM0NzU0LCAyLjkyNDc0IiwgXAotICAgICAgICAgICIwLjE2MjA5NSwgMC4yMzE2NzYsIDAuNjI0ODUzLCAwLjk3MTYwMSwgMS40MzM2OCwgMi4zNTc1NiwgMi45MzQ4IiwgXAotICAgICAgICAgICIwLjE3MTg1NSwgMC4yNDE0NTEsIDAuNjM0Njk4LCAwLjk4MTQ0OCwgMS40NDM1NywgMi4zNjc0OSwgMi45NDQ3NCIsIFwKLSAgICAgICAgICAiMC4xODE2MTYsIDAuMjUxMjE2LCAwLjY0NDY5OSwgMC45OTE0NzMsIDEuNDUzNjgsIDIuMzc3ODEsIDIuOTU0OTQiLCBcCi0gICAgICAgICAgIjAuMTk3NTA1LCAwLjI2Njk0MSwgMC42NjA1MzYsIDEuMDA3MzgsIDEuNDY5NjIsIDIuMzkzMjksIDIuOTcwNzYiLCBcCi0gICAgICAgICAgIjAuMjExMDUzLCAwLjI4MDYyMywgMC42NzQzMjIsIDEuMDIxMjksIDEuNDgzNDgsIDIuNDA3NTUsIDIuOTg0NDkiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjk3Njg2LCAwLjQzNTk3MiwgMS4yMjAzOSwgMS45MTMzOCwgMi44Mzc0NCwgNC42ODU2OCwgNS44NDExNCIsIFwKLSAgICAgICAgICAiMC4yOTc2MzMsIDAuNDM1OTQ3LCAxLjIyMDU4LCAxLjkxMzU3LCAyLjgzNzQsIDQuNjg1ODcsIDUuODQwNTYiLCBcCi0gICAgICAgICAgIjAuMjk3NjYsIDAuNDM1ODgxLCAxLjIyMDQxLCAxLjkxMzM0LCAyLjgzNzM5LCA0LjY4NTc5LCA1Ljg0MDkxIiwgXAotICAgICAgICAgICIwLjI5ODQ3NSwgMC40MzU5MTQsIDEuMjIwMzcsIDEuOTEzNDIsIDIuODM3MTUsIDQuNjg1NywgNS44NDA5IiwgXAotICAgICAgICAgICIwLjMwMDQ5MywgMC40MzY1MzksIDEuMjIwNjEsIDEuOTEzMzcsIDIuODM3NDcsIDQuNjg1NzMsIDUuODQxMDgiLCBcCi0gICAgICAgICAgIjAuMzA1OTQ5LCAwLjQzOTYwOCwgMS4yMjAzLCAxLjkxMzUsIDIuODM3NDcsIDQuNjg1NiwgNS44NDA4NyIsIFwKLSAgICAgICAgICAiMC4zMTE3OSwgMC40NDM2NDIsIDEuMjIwNTMsIDEuOTEzMiwgMi44MzczNiwgNC42ODU4NywgNS44NDA2MyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDc1NiwgMC4xNTQ1MzIsIDAuNDE5Mjk2LCAwLjY1MjgwMSwgMC45NjMzNzYsIDEuNTg1NTYsIDEuOTc0MzIiLCBcCi0gICAgICAgICAgIjAuMTE2ODkyLCAwLjE2NDA0NSwgMC40Mjg3NjQsIDAuNjYyMDEyLCAwLjk3MzAzNSwgMS41OTQ3NCwgMS45ODMwOCIsIFwKLSAgICAgICAgICAiMC4xMjg0OTgsIDAuMTc1ODQ4LCAwLjQ0MDg1LCAwLjY3NDQxNCwgMC45ODUzNDksIDEuNjA3MzgsIDEuOTk1OTgiLCBcCi0gICAgICAgICAgIjAuMTQwNDk3LCAwLjE4NzIxNSwgMC40NTIzMSwgMC42ODU2NDUsIDAuOTk3MTI5LCAxLjYxOTAxLCAyLjAwNzQyIiwgXAotICAgICAgICAgICIwLjE1MTUyNiwgMC4xOTg5MjUsIDAuNDYzNDQ0LCAwLjY5Njc2MywgMS4wMDgzNSwgMS42MzAwNiwgMi4wMTc4MiIsIFwKLSAgICAgICAgICAiMC4xNzEwMDUsIDAuMjE3MjUxLCAwLjQ4MzM0NiwgMC43MTU0NTgsIDEuMDI2NDMsIDEuNjQ4NiwgMi4wMzY3MSIsIFwKLSAgICAgICAgICAiMC4xODc2NjUsIDAuMjM0NDA3LCAwLjQ5OTczMywgMC43MzE4NzQsIDEuMDQzMDYsIDEuNjY0NSwgMi4wNTUwNCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xOTQyNTksIDAuMjg2NDU5LCAwLjgwODg0OCwgMS4yNjk0LCAxLjg4MjgyLCAzLjExMTA1LCAzLjg3OTE2IiwgXAotICAgICAgICAgICIwLjE5NDQwOSwgMC4yODY0NTMsIDAuODA4NTcyLCAxLjI2ODk5LCAxLjg4Mjk4LCAzLjExMDQ5LCAzLjg3OTQzIiwgXAotICAgICAgICAgICIwLjE5NDI4NSwgMC4yODYzMzcsIDAuODA4OTQ5LCAxLjI2OTE5LCAxLjg4MzU1LCAzLjExMjAyLCAzLjg3ODE4IiwgXAotICAgICAgICAgICIwLjE5NjQzNiwgMC4yODY3NjQsIDAuODA4NDI0LCAxLjI2OTMxLCAxLjg4MzE4LCAzLjExMjAzLCAzLjg3ODUiLCBcCi0gICAgICAgICAgIjAuMjAwOTQsIDAuMjg5MDE1LCAwLjgwODg3OCwgMS4yNjk1OSwgMS44ODMxMiwgMy4xMTA5NywgMy44Nzg1IiwgXAotICAgICAgICAgICIwLjIwOTc0NywgMC4yOTU4MTMsIDAuODA4NjA0LCAxLjI2OTIyLCAxLjg4MzgyLCAzLjExMDksIDMuODc4ODEiLCBcCi0gICAgICAgICAgIjAuMjE5Mjc4LCAwLjMwMzA1NSwgMC44MDg1NTksIDEuMjY5MDgsIDEuODgzMDcsIDMuMTEyMTMsIDMuODc4NDUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjIiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEzNjk0OSwgMC4yMDYzNTYsIDAuNTk5Mjk3LCAwLjk0NTk2OSwgMS40MDgyNywgMi4zMzIwNiwgMi45MDk1MiIsIFwKLSAgICAgICAgICAiMC4xNDU1NDMsIDAuMjE0OTAxLCAwLjYwNzk0OCwgMC45NTQ2NjQsIDEuNDE3MDEsIDIuMzQwNzUsIDIuOTE4MjYiLCBcCi0gICAgICAgICAgIjAuMTU1NzI3LCAwLjIyNTQ3MiwgMC42MTg2NTcsIDAuOTY1NDAyLCAxLjQyNzY1LCAyLjM1MTcyLCAyLjkyODU5IiwgXAotICAgICAgICAgICIwLjE2NjY5OSwgMC4yMzU4NDEsIDAuNjI5NDA3LCAwLjk3NjExNSwgMS40Mzg0OCwgMi4zNjI0NSwgMi45Mzk1NCIsIFwKLSAgICAgICAgICAiMC4xNzc0MTksIDAuMjQ2ODExLCAwLjY0MDE3MiwgMC45ODY5MzQsIDEuNDQ5MDksIDIuMzczMjUsIDIuOTUwMDgiLCBcCi0gICAgICAgICAgIjAuMTk0ODA1LCAwLjI2NDE2MiwgMC42NTc1MjcsIDEuMDA0MzEsIDEuNDY2NTIsIDIuMzkwNDMsIDIuOTY3NjUiLCBcCi0gICAgICAgICAgIjAuMjEwMTM3LCAwLjI3OTQ4NCwgMC42NzI1NzgsIDEuMDE5NCwgMS40ODE1NSwgMi40MDU1NywgMi45ODI1MSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yOTc2NjUsIDAuNDM1ODQxLCAxLjIyMDU3LCAxLjkxMzQyLCAyLjgzNzQ0LCA0LjY4NTc0LCA1Ljg0MTM1IiwgXAotICAgICAgICAgICIwLjI5NzY0OSwgMC40MzU5MTQsIDEuMjIwNTQsIDEuOTEzMzIsIDIuODM3NTQsIDQuNjg1OTEsIDUuODQxMTYiLCBcCi0gICAgICAgICAgIjAuMjk3NDk5LCAwLjQzNTg3MiwgMS4yMjAzLCAxLjkxMzQ1LCAyLjgzNzQ5LCA0LjY4NTg3LCA1Ljg0MTAxIiwgXAotICAgICAgICAgICIwLjI5ODk3MSwgMC40MzU3NDIsIDEuMjIwNjEsIDEuOTEzMDEsIDIuODM3NTQsIDQuNjg1NzcsIDUuODQxMjQiLCBcCi0gICAgICAgICAgIjAuMzAyMzU2LCAwLjQzNjgzMiwgMS4yMjAzOCwgMS45MTMwOSwgMi44MzcxNSwgNC42ODU3NSwgNS44NDA4MyIsIFwKLSAgICAgICAgICAiMC4zMTAzMjIsIDAuNDQxNDkzLCAxLjIyMDU5LCAxLjkxMzUsIDIuODM3NDMsIDQuNjg1MzYsIDUuODQwNzkiLCBcCi0gICAgICAgICAgIjAuMzE5MTE2LCAwLjQ0NzY0OCwgMS4yMjA1MywgMS45MTMzOSwgMi44MzczMSwgNC42ODU2OCwgNS44NDA2NCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDI3NTgsIDAuMTQ5NjgzLCAwLjQxNDUyMSwgMC42NDc4MjYsIDAuOTU4NzEyLCAxLjU4MDM4LCAxLjk2OTI4IiwgXAotICAgICAgICAgICIwLjExMjI1MiwgMC4xNTkyMjEsIDAuNDIzOTkxLCAwLjY1NzIwMSwgMC45NjgxNzIsIDEuNTg5NDcsIDEuOTc4MTciLCBcCi0gICAgICAgICAgIjAuMTI0MTE4LCAwLjE3MDgzLCAwLjQzNjAwMSwgMC42Njk2MjQsIDAuOTgwMzYxLCAxLjYwMjAxLCAxLjk5MDYiLCBcCi0gICAgICAgICAgIjAuMTM1NDY5LCAwLjE4MjQ4OCwgMC40NDcyMzUsIDAuNjgwNDkxLCAwLjk5MTQyOCwgMS42MTM1OSwgMi4wMDIwMSIsIFwKLSAgICAgICAgICAiMC4xNDcxNzUsIDAuMTk0MTY0LCAwLjQ1ODY2NywgMC42OTIyMDYsIDEuMDAzNDQsIDEuNjI1MDUsIDIuMDEzNTQiLCBcCi0gICAgICAgICAgIjAuMTY2Mzg2LCAwLjIxMjcwMywgMC40Nzc1NDQsIDAuNzEwNzk5LCAxLjAyMTY3LCAxLjY0NDAzLCAyLjAzMjA2IiwgXAotICAgICAgICAgICIwLjE4MzEyNywgMC4yMjk4NDQsIDAuNDkzODQyLCAwLjcyNzQ2OCwgMS4wMzc5OCwgMS42NTk4NiwgMi4wNDkyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE4ODk0MSwgMC4yODEwODQsIDAuODAyOTEsIDEuMjYzMjQsIDEuODc3NTgsIDMuMTA1NDYsIDMuODczMjQiLCBcCi0gICAgICAgICAgIjAuMTg4ODcyLCAwLjI4MTA4NiwgMC44MDI5MjQsIDEuMjYzMjQsIDEuODc2OTgsIDMuMTA0OTIsIDMuODcyNDYiLCBcCi0gICAgICAgICAgIjAuMTg5MDI0LCAwLjI4MDk5NywgMC44MDMyOTgsIDEuMjYzMjgsIDEuODc3NDYsIDMuMTA1OSwgMy44NzIyIiwgXAotICAgICAgICAgICIwLjE5MTU0NywgMC4yODE0NCwgMC44MDMwOTQsIDEuMjYzODksIDEuODc3OTMsIDMuMTA2MDIsIDMuODcyMjgiLCBcCi0gICAgICAgICAgIjAuMTk1OTQxLCAwLjI4Mzk3NCwgMC44MDMxNTIsIDEuMjYzNTYsIDEuODc3MDEsIDMuMTA0NzUsIDMuODcyODEiLCBcCi0gICAgICAgICAgIjAuMjA1MDkyLCAwLjI5MDY2OCwgMC44MDI5MSwgMS4yNjMyOSwgMS44NzcwMSwgMy4xMDQ2OCwgMy44NzI4NyIsIFwKLSAgICAgICAgICAiMC4yMTQ2NDIsIDAuMjk4MDQsIDAuODAyOTg1LCAxLjI2MzE0LCAxLjg3NjkyLCAzLjEwNjA2LCAzLjg3MjU4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDk3MSwgMC4wMDQ5NywgMC4wMDQ5NywgMC4wMDQ5NjgsIDAuMDA0OTY2LCAwLjAwNDk2MywgMC4wMDQ5NiIsIFwKLSAgICAgICAgICAiMC4wMDQ5NTcsIDAuMDA0OTU4LCAwLjAwNDk1OCwgMC4wMDQ5NTgsIDAuMDA0OTU2LCAwLjAwNDk1MiwgMC4wMDQ5NSIsIFwKLSAgICAgICAgICAiMC4wMDQ5NDksIDAuMDA0OTUyLCAwLjAwNDk1NSwgMC4wMDQ5NTUsIDAuMDA0OTU0LCAwLjAwNDk1MSwgMC4wMDQ5NDgiLCBcCi0gICAgICAgICAgIjAuMDA0OTQ0LCAwLjAwNDk0OCwgMC4wMDQ5NTMsIDAuMDA0OTUzLCAwLjAwNDk1MywgMC4wMDQ5NSwgMC4wMDQ5NDciLCBcCi0gICAgICAgICAgIjAuMDA0OTQsIDAuMDA0OTQ1LCAwLjAwNDk1MSwgMC4wMDQ5NTEsIDAuMDA0OTUxLCAwLjAwNDk0OSwgMC4wMDQ5NDciLCBcCi0gICAgICAgICAgIjAuMDA0OTM1LCAwLjAwNDk0MSwgMC4wMDQ5NDksIDAuMDA0OTUsIDAuMDA0OTUsIDAuMDA0OTQ4LCAwLjAwNDk0NSIsIFwKLSAgICAgICAgICAiMC4wMDQ5MzQsIDAuMDA0OTM4LCAwLjAwNDk0OCwgMC4wMDQ5NDksIDAuMDA0OTQ4LCAwLjAwNDk0NiwgMC4wMDQ5NDQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDE0OTcsIDAuMDAxNDk3LCAwLjAwMTQ5NiwgMC4wMDE0OTYsIDAuMDAxNDk1LCAwLjAwMTQ5MywgMC4wMDE0OTMiLCBcCi0gICAgICAgICAgIjAuMDAxNDcyLCAwLjAwMTQ3MywgMC4wMDE0NzUsIDAuMDAxNDc0LCAwLjAwMTQ3NCwgMC4wMDE0NzMsIDAuMDAxNDcyIiwgXAotICAgICAgICAgICIwLjAwMTQ2MywgMC4wMDE0NjYsIDAuMDAxNDY5LCAwLjAwMTQ3LCAwLjAwMTQ2OSwgMC4wMDE0NjksIDAuMDAxNDY3IiwgXAotICAgICAgICAgICIwLjAwMTQ1OCwgMC4wMDE0NjEsIDAuMDAxNDY2LCAwLjAwMTQ2NywgMC4wMDE0NjcsIDAuMDAxNDY3LCAwLjAwMTQ2NiIsIFwKLSAgICAgICAgICAiMC4wMDE0NTMsIDAuMDAxNDU4LCAwLjAwMTQ2NSwgMC4wMDE0NjYsIDAuMDAxNDY2LCAwLjAwMTQ2NiwgMC4wMDE0NjYiLCBcCi0gICAgICAgICAgIjAuMDAxNDQ4LCAwLjAwMTQ1MywgMC4wMDE0NjIsIDAuMDAxNDY0LCAwLjAwMTQ2NSwgMC4wMDE0NjUsIDAuMDAxNDY0IiwgXAotICAgICAgICAgICIwLjAwMTQ0NiwgMC4wMDE0NSwgMC4wMDE0NiwgMC4wMDE0NjMsIDAuMDAxNDY0LCAwLjAwMTQ2NCwgMC4wMDE0NjMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0NjQzLCAwLjAwNDY0MywgMC4wMDQ2NDIsIDAuMDA0NjQsIDAuMDA0NjQsIDAuMDA0NjM1LCAwLjAwNDYzMiIsIFwKLSAgICAgICAgICAiMC4wMDQ2MjgsIDAuMDA0NjI5LCAwLjAwNDYzLCAwLjAwNDYyOSwgMC4wMDQ2MjcsIDAuMDA0NjI0LCAwLjAwNDYyMSIsIFwKLSAgICAgICAgICAiMC4wMDQ2MiwgMC4wMDQ2MjMsIDAuMDA0NjI3LCAwLjAwNDYyNywgMC4wMDQ2MjYsIDAuMDA0NjIyLCAwLjAwNDYyIiwgXAotICAgICAgICAgICIwLjAwNDYxNiwgMC4wMDQ2MiwgMC4wMDQ2MjUsIDAuMDA0NjI1LCAwLjAwNDYyNCwgMC4wMDQ2MjIsIDAuMDA0NjE4IiwgXAotICAgICAgICAgICIwLjAwNDYxMywgMC4wMDQ2MTcsIDAuMDA0NjI0LCAwLjAwNDYyMywgMC4wMDQ2MjMsIDAuMDA0NjIsIDAuMDA0NjE4IiwgXAotICAgICAgICAgICIwLjAwNDYwOSwgMC4wMDQ2MTMsIDAuMDA0NjIyLCAwLjAwNDYyMiwgMC4wMDQ2MjIsIDAuMDA0NjE5LCAwLjAwNDYxOCIsIFwKLSAgICAgICAgICAiMC4wMDQ2MDgsIDAuMDA0NjEyLCAwLjAwNDYyLCAwLjAwNDYyMiwgMC4wMDQ2MjEsIDAuMDA0NjIsIDAuMDA0NjE3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxMjQzLCAwLjAwMTI0NCwgMC4wMDEyNDQsIDAuMDAxMjQ0LCAwLjAwMTI0NCwgMC4wMDEyNDMsIDAuMDAxMjQyIiwgXAotICAgICAgICAgICIwLjAwMTIzMywgMC4wMDEyMzcsIDAuMDAxMjQyLCAwLjAwMTI0MiwgMC4wMDEyNDIsIDAuMDAxMjQyLCAwLjAwMTI0MSIsIFwKLSAgICAgICAgICAiMC4wMDEyMjEsIDAuMDAxMjI3LCAwLjAwMTIzNywgMC4wMDEyNCwgMC4wMDEyNCwgMC4wMDEyNCwgMC4wMDEyNCIsIFwKLSAgICAgICAgICAiMC4wMDEyMSwgMC4wMDEyMTksIDAuMDAxMjM0LCAwLjAwMTIzNywgMC4wMDEyMzksIDAuMDAxMjM5LCAwLjAwMTIzOSIsIFwKLSAgICAgICAgICAiMC4wMDEyMDEsIDAuMDAxMjEyLCAwLjAwMTIzMSwgMC4wMDEyMzUsIDAuMDAxMjM3LCAwLjAwMTIzOCwgMC4wMDEyMzgiLCBcCi0gICAgICAgICAgIjAuMDAxMTksIDAuMDAxMjAyLCAwLjAwMTIyNiwgMC4wMDEyMzEsIDAuMDAxMjM1LCAwLjAwMTIzNywgMC4wMDEyMzciLCBcCi0gICAgICAgICAgIjAuMDAxMTgzLCAwLjAwMTE5NSwgMC4wMDEyMjIsIDAuMDAxMjI5LCAwLjAwMTIzMywgMC4wMDEyMzUsIDAuMDAxMjM2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTIiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDI5OCwgMC4wMDQyOTgsIDAuMDA0Mjk3LCAwLjAwNDI5NiwgMC4wMDQyOTQsIDAuMDA0MjkxLCAwLjAwNDI4OCIsIFwKLSAgICAgICAgICAiMC4wMDQyNzksIDAuMDA0MjgyLCAwLjAwNDI4NSwgMC4wMDQyODQsIDAuMDA0MjgzLCAwLjAwNDI4LCAwLjAwNDI3NyIsIFwKLSAgICAgICAgICAiMC4wMDQyNjksIDAuMDA0Mjc0LCAwLjAwNDI4LCAwLjAwNDI4LCAwLjAwNDI4LCAwLjAwNDI3OCwgMC4wMDQyNzUiLCBcCi0gICAgICAgICAgIjAuMDA0MjY1LCAwLjAwNDI2NywgMC4wMDQyNzgsIDAuMDA0Mjc5LCAwLjAwNDI3OCwgMC4wMDQyNzUsIDAuMDA0MjczIiwgXAotICAgICAgICAgICIwLjAwNDI2NCwgMC4wMDQyNjgsIDAuMDA0Mjc2LCAwLjAwNDI3NywgMC4wMDQyNzgsIDAuMDA0Mjc0LCAwLjAwNDI3MiIsIFwKLSAgICAgICAgICAiMC4wMDQyNjgsIDAuMDA0MjY5LCAwLjAwNDI3NSwgMC4wMDQyNzYsIDAuMDA0Mjc2LCAwLjAwNDI3NCwgMC4wMDQyNzIiLCBcCi0gICAgICAgICAgIjAuMDA0Mjc1LCAwLjAwNDI3NCwgMC4wMDQyNzYsIDAuMDA0Mjc3LCAwLjAwNDI3NywgMC4wMDQyNzQsIDAuMDA0MjcyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwOTMyLCAwLjAwMDkzNCwgMC4wMDA5MzYsIDAuMDAwOTM1LCAwLjAwMDkzNywgMC4wMDA5MzYsIDAuMDAwOTI4IiwgXAotICAgICAgICAgICIwLjAwMDkzNiwgMC4wMDA5NDMsIDAuMDAwOTU0LCAwLjAwMDk1NSwgMC4wMDA5NTcsIDAuMDAwOTU3LCAwLjAwMDk1OCIsIFwKLSAgICAgICAgICAiMC4wMDA5MjEsIDAuMDAwOTMzLCAwLjAwMDk1MiwgMC4wMDA5NTYsIDAuMDAwOTU4LCAwLjAwMDk1OSwgMC4wMDA5NTkiLCBcCi0gICAgICAgICAgIjAuMDAwOTA2LCAwLjAwMDkyMiwgMC4wMDA5NDgsIDAuMDAwOTUzLCAwLjAwMDk1NywgMC4wMDA5NTgsIDAuMDAwOTU5IiwgXAotICAgICAgICAgICIwLjAwMDg5MywgMC4wMDA5MTEsIDAuMDAwOTQzLCAwLjAwMDk1LCAwLjAwMDk1NSwgMC4wMDA5NTgsIDAuMDAwOTU5IiwgXAotICAgICAgICAgICIwLjAwMDg3NSwgMC4wMDA4OTYsIDAuMDAwOTM2LCAwLjAwMDk0NiwgMC4wMDA5NTEsIDAuMDAwOTU2LCAwLjAwMDk1NyIsIFwKLSAgICAgICAgICAiMC4wMDA4NjQsIDAuMDAwODg1LCAwLjAwMDkzLCAwLjAwMDk0MSwgMC4wMDA5NDgsIDAuMDAwOTU0LCAwLjAwMDk1NiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDM1MjQsIDAuMDAzNTI1LCAwLjAwMzUyNywgMC4wMDM1MjcsIDAuMDAzNTI4LCAwLjAwMzUyNywgMC4wMDM1MjciLCBcCi0gICAgICAgICAgIjAuMDAzNTIxLCAwLjAwMzUyNywgMC4wMDM1MzQsIDAuMDAzNTM2LCAwLjAwMzUzNywgMC4wMDM1MzgsIDAuMDAzNTM4IiwgXAotICAgICAgICAgICIwLjAwMzUwOSwgMC4wMDM1MTgsIDAuMDAzNTMyLCAwLjAwMzUzNSwgMC4wMDM1MzcsIDAuMDAzNTM5LCAwLjAwMzUzOCIsIFwKLSAgICAgICAgICAiMC4wMDM0OTksIDAuMDAzNTEsIDAuMDAzNTI5LCAwLjAwMzUzNCwgMC4wMDM1MzUsIDAuMDAzNTM2LCAwLjAwMzUzOCIsIFwKLSAgICAgICAgICAiMC4wMDM0OTEsIDAuMDAzNTAzLCAwLjAwMzUyNSwgMC4wMDM1MzEsIDAuMDAzNTM0LCAwLjAwMzUzNywgMC4wMDM1MzgiLCBcCi0gICAgICAgICAgIjAuMDAzNDgyLCAwLjAwMzQ5NSwgMC4wMDM1MjEsIDAuMDAzNTI4LCAwLjAwMzUzMywgMC4wMDM1MzUsIDAuMDAzNTM2IiwgXAotICAgICAgICAgICIwLjAwMzQ3NiwgMC4wMDM0ODksIDAuMDAzNTE2LCAwLjAwMzUyNSwgMC4wMDM1MywgMC4wMDM1MzMsIDAuMDAzNTM1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxNDk4LCAwLjAwMTQ5NywgMC4wMDE0OTgsIDAuMDAxNDk4LCAwLjAwMTQ5NiwgMC4wMDE0OTUsIDAuMDAxNDk5IiwgXAotICAgICAgICAgICIwLjAwMTQ3MSwgMC4wMDE0NzIsIDAuMDAxNDczLCAwLjAwMTQ3NCwgMC4wMDE0NzQsIDAuMDAxNDcyLCAwLjAwMTQ3MiIsIFwKLSAgICAgICAgICAiMC4wMDE0NjUsIDAuMDAxNDY3LCAwLjAwMTQ2OSwgMC4wMDE0NywgMC4wMDE0NywgMC4wMDE0NjgsIDAuMDAxNDY4IiwgXAotICAgICAgICAgICIwLjAwMTQ2MywgMC4wMDE0NjUsIDAuMDAxNDY4LCAwLjAwMTQ2OCwgMC4wMDE0NjgsIDAuMDAxNDY3LCAwLjAwMTQ2NyIsIFwKLSAgICAgICAgICAiMC4wMDE0NjQsIDAuMDAxNDY1LCAwLjAwMTQ2OCwgMC4wMDE0NjgsIDAuMDAxNDY3LCAwLjAwMTQ2NiwgMC4wMDE0NjYiLCBcCi0gICAgICAgICAgIjAuMDAxNDczLCAwLjAwMTQ3LCAwLjAwMTQ2OCwgMC4wMDE0NjgsIDAuMDAxNDY3LCAwLjAwMTQ2NiwgMC4wMDE0NjUiLCBcCi0gICAgICAgICAgIjAuMDAxNDg0LCAwLjAwMTQ3NywgMC4wMDE0NzUsIDAuMDAxNDczLCAwLjAwMTQ3MSwgMC4wMDE0NjksIDAuMDAxNDY1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzE5NywgMC4wMDMxOTgsIDAuMDAzMiwgMC4wMDMyLCAwLjAwMzIsIDAuMDAzMiwgMC4wMDMyIiwgXAotICAgICAgICAgICIwLjAwMzE5MywgMC4wMDMxOTksIDAuMDAzMjA3LCAwLjAwMzIwOCwgMC4wMDMyMDksIDAuMDAzMjEsIDAuMDAzMjEiLCBcCi0gICAgICAgICAgIjAuMDAzMTgyLCAwLjAwMzE5LCAwLjAwMzIwNCwgMC4wMDMyMDcsIDAuMDAzMjA5LCAwLjAwMzIxLCAwLjAwMzIxIiwgXAotICAgICAgICAgICIwLjAwMzE3MiwgMC4wMDMxODIsIDAuMDAzMjAxLCAwLjAwMzIwNSwgMC4wMDMyMDgsIDAuMDAzMjA5LCAwLjAwMzIxIiwgXAotICAgICAgICAgICIwLjAwMzE2NCwgMC4wMDMxNzYsIDAuMDAzMTk3LCAwLjAwMzIwMywgMC4wMDMyMDYsIDAuMDAzMjEsIDAuMDAzMjEiLCBcCi0gICAgICAgICAgIjAuMDAzMTU2LCAwLjAwMzE2OCwgMC4wMDMxOTMsIDAuMDAzMiwgMC4wMDMyMDQsIDAuMDAzMjA3LCAwLjAwMzIwOCIsIFwKLSAgICAgICAgICAiMC4wMDMxNTMsIDAuMDAzMTY0LCAwLjAwMzE5LCAwLjAwMzE5NywgMC4wMDMyMDIsIDAuMDAzMjA2LCAwLjAwMzIwOCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTI0NCwgMC4wMDEyNDUsIDAuMDAxMjQ1LCAwLjAwMTI0NSwgMC4wMDEyNDUsIDAuMDAxMjQzLCAwLjAwMTI0MyIsIFwKLSAgICAgICAgICAiMC4wMDEyMzMsIDAuMDAxMjM3LCAwLjAwMTI0MiwgMC4wMDEyNDQsIDAuMDAxMjQ1LCAwLjAwMTI0MywgMC4wMDEyNDIiLCBcCi0gICAgICAgICAgIjAuMDAxMjIyLCAwLjAwMTIzLCAwLjAwMTIzOSwgMC4wMDEyNDEsIDAuMDAxMjQyLCAwLjAwMTI0MiwgMC4wMDEyNDIiLCBcCi0gICAgICAgICAgIjAuMDAxMjIyLCAwLjAwMTIyMywgMC4wMDEyMzgsIDAuMDAxMjQxLCAwLjAwMTI0MiwgMC4wMDEyNDEsIDAuMDAxMjQxIiwgXAotICAgICAgICAgICIwLjAwMTIxOSwgMC4wMDEyMiwgMC4wMDEyMzcsIDAuMDAxMjM5LCAwLjAwMTI0MSwgMC4wMDEyNDEsIDAuMDAxMjQxIiwgXAotICAgICAgICAgICIwLjAwMTIyNSwgMC4wMDEyMjcsIDAuMDAxMjM1LCAwLjAwMTIzOSwgMC4wMDEyNCwgMC4wMDEyNDEsIDAuMDAxMjQxIiwgXAotICAgICAgICAgICIwLjAwMTIzNSwgMC4wMDEyMzUsIDAuMDAxMjM5LCAwLjAwMTI0LCAwLjAwMTI0MSwgMC4wMDEyNDEsIDAuMDAxMjQxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjIiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjg1MiwgMC4wMDI4NTQsIDAuMDAyODU2LCAwLjAwMjg1NywgMC4wMDI4NTcsIDAuMDAyODU3LCAwLjAwMjg1NyIsIFwKLSAgICAgICAgICAiMC4wMDI4NDUsIDAuMDAyODUyLCAwLjAwMjg2MiwgMC4wMDI4NjQsIDAuMDAyODY2LCAwLjAwMjg2NiwgMC4wMDI4NjciLCBcCi0gICAgICAgICAgIjAuMDAyODMxLCAwLjAwMjg0MiwgMC4wMDI4NTksIDAuMDAyODYzLCAwLjAwMjg2NSwgMC4wMDI4NjYsIDAuMDAyODY3IiwgXAotICAgICAgICAgICIwLjAwMjgyMywgMC4wMDI4MzQsIDAuMDAyODU2LCAwLjAwMjg2MSwgMC4wMDI4NjMsIDAuMDAyODY2LCAwLjAwMjg2NiIsIFwKLSAgICAgICAgICAiMC4wMDI4MTksIDAuMDAyODMsIDAuMDAyODUzLCAwLjAwMjg1OSwgMC4wMDI4NjIsIDAuMDAyODY2LCAwLjAwMjg2NiIsIFwKLSAgICAgICAgICAiMC4wMDI4MTgsIDAuMDAyODI3LCAwLjAwMjg1LCAwLjAwMjg1NiwgMC4wMDI4NiwgMC4wMDI4NjMsIDAuMDAyODY1IiwgXAotICAgICAgICAgICIwLjAwMjgyNCwgMC4wMDI4MywgMC4wMDI4NDksIDAuMDAyODU1LCAwLjAwMjg2LCAwLjAwMjg2MywgMC4wMDI4NjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDA5MzYsIDAuMDAwOTM4LCAwLjAwMDk0MSwgMC4wMDA5NDEsIDAuMDAwOTQxLCAwLjAwMDk0MSwgMC4wMDA5NDEiLCBcCi0gICAgICAgICAgIjAuMDAwOTM5LCAwLjAwMDk0NywgMC4wMDA5NTgsIDAuMDAwOTYxLCAwLjAwMDk2MSwgMC4wMDA5NjIsIDAuMDAwOTYyIiwgXAotICAgICAgICAgICIwLjAwMDkyNywgMC4wMDA5MzgsIDAuMDAwOTU1LCAwLjAwMDk1OSwgMC4wMDA5NjEsIDAuMDAwOTY0LCAwLjAwMDk2NSIsIFwKLSAgICAgICAgICAiMC4wMDA5MTUsIDAuMDAwOTI5LCAwLjAwMDk1NCwgMC4wMDA5NTksIDAuMDAwOTYyLCAwLjAwMDk2NCwgMC4wMDA5NjUiLCBcCi0gICAgICAgICAgIjAuMDAwOTA4LCAwLjAwMDkyMywgMC4wMDA5NTIsIDAuMDAwOTU4LCAwLjAwMDk2MSwgMC4wMDA5NjUsIDAuMDAwOTY0IiwgXAotICAgICAgICAgICIwLjAwMDkxMiwgMC4wMDA5MjIsIDAuMDAwOTQ5LCAwLjAwMDk1NiwgMC4wMDA5NiwgMC4wMDA5NjMsIDAuMDAwOTY0IiwgXAotICAgICAgICAgICIwLjAwMDkxNSwgMC4wMDA5MjQsIDAuMDAwOTQ3LCAwLjAwMDk1NSwgMC4wMDA5NTksIDAuMDAwOTYzLCAwLjAwMDk2NCIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IE9BSTMzWDIgKgotICogLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoT0FJMzNYMikgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjQ0NTk1NjsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQTApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTk4NDQ3OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTk3ODAxOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTk4NDQ3OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDgzMiwgMC4wMDA4MzEsIDAuMDAwODMxLCAwLjAwMDgzMSwgMC4wMDA4MzEsIDAuMDAwODMxLCAwLjAwMDgzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwODMzLCAwLjAwMDgzNCwgMC4wMDA4MzQsIDAuMDAwODM0LCAwLjAwMDgzNSwgMC4wMDA4MzQsIDAuMDAwODM0Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihBMSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAyMDgxODI7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAyMDc3NTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDIwODE4MjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA4MzIsIDAuMDAwODMyLCAwLjAwMDgzMSwgMC4wMDA4MzIsIDAuMDAwODMxLCAwLjAwMDgzMSwgMC4wMDA4MzEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA4MzMsIDAuMDAwODMzLCAwLjAwMDgzMywgMC4wMDA4MzQsIDAuMDAwODM0LCAwLjAwMDgzNCwgMC4wMDA4MzQiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEEyKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE5ODM1ODsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE5ODM1ODsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE5Nzc2OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDgzMiwgMC4wMDA4MzIsIDAuMDAwODMyLCAwLjAwMDgzMiwgMC4wMDA4MzIsIDAuMDAwODMyLCAwLjAwMDgzMiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDgzMywgMC4wMDA4MzMsIDAuMDAwODMzLCAwLjAwMDgzMywgMC4wMDA4MzIsIDAuMDAwODMzLCAwLjAwMDgzMyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQjApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMjAwNzI2OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTk5NTI5OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMjAwNzI2OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTk4NywgMC4wMDE5ODgsIDAuMDAxOTg2LCAwLjAwMTk4OCwgMC4wMDE5ODYsIDAuMDAxOTg2LCAwLjAwMTk4OCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDk0MiwgMC4wMDA5NDIsIDAuMDAwOTQzLCAwLjAwMDk0MywgMC4wMDA5NDMsIDAuMDAwOTQzLCAwLjAwMDk0MyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQjEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMjE4MjY5OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMjE3MjcxOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMjE4MjY5OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTk4NywgMC4wMDE5ODYsIDAuMDAxOTg1LCAwLjAwMTk4NywgMC4wMDE5ODcsIDAuMDAxOTg2LCAwLjAwMTk4NiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDk0MiwgMC4wMDA5NDMsIDAuMDAwOTQyLCAwLjAwMDk0MywgMC4wMDA5NDIsIDAuMDAwOTQzLCAwLjAwMDk0MyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQjIpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMjA4MzIzOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMjA4MzIyOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMjA4MzIzOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTk4NiwgMC4wMDE5ODYsIDAuMDAxOTg1LCAwLjAwMTk4NiwgMC4wMDE5ODYsIDAuMDAxOTg2LCAwLjAwMTk4NiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDk0MiwgMC4wMDA5NDIsIDAuMDAwOTQyLCAwLjAwMDk0MiwgMC4wMDA5NDIsIDAuMDAwOTQyLCAwLjAwMDk0MiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjE5NDE2NDsKLSAgICBmdW5jdGlvbiA6ICIoISgoKEIwK0IxKStCMikgKChBMCtBMSkrQTIpKSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTAzNzYsIDAuMzg4MTg0LCAwLjYwOTY5OSwgMC44ODYwNDQsIDEuMTYyMDYsIDEuNDM4NzksIDEuNzE1MDQiLCBcCi0gICAgICAgICAgIjAuMTE4Njk5LCAwLjM5NjU1MywgMC42MTc5MTEsIDAuODk0Mzc0LCAxLjE3MTUxLCAxLjQ0NzQ0LCAxLjcyMzYyIiwgXAotICAgICAgICAgICIwLjEyNzI3MSwgMC40MDUwOCwgMC42MjY0MTMsIDAuOTAyNzIsIDEuMTc5NiwgMS40NTU3NywgMS43MzI5MyIsIFwKLSAgICAgICAgICAiMC4xMzUyNjcsIDAuNDEzMjM5LCAwLjYzNTAwOCwgMC45MTE2MzMsIDEuMTg3ODYsIDEuNDY0NjcsIDEuNzQwNDciLCBcCi0gICAgICAgICAgIjAuMTQzMDY5LCAwLjQyMTA0MSwgMC42NDI0MTgsIDAuOTE4ODYsIDEuMTk1MjEsIDEuNDcxOTQsIDEuNzQ4NDYiLCBcCi0gICAgICAgICAgIjAuMTU1MzUxLCAwLjQzMzI0OSwgMC42NTQ5MjgsIDAuOTMxMTc2LCAxLjIwODEzLCAxLjQ4NDI0LCAxLjc2MTQiLCBcCi0gICAgICAgICAgIjAuMTY1ODg3LCAwLjQ0NDE4LCAwLjY2NTUzNywgMC45NDI0MjQsIDEuMjE4NSwgMS40OTUwNywgMS43NzE3NyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMDQ1NTEsIDAuNzU5OTYyLCAxLjIwNDY4LCAxLjc2MDU0LCAyLjMxNjIxLCAyLjg3MjI0LCAzLjQyNzgzIiwgXAotICAgICAgICAgICIwLjIwNDU2LCAwLjc1OTkzMSwgMS4yMDQzNywgMS43NjAyMywgMi4zMTYzMSwgMi44NzIxLCAzLjQyODAxIiwgXAotICAgICAgICAgICIwLjIwNDcwNCwgMC43NTk5NzIsIDEuMjA0NzEsIDEuNzYwMjYsIDIuMzE2NDIsIDIuODcyMDUsIDMuNDI3OCIsIFwKLSAgICAgICAgICAiMC4yMDU3ODgsIDAuNzU5OTQ1LCAxLjIwNDY3LCAxLjc2MDUzLCAyLjMxNTk4LCAyLjg3MTc4LCAzLjQyODAyIiwgXAotICAgICAgICAgICIwLjIwNzY5NywgMC43NTk5NjIsIDEuMjA0NjEsIDEuNzYwNSwgMi4zMTYzNSwgMi44NzIwOSwgMy40MjcyNyIsIFwKLSAgICAgICAgICAiMC4yMTIwMDksIDAuNzYwMTksIDEuMjA0NjIsIDEuNzYwMTYsIDIuMzE2MzEsIDIuODcxOTcsIDMuNDI3NzMiLCBcCi0gICAgICAgICAgIjAuMjE2NzI0LCAwLjc2MTIzLCAxLjIwNDY2LCAxLjc2MDQxLCAyLjMxNTk0LCAyLjg3MjA0LCAzLjQyNzI4Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4MzA2OCwgMC4yNzAyODEsIDAuNDE4ODQzLCAwLjYwNDA3MiwgMC43ODk3MjgsIDAuOTc0Njc4LCAxLjE2IiwgXAotICAgICAgICAgICIwLjA5MzEwOSwgMC4yODAyMjIsIDAuNDI4NzcyLCAwLjYxNDEyMywgMC43OTkzMiwgMC45ODQ2MDYsIDEuMTY5NjQiLCBcCi0gICAgICAgICAgIjAuMTA0NjkzLCAwLjI5MTgyOCwgMC40NDA0MDcsIDAuNjI1OTI0LCAwLjgxMTE4MiwgMC45OTYxNCwgMS4xODEzNiIsIFwKLSAgICAgICAgICAiMC4xMTU2NTIsIDAuMzAyOTU3LCAwLjQ1MTQ3MSwgMC42MzY3MTEsIDAuODIyMTA0LCAxLjAwNzczLCAxLjE5Mjg4IiwgXAotICAgICAgICAgICIwLjEyNjY5MSwgMC4zMTQwNDcsIDAuNDYyNTQxLCAwLjY0Nzk4OCwgMC44MzMxNTEsIDEuMDE4NzksIDEuMjAzOSIsIFwKLSAgICAgICAgICAiMC4xNDQwMDksIDAuMzMxNDYsIDAuNDgwMDM5LCAwLjY2NTU3NCwgMC44NTA5MjcsIDEuMDM2MTcsIDEuMjIxNDYiLCBcCi0gICAgICAgICAgIjAuMTU4MzU3LCAwLjM0Njg3NywgMC40OTUzNywgMC42ODA5NzEsIDAuODY2MTU1LCAxLjA1MTUsIDEuMjM2NyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMjMyMjIsIDAuNDkwMzE1LCAwLjc4MzQ1MSwgMS4xNTAyNSwgMS41MTYxNywgMS44ODI1NywgMi4yNDg4NCIsIFwKLSAgICAgICAgICAiMC4xMjMwODMsIDAuNDg5OTg1LCAwLjc4MzY0NCwgMS4xNTAyMSwgMS41MTYwMiwgMS44ODMxNiwgMi4yNDg1OSIsIFwKLSAgICAgICAgICAiMC4xMjMzNjgsIDAuNDg5OTY2LCAwLjc4MzMxMSwgMS4xNDk4MywgMS41MTY0MiwgMS44ODMwMiwgMi4yNDk1OSIsIFwKLSAgICAgICAgICAiMC4xMjQ4MzMsIDAuNDkwMDQzLCAwLjc4MzY3MSwgMS4xNDk0NSwgMS41MTY3OSwgMS44ODI0NywgMi4yNDg5IiwgXAotICAgICAgICAgICIwLjEyNzUzMSwgMC40OTAxMjMsIDAuNzgzNjA5LCAxLjE0OTgyLCAxLjUxNjAzLCAxLjg4MzAzLCAyLjI0ODg2IiwgXAotICAgICAgICAgICIwLjEzMzYxNSwgMC40OTA3MDMsIDAuNzgzMTM0LCAxLjE0OTcyLCAxLjUxNjI1LCAxLjg4MzMsIDIuMjQ4NzgiLCBcCi0gICAgICAgICAgIjAuMTQwNTIsIDAuNDkzMDEsIDAuNzgzMjk0LCAxLjE0OTgsIDEuNTE2NjMsIDEuODgzMjUsIDIuMjQ4ODEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwNjkxLCAwLjM4NDY0LCAwLjYwNjExNiwgMC44ODI2NDYsIDEuMTU4OTcsIDEuNDM1MjUsIDEuNzEyNiIsIFwKLSAgICAgICAgICAiMC4xMTUyNTMsIDAuMzkzMTk2LCAwLjYxNDU4NiwgMC44OTEwNjMsIDEuMTY3MDgsIDEuNDQ0NDcsIDEuNzIwMjQiLCBcCi0gICAgICAgICAgIjAuMTI0OTc5LCAwLjQwMjg4NCwgMC42MjQ0NDEsIDAuOTAwODQ5LCAxLjE3NzYxLCAxLjQ1Mzc2LCAxLjczMDExIiwgXAotICAgICAgICAgICIwLjEzNDU4OCwgMC40MTI1NzcsIDAuNjMzOTM5LCAwLjkxMDM3MSwgMS4xODc1NywgMS40NjMzMSwgMS43Mzk4NiIsIFwKLSAgICAgICAgICAiMC4xNDQyNjQsIDAuNDIyMzA3LCAwLjY0MzY3NCwgMC45MjAzOTUsIDEuMTk3MDksIDEuNDczODgsIDEuNzQ5NjYiLCBcCi0gICAgICAgICAgIjAuMTU5NzA4LCAwLjQzODA3NSwgMC42NTkzNTksIDAuOTM1ODQ0LCAxLjIxMjM0LCAxLjQ4OTM4LCAxLjc2NTciLCBcCi0gICAgICAgICAgIjAuMTczMDUyLCAwLjQ1MTE5OSwgMC42NzI3MjgsIDAuOTQ5NjQzLCAxLjIyNjA4LCAxLjUwMzIyLCAxLjc3ODg1Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIwNDU0OCwgMC43NTk5NzksIDEuMjA0NjgsIDEuNzYwMTgsIDIuMzE2MzYsIDIuODcxOTUsIDMuNDI3MDgiLCBcCi0gICAgICAgICAgIjAuMjA0NTU3LCAwLjc1OTg2LCAxLjIwNDYxLCAxLjc2MDQxLCAyLjMxNjQyLCAyLjg3MTUsIDMuNDI3NTUiLCBcCi0gICAgICAgICAgIjAuMjA0ODQ0LCAwLjc1OTk0OCwgMS4yMDQ2NCwgMS43NjAyNywgMi4zMTYzMiwgMi44NzE2OSwgMy40Mjc2NyIsIFwKLSAgICAgICAgICAiMC4yMDY2NjcsIDAuNzU5OTAyLCAxLjIwNDY3LCAxLjc2MDE4LCAyLjMxNjM3LCAyLjg3MTkzLCAzLjQyNzEyIiwgXAotICAgICAgICAgICIwLjIwOTc0MywgMC43NTk5NzYsIDEuMjA0NiwgMS43NjAxNSwgMi4zMTYyNSwgMi44NzE1OSwgMy40MjgwMiIsIFwKLSAgICAgICAgICAiMC4yMTY2MDgsIDAuNzYwMDgsIDEuMjA0NDcsIDEuNzYwNiwgMi4zMTYzMywgMi44NzE1NCwgMy40Mjc2OSIsIFwKLSAgICAgICAgICAiMC4yMjM5MTUsIDAuNzYxMjI1LCAxLjIwNDYxLCAxLjc2MDQxLCAyLjMxNTk1LCAyLjg3MTk1LCAzLjQyNzg2Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3ODMyNywgMC4yNjM0ODIsIDAuNDEwNzk4LCAwLjU5NDY5MiwgMC43Nzg4ODEsIDAuOTYyMjU1LCAxLjE0NjQzIiwgXAotICAgICAgICAgICIwLjA4ODM3MywgMC4yNzM1ODUsIDAuNDIwOTc1LCAwLjYwNTI1NCwgMC43ODg4NzgsIDAuOTcyOTIyLCAxLjE1NjQiLCBcCi0gICAgICAgICAgIjAuMTAwMDIxLCAwLjI4NTQwOSwgMC40MzI2NjgsIDAuNjE2ODA2LCAwLjgwMDc2NywgMC45ODQ2MzMsIDEuMTY4NjMiLCBcCi0gICAgICAgICAgIjAuMTExMDE0LCAwLjI5NjQ1NiwgMC40NDM4NTcsIDAuNjI3OTk2LCAwLjgxMTYyNSwgMC45OTYwNzMsIDEuMTc5NTUiLCBcCi0gICAgICAgICAgIjAuMTIxODg0LCAwLjMwNzM1MSwgMC40NTQ2NDEsIDAuNjM4NzQsIDAuODIyNjM2LCAxLjAwNzEzLCAxLjE5MDYyIiwgXAotICAgICAgICAgICIwLjEzOTAzMiwgMC4zMjQ3OTgsIDAuNDcyMjMsIDAuNjU2NjUsIDAuODQwNCwgMS4wMjQxNSwgMS4yMDgwOSIsIFwKLSAgICAgICAgICAiMC4xNTMyMywgMC4zMzk5NzksIDAuNDg3NTA0LCAwLjY3MTc2OSwgMC44NTU4NzUsIDEuMDM5NDMsIDEuMjIzNDUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTE3MDIsIDAuNDgxMzE1LCAwLjc3MjUyMiwgMS4xMzYzLCAxLjQ5OTY1LCAxLjg2MzE1LCAyLjIyNzY2IiwgXAotICAgICAgICAgICIwLjExNjkyLCAwLjQ4MDk2NywgMC43NzI1MjgsIDEuMTM2MTIsIDEuNDk5NjEsIDEuODYzNzYsIDIuMjI2OTQiLCBcCi0gICAgICAgICAgIjAuMTE3MTg1LCAwLjQ4MTMwNSwgMC43NzIxMTMsIDEuMTM1OTMsIDEuNTAwMDIsIDEuODYzMywgMi4yMjcwNiIsIFwKLSAgICAgICAgICAiMC4xMTg3NDgsIDAuNDgxMSwgMC43NzI1MzMsIDEuMTM2MjEsIDEuNDk5NSwgMS44NjMzOCwgMi4yMjcwNiIsIFwKLSAgICAgICAgICAiMC4xMjE4MTgsIDAuNDgxMjUzLCAwLjc3MjMzOSwgMS4xMzU4NiwgMS40OTk2MSwgMS44NjM0NCwgMi4yMjY4OCIsIFwKLSAgICAgICAgICAiMC4xMjgxNDQsIDAuNDgxODU5LCAwLjc3MjExOSwgMS4xMzU5NCwgMS41MDAyMSwgMS44NjMyNiwgMi4yMjY5MSIsIFwKLSAgICAgICAgICAiMC4xMzUxMTksIDAuNDg0MTc4LCAwLjc3MjE2MiwgMS4xMzU5MywgMS40OTk3MSwgMS44NjMyNCwgMi4yMjY5NiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk5MzQzLCAwLjM3NzE4OSwgMC41OTg2MTYsIDAuODc1MDMyLCAxLjE1MTQ1LCAxLjQyNzY2LCAxLjcwNTA3IiwgXAotICAgICAgICAgICIwLjEwNzU1MSwgMC4zODUxNjIsIDAuNjA3MDkyLCAwLjg4MzI0NywgMS4xNTk5OSwgMS40MzYwOCwgMS43MTM0OCIsIFwKLSAgICAgICAgICAiMC4xMTgwMjQsIDAuMzk2MDI4LCAwLjYxNzczLCAwLjg5NDQ2NywgMS4xNjk5NiwgMS40NDc0MSwgMS43MjMyNCIsIFwKLSAgICAgICAgICAiMC4xMjg2NDIsIDAuNDA2NzQ3LCAwLjYyNzk1OSwgMC45MDQzMjgsIDEuMTgxMiwgMS40NTcyNiwgMS43MzQ0MyIsIFwKLSAgICAgICAgICAiMC4xMzk0MDQsIDAuNDE3MTksIDAuNjM4NTYyLCAwLjkxNTA1NSwgMS4xOTE5OCwgMS40Njc5MiwgMS43NDUxOSIsIFwKLSAgICAgICAgICAiMC4xNTY5MDgsIDAuNDM0NDUzLCAwLjY1NTc2MSwgMC45MzIyMDMsIDEuMjA5NDIsIDEuNDg1MTgsIDEuNzYxNCIsIFwKLSAgICAgICAgICAiMC4xNzIwNzEsIDAuNDQ5MzQyLCAwLjY3MDkxMywgMC45NDcyMzksIDEuMjIzODQsIDEuNTAwOSwgMS43NzY1MyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMDQ1NjQsIDAuNzU5OTU5LCAxLjIwNDY3LCAxLjc2MDE2LCAyLjMxNjMyLCAyLjg3MTk2LCAzLjQyNzE0IiwgXAotICAgICAgICAgICIwLjIwNDQ4OCwgMC43NTk5MTUsIDEuMjA0NjcsIDEuNzYwMTUsIDIuMzE2MzksIDIuODcyMTEsIDMuNDI3NyIsIFwKLSAgICAgICAgICAiMC4yMDQ5MTksIDAuNzU5OTMzLCAxLjIwNDY1LCAxLjc2MDQzLCAyLjMxNjIsIDIuODcxOTYsIDMuNDI4MDEiLCBcCi0gICAgICAgICAgIjAuMjA4MjEsIDAuNzU5ODI4LCAxLjIwNDU0LCAxLjc2MDYsIDIuMzE2NDEsIDIuODcyMDMsIDMuNDI3NjciLCBcCi0gICAgICAgICAgIjAuMjEzMzM0LCAwLjc1OTk1MSwgMS4yMDQ3LCAxLjc2MDUxLCAyLjMxNjI1LCAyLjg3MjA1LCAzLjQyNzgiLCBcCi0gICAgICAgICAgIjAuMjIzNzA2LCAwLjc1OTkzLCAxLjIwNDY2LCAxLjc2MDE2LCAyLjMxNjMxLCAyLjg3MjA3LCAzLjQyNjkzIiwgXAotICAgICAgICAgICIwLjIzNDI3NSwgMC43NjE2LCAxLjIwNDYzLCAxLjc2MDM5LCAyLjMxNjMzLCAyLjg3MTUsIDMuNDI3ODciKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDczNjI3LCAwLjI1OTQ0NywgMC40MDc0NTksIDAuNTkyMzYzLCAwLjc3NzQ0LCAwLjk2MjA5MiwgMS4xNDY2NCIsIFwKLSAgICAgICAgICAiMC4wODM4MzYsIDAuMjY5ODUxLCAwLjQxNzgyNCwgMC42MDI2NzIsIDAuNzg3ODc2LCAwLjk3MjIyNSwgMS4xNTcxMSIsIFwKLSAgICAgICAgICAiMC4wOTUzMTIsIDAuMjgxNTgzLCAwLjQyOTU3MywgMC42MTQ2MjYsIDAuNzk5NTQzLCAwLjk4NDMxOCwgMS4xNjkwOCIsIFwKLSAgICAgICAgICAiMC4xMDYxMzMsIDAuMjkyNTU5LCAwLjQ0MDcwOCwgMC42MjU4NTEsIDAuODEwNDQ0LCAwLjk5NTYsIDEuMTgwMDMiLCBcCi0gICAgICAgICAgIjAuMTE3MDcyLCAwLjMwMzQyOSwgMC40NTE2ODMsIDAuNjM2NTA3LCAwLjgyMTMzNiwgMS4wMDY1LCAxLjE5MDk2IiwgXAotICAgICAgICAgICIwLjEzMzk3LCAwLjMyMDg0LCAwLjQ2OTAxMSwgMC42NTQzLCAwLjgzODg4NCwgMS4wMjM3MiwgMS4yMDg0NCIsIFwKLSAgICAgICAgICAiMC4xNDc1ODQsIDAuMzM1OTU0LCAwLjQ4NDI0OSwgMC42Njk0NTksIDAuODU0Mzc2LCAxLjAzOSwgMS4yMjM5NiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTIxNDcsIDAuNDc3ODg0LCAwLjc3MDksIDEuMTM2MjMsIDEuNTAyMDMsIDEuODY3NjYsIDIuMjM0MzUiLCBcCi0gICAgICAgICAgIjAuMTEyMDIsIDAuNDc3ODc1LCAwLjc3MDQ3MiwgMS4xMzYxOSwgMS41MDE5MywgMS44NjgyOSwgMi4yMzM4NyIsIFwKLSAgICAgICAgICAiMC4xMTIyNjgsIDAuNDc4MTUzLCAwLjc3MDUwOSwgMS4xMzYxNiwgMS41MDI0LCAxLjg2NzU5LCAyLjIzMzQiLCBcCi0gICAgICAgICAgIjAuMTE0MjAyLCAwLjQ3ODEwNCwgMC43NzA5MjYsIDEuMTM2MjUsIDEuNTAyNjcsIDEuODY3NjcsIDIuMjMzNSIsIFwKLSAgICAgICAgICAiMC4xMTcyNTMsIDAuNDc3ODksIDAuNzcwNjQxLCAxLjEzNjIzLCAxLjUwMiwgMS44Njc1NywgMi4yMzM5NiIsIFwKLSAgICAgICAgICAiMC4xMjM4OTIsIDAuNDc4ODI4LCAwLjc3MDQ4MiwgMS4xMzYxMywgMS41MDI0NywgMS44Njc3MiwgMi4yMzM0IiwgXAotICAgICAgICAgICIwLjEzMTEzOSwgMC40ODA4NCwgMC43NzA1NTYsIDEuMTM2MjYsIDEuNTAxOTQsIDEuODY3NywgMi4yMzM0MyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg4NDg0LCAwLjM2NTMwNCwgMC41ODY4MDIsIDAuODYzNDc5LCAxLjE0MDI4LCAxLjQxNzA0LCAxLjY5MzQiLCBcCi0gICAgICAgICAgIjAuMDk2NjkyLCAwLjM3Mzc4NiwgMC41OTUzMDMsIDAuODcyMDY0LCAxLjE0ODk2LCAxLjQyNTQzLCAxLjcwMTk0IiwgXAotICAgICAgICAgICIwLjEwNTEwOSwgMC4zODIzOTUsIDAuNjAzOTgxLCAwLjg4MDcyNywgMS4xNTc0NCwgMS40MzQxLCAxLjcxMDc1IiwgXAotICAgICAgICAgICIwLjExMjkzLCAwLjM5MDU5NCwgMC42MTE4OTYsIDAuODg4ODM0LCAxLjE2NTQ5LCAxLjQ0MjM2LCAxLjcxODYiLCBcCi0gICAgICAgICAgIjAuMTIwNjI2LCAwLjM5ODE5NiwgMC42MTk3NTUsIDAuODk2NjU2LCAxLjE3MzM4LCAxLjQ0OTk2LCAxLjcyNjY3IiwgXAotICAgICAgICAgICIwLjEzMjgxLCAwLjQxMDQ4NCwgMC42MzIxMDEsIDAuOTA5MDM3LCAxLjE4NTYyLCAxLjQ2MjQzLCAxLjczODk5IiwgXAotICAgICAgICAgICIwLjE0MjM2NywgMC40MjEwNzMsIDAuNjQyOTU4LCAwLjkxOTg1NiwgMS4xOTY2LCAxLjQ3MzQxLCAxLjc0OTgyIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE4NjQ0NiwgMC43NDAzMzIsIDEuMTg0MzYsIDEuNzM5NjYsIDIuMjk1NTEsIDIuODUxNDcsIDMuNDA2NjciLCBcCi0gICAgICAgICAgIjAuMTg2NDMzLCAwLjc0MDM4NywgMS4xODQzMywgMS43Mzk5NiwgMi4yOTUzMiwgMi44NTA5LCAzLjQwNjgiLCBcCi0gICAgICAgICAgIjAuMTg2ODQ1LCAwLjc0MDQxNSwgMS4xODQzMywgMS43NDAwMSwgMi4yOTU1MSwgMi44NTA5OCwgMy40MDY2NSIsIFwKLSAgICAgICAgICAiMC4xODg0LCAwLjc0MDQyLCAxLjE4NDMxLCAxLjczOTgyLCAyLjI5NTA4LCAyLjg1MTMsIDMuNDA2NjkiLCBcCi0gICAgICAgICAgIjAuMTkwNzgzLCAwLjc0MDQxNywgMS4xODQzMSwgMS43NDAwNCwgMi4yOTUxNywgMi44NTEyNCwgMy40MDY3MiIsIFwKLSAgICAgICAgICAiMC4xOTU5MywgMC43NDA4MDcsIDEuMTg0NTgsIDEuNzQwMDEsIDIuMjk1NTgsIDIuODUxMjEsIDMuNDA2OTIiLCBcCi0gICAgICAgICAgIjAuMjAxMzMyLCAwLjc0MTg4LCAxLjE4NDUyLCAxLjczOTYyLCAyLjI5NTA4LCAyLjg1MTQyLCAzLjQwNjkiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDcxODM5LCAwLjI1ODkxMiwgMC40MDc0MywgMC41OTMwNzEsIDAuNzc3OTU5LCAwLjk2Mzc1NCwgMS4xNDgzNSIsIFwKLSAgICAgICAgICAiMC4wODA4MzQsIDAuMjY4MTAzLCAwLjQxNjYwNywgMC42MDE5NjUsIDAuNzg3MzY4LCAwLjk3MjM0OSwgMS4xNTc2NCIsIFwKLSAgICAgICAgICAiMC4wOTI2MTUsIDAuMjc5Nzc1LCAwLjQyODMzMSwgMC42MTM5MDUsIDAuNzk5Mjc1LCAwLjk4NDc0OCwgMS4xNjk1NyIsIFwKLSAgICAgICAgICAiMC4xMDQzOTgsIDAuMjkxMTg4LCAwLjQzOTY2MSwgMC42MjUxMSwgMC44MTAyNjcsIDAuOTk1OTQ0LCAxLjE4MTAyIiwgXAotICAgICAgICAgICIwLjExNjUyOCwgMC4zMDI4MTgsIDAuNDUxMzI2LCAwLjYzNjgxNSwgMC44MjIwMDMsIDEuMDA3NjksIDEuMTkyMjciLCBcCi0gICAgICAgICAgIjAuMTM1MTk4LCAwLjMyMjYsIDAuNDcwMDM0LCAwLjY1NTM4MywgMC44NDA3MTIsIDEuMDI1ODEsIDEuMjEwOTkiLCBcCi0gICAgICAgICAgIjAuMTUxNTAzLCAwLjMzNzk5NSwgMC40ODY0MDMsIDAuNjcxNzk4LCAwLjg1NzAyMSwgMS4wNDI1OSwgMS4yMjc0NCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMjMyNDgsIDAuNDg5OTg5LCAwLjc4MzI5MywgMS4xNDk4MSwgMS41MTU3OSwgMS44ODI1OCwgMi4yNDk1IiwgXAotICAgICAgICAgICIwLjEyMjgxNiwgMC40OTAwNzQsIDAuNzgzMzE4LCAxLjE0OTc0LCAxLjUxNjQxLCAxLjg4MjMyLCAyLjI0OTYxIiwgXAotICAgICAgICAgICIwLjEyNDE3NSwgMC40ODk5NjgsIDAuNzgzNjcsIDEuMTUwMDYsIDEuNTE2MjEsIDEuODgyNTQsIDIuMjQ4ODgiLCBcCi0gICAgICAgICAgIjAuMTI4NTIxLCAwLjQ5LCAwLjc4MzExNSwgMS4xNDk4MiwgMS41MTYsIDEuODgzMDUsIDIuMjQ4ODciLCBcCi0gICAgICAgICAgIjAuMTM0MDYzLCAwLjQ4OTg4MSwgMC43ODMxNTIsIDEuMTQ5ODEsIDEuNTE2MiwgMS44ODI0OCwgMi4yNDg2OCIsIFwKLSAgICAgICAgICAiMC4xNDU4NjYsIDAuNDkxNzMyLCAwLjc4MzA3NSwgMS4xNDk2NSwgMS41MTYxNywgMS44ODIzNCwgMi4yNDk1OCIsIFwKLSAgICAgICAgICAiMC4xNTY5NTMsIDAuNDk2MDA1LCAwLjc4Mzk0OSwgMS4xNTAxNSwgMS41MTY2MiwgMS44ODIzOSwgMi4yNDg4NCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg1MzI4LCAwLjM2MjE4NSwgMC41ODM2MzUsIDAuODYwMzQ4LCAxLjEzNzIsIDEuNDEzNzksIDEuNjkwMTkiLCBcCi0gICAgICAgICAgIjAuMDkzNjMzLCAwLjM3MDc0LCAwLjU5MjIyNiwgMC44NjkwMDIsIDEuMTQ1NzUsIDEuNDIyMzQsIDEuNjk4OTgiLCBcCi0gICAgICAgICAgIjAuMTAzMjE0LCAwLjM4MDYyMywgMC42MDIwMzksIDAuODc4OCwgMS4xNTU2OSwgMS40MzIzMywgMS43MDg3NCIsIFwKLSAgICAgICAgICAiMC4xMTI4MTEsIDAuMzkwMjg0LCAwLjYxMTgzOSwgMC44ODg2MDIsIDEuMTY1NDYsIDEuNDQyMDMsIDEuNzE4NjUiLCBcCi0gICAgICAgICAgIjAuMTIyMzMyLCAwLjQwMDA1LCAwLjYyMTY1NywgMC44OTg0NTgsIDEuMTc1MjIsIDEuNDUxOTMsIDEuNzI4NzMiLCBcCi0gICAgICAgICAgIjAuMTM3NTcsIDAuNDE1NjEzLCAwLjYzNzIyMSwgMC45MTQxMjcsIDEuMTkwOTUsIDEuNDY3NTYsIDEuNzQ0MTgiLCBcCi0gICAgICAgICAgIjAuMTQ5NzY2LCAwLjQyOTA5OSwgMC42NTA4NTYsIDAuOTI3NzY4LCAxLjIwNDMzLCAxLjQ4MDg5LCAxLjc1NzU5Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE4NjQ0MywgMC43NDAyODYsIDEuMTg0NCwgMS43NDAwMywgMi4yOTU2MywgMi44NTEzNSwgMy40MDY3NCIsIFwKLSAgICAgICAgICAiMC4xODY0NDUsIDAuNzQwNDE0LCAxLjE4NDM1LCAxLjczOTYyLCAyLjI5NTY0LCAyLjg1MTMsIDMuNDA2ODEiLCBcCi0gICAgICAgICAgIjAuMTg3MjM3LCAwLjc0MDQ0MSwgMS4xODQzNywgMS43Mzk4LCAyLjI5NTc0LCAyLjg1MTMxLCAzLjQwNjU3IiwgXAotICAgICAgICAgICIwLjE4OTg3NiwgMC43NDA0MzIsIDEuMTg0MzcsIDEuNzM5NjQsIDIuMjk1NjMsIDIuODUxMjIsIDMuNDA2NTkiLCBcCi0gICAgICAgICAgIjAuMTkzNzUxLCAwLjc0MDQyOCwgMS4xODQ1NywgMS43Mzk3LCAyLjI5NTMsIDIuODUxMjcsIDMuNDA2OTIiLCBcCi0gICAgICAgICAgIjAuMjAxNzYxLCAwLjc0MDcyNywgMS4xODQ1NywgMS43Mzk5OCwgMi4yOTU1LCAyLjg1MTMzLCAzLjQwNjk5IiwgXAotICAgICAgICAgICIwLjIwOTkwMywgMC43NDIxMTcsIDEuMTg0NTEsIDEuNzM5OTUsIDIuMjk1NzEsIDIuODUwODYsIDMuNDA2ODUiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY3NzkxLCAwLjI1NDE4NCwgMC40MDI0NTMsIDAuNTg3OTIsIDAuNzcyNjQsIDAuOTU4MjU1LCAxLjE0MjY3IiwgXAotICAgICAgICAgICIwLjA3Njk4MiwgMC4yNjM1OTEsIDAuNDExOTMxLCAwLjU5NzAyNCwgMC43ODIzMDEsIDAuOTY2OTk0LCAxLjE1MjI0IiwgXAotICAgICAgICAgICIwLjA4ODY0LCAwLjI3NTMsIDAuNDIzNTQyLCAwLjYwODk5MSwgMC43OTQxOSwgMC45Nzk1MjIsIDEuMTY0MTkiLCBcCi0gICAgICAgICAgIjAuMTAwMzgxLCAwLjI4Njk2NywgMC40MzU0NzMsIDAuNjIwNzI2LCAwLjgwNTcxNiwgMC45OTA5MjYsIDEuMTc2MjgiLCBcCi0gICAgICAgICAgIjAuMTEyNDk5LCAwLjI5ODU2NCwgMC40NDY0OTksIDAuNjMxODc3LCAwLjgxNjg0NywgMS4wMDI0MywgMS4xODc0MyIsIFwKLSAgICAgICAgICAiMC4xMzA5NTMsIDAuMzE2NzkzLCAwLjQ2NTA1NiwgMC42NTE1MDEsIDAuODM2NzExLCAxLjAyMTg1LCAxLjIwNjcyIiwgXAotICAgICAgICAgICIwLjE0NjUzNCwgMC4zMzMxNTksIDAuNDgxMzIyLCAwLjY2NjUwMSwgMC44NTE1NTMsIDEuMDM3MDYsIDEuMjIxNzkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTE3ODY3LCAwLjQ4Mzg0MiwgMC43NzYzMzMsIDEuMTQxOCwgMS41MDY2NSwgMS44NzI1NywgMi4yMzc1MSIsIFwKLSAgICAgICAgICAiMC4xMTc0OTcsIDAuNDgzNTQ4LCAwLjc3NjEyNiwgMS4xNDEzMiwgMS41MDczMywgMS44NzE4OSwgMi4yMzg0OCIsIFwKLSAgICAgICAgICAiMC4xMTkwNTcsIDAuNDgzODU1LCAwLjc3NTk3NCwgMS4xNDE5MiwgMS41MDcwOCwgMS44NzI1NCwgMi4yMzc4NSIsIFwKLSAgICAgICAgICAiMC4xMjM2MTIsIDAuNDgzNjg0LCAwLjc3NjQyMSwgMS4xNDE2NSwgMS41MDc0OCwgMS44NzMxNiwgMi4yMzc4NyIsIFwKLSAgICAgICAgICAiMC4xMjk0NjgsIDAuNDgzNTAyLCAwLjc3NjA5NCwgMS4xNDE2MiwgMS41MDcwNCwgMS44NzI1MywgMi4yMzc5NCIsIFwKLSAgICAgICAgICAiMC4xNDE4MDYsIDAuNDg1NzU5LCAwLjc3NTg5LCAxLjE0MTk5LCAxLjUwNzAxLCAxLjg3Mjg1LCAyLjIzNzc4IiwgXAotICAgICAgICAgICIwLjE1MzUyOCwgMC40ODk5MTcsIDAuNzc2Nzk4LCAxLjE0MTQ2LCAxLjUwNjgyLCAxLjg3MjQ0LCAyLjIzODY2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIyIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzg1NCwgMC4zNTU0NjYsIDAuNTc2OTUsIDAuODUzNTg1LCAxLjEzMDQ2LCAxLjQwNjkzLCAxLjY4MzUiLCBcCi0gICAgICAgICAgIjAuMDg2ODE4LCAwLjM2NDAzNSwgMC41ODU0NjIsIDAuODYyMzY0LCAxLjEzODk4LCAxLjQxNTg1LCAxLjY5MjI3IiwgXAotICAgICAgICAgICIwLjA5NzE4MSwgMC4zNzQ2NDIsIDAuNTk2MTI3LCAwLjg3MjkzOCwgMS4xNDk3MywgMS40MjYyNywgMS43MDI3OSIsIFwKLSAgICAgICAgICAiMC4xMDc4MTEsIDAuMzg1MTk5LCAwLjYwNjc0MiwgMC44ODM1MjQsIDEuMTYwMjUsIDEuNDM3MTQsIDEuNzEzNTUiLCBcCi0gICAgICAgICAgIjAuMTE4NTI2LCAwLjM5NTgwNCwgMC42MTczNzgsIDAuODk0MTkxLCAxLjE3MDkyLCAxLjQ0NzY3LCAxLjcyNDA3IiwgXAotICAgICAgICAgICIwLjEzNjEwNSwgMC40MTI5NjIsIDAuNjM0NTQzLCAwLjkxMTM2MSwgMS4xODgwOCwgMS40NjQ4NywgMS43NDEyNyIsIFwKLSAgICAgICAgICAiMC4xNTAzMjUsIDAuNDI3ODI4LCAwLjY0OTM2NCwgMC45MjYzNjMsIDEuMjAzMDQsIDEuNDc5NzMsIDEuNzU2MzYiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTg2NDMzLCAwLjc0MDQ0OCwgMS4xODQ0NSwgMS43Mzk5MywgMi4yOTU2OSwgMi44NTExNiwgMy40MDU5MiIsIFwKLSAgICAgICAgICAiMC4xODYyNjcsIDAuNzQwNDYsIDEuMTg0NTEsIDEuNzQwMDUsIDIuMjk1NTMsIDIuODUxNDUsIDMuNDA3MDMiLCBcCi0gICAgICAgICAgIjAuMTg3NzQyLCAwLjc0MDQzMywgMS4xODQ0MywgMS43Mzk2NSwgMi4yOTU2OCwgMi44NTA4NiwgMy40MDY5NCIsIFwKLSAgICAgICAgICAiMC4xOTIzMzQsIDAuNzQwNDU2LCAxLjE4NDM5LCAxLjczOTk3LCAyLjI5NTEsIDIuODUxNDUsIDMuNDA2NzMiLCBcCi0gICAgICAgICAgIjAuMTk4NDc0LCAwLjc0MDM4MywgMS4xODQzMiwgMS43Mzk2MywgMi4yOTU1MSwgMi44NTEzMSwgMy40MDY3MyIsIFwKLSAgICAgICAgICAiMC4yMTAzMzUsIDAuNzQwNjQ5LCAxLjE4NDMyLCAxLjc0MDAyLCAyLjI5NTYzLCAyLjg1MTM0LCAzLjQwNjU5IiwgXAotICAgICAgICAgICIwLjIyMTY4MiwgMC43NDI2OSwgMS4xODQzNCwgMS43Mzk5OSwgMi4yOTU2LCAyLjg1MTE4LCAzLjQwNjk3Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2MzQ2MiwgMC4yNTA1NzgsIDAuMzk5NTQyLCAwLjU4NTkzMiwgMC43NzE2NTMsIDAuOTU3OTM5LCAxLjE0MzMzIiwgXAotICAgICAgICAgICIwLjA3MjcwNywgMC4yNjAyMDQsIDAuNDA5MTgzLCAwLjU5NTIwMSwgMC43ODExNiwgMC45NjcxMjksIDEuMTUzMDUiLCBcCi0gICAgICAgICAgIjAuMDg0NDY4LCAwLjI3MTkwMiwgMC40MjExNTMsIDAuNjA3MjQ2LCAwLjc5MjkzOCwgMC45Nzk1MjEsIDEuMTY1MTQiLCBcCi0gICAgICAgICAgIjAuMDk2MTgzLCAwLjI4MzU3MywgMC40MzIyODUsIDAuNjE4Mzg4LCAwLjgwNDQ5OSwgMC45OTEwNjcsIDEuMTc2MTUiLCBcCi0gICAgICAgICAgIjAuMTA4MDE4LCAwLjI5NDg3NiwgMC40NDM5MDcsIDAuNjMwMDI5LCAwLjgxNjAzMywgMS4wMDE5NCwgMS4xODc5OCIsIFwKLSAgICAgICAgICAiMC4xMjY4MjUsIDAuMzEzNTk1LCAwLjQ2MzU4NCwgMC42NDg2NzksIDAuODM0ODkyLCAxLjAyMDY2LCAxLjIwNjYiLCBcCi0gICAgICAgICAgIjAuMTQxNTUyLCAwLjMyOTk1LCAwLjQ3ODkyLCAwLjY2NTA4MiwgMC44NTEwMDQsIDEuMDM3MTgsIDEuMjIzMDciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTEzMzc2LCAwLjQ4MDY2NywgMC43NzQ3NDYsIDEuMTQyMTksIDEuNTEwMTksIDEuODc2OTksIDIuMjQ0MTMiLCBcCi0gICAgICAgICAgIjAuMTEyOTE1LCAwLjQ4MDgxMiwgMC43NzQ3NzYsIDEuMTQyMTgsIDEuNTA5MjIsIDEuODc2NzcsIDIuMjQ0MTEiLCBcCi0gICAgICAgICAgIjAuMTE0NzcyLCAwLjQ4MTA1NiwgMC43NzQ3NTcsIDEuMTQyNSwgMS41MDk0OCwgMS44NzY5MywgMi4yNDQzNyIsIFwKLSAgICAgICAgICAiMC4xMTk1NiwgMC40ODA3NDksIDAuNzc1MTA0LCAxLjE0MjIzLCAxLjUwOTc3LCAxLjg3NywgMi4yNDQwNyIsIFwKLSAgICAgICAgICAiMC4xMjU3ODgsIDAuNDgwNzg1LCAwLjc3NDc2NCwgMS4xNDIyMywgMS41MDk2MSwgMS44NzY5MSwgMi4yNDUyNCIsIFwKLSAgICAgICAgICAiMC4xMzgxOTMsIDAuNDgzMTg0LCAwLjc3NDczLCAxLjE0MjEyLCAxLjUwOTU0LCAxLjg3NjgzLCAyLjI0NTA5IiwgXAotICAgICAgICAgICIwLjE1MDA2MywgMC40ODcxMTYsIDAuNzc1NDc0LCAxLjE0MjYsIDEuNTA5NCwgMS44NzcyNSwgMi4yNDQzNiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTE0OTYsIDAuMDExNDk0LCAwLjAxMTQ5MiwgMC4wMTE0ODksIDAuMDExNDg2LCAwLjAxMTQ4NSwgMC4wMTE0ODIiLCBcCi0gICAgICAgICAgIjAuMDExNDYyLCAwLjAxMTQ3MSwgMC4wMTE0NjgsIDAuMDExNDY4LCAwLjAxMTQ2NCwgMC4wMTE0NjQsIDAuMDExNDYxIiwgXAotICAgICAgICAgICIwLjAxMTQ0MiwgMC4wMTE0NjEsIDAuMDExNDYxLCAwLjAxMTQ2LCAwLjAxMTQ2LCAwLjAxMTQ1NywgMC4wMTE0NTQiLCBcCi0gICAgICAgICAgIjAuMDExNDI4LCAwLjAxMTQ1MywgMC4wMTE0NTUsIDAuMDExNDU2LCAwLjAxMTQ1NiwgMC4wMTE0NTQsIDAuMDExNDUxIiwgXAotICAgICAgICAgICIwLjAxMTQxOCwgMC4wMTE0NDgsIDAuMDExNDUyLCAwLjAxMTQ1MiwgMC4wMTE0NTQsIDAuMDExNDUxLCAwLjAxMTQ1IiwgXAotICAgICAgICAgICIwLjAxMTQxMiwgMC4wMTE0NDIsIDAuMDExNDQ5LCAwLjAxMTQ1LCAwLjAxMTQ1MSwgMC4wMTE0NSwgMC4wMTE0NDYiLCBcCi0gICAgICAgICAgIjAuMDExNDA4LCAwLjAxMTQzOSwgMC4wMTE0NDYsIDAuMDExNDQ2LCAwLjAxMTQ0OCwgMC4wMTE0NDcsIDAuMDExNDQ1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzNTgsIDAuMDAzNTgsIDAuMDAzNTc5LCAwLjAwMzU3OSwgMC4wMDM1NzcsIDAuMDAzNTc2LCAwLjAwMzU3NiIsIFwKLSAgICAgICAgICAiMC4wMDM1MjUsIDAuMDAzNTMzLCAwLjAwMzUzNCwgMC4wMDM1MzMsIDAuMDAzNTM0LCAwLjAwMzUzMiwgMC4wMDM1MjkiLCBcCi0gICAgICAgICAgIjAuMDAzNTA1LCAwLjAwMzUxOSwgMC4wMDM1MjMsIDAuMDAzNTIzLCAwLjAwMzUyMiwgMC4wMDM1MiwgMC4wMDM1MjIiLCBcCi0gICAgICAgICAgIjAuMDAzNDksIDAuMDAzNTEzLCAwLjAwMzUxNSwgMC4wMDM1MTgsIDAuMDAzNTE4LCAwLjAwMzUxOCwgMC4wMDM1MTgiLCBcCi0gICAgICAgICAgIjAuMDAzNDc5LCAwLjAwMzUwNiwgMC4wMDM1MTEsIDAuMDAzNTE0LCAwLjAwMzUxNSwgMC4wMDM1MTQsIDAuMDAzNTE2IiwgXAotICAgICAgICAgICIwLjAwMzQ2NSwgMC4wMDM1LCAwLjAwMzUwNywgMC4wMDM1MTEsIDAuMDAzNTEsIDAuMDAzNTExLCAwLjAwMzUxMiIsIFwKLSAgICAgICAgICAiMC4wMDM0NiwgMC4wMDM0OTQsIDAuMDAzNTAyLCAwLjAwMzUwNywgMC4wMDM1MDgsIDAuMDAzNTEsIDAuMDAzNTEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEwOCwgMC4wMTA3OTcsIDAuMDEwNzk2LCAwLjAxMDc5MywgMC4wMTA3OTEsIDAuMDEwNzg4LCAwLjAxMDc4NSIsIFwKLSAgICAgICAgICAiMC4wMTA3NjUsIDAuMDEwNzcxLCAwLjAxMDc3MiwgMC4wMTA3NywgMC4wMTA3NjcsIDAuMDEwNzYzLCAwLjAxMDc2NSIsIFwKLSAgICAgICAgICAiMC4wMTA3NDQsIDAuMDEwNzYyLCAwLjAxMDc2NSwgMC4wMTA3NjIsIDAuMDEwNzYyLCAwLjAxMDc1OSwgMC4wMTA3NTYiLCBcCi0gICAgICAgICAgIjAuMDEwNzMzLCAwLjAxMDc1NiwgMC4wMTA3NiwgMC4wMTA3NiwgMC4wMTA3NiwgMC4wMTA3NTYsIDAuMDEwNzU0IiwgXAotICAgICAgICAgICIwLjAxMDcyMywgMC4wMTA3NTIsIDAuMDEwNzU1LCAwLjAxMDc1NiwgMC4wMTA3NTYsIDAuMDEwNzU1LCAwLjAxMDc1MyIsIFwKLSAgICAgICAgICAiMC4wMTA3MiwgMC4wMTA3NDcsIDAuMDEwNzUyLCAwLjAxMDc1MywgMC4wMTA3NTUsIDAuMDEwNzUzLCAwLjAxMDc1MiIsIFwKLSAgICAgICAgICAiMC4wMTA3MiwgMC4wMTA3NDQsIDAuMDEwNzUsIDAuMDEwNzUzLCAwLjAxMDc1MywgMC4wMTA3NTMsIDAuMDEwNzUyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyODc2LCAwLjAwMjg3OSwgMC4wMDI4NzksIDAuMDAyODc5LCAwLjAwMjg3OCwgMC4wMDI4OCwgMC4wMDI4NzYiLCBcCi0gICAgICAgICAgIjAuMDAyODQ1LCAwLjAwMjg3LCAwLjAwMjg3MiwgMC4wMDI4NzQsIDAuMDAyODczLCAwLjAwMjg3NCwgMC4wMDI4NzYiLCBcCi0gICAgICAgICAgIjAuMDAyODExLCAwLjAwMjg1OCwgMC4wMDI4NjUsIDAuMDAyODY5LCAwLjAwMjg3MSwgMC4wMDI4NzEsIDAuMDAyODcxIiwgXAotICAgICAgICAgICIwLjAwMjc4MywgMC4wMDI4NDgsIDAuMDAyODU3LCAwLjAwMjg2MywgMC4wMDI4NjYsIDAuMDAyODY4LCAwLjAwMjg2OSIsIFwKLSAgICAgICAgICAiMC4wMDI3NjEsIDAuMDAyODM3LCAwLjAwMjg1MSwgMC4wMDI4NTksIDAuMDAyODYzLCAwLjAwMjg2NCwgMC4wMDI4NjYiLCBcCi0gICAgICAgICAgIjAuMDAyNzM0LCAwLjAwMjgyMiwgMC4wMDI4NDEsIDAuMDAyODUxLCAwLjAwMjg1NiwgMC4wMDI4NiwgMC4wMDI4NjIiLCBcCi0gICAgICAgICAgIjAuMDAyNzE5LCAwLjAwMjgxMSwgMC4wMDI4MzIsIDAuMDAyODQ1LCAwLjAwMjg1MSwgMC4wMDI4NTYsIDAuMDAyODU4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTIiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMDA2OSwgMC4wMTAwNjksIDAuMDEwMDY4LCAwLjAxMDA2NSwgMC4wMTAwNjMsIDAuMDEwMDYsIDAuMDEwMDU1IiwgXAotICAgICAgICAgICIwLjAxMDAyMywgMC4wMTAwNCwgMC4wMTAwNDEsIDAuMDEwMDQsIDAuMDEwMDM5LCAwLjAxMDAzNSwgMC4wMTAwMzIiLCBcCi0gICAgICAgICAgIjAuMDA5OTk5LCAwLjAxMDAyOCwgMC4wMTAwMzEsIDAuMDEwMDMyLCAwLjAxMDAzMSwgMC4wMTAwMjgsIDAuMDEwMDI2IiwgXAotICAgICAgICAgICIwLjAwOTk5MiwgMC4wMTAwMjEsIDAuMDEwMDI2LCAwLjAxMDAyNywgMC4wMTAwMjgsIDAuMDEwMDI1LCAwLjAxMDAyMiIsIFwKLSAgICAgICAgICAiMC4wMDk5OTYsIDAuMDEwMDE5LCAwLjAxMDAyNCwgMC4wMTAwMjUsIDAuMDEwMDI2LCAwLjAxMDAyMywgMC4wMTAwMjIiLCBcCi0gICAgICAgICAgIjAuMDEwMDE2LCAwLjAxMDAxOSwgMC4wMTAwMjQsIDAuMDEwMDIzLCAwLjAxMDAyNSwgMC4wMTAwMjQsIDAuMDEwMDIiLCBcCi0gICAgICAgICAgIjAuMDEwMDQ3LCAwLjAxMDAyNiwgMC4wMTAwMjcsIDAuMDEwMDI2LCAwLjAxMDAyNiwgMC4wMTAwMjMsIDAuMDEwMDIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDIxMDEsIDAuMDAyMTE0LCAwLjAwMjExNywgMC4wMDIxMjIsIDAuMDAyMTE4LCAwLjAwMjEyNiwgMC4wMDIxMTciLCBcCi0gICAgICAgICAgIjAuMDAyMDkxLCAwLjAwMjE0NCwgMC4wMDIxNTEsIDAuMDAyMTU0LCAwLjAwMjE1NywgMC4wMDIxNTcsIDAuMDAyMTU3IiwgXAotICAgICAgICAgICIwLjAwMjA0NiwgMC4wMDIxMzUsIDAuMDAyMTQ5LCAwLjAwMjE1NiwgMC4wMDIxNTksIDAuMDAyMTYyLCAwLjAwMjE2MyIsIFwKLSAgICAgICAgICAiMC4wMDIwMDgsIDAuMDAyMTIsIDAuMDAyMTQsIDAuMDAyMTUxLCAwLjAwMjE1NiwgMC4wMDIxNTksIDAuMDAyMTYxIiwgXAotICAgICAgICAgICIwLjAwMTk3NSwgMC4wMDIxMDYsIDAuMDAyMTMsIDAuMDAyMTQ0LCAwLjAwMjE1MiwgMC4wMDIxNTUsIDAuMDAyMTU5IiwgXAotICAgICAgICAgICIwLjAwMTkzOCwgMC4wMDIwODQsIDAuMDAyMTE1LCAwLjAwMjEzMywgMC4wMDIxNDMsIDAuMDAyMTQ5LCAwLjAwMjE1MyIsIFwKLSAgICAgICAgICAiMC4wMDE5MTUsIDAuMDAyMDY3LCAwLjAwMjEwMiwgMC4wMDIxMjQsIDAuMDAyMTM2LCAwLjAwMjE0MywgMC4wMDIxNDkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA3ODM2LCAwLjAwNzg0NywgMC4wMDc4NDgsIDAuMDA3ODQ4LCAwLjAwNzg1LCAwLjAwNzg0OCwgMC4wMDc4NDkiLCBcCi0gICAgICAgICAgIjAuMDA3ODE2LCAwLjAwNzg1OSwgMC4wMDc4NjMsIDAuMDA3ODY1LCAwLjAwNzg2OCwgMC4wMDc4NjksIDAuMDA3ODY4IiwgXAotICAgICAgICAgICIwLjAwNzc4MywgMC4wMDc4NDksIDAuMDA3ODU5LCAwLjAwNzg2NCwgMC4wMDc4NjYsIDAuMDA3ODY4LCAwLjAwNzg3IiwgXAotICAgICAgICAgICIwLjAwNzc1OSwgMC4wMDc4MzgsIDAuMDA3ODUyLCAwLjAwNzg2LCAwLjAwNzg2MywgMC4wMDc4NjcsIDAuMDA3ODY3IiwgXAotICAgICAgICAgICIwLjAwNzc0MywgMC4wMDc4MjksIDAuMDA3ODQ2LCAwLjAwNzg1NiwgMC4wMDc4NjEsIDAuMDA3ODY0LCAwLjAwNzg2NiIsIFwKLSAgICAgICAgICAiMC4wMDc3MjcsIDAuMDA3ODE1LCAwLjAwNzgzNiwgMC4wMDc4NDgsIDAuMDA3ODU1LCAwLjAwNzg1OSwgMC4wMDc4NjIiLCBcCi0gICAgICAgICAgIjAuMDA3NzIsIDAuMDA3ODA2LCAwLjAwNzgyOSwgMC4wMDc4NCwgMC4wMDc4NTEsIDAuMDA3ODU1LCAwLjAwNzg1OCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzU3OSwgMC4wMDM1OCwgMC4wMDM1ODEsIDAuMDAzNTc4LCAwLjAwMzU4MSwgMC4wMDM1NzYsIDAuMDAzNTc2IiwgXAotICAgICAgICAgICIwLjAwMzUxMywgMC4wMDM1MjksIDAuMDAzNTMsIDAuMDAzNTMyLCAwLjAwMzUzLCAwLjAwMzUyOCwgMC4wMDM1MjkiLCBcCi0gICAgICAgICAgIjAuMDAzNTAxLCAwLjAwMzUxNywgMC4wMDM1MTksIDAuMDAzNTIsIDAuMDAzNTE5LCAwLjAwMzUxOCwgMC4wMDM1MTgiLCBcCi0gICAgICAgICAgIjAuMDAzNDk2LCAwLjAwMzUxNiwgMC4wMDM1MTgsIDAuMDAzNTE4LCAwLjAwMzUxOCwgMC4wMDM1MTcsIDAuMDAzNTE3IiwgXAotICAgICAgICAgICIwLjAwMzUxLCAwLjAwMzUxNywgMC4wMDM1MTgsIDAuMDAzNTE3LCAwLjAwMzUxNywgMC4wMDM1MTcsIDAuMDAzNTE2IiwgXAotICAgICAgICAgICIwLjAwMzU0OCwgMC4wMDM1MjcsIDAuMDAzNTIsIDAuMDAzNTE5LCAwLjAwMzUxOCwgMC4wMDM1MTcsIDAuMDAzNTE1IiwgXAotICAgICAgICAgICIwLjAwMzU4MywgMC4wMDM1MzQsIDAuMDAzNTI3LCAwLjAwMzUyNCwgMC4wMDM1MjEsIDAuMDAzNTE4LCAwLjAwMzUxOCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIxIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDcxNDgsIDAuMDA3MTU4LCAwLjAwNzE1OSwgMC4wMDcxNiwgMC4wMDcxNiwgMC4wMDcxNjEsIDAuMDA3MTYiLCBcCi0gICAgICAgICAgIjAuMDA3MTI3LCAwLjAwNzE2OSwgMC4wMDcxNzQsIDAuMDA3MTc3LCAwLjAwNzE3OSwgMC4wMDcxNzksIDAuMDA3MTc5IiwgXAotICAgICAgICAgICIwLjAwNzA5MywgMC4wMDcxNTksIDAuMDA3MTY5LCAwLjAwNzE3NSwgMC4wMDcxNzgsIDAuMDA3MTgsIDAuMDA3MTgiLCBcCi0gICAgICAgICAgIjAuMDA3MDcsIDAuMDA3MTQ5LCAwLjAwNzE2MywgMC4wMDcxNywgMC4wMDcxNzQsIDAuMDA3MTc3LCAwLjAwNzE3OSIsIFwKLSAgICAgICAgICAiMC4wMDcwNTYsIDAuMDA3MTQsIDAuMDA3MTU3LCAwLjAwNzE2NiwgMC4wMDcxNzIsIDAuMDA3MTc1LCAwLjAwNzE3NyIsIFwKLSAgICAgICAgICAiMC4wMDcwNDUsIDAuMDA3MTI4LCAwLjAwNzE0NSwgMC4wMDcxNiwgMC4wMDcxNjYsIDAuMDA3MTcsIDAuMDA3MTczIiwgXAotICAgICAgICAgICIwLjAwNzA0NywgMC4wMDcxMiwgMC4wMDcxNDIsIDAuMDA3MTU1LCAwLjAwNzE2MiwgMC4wMDcxNjcsIDAuMDA3MTcyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyOTQsIDAuMDAyOTQzLCAwLjAwMjk0MywgMC4wMDI5NDMsIDAuMDAyOTQ2LCAwLjAwMjk0MiwgMC4wMDI5NDciLCBcCi0gICAgICAgICAgIjAuMDAyOTA2LCAwLjAwMjkzNCwgMC4wMDI5MzcsIDAuMDAyOTM5LCAwLjAwMjk0LCAwLjAwMjk0MSwgMC4wMDI5NCIsIFwKLSAgICAgICAgICAiMC4wMDI4NzcsIDAuMDAyOTI0LCAwLjAwMjkzMSwgMC4wMDI5MzUsIDAuMDAyOTM1LCAwLjAwMjkzNiwgMC4wMDI5MzYiLCBcCi0gICAgICAgICAgIjAuMDAyODYyLCAwLjAwMjkxOCwgMC4wMDI5MywgMC4wMDI5MzQsIDAuMDAyOTM1LCAwLjAwMjkzNSwgMC4wMDI5MzYiLCBcCi0gICAgICAgICAgIjAuMDAyODY5LCAwLjAwMjkxMiwgMC4wMDI5MjgsIDAuMDAyOTMyLCAwLjAwMjkzNCwgMC4wMDI5MzUsIDAuMDAyOTM1IiwgXAotICAgICAgICAgICIwLjAwMjkxMiwgMC4wMDI5MjIsIDAuMDAyOTI5LCAwLjAwMjkzMSwgMC4wMDI5MzMsIDAuMDAyOTM0LCAwLjAwMjkzNSIsIFwKLSAgICAgICAgICAiMC4wMDI5NDYsIDAuMDAyOTMsIDAuMDAyOTMzLCAwLjAwMjkzNiwgMC4wMDI5MzcsIDAuMDAyOTM2LCAwLjAwMjkzNiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIyIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDY0NDIsIDAuMDA2NDU3LCAwLjAwNjQ1OSwgMC4wMDY0NjMsIDAuMDA2NDYxLCAwLjAwNjQ2MSwgMC4wMDY0NjEiLCBcCi0gICAgICAgICAgIjAuMDA2NDA5LCAwLjAwNjQ2NCwgMC4wMDY0NzEsIDAuMDA2NDc1LCAwLjAwNjQ3NywgMC4wMDY0NzgsIDAuMDA2NDgiLCBcCi0gICAgICAgICAgIjAuMDA2Mzc1LCAwLjAwNjQ1MywgMC4wMDY0NjUsIDAuMDA2NDcyLCAwLjAwNjQ3NiwgMC4wMDY0NzcsIDAuMDA2NDc5IiwgXAotICAgICAgICAgICIwLjAwNjM2MywgMC4wMDY0NDMsIDAuMDA2NDU5LCAwLjAwNjQ2NywgMC4wMDY0NzIsIDAuMDA2NDc1LCAwLjAwNjQ3NyIsIFwKLSAgICAgICAgICAiMC4wMDYzNjQsIDAuMDA2NDM3LCAwLjAwNjQ1NCwgMC4wMDY0NjQsIDAuMDA2NDY5LCAwLjAwNjQ3MywgMC4wMDY0NzUiLCBcCi0gICAgICAgICAgIjAuMDA2MzgzLCAwLjAwNjQzMSwgMC4wMDY0NDYsIDAuMDA2NDYsIDAuMDA2NDY3LCAwLjAwNjQ3LCAwLjAwNjQ3MyIsIFwKLSAgICAgICAgICAiMC4wMDY0MiwgMC4wMDY0MzMsIDAuMDA2NDQ4LCAwLjAwNjQ1OCwgMC4wMDY0NjUsIDAuMDA2NDY5LCAwLjAwNjQ3MiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjI3OSwgMC4wMDIyOTcsIDAuMDAyMjk5LCAwLjAwMjI5OSwgMC4wMDIyOTksIDAuMDAyMjk5LCAwLjAwMjMwMSIsIFwKLSAgICAgICAgICAiMC4wMDIyNjUsIDAuMDAyMzI0LCAwLjAwMjMzMywgMC4wMDIzMzcsIDAuMDAyMzM5LCAwLjAwMjMzOCwgMC4wMDIzMzgiLCBcCi0gICAgICAgICAgIjAuMDAyMjMsIDAuMDAyMzE2LCAwLjAwMjMyOCwgMC4wMDIzMzYsIDAuMDAyMzQsIDAuMDAyMzQyLCAwLjAwMjM0MyIsIFwKLSAgICAgICAgICAiMC4wMDIyMjMsIDAuMDAyMzA2LCAwLjAwMjMyNSwgMC4wMDIzMzUsIDAuMDAyMzM5LCAwLjAwMjM0MSwgMC4wMDIzNDMiLCBcCi0gICAgICAgICAgIjAuMDAyMjE3LCAwLjAwMjMwMywgMC4wMDIzMjEsIDAuMDAyMzMxLCAwLjAwMjMzOCwgMC4wMDIzMzksIDAuMDAyMzQyIiwgXAotICAgICAgICAgICIwLjAwMjIyNywgMC4wMDIyOTYsIDAuMDAyMzE1LCAwLjAwMjMyOCwgMC4wMDIzMzQsIDAuMDAyMzM4LCAwLjAwMjM0MSIsIFwKLSAgICAgICAgICAiMC4wMDIyNDksIDAuMDAyMjk2LCAwLjAwMjMxNSwgMC4wMDIzMjcsIDAuMDAyMzM0LCAwLjAwMjMzNywgMC4wMDIzNCIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IE9BSTMzWEwgKgotICogLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoT0FJMzNYTCkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjEyMTUxOTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQTApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY0NzY2OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDY0NjUyMjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2NDc2NjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyMjYsIDAuMDAwMjI2LCAwLjAwMDIyNiwgMC4wMDAyMjYsIDAuMDAwMjI2LCAwLjAwMDIyNiwgMC4wMDAyMjYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyMjcsIDAuMDAwMjI3LCAwLjAwMDIyNywgMC4wMDAyMjcsIDAuMDAwMjI3LCAwLjAwMDIyNywgMC4wMDAyMjciKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEExKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA3MDAzNzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2OTkyMzc7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNzAwMzc7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjI2LCAwLjAwMDIyNiwgMC4wMDAyMjYsIDAuMDAwMjI2LCAwLjAwMDIyNiwgMC4wMDAyMjYsIDAuMDAwMjI2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjI3LCAwLjAwMDIyNywgMC4wMDAyMjcsIDAuMDAwMjI3LCAwLjAwMDIyNywgMC4wMDAyMjcsIDAuMDAwMjI3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihBMikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjQ0Mzg0OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDY0NDM4NDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2NDI3MTU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjI2LCAwLjAwMDIyNiwgMC4wMDAyMjYsIDAuMDAwMjI2LCAwLjAwMDIyNiwgMC4wMDAyMjYsIDAuMDAwMjI2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjI3LCAwLjAwMDIyNywgMC4wMDAyMjcsIDAuMDAwMjI3LCAwLjAwMDIyNywgMC4wMDAyMjcsIDAuMDAwMjI3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjk3OTY0OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDY5NDgzMjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2OTc5NjQ7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNjgsIDAuMDAwNjgsIDAuMDAwNjgsIDAuMDAwNjgxLCAwLjAwMDY4MSwgMC4wMDA2OCwgMC4wMDA2OCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDI1NywgMC4wMDAyNTcsIDAuMDAwMjU3LCAwLjAwMDI1NywgMC4wMDAyNTcsIDAuMDAwMjU3LCAwLjAwMDI1NyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQjEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY5MDEyMzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2ODc0Mjg7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjkwMTIzOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDY4MSwgMC4wMDA2OCwgMC4wMDA2OCwgMC4wMDA2ODEsIDAuMDAwNjgsIDAuMDAwNjgsIDAuMDAwNjgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyNTcsIDAuMDAwMjU3LCAwLjAwMDI1NywgMC4wMDAyNTcsIDAuMDAwMjU3LCAwLjAwMDI1NywgMC4wMDAyNTciKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIyKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2NDE3MjM7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjQxNzIzOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDY0MTcxMTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA2OCwgMC4wMDA2OCwgMC4wMDA2OCwgMC4wMDA2OCwgMC4wMDA2OCwgMC4wMDA2OCwgMC4wMDA2OCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDI1NywgMC4wMDAyNTcsIDAuMDAwMjU3LCAwLjAwMDI1NywgMC4wMDAyNTcsIDAuMDAwMjU3LCAwLjAwMDI1NyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjA0OTY4ODc7Ci0gICAgZnVuY3Rpb24gOiAiKCEoKChCMCtCMSkrQjIpICgoQTArQTEpK0EyKSkpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjU4MjksIDAuMjk3ODY4LCAwLjY1MTk0LCAxLjI0MTczLCAxLjgzMTQ0LCAzLjIwNTYzLCAzLjk5MDYzIiwgXAotICAgICAgICAgICIwLjI2NjU3OCwgMC4zMDYwMTQsIDAuNjYwMzU3LCAxLjI0OTkyLCAxLjgzOTc3LCAzLjIxMzY4LCAzLjk5ODc1IiwgXAotICAgICAgICAgICIwLjI3NTE4OCwgMC4zMTQ2MzIsIDAuNjY4OTUzLCAxLjI1ODUxLCAxLjg0ODE5LCAzLjIyMjMsIDQuMDA3MzIiLCBcCi0gICAgICAgICAgIjAuMjgzMTM2LCAwLjMyMjQ3MywgMC42NzY1OSwgMS4yNjY0NiwgMS44NTYxNywgMy4yMzA1OSwgNC4wMTUzOCIsIFwKLSAgICAgICAgICAiMC4yOTA3NiwgMC4zMzAyNDgsIDAuNjg0MzQ3LCAxLjI3NDUyLCAxLjg2NDQsIDMuMjM4MTksIDQuMDIyOTMiLCBcCi0gICAgICAgICAgIjAuMzAyOTk5LCAwLjM0MjQ1NSwgMC42OTY5OTYsIDEuMjg2NTgsIDEuODc2MDcsIDMuMjUwMTYsIDQuMDM1NDciLCBcCi0gICAgICAgICAgIjAuMzEzNzg0LCAwLjM1MzE2MSwgMC43MDc0OTMsIDEuMjk3MzgsIDEuODg2ODcsIDMuMjYxMDQsIDQuMDQ2MjYiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuNDk4MzAxLCAwLjU3NzE5NywgMS4yODcyMSwgMi40NzA5OCwgMy42NTQ0MiwgNi40MTYzOSwgNy45OTI2MyIsIFwKLSAgICAgICAgICAiMC40OTgyOTgsIDAuNTc3MjE3LCAxLjI4NzI0LCAyLjQ3MTAxLCAzLjY1NDI4LCA2LjQxNTI0LCA3Ljk5NDUzIiwgXAotICAgICAgICAgICIwLjQ5ODMwNCwgMC41NzcyNjcsIDEuMjg3NDUsIDIuNDcwODcsIDMuNjU0MzQsIDYuNDE1NDMsIDcuOTk0MDciLCBcCi0gICAgICAgICAgIjAuNDk4MjgzLCAwLjU3NzE4NSwgMS4yODc0MywgMi40NzA4MSwgMy42NTM5OSwgNi40MTU2MSwgNy45OTQ4IiwgXAotICAgICAgICAgICIwLjQ5ODY0LCAwLjU3NzI3LCAxLjI4NzI0LCAyLjQ3MDkxLCAzLjY1MzQ0LCA2LjQxNTU2LCA3Ljk5MjUiLCBcCi0gICAgICAgICAgIjAuNTAwMTM1LCAwLjU3ODMxNSwgMS4yODcxNywgMi40NzA5NiwgMy42NTQwOSwgNi40MTUyNSwgNy45OTI0NiIsIFwKLSAgICAgICAgICAiMC41MDI1MjYsIDAuNTgwMTY5LCAxLjI4NzM0LCAyLjQ3MDU1LCAzLjY1NDA4LCA2LjQxNTMxLCA3Ljk5NDE3Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE3ODc5OCwgMC4yMDQ4MDMsIDAuNDM3MjQ2LCAwLjgyNDIzNSwgMS4yMTE0NCwgMi4xMTM2OSwgMi42MjgzNiIsIFwKLSAgICAgICAgICAiMC4xODg5MTksIDAuMjE0ODc0LCAwLjQ0NzM0MSwgMC44MzQwNzcsIDEuMjIwNTEsIDIuMTIyMDQsIDIuNjM3NzQiLCBcCi0gICAgICAgICAgIjAuMjAwNzU5LCAwLjIyNjY5OSwgMC40NTkxNzQsIDAuODQ2MTczLCAxLjIzMzA1LCAyLjEzNTQxLCAyLjY1MDA3IiwgXAotICAgICAgICAgICIwLjIxMTg1LCAwLjIzNzc5MywgMC40NzA1NTksIDAuODU3MjksIDEuMjQzOSwgMi4xNDUzMywgMi42NjEyMiIsIFwKLSAgICAgICAgICAiMC4yMjI5ODgsIDAuMjQ4OTY3LCAwLjQ4MTY1OSwgMC44Njg4OTEsIDEuMjU1NzksIDIuMTU3NzIsIDIuNjcyNDQiLCBcCi0gICAgICAgICAgIjAuMjQwMzg4LCAwLjI2NjUxOCwgMC40OTkxMzgsIDAuODg2MDY5LCAxLjI3MjUyLCAyLjE3NDUxLCAyLjY5MDMiLCBcCi0gICAgICAgICAgIjAuMjU1NjE5LCAwLjI4MTc0OSwgMC41MTQ0NTUsIDAuOTAxNDU5LCAxLjI4ODAyLCAyLjE5MDE1LCAyLjcwNTE3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMwODU0NCwgMC4zNTk2NiwgMC44MTgxNzIsIDEuNTgxMjEsIDIuMzQ0ODYsIDQuMTI3MzQsIDUuMTQzODQiLCBcCi0gICAgICAgICAgIjAuMzA4NTg5LCAwLjM1OTU4OCwgMC44MTc2NjgsIDEuNTgxMiwgMi4zNDQ4OSwgNC4xMjY3NiwgNS4xNDM4OCIsIFwKLSAgICAgICAgICAiMC4zMDg3NDYsIDAuMzU5NjE0LCAwLjgxNzYzMywgMS41ODEzMSwgMi4zNDQ0NCwgNC4xMjY2LCA1LjE0MjE3IiwgXAotICAgICAgICAgICIwLjMwODU0MSwgMC4zNTk0NTgsIDAuODE4MDI0LCAxLjU4MTk3LCAyLjM0NTExLCA0LjEyODI5LCA1LjE0NDMiLCBcCi0gICAgICAgICAgIjAuMzA5MDY1LCAwLjM1OTc2LCAwLjgxNzg4MSwgMS41ODEyOCwgMi4zNDQ3NSwgNC4xMjY3OCwgNS4xNDIxOSIsIFwKLSAgICAgICAgICAiMC4zMTE5MzQsIDAuMzYyMDU3LCAwLjgxODA4LCAxLjU4MTI3LCAyLjM0NTQ4LCA0LjEyNjI4LCA1LjE0NTciLCBcCi0gICAgICAgICAgIjAuMzE1NzUsIDAuMzY1MDk5LCAwLjgxNzk2MiwgMS41ODE1OCwgMi4zNDU1OSwgNC4xMjY0LCA1LjE0NDI3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkExIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yNTU1NzcsIDAuMjk0OTYyLCAwLjY0OTI5MiwgMS4yMzg4OCwgMS44Mjg1OSwgMy4yMDIzMiwgMy45ODc2NiIsIFwKLSAgICAgICAgICAiMC4yNjM5MzQsIDAuMzAzNTU4LCAwLjY1NzcxOCwgMS4yNDczNCwgMS44Mzc1OCwgMy4yMTA4NywgMy45OTYwNSIsIFwKLSAgICAgICAgICAiMC4yNzM4NzUsIDAuMzEzMTY5LCAwLjY2NzY5NywgMS4yNTczLCAxLjg0NzMzLCAzLjIyMDc2LCA0LjAwNTk5IiwgXAotICAgICAgICAgICIwLjI4MzUzNCwgMC4zMjI4NDksIDAuNjc3NTA4LCAxLjI2Njg1LCAxLjg1NjcsIDMuMjMwOTgsIDQuMDE1NDMiLCBcCi0gICAgICAgICAgIjAuMjkzMTQ5LCAwLjMzMjY2LCAwLjY4NjkwMywgMS4yNzY5MSwgMS44NjY1NCwgMy4yNDAzMiwgNC4wMjU1OSIsIFwKLSAgICAgICAgICAiMC4zMDg0OTQsIDAuMzQ4MTgsIDAuNzAyMzg4LCAxLjI5MjM0LCAxLjg4MjMsIDMuMjU2MDksIDQuMDQxMTciLCBcCi0gICAgICAgICAgIjAuMzIyMDMzLCAwLjM2MTQ2LCAwLjcxNjEwOCwgMS4zMDYwNywgMS44OTU1NSwgMy4yNjk3MiwgNC4wNTQ5NyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC40OTgzMzQsIDAuNTc3MTg4LCAxLjI4NzQ5LCAyLjQ3MTAzLCAzLjY1NDEyLCA2LjQxNDcsIDcuOTkyOTYiLCBcCi0gICAgICAgICAgIjAuNDk4MzQzLCAwLjU3NzIxNiwgMS4yODc0NSwgMi40NzA2NywgMy42NTQwMywgNi40MTUxMiwgNy45OTQwNyIsIFwKLSAgICAgICAgICAiMC40OTgzMzMsIDAuNTc3MjYxLCAxLjI4NzQ4LCAyLjQ3MTA1LCAzLjY1NDEzLCA2LjQxNjE4LCA3Ljk5Mjg2IiwgXAotICAgICAgICAgICIwLjQ5ODI4LCAwLjU3NzIxNCwgMS4yODcxOSwgMi40NzA3NSwgMy42NTQ0MywgNi40MTUzMywgNy45OTQzMSIsIFwKLSAgICAgICAgICAiMC40OTg1MjEsIDAuNTc3MTg2LCAxLjI4NzI0LCAyLjQ3MDksIDMuNjU0MTMsIDYuNDE2MTksIDcuOTkyNCIsIFwKLSAgICAgICAgICAiMC41MDA1NDEsIDAuNTc4MzQ5LCAxLjI4NzIzLCAyLjQ3MTAyLCAzLjY1NDA2LCA2LjQxNjE5LCA3Ljk5Mzk4IiwgXAotICAgICAgICAgICIwLjUwMzY4MywgMC41ODA4NjgsIDEuMjg3MTksIDIuNDcwNjIsIDMuNjU0MTMsIDYuNDE2MTEsIDcuOTkyNDQiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTc0ODY1LCAwLjIwMDc3OCwgMC40MzMzMDYsIDAuODE5OTM5LCAxLjIwNjY4LCAyLjEwODcyLCAyLjYyMzg3IiwgXAotICAgICAgICAgICIwLjE4NTA4NSwgMC4yMTA5NTcsIDAuNDQzMzcxLCAwLjgzMDUyMSwgMS4yMTY5OSwgMi4xMTgyMiwgMi42MzM5NSIsIFwKLSAgICAgICAgICAiMC4xOTY5MTEsIDAuMjIyODIzLCAwLjQ1NTEzLCAwLjg0MjM3OCwgMS4yMjg4NiwgMi4xMzAzNSwgMi42NDU4NSIsIFwKLSAgICAgICAgICAiMC4yMDc5NjEsIDAuMjMzOTg4LCAwLjQ2NjQxMSwgMC44NTMzMzMsIDEuMjQwMTYsIDIuMTQyNzIsIDIuNjU3MTgiLCBcCi0gICAgICAgICAgIjAuMjE5MTE0LCAwLjI0NTA1MSwgMC40Nzc2MTEsIDAuODY0NzY1LCAxLjI1MTYzLCAyLjE1MzUyLCAyLjY2ODI0IiwgXAotICAgICAgICAgICIwLjIzNjQ1MiwgMC4yNjIzODgsIDAuNDk1MTQ1LCAwLjg4MTk2OCwgMS4yNjgzLCAyLjE3MDUyLCAyLjY4NjA0IiwgXAotICAgICAgICAgICIwLjI1MTgzMywgMC4yNzc3MTQsIDAuNTA5ODYzLCAwLjg5NzE5OCwgMS4yODM3NSwgMi4xODYzOCwgMi43MDE0MSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMDM5NDYsIDAuMzU1MTExLCAwLjgxMzMyNiwgMS41NzY0NiwgMi4zNDAzMSwgNC4xMjE2NiwgNS4xMzcwOSIsIFwKLSAgICAgICAgICAiMC4zMDM5NzEsIDAuMzU0ODQxLCAwLjgxMzQ4OCwgMS41NzY1MSwgMi4zMzk3MiwgNC4xMjM3MywgNS4xMzc3OCIsIFwKLSAgICAgICAgICAiMC4zMDQxMjksIDAuMzU0OTcxLCAwLjgxMzEwMiwgMS41NzY1NCwgMi4zNDA0OCwgNC4xMjA5NSwgNS4xMzgxNCIsIFwKLSAgICAgICAgICAiMC4zMDM5MDgsIDAuMzU0ODgzLCAwLjgxMzE1MSwgMS41NzY0MiwgMi4zNCwgNC4xMjA3LCA1LjEzNzE3IiwgXAotICAgICAgICAgICIwLjMwNDY5NywgMC4zNTUxMjYsIDAuODEzMTU0LCAxLjU3NjQ5LCAyLjMzOTksIDQuMTIwNzEsIDUuMTM3MzciLCBcCi0gICAgICAgICAgIjAuMzA3NDYsIDAuMzU3MjIyLCAwLjgxMzIzMiwgMS41NzY0MywgMi4zMzk2OCwgNC4xMjE2NCwgNS4xMzgzNiIsIFwKLSAgICAgICAgICAiMC4zMTE1NjEsIDAuMzYwNjUyLCAwLjgxMzIzOSwgMS41NzY5NywgMi4zMzk2OCwgNC4xMjA4NywgNS4xMzc5NyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjQ3OTY5LCAwLjI4NzMxNywgMC42NDE2NDksIDEuMjMxMiwgMS44MjA4OSwgMy4xOTUwOCwgMy45Nzk3NCIsIFwKLSAgICAgICAgICAiMC4yNTYyNywgMC4yOTU3MiwgMC42NDk5MjcsIDEuMjQwMTIsIDEuODI5MDMsIDMuMjAzNjcsIDMuOTg4MzEiLCBcCi0gICAgICAgICAgIjAuMjY2ODU5LCAwLjMwNjMsIDAuNjYwOTQyLCAxLjI1MDQxLCAxLjg0MDQ1LCAzLjIxMzksIDMuOTk5MDkiLCBcCi0gICAgICAgICAgIjAuMjc3MzYsIDAuMzE2ODIzLCAwLjY3MTA0LCAxLjI2MTA4LCAxLjg1MDY0LCAzLjIyNDQ0LCA0LjAwOTY5IiwgXAotICAgICAgICAgICIwLjI4Nzk1NywgMC4zMjcwMDQsIDAuNjgxOTQ3LCAxLjI3MTY0LCAxLjg2MTcyLCAzLjIzNTE2LCA0LjAyMDM1IiwgXAotICAgICAgICAgICIwLjMwNTIxMywgMC4zNDQ1OSwgMC42OTg3NzMsIDEuMjg4NjYsIDEuODc4NDIsIDMuMjUyNzYsIDQuMDM3NDMiLCBcCi0gICAgICAgICAgIjAuMzIwMjAxLCAwLjM1OTYxLCAwLjcxMzk3LCAxLjMwMzYsIDEuODkzMTgsIDMuMjY3MiwgNC4wNTI0NiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC40OTgzMzMsIDAuNTc3MjE5LCAxLjI4NzQ2LCAyLjQ3MDc1LCAzLjY1NDI5LCA2LjQxNjA1LCA3Ljk5Mzc2IiwgXAotICAgICAgICAgICIwLjQ5ODMzNCwgMC41NzcyODIsIDEuMjg3NDIsIDIuNDcwNTYsIDMuNjU0MTEsIDYuNDE1NjMsIDcuOTk0MzgiLCBcCi0gICAgICAgICAgIjAuNDk4Mzc3LCAwLjU3NzI1OSwgMS4yODcxOSwgMi40NzEwNSwgMy42NTM1NSwgNi40MTQ5NSwgNy45OTQxMyIsIFwKLSAgICAgICAgICAiMC40OTgyODEsIDAuNTc3MTQ1LCAxLjI4NzI3LCAyLjQ3MDk3LCAzLjY1NDEzLCA2LjQxNjA2LCA3Ljk5NDM3IiwgXAotICAgICAgICAgICIwLjQ5ODQ4MiwgMC41NzcxMjgsIDEuMjg3NDMsIDIuNDcwOTEsIDMuNjU0MTIsIDYuNDE0ODgsIDcuOTk0OTMiLCBcCi0gICAgICAgICAgIjAuNTAxNzQ5LCAwLjU3ODkwMSwgMS4yODczNywgMi40NzA1MywgMy42NTQyMSwgNi40MTY0MywgNy45OTQ1IiwgXAotICAgICAgICAgICIwLjUwNjYxNSwgMC41ODI3MTcsIDEuMjg3MTksIDIuNDcwOTgsIDMuNjUzNTYsIDYuNDE2MjYsIDcuOTkyNiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNjk3MiwgMC4xOTU2MDEsIDAuNDI3NzQ0LCAwLjgxNDU2LCAxLjIwMTM1LCAyLjEwMzMyLCAyLjYxODI3IiwgXAotICAgICAgICAgICIwLjE4MDExNSwgMC4yMDU5NzUsIDAuNDM4MjY2LCAwLjgyNTMzOCwgMS4yMTE0OSwgMi4xMTMyLCAyLjYyODczIiwgXAotICAgICAgICAgICIwLjE5MTk4MywgMC4yMTc5MDEsIDAuNDUwMDc3LCAwLjgzNzI3NCwgMS4yMjMyMiwgMi4xMjQ2OCwgMi42NDA2MyIsIFwKLSAgICAgICAgICAiMC4yMDMxMDEsIDAuMjI4OTksIDAuNDYxNDA3LCAwLjg0ODA0LCAxLjIzNDMyLCAyLjEzNjE3LCAyLjY1MTgxIiwgXAotICAgICAgICAgICIwLjIxNDAwNSwgMC4yMzk4NzUsIDAuNDcyMzg2LCAwLjg1OTU0NiwgMS4yNDYxOCwgMi4xNDgzMSwgMi42NjI4OSIsIFwKLSAgICAgICAgICAiMC4yMzEzOTMsIDAuMjU3MzM5LCAwLjQ4OTk1OCwgMC44NzY2NTgsIDEuMjYzMTEsIDIuMTY1NSwgMi42ODA3NSIsIFwKLSAgICAgICAgICAiMC4yNDY1NjksIDAuMjcyNjY5LCAwLjUwNTMxOSwgMC44OTIxMjYsIDEuMjc4NjgsIDIuMTgwNzEsIDIuNjk1NzYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjk4MTk2LCAwLjM0OTMwNiwgMC44MDczMzUsIDEuNTcwMDQsIDIuMzMzNDIsIDQuMTE1NDcsIDUuMTMxMzkiLCBcCi0gICAgICAgICAgIjAuMjk4MzQxLCAwLjM0OTA4LCAwLjgwNzQxMSwgMS41NzAxOSwgMi4zMzMxLCA0LjExNTU5LCA1LjEzMzA1IiwgXAotICAgICAgICAgICIwLjI5ODE3OSwgMC4zNDkxMDksIDAuODA3MDU3LCAxLjU3MDI1LCAyLjMzMzg4LCA0LjExNjQ4LCA1LjEzMjY5IiwgXAotICAgICAgICAgICIwLjI5ODE3NiwgMC4zNDg5ODQsIDAuODA3NDU0LCAxLjU3MDgzLCAyLjMzMzcyLCA0LjExNDEzLCA1LjEzMjciLCBcCi0gICAgICAgICAgIjAuMjk4OTk4LCAwLjM0OTUxNCwgMC44MDY5OTcsIDEuNTcwMjMsIDIuMzMzNDYsIDQuMTE1MiwgNS4xMzA0NyIsIFwKLSAgICAgICAgICAiMC4zMDE4NTQsIDAuMzUxNTQ4LCAwLjgwNjk5OCwgMS41NzAxMywgMi4zMzMyMywgNC4xMTQ4OCwgNS4xMzM2OSIsIFwKLSAgICAgICAgICAiMC4zMDU2OTgsIDAuMzU1MDY0LCAwLjgwNzA4OCwgMS41NzAzNywgMi4zMzQyOCwgNC4xMTUwOCwgNS4xMzI1NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjM0MjU0LCAwLjI3MzU1MSwgMC42Mjc3MDMsIDEuMjE3NjcsIDEuODA3NjcsIDMuMTgyNzEsIDMuOTY4NDUiLCBcCi0gICAgICAgICAgIjAuMjQyNjI2LCAwLjI4MjA3NCwgMC42MzYyMTIsIDEuMjI2MjMsIDEuODE1ODEsIDMuMTkxMDQsIDMuOTc2NjkiLCBcCi0gICAgICAgICAgIjAuMjUxMTg3LCAwLjI5MDUyMiwgMC42NDQ4MjMsIDEuMjM0ODMsIDEuODI0NiwgMy4xOTk4NSwgMy45ODU1OCIsIFwKLSAgICAgICAgICAiMC4yNTkxMDUsIDAuMjk4NTQ4LCAwLjY1Mjc1NSwgMS4yNDI5NSwgMS44MzI3NiwgMy4yMDgyMSwgMy45OTMyNyIsIFwKLSAgICAgICAgICAiMC4yNjY4MDgsIDAuMzA2MTc5LCAwLjY2MDQ4MywgMS4yNTA2NSwgMS44NDAyNiwgMy4yMTU0NywgNC4wMDE0MiIsIFwKLSAgICAgICAgICAiMC4yNzg5MjMsIDAuMzE4MzE0LCAwLjY3Mjc0NywgMS4yNjMsIDEuODUyNzQsIDMuMjI3ODIsIDQuMDEzNzYiLCBcCi0gICAgICAgICAgIjAuMjg5NjUsIDAuMzI5MTUxLCAwLjY4Mzc4MiwgMS4yNzM5NCwgMS44NjM1NywgMy4yMzg2NSwgNC4wMjQ1NSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC40NzQ0MzcsIDAuNTUzMDgsIDEuMjYyMDYsIDIuNDQ1MDMsIDMuNjI3OTYsIDYuMzg4ODQsIDcuOTY2OSIsIFwKLSAgICAgICAgICAiMC40NzQ0MDQsIDAuNTUzMTYyLCAxLjI2MjE3LCAyLjQ0NDc5LCAzLjYyNzcsIDYuMzg3NjksIDcuOTY1MDkiLCBcCi0gICAgICAgICAgIjAuNDc0NDQ3LCAwLjU1MzA5OSwgMS4yNjIyOCwgMi40NDQ5NiwgMy42Mjc5MywgNi4zODg3MSwgNy45NjYwNSIsIFwKLSAgICAgICAgICAiMC40NzQ0NDksIDAuNTUzMSwgMS4yNjIwMSwgMi40NDQ4NSwgMy42Mjc5NSwgNi4zODk0OSwgNy45NjU2OCIsIFwKLSAgICAgICAgICAiMC40NzQ4NTEsIDAuNTUzMjUsIDEuMjYyMTIsIDIuNDQ0OTksIDMuNjI3NzIsIDYuMzg4NjUsIDcuOTY1OTYiLCBcCi0gICAgICAgICAgIjAuNDc2NzU5LCAwLjU1NDU1NywgMS4yNjE5OCwgMi40NDQ4LCAzLjYyNzg0LCA2LjM4ODQxLCA3Ljk2NTk2IiwgXAotICAgICAgICAgICIwLjQ3OTM5MiwgMC41NTY3NDEsIDEuMjYyMjUsIDIuNDQ0OTgsIDMuNjI3ODYsIDYuMzg5MDQsIDcuOTY2MDUiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTY2MjYxLCAwLjE5MjE5NCwgMC40MjQ2NjksIDAuODExNTA2LCAxLjE5ODIyLCAyLjEwMDE3LCAyLjYxNTYzIiwgXAotICAgICAgICAgICIwLjE3NTQ2NiwgMC4yMDEzODgsIDAuNDMzOTc2LCAwLjgyMDk4OCwgMS4yMDc1NywgMi4xMDk5OCwgMi42MjM4NSIsIFwKLSAgICAgICAgICAiMC4xODczNzYsIDAuMjEzMzIsIDAuNDQ2MDI0LCAwLjgzMjc0MSwgMS4yMTkxMywgMi4xMjE1NywgMi42MzY2NSIsIFwKLSAgICAgICAgICAiMC4xOTg1NzgsIDAuMjI0NTA2LCAwLjQ1NzEyMiwgMC44NDQxNDQsIDEuMjMwNCwgMi4xMzIxNiwgMi42NDc3OCIsIFwKLSAgICAgICAgICAiMC4yMTAyNCwgMC4yMzYxNjMsIDAuNDY4NzExLCAwLjg1NTQ2MiwgMS4yNDIwNSwgMi4xNDQ2NSwgMi42NTk2NCIsIFwKLSAgICAgICAgICAiMC4yMjkwNTUsIDAuMjU1MDEsIDAuNDg3NTM4LCAwLjg3NDI2NSwgMS4yNjA2OCwgMi4xNjI4NCwgMi42Nzg0NiIsIFwKLSAgICAgICAgICAiMC4yNDU2OTcsIDAuMjcxNDgsIDAuNTAzODIsIDAuODkwNjQsIDEuMjc3MDcsIDIuMTc4OTgsIDIuNjk0NCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMDg2MjYsIDAuMzU5NTE4LCAwLjgxNzY4NiwgMS41ODE4OSwgMi4zNDUxNiwgNC4xMjY4MywgNS4xNDUwOCIsIFwKLSAgICAgICAgICAiMC4zMDg1NzUsIDAuMzU5NDY2LCAwLjgxNzg1NSwgMS41ODE2NiwgMi4zNDUxNywgNC4xMjU4NCwgNS4xNDMwNyIsIFwKLSAgICAgICAgICAiMC4zMDg1MDQsIDAuMzU5NTUsIDAuODE4MjEyLCAxLjU4MTk2LCAyLjM0NTQ5LCA0LjEyNjM1LCA1LjE0NDUxIiwgXAotICAgICAgICAgICIwLjMwODc2NiwgMC4zNTkzMjYsIDAuODE4MjE0LCAxLjU4MTI2LCAyLjM0NTIsIDQuMTI2MjMsIDUuMTQ0NDgiLCBcCi0gICAgICAgICAgIjAuMzEwNTEsIDAuMzYwNTgxLCAwLjgxNzgzOSwgMS41ODEyOCwgMi4zNDUzNywgNC4xMjg0MSwgNS4xNDIyMyIsIFwKLSAgICAgICAgICAiMC4zMTY2NCwgMC4zNjUyNCwgMC44MTc4MzUsIDEuNTgxOTUsIDIuMzQ1NTIsIDQuMTI1NjksIDUuMTQzNTIiLCBcCi0gICAgICAgICAgIjAuMzI0MDIxLCAwLjM3MTU1MSwgMC44MTc4MzEsIDEuNTgxMjYsIDIuMzQ0NiwgNC4xMjU3MywgNS4xNDQxNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjMxMzQxLCAwLjI3MDY0NywgMC42MjQ4MzMsIDEuMjE0ODYsIDEuODA0MzYsIDMuMTc5NDcsIDMuOTY1NDIiLCBcCi0gICAgICAgICAgIjAuMjM5OTAxLCAwLjI3OTU1OSwgMC42MzM0MDksIDEuMjIzNTMsIDEuODEzMzgsIDMuMTg4NDksIDMuOTc0MjYiLCBcCi0gICAgICAgICAgIjAuMjQ5NjkyLCAwLjI4OTAzNywgMC42NDMzODksIDEuMjMzMzUsIDEuODIzMjksIDMuMTk4NTYsIDMuOTg0MiIsIFwKLSAgICAgICAgICAiMC4yNTk0MTYsIDAuMjk4NzAzLCAwLjY1MzA1OSwgMS4yNDMxLCAxLjgzMzA2LCAzLjIwODQ1LCAzLjk5NDA1IiwgXAotICAgICAgICAgICIwLjI2ODk4MywgMC4zMDgzMjMsIDAuNjYyODUxLCAxLjI1MzAxLCAxLjg0MjU3LCAzLjIxNzgxLCA0LjAwMzc3IiwgXAotICAgICAgICAgICIwLjI4NDQ2NywgMC4zMjM5MjYsIDAuNjc4NDc2LCAxLjI2ODcyLCAxLjg1ODQxLCAzLjIzMzQxLCA0LjAxOTMyIiwgXAotICAgICAgICAgICIwLjI5Nzg4NSwgMC4zMzc1NSwgMC42OTE5NDIsIDEuMjgyMzUsIDEuODcyMTIsIDMuMjQ3MjEsIDQuMDMzMTEiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuNDc0NTA4LCAwLjU1MzAyOSwgMS4yNjIwMSwgMi40NDQ5LCAzLjYyNzc2LCA2LjM4ODQyLCA3Ljk2NjExIiwgXAotICAgICAgICAgICIwLjQ3NDM5NywgMC41NTMwODMsIDEuMjYyMjIsIDIuNDQ0NzQsIDMuNjI4LCA2LjM4ODYzLCA3Ljk2NjgyIiwgXAotICAgICAgICAgICIwLjQ3NDQ2NywgMC41NTI5OTMsIDEuMjYyMDcsIDIuNDQ0OTgsIDMuNjI4MDIsIDYuMzg4ODEsIDcuOTY2MDUiLCBcCi0gICAgICAgICAgIjAuNDc0NDMyLCAwLjU1MzA0OCwgMS4yNjIxNSwgMi40NDQ3NiwgMy42Mjc5NSwgNi4zODg1MSwgNy45NjY2IiwgXAotICAgICAgICAgICIwLjQ3NDg4MiwgMC41NTMyNTksIDEuMjYyMTcsIDIuNDQ0ODcsIDMuNjI3NjUsIDYuMzg4MzEsIDcuOTY1NzQiLCBcCi0gICAgICAgICAgIjAuNDc3MzYzLCAwLjU1NDkyNSwgMS4yNjIxNiwgMi40NDQ5MSwgMy42Mjc4MSwgNi4zODgyLCA3Ljk2NTgzIiwgXAotICAgICAgICAgICIwLjQ4MDk5LCAwLjU1NzcwNCwgMS4yNjIwOSwgMi40NDQ5NCwgMy42Mjc1MywgNi4zODkwMSwgNy45NjYwNiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNjIyNzIsIDAuMTg4MTQ0LCAwLjQyMDUxOCwgMC44MDcxNTUsIDEuMTkzOTYsIDIuMDk1OTUsIDIuNjExMTciLCBcCi0gICAgICAgICAgIjAuMTcxNjEzLCAwLjE5NzQ5NCwgMC40Mjk4MzIsIDAuODE2OTI1LCAxLjIwMzA5LCAyLjEwNTM5LCAyLjYxOTk2IiwgXAotICAgICAgICAgICIwLjE4MzU5NSwgMC4yMDk1NDMsIDAuNDQxNjU3LCAwLjgyODI4OSwgMS4yMTQ2MywgMi4xMTY4MiwgMi42MzIxIiwgXAotICAgICAgICAgICIwLjE5NDY0NywgMC4yMjA1MzEsIDAuNDUyOTMyLCAwLjg0MDExMywgMS4yMjY5NSwgMi4xMjg4MywgMi42NDM5MSIsIFwKLSAgICAgICAgICAiMC4yMDYyNzksIDAuMjMyMTc0LCAwLjQ2NDUzLCAwLjg1MTIxNywgMS4yMzc2NSwgMi4xNDAwNCwgMi42NTU0NyIsIFwKLSAgICAgICAgICAiMC4yMjQ4OTIsIDAuMjUwODUxLCAwLjQ4MzExNiwgMC44NzAyLCAxLjI1NjI1LCAyLjE1OTMyLCAyLjY3Mjk0IiwgXAotICAgICAgICAgICIwLjI0MjA4MywgMC4yNjcyMDcsIDAuNDk5Mzc5LCAwLjg4NjA2MiwgMS4yNzI3NywgMi4xNzQzNywgMi42ODk3NyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMDM4MzYsIDAuMzU0NzYyLCAwLjgxMzExMywgMS41NzY4OSwgMi4zMzk2NiwgNC4xMjA2NSwgNS4xMzc2NiIsIFwKLSAgICAgICAgICAiMC4zMDM5MjEsIDAuMzU0OTcyLCAwLjgxMzAwMywgMS41NzY0LCAyLjM0MDI2LCA0LjEyMDMxLCA1LjEzNzA1IiwgXAotICAgICAgICAgICIwLjMwMzc0OSwgMC4zNTQ3NTQsIDAuODEzNDE5LCAxLjU3Njk4LCAyLjM0MDUsIDQuMTIwNiwgNS4xMzc4MyIsIFwKLSAgICAgICAgICAiMC4zMDQwNTUsIDAuMzU0NzU0LCAwLjgxMzMyNywgMS41NzYzMSwgMi4zMzk2NCwgNC4xMTk5MSwgNS4xMzg0NyIsIFwKLSAgICAgICAgICAiMC4zMDYxMDYsIDAuMzU1NzcyLCAwLjgxMjk4NSwgMS41NzYzNSwgMi4zNDA2MywgNC4xMjEwMiwgNS4xMzc1MiIsIFwKLSAgICAgICAgICAiMC4zMTIyNjYsIDAuMzYwODExLCAwLjgxMzI1LCAxLjU3NjM0LCAyLjMzOTU2LCA0LjEyMDczLCA1LjEzNzY1IiwgXAotICAgICAgICAgICIwLjMxOTI1NCwgMC4zNjcyMjMsIDAuODEzMDI3LCAxLjU3Njg1LCAyLjM0MDQyLCA0LjEyMzc5LCA1LjEzODgyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIyIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMjM3MSwgMC4yNjMyLCAwLjYxNzIyNiwgMS4yMDcyLCAxLjc5NzA2LCAzLjE3MjQ0LCAzLjk1NzY3IiwgXAotICAgICAgICAgICIwLjIzMjMzLCAwLjI3MTc1NiwgMC42MjU3OTksIDEuMjE1OTQsIDEuODA1NDYsIDMuMTgwNjQsIDMuOTY2NTEiLCBcCi0gICAgICAgICAgIjAuMjQyODQzLCAwLjI4MjI4NiwgMC42MzY0NzcsIDEuMjI2NzMsIDEuODE2MjcsIDMuMTkxNDYsIDMuOTc3MzEiLCBcCi0gICAgICAgICAgIjAuMjUyOTAxLCAwLjI5MjY5OCwgMC42NDcwOTEsIDEuMjM3MjIsIDEuODI2NzcsIDMuMjAyLCAzLjk4Nzk2IiwgXAotICAgICAgICAgICIwLjI2Mzk0MiwgMC4zMDMzNDgsIDAuNjU3NzE3LCAxLjI0Nzg3LCAxLjgzNzQ0LCAzLjIxMjc1LCAzLjk5ODU5IiwgXAotICAgICAgICAgICIwLjI4MTE1NCwgMC4zMjA1ODQsIDAuNjc0ODQ5LCAxLjI2NDgxLCAxLjg1NDcxLCAzLjIzMDMyLCA0LjAxNTYzIiwgXAotICAgICAgICAgICIwLjI5NjA2NCwgMC4zMzU0MTgsIDAuNjg5Nzc4LCAxLjI3OTk4LCAxLjg2OTY3LCAzLjI0NDY3LCA0LjAzMDY5Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjQ3NDQ0MiwgMC41NTMxMDgsIDEuMjYyMDMsIDIuNDQ0OTYsIDMuNjI3OTYsIDYuMzg4NjIsIDcuOTY1ODEiLCBcCi0gICAgICAgICAgIjAuNDc0NDY5LCAwLjU1MzE3LCAxLjI2MjE4LCAyLjQ0NTAxLCAzLjYyNzczLCA2LjM4ODE3LCA3Ljk2NjU4IiwgXAotICAgICAgICAgICIwLjQ3NDQzMywgMC41NTMxMjEsIDEuMjYyMTQsIDIuNDQ0NjIsIDMuNjI3NjUsIDYuMzg4MzksIDcuOTY3IiwgXAotICAgICAgICAgICIwLjQ3NDM0OSwgMC41NTMwMDMsIDEuMjYyMDgsIDIuNDQ0OTEsIDMuNjI3NzQsIDYuMzg4LCA3Ljk2NTc0IiwgXAotICAgICAgICAgICIwLjQ3NDk4MiwgMC41NTMwODksIDEuMjYyMTgsIDIuNDQ0OTMsIDMuNjI3NzEsIDYuMzg4NCwgNy45NjY2NSIsIFwKLSAgICAgICAgICAiMC40Nzg5OTgsIDAuNTU1Njk2LCAxLjI2MjE2LCAyLjQ0NDc5LCAzLjYyNzc3LCA2LjM4OTM2LCA3Ljk2Njc1IiwgXAotICAgICAgICAgICIwLjQ4NDU1MywgMC41NjAwMDIsIDEuMjYyMTQsIDIuNDQ0OTQsIDMuNjI3NzMsIDYuMzg4NjgsIDcuOTY1ODEiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTU3MTE5LCAwLjE4MzAxLCAwLjQxNTE0LCAwLjgwMTcxOSwgMS4xODgxLCAyLjA4OTUyLCAyLjYwNTcyIiwgXAotICAgICAgICAgICIwLjE2NjYzOSwgMC4xOTI0NzksIDAuNDI0NzU4LCAwLjgxMTY2NywgMS4xOTgyMiwgMi4xMDAyNywgMi42MTQzNCIsIFwKLSAgICAgICAgICAiMC4xNzgxOTYsIDAuMjA0MDk2LCAwLjQzNjY0OCwgMC44MjMyMzUsIDEuMjA5OTYsIDIuMTExMDUsIDIuNjI2OTUiLCBcCi0gICAgICAgICAgIjAuMTg5Nzc4LCAwLjIxNTY3MywgMC40NDgwMjksIDAuODM0NTk2LCAxLjIyMTAzLCAyLjEyMjU2LCAyLjYzODM1IiwgXAotICAgICAgICAgICIwLjIwMTQxMiwgMC4yMjc1MTgsIDAuNDU5NjE4LCAwLjg0NjIxMSwgMS4yMzI3MSwgMi4xMzUxMSwgMi42NTAyNiIsIFwKLSAgICAgICAgICAiMC4yMjAxMTcsIDAuMjQ2MDY4LCAwLjQ3ODQ1OCwgMC44NjUxOTksIDEuMjUxNDUsIDIuMTUzNDUsIDIuNjY4OTYiLCBcCi0gICAgICAgICAgIjAuMjM2NzY3LCAwLjI2MjQ2NywgMC40OTQ2MzUsIDAuODgxMzc0LCAxLjI2NzczLCAyLjE2OTU2LCAyLjY4NDk1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI5ODI4NSwgMC4zNDg5MiwgMC44MDY5MjYsIDEuNTcwNjYsIDIuMzM0MDcsIDQuMTE2NDksIDUuMTMyNTciLCBcCi0gICAgICAgICAgIjAuMjk4MTM2LCAwLjM0ODkyMSwgMC44MDY5OCwgMS41NzAxLCAyLjMzMzI1LCA0LjExNDY2LCA1LjEzMTc2IiwgXAotICAgICAgICAgICIwLjI5ODA0NiwgMC4zNDg5NzcsIDAuODA3MzQsIDEuNTcwNzYsIDIuMzMzNjgsIDQuMTE0NCwgNS4xMzIzOSIsIFwKLSAgICAgICAgICAiMC4yOTgzNywgMC4zNDg5NDIsIDAuODA3MzI0LCAxLjU3MDA3LCAyLjMzMzEzLCA0LjExNjY1LCA1LjEzMjUiLCBcCi0gICAgICAgICAgIjAuMzAwNTQzLCAwLjM1MDIzOCwgMC44MDY5OCwgMS41NzAwNiwgMi4zMzM5MiwgNC4xMTYxMywgNS4xMzE3NSIsIFwKLSAgICAgICAgICAiMC4zMDY4NzEsIDAuMzU1NDM4LCAwLjgwNjg1OCwgMS41Njk5LCAyLjMzMzE1LCA0LjExMzk3LCA1LjEzMTY4IiwgXAotICAgICAgICAgICIwLjMxNDM0NywgMC4zNjE2MjYsIDAuODA3MDE2LCAxLjU3MDA0LCAyLjMzMzE2LCA0LjExNzE5LCA1LjEzMjM1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzU2NSwgMC4wMDM1NjUsIDAuMDAzNTY0LCAwLjAwMzU2MiwgMC4wMDM1NiwgMC4wMDM1NTUsIDAuMDAzNTUxIiwgXAotICAgICAgICAgICIwLjAwMzU1NywgMC4wMDM1NTgsIDAuMDAzNTU3LCAwLjAwMzU1NiwgMC4wMDM1NTQsIDAuMDAzNTQ5LCAwLjAwMzU0NiIsIFwKLSAgICAgICAgICAiMC4wMDM1NTQsIDAuMDAzNTU1LCAwLjAwMzU1NiwgMC4wMDM1NTQsIDAuMDAzNTUzLCAwLjAwMzU0NiwgMC4wMDM1NDMiLCBcCi0gICAgICAgICAgIjAuMDAzNTUyLCAwLjAwMzU1MywgMC4wMDM1NTQsIDAuMDAzNTU0LCAwLjAwMzU1MiwgMC4wMDM1NDcsIDAuMDAzNTQzIiwgXAotICAgICAgICAgICIwLjAwMzU1LCAwLjAwMzU1LCAwLjAwMzU1MiwgMC4wMDM1NTIsIDAuMDAzNTUxLCAwLjAwMzU0NiwgMC4wMDM1NDMiLCBcCi0gICAgICAgICAgIjAuMDAzNTQ4LCAwLjAwMzU0OSwgMC4wMDM1NTIsIDAuMDAzNTUyLCAwLjAwMzU1MSwgMC4wMDM1NDcsIDAuMDAzNTQzIiwgXAotICAgICAgICAgICIwLjAwMzU0NiwgMC4wMDM1NDcsIDAuMDAzNTUsIDAuMDAzNTUxLCAwLjAwMzU1LCAwLjAwMzU0NiwgMC4wMDM1NDMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDEwNzIsIDAuMDAxMDcxLCAwLjAwMTA3MSwgMC4wMDEwNywgMC4wMDEwNywgMC4wMDEwNjksIDAuMDAxMDY4IiwgXAotICAgICAgICAgICIwLjAwMTA1OSwgMC4wMDEwNTksIDAuMDAxMDYsIDAuMDAxMDYsIDAuMDAxMDU5LCAwLjAwMTA1OCwgMC4wMDEwNTciLCBcCi0gICAgICAgICAgIjAuMDAxMDU1LCAwLjAwMTA1NiwgMC4wMDEwNTcsIDAuMDAxMDU3LCAwLjAwMTA1NiwgMC4wMDEwNTUsIDAuMDAxMDU1IiwgXAotICAgICAgICAgICIwLjAwMTA1MywgMC4wMDEwNTMsIDAuMDAxMDU1LCAwLjAwMTA1NiwgMC4wMDEwNTUsIDAuMDAxMDU0LCAwLjAwMTA1MyIsIFwKLSAgICAgICAgICAiMC4wMDEwNTEsIDAuMDAxMDUxLCAwLjAwMTA1NCwgMC4wMDEwNTUsIDAuMDAxMDU1LCAwLjAwMTA1NCwgMC4wMDEwNTMiLCBcCi0gICAgICAgICAgIjAuMDAxMDQ4LCAwLjAwMTA0OSwgMC4wMDEwNTMsIDAuMDAxMDU0LCAwLjAwMTA1NCwgMC4wMDEwNTMsIDAuMDAxMDUzIiwgXAotICAgICAgICAgICIwLjAwMTA0NywgMC4wMDEwNDgsIDAuMDAxMDUyLCAwLjAwMTA1MywgMC4wMDEwNTQsIDAuMDAxMDUzLCAwLjAwMTA1MiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkExIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDMzOCwgMC4wMDMzOCwgMC4wMDMzNzksIDAuMDAzMzc3LCAwLjAwMzM3NiwgMC4wMDMzNzEsIDAuMDAzMzY2IiwgXAotICAgICAgICAgICIwLjAwMzM3MiwgMC4wMDMzNzIsIDAuMDAzMzcyLCAwLjAwMzM3MSwgMC4wMDMzNjksIDAuMDAzMzY1LCAwLjAwMzM2IiwgXAotICAgICAgICAgICIwLjAwMzM2OSwgMC4wMDMzNywgMC4wMDMzNywgMC4wMDMzNywgMC4wMDMzNjgsIDAuMDAzMzYyLCAwLjAwMzM2MSIsIFwKLSAgICAgICAgICAiMC4wMDMzNjcsIDAuMDAzMzY4LCAwLjAwMzM2OSwgMC4wMDMzNjgsIDAuMDAzMzY3LCAwLjAwMzM2MywgMC4wMDMzNiIsIFwKLSAgICAgICAgICAiMC4wMDMzNjUsIDAuMDAzMzY2LCAwLjAwMzM2OCwgMC4wMDMzNjgsIDAuMDAzMzY2LCAwLjAwMzM2MiwgMC4wMDMzNTkiLCBcCi0gICAgICAgICAgIjAuMDAzMzY0LCAwLjAwMzM2NCwgMC4wMDMzNjcsIDAuMDAzMzY3LCAwLjAwMzM2NiwgMC4wMDMzNjEsIDAuMDAzMzU5IiwgXAotICAgICAgICAgICIwLjAwMzM2MywgMC4wMDMzNjQsIDAuMDAzMzY2LCAwLjAwMzM2NiwgMC4wMDMzNjUsIDAuMDAzMzYxLCAwLjAwMzM1NyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDkxNSwgMC4wMDA5MTUsIDAuMDAwOTE1LCAwLjAwMDkxNiwgMC4wMDA5MTUsIDAuMDAwOTE0LCAwLjAwMDkxMyIsIFwKLSAgICAgICAgICAiMC4wMDA5MTEsIDAuMDAwOTEyLCAwLjAwMDkxMywgMC4wMDA5MTQsIDAuMDAwOTE0LCAwLjAwMDkxMywgMC4wMDA5MTIiLCBcCi0gICAgICAgICAgIjAuMDAwOTA2LCAwLjAwMDkwNywgMC4wMDA5MTEsIDAuMDAwOTEzLCAwLjAwMDkxMywgMC4wMDA5MTMsIDAuMDAwOTEyIiwgXAotICAgICAgICAgICIwLjAwMDkwMiwgMC4wMDA5MDQsIDAuMDAwOTEsIDAuMDAwOTEyLCAwLjAwMDkxMiwgMC4wMDA5MTIsIDAuMDAwOTExIiwgXAotICAgICAgICAgICIwLjAwMDg5OCwgMC4wMDA5LCAwLjAwMDkwOCwgMC4wMDA5MSwgMC4wMDA5MTEsIDAuMDAwOTExLCAwLjAwMDkxMSIsIFwKLSAgICAgICAgICAiMC4wMDA4OTMsIDAuMDAwODk1LCAwLjAwMDkwNSwgMC4wMDA5MDksIDAuMDAwOTEsIDAuMDAwOTEsIDAuMDAwOTEiLCBcCi0gICAgICAgICAgIjAuMDAwODg5LCAwLjAwMDg5MiwgMC4wMDA5MDIsIDAuMDAwOTA4LCAwLjAwMDkwOSwgMC4wMDA5MSwgMC4wMDA5MSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEyIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDMxODEsIDAuMDAzMTgxLCAwLjAwMzE4MSwgMC4wMDMxNzksIDAuMDAzMTc3LCAwLjAwMzE3MywgMC4wMDMxNjgiLCBcCi0gICAgICAgICAgIjAuMDAzMTcyLCAwLjAwMzE3MywgMC4wMDMxNzMsIDAuMDAzMTcxLCAwLjAwMzE3LCAwLjAwMzE2NiwgMC4wMDMxNjEiLCBcCi0gICAgICAgICAgIjAuMDAzMTY3LCAwLjAwMzE2OCwgMC4wMDMxNywgMC4wMDMxNywgMC4wMDMxNjgsIDAuMDAzMTY0LCAwLjAwMzE2IiwgXAotICAgICAgICAgICIwLjAwMzE2NiwgMC4wMDMxNjYsIDAuMDAzMTY5LCAwLjAwMzE2OCwgMC4wMDMxNjgsIDAuMDAzMTYyLCAwLjAwMzE1OSIsIFwKLSAgICAgICAgICAiMC4wMDMxNjUsIDAuMDAzMTYzLCAwLjAwMzE2OCwgMC4wMDMxNjgsIDAuMDAzMTY2LCAwLjAwMzE2MiwgMC4wMDMxNTkiLCBcCi0gICAgICAgICAgIjAuMDAzMTY2LCAwLjAwMzE2NiwgMC4wMDMxNjcsIDAuMDAzMTY3LCAwLjAwMzE2NiwgMC4wMDMxNjIsIDAuMDAzMTU5IiwgXAotICAgICAgICAgICIwLjAwMzE2OSwgMC4wMDMxNjksIDAuMDAzMTY4LCAwLjAwMzE2NywgMC4wMDMxNjcsIDAuMDAzMTYxLCAwLjAwMzE1OCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDY5MiwgMC4wMDA2OTIsIDAuMDAwNjkzLCAwLjAwMDY5NCwgMC4wMDA2OTMsIDAuMDAwNjkyLCAwLjAwMDY5MSIsIFwKLSAgICAgICAgICAiMC4wMDA2OTcsIDAuMDAwNjk4LCAwLjAwMDcwMiwgMC4wMDA3MDMsIDAuMDAwNzAzLCAwLjAwMDcwNCwgMC4wMDA3MDMiLCBcCi0gICAgICAgICAgIjAuMDAwNjkyLCAwLjAwMDY5NCwgMC4wMDA3MDEsIDAuMDAwNzA0LCAwLjAwMDcwNSwgMC4wMDA3MDUsIDAuMDAwNzA1IiwgXAotICAgICAgICAgICIwLjAwMDY4NiwgMC4wMDA2ODksIDAuMDAwNjk5LCAwLjAwMDcwMywgMC4wMDA3MDUsIDAuMDAwNzA1LCAwLjAwMDcwNSIsIFwKLSAgICAgICAgICAiMC4wMDA2OCwgMC4wMDA2ODQsIDAuMDAwNjk3LCAwLjAwMDcwMiwgMC4wMDA3MDQsIDAuMDAwNzA1LCAwLjAwMDcwNSIsIFwKLSAgICAgICAgICAiMC4wMDA2NzIsIDAuMDAwNjc2LCAwLjAwMDY5MywgMC4wMDA3LCAwLjAwMDcwMiwgMC4wMDA3MDQsIDAuMDAwNzA1IiwgXAotICAgICAgICAgICIwLjAwMDY2NiwgMC4wMDA2NzEsIDAuMDAwNjg5LCAwLjAwMDY5OCwgMC4wMDA3MDEsIDAuMDAwNzA0LCAwLjAwMDcwNCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDIzOTgsIDAuMDAyMzk4LCAwLjAwMjM5OSwgMC4wMDIzOTksIDAuMDAyMzk5LCAwLjAwMjM5OSwgMC4wMDIzOTkiLCBcCi0gICAgICAgICAgIjAuMDAyMzk5LCAwLjAwMjQwMSwgMC4wMDI0MDQsIDAuMDAyNDA2LCAwLjAwMjQwNywgMC4wMDI0MDcsIDAuMDAyNDA1IiwgXAotICAgICAgICAgICIwLjAwMjM5NSwgMC4wMDIzOTcsIDAuMDAyNDAyLCAwLjAwMjQwNCwgMC4wMDI0MDUsIDAuMDAyNDA2LCAwLjAwMjQwNyIsIFwKLSAgICAgICAgICAiMC4wMDIzOTEsIDAuMDAyMzkzLCAwLjAwMjQsIDAuMDAyNDA0LCAwLjAwMjQwNSwgMC4wMDI0MDUsIDAuMDAyNDA3IiwgXAotICAgICAgICAgICIwLjAwMjM4NywgMC4wMDIzOSwgMC4wMDIzOTksIDAuMDAyNDAzLCAwLjAwMjQwNSwgMC4wMDI0MDYsIDAuMDAyNDA3IiwgXAotICAgICAgICAgICIwLjAwMjM4MywgMC4wMDIzODUsIDAuMDAyMzk2LCAwLjAwMjQwMiwgMC4wMDI0MDQsIDAuMDAyNDA1LCAwLjAwMjQwNSIsIFwKLSAgICAgICAgICAiMC4wMDIzNzksIDAuMDAyMzgyLCAwLjAwMjM5NCwgMC4wMDI0LCAwLjAwMjQwMywgMC4wMDI0MDUsIDAuMDAyNDA2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxMDcyLCAwLjAwMTA3MSwgMC4wMDEwNzEsIDAuMDAxMDcxLCAwLjAwMTA3LCAwLjAwMTA2OSwgMC4wMDEwNjgiLCBcCi0gICAgICAgICAgIjAuMDAxMDU4LCAwLjAwMTA1OCwgMC4wMDEwNTksIDAuMDAxMDU4LCAwLjAwMTA1OCwgMC4wMDEwNTcsIDAuMDAxMDU2IiwgXAotICAgICAgICAgICIwLjAwMTA1NSwgMC4wMDEwNTUsIDAuMDAxMDU2LCAwLjAwMTA1NiwgMC4wMDEwNTYsIDAuMDAxMDU1LCAwLjAwMTA1NCIsIFwKLSAgICAgICAgICAiMC4wMDEwNTQsIDAuMDAxMDU1LCAwLjAwMTA1NSwgMC4wMDEwNTYsIDAuMDAxMDU1LCAwLjAwMTA1NCwgMC4wMDEwNTMiLCBcCi0gICAgICAgICAgIjAuMDAxMDU1LCAwLjAwMTA1NiwgMC4wMDEwNTYsIDAuMDAxMDU2LCAwLjAwMTA1NSwgMC4wMDEwNTQsIDAuMDAxMDUzIiwgXAotICAgICAgICAgICIwLjAwMTA1OCwgMC4wMDEwNTgsIDAuMDAxMDU3LCAwLjAwMTA1NiwgMC4wMDEwNTUsIDAuMDAxMDU0LCAwLjAwMTA1MyIsIFwKLSAgICAgICAgICAiMC4wMDEwNjMsIDAuMDAxMDYyLCAwLjAwMTA1OCwgMC4wMDEwNTcsIDAuMDAxMDU1LCAwLjAwMTA1NCwgMC4wMDEwNTMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyMjEyLCAwLjAwMjIxMiwgMC4wMDIyMTMsIDAuMDAyMjEzLCAwLjAwMjIxMywgMC4wMDIyMTMsIDAuMDAyMjEzIiwgXAotICAgICAgICAgICIwLjAwMjIxMywgMC4wMDIyMTQsIDAuMDAyMjE3LCAwLjAwMjIxOCwgMC4wMDIyMTksIDAuMDAyMjE5LCAwLjAwMjIxOSIsIFwKLSAgICAgICAgICAiMC4wMDIyMDksIDAuMDAyMjExLCAwLjAwMjIxNiwgMC4wMDIyMTksIDAuMDAyMjE5LCAwLjAwMjIyLCAwLjAwMjIyIiwgXAotICAgICAgICAgICIwLjAwMjIwNSwgMC4wMDIyMDcsIDAuMDAyMjE1LCAwLjAwMjIxOCwgMC4wMDIyMTksIDAuMDAyMjIsIDAuMDAyMjE5IiwgXAotICAgICAgICAgICIwLjAwMjIwMiwgMC4wMDIyMDIsIDAuMDAyMjEzLCAwLjAwMjIxNywgMC4wMDIyMTgsIDAuMDAyMjE5LCAwLjAwMjIyIiwgXAotICAgICAgICAgICIwLjAwMjE5NywgMC4wMDIyLCAwLjAwMjIxLCAwLjAwMjIxNSwgMC4wMDIyMTcsIDAuMDAyMjE5LCAwLjAwMjIxOSIsIFwKLSAgICAgICAgICAiMC4wMDIxOTQsIDAuMDAyMTk3LCAwLjAwMjIwOSwgMC4wMDIyMTQsIDAuMDAyMjE3LCAwLjAwMjIxOSwgMC4wMDIyMTkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDA5MTEsIDAuMDAwOTExLCAwLjAwMDkxMiwgMC4wMDA5MTEsIDAuMDAwOTExLCAwLjAwMDkxLCAwLjAwMDkwOSIsIFwKLSAgICAgICAgICAiMC4wMDA5MDcsIDAuMDAwOTA4LCAwLjAwMDkwOSwgMC4wMDA5MSwgMC4wMDA5MSwgMC4wMDA5MDksIDAuMDAwOTA4IiwgXAotICAgICAgICAgICIwLjAwMDkwMywgMC4wMDA5MDQsIDAuMDAwOTA3LCAwLjAwMDkwOCwgMC4wMDA5MDgsIDAuMDAwOTA4LCAwLjAwMDkwNyIsIFwKLSAgICAgICAgICAiMC4wMDA5MDIsIDAuMDAwOTAzLCAwLjAwMDkwNywgMC4wMDA5MDksIDAuMDAwOTA5LCAwLjAwMDkwOCwgMC4wMDA5MDgiLCBcCi0gICAgICAgICAgIjAuMDAwOTAxLCAwLjAwMDkwMiwgMC4wMDA5MDcsIDAuMDAwOTA4LCAwLjAwMDkwOCwgMC4wMDA5MDgsIDAuMDAwOTA4IiwgXAotICAgICAgICAgICIwLjAwMDkwMywgMC4wMDA5MDQsIDAuMDAwOTA3LCAwLjAwMDkwOCwgMC4wMDA5MDksIDAuMDAwOTA4LCAwLjAwMDkwNyIsIFwKLSAgICAgICAgICAiMC4wMDA5MDgsIDAuMDAwOTA3LCAwLjAwMDkwOCwgMC4wMDA5MDksIDAuMDAwOTA5LCAwLjAwMDkwOCwgMC4wMDA5MDgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyMDEzLCAwLjAwMjAxMywgMC4wMDIwMTQsIDAuMDAyMDE1LCAwLjAwMjAxNiwgMC4wMDIwMTQsIDAuMDAyMDE1IiwgXAotICAgICAgICAgICIwLjAwMjAxMywgMC4wMDIwMTQsIDAuMDAyMDE4LCAwLjAwMjAyLCAwLjAwMjAyLCAwLjAwMjAyLCAwLjAwMjAyIiwgXAotICAgICAgICAgICIwLjAwMjAwOCwgMC4wMDIwMSwgMC4wMDIwMTYsIDAuMDAyMDE5LCAwLjAwMjAyLCAwLjAwMjAyMSwgMC4wMDIwMjEiLCBcCi0gICAgICAgICAgIjAuMDAyMDAzLCAwLjAwMjAwNywgMC4wMDIwMTUsIDAuMDAyMDE4LCAwLjAwMjAyLCAwLjAwMjAyMSwgMC4wMDIwMjIiLCBcCi0gICAgICAgICAgIjAuMDAyMDAyLCAwLjAwMjAwNSwgMC4wMDIwMTQsIDAuMDAyMDE4LCAwLjAwMjAxOSwgMC4wMDIwMiwgMC4wMDIwMjEiLCBcCi0gICAgICAgICAgIjAuMDAyMDAyLCAwLjAwMjAwNCwgMC4wMDIwMTIsIDAuMDAyMDE3LCAwLjAwMjAxOSwgMC4wMDIwMiwgMC4wMDIwMjEiLCBcCi0gICAgICAgICAgIjAuMDAyMDA0LCAwLjAwMjAwNSwgMC4wMDIwMTIsIDAuMDAyMDE3LCAwLjAwMjAxOCwgMC4wMDIwMiwgMC4wMDIwMjEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDA2ODksIDAuMDAwNjg5LCAwLjAwMDY5MSwgMC4wMDA2OTEsIDAuMDAwNjksIDAuMDAwNjksIDAuMDAwNjg5IiwgXAotICAgICAgICAgICIwLjAwMDY5NSwgMC4wMDA2OTYsIDAuMDAwNywgMC4wMDA3MDIsIDAuMDAwNzAyLCAwLjAwMDcwMiwgMC4wMDA3MDIiLCBcCi0gICAgICAgICAgIjAuMDAwNjkyLCAwLjAwMDY5MywgMC4wMDA3LCAwLjAwMDcwMywgMC4wMDA3MDMsIDAuMDAwNzA0LCAwLjAwMDcwNCIsIFwKLSAgICAgICAgICAiMC4wMDA2ODgsIDAuMDAwNjksIDAuMDAwNjk5LCAwLjAwMDcwMywgMC4wMDA3MDQsIDAuMDAwNzA0LCAwLjAwMDcwNCIsIFwKLSAgICAgICAgICAiMC4wMDA2ODUsIDAuMDAwNjg3LCAwLjAwMDY5OCwgMC4wMDA3MDIsIDAuMDAwNzAzLCAwLjAwMDcwNCwgMC4wMDA3MDQiLCBcCi0gICAgICAgICAgIjAuMDAwNjg0LCAwLjAwMDY4NiwgMC4wMDA2OTYsIDAuMDAwNzAxLCAwLjAwMDcwMywgMC4wMDA3MDQsIDAuMDAwNzA0IiwgXAotICAgICAgICAgICIwLjAwMDY4NSwgMC4wMDA2ODcsIDAuMDAwNjk2LCAwLjAwMDcwMSwgMC4wMDA3MDMsIDAuMDAwNzA0LCAwLjAwMDcwNCIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBPUjJYTCAqCi0gKiAtLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoT1IyWEwpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4wNzI5MzEyOwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2NDk4OTU7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjQ3Mjk0OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDY0OTg5NTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyMDEsIDAuMDAwMjE0LCAwLjAwMDIxNywgMC4wMDAyMTgsIDAuMDAwMjE4LCAwLjAwMDIxOSwgMC4wMDAyMiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDI0MSwgMC4wMDAyNDEsIDAuMDAwMjQxLCAwLjAwMDI0MSwgMC4wMDAyNDEsIDAuMDAwMjQxLCAwLjAwMDI0MSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjQxMzExOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDY0MTIzMTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2NDEzMTE7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMDU5LCAwLjAwMDA1OSwgMC4wMDAwNTksIDAuMDAwMDU5LCAwLjAwMDA1OSwgMC4wMDAwNTksIDAuMDAwMDU5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMTY5LCAwLjAwMDE2OSwgMC4wMDAxNjksIDAuMDAwMTY5LCAwLjAwMDE2OSwgMC4wMDAxNjksIDAuMDAwMTY5Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMTUwOTA1OwotICAgIGZ1bmN0aW9uIDogIihBK0IpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTUwNzQsIDAuMTA5MjE5LCAwLjIzNjMyOSwgMC40NDgxNSwgMC42NTk5NSwgMS4xNTQxNiwgMS40MzY1MyIsIFwKLSAgICAgICAgICAiMC4xMDUyNzEsIDAuMTE5NDExLCAwLjI0NjU0NiwgMC40NTgzNjIsIDAuNjcwMjE2LCAxLjE2NDMzLCAxLjQ0Njc2IiwgXAotICAgICAgICAgICIwLjExNzA2OSwgMC4xMzEyMDUsIDAuMjU4MzQyLCAwLjQ3MDE2MiwgMC42ODIsIDEuMTc2MTQsIDEuNDU4NTQiLCBcCi0gICAgICAgICAgIjAuMTI2NjYxLCAwLjE0MDc5OSwgMC4yNjc5MzgsIDAuNDc5NzU1LCAwLjY5MTU0LCAxLjE4NTczLCAxLjQ2ODM2IiwgXAotICAgICAgICAgICIwLjEzNTE1OCwgMC4xNDkyOTcsIDAuMjc2NDI3LCAwLjQ4ODI2MiwgMC43MDAwNSwgMS4xOTQxOSwgMS40NzY3OCIsIFwKLSAgICAgICAgICAiMC4xNDY3MjksIDAuMTYwODU1LCAwLjI4ODAwOSwgMC40OTk4MjYsIDAuNzExNzA4LCAxLjIwNTk5LCAxLjQ4ODI5IiwgXAotICAgICAgICAgICIwLjE1NTQ3NiwgMC4xNjk2MTQsIDAuMjk2Nzc4LCAwLjUwODU3LCAwLjcyMDM2MywgMS4yMTQ2NiwgMS40OTcwMiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNTI3NzIsIDAuMTgxNDU1LCAwLjQ0MjUwMiwgMC44Nzc1MzIsIDEuMzEyNDIsIDIuMzI3MzgsIDIuOTA3NTEiLCBcCi0gICAgICAgICAgIjAuMTUyNTY3LCAwLjE4MTc0MywgMC40NDI0ODUsIDAuODc3Mzk2LCAxLjMxMzkyLCAyLjMyNzExLCAyLjkwNzU4IiwgXAotICAgICAgICAgICIwLjE1MjQ5MSwgMC4xODE1MjMsIDAuNDQyNDA1LCAwLjg3NzI1NCwgMS4zMTM2OSwgMi4zMjY4NSwgMi45MDc0IiwgXAotICAgICAgICAgICIwLjE1Mjg3NywgMC4xODE1NDcsIDAuNDQyODU3LCAwLjg3NzMzMiwgMS4zMTM1LCAyLjMyNzA0LCAyLjkxMDYxIiwgXAotICAgICAgICAgICIwLjE1MzAyMywgMC4xODE5MDEsIDAuNDQyNDk4LCAwLjg3ODIyNywgMS4zMTM2MywgMi4zMjkzMywgMi45MTA0MyIsIFwKLSAgICAgICAgICAiMC4xNTMxMDUsIDAuMTgxNzYsIDAuNDQyMTk0LCAwLjg3ODE4MSwgMS4zMTM3OCwgMi4zMjk5MywgMi45MTAyNSIsIFwKLSAgICAgICAgICAiMC4xNTMyNzcsIDAuMTgyMDIyLCAwLjQ0MjIzNCwgMC44NzgwOTEsIDEuMzEzNDIsIDIuMzI5NjYsIDIuOTEwMTkiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTA5Mjc0LCAwLjEyMzExNywgMC4yNDc1OTcsIDAuNDU1MjA0LCAwLjY2MjU1OSwgMS4xNDY3MSwgMS40MjQzIiwgXAotICAgICAgICAgICIwLjExNzU2LCAwLjEzMTM5NCwgMC4yNTU4ODEsIDAuNDYzNjM3LCAwLjY3MDgyNCwgMS4xNTQ4NywgMS40MzIyNyIsIFwKLSAgICAgICAgICAiMC4xMjcwNTksIDAuMTQwODk4LCAwLjI2NTM5NywgMC40NzI5OTgsIDAuNjgwNDM5LCAxLjE2NDcsIDEuNDQxMDMiLCBcCi0gICAgICAgICAgIjAuMTM1NDY3LCAwLjE0OTMxNSwgMC4yNzM4MzgsIDAuNDgxNDUxLCAwLjY4ODg5OCwgMS4xNzI3OCwgMS40NDk5MiIsIFwKLSAgICAgICAgICAiMC4xNDMwMTEsIDAuMTU2ODQxLCAwLjI4MTMyMiwgMC40ODg4MjEsIDAuNjk2MzY1LCAxLjE4MDQ0LCAxLjQ1ODEiLCBcCi0gICAgICAgICAgIjAuMTUzMjQ4LCAwLjE2NzA3MSwgMC4yOTE1NDQsIDAuNDk5MDA1LCAwLjcwNjkwMiwgMS4xOTA4NSwgMS40NjcxNyIsIFwKLSAgICAgICAgICAiMC4xNjA5MzksIDAuMTc0ODQzLCAwLjI5OTMyNSwgMC41MDY3NDMsIDAuNzE0MjY1LCAxLjE5ODIxLCAxLjQ3NDk1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE0NzM2MSwgMC4xNzQ2MjksIDAuNDI0NDksIDAuODM5MjYyLCAxLjI1NDQ1LCAyLjIyNzcyLCAyLjc4MjgiLCBcCi0gICAgICAgICAgIjAuMTQ3MjQ0LCAwLjE3NDgyNywgMC40MjQ0NTQsIDAuODM5Nzk2LCAxLjI1NDY3LCAyLjIyNDcsIDIuNzc5MzIiLCBcCi0gICAgICAgICAgIjAuMTQ3MzU4LCAwLjE3NDgzMSwgMC40MjQ0OTMsIDAuODQwMDc3LCAxLjI1NTY0LCAyLjIyNzkzLCAyLjc3ODQxIiwgXAotICAgICAgICAgICIwLjE0Nzc1NCwgMC4xNzUyMTksIDAuNDIzMjk0LCAwLjgzOTQ5MSwgMS4yNTUyOCwgMi4yMjUwNCwgMi43ODAzNiIsIFwKLSAgICAgICAgICAiMC4xNDc4ODIsIDAuMTc1NDg1LCAwLjQyNDQ0MSwgMC44Mzg5NTYsIDEuMjU1NzQsIDIuMjI3NDgsIDIuNzgyNjkiLCBcCi0gICAgICAgICAgIjAuMTQ4MzQ3LCAwLjE3NTcxLCAwLjQyNDU0MiwgMC44NDA5MywgMS4yNTU0OSwgMi4yMjc4MywgMi43Nzg5MiIsIFwKLSAgICAgICAgICAiMC4xNDg2OTksIDAuMTc2MDQ2LCAwLjQyNDczMiwgMC44NDE0MiwgMS4yNTQ3MywgMi4yMjUzNiwgMi43ODcwOCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTI4LCAwLjEwNjkxMSwgMC4yMzQwNiwgMC40NDU5LCAwLjY1ODE0LCAxLjE1MjUyLCAxLjQzNDg5IiwgXAotICAgICAgICAgICIwLjEwMjcyMSwgMC4xMTY4MzMsIDAuMjQ0MDE3LCAwLjQ1NTg0NSwgMC42NjgyMjksIDEuMTYyNjksIDEuNDQ0NiIsIFwKLSAgICAgICAgICAiMC4xMTM4OCwgMC4xMjgwNDcsIDAuMjU1Mjc0LCAwLjQ2NzA4MywgMC42Nzg5ODUsIDEuMTczNzksIDEuNDU2MzUiLCBcCi0gICAgICAgICAgIjAuMTIyOTAzLCAwLjEzNzAzMywgMC4yNjQxOTUsIDAuNDc2MzU5LCAwLjY4ODI3OCwgMS4xODI2NiwgMS40NjYyMyIsIFwKLSAgICAgICAgICAiMC4xMzA1MzQsIDAuMTQ0NjUzLCAwLjI3MTgwNywgMC40ODM3OTMsIDAuNjk1NjQ2LCAxLjE5MDg0LCAxLjQ3MjUiLCBcCi0gICAgICAgICAgIjAuMTQxMDMyLCAwLjE1NDcxLCAwLjI4MTg3MSwgMC40OTM4NzgsIDAuNzA1ODMzLCAxLjIwMDA2LCAxLjQ4MjU3IiwgXAotICAgICAgICAgICIwLjE0ODE3OCwgMC4xNjIzNTIsIDAuMjg5NTA5LCAwLjUwMTQwMiwgMC43MTMzMjcsIDEuMjA3NTksIDEuNDkwMjIiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTUyMywgMC4xODE2MzIsIDAuNDQyNzcsIDAuODc4MjA4LCAxLjMxMTg3LCAyLjMyNjQ2LCAyLjkwNjMzIiwgXAotICAgICAgICAgICIwLjE1MjI5NSwgMC4xODE2MDIsIDAuNDQyMzc1LCAwLjg3NzM4NSwgMS4zMTE2NywgMi4zMjY1MSwgMi45MTAxNiIsIFwKLSAgICAgICAgICAiMC4xNTI2NTQsIDAuMTgxMjI3LCAwLjQ0MjE1NCwgMC44NzgyMzYsIDEuMzEzNTksIDIuMzI3ODIsIDIuOTA2MTkiLCBcCi0gICAgICAgICAgIjAuMTUyNzk0LCAwLjE4MTM3NCwgMC40NDMwMjQsIDAuODc2OTgzLCAxLjMxMTg1LCAyLjMyNzcyLCAyLjkwNzQiLCBcCi0gICAgICAgICAgIjAuMTUyODk1LCAwLjE4MTYwOCwgMC40NDI5MzksIDAuODc3NTUxLCAxLjMxMTMsIDIuMzI2MTEsIDIuOTA5ODciLCBcCi0gICAgICAgICAgIjAuMTUzMzY5LCAwLjE4MTg1LCAwLjQ0MzExNywgMC44NzcwNTksIDEuMzExNzYsIDIuMzI5NTgsIDIuOTA0OTYiLCBcCi0gICAgICAgICAgIjAuMTUzNDY1LCAwLjE4MjA1NywgMC40NDIxNTQsIDAuODc4NTQ1LCAxLjMxMTUsIDIuMzI1ODIsIDIuOTEwMzUiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTA2MjMxLCAwLjEyMDA3OSwgMC4yNDQ1ODEsIDAuNDUyMTE5LCAwLjY1OTcwMiwgMS4xNDQ0NywgMS40MjEwMSIsIFwKLSAgICAgICAgICAiMC4xMTQ5ODgsIDAuMTI4ODI5LCAwLjI1MzMzMywgMC40NjA4MjMsIDAuNjY4MzYsIDEuMTUyMzMsIDEuNDI4NzkiLCBcCi0gICAgICAgICAgIjAuMTI1OTE1LCAwLjEzOTc1OSwgMC4yNjQyNzcsIDAuNDcxODc2LCAwLjY3OTQ2NCwgMS4xNjM1MSwgMS40NDAyIiwgXAotICAgICAgICAgICIwLjEzNTc5NiwgMC4xNDk2MzcsIDAuMjc0MTk4LCAwLjQ4MTczOCwgMC42ODkxMjIsIDEuMTczMjIsIDEuNDUwOTQiLCBcCi0gICAgICAgICAgIjAuMTQzNDg5LCAwLjE1NzMxNSwgMC4yODE3OTcsIDAuNDg5MzkyLCAwLjY5Njg0NywgMS4xODA4NiwgMS40NTg0MSIsIFwKLSAgICAgICAgICAiMC4xNTQ4MTMsIDAuMTY4NjIsIDAuMjkyOTc2LCAwLjUwMDQ3MSwgMC43MDgwMzQsIDEuMTkyMTcsIDEuNDY4NjYiLCBcCi0gICAgICAgICAgIjAuMTYzMDEsIDAuMTc2OTcxLCAwLjMwMTUwMywgMC41MDg4ODQsIDAuNzE2NjM3LCAxLjIwMDI5LCAxLjQ3NzAyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE0NzMwMywgMC4xNzQ3OTQsIDAuNDI0NTE2LCAwLjgzOTk4MSwgMS4yNTUyMiwgMi4yMjc3LCAyLjc3OTIxIiwgXAotICAgICAgICAgICIwLjE0NzMyLCAwLjE3NDc5NCwgMC40MjM3NjksIDAuODQwMzgyLCAxLjI1NTg5LCAyLjIzMDY1LCAyLjc3OTc5IiwgXAotICAgICAgICAgICIwLjE0NzMxMywgMC4xNzQ4NTEsIDAuNDI0NTA3LCAwLjg0MDQxNSwgMS4yNTUwOSwgMi4yMjc0MSwgMi43ODA2NSIsIFwKLSAgICAgICAgICAiMC4xNDc4MzMsIDAuMTc1MjY4LCAwLjQyMzQ2MiwgMC44Mzk0MjUsIDEuMjU0NSwgMi4yMjg2NSwgMi43ODI2NiIsIFwKLSAgICAgICAgICAiMC4xNDgwODIsIDAuMTc1NTAyLCAwLjQyNDIyLCAwLjg0MDQzNCwgMS4yNTU3LCAyLjIyNDM5LCAyLjc4MjA4IiwgXAotICAgICAgICAgICIwLjE0ODY0NywgMC4xNzU5NDEsIDAuNDI0ODU4LCAwLjg0MTQ1LCAxLjI1NTc4LCAyLjIyOTQsIDIuNzc4ODQiLCBcCi0gICAgICAgICAgIjAuMTQ4ODgzLCAwLjE3NjAzNywgMC40MjQxODQsIDAuODM5NTI4LCAxLjI1NTEsIDIuMjMxODIsIDIuNzc5MjgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDA5NDksIDAuMDAwOTQ5LCAwLjAwMDk1LCAwLjAwMDk0OSwgMC4wMDA5NDksIDAuMDAwOTUxLCAwLjAwMDk1MSIsIFwKLSAgICAgICAgICAiMC4wMDA5MjcsIDAuMDAwOTI3LCAwLjAwMDkyOSwgMC4wMDA5MywgMC4wMDA5MywgMC4wMDA5MywgMC4wMDA5MyIsIFwKLSAgICAgICAgICAiMC4wMDA5MjgsIDAuMDAwOTI5LCAwLjAwMDkzMiwgMC4wMDA5MzMsIDAuMDAwOTMzLCAwLjAwMDkzNCwgMC4wMDA5MzMiLCBcCi0gICAgICAgICAgIjAuMDAwOTM3LCAwLjAwMDkzOCwgMC4wMDA5NDEsIDAuMDAwOTQyLCAwLjAwMDk0MywgMC4wMDA5NDMsIDAuMDAwOTQzIiwgXAotICAgICAgICAgICIwLjAwMDkzNSwgMC4wMDA5MzYsIDAuMDAwOTQsIDAuMDAwOTQyLCAwLjAwMDk0MywgMC4wMDA5NDIsIDAuMDAwOTQzIiwgXAotICAgICAgICAgICIwLjAwMDk1NSwgMC4wMDA5NTYsIDAuMDAwOTYxLCAwLjAwMDk2MywgMC4wMDA5NjQsIDAuMDAwOTY0LCAwLjAwMDk2NCIsIFwKLSAgICAgICAgICAiMC4wMDA5NzYsIDAuMDAwOTc4LCAwLjAwMDk4MywgMC4wMDA5ODUsIDAuMDAwOTg2LCAwLjAwMDk4NiwgMC4wMDA5ODYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDIwNjIsIDAuMDAyMDYzLCAwLjAwMjA2NSwgMC4wMDIwNjUsIDAuMDAyMDY2LCAwLjAwMjA2NiwgMC4wMDIwNjYiLCBcCi0gICAgICAgICAgIjAuMDAyMDQ0LCAwLjAwMjA0NSwgMC4wMDIwNDcsIDAuMDAyMDQ4LCAwLjAwMjA0OCwgMC4wMDIwNDksIDAuMDAyMDQ5IiwgXAotICAgICAgICAgICIwLjAwMjAzOCwgMC4wMDIwMzksIDAuMDAyMDQyLCAwLjAwMjA0MywgMC4wMDIwNDQsIDAuMDAyMDQ0LCAwLjAwMjA0NCIsIFwKLSAgICAgICAgICAiMC4wMDIwMzcsIDAuMDAyMDM2LCAwLjAwMjA0MSwgMC4wMDIwNDIsIDAuMDAyMDQzLCAwLjAwMjA0MywgMC4wMDIwNDMiLCBcCi0gICAgICAgICAgIjAuMDAyMDM1LCAwLjAwMjAzNiwgMC4wMDIwNDEsIDAuMDAyMDQzLCAwLjAwMjA0MywgMC4wMDIwNDQsIDAuMDAyMDQ0IiwgXAotICAgICAgICAgICIwLjAwMjA0LCAwLjAwMjA0MSwgMC4wMDIwNDcsIDAuMDAyMDQ5LCAwLjAwMjA0OSwgMC4wMDIwNSwgMC4wMDIwNSIsIFwKLSAgICAgICAgICAiMC4wMDIwNDYsIDAuMDAyMDQ3LCAwLjAwMjA1NCwgMC4wMDIwNTYsIDAuMDAyMDU3LCAwLjAwMjA1NywgMC4wMDIwNTciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDA4MDMsIDAuMDAwODAzLCAwLjAwMDgwNSwgMC4wMDA4MDUsIDAuMDAwODA1LCAwLjAwMDgwNSwgMC4wMDA4MDUiLCBcCi0gICAgICAgICAgIjAuMDAwNzcxLCAwLjAwMDc3MiwgMC4wMDA3NzUsIDAuMDAwNzc1LCAwLjAwMDc3NiwgMC4wMDA3NzYsIDAuMDAwNzc2IiwgXAotICAgICAgICAgICIwLjAwMDc2MSwgMC4wMDA3NjIsIDAuMDAwNzY3LCAwLjAwMDc2OSwgMC4wMDA3NjksIDAuMDAwNzY5LCAwLjAwMDc2OSIsIFwKLSAgICAgICAgICAiMC4wMDA3NjUsIDAuMDAwNzY3LCAwLjAwMDc3MiwgMC4wMDA3NzQsIDAuMDAwNzc1LCAwLjAwMDc3NSwgMC4wMDA3NzUiLCBcCi0gICAgICAgICAgIjAuMDAwNzc3LCAwLjAwMDc3OSwgMC4wMDA3ODQsIDAuMDAwNzg3LCAwLjAwMDc4OCwgMC4wMDA3ODksIDAuMDAwNzg5IiwgXAotICAgICAgICAgICIwLjAwMDgxMiwgMC4wMDA4MTMsIDAuMDAwODIsIDAuMDAwODIzLCAwLjAwMDgyNCwgMC4wMDA4MjUsIDAuMDAwODI2IiwgXAotICAgICAgICAgICIwLjAwMDgxOCwgMC4wMDA4MTksIDAuMDAwODI3LCAwLjAwMDgzMiwgMC4wMDA4MzMsIDAuMDAwODM1LCAwLjAwMDgzNSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTg2OSwgMC4wMDE4NywgMC4wMDE4NzQsIDAuMDAxODc1LCAwLjAwMTg3NSwgMC4wMDE4NzUsIDAuMDAxODc2IiwgXAotICAgICAgICAgICIwLjAwMTg0NywgMC4wMDE4NDgsIDAuMDAxODUyLCAwLjAwMTg1NCwgMC4wMDE4NTQsIDAuMDAxODU0LCAwLjAwMTg1NSIsIFwKLSAgICAgICAgICAiMC4wMDE4NDgsIDAuMDAxODQ5LCAwLjAwMTg1NCwgMC4wMDE4NTYsIDAuMDAxODU3LCAwLjAwMTg1NywgMC4wMDE4NTgiLCBcCi0gICAgICAgICAgIjAuMDAxODU0LCAwLjAwMTg1MiwgMC4wMDE4NTgsIDAuMDAxODYsIDAuMDAxODYxLCAwLjAwMTg2MiwgMC4wMDE4NjIiLCBcCi0gICAgICAgICAgIjAuMDAxODU4LCAwLjAwMTg2LCAwLjAwMTg2NiwgMC4wMDE4NjksIDAuMDAxODcsIDAuMDAxODcxLCAwLjAwMTg3MSIsIFwKLSAgICAgICAgICAiMC4wMDE4NzUsIDAuMDAxODc3LCAwLjAwMTg4NCwgMC4wMDE4ODgsIDAuMDAxODg5LCAwLjAwMTg4OSwgMC4wMDE4OTEiLCBcCi0gICAgICAgICAgIjAuMDAxODk2LCAwLjAwMTg5NywgMC4wMDE5MDYsIDAuMDAxOTA4LCAwLjAwMTkxMSwgMC4wMDE5MTIsIDAuMDAxOTEzIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IE9SM1gyICoKLSAqIC0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChPUjNYMikgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjE1MDgwNDsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjU2MzkyOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDY1Mjk2OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDY1NjM5MjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxOTYsIDAuMDAwMjA3LCAwLjAwMDIxMSwgMC4wMDAyMTMsIDAuMDAwMjE0LCAwLjAwMDIxNCwgMC4wMDAyMTQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA0MDEsIDAuMDAwNDAxLCAwLjAwMDQwMSwgMC4wMDA0MDEsIDAuMDAwNDAxLCAwLjAwMDQwMSwgMC4wMDA0MDEiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY1NTY4MTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2NTI5NDk7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjU1NjgxOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDE5NCwgMC4wMDAyMTMsIDAuMDAwMjE2LCAwLjAwMDIxNywgMC4wMDAyMTksIDAuMDAwMjIsIDAuMDAwMjIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyNDEsIDAuMDAwMjQyLCAwLjAwMDI0MiwgMC4wMDAyNDIsIDAuMDAwMjQyLCAwLjAwMDI0MiwgMC4wMDAyNDIiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEMpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY0MzgwNTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2NDM4MDU7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjQzNzc5OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDA2MSwgMC4wMDAwNjEsIDAuMDAwMDYxLCAwLjAwMDA2MSwgMC4wMDAwNjEsIDAuMDAwMDYxLCAwLjAwMDA2MSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDE5NywgMC4wMDAxOTcsIDAuMDAwMTk3LCAwLjAwMDE5NywgMC4wMDAxOTcsIDAuMDAwMTk3LCAwLjAwMDE5NyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjUxNDI0MzsKLSAgICBmdW5jdGlvbiA6ICIoKEErQikrQykiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2MTMzNSwgMC4xNjM3NTEsIDAuMjQ1MTYsIDAuMzQ2ODAyLCAwLjQ0ODQ0NywgMC41NTAxMjYsIDAuNjUxNzA2IiwgXAotICAgICAgICAgICIwLjA3MTQ0OSwgMC4xNzM5MDYsIDAuMjU1MzAyLCAwLjM1Njk2NCwgMC40NTg2MTksIDAuNTYwMjM2LCAwLjY2MTg1MSIsIFwKLSAgICAgICAgICAiMC4wODQzNTYsIDAuMTg2Nzc0LCAwLjI2ODE3NiwgMC4zNjk4NTcsIDAuNDcxNDgsIDAuNTczMTA3LCAwLjY3NDczIiwgXAotICAgICAgICAgICIwLjA5Njc2MiwgMC4xOTkxNzQsIDAuMjgwNjA3LCAwLjM4MjIzNCwgMC40ODM4NzYsIDAuNTg1NTE0LCAwLjY4NzE2NiIsIFwKLSAgICAgICAgICAiMC4xMDgyMzgsIDAuMjEwNzE2LCAwLjI5MjEyNywgMC4zOTM3NzEsIDAuNDk1NDE4LCAwLjU5NzA0OCwgMC42OTg2OCIsIFwKLSAgICAgICAgICAiMC4xMjQyMDMsIDAuMjI2ODA0LCAwLjMwODIyMiwgMC40MDk4NiwgMC41MTE0ODQsIDAuNjEzMTA5LCAwLjcxNDcyNyIsIFwKLSAgICAgICAgICAiMC4xMzYyMTcsIDAuMjM5MDExLCAwLjMyMDM4NiwgMC40MjIwNiwgMC41MjM2OSwgMC42MjUzNDYsIDAuNzI2OTI1Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1MjU0MSwgMC4yNTg5MSwgMC40MjY2NDcsIDAuNjM2MzE2LCAwLjg0NTkzNiwgMS4wNTYwOCwgMS4yNjQyNiIsIFwKLSAgICAgICAgICAiMC4wNTI1MDMsIDAuMjU4OTksIDAuNDI2NTc5LCAwLjYzNjI4NywgMC44NDYxMDEsIDEuMDU0NzcsIDEuMjY1NjciLCBcCi0gICAgICAgICAgIjAuMDUyNTA2LCAwLjI1ODk5LCAwLjQyNTk2LCAwLjYzNTQxNywgMC44NDUzMjEsIDEuMDU0NzMsIDEuMjY0MjMiLCBcCi0gICAgICAgICAgIjAuMDUyOTEyLCAwLjI1ODk3NywgMC40MjU4NjIsIDAuNjM2MjI2LCAwLjg0NTAzOSwgMS4wNTQ4LCAxLjI2NTYxIiwgXAotICAgICAgICAgICIwLjA1MzcyMywgMC4yNTkwMzQsIDAuNDI1OTgzLCAwLjYzNjIxNywgMC44NDUxMjEsIDEuMDU1NSwgMS4yNjQyNSIsIFwKLSAgICAgICAgICAiMC4wNTU0NzQsIDAuMjU5MjQ3LCAwLjQyNTkzOCwgMC42MzUxOTQsIDAuODQ1OTc5LCAxLjA1NTc1LCAxLjI2NTQ4IiwgXAotICAgICAgICAgICIwLjA1NzQ5OCwgMC4yNTk0NDQsIDAuNDI2MjMzLCAwLjYzNTQxNywgMC44NDYwMTUsIDEuMDU1ODYsIDEuMjY1NTMiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTE4MTIzLCAwLjIyOTQ3NSwgMC4zMTI0OTcsIDAuNDE1OTU0LCAwLjUxOTQxMywgMC42MjI4NzksIDAuNzI2MzU2IiwgXAotICAgICAgICAgICIwLjEyNjM2NCwgMC4yMzc3MDcsIDAuMzIwNzA5LCAwLjQyNDIxMywgMC41Mjc2MzksIDAuNjMxMTI2LCAwLjczNDU5NCIsIFwKLSAgICAgICAgICAiMC4xMzUwMTgsIDAuMjQ2MjU4LCAwLjMyOTI3LCAwLjQzMjczOCwgMC41MzYxODQsIDAuNjM5NzQ1LCAwLjc0MzA0NyIsIFwKLSAgICAgICAgICAiMC4xNDMwNjQsIDAuMjU0MjUzLCAwLjMzNzI0MiwgMC40NDA3MiwgMC41NDQxNjMsIDAuNjQ3NzQzLCAwLjc1MTA3NSIsIFwKLSAgICAgICAgICAiMC4xNTA3NTIsIDAuMjYxODM4LCAwLjM0NDg1MSwgMC40NDgzMjQsIDAuNTUxNzczLCAwLjY1NTMzNiwgMC43NTg2NjQiLCBcCi0gICAgICAgICAgIjAuMTYyMzc0LCAwLjI3Mzc0MiwgMC4zNTY3MzIsIDAuNDYwMjQ1LCAwLjU2MzY5NCwgMC42NjcwOTksIDAuNzcwNTg4IiwgXAotICAgICAgICAgICIwLjE3MTg3OCwgMC4yODMzNTgsIDAuMzY2Mzc1LCAwLjQ2OTgzNSwgMC41NzMyNjksIDAuNjc2Nzc3LCAwLjc4MDIxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2ODQ4MiwgMC4yNjc3NCwgMC40MzIwODEsIDAuNjQwMTA5LCAwLjg0NzU1MywgMS4wNTkyMiwgMS4yNjU1NiIsIFwKLSAgICAgICAgICAiMC4wNjgzOTgsIDAuMjY3NzE0LCAwLjQzMjA3OSwgMC42NDA3NDUsIDAuODQ5NTgxLCAxLjA1OTQyLCAxLjI2NTUiLCBcCi0gICAgICAgICAgIjAuMDY4MTM3LCAwLjI2NzY0NywgMC40MzIxNjcsIDAuNjQwNTYxLCAwLjg0ODg0OSwgMS4wNTYyOSwgMS4yNjg2OSIsIFwKLSAgICAgICAgICAiMC4wNjc5NDUsIDAuMjY3NzQ3LCAwLjQzMjI1NiwgMC42NDA1NDksIDAuODQ5MTkyLCAxLjA1NjE1LCAxLjI2ODk0IiwgXAotICAgICAgICAgICIwLjA2ODE1OCwgMC4yNjc2NDksIDAuNDMyMjM1LCAwLjY0MDUyNiwgMC44NDg4MjMsIDEuMDU2MjgsIDEuMjY2NTciLCBcCi0gICAgICAgICAgIjAuMDY4NzQxLCAwLjI2NzkwNiwgMC40MzI2NDIsIDAuNjQwNzg5LCAwLjg0OTc3MywgMS4wNTcyMywgMS4yNjkwMyIsIFwKLSAgICAgICAgICAiMC4wNjk2NDcsIDAuMjY4MDc3LCAwLjQzMjgzMywgMC42NDA2ODcsIDAuODQ5NTcxLCAxLjA1NjY3LCAxLjI2OTA2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1ODk4MiwgMC4xNjEyMDEsIDAuMjQyNTU4LCAwLjM0NDE5NywgMC40NDU4NTksIDAuNTQ3NDIxLCAwLjY0OTA1NyIsIFwKLSAgICAgICAgICAiMC4wNjkzMDEsIDAuMTcxNTI3LCAwLjI1Mjg4NiwgMC4zNTQ1NDYsIDAuNDU2MTMyLCAwLjU1Nzc0LCAwLjY1OTM4NiIsIFwKLSAgICAgICAgICAiMC4wODIxMjYsIDAuMTg0MzY2LCAwLjI2NTczNSwgMC4zNjczNTksIDAuNDY4OTg2LCAwLjU3MDY1MywgMC42NzIyMzIiLCBcCi0gICAgICAgICAgIjAuMDk0MTksIDAuMTk2NDUxLCAwLjI3NzgzLCAwLjM3OTQ0NSwgMC40ODEwNzYsIDAuNTgyNjg5LCAwLjY4NDMxIiwgXAotICAgICAgICAgICIwLjEwNTA1MSwgMC4yMDczMTEsIDAuMjg4NjY2LCAwLjM5MDI4NiwgMC40OTE5MDYsIDAuNTkzNTM1LCAwLjY5NTEzNCIsIFwKLSAgICAgICAgICAiMC4xMjA2ODIsIDAuMjIzMTIyLCAwLjMwNDQ2NywgMC40MDYxMTIsIDAuNTA3NywgMC42MDk0MDksIDAuNzEwOTE1IiwgXAotICAgICAgICAgICIwLjEzMjU2MSwgMC4yMzUxNDUsIDAuMzE2NDgsIDAuNDE4MTAyLCAwLjUxOTczOSwgMC42MjEzNjIsIDAuNzIyOTY4Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1MjAxMiwgMC4yNTg2MDQsIDAuNDI2Mzk1LCAwLjYzNDMwMywgMC44NDYxNjUsIDEuMDU0NTcsIDEuMjY0MTMiLCBcCi0gICAgICAgICAgIjAuMDUyMDA4LCAwLjI1ODM1MiwgMC40MjYzNjgsIDAuNjM2MjA0LCAwLjg0NTA2LCAxLjA1NTczLCAxLjI2NDA4IiwgXAotICAgICAgICAgICIwLjA1MjEwOCwgMC4yNTg2NSwgMC40MjYzNjQsIDAuNjM1NDMxLCAwLjg0Mzk1OCwgMS4wNTU5LCAxLjI2NDA5IiwgXAotICAgICAgICAgICIwLjA1MjU5NCwgMC4yNTg2NjgsIDAuNDI2MzI0LCAwLjYzNTM0NCwgMC44NDQ5ODksIDEuMDU0NjMsIDEuMjY0MjciLCBcCi0gICAgICAgICAgIjAuMDUzNzE1LCAwLjI1ODM2NSwgMC40MjU3MiwgMC42MzYwMjIsIDAuODQ0ODkzLCAxLjA1NDU1LCAxLjI2NDA2IiwgXAotICAgICAgICAgICIwLjA1NTY0NiwgMC4yNTg2NTgsIDAuNDI2MzcxLCAwLjYzNjA4OSwgMC44NDU4MDcsIDEuMDU0MDgsIDEuMjYzOTMiLCBcCi0gICAgICAgICAgIjAuMDU3MDg4LCAwLjI1OTI4OCwgMC40MjYwMzQsIDAuNjM1OTk5LCAwLjg0NTgxLCAxLjA1NTY0LCAxLjI2NTQzIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExNDcyNSwgMC4yMjU4MDgsIDAuMzA4ODExLCAwLjQxMjI4LCAwLjUxNTcxMSwgMC42MTkyMjEsIDAuNzIyNjQyIiwgXAotICAgICAgICAgICIwLjEyMjc0MSwgMC4yMzQwNTMsIDAuMzE3MDYsIDAuNDIwNTM3LCAwLjUyMzk3MiwgMC42Mjc0NTksIDAuNzMwODk4IiwgXAotICAgICAgICAgICIwLjEzMjQ0OCwgMC4yNDM2OTgsIDAuMzI2NzE3LCAwLjQzMDE5LCAwLjUzMzYzOCwgMC42MzcyLCAwLjc0MDU1NyIsIFwKLSAgICAgICAgICAiMC4xNDIxMDUsIDAuMjUzMywgMC4zMzYzMDQsIDAuNDM5Nzk4LCAwLjU0MzI2MiwgMC42NDY4MTgsIDAuNzUwMTQzIiwgXAotICAgICAgICAgICIwLjE1MTQ3NCwgMC4yNjI2NTYsIDAuMzQ1NjU5LCAwLjQ0OTE1MSwgMC41NTI2NCwgMC42NTYxNzUsIDAuNzU5NDk4IiwgXAotICAgICAgICAgICIwLjE2NjA5OCwgMC4yNzczNzgsIDAuMzYwMzczLCAwLjQ2Mzg1LCAwLjU2NzI4MywgMC42NzA4MDgsIDAuNzc0MjA4IiwgXAotICAgICAgICAgICIwLjE3NzYwOCwgMC4yODg4MzUsIDAuMzcxODUzLCAwLjQ3NTMzNCwgMC41Nzg3NzQsIDAuNjgyMjc5LCAwLjc4NTcxOCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjgxNSwgMC4yNjc4MTIsIDAuNDMyMzA2LCAwLjY0MDU4OCwgMC44NDk0ODYsIDEuMDU2ODUsIDEuMjY5MDMiLCBcCi0gICAgICAgICAgIjAuMDY4MjcyLCAwLjI2Nzc0MiwgMC40MzIxMDgsIDAuNjQwNTMyLCAwLjg0OTQyMywgMS4wNTY0NywgMS4yNjg5IiwgXAotICAgICAgICAgICIwLjA2ODEwMywgMC4yNjc2MzgsIDAuNDMyMjA3LCAwLjY0MDU1OSwgMC44NDg4MDYsIDEuMDU2MywgMS4yNjY4NCIsIFwKLSAgICAgICAgICAiMC4wNjc5MywgMC4yNjc3MjksIDAuNDMyMjE5LCAwLjYzOTQ1OSwgMC44NDc5MTgsIDEuMDU2NzksIDEuMjY4OTYiLCBcCi0gICAgICAgICAgIjAuMDY4MzksIDAuMjY3ODQ4LCAwLjQzMjIzOCwgMC42Mzk0NjcsIDAuODQ5ODUyLCAxLjA1NjUyLCAxLjI2ODk1IiwgXAotICAgICAgICAgICIwLjA2OTEzNSwgMC4yNjgwOTYsIDAuNDMyMzQ0LCAwLjY0MDYwMiwgMC44NDk1MTcsIDEuMDU3MiwgMS4yNjg5NyIsIFwKLSAgICAgICAgICAiMC4wNjk4NDcsIDAuMjY4NDk2LCAwLjQzMjkzLCAwLjY0MDc1NywgMC44NDk2MDgsIDEuMDU2NTEsIDEuMjY5MDYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU2MjE5LCAwLjE1ODM5NiwgMC4yMzk3MjMsIDAuMzQxMzczLCAwLjQ0MzE5MiwgMC41NDQ4MTcsIDAuNjQ2NTE0IiwgXAotICAgICAgICAgICIwLjA2NjQ4NywgMC4xNjg2MDUsIDAuMjQ5OTI4LCAwLjM1MTU3MSwgMC40NTMyMDUsIDAuNTU0NjIsIDAuNjU2MTUiLCBcCi0gICAgICAgICAgIjAuMDc5MDMzLCAwLjE4MTExOSwgMC4yNjI0NTYsIDAuMzY0MTUxLCAwLjQ2NTg3NywgMC41Njc1NjcsIDAuNjY5MjI2IiwgXAotICAgICAgICAgICIwLjA5MDk4NCwgMC4xOTI5LCAwLjI3NDI0NSwgMC4zNzU5LCAwLjQ3Nzc0LCAwLjU3OTI4MywgMC42ODA5MDUiLCBcCi0gICAgICAgICAgIjAuMTAxNDQ3LCAwLjIwMzYwNCwgMC4yODQ5NTMsIDAuMzg2NjcsIDAuNDg4Mjg3LCAwLjU4OTkwNywgMC42OTE1ODIiLCBcCi0gICAgICAgICAgIjAuMTE1ODUyLCAwLjIxODM0NCwgMC4yOTk2NTEsIDAuNDAxMzA2LCAwLjUwMjk3NCwgMC42MDQ1NzcsIDAuNzA2MzQ1IiwgXAotICAgICAgICAgICIwLjEyNjgyMiwgMC4yMjk1NDYsIDAuMzEwODMzLCAwLjQxMjQ3OSwgMC41MTQxNDEsIDAuNjE1NzY1LCAwLjcxNzY4NSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTE3NDYsIDAuMjU4NDY2LCAwLjQyNjMwMiwgMC42MzYyNTgsIDAuODQ0NTM3LCAxLjA1NDA2LCAxLjI2MzU4IiwgXAotICAgICAgICAgICIwLjA1MTczNywgMC4yNTg1NjIsIDAuNDI2MzI1LCAwLjYzNTk0NywgMC44NDYxOTEsIDEuMDU1MjEsIDEuMjYzODciLCBcCi0gICAgICAgICAgIjAuMDUyMDYxLCAwLjI1ODQ0NywgMC40MjYwMywgMC42MzU4NzksIDAuODQ0NTQ5LCAxLjA1NDA0LCAxLjI2NDM3IiwgXAotICAgICAgICAgICIwLjA1MjYyNSwgMC4yNTg1NTEsIDAuNDI2MjU0LCAwLjYzNjEzNywgMC44NDQ1NDUsIDEuMDUzNTMsIDEuMjYzMDIiLCBcCi0gICAgICAgICAgIjAuMDUzODEyLCAwLjI1ODU4OSwgMC40MjYyOTMsIDAuNjM1MDMyLCAwLjg0NDI0NCwgMS4wNTU0OSwgMS4yNjMxNCIsIFwKLSAgICAgICAgICAiMC4wNTU4OTQsIDAuMjU4ODc2LCAwLjQyNjMwOCwgMC42MzYxMjUsIDAuODQ1NzA2LCAxLjA1NTkzLCAxLjI2Mjk1IiwgXAotICAgICAgICAgICIwLjA1NzY5NCwgMC4yNTkxNTQsIDAuNDI2MzY1LCAwLjYzNTgwNCwgMC44NDQzNTQsIDEuMDU1NjIsIDEuMjYzNiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDc2MjUsIDAuMjE4Njc2LCAwLjMwMTY4NCwgMC40MDUxNTgsIDAuNTA4NTkyLCAwLjYxMjA5LCAwLjcxNTY3NSIsIFwKLSAgICAgICAgICAiMC4xMTU3MzgsIDAuMjI2OTIsIDAuMzA5OTUyLCAwLjQxMzQ0MSwgMC41MTY4NzgsIDAuNjIwMzg1LCAwLjcyMzc3NyIsIFwKLSAgICAgICAgICAiMC4xMjYyNjksIDAuMjM3NDI4LCAwLjMyMDQ0MiwgMC40MjM5MjIsIDAuNTI3MzYxLCAwLjYzMDg4MywgMC43MzQyOTUiLCBcCi0gICAgICAgICAgIjAuMTM3MDMsIDAuMjQ4MTcsIDAuMzMxMTc3LCAwLjQzNDY0NCwgMC41MzgxMDcsIDAuNjQxNTU0LCAwLjc0NTA0MSIsIFwKLSAgICAgICAgICAiMC4xNDc2ODgsIDAuMjU4ODczLCAwLjM0MTkwNSwgMC40NDUzODMsIDAuNTQ4ODM0LCAwLjY1MjQwOSwgMC43NTU4NjUiLCBcCi0gICAgICAgICAgIjAuMTY0MjEyLCAwLjI3NTU2MywgMC4zNTg1NywgMC40NjIwNDcsIDAuNTY1NDg5LCAwLjY2OTA4NywgMC43NzI0MTUiLCBcCi0gICAgICAgICAgIjAuMTc3NDQxLCAwLjI4ODI0LCAwLjM3MTI0NywgMC40NzQ3MjYsIDAuNTc4MjExLCAwLjY4MTYyOSwgMC43ODUxMDYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY4MDg1LCAwLjI2Nzc0NiwgMC40MzIyMDcsIDAuNjQwNTcxLCAwLjg0OTQ0OCwgMS4wNTY2OCwgMS4yNjYzNSIsIFwKLSAgICAgICAgICAiMC4wNjgyMjksIDAuMjY3NjcyLCAwLjQzMjExNiwgMC42NDA1MzcsIDAuODQ5NDE4LCAxLjA1Njg2LCAxLjI2ODc3IiwgXAotICAgICAgICAgICIwLjA2ODA3NywgMC4yNjc3MiwgMC40MzIxNjMsIDAuNjQwNTQ5LCAwLjg0OTQ1MSwgMS4wNTcyMSwgMS4yNjkwMiIsIFwKLSAgICAgICAgICAiMC4wNjgwNTIsIDAuMjY3NzExLCAwLjQzMjU5LCAwLjY0MDUyOSwgMC44NDk1NDksIDEuMDU5MDgsIDEuMjY5MDMiLCBcCi0gICAgICAgICAgIjAuMDY4NzcyLCAwLjI2Nzc2LCAwLjQzMjIyMywgMC42NDA1NjQsIDAuODQ5MTY1LCAxLjA1NjIzLCAxLjI2NTI1IiwgXAotICAgICAgICAgICIwLjA2OTQsIDAuMjY4MDYxLCAwLjQzMjQwNywgMC42NDA2MTUsIDAuODQ5NTI1LCAxLjA1NjU1LCAxLjI2ODk0IiwgXAotICAgICAgICAgICIwLjA3MDE5MSwgMC4yNjg4NTgsIDAuNDMyNTU3LCAwLjYzOTQ2MywgMC44NDk5MzksIDEuMDU3NTEsIDEuMjY5MTUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI1ODcsIDAuMDAyNjI2LCAwLjAwMjYzMSwgMC4wMDI2MzIsIDAuMDAyNjMzLCAwLjAwMjYzNSwgMC4wMDI2MzUiLCBcCi0gICAgICAgICAgIjAuMDAyNTYzLCAwLjAwMjYwNywgMC4wMDI2MTIsIDAuMDAyNjE3LCAwLjAwMjYxNiwgMC4wMDI2MTcsIDAuMDAyNjE4IiwgXAotICAgICAgICAgICIwLjAwMjU1MSwgMC4wMDI2MDEsIDAuMDAyNjA4LCAwLjAwMjYxMSwgMC4wMDI2MTQsIDAuMDAyNjE1LCAwLjAwMjYxNiIsIFwKLSAgICAgICAgICAiMC4wMDI1NTcsIDAuMDAyNjAyLCAwLjAwMjYxLCAwLjAwMjYxMywgMC4wMDI2MTYsIDAuMDAyNjE3LCAwLjAwMjYxOSIsIFwKLSAgICAgICAgICAiMC4wMDI1NTUsIDAuMDAyNjA2LCAwLjAwMjYxNCwgMC4wMDI2MTksIDAuMDAyNjIxLCAwLjAwMjYyMiwgMC4wMDI2MjQiLCBcCi0gICAgICAgICAgIjAuMDAyNTczLCAwLjAwMjYxOCwgMC4wMDI2MjcsIDAuMDAyNjMyLCAwLjAwMjYzNSwgMC4wMDI2MzYsIDAuMDAyNjM4IiwgXAotICAgICAgICAgICIwLjAwMjU5MiwgMC4wMDI2MzMsIDAuMDAyNjM5LCAwLjAwMjY0NiwgMC4wMDI2NTMsIDAuMDAyNjUyLCAwLjAwMjY1NSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDA4OSwgMC4wMDQxNTYsIDAuMDA0MTY2LCAwLjAwNDE3MSwgMC4wMDQxNzQsIDAuMDA0MTc1LCAwLjAwNDE3NyIsIFwKLSAgICAgICAgICAiMC4wMDQwNzIsIDAuMDA0MTQyLCAwLjAwNDE1MiwgMC4wMDQxNTcsIDAuMDA0MTYsIDAuMDA0MTYyLCAwLjAwNDE2MyIsIFwKLSAgICAgICAgICAiMC4wMDQwNTMsIDAuMDA0MTMxLCAwLjAwNDE0MiwgMC4wMDQxNDgsIDAuMDA0MTUxLCAwLjAwNDE1MywgMC4wMDQxNTUiLCBcCi0gICAgICAgICAgIjAuMDA0MDQ3LCAwLjAwNDEyNiwgMC4wMDQxMzgsIDAuMDA0MTQ1LCAwLjAwNDE0OCwgMC4wMDQxNSwgMC4wMDQxNTEiLCBcCi0gICAgICAgICAgIjAuMDA0MDQ5LCAwLjAwNDEyNCwgMC4wMDQxMzYsIDAuMDA0MTQzLCAwLjAwNDE0NiwgMC4wMDQxNDgsIDAuMDA0MTUiLCBcCi0gICAgICAgICAgIjAuMDA0MDQ1LCAwLjAwNDEyMSwgMC4wMDQxMzUsIDAuMDA0MTQyLCAwLjAwNDE0NiwgMC4wMDQxNDksIDAuMDA0MTUiLCBcCi0gICAgICAgICAgIjAuMDA0MDUxLCAwLjAwNDEyLCAwLjAwNDEzNSwgMC4wMDQxNDMsIDAuMDA0MTQ3LCAwLjAwNDE0OSwgMC4wMDQxNTEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI0MDMsIDAuMDAyNDU5LCAwLjAwMjQ2MiwgMC4wMDI0NjMsIDAuMDAyNDY3LCAwLjAwMjQ3LCAwLjAwMjQ3MyIsIFwKLSAgICAgICAgICAiMC4wMDIzNzksIDAuMDAyNDM4LCAwLjAwMjQ0NywgMC4wMDI0NDgsIDAuMDAyNDUsIDAuMDAyNDUzLCAwLjAwMjQ1MiIsIFwKLSAgICAgICAgICAiMC4wMDIzNTgsIDAuMDAyNDI2LCAwLjAwMjQzNiwgMC4wMDI0NCwgMC4wMDI0NDIsIDAuMDAyNDQ0LCAwLjAwMjQ0NiIsIFwKLSAgICAgICAgICAiMC4wMDIzNSwgMC4wMDI0MjQsIDAuMDAyNDM2LCAwLjAwMjQ0MiwgMC4wMDI0NDQsIDAuMDAyNDQ3LCAwLjAwMjQ0NyIsIFwKLSAgICAgICAgICAiMC4wMDIzNTUsIDAuMDAyNDI1LCAwLjAwMjQzOCwgMC4wMDI0NDUsIDAuMDAyNDQ4LCAwLjAwMjQ1MSwgMC4wMDI0NTQiLCBcCi0gICAgICAgICAgIjAuMDAyMzUyLCAwLjAwMjQxNywgMC4wMDI0MzEsIDAuMDAyNDM5LCAwLjAwMjQ0NSwgMC4wMDI0NDYsIDAuMDAyNDUiLCBcCi0gICAgICAgICAgIjAuMDAyMzUyLCAwLjAwMjQyMywgMC4wMDI0MzksIDAuMDAyNDQ5LCAwLjAwMjQ1NSwgMC4wMDI0NTgsIDAuMDAyNDYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDM4OTMsIDAuMDAzOTY3LCAwLjAwMzk4LCAwLjAwMzk4NywgMC4wMDM5OTEsIDAuMDAzOTkzLCAwLjAwMzk5NSIsIFwKLSAgICAgICAgICAiMC4wMDM4NzcsIDAuMDAzOTU0LCAwLjAwMzk2NywgMC4wMDM5NzQsIDAuMDAzOTc3LCAwLjAwMzk4LCAwLjAwMzk4MSIsIFwKLSAgICAgICAgICAiMC4wMDM4NTksIDAuMDAzOTQ0LCAwLjAwMzk1OCwgMC4wMDM5NjUsIDAuMDAzOTY5LCAwLjAwMzk3MSwgMC4wMDM5NzMiLCBcCi0gICAgICAgICAgIjAuMDAzODUzLCAwLjAwMzkzOCwgMC4wMDM5NTMsIDAuMDAzOTYxLCAwLjAwMzk2NSwgMC4wMDM5NjgsIDAuMDAzOTciLCBcCi0gICAgICAgICAgIjAuMDAzODU4LCAwLjAwMzkzNiwgMC4wMDM5NTEsIDAuMDAzOTU5LCAwLjAwMzk2NCwgMC4wMDM5NjYsIDAuMDAzOTY4IiwgXAotICAgICAgICAgICIwLjAwMzg4OSwgMC4wMDM5NDIsIDAuMDAzOTU2LCAwLjAwMzk2MywgMC4wMDM5NjcsIDAuMDAzOTcsIDAuMDAzOTcyIiwgXAotICAgICAgICAgICIwLjAwMzg1MywgMC4wMDM5MjUsIDAuMDAzOTQ1LCAwLjAwMzk1NywgMC4wMDM5NjMsIDAuMDAzOTY2LCAwLjAwMzk2OSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjIwNiwgMC4wMDIyNTMsIDAuMDAyMjU4LCAwLjAwMjI2MSwgMC4wMDIyNjIsIDAuMDAyMjYzLCAwLjAwMjI2MyIsIFwKLSAgICAgICAgICAiMC4wMDIxODEsIDAuMDAyMjM4LCAwLjAwMjI0NCwgMC4wMDIyNDcsIDAuMDAyMjQ4LCAwLjAwMjI1LCAwLjAwMjI1MSIsIFwKLSAgICAgICAgICAiMC4wMDIxNTcsIDAuMDAyMjIzLCAwLjAwMjIzMiwgMC4wMDIyMzcsIDAuMDAyMjM5LCAwLjAwMjI0LCAwLjAwMjI0MSIsIFwKLSAgICAgICAgICAiMC4wMDIxNDQsIDAuMDAyMjEzLCAwLjAwMjIyMywgMC4wMDIyMzEsIDAuMDAyMjM0LCAwLjAwMjIzNywgMC4wMDIyMzgiLCBcCi0gICAgICAgICAgIjAuMDAyMTQyLCAwLjAwMjIxMiwgMC4wMDIyMjMsIDAuMDAyMjMyLCAwLjAwMjIzNywgMC4wMDIyMzksIDAuMDAyMjQiLCBcCi0gICAgICAgICAgIjAuMDAyMTU1LCAwLjAwMjIxOSwgMC4wMDIyMzEsIDAuMDAyMjQxLCAwLjAwMjI0NywgMC4wMDIyNTEsIDAuMDAyMjUiLCBcCi0gICAgICAgICAgIjAuMDAyMTc0LCAwLjAwMjIzMiwgMC4wMDIyNDgsIDAuMDAyMjU4LCAwLjAwMjI2MywgMC4wMDIyNjYsIDAuMDAyMjY4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzNjkyLCAwLjAwMzc3MywgMC4wMDM3ODgsIDAuMDAzNzk2LCAwLjAwMzgsIDAuMDAzODAzLCAwLjAwMzgwNSIsIFwKLSAgICAgICAgICAiMC4wMDM2NjcsIDAuMDAzNzU0LCAwLjAwMzc2OSwgMC4wMDM3NzcsIDAuMDAzNzgxLCAwLjAwMzc4NCwgMC4wMDM3ODYiLCBcCi0gICAgICAgICAgIjAuMDAzNjU1LCAwLjAwMzc0MywgMC4wMDM3NTksIDAuMDAzNzY4LCAwLjAwMzc3MywgMC4wMDM3NzYsIDAuMDAzNzc4IiwgXAotICAgICAgICAgICIwLjAwMzY1NCwgMC4wMDM3NDEsIDAuMDAzNzU4LCAwLjAwMzc2OCwgMC4wMDM3NzQsIDAuMDAzNzc3LCAwLjAwMzc3OSIsIFwKLSAgICAgICAgICAiMC4wMDM2NjEsIDAuMDAzNzQ0LCAwLjAwMzc2MiwgMC4wMDM3NzMsIDAuMDAzNzc5LCAwLjAwMzc4MywgMC4wMDM3ODUiLCBcCi0gICAgICAgICAgIjAuMDAzNzA5LCAwLjAwMzc2MSwgMC4wMDM3NzgsIDAuMDAzNzg4LCAwLjAwMzc5NCwgMC4wMDM3OTgsIDAuMDAzODAxIiwgXAotICAgICAgICAgICIwLjAwMzY5OCwgMC4wMDM3NzcsIDAuMDAzNzg5LCAwLjAwMzgwMSwgMC4wMDM4MDcsIDAuMDAzODEyLCAwLjAwMzgxNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBPUjNYNCAqCi0gKiAtLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoT1IzWDQpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4yODA0NTk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDkwMTMxODsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA4OTUxMTY7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwOTAxMzE4OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDM1MSwgMC4wMDAzNzEsIDAuMDAwMzc5LCAwLjAwMDM4MywgMC4wMDAzODYsIDAuMDAwMzg3LCAwLjAwMDM5MSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDc0MiwgMC4wMDA3NDIsIDAuMDAwNzQyLCAwLjAwMDc0MiwgMC4wMDA3NDIsIDAuMDAwNzQyLCAwLjAwMDc0MyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwOTMyNzgxOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDkyNzYzOTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA5MzI3ODE7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzQ5LCAwLjAwMDM4NCwgMC4wMDAzOSwgMC4wMDAzOTEsIDAuMDAwMzkyLCAwLjAwMDM5NSwgMC4wMDAzOTciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA0MjksIDAuMDAwNDI5LCAwLjAwMDQyOSwgMC4wMDA0MjksIDAuMDAwNDMsIDAuMDAwNDMsIDAuMDAwNDMiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEMpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDkzNjE2NTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA5MzYwMTQ7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwOTM2MTY1OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDEwOCwgMC4wMDAxMDgsIDAuMDAwMTA4LCAwLjAwMDEwOCwgMC4wMDAxMDgsIDAuMDAwMTA4LCAwLjAwMDEwOCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDMwOSwgMC4wMDAzMDksIDAuMDAwMzA5LCAwLjAwMDMwOSwgMC4wMDAzMDksIDAuMDAwMzA5LCAwLjAwMDMwOCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAxLjA0NTQ0OwotICAgIGZ1bmN0aW9uIDogIigoQStCKStDKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTAyNTUsIDAuMTIzMjQzLCAwLjE5NDU0MywgMC4yNDU0NDksIDAuMzI2NzgsIDAuMzk3OTY5LCAwLjQ5OTY0NyIsIFwKLSAgICAgICAgICAiMC4wNjA0NTgsIDAuMTMzNDU0LCAwLjIwNDcxOSwgMC4yNTU1OTIsIDAuMzM2OTU3LCAwLjQwODE0NCwgMC41MDk4NjQiLCBcCi0gICAgICAgICAgIjAuMDczNTAyLCAwLjE0NjQxMiwgMC4yMTc3MzYsIDAuMjY4NjMxLCAwLjM0OTk4OSwgMC40MjExNywgMC41MjI4NTUiLCBcCi0gICAgICAgICAgIjAuMDg1ODY4LCAwLjE1ODg0NCwgMC4yMzAxNTksIDAuMjgxMDY1LCAwLjM2MjQ1NSwgMC40MzM1OTIsIDAuNTM1Mjc4IiwgXAotICAgICAgICAgICIwLjA5NzE2MywgMC4xNzAwNjIsIDAuMjQxMzY3LCAwLjI5MjI2MywgMC4zNzM2MTgsIDAuNDQ0ODAyLCAwLjU0NjQ3OCIsIFwKLSAgICAgICAgICAiMC4xMTI4MjksIDAuMTg2Mjk0LCAwLjI1NzU3OSwgMC4zMDg0NzUsIDAuMzg5ODQxLCAwLjQ2MTAwNywgMC41NjI3MTMiLCBcCi0gICAgICAgICAgIjAuMTI0ODAxLCAwLjE5ODU5OCwgMC4yNjk4NjgsIDAuMzIwNzIzLCAwLjQwMjA3NywgMC40NzMyNTksIDAuNTc0OTY0Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDMzMjU4LCAwLjE3NTczNiwgMC4zMjE5NDIsIDAuNDI3MjY5LCAwLjU5NTAzNywgMC43NDExNDMsIDAuOTUxNjU2IiwgXAotICAgICAgICAgICIwLjAzMzI2OSwgMC4xNzU4NTUsIDAuMzIxOTI2LCAwLjQyNjcyNCwgMC41OTUwMDksIDAuNzQxMDkzLCAwLjk1MTk4MSIsIFwKLSAgICAgICAgICAiMC4wMzMyNzEsIDAuMTc1NzQ2LCAwLjMyMjMwNSwgMC40MjcxOTUsIDAuNTk1MDIzLCAwLjc0MTExNiwgMC45NTA5MTQiLCBcCi0gICAgICAgICAgIjAuMDMzODgxLCAwLjE3NTk0NCwgMC4zMjE5MzEsIDAuNDI3MTYsIDAuNTk1MDU5LCAwLjc0MTkzOSwgMC45NTA4MjIiLCBcCi0gICAgICAgICAgIjAuMDM1MTIsIDAuMTc1OTY0LCAwLjMyMTk1MywgMC40MjY1MTQsIDAuNTk0NCwgMC43NDEwODIsIDAuOTUxNzU0IiwgXAotICAgICAgICAgICIwLjAzNzMwMSwgMC4xNzY1NDcsIDAuMzIyMDM3LCAwLjQyNzIsIDAuNTk0MjA2LCAwLjc0MTg4OCwgMC45NTE4NDIiLCBcCi0gICAgICAgICAgIjAuMDM5MzUxLCAwLjE3Njk3NCwgMC4zMjIyNjMsIDAuNDI2Nzc3LCAwLjU5NDk2NSwgMC43NDExNDIsIDAuOTUxODIyIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTAyNjA3LCAwLjE4NzA3LCAwLjI2MTI4MiwgMC4zMTM3OTcsIDAuMzk3Njk1LCAwLjQ3MTA3NSwgMC41NzU5MDciLCBcCi0gICAgICAgICAgIjAuMTEwODEsIDAuMTk1MjA3LCAwLjI2OTQwNCwgMC4zMjE5MDcsIDAuNDA1ODAyLCAwLjQ3OTE4NCwgMC41ODQwMzgiLCBcCi0gICAgICAgICAgIjAuMTE5NDU0LCAwLjIwNDA0MSwgMC4yNzgyMDQsIDAuMzMwNjk1LCAwLjQxNDU5LCAwLjQ4ODAzNywgMC41OTI5MDciLCBcCi0gICAgICAgICAgIjAuMTI3NTc0LCAwLjIxMjE1NSwgMC4yODYyOTgsIDAuMzM4ODA0LCAwLjQyMjcwMiwgMC40OTYwODUsIDAuNjAwOTg2IiwgXAotICAgICAgICAgICIwLjEzNTMzNCwgMC4yMTk5NCwgMC4yOTQwODQsIDAuMzQ2NTgxLCAwLjQzMDQ4MywgMC41MDM4OTQsIDAuNjA4NzY0IiwgXAotICAgICAgICAgICIwLjE0NzEzNCwgMC4yMzIwNzksIDAuMzA2MjI5LCAwLjM1ODcyMSwgMC40NDI2NDYsIDAuNTE2MDEzLCAwLjYyMDg5MSIsIFwKLSAgICAgICAgICAiMC4xNTY2MDYsIDAuMjQxOTMsIDAuMzE2MDk4LCAwLjM2ODYwOCwgMC40NTI1MTksIDAuNTI1OTAxLCAwLjYzMDc2OCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0ODE1NSwgMC4xODk0NDksIDAuMzMzNTg1LCAwLjQzODI4NiwgMC42MDc0NTQsIDAuNzU1Njc5LCAwLjk2NjI3NSIsIFwKLSAgICAgICAgICAiMC4wNDgxMDEsIDAuMTg5NDg3LCAwLjMzMzY3OSwgMC40MzgzNywgMC42MDc1NTMsIDAuNzU1Njg5LCAwLjk2NjUxNiIsIFwKLSAgICAgICAgICAiMC4wNDgxMzYsIDAuMTg5MzE5LCAwLjMzMzYzMSwgMC40Mzg0MDcsIDAuNjA3NTI2LCAwLjc1NTk1MywgMC45NjU1ODYiLCBcCi0gICAgICAgICAgIjAuMDQ4MDMyLCAwLjE4OTI0NywgMC4zMzM2MzcsIDAuNDM4MzYxLCAwLjYwNzUxNCwgMC43NTU2MjYsIDAuOTY1OTQ3IiwgXAotICAgICAgICAgICIwLjA0ODM3NSwgMC4xODkzMzcsIDAuMzMzNjQ3LCAwLjQzODQ1OCwgMC42MDc0OTcsIDAuNzU1NzU3LCAwLjk2ODE5NSIsIFwKLSAgICAgICAgICAiMC4wNDkwNzYsIDAuMTg5NzEsIDAuMzMzODQ1LCAwLjQzODQzNCwgMC42MDY3ODcsIDAuNzU1NzIsIDAuOTY2ODgxIiwgXAotICAgICAgICAgICIwLjA1MDQwMSwgMC4xOTAxNjUsIDAuMzM0MTc4LCAwLjQzOTEzOCwgMC42MDYyOTMsIDAuNzU1Nzg4LCAwLjk2NjY1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQ4MTMyLCAwLjEyMDgwNCwgMC4xOTIwNjUsIDAuMjQyOTA3LCAwLjMyNDI0MywgMC4zOTU0MywgMC40OTcwOTciLCBcCi0gICAgICAgICAgIjAuMDU4MzY2LCAwLjEzMTA1NiwgMC4yMDIzMTIsIDAuMjUzMTY5LCAwLjMzNDUsIDAuNDA1NjksIDAuNTA3MzU0IiwgXAotICAgICAgICAgICIwLjA3MTIxNCwgMC4xNDM4ODYsIDAuMjE1MTYzLCAwLjI2NjAyNCwgMC4zNDczNTYsIDAuNDE4NTU0LCAwLjUyMDIxIiwgXAotICAgICAgICAgICIwLjA4MzMzMSwgMC4xNTYxNzQsIDAuMjI3NDI3LCAwLjI3ODI5NiwgMC4zNTk2MzgsIDAuNDMwODE4LCAwLjUzMjQ4NiIsIFwKLSAgICAgICAgICAiMC4wOTQxNDksIDAuMTY3MTQ3LCAwLjIzODQwMSwgMC4yODkyNzYsIDAuMzcwNjI0LCAwLjQ0MTgwMywgMC41NDM0NzIiLCBcCi0gICAgICAgICAgIjAuMTA5MzY0LCAwLjE4Mjc0NiwgMC4yNTM5NzUsIDAuMzA0ODMsIDAuMzg2MTY4LCAwLjQ1NzMyNiwgMC41NTkwMDEiLCBcCi0gICAgICAgICAgIjAuMTIwODkxLCAwLjE5NDg0NywgMC4yNjYwNDYsIDAuMzE2ODg4LCAwLjM5ODIzNiwgMC40Njk0MDIsIDAuNTcxMDUzIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDMyNzk4LCAwLjE3NTQxLCAwLjMyMjExOCwgMC40MjY5ODQsIDAuNTk0MTY3LCAwLjc0MDQxOSwgMC45NTA2NzIiLCBcCi0gICAgICAgICAgIjAuMDMyNzk2LCAwLjE3NTM5NywgMC4zMjIwOTEsIDAuNDI2OTc2LCAwLjU5NDA5MywgMC43NDAzNzMsIDAuOTUwNjMiLCBcCi0gICAgICAgICAgIjAuMDMyOTE1LCAwLjE3NTU2MSwgMC4zMjE0NiwgMC40MjY5NjMsIDAuNTk0MjA2LCAwLjc0MTg2LCAwLjk1MDU3OCIsIFwKLSAgICAgICAgICAiMC4wMzM3MDUsIDAuMTc1NjU3LCAwLjMyMTg5OCwgMC40MjYzOTEsIDAuNTk0MDU1LCAwLjc0MDkwNCwgMC45NTA2NDciLCBcCi0gICAgICAgICAgIjAuMDM1MTQ5LCAwLjE3NTg0OCwgMC4zMjE3MTUsIDAuNDI2MzA1LCAwLjU5NDc4OCwgMC43NDE4MzcsIDAuOTUxNjg1IiwgXAotICAgICAgICAgICIwLjAzNzQ2MSwgMC4xNzY0MTYsIDAuMzIyMTg2LCAwLjQyNjkzNSwgMC41OTQxMTQsIDAuNzQxMDMsIDAuOTUxNjI4IiwgXAotICAgICAgICAgICIwLjAzOTI5MywgMC4xNzY3MzEsIDAuMzIyMDI1LCAwLjQyNjU3MiwgMC41OTQ3ODIsIDAuNzQxNjkzLCAwLjk1MDU3Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk5MjA1LCAwLjE4MzgzOSwgMC4yNTgwMTEsIDAuMzEwNDk3LCAwLjM5NDM5OSwgMC40Njc4MjcsIDAuNTcyNjU2IiwgXAotICAgICAgICAgICIwLjEwNzQ3NywgMC4xOTE5NTksIDAuMjY2MTQ1LCAwLjMxODY1NCwgMC40MDI1NSwgMC40NzU5MywgMC41ODA4MDIiLCBcCi0gICAgICAgICAgIjAuMTE3MjQxLCAwLjIwMTg2NCwgMC4yNzYwMjYsIDAuMzI4NTIzLCAwLjQxMjQyLCAwLjQ4NTg3LCAwLjU5MDczOSIsIFwKLSAgICAgICAgICAiMC4xMjcwMDgsIDAuMjExNjI3LCAwLjI4NTc4NCwgMC4zMzgyOTUsIDAuNDIyMTk1LCAwLjQ5NTU4OSwgMC42MDA0NjgiLCBcCi0gICAgICAgICAgIjAuMTM2NTA0LCAwLjIyMTE1MSwgMC4yOTUyOTksIDAuMzQ3ODEsIDAuNDMxNzE2LCAwLjUwNTEwMiwgMC42MDk5OTMiLCBcCi0gICAgICAgICAgIjAuMTUxMzg0LCAwLjIzNjIwOCwgMC4zMTAzNjEsIDAuMzYyODU2LCAwLjQ0Njc4MywgMC41MjAxNzIsIDAuNjI1MDIiLCBcCi0gICAgICAgICAgIjAuMTYyOTUxLCAwLjI0ODIxNiwgMC4zMjI0MTUsIDAuMzc0OTIyLCAwLjQ1ODgyLCAwLjUzMjIzMywgMC42MzcwNTciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDgyMDMsIDAuMTg5NDc4LCAwLjMzMzcyMSwgMC40MzgzNSwgMC42MDc1MjgsIDAuNzU1ODc0LCAwLjk2ODE2NCIsIFwKLSAgICAgICAgICAiMC4wNDgwMTgsIDAuMTg5Mzg4LCAwLjMzMzUwNCwgMC40MzgzNSwgMC42MDc0OTUsIDAuNzU1NzI0LCAwLjk2Njg4MyIsIFwKLSAgICAgICAgICAiMC4wNDgxOTYsIDAuMTg5MzE1LCAwLjMzMzYzMiwgMC40Mzg0NTIsIDAuNjA3NTAxLCAwLjc1NTk2NSwgMC45NjU2MDgiLCBcCi0gICAgICAgICAgIjAuMDQ4MDEsIDAuMTg5MjYsIDAuMzMzNjEzLCAwLjQzODAwNCwgMC42MDc0OTEsIDAuNzU1NjUxLCAwLjk2Njc5NiIsIFwKLSAgICAgICAgICAiMC4wNDg0NjYsIDAuMTg5MzYyLCAwLjMzMzY5LCAwLjQzODM0MywgMC42MDc1MDQsIDAuNzU1NjgzLCAwLjk2NTcyOSIsIFwKLSAgICAgICAgICAiMC4wNDkxNDksIDAuMTg5NzcxLCAwLjMzMzg0MiwgMC40Mzg0ODIsIDAuNjA3NjczLCAwLjc1NDk1MiwgMC45NjY1NDUiLCBcCi0gICAgICAgICAgIjAuMDUwMjU4LCAwLjE5MDUzNiwgMC4zMzQyMzMsIDAuNDM5MjQyLCAwLjYwNzcyOSwgMC43NTU5NDYsIDAuOTY4MDM1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQ1NTEsIDAuMTE4MDcsIDAuMTg5MzQ5LCAwLjI0MDE0NSwgMC4zMjE1ODksIDAuMzkyNzAyLCAwLjQ5NDM0MyIsIFwKLSAgICAgICAgICAiMC4wNTU3NzgsIDAuMTI4MzY1LCAwLjE5OTU3NCwgMC4yNTA0MjUsIDAuMzMxODI0LCAwLjQwMjk5OCwgMC41MDQ4ODYiLCBcCi0gICAgICAgICAgIjAuMDY4NDA1LCAwLjE0MDgzMSwgMC4yMTIxMDIsIDAuMjYyOTAxLCAwLjM0NDI4MSwgMC40MTU1NTMsIDAuNTE3NDgyIiwgXAotICAgICAgICAgICIwLjA4MDE5NCwgMC4xNTI5NDcsIDAuMjI0MTcyLCAwLjI3NTAyMSwgMC4zNTY1OTIsIDAuNDI3NjE0LCAwLjUyOTI5NSIsIFwKLSAgICAgICAgICAiMC4wOTA1MzMsIDAuMTYzMzYyLCAwLjIzNDU3NiwgMC4yODU0MjcsIDAuMzY2ODk0LCAwLjQzNzk5OCwgMC41Mzk3NzMiLCBcCi0gICAgICAgICAgIjAuMTA0NzAzLCAwLjE3ODE2MSwgMC4yNDkyNjUsIDAuMzAwMTU3LCAwLjM4MTU2OSwgMC40NTI3NiwgMC41NTQzMjQiLCBcCi0gICAgICAgICAgIjAuMTE1OTUxLCAwLjE5MDAxMSwgMC4yNjA5ODQsIDAuMzExODA2LCAwLjM5MzE4NywgMC40NjQzNjQsIDAuNTY2MDc4Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDMyNTMzLCAwLjE3NTIzNSwgMC4zMjEyNCwgMC40MjY5MDksIDAuNTkzNzMxLCAwLjc0MDQwNSwgMC45NTIwNjEiLCBcCi0gICAgICAgICAgIjAuMDMyNDc0LCAwLjE3NTIxOCwgMC4zMjE0NDcsIDAuNDI2NjQ1LCAwLjU5MzY3OSwgMC43NDA4ODMsIDAuOTUwMjI5IiwgXAotICAgICAgICAgICIwLjAzMjgwMywgMC4xNzU0MDMsIDAuMzIxMzc3LCAwLjQyNjgzNywgMC41OTQ5NzIsIDAuNzQwNTc1LCAwLjk1MDEyNyIsIFwKLSAgICAgICAgICAiMC4wMzM4MzksIDAuMTc1NTkzLCAwLjMyMTUxOCwgMC40MjY4NTQsIDAuNTkzODAyLCAwLjc0MTU3NCwgMC45NTAwMDgiLCBcCi0gICAgICAgICAgIjAuMDM1NDE2LCAwLjE3NTc5LCAwLjMyMjA3MSwgMC40MjY4OTQsIDAuNTkzNzkzLCAwLjc0MTU3OSwgMC45NTAyNDMiLCBcCi0gICAgICAgICAgIjAuMDM3ODc0LCAwLjE3NjIwMywgMC4zMjE2NTIsIDAuNDI2MDUyLCAwLjU5MzgwNSwgMC43NDA1MzcsIDAuOTUxOTA5IiwgXAotICAgICAgICAgICIwLjAzOTgwMywgMC4xNzY4NDQsIDAuMzIyMjMyLCAwLjQyNjk5NywgMC41OTQxMTcsIDAuNzQwNDI1LCAwLjk1MDY0MyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5MjY5LCAwLjE3NzMyOCwgMC4yNTE1NDEsIDAuMzAzOTQ1LCAwLjM4Nzg1LCAwLjQ2MTIzNywgMC41NjYwOCIsIFwKLSAgICAgICAgICAiMC4xMDA2NTksIDAuMTg1Mzg0LCAwLjI1OTUyOCwgMC4zMTIwNDUsIDAuMzk1OTUxLCAwLjQ2OTMzOCwgMC41NzQxODgiLCBcCi0gICAgICAgICAgIjAuMTExNTgxLCAwLjE5NjE5NiwgMC4yNzAzNTUsIDAuMzIyODUyLCAwLjQwNjc5OSwgMC40ODAxNiwgMC41ODUwMTkiLCBcCi0gICAgICAgICAgIjAuMTIyMzMxLCAwLjIwNjkxMywgMC4yODEwNzYsIDAuMzMzNTgyLCAwLjQxNzQ4NiwgMC40OTA5MTgsIDAuNTk1NzUxIiwgXAotICAgICAgICAgICIwLjEzMzMzOSwgMC4yMTc3NTgsIDAuMjkxOTMyLCAwLjM0NDQyOSwgMC40MjgzMzgsIDAuNTAxNzI2LCAwLjYwNjU3MyIsIFwKLSAgICAgICAgICAiMC4xNDk4NTMsIDAuMjM0NzEyLCAwLjMwODg0NCwgMC4zNjEzNTIsIDAuNDQ1MjU1LCAwLjUxODY0MiwgMC42MjM1MjkiLCBcCi0gICAgICAgICAgIjAuMTYzMDI3LCAwLjI0NzUzOCwgMC4zMjE2OTgsIDAuMzc0MTg2LCAwLjQ1ODA4MSwgMC41MzE0NjQsIDAuNjM2MzE4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQ4MDc3LCAwLjE4OTQzLCAwLjMzMzcxNiwgMC40MzgzMzEsIDAuNjA3NTEzLCAwLjc1NTY1MSwgMC45NjYzOTUiLCBcCi0gICAgICAgICAgIjAuMDQ4MTgxLCAwLjE4OTM5LCAwLjMzMzc5NCwgMC40MzgzNDgsIDAuNjA3NTQsIDAuNzU1NjQ2LCAwLjk2NjQyNyIsIFwKLSAgICAgICAgICAiMC4wNDgwODMsIDAuMTg5MjYsIDAuMzMzNjM0LCAwLjQzODMxNCwgMC42MDc2ODcsIDAuNzU1NjQ1LCAwLjk2NjQ1OCIsIFwKLSAgICAgICAgICAiMC4wNDgwMjQsIDAuMTg5MjU1LCAwLjMzMzYwMywgMC40Mzg0NDgsIDAuNjA3NDgzLCAwLjc1NDIwNCwgMC45NjY3MyIsIFwKLSAgICAgICAgICAiMC4wNDgxNzksIDAuMTg5NTIxLCAwLjMzMzcwOCwgMC40Mzg0NjMsIDAuNjA3NTQ2LCAwLjc1NTY2OSwgMC45Njc2MjQiLCBcCi0gICAgICAgICAgIjAuMDQ5ODUxLCAwLjE4OTg0MSwgMC4zMzM5MTUsIDAuNDM4NDc5LCAwLjYwNzU5MywgMC43NTU3MjIsIDAuOTY2OTQ0IiwgXAotICAgICAgICAgICIwLjA1MDcwNywgMC4xOTA3NzQsIDAuMzM0MzcyLCAwLjQzODc1LCAwLjYwNzc3MiwgMC43NTU4MywgMC45NjY1MjkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDkxMiwgMC4wMDUwMzgsIDAuMDA1MDU0LCAwLjAwNTA1NywgMC4wMDUwNjUsIDAuMDA1MDY1LCAwLjAwNTA2OSIsIFwKLSAgICAgICAgICAiMC4wMDQ4NjgsIDAuMDA1LCAwLjAwNTAxOSwgMC4wMDUwMjQsIDAuMDA1MDI5LCAwLjAwNTAzMywgMC4wMDUwMzQiLCBcCi0gICAgICAgICAgIjAuMDA0ODQyLCAwLjAwNDk3OSwgMC4wMDUwMDMsIDAuMDA1MDA5LCAwLjAwNTAxNSwgMC4wMDUwMjEsIDAuMDA1MDIyIiwgXAotICAgICAgICAgICIwLjAwNDg1MiwgMC4wMDQ5NzYsIDAuMDA1MDAyLCAwLjAwNTAxLCAwLjAwNTAxNSwgMC4wMDUwMjQsIDAuMDA1MDI1IiwgXAotICAgICAgICAgICIwLjAwNDg1NiwgMC4wMDQ5NzQsIDAuMDA1MDAxLCAwLjAwNTAwOCwgMC4wMDUwMTgsIDAuMDA1MDI2LCAwLjAwNTAyOCIsIFwKLSAgICAgICAgICAiMC4wMDQ4OTcsIDAuMDA0OTk0LCAwLjAwNTAyNCwgMC4wMDUwMzksIDAuMDA1MDQ3LCAwLjAwNTA1NSwgMC4wMDUwNjIiLCBcCi0gICAgICAgICAgIjAuMDA0OTQsIDAuMDA1MDEzLCAwLjAwNTA0NCwgMC4wMDUwNTQsIDAuMDA1MDY5LCAwLjAwNTA3NiwgMC4wMDUwOCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2OTM3LCAwLjAwNzEyNSwgMC4wMDcxNiwgMC4wMDcxNzEsIDAuMDA3MTgxLCAwLjAwNzE4NiwgMC4wMDcxOTEiLCBcCi0gICAgICAgICAgIjAuMDA2OTIsIDAuMDA3MDkyLCAwLjAwNzEzLCAwLjAwNzE0MywgMC4wMDcxNTQsIDAuMDA3MTU5LCAwLjAwNzE2NCIsIFwKLSAgICAgICAgICAiMC4wMDY4OSwgMC4wMDcwNzYsIDAuMDA3MTE2LCAwLjAwNzEyOSwgMC4wMDcxNCwgMC4wMDcxNDYsIDAuMDA3MTUxIiwgXAotICAgICAgICAgICIwLjAwNjg3NywgMC4wMDcwNjYsIDAuMDA3MTA4LCAwLjAwNzEyMSwgMC4wMDcxMzMsIDAuMDA3MTM5LCAwLjAwNzE0NSIsIFwKLSAgICAgICAgICAiMC4wMDY4ODgsIDAuMDA3MDYyLCAwLjAwNzEwNCwgMC4wMDcxMTgsIDAuMDA3MTMsIDAuMDA3MTM2LCAwLjAwNzE0MiIsIFwKLSAgICAgICAgICAiMC4wMDY4OCwgMC4wMDcwNTMsIDAuMDA3MDk4LCAwLjAwNzExMywgMC4wMDcxMjcsIDAuMDA3MTMzLCAwLjAwNzE0IiwgXAotICAgICAgICAgICIwLjAwNjg5OCwgMC4wMDcwNTEsIDAuMDA3MDk2LCAwLjAwNzExMiwgMC4wMDcxMjYsIDAuMDA3MTMzLCAwLjAwNzE0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQ2NCwgMC4wMDQ3OTcsIDAuMDA0ODE3LCAwLjAwNDgyMiwgMC4wMDQ4MjYsIDAuMDA0ODMsIDAuMDA0ODMyIiwgXAotICAgICAgICAgICIwLjAwNDU5MSwgMC4wMDQ3NTksIDAuMDA0Nzg0LCAwLjAwNDc5MywgMC4wMDQ3OTgsIDAuMDA0ODAxLCAwLjAwNDgwNCIsIFwKLSAgICAgICAgICAiMC4wMDQ1NTMsIDAuMDA0NzI4LCAwLjAwNDc1NywgMC4wMDQ3NjksIDAuMDA0Nzc2LCAwLjAwNDc4LCAwLjAwNDc4NSIsIFwKLSAgICAgICAgICAiMC4wMDQ1MzEsIDAuMDA0NzA4LCAwLjAwNDc0NiwgMC4wMDQ3NTgsIDAuMDA0NzY1LCAwLjAwNDc3MywgMC4wMDQ3NzkiLCBcCi0gICAgICAgICAgIjAuMDA0NTI5LCAwLjAwNDY5OCwgMC4wMDQ3NCwgMC4wMDQ3NTMsIDAuMDA0NzY2LCAwLjAwNDc3MywgMC4wMDQ3ODMiLCBcCi0gICAgICAgICAgIjAuMDA0NTYzLCAwLjAwNDY5NCwgMC4wMDQ3MzgsIDAuMDA0NzU2LCAwLjAwNDc2NywgMC4wMDQ3NzQsIDAuMDA0NzgxIiwgXAotICAgICAgICAgICIwLjAwNDU0NywgMC4wMDQ2OTcsIDAuMDA0NzQ1LCAwLjAwNDc2MiwgMC4wMDQ3NzksIDAuMDA0NzksIDAuMDA0Nzk2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDY2MjUsIDAuMDA2NzkyLCAwLjAwNjgzMiwgMC4wMDY4NDUsIDAuMDA2ODU3LCAwLjAwNjg2NCwgMC4wMDY4NjkiLCBcCi0gICAgICAgICAgIjAuMDA2NTc0LCAwLjAwNjc2LCAwLjAwNjgwNCwgMC4wMDY4MTgsIDAuMDA2ODMsIDAuMDA2ODM3LCAwLjAwNjg0MyIsIFwKLSAgICAgICAgICAiMC4wMDY1NDYsIDAuMDA2NzQxLCAwLjAwNjc4NywgMC4wMDY4MDIsIDAuMDA2ODE1LCAwLjAwNjgyMiwgMC4wMDY4MjgiLCBcCi0gICAgICAgICAgIjAuMDA2NTM2LCAwLjAwNjcyOCwgMC4wMDY3NzYsIDAuMDA2NzkyLCAwLjAwNjgwNywgMC4wMDY4MTQsIDAuMDA2ODIxIiwgXAotICAgICAgICAgICIwLjAwNjU1NSwgMC4wMDY3MjMsIDAuMDA2NzcxLCAwLjAwNjc4OCwgMC4wMDY4MDMsIDAuMDA2ODExLCAwLjAwNjgxOCIsIFwKLSAgICAgICAgICAiMC4wMDY2MzEsIDAuMDA2NzM2LCAwLjAwNjc3OSwgMC4wMDY3OTQsIDAuMDA2ODA4LCAwLjAwNjgxNiwgMC4wMDY4MjMiLCBcCi0gICAgICAgICAgIjAuMDA2NjEzLCAwLjAwNjcxMywgMC4wMDY3NjUsIDAuMDA2Nzg0LCAwLjAwNjgwMiwgMC4wMDY4MTIsIDAuMDA2ODIxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQzNTMsIDAuMDA0NDk3LCAwLjAwNDUxNywgMC4wMDQ1MjIsIDAuMDA0NTI5LCAwLjAwNDUyOSwgMC4wMDQ1MzUiLCBcCi0gICAgICAgICAgIjAuMDA0MzAyLCAwLjAwNDQ2NywgMC4wMDQ0ODgsIDAuMDA0NDk0LCAwLjAwNDQ5OSwgMC4wMDQ1MDIsIDAuMDA0NTA0IiwgXAotICAgICAgICAgICIwLjAwNDI3LCAwLjAwNDQzNiwgMC4wMDQ0NiwgMC4wMDQ0NjUsIDAuMDA0NDc4LCAwLjAwNDQ4MSwgMC4wMDQ0ODYiLCBcCi0gICAgICAgICAgIjAuMDA0MjM1LCAwLjAwNDQxMSwgMC4wMDQ0NDUsIDAuMDA0NDU2LCAwLjAwNDQ2NiwgMC4wMDQ0NzEsIDAuMDA0NDc1IiwgXAotICAgICAgICAgICIwLjAwNDIzOSwgMC4wMDQ0MDEsIDAuMDA0NDQsIDAuMDA0NDQ3LCAwLjAwNDQ2NCwgMC4wMDQ0NywgMC4wMDQ0NzYiLCBcCi0gICAgICAgICAgIjAuMDA0MjYzLCAwLjAwNDQwMywgMC4wMDQ0NDcsIDAuMDA0NDYyLCAwLjAwNDQ3NCwgMC4wMDQ0ODMsIDAuMDA0NDkiLCBcCi0gICAgICAgICAgIjAuMDA0MjY4LCAwLjAwNDQwNCwgMC4wMDQ0MzksIDAuMDA0NDYxLCAwLjAwNDQ3NCwgMC4wMDQ0ODMsIDAuMDA0NDg2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDYyNiwgMC4wMDY0NjEsIDAuMDA2NTAzLCAwLjAwNjUxOSwgMC4wMDY1MzIsIDAuMDA2NTM5LCAwLjAwNjU0NSIsIFwKLSAgICAgICAgICAiMC4wMDYyMTIsIDAuMDA2NDEzLCAwLjAwNjQ2LCAwLjAwNjQ3NiwgMC4wMDY0OTEsIDAuMDA2NDk4LCAwLjAwNjUwNSIsIFwKLSAgICAgICAgICAiMC4wMDYxOTEsIDAuMDA2Mzg5LCAwLjAwNjQ0LCAwLjAwNjQ1NywgMC4wMDY0NzMsIDAuMDA2NDgxLCAwLjAwNjQ4OSIsIFwKLSAgICAgICAgICAiMC4wMDYxOTcsIDAuMDA2MzgyLCAwLjAwNjQzNSwgMC4wMDY0NTQsIDAuMDA2NDcyLCAwLjAwNjQ4MSwgMC4wMDY0OSIsIFwKLSAgICAgICAgICAiMC4wMDYyMjMsIDAuMDA2MzgzLCAwLjAwNjQzOCwgMC4wMDY0NTgsIDAuMDA2NDc3LCAwLjAwNjQ4NywgMC4wMDY0OTciLCBcCi0gICAgICAgICAgIjAuMDA2MzQ0LCAwLjAwNjQxNywgMC4wMDY0NjMsIDAuMDA2NDgxLCAwLjAwNjQ5OSwgMC4wMDY1MDksIDAuMDA2NTE5IiwgXAotICAgICAgICAgICIwLjAwNjI4NSwgMC4wMDY0MjgsIDAuMDA2NDc3LCAwLjAwNjQ5NiwgMC4wMDY1MTYsIDAuMDA2NTI3LCAwLjAwNjUzNyIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBPUjRYNCAqCi0gKiAtLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoT1I0WDQpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4zMjQxMDQ7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDg3MTc2NjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA4NjQ5NzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA4NzE3NjY7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzQ3LCAwLjAwMDM2NCwgMC4wMDAzNzMsIDAuMDAwMzc4LCAwLjAwMDM4LCAwLjAwMDM4MSwgMC4wMDAzODMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDEwNTIsIDAuMDAxMDUyLCAwLjAwMTA1MiwgMC4wMDEwNTIsIDAuMDAxMDUyLCAwLjAwMTA1MiwgMC4wMDEwNTIiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDg5NjI3MTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA4OTA1MzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA4OTYyNzE7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzM5LCAwLjAwMDM2MiwgMC4wMDAzNzQsIDAuMDAwMzc4LCAwLjAwMDM4MSwgMC4wMDAzODcsIDAuMDAwMzg5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNzQ1LCAwLjAwMDc0NSwgMC4wMDA3NDUsIDAuMDAwNzQ1LCAwLjAwMDc0NSwgMC4wMDA3NDUsIDAuMDAwNzQ1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihDKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA5MDQwNjY7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwODk5MTQ0OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDkwNDA2NjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAzNDQsIDAuMDAwMzgxLCAwLjAwMDM4OCwgMC4wMDAzOTEsIDAuMDAwMzkyLCAwLjAwMDM5NCwgMC4wMDAzOTYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA0MywgMC4wMDA0MywgMC4wMDA0MywgMC4wMDA0MywgMC4wMDA0MywgMC4wMDA0MywgMC4wMDA0MyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwODcxNDA3OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDg3MTM4NjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA4NzE0MDc7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMTA4LCAwLjAwMDEwOCwgMC4wMDAxMDgsIDAuMDAwMTA4LCAwLjAwMDEwOCwgMC4wMDAxMDgsIDAuMDAwMTA4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzE4LCAwLjAwMDMxOCwgMC4wMDAzMTgsIDAuMDAwMzE4LCAwLjAwMDMxOCwgMC4wMDAzMTgsIDAuMDAwMzE3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDEuMDM4MzY7Ci0gICAgZnVuY3Rpb24gOiAiKCgoQStCKStDKStEKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTMxMzMsIDAuMTI3NDQsIDAuMTk5NTY5LCAwLjI1MTAzNywgMC4zMzMzMTQsIDAuNDA1MjYyLCAwLjUwNzkxOSIsIFwKLSAgICAgICAgICAiMC4wNjMyOTMsIDAuMTM3NTY5LCAwLjIwOTczMywgMC4yNjEyMTcsIDAuMzQzNDc1LCAwLjQxNTQzLCAwLjUxODIxNSIsIFwKLSAgICAgICAgICAiMC4wNzYzMTQsIDAuMTUwNTEsIDAuMjIyNjY0LCAwLjI3NDEyOSwgMC4zNTY0MDcsIDAuNDI4NDE4LCAwLjUzMTE2OCIsIFwKLSAgICAgICAgICAiMC4wODkwOTgsIDAuMTYzMjE1LCAwLjIzNTM5MywgMC4yODY4MjcsIDAuMzY5MTE0LCAwLjQ0MTA2NiwgMC41NDM4NTIiLCBcCi0gICAgICAgICAgIjAuMTAwOTI0LCAwLjE3NTA4NSwgMC4yNDcyMjgsIDAuMjk4NjkyLCAwLjM4MDk2NywgMC40NTI5MiwgMC41NTU3MDQiLCBcCi0gICAgICAgICAgIjAuMTE3MzQ3LCAwLjE5MTcxMSwgMC4yNjM4MTgsIDAuMzE1MjY4LCAwLjM5NzU1OSwgMC40Njk1MDQsIDAuNTcyMjY5IiwgXAotICAgICAgICAgICIwLjEyOTk0NywgMC4yMDQ5ODksIDAuMjc3MDU1LCAwLjMyODUwMywgMC40MTA3NzEsIDAuNDgyNzEzLCAwLjU4NTUyMSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzNDM5MSwgMC4xNzgyMjYsIDAuMzI1NjMyLCAwLjQzMTE5OCwgMC42MDA2MzYsIDAuNzQ5OTg4LCAwLjk1OTM5NSIsIFwKLSAgICAgICAgICAiMC4wMzQyODUsIDAuMTc4MDQ2LCAwLjMyNTU5MywgMC40MzE4NTUsIDAuNjAxNTI1LCAwLjc0OTk0NCwgMC45NjIwOTEiLCBcCi0gICAgICAgICAgIjAuMDM0MzIyLCAwLjE3Nzk5MywgMC4zMjU2MDUsIDAuNDMxMTIzLCAwLjYwMTQ5OSwgMC43NDg2NjcsIDAuOTYwNzM2IiwgXAotICAgICAgICAgICIwLjAzNDQ5NywgMC4xNzgwODgsIDAuMzI1OTE5LCAwLjQzMTM5LCAwLjYwMTQxNywgMC43NDk4MzUsIDAuOTYxOTQ0IiwgXAotICAgICAgICAgICIwLjAzNTYzNSwgMC4xNzgwNjIsIDAuMzI1NTI4LCAwLjQzMTM0NiwgMC42MDE0MDcsIDAuNzQ5ODMzLCAwLjk2MTkzOCIsIFwKLSAgICAgICAgICAiMC4wMzc3ODYsIDAuMTc4NjY5LCAwLjMyNTcwNywgMC40MzEzOTIsIDAuNjAxNDM3LCAwLjc0OTg1MSwgMC45NjE5MjEiLCBcCi0gICAgICAgICAgIjAuMDM5NzUzLCAwLjE3ODg3NywgMC4zMjYxMTUsIDAuNDMxODc5LCAwLjYwMTQzLCAwLjc0OTExMSwgMC45NjIwMDEiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMzYwMTgsIDAuMjI3NjIzLCAwLjMwMzI3LCAwLjM1NjA0LCAwLjQ0MDExLCAwLjUxMzU2MSwgMC42MTg0MzkiLCBcCi0gICAgICAgICAgIjAuMTQ0MjE3LCAwLjIzNTc3MSwgMC4zMTE0MTMsIDAuMzY0MjI1LCAwLjQ0ODI4LCAwLjUyMTcxMSwgMC42MjY1OSIsIFwKLSAgICAgICAgICAiMC4xNTI1OTgsIDAuMjQ0MzMsIDAuMzIwMDA5LCAwLjM3Mjg0MywgMC40NTY4ODcsIDAuNTMwMzIyLCAwLjYzNTIyIiwgXAotICAgICAgICAgICIwLjE2MDE0OCwgMC4yNTE5NDcsIDAuMzI3NTUzLCAwLjM4MDM4MywgMC40NjQ0MzEsIDAuNTM3ODYyLCAwLjY0MjgyNSIsIFwKLSAgICAgICAgICAiMC4xNjczODgsIDAuMjU5MTM0LCAwLjMzNDc0OSwgMC4zODc1MywgMC40NzE1OTYsIDAuNTQ1MDM4LCAwLjY0OTkyMiIsIFwKLSAgICAgICAgICAiMC4xNzgwOCwgMC4yNjk4NDIsIDAuMzQ1NDY2LCAwLjM5ODI2NSwgMC40ODIzNDgsIDAuNTU1NzgyLCAwLjY2MDcxOSIsIFwKLSAgICAgICAgICAiMC4xODY3NDYsIDAuMjc4NzkyLCAwLjM1NDQ3MywgMC40MDcyMzMsIDAuNDkxMzIsIDAuNTY0NzQzLCAwLjY2OTYyNSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1NjEwNCwgMC4xOTg4NjMsIDAuMzQxMjM4LCAwLjQ0NDQ5NSwgMC42MTE1NTUsIDAuNzU5ODMxLCAwLjk3MTM0MSIsIFwKLSAgICAgICAgICAiMC4wNTYyMzIsIDAuMTk4ODE5LCAwLjM0MTI2OSwgMC40NDQzMjksIDAuNjExODA1LCAwLjc1OTg4NywgMC45NzEyMjYiLCBcCi0gICAgICAgICAgIjAuMDU2MTU1LCAwLjE5ODYzMSwgMC4zNDEwOTMsIDAuNDQ0NDQ5LCAwLjYxMTc2NSwgMC43NTk4MDQsIDAuOTY5ODUxIiwgXAotICAgICAgICAgICIwLjA1NjA4NywgMC4xOTg0NzQsIDAuMzQxMDkzLCAwLjQ0NDM5MSwgMC42MTE4NzcsIDAuNzU5ODQxLCAwLjk3MTU5IiwgXAotICAgICAgICAgICIwLjA1NjAzOSwgMC4xOTg0MDIsIDAuMzQxMDY3LCAwLjQ0NDM4NCwgMC42MTIzNjEsIDAuNzU5Nzg2LCAwLjk3MTIxMSIsIFwKLSAgICAgICAgICAiMC4wNTYzNjYsIDAuMTk4NTY4LCAwLjM0MTExOCwgMC40NDQ1NTcsIDAuNjExODgyLCAwLjc1OTgzMiwgMC45NzE0NjUiLCBcCi0gICAgICAgICAgIjAuMDU3MTMzLCAwLjE5OSwgMC4zNDEzMTUsIDAuNDQ0NiwgMC42MTI1NywgMC43NTk4ODQsIDAuOTcxMjc3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDUxNTY4LCAwLjEyNTQyOCwgMC4xOTc0MzMsIDAuMjQ4ODU4LCAwLjMzMTA2OCwgMC40MDMwMDYsIDAuNTA1NzU2IiwgXAotICAgICAgICAgICIwLjA2MTY4OCwgMC4xMzU1ODIsIDAuMjA3NjA0LCAwLjI1OTAzOSwgMC4zNDEyNDcsIDAuNDEzMjA5LCAwLjUxNTkzMyIsIFwKLSAgICAgICAgICAiMC4wNzQ3MzYsIDAuMTQ4NTI3LCAwLjIyMDYzOCwgMC4yNzIwNTEsIDAuMzU0MjY2LCAwLjQyNjIwMiwgMC41Mjg5NTgiLCBcCi0gICAgICAgICAgIjAuMDg3MTUsIDAuMTYwOTg0LCAwLjIzMzA2NCwgMC4yODQ1MTUsIDAuMzY2NzI5LCAwLjQzODY2NCwgMC41NDE0NTgiLCBcCi0gICAgICAgICAgIjAuMDk4NTY1LCAwLjE3MjMxMiwgMC4yNDQzODEsIDAuMjk1ODIyLCAwLjM3ODAzNywgMC40NDk5NzgsIDAuNTUyNzQzIiwgXAotICAgICAgICAgICIwLjExNDM3MSwgMC4xODg3NDMsIDAuMjYwNzgxLCAwLjMxMjE5NSwgMC4zOTQ0NDksIDAuNDY2Mzc2LCAwLjU2OTExNiIsIFwKLSAgICAgICAgICAiMC4xMjY3ODMsIDAuMjAxNTQ1LCAwLjI3MzU4LCAwLjMyNTAxLCAwLjQwNzIzNiwgMC40NzkxNDUsIDAuNTgxOTE3Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDMzNjU2LCAwLjE3NzUyNiwgMC4zMjQ5NzQsIDAuNDMxNjAxLCAwLjYwMTIwNywgMC43NDg4NTcsIDAuOTYwODE0IiwgXAotICAgICAgICAgICIwLjAzMzU5OCwgMC4xNzc1MTEsIDAuMzI1MTc5LCAwLjQzMTUyNCwgMC42MDA5OTEsIDAuNzQ4NTIsIDAuOTYwNjUyIiwgXAotICAgICAgICAgICIwLjAzMzYyMywgMC4xNzc1MDYsIDAuMzI1NjM2LCAwLjQzMDg3NSwgMC42MDExNzQsIDAuNzQ4ODU1LCAwLjk2MDc3NSIsIFwKLSAgICAgICAgICAiMC4wMzQxMzIsIDAuMTc3NjkxLCAwLjMyNTIxNSwgMC40MzE1MzcsIDAuNjAwNDg3LCAwLjc0OTY2NCwgMC45NjA0MjYiLCBcCi0gICAgICAgICAgIjAuMDM1NDU0LCAwLjE3NzcxNCwgMC4zMjUyMTEsIDAuNDMwODg2LCAwLjYwMDQ0MywgMC43NDk1NywgMC45NjE3MTEiLCBcCi0gICAgICAgICAgIjAuMDM3NjA1LCAwLjE3ODE1NCwgMC4zMjUzNTUsIDAuNDMxMzcyLCAwLjYwMTEyOSwgMC43NDk1NzksIDAuOTYxNjU3IiwgXAotICAgICAgICAgICIwLjAzOTczNSwgMC4xNzg2NTYsIDAuMzI1ODM5LCAwLjQzMTYwNiwgMC42MDExNjEsIDAuNzQ4NzUxLCAwLjk2MTcyNSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEzMjY0LCAwLjIyNDE4NiwgMC4yOTk5MjksIDAuMzUyNzQsIDAuNDM2Nzc0LCAwLjUxMDIyNywgMC42MTUxMDUiLCBcCi0gICAgICAgICAgIjAuMTQwNTcxLCAwLjIzMjMzMywgMC4zMDgsIDAuMzYwODM3LCAwLjQ0NDg5MSwgMC41MTgzNDEsIDAuNjIzMjIyIiwgXAotICAgICAgICAgICIwLjE0OTQyOCwgMC4yNDEyMDcsIDAuMzE2ODcyLCAwLjM2OTcxMiwgMC40NTM3NTcsIDAuNTI3MTkyLCAwLjYzMjA5NSIsIFwKLSAgICAgICAgICAiMC4xNTc3OSwgMC4yNDk0NTYsIDAuMzI1MTA4LCAwLjM3Nzk1LCAwLjQ2MjAwNCwgMC41MzU0NjgsIDAuNjQwMzU1IiwgXAotICAgICAgICAgICIwLjE2NTg2MywgMC4yNTc2MjUsIDAuMzMzMjQ5LCAwLjM4NjAxMiwgMC40NzAwODUsIDAuNTQzNTQxLCAwLjY0ODQyNSIsIFwKLSAgICAgICAgICAiMC4xNzgzNTQsIDAuMjcwMjA5LCAwLjM0NTgyLCAwLjM5ODU5NiwgMC40ODI2NjcsIDAuNTU2MTExLCAwLjY2MDk5OCIsIFwKLSAgICAgICAgICAiMC4xODkwMDYsIDAuMjgwOTgsIDAuMzU2NjA3LCAwLjQwOTQ0LCAwLjQ5MzUwOCwgMC41NjY5NzMsIDAuNjcxODQ2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU2MDU3LCAwLjE5ODc4MiwgMC4zNDEyMjMsIDAuNDQ0NTM2LCAwLjYxMTcwOSwgMC43NTk4MDQsIDAuOTcxMzExIiwgXAotICAgICAgICAgICIwLjA1NjI1OSwgMC4xOTg4MTIsIDAuMzQxMTc1LCAwLjQ0NDQ0NiwgMC42MTE4NjMsIDAuNzU5MDYsIDAuOTcxMjIzIiwgXAotICAgICAgICAgICIwLjA1NjE1OSwgMC4xOTg1OSwgMC4zNDEwNjEsIDAuNDQ0NDI2LCAwLjYxMTc4NiwgMC43NTk4MSwgMC45Njk4ODIiLCBcCi0gICAgICAgICAgIjAuMDU2MTk4LCAwLjE5ODQ4NiwgMC4zNDEwMTYsIDAuNDQ0Mzk5LCAwLjYxMTg0LCAwLjc1OTg5NiwgMC45NzEzMzgiLCBcCi0gICAgICAgICAgIjAuMDU2MDgyLCAwLjE5ODQ2NSwgMC4zNDA5OTYsIDAuNDQ0MzgxLCAwLjYxMTkzNSwgMC43NTk4MSwgMC45NzEyMTEiLCBcCi0gICAgICAgICAgIjAuMDU2NzM3LCAwLjE5ODY0NiwgMC4zNDA4NjksIDAuNDQ0NDI5LCAwLjYxMjQwOSwgMC43NTk4NDcsIDAuOTcxMjE5IiwgXAotICAgICAgICAgICIwLjA1NzExLCAwLjE5ODg4NywgMC4zNDEyOSwgMC40NDQ1MDEsIDAuNjEyMDI0LCAwLjc1ODM1OSwgMC45NzEyNjQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDkxNTIsIDAuMTIyNzA5LCAwLjE5NDcxLCAwLjI0NjExNCwgMC4zMjgzMDEsIDAuNDAwMjQxLCAwLjUwMjk4NiIsIFwKLSAgICAgICAgICAiMC4wNTk0MTksIDAuMTMyOTYxLCAwLjIwNDk4NiwgMC4yNTYzNzgsIDAuMzM4NTg4LCAwLjQxMDQ4OCwgMC41MTMyMzgiLCBcCi0gICAgICAgICAgIjAuMDcyMzc4LCAwLjE0NTkxNywgMC4yMTc5NDksIDAuMjY5MzQ1LCAwLjM1MTUzNCwgMC40MjM0NTEsIDAuNTI2MjEyIiwgXAotICAgICAgICAgICIwLjA4NDU2OCwgMC4xNTgyNjMsIDAuMjMwMjgsIDAuMjgxNjY5LCAwLjM2Mzg3NywgMC40MzU4MjgsIDAuNTM4NTc0IiwgXAotICAgICAgICAgICIwLjA5NTM5NiwgMC4xNjkyMTMsIDAuMjQxMjE0LCAwLjI5MjYyNiwgMC4zNzQ4MTIsIDAuNDQ2NzMxLCAwLjU0OTQ2OSIsIFwKLSAgICAgICAgICAiMC4xMTA5MTYsIDAuMTg1MTQ4LCAwLjI1NzE2NCwgMC4zMDg1NDUsIDAuMzkwNzU2LCAwLjQ2MjY3NSwgMC41NjUzOTMiLCBcCi0gICAgICAgICAgIjAuMTIyNTgxLCAwLjE5NzQxOSwgMC4yNjk0MjQsIDAuMzIwNzcsIDAuNDAyOTc0LCAwLjQ3NDg2NSwgMC41Nzc2NjEiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzMxNDYsIDAuMTc3MTk1LCAwLjMyNTM2MSwgMC40MzEzNzYsIDAuNjAwODE5LCAwLjc0ODYxNSwgMC45NjAwNjEiLCBcCi0gICAgICAgICAgIjAuMDMzMTIsIDAuMTc3MTczLCAwLjMyNDczNywgMC40MzEzNTUsIDAuNjAxMDM1LCAwLjc0ODczNCwgMC45NjA1MzQiLCBcCi0gICAgICAgICAgIjAuMDMzMjkxLCAwLjE3NzE3OSwgMC4zMjQ3MjUsIDAuNDMxMzQsIDAuNjAwNzgsIDAuNzQ5NDk3LCAwLjk2MDQ3IiwgXAotICAgICAgICAgICIwLjAzMzk1LCAwLjE3NzM5OCwgMC4zMjQ5NzUsIDAuNDMwNzY4LCAwLjYwMDc1NywgMC43NDg2NzMsIDAuOTYwNTMyIiwgXAotICAgICAgICAgICIwLjAzNTQ3MywgMC4xNzczODksIDAuMzI0OTY5LCAwLjQzMDY4OSwgMC42MDA5MDIsIDAuNzQ4NTgyLCAwLjk2MDUzNCIsIFwKLSAgICAgICAgICAiMC4wMzc3NTQsIDAuMTc4MDE4LCAwLjMyNDkwNSwgMC40MzA4MTgsIDAuNjAwMjg2LCAwLjc0OTQ5MSwgMC45NjE1NCIsIFwKLSAgICAgICAgICAiMC4wMzk2NTIsIDAuMTc4NTI2LCAwLjMyNTEzNCwgMC40MzEzOCwgMC42MDAxMjIsIDAuNzQ4NzU4LCAwLjk2MTY2MSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEyNTgyMSwgMC4yMTc0MywgMC4yOTMxNDQsIDAuMzQ1OTYsIDAuNDI5OTkyLCAwLjUwMzQzNCwgMC42MDgzMjUiLCBcCi0gICAgICAgICAgIjAuMTMzNTQ3LCAwLjIyNTIyLCAwLjMwMDg4MywgMC4zNTM2NzUsIDAuNDM3NzU0LCAwLjUxMTE4OCwgMC42MTYxMTkiLCBcCi0gICAgICAgICAgIjAuMTQzMDQxLCAwLjIzNDcwNywgMC4zMTAzNjUsIDAuMzYzMTcsIDAuNDQ3MjIyLCAwLjUyMDY2MiwgMC42MjU1NTYiLCBcCi0gICAgICAgICAgIjAuMTUyNjMyLCAwLjI0NDM3NCwgMC4zMjAwMzMsIDAuMzcyODMsIDAuNDU2OTEzLCAwLjUzMDM1LCAwLjYzNTIzOSIsIFwKLSAgICAgICAgICAiMC4xNjI0NDMsIDAuMjUzOTk5LCAwLjMyOTYxNywgMC4zODI0MDQsIDAuNDY2NDk3LCAwLjUzOTkyMiwgMC42NDQ4MDkiLCBcCi0gICAgICAgICAgIjAuMTc3Mjk0LCAwLjI2ODk2OSwgMC4zNDQ1ODMsIDAuMzk3MzY1LCAwLjQ4MTQyMywgMC41NTQ4ODIsIDAuNjU5NzY1IiwgXAotICAgICAgICAgICIwLjE4OTY2NywgMC4yODE3ODgsIDAuMzU3MzgxLCAwLjQxMDIxMSwgMC40OTQyNywgMC41Njc3NjksIDAuNjcyNjEyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU2Mjc5LCAwLjE5ODY1OSwgMC4zNDEyMDYsIDAuNDQ0NTMxLCAwLjYxMTc0NCwgMC43NTg3MzMsIDAuOTcxMjY3IiwgXAotICAgICAgICAgICIwLjA1NjMyMywgMC4xOTg4NzksIDAuMzQxMTc0LCAwLjQ0NDQ4NCwgMC42MTE3ODYsIDAuNzU5ODU3LCAwLjk3MTQ5NSIsIFwKLSAgICAgICAgICAiMC4wNTYyMjYsIDAuMTk4NzE4LCAwLjM0MTIwNywgMC40NDQ0ODIsIDAuNjExODUsIDAuNzU5ODM1LCAwLjk3MTI5NiIsIFwKLSAgICAgICAgICAiMC4wNTYyNTQsIDAuMTk4NDc3LCAwLjM0MTA4LCAwLjQ0NDM2OCwgMC42MTE4MzIsIDAuNzU5ODMxLCAwLjk3MTIxNiIsIFwKLSAgICAgICAgICAiMC4wNTYwNDYsIDAuMTk4MzQ4LCAwLjM0MTAxNywgMC40NDQzODksIDAuNjEyNDM2LCAwLjc1OTgxLCAwLjk3MTIxMyIsIFwKLSAgICAgICAgICAiMC4wNTY1ODEsIDAuMTk4OTAzLCAwLjM0MTI0MywgMC40NDQ1MjUsIDAuNjEyMDIxLCAwLjc1OTg1NCwgMC45NzEyNzQiLCBcCi0gICAgICAgICAgIjAuMDU3ODE5LCAwLjE5OTI5OCwgMC4zNDE0NjUsIDAuNDQ0NzI0LCAwLjYxMjA2LCAwLjc1ODEwOSwgMC45NzEzMjEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDY0MTksIDAuMTE5ODUyLCAwLjE5MTc1OSwgMC4yNDMxNjEsIDAuMzI1Mzk5LCAwLjM5NzI5NCwgMC41MDAxOTkiLCBcCi0gICAgICAgICAgIjAuMDU2NzI5LCAwLjEzMDE2LCAwLjIwMjEzNiwgMC4yNTM1MzcsIDAuMzM1NzU5LCAwLjQwNzgyNCwgMC41MTA2NDIiLCBcCi0gICAgICAgICAgIjAuMDY5NDg1LCAwLjE0MjcxMiwgMC4yMTQ3MTUsIDAuMjY2MDc2LCAwLjM0ODM5NCwgMC40MjA1MzIsIDAuNTIzMDM1IiwgXAotICAgICAgICAgICIwLjA4MTM0OSwgMC4xNTQ2NjEsIDAuMjI2NjI2LCAwLjI3ODAxLCAwLjM2MDI4NCwgMC40MzI1MDcsIDAuNTM1MTM3IiwgXAotICAgICAgICAgICIwLjA5MTg5MSwgMC4xNjU1MDMsIDAuMjM3NDY3LCAwLjI4ODg1OSwgMC4zNzExODEsIDAuNDQzMDUzLCAwLjU0NTg2IiwgXAotICAgICAgICAgICIwLjEwNjMzLCAwLjE4MDY0MywgMC4yNTI0NCwgMC4zMDM4NDksIDAuMzg2MTI1LCAwLjQ1Nzk4MywgMC41NjA4NzYiLCBcCi0gICAgICAgICAgIjAuMTE3MjEsIDAuMTkyMDMyLCAwLjI2NDA0OSwgMC4zMTU0MDQsIDAuMzk3NjMxLCAwLjQ2OTU4MywgMC41NzI0MjMiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzI5NDEsIDAuMTc2OTczLCAwLjMyNDIzMywgMC40MzAzNzksIDAuNTk5Njk1LCAwLjc0OTMwOSwgMC45NjAwNjgiLCBcCi0gICAgICAgICAgIjAuMDMyODI4LCAwLjE3Njk2OSwgMC4zMjQ2OTIsIDAuNDMxMzIxLCAwLjU5OTgwOSwgMC43NDgzMDIsIDAuOTYwMTIyIiwgXAotICAgICAgICAgICIwLjAzMzA4NiwgMC4xNzcxNDIsIDAuMzI0NjUxLCAwLjQzMTIsIDAuNTk5OTQ0LCAwLjc0ODQ0OCwgMC45NTk5MDYiLCBcCi0gICAgICAgICAgIjAuMDM0MTYzLCAwLjE3NzMxNiwgMC4zMjQ3NywgMC40MzA5NzUsIDAuNTk5NzcxLCAwLjc0ODQwNywgMC45NjAxMDYiLCBcCi0gICAgICAgICAgIjAuMDM1NjczLCAwLjE3NzM3NSwgMC4zMjQ2NTIsIDAuNDMxMzM1LCAwLjU5OTkyLCAwLjc0OTI3OCwgMC45NTk2MjkiLCBcCi0gICAgICAgICAgIjAuMDM4MTY2LCAwLjE3ODEwNiwgMC4zMjQ5OTYsIDAuNDMwNTQ0LCAwLjU5OTk3MSwgMC43NDkyOTksIDAuOTYwNjM0IiwgXAotICAgICAgICAgICIwLjA0MDQ3MiwgMC4xNzg1MTUsIDAuMzI1NjQ0LCAwLjQzMTQ0NywgMC42MDEwNjMsIDAuNzQ4MSwgMC45NjAxMzgiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTU0MTQsIDAuMjA3MTEsIDAuMjgyNTE3LCAwLjMzNTMzMSwgMC40MTk0MDIsIDAuNDkyODI0LCAwLjU5NzcwOCIsIFwKLSAgICAgICAgICAiMC4xMjI4NjMsIDAuMjE0NjM4LCAwLjI5MDI5NCwgMC4zNDMxMTcsIDAuNDI3MTY5LCAwLjUwMDYxLCAwLjYwNTUwNiIsIFwKLSAgICAgICAgICAiMC4xMzMwMTMsIDAuMjI0ODI1LCAwLjMwMDQ2MywgMC4zNTMyNTYsIDAuNDM3MzE1LCAwLjUxMDc2MiwgMC42MTU2NTMiLCBcCi0gICAgICAgICAgIjAuMTQzNDc4LCAwLjIzNTI0NywgMC4zMTA4ODYsIDAuMzYzNzA2LCAwLjQ0Nzc5LCAwLjUyMTIyMiwgMC42MjYxNzYiLCBcCi0gICAgICAgICAgIjAuMTUzOTgyLCAwLjI0NTc2NiwgMC4zMjEzNDksIDAuMzc0MTc4LCAwLjQ1ODI0NSwgMC41MzE3MTcsIDAuNjM2NTc5IiwgXAotICAgICAgICAgICIwLjE3MDY5NiwgMC4yNjIyNTcsIDAuMzM3OTA1LCAwLjM5MDY4OCwgMC40NzQ3NTMsIDAuNTQ4MjEzLCAwLjY1MzEwMSIsIFwKLSAgICAgICAgICAiMC4xODQ3NzQsIDAuMjc2NzA0LCAwLjM1MjMzNywgMC40MDUxMTcsIDAuNDg5MTcyLCAwLjU2MjYyOSwgMC42Njc1MTQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTYxMjksIDAuMTk4NTQ5LCAwLjM0MTMyLCAwLjQ0NDU4NCwgMC42MTIyOCwgMC43NTk4ODQsIDAuOTcxMjc4IiwgXAotICAgICAgICAgICIwLjA1NjA4MywgMC4xOTg1ODEsIDAuMzQxMDc5LCAwLjQ0NDQxOSwgMC42MTE4MzMsIDAuNzU4NjgsIDAuOTcxMzA2IiwgXAotICAgICAgICAgICIwLjA1NjA0NiwgMC4xOTg1MjcsIDAuMzQwODg5LCAwLjQ0NDQxNiwgMC42MTE4NDcsIDAuNzU4ODE5LCAwLjk3MTIyMyIsIFwKLSAgICAgICAgICAiMC4wNTYwNjgsIDAuMTk4NDA1LCAwLjM0MTA1NiwgMC40NDQzNDQsIDAuNjExODU4LCAwLjc1OTgyMSwgMC45NzE1MjQiLCBcCi0gICAgICAgICAgIjAuMDU1OTI3LCAwLjE5ODM2OSwgMC4zNDA5ODQsIDAuNDQ0MzM0LCAwLjYxMTk3NywgMC43NTk5MzYsIDAuOTcxMTg3IiwgXAotICAgICAgICAgICIwLjA1NjE5LCAwLjE5ODg4NiwgMC4zNDEzMTksIDAuNDQ0NTczLCAwLjYxMjAwMSwgMC43NTk4NjQsIDAuOTcxMjg0IiwgXAotICAgICAgICAgICIwLjA1NzksIDAuMTk5MTM3LCAwLjM0MTMyNSwgMC40NDQ2MzYsIDAuNjExOTY3LCAwLjc1OTkwMywgMC45NzEyODYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNTE4NiwgMC4wMDUzMTYsIDAuMDA1MzI4LCAwLjAwNTM0MiwgMC4wMDUzNDMsIDAuMDA1MzQ1LCAwLjAwNTM0NSIsIFwKLSAgICAgICAgICAiMC4wMDUxNDQsIDAuMDA1Mjc2LCAwLjAwNTI5NiwgMC4wMDUzLCAwLjAwNTMwNywgMC4wMDUzMSwgMC4wMDUzMDkiLCBcCi0gICAgICAgICAgIjAuMDA1MTI5LCAwLjAwNTI1NCwgMC4wMDUyNzcsIDAuMDA1Mjg0LCAwLjAwNTI5MiwgMC4wMDUyOTQsIDAuMDA1Mjk4IiwgXAotICAgICAgICAgICIwLjAwNTEzMSwgMC4wMDUyNDgsIDAuMDA1Mjc0LCAwLjAwNTI4MiwgMC4wMDUyOSwgMC4wMDUyOTQsIDAuMDA1Mjk5IiwgXAotICAgICAgICAgICIwLjAwNTEyMywgMC4wMDUyNDIsIDAuMDA1MjcyLCAwLjAwNTI4MiwgMC4wMDUyOTEsIDAuMDA1Mjk2LCAwLjAwNTMwNiIsIFwKLSAgICAgICAgICAiMC4wMDUxNjgsIDAuMDA1MjU1LCAwLjAwNTI4OCwgMC4wMDUyOTksIDAuMDA1MzA5LCAwLjAwNTMxOCwgMC4wMDUzMiIsIFwKLSAgICAgICAgICAiMC4wMDUyMDksIDAuMDA1Mjc3LCAwLjAwNTMwNiwgMC4wMDUzMTcsIDAuMDA1MzI2LCAwLjAwNTMzNywgMC4wMDUzMzciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNzUwOSwgMC4wMDc2NzksIDAuMDA3NzMzLCAwLjAwNzc1LCAwLjAwNzc2NywgMC4wMDc3NzUsIDAuMDA3NzgzIiwgXAotICAgICAgICAgICIwLjAwNzUwMiwgMC4wMDc2NTEsIDAuMDA3NzA2LCAwLjAwNzcyNCwgMC4wMDc3NCwgMC4wMDc3NDksIDAuMDA3NzU3IiwgXAotICAgICAgICAgICIwLjAwNzQ2NywgMC4wMDc2NDEsIDAuMDA3Njk0LCAwLjAwNzcxMSwgMC4wMDc3MjcsIDAuMDA3NzM2LCAwLjAwNzc0NCIsIFwKLSAgICAgICAgICAiMC4wMDc0NSwgMC4wMDc2MjUsIDAuMDA3NjgxLCAwLjAwNzcsIDAuMDA3NzE3LCAwLjAwNzcyNiwgMC4wMDc3MzUiLCBcCi0gICAgICAgICAgIjAuMDA3NDM1LCAwLjAwNzYxNiwgMC4wMDc2NzQsIDAuMDA3NjkzLCAwLjAwNzcxMSwgMC4wMDc3MjEsIDAuMDA3NzMiLCBcCi0gICAgICAgICAgIjAuMDA3NDM3LCAwLjAwNzYxLCAwLjAwNzY2OCwgMC4wMDc2ODgsIDAuMDA3NzA3LCAwLjAwNzcxNiwgMC4wMDc3MjUiLCBcCi0gICAgICAgICAgIjAuMDA3NDU2LCAwLjAwNzYwNiwgMC4wMDc2NjQsIDAuMDA3Njg0LCAwLjAwNzcwMywgMC4wMDc3MTQsIDAuMDA3NzIzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQ4ODgsIDAuMDA1MDU2LCAwLjAwNTA3OCwgMC4wMDUwODUsIDAuMDA1MDkxLCAwLjAwNTA5NCwgMC4wMDUwOTciLCBcCi0gICAgICAgICAgIjAuMDA0ODQ3LCAwLjAwNTAyMSwgMC4wMDUwNDgsIDAuMDA1MDU0LCAwLjAwNTA2NSwgMC4wMDUwNjQsIDAuMDA1MDY4IiwgXAotICAgICAgICAgICIwLjAwNDgwOSwgMC4wMDQ5ODksIDAuMDA1MDIsIDAuMDA1MDMyLCAwLjAwNTAzOSwgMC4wMDUwNDYsIDAuMDA1MDQ5IiwgXAotICAgICAgICAgICIwLjAwNDgxMywgMC4wMDQ5NzUsIDAuMDA1MDE0LCAwLjAwNTAyNywgMC4wMDUwMzQsIDAuMDA1MDM5LCAwLjAwNTA0NCIsIFwKLSAgICAgICAgICAiMC4wMDQ4MDYsIDAuMDA0OTYxLCAwLjAwNSwgMC4wMDUwMTYsIDAuMDA1MDMsIDAuMDA1MDM3LCAwLjAwNTA0MSIsIFwKLSAgICAgICAgICAiMC4wMDQ3OTcsIDAuMDA0OTU1LCAwLjAwNTAwNSwgMC4wMDUwMTksIDAuMDA1MDMyLCAwLjAwNTA0NiwgMC4wMDUwNSIsIFwKLSAgICAgICAgICAiMC4wMDQ4NTQsIDAuMDA0OTYxLCAwLjAwNTAwNiwgMC4wMDUwMjYsIDAuMDA1MDMxLCAwLjAwNTA0MywgMC4wMDUwNDkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNzE2NywgMC4wMDczNDYsIDAuMDA3Mzk5LCAwLjAwNzQxOCwgMC4wMDc0MzQsIDAuMDA3NDQzLCAwLjAwNzQ1MSIsIFwKLSAgICAgICAgICAiMC4wMDcxNzEsIDAuMDA3MzE5LCAwLjAwNzM3MywgMC4wMDczOTQsIDAuMDA3NDExLCAwLjAwNzQxOSwgMC4wMDc0MjciLCBcCi0gICAgICAgICAgIjAuMDA3MTMyLCAwLjAwNzMwMSwgMC4wMDczNTYsIDAuMDA3Mzc0LCAwLjAwNzM5MiwgMC4wMDc0MDEsIDAuMDA3NDEiLCBcCi0gICAgICAgICAgIjAuMDA3MTA0LCAwLjAwNzI4MywgMC4wMDczNDIsIDAuMDA3MzYzLCAwLjAwNzM4MiwgMC4wMDczOTIsIDAuMDA3NDAxIiwgXAotICAgICAgICAgICIwLjAwNzA5NSwgMC4wMDcyNzUsIDAuMDA3MzM1LCAwLjAwNzM1NiwgMC4wMDczNzUsIDAuMDA3Mzg2LCAwLjAwNzM5NSIsIFwKLSAgICAgICAgICAiMC4wMDcxMjMsIDAuMDA3MjczLCAwLjAwNzMzMSwgMC4wMDczNTIsIDAuMDA3MzcyLCAwLjAwNzM4MiwgMC4wMDczOTIiLCBcCi0gICAgICAgICAgIjAuMDA3MTUyLCAwLjAwNzI3MywgMC4wMDczMywgMC4wMDczNTEsIDAuMDA3MzcxLCAwLjAwNzM4MSwgMC4wMDczOTEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDU2LCAwLjAwNDcyMSwgMC4wMDQ3NDgsIDAuMDA0NzUxLCAwLjAwNDc1MiwgMC4wMDQ3NTEsIDAuMDA0NzU3IiwgXAotICAgICAgICAgICIwLjAwNDUyOSwgMC4wMDQ3LCAwLjAwNDcyNCwgMC4wMDQ3MzEsIDAuMDA0NzM3LCAwLjAwNDc0LCAwLjAwNDc0NCIsIFwKLSAgICAgICAgICAiMC4wMDQ0ODksIDAuMDA0NjY4LCAwLjAwNDY5NywgMC4wMDQ3MDgsIDAuMDA0NzE3LCAwLjAwNDcyMiwgMC4wMDQ3MjQiLCBcCi0gICAgICAgICAgIjAuMDA0NDc0LCAwLjAwNDY1NCwgMC4wMDQ2OTMsIDAuMDA0NywgMC4wMDQ3MTQsIDAuMDA0NzE5LCAwLjAwNDcyNSIsIFwKLSAgICAgICAgICAiMC4wMDQ0ODgsIDAuMDA0NjQ4LCAwLjAwNDY4OSwgMC4wMDQ3MDEsIDAuMDA0NzE0LCAwLjAwNDcyLCAwLjAwNDcyNiIsIFwKLSAgICAgICAgICAiMC4wMDQ0OTEsIDAuMDA0NjI2LCAwLjAwNDY2NSwgMC4wMDQ2OCwgMC4wMDQ2OTcsIDAuMDA0NzA0LCAwLjAwNDcxMSIsIFwKLSAgICAgICAgICAiMC4wMDQ0NzIsIDAuMDA0NjIyLCAwLjAwNDY2OSwgMC4wMDQ2OTEsIDAuMDA0NzAyLCAwLjAwNDcxLCAwLjAwNDcxNyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2ODI2LCAwLjAwNzAxNiwgMC4wMDcwNjgsIDAuMDA3MDg2LCAwLjAwNzEwMywgMC4wMDcxMTIsIDAuMDA3MTIiLCBcCi0gICAgICAgICAgIjAuMDA2ODQ3LCAwLjAwNjk4NywgMC4wMDcwNDEsIDAuMDA3MDU5LCAwLjAwNzA3NiwgMC4wMDcwODYsIDAuMDA3MDk0IiwgXAotICAgICAgICAgICIwLjAwNjc5NSwgMC4wMDY5NTcsIDAuMDA3MDE3LCAwLjAwNzAzNywgMC4wMDcwNTcsIDAuMDA3MDY3LCAwLjAwNzA3NiIsIFwKLSAgICAgICAgICAiMC4wMDY3NjQsIDAuMDA2OTQ1LCAwLjAwNzAwNSwgMC4wMDcwMjcsIDAuMDA3MDQ3LCAwLjAwNzA1NywgMC4wMDcwNjciLCBcCi0gICAgICAgICAgIjAuMDA2NzgsIDAuMDA2OTM0LCAwLjAwNjk5NiwgMC4wMDcwMTgsIDAuMDA3MDM5LCAwLjAwNzA1MSwgMC4wMDcwNjEiLCBcCi0gICAgICAgICAgIjAuMDA2ODA1LCAwLjAwNjkzNCwgMC4wMDY5OTMsIDAuMDA3MDE1LCAwLjAwNzAzNywgMC4wMDcwNDgsIDAuMDA3MDU5IiwgXAotICAgICAgICAgICIwLjAwNjg4NCwgMC4wMDY5NCwgMC4wMDY5OTcsIDAuMDA3MDE4LCAwLjAwNzAzOCwgMC4wMDcwNSwgMC4wMDcwNiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkQiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0MjU0LCAwLjAwNDQxNCwgMC4wMDQ0MjksIDAuMDA0NDI4LCAwLjAwNDQzNCwgMC4wMDQ0MzYsIDAuMDA0NDM4IiwgXAotICAgICAgICAgICIwLjAwNDIxOSwgMC4wMDQzODcsIDAuMDA0NDA3LCAwLjAwNDQxNCwgMC4wMDQ0MiwgMC4wMDQ0MjIsIDAuMDA0NDI0IiwgXAotICAgICAgICAgICIwLjAwNDE4NywgMC4wMDQzNTgsIDAuMDA0MzgzLCAwLjAwNDM5MywgMC4wMDQzOTksIDAuMDA0NDA0LCAwLjAwNDQwNyIsIFwKLSAgICAgICAgICAiMC4wMDQxNTMsIDAuMDA0MzM0LCAwLjAwNDM2NywgMC4wMDQzNzgsIDAuMDA0Mzg4LCAwLjAwNDM5MywgMC4wMDQzOTkiLCBcCi0gICAgICAgICAgIjAuMDA0MTU4LCAwLjAwNDMyMSwgMC4wMDQzNjEsIDAuMDA0MzczLCAwLjAwNDM4NSwgMC4wMDQzOTEsIDAuMDA0Mzk3IiwgXAotICAgICAgICAgICIwLjAwNDE3OSwgMC4wMDQzMjMsIDAuMDA0MzYsIDAuMDA0Mzc3LCAwLjAwNDM4OSwgMC4wMDQzOTksIDAuMDA0NDAzIiwgXAotICAgICAgICAgICIwLjAwNDIxMSwgMC4wMDQzMzEsIDAuMDA0MzY5LCAwLjAwNDM5MSwgMC4wMDQ0MDcsIDAuMDA0NDE2LCAwLjAwNDQyMiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2NDgxLCAwLjAwNjY2MywgMC4wMDY3MTMsIDAuMDA2NzM0LCAwLjAwNjc1NCwgMC4wMDY3NjUsIDAuMDA2Nzc0IiwgXAotICAgICAgICAgICIwLjAwNjQzMiwgMC4wMDY2MjMsIDAuMDA2NjgyLCAwLjAwNjcwMiwgMC4wMDY3MjEsIDAuMDA2NzMsIDAuMDA2NzQiLCBcCi0gICAgICAgICAgIjAuMDA2NDE2LCAwLjAwNjU5OSwgMC4wMDY2NiwgMC4wMDY2ODEsIDAuMDA2NzAyLCAwLjAwNjcxMiwgMC4wMDY3MjIiLCBcCi0gICAgICAgICAgIjAuMDA2NDEzLCAwLjAwNjU5MSwgMC4wMDY2NTMsIDAuMDA2Njc1LCAwLjAwNjY5NywgMC4wMDY3MDgsIDAuMDA2NzE5IiwgXAotICAgICAgICAgICIwLjAwNjQyOCwgMC4wMDY1ODgsIDAuMDA2NjUxLCAwLjAwNjY3NSwgMC4wMDY2OTgsIDAuMDA2NzEsIDAuMDA2NzIyIiwgXAotICAgICAgICAgICIwLjAwNjQ4MiwgMC4wMDY1OTEsIDAuMDA2NjU3LCAwLjAwNjY4MiwgMC4wMDY3MDgsIDAuMDA2NzIyLCAwLjAwNjczNiIsIFwKLSAgICAgICAgICAiMC4wMDY2MywgMC4wMDY2NDYsIDAuMDA2Njk1LCAwLjAwNjcxNiwgMC4wMDY3MzgsIDAuMDA2NzUsIDAuMDA2NzYyIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IE9SNFg2ICoKLSAqIC0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChPUjRYNikgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjU2OTQzOTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAyMDIxNzg7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAyMDA4NDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDIwMjE3ODsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA2OTEsIDAuMDAwNzI3LCAwLjAwMDc0NiwgMC4wMDA3NTUsIDAuMDAwNzU5LCAwLjAwMDc2MiwgMC4wMDA3NjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDIwODcsIDAuMDAyMDg4LCAwLjAwMjA4OCwgMC4wMDIwODgsIDAuMDAyMDg4LCAwLjAwMjA4OSwgMC4wMDIwODgiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTkyNjIxOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTkxNDQ7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxOTI2MjE7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNjc4LCAwLjAwMDcyNCwgMC4wMDA3NDcsIDAuMDAwNzU2LCAwLjAwMDc2MiwgMC4wMDA3NzMsIDAuMDAwNzc5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxNDkxLCAwLjAwMTQ5MiwgMC4wMDE0OTIsIDAuMDAxNDkyLCAwLjAwMTQ5MiwgMC4wMDE0OTIsIDAuMDAxNDkyIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihDKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE3NDc4NTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE3MzY3ODsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE3NDc4NTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA2OTEsIDAuMDAwNzYzLCAwLjAwMDc3OCwgMC4wMDA3ODQsIDAuMDAwNzg2LCAwLjAwMDc4NywgMC4wMDA3OSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDg2LCAwLjAwMDg2MSwgMC4wMDA4NjEsIDAuMDAwODYxLCAwLjAwMDg2MSwgMC4wMDA4NjEsIDAuMDAwODYxIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihEKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE2MTk2MjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE2MTk2MjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE2MTkxNjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyMTksIDAuMDAwMjE5LCAwLjAwMDIxOSwgMC4wMDAyMTksIDAuMDAwMjE5LCAwLjAwMDIxOSwgMC4wMDAyMTkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA2ODksIDAuMDAwNjg5LCAwLjAwMDY4OSwgMC4wMDA2ODksIDAuMDAwNjg5LCAwLjAwMDY4OSwgMC4wMDA2ODkiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMS41MTcxNzsKLSAgICBmdW5jdGlvbiA6ICIoKChBK0IpK0MpK0QpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0Mjk4OSwgMC4wOTQzNTUsIDAuMTQzNzU4LCAwLjE3ODk1NSwgMC4yMzUyMTMsIDAuMjg0NDAxLCAwLjM1NDY1MSIsIFwKLSAgICAgICAgICAiMC4wNTMxNzIsIDAuMTA0NTA0LCAwLjE1MzkxNCwgMC4xODkxMTQsIDAuMjQ1MzY3LCAwLjI5NDU2MSwgMC4zNjQ4MTYiLCBcCi0gICAgICAgICAgIjAuMDY2MTYyLCAwLjExNzQwMSwgMC4xNjY4MDYsIDAuMjAyMDEzLCAwLjI1ODI2OCwgMC4zMDc0NjMsIDAuMzc3NzIxIiwgXAotICAgICAgICAgICIwLjA3ODQ1OCwgMC4xMjk3NjksIDAuMTc5MTU3LCAwLjIxNDM2LCAwLjI3MDYyNSwgMC4zMTk4MTQsIDAuMzkwMDYzIiwgXAotICAgICAgICAgICIwLjA4OTI1NywgMC4xNDA1OTIsIDAuMTg5OTY0LCAwLjIyNTE2LCAwLjI4MTQyLCAwLjMzMDYyMSwgMC40MDA4NjUiLCBcCi0gICAgICAgICAgIjAuMTA0MjE4LCAwLjE1NjAwMiwgMC4yMDUzODIsIDAuMjQwNTYsIDAuMjk2ODEyLCAwLjM0NjAxOSwgMC40MTYyODUiLCBcCi0gICAgICAgICAgIjAuMTE2MjYzLCAwLjE2ODU5MSwgMC4yMTc5NTgsIDAuMjUzMTUsIDAuMzA5MzkyLCAwLjM1ODYxMiwgMC40Mjg4ODEiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjYyMDYsIDAuMTI0MjA5LCAwLjIyNDkyNSwgMC4yOTY4NTIsIDAuNDEzMDI2LCAwLjUxNDU0LCAwLjY1OTQ1NiIsIFwKLSAgICAgICAgICAiMC4wMjYwOTgsIDAuMTI0MDMsIDAuMjI0ODk4LCAwLjI5NzI2NywgMC40MTMwOTEsIDAuNTE0OTM3LCAwLjY1OTk0OCIsIFwKLSAgICAgICAgICAiMC4wMjYxMTMsIDAuMTI0MDkxLCAwLjIyNDg3MiwgMC4yOTcxNjYsIDAuNDEzMDMsIDAuNTE0OTI2LCAwLjY1OTk4IiwgXAotICAgICAgICAgICIwLjAyNjk1LCAwLjEyNDI3MSwgMC4yMjUwODEsIDAuMjk3MTY4LCAwLjQxMjcyNiwgMC41MTQ4NTYsIDAuNjU5MzEiLCBcCi0gICAgICAgICAgIjAuMDI4MzMsIDAuMTI0MzMyLCAwLjIyNTA5OCwgMC4yOTc0MzQsIDAuNDEzMzUyLCAwLjUxNDg2NCwgMC42NTk4NjkiLCBcCi0gICAgICAgICAgIjAuMDMwMjQ2LCAwLjEyNTA1MSwgMC4yMjUxMjksIDAuMjk3MjYyLCAwLjQxMzAzNywgMC41MTQ5MDQsIDAuNjU5OTM2IiwgXAotICAgICAgICAgICIwLjAzMTY2MywgMC4xMjU0MDUsIDAuMjI1MzA3LCAwLjI5NzYzOSwgMC40MTI3NTgsIDAuNTE0OTI1LCAwLjY1ODkwMyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExMDY5NiwgMC4xNzY1MjUsIDAuMjI5ODAyLCAwLjI2NjY0NiwgMC4zMjUwOTgsIDAuMzc2MDUxLCAwLjQ0ODg0OSIsIFwKLSAgICAgICAgICAiMC4xMTg1ODcsIDAuMTg0NDI3LCAwLjIzNzc0NCwgMC4yNzQ1NjEsIDAuMzMzMDA0LCAwLjM4Mzk4MiwgMC40NTY3NDMiLCBcCi0gICAgICAgICAgIjAuMTI2ODIzLCAwLjE5Mjc5NiwgMC4yNDYwNzEsIDAuMjgyODk0LCAwLjM0MTMyNywgMC4zOTIzMiwgMC40NjUwOCIsIFwKLSAgICAgICAgICAiMC4xMzQyNzIsIDAuMjAwMzI2LCAwLjI1MzU4NiwgMC4yOTA0MjEsIDAuMzQ4ODgxLCAwLjM5OTgzMSwgMC40NzI1OSIsIFwKLSAgICAgICAgICAiMC4xNDE0MzUsIDAuMjA3MzUzLCAwLjI2MDYxOSwgMC4yOTc0MzksIDAuMzU1ODk2LCAwLjQwNjg3OCwgMC40Nzk2MzkiLCBcCi0gICAgICAgICAgIjAuMTUxNzc1LCAwLjIxNzkxNiwgMC4yNzExNjgsIDAuMzA4MDAxLCAwLjM2NjQ0OCwgMC40MTc0MjgsIDAuNDkwMTg5IiwgXAotICAgICAgICAgICIwLjE1OTk5NiwgMC4yMjY1MDYsIDAuMjc5ODQ1LCAwLjMxNjcyNSwgMC4zNzUxNTEsIDAuNDI2MTMsIDAuNDk4ODk1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQzMTc0LCAwLjE0MjU2NSwgMC4yMzk5NzIsIDAuMzEwOTU0LCAwLjQyNTUwMywgMC41MjY3NDUsIDAuNjcyOTMxIiwgXAotICAgICAgICAgICIwLjA0MzEwMiwgMC4xNDI1MTYsIDAuMjQwMTIxLCAwLjMxMDk1MywgMC40MjU1NTMsIDAuNTI2NzIxLCAwLjY3MjY2OCIsIFwKLSAgICAgICAgICAiMC4wNDMxNTQsIDAuMTQyNDE1LCAwLjI0MDA2OCwgMC4zMTA5MTcsIDAuNDI1ODY1LCAwLjUyNjc1NCwgMC42NzI2NTQiLCBcCi0gICAgICAgICAgIjAuMDQzMTE3LCAwLjE0MjI0LCAwLjIzOTk5OSwgMC4zMTA3MTcsIDAuNDI1NDEyLCAwLjUyNzMzMSwgMC42NzI2MzUiLCBcCi0gICAgICAgICAgIjAuMDQyOTk4LCAwLjE0MjIyMiwgMC4yMzk5NjMsIDAuMzEwODI0LCAwLjQyNTY5OCwgMC41MjY4MTMsIDAuNjcyNjQ5IiwgXAotICAgICAgICAgICIwLjA0MzYxOCwgMC4xNDI1MzMsIDAuMjQwMTM1LCAwLjMxMTEyNiwgMC40MjU0OSwgMC41MjY4MSwgMC42NzI2ODIiLCBcCi0gICAgICAgICAgIjAuMDQ0NTY0LCAwLjE0Mjk5LCAwLjI0MDQyOCwgMC4zMTEyNjgsIDAuNDI2MDE3LCAwLjUyNzUxMiwgMC42NzI3NzgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDE2OTEsIDAuMDkyNjM3LCAwLjE0MTk0OSwgMC4xNzcxMTUsIDAuMjMzMzE1LCAwLjI4MjQ3MiwgMC4zNTI2OTciLCBcCi0gICAgICAgICAgIjAuMDUxODQ4LCAwLjEwMjc5NCwgMC4xNTIxMjMsIDAuMTg3Mjk1LCAwLjI0MzUzNywgMC4yOTI2NzMsIDAuMzYyODk0IiwgXAotICAgICAgICAgICIwLjA2NDc0OSwgMC4xMTU2MjksIDAuMTY0OTQ4LCAwLjIwMDEyNiwgMC4yNTYzMzgsIDAuMzA1NTI5LCAwLjM3NTc4NyIsIFwKLSAgICAgICAgICAiMC4wNzY2MzIsIDAuMTI3NTk5LCAwLjE3NjkwNiwgMC4yMTIwODEsIDAuMjY4MzE5LCAwLjMxNzQ5MSwgMC4zODc3MjEiLCBcCi0gICAgICAgICAgIjAuMDg2OTksIDAuMTM4MTA1LCAwLjE4NzQxLCAwLjIyMjU4OCwgMC4yNzg4MjcsIDAuMzI3OTgxLCAwLjM5ODIyMSIsIFwKLSAgICAgICAgICAiMC4xMDE1OTcsIDAuMTUzMzkyLCAwLjIwMjY2OSwgMC4yMzc4MjMsIDAuMjk0MDUsIDAuMzQzMTkzLCAwLjQxMzQ0IiwgXAotICAgICAgICAgICIwLjExMjU1NCwgMC4xNjQ4NTMsIDAuMjE0MDUsIDAuMjQ5MTg2LCAwLjMwNTQxNSwgMC4zNTQ1NiwgMC40MjQ3ODkiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjU1NDcsIDAuMTIzNTM2LCAwLjIyNDQwMSwgMC4yOTcyMTgsIDAuNDEzMTcxLCAwLjUxNDY3LCAwLjY1OTU4MSIsIFwKLSAgICAgICAgICAiMC4wMjU0NiwgMC4xMjM2NDcsIDAuMjI0NDc4LCAwLjI5NjQ2OCwgMC40MTI0MjcsIDAuNTE0MiwgMC42NTkwMTIiLCBcCi0gICAgICAgICAgIjAuMDI1NTk4LCAwLjEyMzU5NCwgMC4yMjQ0NjEsIDAuMjk2NzI0LCAwLjQxMzEyOCwgMC41MTQ3MDYsIDAuNjU5ODkiLCBcCi0gICAgICAgICAgIjAuMDI2NTM0LCAwLjEyMzczMSwgMC4yMjQ3NDIsIDAuMjk2OCwgMC40MTMxNzUsIDAuNTE0Njk1LCAwLjY1OTc2MSIsIFwKLSAgICAgICAgICAiMC4wMjc4ODcsIDAuMTI0MDMsIDAuMjI0Nzc4LCAwLjI5NzE5OSwgMC40MTMxMjQsIDAuNTE0NTk1LCAwLjY1OTcyNCIsIFwKLSAgICAgICAgICAiMC4wMjk5NjIsIDAuMTI0NjcsIDAuMjI1MDMzLCAwLjI5NzAwMiwgMC40MTI0OTYsIDAuNTE0NjIzLCAwLjY1ODUyNSIsIFwKLSAgICAgICAgICAiMC4wMzE2MjgsIDAuMTI1MjIyLCAwLjIyNTA0NCwgMC4yOTczMDgsIDAuNDEzMTY2LCAwLjUxNDYxLCAwLjY1OTY0NyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwNzY0NywgMC4xNzM2ODcsIDAuMjI2OTgyLCAwLjI2Mzg0NSwgMC4zMjIyODQsIDAuMzczMjcxLCAwLjQ0NjAyNiIsIFwKLSAgICAgICAgICAiMC4xMTU2NTYsIDAuMTgxNTcyLCAwLjIzNDkwNCwgMC4yNzE3NjIsIDAuMzMwMjA0LCAwLjM4MTE4NSwgMC40NTM5NSIsIFwKLSAgICAgICAgICAiMC4xMjQ0NTMsIDAuMTkwNDMsIDAuMjQzNzEyLCAwLjI4MDUzNSwgMC4zMzg5OCwgMC4zODk5NjUsIDAuNDYyNzI2IiwgXAotICAgICAgICAgICIwLjEzMjc5MSwgMC4xOTg3MzUsIDAuMjUyMDM2LCAwLjI4ODg2LCAwLjM0NzMxNywgMC4zOTgyODMsIDAuNDcxMDY0IiwgXAotICAgICAgICAgICIwLjE0MDg2OCwgMC4yMDY3NzEsIDAuMjYwMDUxLCAwLjI5NjkwNCwgMC4zNTUzNTIsIDAuNDA2MzE3LCAwLjQ3OTA5NCIsIFwKLSAgICAgICAgICAiMC4xNTMwMDEsIDAuMjE5MDc3LCAwLjI3MjQxNCwgMC4zMDkyNDgsIDAuMzY3NzI3LCAwLjQxODY4OSwgMC40OTE0NzYiLCBcCi0gICAgICAgICAgIjAuMTYyOTI2LCAwLjIyOTMxNywgMC4yODI3MDMsIDAuMzE5NTk0LCAwLjM3ODAzMSwgMC40MjkwMDYsIDAuNTAxNzcxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQzMzM4LCAwLjE0MjM5NCwgMC4yNDAwNjgsIDAuMzExMDMsIDAuNDI1MjAyLCAwLjUyNzMzMywgMC42NzI2MTMiLCBcCi0gICAgICAgICAgIjAuMDQzMDk3LCAwLjE0MjM3OCwgMC4yNDAwNDEsIDAuMzEwOTIzLCAwLjQyNTQ1NywgMC41MjcyODYsIDAuNjcyNTkyIiwgXAotICAgICAgICAgICIwLjA0MzEyMSwgMC4xNDIzNjksIDAuMjQwMDQ0LCAwLjMxMDg5MiwgMC40MjU1NTMsIDAuNTI2NzM2LCAwLjY3MjY1NyIsIFwKLSAgICAgICAgICAiMC4wNDMxMzUsIDAuMTQyMjU5LCAwLjIzOTk5LCAwLjMxMDg1LCAwLjQyNTQsIDAuNTI2OTM2LCAwLjY3MjcxNyIsIFwKLSAgICAgICAgICAiMC4wNDMxNTksIDAuMTQyMjUyLCAwLjIzOTk4NCwgMC4zMTA5NTYsIDAuNDI1Mzk3LCAwLjUyNjg2OSwgMC42NzE1ODEiLCBcCi0gICAgICAgICAgIjAuMDQzODY2LCAwLjE0Mjc1NywgMC4yNDAyODUsIDAuMzExMDMxLCAwLjQyNTUyOCwgMC41MjY5MTQsIDAuNjcyNzc2IiwgXAotICAgICAgICAgICIwLjA0NDg3MywgMC4xNDMzNDcsIDAuMjQwNjY3LCAwLjMxMTQsIDAuNDI1NzU2LCAwLjUyNjk0MiwgMC42NzI4MTYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzk0OTIsIDAuMDkwMTI0LCAwLjEzOTM2MiwgMC4xNzQ1MDEsIDAuMjMwNjY5LCAwLjI3OTgxOCwgMC4zNTAwMzkiLCBcCi0gICAgICAgICAgIjAuMDQ5Nzc0LCAwLjEwMDQxMiwgMC4xNDk2NTIsIDAuMTg0ODE1LCAwLjI0MDk3LCAwLjI5MDEyLCAwLjM2MDMzMiIsIFwKLSAgICAgICAgICAiMC4wNjI0OTksIDAuMTEzMTQyLCAwLjE2MjM4NiwgMC4xOTc1NTQsIDAuMjUzNzA4LCAwLjMwMjg2MSwgMC4zNzMwODIiLCBcCi0gICAgICAgICAgIjAuMDczODY0LCAwLjEyNDY0MSwgMC4xNzM4NzgsIDAuMjA5MDI3LCAwLjI2NTIxOCwgMC4zMTQzNTMsIDAuMzg0NTY5IiwgXAotICAgICAgICAgICIwLjA4NDAyNSwgMC4xMzUxOSwgMC4xODQzNTMsIDAuMjE5NDg2LCAwLjI3NTY5MywgMC4zMjQ4MywgMC4zOTUwMjciLCBcCi0gICAgICAgICAgIjAuMDk3NTk2LCAwLjE0OTI4LCAwLjE5ODUzLCAwLjIzMzY2MSwgMC4yODk4NDgsIDAuMzM5MDE1LCAwLjQwOTIwOCIsIFwKLSAgICAgICAgICAiMC4xMDc5MDMsIDAuMTYwMjI3LCAwLjIwOTQwMiwgMC4yNDQ1MSwgMC4zMDA3MDMsIDAuMzQ5ODY4LCAwLjQyMDA1MyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyNTAyNSwgMC4xMjMyNjEsIDAuMjI0MjAxLCAwLjI5Njk1MywgMC40MTI5NDQsIDAuNTEzOTMsIDAuNjU4MzUzIiwgXAotICAgICAgICAgICIwLjAyNTAyLCAwLjEyMzI4OCwgMC4yMjQxNzgsIDAuMjk2OTc4LCAwLjQxMjkyMSwgMC41MTM4OTgsIDAuNjU4ODIyIiwgXAotICAgICAgICAgICIwLjAyNTM1NSwgMC4xMjMzMjUsIDAuMjI0MjAyLCAwLjI5NjM3NCwgMC40MTI5MDgsIDAuNTEzOTAxLCAwLjY1OTU4OSIsIFwKLSAgICAgICAgICAiMC4wMjY3NTUsIDAuMTIzNDU3LCAwLjIyNDQ4MiwgMC4yOTYzNzQsIDAuNDEyODcxLCAwLjUxNDM4NiwgMC42NTg4NjMiLCBcCi0gICAgICAgICAgIjAuMDI3ODY2LCAwLjEyMzgzLCAwLjIyNDIyOCwgMC4yOTY4OTcsIDAuNDEyODkyLCAwLjUxNDM5NywgMC42NTk0MDciLCBcCi0gICAgICAgICAgIjAuMDMwMDM4LCAwLjEyNDU1NywgMC4yMjQ4NCwgMC4yOTY5NzUsIDAuNDEyNTM4LCAwLjUxMzc2MSwgMC42NTk0NTIiLCBcCi0gICAgICAgICAgIjAuMDMxOTUzLCAwLjEyNTEzNiwgMC4yMjQ5MDEsIDAuMjk3MTc4LCAwLjQxMjg5OCwgMC41MTQzNjQsIDAuNjU4NjI3Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTAxMjIyLCAwLjE2NzA1MywgMC4yMjAzODQsIDAuMjU3MjAyLCAwLjMxNTYzNSwgMC4zNjY2MjcsIDAuNDM5MzkxIiwgXAotICAgICAgICAgICIwLjEwOTAyNCwgMC4xNzQ4NDYsIDAuMjI4MTc3LCAwLjI2NDk5NSwgMC4zMjM0MzYsIDAuMzc0NDIsIDAuNDQ3MTg0IiwgXAotICAgICAgICAgICIwLjExODU0NywgMC4xODQ0NzksIDAuMjM3NzY3LCAwLjI3NDU5NCwgMC4zMzMwNCwgMC4zODQwMjMsIDAuNDU2Nzg3IiwgXAotICAgICAgICAgICIwLjEyODA0MywgMC4xOTQwNDQsIDAuMjQ3MzIyLCAwLjI4NDE1OCwgMC4zNDI2MTgsIDAuMzkzNTkxLCAwLjQ2NjM1NSIsIFwKLSAgICAgICAgICAiMC4xMzc2NzIsIDAuMjAzNDQ1LCAwLjI1NjczNywgMC4yOTM1OSwgMC4zNTIwMzksIDAuNDAzMDI5LCAwLjQ3NTc4NCIsIFwKLSAgICAgICAgICAiMC4xNTE4NTQsIDAuMjE4MDI0LCAwLjI3MTM1MywgMC4zMDgxNzksIDAuMzY2NjQ2LCAwLjQxNzYzOSwgMC40OTA0MDUiLCBcCi0gICAgICAgICAgIjAuMTYzNDc4LCAwLjIzMDAzOCwgMC4yODM1MTQsIDAuMzIwMjA3LCAwLjM3ODY2NSwgMC40Mjk2MjUsIDAuNTAyNDEzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQzMDYxLCAwLjE0MjUyOSwgMC4yNDAxMjQsIDAuMzEwOTU5LCAwLjQyNTgzNSwgMC41MjY3MDUsIDAuNjcyNjgxIiwgXAotICAgICAgICAgICIwLjA0MzEwNywgMC4xNDI1NDcsIDAuMjQwMTMyLCAwLjMxMDk2NSwgMC40MjU3MzksIDAuNTI2NzI1LCAwLjY3MjY5OCIsIFwKLSAgICAgICAgICAiMC4wNDMxMTUsIDAuMTQyMzYsIDAuMjQwMDMyLCAwLjMxMDk5NiwgMC40MjUyNTgsIDAuNTI2NzE4LCAwLjY3MjY3OCIsIFwKLSAgICAgICAgICAiMC4wNDMwMTUsIDAuMTQyMjE1LCAwLjIzOTk1MiwgMC4zMTA5NTYsIDAuNDI1NDI1LCAwLjUyNjczNywgMC42NzI2MjkiLCBcCi0gICAgICAgICAgIjAuMDQzMzcsIDAuMTQyMzQ3LCAwLjI0MDAzMiwgMC4zMTA5OTgsIDAuNDI1NDEsIDAuNTI3Mzk4LCAwLjY3MjY4MSIsIFwKLSAgICAgICAgICAiMC4wNDQxNDcsIDAuMTQyOTk1LCAwLjI0MDM5MSwgMC4zMTExMjYsIDAuNDI1OTU2LCAwLjUyNjg5MiwgMC42NzI3MzIiLCBcCi0gICAgICAgICAgIjAuMDQ1MDIsIDAuMTQzNjY1LCAwLjI0MDkyNywgMC4zMTE1MTIsIDAuNDI1ODMzLCAwLjUyNjk4NSwgMC42NzEyOTQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzcyNDgsIDAuMDg3ODIzLCAwLjEzNjk4NSwgMC4xNzIxMDksIDAuMjI4MjksIDAuMjc3NDQ2LCAwLjM0Nzc0OSIsIFwKLSAgICAgICAgICAiMC4wNDc2MiwgMC4wOTgxNTYsIDAuMTQ3MzQyLCAwLjE4MjQ4LCAwLjIzODU1OCwgMC4yODc5NTQsIDAuMzU4MDUiLCBcCi0gICAgICAgICAgIjAuMDYwMDEyLCAwLjExMDU1NiwgMC4xNTk3NTMsIDAuMTk0OTAxLCAwLjI1MTA3MSwgMC4zMDAyMzcsIDAuMzcwNDU2IiwgXAotICAgICAgICAgICIwLjA3MTAzMiwgMC4xMjE3NTUsIDAuMTcwOTYxLCAwLjIwNjEyOSwgMC4yNjIyNTksIDAuMzExNTI4LCAwLjM4MTY2NCIsIFwKLSAgICAgICAgICAiMC4wODAyMTEsIDAuMTMxNDIxLCAwLjE4MDYxOCwgMC4yMTU3NCwgMC4yNzE4NDMsIDAuMzIxMDY5LCAwLjM5MTIxIiwgXAotICAgICAgICAgICIwLjA5Mjg0MywgMC4xNDQ3NjIsIDAuMTk0MDAzLCAwLjIyOTEwNCwgMC4yODUyODEsIDAuMzM0NDM3LCAwLjQwNDY2MSIsIFwKLSAgICAgICAgICAiMC4xMDI2MzMsIDAuMTU1MjExLCAwLjIwNDQ4OSwgMC4yMzk2MTgsIDAuMjk1NzY4LCAwLjM0NDk3LCAwLjQxNTEyNSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyNDkyMiwgMC4xMjMwOTIsIDAuMjI0MzkzLCAwLjI5NjkwNSwgMC40MTIzNTUsIDAuNTEzNDY5LCAwLjY1Nzc2IiwgXAotICAgICAgICAgICIwLjAyNDkwMSwgMC4xMjMwODUsIDAuMjIzNjkxLCAwLjI5Njg5MSwgMC40MTIyNjQsIDAuNTEzNDI4LCAwLjY1ODg2NiIsIFwKLSAgICAgICAgICAiMC4wMjUzOTYsIDAuMTIzMjU3LCAwLjIyNDA2NiwgMC4yOTYyNDUsIDAuNDEyOTU0LCAwLjUxMzQ2NSwgMC42NTgzMjciLCBcCi0gICAgICAgICAgIjAuMDI2ODMxLCAwLjEyMzUyMSwgMC4yMjQ0MjMsIDAuMjk2MTk2LCAwLjQxMjg2MSwgMC41MTM2MzgsIDAuNjU4MzMiLCBcCi0gICAgICAgICAgIjAuMDI4MzUsIDAuMTIzOTQ0LCAwLjIyNDQ4NywgMC4yOTY1NDMsIDAuNDExOTY1LCAwLjUxMzU4LCAwLjY1OTM5OCIsIFwKLSAgICAgICAgICAiMC4wMzA4MzUsIDAuMTI0NzMsIDAuMjI0ODY0LCAwLjI5NzA4OSwgMC40MTMwNjksIDAuNTE0NjMyLCAwLjY1ODMzNiIsIFwKLSAgICAgICAgICAiMC4wMzMxOTEsIDAuMTI1NTIzLCAwLjIyNDg0OCwgMC4yOTY4NzksIDAuNDEyOTY0LCAwLjUxMzU5MiwgMC42NTg3NjEiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTAxMiwgMC4xNTYwMjEsIDAuMjA5NDAyLCAwLjI0NjIyNywgMC4zMDQ2NzIsIDAuMzU1NjU4LCAwLjQyODQyMiIsIFwKLSAgICAgICAgICAiMC4wOTc2MDksIDAuMTYzNjA4LCAwLjIxNjg5NiwgMC4yNTM3MjYsIDAuMzEyMTgzLCAwLjM2MzE1MywgMC40MzU5MTYiLCBcCi0gICAgICAgICAgIjAuMTA3OTIxLCAwLjE3MzkwMywgMC4yMjcyMzEsIDAuMjY0MDkzLCAwLjMyMjU0OCwgMC4zNzM1MTgsIDAuNDQ2Mjg4IiwgXAotICAgICAgICAgICIwLjExODIzMSwgMC4xODQxNiwgMC4yMzc0MzcsIDAuMjc0Mjk2LCAwLjMzMjc1MiwgMC4zODM3MjgsIDAuNDU2NTA0IiwgXAotICAgICAgICAgICIwLjEyODY0MywgMC4xOTQ0NzQsIDAuMjQ3NzI4LCAwLjI4NDYsIDAuMzQzMDYsIDAuMzk0MDQzLCAwLjQ2NjgxMiIsIFwKLSAgICAgICAgICAiMC4xNDQ3MzksIDAuMjEwNzk4LCAwLjI2NDA4NSwgMC4zMDA5MDksIDAuMzU5Mzc3LCAwLjQxMDM2LCAwLjQ4MzEyNCIsIFwKLSAgICAgICAgICAiMC4xNTc1LCAwLjIyMzMyNywgMC4yNzY2NDcsIDAuMzEzNDkxLCAwLjM3MTk0LCAwLjQyMjkxLCAwLjQ5NTY5OSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0MzA4MSwgMC4xNDIzMjEsIDAuMjQwMDQsIDAuMzEwODgzLCAwLjQyNTQyNiwgMC41MjY2ODUsIDAuNjcyNjI4IiwgXAotICAgICAgICAgICIwLjA0MzI1MSwgMC4xNDIzMTMsIDAuMjQwMDA0LCAwLjMxMDk3MiwgMC40MjUyMTcsIDAuNTI2NzAzLCAwLjY3MjYyOCIsIFwKLSAgICAgICAgICAiMC4wNDMwMDMsIDAuMTQyMiwgMC4yMzk5MzYsIDAuMzEwOTg5LCAwLjQyNTQxLCAwLjUyNjg1MywgMC42NzI2NSIsIFwKLSAgICAgICAgICAiMC4wNDI4ODQsIDAuMTQyMTA3LCAwLjIzOTkyNiwgMC4zMTA5NiwgMC40MjUzNzUsIDAuNTI2NjAxLCAwLjY3MjY3MiIsIFwKLSAgICAgICAgICAiMC4wNDMxNjEsIDAuMTQyNTAyLCAwLjI0MDA4OSwgMC4zMTEwOTQsIDAuNDI1NDc5LCAwLjUyNjgwOSwgMC42NzI2OSIsIFwKLSAgICAgICAgICAiMC4wNDQ0MTMsIDAuMTQyNzk3LCAwLjI0MDMxOSwgMC4zMTEwODEsIDAuNDI1Nzk1LCAwLjUyNjg5MywgMC42NzI3MiIsIFwKLSAgICAgICAgICAiMC4wNDUyNjcsIDAuMTQzODc2LCAwLjI0MDg5OCwgMC4zMTE2MDMsIDAuNDI2MDY4LCAwLjUyNzAyNSwgMC42NzMwMiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA4MTYzLCAwLjAwODM5NCwgMC4wMDg0MjksIDAuMDA4NDQyLCAwLjAwODQ0OCwgMC4wMDg0NTQsIDAuMDA4NDYyIiwgXAotICAgICAgICAgICIwLjAwODA3NCwgMC4wMDgzMDcsIDAuMDA4MzQ4LCAwLjAwODM2LCAwLjAwODM3NSwgMC4wMDgzODEsIDAuMDA4Mzg0IiwgXAotICAgICAgICAgICIwLjAwODAzMiwgMC4wMDgyNjEsIDAuMDA4MzExLCAwLjAwODMyNywgMC4wMDgzNDIsIDAuMDA4MzUsIDAuMDA4MzU2IiwgXAotICAgICAgICAgICIwLjAwODA1MSwgMC4wMDgyNDYsIDAuMDA4Mjk5LCAwLjAwODMxOSwgMC4wMDgzMzcsIDAuMDA4MzU2LCAwLjAwODM1OCIsIFwKLSAgICAgICAgICAiMC4wMDgwNzQsIDAuMDA4MjQ5LCAwLjAwODMxNCwgMC4wMDgzMzIsIDAuMDA4MzUyLCAwLjAwODM3NCwgMC4wMDgzNjciLCBcCi0gICAgICAgICAgIjAuMDA4MTM3LCAwLjAwODI2OCwgMC4wMDgzMywgMC4wMDgzNTUsIDAuMDA4MzgxLCAwLjAwODM5LCAwLjAwODQwNyIsIFwKLSAgICAgICAgICAiMC4wMDgxMzUsIDAuMDA4MjYyLCAwLjAwODMyMiwgMC4wMDgzNDcsIDAuMDA4Mzc0LCAwLjAwODM4NSwgMC4wMDgzOTkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMjA1NSwgMC4wMTIzMDIsIDAuMDEyMzg2LCAwLjAxMjQxMywgMC4wMTI0MzgsIDAuMDEyNDUxLCAwLjAxMjQ2MiIsIFwKLSAgICAgICAgICAiMC4wMTE5NzgsIDAuMDEyMjQ5LCAwLjAxMjMzMiwgMC4wMTIzNTksIDAuMDEyMzg0LCAwLjAxMjM5NywgMC4wMTI0MDgiLCBcCi0gICAgICAgICAgIjAuMDExOTU3LCAwLjAxMjIxNiwgMC4wMTIzMDEsIDAuMDEyMzI5LCAwLjAxMjM1NSwgMC4wMTIzNjgsIDAuMDEyMzgiLCBcCi0gICAgICAgICAgIjAuMDExOTEzLCAwLjAxMjE5NSwgMC4wMTIyODMsIDAuMDEyMzEyLCAwLjAxMjMzOSwgMC4wMTIzNTMsIDAuMDEyMzY2IiwgXAotICAgICAgICAgICIwLjAxMTkyLCAwLjAxMjE4NiwgMC4wMTIyNzMsIDAuMDEyMzAzLCAwLjAxMjMzMSwgMC4wMTIzNDUsIDAuMDEyMzU4IiwgXAotICAgICAgICAgICIwLjAxMTk0MSwgMC4wMTIxODEsIDAuMDEyMjY3LCAwLjAxMjI5OCwgMC4wMTIzMjYsIDAuMDEyMzQxLCAwLjAxMjM1NCIsIFwKLSAgICAgICAgICAiMC4wMTE5MzcsIDAuMDEyMTY3LCAwLjAxMjI1MiwgMC4wMTIyOTEsIDAuMDEyMzIxLCAwLjAxMjMzNywgMC4wMTIzNTIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNzY1LCAwLjAwNzkxOCwgMC4wMDc5NTcsIDAuMDA3OTcsIDAuMDA3OTg2LCAwLjAwNzk4NywgMC4wMDc5OTEiLCBcCi0gICAgICAgICAgIjAuMDA3NTYzLCAwLjAwNzgzOCwgMC4wMDc4ODYsIDAuMDA3OSwgMC4wMDc5MTgsIDAuMDA3OTIxLCAwLjAwNzkyNiIsIFwKLSAgICAgICAgICAiMC4wMDc0OTgsIDAuMDA3NzcsIDAuMDA3ODI5LCAwLjAwNzg0OSwgMC4wMDc4NjYsIDAuMDA3ODc3LCAwLjAwNzg4NCIsIFwKLSAgICAgICAgICAiMC4wMDc0NzYsIDAuMDA3NzM2LCAwLjAwNzgwNCwgMC4wMDc4MjgsIDAuMDA3ODUyLCAwLjAwNzg2MywgMC4wMDc4NzQiLCBcCi0gICAgICAgICAgIjAuMDA3NDc1LCAwLjAwNzcxOCwgMC4wMDc3OTEsIDAuMDA3ODIsIDAuMDA3ODUyLCAwLjAwNzg1OCwgMC4wMDc4NjUiLCBcCi0gICAgICAgICAgIjAuMDA3NTQ4LCAwLjAwNzc0OCwgMC4wMDc4MjIsIDAuMDA3ODU2LCAwLjAwNzg4LCAwLjAwNzg5OSwgMC4wMDc5MDkiLCBcCi0gICAgICAgICAgIjAuMDA3NTAzLCAwLjAwNzcxOSwgMC4wMDc4MDMsIDAuMDA3ODI5LCAwLjAwNzg2NSwgMC4wMDc4ODMsIDAuMDA3OTAyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTE0MTEsIDAuMDExNjY3LCAwLjAxMTc1LCAwLjAxMTc3OSwgMC4wMTE4MDYsIDAuMDExODIsIDAuMDExODMzIiwgXAotICAgICAgICAgICIwLjAxMTMzMSwgMC4wMTE2MTIsIDAuMDExNjk2LCAwLjAxMTcyNSwgMC4wMTE3NTIsIDAuMDExNzY2LCAwLjAxMTc3OSIsIFwKLSAgICAgICAgICAiMC4wMTEyOTksIDAuMDExNTY4LCAwLjAxMTY1OSwgMC4wMTE2OSwgMC4wMTE3MTksIDAuMDExNzM0LCAwLjAxMTc0NyIsIFwKLSAgICAgICAgICAiMC4wMTEyNjMsIDAuMDExNTQ2LCAwLjAxMTYzOSwgMC4wMTE2NzEsIDAuMDExNzAxLCAwLjAxMTcxNywgMC4wMTE3MzIiLCBcCi0gICAgICAgICAgIjAuMDExMjcyLCAwLjAxMTUzNCwgMC4wMTE2MjcsIDAuMDExNjYsIDAuMDExNjkyLCAwLjAxMTcwOCwgMC4wMTE3MjMiLCBcCi0gICAgICAgICAgIjAuMDExMjk1LCAwLjAxMTUxNCwgMC4wMTE2MTEsIDAuMDExNjQ3LCAwLjAxMTY4LCAwLjAxMTY5OCwgMC4wMTE3MTUiLCBcCi0gICAgICAgICAgIjAuMDExMzM0LCAwLjAxMTUxNCwgMC4wMTE2MDcsIDAuMDExNjQ1LCAwLjAxMTY3OSwgMC4wMTE2OTgsIDAuMDExNzEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNzA0MywgMC4wMDczLCAwLjAwNzMzNSwgMC4wMDczNDIsIDAuMDA3MzU1LCAwLjAwNzM2MiwgMC4wMDczNjQiLCBcCi0gICAgICAgICAgIjAuMDA2OTcxLCAwLjAwNzI0NCwgMC4wMDcyODcsIDAuMDA3MzAxLCAwLjAwNzMwOSwgMC4wMDczMTksIDAuMDA3MzI0IiwgXAotICAgICAgICAgICIwLjAwNjg5NSwgMC4wMDcxNjgsIDAuMDA3MjI2LCAwLjAwNzI0NSwgMC4wMDcyNjQsIDAuMDA3MjY3LCAwLjAwNzI3OCIsIFwKLSAgICAgICAgICAiMC4wMDY4OTIsIDAuMDA3MTU1LCAwLjAwNzIyLCAwLjAwNzI0NCwgMC4wMDcyNzIsIDAuMDA3MjgzLCAwLjAwNzI4NiIsIFwKLSAgICAgICAgICAiMC4wMDY4NSwgMC4wMDcxMDMsIDAuMDA3MTc3LCAwLjAwNzIwMiwgMC4wMDcyMzMsIDAuMDA3MjQ4LCAwLjAwNzI1IiwgXAotICAgICAgICAgICIwLjAwNjg1NSwgMC4wMDcwOTYsIDAuMDA3MTcsIDAuMDA3MTk1LCAwLjAwNzIzLCAwLjAwNzI0NSwgMC4wMDcyNTIiLCBcCi0gICAgICAgICAgIjAuMDA2ODg5LCAwLjAwNzExMSwgMC4wMDcxOTEsIDAuMDA3MjE4LCAwLjAwNzI1NSwgMC4wMDcyNzQsIDAuMDA3MjkzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTA3MTIsIDAuMDEwOTkzLCAwLjAxMTA4NSwgMC4wMTExMTcsIDAuMDExMTQ3LCAwLjAxMTE2MywgMC4wMTExNzciLCBcCi0gICAgICAgICAgIjAuMDEwNjYsIDAuMDEwOTM2LCAwLjAxMTAyOSwgMC4wMTEwNjEsIDAuMDExMDkxLCAwLjAxMTEwNywgMC4wMTExMjEiLCBcCi0gICAgICAgICAgIjAuMDEwNjE5LCAwLjAxMDg5NiwgMC4wMTA5OTIsIDAuMDExMDI2LCAwLjAxMTA1OCwgMC4wMTEwNzUsIDAuMDExMDkiLCBcCi0gICAgICAgICAgIjAuMDEwNTkzLCAwLjAxMDg3MSwgMC4wMTA5NywgMC4wMTEwMDUsIDAuMDExMDM5LCAwLjAxMTA1NywgMC4wMTEwNzQiLCBcCi0gICAgICAgICAgIjAuMDEwNjUsIDAuMDEwODcsIDAuMDEwOTY0LCAwLjAxMDk5OSwgMC4wMTEwMzIsIDAuMDExMDUsIDAuMDExMDY3IiwgXAotICAgICAgICAgICIwLjAxMDY2MywgMC4wMTA4NDEsIDAuMDEwOTQsIDAuMDEwOTc5LCAwLjAxMTAxNywgMC4wMTEwMzcsIDAuMDExMDU3IiwgXAotICAgICAgICAgICIwLjAxMDY5NSwgMC4wMTA4MzUsIDAuMDEwOTM2LCAwLjAxMDk3MiwgMC4wMTEwMTMsIDAuMDExMDM1LCAwLjAxMTA1NiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkQiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2MzU1LCAwLjAwNjU5NiwgMC4wMDY2MjYsIDAuMDA2NjM1LCAwLjAwNjY0MiwgMC4wMDY2NDQsIDAuMDA2NjM5IiwgXAotICAgICAgICAgICIwLjAwNjI2NywgMC4wMDY1MzcsIDAuMDA2NTc3LCAwLjAwNjU5MiwgMC4wMDY1OTcsIDAuMDA2NjAyLCAwLjAwNjYxIiwgXAotICAgICAgICAgICIwLjAwNjIxMSwgMC4wMDY0ODMsIDAuMDA2NTI5LCAwLjAwNjU0NiwgMC4wMDY1NjEsIDAuMDA2NTY2LCAwLjAwNjU3NyIsIFwKLSAgICAgICAgICAiMC4wMDYxNjgsIDAuMDA2NDE4LCAwLjAwNjQ5MSwgMC4wMDY1MDYsIDAuMDA2NTI1LCAwLjAwNjUzNSwgMC4wMDY1NDciLCBcCi0gICAgICAgICAgIjAuMDA2MTgzLCAwLjAwNjQyMiwgMC4wMDY0OTMsIDAuMDA2NTE3LCAwLjAwNjU0MiwgMC4wMDY1NTUsIDAuMDA2NTY0IiwgXAotICAgICAgICAgICIwLjAwNjIzMiwgMC4wMDY0MzQsIDAuMDA2NTA3LCAwLjAwNjUzNSwgMC4wMDY1NTksIDAuMDA2NTczLCAwLjAwNjU5IiwgXAotICAgICAgICAgICIwLjAwNjI0NywgMC4wMDY0MiwgMC4wMDY0OTIsIDAuMDA2NTI1LCAwLjAwNjU1OCwgMC4wMDY1NywgMC4wMDY1ODIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMDAwMywgMC4wMTAzMDMsIDAuMDEwMzk5LCAwLjAxMDQzMywgMC4wMTA0NjUsIDAuMDEwNDgyLCAwLjAxMDQ5NyIsIFwKLSAgICAgICAgICAiMC4wMDk5MSwgMC4wMTAyMTUsIDAuMDEwMzE0LCAwLjAxMDM0OCwgMC4wMTAzOCwgMC4wMTAzOTgsIDAuMDEwNDE0IiwgXAotICAgICAgICAgICIwLjAwOTg5MiwgMC4wMTAxODUsIDAuMDEwMjg1LCAwLjAxMDMyMSwgMC4wMTAzNTYsIDAuMDEwMzc0LCAwLjAxMDM5MSIsIFwKLSAgICAgICAgICAiMC4wMDk4OTYsIDAuMDEwMTYzLCAwLjAxMDI2NiwgMC4wMTAzMDUsIDAuMDEwMzQzLCAwLjAxMDM2MywgMC4wMTAzODMiLCBcCi0gICAgICAgICAgIjAuMDA5OTI0LCAwLjAxMDE2LCAwLjAxMDI2NSwgMC4wMTAzMDYsIDAuMDEwMzQ3LCAwLjAxMDM3LCAwLjAxMDM5MiIsIFwKLSAgICAgICAgICAiMC4wMTAxNDQsIDAuMDEwMjM4LCAwLjAxMDMyNCwgMC4wMTAzNjEsIDAuMDEwNCwgMC4wMTA0MjIsIDAuMDEwNDQzIiwgXAotICAgICAgICAgICIwLjAxMDA3NywgMC4wMTAyNzMsIDAuMDEwMzU2LCAwLjAxMDM5NCwgMC4wMTA0MzQsIDAuMDEwNDU3LCAwLjAxMDQ4Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IE9SNFg4ICoKLSAqIC0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChPUjRYOCkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjY0MzIwMzsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxOTgxNTU7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxOTY4MTM7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxOTgxNTU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNjkxLCAwLjAwMDcyNywgMC4wMDA3NDYsIDAuMDAwNzU1LCAwLjAwMDc2LCAwLjAwMDc2MywgMC4wMDA3NjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDIwODgsIDAuMDAyMDg5LCAwLjAwMjA4OSwgMC4wMDIwODksIDAuMDAyMDg5LCAwLjAwMjA4OSwgMC4wMDIwODkiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTg5NjU7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxODg1MTE7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxODk2NTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA2NzgsIDAuMDAwNzI0LCAwLjAwMDc0NywgMC4wMDA3NTcsIDAuMDAwNzYyLCAwLjAwMDc3MywgMC4wMDA3NzkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDE0OSwgMC4wMDE0OTEsIDAuMDAxNDkxLCAwLjAwMTQ5MSwgMC4wMDE0OTEsIDAuMDAxNDkyLCAwLjAwMTQ5MSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQykgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNzU3MDc7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNzQ2NTE7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNzU3MDc7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNjkxLCAwLjAwMDc2MywgMC4wMDA3NzgsIDAuMDAwNzg0LCAwLjAwMDc4NiwgMC4wMDA3ODcsIDAuMDAwNzkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA4NiwgMC4wMDA4NjEsIDAuMDAwODYxLCAwLjAwMDg2MSwgMC4wMDA4NjEsIDAuMDAwODYxLCAwLjAwMDg2MSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNjIwNzg7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNjIwNzM7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNjIwNzg7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjE5LCAwLjAwMDIxOSwgMC4wMDAyMTksIDAuMDAwMjE5LCAwLjAwMDIxOSwgMC4wMDAyMTksIDAuMDAwMjE5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNjg2LCAwLjAwMDY4NiwgMC4wMDA2ODYsIDAuMDAwNjg2LCAwLjAwMDY4NiwgMC4wMDA2ODYsIDAuMDAwNjg2Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDIuMDUyMjY7Ci0gICAgZnVuY3Rpb24gOiAiKCgoQStCKStDKStEKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDUyNSwgMC4wODQ2NjMsIDAuMTIxMTQ4LCAwLjE0NzAyMSwgMC4xODgzODksIDAuMjI0NTYxLCAwLjI3NjE5NyIsIFwKLSAgICAgICAgICAiMC4wNTU0NDEsIDAuMDk0ODM2LCAwLjEzMTI0NCwgMC4xNTcxNjIsIDAuMTk4NTEyLCAwLjIzNDY3OSwgMC4yODYzMDQiLCBcCi0gICAgICAgICAgIjAuMDY4NDQ3LCAwLjEwNzc0MywgMC4xNDQxMzUsIDAuMTcwMDQ5LCAwLjIxMTQxNiwgMC4yNDc1ODUsIDAuMjk5MjIyIiwgXAotICAgICAgICAgICIwLjA4MTE5MiwgMC4xMjA0NDIsIDAuMTU2ODM0LCAwLjE4Mjc0MSwgMC4yMjQwOTQsIDAuMjYwMjUyLCAwLjMxMTkyMyIsIFwKLSAgICAgICAgICAiMC4wOTI2OSwgMC4xMzE4OTYsIDAuMTY4MjY4LCAwLjE5NDE2OSwgMC4yMzU1MzksIDAuMjcxNjkzLCAwLjMyMzI5NiIsIFwKLSAgICAgICAgICAiMC4xMDg0MjEsIDAuMTQ4NjIyLCAwLjE4NTAyMywgMC4yMTA4ODgsIDAuMjUyMjUyLCAwLjI4ODQxLCAwLjM0MDAxNSIsIFwKLSAgICAgICAgICAiMC4xMjA0NDIsIDAuMTYxMTg2LCAwLjE5NzY1MywgMC4yMjM0OTgsIDAuMjY0OTA3LCAwLjMwMTA1LCAwLjM1MjU3OCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyNDEwNywgMC4wOTQ3NzQsIDAuMTY4MTc0LCAwLjIyMDk4NCwgMC4zMDU1OCwgMC4zNzk3MjEsIDAuNDg2NzIiLCBcCi0gICAgICAgICAgIjAuMDI0MDE2LCAwLjA5NDY3MywgMC4xNjc5OCwgMC4yMjEwNCwgMC4zMDU4NzYsIDAuMzgwMzIzLCAwLjQ4NTg5OSIsIFwKLSAgICAgICAgICAiMC4wMjQyMDcsIDAuMDk0Nzc5LCAwLjE2Nzk3NiwgMC4yMjA3MzksIDAuMzA1ODY1LCAwLjM4MDMwNCwgMC40ODY3MiIsIFwKLSAgICAgICAgICAiMC4wMjQ1MzgsIDAuMDk0ODEzLCAwLjE2Nzk1NiwgMC4yMjA5NjksIDAuMzA1ODE3LCAwLjM4MDIyMSwgMC40ODY2NDMiLCBcCi0gICAgICAgICAgIjAuMDI1OTc2LCAwLjA5NTIyNCwgMC4xNjc5MzksIDAuMjIxMDU2LCAwLjMwNTg5NywgMC4zNzk3NDksIDAuNDg2NjA1IiwgXAotICAgICAgICAgICIwLjAyODEzMywgMC4wOTYwMzcsIDAuMTY4NDk0LCAwLjIyMTI0NCwgMC4zMDU5NzYsIDAuMzc5NzY3LCAwLjQ4NjYyNyIsIFwKLSAgICAgICAgICAiMC4wMzAzMDQsIDAuMDk3MjIyLCAwLjE2OTEyLCAwLjIyMTUzOSwgMC4zMDU3MTcsIDAuMzgwMzMyLCAwLjQ4NjY3MiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEyMjM3NiwgMC4xNzgxNDEsIDAuMjIwNzM0LCAwLjI0OTIzNywgMC4yOTM2NjYsIDAuMzMyMDY4LCAwLjM4NjY0MSIsIFwKLSAgICAgICAgICAiMC4xMzAxODUsIDAuMTg2MzQxLCAwLjIyODc4OSwgMC4yNTcyNzEsIDAuMzAxNjk1LCAwLjM0MDA3NCwgMC4zOTQ2NDgiLCBcCi0gICAgICAgICAgIjAuMTM4NjExLCAwLjE5NDYzMSwgMC4yMzY5OTcsIDAuMjY1NDU2LCAwLjMwOTg5NSwgMC4zNDgyOCwgMC40MDI4ODIiLCBcCi0gICAgICAgICAgIjAuMTQ1OTUxLCAwLjIwMjA4OSwgMC4yNDQ2MzYsIDAuMjczMTAxLCAwLjMxNzQ4NywgMC4zNTU4ODMsIDAuNDEwNDc1IiwgXAotICAgICAgICAgICIwLjE1MzE2LCAwLjIwOTIyNSwgMC4yNTE3MzksIDAuMjgwMTg4LCAwLjMyNDU2LCAwLjM2Mjk3MSwgMC40MTc1OCIsIFwKLSAgICAgICAgICAiMC4xNjM2MzcsIDAuMjE5NzI1LCAwLjI2MjIsIDAuMjkwNjUsIDAuMzM1MDY4LCAwLjM3MzQ2OSwgMC40MjgwNjUiLCBcCi0gICAgICAgICAgIjAuMTcyMzAxLCAwLjIyODY5NSwgMC4yNzEyNTksIDAuMjk5NzQ1LCAwLjM0NDEzOCwgMC4zODI1NDQsIDAuNDM3MTQ4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQzNzU2LCAwLjEyMTIzMywgMC4xOTM2OTEsIDAuMjQ2MjQzLCAwLjMzMTIwMSwgMC40MDYzLCAwLjUxNDczOSIsIFwKLSAgICAgICAgICAiMC4wNDQxMjksIDAuMTIwOSwgMC4xOTM3OTUsIDAuMjQ1OTkyLCAwLjMzMTI0MSwgMC40MDYyMzIsIDAuNTE0Njg5IiwgXAotICAgICAgICAgICIwLjA0MzgxOSwgMC4xMjA4MTksIDAuMTkzNzI1LCAwLjI0NjI2MiwgMC4zMzEzMTIsIDAuNDA2Mjg4LCAwLjUxNDAxOSIsIFwKLSAgICAgICAgICAiMC4wNDM5MzgsIDAuMTIwNzc0LCAwLjE5MzUyMywgMC4yNDYwMywgMC4zMzEwNjQsIDAuNDA2MTg0LCAwLjUxNDYzNSIsIFwKLSAgICAgICAgICAiMC4wNDM3NTMsIDAuMTIwNjQ4LCAwLjE5MzQyNSwgMC4yNDU5OTEsIDAuMzMwOTk3LCAwLjQwNjEzNCwgMC41MTQ2MSIsIFwKLSAgICAgICAgICAiMC4wNDQzMzQsIDAuMTIxMDg3LCAwLjE5Mzc1MywgMC4yNDYxODMsIDAuMzMxMTE1LCAwLjQwNjIxMywgMC41MTQzMzYiLCBcCi0gICAgICAgICAgIjAuMDQ0OTQ4LCAwLjEyMTMyNiwgMC4xOTM5NzksIDAuMjQ2MzIyLCAwLjMzMTM4NSwgMC40MDYzNzIsIDAuNTE0NDAzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQzODc5LCAwLjA4MjkwNywgMC4xMTkyNDQsIDAuMTQ1MDU1LCAwLjE4NjM2OSwgMC4yMjI0OTIsIDAuMjc0MDkxIiwgXAotICAgICAgICAgICIwLjA1NDA1OSwgMC4wOTMwNjUsIDAuMTI5MzY3LCAwLjE1NTIyMywgMC4xOTY1NTUsIDAuMjMyNzA0LCAwLjI4NDI5OSIsIFwKLSAgICAgICAgICAiMC4wNjcwNTYsIDAuMTA1OTg0LCAwLjE0MjMwMywgMC4xNjgxNTgsIDAuMjA5NDkxLCAwLjI0NTY2NCwgMC4yOTcyMjEiLCBcCi0gICAgICAgICAgIjAuMDc5MzksIDAuMTE4NDM4LCAwLjE1NDcyNywgMC4xODA1ODgsIDAuMjIxOTQzLCAwLjI1ODA2LCAwLjMwOTY1IiwgXAotICAgICAgICAgICIwLjA5MDQ1OSwgMC4xMjk2MSwgMC4xNjU4ODksIDAuMTkxNzQsIDAuMjMzMDY1LCAwLjI2OTIxMSwgMC4zMjA4MTIiLCBcCi0gICAgICAgICAgIjAuMTA1OTUzLCAwLjE0NjA1MSwgMC4xODI0MTYsIDAuMjA4MjcyLCAwLjI0OTU5OCwgMC4yODU2OTIsIDAuMzM3MzQxIiwgXAotICAgICAgICAgICIwLjExNzYwMSwgMC4xNTgyMTEsIDAuMTk0NjExLCAwLjIyMDQ0OCwgMC4yNjE3NiwgMC4yOTc5MDMsIDAuMzQ5NTAxIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDIzNDk5LCAwLjA5NDIwNCwgMC4xNjc1MzgsIDAuMjIwNjMyLCAwLjMwNTIwOSwgMC4zNzk2MTQsIDAuNDg2NDYzIiwgXAotICAgICAgICAgICIwLjAyMzM4NywgMC4wOTQxNjksIDAuMTY3NTI0LCAwLjIyMDMyNiwgMC4zMDQ3NiwgMC4zNzkxNiwgMC40ODY0NjMiLCBcCi0gICAgICAgICAgIjAuMDIzNDgxLCAwLjA5NDE5MSwgMC4xNjc0ODMsIDAuMjIwNTQxLCAwLjMwNTQ4NSwgMC4zNzkzNjQsIDAuNDg2MzkzIiwgXAotICAgICAgICAgICIwLjAyNDI4NCwgMC4wOTQzOTMsIDAuMTY3Njc5LCAwLjIyMDU2NywgMC4zMDU1NTUsIDAuMzc5NTQsIDAuNDg1ODcxIiwgXAotICAgICAgICAgICIwLjAyNjA3NSwgMC4wOTQ4ODUsIDAuMTY3NywgMC4yMjA2NDMsIDAuMzA1NTc5LCAwLjM3OTk3MSwgMC40ODU4NzkiLCBcCi0gICAgICAgICAgIjAuMDI4MDI0LCAwLjA5NTc4OSwgMC4xNjgzNzIsIDAuMjIwNzIxLCAwLjMwNTcwNSwgMC4zNzk5ODUsIDAuNDg1NDgzIiwgXAotICAgICAgICAgICIwLjAyOTg2NiwgMC4wOTY5OTQsIDAuMTY4NzUsIDAuMjIxMDI0LCAwLjMwNTg1MywgMC4zODAxMTksIDAuNDg2NDg0Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTE5MzY4LCAwLjE3NTQxNSwgMC4yMTc3NCwgMC4yNDYyMDcsIDAuMjkwNjUsIDAuMzI5MDQyLCAwLjM4MzYzNiIsIFwKLSAgICAgICAgICAiMC4xMjczNzcsIDAuMTgzNDA3LCAwLjIyNTcxLCAwLjI1NDE2NSwgMC4yOTg2MTUsIDAuMzM3MDA2LCAwLjM5MTU5OSIsIFwKLSAgICAgICAgICAiMC4xMzYwMTIsIDAuMTkyMTk4LCAwLjIzNDcxOCwgMC4yNjMxODEsIDAuMzA3NTk1LCAwLjM0NTk3NywgMC40MDA1NzgiLCBcCi0gICAgICAgICAgIjAuMTQ0MzIxLCAwLjIwMDQyOSwgMC4yNDI5NDUsIDAuMjcxNDA3LCAwLjMxNTgyMiwgMC4zNTQyMjcsIDAuNDA4ODI3IiwgXAotICAgICAgICAgICIwLjE1MjQ5MiwgMC4yMDg1NTgsIDAuMjUxMDc5LCAwLjI3OTUwNCwgMC4zMjM5MzgsIDAuMzYyMzA5LCAwLjQxNjkzOCIsIFwKLSAgICAgICAgICAiMC4xNjUwMywgMC4yMjEwNjMsIDAuMjYzNTUzLCAwLjI5MjAwOCwgMC4zMzY0MjEsIDAuMzc0ODI3LCAwLjQyOTQyOCIsIFwKLSAgICAgICAgICAiMC4xNzUyMSwgMC4yMzE3NDMsIDAuMjc0MjkzLCAwLjMwMjc4MiwgMC4zNDcxODUsIDAuMzg1NjAxLCAwLjQ0MDE5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQzNzYyLCAwLjEyMDkwNiwgMC4xOTM4MDMsIDAuMjQ2MjM0LCAwLjMzMTI5NCwgMC40MDYzMjYsIDAuNTE0NTA0IiwgXAotICAgICAgICAgICIwLjA0MzgxLCAwLjEyMDg2NSwgMC4xOTM3OTIsIDAuMjQ2Mjk0LCAwLjMzMTMyOCwgMC40MDYzMzQsIDAuNTE0NTkxIiwgXAotICAgICAgICAgICIwLjA0NDE4NiwgMC4xMjA5MTksIDAuMTkzNjI4LCAwLjI0NjE0NiwgMC4zMzEyMTksIDAuNDA2MjMsIDAuNTE0MDQ4IiwgXAotICAgICAgICAgICIwLjA0MzkyNSwgMC4xMjA4MiwgMC4xOTM1MjYsIDAuMjQ2MDQ3LCAwLjMzMTE0OSwgMC40MDYxNTIsIDAuNTE0Mjk0IiwgXAotICAgICAgICAgICIwLjA0MzgxMSwgMC4xMjA2NDgsIDAuMTkzNDIyLCAwLjI0NTk5OCwgMC4zMzEwNzksIDAuNDA2MTQ1LCAwLjUxNDI0OCIsIFwKLSAgICAgICAgICAiMC4wNDQwNTgsIDAuMTIxMDUyLCAwLjE5MzczNiwgMC4yNDYxNjYsIDAuMzMxMjk1LCAwLjQwNjE5OCwgMC41MTQzMTYiLCBcCi0gICAgICAgICAgIjAuMDQ1NTEyLCAwLjEyMTY3MiwgMC4xOTQxNjcsIDAuMjQ2NTUyLCAwLjMzMTQ5OCwgMC40MDY0MjcsIDAuNTE0NTc2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQxNzE0LCAwLjA4MDQzMSwgMC4xMTY2NDMsIDAuMTQyNDU4LCAwLjE4Mzc0NiwgMC4yMTk4OTMsIDAuMjcxNDcxIiwgXAotICAgICAgICAgICIwLjA1MjAwMiwgMC4wOTA3MTUsIDAuMTI2OTM3LCAwLjE1Mjc2NCwgMC4xOTQwNTYsIDAuMjMwMTcxLCAwLjI4MTc0MyIsIFwKLSAgICAgICAgICAiMC4wNjQ4MzksIDAuMTAzNTI2LCAwLjEzOTc3MiwgMC4xNjU2MTEsIDAuMjA2ODk5LCAwLjI0MzAxNywgMC4yOTQ2MTQiLCBcCi0gICAgICAgICAgIjAuMDc2OTIsIDAuMTE1ODQ0LCAwLjE1MTk4OCwgMC4xNzc4MjksIDAuMjE5MjA4LCAwLjI1NTM1NiwgMC4zMDY5MDYiLCBcCi0gICAgICAgICAgIjAuMDg3Mzc0LCAwLjEyNjQ4OSwgMC4xNjI3MDIsIDAuMTg4NTIsIDAuMjI5ODEyLCAwLjI2NTkzOCwgMC4zMTc1MzEiLCBcCi0gICAgICAgICAgIjAuMTAyMjA3LCAwLjE0MjE3MywgMC4xNzg0NjksIDAuMjA0MTk2LCAwLjI0NTQ2OSwgMC4yODE1OTEsIDAuMzMzMTU4IiwgXAotICAgICAgICAgICIwLjExMzMyMywgMC4xNTQyODIsIDAuMTkwNTQxLCAwLjIxNjM0NiwgMC4yNTc2MTQsIDAuMjkzNzE0LCAwLjM0NTI4MyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyMjk3OCwgMC4wOTM3NTgsIDAuMTY3MTExLCAwLjIyMDI2NywgMC4zMDUzMDEsIDAuMzc5ODY1LCAwLjQ4NjM0MyIsIFwKLSAgICAgICAgICAiMC4wMjMwMDUsIDAuMDkzNzkxLCAwLjE2NzIwNiwgMC4yMjAwNjYsIDAuMzA0ODk5LCAwLjM3OTM1NywgMC40ODYyMSIsIFwKLSAgICAgICAgICAiMC4wMjMxOTksIDAuMDkzODY2LCAwLjE2NzIxNCwgMC4yMjAyOTgsIDAuMzA1Mjc5LCAwLjM3OTI3MSwgMC40ODYyNTYiLCBcCi0gICAgICAgICAgIjAuMDI0MTg1LCAwLjA5NDE0NiwgMC4xNjc0MzEsIDAuMjIwMzY5LCAwLjMwNDk5NiwgMC4zNzk4NTksIDAuNDg2MjMiLCBcCi0gICAgICAgICAgIjAuMDI1ODEyLCAwLjA5NDcwNCwgMC4xNjc0MTEsIDAuMjIwNDUyLCAwLjMwNTM1OCwgMC4zNzkwODgsIDAuNDg2MjgyIiwgXAotICAgICAgICAgICIwLjAyODMyNCwgMC4wOTU4MjQsIDAuMTY4MDk1LCAwLjIyMDU5NCwgMC4zMDUyMDEsIDAuMzc5MjgzLCAwLjQ4NjE3NiIsIFwKLSAgICAgICAgICAiMC4wMzAxNzYsIDAuMDk2ODIsIDAuMTY4NjI1LCAwLjIyMDg5OSwgMC4zMDUzMjMsIDAuMzc5OSwgMC40ODYxOTkiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTI3NjgsIDAuMTY4ODU0LCAwLjIxMTI4OSwgMC4yMzk3OTEsIDAuMjg0MiwgMC4zMjI2MTMsIDAuMzc3MTk5IiwgXAotICAgICAgICAgICIwLjEyMDY2OSwgMC4xNzY1NzUsIDAuMjE5MTQ1LCAwLjI0NzY1OCwgMC4yOTIwOTMsIDAuMzMwNTAzLCAwLjM4NTA2NyIsIFwKLSAgICAgICAgICAiMC4xMzAxMTIsIDAuMTg2MTcyLCAwLjIyODYyMSwgMC4yNTcwODQsIDAuMzAxNTE1LCAwLjMzOTkwNCwgMC4zOTQ0ODkiLCBcCi0gICAgICAgICAgIjAuMTM5NzU2LCAwLjE5NTgzLCAwLjIzODM4LCAwLjI2NjgyNSwgMC4zMTEyNDQsIDAuMzQ5NjM0LCAwLjQwNDI0NSIsIFwKLSAgICAgICAgICAiMC4xNDkzNjIsIDAuMjA1NDQ0LCAwLjI0Nzg0MiwgMC4yNzYzMzYsIDAuMzIwNzQyLCAwLjM1OTE1MSwgMC40MTM3NTgiLCBcCi0gICAgICAgICAgIjAuMTY0MTY5LCAwLjIyMDA3MiwgMC4yNjI2MjYsIDAuMjkxMDQ3LCAwLjMzNTQ5MiwgMC4zNzM4NTgsIDAuNDI4NDg4IiwgXAotICAgICAgICAgICIwLjE3NjM3LCAwLjIzMjQ3MiwgMC4yNzU0MzgsIDAuMzAzOTA5LCAwLjM0ODM0NywgMC4zODY3MTQsIDAuNDQxMzQzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQzOTUzLCAwLjEyMDg5LCAwLjE5MzgyMywgMC4yNDYyODgsIDAuMzMxMjIyLCAwLjQwNjIzNCwgMC41MTQzMTMiLCBcCi0gICAgICAgICAgIjAuMDQzNzExLCAwLjEyMTE5MywgMC4xOTM3NDUsIDAuMjQ2MjU4LCAwLjMzMTE1OSwgMC40MDYyOTksIDAuNTE0NTc4IiwgXAotICAgICAgICAgICIwLjA0MzgxMywgMC4xMjA3NTksIDAuMTkzNjg5LCAwLjI0NjExLCAwLjMzMTI5LCAwLjQwNjI3LCAwLjUxNDY5NyIsIFwKLSAgICAgICAgICAiMC4wNDM5MjksIDAuMTIwNzg5LCAwLjE5MzQ3MywgMC4yNDYwMzEsIDAuMzMxMTUsIDAuNDA2MTY5LCAwLjUxNDI4NCIsIFwKLSAgICAgICAgICAiMC4wNDM3NjQsIDAuMTIwNjkyLCAwLjE5MzQ1OCwgMC4yNDU5OTgsIDAuMzMxMTE0LCAwLjQwNjEyNiwgMC41MTQyNzciLCBcCi0gICAgICAgICAgIjAuMDQ0MjIyLCAwLjEyMTMzMSwgMC4xOTM5MDIsIDAuMjQ2MzA2LCAwLjMzMTI0MSwgMC40MDYzMDQsIDAuNTE0MDU4IiwgXAotICAgICAgICAgICIwLjA0NTg3LCAwLjEyMjM0NywgMC4xOTQzNTksIDAuMjQ2NjgzLCAwLjMzMTMwNywgMC40MDY2NSwgMC41MTQyNDUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzk1NTUsIDAuMDc4MjUyLCAwLjExNDQ2NSwgMC4xNDAyOTEsIDAuMTgxNDk3LCAwLjIxNzYxLCAwLjI2OTE5NyIsIFwKLSAgICAgICAgICAiMC4wNDk5MzEsIDAuMDg4NjM5LCAwLjEyNDgzOSwgMC4xNTA2MzYsIDAuMTkxOTI3LCAwLjIyODAyNSwgMC4yNzk2NiIsIFwKLSAgICAgICAgICAiMC4wNjI1OTksIDAuMTAxMTE5LCAwLjEzNzMxMiwgMC4xNjMxMTUsIDAuMjA0NDAzLCAwLjI0MDUxMywgMC4yOTIxNDUiLCBcCi0gICAgICAgICAgIjAuMDc0NDI4LCAwLjExMzA5LCAwLjE0OTM0OCwgMC4xNzUxNDEsIDAuMjE2NDE2LCAwLjI1MjU2MSwgMC4zMDQxMzMiLCBcCi0gICAgICAgICAgIjAuMDg0MzA4LCAwLjEyMzY1MSwgMC4xNTk4NjUsIDAuMTg1NjUyLCAwLjIyNjkzNiwgMC4yNjMwNDgsIDAuMzE0NjAyIiwgXAotICAgICAgICAgICIwLjA5ODA2MiwgMC4xMzg0MjgsIDAuMTc0NTgzLCAwLjIwMDQ4NSwgMC4yNDE3NDIsIDAuMjc3ODI2LCAwLjMyOTQ0NSIsIFwKLSAgICAgICAgICAiMC4xMDgzMjgsIDAuMTQ5NjY5LCAwLjE4NTk1NywgMC4yMTE3NTksIDAuMjUzMDM1LCAwLjI4OTE1OCwgMC4zNDA3MDciKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjI5NzIsIDAuMDkzNzg5LCAwLjE2NzExOSwgMC4yMjAxNjgsIDAuMzA0MywgMC4zNzk3OTYsIDAuNDg1NjQyIiwgXAotICAgICAgICAgICIwLjAyMjg0LCAwLjA5MzczNywgMC4xNjcxMTEsIDAuMjIwMTU1LCAwLjMwNDY2MywgMC4zNzk3NzIsIDAuNDg1NCIsIFwKLSAgICAgICAgICAiMC4wMjMyMTEsIDAuMDkzODk0LCAwLjE2NzI3OCwgMC4yMjAxNywgMC4zMDQ4MDMsIDAuMzc5NzE2LCAwLjQ4NTQxNyIsIFwKLSAgICAgICAgICAiMC4wMjQ1NDgsIDAuMDk0MzU2LCAwLjE2NzQ4NCwgMC4yMjAyNDUsIDAuMzA0ODQzLCAwLjM3OTEwNywgMC40ODU2NTkiLCBcCi0gICAgICAgICAgIjAuMDI2Mjg3LCAwLjA5NDg5NSwgMC4xNjc1NjUsIDAuMjIwMTkzLCAwLjMwNTM2LCAwLjM3OTgyNSwgMC40ODYxOTciLCBcCi0gICAgICAgICAgIjAuMDI4ODcyLCAwLjA5NjE4OSwgMC4xNjgzNTEsIDAuMjIwODQ4LCAwLjMwNTUzLCAwLjM3OTM5OSwgMC40ODUyOTciLCBcCi0gICAgICAgICAgIjAuMDMxMzQ2LCAwLjA5NzQ1MSwgMC4xNjg4NTksIDAuMjIxMjQ5LCAwLjMwNTM5NCwgMC4zODAxMTUsIDAuNDg2NDQ0Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTAxNzM2LCAwLjE1Nzg0OSwgMC4yMDAzNjEsIDAuMjI4ODEzLCAwLjI3MzIwOCwgMC4zMTE2MzQsIDAuMzY2MjE2IiwgXAotICAgICAgICAgICIwLjEwOTI1LCAwLjE2NTM5MiwgMC4yMDc4OSwgMC4yMzYzNTcsIDAuMjgwNzYxLCAwLjMxOTE5MSwgMC4zNzM3NzMiLCBcCi0gICAgICAgICAgIjAuMTE5NTgzLCAwLjE3NTY3OCwgMC4yMTgxOTcsIDAuMjQ2NjU2LCAwLjI5MTA0NSwgMC4zMjk0NTcsIDAuMzg0MDQyIiwgXAotICAgICAgICAgICIwLjEyOTgzMiwgMC4xODU5MTMsIDAuMjI4NDI1LCAwLjI1Njg2NywgMC4zMDEzMTYsIDAuMzM5NjgyLCAwLjM5NDMxMyIsIFwKLSAgICAgICAgICAiMC4xNDA0MTgsIDAuMTk2NDExLCAwLjIzODg2NCwgMC4yNjczNiwgMC4zMTE3NjcsIDAuMzUwMTgxLCAwLjQwNDc5MiIsIFwKLSAgICAgICAgICAiMC4xNTY5OSwgMC4yMTMwMDIsIDAuMjU1NDEyLCAwLjI4MzkxMiwgMC4zMjgzNDMsIDAuMzY2NzI1LCAwLjQyMTM0OSIsIFwKLSAgICAgICAgICAiMC4xNzA5ODgsIDAuMjI2OTY1LCAwLjI2OTUzNSwgMC4yOTc5ODUsIDAuMzQyNDAzLCAwLjM4MDc2OSwgMC40MzUzODkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDM5LCAwLjEyMDgxMSwgMC4xOTM1OTEsIDAuMjQ2MDgyLCAwLjMzMTA3NiwgMC40MDYxNzMsIDAuNTE0Mjk4IiwgXAotICAgICAgICAgICIwLjA0NDExNSwgMC4xMjA4NCwgMC4xOTM2MTksIDAuMjQ2MTczLCAwLjMzMTA2MiwgMC40MDYxNjUsIDAuNTE0NDU0IiwgXAotICAgICAgICAgICIwLjA0MzkxNCwgMC4xMjA3NjEsIDAuMTkzNDc5LCAwLjI0NjA1MiwgMC4zMzEwNDYsIDAuNDA2MTcsIDAuNTE0MTk2IiwgXAotICAgICAgICAgICIwLjA0Mzc0NSwgMC4xMjA1NzUsIDAuMTkzMzU0LCAwLjI0NTk5OSwgMC4zMzExLCAwLjQwNjE1MSwgMC41MTQyNTUiLCBcCi0gICAgICAgICAgIjAuMDQzNjM2LCAwLjEyMDU5OCwgMC4xOTM0MzYsIDAuMjQ1OTg0LCAwLjMzMTEwNSwgMC40MDYxMTksIDAuNTE0MDI4IiwgXAotICAgICAgICAgICIwLjA0Mzk3NCwgMC4xMjA5NTUsIDAuMTk0MDk1LCAwLjI0NjQ3OCwgMC4zMzEzMjYsIDAuNDA2Mzg1LCAwLjUxNDQ0MiIsIFwKLSAgICAgICAgICAiMC4wNDUyNywgMC4xMjE3ODksIDAuMTk0MTk3LCAwLjI0NjYyMiwgMC4zMzE0NzYsIDAuNDA2NDk3LCAwLjUxNDIzMSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEwMTkyLCAwLjAxMDUxOSwgMC4wMTA1ODQsIDAuMDEwNjA1LCAwLjAxMDYyNCwgMC4wMTA2MzQsIDAuMDEwNjQzIiwgXAotICAgICAgICAgICIwLjAxMDEwOSwgMC4wMTA0MywgMC4wMTA1MDEsIDAuMDEwNTI2LCAwLjAxMDU0MywgMC4wMTA1NTgsIDAuMDEwNTY4IiwgXAotICAgICAgICAgICIwLjAxMDA4OCwgMC4wMTAzNywgMC4wMTA0NSwgMC4wMTA0NzgsIDAuMDEwNTA1LCAwLjAxMDUyMywgMC4wMTA1MzMiLCBcCi0gICAgICAgICAgIjAuMDEwMTE1LCAwLjAxMDM1LCAwLjAxMDQzMywgMC4wMTA0NTUsIDAuMDEwNDk1LCAwLjAxMDUxMiwgMC4wMTA1MjgiLCBcCi0gICAgICAgICAgIjAuMDEwMTI0LCAwLjAxMDMxNywgMC4wMTA0MTIsIDAuMDEwNDUxLCAwLjAxMDQ3OSwgMC4wMTA1MDgsIDAuMDEwNTI2IiwgXAotICAgICAgICAgICIwLjAxMDIxOCwgMC4wMTAzNjYsIDAuMDEwNDUxLCAwLjAxMDQ4NiwgMC4wMTA1MjMsIDAuMDEwNTQzLCAwLjAxMDU2NCIsIFwKLSAgICAgICAgICAiMC4wMTAzMTMsIDAuMDEwNDAyLCAwLjAxMDQ3NSwgMC4wMTA1MTksIDAuMDEwNTU2LCAwLjAxMDU3MiwgMC4wMTA2MDIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxNDI5MywgMC4wMTQ1MzEsIDAuMDE0NjU3LCAwLjAxNDcwNSwgMC4wMTQ3NTEsIDAuMDE0Nzc2LCAwLjAxNDc5OSIsIFwKLSAgICAgICAgICAiMC4wMTQzMiwgMC4wMTQ0OTIsIDAuMDE0NjAyLCAwLjAxNDY1NywgMC4wMTQ3MDMsIDAuMDE0NzI4LCAwLjAxNDc1MSIsIFwKLSAgICAgICAgICAiMC4wMTQyMzUsIDAuMDE0NDQsIDAuMDE0NTUyLCAwLjAxNDYwNiwgMC4wMTQ2NTcsIDAuMDE0Njg1LCAwLjAxNDcxMSIsIFwKLSAgICAgICAgICAiMC4wMTQxODUsIDAuMDE0NDA1LCAwLjAxNDUzOCwgMC4wMTQ1OSwgMC4wMTQ2NDIsIDAuMDE0NjcsIDAuMDE0Njk3IiwgXAotICAgICAgICAgICIwLjAxNDE2NCwgMC4wMTQzODksIDAuMDE0NTI0LCAwLjAxNDU3NywgMC4wMTQ2MywgMC4wMTQ2NTksIDAuMDE0Njg2IiwgXAotICAgICAgICAgICIwLjAxNDE5MSwgMC4wMTQzODMsIDAuMDE0NTE1LCAwLjAxNDU2OSwgMC4wMTQ2MjIsIDAuMDE0NjUyLCAwLjAxNDY4IiwgXAotICAgICAgICAgICIwLjAxNDIxMiwgMC4wMTQzNzUsIDAuMDE0NTAzLCAwLjAxNDU1NywgMC4wMTQ2MTIsIDAuMDE0NjQyLCAwLjAxNDY3MSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA5NjYsIDAuMDEwMDM1LCAwLjAxMDEwNiwgMC4wMTAxMzIsIDAuMDEwMTU0LCAwLjAxMDE2MSwgMC4wMTAxNjYiLCBcCi0gICAgICAgICAgIjAuMDA5NTg1LCAwLjAwOTk1MywgMC4wMTAwMzMsIDAuMDEwMDU3LCAwLjAxMDA4NCwgMC4wMTAwOTYsIDAuMDEwMTE0IiwgXAotICAgICAgICAgICIwLjAwOTUyNCwgMC4wMDk4NzEsIDAuMDA5OTY2LCAwLjAwOTk5OCwgMC4wMTAwMjgsIDAuMDEwMDQyLCAwLjAxMDA2IiwgXAotICAgICAgICAgICIwLjAwOTU1OCwgMC4wMDk4NDEsIDAuMDA5OTM5LCAwLjAwOTk3NSwgMC4wMTAwMDQsIDAuMDEwMDMxLCAwLjAxMDA0OCIsIFwKLSAgICAgICAgICAiMC4wMDk1NzksIDAuMDA5ODA0LCAwLjAwOTkxNywgMC4wMDk5NTYsIDAuMDA5OTkxLCAwLjAxMDAxMywgMC4wMTAwMzYiLCBcCi0gICAgICAgICAgIjAuMDA5NjExLCAwLjAwOTgyMiwgMC4wMDk5MjYsIDAuMDA5OTcxLCAwLjAxMDAxMywgMC4wMTAwMzcsIDAuMDEwMDYxIiwgXAotICAgICAgICAgICIwLjAwOTU1NSwgMC4wMDk4MTgsIDAuMDA5OTE0LCAwLjAwOTk1NiwgMC4wMDk5OTQsIDAuMDEwMDIsIDAuMDEwMDU5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTM2NiwgMC4wMTM4NzksIDAuMDEzOTk1LCAwLjAxNDA0OSwgMC4wMTQxMDEsIDAuMDE0MTMsIDAuMDE0MTU3IiwgXAotICAgICAgICAgICIwLjAxMzYyNSwgMC4wMTM4MywgMC4wMTM5NDEsIDAuMDEzOTk2LCAwLjAxNDA0OSwgMC4wMTQwNzgsIDAuMDE0MTA2IiwgXAotICAgICAgICAgICIwLjAxMzU3OCwgMC4wMTM3ODMsIDAuMDEzOTE1LCAwLjAxMzk2OCwgMC4wMTQwMiwgMC4wMTQwNDksIDAuMDE0MDc2IiwgXAotICAgICAgICAgICIwLjAxMzUyNSwgMC4wMTM3NDcsIDAuMDEzODg3LCAwLjAxMzk0MiwgMC4wMTM5OTgsIDAuMDE0MDI4LCAwLjAxNDA1NyIsIFwKLSAgICAgICAgICAiMC4wMTM1MTgsIDAuMDEzNzMzLCAwLjAxMzg3MSwgMC4wMTM5MjcsIDAuMDEzOTgzLCAwLjAxNDAxNSwgMC4wMTQwNDUiLCBcCi0gICAgICAgICAgIjAuMDEzNTUxLCAwLjAxMzcyNywgMC4wMTM4NTksIDAuMDEzOTE1LCAwLjAxMzk3MiwgMC4wMTQwMDUsIDAuMDE0MDM1IiwgXAotICAgICAgICAgICIwLjAxMzYxNSwgMC4wMTM3MjIsIDAuMDEzODUxLCAwLjAxMzkwNiwgMC4wMTM5NjQsIDAuMDEzOTk3LCAwLjAxNDAyOCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA5MDU3LCAwLjAwOTQzLCAwLjAwOTQ4OCwgMC4wMDk1MTcsIDAuMDA5NTI3LCAwLjAwOTUzNywgMC4wMDk1NTMiLCBcCi0gICAgICAgICAgIjAuMDA4OTk3LCAwLjAwOTM2NywgMC4wMDk0NDQsIDAuMDA5NDY5LCAwLjAwOTQ5LCAwLjAwOTUwOCwgMC4wMDk1MTIiLCBcCi0gICAgICAgICAgIjAuMDA4OTMzLCAwLjAwOTI4MiwgMC4wMDkzNzQsIDAuMDA5NDA0LCAwLjAwOTQzMywgMC4wMDk0NDksIDAuMDA5NDYyIiwgXAotICAgICAgICAgICIwLjAwODkwNSwgMC4wMDkyNDUsIDAuMDA5MzQxLCAwLjAwOTM4NCwgMC4wMDk0MjIsIDAuMDA5NDQxLCAwLjAwOTQ1OSIsIFwKLSAgICAgICAgICAiMC4wMDg5NTgsIDAuMDA5MjM2LCAwLjAwOTMzOCwgMC4wMDkzNzgsIDAuMDA5NDE4LCAwLjAwOTQ0MSwgMC4wMDk0NjIiLCBcCi0gICAgICAgICAgIjAuMDA4OTk2LCAwLjAwOTE4NSwgMC4wMDkyODksIDAuMDA5MzI1LCAwLjAwOTM3MywgMC4wMDk0MDMsIDAuMDA5NDE4IiwgXAotICAgICAgICAgICIwLjAwODk1LCAwLjAwOTE3NiwgMC4wMDkyODYsIDAuMDA5MzMzLCAwLjAwOTM4MSwgMC4wMDk0MTUsIDAuMDA5NDQ1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTMwNTQsIDAuMDEzMjI4LCAwLjAxMzM0MSwgMC4wMTMzOTQsIDAuMDEzNDQ3LCAwLjAxMzQ4MiwgMC4wMTM1MDkiLCBcCi0gICAgICAgICAgIjAuMDEyOTE4LCAwLjAxMzE4MiwgMC4wMTMzMDYsIDAuMDEzMzU2LCAwLjAxMzQwNSwgMC4wMTM0MzMsIDAuMDEzNDU5IiwgXAotICAgICAgICAgICIwLjAxMjg5NCwgMC4wMTMxMSwgMC4wMTMyMzUsIDAuMDEzMjkzLCAwLjAxMzM1MSwgMC4wMTMzODMsIDAuMDEzNDE0IiwgXAotICAgICAgICAgICIwLjAxMjg1NCwgMC4wMTMwNzMsIDAuMDEzMjE1LCAwLjAxMzI3MywgMC4wMTMzMzIsIDAuMDEzMzY1LCAwLjAxMzM5NiIsIFwKLSAgICAgICAgICAiMC4wMTI4OTYsIDAuMDEzMDc1LCAwLjAxMzIwOCwgMC4wMTMyNjQsIDAuMDEzMzIyLCAwLjAxMzM1NSwgMC4wMTMzODYiLCBcCi0gICAgICAgICAgIjAuMDEyOTA5LCAwLjAxMzAzOCwgMC4wMTMxNzMsIDAuMDEzMjMzLCAwLjAxMzI5NSwgMC4wMTMzMzEsIDAuMDEzMzY2IiwgXAotICAgICAgICAgICIwLjAxMzAwNywgMC4wMTMwNjQsIDAuMDEzMTc5LCAwLjAxMzIzNCwgMC4wMTMyOTQsIDAuMDEzMzMsIDAuMDEzMzY1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDgzNzQsIDAuMDA4NzM2LCAwLjAwODc5NCwgMC4wMDg4MTEsIDAuMDA4ODM3LCAwLjAwODg0NCwgMC4wMDg4NTQiLCBcCi0gICAgICAgICAgIjAuMDA4MzA1LCAwLjAwODY3OSwgMC4wMDg3NDksIDAuMDA4NzcxLCAwLjAwODc5MSwgMC4wMDg4MDEsIDAuMDA4ODA5IiwgXAotICAgICAgICAgICIwLjAwODI3MywgMC4wMDg2LCAwLjAwODY4NywgMC4wMDg3MTgsIDAuMDA4NzQ2LCAwLjAwODc0OSwgMC4wMDg3NzEiLCBcCi0gICAgICAgICAgIjAuMDA4MjEsIDAuMDA4NTE4LCAwLjAwODYyNiwgMC4wMDg2NjMsIDAuMDA4Njk3LCAwLjAwODcxNSwgMC4wMDg3MyIsIFwKLSAgICAgICAgICAiMC4wMDgyMzYsIDAuMDA4NTE0LCAwLjAwODYyMywgMC4wMDg2NjUsIDAuMDA4NzAyLCAwLjAwODcyNSwgMC4wMDg3NDIiLCBcCi0gICAgICAgICAgIjAuMDA4MzA4LCAwLjAwODUyNSwgMC4wMDg2MTcsIDAuMDA4NjcyLCAwLjAwODcsIDAuMDA4NzI4LCAwLjAwODc1MSIsIFwKLSAgICAgICAgICAiMC4wMDg0MDQsIDAuMDA4NTU3LCAwLjAwODY0MywgMC4wMDg2OTIsIDAuMDA4NzMxLCAwLjAwODc1NiwgMC4wMDg3ODYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMjI5NiwgMC4wMTI1MTMsIDAuMDEyNjUsIDAuMDEyNzA2LCAwLjAxMjc2MywgMC4wMTI3OTQsIDAuMDEyODI0IiwgXAotICAgICAgICAgICIwLjAxMjE4NiwgMC4wMTI0MTksIDAuMDEyNTYxLCAwLjAxMjYxOCwgMC4wMTI2ODMsIDAuMDEyNzE1LCAwLjAxMjc0NSIsIFwKLSAgICAgICAgICAiMC4wMTIxNTEsIDAuMDEyMzg0LCAwLjAxMjUyNywgMC4wMTI1ODYsIDAuMDEyNjQ3LCAwLjAxMjY4LCAwLjAxMjcxMyIsIFwKLSAgICAgICAgICAiMC4wMTIxMzcsIDAuMDEyMzU5LCAwLjAxMjUwMSwgMC4wMTI1NjIsIDAuMDEyNjI0LCAwLjAxMjY2LCAwLjAxMjY5NSIsIFwKLSAgICAgICAgICAiMC4wMTIxOTMsIDAuMDEyMzY1LCAwLjAxMjUsIDAuMDEyNTYsIDAuMDEyNjI0LCAwLjAxMjY2MSwgMC4wMTI2OTciLCBcCi0gICAgICAgICAgIjAuMDEyMzM0LCAwLjAxMjQwNywgMC4wMTI1MDYsIDAuMDEyNTY3LCAwLjAxMjYzNCwgMC4wMTI2NzUsIDAuMDEyNzE1IiwgXAotICAgICAgICAgICIwLjAxMjM4NSwgMC4wMTI1MzMsIDAuMDEyNjExLCAwLjAxMjY1NiwgMC4wMTI3MDksIDAuMDEyNzQyLCAwLjAxMjc3NiIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBPUjRYTCAqCi0gKiAtLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoT1I0WEwpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4xMjM2MDU7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYwMTgyNjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA1OTgxODsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2MDE4MjY7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMTkzLCAwLjAwMDIwMywgMC4wMDAyMDcsIDAuMDAwMjEsIDAuMDAwMjExLCAwLjAwMDIxMSwgMC4wMDAyMTIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA1NjUsIDAuMDAwNTY1LCAwLjAwMDU2NSwgMC4wMDA1NjUsIDAuMDAwNTY1LCAwLjAwMDU2NSwgMC4wMDA1NjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYzNzY4NDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MzQ2NjE7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjM3Njg0OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDE4OSwgMC4wMDAyMDEsIDAuMDAwMjA4LCAwLjAwMDIxLCAwLjAwMDIxMiwgMC4wMDAyMTUsIDAuMDAwMjE2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzk4LCAwLjAwMDM5OSwgMC4wMDAzOTgsIDAuMDAwMzk5LCAwLjAwMDM5OSwgMC4wMDAzOTksIDAuMDAwMzk5Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihDKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2NTc3MTE7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjU1MzUyOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDY1NzcxMTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxOTEsIDAuMDAwMjExLCAwLjAwMDIxNSwgMC4wMDAyMTcsIDAuMDAwMjE3LCAwLjAwMDIxOSwgMC4wMDAyMiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDI0MSwgMC4wMDAyNDEsIDAuMDAwMjQxLCAwLjAwMDI0MSwgMC4wMDAyNDEsIDAuMDAwMjQxLCAwLjAwMDI0MSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjIxNjEzOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYyMTYxMzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2MjE1NTI7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMDYsIDAuMDAwMDYsIDAuMDAwMDYsIDAuMDAwMDYsIDAuMDAwMDYsIDAuMDAwMDYsIDAuMDAwMDYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxODIsIDAuMDAwMTgyLCAwLjAwMDE4MiwgMC4wMDAxODIsIDAuMDAwMTgyLCAwLjAwMDE4MiwgMC4wMDAxODIiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4xNTE2MzU7Ci0gICAgZnVuY3Rpb24gOiAiKCgoQStCKStDKStEKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTA1NDgzLCAwLjExOTY3NSwgMC4yNDcwOTMsIDAuNDU5MDU2LCAwLjY3MDk3MSwgMS4xNjUyNiwgMS40NDc2NiIsIFwKLSAgICAgICAgICAiMC4xMTU2NzYsIDAuMTI5ODY4LCAwLjI1NzI1MiwgMC40NjkyNjEsIDAuNjgxMDg2LCAxLjE3NTQ0LCAxLjQ1NzgxIiwgXAotICAgICAgICAgICIwLjEyODMyOSwgMC4xNDI1MTEsIDAuMjY5OTAzLCAwLjQ4MTg5NCwgMC42OTM3MzQsIDEuMTg4MDMsIDEuNDcwNTMiLCBcCi0gICAgICAgICAgIjAuMTQwMzUyLCAwLjE1NDUzMSwgMC4yODE5MjEsIDAuNDkzODg5LCAwLjcwNTc4MywgMS4yMDAwNywgMS40ODI0OCIsIFwKLSAgICAgICAgICAiMC4xNTA4MzMsIDAuMTY1MDI4LCAwLjI5MjQyMSwgMC41MDQzODksIDAuNzE2MjU3LCAxLjIxMDU1LCAxLjQ5MjkzIiwgXAotICAgICAgICAgICIwLjE2NTQ2LCAwLjE3OTYzNSwgMC4zMDcwMDMsIDAuNTE4OTksIDAuNzMwODczLCAxLjIyNTE3LCAxLjUwNzU3IiwgXAotICAgICAgICAgICIwLjE3NzMzNCwgMC4xOTE0OTgsIDAuMzE4ODU1LCAwLjUzMDgxMiwgMC43NDI3MjIsIDEuMjM3MDEsIDEuNTE5NDEiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTUzNzI1LCAwLjE4MjU2MywgMC40NDM0OTIsIDAuODc4OTA3LCAxLjMxNDQsIDIuMzMwNDYsIDIuOTExMDIiLCBcCi0gICAgICAgICAgIjAuMTUzNjk1LCAwLjE4MjY5NCwgMC40NDMxNTYsIDAuODc4ODIzLCAxLjMxNDA4LCAyLjMyNjY3LCAyLjkwODE2IiwgXAotICAgICAgICAgICIwLjE1Mzc2MSwgMC4xODI2MzIsIDAuNDQzMDcyLCAwLjg3ODg2LCAxLjMxNDA5LCAyLjMyODEsIDIuOTEwODIiLCBcCi0gICAgICAgICAgIjAuMTUzODA5LCAwLjE4MjQ5LCAwLjQ0MzQ1OCwgMC44Nzg3MzMsIDEuMzE0MDgsIDIuMzI5OTIsIDIuOTEwMzkiLCBcCi0gICAgICAgICAgIjAuMTUzOTM4LCAwLjE4MjQ4OSwgMC40NDM0NTUsIDAuODc4NzQzLCAxLjMxNDA0LCAyLjMyOTg5LCAyLjkxMDI4IiwgXAotICAgICAgICAgICIwLjE1NDI4MSwgMC4xODI4MTIsIDAuNDQzMDM4LCAwLjg3ODc1MSwgMS4zMTQwOCwgMi4zMjk5NSwgMi45MTA0IiwgXAotICAgICAgICAgICIwLjE1NDM5NCwgMC4xODI5MzQsIDAuNDQzNTEyLCAwLjg3Nzk3MywgMS4zMTQwOSwgMi4zMjk5MiwgMi45MTAzOSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNzYyMjIsIDAuMTkwNTk3LCAwLjMxNTkzOCwgMC41MjMzNDMsIDAuNzMwNzgsIDEuMjE0OSwgMS40OTIzNyIsIFwKLSAgICAgICAgICAiMC4xODQzMTQsIDAuMTk4Njc5LCAwLjMyNDAyMSwgMC41MzE0NDIsIDAuNzM4OTYyLCAxLjIyMzI0LCAxLjQ5OTg3IiwgXAotICAgICAgICAgICIwLjE5MjY3MywgMC4yMDcwMiwgMC4zMzIzNzQsIDAuNTM5NzgzLCAwLjc0NzI4NiwgMS4yMzEzNywgMS41MDg3OSIsIFwKLSAgICAgICAgICAiMC4yMDAxMiwgMC4yMTQ0NzcsIDAuMzM5ODIzLCAwLjU0NzI0NSwgMC43NTQ3NzMsIDEuMjM4NzgsIDEuNTE2MDIiLCBcCi0gICAgICAgICAgIjAuMjA2OTk0LCAwLjIyMTM2NiwgMC4zNDY3MTgsIDAuNTU0MTM5LCAwLjc2MTYwNCwgMS4yNDU3LCAxLjUyMzA0IiwgXAotICAgICAgICAgICIwLjIxNzMxOSwgMC4yMzE2NzUsIDAuMzU3MDI5LCAwLjU2NDQ0MiwgMC43NzE5NDIsIDEuMjU2MDIsIDEuNTMzMzMiLCBcCi0gICAgICAgICAgIjAuMjI1NDkxLCAwLjIzOTgzOCwgMC4zNjUyNzksIDAuNTcyNzE2LCAwLjc4MDIyNSwgMS4yNjQyNywgMS41NDA4NyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNTkyNDYsIDAuMTg1NjI1LCAwLjQyODg1MiwgMC44NDMwMywgMS4yNTkzNywgMi4yMzI3OCwgMi43ODA1MiIsIFwKLSAgICAgICAgICAiMC4xNTkyNjUsIDAuMTg1NjM0LCAwLjQyODk0MywgMC44NDMxNTEsIDEuMjU2MDksIDIuMjI3NzEsIDIuNzgzODYiLCBcCi0gICAgICAgICAgIjAuMTU5MTM0LCAwLjE4NTUzMiwgMC40MjgzODgsIDAuODQzMDA2LCAxLjI1OTc3LCAyLjIyNjI3LCAyLjc4MDY0IiwgXAotICAgICAgICAgICIwLjE1OTAyLCAwLjE4NTQ3NiwgMC40MjgzOTUsIDAuODQxNTY5LCAxLjI1OTkyLCAyLjIzMjcxLCAyLjc4MTE5IiwgXAotICAgICAgICAgICIwLjE1OTA4NCwgMC4xODU0NjQsIDAuNDI4NTc4LCAwLjg0MjIyNiwgMS4yNTk1MywgMi4yMzE4OSwgMi43ODA5OCIsIFwKLSAgICAgICAgICAiMC4xNTkzMTQsIDAuMTg1NzgzLCAwLjQyODU0NSwgMC44NDMwMzgsIDEuMjU5NzEsIDIuMjMyODMsIDIuNzgxMDQiLCBcCi0gICAgICAgICAgIjAuMTYwMDAzLCAwLjE4NjE3MywgMC40MjkzNzUsIDAuODQxODMzLCAxLjI1NjExLCAyLjIzMjg4LCAyLjc4MDc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwMzcxNywgMC4xMTc4NjMsIDAuMjQ1MTI2LCAwLjQ1Njk5NSwgMC42Njg4MzksIDEuMTYzMDUsIDEuNDQ1NDYiLCBcCi0gICAgICAgICAgIjAuMTEzOTEyLCAwLjEyODA2NCwgMC4yNTUzNDYsIDAuNDY3MjEsIDAuNjc5MDY1LCAxLjE3MzI5LCAxLjQ1NTY2IiwgXAotICAgICAgICAgICIwLjEyNjU2MiwgMC4xNDA3NDIsIDAuMjY4MDA2LCAwLjQ3OTg5MSwgMC42OTE3MzEsIDEuMTg1OTUsIDEuNDY4NDMiLCBcCi0gICAgICAgICAgIjAuMTM4MTI3LCAwLjE1MjMwOCwgMC4yNzk1ODYsIDAuNDkxNDYsIDAuNzAzMzI1LCAxLjE5NzY3LCAxLjQ3OTkzIiwgXAotICAgICAgICAgICIwLjE0Nzk3OCwgMC4xNjIxNDcsIDAuMjg5NDM5LCAwLjUwMTM3NiwgMC43MTMxNTksIDEuMjA3MzgsIDEuNDkwMDgiLCBcCi0gICAgICAgICAgIjAuMTYyMTM4LCAwLjE3NjI5MSwgMC4zMDM2MSwgMC41MTU1MTksIDAuNzI3MzU5LCAxLjIyMTY5LCAxLjUwMzk3IiwgXAotICAgICAgICAgICIwLjE3Mjg2OSwgMC4xODcwMzksIDAuMzE0MzQ0LCAwLjUyNjI1OSwgMC43MzgxMzgsIDEuMjMyMzMsIDEuNTE0NzEiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTUzMDAyLCAwLjE4MTk4MSwgMC40NDMyMjcsIDAuODc4NTUzLCAxLjMxNDA4LCAyLjMzMDA5LCAyLjkwOTg0IiwgXAotICAgICAgICAgICIwLjE1MzI0OCwgMC4xODIxNTYsIDAuNDQxOTU1LCAwLjg3ODUxMiwgMS4zMTM5OSwgMi4zMzAwMywgMi45MTA0OCIsIFwKLSAgICAgICAgICAiMC4xNTMyMjksIDAuMTgyMTY3LCAwLjQ0MzEyMSwgMC44Nzg1MzEsIDEuMzEzOTUsIDIuMzI5OTUsIDIuOTEwNzIiLCBcCi0gICAgICAgICAgIjAuMTUzMzI0LCAwLjE4MjIyOCwgMC40NDMxNDUsIDAuODc4NDEsIDEuMzEyNDQsIDIuMzI5OTYsIDIuOTEwMjkiLCBcCi0gICAgICAgICAgIjAuMTUzNTM2LCAwLjE4MjE2MywgMC40NDMxMzgsIDAuODc4NTUsIDEuMzEzNzgsIDIuMzI5NjIsIDIuOTA0NiIsIFwKLSAgICAgICAgICAiMC4xNTM4MTcsIDAuMTgyNDI5LCAwLjQ0MjU2NywgMC44Nzg0ODYsIDEuMzEzODMsIDIuMzI5OTYsIDIuOTEwMjkiLCBcCi0gICAgICAgICAgIjAuMTUzOTY5LCAwLjE4MjYxMywgMC40NDI2MzUsIDAuODc4NDg1LCAxLjMxMzkzLCAyLjMyOTc0LCAyLjkxMDI3Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE3MjY2MSwgMC4xODcwMTQsIDAuMzEyMzg4LCAwLjUxOTgwMywgMC43MjczMTYsIDEuMjExMzksIDEuNDg4NzkiLCBcCi0gICAgICAgICAgIjAuMTgwNDQ1LCAwLjE5NDczNywgMC4zMjAxNzMsIDAuNTI3NiwgMC43MzUwNDMsIDEuMjE5MTUsIDEuNDk2MSIsIFwKLSAgICAgICAgICAiMC4xODkxNywgMC4yMDM1MjksIDAuMzI4OTAzLCAwLjUzNjM1OSwgMC43NDM4MywgMS4yMjc5NCwgMS41MDU0IiwgXAotICAgICAgICAgICIwLjE5NzI4NywgMC4yMTE2MjksIDAuMzM2OTkzLCAwLjU0NDQyNywgMC43NTE5NjIsIDEuMjM1OTYsIDEuNTEyODMiLCBcCi0gICAgICAgICAgIjAuMjA1MDIyLCAwLjIxOTM2MiwgMC4zNDQ3NDIsIDAuNTUyMTY4LCAwLjc1OTY3NCwgMS4yNDM3NywgMS41MjEyIiwgXAotICAgICAgICAgICIwLjIxNzAwMSwgMC4yMzEzNjIsIDAuMzU2NzMzLCAwLjU2NDE2NCwgMC43NzE2NzIsIDEuMjU1NzUsIDEuNTMzMzEiLCBcCi0gICAgICAgICAgIjAuMjI2NTU4LCAwLjI0MTAwNiwgMC4zNjY0NjEsIDAuNTczODg0LCAwLjc4MTQyLCAxLjI2NTQ1LCAxLjU0Mjc5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE1OTIxLCAwLjE4NTU4MSwgMC40Mjg0MTMsIDAuODQzMDA4LCAxLjI1OTc1LCAyLjIzMjg2LCAyLjc4MDY2IiwgXAotICAgICAgICAgICIwLjE1OTE4NiwgMC4xODU1NDUsIDAuNDI4NjU3LCAwLjg0MjcwOCwgMS4yNTk0LCAyLjIzMjc4LCAyLjc4MjgxIiwgXAotICAgICAgICAgICIwLjE1OTA5OCwgMC4xODU0NDQsIDAuNDI4MzgsIDAuODQzMzA1LCAxLjI1OTc3LCAyLjIzMTQ5LCAyLjc4MDQ5IiwgXAotICAgICAgICAgICIwLjE1OTAwNywgMC4xODU0MywgMC40Mjg0OTQsIDAuODQyMDgsIDEuMjU2MTIsIDIuMjMyNzEsIDIuNzgxMzkiLCBcCi0gICAgICAgICAgIjAuMTU5MTA0LCAwLjE4NTQ5LCAwLjQyODQ0MywgMC44NDMwMTMsIDEuMjU5NzQsIDIuMjI2MjksIDIuNzkxMTQiLCBcCi0gICAgICAgICAgIjAuMTU5NjQ5LCAwLjE4NTkzNywgMC40MjkwNTcsIDAuODQxNzIyLCAxLjI1OTgxLCAyLjIyNjMxLCAyLjc4MzUyIiwgXAotICAgICAgICAgICIwLjE2MDM0NiwgMC4xODY1NTYsIDAuNDI5NDgyLCAwLjg0MzE0LCAxLjI1NjQsIDIuMjMyNzksIDIuNzgwOTgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTAxMjMyLCAwLjExNTM4NywgMC4yNDI1MzQsIDAuNDU0MzY4LCAwLjY2NjE5NywgMS4xNjAzOSwgMS40NDI4MiIsIFwKLSAgICAgICAgICAiMC4xMTE1NzEsIDAuMTI1NzEzLCAwLjI1Mjg4MiwgMC40NjQ3MjMsIDAuNjc2NTIyLCAxLjE3MDcxLCAxLjQ1MzE1IiwgXAotICAgICAgICAgICIwLjEyNDEyMywgMC4xMzgyNjcsIDAuMjY1NDQ3LCAwLjQ3NzI5LCAwLjY4OTE0MiwgMS4xODMyOSwgMS40NjU3MSIsIFwKLSAgICAgICAgICAiMC4xMzQ4MDksIDAuMTQ4OTYyLCAwLjI3NjE3MywgMC40ODc5ODQsIDAuNjk5ODAxLCAxLjE5Mzk5LCAxLjQ3NjQiLCBcCi0gICAgICAgICAgIjAuMTQ0NzUsIDAuMTU4ODk1LCAwLjI4NjEwMiwgMC40OTc5MTIsIDAuNzA5NzI3LCAxLjIwMzkyLCAxLjQ4NjMzIiwgXAotICAgICAgICAgICIwLjE1Nzg2OSwgMC4xNzIwMTQsIDAuMjk5MjQyLCAwLjUxMTA0MywgMC43MjI4NjgsIDEuMjE3MDQsIDEuNDk5NTciLCBcCi0gICAgICAgICAgIjAuMTY3OTUzLCAwLjE4MjEyNiwgMC4zMDkzLCAwLjUyMTIwNywgMC43MzI5ODQsIDEuMjI3MTcsIDEuNTA5NzciKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTUyOTIsIDAuMTgxOTE4LCAwLjQ0MjQ1OCwgMC44Nzg0NjksIDEuMzEyMzgsIDIuMzMwMzcsIDIuOTA3MjYiLCBcCi0gICAgICAgICAgIjAuMTUyOTUzLCAwLjE4MTY2LCAwLjQ0MjUzOCwgMC44Nzc0NjgsIDEuMzEyMjcsIDIuMzI3MzIsIDIuOTA3NDIiLCBcCi0gICAgICAgICAgIjAuMTUyNzk0LCAwLjE4MTg0OSwgMC40NDI0NTQsIDAuODc3NTMzLCAxLjMxMTg0LCAyLjMyNzA2LCAyLjkwNzY0IiwgXAotICAgICAgICAgICIwLjE1Mjk0NywgMC4xODE5NzMsIDAuNDQyOTYyLCAwLjg3NzM5OCwgMS4zMTI0MywgMi4zMjY5MiwgMi45MDc0OSIsIFwKLSAgICAgICAgICAiMC4xNTMyODIsIDAuMTgxOTQ3LCAwLjQ0Mjk0MiwgMC44NzgyMjMsIDEuMzEzNywgMi4zMjY5OCwgMi45MDc0NiIsIFwKLSAgICAgICAgICAiMC4xNTM1OTUsIDAuMTgyMjIxLCAwLjQ0MjIxOSwgMC44NzgyNCwgMS4zMTM3LCAyLjMyOTYxLCAyLjkxMDQ3IiwgXAotICAgICAgICAgICIwLjE1Mzg3OSwgMC4xODI0OTcsIDAuNDQyNSwgMC44NzY4ODQsIDEuMzExNjMsIDIuMzI5NzEsIDIuOTEwNjYiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTY1NTYsIDAuMTc5OTU2LCAwLjMwNTMyNiwgMC41MTI3NTIsIDAuNzIwMjQ0LCAxLjIwNDMyLCAxLjQ4MTg0IiwgXAotICAgICAgICAgICIwLjE3MzE2MywgMC4xODc1NjgsIDAuMzEyOTUsIDAuNTIwMzc0LCAwLjcyNzg3LCAxLjIxMTk0LCAxLjQ4OTQ2IiwgXAotICAgICAgICAgICIwLjE4MjYzLCAwLjE5NzAwOSwgMC4zMjIzOTksIDAuNTI5ODI5LCAwLjczNzMxNiwgMS4yMjEzOCwgMS40OTg3MiIsIFwKLSAgICAgICAgICAiMC4xOTIwNzEsIDAuMjA2NDE0LCAwLjMzMTgsIDAuNTM5MjcyLCAwLjc0Njc1NywgMS4yMzEyMywgMS41MDgwNiIsIFwKLSAgICAgICAgICAiMC4yMDEwMzgsIDAuMjE1Mzc3LCAwLjM0MDc3NywgMC41NDgyMiwgMC43NTU3NTYsIDEuMjM5OCwgMS41MTcxIiwgXAotICAgICAgICAgICIwLjIxNTA1OSwgMC4yMjk0MzEsIDAuMzU0ODUzLCAwLjU2MjMzOCwgMC43Njk4MDgsIDEuMjU0NDQsIDEuNTMxNDEiLCBcCi0gICAgICAgICAgIjAuMjI2MDYzLCAwLjI0MDQ4NywgMC4zNjU5NTIsIDAuNTczMzc1LCAwLjc4MDkwMiwgMS4yNjQ5NSwgMS41NDIzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE1OTIzMywgMC4xODU2MDksIDAuNDI4ODg2LCAwLjg0MzAzOSwgMS4yNTk2MiwgMi4yMzI3OCwgMi43ODA1IiwgXAotICAgICAgICAgICIwLjE1OTI0MywgMC4xODU2NDMsIDAuNDI4NzQ3LCAwLjg0MzAxNiwgMS4yNTk2NCwgMi4yMzI3NiwgMi43ODA0OCIsIFwKLSAgICAgICAgICAiMC4xNTkwODIsIDAuMTg1NDgsIDAuNDI4NjA3LCAwLjg0MjYyNiwgMS4yNTc0NSwgMi4yMzI3NywgMi43ODEwNyIsIFwKLSAgICAgICAgICAiMC4xNTg5OSwgMC4xODU0MzgsIDAuNDI4ODc3LCAwLjg0MzI4MiwgMS4yNTk3OSwgMi4yMjcwNiwgMi43OTA4NiIsIFwKLSAgICAgICAgICAiMC4xNTkyMjYsIDAuMTg1NjMyLCAwLjQyOTE1MywgMC44NDE1NzMsIDEuMjU5OTIsIDIuMjMxOTIsIDIuNzgxMDkiLCBcCi0gICAgICAgICAgIjAuMTU5ODM0LCAwLjE4NjExLCAwLjQyODUxMywgMC44NDM0MjMsIDEuMjU5ODIsIDIuMjI2NTEsIDIuNzgwMzkiLCBcCi0gICAgICAgICAgIjAuMTYwNDkxLCAwLjE4Njc1LCAwLjQyOTM3OSwgMC44NDMxNTYsIDEuMjU2LCAyLjIzMjgsIDIuNzgwOTYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk4NTA1LCAwLjExMjYzNSwgMC4yMzk4MTksIDAuNDUxNzUxLCAwLjY2MzU0NiwgMS4xNTg5NCwgMS40NDEwMiIsIFwKLSAgICAgICAgICAiMC4xMDg3MiwgMC4xMjI4NjIsIDAuMjUwMDIzLCAwLjQ2MTk4NCwgMC42NzM3ODYsIDEuMTY4MzEsIDEuNDUxMzciLCBcCi0gICAgICAgICAgIjAuMTIwNzgsIDAuMTM0OTEsIDAuMjYyMDc3LCAwLjQ3NDAzOSwgMC42ODY1MDUsIDEuMTgwNjcsIDEuNDYzIiwgXAotICAgICAgICAgICIwLjEzMTI1MiwgMC4xNDUzOTUsIDAuMjcyNTc1LCAwLjQ4NDY2NSwgMC42OTYzMSwgMS4xOTA4LCAxLjQ3NDIyIiwgXAotICAgICAgICAgICIwLjE0MDE2NywgMC4xNTQyODksIDAuMjgxNTAxLCAwLjQ5MzQ3NCwgMC43MDUyMzUsIDEuMTk5NzUsIDEuNDgyNzYiLCBcCi0gICAgICAgICAgIjAuMTUyMDkzLCAwLjE2NjE5NywgMC4yOTMzOTMsIDAuNTA1NTI2LCAwLjcxNzIwNiwgMS4yMTI2OSwgMS40OTQwMSIsIFwKLSAgICAgICAgICAiMC4xNjE1MTEsIDAuMTc1NzA2LCAwLjMwMjgyOSwgMC41MTQ3MDYsIDAuNzI2NjMzLCAxLjIyMTI5LCAxLjUwMzYxIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE1MjczMywgMC4xODE1MTEsIDAuNDQxOTk0LCAwLjg3NzEwMywgMS4zMTE1NywgMi4zMjcyMiwgMi45MDYzNSIsIFwKLSAgICAgICAgICAiMC4xNTI3MjQsIDAuMTgxNDg2LCAwLjQ0MjA2OSwgMC44NzcwNTIsIDEuMzExNTcsIDIuMzI3NzksIDIuOTA2NDIiLCBcCi0gICAgICAgICAgIjAuMTUyODAzLCAwLjE4MTcwNywgMC40NDI5NDUsIDAuODc4MjA0LCAxLjMxMjQzLCAyLjMyNjUxLCAyLjkxMDQ5IiwgXAotICAgICAgICAgICIwLjE1Mjk5NywgMC4xODE1NDgsIDAuNDQyMDcxLCAwLjg3NzAzNywgMS4zMTE1NiwgMi4zMjk2NiwgMi45MDYxMyIsIFwKLSAgICAgICAgICAiMC4xNTI5NTksIDAuMTgxODQxLCAwLjQ0MjAxMSwgMC44NzcwMDYsIDEuMzEzNjYsIDIuMzI5OCwgMi45MDYzNiIsIFwKLSAgICAgICAgICAiMC4xNTM1MzgsIDAuMTgyMTk3LCAwLjQ0MjA5NiwgMC44NzcwNTUsIDEuMzExMjYsIDIuMzI3NDksIDIuOTA1NjQiLCBcCi0gICAgICAgICAgIjAuMTU0MDExLCAwLjE4MjQ3OSwgMC40NDI0OTUsIDAuODc4MTAyLCAxLjMxMzU5LCAyLjMyNzY3LCAyLjkwNTI3Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE1NTI1OCwgMC4xNjk2NSwgMC4yOTUwMjYsIDAuNTAyNDY5LCAwLjcxMDAxNywgMS4xOTQwMywgMS40NzA5NSIsIFwKLSAgICAgICAgICAiMC4xNjI4NDQsIDAuMTc3MjAyLCAwLjMwMjU4MywgMC41MTAwNzEsIDAuNzE3NTU2LCAxLjIwMTU4LCAxLjQ3ODExIiwgXAotICAgICAgICAgICIwLjE3MjkyLCAwLjE4NzI3NiwgMC4zMTI2NjUsIDAuNTIwMTgsIDAuNzI3NjMsIDEuMjExNzIsIDEuNDg4MzMiLCBcCi0gICAgICAgICAgIjAuMTgzMjEyLCAwLjE5NzU3MywgMC4zMjI5NjcsIDAuNTMwNDA0LCAwLjczNzkxNiwgMS4yMjIwMiwgMS40OTk0IiwgXAotICAgICAgICAgICIwLjE5MzU4LCAwLjIwNzk2MSwgMC4zMzMzNzEsIDAuNTQwODEsIDAuNzQ4MzI3LCAxLjIzMjQzLCAxLjUwOTkiLCBcCi0gICAgICAgICAgIjAuMjA4NDA3LCAwLjIyMjc5NiwgMC4zNDgyMTYsIDAuNTU1NzM3LCAwLjc2MzE5NywgMS4yNDc1MSwgMS41MjQ0MyIsIFwKLSAgICAgICAgICAiMC4yMjAzMzIsIDAuMjM0NzksIDAuMzYwMjY2LCAwLjU2NzY5NiwgMC43NzUyNDUsIDEuMjU5MjcsIDEuNTM2NzMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTU5MTIzLCAwLjE4NTUzNywgMC40Mjg2MzIsIDAuODQyNDQ0LCAxLjI1NjA2LCAyLjIzMjc0LCAyLjc4Mjc5IiwgXAotICAgICAgICAgICIwLjE1OTA0NywgMC4xODU0NDIsIDAuNDI5MDg3LCAwLjg0MzMxOSwgMS4yNTk4MSwgMi4yMzI3MiwgMi43ODg2OCIsIFwKLSAgICAgICAgICAiMC4xNTg5NDgsIDAuMTg1MzY3LCAwLjQyOTA4MywgMC44NDM0NjgsIDEuMjU5NzgsIDIuMjMxOSwgMi43ODA3MSIsIFwKLSAgICAgICAgICAiMC4xNTg5NjgsIDAuMTg1NDUzLCAwLjQyODQyLCAwLjg0MzAwMywgMS4yNTk3LCAyLjIyNjMzLCAyLjc4MDc3IiwgXAotICAgICAgICAgICIwLjE1OTQyNCwgMC4xODU3NzIsIDAuNDI4NDQ2LCAwLjg0MzA0LCAxLjI1OTc1LCAyLjIyNjIxLCAyLjc5MTE1IiwgXAotICAgICAgICAgICIwLjE1OTgyNCwgMC4xODYyMDEsIDAuNDI5MzA2LCAwLjg0MTE0OSwgMS4yNTk5NCwgMi4yMjg1OCwgMi43ODEyNiIsIFwKLSAgICAgICAgICAiMC4xNjA1OTQsIDAuMTg2Nzk0LCAwLjQyOTM3OCwgMC44NDMxNTYsIDEuMjU2MTcsIDIuMjMyNzMsIDIuNzgwNjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDE0MDQsIDAuMDAxNDA1LCAwLjAwMTQwNiwgMC4wMDE0MDcsIDAuMDAxNDA3LCAwLjAwMTQwOCwgMC4wMDE0MDgiLCBcCi0gICAgICAgICAgIjAuMDAxMzgzLCAwLjAwMTM4NCwgMC4wMDEzODYsIDAuMDAxMzg3LCAwLjAwMTM4NywgMC4wMDEzODgsIDAuMDAxMzg3IiwgXAotICAgICAgICAgICIwLjAwMTM3OSwgMC4wMDEzNzksIDAuMDAxMzgyLCAwLjAwMTM4MywgMC4wMDEzODQsIDAuMDAxMzgzLCAwLjAwMTM4MyIsIFwKLSAgICAgICAgICAiMC4wMDEzODEsIDAuMDAxMzgxLCAwLjAwMTM4NCwgMC4wMDEzODUsIDAuMDAxMzg2LCAwLjAwMTM4NiwgMC4wMDEzODYiLCBcCi0gICAgICAgICAgIjAuMDAxMzg2LCAwLjAwMTM4NywgMC4wMDEzOSwgMC4wMDEzOTIsIDAuMDAxMzkyLCAwLjAwMTM5MiwgMC4wMDEzOTIiLCBcCi0gICAgICAgICAgIjAuMDAxNDAxLCAwLjAwMTQwMiwgMC4wMDE0MDQsIDAuMDAxNDA3LCAwLjAwMTQwNywgMC4wMDE0MDcsIDAuMDAxNDA3IiwgXAotICAgICAgICAgICIwLjAwMTQwMywgMC4wMDE0MDQsIDAuMDAxNDA2LCAwLjAwMTQwNywgMC4wMDE0MDksIDAuMDAxNDA4LCAwLjAwMTQwOSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzEyOCwgMC4wMDMxMjksIDAuMDAzMTMxLCAwLjAwMzEzMSwgMC4wMDMxMzEsIDAuMDAzMTMsIDAuMDAzMTMiLCBcCi0gICAgICAgICAgIjAuMDAzMTEyLCAwLjAwMzExMiwgMC4wMDMxMTQsIDAuMDAzMTE0LCAwLjAwMzExNCwgMC4wMDMxMTQsIDAuMDAzMTE0IiwgXAotICAgICAgICAgICIwLjAwMzEwNCwgMC4wMDMxMDUsIDAuMDAzMTA3LCAwLjAwMzEwNywgMC4wMDMxMDcsIDAuMDAzMTA3LCAwLjAwMzEwNiIsIFwKLSAgICAgICAgICAiMC4wMDMxLCAwLjAwMzEwMSwgMC4wMDMxMDQsIDAuMDAzMTA0LCAwLjAwMzEwNCwgMC4wMDMxMDQsIDAuMDAzMTA0IiwgXAotICAgICAgICAgICIwLjAwMzA5OCwgMC4wMDMwOTksIDAuMDAzMTAyLCAwLjAwMzEwMiwgMC4wMDMxMDIsIDAuMDAzMTAyLCAwLjAwMzEwMiIsIFwKLSAgICAgICAgICAiMC4wMDMwOTYsIDAuMDAzMDk4LCAwLjAwMzEwMSwgMC4wMDMxMDEsIDAuMDAzMTAxLCAwLjAwMzEwMSwgMC4wMDMxMDEiLCBcCi0gICAgICAgICAgIjAuMDAzMDk3LCAwLjAwMzA5OSwgMC4wMDMxMDEsIDAuMDAzMTAyLCAwLjAwMzEwMiwgMC4wMDMxMDIsIDAuMDAzMTAyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxMjA2LCAwLjAwMTIwNywgMC4wMDEyMSwgMC4wMDEyMTEsIDAuMDAxMjExLCAwLjAwMTIxMSwgMC4wMDEyMTIiLCBcCi0gICAgICAgICAgIjAuMDAxMTg3LCAwLjAwMTE4OCwgMC4wMDExOTIsIDAuMDAxMTk0LCAwLjAwMTE5NCwgMC4wMDExOTUsIDAuMDAxMTk1IiwgXAotICAgICAgICAgICIwLjAwMTE3NiwgMC4wMDExNzcsIDAuMDAxMTgzLCAwLjAwMTE4NSwgMC4wMDExODYsIDAuMDAxMTg2LCAwLjAwMTE4NiIsIFwKLSAgICAgICAgICAiMC4wMDExNzksIDAuMDAxMTgsIDAuMDAxMTg3LCAwLjAwMTE5LCAwLjAwMTE5MSwgMC4wMDExOTEsIDAuMDAxMTkyIiwgXAotICAgICAgICAgICIwLjAwMTE3NiwgMC4wMDExNzksIDAuMDAxMTg2LCAwLjAwMTE4OSwgMC4wMDExOTEsIDAuMDAxMTkyLCAwLjAwMTE5MiIsIFwKLSAgICAgICAgICAiMC4wMDExOCwgMC4wMDExODEsIDAuMDAxMTg5LCAwLjAwMTE5NCwgMC4wMDExOTUsIDAuMDAxMTk2LCAwLjAwMTE5NyIsIFwKLSAgICAgICAgICAiMC4wMDExOTIsIDAuMDAxMTk0LCAwLjAwMTIwMywgMC4wMDEyMDgsIDAuMDAxMjA5LCAwLjAwMTIxLCAwLjAwMTIxMSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjkzMywgMC4wMDI5MzQsIDAuMDAyOTM4LCAwLjAwMjkzOSwgMC4wMDI5MzksIDAuMDAyOTM5LCAwLjAwMjkzOSIsIFwKLSAgICAgICAgICAiMC4wMDI5MTUsIDAuMDAyOTE2LCAwLjAwMjkyLCAwLjAwMjkyMiwgMC4wMDI5MjIsIDAuMDAyOTIyLCAwLjAwMjkyMiIsIFwKLSAgICAgICAgICAiMC4wMDI5MDgsIDAuMDAyOTA5LCAwLjAwMjkxMywgMC4wMDI5MTUsIDAuMDAyOTE1LCAwLjAwMjkxNSwgMC4wMDI5MTUiLCBcCi0gICAgICAgICAgIjAuMDAyOTA0LCAwLjAwMjkwNSwgMC4wMDI5MSwgMC4wMDI5MTEsIDAuMDAyOTEyLCAwLjAwMjkxMiwgMC4wMDI5MTIiLCBcCi0gICAgICAgICAgIjAuMDAyOTAyLCAwLjAwMjkwNCwgMC4wMDI5MDksIDAuMDAyOTEsIDAuMDAyOTExLCAwLjAwMjkxMSwgMC4wMDI5MTEiLCBcCi0gICAgICAgICAgIjAuMDAyOTAxLCAwLjAwMjkwMywgMC4wMDI5MDgsIDAuMDAyOTEsIDAuMDAyOTEsIDAuMDAyOTExLCAwLjAwMjkxMSIsIFwKLSAgICAgICAgICAiMC4wMDI5MDIsIDAuMDAyOTAzLCAwLjAwMjkwOSwgMC4wMDI5MTEsIDAuMDAyOTExLCAwLjAwMjkxMiwgMC4wMDI5MTIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDA5OTYsIDAuMDAwOTk3LCAwLjAwMDk5OSwgMC4wMDEwMDEsIDAuMDAxLCAwLjAwMTAwMSwgMC4wMDEwMDEiLCBcCi0gICAgICAgICAgIjAuMDAwOTgzLCAwLjAwMDk4NCwgMC4wMDA5ODcsIDAuMDAwOTg5LCAwLjAwMDk4OSwgMC4wMDA5ODksIDAuMDAwOTkiLCBcCi0gICAgICAgICAgIjAuMDAwOTc0LCAwLjAwMDk3NiwgMC4wMDA5ODEsIDAuMDAwOTgzLCAwLjAwMDk4NCwgMC4wMDA5ODQsIDAuMDAwOTg0IiwgXAotICAgICAgICAgICIwLjAwMDk3NiwgMC4wMDA5NzcsIDAuMDAwOTg0LCAwLjAwMDk4NiwgMC4wMDA5ODcsIDAuMDAwOTg4LCAwLjAwMDk4OCIsIFwKLSAgICAgICAgICAiMC4wMDA5NjcsIDAuMDAwOTY4LCAwLjAwMDk3NSwgMC4wMDA5NzgsIDAuMDAwOTc5LCAwLjAwMDk3OSwgMC4wMDA5OCIsIFwKLSAgICAgICAgICAiMC4wMDA5NzQsIDAuMDAwOTc2LCAwLjAwMDk4NCwgMC4wMDA5ODgsIDAuMDAwOTg5LCAwLjAwMDk4OSwgMC4wMDA5OTEiLCBcCi0gICAgICAgICAgIjAuMDAwOTg4LCAwLjAwMDk4OSwgMC4wMDA5OTgsIDAuMDAxMDAyLCAwLjAwMTAwMywgMC4wMDEwMDQsIDAuMDAxMDA1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyNzQ0LCAwLjAwMjc0NSwgMC4wMDI3NTEsIDAuMDAyNzUzLCAwLjAwMjc1NCwgMC4wMDI3NTUsIDAuMDAyNzU1IiwgXAotICAgICAgICAgICIwLjAwMjcyNywgMC4wMDI3MjksIDAuMDAyNzM0LCAwLjAwMjczNywgMC4wMDI3MzcsIDAuMDAyNzM4LCAwLjAwMjczOCIsIFwKLSAgICAgICAgICAiMC4wMDI3MTksIDAuMDAyNzIsIDAuMDAyNzI3LCAwLjAwMjcyOSwgMC4wMDI3MywgMC4wMDI3MzEsIDAuMDAyNzMxIiwgXAotICAgICAgICAgICIwLjAwMjcxNSwgMC4wMDI3MTcsIDAuMDAyNzIzLCAwLjAwMjcyNiwgMC4wMDI3MjcsIDAuMDAyNzI3LCAwLjAwMjcyOCIsIFwKLSAgICAgICAgICAiMC4wMDI3MTMsIDAuMDAyNzE1LCAwLjAwMjcyMiwgMC4wMDI3MjUsIDAuMDAyNzI2LCAwLjAwMjcyNywgMC4wMDI3MjciLCBcCi0gICAgICAgICAgIjAuMDAyNzE0LCAwLjAwMjcxNiwgMC4wMDI3MjQsIDAuMDAyNzI3LCAwLjAwMjcyOCwgMC4wMDI3MjksIDAuMDAyNzI5IiwgXAotICAgICAgICAgICIwLjAwMjcyLCAwLjAwMjcyMSwgMC4wMDI3MjgsIDAuMDAyNzMxLCAwLjAwMjczMiwgMC4wMDI3MzMsIDAuMDAyNzMzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwODAyLCAwLjAwMDgwMywgMC4wMDA4MDUsIDAuMDAwODA2LCAwLjAwMDgwNiwgMC4wMDA4MDYsIDAuMDAwODA3IiwgXAotICAgICAgICAgICIwLjAwMDc4OCwgMC4wMDA3ODksIDAuMDAwNzkyLCAwLjAwMDc5NCwgMC4wMDA3OTQsIDAuMDAwNzk0LCAwLjAwMDc5NCIsIFwKLSAgICAgICAgICAiMC4wMDA3NzgsIDAuMDAwNzgsIDAuMDAwNzg1LCAwLjAwMDc4NiwgMC4wMDA3ODcsIDAuMDAwNzg3LCAwLjAwMDc4OCIsIFwKLSAgICAgICAgICAiMC4wMDA3NzYsIDAuMDAwNzc5LCAwLjAwMDc4NCwgMC4wMDA3ODYsIDAuMDAwNzg3LCAwLjAwMDc4NywgMC4wMDA3ODgiLCBcCi0gICAgICAgICAgIjAuMDAwNzc5LCAwLjAwMDc4MSwgMC4wMDA3ODgsIDAuMDAwNzkxLCAwLjAwMDc5MiwgMC4wMDA3OTIsIDAuMDAwNzkzIiwgXAotICAgICAgICAgICIwLjAwMDc5NSwgMC4wMDA3OTYsIDAuMDAwODA0LCAwLjAwMDgwOCwgMC4wMDA4MDksIDAuMDAwODEsIDAuMDAwODEiLCBcCi0gICAgICAgICAgIjAuMDAwNzk1LCAwLjAwMDc5NywgMC4wMDA4MDUsIDAuMDAwODA5LCAwLjAwMDgxLCAwLjAwMDgxMSwgMC4wMDA4MTIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI1NDgsIDAuMDAyNTUsIDAuMDAyNTU4LCAwLjAwMjU2MSwgMC4wMDI1NjIsIDAuMDAyNTYzLCAwLjAwMjU2MyIsIFwKLSAgICAgICAgICAiMC4wMDI1MjcsIDAuMDAyNTI5LCAwLjAwMjUzNiwgMC4wMDI1MzksIDAuMDAyNTQsIDAuMDAyNTQxLCAwLjAwMjU0MSIsIFwKLSAgICAgICAgICAiMC4wMDI1MiwgMC4wMDI1MjIsIDAuMDAyNTMsIDAuMDAyNTM0LCAwLjAwMjUzNSwgMC4wMDI1MzYsIDAuMDAyNTM2IiwgXAotICAgICAgICAgICIwLjAwMjUyNCwgMC4wMDI1MjYsIDAuMDAyNTM1LCAwLjAwMjUzOCwgMC4wMDI1NCwgMC4wMDI1NDEsIDAuMDAyNTQxIiwgXAotICAgICAgICAgICIwLjAwMjUzNCwgMC4wMDI1MzYsIDAuMDAyNTQ0LCAwLjAwMjU0OCwgMC4wMDI1NDksIDAuMDAyNTUsIDAuMDAyNTUxIiwgXAotICAgICAgICAgICIwLjAwMjU1MSwgMC4wMDI1NTIsIDAuMDAyNTYxLCAwLjAwMjU2NSwgMC4wMDI1NjYsIDAuMDAyNTY4LCAwLjAwMjU2OCIsIFwKLSAgICAgICAgICAiMC4wMDI1NjcsIDAuMDAyNTY5LCAwLjAwMjU3NywgMC4wMDI1ODEsIDAuMDAyNTgzLCAwLjAwMjU4NSwgMC4wMDI1ODUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogU0RGRkhRWDggKgotICogLS0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKFNERkZIUVg4KSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuODEzOTI5OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIGZmIChOMzAsUUJJTlQpIHsKLSAgICBuZXh0X3N0YXRlIDogIigoU0UgU0kpICsgKCFTRSBEKSkiOwotICAgIGNsb2NrZWRfb24gOiAiQ0siOwotICB9Ci0gIHBpbihDSykgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNTg3Njk3OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDU4NzY5NTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA1ODc2OTc7Ci0gICAgY2xvY2sgOiB0cnVlOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzQzOCwgMC4wMDM0MTQsIDAuMDAzMzk5LCAwLjAwMzQsIDAuMDAzNDEyLCAwLjAwMzQzNywgMC4wMDM0NTIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDc2MDYsIDAuMDA3NTgzLCAwLjAwNzU3OCwgMC4wMDc1OTcsIDAuMDA3NjEzLCAwLjAwNzY1OSwgMC4wMDc2OTMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFEJiFTRSYhU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1NFX0VRXzBfQU5fU0lfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjEyOTk1OCwgMC4xNDAyMjYsIDAuMTUyODksIDAuMTY1NDc2LCAwLjE3NjY4MiwgMC4xOTI1MTYsIDAuMjA0NjM1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wOTYzNjUsIDAuMTA2MzI1LCAwLjExODc4NCwgMC4xMzA2MDUsIDAuMTQxMjQzLCAwLjE1NTYxNCwgMC4xNjY3NDYiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEQpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDkyMjgxNzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA5MjA0NDQ7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwOTIyODE3OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzYzNywgMC4wMDM2MDUsIDAuMDAzNTg4LCAwLjAwMzU3OSwgMC4wMDM1NzQsIDAuMDAzNTg1LCAwLjAwMzU4NyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNTcxOCwgMC4wMDU2OTksIDAuMDA1Njg5LCAwLjAwNTY4NSwgMC4wMDU2ODQsIDAuMDA1Njg4LCAwLjAwNTY5MiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhU0UiOwotICAgICAgc2RmX2NvbmQgOiAiU0UgPT0gMSdiMCI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDQzNzUsIC0wLjAzMjUsIC0wLjAyNjI1LCAtMC4wMTM3NSwgLTAuMDA3NSwgLTAuMDAzNzUsIDAuMDA1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDQzNzUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMDg3NSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA2MTI1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMjEyNSwgLTAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDczNzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDMzNzUsIC0wLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDgsIC0wLjA3NSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNCwgLTAuMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDk2MjUsIC0wLjA4NSwgLTAuMDc4NzUsIC0wLjA3MjUsIC0wLjA2NjI1LCAtMC4wNTYyNSwgLTAuMDQ3NSIsIFwKLSAgICAgICAgICAiLTAuMTA1LCAtMC4xLCAtMC4wODc1LCAtMC4wODEyNSwgLTAuMDc1LCAtMC4wNjUsIC0wLjA2MjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLCAwLjAxMTI1LCAwLjAyMzc1LCAwLjAzLCAwLjA0MjUsIDAuMDUyNSwgMC4wNjc1IiwgXAotICAgICAgICAgICItMC4wMTEyNSwgMCwgMC4wMTI1LCAwLjAyNSwgMC4wMzEyNSwgMC4wNDc1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICItMC4wMTc1LCAtMC4wMDYyNSwgMC4wMDYyNSwgMC4wMTI1LCAwLjAyNSwgMC4wMzUsIDAuMDUiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAuMDA2MjUsIDAuMDEyNSwgMC4wMjg3NSwgMC4wMzc1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDI1LCAtMC4wMTI1LCAwLCAwLjAwNjI1LCAwLjAyMjUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjA0NjI1LCAtMC4wMzUsIC0wLjAyMjUsIC0wLjAxLCAtMC4wMDM3NSwgMC4wMDYyNSwgMC4wMjEyNSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjA0Mzc1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIDAuMDAzNzUsIDAuMDEyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIVNFIjsKLSAgICAgIHNkZl9jb25kIDogIlNFID09IDEnYjAiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2ODc1LCAwLjA1NzUsIDAuMDUxMjUsIDAuMDQ1LCAwLjAzMjUsIDAuMDI4NzUsIDAuMDIiLCBcCi0gICAgICAgICAgIjAuMDgsIDAuMDY4NzUsIDAuMDU2MjUsIDAuMDUsIDAuMDQzNzUsIDAuMDMzNzUsIDAuMDI1IiwgXAotICAgICAgICAgICIwLjA5MjUsIDAuMDgxMjUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNDYyNSwgMC4wMzc1IiwgXAotICAgICAgICAgICIwLjA5ODc1LCAwLjA4NzUsIDAuMDgxMjUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNTg3NSwgMC4wNSIsIFwKLSAgICAgICAgICAiMC4xMTEyNSwgMC4xLCAwLjA4NzUsIDAuMDgxMjUsIDAuMDc1LCAwLjA2NSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiMC4xMjc1LCAwLjExNjI1LCAwLjEwMzc1LCAwLjA5NzUsIDAuMDkxMjUsIDAuMDgxMjUsIDAuMDcyNSIsIFwKLSAgICAgICAgICAiMC4xMzYyNSwgMC4xMjUsIDAuMTE4NzUsIDAuMTA2MjUsIDAuMSwgMC4wOSwgMC4wODc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQzNzUsIDAuMDMyNSwgMC4wMiwgMC4wMDc1LCAtMC4wMDUsIC0wLjAyMTI1LCAtMC4wMyIsIFwKLSAgICAgICAgICAiMC4wNTUsIDAuMDQzNzUsIDAuMDMxMjUsIDAuMDE4NzUsIDAuMDA2MjUsIC0wLjAxLCAtMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4wNjEyNSwgMC4wNSwgMC4wMzc1LCAwLjAyNSwgMC4wMTg3NSwgMC4wMDI1LCAtMC4wMTI1IiwgXAotICAgICAgICAgICIwLjA3Mzc1LCAwLjA2MjUsIDAuMDUsIDAuMDM3NSwgMC4wMjUsIDAuMDA4NzUsIDAiLCBcCi0gICAgICAgICAgIjAuMDgsIDAuMDY4NzUsIDAuMDU2MjUsIDAuMDQzNzUsIDAuMDMxMjUsIDAuMDIxMjUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMDk2MjUsIDAuMDg1LCAwLjA3MjUsIDAuMDYsIDAuMDQ3NSwgMC4wMzEyNSwgMC4wMjI1IiwgXAotICAgICAgICAgICIwLjEwNSwgMC4wOTM3NSwgMC4wODEyNSwgMC4wNjg3NSwgMC4wNTYyNSwgMC4wNCwgMC4wMzEyNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAyLjAwOTg1OwotICAgIGZ1bmN0aW9uIDogIk4zMCI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3NlbnNlIDogbm9uX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiByaXNpbmdfZWRnZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTkxMjQsIDAuMTU2ODg5LCAwLjE5Mjc5MywgMC4yMTg0MSwgMC4yNTkzODMsIDAuMjk1MjI1LCAwLjM0NjQyMyIsIFwKLSAgICAgICAgICAiMC4xMjkzNjEsIDAuMTY3MTI1LCAwLjIwMzAzMSwgMC4yMjg2NDUsIDAuMjY5NjE0LCAwLjMwNTQ1MSwgMC4zNTY2NTkiLCBcCi0gICAgICAgICAgIjAuMTQxOTc5LCAwLjE3OTc0MiwgMC4yMTU2NTIsIDAuMjQxMjY4LCAwLjI4MjIzNywgMC4zMTgwNzYsIDAuMzY5MjgxIiwgXAotICAgICAgICAgICIwLjE1NDM5MywgMC4xOTIxNjIsIDAuMjI4MDcsIDAuMjUzNjg2LCAwLjI5NDY1NCwgMC4zMzA0OTIsIDAuMzgxNjU4IiwgXAotICAgICAgICAgICIwLjE2NTU3MSwgMC4yMDMzMzksIDAuMjM5MjU1LCAwLjI2NDg2NiwgMC4zMDU4MzUsIDAuMzQxNjc2LCAwLjM5Mjg3NSIsIFwKLSAgICAgICAgICAiMC4xODA4MTgsIDAuMjE4NTkzLCAwLjI1NDUwMywgMC4yODAxMTksIDAuMzIxMDg5LCAwLjM1NjkyNywgMC40MDgxMzEiLCBcCi0gICAgICAgICAgIjAuMTkzNDU2LCAwLjIzMTIxOCwgMC4yNjcxMjYsIDAuMjkyNzQyLCAwLjMzMzcyMiwgMC4zNjk1NSwgMC40MjA3NTIiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjIwNzYsIDAuMDkyMTUxLCAwLjE2NTEyMiwgMC4yMTc3NTUsIDAuMzAyNDEyLCAwLjM3NTQ3OCwgMC40ODEwNjMiLCBcCi0gICAgICAgICAgIjAuMDIyMDg1LCAwLjA5MjE1MiwgMC4xNjUxMjUsIDAuMjE3NzU0LCAwLjMwMTgxOCwgMC4zNzU1NTcsIDAuNDgxMDU3IiwgXAotICAgICAgICAgICIwLjAyMjEwMSwgMC4wOTIyMjYsIDAuMTY1MTI4LCAwLjIxNzY5MiwgMC4zMDIzODcsIDAuMzc2MzY3LCAwLjQ4MjE2IiwgXAotICAgICAgICAgICIwLjAyMjA3NSwgMC4wOTIxNTIsIDAuMTY1MTI5LCAwLjIxNzY5MywgMC4zMDIzNzcsIDAuMzc2MzUzLCAwLjQ4MDc2NCIsIFwKLSAgICAgICAgICAiMC4wMjIwOTQsIDAuMDkyMTUsIDAuMTY1MTYyLCAwLjIxNzc2LCAwLjMwMjQwMSwgMC4zNzYzOSwgMC40ODE2OTQiLCBcCi0gICAgICAgICAgIjAuMDIyMTA4LCAwLjA5MjE1NSwgMC4xNjUxMywgMC4yMTc2OTMsIDAuMzAyMzg0LCAwLjM3NTk5NSwgMC40ODE2MjkiLCBcCi0gICAgICAgICAgIjAuMDIyMTI2LCAwLjA5MjE2LCAwLjE2NTEzMSwgMC4yMTc2OTMsIDAuMzAyMzc5LCAwLjM3NjM3NCwgMC40ODIwNDEiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMjk5NTgsIDAuMTY5NzU5LCAwLjIwNzg0MSwgMC4yMzQ5OTYsIDAuMjc4NDI3LCAwLjMxNjQyNCwgMC4zNzA3MjYiLCBcCi0gICAgICAgICAgIjAuMTQwMjI3LCAwLjE4MDAxNiwgMC4yMTgxMDYsIDAuMjQ1MjYxLCAwLjI4ODcwNiwgMC4zMjY2OTMsIDAuMzgwOTk5IiwgXAotICAgICAgICAgICIwLjE1Mjg5LCAwLjE5MjY4NiwgMC4yMzA3NzYsIDAuMjU3OTM3LCAwLjMwMTM2MiwgMC4zMzkzNiwgMC4zOTM2NjMiLCBcCi0gICAgICAgICAgIjAuMTY1NDc2LCAwLjIwNTI3MiwgMC4yNDMzNTQsIDAuMjcwNTA5LCAwLjMxMzkzNywgMC4zNTE5MzUsIDAuNDA2MjM2IiwgXAotICAgICAgICAgICIwLjE3NjY4NSwgMC4yMTY0NzcsIDAuMjU0NTczLCAwLjI4MTcyNSwgMC4zMjUxNTMsIDAuMzYzMTU1LCAwLjQxNzQ1NiIsIFwKLSAgICAgICAgICAiMC4xOTI1MTksIDAuMjMyMzEyLCAwLjI3MDM5OSwgMC4yOTc1NTgsIDAuMzQwOTg1LCAwLjM3ODk4NSwgMC40MzMzMTMiLCBcCi0gICAgICAgICAgIjAuMjA0NjM5LCAwLjI0NDQzNSwgMC4yODI1MjEsIDAuMzA5Njc4LCAwLjM1MzEwNywgMC4zOTExMDYsIDAuNDQ1NDEzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDIxNzQ1LCAwLjA5NTQ5LCAwLjE3MTg1LCAwLjIyNjg4LCAwLjMxNTEzNiwgMC4zOTE2MDQsIDAuNTAxNTA4IiwgXAotICAgICAgICAgICIwLjAyMTc0NiwgMC4wOTU1OTksIDAuMTcxODQxLCAwLjIyNjg2OSwgMC4zMTUyNTQsIDAuMzkxODU3LCAwLjUwMjc0OSIsIFwKLSAgICAgICAgICAiMC4wMjE3NDYsIDAuMDk1NTk5LCAwLjE3MTc2NSwgMC4yMjY3NTYsIDAuMzE0NTgxLCAwLjM5MTcyNywgMC41MDE4NDkiLCBcCi0gICAgICAgICAgIjAuMDIxNzQ4LCAwLjA5NTUwNiwgMC4xNzE4NzgsIDAuMjI2ODUxLCAwLjMxNDU4OSwgMC4zOTIzMzEsIDAuNTAxNjE2IiwgXAotICAgICAgICAgICIwLjAyMTc0NCwgMC4wOTU1ODQsIDAuMTcxNzc2LCAwLjIyNjc0MSwgMC4zMTUxNTUsIDAuMzkyMjk4LCAwLjUwMTY3OSIsIFwKLSAgICAgICAgICAiMC4wMjE3NDQsIDAuMDk1NjE0LCAwLjE3MTg3NywgMC4yMjY4NDksIDAuMzE1MTM4LCAwLjM5MTcwMywgMC41MDE2NDkiLCBcCi0gICAgICAgICAgIjAuMDIxNzYsIDAuMDk1NTQ2LCAwLjE3MTg2OSwgMC4yMjY2NDQsIDAuMzE1MTQzLCAwLjM5MTY3OCwgMC41MDE5MjciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTYyOTksIDAuMDE2NjM5LCAwLjAxNjcxMSwgMC4wMTY3MzQsIDAuMDE2NzU1LCAwLjAxNjc2OSwgMC4wMTY3NzkiLCBcCi0gICAgICAgICAgIjAuMDE2MjcxLCAwLjAxNjYxMSwgMC4wMTY2ODQsIDAuMDE2NzExLCAwLjAxNjcyNywgMC4wMTY3MzgsIDAuMDE2NzUxIiwgXAotICAgICAgICAgICIwLjAxNjI0NCwgMC4wMTY1OSwgMC4wMTY2NjQsIDAuMDE2Njg4LCAwLjAxNjcwOSwgMC4wMTY3MiwgMC4wMTY3MyIsIFwKLSAgICAgICAgICAiMC4wMTYyNSwgMC4wMTY1OTIsIDAuMDE2NjY1LCAwLjAxNjY5MywgMC4wMTY3MSwgMC4wMTY3MiwgMC4wMTY3MyIsIFwKLSAgICAgICAgICAiMC4wMTYyNTEsIDAuMDE2NTk4LCAwLjAxNjY3MSwgMC4wMTY2OTcsIDAuMDE2NzE3LCAwLjAxNjczLCAwLjAxNjczOSIsIFwKLSAgICAgICAgICAiMC4wMTYyNjYsIDAuMDE2NjA4LCAwLjAxNjY4NCwgMC4wMTY3MSwgMC4wMTY3MjgsIDAuMDE2NzM5LCAwLjAxNjc0OSIsIFwKLSAgICAgICAgICAiMC4wMTYzMSwgMC4wMTY2NDYsIDAuMDE2NzE4LCAwLjAxNjc0NSwgMC4wMTY3NjIsIDAuMDE2Nzc2LCAwLjAxNjc4NCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE2NTI5LCAwLjAxNjk4NSwgMC4wMTcwODgsIDAuMDE3MTIxLCAwLjAxNzE1MSwgMC4wMTcxNjgsIDAuMDE3MTgzIiwgXAotICAgICAgICAgICIwLjAxNjQ5OSwgMC4wMTY5NTcsIDAuMDE3MDU5LCAwLjAxNzA5MywgMC4wMTcxMjQsIDAuMDE3MTQsIDAuMDE3MTU0IiwgXAotICAgICAgICAgICIwLjAxNjQ5MywgMC4wMTY5NTIsIDAuMDE3MDU0LCAwLjAxNzA4OSwgMC4wMTcxMiwgMC4wMTcxMzYsIDAuMDE3MTUxIiwgXAotICAgICAgICAgICIwLjAxNjUyNywgMC4wMTY5NzYsIDAuMDE3MDc2LCAwLjAxNzEwOSwgMC4wMTcxMzksIDAuMDE3MTU1LCAwLjAxNzE2OSIsIFwKLSAgICAgICAgICAiMC4wMTY1MzcsIDAuMDE2OTkzLCAwLjAxNzA5NCwgMC4wMTcxMjgsIDAuMDE3MTU4LCAwLjAxNzE3NCwgMC4wMTcxODkiLCBcCi0gICAgICAgICAgIjAuMDE2NTY2LCAwLjAxNzAyMywgMC4wMTcxMjQsIDAuMDE3MTU5LCAwLjAxNzE4OSwgMC4wMTcyMDUsIDAuMDE3MjIiLCBcCi0gICAgICAgICAgIjAuMDE2NjAzLCAwLjAxNzA2MiwgMC4wMTcxNjQsIDAuMDE3MTk5LCAwLjAxNzIzLCAwLjAxNzI0NiwgMC4wMTcyNjEiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFNFKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE2NjUwMjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE2NjQ5MTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE2NjUwMjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDUzOTgsIDAuMDA1Mzc2LCAwLjAwNTM2NywgMC4wMDUzNjYsIDAuMDA1Mzc3LCAwLjAwNTM5MywgMC4wMDU0MTIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDY3OTQsIDAuMDA2NzQsIDAuMDA2NzM4LCAwLjAwNjczLCAwLjAwNjc1MSwgMC4wMDY3OTEsIDAuMDA2ODM4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEJlNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9TSV9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAzMTI1LCAtMC4wMjYyNSwgLTAuMDIsIC0wLjAwNzUsIC0wLjAwMTI1LCAwLjAwMjUsIDAuMDExMjUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzNzUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwMjUsIDAiLCBcCi0gICAgICAgICAgIi0wLjA1NSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAxNSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA2NzUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAyNzUsIC0wLjAxODc1IiwgXAotICAgICAgICAgICItMC4wOCwgLTAuMDY4NzUsIC0wLjA2MjUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDQsIC0wLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wOSwgLTAuMDg1LCAtMC4wNzI1LCAtMC4wNjYyNSwgLTAuMDYsIC0wLjA1LCAtMC4wNDc1IiwgXAotICAgICAgICAgICItMC4xMDUsIC0wLjA5Mzc1LCAtMC4wODc1LCAtMC4wODEyNSwgLTAuMDc1LCAtMC4wNjUsIC0wLjA1NjI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDYyNSwgMC4wMTc1LCAwLjAzLCAwLjAzNjI1LCAwLjA0ODc1LCAwLjA1ODc1LCAwLjA3Mzc1IiwgXAotICAgICAgICAgICItMC4wMDUsIDAuMDA2MjUsIDAuMDE4NzUsIDAuMDMxMjUsIDAuMDM3NSwgMC4wNTM3NSwgMC4wNjI1IiwgXAotICAgICAgICAgICItMC4wMTEyNSwgLTAuMDA2MjUsIDAuMDA2MjUsIDAuMDE4NzUsIDAuMDMxMjUsIDAuMDQxMjUsIDAuMDUiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTI1LCAwLCAwLjAxMjUsIDAuMDE4NzUsIDAuMDM1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLCAwLjAxMjUsIDAuMDIyNSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDQsIC0wLjAyODc1LCAtMC4wMjI1LCAtMC4wMSwgMC4wMDI1LCAwLjAxMjUsIDAuMDIxMjUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzNzUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLjAwMzc1LCAwLjAxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiRCYhU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8xX0FOX1NJX0VRXzAgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDEyNSwgLTAuMDAxMjUsIDAuMDExMjUsIDAuMDIzNzUsIDAuMDMsIDAuMDQ2MjUsIDAuMDU1IiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDEyNSwgMCwgMC4wMTI1LCAwLjAxODc1LCAwLjAzNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAyNSwgLTAuMDEyNSwgMCwgMC4wMDYyNSwgMC4wMjI1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIDAsIDAuMDE2MjUsIDAuMDI1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDQzNzUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAuMDAzNzUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDU4NzUsIC0wLjA1Mzc1LCAtMC4wNDEyNSwgLTAuMDI4NzUsIC0wLjAxNjI1LCAtMC4wMDYyNSwgMC4wMDI1IiwgXAotICAgICAgICAgICItMC4wNjc1LCAtMC4wNjI1LCAtMC4wNSwgLTAuMDM3NSwgLTAuMDI1LCAtMC4wMTUsIC0wLjAwNjI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDUsIC0wLjA0NSwgLTAuMDM4NzUsIC0wLjAyNjI1LCAtMC4wMiwgLTAuMDE2MjUsIC0wLjAwNzUiLCBcCi0gICAgICAgICAgIi0wLjA2MTI1LCAtMC4wNTYyNSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMjEyNSwgLTAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjA3Mzc1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wMzM3NSwgLTAuMDI1IiwgXAotICAgICAgICAgICItMC4wOCwgLTAuMDc1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjA0NjI1LCAtMC4wMzc1IiwgXAotICAgICAgICAgICItMC4wODYyNSwgLTAuMDgxMjUsIC0wLjA3NSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA1MjUsIC0wLjA0Mzc1IiwgXAotICAgICAgICAgICItMC4wOTYyNSwgLTAuMDkxMjUsIC0wLjA4NSwgLTAuMDcyNSwgLTAuMDY2MjUsIC0wLjA2MjUsIC0wLjA1Mzc1IiwgXAotICAgICAgICAgICItMC4xMDUsIC0wLjEsIC0wLjA4NzUsIC0wLjA4MTI1LCAtMC4wNzUsIC0wLjA2NSwgLTAuMDYyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUQmU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1NJX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDYyNSwgMC4wNTEyNSwgMC4wNDUsIDAuMDMyNSwgMC4wMjYyNSwgMC4wMjI1LCAwLjAxMzc1IiwgXAotICAgICAgICAgICIwLjA3Mzc1LCAwLjA2MjUsIDAuMDUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMjc1LCAwLjAxODc1IiwgXAotICAgICAgICAgICIwLjA4NjI1LCAwLjA3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1LCAwLjA0LCAwLjAzMTI1IiwgXAotICAgICAgICAgICIwLjA5ODc1LCAwLjA4NzUsIDAuMDc1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDUyNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4xMDUsIDAuMSwgMC4wODc1LCAwLjA4MTI1LCAwLjA2ODc1LCAwLjA2NSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiMC4xMjEyNSwgMC4xMTYyNSwgMC4xMDM3NSwgMC4wOTc1LCAwLjA5MTI1LCAwLjA4MTI1LCAwLjA3MjUiLCBcCi0gICAgICAgICAgIjAuMTM2MjUsIDAuMTI1LCAwLjExMjUsIDAuMTA2MjUsIDAuMSwgMC4wOSwgMC4wODEyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzNzUsIDAuMDI2MjUsIDAuMDEzNzUsIDAuMDAxMjUsIC0wLjAxMTI1LCAtMC4wMjc1LCAtMC4wMzYyNSIsIFwKLSAgICAgICAgICAiMC4wNDg3NSwgMC4wMzc1LCAwLjAyNSwgMC4wMTI1LCAwLCAtMC4wMTYyNSwgLTAuMDI1IiwgXAotICAgICAgICAgICIwLjA1NSwgMC4wNSwgMC4wMzEyNSwgMC4wMjUsIDAuMDEyNSwgLTAuMDAzNzUsIC0wLjAxODc1IiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDU2MjUsIDAuMDQzNzUsIDAuMDMxMjUsIDAuMDI1LCAwLjAwODc1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiMC4wOCwgMC4wNjg3NSwgMC4wNTYyNSwgMC4wNDM3NSwgMC4wMzEyNSwgMC4wMTUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMDk2MjUsIDAuMDg1LCAwLjA3MjUsIDAuMDYsIDAuMDQ3NSwgMC4wMzEyNSwgMC4wMjI1IiwgXAotICAgICAgICAgICIwLjEwNSwgMC4wOTM3NSwgMC4wODEyNSwgMC4wNjg3NSwgMC4wNTYyNSwgMC4wNCwgMC4wMzEyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiRCYhU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8xX0FOX1NJX0VRXzAgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU2MjUsIDAuMDQ1LCAwLjAzMjUsIDAuMDIsIDAuMDA3NSwgLTAuMDA4NzUsIC0wLjAxNzUiLCBcCi0gICAgICAgICAgIjAuMDY3NSwgMC4wNTYyNSwgMC4wNDM3NSwgMC4wMzEyNSwgMC4wMTg3NSwgMC4wMDI1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiMC4wOCwgMC4wNjg3NSwgMC4wNTYyNSwgMC4wNDM3NSwgMC4wMzEyNSwgMC4wMTUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMDg2MjUsIDAuMDc1LCAwLjA2MjUsIDAuMDUsIDAuMDM3NSwgMC4wMjc1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMDkyNSwgMC4wODEyNSwgMC4wNjg3NSwgMC4wNTYyNSwgMC4wNSwgMC4wMzM3NSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4xMDI1LCAwLjA5NzUsIDAuMDc4NzUsIDAuMDcyNSwgMC4wNiwgMC4wNDM3NSwgMC4wMjg3NSIsIFwKLSAgICAgICAgICAiMC4xMTEyNSwgMC4xLCAwLjA4NzUsIDAuMDc1LCAwLjA2ODc1LCAwLjA1MjUsIDAuMDM3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4MTI1LCAwLjA3LCAwLjA2Mzc1LCAwLjA1MTI1LCAwLjA0NSwgMC4wMzUsIDAuMDMyNSIsIFwKLSAgICAgICAgICAiMC4wOTI1LCAwLjA4MTI1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDQ2MjUsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiMC4xMDUsIDAuMDkzNzUsIDAuMDgxMjUsIDAuMDc1LCAwLjA2ODc1LCAwLjA1ODc1LCAwLjA1IiwgXAotICAgICAgICAgICIwLjExMTI1LCAwLjEsIDAuMDkzNzUsIDAuMDgxMjUsIDAuMDc1LCAwLjA2NSwgMC4wNjI1IiwgXAotICAgICAgICAgICIwLjExNzUsIDAuMTA2MjUsIDAuMSwgMC4wOTM3NSwgMC4wODEyNSwgMC4wNzc1LCAwLjA2ODc1IiwgXAotICAgICAgICAgICIwLjEyNzUsIDAuMTE2MjUsIDAuMTEsIDAuMDk3NSwgMC4wOTEyNSwgMC4wODEyNSwgMC4wNzg3NSIsIFwKLSAgICAgICAgICAiMC4xMzYyNSwgMC4xMjUsIDAuMTEyNSwgMC4xMDYyNSwgMC4xLCAwLjA5LCAwLjA4MTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTSSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwODkzODI2OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDg5MDcxOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDg5MzgyNjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDM0MiwgMC4wMDMzODcsIDAuMDAzMzY5LCAwLjAwMzM2MSwgMC4wMDMzNTYsIDAuMDAzMzY2LCAwLjAwMzM3MiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNTk5LCAwLjAwNTk3MiwgMC4wMDU5NjMsIDAuMDA1OTU4LCAwLjAwNTk1NCwgMC4wMDU5NiwgMC4wMDU5NjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiU0UiOwotICAgICAgc2RmX2NvbmQgOiAiU0UgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDM3NSwgLTAuMDMyNSwgLTAuMDI2MjUsIC0wLjAxMzc1LCAtMC4wMDc1LCAtMC4wMDM3NSwgMC4wMDUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wNDM3NSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAwODc1LCAwIiwgXAotICAgICAgICAgICItMC4wNjEyNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDIxMjUsIC0wLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjA2NzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDMzNzUsIC0wLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDgsIC0wLjA3NSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNCwgLTAuMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDk2MjUsIC0wLjA4NSwgLTAuMDc4NzUsIC0wLjA3MjUsIC0wLjA2NjI1LCAtMC4wNTYyNSwgLTAuMDQ3NSIsIFwKLSAgICAgICAgICAiLTAuMTA1LCAtMC4xLCAtMC4wODc1LCAtMC4wODEyNSwgLTAuMDc1LCAtMC4wNjUsIC0wLjA2MjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLCAwLjAxMTI1LCAwLjAxNzUsIDAuMDMsIDAuMDQyNSwgMC4wNTI1LCAwLjA2MTI1IiwgXAotICAgICAgICAgICItMC4wMTEyNSwgMCwgMC4wMTI1LCAwLjAyNSwgMC4wMzEyNSwgMC4wNDc1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICItMC4wMTc1LCAtMC4wMDYyNSwgMCwgMC4wMTI1LCAwLjAyNSwgMC4wMzUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAuMDA2MjUsIDAuMDEyNSwgMC4wMjg3NSwgMC4wMzc1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDI1LCAtMC4wMTI1LCAwLCAwLjAwNjI1LCAwLjAyMjUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjA0NjI1LCAtMC4wMzUsIC0wLjAyMjUsIC0wLjAxNjI1LCAtMC4wMDM3NSwgMC4wMDYyNSwgMC4wMjEyNSIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNDM3NSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDEyNSwgLTAuMDAyNSwgMC4wMTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJTRSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjg3NSwgMC4wNTc1LCAwLjA1MTI1LCAwLjAzODc1LCAwLjAzMjUsIDAuMDIyNSwgMC4wMiIsIFwKLSAgICAgICAgICAiMC4wOCwgMC4wNjg3NSwgMC4wNTYyNSwgMC4wNSwgMC4wNDM3NSwgMC4wMzM3NSwgMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMDkyNSwgMC4wODEyNSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA0NjI1LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIjAuMDk4NzUsIDAuMDg3NSwgMC4wODEyNSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1MjUsIDAuMDUiLCBcCi0gICAgICAgICAgIjAuMTExMjUsIDAuMSwgMC4wODc1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNjUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIjAuMTI3NSwgMC4xMTYyNSwgMC4xMDM3NSwgMC4wOTc1LCAwLjA5MTI1LCAwLjA4MTI1LCAwLjA3MjUiLCBcCi0gICAgICAgICAgIjAuMTM2MjUsIDAuMTI1LCAwLjExODc1LCAwLjEwNjI1LCAwLjEsIDAuMDksIDAuMDg3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0Mzc1LCAwLjAzMjUsIDAuMDIsIDAuMDA3NSwgMC4wMDEyNSwgLTAuMDE1LCAtMC4wMyIsIFwKLSAgICAgICAgICAiMC4wNTUsIDAuMDQzNzUsIDAuMDMxMjUsIDAuMDE4NzUsIDAuMDA2MjUsIC0wLjAxLCAtMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4wNjEyNSwgMC4wNSwgMC4wMzc1LCAwLjAyNSwgMC4wMTg3NSwgMC4wMDI1LCAtMC4wMTI1IiwgXAotICAgICAgICAgICIwLjA3Mzc1LCAwLjA2MjUsIDAuMDUsIDAuMDM3NSwgMC4wMjUsIDAuMDA4NzUsIDAiLCBcCi0gICAgICAgICAgIjAuMDgsIDAuMDY4NzUsIDAuMDU2MjUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMjEyNSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiMC4wOTYyNSwgMC4wODUsIDAuMDcyNSwgMC4wNiwgMC4wNDc1LCAwLjAzMTI1LCAwLjAyMjUiLCBcCi0gICAgICAgICAgIjAuMTA1LCAwLjA5Mzc1LCAwLjA4MTI1LCAwLjA2ODc1LCAwLjA1NjI1LCAwLjA0LCAwLjAzMTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBTREZGTlNSWDIgKgotICogLS0tLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChTREZGTlNSWDIpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC41NjcxNjM7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgZmYgKE4zNSxRQklOVCkgewotICAgIG5leHRfc3RhdGUgOiAiKChTRSBTSSkgKyAoIVNFIEQpKSI7Ci0gICAgY2xvY2tlZF9vbiA6ICIoIUNLTikiOwotICAgIGNsZWFyIDogIighUk4pIjsKLSAgICBwcmVzZXQgOiAiKCFTTikiOwotICAgIGNsZWFyX3ByZXNldF92YXIxIDogSDsKLSAgICBjbGVhcl9wcmVzZXRfdmFyMiA6IEw7Ci0gIH0KLSAgcGluKENLTikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNTcyNTE7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNTcyMjg2OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDU3MjUxOwotICAgIGNsb2NrIDogdHJ1ZTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDY2NDYsIDAuMDA2NjE5LCAwLjAwNjYxNCwgMC4wMDY2MjEsIDAuMDA2NjQ1LCAwLjAwNjY3OCwgMC4wMDY3MTMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDMzNywgMC4wMDMzNDYsIDAuMDAzMzM0LCAwLjAwMzMzNiwgMC4wMDMzNDQsIDAuMDAzMzYzLCAwLjAwMzM4OCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDS04iOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFEJlJOJiFTRSYhU0kmU04iOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1JOX0VRXzFfQU5fU0VfRVFfMF9BTl9TSV9FUV8wX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4xMTMyNzcsIDAuMTIzNTMyLCAwLjEzNjIzOCwgMC4xNDc2NzEsIDAuMTU4MTMsIDAuMTcyMDc5LCAwLjE4MzEwNCIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMTU1NjQyLCAwLjE2NTUxNCwgMC4xNzc0MzcsIDAuMTg4MjI4LCAwLjE5NzM4OCwgMC4yMTAwNjMsIDAuMjIwMTQ0Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihEKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2Mzc5OTk7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjM2NDUzOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDYzNzk5OTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDMzOSwgMC4wMDMzNzQsIDAuMDAzMzY1LCAwLjAwMzM2LCAwLjAwMzM1NywgMC4wMDMzNTUsIDAuMDAzMzYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDUxNTgsIDAuMDA1MTQ5LCAwLjAwNTE0MywgMC4wMDUxNCwgMC4wMDUxMzksIDAuMDA1MTM4LCAwLjAwNTE0MSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDS04iOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX2ZhbGxpbmc7Ci0gICAgICB3aGVuIDogIlJOJiFTRSZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJSTl9FUV8xX0FOX1NFX0VRXzBfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMTg3NSwgLTAuMDA3NSwgLTAuMDAxMjUsIDAuMDExMjUsIDAuMDE3NSwgMC4wMjc1LCAwLjAzNjI1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLCAwLjAwNjI1LCAwLjAxNjI1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgMCwgMC4wMSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDAyNSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDYxMjUsIC0wLjA1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMTUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wNzEyNSwgLTAuMDY2MjUsIC0wLjA1Mzc1LCAtMC4wNDc1LCAtMC4wMzUsIC0wLjAyNSwgLTAuMDE2MjUiLCBcCi0gICAgICAgICAgIi0wLjA4LCAtMC4wNzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDQsIC0wLjAzMTI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDYyNSwgLTAuMDU3NSwgLTAuMDUxMjUsIC0wLjA0NSwgLTAuMDM4NzUsIC0wLjAzNSwgLTAuMDMyNSIsIFwKLSAgICAgICAgICAiLTAuMDY3NSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDQ2MjUsIC0wLjA0Mzc1IiwgXAotICAgICAgICAgICItMC4wOCwgLTAuMDc1LCAtMC4wNjg3NSwgLTAuMDYyNSwgLTAuMDYyNSwgLTAuMDUyNSwgLTAuMDUiLCBcCi0gICAgICAgICAgIi0wLjA5MjUsIC0wLjA4MTI1LCAtMC4wNzUsIC0wLjA3NSwgLTAuMDY4NzUsIC0wLjA2NSwgLTAuMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDk4NzUsIC0wLjA5Mzc1LCAtMC4wODc1LCAtMC4wODEyNSwgLTAuMDgxMjUsIC0wLjA3MTI1LCAtMC4wNjg3NSIsIFwKLSAgICAgICAgICAiLTAuMTE1LCAtMC4xMSwgLTAuMTAzNzUsIC0wLjA5NzUsIC0wLjA5MTI1LCAtMC4wODc1LCAtMC4wODUiLCBcCi0gICAgICAgICAgIi0wLjEyMzc1LCAtMC4xMTg3NSwgLTAuMTEyNSwgLTAuMTA2MjUsIC0wLjEwNjI1LCAtMC4wOTYyNSwgLTAuMDkzNzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0tOIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfZmFsbGluZzsKLSAgICAgIHdoZW4gOiAiUk4mIVNFJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIlJOX0VRXzFfQU5fU0VfRVFfMF9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwNjI1LCAwLjA5NSwgMC4wODI1LCAwLjA3LCAwLjA2Mzc1LCAwLjA0NzUsIDAuMDM4NzUiLCBcCi0gICAgICAgICAgIjAuMTE3NSwgMC4xMDYyNSwgMC4wOTM3NSwgMC4wODEyNSwgMC4wNjg3NSwgMC4wNTg3NSwgMC4wNSIsIFwKLSAgICAgICAgICAiMC4xMjM3NSwgMC4xMTI1LCAwLjEsIDAuMDg3NSwgMC4wODEyNSwgMC4wNzEyNSwgMC4wNjI1IiwgXAotICAgICAgICAgICIwLjEzNjI1LCAwLjEyNSwgMC4xMTI1LCAwLjEsIDAuMDkzNzUsIDAuMDc3NSwgMC4wNjg3NSIsIFwKLSAgICAgICAgICAiMC4xNDg3NSwgMC4xMzc1LCAwLjEyNSwgMC4xMTI1LCAwLjEsIDAuMDksIDAuMDgxMjUiLCBcCi0gICAgICAgICAgIjAuMTY1LCAwLjE1Mzc1LCAwLjE0MTI1LCAwLjEyODc1LCAwLjExNjI1LCAwLjEwNjI1LCAwLjA5NzUiLCBcCi0gICAgICAgICAgIjAuMTczNzUsIDAuMTY4NzUsIDAuMTUsIDAuMTQzNzUsIDAuMTMxMjUsIDAuMTIxMjUsIDAuMTEyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEzMTI1LCAwLjEyLCAwLjEwNzUsIDAuMDk1LCAwLjA4ODc1LCAwLjA3ODc1LCAwLjA3IiwgXAotICAgICAgICAgICIwLjE0MjUsIDAuMTMxMjUsIDAuMTE4NzUsIDAuMTA2MjUsIDAuMSwgMC4wODM3NSwgMC4wODEyNSIsIFwKLSAgICAgICAgICAiMC4xNDg3NSwgMC4xMzc1LCAwLjEyNSwgMC4xMTI1LCAwLjEwNjI1LCAwLjA5NjI1LCAwLjA4NzUiLCBcCi0gICAgICAgICAgIjAuMTYxMjUsIDAuMTUsIDAuMTM3NSwgMC4xMjUsIDAuMTE4NzUsIDAuMTA4NzUsIDAuMSIsIFwKLSAgICAgICAgICAiMC4xNjc1LCAwLjE1NjI1LCAwLjE0Mzc1LCAwLjEzNzUsIDAuMTI1LCAwLjExNSwgMC4xMDYyNSIsIFwKLSAgICAgICAgICAiMC4xODM3NSwgMC4xNzI1LCAwLjE2LCAwLjE0NzUsIDAuMTQxMjUsIDAuMTMxMjUsIDAuMTIyNSIsIFwKLSAgICAgICAgICAiMC4xOTg3NSwgMC4xODc1LCAwLjE2ODc1LCAwLjE2MjUsIDAuMTUsIDAuMTQsIDAuMTM3NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjUxOTQ5NjsKLSAgICBmdW5jdGlvbiA6ICJOMzUiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBub25fdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGZhbGxpbmdfZWRnZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTUyODI5LCAwLjI1NjgyMywgMC4zMzg4OTYsIDAuNDQxNzQxLCAwLjU0Mzk5NCwgMC42NDcyNzIsIDAuNzUwMjEyIiwgXAotICAgICAgICAgICIwLjE2Mjc3LCAwLjI2Njg2NSwgMC4zNDg4MTYsIDAuNDUxNjQsIDAuNTU0NDI5LCAwLjY1NzUyNSwgMC43NjAxMzYiLCBcCi0gICAgICAgICAgIjAuMTc0ODEsIDAuMjc4Nzk2LCAwLjM2MDg4NSwgMC40NjMyOTUsIDAuNTY1OTIxLCAwLjY2OTYzMywgMC43NzIxNjMiLCBcCi0gICAgICAgICAgIjAuMTg1NDgsIDAuMjg5NDc3LCAwLjM3MTUzOSwgMC40NzM4ODQsIDAuNTc2NTY4LCAwLjY4MDIwMiwgMC43ODI3ODUiLCBcCi0gICAgICAgICAgIjAuMTk0ODQxLCAwLjI5ODgyOCwgMC4zODA5MTQsIDAuNDgzMjc5LCAwLjU4NjAzLCAwLjY4OTU2OSwgMC43OTIxNCIsIFwKLSAgICAgICAgICAiMC4yMDc4ODMsIDAuMzExODU5LCAwLjM5Mzk2MiwgMC40OTYzMzMsIDAuNTk5MjgxLCAwLjcwMjYyLCAwLjgwNTE4NSIsIFwKLSAgICAgICAgICAiMC4yMTc2MDQsIDAuMzIxNTc0LCAwLjQwMzc3NSwgMC41MDYzNTMsIDAuNjA5MTAxLCAwLjcxMjI3MiwgMC44MTQ3ODciKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU0OTE1LCAwLjI2MTY2NiwgMC40MzA1MiwgMC42NDI1ODUsIDAuODUzNDA3LCAxLjA2NjIxLCAxLjI3NTczIiwgXAotICAgICAgICAgICIwLjA1NDg4MiwgMC4yNjE3MzQsIDAuNDMwNTI0LCAwLjY0MTI4NywgMC44NTQ0NDEsIDEuMDYzOTMsIDEuMjc1NzUiLCBcCi0gICAgICAgICAgIjAuMDU1Mzc4LCAwLjI2MTI0NywgMC40MzA1MjYsIDAuNjQxNDc5LCAwLjg1MzA3LCAxLjA2NDIsIDEuMjc1NzUiLCBcCi0gICAgICAgICAgIjAuMDU0ODkzLCAwLjI2MTc5NywgMC40MzA1NDQsIDAuNjQxMzMyLCAwLjg1MjkwNSwgMS4wNjQwNSwgMS4yNzgwMSIsIFwKLSAgICAgICAgICAiMC4wNTUyNzksIDAuMjYxMjY3LCAwLjQzMDU0MSwgMC42NDE2NDEsIDAuODUyMzU0LCAxLjA2NDAzLCAxLjI3Nzk5IiwgXAotICAgICAgICAgICIwLjA1NTI3LCAwLjI2MTg3MywgMC40MzA1NDIsIDAuNjQxNjEzLCAwLjg1Mjk3NiwgMS4wNjQxOCwgMS4yNzgiLCBcCi0gICAgICAgICAgIjAuMDU1MjcsIDAuMjYxODc3LCAwLjQzMDUzOCwgMC42NDI1NDcsIDAuODU0MjkxLCAxLjA2NDIsIDEuMjc3OTkiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTM0MzY5LCAwLjIzOTY0MSwgMC4zMjIzMTEsIDAuNDI2NTI3LCAwLjUzMDI3MywgMC42MzM5MDgsIDAuNzM3NjY0IiwgXAotICAgICAgICAgICIwLjE0NDI0LCAwLjI0OTUyMSwgMC4zMzI0NjEsIDAuNDM2MzU2LCAwLjU0MDA5NSwgMC42NDMyMjUsIDAuNzQ3NTA3IiwgXAotICAgICAgICAgICIwLjE1NjE4OSwgMC4yNjEzNjYsIDAuMzQ0MzY0LCAwLjQ0ODMwMSwgMC41NTE5ODMsIDAuNjU1NzQ4LCAwLjc1OTQ5MiIsIFwKLSAgICAgICAgICAiMC4xNjY5NTMsIDAuMjcyMjI3LCAwLjM1NDg3OSwgMC40NTkwODQsIDAuNTYyODI5LCAwLjY2NjI5MiwgMC43NzAyMTIiLCBcCi0gICAgICAgICAgIjAuMTc2MTIsIDAuMjgxMzc3LCAwLjM2NDAyLCAwLjQ2ODI0NywgMC41NzE0MzQsIDAuNjc1MzEsIDAuNzc5MzciLCBcCi0gICAgICAgICAgIjAuMTg4ODEyLCAwLjI5MzkzMywgMC4zNzY3MzksIDAuNDgwNzYxLCAwLjU4NDYzNSwgMC42ODgzNDgsIDAuNzkyMTA3IiwgXAotICAgICAgICAgICIwLjE5ODk1NSwgMC4zMDQxMjksIDAuMzg2ODY3LCAwLjQ5MDY0MiwgMC41OTQ3MDksIDAuNjk4NDkyLCAwLjgwMjE2NiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTQzMTMsIDAuMjYwMDE4LCAwLjQyNzU4MiwgMC42MzY1MTgsIDAuODQ4NDU0LCAxLjA1OTAzLCAxLjI2OTU1IiwgXAotICAgICAgICAgICIwLjA1NDMxNSwgMC4yNTk3MTEsIDAuNDI3MTEyLCAwLjYzNzg0NSwgMC44NDg0OTksIDEuMDU3MzYsIDEuMjY5NDYiLCBcCi0gICAgICAgICAgIjAuMDU0MTUsIDAuMjU5OTg2LCAwLjQyNzA0OSwgMC42Mzc4MzgsIDAuODQ4NDI4LCAxLjA1OSwgMS4yNjk0OCIsIFwKLSAgICAgICAgICAiMC4wNTQzMiwgMC4yNTkwNywgMC40MjczODEsIDAuNjM1OTkyLCAwLjg0ODUyMiwgMS4wNTg0OSwgMS4yNjk0MyIsIFwKLSAgICAgICAgICAiMC4wNTM5NDMsIDAuMjU5MjYsIDAuNDI3NDA0LCAwLjYzNzg1MiwgMC44NDY3NDUsIDEuMDU4MjIsIDEuMjY5NCIsIFwKLSAgICAgICAgICAiMC4wNTQxMTQsIDAuMjU5NzY3LCAwLjQyNjQ5NiwgMC42Mzc3MzcsIDAuODQ4NDUxLCAxLjA1ODk2LCAxLjI2OTQ2IiwgXAotICAgICAgICAgICIwLjA1NDE3NiwgMC4yNTk2MTcsIDAuNDI2NzU1LCAwLjYzNjg5OSwgMC44NDg0NDUsIDEuMDU4OTYsIDEuMjY5MzMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUk4iOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGNsZWFyOwotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xODUyNzYsIDAuMjkwNDUsIDAuMzczMDI4LCAwLjQ3NzE5OSwgMC41ODA4OSwgMC42ODQ1MTMsIDAuNzg4MjgiLCBcCi0gICAgICAgICAgIjAuMTk1MTgyLCAwLjI5OTg5MSwgMC4zODI5MzgsIDAuNDg3MDY4LCAwLjU5MDc4NCwgMC42OTQzODcsIDAuNzk4MTg4IiwgXAotICAgICAgICAgICIwLjIwNzA3OSwgMC4zMTIyNDMsIDAuMzk0ODQ1LCAwLjQ5ODk5MSwgMC42MDI2OTIsIDAuNzA2MDM3LCAwLjgxMDA4MiIsIFwKLSAgICAgICAgICAiMC4yMTc1MTIsIDAuMzIyNjg3LCAwLjQwNTI4NCwgMC41MDk0MzEsIDAuNjEzMTI4LCAwLjcxNjQ2NywgMC44MjA1MTgiLCBcCi0gICAgICAgICAgIjAuMjI2MTEsIDAuMzMxMjkyLCAwLjQxMzg2OSwgMC41MTgwNTEsIDAuNjIxNzMyLCAwLjcyNTU1MywgMC44MjkxMjEiLCBcCi0gICAgICAgICAgIjAuMjM5MTkyLCAwLjM0NDM3MSwgMC40MjY5NDYsIDAuNTMxMTM5LCAwLjYzNDgxNSwgMC43Mzg1MDUsIDAuODQyMjAyIiwgXAotICAgICAgICAgICIwLjI0ODI5MiwgMC4zNTM0NjUsIDAuNDM2NTEyLCAwLjU0MDE4OSwgMC42NDM4OTgsIDAuNzQ3MjQ0LCAwLjg1MTMxMSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTQ0MjMsIDAuMjYwMzczLCAwLjQyNzQyMiwgMC42Mzc5MjcsIDAuODQ4NTkyLCAxLjA1OTA3LCAxLjI2OTcxIiwgXAotICAgICAgICAgICIwLjA1NDQyMSwgMC4yNTk5NjYsIDAuNDI3NTc3LCAwLjYzNzkwNiwgMC44NDg1NjksIDEuMDU4OTIsIDEuMjY5NzEiLCBcCi0gICAgICAgICAgIjAuMDU0NDUxLCAwLjI2MDA0NiwgMC40Mjc3MTIsIDAuNjM3OTA4LCAwLjg0ODYwNywgMS4wNTkwNiwgMS4yNjk2NiIsIFwKLSAgICAgICAgICAiMC4wNTQ0NTcsIDAuMjYwNDA1LCAwLjQyNzY5OSwgMC42Mzc5MTMsIDAuODQ4NjAzLCAxLjA1OTAzLCAxLjI2OTY2IiwgXAotICAgICAgICAgICIwLjA1NDQxOSwgMC4yNjAwNDMsIDAuNDI3NDM4LCAwLjYzNzk0MSwgMC44NDg1OTYsIDEuMDU4OTIsIDEuMjY5NjkiLCBcCi0gICAgICAgICAgIjAuMDU0NDU4LCAwLjI1OTczMSwgMC40Mjc0MSwgMC42Mzc5NTIsIDAuODQ4NjAyLCAxLjA1OTEyLCAxLjI2OTY5IiwgXAotICAgICAgICAgICIwLjA1NDI2OCwgMC4yNjAzOTQsIDAuNDI3MzU5LCAwLjYzNzg5NywgMC44NDg1NTQsIDEuMDU5MDMsIDEuMjY5NzQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiU04iOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHByZXNldDsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTI3MDcyLCAwLjIzMDk5LCAwLjMxMjcyOSwgMC40MTU5ODksIDAuNTE4OTA1LCAwLjYyMTI1MSwgMC43MjQwMTUiLCBcCi0gICAgICAgICAgIjAuMTM2NTYzLCAwLjI0MDQ3MiwgMC4zMjI1NjQsIDAuNDI1NDYxLCAwLjUyODMzOCwgMC42MzA4MTMsIDAuNzMzNDc2IiwgXAotICAgICAgICAgICIwLjE0Njk1NSwgMC4yNTA4MzgsIDAuMzMzMDU1LCAwLjQzNTg1OSwgMC41Mzg2MzksIDAuNjQxMTkzLCAwLjc0Mzg5MiIsIFwKLSAgICAgICAgICAiMC4xNTg4NTMsIDAuMjYyMzMyLCAwLjM0NDQ3OSwgMC40NDc3MjgsIDAuNTQ5ODIyLCAwLjY1Mjk4LCAwLjc1NTc0MyIsIFwKLSAgICAgICAgICAiMC4xNzA0MjEsIDAuMjc0MjAxLCAwLjM1NTk5MSwgMC40NTg3MjMsIDAuNTYyMTAyLCAwLjY2NDU0MSwgMC43NjczMDMiLCBcCi0gICAgICAgICAgIjAuMTg3NjU3LCAwLjI5MTEzMSwgMC4zNzM1OSwgMC40NzY1MjMsIDAuNTc5MTMyLCAwLjY4MTgxOSwgMC43ODQ2MDciLCBcCi0gICAgICAgICAgIjAuMjAwNzYzLCAwLjMwNDU4MSwgMC4zODYzNzksIDAuNDg5MTYsIDAuNTkyMzA1LCAwLjY5NDk0NCwgMC43OTc2NTEiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU0Mzc4LCAwLjI2MTkzOCwgMC40MzAwOTMsIDAuNjQyNTkyLCAwLjg1NDMyMiwgMS4wNjYwNSwgMS4yNzc4NyIsIFwKLSAgICAgICAgICAiMC4wNTQyNzksIDAuMjYxODA4LCAwLjQzMDU3NSwgMC42NDI1NzcsIDAuODU0MzE4LCAxLjA2NjA0LCAxLjI3Nzg3IiwgXAotICAgICAgICAgICIwLjA1NDQzNywgMC4yNjE5NzQsIDAuNDMwNTksIDAuNjQyNTg1LCAwLjg1NDM2NSwgMS4wNjYwNCwgMS4yNzc4NiIsIFwKLSAgICAgICAgICAiMC4wNTQ0NDIsIDAuMjYxNzU5LCAwLjQzMDUyNiwgMC42NDI1NzEsIDAuODU0MzE0LCAxLjA2NjA1LCAxLjI3Nzg3IiwgXAotICAgICAgICAgICIwLjA1NDQ2MywgMC4yNjE5NjYsIDAuNDMwMDczLCAwLjY0MjU4OSwgMC44NTQzMzMsIDEuMDY2MDIsIDEuMjc3ODYiLCBcCi0gICAgICAgICAgIjAuMDU0NDk4LCAwLjI2MTc2NCwgMC40MzA1NzYsIDAuNjQyNTkxLCAwLjg1NDI5OCwgMS4wNjYwMSwgMS4yNzc4NCIsIFwKLSAgICAgICAgICAiMC4wNTQ1MzMsIDAuMjYxNDksIDAuNDMwMTAxLCAwLjY0MjU3NiwgMC44NTQyNzgsIDEuMDY2MDMsIDEuMjc3ODUiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTY2OTE0LCAwLjI3MjEyMiwgMC4zNTQ3MzUsIDAuNDU4OTg1LCAwLjU2MjM3MywgMC42NjYzNzMsIDAuNzcwMDkxIiwgXAotICAgICAgICAgICIwLjE3NjQ0MSwgMC4yODE2NTksIDAuMzY0Mjk5LCAwLjQ2ODQ3OCwgMC41NzIxOTksIDAuNjc1NTc2LCAwLjc3OTYxNSIsIFwKLSAgICAgICAgICAiMC4xODcyNTYsIDAuMjkyNDg2LCAwLjM3NTExNSwgMC40NzkyOTcsIDAuNTgzMDE0LCAwLjY4NjkwMSwgMC43OTA0MyIsIFwKLSAgICAgICAgICAiMC4xOTgsIDAuMzAzMjIsIDAuMzg1ODQsIDAuNDkwMDA1LCAwLjU5Mzc0NSwgMC42OTcwOTgsIDAuODAxMTg5IiwgXAotICAgICAgICAgICIwLjIwODYyNywgMC4zMTM4MjcsIDAuMzk2NTMxLCAwLjUwMDYxOSwgMC42MDQzNjEsIDAuNzA4MjY2LCAwLjgxMTgxNSIsIFwKLSAgICAgICAgICAiMC4yMjUxNzUsIDAuMzMwMzkxLCAwLjQxMjk2MSwgMC41MTcxNzcsIDAuNjIwOTE4LCAwLjcyNDY0MiwgMC44MjgzNjkiLCBcCi0gICAgICAgICAgIjAuMjM5MDU1LCAwLjM0NDI4NywgMC40MjY5MTMsIDAuNTMxMTI5LCAwLjYzNDgyOSwgMC43MzgxNDEsIDAuODQyMjQyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1NDQ3MSwgMC4yNTk5MjksIDAuNDI3NDI0LCAwLjYzNzg5NSwgMC44NDg0MTUsIDEuMDU5MTMsIDEuMjY5NzQiLCBcCi0gICAgICAgICAgIjAuMDU0NDU3LCAwLjI2MDAxNywgMC40Mjc3MDcsIDAuNjM3OTE1LCAwLjg0ODYwOCwgMS4wNTg5MywgMS4yNjk2NyIsIFwKLSAgICAgICAgICAiMC4wNTQ0MDMsIDAuMjU5ODc2LCAwLjQyNzQwNSwgMC42Mzc5MjMsIDAuODQ4NTgxLCAxLjA1ODkxLCAxLjI2OTY4IiwgXAotICAgICAgICAgICIwLjA1NDM3NCwgMC4yNTk5MTgsIDAuNDI3MzczLCAwLjYzNzkxMSwgMC44NDg1NSwgMS4wNTg5MSwgMS4yNjk3MiIsIFwKLSAgICAgICAgICAiMC4wNTQzNTgsIDAuMjYwMzk0LCAwLjQyNzQxMiwgMC42Mzc4NzQsIDAuODQ4NTUxLCAxLjA1ODg5LCAxLjI2OTY3IiwgXAotICAgICAgICAgICIwLjA1NDI0LCAwLjI2MDM4OSwgMC40Mjc0MTIsIDAuNjM3ODgsIDAuODQ4NTQxLCAxLjA1OTE4LCAxLjI2OTY5IiwgXAotICAgICAgICAgICIwLjA1NDQ3OCwgMC4yNjAwNjgsIDAuNDI3NTM2LCAwLjYzNzk2LCAwLjg0ODU5NiwgMS4wNTg5MSwgMS4yNjk2OCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1ODA1LCAwLjAwNTg1OSwgMC4wMDU4NjUsIDAuMDA1ODY5LCAwLjAwNTg3LCAwLjAwNTg3MSwgMC4wMDU4NzIiLCBcCi0gICAgICAgICAgIjAuMDA1NzkyLCAwLjAwNTg0NiwgMC4wMDU4NTMsIDAuMDA1ODU1LCAwLjAwNTg1OCwgMC4wMDU4NTgsIDAuMDA1ODU5IiwgXAotICAgICAgICAgICIwLjAwNTc5NSwgMC4wMDU4NDksIDAuMDA1ODU1LCAwLjAwNTg1OCwgMC4wMDU4NjEsIDAuMDA1ODYxLCAwLjAwNTg2MiIsIFwKLSAgICAgICAgICAiMC4wMDU4LCAwLjAwNTg1NCwgMC4wMDU4NjEsIDAuMDA1ODY0LCAwLjAwNTg2NiwgMC4wMDU4NjYsIDAuMDA1ODY3IiwgXAotICAgICAgICAgICIwLjAwNTgwOSwgMC4wMDU4NjMsIDAuMDA1ODY5LCAwLjAwNTg3MywgMC4wMDU4NzQsIDAuMDA1ODc1LCAwLjAwNTg3NiIsIFwKLSAgICAgICAgICAiMC4wMDU4MjYsIDAuMDA1ODgsIDAuMDA1ODg2LCAwLjAwNTg5LCAwLjAwNTg5MiwgMC4wMDU4OTIsIDAuMDA1ODkzIiwgXAotICAgICAgICAgICIwLjAwNTg0MiwgMC4wMDU4OTUsIDAuMDA1OTAxLCAwLjAwNTkwNSwgMC4wMDU5MDcsIDAuMDA1OTA3LCAwLjAwNTkwNyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNTQ0MSwgMC4wMDU0OTUsIDAuMDA1NTAxLCAwLjAwNTUwNCwgMC4wMDU1MDYsIDAuMDA1NTA3LCAwLjAwNTUwOCIsIFwKLSAgICAgICAgICAiMC4wMDU0MjUsIDAuMDA1NDc5LCAwLjAwNTQ4NiwgMC4wMDU0ODgsIDAuMDA1NDksIDAuMDA1NDkxLCAwLjAwNTQ5MiIsIFwKLSAgICAgICAgICAiMC4wMDU0MTksIDAuMDA1NDc0LCAwLjAwNTQ4LCAwLjAwNTQ4MywgMC4wMDU0ODUsIDAuMDA1NDg2LCAwLjAwNTQ4NiIsIFwKLSAgICAgICAgICAiMC4wMDU0MTksIDAuMDA1NDczLCAwLjAwNTQ3OSwgMC4wMDU0ODMsIDAuMDA1NDg1LCAwLjAwNTQ4NSwgMC4wMDU0ODYiLCBcCi0gICAgICAgICAgIjAuMDA1NDE4LCAwLjAwNTQ3MiwgMC4wMDU0NzgsIDAuMDA1NDgyLCAwLjAwNTQ4NCwgMC4wMDU0ODUsIDAuMDA1NDg1IiwgXAotICAgICAgICAgICIwLjAwNTQyNSwgMC4wMDU0OCwgMC4wMDU0ODYsIDAuMDA1NDksIDAuMDA1NDkxLCAwLjAwNTQ5MiwgMC4wMDU0OTQiLCBcCi0gICAgICAgICAgIjAuMDA1NDQxLCAwLjAwNTQ5NywgMC4wMDU1MDQsIDAuMDA1NTA3LCAwLjAwNTUwOSwgMC4wMDU1MDksIDAuMDA1NTEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2NzIsIDAuMDA2NzY1LCAwLjAwNjc2NiwgMC4wMDY3NjMsIDAuMDA2NzYyLCAwLjAwNjc1OSwgMC4wMDY3NTQiLCBcCi0gICAgICAgICAgIjAuMDA2NzA4LCAwLjAwNjc1NCwgMC4wMDY3NTMsIDAuMDA2NzUzLCAwLjAwNjc1MSwgMC4wMDY3NDUsIDAuMDA2NzQzIiwgXAotICAgICAgICAgICIwLjAwNjcwNCwgMC4wMDY3NSwgMC4wMDY3NDksIDAuMDA2NzQ5LCAwLjAwNjc0NywgMC4wMDY3NDEsIDAuMDA2NzQiLCBcCi0gICAgICAgICAgIjAuMDA2NzA1LCAwLjAwNjc1MiwgMC4wMDY3NSwgMC4wMDY3NSwgMC4wMDY3NDgsIDAuMDA2NzQzLCAwLjAwNjc0MSIsIFwKLSAgICAgICAgICAiMC4wMDY3MSwgMC4wMDY3NTYsIDAuMDA2NzU5LCAwLjAwNjc1NiwgMC4wMDY3NTQsIDAuMDA2NzQ3LCAwLjAwNjc0NiIsIFwKLSAgICAgICAgICAiMC4wMDY3MTUsIDAuMDA2NzYxLCAwLjAwNjc2NCwgMC4wMDY3NjEsIDAuMDA2NzU5LCAwLjAwNjc1MiwgMC4wMDY3NTEiLCBcCi0gICAgICAgICAgIjAuMDA2NzIsIDAuMDA2NzY2LCAwLjAwNjc2NSwgMC4wMDY3NjUsIDAuMDA2NzYzLCAwLjAwNjc2MSwgMC4wMDY3NTUiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfcG93ZXIoc2NhbGFyKSB7Ci0gICAgICAgIHZhbHVlcygiMCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDYxMjksIDAuMDA2MTc4LCAwLjAwNjE4MywgMC4wMDYxODYsIDAuMDA2MTg3LCAwLjAwNjE4OCwgMC4wMDYxODgiLCBcCi0gICAgICAgICAgIjAuMDA2MTE0LCAwLjAwNjE2NCwgMC4wMDYxNjksIDAuMDA2MTcxLCAwLjAwNjE3MywgMC4wMDYxNzQsIDAuMDA2MTc0IiwgXAotICAgICAgICAgICIwLjAwNjEwOCwgMC4wMDYxNTgsIDAuMDA2MTYzLCAwLjAwNjE2NSwgMC4wMDYxNjYsIDAuMDA2MTY3LCAwLjAwNjE2OCIsIFwKLSAgICAgICAgICAiMC4wMDYxMDUsIDAuMDA2MTU1LCAwLjAwNjE2LCAwLjAwNjE2MiwgMC4wMDYxNjMsIDAuMDA2MTY1LCAwLjAwNjE2NSIsIFwKLSAgICAgICAgICAiMC4wMDYxMDQsIDAuMDA2MTU0LCAwLjAwNjE1OSwgMC4wMDYxNjIsIDAuMDA2MTYzLCAwLjAwNjE2NCwgMC4wMDYxNjQiLCBcCi0gICAgICAgICAgIjAuMDA2MTA2LCAwLjAwNjE1NywgMC4wMDYxNjIsIDAuMDA2MTY0LCAwLjAwNjE2NSwgMC4wMDYxNjYsIDAuMDA2MTY3IiwgXAotICAgICAgICAgICIwLjAwNjExLCAwLjAwNjE2MiwgMC4wMDYxNjgsIDAuMDA2MTcxLCAwLjAwNjE3MiwgMC4wMDYxNzMsIDAuMDA2MTc0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1MywgMC4wMDUzNTQsIDAuMDA1MzY0LCAwLjAwNTM2NCwgMC4wMDUzNjUsIDAuMDA1MzY2LCAwLjAwNTM2NyIsIFwKLSAgICAgICAgICAiMC4wMDUyODMsIDAuMDA1MzM3LCAwLjAwNTM0NCwgMC4wMDUzNDksIDAuMDA1MzUyLCAwLjAwNTM0OSwgMC4wMDUzNDkiLCBcCi0gICAgICAgICAgIjAuMDA1Mjc0LCAwLjAwNTMyOCwgMC4wMDUzMzcsIDAuMDA1MzQxLCAwLjAwNTM0MywgMC4wMDUzNCwgMC4wMDUzNCIsIFwKLSAgICAgICAgICAiMC4wMDUyNjcsIDAuMDA1MzIyLCAwLjAwNTMzLCAwLjAwNTMzNCwgMC4wMDUzMzYsIDAuMDA1MzM0LCAwLjAwNTMzNCIsIFwKLSAgICAgICAgICAiMC4wMDUyNjMsIDAuMDA1MzE3LCAwLjAwNTMyNCwgMC4wMDUzMjcsIDAuMDA1MzI4LCAwLjAwNTMyOSwgMC4wMDUzMyIsIFwKLSAgICAgICAgICAiMC4wMDUyNTcsIDAuMDA1MzEyLCAwLjAwNTMyLCAwLjAwNTMyMywgMC4wMDUzMjUsIDAuMDA1MzI1LCAwLjAwNTMyNCIsIFwKLSAgICAgICAgICAiMC4wMDUyNTEsIDAuMDA1MzA3LCAwLjAwNTMxNywgMC4wMDUzMiwgMC4wMDUzMjMsIDAuMDA1MzIzLCAwLjAwNTMyIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihRTikgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjUyMTkwNTsKLSAgICBmdW5jdGlvbiA6ICJRQklOVCI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0tOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5vbl91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogZmFsbGluZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNTU2NDIsIDAuMjU4NDc1LCAwLjM0MDgyNCwgMC40NDM5MTgsIDAuNTQ2OTYzLCAwLjY0OTk2MSwgMC43NTMwMDciLCBcCi0gICAgICAgICAgIjAuMTY1NTE0LCAwLjI2ODM0MiwgMC4zNTA3MDksIDAuNDUzNzY4LCAwLjU1NjgwNywgMC42NTk1OTcsIDAuNzYyODcxIiwgXAotICAgICAgICAgICIwLjE3NzQzNywgMC4yODAyNjYsIDAuMzYyNjQ0LCAwLjQ2NTcxMSwgMC41Njg3MjcsIDAuNjcxNzg0LCAwLjc3NDgzNyIsIFwKLSAgICAgICAgICAiMC4xODgyMjgsIDAuMjkxMDYsIDAuMzczNDEsIDAuNDc2NDkzLCAwLjU3OTUzNSwgMC42ODI1MTYsIDAuNzg1NTg2IiwgXAotICAgICAgICAgICIwLjE5NzM4OCwgMC4zMDAyMTUsIDAuMzgyNTcsIDAuNDg1NjQ5LCAwLjU4ODQ4MiwgMC42OTE1MjIsIDAuNzk0NzM4IiwgXAotICAgICAgICAgICIwLjIxMDA2OSwgMC4zMTI4ODIsIDAuMzk1MjY5LCAwLjQ5ODI4MiwgMC42MDEzNjEsIDAuNzA0Mzk0LCAwLjgwNzQ1NyIsIFwKLSAgICAgICAgICAiMC4yMjAyMiwgMC4zMjMwMzgsIDAuNDA1NDE4LCAwLjUwODQ0LCAwLjYxMTQ2OSwgMC43MTQ1NDIsIDAuODE3NTU1Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1MTI0NCwgMC4yNjI5MDUsIDAuNDM0NTk1LCAwLjY0ODA3OCwgMC44NjM4NTQsIDEuMDc4MjcsIDEuMjkyNyIsIFwKLSAgICAgICAgICAiMC4wNTEyNDMsIDAuMjYyOTM5LCAwLjQzNDksIDAuNjQ5NDIxLCAwLjg2Mzg3OCwgMS4wNzY1MSwgMS4yOTI2MyIsIFwKLSAgICAgICAgICAiMC4wNTEyNTQsIDAuMjYzMDQsIDAuNDM0OTAxLCAwLjY0OTQxNiwgMC44NjM4MzUsIDEuMDc4MjUsIDEuMjkyNjciLCBcCi0gICAgICAgICAgIjAuMDUxMjQ2LCAwLjI2Mjg0NiwgMC40MzQyNDUsIDAuNjQ4MDc3LCAwLjg2Mzg2OCwgMS4wNzc2MSwgMS4yOTI2MSIsIFwKLSAgICAgICAgICAiMC4wNTEyMzgsIDAuMjYyODY4LCAwLjQzNDI4NCwgMC42NDk0MjgsIDAuODYyNjIsIDEuMDc3MzksIDEuMjkyNTkiLCBcCi0gICAgICAgICAgIjAuMDUxMjUsIDAuMjYzMDIzLCAwLjQzNDI4NSwgMC42NDkzMywgMC44NjM4NTcsIDEuMDc4MjEsIDEuMjkyNTYiLCBcCi0gICAgICAgICAgIjAuMDUxMjU4LCAwLjI2Mjk0MiwgMC40MzQyODYsIDAuNjQ4NTQ2LCAwLjg2Mzc5NCwgMS4wNzgyMSwgMS4yOTI0OSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNzYxOTIsIDAuMjc5ODY0LCAwLjM2MjgzOCwgMC40NjY2MDEsIDAuNTcwMzYxLCAwLjY3NDE1NywgMC43Nzc5OTgiLCBcCi0gICAgICAgICAgIjAuMTg2MTMzLCAwLjI4OTgxNywgMC4zNzI3NzEsIDAuNDc2NTQ5LCAwLjU4MDI2OSwgMC42ODQxNzYsIDAuNzg3OTI5IiwgXAotICAgICAgICAgICIwLjE5ODE3OSwgMC4zMDE4NTEsIDAuMzg0ODI3LCAwLjQ4ODU3NCwgMC41OTIzNTgsIDAuNjk2MjU4LCAwLjc5OTk3NyIsIFwKLSAgICAgICAgICAiMC4yMDg4NDIsIDAuMzEyNTEsIDAuMzk1NDgzLCAwLjQ5OTE2MiwgMC42MDMwMTgsIDAuNzA2ODc3LCAwLjgxMDYyMSIsIFwKLSAgICAgICAgICAiMC4yMTgyMTEsIDAuMzIxODgsIDAuNDA0ODU3LCAwLjUwODYxLCAwLjYxMjM5OCwgMC43MTYyNTYsIDAuODE5OTkyIiwgXAotICAgICAgICAgICIwLjIzMTI1MiwgMC4zMzQ5MiwgMC40MTc4OTgsIDAuNTIxNjUsIDAuNjI1NDM4LCAwLjcyOTI5OSwgMC44MzMwMzMiLCBcCi0gICAgICAgICAgIjAuMjQwOTUyLCAwLjM0NDYzNywgMC40Mjc2MzEsIDAuNTMxMzcsIDAuNjM1MTc5LCAwLjczODk5MywgMC44NDI2OCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTA1MDksIDAuMjU4MTEsIDAuNDI2NDQzLCAwLjYzNjkyLCAwLjg0NjQ0MywgMS4wNTc3OCwgMS4yNjU5IiwgXAotICAgICAgICAgICIwLjA1MDUwOCwgMC4yNTgwNTQsIDAuNDI2NDQxLCAwLjYzNjE3NiwgMC44NDczMTksIDEuMDU1ODEsIDEuMjY1OSIsIFwKLSAgICAgICAgICAiMC4wNTA1MTQsIDAuMjU4MDk5LCAwLjQyNjQ0OSwgMC42MzYyNjYsIDAuODQ2MjE4LCAxLjA1NTk3LCAxLjI2NTg4IiwgXAotICAgICAgICAgICIwLjA1MDUwNywgMC4yNTgwOSwgMC40MjY0NTYsIDAuNjM2MTgzLCAwLjg0NjIyNCwgMS4wNTU4NywgMS4yNjgzMSIsIFwKLSAgICAgICAgICAiMC4wNTA0NzksIDAuMjU4MSwgMC40MjY0NTksIDAuNjM2MjgxLCAwLjg0NTkyLCAxLjA1NTg2LCAxLjI2ODI4IiwgXAotICAgICAgICAgICIwLjA1MDUxMiwgMC4yNTgzMjcsIDAuNDI2NDYxLCAwLjYzNjI5NCwgMC44NDYxNjQsIDEuMDU1OSwgMS4yNjgyOCIsIFwKLSAgICAgICAgICAiMC4wNTA1MTMsIDAuMjU4MzU4LCAwLjQyNjQ5NiwgMC42MzY4NTksIDAuODQ3MTcyLCAxLjA1NTksIDEuMjY4MjciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUk4iOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHByZXNldDsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjA2NDk0LCAwLjMwOTM2MiwgMC4zOTE3MTUsIDAuNDk0NzgzLCAwLjU5NzgwOSwgMC43MDA4LCAwLjgwMzg2MyIsIFwKLSAgICAgICAgICAiMC4yMTY0MSwgMC4zMTkxNzgsIDAuNDAxNTU2LCAwLjUwNDY2NiwgMC42MDc2OTksIDAuNzEwNjgxLCAwLjgxMzc1OSIsIFwKLSAgICAgICAgICAiMC4yMjgzMjUsIDAuMzMxMTUxLCAwLjQxMzUwNCwgMC41MTY1NywgMC42MTk2LCAwLjcyMjYyNCwgMC44MjU2NTQiLCBcCi0gICAgICAgICAgIjAuMjM4NzYxLCAwLjM0MTU5LCAwLjQyMzk0MiwgMC41MjcwMDksIDAuNjMwMDM4LCAwLjczMzA2NCwgMC44MzYwOTIiLCBcCi0gICAgICAgICAgIjAuMjQ3MzI2LCAwLjM1MDIsIDAuNDMyNTUxLCAwLjUzNTYyMywgMC42Mzg2NDgsIDAuNzQxNzQsIDAuODQ0NzAxIiwgXAotICAgICAgICAgICIwLjI2MDQ0NywgMC4zNjMyNzcsIDAuNDQ1NjI5LCAwLjU0ODcwNCwgMC42NTE3MjcsIDAuNzU0NzUsIDAuODU3NzgiLCBcCi0gICAgICAgICAgIjAuMjY5NTE0LCAwLjM3MjM1NCwgMC40NTQ3NTYsIDAuNTU3NzYzLCAwLjY2MDc5NCwgMC43NjM4MTgsIDAuODY2ODYxIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1MTI4NCwgMC4yNjMzOTYsIDAuNDM0OTMxLCAwLjY0OTQ2NywgMC44NjM4NTcsIDEuMDc4MjQsIDEuMjkyNzQiLCBcCi0gICAgICAgICAgIjAuMDUxMjgyLCAwLjI2MjcxOSwgMC40MzQ5MzUsIDAuNjQ5NDU5LCAwLjg2Mzg0OSwgMS4wNzgxNywgMS4yOTI3NSIsIFwKLSAgICAgICAgICAiMC4wNTEzMTQsIDAuMjYzMjc4LCAwLjQzNDY4LCAwLjY0OTQ1NCwgMC44NjM4NjQsIDEuMDc4MTgsIDEuMjkyNzIiLCBcCi0gICAgICAgICAgIjAuMDUxMzA5LCAwLjI2MzQyMywgMC40MzQ2NzMsIDAuNjQ5NDU0LCAwLjg2Mzg2LCAxLjA3ODE2LCAxLjI5MjcyIiwgXAotICAgICAgICAgICIwLjA1MTI5OSwgMC4yNjMyNjQsIDAuNDM0MjkzLCAwLjY0OTQ2NCwgMC44NjM4NTMsIDEuMDc4MDUsIDEuMjkyNzMiLCBcCi0gICAgICAgICAgIjAuMDUxMzA3LCAwLjI2Mjk3NCwgMC40MzQ3MzYsIDAuNjQ5NDY2LCAwLjg2Mzg1MywgMS4wNzgyNywgMS4yOTI3MyIsIFwKLSAgICAgICAgICAiMC4wNTEyOTMsIDAuMjYzNDExLCAwLjQzNDI0OCwgMC42NDk0NTcsIDAuODYzODM4LCAxLjA3ODE1LCAxLjI5Mjc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiBjbGVhcjsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTg4MTY2LCAwLjI5MDk5NywgMC4zNzMzNTIsIDAuNDc2NDI4LCAwLjU3OTMsIDAuNjgyNDY3LCAwLjc4NTUwMSIsIFwKLSAgICAgICAgICAiMC4xOTc2ODksIDAuMzAwNTIsIDAuMzgyODcyLCAwLjQ4NTkzNywgMC41ODg5NjcsIDAuNjkxOTgzLCAwLjc5NTAxOSIsIFwKLSAgICAgICAgICAiMC4yMDg0NjYsIDAuMzExMzQ1LCAwLjM5MzY5NCwgMC40OTY3NiwgMC41OTk3ODgsIDAuNzAyOTA3LCAwLjgwNTg0IiwgXAotICAgICAgICAgICIwLjIxOTIyMywgMC4zMjIwNjcsIDAuNDA0NDAxLCAwLjUwNzQ3MywgMC42MTA1MDYsIDAuNzEzNTM5LCAwLjgxNjU3NCIsIFwKLSAgICAgICAgICAiMC4yMjk4MzksIDAuMzMyNjc3LCAwLjQxNDk3NywgMC41MTgwODQsIDAuNjIxMTE3LCAwLjcyNDI0NywgMC44MjcxOSIsIFwKLSAgICAgICAgICAiMC4yNDYzOSwgMC4zNDkyMjMsIDAuNDMxNTgxLCAwLjUzNDYyNywgMC42Mzc2NjEsIDAuNzQwNjk1LCAwLjg0MzczMiIsIFwKLSAgICAgICAgICAiMC4yNjAzMDgsIDAuMzYzMTQxLCAwLjQ0NTQ5MSwgMC41NDg1NjYsIDAuNjUxNTg5LCAwLjc1NDYzNywgMC44NTc2NDEiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDUxMzA5LCAwLjI2Mjg4OCwgMC40MzQzMiwgMC42NDk0MDEsIDAuODYzNjk0LCAxLjA3ODI5LCAxLjI5Mjc2IiwgXAotICAgICAgICAgICIwLjA1MTMwOSwgMC4yNjI5ODUsIDAuNDM0ODIzLCAwLjY0OTQ1NywgMC44NjM4NjQsIDEuMDc4MDUsIDEuMjkyNzIiLCBcCi0gICAgICAgICAgIjAuMDUxMjY5LCAwLjI2Mjk2NywgMC40MzQ1MjgsIDAuNjQ5NDU4LCAwLjg2Mzg0NiwgMS4wNzgwNCwgMS4yOTI3MyIsIFwKLSAgICAgICAgICAiMC4wNTEyODksIDAuMjYyODMyLCAwLjQzNDUwNSwgMC42NDk0NTIsIDAuODYzODMxLCAxLjA3ODA0LCAxLjI5Mjc1IiwgXAotICAgICAgICAgICIwLjA1MTMxMSwgMC4yNjM0MTksIDAuNDM0MzI1LCAwLjY0OTQzNiwgMC44NjM4NDEsIDEuMDc4MDQsIDEuMjkyNzEiLCBcCi0gICAgICAgICAgIjAuMDUxMjkyLCAwLjI2MzQxNiwgMC40MzQzNzMsIDAuNjQ5NDQsIDAuODYzODI5LCAxLjA3ODI2LCAxLjI5MjcyIiwgXAotICAgICAgICAgICIwLjA1MTMwNywgMC4yNjI5MzIsIDAuNDM0ODM1LCAwLjY0OTQ1NiwgMC44NjM4NDksIDEuMDc4MDQsIDEuMjkyNzEiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTUwNTExLCAwLjI1NDE3NCwgMC4zMzcxNDUsIDAuNDQwOTEzLCAwLjU0NDc0LCAwLjY0ODQxNywgMC43NTIyMDMiLCBcCi0gICAgICAgICAgIjAuMTU5OTkyLCAwLjI2MzY4NSwgMC4zNDY2NzcsIDAuNDUwNDU5LCAwLjU1NDE5OSwgMC42NTc5NzMsIDAuNzYxNzI4IiwgXAotICAgICAgICAgICIwLjE3MDM3NywgMC4yNzQwOTEsIDAuMzU3MTAxLCAwLjQ2MDg3LCAwLjU2NDYwOSwgMC42NjgzODEsIDAuNzcyMTQ3IiwgXAotICAgICAgICAgICIwLjE4MjI5NiwgMC4yODU5NTEsIDAuMzY4OTU2LCAwLjQ3Mjc0NCwgMC41NzY0OTIsIDAuNjgwMjM3LCAwLjc4NDAyMyIsIFwKLSAgICAgICAgICAiMC4xOTM4NjgsIDAuMjk3NTM0LCAwLjM4MDUyNiwgMC40ODQzLCAwLjU4ODA5OSwgMC42OTE4MDMsIDAuNzk1NTg4IiwgXAotICAgICAgICAgICIwLjIxMTEwNywgMC4zMTQ3ODYsIDAuMzk3Nzg4LCAwLjUwMTU3OCwgMC42MDUzMTksIDAuNzA5MDgyLCAwLjgxMjg3NyIsIFwKLSAgICAgICAgICAiMC4yMjQxOTEsIDAuMzI3ODU1LCAwLjQxMDg0LCAwLjUxNDYwOSwgMC42MTgzODEsIDAuNzIyMTMsIDAuODI1OTAxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1MDQ3OSwgMC4yNTgzODgsIDAuNDI2MTk0LCAwLjYzNzA4NCwgMC44NDczNjUsIDEuMDU3NzQsIDEuMjY4MTkiLCBcCi0gICAgICAgICAgIjAuMDUwNDc1LCAwLjI1ODM2NiwgMC40MjY2NzYsIDAuNjM3MDQ0LCAwLjg0NzMzNSwgMS4wNTc3NSwgMS4yNjgxOCIsIFwKLSAgICAgICAgICAiMC4wNTA0ODgsIDAuMjU4NDA2LCAwLjQyNjY1OCwgMC42MzcwNDUsIDAuODQ3NTM3LCAxLjA1Nzc0LCAxLjI2ODE2IiwgXAotICAgICAgICAgICIwLjA1MDQ4MiwgMC4yNTgzNDYsIDAuNDI2NjI4LCAwLjYzNzAzOSwgMC44NDczNDIsIDEuMDU3NzUsIDEuMjY4MTUiLCBcCi0gICAgICAgICAgIjAuMDUwNDg3LCAwLjI1ODM5NywgMC40MjYxOTIsIDAuNjM3MDQ3LCAwLjg0NzQ1MywgMS4wNTc2OSwgMS4yNjgxNCIsIFwKLSAgICAgICAgICAiMC4wNTA0ODksIDAuMjU4MzQyLCAwLjQyNjU5MywgMC42MzcwNDQsIDAuODQ3MzE5LCAxLjA1NzcsIDEuMjY4MTIiLCBcCi0gICAgICAgICAgIjAuMDUwNDgyLCAwLjI1ODEwOCwgMC40MjYyMDUsIDAuNjM3MDM3LCAwLjg0NzMyLCAxLjA1NzY3LCAxLjI2ODEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDS04iOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNTQ0MSwgMC4wMDU0OTUsIDAuMDA1NTAxLCAwLjAwNTUwNCwgMC4wMDU1MDYsIDAuMDA1NTA3LCAwLjAwNTUwOCIsIFwKLSAgICAgICAgICAiMC4wMDU0MjUsIDAuMDA1NDc5LCAwLjAwNTQ4NiwgMC4wMDU0ODgsIDAuMDA1NDksIDAuMDA1NDkxLCAwLjAwNTQ5MiIsIFwKLSAgICAgICAgICAiMC4wMDU0MTksIDAuMDA1NDc0LCAwLjAwNTQ4LCAwLjAwNTQ4MywgMC4wMDU0ODUsIDAuMDA1NDg2LCAwLjAwNTQ4NiIsIFwKLSAgICAgICAgICAiMC4wMDU0MTksIDAuMDA1NDczLCAwLjAwNTQ3OSwgMC4wMDU0ODMsIDAuMDA1NDg1LCAwLjAwNTQ4NSwgMC4wMDU0ODYiLCBcCi0gICAgICAgICAgIjAuMDA1NDE4LCAwLjAwNTQ3MiwgMC4wMDU0NzgsIDAuMDA1NDgyLCAwLjAwNTQ4NCwgMC4wMDU0ODUsIDAuMDA1NDg1IiwgXAotICAgICAgICAgICIwLjAwNTQyNSwgMC4wMDU0OCwgMC4wMDU0ODYsIDAuMDA1NDksIDAuMDA1NDkxLCAwLjAwNTQ5MiwgMC4wMDU0OTQiLCBcCi0gICAgICAgICAgIjAuMDA1NDQxLCAwLjAwNTQ5NywgMC4wMDU1MDQsIDAuMDA1NTA3LCAwLjAwNTUwOSwgMC4wMDU1MDksIDAuMDA1NTEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDU4MDUsIDAuMDA1ODU5LCAwLjAwNTg2NSwgMC4wMDU4NjksIDAuMDA1ODcsIDAuMDA1ODcxLCAwLjAwNTg3MiIsIFwKLSAgICAgICAgICAiMC4wMDU3OTIsIDAuMDA1ODQ2LCAwLjAwNTg1MywgMC4wMDU4NTUsIDAuMDA1ODU4LCAwLjAwNTg1OCwgMC4wMDU4NTkiLCBcCi0gICAgICAgICAgIjAuMDA1Nzk1LCAwLjAwNTg0OSwgMC4wMDU4NTUsIDAuMDA1ODU4LCAwLjAwNTg2MSwgMC4wMDU4NjEsIDAuMDA1ODYyIiwgXAotICAgICAgICAgICIwLjAwNTgsIDAuMDA1ODU0LCAwLjAwNTg2MSwgMC4wMDU4NjQsIDAuMDA1ODY2LCAwLjAwNTg2NiwgMC4wMDU4NjciLCBcCi0gICAgICAgICAgIjAuMDA1ODA5LCAwLjAwNTg2MywgMC4wMDU4NjksIDAuMDA1ODczLCAwLjAwNTg3NCwgMC4wMDU4NzUsIDAuMDA1ODc2IiwgXAotICAgICAgICAgICIwLjAwNTgyNiwgMC4wMDU4OCwgMC4wMDU4ODYsIDAuMDA1ODksIDAuMDA1ODkyLCAwLjAwNTg5MiwgMC4wMDU4OTMiLCBcCi0gICAgICAgICAgIjAuMDA1ODQyLCAwLjAwNTg5NSwgMC4wMDU5MDEsIDAuMDA1OTA1LCAwLjAwNTkwNywgMC4wMDU5MDcsIDAuMDA1OTA3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUk4iOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjcyLCAwLjAwNjc2NSwgMC4wMDY3NjYsIDAuMDA2NzYzLCAwLjAwNjc2MiwgMC4wMDY3NTksIDAuMDA2NzU0IiwgXAotICAgICAgICAgICIwLjAwNjcwOCwgMC4wMDY3NTQsIDAuMDA2NzUzLCAwLjAwNjc1MywgMC4wMDY3NTEsIDAuMDA2NzQ1LCAwLjAwNjc0MyIsIFwKLSAgICAgICAgICAiMC4wMDY3MDQsIDAuMDA2NzUsIDAuMDA2NzQ5LCAwLjAwNjc0OSwgMC4wMDY3NDcsIDAuMDA2NzQxLCAwLjAwNjc0IiwgXAotICAgICAgICAgICIwLjAwNjcwNSwgMC4wMDY3NTIsIDAuMDA2NzUsIDAuMDA2NzUsIDAuMDA2NzQ4LCAwLjAwNjc0MywgMC4wMDY3NDEiLCBcCi0gICAgICAgICAgIjAuMDA2NzEsIDAuMDA2NzU2LCAwLjAwNjc1OSwgMC4wMDY3NTYsIDAuMDA2NzU0LCAwLjAwNjc0NywgMC4wMDY3NDYiLCBcCi0gICAgICAgICAgIjAuMDA2NzE1LCAwLjAwNjc2MSwgMC4wMDY3NjQsIDAuMDA2NzYxLCAwLjAwNjc1OSwgMC4wMDY3NTIsIDAuMDA2NzUxIiwgXAotICAgICAgICAgICIwLjAwNjcyLCAwLjAwNjc2NiwgMC4wMDY3NjUsIDAuMDA2NzY1LCAwLjAwNjc2MywgMC4wMDY3NjEsIDAuMDA2NzU1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHNjYWxhcikgewotICAgICAgICB2YWx1ZXMoIjAiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1MywgMC4wMDUzNTQsIDAuMDA1MzY0LCAwLjAwNTM2NCwgMC4wMDUzNjUsIDAuMDA1MzY2LCAwLjAwNTM2NyIsIFwKLSAgICAgICAgICAiMC4wMDUyODMsIDAuMDA1MzM3LCAwLjAwNTM0NCwgMC4wMDUzNDksIDAuMDA1MzUyLCAwLjAwNTM0OSwgMC4wMDUzNDkiLCBcCi0gICAgICAgICAgIjAuMDA1Mjc0LCAwLjAwNTMyOCwgMC4wMDUzMzcsIDAuMDA1MzQxLCAwLjAwNTM0MywgMC4wMDUzNCwgMC4wMDUzNCIsIFwKLSAgICAgICAgICAiMC4wMDUyNjcsIDAuMDA1MzIyLCAwLjAwNTMzLCAwLjAwNTMzNCwgMC4wMDUzMzYsIDAuMDA1MzM0LCAwLjAwNTMzNCIsIFwKLSAgICAgICAgICAiMC4wMDUyNjMsIDAuMDA1MzE3LCAwLjAwNTMyNCwgMC4wMDUzMjcsIDAuMDA1MzI4LCAwLjAwNTMyOSwgMC4wMDUzMyIsIFwKLSAgICAgICAgICAiMC4wMDUyNTcsIDAuMDA1MzEyLCAwLjAwNTMyLCAwLjAwNTMyMywgMC4wMDUzMjUsIDAuMDA1MzI1LCAwLjAwNTMyNCIsIFwKLSAgICAgICAgICAiMC4wMDUyNTEsIDAuMDA1MzA3LCAwLjAwNTMxNywgMC4wMDUzMiwgMC4wMDUzMjMsIDAuMDA1MzIzLCAwLjAwNTMyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2MTI5LCAwLjAwNjE3OCwgMC4wMDYxODMsIDAuMDA2MTg2LCAwLjAwNjE4NywgMC4wMDYxODgsIDAuMDA2MTg4IiwgXAotICAgICAgICAgICIwLjAwNjExNCwgMC4wMDYxNjQsIDAuMDA2MTY5LCAwLjAwNjE3MSwgMC4wMDYxNzMsIDAuMDA2MTc0LCAwLjAwNjE3NCIsIFwKLSAgICAgICAgICAiMC4wMDYxMDgsIDAuMDA2MTU4LCAwLjAwNjE2MywgMC4wMDYxNjUsIDAuMDA2MTY2LCAwLjAwNjE2NywgMC4wMDYxNjgiLCBcCi0gICAgICAgICAgIjAuMDA2MTA1LCAwLjAwNjE1NSwgMC4wMDYxNiwgMC4wMDYxNjIsIDAuMDA2MTYzLCAwLjAwNjE2NSwgMC4wMDYxNjUiLCBcCi0gICAgICAgICAgIjAuMDA2MTA0LCAwLjAwNjE1NCwgMC4wMDYxNTksIDAuMDA2MTYyLCAwLjAwNjE2MywgMC4wMDYxNjQsIDAuMDA2MTY0IiwgXAotICAgICAgICAgICIwLjAwNjEwNiwgMC4wMDYxNTcsIDAuMDA2MTYyLCAwLjAwNjE2NCwgMC4wMDYxNjUsIDAuMDA2MTY2LCAwLjAwNjE2NyIsIFwKLSAgICAgICAgICAiMC4wMDYxMSwgMC4wMDYxNjIsIDAuMDA2MTY4LCAwLjAwNjE3MSwgMC4wMDYxNzIsIDAuMDA2MTczLCAwLjAwNjE3NCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUk4pICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY2NzM2NDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2NjcxMDM7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjY3MzY0OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDUwOSwgMC4wMDA0ODMsIDAuMDAwNDc5LCAwLjAwMDQ4MiwgMC4wMDA0ODksIDAuMDAwNTEsIDAuMDAwNTMzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyNTYzLCAwLjAwMjU0NiwgMC4wMDI1NCwgMC4wMDI1NDMsIDAuMDAyNTUzLCAwLjAwMjU3NCwgMC4wMDI1OTMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUk4iOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFEJiFTRSYhU0kmU04iOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1NFX0VRXzBfQU5fU0lfRVFfMF9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgZmFsbF9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMjA2NDk0LCAwLjIxNjQxLCAwLjIyODMyNSwgMC4yMzg3NjEsIDAuMjQ3MzI2LCAwLjI2MDQ0NywgMC4yNjk1MTQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0tOIjsKLSAgICAgIHRpbWluZ190eXBlIDogcmVjb3ZlcnlfZmFsbGluZzsKLSAgICAgIHdoZW4gOiAiU04iOwotICAgICAgc2RmX2NvbmQgOiAiU04gPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQocmVjb3ZlcnlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQzNzUsIDAuMDMyNSwgMC4wMiwgMC4wMDc1LCAtMC4wMDUsIC0wLjAxNSwgLTAuMDIzNzUiLCBcCi0gICAgICAgICAgIjAuMDU1LCAwLjA0Mzc1LCAwLjAzMTI1LCAwLjAxODc1LCAwLjAwNjI1LCAtMC4wMDM3NSwgLTAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4wNjc1LCAwLjA1NjI1LCAwLjA0Mzc1LCAwLjAzMTI1LCAwLjAxODc1LCAwLjAwODc1LCAwIiwgXAotICAgICAgICAgICIwLjA4LCAwLjA2ODc1LCAwLjA1NjI1LCAwLjA0Mzc1LCAwLjAzMTI1LCAwLjAxNSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiMC4wODYyNSwgMC4wNzUsIDAuMDYyNSwgMC4wNSwgMC4wNDM3NSwgMC4wMjc1LCAwLjAxODc1IiwgXAotICAgICAgICAgICIwLjEwMjUsIDAuMDkxMjUsIDAuMDc4NzUsIDAuMDY2MjUsIDAuMDUzNzUsIDAuMDM3NSwgMC4wMjg3NSIsIFwKLSAgICAgICAgICAiMC4xMTEyNSwgMC4xLCAwLjA4NzUsIDAuMDc1LCAwLjA2MjUsIDAuMDUyNSwgMC4wMzc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIHRpbWluZ190eXBlIDogcmVjb3ZlcnlfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRCYhU0UmIVNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9TRV9FUV8wX0FOX1NJX0VRXzAgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQocmVjb3ZlcnlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDgxMjUsIDAuMDkyNSwgMC4wOTg3NSwgMC4xMTEyNSwgMC4xMTc1LCAwLjEzMzc1LCAwLjE0ODc1IiwgXAotICAgICAgICAgICIwLjA3LCAwLjA4MTI1LCAwLjA5Mzc1LCAwLjEsIDAuMTEyNSwgMC4xMjI1LCAwLjEzNzUiLCBcCi0gICAgICAgICAgIjAuMDYzNzUsIDAuMDc1LCAwLjA4MTI1LCAwLjA5Mzc1LCAwLjEsIDAuMTE2MjUsIDAuMTMxMjUiLCBcCi0gICAgICAgICAgIjAuMDU3NSwgMC4wNjg3NSwgMC4wNzUsIDAuMDg3NSwgMC4wOTM3NSwgMC4xMSwgMC4xMjUiLCBcCi0gICAgICAgICAgIjAuMDUxMjUsIDAuMDYyNSwgMC4wNzUsIDAuMDgxMjUsIDAuMDg3NSwgMC4xMDM3NSwgMC4xMTg3NSIsIFwKLSAgICAgICAgICAiMC4wNDc1LCAwLjA1ODc1LCAwLjA2NSwgMC4wNzc1LCAwLjA4Mzc1LCAwLjEsIDAuMTA4NzUiLCBcCi0gICAgICAgICAgIjAuMDQ1LCAwLjA1LCAwLjA2MjUsIDAuMDY4NzUsIDAuMDgxMjUsIDAuMDkxMjUsIDAuMTA2MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0tOIjsKLSAgICAgIHRpbWluZ190eXBlIDogcmVtb3ZhbF9mYWxsaW5nOwotICAgICAgd2hlbiA6ICJTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJTTiA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChyZW1vdmFsX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLCAwLjAxMTI1LCAwLjAyMzc1LCAwLjAzNjI1LCAwLjA0MjUsIDAuMDU4NzUsIDAuMDY3NSIsIFwKLSAgICAgICAgICAiLTAuMDExMjUsIDAsIDAuMDEyNSwgMC4wMjUsIDAuMDMxMjUsIDAuMDQ3NSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxMjUsIDAsIDAuMDEyNSwgMC4wMTg3NSwgMC4wMzUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMjUsIC0wLjAxMjUsIDAsIDAuMDEyNSwgMC4wMjI1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLCAwLjAxLCAwLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDUyNSwgLTAuMDQ3NSwgLTAuMDM1LCAtMC4wMjI1LCAtMC4wMSwgMCwgMC4wMDg3NSIsIFwKLSAgICAgICAgICAiLTAuMDY3NSwgLTAuMDU2MjUsIC0wLjA0Mzc1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMDg3NSwgMCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oU0UpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTE4OTM4OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTE4ODI3OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTE4OTM4OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNDk3NywgMC4wMDQ5NTYsIDAuMDA0OTU5LCAwLjAwNDk1OSwgMC4wMDQ5NzEsIDAuMDA0OTkyLCAwLjAwNTAxNCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNjc0NSwgMC4wMDY3MDksIDAuMDA2NzA5LCAwLjAwNjcwNSwgMC4wMDY3MTIsIDAuMDA2NzQ4LCAwLjAwNjc4NCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDS04iOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX2ZhbGxpbmc7Ci0gICAgICB3aGVuIDogIlJOJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIlJOX0VRXzFfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMTI1LCAtMC4wMDEyNSwgMC4wMDUsIDAuMDE3NSwgMC4wMjM3NSwgMC4wMzM3NSwgMC4wNDI1IiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDEyNSwgMCwgMC4wMDYyNSwgMC4wMTI1LCAwLjAyMjUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMjUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLjAwNjI1LCAwLjAxNjI1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDM3NSwgLTAuMDI1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMC4wMDM3NSwgMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMDg3NSwgMCIsIFwKLSAgICAgICAgICAiLTAuMDY1LCAtMC4wNiwgLTAuMDQ3NSwgLTAuMDQxMjUsIC0wLjAzNSwgLTAuMDI1LCAtMC4wMTYyNSIsIFwKLSAgICAgICAgICAiLTAuMDczNzUsIC0wLjA2ODc1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wMzM3NSwgLTAuMDI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDMxMjUsIC0wLjAyLCAtMC4wMTM3NSwgLTAuMDAxMjUsIDAuMDA1LCAwLjAxNSwgMC4wMjM3NSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAuMDAzNzUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNDM3NSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAwODc1LCAwIiwgXAotICAgICAgICAgICItMC4wNjEyNSwgLTAuMDU2MjUsIC0wLjA0Mzc1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMTUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wNjc1LCAtMC4wNjI1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjAzMTI1LCAtMC4wMjEyNSwgLTAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDc3NSwgLTAuMDcyNSwgLTAuMDYsIC0wLjA1Mzc1LCAtMC4wNDEyNSwgLTAuMDMxMjUsIC0wLjAyMjUiLCBcCi0gICAgICAgICAgIi0wLjA4NjI1LCAtMC4wODEyNSwgLTAuMDY4NzUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDQsIC0wLjAzMTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX2ZhbGxpbmc7Ci0gICAgICB3aGVuIDogIlJOJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIlJOX0VRXzFfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNDM3NSwgMC4xMzI1LCAwLjEyLCAwLjEwNzUsIDAuMTAxMjUsIDAuMDkxMjUsIDAuMDgyNSIsIFwKLSAgICAgICAgICAiMC4xNTUsIDAuMTQzNzUsIDAuMTMxMjUsIDAuMTE4NzUsIDAuMTEyNSwgMC4xMDI1LCAwLjA5Mzc1IiwgXAotICAgICAgICAgICIwLjE2NzUsIDAuMTU2MjUsIDAuMTQzNzUsIDAuMTMxMjUsIDAuMTI1LCAwLjEwODc1LCAwLjEwNjI1IiwgXAotICAgICAgICAgICIwLjE3Mzc1LCAwLjE2MjUsIDAuMTUsIDAuMTM3NSwgMC4xMzEyNSwgMC4xMjEyNSwgMC4xMTI1IiwgXAotICAgICAgICAgICIwLjE4NjI1LCAwLjE3NSwgMC4xNTYyNSwgMC4xNSwgMC4xMzc1LCAwLjEyNzUsIDAuMTI1IiwgXAotICAgICAgICAgICIwLjE5NjI1LCAwLjE4NSwgMC4xNzI1LCAwLjE2LCAwLjE1Mzc1LCAwLjE0Mzc1LCAwLjEzNSIsIFwKLSAgICAgICAgICAiMC4yMDUsIDAuMTkzNzUsIDAuMTgxMjUsIDAuMTY4NzUsIDAuMTYyNSwgMC4xNDYyNSwgMC4xNDM3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEyNSwgMC4xMTM3NSwgMC4xMDEyNSwgMC4wODg3NSwgMC4wODI1LCAwLjA3MjUsIDAuMDYzNzUiLCBcCi0gICAgICAgICAgIjAuMTM2MjUsIDAuMTI1LCAwLjExMjUsIDAuMSwgMC4wODc1LCAwLjA3NzUsIDAuMDc1IiwgXAotICAgICAgICAgICIwLjE0MjUsIDAuMTM3NSwgMC4xMTg3NSwgMC4xMTI1LCAwLjEsIDAuMDksIDAuMDgxMjUiLCBcCi0gICAgICAgICAgIjAuMTU1LCAwLjE0Mzc1LCAwLjEzMTI1LCAwLjExODc1LCAwLjExMjUsIDAuMTAyNSwgMC4wOTM3NSIsIFwKLSAgICAgICAgICAiMC4xNjc1LCAwLjE1NjI1LCAwLjE0Mzc1LCAwLjEzMTI1LCAwLjEyNSwgMC4xMTUsIDAuMTA2MjUiLCBcCi0gICAgICAgICAgIjAuMTgzNzUsIDAuMTcyNSwgMC4xNiwgMC4xNDc1LCAwLjE0MTI1LCAwLjEzMTI1LCAwLjEyMjUiLCBcCi0gICAgICAgICAgIjAuMTk4NzUsIDAuMTg3NSwgMC4xNzUsIDAuMTYyNSwgMC4xNTYyNSwgMC4xNDYyNSwgMC4xMzc1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTSSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjY0MDEyOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDY2MjQ3NDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2NjQwMTI7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzMTgzLCAwLjAwMzE2NywgMC4wMDMxNTgsIDAuMDAzMTU0LCAwLjAwMzE1MiwgMC4wMDMxNSwgMC4wMDMxNTUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDUyNzgsIDAuMDA1MjY5LCAwLjAwNTI2NCwgMC4wMDUyNiwgMC4wMDUyNiwgMC4wMDUyNTksIDAuMDA1MjYzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfZmFsbGluZzsKLSAgICAgIHdoZW4gOiAiUk4mU0UmU04iOwotICAgICAgc2RmX2NvbmQgOiAiUk5fRVFfMV9BTl9TRV9FUV8xX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDE4NzUsIC0wLjAwNzUsIC0wLjAwMTI1LCAwLjAxMTI1LCAwLjAxNzUsIDAuMDI3NSwgMC4wMzYyNSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxODc1LCAtMC4wMDYyNSwgMCwgMC4wMTI1LCAwLjAyMjUsIDAuMDI1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDMxMjUsIC0wLjAxODc1LCAtMC4wMDYyNSwgMCwgMC4wMSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDAyNSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAxODc1LCAtMC4wMDg3NSwgMCIsIFwKLSAgICAgICAgICAiLTAuMDcxMjUsIC0wLjA2LCAtMC4wNTM3NSwgLTAuMDQxMjUsIC0wLjAzNSwgLTAuMDI1LCAtMC4wMTYyNSIsIFwKLSAgICAgICAgICAiLTAuMDgsIC0wLjA2ODc1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjA0LCAtMC4wMzEyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjA2MjUsIC0wLjA1NzUsIC0wLjA1MTI1LCAtMC4wNDUsIC0wLjAzODc1LCAtMC4wMzUsIC0wLjAzMjUiLCBcCi0gICAgICAgICAgIi0wLjA2NzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjA0NjI1LCAtMC4wNDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDgsIC0wLjA3NSwgLTAuMDY4NzUsIC0wLjA2MjUsIC0wLjA2MjUsIC0wLjA1MjUsIC0wLjA1IiwgXAotICAgICAgICAgICItMC4wOTI1LCAtMC4wODEyNSwgLTAuMDc1LCAtMC4wNzUsIC0wLjA2ODc1LCAtMC4wNjUsIC0wLjA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA5ODc1LCAtMC4wOTM3NSwgLTAuMDg3NSwgLTAuMDgxMjUsIC0wLjA4MTI1LCAtMC4wNzEyNSwgLTAuMDY4NzUiLCBcCi0gICAgICAgICAgIi0wLjExNSwgLTAuMTAzNzUsIC0wLjEwMzc1LCAtMC4wOTc1LCAtMC4wOTEyNSwgLTAuMDg3NSwgLTAuMDg1IiwgXAotICAgICAgICAgICItMC4xMjM3NSwgLTAuMTE4NzUsIC0wLjExMjUsIC0wLjEwNjI1LCAtMC4xMDYyNSwgLTAuMDk2MjUsIC0wLjA5Mzc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX2ZhbGxpbmc7Ci0gICAgICB3aGVuIDogIlJOJlNFJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIlJOX0VRXzFfQU5fU0VfRVFfMV9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwNjI1LCAwLjA5NSwgMC4wODI1LCAwLjA3LCAwLjA1NzUsIDAuMDQ3NSwgMC4wMzg3NSIsIFwKLSAgICAgICAgICAiMC4xMTEyNSwgMC4xLCAwLjA4NzUsIDAuMDc1LCAwLjA2ODc1LCAwLjA1ODc1LCAwLjA1IiwgXAotICAgICAgICAgICIwLjEyMzc1LCAwLjExMjUsIDAuMSwgMC4wODc1LCAwLjA4MTI1LCAwLjA2NSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiMC4xMzYyNSwgMC4xMjUsIDAuMTEyNSwgMC4xLCAwLjA5Mzc1LCAwLjA3NzUsIDAuMDY4NzUiLCBcCi0gICAgICAgICAgIjAuMTQyNSwgMC4xMzc1LCAwLjExODc1LCAwLjExMjUsIDAuMSwgMC4wOSwgMC4wODEyNSIsIFwKLSAgICAgICAgICAiMC4xNTg3NSwgMC4xNDc1LCAwLjEzNSwgMC4xMjg3NSwgMC4xMTYyNSwgMC4xMDYyNSwgMC4wOTc1IiwgXAotICAgICAgICAgICIwLjE3Mzc1LCAwLjE2MjUsIDAuMTUsIDAuMTM3NSwgMC4xMzEyNSwgMC4xMTUsIDAuMTA2MjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMzEyNSwgMC4xMiwgMC4xMDc1LCAwLjA5NSwgMC4wODg3NSwgMC4wNzg3NSwgMC4wNyIsIFwKLSAgICAgICAgICAiMC4xNDI1LCAwLjEzMTI1LCAwLjExODc1LCAwLjEwNjI1LCAwLjA5Mzc1LCAwLjA4Mzc1LCAwLjA4MTI1IiwgXAotICAgICAgICAgICIwLjE0ODc1LCAwLjEzNzUsIDAuMTI1LCAwLjExMjUsIDAuMTA2MjUsIDAuMDk2MjUsIDAuMDg3NSIsIFwKLSAgICAgICAgICAiMC4xNjEyNSwgMC4xNSwgMC4xMzc1LCAwLjEyNSwgMC4xMTg3NSwgMC4xMDI1LCAwLjEiLCBcCi0gICAgICAgICAgIjAuMTY3NSwgMC4xNTYyNSwgMC4xNDM3NSwgMC4xMzEyNSwgMC4xMjUsIDAuMTE1LCAwLjEwNjI1IiwgXAotICAgICAgICAgICIwLjE4Mzc1LCAwLjE3MjUsIDAuMTYsIDAuMTQ3NSwgMC4xNDEyNSwgMC4xMzEyNSwgMC4xMjI1IiwgXAotICAgICAgICAgICIwLjE5MjUsIDAuMTg3NSwgMC4xNjg3NSwgMC4xNjI1LCAwLjE1LCAwLjE0LCAwLjEzMTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTTikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxODA1NDM7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxODA1NDM7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxODA0Nzg7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNDUzLCAwLjAwMDQ1MiwgMC4wMDA0NTMsIDAuMDAwNDUyLCAwLjAwMDQ1MiwgMC4wMDA0NTIsIDAuMDAwNDUyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNDU0LCAwLjAwMDQ1NCwgMC4wMDA0NTQsIDAuMDAwNDU0LCAwLjAwMDQ1NCwgMC4wMDA0NTQsIDAuMDAwNDU0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRCYhUk4mIVNFJiFTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fUk5fRVFfMF9BTl9TRV9FUV8wX0FOX1NJX0VRXzAgPT0gMSdiMSI7Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4xNTA0NjQsIDAuMTU5OTY2LCAwLjE3MDM2MiwgMC4xODIyOTYsIDAuMTkzODY4LCAwLjIxMTEwNywgMC4yMjQxOTEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0tOIjsKLSAgICAgIHRpbWluZ190eXBlIDogcmVjb3ZlcnlfZmFsbGluZzsKLSAgICAgIHdoZW4gOiAiUk4iOwotICAgICAgc2RmX2NvbmQgOiAiUk4gPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQocmVjb3ZlcnlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQzNzUsIDAuMDMyNSwgMC4wMiwgMC4wMDc1LCAtMC4wMDUsIC0wLjAxNSwgLTAuMDIzNzUiLCBcCi0gICAgICAgICAgIjAuMDQ4NzUsIDAuMDQzNzUsIDAuMDI1LCAwLjAxODc1LCAwLjAwNjI1LCAtMC4wMDM3NSwgLTAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4wNjEyNSwgMC4wNSwgMC4wMzc1LCAwLjAyNSwgMC4wMTg3NSwgMC4wMDI1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiMC4wNzM3NSwgMC4wNjI1LCAwLjA1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDE1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICIwLjA4NjI1LCAwLjA3NSwgMC4wNjI1LCAwLjA1LCAwLjAzNzUsIDAuMDI3NSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4xMDI1LCAwLjA5MTI1LCAwLjA3ODc1LCAwLjA2NjI1LCAwLjA1Mzc1LCAwLjA0Mzc1LCAwLjAzNSIsIFwKLSAgICAgICAgICAiMC4xMTc1LCAwLjEsIDAuMDg3NSwgMC4wODEyNSwgMC4wNjg3NSwgMC4wNTg3NSwgMC4wNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDS04iOwotICAgICAgdGltaW5nX3R5cGUgOiByZW1vdmFsX2ZhbGxpbmc7Ci0gICAgICB3aGVuIDogIlJOIjsKLSAgICAgIHNkZl9jb25kIDogIlJOID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHJlbW92YWxfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEyNSwgMC4wMTc1LCAwLjAzLCAwLjA0MjUsIDAuMDQ4NzUsIDAuMDY1LCAwLjA3Mzc1IiwgXAotICAgICAgICAgICIwLjAwMTI1LCAwLjAxMjUsIDAuMDI1LCAwLjAzMTI1LCAwLjA0Mzc1LCAwLjA1Mzc1LCAwLjA2MjUiLCBcCi0gICAgICAgICAgIi0wLjAxMTI1LCAwLCAwLjAxMjUsIDAuMDI1LCAwLjAzMTI1LCAwLjA0MTI1LCAwLjA1IiwgXAotICAgICAgICAgICItMC4wMTc1LCAtMC4wMDYyNSwgMC4wMDYyNSwgMC4wMTI1LCAwLjAyNSwgMC4wMzUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAuMDA2MjUsIDAuMDEyNSwgMC4wMjg3NSwgMC4wMzc1IiwgXAotICAgICAgICAgICItMC4wNCwgLTAuMDI4NzUsIC0wLjAxNjI1LCAtMC4wMDM3NSwgMC4wMDI1LCAwLjAxMjUsIDAuMDIxMjUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLjAwMzc1LCAwLjAxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IFNERkZOU1JYTCAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKFNERkZOU1JYTCkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjQ0NjI2MTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBmZiAoTjM1LFFCSU5UKSB7Ci0gICAgbmV4dF9zdGF0ZSA6ICIoKFNFIFNJKSArICghU0UgRCkpIjsKLSAgICBjbG9ja2VkX29uIDogIighQ0tOKSI7Ci0gICAgY2xlYXIgOiAiKCFSTikiOwotICAgIHByZXNldCA6ICIoIVNOKSI7Ci0gICAgY2xlYXJfcHJlc2V0X3ZhcjEgOiBIOwotICAgIGNsZWFyX3ByZXNldF92YXIyIDogTDsKLSAgfQotICBwaW4oQ0tOKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2MTg5NDg7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjE4NTAzOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDYxODk0ODsKLSAgICBjbG9jayA6IHRydWU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA2MzM3LCAwLjAwNjMxLCAwLjAwNjMwMywgMC4wMDYzMSwgMC4wMDYzMzMsIDAuMDA2Mzc0LCAwLjAwNjQxMSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzY2NCwgMC4wMDM2NDEsIDAuMDAzNjMsIDAuMDAzNjMzLCAwLjAwMzY0MSwgMC4wMDM2NjEsIDAuMDAzNjg1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQmUk4mIVNFJiFTSSZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fUk5fRVFfMV9BTl9TRV9FUV8wX0FOX1NJX0VRXzBfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjEwOTkyNCwgMC4xMjAyNjcsIDAuMTMzMDU3LCAwLjE0NDc2NCwgMC4xNTU1NzEsIDAuMTcwMDQ0LCAwLjE4MTIyMiIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMTkxNDA1LCAwLjIwMTIzOCwgMC4yMTMyODEsIDAuMjI0MzQxLCAwLjIzMzc1OSwgMC4yNDcxNTgsIDAuMjU2OTIxIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihEKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA1OTYzMjc7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNTk0OTY2OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDU5NjMyNzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDM0NjcsIDAuMDAzNDUxLCAwLjAwMzQ0MiwgMC4wMDM0MzYsIDAuMDAzNDMzLCAwLjAwMzQzMiwgMC4wMDM0MzYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDQ3OTcsIDAuMDA0Nzg3LCAwLjAwNDc4MSwgMC4wMDQ3NzcsIDAuMDA0Nzc2LCAwLjAwNDc3NywgMC4wMDQ3OCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDS04iOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX2ZhbGxpbmc7Ci0gICAgICB3aGVuIDogIlJOJiFTRSZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJSTl9FUV8xX0FOX1NFX0VRXzBfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMTg3NSwgLTAuMDEzNzUsIC0wLjAwMTI1LCAwLjAxMTI1LCAwLjAxNzUsIDAuMDI3NSwgMC4wMzYyNSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAxODc1LCAtMC4wMTI1LCAwLCAwLjAwNjI1LCAwLjAxNjI1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDMxMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAwLCAwLjAxLCAwLjAxODc1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDQzNzUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDAyNSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDYxMjUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDA4NzUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wNzc1LCAtMC4wNjYyNSwgLTAuMDUzNzUsIC0wLjA0NzUsIC0wLjAzNSwgLTAuMDI1LCAtMC4wMTYyNSIsIFwKLSAgICAgICAgICAiLTAuMDg2MjUsIC0wLjA4MTI1LCAtMC4wNjg3NSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNCwgLTAuMDMxMjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wNjI1LCAtMC4wNTEyNSwgLTAuMDQ1LCAtMC4wNDUsIC0wLjAzODc1LCAtMC4wMzUsIC0wLjAyNjI1IiwgXAotICAgICAgICAgICItMC4wNjc1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wNCwgLTAuMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDgsIC0wLjA3NSwgLTAuMDY4NzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNTI1LCAtMC4wNDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDg2MjUsIC0wLjA4MTI1LCAtMC4wNzUsIC0wLjA2ODc1LCAtMC4wNjg3NSwgLTAuMDU4NzUsIC0wLjA1NjI1IiwgXAotICAgICAgICAgICItMC4wOTg3NSwgLTAuMDkzNzUsIC0wLjA4NzUsIC0wLjA4MTI1LCAtMC4wNzUsIC0wLjA3MTI1LCAtMC4wNjI1IiwgXAotICAgICAgICAgICItMC4xMTUsIC0wLjEwMzc1LCAtMC4wOTc1LCAtMC4wOTEyNSwgLTAuMDkxMjUsIC0wLjA4MTI1LCAtMC4wNzg3NSIsIFwKLSAgICAgICAgICAiLTAuMTIzNzUsIC0wLjExODc1LCAtMC4xMTI1LCAtMC4xMDYyNSwgLTAuMSwgLTAuMDk2MjUsIC0wLjA4NzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0tOIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfZmFsbGluZzsKLSAgICAgIHdoZW4gOiAiUk4mIVNFJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIlJOX0VRXzFfQU5fU0VfRVFfMF9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5Mzc1LCAwLjA4MjUsIDAuMDcsIDAuMDU3NSwgMC4wNTEyNSwgMC4wMzUsIDAuMDI2MjUiLCBcCi0gICAgICAgICAgIjAuMTA1LCAwLjA5Mzc1LCAwLjA4MTI1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDQ2MjUsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiMC4xMTc1LCAwLjEwNjI1LCAwLjA5Mzc1LCAwLjA4MTI1LCAwLjA2ODc1LCAwLjA1ODc1LCAwLjA1IiwgXAotICAgICAgICAgICIwLjEyMzc1LCAwLjExMjUsIDAuMSwgMC4wOTM3NSwgMC4wODEyNSwgMC4wNzEyNSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiMC4xMzYyNSwgMC4xMjUsIDAuMTEyNSwgMC4xLCAwLjA5Mzc1LCAwLjA3NzUsIDAuMDY4NzUiLCBcCi0gICAgICAgICAgIjAuMTUyNSwgMC4xNDEyNSwgMC4xMjg3NSwgMC4xMTYyNSwgMC4xMSwgMC4wOTM3NSwgMC4wODUiLCBcCi0gICAgICAgICAgIjAuMTY3NSwgMC4xNTYyNSwgMC4xNDM3NSwgMC4xMzEyNSwgMC4xMTg3NSwgMC4xMDg3NSwgMC4xIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTE4NzUsIDAuMTA3NSwgMC4wOTUsIDAuMDgyNSwgMC4wNzYyNSwgMC4wNjYyNSwgMC4wNTc1IiwgXAotICAgICAgICAgICIwLjEzLCAwLjExODc1LCAwLjEwNjI1LCAwLjA5Mzc1LCAwLjA4NzUsIDAuMDc3NSwgMC4wNjg3NSIsIFwKLSAgICAgICAgICAiMC4xMzYyNSwgMC4xMjUsIDAuMTEyNSwgMC4xLCAwLjA5Mzc1LCAwLjA4Mzc1LCAwLjA3NSIsIFwKLSAgICAgICAgICAiMC4xNDg3NSwgMC4xMzc1LCAwLjEyNSwgMC4xMTI1LCAwLjEwNjI1LCAwLjA5NjI1LCAwLjA4NzUiLCBcCi0gICAgICAgICAgIjAuMTU1LCAwLjE0Mzc1LCAwLjEzMTI1LCAwLjEyNSwgMC4xMTI1LCAwLjEwMjUsIDAuMSIsIFwKLSAgICAgICAgICAiMC4xNzEyNSwgMC4xNiwgMC4xNDc1LCAwLjEzNSwgMC4xMjg3NSwgMC4xMTg3NSwgMC4xMSIsIFwKLSAgICAgICAgICAiMC4xOCwgMC4xNjg3NSwgMC4xNTYyNSwgMC4xNSwgMC4xMzc1LCAwLjEyNzUsIDAuMTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihRKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMTQ4MTc3OwotICAgIGZ1bmN0aW9uIDogIk4zNSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0tOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5vbl91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogZmFsbGluZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMDAzNjEsIDAuMjE0NDY2LCAwLjM0MTU1MSwgMC41NTMzMTksIDAuNzY1MjYyLCAxLjI1OTE4LCAxLjU0MjAxIiwgXAotICAgICAgICAgICIwLjIxMDI4NywgMC4yMjQzODgsIDAuMzUxNDc3LCAwLjU2MzI0NiwgMC43NzUxOSwgMS4yNjkwMSwgMS41NTEzNyIsIFwKLSAgICAgICAgICAiMC4yMjI0NDYsIDAuMjM2NTQxLCAwLjM2MzYzNCwgMC41NzU0MDMsIDAuNzg3MzQ0LCAxLjI4MTEzLCAxLjU2MzYxIiwgXAotICAgICAgICAgICIwLjIzMzQ0NiwgMC4yNDc1NDIsIDAuMzc0NjMyLCAwLjU4NjM5OCwgMC43OTgzMzUsIDEuMjkyMTUsIDEuNTc0NTUiLCBcCi0gICAgICAgICAgIjAuMjQzMDg2LCAwLjI1NzE3OSwgMC4zODQyNzIsIDAuNTk2MDM5LCAwLjgwNzk3NiwgMS4zMDE3OCwgMS41ODQ0MyIsIFwKLSAgICAgICAgICAiMC4yNTYxMzMsIDAuMjcwMjg0LCAwLjM5NzQ0MiwgMC42MDkxMzYsIDAuODIxMDMyLCAxLjMxNTMyLCAxLjU5OTAzIiwgXAotICAgICAgICAgICIwLjI2NjY5OSwgMC4yODA4NTIsIDAuNDA3OTY3LCAwLjYxOTY3LCAwLjgzMTYsIDEuMzI2ODIsIDEuNjA5NTIiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTU0NzQ1LCAwLjE4MzMzNiwgMC40NDI1NDEsIDAuODc2Nzg2LCAxLjMxMTQzLCAyLjMyNTM2LCAyLjkwMzgxIiwgXAotICAgICAgICAgICIwLjE1NDc0NSwgMC4xODMzMywgMC40NDI1NDEsIDAuODc2NzkyLCAxLjMxMTQ2LCAyLjMyNDg3LCAyLjkwNDE5IiwgXAotICAgICAgICAgICIwLjE1NDc1LCAwLjE4MzMyNiwgMC40NDI1NDEsIDAuODc2NzkyLCAxLjMxMTQzLCAyLjMyNDkyLCAyLjkwNDc4IiwgXAotICAgICAgICAgICIwLjE1NDc1NCwgMC4xODMzMjYsIDAuNDQyNTM0LCAwLjg3Njc5NSwgMS4zMTEzNSwgMi4zMjUyNiwgMi45MDU0OCIsIFwKLSAgICAgICAgICAiMC4xNTQ3NTIsIDAuMTgzMzIyLCAwLjQ0MjU0MSwgMC44NzY3OTQsIDEuMzExMzYsIDIuMzI2MiwgMi45MDUyNSIsIFwKLSAgICAgICAgICAiMC4xNTQ3MzcsIDAuMTgzMzU2LCAwLjQ0MzcwOCwgMC44Nzk2NjMsIDEuMzEzNDMsIDIuMzI4MTksIDIuOTE0MTciLCBcCi0gICAgICAgICAgIjAuMTU0NzQxLCAwLjE4MzM1OCwgMC40NDM2NjEsIDAuODc5NTkxLCAxLjMxMzUxLCAyLjMzMjEyLCAyLjkxMzY4Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE4MjA5NywgMC4xOTU4NzUsIDAuMzIwNjU1LCAwLjUyNzg5MSwgMC43MzU3OTUsIDEuMjIwMjgsIDEuNDk3MDEiLCBcCi0gICAgICAgICAgIjAuMTkxODksIDAuMjA1ODY1LCAwLjMzMDQwOSwgMC41Mzc2OTcsIDAuNzQ1Nzk3LCAxLjIzMDA4LCAxLjUwNTY1IiwgXAotICAgICAgICAgICIwLjIwMzk3MSwgMC4yMTc4NDEsIDAuMzQyNDg0LCAwLjU0OTc5MSwgMC43NTcyOTgsIDEuMjQyMTksIDEuNTE4OTMiLCBcCi0gICAgICAgICAgIjAuMjE0OTksIDAuMjI4ODUzLCAwLjM1MzUxMiwgMC41NjA3OSwgMC43Njg4OTcsIDEuMjUzMTksIDEuNTI4NiIsIFwKLSAgICAgICAgICAiMC4yMjQ0MTEsIDAuMjM4MTgxLCAwLjM2MjkzOSwgMC41NzAyMDYsIDAuNzc4MzU5LCAxLjI2MjYsIDEuNTM4NSIsIFwKLSAgICAgICAgICAiMC4yMzc4MzEsIDAuMjUxNjEzLCAwLjM3NjQyLCAwLjU4MzYxOSwgMC43OTE3NzUsIDEuMjc2MDMsIDEuNTUyOSIsIFwKLSAgICAgICAgICAiMC4yNDgzNDgsIDAuMjYyMjgyLCAwLjM4Njg2OSwgMC41OTQzMTEsIDAuODAyMjQ5LCAxLjI4NjYyLCAxLjU2MzM3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE0ODU2OSwgMC4xNzU3ODksIDAuNDI0MzU0LCAwLjg0MDYwNywgMS4yNTg1OCwgMi4yMzI0NiwgMi43ODg0MSIsIFwKLSAgICAgICAgICAiMC4xNDg1ODYsIDAuMTc2MDY0LCAwLjQyNDI1NCwgMC44NDAwNTMsIDEuMjU5MDUsIDIuMjMyNCwgMi43ODAxIiwgXAotICAgICAgICAgICIwLjE0ODU0MSwgMC4xNzU3MzEsIDAuNDI0Mjk5LCAwLjg0MDc0OCwgMS4yNTYxMSwgMi4yMzIzNiwgMi43ODg0NyIsIFwKLSAgICAgICAgICAiMC4xNDg1ODYsIDAuMTc1Nzc2LCAwLjQyNDI0NiwgMC44Mzk2NzYsIDEuMjU5MDYsIDIuMjMyNDIsIDIuNzgwNjIiLCBcCi0gICAgICAgICAgIjAuMTQ4NTc5LCAwLjE3NTczOCwgMC40MjQyMywgMC44NDA2ODMsIDEuMjU2NTEsIDIuMjMyMzUsIDIuNzgzNzEiLCBcCi0gICAgICAgICAgIjAuMTQ4NTc1LCAwLjE3NTg2LCAwLjQyNDM5OCwgMC44NDAwOTgsIDEuMjU2MjMsIDIuMjMyNDQsIDIuNzgyMjEiLCBcCi0gICAgICAgICAgIjAuMTQ4NjI5LCAwLjE3NTY5NSwgMC40MjQyNjgsIDAuODQxNzY4LCAxLjI1OTA1LCAyLjIzMjU4LCAyLjc4ODkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUk4iOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGNsZWFyOwotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMjg5MzYsIDAuMjQyNzI1LCAwLjM2NzMyMiwgMC41NzQ4NjEsIDAuNzgyNTQ5LCAxLjI2NjY4LCAxLjU0Mzc5IiwgXAotICAgICAgICAgICIwLjIzODgyMSwgMC4yNTI2MSwgMC4zNzcyMTMsIDAuNTg0NzU0LCAwLjc5MjQ0MiwgMS4yNzU4NywgMS41NTM2OCIsIFwKLSAgICAgICAgICAiMC4yNTA2NDMsIDAuMjY0NTgzLCAwLjM4ODk5MiwgMC41OTYzMjEsIDAuODA0MjE0LCAxLjI4ODYyLCAxLjU2NDk4IiwgXAotICAgICAgICAgICIwLjI2MDY1LCAwLjI3NDQ0NSwgMC4zOTkwNTUsIDAuNjA2NDY5LCAwLjgxNDI4LCAxLjI5NzYyLCAxLjU3NDE3IiwgXAotICAgICAgICAgICIwLjI2OTQ3OSwgMC4yODMzOTYsIDAuNDA4MDIsIDAuNjE1NjEyLCAwLjgyMzE1NywgMS4zMDc0MywgMS41ODI1MSIsIFwKLSAgICAgICAgICAiMC4yODE4ODksIDAuMjk1ODMxLCAwLjQyMDI0NSwgMC42Mjc1NiwgMC44MzU0NjksIDEuMzE5ODcsIDEuNTk2MDYiLCBcCi0gICAgICAgICAgIjAuMjkwNDQ0LCAwLjMwNDI0MiwgMC40Mjg4NjEsIDAuNjM2MjUsIDAuODQ0MDg0LCAxLjMyNzM4LCAxLjYwMzk3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE0ODU4NSwgMC4xNzU3MzEsIDAuNDI0NzY1LCAwLjg0MTIyLCAxLjI1OTE2LCAyLjIzMTY4LCAyLjc4NzgiLCBcCi0gICAgICAgICAgIjAuMTQ4MzE1LCAwLjE3NTc5OCwgMC40MjQ3NzYsIDAuODQxMjIxLCAxLjI1OTE3LCAyLjIzMjA1LCAyLjc4ODc1IiwgXAotICAgICAgICAgICIwLjE0ODQyMSwgMC4xNzU5ODIsIDAuNDI0MzAxLCAwLjg0MTk4NiwgMS4yNTkxNiwgMi4yMjgyNywgMi43ODkyOSIsIFwKLSAgICAgICAgICAiMC4xNDgzMTgsIDAuMTc1NzksIDAuNDI0NDUzLCAwLjg0MTM3NiwgMS4yNTkxNiwgMi4yMzIwMSwgMi43ODgxNSIsIFwKLSAgICAgICAgICAiMC4xNDgzMTcsIDAuMTc1MzE1LCAwLjQyNDc5NCwgMC44NDE1NjgsIDEuMjU5LCAyLjIzMjYsIDIuNzgxMzIiLCBcCi0gICAgICAgICAgIjAuMTQ4MzczLCAwLjE3NTk3OCwgMC40MjQzMiwgMC44NDE5OTIsIDEuMjU5MTcsIDIuMjMyNTEsIDIuNzg3NzciLCBcCi0gICAgICAgICAgIjAuMTQ4MzkxLCAwLjE3NTgxMywgMC40MjQzMjUsIDAuODQxNDQxLCAxLjI1OTE3LCAyLjIyOTA3LCAyLjc4ODI5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiBwcmVzZXQ7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE3NDgyMywgMC4xODkwNjgsIDAuMzE2MDQ5LCAwLjUyNzk0MywgMC43Mzk5NzksIDEuMjM0MDksIDEuNTE2NzciLCBcCi0gICAgICAgICAgIjAuMTg0MTc4LCAwLjE5ODI5MSwgMC4zMjU0MSwgMC41MzcyOTEsIDAuNzQ5MTEzLCAxLjI0MzQzLCAxLjUyNTk1IiwgXAotICAgICAgICAgICIwLjE5NDQ5LCAwLjIwODYwMSwgMC4zMzU4NiwgMC41NDc1NzMsIDAuNzU5MzU1LCAxLjI1MzY4LCAxLjUzNjYiLCBcCi0gICAgICAgICAgIjAuMjA1NzE5LCAwLjIxOTksIDAuMzQ3MDEsIDAuNTU4ODc1LCAwLjc3MDcxNSwgMS4yNjUsIDEuNTQ2OTEiLCBcCi0gICAgICAgICAgIjAuMjE3MjIxLCAwLjIzMTQxMSwgMC4zNTg1NDQsIDAuNTcwMzQyLCAwLjc4MjM4MSwgMS4yNzY0MiwgMS41NjAwOSIsIFwKLSAgICAgICAgICAiMC4yMzQwODcsIDAuMjQ4Mjg0LCAwLjM3NTQ3MiwgMC41ODcyMjcsIDAuNzk5MDQ0LCAxLjI5MzMsIDEuNTc2OTIiLCBcCi0gICAgICAgICAgIjAuMjQ3NjU4LCAwLjI2MTc4NiwgMC4zODg4NjMsIDAuNjAwNzM2LCAwLjgxMjI4MiwgMS4zMDY0OCwgMS41ODkzIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE1NDQ3NiwgMC4xODMxNTksIDAuNDQzMTU1LCAwLjg3OTgyNSwgMS4zMTU4OCwgMi4zMzI3MiwgMi45MDk3NyIsIFwKLSAgICAgICAgICAiMC4xNTQ0NzgsIDAuMTgzMDUxLCAwLjQ0MzE0MSwgMC44Nzk5MjEsIDEuMzE1OCwgMi4zMjk2MSwgMi45MTQwOCIsIFwKLSAgICAgICAgICAiMC4xNTQ0NzcsIDAuMTgzMDUxLCAwLjQ0Mzg2LCAwLjg3OTkxMSwgMS4zMTU4MiwgMi4zMzI2NSwgMi45MTQxIiwgXAotICAgICAgICAgICIwLjE1NDMxMSwgMC4xODMwNDksIDAuNDQzODU3LCAwLjg3OTkxLCAxLjMxNTg3LCAyLjMzMjYzLCAyLjkxMTE4IiwgXAotICAgICAgICAgICIwLjE1NDI5LCAwLjE4MzA0OCwgMC40NDM4MTgsIDAuODc5OTE1LCAxLjMxNTc4LCAyLjMzMjU1LCAyLjkxNDU1IiwgXAotICAgICAgICAgICIwLjE1NDQ2NiwgMC4xODI5MDQsIDAuNDQzOCwgMC44Nzk5MDIsIDEuMzE1ODksIDIuMzI5ODcsIDIuOTEzODMiLCBcCi0gICAgICAgICAgIjAuMTU0NTEsIDAuMTgzMDg0LCAwLjQ0Mzc2NCwgMC44Nzk3ODQsIDEuMzE1ODgsIDIuMzMwNCwgMi45MTM4NiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMTIxOTMsIDAuMjI1OTU2LCAwLjM1MDQ3NCwgMC41NTc4NDQsIDAuNzY1NDY4LCAxLjI0OTUsIDEuNTI3MTUiLCBcCi0gICAgICAgICAgIjAuMjIxNTM4LCAwLjIzNTM0LCAwLjM2MDA0NCwgMC41Njc0NTUsIDAuNzc1NDA2LCAxLjI1OTMxLCAxLjUzNjcxIiwgXAotICAgICAgICAgICIwLjIzMjQyNywgMC4yNDYzMjUsIDAuMzcwOTYsIDAuNTc4MzA1LCAwLjc4NjMzNSwgMS4yNzAzMiwgMS41NDc2MSIsIFwKLSAgICAgICAgICAiMC4yNDMxMTIsIDAuMjU3MDQ5LCAwLjM4MTY2MSwgMC41ODg5NzksIDAuNzk3MDI3LCAxLjI4MTQsIDEuNTU2NjgiLCBcCi0gICAgICAgICAgIjAuMjUzOCwgMC4yNjc3MzcsIDAuMzkyMzI3LCAwLjU5OTY3MSwgMC44MDc3MTksIDEuMjkyMDksIDEuNTY4MDciLCBcCi0gICAgICAgICAgIjAuMjcwMzE1LCAwLjI4NDI5NywgMC40MDg4MzMsIDAuNjE2MTE2LCAwLjgyNDIxNCwgMS4zMDg1OSwgMS41ODQ4OSIsIFwKLSAgICAgICAgICAiMC4yODQyNDYsIDAuMjk3OTg2LCAwLjQyMjY1MSwgMC42MzAzNCwgMC44MzgwMzgsIDEuMzIyMTcsIDEuNTk5MyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNDgzMzYsIDAuMTc1ODk1LCAwLjQyNDgyOSwgMC44NDExNywgMS4yNTkwOSwgMi4yMzE0LCAyLjc4OTM0IiwgXAotICAgICAgICAgICIwLjE0ODYzMiwgMC4xNzU1NzUsIDAuNDI0MzQ0LCAwLjg0MjExOSwgMS4yNTkxNywgMi4yMzE3NCwgMi43ODM3NSIsIFwKLSAgICAgICAgICAiMC4xNDg0MTMsIDAuMTc1NzQ5LCAwLjQyNDM1MywgMC44Mzk4MzksIDEuMjU5MiwgMi4yMzE3MSwgMi43ODQyNyIsIFwKLSAgICAgICAgICAiMC4xNDg0MTIsIDAuMTc1NjE2LCAwLjQyNDQyNiwgMC44NDEzNzcsIDEuMjU5MTEsIDIuMjMyNjEsIDIuNzg3NyIsIFwKLSAgICAgICAgICAiMC4xNDgzOTQsIDAuMTc1NTEsIDAuNDI0Mjg1LCAwLjgzOTU1MiwgMS4yNTkxLCAyLjIzMjYsIDIuNzg4NDgiLCBcCi0gICAgICAgICAgIjAuMTQ4NDEsIDAuMTc1NDc5LCAwLjQyNDUwMiwgMC44Mzk2OTQsIDEuMjU5MjgsIDIuMjMyOTYsIDIuNzg3ODUiLCBcCi0gICAgICAgICAgIjAuMTQ4Mzc2LCAwLjE3NTU1NCwgMC40MjQ2MTIsIDAuODQxNjI0LCAxLjI1OTIzLCAyLjIzMjE5LCAyLjc4MzEzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0tOIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQ1MzgsIDAuMDA0NTM5LCAwLjAwNDU0MywgMC4wMDQ1NDUsIDAuMDA0NTQ1LCAwLjAwNDU0NiwgMC4wMDQ1NDYiLCBcCi0gICAgICAgICAgIjAuMDA0NTI1LCAwLjAwNDUyNywgMC4wMDQ1MzEsIDAuMDA0NTMyLCAwLjAwNDUzMywgMC4wMDQ1MzMsIDAuMDA0NTM0IiwgXAotICAgICAgICAgICIwLjAwNDUyNywgMC4wMDQ1MjksIDAuMDA0NTMzLCAwLjAwNDUzNCwgMC4wMDQ1MzUsIDAuMDA0NTM1LCAwLjAwNDUzNSIsIFwKLSAgICAgICAgICAiMC4wMDQ1MzIsIDAuMDA0NTMzLCAwLjAwNDUzNywgMC4wMDQ1MzksIDAuMDA0NTM5LCAwLjAwNDU0LCAwLjAwNDU0IiwgXAotICAgICAgICAgICIwLjAwNDU0MiwgMC4wMDQ1NDQsIDAuMDA0NTQ4LCAwLjAwNDU0OSwgMC4wMDQ1NSwgMC4wMDQ1NSwgMC4wMDQ1NSIsIFwKLSAgICAgICAgICAiMC4wMDQ1NTYsIDAuMDA0NTU3LCAwLjAwNDU2MSwgMC4wMDQ1NjMsIDAuMDA0NTYzLCAwLjAwNDU2MywgMC4wMDQ1NjQiLCBcCi0gICAgICAgICAgIjAuMDA0NTc1LCAwLjAwNDU3NiwgMC4wMDQ1OCwgMC4wMDQ1ODEsIDAuMDA0NTgyLCAwLjAwNDU4MywgMC4wMDQ1ODIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQwMTMsIDAuMDA0MDE0LCAwLjAwNDAxOCwgMC4wMDQwMiwgMC4wMDQwMjIsIDAuMDA0MDIxLCAwLjAwNDAyMSIsIFwKLSAgICAgICAgICAiMC4wMDM5OTksIDAuMDA0LCAwLjAwNDAwNCwgMC4wMDQwMDYsIDAuMDA0MDA4LCAwLjAwNDAwNywgMC4wMDQwMDkiLCBcCi0gICAgICAgICAgIjAuMDAzOTk1LCAwLjAwMzk5NiwgMC4wMDQsIDAuMDA0MDAzLCAwLjAwNDAwMiwgMC4wMDQwMDMsIDAuMDA0MDA0IiwgXAotICAgICAgICAgICIwLjAwMzk5NywgMC4wMDM5OTgsIDAuMDA0MDAyLCAwLjAwNDAwNSwgMC4wMDQwMDQsIDAuMDA0MDA1LCAwLjAwNDAwNSIsIFwKLSAgICAgICAgICAiMC4wMDM5OTgsIDAuMDAzOTk5LCAwLjAwNDAwMywgMC4wMDQwMDQsIDAuMDA0MDA1LCAwLjAwNDAwNiwgMC4wMDQwMDUiLCBcCi0gICAgICAgICAgIjAuMDA0LCAwLjAwNDAwMiwgMC4wMDQwMDYsIDAuMDA0MDA4LCAwLjAwNDAwOCwgMC4wMDQwMDgsIDAuMDA0MDA4IiwgXAotICAgICAgICAgICIwLjAwNDAxMywgMC4wMDQwMTUsIDAuMDA0MDE5LCAwLjAwNDAyMSwgMC4wMDQwMjIsIDAuMDA0MDIyLCAwLjAwNDAyMiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQ5MDIsIDAuMDA0OTAzLCAwLjAwNDksIDAuMDA0ODk2LCAwLjAwNDg5NSwgMC4wMDQ4OTIsIDAuMDA0ODkxIiwgXAotICAgICAgICAgICIwLjAwNDg5LCAwLjAwNDg5MSwgMC4wMDQ4ODksIDAuMDA0ODg1LCAwLjAwNDg4MywgMC4wMDQ4ODEsIDAuMDA0ODgiLCBcCi0gICAgICAgICAgIjAuMDA0ODg4LCAwLjAwNDg4OSwgMC4wMDQ4ODYsIDAuMDA0ODgyLCAwLjAwNDg4MiwgMC4wMDQ4NzgsIDAuMDA0ODc5IiwgXAotICAgICAgICAgICIwLjAwNDg5LCAwLjAwNDg5LCAwLjAwNDg4OCwgMC4wMDQ4ODQsIDAuMDA0ODgzLCAwLjAwNDg4LCAwLjAwNDg4IiwgXAotICAgICAgICAgICIwLjAwNDg5MiwgMC4wMDQ4OTMsIDAuMDA0ODksIDAuMDA0ODg2LCAwLjAwNDg4NCwgMC4wMDQ4ODQsIDAuMDA0ODg0IiwgXAotICAgICAgICAgICIwLjAwNDg5OCwgMC4wMDQ4OTksIDAuMDA0ODk3LCAwLjAwNDg5MywgMC4wMDQ4OTEsIDAuMDA0ODg4LCAwLjAwNDg4OSIsIFwKLSAgICAgICAgICAiMC4wMDQ5MDMsIDAuMDA0OTA0LCAwLjAwNDkwMiwgMC4wMDQ4OTgsIDAuMDA0ODk2LCAwLjAwNDg5MywgMC4wMDQ4OTMiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfcG93ZXIoc2NhbGFyKSB7Ci0gICAgICAgIHZhbHVlcygiMCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQ4MSwgMC4wMDQ4MSwgMC4wMDQ4MTQsIDAuMDA0ODE2LCAwLjAwNDgxNiwgMC4wMDQ4MTYsIDAuMDA0ODE2IiwgXAotICAgICAgICAgICIwLjAwNDc5NiwgMC4wMDQ3OTcsIDAuMDA0ODAxLCAwLjAwNDgwMSwgMC4wMDQ4MDIsIDAuMDA0ODAyLCAwLjAwNDgwMyIsIFwKLSAgICAgICAgICAiMC4wMDQ3ODksIDAuMDA0NzksIDAuMDA0Nzk0LCAwLjAwNDc5NSwgMC4wMDQ3OTYsIDAuMDA0Nzk2LCAwLjAwNDc5NiIsIFwKLSAgICAgICAgICAiMC4wMDQ3ODcsIDAuMDA0Nzg4LCAwLjAwNDc5MSwgMC4wMDQ3OTMsIDAuMDA0NzkzLCAwLjAwNDc5MywgMC4wMDQ3OTMiLCBcCi0gICAgICAgICAgIjAuMDA0Nzg3LCAwLjAwNDc4OCwgMC4wMDQ3OTEsIDAuMDA0NzkzLCAwLjAwNDc5MywgMC4wMDQ3OTQsIDAuMDA0Nzk0IiwgXAotICAgICAgICAgICIwLjAwNDc4NywgMC4wMDQ3ODksIDAuMDA0NzkzLCAwLjAwNDc5NCwgMC4wMDQ3OTQsIDAuMDA0Nzk2LCAwLjAwNDc5NSIsIFwKLSAgICAgICAgICAiMC4wMDQ3OTcsIDAuMDA0Nzk4LCAwLjAwNDgwMiwgMC4wMDQ4MDMsIDAuMDA0ODA0LCAwLjAwNDgwNCwgMC4wMDQ4MDQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDM1NTUsIDAuMDAzNTU2LCAwLjAwMzU2MSwgMC4wMDM1NjIsIDAuMDAzNTY0LCAwLjAwMzU2NCwgMC4wMDM1NjMiLCBcCi0gICAgICAgICAgIjAuMDAzNTM4LCAwLjAwMzU0LCAwLjAwMzU0NCwgMC4wMDM1NDUsIDAuMDAzNTQ2LCAwLjAwMzU0NywgMC4wMDM1NDYiLCBcCi0gICAgICAgICAgIjAuMDAzNTI5LCAwLjAwMzUzLCAwLjAwMzUzNSwgMC4wMDM1MzcsIDAuMDAzNTM4LCAwLjAwMzUzOCwgMC4wMDM1MzciLCBcCi0gICAgICAgICAgIjAuMDAzNTI0LCAwLjAwMzUyNSwgMC4wMDM1MjksIDAuMDAzNTMxLCAwLjAwMzUzMSwgMC4wMDM1MzEsIDAuMDAzNTMyIiwgXAotICAgICAgICAgICIwLjAwMzUyLCAwLjAwMzUyMSwgMC4wMDM1MjUsIDAuMDAzNTI2LCAwLjAwMzUyNywgMC4wMDM1MjgsIDAuMDAzNTI3IiwgXAotICAgICAgICAgICIwLjAwMzUxMywgMC4wMDM1MTQsIDAuMDAzNTE5LCAwLjAwMzUyLCAwLjAwMzUyLCAwLjAwMzUyMiwgMC4wMDM1MjEiLCBcCi0gICAgICAgICAgIjAuMDAzNTEsIDAuMDAzNTEyLCAwLjAwMzUxNiwgMC4wMDM1MTcsIDAuMDAzNTE4LCAwLjAwMzUxOCwgMC4wMDM1MTgiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFFOKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMTQ1MzU0OwotICAgIGZ1bmN0aW9uIDogIlFCSU5UIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDS04iOwotICAgICAgdGltaW5nX3NlbnNlIDogbm9uX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiBmYWxsaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE5MTQwNSwgMC4yMDU1MjEsIDAuMzMyNjEsIDAuNTQ0NDQ5LCAwLjc1NjIzMiwgMS4yNTA1NiwgMS41MzI5NiIsIFwKLSAgICAgICAgICAiMC4yMDEyMzgsIDAuMjE1MzYzLCAwLjM0MjQzMiwgMC41NTQyODIsIDAuNzY2MTYyLCAxLjI2MDM4LCAxLjU0MjM0IiwgXAotICAgICAgICAgICIwLjIxMzI4MSwgMC4yMjczOTksIDAuMzU0NDczLCAwLjU2NjMyMywgMC43NzgwOSwgMS4yNzI0NCwgMS41NTQ4NSIsIFwKLSAgICAgICAgICAiMC4yMjQzNDEsIDAuMjM4NDUzLCAwLjM2NTUzNiwgMC41NzczODYsIDAuNzg5MjY0LCAxLjI4MzQ5LCAxLjU2NTUyIiwgXAotICAgICAgICAgICIwLjIzMzc2MiwgMC4yNDc4NjUsIDAuMzc0OTYxLCAwLjU4NjgxMiwgMC43OTg3MTIsIDEuMjkyOSwgMS41NzUxIiwgXAotICAgICAgICAgICIwLjI0NzE3NywgMC4yNjEyNzksIDAuMzg4MzcyLCAwLjYwMDIyMiwgMC44MTIxMjMsIDEuMzA2MzIsIDEuNTg4ODEiLCBcCi0gICAgICAgICAgIjAuMjU3NzUzLCAwLjI3MTg3OSwgMC4zOTg5NDgsIDAuNjEwNzQ4LCAwLjgyMjY3LCAxLjMxNjk0LCAxLjU5OTM2Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE1MTY2LCAwLjE4MDQ3NSwgMC40NDIwMjQsIDAuODc1OTQ1LCAxLjMxMzExLCAyLjMyOTcsIDIuOTEwNTIiLCBcCi0gICAgICAgICAgIjAuMTUxNjc0LCAwLjE4MDc0NywgMC40NDIwMDQsIDAuODc0OTY3LCAxLjMxMzQ0LCAyLjMyOTgxLCAyLjkwMjI5IiwgXAotICAgICAgICAgICIwLjE1MTY2LCAwLjE4MDY1NiwgMC40NDE5NDEsIDAuODc2NDEyLCAxLjMxMTYsIDIuMzI5NiwgMi45MTA1NyIsIFwKLSAgICAgICAgICAiMC4xNTE2NzQsIDAuMTgwNjU3LCAwLjQ0MjAxNSwgMC44NzQ5MSwgMS4zMTM0MywgMi4zMjk4MSwgMi45MDIzMSIsIFwKLSAgICAgICAgICAiMC4xNTE2NjgsIDAuMTgwNDU4LCAwLjQ0MjAzOCwgMC44NzYwMDgsIDEuMzEwODksIDIuMzI5NzcsIDIuOTA2MzciLCBcCi0gICAgICAgICAgIjAuMTUxNjY5LCAwLjE4MDQ5NCwgMC40NDIxMDIsIDAuODc1MDYxLCAxLjMxMDg4LCAyLjMyOTgxLCAyLjkwNDU0IiwgXAotICAgICAgICAgICIwLjE1MTY3NiwgMC4xODA2MzIsIDAuNDQyMDE0LCAwLjg3NzE5MSwgMS4zMTMzOCwgMi4zMjk4NSwgMi45MTA2MSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMDc3NSwgMC4yMjE1NzIsIDAuMzQ2MDE2LCAwLjU1MzQwNiwgMC43NjA4MjUsIDEuMjQ0NTEsIDEuNTIxMzIiLCBcCi0gICAgICAgICAgIjAuMjE3Njc2LCAwLjIzMTQ5NywgMC4zNTU5NCwgMC41NjMzMzIsIDAuNzcwNzQ5LCAxLjI1NDM4LCAxLjUzMDg2IiwgXAotICAgICAgICAgICIwLjIyOTgyNiwgMC4yNDM2NDcsIDAuMzY4MDkyLCAwLjU3NTQ4NCwgMC43ODI5MDMsIDEuMjY2NTIsIDEuNTQzMDQiLCBcCi0gICAgICAgICAgIjAuMjQwODE3LCAwLjI1NDYzOCwgMC4zNzkwODQsIDAuNTg2NDczLCAwLjc5Mzg5NywgMS4yNzc0OSwgMS41NTQwMSIsIFwKLSAgICAgICAgICAiMC4yNTA0NjEsIDAuMjY0MjgyLCAwLjM4ODcyNywgMC41OTYxMTcsIDAuODAzNTQxLCAxLjI4NzE2LCAxLjU2Mzc3IiwgXAotICAgICAgICAgICIwLjI2MzUyNiwgMC4yNzczNTMsIDAuNDAxODE0LCAwLjYwOTIxMywgMC44MTY2MTMsIDEuMzAwNjcsIDEuNTc3MTciLCBcCi0gICAgICAgICAgIjAuMjc0MTE4LCAwLjI4Nzk0NSwgMC40MTIzODgsIDAuNjE5Nzc3LCAwLjgyNzIwMiwgMS4zMTEyMywgMS41ODc2NCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNDUwMSwgMC4xNzI3MDQsIDAuNDIxMjMsIDAuODM2MzUzLCAxLjI1MTU1LCAyLjIyMTc0LCAyLjc3Mjk0IiwgXAotICAgICAgICAgICIwLjE0NTAxMSwgMC4xNzI3LCAwLjQyMTIyOSwgMC44MzYzNTUsIDEuMjUxNTUsIDIuMjIwMjksIDIuNzczOTQiLCBcCi0gICAgICAgICAgIjAuMTQ1MDEyLCAwLjE3MjY5NSwgMC40MjEyMywgMC44MzYzNTYsIDEuMjUxNTUsIDIuMjIwMywgMi43NzYwNyIsIFwKLSAgICAgICAgICAiMC4xNDUwMTMsIDAuMTcyNjk3LCAwLjQyMTIyNCwgMC44MzYzNTIsIDEuMjUxNTUsIDIuMjIxNjUsIDIuNzc2NDMiLCBcCi0gICAgICAgICAgIjAuMTQ1MDEzLCAwLjE3MjY5NCwgMC40MjEyMzEsIDAuODM2MzUzLCAxLjI1MTU1LCAyLjIyMjk1LCAyLjc3NjAxIiwgXAotICAgICAgICAgICIwLjE0NTAwNCwgMC4xNzI3MzcsIDAuNDIyNzQ2LCAwLjgzOTQ2MSwgMS4yNTQ0MywgMi4yMjM3NiwgMi43ODQ0NSIsIFwKLSAgICAgICAgICAiMC4xNDUwMDksIDAuMTcyNzQzLCAwLjQyMjY0OSwgMC44MzkyOTgsIDEuMjU0NDYsIDIuMjI5MDcsIDIuNzgzNzYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUk4iOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHByZXNldDsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjM4NDI3LCAwLjI1MjUzMywgMC4zNzk2MTgsIDAuNTkxNDE0LCAwLjgwMzMyNiwgMS4yOTc0MywgMS41ODAxMyIsIFwKLSAgICAgICAgICAiMC4yNDgzMTMsIDAuMjYyNDE5LCAwLjM4OTUwMywgMC42MDEzMDEsIDAuODEzMjEyLCAxLjMwNywgMS41OTAwMiIsIFwKLSAgICAgICAgICAiMC4yNjAxMzEsIDAuMjc0MjYzLCAwLjQwMTMxNywgMC42MTMxMjEsIDAuODI1MDIzLCAxLjMxOTM0LCAxLjYwMTU2IiwgXAotICAgICAgICAgICIwLjI3MDE0OCwgMC4yODQyNTUsIDAuNDExMzQsIDAuNjIzMDk0LCAwLjgzNTA0OCwgMS4zMjg4MSwgMS42MTE2NyIsIFwKLSAgICAgICAgICAiMC4yNzg5NzIsIDAuMjkzMDk1LCAwLjQyMDE5NiwgMC42MzIwNzMsIDAuODQzOTAzLCAxLjMzODE0LCAxLjYxOTkyIiwgXAotICAgICAgICAgICIwLjI5MTM3OCwgMC4zMDU1MDksIDAuNDMyNTYzLCAwLjY0NDM2NywgMC44NTYyNzIsIDEuMzUwNTksIDEuNjMyNzIiLCBcCi0gICAgICAgICAgIjAuMjk5OTQ1LCAwLjMxNDA1MywgMC40NDExMzcsIDAuNjUyODgyLCAwLjg2NDg0NSwgMS4zNTg1OSwgMS42NDE0NiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNTE2ODMsIDAuMTgwNjM0LCAwLjQ0MjAwNiwgMC44Nzc3OTksIDEuMzEzNTYsIDIuMzMwMTYsIDIuOTA5OCIsIFwKLSAgICAgICAgICAiMC4xNTE2MTYsIDAuMTgwNDgsIDAuNDQyMDA0LCAwLjg3Nzc5OSwgMS4zMTM1NiwgMi4zMjkwMywgMi45MTA0MyIsIFwKLSAgICAgICAgICAiMC4xNTE2NDIsIDAuMTgwNzY0LCAwLjQ0MjAyNSwgMC44NzczMjEsIDEuMzEzNTQsIDIuMzI1NDksIDIuOTEwNjgiLCBcCi0gICAgICAgICAgIjAuMTUxNjIxLCAwLjE4MDQ3OSwgMC40NDIwOTUsIDAuODc3NTA2LCAxLjMxMzU1LCAyLjMyODk5LCAyLjkxMDE1IiwgXAotICAgICAgICAgICIwLjE1MTUyOSwgMC4xODA1ODcsIDAuNDQyMjE0LCAwLjg3Nzc3NCwgMS4zMTMzMSwgMi4zMjk5NiwgMi45MDQ5OSIsIFwKLSAgICAgICAgICAiMC4xNTE1LCAwLjE4MDc2NCwgMC40NDIwMjUsIDAuODc3NjcyLCAxLjMxMzU0LCAyLjMyOTU3LCAyLjkxMDUxIiwgXAotICAgICAgICAgICIwLjE1MTMwMiwgMC4xODA0NjksIDAuNDQyMDM3LCAwLjg3NzQyNywgMS4zMTM1NSwgMi4zMjU4NywgMi45MTAxOCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogY2xlYXI7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIyMTU0NCwgMC4yMzU2NDQsIDAuMzYyNzIsIDAuNTc0NTY4LCAwLjc4NjMwOSwgMS4yODA1MiwgMS41NjMxNyIsIFwKLSAgICAgICAgICAiMC4yMzEwMDIsIDAuMjQ1MTA5LCAwLjM3MjE5MywgMC41ODQwMDksIDAuNzk1OTAxLCAxLjI4OTkzLCAxLjU3MjcyIiwgXAotICAgICAgICAgICIwLjI0MTkxNSwgMC4yNTYwMzQsIDAuMzgzMTA5LCAwLjU5NDkzNywgMC44MDY4MjQsIDEuMzAwOSwgMS41ODM2MiIsIFwKLSAgICAgICAgICAiMC4yNTI1NDIsIDAuMjY2NjY3LCAwLjM5MzczNywgMC42MDU1ODUsIDAuODE3NDYyLCAxLjMxMTczLCAxLjU5MzQ1IiwgXAotICAgICAgICAgICIwLjI2MzIzMSwgMC4yNzczNTYsIDAuNDA0NDE4LCAwLjYxNjI3NCwgMC44MjgxNTIsIDEuMzIyNDIsIDEuNjA0MzUiLCBcCi0gICAgICAgICAgIjAuMjc5NzksIDAuMjkzOTI0LCAwLjQyMDk4LCAwLjYzMjgzLCAwLjg0NDcwOSwgMS4zMzg5OSwgMS42MjExNyIsIFwKLSAgICAgICAgICAiMC4yOTM2MiwgMC4zMDc3MTgsIDAuNDM0Nzk3LCAwLjY0NjY0NSwgMC44NTg1MTcsIDEuMzUyNjcsIDEuNjM1MyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNTE1MTEsIDAuMTgwNzE0LCAwLjQ0MTk5MiwgMC44Nzc2NDQsIDEuMzEzMjcsIDIuMzI4OTQsIDIuOTExMzEiLCBcCi0gICAgICAgICAgIjAuMTUxNzEyLCAwLjE4MDY0NCwgMC40NDIwMSwgMC44Nzc0MTgsIDEuMzEzNTQsIDIuMzI5NDMsIDIuOTA2MDciLCBcCi0gICAgICAgICAgIjAuMTUxNjQyLCAwLjE4MDY4MywgMC40NDIwMDksIDAuODc2NTUxLCAxLjMxMzU1LCAyLjMyOTcsIDIuOTA1OTUiLCBcCi0gICAgICAgICAgIjAuMTUxNjM3LCAwLjE4MDYzLCAwLjQ0MjEwMiwgMC44Nzc0NjcsIDEuMzEzNDMsIDIuMzI5OTUsIDIuOTA5NjgiLCBcCi0gICAgICAgICAgIjAuMTUxNjM0LCAwLjE4MDU4NywgMC40NDIwNjIsIDAuODc1OTk1LCAxLjMxMzI2LCAyLjMyOTk0LCAyLjkxMDA1IiwgXAotICAgICAgICAgICIwLjE1MTYzMywgMC4xODA1OCwgMC40NDIxMTMsIDAuODc2MTQsIDEuMzEzNTgsIDIuMzMwMjEsIDIuOTEwNTkiLCBcCi0gICAgICAgICAgIjAuMTUxNjM0LCAwLjE4MDY1NywgMC40NDE5OTYsIDAuODc3NzE1LCAxLjMxMzU0LCAyLjMyOTgsIDIuOTA1MzMiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTgyNzIxLCAwLjE5NjU2LCAwLjMyMTAwNiwgMC41Mjg0NjksIDAuNzM1ODY3LCAxLjIxOTY5LCAxLjQ5NjE5IiwgXAotICAgICAgICAgICIwLjE5MjA3NywgMC4yMDU5MDgsIDAuMzMwMzU0LCAwLjUzNzgyNSwgMC43NDUxMzcsIDEuMjI5MDYsIDEuNTA1NTciLCBcCi0gICAgICAgICAgIjAuMjAyMzcxLCAwLjIxNjE5OCwgMC4zNDA2NjUsIDAuNTQ4MDg1LCAwLjc1NTQ0OCwgMS4yMzkzMywgMS41MTU1MSIsIFwKLSAgICAgICAgICAiMC4yMTM3NjQsIDAuMjI3NTk1LCAwLjM1MjA2NCwgMC41NTk0OTIsIDAuNzY2OTM0LCAxLjI1MDkyLCAxLjUyNjk0IiwgXAotICAgICAgICAgICIwLjIyNTIzOCwgMC4yMzkwNzEsIDAuMzYzNTE4LCAwLjU3MDk4MiwgMC43NzgzODQsIDEuMjYyMjksIDEuNTM4OTMiLCBcCi0gICAgICAgICAgIjAuMjQyMTAzLCAwLjI1NTkzNSwgMC4zODAzOTcsIDAuNTg3ODQxLCAwLjc5NTI2NCwgMS4yNzkxNywgMS41NTU2NSIsIFwKLSAgICAgICAgICAiMC4yNTU0MTUsIDAuMjY5MjQsIDAuMzkzNjc5LCAwLjYwMTE1OSwgMC44MDgzMywgMS4yOTIxNywgMS41Njg5OCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNDUwNTEsIDAuMTcyODQzLCAwLjQyMjIzMywgMC44Mzk3NjMsIDEuMjU2NDQsIDIuMjI4MywgMi43ODAzMSIsIFwKLSAgICAgICAgICAiMC4xNDUwNSwgMC4xNzI4NDQsIDAuNDIyMjI3LCAwLjgzOTgzNCwgMS4yNTY1MywgMi4yMjQ2NiwgMi43ODQ0OCIsIFwKLSAgICAgICAgICAiMC4xNDUwNDcsIDAuMTcyODQzLCAwLjQyMjkxMiwgMC44Mzk4MDksIDEuMjU2NTYsIDIuMjI4NTEsIDIuNzg0NCIsIFwKLSAgICAgICAgICAiMC4xNDQ4OTksIDAuMTcyODM2LCAwLjQyMjgxOSwgMC44Mzk4MDQsIDEuMjU2NDMsIDIuMjI4MjEsIDIuNzgwNSIsIFwKLSAgICAgICAgICAiMC4xNDQ5MDMsIDAuMTcyODM0LCAwLjQyMjg1NCwgMC44Mzk4MDUsIDEuMjU2NDcsIDIuMjI4MDEsIDIuNzg0ODkiLCBcCi0gICAgICAgICAgIjAuMTQ1MDI5LCAwLjE3MjU1NywgMC40MjI4MDcsIDAuODM5ODA5LCAxLjI1NjQ3LCAyLjIyNTI5LCAyLjc4Mzk3IiwgXAotICAgICAgICAgICIwLjE0NTA0LCAwLjE3MjgyMiwgMC40MjI3MjYsIDAuODM5NjU2LCAxLjI1NjQyLCAyLjIyNTU0LCAyLjc4Mzc4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0tOIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQwMTMsIDAuMDA0MDE0LCAwLjAwNDAxOCwgMC4wMDQwMiwgMC4wMDQwMjIsIDAuMDA0MDIxLCAwLjAwNDAyMSIsIFwKLSAgICAgICAgICAiMC4wMDM5OTksIDAuMDA0LCAwLjAwNDAwNCwgMC4wMDQwMDYsIDAuMDA0MDA4LCAwLjAwNDAwNywgMC4wMDQwMDkiLCBcCi0gICAgICAgICAgIjAuMDAzOTk1LCAwLjAwMzk5NiwgMC4wMDQsIDAuMDA0MDAzLCAwLjAwNDAwMiwgMC4wMDQwMDMsIDAuMDA0MDA0IiwgXAotICAgICAgICAgICIwLjAwMzk5NywgMC4wMDM5OTgsIDAuMDA0MDAyLCAwLjAwNDAwNSwgMC4wMDQwMDQsIDAuMDA0MDA1LCAwLjAwNDAwNSIsIFwKLSAgICAgICAgICAiMC4wMDM5OTgsIDAuMDAzOTk5LCAwLjAwNDAwMywgMC4wMDQwMDQsIDAuMDA0MDA1LCAwLjAwNDAwNiwgMC4wMDQwMDUiLCBcCi0gICAgICAgICAgIjAuMDA0LCAwLjAwNDAwMiwgMC4wMDQwMDYsIDAuMDA0MDA4LCAwLjAwNDAwOCwgMC4wMDQwMDgsIDAuMDA0MDA4IiwgXAotICAgICAgICAgICIwLjAwNDAxMywgMC4wMDQwMTUsIDAuMDA0MDE5LCAwLjAwNDAyMSwgMC4wMDQwMjIsIDAuMDA0MDIyLCAwLjAwNDAyMiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDUzOCwgMC4wMDQ1MzksIDAuMDA0NTQzLCAwLjAwNDU0NSwgMC4wMDQ1NDUsIDAuMDA0NTQ2LCAwLjAwNDU0NiIsIFwKLSAgICAgICAgICAiMC4wMDQ1MjUsIDAuMDA0NTI3LCAwLjAwNDUzMSwgMC4wMDQ1MzIsIDAuMDA0NTMzLCAwLjAwNDUzMywgMC4wMDQ1MzQiLCBcCi0gICAgICAgICAgIjAuMDA0NTI3LCAwLjAwNDUyOSwgMC4wMDQ1MzMsIDAuMDA0NTM0LCAwLjAwNDUzNSwgMC4wMDQ1MzUsIDAuMDA0NTM1IiwgXAotICAgICAgICAgICIwLjAwNDUzMiwgMC4wMDQ1MzMsIDAuMDA0NTM3LCAwLjAwNDUzOSwgMC4wMDQ1MzksIDAuMDA0NTQsIDAuMDA0NTQiLCBcCi0gICAgICAgICAgIjAuMDA0NTQyLCAwLjAwNDU0NCwgMC4wMDQ1NDgsIDAuMDA0NTQ5LCAwLjAwNDU1LCAwLjAwNDU1LCAwLjAwNDU1IiwgXAotICAgICAgICAgICIwLjAwNDU1NiwgMC4wMDQ1NTcsIDAuMDA0NTYxLCAwLjAwNDU2MywgMC4wMDQ1NjMsIDAuMDA0NTYzLCAwLjAwNDU2NCIsIFwKLSAgICAgICAgICAiMC4wMDQ1NzUsIDAuMDA0NTc2LCAwLjAwNDU4LCAwLjAwNDU4MSwgMC4wMDQ1ODIsIDAuMDA0NTgzLCAwLjAwNDU4MiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQ5MDIsIDAuMDA0OTAzLCAwLjAwNDksIDAuMDA0ODk2LCAwLjAwNDg5NSwgMC4wMDQ4OTIsIDAuMDA0ODkxIiwgXAotICAgICAgICAgICIwLjAwNDg5LCAwLjAwNDg5MSwgMC4wMDQ4ODksIDAuMDA0ODg1LCAwLjAwNDg4MywgMC4wMDQ4ODEsIDAuMDA0ODgiLCBcCi0gICAgICAgICAgIjAuMDA0ODg4LCAwLjAwNDg4OSwgMC4wMDQ4ODYsIDAuMDA0ODgyLCAwLjAwNDg4MiwgMC4wMDQ4NzgsIDAuMDA0ODc5IiwgXAotICAgICAgICAgICIwLjAwNDg5LCAwLjAwNDg5LCAwLjAwNDg4OCwgMC4wMDQ4ODQsIDAuMDA0ODgzLCAwLjAwNDg4LCAwLjAwNDg4IiwgXAotICAgICAgICAgICIwLjAwNDg5MiwgMC4wMDQ4OTMsIDAuMDA0ODksIDAuMDA0ODg2LCAwLjAwNDg4NCwgMC4wMDQ4ODQsIDAuMDA0ODg0IiwgXAotICAgICAgICAgICIwLjAwNDg5OCwgMC4wMDQ4OTksIDAuMDA0ODk3LCAwLjAwNDg5MywgMC4wMDQ4OTEsIDAuMDA0ODg4LCAwLjAwNDg4OSIsIFwKLSAgICAgICAgICAiMC4wMDQ5MDMsIDAuMDA0OTA0LCAwLjAwNDkwMiwgMC4wMDQ4OTgsIDAuMDA0ODk2LCAwLjAwNDg5MywgMC4wMDQ4OTMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoc2NhbGFyKSB7Ci0gICAgICAgIHZhbHVlcygiMCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDM1NTUsIDAuMDAzNTU2LCAwLjAwMzU2MSwgMC4wMDM1NjIsIDAuMDAzNTY0LCAwLjAwMzU2NCwgMC4wMDM1NjMiLCBcCi0gICAgICAgICAgIjAuMDAzNTM4LCAwLjAwMzU0LCAwLjAwMzU0NCwgMC4wMDM1NDUsIDAuMDAzNTQ2LCAwLjAwMzU0NywgMC4wMDM1NDYiLCBcCi0gICAgICAgICAgIjAuMDAzNTI5LCAwLjAwMzUzLCAwLjAwMzUzNSwgMC4wMDM1MzcsIDAuMDAzNTM4LCAwLjAwMzUzOCwgMC4wMDM1MzciLCBcCi0gICAgICAgICAgIjAuMDAzNTI0LCAwLjAwMzUyNSwgMC4wMDM1MjksIDAuMDAzNTMxLCAwLjAwMzUzMSwgMC4wMDM1MzEsIDAuMDAzNTMyIiwgXAotICAgICAgICAgICIwLjAwMzUyLCAwLjAwMzUyMSwgMC4wMDM1MjUsIDAuMDAzNTI2LCAwLjAwMzUyNywgMC4wMDM1MjgsIDAuMDAzNTI3IiwgXAotICAgICAgICAgICIwLjAwMzUxMywgMC4wMDM1MTQsIDAuMDAzNTE5LCAwLjAwMzUyLCAwLjAwMzUyLCAwLjAwMzUyMiwgMC4wMDM1MjEiLCBcCi0gICAgICAgICAgIjAuMDAzNTEsIDAuMDAzNTEyLCAwLjAwMzUxNiwgMC4wMDM1MTcsIDAuMDAzNTE4LCAwLjAwMzUxOCwgMC4wMDM1MTgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQ4MSwgMC4wMDQ4MSwgMC4wMDQ4MTQsIDAuMDA0ODE2LCAwLjAwNDgxNiwgMC4wMDQ4MTYsIDAuMDA0ODE2IiwgXAotICAgICAgICAgICIwLjAwNDc5NiwgMC4wMDQ3OTcsIDAuMDA0ODAxLCAwLjAwNDgwMSwgMC4wMDQ4MDIsIDAuMDA0ODAyLCAwLjAwNDgwMyIsIFwKLSAgICAgICAgICAiMC4wMDQ3ODksIDAuMDA0NzksIDAuMDA0Nzk0LCAwLjAwNDc5NSwgMC4wMDQ3OTYsIDAuMDA0Nzk2LCAwLjAwNDc5NiIsIFwKLSAgICAgICAgICAiMC4wMDQ3ODcsIDAuMDA0Nzg4LCAwLjAwNDc5MSwgMC4wMDQ3OTMsIDAuMDA0NzkzLCAwLjAwNDc5MywgMC4wMDQ3OTMiLCBcCi0gICAgICAgICAgIjAuMDA0Nzg3LCAwLjAwNDc4OCwgMC4wMDQ3OTEsIDAuMDA0NzkzLCAwLjAwNDc5MywgMC4wMDQ3OTQsIDAuMDA0Nzk0IiwgXAotICAgICAgICAgICIwLjAwNDc4NywgMC4wMDQ3ODksIDAuMDA0NzkzLCAwLjAwNDc5NCwgMC4wMDQ3OTQsIDAuMDA0Nzk2LCAwLjAwNDc5NSIsIFwKLSAgICAgICAgICAiMC4wMDQ3OTcsIDAuMDA0Nzk4LCAwLjAwNDgwMiwgMC4wMDQ4MDMsIDAuMDA0ODA0LCAwLjAwNDgwNCwgMC4wMDQ4MDQiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFJOKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2MTM4OTE7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjEzNjQ1OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDYxMzg5MTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA0ODYsIDAuMDAwNDYxLCAwLjAwMDQ1NCwgMC4wMDA0NTksIDAuMDAwNDY4LCAwLjAwMDQ5LCAwLjAwMDUxMyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjQyMSwgMC4wMDI0MDIsIDAuMDAyMzk3LCAwLjAwMjQwMiwgMC4wMDI0MTMsIDAuMDAyNDM1LCAwLjAwMjQ1NCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQmIVNFJiFTSSZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fU0VfRVFfMF9BTl9TSV9FUV8wX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4yMzg0MjcsIDAuMjQ4MzEyLCAwLjI2MDEzMSwgMC4yNzAxNDgsIDAuMjc4OTcyLCAwLjI5MTM3OCwgMC4yOTk5NDUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0tOIjsKLSAgICAgIHRpbWluZ190eXBlIDogcmVjb3ZlcnlfZmFsbGluZzsKLSAgICAgIHdoZW4gOiAiU04iOwotICAgICAgc2RmX2NvbmQgOiAiU04gPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQocmVjb3ZlcnlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM3NSwgMC4wMjYyNSwgMC4wMTM3NSwgMC4wMDEyNSwgLTAuMDExMjUsIC0wLjAyMTI1LCAtMC4wMzYyNSIsIFwKLSAgICAgICAgICAiMC4wNDg3NSwgMC4wMzc1LCAwLjAyNSwgMC4wMTI1LCAwLCAtMC4wMSwgLTAuMDI1IiwgXAotICAgICAgICAgICIwLjA2MTI1LCAwLjA1LCAwLjAzNzUsIDAuMDI1LCAwLjAxMjUsIDAuMDAyNSwgLTAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4wNjc1LCAwLjA1NjI1LCAwLjA0Mzc1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMDg3NSwgMCIsIFwKLSAgICAgICAgICAiMC4wOCwgMC4wNjg3NSwgMC4wNTYyNSwgMC4wNDM3NSwgMC4wMzEyNSwgMC4wMjEyNSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiMC4wOSwgMC4wNzg3NSwgMC4wNjYyNSwgMC4wNTM3NSwgMC4wNDc1LCAwLjAzMTI1LCAwLjAyMjUiLCBcCi0gICAgICAgICAgIjAuMTA1LCAwLjA5Mzc1LCAwLjA4MTI1LCAwLjA2ODc1LCAwLjA1NjI1LCAwLjA0LCAwLjAzMTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIHRpbWluZ190eXBlIDogcmVjb3ZlcnlfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRCYhU0UmIVNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9TRV9FUV8wX0FOX1NJX0VRXzAgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQocmVjb3ZlcnlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDgxMjUsIDAuMDkyNSwgMC4wOTg3NSwgMC4xMTEyNSwgMC4xMTc1LCAwLjEzMzc1LCAwLjE0MjUiLCBcCi0gICAgICAgICAgIjAuMDcsIDAuMDgxMjUsIDAuMDkzNzUsIDAuMSwgMC4xMTI1LCAwLjEyMjUsIDAuMTM3NSIsIFwKLSAgICAgICAgICAiMC4wNjM3NSwgMC4wNzUsIDAuMDgxMjUsIDAuMDkzNzUsIDAuMSwgMC4xMTYyNSwgMC4xMjUiLCBcCi0gICAgICAgICAgIjAuMDU3NSwgMC4wNjg3NSwgMC4wNzUsIDAuMDg3NSwgMC4wOTM3NSwgMC4xMSwgMC4xMTg3NSIsIFwKLSAgICAgICAgICAiMC4wNTEyNSwgMC4wNjI1LCAwLjA3NSwgMC4wODEyNSwgMC4wOTM3NSwgMC4xMDM3NSwgMC4xMTg3NSIsIFwKLSAgICAgICAgICAiMC4wNDc1LCAwLjA1ODc1LCAwLjA2NSwgMC4wNzc1LCAwLjA4Mzc1LCAwLjEsIDAuMTA4NzUiLCBcCi0gICAgICAgICAgIjAuMDQ1LCAwLjA1LCAwLjA2MjUsIDAuMDc1LCAwLjA4MTI1LCAwLjA5NzUsIDAuMTA2MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0tOIjsKLSAgICAgIHRpbWluZ190eXBlIDogcmVtb3ZhbF9mYWxsaW5nOwotICAgICAgd2hlbiA6ICJTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJTTiA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChyZW1vdmFsX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLCAwLjAxMTI1LCAwLjAyMzc1LCAwLjAzNjI1LCAwLjA0MjUsIDAuMDU4NzUsIDAuMDY3NSIsIFwKLSAgICAgICAgICAiLTAuMDExMjUsIDAsIDAuMDEyNSwgMC4wMjUsIDAuMDMxMjUsIDAuMDQ3NSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxMjUsIDAsIDAuMDEyNSwgMC4wMTg3NSwgMC4wMzUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMjUsIC0wLjAxMjUsIDAsIDAuMDEyNSwgMC4wMjI1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLCAwLjAxNjI1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDUyNSwgLTAuMDQ3NSwgLTAuMDM1LCAtMC4wMjI1LCAtMC4wMSwgMCwgMC4wMDg3NSIsIFwKLSAgICAgICAgICAiLTAuMDY3NSwgLTAuMDU2MjUsIC0wLjA0Mzc1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIC0wLjAwODc1LCAwIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTRSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxMzMxNTY7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxMzMxMTk7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxMzMxNTY7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA0NTYxLCAwLjAwNDU0LCAwLjAwNDU0LCAwLjAwNDU0NywgMC4wMDQ1NjQsIDAuMDA0NTg2LCAwLjAwNDYxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA1OTQyLCAwLjAwNTkwNiwgMC4wMDU4OTgsIDAuMDA1OTAyLCAwLjAwNTkxNiwgMC4wMDU5NTMsIDAuMDA1OTg5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfZmFsbGluZzsKLSAgICAgIHdoZW4gOiAiUk4mU04iOwotICAgICAgc2RmX2NvbmQgOiAiUk5fRVFfMV9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAxMjUsIC0wLjAwNzUsIDAuMDA1LCAwLjAxNzUsIDAuMDIzNzUsIDAuMDMzNzUsIDAuMDQyNSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLjAwNjI1LCAwLjAxMjUsIDAuMDIyNSwgMC4wMzc1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDI1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMCwgMC4wMTYyNSwgMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMDYyNSwgMC4wMDM3NSwgMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMDg3NSwgMCIsIFwKLSAgICAgICAgICAiLTAuMDcxMjUsIC0wLjA2LCAtMC4wNTM3NSwgLTAuMDQxMjUsIC0wLjAzNSwgLTAuMDI1LCAtMC4wMTYyNSIsIFwKLSAgICAgICAgICAiLTAuMDgsIC0wLjA3NSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wMzM3NSwgLTAuMDI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDMxMjUsIC0wLjAyLCAtMC4wMDc1LCAtMC4wMDEyNSwgMC4wMTEyNSwgMC4wMjEyNSwgMC4wMyIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDMxMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAwLCAwLjAxLCAwLjAxODc1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDI1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wNjEyNSwgLTAuMDUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgLTAuMDA4NzUsIDAiLCBcCi0gICAgICAgICAgIi0wLjA2NzUsIC0wLjA1NjI1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDI1LCAtMC4wMTUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wNzEyNSwgLTAuMDY2MjUsIC0wLjA1Mzc1LCAtMC4wNDEyNSwgLTAuMDM1LCAtMC4wMjUsIC0wLjAxNjI1IiwgXAotICAgICAgICAgICItMC4wOCwgLTAuMDY4NzUsIC0wLjA2MjUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDI3NSwgLTAuMDE4NzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0tOIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfZmFsbGluZzsKLSAgICAgIHdoZW4gOiAiUk4mU04iOwotICAgICAgc2RmX2NvbmQgOiAiUk5fRVFfMV9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEyNSwgMC4xMTM3NSwgMC4xMDEyNSwgMC4wOTUsIDAuMDgyNSwgMC4wNzI1LCAwLjA3IiwgXAotICAgICAgICAgICIwLjEzNjI1LCAwLjEyNSwgMC4xMTI1LCAwLjEsIDAuMDkzNzUsIDAuMDgzNzUsIDAuMDc1IiwgXAotICAgICAgICAgICIwLjE0ODc1LCAwLjEzNzUsIDAuMTI1LCAwLjExMjUsIDAuMTA2MjUsIDAuMDk2MjUsIDAuMDg3NSIsIFwKLSAgICAgICAgICAiMC4xNTUsIDAuMTQzNzUsIDAuMTMxMjUsIDAuMTE4NzUsIDAuMTEyNSwgMC4xMDI1LCAwLjA5Mzc1IiwgXAotICAgICAgICAgICIwLjE2MTI1LCAwLjE1LCAwLjEzNzUsIDAuMTMxMjUsIDAuMTE4NzUsIDAuMTA4NzUsIDAuMTA2MjUiLCBcCi0gICAgICAgICAgIjAuMTcxMjUsIDAuMTYsIDAuMTQ3NSwgMC4xNDEyNSwgMC4xMjg3NSwgMC4xMTg3NSwgMC4xMTYyNSIsIFwKLSAgICAgICAgICAiMC4xOCwgMC4xNjg3NSwgMC4xNTYyNSwgMC4xNDM3NSwgMC4xMzc1LCAwLjEyNzUsIDAuMTI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTEyNSwgMC4xMDEyNSwgMC4wODg3NSwgMC4wNzYyNSwgMC4wNywgMC4wNiwgMC4wNTEyNSIsIFwKLSAgICAgICAgICAiMC4xMjM3NSwgMC4xMTI1LCAwLjEsIDAuMDg3NSwgMC4wODEyNSwgMC4wNzEyNSwgMC4wNjI1IiwgXAotICAgICAgICAgICIwLjEzLCAwLjExODc1LCAwLjEwNjI1LCAwLjEsIDAuMDg3NSwgMC4wNzc1LCAwLjA3NSIsIFwKLSAgICAgICAgICAiMC4xNDI1LCAwLjEzMTI1LCAwLjExODc1LCAwLjEwNjI1LCAwLjEsIDAuMDksIDAuMDg3NSIsIFwKLSAgICAgICAgICAiMC4xNTUsIDAuMTQzNzUsIDAuMTMxMjUsIDAuMTE4NzUsIDAuMTEyNSwgMC4xMDI1LCAwLjA5Mzc1IiwgXAotICAgICAgICAgICIwLjE3MTI1LCAwLjE2LCAwLjE0NzUsIDAuMTM1LCAwLjEyODc1LCAwLjExODc1LCAwLjExIiwgXAotICAgICAgICAgICIwLjE4NjI1LCAwLjE3NSwgMC4xNjI1LCAwLjE1LCAwLjE0Mzc1LCAwLjEzMzc1LCAwLjEyNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oU0kpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYzMzIxOTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MzE1NDk7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjMzMjE5OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzMyOCwgMC4wMDMzMTIsIDAuMDAzMzAzLCAwLjAwMzI5NywgMC4wMDMyOTUsIDAuMDAzMjk1LCAwLjAwMzMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDQ4OCwgMC4wMDQ4NzEsIDAuMDA0ODY1LCAwLjAwNDg2MSwgMC4wMDQ4NjEsIDAuMDA0ODYsIDAuMDA0ODYzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfZmFsbGluZzsKLSAgICAgIHdoZW4gOiAiUk4mU0UmU04iOwotICAgICAgc2RmX2NvbmQgOiAiUk5fRVFfMV9BTl9TRV9FUV8xX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDE4NzUsIC0wLjAwNzUsIC0wLjAwMTI1LCAwLjAxMTI1LCAwLjAxNzUsIDAuMDI3NSwgMC4wMzYyNSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAxODc1LCAtMC4wMDYyNSwgMCwgMC4wMDYyNSwgMC4wMjI1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIDAsIDAuMDEsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wNDM3NSwgLTAuMDMxMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDI1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wNjEyNSwgLTAuMDUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAwODc1LCAwIiwgXAotICAgICAgICAgICItMC4wNzc1LCAtMC4wNjYyNSwgLTAuMDUzNzUsIC0wLjA0NzUsIC0wLjAzNSwgLTAuMDI1LCAtMC4wMTYyNSIsIFwKLSAgICAgICAgICAiLTAuMDg2MjUsIC0wLjA3NSwgLTAuMDY4NzUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDQsIC0wLjAzMTI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDYyNSwgLTAuMDUxMjUsIC0wLjA0NSwgLTAuMDQ1LCAtMC4wMzg3NSwgLTAuMDM1LCAtMC4wMjYyNSIsIFwKLSAgICAgICAgICAiLTAuMDY3NSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNSwgLTAuMDQsIC0wLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjA4LCAtMC4wNzUsIC0wLjA2MjUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNTI1LCAtMC4wNDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDg2MjUsIC0wLjA4MTI1LCAtMC4wNzUsIC0wLjA2ODc1LCAtMC4wNjg3NSwgLTAuMDU4NzUsIC0wLjA1NjI1IiwgXAotICAgICAgICAgICItMC4wOTg3NSwgLTAuMDkzNzUsIC0wLjA4NzUsIC0wLjA4MTI1LCAtMC4wNzUsIC0wLjA3MTI1LCAtMC4wNjI1IiwgXAotICAgICAgICAgICItMC4xMDg3NSwgLTAuMTAzNzUsIC0wLjA5NzUsIC0wLjA5MTI1LCAtMC4wOTEyNSwgLTAuMDgxMjUsIC0wLjA3ODc1IiwgXAotICAgICAgICAgICItMC4xMjM3NSwgLTAuMTE4NzUsIC0wLjExMjUsIC0wLjEwNjI1LCAtMC4xLCAtMC4wOTYyNSwgLTAuMDg3NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDS04iOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9mYWxsaW5nOwotICAgICAgd2hlbiA6ICJSTiZTRSZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJSTl9FUV8xX0FOX1NFX0VRXzFfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTM3NSwgMC4wODI1LCAwLjA3LCAwLjA1NzUsIDAuMDUxMjUsIDAuMDM1LCAwLjAyNjI1IiwgXAotICAgICAgICAgICIwLjEwNSwgMC4wOTM3NSwgMC4wODEyNSwgMC4wNjg3NSwgMC4wNTYyNSwgMC4wNDYyNSwgMC4wMzc1IiwgXAotICAgICAgICAgICIwLjExMTI1LCAwLjEwNjI1LCAwLjA4NzUsIDAuMDgxMjUsIDAuMDY4NzUsIDAuMDU4NzUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMTIzNzUsIDAuMTEyNSwgMC4xLCAwLjA4NzUsIDAuMDgxMjUsIDAuMDY1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICIwLjEzNjI1LCAwLjEyNSwgMC4xMTI1LCAwLjEsIDAuMDkzNzUsIDAuMDc3NSwgMC4wNjg3NSIsIFwKLSAgICAgICAgICAiMC4xNTI1LCAwLjE0MTI1LCAwLjEyODc1LCAwLjExNjI1LCAwLjEwMzc1LCAwLjA5Mzc1LCAwLjA4NSIsIFwKLSAgICAgICAgICAiMC4xNjEyNSwgMC4xNTYyNSwgMC4xNDM3NSwgMC4xMzEyNSwgMC4xMTg3NSwgMC4xMDg3NSwgMC4wOTM3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExODc1LCAwLjEwNzUsIDAuMDk1LCAwLjA4MjUsIDAuMDc2MjUsIDAuMDY2MjUsIDAuMDU3NSIsIFwKLSAgICAgICAgICAiMC4xMjM3NSwgMC4xMTg3NSwgMC4xLCAwLjA5Mzc1LCAwLjA4MTI1LCAwLjA3MTI1LCAwLjA2ODc1IiwgXAotICAgICAgICAgICIwLjEzNjI1LCAwLjEyNSwgMC4xMTI1LCAwLjEsIDAuMDkzNzUsIDAuMDgzNzUsIDAuMDc1IiwgXAotICAgICAgICAgICIwLjE0ODc1LCAwLjEzNzUsIDAuMTI1LCAwLjExMjUsIDAuMTA2MjUsIDAuMDk2MjUsIDAuMDg3NSIsIFwKLSAgICAgICAgICAiMC4xNTUsIDAuMTQzNzUsIDAuMTMxMjUsIDAuMTE4NzUsIDAuMTEyNSwgMC4xMDI1LCAwLjA5Mzc1IiwgXAotICAgICAgICAgICIwLjE3MTI1LCAwLjE2LCAwLjE0NzUsIDAuMTM1LCAwLjEyODc1LCAwLjExODc1LCAwLjExIiwgXAotICAgICAgICAgICIwLjE4LCAwLjE2ODc1LCAwLjE1NjI1LCAwLjE1LCAwLjEzNzUsIDAuMTI3NSwgMC4xMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFNOKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE1NzU3OTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE1NzU3OTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE1NzQ1MjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA0NTMsIDAuMDAwNDUyLCAwLjAwMDQ1MiwgMC4wMDA0NTIsIDAuMDAwNDUyLCAwLjAwMDQ1MiwgMC4wMDA0NTIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA0NTMsIDAuMDAwNDU0LCAwLjAwMDQ1NCwgMC4wMDA0NTQsIDAuMDAwNDU0LCAwLjAwMDQ1NCwgMC4wMDA0NTQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiU04iOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFEJiFSTiYhU0UmIVNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9STl9FUV8wX0FOX1NFX0VRXzBfQU5fU0lfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjE4MjY5MiwgMC4xOTIwMzgsIDAuMjAyMzQyLCAwLjIxMzc2NCwgMC4yMjUyMzgsIDAuMjQyMTAzLCAwLjI1NTQxNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDS04iOwotICAgICAgdGltaW5nX3R5cGUgOiByZWNvdmVyeV9mYWxsaW5nOwotICAgICAgd2hlbiA6ICJSTiI7Ci0gICAgICBzZGZfY29uZCA6ICJSTiA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChyZWNvdmVyeV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzEyNSwgMC4wMiwgMC4wMDc1LCAwLjAwMTI1LCAtMC4wMTEyNSwgLTAuMDIxMjUsIC0wLjAzNjI1IiwgXAotICAgICAgICAgICIwLjA0MjUsIDAuMDMxMjUsIDAuMDE4NzUsIDAuMDA2MjUsIDAsIC0wLjAxNjI1LCAtMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMDU1LCAwLjA0Mzc1LCAwLjAzMTI1LCAwLjAxODc1LCAwLjAwNjI1LCAtMC4wMDM3NSwgLTAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4wNjEyNSwgMC4wNTYyNSwgMC4wNDM3NSwgMC4wMzEyNSwgMC4wMTg3NSwgMC4wMDg3NSwgMCIsIFwKLSAgICAgICAgICAiMC4wNzM3NSwgMC4wNjI1LCAwLjA1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDE1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICIwLjA5LCAwLjA3ODc1LCAwLjA2NjI1LCAwLjA1Mzc1LCAwLjA0NzUsIDAuMDMxMjUsIDAuMDIyNSIsIFwKLSAgICAgICAgICAiMC4xMDUsIDAuMDkzNzUsIDAuMDgxMjUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNDYyNSwgMC4wMzc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJlbW92YWxfZmFsbGluZzsKLSAgICAgIHdoZW4gOiAiUk4iOwotICAgICAgc2RmX2NvbmQgOiAiUk4gPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQocmVtb3ZhbF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTI1LCAwLjAyMzc1LCAwLjAzNjI1LCAwLjA0MjUsIDAuMDU1LCAwLjA2NSwgMC4wNzM3NSIsIFwKLSAgICAgICAgICAiMC4wMDEyNSwgMC4wMTI1LCAwLjAyNSwgMC4wMzc1LCAwLjA0Mzc1LCAwLjA1Mzc1LCAwLjA2MjUiLCBcCi0gICAgICAgICAgIi0wLjAxMTI1LCAwLCAwLjAxMjUsIDAuMDI1LCAwLjAzMTI1LCAwLjA0NzUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIi0wLjAxNzUsIC0wLjAwNjI1LCAwLjAwNjI1LCAwLjAxMjUsIDAuMDI1LCAwLjAzNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLjAwNjI1LCAwLjAxODc1LCAwLjAyODc1LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjA0LCAtMC4wMjg3NSwgLTAuMDE2MjUsIC0wLjAwMzc1LCAwLjAwMjUsIDAuMDE4NzUsIDAuMDI3NSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjAzNzUsIC0wLjAyNSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAuMDEsIDAuMDE4NzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBTREZGUVgxICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKFNERkZRWDEpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4zMjYyOTM7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgZmYgKE4zMCxRQklOVCkgewotICAgIG5leHRfc3RhdGUgOiAiKChTRSBTSSkgKyAoIVNFIEQpKSI7Ci0gICAgY2xvY2tlZF9vbiA6ICJDSyI7Ci0gIH0KLSAgcGluKENLKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA1NzgyNTE7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNTc3ODgzOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDU3ODI1MTsKLSAgICBjbG9jayA6IHRydWU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyNzk3LCAwLjAwMjc3LCAwLjAwMjc1NSwgMC4wMDI3NiwgMC4wMDI3NjksIDAuMDAyNzk0LCAwLjAwMjgxNCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNTkyOSwgMC4wMDU5MDUsIDAuMDA1OTAzLCAwLjAwNTkwOCwgMC4wMDU5MzIsIDAuMDA1OTcxLCAwLjAwNjAxNCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQmIVNFJiFTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fU0VfRVFfMF9BTl9TSV9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMTQ0NDk4LCAwLjE1NDcxMiwgMC4xNjc0MzIsIDAuMTc5MjMxLCAwLjE4OTcwOSwgMC4yMDQwNjEsIDAuMjE1MDciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjA5MDM4NSwgMC4xMDAzNzcsIDAuMTEyNjM4LCAwLjEyMzg2NSwgMC4xMzM3MDQsIDAuMTQ2ODAzLCAwLjE1NjkyIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihEKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2NTYxMTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2NTQ4Njk7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjU2MTE7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyNzAzLCAwLjAwMjY4NywgMC4wMDI2NzgsIDAuMDAyNjczLCAwLjAwMjY3MSwgMC4wMDI2NzQsIDAuMDAyNjg1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA0MTUsIDAuMDA0MTQxLCAwLjAwNDEzNSwgMC4wMDQxMzMsIDAuMDA0MTMzLCAwLjAwNDEzNSwgMC4wMDQxNDEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIVNFIjsKLSAgICAgIHNkZl9jb25kIDogIlNFID09IDEnYjAiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjA1LCAtMC4wNDUsIC0wLjAzODc1LCAtMC4wMzI1LCAtMC4wMjYyNSwgLTAuMDE2MjUsIC0wLjAxMzc1IiwgXAotICAgICAgICAgICItMC4wNjEyNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDI3NSwgLTAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjA3Mzc1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wMzM3NSwgLTAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjA4LCAtMC4wNzUsIC0wLjA2ODc1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDQ2MjUsIC0wLjA0Mzc1IiwgXAotICAgICAgICAgICItMC4wOTI1LCAtMC4wODEyNSwgLTAuMDc1LCAtMC4wNjg3NSwgLTAuMDYyNSwgLTAuMDU4NzUsIC0wLjA1IiwgXAotICAgICAgICAgICItMC4xMDg3NSwgLTAuMDk3NSwgLTAuMDkxMjUsIC0wLjA4NSwgLTAuMDc4NzUsIC0wLjA3NSwgLTAuMDY2MjUiLCBcCi0gICAgICAgICAgIi0wLjExNzUsIC0wLjExMjUsIC0wLjEwNjI1LCAtMC4xLCAtMC4wOTM3NSwgLTAuMDgzNzUsIC0wLjA4MTI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDEyNSwgLTAuMDA3NSwgMC4wMDUsIDAuMDE3NSwgMC4wMjM3NSwgMC4wMzM3NSwgMC4wNDI1IiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDEyNSwgMCwgMC4wMDYyNSwgMC4wMTI1LCAwLjAyODc1LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMjUsIC0wLjAxMjUsIDAsIDAuMDA2MjUsIDAuMDE2MjUsIDAuMDI1IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLjAxLCAwLjAxODc1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDQzNzUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDAyNSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDU4NzUsIC0wLjA1Mzc1LCAtMC4wNDEyNSwgLTAuMDM1LCAtMC4wMjI1LCAtMC4wMTI1LCAtMC4wMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDY3NSwgLTAuMDYyNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wMzEyNSwgLTAuMDIxMjUsIC0wLjAxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJTRSA9PSAxJ2IwIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODEyNSwgMC4wNywgMC4wNjM3NSwgMC4wNTc1LCAwLjA1MTI1LCAwLjA0MTI1LCAwLjAzMjUiLCBcCi0gICAgICAgICAgIjAuMDkyNSwgMC4wODEyNSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA0NjI1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjEwNSwgMC4wOTM3NSwgMC4wODEyNSwgMC4wNzUsIDAuMDY4NzUsIDAuMDU4NzUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIjAuMTExMjUsIDAuMSwgMC4wOTM3NSwgMC4wODc1LCAwLjA4MTI1LCAwLjA3MTI1LCAwLjA2MjUiLCBcCi0gICAgICAgICAgIjAuMTIzNzUsIDAuMTEyNSwgMC4xLCAwLjA5Mzc1LCAwLjA4NzUsIDAuMDgzNzUsIDAuMDc1IiwgXAotICAgICAgICAgICIwLjE0LCAwLjEyODc1LCAwLjExNjI1LCAwLjExLCAwLjEwMzc1LCAwLjA5Mzc1LCAwLjA5MTI1IiwgXAotICAgICAgICAgICIwLjE0ODc1LCAwLjE0Mzc1LCAwLjEzMTI1LCAwLjEyNSwgMC4xMTg3NSwgMC4xMDg3NSwgMC4xIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDYyNSwgMC4wNTEyNSwgMC4wMzg3NSwgMC4wMjYyNSwgMC4wMiwgMC4wMDM3NSwgLTAuMDA1IiwgXAotICAgICAgICAgICIwLjA3Mzc1LCAwLjA2MjUsIDAuMDUsIDAuMDM3NSwgMC4wMjUsIDAuMDA4NzUsIDAiLCBcCi0gICAgICAgICAgIjAuMDgsIDAuMDY4NzUsIDAuMDU2MjUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMjEyNSwgMC4wMTI1IiwgXAotICAgICAgICAgICIwLjA5MjUsIDAuMDgxMjUsIDAuMDY4NzUsIDAuMDU2MjUsIDAuMDQzNzUsIDAuMDMzNzUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMDk4NzUsIDAuMDg3NSwgMC4wNzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNCwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4xMTUsIDAuMTAzNzUsIDAuMDkxMjUsIDAuMDc4NzUsIDAuMDY2MjUsIDAuMDU2MjUsIDAuMDQxMjUiLCBcCi0gICAgICAgICAgIjAuMTIzNzUsIDAuMTEyNSwgMC4xLCAwLjA4NzUsIDAuMDgxMjUsIDAuMDY1LCAwLjA1NjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihRKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMjY0NTY4OwotICAgIGZ1bmN0aW9uIDogIk4zMCI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3NlbnNlIDogbm9uX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiByaXNpbmdfZWRnZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTMwMDA3LCAwLjE1NDQ4OCwgMC4yOTMyOCwgMC40MTU5NDMsIDAuNTc5NDE2LCAwLjkwNjQzNiwgMS4xMTA4MyIsIFwKLSAgICAgICAgICAiMC4xNDAyMDksIDAuMTY0NjkyLCAwLjMwMzQ4NSwgMC40MjYwOTksIDAuNTg5NjEyLCAwLjkxNjU1MywgMS4xMjEwNCIsIFwKLSAgICAgICAgICAiMC4xNTI4NzcsIDAuMTc3MzY0LCAwLjMxNjE2LCAwLjQzODc3OSwgMC42MDIyOTUsIDAuOTI5MzAyLCAxLjEzMzY5IiwgXAotICAgICAgICAgICIwLjE2NDU4NSwgMC4xODkwNzcsIDAuMzI3ODc2LCAwLjQ1MDUzNCwgMC42MTQwMDgsIDAuOTQxMDExLCAxLjE0NTM5IiwgXAotICAgICAgICAgICIwLjE3NDU0NiwgMC4xOTkwNDEsIDAuMzM3ODQ1LCAwLjQ2MDQ1MiwgMC42MjM5NywgMC45NTA4ODUsIDEuMTU1MzYiLCBcCi0gICAgICAgICAgIjAuMTg5MDk5LCAwLjIxMzU5NiwgMC4zNTI0MDcsIDAuNDc0OTgsIDAuNjM4NTM1LCAwLjk2NTUxNCwgMS4xNjk5MyIsIFwKLSAgICAgICAgICAiMC4xOTk4NjYsIDAuMjI0MzU0LCAwLjM2MzE3OSwgMC40ODU3NzMsIDAuNjQ5MjU2LCAwLjk3NjI4LCAxLjE4MDYyIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5MTk4NSwgMC4xNDE5OTUsIDAuNDI4MDEyLCAwLjY3OTU2OSwgMS4wMTgxMywgMS42ODk3MiwgMi4xMTAyNSIsIFwKLSAgICAgICAgICAiMC4wOTIwMDYsIDAuMTQxOTk0LCAwLjQyODAwMywgMC42Nzk3MzYsIDEuMDE4MDksIDEuNjkyMjMsIDIuMTEwMzciLCBcCi0gICAgICAgICAgIjAuMDkxOTg3LCAwLjE0MTk5NSwgMC40MjgwMDgsIDAuNjc5NzQ2LCAxLjAxODEzLCAxLjY4OTYxLCAyLjExMDEyIiwgXAotICAgICAgICAgICIwLjA5MTk2OSwgMC4xNDE5OTIsIDAuNDI4MDAzLCAwLjY3OTU2NSwgMS4wMTgxMiwgMS42ODk1NywgMi4xMDk4NSIsIFwKLSAgICAgICAgICAiMC4wOTIwNSwgMC4xNDE5OTQsIDAuNDI3OTk2LCAwLjY3OTczNCwgMS4wMTgxLCAxLjY5MjE3LCAyLjEwOTg5IiwgXAotICAgICAgICAgICIwLjA5MjA0NiwgMC4xNDE5OTYsIDAuNDI3NzU0LCAwLjY4MDUwNCwgMS4wMTgxMiwgMS42ODk3LCAyLjExMDQiLCBcCi0gICAgICAgICAgIjAuMDkyMDI2LCAwLjE0MTgzNCwgMC40Mjc5MDgsIDAuNjc5NzM1LCAxLjAxNzc1LCAxLjY4OTU1LCAyLjExMzM4Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE0NDQ5OCwgMC4xNjkyOTEsIDAuMzA5NTE2LCAwLjQzMzE5NSwgMC41OTgwNjMsIDAuOTI3ODczLCAxLjEzMzg1IiwgXAotICAgICAgICAgICIwLjE1NDcxMiwgMC4xNzk1MDgsIDAuMzE5NzMzLCAwLjQ0MzQxMiwgMC42MDgyNjYsIDAuOTM4MDgyLCAxLjE0NDAxIiwgXAotICAgICAgICAgICIwLjE2NzQzMiwgMC4xOTIyMjIsIDAuMzMyNDUxLCAwLjQ1NjEzMiwgMC42MjEsIDAuOTUwNzIxLCAxLjE1NjgyIiwgXAotICAgICAgICAgICIwLjE3OTIzMSwgMC4yMDQwMjUsIDAuMzQ0MjQ5LCAwLjQ2NzkyNywgMC42MzI4MDksIDAuOTYyNjA2LCAxLjE2ODU5IiwgXAotICAgICAgICAgICIwLjE4OTcxLCAwLjIxNDUwNSwgMC4zNTQ3MjcsIDAuNDc4NDA1LCAwLjY0MzI2NCwgMC45NzMwNzUsIDEuMTc5MDEiLCBcCi0gICAgICAgICAgIjAuMjA0MDYxLCAwLjIyODg1MywgMC4zNjkwNzQsIDAuNDkyNzU4LCAwLjY1NzU5OSwgMC45ODc0MjIsIDEuMTkzNDQiLCBcCi0gICAgICAgICAgIjAuMjE1MDcsIDAuMjM5ODY0LCAwLjM4MDA4MywgMC41MDM3NTYsIDAuNjY4NjI1LCAwLjk5ODQzMywgMS4yMDQ0MiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTA3MzksIDAuMTM5OTIyLCAwLjQyMTc1OSwgMC42NzE3LCAxLjAwNDQ0LCAxLjY2NTU0LCAyLjA4MjQyIiwgXAotICAgICAgICAgICIwLjA5MDc1NiwgMC4xMzk5MjMsIDAuNDIxOTcyLCAwLjY3MTcxOSwgMS4wMDI4NywgMS42Njk4NywgMi4wODUyOCIsIFwKLSAgICAgICAgICAiMC4wOTA3MzMsIDAuMTM5ODMyLCAwLjQyMTI5LCAwLjY3MTY4NSwgMS4wMDQ0MiwgMS42NjYwNCwgMi4wODE0MSIsIFwKLSAgICAgICAgICAiMC4wOTA3NjQsIDAuMTM5OTM3LCAwLjQyMTg4LCAwLjY3MTcwOSwgMS4wMDQ0MywgMS42NjQ1MSwgMi4wODMwNSIsIFwKLSAgICAgICAgICAiMC4wOTA3NSwgMC4xMzk5MjEsIDAuNDIxOTczLCAwLjY3MTcxNCwgMS4wMDMwNiwgMS42Njk4OCwgMi4wODUyMSIsIFwKLSAgICAgICAgICAiMC4wOTA3MTksIDAuMTQwMDYyLCAwLjQyMTk5NCwgMC42NzE3MTEsIDEuMDA0MzYsIDEuNjY5OTEsIDIuMDg1ODgiLCBcCi0gICAgICAgICAgIjAuMDkwOCwgMC4xNDAxMjUsIDAuNDIxOTcyLCAwLjY3MTY2MywgMS4wMDQzNywgMS42NjQ5MywgMi4wODIzNiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDU5ODEsIDAuMDA1OTcsIDAuMDA1OTMxLCAwLjAwNTkxNywgMC4wMDU5MDksIDAuMDA1OSwgMC4wMDU4OTgiLCBcCi0gICAgICAgICAgIjAuMDA1OTUsIDAuMDA1OTQsIDAuMDA1OSwgMC4wMDU4ODcsIDAuMDA1ODc4LCAwLjAwNTg3LCAwLjAwNTg2NyIsIFwKLSAgICAgICAgICAiMC4wMDU5MzQsIDAuMDA1OTI1LCAwLjAwNTg4NiwgMC4wMDU4NzIsIDAuMDA1ODYzLCAwLjAwNTg1NSwgMC4wMDU4NTIiLCBcCi0gICAgICAgICAgIjAuMDA1OTM3LCAwLjAwNTkyOCwgMC4wMDU4OSwgMC4wMDU4NzUsIDAuMDA1ODY3LCAwLjAwNTg1NywgMC4wMDU4NTUiLCBcCi0gICAgICAgICAgIjAuMDA1OTU2LCAwLjAwNTk0OCwgMC4wMDU5MTEsIDAuMDA1ODk3LCAwLjAwNTg4OCwgMC4wMDU4NzgsIDAuMDA1ODc1IiwgXAotICAgICAgICAgICIwLjAwNTk3NywgMC4wMDU5NywgMC4wMDU5MzQsIDAuMDA1OTE5LCAwLjAwNTkxLCAwLjAwNTg5OSwgMC4wMDU4OTYiLCBcCi0gICAgICAgICAgIjAuMDA2MDAxLCAwLjAwNTk5NCwgMC4wMDU5NiwgMC4wMDU5NDUsIDAuMDA1OTM1LCAwLjAwNTkyNSwgMC4wMDU5MjIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDYyMDUsIDAuMDA2MjE1LCAwLjAwNjIyOSwgMC4wMDYyMzIsIDAuMDA2MjMzLCAwLjAwNjIzNSwgMC4wMDYyMzUiLCBcCi0gICAgICAgICAgIjAuMDA2MTc0LCAwLjAwNjE4MywgMC4wMDYxOTgsIDAuMDA2MjAxLCAwLjAwNjIwMywgMC4wMDYyMDQsIDAuMDA2MjA1IiwgXAotICAgICAgICAgICIwLjAwNjE3MSwgMC4wMDYxODEsIDAuMDA2MTk1LCAwLjAwNjE5OCwgMC4wMDYyLCAwLjAwNjIwMiwgMC4wMDYyMDIiLCBcCi0gICAgICAgICAgIjAuMDA2MTg3LCAwLjAwNjE5NiwgMC4wMDYyMSwgMC4wMDYyMTMsIDAuMDA2MjE1LCAwLjAwNjIxNywgMC4wMDYyMTciLCBcCi0gICAgICAgICAgIjAuMDA2MjE1LCAwLjAwNjIyNSwgMC4wMDYyMzksIDAuMDA2MjQyLCAwLjAwNjI0NCwgMC4wMDYyNDUsIDAuMDA2MjQ2IiwgXAotICAgICAgICAgICIwLjAwNjI1NSwgMC4wMDYyNjQsIDAuMDA2Mjc4LCAwLjAwNjI4MSwgMC4wMDYyODMsIDAuMDA2Mjg0LCAwLjAwNjI4NSIsIFwKLSAgICAgICAgICAiMC4wMDYzMDEsIDAuMDA2MzEsIDAuMDA2MzIzLCAwLjAwNjMyNiwgMC4wMDYzMjgsIDAuMDA2MzI5LCAwLjAwNjMzIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTRSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxMzUxNzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDEzNTE1MTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDEzNTE3OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzkxMywgMC4wMDM4OTEsIDAuMDAzODk1LCAwLjAwMzg5NiwgMC4wMDM5MTIsIDAuMDAzOTMzLCAwLjAwMzk1OCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNTQwMywgMC4wMDUzNjcsIDAuMDA1MzcsIDAuMDA1MzY5LCAwLjAwNTM4LCAwLjAwNTQyMSwgMC4wMDU0NjMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUQmU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1NJX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDQzNzUsIC0wLjAzODc1LCAtMC4wMjYyNSwgLTAuMDIsIC0wLjAyLCAtMC4wMSwgLTAuMDAxMjUiLCBcCi0gICAgICAgICAgIi0wLjA1NSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAyMTI1LCAtMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wNjc1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMjc1LCAtMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjA3Mzc1LCAtMC4wNjg3NSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNCwgLTAuMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDg2MjUsIC0wLjA4MTI1LCAtMC4wNzUsIC0wLjA2ODc1LCAtMC4wNjI1LCAtMC4wNTI1LCAtMC4wNSIsIFwKLSAgICAgICAgICAiLTAuMTAyNSwgLTAuMDk3NSwgLTAuMDkxMjUsIC0wLjA4NSwgLTAuMDc4NzUsIC0wLjA2ODc1LCAtMC4wNjYyNSIsIFwKLSAgICAgICAgICAiLTAuMTE3NSwgLTAuMTA2MjUsIC0wLjEsIC0wLjA5Mzc1LCAtMC4wODc1LCAtMC4wODM3NSwgLTAuMDc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDA2MjUsIC0wLjAwMTI1LCAwLjAxMTI1LCAwLjAyMzc1LCAwLjAzLCAwLjA0LCAwLjA0ODc1IiwgXAotICAgICAgICAgICItMC4wMTc1LCAtMC4wMDYyNSwgMC4wMDYyNSwgMC4wMTI1LCAwLjAxODc1LCAwLjAzNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAxODc1LCAtMC4wMDYyNSwgMCwgMC4wMTI1LCAwLjAyMjUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLCAwLjAxLCAwLjAxODc1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDM3NSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgMC4wMDM3NSwgMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wNTg3NSwgLTAuMDQ3NSwgLTAuMDQxMjUsIC0wLjAyODc1LCAtMC4wMjI1LCAtMC4wMTI1LCAtMC4wMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDY3NSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDMxMjUsIC0wLjAyMTI1LCAtMC4wMTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIkQmIVNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMV9BTl9TSV9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAyNSwgLTAuMDEzNzUsIC0wLjAwMTI1LCAwLjAwNSwgMC4wMTc1LCAwLjAyNzUsIDAuMDM2MjUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMjUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLjAwNjI1LCAwLjAxNjI1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDM3NSwgLTAuMDI1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMC4wMDM3NSwgMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA0Mzc1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMTI1LCAtMC4wMDI1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wNjEyNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMDg3NSwgMCIsIFwKLSAgICAgICAgICAiLTAuMDcxMjUsIC0wLjA2LCAtMC4wNTM3NSwgLTAuMDQxMjUsIC0wLjAzNSwgLTAuMDE4NzUsIC0wLjAxIiwgXAotICAgICAgICAgICItMC4wOCwgLTAuMDY4NzUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjAyNzUsIC0wLjAxODc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDYyNSwgLTAuMDUxMjUsIC0wLjA0NSwgLTAuMDM4NzUsIC0wLjAzMjUsIC0wLjAyODc1LCAtMC4wMiIsIFwKLSAgICAgICAgICAiLTAuMDczNzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjAzMzc1LCAtMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDgsIC0wLjA3NSwgLTAuMDY4NzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNDYyNSwgLTAuMDQzNzUiLCBcCi0gICAgICAgICAgIi0wLjA5MjUsIC0wLjA4MTI1LCAtMC4wNzUsIC0wLjA2ODc1LCAtMC4wNjI1LCAtMC4wNTI1LCAtMC4wNSIsIFwKLSAgICAgICAgICAiLTAuMDk4NzUsIC0wLjA4NzUsIC0wLjA4MTI1LCAtMC4wNzUsIC0wLjA2ODc1LCAtMC4wNjUsIC0wLjA1NjI1IiwgXAotICAgICAgICAgICItMC4xMDI1LCAtMC4wOTc1LCAtMC4wOTEyNSwgLTAuMDg1LCAtMC4wNzg3NSwgLTAuMDY4NzUsIC0wLjA2NjI1IiwgXAotICAgICAgICAgICItMC4xMTEyNSwgLTAuMTA2MjUsIC0wLjA5Mzc1LCAtMC4wODc1LCAtMC4wODc1LCAtMC4wNzc1LCAtMC4wNjg3NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUQmU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1NJX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc1LCAwLjA2Mzc1LCAwLjA1NzUsIDAuMDQ1LCAwLjAzODc1LCAwLjAzNSwgMC4wMjYyNSIsIFwKLSAgICAgICAgICAiMC4wODYyNSwgMC4wNzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNSwgMC4wNCwgMC4wMzc1IiwgXAotICAgICAgICAgICIwLjA5ODc1LCAwLjA4NzUsIDAuMDc1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDUyNSwgMC4wNSIsIFwKLSAgICAgICAgICAiMC4xMDUsIDAuMSwgMC4wODc1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNjUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIjAuMTE3NSwgMC4xMDYyNSwgMC4xLCAwLjA5Mzc1LCAwLjA4NzUsIDAuMDc3NSwgMC4wNjg3NSIsIFwKLSAgICAgICAgICAiMC4xNCwgMC4xMjg3NSwgMC4xMTYyNSwgMC4xMSwgMC4xMDM3NSwgMC4wOTM3NSwgMC4wODUiLCBcCi0gICAgICAgICAgIjAuMTQ4NzUsIDAuMTM3NSwgMC4xMzEyNSwgMC4xMjUsIDAuMTE4NzUsIDAuMTA4NzUsIDAuMSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1NjI1LCAwLjA0NSwgMC4wMzI1LCAwLjAyLCAwLjAwNzUsIC0wLjAwMjUsIC0wLjAxMTI1IiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDU2MjUsIDAuMDQzNzUsIDAuMDMxMjUsIDAuMDE4NzUsIDAuMDAyNSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMDczNzUsIDAuMDYyNSwgMC4wNSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAxNSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiMC4wODYyNSwgMC4wNzUsIDAuMDYyNSwgMC4wNSwgMC4wNDM3NSwgMC4wMjc1LCAwLjAxODc1IiwgXAotICAgICAgICAgICIwLjA5ODc1LCAwLjA4NzUsIDAuMDc1LCAwLjA2MjUsIDAuMDUsIDAuMDQsIDAuMDI1IiwgXAotICAgICAgICAgICIwLjExNSwgMC4xMDM3NSwgMC4wOTEyNSwgMC4wNzg3NSwgMC4wNjYyNSwgMC4wNTYyNSwgMC4wNDEyNSIsIFwKLSAgICAgICAgICAiMC4xMywgMC4xMTg3NSwgMC4xMDYyNSwgMC4wOTM3NSwgMC4wODEyNSwgMC4wNjUsIDAuMDU2MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIkQmIVNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMV9BTl9TSV9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2ODc1LCAwLjA1NzUsIDAuMDQ1LCAwLjAzODc1LCAwLjAyNjI1LCAwLjAxLCAwLjAwMTI1IiwgXAotICAgICAgICAgICIwLjA4LCAwLjA2ODc1LCAwLjA1NjI1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDIxMjUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4wOTI1LCAwLjA4MTI1LCAwLjA2ODc1LCAwLjA1NjI1LCAwLjA1LCAwLjAzMzc1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiMC4wOTg3NSwgMC4wODc1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNTYyNSwgMC4wNCwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4xMTEyNSwgMC4xLCAwLjA4NzUsIDAuMDc1LCAwLjA2MjUsIDAuMDQ2MjUsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiMC4xMjEyNSwgMC4xMSwgMC4wOTc1LCAwLjA4NSwgMC4wNzI1LCAwLjA2MjUsIDAuMDQ3NSIsIFwKLSAgICAgICAgICAiMC4xMjM3NSwgMC4xMTI1LCAwLjEwNjI1LCAwLjA5Mzc1LCAwLjA4MTI1LCAwLjA2NSwgMC4wNTYyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5Mzc1LCAwLjA4MjUsIDAuMDcsIDAuMDYzNzUsIDAuMDU3NSwgMC4wNDc1LCAwLjA0NSIsIFwKLSAgICAgICAgICAiMC4xMDUsIDAuMDkzNzUsIDAuMDgxMjUsIDAuMDc1LCAwLjA2ODc1LCAwLjA1ODc1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICIwLjExMTI1LCAwLjEsIDAuMDkzNzUsIDAuMDg3NSwgMC4wODEyNSwgMC4wNzEyNSwgMC4wNjI1IiwgXAotICAgICAgICAgICIwLjEyMzc1LCAwLjExMjUsIDAuMSwgMC4wOTM3NSwgMC4wODc1LCAwLjA3NzUsIDAuMDc1IiwgXAotICAgICAgICAgICIwLjEzLCAwLjExODc1LCAwLjEwNjI1LCAwLjEsIDAuMDkzNzUsIDAuMDgzNzUsIDAuMDgxMjUiLCBcCi0gICAgICAgICAgIjAuMTMzNzUsIDAuMTI4NzUsIDAuMTE2MjUsIDAuMTEsIDAuMTAzNzUsIDAuMDkzNzUsIDAuMDg1IiwgXAotICAgICAgICAgICIwLjE0MjUsIDAuMTMxMjUsIDAuMTE4NzUsIDAuMTEyNSwgMC4xMDYyNSwgMC4xMDI1LCAwLjA5Mzc1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTSSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNzEzMjE1OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDcxMTc4MzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA3MTMyMTU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyNDg3LCAwLjAwMjQ3MSwgMC4wMDI0NjMsIDAuMDAyNDU4LCAwLjAwMjQ1NywgMC4wMDI0NjIsIDAuMDAyNDcyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA0Mjc1LCAwLjAwNDI2NiwgMC4wMDQyNiwgMC4wMDQyNTgsIDAuMDA0MjU5LCAwLjAwNDI2MSwgMC4wMDQyNjkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiU0UiOwotICAgICAgc2RmX2NvbmQgOiAiU0UgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDUsIC0wLjA0NSwgLTAuMDMyNSwgLTAuMDI2MjUsIC0wLjAyNjI1LCAtMC4wMTYyNSwgLTAuMDA3NSIsIFwKLSAgICAgICAgICAiLTAuMDYxMjUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAyMTI1LCAtMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDY3NSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDMzNzUsIC0wLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wOCwgLTAuMDc1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDU2MjUsIC0wLjA0NjI1LCAtMC4wMzc1IiwgXAotICAgICAgICAgICItMC4wOTI1LCAtMC4wODEyNSwgLTAuMDc1LCAtMC4wNjg3NSwgLTAuMDYyNSwgLTAuMDU4NzUsIC0wLjA1IiwgXAotICAgICAgICAgICItMC4xMDI1LCAtMC4wOTc1LCAtMC4wOTEyNSwgLTAuMDg1LCAtMC4wNzg3NSwgLTAuMDY4NzUsIC0wLjA2NjI1IiwgXAotICAgICAgICAgICItMC4xMTc1LCAtMC4xMTI1LCAtMC4xLCAtMC4wOTM3NSwgLTAuMDkzNzUsIC0wLjA4Mzc1LCAtMC4wODEyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAxMjUsIC0wLjAwNzUsIDAuMDA1LCAwLjAxNzUsIDAuMDIzNzUsIDAuMDMzNzUsIDAuMDQyNSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxMjUsIDAsIDAuMDA2MjUsIDAuMDE4NzUsIDAuMDI4NzUsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAyNSwgLTAuMDEyNSwgMCwgMC4wMDYyNSwgMC4wMTYyNSwgMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgMCwgMC4wMSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDAyNSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDU4NzUsIC0wLjA1Mzc1LCAtMC4wNDEyNSwgLTAuMDI4NzUsIC0wLjAyMjUsIC0wLjAxMjUsIC0wLjAwMzc1IiwgXAotICAgICAgICAgICItMC4wNjc1LCAtMC4wNjI1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjAzMTI1LCAtMC4wMjEyNSwgLTAuMDEyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiU0UiOwotICAgICAgc2RmX2NvbmQgOiAiU0UgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDgxMjUsIDAuMDcsIDAuMDU3NSwgMC4wNTEyNSwgMC4wNDUsIDAuMDQxMjUsIDAuMDMyNSIsIFwKLSAgICAgICAgICAiMC4wOTI1LCAwLjA4MTI1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDQ2MjUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMDk4NzUsIDAuMDg3NSwgMC4wODEyNSwgMC4wNzUsIDAuMDY4NzUsIDAuMDU4NzUsIDAuMDUiLCBcCi0gICAgICAgICAgIjAuMTExMjUsIDAuMSwgMC4wOTM3NSwgMC4wODEyNSwgMC4wNzUsIDAuMDcxMjUsIDAuMDYyNSIsIFwKLSAgICAgICAgICAiMC4xMjM3NSwgMC4xMTI1LCAwLjEsIDAuMDkzNzUsIDAuMDg3NSwgMC4wNzc1LCAwLjA3NSIsIFwKLSAgICAgICAgICAiMC4xNCwgMC4xMjg3NSwgMC4xMTYyNSwgMC4xMSwgMC4xMDM3NSwgMC4wOTM3NSwgMC4wOTEyNSIsIFwKLSAgICAgICAgICAiMC4xNDg3NSwgMC4xMzc1LCAwLjEzMTI1LCAwLjEyNSwgMC4xMTg3NSwgMC4xMDg3NSwgMC4xIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDYyNSwgMC4wNTEyNSwgMC4wMzg3NSwgMC4wMjYyNSwgMC4wMTM3NSwgMC4wMDM3NSwgLTAuMDA1IiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDYyNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAyNSwgMC4wMDg3NSwgMCIsIFwKLSAgICAgICAgICAiMC4wOCwgMC4wNjg3NSwgMC4wNTYyNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAyMTI1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMDkyNSwgMC4wODEyNSwgMC4wNjg3NSwgMC4wNTYyNSwgMC4wNDM3NSwgMC4wMjc1LCAwLjAxODc1IiwgXAotICAgICAgICAgICIwLjA5ODc1LCAwLjA4NzUsIDAuMDc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDQsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMTE1LCAwLjEwMzc1LCAwLjA5MTI1LCAwLjA3ODc1LCAwLjA2NjI1LCAwLjA1LCAwLjA0MTI1IiwgXAotICAgICAgICAgICIwLjEyMzc1LCAwLjExMjUsIDAuMSwgMC4wODc1LCAwLjA3NSwgMC4wNjUsIDAuMDUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IFNERkZSSFFYMSAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKFNERkZSSFFYMSkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjQ4MDQzOwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIGZmIChOMzAsUUJJTlQpIHsKLSAgICBuZXh0X3N0YXRlIDogIigoU0UgU0kpICsgKCFTRSBEKSkiOwotICAgIGNsb2NrZWRfb24gOiAiQ0siOwotICAgIGNsZWFyIDogIighUk4pIjsKLSAgfQotICBwaW4oQ0spICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYyMDA2OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYxOTg3NzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2MjAwNjsKLSAgICBjbG9jayA6IHRydWU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzMjU4LCAwLjAwMzIzMiwgMC4wMDMyMTksIDAuMDAzMjIsIDAuMDAzMjMxLCAwLjAwMzI1NSwgMC4wMDMyNzIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDgxOTgsIDAuMDA4MTcyLCAwLjAwODE2NSwgMC4wMDgxODQsIDAuMDA4MTk3LCAwLjAwODIzOCwgMC4wMDgyNzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFEJlJOJiFTRSYhU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1JOX0VRXzFfQU5fU0VfRVFfMF9BTl9TSV9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMTU0MzI5LCAwLjE2NDUzMSwgMC4xNzczMDYsIDAuMTg5NzgsIDAuMjAxMjYzLCAwLjIxNzE3NSwgMC4yMjk1MzEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjA5Nzg5NCwgMC4xMDc3MDQsIDAuMTIwMjk5LCAwLjEzMjIzOSwgMC4xNDMxMDksIDAuMTU3ODM3LCAwLjE2OTE4NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwODY4NDczOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDg2NTQ4NDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA4Njg0NzM7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzNjg1LCAwLjAwMzY1MywgMC4wMDM2MzUsIDAuMDAzNjI3LCAwLjAwMzYyMSwgMC4wMDM2MywgMC4wMDM2MzMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDYxMDEsIDAuMDA2MDgzLCAwLjAwNjA3MiwgMC4wMDYwNjksIDAuMDA2MDY2LCAwLjAwNjA3NCwgMC4wMDYwNzYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiUk4mIVNFIjsKLSAgICAgIHNkZl9jb25kIDogIlJOX0VRXzFfQU5fU0VfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wNDM3NSwgLTAuMDM4NzUsIC0wLjAyNjI1LCAtMC4wMiwgLTAuMDEzNzUsIC0wLjAwMzc1LCAtMC4wMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDE1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDY3NSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDI3NSwgLTAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjA3Mzc1LCAtMC4wNjg3NSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDMzNzUsIC0wLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wODYyNSwgLTAuMDc1LCAtMC4wNjg3NSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA0NjI1LCAtMC4wMzc1IiwgXAotICAgICAgICAgICItMC4xMDI1LCAtMC4wOTEyNSwgLTAuMDg1LCAtMC4wNzg3NSwgLTAuMDcyNSwgLTAuMDYyNSwgLTAuMDUzNzUiLCBcCi0gICAgICAgICAgIi0wLjExMTI1LCAtMC4xMDYyNSwgLTAuMDkzNzUsIC0wLjA4NzUsIC0wLjA4MTI1LCAtMC4wNzEyNSwgLTAuMDY4NzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLCAwLjAwNSwgMC4wMTc1LCAwLjAzLCAwLjA0MjUsIDAuMDUyNSwgMC4wNjc1IiwgXAotICAgICAgICAgICItMC4wMTEyNSwgMCwgMC4wMTI1LCAwLjAyNSwgMC4wMzEyNSwgMC4wNDc1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICItMC4wMTc1LCAtMC4wMTI1LCAwLCAwLjAxMjUsIDAuMDI1LCAwLjAzNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAxODc1LCAtMC4wMDYyNSwgMC4wMDYyNSwgMC4wMTI1LCAwLjAyODc1LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMjUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLjAwNjI1LCAwLjAxNjI1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wNDYyNSwgLTAuMDM1LCAtMC4wMjg3NSwgLTAuMDE2MjUsIC0wLjAwMzc1LCAwLjAwNjI1LCAwLjAxNSIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDI1LCAtMC4wMTI1LCAtMC4wMDI1LCAwLjAwNjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJSTiYhU0UiOwotICAgICAgc2RmX2NvbmQgOiAiUk5fRVFfMV9BTl9TRV9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3NSwgMC4wNjM3NSwgMC4wNTEyNSwgMC4wNDUsIDAuMDM4NzUsIDAuMDI4NzUsIDAuMDIiLCBcCi0gICAgICAgICAgIjAuMDgsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNSwgMC4wNCwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4wOTI1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA0NjI1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjEwNSwgMC4wOTM3NSwgMC4wODEyNSwgMC4wNzUsIDAuMDY4NzUsIDAuMDU4NzUsIDAuMDUiLCBcCi0gICAgICAgICAgIjAuMTExMjUsIDAuMTA2MjUsIDAuMDkzNzUsIDAuMDg3NSwgMC4wODEyNSwgMC4wNzEyNSwgMC4wNjI1IiwgXAotICAgICAgICAgICIwLjEyNzUsIDAuMTE2MjUsIDAuMTEsIDAuMTAzNzUsIDAuMDkxMjUsIDAuMDg3NSwgMC4wNzg3NSIsIFwKLSAgICAgICAgICAiMC4xNDI1LCAwLjEzMTI1LCAwLjExODc1LCAwLjExMjUsIDAuMTA2MjUsIDAuMDk2MjUsIDAuMDg3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0Mzc1LCAwLjAzMjUsIDAuMDIsIDAuMDA3NSwgLTAuMDA1LCAtMC4wMjEyNSwgLTAuMDMiLCBcCi0gICAgICAgICAgIjAuMDQ4NzUsIDAuMDM3NSwgMC4wMjUsIDAuMDEyNSwgMC4wMDYyNSwgLTAuMDEsIC0wLjAyNSIsIFwKLSAgICAgICAgICAiMC4wNjEyNSwgMC4wNSwgMC4wMzc1LCAwLjAyNSwgMC4wMTI1LCAtMC4wMDM3NSwgLTAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4wNjc1LCAwLjA2MjUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMjUsIDAuMDA4NzUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICIwLjA4LCAwLjA2ODc1LCAwLjA1NjI1LCAwLjA0Mzc1LCAwLjAzMTI1LCAwLjAxNSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiMC4wOSwgMC4wODUsIDAuMDY2MjUsIDAuMDYsIDAuMDQ3NSwgMC4wMzEyNSwgMC4wMTYyNSIsIFwKLSAgICAgICAgICAiMC4xMDUsIDAuMDkzNzUsIDAuMDgxMjUsIDAuMDY4NzUsIDAuMDU2MjUsIDAuMDQsIDAuMDMxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFEpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4yNjM3MDg7Ci0gICAgZnVuY3Rpb24gOiAiTjMwIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBub25fdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJpc2luZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNTU2MzIsIDAuMTgwMzE1LCAwLjMxOTA5NCwgMC40NDE2ODQsIDAuNjA1MjI1LCAwLjkzMjI0MywgMS4xMzY1MyIsIFwKLSAgICAgICAgICAiMC4xNjU3ODYsIDAuMTkwNDY3LCAwLjMyOTI2LCAwLjQ1MTkwOSwgMC42MTUzNDcsIDAuOTQyMzM4LCAxLjE0Njg0IiwgXAotICAgICAgICAgICIwLjE3ODUxMywgMC4yMDMxOTMsIDAuMzQxOTc4LCAwLjQ2NDU1OCwgMC42MjgwNCwgMC45NTUsIDEuMTU5NSIsIFwKLSAgICAgICAgICAiMC4xOTA5NTQsIDAuMjE1NjQ1LCAwLjM1NDQ3NiwgMC40NzcwMjcsIDAuNjQwNTcyLCAwLjk2NzU2MSwgMS4xNzE4MiIsIFwKLSAgICAgICAgICAiMC4yMDIxNzgsIDAuMjI2ODYzLCAwLjM2NTY3LCAwLjQ4ODI2NiwgMC42NTE4MDYsIDAuOTc4ODEyLCAxLjE4MzI3IiwgXAotICAgICAgICAgICIwLjIxNzgwNSwgMC4yNDI1MDUsIDAuMzgxMzEyLCAwLjUwMzg4NiwgMC42NjczNDMsIDAuOTk0NDE1LCAxLjE5ODg4IiwgXAotICAgICAgICAgICIwLjIyOTg2LCAwLjI1NDU2LCAwLjM5MzM3OCwgMC41MTU5NTYsIDAuNjc5NTA1LCAxLjAwNjUsIDEuMjExIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5NTUwNywgMC4xNDQzNTYsIDAuNDI4MzA2LCAwLjY4MTIyNywgMS4wMTg0MiwgMS42OTI3NSwgMi4xMTE0NiIsIFwKLSAgICAgICAgICAiMC4wOTU1MDUsIDAuMTQ0MzQ4LCAwLjQyODU1MywgMC42Nzk4MDksIDEuMDE2NTgsIDEuNjkyNTksIDIuMTE0MzEiLCBcCi0gICAgICAgICAgIjAuMDk1NTA1LCAwLjE0NDM0OCwgMC40MjgzMTQsIDAuNjgxMjEyLCAxLjAxODI0LCAxLjY5MjQzLCAyLjExNDE1IiwgXAotICAgICAgICAgICIwLjA5NTUsIDAuMTQ0MzQ2LCAwLjQyODYyNiwgMC42ODEyMDksIDEuMDE2MywgMS42OTI2OSwgMi4xMTM3OSIsIFwKLSAgICAgICAgICAiMC4wOTU1MTEsIDAuMTQ0Mzc4LCAwLjQyODMwNiwgMC42ODEyMDYsIDEuMDE4NDIsIDEuNjkyNzIsIDIuMTE0MzUiLCBcCi0gICAgICAgICAgIjAuMDk1NTA2LCAwLjE0NDM0NiwgMC40Mjc5MTUsIDAuNjgxMTc5LCAxLjAxNjk1LCAxLjY5MjY3LCAyLjExNDI5IiwgXAotICAgICAgICAgICIwLjA5NTU0MSwgMC4xNDQzNTQsIDAuNDI4MjksIDAuNjgxMTYsIDEuMDE2MjEsIDEuNjkyNjgsIDIuMTEwMDUiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTU0MzI5LCAwLjE3OTEyLCAwLjMxOTMzOCwgMC40NDMwMzYsIDAuNjA3OTEzLCAwLjkzNzY5MiwgMS4xNDM2MiIsIFwKLSAgICAgICAgICAiMC4xNjQ1MzEsIDAuMTg5MzIsIDAuMzI5NTM0LCAwLjQ1MzIyNCwgMC42MTgwNzIsIDAuOTQ3ODc1LCAxLjE1Mzg3IiwgXAotICAgICAgICAgICIwLjE3NzMwNiwgMC4yMDIwOTUsIDAuMzQyMzIxLCAwLjQ2NjAwOCwgMC42MzA4MiwgMC45NjA2NjQsIDEuMTY2NTkiLCBcCi0gICAgICAgICAgIjAuMTg5NzgxLCAwLjIxNDU2OSwgMC4zNTQ3ODIsIDAuNDc4NDY4LCAwLjY0MzM2NiwgMC45NzMxMjksIDEuMTc5MjEiLCBcCi0gICAgICAgICAgIjAuMjAxMjY0LCAwLjIyNjA1MywgMC4zNjYyNjUsIDAuNDg5OTQ5LCAwLjY1NDgwMSwgMC45ODQ2MTMsIDEuMTkwNTkiLCBcCi0gICAgICAgICAgIjAuMjE3MTg0LCAwLjI0MTk3NCwgMC4zODIxODMsIDAuNTA1ODc0LCAwLjY3MDczMywgMS4wMDA1NCwgMS4yMDY1NSIsIFwKLSAgICAgICAgICAiMC4yMjk1MzUsIDAuMjU0MzI4LCAwLjM5NDUzOCwgMC41MTgyMjIsIDAuNjgzMDg0LCAxLjAxMjc2LCAxLjIxODg3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5MDQ5MSwgMC4xMzk2NTUsIDAuNDIxNzYyLCAwLjY3MTQ2OCwgMS4wMDQyMSwgMS42NjU4LCAyLjA4MTE2IiwgXAotICAgICAgICAgICIwLjA5MDQ5OCwgMC4xMzk3MTksIDAuNDIxODE2LCAwLjY3MTQ3NiwgMS4wMDQyOCwgMS42Njk5MSwgMi4wODU1NSIsIFwKLSAgICAgICAgICAiMC4wOTA0OTEsIDAuMTM5ODYzLCAwLjQyMjA0NiwgMC42NzE0NzEsIDEuMDAzMTMsIDEuNjY0MzMsIDIuMDg0NDgiLCBcCi0gICAgICAgICAgIjAuMDkwNDk2LCAwLjEzOTc0LCAwLjQyMTgwMSwgMC42NzE1MDUsIDEuMDA0MSwgMS42Njk4OSwgMi4wODU4IiwgXAotICAgICAgICAgICIwLjA5MDQ5OCwgMC4xMzk3MywgMC40MjE3OTYsIDAuNjcxNTAyLCAxLjAwNDA1LCAxLjY2NDg3LCAyLjA4NTE0IiwgXAotICAgICAgICAgICIwLjA5MDU3NywgMC4xMzk3NDcsIDAuNDIxODIxLCAwLjY3MTUsIDEuMDA0MjksIDEuNjY5OSwgMi4wODU4NSIsIFwKLSAgICAgICAgICAiMC4wOTA1NDgsIDAuMTM5NzQ0LCAwLjQyMTczMywgMC42NzE0OTYsIDEuMDA0MzEsIDEuNjY2MTIsIDIuMDgxNTgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUk4iOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGNsZWFyOwotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzUyMjQsIDAuMTAwMDYxLCAwLjI0MDE5MywgMC4zNjM4NTgsIDAuNTI4NzIsIDAuODU4NDQsIDEuMDY0NDciLCBcCi0gICAgICAgICAgIjAuMDg1MTMyLCAwLjEwOTk3OCwgMC4yNTAxMzEsIDAuMzczODA5LCAwLjUzODY0NCwgMC44NjgzOTMsIDEuMDc0NCIsIFwKLSAgICAgICAgICAiMC4wOTcxODMsIDAuMTIyMDM5LCAwLjI2MjIxNiwgMC4zODU4OTgsIDAuNTUwNzg4LCAwLjg4MDQzOSwgMS4wODY1MiIsIFwKLSAgICAgICAgICAiMC4xMDgwNTMsIDAuMTMyOTEsIDAuMjczMDk5LCAwLjM5Njc2OCwgMC41NjE2NzksIDAuODkxMzU2LCAxLjA5NzQxIiwgXAotICAgICAgICAgICIwLjExNzI3MSwgMC4xNDIxMjcsIDAuMjgyMzE5LCAwLjQwNTk2OSwgMC41NzA4MjMsIDAuOTAwNTY4LCAxLjEwNjYyIiwgXAotICAgICAgICAgICIwLjEyOTc3NiwgMC4xNTQ3ODYsIDAuMjk0OTc0LCAwLjQxODY2LCAwLjU4MzQ4NywgMC45MTMxNzksIDEuMTE5MjYiLCBcCi0gICAgICAgICAgIjAuMTM5NjY0LCAwLjE2NDUyNywgMC4zMDQ3MzksIDAuNDI4MzkxLCAwLjU5MzI0NiwgMC45MjI5OTQsIDEuMTI5MDYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDkwNzMyLCAwLjEzOTcwNSwgMC40MjEyMTcsIDAuNjcwNDM5LCAxLjAwMzE3LCAxLjY2ODgzLCAyLjA4NDgyIiwgXAotICAgICAgICAgICIwLjA5MDczNSwgMC4xMzk3MDEsIDAuNDIxMTc1LCAwLjY3MDI5NCwgMS4wMDMxNiwgMS42Njg3NCwgMi4wODQ2NyIsIFwKLSAgICAgICAgICAiMC4wOTA3ODQsIDAuMTM5NzAzLCAwLjQyMTE5LCAwLjY3MDU3OSwgMS4wMDE5MywgMS42Njg2MSwgMi4wODQ3OSIsIFwKLSAgICAgICAgICAiMC4wOTEwNzIsIDAuMTM5ODI4LCAwLjQyMTE5OCwgMC42NzA0NTUsIDEuMDAxOTMsIDEuNjY4NzUsIDIuMDg0NzIiLCBcCi0gICAgICAgICAgIjAuMDkxNTEyLCAwLjE0MDA4OSwgMC40MjExMjEsIDAuNjcwNDk4LCAxLjAwMjM0LCAxLjY2ODc2LCAyLjA4NDY1IiwgXAotICAgICAgICAgICIwLjA5MjI5OCwgMC4xNDA1ODksIDAuNDIxMTM0LCAwLjY3MDM0NCwgMS4wMDMxNiwgMS42Njg2OCwgMi4wODQ3NyIsIFwKLSAgICAgICAgICAiMC4wOTMxMjUsIDAuMTQxMDQ5LCAwLjQyMTEzOSwgMC42NzAyMzgsIDEuMDAyMywgMS42Njg4NCwgMi4wODQ3MyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDc1MDgsIDAuMDA3NDk4LCAwLjAwNzQ0OSwgMC4wMDc0MywgMC4wMDc0MTgsIDAuMDA3NDA3LCAwLjAwNzQwMyIsIFwKLSAgICAgICAgICAiMC4wMDc0NzcsIDAuMDA3NDY3LCAwLjAwNzQxOSwgMC4wMDc0LCAwLjAwNzM4NywgMC4wMDczNzYsIDAuMDA3MzczIiwgXAotICAgICAgICAgICIwLjAwNzQ2MiwgMC4wMDc0NTMsIDAuMDA3NDA2LCAwLjAwNzM4NiwgMC4wMDczNzQsIDAuMDA3MzYzLCAwLjAwNzM1OCIsIFwKLSAgICAgICAgICAiMC4wMDc0NjIsIDAuMDA3NDUzLCAwLjAwNzQwNywgMC4wMDczODcsIDAuMDA3Mzc0LCAwLjAwNzM2MywgMC4wMDczNTgiLCBcCi0gICAgICAgICAgIjAuMDA3NDczLCAwLjAwNzQ2NSwgMC4wMDc0MTksIDAuMDA3NCwgMC4wMDczODYsIDAuMDA3Mzc0LCAwLjAwNzM3IiwgXAotICAgICAgICAgICIwLjAwNzQ4OSwgMC4wMDc0ODIsIDAuMDA3NDM5LCAwLjAwNzQyLCAwLjAwNzQwNiwgMC4wMDczOTMsIDAuMDA3Mzg4IiwgXAotICAgICAgICAgICIwLjAwNzUxNywgMC4wMDc1MTEsIDAuMDA3NDcsIDAuMDA3NDUxLCAwLjAwNzQzNiwgMC4wMDc0MjMsIDAuMDA3NDE5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA3NzU4LCAwLjAwNzc2OCwgMC4wMDc3ODEsIDAuMDA3Nzg0LCAwLjAwNzc4NiwgMC4wMDc3ODcsIDAuMDA3Nzg4IiwgXAotICAgICAgICAgICIwLjAwNzczLCAwLjAwNzczOSwgMC4wMDc3NTMsIDAuMDA3NzU2LCAwLjAwNzc1OCwgMC4wMDc3NTksIDAuMDA3NzYiLCBcCi0gICAgICAgICAgIjAuMDA3NzI2LCAwLjAwNzczNSwgMC4wMDc3NDksIDAuMDA3NzUyLCAwLjAwNzc1NCwgMC4wMDc3NTUsIDAuMDA3NzU2IiwgXAotICAgICAgICAgICIwLjAwNzc0MiwgMC4wMDc3NTIsIDAuMDA3NzY1LCAwLjAwNzc2OCwgMC4wMDc3NywgMC4wMDc3NzIsIDAuMDA3NzcyIiwgXAotICAgICAgICAgICIwLjAwNzc1NywgMC4wMDc3NjYsIDAuMDA3Nzc5LCAwLjAwNzc4MiwgMC4wMDc3ODQsIDAuMDA3Nzg1LCAwLjAwNzc4NiIsIFwKLSAgICAgICAgICAiMC4wMDc3OSwgMC4wMDc3OTksIDAuMDA3ODEyLCAwLjAwNzgxNSwgMC4wMDc4MTYsIDAuMDA3ODE4LCAwLjAwNzgxOCIsIFwKLSAgICAgICAgICAiMC4wMDc4NSwgMC4wMDc4NiwgMC4wMDc4NzMsIDAuMDA3ODc1LCAwLjAwNzg3NywgMC4wMDc4NzgsIDAuMDA3ODc5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUk4iOwotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwODcyOSwgMC4wMDg3MzYsIDAuMDA4NzQ2LCAwLjAwODc0OCwgMC4wMDg3NDksIDAuMDA4NzUsIDAuMDA4NzUiLCBcCi0gICAgICAgICAgIjAuMDA4NjgyLCAwLjAwODY5MiwgMC4wMDg3MDUsIDAuMDA4NzA3LCAwLjAwODcwOCwgMC4wMDg3MSwgMC4wMDg3MSIsIFwKLSAgICAgICAgICAiMC4wMDg2NDksIDAuMDA4NjYsIDAuMDA4Njc4LCAwLjAwODY4MSwgMC4wMDg2ODMsIDAuMDA4Njg1LCAwLjAwODY4NiIsIFwKLSAgICAgICAgICAiMC4wMDg2MjYsIDAuMDA4NjM2LCAwLjAwODY1OSwgMC4wMDg2NjQsIDAuMDA4NjY2LCAwLjAwODY2OSwgMC4wMDg2NjkiLCBcCi0gICAgICAgICAgIjAuMDA4NjE0LCAwLjAwODYyOCwgMC4wMDg2NSwgMC4wMDg2NTUsIDAuMDA4NjU5LCAwLjAwODY2MSwgMC4wMDg2NjIiLCBcCi0gICAgICAgICAgIjAuMDA4NjE0LCAwLjAwODYyOCwgMC4wMDg2NSwgMC4wMDg2NiwgMC4wMDg2NjQsIDAuMDA4NjY3LCAwLjAwODY2OCIsIFwKLSAgICAgICAgICAiMC4wMDg2MjMsIDAuMDA4NjM3LCAwLjAwODY2NCwgMC4wMDg2NzEsIDAuMDA4NjcxLCAwLjAwODY3NSwgMC4wMDg2NzYiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfcG93ZXIoc2NhbGFyKSB7Ci0gICAgICAgIHZhbHVlcygiMCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUk4pICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTU3MzU3OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTQ1NDYyOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTU3MzU3OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDY1MywgMC4wMDA2NTIsIDAuMDAwNjUyLCAwLjAwMDY1MiwgMC4wMDA2NTIsIDAuMDAwNjUyLCAwLjAwMDY1MiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDY1NywgMC4wMDA2NTQsIDAuMDAwNjU0LCAwLjAwMDY1NCwgMC4wMDA2NTQsIDAuMDAwNjU0LCAwLjAwMDY1NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQmIVNFJiFTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fU0VfRVFfMF9BTl9TSV9FUV8wID09IDEnYjEiOwotICAgICAgZmFsbF9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDc5OTUxLCAwLjA4OTE3MSwgMC4wOTkxMzcsIDAuMTA4NTE1LCAwLjExNzI3MSwgMC4xMjk3NTksIDAuMTM5NjU1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogcmVjb3ZlcnlfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRCZTRSZTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fU0VfRVFfMV9BTl9TSV9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHJlY292ZXJ5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMzc1LCAtMC4wNDg3NSwgLTAuMDYxMjUsIC0wLjA3Mzc1LCAtMC4wODYyNSwgLTAuMTAyNSwgLTAuMTExMjUiLCBcCi0gICAgICAgICAgIi0wLjA0NSwgLTAuMDU2MjUsIC0wLjA2ODc1LCAtMC4wODEyNSwgLTAuMDg3NSwgLTAuMTAzNzUsIC0wLjExODc1IiwgXAotICAgICAgICAgICItMC4wMzg3NSwgLTAuMDUsIC0wLjA2MjUsIC0wLjA3NSwgLTAuMDg3NSwgLTAuMTAzNzUsIC0wLjExODc1IiwgXAotICAgICAgICAgICItMC4wMjYyNSwgLTAuMDM3NSwgLTAuMDU2MjUsIC0wLjA2ODc1LCAtMC4wODEyNSwgLTAuMDk3NSwgLTAuMTA2MjUiLCBcCi0gICAgICAgICAgIi0wLjAxMzc1LCAtMC4wMjUsIC0wLjAzNzUsIC0wLjA1NjI1LCAtMC4wNjg3NSwgLTAuMDg1LCAtMC4wOTM3NSIsIFwKLSAgICAgICAgICAiMC4wMDg3NSwgLTAuMDAyNSwgLTAuMDE1LCAtMC4wMjc1LCAtMC4wNCwgLTAuMDYyNSwgLTAuMDcxMjUiLCBcCi0gICAgICAgICAgIjAuMDM2MjUsIDAuMDE4NzUsIDAuMDA2MjUsIC0wLjAwNjI1LCAtMC4wMTg3NSwgLTAuMDQxMjUsIC0wLjA1NjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogcmVtb3ZhbF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEJlNFJlNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9TRV9FUV8xX0FOX1NJX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQocmVtb3ZhbF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTYyNSwgMC4wNjc1LCAwLjA4LCAwLjA5MjUsIDAuMTA1LCAwLjEyMTI1LCAwLjEzIiwgXAotICAgICAgICAgICIwLjA2Mzc1LCAwLjA3NSwgMC4wODc1LCAwLjEsIDAuMTEyNSwgMC4xMjg3NSwgMC4xMzc1IiwgXAotICAgICAgICAgICIwLjA3LCAwLjA4MTI1LCAwLjA5Mzc1LCAwLjEwNjI1LCAwLjExODc1LCAwLjEzNSwgMC4xNDM3NSIsIFwKLSAgICAgICAgICAiMC4wNzYyNSwgMC4wODc1LCAwLjEsIDAuMTEyNSwgMC4xMjUsIDAuMTQxMjUsIDAuMTUiLCBcCi0gICAgICAgICAgIjAuMDgyNSwgMC4wOTM3NSwgMC4xMDYyNSwgMC4xMTg3NSwgMC4xMzEyNSwgMC4xNDEyNSwgMC4xNTYyNSIsIFwKLSAgICAgICAgICAiMC4wOTEyNSwgMC4xMDI1LCAwLjExNSwgMC4xMjc1LCAwLjE0LCAwLjE1LCAwLjE2NSIsIFwKLSAgICAgICAgICAiMC4wOTUsIDAuMTA2MjUsIDAuMTE4NzUsIDAuMTMxMjUsIDAuMTQzNzUsIDAuMTYsIDAuMTY4NzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFNFKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE2MTcwNDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE2MTY0NzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE2MTcwNDsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDU3OSwgMC4wMDU3NjksIDAuMDA1NzYxLCAwLjAwNTc1OSwgMC4wMDU3NzIsIDAuMDA1Nzg2LCAwLjAwNTgxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA3MTU4LCAwLjAwNzEwNiwgMC4wMDcwODksIDAuMDA3MDk2LCAwLjAwNzExMSwgMC4wMDcxNjIsIDAuMDA3MjAzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlJOIjsKLSAgICAgIHNkZl9jb25kIDogIlJOID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAxMjUsIC0wLjAwMTI1LCAwLjAxMTI1LCAwLjAxNzUsIDAuMDMsIDAuMDQsIDAuMDU1IiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDEyNSwgMCwgMC4wMTI1LCAwLjAxODc1LCAwLjAzNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAyNSwgLTAuMDEyNSwgMCwgMC4wMDYyNSwgMC4wMjI1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAxMjUsIDAsIDAuMDEsIDAuMDI1IiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA0Mzc1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIDAuMDAzNzUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDY1LCAtMC4wNTM3NSwgLTAuMDQxMjUsIC0wLjAyODc1LCAtMC4wMjI1LCAtMC4wMDYyNSwgMC4wMDI1IiwgXAotICAgICAgICAgICItMC4wNzM3NSwgLTAuMDYyNSwgLTAuMDUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMTUsIC0wLjAwNjI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDYyNSwgMC4wMTEyNSwgMC4wMjM3NSwgMC4wMzYyNSwgMC4wNDg3NSwgMC4wNTg3NSwgMC4wNzM3NSIsIFwKLSAgICAgICAgICAiLTAuMDA1LCAwLjAwNjI1LCAwLjAxODc1LCAwLjAzMTI1LCAwLjAzNzUsIDAuMDUzNzUsIDAuMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDE3NSwgLTAuMDA2MjUsIDAuMDA2MjUsIDAuMDE4NzUsIDAuMDI1LCAwLjA0MTI1LCAwLjA1IiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAuMDA2MjUsIDAuMDE4NzUsIDAuMDI4NzUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMjUsIC0wLjAxMjUsIDAsIDAuMDA2MjUsIDAuMDIyNSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDQsIC0wLjAzNSwgLTAuMDIyNSwgLTAuMDEsIC0wLjAwMzc1LCAwLjAxMjUsIDAuMDIxMjUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIDAuMDAzNzUsIDAuMDEyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiUk4iOwotICAgICAgc2RmX2NvbmQgOiAiUk4gPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY4NzUsIDAuMDU3NSwgMC4wNDUsIDAuMDM4NzUsIDAuMDMyNSwgMC4wMjI1LCAwLjAxMzc1IiwgXAotICAgICAgICAgICIwLjA3Mzc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDUsIDAuMDM3NSwgMC4wMzM3NSwgMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMDg2MjUsIDAuMDc1LCAwLjA2ODc1LCAwLjA1NjI1LCAwLjA1LCAwLjA0LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIjAuMDk4NzUsIDAuMDg3NSwgMC4wNzUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNTI1LCAwLjA1IiwgXAotICAgICAgICAgICIwLjExMTI1LCAwLjEsIDAuMDg3NSwgMC4wODEyNSwgMC4wNzUsIDAuMDY1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICIwLjEyNzUsIDAuMTE2MjUsIDAuMTAzNzUsIDAuMDk3NSwgMC4wOTEyNSwgMC4wODEyNSwgMC4wNzI1IiwgXAotICAgICAgICAgICIwLjE0MjUsIDAuMTMxMjUsIDAuMTE4NzUsIDAuMTEyNSwgMC4xMDYyNSwgMC4wOTYyNSwgMC4wODc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg3NSwgMC4wNzYyNSwgMC4wNjM3NSwgMC4wNTc1LCAwLjA1MTI1LCAwLjA0MTI1LCAwLjAzMjUiLCBcCi0gICAgICAgICAgIjAuMDkyNSwgMC4wODc1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1MjUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMTA1LCAwLjA5Mzc1LCAwLjA4NzUsIDAuMDc1LCAwLjA2ODc1LCAwLjA2NSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiMC4xMTc1LCAwLjEwNjI1LCAwLjA5Mzc1LCAwLjA4NzUsIDAuMDgxMjUsIDAuMDcxMjUsIDAuMDYyNSIsIFwKLSAgICAgICAgICAiMC4xMjM3NSwgMC4xMTI1LCAwLjEsIDAuMDkzNzUsIDAuMDg3NSwgMC4wNzc1LCAwLjA2ODc1IiwgXAotICAgICAgICAgICIwLjEzMzc1LCAwLjEyMjUsIDAuMTEsIDAuMTAzNzUsIDAuMDk3NSwgMC4wODc1LCAwLjA3ODc1IiwgXAotICAgICAgICAgICIwLjEzNjI1LCAwLjEzMTI1LCAwLjExODc1LCAwLjExMjUsIDAuMTA2MjUsIDAuMDk2MjUsIDAuMDg3NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oU0kpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDkxMDkyNjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA5MDc3NDY7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwOTEwOTI2OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzQwOSwgMC4wMDMzNzcsIDAuMDAzMzYsIDAuMDAzMzUyLCAwLjAwMzM0NSwgMC4wMDMzNTQsIDAuMDAzMzYxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA2MzM2LCAwLjAwNjMxOCwgMC4wMDYzMDgsIDAuMDA2MzA0LCAwLjAwNjMsIDAuMDA2MzA5LCAwLjAwNjMxMyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJSTiZTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJSTl9FUV8xX0FOX1NFX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDQzNzUsIC0wLjAzODc1LCAtMC4wMjYyNSwgLTAuMDIsIC0wLjAxMzc1LCAtMC4wMDM3NSwgMC4wMDUiLCBcCi0gICAgICAgICAgIi0wLjA1NSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAxNSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA2MTI1LCAtMC4wNTYyNSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMjEyNSwgLTAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjA3Mzc1LCAtMC4wNjg3NSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDMzNzUsIC0wLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDg2MjUsIC0wLjA3NSwgLTAuMDY4NzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNDYyNSwgLTAuMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDk2MjUsIC0wLjA5MTI1LCAtMC4wODUsIC0wLjA3MjUsIC0wLjA2NjI1LCAtMC4wNjI1LCAtMC4wNTM3NSIsIFwKLSAgICAgICAgICAiLTAuMTExMjUsIC0wLjEsIC0wLjA5Mzc1LCAtMC4wODc1LCAtMC4wODEyNSwgLTAuMDcxMjUsIC0wLjA2MjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLCAwLjAwNSwgMC4wMTc1LCAwLjAzLCAwLjA0MjUsIDAuMDUyNSwgMC4wNjEyNSIsIFwKLSAgICAgICAgICAiLTAuMDExMjUsIDAsIDAuMDEyNSwgMC4wMTg3NSwgMC4wMzEyNSwgMC4wNDc1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDEyNSwgMCwgMC4wMTI1LCAwLjAyNSwgMC4wMzUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAuMDA2MjUsIDAuMDEyNSwgMC4wMjg3NSwgMC4wMzc1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDI1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMC4wMDYyNSwgMC4wMTYyNSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDQ2MjUsIC0wLjAzNSwgLTAuMDI4NzUsIC0wLjAxNjI1LCAtMC4wMDM3NSwgMC4wMDYyNSwgMC4wMTUiLCBcCi0gICAgICAgICAgIi0wLjA1NSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAyNSwgLTAuMDEyNSwgLTAuMDAyNSwgMC4wMDYyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiUk4mU0UiOwotICAgICAgc2RmX2NvbmQgOiAiUk5fRVFfMV9BTl9TRV9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3NSwgMC4wNjM3NSwgMC4wNTEyNSwgMC4wNDUsIDAuMDM4NzUsIDAuMDI4NzUsIDAuMDIiLCBcCi0gICAgICAgICAgIjAuMDgsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNSwgMC4wNDM3NSwgMC4wMzM3NSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4wOTI1LCAwLjA4MTI1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDQ2MjUsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiMC4xMDUsIDAuMDkzNzUsIDAuMDgxMjUsIDAuMDc1LCAwLjA2ODc1LCAwLjA1ODc1LCAwLjA1IiwgXAotICAgICAgICAgICIwLjExMTI1LCAwLjEsIDAuMDkzNzUsIDAuMDgxMjUsIDAuMDc1LCAwLjA3MTI1LCAwLjA2MjUiLCBcCi0gICAgICAgICAgIjAuMTI3NSwgMC4xMTYyNSwgMC4xMSwgMC4wOTc1LCAwLjA5MTI1LCAwLjA4MTI1LCAwLjA3ODc1IiwgXAotICAgICAgICAgICIwLjE0MjUsIDAuMTMxMjUsIDAuMTE4NzUsIDAuMTEyNSwgMC4xMDYyNSwgMC4wOTYyNSwgMC4wODc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQzNzUsIDAuMDMyNSwgMC4wMiwgMC4wMDc1LCAtMC4wMDUsIC0wLjAyMTI1LCAtMC4wMyIsIFwKLSAgICAgICAgICAiMC4wNDg3NSwgMC4wMzc1LCAwLjAyNSwgMC4wMTI1LCAwLjAwNjI1LCAtMC4wMSwgLTAuMDI1IiwgXAotICAgICAgICAgICIwLjA2MTI1LCAwLjA1LCAwLjAzNzUsIDAuMDI1LCAwLjAxMjUsIC0wLjAwMzc1LCAtMC4wMTI1IiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDYyNSwgMC4wNSwgMC4wMzc1LCAwLjAyNSwgMC4wMDg3NSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMDgsIDAuMDY4NzUsIDAuMDU2MjUsIDAuMDQzNzUsIDAuMDMxMjUsIDAuMDE1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICIwLjA5LCAwLjA4NSwgMC4wNjYyNSwgMC4wNiwgMC4wNDc1LCAwLjAzMTI1LCAwLjAxNjI1IiwgXAotICAgICAgICAgICIwLjEwNSwgMC4wOTM3NSwgMC4wODEyNSwgMC4wNjg3NSwgMC4wNTYyNSwgMC4wNCwgMC4wMzEyNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogU0RGRlJIUVg0ICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoU0RGRlJIUVg0KSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuNjcwODAzOwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIGZmIChOMzAsUUJJTlQpIHsKLSAgICBuZXh0X3N0YXRlIDogIigoU0UgU0kpICsgKCFTRSBEKSkiOwotICAgIGNsb2NrZWRfb24gOiAiQ0siOwotICAgIGNsZWFyIDogIighUk4pIjsKLSAgfQotICBwaW4oQ0spICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDU5OTY4ODsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA1OTkzOTc7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNTk5Njg4OwotICAgIGNsb2NrIDogdHJ1ZTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDM3ODcsIDAuMDAzNzYzLCAwLjAwMzc0OCwgMC4wMDM3NDksIDAuMDAzNzU3LCAwLjAwMzc4MSwgMC4wMDM4MDEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDgzODcsIDAuMDA4MzY1LCAwLjAwODM3MiwgMC4wMDgzNzksIDAuMDA4Mzg5LCAwLjAwODQ0MywgMC4wMDg0NjgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFEJlJOJiFTRSYhU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1JOX0VRXzFfQU5fU0VfRVFfMF9BTl9TSV9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMTMyMjIxLCAwLjE0MjQ0MywgMC4xNTUyMDUsIDAuMTY3ODAyLCAwLjE3OTMzLCAwLjE5NTMzMywgMC4yMDgxMTYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjEwMTg3NSwgMC4xMTE1NjQsIDAuMTI0MjE4LCAwLjEzNjM2OCwgMC4xNDcyOSwgMC4xNjIyMTMsIDAuMTczNzY1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihEKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA5MjU4OTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA5MjI4OTE7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwOTI1ODk7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzOCwgMC4wMDM3NjcsIDAuMDAzNzUxLCAwLjAwMzc0MiwgMC4wMDM3MzYsIDAuMDAzNzQ1LCAwLjAwMzc1MiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNTg3OCwgMC4wMDU4NjEsIDAuMDA1ODUsIDAuMDA1ODQ3LCAwLjAwNTg0NSwgMC4wMDU4NTQsIDAuMDA1ODU2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlJOJiFTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJSTl9FUV8xX0FOX1NFX0VRXzAgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDQzNzUsIC0wLjAzMjUsIC0wLjAyNjI1LCAtMC4wMiwgLTAuMDEzNzUsIC0wLjAwMzc1LCAwLjAwNSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMDg3NSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA2MTI1LCAtMC4wNTYyNSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMjEyNSwgLTAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDczNzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjAzMzc1LCAtMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjA4LCAtMC4wNzUsIC0wLjA2ODc1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjA0LCAtMC4wMzc1IiwgXAotICAgICAgICAgICItMC4wOTYyNSwgLTAuMDkxMjUsIC0wLjA3ODc1LCAtMC4wNzI1LCAtMC4wNjYyNSwgLTAuMDU2MjUsIC0wLjA1Mzc1IiwgXAotICAgICAgICAgICItMC4xMTEyNSwgLTAuMSwgLTAuMDkzNzUsIC0wLjA4MTI1LCAtMC4wODEyNSwgLTAuMDcxMjUsIC0wLjA2MjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjI1LCAwLjAxMTI1LCAwLjAyMzc1LCAwLjAzNjI1LCAwLjA0ODc1LCAwLjA1ODc1LCAwLjA3Mzc1IiwgXAotICAgICAgICAgICItMC4wMDUsIDAuMDA2MjUsIDAuMDE4NzUsIDAuMDMxMjUsIDAuMDM3NSwgMC4wNTM3NSwgMC4wNjI1IiwgXAotICAgICAgICAgICItMC4wMTEyNSwgLTAuMDA2MjUsIDAuMDA2MjUsIDAuMDE4NzUsIDAuMDMxMjUsIDAuMDQxMjUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTI1LCAwLCAwLjAxMjUsIDAuMDE4NzUsIDAuMDM1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLjAwNjI1LCAwLjAxMjUsIDAuMDI4NzUsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDQsIC0wLjAyODc1LCAtMC4wMTYyNSwgLTAuMDEsIDAuMDAyNSwgMC4wMTg3NSwgMC4wMjc1IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLjAxLCAwLjAxODc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJSTiYhU0UiOwotICAgICAgc2RmX2NvbmQgOiAiUk5fRVFfMV9BTl9TRV9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3NSwgMC4wNjM3NSwgMC4wNTc1LCAwLjA0NSwgMC4wMzg3NSwgMC4wMjg3NSwgMC4wMiIsIFwKLSAgICAgICAgICAiMC4wODYyNSwgMC4wNzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNSwgMC4wNCwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4wOTg3NSwgMC4wODc1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNTYyNSwgMC4wNDYyNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4xMDUsIDAuMDkzNzUsIDAuMDg3NSwgMC4wNzUsIDAuMDY4NzUsIDAuMDU4NzUsIDAuMDUiLCBcCi0gICAgICAgICAgIjAuMTE3NSwgMC4xMDYyNSwgMC4wOTM3NSwgMC4wODc1LCAwLjA4MTI1LCAwLjA3MTI1LCAwLjA2MjUiLCBcCi0gICAgICAgICAgIjAuMTMzNzUsIDAuMTIyNSwgMC4xMSwgMC4xMDM3NSwgMC4wOTc1LCAwLjA4NzUsIDAuMDc4NzUiLCBcCi0gICAgICAgICAgIjAuMTQyNSwgMC4xMzEyNSwgMC4xMjUsIDAuMTEyNSwgMC4xMDYyNSwgMC4wOTYyNSwgMC4wODc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM3NSwgMC4wMzI1LCAwLjAyLCAwLjAwNzUsIC0wLjAwNSwgLTAuMDIxMjUsIC0wLjAzNjI1IiwgXAotICAgICAgICAgICIwLjA0ODc1LCAwLjAzNzUsIDAuMDI1LCAwLjAxMjUsIDAsIC0wLjAxNjI1LCAtMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMDYxMjUsIDAuMDUsIDAuMDM3NSwgMC4wMjUsIDAuMDEyNSwgLTAuMDAzNzUsIC0wLjAxODc1IiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDU2MjUsIDAuMDQzNzUsIDAuMDMxMjUsIDAuMDE4NzUsIDAuMDAyNSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMDgsIDAuMDY4NzUsIDAuMDU2MjUsIDAuMDQzNzUsIDAuMDMxMjUsIDAuMDE1LCAwIiwgXAotICAgICAgICAgICIwLjA5LCAwLjA3ODc1LCAwLjA2NjI1LCAwLjA1Mzc1LCAwLjA0MTI1LCAwLjAyNSwgMC4wMTYyNSIsIFwKLSAgICAgICAgICAiMC4wOTg3NSwgMC4wOTM3NSwgMC4wNzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNCwgMC4wMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFEpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMS4wMzc3OwotICAgIGZ1bmN0aW9uIDogIk4zMCI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3NlbnNlIDogbm9uX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiByaXNpbmdfZWRnZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMzE2MDUsIDAuMjA3MzI0LCAwLjI4MDAyNCwgMC4zMzE4ODEsIDAuNDE0OTMsIDAuNDg3NTc1LCAwLjU5MTQ0NiIsIFwKLSAgICAgICAgICAiMC4xNDE3NzMsIDAuMjE3NDk3LCAwLjI5MDE2MiwgMC4zNDIwNTksIDAuNDI1MTI3LCAwLjQ5Nzc0LCAwLjYwMTU1IiwgXAotICAgICAgICAgICIwLjE1NDQ4MiwgMC4yMzAyMDMsIDAuMzAyODY5LCAwLjM1NDc2NCwgMC40Mzc4MDEsIDAuNTEwNTMyLCAwLjYxNDA0MiIsIFwKLSAgICAgICAgICAiMC4xNjY5NjMsIDAuMjQyNjg1LCAwLjMxNTM1MywgMC4zNjcyNDgsIDAuNDUwMzEsIDAuNTIyOTY4LCAwLjYyNjUyMSIsIFwKLSAgICAgICAgICAiMC4xNzgzMzksIDAuMjU0MDY3LCAwLjMyNjc1MiwgMC4zNzg2MzgsIDAuNDYxNjc2LCAwLjUzNDMxNiwgMC42MzgxOTEiLCBcCi0gICAgICAgICAgIjAuMTkzNzYsIDAuMjY5NDg4LCAwLjM0MjE1NywgMC4zOTQwNTYsIDAuNDc3MDk5LCAwLjU0OTczOSwgMC42NTM1NjIiLCBcCi0gICAgICAgICAgIjAuMjA2NTA1LCAwLjI4MjIzLCAwLjM1NDkwMiwgMC40MDY3OTcsIDAuNDg5ODg3LCAwLjU2MjQ3NSwgMC42NjYyOTIiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzY0MjgsIDAuMTgxNDEzLCAwLjMzMDk0OSwgMC40Mzg2NjYsIDAuNjExOTkyLCAwLjc2MjI0LCAwLjk3NzQyNSIsIFwKLSAgICAgICAgICAiMC4wMzY0MiwgMC4xODE0MDksIDAuMzMxMzgsIDAuNDM4NzE0LCAwLjYxMjAzLCAwLjc2MjY5NiwgMC45Nzc0NiIsIFwKLSAgICAgICAgICAiMC4wMzY0MjUsIDAuMTgxMzkzLCAwLjMzMTM4NSwgMC40Mzg2OCwgMC42MTExNTUsIDAuNzYxNjk2LCAwLjk3NjI2NSIsIFwKLSAgICAgICAgICAiMC4wMzY0MjUsIDAuMTgxMzk3LCAwLjMzMTM4NiwgMC40Mzg2NzUsIDAuNjEwOTUsIDAuNzYzMTkxLCAwLjk3NjMxNyIsIFwKLSAgICAgICAgICAiMC4wMzY0MDksIDAuMTgxNDE0LCAwLjMzMTUyNiwgMC40Mzg2MTEsIDAuNjExOTg1LCAwLjc2MjIxMywgMC45Nzc0MjQiLCBcCi0gICAgICAgICAgIjAuMDM2NDI5LCAwLjE4MTM4NSwgMC4zMzEzNzcsIDAuNDM4NzA0LCAwLjYxMTkwMywgMC43NjMwMjUsIDAuOTc3NjQ4IiwgXAotICAgICAgICAgICIwLjAzNjQzNSwgMC4xODE0MDksIDAuMzMxMzk2LCAwLjQzODY2NCwgMC42MTA3ODgsIDAuNzYzMTIxLCAwLjk3NzYzOCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEzMjIyMSwgMC4yMDY3MTIsIDAuMjgwMTA0LCAwLjMzMjUyLCAwLjQxNjM2NiwgMC40ODk3NDEsIDAuNTk0NTk4IiwgXAotICAgICAgICAgICIwLjE0MjQ0MywgMC4yMTY5MjIsIDAuMjkwMzIsIDAuMzQyNzI2LCAwLjQyNjU3OCwgMC40OTk5NDcsIDAuNjA0NzE3IiwgXAotICAgICAgICAgICIwLjE1NTIwNSwgMC4yMjk2OTMsIDAuMzAzMDg4LCAwLjM1NTUwNCwgMC40MzkzNDksIDAuNTEyNzI2LCAwLjYxNzU4IiwgXAotICAgICAgICAgICIwLjE2NzgwMiwgMC4yNDIyODEsIDAuMzE1Njg3LCAwLjM2ODEwMSwgMC40NTE5MzYsIDAuNTI1MzA2LCAwLjYzMDA5NyIsIFwKLSAgICAgICAgICAiMC4xNzkzMzIsIDAuMjUzODE5LCAwLjMyNzI0MiwgMC4zNzk2MzMsIDAuNDYzNDcxLCAwLjUzNjg0MywgMC42NDE2NTUiLCBcCi0gICAgICAgICAgIjAuMTk1MzM2LCAwLjI2OTgyMiwgMC4zNDMyMjgsIDAuMzk1NjM5LCAwLjQ3OTQ3NCwgMC41NTI4NDcsIDAuNjU3NjYzIiwgXAotICAgICAgICAgICIwLjIwODEyLCAwLjI4MjYwNiwgMC4zNTU5OTcsIDAuNDA4NDE0LCAwLjQ5MjI2MSwgMC41NjU2MzUsIDAuNjcwNDkzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDMwOTMsIDAuMTc2NDgzLCAwLjMyNDQwNCwgMC40MzEzNzIsIDAuNjAwOTM0LCAwLjc0OTY0NSwgMC45NjExMDEiLCBcCi0gICAgICAgICAgIjAuMDMwOTQsIDAuMTc2MTkxLCAwLjMyNTAxNSwgMC40MzA1NDIsIDAuNjAwNDYxLCAwLjc0OTU4NSwgMC45NjMyNyIsIFwKLSAgICAgICAgICAiMC4wMzA5MzYsIDAuMTc2MjE1LCAwLjMyNDQ3LCAwLjQzMTM3MywgMC42MDExMjYsIDAuNzQ5NDQ4LCAwLjk2MTMzNyIsIFwKLSAgICAgICAgICAiMC4wMzA5MzcsIDAuMTc2MiwgMC4zMjQzMDMsIDAuNDMxNDE5LCAwLjYwMTA2MSwgMC43NTA2MjQsIDAuOTYzNDEyIiwgXAotICAgICAgICAgICIwLjAzMDkzMiwgMC4xNzYxNzksIDAuMzI0MzI5LCAwLjQzMTM3NSwgMC42MDE1NzUsIDAuNzQ5NDU1LCAwLjk2MTE4OCIsIFwKLSAgICAgICAgICAiMC4wMzA5MywgMC4xNzYyMDQsIDAuMzI0MzY2LCAwLjQzMTQwMywgMC42MDE0MTgsIDAuNzQ5NjY5LCAwLjk2MTg5OCIsIFwKLSAgICAgICAgICAiMC4wMzA5MzYsIDAuMTc2MTc5LCAwLjMyNTAwMiwgMC40MzEzNzEsIDAuNjAwMzk3LCAwLjc0OTYyNSwgMC45NjEwMDgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUk4iOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGNsZWFyOwotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0MTQzOCwgMC4xMTYxNzUsIDAuMTg5NDgyLCAwLjI0MTg2MiwgMC4zMjU2ODEsIDAuMzk5MDU5LCAwLjUwMzgxMiIsIFwKLSAgICAgICAgICAiMC4wNTEyNCwgMC4xMjYwMTUsIDAuMTk5MzYsIDAuMjUxNzI5LCAwLjMzNTUzNiwgMC40MDg5MjEsIDAuNTEzNjkiLCBcCi0gICAgICAgICAgIjAuMDYzMjY2LCAwLjEzODEwNCwgMC4yMTE0NTUsIDAuMjYzODIxLCAwLjM0NzYzMSwgMC40MjA5NzUsIDAuNTI1NzgiLCBcCi0gICAgICAgICAgIjAuMDczODUyLCAwLjE0ODczMSwgMC4yMjIwNjEsIDAuMjc0NDQ1LCAwLjM1ODMxNiwgMC40MzE2MjYsIDAuNTM2NDEyIiwgXAotICAgICAgICAgICIwLjA4MjY0NCwgMC4xNTc3MTksIDAuMjMxMDUyLCAwLjI4MzQzMSwgMC4zNjcyNywgMC40NDA2MDcsIDAuNTQ1NDA1IiwgXAotICAgICAgICAgICIwLjA5NDY0MiwgMC4xNzAwMSwgMC4yNDMzMjUsIDAuMjk1NzA2LCAwLjM3OTU0NSwgMC40NTI4ODQsIDAuNTU3Njc4IiwgXAotICAgICAgICAgICIwLjEwMzYyOCwgMC4xNzkzMTYsIDAuMjUyNjE0LCAwLjMwNDk3LCAwLjM4ODc4OSwgMC40NjIxNDksIDAuNTY2OTE2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDMwNDYxLCAwLjE3NTkzNCwgMC4zMjQyNTksIDAuNDMwNTA0LCAwLjYwMDUzMywgMC43NDk0NzgsIDAuOTYyMzA4IiwgXAotICAgICAgICAgICIwLjAzMDQ2OSwgMC4xNzU5MjcsIDAuMzI0MjQ2LCAwLjQzMDQ5NSwgMC42MDA1NSwgMC43NDkyMjIsIDAuOTYyMzUzIiwgXAotICAgICAgICAgICIwLjAzMDc3NCwgMC4xNzU5MzgsIDAuMzI0MjYsIDAuNDMwNTA4LCAwLjU5OTk3MywgMC43NDk0MDUsIDAuOTYyMDU3IiwgXAotICAgICAgICAgICIwLjAzMTcyMywgMC4xNzYwMTksIDAuMzI0MzE3LCAwLjQzMDU4NywgMC42MDA1MzQsIDAuNzQ5NDQxLCAwLjk2MTQ4OSIsIFwKLSAgICAgICAgICAiMC4wMzI4MjcsIDAuMTc2MjMyLCAwLjMyNDMyLCAwLjQzMDQ4NCwgMC42MDAzOTUsIDAuNzQ5NDY3LCAwLjk2MTUxOCIsIFwKLSAgICAgICAgICAiMC4wMzQ0ODIsIDAuMTc2NjEyLCAwLjMyNDM5MiwgMC40MzA0NjcsIDAuNjAwMzk2LCAwLjc0ODgyNiwgMC45NjE1NjYiLCBcCi0gICAgICAgICAgIjAuMDM1ODk3LCAwLjE3Njk1NywgMC4zMjQ2NzUsIDAuNDMwNjQ4LCAwLjYwMDQ2MywgMC43NDkxNjMsIDAuOTYxMDYxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDExOTAyLCAwLjAxMjAyNCwgMC4wMTIwMTUsIDAuMDEyMDA3LCAwLjAxMTk5NywgMC4wMTE5OTEsIDAuMDExOTg1IiwgXAotICAgICAgICAgICIwLjAxMTg3MiwgMC4wMTE5OTUsIDAuMDExOTg1LCAwLjAxMTk3NywgMC4wMTE5NjksIDAuMDExOTY1LCAwLjAxMTk1NiIsIFwKLSAgICAgICAgICAiMC4wMTE4NTcsIDAuMDExOTgsIDAuMDExOTcxLCAwLjAxMTk2MywgMC4wMTE5NTMsIDAuMDExOTQ4LCAwLjAxMTk0MSIsIFwKLSAgICAgICAgICAiMC4wMTE4NTQsIDAuMDExOTc3LCAwLjAxMTk2OSwgMC4wMTE5NjEsIDAuMDExOTUxLCAwLjAxMTk0NSwgMC4wMTE5NCIsIFwKLSAgICAgICAgICAiMC4wMTE4NTcsIDAuMDExOTg0LCAwLjAxMTk3NSwgMC4wMTE5NywgMC4wMTE5NTgsIDAuMDExOTUyLCAwLjAxMTk0NSIsIFwKLSAgICAgICAgICAiMC4wMTE4OCwgMC4wMTIwMDcsIDAuMDEyLCAwLjAxMTk5MywgMC4wMTE5ODMsIDAuMDExOTgyLCAwLjAxMTk3MSIsIFwKLSAgICAgICAgICAiMC4wMTE5MDUsIDAuMDEyMDMyLCAwLjAxMjAyNiwgMC4wMTIwMTksIDAuMDEyMDEsIDAuMDEyMDA0LCAwLjAxMTk5NSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDExODAzLCAwLjAxMjAxNSwgMC4wMTIwNDMsIDAuMDEyMDUyLCAwLjAxMjA2LCAwLjAxMjA2NCwgMC4wMTIwNjgiLCBcCi0gICAgICAgICAgIjAuMDExNzgxLCAwLjAxMTk4OSwgMC4wMTIwMTcsIDAuMDEyMDI1LCAwLjAxMjAzMiwgMC4wMTIwMzcsIDAuMDEyMDQiLCBcCi0gICAgICAgICAgIjAuMDExNzcyLCAwLjAxMTk4NCwgMC4wMTIwMTIsIDAuMDEyMDIxLCAwLjAxMjAyOCwgMC4wMTIwMzIsIDAuMDEyMDM2IiwgXAotICAgICAgICAgICIwLjAxMTc5NSwgMC4wMTIwMDcsIDAuMDEyMDM1LCAwLjAxMjA0NCwgMC4wMTIwNTIsIDAuMDEyMDUsIDAuMDEyMDU5IiwgXAotICAgICAgICAgICIwLjAxMTgwMywgMC4wMTIwMTQsIDAuMDEyMDQzLCAwLjAxMjA1MSwgMC4wMTIwNTksIDAuMDEyMDYzLCAwLjAxMjA2NyIsIFwKLSAgICAgICAgICAiMC4wMTE4NjcsIDAuMDEyMDc2LCAwLjAxMjEwNCwgMC4wMTIxMTMsIDAuMDEyMTIsIDAuMDEyMTI0LCAwLjAxMjEyOCIsIFwKLSAgICAgICAgICAiMC4wMTE4ODgsIDAuMDEyMTAxLCAwLjAxMjEzLCAwLjAxMjEzOCwgMC4wMTIxNDYsIDAuMDEyMTUsIDAuMDEyMTUzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUk4iOwotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEyOTM3LCAwLjAxMzA5NiwgMC4wMTMxMTIsIDAuMDEzMTE3LCAwLjAxMzEyMiwgMC4wMTMxMjQsIDAuMDEzMTI2IiwgXAotICAgICAgICAgICIwLjAxMjgzMiwgMC4wMTMwMTQsIDAuMDEzMDM4LCAwLjAxMzA0NCwgMC4wMTMwNTEsIDAuMDEzMDU0LCAwLjAxMzA1NyIsIFwKLSAgICAgICAgICAiMC4wMTI3NTcsIDAuMDEyOTYsIDAuMDEyOTkzLCAwLjAxMzAwMywgMC4wMTMwMTIsIDAuMDEzMDE3LCAwLjAxMzAyMSIsIFwKLSAgICAgICAgICAiMC4wMTI3MDcsIDAuMDEyOTIxLCAwLjAxMjk2LCAwLjAxMjk3MywgMC4wMTI5ODQsIDAuMDEyOTksIDAuMDEyOTk1IiwgXAotICAgICAgICAgICIwLjAxMjY4OCwgMC4wMTI5MDIsIDAuMDEyOTQzLCAwLjAxMjk2MSwgMC4wMTI5NzQsIDAuMDEyOTgxLCAwLjAxMjk4NyIsIFwKLSAgICAgICAgICAiMC4wMTI2OTUsIDAuMDEyOTAzLCAwLjAxMjk0NiwgMC4wMTI5NywgMC4wMTI5ODQsIDAuMDEyOTkxLCAwLjAxMjk5OSIsIFwKLSAgICAgICAgICAiMC4wMTI3MjIsIDAuMDEyOTIxLCAwLjAxMjk3MywgMC4wMTI5OTIsIDAuMDEzMDA5LCAwLjAxMzAxOSwgMC4wMTMwMjciKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfcG93ZXIoc2NhbGFyKSB7Ci0gICAgICAgIHZhbHVlcygiMCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUk4pICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMjQxOTI0OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMjIzMzEyOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMjQxOTI0OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDk3OSwgMC4wMDA5NzgsIDAuMDAwOTc4LCAwLjAwMDk3OCwgMC4wMDA5NzgsIDAuMDAwOTc3LCAwLjAwMDk3NyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDk5MywgMC4wMDA5ODMsIDAuMDAwOTgxLCAwLjAwMDk4MSwgMC4wMDA5ODEsIDAuMDAwOTgyLCAwLjAwMDk4MiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQmIVNFJiFTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fU0VfRVFfMF9BTl9TSV9FUV8wID09IDEnYjEiOwotICAgICAgZmFsbF9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDg2NzY5LCAwLjA5NjEzMywgMC4xMDYyMzIsIDAuMTE1NzQsIDAuMTI0NTM4LCAwLjEzNzE0NywgMC4xNDY3MzYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiByZWNvdmVyeV9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEJlNFJlNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9TRV9FUV8xX0FOX1NJX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQocmVjb3ZlcnlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAzNzUsIC0wLjA0MjUsIC0wLjA2MTI1LCAtMC4wNzM3NSwgLTAuMDgsIC0wLjA5NjI1LCAtMC4xMTEyNSIsIFwKLSAgICAgICAgICAiLTAuMDM4NzUsIC0wLjA1LCAtMC4wNjI1LCAtMC4wNzUsIC0wLjA4NzUsIC0wLjEwMzc1LCAtMC4xMTI1IiwgXAotICAgICAgICAgICItMC4wMzg3NSwgLTAuMDUsIC0wLjA2MjUsIC0wLjA3NSwgLTAuMDg3NSwgLTAuMTAzNzUsIC0wLjExODc1IiwgXAotICAgICAgICAgICItMC4wMzI1LCAtMC4wNDM3NSwgLTAuMDU2MjUsIC0wLjA2ODc1LCAtMC4wODEyNSwgLTAuMDk3NSwgLTAuMTEyNSIsIFwKLSAgICAgICAgICAiLTAuMDIsIC0wLjAzMTI1LCAtMC4wNSwgLTAuMDYyNSwgLTAuMDc1LCAtMC4wOTEyNSwgLTAuMTA2MjUiLCBcCi0gICAgICAgICAgIjAuMDAyNSwgLTAuMDA4NzUsIC0wLjAyNzUsIC0wLjA0LCAtMC4wNTI1LCAtMC4wNjg3NSwgLTAuMDgzNzUiLCBcCi0gICAgICAgICAgIjAuMDIzNzUsIDAuMDEyNSwgLTAuMDA2MjUsIC0wLjAxODc1LCAtMC4wMzEyNSwgLTAuMDUzNzUsIC0wLjA2MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiByZW1vdmFsX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUQmU0UmU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1NFX0VRXzFfQU5fU0lfRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChyZW1vdmFsX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1NjI1LCAwLjA2NzUsIDAuMDgsIDAuMDkyNSwgMC4xMDUsIDAuMTIxMjUsIDAuMTMiLCBcCi0gICAgICAgICAgIjAuMDYzNzUsIDAuMDc1LCAwLjA4NzUsIDAuMSwgMC4xMDYyNSwgMC4xMjI1LCAwLjEzNzUiLCBcCi0gICAgICAgICAgIjAuMDcsIDAuMDgxMjUsIDAuMDkzNzUsIDAuMTA2MjUsIDAuMTEyNSwgMC4xMjg3NSwgMC4xNDM3NSIsIFwKLSAgICAgICAgICAiMC4wNzYyNSwgMC4wODc1LCAwLjEsIDAuMTA2MjUsIDAuMTE4NzUsIDAuMTM1LCAwLjE1IiwgXAotICAgICAgICAgICIwLjA4MjUsIDAuMDg3NSwgMC4xLCAwLjExMjUsIDAuMTI1LCAwLjE0MTI1LCAwLjE1IiwgXAotICAgICAgICAgICIwLjA4NSwgMC4wOTYyNSwgMC4xMDg3NSwgMC4xMjEyNSwgMC4xMzM3NSwgMC4xNSwgMC4xNTg3NSIsIFwKLSAgICAgICAgICAiMC4wOTUsIDAuMSwgMC4xMTI1LCAwLjEyNSwgMC4xMzc1LCAwLjE1Mzc1LCAwLjE2MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFNFKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE0ODYxMjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE0ODQ0MjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE0ODYxMjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDU3MjcsIDAuMDA1NzA3LCAwLjAwNTcwMSwgMC4wMDU2OTUsIDAuMDA1NywgMC4wMDU3MjEsIDAuMDA1NzQ0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA3MTgxLCAwLjAwNzEyNiwgMC4wMDcxMjQsIDAuMDA3MTE1LCAwLjAwNzEzMywgMC4wMDcxNzgsIDAuMDA3MjE5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlJOIjsKLSAgICAgIHNkZl9jb25kIDogIlJOID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAxMjUsIC0wLjAwMTI1LCAwLjAxMTI1LCAwLjAyMzc1LCAwLjAzLCAwLjA0NjI1LCAwLjA1NSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxMjUsIDAsIDAuMDEyNSwgMC4wMjUsIDAuMDM1LCAwLjA1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDI1LCAtMC4wMTI1LCAwLCAwLjAxMjUsIDAuMDIyNSwgMC4wMzc1IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLCAwLjAxNjI1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjA0Mzc1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLjAwMzc1LCAwLjAxODc1IiwgXAotICAgICAgICAgICItMC4wNTg3NSwgLTAuMDUzNzUsIC0wLjA0MTI1LCAtMC4wMjg3NSwgLTAuMDE2MjUsIC0wLjAwNjI1LCAwLjAwODc1IiwgXAotICAgICAgICAgICItMC4wNjc1LCAtMC4wNjI1LCAtMC4wNSwgLTAuMDM3NSwgLTAuMDI1LCAtMC4wMTUsIDAiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMjUsIDAuMDE3NSwgMC4wMywgMC4wNDI1LCAwLjA1NSwgMC4wNjUsIDAuMDgiLCBcCi0gICAgICAgICAgIjAuMDAxMjUsIDAuMDEyNSwgMC4wMjUsIDAuMDM3NSwgMC4wNDM3NSwgMC4wNiwgMC4wNjg3NSIsIFwKLSAgICAgICAgICAiLTAuMDExMjUsIDAsIDAuMDEyNSwgMC4wMjUsIDAuMDMxMjUsIDAuMDQ3NSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiLTAuMDE3NSwgLTAuMDA2MjUsIDAuMDA2MjUsIDAuMDEyNSwgMC4wMjUsIDAuMDQxMjUsIDAuMDUiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTI1LCAwLCAwLjAwNjI1LCAwLjAxODc1LCAwLjAyODc1LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjAyNzUsIC0wLjAyMjUsIC0wLjAxLCAtMC4wMDM3NSwgMC4wMDg3NSwgMC4wMTg3NSwgMC4wMjc1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAsIDAuMDEsIDAuMDE4NzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlJOIjsKLSAgICAgIHNkZl9jb25kIDogIlJOID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2ODc1LCAwLjA1NzUsIDAuMDUxMjUsIDAuMDM4NzUsIDAuMDMyNSwgMC4wMjI1LCAwLjAxMzc1IiwgXAotICAgICAgICAgICIwLjA4LCAwLjA2ODc1LCAwLjA1NjI1LCAwLjA1LCAwLjA0Mzc1LCAwLjAzMzc1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiMC4wOTI1LCAwLjA4MTI1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDQ2MjUsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiMC4xMDUsIDAuMDkzNzUsIDAuMDgxMjUsIDAuMDc1LCAwLjA2MjUsIDAuMDUyNSwgMC4wNSIsIFwKLSAgICAgICAgICAiMC4xMTEyNSwgMC4xMDYyNSwgMC4wOTM3NSwgMC4wODEyNSwgMC4wNzUsIDAuMDY1LCAwLjA2MjUiLCBcCi0gICAgICAgICAgIjAuMTMzNzUsIDAuMTIyNSwgMC4xMSwgMC4wOTc1LCAwLjA5MTI1LCAwLjA4MTI1LCAwLjA3MjUiLCBcCi0gICAgICAgICAgIjAuMTQyNSwgMC4xMzEyNSwgMC4xMTg3NSwgMC4xMTI1LCAwLjEwNjI1LCAwLjA5NjI1LCAwLjA4NzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTM3NSwgMC4wODI1LCAwLjA3LCAwLjA2Mzc1LCAwLjA1MTI1LCAwLjA0NzUsIDAuMDM4NzUiLCBcCi0gICAgICAgICAgIjAuMDk4NzUsIDAuMDkzNzUsIDAuMDgxMjUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNTI1LCAwLjA1IiwgXAotICAgICAgICAgICIwLjExMTI1LCAwLjEsIDAuMDg3NSwgMC4wODEyNSwgMC4wNzUsIDAuMDY1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICIwLjEyMzc1LCAwLjExMjUsIDAuMSwgMC4wOTM3NSwgMC4wODc1LCAwLjA3NzUsIDAuMDY4NzUiLCBcCi0gICAgICAgICAgIjAuMTMsIDAuMTE4NzUsIDAuMTA2MjUsIDAuMSwgMC4wOTM3NSwgMC4wODM3NSwgMC4wNzUiLCBcCi0gICAgICAgICAgIjAuMTQsIDAuMTI4NzUsIDAuMTE2MjUsIDAuMTEsIDAuMTAzNzUsIDAuMDkzNzUsIDAuMDg1IiwgXAotICAgICAgICAgICIwLjE0ODc1LCAwLjEzNzUsIDAuMTI1LCAwLjExODc1LCAwLjExMjUsIDAuMTAyNSwgMC4wOTM3NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oU0kpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDg2NTg5OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDg2MjUwNzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA4NjU4OTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDM1NDEsIDAuMDAzNTA5LCAwLjAwMzQ5MSwgMC4wMDM0ODMsIDAuMDAzNDc2LCAwLjAwMzQ4MiwgMC4wMDM0ODkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDYyNjYsIDAuMDA2MjQ4LCAwLjAwNjIzNywgMC4wMDYyMzMsIDAuMDA2MjI5LCAwLjAwNjIzOCwgMC4wMDYyNDEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiUk4mU0UiOwotICAgICAgc2RmX2NvbmQgOiAiUk5fRVFfMV9BTl9TRV9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjA0Mzc1LCAtMC4wMzI1LCAtMC4wMjYyNSwgLTAuMDIsIC0wLjAxMzc1LCAtMC4wMDM3NSwgMC4wMDUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDA4NzUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wNjEyNSwgLTAuMDU2MjUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDIxMjUsIC0wLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjA3Mzc1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wMzM3NSwgLTAuMDI1IiwgXAotICAgICAgICAgICItMC4wODYyNSwgLTAuMDc1LCAtMC4wNjg3NSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNDYyNSwgLTAuMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDk2MjUsIC0wLjA5MTI1LCAtMC4wNzg3NSwgLTAuMDcyNSwgLTAuMDY2MjUsIC0wLjA1NjI1LCAtMC4wNTM3NSIsIFwKLSAgICAgICAgICAiLTAuMTExMjUsIC0wLjEsIC0wLjA5Mzc1LCAtMC4wODc1LCAtMC4wODEyNSwgLTAuMDcxMjUsIC0wLjA2MjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLCAwLjAxMTI1LCAwLjAyMzc1LCAwLjAzNjI1LCAwLjA0MjUsIDAuMDU4NzUsIDAuMDY3NSIsIFwKLSAgICAgICAgICAiLTAuMDA1LCAwLjAwNjI1LCAwLjAxODc1LCAwLjAyNSwgMC4wMzc1LCAwLjA1Mzc1LCAwLjA2MjUiLCBcCi0gICAgICAgICAgIi0wLjAxNzUsIC0wLjAwNjI1LCAwLjAwNjI1LCAwLjAxODc1LCAwLjAyNSwgMC4wNDEyNSwgMC4wNSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxMjUsIDAsIDAuMDEyNSwgMC4wMTg3NSwgMC4wMzUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAsIDAuMDEyNSwgMC4wMjI1LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjA0LCAtMC4wMjg3NSwgLTAuMDE2MjUsIC0wLjAxLCAwLjAwMjUsIDAuMDEyNSwgMC4wMjEyNSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDM3NSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAuMDAzNzUsIDAuMDE4NzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlJOJlNFIjsKLSAgICAgIHNkZl9jb25kIDogIlJOX0VRXzFfQU5fU0VfRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzUsIDAuMDYzNzUsIDAuMDU3NSwgMC4wNDUsIDAuMDM4NzUsIDAuMDI4NzUsIDAuMDIiLCBcCi0gICAgICAgICAgIjAuMDg2MjUsIDAuMDc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDUsIDAuMDQsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMDk4NzUsIDAuMDg3NSwgMC4wNzUsIDAuMDY4NzUsIDAuMDU2MjUsIDAuMDUyNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4xMDUsIDAuMDkzNzUsIDAuMDg3NSwgMC4wNzUsIDAuMDY4NzUsIDAuMDU4NzUsIDAuMDUiLCBcCi0gICAgICAgICAgIjAuMTE3NSwgMC4xMDYyNSwgMC4wOTM3NSwgMC4wODc1LCAwLjA4MTI1LCAwLjA3MTI1LCAwLjA2MjUiLCBcCi0gICAgICAgICAgIjAuMTMzNzUsIDAuMTIyNSwgMC4xMSwgMC4xMDM3NSwgMC4wOTc1LCAwLjA4NzUsIDAuMDc4NzUiLCBcCi0gICAgICAgICAgIjAuMTQyNSwgMC4xMzc1LCAwLjEyNSwgMC4xMTI1LCAwLjEwNjI1LCAwLjA5NjI1LCAwLjA5Mzc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQzNzUsIDAuMDMyNSwgMC4wMiwgMC4wMDc1LCAtMC4wMDUsIC0wLjAyMTI1LCAtMC4wMzYyNSIsIFwKLSAgICAgICAgICAiMC4wNDg3NSwgMC4wMzc1LCAwLjAyNSwgMC4wMTI1LCAwLCAtMC4wMSwgLTAuMDI1IiwgXAotICAgICAgICAgICIwLjA2MTI1LCAwLjA1LCAwLjAzNzUsIDAuMDI1LCAwLjAxMjUsIC0wLjAwMzc1LCAtMC4wMTI1IiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDU2MjUsIDAuMDQzNzUsIDAuMDMxMjUsIDAuMDI1LCAwLjAwODc1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiMC4wOCwgMC4wNjg3NSwgMC4wNTYyNSwgMC4wNDM3NSwgMC4wMzEyNSwgMC4wMTUsIDAiLCBcCi0gICAgICAgICAgIjAuMDksIDAuMDc4NzUsIDAuMDY2MjUsIDAuMDUzNzUsIDAuMDQ3NSwgMC4wMzEyNSwgMC4wMTYyNSIsIFwKLSAgICAgICAgICAiMC4xMDUsIDAuMDkzNzUsIDAuMDgxMjUsIDAuMDY4NzUsIDAuMDU2MjUsIDAuMDQsIDAuMDI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogU0RGRlJYMSAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChTREZGUlgxKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuNDI0NzkxOwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIGZmIChOMzAsUUJJTlQpIHsKLSAgICBuZXh0X3N0YXRlIDogIigoU0UgU0kpICsgKCFTRSBEKSkiOwotICAgIGNsb2NrZWRfb24gOiAiQ0siOwotICAgIGNsZWFyIDogIighUk4pIjsKLSAgfQotICBwaW4oQ0spICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDU4MTQwMjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA1ODEzNzY7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNTgxNDAyOwotICAgIGNsb2NrIDogdHJ1ZTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDI4MDcsIDAuMDAyNzgxLCAwLjAwMjc2OCwgMC4wMDI3NywgMC4wMDI3ODMsIDAuMDAyODAyLCAwLjAwMjgyMyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNjk3NCwgMC4wMDY5NDgsIDAuMDA2OTQ1LCAwLjAwNjk2MSwgMC4wMDY5NzQsIDAuMDA3MDIsIDAuMDA3MDM2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRCZSTiYhU0UmIVNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9STl9FUV8xX0FOX1NFX0VRXzBfQU5fU0lfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjE3NDcxNywgMC4xODQ5NDIsIDAuMTk3NjY3LCAwLjIwOTkzNSwgMC4yMjEwNjEsIDAuMjM2MzQ0LCAwLjI0ODE4NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDk3NDgyLCAwLjEwNzQ4NSwgMC4xMTk4OSwgMC4xMzE1OTIsIDAuMTQxOTk5LCAwLjE1NjA2OCwgMC4xNjY5MjMiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEQpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYwMTg5MTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MDA0OTg7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjAxODkxOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjg1NywgMC4wMDI4NCwgMC4wMDI4MywgMC4wMDI4MjUsIDAuMDAyODIzLCAwLjAwMjgyMywgMC4wMDI4MzQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDQ1MDMsIDAuMDA0NDk0LCAwLjAwNDQ4OCwgMC4wMDQ0ODYsIDAuMDA0NDg1LCAwLjAwNDQ4NiwgMC4wMDQ0OTQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiUk4mIVNFIjsKLSAgICAgIHNkZl9jb25kIDogIlJOX0VRXzFfQU5fU0VfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wNTYyNSwgLTAuMDQ1LCAtMC4wMzg3NSwgLTAuMDMyNSwgLTAuMDI2MjUsIC0wLjAxNjI1LCAtMC4wMTM3NSIsIFwKLSAgICAgICAgICAiLTAuMDYxMjUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAyNzUsIC0wLjAxODc1IiwgXAotICAgICAgICAgICItMC4wNzM3NSwgLTAuMDY4NzUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjA0LCAtMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDg2MjUsIC0wLjA3NSwgLTAuMDY4NzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNDYyNSwgLTAuMDQzNzUiLCBcCi0gICAgICAgICAgIi0wLjA5ODc1LCAtMC4wODc1LCAtMC4wODEyNSwgLTAuMDc1LCAtMC4wNjg3NSwgLTAuMDU4NzUsIC0wLjA1IiwgXAotICAgICAgICAgICItMC4xMDg3NSwgLTAuMTAzNzUsIC0wLjA5NzUsIC0wLjA5MTI1LCAtMC4wODUsIC0wLjA3NSwgLTAuMDY2MjUiLCBcCi0gICAgICAgICAgIi0wLjEyMzc1LCAtMC4xMTg3NSwgLTAuMTA2MjUsIC0wLjEsIC0wLjA5Mzc1LCAtMC4wOSwgLTAuMDgxMjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMTI1LCAtMC4wMDEyNSwgMC4wMTEyNSwgMC4wMTc1LCAwLjAzLCAwLjA0LCAwLjA0ODc1IiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDEyNSwgMCwgMC4wMTI1LCAwLjAxODc1LCAwLjAyODc1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDE4NzUsIC0wLjAxMjUsIDAsIDAuMDEyNSwgMC4wMjI1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLCAwLjAxLCAwLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjAzNzUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLjAwMzc1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjA1ODc1LCAtMC4wNDc1LCAtMC4wNDEyNSwgLTAuMDI4NzUsIC0wLjAyMjUsIC0wLjAwNjI1LCAwLjAwMjUiLCBcCi0gICAgICAgICAgIi0wLjA2NzUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAxNSwgLTAuMDA2MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlJOJiFTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJSTl9FUV8xX0FOX1NFX0VRXzAgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg3NSwgMC4wNzYyNSwgMC4wNywgMC4wNTc1LCAwLjA1MTI1LCAwLjA0MTI1LCAwLjAzODc1IiwgXAotICAgICAgICAgICIwLjA5ODc1LCAwLjA4NzUsIDAuMDc1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDUyNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4xMTEyNSwgMC4xLCAwLjA4NzUsIDAuMDgxMjUsIDAuMDc1LCAwLjA2NSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiMC4xMTc1LCAwLjEwNjI1LCAwLjEsIDAuMDg3NSwgMC4wODEyNSwgMC4wNzc1LCAwLjA2ODc1IiwgXAotICAgICAgICAgICIwLjEzLCAwLjExODc1LCAwLjEwNjI1LCAwLjEsIDAuMDkzNzUsIDAuMDgzNzUsIDAuMDgxMjUiLCBcCi0gICAgICAgICAgIjAuMTQ2MjUsIDAuMTM1LCAwLjEyMjUsIDAuMTE2MjUsIDAuMTEsIDAuMSwgMC4wOTc1IiwgXAotICAgICAgICAgICIwLjE2MTI1LCAwLjE1LCAwLjEzNzUsIDAuMTMxMjUsIDAuMTI1LCAwLjExNSwgMC4xMDYyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2MjUsIDAuMDUxMjUsIDAuMDM4NzUsIDAuMDI2MjUsIDAuMDEzNzUsIDAuMDAzNzUsIC0wLjAxMTI1IiwgXAotICAgICAgICAgICIwLjA3Mzc1LCAwLjA2MjUsIDAuMDUsIDAuMDM3NSwgMC4wMjUsIDAuMDA4NzUsIDAiLCBcCi0gICAgICAgICAgIjAuMDgsIDAuMDY4NzUsIDAuMDU2MjUsIDAuMDQzNzUsIDAuMDMxMjUsIDAuMDIxMjUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMDkyNSwgMC4wODEyNSwgMC4wNjg3NSwgMC4wNTYyNSwgMC4wNDM3NSwgMC4wMjc1LCAwLjAxODc1IiwgXAotICAgICAgICAgICIwLjA5ODc1LCAwLjA4NzUsIDAuMDc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDQsIDAuMDI1IiwgXAotICAgICAgICAgICIwLjExNSwgMC4xMDM3NSwgMC4wOTEyNSwgMC4wNzg3NSwgMC4wNjYyNSwgMC4wNSwgMC4wNDEyNSIsIFwKLSAgICAgICAgICAiMC4xMjM3NSwgMC4xMTI1LCAwLjEsIDAuMDg3NSwgMC4wODEyNSwgMC4wNjUsIDAuMDUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFEpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4yNjI3NDsKLSAgICBmdW5jdGlvbiA6ICJOMzAiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5vbl91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcmlzaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE3NDg5NCwgMC4yMDAxNjQsIDAuMzM5MzI2LCAwLjQ2MjExNiwgMC42MjU0NTYsIDAuOTUyODY4LCAxLjE1NzM1IiwgXAotICAgICAgICAgICIwLjE4NTA5NiwgMC4yMTAzNiwgMC4zNDk0MzYsIDAuNDcyMzI4LCAwLjYzNjAyNiwgMC45NjI3NDgsIDEuMTY3NSIsIFwKLSAgICAgICAgICAiMC4xOTc2NywgMC4yMjMwMDMsIDAuMzYyMDc0LCAwLjQ4NDkwNSwgMC42NDg1NTMsIDAuOTc1NjcyLCAxLjE4MDEiLCBcCi0gICAgICAgICAgIjAuMjA5ODE4LCAwLjIzNTE2NCwgMC4zNzQyMjgsIDAuNDk3MDU5LCAwLjY2MDY1NCwgMC45ODgwODYsIDEuMTkyMjQiLCBcCi0gICAgICAgICAgIjAuMjIwNywgMC4yNDU5NzIsIDAuMzg1MDUxLCAwLjUwNzk0OSwgMC42NzE2MjksIDAuOTk4OTY0LCAxLjIwMzEyIiwgXAotICAgICAgICAgICIwLjIzNTkwOSwgMC4yNjExNzMsIDAuNDAwMjY0LCAwLjUyMzE2LCAwLjY4NjgzNywgMS4wMTQxNywgMS4yMTgzMyIsIFwKLSAgICAgICAgICAiMC4yNDcyNjEsIDAuMjcyNTUzLCAwLjQxMTgyLCAwLjUzNDU1MiwgMC42OTc4MzQsIDEuMDI1MjgsIDEuMjI5NjQiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTAwNTM3LCAwLjE0ODc1NSwgMC40Mjk0OTUsIDAuNjgyMzU0LCAxLjAxNzk4LCAxLjY5Mzk0LCAyLjExNTU0IiwgXAotICAgICAgICAgICIwLjEwMDU1OCwgMC4xNDg3NjQsIDAuNDI5NTE4LCAwLjY4MjM1MiwgMS4wMTk1MywgMS42OTExNiwgMi4xMTU0NyIsIFwKLSAgICAgICAgICAiMC4xMDA1MzcsIDAuMTQ4NjM4LCAwLjQyOTU2NiwgMC42ODIzNDksIDEuMDE5NDksIDEuNjkzOTMsIDIuMTE1NDgiLCBcCi0gICAgICAgICAgIjAuMTAwNTQxLCAwLjE0ODcwMSwgMC40Mjk1NjgsIDAuNjgyMzUsIDEuMDE5NDUsIDEuNjkxMjIsIDIuMTE1NDciLCBcCi0gICAgICAgICAgIjAuMTAwNjA1LCAwLjE0ODc2NiwgMC40Mjk0OTIsIDAuNjgyMzUzLCAxLjAxOTUxLCAxLjY5MTI4LCAyLjExNTQ5IiwgXAotICAgICAgICAgICIwLjEwMDk0OSwgMC4xNDg3NjgsIDAuNDI5NDk5LCAwLjY4MjM1MywgMS4wMTk0OSwgMS42OTA0NywgMi4xMTU0NiIsIFwKLSAgICAgICAgICAiMC4xMDA1OTUsIDAuMTQ4NzQsIDAuNDMwMTQ1LCAwLjY4MjM4MywgMS4wMTc2OCwgMS42OTM4OSwgMi4xMTUzOCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNjIzNzgsIDAuMTg3MzY2LCAwLjMyNzc2NSwgMC40NTE0ODQsIDAuNjE2MzIxLCAwLjk0NjA3MiwgMS4xNTIxNSIsIFwKLSAgICAgICAgICAiMC4xNzI2MTIsIDAuMTk3NTc1LCAwLjMzNzg3MywgMC40NjE3LCAwLjYyNjU0MiwgMC45NTYyODYsIDEuMTYyMzciLCBcCi0gICAgICAgICAgIjAuMTg1MzQxLCAwLjIxMDI5NywgMC4zNTA3MjcsIDAuNDc0NDIzLCAwLjYzOTI2NCwgMC45NjkwMTEsIDEuMTc1MDkiLCBcCi0gICAgICAgICAgIjAuMTk3NjA0LCAwLjIyMjU3LCAwLjM2Mjg2NiwgMC40ODY0MjUsIDAuNjUxNTM0LCAwLjk4MTI3OCwgMS4xODczNiIsIFwKLSAgICAgICAgICAiMC4yMDg3MTUsIDAuMjMzNjkyLCAwLjM3NDMwOSwgMC40OTc4NDYsIDAuNjYyNTY2LCAwLjk5MjM4NCwgMS4xOTg0IiwgXAotICAgICAgICAgICIwLjIyNDAwOSwgMC4yNDkwMDEsIDAuMzg5NDMxLCAwLjUxMzEwNSwgMC42Nzc5NDQsIDEuMDA3NywgMS4yMTM3OCIsIFwKLSAgICAgICAgICAiMC4yMzU4NTUsIDAuMjYwODIxLCAwLjQwMTQwNywgMC41MjQ5NjcsIDAuNjg5NzczLCAxLjAxOTUxLCAxLjIyNTYxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5MzQ0MiwgMC4xNDE4OTgsIDAuNDIyNjQxLCAwLjY3MjA4MywgMS4wMDQ0NCwgMS42NjkzNywgMi4wODQ5NSIsIFwKLSAgICAgICAgICAiMC4wOTM3NjIsIDAuMTQxODc0LCAwLjQyMjcwMSwgMC42NzIwNzIsIDEuMDA0NSwgMS42Njk0NiwgMi4wODUwNCIsIFwKLSAgICAgICAgICAiMC4wOTM3MzMsIDAuMTQxODY2LCAwLjQyMjY2NywgMC42NzIwNzIsIDEuMDA0NSwgMS42Njk0NiwgMi4wODUwMyIsIFwKLSAgICAgICAgICAiMC4wOTM3NjcsIDAuMTQxODg4LCAwLjQyMjcsIDAuNjcwNjk3LCAxLjAwNDUsIDEuNjY5NDYsIDIuMDg1MDgiLCBcCi0gICAgICAgICAgIjAuMDkzMDM1LCAwLjE0MTc5MSwgMC40MjIwMjksIDAuNjcyMTIzLCAxLjAwMjk0LCAxLjY2OTI2LCAyLjA4MjM3IiwgXAotICAgICAgICAgICIwLjA5MzE3MywgMC4xNDE5NTgsIDAuNDIyNjc4LCAwLjY3MjA3NSwgMS4wMDQ0MywgMS42NjkzOCwgMi4wODQ5NSIsIFwKLSAgICAgICAgICAiMC4wOTM3NiwgMC4xNDIyNDUsIDAuNDIyMDc4LCAwLjY3MjEzOSwgMS4wMDQ1MSwgMS42Njk0MiwgMi4wODUwNiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogY2xlYXI7Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4NjM0OSwgMC4xMTEyMzYsIDAuMjUxNjIxLCAwLjM3NTIyNywgMC41NDAwMTksIDAuODY5ODUsIDEuMDc1ODYiLCBcCi0gICAgICAgICAgIjAuMDk2MTI2LCAwLjEyMTAyMSwgMC4yNjEzODQsIDAuMzg1MDkxLCAwLjU0OTkyNiwgMC44Nzk2NTMsIDEuMDg1NzEiLCBcCi0gICAgICAgICAgIjAuMTA4NjM5LCAwLjEzMzUyOSwgMC4yNzM5NzIsIDAuMzk3NTg0LCAwLjU2MjQ0NywgMC44OTIxODYsIDEuMDk4MzMiLCBcCi0gICAgICAgICAgIjAuMTIwNDYzLCAwLjE0NTM2NSwgMC4yODU4MDgsIDAuNDA5NDMzLCAwLjU3NDM0LCAwLjkwNDAzOSwgMS4xMTAxOCIsIFwKLSAgICAgICAgICAiMC4xMzExNjEsIDAuMTU2MTM5LCAwLjI5NjM4NSwgMC40MjAwNjksIDAuNTg1MDUyLCAwLjkxNDgyNCwgMS4xMjA4NCIsIFwKLSAgICAgICAgICAiMC4xNDYyNjcsIDAuMTcxMTYsIDAuMzExNjAyLCAwLjQzNTIwOSwgMC41OTk5NzYsIDAuOTI5OCwgMS4xMzU4NSIsIFwKLSAgICAgICAgICAiMC4xNTc2MjcsIDAuMTgyNjEyLCAwLjMyMjk0OCwgMC40NDY2NDcsIDAuNjExMzg2LCAwLjk0MTI4LCAxLjE0NzI5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5Mzc4MywgMC4xNDE0NTIsIDAuNDIyNDE1LCAwLjY3MTQ3MSwgMS4wMDM4MSwgMS42Njg1OCwgMi4wODQyNyIsIFwKLSAgICAgICAgICAiMC4wOTM3ODcsIDAuMTQyMjc0LCAwLjQyMjQxNCwgMC42NzE2MTcsIDEuMDAzNjksIDEuNjY4NTYsIDIuMDg0MzIiLCBcCi0gICAgICAgICAgIjAuMDkzODAxLCAwLjE0MTc2NywgMC40MjI0MSwgMC42NzE1NywgMS4wMDM4NSwgMS42Njg1MywgMi4wODQyNSIsIFwKLSAgICAgICAgICAiMC4wOTM5NzUsIDAuMTQyMTY2LCAwLjQyMjQwMywgMC42NzE0OTMsIDEuMDA0MTMsIDEuNjY4NSwgMi4wODQyNCIsIFwKLSAgICAgICAgICAiMC4wOTQ0NTksIDAuMTQyNDM0LCAwLjQyMjM1NSwgMC42NzE0NDgsIDEuMDAzNywgMS42Njg2LCAyLjA4Mzc5IiwgXAotICAgICAgICAgICIwLjA5NTQ3MSwgMC4xNDI5NjEsIDAuNDIyMzE1LCAwLjY3MTM3NywgMS4wMDM1NCwgMS42Njg0NiwgMi4wODM2NSIsIFwKLSAgICAgICAgICAiMC4wOTU5MzIsIDAuMTQzNTU0LCAwLjQyMjQxLCAwLjY3MTMzNCwgMS4wMDMzOCwgMS42Njg1NiwgMi4wODM2NyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQyMzksIDAuMDA0MjQsIDAuMDA0MjI1LCAwLjAwNDIxNywgMC4wMDQyMTIsIDAuMDA0MjA2LCAwLjAwNDIwNCIsIFwKLSAgICAgICAgICAiMC4wMDQyMjQsIDAuMDA0MjI2LCAwLjAwNDIxMSwgMC4wMDQyMDMsIDAuMDA0MTk3LCAwLjAwNDE5MiwgMC4wMDQxOSIsIFwKLSAgICAgICAgICAiMC4wMDQyMTYsIDAuMDA0MjE4LCAwLjAwNDIwMywgMC4wMDQxOTUsIDAuMDA0MTg5LCAwLjAwNDE4NCwgMC4wMDQxODIiLCBcCi0gICAgICAgICAgIjAuMDA0MjE1LCAwLjAwNDIxNywgMC4wMDQyMDMsIDAuMDA0MTk1LCAwLjAwNDE4OSwgMC4wMDQxODMsIDAuMDA0MTgxIiwgXAotICAgICAgICAgICIwLjAwNDIyNCwgMC4wMDQyMjcsIDAuMDA0MjEzLCAwLjAwNDIwNSwgMC4wMDQxOTksIDAuMDA0MTkzLCAwLjAwNDE5MSIsIFwKLSAgICAgICAgICAiMC4wMDQyMzMsIDAuMDA0MjM2LCAwLjAwNDIyMywgMC4wMDQyMTUsIDAuMDA0MjA4LCAwLjAwNDIwMiwgMC4wMDQyIiwgXAotICAgICAgICAgICIwLjAwNDI0NiwgMC4wMDQyNDksIDAuMDA0MjM3LCAwLjAwNDIyOCwgMC4wMDQyMjIsIDAuMDA0MjE2LCAwLjAwNDIxMyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDIyOSwgMC4wMDQyMzcsIDAuMDA0MjQ3LCAwLjAwNDI0OSwgMC4wMDQyNTEsIDAuMDA0MjUyLCAwLjAwNDI1MiIsIFwKLSAgICAgICAgICAiMC4wMDQyMTQsIDAuMDA0MjIyLCAwLjAwNDIzMywgMC4wMDQyMzUsIDAuMDA0MjM3LCAwLjAwNDIzOCwgMC4wMDQyMzgiLCBcCi0gICAgICAgICAgIjAuMDA0MjEzLCAwLjAwNDIyMSwgMC4wMDQyMzEsIDAuMDA0MjM0LCAwLjAwNDIzNSwgMC4wMDQyMzYsIDAuMDA0MjM3IiwgXAotICAgICAgICAgICIwLjAwNDIxOCwgMC4wMDQyMjYsIDAuMDA0MjM3LCAwLjAwNDIzOSwgMC4wMDQyNDEsIDAuMDA0MjQxLCAwLjAwNDI0MiIsIFwKLSAgICAgICAgICAiMC4wMDQyMzMsIDAuMDA0MjQsIDAuMDA0MjUxLCAwLjAwNDI1MywgMC4wMDQyNTUsIDAuMDA0MjU2LCAwLjAwNDI1NiIsIFwKLSAgICAgICAgICAiMC4wMDQyNDUsIDAuMDA0MjUzLCAwLjAwNDI2MywgMC4wMDQyNjUsIDAuMDA0MjY2LCAwLjAwNDI2OCwgMC4wMDQyNjgiLCBcCi0gICAgICAgICAgIjAuMDA0MjcxLCAwLjAwNDI3OCwgMC4wMDQyODksIDAuMDA0MjkxLCAwLjAwNDI5MiwgMC4wMDQyOTQsIDAuMDA0Mjk0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUk4iOwotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDQ4MSwgMC4wMDQ0ODgsIDAuMDA0NDk3LCAwLjAwNDQ5OSwgMC4wMDQ1LCAwLjAwNDUwMSwgMC4wMDQ1MDEiLCBcCi0gICAgICAgICAgIjAuMDA0NDY1LCAwLjAwNDQ3MiwgMC4wMDQ0ODMsIDAuMDA0NDg0LCAwLjAwNDQ4NiwgMC4wMDQ0ODcsIDAuMDA0NDg3IiwgXAotICAgICAgICAgICIwLjAwNDQ1MiwgMC4wMDQ0NiwgMC4wMDQ0NzIsIDAuMDA0NDc1LCAwLjAwNDQ3NiwgMC4wMDQ0NzcsIDAuMDA0NDc5IiwgXAotICAgICAgICAgICIwLjAwNDQ0MSwgMC4wMDQ0NSwgMC4wMDQ0NjUsIDAuMDA0NDY4LCAwLjAwNDQ2OSwgMC4wMDQ0NzEsIDAuMDA0NDcxIiwgXAotICAgICAgICAgICIwLjAwNDQzOCwgMC4wMDQ0NDcsIDAuMDA0NDYzLCAwLjAwNDQ2NiwgMC4wMDQ0NjgsIDAuMDA0NDcsIDAuMDA0NDciLCBcCi0gICAgICAgICAgIjAuMDA0NDMzLCAwLjAwNDQ0MywgMC4wMDQ0NiwgMC4wMDQ0NjQsIDAuMDA0NDY3LCAwLjAwNDQ2OSwgMC4wMDQ0NjkiLCBcCi0gICAgICAgICAgIjAuMDA0NDM2LCAwLjAwNDQ0NiwgMC4wMDQ0NjMsIDAuMDA0NDY3LCAwLjAwNDQ3LCAwLjAwNDQ3MiwgMC4wMDQ0NzIiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfcG93ZXIoc2NhbGFyKSB7Ci0gICAgICAgIHZhbHVlcygiMCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUU4pICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4yNjIzMTY7Ci0gICAgZnVuY3Rpb24gOiAiUUJJTlQiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5vbl91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcmlzaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE3NDcxNywgMC4xOTkyMzMsIDAuMzM4MjM0LCAwLjQ2MDkxMywgMC42MjQ0MzcsIDAuOTUxNTYsIDEuMTU2MDEiLCBcCi0gICAgICAgICAgIjAuMTg0OTQyLCAwLjIwOTQ1NywgMC4zNDg0NiwgMC40NzExMzYsIDAuNjM0NjYzLCAwLjk2MTc4LCAxLjE2NjI0IiwgXAotICAgICAgICAgICIwLjE5NzY2NywgMC4yMjIxODEsIDAuMzYxMTkxLCAwLjQ4Mzg2LCAwLjY0NzM4NywgMC45NzQ1MDUsIDEuMTc4OTYiLCBcCi0gICAgICAgICAgIjAuMjA5OTM1LCAwLjIzNDQ1LCAwLjM3MzQ1NSwgMC40OTYwMDMsIDAuNjU5NjU4LCAwLjk4Njc3MywgMS4xOTEyMyIsIFwKLSAgICAgICAgICAiMC4yMjEwNjIsIDAuMjQ1NTc1LCAwLjM4NDY1OSwgMC41MDcyNjUsIDAuNjcwNzg3LCAwLjk5Nzg3MywgMS4yMDIzMSIsIFwKLSAgICAgICAgICAiMC4yMzYzNDQsIDAuMjYwODYyLCAwLjM5OTg4LCAwLjUyMjUzOSwgMC42ODYwNjUsIDEuMDEzMTksIDEuMjE3NjQiLCBcCi0gICAgICAgICAgIjAuMjQ4MiwgMC4yNzI3MDYsIDAuNDExNzg1LCAwLjUzNDQwNCwgMC42OTc5NzIsIDEuMDI1MDIsIDEuMjI5NDkiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDkwOTQ0LCAwLjE0MTMyLCAwLjQyODAzNSwgMC42ODEwMzIsIDEuMDE4MTUsIDEuNjkyNTksIDIuMTE0MTciLCBcCi0gICAgICAgICAgIjAuMDkxMTQyLCAwLjE0MTMxOCwgMC40Mjc4MzMsIDAuNjgxMDI2LCAxLjAxODE5LCAxLjY5MjY0LCAyLjExNDIzIiwgXAotICAgICAgICAgICIwLjA5MTE1NSwgMC4xNDEzMTYsIDAuNDI4MDY0LCAwLjY4MTAyNywgMS4wMTgxOSwgMS42OTI2NCwgMi4xMTQyMiIsIFwKLSAgICAgICAgICAiMC4wOTExMzUsIDAuMTQxMzIsIDAuNDI3ODMzLCAwLjY3OTkxLCAxLjAxODE5LCAxLjY5MjY0LCAyLjExNDI1IiwgXAotICAgICAgICAgICIwLjA5MDk0NCwgMC4xNDEzMDYsIDAuNDI3MjgsIDAuNjgxMDY2LCAxLjAxNjgxLCAxLjY5MjU1LCAyLjExMTU1IiwgXAotICAgICAgICAgICIwLjA5MTEwMywgMC4xNDEzMjgsIDAuNDI4MDczLCAwLjY4MTAyNiwgMS4wMTgxNSwgMS42OTI2LCAyLjExNDE4IiwgXAotICAgICAgICAgICIwLjA5MTE2MSwgMC4xNDE0NjYsIDAuNDI3Mjk1LCAwLjY4MTA3NywgMS4wMTgxOSwgMS42OTI2MiwgMi4xMTQyMyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xODU1LCAwLjIxMDIxMSwgMC4zNTAzMTcsIDAuNDczOTY0LCAwLjYzODg3NiwgMC45Njg1NjUsIDEuMTc0NjMiLCBcCi0gICAgICAgICAgIjAuMTk1NzEyLCAwLjIyMDQxNSwgMC4zNjA1MTgsIDAuNDg0MTcyLCAwLjY0OTA5OSwgMC45Nzg4MzQsIDEuMTg0ODIiLCBcCi0gICAgICAgICAgIjAuMjA4MjgzLCAwLjIzMjk5NiwgMC4zNzMwOTQsIDAuNDk2NzQ1LCAwLjY2MTY0OSwgMC45OTEzNTQsIDEuMTk3NCIsIFwKLSAgICAgICAgICAiMC4yMjA0MzEsIDAuMjQ1MTQ1LCAwLjM4NTI0LCAwLjUwODg5LCAwLjY3Mzc3MiwgMS4wMDM2MiwgMS4yMDk1NCIsIFwKLSAgICAgICAgICAiMC4yMzEzMDgsIDAuMjU2MDE4LCAwLjM5NjEyMSwgMC41MTk3NzQsIDAuNjg0Njk0LCAxLjAxNDUsIDEuMjIwNDIiLCBcCi0gICAgICAgICAgIjAuMjQ2NTA4LCAwLjI3MTIxNywgMC40MTEzMTgsIDAuNTM0OTcxLCAwLjY5OTg5MiwgMS4wMjk3LCAxLjIzNTYyIiwgXAotICAgICAgICAgICIwLjI1Nzg2NCwgMC4yODI1NzQsIDAuNDIyNjY1LCAwLjU0NjMzMywgMC43MTEyMzYsIDEuMDQwOTMsIDEuMjQ2OTUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg5OTkyLCAwLjEzOTM0MSwgMC40MjA5MTUsIDAuNjcwODMsIDEuMDAxODMsIDEuNjY3NjgsIDIuMDgyOTgiLCBcCi0gICAgICAgICAgIjAuMDg5OTkzLCAwLjEzOTM1MiwgMC40MjA5MTUsIDAuNjcwODE3LCAxLjAwMzMyLCAxLjY2NSwgMi4wODI4MiIsIFwKLSAgICAgICAgICAiMC4wODk5OTQsIDAuMTM5MjUzLCAwLjQyMDk0OSwgMC42NzA4MTMsIDEuMDAzMjQsIDEuNjY3NjksIDIuMDgyODQiLCBcCi0gICAgICAgICAgIjAuMDg5OTkzLCAwLjEzOTI5NywgMC40MjA5NTIsIDAuNjcwODE0LCAxLjAwMzE1LCAxLjY2NDU4LCAyLjA4Mjg0IiwgXAotICAgICAgICAgICIwLjA5MDAxNywgMC4xMzkzNTEsIDAuNDIwOTAxLCAwLjY3MDgxNywgMS4wMDMyOSwgMS42NjQ1OSwgMi4wODI4NyIsIFwKLSAgICAgICAgICAiMC4wOTAwMTUsIDAuMTM5MzUsIDAuNDIwOTA1LCAwLjY3MDgxOCwgMS4wMDMyOCwgMS42NjQwMiwgMi4wODI4NCIsIFwKLSAgICAgICAgICAiMC4wODk5OTksIDAuMTM5MzQ0LCAwLjQyMTQ2MSwgMC42NzA4NDQsIDEuMDAxNDUsIDEuNjY3NjMsIDIuMDgyNjgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUk4iOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHByZXNldDsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk4NDI3LCAwLjEyMjkzMiwgMC4yNjE5MDYsIDAuMzg0NTY1LCAwLjU0ODA4OCwgMC44NzUyMDQsIDEuMDc5NjciLCBcCi0gICAgICAgICAgIjAuMTA4MjE2LCAwLjEzMjcyNywgMC4yNzE3MjUsIDAuMzk0MzgxLCAwLjU1Nzg4NywgMC44ODQ5OTgsIDEuMDg5NDMiLCBcCi0gICAgICAgICAgIjAuMTIwNzMsIDAuMTQ1MjM0LCAwLjI4NDIzOCwgMC40MDY4NzEsIDAuNTcwNDAzLCAwLjg5NzUwMywgMS4xMDIwMSIsIFwKLSAgICAgICAgICAiMC4xMzI1MDksIDAuMTU3MDE1LCAwLjI5NjAxMywgMC40MTg2NDksIDAuNTgyMTk5LCAwLjkwOTMwOSwgMS4xMTM4IiwgXAotICAgICAgICAgICIwLjE0Mjk0OCwgMC4xNjc0NDgsIDAuMzA2NDA3LCAwLjQyOTA3NCwgMC41OTI1OSwgMC45MTk3MTcsIDEuMTI0MSIsIFwKLSAgICAgICAgICAiMC4xNTc0MjgsIDAuMTgxOTE3LCAwLjMyMDkwMywgMC40NDM1MywgMC42MDcwNTUsIDAuOTM0MTQ3LCAxLjEzODU1IiwgXAotICAgICAgICAgICIwLjE2ODI5NCwgMC4xOTI3ODIsIDAuMzMxNzIxLCAwLjQ1NDM4NSwgMC42MTc4OTgsIDAuOTQ1MDY0LCAxLjE0OTQ0Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5MDk4MSwgMC4xNDExODIsIDAuNDI3ODEzLCAwLjY4MDY1MywgMS4wMTc4NCwgMS42OTIyNywgMi4xMTM5MiIsIFwKLSAgICAgICAgICAiMC4wOTA5OTYsIDAuMTQxMTg0LCAwLjQyNzgxMywgMC42ODA3NDksIDEuMDE3NzksIDEuNjkyMjYsIDIuMTEzOTYiLCBcCi0gICAgICAgICAgIjAuMDkwOTgyLCAwLjE0MTE4MiwgMC40Mjc4MTMsIDAuNjgwNzIzLCAxLjAxNzg2LCAxLjY5MjI0LCAyLjExMzkxIiwgXAotICAgICAgICAgICIwLjA5MDk4OSwgMC4xNDExODMsIDAuNDI3ODE0LCAwLjY4MDY2OSwgMS4wMTgwNiwgMS42OTIyMywgMi4xMTM5IiwgXAotICAgICAgICAgICIwLjA5MTA0LCAwLjE0MTI0LCAwLjQyNzc5NSwgMC42ODA2NDksIDEuMDE3NzcsIDEuNjkyMywgMi4xMTM2NSIsIFwKLSAgICAgICAgICAiMC4wOTEwODYsIDAuMTQxMjYxLCAwLjQyNzczOSwgMC42ODA1OTUsIDEuMDE3NjgsIDEuNjkyMjMsIDIuMTEzNTciLCBcCi0gICAgICAgICAgIjAuMDkxMTYxLCAwLjE0MTI1NiwgMC40Mjc3NjgsIDAuNjgwNTkxLCAxLjAxNzU5LCAxLjY5MjI0LCAyLjExMzUxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDIyOSwgMC4wMDQyMzcsIDAuMDA0MjQ3LCAwLjAwNDI0OSwgMC4wMDQyNTEsIDAuMDA0MjUyLCAwLjAwNDI1MiIsIFwKLSAgICAgICAgICAiMC4wMDQyMTQsIDAuMDA0MjIyLCAwLjAwNDIzMywgMC4wMDQyMzUsIDAuMDA0MjM3LCAwLjAwNDIzOCwgMC4wMDQyMzgiLCBcCi0gICAgICAgICAgIjAuMDA0MjEzLCAwLjAwNDIyMSwgMC4wMDQyMzEsIDAuMDA0MjM0LCAwLjAwNDIzNSwgMC4wMDQyMzYsIDAuMDA0MjM3IiwgXAotICAgICAgICAgICIwLjAwNDIxOCwgMC4wMDQyMjYsIDAuMDA0MjM3LCAwLjAwNDIzOSwgMC4wMDQyNDEsIDAuMDA0MjQxLCAwLjAwNDI0MiIsIFwKLSAgICAgICAgICAiMC4wMDQyMzMsIDAuMDA0MjQsIDAuMDA0MjUxLCAwLjAwNDI1MywgMC4wMDQyNTUsIDAuMDA0MjU2LCAwLjAwNDI1NiIsIFwKLSAgICAgICAgICAiMC4wMDQyNDUsIDAuMDA0MjUzLCAwLjAwNDI2MywgMC4wMDQyNjUsIDAuMDA0MjY2LCAwLjAwNDI2OCwgMC4wMDQyNjgiLCBcCi0gICAgICAgICAgIjAuMDA0MjcxLCAwLjAwNDI3OCwgMC4wMDQyODksIDAuMDA0MjkxLCAwLjAwNDI5MiwgMC4wMDQyOTQsIDAuMDA0Mjk0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0MjM5LCAwLjAwNDI0LCAwLjAwNDIyNSwgMC4wMDQyMTcsIDAuMDA0MjEyLCAwLjAwNDIwNiwgMC4wMDQyMDQiLCBcCi0gICAgICAgICAgIjAuMDA0MjI0LCAwLjAwNDIyNiwgMC4wMDQyMTEsIDAuMDA0MjAzLCAwLjAwNDE5NywgMC4wMDQxOTIsIDAuMDA0MTkiLCBcCi0gICAgICAgICAgIjAuMDA0MjE2LCAwLjAwNDIxOCwgMC4wMDQyMDMsIDAuMDA0MTk1LCAwLjAwNDE4OSwgMC4wMDQxODQsIDAuMDA0MTgyIiwgXAotICAgICAgICAgICIwLjAwNDIxNSwgMC4wMDQyMTcsIDAuMDA0MjAzLCAwLjAwNDE5NSwgMC4wMDQxODksIDAuMDA0MTgzLCAwLjAwNDE4MSIsIFwKLSAgICAgICAgICAiMC4wMDQyMjQsIDAuMDA0MjI3LCAwLjAwNDIxMywgMC4wMDQyMDUsIDAuMDA0MTk5LCAwLjAwNDE5MywgMC4wMDQxOTEiLCBcCi0gICAgICAgICAgIjAuMDA0MjMzLCAwLjAwNDIzNiwgMC4wMDQyMjMsIDAuMDA0MjE1LCAwLjAwNDIwOCwgMC4wMDQyMDIsIDAuMDA0MiIsIFwKLSAgICAgICAgICAiMC4wMDQyNDYsIDAuMDA0MjQ5LCAwLjAwNDIzNywgMC4wMDQyMjgsIDAuMDA0MjIyLCAwLjAwNDIxNiwgMC4wMDQyMTMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0NDgxLCAwLjAwNDQ4OCwgMC4wMDQ0OTcsIDAuMDA0NDk5LCAwLjAwNDUsIDAuMDA0NTAxLCAwLjAwNDUwMSIsIFwKLSAgICAgICAgICAiMC4wMDQ0NjUsIDAuMDA0NDcyLCAwLjAwNDQ4MywgMC4wMDQ0ODQsIDAuMDA0NDg2LCAwLjAwNDQ4NywgMC4wMDQ0ODciLCBcCi0gICAgICAgICAgIjAuMDA0NDUyLCAwLjAwNDQ2LCAwLjAwNDQ3MiwgMC4wMDQ0NzUsIDAuMDA0NDc2LCAwLjAwNDQ3NywgMC4wMDQ0NzkiLCBcCi0gICAgICAgICAgIjAuMDA0NDQxLCAwLjAwNDQ1LCAwLjAwNDQ2NSwgMC4wMDQ0NjgsIDAuMDA0NDY5LCAwLjAwNDQ3MSwgMC4wMDQ0NzEiLCBcCi0gICAgICAgICAgIjAuMDA0NDM4LCAwLjAwNDQ0NywgMC4wMDQ0NjMsIDAuMDA0NDY2LCAwLjAwNDQ2OCwgMC4wMDQ0NywgMC4wMDQ0NyIsIFwKLSAgICAgICAgICAiMC4wMDQ0MzMsIDAuMDA0NDQzLCAwLjAwNDQ2LCAwLjAwNDQ2NCwgMC4wMDQ0NjcsIDAuMDA0NDY5LCAwLjAwNDQ2OSIsIFwKLSAgICAgICAgICAiMC4wMDQ0MzYsIDAuMDA0NDQ2LCAwLjAwNDQ2MywgMC4wMDQ0NjcsIDAuMDA0NDcsIDAuMDA0NDcyLCAwLjAwNDQ3MiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihzY2FsYXIpIHsKLSAgICAgICAgdmFsdWVzKCIwIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihSTikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNTI2OTQ7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNDQ0NTc7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNTI2OTQ7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNDUzLCAwLjAwMDQ1MywgMC4wMDA0NTIsIDAuMDAwNDUyLCAwLjAwMDQ1MiwgMC4wMDA0NTIsIDAuMDAwNDUyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNDU4LCAwLjAwMDQ1NCwgMC4wMDA0NTQsIDAuMDAwNDU0LCAwLjAwMDQ1NCwgMC4wMDA0NTQsIDAuMDAwNDU0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRCYhU0UmIVNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9TRV9FUV8wX0FOX1NJX0VRXzAgPT0gMSdiMSI7Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wOTg0MjcsIDAuMTA4MjE2LCAwLjEyMDczLCAwLjEzMjUwOSwgMC4xNDI5NDgsIDAuMTU3NDI4LCAwLjE2ODI5NCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJlY292ZXJ5X3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUQmU0UmU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1NFX0VRXzFfQU5fU0lfRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChyZWNvdmVyeV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDM3NSwgLTAuMDQ4NzUsIC0wLjA2MTI1LCAtMC4wNzM3NSwgLTAuMDg2MjUsIC0wLjA5NjI1LCAtMC4xMTEyNSIsIFwKLSAgICAgICAgICAiLTAuMDM4NzUsIC0wLjA1LCAtMC4wNjI1LCAtMC4wNzUsIC0wLjA4NzUsIC0wLjEwMzc1LCAtMC4xMTI1IiwgXAotICAgICAgICAgICItMC4wMzg3NSwgLTAuMDUsIC0wLjA2MjUsIC0wLjA3NSwgLTAuMDg3NSwgLTAuMTAzNzUsIC0wLjExMjUiLCBcCi0gICAgICAgICAgIi0wLjAzMjUsIC0wLjA0Mzc1LCAtMC4wNTYyNSwgLTAuMDY4NzUsIC0wLjA4MTI1LCAtMC4wOTc1LCAtMC4xMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDEzNzUsIC0wLjAyNSwgLTAuMDQzNzUsIC0wLjA1NjI1LCAtMC4wNjg3NSwgLTAuMDg1LCAtMC4wOTM3NSIsIFwKLSAgICAgICAgICAiMC4wMDg3NSwgLTAuMDAyNSwgLTAuMDE1LCAtMC4wMjc1LCAtMC4wNCwgLTAuMDYyNSwgLTAuMDcxMjUiLCBcCi0gICAgICAgICAgIjAuMDM2MjUsIDAuMDE4NzUsIDAuMDA2MjUsIC0wLjAwNjI1LCAtMC4wMTg3NSwgLTAuMDM1LCAtMC4wNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJlbW92YWxfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRCZTRSZTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fU0VfRVFfMV9BTl9TSV9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHJlbW92YWxfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU2MjUsIDAuMDY3NSwgMC4wOCwgMC4wOTI1LCAwLjEwNSwgMC4xMTUsIDAuMTMiLCBcCi0gICAgICAgICAgIjAuMDYzNzUsIDAuMDc1LCAwLjA4NzUsIDAuMSwgMC4xMDYyNSwgMC4xMjI1LCAwLjEzMTI1IiwgXAotICAgICAgICAgICIwLjA3LCAwLjA4MTI1LCAwLjA5Mzc1LCAwLjEwNjI1LCAwLjExMjUsIDAuMTI4NzUsIDAuMTQzNzUiLCBcCi0gICAgICAgICAgIjAuMDc2MjUsIDAuMDg3NSwgMC4xLCAwLjExMjUsIDAuMTE4NzUsIDAuMTM1LCAwLjE1IiwgXAotICAgICAgICAgICIwLjA4MjUsIDAuMDkzNzUsIDAuMTA2MjUsIDAuMTE4NzUsIDAuMTI1LCAwLjE0MTI1LCAwLjE1IiwgXAotICAgICAgICAgICIwLjA5MTI1LCAwLjEwMjUsIDAuMTE1LCAwLjEyMTI1LCAwLjEzMzc1LCAwLjE1LCAwLjE1ODc1IiwgXAotICAgICAgICAgICIwLjA5NSwgMC4xMDYyNSwgMC4xMTg3NSwgMC4xMzEyNSwgMC4xMzc1LCAwLjE1Mzc1LCAwLjE2MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFNFKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDEzNTc3OTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDEzNTY4NjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDEzNTc3OTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDQzLCAwLjAwNDI3OCwgMC4wMDQyODMsIDAuMDA0Mjg1LCAwLjAwNDMsIDAuMDA0MzIzLCAwLjAwNDM0OSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNTY2OCwgMC4wMDU2MzMsIDAuMDA1NjI1LCAwLjAwNTYzNSwgMC4wMDU2NDcsIDAuMDA1Njg4LCAwLjAwNTcyOCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJSTiI7Ci0gICAgICBzZGZfY29uZCA6ICJSTiA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMTg3NSwgLTAuMDA3NSwgLTAuMDAxMjUsIDAuMDExMjUsIDAuMDE3NSwgMC4wMzM3NSwgMC4wNDI1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLCAwLjAxMjUsIDAuMDIyNSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDMxMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAwLCAwLjAxLCAwLjAxODc1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAwLjAwMzc1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjA1NSwgLTAuMDUsIC0wLjAzNzUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAwMjUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA2NSwgLTAuMDYsIC0wLjA0NzUsIC0wLjAzNSwgLTAuMDI4NzUsIC0wLjAxMjUsIC0wLjAwMzc1IiwgXAotICAgICAgICAgICItMC4wNzM3NSwgLTAuMDY4NzUsIC0wLjA1NjI1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDIxMjUsIC0wLjAxMjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMDYyNSwgMC4wMDUsIDAuMDE3NSwgMC4wMjM3NSwgMC4wMzYyNSwgMC4wNDYyNSwgMC4wNTUiLCBcCi0gICAgICAgICAgIi0wLjAxMTI1LCAtMC4wMDYyNSwgMC4wMDYyNSwgMC4wMTg3NSwgMC4wMjUsIDAuMDQxMjUsIDAuMDUiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMC4wMDYyNSwgMC4wMTg3NSwgMC4wMjg3NSwgMC4wMzc1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDI1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMC4wMDYyNSwgMC4wMTYyNSwgMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLjAxLCAwLjAxODc1IiwgXAotICAgICAgICAgICItMC4wNTI1LCAtMC4wNDEyNSwgLTAuMDM1LCAtMC4wMjg3NSwgLTAuMDE2MjUsIC0wLjAwNjI1LCAwLjAwMjUiLCBcCi0gICAgICAgICAgIi0wLjA2MTI1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAyNSwgLTAuMDE1LCAtMC4wMDYyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiUk4iOwotICAgICAgc2RmX2NvbmQgOiAiUk4gPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDgxMjUsIDAuMDcsIDAuMDU3NSwgMC4wNTEyNSwgMC4wNDUsIDAuMDM1LCAwLjAzMjUiLCBcCi0gICAgICAgICAgIjAuMDkyNSwgMC4wODEyNSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA0NjI1LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIjAuMTA1LCAwLjA5Mzc1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNTg3NSwgMC4wNSIsIFwKLSAgICAgICAgICAiMC4xMTEyNSwgMC4xMDYyNSwgMC4wOTM3NSwgMC4wODc1LCAwLjA3NSwgMC4wNzEyNSwgMC4wNjI1IiwgXAotICAgICAgICAgICIwLjEyMzc1LCAwLjExMjUsIDAuMTA2MjUsIDAuMDkzNzUsIDAuMDg3NSwgMC4wNzc1LCAwLjA3NSIsIFwKLSAgICAgICAgICAiMC4xNDYyNSwgMC4xMzUsIDAuMTIyNSwgMC4xMTYyNSwgMC4xMSwgMC4xLCAwLjA5MTI1IiwgXAotICAgICAgICAgICIwLjE2MTI1LCAwLjE1LCAwLjEzNzUsIDAuMTMxMjUsIDAuMTE4NzUsIDAuMTE1LCAwLjEwNjI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMSwgMC4wODg3NSwgMC4wNzYyNSwgMC4wNywgMC4wNjM3NSwgMC4wNTM3NSwgMC4wNDUiLCBcCi0gICAgICAgICAgIjAuMTExMjUsIDAuMSwgMC4wODc1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNjUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIjAuMTE3NSwgMC4xMDYyNSwgMC4xLCAwLjA4NzUsIDAuMDgxMjUsIDAuMDcxMjUsIDAuMDY4NzUiLCBcCi0gICAgICAgICAgIjAuMTIzNzUsIDAuMTE4NzUsIDAuMTA2MjUsIDAuMSwgMC4wOTM3NSwgMC4wODM3NSwgMC4wNzUiLCBcCi0gICAgICAgICAgIjAuMTM2MjUsIDAuMTI1LCAwLjExMjUsIDAuMTA2MjUsIDAuMSwgMC4wOSwgMC4wODEyNSIsIFwKLSAgICAgICAgICAiMC4xNCwgMC4xMjg3NSwgMC4xMjI1LCAwLjExLCAwLjEwMzc1LCAwLjEsIDAuMDkxMjUiLCBcCi0gICAgICAgICAgIjAuMTQ4NzUsIDAuMTM3NSwgMC4xMjUsIDAuMTE4NzUsIDAuMTEyNSwgMC4xMDI1LCAwLjA5Mzc1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTSSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjU5MDUyOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDY1NzQ2MjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2NTkwNTI7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyNjMyLCAwLjAwMjYxNiwgMC4wMDI2MDcsIDAuMDAyNjAyLCAwLjAwMjYwMSwgMC4wMDI2MDMsIDAuMDAyNjEyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA0NjEsIDAuMDA0NjAxLCAwLjAwNDU5NSwgMC4wMDQ1OTIsIDAuMDA0NTkzLCAwLjAwNDU5NSwgMC4wMDQ2MDEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiUk4mU0UiOwotICAgICAgc2RmX2NvbmQgOiAiUk5fRVFfMV9BTl9TRV9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjA1NjI1LCAtMC4wNDUsIC0wLjAzODc1LCAtMC4wMzI1LCAtMC4wMjYyNSwgLTAuMDE2MjUsIC0wLjAwNzUiLCBcCi0gICAgICAgICAgIi0wLjA2MTI1LCAtMC4wNTYyNSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMjc1LCAtMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDczNzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjAzMzc1LCAtMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDg2MjUsIC0wLjA3NSwgLTAuMDY4NzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNDYyNSwgLTAuMDQzNzUiLCBcCi0gICAgICAgICAgIi0wLjA5MjUsIC0wLjA4NzUsIC0wLjA4MTI1LCAtMC4wNjg3NSwgLTAuMDY4NzUsIC0wLjA1ODc1LCAtMC4wNSIsIFwKLSAgICAgICAgICAiLTAuMTA4NzUsIC0wLjEwMzc1LCAtMC4wOTEyNSwgLTAuMDg1LCAtMC4wNzg3NSwgLTAuMDc1LCAtMC4wNjYyNSIsIFwKLSAgICAgICAgICAiLTAuMTIzNzUsIC0wLjExMjUsIC0wLjEwNjI1LCAtMC4xLCAtMC4wOTM3NSwgLTAuMDgzNzUsIC0wLjA4MTI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDEyNSwgLTAuMDAxMjUsIDAuMDExMjUsIDAuMDE3NSwgMC4wMywgMC4wNCwgMC4wNDg3NSIsIFwKLSAgICAgICAgICAiLTAuMDE3NSwgLTAuMDEyNSwgMCwgMC4wMTI1LCAwLjAxODc1LCAwLjAzNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAxODc1LCAtMC4wMDYyNSwgMCwgMC4wMTI1LCAwLjAyMjUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLCAwLjAxNjI1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjAzNzUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLjAwMzc1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjA1ODc1LCAtMC4wNDc1LCAtMC4wMzUsIC0wLjAyODc1LCAtMC4wMTYyNSwgLTAuMDA2MjUsIDAuMDAyNSIsIFwKLSAgICAgICAgICAiLTAuMDY3NSwgLTAuMDU2MjUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAxNSwgLTAuMDA2MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlJOJlNFIjsKLSAgICAgIHNkZl9jb25kIDogIlJOX0VRXzFfQU5fU0VfRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODc1LCAwLjA3NjI1LCAwLjA2Mzc1LCAwLjA1NzUsIDAuMDUxMjUsIDAuMDQxMjUsIDAuMDM4NzUiLCBcCi0gICAgICAgICAgIjAuMDk4NzUsIDAuMDg3NSwgMC4wNzUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNTI1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjEwNSwgMC4wOTM3NSwgMC4wODc1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIjAuMTE3NSwgMC4xMDYyNSwgMC4wOTM3NSwgMC4wODc1LCAwLjA4MTI1LCAwLjA3MTI1LCAwLjA2ODc1IiwgXAotICAgICAgICAgICIwLjEzLCAwLjExODc1LCAwLjEwNjI1LCAwLjEsIDAuMDkzNzUsIDAuMDgzNzUsIDAuMDc1IiwgXAotICAgICAgICAgICIwLjE0NjI1LCAwLjEzNSwgMC4xMjI1LCAwLjExNjI1LCAwLjExLCAwLjEsIDAuMDkxMjUiLCBcCi0gICAgICAgICAgIjAuMTU1LCAwLjE1LCAwLjEzNzUsIDAuMTMxMjUsIDAuMTE4NzUsIDAuMTE1LCAwLjEwNjI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDYyNSwgMC4wNTEyNSwgMC4wMzg3NSwgMC4wMjYyNSwgMC4wMTM3NSwgLTAuMDAyNSwgLTAuMDExMjUiLCBcCi0gICAgICAgICAgIjAuMDY3NSwgMC4wNTYyNSwgMC4wNDM3NSwgMC4wMzEyNSwgMC4wMjUsIDAuMDA4NzUsIDAiLCBcCi0gICAgICAgICAgIjAuMDgsIDAuMDY4NzUsIDAuMDU2MjUsIDAuMDQzNzUsIDAuMDMxMjUsIDAuMDIxMjUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMDg2MjUsIDAuMDgxMjUsIDAuMDY4NzUsIDAuMDU2MjUsIDAuMDQzNzUsIDAuMDI3NSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4wOTg3NSwgMC4wODc1LCAwLjA3NSwgMC4wNjI1LCAwLjA1LCAwLjAzMzc1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiMC4xMTUsIDAuMTAzNzUsIDAuMDkxMjUsIDAuMDc4NzUsIDAuMDY2MjUsIDAuMDUsIDAuMDQxMjUiLCBcCi0gICAgICAgICAgIjAuMTIzNzUsIDAuMTEyNSwgMC4xLCAwLjA4NzUsIDAuMDc1LCAwLjA1ODc1LCAwLjA1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogU0RGRlJYMiAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChTREZGUlgyKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuNTIxMDcxOwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIGZmIChOMzAsUUJJTlQpIHsKLSAgICBuZXh0X3N0YXRlIDogIigoU0UgU0kpICsgKCFTRSBEKSkiOwotICAgIGNsb2NrZWRfb24gOiAiQ0siOwotICAgIGNsZWFyIDogIighUk4pIjsKLSAgfQotICBwaW4oQ0spICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDU2NDY5OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDU2NDQ4NTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA1NjQ2OTsKLSAgICBjbG9jayA6IHRydWU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyNTY4LCAwLjAwMjU0MiwgMC4wMDI1MjgsIDAuMDAyNTMxLCAwLjAwMjU0NSwgMC4wMDI1NjIsIDAuMDAyNTg2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA2ODU5LCAwLjAwNjgzNCwgMC4wMDY4MywgMC4wMDY4NDQsIDAuMDA2ODYyLCAwLjAwNjkwMSwgMC4wMDY5MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFEJlJOJiFTRSYhU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1JOX0VRXzFfQU5fU0VfRVFfMF9BTl9TSV9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMTU5NzU4LCAwLjE2OTk5MiwgMC4xODI4NDcsIDAuMTk0OTY2LCAwLjIwNTg5NCwgMC4yMjEwMjUsIDAuMjMyNjk2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wOTM4ODUsIDAuMTAzODQsIDAuMTE2MjQzLCAwLjEyNzg2NiwgMC4xMzgxNDYsIDAuMTUyMDAzLCAwLjE2MjcwOSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNTg4MjQ3OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDU4NjUzMjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA1ODgyNDc7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyNzc5LCAwLjAwMjc2MSwgMC4wMDI3NTMsIDAuMDAyNzQ4LCAwLjAwMjc0NywgMC4wMDI3NDksIDAuMDAyNzU5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA0MzAyLCAwLjAwNDI5MiwgMC4wMDQyODcsIDAuMDA0Mjg0LCAwLjAwNDI4NCwgMC4wMDQyODUsIDAuMDA0MjkxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlJOJiFTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJSTl9FUV8xX0FOX1NFX0VRXzAgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDUsIC0wLjA0NSwgLTAuMDM4NzUsIC0wLjAzMjUsIC0wLjAyNjI1LCAtMC4wMTYyNSwgLTAuMDA3NSIsIFwKLSAgICAgICAgICAiLTAuMDYxMjUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAyMTI1LCAtMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDczNzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjAzMzc1LCAtMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDgsIC0wLjA3NSwgLTAuMDY4NzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNDYyNSwgLTAuMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDkyNSwgLTAuMDg3NSwgLTAuMDc1LCAtMC4wNjg3NSwgLTAuMDYyNSwgLTAuMDU4NzUsIC0wLjA1IiwgXAotICAgICAgICAgICItMC4xMDg3NSwgLTAuMDk3NSwgLTAuMDkxMjUsIC0wLjA4NSwgLTAuMDc4NzUsIC0wLjA3NSwgLTAuMDY2MjUiLCBcCi0gICAgICAgICAgIi0wLjExNzUsIC0wLjExMjUsIC0wLjEwNjI1LCAtMC4xLCAtMC4wOTM3NSwgLTAuMDgzNzUsIC0wLjA4MTI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDEyNSwgLTAuMDAxMjUsIDAuMDExMjUsIDAuMDE3NSwgMC4wMywgMC4wNCwgMC4wNDg3NSIsIFwKLSAgICAgICAgICAiLTAuMDE3NSwgLTAuMDEyNSwgMCwgMC4wMTI1LCAwLjAxODc1LCAwLjAzNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAxODc1LCAtMC4wMDYyNSwgMCwgMC4wMTI1LCAwLjAyMjUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLCAwLjAxNjI1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDM3NSwgLTAuMDI1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMC4wMDM3NSwgMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wNTI1LCAtMC4wNDc1LCAtMC4wMzUsIC0wLjAyODc1LCAtMC4wMTYyNSwgLTAuMDA2MjUsIDAuMDAyNSIsIFwKLSAgICAgICAgICAiLTAuMDYxMjUsIC0wLjA1NjI1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDI1LCAtMC4wMTUsIC0wLjAwNjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJSTiYhU0UiOwotICAgICAgc2RmX2NvbmQgOiAiUk5fRVFfMV9BTl9TRV9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4NzUsIDAuMDc2MjUsIDAuMDYzNzUsIDAuMDU3NSwgMC4wNTEyNSwgMC4wNDEyNSwgMC4wMzg3NSIsIFwKLSAgICAgICAgICAiMC4wOTg3NSwgMC4wODc1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1MjUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMTA1LCAwLjA5Mzc1LCAwLjA4NzUsIDAuMDc1LCAwLjA2ODc1LCAwLjA2NSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiMC4xMTc1LCAwLjEwNjI1LCAwLjA5Mzc1LCAwLjA4NzUsIDAuMDgxMjUsIDAuMDcxMjUsIDAuMDY4NzUiLCBcCi0gICAgICAgICAgIjAuMTMsIDAuMTE4NzUsIDAuMTA2MjUsIDAuMSwgMC4wOTM3NSwgMC4wODM3NSwgMC4wNzUiLCBcCi0gICAgICAgICAgIjAuMTQ2MjUsIDAuMTM1LCAwLjEyMjUsIDAuMTE2MjUsIDAuMTEsIDAuMSwgMC4wOTEyNSIsIFwKLSAgICAgICAgICAiMC4xNTUsIDAuMTUsIDAuMTM3NSwgMC4xMjUsIDAuMTE4NzUsIDAuMTE1LCAwLjEwNjI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDYyNSwgMC4wNTEyNSwgMC4wMzg3NSwgMC4wMjYyNSwgMC4wMTM3NSwgLTAuMDAyNSwgLTAuMDExMjUiLCBcCi0gICAgICAgICAgIjAuMDY3NSwgMC4wNjI1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDI1LCAwLjAwODc1LCAwIiwgXAotICAgICAgICAgICIwLjA4LCAwLjA2ODc1LCAwLjA1NjI1LCAwLjA0Mzc1LCAwLjAzMTI1LCAwLjAyMTI1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICIwLjA5MjUsIDAuMDgxMjUsIDAuMDY4NzUsIDAuMDU2MjUsIDAuMDQzNzUsIDAuMDI3NSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4wOTg3NSwgMC4wODc1LCAwLjA3NSwgMC4wNjI1LCAwLjA1LCAwLjA0LCAwLjAyNSIsIFwKLSAgICAgICAgICAiMC4xMTUsIDAuMTAzNzUsIDAuMDkxMjUsIDAuMDc4NzUsIDAuMDY2MjUsIDAuMDUsIDAuMDQxMjUiLCBcCi0gICAgICAgICAgIjAuMTIzNzUsIDAuMTEyNSwgMC4xLCAwLjA4NzUsIDAuMDc1LCAwLjA2NSwgMC4wNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjUyNDI5ODsKLSAgICBmdW5jdGlvbiA6ICJOMzAiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5vbl91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcmlzaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE1MTMyOCwgMC4yNTc1NDQsIDAuMzQwMDg4LCAwLjQ0MjM5MiwgMC41NDU4MjUsIDAuNjQ4Mzk3LCAwLjc1MDU2OCIsIFwKLSAgICAgICAgICAiMC4xNjE1NDUsIDAuMjY3NzA4LCAwLjM1MDE4MSwgMC40NTI2MDYsIDAuNTU2MDcsIDAuNjU4NjA3LCAwLjc2MTQxNSIsIFwKLSAgICAgICAgICAiMC4xNzQzMDgsIDAuMjgwNTM1LCAwLjM2MzA1NSwgMC40NjUzNzMsIDAuNTY4ODA3LCAwLjY3MTM4LCAwLjc3NDA5NiIsIFwKLSAgICAgICAgICAiMC4xODYyODksIDAuMjkyNDY4LCAwLjM3NTA4MSwgMC40NzczNzgsIDAuNTgwODQyLCAwLjY4MzM2MywgMC43ODU3MTQiLCBcCi0gICAgICAgICAgIjAuMTk2OTIyLCAwLjMwMzE0OCwgMC4zODU0ODUsIDAuNDg3OTkxLCAwLjU5MTQ2NiwgMC42OTM5OTcsIDAuNzk2ODQ2IiwgXAotICAgICAgICAgICIwLjIxMTk4MiwgMC4zMTgyMDIsIDAuNDAwNzcsIDAuNTAzMDYzLCAwLjYwNjQ5MiwgMC43MDkwNjIsIDAuODExOTIxIiwgXAotICAgICAgICAgICIwLjIyMzMwNywgMC4zMjk0OTksIDAuNDEyMDkyLCAwLjUxNDQxOCwgMC42MTc4OCwgMC43MjAzOTMsIDAuODIyNzA2Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2MDc1NSwgMC4yNjYwNjYsIDAuNDM1NTYsIDAuNjQ3Njg4LCAwLjg2MDE5NiwgMS4wNzU3NywgMS4yODcyOSIsIFwKLSAgICAgICAgICAiMC4wNjA5NDIsIDAuMjY2MDE5LCAwLjQzNTUyMSwgMC42NDc2NDksIDAuODYwMTE3LCAxLjA3NTc1LCAxLjI4OTU3IiwgXAotICAgICAgICAgICIwLjA2MDkzMiwgMC4yNjYwNzMsIDAuNDM1NTUyLCAwLjY0NzY4MywgMC44NjAyMTQsIDEuMDc1NzYsIDEuMjg5NTIiLCBcCi0gICAgICAgICAgIjAuMDYwODU2LCAwLjI2NjAxNywgMC40MzU1NTksIDAuNjQ3NjUzLCAwLjg2MDA4NywgMS4wNzU3NiwgMS4yODc1MiIsIFwKLSAgICAgICAgICAiMC4wNjA5OTMsIDAuMjY2MDU4LCAwLjQzNTM2MywgMC42NDc2MjYsIDAuODYwMDk5LCAxLjA3NTc0LCAxLjI4OTU2IiwgXAotICAgICAgICAgICIwLjA2MDg5NSwgMC4yNjYwNDksIDAuNDM1NTU4LCAwLjY0NzY5OSwgMC44NjAyMTEsIDEuMDc1NzEsIDEuMjg5NDgiLCBcCi0gICAgICAgICAgIjAuMDYxMDE1LCAwLjI2NjAxOSwgMC40MzU1NTUsIDAuNjQ3NjE3LCAwLjg2MDA3NiwgMS4wNzU2OSwgMS4yODc2MiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMzc3MjIsIDAuMjQyNjg0LCAwLjMyNTU3OCwgMC40Mjg1NjYsIDAuNTMyMDQ5LCAwLjYzNTY2MywgMC43MzkxOTIiLCBcCi0gICAgICAgICAgIjAuMTQ3OTM2LCAwLjI1Mjc5NSwgMC4zMzU4MDgsIDAuNDM4Njk5LCAwLjU0MjI2LCAwLjY0NTU1NCwgMC43NDkyNDUiLCBcCi0gICAgICAgICAgIjAuMTYwODEyLCAwLjI2NTQxMSwgMC4zNDg2ODIsIDAuNDUxNzIzLCAwLjU1NTA0OSwgMC42NTg1MzQsIDAuNzYxOTEyIiwgXAotICAgICAgICAgICIwLjE3MjkzLCAwLjI3Nzc5NCwgMC4zNjA4MTEsIDAuNDY0MDc4LCAwLjU2NzI5LCAwLjY3MDYwMSwgMC43NzQyNDciLCBcCi0gICAgICAgICAgIjAuMTgzODU5LCAwLjI4ODcxMSwgMC4zNzE3MjIsIDAuNDc0Nzc3LCAwLjU3ODE3MSwgMC42ODE1NzksIDAuNzg1MTU3IiwgXAotICAgICAgICAgICIwLjE5ODk3NSwgMC4zMDM2MTUsIDAuMzg2ODU1LCAwLjQ4OTkyLCAwLjU5MzMwMSwgMC42OTY3MTIsIDAuODAwMjg1IiwgXAotICAgICAgICAgICIwLjIxMDY2LCAwLjMxNTUxNiwgMC4zOTg0ODMsIDAuNTAxNTY4LCAwLjYwNSwgMC43MDgzMjQsIDAuODExOTciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDUyNDg5LCAwLjI1ODU1NiwgMC40MjUyODUsIDAuNjM0NjI5LCAwLjg0NTIzOCwgMS4wNTUzMiwgMS4yNjU0MyIsIFwKLSAgICAgICAgICAiMC4wNTI1NzYsIDAuMjU3NjkxLCAwLjQyNDU2MywgMC42MzQ0NDYsIDAuODQ1MjUzLCAxLjA1NDQ3LCAxLjI2NTE3IiwgXAotICAgICAgICAgICIwLjA1MjcyNCwgMC4yNTkwMDEsIDAuNDI0NjEzLCAwLjYzNTU0LCAwLjg0Mzc4NywgMS4wNTMwOCwgMS4yNjM1MSIsIFwKLSAgICAgICAgICAiMC4wNTI3MywgMC4yNTc2NjEsIDAuNDI0NTQxLCAwLjYzNTMwNCwgMC44NDUyNzUsIDEuMDUzNTMsIDEuMjY1MiIsIFwKLSAgICAgICAgICAiMC4wNTI3OSwgMC4yNTksIDAuNDI0Njg1LCAwLjYzNTUyNSwgMC44NDUxOTksIDEuMDU0MDIsIDEuMjY1MTgiLCBcCi0gICAgICAgICAgIjAuMDUyNTc0LCAwLjI1OTAxLCAwLjQyNDYyLCAwLjYzNTIyOSwgMC44NDUyMTEsIDEuMDUzNCwgMS4yNjUxOSIsIFwKLSAgICAgICAgICAiMC4wNTI0OTgsIDAuMjU3NzE1LCAwLjQyNDg1OCwgMC42MzU1MTYsIDAuODQ1MjY3LCAxLjA1MzU0LCAxLjI2NTE3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiBjbGVhcjsKLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDYyNjc0LCAwLjE2NzEzNywgMC4yNTAxMzEsIDAuMzUzMzQ3LCAwLjQ1NzExNSwgMC41NjA2MTMsIDAuNjYzOTU3IiwgXAotICAgICAgICAgICIwLjA3MjUyOSwgMC4xNzcwMDYsIDAuMjU5OTYxLCAwLjM2MzIxNywgMC40NjcxNDMsIDAuNTcwNTAxLCAwLjY3Mzc1NiIsIFwKLSAgICAgICAgICAiMC4wODUwNDUsIDAuMTg5NTc1LCAwLjI3MjMzLCAwLjM3NTc4LCAwLjQ3OTU1MiwgMC41ODMwNDksIDAuNjg2MzU4IiwgXAotICAgICAgICAgICIwLjA5Njg1NiwgMC4yMDE1MzQsIDAuMjg0NTA5LCAwLjM4Nzk5OCwgMC40OTE0NjYsIDAuNTk0OTc4LCAwLjY5ODE4MiIsIFwKLSAgICAgICAgICAiMC4xMDc2NjcsIDAuMjEyMjEsIDAuMjk1MDU5LCAwLjM5ODY2NiwgMC41MDIwODUsIDAuNjA1NzQ4LCAwLjcwOTAwNyIsIFwKLSAgICAgICAgICAiMC4xMjIzMDEsIDAuMjI3MDc3LCAwLjMxMDA4OSwgMC40MTM1MTUsIDAuNTE2OTQ1LCAwLjYyMDQ5NiwgMC43MjM3NjIiLCBcCi0gICAgICAgICAgIjAuMTMzNDA5LCAwLjIzODI4OSwgMC4zMjExODQsIDAuNDI0NSwgMC41MjgxMTQsIDAuNjMxNzAyLCAwLjczNDk1NCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTI4MjEsIDAuMjU4NjU4LCAwLjQyNTM0NSwgMC42MzQxNDcsIDAuODQ0OTQsIDEuMDU0OTcsIDEuMjY0NiIsIFwKLSAgICAgICAgICAiMC4wNTI3NzIsIDAuMjU4NjU1LCAwLjQyNTE5NSwgMC42MzM5NjQsIDAuODQ1MTA4LCAxLjA1NDk0LCAxLjI2NDYyIiwgXAotICAgICAgICAgICIwLjA1MjczNywgMC4yNTg1OTgsIDAuNDI1MzQ4LCAwLjYzNDE2NSwgMC44NDQ5NTQsIDEuMDU0OTQsIDEuMjY0NTkiLCBcCi0gICAgICAgICAgIjAuMDUzMzA1LCAwLjI1ODM3MiwgMC40MjUxNzgsIDAuNjM1MDcsIDAuODQ0OTY3LCAxLjA1NDk5LCAxLjI2NDUxIiwgXAotICAgICAgICAgICIwLjA1NDExNywgMC4yNTg0ODMsIDAuNDI1MTM0LCAwLjYzNTA3LCAwLjg0NDkwMiwgMS4wNTUwNiwgMS4yNjQ1MiIsIFwKLSAgICAgICAgICAiMC4wNTU3OTQsIDAuMjU4NzE2LCAwLjQyNTI1NSwgMC42MzUwNDIsIDAuODQ0ODk5LCAxLjA1NDc4LCAxLjI2NDQ1IiwgXAotICAgICAgICAgICIwLjA1NzIyMSwgMC4yNTg3NjEsIDAuNDI1MjA4LCAwLjYzNDE3LCAwLjg0NDYzNywgMS4wNTQ2OCwgMS4yNjQyOSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQ5NjYsIDAuMDA1MDAzLCAwLjAwNDk5OSwgMC4wMDQ5OTUsIDAuMDA0OTkyLCAwLjAwNDk5MSwgMC4wMDQ5ODgiLCBcCi0gICAgICAgICAgIjAuMDA0OTUsIDAuMDA0OTg4LCAwLjAwNDk4NCwgMC4wMDQ5OCwgMC4wMDQ5NzcsIDAuMDA0OTc1LCAwLjAwNDk3NCIsIFwKLSAgICAgICAgICAiMC4wMDQ5NDMsIDAuMDA0OTgyLCAwLjAwNDk3OCwgMC4wMDQ5NzQsIDAuMDA0OTcxLCAwLjAwNDk2OSwgMC4wMDQ5NjciLCBcCi0gICAgICAgICAgIjAuMDA0OTQyLCAwLjAwNDk4MSwgMC4wMDQ5NzcsIDAuMDA0OTczLCAwLjAwNDk3LCAwLjAwNDk2NywgMC4wMDQ5NjYiLCBcCi0gICAgICAgICAgIjAuMDA0OTUzLCAwLjAwNDk5MywgMC4wMDQ5ODksIDAuMDA0OTg0LCAwLjAwNDk4MSwgMC4wMDQ5NzksIDAuMDA0OTc4IiwgXAotICAgICAgICAgICIwLjAwNDk1OSwgMC4wMDUwMDEsIDAuMDA0OTk3LCAwLjAwNDk5MywgMC4wMDQ5OSwgMC4wMDQ5ODcsIDAuMDA0OTg2IiwgXAotICAgICAgICAgICIwLjAwNDk3MiwgMC4wMDUwMTMsIDAuMDA1MDEsIDAuMDA1MDA1LCAwLjAwNTAwMiwgMC4wMDQ5OTksIDAuMDA0OTk4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1MjM2LCAwLjAwNTI4OSwgMC4wMDUyOTYsIDAuMDA1Mjk5LCAwLjAwNTMsIDAuMDA1MzAxLCAwLjAwNTMwMiIsIFwKLSAgICAgICAgICAiMC4wMDUyMjMsIDAuMDA1Mjc1LCAwLjAwNTI4MiwgMC4wMDUyODUsIDAuMDA1Mjg2LCAwLjAwNTI4NywgMC4wMDUyODgiLCBcCi0gICAgICAgICAgIjAuMDA1MjE5LCAwLjAwNTI3NCwgMC4wMDUyNzksIDAuMDA1MjgyLCAwLjAwNTI4NSwgMC4wMDUyODYsIDAuMDA1Mjg2IiwgXAotICAgICAgICAgICIwLjAwNTIyNiwgMC4wMDUyNzksIDAuMDA1Mjg1LCAwLjAwNTI4OSwgMC4wMDUyOSwgMC4wMDUyOTIsIDAuMDA1MjkyIiwgXAotICAgICAgICAgICIwLjAwNTI0MSwgMC4wMDUyOTUsIDAuMDA1MywgMC4wMDUzMDQsIDAuMDA1MzA1LCAwLjAwNTMwNiwgMC4wMDUzMDciLCBcCi0gICAgICAgICAgIjAuMDA1MjU1LCAwLjAwNTMwOCwgMC4wMDUzMTUsIDAuMDA1MzE3LCAwLjAwNTMxOSwgMC4wMDUzMiwgMC4wMDUzMiIsIFwKLSAgICAgICAgICAiMC4wMDUyNzksIDAuMDA1MzMyLCAwLjAwNTMzNywgMC4wMDUzNCwgMC4wMDUzNDIsIDAuMDA1MzQzLCAwLjAwNTM0NCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDU3MjIsIDAuMDA1NzcsIDAuMDA1Nzc1LCAwLjAwNTc3NywgMC4wMDU3ODEsIDAuMDA1Nzc5LCAwLjAwNTc4IiwgXAotICAgICAgICAgICIwLjAwNTcsIDAuMDA1NzUxLCAwLjAwNTc1NiwgMC4wMDU3NiwgMC4wMDU3NjMsIDAuMDA1NzYyLCAwLjAwNTc2NSIsIFwKLSAgICAgICAgICAiMC4wMDU2NzgsIDAuMDA1NzM1LCAwLjAwNTc0NCwgMC4wMDU3NDcsIDAuMDA1NzUsIDAuMDA1NzUsIDAuMDA1NzUyIiwgXAotICAgICAgICAgICIwLjAwNTY2MiwgMC4wMDU3MjMsIDAuMDA1NzMzLCAwLjAwNTczNywgMC4wMDU3NCwgMC4wMDU3NDEsIDAuMDA1NzQyIiwgXAotICAgICAgICAgICIwLjAwNTY1NCwgMC4wMDU3MTcsIDAuMDA1NzI3LCAwLjAwNTczMywgMC4wMDU3MzYsIDAuMDA1NzM3LCAwLjAwNTczOCIsIFwKLSAgICAgICAgICAiMC4wMDU2NDgsIDAuMDA1NzEzLCAwLjAwNTcyNSwgMC4wMDU3MzIsIDAuMDA1NzM1LCAwLjAwNTczNywgMC4wMDU3MzkiLCBcCi0gICAgICAgICAgIjAuMDA1NjU1LCAwLjAwNTcxNywgMC4wMDU3MywgMC4wMDU3MzYsIDAuMDA1NzQxLCAwLjAwNTc0MiwgMC4wMDU3NDQiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfcG93ZXIoc2NhbGFyKSB7Ci0gICAgICAgIHZhbHVlcygiMCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUU4pICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC41MjMwNTY7Ci0gICAgZnVuY3Rpb24gOiAiUUJJTlQiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5vbl91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcmlzaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE1OTc1OCwgMC4yNjIzNTUsIDAuMzQ0NTAyLCAwLjQ0NzE0NCwgMC41NDk4MSwgMC42NTI0NzUsIDAuNzU1MjI4IiwgXAotICAgICAgICAgICIwLjE2OTk5MywgMC4yNzI1NTIsIDAuMzU0NzI5LCAwLjQ1NzI3MiwgMC41NjAwMSwgMC42NjI1OTEsIDAuNzY1MzU1IiwgXAotICAgICAgICAgICIwLjE4Mjg0OCwgMC4yODUzMzcsIDAuMzY3NTQ2LCAwLjQ3MDE2LCAwLjU3Mjg0NCwgMC42NzU1MDksIDAuNzc4MjI4IiwgXAotICAgICAgICAgICIwLjE5NDk2NywgMC4yOTc1NTksIDAuMzc5NzM2LCAwLjQ4MjM0OCwgMC41ODUwMTgsIDAuNjg3NzA0LCAwLjc5MDM2MSIsIFwKLSAgICAgICAgICAiMC4yMDU4OTQsIDAuMzA4NDYsIDAuMzkwNjM3LCAwLjQ5MzI1MSwgMC41OTU5MjIsIDAuNjk4NjQ4LCAwLjgwMTI3OCIsIFwKLSAgICAgICAgICAiMC4yMjEwMjUsIDAuMzIzNTgzLCAwLjQwNTc4NiwgMC41MDgzNzksIDAuNjExMDQzLCAwLjcxMzczNywgMC44MTYzODMiLCBcCi0gICAgICAgICAgIjAuMjMyNjk2LCAwLjMzNTI3MywgMC40MTc0MzUsIDAuNTIwMDYyLCAwLjYyMjczMiwgMC43MjU0MTcsIDAuODI4MDc0Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1MTIwNywgMC4yNjIyMzIsIDAuNDMyOTMxLCAwLjY0NjY4NywgMC44NjA3NjksIDEuMDc1MDQsIDEuMjg4ODYiLCBcCi0gICAgICAgICAgIjAuMDUxMjMsIDAuMjYyMTc2LCAwLjQzMjkyNywgMC42NDY0NiwgMC44NjA3NzYsIDEuMDc0MDksIDEuMjg4ODIiLCBcCi0gICAgICAgICAgIjAuMDUxMjE5LCAwLjI2MjcwMiwgMC40MzI5MzIsIDAuNjQ3MTUsIDAuODYwMjYxLCAxLjA3MzU3LCAxLjI4NzMiLCBcCi0gICAgICAgICAgIjAuMDUxMjIzLCAwLjI2MjE3NCwgMC40MzI5MjQsIDAuNjQ3NTI0LCAwLjg2MDc4MywgMS4wNzM4LCAxLjI4ODg1IiwgXAotICAgICAgICAgICIwLjA1MTIyMywgMC4yNjI3MDIsIDAuNDMyOTM0LCAwLjY0NzE0NywgMC44NjA3NDYsIDEuMDczNTYsIDEuMjg4ODEiLCBcCi0gICAgICAgICAgIjAuMDUxMjMxLCAwLjI2MjcwNiwgMC40MzI5MjcsIDAuNjQ3Mjg5LCAwLjg2MDc1LCAxLjA3MzczLCAxLjI4ODgyIiwgXAotICAgICAgICAgICIwLjA1MTIwNywgMC4yNjIxNzcsIDAuNDMyNzEyLCAwLjY0NzEzMiwgMC44NjA3NzcsIDEuMDczOCwgMS4yODg4MyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNzQ4ODYsIDAuMjc3OTc0LCAwLjM2MDY3NiwgMC40NjQwNjEsIDAuNTY3NTIsIDAuNjcwODc5LCAwLjc3NDEwOCIsIFwKLSAgICAgICAgICAiMC4xODUwOTksIDAuMjg4MjM1LCAwLjM3MDkyMywgMC40NzQzMjYsIDAuNTc3Nzg4LCAwLjY4MTEzNSwgMC43ODQ1NjIiLCBcCi0gICAgICAgICAgIjAuMTk3ODY5LCAwLjMwMDk1NywgMC4zODM2NTYsIDAuNDg3MDQ1LCAwLjU5MDUwMSwgMC42OTM4NiwgMC43OTcyNTYiLCBcCi0gICAgICAgICAgIjAuMjA5ODQ0LCAwLjMxMjk3OSwgMC4zOTU2ODQsIDAuNDk5MDY0LCAwLjYwMjUzOSwgMC43MDU4ODEsIDAuODA5MjU4IiwgXAotICAgICAgICAgICIwLjIyMDQ4MSwgMC4zMjM1ODEsIDAuNDA2MjU1LCAwLjUwOTY3MSwgMC42MTMxMzYsIDAuNzE2NDgxLCAwLjgxOTkyNiIsIFwKLSAgICAgICAgICAiMC4yMzU1MzksIDAuMzM4NjI0LCAwLjQyMTMyNiwgMC41MjQ3MTEsIDAuNjI4MTY4LCAwLjczMTUyNiwgMC44MzQ5NzIiLCBcCi0gICAgICAgICAgIjAuMjQ2ODY2LCAwLjM1MDAwMywgMC40MzI3MDUsIDAuNTM2MDg0LCAwLjYzOTU2NiwgMC43NDI5MDUsIDAuODQ2Mjc3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1MTAwOSwgMC4yNTc1MTcsIDAuNDI1Mzc3LCAwLjYzNDQxOSwgMC44NDMzMDMsIDEuMDU0NTgsIDEuMjYyNDciLCBcCi0gICAgICAgICAgIjAuMDUwOTg5LCAwLjI1NzYwMiwgMC40MjUyOTgsIDAuNjM0Mzc1LCAwLjg0MzIzOSwgMS4wNTQ1MywgMS4yNjQyOCIsIFwKLSAgICAgICAgICAiMC4wNTEwMjMsIDAuMjU3NTE0LCAwLjQyNTM2LCAwLjYzNDQwMywgMC44NDMzMSwgMS4wNTQ1NiwgMS4yNjQxOCIsIFwKLSAgICAgICAgICAiMC4wNTA5OTUsIDAuMjU3NjA4LCAwLjQyNTM3MywgMC42MzQ0MDIsIDAuODQzMTc4LCAxLjA1NDU1LCAxLjI2MjY0IiwgXAotICAgICAgICAgICIwLjA1MTAwNCwgMC4yNTc1MDksIDAuNDI1MjA3LCAwLjYzNDM2MywgMC44NDMyMSwgMS4wNTQ1MywgMS4yNjQzIiwgXAotICAgICAgICAgICIwLjA1MSwgMC4yNTc1MDksIDAuNDI1MzY1LCAwLjYzNDQyLCAwLjg0MzMwNywgMS4wNTQ1MywgMS4yNjQxNiIsIFwKLSAgICAgICAgICAiMC4wNTEwMDYsIDAuMjU3NjIsIDAuNDI1MzcsIDAuNjM0Mzg2LCAwLjg0MzE0NywgMS4wNTQ1MiwgMS4yNjI3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiBwcmVzZXQ7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4NDY3MSwgMC4xODcyLCAwLjI2OTMyMywgMC4zNzE5OTYsIDAuNDc0NjksIDAuNTc3NDAzLCAwLjY4MDA0NSIsIFwKLSAgICAgICAgICAiMC4wOTQ1MzIsIDAuMTk3MDU4LCAwLjI3OTE3MiwgMC4zODE4NTUsIDAuNDg0NjAxLCAwLjU4NzI2MywgMC42ODk5MDIiLCBcCi0gICAgICAgICAgIjAuMTA3MDY5LCAwLjIwOTU4MiwgMC4yOTE3MDIsIDAuMzk0Mzc2LCAwLjQ5NzA0LCAwLjU5OTc4NywgMC43MDI0MjIiLCBcCi0gICAgICAgICAgIjAuMTE4ODcxLCAwLjIyMTM3NCwgMC4zMDM1MDMsIDAuNDA2MiwgMC41MDg4NTMsIDAuNjExNTcsIDAuNzE0MjA3IiwgXAotICAgICAgICAgICIwLjEyOTUzMywgMC4yMzE5MzYsIDAuMzE0MDYsIDAuNDE2NzI1LCAwLjUxOTM4OSwgMC42MjIxNTUsIDAuNzI0NzY1IiwgXAotICAgICAgICAgICIwLjE0NDA5LCAwLjI0NjQzMSwgMC4zMjg1NTcsIDAuNDMxMjEsIDAuNTMzODcxLCAwLjYzNjYzMSwgMC43MzkyNDMiLCBcCi0gICAgICAgICAgIjAuMTU1MDkxLCAwLjI1NzM5MSwgMC4zMzk0ODUsIDAuNDQyMTU4LCAwLjU0NDgxMywgMC42NDc1OCwgMC43NTAxODQiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDUxMjY0LCAwLjI2MjUyMiwgMC40MzM0ODgsIDAuNjQ2NjExLCAwLjg2MDk3OCwgMS4wNzQ4MiwgMS4yODg0OCIsIFwKLSAgICAgICAgICAiMC4wNTEyNSwgMC4yNjI1MjksIDAuNDMzNDQsIDAuNjQ2NTYyLCAwLjg2MTA2NywgMS4wNzQ4LCAxLjI4ODQ4IiwgXAotICAgICAgICAgICIwLjA1MTI2NSwgMC4yNjI1NCwgMC40MzMzMjgsIDAuNjQ2NTIxLCAwLjg2MDg5MywgMS4wNzQ4LCAxLjI4ODQ2IiwgXAotICAgICAgICAgICIwLjA1MTI2NCwgMC4yNjI0OTUsIDAuNDMzNDIxLCAwLjY0NzI3NiwgMC44NjA5MjUsIDEuMDc0OCwgMS4yODg0MSIsIFwKLSAgICAgICAgICAiMC4wNTEzNiwgMC4yNjI1MDcsIDAuNDMzMDA5LCAwLjY0NzE3NCwgMC44NjA4OTMsIDEuMDc0ODUsIDEuMjg4NDMiLCBcCi0gICAgICAgICAgIjAuMDUxNDUyLCAwLjI2MjUwNywgMC40MzM0NTQsIDAuNjQ3MTc2LCAwLjg2MDkwNywgMS4wNzQ2NiwgMS4yODg0IiwgXAotICAgICAgICAgICIwLjA1MTc3NiwgMC4yNjI1MjEsIDAuNDMzNDI3LCAwLjY0NjU3NiwgMC44NjA3ODcsIDEuMDc0NjIsIDEuMjg4MjYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1MjM2LCAwLjAwNTI4OSwgMC4wMDUyOTYsIDAuMDA1Mjk5LCAwLjAwNTMsIDAuMDA1MzAxLCAwLjAwNTMwMiIsIFwKLSAgICAgICAgICAiMC4wMDUyMjMsIDAuMDA1Mjc1LCAwLjAwNTI4MiwgMC4wMDUyODUsIDAuMDA1Mjg2LCAwLjAwNTI4NywgMC4wMDUyODgiLCBcCi0gICAgICAgICAgIjAuMDA1MjE5LCAwLjAwNTI3NCwgMC4wMDUyNzksIDAuMDA1MjgyLCAwLjAwNTI4NSwgMC4wMDUyODYsIDAuMDA1Mjg2IiwgXAotICAgICAgICAgICIwLjAwNTIyNiwgMC4wMDUyNzksIDAuMDA1Mjg1LCAwLjAwNTI4OSwgMC4wMDUyOSwgMC4wMDUyOTIsIDAuMDA1MjkyIiwgXAotICAgICAgICAgICIwLjAwNTI0MSwgMC4wMDUyOTUsIDAuMDA1MywgMC4wMDUzMDQsIDAuMDA1MzA1LCAwLjAwNTMwNiwgMC4wMDUzMDciLCBcCi0gICAgICAgICAgIjAuMDA1MjU1LCAwLjAwNTMwOCwgMC4wMDUzMTUsIDAuMDA1MzE3LCAwLjAwNTMxOSwgMC4wMDUzMiwgMC4wMDUzMiIsIFwKLSAgICAgICAgICAiMC4wMDUyNzksIDAuMDA1MzMyLCAwLjAwNTMzNywgMC4wMDUzNCwgMC4wMDUzNDIsIDAuMDA1MzQzLCAwLjAwNTM0NCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDk2NiwgMC4wMDUwMDMsIDAuMDA0OTk5LCAwLjAwNDk5NSwgMC4wMDQ5OTIsIDAuMDA0OTkxLCAwLjAwNDk4OCIsIFwKLSAgICAgICAgICAiMC4wMDQ5NSwgMC4wMDQ5ODgsIDAuMDA0OTg0LCAwLjAwNDk4LCAwLjAwNDk3NywgMC4wMDQ5NzUsIDAuMDA0OTc0IiwgXAotICAgICAgICAgICIwLjAwNDk0MywgMC4wMDQ5ODIsIDAuMDA0OTc4LCAwLjAwNDk3NCwgMC4wMDQ5NzEsIDAuMDA0OTY5LCAwLjAwNDk2NyIsIFwKLSAgICAgICAgICAiMC4wMDQ5NDIsIDAuMDA0OTgxLCAwLjAwNDk3NywgMC4wMDQ5NzMsIDAuMDA0OTcsIDAuMDA0OTY3LCAwLjAwNDk2NiIsIFwKLSAgICAgICAgICAiMC4wMDQ5NTMsIDAuMDA0OTkzLCAwLjAwNDk4OSwgMC4wMDQ5ODQsIDAuMDA0OTgxLCAwLjAwNDk3OSwgMC4wMDQ5NzgiLCBcCi0gICAgICAgICAgIjAuMDA0OTU5LCAwLjAwNTAwMSwgMC4wMDQ5OTcsIDAuMDA0OTkzLCAwLjAwNDk5LCAwLjAwNDk4NywgMC4wMDQ5ODYiLCBcCi0gICAgICAgICAgIjAuMDA0OTcyLCAwLjAwNTAxMywgMC4wMDUwMSwgMC4wMDUwMDUsIDAuMDA1MDAyLCAwLjAwNDk5OSwgMC4wMDQ5OTgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1NzIyLCAwLjAwNTc3LCAwLjAwNTc3NSwgMC4wMDU3NzcsIDAuMDA1NzgxLCAwLjAwNTc3OSwgMC4wMDU3OCIsIFwKLSAgICAgICAgICAiMC4wMDU3LCAwLjAwNTc1MSwgMC4wMDU3NTYsIDAuMDA1NzYsIDAuMDA1NzYzLCAwLjAwNTc2MiwgMC4wMDU3NjUiLCBcCi0gICAgICAgICAgIjAuMDA1Njc4LCAwLjAwNTczNSwgMC4wMDU3NDQsIDAuMDA1NzQ3LCAwLjAwNTc1LCAwLjAwNTc1LCAwLjAwNTc1MiIsIFwKLSAgICAgICAgICAiMC4wMDU2NjIsIDAuMDA1NzIzLCAwLjAwNTczMywgMC4wMDU3MzcsIDAuMDA1NzQsIDAuMDA1NzQxLCAwLjAwNTc0MiIsIFwKLSAgICAgICAgICAiMC4wMDU2NTQsIDAuMDA1NzE3LCAwLjAwNTcyNywgMC4wMDU3MzMsIDAuMDA1NzM2LCAwLjAwNTczNywgMC4wMDU3MzgiLCBcCi0gICAgICAgICAgIjAuMDA1NjQ4LCAwLjAwNTcxMywgMC4wMDU3MjUsIDAuMDA1NzMyLCAwLjAwNTczNSwgMC4wMDU3MzcsIDAuMDA1NzM5IiwgXAotICAgICAgICAgICIwLjAwNTY1NSwgMC4wMDU3MTcsIDAuMDA1NzMsIDAuMDA1NzM2LCAwLjAwNTc0MSwgMC4wMDU3NDIsIDAuMDA1NzQ0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHNjYWxhcikgewotICAgICAgICB2YWx1ZXMoIjAiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFJOKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE1MDM4MjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE0MDA4NTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE1MDM4MjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA1NTMsIDAuMDAwNTUyLCAwLjAwMDU1MiwgMC4wMDA1NTIsIDAuMDAwNTUyLCAwLjAwMDU1MiwgMC4wMDA1NTIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA1NjEsIDAuMDAwNTU1LCAwLjAwMDU1NCwgMC4wMDA1NTQsIDAuMDAwNTU0LCAwLjAwMDU1NCwgMC4wMDA1NTQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUk4iOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFEJiFTRSYhU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1NFX0VRXzBfQU5fU0lfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjA4NDY3MSwgMC4wOTQ1MzIsIDAuMTA3MDY5LCAwLjExODg3MSwgMC4xMjk1MjYsIDAuMTQ0MDksIDAuMTU1MDkxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogcmVjb3ZlcnlfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRCZTRSZTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fU0VfRVFfMV9BTl9TSV9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHJlY292ZXJ5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMzc1LCAtMC4wNDg3NSwgLTAuMDYxMjUsIC0wLjA3Mzc1LCAtMC4wOCwgLTAuMDk2MjUsIC0wLjExMTI1IiwgXAotICAgICAgICAgICItMC4wMzg3NSwgLTAuMDUsIC0wLjA2MjUsIC0wLjA3NSwgLTAuMDg3NSwgLTAuMTAzNzUsIC0wLjExMjUiLCBcCi0gICAgICAgICAgIi0wLjAzODc1LCAtMC4wNSwgLTAuMDYyNSwgLTAuMDc1LCAtMC4wODc1LCAtMC4xMDM3NSwgLTAuMTEyNSIsIFwKLSAgICAgICAgICAiLTAuMDI2MjUsIC0wLjAzNzUsIC0wLjA1NjI1LCAtMC4wNjg3NSwgLTAuMDc1LCAtMC4wOTEyNSwgLTAuMTA2MjUiLCBcCi0gICAgICAgICAgIi0wLjAxMzc1LCAtMC4wMjUsIC0wLjAzNzUsIC0wLjA1LCAtMC4wNjI1LCAtMC4wNzg3NSwgLTAuMDkzNzUiLCBcCi0gICAgICAgICAgIjAuMDE1LCAtMC4wMDI1LCAtMC4wMTUsIC0wLjAyNzUsIC0wLjA0LCAtMC4wNTYyNSwgLTAuMDcxMjUiLCBcCi0gICAgICAgICAgIjAuMDM2MjUsIDAuMDI1LCAwLjAwNjI1LCAtMC4wMDYyNSwgLTAuMDE4NzUsIC0wLjAzNSwgLTAuMDUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiByZW1vdmFsX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUQmU0UmU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1NFX0VRXzFfQU5fU0lfRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChyZW1vdmFsX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1NjI1LCAwLjA2NzUsIDAuMDgsIDAuMDkyNSwgMC4wOTg3NSwgMC4xMTUsIDAuMTMiLCBcCi0gICAgICAgICAgIjAuMDU3NSwgMC4wNjg3NSwgMC4wODEyNSwgMC4wOTM3NSwgMC4xMDYyNSwgMC4xMjI1LCAwLjEzMTI1IiwgXAotICAgICAgICAgICIwLjA3LCAwLjA3NSwgMC4wOTM3NSwgMC4xLCAwLjExMjUsIDAuMTI4NzUsIDAuMTM3NSIsIFwKLSAgICAgICAgICAiMC4wNzYyNSwgMC4wODEyNSwgMC4wOTM3NSwgMC4xMDYyNSwgMC4xMTg3NSwgMC4xMzUsIDAuMTQzNzUiLCBcCi0gICAgICAgICAgIjAuMDgyNSwgMC4wODc1LCAwLjEsIDAuMTEyNSwgMC4xMjUsIDAuMTQxMjUsIDAuMTUiLCBcCi0gICAgICAgICAgIjAuMDg1LCAwLjA5NjI1LCAwLjEwODc1LCAwLjEyMTI1LCAwLjEzMzc1LCAwLjE0Mzc1LCAwLjE1ODc1IiwgXAotICAgICAgICAgICIwLjA5NSwgMC4xMDYyNSwgMC4xMTI1LCAwLjEyNSwgMC4xMzc1LCAwLjE1Mzc1LCAwLjE2MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFNFKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDExNDU0MzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDExNDUzOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTE0NTQzOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNDE5NCwgMC4wMDQxNzUsIDAuMDA0MTcyLCAwLjAwNDE3OCwgMC4wMDQxODcsIDAuMDA0MjEyLCAwLjAwNDI0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA1NzI3LCAwLjAwNTY5MiwgMC4wMDU2ODEsIDAuMDA1Njg2LCAwLjAwNTcwMSwgMC4wMDU3NDMsIDAuMDA1Nzg0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlJOIjsKLSAgICAgIHNkZl9jb25kIDogIlJOID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAxODc1LCAtMC4wMTM3NSwgLTAuMDAxMjUsIDAuMDExMjUsIDAuMDE3NSwgMC4wMzM3NSwgMC4wNDI1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDE4NzUsIC0wLjAxMjUsIDAsIDAuMDA2MjUsIDAuMDIyNSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAuMDEsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjA1NSwgLTAuMDQzNzUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDAyNSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDYxMjUsIC0wLjA1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIC0wLjAwODc1LCAwIiwgXAotICAgICAgICAgICItMC4wNzEyNSwgLTAuMDYsIC0wLjA1Mzc1LCAtMC4wNDEyNSwgLTAuMDI4NzUsIC0wLjAxODc1LCAtMC4wMSIsIFwKLSAgICAgICAgICAiLTAuMDgsIC0wLjA2ODc1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjAzNzUsIC0wLjAyNzUsIC0wLjAxODc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDA2MjUsIDAuMDA1LCAwLjAxNzUsIDAuMDMsIDAuMDM2MjUsIDAuMDQ2MjUsIDAuMDU1IiwgXAotICAgICAgICAgICItMC4wMTEyNSwgMCwgMC4wMDYyNSwgMC4wMTg3NSwgMC4wMjUsIDAuMDQxMjUsIDAuMDUiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTI1LCAwLCAwLjAwNjI1LCAwLjAxODc1LCAwLjAyODc1LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMjUsIC0wLjAxMjUsIDAsIDAuMDA2MjUsIDAuMDE2MjUsIDAuMDI1IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIDAsIDAuMDEsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjA0NjI1LCAtMC4wNDEyNSwgLTAuMDI4NzUsIC0wLjAyMjUsIC0wLjAxNjI1LCAtMC4wMDYyNSwgMC4wMDI1IiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMTUsIC0wLjAwNjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJSTiI7Ci0gICAgICBzZGZfY29uZCA6ICJSTiA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODEyNSwgMC4wNywgMC4wNTc1LCAwLjA1MTI1LCAwLjA0NSwgMC4wMzUsIDAuMDI2MjUiLCBcCi0gICAgICAgICAgIjAuMDkyNSwgMC4wODEyNSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1LCAwLjA0NjI1LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIjAuMDk4NzUsIDAuMDg3NSwgMC4wODEyNSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1ODc1LCAwLjA1IiwgXAotICAgICAgICAgICIwLjExMTI1LCAwLjEsIDAuMDkzNzUsIDAuMDgxMjUsIDAuMDc1LCAwLjA2NSwgMC4wNjI1IiwgXAotICAgICAgICAgICIwLjEyMzc1LCAwLjExMjUsIDAuMSwgMC4wOTM3NSwgMC4wODc1LCAwLjA3NzUsIDAuMDc1IiwgXAotICAgICAgICAgICIwLjE0LCAwLjEyODc1LCAwLjEyMjUsIDAuMTEsIDAuMTAzNzUsIDAuMDkzNzUsIDAuMDkxMjUiLCBcCi0gICAgICAgICAgIjAuMTU1LCAwLjE0Mzc1LCAwLjEzNzUsIDAuMTI1LCAwLjExODc1LCAwLjEwODc1LCAwLjEwNjI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMSwgMC4wODg3NSwgMC4wNzYyNSwgMC4wNywgMC4wNjM3NSwgMC4wNTM3NSwgMC4wNDUiLCBcCi0gICAgICAgICAgIjAuMTExMjUsIDAuMSwgMC4wODc1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNjUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIjAuMTE3NSwgMC4xMTI1LCAwLjEsIDAuMDkzNzUsIDAuMDgxMjUsIDAuMDc3NSwgMC4wNjg3NSIsIFwKLSAgICAgICAgICAiMC4xMywgMC4xMTg3NSwgMC4xMDYyNSwgMC4xLCAwLjA5Mzc1LCAwLjA4Mzc1LCAwLjA3NSIsIFwKLSAgICAgICAgICAiMC4xMzYyNSwgMC4xMjUsIDAuMTEyNSwgMC4xMDYyNSwgMC4xLCAwLjA5LCAwLjA4NzUiLCBcCi0gICAgICAgICAgIjAuMTQ2MjUsIDAuMTM1LCAwLjEyMjUsIDAuMTE2MjUsIDAuMTEsIDAuMSwgMC4wOTEyNSIsIFwKLSAgICAgICAgICAiMC4xNTUsIDAuMTQzNzUsIDAuMTMxMjUsIDAuMTI1LCAwLjExODc1LCAwLjEwODc1LCAwLjEiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFNJKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2MTQyODk7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjEyNzQzOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDYxNDI4OTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDI1NjgsIDAuMDAyNTUxLCAwLjAwMjU0MiwgMC4wMDI1MzcsIDAuMDAyNTM0LCAwLjAwMjUzOCwgMC4wMDI1NDYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDQ0OSwgMC4wMDQ0ODEsIDAuMDA0NDc1LCAwLjAwNDQ3MywgMC4wMDQ0NzQsIDAuMDA0NDc1LCAwLjAwNDQ4MiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJSTiZTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJSTl9FUV8xX0FOX1NFX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDUsIC0wLjA0NSwgLTAuMDMyNSwgLTAuMDI2MjUsIC0wLjAyLCAtMC4wMTYyNSwgLTAuMDA3NSIsIFwKLSAgICAgICAgICAiLTAuMDYxMjUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAyMTI1LCAtMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDczNzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjAzMzc1LCAtMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDgsIC0wLjA3NSwgLTAuMDY4NzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNDYyNSwgLTAuMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDkyNSwgLTAuMDgxMjUsIC0wLjA3NSwgLTAuMDY4NzUsIC0wLjA2MjUsIC0wLjA1ODc1LCAtMC4wNSIsIFwKLSAgICAgICAgICAiLTAuMTA4NzUsIC0wLjA5NzUsIC0wLjA5MTI1LCAtMC4wODUsIC0wLjA3ODc1LCAtMC4wNjg3NSwgLTAuMDY2MjUiLCBcCi0gICAgICAgICAgIi0wLjExNzUsIC0wLjExMjUsIC0wLjEwNjI1LCAtMC4xLCAtMC4wOTM3NSwgLTAuMDgzNzUsIC0wLjA3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAxMjUsIC0wLjAwMTI1LCAwLjAxMTI1LCAwLjAxNzUsIDAuMDMsIDAuMDQsIDAuMDQ4NzUiLCBcCi0gICAgICAgICAgIi0wLjAxNzUsIC0wLjAxMjUsIDAsIDAuMDEyNSwgMC4wMTg3NSwgMC4wMzUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAsIDAuMDEyNSwgMC4wMjI1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAsIDAuMDE2MjUsIDAuMDI1IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLjAwMzc1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjA1MjUsIC0wLjA0NzUsIC0wLjAzNSwgLTAuMDI4NzUsIC0wLjAxNjI1LCAtMC4wMDYyNSwgMC4wMDI1IiwgXAotICAgICAgICAgICItMC4wNjEyNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAxNSwgLTAuMDA2MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlJOJlNFIjsKLSAgICAgIHNkZl9jb25kIDogIlJOX0VRXzFfQU5fU0VfRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODc1LCAwLjA3NjI1LCAwLjA2Mzc1LCAwLjA1NzUsIDAuMDUxMjUsIDAuMDQxMjUsIDAuMDMyNSIsIFwKLSAgICAgICAgICAiMC4wOTg3NSwgMC4wODc1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1MjUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMTA1LCAwLjA5Mzc1LCAwLjA4NzUsIDAuMDc1LCAwLjA2ODc1LCAwLjA1ODc1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICIwLjExNzUsIDAuMTA2MjUsIDAuMDkzNzUsIDAuMDg3NSwgMC4wODEyNSwgMC4wNzEyNSwgMC4wNjI1IiwgXAotICAgICAgICAgICIwLjEzLCAwLjExODc1LCAwLjEwNjI1LCAwLjEsIDAuMDkzNzUsIDAuMDgzNzUsIDAuMDc1IiwgXAotICAgICAgICAgICIwLjE0NjI1LCAwLjEzNSwgMC4xMjI1LCAwLjExNjI1LCAwLjExLCAwLjEsIDAuMDkxMjUiLCBcCi0gICAgICAgICAgIjAuMTU1LCAwLjE1LCAwLjEzNzUsIDAuMTI1LCAwLjExODc1LCAwLjEwODc1LCAwLjEwNjI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDYyNSwgMC4wNTEyNSwgMC4wMzg3NSwgMC4wMjYyNSwgMC4wMTM3NSwgMC4wMDM3NSwgLTAuMDExMjUiLCBcCi0gICAgICAgICAgIjAuMDY3NSwgMC4wNjI1LCAwLjA1LCAwLjAzNzUsIDAuMDI1LCAwLjAwODc1LCAwIiwgXAotICAgICAgICAgICIwLjA4LCAwLjA2ODc1LCAwLjA1NjI1LCAwLjA0Mzc1LCAwLjAzMTI1LCAwLjAyMTI1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICIwLjA5MjUsIDAuMDgxMjUsIDAuMDY4NzUsIDAuMDU2MjUsIDAuMDQzNzUsIDAuMDI3NSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4wOTg3NSwgMC4wODc1LCAwLjA3NSwgMC4wNjI1LCAwLjA1LCAwLjA0LCAwLjAyNSIsIFwKLSAgICAgICAgICAiMC4xMTUsIDAuMTAzNzUsIDAuMDkxMjUsIDAuMDc4NzUsIDAuMDY2MjUsIDAuMDUsIDAuMDQxMjUiLCBcCi0gICAgICAgICAgIjAuMTIzNzUsIDAuMTEyNSwgMC4xLCAwLjA4NzUsIDAuMDc1LCAwLjA2NSwgMC4wNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IFNERkZSWEwgKgotICogLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoU0RGRlJYTCkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjM5MjE5OTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBmZiAoTjMwLFFCSU5UKSB7Ci0gICAgbmV4dF9zdGF0ZSA6ICIoKFNFIFNJKSArICghU0UgRCkpIjsKLSAgICBjbG9ja2VkX29uIDogIkNLIjsKLSAgICBjbGVhciA6ICIoIVJOKSI7Ci0gIH0KLSAgcGluKENLKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2NTM0NzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2NTI5OTQ7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjUzNDc7Ci0gICAgY2xvY2sgOiB0cnVlOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjcxNywgMC4wMDI2OTIsIDAuMDAyNjc4LCAwLjAwMjY3OSwgMC4wMDI2OTIsIDAuMDAyNzA4LCAwLjAwMjczNCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNzAzMywgMC4wMDcwMSwgMC4wMDcwMDQsIDAuMDA3MDE2LCAwLjAwNzAzMywgMC4wMDcwNjksIDAuMDA3MDk4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRCZSTiYhU0UmIVNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9STl9FUV8xX0FOX1NFX0VRXzBfQU5fU0lfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjE5ODYxOCwgMC4yMDg4NDcsIDAuMjIxNTk0LCAwLjIzMzkxMSwgMC4yNDUxMjQsIDAuMjYwNTI1LCAwLjI3MjQ2MyIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDk4MzcyLCAwLjEwODAzMSwgMC4xMjA3MDUsIDAuMTMyNDMyLCAwLjE0Mjk1LCAwLjE1NzE0NCwgMC4xNjgwOSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjM1NTE1OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYzNDA3MTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2MzU1MTU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyOTE3LCAwLjAwMjkwMSwgMC4wMDI4OTEsIDAuMDAyODg2LCAwLjAwMjg4NCwgMC4wMDI4ODQsIDAuMDAyODk2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA0NTIyLCAwLjAwNDUxMiwgMC4wMDQ1MDYsIDAuMDA0NTA0LCAwLjAwNDUwNCwgMC4wMDQ1MDYsIDAuMDA0NTEyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlJOJiFTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJSTl9FUV8xX0FOX1NFX0VRXzAgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDU2MjUsIC0wLjA0NSwgLTAuMDM4NzUsIC0wLjAzMjUsIC0wLjAyNjI1LCAtMC4wMTYyNSwgLTAuMDEzNzUiLCBcCi0gICAgICAgICAgIi0wLjA2MTI1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMjc1LCAtMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDczNzUsIC0wLjA2ODc1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wNCwgLTAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjA4NjI1LCAtMC4wNzUsIC0wLjA2ODc1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDQ2MjUsIC0wLjA0Mzc1IiwgXAotICAgICAgICAgICItMC4wOTg3NSwgLTAuMDg3NSwgLTAuMDgxMjUsIC0wLjA3NSwgLTAuMDY4NzUsIC0wLjA1ODc1LCAtMC4wNSIsIFwKLSAgICAgICAgICAiLTAuMTE1LCAtMC4xMDM3NSwgLTAuMDk3NSwgLTAuMDkxMjUsIC0wLjA4NSwgLTAuMDc1LCAtMC4wNjYyNSIsIFwKLSAgICAgICAgICAiLTAuMTIzNzUsIC0wLjExODc1LCAtMC4xMDYyNSwgLTAuMSwgLTAuMDkzNzUsIC0wLjA5LCAtMC4wODEyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAxMjUsIC0wLjAwMTI1LCAwLjAwNSwgMC4wMTc1LCAwLjAzLCAwLjA0LCAwLjA0ODc1IiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDEyNSwgMCwgMC4wMTI1LCAwLjAxODc1LCAwLjAyODc1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDI1LCAtMC4wMTI1LCAwLCAwLjAwNjI1LCAwLjAyMjUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAsIDAuMDEsIDAuMDI1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDM3NSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAuMDAzNzUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDU4NzUsIC0wLjA1Mzc1LCAtMC4wNDEyNSwgLTAuMDI4NzUsIC0wLjAyMjUsIC0wLjAwNjI1LCAwLjAwMjUiLCBcCi0gICAgICAgICAgIi0wLjA2NzUsIC0wLjA2MjUsIC0wLjA1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDIxMjUsIC0wLjAwNjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJSTiYhU0UiOwotICAgICAgc2RmX2NvbmQgOiAiUk5fRVFfMV9BTl9TRV9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4NzUsIDAuMDc2MjUsIDAuMDYzNzUsIDAuMDU3NSwgMC4wNTEyNSwgMC4wNDEyNSwgMC4wMzg3NSIsIFwKLSAgICAgICAgICAiMC4wOTg3NSwgMC4wODc1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1MjUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMTA1LCAwLjA5Mzc1LCAwLjA4NzUsIDAuMDgxMjUsIDAuMDY4NzUsIDAuMDY1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICIwLjExNzUsIDAuMTA2MjUsIDAuMSwgMC4wODc1LCAwLjA4MTI1LCAwLjA3MTI1LCAwLjA2ODc1IiwgXAotICAgICAgICAgICIwLjEzLCAwLjExODc1LCAwLjEwNjI1LCAwLjEsIDAuMDkzNzUsIDAuMDgzNzUsIDAuMDc1IiwgXAotICAgICAgICAgICIwLjE0NjI1LCAwLjEzNSwgMC4xMjI1LCAwLjExNjI1LCAwLjExLCAwLjEsIDAuMDkxMjUiLCBcCi0gICAgICAgICAgIjAuMTYxMjUsIDAuMTUsIDAuMTM3NSwgMC4xMzEyNSwgMC4xMjUsIDAuMTE1LCAwLjEwNjI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDYyNSwgMC4wNTEyNSwgMC4wMzg3NSwgMC4wMjYyNSwgMC4wMTM3NSwgLTAuMDAyNSwgLTAuMDExMjUiLCBcCi0gICAgICAgICAgIjAuMDY3NSwgMC4wNjI1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDI1LCAwLjAwODc1LCAwIiwgXAotICAgICAgICAgICIwLjA4LCAwLjA2ODc1LCAwLjA1NjI1LCAwLjA0Mzc1LCAwLjAzMTI1LCAwLjAyMTI1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICIwLjA5MjUsIDAuMDgxMjUsIDAuMDY4NzUsIDAuMDU2MjUsIDAuMDQzNzUsIDAuMDI3NSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4wOTg3NSwgMC4wODc1LCAwLjA3NSwgMC4wNjI1LCAwLjA1LCAwLjA0LCAwLjAyNSIsIFwKLSAgICAgICAgICAiMC4xMTUsIDAuMTAzNzUsIDAuMDkxMjUsIDAuMDc4NzUsIDAuMDY2MjUsIDAuMDUsIDAuMDQxMjUiLCBcCi0gICAgICAgICAgIjAuMTIzNzUsIDAuMTEyNSwgMC4xLCAwLjA4NzUsIDAuMDc1LCAwLjA2NSwgMC4wNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjE1NTMzMTsKLSAgICBmdW5jdGlvbiA6ICJOMzAiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5vbl91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcmlzaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIwMTM2OCwgMC4yMTU1NzcsIDAuMzQyNDA3LCAwLjU1NDE3MiwgMC43NjYzMzgsIDEuMjYxMjIsIDEuNTQzOTQiLCBcCi0gICAgICAgICAgIjAuMjExNTc2LCAwLjIyNTcwNSwgMC4zNTI1NzIsIDAuNTY0MzgyLCAwLjc3NjUyMywgMS4yNzEzMiwgMS41NTQxMiIsIFwKLSAgICAgICAgICAiMC4yMjQxNTIsIDAuMjM4MzUsIDAuMzY1MTk2LCAwLjU3Njk2MywgMC43ODg4MSwgMS4yODM4OSwgMS41NjY3MiIsIFwKLSAgICAgICAgICAiMC4yMzY0MDEsIDAuMjUwNTM4LCAwLjM3NzQxMSwgMC41ODkxNTEsIDAuODAxMzU4LCAxLjI5NjE0LCAxLjU3ODk1IiwgXAotICAgICAgICAgICIwLjI0NzQwNywgMC4yNjE1NDQsIDAuMzg4NDIsIDAuNjAwMjAxLCAwLjgxMjM2MSwgMS4zMDcxNSwgMS41ODk5NSIsIFwKLSAgICAgICAgICAiMC4yNjI2NjIsIDAuMjc2ODQzLCAwLjQwMzcyNywgMC42MTU1MTksIDAuODI3NjU3LCAxLjMyMjQ2LCAxLjYwNDQ3IiwgXAotICAgICAgICAgICIwLjI3NDIwNCwgMC4yODgzNDEsIDAuNDE1MjMxLCAwLjYyNjk3LCAwLjgzOTE2NiwgMS4zMzM5NCwgMS42MTY3NSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNTkxMDksIDAuMTg3MzYxLCAwLjQ0NDk1NiwgMC44Nzk1ODksIDEuMzE2NiwgMi4zMzQyMywgMi45MTQ4NiIsIFwKLSAgICAgICAgICAiMC4xNTkxOTEsIDAuMTg3MzE3LCAwLjQ0NDkzNSwgMC44Nzk0MzMsIDEuMzE2NjcsIDIuMzMzNSwgMi45MTUwMSIsIFwKLSAgICAgICAgICAiMC4xNTkwOTYsIDAuMTg3MzQxLCAwLjQ0NTA0MywgMC44Nzk1NjYsIDEuMzE0ODYsIDIuMzMzMzcsIDIuOTE0NzgiLCBcCi0gICAgICAgICAgIjAuMTU5MTg2LCAwLjE4NzMxNSwgMC40NDQ5MjMsIDAuODc5MDE1LCAxLjMxNjY4LCAyLjMzMzQ5LCAyLjkxNTAxIiwgXAotICAgICAgICAgICIwLjE1OTE4NiwgMC4xODczMTQsIDAuNDQ0OTQ1LCAwLjg3ODY4NCwgMS4zMTY2OCwgMi4zMzM1MSwgMi45MTUwNSIsIFwKLSAgICAgICAgICAiMC4xNTkxMTEsIDAuMTg3Mjk5LCAwLjQ0NTExOCwgMC44ODA0NTIsIDEuMzE2NjcsIDIuMzMzNjgsIDIuOTEzOTEiLCBcCi0gICAgICAgICAgIjAuMTU5MTg2LCAwLjE4NzI5MSwgMC40NDUwNDEsIDAuODc5ODczLCAxLjMxNjc0LCAyLjMzMzU4LCAyLjkxNTE5Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE4ODM1NCwgMC4yMDIzMTQsIDAuMzI3MTQyLCAwLjUzNDcwNiwgMC43NDE5ODYsIDEuMjI2NDYsIDEuNTAzMTciLCBcCi0gICAgICAgICAgIjAuMTk4NTgzLCAwLjIxMjU0MSwgMC4zMzczNzEsIDAuNTQ0OTQzLCAwLjc1MjIxNSwgMS4yMzY3LCAxLjUxMzQiLCBcCi0gICAgICAgICAgIjAuMjExMzMsIDAuMjI1Mjg4LCAwLjM1MDExNiwgMC41NTcxNTYsIDAuNzY0OTYyLCAxLjI0OTQ0LCAxLjUyNjE0IiwgXAotICAgICAgICAgICIwLjIyMzY1NCwgMC4yMzc1MDMsIDAuMzYyNDI3LCAwLjU2OTU1MywgMC43NzcyOTcsIDEuMjYxNzEsIDEuNTM4NDMiLCBcCi0gICAgICAgICAgIjAuMjM0ODU1LCAwLjI0ODgxNiwgMC4zNzM2MzgsIDAuNTgwNjQyLCAwLjc4ODQ4OCwgMS4yNzI5NSwgMS41NDk2NiIsIFwKLSAgICAgICAgICAiMC4yNTAyNDYsIDAuMjY0MTc1LCAwLjM4ODY0NywgMC41OTYzMzQsIDAuODAzODM1LCAxLjI4NzYsIDEuNTY1MTkiLCBcCi0gICAgICAgICAgIjAuMjYyMjEzLCAwLjI3NjE0NSwgMC40MDA5ODMsIDAuNjA3OTY3LCAwLjgxNTg0OSwgMS4zMDAyOSwgMS41NzciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTQ5MTQ0LCAwLjE3NTk3NSwgMC40MjQzNzQsIDAuODM5OTgyLCAxLjI1OTAzLCAyLjIzMjc0LCAyLjc4ODk2IiwgXAotICAgICAgICAgICIwLjE0OTE0NCwgMC4xNzYxMTYsIDAuNDI0MzgyLCAwLjg0MTIwNiwgMS4yNTkwMywgMi4yMzI3NSwgMi43ODg5NiIsIFwKLSAgICAgICAgICAiMC4xNDkxNDMsIDAuMTc2MDksIDAuNDI0MzksIDAuODQxMTA0LCAxLjI1OSwgMi4yMzI2NywgMi43ODg4OCIsIFwKLSAgICAgICAgICAiMC4xNDkxMjcsIDAuMTc2NjA2LCAwLjQyNDQ4NiwgMC44NDI0MywgMS4yNTkwNSwgMi4yMzI2NywgMi43ODg4NCIsIFwKLSAgICAgICAgICAiMC4xNDkxNDcsIDAuMTc1ODU3LCAwLjQyNDQxMywgMC44NDA5MDIsIDEuMjU5MDEsIDIuMjMyNjUsIDIuNzg4ODUiLCBcCi0gICAgICAgICAgIjAuMTQ5MDE0LCAwLjE3NjQwNywgMC40MjU0NzMsIDAuODQxODYyLCAxLjI1ODg2LCAyLjIyODksIDIuNzg5MiIsIFwKLSAgICAgICAgICAiMC4xNDkxNDIsIDAuMTc2NjY2LCAwLjQyNDU0MiwgMC44NDEzNDUsIDEuMjU5MDQsIDIuMjMyNzEsIDIuNzg4ODkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUk4iOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGNsZWFyOwotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTIxMDcsIDAuMTI1OTU3LCAwLjI1MDQwNywgMC40NTc5NTcsIDAuNjY1ODE5LCAxLjE0OTk3LCAxLjQyNjQxIiwgXAotICAgICAgICAgICIwLjEyMTk3OCwgMC4xMzU4MjcsIDAuMjYwMzM4LCAwLjQ2ODE1NSwgMC42NzU3NTEsIDEuMTU5NzIsIDEuNDM2MzkiLCBcCi0gICAgICAgICAgIjAuMTM0MzU3LCAwLjE0ODIwNSwgMC4yNzI4NzMsIDAuNDgwNTUzLCAwLjY4ODA2MSwgMS4xNzI1LCAxLjQ0ODciLCBcCi0gICAgICAgICAgIjAuMTQ1ODk2LCAwLjE1OTc2NCwgMC4yODQzOTMsIDAuNDkyMDk3LCAwLjY5OTY5NywgMS4xODM4OCwgMS40NjA0NiIsIFwKLSAgICAgICAgICAiMC4xNTY0OSwgMC4xNzAzMzksIDAuMjk0ODY4LCAwLjUwMjY5NywgMC43MTAyOTgsIDEuMTk0MzQsIDEuNDcxMjIiLCBcCi0gICAgICAgICAgIjAuMTcwNzY4LCAwLjE4NDYxLCAwLjMwOTMyOSwgMC41MTY4NjEsIDAuNzI0NDkzLCAxLjIwODU1LCAxLjQ4NTE0IiwgXAotICAgICAgICAgICIwLjE4MTc5MiwgMC4xOTU2ODEsIDAuMzIwMjY4LCAwLjUyNzk1OSwgMC43MzU1NzksIDEuMjE5NTcsIDEuNDk2NjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTQ5MTkxLCAwLjE3NjYzMywgMC40MjUyOTgsIDAuODQyMTE0LCAxLjI1OTM5LCAyLjIzMzAxLCAyLjc4NzY0IiwgXAotICAgICAgICAgICIwLjE0OTI3NSwgMC4xNzY2NDgsIDAuNDI1MTk4LCAwLjg0MjI0NiwgMS4yNTk0NywgMi4yMzI2LCAyLjc4ODQ3IiwgXAotICAgICAgICAgICIwLjE0OTM1LCAwLjE3NjY1MywgMC40MjQ5OTYsIDAuODQyMjQ3LCAxLjI1OTQ3LCAyLjIzMjk4LCAyLjc4ODIiLCBcCi0gICAgICAgICAgIjAuMTQ5Mjc4LCAwLjE3NjY5OCwgMC40MjUwOTIsIDAuODQyMzA0LCAxLjI1OTQyLCAyLjIzMjYxLCAyLjc4ODI4IiwgXAotICAgICAgICAgICIwLjE0OTYxNiwgMC4xNzY4MjUsIDAuNDI1MTAyLCAwLjg0MjMwNiwgMS4yNTk0NSwgMi4yMzI3NSwgMi43ODg5NCIsIFwKLSAgICAgICAgICAiMC4xNTAxNjYsIDAuMTc2ODg1LCAwLjQyNTEyNiwgMC44NDIxNDEsIDEuMjU5MzMsIDIuMjMxNTMsIDIuNzg3OCIsIFwKLSAgICAgICAgICAiMC4xNTA2OTMsIDAuMTc3MTY5LCAwLjQyNDc0NiwgMC44NDIxMjQsIDEuMjU5NTEsIDIuMjMxNTQsIDIuNzg5MDciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzODI3LCAwLjAwMzgyNiwgMC4wMDM4MTYsIDAuMDAzODA5LCAwLjAwMzgwNiwgMC4wMDM4MDMsIDAuMDAzODAyIiwgXAotICAgICAgICAgICIwLjAwMzgxMiwgMC4wMDM4MTEsIDAuMDAzODAxLCAwLjAwMzc5NCwgMC4wMDM3OTEsIDAuMDAzNzg4LCAwLjAwMzc4NyIsIFwKLSAgICAgICAgICAiMC4wMDM4MDQsIDAuMDAzODAzLCAwLjAwMzc5NCwgMC4wMDM3ODYsIDAuMDAzNzg0LCAwLjAwMzc4LCAwLjAwMzc3OSIsIFwKLSAgICAgICAgICAiMC4wMDM4MDMsIDAuMDAzODAyLCAwLjAwMzc5MywgMC4wMDM3ODUsIDAuMDAzNzgyLCAwLjAwMzc3OSwgMC4wMDM3NzgiLCBcCi0gICAgICAgICAgIjAuMDAzODEzLCAwLjAwMzgxMiwgMC4wMDM4MDMsIDAuMDAzNzk1LCAwLjAwMzc5MiwgMC4wMDM3ODgsIDAuMDAzNzg3IiwgXAotICAgICAgICAgICIwLjAwMzgyMiwgMC4wMDM4MjEsIDAuMDAzODEzLCAwLjAwMzgwNSwgMC4wMDM4MDEsIDAuMDAzNzk4LCAwLjAwMzc5NyIsIFwKLSAgICAgICAgICAiMC4wMDM4MzQsIDAuMDAzODMzLCAwLjAwMzgyNSwgMC4wMDM4MTgsIDAuMDAzODE0LCAwLjAwMzgxLCAwLjAwMzgwOSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzc4MiwgMC4wMDM3ODMsIDAuMDAzNzg3LCAwLjAwMzc4OSwgMC4wMDM3ODksIDAuMDAzNzksIDAuMDAzNzkiLCBcCi0gICAgICAgICAgIjAuMDAzNzY4LCAwLjAwMzc2OSwgMC4wMDM3NzMsIDAuMDAzNzc0LCAwLjAwMzc3NSwgMC4wMDM3NzUsIDAuMDAzNzc2IiwgXAotICAgICAgICAgICIwLjAwMzc2NiwgMC4wMDM3NjcsIDAuMDAzNzcxLCAwLjAwMzc3MywgMC4wMDM3NzMsIDAuMDAzNzc0LCAwLjAwMzc3NCIsIFwKLSAgICAgICAgICAiMC4wMDM3NzIsIDAuMDAzNzczLCAwLjAwMzc3NywgMC4wMDM3NzksIDAuMDAzNzc5LCAwLjAwMzc4LCAwLjAwMzc4IiwgXAotICAgICAgICAgICIwLjAwMzc4NiwgMC4wMDM3ODcsIDAuMDAzNzkxLCAwLjAwMzc5MywgMC4wMDM3OTMsIDAuMDAzNzk0LCAwLjAwMzc5NCIsIFwKLSAgICAgICAgICAiMC4wMDM3OTcsIDAuMDAzNzk4LCAwLjAwMzgwMSwgMC4wMDM4MDMsIDAuMDAzODA0LCAwLjAwMzgwNCwgMC4wMDM4MDQiLCBcCi0gICAgICAgICAgIjAuMDAzODIzLCAwLjAwMzgyNCwgMC4wMDM4MjgsIDAuMDAzODI5LCAwLjAwMzgzLCAwLjAwMzgzLCAwLjAwMzgzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUk4iOwotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDA2NCwgMC4wMDQwNjUsIDAuMDA0MDY4LCAwLjAwNDA2OSwgMC4wMDQwNywgMC4wMDQwNywgMC4wMDQwNyIsIFwKLSAgICAgICAgICAiMC4wMDQwNSwgMC4wMDQwNTEsIDAuMDA0MDU1LCAwLjAwNDA1NiwgMC4wMDQwNTYsIDAuMDA0MDU3LCAwLjAwNDA1NyIsIFwKLSAgICAgICAgICAiMC4wMDQwMzgsIDAuMDA0MDM5LCAwLjAwNDA0NCwgMC4wMDQwNDYsIDAuMDA0MDQ2LCAwLjAwNDA0NywgMC4wMDQwNDciLCBcCi0gICAgICAgICAgIjAuMDA0MDMxLCAwLjAwNDAzMiwgMC4wMDQwMzgsIDAuMDA0MDQsIDAuMDA0MDQxLCAwLjAwNDA0MSwgMC4wMDQwNDIiLCBcCi0gICAgICAgICAgIjAuMDA0MDI3LCAwLjAwNDAyOCwgMC4wMDQwMzQsIDAuMDA0MDM3LCAwLjAwNDAzOCwgMC4wMDQwMzgsIDAuMDA0MDM5IiwgXAotICAgICAgICAgICIwLjAwNDAyNywgMC4wMDQwMjksIDAuMDA0MDM1LCAwLjAwNDAzOCwgMC4wMDQwMzksIDAuMDA0MDQsIDAuMDA0MDQiLCBcCi0gICAgICAgICAgIjAuMDA0MDMyLCAwLjAwNDAzMywgMC4wMDQwNCwgMC4wMDQwNDMsIDAuMDA0MDQ0LCAwLjAwNDA0NSwgMC4wMDQwNDUiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfcG93ZXIoc2NhbGFyKSB7Ci0gICAgICAgIHZhbHVlcygiMCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUU4pICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4xNTIyMjI7Ci0gICAgZnVuY3Rpb24gOiAiUUJJTlQiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5vbl91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcmlzaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE5ODYxOCwgMC4yMTI3NTMsIDAuMzM5OTIxLCAwLjU1MTc1MywgMC43NjM0MzYsIDEuMjU3NzcsIDEuNTQwMTciLCBcCi0gICAgICAgICAgIjAuMjA4ODQ3LCAwLjIyMjk4LCAwLjM1MDE1LCAwLjU2MTk4NSwgMC43NzM2NjIsIDEuMjY3OTksIDEuNTUwNCIsIFwKLSAgICAgICAgICAiMC4yMjE1OTQsIDAuMjM1NzI4LCAwLjM2Mjg5NywgMC41NzQ2NTksIDAuNzg2NDEsIDEuMjgwNzQsIDEuNTYzMTQiLCBcCi0gICAgICAgICAgIjAuMjMzOTExLCAwLjI0ODAyOSwgMC4zNzUyMDksIDAuNTg2OTI3LCAwLjc5ODczOCwgMS4yOTMwMywgMS41NzU0NSIsIFwKLSAgICAgICAgICAiMC4yNDUxMjQsIDAuMjU5MjU4LCAwLjM4NjQyNSwgMC41OTgxNTksIDAuODA5OTQxLCAxLjMwNDI2LCAxLjU4NjY3IiwgXAotICAgICAgICAgICIwLjI2MDUyNSwgMC4yNzQ2NSwgMC40MDE3NDMsIDAuNjEzNTI4LCAwLjgyNTMxMiwgMS4zMTk0OSwgMS42MDIxNCIsIFwKLSAgICAgICAgICAiMC4yNzI0NjksIDAuMjg2NTk0LCAwLjQxMzc2NSwgMC42MjU1MywgMC44MzcyOTQsIDEuMzMxNiwgMS42MTQwMSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNTIxMywgMC4xODA5NzQsIDAuNDQxOTM5LCAwLjg3NjYyNCwgMS4zMTM4NSwgMi4zMzA0NiwgMi45MTEyNCIsIFwKLSAgICAgICAgICAiMC4xNTIxMjksIDAuMTgwOTg1LCAwLjQ0MTk0LCAwLjg3NjU1NywgMS4zMTM4NSwgMi4zMzA0NiwgMi45MTEyNCIsIFwKLSAgICAgICAgICAiMC4xNTIxMjgsIDAuMTgwOTg1LCAwLjQ0MTk0LCAwLjg3NjgyLCAxLjMxMzgzLCAyLjMzMDQzLCAyLjkxMTIiLCBcCi0gICAgICAgICAgIjAuMTUyMTMsIDAuMTgxMzE5LCAwLjQ0MTk1LCAwLjg3NzgsIDEuMzEzODQsIDIuMzMwNDEsIDIuOTExMTciLCBcCi0gICAgICAgICAgIjAuMTUyMTMsIDAuMTgwOTU1LCAwLjQ0MTk0MiwgMC44NzcwODksIDEuMzEzODMsIDIuMzMwNDIsIDIuOTExMTkiLCBcCi0gICAgICAgICAgIjAuMTUyMTU0LCAwLjE4MTA0NywgMC40NDI0NTQsIDAuODc4MjY5LCAxLjMxMzgxLCAyLjMyNzIsIDIuOTExMzYiLCBcCi0gICAgICAgICAgIjAuMTUyMTMsIDAuMTgxMzYsIDAuNDQxOTUsIDAuODc3MDcsIDEuMzEzODMsIDIuMzMwNDUsIDIuOTExMTkiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjA1NjE3LCAwLjIxOTQ1LCAwLjM0Mzg4LCAwLjU1MTMwMiwgMC43NTg2ODgsIDEuMjQyNzIsIDEuNTE5MTMiLCBcCi0gICAgICAgICAgIjAuMjE1Nzc5LCAwLjIyOTYwMSwgMC4zNTQwMzcsIDAuNTYxNTYyLCAwLjc2ODg3LCAxLjI1MjcyLCAxLjUyOTMyIiwgXAotICAgICAgICAgICIwLjIyODM5NiwgMC4yNDIyMjcsIDAuMzY2NjU4LCAwLjU3NDA4MSwgMC43ODE0NTgsIDEuMjY1MjksIDEuNTQxODkiLCBcCi0gICAgICAgICAgIjAuMjQwNiwgMC4yNTQ0MjIsIDAuMzc4ODU5LCAwLjU4NjMyNywgMC43OTM2OTMsIDEuMjc3NTQsIDEuNTU0MTQiLCBcCi0gICAgICAgICAgIjAuMjUxNiwgMC4yNjU0MjIsIDAuMzg5ODU3LCAwLjU5NzM2MSwgMC44MDQ2OTEsIDEuMjg4NTQsIDEuNTY1MTQiLCBcCi0gICAgICAgICAgIjAuMjY2ODk2LCAwLjI4MDcyLCAwLjQwNTE0OSwgMC42MTI1NjMsIDAuODE5OTc5LCAxLjMwMzg4LCAxLjU4MDMiLCBcCi0gICAgICAgICAgIjAuMjc4NDExLCAwLjI5MjIzMSwgMC40MTY2NjMsIDAuNjI0MTA3LCAwLjgzMTUwNCwgMS4zMTUzNiwgMS41OTE5NyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNDU1OSwgMC4xNzMyNTEsIDAuNDIyODIzLCAwLjgzODg3NSwgMS4yNTY3NSwgMi4yMjk3LCAyLjc4NDY2IiwgXAotICAgICAgICAgICIwLjE0NTU3OSwgMC4xNzMyMzUsIDAuNDIyODEsIDAuODM4MzI4LCAxLjI1NjgyLCAyLjIyODgxLCAyLjc4NDgyIiwgXAotICAgICAgICAgICIwLjE0NTU4NiwgMC4xNzMyNDYsIDAuNDIyNzc5LCAwLjgzODg2LCAxLjI1NDk3LCAyLjIyODUxLCAyLjc4NDUxIiwgXAotICAgICAgICAgICIwLjE0NTU3NywgMC4xNzMyMzUsIDAuNDIyNTQ4LCAwLjgzODI1NywgMS4yNTY4NCwgMi4yMjg3OSwgMi43ODQ4MSIsIFwKLSAgICAgICAgICAiMC4xNDU1NzcsIDAuMTczMjM1LCAwLjQyMjgwOCwgMC44MzgxMTIsIDEuMjU2ODMsIDIuMjI4ODEsIDIuNzg0ODQiLCBcCi0gICAgICAgICAgIjAuMTQ1NTkzLCAwLjE3MzIzMywgMC40MjI3NDYsIDAuODM5NTgzLCAxLjI1Njc5LCAyLjIyOSwgMi43ODI4OSIsIFwKLSAgICAgICAgICAiMC4xNDU1NzksIDAuMTczMjM0LCAwLjQyMjc5MSwgMC44Mzg5NjMsIDEuMjU2ODcsIDIuMjI4ODUsIDIuNzg1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiBwcmVzZXQ7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEyMjA4NSwgMC4xMzYyLCAwLjI2MzI4MSwgMC40NzUwODksIDAuNjg2OTI1LCAxLjE4MTAyLCAxLjQ2MzM2IiwgXAotICAgICAgICAgICIwLjEzMTk4NywgMC4xNDYwOTksIDAuMjczMTY3LCAwLjQ4NSwgMC42OTY4MjgsIDEuMTkwOSwgMS40NzMyOSIsIFwKLSAgICAgICAgICAiMC4xNDQzNjcsIDAuMTU4NDgyLCAwLjI4NTU1MiwgMC40OTczODksIDAuNzA5MTY4LCAxLjIwMzQ5LCAxLjQ4NTY3IiwgXAotICAgICAgICAgICIwLjE1NTcyOSwgMC4xNjk4NDEsIDAuMjk2OTE4LCAwLjUwODc0NCwgMC43MjA1NzEsIDEuMjE0NzUsIDEuNDk3MSIsIFwKLSAgICAgICAgICAiMC4xNjYwMzQsIDAuMTgwMTQ2LCAwLjMwNzIxNywgMC41MTkwNTEsIDAuNzMwODgxLCAxLjIyNDk0LCAxLjUwNzM5IiwgXAotICAgICAgICAgICIwLjE3OTQ5NCwgMC4xOTM2MTEsIDAuMzIwNjk1LCAwLjUzMjQ4OSwgMC43NDQzMjMsIDEuMjM4NDUsIDEuNTIwNzkiLCBcCi0gICAgICAgICAgIjAuMTg5OTQsIDAuMjA0MDU0LCAwLjMzMTEzNywgMC41NDI5NDksIDAuNzU0Nzg4LCAxLjI0ODg3LCAxLjUzMTQ3Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE1MjAzNiwgMC4xODEwMjQsIDAuNDQyMDYyLCAwLjg3Nzg0LCAxLjMxMzcsIDIuMzMwMTksIDIuOTEwMzIiLCBcCi0gICAgICAgICAgIjAuMTUxOTk0LCAwLjE4MTA2LCAwLjQ0MjA5OCwgMC44NzgwOTcsIDEuMzEzNzMsIDIuMzI5OTMsIDIuOTEwNjYiLCBcCi0gICAgICAgICAgIjAuMTUxOTk0LCAwLjE4MTA2MSwgMC40NDI0MTksIDAuODc4MDk1LCAxLjMxMzczLCAyLjMzMDE3LCAyLjkxMDU4IiwgXAotICAgICAgICAgICIwLjE1MTk5OCwgMC4xODEwNjEsIDAuNDQyNDY0LCAwLjg3ODEwNiwgMS4zMTM2OSwgMi4zMjk5MywgMi45MTA2IiwgXAotICAgICAgICAgICIwLjE1MjAxMSwgMC4xODEwNjksIDAuNDQyMTA2LCAwLjg3ODA5NiwgMS4zMTM3LCAyLjMzMDA1LCAyLjkxMDgxIiwgXAotICAgICAgICAgICIwLjE1MjA3MywgMC4xODEwOTksIDAuNDQyMzk4LCAwLjg3Nzk2NywgMS4zMTM2MiwgMi4zMjkzNywgMi45MTAxMSIsIFwKLSAgICAgICAgICAiMC4xNTIwMywgMC4xODEwNTQsIDAuNDQxOTM2LCAwLjg3Nzk0NiwgMS4zMTM3MSwgMi4zMjkzNCwgMi45MTA4MyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDM3ODIsIDAuMDAzNzgzLCAwLjAwMzc4NywgMC4wMDM3ODksIDAuMDAzNzg5LCAwLjAwMzc5LCAwLjAwMzc5IiwgXAotICAgICAgICAgICIwLjAwMzc2OCwgMC4wMDM3NjksIDAuMDAzNzczLCAwLjAwMzc3NCwgMC4wMDM3NzUsIDAuMDAzNzc1LCAwLjAwMzc3NiIsIFwKLSAgICAgICAgICAiMC4wMDM3NjYsIDAuMDAzNzY3LCAwLjAwMzc3MSwgMC4wMDM3NzMsIDAuMDAzNzczLCAwLjAwMzc3NCwgMC4wMDM3NzQiLCBcCi0gICAgICAgICAgIjAuMDAzNzcyLCAwLjAwMzc3MywgMC4wMDM3NzcsIDAuMDAzNzc5LCAwLjAwMzc3OSwgMC4wMDM3OCwgMC4wMDM3OCIsIFwKLSAgICAgICAgICAiMC4wMDM3ODYsIDAuMDAzNzg3LCAwLjAwMzc5MSwgMC4wMDM3OTMsIDAuMDAzNzkzLCAwLjAwMzc5NCwgMC4wMDM3OTQiLCBcCi0gICAgICAgICAgIjAuMDAzNzk3LCAwLjAwMzc5OCwgMC4wMDM4MDEsIDAuMDAzODAzLCAwLjAwMzgwNCwgMC4wMDM4MDQsIDAuMDAzODA0IiwgXAotICAgICAgICAgICIwLjAwMzgyMywgMC4wMDM4MjQsIDAuMDAzODI4LCAwLjAwMzgyOSwgMC4wMDM4MywgMC4wMDM4MywgMC4wMDM4MyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzgyNywgMC4wMDM4MjYsIDAuMDAzODE2LCAwLjAwMzgwOSwgMC4wMDM4MDYsIDAuMDAzODAzLCAwLjAwMzgwMiIsIFwKLSAgICAgICAgICAiMC4wMDM4MTIsIDAuMDAzODExLCAwLjAwMzgwMSwgMC4wMDM3OTQsIDAuMDAzNzkxLCAwLjAwMzc4OCwgMC4wMDM3ODciLCBcCi0gICAgICAgICAgIjAuMDAzODA0LCAwLjAwMzgwMywgMC4wMDM3OTQsIDAuMDAzNzg2LCAwLjAwMzc4NCwgMC4wMDM3OCwgMC4wMDM3NzkiLCBcCi0gICAgICAgICAgIjAuMDAzODAzLCAwLjAwMzgwMiwgMC4wMDM3OTMsIDAuMDAzNzg1LCAwLjAwMzc4MiwgMC4wMDM3NzksIDAuMDAzNzc4IiwgXAotICAgICAgICAgICIwLjAwMzgxMywgMC4wMDM4MTIsIDAuMDAzODAzLCAwLjAwMzc5NSwgMC4wMDM3OTIsIDAuMDAzNzg4LCAwLjAwMzc4NyIsIFwKLSAgICAgICAgICAiMC4wMDM4MjIsIDAuMDAzODIxLCAwLjAwMzgxMywgMC4wMDM4MDUsIDAuMDAzODAxLCAwLjAwMzc5OCwgMC4wMDM3OTciLCBcCi0gICAgICAgICAgIjAuMDAzODM0LCAwLjAwMzgzMywgMC4wMDM4MjUsIDAuMDAzODE4LCAwLjAwMzgxNCwgMC4wMDM4MSwgMC4wMDM4MDkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0MDY0LCAwLjAwNDA2NSwgMC4wMDQwNjgsIDAuMDA0MDY5LCAwLjAwNDA3LCAwLjAwNDA3LCAwLjAwNDA3IiwgXAotICAgICAgICAgICIwLjAwNDA1LCAwLjAwNDA1MSwgMC4wMDQwNTUsIDAuMDA0MDU2LCAwLjAwNDA1NiwgMC4wMDQwNTcsIDAuMDA0MDU3IiwgXAotICAgICAgICAgICIwLjAwNDAzOCwgMC4wMDQwMzksIDAuMDA0MDQ0LCAwLjAwNDA0NiwgMC4wMDQwNDYsIDAuMDA0MDQ3LCAwLjAwNDA0NyIsIFwKLSAgICAgICAgICAiMC4wMDQwMzEsIDAuMDA0MDMyLCAwLjAwNDAzOCwgMC4wMDQwNCwgMC4wMDQwNDEsIDAuMDA0MDQxLCAwLjAwNDA0MiIsIFwKLSAgICAgICAgICAiMC4wMDQwMjcsIDAuMDA0MDI4LCAwLjAwNDAzNCwgMC4wMDQwMzcsIDAuMDA0MDM4LCAwLjAwNDAzOCwgMC4wMDQwMzkiLCBcCi0gICAgICAgICAgIjAuMDA0MDI3LCAwLjAwNDAyOSwgMC4wMDQwMzUsIDAuMDA0MDM4LCAwLjAwNDAzOSwgMC4wMDQwNCwgMC4wMDQwNCIsIFwKLSAgICAgICAgICAiMC4wMDQwMzIsIDAuMDA0MDMzLCAwLjAwNDA0LCAwLjAwNDA0MywgMC4wMDQwNDQsIDAuMDA0MDQ1LCAwLjAwNDA0NSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihzY2FsYXIpIHsKLSAgICAgICAgdmFsdWVzKCIwIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihSTikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNTE0NjI7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNDMxNjk7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNTE0NjI7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNDUzLCAwLjAwMDQ1MywgMC4wMDA0NTIsIDAuMDAwNDUyLCAwLjAwMDQ1MiwgMC4wMDA0NTIsIDAuMDAwNDUyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNDU5LCAwLjAwMDQ1NCwgMC4wMDA0NTQsIDAuMDAwNDU0LCAwLjAwMDQ1NCwgMC4wMDA0NTQsIDAuMDAwNDU0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRCYhU0UmIVNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9TRV9FUV8wX0FOX1NJX0VRXzAgPT0gMSdiMSI7Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4xMjIwODUsIDAuMTMxOTg3LCAwLjE0NDM2NywgMC4xNTU3MjksIDAuMTY2MDM0LCAwLjE3OTQ5NCwgMC4xODk5MzIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiByZWNvdmVyeV9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEJlNFJlNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9TRV9FUV8xX0FOX1NJX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQocmVjb3ZlcnlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAzNzUsIC0wLjA0ODc1LCAtMC4wNjEyNSwgLTAuMDczNzUsIC0wLjA4NjI1LCAtMC4xMDI1LCAtMC4xMTEyNSIsIFwKLSAgICAgICAgICAiLTAuMDQ1LCAtMC4wNTYyNSwgLTAuMDY4NzUsIC0wLjA4MTI1LCAtMC4wODc1LCAtMC4xMDM3NSwgLTAuMTE4NzUiLCBcCi0gICAgICAgICAgIi0wLjA0NSwgLTAuMDUsIC0wLjA2ODc1LCAtMC4wODEyNSwgLTAuMDg3NSwgLTAuMTAzNzUsIC0wLjExODc1IiwgXAotICAgICAgICAgICItMC4wMzI1LCAtMC4wNDM3NSwgLTAuMDU2MjUsIC0wLjA2ODc1LCAtMC4wODEyNSwgLTAuMDk3NSwgLTAuMTEyNSIsIFwKLSAgICAgICAgICAiLTAuMDIsIC0wLjAzMTI1LCAtMC4wNDM3NSwgLTAuMDU2MjUsIC0wLjA2ODc1LCAtMC4wODUsIC0wLjEiLCBcCi0gICAgICAgICAgIjAuMDAyNSwgLTAuMDA4NzUsIC0wLjAyMTI1LCAtMC4wMzM3NSwgLTAuMDQ2MjUsIC0wLjA2MjUsIC0wLjA3NzUiLCBcCi0gICAgICAgICAgIjAuMDMsIDAuMDEyNSwgMCwgLTAuMDEyNSwgLTAuMDI1LCAtMC4wNDEyNSwgLTAuMDU2MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiByZW1vdmFsX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUQmU0UmU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1NFX0VRXzFfQU5fU0lfRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChyZW1vdmFsX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1NjI1LCAwLjA2NzUsIDAuMDgsIDAuMDkyNSwgMC4xMDUsIDAuMTIxMjUsIDAuMTMiLCBcCi0gICAgICAgICAgIjAuMDYzNzUsIDAuMDc1LCAwLjA4NzUsIDAuMSwgMC4xMDYyNSwgMC4xMjI1LCAwLjEzNzUiLCBcCi0gICAgICAgICAgIjAuMDcsIDAuMDgxMjUsIDAuMDkzNzUsIDAuMTA2MjUsIDAuMTE4NzUsIDAuMTI4NzUsIDAuMTQzNzUiLCBcCi0gICAgICAgICAgIjAuMDc2MjUsIDAuMDg3NSwgMC4xLCAwLjExMjUsIDAuMTI1LCAwLjEzNSwgMC4xNSIsIFwKLSAgICAgICAgICAiMC4wODI1LCAwLjA5Mzc1LCAwLjEwNjI1LCAwLjExODc1LCAwLjEyNSwgMC4xNDEyNSwgMC4xNSIsIFwKLSAgICAgICAgICAiMC4wOTEyNSwgMC4xMDI1LCAwLjExNSwgMC4xMjc1LCAwLjEzMzc1LCAwLjE1LCAwLjE1ODc1IiwgXAotICAgICAgICAgICIwLjA5NSwgMC4xMDYyNSwgMC4xMTg3NSwgMC4xMzEyNSwgMC4xNDM3NSwgMC4xNTM3NSwgMC4xNjg3NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oU0UpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTM4MDEzOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTM4MDA2OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTM4MDEzOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNDMxNSwgMC4wMDQyOTMsIDAuMDA0Mjk5LCAwLjAwNDMwMSwgMC4wMDQzMTcsIDAuMDA0MzQsIDAuMDA0MzY2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA1NzAzLCAwLjAwNTY2OCwgMC4wMDU2NiwgMC4wMDU2NywgMC4wMDU2ODEsIDAuMDA1NzIsIDAuMDA1NzY1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlJOIjsKLSAgICAgIHNkZl9jb25kIDogIlJOID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAxODc1LCAtMC4wMTM3NSwgLTAuMDAxMjUsIDAuMDExMjUsIDAuMDE3NSwgMC4wMzM3NSwgMC4wNDI1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDI1LCAtMC4wMTI1LCAwLCAwLjAwNjI1LCAwLjAyMjUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgMCwgMC4wMSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjA0Mzc1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIDAuMDAzNzUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDYxMjUsIC0wLjA1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMDI1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wNzEyNSwgLTAuMDYsIC0wLjA0NzUsIC0wLjAzNSwgLTAuMDI4NzUsIC0wLjAxMjUsIC0wLjAwMzc1IiwgXAotICAgICAgICAgICItMC4wNzM3NSwgLTAuMDY4NzUsIC0wLjA1NjI1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDIxMjUsIC0wLjAxMjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMDYyNSwgMC4wMDUsIDAuMDE3NSwgMC4wMjM3NSwgMC4wMzYyNSwgMC4wNDYyNSwgMC4wNTUiLCBcCi0gICAgICAgICAgIi0wLjAxNzUsIC0wLjAwNjI1LCAwLjAwNjI1LCAwLjAxODc1LCAwLjAyNSwgMC4wMzUsIDAuMDUiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAuMDA2MjUsIDAuMDEyNSwgMC4wMjg3NSwgMC4wMzc1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAuMDA2MjUsIDAuMDE2MjUsIDAuMDI1IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLjAwMzc1LCAwLjAxODc1IiwgXAotICAgICAgICAgICItMC4wNTg3NSwgLTAuMDQ3NSwgLTAuMDM1LCAtMC4wMjg3NSwgLTAuMDIyNSwgLTAuMDA2MjUsIDAuMDAyNSIsIFwKLSAgICAgICAgICAiLTAuMDYxMjUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAxNSwgLTAuMDA2MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlJOIjsKLSAgICAgIHNkZl9jb25kIDogIlJOID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4MTI1LCAwLjA3LCAwLjA1NzUsIDAuMDUxMjUsIDAuMDQ1LCAwLjAzNSwgMC4wMjYyNSIsIFwKLSAgICAgICAgICAiMC4wOTI1LCAwLjA4MTI1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDQ2MjUsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiMC4wOTg3NSwgMC4wOTM3NSwgMC4wODEyNSwgMC4wNzUsIDAuMDY4NzUsIDAuMDU4NzUsIDAuMDUiLCBcCi0gICAgICAgICAgIjAuMTExMjUsIDAuMSwgMC4wOTM3NSwgMC4wODc1LCAwLjA3NSwgMC4wNzEyNSwgMC4wNjI1IiwgXAotICAgICAgICAgICIwLjEyMzc1LCAwLjExMjUsIDAuMTA2MjUsIDAuMDkzNzUsIDAuMDg3NSwgMC4wNzc1LCAwLjA3NSIsIFwKLSAgICAgICAgICAiMC4xNDYyNSwgMC4xMzUsIDAuMTIyNSwgMC4xMTYyNSwgMC4xMSwgMC4xLCAwLjA5MTI1IiwgXAotICAgICAgICAgICIwLjE1NSwgMC4xNSwgMC4xMzc1LCAwLjEzMTI1LCAwLjExODc1LCAwLjExNSwgMC4xMDYyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEsIDAuMDg4NzUsIDAuMDc2MjUsIDAuMDcsIDAuMDYzNzUsIDAuMDUzNzUsIDAuMDQ1IiwgXAotICAgICAgICAgICIwLjEwNSwgMC4wOTM3NSwgMC4wODc1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIjAuMTE3NSwgMC4xMDYyNSwgMC4wOTM3NSwgMC4wODc1LCAwLjA4MTI1LCAwLjA3MTI1LCAwLjA2MjUiLCBcCi0gICAgICAgICAgIjAuMTIzNzUsIDAuMTEyNSwgMC4xMDYyNSwgMC4wOTM3NSwgMC4wODc1LCAwLjA3NzUsIDAuMDc1IiwgXAotICAgICAgICAgICIwLjEzLCAwLjExODc1LCAwLjExMjUsIDAuMSwgMC4wOTM3NSwgMC4wOSwgMC4wODEyNSIsIFwKLSAgICAgICAgICAiMC4xNCwgMC4xMjg3NSwgMC4xMjI1LCAwLjExLCAwLjEwMzc1LCAwLjA5Mzc1LCAwLjA5MTI1IiwgXAotICAgICAgICAgICIwLjE0ODc1LCAwLjEzNzUsIDAuMTI1LCAwLjExODc1LCAwLjExMjUsIDAuMTAyNSwgMC4wOTM3NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oU0kpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYzNjU0NjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MzQ4NTE7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjM2NTQ2OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjc0NCwgMC4wMDI3MjcsIDAuMDAyNzE4LCAwLjAwMjcxNCwgMC4wMDI3MTMsIDAuMDAyNzE0LCAwLjAwMjcyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNDY1NSwgMC4wMDQ2NDYsIDAuMDA0NjQsIDAuMDA0NjM4LCAwLjAwNDYzOSwgMC4wMDQ2NCwgMC4wMDQ2NDYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiUk4mU0UiOwotICAgICAgc2RmX2NvbmQgOiAiUk5fRVFfMV9BTl9TRV9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjA1NjI1LCAtMC4wNDUsIC0wLjAzODc1LCAtMC4wMzI1LCAtMC4wMjYyNSwgLTAuMDE2MjUsIC0wLjAxMzc1IiwgXAotICAgICAgICAgICItMC4wNjEyNSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wMzc1LCAtMC4wMzc1LCAtMC4wMjc1LCAtMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDczNzUsIC0wLjA2ODc1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wNCwgLTAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjA4NjI1LCAtMC4wNzUsIC0wLjA2ODc1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDQ2MjUsIC0wLjA0Mzc1IiwgXAotICAgICAgICAgICItMC4wOTI1LCAtMC4wODc1LCAtMC4wODEyNSwgLTAuMDc1LCAtMC4wNjg3NSwgLTAuMDU4NzUsIC0wLjA1IiwgXAotICAgICAgICAgICItMC4xMDg3NSwgLTAuMTAzNzUsIC0wLjA5NzUsIC0wLjA5MTI1LCAtMC4wODUsIC0wLjA3NSwgLTAuMDY2MjUiLCBcCi0gICAgICAgICAgIi0wLjEyMzc1LCAtMC4xMTI1LCAtMC4xMDYyNSwgLTAuMSwgLTAuMDkzNzUsIC0wLjA4Mzc1LCAtMC4wODEyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAxMjUsIC0wLjAwMTI1LCAwLjAwNSwgMC4wMTc1LCAwLjAzLCAwLjA0LCAwLjA0ODc1IiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDEyNSwgMCwgMC4wMTI1LCAwLjAxODc1LCAwLjAyODc1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDI1LCAtMC4wMTI1LCAwLCAwLjAwNjI1LCAwLjAyMjUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAsIDAuMDEsIDAuMDI1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDM3NSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAuMDAzNzUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDU4NzUsIC0wLjA1Mzc1LCAtMC4wNDEyNSwgLTAuMDI4NzUsIC0wLjAyMjUsIC0wLjAwNjI1LCAwLjAwMjUiLCBcCi0gICAgICAgICAgIi0wLjA2NzUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAxNSwgLTAuMDA2MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlJOJlNFIjsKLSAgICAgIHNkZl9jb25kIDogIlJOX0VRXzFfQU5fU0VfRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODc1LCAwLjA3NjI1LCAwLjA2Mzc1LCAwLjA1NzUsIDAuMDUxMjUsIDAuMDQxMjUsIDAuMDMyNSIsIFwKLSAgICAgICAgICAiMC4wOTI1LCAwLjA4NzUsIDAuMDc1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDUyNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4xMDUsIDAuMDkzNzUsIDAuMDg3NSwgMC4wNzUsIDAuMDY4NzUsIDAuMDU4NzUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIjAuMTE3NSwgMC4xMDYyNSwgMC4wOTM3NSwgMC4wODc1LCAwLjA4MTI1LCAwLjA3MTI1LCAwLjA2MjUiLCBcCi0gICAgICAgICAgIjAuMTMsIDAuMTE4NzUsIDAuMTA2MjUsIDAuMSwgMC4wOTM3NSwgMC4wODM3NSwgMC4wNzUiLCBcCi0gICAgICAgICAgIjAuMTQ2MjUsIDAuMTM1LCAwLjEyMjUsIDAuMTE2MjUsIDAuMTEsIDAuMSwgMC4wOTEyNSIsIFwKLSAgICAgICAgICAiMC4xNTUsIDAuMTUsIDAuMTM3NSwgMC4xMjUsIDAuMTE4NzUsIDAuMTE1LCAwLjEwNjI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDYyNSwgMC4wNTEyNSwgMC4wMzg3NSwgMC4wMjYyNSwgMC4wMTM3NSwgLTAuMDAyNSwgLTAuMDExMjUiLCBcCi0gICAgICAgICAgIjAuMDY3NSwgMC4wNTYyNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAyNSwgMC4wMDg3NSwgMCIsIFwKLSAgICAgICAgICAiMC4wOCwgMC4wNjg3NSwgMC4wNTYyNSwgMC4wNDM3NSwgMC4wMzEyNSwgMC4wMjEyNSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiMC4wOTI1LCAwLjA4MTI1LCAwLjA2ODc1LCAwLjA1NjI1LCAwLjA0Mzc1LCAwLjAyNzUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMDk4NzUsIDAuMDg3NSwgMC4wNzUsIDAuMDYyNSwgMC4wNSwgMC4wNCwgMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMTE1LCAwLjEwMzc1LCAwLjA5MTI1LCAwLjA3ODc1LCAwLjA2NjI1LCAwLjA1LCAwLjA0MTI1IiwgXAotICAgICAgICAgICIwLjEyMzc1LCAwLjExMjUsIDAuMSwgMC4wODc1LCAwLjA3NSwgMC4wNjUsIDAuMDUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IFNERkZTSFFYMSAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKFNERkZTSFFYMSkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjQ3OTgzOTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBmZiAoTjMwLFFCSU5UKSB7Ci0gICAgbmV4dF9zdGF0ZSA6ICIoKFNFIFNJKSArICghU0UgRCkpIjsKLSAgICBjbG9ja2VkX29uIDogIkNLIjsKLSAgICBwcmVzZXQgOiAiKCFTTikiOwotICB9Ci0gIHBpbihDSykgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjI5ODQ5OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYyOTM5NTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2Mjk4NDk7Ci0gICAgY2xvY2sgOiB0cnVlOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzExMSwgMC4wMDMwODgsIDAuMDAzMDczLCAwLjAwMzA3NSwgMC4wMDMwODcsIDAuMDAzMTA2LCAwLjAwMzEyOSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNzg1OCwgMC4wMDc4MywgMC4wMDc4MzIsIDAuMDA3ODQzLCAwLjAwNzg1OSwgMC4wMDc5MDEsIDAuMDA3OTQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFEJiFTRSYhU0kmU04iOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1NFX0VRXzBfQU5fU0lfRVFfMF9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMTU1Mjc5LCAwLjE2NTUyOSwgMC4xNzgyMzgsIDAuMTkwNjgsIDAuMjAyMDM0LCAwLjIxNzUyMywgMC4yMzAxMzciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjEwNzk4OCwgMC4xMTc3ODcsIDAuMTMwMTQzLCAwLjE0MjI4LCAwLjE1MzA3OCwgMC4xNjc2ODQsIDAuMTc4OTgzIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihEKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA4NjY3MjQ7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwODYzNzM2OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDg2NjcyNDsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDQxNjUsIDAuMDA0MTMzLCAwLjAwNDExNSwgMC4wMDQxMDUsIDAuMDA0MDk4LCAwLjAwNDEwMywgMC4wMDQxMTEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDYxNTMsIDAuMDA2MTM1LCAwLjAwNjEyNSwgMC4wMDYxMiwgMC4wMDYxMTgsIDAuMDA2MTIsIDAuMDA2MTIzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFTRSZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJTRV9FUV8wX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDQzNzUsIC0wLjAzODc1LCAtMC4wMjYyNSwgLTAuMDIsIC0wLjAxMzc1LCAtMC4wMDM3NSwgMC4wMDUiLCBcCi0gICAgICAgICAgIi0wLjA1NSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAxNSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA2MTI1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMjEyNSwgLTAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjA3Mzc1LCAtMC4wNjg3NSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDMzNzUsIC0wLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDg2MjUsIC0wLjA3NSwgLTAuMDY4NzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNDYyNSwgLTAuMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMTAyNSwgLTAuMDkxMjUsIC0wLjA4NSwgLTAuMDcyNSwgLTAuMDcyNSwgLTAuMDYyNSwgLTAuMDUzNzUiLCBcCi0gICAgICAgICAgIi0wLjExMTI1LCAtMC4xLCAtMC4wOTM3NSwgLTAuMDg3NSwgLTAuMDgxMjUsIC0wLjA3MTI1LCAtMC4wNjI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDA2MjUsIDAuMDA1LCAwLjAxNzUsIDAuMDIzNzUsIDAuMDM2MjUsIDAuMDQ2MjUsIDAuMDYxMjUiLCBcCi0gICAgICAgICAgIi0wLjAxNzUsIC0wLjAwNjI1LCAwLjAwNjI1LCAwLjAxODc1LCAwLjAyNSwgMC4wNDEyNSwgMC4wNSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLjAwNjI1LCAwLjAxODc1LCAwLjAyODc1LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMjUsIC0wLjAxMjUsIDAsIDAuMDA2MjUsIDAuMDIyNSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDMxMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAwLCAwLjAxLCAwLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDUyNSwgLTAuMDQxMjUsIC0wLjAzNSwgLTAuMDIyNSwgLTAuMDEsIDAsIDAuMDA4NzUiLCBcCi0gICAgICAgICAgIi0wLjA2MTI1LCAtMC4wNTYyNSwgLTAuMDQzNzUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAwODc1LCAwIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhU0UmU04iOwotICAgICAgc2RmX2NvbmQgOiAiU0VfRVFfMF9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3NSwgMC4wNjM3NSwgMC4wNTEyNSwgMC4wNDUsIDAuMDM4NzUsIDAuMDI4NzUsIDAuMDIiLCBcCi0gICAgICAgICAgIjAuMDgsIDAuMDc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDQzNzUsIDAuMDQsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMDkyNSwgMC4wODEyNSwgMC4wNzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNDYyNSwgMC4wMzc1IiwgXAotICAgICAgICAgICIwLjEwNSwgMC4wOTM3NSwgMC4wODEyNSwgMC4wNzUsIDAuMDY4NzUsIDAuMDU4NzUsIDAuMDUiLCBcCi0gICAgICAgICAgIjAuMTExMjUsIDAuMTA2MjUsIDAuMDkzNzUsIDAuMDg3NSwgMC4wODEyNSwgMC4wNzEyNSwgMC4wNjI1IiwgXAotICAgICAgICAgICIwLjEyNzUsIDAuMTIyNSwgMC4xMSwgMC4xMDM3NSwgMC4wOTEyNSwgMC4wODEyNSwgMC4wNzg3NSIsIFwKLSAgICAgICAgICAiMC4xNDI1LCAwLjEzMTI1LCAwLjExODc1LCAwLjExMjUsIDAuMTA2MjUsIDAuMDk2MjUsIDAuMDg3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2MjUsIDAuMDU3NSwgMC4wMzg3NSwgMC4wMjYyNSwgMC4wMTM3NSwgMC4wMDM3NSwgLTAuMDExMjUiLCBcCi0gICAgICAgICAgIjAuMDczNzUsIDAuMDYyNSwgMC4wNSwgMC4wMzc1LCAwLjAyNSwgMC4wMDg3NSwgMCIsIFwKLSAgICAgICAgICAiMC4wODYyNSwgMC4wNzUsIDAuMDYyNSwgMC4wNSwgMC4wMzc1LCAwLjAyMTI1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICIwLjA5MjUsIDAuMDgxMjUsIDAuMDY4NzUsIDAuMDU2MjUsIDAuMDQzNzUsIDAuMDI3NSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4xMDUsIDAuMDkzNzUsIDAuMDgxMjUsIDAuMDY4NzUsIDAuMDU2MjUsIDAuMDQsIDAuMDI1IiwgXAotICAgICAgICAgICIwLjExNSwgMC4xMDM3NSwgMC4wOTEyNSwgMC4wNzg3NSwgMC4wNjYyNSwgMC4wNSwgMC4wNDEyNSIsIFwKLSAgICAgICAgICAiMC4xMywgMC4xMTg3NSwgMC4xLCAwLjA4NzUsIDAuMDgxMjUsIDAuMDY1LCAwLjA1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihRKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMjYxNzg0OwotICAgIGZ1bmN0aW9uIDogIk4zMCI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3NlbnNlIDogbm9uX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiByaXNpbmdfZWRnZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTMwMTEzLCAwLjE1NDM4MSwgMC4yOTE3MjQsIDAuNDEyODc1LCAwLjU3NDQyNCwgMC44OTc0ODMsIDEuMDk5MzYiLCBcCi0gICAgICAgICAgIjAuMTQwMjY4LCAwLjE2NDUzNiwgMC4zMDE4NTUsIDAuNDIzMDU0LCAwLjU4NDU4MiwgMC45MDc1ODIsIDEuMTA5NTMiLCBcCi0gICAgICAgICAgIjAuMTUyOTQ4LCAwLjE3NzIxNiwgMC4zMTQ1NiwgMC40MzU3MjQsIDAuNTk3MzM1LCAwLjkyMDM1MSwgMS4xMjIyMiIsIFwKLSAgICAgICAgICAiMC4xNjUzNzIsIDAuMTg5NjQyLCAwLjMyNjk3NCwgMC40NDgxMzQsIDAuNjA5Njg2LCAwLjkzMjc0OSwgMS4xMzQ2NiIsIFwKLSAgICAgICAgICAiMC4xNzY2MDMsIDAuMjAwODc0LCAwLjMzODIxNSwgMC40NTkzNjksIDAuNjIwODk2LCAwLjk0Mzk3NCwgMS4xNDU4NiIsIFwKLSAgICAgICAgICAiMC4xOTIyNzQsIDAuMjE2NTQ2LCAwLjM1Mzg5NywgMC40NzUwMzcsIDAuNjM2NjEsIDAuOTU5NjI4LCAxLjE2MTU1IiwgXAotICAgICAgICAgICIwLjIwNDI4MiwgMC4yMjg1NDMsIDAuMzY1ODg0LCAwLjQ4NzAyOSwgMC42NDg1NSwgMC45NzE2MiwgMS4xNzM1Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5MDMyOCwgMC4xMzk5NDksIDAuNDIzNjIsIDAuNjczNTIzLCAxLjAwNjYsIDEuNjczNjYsIDIuMDk0NTYiLCBcCi0gICAgICAgICAgIjAuMDkwMzE5LCAwLjEzOTk0NywgMC40MjM1MTYsIDAuNjc0MjUyLCAxLjAwNjY3LCAxLjY3NjgsIDIuMDkxOCIsIFwKLSAgICAgICAgICAiMC4wOTAzMjksIDAuMTM5NzY3LCAwLjQyMzYyNSwgMC42NzMzNTgsIDEuMDA2OTMsIDEuNjc0MTksIDIuMDkxODUiLCBcCi0gICAgICAgICAgIjAuMDkwMzgxLCAwLjEzOTk3OCwgMC40MjM2MTgsIDAuNjczNDkyLCAxLjAwODQxLCAxLjY3NCwgMi4wOTA5NyIsIFwKLSAgICAgICAgICAiMC4wOTAzMywgMC4xMzk5NjUsIDAuNDIzNjEyLCAwLjY3MzQ5MSwgMS4wMDcxMywgMS42NzM3LCAyLjA5NDUxIiwgXAotICAgICAgICAgICIwLjA5MDI5LCAwLjEzOTk3NCwgMC40MjI3ODgsIDAuNjczNDgyLCAxLjAwODQ2LCAxLjY3NDYsIDIuMDkxOTQiLCBcCi0gICAgICAgICAgIjAuMDkwMzksIDAuMTM5OTM5LCAwLjQyMzUyNSwgMC42NzM0ODgsIDEuMDA3MjMsIDEuNjc0NiwgMi4wOTQyNSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNTUyNzksIDAuMTgwMDcxLCAwLjMyMDI4LCAwLjQ0MzkyNCwgMC42MDg3NzcsIDAuOTM4NiwgMS4xNDQ1NSIsIFwKLSAgICAgICAgICAiMC4xNjU1MjksIDAuMTkwMzE5LCAwLjMzMDUwMywgMC40NTQxNjUsIDAuNjE5MDM2LCAwLjk0ODcxOCwgMS4xNTQ4MSIsIFwKLSAgICAgICAgICAiMC4xNzgyMzgsIDAuMjAzMDI5LCAwLjM0MzIyLCAwLjQ2Njg3NCwgMC42MzE3NTYsIDAuOTYxNDEzLCAxLjE2NzUyIiwgXAotICAgICAgICAgICIwLjE5MDY4LCAwLjIxNTQ3MSwgMC4zNTU2NTUsIDAuNDc5MzUyLCAwLjY0NDE2NSwgMC45NzM4NzMsIDEuMTc5OTMiLCBcCi0gICAgICAgICAgIjAuMjAyMDM0LCAwLjIyNjgzMywgMC4zNjcwMjksIDAuNDkwNjk4LCAwLjY1NTUxOCwgMC45ODUyMzcsIDEuMTkxMyIsIFwKLSAgICAgICAgICAiMC4yMTc1MjMsIDAuMjQyMzE2LCAwLjM4MjUyNCwgMC41MDYxNjUsIDAuNjcxMDA1LCAxLjAwMDczLCAxLjIwNjc5IiwgXAotICAgICAgICAgICIwLjIzMDEzNywgMC4yNTQ5MjcsIDAuMzk1MTI3LCAwLjUxODc3MiwgMC42ODM2NTQsIDEuMDEzMzMsIDEuMjE5NDIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDkwMDMzLCAwLjEzOTE3OSwgMC40MjE2NDMsIDAuNjcxMDM3LCAxLjAwMzY2LCAxLjY2NjgzLCAyLjA4MTYyIiwgXAotICAgICAgICAgICIwLjA5MDAyLCAwLjEzOTE2NywgMC40MjE0NjMsIDAuNjcxMDA0LCAxLjAwMzczLCAxLjY2NTUsIDIuMDgxOTMiLCBcCi0gICAgICAgICAgIjAuMDkwMDIyLCAwLjEzOTE3MSwgMC40MjE0OTMsIDAuNjcxMDA3LCAxLjAwMzY3LCAxLjY2ODcxLCAyLjA4MjA0IiwgXAotICAgICAgICAgICIwLjA4OTk2MSwgMC4xMzkxNjUsIDAuNDIxNDY4LCAwLjY3MDk0NywgMS4wMDMwNSwgMS42Njg4MywgMi4wODM0OCIsIFwKLSAgICAgICAgICAiMC4wOTAwMjUsIDAuMTM4OTgzLCAwLjQyMTU5OCwgMC42Njk4MzgsIDEuMDAzMTgsIDEuNjY2NiwgMi4wODQ3MSIsIFwKLSAgICAgICAgICAiMC4wOTAwMTgsIDAuMTM5MjE5LCAwLjQyMTYyOCwgMC42NzEwMTksIDEuMDAzNTIsIDEuNjY2NjMsIDIuMDgxMzgiLCBcCi0gICAgICAgICAgIjAuMDkwMDI5LCAwLjEzOTE3NCwgMC40MjE1NjYsIDAuNjcwOTksIDEuMDAzNjUsIDEuNjY4ODQsIDIuMDgyMiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcHJlc2V0OwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTQ2MiwgMC4xMzg4OTQsIDAuMjc2Mjk4LCAwLjM5NzM5OCwgMC41NTg5MzIsIDAuODgyMDE1LCAxLjA4MzkzIiwgXAotICAgICAgICAgICIwLjEyNDM1LCAwLjE0ODYxMiwgMC4yODU5OCwgMC40MDcxMTcsIDAuNTY4NjQzLCAwLjg5MTY4NywgMS4wOTM2MiIsIFwKLSAgICAgICAgICAiMC4xMzY3MDcsIDAuMTYwOTcsIDAuMjk4Mjc5LCAwLjQxOTQ3NSwgMC41ODA5OTksIDAuOTA0MDU3LCAxLjEwNTk3IiwgXAotICAgICAgICAgICIwLjE0ODIxNywgMC4xNzI1LCAwLjMwOTg3MSwgMC40MzA5OSwgMC41OTI1MjMsIDAuOTE1NjAxLCAxLjExNzQ4IiwgXAotICAgICAgICAgICIwLjE1ODgyMywgMC4xODMwODYsIDAuMzIwMzg4LCAwLjQ0MTU5NSwgMC42MDMxMTksIDAuOTI2MjIzLCAxLjEyODA5IiwgXAotICAgICAgICAgICIwLjE3MzUwNywgMC4xOTc3NjksIDAuMzM1MTIyLCAwLjQ1NjI2NiwgMC42MTc3OTcsIDAuOTQwODgxLCAxLjE0Mjc4IiwgXAotICAgICAgICAgICIwLjE4NDg1NywgMC4yMDkxMTksIDAuMzQ2NDc4LCAwLjQ2NzYwOSwgMC42MjkxNDMsIDAuOTUyMTk0LCAxLjE1NDExIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5MDIyNCwgMC4xMzk4NjgsIDAuNDIzNjA0LCAwLjY3NDAyLCAxLjAwNzM3LCAxLjY3Njk4LCAyLjA5NTExIiwgXAotICAgICAgICAgICIwLjA5MDI0NSwgMC4xMzk4MiwgMC40MjM2NTEsIDAuNjc0MjM0LCAxLjAwODQ5LCAxLjY3NjE1LCAyLjA5MjQ0IiwgXAotICAgICAgICAgICIwLjA5MDI0NywgMC4xMzk4NzMsIDAuNDIzNjY4LCAwLjY3NDIyMSwgMS4wMDczNiwgMS42NzY4MywgMi4wOTI0MyIsIFwKLSAgICAgICAgICAiMC4wOTAyNDQsIDAuMTM5ODY0LCAwLjQyMzY1NywgMC42NzQxODYsIDEuMDA4NDIsIDEuNjc0OTgsIDIuMDk0NjQiLCBcCi0gICAgICAgICAgIjAuMDkwMTg5LCAwLjEzOTg4MywgMC40MjM1NjEsIDAuNjc0MjAyLCAxLjAwNzM4LCAxLjY3NjczLCAyLjA5MjQxIiwgXAotICAgICAgICAgICIwLjA5MDMyLCAwLjEzOTkyMSwgMC40MjM1MywgMC42NzM5MzksIDEuMDA3MzYsIDEuNjc1LCAyLjA5NDU1IiwgXAotICAgICAgICAgICIwLjA5MDI4LCAwLjEzOTg4OCwgMC40MjM1NTIsIDAuNjc0MTQ3LCAxLjAwODE2LCAxLjY3NjQ1LCAyLjA5MzU2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNzE4NywgMC4wMDcxOTMsIDAuMDA3MjAyLCAwLjAwNzIwNCwgMC4wMDcyMDUsIDAuMDA3MjA1LCAwLjAwNzIwNSIsIFwKLSAgICAgICAgICAiMC4wMDcxNTcsIDAuMDA3MTYzLCAwLjAwNzE3MiwgMC4wMDcxNzQsIDAuMDA3MTc0LCAwLjAwNzE3NywgMC4wMDcxNzciLCBcCi0gICAgICAgICAgIjAuMDA3MTQyLCAwLjAwNzE0OSwgMC4wMDcxNTcsIDAuMDA3MTU5LCAwLjAwNzE2LCAwLjAwNzE2MSwgMC4wMDcxNjMiLCBcCi0gICAgICAgICAgIjAuMDA3MTM5LCAwLjAwNzE0NiwgMC4wMDcxNTQsIDAuMDA3MTU2LCAwLjAwNzE1NywgMC4wMDcxNTgsIDAuMDA3MTU4IiwgXAotICAgICAgICAgICIwLjAwNzE0OSwgMC4wMDcxNTYsIDAuMDA3MTY0LCAwLjAwNzE2NiwgMC4wMDcxNjcsIDAuMDA3MTY5LCAwLjAwNzE2OSIsIFwKLSAgICAgICAgICAiMC4wMDcxNjEsIDAuMDA3MTY4LCAwLjAwNzE3NywgMC4wMDcxNzgsIDAuMDA3MTgsIDAuMDA3MTgxLCAwLjAwNzE4MSIsIFwKLSAgICAgICAgICAiMC4wMDcxODMsIDAuMDA3MTksIDAuMDA3MTk3LCAwLjAwNzE5OSwgMC4wMDcyLCAwLjAwNzIsIDAuMDA3MjAxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA3MDk0LCAwLjAwNzEwMywgMC4wMDcxMTYsIDAuMDA3MTE4LCAwLjAwNzEyLCAwLjAwNzEyMSwgMC4wMDcxMjEiLCBcCi0gICAgICAgICAgIjAuMDA3MDY4LCAwLjAwNzA3NywgMC4wMDcwOSwgMC4wMDcwOTIsIDAuMDA3MDkzLCAwLjAwNzA5NCwgMC4wMDcwOTUiLCBcCi0gICAgICAgICAgIjAuMDA3MDY0LCAwLjAwNzA3MywgMC4wMDcwODYsIDAuMDA3MDg4LCAwLjAwNzA5LCAwLjAwNzA5MSwgMC4wMDcwOTEiLCBcCi0gICAgICAgICAgIjAuMDA3MDgsIDAuMDA3MDksIDAuMDA3MTAyLCAwLjAwNzEwNSwgMC4wMDcxMDYsIDAuMDA3MTA3LCAwLjAwNzEwOCIsIFwKLSAgICAgICAgICAiMC4wMDcwOTMsIDAuMDA3MTAyLCAwLjAwNzExNSwgMC4wMDcxMTgsIDAuMDA3MTE5LCAwLjAwNzEyLCAwLjAwNzEyIiwgXAotICAgICAgICAgICIwLjAwNzE1MywgMC4wMDcxNjMsIDAuMDA3MTc1LCAwLjAwNzE3OCwgMC4wMDcxNzksIDAuMDA3MTgsIDAuMDA3MTgxIiwgXAotICAgICAgICAgICIwLjAwNzE5LCAwLjAwNzE5OSwgMC4wMDcyMTEsIDAuMDA3MjE0LCAwLjAwNzIxNiwgMC4wMDcyMTcsIDAuMDA3MjE3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiU04iOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwODE3NCwgMC4wMDgxODEsIDAuMDA4MTksIDAuMDA4MTkyLCAwLjAwODE5OSwgMC4wMDgxOTgsIDAuMDA4MTk0IiwgXAotICAgICAgICAgICIwLjAwODEyNywgMC4wMDgxMzQsIDAuMDA4MTQzLCAwLjAwODE0NSwgMC4wMDgxNDYsIDAuMDA4MTQ4LCAwLjAwODE0OSIsIFwKLSAgICAgICAgICAiMC4wMDgwOTIsIDAuMDA4MDk5LCAwLjAwODEwOCwgMC4wMDgxMDksIDAuMDA4MTEyLCAwLjAwODExMSwgMC4wMDgxMTMiLCBcCi0gICAgICAgICAgIjAuMDA4MDY2LCAwLjAwODA3MywgMC4wMDgwODMsIDAuMDA4MDg1LCAwLjAwODA5LCAwLjAwODA5LCAwLjAwODA4NyIsIFwKLSAgICAgICAgICAiMC4wMDgwNTgsIDAuMDA4MDY1LCAwLjAwODA3NSwgMC4wMDgwNzcsIDAuMDA4MDc4LCAwLjAwODA3OSwgMC4wMDgwODEiLCBcCi0gICAgICAgICAgIjAuMDA4MDY1LCAwLjAwODA2MiwgMC4wMDgwODMsIDAuMDA4MDg1LCAwLjAwODA4NiwgMC4wMDgwODcsIDAuMDA4MDg4IiwgXAotICAgICAgICAgICIwLjAwODA2NSwgMC4wMDgwNzMsIDAuMDA4MDg0LCAwLjAwODA4NiwgMC4wMDgwODgsIDAuMDA4MDg5LCAwLjAwODA4OSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihzY2FsYXIpIHsKLSAgICAgICAgdmFsdWVzKCIwIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTRSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNDg1OTg7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNDg1MzI7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNDg1OTg7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA1ODIsIDAuMDA1OCwgMC4wMDU3ODYsIDAuMDA1Nzg3LCAwLjAwNTc5NiwgMC4wMDU4MSwgMC4wMDU4MzEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDc1NzcsIDAuMDA3NTIzLCAwLjAwNzUxNywgMC4wMDc1MSwgMC4wMDc1MjcsIDAuMDA3NTY2LCAwLjAwNzYxMiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJTTiA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMTg3NSwgLTAuMDEzNzUsIC0wLjAwMTI1LCAwLjAxMTI1LCAwLjAyMzc1LCAwLjAzMzc1LCAwLjA0MjUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMTg3NSwgLTAuMDEyNSwgMCwgMC4wMTI1LCAwLjAyMjUsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDMxMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAwLCAwLjAxLCAwLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNDM3NSwgLTAuMDMxMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAwLjAwMzc1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjA2MTI1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgLTAuMDA4NzUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA3MTI1LCAtMC4wNjYyNSwgLTAuMDUzNzUsIC0wLjA0MTI1LCAtMC4wMjg3NSwgLTAuMDE4NzUsIC0wLjAxIiwgXAotICAgICAgICAgICItMC4wOCwgLTAuMDc1LCAtMC4wNjI1LCAtMC4wNSwgLTAuMDM3NSwgLTAuMDI3NSwgLTAuMDE4NzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLCAwLjAxMTI1LCAwLjAyMzc1LCAwLjAzLCAwLjA0MjUsIDAuMDUyNSwgMC4wNjc1IiwgXAotICAgICAgICAgICItMC4wMTEyNSwgMCwgMC4wMTI1LCAwLjAyNSwgMC4wMzEyNSwgMC4wNDc1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICItMC4wMTc1LCAtMC4wMTI1LCAwLCAwLjAxMjUsIDAuMDI1LCAwLjAzNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAxODc1LCAtMC4wMDYyNSwgMCwgMC4wMTI1LCAwLjAyMjUsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAsIDAuMDE2MjUsIDAuMDI1IiwgXAotICAgICAgICAgICItMC4wNTI1LCAtMC4wNDEyNSwgLTAuMDI4NzUsIC0wLjAxNjI1LCAtMC4wMSwgMC4wMDYyNSwgMC4wMTUiLCBcCi0gICAgICAgICAgIi0wLjA2MTI1LCAtMC4wNSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAxODc1LCAtMC4wMDg3NSwgMC4wMDYyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiU04iOwotICAgICAgc2RmX2NvbmQgOiAiU04gPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDgxMjUsIDAuMDcsIDAuMDU3NSwgMC4wNDUsIDAuMDMyNSwgMC4wMjI1LCAwLjAxMzc1IiwgXAotICAgICAgICAgICIwLjA5MjUsIDAuMDgxMjUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNDM3NSwgMC4wMjc1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiMC4wOTg3NSwgMC4wOTM3NSwgMC4wNzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNCwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4xMTEyNSwgMC4xLCAwLjA4NzUsIDAuMDc1LCAwLjA2MjUsIDAuMDUyNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4xMTc1LCAwLjExMjUsIDAuMDkzNzUsIDAuMDg3NSwgMC4wNzUsIDAuMDY1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICIwLjEzMzc1LCAwLjEyMjUsIDAuMTEsIDAuMDk3NSwgMC4wOTEyNSwgMC4wODEyNSwgMC4wNzI1IiwgXAotICAgICAgICAgICIwLjE0MjUsIDAuMTMxMjUsIDAuMTE4NzUsIDAuMTA2MjUsIDAuMSwgMC4wOSwgMC4wODc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg3NSwgMC4wNzYyNSwgMC4wNywgMC4wNTc1LCAwLjA1MTI1LCAwLjA0MTI1LCAwLjAzODc1IiwgXAotICAgICAgICAgICIwLjA5ODc1LCAwLjA4NzUsIDAuMDc1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDUyNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4xMTEyNSwgMC4xLCAwLjA4NzUsIDAuMDgxMjUsIDAuMDc1LCAwLjA2NSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiMC4xMTc1LCAwLjExMjUsIDAuMSwgMC4wOTM3NSwgMC4wODEyNSwgMC4wNzc1LCAwLjA2ODc1IiwgXAotICAgICAgICAgICIwLjEzLCAwLjExODc1LCAwLjEwNjI1LCAwLjEsIDAuMDkzNzUsIDAuMDgzNzUsIDAuMDc1IiwgXAotICAgICAgICAgICIwLjE0LCAwLjEyODc1LCAwLjExNjI1LCAwLjExLCAwLjEwMzc1LCAwLjA5Mzc1LCAwLjA4NSIsIFwKLSAgICAgICAgICAiMC4xNDg3NSwgMC4xMzc1LCAwLjEyNSwgMC4xMTg3NSwgMC4xMTI1LCAwLjEwMjUsIDAuMDkzNzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFNJKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA5MTczNTU7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwOTE1MDgzOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDkxNzM1NTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDM3MTcsIDAuMDAzNjg2LCAwLjAwMzY2OCwgMC4wMDM2NTksIDAuMDAzNjUyLCAwLjAwMzY2MSwgMC4wMDM2NjYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDY0MTMsIDAuMDA2Mzk1LCAwLjAwNjM4NSwgMC4wMDYzODEsIDAuMDA2Mzc5LCAwLjAwNjM4MywgMC4wMDYzODYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiU0UmU04iOwotICAgICAgc2RmX2NvbmQgOiAiU0VfRVFfMV9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjA0Mzc1LCAtMC4wMzI1LCAtMC4wMjYyNSwgLTAuMDIsIC0wLjAxMzc1LCAtMC4wMDM3NSwgMC4wMDUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDE1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDYxMjUsIC0wLjA1NjI1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAyMTI1LCAtMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDczNzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjAzMzc1LCAtMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjA4NjI1LCAtMC4wNzUsIC0wLjA2ODc1LCAtMC4wNTYyNSwgLTAuMDU2MjUsIC0wLjA0NjI1LCAtMC4wMzc1IiwgXAotICAgICAgICAgICItMC4wOTYyNSwgLTAuMDkxMjUsIC0wLjA3ODc1LCAtMC4wNzI1LCAtMC4wNjYyNSwgLTAuMDU2MjUsIC0wLjA1Mzc1IiwgXAotICAgICAgICAgICItMC4xMTEyNSwgLTAuMSwgLTAuMDkzNzUsIC0wLjA4NzUsIC0wLjA4MTI1LCAtMC4wNzEyNSwgLTAuMDYyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAwNjI1LCAwLjAwNSwgMC4wMTc1LCAwLjAyMzc1LCAwLjAzNjI1LCAwLjA0NjI1LCAwLjA2MTI1IiwgXAotICAgICAgICAgICItMC4wMTc1LCAtMC4wMDYyNSwgMC4wMDYyNSwgMC4wMTg3NSwgMC4wMjUsIDAuMDQxMjUsIDAuMDUiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTI1LCAwLCAwLjAwNjI1LCAwLjAxODc1LCAwLjAyODc1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDI1LCAtMC4wMTI1LCAwLCAwLjAwNjI1LCAwLjAyMjUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAsIDAuMDE2MjUsIDAuMDI1IiwgXAotICAgICAgICAgICItMC4wNTI1LCAtMC4wNDEyNSwgLTAuMDI4NzUsIC0wLjAyMjUsIC0wLjAxLCAwLCAwLjAxNSIsIFwKLSAgICAgICAgICAiLTAuMDYxMjUsIC0wLjA1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIC0wLjAwODc1LCAwIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJTRSZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJTRV9FUV8xX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY4NzUsIDAuMDYzNzUsIDAuMDUxMjUsIDAuMDQ1LCAwLjAzODc1LCAwLjAyODc1LCAwLjAyIiwgXAotICAgICAgICAgICIwLjA4LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDUsIDAuMDQzNzUsIDAuMDMzNzUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMDkyNSwgMC4wODEyNSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA0NjI1LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIjAuMTA1LCAwLjA5Mzc1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNTg3NSwgMC4wNSIsIFwKLSAgICAgICAgICAiMC4xMTEyNSwgMC4xLCAwLjA5Mzc1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNjUsIDAuMDYyNSIsIFwKLSAgICAgICAgICAiMC4xMjc1LCAwLjExNjI1LCAwLjExLCAwLjA5NzUsIDAuMDkxMjUsIDAuMDgxMjUsIDAuMDcyNSIsIFwKLSAgICAgICAgICAiMC4xNDI1LCAwLjEzMTI1LCAwLjExODc1LCAwLjExMjUsIDAuMTA2MjUsIDAuMDk2MjUsIDAuMDg3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2MjUsIDAuMDU3NSwgMC4wMzg3NSwgMC4wMjYyNSwgMC4wMiwgMC4wMDM3NSwgLTAuMDExMjUiLCBcCi0gICAgICAgICAgIjAuMDczNzUsIDAuMDYyNSwgMC4wNSwgMC4wMzc1LCAwLjAyNSwgMC4wMDg3NSwgMCIsIFwKLSAgICAgICAgICAiMC4wODYyNSwgMC4wNzUsIDAuMDU2MjUsIDAuMDUsIDAuMDM3NSwgMC4wMjEyNSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiMC4wOTI1LCAwLjA4MTI1LCAwLjA2ODc1LCAwLjA1NjI1LCAwLjA0Mzc1LCAwLjAyNzUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMTA1LCAwLjA5Mzc1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNTYyNSwgMC4wNCwgMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMTE1LCAwLjEwMzc1LCAwLjA5MTI1LCAwLjA3ODc1LCAwLjA2NjI1LCAwLjA1LCAwLjA0MTI1IiwgXAotICAgICAgICAgICIwLjEyMzc1LCAwLjExMjUsIDAuMSwgMC4wODc1LCAwLjA3NSwgMC4wNjUsIDAuMDUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFNOKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE2NTMyODsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE1MjUyMjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE2NTMyODsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA2NTMsIDAuMDAwNjUyLCAwLjAwMDY1MiwgMC4wMDA2NTIsIDAuMDAwNjUyLCAwLjAwMDY1MiwgMC4wMDA2NTIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA2NjMsIDAuMDAwNjU1LCAwLjAwMDY1NCwgMC4wMDA2NTQsIDAuMDAwNjU0LCAwLjAwMDY1NCwgMC4wMDA2NTQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiU04iOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFEJiFTRSYhU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1NFX0VRXzBfQU5fU0lfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjExNDYyLCAwLjEyNDM1LCAwLjEzNjcwNywgMC4xNDgyMTcsIDAuMTU4ODIzLCAwLjE3MzUwNywgMC4xODQ4NTciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiByZWNvdmVyeV9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEJiFTRSYhU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1NFX0VRXzBfQU5fU0lfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChyZWNvdmVyeV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDA2MjUsIC0wLjAxNzUsIC0wLjAzLCAtMC4wNDI1LCAtMC4wNTUsIC0wLjA3MTI1LCAtMC4wODYyNSIsIFwKLSAgICAgICAgICAiMC4wMDUsIC0wLjAwNjI1LCAtMC4wMTg3NSwgLTAuMDMxMjUsIC0wLjA0Mzc1LCAtMC4wNjYyNSwgLTAuMDc1IiwgXAotICAgICAgICAgICIwLjAxNzUsIDAuMDA2MjUsIC0wLjAxMjUsIC0wLjAyNSwgLTAuMDM3NSwgLTAuMDUzNzUsIC0wLjA2ODc1IiwgXAotICAgICAgICAgICIwLjAyMzc1LCAwLjAxMjUsIDAsIC0wLjAxMjUsIC0wLjAyNSwgLTAuMDQxMjUsIC0wLjA1NjI1IiwgXAotICAgICAgICAgICIwLjAzNjI1LCAwLjAyNSwgMC4wMTI1LCAwLCAtMC4wMTI1LCAtMC4wMzUsIC0wLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjA1MjUsIDAuMDQxMjUsIDAuMDI4NzUsIDAuMDEsIC0wLjAwMjUsIC0wLjAxODc1LCAtMC4wMjc1IiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDU2MjUsIDAuMDM3NSwgMC4wMjUsIDAuMDEyNSwgLTAuMDAzNzUsIC0wLjAxODc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogcmVtb3ZhbF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEJiFTRSYhU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1NFX0VRXzBfQU5fU0lfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChyZW1vdmFsX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0Mzc1LCAwLjA1NSwgMC4wNjc1LCAwLjA4LCAwLjA5MjUsIDAuMTA4NzUsIDAuMTE3NSIsIFwKLSAgICAgICAgICAiMC4wMzI1LCAwLjA0Mzc1LCAwLjA1NjI1LCAwLjA2ODc1LCAwLjA4MTI1LCAwLjA5NzUsIDAuMTEyNSIsIFwKLSAgICAgICAgICAiMC4wMjYyNSwgMC4wMzc1LCAwLjA1LCAwLjA2MjUsIDAuMDY4NzUsIDAuMDg1LCAwLjEiLCBcCi0gICAgICAgICAgIjAuMDEzNzUsIDAuMDI1LCAwLjAzNzUsIDAuMDUsIDAuMDYyNSwgMC4wNzg3NSwgMC4wODc1IiwgXAotICAgICAgICAgICIwLjAwNzUsIDAuMDE4NzUsIDAuMDMxMjUsIDAuMDQzNzUsIDAuMDUsIDAuMDY2MjUsIDAuMDgxMjUiLCBcCi0gICAgICAgICAgIi0wLjAwODc1LCAwLjAwMjUsIDAuMDE1LCAwLjAyNzUsIDAuMDQsIDAuMDU2MjUsIDAuMDY1IiwgXAotICAgICAgICAgICItMC4wMTc1LCAtMC4wMDYyNSwgMC4wMDYyNSwgMC4wMTg3NSwgMC4wMzEyNSwgMC4wNDc1LCAwLjA1NjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogU0RGRlNSSFFYMSAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChTREZGU1JIUVgxKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuNTU0MDI0OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIGZmIChOMzUsUUJJTlQpIHsKLSAgICBuZXh0X3N0YXRlIDogIigoU0UgU0kpICsgKCFTRSBEKSkiOwotICAgIGNsb2NrZWRfb24gOiAiQ0siOwotICAgIGNsZWFyIDogIighUk4pIjsKLSAgICBwcmVzZXQgOiAiKCFTTikiOwotICAgIGNsZWFyX3ByZXNldF92YXIxIDogSDsKLSAgfQotICBwaW4oQ0spICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY1NDgwOTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2NTQ1OTc7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjU0ODA5OwotICAgIGNsb2NrIDogdHJ1ZTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDM2NzQsIDAuMDAzNjUxLCAwLjAwMzYzOSwgMC4wMDM2MzYsIDAuMDAzNjQyLCAwLjAwMzY2MywgMC4wMDM2ODIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDkxMDksIDAuMDA5MDg1LCAwLjAwOTA3OCwgMC4wMDkwODgsIDAuMDA5MDk5LCAwLjAwOTE0OSwgMC4wMDkxOTEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFEJlJOJiFTRSYhU0kmU04iOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1JOX0VRXzFfQU5fU0VfRVFfMF9BTl9TSV9FUV8wX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4xNzA1MjMsIDAuMTgwNzQyLCAwLjE5MzY2NywgMC4yMDYzNTYsIDAuMjE4MTE0LCAwLjIzNDkyMSwgMC4yNDc5NjYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjEyMjc3MywgMC4xMzI2NDQsIDAuMTQ1MDg3LCAwLjE1NzM4OCwgMC4xNjg2NTksIDAuMTg0NTMyLCAwLjE5NjQ4OSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwODg5NDI3OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDg4Njk2NTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA4ODk0Mjc7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA0NjQzLCAwLjAwNDYxMSwgMC4wMDQ1OTMsIDAuMDA0NTgzLCAwLjAwNDU3NywgMC4wMDQ1NzcsIDAuMDA0NTg2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA2MjY2LCAwLjAwNjI0NywgMC4wMDYyMzUsIDAuMDA2MjI5LCAwLjAwNjIyNiwgMC4wMDYyMjYsIDAuMDA2MjMzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlJOJiFTRSZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJSTl9FUV8xX0FOX1NFX0VRXzBfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wNDM3NSwgLTAuMDM4NzUsIC0wLjAyNjI1LCAtMC4wMiwgLTAuMDEzNzUsIC0wLjAwMzc1LCAwLjAwNSIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAxODc1LCAtMC4wMDg3NSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA2NzUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAyMTI1LCAtMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wNzM3NSwgLTAuMDY4NzUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjAzMzc1LCAtMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjA4NjI1LCAtMC4wNzUsIC0wLjA2ODc1LCAtMC4wNjI1LCAtMC4wNSwgLTAuMDQ2MjUsIC0wLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjEwMjUsIC0wLjA5MTI1LCAtMC4wODUsIC0wLjA3MjUsIC0wLjA2NjI1LCAtMC4wNTYyNSwgLTAuMDUzNzUiLCBcCi0gICAgICAgICAgIi0wLjExMTI1LCAtMC4xMDYyNSwgLTAuMDkzNzUsIC0wLjA4NzUsIC0wLjA4MTI1LCAtMC4wNzEyNSwgLTAuMDYyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAsIDAuMDExMjUsIDAuMDE3NSwgMC4wMywgMC4wNDI1LCAwLjA1ODc1LCAwLjA2NzUiLCBcCi0gICAgICAgICAgIi0wLjAxMTI1LCAwLCAwLjAxMjUsIDAuMDI1LCAwLjAzMTI1LCAwLjA0NzUsIDAuMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDE3NSwgLTAuMDEyNSwgMCwgMC4wMTI1LCAwLjAyNSwgMC4wNDEyNSwgMC4wNSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAxODc1LCAtMC4wMDYyNSwgMC4wMDYyNSwgMC4wMTI1LCAwLjAyODc1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDI1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMC4wMDYyNSwgMC4wMjI1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wNDYyNSwgLTAuMDQxMjUsIC0wLjAyODc1LCAtMC4wMTYyNSwgLTAuMDAzNzUsIDAuMDEyNSwgMC4wMjEyNSIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNSwgLTAuMDM3NSwgLTAuMDI1LCAtMC4wMTI1LCAtMC4wMDI1LCAwLjAxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlJOJiFTRSZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJSTl9FUV8xX0FOX1NFX0VRXzBfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xLCAwLjA4ODc1LCAwLjA3NjI1LCAwLjA2Mzc1LCAwLjA1MTI1LCAwLjAzNSwgMC4wMjYyNSIsIFwKLSAgICAgICAgICAiMC4xMTEyNSwgMC4wOTM3NSwgMC4wODEyNSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA0NjI1LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIjAuMTE3NSwgMC4xMDYyNSwgMC4wOTM3NSwgMC4wODEyNSwgMC4wNjg3NSwgMC4wNTg3NSwgMC4wNSIsIFwKLSAgICAgICAgICAiMC4xMywgMC4xMTg3NSwgMC4xMDYyNSwgMC4wOTM3NSwgMC4wODEyNSwgMC4wNjUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIjAuMTQyNSwgMC4xMzEyNSwgMC4xMTI1LCAwLjEsIDAuMDkzNzUsIDAuMDc3NSwgMC4wNjg3NSIsIFwKLSAgICAgICAgICAiMC4xNTI1LCAwLjE0MTI1LCAwLjEyODc1LCAwLjExNjI1LCAwLjEwMzc1LCAwLjA5Mzc1LCAwLjA4NSIsIFwKLSAgICAgICAgICAiMC4xNjc1LCAwLjE1NjI1LCAwLjE0Mzc1LCAwLjEzMTI1LCAwLjExODc1LCAwLjEwMjUsIDAuMDkzNzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjg3NSwgMC4wNTc1LCAwLjA0NSwgMC4wMzI1LCAwLjAyLCAwLjAwMzc1LCAtMC4wMTEyNSIsIFwKLSAgICAgICAgICAiMC4wNzM3NSwgMC4wNjI1LCAwLjA1LCAwLjAzNzUsIDAuMDI1LCAwLjAwODc1LCAwIiwgXAotICAgICAgICAgICIwLjA4NjI1LCAwLjA3NSwgMC4wNjI1LCAwLjA1LCAwLjAzNzUsIDAuMDIxMjUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMDk4NzUsIDAuMDg3NSwgMC4wNjg3NSwgMC4wNTYyNSwgMC4wNDM3NSwgMC4wMjc1LCAwLjAxODc1IiwgXAotICAgICAgICAgICIwLjEwNSwgMC4wOTM3NSwgMC4wODEyNSwgMC4wNjg3NSwgMC4wNTYyNSwgMC4wNCwgMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMTIxMjUsIDAuMTEsIDAuMDkxMjUsIDAuMDc4NzUsIDAuMDY2MjUsIDAuMDUsIDAuMDQxMjUiLCBcCi0gICAgICAgICAgIjAuMTMsIDAuMTE4NzUsIDAuMTA2MjUsIDAuMDkzNzUsIDAuMDgxMjUsIDAuMDY1LCAwLjA1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihRKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMjUwNzI3OwotICAgIGZ1bmN0aW9uIDogIk4zNSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3NlbnNlIDogbm9uX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiByaXNpbmdfZWRnZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTUzMDU4LCAwLjE3NzYzMiwgMC4zMTY2MzIsIDAuNDM5Mjg5LCAwLjYwMjk0LCAwLjkyOTkyLCAxLjEzNDQ3IiwgXAotICAgICAgICAgICIwLjE2MzE4MywgMC4xODc3NTksIDAuMzI2Nzc5LCAwLjQ0OTQxNSwgMC42MTI5NTEsIDAuOTQwMDUsIDEuMTQ0NDUiLCBcCi0gICAgICAgICAgIjAuMTc1OTYxLCAwLjIwMDU0OSwgMC4zMzk1NjcsIDAuNDYyMjUzLCAwLjYyNTc0NCwgMC45NTI4NjEsIDEuMTU3MjUiLCBcCi0gICAgICAgICAgIjAuMTg4NDU2LCAwLjIxMzA0NywgMC4zNTIwNjgsIDAuNDc0NzMsIDAuNjM4MzMyLCAwLjk2NTM0NiwgMS4xNjk3NSIsIFwKLSAgICAgICAgICAiMC4yMDAyMjcsIDAuMjI0ODAzLCAwLjM2MzgyOCwgMC40ODY0NTgsIDAuNjUwMTMsIDAuOTc3MjMxLCAxLjE4MTUyIiwgXAotICAgICAgICAgICIwLjIxNjQ5NSwgMC4yNDEwNzEsIDAuMzgwMDkzLCAwLjUwMjcyOCwgMC42NjYyODcsIDAuOTkzMzkxLCAxLjE5Nzc2IiwgXAotICAgICAgICAgICIwLjIyOTc0MSwgMC4yNTQzMTksIDAuMzkzMzQsIDAuNTE1OTc5LCAwLjY3OTU0MSwgMS4wMDY2NiwgMS4yMTExMiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTIwNTUsIDAuMTQxNzgxLCAwLjQyNzUzOSwgMC42ODAyNjYsIDEuMDE3ODYsIDEuNjkxODgsIDIuMTEzNzMiLCBcCi0gICAgICAgICAgIjAuMDkyMDU1LCAwLjE0MTc5NywgMC40MjcxMzEsIDAuNjgwMjQ2LCAxLjAxNzYzLCAxLjY5MTI5LCAyLjExMzMyIiwgXAotICAgICAgICAgICIwLjA5MjA2MywgMC4xNDE3ODMsIDAuNDI3MDk1LCAwLjY4MDU3NSwgMS4wMTc0NiwgMS42OTE5MywgMi4xMTI1MiIsIFwKLSAgICAgICAgICAiMC4wOTIwNTEsIDAuMTQxNzgxLCAwLjQyNzA5MSwgMC42ODA1NDQsIDEuMDE3OCwgMS42OTE5MSwgMi4xMTA3IiwgXAotICAgICAgICAgICIwLjA5MjA0NywgMC4xNDE3OTQsIDAuNDI3NTU0LCAwLjY4MDI0NCwgMS4wMTU3NiwgMS42OTIyMSwgMi4xMTMzNCIsIFwKLSAgICAgICAgICAiMC4wOTIwNTQsIDAuMTQxNzc1LCAwLjQyNjYyMywgMC42ODAyNDIsIDEuMDE3NjMsIDEuNjkxOTMsIDIuMTEzMjQiLCBcCi0gICAgICAgICAgIjAuMDkyMDU1LCAwLjE0MTc3MiwgMC40MjcxMjksIDAuNjc5NTg5LCAxLjAxNjQ4LCAxLjY4OTg1LCAyLjExMDg2Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE3MDUyOCwgMC4xOTUzMjEsIDAuMzM1NDkyLCAwLjQ1OTE4MywgMC42MjQwMzYsIDAuOTUzNzE3LCAxLjE1OTgxIiwgXAotICAgICAgICAgICIwLjE4MDc0NCwgMC4yMDU1MzksIDAuMzQ1NzMyLCAwLjQ2OTM1MiwgMC42MzQyNDcsIDAuOTYzOTM5LCAxLjE3MDAyIiwgXAotICAgICAgICAgICIwLjE5MzY2NywgMC4yMTg0NiwgMC4zNTg2MzIsIDAuNDgyMzI4LCAwLjY0NzE3MywgMC45NzY4NiwgMS4xODI5NSIsIFwKLSAgICAgICAgICAiMC4yMDYzNTYsIDAuMjMxMTQ5LCAwLjM3MTMyMSwgMC40OTUwMTcsIDAuNjU5ODYxLCAwLjk4OTU0OCwgMS4xOTU2NCIsIFwKLSAgICAgICAgICAiMC4yMTgxMTQsIDAuMjQyOTA2LCAwLjM4MzA3NywgMC41MDY3NjgsIDAuNjcxNjE5LCAxLjAwMTMsIDEuMjA3NCIsIFwKLSAgICAgICAgICAiMC4yMzQ5MjIsIDAuMjU5NzEzLCAwLjM5OTg4NCwgMC41MjM1NzQsIDAuNjg4NDI3LCAxLjAxODExLCAxLjIyNDIiLCBcCi0gICAgICAgICAgIjAuMjQ3OTY2LCAwLjI3Mjc2LCAwLjQxMjkzMywgMC41MzY2MTMsIDAuNzAxNDY0LCAxLjAzMTI1LCAxLjIzNzIzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5MDU3NiwgMC4xMzk2NzUsIDAuNDIwOTY2LCAwLjY3MTM1NCwgMS4wMDM5MSwgMS42Njg0NiwgMi4wODE5MSIsIFwKLSAgICAgICAgICAiMC4wOTA1MTQsIDAuMTM5NjgzLCAwLjQyMTA2MywgMC42NzExNjEsIDEuMDAzOTYsIDEuNjY1NzUsIDIuMDgxNTMiLCBcCi0gICAgICAgICAgIjAuMDkwNTY2LCAwLjEzOTY2NCwgMC40MjA5MzcsIDAuNjcxMzYxLCAxLjAwMzksIDEuNjY3MTcsIDIuMDgyIiwgXAotICAgICAgICAgICIwLjA5MDU2NCwgMC4xMzk2NjgsIDAuNDIwOTMsIDAuNjcxMzU5LCAxLjAwMzkyLCAxLjY2NzEyLCAyLjA4MjA2IiwgXAotICAgICAgICAgICIwLjA5MDU3OSwgMC4xMzk2NzksIDAuNDIwOTY3LCAwLjY3MTM2LCAxLjAwMzksIDEuNjY3ODgsIDIuMDgyIiwgXAotICAgICAgICAgICIwLjA5MDU3OSwgMC4xMzk2NjUsIDAuNDIwOTQ3LCAwLjY3MTM2MywgMS4wMDM4OSwgMS42NjgzMSwgMi4wODE4MiIsIFwKLSAgICAgICAgICAiMC4wOTA1NjEsIDAuMTM5NjgyLCAwLjQyMDk3MiwgMC42NzEzNTgsIDEuMDAyMiwgMS42NjkyNywgMi4wODEwNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogY2xlYXI7Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE5MjE3MSwgMC4yMTY5NjIsIDAuMzU3MTUyLCAwLjQ4MDgzOSwgMC42NDU2NjgsIDAuOTc1MzgxLCAxLjE4MTUiLCBcCi0gICAgICAgICAgIjAuMjAyMDE0LCAwLjIyNjgwNiwgMC4zNjY5OTYsIDAuNDkwNjQ0LCAwLjY1NTUxMywgMC45ODUyMjcsIDEuMTkxMyIsIFwKLSAgICAgICAgICAiMC4yMTQwODUsIDAuMjM4ODY5LCAwLjM3OTA0LCAwLjUwMjczMiwgMC42Njc2MDYsIDAuOTk3NDA1LCAxLjIwMzUyIiwgXAotICAgICAgICAgICIwLjIyNDc0MiwgMC4yNDk1MjYsIDAuMzg5Njk1LCAwLjUxMzM5LCAwLjY3ODI1MSwgMS4wMDc5OSwgMS4yMTQwMiIsIFwKLSAgICAgICAgICAiMC4yMzM3MzIsIDAuMjU4NTIzLCAwLjM5ODcxNSwgMC41MjIzNTksIDAuNjg3MjMxLCAxLjAxNjk0LCAxLjIyMzAyIiwgXAotICAgICAgICAgICIwLjI0NjU2NSwgMC4yNzEzNjUsIDAuNDExNTMxLCAwLjUzNTIyNCwgMC43MDAwNjgsIDEuMDI5NzYsIDEuMjM1ODYiLCBcCi0gICAgICAgICAgIjAuMjU2NjM4LCAwLjI4MTQzMiwgMC40MjE2MTksIDAuNTQ1MzA3LCAwLjcxMDE0MiwgMS4wMzk4NSwgMS4yNDU5MiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTA0NTksIDAuMTM5NTk2LCAwLjQyMTc5OCwgMC42NzEyODUsIDEuMDA0MjgsIDEuNjY2OCwgMi4wODYxNiIsIFwKLSAgICAgICAgICAiMC4wOTA0OTcsIDAuMTM5NTgsIDAuNDIxOTM5LCAwLjY3MTA3NCwgMS4wMDQyNywgMS42NjkwMSwgMi4wODU3OSIsIFwKLSAgICAgICAgICAiMC4wOTA0NjgsIDAuMTM5NTksIDAuNDIxNTkyLCAwLjY3MTI3LCAxLjAwMzk1LCAxLjY2ODk4LCAyLjA4MTAzIiwgXAotICAgICAgICAgICIwLjA5MDQ2OSwgMC4xMzk1ODIsIDAuNDIxMzE4LCAwLjY3MTI2MywgMS4wMDM5OCwgMS42Njk5MSwgMi4wODU3OSIsIFwKLSAgICAgICAgICAiMC4wOTA0NjUsIDAuMTM5NTg4LCAwLjQyMTk0MiwgMC42NzExOTgsIDEuMDA0MjUsIDEuNjY2NjgsIDIuMDg1NzYiLCBcCi0gICAgICAgICAgIjAuMDkwNTMsIDAuMTM5NTc1LCAwLjQyMTI0LCAwLjY3MTI2LCAxLjAwNDEsIDEuNjY4OTIsIDIuMDg1MDciLCBcCi0gICAgICAgICAgIjAuMDkwNTEzLCAwLjEzOTU4OSwgMC40MjE4ODQsIDAuNjcxMjU3LCAxLjAwNDIsIDEuNjY4OTcsIDIuMDg1MDYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiU04iOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHByZXNldDsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTMwMjY3LCAwLjE1NDgzOCwgMC4yOTM4ODcsIDAuNDE2NTU2LCAwLjU4MDE1MSwgMC45MDcxOTQsIDEuMTExNTQiLCBcCi0gICAgICAgICAgIjAuMTM5NDQ4LCAwLjE2NDAwNCwgMC4zMDMwNiwgMC40MjU3MTgsIDAuNTg5MjQ5LCAwLjkxNjQ2MSwgMS4xMjA4IiwgXAotICAgICAgICAgICIwLjE1MTg0OSwgMC4xNzY0MDYsIDAuMzE1NDMsIDAuNDM4MTE2LCAwLjYwMTY4OCwgMC45Mjg2OTIsIDEuMTMzMTMiLCBcCi0gICAgICAgICAgIjAuMTYzNzc4LCAwLjE4ODM0NiwgMC4zMjczMzYsIDAuNDUwMDY0LCAwLjYxMzU1OSwgMC45NDA2MzcsIDEuMTQ1MDUiLCBcCi0gICAgICAgICAgIjAuMTc1NTcxLCAwLjIwMDEyNywgMC4zMzkxNTIsIDAuNDYxODQ0LCAwLjYyNTQyNCwgMC45NTI0MjUsIDEuMTU2ODUiLCBcCi0gICAgICAgICAgIjAuMTkyMTM0LCAwLjIxNjY4OCwgMC4zNTU3MTUsIDAuNDc4NDExLCAwLjY0MTk1NiwgMC45Njg5OTMsIDEuMTczNDEiLCBcCi0gICAgICAgICAgIjAuMjA1MTk0LCAwLjIyOTc2OSwgMC4zNjg3ODgsIDAuNDkxNDQyLCAwLjY1NDk5MiwgMC45ODIwNDIsIDEuMTg2NDYiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDkxNjIzLCAwLjE0MTQ5MSwgMC40Mjc4LCAwLjY4MDU2OCwgMS4wMTc3OSwgMS42OTIyLCAyLjExMjc1IiwgXAotICAgICAgICAgICIwLjA5MTY0OCwgMC4xNDE1ODgsIDAuNDI3NzQ1LCAwLjY4MDU3NSwgMS4wMTc2MSwgMS42OTE1LCAyLjExMzQiLCBcCi0gICAgICAgICAgIjAuMDkxNjY2LCAwLjE0MTU4NSwgMC40Mjc3MzEsIDAuNjgwNTI5LCAxLjAxNzc2LCAxLjY5MTksIDIuMTEzMTQiLCBcCi0gICAgICAgICAgIjAuMDkxNjE4LCAwLjE0MTM3MywgMC40Mjc3NjMsIDAuNjgwNTU3LCAxLjAxNzY0LCAxLjY5MTY3LCAyLjExMjciLCBcCi0gICAgICAgICAgIjAuMDkxNzQ1LCAwLjE0MTUwNywgMC40Mjc3MTUsIDAuNjgwNjU2LCAxLjAxNzc5LCAxLjY5MTk1LCAyLjExMzY0IiwgXAotICAgICAgICAgICIwLjA5MTgyNCwgMC4xNDE1NDQsIDAuNDI3Njk3LCAwLjY4MDU2MiwgMS4wMTc3LCAxLjY5MTkxLCAyLjExMzQzIiwgXAotICAgICAgICAgICIwLjA5MTg1NiwgMC4xNDE1NTUsIDAuNDI3Njg1LCAwLjY4MDQ5NywgMS4wMTc4NiwgMS42OTE0LCAyLjExMDkyIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE3MTQ5LCAwLjE5NjI4OSwgMC4zMzY0NTgsIDAuNDYwMTM4LCAwLjYyNDk5MSwgMC45NTQ2OTcsIDEuMTYwNzkiLCBcCi0gICAgICAgICAgIjAuMTgwNzE2LCAwLjIwNTUwNiwgMC4zNDU2OSwgMC40NjkzNywgMC42MzQyMTQsIDAuOTYzOTMxLCAxLjE3IiwgXAotICAgICAgICAgICIwLjE5MTQzOCwgMC4yMTYyMjcsIDAuMzU2NDEzLCAwLjQ4MDEwNiwgMC42NDQ5MzUsIDAuOTc0NjQ1LCAxLjE4MDgiLCBcCi0gICAgICAgICAgIjAuMjAyMDYxLCAwLjIyNjg1LCAwLjM2NzA1NCwgMC40OTA3MjcsIDAuNjU1NTgzLCAwLjk4NTMwMSwgMS4xOTEzNCIsIFwKLSAgICAgICAgICAiMC4yMTI1OTUsIDAuMjM3Mzg4LCAwLjM3NzU2MywgMC41MDEyMDksIDAuNjY2MDk1LCAwLjk5NTc5OCwgMS4yMDE4OCIsIFwKLSAgICAgICAgICAiMC4yMjg5OSwgMC4yNTM3ODMsIDAuMzkzOTY2LCAwLjUxNzY1LCAwLjY4MjQ5MywgMS4wMTIyLCAxLjIxODI3IiwgXAotICAgICAgICAgICIwLjI0MjgxNywgMC4yNjc2MTEsIDAuNDA3ODAyLCAwLjUzMTQ4MiwgMC42OTYzMjYsIDEuMDI2MDQsIDEuMjMyMTEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDkwNTI0LCAwLjEzOTU2OSwgMC40MjE2LCAwLjY3MTA5MSwgMS4wMDQyMiwgMS42NjYwOCwgMi4wODIxNSIsIFwKLSAgICAgICAgICAiMC4wOTA1MTQsIDAuMTM5NTQ1LCAwLjQyMTg5MywgMC42NzEzMDYsIDEuMDA0MjcsIDEuNjY5MDEsIDIuMDgxMjYiLCBcCi0gICAgICAgICAgIjAuMDkwNDU1LCAwLjEzOTU3NiwgMC40MjE2MzksIDAuNjcxMjU5LCAxLjAwNDI2LCAxLjY2NjIxLCAyLjA4NTk1IiwgXAotICAgICAgICAgICIwLjA5MDQ2MywgMC4xMzk1NSwgMC40MjE4ODgsIDAuNjcxMjYxLCAxLjAwNDAxLCAxLjY2OTkyLCAyLjA4NDg3IiwgXAotICAgICAgICAgICIwLjA5MDUwNCwgMC4xMzk2MDYsIDAuNDIxMjU2LCAwLjY3MTM5NSwgMS4wMDQxNSwgMS42NjkwNSwgMi4wODQ2NiIsIFwKLSAgICAgICAgICAiMC4wOTA0NSwgMC4xMzk1NjQsIDAuNDIxODc2LCAwLjY3MTI1OSwgMS4wMDQxNywgMS42NjY2OSwgMi4wODQ0OCIsIFwKLSAgICAgICAgICAiMC4wOTA1ODYsIDAuMTM5NTk4LCAwLjQyMTg4NywgMC42NzEwMjEsIDEuMDA0MTUsIDEuNjY2NTcsIDIuMDg1NjgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA4NDMyLCAwLjAwODQzNiwgMC4wMDg0NDEsIDAuMDA4NDQyLCAwLjAwODQ0MywgMC4wMDg0NDMsIDAuMDA4NDQyIiwgXAotICAgICAgICAgICIwLjAwODQwNSwgMC4wMDg0MDksIDAuMDA4NDE0LCAwLjAwODQxNSwgMC4wMDg0MTYsIDAuMDA4NDE2LCAwLjAwODQxNiIsIFwKLSAgICAgICAgICAiMC4wMDgzOTEsIDAuMDA4Mzk1LCAwLjAwODQsIDAuMDA4NDAxLCAwLjAwODQwMSwgMC4wMDg0MDIsIDAuMDA4NDAyIiwgXAotICAgICAgICAgICIwLjAwODM4NCwgMC4wMDgzODgsIDAuMDA4MzkzLCAwLjAwODM5NCwgMC4wMDgzOTUsIDAuMDA4Mzk2LCAwLjAwODM5NiIsIFwKLSAgICAgICAgICAiMC4wMDgzODcsIDAuMDA4MzksIDAuMDA4Mzk2LCAwLjAwODM5OCwgMC4wMDgzOTgsIDAuMDA4Mzk4LCAwLjAwODM5OCIsIFwKLSAgICAgICAgICAiMC4wMDg0MiwgMC4wMDg0MjUsIDAuMDA4NDMsIDAuMDA4NDMxLCAwLjAwODQzMywgMC4wMDg0MzMsIDAuMDA4NDM0IiwgXAotICAgICAgICAgICIwLjAwODQyMSwgMC4wMDg0MjUsIDAuMDA4NDMxLCAwLjAwODQzMSwgMC4wMDg0MzIsIDAuMDA4NDMyLCAwLjAwODQzMyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNzg3MywgMC4wMDc4OCwgMC4wMDc4OSwgMC4wMDc4OTEsIDAuMDA3ODkyLCAwLjAwNzg5MywgMC4wMDc4OTQiLCBcCi0gICAgICAgICAgIjAuMDA3ODQ2LCAwLjAwNzg1NCwgMC4wMDc4NjMsIDAuMDA3ODY1LCAwLjAwNzg2NiwgMC4wMDc4NjcsIDAuMDA3ODY3IiwgXAotICAgICAgICAgICIwLjAwNzg0MiwgMC4wMDc4NDksIDAuMDA3ODU4LCAwLjAwNzg2LCAwLjAwNzg2MSwgMC4wMDc4NjIsIDAuMDA3ODYyIiwgXAotICAgICAgICAgICIwLjAwNzg1MSwgMC4wMDc4NTksIDAuMDA3ODY4LCAwLjAwNzg3LCAwLjAwNzg3MSwgMC4wMDc4NzIsIDAuMDA3ODcyIiwgXAotICAgICAgICAgICIwLjAwNzg2NywgMC4wMDc4NzQsIDAuMDA3ODg0LCAwLjAwNzg4NiwgMC4wMDc4ODcsIDAuMDA3ODg4LCAwLjAwNzg4OCIsIFwKLSAgICAgICAgICAiMC4wMDc5MjYsIDAuMDA3OTM0LCAwLjAwNzk0MywgMC4wMDc5NDUsIDAuMDA3OTQ2LCAwLjAwNzk0NywgMC4wMDc5NDciLCBcCi0gICAgICAgICAgIjAuMDA3OTQxLCAwLjAwNzk0OCwgMC4wMDc5NTgsIDAuMDA3OTYsIDAuMDA3OTYxLCAwLjAwNzk2MiwgMC4wMDc5NjIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEwMTYzLCAwLjAxMDE3MSwgMC4wMTAxODIsIDAuMDEwMTg0LCAwLjAxMDE4NSwgMC4wMTAxODYsIDAuMDEwMTg2IiwgXAotICAgICAgICAgICIwLjAxMDEzOSwgMC4wMTAxNDcsIDAuMDEwMTU4LCAwLjAxMDE2LCAwLjAxMDE2MSwgMC4wMTAxNjIsIDAuMDEwMTYyIiwgXAotICAgICAgICAgICIwLjAxMDEzLCAwLjAxMDEzOCwgMC4wMTAxNDksIDAuMDEwMTUxLCAwLjAxMDE1MiwgMC4wMTAxNTMsIDAuMDEwMTUzIiwgXAotICAgICAgICAgICIwLjAxMDEyNywgMC4wMTAxMzUsIDAuMDEwMTQ1LCAwLjAxMDE0OCwgMC4wMTAxNDksIDAuMDEwMTUsIDAuMDEwMTUiLCBcCi0gICAgICAgICAgIjAuMDEwMTM3LCAwLjAxMDE0NSwgMC4wMTAxNTYsIDAuMDEwMTU4LCAwLjAxMDE1OSwgMC4wMTAxNiwgMC4wMTAxNjEiLCBcCi0gICAgICAgICAgIjAuMDEwMTQ1LCAwLjAxMDE1MywgMC4wMTAxNjQsIDAuMDEwMTY2LCAwLjAxMDE2OCwgMC4wMTAxNjksIDAuMDEwMTY5IiwgXAotICAgICAgICAgICIwLjAxMDE1MywgMC4wMTAxNiwgMC4wMTAxNzIsIDAuMDEwMTc0LCAwLjAxMDE3NSwgMC4wMTAxNzYsIDAuMDEwMTc2Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3Bvd2VyKHNjYWxhcikgewotICAgICAgICB2YWx1ZXMoIjAiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEwMzg4LCAwLjAxMDM5MSwgMC4wMTAzOTYsIDAuMDEwMzk2LCAwLjAxMDM5NiwgMC4wMTAzOTUsIDAuMDEwMzk2IiwgXAotICAgICAgICAgICIwLjAxMDM0NiwgMC4wMTAzNSwgMC4wMTAzNTUsIDAuMDEwMzU0LCAwLjAxMDM1NSwgMC4wMTAzNTQsIDAuMDEwMzU1IiwgXAotICAgICAgICAgICIwLjAxMDMyOSwgMC4wMTAzMzIsIDAuMDEwMzM1LCAwLjAxMDMzNiwgMC4wMTAzMzYsIDAuMDEwMzM2LCAwLjAxMDMzNyIsIFwKLSAgICAgICAgICAiMC4wMTAzMjIsIDAuMDEwMzI2LCAwLjAxMDMzLCAwLjAxMDMzMSwgMC4wMTAzMzEsIDAuMDEwMzMxLCAwLjAxMDMzMSIsIFwKLSAgICAgICAgICAiMC4wMTAzMjMsIDAuMDEwMzI3LCAwLjAxMDMzLCAwLjAxMDMzMiwgMC4wMTAzMzIsIDAuMDEwMzMyLCAwLjAxMDMzMiIsIFwKLSAgICAgICAgICAiMC4wMTAzMzcsIDAuMDEwMzQxLCAwLjAxMDM0NiwgMC4wMTAzNDcsIDAuMDEwMzQ3LCAwLjAxMDM0OSwgMC4wMTAzNDkiLCBcCi0gICAgICAgICAgIjAuMDEwMzUyLCAwLjAxMDM1NiwgMC4wMTAzNjIsIDAuMDEwMzYyLCAwLjAxMDM2MSwgMC4wMTAzNjMsIDAuMDEwMzYyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA3MjY0LCAwLjAwNzI3MiwgMC4wMDcyODMsIDAuMDA3Mjg1LCAwLjAwNzI4NywgMC4wMDcyODgsIDAuMDA3Mjg4IiwgXAotICAgICAgICAgICIwLjAwNzIxMiwgMC4wMDcyMiwgMC4wMDcyMzIsIDAuMDA3MjM0LCAwLjAwNzIzNSwgMC4wMDcyMzYsIDAuMDA3MjM2IiwgXAotICAgICAgICAgICIwLjAwNzE4NSwgMC4wMDcxOTMsIDAuMDA3MjA0LCAwLjAwNzIwNywgMC4wMDcyMDgsIDAuMDA3MjA5LCAwLjAwNzIwOSIsIFwKLSAgICAgICAgICAiMC4wMDcxNjksIDAuMDA3MTc3LCAwLjAwNzE4OCwgMC4wMDcxOSwgMC4wMDcxOTEsIDAuMDA3MTkyLCAwLjAwNzE5MiIsIFwKLSAgICAgICAgICAiMC4wMDcxNTYsIDAuMDA3MTY0LCAwLjAwNzE3NSwgMC4wMDcxNzcsIDAuMDA3MTc5LCAwLjAwNzE4LCAwLjAwNzE4IiwgXAotICAgICAgICAgICIwLjAwNzEzOSwgMC4wMDcxNDcsIDAuMDA3MTU4LCAwLjAwNzE2LCAwLjAwNzE2MiwgMC4wMDcxNjMsIDAuMDA3MTYzIiwgXAotICAgICAgICAgICIwLjAwNzE0LCAwLjAwNzE0OCwgMC4wMDcxNiwgMC4wMDcxNjIsIDAuMDA3MTYzLCAwLjAwNzE2NCwgMC4wMDcxNjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFJOKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA1ODYzNjk7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNTg2MTY3OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDU4NjM2OTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA3NzcsIDAuMDAwNzU0LCAwLjAwMDc0NSwgMC4wMDA3NDksIDAuMDAwNzU5LCAwLjAwMDc4MiwgMC4wMDA4MDMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDI1MDQsIDAuMDAyNDg2LCAwLjAwMjQ4LCAwLjAwMjQ4NiwgMC4wMDI0OTQsIDAuMDAyNTE2LCAwLjAwMjUzMyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQmIVNFJiFTSSZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fU0VfRVFfMF9BTl9TSV9FUV8wX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4xOTIxNzEsIDAuMjAyMDE0LCAwLjIxNDA4NSwgMC4yMjQ3NDIsIDAuMjMzNzMyLCAwLjI0NjU2NSwgMC4yNTY2MzgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiByZWNvdmVyeV9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlNOIjsKLSAgICAgIHNkZl9jb25kIDogIlNOID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHJlY292ZXJ5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2MjUsIDAuMDUxMjUsIDAuMDMyNSwgMC4wMiwgMC4wMDc1LCAtMC4wMDg3NSwgLTAuMDE3NSIsIFwKLSAgICAgICAgICAiMC4wNjc1LCAwLjA1NjI1LCAwLjA0Mzc1LCAwLjAzMTI1LCAwLjAxODc1LCAwLjAwMjUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICIwLjA4LCAwLjA2ODc1LCAwLjA1NjI1LCAwLjA0Mzc1LCAwLjAzMTI1LCAwLjAxNSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiMC4wOTI1LCAwLjA4MTI1LCAwLjA2ODc1LCAwLjA1NjI1LCAwLjA0Mzc1LCAwLjAyNzUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4xMDUsIDAuMDkzNzUsIDAuMDgxMjUsIDAuMDYyNSwgMC4wNSwgMC4wNCwgMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMTE1LCAwLjEwMzc1LCAwLjA5MTI1LCAwLjA3ODc1LCAwLjA2NjI1LCAwLjA1LCAwLjA0MTI1IiwgXAotICAgICAgICAgICIwLjEzLCAwLjExODc1LCAwLjEsIDAuMDg3NSwgMC4wNzUsIDAuMDU4NzUsIDAuMDUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiU04iOwotICAgICAgdGltaW5nX3R5cGUgOiByZWNvdmVyeV9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEJiFTRSYhU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1NFX0VRXzBfQU5fU0lfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChyZWNvdmVyeV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzUsIDAuMDgsIDAuMDkyNSwgMC4wOTg3NSwgMC4xMTEyNSwgMC4xMjc1LCAwLjE0MjUiLCBcCi0gICAgICAgICAgIjAuMDYzNzUsIDAuMDc1LCAwLjA4MTI1LCAwLjA5Mzc1LCAwLjEsIDAuMTE2MjUsIDAuMTMxMjUiLCBcCi0gICAgICAgICAgIjAuMDU3NSwgMC4wNjI1LCAwLjA3NSwgMC4wODEyNSwgMC4wOTM3NSwgMC4xMSwgMC4xMjUiLCBcCi0gICAgICAgICAgIjAuMDUxMjUsIDAuMDU2MjUsIDAuMDY4NzUsIDAuMDgxMjUsIDAuMDg3NSwgMC4xMDM3NSwgMC4xMTg3NSIsIFwKLSAgICAgICAgICAiMC4wNDUsIDAuMDU2MjUsIDAuMDYyNSwgMC4wNzUsIDAuMDgxMjUsIDAuMDk3NSwgMC4xMTI1IiwgXAotICAgICAgICAgICIwLjA0MTI1LCAwLjA0NjI1LCAwLjA1ODc1LCAwLjA3MTI1LCAwLjA3NzUsIDAuMDkzNzUsIDAuMTA4NzUiLCBcCi0gICAgICAgICAgIjAuMDM4NzUsIDAuMDQzNzUsIDAuMDU2MjUsIDAuMDYyNSwgMC4wNzUsIDAuMDkxMjUsIDAuMSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJlbW92YWxfcmlzaW5nOwotICAgICAgd2hlbiA6ICJTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJTTiA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChyZW1vdmFsX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMDYyNSwgLTAuMDAxMjUsIDAuMDExMjUsIDAuMDIzNzUsIDAuMDM2MjUsIDAuMDUyNSwgMC4wNjEyNSIsIFwKLSAgICAgICAgICAiLTAuMDE3NSwgLTAuMDA2MjUsIDAuMDA2MjUsIDAuMDE4NzUsIDAuMDI1LCAwLjA0MTI1LCAwLjA1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDI1LCAtMC4wMDYyNSwgMCwgMC4wMTI1LCAwLjAyODc1LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAsIDAuMDE2MjUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjA1NSwgLTAuMDQzNzUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAuMDEsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjA2NSwgLTAuMDUzNzUsIC0wLjA0MTI1LCAtMC4wMjg3NSwgLTAuMDIyNSwgLTAuMDA2MjUsIDAuMDA4NzUiLCBcCi0gICAgICAgICAgIi0wLjA3Mzc1LCAtMC4wNjg3NSwgLTAuMDU2MjUsIC0wLjA0Mzc1LCAtMC4wMzEyNSwgLTAuMDE1LCAtMC4wMDYyNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oU0UpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTYyOTU4OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTYyODg3OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTYyOTU4OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNTg3NywgMC4wMDU4NTUsIDAuMDA1ODQ4LCAwLjAwNTg0OSwgMC4wMDU4NjEsIDAuMDA1ODc3LCAwLjAwNTg5NCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNzM2MywgMC4wMDczMDksIDAuMDA3MzAyLCAwLjAwNzI5MiwgMC4wMDczMDgsIDAuMDA3MzQ1LCAwLjAwNzM4OSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJSTiZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJSTl9FUV8xX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDEyNSwgLTAuMDAxMjUsIDAuMDExMjUsIDAuMDIzNzUsIDAuMDMsIDAuMDQ2MjUsIDAuMDU1IiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDEyNSwgMCwgMC4wMTI1LCAwLjAxODc1LCAwLjAzNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAyNSwgLTAuMDEyNSwgMCwgMC4wMTI1LCAwLjAyMjUsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDM3NSwgLTAuMDI1LCAtMC4wMTI1LCAwLCAwLjAxNjI1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjA0Mzc1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLjAxLCAwLjAxODc1IiwgXAotICAgICAgICAgICItMC4wNjUsIC0wLjA1Mzc1LCAtMC4wNDEyNSwgLTAuMDI4NzUsIC0wLjAxNjI1LCAtMC4wMDYyNSwgMC4wMDg3NSIsIFwKLSAgICAgICAgICAiLTAuMDczNzUsIC0wLjA2MjUsIC0wLjA1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAxNSwgMCIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2MjUsIDAuMDExMjUsIDAuMDIzNzUsIDAuMDM2MjUsIDAuMDQ4NzUsIDAuMDY1LCAwLjA3Mzc1IiwgXAotICAgICAgICAgICItMC4wMDUsIDAuMDA2MjUsIDAuMDE4NzUsIDAuMDMxMjUsIDAuMDM3NSwgMC4wNTM3NSwgMC4wNjI1IiwgXAotICAgICAgICAgICItMC4wMTc1LCAtMC4wMDYyNSwgMC4wMDYyNSwgMC4wMTg3NSwgMC4wMzEyNSwgMC4wNDEyNSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLjAwNjI1LCAwLjAxODc1LCAwLjAzNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAyNSwgLTAuMDEyNSwgMCwgMC4wMTI1LCAwLjAyMjUsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDQ2MjUsIC0wLjAzNSwgLTAuMDIyNSwgLTAuMDEsIC0wLjAwMzc1LCAwLjAxMjUsIDAuMDIxMjUiLCBcCi0gICAgICAgICAgIi0wLjA1NSwgLTAuMDQzNzUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAxMjUsIDAuMDAzNzUsIDAuMDEyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiUk4mU04iOwotICAgICAgc2RmX2NvbmQgOiAiUk5fRVFfMV9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5Mzc1LCAwLjA4MjUsIDAuMDYzNzUsIDAuMDUxMjUsIDAuMDQ1LCAwLjAyODc1LCAwLjAyIiwgXAotICAgICAgICAgICIwLjA5ODc1LCAwLjA4NzUsIDAuMDc1LCAwLjA2MjUsIDAuMDUsIDAuMDQsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMTExMjUsIDAuMSwgMC4wODc1LCAwLjA3NSwgMC4wNjI1LCAwLjA1MjUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMTIzNzUsIDAuMTEyNSwgMC4xLCAwLjA4NzUsIDAuMDc1LCAwLjA2NSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiMC4xMzYyNSwgMC4xMjUsIDAuMTEyNSwgMC4xLCAwLjA4NzUsIDAuMDcxMjUsIDAuMDYyNSIsIFwKLSAgICAgICAgICAiMC4xNTI1LCAwLjE0MTI1LCAwLjEyODc1LCAwLjExNjI1LCAwLjEwMzc1LCAwLjA4NzUsIDAuMDc4NzUiLCBcCi0gICAgICAgICAgIjAuMTY3NSwgMC4xNTYyNSwgMC4xMzc1LCAwLjEyNSwgMC4xMTg3NSwgMC4xMDI1LCAwLjA5Mzc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTEyNSwgMC4xMDEyNSwgMC4wODg3NSwgMC4wNzYyNSwgMC4wNjM3NSwgMC4wNDc1LCAwLjAzODc1IiwgXAotICAgICAgICAgICIwLjEyMzc1LCAwLjExMjUsIDAuMDkzNzUsIDAuMDgxMjUsIDAuMDc1LCAwLjA1ODc1LCAwLjA1IiwgXAotICAgICAgICAgICIwLjEzLCAwLjExODc1LCAwLjEwNjI1LCAwLjA5Mzc1LCAwLjA4MTI1LCAwLjA3MTI1LCAwLjA2MjUiLCBcCi0gICAgICAgICAgIjAuMTQyNSwgMC4xMzEyNSwgMC4xMTI1LCAwLjEsIDAuMDkzNzUsIDAuMDc3NSwgMC4wNjg3NSIsIFwKLSAgICAgICAgICAiMC4xNDg3NSwgMC4xMzc1LCAwLjEyNSwgMC4xMTI1LCAwLjEsIDAuMDgzNzUsIDAuMDc1IiwgXAotICAgICAgICAgICIwLjE1ODc1LCAwLjE0NzUsIDAuMTM1LCAwLjEyMjUsIDAuMTEsIDAuMDkzNzUsIDAuMDg1IiwgXAotICAgICAgICAgICIwLjE2NzUsIDAuMTU2MjUsIDAuMTM3NSwgMC4xMjUsIDAuMTE4NzUsIDAuMTAyNSwgMC4wOTM3NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oU0kpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDkyMzIzNzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA5MjA0MzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA5MjMyMzc7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA0MzY4LCAwLjAwNDMzNiwgMC4wMDQzMTgsIDAuMDA0MzA4LCAwLjAwNDMwMiwgMC4wMDQzMDQsIDAuMDA0MzE3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA2NDc3LCAwLjAwNjQ1OSwgMC4wMDY0NDcsIDAuMDA2NDQxLCAwLjAwNjQzNiwgMC4wMDY0MzYsIDAuMDA2NDQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiUk4mU0UmU04iOwotICAgICAgc2RmX2NvbmQgOiAiUk5fRVFfMV9BTl9TRV9FUV8xX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDQzNzUsIC0wLjAzODc1LCAtMC4wMjYyNSwgLTAuMDIsIC0wLjAxMzc1LCAtMC4wMDM3NSwgMC4wMDUiLCBcCi0gICAgICAgICAgIi0wLjA1NSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAwODc1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDYxMjUsIC0wLjA1NjI1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAyMTI1LCAtMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wNzM3NSwgLTAuMDY4NzUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjAzMzc1LCAtMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjA4NjI1LCAtMC4wNzUsIC0wLjA2ODc1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjA0LCAtMC4wMzc1IiwgXAotICAgICAgICAgICItMC4wOTYyNSwgLTAuMDkxMjUsIC0wLjA3ODc1LCAtMC4wNzI1LCAtMC4wNjYyNSwgLTAuMDU2MjUsIC0wLjA1Mzc1IiwgXAotICAgICAgICAgICItMC4xMTEyNSwgLTAuMSwgLTAuMDkzNzUsIC0wLjA4NzUsIC0wLjA4MTI1LCAtMC4wNzEyNSwgLTAuMDYyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAsIDAuMDA1LCAwLjAxNzUsIDAuMDMsIDAuMDQyNSwgMC4wNTg3NSwgMC4wNjc1IiwgXAotICAgICAgICAgICItMC4wMTEyNSwgMCwgMC4wMTI1LCAwLjAyNSwgMC4wMzEyNSwgMC4wNDc1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICItMC4wMTc1LCAtMC4wMTI1LCAwLCAwLjAxMjUsIDAuMDI1LCAwLjA0MTI1LCAwLjA1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLjAwNjI1LCAwLjAxMjUsIDAuMDI4NzUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMjUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLjAwNjI1LCAwLjAyMjUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjA0NjI1LCAtMC4wNDEyNSwgLTAuMDI4NzUsIC0wLjAxNjI1LCAtMC4wMDM3NSwgMC4wMTI1LCAwLjAyMTI1IiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAxMjUsIDAuMDAzNzUsIDAuMDEyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiUk4mU0UmU04iOwotICAgICAgc2RmX2NvbmQgOiAiUk5fRVFfMV9BTl9TRV9FUV8xX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMSwgMC4wODg3NSwgMC4wNywgMC4wNTc1LCAwLjA1MTI1LCAwLjAzNSwgMC4wMjYyNSIsIFwKLSAgICAgICAgICAiMC4xMDUsIDAuMDkzNzUsIDAuMDgxMjUsIDAuMDY4NzUsIDAuMDU2MjUsIDAuMDQ2MjUsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiMC4xMTc1LCAwLjEwNjI1LCAwLjA5Mzc1LCAwLjA4MTI1LCAwLjA2ODc1LCAwLjA1ODc1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjEzLCAwLjExODc1LCAwLjEsIDAuMDg3NSwgMC4wODEyNSwgMC4wNjUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIjAuMTM2MjUsIDAuMTI1LCAwLjExMjUsIDAuMSwgMC4wODc1LCAwLjA3NzUsIDAuMDY4NzUiLCBcCi0gICAgICAgICAgIjAuMTUyNSwgMC4xNDEyNSwgMC4xMjg3NSwgMC4xMTYyNSwgMC4xMDM3NSwgMC4wOTM3NSwgMC4wODUiLCBcCi0gICAgICAgICAgIjAuMTY3NSwgMC4xNTYyNSwgMC4xMzc1LCAwLjEyNSwgMC4xMTg3NSwgMC4xMDI1LCAwLjA5Mzc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY4NzUsIDAuMDU3NSwgMC4wNDUsIDAuMDMyNSwgMC4wMiwgMC4wMDM3NSwgLTAuMDExMjUiLCBcCi0gICAgICAgICAgIjAuMDczNzUsIDAuMDYyNSwgMC4wNSwgMC4wMzc1LCAwLjAyNSwgMC4wMDg3NSwgMCIsIFwKLSAgICAgICAgICAiMC4wODYyNSwgMC4wNzUsIDAuMDYyNSwgMC4wNSwgMC4wMzc1LCAwLjAyMTI1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICIwLjA5ODc1LCAwLjA4NzUsIDAuMDY4NzUsIDAuMDU2MjUsIDAuMDQzNzUsIDAuMDI3NSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4xMDUsIDAuMDkzNzUsIDAuMDgxMjUsIDAuMDY4NzUsIDAuMDU2MjUsIDAuMDQsIDAuMDI1IiwgXAotICAgICAgICAgICIwLjEyMTI1LCAwLjExLCAwLjA5MTI1LCAwLjA3ODc1LCAwLjA2NjI1LCAwLjA1LCAwLjA0MTI1IiwgXAotICAgICAgICAgICIwLjEzLCAwLjExODc1LCAwLjEwNjI1LCAwLjA5Mzc1LCAwLjA4MTI1LCAwLjA2NSwgMC4wNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oU04pICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTk2MjcxOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTk2MjcxOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTk2MjYxOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDY1MywgMC4wMDA2NTIsIDAuMDAwNjUyLCAwLjAwMDY1MiwgMC4wMDA2NTIsIDAuMDAwNjUyLCAwLjAwMDY1MiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDY1NCwgMC4wMDA2NTQsIDAuMDAwNjU0LCAwLjAwMDY1NCwgMC4wMDA2NTQsIDAuMDAwNjU0LCAwLjAwMDY1NCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQmIVJOJiFTRSYhU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1JOX0VRXzBfQU5fU0VfRVFfMF9BTl9TSV9FUV8wID09IDEnYjEiOwotICAgICAgZmFsbF9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMTMwMjA1LCAwLjEzOTQ0NywgMC4xNTE4NDksIDAuMTYzNzc4LCAwLjE3NTU3LCAwLjE5MjEzNCwgMC4yMDUxOTQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiByZWNvdmVyeV9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlJOIjsKLSAgICAgIHNkZl9jb25kIDogIlJOID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHJlY292ZXJ5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLCAtMC4wMTEyNSwgLTAuMDIzNzUsIC0wLjAzNjI1LCAtMC4wNDg3NSwgLTAuMDY1LCAtMC4wOCIsIFwKLSAgICAgICAgICAiMC4wMTEyNSwgMCwgLTAuMDEyNSwgLTAuMDI1LCAtMC4wNDM3NSwgLTAuMDYsIC0wLjA3NSIsIFwKLSAgICAgICAgICAiMC4wMjM3NSwgMC4wMTI1LCAtMC4wMDYyNSwgLTAuMDE4NzUsIC0wLjAzMTI1LCAtMC4wNDc1LCAtMC4wNjI1IiwgXAotICAgICAgICAgICIwLjAzLCAwLjAxODc1LCAwLjAwNjI1LCAtMC4wMDYyNSwgLTAuMDE4NzUsIC0wLjAzNSwgLTAuMDUiLCBcCi0gICAgICAgICAgIjAuMDQyNSwgMC4wMzEyNSwgMC4wMTg3NSwgMC4wMDYyNSwgLTAuMDA2MjUsIC0wLjAyODc1LCAtMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4wNTg3NSwgMC4wNDc1LCAwLjAzNSwgMC4wMjI1LCAwLjAxLCAtMC4wMTI1LCAtMC4wMjc1IiwgXAotICAgICAgICAgICIwLjA3Mzc1LCAwLjA2MjUsIDAuMDUsIDAuMDMxMjUsIDAuMDE4NzUsIDAuMDAyNSwgLTAuMDEyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJlbW92YWxfcmlzaW5nOwotICAgICAgd2hlbiA6ICJSTiI7Ci0gICAgICBzZGZfY29uZCA6ICJSTiA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChyZW1vdmFsX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0Mzc1LCAwLjA1NSwgMC4wNjc1LCAwLjA4LCAwLjA5MjUsIDAuMTA4NzUsIDAuMTIzNzUiLCBcCi0gICAgICAgICAgIjAuMDMyNSwgMC4wNDM3NSwgMC4wNTYyNSwgMC4wNjg3NSwgMC4wODEyNSwgMC4wOTc1LCAwLjExMjUiLCBcCi0gICAgICAgICAgIjAuMDI2MjUsIDAuMDMxMjUsIDAuMDUsIDAuMDYyNSwgMC4wNjg3NSwgMC4wOTEyNSwgMC4xIiwgXAotICAgICAgICAgICIwLjAxMzc1LCAwLjAyNSwgMC4wMzc1LCAwLjA1LCAwLjA2MjUsIDAuMDc4NzUsIDAuMDkzNzUiLCBcCi0gICAgICAgICAgIjAuMDAxMjUsIDAuMDEyNSwgMC4wMjUsIDAuMDM3NSwgMC4wNSwgMC4wNjYyNSwgMC4wODEyNSIsIFwKLSAgICAgICAgICAiLTAuMDA4NzUsIDAuMDAyNSwgMC4wMTUsIDAuMDI3NSwgMC4wMzM3NSwgMC4wNTYyNSwgMC4wNjUiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTI1LCAwLCAwLjAxMjUsIDAuMDI1LCAwLjA0MTI1LCAwLjA1NjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogU0RGRlNSSFFYMiAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChTREZGU1JIUVgyKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuNTk3Njg2OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIGZmIChOMzUsUUJJTlQpIHsKLSAgICBuZXh0X3N0YXRlIDogIigoU0UgU0kpICsgKCFTRSBEKSkiOwotICAgIGNsb2NrZWRfb24gOiAiQ0siOwotICAgIGNsZWFyIDogIighUk4pIjsKLSAgICBwcmVzZXQgOiAiKCFTTikiOwotICAgIGNsZWFyX3ByZXNldF92YXIxIDogSDsKLSAgfQotICBwaW4oQ0spICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYyODM4NTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MjgxMzQ7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjI4Mzg1OwotICAgIGNsb2NrIDogdHJ1ZTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDM3MzIsIDAuMDAzNzEsIDAuMDAzNjk4LCAwLjAwMzY5NCwgMC4wMDM3MDMsIDAuMDAzNzIzLCAwLjAwMzc0MiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwOTA4LCAwLjAwOTA1NCwgMC4wMDkwNTQsIDAuMDA5MDY5LCAwLjAwOTA2OCwgMC4wMDkxMjksIDAuMDA5MTU3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRCZSTiYhU0UmIVNJJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9STl9FUV8xX0FOX1NFX0VRXzBfQU5fU0lfRVFfMF9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMTU4MzAyLCAwLjE2ODU4NywgMC4xODE0MDgsIDAuMTk0MTExLCAwLjIwNTk0MywgMC4yMjI3NjgsIDAuMjM1NzY2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4xMjM2MTIsIDAuMTMzNTIxLCAwLjE0NjA4NCwgMC4xNTgyMjksIDAuMTY5NDk5LCAwLjE4NTI4NSwgMC4xOTczODciKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEQpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDkyMzcyNDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA5MjE0MzQ7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwOTIzNzI0OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNDcyNCwgMC4wMDQ2OTEsIDAuMDA0NjczLCAwLjAwNDY2NCwgMC4wMDQ2NTcsIDAuMDA0NjU5LCAwLjAwNDY2NyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNjE5NSwgMC4wMDYxNzcsIDAuMDA2MTY0LCAwLjAwNjE1OSwgMC4wMDYxNTQsIDAuMDA2MTU1LCAwLjAwNjE1OCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJSTiYhU0UmU04iOwotICAgICAgc2RmX2NvbmQgOiAiUk5fRVFfMV9BTl9TRV9FUV8wX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDQzNzUsIC0wLjAzODc1LCAtMC4wMjYyNSwgLTAuMDIsIC0wLjAxMzc1LCAtMC4wMDM3NSwgMC4wMDUiLCBcCi0gICAgICAgICAgIi0wLjA1NSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAwODc1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDYxMjUsIC0wLjA1NjI1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAyMTI1LCAtMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wNzM3NSwgLTAuMDY4NzUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjAzMzc1LCAtMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjA4NjI1LCAtMC4wNzUsIC0wLjA2ODc1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjA0LCAtMC4wMzc1IiwgXAotICAgICAgICAgICItMC4xMDI1LCAtMC4wOTEyNSwgLTAuMDg1LCAtMC4wNzI1LCAtMC4wNjYyNSwgLTAuMDU2MjUsIC0wLjA0NzUiLCBcCi0gICAgICAgICAgIi0wLjExMTI1LCAtMC4xLCAtMC4wOTM3NSwgLTAuMDg3NSwgLTAuMDgxMjUsIC0wLjA3MTI1LCAtMC4wNjI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMCwgMC4wMTEyNSwgMC4wMjM3NSwgMC4wMywgMC4wNDI1LCAwLjA1ODc1LCAwLjA2NzUiLCBcCi0gICAgICAgICAgIi0wLjAxMTI1LCAwLCAwLjAxMjUsIDAuMDI1LCAwLjAzNzUsIDAuMDQ3NSwgMC4wNjI1IiwgXAotICAgICAgICAgICItMC4wMTc1LCAtMC4wMDYyNSwgMC4wMDYyNSwgMC4wMTI1LCAwLjAyNSwgMC4wNDEyNSwgMC4wNSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAxODc1LCAtMC4wMDYyNSwgMC4wMDYyNSwgMC4wMTg3NSwgMC4wMjg3NSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAyNSwgLTAuMDEyNSwgMCwgMC4wMDYyNSwgMC4wMjI1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wNDYyNSwgLTAuMDM1LCAtMC4wMjI1LCAtMC4wMTYyNSwgLTAuMDAzNzUsIDAuMDEyNSwgMC4wMjEyNSIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNDM3NSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDEyNSwgMC4wMDM3NSwgMC4wMTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJSTiYhU0UmU04iOwotICAgICAgc2RmX2NvbmQgOiAiUk5fRVFfMV9BTl9TRV9FUV8wX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMSwgMC4wODg3NSwgMC4wNzYyNSwgMC4wNjM3NSwgMC4wNTEyNSwgMC4wNDEyNSwgMC4wMzI1IiwgXAotICAgICAgICAgICIwLjExMTI1LCAwLjEsIDAuMDg3NSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA0NjI1LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIjAuMTIzNzUsIDAuMTEyNSwgMC4wOTM3NSwgMC4wODEyNSwgMC4wNjg3NSwgMC4wNTg3NSwgMC4wNSIsIFwKLSAgICAgICAgICAiMC4xMywgMC4xMTg3NSwgMC4xMDYyNSwgMC4wOTM3NSwgMC4wODEyNSwgMC4wNzEyNSwgMC4wNjI1IiwgXAotICAgICAgICAgICIwLjE0MjUsIDAuMTMxMjUsIDAuMTE4NzUsIDAuMTA2MjUsIDAuMDkzNzUsIDAuMDc3NSwgMC4wNjg3NSIsIFwKLSAgICAgICAgICAiMC4xNTg3NSwgMC4xNDc1LCAwLjEyODc1LCAwLjExNjI1LCAwLjExLCAwLjA5Mzc1LCAwLjA4NSIsIFwKLSAgICAgICAgICAiMC4xNjc1LCAwLjE1NjI1LCAwLjE0Mzc1LCAwLjEzMTI1LCAwLjExODc1LCAwLjEwODc1LCAwLjEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjg3NSwgMC4wNTc1LCAwLjA0NSwgMC4wMzI1LCAwLjAyLCAwLjAwMzc1LCAtMC4wMTEyNSIsIFwKLSAgICAgICAgICAiMC4wOCwgMC4wNjg3NSwgMC4wNSwgMC4wMzc1LCAwLjAyNSwgMC4wMDg3NSwgMCIsIFwKLSAgICAgICAgICAiMC4wODYyNSwgMC4wNzUsIDAuMDYyNSwgMC4wNSwgMC4wMzc1LCAwLjAyMTI1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICIwLjA5ODc1LCAwLjA4NzUsIDAuMDc1LCAwLjA2MjUsIDAuMDUsIDAuMDI3NSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4xMDUsIDAuMDkzNzUsIDAuMDgxMjUsIDAuMDY4NzUsIDAuMDU2MjUsIDAuMDQsIDAuMDI1IiwgXAotICAgICAgICAgICIwLjEyMTI1LCAwLjExLCAwLjA5NzUsIDAuMDg1LCAwLjA3MjUsIDAuMDUsIDAuMDQxMjUiLCBcCi0gICAgICAgICAgIjAuMTMsIDAuMTE4NzUsIDAuMTA2MjUsIDAuMDkzNzUsIDAuMDgxMjUsIDAuMDY1LCAwLjA1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihRKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuNTE1OTg4OwotICAgIGZ1bmN0aW9uIDogIk4zNSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3NlbnNlIDogbm9uX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiByaXNpbmdfZWRnZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTQwNjU3LCAwLjI0Mjk1NSwgMC4zMjQyOTEsIDAuNDI1OTQ0LCAwLjUyNzYxNSwgMC42MjkzNDQsIDAuNzMxMDAxIiwgXAotICAgICAgICAgICIwLjE1MDc2MSwgMC4yNTMwNTksIDAuMzM0Mzk1LCAwLjQzNjA0NywgMC41Mzc3MDYsIDAuNjM5NDIzLCAwLjc0MTEwMSIsIFwKLSAgICAgICAgICAiMC4xNjM1NjEsIDAuMjY1ODIsIDAuMzQ3MTc4LCAwLjQ0ODgxNCwgMC41NTA1NTgsIDAuNjUyMTk4LCAwLjc1Mzg3MyIsIFwKLSAgICAgICAgICAiMC4xNzYwNTUsIDAuMjc4MzQxLCAwLjM1OTY3MiwgMC40NjEzMjIsIDAuNTYzMDA5LCAwLjY2NDU3MywgMC43NjYzODYiLCBcCi0gICAgICAgICAgIjAuMTg3ODQsIDAuMjkwMTM4LCAwLjM3MTQ3NCwgMC40NzMxMjYsIDAuNTc0ODQ3LCAwLjY3NjQ4LCAwLjc3ODE4MSIsIFwKLSAgICAgICAgICAiMC4yMDQwODQsIDAuMzA2MzQ5LCAwLjM4NzY5MiwgMC40ODkzNDcsIDAuNTkxMDg5LCAwLjY5Mjc0NywgMC43OTQ0MDUiLCBcCi0gICAgICAgICAgIjAuMjE3MzE4LCAwLjMxOTYzLCAwLjQwMDkyOSwgMC41MDI2MjksIDAuNjA0MzA0LCAwLjcwNTk5NiwgMC44MDc2OTIiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDUyNDUsIDAuMjU4Mzc3LCAwLjQyNjAwNiwgMC42MzYxODYsIDAuODQ3MTg1LCAxLjA1Nzg3LCAxLjI2ODIxIiwgXAotICAgICAgICAgICIwLjA1MjQ5MywgMC4yNTgzOCwgMC40MjYwMiwgMC42MzYyLCAwLjg0NzUwMywgMS4wNTc4NywgMS4yNjgxOCIsIFwKLSAgICAgICAgICAiMC4wNTI0OTcsIDAuMjU4Mzc3LCAwLjQyNTg3LCAwLjYzNjI5NSwgMC44NDc1MjEsIDEuMDU3ODMsIDEuMjY4MjEiLCBcCi0gICAgICAgICAgIjAuMDUyNDk0LCAwLjI1ODI1OCwgMC40MjYwMTksIDAuNjM2NzcyLCAwLjg0NzMxNiwgMS4wNTcxNiwgMS4yNjgxOSIsIFwKLSAgICAgICAgICAiMC4wNTI0NDcsIDAuMjU4Mzc3LCAwLjQyNjAwOSwgMC42MzYxODgsIDAuODQ2MDcsIDEuMDU3NjYsIDEuMjY4MTgiLCBcCi0gICAgICAgICAgIjAuMDUyNDg3LCAwLjI1ODM3NSwgMC40MjYwMTYsIDAuNjM2ODY4LCAwLjg0NzUxNSwgMS4wNTc4MywgMS4yNjgxNiIsIFwKLSAgICAgICAgICAiMC4wNTI0MjEsIDAuMjU4NTc3LCAwLjQyNTYxMywgMC42MzY3NTIsIDAuODQ3MTYzLCAxLjA1NjQyLCAxLjI2ODE2Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE1ODMwOCwgMC4yNjIzNzcsIDAuMzQ1MTAzLCAwLjQ0ODUxMSwgMC41NTE5MDQsIDAuNjU1MjYxLCAwLjc1ODY2NCIsIFwKLSAgICAgICAgICAiMC4xNjg1ODcsIDAuMjcyNjUsIDAuMzU1MzU2LCAwLjQ1ODc4MywgMC41NjIxNzUsIDAuNjY1NTMzLCAwLjc2ODkzNiIsIFwKLSAgICAgICAgICAiMC4xODE0MDgsIDAuMjg1NDY3LCAwLjM2ODE3LCAwLjQ3MTYsIDAuNTc0OTc0LCAwLjY3ODM0OSwgMC43ODE3NTQiLCBcCi0gICAgICAgICAgIjAuMTk0MTExLCAwLjI5ODE2MiwgMC4zODA4ODcsIDAuNDg0MjkyLCAwLjU4NzY2OSwgMC42OTEwNTYsIDAuNzk0NDQ5IiwgXAotICAgICAgICAgICIwLjIwNTk0MywgMC4zMDk5OTQsIDAuMzkyNzAxLCAwLjQ5NjA4NiwgMC41OTk1MTYsIDAuNzAyODk3LCAwLjgwNjI4MSIsIFwKLSAgICAgICAgICAiMC4yMjI3NjgsIDAuMzI2ODA4LCAwLjQwOTUxMywgMC41MTI5MDksIDAuNjE2MzQzLCAwLjcxOTczNCwgMC44MjMwOTUiLCBcCi0gICAgICAgICAgIjAuMjM1NzY3LCAwLjMzOTgzMywgMC40MjI1NjEsIDAuNTI1OTY4LCAwLjYyOTM3OSwgMC43MzI3MTksIDAuODM2MTIzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1MTc0MywgMC4yNTczMzksIDAuNDI1NzIsIDAuNjM1NTU5LCAwLjg0NTQ2NywgMS4wNTUxNSwgMS4yNjI4MyIsIFwKLSAgICAgICAgICAiMC4wNTE3MzIsIDAuMjU3NDU2LCAwLjQyNDk0LCAwLjYzNTU2NCwgMC44NDQyMjMsIDEuMDU1MTcsIDEuMjYyODIiLCBcCi0gICAgICAgICAgIjAuMDUxNzY1LCAwLjI1NzI1OCwgMC40MjUyLCAwLjYzNTUyOSwgMC44NDUyOTEsIDEuMDU1MSwgMS4yNjI4NiIsIFwKLSAgICAgICAgICAiMC4wNTE3NzYsIDAuMjU3NjYyLCAwLjQyNTczNSwgMC42MzU1MDgsIDAuODQ1MzY3LCAxLjA1NDg0LCAxLjI2MjgzIiwgXAotICAgICAgICAgICIwLjA1MTcyNiwgMC4yNTc2NjUsIDAuNDI1NTU3LCAwLjYzNTMwNiwgMC44NDQyLCAxLjA1NDE5LCAxLjI2MjgiLCBcCi0gICAgICAgICAgIjAuMDUxNzQzLCAwLjI1NzMzNSwgMC40MjQ4NDgsIDAuNjM0MzMsIDAuODQzMTQ2LCAxLjA1Mzk3LCAxLjI2Mjc5IiwgXAotICAgICAgICAgICIwLjA1MTc0LCAwLjI1NzY1OSwgMC40MjU3MjgsIDAuNjM1NTU1LCAwLjg0NTU2NCwgMS4wNTUxNSwgMS4yNjI4NiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogY2xlYXI7Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE4MTExNywgMC4yODUxMzIsIDAuMzY3ODY4LCAwLjQ3MTI2OSwgMC41NzQ2NTEsIDAuNjc4MDcsIDAuNzgxNDQzIiwgXAotICAgICAgICAgICIwLjE5MDk0NCwgMC4yOTQ5ODYsIDAuMzc3NzE2LCAwLjQ4MTEyMywgMC41ODQ1MDQsIDAuNjg3OTAyLCAwLjc5MTI3NSIsIFwKLSAgICAgICAgICAiMC4yMDMwNjEsIDAuMzA3MDk1LCAwLjM4OTgyOSwgMC40OTMyMzIsIDAuNTk2NjE0LCAwLjcwMDAxLCAwLjgwMzQwMSIsIFwKLSAgICAgICAgICAiMC4yMTM4MzcsIDAuMzE3ODYxLCAwLjQwMDU5NiwgMC41MDM5OTksIDAuNjA3MzgsIDAuNzEwNzgyLCAwLjgxNDE2OCIsIFwKLSAgICAgICAgICAiMC4yMjMwNCwgMC4zMjcwNzksIDAuNDA5ODA4LCAwLjUxMzIxNywgMC42MTY1OTksIDAuNzE5OTk3LCAwLjgyMzM3IiwgXAotICAgICAgICAgICIwLjIzNjA4MiwgMC4zNDAxMTEsIDAuNDIyODQ1LCAwLjUyNjI0OCwgMC42Mjk2MywgMC43MzMwMjYsIDAuODM2NDE3IiwgXAotICAgICAgICAgICIwLjI0NTc4OCwgMC4zNDk4MjEsIDAuNDMyNTUyLCAwLjUzNTk1NywgMC42MzkzMzgsIDAuNzQyNzQxLCAwLjg0NjEyMyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTE4MzUsIDAuMjU3OTc0LCAwLjQyNDkyOCwgMC42MzU2MiwgMC44NDU1OTEsIDEuMDU1NjYsIDEuMjYyOTgiLCBcCi0gICAgICAgICAgIjAuMDUxODA1LCAwLjI1Nzk2OSwgMC40MjUwMjgsIDAuNjM1Njg1LCAwLjg0NTUxNywgMS4wNTU0LCAxLjI2NTM4IiwgXAotICAgICAgICAgICIwLjA1MTgzOSwgMC4yNTc5NjcsIDAuNDI0OTg4LCAwLjYzNTYzMiwgMC44NDU1NTQsIDEuMDU1NTMsIDEuMjYzODMiLCBcCi0gICAgICAgICAgIjAuMDUxODMyLCAwLjI1Nzk1NSwgMC40MjQ5LCAwLjYzNTYyNywgMC44NDU1NDgsIDEuMDU1NTYsIDEuMjYzNzUiLCBcCi0gICAgICAgICAgIjAuMDUxOCwgMC4yNTc5NjEsIDAuNDI1MDUyLCAwLjYzNTY3NywgMC44NDU1MTIsIDEuMDUzOCwgMS4yNjUzNiIsIFwKLSAgICAgICAgICAiMC4wNTE4MzIsIDAuMjU3OTgsIDAuNDI0OTI3LCAwLjYzNTYxNiwgMC44NDU1NDYsIDEuMDU1NSwgMS4yNjQ0NiIsIFwKLSAgICAgICAgICAiMC4wNTE4MzcsIDAuMjU3OTYsIDAuNDI1MDY2LCAwLjYzNTYyNCwgMC44NDU1MTksIDEuMDU0MywgMS4yNjUwNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcHJlc2V0OwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTY3MTUsIDAuMjE4ODUzLCAwLjMwMDIxLCAwLjQwMTg5NywgMC41MDM2MDksIDAuNjA1MjQ1LCAwLjcwNzAzOSIsIFwKLSAgICAgICAgICAiMC4xMjYzMzYsIDAuMjI4NDExLCAwLjMwOTc1LCAwLjQxMTQ0MywgMC41MTMxNjEsIDAuNjE0NzgsIDAuNzE2NDc2IiwgXAotICAgICAgICAgICIwLjEzODc3MywgMC4yNDA4NDYsIDAuMzIyMjE5LCAwLjQyMzg3NiwgMC41MjU1OTMsIDAuNjI3MjE3LCAwLjcyODkxMSIsIFwKLSAgICAgICAgICAiMC4xNTA2NzQsIDAuMjUyNzQ0LCAwLjMzNDEyMywgMC40MzU3NzgsIDAuNTM3NDY5LCAwLjYzOTE4MiwgMC43NDA4MDgiLCBcCi0gICAgICAgICAgIjAuMTYyNDcxLCAwLjI2NDUzMiwgMC4zNDU5MjIsIDAuNDQ3NjA2LCAwLjU0OTI0MSwgMC42NTA5MTgsIDAuNzUyNjAzIiwgXAotICAgICAgICAgICIwLjE3OTIyMiwgMC4yODEzMzEsIDAuMzYyNjk0LCAwLjQ2NDQ0OSwgMC41NjYwMzQsIDAuNjY3NzQ4LCAwLjc2OTM5NyIsIFwKLSAgICAgICAgICAiMC4xOTIyNjgsIDAuMjk0MzQ2LCAwLjM3NTY5MywgMC40NzczODksIDAuNTc5MDQ4LCAwLjY4MDczNiwgMC43ODIzOTgiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDUxODE1LCAwLjI1ODU5MiwgMC40MjY3NDEsIDAuNjM3MTA1LCAwLjg0NzU1NCwgMS4wNTc4MSwgMS4yNjY4NiIsIFwKLSAgICAgICAgICAiMC4wNTE3OSwgMC4yNTg1OTEsIDAuNDI2NzIxLCAwLjYzNzA2LCAwLjg0NzQ3OCwgMS4wNTc4NSwgMS4yNjgzOCIsIFwKLSAgICAgICAgICAiMC4wNTE3ODgsIDAuMjU4NTksIDAuNDI2NzMzLCAwLjYzNzA2MSwgMC44NDc0NjIsIDEuMDU3OTcsIDEuMjY4MzciLCBcCi0gICAgICAgICAgIjAuMDUxODEyLCAwLjI1ODU5LCAwLjQyNjY4NCwgMC42MzcwNTksIDAuODQ3NDA2LCAxLjA1Nzk5LCAxLjI2ODI3IiwgXAotICAgICAgICAgICIwLjA1MTc4NSwgMC4yNTg2MjUsIDAuNDI2NzM2LCAwLjYzNzA1NiwgMC44NDczNDUsIDEuMDU3MzcsIDEuMjY4MTgiLCBcCi0gICAgICAgICAgIjAuMDUxOTg2LCAwLjI1ODYyNywgMC40MjY3MTUsIDAuNjM3MTYsIDAuODQ3Mzc1LCAxLjA1NzcyLCAxLjI2ODE2IiwgXAotICAgICAgICAgICIwLjA1MTk2NywgMC4yNTg2MjQsIDAuNDI2NzQ1LCAwLjYzNzEyMiwgMC44NDc0MTIsIDEuMDU3NiwgMS4yNjY2OCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNTkxNiwgMC4yNjMxOTMsIDAuMzQ1OTI4LCAwLjQ0OTMzMSwgMC41NTI3MTMsIDAuNjU2MTI1LCAwLjc1OTUwNCIsIFwKLSAgICAgICAgICAiMC4xNjgzNDUsIDAuMjcyMzYxLCAwLjM1NTA5NywgMC40NTg0OTksIDAuNTYxODgyLCAwLjY2NTMwMywgMC43Njg2NzEiLCBcCi0gICAgICAgICAgIjAuMTc5MDI5LCAwLjI4MzA0OCwgMC4zNjU3ODQsIDAuNDY5MTg3LCAwLjU3MjU3LCAwLjY3NTk3NSwgMC43NzkzNTYiLCBcCi0gICAgICAgICAgIjAuMTg5NjMzLCAwLjI5MzY0NywgMC4zNzYzODIsIDAuNDc5Nzg1LCAwLjU4MzE2NywgMC42ODY1NzMsIDAuNzg5OTU0IiwgXAotICAgICAgICAgICIwLjIwMDE0OSwgMC4zMDQxNjcsIDAuMzg2OTAxLCAwLjQ5MDMwNSwgMC41OTM2ODcsIDAuNjk3MDg3LCAwLjgwMDQ3MyIsIFwKLSAgICAgICAgICAiMC4yMTY1ODMsIDAuMzIwNTk2LCAwLjQwMzMzMSwgMC41MDY3MzYsIDAuNjEwMTE4LCAwLjcxMzUzNCwgMC44MTY5MDMiLCBcCi0gICAgICAgICAgIjAuMjMwMzcyLCAwLjMzNDQwNywgMC40MTcxMzcsIDAuNTIwNTQ3LCAwLjYyMzk0LCAwLjcyNzMxOSwgMC44MzA3MjgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDUxODUyLCAwLjI1Nzk4MiwgMC40MjUxMzQsIDAuNjM1NjU2LCAwLjg0NTU5MiwgMS4wNTU2OCwgMS4yNjI4NyIsIFwKLSAgICAgICAgICAiMC4wNTE4MjksIDAuMjU3OTY3LCAwLjQyNTAwNCwgMC42MzU2MjcsIDAuODQ1NTc4LCAxLjA1NTY5LCAxLjI2Mjc4IiwgXAotICAgICAgICAgICIwLjA1MTgyNSwgMC4yNTc5NywgMC40MjQ5NDksIDAuNjM1NjIyLCAwLjg0NTU1MiwgMS4wNTU1NywgMS4yNjQ5NiIsIFwKLSAgICAgICAgICAiMC4wNTE4MjcsIDAuMjU3OTYsIDAuNDI0ODAyLCAwLjYzNTYxMywgMC44NDU1NjgsIDEuMDU1NTYsIDEuMjY1MDUiLCBcCi0gICAgICAgICAgIjAuMDUxODI2LCAwLjI1NzUyNywgMC40MjQ4NjMsIDAuNjM1NjIsIDAuODQ1NTQ4LCAxLjA1NTUzLCAxLjI2Mzk1IiwgXAotICAgICAgICAgICIwLjA1MTgyNSwgMC4yNTc5MzYsIDAuNDI0ODU1LCAwLjYzNTYxNCwgMC44NDU1NTgsIDEuMDU1NjMsIDEuMjY0MiIsIFwKLSAgICAgICAgICAiMC4wNTE4MzQsIDAuMjU3OTM3LCAwLjQyNTcwMiwgMC42MzU2OTYsIDAuODQ1MTUzLCAxLjA1NDgsIDEuMjY1MDMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA5NDA5LCAwLjAwOTQ1NCwgMC4wMDk0NiwgMC4wMDk0NjMsIDAuMDA5NDY0LCAwLjAwOTQ2NSwgMC4wMDk0NjYiLCBcCi0gICAgICAgICAgIjAuMDA5MzgyLCAwLjAwOTQyOSwgMC4wMDk0MzcsIDAuMDA5NDM3LCAwLjAwOTQ0LCAwLjAwOTQ0LCAwLjAwOTQ0IiwgXAotICAgICAgICAgICIwLjAwOTM2NywgMC4wMDk0MTQsIDAuMDA5NDIsIDAuMDA5NDIzLCAwLjAwOTQyNSwgMC4wMDk0MjUsIDAuMDA5NDI1IiwgXAotICAgICAgICAgICIwLjAwOTM2MSwgMC4wMDk0MDcsIDAuMDA5NDEzLCAwLjAwOTQxNSwgMC4wMDk0MTgsIDAuMDA5NDE4LCAwLjAwOTQxOSIsIFwKLSAgICAgICAgICAiMC4wMDkzNjQsIDAuMDA5NDEsIDAuMDA5NDE2LCAwLjAwOTQxOCwgMC4wMDk0MiwgMC4wMDk0MjEsIDAuMDA5NDIxIiwgXAotICAgICAgICAgICIwLjAwOTM5NiwgMC4wMDk0NDIsIDAuMDA5NDQ5LCAwLjAwOTQ1MiwgMC4wMDk0NTMsIDAuMDA5NDU0LCAwLjAwOTQ1MyIsIFwKLSAgICAgICAgICAiMC4wMDkzOTUsIDAuMDA5NDQzLCAwLjAwOTQ0OCwgMC4wMDk0NTEsIDAuMDA5NDU2LCAwLjAwOTQ1NiwgMC4wMDk0NTQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDkwMzgsIDAuMDA5MTA2LCAwLjAwOTExNSwgMC4wMDkxMTksIDAuMDA5MTIyLCAwLjAwOTEyMywgMC4wMDkxMjQiLCBcCi0gICAgICAgICAgIjAuMDA5MDE0LCAwLjAwOTA4MiwgMC4wMDkwOTEsIDAuMDA5MDk1LCAwLjAwOTA5OCwgMC4wMDkwOTksIDAuMDA5MSIsIFwKLSAgICAgICAgICAiMC4wMDkwMDgsIDAuMDA5MDc3LCAwLjAwOTA4NiwgMC4wMDkwOSwgMC4wMDkwOTMsIDAuMDA5MDk0LCAwLjAwOTA5NSIsIFwKLSAgICAgICAgICAiMC4wMDkwMTksIDAuMDA5MDg3LCAwLjAwOTA5NiwgMC4wMDkxLCAwLjAwOTEwMywgMC4wMDkxMDQsIDAuMDA5MTA1IiwgXAotICAgICAgICAgICIwLjAwOTAzNiwgMC4wMDkxMDQsIDAuMDA5MTEyLCAwLjAwOTExNywgMC4wMDkxMTksIDAuMDA5MTIxLCAwLjAwOTEyMSIsIFwKLSAgICAgICAgICAiMC4wMDkwOTQsIDAuMDA5MTYxLCAwLjAwOTE3LCAwLjAwOTE3NCwgMC4wMDkxNzcsIDAuMDA5MTc4LCAwLjAwOTE3OSIsIFwKLSAgICAgICAgICAiMC4wMDkxMDgsIDAuMDA5MTc2LCAwLjAwOTE4NSwgMC4wMDkxOSwgMC4wMDkxOTIsIDAuMDA5MTkzLCAwLjAwOTE5NCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTEzMjIsIDAuMDExMzk1LCAwLjAxMTQwNSwgMC4wMTE0MSwgMC4wMTE0MTIsIDAuMDExNDE0LCAwLjAxMTQxNSIsIFwKLSAgICAgICAgICAiMC4wMTEyOTksIDAuMDExMzcyLCAwLjAxMTM4MSwgMC4wMTEzODYsIDAuMDExMzg5LCAwLjAxMTM5LCAwLjAxMTM5MSIsIFwKLSAgICAgICAgICAiMC4wMTEyOSwgMC4wMTEzNjMsIDAuMDExMzcyLCAwLjAxMTM3NywgMC4wMTEzOCwgMC4wMTEzODEsIDAuMDExMzgyIiwgXAotICAgICAgICAgICIwLjAxMTI4NiwgMC4wMTEzNTksIDAuMDExMzY4LCAwLjAxMTM3MywgMC4wMTEzNzYsIDAuMDExMzc4LCAwLjAxMTM3OSIsIFwKLSAgICAgICAgICAiMC4wMTEyOTcsIDAuMDExMzcsIDAuMDExMzgsIDAuMDExMzg1LCAwLjAxMTM4NywgMC4wMTEzODksIDAuMDExMzkiLCBcCi0gICAgICAgICAgIjAuMDExMzA2LCAwLjAxMTM3OSwgMC4wMTEzODgsIDAuMDExMzkzLCAwLjAxMTM5NiwgMC4wMTEzOTgsIDAuMDExMzk5IiwgXAotICAgICAgICAgICIwLjAxMTMyMywgMC4wMTEzOTYsIDAuMDExNDA1LCAwLjAxMTQxLCAwLjAxMTQxMywgMC4wMTE0MTUsIDAuMDExNDE2Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3Bvd2VyKHNjYWxhcikgewotICAgICAgICB2YWx1ZXMoIjAiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDExMjgxLCAwLjAxMTMyMywgMC4wMTEzMjcsIDAuMDExMzI5LCAwLjAxMTMyOSwgMC4wMTEzMywgMC4wMTEzMyIsIFwKLSAgICAgICAgICAiMC4wMTEyMzksIDAuMDExMjgzLCAwLjAxMTI4NywgMC4wMTEyODksIDAuMDExMjg5LCAwLjAxMTI5LCAwLjAxMTI5MSIsIFwKLSAgICAgICAgICAiMC4wMTEyMjEsIDAuMDExMjY1LCAwLjAxMTI2OSwgMC4wMTEyNzEsIDAuMDExMjcyLCAwLjAxMTI3MiwgMC4wMTEyNzMiLCBcCi0gICAgICAgICAgIjAuMDExMjEzLCAwLjAxMTI1NiwgMC4wMTEyNiwgMC4wMTEyNjMsIDAuMDExMjY0LCAwLjAxMTI2OSwgMC4wMTEyNjUiLCBcCi0gICAgICAgICAgIjAuMDExMjExLCAwLjAxMTI1NiwgMC4wMTEyNjEsIDAuMDExMjYzLCAwLjAxMTI2NCwgMC4wMTEyNjQsIDAuMDExMjY1IiwgXAotICAgICAgICAgICIwLjAxMTIxOSwgMC4wMTEyNjYsIDAuMDExMjcxLCAwLjAxMTI3MywgMC4wMTEyNzQsIDAuMDExMjc1LCAwLjAxMTI3NiIsIFwKLSAgICAgICAgICAiMC4wMTEyMzQsIDAuMDExMjgzLCAwLjAxMTI4OCwgMC4wMTEyOTEsIDAuMDExMjkzLCAwLjAxMTI5MywgMC4wMTEyOTMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDgzMzcsIDAuMDA4NDEsIDAuMDA4NDE5LCAwLjAwODQyNCwgMC4wMDg0MjcsIDAuMDA4NDI5LCAwLjAwODQyOSIsIFwKLSAgICAgICAgICAiMC4wMDgyODUsIDAuMDA4MzU4LCAwLjAwODM2NywgMC4wMDgzNzMsIDAuMDA4Mzc1LCAwLjAwODM3NywgMC4wMDgzNzgiLCBcCi0gICAgICAgICAgIjAuMDA4MjU3LCAwLjAwODMzLCAwLjAwODM0LCAwLjAwODM0NSwgMC4wMDgzNDgsIDAuMDA4MzQ5LCAwLjAwODM1IiwgXAotICAgICAgICAgICIwLjAwODI0LCAwLjAwODMxMywgMC4wMDgzMjMsIDAuMDA4MzI4LCAwLjAwODMzMSwgMC4wMDgzMzIsIDAuMDA4MzMzIiwgXAotICAgICAgICAgICIwLjAwODIyNywgMC4wMDgzLCAwLjAwODMxLCAwLjAwODMxNSwgMC4wMDgzMTgsIDAuMDA4MzE5LCAwLjAwODMyIiwgXAotICAgICAgICAgICIwLjAwODIxNSwgMC4wMDgyODgsIDAuMDA4Mjk4LCAwLjAwODMwMywgMC4wMDgzMDYsIDAuMDA4MzA3LCAwLjAwODMwOCIsIFwKLSAgICAgICAgICAiMC4wMDgyMDksIDAuMDA4MjgyLCAwLjAwODI5MywgMC4wMDgyOTgsIDAuMDA4MzAxLCAwLjAwODMwMiwgMC4wMDgzMDQiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFJOKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA1NzU2Mzk7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNTc1NDI4OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDU3NTYzOTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA3OTcsIDAuMDAwNzc0LCAwLjAwMDc2NCwgMC4wMDA3NjksIDAuMDAwNzc4LCAwLjAwMDgwMSwgMC4wMDA4MjEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDI1OTMsIDAuMDAyNTc0LCAwLjAwMjU3LCAwLjAwMjU3NCwgMC4wMDI1ODQsIDAuMDAyNjA2LCAwLjAwMjYyMSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQmIVNFJiFTSSZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fU0VfRVFfMF9BTl9TSV9FUV8wX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4xODExMTcsIDAuMTkwOTQ0LCAwLjIwMzA2MSwgMC4yMTM4MzcsIDAuMjIzMDQsIDAuMjM2MDgyLCAwLjI0NTc4OCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJlY292ZXJ5X3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiU04iOwotICAgICAgc2RmX2NvbmQgOiAiU04gPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQocmVjb3ZlcnlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDYyNSwgMC4wNTEyNSwgMC4wMzg3NSwgMC4wMjYyNSwgMC4wMTM3NSwgLTAuMDAyNSwgLTAuMDE3NSIsIFwKLSAgICAgICAgICAiMC4wNzM3NSwgMC4wNjI1LCAwLjA1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMDg3NSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMDg2MjUsIDAuMDc1LCAwLjA2MjUsIDAuMDUsIDAuMDM3NSwgMC4wMjEyNSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiMC4wOTg3NSwgMC4wODc1LCAwLjA3NSwgMC4wNTYyNSwgMC4wNDM3NSwgMC4wMjc1LCAwLjAxODc1IiwgXAotICAgICAgICAgICIwLjEwNSwgMC4wOTM3NSwgMC4wODEyNSwgMC4wNjg3NSwgMC4wNTYyNSwgMC4wNCwgMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMTIxMjUsIDAuMTEsIDAuMDk3NSwgMC4wODUsIDAuMDcyNSwgMC4wNTYyNSwgMC4wNDEyNSIsIFwKLSAgICAgICAgICAiMC4xMywgMC4xMTg3NSwgMC4xMDYyNSwgMC4wOTM3NSwgMC4wODEyNSwgMC4wNjUsIDAuMDUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiU04iOwotICAgICAgdGltaW5nX3R5cGUgOiByZWNvdmVyeV9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEJiFTRSYhU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1NFX0VRXzBfQU5fU0lfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChyZWNvdmVyeV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzUsIDAuMDg2MjUsIDAuMDkyNSwgMC4xMDUsIDAuMTExMjUsIDAuMTI3NSwgMC4xNDI1IiwgXAotICAgICAgICAgICIwLjA2Mzc1LCAwLjA3NSwgMC4wODc1LCAwLjA5Mzc1LCAwLjEsIDAuMTE2MjUsIDAuMTMxMjUiLCBcCi0gICAgICAgICAgIjAuMDU3NSwgMC4wNjg3NSwgMC4wNzUsIDAuMDg3NSwgMC4wOTM3NSwgMC4xMSwgMC4xMjUiLCBcCi0gICAgICAgICAgIjAuMDUxMjUsIDAuMDYyNSwgMC4wNjg3NSwgMC4wODEyNSwgMC4wODc1LCAwLjEwMzc1LCAwLjExODc1IiwgXAotICAgICAgICAgICIwLjA0NSwgMC4wNTYyNSwgMC4wNjI1LCAwLjA3NSwgMC4wODEyNSwgMC4wOTc1LCAwLjExMjUiLCBcCi0gICAgICAgICAgIjAuMDQxMjUsIDAuMDUyNSwgMC4wNTg3NSwgMC4wNzEyNSwgMC4wNzc1LCAwLjA5Mzc1LCAwLjEwMjUiLCBcCi0gICAgICAgICAgIjAuMDM4NzUsIDAuMDQzNzUsIDAuMDU2MjUsIDAuMDYyNSwgMC4wNzUsIDAuMDg1LCAwLjEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiByZW1vdmFsX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiU04iOwotICAgICAgc2RmX2NvbmQgOiAiU04gPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQocmVtb3ZhbF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDEyNSwgLTAuMDAxMjUsIDAuMDExMjUsIDAuMDIzNzUsIDAuMDM2MjUsIDAuMDUyNSwgMC4wNjEyNSIsIFwKLSAgICAgICAgICAiLTAuMDE3NSwgLTAuMDEyNSwgMCwgMC4wMTI1LCAwLjAyNSwgMC4wNDEyNSwgMC4wNSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAyNSwgLTAuMDEyNSwgMCwgMC4wMTI1LCAwLjAyODc1LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAsIDAuMDE2MjUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjA1NSwgLTAuMDQzNzUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAuMDAzNzUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjA2NSwgLTAuMDYsIC0wLjA0NzUsIC0wLjAzNSwgLTAuMDIyNSwgLTAuMDA2MjUsIDAuMDAyNSIsIFwKLSAgICAgICAgICAiLTAuMDgsIC0wLjA2ODc1LCAtMC4wNTYyNSwgLTAuMDQzNzUsIC0wLjAzMTI1LCAtMC4wMTUsIC0wLjAwNjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTRSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNjc5NTM7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNjc5MTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE2Nzk1MzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDU4NTIsIDAuMDA1ODMsIDAuMDA1ODI3LCAwLjAwNTgyMiwgMC4wMDU4MzQsIDAuMDA1ODUyLCAwLjAwNTg3MSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNzM4LCAwLjAwNzMyNCwgMC4wMDczMTksIDAuMDA3MzA3LCAwLjAwNzMyMywgMC4wMDczNiwgMC4wMDc0MDQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiUk4mU04iOwotICAgICAgc2RmX2NvbmQgOiAiUk5fRVFfMV9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAxMjUsIC0wLjAwMTI1LCAwLjAxMTI1LCAwLjAyMzc1LCAwLjAzLCAwLjA0NjI1LCAwLjA1NSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxMjUsIDAsIDAuMDEyNSwgMC4wMTg3NSwgMC4wMzUsIDAuMDUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMjUsIC0wLjAxMjUsIDAsIDAuMDEyNSwgMC4wMjI1LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAxMjUsIDAsIDAuMDE2MjUsIDAuMDI1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDQzNzUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAuMDAzNzUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjA2NSwgLTAuMDUzNzUsIC0wLjA0MTI1LCAtMC4wMjg3NSwgLTAuMDE2MjUsIC0wLjAwNjI1LCAwLjAwODc1IiwgXAotICAgICAgICAgICItMC4wNzM3NSwgLTAuMDYyNSwgLTAuMDUsIC0wLjAzNzUsIC0wLjAyNSwgLTAuMDE1LCAwIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDYyNSwgMC4wMTc1LCAwLjAzLCAwLjAzNjI1LCAwLjA0ODc1LCAwLjA2NSwgMC4wNzM3NSIsIFwKLSAgICAgICAgICAiLTAuMDA1LCAwLjAwNjI1LCAwLjAxODc1LCAwLjAzMTI1LCAwLjA0Mzc1LCAwLjA1Mzc1LCAwLjA2ODc1IiwgXAotICAgICAgICAgICItMC4wMTEyNSwgLTAuMDA2MjUsIDAuMDA2MjUsIDAuMDE4NzUsIDAuMDMxMjUsIDAuMDQ3NSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxMjUsIDAsIDAuMDEyNSwgMC4wMTg3NSwgMC4wMzUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMjUsIC0wLjAxMjUsIDAsIDAuMDEyNSwgMC4wMjI1LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjA0NjI1LCAtMC4wMzUsIC0wLjAyMjUsIC0wLjAxLCAtMC4wMDM3NSwgMC4wMTI1LCAwLjAyMTI1IiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA0Mzc1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIDAuMDAzNzUsIDAuMDEyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiUk4mU04iOwotICAgICAgc2RmX2NvbmQgOiAiUk5fRVFfMV9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5Mzc1LCAwLjA4MjUsIDAuMDcsIDAuMDU3NSwgMC4wNDUsIDAuMDI4NzUsIDAuMDIiLCBcCi0gICAgICAgICAgIjAuMTA1LCAwLjA5Mzc1LCAwLjA3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA0LCAwLjAzMTI1IiwgXAotICAgICAgICAgICIwLjExNzUsIDAuMTA2MjUsIDAuMDg3NSwgMC4wNzUsIDAuMDYyNSwgMC4wNTI1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjEzLCAwLjExMjUsIDAuMSwgMC4wODc1LCAwLjA3NSwgMC4wNjUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIjAuMTM2MjUsIDAuMTI1LCAwLjExMjUsIDAuMSwgMC4wODc1LCAwLjA3NzUsIDAuMDYyNSIsIFwKLSAgICAgICAgICAiMC4xNTI1LCAwLjE0MTI1LCAwLjEyODc1LCAwLjExNjI1LCAwLjEwMzc1LCAwLjA5Mzc1LCAwLjA3ODc1IiwgXAotICAgICAgICAgICIwLjE2NzUsIDAuMTU2MjUsIDAuMTQzNzUsIDAuMTMxMjUsIDAuMTE4NzUsIDAuMTAyNSwgMC4wOTM3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExMjUsIDAuMTAxMjUsIDAuMDg4NzUsIDAuMDc2MjUsIDAuMDYzNzUsIDAuMDUzNzUsIDAuMDQ1IiwgXAotICAgICAgICAgICIwLjEyMzc1LCAwLjExMjUsIDAuMSwgMC4wODc1LCAwLjA3NSwgMC4wNTg3NSwgMC4wNSIsIFwKLSAgICAgICAgICAiMC4xMzYyNSwgMC4xMjUsIDAuMTA2MjUsIDAuMDkzNzUsIDAuMDg3NSwgMC4wNzEyNSwgMC4wNjI1IiwgXAotICAgICAgICAgICIwLjE0MjUsIDAuMTMxMjUsIDAuMTE4NzUsIDAuMTA2MjUsIDAuMDkzNzUsIDAuMDgzNzUsIDAuMDY4NzUiLCBcCi0gICAgICAgICAgIjAuMTQ4NzUsIDAuMTM3NSwgMC4xMjUsIDAuMTEyNSwgMC4xLCAwLjA5LCAwLjA4MTI1IiwgXAotICAgICAgICAgICIwLjE1ODc1LCAwLjE0NzUsIDAuMTM1LCAwLjEyMjUsIDAuMTEsIDAuMSwgMC4wOTEyNSIsIFwKLSAgICAgICAgICAiMC4xNjc1LCAwLjE1NjI1LCAwLjE0Mzc1LCAwLjEzMTI1LCAwLjExODc1LCAwLjEwODc1LCAwLjA5Mzc1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTSSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwOTE5MDU7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwOTE2MDE1OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDkxOTA1OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNDQyOSwgMC4wMDQzOTcsIDAuMDA0Mzc5LCAwLjAwNDM2OSwgMC4wMDQzNjIsIDAuMDA0MzY1LCAwLjAwNDM3MSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNjQ0OSwgMC4wMDY0MzEsIDAuMDA2NDE5LCAwLjAwNjQxMywgMC4wMDY0MDgsIDAuMDA2NDA4LCAwLjAwNjQxNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJSTiZTRSZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJSTl9FUV8xX0FOX1NFX0VRXzFfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wNDM3NSwgLTAuMDMyNSwgLTAuMDI2MjUsIC0wLjAyLCAtMC4wMTM3NSwgLTAuMDAzNzUsIDAuMDA1IiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMDg3NSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA2MTI1LCAtMC4wNTYyNSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMjEyNSwgLTAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDczNzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjAzMzc1LCAtMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjA4NjI1LCAtMC4wNzUsIC0wLjA2ODc1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjA0LCAtMC4wMzc1IiwgXAotICAgICAgICAgICItMC4wOTYyNSwgLTAuMDkxMjUsIC0wLjA3ODc1LCAtMC4wNzI1LCAtMC4wNjYyNSwgLTAuMDU2MjUsIC0wLjA1Mzc1IiwgXAotICAgICAgICAgICItMC4xMTEyNSwgLTAuMSwgLTAuMDkzNzUsIC0wLjA4NzUsIC0wLjA4MTI1LCAtMC4wNzEyNSwgLTAuMDYyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAsIDAuMDExMjUsIDAuMDIzNzUsIDAuMDMsIDAuMDQyNSwgMC4wNTg3NSwgMC4wNjc1IiwgXAotICAgICAgICAgICItMC4wMTEyNSwgMCwgMC4wMTI1LCAwLjAyNSwgMC4wMzc1LCAwLjA0NzUsIDAuMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDE3NSwgLTAuMDA2MjUsIDAuMDA2MjUsIDAuMDEyNSwgMC4wMjUsIDAuMDQxMjUsIDAuMDUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAuMDA2MjUsIDAuMDE4NzUsIDAuMDI4NzUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMjUsIC0wLjAxMjUsIDAsIDAuMDA2MjUsIDAuMDIyNSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDQ2MjUsIC0wLjAzNSwgLTAuMDIyNSwgLTAuMDE2MjUsIC0wLjAwMzc1LCAwLjAxMjUsIDAuMDIxMjUiLCBcCi0gICAgICAgICAgIi0wLjA1NSwgLTAuMDQzNzUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAxMjUsIDAuMDAzNzUsIDAuMDEyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiUk4mU0UmU04iOwotICAgICAgc2RmX2NvbmQgOiAiUk5fRVFfMV9BTl9TRV9FUV8xX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMSwgMC4wODg3NSwgMC4wNzYyNSwgMC4wNjM3NSwgMC4wNTEyNSwgMC4wMzUsIDAuMDI2MjUiLCBcCi0gICAgICAgICAgIjAuMTExMjUsIDAuMSwgMC4wODEyNSwgMC4wNjg3NSwgMC4wNTYyNSwgMC4wNDYyNSwgMC4wMzc1IiwgXAotICAgICAgICAgICIwLjExNzUsIDAuMTA2MjUsIDAuMDkzNzUsIDAuMDgxMjUsIDAuMDY4NzUsIDAuMDU4NzUsIDAuMDUiLCBcCi0gICAgICAgICAgIjAuMTMsIDAuMTE4NzUsIDAuMTA2MjUsIDAuMDkzNzUsIDAuMDgxMjUsIDAuMDY1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICIwLjE0MjUsIDAuMTMxMjUsIDAuMTEyNSwgMC4xLCAwLjA5Mzc1LCAwLjA3NzUsIDAuMDY4NzUiLCBcCi0gICAgICAgICAgIjAuMTU4NzUsIDAuMTQ3NSwgMC4xMjg3NSwgMC4xMTYyNSwgMC4xMDM3NSwgMC4wOTM3NSwgMC4wODUiLCBcCi0gICAgICAgICAgIjAuMTY3NSwgMC4xNTYyNSwgMC4xNDM3NSwgMC4xMzEyNSwgMC4xMTg3NSwgMC4xMDI1LCAwLjA5Mzc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY4NzUsIDAuMDU3NSwgMC4wNDUsIDAuMDMyNSwgMC4wMiwgMC4wMDM3NSwgLTAuMDExMjUiLCBcCi0gICAgICAgICAgIjAuMDgsIDAuMDY4NzUsIDAuMDU2MjUsIDAuMDM3NSwgMC4wMjUsIDAuMDA4NzUsIDAiLCBcCi0gICAgICAgICAgIjAuMDg2MjUsIDAuMDc1LCAwLjA2MjUsIDAuMDUsIDAuMDM3NSwgMC4wMjEyNSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiMC4wOTg3NSwgMC4wODc1LCAwLjA3NSwgMC4wNjI1LCAwLjA1LCAwLjAyNzUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMTA1LCAwLjA5Mzc1LCAwLjA4MTI1LCAwLjA2ODc1LCAwLjA1NjI1LCAwLjA0LCAwLjAyNSIsIFwKLSAgICAgICAgICAiMC4xMjEyNSwgMC4xMSwgMC4wOTc1LCAwLjA4NSwgMC4wNzI1LCAwLjA1LCAwLjA0MTI1IiwgXAotICAgICAgICAgICIwLjEzLCAwLjExODc1LCAwLjEwNjI1LCAwLjA5Mzc1LCAwLjA4MTI1LCAwLjA2NSwgMC4wNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oU04pICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMjAyMjUxOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMjAyMTcyOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMjAyMjUxOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDY1MywgMC4wMDA2NTIsIDAuMDAwNjUyLCAwLjAwMDY1MiwgMC4wMDA2NTIsIDAuMDAwNjUyLCAwLjAwMDY1MiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDY1NCwgMC4wMDA2NTQsIDAuMDAwNjU0LCAwLjAwMDY1NCwgMC4wMDA2NTQsIDAuMDAwNjU0LCAwLjAwMDY1NCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQmIVJOJiFTRSYhU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1JOX0VRXzBfQU5fU0VfRVFfMF9BTl9TSV9FUV8wID09IDEnYjEiOwotICAgICAgZmFsbF9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMTE2NzE0LCAwLjEyNjMzNiwgMC4xMzg3NzMsIDAuMTUwNjc0LCAwLjE2MjQ3MSwgMC4xNzkyMjIsIDAuMTkyMjY4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogcmVjb3ZlcnlfcmlzaW5nOwotICAgICAgd2hlbiA6ICJSTiI7Ci0gICAgICBzZGZfY29uZCA6ICJSTiA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChyZWNvdmVyeV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMCwgLTAuMDExMjUsIC0wLjAyMzc1LCAtMC4wMzYyNSwgLTAuMDQ4NzUsIC0wLjA2NSwgLTAuMDgiLCBcCi0gICAgICAgICAgIjAuMDExMjUsIDAsIC0wLjAxMjUsIC0wLjAyNSwgLTAuMDM3NSwgLTAuMDYsIC0wLjA3NSIsIFwKLSAgICAgICAgICAiMC4wMjM3NSwgMC4wMTI1LCAwLCAtMC4wMTg3NSwgLTAuMDMxMjUsIC0wLjA0NzUsIC0wLjA2MjUiLCBcCi0gICAgICAgICAgIjAuMDMsIDAuMDE4NzUsIDAuMDA2MjUsIC0wLjAwNjI1LCAtMC4wMTg3NSwgLTAuMDM1LCAtMC4wNSIsIFwKLSAgICAgICAgICAiMC4wNDI1LCAwLjAzMTI1LCAwLjAxODc1LCAwLjAwNjI1LCAtMC4wMDYyNSwgLTAuMDI4NzUsIC0wLjAzNzUiLCBcCi0gICAgICAgICAgIjAuMDU4NzUsIDAuMDQ3NSwgMC4wMzUsIDAuMDIyNSwgMC4wMSwgLTAuMDEyNSwgLTAuMDIxMjUiLCBcCi0gICAgICAgICAgIjAuMDczNzUsIDAuMDYyNSwgMC4wNSwgMC4wMzc1LCAwLjAyNSwgMC4wMDI1LCAtMC4wMTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogcmVtb3ZhbF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlJOIjsKLSAgICAgIHNkZl9jb25kIDogIlJOID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHJlbW92YWxfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQzNzUsIDAuMDU1LCAwLjA2NzUsIDAuMDgsIDAuMDkyNSwgMC4xMDg3NSwgMC4xMjM3NSIsIFwKLSAgICAgICAgICAiMC4wMzI1LCAwLjA0Mzc1LCAwLjA1NjI1LCAwLjA2ODc1LCAwLjA4MTI1LCAwLjA5NzUsIDAuMTEyNSIsIFwKLSAgICAgICAgICAiMC4wMjYyNSwgMC4wMzc1LCAwLjA1LCAwLjA2MjUsIDAuMDc1LCAwLjA5MTI1LCAwLjEiLCBcCi0gICAgICAgICAgIjAuMDEzNzUsIDAuMDI1LCAwLjAzNzUsIDAuMDUsIDAuMDYyNSwgMC4wNzg3NSwgMC4wOTM3NSIsIFwKLSAgICAgICAgICAiMC4wMDEyNSwgMC4wMTI1LCAwLjAyNSwgMC4wMzc1LCAwLjA1LCAwLjA2NjI1LCAwLjA4MTI1IiwgXAotICAgICAgICAgICItMC4wMDg3NSwgMC4wMDI1LCAwLjAxNSwgMC4wMjc1LCAwLjA0LCAwLjA1NjI1LCAwLjA2NSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxMjUsIDAsIDAuMDEyNSwgMC4wMjUsIDAuMDQxMjUsIDAuMDU2MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBTREZGU1JIUVg0ICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKFNERkZTUkhRWDQpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC43MTI3MzE7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgZmYgKE4zNSxRQklOVCkgewotICAgIG5leHRfc3RhdGUgOiAiKChTRSBTSSkgKyAoIVNFIEQpKSI7Ci0gICAgY2xvY2tlZF9vbiA6ICJDSyI7Ci0gICAgY2xlYXIgOiAiKCFSTikiOwotICAgIHByZXNldCA6ICIoIVNOKSI7Ci0gICAgY2xlYXJfcHJlc2V0X3ZhcjEgOiBIOwotICB9Ci0gIHBpbihDSykgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjY2MTMzOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDY2NTkxNjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2NjYxMzM7Ci0gICAgY2xvY2sgOiB0cnVlOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzMxNSwgMC4wMDMyOSwgMC4wMDMyOCwgMC4wMDMyNzQsIDAuMDAzMjg4LCAwLjAwMzMxMSwgMC4wMDMzMjEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDg4MDIsIDAuMDA4NzgsIDAuMDA4Nzc4LCAwLjAwODc4MSwgMC4wMDg3OTQsIDAuMDA4ODM5LCAwLjAwODg4NCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQmUk4mIVNFJiFTSSZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fUk5fRVFfMV9BTl9TRV9FUV8wX0FOX1NJX0VRXzBfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjE0NTgwNywgMC4xNTYwMSwgMC4xNjg5LCAwLjE4MTU2NSwgMC4xOTMyMTYsIDAuMjA5NzY0LCAwLjIyMjYxOCIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMTE4OTU2LCAwLjEyODk1MiwgMC4xNDEyOTQsIDAuMTUzNTI0LCAwLjE2NDY1OCwgMC4xODAxODgsIDAuMTkyMDE0Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihEKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA5Njg1OTI7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwOTY1NDEyOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDk2ODU5MjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDQ2NTYsIDAuMDA0NjI0LCAwLjAwNDYwNiwgMC4wMDQ1OTYsIDAuMDA0NTksIDAuMDA0NTkyLCAwLjAwNDU5NyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNjAxMiwgMC4wMDU5OTQsIDAuMDA1OTgxLCAwLjAwNTk3NiwgMC4wMDU5NzIsIDAuMDA1OTcxLCAwLjAwNTk3OSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJSTiYhU0UmU04iOwotICAgICAgc2RmX2NvbmQgOiAiUk5fRVFfMV9BTl9TRV9FUV8wX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDQzNzUsIC0wLjAzMjUsIC0wLjAyNjI1LCAtMC4wMTM3NSwgLTAuMDA3NSwgMC4wMDI1LCAwLjAwNSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjA0Mzc1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDA4NzUsIDAiLCBcCi0gICAgICAgICAgIi0wLjA2MTI1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMjEyNSwgLTAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDczNzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDI3NSwgLTAuMDI1IiwgXAotICAgICAgICAgICItMC4wOCwgLTAuMDc1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjA0LCAtMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDk2MjUsIC0wLjA4NSwgLTAuMDc4NzUsIC0wLjA3MjUsIC0wLjA2NjI1LCAtMC4wNTYyNSwgLTAuMDQ3NSIsIFwKLSAgICAgICAgICAiLTAuMTA1LCAtMC4xLCAtMC4wODc1LCAtMC4wODEyNSwgLTAuMDc1LCAtMC4wNjUsIC0wLjA2MjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLCAwLjAxMTI1LCAwLjAyMzc1LCAwLjAzLCAwLjA0MjUsIDAuMDU4NzUsIDAuMDY3NSIsIFwKLSAgICAgICAgICAiLTAuMDExMjUsIDAsIDAuMDEyNSwgMC4wMjUsIDAuMDM3NSwgMC4wNDc1LCAwLjA2MjUiLCBcCi0gICAgICAgICAgIi0wLjAxNzUsIC0wLjAwNjI1LCAwLjAwNjI1LCAwLjAxMjUsIDAuMDI1LCAwLjA0MTI1LCAwLjA1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLjAwNjI1LCAwLjAxODc1LCAwLjAyODc1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDI1LCAtMC4wMTI1LCAwLCAwLjAwNjI1LCAwLjAyMjUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjA0NjI1LCAtMC4wMzUsIC0wLjAyMjUsIC0wLjAxNjI1LCAtMC4wMDM3NSwgMC4wMTI1LCAwLjAyMTI1IiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA0Mzc1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIDAuMDAzNzUsIDAuMDEyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiUk4mIVNFJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIlJOX0VRXzFfQU5fU0VfRVFfMF9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEsIDAuMDg4NzUsIDAuMDc2MjUsIDAuMDYzNzUsIDAuMDUxMjUsIDAuMDM1LCAwLjAyNjI1IiwgXAotICAgICAgICAgICIwLjExMTI1LCAwLjEsIDAuMDgxMjUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNDYyNSwgMC4wMzc1IiwgXAotICAgICAgICAgICIwLjEyMzc1LCAwLjEwNjI1LCAwLjA5Mzc1LCAwLjA4MTI1LCAwLjA2ODc1LCAwLjA1ODc1LCAwLjA1IiwgXAotICAgICAgICAgICIwLjEzLCAwLjExODc1LCAwLjEwNjI1LCAwLjA5Mzc1LCAwLjA4MTI1LCAwLjA2NSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiMC4xNDI1LCAwLjEzMTI1LCAwLjExMjUsIDAuMSwgMC4wOTM3NSwgMC4wNzc1LCAwLjA2ODc1IiwgXAotICAgICAgICAgICIwLjE1ODc1LCAwLjE0NzUsIDAuMTI4NzUsIDAuMTE2MjUsIDAuMTAzNzUsIDAuMDkzNzUsIDAuMDg1IiwgXAotICAgICAgICAgICIwLjE2NzUsIDAuMTU2MjUsIDAuMTQzNzUsIDAuMTMxMjUsIDAuMTE4NzUsIDAuMTAyNSwgMC4wOTM3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2ODc1LCAwLjA1NzUsIDAuMDQ1LCAwLjAzMjUsIDAuMDIsIDAuMDAzNzUsIC0wLjAxMTI1IiwgXAotICAgICAgICAgICIwLjA4LCAwLjA2ODc1LCAwLjA1NjI1LCAwLjA0Mzc1LCAwLjAzMTI1LCAwLjAxNSwgMCIsIFwKLSAgICAgICAgICAiMC4wODYyNSwgMC4wNzUsIDAuMDYyNSwgMC4wNSwgMC4wMzc1LCAwLjAyMTI1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMDk4NzUsIDAuMDg3NSwgMC4wNzUsIDAuMDYyNSwgMC4wNSwgMC4wMzM3NSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4xMDUsIDAuMDkzNzUsIDAuMDgxMjUsIDAuMDY4NzUsIDAuMDU2MjUsIDAuMDQsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMTIxMjUsIDAuMTEsIDAuMDk3NSwgMC4wODUsIDAuMDcyNSwgMC4wNTYyNSwgMC4wNDEyNSIsIFwKLSAgICAgICAgICAiMC4xMywgMC4xMTg3NSwgMC4xMDYyNSwgMC4wOTM3NSwgMC4wODEyNSwgMC4wNjUsIDAuMDUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFEpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMS4wMjIwNDsKLSAgICBmdW5jdGlvbiA6ICJOMzUiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5vbl91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcmlzaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTMzNzI2LCAwLjIwNTk1OSwgMC4yNzY5NTYsIDAuMzI3NjE5LCAwLjQwODY5MiwgMC40Nzk2MTcsIDAuNTgwOTg1IiwgXAotICAgICAgICAgICIwLjE0MzgzMSwgMC4yMTYwNzgsIDAuMjg3MDQ3LCAwLjMzNzcxLCAwLjQxODc4NCwgMC40ODk3MDksIDAuNTkxMDczIiwgXAotICAgICAgICAgICIwLjE1NjY0MiwgMC4yMjg4ODQsIDAuMjk5ODU0LCAwLjM1MDUxOCwgMC40MzE1OSwgMC41MDI1MTUsIDAuNjAzODg5IiwgXAotICAgICAgICAgICIwLjE2OTAyMiwgMC4yNDEyNjcsIDAuMzEyMjIyLCAwLjM2Mjg5MywgMC40NDM5NjcsIDAuNTE0ODkzLCAwLjYxNjI2IiwgXAotICAgICAgICAgICIwLjE4MDcxNSwgMC4yNTI5NTgsIDAuMzIzOTM2LCAwLjM3NDU5LCAwLjQ1NTY3LCAwLjUyNjU5NSwgMC42Mjc5NzIiLCBcCi0gICAgICAgICAgIjAuMTk2NzU3LCAwLjI2ODk5NywgMC4zMzk5NjgsIDAuMzkwNjMsIDAuNDcxNzAxLCAwLjU0MjYyNiwgMC42NDQwMDIiLCBcCi0gICAgICAgICAgIjAuMjA5ODk2LCAwLjI4MjExOCwgMC4zNTMwOCwgMC40MDM3NiwgMC40ODQ4MjIsIDAuNTU1NzE3LCAwLjY1NzEwMyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzMjQxMiwgMC4xNzM5NjUsIDAuMzE5NjE1LCAwLjQyMzQxNSwgMC41OTE4NjksIDAuNzM4MzIxLCAwLjk0NzkyNiIsIFwKLSAgICAgICAgICAiMC4wMzI0LCAwLjE3MzgzNiwgMC4zMTk2MTUsIDAuNDIzMzYxLCAwLjU5MTg1MywgMC43MzgyODQsIDAuOTQ2NjgiLCBcCi0gICAgICAgICAgIjAuMDMyNDAxLCAwLjE3Mzk0MSwgMC4zMTk2MTUsIDAuNDIzMzkyLCAwLjU5MTg1NSwgMC43MzgyNjksIDAuOTQ2NjMxIiwgXAotICAgICAgICAgICIwLjAzMjQ2NiwgMC4xNzM4OTUsIDAuMzE5NjAyLCAwLjQyNDA1NCwgMC41OTE4NTksIDAuNzM4MjgsIDAuOTQ2NjM2IiwgXAotICAgICAgICAgICIwLjAzMjQwNCwgMC4xNzM4NzYsIDAuMzE5NjE1LCAwLjQyMzQwOSwgMC41OTE4NTksIDAuNzM4MjczLCAwLjk0NjYzNSIsIFwKLSAgICAgICAgICAiMC4wMzI0NiwgMC4xNzM4OTYsIDAuMzE5NjE2LCAwLjQyMzgsIDAuNTkxODUzLCAwLjczODI3LCAwLjk0NjYwNiIsIFwKLSAgICAgICAgICAiMC4wMzIzNDYsIDAuMTczODkxLCAwLjMxOTYsIDAuNDIzNjQ3LCAwLjU5MDMzNiwgMC43MzczNDUsIDAuOTQ3OTQxIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTQ1ODEzLCAwLjIyMDQsIDAuMjkzNzc0LCAwLjM0NjE0NywgMC40Mjk5NiwgMC41MDMzMTUsIDAuNjA4MTM5IiwgXAotICAgICAgICAgICIwLjE1NjAxLCAwLjIzMDU5OCwgMC4zMDM5NzIsIDAuMzU2MzQ0LCAwLjQ0MDE1NiwgMC41MTM1MTgsIDAuNjE4MzI2IiwgXAotICAgICAgICAgICIwLjE2ODksIDAuMjQzNTA5LCAwLjMxNjg4LCAwLjM2OTI1OCwgMC40NTMwNzEsIDAuNTI2NDE4LCAwLjYzMTIzNCIsIFwKLSAgICAgICAgICAiMC4xODE1NjUsIDAuMjU2MTY3LCAwLjMyOTUyOSwgMC4zODE5MDIsIDAuNDY1NzE3LCAwLjUzOTA3NiwgMC42NDM4ODEiLCBcCi0gICAgICAgICAgIjAuMTkzMjE2LCAwLjI2Nzc5OCwgMC4zNDExNjgsIDAuMzkzNTU5LCAwLjQ3NzM1OCwgMC41NTA3MDIsIDAuNjU1NDU5IiwgXAotICAgICAgICAgICIwLjIwOTc2NCwgMC4yODQzNjcsIDAuMzU3NzMxLCAwLjQxMDEwNiwgMC40OTM5MTgsIDAuNTY3MjgsIDAuNjcyMDg4IiwgXAotICAgICAgICAgICIwLjIyMjYxOCwgMC4yOTcyMTYsIDAuMzcwNTg4LCAwLjQyMjk2NCwgMC41MDY3NzksIDAuNTgwMTcxLCAwLjY4NDk0MyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzMTgzLCAwLjE3NjM4OSwgMC4zMjQ0MDYsIDAuNDMxMzE0LCAwLjYwMDU0MSwgMC43NDg2NywgMC45NjMzMzkiLCBcCi0gICAgICAgICAgIjAuMDMxODY3LCAwLjE3NjMzLCAwLjMyNDQwMywgMC40MzA1ODYsIDAuNjAwNjc5LCAwLjc0ODk2NCwgMC45NjMzNDIiLCBcCi0gICAgICAgICAgIjAuMDMxOTA2LCAwLjE3NjMzMiwgMC4zMjQzOTIsIDAuNDMwNjYzLCAwLjYwMDUwNSwgMC43NDg0NTksIDAuOTYzMzU4IiwgXAotICAgICAgICAgICIwLjAzMTgzMiwgMC4xNzYzMjYsIDAuMzI0MzkzLCAwLjQzMTMwMSwgMC42MDA3MjUsIDAuNzQ5MDM1LCAwLjk2MzMzMiIsIFwKLSAgICAgICAgICAiMC4wMzE5MzMsIDAuMTc2MzMxLCAwLjMyNDM4NywgMC40MzEyOCwgMC42MDA1MTEsIDAuNzQ5Mjk3LCAwLjk2MjA3NiIsIFwKLSAgICAgICAgICAiMC4wMzE4MzksIDAuMTc2MzM4LCAwLjMyNDM5NiwgMC40MzA1ODUsIDAuNjAwNTg2LCAwLjc0OTA2OCwgMC45NjMzNDkiLCBcCi0gICAgICAgICAgIjAuMDMxODgyLCAwLjE3NjMzMSwgMC4zMjQzOTUsIDAuNDMwNjAxLCAwLjYwMDc2NCwgMC43NDg4NDIsIDAuOTYzMzQ1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiBjbGVhcjsKLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNzM1NzcsIDAuMjQ4MTExLCAwLjMyMTQ3NiwgMC4zNzM4OCwgMC40NTc3LCAwLjUzMTA3LCAwLjYzNTg3NSIsIFwKLSAgICAgICAgICAiMC4xODM0MzksIDAuMjU3OTczLCAwLjMzMTMzOCwgMC4zODM3NDEsIDAuNDY3NTYyLCAwLjU0MDkzMSwgMC42NDU3MzciLCBcCi0gICAgICAgICAgIjAuMTk1NTQsIDAuMjcwMTU1LCAwLjM0MzUyMiwgMC4zOTU5MTYsIDAuNDc5NzUsIDAuNTUzMTEsIDAuNjU3ODY2IiwgXAotICAgICAgICAgICIwLjIwNjIyMSwgMC4yODA3NjcsIDAuMzU0MTMyLCAwLjQwNjUxOCwgMC40OTAzNTMsIDAuNTYzNzMyLCAwLjY2ODQ2IiwgXAotICAgICAgICAgICIwLjIxNTMzMywgMC4yODk4ODgsIDAuMzYzMjU0LCAwLjQxNTY0MSwgMC40OTk0NywgMC41NzI3ODcsIDAuNjc3NTk0IiwgXAotICAgICAgICAgICIwLjIyODMxNSwgMC4zMDI4NTgsIDAuMzc2MjI0LCAwLjQyODYxOCwgMC41MTI0NDUsIDAuNTg1ODE2LCAwLjY5MDU3NyIsIFwKLSAgICAgICAgICAiMC4yMzg1MjgsIDAuMzEzMDY4LCAwLjM4NjQ1NCwgMC40Mzg4MjksIDAuNTIyNjYsIDAuNTk2MDMxLCAwLjcwMDg0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDMyMTM2LCAwLjE3NjM5NCwgMC4zMjUwOTgsIDAuNDMxNTg3LCAwLjYwMDQ3NiwgMC43NTA2OTgsIDAuOTYzMTM1IiwgXAotICAgICAgICAgICIwLjAzMjEyNywgMC4xNzYzOTYsIDAuMzI1MDk0LCAwLjQzMTU3NywgMC42MDA1MzksIDAuNzUwNjk4LCAwLjk2Mjk5MSIsIFwKLSAgICAgICAgICAiMC4wMzIwNDYsIDAuMTc2NDA1LCAwLjMyNTA5LCAwLjQzMTI1NCwgMC42MDA0OTksIDAuNzUwNzA1LCAwLjk2MzQwMyIsIFwKLSAgICAgICAgICAiMC4wMzIxMzQsIDAuMTc2MzkyLCAwLjMyNTA5NywgMC40MzEyNjMsIDAuNjAxNDM5LCAwLjc1MDY5LCAwLjk2MTgxMiIsIFwKLSAgICAgICAgICAiMC4wMzIxMDQsIDAuMTc2Mzk2LCAwLjMyNTA4NywgMC40MzEyNTgsIDAuNjAwNTk1LCAwLjc1MDQ4NiwgMC45NjM0MTgiLCBcCi0gICAgICAgICAgIjAuMDMyMTAzLCAwLjE3NjQ0LCAwLjMyNDk5OSwgMC40MzE0ODgsIDAuNjAwNjUyLCAwLjc1MDY2MiwgMC45NjMxMSIsIFwKLSAgICAgICAgICAiMC4wMzIwNzMsIDAuMTc2MzUzLCAwLjMyNTA4MSwgMC40MzE0NjMsIDAuNjAwNjYyLCAwLjc1MDY2MywgMC45NjMxNjkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiU04iOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHByZXNldDsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDk3OTQsIDAuMTgxODUzLCAwLjI1MjgxNywgMC4zMDM1MDIsIDAuMzg0NjM3LCAwLjQ1NTU3LCAwLjU1NjkyOCIsIFwKLSAgICAgICAgICAiMC4xMTg5NywgMC4xOTEwMjIsIDAuMjYxOTkyLCAwLjMxMjY2NSwgMC4zOTM4MjIsIDAuNDY0NzA4LCAwLjU2NjEyMiIsIFwKLSAgICAgICAgICAiMC4xMzAwMzIsIDAuMjAxOTksIDAuMjcyOTUxLCAwLjMyMzYyOSwgMC40MDQ3MzIsIDAuNDc1NjgyLCAwLjU3NzA0NCIsIFwKLSAgICAgICAgICAiMC4xNDE5OCwgMC4yMTM5MTUsIDAuMjg0ODc3LCAwLjMzNTU1NCwgMC40MTY2NjIsIDAuNDg3NjE1LCAwLjU4ODk3MSIsIFwKLSAgICAgICAgICAiMC4xNTM5NDMsIDAuMjI1ODk1LCAwLjI5Njg1OCwgMC4zNDc1MDUsIDAuNDI4NjYzLCAwLjQ5OTU5LCAwLjYwMDkzNiIsIFwKLSAgICAgICAgICAiMC4xNzExNCwgMC4yNDMwNzgsIDAuMzE0MDA5LCAwLjM2NDcxNiwgMC40NDU4MTgsIDAuNTE2NzQ5LCAwLjYxODEzOSIsIFwKLSAgICAgICAgICAiMC4xODQ2MDksIDAuMjU2NTg5LCAwLjMyNzU0NCwgMC4zNzgyMTIsIDAuNDU5MzQsIDAuNTMwMjk5LCAwLjYzMTYzNiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzMTU5MywgMC4xNzM3NjcsIDAuMzE5OTY4LCAwLjQyNDYyMywgMC41OTIyMjMsIDAuNzM4NjMxLCAwLjk0NzkwNyIsIFwKLSAgICAgICAgICAiMC4wMzE1ODksIDAuMTczNzE5LCAwLjMxOTk3OCwgMC40MjQwODEsIDAuNTkyMjIzLCAwLjczODYyMSwgMC45NDgwNDEiLCBcCi0gICAgICAgICAgIjAuMDMxNTY2LCAwLjE3Mzc2NCwgMC4zMiwgMC40MjQ2NjYsIDAuNTkyMjUzLCAwLjczODY1MSwgMC45NDgwMDMiLCBcCi0gICAgICAgICAgIjAuMDMxNTc4LCAwLjE3Mzc2NCwgMC4zMTk5MzgsIDAuNDI0NjU4LCAwLjU5MjI0MSwgMC43Mzg2MzIsIDAuOTQ3OTIzIiwgXAotICAgICAgICAgICIwLjAzMTU2MywgMC4xNzM3NCwgMC4zMTk5NzMsIDAuNDI0NjYxLCAwLjU5MjI0NywgMC43Mzg2MzksIDAuOTQ3OTI4IiwgXAotICAgICAgICAgICIwLjAzMTY5NCwgMC4xNzM3MjIsIDAuMzE5OTUzLCAwLjQyNDM2NCwgMC41OTIyMTIsIDAuNzM4NjI2LCAwLjk0NzkwNiIsIFwKLSAgICAgICAgICAiMC4wMzE3MywgMC4xNzM3NDUsIDAuMzE5OTk1LCAwLjQyNDYxNSwgMC41OTIyMTcsIDAuNzM4NjIyLCAwLjk0Nzg3OSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE1MjEwNywgMC4yMjY3MzEsIDAuMzAwMDk5LCAwLjM1MjQ4MywgMC40MzYyOTYsIDAuNTA5NjY5LCAwLjYxNDQ0NCIsIFwKLSAgICAgICAgICAiMC4xNjEzMTIsIDAuMjM1ODYsIDAuMzA5MjI1LCAwLjM2MTYwNywgMC40NDU0NDYsIDAuNTE4NzgyLCAwLjYyMzU0NCIsIFwKLSAgICAgICAgICAiMC4xNzIwMjgsIDAuMjQ2Njc5LCAwLjMyMDA1LCAwLjM3MjQzNCwgMC40NTYyNjMsIDAuNTI5NjAzLCAwLjYzNDM5NCIsIFwKLSAgICAgICAgICAiMC4xODI2MDksIDAuMjU3MjczLCAwLjMzMDY0NCwgMC4zODMwMjgsIDAuNDY2ODUyLCAwLjU0MDE3NSwgMC42NDQ5ODkiLCBcCi0gICAgICAgICAgIjAuMTkzMTcyLCAwLjI2NzgyLCAwLjM0MTE5LCAwLjM5MzU3NywgMC40Nzc0MTEsIDAuNTUwNzUzLCAwLjY1NTUzNiIsIFwKLSAgICAgICAgICAiMC4yMDk3MjQsIDAuMjg0Mzg0LCAwLjM1Nzc1NCwgMC40MTAxNDEsIDAuNDkzOTkxLCAwLjU2NzM1LCAwLjY3MjEwMSIsIFwKLSAgICAgICAgICAiMC4yMjM2NjIsIDAuMjk4MjA2LCAwLjM3MTU3MiwgMC40MjM5NTcsIDAuNTA3Nzg3LCAwLjU4MTE2MiwgMC42ODU5MDciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzIwNzIsIDAuMTc2NDc4LCAwLjMyNTA4NSwgMC40MzEyMjksIDAuNjAxNjksIDAuNzUwNzkxLCAwLjk2MzQwMSIsIFwKLSAgICAgICAgICAiMC4wMzIxMDgsIDAuMTc2Mzk1LCAwLjMyNTA2MywgMC40MzE0MiwgMC42MDA0MzEsIDAuNzQ5NDA2LCAwLjk2MjkyOCIsIFwKLSAgICAgICAgICAiMC4wMzIwNjEsIDAuMTc2NDE5LCAwLjMyNTA3NSwgMC40MzEyMiwgMC42MDE2ODMsIDAuNzUwNjU2LCAwLjk2MzM0IiwgXAotICAgICAgICAgICIwLjAzMjA0OCwgMC4xNzY0MTQsIDAuMzI1MDQxLCAwLjQzMTIzNiwgMC42MDE2NDYsIDAuNzUwNTY0LCAwLjk2MzMzIiwgXAotICAgICAgICAgICIwLjAzMjA1MywgMC4xNzY0MDYsIDAuMzI1MDg0LCAwLjQzMTM2MiwgMC42MDE3MjMsIDAuNzUwNjksIDAuOTYzMzMyIiwgXAotICAgICAgICAgICIwLjAzMjA1MywgMC4xNzY0MDYsIDAuMzI1MDYyLCAwLjQzMTE5OSwgMC42MDE3OTIsIDAuNzUwNjY2LCAwLjk2MzMxMyIsIFwKLSAgICAgICAgICAiMC4wMzIwODQsIDAuMTc2NDE0LCAwLjMyNTAyLCAwLjQzMTM4NCwgMC42MDE2MDgsIDAuNzUwNjY4LCAwLjk2MzM4NCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMTgwMywgMC4wMTE5NTgsIDAuMDExOTgyLCAwLjAxMTk4OSwgMC4wMTE5OTUsIDAuMDExOTk4LCAwLjAxMjAwNCIsIFwKLSAgICAgICAgICAiMC4wMTE3NzUsIDAuMDExOTMsIDAuMDExOTUzLCAwLjAxMTk2MiwgMC4wMTE5NjYsIDAuMDExOTY5LCAwLjAxMTk3MiIsIFwKLSAgICAgICAgICAiMC4wMTE3NiwgMC4wMTE5MTQsIDAuMDExOTM3LCAwLjAxMTk0NCwgMC4wMTE5NSwgMC4wMTE5NTQsIDAuMDExOTU3IiwgXAotICAgICAgICAgICIwLjAxMTc1MSwgMC4wMTE5MDksIDAuMDExOTMzLCAwLjAxMTk0MiwgMC4wMTE5NDYsIDAuMDExOTQ5LCAwLjAxMTk1MiIsIFwKLSAgICAgICAgICAiMC4wMTE3NTgsIDAuMDExOTEzLCAwLjAxMTk0LCAwLjAxMTk0MywgMC4wMTE5NDksIDAuMDExOTUzLCAwLjAxMTk1NSIsIFwKLSAgICAgICAgICAiMC4wMTE3ODQsIDAuMDExOTQsIDAuMDExOTY3LCAwLjAxMTk3MSwgMC4wMTE5NzcsIDAuMDExOTc4LCAwLjAxMTk4NSIsIFwKLSAgICAgICAgICAiMC4wMTE3NzksIDAuMDExOTQsIDAuMDExOTY0LCAwLjAxMTk3NCwgMC4wMTE5OCwgMC4wMTE5ODQsIDAuMDExOTg0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTEyNzIsIDAuMDExNDg0LCAwLjAxMTUxNywgMC4wMTE1MjcsIDAuMDExNTM2LCAwLjAxMTU0MSwgMC4wMTE1NDUiLCBcCi0gICAgICAgICAgIjAuMDExMjQ2LCAwLjAxMTQ1NiwgMC4wMTE0OSwgMC4wMTE1LCAwLjAxMTUwOSwgMC4wMTE1MTQsIDAuMDExNTE5IiwgXAotICAgICAgICAgICIwLjAxMTIzOCwgMC4wMTE0NTEsIDAuMDExNDg1LCAwLjAxMTQ5NSwgMC4wMTE1MDQsIDAuMDExNTA5LCAwLjAxMTUxMyIsIFwKLSAgICAgICAgICAiMC4wMTEyNTYsIDAuMDExNDY2LCAwLjAxMTQ5OSwgMC4wMTE1MDksIDAuMDExNTE4LCAwLjAxMTUyMiwgMC4wMTE1MjciLCBcCi0gICAgICAgICAgIjAuMDExMjY2LCAwLjAxMTQ3OSwgMC4wMTE1MTIsIDAuMDExNTIyLCAwLjAxMTUzMiwgMC4wMTE1MzYsIDAuMDExNTQxIiwgXAotICAgICAgICAgICIwLjAxMTMyOCwgMC4wMTE1MzksIDAuMDExNTcyLCAwLjAxMTU4MiwgMC4wMTE1OTEsIDAuMDExNTk2LCAwLjAxMTYiLCBcCi0gICAgICAgICAgIjAuMDExMzMsIDAuMDExNTQ0LCAwLjAxMTU3OCwgMC4wMTE1ODksIDAuMDExNTk4LCAwLjAxMTYwMiwgMC4wMTE2MDciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTM4MDcsIDAuMDE0MDI4LCAwLjAxNDA2NSwgMC4wMTQwNzcsIDAuMDE0MDg3LCAwLjAxNDA5MywgMC4wMTQwOTciLCBcCi0gICAgICAgICAgIjAuMDEzNzg0LCAwLjAxNDAwNSwgMC4wMTQwNDMsIDAuMDE0MDU1LCAwLjAxNDA2NSwgMC4wMTQwNywgMC4wMTQwNzQiLCBcCi0gICAgICAgICAgIjAuMDEzNzc2LCAwLjAxMzk5NywgMC4wMTQwMzQsIDAuMDE0MDQ2LCAwLjAxNDA1NiwgMC4wMTQwNjIsIDAuMDE0MDY2IiwgXAotICAgICAgICAgICIwLjAxMzc3MiwgMC4wMTM5OTMsIDAuMDE0MDMxLCAwLjAxNDA0MywgMC4wMTQwNTMsIDAuMDE0MDU4LCAwLjAxNDA2MyIsIFwKLSAgICAgICAgICAiMC4wMTM3ODQsIDAuMDE0MDA1LCAwLjAxNDA0MiwgMC4wMTQwNTQsIDAuMDE0MDY0LCAwLjAxNDA3LCAwLjAxNDA3NSIsIFwKLSAgICAgICAgICAiMC4wMTM3OTQsIDAuMDE0MDE1LCAwLjAxNDA1MiwgMC4wMTQwNjQsIDAuMDE0MDc0LCAwLjAxNDA4LCAwLjAxNDA4NCIsIFwKLSAgICAgICAgICAiMC4wMTM3OTYsIDAuMDE0MDE3LCAwLjAxNDA1NSwgMC4wMTQwNjYsIDAuMDE0MDc3LCAwLjAxNDA4MiwgMC4wMTQwODYiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfcG93ZXIoc2NhbGFyKSB7Ci0gICAgICAgIHZhbHVlcygiMCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxNDM4MiwgMC4wMTQ1MywgMC4wMTQ1NSwgMC4wMTQ1NTYsIDAuMDE0NTYxLCAwLjAxNDU2NCwgMC4wMTQ1NjYiLCBcCi0gICAgICAgICAgIjAuMDE0MzQ2LCAwLjAxNDQ5MSwgMC4wMTQ1MSwgMC4wMTQ1MTcsIDAuMDE0NTIyLCAwLjAxNDUyNSwgMC4wMTQ1MjciLCBcCi0gICAgICAgICAgIjAuMDE0MzI1LCAwLjAxNDQ3MywgMC4wMTQ0OTQsIDAuMDE0NSwgMC4wMTQ1MDQsIDAuMDE0NTA3LCAwLjAxNDUxIiwgXAotICAgICAgICAgICIwLjAxNDMxOSwgMC4wMTQ0NjcsIDAuMDE0NDg3LCAwLjAxNDQ5MywgMC4wMTQ1MDgsIDAuMDE0NTAxLCAwLjAxNDUwMyIsIFwKLSAgICAgICAgICAiMC4wMTQzMTEsIDAuMDE0NDYxLCAwLjAxNDQ4MiwgMC4wMTQ0ODgsIDAuMDE0NDkzLCAwLjAxNDQ5NiwgMC4wMTQ0OTkiLCBcCi0gICAgICAgICAgIjAuMDE0MzI1LCAwLjAxNDQ3OSwgMC4wMTQ1MDEsIDAuMDE0NTA4LCAwLjAxNDUxNiwgMC4wMTQ1MTIsIDAuMDE0NTE5IiwgXAotICAgICAgICAgICIwLjAxNDMzMywgMC4wMTQ0ODUsIDAuMDE0NTIyLCAwLjAxNDUyOCwgMC4wMTQ1MzUsIDAuMDE0NTM3LCAwLjAxNDU0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTA4ODUsIDAuMDExMTA2LCAwLjAxMTE0NCwgMC4wMTExNTYsIDAuMDExMTY2LCAwLjAxMTE3MiwgMC4wMTExNzciLCBcCi0gICAgICAgICAgIjAuMDEwODM0LCAwLjAxMTA1NSwgMC4wMTEwOTMsIDAuMDExMTA1LCAwLjAxMTExNSwgMC4wMTExMjEsIDAuMDExMTI1IiwgXAotICAgICAgICAgICIwLjAxMDgwNywgMC4wMTEwMjksIDAuMDExMDY2LCAwLjAxMTA3OCwgMC4wMTEwODksIDAuMDExMDk0LCAwLjAxMTA5OSIsIFwKLSAgICAgICAgICAiMC4wMTA3OTIsIDAuMDExMDEzLCAwLjAxMTA1LCAwLjAxMTA2MywgMC4wMTEwNzMsIDAuMDExMDc5LCAwLjAxMTA4NCIsIFwKLSAgICAgICAgICAiMC4wMTA3OCwgMC4wMTEwMDIsIDAuMDExMDM5LCAwLjAxMTA1MSwgMC4wMTEwNjIsIDAuMDExMDY3LCAwLjAxMTA3MiIsIFwKLSAgICAgICAgICAiMC4wMTA3NjYsIDAuMDEwOTg3LCAwLjAxMTAyNSwgMC4wMTEwMzcsIDAuMDExMDQ3LCAwLjAxMTA1MywgMC4wMTEwNTgiLCBcCi0gICAgICAgICAgIjAuMDEwNzU3LCAwLjAxMDk3NywgMC4wMTEwMTUsIDAuMDExMDI4LCAwLjAxMTAzOCwgMC4wMTEwNDQsIDAuMDExMDQ5Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihSTikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNTk0OTUxOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDU5NDg1NDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA1OTQ5NTE7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwODEsIDAuMDAwNzg3LCAwLjAwMDc3OCwgMC4wMDA3ODQsIDAuMDAwNzkyLCAwLjAwMDgxNiwgMC4wMDA4MzYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDI1MjgsIDAuMDAyNTExLCAwLjAwMjUwNiwgMC4wMDI1MSwgMC4wMDI1MTksIDAuMDAyNTQxLCAwLjAwMjU1OCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQmIVNFJiFTSSZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fU0VfRVFfMF9BTl9TSV9FUV8wX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4xNzM1NzcsIDAuMTgzNDM5LCAwLjE5NTU0LCAwLjIwNjIyMSwgMC4yMTUzMzMsIDAuMjI4MzE1LCAwLjIzODUyOCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJlY292ZXJ5X3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiU04iOwotICAgICAgc2RmX2NvbmQgOiAiU04gPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQocmVjb3ZlcnlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY4NzUsIDAuMDU3NSwgMC4wMzg3NSwgMC4wMjYyNSwgMC4wMTM3NSwgLTAuMDAyNSwgLTAuMDExMjUiLCBcCi0gICAgICAgICAgIjAuMDczNzUsIDAuMDYyNSwgMC4wNSwgMC4wMzc1LCAwLjAyNSwgMC4wMDg3NSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMDg2MjUsIDAuMDc1LCAwLjA2MjUsIDAuMDUsIDAuMDM3NSwgMC4wMjEyNSwgMC4wMTI1IiwgXAotICAgICAgICAgICIwLjA5ODc1LCAwLjA4NzUsIDAuMDc1LCAwLjA2MjUsIDAuMDUsIDAuMDMzNzUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMTExMjUsIDAuMSwgMC4wODEyNSwgMC4wNjg3NSwgMC4wNTYyNSwgMC4wNDYyNSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4xMjEyNSwgMC4xMSwgMC4wOTc1LCAwLjA4NSwgMC4wNzI1LCAwLjA1NjI1LCAwLjA0NzUiLCBcCi0gICAgICAgICAgIjAuMTM2MjUsIDAuMTI1LCAwLjEwNjI1LCAwLjA5Mzc1LCAwLjA4MTI1LCAwLjA2NSwgMC4wNTYyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJlY292ZXJ5X3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUQmIVNFJiFTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fU0VfRVFfMF9BTl9TSV9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHJlY292ZXJ5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4MTI1LCAwLjA5MjUsIDAuMTA1LCAwLjExMTI1LCAwLjExNzUsIDAuMTMzNzUsIDAuMTQ4NzUiLCBcCi0gICAgICAgICAgIjAuMDc2MjUsIDAuMDgxMjUsIDAuMDkzNzUsIDAuMSwgMC4xMTI1LCAwLjEyODc1LCAwLjEzNzUiLCBcCi0gICAgICAgICAgIjAuMDYzNzUsIDAuMDc1LCAwLjA4NzUsIDAuMDkzNzUsIDAuMTA2MjUsIDAuMTE2MjUsIDAuMTMxMjUiLCBcCi0gICAgICAgICAgIjAuMDU3NSwgMC4wNjg3NSwgMC4wODEyNSwgMC4wODc1LCAwLjEsIDAuMTEsIDAuMTI1IiwgXAotICAgICAgICAgICIwLjA1MTI1LCAwLjA2MjUsIDAuMDc1LCAwLjA4MTI1LCAwLjA5Mzc1LCAwLjEwMzc1LCAwLjExODc1IiwgXAotICAgICAgICAgICIwLjA0NzUsIDAuMDU4NzUsIDAuMDcxMjUsIDAuMDc3NSwgMC4wODM3NSwgMC4xLCAwLjEwODc1IiwgXAotICAgICAgICAgICIwLjA0NSwgMC4wNTYyNSwgMC4wNjI1LCAwLjA3NSwgMC4wODEyNSwgMC4wOTc1LCAwLjEwNjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogcmVtb3ZhbF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlNOIjsKLSAgICAgIHNkZl9jb25kIDogIlNOID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHJlbW92YWxfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAxMjUsIC0wLjAwMTI1LCAwLjAxMTI1LCAwLjAyMzc1LCAwLjAzLCAwLjA0NjI1LCAwLjA1NSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxMjUsIDAsIDAuMDEyNSwgMC4wMjUsIDAuMDM1LCAwLjA1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDI1LCAtMC4wMTI1LCAwLCAwLjAxMjUsIDAuMDIyNSwgMC4wMzc1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDM3NSwgLTAuMDI1LCAtMC4wMTI1LCAwLCAwLjAxNjI1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNDM3NSwgLTAuMDMxMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAwLjAwMzc1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjA3MTI1LCAtMC4wNiwgLTAuMDQ3NSwgLTAuMDM1LCAtMC4wMjI1LCAtMC4wMTI1LCAwLjAwMjUiLCBcCi0gICAgICAgICAgIi0wLjA4LCAtMC4wNjg3NSwgLTAuMDU2MjUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMjEyNSwgLTAuMDA2MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFNFKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE1NTE2NzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE1NTA3ODsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE1NTE2NzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDU3MTcsIDAuMDA1Njk3LCAwLjAwNTY4LCAwLjAwNTY4MSwgMC4wMDU2ODUsIDAuMDA1NywgMC4wMDU3MTgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDc1MjIsIDAuMDA3NDY3LCAwLjAwNzQ2LCAwLjAwNzQ0NiwgMC4wMDc0NjIsIDAuMDA3NDk1LCAwLjAwNzU0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlJOJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIlJOX0VRXzFfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMTg3NSwgLTAuMDA3NSwgMC4wMDUsIDAuMDE3NSwgMC4wMywgMC4wNCwgMC4wNTUiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAuMDA2MjUsIDAuMDE4NzUsIDAuMDM1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDMxMjUsIC0wLjAxODc1LCAtMC4wMDYyNSwgMC4wMDYyNSwgMC4wMjI1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDM3NSwgLTAuMDI1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMC4wMSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNSwgLTAuMDM3NSwgLTAuMDI1LCAtMC4wMTI1LCAwLjAwMzc1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjA3MTI1LCAtMC4wNiwgLTAuMDQ3NSwgLTAuMDM1LCAtMC4wMjI1LCAtMC4wMTI1LCAwLjAwMjUiLCBcCi0gICAgICAgICAgIi0wLjA4LCAtMC4wNjg3NSwgLTAuMDU2MjUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMjEyNSwgLTAuMDEyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2MjUsIDAuMDE3NSwgMC4wMywgMC4wMzYyNSwgMC4wNDg3NSwgMC4wNjUsIDAuMDczNzUiLCBcCi0gICAgICAgICAgIi0wLjAwNSwgMC4wMDYyNSwgMC4wMTg3NSwgMC4wMzEyNSwgMC4wMzc1LCAwLjA1Mzc1LCAwLjA2MjUiLCBcCi0gICAgICAgICAgIi0wLjAxMTI1LCAtMC4wMDYyNSwgMC4wMDYyNSwgMC4wMTg3NSwgMC4wMzEyNSwgMC4wNDEyNSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxMjUsIDAsIDAuMDEyNSwgMC4wMTg3NSwgMC4wMzUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMjUsIC0wLjAxMjUsIDAsIDAuMDEyNSwgMC4wMjI1LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjA0LCAtMC4wMzUsIC0wLjAyMjUsIC0wLjAxLCAtMC4wMDM3NSwgMC4wMTI1LCAwLjAyMTI1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDQzNzUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgMC4wMDM3NSwgMC4wMTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJSTiZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJSTl9FUV8xX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDkzNzUsIDAuMDgyNSwgMC4wNywgMC4wNTEyNSwgMC4wNDUsIDAuMDI4NzUsIDAuMDIiLCBcCi0gICAgICAgICAgIjAuMTA1LCAwLjA5Mzc1LCAwLjA3NSwgMC4wNjI1LCAwLjA1LCAwLjA0LCAwLjAzMTI1IiwgXAotICAgICAgICAgICIwLjExNzUsIDAuMSwgMC4wODc1LCAwLjA3NSwgMC4wNjI1LCAwLjA1MjUsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiMC4xMjM3NSwgMC4xMTI1LCAwLjEsIDAuMDg3NSwgMC4wNzUsIDAuMDY1LCAwLjA1IiwgXAotICAgICAgICAgICIwLjEzNjI1LCAwLjEyNSwgMC4xMTI1LCAwLjEsIDAuMDg3NSwgMC4wNzEyNSwgMC4wNjI1IiwgXAotICAgICAgICAgICIwLjE1MjUsIDAuMTQxMjUsIDAuMTI4NzUsIDAuMTE2MjUsIDAuMTAzNzUsIDAuMDg3NSwgMC4wNzg3NSIsIFwKLSAgICAgICAgICAiMC4xNjc1LCAwLjE1LCAwLjEzNzUsIDAuMTI1LCAwLjExMjUsIDAuMTAyNSwgMC4wOTM3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExODc1LCAwLjEwNzUsIDAuMDg4NzUsIDAuMDc2MjUsIDAuMDYzNzUsIDAuMDUzNzUsIDAuMDQ1IiwgXAotICAgICAgICAgICIwLjEzLCAwLjExMjUsIDAuMSwgMC4wODc1LCAwLjA3NSwgMC4wNjUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIjAuMTM2MjUsIDAuMTI1LCAwLjExMjUsIDAuMSwgMC4wODc1LCAwLjA3NzUsIDAuMDYyNSIsIFwKLSAgICAgICAgICAiMC4xNDg3NSwgMC4xMzc1LCAwLjExODc1LCAwLjEwNjI1LCAwLjEsIDAuMDgzNzUsIDAuMDc1IiwgXAotICAgICAgICAgICIwLjE1NSwgMC4xNDM3NSwgMC4xMzEyNSwgMC4xMTg3NSwgMC4xMDYyNSwgMC4wOSwgMC4wODEyNSIsIFwKLSAgICAgICAgICAiMC4xNjUsIDAuMTUzNzUsIDAuMTQxMjUsIDAuMTI4NzUsIDAuMTE2MjUsIDAuMTA2MjUsIDAuMDkxMjUiLCBcCi0gICAgICAgICAgIjAuMTczNzUsIDAuMTYyNSwgMC4xNSwgMC4xMzc1LCAwLjEyNSwgMC4xMDg3NSwgMC4xIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTSSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwOTQzNjc4OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDk0MDc1NDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA5NDM2Nzg7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA0MzQsIDAuMDA0MzA4LCAwLjAwNDI5LCAwLjAwNDI4LCAwLjAwNDI3NCwgMC4wMDQyNzYsIDAuMDA0Mjg1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA2Mjc4LCAwLjAwNjI2LCAwLjAwNjI0OCwgMC4wMDYyNDIsIDAuMDA2MjM5LCAwLjAwNjIzOSwgMC4wMDYyNDUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiUk4mU0UmU04iOwotICAgICAgc2RmX2NvbmQgOiAiUk5fRVFfMV9BTl9TRV9FUV8xX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDQzNzUsIC0wLjAzMjUsIC0wLjAyNjI1LCAtMC4wMTM3NSwgLTAuMDA3NSwgMC4wMDI1LCAwLjAwNSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjA0Mzc1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDA4NzUsIDAiLCBcCi0gICAgICAgICAgIi0wLjA2MTI1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMjEyNSwgLTAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDczNzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDI3NSwgLTAuMDI1IiwgXAotICAgICAgICAgICItMC4wOCwgLTAuMDc1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjA0LCAtMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDk2MjUsIC0wLjA4NSwgLTAuMDc4NzUsIC0wLjA3MjUsIC0wLjA2NjI1LCAtMC4wNTYyNSwgLTAuMDQ3NSIsIFwKLSAgICAgICAgICAiLTAuMTA1LCAtMC4xLCAtMC4wODc1LCAtMC4wODEyNSwgLTAuMDc1LCAtMC4wNjUsIC0wLjA2MjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLCAwLjAxMTI1LCAwLjAyMzc1LCAwLjAzLCAwLjA0MjUsIDAuMDU4NzUsIDAuMDY3NSIsIFwKLSAgICAgICAgICAiLTAuMDExMjUsIDAsIDAuMDEyNSwgMC4wMjUsIDAuMDMxMjUsIDAuMDQ3NSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiLTAuMDE3NSwgLTAuMDA2MjUsIDAuMDA2MjUsIDAuMDEyNSwgMC4wMjUsIDAuMDQxMjUsIDAuMDUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAuMDA2MjUsIDAuMDE4NzUsIDAuMDI4NzUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMjUsIC0wLjAxMjUsIDAsIDAuMDA2MjUsIDAuMDIyNSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDQ2MjUsIC0wLjAzNSwgLTAuMDIyNSwgLTAuMDEsIC0wLjAwMzc1LCAwLjAxMjUsIDAuMDIxMjUiLCBcCi0gICAgICAgICAgIi0wLjA1NSwgLTAuMDQzNzUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgMC4wMDM3NSwgMC4wMTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJSTiZTRSZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJSTl9FUV8xX0FOX1NFX0VRXzFfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xLCAwLjA4ODc1LCAwLjA3NjI1LCAwLjA2Mzc1LCAwLjA1MTI1LCAwLjAzNSwgMC4wMjYyNSIsIFwKLSAgICAgICAgICAiMC4xMTEyNSwgMC4wOTM3NSwgMC4wODEyNSwgMC4wNjg3NSwgMC4wNTYyNSwgMC4wNDYyNSwgMC4wMzc1IiwgXAotICAgICAgICAgICIwLjExNzUsIDAuMTA2MjUsIDAuMDkzNzUsIDAuMDgxMjUsIDAuMDY4NzUsIDAuMDU4NzUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMTMsIDAuMTE4NzUsIDAuMTA2MjUsIDAuMDg3NSwgMC4wODEyNSwgMC4wNjUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIjAuMTQyNSwgMC4xMzEyNSwgMC4xMTI1LCAwLjEsIDAuMDg3NSwgMC4wNzc1LCAwLjA2ODc1IiwgXAotICAgICAgICAgICIwLjE1MjUsIDAuMTQxMjUsIDAuMTI4NzUsIDAuMTE2MjUsIDAuMTAzNzUsIDAuMDkzNzUsIDAuMDc4NzUiLCBcCi0gICAgICAgICAgIjAuMTY3NSwgMC4xNTYyNSwgMC4xMzc1LCAwLjEzMTI1LCAwLjExODc1LCAwLjEwMjUsIDAuMDkzNzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjg3NSwgMC4wNTc1LCAwLjA0NSwgMC4wMzI1LCAwLjAyLCAwLjAwMzc1LCAtMC4wMDUiLCBcCi0gICAgICAgICAgIjAuMDgsIDAuMDY4NzUsIDAuMDU2MjUsIDAuMDQzNzUsIDAuMDMxMjUsIDAuMDE1LCAwIiwgXAotICAgICAgICAgICIwLjA4NjI1LCAwLjA3NSwgMC4wNjI1LCAwLjA1LCAwLjAzNzUsIDAuMDIxMjUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4wOTg3NSwgMC4wODc1LCAwLjA3NSwgMC4wNjI1LCAwLjA1LCAwLjAzMzc1LCAwLjAxODc1IiwgXAotICAgICAgICAgICIwLjEwNSwgMC4wOTM3NSwgMC4wODEyNSwgMC4wNjg3NSwgMC4wNTYyNSwgMC4wNCwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4xMjEyNSwgMC4xMSwgMC4wOTc1LCAwLjA4NSwgMC4wNzI1LCAwLjA1NjI1LCAwLjA0MTI1IiwgXAotICAgICAgICAgICIwLjEzLCAwLjExODc1LCAwLjEwNjI1LCAwLjA5Mzc1LCAwLjA4MTI1LCAwLjA2NSwgMC4wNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oU04pICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTgzNzI3OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTgzNzI3OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTgzNjkyOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDY1MywgMC4wMDA2NTIsIDAuMDAwNjUyLCAwLjAwMDY1MiwgMC4wMDA2NTIsIDAuMDAwNjUyLCAwLjAwMDY1MiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDY1NCwgMC4wMDA2NTQsIDAuMDAwNjU0LCAwLjAwMDY1NCwgMC4wMDA2NTQsIDAuMDAwNjU0LCAwLjAwMDY1NCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQmIVJOJiFTRSYhU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1JOX0VRXzBfQU5fU0VfRVFfMF9BTl9TSV9FUV8wID09IDEnYjEiOwotICAgICAgZmFsbF9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMTA5Nzg4LCAwLjExODkyOCwgMC4xMzAwMzIsIDAuMTQxOTgsIDAuMTUzOTQzLCAwLjE3MTEzOSwgMC4xODQ2MDUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiByZWNvdmVyeV9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlJOIjsKLSAgICAgIHNkZl9jb25kIDogIlJOID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHJlY292ZXJ5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjI1LCAtMC4wMDUsIC0wLjAxNzUsIC0wLjAzLCAtMC4wNDI1LCAtMC4wNTg3NSwgLTAuMDczNzUiLCBcCi0gICAgICAgICAgIjAuMDE3NSwgMC4wMDYyNSwgLTAuMDA2MjUsIC0wLjAxODc1LCAtMC4wMzc1LCAtMC4wNTM3NSwgLTAuMDY4NzUiLCBcCi0gICAgICAgICAgIjAuMDMsIDAuMDE4NzUsIDAsIC0wLjAxMjUsIC0wLjAyNSwgLTAuMDQxMjUsIC0wLjA1NjI1IiwgXAotICAgICAgICAgICIwLjAzNjI1LCAwLjAyNSwgMC4wMTI1LCAwLCAtMC4wMTI1LCAtMC4wMjg3NSwgLTAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMDQ4NzUsIDAuMDM3NSwgMC4wMjUsIDAuMDEyNSwgMCwgLTAuMDIyNSwgLTAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMDY1LCAwLjA1Mzc1LCAwLjA0MTI1LCAwLjAyODc1LCAwLjAxNjI1LCAtMC4wMDYyNSwgLTAuMDE1IiwgXAotICAgICAgICAgICIwLjA4LCAwLjA2ODc1LCAwLjA1NjI1LCAwLjA0Mzc1LCAwLjAyNSwgMC4wMDg3NSwgLTAuMDA2MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiByZW1vdmFsX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiUk4iOwotICAgICAgc2RmX2NvbmQgOiAiUk4gPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQocmVtb3ZhbF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzc1LCAwLjA0ODc1LCAwLjA2MTI1LCAwLjA3Mzc1LCAwLjA4NjI1LCAwLjEwMjUsIDAuMTExMjUiLCBcCi0gICAgICAgICAgIjAuMDI2MjUsIDAuMDM3NSwgMC4wNSwgMC4wNjI1LCAwLjA3NSwgMC4wOTEyNSwgMC4xMDYyNSIsIFwKLSAgICAgICAgICAiMC4wMTM3NSwgMC4wMjUsIDAuMDM3NSwgMC4wNSwgMC4wNjI1LCAwLjA3ODc1LCAwLjA5Mzc1IiwgXAotICAgICAgICAgICIwLjAwNzUsIDAuMDE4NzUsIDAuMDMxMjUsIDAuMDQzNzUsIDAuMDU2MjUsIDAuMDcyNSwgMC4wODEyNSIsIFwKLSAgICAgICAgICAiLTAuMDA1LCAwLjAwNjI1LCAwLjAxODc1LCAwLjAzMTI1LCAwLjA0Mzc1LCAwLjA2LCAwLjA3NSIsIFwKLSAgICAgICAgICAiLTAuMDIxMjUsIC0wLjAxLCAwLjAwMjUsIDAuMDE1LCAwLjAyNzUsIDAuMDQzNzUsIDAuMDU4NzUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAuMDA2MjUsIDAuMDE4NzUsIDAuMDM1LCAwLjA0Mzc1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IFNERkZTUlgxICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChTREZGU1JYMSkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjQ4MDgwNDsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBmZiAoTjM1LFFCSU5UKSB7Ci0gICAgbmV4dF9zdGF0ZSA6ICIoKFNFIFNJKSArICghU0UgRCkpIjsKLSAgICBjbG9ja2VkX29uIDogIkNLIjsKLSAgICBjbGVhciA6ICIoIVJOKSI7Ci0gICAgcHJlc2V0IDogIighU04pIjsKLSAgICBjbGVhcl9wcmVzZXRfdmFyMSA6IEg7Ci0gICAgY2xlYXJfcHJlc2V0X3ZhcjIgOiBMOwotICB9Ci0gIHBpbihDSykgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjU1NDQ2OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDY1NTE4NjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2NTU0NDY7Ci0gICAgY2xvY2sgOiB0cnVlOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjQ5NCwgMC4wMDI0NjksIDAuMDAyNDU0LCAwLjAwMjQ1NiwgMC4wMDI0NjcsIDAuMDAyNDg3LCAwLjAwMjUxMiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNzA1MiwgMC4wMDcwMjksIDAuMDA3MDIyLCAwLjAwNzAyOCwgMC4wMDcwNTEsIDAuMDA3MDg1LCAwLjAwNzExNiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQmUk4mIVNFJiFTSSZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fUk5fRVFfMV9BTl9TRV9FUV8wX0FOX1NJX0VRXzBfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjE4MTA3OCwgMC4xOTEzNTUsIDAuMjA0MjAyLCAwLjIxNjI1OCwgMC4yMjcxNTcsIDAuMjQyMTkxLCAwLjI1MzkzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4xMTEwNywgMC4xMjA4NDgsIDAuMTMzMjI1LCAwLjE0NDg3NSwgMC4xNTUyNjUsIDAuMTY5MTkxLCAwLjE3OTgzNCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjU1Njk7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjU0MjY4OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDY1NTY5OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzMyMywgMC4wMDMzMDYsIDAuMDAzMjk3LCAwLjAwMzI5MSwgMC4wMDMyODgsIDAuMDAzMjg4LCAwLjAwMzI5MyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNDYxOSwgMC4wMDQ2MDksIDAuMDA0NjAzLCAwLjAwNDYsIDAuMDA0NTk5LCAwLjAwNDU5OSwgMC4wMDQ2MDEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiUk4mIVNFJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIlJOX0VRXzFfQU5fU0VfRVFfMF9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjA1NjI1LCAtMC4wNDUsIC0wLjAzODc1LCAtMC4wMzI1LCAtMC4wMjYyNSwgLTAuMDE2MjUsIC0wLjAxMzc1IiwgXAotICAgICAgICAgICItMC4wNjEyNSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDI3NSwgLTAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjA3Mzc1LCAtMC4wNjg3NSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDQsIC0wLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wODYyNSwgLTAuMDc1LCAtMC4wNjg3NSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA1MjUsIC0wLjA0Mzc1IiwgXAotICAgICAgICAgICItMC4wOTg3NSwgLTAuMDg3NSwgLTAuMDgxMjUsIC0wLjA3NSwgLTAuMDY4NzUsIC0wLjA1ODc1LCAtMC4wNTYyNSIsIFwKLSAgICAgICAgICAiLTAuMTA4NzUsIC0wLjEwMzc1LCAtMC4wOTc1LCAtMC4wOTEyNSwgLTAuMDg1LCAtMC4wNzUsIC0wLjA3MjUiLCBcCi0gICAgICAgICAgIi0wLjEyMzc1LCAtMC4xMTI1LCAtMC4xMDYyNSwgLTAuMSwgLTAuMSwgLTAuMDksIC0wLjA4MTI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDE4NzUsIC0wLjAwNzUsIC0wLjAwMTI1LCAwLjAxMTI1LCAwLjAxNzUsIDAuMDMzNzUsIDAuMDQyNSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAxODc1LCAtMC4wMDYyNSwgMC4wMDYyNSwgMC4wMTI1LCAwLjAyMjUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLCAwLjAxNjI1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjAzNzUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLjAwMzc1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjA1NSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAwMjUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA3MTI1LCAtMC4wNiwgLTAuMDQ3NSwgLTAuMDM1LCAtMC4wMjg3NSwgLTAuMDE4NzUsIC0wLjAxIiwgXAotICAgICAgICAgICItMC4wOCwgLTAuMDY4NzUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDM3NSwgLTAuMDI3NSwgLTAuMDE4NzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlJOJiFTRSZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJSTl9FUV8xX0FOX1NFX0VRXzBfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTg3NSwgMC4xMDc1LCAwLjA4ODc1LCAwLjA3NjI1LCAwLjA3LCAwLjA1Mzc1LCAwLjA0NSIsIFwKLSAgICAgICAgICAiMC4xMjM3NSwgMC4xMTI1LCAwLjEsIDAuMDg3NSwgMC4wNzUsIDAuMDY1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICIwLjEzNjI1LCAwLjEyNSwgMC4xMTI1LCAwLjEsIDAuMDg3NSwgMC4wNzc1LCAwLjA2ODc1IiwgXAotICAgICAgICAgICIwLjE0ODc1LCAwLjEzNzUsIDAuMTE4NzUsIDAuMTA2MjUsIDAuMSwgMC4wODM3NSwgMC4wODEyNSIsIFwKLSAgICAgICAgICAiMC4xNTUsIDAuMTQzNzUsIDAuMTMxMjUsIDAuMTE4NzUsIDAuMTEyNSwgMC4wOTYyNSwgMC4wODc1IiwgXAotICAgICAgICAgICIwLjE3MTI1LCAwLjE2LCAwLjE0NzUsIDAuMTM1LCAwLjEyMjUsIDAuMTEyNSwgMC4xMDM3NSIsIFwKLSAgICAgICAgICAiMC4xODYyNSwgMC4xNzUsIDAuMTYyNSwgMC4xNSwgMC4xMzc1LCAwLjEyNzUsIDAuMTE4NzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTM3NSwgMC4wODI1LCAwLjA3LCAwLjA1NzUsIDAuMDQ1LCAwLjAyODc1LCAwLjAyIiwgXAotICAgICAgICAgICIwLjA5ODc1LCAwLjA4NzUsIDAuMDc1LCAwLjA2MjUsIDAuMDUsIDAuMDQsIDAuMDI1IiwgXAotICAgICAgICAgICIwLjExMTI1LCAwLjEsIDAuMDg3NSwgMC4wNzUsIDAuMDYyNSwgMC4wNDYyNSwgMC4wMzc1IiwgXAotICAgICAgICAgICIwLjEyMzc1LCAwLjExMjUsIDAuMDkzNzUsIDAuMDgxMjUsIDAuMDc1LCAwLjA1ODc1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjEzLCAwLjExODc1LCAwLjEwNjI1LCAwLjA5Mzc1LCAwLjA4MTI1LCAwLjA2NSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiMC4xNDYyNSwgMC4xMzUsIDAuMTIyNSwgMC4xMDM3NSwgMC4wOTc1LCAwLjA4MTI1LCAwLjA2NjI1IiwgXAotICAgICAgICAgICIwLjE1NSwgMC4xNDM3NSwgMC4xMzEyNSwgMC4xMTg3NSwgMC4xMDYyNSwgMC4wOSwgMC4wODEyNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjI1NDMwMjsKLSAgICBmdW5jdGlvbiA6ICJOMzUiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5vbl91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcmlzaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE1NzQ1NiwgMC4xODIyMTMsIDAuMzIxNTQxLCAwLjQ0NDA1OSwgMC42MDgyMTMsIDAuOTM1MzU5LCAxLjEzODc4IiwgXAotICAgICAgICAgICIwLjE2NzcwOCwgMC4xOTI0NTYsIDAuMzMxNzg4LCAwLjQ1NDI5OSwgMC42MTc4MzMsIDAuOTQ1NjE4LCAxLjE0OTc5IiwgXAotICAgICAgICAgICIwLjE4MDMyNSwgMC4yMDUwNTUsIDAuMzQ0NDMxLCAwLjQ2Njk1NywgMC42MzA0MjcsIDAuOTU4MzI1LCAxLjE2MTg4IiwgXAotICAgICAgICAgICIwLjE5MjM1MywgMC4yMTcwMywgMC4zNTY0MjYsIDAuNDc5MjgzLCAwLjY0MzEyMiwgMC45Njk3MzMsIDEuMTc0MjEiLCBcCi0gICAgICAgICAgIjAuMjAzMTAxLCAwLjIyNzg1MSwgMC4zNjcxOTIsIDAuNDg5NzE1LCAwLjY1Mzg0OCwgMC45ODEwNTcsIDEuMTg0NDQiLCBcCi0gICAgICAgICAgIjAuMjE4MjYxLCAwLjI0Mjk1OCwgMC4zODIzNTgsIDAuNTA0ODkyLCAwLjY2ODY5OSwgMC45OTYyNzgsIDEuMjAwNyIsIFwKLSAgICAgICAgICAiMC4yMjk2NTQsIDAuMjU0NDA4LCAwLjM5MzcyNywgMC41MTY0NTMsIDAuNjc5ODE3LCAxLjAwNzU1LCAxLjIxMTUyIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5NDk0OSwgMC4xNDQzMDgsIDAuNDI4NjUsIDAuNjgwNDYyLCAxLjAxODczLCAxLjY5MzQ0LCAyLjEwODg3IiwgXAotICAgICAgICAgICIwLjA5NDkyMSwgMC4xNDQyMDUsIDAuNDI4NjQ5LCAwLjY4MDQ2OSwgMS4wMTY3NiwgMS42OTM0MywgMi4xMTUxNSIsIFwKLSAgICAgICAgICAiMC4wOTU2NzgsIDAuMTQzOTIzLCAwLjQyODY0NiwgMC42ODAzOTIsIDEuMDE2LCAxLjY4OTk1LCAyLjEwODc5IiwgXAotICAgICAgICAgICIwLjA5NTAyOCwgMC4xNDM5MTUsIDAuNDI4NjY0LCAwLjY4MTU3MywgMS4wMTY4NiwgMS42OTEwNCwgMi4xMTIxMiIsIFwKLSAgICAgICAgICAiMC4wOTQ5NTcsIDAuMTQ0MTM0LCAwLjQyODYzOSwgMC42ODA0MDgsIDEuMDE2NTksIDEuNjkzNDgsIDIuMTA4NjIiLCBcCi0gICAgICAgICAgIjAuMDk0OTYxLCAwLjE0MzkyMiwgMC40Mjg2NTMsIDAuNjgwNDEyLCAxLjAxODY2LCAxLjY5MDE3LCAyLjExNTEiLCBcCi0gICAgICAgICAgIjAuMDk1MjM1LCAwLjE0NDQxLCAwLjQyODY2NSwgMC42ODE0ODcsIDEuMDE2OTMsIDEuNjkzNDEsIDIuMTEyMTIiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTY4OTgsIDAuMTkzOTk5LCAwLjMzNDE5OCwgMC40NTgwMDgsIDAuNjIyOTg4LCAwLjk1MjQyNywgMS4xNTg3OSIsIFwKLSAgICAgICAgICAiMC4xNzkyMzMsIDAuMjA0MTE2LCAwLjM0NDQ4LCAwLjQ2ODEzOSwgMC42MzMyNTMsIDAuOTYyODU0LCAxLjE2OTAyIiwgXAotICAgICAgICAgICIwLjE5MjA4NywgMC4yMTcwNzgsIDAuMzU3MzA1LCAwLjQ4MTExNiwgMC42NDYwOTYsIDAuOTc1NDk5LCAxLjE4MTkiLCBcCi0gICAgICAgICAgIjAuMjA0MTM1LCAwLjIyOTA2NSwgMC4zNjk0MDEsIDAuNDkzMzAxLCAwLjY1ODE2NiwgMC45ODc4OTcsIDEuMTkzOTIiLCBcCi0gICAgICAgICAgIjAuMjE1MDMxLCAwLjIzOTkxNywgMC4zODAyODksIDAuNTA0MDkzLCAwLjY2OTA1NiwgMC45OTg3OTksIDEuMjA0ODEiLCBcCi0gICAgICAgICAgIjAuMjMwMDcsIDAuMjU0OTUzLCAwLjM5NTMxNywgMC41MTg5NjksIDAuNjg0MDksIDEuMDEzNjksIDEuMjE5ODYiLCBcCi0gICAgICAgICAgIjAuMjQxODMsIDAuMjY2NjkzLCAwLjQwNzE2OCwgMC41MzEwMzgsIDAuNjk1ODUzLCAxLjAyNTUxLCAxLjIzMTUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDkzODQ4LCAwLjE0MjUxOCwgMC40MjE4NjgsIDAuNjcyMDk0LCAxLjAwNDc3LCAxLjY2NzksIDIuMDg1MjEiLCBcCi0gICAgICAgICAgIjAuMDkzMzI3LCAwLjE0MjM2MSwgMC40MjE5NjgsIDAuNjY5NTIxLCAxLjAwNDc3LCAxLjY2NjU1LCAyLjA4NTAxIiwgXAotICAgICAgICAgICIwLjA5MzM2OSwgMC4xNDIwNDcsIDAuNDIxODcyLCAwLjY3MjA0NywgMS4wMDQ3NywgMS42NjcxMiwgMi4wODUyIiwgXAotICAgICAgICAgICIwLjA5NDA2NiwgMC4xNDE2MjUsIDAuNDIyNzY1LCAwLjY3MjMsIDEuMDA0OCwgMS42Njk3MiwgMi4wODUwNyIsIFwKLSAgICAgICAgICAiMC4wOTM1NTYsIDAuMTQxODM0LCAwLjQyMjc0NCwgMC42NzIxMTEsIDEuMDA0NzksIDEuNjY5NzUsIDIuMDg1MDMiLCBcCi0gICAgICAgICAgIjAuMDkzMzI3LCAwLjE0MjM2OCwgMC40MjI3MTUsIDAuNjY5Njc3LCAxLjAwNDc4LCAxLjY2NjQ2LCAyLjA4NTA1IiwgXAotICAgICAgICAgICIwLjA5MzM4OCwgMC4xNDE1ODYsIDAuNDIyNzg0LCAwLjY3MDIxLCAxLjAwNDgzLCAxLjY2OTQ2LCAyLjA4NDU3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiBjbGVhcjsKLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjAyNjIzLCAwLjIyNzUzNiwgMC4zNjc2MjcsIDAuNDkxNTM5LCAwLjY1NjMwMiwgMC45ODU5MjUsIDEuMTkyMDciLCBcCi0gICAgICAgICAgIjAuMjEyNDM1LCAwLjIzNzM0MywgMC4zNzc0NDMsIDAuNTAxMzU0LCAwLjY2NjExOSwgMC45OTU3MjUsIDEuMjAxODkiLCBcCi0gICAgICAgICAgIjAuMjI0NDIxLCAwLjI0OTQzMiwgMC4zODk0MjksIDAuNTEzMzQyLCAwLjY3ODEwNCwgMS4wMDc3MiwgMS4yMTM4NyIsIFwKLSAgICAgICAgICAiMC4yMzQ4OCwgMC4yNTk4MzIsIDAuMzk5ODg5LCAwLjUyMzQ3MiwgMC42ODg1OCwgMS4wMTgwNSwgMS4yMjQzMyIsIFwKLSAgICAgICAgICAiMC4yNDM0NjcsIDAuMjY4NDE5LCAwLjQwODQ3OCwgMC41MzI0MjIsIDAuNjk2ODgyLCAxLjAyNjg0LCAxLjIzMjUiLCBcCi0gICAgICAgICAgIjAuMjU1OTY2LCAwLjI4MDkxNywgMC40MjA5ODcsIDAuNTQ0NzA5LCAwLjcwOTY2OCwgMS4wMzkzNSwgMS4yNDU0MSIsIFwKLSAgICAgICAgICAiMC4yNjU2NTMsIDAuMjkwNTY3LCAwLjQzMDY0MywgMC41NTQzNDYsIDAuNzE5MzM1LCAxLjA0OTAzLCAxLjI1NTA5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5NDE3MiwgMC4xNDI0NzUsIDAuNDIyODE4LCAwLjY3MjQ1LCAxLjAwNDkzLCAxLjY2OTgzLCAyLjA4NTk0IiwgXAotICAgICAgICAgICIwLjA5NDEwNywgMC4xNDI0NzQsIDAuNDIxOTU3LCAwLjY3MjQ1LCAxLjAwNDk0LCAxLjY2OTc5LCAyLjA4NTk1IiwgXAotICAgICAgICAgICIwLjA5NDEyMSwgMC4xNDI0NzIsIDAuNDIyNzc0LCAwLjY3MjQ0OCwgMS4wMDQ5MywgMS42Njk4LCAyLjA4NTk0IiwgXAotICAgICAgICAgICIwLjA5NDEyLCAwLjE0MjQ2NywgMC40MjE4OTEsIDAuNjcyMzczLCAxLjAwNDk3LCAxLjY2OTYxLCAyLjA4NTkiLCBcCi0gICAgICAgICAgIjAuMDk0MTE0LCAwLjE0MjQ2NSwgMC40MjI4OTksIDAuNjcyNTEzLCAxLjAwNDcyLCAxLjY2OTc3LCAyLjA4MzUiLCBcCi0gICAgICAgICAgIjAuMDkzOTk5LCAwLjE0MjI5OSwgMC40MjI4MjYsIDAuNjcyMzQzLCAxLjAwNDk2LCAxLjY3MDAzLCAyLjA4NTg2IiwgXAotICAgICAgICAgICIwLjA5NDA2NSwgMC4xNDI0MzIsIDAuNDIyODk3LCAwLjY3MjM5MywgMS4wMDQ5NiwgMS42NzAxNSwgMi4wODU5NCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcHJlc2V0OwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNDU3MjQsIDAuMTcwNDcyLCAwLjMwOTk3OSwgMC40MzI3NTEsIDAuNTk2MjM5LCAwLjkyMzYyMywgMS4xMjgxNCIsIFwKLSAgICAgICAgICAiMC4xNTUwODYsIDAuMTc5ODAxLCAwLjMxOTA4MSwgMC40NDE5NzIsIDAuNjA1NjA0LCAwLjkzMzAwMiwgMS4xMzc0NCIsIFwKLSAgICAgICAgICAiMC4xNjUzODMsIDAuMTkwMTQzLCAwLjMyOTQyMiwgMC40NTIyOTQsIDAuNjE1ODU0LCAwLjk0MzI0NCwgMS4xNDc0NSIsIFwKLSAgICAgICAgICAiMC4xNzcwNTEsIDAuMjAxNjgyLCAwLjM0MTI5OSwgMC40NjM5MTIsIDAuNjI3NTI0LCAwLjk1NDgyNCwgMS4xNTk0NiIsIFwKLSAgICAgICAgICAiMC4xODg0NzksIDAuMjEzMTIsIDAuMzUyNDU4LCAwLjQ3NTQ2LCAwLjYzODk1OSwgMC45NjYyNzIsIDEuMTcwODkiLCBcCi0gICAgICAgICAgIjAuMjA1MjMyLCAwLjIyOTg3NywgMC4zNjkxMDQsIDAuNDkyMDkzLCAwLjY1NTY3NiwgMC45ODMwMzMsIDEuMTg3MDIiLCBcCi0gICAgICAgICAgIjAuMjE4NTc5LCAwLjI0MzMwNSwgMC4zODI0ODIsIDAuNTA1NDYyLCAwLjY2OTA0NiwgMC45OTYzMzQsIDEuMjAwOTciKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk1MTQ4LCAwLjE0Mzk3OCwgMC40Mjg4NDEsIDAuNjgxNTA4LCAxLjAxODcxLCAxLjY5MzU4LCAyLjExNTI5IiwgXAotICAgICAgICAgICIwLjA5NTA1MSwgMC4xNDQxODUsIDAuNDI4NzY0LCAwLjY4MTUxMywgMS4wMTg3OSwgMS42OTM1NywgMi4xMTUyMyIsIFwKLSAgICAgICAgICAiMC4wOTUxOTUsIDAuMTQ0MDc4LCAwLjQyODgyNSwgMC42ODE1MTQsIDEuMDE4NjksIDEuNjkzNSwgMi4xMTUwOSIsIFwKLSAgICAgICAgICAiMC4wOTUyMzMsIDAuMTQ0MTQ3LCAwLjQyODg1NiwgMC42ODE0NzgsIDEuMDE4NjQsIDEuNjkzMzgsIDIuMTE1MTYiLCBcCi0gICAgICAgICAgIjAuMDk1MjE5LCAwLjE0Mzk3NCwgMC40Mjg4MDMsIDAuNjgxNTEzLCAxLjAxODczLCAxLjY5MzQ4LCAyLjExNTE1IiwgXAotICAgICAgICAgICIwLjA5NTE5MSwgMC4xNDM5NDMsIDAuNDI3OTE3LCAwLjY4MTUwNCwgMS4wMTg2MywgMS42OTM1NiwgMi4xMTUyMyIsIFwKLSAgICAgICAgICAiMC4wOTUxOTYsIDAuMTQ0MSwgMC40Mjg4NDQsIDAuNjgxNDY4LCAxLjAxODY0LCAxLjY5MzU0LCAyLjExNTEiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTg0MjM5LCAwLjIwOTE3OCwgMC4zNDkzNTUsIDAuNDczMzc2LCAwLjYzNzkwNiwgMC45Njc5LCAxLjE3MzU5IiwgXAotICAgICAgICAgICIwLjE5MzYyMywgMC4yMTg1ODksIDAuMzU4NzU5LCAwLjQ4Mjc5NywgMC42NDc1NjcsIDAuOTc3MzIyLCAxLjE4MyIsIFwKLSAgICAgICAgICAiMC4yMDQ1MDgsIDAuMjI5MzksIDAuMzY5Njk2LCAwLjQ5MzY1MywgMC42NTg0ODcsIDAuOTg3OTA0LCAxLjE5NDMzIiwgXAotICAgICAgICAgICIwLjIxNTIyLCAwLjI0MDE4OCwgMC4zODAzOTgsIDAuNTA0MTUzLCAwLjY2OTIsIDAuOTk4ODE0LCAxLjIwNTAxIiwgXAotICAgICAgICAgICIwLjIyNTc3MywgMC4yNTA2NTYsIDAuMzkwOTY1LCAwLjUxNDkyMSwgMC42Nzk3NTUsIDEuMDA5MTcsIDEuMjE1NiIsIFwKLSAgICAgICAgICAiMC4yNDIzMTEsIDAuMjY3Mjc3LCAwLjQwNzQ5NSwgMC41MzE0NjcsIDAuNjk2Mjg4LCAxLjAyNTcyLCAxLjIzMjEyIiwgXAotICAgICAgICAgICIwLjI1NjAyOCwgMC4yODA5NjUsIDAuNDIxMjE2LCAwLjU0NTE4NywgMC43MTAwMDksIDEuMDM5NjIsIDEuMjQ1ODUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDkzMzk4LCAwLjE0MjMwOCwgMC40MjI4NTQsIDAuNjcyNTI2LCAxLjAwNDI5LCAxLjY2OTY3LCAyLjA4MTgzIiwgXAotICAgICAgICAgICIwLjA5NDExNywgMC4xNDI0NjIsIDAuNDIxODU1LCAwLjY3MjUxNCwgMS4wMDQ5NSwgMS42Njk2NSwgMi4wODUwNSIsIFwKLSAgICAgICAgICAiMC4wOTM5ODQsIDAuMTQyMjAyLCAwLjQyMTg4MiwgMC42NzIzNiwgMS4wMDQ5NiwgMS42Njk1NCwgMi4wODYwNCIsIFwKLSAgICAgICAgICAiMC4wOTQxMDgsIDAuMTQyMzc1LCAwLjQyMTkwNCwgMC42NzE5ODYsIDEuMDA0OTQsIDEuNjY5NTgsIDIuMDg1ODEiLCBcCi0gICAgICAgICAgIjAuMDk0MTA3LCAwLjE0MjM3NiwgMC40MjIwNTQsIDAuNjcyMzU0LCAxLjAwNDk1LCAxLjY2OTU3LCAyLjA4NjAyIiwgXAotICAgICAgICAgICIwLjA5NDA3NiwgMC4xNDIzMTUsIDAuNDIxNjQ3LCAwLjY3MjM0OCwgMS4wMDQ5MiwgMS42Njk1LCAyLjA4NTkxIiwgXAotICAgICAgICAgICIwLjA5NDAzNiwgMC4xNDI0NzEsIDAuNDIyMjk0LCAwLjY3MjQzNiwgMS4wMDQ5MSwgMS42Njk0NywgMi4wODU5MSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQxODcsIDAuMDA0MTk1LCAwLjAwNDIwNiwgMC4wMDQyMDgsIDAuMDA0MjEsIDAuMDA0MjExLCAwLjAwNDIxMSIsIFwKLSAgICAgICAgICAiMC4wMDQxNzIsIDAuMDA0MTgsIDAuMDA0MTkxLCAwLjAwNDE5MywgMC4wMDQxOTYsIDAuMDA0MTk3LCAwLjAwNDE5NyIsIFwKLSAgICAgICAgICAiMC4wMDQxNjYsIDAuMDA0MTc0LCAwLjAwNDE4NSwgMC4wMDQxODcsIDAuMDA0MTg4LCAwLjAwNDE4OSwgMC4wMDQxOSIsIFwKLSAgICAgICAgICAiMC4wMDQxNjUsIDAuMDA0MTczLCAwLjAwNDE4NCwgMC4wMDQxODcsIDAuMDA0MTg3LCAwLjAwNDE4OCwgMC4wMDQxODgiLCBcCi0gICAgICAgICAgIjAuMDA0MTc2LCAwLjAwNDE4MywgMC4wMDQxOTUsIDAuMDA0MTk3LCAwLjAwNDE5OCwgMC4wMDQxOTksIDAuMDA0MTk5IiwgXAotICAgICAgICAgICIwLjAwNDE4MiwgMC4wMDQxOSwgMC4wMDQyMDEsIDAuMDA0MjAzLCAwLjAwNDIwNSwgMC4wMDQyMDUsIDAuMDA0MjA2IiwgXAotICAgICAgICAgICIwLjAwNDE5MiwgMC4wMDQyLCAwLjAwNDIxMSwgMC4wMDQyMTMsIDAuMDA0MjE1LCAwLjAwNDIxNiwgMC4wMDQyMTYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQwMDYsIDAuMDA0MDE0LCAwLjAwNDAyNSwgMC4wMDQwMjksIDAuMDA0MDI4LCAwLjAwNDAzMSwgMC4wMDQwMyIsIFwKLSAgICAgICAgICAiMC4wMDM5OTIsIDAuMDA0LCAwLjAwNDAxMSwgMC4wMDQwMTMsIDAuMDA0MDE0LCAwLjAwNDAxNywgMC4wMDQwMTciLCBcCi0gICAgICAgICAgIjAuMDAzOTksIDAuMDAzOTk4LCAwLjAwNDAwOSwgMC4wMDQwMTMsIDAuMDA0MDE0LCAwLjAwNDAxNCwgMC4wMDQwMTYiLCBcCi0gICAgICAgICAgIjAuMDAzOTk0LCAwLjAwNDAwMiwgMC4wMDQwMTQsIDAuMDA0MDE2LCAwLjAwNDAxOCwgMC4wMDQwMTksIDAuMDA0MDE5IiwgXAotICAgICAgICAgICIwLjAwNDAwOSwgMC4wMDQwMTcsIDAuMDA0MDI5LCAwLjAwNDAzMSwgMC4wMDQwMzMsIDAuMDA0MDM0LCAwLjAwNDAzMyIsIFwKLSAgICAgICAgICAiMC4wMDQwMjEsIDAuMDA0MDI5LCAwLjAwNDA0MSwgMC4wMDQwNDMsIDAuMDA0MDQ0LCAwLjAwNDA0NiwgMC4wMDQwNDYiLCBcCi0gICAgICAgICAgIjAuMDA0MDQyLCAwLjAwNDA1LCAwLjAwNDA2MSwgMC4wMDQwNjQsIDAuMDA0MDY2LCAwLjAwNDA2NiwgMC4wMDQwNjciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1MzQzLCAwLjAwNTM1LCAwLjAwNTM0NywgMC4wMDUzNDMsIDAuMDA1MzM5LCAwLjAwNTMzNSwgMC4wMDUzMzQiLCBcCi0gICAgICAgICAgIjAuMDA1MzMyLCAwLjAwNTMzOSwgMC4wMDUzMzcsIDAuMDA1MzMyLCAwLjAwNTMyOCwgMC4wMDUzMjQsIDAuMDA1MzIzIiwgXAotICAgICAgICAgICIwLjAwNTMyOCwgMC4wMDUzMzUsIDAuMDA1MzMzLCAwLjAwNTMyOCwgMC4wMDUzMjUsIDAuMDA1MzIsIDAuMDA1MzE5IiwgXAotICAgICAgICAgICIwLjAwNTMyOSwgMC4wMDUzMzYsIDAuMDA1MzM0LCAwLjAwNTMzMSwgMC4wMDUzMjgsIDAuMDA1MzIzLCAwLjAwNTMyMiIsIFwKLSAgICAgICAgICAiMC4wMDUzMzQsIDAuMDA1MzQsIDAuMDA1MzM5LCAwLjAwNTMzNCwgMC4wMDUzMywgMC4wMDUzMjcsIDAuMDA1MzI0IiwgXAotICAgICAgICAgICIwLjAwNTM0MiwgMC4wMDUzNDgsIDAuMDA1MzQ3LCAwLjAwNTM0MiwgMC4wMDUzMzgsIDAuMDA1MzM0LCAwLjAwNTMzNCIsIFwKLSAgICAgICAgICAiMC4wMDUzNDUsIDAuMDA1MzUyLCAwLjAwNTM1MywgMC4wMDUzNDYsIDAuMDA1MzQ0LCAwLjAwNTM0MSwgMC4wMDUzMzkiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfcG93ZXIoc2NhbGFyKSB7Ci0gICAgICAgIHZhbHVlcygiMCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDUxOSwgMC4wMDUxOTgsIDAuMDA1MjA4LCAwLjAwNTIxLCAwLjAwNTIxMSwgMC4wMDUyMTIsIDAuMDA1MjEzIiwgXAotICAgICAgICAgICIwLjAwNTE3NiwgMC4wMDUxODQsIDAuMDA1MTk0LCAwLjAwNTE5NiwgMC4wMDUxOTcsIDAuMDA1MTk4LCAwLjAwNTE5OCIsIFwKLSAgICAgICAgICAiMC4wMDUxNywgMC4wMDUxNzgsIDAuMDA1MTg4LCAwLjAwNTE5LCAwLjAwNTE5MSwgMC4wMDUxOTIsIDAuMDA1MTkyIiwgXAotICAgICAgICAgICIwLjAwNTE2NywgMC4wMDUxNzUsIDAuMDA1MTg1LCAwLjAwNTE4NywgMC4wMDUxODgsIDAuMDA1MTg5LCAwLjAwNTE4OSIsIFwKLSAgICAgICAgICAiMC4wMDUxNjcsIDAuMDA1MTc1LCAwLjAwNTE4NSwgMC4wMDUxODcsIDAuMDA1MTg4LCAwLjAwNTE4OSwgMC4wMDUxODkiLCBcCi0gICAgICAgICAgIjAuMDA1MTY5LCAwLjAwNTE3NywgMC4wMDUxODcsIDAuMDA1MTg5LCAwLjAwNTE5LCAwLjAwNTE5MiwgMC4wMDUxOTEiLCBcCi0gICAgICAgICAgIjAuMDA1MTg0LCAwLjAwNTE5MSwgMC4wMDUyMDMsIDAuMDA1MjA1LCAwLjAwNTIwNiwgMC4wMDUyMDcsIDAuMDA1MjA3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzOTMxLCAwLjAwMzkzOSwgMC4wMDM5NTEsIDAuMDAzOTUyLCAwLjAwMzk1NCwgMC4wMDM5NTUsIDAuMDAzOTU1IiwgXAotICAgICAgICAgICIwLjAwMzkxNCwgMC4wMDM5MjIsIDAuMDAzOTMzLCAwLjAwMzkzNiwgMC4wMDM5MzgsIDAuMDAzOTQsIDAuMDAzOTM4IiwgXAotICAgICAgICAgICIwLjAwMzkwNCwgMC4wMDM5MTIsIDAuMDAzOTI0LCAwLjAwMzkyOCwgMC4wMDM5MywgMC4wMDM5MywgMC4wMDM5MzEiLCBcCi0gICAgICAgICAgIjAuMDAzODk4LCAwLjAwMzkwNywgMC4wMDM5MTgsIDAuMDAzOTIxLCAwLjAwMzkyMywgMC4wMDM5MjIsIDAuMDAzOTI0IiwgXAotICAgICAgICAgICIwLjAwMzg5NCwgMC4wMDM5MDIsIDAuMDAzOTE1LCAwLjAwMzkxNywgMC4wMDM5MiwgMC4wMDM5MiwgMC4wMDM5MiIsIFwKLSAgICAgICAgICAiMC4wMDM4OSwgMC4wMDM4OTgsIDAuMDAzOTA5LCAwLjAwMzkxMSwgMC4wMDM5MTMsIDAuMDAzOTE0LCAwLjAwMzkxNiIsIFwKLSAgICAgICAgICAiMC4wMDM4ODUsIDAuMDAzODkzLCAwLjAwMzkwNSwgMC4wMDM5MDgsIDAuMDAzOTA5LCAwLjAwMzkxLCAwLjAwMzkxIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihRTikgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjI1MjUyOTsKLSAgICBmdW5jdGlvbiA6ICJRQklOVCI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3NlbnNlIDogbm9uX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiByaXNpbmdfZWRnZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTgxMDkyLCAwLjIwNTYwMSwgMC4zNDQ1OTEsIDAuNDY3MjUyLCAwLjYzMDg3NCwgMC45NTc3NzQsIDEuMTYyNDgiLCBcCi0gICAgICAgICAgIjAuMTkxMzU1LCAwLjIxNTg0OSwgMC4zNTQ4NTgsIDAuNDc3NTYyLCAwLjY0MTE0NiwgMC45NjgzMDgsIDEuMTcyNzEiLCBcCi0gICAgICAgICAgIjAuMjA0MjAyLCAwLjIyODcwOSwgMC4zNjc3MDIsIDAuNDkwMzU4LCAwLjY1Mzk4NSwgMC45ODA4NywgMS4xODU1OSIsIFwKLSAgICAgICAgICAiMC4yMTYyNTgsIDAuMjQwNzY4LCAwLjM3OTc1OSwgMC41MDI0ODMsIDAuNjY2MDUyLCAwLjk5MzE5OCwgMS4xOTc2MSIsIFwKLSAgICAgICAgICAiMC4yMjcxNTcsIDAuMjUxNjUxLCAwLjM5MDY1NywgMC41MTMzMjgsIDAuNjc2OTQ4LCAxLjAwNDEsIDEuMjA4NTEiLCBcCi0gICAgICAgICAgIjAuMjQyMTkxLCAwLjI2NjY4NSwgMC40MDU2OTUsIDAuNTI4NDA2LCAwLjY5MTk4MiwgMS4wMTkxNCwgMS4yMjM1NSIsIFwKLSAgICAgICAgICAiMC4yNTM5MywgMC4yNzg0MjcsIDAuNDE3NDMyLCAwLjU0MDE5OCwgMC43MDM3NCwgMS4wMzA4MiwgMS4yMzUxOCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTA4MDUsIDAuMTQxMzExLCAwLjQyNzI3NCwgMC42ODA4MTQsIDEuMDE4MTMsIDEuNjkxNTcsIDIuMTE0MjMiLCBcCi0gICAgICAgICAgIjAuMDkwODIxLCAwLjE0MDg5OCwgMC40MjcyMTUsIDAuNjc4NjU0LCAxLjAxODEyLCAxLjY4OTUzLCAyLjExNDEyIiwgXAotICAgICAgICAgICIwLjA5MDc4OCwgMC4xNDA5NTMsIDAuNDI3Mjc2LCAwLjY4MDcyNCwgMS4wMTgxMiwgMS42OTAwNiwgMi4xMTQyMyIsIFwKLSAgICAgICAgICAiMC4wOTA4MDQsIDAuMTQwOTgzLCAwLjQyNzYzMSwgMC42ODA5NCwgMS4wMTgxNCwgMS42OTI2OCwgMi4xMTQxIiwgXAotICAgICAgICAgICIwLjA5MDc5NiwgMC4xNDEwNTMsIDAuNDI3NjI0LCAwLjY4MDgyOCwgMS4wMTgxMywgMS42OTI3LCAyLjExNDA4IiwgXAotICAgICAgICAgICIwLjA5MDgyMSwgMC4xNDA4OTksIDAuNDI3NjE5LCAwLjY3ODczLCAxLjAxODEyLCAxLjY4OTU2LCAyLjExNDA5IiwgXAotICAgICAgICAgICIwLjA5MDk1MiwgMC4xNDA5NDIsIDAuNDI3ODYsIDAuNjc5NDA4LCAxLjAxODE3LCAxLjY5MjQ5LCAyLjExMzg3Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE3MTQ4MywgMC4xOTYyMDMsIDAuMzM2MzQ5LCAwLjQ1OTk4OCwgMC42MjQ5NzcsIDAuOTU0NzI2LCAxLjE2MDQ0IiwgXAotICAgICAgICAgICIwLjE4MTc1LCAwLjIwNjQ3NCwgMC4zNDY2MTYsIDAuNDcwMjU3LCAwLjYzNTE5NiwgMC45NjQ5OTUsIDEuMTcwOTEiLCBcCi0gICAgICAgICAgIjAuMTk0MzcsIDAuMjE5MSwgMC4zNTkyNDEsIDAuNDgyODc3LCAwLjY0NzcwNCwgMC45Nzc2NTIsIDEuMTgzMzQiLCBcCi0gICAgICAgICAgIjAuMjA2Mzk3LCAwLjIzMTEyMiwgMC4zNzEyNjIsIDAuNDk0OTQ1LCAwLjY1OTkwNywgMC45ODk1NDYsIDEuMTk1NzEiLCBcCi0gICAgICAgICAgIjAuMjE3MTM0LCAwLjI0MTg1NiwgMC4zODIwMDEsIDAuNTA1NjM5LCAwLjY3MDYyOCwgMS4wMDA0LCAxLjIwNjA5IiwgXAotICAgICAgICAgICIwLjIzMjMwNywgMC4yNTcwMzEsIDAuMzk3MTc1LCAwLjUyMDgxNywgMC42ODU3MDIsIDEuMDE1NjEsIDEuMjIxNjYiLCBcCi0gICAgICAgICAgIjAuMjQzNjg0LCAwLjI2ODQxLCAwLjQwODU1MywgMC41MzIyMDUsIDAuNjk3MTQsIDEuMDI2OTMsIDEuMjMyOTYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg5NjkyLCAwLjEzOTEwNSwgMC40MjEzNTcsIDAuNjY5ODI4LCAxLjAwMjk3LCAxLjY2Nzk0LCAyLjA3NjcxIiwgXAotICAgICAgICAgICIwLjA4OTY4OSwgMC4xMzkwNDIsIDAuNDIxMzQ2LCAwLjY2OTgyNywgMS4wMDEyOCwgMS42Njc5MSwgMi4wODI5IiwgXAotICAgICAgICAgICIwLjA4OTY3MiwgMC4xMzkwODIsIDAuNDIxMzU5LCAwLjY2OTc4LCAwLjk5OTU3NSwgMS42NjQ0OCwgMi4wNzYxOSIsIFwKLSAgICAgICAgICAiMC4wODk2ODgsIDAuMTM5MDY0LCAwLjQyMTM0NSwgMC42NzA3NjIsIDEuMDAxMjYsIDEuNjY1NiwgMi4wODA1MSIsIFwKLSAgICAgICAgICAiMC4wODk2ODYsIDAuMTM5MDMyLCAwLjQyMTM1MywgMC42Njk3OSwgMS4wMDExNCwgMS42NjgwMiwgMi4wNzYxNSIsIFwKLSAgICAgICAgICAiMC4wODk2OTMsIDAuMTM5MDc1LCAwLjQyMTM1OSwgMC42Njk3OTMsIDEuMDAyODgsIDEuNjY0NTgsIDIuMDgzMzUiLCBcCi0gICAgICAgICAgIjAuMDg5NjcyLCAwLjEzOTA3NCwgMC40MjEzNDYsIDAuNjcwNTk1LCAxLjAwMTM2LCAxLjY2Nzg4LCAyLjA4MDQzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiBwcmVzZXQ7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIxNDg2NSwgMC4yMzkzNzEsIDAuMzc4MzgsIDAuNTAxMDgsIDAuNjY0NjEzLCAwLjk5MTY5MywgMS4xOTYyMyIsIFwKLSAgICAgICAgICAiMC4yMjQ2NzYsIDAuMjQ5MTgxLCAwLjM4ODE4OSwgMC41MTA4OTIsIDAuNjc0NDI1LCAxLjAwMTQ5LCAxLjIwNjA1IiwgXAotICAgICAgICAgICIwLjIzNjY2MiwgMC4yNjExNzYsIDAuNDAwMTc3LCAwLjUyMjg3OCwgMC42ODY0MSwgMS4wMTM0OSwgMS4yMTgwMyIsIFwKLSAgICAgICAgICAiMC4yNDcwODcsIDAuMjcxNjA1LCAwLjQxMDYxNCwgMC41MzMxOTUsIDAuNjk2ODUsIDEuMDIzODYsIDEuMjI4NDYiLCBcCi0gICAgICAgICAgIjAuMjU1NjczLCAwLjI4MDE5MSwgMC40MTkxOTksIDAuNTQxOTEyLCAwLjcwNTM1MywgMS4wMzI1NywgMS4yMzY2NSIsIFwKLSAgICAgICAgICAiMC4yNjgxNzQsIDAuMjkyNjkzLCAwLjQzMTcwMSwgMC41NTQyODIsIDAuNzE3OTM1LCAxLjA0NTA2LCAxLjI0OTU0IiwgXAotICAgICAgICAgICIwLjI3NzgwMSwgMC4zMDIzMTcsIDAuNDQxMzIyLCAwLjU2MzkwNiwgMC43Mjc1NjUsIDEuMDU0NzIsIDEuMjU5MTgiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDkwOTkyLCAwLjE0MTM0NywgMC40Mjc2MjYsIDAuNjgwOTk1LCAxLjAxODE5LCAxLjY5MjY5LCAyLjExNDU2IiwgXAotICAgICAgICAgICIwLjA5MDkyMiwgMC4xNDEzNDYsIDAuNDI3MzA4LCAwLjY4MDk5NiwgMS4wMTgyLCAxLjY5MjY3LCAyLjExNDU3IiwgXAotICAgICAgICAgICIwLjA5MDkyOSwgMC4xNDEzMTIsIDAuNDI3NjA1LCAwLjY4MDk5MywgMS4wMTgxOSwgMS42OTI2OCwgMi4xMTQ1NiIsIFwKLSAgICAgICAgICAiMC4wOTA5MjksIDAuMTQxMzEsIDAuNDI3MjEyLCAwLjY4MDg5OSwgMS4wMTgyMSwgMS42OTI1NywgMi4xMTQ1MyIsIFwKLSAgICAgICAgICAiMC4wOTA5MjksIDAuMTQxMzA5LCAwLjQyNzk1OCwgMC42ODEwMywgMS4wMTgwNSwgMS42OTI2NSwgMi4xMTMxMSIsIFwKLSAgICAgICAgICAiMC4wOTA4MTgsIDAuMTQxMTQ4LCAwLjQyNzg5MSwgMC42ODA4ODEsIDEuMDE4MiwgMS42OTI5MywgMi4xMTQ1MSIsIFwKLSAgICAgICAgICAiMC4wOTA5MjIsIDAuMTQxMzExLCAwLjQyNzk1NiwgMC42ODA5MTIsIDEuMDE4MiwgMS42OTI4NywgMi4xMTQ1NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogY2xlYXI7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE5NjM5LCAwLjIyMDkwMiwgMC4zNTk4NTMsIDAuNDgyNjI0LCAwLjY0NjA2NSwgMC45NzMyNzcsIDEuMTc3MzYiLCBcCi0gICAgICAgICAgIjAuMjA1ODE4LCAwLjIzMDMzNCwgMC4zNjkyODYsIDAuNDkyMDU4LCAwLjY1NTU0LCAwLjk4MjcxMSwgMS4xODY4IiwgXAotICAgICAgICAgICIwLjIxNjcxNywgMC4yNDEyMTYsIDAuMzgwMjM2LCAwLjUwMjkzNiwgMC42NjY0OCwgMC45OTMzMjcsIDEuMTk4MTIiLCBcCi0gICAgICAgICAgIjAuMjI3NDIyLCAwLjI1MTk0MiwgMC4zOTA5NTMsIDAuNTEzNTIzLCAwLjY3NzE4OCwgMS4wMDQyMSwgMS4yMDg3OSIsIFwKLSAgICAgICAgICAiMC4yMzc5ODIsIDAuMjYyNDgyLCAwLjQwMTUwMywgMC41MjQyMDMsIDAuNjg3NzQ3LCAxLjAxNDU5LCAxLjIxOTM5IiwgXAotICAgICAgICAgICIwLjI1NDUxOCwgMC4yNzkwMzcsIDAuNDE4MDQyLCAwLjU0MDc0MywgMC43MDQyNzksIDEuMDMxMTcsIDEuMjM1OSIsIFwKLSAgICAgICAgICAiMC4yNjgyNjEsIDAuMjkyNzY4LCAwLjQzMTc3NCwgMC41NTQ0NzksIDAuNzE4MDE2LCAxLjA0NTA4LCAxLjI0OTY1Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5MDkxLCAwLjE0MTE0LCAwLjQyNzkxNSwgMC42ODEwNDUsIDEuMDE3NzUsIDEuNjkyNjQsIDIuMTEwODciLCBcCi0gICAgICAgICAgIjAuMDkwOTI5LCAwLjE0MTMxMiwgMC40MjcyNTcsIDAuNjgxMDMzLCAxLjAxODI0LCAxLjY5MjYyLCAyLjExNDA3IiwgXAotICAgICAgICAgICIwLjA5MDgwNCwgMC4xNDEwMjksIDAuNDI3MjUxLCAwLjY4MDk0MSwgMS4wMTgyMSwgMS42OTI1NSwgMi4xMTQ2MiIsIFwKLSAgICAgICAgICAiMC4wOTA5MjgsIDAuMTQxMjgyLCAwLjQyNzI0OSwgMC42ODA1NTcsIDEuMDE4MTksIDEuNjkyNjIsIDIuMTE0NSIsIFwKLSAgICAgICAgICAiMC4wOTA5MjgsIDAuMTQxMjgyLCAwLjQyNzIyMywgMC42ODA5MzQsIDEuMDE4MjEsIDEuNjkyNTcsIDIuMTE0NjIiLCBcCi0gICAgICAgICAgIjAuMDkwOTMxLCAwLjE0MTEzOCwgMC40MjY2MDcsIDAuNjgwOTI4LCAxLjAxODE5LCAxLjY5MjUyLCAyLjExNDU2IiwgXAotICAgICAgICAgICIwLjA5MDkyNCwgMC4xNDEzNDUsIDAuNDI3MjYyLCAwLjY4MDk4LCAxLjAxODE4LCAxLjY5MjUsIDIuMTE0NTYiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTYwMTQsIDAuMTg0ODY4LCAwLjMyNTA1NywgMC40NDg3MjgsIDAuNjEzNTcsIDAuOTQzMzgsIDEuMTQ5NDkiLCBcCi0gICAgICAgICAgIjAuMTY5NTEzLCAwLjE5NDI1LCAwLjMzNDM2MSwgMC40NTgwMTksIDAuNjIyOTAzLCAwLjk1MjcxOCwgMS4xNTg3OSIsIFwKLSAgICAgICAgICAiMC4xNzk3ODksIDAuMjA0NTE4LCAwLjM0NDY2MiwgMC40NjgzNTEsIDAuNjMzMjA5LCAwLjk2MzAxOCwgMS4xNjkiLCBcCi0gICAgICAgICAgIjAuMTkxNTM1LCAwLjIxNjI2NywgMC4zNTY0NTksIDAuNDgwMDk1LCAwLjY0NDk2OSwgMC45NzQ3NSwgMS4xODA5IiwgXAotICAgICAgICAgICIwLjIwMjk2NCwgMC4yMjc2OTIsIDAuMzY3ODYyLCAwLjQ5MTU1MiwgMC42NTYzOTUsIDAuOTg2MTc5LCAxLjE5MjMyIiwgXAotICAgICAgICAgICIwLjIxOTcxMywgMC4yNDQ0NDEsIDAuMzg0NjA5LCAwLjUwODI2OSwgMC42NzMxMzUsIDEuMDAyOTMsIDEuMjA4OTgiLCBcCi0gICAgICAgICAgIjAuMjMzMDA3LCAwLjI1NzczNiwgMC4zOTc4ODgsIDAuNTIxNTU4LCAwLjY4NjQyNSwgMS4wMTYyMSwgMS4yMjIzNSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODk2NTgsIDAuMTM5MTQyLCAwLjQyMTU1NCwgMC42NzA3OTQsIDEuMDAzMjIsIDEuNjY4MjYsIDIuMDgzNzMiLCBcCi0gICAgICAgICAgIjAuMDg5NjU3LCAwLjEzOTE4NCwgMC40MjE0MTksIDAuNjcwNzk4LCAxLjAwMzM4LCAxLjY2ODI1LCAyLjA4MzY0IiwgXAotICAgICAgICAgICIwLjA4OTY3NiwgMC4xMzkxMzQsIDAuNDIxNDUsIDAuNjcwODEsIDEuMDAzMTIsIDEuNjY4MTIsIDIuMDgzMzYiLCBcCi0gICAgICAgICAgIjAuMDg5NjYyLCAwLjEzOTE5LCAwLjQyMTU4MSwgMC42NzA3OTksIDEuMDAzMDksIDEuNjY3ODMsIDIuMDgzNTEiLCBcCi0gICAgICAgICAgIjAuMDg5NjcsIDAuMTM5MTM1LCAwLjQyMTQ5NCwgMC42NzA4MTIsIDEuMDAzMjksIDEuNjY4MDgsIDIuMDgzNDkiLCBcCi0gICAgICAgICAgIjAuMDg5Njc3LCAwLjEzOTE0OSwgMC40MjA3NTcsIDAuNjcwNzcsIDEuMDAzMDcsIDEuNjY4MjIsIDIuMDgzNjgiLCBcCi0gICAgICAgICAgIjAuMDg5NjU5LCAwLjEzOTEyNCwgMC40MjE1NTQsIDAuNjcwNzU2LCAxLjAwMzA2LCAxLjY2ODE2LCAyLjA4MzQxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDAwNiwgMC4wMDQwMTQsIDAuMDA0MDI1LCAwLjAwNDAyOSwgMC4wMDQwMjgsIDAuMDA0MDMxLCAwLjAwNDAzIiwgXAotICAgICAgICAgICIwLjAwMzk5MiwgMC4wMDQsIDAuMDA0MDExLCAwLjAwNDAxMywgMC4wMDQwMTQsIDAuMDA0MDE3LCAwLjAwNDAxNyIsIFwKLSAgICAgICAgICAiMC4wMDM5OSwgMC4wMDM5OTgsIDAuMDA0MDA5LCAwLjAwNDAxMywgMC4wMDQwMTQsIDAuMDA0MDE0LCAwLjAwNDAxNiIsIFwKLSAgICAgICAgICAiMC4wMDM5OTQsIDAuMDA0MDAyLCAwLjAwNDAxNCwgMC4wMDQwMTYsIDAuMDA0MDE4LCAwLjAwNDAxOSwgMC4wMDQwMTkiLCBcCi0gICAgICAgICAgIjAuMDA0MDA5LCAwLjAwNDAxNywgMC4wMDQwMjksIDAuMDA0MDMxLCAwLjAwNDAzMywgMC4wMDQwMzQsIDAuMDA0MDMzIiwgXAotICAgICAgICAgICIwLjAwNDAyMSwgMC4wMDQwMjksIDAuMDA0MDQxLCAwLjAwNDA0MywgMC4wMDQwNDQsIDAuMDA0MDQ2LCAwLjAwNDA0NiIsIFwKLSAgICAgICAgICAiMC4wMDQwNDIsIDAuMDA0MDUsIDAuMDA0MDYxLCAwLjAwNDA2NCwgMC4wMDQwNjYsIDAuMDA0MDY2LCAwLjAwNDA2NyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDE4NywgMC4wMDQxOTUsIDAuMDA0MjA2LCAwLjAwNDIwOCwgMC4wMDQyMSwgMC4wMDQyMTEsIDAuMDA0MjExIiwgXAotICAgICAgICAgICIwLjAwNDE3MiwgMC4wMDQxOCwgMC4wMDQxOTEsIDAuMDA0MTkzLCAwLjAwNDE5NiwgMC4wMDQxOTcsIDAuMDA0MTk3IiwgXAotICAgICAgICAgICIwLjAwNDE2NiwgMC4wMDQxNzQsIDAuMDA0MTg1LCAwLjAwNDE4NywgMC4wMDQxODgsIDAuMDA0MTg5LCAwLjAwNDE5IiwgXAotICAgICAgICAgICIwLjAwNDE2NSwgMC4wMDQxNzMsIDAuMDA0MTg0LCAwLjAwNDE4NywgMC4wMDQxODcsIDAuMDA0MTg4LCAwLjAwNDE4OCIsIFwKLSAgICAgICAgICAiMC4wMDQxNzYsIDAuMDA0MTgzLCAwLjAwNDE5NSwgMC4wMDQxOTcsIDAuMDA0MTk4LCAwLjAwNDE5OSwgMC4wMDQxOTkiLCBcCi0gICAgICAgICAgIjAuMDA0MTgyLCAwLjAwNDE5LCAwLjAwNDIwMSwgMC4wMDQyMDMsIDAuMDA0MjA1LCAwLjAwNDIwNSwgMC4wMDQyMDYiLCBcCi0gICAgICAgICAgIjAuMDA0MTkyLCAwLjAwNDIsIDAuMDA0MjExLCAwLjAwNDIxMywgMC4wMDQyMTUsIDAuMDA0MjE2LCAwLjAwNDIxNiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDUzNDMsIDAuMDA1MzUsIDAuMDA1MzQ3LCAwLjAwNTM0MywgMC4wMDUzMzksIDAuMDA1MzM1LCAwLjAwNTMzNCIsIFwKLSAgICAgICAgICAiMC4wMDUzMzIsIDAuMDA1MzM5LCAwLjAwNTMzNywgMC4wMDUzMzIsIDAuMDA1MzI4LCAwLjAwNTMyNCwgMC4wMDUzMjMiLCBcCi0gICAgICAgICAgIjAuMDA1MzI4LCAwLjAwNTMzNSwgMC4wMDUzMzMsIDAuMDA1MzI4LCAwLjAwNTMyNSwgMC4wMDUzMiwgMC4wMDUzMTkiLCBcCi0gICAgICAgICAgIjAuMDA1MzI5LCAwLjAwNTMzNiwgMC4wMDUzMzQsIDAuMDA1MzMxLCAwLjAwNTMyOCwgMC4wMDUzMjMsIDAuMDA1MzIyIiwgXAotICAgICAgICAgICIwLjAwNTMzNCwgMC4wMDUzNCwgMC4wMDUzMzksIDAuMDA1MzM0LCAwLjAwNTMzLCAwLjAwNTMyNywgMC4wMDUzMjQiLCBcCi0gICAgICAgICAgIjAuMDA1MzQyLCAwLjAwNTM0OCwgMC4wMDUzNDcsIDAuMDA1MzQyLCAwLjAwNTMzOCwgMC4wMDUzMzQsIDAuMDA1MzM0IiwgXAotICAgICAgICAgICIwLjAwNTM0NSwgMC4wMDUzNTIsIDAuMDA1MzUzLCAwLjAwNTM0NiwgMC4wMDUzNDQsIDAuMDA1MzQxLCAwLjAwNTMzOSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihzY2FsYXIpIHsKLSAgICAgICAgdmFsdWVzKCIwIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiU04iOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzkzMSwgMC4wMDM5MzksIDAuMDAzOTUxLCAwLjAwMzk1MiwgMC4wMDM5NTQsIDAuMDAzOTU1LCAwLjAwMzk1NSIsIFwKLSAgICAgICAgICAiMC4wMDM5MTQsIDAuMDAzOTIyLCAwLjAwMzkzMywgMC4wMDM5MzYsIDAuMDAzOTM4LCAwLjAwMzk0LCAwLjAwMzkzOCIsIFwKLSAgICAgICAgICAiMC4wMDM5MDQsIDAuMDAzOTEyLCAwLjAwMzkyNCwgMC4wMDM5MjgsIDAuMDAzOTMsIDAuMDAzOTMsIDAuMDAzOTMxIiwgXAotICAgICAgICAgICIwLjAwMzg5OCwgMC4wMDM5MDcsIDAuMDAzOTE4LCAwLjAwMzkyMSwgMC4wMDM5MjMsIDAuMDAzOTIyLCAwLjAwMzkyNCIsIFwKLSAgICAgICAgICAiMC4wMDM4OTQsIDAuMDAzOTAyLCAwLjAwMzkxNSwgMC4wMDM5MTcsIDAuMDAzOTIsIDAuMDAzOTIsIDAuMDAzOTIiLCBcCi0gICAgICAgICAgIjAuMDAzODksIDAuMDAzODk4LCAwLjAwMzkwOSwgMC4wMDM5MTEsIDAuMDAzOTEzLCAwLjAwMzkxNCwgMC4wMDM5MTYiLCBcCi0gICAgICAgICAgIjAuMDAzODg1LCAwLjAwMzg5MywgMC4wMDM5MDUsIDAuMDAzOTA4LCAwLjAwMzkwOSwgMC4wMDM5MSwgMC4wMDM5MSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNTE5LCAwLjAwNTE5OCwgMC4wMDUyMDgsIDAuMDA1MjEsIDAuMDA1MjExLCAwLjAwNTIxMiwgMC4wMDUyMTMiLCBcCi0gICAgICAgICAgIjAuMDA1MTc2LCAwLjAwNTE4NCwgMC4wMDUxOTQsIDAuMDA1MTk2LCAwLjAwNTE5NywgMC4wMDUxOTgsIDAuMDA1MTk4IiwgXAotICAgICAgICAgICIwLjAwNTE3LCAwLjAwNTE3OCwgMC4wMDUxODgsIDAuMDA1MTksIDAuMDA1MTkxLCAwLjAwNTE5MiwgMC4wMDUxOTIiLCBcCi0gICAgICAgICAgIjAuMDA1MTY3LCAwLjAwNTE3NSwgMC4wMDUxODUsIDAuMDA1MTg3LCAwLjAwNTE4OCwgMC4wMDUxODksIDAuMDA1MTg5IiwgXAotICAgICAgICAgICIwLjAwNTE2NywgMC4wMDUxNzUsIDAuMDA1MTg1LCAwLjAwNTE4NywgMC4wMDUxODgsIDAuMDA1MTg5LCAwLjAwNTE4OSIsIFwKLSAgICAgICAgICAiMC4wMDUxNjksIDAuMDA1MTc3LCAwLjAwNTE4NywgMC4wMDUxODksIDAuMDA1MTksIDAuMDA1MTkyLCAwLjAwNTE5MSIsIFwKLSAgICAgICAgICAiMC4wMDUxODQsIDAuMDA1MTkxLCAwLjAwNTIwMywgMC4wMDUyMDUsIDAuMDA1MjA2LCAwLjAwNTIwNywgMC4wMDUyMDciKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFJOKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2NDk4NjU7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjQ5MzA1OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDY0OTg2NTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA1MTgsIDAuMDAwNDk0LCAwLjAwMDQ4NSwgMC4wMDA0OSwgMC4wMDA1LCAwLjAwMDUyMiwgMC4wMDA1NDQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDI1NTEsIDAuMDAyNTMzLCAwLjAwMjUyNywgMC4wMDI1MzEsIDAuMDAyNTQsIDAuMDAyNTYyLCAwLjAwMjU4MiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQmIVNFJiFTSSZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fU0VfRVFfMF9BTl9TSV9FUV8wX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4yMTQ4NjUsIDAuMjI0Njc2LCAwLjIzNjY2MiwgMC4yNDcwODcsIDAuMjU1NjczLCAwLjI2ODE3NCwgMC4yNzc4MDEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiByZWNvdmVyeV9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlNOIjsKLSAgICAgIHNkZl9jb25kIDogIlNOID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHJlY292ZXJ5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2MjUsIDAuMDUxMjUsIDAuMDM4NzUsIDAuMDI2MjUsIDAuMDEzNzUsIC0wLjAwMjUsIC0wLjAxMTI1IiwgXAotICAgICAgICAgICIwLjA3Mzc1LCAwLjA2MjUsIDAuMDUsIDAuMDM3NSwgMC4wMjUsIDAuMDA4NzUsIDAiLCBcCi0gICAgICAgICAgIjAuMDg2MjUsIDAuMDc1LCAwLjA2MjUsIDAuMDUsIDAuMDM3NSwgMC4wMjEyNSwgMC4wMTI1IiwgXAotICAgICAgICAgICIwLjA5ODc1LCAwLjA4NzUsIDAuMDc1LCAwLjA1NjI1LCAwLjA1LCAwLjAzMzc1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiMC4xMDUsIDAuMDkzNzUsIDAuMDgxMjUsIDAuMDY4NzUsIDAuMDU2MjUsIDAuMDQ2MjUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMTIxMjUsIDAuMTEsIDAuMDk3NSwgMC4wODUsIDAuMDcyNSwgMC4wNTYyNSwgMC4wNDc1IiwgXAotICAgICAgICAgICIwLjEzLCAwLjExODc1LCAwLjEwNjI1LCAwLjA5Mzc1LCAwLjA4MTI1LCAwLjA2NSwgMC4wNTYyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJlY292ZXJ5X3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUQmIVNFJiFTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fU0VfRVFfMF9BTl9TSV9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHJlY292ZXJ5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3NSwgMC4wODYyNSwgMC4wOTg3NSwgMC4xMDUsIDAuMTE3NSwgMC4xMzM3NSwgMC4xNDI1IiwgXAotICAgICAgICAgICIwLjA3LCAwLjA4MTI1LCAwLjA4NzUsIDAuMSwgMC4xMDYyNSwgMC4xMjI1LCAwLjEzMTI1IiwgXAotICAgICAgICAgICIwLjA1NzUsIDAuMDY4NzUsIDAuMDgxMjUsIDAuMDg3NSwgMC4xLCAwLjExNjI1LCAwLjEyNSIsIFwKLSAgICAgICAgICAiMC4wNTEyNSwgMC4wNjI1LCAwLjA3NSwgMC4wODEyNSwgMC4wOTM3NSwgMC4xMSwgMC4xMTg3NSIsIFwKLSAgICAgICAgICAiMC4wNTEyNSwgMC4wNTYyNSwgMC4wNjg3NSwgMC4wODEyNSwgMC4wODc1LCAwLjEwMzc1LCAwLjExMjUiLCBcCi0gICAgICAgICAgIjAuMDQxMjUsIDAuMDUyNSwgMC4wNjUsIDAuMDcxMjUsIDAuMDgzNzUsIDAuMDkzNzUsIDAuMTA4NzUiLCBcCi0gICAgICAgICAgIjAuMDM4NzUsIDAuMDUsIDAuMDYyNSwgMC4wNjg3NSwgMC4wNzUsIDAuMDkxMjUsIDAuMSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJlbW92YWxfcmlzaW5nOwotICAgICAgd2hlbiA6ICJTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJTTiA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChyZW1vdmFsX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMTI1LCAtMC4wMDEyNSwgMC4wMTEyNSwgMC4wMTc1LCAwLjAzLCAwLjA0LCAwLjA1NSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxMjUsIDAsIDAuMDEyNSwgMC4wMTg3NSwgMC4wMzUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMjUsIC0wLjAxMjUsIDAsIDAuMDA2MjUsIDAuMDIyNSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjAzNzUsIC0wLjAyNSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAuMDEsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjA1NSwgLTAuMDUsIC0wLjAzNzUsIC0wLjAyNSwgLTAuMDEyNSwgLTAuMDAyNSwgMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wNzEyNSwgLTAuMDYsIC0wLjA0NzUsIC0wLjAzNSwgLTAuMDI4NzUsIC0wLjAxMjUsIC0wLjAwMzc1IiwgXAotICAgICAgICAgICItMC4wOCwgLTAuMDY4NzUsIC0wLjA1NjI1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDIxMjUsIC0wLjAxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFNFKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDEzMzUyMTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDEzMzUyMTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDEzMzQ2NDsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDQzNzMsIDAuMDA0MzUyLCAwLjAwNDM1OCwgMC4wMDQzNjEsIDAuMDA0Mzc4LCAwLjAwNDQsIDAuMDA0NDI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA1Njk5LCAwLjAwNTY2MywgMC4wMDU2NTQsIDAuMDA1NjYyLCAwLjAwNTY3MSwgMC4wMDU3MSwgMC4wMDU3NDYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiUk4mU04iOwotICAgICAgc2RmX2NvbmQgOiAiUk5fRVFfMV9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAyNSwgLTAuMDIsIC0wLjAwNzUsIDAuMDA1LCAwLjAxMTI1LCAwLjAyNzUsIDAuMDM2MjUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMDYyNSwgMCwgMC4wMTYyNSwgMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMDYyNSwgMC4wMDM3NSwgMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMDI1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wNjEyNSwgLTAuMDU2MjUsIC0wLjA0Mzc1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMDg3NSwgMCIsIFwKLSAgICAgICAgICAiLTAuMDcxMjUsIC0wLjA2NjI1LCAtMC4wNTM3NSwgLTAuMDQxMjUsIC0wLjAzNSwgLTAuMDE4NzUsIC0wLjAxIiwgXAotICAgICAgICAgICItMC4wOCwgLTAuMDY4NzUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDM3NSwgLTAuMDI3NSwgLTAuMDE4NzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMTI1LCAtMC4wMDEyNSwgMC4wMTEyNSwgMC4wMTc1LCAwLjAzLCAwLjA0LCAwLjA0ODc1IiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDEyNSwgMCwgMC4wMTI1LCAwLjAxODc1LCAwLjAyODc1LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMjUsIC0wLjAxMjUsIDAsIDAuMDA2MjUsIDAuMDIyNSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAuMDEsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjA1NSwgLTAuMDQzNzUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAxMjUsIC0wLjAwMjUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA2NSwgLTAuMDYsIC0wLjA0NzUsIC0wLjAzNSwgLTAuMDI4NzUsIC0wLjAxODc1LCAtMC4wMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDczNzUsIC0wLjA2ODc1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjAzNzUsIC0wLjAyNzUsIC0wLjAxODc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJSTiZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJSTl9FUV8xX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTA2MjUsIDAuMTAxMjUsIDAuMDgyNSwgMC4wNywgMC4wNjM3NSwgMC4wNDc1LCAwLjAzODc1IiwgXAotICAgICAgICAgICIwLjExNzUsIDAuMTA2MjUsIDAuMDkzNzUsIDAuMDgxMjUsIDAuMDY4NzUsIDAuMDU4NzUsIDAuMDUiLCBcCi0gICAgICAgICAgIjAuMTMsIDAuMTE4NzUsIDAuMTA2MjUsIDAuMDkzNzUsIDAuMDgxMjUsIDAuMDcxMjUsIDAuMDYyNSIsIFwKLSAgICAgICAgICAiMC4xNDI1LCAwLjEzMTI1LCAwLjExODc1LCAwLjEwNjI1LCAwLjA5Mzc1LCAwLjA4Mzc1LCAwLjA3NSIsIFwKLSAgICAgICAgICAiMC4xNTUsIDAuMTQzNzUsIDAuMTI1LCAwLjExODc1LCAwLjEwNjI1LCAwLjA5NjI1LCAwLjA4NzUiLCBcCi0gICAgICAgICAgIjAuMTcxMjUsIDAuMTYsIDAuMTQ3NSwgMC4xMzUsIDAuMTIyNSwgMC4xMTI1LCAwLjEwMzc1IiwgXAotICAgICAgICAgICIwLjE4NjI1LCAwLjE3NSwgMC4xNjI1LCAwLjE1LCAwLjEzNzUsIDAuMTI3NSwgMC4xMTg3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEyNSwgMC4xMTM3NSwgMC4xMDEyNSwgMC4wODg3NSwgMC4wNzYyNSwgMC4wNjYyNSwgMC4wNTc1IiwgXAotICAgICAgICAgICIwLjEzNjI1LCAwLjEyNSwgMC4xMDYyNSwgMC4xLCAwLjA4NzUsIDAuMDcxMjUsIDAuMDY4NzUiLCBcCi0gICAgICAgICAgIjAuMTQyNSwgMC4xMzEyNSwgMC4xMTg3NSwgMC4xMDYyNSwgMC4xLCAwLjA4Mzc1LCAwLjA3NSIsIFwKLSAgICAgICAgICAiMC4xNTUsIDAuMTQzNzUsIDAuMTI1LCAwLjExMjUsIDAuMTA2MjUsIDAuMDksIDAuMDgxMjUiLCBcCi0gICAgICAgICAgIjAuMTYxMjUsIDAuMTUsIDAuMTMxMjUsIDAuMTE4NzUsIDAuMTEyNSwgMC4wOTYyNSwgMC4wODc1IiwgXAotICAgICAgICAgICIwLjE2NSwgMC4xNTM3NSwgMC4xNDEyNSwgMC4xMjg3NSwgMC4xMTYyNSwgMC4xMDYyNSwgMC4wOTc1IiwgXAotICAgICAgICAgICIwLjE3Mzc1LCAwLjE2MjUsIDAuMTUsIDAuMTM3NSwgMC4xMjUsIDAuMTE1LCAwLjEwNjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTSSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjczNDkyOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDY3MjAyNDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2NzM0OTI7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzMTQ4LCAwLjAwMzEzMSwgMC4wMDMxMjIsIDAuMDAzMTE2LCAwLjAwMzExNCwgMC4wMDMxMTQsIDAuMDAzMTIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDQ3MywgMC4wMDQ3MiwgMC4wMDQ3MTQsIDAuMDA0NzExLCAwLjAwNDcxLCAwLjAwNDcwOSwgMC4wMDQ3MTIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiUk4mU0UmU04iOwotICAgICAgc2RmX2NvbmQgOiAiUk5fRVFfMV9BTl9TRV9FUV8xX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDU2MjUsIC0wLjA0NSwgLTAuMDM4NzUsIC0wLjAzMjUsIC0wLjAyNjI1LCAtMC4wMTYyNSwgLTAuMDEzNzUiLCBcCi0gICAgICAgICAgIi0wLjA2MTI1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMjc1LCAtMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDczNzUsIC0wLjA2ODc1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wNCwgLTAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjA4NjI1LCAtMC4wNzUsIC0wLjA2ODc1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDQ2MjUsIC0wLjA0Mzc1IiwgXAotICAgICAgICAgICItMC4wOTI1LCAtMC4wODc1LCAtMC4wODEyNSwgLTAuMDc1LCAtMC4wNjg3NSwgLTAuMDU4NzUsIC0wLjA1NjI1IiwgXAotICAgICAgICAgICItMC4xMDg3NSwgLTAuMTAzNzUsIC0wLjA5NzUsIC0wLjA5MTI1LCAtMC4wODUsIC0wLjA3NSwgLTAuMDY2MjUiLCBcCi0gICAgICAgICAgIi0wLjEyMzc1LCAtMC4xMTI1LCAtMC4xMDYyNSwgLTAuMSwgLTAuMDkzNzUsIC0wLjA5LCAtMC4wODEyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAxODc1LCAtMC4wMDc1LCAtMC4wMDEyNSwgMC4wMTEyNSwgMC4wMTc1LCAwLjAzMzc1LCAwLjA0MjUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAuMDA2MjUsIDAuMDEyNSwgMC4wMjI1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAsIDAuMDE2MjUsIDAuMDI1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDM3NSwgLTAuMDI1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMC4wMDM3NSwgMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA0Mzc1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDAyNSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDY1LCAtMC4wNiwgLTAuMDQ3NSwgLTAuMDM1LCAtMC4wMjg3NSwgLTAuMDE4NzUsIC0wLjAwMzc1IiwgXAotICAgICAgICAgICItMC4wNzM3NSwgLTAuMDY4NzUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDM3NSwgLTAuMDI3NSwgLTAuMDE4NzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlJOJlNFJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIlJOX0VRXzFfQU5fU0VfRVFfMV9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExMjUsIDAuMTAxMjUsIDAuMDg4NzUsIDAuMDc2MjUsIDAuMDcsIDAuMDUzNzUsIDAuMDQ1IiwgXAotICAgICAgICAgICIwLjEyMzc1LCAwLjExMjUsIDAuMSwgMC4wODc1LCAwLjA3NSwgMC4wNjUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIjAuMTM2MjUsIDAuMTI1LCAwLjEwNjI1LCAwLjEsIDAuMDg3NSwgMC4wNzc1LCAwLjA2ODc1IiwgXAotICAgICAgICAgICIwLjE0MjUsIDAuMTM3NSwgMC4xMTg3NSwgMC4xMDYyNSwgMC4xLCAwLjA4Mzc1LCAwLjA3NSIsIFwKLSAgICAgICAgICAiMC4xNTUsIDAuMTQzNzUsIDAuMTMxMjUsIDAuMTE4NzUsIDAuMTA2MjUsIDAuMDk2MjUsIDAuMDg3NSIsIFwKLSAgICAgICAgICAiMC4xNzEyNSwgMC4xNiwgMC4xNDc1LCAwLjEzNSwgMC4xMjI1LCAwLjExMjUsIDAuMTAzNzUiLCBcCi0gICAgICAgICAgIjAuMTg2MjUsIDAuMTc1LCAwLjE1NjI1LCAwLjE1LCAwLjEzNzUsIDAuMTI3NSwgMC4xMTg3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5Mzc1LCAwLjA4MjUsIDAuMDcsIDAuMDU3NSwgMC4wNDUsIDAuMDI4NzUsIDAuMDIiLCBcCi0gICAgICAgICAgIjAuMDk4NzUsIDAuMDg3NSwgMC4wNzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNCwgMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMTExMjUsIDAuMSwgMC4wODc1LCAwLjA3NSwgMC4wNjI1LCAwLjA0NjI1LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIjAuMTE3NSwgMC4xMTI1LCAwLjA5Mzc1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNTg3NSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4xMywgMC4xMTg3NSwgMC4xMDYyNSwgMC4wOTM3NSwgMC4wODEyNSwgMC4wNjUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIjAuMTQ2MjUsIDAuMTM1LCAwLjExNjI1LCAwLjEwMzc1LCAwLjA5NzUsIDAuMDgxMjUsIDAuMDY2MjUiLCBcCi0gICAgICAgICAgIjAuMTU1LCAwLjE0Mzc1LCAwLjEzMTI1LCAwLjExODc1LCAwLjEwNjI1LCAwLjA5LCAwLjA4MTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTTikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNjI5NTE7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNjI4NjQ7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNjI5NTE7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNDUzLCAwLjAwMDQ1MywgMC4wMDA0NTIsIDAuMDAwNDUyLCAwLjAwMDQ1MiwgMC4wMDA0NTIsIDAuMDAwNDUyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNDUzLCAwLjAwMDQ1NCwgMC4wMDA0NTQsIDAuMDAwNDU0LCAwLjAwMDQ1NCwgMC4wMDA0NTQsIDAuMDAwNDU0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRCYhUk4mIVNFJiFTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fUk5fRVFfMF9BTl9TRV9FUV8wX0FOX1NJX0VRXzAgPT0gMSdiMSI7Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4xNjAxMzQsIDAuMTY5NDU5LCAwLjE3OTc2MiwgMC4xOTE1MzUsIDAuMjAyOTY0LCAwLjIxOTcxMywgMC4yMzMwMDciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiByZWNvdmVyeV9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlJOIjsKLSAgICAgIHNkZl9jb25kIDogIlJOID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHJlY292ZXJ5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMjUsIDAuMDAxMjUsIC0wLjAxMTI1LCAtMC4wMjM3NSwgLTAuMDM2MjUsIC0wLjA1MjUsIC0wLjA2MTI1IiwgXAotICAgICAgICAgICIwLjAyMzc1LCAwLjAxMjUsIDAsIC0wLjAxMjUsIC0wLjAyNSwgLTAuMDQxMjUsIC0wLjA1NjI1IiwgXAotICAgICAgICAgICIwLjAzNjI1LCAwLjAyNSwgMC4wMTI1LCAtMC4wMDYyNSwgLTAuMDEyNSwgLTAuMDI4NzUsIC0wLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjA0MjUsIDAuMDMxMjUsIDAuMDE4NzUsIDAuMDA2MjUsIC0wLjAwNjI1LCAtMC4wMjI1LCAtMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4wNTUsIDAuMDQzNzUsIDAuMDMxMjUsIDAuMDE4NzUsIDAuMDA2MjUsIC0wLjAxLCAtMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMDcxMjUsIDAuMDYsIDAuMDQ3NSwgMC4wMzUsIDAuMDIyNSwgMC4wMDYyNSwgLTAuMDA4NzUiLCBcCi0gICAgICAgICAgIjAuMDg2MjUsIDAuMDc1LCAwLjA2MjUsIDAuMDUsIDAuMDM3NSwgMC4wMjEyNSwgMC4wMDYyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJlbW92YWxfcmlzaW5nOwotICAgICAgd2hlbiA6ICJSTiI7Ci0gICAgICBzZGZfY29uZCA6ICJSTiA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChyZW1vdmFsX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyNSwgMC4wMzYyNSwgMC4wNDg3NSwgMC4wNjEyNSwgMC4wNzM3NSwgMC4wOSwgMC4wOTg3NSIsIFwKLSAgICAgICAgICAiMC4wMiwgMC4wMzEyNSwgMC4wNDM3NSwgMC4wNSwgMC4wNjI1LCAwLjA3ODc1LCAwLjA4NzUiLCBcCi0gICAgICAgICAgIjAuMDA3NSwgMC4wMTg3NSwgMC4wMzEyNSwgMC4wNDM3NSwgMC4wNSwgMC4wNjYyNSwgMC4wODEyNSIsIFwKLSAgICAgICAgICAiLTAuMDA1LCAwLjAwNjI1LCAwLjAxODc1LCAwLjAzMTI1LCAwLjA0Mzc1LCAwLjA2LCAwLjA2ODc1IiwgXAotICAgICAgICAgICItMC4wMTEyNSwgLTAuMDA2MjUsIDAuMDEyNSwgMC4wMjUsIDAuMDMxMjUsIDAuMDQ3NSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiLTAuMDI3NSwgLTAuMDE2MjUsIC0wLjAwMzc1LCAwLjAwODc1LCAwLjAyMTI1LCAwLjAzMTI1LCAwLjA0NjI1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDI1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMC4wMDYyNSwgMC4wMjI1LCAwLjAzMTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IFNERkZTUlg0ICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChTREZGU1JYNCkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjc3NjA4NDsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBmZiAoTjM1LFFCSU5UKSB7Ci0gICAgbmV4dF9zdGF0ZSA6ICIoKFNFIFNJKSArICghU0UgRCkpIjsKLSAgICBjbG9ja2VkX29uIDogIkNLIjsKLSAgICBjbGVhciA6ICIoIVJOKSI7Ci0gICAgcHJlc2V0IDogIighU04pIjsKLSAgICBjbGVhcl9wcmVzZXRfdmFyMSA6IEg7Ci0gICAgY2xlYXJfcHJlc2V0X3ZhcjIgOiBMOwotICB9Ci0gIHBpbihDSykgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjE2NDkxOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYxNjIzNTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2MTY0OTE7Ci0gICAgY2xvY2sgOiB0cnVlOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzM1MSwgMC4wMDMzMjQsIDAuMDAzMzEyLCAwLjAwMzMxLCAwLjAwMzMxOSwgMC4wMDMzNDQsIDAuMDAzMzYzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA3NzQsIDAuMDA3NzE4LCAwLjAwNzcxLCAwLjAwNzcyLCAwLjAwNzczNiwgMC4wMDc3NzQsIDAuMDA3ODA4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRCZSTiYhU0UmIVNJJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9STl9FUV8xX0FOX1NFX0VRXzBfQU5fU0lfRVFfMF9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMTczODk5LCAwLjE4NDE3OCwgMC4xOTY4ODYsIDAuMjA5MjQ0LCAwLjIyMDQxMiwgMC4yMzYxMDMsIDAuMjQ4MDIzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4xMzIyOTQsIDAuMTQyMDk3LCAwLjE1NDUwMiwgMC4xNjY0MzksIDAuMTc3LCAwLjE5MTQ4MiwgMC4yMDI0MzEiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEQpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY0Njk0MzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2NDU1OTk7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjQ2OTQzOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNDA2OCwgMC4wMDQwNTMsIDAuMDA0MDQzLCAwLjAwNDAzOCwgMC4wMDQwMzUsIDAuMDA0MDM0LCAwLjAwNDAzOCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNTAxNCwgMC4wMDUwMDUsIDAuMDA1LCAwLjAwNDk5NiwgMC4wMDQ5OTQsIDAuMDA0OTk0LCAwLjAwNDk5OCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJSTiYhU0UmU04iOwotICAgICAgc2RmX2NvbmQgOiAiUk5fRVFfMV9BTl9TRV9FUV8wX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDU2MjUsIC0wLjA1MTI1LCAtMC4wMzg3NSwgLTAuMDMyNSwgLTAuMDMyNSwgLTAuMDIyNSwgLTAuMDEzNzUiLCBcCi0gICAgICAgICAgIi0wLjA2NzUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAyNzUsIC0wLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDczNzUsIC0wLjA2ODc1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjA0LCAtMC4wMzc1IiwgXAotICAgICAgICAgICItMC4wODYyNSwgLTAuMDgxMjUsIC0wLjA3NSwgLTAuMDYyNSwgLTAuMDYyNSwgLTAuMDUyNSwgLTAuMDQzNzUiLCBcCi0gICAgICAgICAgIi0wLjA5ODc1LCAtMC4wODc1LCAtMC4wODEyNSwgLTAuMDc1LCAtMC4wNjg3NSwgLTAuMDY1LCAtMC4wNTYyNSIsIFwKLSAgICAgICAgICAiLTAuMTE1LCAtMC4xMDM3NSwgLTAuMDk3NSwgLTAuMDkxMjUsIC0wLjA4NSwgLTAuMDgxMjUsIC0wLjA3MjUiLCBcCi0gICAgICAgICAgIi0wLjEyMzc1LCAtMC4xMTg3NSwgLTAuMTEyNSwgLTAuMTA2MjUsIC0wLjEsIC0wLjA5LCAtMC4wODc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDEyNSwgLTAuMDA3NSwgMC4wMDUsIDAuMDE3NSwgMC4wMjM3NSwgMC4wNCwgMC4wNDg3NSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxMjUsIDAsIDAuMDA2MjUsIDAuMDE4NzUsIDAuMDI4NzUsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAyNSwgLTAuMDEyNSwgMCwgMC4wMDYyNSwgMC4wMTYyNSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDEyNSwgMCwgMC4wMSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjA0Mzc1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIDAuMDAzNzUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDY1LCAtMC4wNTM3NSwgLTAuMDQxMjUsIC0wLjAzNSwgLTAuMDIyNSwgLTAuMDEyNSwgLTAuMDAzNzUiLCBcCi0gICAgICAgICAgIi0wLjA3Mzc1LCAtMC4wNjI1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjAzMTI1LCAtMC4wMjEyNSwgLTAuMDEyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiUk4mIVNFJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIlJOX0VRXzFfQU5fU0VfRVFfMF9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE0Mzc1LCAwLjEzMjUsIDAuMTIsIDAuMTA3NSwgMC4wOTUsIDAuMDc4NzUsIDAuMDciLCBcCi0gICAgICAgICAgIjAuMTU1LCAwLjE0Mzc1LCAwLjEzMTI1LCAwLjExMjUsIDAuMTA2MjUsIDAuMDksIDAuMDc1IiwgXAotICAgICAgICAgICIwLjE2NzUsIDAuMTUsIDAuMTM3NSwgMC4xMjUsIDAuMTEyNSwgMC4xMDI1LCAwLjA4NzUiLCBcCi0gICAgICAgICAgIjAuMTczNzUsIDAuMTYyNSwgMC4xNSwgMC4xMzc1LCAwLjEyNSwgMC4xMDg3NSwgMC4xIiwgXAotICAgICAgICAgICIwLjE4NjI1LCAwLjE3NSwgMC4xNjI1LCAwLjE0Mzc1LCAwLjEzNzUsIDAuMTIxMjUsIDAuMTEyNSIsIFwKLSAgICAgICAgICAiMC4yMDI1LCAwLjE5MTI1LCAwLjE3ODc1LCAwLjE2LCAwLjE1Mzc1LCAwLjEzNzUsIDAuMTI4NzUiLCBcCi0gICAgICAgICAgIjAuMjE3NSwgMC4yMDYyNSwgMC4xODc1LCAwLjE3NSwgMC4xNjI1LCAwLjE1MjUsIDAuMTM3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExMjUsIDAuMTAxMjUsIDAuMDg4NzUsIDAuMDc2MjUsIDAuMDYzNzUsIDAuMDQ3NSwgMC4wMzg3NSIsIFwKLSAgICAgICAgICAiMC4xMjM3NSwgMC4xMTI1LCAwLjEsIDAuMDg3NSwgMC4wNzUsIDAuMDU4NzUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMTM2MjUsIDAuMTI1LCAwLjEwNjI1LCAwLjA5Mzc1LCAwLjA4MTI1LCAwLjA2NSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiMC4xNDI1LCAwLjEzMTI1LCAwLjExODc1LCAwLjEwNjI1LCAwLjA5Mzc1LCAwLjA3NzUsIDAuMDYyNSIsIFwKLSAgICAgICAgICAiMC4xNTUsIDAuMTQzNzUsIDAuMTI1LCAwLjExMjUsIDAuMSwgMC4wODM3NSwgMC4wNzUiLCBcCi0gICAgICAgICAgIjAuMTY1LCAwLjE1Mzc1LCAwLjE0MTI1LCAwLjEyODc1LCAwLjExNjI1LCAwLjEsIDAuMDkxMjUiLCBcCi0gICAgICAgICAgIjAuMTgsIDAuMTY4NzUsIDAuMTUsIDAuMTM3NSwgMC4xMjUsIDAuMTE1LCAwLjEiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFEpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMS4wMjgwNjsKLSAgICBmdW5jdGlvbiA6ICJOMzUiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5vbl91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcmlzaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTM4ODQxLCAwLjIxMzE3MSwgMC4yODU3NzcsIDAuMzM3NjY3LCAwLjQyMDI5OCwgMC40OTI3ODEsIDAuNTk2MzQ1IiwgXAotICAgICAgICAgICIwLjE0ODk5NywgMC4yMjMyOSwgMC4yOTU4NzgsIDAuMzQ3ODM0LCAwLjQzMDQ2MSwgMC41MDI5NDksIDAuNjA2NTEiLCBcCi0gICAgICAgICAgIjAuMTYxNTI2LCAwLjIzNTg3NywgMC4zMDg1ODIsIDAuMzYwMjQsIDAuNDQzMDYsIDAuNTE1NTA2LCAwLjYxOTA3IiwgXAotICAgICAgICAgICIwLjE3MzczLCAwLjI0ODAyMywgMC4zMjA2MTUsIDAuMzcyMzgsIDAuNDU1MTk3LCAwLjUyNzY1NSwgMC42MzEyMjIiLCBcCi0gICAgICAgICAgIjAuMTg0ODY1LCAwLjI1OTE3NywgMC4zMzE4NzQsIDAuMzgzNTY4LCAwLjQ2NjM4LCAwLjUzODgxNiwgMC42NDIzMjYiLCBcCi0gICAgICAgICAgIjAuMjAwMzM2LCAwLjI3NDYyNSwgMC4zNDcxODYsIDAuMzk5MTQ3LCAwLjQ4MTc5LCAwLjU1NDI2NywgMC42NTc4MzciLCBcCi0gICAgICAgICAgIjAuMjEyMzc1LCAwLjI4NjcwNiwgMC4zNTkzOTgsIDAuNDExMDg4LCAwLjQ5Mzg5NSwgMC41NjYzMzMsIDAuNjY5ODUxIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM1MjkxLCAwLjE3OTg5LCAwLjMyNzM0OSwgMC40MzMyMTMsIDAuNjA0MDk3LCAwLjc1MzY1MSwgMC45NjczNCIsIFwKLSAgICAgICAgICAiMC4wMzUyODMsIDAuMTc5ODkzLCAwLjMyNjI0NSwgMC40MzMyMjIsIDAuNjA0MDg2LCAwLjc1MzY0OSwgMC45NjczNjEiLCBcCi0gICAgICAgICAgIjAuMDM1NDg3LCAwLjE3OTkwNSwgMC4zMjcyNzEsIDAuNDMzMDExLCAwLjYwNDA5MiwgMC43NTM1OTksIDAuOTY3MjkiLCBcCi0gICAgICAgICAgIjAuMDM1MzYzLCAwLjE3OTkwNywgMC4zMjcwMDcsIDAuNDMzMDExLCAwLjYwNDA5NywgMC43NTM2MDUsIDAuOTY3MzA3IiwgXAotICAgICAgICAgICIwLjAzNTM2LCAwLjE3OTg4MiwgMC4zMjY3NjMsIDAuNDMzMDU2LCAwLjYwNDA4LCAwLjc1MzYyMSwgMC45NjcxMzgiLCBcCi0gICAgICAgICAgIjAuMDM1Mzk0LCAwLjE3OTg5OCwgMC4zMjYyMzcsIDAuNDMzMjA5LCAwLjYwNDEwMiwgMC43NTM2MTgsIDAuOTY3MzQxIiwgXAotICAgICAgICAgICIwLjAzNTI0OSwgMC4xNzkzNTYsIDAuMzI2Nzc1LCAwLjQzMzAzNywgMC42MDQwOTUsIDAuNzUzNjE1LCAwLjk2NzE5Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTQ4NzU3LCAwLjIyNDUsIDAuMjk4NDksIDAuMzUxMjcsIDAuNDM1NjA0LCAwLjUwOTM2NiwgMC42MTQ3NDkiLCBcCi0gICAgICAgICAgIjAuMTU4OTc4LCAwLjIzNDcxNCwgMC4zMDg4MTIsIDAuMzYxMjc5LCAwLjQ0NTgwNiwgMC41MTk2MDYsIDAuNjI1MTA3IiwgXAotICAgICAgICAgICIwLjE3MTczMSwgMC4yNDc0NjQsIDAuMzIxMzc3LCAwLjM3NDI0LCAwLjQ1ODU3MywgMC41MzIzMzcsIDAuNjM3NjczIiwgXAotICAgICAgICAgICIwLjE4NDA4NywgMC4yNTk4MjMsIDAuMzMzOTEsIDAuMzg2NTUzLCAwLjQ3MDkxNCwgMC41NDQ3MTIsIDAuNjUwMTU5IiwgXAotICAgICAgICAgICIwLjE5NTI1NiwgMC4yNzEwMzgsIDAuMzQ0ODQ4LCAwLjM5Nzc2NSwgMC40ODIwOTUsIDAuNTU1ODYyLCAwLjY2MTE5NSIsIFwKLSAgICAgICAgICAiMC4yMTA5NTMsIDAuMjg2Njg1LCAwLjM2MDcwOSwgMC40MTM0NjcsIDAuNDk3Nzk4LCAwLjU3MTU2MSwgMC42NzY4OSIsIFwKLSAgICAgICAgICAiMC4yMjI4NjgsIDAuMjk4NjExLCAwLjM3MjU4MywgMC40MjUzOSwgMC41MDk3MjEsIDAuNTgzNDgzLCAwLjY4ODgxNCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzNDE2MiwgMC4xNzkzMzQsIDAuMzI3MjgzLCAwLjQzNDE4MiwgMC42MDQ5NTQsIDAuNzU0MjE3LCAwLjk2Nzc5OSIsIFwKLSAgICAgICAgICAiMC4wMzQzMDMsIDAuMTc5MzM1LCAwLjMyNjg1MywgMC40MzMyODMsIDAuNjA0OTA1LCAwLjc1NDMxLCAwLjk2ODE3NiIsIFwKLSAgICAgICAgICAiMC4wMzQxNjcsIDAuMTc5MTU0LCAwLjMyNzI3LCAwLjQzNDE3NCwgMC42MDQ5MzgsIDAuNzU0MTk0LCAwLjk2Nzc3NCIsIFwKLSAgICAgICAgICAiMC4wMzQxOTQsIDAuMTc5MzMyLCAwLjMyNjc2NiwgMC40MzMwODQsIDAuNjA0OTAyLCAwLjc1NDI5NCwgMC45NjgwNTEiLCBcCi0gICAgICAgICAgIjAuMDM0MTYsIDAuMTc5MywgMC4zMjcyODQsIDAuNDM0MTU5LCAwLjYwNDkyOCwgMC43NTQxNzMsIDAuOTY3Nzc5IiwgXAotICAgICAgICAgICIwLjAzNDEyNCwgMC4xNzkxNDIsIDAuMzI2OTY3LCAwLjQzNDE2NCwgMC42MDQ5NDUsIDAuNzU0MTg1LCAwLjk2Nzc4MiIsIFwKLSAgICAgICAgICAiMC4wMzQxNzcsIDAuMTc5MzMzLCAwLjMyNjYxNywgMC40MzQxNjQsIDAuNjA0OTQxLCAwLjc1NDE5LCAwLjk2Nzc4MyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogY2xlYXI7Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTkwNTM0LCAwLjI2NjE5LCAwLjMzOTkzNSwgMC4zOTI5OCwgMC40NzcyOTgsIDAuNTUwOTM3LCAwLjY1NjM1MyIsIFwKLSAgICAgICAgICAiMC4yMDAzOTMsIDAuMjc2MDUsIDAuMzQ5Nzk0LCAwLjQwMjgzOSwgMC40ODcxNTgsIDAuNTYwNzk3LCAwLjY2NjIxMyIsIFwKLSAgICAgICAgICAiMC4yMTIzNzQsIDAuMjg4MDczLCAwLjM2MTc5OSwgMC40MTQ4MjMsIDAuNDk5MTI5LCAwLjU3MjgyMiwgMC42NzgxOTgiLCBcCi0gICAgICAgICAgIjAuMjIyOTQzLCAwLjI5ODU5OCwgMC4zNzIzNDIsIDAuNDI1MzksIDAuNTA5NzA5LCAwLjU4MzM0OSwgMC42ODg3NjIiLCBcCi0gICAgICAgICAgIjAuMjMxNzA1LCAwLjMwNzM2MiwgMC4zODExMTEsIDAuNDM0MTUxLCAwLjUxODQ3LCAwLjU5MjEwOSwgMC42OTc1MjciLCBcCi0gICAgICAgICAgIjAuMjQ0NTg3LCAwLjMyMDMxNSwgMC4zOTQzOTcsIDAuNDQ3MDY0LCAwLjUzMTE0MiwgMC42MDUsIDAuNzEwNDIzIiwgXAotICAgICAgICAgICIwLjI1NDI2OSwgMC4zMjk5MiwgMC40MDM4MTUsIDAuNDU2NzE0LCAwLjU0MTAyOSwgMC42MTQ2NzUsIDAuNzIwMDg3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM0NTg0LCAwLjE3OTI5NSwgMC4zMjY5NTMsIDAuNDM0MTg4LCAwLjYwNTExMiwgMC43NTM3NzMsIDAuOTY3ODUiLCBcCi0gICAgICAgICAgIjAuMDM0NTMyLCAwLjE3OTI5NCwgMC4zMjcwODEsIDAuNDM0MTg3LCAwLjYwNTEwOSwgMC43NTM3NzMsIDAuOTY3ODQiLCBcCi0gICAgICAgICAgIjAuMDM0NTQyLCAwLjE3OTI5MiwgMC4zMjcxNDcsIDAuNDM0MTksIDAuNjA1MDk2LCAwLjc1NDE4NSwgMC45NjcwNzQiLCBcCi0gICAgICAgICAgIjAuMDM0NDYzLCAwLjE3OTI5OSwgMC4zMjcwNTEsIDAuNDM0MTg4LCAwLjYwNTEwOCwgMC43NTQ2NDQsIDAuOTY4MTM4IiwgXAotICAgICAgICAgICIwLjAzNDQ3NywgMC4xNzkyODQsIDAuMzI3MDQ2LCAwLjQzNDE4NSwgMC42MDUxLCAwLjc1Mzc3MywgMC45NjgwNzIiLCBcCi0gICAgICAgICAgIjAuMDM0NDc2LCAwLjE3OTMwNywgMC4zMjczMDYsIDAuNDM0MTksIDAuNjA1MTU3LCAwLjc1NDczMiwgMC45NjgwNDciLCBcCi0gICAgICAgICAgIjAuMDM0NjIsIDAuMTc5MjkzLCAwLjMyNjkyLCAwLjQzNDIxMywgMC42MDUxMTEsIDAuNzU0NTQ2LCAwLjk2ODIxNyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcHJlc2V0OwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEyMzYyMSwgMC4xOTc1NTEsIDAuMjcwMzYxLCAwLjMyMjAxMiwgMC40MDQzOTIsIDAuNDc3Njk5LCAwLjU4MDg2NiIsIFwKLSAgICAgICAgICAiMC4xMzMzMzMsIDAuMjA3MjY3LCAwLjI4MDE2MSwgMC4zMzE3NTQsIDAuNDE0MTQxLCAwLjQ4NzM0NywgMC41OTA1MzIiLCBcCi0gICAgICAgICAgIjAuMTQ1NjA3LCAwLjIxOTU0MiwgMC4yOTIyNzYsIDAuMzQzOTE5LCAwLjQyNjQxLCAwLjQ5OTgyNiwgMC42MDMyMzEiLCBcCi0gICAgICAgICAgIjAuMTU4MDI3LCAwLjIzMTk2MSwgMC4zMDQ0NjEsIDAuMzU2MzUsIDAuNDM4ODI3LCAwLjUxMjI2NywgMC42MTU2ODUiLCBcCi0gICAgICAgICAgIjAuMTY5OSwgMC4yNDM4NTIsIDAuMzE2MzQ1LCAwLjM2ODMzMSwgMC40NTA3NzYsIDAuNTIzNjYyLCAwLjYyNzQ4NiIsIFwKLSAgICAgICAgICAiMC4xODc5MjUsIDAuMjYxODQ4LCAwLjMzNDY2OSwgMC4zODYxNjcsIDAuNDY4OTEzLCAwLjU0MTY5NSwgMC42NDUxMzciLCBcCi0gICAgICAgICAgIjAuMjAyNjkyLCAwLjI3NjYzMywgMC4zNDg5NTcsIDAuNDAwNjc5LCAwLjQ4MzQ5NiwgMC41NTYzMzIsIDAuNjYwMDQ5Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM0MTU1LCAwLjE3OTU2OSwgMC4zMjc2LCAwLjQzMzQyNiwgMC42MDM1OTIsIDAuNzUzNzgxLCAwLjk2NzM3OSIsIFwKLSAgICAgICAgICAiMC4wMzQxMzksIDAuMTc5NTc4LCAwLjMyNzU5OCwgMC40MzM0NjQsIDAuNjA0MjE4LCAwLjc1MzgxLCAwLjk2NzMzNSIsIFwKLSAgICAgICAgICAiMC4wMzQyNCwgMC4xNzk1OTMsIDAuMzI3NjAzLCAwLjQzMzQ0OCwgMC42MDQyMzUsIDAuNzUzNzc2LCAwLjk2NzM1MiIsIFwKLSAgICAgICAgICAiMC4wMzQzMTUsIDAuMTc5NjEzLCAwLjMyNzU3NywgMC40MzM1MDQsIDAuNjA0MjIyLCAwLjc1Mzc3OCwgMC45NjczMzUiLCBcCi0gICAgICAgICAgIjAuMDM0MzAyLCAwLjE3OTYyLCAwLjMyNzYsIDAuNDMzMzk5LCAwLjYwMzU3MywgMC43NTM3NzUsIDAuOTY3MzI1IiwgXAotICAgICAgICAgICIwLjAzNDE4NywgMC4xNzk2MTQsIDAuMzI3NTg0LCAwLjQzMzUzNywgMC42MDM3NjgsIDAuNzUzODExLCAwLjk2NzMyOSIsIFwKLSAgICAgICAgICAiMC4wMzQ0NTMsIDAuMTc5NjY0LCAwLjMyNzU5LCAwLjQzMzUyOCwgMC42MDQyMjMsIDAuNzUzNzg2LCAwLjk2NzM0MiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE3MjQxMywgMC4yNDgwMzEsIDAuMzIxODIyLCAwLjM3NDg2MSwgMC40NTkxODEsIDAuNTMyODQyLCAwLjYzODI1IiwgXAotICAgICAgICAgICIwLjE4MjAyNywgMC4yNTc3LCAwLjMzMTc4NywgMC4zODQyMTIsIDAuNDY4NzgyLCAwLjU0MjQ2OSwgMC42NDgwNDkiLCBcCi0gICAgICAgICAgIjAuMTkzMDQ3LCAwLjI2ODcwMywgMC4zNDI0NDksIDAuMzk1NDk5LCAwLjQ3OTgyLCAwLjU1MzQ2MiwgMC42NTg4NzUiLCBcCi0gICAgICAgICAgIjAuMjAzODEzLCAwLjI3OTQ3MSwgMC4zNTMyMTcsIDAuNDA2MjY1LCAwLjQ5MDU4NiwgMC41NjQyMjksIDAuNjY5NjQxIiwgXAotICAgICAgICAgICIwLjIxNDQ1NiwgMC4yOTAxMjIsIDAuMzYzODU4LCAwLjQxNjkxMywgMC41MDEyMzQsIDAuNTc0ODc5LCAwLjY4MDI4MiIsIFwKLSAgICAgICAgICAiMC4yMzEyNTQsIDAuMzA2ODk0LCAwLjM4MDY4NSwgMC40MzM3MDYsIDAuNTE4MDI4LCAwLjU5MTY3NywgMC42OTcwOTIiLCBcCi0gICAgICAgICAgIjAuMjQ1NjI3LCAwLjMyMTM1OSwgMC4zOTU0NDksIDAuNDQ4MTE0LCAwLjUzMjI2NCwgMC42MDYzOTcsIDAuNzExNDgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzQ2MDUsIDAuMTc5MjE0LCAwLjMyNzAxMSwgMC40MzQxODEsIDAuNjA1MTAzLCAwLjc1MzcyNCwgMC45NjgwMDkiLCBcCi0gICAgICAgICAgIjAuMDM0NjcyLCAwLjE3OTMwNSwgMC4zMjY5ODYsIDAuNDM0MTIzLCAwLjYwNTA5MiwgMC43NTQxOTksIDAuOTY4MzY0IiwgXAotICAgICAgICAgICIwLjAzNDUyNywgMC4xNzkyOTksIDAuMzI2OTUyLCAwLjQzNDE4OCwgMC42MDUxMDcsIDAuNzUzNzQzLCAwLjk2Nzc4NiIsIFwKLSAgICAgICAgICAiMC4wMzQ0NzcsIDAuMTc5MzA3LCAwLjMyNjk1MSwgMC40MzQxODcsIDAuNjA1MTAyLCAwLjc1MzczOSwgMC45Njc2ODgiLCBcCi0gICAgICAgICAgIjAuMDM0NzI1LCAwLjE3OTMwNiwgMC4zMjY5NTIsIDAuNDM0MTg5LCAwLjYwNTE3OCwgMC43NTQ2MDMsIDAuOTY3Njg4IiwgXAotICAgICAgICAgICIwLjAzNDQwOSwgMC4xNzkyMzgsIDAuMzI3MjQ5LCAwLjQzNDE3OCwgMC42MDUwODMsIDAuNzUzNzMyLCAwLjk2Njk2NyIsIFwKLSAgICAgICAgICAiMC4wMzQ0NjMsIDAuMTc4NDU2LCAwLjMyNzMwMiwgMC40MzQxOTQsIDAuNjA0OTM4LCAwLjc1NDkzNCwgMC45Njc3OCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwODI2LCAwLjAwODQyLCAwLjAwODQ0MywgMC4wMDg0NSwgMC4wMDg0NTUsIDAuMDA4NDU3LCAwLjAwODQ2IiwgXAotICAgICAgICAgICIwLjAwODI0NSwgMC4wMDg0MDQsIDAuMDA4NDI4LCAwLjAwODQzNiwgMC4wMDg0NCwgMC4wMDg0NDIsIDAuMDA4NDQzIiwgXAotICAgICAgICAgICIwLjAwODIzNiwgMC4wMDgzOTYsIDAuMDA4NDE5LCAwLjAwODQyNywgMC4wMDg0MzIsIDAuMDA4NDMyLCAwLjAwODQzNyIsIFwKLSAgICAgICAgICAiMC4wMDgyMzUsIDAuMDA4Mzk0LCAwLjAwODQxNywgMC4wMDg0MjQsIDAuMDA4NDI5LCAwLjAwODQzNCwgMC4wMDg0MzciLCBcCi0gICAgICAgICAgIjAuMDA4MjQ0LCAwLjAwODQwMiwgMC4wMDg0MjUsIDAuMDA4NDMxLCAwLjAwODQzOCwgMC4wMDg0NCwgMC4wMDg0NDUiLCBcCi0gICAgICAgICAgIjAuMDA4MjUsIDAuMDA4NDA4LCAwLjAwODQzMSwgMC4wMDg0MzgsIDAuMDA4NDQzLCAwLjAwODQ0NiwgMC4wMDg0NDkiLCBcCi0gICAgICAgICAgIjAuMDA4MjU5LCAwLjAwODQyMSwgMC4wMDg0NDQsIDAuMDA4NDUsIDAuMDA4NDU2LCAwLjAwODQ1OSwgMC4wMDg0NjEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwODI2NiwgMC4wMDg0MTUsIDAuMDA4NDM3LCAwLjAwODQ0MywgMC4wMDg0NDgsIDAuMDA4NDUsIDAuMDA4NDUzIiwgXAotICAgICAgICAgICIwLjAwODI1LCAwLjAwODQwMSwgMC4wMDg0MjIsIDAuMDA4NDI4LCAwLjAwODQzNCwgMC4wMDg0MzYsIDAuMDA4NDM5IiwgXAotICAgICAgICAgICIwLjAwODI0OCwgMC4wMDgzOTgsIDAuMDA4NDE5LCAwLjAwODQyNSwgMC4wMDg0MzEsIDAuMDA4NDMzLCAwLjAwODQzNiIsIFwKLSAgICAgICAgICAiMC4wMDgyNTMsIDAuMDA4NDA0LCAwLjAwODQyNSwgMC4wMDg0MzEsIDAuMDA4NDM2LCAwLjAwODQzOSwgMC4wMDg0NDEiLCBcCi0gICAgICAgICAgIjAuMDA4MjY2LCAwLjAwODQxNSwgMC4wMDg0MzYsIDAuMDA4NDQzLCAwLjAwODQ0OCwgMC4wMDg0NSwgMC4wMDg0NTMiLCBcCi0gICAgICAgICAgIjAuMDA4Mjc4LCAwLjAwODQyOCwgMC4wMDg0NDksIDAuMDA4NDU1LCAwLjAwODQ1OSwgMC4wMDg0NjMsIDAuMDA4NDY1IiwgXAotICAgICAgICAgICIwLjAwODI5MSwgMC4wMDg0NDMsIDAuMDA4NDY0LCAwLjAwODQ3MSwgMC4wMDg0NzYsIDAuMDA4NDc5LCAwLjAwODQ4MSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwOTQ5MSwgMC4wMDk2NDEsIDAuMDA5NjYzLCAwLjAwOTY3NCwgMC4wMDk2NzksIDAuMDA5Njc3LCAwLjAwOTY4IiwgXAotICAgICAgICAgICIwLjAwOTQ4LCAwLjAwOTYyOSwgMC4wMDk2NTIsIDAuMDA5NjYyLCAwLjAwOTY2OCwgMC4wMDk2NjYsIDAuMDA5NjY4IiwgXAotICAgICAgICAgICIwLjAwOTQ3NywgMC4wMDk2MjYsIDAuMDA5NjQ5LCAwLjAwOTY1NSwgMC4wMDk2NjUsIDAuMDA5NjcsIDAuMDA5NjcxIiwgXAotICAgICAgICAgICIwLjAwOTQ3NiwgMC4wMDk2MjYsIDAuMDA5NjQ5LCAwLjAwOTY2LCAwLjAwOTY2NCwgMC4wMDk2NjMsIDAuMDA5NjY1IiwgXAotICAgICAgICAgICIwLjAwOTQ4MSwgMC4wMDk2MzEsIDAuMDA5NjUzLCAwLjAwOTY2NCwgMC4wMDk2NjksIDAuMDA5NjcxLCAwLjAwOTY3IiwgXAotICAgICAgICAgICIwLjAwOTQ4MSwgMC4wMDk2MzIsIDAuMDA5NjYsIDAuMDA5NjY2LCAwLjAwOTY2NiwgMC4wMDk2NzMsIDAuMDA5Njc1IiwgXAotICAgICAgICAgICIwLjAwOTQ5NiwgMC4wMDk2NDQsIDAuMDA5NjY3LCAwLjAwOTY3MywgMC4wMDk2ODUsIDAuMDA5NjgxLCAwLjAwOTY4MyIpOwotICAgICAgfQotICAgICAgcmlzZV9wb3dlcihzY2FsYXIpIHsKLSAgICAgICAgdmFsdWVzKCIwIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiU04iOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA5MTY4LCAwLjAwOTMxOSwgMC4wMDkzMzYsIDAuMDA5MzQyLCAwLjAwOTM0OCwgMC4wMDkzNDcsIDAuMDA5MzUyIiwgXAotICAgICAgICAgICIwLjAwOTE1NCwgMC4wMDkzMDUsIDAuMDA5MzIzLCAwLjAwOTMyOSwgMC4wMDkzMzIsIDAuMDA5MzM0LCAwLjAwOTM0IiwgXAotICAgICAgICAgICIwLjAwOTE0OSwgMC4wMDkyOTksIDAuMDA5MzE3LCAwLjAwOTMyMywgMC4wMDkzMjYsIDAuMDA5MzI4LCAwLjAwOTMzIiwgXAotICAgICAgICAgICIwLjAwOTE0MSwgMC4wMDkyOTQsIDAuMDA5MzEzLCAwLjAwOTMxNywgMC4wMDkzMjIsIDAuMDA5MzI0LCAwLjAwOTMyNSIsIFwKLSAgICAgICAgICAiMC4wMDkxNDEsIDAuMDA5Mjk0LCAwLjAwOTMxMiwgMC4wMDkzMTgsIDAuMDA5MzIxLCAwLjAwOTMyMywgMC4wMDkzMjUiLCBcCi0gICAgICAgICAgIjAuMDA5MTM4LCAwLjAwOTI5NSwgMC4wMDkzMTQsIDAuMDA5MzIsIDAuMDA5MzI3LCAwLjAwOTMyOSwgMC4wMDkzMjgiLCBcCi0gICAgICAgICAgIjAuMDA5MTQ3LCAwLjAwOTMwMiwgMC4wMDkzMjEsIDAuMDA5MzI3LCAwLjAwOTMzMSwgMC4wMDkzMzMsIDAuMDA5MzM3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDgwNjgsIDAuMDA4MjE4LCAwLjAwODI0MiwgMC4wMDgyNTEsIDAuMDA4MjU3LCAwLjAwODI1NiwgMC4wMDgyNTgiLCBcCi0gICAgICAgICAgIjAuMDA4MDUxLCAwLjAwODIwMSwgMC4wMDgyMjQsIDAuMDA4MjMsIDAuMDA4MjQyLCAwLjAwODI0NiwgMC4wMDgyNDEiLCBcCi0gICAgICAgICAgIjAuMDA4MDQxLCAwLjAwODE5MSwgMC4wMDgyMTUsIDAuMDA4MjI2LCAwLjAwODIzMSwgMC4wMDgyMjksIDAuMDA4MjMyIiwgXAotICAgICAgICAgICIwLjAwODAzNiwgMC4wMDgxODUsIDAuMDA4MjA5LCAwLjAwODIyLCAwLjAwODIyNSwgMC4wMDgyMjMsIDAuMDA4MjI2IiwgXAotICAgICAgICAgICIwLjAwODAzNCwgMC4wMDgxODIsIDAuMDA4MjA1LCAwLjAwODIxMiwgMC4wMDgyMjUsIDAuMDA4MjIsIDAuMDA4MjIzIiwgXAotICAgICAgICAgICIwLjAwODAyNywgMC4wMDgxNzcsIDAuMDA4MiwgMC4wMDgyMSwgMC4wMDgyMTUsIDAuMDA4MjE3LCAwLjAwODIxOCIsIFwKLSAgICAgICAgICAiMC4wMDgwMiwgMC4wMDgxNywgMC4wMDgxOTksIDAuMDA4MjA1LCAwLjAwODIwOSwgMC4wMDgyMDgsIDAuMDA4MjExIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihRTikgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAxLjAzNjM5OwotICAgIGZ1bmN0aW9uIDogIlFCSU5UIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBub25fdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJpc2luZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE3MzkwNywgMC4yNDU3MTYsIDAuMzE3Mzc4LCAwLjM2ODU4NiwgMC40NTA1MywgMC41MjIyMzYsIDAuNjI0NzA3IiwgXAotICAgICAgICAgICIwLjE4NDE3OCwgMC4yNTU5MjgsIDAuMzI3NjEzLCAwLjM3ODgwNCwgMC40NjA3NSwgMC41MzI0NjksIDAuNjM0OTk1IiwgXAotICAgICAgICAgICIwLjE5Njg4NiwgMC4yNjg2OTgsIDAuMzQwMzUxLCAwLjM5MTU2MiwgMC40NzM1MDUsIDAuNTQ1MjEyLCAwLjY0NzY4MyIsIFwKLSAgICAgICAgICAiMC4yMDkyNDQsIDAuMjgxMDM2LCAwLjM1MjcyMSwgMC40MDM5MjYsIDAuNDg1ODU5LCAwLjU1NzU3NywgMC42NjAwNzIiLCBcCi0gICAgICAgICAgIjAuMjIwNDEyLCAwLjI5MjIwNCwgMC4zNjM4NzUsIDAuNDE1MDg3LCAwLjQ5NzAzLCAwLjU2ODczNywgMC42NzEyMDkiLCBcCi0gICAgICAgICAgIjAuMjM2MTA0LCAwLjMwNzkxOSwgMC4zNzk1NzksIDAuNDMwNzg1LCAwLjUxMjcyOSwgMC41ODQ0MzUsIDAuNjg2OTA2IiwgXAotICAgICAgICAgICIwLjI0ODAyMywgMC4zMTk4MTcsIDAuMzkxNDkxLCAwLjQ0MjcsIDAuNTI0NjQzLCAwLjU5NjM0OSwgMC42OTg4MjIiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzIxNDcsIDAuMTc2NTI5LCAwLjMyMzk1MSwgMC40MzAwNzQsIDAuNTk5NDE3LCAwLjc0NzUxNywgMC45NTkzIiwgXAotICAgICAgICAgICIwLjAzMjE1MiwgMC4xNzY0NTcsIDAuMzIzODY3LCAwLjQyOTU5NSwgMC41OTkzNjUsIDAuNzQ3NTgyLCAwLjk1OTYzMiIsIFwKLSAgICAgICAgICAiMC4wMzIxMzEsIDAuMTc2MTg2LCAwLjMyMzk5NCwgMC40MzAwNzEsIDAuNTk5NCwgMC43NDc1MDIsIDAuOTU4OTg3IiwgXAotICAgICAgICAgICIwLjAzMjE0MiwgMC4xNzY0NTMsIDAuMzIzODI2LCAwLjQyOTQzOSwgMC41OTkzNjIsIDAuNzQ3NTcxLCAwLjk1OTU2NSIsIFwKLSAgICAgICAgICAiMC4wMzIxNDYsIDAuMTc2NDEsIDAuMzIzOTU0LCAwLjQzMDA2NCwgMC41OTkzODksIDAuNzQ3NDg5LCAwLjk1ODk4NyIsIFwKLSAgICAgICAgICAiMC4wMzIxMDcsIDAuMTc2MTg5LCAwLjMyMzk0NCwgMC40MzAwNjcsIDAuNTk5NDA4LCAwLjc0NzQ5NywgMC45NTg5ODYiLCBcCi0gICAgICAgICAgIjAuMDMyMTEzLCAwLjE3NjQzNSwgMC4zMjM5MywgMC40MzAwNjcsIDAuNTk5NDAzLCAwLjc0NzUsIDAuOTU4OTg2Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTY1OTE5LCAwLjIzOTg4MywgMC4zMTM2OTcsIDAuMzY2NDQ2LCAwLjQ1MDgwNywgMC41MjQ2NSwgMC42MzAxNTQiLCBcCi0gICAgICAgICAgIjAuMTc2MDc2LCAwLjI1MDAzNSwgMC4zMjM4NTYsIDAuMzc2NjA0LCAwLjQ2MDk2NiwgMC41MzQ4MDksIDAuNjQwMzEzIiwgXAotICAgICAgICAgICIwLjE4ODU5NywgMC4yNjI2MTUsIDAuMzM2NDMzLCAwLjM4OTE2OCwgMC40NzM1NDgsIDAuNTQ3Mzg2LCAwLjY1Mjg4OSIsIFwKLSAgICAgICAgICAiMC4yMDA4MDgsIDAuMjc0NzU5LCAwLjM0ODU3NSwgMC40MDEzMTIsIDAuNDg1NjkxLCAwLjU1OTUzMSwgMC42NjUwMzQiLCBcCi0gICAgICAgICAgIjAuMjExOTMsIDAuMjg1OTI4LCAwLjM1OTc2LCAwLjQxMjQ4NSwgMC40OTY4NjQsIDAuNTcwNzAxLCAwLjY3NjE5NCIsIFwKLSAgICAgICAgICAiMC4yMjc0MTIsIDAuMzAxMzY2LCAwLjM3NTE4NSwgMC40Mjc5MzQsIDAuNTEyMjk3LCAwLjU4NjEzOSwgMC42OTE2NDMiLCBcCi0gICAgICAgICAgIjAuMjM5NDI3LCAwLjMxMzQ1LCAwLjM4NzI3OCwgMC40NDAwMDIsIDAuNTI0Mzc3LCAwLjU5ODIxOCwgMC43MDM3MDgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzIwODcsIDAuMTc4MTU2LCAwLjMyNzIwNCwgMC40MzQyMzksIDAuNjA1MTg1LCAwLjc1NDg5MiwgMC45Njg4NDEiLCBcCi0gICAgICAgICAgIjAuMDMyMDg0LCAwLjE3ODAxMSwgMC4zMjcxMjcsIDAuNDM0MjQzLCAwLjYwNTE3MiwgMC43NTQ4ODEsIDAuOTY4ODQ1IiwgXAotICAgICAgICAgICIwLjAzMjA5MiwgMC4xNzgwMDgsIDAuMzI3MTA2LCAwLjQzMzg1MywgMC42MDUxODMsIDAuNzU0ODQ0LCAwLjk2ODc5NiIsIFwKLSAgICAgICAgICAiMC4wMzIwNzksIDAuMTc4MDA5LCAwLjMyNzE3OSwgMC40MzM4NTIsIDAuNjA1MTgsIDAuNzU0ODUxLCAwLjk2ODgwNCIsIFwKLSAgICAgICAgICAiMC4wMzIwODcsIDAuMTc4MDcsIDAuMzI3Mzg0LCAwLjQzMzg2MSwgMC42MDUxODIsIDAuNzU0ODY2LCAwLjk2ODcxNCIsIFwKLSAgICAgICAgICAiMC4wMzIwODMsIDAuMTc4MDExLCAwLjMyNzEyMiwgMC40MzQyMjcsIDAuNjA1MTc4LCAwLjc1NDg1OSwgMC45Njg4MjciLCBcCi0gICAgICAgICAgIjAuMDMyMDg0LCAwLjE3ODE3LCAwLjMyNzM4OSwgMC40MzM4NiwgMC42MDUxOTIsIDAuNzU0ODU4LCAwLjk2ODcyNyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcHJlc2V0OwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIxNTYxNiwgMC4yODc0MjUsIDAuMzU5MDUyLCAwLjQxMDMwMywgMC40OTIyNDMsIDAuNTYzOTc0LCAwLjY2NjQ4NyIsIFwKLSAgICAgICAgICAiMC4yMjU0NjYsIDAuMjk3Mjg1LCAwLjM2ODkxMSwgMC40MjAxNjIsIDAuNTAyMTAyLCAwLjU3MzgzMywgMC42NzYzNDYiLCBcCi0gICAgICAgICAgIjAuMjM3NDU4LCAwLjMwOTI2OCwgMC4zODA4OTUsIDAuNDMyMTUzLCAwLjUxNDA5LCAwLjU4NTgxLCAwLjY4ODMzOSIsIFwKLSAgICAgICAgICAiMC4yNDgsIDAuMzE5ODM0LCAwLjM5MTQ2MSwgMC40NDI3MTIsIDAuNTI0NjUyLCAwLjU5NjM4MSwgMC42OTg4OTUiLCBcCi0gICAgICAgICAgIjAuMjU2NzksIDAuMzI4NTk3LCAwLjQwMDIyMywgMC40NTE0NzMsIDAuNTMzNDEzLCAwLjYwNTE0NCwgMC43MDc2NTUiLCBcCi0gICAgICAgICAgIjAuMjY5NzI0LCAwLjM0MTQ4NSwgMC40MTMxNzUsIDAuNDY0MzY5LCAwLjU0NjMyNCwgMC42MTgwNTksIDAuNzIwNTU0IiwgXAotICAgICAgICAgICIwLjI3OTM1NywgMC4zNTExNzIsIDAuNDIyODA3LCAwLjQ3NDA1MywgMC41NTU5OTEsIDAuNjI3NzIsIDAuNzMwMjMxIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDMyMjA5LCAwLjE3NjQ4LCAwLjMyMzkwMywgMC40MzAyMzcsIDAuNTk5NTI2LCAwLjc0Njg2OCwgMC45NTkzODQiLCBcCi0gICAgICAgICAgIjAuMDMyMjA0LCAwLjE3NjUyNSwgMC4zMjM5MTEsIDAuNDMwMjMyLCAwLjU5OTUyNCwgMC43NDY4NjgsIDAuOTU5Mzc3IiwgXAotICAgICAgICAgICIwLjAzMjIxMiwgMC4xNzY0NDksIDAuMzIzNjE2LCAwLjQzMDIxNSwgMC41OTk1MDgsIDAuNzQ3NTM4LCAwLjk1ODI5MiIsIFwKLSAgICAgICAgICAiMC4wMzIxODksIDAuMTc2NDc0LCAwLjMyMzc2NCwgMC40MzAyMDIsIDAuNTk5NTI2LCAwLjc0Nzg0MiwgMC45NTk1NjIiLCBcCi0gICAgICAgICAgIjAuMDMyMjE1LCAwLjE3NjUwMywgMC4zMjM5MzcsIDAuNDMwMjAxLCAwLjU5OTUxNywgMC43NDY4NzEsIDAuOTU5NTIxIiwgXAotICAgICAgICAgICIwLjAzMjI2NywgMC4xNzY0NjIsIDAuMzI0NDM4LCAwLjQzMDIwMywgMC41OTk2MjgsIDAuNzQ3OTA2LCAwLjk1OTUwMiIsIFwKLSAgICAgICAgICAiMC4wMzIyMjEsIDAuMTc2NDUxLCAwLjMyMzk1NCwgMC40MzAyNDQsIDAuNTk5NTI0LCAwLjc0Nzc4LCAwLjk1OTYwNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogY2xlYXI7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTk3NTA0LCAwLjI2OTMxMiwgMC4zNDA5MjUsIDAuMzkyMTgsIDAuNDc0MTE4LCAwLjU0NTg0NywgMC42NDgzNiIsIFwKLSAgICAgICAgICAiMC4yMDcxMjQsIDAuMjc4OTI3LCAwLjM1MDYwNywgMC40MDE3OTksIDAuNDgzNzQsIDAuNTU1NDYzLCAwLjY1Nzk2NiIsIFwKLSAgICAgICAgICAiMC4yMTgwOTMsIDAuMjg5OTM4LCAwLjM2MTU2NSwgMC40MTI4MTUsIDAuNDk0NzU1LCAwLjU2NjQ4MiwgMC42Njg5OTUiLCBcCi0gICAgICAgICAgIjAuMjI4ODg3LCAwLjMwMDcwNCwgMC4zNzIzMjksIDAuNDIzNTgsIDAuNTA1NTIsIDAuNTc3MjQ3LCAwLjY3OTc2IiwgXAotICAgICAgICAgICIwLjIzOTU2OSwgMC4zMTEzNjksIDAuMzgyOTkxLCAwLjQzNDI0MiwgMC41MTYxODIsIDAuNTg3OTA1LCAwLjY5MDQyMiIsIFwKLSAgICAgICAgICAiMC4yNTYzMzgsIDAuMzI4MTUxLCAwLjM5OTc3MywgMC40NTEwMjIsIDAuNTMyOTYxLCAwLjYwNDY5LCAwLjcwNzE5OCIsIFwKLSAgICAgICAgICAiMC4yNzA3NjcsIDAuMzQyNTI1LCAwLjQxNDIxNiwgMC40NjU0MDksIDAuNTQ3MzczLCAwLjYxOTE0MSwgMC43MjE1ODUiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzIyMjcsIDAuMTc2NTUzLCAwLjMyMzkyNywgMC40MzAyMTMsIDAuNTk5NTEsIDAuNzQ2ODc2LCAwLjk1OTQ2NSIsIFwKLSAgICAgICAgICAiMC4wMzIyMDYsIDAuMTc2NDU1LCAwLjMyMzkyOSwgMC40MzAyNTYsIDAuNTk5NSwgMC43NDc1MzYsIDAuOTU5Njk1IiwgXAotICAgICAgICAgICIwLjAzMjIsIDAuMTc2NDcyLCAwLjMyMzkyNywgMC40MzAyMDEsIDAuNTk5NTI2LCAwLjc0NjgzNywgMC45NTkzNTIiLCBcCi0gICAgICAgICAgIjAuMDMyMjA4LCAwLjE3NjQ4NiwgMC4zMjM5MjUsIDAuNDMwMTk4LCAwLjU5OTUyMywgMC43NDY4MzMsIDAuOTU4ODg5IiwgXAotICAgICAgICAgICIwLjAzMjIyMywgMC4xNzY0NTUsIDAuMzIzOTI4LCAwLjQzMDIsIDAuNTk5NjM0LCAwLjc0NzgxMiwgMC45NTg4ODkiLCBcCi0gICAgICAgICAgIjAuMDMyMjE1LCAwLjE3NjUzOSwgMC4zMjM5MjUsIDAuNDMwMjExLCAwLjU5OTUwMywgMC43NDY4MjcsIDAuOTU4MjY0IiwgXAotICAgICAgICAgICIwLjAzMjI2NSwgMC4xNzYzMjUsIDAuMzI0NDA3LCAwLjQzMDIxMiwgMC41OTk0MzksIDAuNzQ3OTk2LCAwLjk1OTM1Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTUwNDAyLCAwLjIyNDUwNiwgMC4yOTgzNTUsIDAuMzUxMDc5LCAwLjQzNTQ2NSwgMC41MDkzNzYsIDAuNjE0ODIiLCBcCi0gICAgICAgICAgIjAuMTYwMTIxLCAwLjIzNDIxMiwgMC4zMDgwNjcsIDAuMzYwNzg2LCAwLjQ0NTE2OCwgMC41MTkwNjksIDAuNjI0NTE2IiwgXAotICAgICAgICAgICIwLjE3MjQwMSwgMC4yNDY0OTYsIDAuMzIwMzIyLCAwLjM3MzA1NSwgMC40NTc0NTIsIDAuNTMxMzg4LCAwLjYzNjg4IiwgXAotICAgICAgICAgICIwLjE4NDgyNywgMC4yNTg5MTMsIDAuMzMyNzMyLCAwLjM4NTQ3MywgMC40Njk4NywgMC41NDM4MTEsIDAuNjQ5MzA1IiwgXAotICAgICAgICAgICIwLjE5NjcwNSwgMC4yNzA4MTgsIDAuMzQ0NjM3LCAwLjM5NzM4OSwgMC40ODE3NjgsIDAuNTU1NjY4LCAwLjY2MTE5NCIsIFwKLSAgICAgICAgICAiMC4yMTQ3MTUsIDAuMjg4ODUzLCAwLjM2MjcwMiwgMC40MTU0MTgsIDAuNDk5ODE5LCAwLjU3MzcwNiwgMC42NzkxNTkiLCBcCi0gICAgICAgICAgIjAuMjI5NDk2LCAwLjMwMzU5OCwgMC4zNzczODgsIDAuNDMwMTExLCAwLjUxNDU1NywgMC41ODg0NDIsIDAuNjkzOTMyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDMyMDQ3LCAwLjE3ODE1MywgMC4zMjc0OTcsIDAuNDM0MzMzLCAwLjYwNDgyNCwgMC43NTUxNjUsIDAuOTY5MTUzIiwgXAotICAgICAgICAgICIwLjAzMjA0OSwgMC4xNzgxNjcsIDAuMzI3NDk1LCAwLjQzNDMzOCwgMC42MDU1MTEsIDAuNzU1MjE4LCAwLjk2OTE1OCIsIFwKLSAgICAgICAgICAiMC4wMzIwMzUsIDAuMTc4MDE0LCAwLjMyNzUxNywgMC40MzQzNTYsIDAuNjA1NTY5LCAwLjc1NTE2MSwgMC45NjkxNDYiLCBcCi0gICAgICAgICAgIjAuMDMyMDQ0LCAwLjE3ODAwOCwgMC4zMjc0NzksIDAuNDM0MzI3LCAwLjYwNTQ1MiwgMC43NTUxNiwgMC45NjkxNjQiLCBcCi0gICAgICAgICAgIjAuMDMyMDQxLCAwLjE3ODAwNiwgMC4zMjc1MSwgMC40MzQzMzksIDAuNjA0NzQ2LCAwLjc1NTE0NiwgMC45NjkxNDYiLCBcCi0gICAgICAgICAgIjAuMDMyMDM4LCAwLjE3ODA4OSwgMC4zMjc0OTgsIDAuNDM0MTIyLCAwLjYwNDQ5OCwgMC43NTUyMjUsIDAuOTY5MTUiLCBcCi0gICAgICAgICAgIjAuMDMyMDUxLCAwLjE3ODA4MywgMC4zMjc0NjYsIDAuNDM0NDA5LCAwLjYwNTUxNiwgMC43NTUxMjcsIDAuOTY5MTc0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA4MjY2LCAwLjAwODQxNSwgMC4wMDg0MzcsIDAuMDA4NDQzLCAwLjAwODQ0OCwgMC4wMDg0NSwgMC4wMDg0NTMiLCBcCi0gICAgICAgICAgIjAuMDA4MjUsIDAuMDA4NDAxLCAwLjAwODQyMiwgMC4wMDg0MjgsIDAuMDA4NDM0LCAwLjAwODQzNiwgMC4wMDg0MzkiLCBcCi0gICAgICAgICAgIjAuMDA4MjQ4LCAwLjAwODM5OCwgMC4wMDg0MTksIDAuMDA4NDI1LCAwLjAwODQzMSwgMC4wMDg0MzMsIDAuMDA4NDM2IiwgXAotICAgICAgICAgICIwLjAwODI1MywgMC4wMDg0MDQsIDAuMDA4NDI1LCAwLjAwODQzMSwgMC4wMDg0MzYsIDAuMDA4NDM5LCAwLjAwODQ0MSIsIFwKLSAgICAgICAgICAiMC4wMDgyNjYsIDAuMDA4NDE1LCAwLjAwODQzNiwgMC4wMDg0NDMsIDAuMDA4NDQ4LCAwLjAwODQ1LCAwLjAwODQ1MyIsIFwKLSAgICAgICAgICAiMC4wMDgyNzgsIDAuMDA4NDI4LCAwLjAwODQ0OSwgMC4wMDg0NTUsIDAuMDA4NDU5LCAwLjAwODQ2MywgMC4wMDg0NjUiLCBcCi0gICAgICAgICAgIjAuMDA4MjkxLCAwLjAwODQ0MywgMC4wMDg0NjQsIDAuMDA4NDcxLCAwLjAwODQ3NiwgMC4wMDg0NzksIDAuMDA4NDgxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDgyNiwgMC4wMDg0MiwgMC4wMDg0NDMsIDAuMDA4NDUsIDAuMDA4NDU1LCAwLjAwODQ1NywgMC4wMDg0NiIsIFwKLSAgICAgICAgICAiMC4wMDgyNDUsIDAuMDA4NDA0LCAwLjAwODQyOCwgMC4wMDg0MzYsIDAuMDA4NDQsIDAuMDA4NDQyLCAwLjAwODQ0MyIsIFwKLSAgICAgICAgICAiMC4wMDgyMzYsIDAuMDA4Mzk2LCAwLjAwODQxOSwgMC4wMDg0MjcsIDAuMDA4NDMyLCAwLjAwODQzMiwgMC4wMDg0MzciLCBcCi0gICAgICAgICAgIjAuMDA4MjM1LCAwLjAwODM5NCwgMC4wMDg0MTcsIDAuMDA4NDI0LCAwLjAwODQyOSwgMC4wMDg0MzQsIDAuMDA4NDM3IiwgXAotICAgICAgICAgICIwLjAwODI0NCwgMC4wMDg0MDIsIDAuMDA4NDI1LCAwLjAwODQzMSwgMC4wMDg0MzgsIDAuMDA4NDQsIDAuMDA4NDQ1IiwgXAotICAgICAgICAgICIwLjAwODI1LCAwLjAwODQwOCwgMC4wMDg0MzEsIDAuMDA4NDM4LCAwLjAwODQ0MywgMC4wMDg0NDYsIDAuMDA4NDQ5IiwgXAotICAgICAgICAgICIwLjAwODI1OSwgMC4wMDg0MjEsIDAuMDA4NDQ0LCAwLjAwODQ1LCAwLjAwODQ1NiwgMC4wMDg0NTksIDAuMDA4NDYxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUk4iOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA5NDkxLCAwLjAwOTY0MSwgMC4wMDk2NjMsIDAuMDA5Njc0LCAwLjAwOTY3OSwgMC4wMDk2NzcsIDAuMDA5NjgiLCBcCi0gICAgICAgICAgIjAuMDA5NDgsIDAuMDA5NjI5LCAwLjAwOTY1MiwgMC4wMDk2NjIsIDAuMDA5NjY4LCAwLjAwOTY2NiwgMC4wMDk2NjgiLCBcCi0gICAgICAgICAgIjAuMDA5NDc3LCAwLjAwOTYyNiwgMC4wMDk2NDksIDAuMDA5NjU1LCAwLjAwOTY2NSwgMC4wMDk2NywgMC4wMDk2NzEiLCBcCi0gICAgICAgICAgIjAuMDA5NDc2LCAwLjAwOTYyNiwgMC4wMDk2NDksIDAuMDA5NjYsIDAuMDA5NjY0LCAwLjAwOTY2MywgMC4wMDk2NjUiLCBcCi0gICAgICAgICAgIjAuMDA5NDgxLCAwLjAwOTYzMSwgMC4wMDk2NTMsIDAuMDA5NjY0LCAwLjAwOTY2OSwgMC4wMDk2NzEsIDAuMDA5NjciLCBcCi0gICAgICAgICAgIjAuMDA5NDgxLCAwLjAwOTYzMiwgMC4wMDk2NiwgMC4wMDk2NjYsIDAuMDA5NjY2LCAwLjAwOTY3MywgMC4wMDk2NzUiLCBcCi0gICAgICAgICAgIjAuMDA5NDk2LCAwLjAwOTY0NCwgMC4wMDk2NjcsIDAuMDA5NjczLCAwLjAwOTY4NSwgMC4wMDk2ODEsIDAuMDA5NjgzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHNjYWxhcikgewotICAgICAgICB2YWx1ZXMoIjAiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDgwNjgsIDAuMDA4MjE4LCAwLjAwODI0MiwgMC4wMDgyNTEsIDAuMDA4MjU3LCAwLjAwODI1NiwgMC4wMDgyNTgiLCBcCi0gICAgICAgICAgIjAuMDA4MDUxLCAwLjAwODIwMSwgMC4wMDgyMjQsIDAuMDA4MjMsIDAuMDA4MjQyLCAwLjAwODI0NiwgMC4wMDgyNDEiLCBcCi0gICAgICAgICAgIjAuMDA4MDQxLCAwLjAwODE5MSwgMC4wMDgyMTUsIDAuMDA4MjI2LCAwLjAwODIzMSwgMC4wMDgyMjksIDAuMDA4MjMyIiwgXAotICAgICAgICAgICIwLjAwODAzNiwgMC4wMDgxODUsIDAuMDA4MjA5LCAwLjAwODIyLCAwLjAwODIyNSwgMC4wMDgyMjMsIDAuMDA4MjI2IiwgXAotICAgICAgICAgICIwLjAwODAzNCwgMC4wMDgxODIsIDAuMDA4MjA1LCAwLjAwODIxMiwgMC4wMDgyMjUsIDAuMDA4MjIsIDAuMDA4MjIzIiwgXAotICAgICAgICAgICIwLjAwODAyNywgMC4wMDgxNzcsIDAuMDA4MiwgMC4wMDgyMSwgMC4wMDgyMTUsIDAuMDA4MjE3LCAwLjAwODIxOCIsIFwKLSAgICAgICAgICAiMC4wMDgwMiwgMC4wMDgxNywgMC4wMDgxOTksIDAuMDA4MjA1LCAwLjAwODIwOSwgMC4wMDgyMDgsIDAuMDA4MjExIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDkxNjgsIDAuMDA5MzE5LCAwLjAwOTMzNiwgMC4wMDkzNDIsIDAuMDA5MzQ4LCAwLjAwOTM0NywgMC4wMDkzNTIiLCBcCi0gICAgICAgICAgIjAuMDA5MTU0LCAwLjAwOTMwNSwgMC4wMDkzMjMsIDAuMDA5MzI5LCAwLjAwOTMzMiwgMC4wMDkzMzQsIDAuMDA5MzQiLCBcCi0gICAgICAgICAgIjAuMDA5MTQ5LCAwLjAwOTI5OSwgMC4wMDkzMTcsIDAuMDA5MzIzLCAwLjAwOTMyNiwgMC4wMDkzMjgsIDAuMDA5MzMiLCBcCi0gICAgICAgICAgIjAuMDA5MTQxLCAwLjAwOTI5NCwgMC4wMDkzMTMsIDAuMDA5MzE3LCAwLjAwOTMyMiwgMC4wMDkzMjQsIDAuMDA5MzI1IiwgXAotICAgICAgICAgICIwLjAwOTE0MSwgMC4wMDkyOTQsIDAuMDA5MzEyLCAwLjAwOTMxOCwgMC4wMDkzMjEsIDAuMDA5MzIzLCAwLjAwOTMyNSIsIFwKLSAgICAgICAgICAiMC4wMDkxMzgsIDAuMDA5Mjk1LCAwLjAwOTMxNCwgMC4wMDkzMiwgMC4wMDkzMjcsIDAuMDA5MzI5LCAwLjAwOTMyOCIsIFwKLSAgICAgICAgICAiMC4wMDkxNDcsIDAuMDA5MzAyLCAwLjAwOTMyMSwgMC4wMDkzMjcsIDAuMDA5MzMxLCAwLjAwOTMzMywgMC4wMDkzMzciKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFJOKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA1OTI2OTQ7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNTkyNTQ3OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDU5MjY5NDsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA1ODYsIDAuMDAwNTYyLCAwLjAwMDU1MiwgMC4wMDA1NTgsIDAuMDAwNTY2LCAwLjAwMDU4OSwgMC4wMDA2MTEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDI1NzIsIDAuMDAyNTUzLCAwLjAwMjU0OCwgMC4wMDI1NTMsIDAuMDAyNTYyLCAwLjAwMjU4NiwgMC4wMDI2MDIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUk4iOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFEJiFTRSYhU0kmU04iOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1NFX0VRXzBfQU5fU0lfRVFfMF9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgZmFsbF9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMjE1NjE2LCAwLjIyNTQ2NiwgMC4yMzc0NTgsIDAuMjQ4LCAwLjI1Njc5LCAwLjI2OTcyNCwgMC4yNzkzNTciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiByZWNvdmVyeV9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlNOIjsKLSAgICAgIHNkZl9jb25kIDogIlNOID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHJlY292ZXJ5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4MTI1LCAwLjA3LCAwLjA1NzUsIDAuMDQ1LCAwLjAzMjUsIDAuMDE2MjUsIDAuMDA3NSIsIFwKLSAgICAgICAgICAiMC4wOTI1LCAwLjA4MTI1LCAwLjA2ODc1LCAwLjA1NjI1LCAwLjA0Mzc1LCAwLjAyNzUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMTA1LCAwLjA5Mzc1LCAwLjA4MTI1LCAwLjA2ODc1LCAwLjA1NjI1LCAwLjA0LCAwLjAzMTI1IiwgXAotICAgICAgICAgICIwLjExNzUsIDAuMTA2MjUsIDAuMDkzNzUsIDAuMDgxMjUsIDAuMDY4NzUsIDAuMDUyNSwgMC4wMzc1IiwgXAotICAgICAgICAgICIwLjEzLCAwLjExODc1LCAwLjEsIDAuMDg3NSwgMC4wNzUsIDAuMDY1LCAwLjA1IiwgXAotICAgICAgICAgICIwLjE0LCAwLjEyODc1LCAwLjExNjI1LCAwLjEwMzc1LCAwLjA5MTI1LCAwLjA3NSwgMC4wNjYyNSIsIFwKLSAgICAgICAgICAiMC4xNDg3NSwgMC4xMzc1LCAwLjEyNSwgMC4xMTI1LCAwLjEsIDAuMDgzNzUsIDAuMDc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIHRpbWluZ190eXBlIDogcmVjb3ZlcnlfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRCYhU0UmIVNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9TRV9FUV8wX0FOX1NJX0VRXzAgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQocmVjb3ZlcnlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg3NSwgMC4wOTg3NSwgMC4xMTEyNSwgMC4xMTc1LCAwLjEzLCAwLjE0NjI1LCAwLjE2MTI1IiwgXAotICAgICAgICAgICIwLjA4MjUsIDAuMDg3NSwgMC4xLCAwLjExMjUsIDAuMTE4NzUsIDAuMTQxMjUsIDAuMTU2MjUiLCBcCi0gICAgICAgICAgIjAuMDcsIDAuMDgxMjUsIDAuMDkzNzUsIDAuMSwgMC4xMTI1LCAwLjEyODc1LCAwLjE0Mzc1IiwgXAotICAgICAgICAgICIwLjA2Mzc1LCAwLjA3NSwgMC4wODc1LCAwLjA5Mzc1LCAwLjEwNjI1LCAwLjEyMjUsIDAuMTM3NSIsIFwKLSAgICAgICAgICAiMC4wNTc1LCAwLjA2ODc1LCAwLjA4MTI1LCAwLjA5Mzc1LCAwLjEsIDAuMTE2MjUsIDAuMTMxMjUiLCBcCi0gICAgICAgICAgIjAuMDUzNzUsIDAuMDY1LCAwLjA3NzUsIDAuMDgzNzUsIDAuMDk2MjUsIDAuMTEyNSwgMC4xMjc1IiwgXAotICAgICAgICAgICIwLjA1MTI1LCAwLjA2MjUsIDAuMDY4NzUsIDAuMDgxMjUsIDAuMDkzNzUsIDAuMTEsIDAuMTE4NzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiByZW1vdmFsX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiU04iOwotICAgICAgc2RmX2NvbmQgOiAiU04gPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQocmVtb3ZhbF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDE4NzUsIC0wLjAwNzUsIDAuMDA1LCAwLjAxNzUsIDAuMDMsIDAuMDQsIDAuMDU1IiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLjAwNjI1LCAwLjAxODc1LCAwLjAzNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAuMDA2MjUsIDAuMDIyNSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjAzNzUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLjAxLCAwLjAxODc1IiwgXAotICAgICAgICAgICItMC4wNjEyNSwgLTAuMDUsIC0wLjAzNzUsIC0wLjAyNSwgLTAuMDEyNSwgLTAuMDAyNSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDcxMjUsIC0wLjA2LCAtMC4wNDc1LCAtMC4wNDEyNSwgLTAuMDI4NzUsIC0wLjAxMjUsIC0wLjAwMzc1IiwgXAotICAgICAgICAgICItMC4wODYyNSwgLTAuMDc1LCAtMC4wNjI1LCAtMC4wNSwgLTAuMDM3NSwgLTAuMDI3NSwgLTAuMDEyNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oU0UpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTQ4MjQ3OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTQ4MjE7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNDgyNDc7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA0NzcsIDAuMDA0NzQ3LCAwLjAwNDc1MywgMC4wMDQ3NTgsIDAuMDA0Nzc0LCAwLjAwNDc5NywgMC4wMDQ4MjEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDYxODQsIDAuMDA2MTQ5LCAwLjAwNjE1MiwgMC4wMDYxNDgsIDAuMDA2MTU3LCAwLjAwNjE5MywgMC4wMDYyMyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJSTiZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJSTl9FUV8xX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDI1LCAtMC4wMTM3NSwgLTAuMDAxMjUsIDAuMDA1LCAwLjAxNzUsIDAuMDI3NSwgMC4wMzYyNSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAyNSwgLTAuMDEyNSwgMCwgMC4wMDYyNSwgMC4wMTYyNSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDM3NSwgLTAuMDI1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMC4wMSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNDM3NSwgLTAuMDMxMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDI1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjA2MTI1LCAtMC4wNSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAxODc1LCAtMC4wMDg3NSwgMCIsIFwKLSAgICAgICAgICAiLTAuMDcxMjUsIC0wLjA2LCAtMC4wNDc1LCAtMC4wNDEyNSwgLTAuMDI4NzUsIC0wLjAxODc1LCAtMC4wMSIsIFwKLSAgICAgICAgICAiLTAuMDgsIC0wLjA2ODc1LCAtMC4wNTYyNSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAyNzUsIC0wLjAxMjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMDYyNSwgLTAuMDAxMjUsIDAuMDExMjUsIDAuMDIzNzUsIDAuMDMsIDAuMDQsIDAuMDU1IiwgXAotICAgICAgICAgICItMC4wMTc1LCAtMC4wMDYyNSwgMCwgMC4wMTI1LCAwLjAyNSwgMC4wMzUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAsIDAuMDEyNSwgMC4wMjI1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLCAwLjAxNjI1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgMC4wMDM3NSwgMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wNTg3NSwgLTAuMDUzNzUsIC0wLjA0MTI1LCAtMC4wMzUsIC0wLjAyMjUsIC0wLjAxMjUsIC0wLjAwMzc1IiwgXAotICAgICAgICAgICItMC4wNjc1LCAtMC4wNjI1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjAzMTI1LCAtMC4wMjEyNSwgLTAuMDEyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiUk4mU04iOwotICAgICAgc2RmX2NvbmQgOiAiUk5fRVFfMV9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEzNzUsIDAuMTI2MjUsIDAuMTEzNzUsIDAuMTAxMjUsIDAuMDg4NzUsIDAuMDcyNSwgMC4wNjM3NSIsIFwKLSAgICAgICAgICAiMC4xNDg3NSwgMC4xMzc1LCAwLjEyNSwgMC4xMDYyNSwgMC4wOTM3NSwgMC4wODM3NSwgMC4wNjg3NSIsIFwKLSAgICAgICAgICAiMC4xNjEyNSwgMC4xNSwgMC4xMzEyNSwgMC4xMTg3NSwgMC4xMDYyNSwgMC4wOTYyNSwgMC4wODEyNSIsIFwKLSAgICAgICAgICAiMC4xNzM3NSwgMC4xNjI1LCAwLjE0Mzc1LCAwLjEzMTI1LCAwLjExODc1LCAwLjEwODc1LCAwLjA5Mzc1IiwgXAotICAgICAgICAgICIwLjE4LCAwLjE2ODc1LCAwLjE1NjI1LCAwLjE0Mzc1LCAwLjEzMTI1LCAwLjExNSwgMC4xMDYyNSIsIFwKLSAgICAgICAgICAiMC4yMDI1LCAwLjE5MTI1LCAwLjE3MjUsIDAuMTYsIDAuMTQ3NSwgMC4xMzc1LCAwLjEyMjUiLCBcCi0gICAgICAgICAgIjAuMjE3NSwgMC4yMDYyNSwgMC4xODc1LCAwLjE3NSwgMC4xNjI1LCAwLjE1MjUsIDAuMTM3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE1NjI1LCAwLjE0NSwgMC4xMjYyNSwgMC4xMTM3NSwgMC4xMDEyNSwgMC4wOTEyNSwgMC4wNzYyNSIsIFwKLSAgICAgICAgICAiMC4xNjEyNSwgMC4xNSwgMC4xMzc1LCAwLjEyNSwgMC4xMTI1LCAwLjA5NjI1LCAwLjA4NzUiLCBcCi0gICAgICAgICAgIjAuMTczNzUsIDAuMTYyNSwgMC4xNSwgMC4xMzc1LCAwLjEyNSwgMC4xMDg3NSwgMC4xIiwgXAotICAgICAgICAgICIwLjE4LCAwLjE2ODc1LCAwLjE1NjI1LCAwLjE0Mzc1LCAwLjEzMTI1LCAwLjExNSwgMC4xMDYyNSIsIFwKLSAgICAgICAgICAiMC4xODYyNSwgMC4xNzUsIDAuMTYyNSwgMC4xNSwgMC4xMzc1LCAwLjEyMTI1LCAwLjExMjUiLCBcCi0gICAgICAgICAgIjAuMTk2MjUsIDAuMTg1LCAwLjE3MjUsIDAuMTYsIDAuMTQ3NSwgMC4xMzEyNSwgMC4xMjI1IiwgXAotICAgICAgICAgICIwLjIwNSwgMC4xOTM3NSwgMC4xNzUsIDAuMTYyNSwgMC4xNSwgMC4xNCwgMC4xMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFNJKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2NzAwNzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2Njg0NTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2NzAwNzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDM5MiwgMC4wMDM5MDQsIDAuMDAzODk1LCAwLjAwMzg5LCAwLjAwMzg4NywgMC4wMDM4ODcsIDAuMDAzODkxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA1MTQ2LCAwLjAwNTEzOCwgMC4wMDUxMzIsIDAuMDA1MTI4LCAwLjAwNTEyNywgMC4wMDUxMjYsIDAuMDA1MTI5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlJOJlNFJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIlJOX0VRXzFfQU5fU0VfRVFfMV9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjA1NjI1LCAtMC4wNTEyNSwgLTAuMDM4NzUsIC0wLjAzMjUsIC0wLjAyNjI1LCAtMC4wMjI1LCAtMC4wMTM3NSIsIFwKLSAgICAgICAgICAiLTAuMDY3NSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDI3NSwgLTAuMDI1IiwgXAotICAgICAgICAgICItMC4wNzM3NSwgLTAuMDY4NzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDQsIC0wLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjA4NjI1LCAtMC4wODEyNSwgLTAuMDY4NzUsIC0wLjA2MjUsIC0wLjA2MjUsIC0wLjA1MjUsIC0wLjA0Mzc1IiwgXAotICAgICAgICAgICItMC4wOTg3NSwgLTAuMDg3NSwgLTAuMDgxMjUsIC0wLjA3NSwgLTAuMDY4NzUsIC0wLjA2NSwgLTAuMDU2MjUiLCBcCi0gICAgICAgICAgIi0wLjExNSwgLTAuMTAzNzUsIC0wLjA5NzUsIC0wLjA5MTI1LCAtMC4wODUsIC0wLjA4MTI1LCAtMC4wNzI1IiwgXAotICAgICAgICAgICItMC4xMjM3NSwgLTAuMTE4NzUsIC0wLjExMjUsIC0wLjEwNjI1LCAtMC4xLCAtMC4wOSwgLTAuMDg3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAxMjUsIC0wLjAwNzUsIDAuMDA1LCAwLjAxNzUsIDAuMDIzNzUsIDAuMDMzNzUsIDAuMDQ4NzUiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMC4wMDYyNSwgMC4wMTg3NSwgMC4wMjg3NSwgMC4wMzc1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDI1LCAtMC4wMTI1LCAwLCAwLjAwNjI1LCAwLjAxNjI1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMTI1LCAwLCAwLjAxLCAwLjAxODc1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDQzNzUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgMC4wMDM3NSwgMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wNjUsIC0wLjA1Mzc1LCAtMC4wNDEyNSwgLTAuMDM1LCAtMC4wMjI1LCAtMC4wMTI1LCAtMC4wMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDczNzUsIC0wLjA2MjUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDMxMjUsIC0wLjAyMTI1LCAtMC4wMTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJSTiZTRSZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJSTl9FUV8xX0FOX1NFX0VRXzFfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNDM3NSwgMC4xMzI1LCAwLjEyLCAwLjEwNzUsIDAuMDk1LCAwLjA3ODc1LCAwLjA3IiwgXAotICAgICAgICAgICIwLjE1NSwgMC4xNDM3NSwgMC4xMjUsIDAuMTEyNSwgMC4xLCAwLjA5LCAwLjA3NSIsIFwKLSAgICAgICAgICAiMC4xNjEyNSwgMC4xNSwgMC4xMzc1LCAwLjEyNSwgMC4xMTI1LCAwLjA5NjI1LCAwLjA4NzUiLCBcCi0gICAgICAgICAgIjAuMTczNzUsIDAuMTYyNSwgMC4xNSwgMC4xMzc1LCAwLjEyNSwgMC4xMDg3NSwgMC4xIiwgXAotICAgICAgICAgICIwLjE4NjI1LCAwLjE3NSwgMC4xNjI1LCAwLjE0Mzc1LCAwLjEzMTI1LCAwLjEyMTI1LCAwLjEwNjI1IiwgXAotICAgICAgICAgICIwLjIwMjUsIDAuMTkxMjUsIDAuMTcyNSwgMC4xNiwgMC4xNDc1LCAwLjEzNzUsIDAuMTIyNSIsIFwKLSAgICAgICAgICAiMC4yMTc1LCAwLjIsIDAuMTg3NSwgMC4xNzUsIDAuMTYyNSwgMC4xNDYyNSwgMC4xMzc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTEyNSwgMC4xMDEyNSwgMC4wODg3NSwgMC4wNzYyNSwgMC4wNjM3NSwgMC4wNDc1LCAwLjAzODc1IiwgXAotICAgICAgICAgICIwLjEyMzc1LCAwLjExMjUsIDAuMSwgMC4wODc1LCAwLjA3NSwgMC4wNTg3NSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4xMzYyNSwgMC4xMjUsIDAuMTA2MjUsIDAuMDkzNzUsIDAuMDgxMjUsIDAuMDY1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICIwLjE0MjUsIDAuMTMxMjUsIDAuMTE4NzUsIDAuMTA2MjUsIDAuMDkzNzUsIDAuMDc3NSwgMC4wNjI1IiwgXAotICAgICAgICAgICIwLjE1NSwgMC4xNDM3NSwgMC4xMjUsIDAuMTEyNSwgMC4xLCAwLjA4Mzc1LCAwLjA3NSIsIFwKLSAgICAgICAgICAiMC4xNjUsIDAuMTUzNzUsIDAuMTQxMjUsIDAuMTI4NzUsIDAuMTE2MjUsIDAuMSwgMC4wOTEyNSIsIFwKLSAgICAgICAgICAiMC4xOCwgMC4xNjg3NSwgMC4xNSwgMC4xMzc1LCAwLjEyNSwgMC4xMTUsIDAuMSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oU04pICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTUwMTExOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTUwMDQ4OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTUwMTExOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDQ1MywgMC4wMDA0NTMsIDAuMDAwNDUzLCAwLjAwMDQ1MiwgMC4wMDA0NTIsIDAuMDAwNDUyLCAwLjAwMDQ1MiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDQ1MywgMC4wMDA0NTQsIDAuMDAwNDUzLCAwLjAwMDQ1NCwgMC4wMDA0NTQsIDAuMDAwNDU0LCAwLjAwMDQ1NCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQmIVJOJiFTRSYhU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1JOX0VRXzBfQU5fU0VfRVFfMF9BTl9TSV9FUV8wID09IDEnYjEiOwotICAgICAgZmFsbF9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMTUwNDAyLCAwLjE2MDExOSwgMC4xNzI0MDEsIDAuMTg0ODI2LCAwLjE5NjcwNSwgMC4yMTQ3MTUsIDAuMjI5NDk2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogcmVjb3ZlcnlfcmlzaW5nOwotICAgICAgd2hlbiA6ICJSTiI7Ci0gICAgICBzZGZfY29uZCA6ICJSTiA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChyZWNvdmVyeV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjUsIDAuMDEzNzUsIDAuMDAxMjUsIC0wLjAxMTI1LCAtMC4wMjM3NSwgLTAuMDQsIC0wLjA1NSIsIFwKLSAgICAgICAgICAiMC4wMzYyNSwgMC4wMjUsIDAuMDEyNSwgMCwgLTAuMDEyNSwgLTAuMDI4NzUsIC0wLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjA0ODc1LCAwLjAzNzUsIDAuMDI1LCAwLjAxMjUsIDAsIC0wLjAyMjUsIC0wLjAzMTI1IiwgXAotICAgICAgICAgICIwLjA2MTI1LCAwLjA1LCAwLjAzMTI1LCAwLjAxODc1LCAwLjAwNjI1LCAtMC4wMSwgLTAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMDY3NSwgMC4wNTYyNSwgMC4wNDM3NSwgMC4wMzEyNSwgMC4wMTg3NSwgMC4wMDI1LCAtMC4wMTI1IiwgXAotICAgICAgICAgICIwLjA4Mzc1LCAwLjA3MjUsIDAuMDYsIDAuMDQ3NSwgMC4wMzUsIDAuMDE4NzUsIDAuMDAzNzUiLCBcCi0gICAgICAgICAgIjAuMDk4NzUsIDAuMDg3NSwgMC4wNzUsIDAuMDYyNSwgMC4wNSwgMC4wMzM3NSwgMC4wMTg3NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJlbW92YWxfcmlzaW5nOwotICAgICAgd2hlbiA6ICJSTiI7Ci0gICAgICBzZGZfY29uZCA6ICJSTiA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChyZW1vdmFsX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyNSwgMC4wMzYyNSwgMC4wNDg3NSwgMC4wNjEyNSwgMC4wNzM3NSwgMC4wOSwgMC4wOTg3NSIsIFwKLSAgICAgICAgICAiMC4wMiwgMC4wMjUsIDAuMDQzNzUsIDAuMDUsIDAuMDYyNSwgMC4wNzg3NSwgMC4wOTM3NSIsIFwKLSAgICAgICAgICAiMC4wMDc1LCAwLjAxODc1LCAwLjAzMTI1LCAwLjA0Mzc1LCAwLjA1NjI1LCAwLjA2NjI1LCAwLjA4MTI1IiwgXAotICAgICAgICAgICItMC4wMDUsIDAuMDA2MjUsIDAuMDE4NzUsIDAuMDMxMjUsIDAuMDQzNzUsIDAuMDYsIDAuMDY4NzUiLCBcCi0gICAgICAgICAgIi0wLjAxNzUsIC0wLjAwNjI1LCAwLjAwNjI1LCAwLjAxODc1LCAwLjAzMTI1LCAwLjA0NzUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIi0wLjAyNzUsIC0wLjAyMjUsIC0wLjAxLCAwLjAwMjUsIDAuMDE1LCAwLjAzMTI1LCAwLjA0IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLjAwNjI1LCAwLjAxNjI1LCAwLjAzMTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogU0RGRlNYMSAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChTREZGU1gxKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuNDIyMjYzOwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIGZmIChOMzUsUUJJTlQpIHsKLSAgICBuZXh0X3N0YXRlIDogIigoU0UgU0kpICsgKCFTRSBEKSkiOwotICAgIGNsb2NrZWRfb24gOiAiQ0siOwotICAgIHByZXNldCA6ICIoIVNOKSI7Ci0gIH0KLSAgcGluKENLKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2NjI3MDU7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjYyNzA1OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDY2MjY4NjsKLSAgICBjbG9jayA6IHRydWU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyNjI4LCAwLjAwMjU5OSwgMC4wMDI1OTcsIDAuMDAyNTkyLCAwLjAwMjYsIDAuMDAyNjEzLCAwLjAwMjYzNCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNjYxMiwgMC4wMDY1ODUsIDAuMDA2NTgzLCAwLjAwNjU5MSwgMC4wMDY2MDksIDAuMDA2NjU5LCAwLjAwNjY5MiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQmIVNFJiFTSSZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fU0VfRVFfMF9BTl9TSV9FUV8wX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4xNzg4NTksIDAuMTg5MTI2LCAwLjIwMTkzLCAwLjIxMzgwNCwgMC4yMjQzNjksIDAuMjM5MTE1LCAwLjI1MDQ3OCIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMTExODc4LCAwLjEyMTgxLCAwLjEzNDAxLCAwLjE0NTUzNCwgMC4xNTU2MjMsIDAuMTY5MTczLCAwLjE3OTUxMyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjE2MzQ0OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYxNDg1MjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2MTYzNDQ7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzMzI4LCAwLjAwMzMxMSwgMC4wMDMzMDIsIDAuMDAzMjk2LCAwLjAwMzI5MywgMC4wMDMyOTEsIDAuMDAzMjk4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA0NTk1LCAwLjAwNDU4NiwgMC4wMDQ1OCwgMC4wMDQ1NzcsIDAuMDA0NTc3LCAwLjAwNDU3OSwgMC4wMDQ1ODEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIVNFJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIlNFX0VRXzBfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wNSwgLTAuMDQ1LCAtMC4wMzg3NSwgLTAuMDMyNSwgLTAuMDI2MjUsIC0wLjAxNjI1LCAtMC4wMTM3NSIsIFwKLSAgICAgICAgICAiLTAuMDYxMjUsIC0wLjA1NjI1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDM3NSwgLTAuMDI3NSwgLTAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjA3Mzc1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wNCwgLTAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjA4NjI1LCAtMC4wNzUsIC0wLjA2ODc1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDQ2MjUsIC0wLjA0Mzc1IiwgXAotICAgICAgICAgICItMC4wOTI1LCAtMC4wODc1LCAtMC4wODEyNSwgLTAuMDc1LCAtMC4wNjg3NSwgLTAuMDU4NzUsIC0wLjA1IiwgXAotICAgICAgICAgICItMC4xMDg3NSwgLTAuMTAzNzUsIC0wLjA5MTI1LCAtMC4wODUsIC0wLjA4NSwgLTAuMDc1LCAtMC4wNjYyNSIsIFwKLSAgICAgICAgICAiLTAuMTIzNzUsIC0wLjExMjUsIC0wLjEwNjI1LCAtMC4xLCAtMC4wOTM3NSwgLTAuMDksIC0wLjA4MTI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDE4NzUsIC0wLjAwNzUsIDAuMDA1LCAwLjAxMTI1LCAwLjAyMzc1LCAwLjAzMzc1LCAwLjA0MjUiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAuMDA2MjUsIDAuMDEyNSwgMC4wMjI1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDI1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMC4wMDYyNSwgMC4wMTYyNSwgMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLjAwMzc1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjA1NSwgLTAuMDQzNzUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAxMjUsIC0wLjAwMjUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA2NSwgLTAuMDUzNzUsIC0wLjA0NzUsIC0wLjAzNSwgLTAuMDI4NzUsIC0wLjAxODc1LCAtMC4wMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDczNzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDI3NSwgLTAuMDE4NzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFTRSZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJTRV9FUV8wX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDkzNzUsIDAuMDgyNSwgMC4wNywgMC4wNjM3NSwgMC4wNTc1LCAwLjA0NzUsIDAuMDM4NzUiLCBcCi0gICAgICAgICAgIjAuMDk4NzUsIDAuMDg3NSwgMC4wODEyNSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1MjUsIDAuMDUiLCBcCi0gICAgICAgICAgIjAuMTExMjUsIDAuMSwgMC4wODc1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNjUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIjAuMTIzNzUsIDAuMTEyNSwgMC4xLCAwLjA5Mzc1LCAwLjA4NzUsIDAuMDc3NSwgMC4wNjg3NSIsIFwKLSAgICAgICAgICAiMC4xMywgMC4xMjUsIDAuMTEyNSwgMC4xLCAwLjA5Mzc1LCAwLjA4Mzc1LCAwLjA4MTI1IiwgXAotICAgICAgICAgICIwLjE0NjI1LCAwLjEzNSwgMC4xMjg3NSwgMC4xMTYyNSwgMC4xMSwgMC4xLCAwLjA5NzUiLCBcCi0gICAgICAgICAgIjAuMTYxMjUsIDAuMTUsIDAuMTM3NSwgMC4xMzEyNSwgMC4xMjUsIDAuMTE1LCAwLjEwNjI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDkzNzUsIDAuMDgyNSwgMC4wNywgMC4wNTc1LCAwLjA0NSwgMC4wMzUsIDAuMDIiLCBcCi0gICAgICAgICAgIjAuMTA1LCAwLjA5Mzc1LCAwLjA4MTI1LCAwLjA2ODc1LCAwLjA1NjI1LCAwLjA0LCAwLjAzMTI1IiwgXAotICAgICAgICAgICIwLjExMTI1LCAwLjEsIDAuMDg3NSwgMC4wNzUsIDAuMDYyNSwgMC4wNTI1LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIjAuMTIzNzUsIDAuMTEyNSwgMC4xLCAwLjA4NzUsIDAuMDc1LCAwLjA1ODc1LCAwLjA1IiwgXAotICAgICAgICAgICIwLjEzLCAwLjExODc1LCAwLjEwNjI1LCAwLjA5Mzc1LCAwLjA4MTI1LCAwLjA3MTI1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICIwLjE0NjI1LCAwLjEzNSwgMC4xMjI1LCAwLjExLCAwLjA5NzUsIDAuMDgxMjUsIDAuMDcyNSIsIFwKLSAgICAgICAgICAiMC4xNTUsIDAuMTQzNzUsIDAuMTMxMjUsIDAuMTE4NzUsIDAuMTA2MjUsIDAuMDk2MjUsIDAuMDgxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFEpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4yNjMxNjc7Ci0gICAgZnVuY3Rpb24gOiAiTjM1IjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBub25fdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJpc2luZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNDAzMTQsIDAuMTY0NjcyLCAwLjMwMjE5MywgMC40MjM0NDEsIDAuNTg0NzUyLCAwLjkwNzg2LCAxLjEwOTMiLCBcCi0gICAgICAgICAgIjAuMTUwNDc3LCAwLjE3NDc4NiwgMC4zMTIzNywgMC40MzM0ODQsIDAuNTk1MTM2LCAwLjkxNzU4MSwgMS4xMTk1NSIsIFwKLSAgICAgICAgICAiMC4xNjMxOTQsIDAuMTg3NDkxLCAwLjMyNTA5NCwgMC40NDU2NDEsIDAuNjA3NDUxLCAwLjkzMDMwMSwgMS4xMzE0IiwgXAotICAgICAgICAgICIwLjE3NTAwOSwgMC4xOTkyOTMsIDAuMzM2OTIxLCAwLjQ1NzQ0MywgMC42MTkyODEsIDAuOTQyMTMsIDEuMTQzMTgiLCBcCi0gICAgICAgICAgIjAuMTg1NDE0LCAwLjIwOTcyNSwgMC4zNDczMDcsIDAuNDY4NjY2LCAwLjYyOTY2MSwgMC45NTI0ODksIDEuMTUzMzEiLCBcCi0gICAgICAgICAgIjAuMjAwMjQ5LCAwLjIyNDYxLCAwLjM2MTY4MiwgMC40ODI4NDIsIDAuNjQ0NDY2LCAwLjk2NzIyNSwgMS4xNjkyOCIsIFwKLSAgICAgICAgICAiMC4yMTEzNzEsIDAuMjM1NzM1LCAwLjM3MzQwNCwgMC40OTQyMjIsIDAuNjU1NTc0LCAwLjk3NzYyNiwgMS4xODA0MSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTM0MDcsIDAuMTQxOTEyLCAwLjQyMjE5MiwgMC42NzAyMjMsIDEuMDAzOTUsIDEuNjY4NCwgMi4wODM3IiwgXAotICAgICAgICAgICIwLjA5MzM2NCwgMC4xNDE5MTMsIDAuNDIyMTk1LCAwLjY3MTYzMiwgMS4wMDE4NywgMS42NjgzNSwgMi4wODM1NCIsIFwKLSAgICAgICAgICAiMC4wOTMzNzUsIDAuMTQxODU0LCAwLjQyMjE5MSwgMC42NzA2MiwgMS4wMDM5MywgMS42NjgzNSwgMi4wODEwNCIsIFwKLSAgICAgICAgICAiMC4wOTMzOTUsIDAuMTQxODM1LCAwLjQyMjE5MSwgMC42NzA2MTYsIDEuMDAzOTIsIDEuNjY4MzUsIDIuMDgxMiIsIFwKLSAgICAgICAgICAiMC4wOTM0MDYsIDAuMTQxOTEyLCAwLjQyMjE5MiwgMC42Njk5OTEsIDEuMDAzOTEsIDEuNjY4MzMsIDIuMDgwMzIiLCBcCi0gICAgICAgICAgIjAuMDkyNTEyLCAwLjE0MDY5NSwgMC40MjE3MjIsIDAuNjcwMTY2LCAxLjAwMzksIDEuNjY4MjYsIDIuMDgzNTkiLCBcCi0gICAgICAgICAgIjAuMDkzMjU1LCAwLjE0MDg0MywgMC40MjE2MjksIDAuNjcxNTY1LCAxLjAwMzg2LCAxLjY2NTExLCAyLjA4MzU2Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE2Mzk3NiwgMC4xODg5NDMsIDAuMzI5MzI5LCAwLjQ1MzE5LCAwLjYxODA2LCAwLjk0Nzc3NiwgMS4xNTM2MyIsIFwKLSAgICAgICAgICAiMC4xNzQyNDUsIDAuMTk5MjEyLCAwLjMzOTU2NywgMC40NjM0NTQsIDAuNjI4MzMxLCAwLjk1ODA0MSwgMS4xNjM5MSIsIFwKLSAgICAgICAgICAiMC4xODcwNDksIDAuMjEyMDE2LCAwLjM1MjM3NiwgMC40NzYyNTcsIDAuNjQxMTMxLCAwLjk3MDg0NSwgMS4xNzY3MyIsIFwKLSAgICAgICAgICAiMC4xOTg5MjUsIDAuMjIzODg0LCAwLjM2NDM0NSwgMC40ODgxMjIsIDAuNjUzMDA1LCAwLjk4MjcwMSwgMS4xODg4MiIsIFwKLSAgICAgICAgICAiMC4yMDk0ODgsIDAuMjM0MzksIDAuMzc0NzI4LCAwLjQ5ODczLCAwLjY2MzU0OSwgMC45OTMwMjksIDEuMTk5NDIiLCBcCi0gICAgICAgICAgIjAuMjI0MjIyLCAwLjI0OTE2NCwgMC4zODk1NDQsIDAuNTEzNDM2LCAwLjY3ODMsIDEuMDA4MDEsIDEuMjEzODciLCBcCi0gICAgICAgICAgIjAuMjM1NTkzLCAwLjI2MDU0NiwgMC40MDA5NywgMC41MjQ3OTIsIDAuNjg5Njc1LCAxLjAxOTM2LCAxLjIyNTQxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5MjgwMiwgMC4xNDEzNTksIDAuNDIyMjkxLCAwLjY3MTk5LCAxLjAwNDYsIDEuNjY5NDYsIDIuMDgyMTQiLCBcCi0gICAgICAgICAgIjAuMDkyNTMxLCAwLjE0MTM3NSwgMC40MjIzMjQsIDAuNjcxOTcyLCAxLjAwNDYsIDEuNjY5NDUsIDIuMDgyMDIiLCBcCi0gICAgICAgICAgIjAuMDkyNTgzLCAwLjE0MTM3OSwgMC40MjIzMTcsIDAuNjcxOTcsIDEuMDA0NTksIDEuNjY5NDUsIDIuMDgzMDIiLCBcCi0gICAgICAgICAgIjAuMDkzNjA5LCAwLjE0MTM4OCwgMC40MjIzMzIsIDAuNjcxOTY4LCAxLjAwNDU5LCAxLjY2OTM4LCAyLjA4NDk5IiwgXAotICAgICAgICAgICIwLjA5MjcyOSwgMC4xNDIwNzgsIDAuNDIxODU5LCAwLjY3MjAyNSwgMS4wMDQ1NiwgMS42NjY4NCwgMi4wODUxIiwgXAotICAgICAgICAgICIwLjA5MzM5NCwgMC4xNDEwOTQsIDAuNDIyMzIxLCAwLjY3MjAwMywgMS4wMDQ1OSwgMS42Njk0LCAyLjA4MjAzIiwgXAotICAgICAgICAgICIwLjA5MzYxNiwgMC4xNDEzMDEsIDAuNDIyMzA0LCAwLjY3MTk4NSwgMS4wMDQ1OSwgMS42NjkzNywgMi4wODQ3NyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcHJlc2V0OwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMzQ3MzQsIDAuMTU5MDUxLCAwLjI5NjczNSwgMC40MTc3MDMsIDAuNTc5MDIsIDAuOTAyMTE2LCAxLjEwMzkxIiwgXAotICAgICAgICAgICIwLjE0NDQ0NywgMC4xNjg3NjUsIDAuMzA2MzY5LCAwLjQyNzE5LCAwLjU4ODE5NiwgMC45MTE3MDYsIDEuMTEzMTQiLCBcCi0gICAgICAgICAgIjAuMTU2ODAxLCAwLjE4MTE1OCwgMC4zMTgyNDcsIDAuNDM5NjUyLCAwLjYwMTI3MywgMC45MjMwMywgMS4xMjYxNSIsIFwKLSAgICAgICAgICAiMC4xNjg3NjYsIDAuMTkzMTI0LCAwLjMzMDY4MiwgMC40NTE4NzQsIDAuNjEyNjc5LCAwLjkzNjAyNywgMS4xMzY5NCIsIFwKLSAgICAgICAgICAiMC4xNzk5NjksIDAuMjA0MzI4LCAwLjM0MTg5LCAwLjQ2Mjk4NywgMC42MjQzMzIsIDAuOTQ3MjMsIDEuMTQ5MzYiLCBcCi0gICAgICAgICAgIjAuMTk1NTc3LCAwLjIxOTkzMywgMC4zNTc1MDQsIDAuNDc3OTI0LCAwLjYzOTkzOSwgMC45NjI4NDgsIDEuMTY0NTQiLCBcCi0gICAgICAgICAgIjAuMjA4NjI1LCAwLjIzMjk4NCwgMC4zNzA1NjIsIDAuNDkxNTA4LCAwLjY1MjkzNSwgMC45NzYwMjgsIDEuMTc3ODIiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDkzMjQ0LCAwLjE0MTc2OCwgMC40MjIxNjEsIDAuNjcxNTYzLCAxLjAwMzksIDEuNjY4NDgsIDIuMDgzNzYiLCBcCi0gICAgICAgICAgIjAuMDkzMjM3LCAwLjE0MTgxNiwgMC40MjIxNzcsIDAuNjcxNTQsIDEuMDAzODksIDEuNjY4NCwgMi4wODM1OSIsIFwKLSAgICAgICAgICAiMC4wOTMyMDQsIDAuMTQxNzY5LCAwLjQyMjE1MSwgMC42NzE1NjgsIDEuMDAzODgsIDEuNjY1NjksIDIuMDgzMDQiLCBcCi0gICAgICAgICAgIjAuMDkzMjIzLCAwLjE0MTgxNCwgMC40MjIxNzEsIDAuNjcxNTgzLCAxLjAwMzg5LCAxLjY2ODM3LCAyLjA4MzM0IiwgXAotICAgICAgICAgICIwLjA5MzIyOCwgMC4xNDE3OTgsIDAuNDIyMTczLCAwLjY3MTU0OSwgMS4wMDM4OCwgMS42Njg1MiwgMi4wODEzNSIsIFwKLSAgICAgICAgICAiMC4wOTMyOTcsIDAuMTQxODg0LCAwLjQyMjE3OSwgMC42NzE0ODgsIDEuMDAzODksIDEuNjY4MzQsIDIuMDgzNTMiLCBcCi0gICAgICAgICAgIjAuMDkzMzUzLCAwLjE0MTgzNiwgMC40MjIxMjksIDAuNjcxNTMzLCAxLjAwMzg1LCAxLjY2ODM4LCAyLjA4MzYzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDIyLCAwLjAwNDIyOCwgMC4wMDQyMzksIDAuMDA0MjQxLCAwLjAwNDI0MiwgMC4wMDQyNDMsIDAuMDA0MjQ0IiwgXAotICAgICAgICAgICIwLjAwNDIwNCwgMC4wMDQyMTIsIDAuMDA0MjIzLCAwLjAwNDIyNiwgMC4wMDQyMjYsIDAuMDA0MjI4LCAwLjAwNDIyOCIsIFwKLSAgICAgICAgICAiMC4wMDQxOTYsIDAuMDA0MjA0LCAwLjAwNDIxNSwgMC4wMDQyMTcsIDAuMDA0MjE4LCAwLjAwNDIyLCAwLjAwNDIyIiwgXAotICAgICAgICAgICIwLjAwNDE5NiwgMC4wMDQyMDQsIDAuMDA0MjE1LCAwLjAwNDIxNywgMC4wMDQyMTgsIDAuMDA0MjIsIDAuMDA0MjE5IiwgXAotICAgICAgICAgICIwLjAwNDIwNiwgMC4wMDQyMTUsIDAuMDA0MjI2LCAwLjAwNDIyOCwgMC4wMDQyMjksIDAuMDA0MjMsIDAuMDA0MjMiLCBcCi0gICAgICAgICAgIjAuMDA0MjEyLCAwLjAwNDIyLCAwLjAwNDIzMSwgMC4wMDQyMzMsIDAuMDA0MjM0LCAwLjAwNDIzNiwgMC4wMDQyMzUiLCBcCi0gICAgICAgICAgIjAuMDA0MjI4LCAwLjAwNDIzNiwgMC4wMDQyNDcsIDAuMDA0MjQ5LCAwLjAwNDI1LCAwLjAwNDI1MSwgMC4wMDQyNTIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQwMzEsIDAuMDA0MDQsIDAuMDA0MDUyLCAwLjAwNDA1NCwgMC4wMDQwNTYsIDAuMDA0MDU3LCAwLjAwNDA1OCIsIFwKLSAgICAgICAgICAiMC4wMDQwMTYsIDAuMDA0MDI1LCAwLjAwNDAzNywgMC4wMDQwMzksIDAuMDA0MDQxLCAwLjAwNDA0MiwgMC4wMDQwNDIiLCBcCi0gICAgICAgICAgIjAuMDA0MDE0LCAwLjAwNDAyMywgMC4wMDQwMzUsIDAuMDA0MDM4LCAwLjAwNDA0LCAwLjAwNDA0LCAwLjAwNDA0MSIsIFwKLSAgICAgICAgICAiMC4wMDQwMjEsIDAuMDA0MDMsIDAuMDA0MDQyLCAwLjAwNDA0NSwgMC4wMDQwNDYsIDAuMDA0MDQ3LCAwLjAwNDA0NyIsIFwKLSAgICAgICAgICAiMC4wMDQwMzksIDAuMDA0MDQ4LCAwLjAwNDA2LCAwLjAwNDA2MywgMC4wMDQwNjQsIDAuMDA0MDY1LCAwLjAwNDA2NSIsIFwKLSAgICAgICAgICAiMC4wMDQwNTIsIDAuMDA0MDYxLCAwLjAwNDA3NCwgMC4wMDQwNzYsIDAuMDA0MDc4LCAwLjAwNDA3OSwgMC4wMDQwNzkiLCBcCi0gICAgICAgICAgIjAuMDA0MDc1LCAwLjAwNDA4NCwgMC4wMDQwOTYsIDAuMDA0MDk5LCAwLjAwNDEsIDAuMDA0MTAyLCAwLjAwNDEwMiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQ1NzMsIDAuMDA0NTgxLCAwLjAwNDU5MywgMC4wMDQ1OTUsIDAuMDA0NTk2LCAwLjAwNDU5NywgMC4wMDQ1OTciLCBcCi0gICAgICAgICAgIjAuMDA0NTU4LCAwLjAwNDU2NiwgMC4wMDQ1NzcsIDAuMDA0NTc5LCAwLjAwNDU4MSwgMC4wMDQ1ODIsIDAuMDA0NTgyIiwgXAotICAgICAgICAgICIwLjAwNDU0NywgMC4wMDQ1NTUsIDAuMDA0NTY3LCAwLjAwNDU2OSwgMC4wMDQ1NywgMC4wMDQ1NzEsIDAuMDA0NTcxIiwgXAotICAgICAgICAgICIwLjAwNDU0LCAwLjAwNDU0OCwgMC4wMDQ1NTksIDAuMDA0NTYxLCAwLjAwNDU2MywgMC4wMDQ1NjMsIDAuMDA0NTY0IiwgXAotICAgICAgICAgICIwLjAwNDUzNiwgMC4wMDQ1NDQsIDAuMDA0NTU1LCAwLjAwNDU1OCwgMC4wMDQ1NTksIDAuMDA0NTYsIDAuMDA0NTYiLCBcCi0gICAgICAgICAgIjAuMDA0NTM4LCAwLjAwNDU0NywgMC4wMDQ1NTgsIDAuMDA0NTYxLCAwLjAwNDU2MywgMC4wMDQ1NjMsIDAuMDA0NTYzIiwgXAotICAgICAgICAgICIwLjAwNDU0MSwgMC4wMDQ1NDksIDAuMDA0NTYxLCAwLjAwNDU2NCwgMC4wMDQ1NjUsIDAuMDA0NTY2LCAwLjAwNDU2NyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihzY2FsYXIpIHsKLSAgICAgICAgdmFsdWVzKCIwIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihRTikgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjI2MzQ2OwotICAgIGZ1bmN0aW9uIDogIlFCSU5UIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBub25fdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJpc2luZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNzg4NTksIDAuMjAzNTEsIDAuMzQzMjQ1LCAwLjQ2NjYwMywgMC42MzEwMTgsIDAuOTU5ODIsIDEuMTY1MjgiLCBcCi0gICAgICAgICAgIjAuMTg5MTI2LCAwLjIxMzc3NywgMC4zNTM1MDQsIDAuNDc2ODY4LCAwLjY0MTI4NiwgMC45NzAwODQsIDEuMTc1NTQiLCBcCi0gICAgICAgICAgIjAuMjAxOTMsIDAuMjI2NTgsIDAuMzY2MzA5LCAwLjQ4OTY3MSwgMC42NTQwODgsIDAuOTgyODg4LCAxLjE4ODMzIiwgXAotICAgICAgICAgICIwLjIxMzgwNCwgMC4yMzg0NTEsIDAuMzc4MjA1LCAwLjUwMTU0LCAwLjY2NTk2MSwgMC45OTQ3NSwgMS4yMDAyOSIsIFwKLSAgICAgICAgICAiMC4yMjQzNjksIDAuMjQ5MDMyLCAwLjM4ODc3LCAwLjUxMjEyNywgMC42NzY1MTcsIDEuMDA1MzQsIDEuMjEwODciLCBcCi0gICAgICAgICAgIjAuMjM5MTE1LCAwLjI2Mzc1NiwgMC40MDM0ODcsIDAuNTI2ODU0LCAwLjY5MTI3LCAxLjAyMDA2LCAxLjIyNTUxIiwgXAotICAgICAgICAgICIwLjI1MDQ3OSwgMC4yNzUxMjQsIDAuNDE0ODY4LCAwLjUzODIxNSwgMC43MDI2MzcsIDEuMDMxNDIsIDEuMjM2OSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTE3NDEsIDAuMTQxODk4LCAwLjQyODQsIDAuNjgxMzMsIDEuMDE4MywgMS42OTIyMiwgMi4xMTA4MiIsIFwKLSAgICAgICAgICAiMC4wOTE3MjksIDAuMTQxODk5LCAwLjQyODMxOSwgMC42ODEzMjYsIDEuMDE4MywgMS42OTIyMSwgMi4xMTA2OCIsIFwKLSAgICAgICAgICAiMC4wOTE3MjUsIDAuMTQxODk5LCAwLjQyODMyMSwgMC42ODEzMjQsIDEuMDE4MywgMS42OTIyMSwgMi4xMTI1NyIsIFwKLSAgICAgICAgICAiMC4wOTE2NjYsIDAuMTQxODk3LCAwLjQyODQ2NywgMC42ODEzMjUsIDEuMDE4MywgMS42OTIxOCwgMi4xMTM0NCIsIFwKLSAgICAgICAgICAiMC4wOTE3MTksIDAuMTQyMDY3LCAwLjQyNzYwNywgMC42ODEzNDcsIDEuMDE4MjYsIDEuNjkwMDksIDIuMTEzNTQiLCBcCi0gICAgICAgICAgIjAuMDkxNzkzLCAwLjE0MTg3NiwgMC40MjgzNDEsIDAuNjgxMzQ0LCAxLjAxODI1LCAxLjY5MjE5LCAyLjExMDY3IiwgXAotICAgICAgICAgICIwLjA5MTY2OCwgMC4xNDE4OSwgMC40Mjg0NCwgMC42ODEzMzUsIDEuMDE4MzEsIDEuNjkyMTgsIDIuMTEzMzMiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTU3OTU2LCAwLjE4MjgyOCwgMC4zMjM3NjUsIDAuNDQ4MTQyLCAwLjYxMzksIDAuOTQ1NTUzLCAxLjE1MjcxIiwgXAotICAgICAgICAgICIwLjE2ODExLCAwLjE5Mjk4NSwgMC4zMzM5MzQsIDAuNDU4Mjc5LCAwLjYyNDExNCwgMC45NTU2LCAxLjE2Mjg4IiwgXAotICAgICAgICAgICIwLjE4MDg0MiwgMC4yMDU3MjQsIDAuMzQ2NjYyLCAwLjQ3MTAxMywgMC42MzY3NTYsIDAuOTY4MzI3LCAxLjE3NTUyIiwgXAotICAgICAgICAgICIwLjE5MjY3LCAwLjIxNzU1LCAwLjM1ODQ4OSwgMC40ODI4NDIsIDAuNjQ4NTgzLCAwLjk4MDE1NCwgMS4xODczNSIsIFwKLSAgICAgICAgICAiMC4yMDMwNTIsIDAuMjI3OTI0LCAwLjM2ODg3MiwgMC40OTMyNzQsIDAuNjU4OTY0LCAwLjk5MDUyOCwgMS4xOTc3OSIsIFwKLSAgICAgICAgICAiMC4yMTc4OTUsIDAuMjQyNzY1LCAwLjM4MzY0NSwgMC41MDgwNDEsIDAuNjczOCwgMS4wMDUzNSwgMS4yMTI2NSIsIFwKLSAgICAgICAgICAiMC4yMjg5OTgsIDAuMjUzODY5LCAwLjM5NDgzOCwgMC41MTkxMzMsIDAuNjg0ODk4LCAxLjAxNjUxLCAxLjIyMzc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5MDkxOSwgMC4xNDA1ODQsIDAuNDIzOTY3LCAwLjY3MzM1LCAxLjAwNzc0LCAxLjY3NDc4LCAyLjA5MTg4IiwgXAotICAgICAgICAgICIwLjA5MDg4NSwgMC4xNDA1ODYsIDAuNDIzOTYyLCAwLjY3NDE2NSwgMS4wMDU5OSwgMS42NzQ3MSwgMi4wOTE5MiIsIFwKLSAgICAgICAgICAiMC4wOTA4ODQsIDAuMTQwNDY5LCAwLjQyMzk1LCAwLjY3MzM0MywgMS4wMDc1NCwgMS42NzQ3LCAyLjA4OTM5IiwgXAotICAgICAgICAgICIwLjA5MDkwMSwgMC4xNDA2MzIsIDAuNDIzOTUsIDAuNjczMjY1LCAxLjAwNzU0LCAxLjY3NDcsIDIuMDg5NDQiLCBcCi0gICAgICAgICAgIjAuMDkwOTAzLCAwLjE0MDU5MSwgMC40MjM5NTMsIDAuNjczMDAzLCAxLjAwNzUyLCAxLjY3NDY0LCAyLjA4ODc2IiwgXAotICAgICAgICAgICIwLjA5MDgxMywgMC4xNDA1NDYsIDAuNDIzMzk3LCAwLjY3MzMyNCwgMS4wMDc1MiwgMS42NzQ1MiwgMi4wOTE4NiIsIFwKLSAgICAgICAgICAiMC4wOTA4NzcsIDAuMTQwNTQ1LCAwLjQyMzI3MywgMC42NzQwMTYsIDEuMDA3NDksIDEuNjcyMjQsIDIuMDkxODUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiU04iOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGNsZWFyOwotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNTI0OTksIDAuMTc3Mzc0LCAwLjMxODMzNCwgMC40NDI2NTQsIDAuNjA4NDEzLCAwLjk0MDA0NCwgMS4xNDcyOSIsIFwKLSAgICAgICAgICAiMC4xNjIyMTUsIDAuMTg3MDg0LCAwLjMyODAzNiwgMC40NTIzODIsIDAuNjE4MTM5LCAwLjk0OTcyNywgMS4xNTY4NyIsIFwKLSAgICAgICAgICAiMC4xNzQ1NiwgMC4xOTk0MywgMC4zNDAzNzQsIDAuNDY0NjkxLCAwLjYzMDUxNiwgMC45NjIwNTksIDEuMTY5NCIsIFwKLSAgICAgICAgICAiMC4xODY1MzEsIDAuMjExNDAyLCAwLjM1MjM1LCAwLjQ3NjcwOSwgMC42NDI0NzIsIDAuOTc0MDQyLCAxLjE4MTI5IiwgXAotICAgICAgICAgICIwLjE5NzczMSwgMC4yMjI2MDIsIDAuMzYzNTUxLCAwLjQ4Nzg5MiwgMC42NTM2NTksIDAuOTg1MjQyLCAxLjE5MjU5IiwgXAotICAgICAgICAgICIwLjIxMzMyNiwgMC4yMzgxOTcsIDAuMzc5MTQ4LCAwLjUwMzM2NSwgMC42NjkyNTUsIDEuMDAwODQsIDEuMjA4MDYiLCBcCi0gICAgICAgICAgIjAuMjI2MjE3LCAwLjI1MTA5MSwgMC4zOTIwNDcsIDAuNTE2MzU5LCAwLjY4MjEzOSwgMS4wMTM3NywgMS4yMjEwMSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTA5MzYsIDAuMTQwNjIyLCAwLjQyNDAwNSwgMC42NzQxOTMsIDEuMDA3NzgsIDEuNjc1MTIsIDIuMDkyMTkiLCBcCi0gICAgICAgICAgIjAuMDkwOTQsIDAuMTQwNTk2LCAwLjQyNCwgMC42NzQxOTEsIDEuMDA3NzksIDEuNjc0OTYsIDIuMDkxNTkiLCBcCi0gICAgICAgICAgIjAuMDkwOTQyLCAwLjE0MDU1MiwgMC40MjM5MTEsIDAuNjc0MDc1LCAxLjAwNzc2LCAxLjY3MjMxLCAyLjA5MTE5IiwgXAotICAgICAgICAgICIwLjA5MDg4OCwgMC4xNDA1NDksIDAuNDIzOTcyLCAwLjY3NDIwNSwgMS4wMDc4MSwgMS42NzQ5MywgMi4wOTE3OCIsIFwKLSAgICAgICAgICAiMC4wOTA5MjUsIDAuMTQwNTUxLCAwLjQyMzk3MSwgMC42NzQxMjQsIDEuMDA3NywgMS42NzUzNSwgMi4wODk2MSIsIFwKLSAgICAgICAgICAiMC4wOTA5LCAwLjE0MDU0MywgMC40MjM5NzksIDAuNjc0MDUyLCAxLjAwNzgxLCAxLjY3NDksIDIuMDkxOCIsIFwKLSAgICAgICAgICAiMC4wOTA5MjQsIDAuMTQwNTk3LCAwLjQyMzkxNywgMC42NzQwMTQsIDEuMDA3NjMsIDEuNjc1MDIsIDIuMDkyMDUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0MDMxLCAwLjAwNDA0LCAwLjAwNDA1MiwgMC4wMDQwNTQsIDAuMDA0MDU2LCAwLjAwNDA1NywgMC4wMDQwNTgiLCBcCi0gICAgICAgICAgIjAuMDA0MDE2LCAwLjAwNDAyNSwgMC4wMDQwMzcsIDAuMDA0MDM5LCAwLjAwNDA0MSwgMC4wMDQwNDIsIDAuMDA0MDQyIiwgXAotICAgICAgICAgICIwLjAwNDAxNCwgMC4wMDQwMjMsIDAuMDA0MDM1LCAwLjAwNDAzOCwgMC4wMDQwNCwgMC4wMDQwNCwgMC4wMDQwNDEiLCBcCi0gICAgICAgICAgIjAuMDA0MDIxLCAwLjAwNDAzLCAwLjAwNDA0MiwgMC4wMDQwNDUsIDAuMDA0MDQ2LCAwLjAwNDA0NywgMC4wMDQwNDciLCBcCi0gICAgICAgICAgIjAuMDA0MDM5LCAwLjAwNDA0OCwgMC4wMDQwNiwgMC4wMDQwNjMsIDAuMDA0MDY0LCAwLjAwNDA2NSwgMC4wMDQwNjUiLCBcCi0gICAgICAgICAgIjAuMDA0MDUyLCAwLjAwNDA2MSwgMC4wMDQwNzQsIDAuMDA0MDc2LCAwLjAwNDA3OCwgMC4wMDQwNzksIDAuMDA0MDc5IiwgXAotICAgICAgICAgICIwLjAwNDA3NSwgMC4wMDQwODQsIDAuMDA0MDk2LCAwLjAwNDA5OSwgMC4wMDQxLCAwLjAwNDEwMiwgMC4wMDQxMDIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQyMiwgMC4wMDQyMjgsIDAuMDA0MjM5LCAwLjAwNDI0MSwgMC4wMDQyNDIsIDAuMDA0MjQzLCAwLjAwNDI0NCIsIFwKLSAgICAgICAgICAiMC4wMDQyMDQsIDAuMDA0MjEyLCAwLjAwNDIyMywgMC4wMDQyMjYsIDAuMDA0MjI2LCAwLjAwNDIyOCwgMC4wMDQyMjgiLCBcCi0gICAgICAgICAgIjAuMDA0MTk2LCAwLjAwNDIwNCwgMC4wMDQyMTUsIDAuMDA0MjE3LCAwLjAwNDIxOCwgMC4wMDQyMiwgMC4wMDQyMiIsIFwKLSAgICAgICAgICAiMC4wMDQxOTYsIDAuMDA0MjA0LCAwLjAwNDIxNSwgMC4wMDQyMTcsIDAuMDA0MjE4LCAwLjAwNDIyLCAwLjAwNDIxOSIsIFwKLSAgICAgICAgICAiMC4wMDQyMDYsIDAuMDA0MjE1LCAwLjAwNDIyNiwgMC4wMDQyMjgsIDAuMDA0MjI5LCAwLjAwNDIzLCAwLjAwNDIzIiwgXAotICAgICAgICAgICIwLjAwNDIxMiwgMC4wMDQyMiwgMC4wMDQyMzEsIDAuMDA0MjMzLCAwLjAwNDIzNCwgMC4wMDQyMzYsIDAuMDA0MjM1IiwgXAotICAgICAgICAgICIwLjAwNDIyOCwgMC4wMDQyMzYsIDAuMDA0MjQ3LCAwLjAwNDI0OSwgMC4wMDQyNSwgMC4wMDQyNTEsIDAuMDA0MjUyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiU04iOwotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDU3MywgMC4wMDQ1ODEsIDAuMDA0NTkzLCAwLjAwNDU5NSwgMC4wMDQ1OTYsIDAuMDA0NTk3LCAwLjAwNDU5NyIsIFwKLSAgICAgICAgICAiMC4wMDQ1NTgsIDAuMDA0NTY2LCAwLjAwNDU3NywgMC4wMDQ1NzksIDAuMDA0NTgxLCAwLjAwNDU4MiwgMC4wMDQ1ODIiLCBcCi0gICAgICAgICAgIjAuMDA0NTQ3LCAwLjAwNDU1NSwgMC4wMDQ1NjcsIDAuMDA0NTY5LCAwLjAwNDU3LCAwLjAwNDU3MSwgMC4wMDQ1NzEiLCBcCi0gICAgICAgICAgIjAuMDA0NTQsIDAuMDA0NTQ4LCAwLjAwNDU1OSwgMC4wMDQ1NjEsIDAuMDA0NTYzLCAwLjAwNDU2MywgMC4wMDQ1NjQiLCBcCi0gICAgICAgICAgIjAuMDA0NTM2LCAwLjAwNDU0NCwgMC4wMDQ1NTUsIDAuMDA0NTU4LCAwLjAwNDU1OSwgMC4wMDQ1NiwgMC4wMDQ1NiIsIFwKLSAgICAgICAgICAiMC4wMDQ1MzgsIDAuMDA0NTQ3LCAwLjAwNDU1OCwgMC4wMDQ1NjEsIDAuMDA0NTYzLCAwLjAwNDU2MywgMC4wMDQ1NjMiLCBcCi0gICAgICAgICAgIjAuMDA0NTQxLCAwLjAwNDU0OSwgMC4wMDQ1NjEsIDAuMDA0NTY0LCAwLjAwNDU2NSwgMC4wMDQ1NjYsIDAuMDA0NTY3Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3Bvd2VyKHNjYWxhcikgewotICAgICAgICB2YWx1ZXMoIjAiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFNFKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDEzMjgzNzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDEzMjc2OTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDEzMjgzNzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDQyODUsIDAuMDA0MjYzLCAwLjAwNDI2OSwgMC4wMDQyNzEsIDAuMDA0Mjg5LCAwLjAwNDMxMSwgMC4wMDQzMzYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDU2OTIsIDAuMDA1NjU2LCAwLjAwNTY2LCAwLjAwNTY2LCAwLjAwNTY3MSwgMC4wMDU3MSwgMC4wMDU3NDciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiU04iOwotICAgICAgc2RmX2NvbmQgOiAiU04gPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDI1LCAtMC4wMTM3NSwgLTAuMDAxMjUsIDAuMDA1LCAwLjAxNzUsIDAuMDI3NSwgMC4wMzYyNSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAyNSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAuMDA2MjUsIDAuMDE2MjUsIDAuMDI1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDM3NSwgLTAuMDI1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMC4wMDM3NSwgMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA0Mzc1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMTI1LCAtMC4wMDI1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wNjEyNSwgLTAuMDUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgLTAuMDA4NzUsIDAiLCBcCi0gICAgICAgICAgIi0wLjA3MTI1LCAtMC4wNiwgLTAuMDQ3NSwgLTAuMDQxMjUsIC0wLjAyODc1LCAtMC4wMTg3NSwgLTAuMDEiLCBcCi0gICAgICAgICAgIi0wLjA4LCAtMC4wNjg3NSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wMzc1LCAtMC4wMjc1LCAtMC4wMTg3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAxMjUsIC0wLjAwMTI1LCAwLjAxMTI1LCAwLjAxNzUsIDAuMDMsIDAuMDQsIDAuMDQ4NzUiLCBcCi0gICAgICAgICAgIi0wLjAxNzUsIC0wLjAxMjUsIDAsIDAuMDEyNSwgMC4wMTg3NSwgMC4wMjg3NSwgMC4wMzc1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDE4NzUsIC0wLjAxMjUsIDAsIDAuMDA2MjUsIDAuMDIyNSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDMxMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAwLCAwLjAxLCAwLjAxODc1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDQzNzUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDAyNSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDY1LCAtMC4wNTM3NSwgLTAuMDQ3NSwgLTAuMDM1LCAtMC4wMjg3NSwgLTAuMDEyNSwgLTAuMDAzNzUiLCBcCi0gICAgICAgICAgIi0wLjA3Mzc1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAyNzUsIC0wLjAxODc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJTTiA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xLCAwLjA4ODc1LCAwLjA3NjI1LCAwLjA2Mzc1LCAwLjA1MTI1LCAwLjA0MTI1LCAwLjAzMjUiLCBcCi0gICAgICAgICAgIjAuMTExMjUsIDAuMSwgMC4wODc1LCAwLjA3NSwgMC4wNjI1LCAwLjA0NjI1LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIjAuMTIzNzUsIDAuMTEyNSwgMC4xLCAwLjA4NzUsIDAuMDc1LCAwLjA1ODc1LCAwLjA1IiwgXAotICAgICAgICAgICIwLjEzLCAwLjExODc1LCAwLjEwNjI1LCAwLjA5Mzc1LCAwLjA4MTI1LCAwLjA3MTI1LCAwLjA2MjUiLCBcCi0gICAgICAgICAgIjAuMTM2MjUsIDAuMTI1LCAwLjExMjUsIDAuMSwgMC4wOTM3NSwgMC4wODM3NSwgMC4wNzUiLCBcCi0gICAgICAgICAgIjAuMTQ2MjUsIDAuMTM1LCAwLjEyMjUsIDAuMTE2MjUsIDAuMTEsIDAuMSwgMC4wOTEyNSIsIFwKLSAgICAgICAgICAiMC4xNjEyNSwgMC4xNSwgMC4xMzc1LCAwLjEzMTI1LCAwLjEyNSwgMC4xMTUsIDAuMTA2MjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xLCAwLjA4ODc1LCAwLjA3NjI1LCAwLjA3LCAwLjA2Mzc1LCAwLjA1Mzc1LCAwLjA0NSIsIFwKLSAgICAgICAgICAiMC4xMTEyNSwgMC4xLCAwLjA4NzUsIDAuMDgxMjUsIDAuMDc1LCAwLjA2NSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiMC4xMTc1LCAwLjEwNjI1LCAwLjEsIDAuMDg3NSwgMC4wODEyNSwgMC4wNzEyNSwgMC4wNjg3NSIsIFwKLSAgICAgICAgICAiMC4xMywgMC4xMTg3NSwgMC4xMDYyNSwgMC4wOTM3NSwgMC4wODc1LCAwLjA3NzUsIDAuMDc1IiwgXAotICAgICAgICAgICIwLjEzNjI1LCAwLjEyNSwgMC4xMTI1LCAwLjEsIDAuMDkzNzUsIDAuMDgzNzUsIDAuMDgxMjUiLCBcCi0gICAgICAgICAgIjAuMTQ2MjUsIDAuMTM1LCAwLjEyMjUsIDAuMTEsIDAuMTAzNzUsIDAuMDkzNzUsIDAuMDkxMjUiLCBcCi0gICAgICAgICAgIjAuMTYxMjUsIDAuMTUsIDAuMTM3NSwgMC4xMjUsIDAuMTEyNSwgMC4xMDI1LCAwLjA5Mzc1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTSSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjk0MTU5OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDY5MjU4MTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2OTQxNTk7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzMTQ0LCAwLjAwMzEyNywgMC4wMDMxMTgsIDAuMDAzMTEzLCAwLjAwMzExLCAwLjAwMzExMSwgMC4wMDMxMjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDQ2NTgsIDAuMDA0NjQ5LCAwLjAwNDY0NCwgMC4wMDQ2NDEsIDAuMDA0NjQxLCAwLjAwNDY0MiwgMC4wMDQ2NDciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiU0UmU04iOwotICAgICAgc2RmX2NvbmQgOiAiU0VfRVFfMV9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjA1LCAtMC4wNDUsIC0wLjAzODc1LCAtMC4wMzI1LCAtMC4wMjYyNSwgLTAuMDE2MjUsIC0wLjAwNzUiLCBcCi0gICAgICAgICAgIi0wLjA2MTI1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMjc1LCAtMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDczNzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjAzMzc1LCAtMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDgsIC0wLjA3NSwgLTAuMDY4NzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNDYyNSwgLTAuMDQzNzUiLCBcCi0gICAgICAgICAgIi0wLjA5MjUsIC0wLjA4MTI1LCAtMC4wNzUsIC0wLjA2ODc1LCAtMC4wNjI1LCAtMC4wNTg3NSwgLTAuMDUiLCBcCi0gICAgICAgICAgIi0wLjEwODc1LCAtMC4wOTc1LCAtMC4wOTEyNSwgLTAuMDg1LCAtMC4wNzg3NSwgLTAuMDc1LCAtMC4wNjYyNSIsIFwKLSAgICAgICAgICAiLTAuMTE3NSwgLTAuMTEyNSwgLTAuMTA2MjUsIC0wLjEsIC0wLjA5Mzc1LCAtMC4wODM3NSwgLTAuMDgxMjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMTg3NSwgLTAuMDA3NSwgMC4wMDUsIDAuMDExMjUsIDAuMDIzNzUsIDAuMDMzNzUsIDAuMDQyNSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxODc1LCAtMC4wMDYyNSwgMC4wMDYyNSwgMC4wMTI1LCAwLjAyODc1LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMjUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLjAwNjI1LCAwLjAxNjI1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDM3NSwgLTAuMDI1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMC4wMSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNDM3NSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDEyNSwgLTAuMDAyNSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDY1LCAtMC4wNTM3NSwgLTAuMDQ3NSwgLTAuMDM1LCAtMC4wMjg3NSwgLTAuMDEyNSwgLTAuMDAzNzUiLCBcCi0gICAgICAgICAgIi0wLjA3Mzc1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAyMTI1LCAtMC4wMTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJTRSZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJTRV9FUV8xX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg3NSwgMC4wNzYyNSwgMC4wNywgMC4wNTc1LCAwLjA1MTI1LCAwLjA0MTI1LCAwLjAzODc1IiwgXAotICAgICAgICAgICIwLjA5ODc1LCAwLjA4NzUsIDAuMDc1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDUyNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4xMTEyNSwgMC4xLCAwLjA4NzUsIDAuMDgxMjUsIDAuMDc1LCAwLjA2NSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiMC4xMTc1LCAwLjExMjUsIDAuMSwgMC4wODc1LCAwLjA4MTI1LCAwLjA3MTI1LCAwLjA2ODc1IiwgXAotICAgICAgICAgICIwLjEzLCAwLjExODc1LCAwLjEwNjI1LCAwLjEsIDAuMDkzNzUsIDAuMDgzNzUsIDAuMDc1IiwgXAotICAgICAgICAgICIwLjE0NjI1LCAwLjEzNSwgMC4xMjI1LCAwLjExNjI1LCAwLjExLCAwLjEsIDAuMDkxMjUiLCBcCi0gICAgICAgICAgIjAuMTYxMjUsIDAuMTUsIDAuMTM3NSwgMC4xMzEyNSwgMC4xMTg3NSwgMC4xMTUsIDAuMTA2MjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTM3NSwgMC4wODI1LCAwLjA3LCAwLjA1NzUsIDAuMDQ1LCAwLjAyODc1LCAwLjAyIiwgXAotICAgICAgICAgICIwLjA5ODc1LCAwLjA5Mzc1LCAwLjA3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA0LCAwLjAzMTI1IiwgXAotICAgICAgICAgICIwLjExMTI1LCAwLjEsIDAuMDg3NSwgMC4wNzUsIDAuMDYyNSwgMC4wNDYyNSwgMC4wMzc1IiwgXAotICAgICAgICAgICIwLjEyMzc1LCAwLjExMjUsIDAuMSwgMC4wODc1LCAwLjA3NSwgMC4wNTg3NSwgMC4wNSIsIFwKLSAgICAgICAgICAiMC4xMywgMC4xMTg3NSwgMC4xMDYyNSwgMC4wOTM3NSwgMC4wODEyNSwgMC4wNzEyNSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiMC4xNDYyNSwgMC4xMzUsIDAuMTIyNSwgMC4xMSwgMC4wOTc1LCAwLjA4MTI1LCAwLjA3MjUiLCBcCi0gICAgICAgICAgIjAuMTU1LCAwLjE0Mzc1LCAwLjEzMTI1LCAwLjExODc1LCAwLjEwNjI1LCAwLjA5NjI1LCAwLjA4MTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTTikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNDY5ODI7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxMzgwNjQ7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNDY5ODI7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNDUzLCAwLjAwMDQ1MywgMC4wMDA0NTIsIDAuMDAwNDUyLCAwLjAwMDQ1MiwgMC4wMDA0NTIsIDAuMDAwNDUyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNDU3LCAwLjAwMDQ1NCwgMC4wMDA0NTQsIDAuMDAwNDU0LCAwLjAwMDQ1NCwgMC4wMDA0NTQsIDAuMDAwNDU0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRCYhU0UmIVNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9TRV9FUV8wX0FOX1NJX0VRXzAgPT0gMSdiMSI7Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4xNTI0OTksIDAuMTYyMjE1LCAwLjE3NDU2LCAwLjE4NjUzMSwgMC4xOTc3MzEsIDAuMjEzMzI2LCAwLjIyNjIxNyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJlY292ZXJ5X3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUQmIVNFJiFTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fU0VfRVFfMF9BTl9TSV9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHJlY292ZXJ5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMjUsIDAuMDAxMjUsIC0wLjAxMTI1LCAtMC4wMjM3NSwgLTAuMDM2MjUsIC0wLjA1MjUsIC0wLjA2MTI1IiwgXAotICAgICAgICAgICIwLjAyMzc1LCAwLjAxMjUsIDAsIC0wLjAxODc1LCAtMC4wMjUsIC0wLjA0MTI1LCAtMC4wNTYyNSIsIFwKLSAgICAgICAgICAiMC4wMywgMC4wMTg3NSwgMC4wMDYyNSwgLTAuMDA2MjUsIC0wLjAxODc1LCAtMC4wMzUsIC0wLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjA0MjUsIDAuMDMxMjUsIDAuMDE4NzUsIDAuMDA2MjUsIC0wLjAwNjI1LCAtMC4wMjI1LCAtMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4wNTUsIDAuMDQzNzUsIDAuMDI1LCAwLjAxMjUsIDAuMDA2MjUsIC0wLjAxLCAtMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMDcxMjUsIDAuMDYsIDAuMDQxMjUsIDAuMDI4NzUsIDAuMDIyNSwgMC4wMDYyNSwgLTAuMDA4NzUiLCBcCi0gICAgICAgICAgIjAuMDgsIDAuMDY4NzUsIDAuMDU2MjUsIDAuMDQzNzUsIDAuMDMxMjUsIDAuMDE1LCAwLjAwNjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogcmVtb3ZhbF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEJiFTRSYhU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1NFX0VRXzBfQU5fU0lfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChyZW1vdmFsX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzMTI1LCAwLjA0MjUsIDAuMDU1LCAwLjA2NzUsIDAuMDczNzUsIDAuMDksIDAuMDk4NzUiLCBcCi0gICAgICAgICAgIjAuMDIsIDAuMDMxMjUsIDAuMDQzNzUsIDAuMDU2MjUsIDAuMDY4NzUsIDAuMDc4NzUsIDAuMDkzNzUiLCBcCi0gICAgICAgICAgIjAuMDEzNzUsIDAuMDE4NzUsIDAuMDMxMjUsIDAuMDQzNzUsIDAuMDU2MjUsIDAuMDcyNSwgMC4wODEyNSIsIFwKLSAgICAgICAgICAiMC4wMDEyNSwgMC4wMTI1LCAwLjAyNSwgMC4wMzc1LCAwLjA0Mzc1LCAwLjA2LCAwLjA2ODc1IiwgXAotICAgICAgICAgICItMC4wMTEyNSwgMCwgMC4wMTI1LCAwLjAyNSwgMC4wMzc1LCAwLjA1Mzc1LCAwLjA2MjUiLCBcCi0gICAgICAgICAgIi0wLjAyMTI1LCAtMC4wMSwgMC4wMDI1LCAwLjAxNSwgMC4wMjEyNSwgMC4wMzc1LCAwLjA0NjI1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDI1LCAtMC4wMTI1LCAwLCAwLjAxMjUsIDAuMDI4NzUsIDAuMDM3NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IFNERkZTWEwgKgotICogLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoU0RGRlNYTCkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjM4ODM5OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIGZmIChOMzUsUUJJTlQpIHsKLSAgICBuZXh0X3N0YXRlIDogIigoU0UgU0kpICsgKCFTRSBEKSkiOwotICAgIGNsb2NrZWRfb24gOiAiQ0siOwotICAgIHByZXNldCA6ICIoIVNOKSI7Ci0gIH0KLSAgcGluKENLKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2Mzk1NTg7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjM5MzcyOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDYzOTU1ODsKLSAgICBjbG9jayA6IHRydWU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyNTk0LCAwLjAwMjU2OCwgMC4wMDI1NTYsIDAuMDAyNTU2LCAwLjAwMjU2NywgMC4wMDI1OSwgMC4wMDI2MTEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDY1NDEsIDAuMDA2NTE3LCAwLjAwNjUxMiwgMC4wMDY1MTksIDAuMDA2NTQsIDAuMDA2NTc2LCAwLjAwNjYyMyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQmIVNFJiFTSSZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fU0VfRVFfMF9BTl9TSV9FUV8wX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4yMDEyMDQsIDAuMjExNDM3LCAwLjIyNDIzNywgMC4yMzYwNDksIDAuMjQ2Njg1LCAwLjI2MTE0MSwgMC4yNzIzNzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjExMjA1MywgMC4xMjE4MywgMC4xMzQxNzEsIDAuMTQ1NjIxLCAwLjE1NTU2NCwgMC4xNjksIDAuMTc5MjU5Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihEKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2MTc2NTU7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjE2MTI5OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDYxNzY1NTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDMzNDYsIDAuMDAzMzMsIDAuMDAzMzIsIDAuMDAzMzE0LCAwLjAwMzMxMiwgMC4wMDMzMTEsIDAuMDAzMzE5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA0NjUxLCAwLjAwNDY0MiwgMC4wMDQ2MzYsIDAuMDA0NjMzLCAwLjAwNDYzNCwgMC4wMDQ2MzQsIDAuMDA0NjM5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFTRSZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJTRV9FUV8wX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDU2MjUsIC0wLjA0NSwgLTAuMDM4NzUsIC0wLjAzMjUsIC0wLjAyNjI1LCAtMC4wMTYyNSwgLTAuMDEzNzUiLCBcCi0gICAgICAgICAgIi0wLjA2MTI1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMjc1LCAtMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjA3Mzc1LCAtMC4wNjg3NSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDQsIC0wLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wODYyNSwgLTAuMDc1LCAtMC4wNjg3NSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA1MjUsIC0wLjA0Mzc1IiwgXAotICAgICAgICAgICItMC4wOTI1LCAtMC4wODc1LCAtMC4wODEyNSwgLTAuMDc1LCAtMC4wNjg3NSwgLTAuMDU4NzUsIC0wLjA1NjI1IiwgXAotICAgICAgICAgICItMC4xMDg3NSwgLTAuMTAzNzUsIC0wLjA5NzUsIC0wLjA5MTI1LCAtMC4wODUsIC0wLjA3NSwgLTAuMDcyNSIsIFwKLSAgICAgICAgICAiLTAuMTIzNzUsIC0wLjExMjUsIC0wLjEwNjI1LCAtMC4xLCAtMC4wOTM3NSwgLTAuMDksIC0wLjA4MTI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDE4NzUsIC0wLjAwNzUsIC0wLjAwMTI1LCAwLjAxMTI1LCAwLjAxNzUsIDAuMDMzNzUsIDAuMDQyNSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAxODc1LCAtMC4wMDYyNSwgMCwgMC4wMTI1LCAwLjAyMjUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLCAwLjAxNjI1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjAzNzUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLjAwMzc1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjA1NSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAwMjUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA3MTI1LCAtMC4wNiwgLTAuMDQ3NSwgLTAuMDQxMjUsIC0wLjAyODc1LCAtMC4wMTg3NSwgLTAuMDEiLCBcCi0gICAgICAgICAgIi0wLjA4LCAtMC4wNjg3NSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wMzc1LCAtMC4wMjc1LCAtMC4wMTg3NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIVNFJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIlNFX0VRXzBfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTM3NSwgMC4wODI1LCAwLjA3LCAwLjA2Mzc1LCAwLjA1NzUsIDAuMDQ3NSwgMC4wMzg3NSIsIFwKLSAgICAgICAgICAiMC4wOTg3NSwgMC4wODc1LCAwLjA4MTI1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDUyNSwgMC4wNSIsIFwKLSAgICAgICAgICAiMC4xMTEyNSwgMC4xLCAwLjA4NzUsIDAuMDgxMjUsIDAuMDc1LCAwLjA2NSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiMC4xMjM3NSwgMC4xMTI1LCAwLjEsIDAuMDkzNzUsIDAuMDg3NSwgMC4wNzc1LCAwLjA2ODc1IiwgXAotICAgICAgICAgICIwLjEzLCAwLjExODc1LCAwLjExMjUsIDAuMSwgMC4wOTM3NSwgMC4wODM3NSwgMC4wODEyNSIsIFwKLSAgICAgICAgICAiMC4xNDYyNSwgMC4xMzUsIDAuMTI4NzUsIDAuMTE2MjUsIDAuMTEsIDAuMSwgMC4wOTc1IiwgXAotICAgICAgICAgICIwLjE2MTI1LCAwLjE1LCAwLjEzNzUsIDAuMTMxMjUsIDAuMTI1LCAwLjExNSwgMC4xMDYyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5Mzc1LCAwLjA4MjUsIDAuMDcsIDAuMDU3NSwgMC4wNDUsIDAuMDM1LCAwLjAyIiwgXAotICAgICAgICAgICIwLjEwNSwgMC4wOTM3NSwgMC4wODEyNSwgMC4wNjg3NSwgMC4wNTYyNSwgMC4wNCwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4xMTEyNSwgMC4xLCAwLjA4NzUsIDAuMDc1LCAwLjA2ODc1LCAwLjA1MjUsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiMC4xMjM3NSwgMC4xMTI1LCAwLjEsIDAuMDg3NSwgMC4wNzUsIDAuMDU4NzUsIDAuMDUiLCBcCi0gICAgICAgICAgIjAuMTMsIDAuMTE4NzUsIDAuMTA2MjUsIDAuMDkzNzUsIDAuMDg3NSwgMC4wNzEyNSwgMC4wNjI1IiwgXAotICAgICAgICAgICIwLjE0NjI1LCAwLjEzNSwgMC4xMjI1LCAwLjExLCAwLjA5NzUsIDAuMDg3NSwgMC4wNzI1IiwgXAotICAgICAgICAgICIwLjE1NSwgMC4xNDM3NSwgMC4xMzEyNSwgMC4xMTg3NSwgMC4xMTI1LCAwLjA5NjI1LCAwLjA4NzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFEpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4xNDY2NDM7Ci0gICAgZnVuY3Rpb24gOiAiTjM1IjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBub25fdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJpc2luZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNjc3MjcsIDAuMTgxODAyLCAwLjMwOTA2MywgMC41MjA3NzYsIDAuNzMyNTM3LCAxLjIyNjY4LCAxLjUwOTI1IiwgXAotICAgICAgICAgICIwLjE3Nzg3LCAwLjE5MTkzNCwgMC4zMTkyNDUsIDAuNTMwOTU1LCAwLjc0MjcxOSwgMS4yMzY4NSwgMS41MTkzOCIsIFwKLSAgICAgICAgICAiMC4xOTA1NzMsIDAuMjA0NDg0LCAwLjMzMTg5OCwgMC41NDM2MTMsIDAuNzU1Mzc4LCAxLjI0OTUyLCAxLjUzMjExIiwgXAotICAgICAgICAgICIwLjIwMjM5NywgMC4yMTY0MjgsIDAuMzQzNzI4LCAwLjU1NTQzNiwgMC43NjcxOTksIDEuMjYxMzUsIDEuNTQ0MDIiLCBcCi0gICAgICAgICAgIjAuMjEyNTY5LCAwLjIyNjY1MiwgMC4zNTM5NjYsIDAuNTY1NjcxLCAwLjc3NzQzMSwgMS4yNzE1OSwgMS41NTQxOCIsIFwKLSAgICAgICAgICAiMC4yMjczMTcsIDAuMjQxNTgxLCAwLjM2ODc3NCwgMC41ODA0NywgMC43OTIyMzIsIDEuMjg2NDQsIDEuNTY4NzQiLCBcCi0gICAgICAgICAgIjAuMjM4MzU5LCAwLjI1MjQ5NiwgMC4zNzk3NjgsIDAuNTkxMzI3LCAwLjgwMzE4NywgMS4yOTc0NSwgMS41Nzk4OCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNTM2MTgsIDAuMTgyNTY4LCAwLjQ0MzI4OSwgMC44Nzg5MDYsIDEuMzE0ODUsIDIuMzMyMDgsIDIuOTEzMDkiLCBcCi0gICAgICAgICAgIjAuMTUzNDgxLCAwLjE4MjUyNiwgMC40NDMyNywgMC44Nzg4OTMsIDEuMzE0ODMsIDIuMzMyMDIsIDIuOTEzIiwgXAotICAgICAgICAgICIwLjE1MzQ5OSwgMC4xODIyMTEsIDAuNDQzMjYzLCAwLjg3ODg4MiwgMS4zMTQ4MywgMi4zMzIwNCwgMi45MTMxMSIsIFwKLSAgICAgICAgICAiMC4xNTM0OTgsIDAuMTgyNTQ1LCAwLjQ0MzI3MSwgMC44Nzg4ODIsIDEuMzE0ODQsIDIuMzMyMDcsIDIuOTEzMzciLCBcCi0gICAgICAgICAgIjAuMTUzNjAzLCAwLjE4MjU1NywgMC40NDMyNzksIDAuODc4ODksIDEuMzE0ODMsIDIuMzMyMDgsIDIuOTEzMTYiLCBcCi0gICAgICAgICAgIjAuMTUzNjQxLCAwLjE4MjU3NCwgMC40NDI0ODEsIDAuODc4ODQ1LCAxLjMxNDgsIDIuMzMyMTYsIDIuOTA3NzkiLCBcCi0gICAgICAgICAgIjAuMTUzNTY5LCAwLjE4MjE3MywgMC40NDMyNzgsIDAuODc3Mzk3LCAxLjMxNDczLCAyLjMzMjIxLCAyLjkwNzQ2Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE4ODEyNSwgMC4yMDIwMzksIDAuMzI2Mzc5LCAwLjUzMzg2NywgMC43NDIxNzIsIDEuMjI2NjIsIDEuNTAzMDEiLCBcCi0gICAgICAgICAgIjAuMTk4MzY0LCAwLjIxMjIyMywgMC4zMzY2MTIsIDAuNTQ0Nzg0LCAwLjc1MTQ1NSwgMS4yMzYyMiwgMS41MTM3NCIsIFwKLSAgICAgICAgICAiMC4yMTExNjMsIDAuMjI1MDQ5LCAwLjM0OTQyNiwgMC41NTczMjQsIDAuNzY1MTU4LCAxLjI0OTcsIDEuNTI2MyIsIFwKLSAgICAgICAgICAiMC4yMjI5NzQsIDAuMjM2ODc5LCAwLjM2MTQxNCwgMC41Njg3OTcsIDAuNzc2OTcyLCAxLjI2MTQ2LCAxLjUzODEzIiwgXAotICAgICAgICAgICIwLjIzMzU5NCwgMC4yNDc1MjMsIDAuMzcyMTI0LCAwLjU3OTUzOCwgMC43ODc2NTUsIDEuMjcyMDQsIDEuNTQ3NjMiLCBcCi0gICAgICAgICAgIjAuMjQ4MDc1LCAwLjI2MTk4NCwgMC4zODY1MDEsIDAuNTkzODg5LCAwLjgwMjA3OSwgMS4yODY1NiwgMS41NjMxMSIsIFwKLSAgICAgICAgICAiMC4yNTkzMDMsIDAuMjczMjAyLCAwLjM5NzUzNCwgMC42MDUxNjEsIDAuODEzMzA3LCAxLjI5Nzc4LCAxLjU3NDIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTQ3MTk5LCAwLjE3NTgsIDAuNDI0NTA1LCAwLjg0MDU3MSwgMS4yNTc2OSwgMi4yMzA3OSwgMi43ODU4NSIsIFwKLSAgICAgICAgICAiMC4xNDc3NTQsIDAuMTc1NjE3LCAwLjQyNDQ4NywgMC44NDEwODQsIDEuMjU2MjcsIDIuMjI5NTMsIDIuNzg2NzkiLCBcCi0gICAgICAgICAgIjAuMTQ4MjI3LCAwLjE3NTc5NywgMC40MjQzOTYsIDAuODQxMDE3LCAxLjI1NzYxLCAyLjIyNzgsIDIuNzg2NTMiLCBcCi0gICAgICAgICAgIjAuMTQ4MjIzLCAwLjE3NTgsIDAuNDI0NTQsIDAuODQwOTg0LCAxLjI1NzU3LCAyLjIzMDY4LCAyLjc4NjQ0IiwgXAotICAgICAgICAgICIwLjE0Nzc2OCwgMC4xNzU4MDMsIDAuNDI1MDQ3LCAwLjg0MDY3OCwgMS4yNTc2NiwgMi4yMzA1NCwgMi43ODU4NyIsIFwKLSAgICAgICAgICAiMC4xNDgyMjcsIDAuMTc1ODAzLCAwLjQyNDM5LCAwLjg0MDk0MywgMS4yNTc1OSwgMi4yMzA2OSwgMi43ODYxNSIsIFwKLSAgICAgICAgICAiMC4xNDgyMDYsIDAuMTc1Nzk1LCAwLjQyNDYyNywgMC44NDExMTQsIDEuMjU3NTgsIDIuMjMwNjUsIDIuNzg1NzYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiU04iOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHByZXNldDsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTYzMDI4LCAwLjE3NzI5NCwgMC4zMDQ0MDUsIDAuNTE2MDU0LCAwLjcyNzk5NSwgMS4yMjIwMSwgMS41MDQ0OCIsIFwKLSAgICAgICAgICAiMC4xNzI3ODcsIDAuMTg2OTYxLCAwLjMxNDE2OCwgMC41MjU3NDcsIDAuNzM3NjE5LCAxLjIzMTc0LCAxLjUxNDE4IiwgXAotICAgICAgICAgICIwLjE4NTE4NCwgMC4xOTkzNCwgMC4zMjYzNjEsIDAuNTM4MTUsIDAuNzUwMDk1LCAxLjI0NDEsIDEuNTI2NTYiLCBcCi0gICAgICAgICAgIjAuMTk3MTg0LCAwLjIxMTMzLCAwLjMzODM3NywgMC41NTAxMzMsIDAuNzYyMDkxLCAxLjI1NjA4LCAxLjUzODU1IiwgXAotICAgICAgICAgICIwLjIwODQ0MiwgMC4yMjI1ODgsIDAuMzQ5NzgyLCAwLjU2MTM3OSwgMC43NzMzNDcsIDEuMjY3MzQsIDEuNTQ5ODEiLCBcCi0gICAgICAgICAgIjAuMjIzOTgzLCAwLjIzODMxLCAwLjM2NTQ0OSwgMC41NzcxOCwgMC43ODg5NiwgMS4yODI3OCwgMS41NjU0MSIsIFwKLSAgICAgICAgICAiMC4yMzcxNjIsIDAuMjUxNDU0LCAwLjM3ODQyOSwgMC41OTAzOTMsIDAuODAyMTksIDEuMjk2MTcsIDEuNTc4NjUiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTUzNTQ0LCAwLjE4MjQ5OCwgMC40NDMyMjMsIDAuODc4OTQzLCAxLjMxNDk1LCAyLjMyODE4LCAyLjkwOTMyIiwgXAotICAgICAgICAgICIwLjE1MzYwOSwgMC4xODI0ODksIDAuNDQzMjMyLCAwLjg3ODkzOSwgMS4zMTQ3OSwgMi4zMzE0NywgMi45MTI4OCIsIFwKLSAgICAgICAgICAiMC4xNTM1NDQsIDAuMTgyNDg1LCAwLjQ0MzIwNywgMC44Nzg5MzEsIDEuMzE0OTMsIDIuMzI3MDQsIDIuOTEyMTUiLCBcCi0gICAgICAgICAgIjAuMTUzNDE1LCAwLjE4MjQ5MywgMC40NDMyMTksIDAuODc4ODEsIDEuMzE0OTIsIDIuMzI4MjksIDIuOTA4NDYiLCBcCi0gICAgICAgICAgIjAuMTUzNDMyLCAwLjE4MjQ5NywgMC40NDMyMDIsIDAuODc4ODY2LCAxLjMxNDkxLCAyLjMzMDU3LCAyLjkxMzY2IiwgXAotICAgICAgICAgICIwLjE1MzU3MiwgMC4xODIxNTEsIDAuNDQzMjI0LCAwLjg3ODg0MywgMS4zMTQ4NSwgMi4zMzEzNSwgMi45MDkyIiwgXAotICAgICAgICAgICIwLjE1MzY2MSwgMC4xODI1MDgsIDAuNDQzMTM0LCAwLjg3ODg0MiwgMS4zMTQ4NywgMi4zMjgzNywgMi45MDkwMSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDM4MzYsIDAuMDAzODM3LCAwLjAwMzg0MSwgMC4wMDM4NDMsIDAuMDAzODQzLCAwLjAwMzg0NCwgMC4wMDM4NDQiLCBcCi0gICAgICAgICAgIjAuMDAzODIxLCAwLjAwMzgyMiwgMC4wMDM4MjYsIDAuMDAzODI3LCAwLjAwMzgyOCwgMC4wMDM4MjgsIDAuMDAzODI4IiwgXAotICAgICAgICAgICIwLjAwMzgxMiwgMC4wMDM4MTMsIDAuMDAzODE3LCAwLjAwMzgxOCwgMC4wMDM4MTksIDAuMDAzODE5LCAwLjAwMzgxOSIsIFwKLSAgICAgICAgICAiMC4wMDM4MTIsIDAuMDAzODEzLCAwLjAwMzgxNywgMC4wMDM4MTksIDAuMDAzODE5LCAwLjAwMzgxOSwgMC4wMDM4MiIsIFwKLSAgICAgICAgICAiMC4wMDM4MjIsIDAuMDAzODIzLCAwLjAwMzgyNywgMC4wMDM4MjgsIDAuMDAzODI5LCAwLjAwMzgzLCAwLjAwMzgyOSIsIFwKLSAgICAgICAgICAiMC4wMDM4MywgMC4wMDM4MzEsIDAuMDAzODM1LCAwLjAwMzgzNiwgMC4wMDM4MzcsIDAuMDAzODM3LCAwLjAwMzgzOCIsIFwKLSAgICAgICAgICAiMC4wMDM4NDUsIDAuMDAzODQ2LCAwLjAwMzg1LCAwLjAwMzg1MSwgMC4wMDM4NTIsIDAuMDAzODUyLCAwLjAwMzg1MiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzUxMywgMC4wMDM1MTQsIDAuMDAzNTE5LCAwLjAwMzUyMSwgMC4wMDM1MjEsIDAuMDAzNTIxLCAwLjAwMzUyMiIsIFwKLSAgICAgICAgICAiMC4wMDM0OTgsIDAuMDAzNDk5LCAwLjAwMzUwNCwgMC4wMDM1MDUsIDAuMDAzNTA3LCAwLjAwMzUwNywgMC4wMDM1MDciLCBcCi0gICAgICAgICAgIjAuMDAzNDk3LCAwLjAwMzQ5OCwgMC4wMDM1MDIsIDAuMDAzNTA0LCAwLjAwMzUwNSwgMC4wMDM1MDUsIDAuMDAzNTA1IiwgXAotICAgICAgICAgICIwLjAwMzUwMywgMC4wMDM1MDUsIDAuMDAzNTA5LCAwLjAwMzUxMSwgMC4wMDM1MTEsIDAuMDAzNTEyLCAwLjAwMzUxMiIsIFwKLSAgICAgICAgICAiMC4wMDM1MTksIDAuMDAzNTIsIDAuMDAzNTI0LCAwLjAwMzUyNiwgMC4wMDM1MjcsIDAuMDAzNTI3LCAwLjAwMzUyNyIsIFwKLSAgICAgICAgICAiMC4wMDM1MzQsIDAuMDAzNTM2LCAwLjAwMzU0LCAwLjAwMzU0MiwgMC4wMDM1NDIsIDAuMDAzNTQzLCAwLjAwMzU0MyIsIFwKLSAgICAgICAgICAiMC4wMDM1NTcsIDAuMDAzNTU4LCAwLjAwMzU2MywgMC4wMDM1NjUsIDAuMDAzNTY1LCAwLjAwMzU2NiwgMC4wMDM1NjYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0MjI4LCAwLjAwNDIyOSwgMC4wMDQyMzMsIDAuMDA0MjM0LCAwLjAwNDIzNSwgMC4wMDQyMzYsIDAuMDA0MjM3IiwgXAotICAgICAgICAgICIwLjAwNDIxMywgMC4wMDQyMTQsIDAuMDA0MjE4LCAwLjAwNDIyLCAwLjAwNDIyLCAwLjAwNDIyMSwgMC4wMDQyMjEiLCBcCi0gICAgICAgICAgIjAuMDA0MjAzLCAwLjAwNDIwNCwgMC4wMDQyMDgsIDAuMDA0MjEsIDAuMDA0MjExLCAwLjAwNDIxMSwgMC4wMDQyMSIsIFwKLSAgICAgICAgICAiMC4wMDQxOTUsIDAuMDA0MTk3LCAwLjAwNDIsIDAuMDA0MjAyLCAwLjAwNDIwMiwgMC4wMDQyMDQsIDAuMDA0MjA0IiwgXAotICAgICAgICAgICIwLjAwNDE5MiwgMC4wMDQxOTMsIDAuMDA0MTk3LCAwLjAwNDE5OSwgMC4wMDQxOTksIDAuMDA0MiwgMC4wMDQyIiwgXAotICAgICAgICAgICIwLjAwNDE5NCwgMC4wMDQxOTUsIDAuMDA0MiwgMC4wMDQyMDEsIDAuMDA0MjAyLCAwLjAwNDIwMiwgMC4wMDQyMDMiLCBcCi0gICAgICAgICAgIjAuMDA0MTk2LCAwLjAwNDE5NywgMC4wMDQyMDIsIDAuMDA0MjAzLCAwLjAwNDIwNCwgMC4wMDQyMDUsIDAuMDA0MjA1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHNjYWxhcikgewotICAgICAgICB2YWx1ZXMoIjAiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFFOKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMTUwOTI3OwotICAgIGZ1bmN0aW9uIDogIlFCSU5UIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBub25fdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJpc2luZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMDEyMDQsIDAuMjE1NDk3LCAwLjM0Mzk4OSwgMC41NTgyMzIsIDAuNzcyNSwgMS4yNzIzMiwgMS41NTc3NyIsIFwKLSAgICAgICAgICAiMC4yMTE0MzcsIDAuMjI1NzE4LCAwLjM1NDIyMSwgMC41Njg1MjIsIDAuNzgyNjMzLCAxLjI4MjMxLCAxLjU2ODE5IiwgXAotICAgICAgICAgICIwLjIyNDIzNywgMC4yMzg1MjYsIDAuMzY3MDIxLCAwLjU4MTIzNSwgMC43OTU1MTQsIDEuMjk1MzgsIDEuNTgwOSIsIFwKLSAgICAgICAgICAiMC4yMzYwNDksIDAuMjUwMzQsIDAuMzc4ODMzLCAwLjU5MzA4MiwgMC44MDczMjcsIDEuMzA3MTYsIDEuNTkyNzIiLCBcCi0gICAgICAgICAgIjAuMjQ2Njg1LCAwLjI2MDk3OSwgMC4zODk0ODcsIDAuNjAzNzI2LCAwLjgxNzk4NiwgMS4zMTc3OCwgMS42MDMxMyIsIFwKLSAgICAgICAgICAiMC4yNjExNDEsIDAuMjc1NDMzLCAwLjQwMzkyMywgMC42MTgxNzQsIDAuODMyNDIyLCAxLjMzMjI2LCAxLjYxNzc2IiwgXAotICAgICAgICAgICIwLjI3MjM3NSwgMC4yODY2NjYsIDAuNDE1MTYyLCAwLjYyOTQxLCAwLjg0MzY1NiwgMS4zNDM0OSwgMS42Mjg5NCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNTM5NjEsIDAuMTgzNTU5LCAwLjQ0NjMyNywgMC44ODQyOTMsIDEuMzI1MjIsIDIuMzQ5NzIsIDIuOTM0NyIsIFwKLSAgICAgICAgICAiMC4xNTM5OTYsIDAuMTgzMjkzLCAwLjQ0NjMyMiwgMC44ODYxNDUsIDEuMzIzMTUsIDIuMzQ5MTEsIDIuOTM1MjIiLCBcCi0gICAgICAgICAgIjAuMTU0MDg5LCAwLjE4MzU1MiwgMC40NDYzMDEsIDAuODg1OTg5LCAxLjMyNTE3LCAyLjM0NDIxLCAyLjkzNDkxIiwgXAotICAgICAgICAgICIwLjE1NDA4NCwgMC4xODM1NTYsIDAuNDQ2ODM4LCAwLjg4NDQ1NywgMS4zMjUxNiwgMi4zNDk2OCwgMi45MzQ5IiwgXAotICAgICAgICAgICIwLjE1Mzk1MiwgMC4xODM1NiwgMC40NDY5ODgsIDAuODg0NDY2LCAxLjMyNTIyLCAyLjM0OTYyLCAyLjkzMDQ2IiwgXAotICAgICAgICAgICIwLjE1NDA4NiwgMC4xODM1NiwgMC40NDY4MDgsIDAuODg0NDM4LCAxLjMyNTE2LCAyLjM0OTY5LCAyLjkzNDc5IiwgXAotICAgICAgICAgICIwLjE1NDA4NCwgMC4xODM1NTMsIDAuNDQ2MzY0LCAwLjg4NDUyNCwgMS4zMjUxNiwgMi4zNDk2NywgMi45MzQ2OCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNzkxMzIsIDAuMTkzMDgyLCAwLjMxODc1NywgMC41MjgxMzMsIDAuNzM3NTI5LCAxLjIyNjE0LCAxLjUwNTI4IiwgXAotICAgICAgICAgICIwLjE4OTMxNywgMC4yMDMyNzQsIDAuMzI4OTQ4LCAwLjUzODMyMiwgMC43NDc3MiwgMS4yMzYzMywgMS41MTU0MyIsIFwKLSAgICAgICAgICAiMC4yMDE5NzUsIDAuMjE1OTI2LCAwLjM0MTU5NywgMC41NTA5NzIsIDAuNzYwMzY5LCAxLjI0ODk4LCAxLjUyODE0IiwgXAotICAgICAgICAgICIwLjIxMzc5NCwgMC4yMjc3NDUsIDAuMzUzNDE5LCAwLjU2Mjc5MiwgMC43NzIxODgsIDEuMjYwODEsIDEuNTQwMDIiLCBcCi0gICAgICAgICAgIjAuMjI0MDIsIDAuMjM3OTgsIDAuMzYzNjU2LCAwLjU3MzAyOSwgMC43ODI0NTMsIDEuMjcxMDUsIDEuNTUwMjEiLCBcCi0gICAgICAgICAgIjAuMjM4ODIzLCAwLjI1MjgsIDAuMzc4NDYyLCAwLjU4NzgzMSwgMC43OTcyMjUsIDEuMjg1ODgsIDEuNTY0OTkiLCBcCi0gICAgICAgICAgIjAuMjQ5Nzc0LCAwLjI2Mzc0LCAwLjM4OTQxMywgMC41OTg4MDgsIDAuODA4MTU3LCAxLjI5Njg1LCAxLjU3NjA3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE0NzI0OSwgMC4xNzUzNzEsIDAuNDI3MjA3LCAwLjg0NjcwNywgMS4yNjY0MiwgMi4yNDU5NCwgMi44MDUxNiIsIFwKLSAgICAgICAgICAiMC4xNDcyMjMsIDAuMTc1MzAxLCAwLjQyNzE2NSwgMC44NDY2OTgsIDEuMjY2MzksIDIuMjQ1ODMsIDIuODA0OTgiLCBcCi0gICAgICAgICAgIjAuMTQ3MTI1LCAwLjE3NTE1OSwgMC40MjcxNDksIDAuODQ2Njc1LCAxLjI2NjM5LCAyLjI0NTg2LCAyLjgwNTIxIiwgXAotICAgICAgICAgICIwLjE0NzEyMywgMC4xNzUzMiwgMC40MjcxNjYsIDAuODQ2NjksIDEuMjY2NDEsIDIuMjQ1OTQsIDIuODA1NjciLCBcCi0gICAgICAgICAgIjAuMTQ3MjQsIDAuMTc1MzI5LCAwLjQyNzE4NCwgMC44NDY3MjMsIDEuMjY2NDEsIDIuMjQ1OTUsIDIuODA1MzEiLCBcCi0gICAgICAgICAgIjAuMTQ3Mjg4LCAwLjE3NTM3OCwgMC40MjYzNDgsIDAuODQ2NjcxLCAxLjI2NjM2LCAyLjI0NjA4LCAyLjgwMDQzIiwgXAotICAgICAgICAgICIwLjE0NzIzMywgMC4xNzUwODMsIDAuNDI3MTgzLCAwLjg0NTM5NCwgMS4yNjYyNCwgMi4yNDYxNSwgMi43OTkzMSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogY2xlYXI7Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE3NDYxNSwgMC4xODg1OTMsIDAuMzE0MjMyLCAwLjUyMzYxLCAwLjczMzA0NiwgMS4yMjE1OSwgMS41MDA4IiwgXAotICAgICAgICAgICIwLjE4NDM3NywgMC4xOTgzNDYsIDAuMzI0MDA5LCAwLjUzMzM5NywgMC43NDI3NTUsIDEuMjMxMzcsIDEuNTEwNTYiLCBcCi0gICAgICAgICAgIjAuMTk2NzY4LCAwLjIxMDczNCwgMC4zMzYzODQsIDAuNTQ1NzU3LCAwLjc1NTE5NSwgMS4yNDM3NCwgMS41MjI5NSIsIFwKLSAgICAgICAgICAiMC4yMDg3NjEsIDAuMjIyNzI2LCAwLjM0ODM5OCwgMC41NTc3NTUsIDAuNzY3MTg5LCAxLjI1NTcyLCAxLjUzNDkzIiwgXAotICAgICAgICAgICIwLjIyMDAxMSwgMC4yMzM5NzYsIDAuMzU5NjMyLCAwLjU2OTAyMiwgMC43Nzg0MzYsIDEuMjY2OTcsIDEuNTQ2MTgiLCBcCi0gICAgICAgICAgIjAuMjM1NjA1LCAwLjI0OTU4OSwgMC4zNzUyNDQsIDAuNTg0NjIsIDAuNzk0MDI0LCAxLjI4MjQsIDEuNTYxNzQiLCBcCi0gICAgICAgICAgIjAuMjQ4NzQ2LCAwLjI2MjcyMiwgMC4zODgzNzcsIDAuNTk3NzYyLCAwLjgwNzE3NiwgMS4yOTU3LCAxLjU3NDkxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE0NzI5NSwgMC4xNzU0MDMsIDAuNDI3MTUsIDAuODQ2OTgzLCAxLjI2Njk1LCAyLjI0Mjc0LCAyLjgwMTM3IiwgXAotICAgICAgICAgICIwLjE0NzM2LCAwLjE3NTM4MSwgMC40MjcxNjYsIDAuODQ2OTc2LCAxLjI2Njk0LCAyLjI0NDkyLCAyLjgwNDg1IiwgXAotICAgICAgICAgICIwLjE0NzI5MywgMC4xNzUzNzIsIDAuNDI3MTU1LCAwLjg0Njk3LCAxLjI2NjkzLCAyLjI0MTU5LCAyLjgwNTE1IiwgXAotICAgICAgICAgICIwLjE0NzI1MSwgMC4xNzUzODksIDAuNDI3MTg5LCAwLjg0Njg1MiwgMS4yNjY2NiwgMi4yNDE2LCAyLjgwMDY0IiwgXAotICAgICAgICAgICIwLjE0NzIyMywgMC4xNzUzNzcsIDAuNDI3MTQ4LCAwLjg0NjgzLCAxLjI2NjYzLCAyLjI0MTQ1LCAyLjgwNjM2IiwgXAotICAgICAgICAgICIwLjE0NzI4NSwgMC4xNzUxNzEsIDAuNDI3MTQ5LCAwLjg0Njc5OCwgMS4yNjY1MiwgMi4yNDQ4OSwgMi44MDE5IiwgXAotICAgICAgICAgICIwLjE0NzM5NywgMC4xNzUzNzcsIDAuNDI3MDg0LCAwLjg0NjcyNCwgMS4yNjY1NiwgMi4yNDI3LCAyLjgwMTY2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzUxMywgMC4wMDM1MTQsIDAuMDAzNTE5LCAwLjAwMzUyMSwgMC4wMDM1MjEsIDAuMDAzNTIxLCAwLjAwMzUyMiIsIFwKLSAgICAgICAgICAiMC4wMDM0OTgsIDAuMDAzNDk5LCAwLjAwMzUwNCwgMC4wMDM1MDUsIDAuMDAzNTA3LCAwLjAwMzUwNywgMC4wMDM1MDciLCBcCi0gICAgICAgICAgIjAuMDAzNDk3LCAwLjAwMzQ5OCwgMC4wMDM1MDIsIDAuMDAzNTA0LCAwLjAwMzUwNSwgMC4wMDM1MDUsIDAuMDAzNTA1IiwgXAotICAgICAgICAgICIwLjAwMzUwMywgMC4wMDM1MDUsIDAuMDAzNTA5LCAwLjAwMzUxMSwgMC4wMDM1MTEsIDAuMDAzNTEyLCAwLjAwMzUxMiIsIFwKLSAgICAgICAgICAiMC4wMDM1MTksIDAuMDAzNTIsIDAuMDAzNTI0LCAwLjAwMzUyNiwgMC4wMDM1MjcsIDAuMDAzNTI3LCAwLjAwMzUyNyIsIFwKLSAgICAgICAgICAiMC4wMDM1MzQsIDAuMDAzNTM2LCAwLjAwMzU0LCAwLjAwMzU0MiwgMC4wMDM1NDIsIDAuMDAzNTQzLCAwLjAwMzU0MyIsIFwKLSAgICAgICAgICAiMC4wMDM1NTcsIDAuMDAzNTU4LCAwLjAwMzU2MywgMC4wMDM1NjUsIDAuMDAzNTY1LCAwLjAwMzU2NiwgMC4wMDM1NjYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDM4MzYsIDAuMDAzODM3LCAwLjAwMzg0MSwgMC4wMDM4NDMsIDAuMDAzODQzLCAwLjAwMzg0NCwgMC4wMDM4NDQiLCBcCi0gICAgICAgICAgIjAuMDAzODIxLCAwLjAwMzgyMiwgMC4wMDM4MjYsIDAuMDAzODI3LCAwLjAwMzgyOCwgMC4wMDM4MjgsIDAuMDAzODI4IiwgXAotICAgICAgICAgICIwLjAwMzgxMiwgMC4wMDM4MTMsIDAuMDAzODE3LCAwLjAwMzgxOCwgMC4wMDM4MTksIDAuMDAzODE5LCAwLjAwMzgxOSIsIFwKLSAgICAgICAgICAiMC4wMDM4MTIsIDAuMDAzODEzLCAwLjAwMzgxNywgMC4wMDM4MTksIDAuMDAzODE5LCAwLjAwMzgxOSwgMC4wMDM4MiIsIFwKLSAgICAgICAgICAiMC4wMDM4MjIsIDAuMDAzODIzLCAwLjAwMzgyNywgMC4wMDM4MjgsIDAuMDAzODI5LCAwLjAwMzgzLCAwLjAwMzgyOSIsIFwKLSAgICAgICAgICAiMC4wMDM4MywgMC4wMDM4MzEsIDAuMDAzODM1LCAwLjAwMzgzNiwgMC4wMDM4MzcsIDAuMDAzODM3LCAwLjAwMzgzOCIsIFwKLSAgICAgICAgICAiMC4wMDM4NDUsIDAuMDAzODQ2LCAwLjAwMzg1LCAwLjAwMzg1MSwgMC4wMDM4NTIsIDAuMDAzODUyLCAwLjAwMzg1MiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQyMjgsIDAuMDA0MjI5LCAwLjAwNDIzMywgMC4wMDQyMzQsIDAuMDA0MjM1LCAwLjAwNDIzNiwgMC4wMDQyMzciLCBcCi0gICAgICAgICAgIjAuMDA0MjEzLCAwLjAwNDIxNCwgMC4wMDQyMTgsIDAuMDA0MjIsIDAuMDA0MjIsIDAuMDA0MjIxLCAwLjAwNDIyMSIsIFwKLSAgICAgICAgICAiMC4wMDQyMDMsIDAuMDA0MjA0LCAwLjAwNDIwOCwgMC4wMDQyMSwgMC4wMDQyMTEsIDAuMDA0MjExLCAwLjAwNDIxIiwgXAotICAgICAgICAgICIwLjAwNDE5NSwgMC4wMDQxOTcsIDAuMDA0MiwgMC4wMDQyMDIsIDAuMDA0MjAyLCAwLjAwNDIwNCwgMC4wMDQyMDQiLCBcCi0gICAgICAgICAgIjAuMDA0MTkyLCAwLjAwNDE5MywgMC4wMDQxOTcsIDAuMDA0MTk5LCAwLjAwNDE5OSwgMC4wMDQyLCAwLjAwNDIiLCBcCi0gICAgICAgICAgIjAuMDA0MTk0LCAwLjAwNDE5NSwgMC4wMDQyLCAwLjAwNDIwMSwgMC4wMDQyMDIsIDAuMDA0MjAyLCAwLjAwNDIwMyIsIFwKLSAgICAgICAgICAiMC4wMDQxOTYsIDAuMDA0MTk3LCAwLjAwNDIwMiwgMC4wMDQyMDMsIDAuMDA0MjA0LCAwLjAwNDIwNSwgMC4wMDQyMDUiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfcG93ZXIoc2NhbGFyKSB7Ci0gICAgICAgIHZhbHVlcygiMCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oU0UpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTM2OTYxOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTM2ODk7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxMzY5NjE7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA0MzgxLCAwLjAwNDM1OCwgMC4wMDQzNjUsIDAuMDA0MzY3LCAwLjAwNDM4NCwgMC4wMDQ0MDYsIDAuMDA0NDMxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA1NzY5LCAwLjAwNTczMywgMC4wMDU3MzgsIDAuMDA1NzM3LCAwLjAwNTc0NywgMC4wMDU3ODYsIDAuMDA1ODI0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlNOIjsKLSAgICAgIHNkZl9jb25kIDogIlNOID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAyNSwgLTAuMDIsIC0wLjAwNzUsIDAuMDA1LCAwLjAxMTI1LCAwLjAyMTI1LCAwLjAzIiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAsIDAuMDE2MjUsIDAuMDI1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDM3NSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAuMDAzNzUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNSwgLTAuMDM3NSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDAyNSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDYxMjUsIC0wLjA1NjI1LCAtMC4wNDM3NSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDE1LCAwIiwgXAotICAgICAgICAgICItMC4wNzEyNSwgLTAuMDY2MjUsIC0wLjA1Mzc1LCAtMC4wNDEyNSwgLTAuMDM1LCAtMC4wMjUsIC0wLjAxIiwgXAotICAgICAgICAgICItMC4wOCwgLTAuMDc1LCAtMC4wNjI1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjAyNzUsIC0wLjAxODc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDEyNSwgLTAuMDAxMjUsIDAuMDA1LCAwLjAxNzUsIDAuMDIzNzUsIDAuMDQsIDAuMDQ4NzUiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTI1LCAwLCAwLjAwNjI1LCAwLjAxODc1LCAwLjAyODc1LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMjUsIC0wLjAxMjUsIDAsIDAuMDA2MjUsIDAuMDE2MjUsIDAuMDI1IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLjAxLCAwLjAxODc1IiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA0Mzc1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDAyNSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDY1LCAtMC4wNiwgLTAuMDQ3NSwgLTAuMDQxMjUsIC0wLjAyODc1LCAtMC4wMTg3NSwgLTAuMDEiLCBcCi0gICAgICAgICAgIi0wLjA4LCAtMC4wNjg3NSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDI3NSwgLTAuMDE4NzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlNOIjsKLSAgICAgIHNkZl9jb25kIDogIlNOID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEsIDAuMDg4NzUsIDAuMDc2MjUsIDAuMDYzNzUsIDAuMDU3NSwgMC4wNDEyNSwgMC4wMzI1IiwgXAotICAgICAgICAgICIwLjExMTI1LCAwLjEsIDAuMDg3NSwgMC4wNzUsIDAuMDYyNSwgMC4wNTI1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjEyMzc1LCAwLjExMjUsIDAuMSwgMC4wODc1LCAwLjA3NSwgMC4wNTg3NSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiMC4xMywgMC4xMTg3NSwgMC4xMDYyNSwgMC4wOTM3NSwgMC4wODEyNSwgMC4wNzEyNSwgMC4wNjI1IiwgXAotICAgICAgICAgICIwLjEzNjI1LCAwLjEyNSwgMC4xMTI1LCAwLjEsIDAuMDkzNzUsIDAuMDgzNzUsIDAuMDc1IiwgXAotICAgICAgICAgICIwLjE0NjI1LCAwLjEzNSwgMC4xMjI1LCAwLjExNjI1LCAwLjExLCAwLjEsIDAuMDkxMjUiLCBcCi0gICAgICAgICAgIjAuMTYxMjUsIDAuMTUsIDAuMTM3NSwgMC4xMzEyNSwgMC4xMjUsIDAuMTE1LCAwLjEwNjI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMSwgMC4wODg3NSwgMC4wNzYyNSwgMC4wNywgMC4wNjM3NSwgMC4wNTM3NSwgMC4wNDUiLCBcCi0gICAgICAgICAgIjAuMTExMjUsIDAuMSwgMC4wODc1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNjUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIjAuMTE3NSwgMC4xMDYyNSwgMC4xLCAwLjA4NzUsIDAuMDgxMjUsIDAuMDcxMjUsIDAuMDY4NzUiLCBcCi0gICAgICAgICAgIjAuMTMsIDAuMTE4NzUsIDAuMTA2MjUsIDAuMSwgMC4wODc1LCAwLjA4Mzc1LCAwLjA3NSIsIFwKLSAgICAgICAgICAiMC4xMzYyNSwgMC4xMjUsIDAuMTEyNSwgMC4xMDYyNSwgMC4xLCAwLjA5LCAwLjA4MTI1IiwgXAotICAgICAgICAgICIwLjE0NjI1LCAwLjEzNSwgMC4xMjI1LCAwLjExLCAwLjEwMzc1LCAwLjA5Mzc1LCAwLjA5MTI1IiwgXAotICAgICAgICAgICIwLjE2MTI1LCAwLjE1LCAwLjEzNzUsIDAuMTI1LCAwLjExMjUsIDAuMTAyNSwgMC4wOTM3NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oU0kpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY4OTQzNzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2ODc2NzQ7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjg5NDM3OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzE5MSwgMC4wMDMxNzUsIDAuMDAzMTY1LCAwLjAwMzE2LCAwLjAwMzE1NywgMC4wMDMxNTgsIDAuMDAzMTY2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA0NzU4LCAwLjAwNDc0OSwgMC4wMDQ3NDMsIDAuMDA0NzQxLCAwLjAwNDc0MSwgMC4wMDQ3NDEsIDAuMDA0NzQ2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlNFJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIlNFX0VRXzFfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wNTYyNSwgLTAuMDQ1LCAtMC4wMzg3NSwgLTAuMDMyNSwgLTAuMDI2MjUsIC0wLjAxNjI1LCAtMC4wMTM3NSIsIFwKLSAgICAgICAgICAiLTAuMDYxMjUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAyNzUsIC0wLjAxODc1IiwgXAotICAgICAgICAgICItMC4wNzM3NSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDQsIC0wLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wODYyNSwgLTAuMDc1LCAtMC4wNjg3NSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA1MjUsIC0wLjA0Mzc1IiwgXAotICAgICAgICAgICItMC4wOTI1LCAtMC4wODc1LCAtMC4wODEyNSwgLTAuMDc1LCAtMC4wNjg3NSwgLTAuMDU4NzUsIC0wLjA1NjI1IiwgXAotICAgICAgICAgICItMC4xMDg3NSwgLTAuMTAzNzUsIC0wLjA5NzUsIC0wLjA5MTI1LCAtMC4wODUsIC0wLjA3NSwgLTAuMDcyNSIsIFwKLSAgICAgICAgICAiLTAuMTIzNzUsIC0wLjExMjUsIC0wLjEwNjI1LCAtMC4xLCAtMC4wOTM3NSwgLTAuMDksIC0wLjA4MTI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDE4NzUsIC0wLjAwNzUsIC0wLjAwMTI1LCAwLjAxMTI1LCAwLjAxNzUsIDAuMDMzNzUsIDAuMDQyNSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAxODc1LCAtMC4wMDYyNSwgMCwgMC4wMTI1LCAwLjAyMjUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLCAwLjAxNjI1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjAzNzUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLjAwMzc1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjA1NSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAwMjUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA3MTI1LCAtMC4wNiwgLTAuMDQ3NSwgLTAuMDM1LCAtMC4wMjg3NSwgLTAuMDE4NzUsIC0wLjAxIiwgXAotICAgICAgICAgICItMC4wOCwgLTAuMDY4NzUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDM3NSwgLTAuMDI3NSwgLTAuMDE4NzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlNFJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIlNFX0VRXzFfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODc1LCAwLjA4MjUsIDAuMDcsIDAuMDU3NSwgMC4wNTEyNSwgMC4wNDc1LCAwLjAzODc1IiwgXAotICAgICAgICAgICIwLjA5ODc1LCAwLjA4NzUsIDAuMDc1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDUyNSwgMC4wNSIsIFwKLSAgICAgICAgICAiMC4xMTEyNSwgMC4xLCAwLjA4NzUsIDAuMDgxMjUsIDAuMDc1LCAwLjA2NSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiMC4xMTc1LCAwLjExMjUsIDAuMSwgMC4wODc1LCAwLjA4MTI1LCAwLjA3NzUsIDAuMDY4NzUiLCBcCi0gICAgICAgICAgIjAuMTMsIDAuMTE4NzUsIDAuMTA2MjUsIDAuMSwgMC4wOTM3NSwgMC4wODM3NSwgMC4wODEyNSIsIFwKLSAgICAgICAgICAiMC4xNDYyNSwgMC4xMzUsIDAuMTIyNSwgMC4xMTYyNSwgMC4xMSwgMC4xLCAwLjA5NzUiLCBcCi0gICAgICAgICAgIjAuMTYxMjUsIDAuMTUsIDAuMTM3NSwgMC4xMzEyNSwgMC4xMjUsIDAuMTE1LCAwLjEwNjI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDkzNzUsIDAuMDgyNSwgMC4wNywgMC4wNTc1LCAwLjA0NSwgMC4wMzUsIDAuMDIiLCBcCi0gICAgICAgICAgIjAuMTA1LCAwLjA5Mzc1LCAwLjA4MTI1LCAwLjA2ODc1LCAwLjA1NjI1LCAwLjA0LCAwLjAzMTI1IiwgXAotICAgICAgICAgICIwLjExMTI1LCAwLjEsIDAuMDg3NSwgMC4wNzUsIDAuMDY4NzUsIDAuMDUyNSwgMC4wMzc1IiwgXAotICAgICAgICAgICIwLjEyMzc1LCAwLjExMjUsIDAuMSwgMC4wODc1LCAwLjA3NSwgMC4wNTg3NSwgMC4wNSIsIFwKLSAgICAgICAgICAiMC4xMywgMC4xMTg3NSwgMC4xMDYyNSwgMC4wOTM3NSwgMC4wODc1LCAwLjA3MTI1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICIwLjE0NjI1LCAwLjEzNSwgMC4xMjI1LCAwLjExLCAwLjA5NzUsIDAuMDgxMjUsIDAuMDcyNSIsIFwKLSAgICAgICAgICAiMC4xNTUsIDAuMTQzNzUsIDAuMTMxMjUsIDAuMTE4NzUsIDAuMTEyNSwgMC4wOTYyNSwgMC4wODEyNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oU04pICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTQzNjQzOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTM0NzA5OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTQzNjQzOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDQ1MywgMC4wMDA0NTIsIDAuMDAwNDUyLCAwLjAwMDQ1MiwgMC4wMDA0NTIsIDAuMDAwNDUyLCAwLjAwMDQ1MiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDQ1NywgMC4wMDA0NTQsIDAuMDAwNDU0LCAwLjAwMDQ1NCwgMC4wMDA0NTQsIDAuMDAwNDU0LCAwLjAwMDQ1NCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQmIVNFJiFTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fU0VfRVFfMF9BTl9TSV9FUV8wID09IDEnYjEiOwotICAgICAgZmFsbF9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMTc0NjE0LCAwLjE4NDM3NywgMC4xOTY3NjcsIDAuMjA4NzYxLCAwLjIyMDAxMSwgMC4yMzU2MDUsIDAuMjQ4NzQ1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogcmVjb3ZlcnlfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRCYhU0UmIVNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9TRV9FUV8wX0FOX1NJX0VRXzAgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQocmVjb3ZlcnlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEyNSwgMC4wMDEyNSwgLTAuMDExMjUsIC0wLjAyMzc1LCAtMC4wMzYyNSwgLTAuMDUyNSwgLTAuMDYxMjUiLCBcCi0gICAgICAgICAgIjAuMDIzNzUsIDAuMDEyNSwgLTAuMDA2MjUsIC0wLjAxODc1LCAtMC4wMjUsIC0wLjA0MTI1LCAtMC4wNTYyNSIsIFwKLSAgICAgICAgICAiMC4wMywgMC4wMTg3NSwgMC4wMDYyNSwgLTAuMDA2MjUsIC0wLjAxODc1LCAtMC4wMzUsIC0wLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjA0MjUsIDAuMDMxMjUsIDAuMDE4NzUsIDAuMDA2MjUsIC0wLjAwNjI1LCAtMC4wMjI1LCAtMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4wNTUsIDAuMDQzNzUsIDAuMDI1LCAwLjAxMjUsIDAuMDA2MjUsIC0wLjAxLCAtMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMDcxMjUsIDAuMDYsIDAuMDQxMjUsIDAuMDI4NzUsIDAuMDIyNSwgMC4wMDYyNSwgLTAuMDA4NzUiLCBcCi0gICAgICAgICAgIjAuMDgsIDAuMDY4NzUsIDAuMDU2MjUsIDAuMDQzNzUsIDAuMDMxMjUsIDAuMDIxMjUsIDAuMDA2MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiByZW1vdmFsX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUQmIVNFJiFTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fU0VfRVFfMF9BTl9TSV9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHJlbW92YWxfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDMxMjUsIDAuMDM2MjUsIDAuMDQ4NzUsIDAuMDYxMjUsIDAuMDczNzUsIDAuMDksIDAuMDk4NzUiLCBcCi0gICAgICAgICAgIjAuMDIsIDAuMDMxMjUsIDAuMDQzNzUsIDAuMDU2MjUsIDAuMDYyNSwgMC4wNzg3NSwgMC4wOTM3NSIsIFwKLSAgICAgICAgICAiMC4wMDc1LCAwLjAxODc1LCAwLjAzMTI1LCAwLjA0Mzc1LCAwLjA1NjI1LCAwLjA3MjUsIDAuMDgxMjUiLCBcCi0gICAgICAgICAgIjAuMDAxMjUsIDAuMDEyNSwgMC4wMjUsIDAuMDMxMjUsIDAuMDQzNzUsIDAuMDYsIDAuMDY4NzUiLCBcCi0gICAgICAgICAgIi0wLjAxMTI1LCAwLCAwLjAxMjUsIDAuMDI1LCAwLjAzNzUsIDAuMDQ3NSwgMC4wNjI1IiwgXAotICAgICAgICAgICItMC4wMjEyNSwgLTAuMDEsIDAuMDAyNSwgMC4wMDg3NSwgMC4wMjEyNSwgMC4wMzc1LCAwLjA0NjI1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDI1LCAtMC4wMTI1LCAwLCAwLjAxMjUsIDAuMDIyNSwgMC4wMzc1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IFNERkZUUlgxICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChTREZGVFJYMSkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjQyNjkxNzsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBmZiAoTjMwLFFCSU5UKSB7Ci0gICAgbmV4dF9zdGF0ZSA6ICIoKFNFIFNJKSArICghU0UgKEQgUk4pKSkiOwotICAgIGNsb2NrZWRfb24gOiAiQ0siOwotICB9Ci0gIHBpbihDSykgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNTgxNzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA1ODEyNjQ7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNTgxNzsKLSAgICBjbG9jayA6IHRydWU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyODY2LCAwLjAwMjgzOSwgMC4wMDI4MjQsIDAuMDAyODI5LCAwLjAwMjgzOSwgMC4wMDI4NjMsIDAuMDAyODgyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA1ODg2LCAwLjAwNTg2MywgMC4wMDU4NjEsIDAuMDA1ODY3LCAwLjAwNTg5LCAwLjAwNTkyOCwgMC4wMDU5NzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFEJiFSTiYhU0UmIVNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9STl9FUV8wX0FOX1NFX0VRXzBfQU5fU0lfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjE2MzU2LCAwLjE3Mzc4NSwgMC4xODY1MDksIDAuMTk4MjM3LCAwLjIwODY2NSwgMC4yMjI4OCwgMC4yMzM3NjQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjA5MDU4NiwgMC4xMDA1ODEsIDAuMTEyODMsIDAuMTIzOTk1LCAwLjEzMzc2NywgMC4xNDY3NjgsIDAuMTU2ODA4Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihEKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2MjA4OTc7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjIwNjI1OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDYyMDg5NzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDMwNDIsIDAuMDAzMDI0LCAwLjAwMzAxOCwgMC4wMDMwMTYsIDAuMDAzMDIzLCAwLjAwMzAzOSwgMC4wMDMwNTEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDU0MjksIDAuMDA1NDE5LCAwLjAwNTQxMywgMC4wMDU0MTIsIDAuMDA1NDE2LCAwLjAwNTQyOCwgMC4wMDU0NDYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiUk4mIVNFIjsKLSAgICAgIHNkZl9jb25kIDogIlJOX0VRXzFfQU5fU0VfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wODc1LCAtMC4wODI1LCAtMC4wNywgLTAuMDcsIC0wLjA2Mzc1LCAtMC4wNiwgLTAuMDUxMjUiLCBcCi0gICAgICAgICAgIi0wLjA5MjUsIC0wLjA4NzUsIC0wLjA4MTI1LCAtMC4wNzUsIC0wLjA3NSwgLTAuMDY1LCAtMC4wNjI1IiwgXAotICAgICAgICAgICItMC4xMDUsIC0wLjEsIC0wLjA5Mzc1LCAtMC4wODc1LCAtMC4wODEyNSwgLTAuMDc3NSwgLTAuMDc1IiwgXAotICAgICAgICAgICItMC4xMTc1LCAtMC4xMTI1LCAtMC4xMDYyNSwgLTAuMSwgLTAuMDkzNzUsIC0wLjA5LCAtMC4wODEyNSIsIFwKLSAgICAgICAgICAiLTAuMTMsIC0wLjEyNSwgLTAuMTE4NzUsIC0wLjExMjUsIC0wLjEwNjI1LCAtMC4xMDI1LCAtMC4wOTM3NSIsIFwKLSAgICAgICAgICAiLTAuMTQ2MjUsIC0wLjE0MTI1LCAtMC4xMzUsIC0wLjEyODc1LCAtMC4xMjg3NSwgLTAuMTE4NzUsIC0wLjExNjI1IiwgXAotICAgICAgICAgICItMC4xNjEyNSwgLTAuMTU2MjUsIC0wLjE1LCAtMC4xNDM3NSwgLTAuMTQzNzUsIC0wLjEzMzc1LCAtMC4xMzEyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAxODc1LCAtMC4wMDc1LCAwLjAwNSwgMC4wMTEyNSwgMC4wMTc1LCAwLjAzMzc1LCAwLjAzNjI1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLCAwLjAxMjUsIDAuMDIyNSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgMCwgMC4wMSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjA0Mzc1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwMjUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA2MTI1LCAtMC4wNSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDA4NzUsIDAiLCBcCi0gICAgICAgICAgIi0wLjA3MTI1LCAtMC4wNjYyNSwgLTAuMDUzNzUsIC0wLjA0NzUsIC0wLjAzNSwgLTAuMDI1LCAtMC4wMTYyNSIsIFwKLSAgICAgICAgICAiLTAuMDgsIC0wLjA3NSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNCwgLTAuMDMxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlJOJiFTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJSTl9FUV8xX0FOX1NFX0VRXzAgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTI1LCAwLjEyLCAwLjEwNzUsIDAuMTAxMjUsIDAuMDk1LCAwLjA4NSwgMC4wNzYyNSIsIFwKLSAgICAgICAgICAiMC4xMzYyNSwgMC4xMjUsIDAuMTEyNSwgMC4xMDYyNSwgMC4xLCAwLjA5LCAwLjA4NzUiLCBcCi0gICAgICAgICAgIjAuMTQ4NzUsIDAuMTM3NSwgMC4xMjUsIDAuMTE4NzUsIDAuMTEyNSwgMC4xMDI1LCAwLjEiLCBcCi0gICAgICAgICAgIjAuMTYxMjUsIDAuMTUsIDAuMTM3NSwgMC4xMzEyNSwgMC4xMjUsIDAuMTE1LCAwLjExMjUiLCBcCi0gICAgICAgICAgIjAuMTczNzUsIDAuMTYyNSwgMC4xNSwgMC4xNDM3NSwgMC4xMzc1LCAwLjEyNzUsIDAuMTI1IiwgXAotICAgICAgICAgICIwLjE5LCAwLjE3ODc1LCAwLjE2NjI1LCAwLjE2LCAwLjE1Mzc1LCAwLjE0Mzc1LCAwLjE0MTI1IiwgXAotICAgICAgICAgICIwLjIwNSwgMC4xOTM3NSwgMC4xODEyNSwgMC4xNzUsIDAuMTY4NzUsIDAuMTU4NzUsIDAuMTU2MjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjg3NSwgMC4wNTc1LCAwLjA0NSwgMC4wMzI1LCAwLjAyLCAwLjAxLCAtMC4wMDUiLCBcCi0gICAgICAgICAgIjAuMDczNzUsIDAuMDY4NzUsIDAuMDUsIDAuMDQzNzUsIDAuMDMxMjUsIDAuMDE1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICIwLjA4NjI1LCAwLjA3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA0Mzc1LCAwLjAyNzUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMDk4NzUsIDAuMDg3NSwgMC4wNzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNCwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4xMTEyNSwgMC4xLCAwLjA4NzUsIDAuMDc1LCAwLjA2ODc1LCAwLjA1MjUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMTI3NSwgMC4xMTYyNSwgMC4xMDM3NSwgMC4wOTEyNSwgMC4wNzg3NSwgMC4wNjg3NSwgMC4wNiIsIFwKLSAgICAgICAgICAiMC4xNDI1LCAwLjEzMTI1LCAwLjExODc1LCAwLjEwNjI1LCAwLjA5Mzc1LCAwLjA3NzUsIDAuMDY4NzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFEpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4yNjE3ODc7Ci0gICAgZnVuY3Rpb24gOiAiTjMwIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBub25fdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJpc2luZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMzU5MTUsIDAuMTYwNTMzLCAwLjI5OTY3NSwgMC40MjIwNjcsIDAuNTg1Nzg1LCAwLjkxMzA1LCAxLjExNzYyIiwgXAotICAgICAgICAgICIwLjE0NjA0NiwgMC4xNzA2NzMsIDAuMzA5ODI2LCAwLjQzMjE4MSwgMC41OTU3NjUsIDAuOTIzMjA0LCAxLjEyNzc0IiwgXAotICAgICAgICAgICIwLjE1ODY4NiwgMC4xODMzMDcsIDAuMzIyMTA5LCAwLjQ0NDgwOCwgMC42MDg0MTMsIDAuOTM1NDEsIDEuMTQwNDQiLCBcCi0gICAgICAgICAgIjAuMTcwMzE3LCAwLjE5NDk0MiwgMC4zMzM3NTYsIDAuNDU2NDM2LCAwLjYyMDA0OCwgMC45NDcwNjgsIDEuMTUyMDgiLCBcCi0gICAgICAgICAgIjAuMTgwMTg5LCAwLjIwNDg1MiwgMC4zNDM2NzksIDAuNDY2MzYsIDAuNjI5OTQxLCAwLjk1Njk4MSwgMS4xNjE5NiIsIFwKLSAgICAgICAgICAiMC4xOTQ2ODYsIDAuMjE5MzI2LCAwLjM1ODQ5MSwgMC40ODA4MzcsIDAuNjQ0NjE2LCAwLjk3MTg0MywgMS4xNzYyOCIsIFwKLSAgICAgICAgICAiMC4yMDUzMDgsIDAuMjI5OTQzLCAwLjM2OTM0MywgMC40OTE1MTksIDAuNjU1NTMsIDAuOTgxOTgsIDEuMTg3MjIiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk0NTI4LCAwLjE0MzYwMSwgMC40Mjg4NjIsIDAuNjgwNTc1LCAxLjAxODc0LCAxLjY5MzQyLCAyLjExNTEzIiwgXAotICAgICAgICAgICIwLjA5NDQ2NCwgMC4xNDM2LCAwLjQyODg2MywgMC42ODA1NjYsIDEuMDE4MDgsIDEuNjkzNDIsIDIuMTE1MDgiLCBcCi0gICAgICAgICAgIjAuMDk0MTcxLCAwLjE0MzQxNywgMC40MjgyOTMsIDAuNjgwNjE2LCAxLjAxODA3LCAxLjY5MTE2LCAyLjExNTEyIiwgXAotICAgICAgICAgICIwLjA5NDE1LCAwLjE0MzQyMiwgMC40MjgyNTEsIDAuNjgwNjMzLCAxLjAxODA3LCAxLjY5MTI2LCAyLjExNTEyIiwgXAotICAgICAgICAgICIwLjA5NDUzLCAwLjE0MzU2MiwgMC40MjgyMzMsIDAuNjgwNTg2LCAxLjAxODA2LCAxLjY5MTI2LCAyLjExNTA5IiwgXAotICAgICAgICAgICIwLjA5NDU0NSwgMC4xNDM1ODksIDAuNDI4ODYsIDAuNjgwNTcsIDEuMDE4NjcsIDEuNjkzMzYsIDIuMTE0OTgiLCBcCi0gICAgICAgICAgIjAuMDkzODg1LCAwLjE0MzM0MSwgMC40Mjc4ODQsIDAuNjgxMDkxLCAxLjAxNjg1LCAxLjY5MDY5LCAyLjExNTI0Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE1MDg3MywgMC4xNzU3MjMsIDAuMzE2MjkzLCAwLjQzOTg5NywgMC42MDQ2MzksIDAuOTM0NTM1LCAxLjE0MDY3IiwgXAotICAgICAgICAgICIwLjE2MTEwNywgMC4xODYwMzcsIDAuMzI2MjMxLCAwLjQ1MDAyMSwgMC42MTQ5NTQsIDAuOTQ0NzM1LCAxLjE1MDg0IiwgXAotICAgICAgICAgICIwLjE3MzgxNywgMC4xOTg3NzMsIDAuMzM4OTkzLCAwLjQ2MjgyOSwgMC42Mjc2OTksIDAuOTU3NDgsIDEuMTYzNiIsIFwKLSAgICAgICAgICAiMC4xODU1NDYsIDAuMjEwNTQ5LCAwLjM1MDk0NywgMC40NzQzOCwgMC42Mzk2MDMsIDAuOTY5MTg0LCAxLjE3NTI5IiwgXAotICAgICAgICAgICIwLjE5NTk3NSwgMC4yMjA5MjYsIDAuMzYxMzg4LCAwLjQ4NDkwNCwgMC42NDk4NDQsIDAuOTc5NSwgMS4xODU3MyIsIFwKLSAgICAgICAgICAiMC4yMTAxOTQsIDAuMjM1MTUzLCAwLjM3NTM1NywgMC40OTkyMDMsIDAuNjY0MTMxLCAwLjk5Mzg1MSwgMS4xOTk5NyIsIFwKLSAgICAgICAgICAiMC4yMjExMDksIDAuMjQ2MDY2LCAwLjM4NjUyLCAwLjUxMDEzNSwgMC42NzQ4OTUsIDEuMDA0NzYsIDEuMjEwOTEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDkyMjc5LCAwLjE0MTYwNywgMC40MjI4MiwgMC42NzIxOTYsIDEuMDAzLCAxLjY2OTU3LCAyLjA4NTM5IiwgXAotICAgICAgICAgICIwLjA5MzA3MiwgMC4xNDE1NjMsIDAuNDIyNzAzLCAwLjY3MTkzLCAxLjAwNDYzLCAxLjY2OTY1LCAyLjA4NTM3IiwgXAotICAgICAgICAgICIwLjA5MjMxNywgMC4xNDE1NzksIDAuNDIyMjY4LCAwLjY3MjE4NiwgMS4wMDQ2NywgMS42Njk3MiwgMi4wODU0OSIsIFwKLSAgICAgICAgICAiMC4wOTIzNjEsIDAuMTQxOTAyLCAwLjQyMjgxMSwgMC42NzA5NjEsIDEuMDAyMzUsIDEuNjY5NTIsIDIuMDg1MTMiLCBcCi0gICAgICAgICAgIjAuMDkyMzEsIDAuMTQxNTY4LCAwLjQyMjgyOSwgMC42NzE5MzYsIDEuMDA0NjUsIDEuNjY3NDksIDIuMDg1MzciLCBcCi0gICAgICAgICAgIjAuMDkyMzQ1LCAwLjE0MTU3OCwgMC40MjIyOTksIDAuNjcyMTc2LCAxLjAwNDc5LCAxLjY2OTcxLCAyLjA4NTQ2IiwgXAotICAgICAgICAgICIwLjA5Mjg0LCAwLjE0MTY2MSwgMC40MjI4MjYsIDAuNjcyMTk2LCAxLjAwMzA4LCAxLjY2OTY2LCAyLjA4NTYxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDAyNiwgMC4wMDQwMjQsIDAuMDA0MDA5LCAwLjAwNDAwMywgMC4wMDM5OTksIDAuMDAzOTk1LCAwLjAwMzk5NCIsIFwKLSAgICAgICAgICAiMC4wMDQwMDksIDAuMDA0MDA4LCAwLjAwMzk5MywgMC4wMDM5ODcsIDAuMDAzOTgzLCAwLjAwMzk3OSwgMC4wMDM5NzgiLCBcCi0gICAgICAgICAgIjAuMDA0MDAyLCAwLjAwNDAwMSwgMC4wMDM5ODYsIDAuMDAzOTgsIDAuMDAzOTc1LCAwLjAwMzk3MiwgMC4wMDM5NzEiLCBcCi0gICAgICAgICAgIjAuMDA0MDAzLCAwLjAwNDAwMiwgMC4wMDM5ODgsIDAuMDAzOTgxLCAwLjAwMzk3NywgMC4wMDM5NzMsIDAuMDAzOTcxIiwgXAotICAgICAgICAgICIwLjAwNDAxMiwgMC4wMDQwMTIsIDAuMDAzOTk3LCAwLjAwMzk5MSwgMC4wMDM5ODcsIDAuMDAzOTgyLCAwLjAwMzk4MSIsIFwKLSAgICAgICAgICAiMC4wMDQwMjMsIDAuMDA0MDIzLCAwLjAwNDAxLCAwLjAwNDAwMywgMC4wMDM5OTgsIDAuMDAzOTkzLCAwLjAwMzk5MiIsIFwKLSAgICAgICAgICAiMC4wMDQwMzUsIDAuMDA0MDM2LCAwLjAwNDAyMywgMC4wMDQwMTgsIDAuMDA0MDEyLCAwLjAwNDAwOCwgMC4wMDQwMDYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQwNzIsIDAuMDA0MDc5LCAwLjAwNDA4OSwgMC4wMDQwOTEsIDAuMDA0MDkyLCAwLjAwNDA5MywgMC4wMDQwOTMiLCBcCi0gICAgICAgICAgIjAuMDA0MDU2LCAwLjAwNDA2MywgMC4wMDQwNzQsIDAuMDA0MDc1LCAwLjAwNDA3NywgMC4wMDQwNzgsIDAuMDA0MDc4IiwgXAotICAgICAgICAgICIwLjAwNDA1NiwgMC4wMDQwNjMsIDAuMDA0MDczLCAwLjAwNDA3NiwgMC4wMDQwNzcsIDAuMDA0MDc3LCAwLjAwNDA3OCIsIFwKLSAgICAgICAgICAiMC4wMDQwNjIsIDAuMDA0MDcsIDAuMDA0MDc5LCAwLjAwNDA4MiwgMC4wMDQwODMsIDAuMDA0MDg0LCAwLjAwNDA4NCIsIFwKLSAgICAgICAgICAiMC4wMDQwNzcsIDAuMDA0MDg0LCAwLjAwNDA5NSwgMC4wMDQwOTYsIDAuMDA0MDk4LCAwLjAwNDA5OSwgMC4wMDQwOTkiLCBcCi0gICAgICAgICAgIjAuMDA0MDk3LCAwLjAwNDEwNCwgMC4wMDQxMTQsIDAuMDA0MTE2LCAwLjAwNDExOCwgMC4wMDQxMTgsIDAuMDA0MTE5IiwgXAotICAgICAgICAgICIwLjAwNDExOCwgMC4wMDQxMjUsIDAuMDA0MTM1LCAwLjAwNDEzNiwgMC4wMDQxMzcsIDAuMDA0MTM4LCAwLjAwNDEzOSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUU4pICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4yNjI4MzU7Ci0gICAgZnVuY3Rpb24gOiAiUUJJTlQiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5vbl91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcmlzaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE2MzU2MiwgMC4xODgwNzEsIDAuMzI3MTIxLCAwLjQ0OTc1OCwgMC42MTMzNzIsIDAuOTQwNDYzLCAxLjE0NDk4IiwgXAotICAgICAgICAgICIwLjE3Mzc4OSwgMC4xOTgzMDEsIDAuMzM3MjQ2LCAwLjQ1OTk4MSwgMC42MjM1MTcsIDAuOTUwNjc4LCAxLjE1NTE2IiwgXAotICAgICAgICAgICIwLjE4NjUwOSwgMC4yMTEwMywgMC4zNTAwODMsIDAuNDcyNzA2LCAwLjYzNjI1NCwgMC45NjM0MTksIDEuMTY3OTIiLCBcCi0gICAgICAgICAgIjAuMTk4MjM3LCAwLjIyMjc2NCwgMC4zNjE3OSwgMC40ODQ0ODgsIDAuNjQ4MDk3LCAwLjk3NTExNywgMS4xNzk2IiwgXAotICAgICAgICAgICIwLjIwODY2NSwgMC4yMzMxODYsIDAuMzcyMjMxLCAwLjQ5NDg2NiwgMC42NTg0MDYsIDAuOTg1NTQ5LCAxLjE5MDA2IiwgXAotICAgICAgICAgICIwLjIyMjg4LCAwLjI0NzQwMSwgMC4zODY0NjIsIDAuNTA5MDc4LCAwLjY3MjY2NSwgMC45OTk3ODgsIDEuMjA0MjkiLCBcCi0gICAgICAgICAgIjAuMjMzNzY0LCAwLjI1ODI4LCAwLjM5NzMxOCwgMC41MTk5NjEsIDAuNjgzNTE1LCAxLjAxMDY1LCAxLjIxNTIiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDkwODk1LCAwLjE0MTM4MiwgMC40MjgxMzEsIDAuNjgwOTkxLCAxLjAxNjY1LCAxLjY5MjY3LCAyLjExNDQxIiwgXAotICAgICAgICAgICIwLjA5MTEyNCwgMC4xNDEzMTEsIDAuNDI3NzQ5LCAwLjY4MDY5NCwgMS4wMTgxOSwgMS42OTI3MiwgMi4xMTQzNyIsIFwKLSAgICAgICAgICAiMC4wOTEwNiwgMC4xNDEzMTQsIDAuNDI3NTM4LCAwLjY4MDk4MywgMS4wMTgyMywgMS42OTI3NSwgMi4xMTQ0NSIsIFwKLSAgICAgICAgICAiMC4wOTA4OTUsIDAuMTQxNTAzLCAwLjQyODEyMywgMC42Nzk4MzMsIDEuMDE2MTgsIDEuNjkyNjYsIDIuMTE0MjciLCBcCi0gICAgICAgICAgIjAuMDkxMDU3LCAwLjE0MTMxMywgMC40MjgxNDMsIDAuNjgwNjk2LCAxLjAxODIyLCAxLjY5MDYsIDIuMTE0MzgiLCBcCi0gICAgICAgICAgIjAuMDkxMDYsIDAuMTQxMzA3LCAwLjQyNzQ5OSwgMC42ODA5OCwgMS4wMTgyMywgMS42OTI3NCwgMi4xMTQ0MyIsIFwKLSAgICAgICAgICAiMC4wOTEwMzUsIDAuMTQxMTcyLCAwLjQyODEzNSwgMC42ODA5ODksIDEuMDE2ODMsIDEuNjkyNzIsIDIuMTE0NTMiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTUwODEyLCAwLjE3NTUzNywgMC4zMTU2OTcsIDAuNDM5MzMzLCAwLjYwNDE3LCAwLjkzMzkxMSwgMS4xNDAwMiIsIFwKLSAgICAgICAgICAiMC4xNjA5NDQsIDAuMTg1NjcyLCAwLjMyNTgzNCwgMC40NDk0NjksIDAuNjE0MzA5LCAwLjk0NDA1MiwgMS4xNTAxNCIsIFwKLSAgICAgICAgICAiMC4xNzM1NzMsIDAuMTk4MzAyLCAwLjMzODQ3MiwgMC40NjIxLCAwLjYyNjk0LCAwLjk1NjY5LCAxLjE2MjgiLCBcCi0gICAgICAgICAgIjAuMTg1MiwgMC4yMDk5MjksIDAuMzUwMDk1LCAwLjQ3MzcyNiwgMC42Mzg1NjUsIDAuOTY4MzAxLCAxLjE3NDQzIiwgXAotICAgICAgICAgICIwLjE5NTEwNSwgMC4yMTk4MzIsIDAuMzU5OTk3LCAwLjQ4MzYyNiwgMC42NDg0NjUsIDAuOTc4MjA3LCAxLjE4NDMyIiwgXAotICAgICAgICAgICIwLjIwOTU3NiwgMC4yMzQyOTgsIDAuMzc0NDU2LCAwLjQ5ODA5NiwgMC42NjI5NDEsIDAuOTkyNjc1LCAxLjE5ODczIiwgXAotICAgICAgICAgICIwLjIyMDE1NywgMC4yNDQ4ODcsIDAuMzg1MSwgMC41MDg2NywgMC42NzM2MTQsIDEuMDAzMjksIDEuMjA5NDMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg5NzU0LCAwLjEzOTE3MSwgMC40MjE2MTcsIDAuNjY5OTMxLCAxLjAwMjkzLCAxLjY2NzU4LCAyLjA4MzA0IiwgXAotICAgICAgICAgICIwLjA4OTcxMywgMC4xMzkxNjcsIDAuNDIxNjEzLCAwLjY2OTkzNCwgMS4wMDI0OSwgMS42Njc1OCwgMi4wODI5NiIsIFwKLSAgICAgICAgICAiMC4wODk3MjcsIDAuMTM5MjAzLCAwLjQyMTEyLCAwLjY2OTk1OSwgMS4wMDI1LCAxLjY2NTQ4LCAyLjA4MzA3IiwgXAotICAgICAgICAgICIwLjA4OTcyNSwgMC4xMzkyMDMsIDAuNDIxMTA2LCAwLjY2OTk2NSwgMS4wMDI1LCAxLjY2NTQ3LCAyLjA4MzA3IiwgXAotICAgICAgICAgICIwLjA4OTcxOCwgMC4xMzkxOTEsIDAuNDIxMTAyLCAwLjY2OTk0NSwgMS4wMDI0OSwgMS42NjU0OSwgMi4wODMwMSIsIFwKLSAgICAgICAgICAiMC4wODk3MDYsIDAuMTM5MTYsIDAuNDIxNjA4LCAwLjY2OTkzNiwgMS4wMDI5MiwgMS42Njc1LCAyLjA4MjciLCBcCi0gICAgICAgICAgIjAuMDg5NzQ5LCAwLjEzOTIwNSwgMC40MjA4NzMsIDAuNjcwMzksIDEuMDAxMjYsIDEuNjY0OTgsIDIuMDgzMzMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0MDcyLCAwLjAwNDA3OSwgMC4wMDQwODksIDAuMDA0MDkxLCAwLjAwNDA5MiwgMC4wMDQwOTMsIDAuMDA0MDkzIiwgXAotICAgICAgICAgICIwLjAwNDA1NiwgMC4wMDQwNjMsIDAuMDA0MDc0LCAwLjAwNDA3NSwgMC4wMDQwNzcsIDAuMDA0MDc4LCAwLjAwNDA3OCIsIFwKLSAgICAgICAgICAiMC4wMDQwNTYsIDAuMDA0MDYzLCAwLjAwNDA3MywgMC4wMDQwNzYsIDAuMDA0MDc3LCAwLjAwNDA3NywgMC4wMDQwNzgiLCBcCi0gICAgICAgICAgIjAuMDA0MDYyLCAwLjAwNDA3LCAwLjAwNDA3OSwgMC4wMDQwODIsIDAuMDA0MDgzLCAwLjAwNDA4NCwgMC4wMDQwODQiLCBcCi0gICAgICAgICAgIjAuMDA0MDc3LCAwLjAwNDA4NCwgMC4wMDQwOTUsIDAuMDA0MDk2LCAwLjAwNDA5OCwgMC4wMDQwOTksIDAuMDA0MDk5IiwgXAotICAgICAgICAgICIwLjAwNDA5NywgMC4wMDQxMDQsIDAuMDA0MTE0LCAwLjAwNDExNiwgMC4wMDQxMTgsIDAuMDA0MTE4LCAwLjAwNDExOSIsIFwKLSAgICAgICAgICAiMC4wMDQxMTgsIDAuMDA0MTI1LCAwLjAwNDEzNSwgMC4wMDQxMzYsIDAuMDA0MTM3LCAwLjAwNDEzOCwgMC4wMDQxMzkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQwMjYsIDAuMDA0MDI0LCAwLjAwNDAwOSwgMC4wMDQwMDMsIDAuMDAzOTk5LCAwLjAwMzk5NSwgMC4wMDM5OTQiLCBcCi0gICAgICAgICAgIjAuMDA0MDA5LCAwLjAwNDAwOCwgMC4wMDM5OTMsIDAuMDAzOTg3LCAwLjAwMzk4MywgMC4wMDM5NzksIDAuMDAzOTc4IiwgXAotICAgICAgICAgICIwLjAwNDAwMiwgMC4wMDQwMDEsIDAuMDAzOTg2LCAwLjAwMzk4LCAwLjAwMzk3NSwgMC4wMDM5NzIsIDAuMDAzOTcxIiwgXAotICAgICAgICAgICIwLjAwNDAwMywgMC4wMDQwMDIsIDAuMDAzOTg4LCAwLjAwMzk4MSwgMC4wMDM5NzcsIDAuMDAzOTczLCAwLjAwMzk3MSIsIFwKLSAgICAgICAgICAiMC4wMDQwMTIsIDAuMDA0MDEyLCAwLjAwMzk5NywgMC4wMDM5OTEsIDAuMDAzOTg3LCAwLjAwMzk4MiwgMC4wMDM5ODEiLCBcCi0gICAgICAgICAgIjAuMDA0MDIzLCAwLjAwNDAyMywgMC4wMDQwMSwgMC4wMDQwMDMsIDAuMDAzOTk4LCAwLjAwMzk5MywgMC4wMDM5OTIiLCBcCi0gICAgICAgICAgIjAuMDA0MDM1LCAwLjAwNDAzNiwgMC4wMDQwMjMsIDAuMDA0MDE4LCAwLjAwNDAxMiwgMC4wMDQwMDgsIDAuMDA0MDA2Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihSTikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNTgyNjk5OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDU4MjY5OTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA1ODE0NTg7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzMDQ0LCAwLjAwMzAyNiwgMC4wMDMwMTYsIDAuMDAzMDExLCAwLjAwMzAwOSwgMC4wMDMwMSwgMC4wMDMwMTQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDU3MDEsIDAuMDA1NjkzLCAwLjAwNTY4OSwgMC4wMDU2ODksIDAuMDA1Njk1LCAwLjAwNTcxLCAwLjAwNTcyNiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJEJiFTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzFfQU5fU0VfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wODc1LCAtMC4wODI1LCAtMC4wNzYyNSwgLTAuMDcsIC0wLjA2Mzc1LCAtMC4wNiwgLTAuMDU3NSIsIFwKLSAgICAgICAgICAiLTAuMDk4NzUsIC0wLjA5Mzc1LCAtMC4wODc1LCAtMC4wODEyNSwgLTAuMDc1LCAtMC4wNzEyNSwgLTAuMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMTExMjUsIC0wLjEsIC0wLjA5Mzc1LCAtMC4wODc1LCAtMC4wODc1LCAtMC4wNzc1LCAtMC4wNzUiLCBcCi0gICAgICAgICAgIi0wLjExNzUsIC0wLjExMjUsIC0wLjEwNjI1LCAtMC4xLCAtMC4wOTM3NSwgLTAuMDksIC0wLjA4NzUiLCBcCi0gICAgICAgICAgIi0wLjEzLCAtMC4xMjUsIC0wLjExODc1LCAtMC4xMTI1LCAtMC4xMDYyNSwgLTAuMTAyNSwgLTAuMDkzNzUiLCBcCi0gICAgICAgICAgIi0wLjE0NjI1LCAtMC4xNDEyNSwgLTAuMTM1LCAtMC4xMjg3NSwgLTAuMTIyNSwgLTAuMTE4NzUsIC0wLjExIiwgXAotICAgICAgICAgICItMC4xNjEyNSwgLTAuMTUsIC0wLjE0Mzc1LCAtMC4xMzc1LCAtMC4xMzc1LCAtMC4xMjc1LCAtMC4xMjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMTg3NSwgLTAuMDA3NSwgLTAuMDAxMjUsIDAuMDExMjUsIDAuMDE3NSwgMC4wMjc1LCAwLjAzNjI1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLCAwLjAwNjI1LCAwLjAyMjUsIDAuMDI1IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLjAxLCAwLjAxODc1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDQzNzUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAxMjUsIC0wLjAwMjUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA2MTI1LCAtMC4wNTYyNSwgLTAuMDQzNzUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAxNSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA3MTI1LCAtMC4wNjYyNSwgLTAuMDUzNzUsIC0wLjA0NzUsIC0wLjA0MTI1LCAtMC4wMzEyNSwgLTAuMDIyNSIsIFwKLSAgICAgICAgICAiLTAuMDgsIC0wLjA3NSwgLTAuMDY4NzUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDQsIC0wLjAzMTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJEJiFTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzFfQU5fU0VfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMzEyNSwgMC4xMiwgMC4xMDc1LCAwLjEwMTI1LCAwLjA5NSwgMC4wODUsIDAuMDgyNSIsIFwKLSAgICAgICAgICAiMC4xMzYyNSwgMC4xMzEyNSwgMC4xMTg3NSwgMC4xMTI1LCAwLjEwNjI1LCAwLjA5NjI1LCAwLjA4NzUiLCBcCi0gICAgICAgICAgIjAuMTQ4NzUsIDAuMTM3NSwgMC4xMzEyNSwgMC4xMTg3NSwgMC4xMTI1LCAwLjEwODc1LCAwLjEiLCBcCi0gICAgICAgICAgIjAuMTYxMjUsIDAuMTUsIDAuMTM3NSwgMC4xMzEyNSwgMC4xMjUsIDAuMTE1LCAwLjExMjUiLCBcCi0gICAgICAgICAgIjAuMTczNzUsIDAuMTYyNSwgMC4xNSwgMC4xNDM3NSwgMC4xMzc1LCAwLjEyNzUsIDAuMTE4NzUiLCBcCi0gICAgICAgICAgIjAuMTksIDAuMTc4NzUsIDAuMTY2MjUsIDAuMTYsIDAuMTUzNzUsIDAuMTQzNzUsIDAuMTM1IiwgXAotICAgICAgICAgICIwLjE5ODc1LCAwLjE4NzUsIDAuMTgxMjUsIDAuMTY4NzUsIDAuMTYyNSwgMC4xNTg3NSwgMC4xNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2ODc1LCAwLjA1NzUsIDAuMDQ1LCAwLjAzMjUsIDAuMDI2MjUsIDAuMDEsIDAuMDAxMjUiLCBcCi0gICAgICAgICAgIjAuMDgsIDAuMDY4NzUsIDAuMDU2MjUsIDAuMDQzNzUsIDAuMDMxMjUsIDAuMDIxMjUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMDkyNSwgMC4wODEyNSwgMC4wNjg3NSwgMC4wNTYyNSwgMC4wNDM3NSwgMC4wMzM3NSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4xMDUsIDAuMDkzNzUsIDAuMDgxMjUsIDAuMDY4NzUsIDAuMDU2MjUsIDAuMDQ2MjUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMTExMjUsIDAuMSwgMC4wODc1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNTI1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjEyNzUsIDAuMTE2MjUsIDAuMTAzNzUsIDAuMDk3NSwgMC4wODUsIDAuMDY4NzUsIDAuMDYiLCBcCi0gICAgICAgICAgIjAuMTQyNSwgMC4xMzEyNSwgMC4xMTg3NSwgMC4xMDYyNSwgMC4xLCAwLjA4Mzc1LCAwLjA3NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oU0UpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTE4MzMxOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTE4MzE7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxMTgzMzE7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA0MDg4LCAwLjAwNDA2OCwgMC4wMDQwNzQsIDAuMDA0MDgxLCAwLjAwNDA5OCwgMC4wMDQxMjQsIDAuMDA0MTUyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA1NDU4LCAwLjAwNTQyLCAwLjAwNTQxMywgMC4wMDU0MTgsIDAuMDA1NDM5LCAwLjAwNTQ3MywgMC4wMDU1MDkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUQmIVJOJlNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9STl9FUV8wX0FOX1NJX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDQzNzUsIC0wLjAzODc1LCAtMC4wMzI1LCAtMC4wMjYyNSwgLTAuMDIsIC0wLjAxLCAtMC4wMDc1IiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDMxMjUsIC0wLjAyMTI1LCAtMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wNjc1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzM3NSwgLTAuMDI1IiwgXAotICAgICAgICAgICItMC4wOCwgLTAuMDY4NzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDQ2MjUsIC0wLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjA5MjUsIC0wLjA4MTI1LCAtMC4wNzUsIC0wLjA2ODc1LCAtMC4wNjI1LCAtMC4wNTI1LCAtMC4wNSIsIFwKLSAgICAgICAgICAiLTAuMTA4NzUsIC0wLjA5NzUsIC0wLjA5MTI1LCAtMC4wODUsIC0wLjA3ODc1LCAtMC4wNzUsIC0wLjA2NjI1IiwgXAotICAgICAgICAgICItMC4xMTc1LCAtMC4xMTI1LCAtMC4xMDYyNSwgLTAuMSwgLTAuMDkzNzUsIC0wLjA4Mzc1LCAtMC4wODEyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAsIDAuMDExMjUsIDAuMDIzNzUsIDAuMDMsIDAuMDM2MjUsIDAuMDUyNSwgMC4wNjEyNSIsIFwKLSAgICAgICAgICAiLTAuMDExMjUsIDAsIDAuMDEyNSwgMC4wMjUsIDAuMDMxMjUsIDAuMDQxMjUsIDAuMDUiLCBcCi0gICAgICAgICAgIi0wLjAxNzUsIC0wLjAxMjUsIDAsIDAuMDEyNSwgMC4wMTg3NSwgMC4wMjg3NSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAxODc1LCAtMC4wMDYyNSwgMCwgMC4wMDYyNSwgMC4wMjI1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDMxMjUsIC0wLjAxODc1LCAtMC4wMDYyNSwgMCwgMC4wMSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDQ2MjUsIC0wLjA0MTI1LCAtMC4wMjg3NSwgLTAuMDIyNSwgLTAuMDEsIDAsIDAuMDA4NzUiLCBcCi0gICAgICAgICAgIi0wLjA1NSwgLTAuMDUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgLTAuMDA4NzUsIDAiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiRCZSTiYhU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8xX0FOX1JOX0VRXzFfQU5fU0lfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMjUsIC0wLjAyLCAtMC4wMDc1LCAwLjAwNSwgMC4wMTEyNSwgMC4wMjEyNSwgMC4wMyIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLCAwLjAxNjI1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgMC4wMDM3NSwgMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wNjEyNSwgLTAuMDUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgLTAuMDA4NzUsIDAiLCBcCi0gICAgICAgICAgIi0wLjA2NzUsIC0wLjA1NjI1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDI1LCAtMC4wMTUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wNzc1LCAtMC4wNjYyNSwgLTAuMDYsIC0wLjA0NzUsIC0wLjA0MTI1LCAtMC4wMjUsIC0wLjAxNjI1IiwgXAotICAgICAgICAgICItMC4wODYyNSwgLTAuMDc1LCAtMC4wNjg3NSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wMzM3NSwgLTAuMDI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDYyNSwgLTAuMDUxMjUsIC0wLjA0NSwgLTAuMDM4NzUsIC0wLjAzODc1LCAtMC4wMjg3NSwgLTAuMDI2MjUiLCBcCi0gICAgICAgICAgIi0wLjA2NzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjA0LCAtMC4wMzc1IiwgXAotICAgICAgICAgICItMC4wOCwgLTAuMDc1LCAtMC4wNjg3NSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA1MjUsIC0wLjA1IiwgXAotICAgICAgICAgICItMC4wOTI1LCAtMC4wODc1LCAtMC4wODEyNSwgLTAuMDc1LCAtMC4wNjg3NSwgLTAuMDY1LCAtMC4wNTYyNSIsIFwKLSAgICAgICAgICAiLTAuMDk4NzUsIC0wLjA5Mzc1LCAtMC4wODc1LCAtMC4wODEyNSwgLTAuMDc1LCAtMC4wNzEyNSwgLTAuMDY4NzUiLCBcCi0gICAgICAgICAgIi0wLjExNSwgLTAuMTAzNzUsIC0wLjA5NzUsIC0wLjA5MTI1LCAtMC4wOTEyNSwgLTAuMDgxMjUsIC0wLjA3ODc1IiwgXAotICAgICAgICAgICItMC4xMTc1LCAtMC4xMTI1LCAtMC4xMDYyNSwgLTAuMSwgLTAuMSwgLTAuMDksIC0wLjA4NzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEJiFSTiZTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fUk5fRVFfMF9BTl9TSV9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3NSwgMC4wNjM3NSwgMC4wNTc1LCAwLjA1MTI1LCAwLjA0NSwgMC4wMzUsIDAuMDI2MjUiLCBcCi0gICAgICAgICAgIjAuMDg2MjUsIDAuMDc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDUsIDAuMDQ2MjUsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiMC4wOTg3NSwgMC4wODc1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1MjUsIDAuMDUiLCBcCi0gICAgICAgICAgIjAuMTExMjUsIDAuMSwgMC4wODc1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNjUsIDAuMDYyNSIsIFwKLSAgICAgICAgICAiMC4xMjM3NSwgMC4xMTI1LCAwLjEsIDAuMDkzNzUsIDAuMDg3NSwgMC4wNzc1LCAwLjA3NSIsIFwKLSAgICAgICAgICAiMC4xNCwgMC4xMjg3NSwgMC4xMTYyNSwgMC4xMSwgMC4xMDM3NSwgMC4wOTM3NSwgMC4wOTEyNSIsIFwKLSAgICAgICAgICAiMC4xNTUsIDAuMTQzNzUsIDAuMTMxMjUsIDAuMTI1LCAwLjExODc1LCAwLjEwODc1LCAwLjEwNjI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM3NSwgMC4wMjYyNSwgMC4wMTM3NSwgMC4wMDc1LCAtMC4wMDUsIC0wLjAyMTI1LCAtMC4wMyIsIFwKLSAgICAgICAgICAiMC4wNDg3NSwgMC4wMzc1LCAwLjAyNSwgMC4wMTI1LCAwLjAwNjI1LCAtMC4wMSwgLTAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMDYxMjUsIDAuMDUsIDAuMDM3NSwgMC4wMjUsIDAuMDE4NzUsIDAuMDAyNSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMDczNzUsIDAuMDYyNSwgMC4wNSwgMC4wMzc1LCAwLjAyNSwgMC4wMTUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMDgsIDAuMDc1LCAwLjA2MjUsIDAuMDUsIDAuMDM3NSwgMC4wMjEyNSwgMC4wMTI1IiwgXAotICAgICAgICAgICIwLjA5NjI1LCAwLjA4NSwgMC4wNzI1LCAwLjA2NjI1LCAwLjA1Mzc1LCAwLjAzNzUsIDAuMDI4NzUiLCBcCi0gICAgICAgICAgIjAuMTExMjUsIDAuMSwgMC4wODc1LCAwLjA3NSwgMC4wNjI1LCAwLjA1MjUsIDAuMDM3NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiRCZSTiYhU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8xX0FOX1JOX0VRXzFfQU5fU0lfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzUsIDAuMDYzNzUsIDAuMDUxMjUsIDAuMDM4NzUsIDAuMDI2MjUsIDAuMDE2MjUsIDAuMDA3NSIsIFwKLSAgICAgICAgICAiMC4wODYyNSwgMC4wNzUsIDAuMDYyNSwgMC4wNSwgMC4wMzc1LCAwLjAyNzUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4wOTg3NSwgMC4wODc1LCAwLjA3NSwgMC4wNjI1LCAwLjA1LCAwLjA0LCAwLjAyNSIsIFwKLSAgICAgICAgICAiMC4xMDUsIDAuMDkzNzUsIDAuMDgxMjUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNDYyNSwgMC4wMzc1IiwgXAotICAgICAgICAgICIwLjExMTI1LCAwLjEwNjI1LCAwLjA5Mzc1LCAwLjA4MTI1LCAwLjA2ODc1LCAwLjA1MjUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMTI3NSwgMC4xMTYyNSwgMC4xMDM3NSwgMC4wOTEyNSwgMC4wNzg3NSwgMC4wNjg3NSwgMC4wNTM3NSIsIFwKLSAgICAgICAgICAiMC4xMzYyNSwgMC4xMjUsIDAuMTEyNSwgMC4xLCAwLjA4NzUsIDAuMDc3NSwgMC4wNjI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMSwgMC4wODg3NSwgMC4wNzYyNSwgMC4wNywgMC4wNjM3NSwgMC4wNiwgMC4wNTEyNSIsIFwKLSAgICAgICAgICAiMC4xMTEyNSwgMC4xLCAwLjA4NzUsIDAuMDgxMjUsIDAuMDc1LCAwLjA2NSwgMC4wNjI1IiwgXAotICAgICAgICAgICIwLjEyMzc1LCAwLjExMjUsIDAuMSwgMC4wOTM3NSwgMC4wODc1LCAwLjA3NzUsIDAuMDc1IiwgXAotICAgICAgICAgICIwLjEzLCAwLjEyNSwgMC4xMTI1LCAwLjEwNjI1LCAwLjEsIDAuMDksIDAuMDgxMjUiLCBcCi0gICAgICAgICAgIjAuMTQyNSwgMC4xMzEyNSwgMC4xMTg3NSwgMC4xMTI1LCAwLjEwNjI1LCAwLjA5NjI1LCAwLjA5Mzc1IiwgXAotICAgICAgICAgICIwLjE1MjUsIDAuMTQxMjUsIDAuMTI4NzUsIDAuMTIyNSwgMC4xMTYyNSwgMC4xMDYyNSwgMC4xMDM3NSIsIFwKLSAgICAgICAgICAiMC4xNjEyNSwgMC4xNSwgMC4xMzc1LCAwLjEzMTI1LCAwLjEyNSwgMC4xMTUsIDAuMTEyNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oU0kpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYzNjMxMjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MzU7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjM2MzEyOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjU2OSwgMC4wMDI1NTIsIDAuMDAyNTQzLCAwLjAwMjUzOSwgMC4wMDI1MzcsIDAuMDAyNTQsIDAuMDAyNTUyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA0MzU1LCAwLjAwNDM0NSwgMC4wMDQzNCwgMC4wMDQzMzcsIDAuMDA0MzM4LCAwLjAwNDMzOSwgMC4wMDQzNDYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiU0UiOwotICAgICAgc2RmX2NvbmQgOiAiU0UgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDUsIC0wLjA0NSwgLTAuMDM4NzUsIC0wLjAzMjUsIC0wLjAyNjI1LCAtMC4wMTYyNSwgLTAuMDEzNzUiLCBcCi0gICAgICAgICAgIi0wLjA2MTI1LCAtMC4wNTYyNSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMjc1LCAtMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDczNzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjA0LCAtMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDgsIC0wLjA3NSwgLTAuMDY4NzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNDYyNSwgLTAuMDQzNzUiLCBcCi0gICAgICAgICAgIi0wLjA5MjUsIC0wLjA4NzUsIC0wLjA3NSwgLTAuMDY4NzUsIC0wLjA2ODc1LCAtMC4wNTg3NSwgLTAuMDUiLCBcCi0gICAgICAgICAgIi0wLjEwODc1LCAtMC4wOTc1LCAtMC4wOTEyNSwgLTAuMDg1LCAtMC4wNzg3NSwgLTAuMDc1LCAtMC4wNjYyNSIsIFwKLSAgICAgICAgICAiLTAuMTE3NSwgLTAuMTEyNSwgLTAuMTA2MjUsIC0wLjEsIC0wLjA5Mzc1LCAtMC4wOSwgLTAuMDgxMjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMTg3NSwgLTAuMDA3NSwgMC4wMDUsIDAuMDExMjUsIDAuMDIzNzUsIDAuMDMzNzUsIDAuMDQyNSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLjAwNjI1LCAwLjAxMjUsIDAuMDIyNSwgMC4wMzc1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDI1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMC4wMDYyNSwgMC4wMTYyNSwgMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLjAxLCAwLjAxODc1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDQzNzUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDAyNSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDY1LCAtMC4wNTM3NSwgLTAuMDQxMjUsIC0wLjAzNSwgLTAuMDIyNSwgLTAuMDEyNSwgLTAuMDAzNzUiLCBcCi0gICAgICAgICAgIi0wLjA3Mzc1LCAtMC4wNjI1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAyMTI1LCAtMC4wMTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJTRSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODEyNSwgMC4wNywgMC4wNjM3NSwgMC4wNTc1LCAwLjA1MTI1LCAwLjA0MTI1LCAwLjAzMjUiLCBcCi0gICAgICAgICAgIjAuMDkyNSwgMC4wODEyNSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1MjUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMTA1LCAwLjA5Mzc1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNTg3NSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiMC4xMTEyNSwgMC4xLCAwLjA5Mzc1LCAwLjA4NzUsIDAuMDgxMjUsIDAuMDcxMjUsIDAuMDYyNSIsIFwKLSAgICAgICAgICAiMC4xMjM3NSwgMC4xMTI1LCAwLjEwNjI1LCAwLjA5Mzc1LCAwLjA4NzUsIDAuMDgzNzUsIDAuMDc1IiwgXAotICAgICAgICAgICIwLjE0LCAwLjEyODc1LCAwLjEyMjUsIDAuMTEsIDAuMTAzNzUsIDAuMSwgMC4wOTEyNSIsIFwKLSAgICAgICAgICAiMC4xNTUsIDAuMTQzNzUsIDAuMTMxMjUsIDAuMTI1LCAwLjExODc1LCAwLjEwODc1LCAwLjEwNjI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDYyNSwgMC4wNTEyNSwgMC4wMzg3NSwgMC4wMjYyNSwgMC4wMiwgMC4wMDM3NSwgLTAuMDA1IiwgXAotICAgICAgICAgICIwLjA3Mzc1LCAwLjA2MjUsIDAuMDUsIDAuMDM3NSwgMC4wMjUsIDAuMDE1LCAwIiwgXAotICAgICAgICAgICIwLjA4LCAwLjA2ODc1LCAwLjA1NjI1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDIxMjUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4wOTI1LCAwLjA4MTI1LCAwLjA2ODc1LCAwLjA1NjI1LCAwLjA0Mzc1LCAwLjAzMzc1LCAwLjAxODc1IiwgXAotICAgICAgICAgICIwLjA5ODc1LCAwLjA4NzUsIDAuMDc1LCAwLjA2ODc1LCAwLjA1NjI1LCAwLjA0LCAwLjAzMTI1IiwgXAotICAgICAgICAgICIwLjExNSwgMC4xMDM3NSwgMC4wOTEyNSwgMC4wNzg3NSwgMC4wNzI1LCAwLjA1NjI1LCAwLjA0NzUiLCBcCi0gICAgICAgICAgIjAuMTIzNzUsIDAuMTEyNSwgMC4xLCAwLjA5Mzc1LCAwLjA4MTI1LCAwLjA2NSwgMC4wNTYyNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBTREZGVFJYMiAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoU0RGRlRSWDIpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC41MTU4MTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBmZiAoTjMwLFFCSU5UKSB7Ci0gICAgbmV4dF9zdGF0ZSA6ICIoKFNFIFNJKSArICghU0UgKEQgUk4pKSkiOwotICAgIGNsb2NrZWRfb24gOiAiQ0siOwotICB9Ci0gIHBpbihDSykgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNTY4MTQ7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNTY3Nzg1OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDU2ODE0OwotICAgIGNsb2NrIDogdHJ1ZTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDI4ODIsIDAuMDAyODU2LCAwLjAwMjg0MiwgMC4wMDI4NDUsIDAuMDAyODU4LCAwLjAwMjg4LCAwLjAwMjg5OSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNjA3NCwgMC4wMDYwNSwgMC4wMDYwNDYsIDAuMDA2MDU2LCAwLjAwNjA3OCwgMC4wMDYxMTUsIDAuMDA2MTYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFEJiFSTiYhU0UmIVNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9STl9FUV8wX0FOX1NFX0VRXzBfQU5fU0lfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjE1NTA1MSwgMC4xNjUyNzgsIDAuMTc4MDgyLCAwLjE4OTk4NywgMC4yMDA1MTUsIDAuMjE1MjE4LCAwLjIyNjQ4MyIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDkyNzEzLCAwLjEwMjY5OCwgMC4xMTUwMDYsIDAuMTI2MzYzLCAwLjEzNjM0MywgMC4xNDk2NzQsIDAuMTU5OTgzIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihEKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2MjI4Mzg7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjIyNjY0OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDYyMjgzODsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDMwNTIsIDAuMDAzMDM0LCAwLjAwMzAyOSwgMC4wMDMwMjgsIDAuMDAzMDM0LCAwLjAwMzA0OSwgMC4wMDMwNjYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDUzMDEsIDAuMDA1MjksIDAuMDA1Mjg0LCAwLjAwNTI4MiwgMC4wMDUyODcsIDAuMDA1MywgMC4wMDUzMTYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiUk4mIVNFIjsKLSAgICAgIHNkZl9jb25kIDogIlJOX0VRXzFfQU5fU0VfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wODEyNSwgLTAuMDc2MjUsIC0wLjA3LCAtMC4wNjM3NSwgLTAuMDU3NSwgLTAuMDUzNzUsIC0wLjA0NSIsIFwKLSAgICAgICAgICAiLTAuMDkyNSwgLTAuMDg3NSwgLTAuMDgxMjUsIC0wLjA3NSwgLTAuMDY4NzUsIC0wLjA1ODc1LCAtMC4wNTYyNSIsIFwKLSAgICAgICAgICAiLTAuMTA1LCAtMC4xLCAtMC4wODc1LCAtMC4wODc1LCAtMC4wODEyNSwgLTAuMDcxMjUsIC0wLjA2ODc1IiwgXAotICAgICAgICAgICItMC4xMTc1LCAtMC4xMDYyNSwgLTAuMSwgLTAuMDkzNzUsIC0wLjA5Mzc1LCAtMC4wODM3NSwgLTAuMDgxMjUiLCBcCi0gICAgICAgICAgIi0wLjEzLCAtMC4xMTg3NSwgLTAuMTEyNSwgLTAuMTA2MjUsIC0wLjEwNjI1LCAtMC4wOTYyNSwgLTAuMDkzNzUiLCBcCi0gICAgICAgICAgIi0wLjE0NjI1LCAtMC4xNDEyNSwgLTAuMTI4NzUsIC0wLjEyODc1LCAtMC4xMjI1LCAtMC4xMTI1LCAtMC4xMSIsIFwKLSAgICAgICAgICAiLTAuMTYxMjUsIC0wLjE1NjI1LCAtMC4xNDM3NSwgLTAuMTQzNzUsIC0wLjEzNzUsIC0wLjEyNzUsIC0wLjEyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAxMjUsIC0wLjAwNzUsIDAuMDA1LCAwLjAxNzUsIDAuMDIzNzUsIDAuMDMzNzUsIDAuMDQyNSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLjAwNjI1LCAwLjAxMjUsIDAuMDIyNSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLCAwLjAxNjI1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjAzNzUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLjAwMzc1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjA1NSwgLTAuMDUsIC0wLjAzNzUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAwODc1LCAwIiwgXAotICAgICAgICAgICItMC4wNjUsIC0wLjA2LCAtMC4wNDc1LCAtMC4wNDEyNSwgLTAuMDM1LCAtMC4wMjUsIC0wLjAxIiwgXAotICAgICAgICAgICItMC4wNzM3NSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDMzNzUsIC0wLjAyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiUk4mIVNFIjsKLSAgICAgIHNkZl9jb25kIDogIlJOX0VRXzFfQU5fU0VfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMjUsIDAuMTEzNzUsIDAuMTA3NSwgMC4wOTUsIDAuMDg4NzUsIDAuMDc4NzUsIDAuMDc2MjUiLCBcCi0gICAgICAgICAgIjAuMTM2MjUsIDAuMTI1LCAwLjExMjUsIDAuMTA2MjUsIDAuMSwgMC4wOSwgMC4wODc1IiwgXAotICAgICAgICAgICIwLjE0ODc1LCAwLjEzNzUsIDAuMTI1LCAwLjExODc1LCAwLjExMjUsIDAuMTAyNSwgMC4wOTM3NSIsIFwKLSAgICAgICAgICAiMC4xNjEyNSwgMC4xNSwgMC4xMzc1LCAwLjEzMTI1LCAwLjEyNSwgMC4xMTUsIDAuMTA2MjUiLCBcCi0gICAgICAgICAgIjAuMTczNzUsIDAuMTYyNSwgMC4xNSwgMC4xNDM3NSwgMC4xMzc1LCAwLjEyNzUsIDAuMTE4NzUiLCBcCi0gICAgICAgICAgIjAuMTksIDAuMTc4NzUsIDAuMTY2MjUsIDAuMTYsIDAuMTUzNzUsIDAuMTQzNzUsIDAuMTM1IiwgXAotICAgICAgICAgICIwLjIwNSwgMC4xOTM3NSwgMC4xODEyNSwgMC4xNzUsIDAuMTY4NzUsIDAuMTU4NzUsIDAuMTU2MjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjg3NSwgMC4wNTc1LCAwLjA0NSwgMC4wMzI1LCAwLjAyLCAwLjAwMzc1LCAtMC4wMDUiLCBcCi0gICAgICAgICAgIjAuMDczNzUsIDAuMDYyNSwgMC4wNSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAxNSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiMC4wODYyNSwgMC4wNzUsIDAuMDYyNSwgMC4wNSwgMC4wNDM3NSwgMC4wMjc1LCAwLjAxODc1IiwgXAotICAgICAgICAgICIwLjA5ODc1LCAwLjA4NzUsIDAuMDc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDQsIDAuMDI1IiwgXAotICAgICAgICAgICIwLjExMTI1LCAwLjEsIDAuMDg3NSwgMC4wNzUsIDAuMDYyNSwgMC4wNTI1LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIjAuMTI3NSwgMC4xMTYyNSwgMC4xMDM3NSwgMC4wOTEyNSwgMC4wNzg3NSwgMC4wNjI1LCAwLjA1Mzc1IiwgXAotICAgICAgICAgICIwLjEzNjI1LCAwLjEyNSwgMC4xMTI1LCAwLjEsIDAuMDkzNzUsIDAuMDc3NSwgMC4wNjg3NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjUyNTk1MjsKLSAgICBmdW5jdGlvbiA6ICJOMzAiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5vbl91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcmlzaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExOTI1NiwgMC4yMjExMjcsIDAuMzAyNjk3LCAwLjQwMzQwNSwgMC41MDM4MjUsIDAuNjA1MTMxLCAwLjcwNjgxIiwgXAotICAgICAgICAgICIwLjEyOTQ4MiwgMC4yMzE1MTgsIDAuMzEzMDEsIDAuNDE0MDk4LCAwLjUxNTIxNiwgMC42MTUzOCwgMC43MTcwMTIiLCBcCi0gICAgICAgICAgIjAuMTQyMTQzLCAwLjI0NDE1NiwgMC4zMjU2MzMsIDAuNDI2NzA1LCAwLjUyNzgzNywgMC42MjgwMzksIDAuNzI5Njc2IiwgXAotICAgICAgICAgICIwLjE1NDAxNSwgMC4yNTU5ODUsIDAuMzM3MTEyLCAwLjQzODE4NCwgMC41Mzg5NDQsIDAuNjQwMDc2LCAwLjc0MTQ5NSIsIFwKLSAgICAgICAgICAiMC4xNjQxODEsIDAuMjY2MjI3LCAwLjM0NzczNywgMC40NDg3NjgsIDAuNTQ5OTE1LCAwLjY1MDExOCwgMC43NTIxOTUiLCBcCi0gICAgICAgICAgIjAuMTc4OTk5LCAwLjI4MDk4NiwgMC4zNjI0NDEsIDAuNDYzNDU5LCAwLjU2NDQ5OCwgMC42NjQ5NTUsIDAuNzY2MjM5IiwgXAotICAgICAgICAgICIwLjE4OTkyNSwgMC4yOTE5MTgsIDAuMzcyNzksIDAuNDc0MTE0LCAwLjU3NTE2OCwgMC42NzY0MDYsIDAuNzc3NDEiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDUyNjM1LCAwLjI1NzUzNSwgMC40MjM3ODIsIDAuNjMyODg3LCAwLjgzOTk2LCAxLjA0ODA0LCAxLjI1OTI4IiwgXAotICAgICAgICAgICIwLjA1MjY5NiwgMC4yNTc2NTYsIDAuNDI0MDYxLCAwLjYzMTk5NywgMC44Mzk5MiwgMS4wNDg3OSwgMS4yNTkzOCIsIFwKLSAgICAgICAgICAiMC4wNTI2NiwgMC4yNTcxMDgsIDAuNDIzOTY2LCAwLjYzMTY0MSwgMC44Mzk5MjgsIDEuMDQ4NzUsIDEuMjU5MzgiLCBcCi0gICAgICAgICAgIjAuMDUyNzA3LCAwLjI1NzU3OSwgMC40MjM0MTQsIDAuNjMyODksIDAuODQwMjc3LCAxLjA0ODI2LCAxLjI1OTM0IiwgXAotICAgICAgICAgICIwLjA1MjYzMiwgMC4yNTc0MzYsIDAuNDIzOTg1LCAwLjYzMTY0LCAwLjg0MTgyNCwgMS4wNDg2OCwgMS4yNTkzNiIsIFwKLSAgICAgICAgICAiMC4wNTI2ODIsIDAuMjU2NjIsIDAuNDIzNjY5LCAwLjYzMTc0NCwgMC44NDE4MjMsIDEuMDQ4NDksIDEuMjU4NjIiLCBcCi0gICAgICAgICAgIjAuMDUyNzIyLCAwLjI1NzE5NiwgMC40MjQyMDksIDAuNjMyODg5LCAwLjg0MTc3NSwgMS4wNTA1NiwgMS4yNTkyOCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMzMwODUsIDAuMjM3NzM0LCAwLjMyMDU4NywgMC40MjM5NjgsIDAuNTI3MDYxLCAwLjYzMDUwOSwgMC43MzM4NzgiLCBcCi0gICAgICAgICAgIjAuMTQzMywgMC4yNDc4NjMsIDAuMzMwMzIsIDAuNDM0MzExLCAwLjUzNzM0MiwgMC42NDA3MTEsIDAuNzQ0MTA3IiwgXAotICAgICAgICAgICIwLjE1NjA5NCwgMC4yNjA3NDQsIDAuMzQzNzAyLCAwLjQ0Njc3NywgMC41NTAyMzYsIDAuNjUzNTI2LCAwLjc1Njk1MSIsIFwKLSAgICAgICAgICAiMC4xNjgwMDcsIDAuMjcyNjM4LCAwLjM1NTUxNiwgMC40NTkwMTksIDAuNTYyMTQxLCAwLjY2NTM5NCwgMC43NjkwMiIsIFwKLSAgICAgICAgICAiMC4xNzg1MzksIDAuMjgzMTYyLCAwLjM2NjE0NCwgMC40NjkxODcsIDAuNTcyNzA1LCAwLjY3NTk1NiwgMC43Nzk1NzEiLCBcCi0gICAgICAgICAgIjAuMTkzMjQyLCAwLjI5NzcwMSwgMC4zODA4NzUsIDAuNDg0MDE1LCAwLjU4NzI0MiwgMC42OTA2NjEsIDAuNzk0Mjg5IiwgXAotICAgICAgICAgICIwLjIwNDUwNiwgMC4zMDkxNjYsIDAuMzkyMTQyLCAwLjQ5NTEzMSwgMC41OTg1NDYsIDAuNzAyMTEzLCAwLjgwNTM1MiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTI3NzksIDAuMjU4NDcyLCAwLjQyNTQ3OCwgMC42MzQ3NTYsIDAuODQ0Njc5LCAxLjA1NDk4LCAxLjI2Mjg1IiwgXAotICAgICAgICAgICIwLjA1MjY1MiwgMC4yNTg3NDYsIDAuNDI1NDE2LCAwLjYzNDk1OSwgMC44NDUyNzEsIDEuMDU1LCAxLjI2NDY5IiwgXAotICAgICAgICAgICIwLjA1MjU5OSwgMC4yNTg0NjYsIDAuNDI1NjY2LCAwLjYzNTk2MSwgMC44NDU2NDgsIDEuMDU0ODgsIDEuMjY0OTMiLCBcCi0gICAgICAgICAgIjAuMDUyNjg3LCAwLjI1ODU0NSwgMC40MjU0NzQsIDAuNjM1MDg5LCAwLjg0NTU4NSwgMS4wNTQxLCAxLjI2NDkyIiwgXAotICAgICAgICAgICIwLjA1Mjc4MSwgMC4yNTkwNzcsIDAuNDI1NjE3LCAwLjYzNTY3OCwgMC44NDU2NTUsIDEuMDU0OTIsIDEuMjYzNTEiLCBcCi0gICAgICAgICAgIjAuMDUyNzI3LCAwLjI1OTA3NywgMC40MjU1NTQsIDAuNjM2MDksIDAuODQ0NjQyLCAxLjA1NDkyLCAxLjI2MzI2IiwgXAotICAgICAgICAgICIwLjA1MjYxNCwgMC4yNTgzNjgsIDAuNDI1NTMyLCAwLjYzNTYwNCwgMC44NDUxOTMsIDEuMDU1NDIsIDEuMjY0OTUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1MDYzLCAwLjAwNTA5NCwgMC4wMDUwOTEsIDAuMDA1MDg4LCAwLjAwNTA4NSwgMC4wMDUwODQsIDAuMDA1MDgyIiwgXAotICAgICAgICAgICIwLjAwNTA0NywgMC4wMDUwOCwgMC4wMDUwNzYsIDAuMDA1MDcyLCAwLjAwNTA3LCAwLjAwNTA2OCwgMC4wMDUwNjciLCBcCi0gICAgICAgICAgIjAuMDA1MDM5LCAwLjAwNTA3MiwgMC4wMDUwNjgsIDAuMDA1MDY1LCAwLjAwNTA2MiwgMC4wMDUwNjEsIDAuMDA1MDU5IiwgXAotICAgICAgICAgICIwLjAwNTAzOSwgMC4wMDUwNzMsIDAuMDA1MDcsIDAuMDA1MDY1LCAwLjAwNTA2MywgMC4wMDUwNjIsIDAuMDA1MDYiLCBcCi0gICAgICAgICAgIjAuMDA1MDQ3LCAwLjAwNTA4MiwgMC4wMDUwNzksIDAuMDA1MDc1LCAwLjAwNTA3MiwgMC4wMDUwNywgMC4wMDUwNjkiLCBcCi0gICAgICAgICAgIjAuMDA1MDU3LCAwLjAwNTA5NCwgMC4wMDUwOSwgMC4wMDUwODYsIDAuMDA1MDg0LCAwLjAwNTA4MiwgMC4wMDUwODEiLCBcCi0gICAgICAgICAgIjAuMDA1MDY5LCAwLjAwNTEwNywgMC4wMDUxMDQsIDAuMDA1MSwgMC4wMDUwOTcsIDAuMDA1MDk1LCAwLjAwNTA5NSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNTM1MSwgMC4wMDU0MDIsIDAuMDA1NDA4LCAwLjAwNTQxMSwgMC4wMDU0MTMsIDAuMDA1NDE0LCAwLjAwNTQxNCIsIFwKLSAgICAgICAgICAiMC4wMDUzMzcsIDAuMDA1Mzg4LCAwLjAwNTM5MywgMC4wMDUzOTYsIDAuMDA1Mzk4LCAwLjAwNTQsIDAuMDA1NCIsIFwKLSAgICAgICAgICAiMC4wMDUzMzYsIDAuMDA1Mzg2LCAwLjAwNTM5MywgMC4wMDUzOTYsIDAuMDA1Mzk4LCAwLjAwNTM5OSwgMC4wMDUzOTgiLCBcCi0gICAgICAgICAgIjAuMDA1MzQzLCAwLjAwNTM5NCwgMC4wMDU0LCAwLjAwNTQwMywgMC4wMDU0MDQsIDAuMDA1NDA1LCAwLjAwNTQwNiIsIFwKLSAgICAgICAgICAiMC4wMDUzNTcsIDAuMDA1NDA5LCAwLjAwNTQxNCwgMC4wMDU0MTcsIDAuMDA1NDE5LCAwLjAwNTQyLCAwLjAwNTQyIiwgXAotICAgICAgICAgICIwLjAwNTM3MywgMC4wMDU0MjUsIDAuMDA1NDMsIDAuMDA1NDM0LCAwLjAwNTQzNSwgMC4wMDU0MzYsIDAuMDA1NDM3IiwgXAotICAgICAgICAgICIwLjAwNTM5NiwgMC4wMDU0NDcsIDAuMDA1NDUzLCAwLjAwNTQ1NiwgMC4wMDU0NTcsIDAuMDA1NDU4LCAwLjAwNTQ1OSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUU4pICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC41MTQ5MDE7Ci0gICAgZnVuY3Rpb24gOiAiUUJJTlQiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5vbl91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcmlzaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE1NTA1MywgMC4yNTU4MywgMC4zMzY1NDMsIDAuNDM3NDIyLCAwLjUzODI3MSwgMC42MzkxMjUsIDAuNzQwMDk2IiwgXAotICAgICAgICAgICIwLjE2NTI3OCwgMC4yNjYwNTcsIDAuMzQ2NjYsIDAuNDQ3NzEyLCAwLjU0ODQ5MywgMC42NDkzNTksIDAuNzUwMjQyIiwgXAotICAgICAgICAgICIwLjE3ODA4NiwgMC4yNzg4NDcsIDAuMzU5NTg3LCAwLjQ2MDM4OCwgMC41NjEyNiwgMC42NjIxMzYsIDAuNzYzMDE2IiwgXAotICAgICAgICAgICIwLjE4OTk4NywgMC4yOTA3NTMsIDAuMzcxNDY1LCAwLjQ3MjQxMSwgMC41NzMxOTMsIDAuNjc0MDQ3LCAwLjc3NTA2IiwgXAotICAgICAgICAgICIwLjIwMDUxNywgMC4zMDEyODIsIDAuMzgxOTksIDAuNDgyODMzLCAwLjU4MzcxMywgMC42ODQ1NzYsIDAuNzg1NjEzIiwgXAotICAgICAgICAgICIwLjIxNTIxOCwgMC4zMTU5MTMsIDAuMzk2NjkyLCAwLjQ5NzQ4LCAwLjU5ODM2LCAwLjY5OTIyOSwgMC44MDAyODciLCBcCi0gICAgICAgICAgIjAuMjI2NDksIDAuMzI3MjEsIDAuNDA3OTYxLCAwLjUwODc1MSwgMC42MDk2MiwgMC43MTA1NywgMC44MTEzNzEiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDUwNjcyLCAwLjI1NjE2OCwgMC40MjI0MjEsIDAuNjMwNDI0LCAwLjgzODk3MywgMS4wNDc5MiwgMS4yNTQ1MyIsIFwKLSAgICAgICAgICAiMC4wNTA2NjYsIDAuMjU2MjQ1LCAwLjQyMjY0NSwgMC42MzA2MDYsIDAuODM5NjkxLCAxLjA0Nzk0LCAxLjI1NjIiLCBcCi0gICAgICAgICAgIjAuMDUwNjk0LCAwLjI1NjE2NywgMC40MjI1OSwgMC42MzE1OTksIDAuODQwMDY2LCAxLjA0Nzg2LCAxLjI1NjcyIiwgXAotICAgICAgICAgICIwLjA1MDY2OSwgMC4yNTYxODIsIDAuNDIyNDA4LCAwLjYzMDgxOSwgMC44NDAwMjUsIDEuMDQ3MDUsIDEuMjU2NzEiLCBcCi0gICAgICAgICAgIjAuMDUwNjgyLCAwLjI1NjczNCwgMC40MjI1ODMsIDAuNjMxNDE2LCAwLjg0MDA2MywgMS4wNDc4NywgMS4yNTUxMiIsIFwKLSAgICAgICAgICAiMC4wNTA2NzksIDAuMjU2NzMzLCAwLjQyMjU2NCwgMC42MzE3MzYsIDAuODM4ODgzLCAxLjA0Nzg2LCAxLjI1NDc1IiwgXAotICAgICAgICAgICIwLjA1MDY5NywgMC4yNTYxNDgsIDAuNDIyNTYyLCAwLjYzMTQyMiwgMC44Mzk2OCwgMS4wNDg1MywgMS4yNTY3NSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNDQwNzcsIDAuMjQ3NDg2LCAwLjMzMDI5MSwgMC40MzM2MTEsIDAuNTM2ODgsIDAuNjQwMjYsIDAuNzQzNzc4IiwgXAotICAgICAgICAgICIwLjE1NDMxNCwgMC4yNTc3MzIsIDAuMzQwNTI2LCAwLjQ0MzkyMywgMC41NDczMSwgMC42NTA2MDcsIDAuNzUzOTg3IiwgXAotICAgICAgICAgICIwLjE2Njk2LCAwLjI3MDM2NSwgMC4zNTMxNTIsIDAuNDU2NTQ1LCAwLjU1OTkzNiwgMC42NjMyNDMsIDAuNzY2NjIzIiwgXAotICAgICAgICAgICIwLjE3ODg0MywgMC4yODIyNSwgMC4zNjUwMDUsIDAuNDY4MzYzLCAwLjU3MTc0OSwgMC42NzUxMzksIDAuNzc4NTExIiwgXAotICAgICAgICAgICIwLjE4OTAzMSwgMC4yOTI0MTYsIDAuMzc1MjA0LCAwLjQ3ODU5NywgMC41ODE5OTIsIDAuNjg1MzIxLCAwLjc4ODgxNCIsIFwKLSAgICAgICAgICAiMC4yMDM4MjgsIDAuMzA3MjQ4LCAwLjM5MDAyNSwgMC40OTM0MDYsIDAuNTk2Nzc3LCAwLjcwMDExOSwgMC44MDMzODQiLCBcCi0gICAgICAgICAgIjAuMjE0NzY3LCAwLjMxODE1OSwgMC40MDA4OTMsIDAuNTA0MjczLCAwLjYwNzY0OCwgMC43MTEwNTYsIDAuODE0NDE3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1MDkyNiwgMC4yNTgwMiwgMC40MjUyNDYsIDAuNjM1NTM5LCAwLjg0NDIxOCwgMS4wNTM1LCAxLjI2NDQyIiwgXAotICAgICAgICAgICIwLjA1MDkzNiwgMC4yNTc4NzEsIDAuNDI1MjcyLCAwLjYzNDYwMSwgMC44NDQwOTcsIDEuMDUzNzcsIDEuMjY0NDMiLCBcCi0gICAgICAgICAgIjAuMDUwOTI3LCAwLjI1Nzg3NCwgMC40MjUyNTYsIDAuNjM0MjY2LCAwLjg0Mzc1NCwgMS4wNTM3NywgMS4yNjQ0MyIsIFwKLSAgICAgICAgICAiMC4wNTA5MzMsIDAuMjU3OTMzLCAwLjQyNTI2OSwgMC42MzU1NDEsIDAuODQ0MjE0LCAxLjA1MzY1LCAxLjI2NDM4IiwgXAotICAgICAgICAgICIwLjA1MDkyMywgMC4yNTc4ODgsIDAuNDI1MjU4LCAwLjYzNDQ5NSwgMC44NDUyNDEsIDEuMDUzNzUsIDEuMjY0NDMiLCBcCi0gICAgICAgICAgIjAuMDUwOTM0LCAwLjI1NzkwMSwgMC40MjUyMzcsIDAuNjM0NDUzLCAwLjg0NTI2NCwgMS4wNTM3LCAxLjI2Mzk2IiwgXAotICAgICAgICAgICIwLjA1MDkyNSwgMC4yNTc5MDksIDAuNDI1NDY1LCAwLjYzNTUzNywgMC44NDUwOTUsIDEuMDU0NzksIDEuMjY0MzQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1MzUxLCAwLjAwNTQwMiwgMC4wMDU0MDgsIDAuMDA1NDExLCAwLjAwNTQxMywgMC4wMDU0MTQsIDAuMDA1NDE0IiwgXAotICAgICAgICAgICIwLjAwNTMzNywgMC4wMDUzODgsIDAuMDA1MzkzLCAwLjAwNTM5NiwgMC4wMDUzOTgsIDAuMDA1NCwgMC4wMDU0IiwgXAotICAgICAgICAgICIwLjAwNTMzNiwgMC4wMDUzODYsIDAuMDA1MzkzLCAwLjAwNTM5NiwgMC4wMDUzOTgsIDAuMDA1Mzk5LCAwLjAwNTM5OCIsIFwKLSAgICAgICAgICAiMC4wMDUzNDMsIDAuMDA1Mzk0LCAwLjAwNTQsIDAuMDA1NDAzLCAwLjAwNTQwNCwgMC4wMDU0MDUsIDAuMDA1NDA2IiwgXAotICAgICAgICAgICIwLjAwNTM1NywgMC4wMDU0MDksIDAuMDA1NDE0LCAwLjAwNTQxNywgMC4wMDU0MTksIDAuMDA1NDIsIDAuMDA1NDIiLCBcCi0gICAgICAgICAgIjAuMDA1MzczLCAwLjAwNTQyNSwgMC4wMDU0MywgMC4wMDU0MzQsIDAuMDA1NDM1LCAwLjAwNTQzNiwgMC4wMDU0MzciLCBcCi0gICAgICAgICAgIjAuMDA1Mzk2LCAwLjAwNTQ0NywgMC4wMDU0NTMsIDAuMDA1NDU2LCAwLjAwNTQ1NywgMC4wMDU0NTgsIDAuMDA1NDU5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1MDYzLCAwLjAwNTA5NCwgMC4wMDUwOTEsIDAuMDA1MDg4LCAwLjAwNTA4NSwgMC4wMDUwODQsIDAuMDA1MDgyIiwgXAotICAgICAgICAgICIwLjAwNTA0NywgMC4wMDUwOCwgMC4wMDUwNzYsIDAuMDA1MDcyLCAwLjAwNTA3LCAwLjAwNTA2OCwgMC4wMDUwNjciLCBcCi0gICAgICAgICAgIjAuMDA1MDM5LCAwLjAwNTA3MiwgMC4wMDUwNjgsIDAuMDA1MDY1LCAwLjAwNTA2MiwgMC4wMDUwNjEsIDAuMDA1MDU5IiwgXAotICAgICAgICAgICIwLjAwNTAzOSwgMC4wMDUwNzMsIDAuMDA1MDcsIDAuMDA1MDY1LCAwLjAwNTA2MywgMC4wMDUwNjIsIDAuMDA1MDYiLCBcCi0gICAgICAgICAgIjAuMDA1MDQ3LCAwLjAwNTA4MiwgMC4wMDUwNzksIDAuMDA1MDc1LCAwLjAwNTA3MiwgMC4wMDUwNywgMC4wMDUwNjkiLCBcCi0gICAgICAgICAgIjAuMDA1MDU3LCAwLjAwNTA5NCwgMC4wMDUwOSwgMC4wMDUwODYsIDAuMDA1MDg0LCAwLjAwNTA4MiwgMC4wMDUwODEiLCBcCi0gICAgICAgICAgIjAuMDA1MDY5LCAwLjAwNTEwNywgMC4wMDUxMDQsIDAuMDA1MSwgMC4wMDUwOTcsIDAuMDA1MDk1LCAwLjAwNTA5NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUk4pICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDU5NzQyMzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA1OTc0MjM7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNTk2MTI0OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzA1NSwgMC4wMDMwMzYsIDAuMDAzMDI2LCAwLjAwMzAyMiwgMC4wMDMwMiwgMC4wMDMwMjIsIDAuMDAzMDI0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA1NTQ2LCAwLjAwNTUzNywgMC4wMDU1MzQsIDAuMDA1NTM1LCAwLjAwNTU0MSwgMC4wMDU1NTUsIDAuMDA1NTcyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIkQmIVNFIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMV9BTl9TRV9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjA4NzUsIC0wLjA3NjI1LCAtMC4wNywgLTAuMDYzNzUsIC0wLjA2Mzc1LCAtMC4wNTM3NSwgLTAuMDUxMjUiLCBcCi0gICAgICAgICAgIi0wLjA5MjUsIC0wLjA4NzUsIC0wLjA4MTI1LCAtMC4wNzUsIC0wLjA2ODc1LCAtMC4wNjUsIC0wLjA1NjI1IiwgXAotICAgICAgICAgICItMC4xMDUsIC0wLjEsIC0wLjA5Mzc1LCAtMC4wODc1LCAtMC4wODEyNSwgLTAuMDc3NSwgLTAuMDY4NzUiLCBcCi0gICAgICAgICAgIi0wLjExNzUsIC0wLjEwNjI1LCAtMC4xLCAtMC4xLCAtMC4wOTM3NSwgLTAuMDgzNzUsIC0wLjA4MTI1IiwgXAotICAgICAgICAgICItMC4xMjM3NSwgLTAuMTE4NzUsIC0wLjExMjUsIC0wLjEwNjI1LCAtMC4xLCAtMC4wOTYyNSwgLTAuMDg3NSIsIFwKLSAgICAgICAgICAiLTAuMTQsIC0wLjEzNSwgLTAuMTI4NzUsIC0wLjEyMjUsIC0wLjExNjI1LCAtMC4xMTI1LCAtMC4xMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMTU1LCAtMC4xNSwgLTAuMTQzNzUsIC0wLjEzNzUsIC0wLjEzMTI1LCAtMC4xMjc1LCAtMC4xMTg3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAxODc1LCAtMC4wMDc1LCAwLjAwNSwgMC4wMTEyNSwgMC4wMjM3NSwgMC4wMzM3NSwgMC4wNDI1IiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLjAwNjI1LCAwLjAxMjUsIDAuMDIyNSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAsIDAuMDEsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwMjUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAxODc1LCAtMC4wMDg3NSwgMCIsIFwKLSAgICAgICAgICAiLTAuMDY1LCAtMC4wNiwgLTAuMDUzNzUsIC0wLjA0MTI1LCAtMC4wMzUsIC0wLjAyNSwgLTAuMDE2MjUiLCBcCi0gICAgICAgICAgIi0wLjA3Mzc1LCAtMC4wNjg3NSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wMzM3NSwgLTAuMDI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJEJiFTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzFfQU5fU0VfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMzEyNSwgMC4xMiwgMC4xMDc1LCAwLjEwMTI1LCAwLjA5NSwgMC4wODUsIDAuMDc2MjUiLCBcCi0gICAgICAgICAgIjAuMTM2MjUsIDAuMTI1LCAwLjExODc1LCAwLjEwNjI1LCAwLjEsIDAuMDksIDAuMDg3NSIsIFwKLSAgICAgICAgICAiMC4xNDg3NSwgMC4xMzc1LCAwLjEyNSwgMC4xMTg3NSwgMC4xMTI1LCAwLjEwMjUsIDAuMSIsIFwKLSAgICAgICAgICAiMC4xNjEyNSwgMC4xNSwgMC4xMzc1LCAwLjEzMTI1LCAwLjEyNSwgMC4xMTUsIDAuMTA2MjUiLCBcCi0gICAgICAgICAgIjAuMTY3NSwgMC4xNjI1LCAwLjE1LCAwLjEzNzUsIDAuMTMxMjUsIDAuMTI3NSwgMC4xMTg3NSIsIFwKLSAgICAgICAgICAiMC4xODM3NSwgMC4xNzg3NSwgMC4xNjYyNSwgMC4xNTM3NSwgMC4xNDc1LCAwLjE0Mzc1LCAwLjEzNSIsIFwKLSAgICAgICAgICAiMC4xOTg3NSwgMC4xODc1LCAwLjE3NSwgMC4xNjg3NSwgMC4xNjI1LCAwLjE1MjUsIDAuMTUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjg3NSwgMC4wNTc1LCAwLjA0NSwgMC4wMzI1LCAwLjAyLCAwLjAxLCAtMC4wMDUiLCBcCi0gICAgICAgICAgIjAuMDgsIDAuMDY4NzUsIDAuMDU2MjUsIDAuMDQzNzUsIDAuMDMxMjUsIDAuMDE1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICIwLjA4NjI1LCAwLjA4MTI1LCAwLjA2ODc1LCAwLjA1NjI1LCAwLjA0Mzc1LCAwLjAyNzUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMDk4NzUsIDAuMDg3NSwgMC4wNzUsIDAuMDY4NzUsIDAuMDU2MjUsIDAuMDQsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMTExMjUsIDAuMSwgMC4wODc1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNTI1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjEyNzUsIDAuMTE2MjUsIDAuMTAzNzUsIDAuMDkxMjUsIDAuMDg1LCAwLjA2ODc1LCAwLjA2IiwgXAotICAgICAgICAgICIwLjE0MjUsIDAuMTMxMjUsIDAuMTE4NzUsIDAuMTA2MjUsIDAuMDkzNzUsIDAuMDgzNzUsIDAuMDY4NzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFNFKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDExODY5OTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDExODY4MzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDExODY5OTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDQwOTQsIDAuMDA0MDc1LCAwLjAwNDA3OCwgMC4wMDQwODgsIDAuMDA0MTA0LCAwLjAwNDEzLCAwLjAwNDE1NiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNTUzMywgMC4wMDU0OTUsIDAuMDA1NDg2LCAwLjAwNTUxMSwgMC4wMDU1MTMsIDAuMDA1NTQzLCAwLjAwNTU4MiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRCYhUk4mU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1JOX0VRXzBfQU5fU0lfRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wNDM3NSwgLTAuMDM4NzUsIC0wLjAyNjI1LCAtMC4wMiwgLTAuMDIsIC0wLjAxLCAtMC4wMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDIxMjUsIC0wLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjA2NzUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAyNzUsIC0wLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDczNzUsIC0wLjA2ODc1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjA0LCAtMC4wMzc1IiwgXAotICAgICAgICAgICItMC4wODYyNSwgLTAuMDgxMjUsIC0wLjA3NSwgLTAuMDY4NzUsIC0wLjA2MjUsIC0wLjA1MjUsIC0wLjA1IiwgXAotICAgICAgICAgICItMC4xMDI1LCAtMC4wOTc1LCAtMC4wOTEyNSwgLTAuMDg1LCAtMC4wNzg3NSwgLTAuMDY4NzUsIC0wLjA2NjI1IiwgXAotICAgICAgICAgICItMC4xMTc1LCAtMC4xMTI1LCAtMC4xLCAtMC4wOTM3NSwgLTAuMDg3NSwgLTAuMDgzNzUsIC0wLjA3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAsIDAuMDExMjUsIDAuMDIzNzUsIDAuMDM2MjUsIDAuMDQyNSwgMC4wNTI1LCAwLjA2MTI1IiwgXAotICAgICAgICAgICItMC4wMDUsIDAsIDAuMDEyNSwgMC4wMjUsIDAuMDMxMjUsIDAuMDQ3NSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiLTAuMDE3NSwgLTAuMDA2MjUsIDAsIDAuMDEyNSwgMC4wMjUsIDAuMDM1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLCAwLjAxMjUsIDAuMDIyNSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLCAwLjAxNjI1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDQ2MjUsIC0wLjA0MTI1LCAtMC4wMjg3NSwgLTAuMDE2MjUsIC0wLjAxLCAwLCAwLjAwODc1IiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMDg3NSwgMCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJEJlJOJiFTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzFfQU5fUk5fRVFfMV9BTl9TSV9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAyNSwgLTAuMDEzNzUsIC0wLjAwNzUsIDAuMDA1LCAwLjAxMTI1LCAwLjAyNzUsIDAuMDM2MjUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMjUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLjAwNjI1LCAwLjAxNjI1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjAzNzUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLjAwMzc1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjA1NSwgLTAuMDUsIC0wLjAzNzUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAwODc1LCAwIiwgXAotICAgICAgICAgICItMC4wNjc1LCAtMC4wNTYyNSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAyNSwgLTAuMDE1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDc3NSwgLTAuMDY2MjUsIC0wLjA1Mzc1LCAtMC4wNDc1LCAtMC4wMzUsIC0wLjAyNSwgLTAuMDE2MjUiLCBcCi0gICAgICAgICAgIi0wLjA4NjI1LCAtMC4wNzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNDM3NSwgLTAuMDMzNzUsIC0wLjAyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjA1NjI1LCAtMC4wNTEyNSwgLTAuMDQ1LCAtMC4wMzg3NSwgLTAuMDMyNSwgLTAuMDI4NzUsIC0wLjAyNjI1IiwgXAotICAgICAgICAgICItMC4wNjc1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wNCwgLTAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjA4LCAtMC4wNzUsIC0wLjA2ODc1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDUyNSwgLTAuMDQzNzUiLCBcCi0gICAgICAgICAgIi0wLjA5MjUsIC0wLjA4NzUsIC0wLjA3NSwgLTAuMDc1LCAtMC4wNjg3NSwgLTAuMDU4NzUsIC0wLjA1NjI1IiwgXAotICAgICAgICAgICItMC4wOTg3NSwgLTAuMDkzNzUsIC0wLjA4NzUsIC0wLjA4MTI1LCAtMC4wNzUsIC0wLjA3MTI1LCAtMC4wNjI1IiwgXAotICAgICAgICAgICItMC4xMTUsIC0wLjEwMzc1LCAtMC4wOTc1LCAtMC4wOTEyNSwgLTAuMDg1LCAtMC4wODEyNSwgLTAuMDc4NzUiLCBcCi0gICAgICAgICAgIi0wLjExNzUsIC0wLjExMjUsIC0wLjEwNjI1LCAtMC4xLCAtMC4wOTM3NSwgLTAuMDksIC0wLjA4NzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEJiFSTiZTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fUk5fRVFfMF9BTl9TSV9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3NSwgMC4wNywgMC4wNTc1LCAwLjA1MTI1LCAwLjA0NSwgMC4wMzUsIDAuMDI2MjUiLCBcCi0gICAgICAgICAgIjAuMDg2MjUsIDAuMDc1LCAwLjA2ODc1LCAwLjA1NjI1LCAwLjA1LCAwLjA0LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIjAuMDk4NzUsIDAuMDg3NSwgMC4wNzUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNTI1LCAwLjA1IiwgXAotICAgICAgICAgICIwLjExMTI1LCAwLjEsIDAuMDg3NSwgMC4wODEyNSwgMC4wNzUsIDAuMDY1LCAwLjA2MjUiLCBcCi0gICAgICAgICAgIjAuMTIzNzUsIDAuMTEyNSwgMC4xLCAwLjA5Mzc1LCAwLjA4NzUsIDAuMDc3NSwgMC4wNjg3NSIsIFwKLSAgICAgICAgICAiMC4xNCwgMC4xMjg3NSwgMC4xMTYyNSwgMC4xMSwgMC4xMDM3NSwgMC4wOTM3NSwgMC4wOTEyNSIsIFwKLSAgICAgICAgICAiMC4xNTUsIDAuMTQzNzUsIDAuMTMxMjUsIDAuMTI1LCAwLjExODc1LCAwLjEwODc1LCAwLjEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzc1LCAwLjAyNjI1LCAwLjAxMzc1LCAwLjAwNzUsIC0wLjAwNSwgLTAuMDIxMjUsIC0wLjAzIiwgXAotICAgICAgICAgICIwLjA0ODc1LCAwLjAzNzUsIDAuMDI1LCAwLjAxMjUsIDAuMDA2MjUsIC0wLjAxLCAtMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4wNjEyNSwgMC4wNSwgMC4wMzc1LCAwLjAyNSwgMC4wMTg3NSwgMC4wMDI1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiMC4wNzM3NSwgMC4wNjI1LCAwLjA1LCAwLjAzNzUsIDAuMDI1LCAwLjAxNSwgMCIsIFwKLSAgICAgICAgICAiMC4wODYyNSwgMC4wNzUsIDAuMDYyNSwgMC4wNSwgMC4wMzc1LCAwLjAyMTI1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMDk2MjUsIDAuMDg1LCAwLjA3MjUsIDAuMDY2MjUsIDAuMDUzNzUsIDAuMDM3NSwgMC4wMjg3NSIsIFwKLSAgICAgICAgICAiMC4xMTEyNSwgMC4xLCAwLjA4NzUsIDAuMDc1LCAwLjA2MjUsIDAuMDUyNSwgMC4wMzc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJEJlJOJiFTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzFfQU5fUk5fRVFfMV9BTl9TSV9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3NSwgMC4wNjM3NSwgMC4wNTEyNSwgMC4wMzg3NSwgMC4wMjYyNSwgMC4wMTYyNSwgMC4wMDc1IiwgXAotICAgICAgICAgICIwLjA4NjI1LCAwLjA3NSwgMC4wNjI1LCAwLjA1LCAwLjAzNzUsIDAuMDI3NSwgMC4wMTI1IiwgXAotICAgICAgICAgICIwLjA5ODc1LCAwLjA4NzUsIDAuMDc1LCAwLjA2MjUsIDAuMDUsIDAuMDQsIDAuMDI1IiwgXAotICAgICAgICAgICIwLjEwNSwgMC4wOTM3NSwgMC4wODEyNSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA0NjI1LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIjAuMTE3NSwgMC4xMDYyNSwgMC4wOTM3NSwgMC4wODEyNSwgMC4wNjg3NSwgMC4wNTI1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjEyNzUsIDAuMTE2MjUsIDAuMTAzNzUsIDAuMDkxMjUsIDAuMDc4NzUsIDAuMDY4NzUsIDAuMDUzNzUiLCBcCi0gICAgICAgICAgIjAuMTM2MjUsIDAuMTI1LCAwLjExMjUsIDAuMSwgMC4wODc1LCAwLjA3NzUsIDAuMDYyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEsIDAuMDg4NzUsIDAuMDgyNSwgMC4wNywgMC4wNjM3NSwgMC4wNiwgMC4wNTEyNSIsIFwKLSAgICAgICAgICAiMC4xMTEyNSwgMC4xLCAwLjA5Mzc1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNjUsIDAuMDYyNSIsIFwKLSAgICAgICAgICAiMC4xMjM3NSwgMC4xMTI1LCAwLjEsIDAuMDkzNzUsIDAuMDg3NSwgMC4wNzc1LCAwLjA3NSIsIFwKLSAgICAgICAgICAiMC4xMzYyNSwgMC4xMjUsIDAuMTEyNSwgMC4xMDYyNSwgMC4xLCAwLjA5LCAwLjA4MTI1IiwgXAotICAgICAgICAgICIwLjE0MjUsIDAuMTMxMjUsIDAuMTI1LCAwLjExMjUsIDAuMTA2MjUsIDAuMDk2MjUsIDAuMDkzNzUiLCBcCi0gICAgICAgICAgIjAuMTUyNSwgMC4xNDc1LCAwLjEzNSwgMC4xMjI1LCAwLjExNjI1LCAwLjExMjUsIDAuMTAzNzUiLCBcCi0gICAgICAgICAgIjAuMTYxMjUsIDAuMTUsIDAuMTQzNzUsIDAuMTMxMjUsIDAuMTI1LCAwLjEyMTI1LCAwLjExMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFNJKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2MjM0NjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MjIxNzY7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjIzNDY7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyNTY4LCAwLjAwMjU1MSwgMC4wMDI1NDIsIDAuMDAyNTM4LCAwLjAwMjUzNywgMC4wMDI1MzksIDAuMDAyNTUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDQzNTcsIDAuMDA0MzQ3LCAwLjAwNDM0MiwgMC4wMDQzNCwgMC4wMDQzNDEsIDAuMDA0MzQxLCAwLjAwNDM1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlNFIjsKLSAgICAgIHNkZl9jb25kIDogIlNFID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjA1LCAtMC4wNDUsIC0wLjAzMjUsIC0wLjAyNjI1LCAtMC4wMjYyNSwgLTAuMDE2MjUsIC0wLjAwNzUiLCBcCi0gICAgICAgICAgIi0wLjA2MTI1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMjc1LCAtMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDY3NSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDMzNzUsIC0wLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wOCwgLTAuMDc1LCAtMC4wNjg3NSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA0NjI1LCAtMC4wMzc1IiwgXAotICAgICAgICAgICItMC4wOTI1LCAtMC4wODEyNSwgLTAuMDc1LCAtMC4wNjg3NSwgLTAuMDYyNSwgLTAuMDU4NzUsIC0wLjA1IiwgXAotICAgICAgICAgICItMC4xMDg3NSwgLTAuMDk3NSwgLTAuMDkxMjUsIC0wLjA4NSwgLTAuMDc4NzUsIC0wLjA3NSwgLTAuMDY2MjUiLCBcCi0gICAgICAgICAgIi0wLjExNzUsIC0wLjExMjUsIC0wLjEwNjI1LCAtMC4xLCAtMC4wOTM3NSwgLTAuMDgzNzUsIC0wLjA4MTI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDEyNSwgLTAuMDAxMjUsIDAuMDA1LCAwLjAxNzUsIDAuMDIzNzUsIDAuMDMzNzUsIDAuMDQ4NzUiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTI1LCAwLCAwLjAwNjI1LCAwLjAxODc1LCAwLjAyODc1LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMjUsIC0wLjAxMjUsIDAsIDAuMDA2MjUsIDAuMDE2MjUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgMCwgMC4wMSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgMC4wMDM3NSwgMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wNTg3NSwgLTAuMDQ3NSwgLTAuMDQxMjUsIC0wLjAyODc1LCAtMC4wMjI1LCAtMC4wMTI1LCAtMC4wMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDY3NSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDIxMjUsIC0wLjAxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlNFIjsKLSAgICAgIHNkZl9jb25kIDogIlNFID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4MTI1LCAwLjA3NjI1LCAwLjA2Mzc1LCAwLjA1NzUsIDAuMDUxMjUsIDAuMDQxMjUsIDAuMDMyNSIsIFwKLSAgICAgICAgICAiMC4wOTI1LCAwLjA4MTI1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDQ2MjUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMTA1LCAwLjA5Mzc1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNTg3NSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiMC4xMTc1LCAwLjEwNjI1LCAwLjA5Mzc1LCAwLjA4NzUsIDAuMDgxMjUsIDAuMDcxMjUsIDAuMDYyNSIsIFwKLSAgICAgICAgICAiMC4xMjM3NSwgMC4xMTI1LCAwLjEwNjI1LCAwLjA5Mzc1LCAwLjA4NzUsIDAuMDgzNzUsIDAuMDc1IiwgXAotICAgICAgICAgICIwLjE0LCAwLjEyODc1LCAwLjEyMjUsIDAuMTEsIDAuMTAzNzUsIDAuMSwgMC4wOTEyNSIsIFwKLSAgICAgICAgICAiMC4xNTUsIDAuMTQzNzUsIDAuMTMxMjUsIDAuMTI1LCAwLjExODc1LCAwLjEwODc1LCAwLjEwNjI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDYyNSwgMC4wNTEyNSwgMC4wMzg3NSwgMC4wMjYyNSwgMC4wMiwgMC4wMDM3NSwgLTAuMDA1IiwgXAotICAgICAgICAgICIwLjA3Mzc1LCAwLjA2MjUsIDAuMDUsIDAuMDM3NSwgMC4wMjUsIDAuMDE1LCAwIiwgXAotICAgICAgICAgICIwLjA4LCAwLjA2ODc1LCAwLjA1NjI1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDIxMjUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4wOTI1LCAwLjA4MTI1LCAwLjA2ODc1LCAwLjA1NjI1LCAwLjA0Mzc1LCAwLjAzMzc1LCAwLjAxODc1IiwgXAotICAgICAgICAgICIwLjA5ODc1LCAwLjA4NzUsIDAuMDc1LCAwLjA2ODc1LCAwLjA1NjI1LCAwLjA0LCAwLjAzMTI1IiwgXAotICAgICAgICAgICIwLjExNSwgMC4xMDM3NSwgMC4wOTEyNSwgMC4wNzg3NSwgMC4wNjYyNSwgMC4wNTYyNSwgMC4wNDEyNSIsIFwKLSAgICAgICAgICAiMC4xMjM3NSwgMC4xMTI1LCAwLjEsIDAuMDg3NSwgMC4wODEyNSwgMC4wNjUsIDAuMDU2MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogU0RGRlRSWDQgKgotICogLS0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKFNERkZUUlg0KSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuNzI1MzMzOwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIGZmIChOMzAsUUJJTlQpIHsKLSAgICBuZXh0X3N0YXRlIDogIigoU0UgU0kpICsgKCFTRSAoRCBSTikpKSI7Ci0gICAgY2xvY2tlZF9vbiA6ICJDSyI7Ci0gIH0KLSAgcGluKENLKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2Mzg4NjM7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjM4NjkzOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDYzODg2MzsKLSAgICBjbG9jayA6IHRydWU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzMDA4LCAwLjAwMjk3OCwgMC4wMDI5NzQsIDAuMDAyOTcyLCAwLjAwMjk4MSwgMC4wMDI5OTYsIDAuMDAzMDE3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA1NTQsIDAuMDA1NTE0LCAwLjAwNTUyLCAwLjAwNTUyMSwgMC4wMDU1NDMsIDAuMDA1NTg3LCAwLjAwNTYyNiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQmIVJOJiFTRSYhU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1JOX0VRXzBfQU5fU0VfRVFfMF9BTl9TSV9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMTQ4ODU3LCAwLjE1ODk5NCwgMC4xNzE1NTksIDAuMTgyODg4LCAwLjE5Mjc4NiwgMC4yMDY2NSwgMC4yMTcyMzIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjA4ODAxOSwgMC4wOTc5MzIsIDAuMTA5ODEyLCAwLjEyMDc1NSwgMC4xMjk4NjQsIDAuMTQyMTQ4LCAwLjE1MTQ4NyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjA5Mjg4OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYwOTIzODsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2MDkyODg7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzMDEyLCAwLjAwMjk5NSwgMC4wMDI5ODksIDAuMDAyOTg3LCAwLjAwMjk5NCwgMC4wMDMwMDgsIDAuMDAzMDIyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA1NTY4LCAwLjAwNTU1OCwgMC4wMDU1NTIsIDAuMDA1NTUxLCAwLjAwNTU1NSwgMC4wMDU1NjcsIDAuMDA1NTgzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlJOJiFTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJSTl9FUV8xX0FOX1NFX0VRXzAgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDg3NSwgLTAuMDgyNSwgLTAuMDc2MjUsIC0wLjA3LCAtMC4wNjM3NSwgLTAuMDYsIC0wLjA1NzUiLCBcCi0gICAgICAgICAgIi0wLjA5MjUsIC0wLjA4NzUsIC0wLjA4MTI1LCAtMC4wODEyNSwgLTAuMDc1LCAtMC4wNzEyNSwgLTAuMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMTA1LCAtMC4xLCAtMC4wOTM3NSwgLTAuMDkzNzUsIC0wLjA4NzUsIC0wLjA4Mzc1LCAtMC4wNzUiLCBcCi0gICAgICAgICAgIi0wLjExNzUsIC0wLjExMjUsIC0wLjEwNjI1LCAtMC4xLCAtMC4xLCAtMC4wOTYyNSwgLTAuMDg3NSIsIFwKLSAgICAgICAgICAiLTAuMTMsIC0wLjEyNSwgLTAuMTE4NzUsIC0wLjExMjUsIC0wLjExMjUsIC0wLjEwMjUsIC0wLjEiLCBcCi0gICAgICAgICAgIi0wLjE0NjI1LCAtMC4xNDEyNSwgLTAuMTM1LCAtMC4xMzUsIC0wLjEyODc1LCAtMC4xMjUsIC0wLjExNjI1IiwgXAotICAgICAgICAgICItMC4xNjEyNSwgLTAuMTU2MjUsIC0wLjE1LCAtMC4xNSwgLTAuMTQzNzUsIC0wLjE0LCAtMC4xMzEyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAxODc1LCAtMC4wMDc1LCAwLjAwNSwgMC4wMTEyNSwgMC4wMTc1LCAwLjAyNzUsIDAuMDM2MjUiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAsIDAuMDA2MjUsIDAuMDE2MjUsIDAuMDI1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDMxMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMC4wMSwgMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwMjUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA1NSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAxNSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA1ODc1LCAtMC4wNTM3NSwgLTAuMDQ3NSwgLTAuMDQ3NSwgLTAuMDM1LCAtMC4wMzEyNSwgLTAuMDIyNSIsIFwKLSAgICAgICAgICAiLTAuMDY3NSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDQsIC0wLjAzMTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJSTiYhU0UiOwotICAgICAgc2RmX2NvbmQgOiAiUk5fRVFfMV9BTl9TRV9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEzNzUsIDAuMTI2MjUsIDAuMTEzNzUsIDAuMTA3NSwgMC4xMDEyNSwgMC4wOTEyNSwgMC4wODg3NSIsIFwKLSAgICAgICAgICAiMC4xNDI1LCAwLjEzMTI1LCAwLjEyNSwgMC4xMTI1LCAwLjEwNjI1LCAwLjEwMjUsIDAuMDkzNzUiLCBcCi0gICAgICAgICAgIjAuMTU1LCAwLjE0Mzc1LCAwLjEzNzUsIDAuMTI1LCAwLjExODc1LCAwLjExNSwgMC4xMDYyNSIsIFwKLSAgICAgICAgICAiMC4xNjc1LCAwLjE1NjI1LCAwLjE0Mzc1LCAwLjEzNzUsIDAuMTMxMjUsIDAuMTIxMjUsIDAuMTE4NzUiLCBcCi0gICAgICAgICAgIjAuMTgsIDAuMTY4NzUsIDAuMTU2MjUsIDAuMTUsIDAuMTQzNzUsIDAuMTMzNzUsIDAuMTMxMjUiLCBcCi0gICAgICAgICAgIjAuMTk2MjUsIDAuMTg1LCAwLjE3ODc1LCAwLjE2NjI1LCAwLjE2LCAwLjE1NjI1LCAwLjE0NzUiLCBcCi0gICAgICAgICAgIjAuMjExMjUsIDAuMiwgMC4xOTM3NSwgMC4xODEyNSwgMC4xNzUsIDAuMTcxMjUsIDAuMTYyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3NSwgMC4wNjM3NSwgMC4wNTEyNSwgMC4wMzg3NSwgMC4wMjYyNSwgMC4wMTYyNSwgMC4wMDc1IiwgXAotICAgICAgICAgICIwLjA4LCAwLjA3NSwgMC4wNjI1LCAwLjA1LCAwLjAzNzUsIDAuMDI3NSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4wOTI1LCAwLjA4MTI1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDUsIDAuMDQsIDAuMDI1IiwgXAotICAgICAgICAgICIwLjEwNSwgMC4wOTM3NSwgMC4wODEyNSwgMC4wNzUsIDAuMDYyNSwgMC4wNDYyNSwgMC4wMzc1IiwgXAotICAgICAgICAgICIwLjExNzUsIDAuMTA2MjUsIDAuMDkzNzUsIDAuMDgxMjUsIDAuMDc1LCAwLjA1ODc1LCAwLjA1IiwgXAotICAgICAgICAgICIwLjEzMzc1LCAwLjEyMjUsIDAuMTEsIDAuMDk3NSwgMC4wOTEyNSwgMC4wNzUsIDAuMDY2MjUiLCBcCi0gICAgICAgICAgIjAuMTQ4NzUsIDAuMTM3NSwgMC4xMjUsIDAuMTEyNSwgMC4xLCAwLjA5LCAwLjA4MTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihRKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDEuMDMyODU7Ci0gICAgZnVuY3Rpb24gOiAiTjMwIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBub25fdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJpc2luZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExNDE1MiwgMC4xODc4NjEsIDAuMjYwNjMzLCAwLjMxMjQwOCwgMC4zOTUzMTcsIDAuNDY2OTYyLCAwLjU3MDg1NSIsIFwKLSAgICAgICAgICAiMC4xMjQyNjcsIDAuMTk4MDIyLCAwLjI3MDc0LCAwLjMyMjI3NiwgMC40MDU1NTYsIDAuNDc3NjEyLCAwLjU4MDgxMSIsIFwKLSAgICAgICAgICAiMC4xMzY3NDIsIDAuMjEwNDY2LCAwLjI4MzIsIDAuMzM0NzQ1LCAwLjQxODA2LCAwLjQ5MDA4NywgMC41OTMyNjYiLCBcCi0gICAgICAgICAgIjAuMTQ3ODYsIDAuMjIxNTY4LCAwLjI5NDM0LCAwLjM0NTk1OCwgMC40MjkwMTIsIDAuNTAwNzg4LCAwLjYwNDQ4OSIsIFwKLSAgICAgICAgICAiMC4xNTc2MSwgMC4yMzEzMjQsIDAuMzA0MTA3LCAwLjM1NTcxOCwgMC40Mzg3NzcsIDAuNTEwOTY1LCAwLjYxNDE2NSIsIFwKLSAgICAgICAgICAiMC4xNzA5OTcsIDAuMjQ0NzA2LCAwLjMxNzQ1NSwgMC4zNjkxOTcsIDAuNDUyMTY3LCAwLjUyNDI4MiwgMC42Mjc1NTkiLCBcCi0gICAgICAgICAgIjAuMTgxMjUyLCAwLjI1NTAxOSwgMC4zMjc3MDEsIDAuMzc5MjczLCAwLjQ2MjA3OCwgMC41MzM5MjEsIDAuNjM3Mjk4Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDMzMTIyLCAwLjE3OTIxNCwgMC4zMjcyMDYsIDAuNDMyOTU2LCAwLjYwMjY0NSwgMC43NTE4NTMsIDAuOTY2MzQyIiwgXAotICAgICAgICAgICIwLjAzMzAwNCwgMC4xNzkwNTYsIDAuMzI2NTM5LCAwLjQzMjgwNywgMC42MDIzODMsIDAuNzUzMDA2LCAwLjk2NjI5OSIsIFwKLSAgICAgICAgICAiMC4wMzI4ODcsIDAuMTc5MDQxLCAwLjMyNzIsIDAuNDMyODA2LCAwLjYwMjM2MywgMC43NTMwMDYsIDAuOTY2Mjk5IiwgXAotICAgICAgICAgICIwLjAzMzA3LCAwLjE3OTIxOCwgMC4zMjcyMDMsIDAuNDMyODc1LCAwLjYwMjY1NCwgMC43NTI2MjUsIDAuOTY2MjgzIiwgXAotICAgICAgICAgICIwLjAzMzEwOSwgMC4xNzkyMjEsIDAuMzI2MzU4LCAwLjQzMjg2OSwgMC42MDI2NCwgMC43NTMwMDgsIDAuOTY2MjcxIiwgXAotICAgICAgICAgICIwLjAzMjk4OCwgMC4xNzkyMTcsIDAuMzI3MjAzLCAwLjQzMjkzMywgMC42MDI2NjEsIDAuNzUyOTksIDAuOTY2MjQzIiwgXAotICAgICAgICAgICIwLjAzMzEzMSwgMC4xNzg3OTgsIDAuMzI3MjA2LCAwLjQzMjgxMywgMC42MDM0OTgsIDAuNzUxNzc1LCAwLjk2NDg5MyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEyMzc4MywgMC4xOTkwNTgsIDAuMjczMzEsIDAuMzI1NzU1LCAwLjQxMDExNCwgMC40ODM1NCwgMC41ODg4OTQiLCBcCi0gICAgICAgICAgIjAuMTMzOTM4LCAwLjIwOTIxNywgMC4yODMyMTksIDAuMzM1NzE3LCAwLjQyMDI4MSwgMC40OTM3MzcsIDAuNTk4OTg0IiwgXAotICAgICAgICAgICIwLjE0NjQ4MSwgMC4yMjE2ODIsIDAuMjk1NzQ2LCAwLjM0ODMwNywgMC40MzI4MjEsIDAuNTA2Mjc2LCAwLjYxMTUyMiIsIFwKLSAgICAgICAgICAiMC4xNTc4MDUsIDAuMjMzMTA0LCAwLjMwNzEwNCwgMC4zNTk3NjUsIDAuNDQ0MTM2LCAwLjUxODAwOCwgMC42MjI4NDIiLCBcCi0gICAgICAgICAgIjAuMTY3NzI4LCAwLjI0Mjk2LCAwLjMxNjk5MiwgMC4zNjk2NzMsIDAuNDUzODU3LCAwLjUyNzUxMiwgMC42MzI3NjciLCBcCi0gICAgICAgICAgIjAuMTgxNTkxLCAwLjI1Njg1OCwgMC4zMzA2OTksIDAuMzgzMTU0LCAwLjQ2NzM4OSwgMC41NDE1MzYsIDAuNjQ2NjY0IiwgXAotICAgICAgICAgICIwLjE5MjE4MiwgMC4yNjc0MzgsIDAuMzQxNTI1LCAwLjM5NDQ4MSwgMC40Nzg0NzksIDAuNTUxOTQzLCAwLjY1NzIzOSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzMjUxLCAwLjE3ODg1OCwgMC4zMjcxNTUsIDAuNDMyNzI2LCAwLjYwNDUwMywgMC43NTMzOTIsIDAuOTY3MjI5IiwgXAotICAgICAgICAgICIwLjAzMjM0NCwgMC4xNzg3ODUsIDAuMzI3MTEzLCAwLjQzMjg3MiwgMC42MDQ1MDksIDAuNzUzNTk2LCAwLjk2NjUxMiIsIFwKLSAgICAgICAgICAiMC4wMzI1MjcsIDAuMTc4NjQ0LCAwLjMyNzEwMywgMC40MzI5MDUsIDAuNjA0NTA3LCAwLjc1MzU4NCwgMC45NjY0ODYiLCBcCi0gICAgICAgICAgIjAuMDMyNTM1LCAwLjE3ODg1OSwgMC4zMjcxMzgsIDAuNDMzMDg0LCAwLjYwNDUwMiwgMC43NTQwOSwgMC45NjY1MDkiLCBcCi0gICAgICAgICAgIjAuMDMyNDQyLCAwLjE3ODY0OCwgMC4zMjcwOTYsIDAuNDMzMDAxLCAwLjYwNDQxNCwgMC43NTM0OTcsIDAuOTY2NTA3IiwgXAotICAgICAgICAgICIwLjAzMjQ4LCAwLjE3ODg1NiwgMC4zMjY5NTIsIDAuNDMxNjQzLCAwLjYwMjE3MSwgMC43NTM5NjUsIDAuOTY2Njc3IiwgXAotICAgICAgICAgICIwLjAzMjQ5NCwgMC4xNzg4NTIsIDAuMzI2NjUsIDAuNDMzMDEyLCAwLjYwNDQ3LCAwLjc1MzQ0LCAwLjk2NjYxNiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNzgxOSwgMC4wMDc5NzYsIDAuMDA3OTk2LCAwLjAwODAwMSwgMC4wMDgwMDYsIDAuMDA4MDA5LCAwLjAwODAxMSIsIFwKLSAgICAgICAgICAiMC4wMDc3OTgsIDAuMDA3OTU3LCAwLjAwNzk3NywgMC4wMDc5ODMsIDAuMDA3OTg3LCAwLjAwNzk5MSwgMC4wMDc5OTMiLCBcCi0gICAgICAgICAgIjAuMDA3NzkxLCAwLjAwNzk1MSwgMC4wMDc5NywgMC4wMDc5NzYsIDAuMDA3OTgxLCAwLjAwNzk4NCwgMC4wMDc5ODYiLCBcCi0gICAgICAgICAgIjAuMDA3Nzk2LCAwLjAwNzk1MywgMC4wMDc5NzMsIDAuMDA3OTgsIDAuMDA3OTg0LCAwLjAwNzk4OCwgMC4wMDc5OSIsIFwKLSAgICAgICAgICAiMC4wMDc4LCAwLjAwNzk1OCwgMC4wMDc5NzcsIDAuMDA3OTgzLCAwLjAwNzk4OCwgMC4wMDc5OSwgMC4wMDc5OTQiLCBcCi0gICAgICAgICAgIjAuMDA3ODA3LCAwLjAwNzk2NywgMC4wMDc5ODcsIDAuMDA3OTk1LCAwLjAwNzk5OCwgMC4wMDgwMDMsIDAuMDA4MDA1IiwgXAotICAgICAgICAgICIwLjAwNzgyNSwgMC4wMDc5ODUsIDAuMDA4MDA1LCAwLjAwODAxMSwgMC4wMDgwMTgsIDAuMDA4MDE4LCAwLjAwODAyMiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA4MDc4LCAwLjAwODIyMywgMC4wMDgyNDIsIDAuMDA4MjQ3LCAwLjAwODI1LCAwLjAwODI1NCwgMC4wMDgyNTYiLCBcCi0gICAgICAgICAgIjAuMDA4MDYxLCAwLjAwODIwNywgMC4wMDgyMjQsIDAuMDA4MjMxLCAwLjAwODIzNiwgMC4wMDgyMzksIDAuMDA4MjQiLCBcCi0gICAgICAgICAgIjAuMDA4MDY0LCAwLjAwODIwOSwgMC4wMDgyMjcsIDAuMDA4MjM0LCAwLjAwODIzNiwgMC4wMDgyNCwgMC4wMDgyNDIiLCBcCi0gICAgICAgICAgIjAuMDA4MDY2LCAwLjAwODIxNCwgMC4wMDgyMzQsIDAuMDA4MjM5LCAwLjAwODI0MiwgMC4wMDgyNDYsIDAuMDA4MjQ2IiwgXAotICAgICAgICAgICIwLjAwODA4MiwgMC4wMDgyMywgMC4wMDgyNDksIDAuMDA4MjU0LCAwLjAwODI1OSwgMC4wMDgyNjEsIDAuMDA4MjYzIiwgXAotICAgICAgICAgICIwLjAwODA4NiwgMC4wMDgyMzYsIDAuMDA4MjU2LCAwLjAwODI1OSwgMC4wMDgyNjUsIDAuMDA4MjY2LCAwLjAwODI3IiwgXAotICAgICAgICAgICIwLjAwODExMywgMC4wMDgyNjEsIDAuMDA4Mjc5LCAwLjAwODI4NCwgMC4wMDgyODgsIDAuMDA4MjksIDAuMDA4MjkyIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihRTikgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAxLjAzNjEzOwotICAgIGZ1bmN0aW9uIDogIlFCSU5UIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBub25fdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJpc2luZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE0ODg1OCwgMC4yMjEzOTgsIDAuMjkzNzUxLCAwLjM0NTM4NywgMC40MjgwNTIsIDAuNTAwMjYyLCAwLjYwMzc3IiwgXAotICAgICAgICAgICIwLjE1ODk5NywgMC4yMzE1NDcsIDAuMzAzODU2LCAwLjM1NTUzMywgMC40MzgyMDQsIDAuNTEwNTA4LCAwLjYxMzgzNiIsIFwKLSAgICAgICAgICAiMC4xNzE1NiwgMC4yNDQwOTgsIDAuMzE2MzkzLCAwLjM2ODA3NCwgMC40NTA3NDUsIDAuNTIzMDQ4LCAwLjYyNjM3NyIsIFwKLSAgICAgICAgICAiMC4xODI4OSwgMC4yNTU0MiwgMC4zMjc3MjcsIDAuMzc5NDE5LCAwLjQ2MjA4LCAwLjUzNDQ5LCAwLjYzNzcxIiwgXAotICAgICAgICAgICIwLjE5Mjc4NiwgMC4yNjUzNDgsIDAuMzM3NjM4LCAwLjM4OTMyOSwgMC40NzE5ODksIDAuNTQ0Mjk1LCAwLjY0NzYyMiIsIFwKLSAgICAgICAgICAiMC4yMDY2NSwgMC4yNzkyMDMsIDAuMzUxNTEzLCAwLjQwMzA4OSwgMC40ODU3MTksIDAuNTU4MTYzLCAwLjY2MTQ5NCIsIFwKLSAgICAgICAgICAiMC4yMTcyMzIsIDAuMjg5Nzk5LCAwLjM2MjEyNSwgMC40MTM4NDYsIDAuNDk2NDQxLCAwLjU2ODc2MywgMC42NzIwODciKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzIyNzIsIDAuMTc3ODQzLCAwLjMyNzA2OCwgMC40MzI1MzgsIDAuNjA0NTAyLCAwLjc1MzI3OCwgMC45NjcwMzQiLCBcCi0gICAgICAgICAgIjAuMDMyMjY2LCAwLjE3NzY3MiwgMC4zMjcwNDksIDAuNDMyMzgyLCAwLjYwNDUwOSwgMC43NTM0MTYsIDAuOTY2NzI5IiwgXAotICAgICAgICAgICIwLjAzMjI2MiwgMC4xNzc5NSwgMC4zMjcwNDUsIDAuNDMzMDE3LCAwLjYwNDUwNywgMC43NTM0MTEsIDAuOTY2NzI3IiwgXAotICAgICAgICAgICIwLjAzMjI2NywgMC4xNzc4NDMsIDAuMzI3MDU5LCAwLjQzMzEzNiwgMC42MDQ1MDMsIDAuNzUzOTEyLCAwLjk2NjcyNyIsIFwKLSAgICAgICAgICAiMC4wMzIyNTgsIDAuMTc3OTQ2LCAwLjMyNzA0MSwgMC40MzI4MTUsIDAuNjA0MTgyLCAwLjc1MzM4MywgMC45NjY3MjMiLCBcCi0gICAgICAgICAgIjAuMDMyMjM1LCAwLjE3Nzg0NSwgMC4zMjY1NjgsIDAuNDMyMjU3LCAwLjYwMjQxOCwgMC43NTM4MTQsIDAuOTY2NzUxIiwgXAotICAgICAgICAgICIwLjAzMjI0NSwgMC4xNzc4MjQsIDAuMzI2MzkzLCAwLjQzMjgyNSwgMC42MDQ0NzEsIDAuNzUzMzg2LCAwLjk2NjczMyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE0MDg2NSwgMC4yMTQ5MjMsIDAuMjg4Njg1LCAwLjM0MTM2MywgMC40MjU2ODEsIDAuNDk5NDIyLCAwLjYwNDc2MiIsIFwKLSAgICAgICAgICAiMC4xNTA5ODcsIDAuMjI1MDc4LCAwLjI5ODgyOSwgMC4zNTE0ODEsIDAuNDM1ODUsIDAuNTA5NTUxLCAwLjYxNDg4MSIsIFwKLSAgICAgICAgICAiMC4xNjM0NTcsIDAuMjM3NTU2LCAwLjMxMTMwNSwgMC4zNjM5NTgsIDAuNDQ4MzM2LCAwLjUyMjAyOSwgMC42MjczNTYiLCBcCi0gICAgICAgICAgIjAuMTc0NTYyLCAwLjI0ODYyMywgMC4zMjIzODYsIDAuMzc1MDQxLCAwLjQ1OTM4LCAwLjUzMjk4NSwgMC42Mzg0NSIsIFwKLSAgICAgICAgICAiMC4xODQzMjEsIDAuMjU4Mzc5LCAwLjMzMjE0NCwgMC4zODQ4MDYsIDAuNDY5MTM5LCAwLjU0Mjg2NiwgMC42NDgxOTUiLCBcCi0gICAgICAgICAgIjAuMTk3NzE4LCAwLjI3MTc2MywgMC4zNDU1MSwgMC4zOTgxODQsIDAuNDgyNTE2LCAwLjU1NjIyOCwgMC42NjE1NzYiLCBcCi0gICAgICAgICAgIjAuMjA4MDA3LCAwLjI4MjA5OCwgMC4zNTU4NDYsIDAuNDA4NSwgMC40OTI3OSwgMC41NjY1NzMsIDAuNjcxOTE4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDMxOTU2LCAwLjE3NzgxOSwgMC4zMjcxNTYsIDAuNDMzOTE5LCAwLjYwMzgyMiwgMC43NTM0NTksIDAuOTY3OTU0IiwgXAotICAgICAgICAgICIwLjAzMTk1NCwgMC4xNzc5NjgsIDAuMzI2NjQ5LCAwLjQzMzgxOSwgMC42MDM2MzEsIDAuNzU0MzI5LCAwLjk2NzgwNiIsIFwKLSAgICAgICAgICAiMC4wMzE5MywgMC4xNzc4MTMsIDAuMzI3MTQzLCAwLjQzMzgxOCwgMC42MDM1NzEsIDAuNzU0MzI4LCAwLjk2Nzc5NyIsIFwKLSAgICAgICAgICAiMC4wMzE5MzEsIDAuMTc3ODE4LCAwLjMyNzE1MiwgMC40MzM4NjYsIDAuNjAzNzk2LCAwLjc1MzkzNSwgMC45Njc4NTUiLCBcCi0gICAgICAgICAgIjAuMDMxOTU1LCAwLjE3NzgxOCwgMC4zMjY2NTYsIDAuNDMzODYxLCAwLjYwMzgxMSwgMC43NTQzMzksIDAuOTY3ODAxIiwgXAotICAgICAgICAgICIwLjAzMTk0OSwgMC4xNzc4MjEsIDAuMzI3MTUxLCAwLjQzMzkwNSwgMC42MDM3OTksIDAuNzU0Mjg1LCAwLjk2Nzc5IiwgXAotICAgICAgICAgICIwLjAzMTk2MiwgMC4xNzc5NDEsIDAuMzI3MTQ0LCAwLjQzMzgxOSwgMC42MDQ3LCAwLjc1MzUyNSwgMC45NjY5MzgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDgwNzgsIDAuMDA4MjIzLCAwLjAwODI0MiwgMC4wMDgyNDcsIDAuMDA4MjUsIDAuMDA4MjU0LCAwLjAwODI1NiIsIFwKLSAgICAgICAgICAiMC4wMDgwNjEsIDAuMDA4MjA3LCAwLjAwODIyNCwgMC4wMDgyMzEsIDAuMDA4MjM2LCAwLjAwODIzOSwgMC4wMDgyNCIsIFwKLSAgICAgICAgICAiMC4wMDgwNjQsIDAuMDA4MjA5LCAwLjAwODIyNywgMC4wMDgyMzQsIDAuMDA4MjM2LCAwLjAwODI0LCAwLjAwODI0MiIsIFwKLSAgICAgICAgICAiMC4wMDgwNjYsIDAuMDA4MjE0LCAwLjAwODIzNCwgMC4wMDgyMzksIDAuMDA4MjQyLCAwLjAwODI0NiwgMC4wMDgyNDYiLCBcCi0gICAgICAgICAgIjAuMDA4MDgyLCAwLjAwODIzLCAwLjAwODI0OSwgMC4wMDgyNTQsIDAuMDA4MjU5LCAwLjAwODI2MSwgMC4wMDgyNjMiLCBcCi0gICAgICAgICAgIjAuMDA4MDg2LCAwLjAwODIzNiwgMC4wMDgyNTYsIDAuMDA4MjU5LCAwLjAwODI2NSwgMC4wMDgyNjYsIDAuMDA4MjciLCBcCi0gICAgICAgICAgIjAuMDA4MTEzLCAwLjAwODI2MSwgMC4wMDgyNzksIDAuMDA4Mjg0LCAwLjAwODI4OCwgMC4wMDgyOSwgMC4wMDgyOTIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNzgxOSwgMC4wMDc5NzYsIDAuMDA3OTk2LCAwLjAwODAwMSwgMC4wMDgwMDYsIDAuMDA4MDA5LCAwLjAwODAxMSIsIFwKLSAgICAgICAgICAiMC4wMDc3OTgsIDAuMDA3OTU3LCAwLjAwNzk3NywgMC4wMDc5ODMsIDAuMDA3OTg3LCAwLjAwNzk5MSwgMC4wMDc5OTMiLCBcCi0gICAgICAgICAgIjAuMDA3NzkxLCAwLjAwNzk1MSwgMC4wMDc5NywgMC4wMDc5NzYsIDAuMDA3OTgxLCAwLjAwNzk4NCwgMC4wMDc5ODYiLCBcCi0gICAgICAgICAgIjAuMDA3Nzk2LCAwLjAwNzk1MywgMC4wMDc5NzMsIDAuMDA3OTgsIDAuMDA3OTg0LCAwLjAwNzk4OCwgMC4wMDc5OSIsIFwKLSAgICAgICAgICAiMC4wMDc4LCAwLjAwNzk1OCwgMC4wMDc5NzcsIDAuMDA3OTgzLCAwLjAwNzk4OCwgMC4wMDc5OSwgMC4wMDc5OTQiLCBcCi0gICAgICAgICAgIjAuMDA3ODA3LCAwLjAwNzk2NywgMC4wMDc5ODcsIDAuMDA3OTk1LCAwLjAwNzk5OCwgMC4wMDgwMDMsIDAuMDA4MDA1IiwgXAotICAgICAgICAgICIwLjAwNzgyNSwgMC4wMDc5ODUsIDAuMDA4MDA1LCAwLjAwODAxMSwgMC4wMDgwMTgsIDAuMDA4MDE4LCAwLjAwODAyMiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUk4pICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYxNzk3MTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MTc5NzE7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjE2NzgyOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzAxNSwgMC4wMDI5OTYsIDAuMDAyOTg3LCAwLjAwMjk4MiwgMC4wMDI5ODEsIDAuMDAyOTgzLCAwLjAwMjk4NiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNTc5OSwgMC4wMDU3OTIsIDAuMDA1Nzg3LCAwLjAwNTc4OSwgMC4wMDU3OTQsIDAuMDA1ODA5LCAwLjAwNTgyNiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJEJiFTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzFfQU5fU0VfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wODc1LCAtMC4wODI1LCAtMC4wNzYyNSwgLTAuMDcsIC0wLjA3LCAtMC4wNjYyNSwgLTAuMDU3NSIsIFwKLSAgICAgICAgICAiLTAuMDk4NzUsIC0wLjA5Mzc1LCAtMC4wODc1LCAtMC4wODEyNSwgLTAuMDc1LCAtMC4wNzEyNSwgLTAuMDY4NzUiLCBcCi0gICAgICAgICAgIi0wLjEwNSwgLTAuMSwgLTAuMDkzNzUsIC0wLjA5Mzc1LCAtMC4wODc1LCAtMC4wODM3NSwgLTAuMDgxMjUiLCBcCi0gICAgICAgICAgIi0wLjExNzUsIC0wLjExMjUsIC0wLjEwNjI1LCAtMC4xLCAtMC4xLCAtMC4wOTYyNSwgLTAuMDg3NSIsIFwKLSAgICAgICAgICAiLTAuMTMsIC0wLjEyNSwgLTAuMTE4NzUsIC0wLjExMjUsIC0wLjEwNjI1LCAtMC4xMDI1LCAtMC4xIiwgXAotICAgICAgICAgICItMC4xNDYyNSwgLTAuMTQxMjUsIC0wLjEzNSwgLTAuMTI4NzUsIC0wLjEyMjUsIC0wLjExODc1LCAtMC4xMTYyNSIsIFwKLSAgICAgICAgICAiLTAuMTYxMjUsIC0wLjE1LCAtMC4xNDM3NSwgLTAuMTQzNzUsIC0wLjEzNzUsIC0wLjEzMzc1LCAtMC4xMzEyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAxODc1LCAtMC4wMDc1LCAtMC4wMDEyNSwgMC4wMTEyNSwgMC4wMTc1LCAwLjAyNzUsIDAuMDM2MjUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAsIDAuMDA2MjUsIDAuMDE2MjUsIDAuMDI1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDMxMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMC4wMDM3NSwgMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAwODc1LCAwIiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMTUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wNjUsIC0wLjA2LCAtMC4wNTM3NSwgLTAuMDQ3NSwgLTAuMDQxMjUsIC0wLjAzMTI1LCAtMC4wMjI1IiwgXAotICAgICAgICAgICItMC4wNjc1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNCwgLTAuMDM3NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiRCYhU0UiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8xX0FOX1NFX0VRXzAgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTM3NSwgMC4xMjYyNSwgMC4xMTM3NSwgMC4xMDc1LCAwLjEwMTI1LCAwLjA5MTI1LCAwLjA4ODc1IiwgXAotICAgICAgICAgICIwLjE0ODc1LCAwLjEzNzUsIDAuMTI1LCAwLjExODc1LCAwLjExMjUsIDAuMTAyNSwgMC4xIiwgXAotICAgICAgICAgICIwLjE1NSwgMC4xNDM3NSwgMC4xMzc1LCAwLjEyNSwgMC4xMTg3NSwgMC4xMTUsIDAuMTA2MjUiLCBcCi0gICAgICAgICAgIjAuMTY3NSwgMC4xNTYyNSwgMC4xNDM3NSwgMC4xMzc1LCAwLjEzMTI1LCAwLjEyMTI1LCAwLjExODc1IiwgXAotICAgICAgICAgICIwLjE4LCAwLjE2ODc1LCAwLjE1NjI1LCAwLjE1LCAwLjE0Mzc1LCAwLjEzMzc1LCAwLjEzMTI1IiwgXAotICAgICAgICAgICIwLjE5NjI1LCAwLjE4NSwgMC4xNzI1LCAwLjE2NjI1LCAwLjE2LCAwLjE1LCAwLjE0NzUiLCBcCi0gICAgICAgICAgIjAuMjExMjUsIDAuMiwgMC4xODc1LCAwLjE4MTI1LCAwLjE3NSwgMC4xNjUsIDAuMTU2MjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzUsIDAuMDYzNzUsIDAuMDUxMjUsIDAuMDM4NzUsIDAuMDMyNSwgMC4wMTYyNSwgMC4wMDc1IiwgXAotICAgICAgICAgICIwLjA4NjI1LCAwLjA3NSwgMC4wNjI1LCAwLjA1LCAwLjAzNzUsIDAuMDI3NSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4wOTg3NSwgMC4wODc1LCAwLjA3NSwgMC4wNjI1LCAwLjA1LCAwLjA0LCAwLjAzMTI1IiwgXAotICAgICAgICAgICIwLjExMTI1LCAwLjEsIDAuMDg3NSwgMC4wNzUsIDAuMDYyNSwgMC4wNTI1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjExNzUsIDAuMTA2MjUsIDAuMDkzNzUsIDAuMDg3NSwgMC4wNzUsIDAuMDY1LCAwLjA1IiwgXAotICAgICAgICAgICIwLjEzMzc1LCAwLjEyMjUsIDAuMTEsIDAuMTAzNzUsIDAuMDkxMjUsIDAuMDgxMjUsIDAuMDY2MjUiLCBcCi0gICAgICAgICAgIjAuMTQ4NzUsIDAuMTM3NSwgMC4xMjUsIDAuMTEyNSwgMC4xMDYyNSwgMC4wOSwgMC4wODEyNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oU0UpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTE4NTQ5OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTE4NTEzOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTE4NTQ5OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNDMzMSwgMC4wMDQzMTMsIDAuMDA0MzE4LCAwLjAwNDMyMywgMC4wMDQzNDEsIDAuMDA0MzY2LCAwLjAwNDM5NCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNTkzOSwgMC4wMDU5MDEsIDAuMDA1ODkzLCAwLjAwNTg5OSwgMC4wMDU5MTcsIDAuMDA1OTQ2LCAwLjAwNTk4NiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRCYhUk4mU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1JOX0VRXzBfQU5fU0lfRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wNSwgLTAuMDM4NzUsIC0wLjAzMjUsIC0wLjAyNjI1LCAtMC4wMjYyNSwgLTAuMDE2MjUsIC0wLjAxMzc1IiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAyNzUsIC0wLjAxODc1IiwgXAotICAgICAgICAgICItMC4wNjc1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wNCwgLTAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjA4LCAtMC4wNzUsIC0wLjA2ODc1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDQ2MjUsIC0wLjA0Mzc1IiwgXAotICAgICAgICAgICItMC4wOTI1LCAtMC4wODEyNSwgLTAuMDc1LCAtMC4wNzUsIC0wLjA2ODc1LCAtMC4wNTg3NSwgLTAuMDU2MjUiLCBcCi0gICAgICAgICAgIi0wLjEwODc1LCAtMC4xMDM3NSwgLTAuMDk3NSwgLTAuMDkxMjUsIC0wLjA4NSwgLTAuMDc1LCAtMC4wNzI1IiwgXAotICAgICAgICAgICItMC4xMTc1LCAtMC4xMTI1LCAtMC4xMDYyNSwgLTAuMSwgLTAuMSwgLTAuMDksIC0wLjA4NzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLCAwLjAwNSwgMC4wMTc1LCAwLjAzLCAwLjAzNjI1LCAwLjA0NjI1LCAwLjA1NSIsIFwKLSAgICAgICAgICAiLTAuMDExMjUsIDAsIDAuMDEyNSwgMC4wMTg3NSwgMC4wMjUsIDAuMDQxMjUsIDAuMDUiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTI1LCAwLCAwLjAwNjI1LCAwLjAxODc1LCAwLjAyODc1LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMjUsIC0wLjAxMjUsIDAsIDAuMDA2MjUsIDAuMDE2MjUsIDAuMDI1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDMxMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMC4wMSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDQ2MjUsIC0wLjA0MTI1LCAtMC4wMjg3NSwgLTAuMDIyNSwgLTAuMDE2MjUsIC0wLjAwNjI1LCAwLjAwMjUiLCBcCi0gICAgICAgICAgIi0wLjA1NSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAxNSwgLTAuMDA2MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiRCZSTiYhU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8xX0FOX1JOX0VRXzFfQU5fU0lfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMzEyNSwgLTAuMDIsIC0wLjAwNzUsIC0wLjAwMTI1LCAwLjAwNSwgMC4wMTUsIDAuMDIzNzUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLjAxLCAwLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wNDM3NSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAwMjUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA2MTI1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAxNSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA2NzUsIC0wLjA2MjUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDMxMjUsIC0wLjAyMTI1LCAtMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wODM3NSwgLTAuMDcyNSwgLTAuMDYsIC0wLjA1Mzc1LCAtMC4wNDc1LCAtMC4wMzc1LCAtMC4wMjg3NSIsIFwKLSAgICAgICAgICAiLTAuMDkyNSwgLTAuMDgxMjUsIC0wLjA2ODc1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDQ2MjUsIC0wLjAzNzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wNjI1LCAtMC4wNTc1LCAtMC4wNTEyNSwgLTAuMDQ1LCAtMC4wNDUsIC0wLjAzNSwgLTAuMDMyNSIsIFwKLSAgICAgICAgICAiLTAuMDczNzUsIC0wLjA2MjUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDQ2MjUsIC0wLjA0Mzc1IiwgXAotICAgICAgICAgICItMC4wODYyNSwgLTAuMDc1LCAtMC4wNzUsIC0wLjA2ODc1LCAtMC4wNjI1LCAtMC4wNTg3NSwgLTAuMDU2MjUiLCBcCi0gICAgICAgICAgIi0wLjA5MjUsIC0wLjA4NzUsIC0wLjA4MTI1LCAtMC4wODEyNSwgLTAuMDc1LCAtMC4wNzEyNSwgLTAuMDY4NzUiLCBcCi0gICAgICAgICAgIi0wLjEwNSwgLTAuMSwgLTAuMDkzNzUsIC0wLjA4NzUsIC0wLjA4NzUsIC0wLjA3NzUsIC0wLjA3NSIsIFwKLSAgICAgICAgICAiLTAuMTE1LCAtMC4xMSwgLTAuMTAzNzUsIC0wLjA5NzUsIC0wLjA5NzUsIC0wLjA5Mzc1LCAtMC4wODUiLCBcCi0gICAgICAgICAgIi0wLjEyMzc1LCAtMC4xMTg3NSwgLTAuMTEyNSwgLTAuMTA2MjUsIC0wLjEwNjI1LCAtMC4xMDI1LCAtMC4wOTM3NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUQmIVJOJlNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9STl9FUV8wX0FOX1NJX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDgxMjUsIDAuMDc2MjUsIDAuMDYzNzUsIDAuMDU3NSwgMC4wNTEyNSwgMC4wNDEyNSwgMC4wMzg3NSIsIFwKLSAgICAgICAgICAiMC4wOTI1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1MjUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMTA1LCAwLjA5Mzc1LCAwLjA4NzUsIDAuMDc1LCAwLjA2ODc1LCAwLjA2NSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiMC4xMTc1LCAwLjEwNjI1LCAwLjA5Mzc1LCAwLjA4NzUsIDAuMDgxMjUsIDAuMDc3NSwgMC4wNjg3NSIsIFwKLSAgICAgICAgICAiMC4xMywgMC4xMTg3NSwgMC4xMDYyNSwgMC4xLCAwLjA5Mzc1LCAwLjA5LCAwLjA4MTI1IiwgXAotICAgICAgICAgICIwLjE0NjI1LCAwLjEzNSwgMC4xMjg3NSwgMC4xMTYyNSwgMC4xMSwgMC4xMDYyNSwgMC4wOTc1IiwgXAotICAgICAgICAgICIwLjE2MTI1LCAwLjE1LCAwLjEzNzUsIDAuMTMxMjUsIDAuMTI1LCAwLjEyMTI1LCAwLjExMjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNSwgMC4wMzg3NSwgMC4wMjYyNSwgMC4wMTM3NSwgMC4wMDEyNSwgLTAuMDA4NzUsIC0wLjAxNzUiLCBcCi0gICAgICAgICAgIjAuMDU1LCAwLjA0Mzc1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMTI1LCAwLjAwMjUsIC0wLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMDY3NSwgMC4wNTYyNSwgMC4wNDM3NSwgMC4wMzEyNSwgMC4wMjUsIDAuMDA4NzUsIDAiLCBcCi0gICAgICAgICAgIjAuMDgsIDAuMDY4NzUsIDAuMDU2MjUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMjEyNSwgMC4wMTI1IiwgXAotICAgICAgICAgICIwLjA5MjUsIDAuMDgxMjUsIDAuMDY4NzUsIDAuMDU2MjUsIDAuMDQzNzUsIDAuMDMzNzUsIDAuMDI1IiwgXAotICAgICAgICAgICIwLjEwODc1LCAwLjA5NzUsIDAuMDg1LCAwLjA3MjUsIDAuMDYsIDAuMDUsIDAuMDQxMjUiLCBcCi0gICAgICAgICAgIjAuMTE3NSwgMC4xMDYyNSwgMC4wOTM3NSwgMC4wODc1LCAwLjA3NSwgMC4wNTg3NSwgMC4wNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiRCZSTiYhU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8xX0FOX1JOX0VRXzFfQU5fU0lfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODc1LCAwLjA3NjI1LCAwLjA2Mzc1LCAwLjA1MTI1LCAwLjAzODc1LCAwLjAyODc1LCAwLjAxMzc1IiwgXAotICAgICAgICAgICIwLjA5MjUsIDAuMDgxMjUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNSwgMC4wNCwgMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMTA1LCAwLjA5Mzc1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNjI1LCAwLjA0NjI1LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIjAuMTE3NSwgMC4xMDYyNSwgMC4wOTM3NSwgMC4wODEyNSwgMC4wNzUsIDAuMDU4NzUsIDAuMDUiLCBcCi0gICAgICAgICAgIjAuMTIzNzUsIDAuMTEyNSwgMC4xLCAwLjA4NzUsIDAuMDgxMjUsIDAuMDY1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICIwLjEzMzc1LCAwLjEyODc1LCAwLjExLCAwLjEwMzc1LCAwLjA5MTI1LCAwLjA4MTI1LCAwLjA2NjI1IiwgXAotICAgICAgICAgICIwLjE0MjUsIDAuMTM3NSwgMC4xMjUsIDAuMTEyNSwgMC4xLCAwLjA5LCAwLjA4MTI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTEyNSwgMC4xMDEyNSwgMC4wODg3NSwgMC4wODI1LCAwLjA3NjI1LCAwLjA2NjI1LCAwLjA2Mzc1IiwgXAotICAgICAgICAgICIwLjEyMzc1LCAwLjExMjUsIDAuMSwgMC4wOTM3NSwgMC4wODc1LCAwLjA3NzUsIDAuMDY4NzUiLCBcCi0gICAgICAgICAgIjAuMTM2MjUsIDAuMTI1LCAwLjExMjUsIDAuMTA2MjUsIDAuMSwgMC4wOSwgMC4wODEyNSIsIFwKLSAgICAgICAgICAiMC4xNDI1LCAwLjEzMTI1LCAwLjEyNSwgMC4xMTI1LCAwLjEwNjI1LCAwLjEwMjUsIDAuMDkzNzUiLCBcCi0gICAgICAgICAgIjAuMTU1LCAwLjE0Mzc1LCAwLjEzMTI1LCAwLjEyNSwgMC4xMTg3NSwgMC4xMDg3NSwgMC4xMDYyNSIsIFwKLSAgICAgICAgICAiMC4xNjUsIDAuMTUzNzUsIDAuMTQxMjUsIDAuMTM1LCAwLjEyODc1LCAwLjExODc1LCAwLjExNjI1IiwgXAotICAgICAgICAgICIwLjE3Mzc1LCAwLjE2MjUsIDAuMTUsIDAuMTQzNzUsIDAuMTM3NSwgMC4xMjc1LCAwLjEyNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oU0kpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY1NzE4OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDY1NTc3NTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2NTcxODsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDI1MjksIDAuMDAyNTEyLCAwLjAwMjUwMywgMC4wMDI0OTksIDAuMDAyNDk4LCAwLjAwMjQ5OSwgMC4wMDI1MSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNDYxNiwgMC4wMDQ2MDcsIDAuMDA0NjAyLCAwLjAwNDYsIDAuMDA0NiwgMC4wMDQ2MDEsIDAuMDA0NjA5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlNFIjsKLSAgICAgIHNkZl9jb25kIDogIlNFID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjA1NjI1LCAtMC4wNDUsIC0wLjAzODc1LCAtMC4wMzI1LCAtMC4wMzI1LCAtMC4wMjI1LCAtMC4wMiIsIFwKLSAgICAgICAgICAiLTAuMDYxMjUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzMzc1LCAtMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjA3Mzc1LCAtMC4wNjg3NSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNCwgLTAuMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDg2MjUsIC0wLjA3NSwgLTAuMDY4NzUsIC0wLjA2MjUsIC0wLjA2MjUsIC0wLjA1MjUsIC0wLjA1IiwgXAotICAgICAgICAgICItMC4wOTI1LCAtMC4wODc1LCAtMC4wODEyNSwgLTAuMDc1LCAtMC4wNjg3NSwgLTAuMDY1LCAtMC4wNTYyNSIsIFwKLSAgICAgICAgICAiLTAuMTA4NzUsIC0wLjEwMzc1LCAtMC4wOTc1LCAtMC4wOTEyNSwgLTAuMDg1LCAtMC4wODEyNSwgLTAuMDcyNSIsIFwKLSAgICAgICAgICAiLTAuMTIzNzUsIC0wLjExMjUsIC0wLjEwNjI1LCAtMC4xMDYyNSwgLTAuMSwgLTAuMDksIC0wLjA4NzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMTg3NSwgLTAuMDA3NSwgMC4wMDUsIDAuMDExMjUsIDAuMDE3NSwgMC4wMjc1LCAwLjAzNjI1IiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLCAwLjAxMjUsIDAuMDIyNSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAyNSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAsIDAuMDEsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzNzUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLjAwMzc1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wNDM3NSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAwODc1LCAwIiwgXAotICAgICAgICAgICItMC4wNTg3NSwgLTAuMDUzNzUsIC0wLjA0MTI1LCAtMC4wMzUsIC0wLjAyODc1LCAtMC4wMTg3NSwgLTAuMDEiLCBcCi0gICAgICAgICAgIi0wLjA2NzUsIC0wLjA2MjUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDI3NSwgLTAuMDE4NzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlNFIjsKLSAgICAgIHNkZl9jb25kIDogIlNFID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5Mzc1LCAwLjA4MjUsIDAuMDcsIDAuMDYzNzUsIDAuMDU3NSwgMC4wNDc1LCAwLjA0NSIsIFwKLSAgICAgICAgICAiMC4wOTg3NSwgMC4wODc1LCAwLjA4MTI1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDU4NzUsIDAuMDUiLCBcCi0gICAgICAgICAgIjAuMTExMjUsIDAuMSwgMC4wODc1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNzEyNSwgMC4wNjI1IiwgXAotICAgICAgICAgICIwLjEyMzc1LCAwLjExMjUsIDAuMSwgMC4wOTM3NSwgMC4wODc1LCAwLjA3NzUsIDAuMDc1IiwgXAotICAgICAgICAgICIwLjEzLCAwLjExODc1LCAwLjExMjUsIDAuMTA2MjUsIDAuMSwgMC4wOSwgMC4wODEyNSIsIFwKLSAgICAgICAgICAiMC4xNDYyNSwgMC4xMzUsIDAuMTI4NzUsIDAuMTIyNSwgMC4xMTYyNSwgMC4xMDYyNSwgMC4wOTc1IiwgXAotICAgICAgICAgICIwLjE2MTI1LCAwLjE1LCAwLjEzNzUsIDAuMTMxMjUsIDAuMTI1LCAwLjEyMTI1LCAwLjExMjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjg3NSwgMC4wNjM3NSwgMC4wNTEyNSwgMC4wMzg3NSwgMC4wMjYyNSwgMC4wMTYyNSwgMC4wMDEyNSIsIFwKLSAgICAgICAgICAiMC4wOCwgMC4wNjg3NSwgMC4wNTYyNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAyMTI1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMDkyNSwgMC4wODEyNSwgMC4wNjg3NSwgMC4wNTYyNSwgMC4wNDM3NSwgMC4wMzM3NSwgMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMDk4NzUsIDAuMDg3NSwgMC4wNzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNCwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4xMTEyNSwgMC4xLCAwLjA4NzUsIDAuMDc1LCAwLjA2MjUsIDAuMDUyNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4xMjEyNSwgMC4xMSwgMC4wOTc1LCAwLjA5MTI1LCAwLjA3ODc1LCAwLjA2MjUsIDAuMDUzNzUiLCBcCi0gICAgICAgICAgIjAuMTM2MjUsIDAuMTI1LCAwLjExMjUsIDAuMSwgMC4wODc1LCAwLjA3NzUsIDAuMDY4NzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogU0RGRlRSWEwgKgotICogLS0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKFNERkZUUlhMKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMzkzNDE0OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIGZmIChOMzAsUUJJTlQpIHsKLSAgICBuZXh0X3N0YXRlIDogIigoU0UgU0kpICsgKCFTRSAoRCBSTikpKSI7Ci0gICAgY2xvY2tlZF9vbiA6ICJDSyI7Ci0gIH0KLSAgcGluKENLKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA1ODkyNDY7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNTg4OTg4OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDU4OTI0NjsKLSAgICBjbG9jayA6IHRydWU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyODA5LCAwLjAwMjc4MiwgMC4wMDI3NjcsIDAuMDAyNzcsIDAuMDAyNzg2LCAwLjAwMjgwNSwgMC4wMDI4MjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDU5MzUsIDAuMDA1OTEsIDAuMDA1OTA2LCAwLjAwNTkxMiwgMC4wMDU5MzcsIDAuMDA1OTczLCAwLjAwNjAyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRCYhUk4mIVNFJiFTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fUk5fRVFfMF9BTl9TRV9FUV8wX0FOX1NJX0VRXzAgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4xODY1MTgsIDAuMTk2NzcxLCAwLjIwOTQyOCwgMC4yMjExOSwgMC4yMzE2MiwgMC4yNDU4MjEsIDAuMjU2Njg3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wOTA0MjksIDAuMTAwMjkxLCAwLjExMjU1NiwgMC4xMjM2NzcsIDAuMTMzNDc5LCAwLjE0NjQ3NiwgMC4xNTY1MDUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEQpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYzNDMzNDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MzM5ODsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2MzQzMzQ7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyOTk0LCAwLjAwMjk3NSwgMC4wMDI5NywgMC4wMDI5NjgsIDAuMDAyOTc1LCAwLjAwMjk5MSwgMC4wMDMwMDMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDU0OTEsIDAuMDA1NDgxLCAwLjAwNTQ3NCwgMC4wMDU0NzMsIDAuMDA1NDc3LCAwLjAwNTQ4OSwgMC4wMDU1MDciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiUk4mIVNFIjsKLSAgICAgIHNkZl9jb25kIDogIlJOX0VRXzFfQU5fU0VfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wODc1LCAtMC4wODI1LCAtMC4wNzYyNSwgLTAuMDcsIC0wLjA2Mzc1LCAtMC4wNiwgLTAuMDUxMjUiLCBcCi0gICAgICAgICAgIi0wLjA5ODc1LCAtMC4wODc1LCAtMC4wODEyNSwgLTAuMDc1LCAtMC4wNzUsIC0wLjA2NSwgLTAuMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMTA1LCAtMC4xLCAtMC4wOTM3NSwgLTAuMDg3NSwgLTAuMDg3NSwgLTAuMDc3NSwgLTAuMDc1IiwgXAotICAgICAgICAgICItMC4xMTc1LCAtMC4xMTI1LCAtMC4xMDYyNSwgLTAuMSwgLTAuMDkzNzUsIC0wLjA5LCAtMC4wODc1IiwgXAotICAgICAgICAgICItMC4xMywgLTAuMTI1LCAtMC4xMTg3NSwgLTAuMTEyNSwgLTAuMTA2MjUsIC0wLjEwMjUsIC0wLjA5Mzc1IiwgXAotICAgICAgICAgICItMC4xNTI1LCAtMC4xNDEyNSwgLTAuMTM1LCAtMC4xMjg3NSwgLTAuMTI4NzUsIC0wLjExODc1LCAtMC4xMTYyNSIsIFwKLSAgICAgICAgICAiLTAuMTY3NSwgLTAuMTU2MjUsIC0wLjE1LCAtMC4xNDM3NSwgLTAuMTQzNzUsIC0wLjEzMzc1LCAtMC4xMzEyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAxODc1LCAtMC4wMDc1LCAtMC4wMDEyNSwgMC4wMTEyNSwgMC4wMTc1LCAwLjAyNzUsIDAuMDM2MjUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAsIDAuMDA2MjUsIDAuMDIyNSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDMxMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAwLCAwLjAxLCAwLjAxODc1IiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA0Mzc1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMTI1LCAtMC4wMDI1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wNjEyNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMTUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wNzc1LCAtMC4wNjYyNSwgLTAuMDUzNzUsIC0wLjA0NzUsIC0wLjA0MTI1LCAtMC4wMjUsIC0wLjAxNjI1IiwgXAotICAgICAgICAgICItMC4wODYyNSwgLTAuMDc1LCAtMC4wNjg3NSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNCwgLTAuMDMxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlJOJiFTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJSTl9FUV8xX0FOX1NFX0VRXzAgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTI1LCAwLjExMzc1LCAwLjEwNzUsIDAuMDk1LCAwLjA4ODc1LCAwLjA4NSwgMC4wNzYyNSIsIFwKLSAgICAgICAgICAiMC4xMzYyNSwgMC4xMjUsIDAuMTEyNSwgMC4xMDYyNSwgMC4xLCAwLjA5LCAwLjA4NzUiLCBcCi0gICAgICAgICAgIjAuMTQ4NzUsIDAuMTM3NSwgMC4xMjUsIDAuMTE4NzUsIDAuMTEyNSwgMC4xMDI1LCAwLjEiLCBcCi0gICAgICAgICAgIjAuMTU1LCAwLjE1LCAwLjEzNzUsIDAuMTMxMjUsIDAuMTI1LCAwLjExNSwgMC4xMTI1IiwgXAotICAgICAgICAgICIwLjE2NzUsIDAuMTYyNSwgMC4xNSwgMC4xNDM3NSwgMC4xMzc1LCAwLjEyNzUsIDAuMTE4NzUiLCBcCi0gICAgICAgICAgIjAuMTksIDAuMTc4NzUsIDAuMTY2MjUsIDAuMTYsIDAuMTUzNzUsIDAuMTQzNzUsIDAuMTQxMjUiLCBcCi0gICAgICAgICAgIjAuMjA1LCAwLjE5Mzc1LCAwLjE4MTI1LCAwLjE3NSwgMC4xNjg3NSwgMC4xNTg3NSwgMC4xNTYyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2ODc1LCAwLjA1NzUsIDAuMDQ1LCAwLjAzMjUsIDAuMDIsIDAuMDEsIC0wLjAwNSIsIFwKLSAgICAgICAgICAiMC4wNzM3NSwgMC4wNjI1LCAwLjA1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDE1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICIwLjA4NjI1LCAwLjA3NSwgMC4wNjI1LCAwLjA1LCAwLjA0Mzc1LCAwLjAyNzUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMDk4NzUsIDAuMDg3NSwgMC4wNzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNCwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4xMTEyNSwgMC4xLCAwLjA4NzUsIDAuMDc1LCAwLjA2MjUsIDAuMDUyNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4xMjc1LCAwLjExNjI1LCAwLjEwMzc1LCAwLjA5MTI1LCAwLjA3ODc1LCAwLjA2ODc1LCAwLjA1Mzc1IiwgXAotICAgICAgICAgICIwLjEzNjI1LCAwLjEzMTI1LCAwLjExMjUsIDAuMTA2MjUsIDAuMDkzNzUsIDAuMDc3NSwgMC4wNjg3NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjE1MjQ2MzsKLSAgICBmdW5jdGlvbiA6ICJOMzAiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5vbl91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcmlzaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE2Mjk3OCwgMC4xNzcwNzUsIDAuMzA0MDA3LCAwLjUxNTU2NywgMC43Mjc0ODksIDEuMjIyMzcsIDEuNTA1MSIsIFwKLSAgICAgICAgICAiMC4xNzMxODksIDAuMTg3MjQ0LCAwLjMxNDE3NywgMC41MjU3MTEsIDAuNzM3NjUyLCAxLjIzMjU1LCAxLjUxNTI2IiwgXAotICAgICAgICAgICIwLjE4NTgsIDAuMTk5NzI5LCAwLjMyNjc5NSwgMC41MzgzNDEsIDAuNzUwMjEzLCAxLjI0NTE4LCAxLjUyNjgiLCBcCi0gICAgICAgICAgIjAuMTk3NDM1LCAwLjIxMTM2MywgMC4zMzg0MjEsIDAuNTQ5OTY2LCAwLjc2MTg0MywgMS4yNTY3OCwgMS41Mzg0OCIsIFwKLSAgICAgICAgICAiMC4yMDczMzcsIDAuMjIxMzg5LCAwLjM0ODMzNSwgMC41NTk4ODEsIDAuNzcxNjM0LCAxLjI2NjcsIDEuNTQ5NDEiLCBcCi0gICAgICAgICAgIjAuMjIxNzc0LCAwLjIzNTgzNCwgMC4zNjI3NzksIDAuNTc0MzA1LCAwLjc4NjE4OCwgMS4yODExNCwgMS41NjM3MSIsIFwKLSAgICAgICAgICAiMC4yMzIzOTksIDAuMjQ2NTQsIDAuMzczNDY3LCAwLjU4NTAzOSwgMC43OTY3NjIsIDEuMjkxODUsIDEuNTc0NTIiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTU0NDcyLCAwLjE4MzQ3MSwgMC40NDQ0MzQsIDAuODgwMjg1LCAxLjMxNjQsIDIuMzMzNSwgMi45MTQyMiIsIFwKLSAgICAgICAgICAiMC4xNTQzNTUsIDAuMTgzNDcsIDAuNDQ0NDI4LCAwLjg3OTQ1NCwgMS4zMTYzNiwgMi4zMzM1LCAyLjkxNDE1IiwgXAotICAgICAgICAgICIwLjE1NDUxOSwgMC4xODMyMzEsIDAuNDQ0NDIxLCAwLjg4MDI2MSwgMS4zMTYxNywgMi4zMzM1OCwgMi45MSIsIFwKLSAgICAgICAgICAiMC4xNTQ0NywgMC4xODMyMzcsIDAuNDQ0NDI2LCAwLjg4MDI3MSwgMS4zMTYxOSwgMi4zMzM1MSwgMi45MDg4NiIsIFwKLSAgICAgICAgICAiMC4xNTQzNDgsIDAuMTgzMTYzLCAwLjQ0NDQyNywgMC44ODAyNjYsIDEuMzE0NywgMi4zMzM1OCwgMi45MTQzMyIsIFwKLSAgICAgICAgICAiMC4xNTQ0NSwgMC4xODM0NywgMC40NDQ0MzIsIDAuODc5MjMzLCAxLjMxNjI4LCAyLjMzMzY2LCAyLjkxNDE1IiwgXAotICAgICAgICAgICIwLjE1NDcyMywgMC4xODM0NTIsIDAuNDQ0NDAxLCAwLjg4MDIwNywgMS4zMTQ0NSwgMi4zMzM3LCAyLjkxMzgzIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE3NTk3NywgMC4xODk4NzEsIDAuMzE0NjUsIDAuNTIyMDA2LCAwLjcyOTU2NSwgMS4yMTQyMiwgMS40OTA5MyIsIFwKLSAgICAgICAgICAiMC4xODYxNDYsIDAuMTk5OTc5LCAwLjMyNDc4NSwgMC41MzIyMzIsIDAuNzM5NzkzLCAxLjIyNDI1LCAxLjQ5OTg4IiwgXAotICAgICAgICAgICIwLjE5ODg5NiwgMC4yMTI3NzgsIDAuMzM3NDY0LCAwLjU0NDk0LCAwLjc1MjUxMSwgMS4yMzcxLCAxLjUxMzgxIiwgXAotICAgICAgICAgICIwLjIxMDU4MiwgMC4yMjQ1NDQsIDAuMzQ5MzgxLCAwLjU1NjY3OCwgMC43NjQyNDQsIDEuMjQ3ODIsIDEuNTI1NTkiLCBcCi0gICAgICAgICAgIjAuMjIxMDc2LCAwLjIzNDc1NSwgMC4zNTk2MjQsIDAuNTY3MDkzLCAwLjc3NDY2NiwgMS4yNTkwOSwgMS41MzU5OSIsIFwKLSAgICAgICAgICAiMC4yMzUyNzgsIDAuMjQ5MTcyLCAwLjM3MzUxNCwgMC41ODEzMSwgMC43ODg4ODMsIDEuMjczMTMsIDEuNTUwMiIsIFwKLSAgICAgICAgICAiMC4yNDYwNjEsIDAuMjYwMDc4LCAwLjM4NDc1NSwgMC41OTIxOTIsIDAuNzk5NzU0LCAxLjI4MzM1LCAxLjU1OTgzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE0Nzk4MywgMC4xNzYyNzMsIDAuNDI1Mjc1LCAwLjg0MTgzNSwgMS4yNTksIDIuMjI2NzMsIDIuNzg5NDQiLCBcCi0gICAgICAgICAgIjAuMTQ4MzE5LCAwLjE3NTkzMiwgMC40MjUyNzcsIDAuODQxNzg4LCAxLjI1ODkxLCAyLjIzMjcyLCAyLjc4MDc5IiwgXAotICAgICAgICAgICIwLjE0ODM5NCwgMC4xNzYyNzMsIDAuNDI1Mjc1LCAwLjg0MTg2LCAxLjI1OTA2LCAyLjIyODkzLCAyLjc4OTMzIiwgXAotICAgICAgICAgICIwLjE0ODcxMiwgMC4xNzYyNzMsIDAuNDI0OTc0LCAwLjg0MTgwOCwgMS4yNTkwMiwgMi4yMzAyNCwgMi43ODk0MiIsIFwKLSAgICAgICAgICAiMC4xNDg0MzIsIDAuMTc2MDE3LCAwLjQyNTI3MiwgMC44NDE4MDksIDEuMjU5MDEsIDIuMjMyNjUsIDIuNzg5MyIsIFwKLSAgICAgICAgICAiMC4xNDgzMzEsIDAuMTc2MjcsIDAuNDI1MTA1LCAwLjg0MTgxMSwgMS4yNTkwMSwgMi4yMzIzMiwgMi43ODkzIiwgXAotICAgICAgICAgICIwLjE0ODIzNywgMC4xNzU1NDEsIDAuNDI1MjMxLCAwLjg0MTc0NiwgMS4yNTg5MSwgMi4yMjk1NCwgMi43ODMxNSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDM2MDYsIDAuMDAzNjA1LCAwLjAwMzU5NiwgMC4wMDM1OTEsIDAuMDAzNTg5LCAwLjAwMzU4NiwgMC4wMDM1ODYiLCBcCi0gICAgICAgICAgIjAuMDAzNTg4LCAwLjAwMzU4NywgMC4wMDM1NzksIDAuMDAzNTczLCAwLjAwMzU3MiwgMC4wMDM1NjksIDAuMDAzNTY5IiwgXAotICAgICAgICAgICIwLjAwMzU4MSwgMC4wMDM1OCwgMC4wMDM1NzIsIDAuMDAzNTY2LCAwLjAwMzU2NCwgMC4wMDM1NjIsIDAuMDAzNTYxIiwgXAotICAgICAgICAgICIwLjAwMzU4MywgMC4wMDM1ODIsIDAuMDAzNTczLCAwLjAwMzU2OCwgMC4wMDM1NjYsIDAuMDAzNTYzLCAwLjAwMzU2MiIsIFwKLSAgICAgICAgICAiMC4wMDM1OTMsIDAuMDAzNTkyLCAwLjAwMzU4MywgMC4wMDM1NzgsIDAuMDAzNTc1LCAwLjAwMzU3MywgMC4wMDM1NzIiLCBcCi0gICAgICAgICAgIjAuMDAzNjAzLCAwLjAwMzYwMiwgMC4wMDM1OTQsIDAuMDAzNTg4LCAwLjAwMzU4NiwgMC4wMDM1ODMsIDAuMDAzNTgyIiwgXAotICAgICAgICAgICIwLjAwMzYxNiwgMC4wMDM2MTUsIDAuMDAzNjA4LCAwLjAwMzYwMiwgMC4wMDM1OTksIDAuMDAzNTk2LCAwLjAwMzU5NSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzYwOSwgMC4wMDM2MSwgMC4wMDM2MTMsIDAuMDAzNjE1LCAwLjAwMzYxNSwgMC4wMDM2MTYsIDAuMDAzNjE2IiwgXAotICAgICAgICAgICIwLjAwMzU5MywgMC4wMDM1OTMsIDAuMDAzNTk3LCAwLjAwMzU5OSwgMC4wMDM2LCAwLjAwMzYsIDAuMDAzNiIsIFwKLSAgICAgICAgICAiMC4wMDM1OTIsIDAuMDAzNTkzLCAwLjAwMzU5NiwgMC4wMDM1OTgsIDAuMDAzNTk4LCAwLjAwMzU5OSwgMC4wMDM1OTkiLCBcCi0gICAgICAgICAgIjAuMDAzNTk5LCAwLjAwMzYwMSwgMC4wMDM2MDQsIDAuMDAzNjA1LCAwLjAwMzYwNiwgMC4wMDM2MDcsIDAuMDAzNjA3IiwgXAotICAgICAgICAgICIwLjAwMzYxNCwgMC4wMDM2MTUsIDAuMDAzNjE5LCAwLjAwMzYyLCAwLjAwMzYyMSwgMC4wMDM2MjEsIDAuMDAzNjIxIiwgXAotICAgICAgICAgICIwLjAwMzYzNCwgMC4wMDM2MzUsIDAuMDAzNjM5LCAwLjAwMzY0LCAwLjAwMzY0MSwgMC4wMDM2NDEsIDAuMDAzNjQxIiwgXAotICAgICAgICAgICIwLjAwMzY1NSwgMC4wMDM2NTYsIDAuMDAzNjU5LCAwLjAwMzY2LCAwLjAwMzY2MiwgMC4wMDM2NjIsIDAuMDAzNjYzIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihRTikgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjE1MjkzMjsKLSAgICBmdW5jdGlvbiA6ICJRQklOVCI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3NlbnNlIDogbm9uX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiByaXNpbmdfZWRnZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTg2NTIsIDAuMjAwNjQ3LCAwLjMyNzc5LCAwLjUzOTUxOCwgMC43NTEzMjgsIDEuMjQ1NzcsIDEuNTI4MTYiLCBcCi0gICAgICAgICAgIjAuMTk2NzcyLCAwLjIxMDg5MiwgMC4zMzgwMDcsIDAuNTQ5NzY4LCAwLjc2MTU3NywgMS4yNTU4OSwgMS41MzgyNSIsIFwKLSAgICAgICAgICAiMC4yMDk0NDYsIDAuMjIzNTcxLCAwLjM1MDY3OCwgMC41NjI0NDksIDAuNzc0MjY1LCAxLjI2ODY2LCAxLjU1MTA3IiwgXAotICAgICAgICAgICIwLjIyMTE5LCAwLjIzNTMyMSwgMC4zNjI0OSwgMC41NzQxOTMsIDAuNzg2MDA1LCAxLjI4MDIyLCAxLjU2MjgzIiwgXAotICAgICAgICAgICIwLjIzMTYyLCAwLjI0NTcxMiwgMC4zNzI4NjMsIDAuNTg0NjEsIDAuNzk2NDI2LCAxLjI5MDczLCAxLjU3MzI0IiwgXAotICAgICAgICAgICIwLjI0NTgyMSwgMC4yNTk5NDgsIDAuMzg2OTUyLCAwLjU5ODgyMiwgMC44MTA2MzgsIDEuMzA0ODUsIDEuNTg3NDUiLCBcCi0gICAgICAgICAgIjAuMjU2Njg3LCAwLjI3MDgyNSwgMC4zOTc5MzMsIDAuNjA5NjksIDAuODIxNDk4LCAxLjMxNTcsIDEuNTk4MiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNTE4MzcsIDAuMTgxMTc3LCAwLjQ0MjU4NCwgMC44NzgwMzEsIDEuMzEzNjEsIDIuMzI1NTcsIDIuOTExMyIsIFwKLSAgICAgICAgICAiMC4xNTE5MTksIDAuMTgwOTA5LCAwLjQ0MjU4MiwgMC44NzgwMzYsIDEuMzEzNjEsIDIuMzMwMTksIDIuOTA1NzgiLCBcCi0gICAgICAgICAgIjAuMTUyMDIxLCAwLjE4MTE2OCwgMC40NDI1ODIsIDAuODc4MDM2LCAxLjMxMzYyLCAyLjMyNTI4LCAyLjkxMTI0IiwgXAotICAgICAgICAgICIwLjE1MjA5OSwgMC4xODExNzgsIDAuNDQxNjM5LCAwLjg3ODAyNCwgMS4zMTM2MSwgMi4zMjY4NywgMi45MTEyOSIsIFwKLSAgICAgICAgICAiMC4xNTE5MywgMC4xODA4NzksIDAuNDQyNTgsIDAuODc4MDM5LCAxLjMxMzYsIDIuMzMwMTcsIDIuOTExMjQiLCBcCi0gICAgICAgICAgIjAuMTUxOTIyLCAwLjE4MTE3NiwgMC40NDE3NzMsIDAuODc4MDI3LCAxLjMxMzYsIDIuMzI5OTUsIDIuOTExMjMiLCBcCi0gICAgICAgICAgIjAuMTUxODk0LCAwLjE4MDY4LCAwLjQ0MjU3MSwgMC44Nzc5OTIsIDEuMzEzNiwgMi4zMjY3MywgMi45MDUyNyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNzE5OTMsIDAuMTg1ODIyLCAwLjMxMDI3MiwgMC41MTc2NDcsIDAuNzI1MDg5LCAxLjIwOSwgMS40ODU0IiwgXAotICAgICAgICAgICIwLjE4MjE1NywgMC4xOTU5NzksIDAuMzIwNDM3LCAwLjUyNzgwOSwgMC43MzUyNDksIDEuMjE5MTcsIDEuNDk1NTUiLCBcCi0gICAgICAgICAgIjAuMTk0NzY1LCAwLjIwODU4OSwgMC4zMzMwNSwgMC41NDA0MTYsIDAuNzQ3ODEyLCAxLjIzMTgsIDEuNTA4MjkiLCBcCi0gICAgICAgICAgIjAuMjA2MzgsIDAuMjIwMTk3LCAwLjM0NDY1OSwgMC41NTIwMjcsIDAuNzU5NDI3LCAxLjI0MzM5LCAxLjUxOTg3IiwgXAotICAgICAgICAgICIwLjIxNjI4NSwgMC4yMzAxMDksIDAuMzU0NTY0LCAwLjU2MTkzMywgMC43NjkzNDIsIDEuMjUzMzEsIDEuNTI5NzEiLCBcCi0gICAgICAgICAgIjAuMjMwNzA5LCAwLjI0NDUzMiwgMC4zNjg5ODgsIDAuNTc2Mzc5LCAwLjc4Mzc1NywgMS4yNjc3NSwgMS41NDQxIiwgXAotICAgICAgICAgICIwLjI0MTM4MSwgMC4yNTUyMTIsIDAuMzc5NjYyLCAwLjU4NzA0NiwgMC43OTQ0NDMsIDEuMjc4NDQsIDEuNTU0NzYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTQ1MjIsIDAuMTczMTc3LCAwLjQyMzE5LCAwLjgzOTc1MSwgMS4yNTY3MiwgMi4yMjkwOSwgMi43ODM5OSIsIFwKLSAgICAgICAgICAiMC4xNDUxNDIsIDAuMTczMTc0LCAwLjQyMzE3NiwgMC44MzkzNTQsIDEuMjU2NjMsIDIuMjI5MDEsIDIuNzgzODEiLCBcCi0gICAgICAgICAgIjAuMTQ1Mjc3LCAwLjE3Mjk2OCwgMC40MjMxNjYsIDAuODM5NjgsIDEuMjU2NCwgMi4yMjkxMywgMi43Nzk2MSIsIFwKLSAgICAgICAgICAiMC4xNDUyMDIsIDAuMTcyOTY4LCAwLjQyMzE3MiwgMC44Mzk3MTQsIDEuMjU2NDQsIDIuMjI5MDQsIDIuNzc5MDEiLCBcCi0gICAgICAgICAgIjAuMTQ1MTI1LCAwLjE3MjkwMywgMC40MjMxNzMsIDAuODM5NzA5LCAxLjI1NDc2LCAyLjIyOTEyLCAyLjc4NDA2IiwgXAotICAgICAgICAgICIwLjE0NTIwOCwgMC4xNzMxNzMsIDAuNDIzMTc5LCAwLjgzODY1MiwgMS4yNTY0OSwgMi4yMjkyMSwgMi43ODM1MiIsIFwKLSAgICAgICAgICAiMC4xNDU0MTQsIDAuMTczMTU2LCAwLjQyMzE1NSwgMC44Mzk2ODQsIDEuMjU0ODIsIDIuMjI5MjksIDIuNzgzMzgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzNjA5LCAwLjAwMzYxLCAwLjAwMzYxMywgMC4wMDM2MTUsIDAuMDAzNjE1LCAwLjAwMzYxNiwgMC4wMDM2MTYiLCBcCi0gICAgICAgICAgIjAuMDAzNTkzLCAwLjAwMzU5MywgMC4wMDM1OTcsIDAuMDAzNTk5LCAwLjAwMzYsIDAuMDAzNiwgMC4wMDM2IiwgXAotICAgICAgICAgICIwLjAwMzU5MiwgMC4wMDM1OTMsIDAuMDAzNTk2LCAwLjAwMzU5OCwgMC4wMDM1OTgsIDAuMDAzNTk5LCAwLjAwMzU5OSIsIFwKLSAgICAgICAgICAiMC4wMDM1OTksIDAuMDAzNjAxLCAwLjAwMzYwNCwgMC4wMDM2MDUsIDAuMDAzNjA2LCAwLjAwMzYwNywgMC4wMDM2MDciLCBcCi0gICAgICAgICAgIjAuMDAzNjE0LCAwLjAwMzYxNSwgMC4wMDM2MTksIDAuMDAzNjIsIDAuMDAzNjIxLCAwLjAwMzYyMSwgMC4wMDM2MjEiLCBcCi0gICAgICAgICAgIjAuMDAzNjM0LCAwLjAwMzYzNSwgMC4wMDM2MzksIDAuMDAzNjQsIDAuMDAzNjQxLCAwLjAwMzY0MSwgMC4wMDM2NDEiLCBcCi0gICAgICAgICAgIjAuMDAzNjU1LCAwLjAwMzY1NiwgMC4wMDM2NTksIDAuMDAzNjYsIDAuMDAzNjYyLCAwLjAwMzY2MiwgMC4wMDM2NjMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDM2MDYsIDAuMDAzNjA1LCAwLjAwMzU5NiwgMC4wMDM1OTEsIDAuMDAzNTg5LCAwLjAwMzU4NiwgMC4wMDM1ODYiLCBcCi0gICAgICAgICAgIjAuMDAzNTg4LCAwLjAwMzU4NywgMC4wMDM1NzksIDAuMDAzNTczLCAwLjAwMzU3MiwgMC4wMDM1NjksIDAuMDAzNTY5IiwgXAotICAgICAgICAgICIwLjAwMzU4MSwgMC4wMDM1OCwgMC4wMDM1NzIsIDAuMDAzNTY2LCAwLjAwMzU2NCwgMC4wMDM1NjIsIDAuMDAzNTYxIiwgXAotICAgICAgICAgICIwLjAwMzU4MywgMC4wMDM1ODIsIDAuMDAzNTczLCAwLjAwMzU2OCwgMC4wMDM1NjYsIDAuMDAzNTYzLCAwLjAwMzU2MiIsIFwKLSAgICAgICAgICAiMC4wMDM1OTMsIDAuMDAzNTkyLCAwLjAwMzU4MywgMC4wMDM1NzgsIDAuMDAzNTc1LCAwLjAwMzU3MywgMC4wMDM1NzIiLCBcCi0gICAgICAgICAgIjAuMDAzNjAzLCAwLjAwMzYwMiwgMC4wMDM1OTQsIDAuMDAzNTg4LCAwLjAwMzU4NiwgMC4wMDM1ODMsIDAuMDAzNTgyIiwgXAotICAgICAgICAgICIwLjAwMzYxNiwgMC4wMDM2MTUsIDAuMDAzNjA4LCAwLjAwMzYwMiwgMC4wMDM1OTksIDAuMDAzNTk2LCAwLjAwMzU5NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUk4pICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDU4MzA0NjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA1ODMwNDY7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNTgxNzk4OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjk5NiwgMC4wMDI5NzgsIDAuMDAyOTY4LCAwLjAwMjk2MywgMC4wMDI5NjEsIDAuMDAyOTYyLCAwLjAwMjk2NCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNTc2LCAwLjAwNTc1MSwgMC4wMDU3NDYsIDAuMDA1NzQ4LCAwLjAwNTc1MywgMC4wMDU3NjgsIDAuMDA1Nzg0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIkQmIVNFIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMV9BTl9TRV9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjA4NzUsIC0wLjA4MjUsIC0wLjA3NjI1LCAtMC4wNywgLTAuMDYzNzUsIC0wLjA2LCAtMC4wNTc1IiwgXAotICAgICAgICAgICItMC4wOTg3NSwgLTAuMDkzNzUsIC0wLjA4NzUsIC0wLjA4MTI1LCAtMC4wNzUsIC0wLjA3MTI1LCAtMC4wNjI1IiwgXAotICAgICAgICAgICItMC4xMTEyNSwgLTAuMSwgLTAuMDkzNzUsIC0wLjA5Mzc1LCAtMC4wODc1LCAtMC4wNzc1LCAtMC4wNzUiLCBcCi0gICAgICAgICAgIi0wLjExNzUsIC0wLjExMjUsIC0wLjEwNjI1LCAtMC4xLCAtMC4xLCAtMC4wOSwgLTAuMDg3NSIsIFwKLSAgICAgICAgICAiLTAuMTMsIC0wLjEyNSwgLTAuMTE4NzUsIC0wLjExMjUsIC0wLjEwNjI1LCAtMC4xMDI1LCAtMC4wOTM3NSIsIFwKLSAgICAgICAgICAiLTAuMTQ2MjUsIC0wLjE0MTI1LCAtMC4xMzUsIC0wLjEyODc1LCAtMC4xMjI1LCAtMC4xMTg3NSwgLTAuMTEiLCBcCi0gICAgICAgICAgIi0wLjE2MTI1LCAtMC4xNTYyNSwgLTAuMTQzNzUsIC0wLjE0Mzc1LCAtMC4xMzc1LCAtMC4xMjc1LCAtMC4xMjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMjUsIC0wLjAxMzc1LCAtMC4wMDEyNSwgMC4wMTEyNSwgMC4wMTc1LCAwLjAyNzUsIDAuMDM2MjUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMTg3NSwgLTAuMDEyNSwgMCwgMC4wMDYyNSwgMC4wMTYyNSwgMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLjAwMzc1LCAwLjAxODc1IiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMDI1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wNjc1LCAtMC4wNTYyNSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAyNSwgLTAuMDE1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDc3NSwgLTAuMDcyNSwgLTAuMDYsIC0wLjA1Mzc1LCAtMC4wNDEyNSwgLTAuMDMxMjUsIC0wLjAyMjUiLCBcCi0gICAgICAgICAgIi0wLjA4NjI1LCAtMC4wODEyNSwgLTAuMDY4NzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNCwgLTAuMDMxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIkQmIVNFIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMV9BTl9TRV9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEyNSwgMC4xMiwgMC4xMDc1LCAwLjEwMTI1LCAwLjA5NSwgMC4wODUsIDAuMDgyNSIsIFwKLSAgICAgICAgICAiMC4xMzYyNSwgMC4xMjUsIDAuMTE4NzUsIDAuMTA2MjUsIDAuMSwgMC4wOTYyNSwgMC4wODc1IiwgXAotICAgICAgICAgICIwLjE0ODc1LCAwLjEzNzUsIDAuMTI1LCAwLjExODc1LCAwLjExMjUsIDAuMTAyNSwgMC4xIiwgXAotICAgICAgICAgICIwLjE2MTI1LCAwLjE1LCAwLjEzNzUsIDAuMTMxMjUsIDAuMTI1LCAwLjExNSwgMC4xMTI1IiwgXAotICAgICAgICAgICIwLjE2NzUsIDAuMTU2MjUsIDAuMTUsIDAuMTM3NSwgMC4xMzEyNSwgMC4xMjc1LCAwLjExODc1IiwgXAotICAgICAgICAgICIwLjE4Mzc1LCAwLjE3MjUsIDAuMTY2MjUsIDAuMTUzNzUsIDAuMTQ3NSwgMC4xNDM3NSwgMC4xMzUiLCBcCi0gICAgICAgICAgIjAuMTk4NzUsIDAuMTg3NSwgMC4xNzUsIDAuMTY4NzUsIDAuMTYyNSwgMC4xNTg3NSwgMC4xNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2ODc1LCAwLjA1NzUsIDAuMDQ1LCAwLjAzMjUsIDAuMDIsIDAuMDEsIDAuMDAxMjUiLCBcCi0gICAgICAgICAgIjAuMDgsIDAuMDY4NzUsIDAuMDU2MjUsIDAuMDQzNzUsIDAuMDMxMjUsIDAuMDIxMjUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMDg2MjUsIDAuMDgxMjUsIDAuMDY4NzUsIDAuMDU2MjUsIDAuMDQzNzUsIDAuMDI3NSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4wOTg3NSwgMC4wODc1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNTYyNSwgMC4wNCwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4xMTEyNSwgMC4xLCAwLjA4NzUsIDAuMDc1LCAwLjA2ODc1LCAwLjA1MjUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMTI3NSwgMC4xMTYyNSwgMC4xMDM3NSwgMC4wOTEyNSwgMC4wODUsIDAuMDY4NzUsIDAuMDYiLCBcCi0gICAgICAgICAgIjAuMTQyNSwgMC4xMzEyNSwgMC4xMTg3NSwgMC4xMDYyNSwgMC4xLCAwLjA4Mzc1LCAwLjA3NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oU0UpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTIxNTM2OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTIxNDk4OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTIxNTM2OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNDA1NCwgMC4wMDQwMzQsIDAuMDA0MDM3LCAwLjAwNDA0NiwgMC4wMDQwNjIsIDAuMDA0MDg5LCAwLjAwNDExNiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNTUxNiwgMC4wMDU0NzgsIDAuMDA1NDY5LCAwLjAwNTQ5NSwgMC4wMDU0OTYsIDAuMDA1NTI3LCAwLjAwNTU2NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRCYhUk4mU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1JOX0VRXzBfQU5fU0lfRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wNDM3NSwgLTAuMDM4NzUsIC0wLjAzMjUsIC0wLjAyNjI1LCAtMC4wMiwgLTAuMDEsIC0wLjAwNzUiLCBcCi0gICAgICAgICAgIi0wLjA1NSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAyMTI1LCAtMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wNjc1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzM3NSwgLTAuMDI1IiwgXAotICAgICAgICAgICItMC4wOCwgLTAuMDY4NzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDQ2MjUsIC0wLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjA4NjI1LCAtMC4wODEyNSwgLTAuMDc1LCAtMC4wNjg3NSwgLTAuMDYyNSwgLTAuMDUyNSwgLTAuMDUiLCBcCi0gICAgICAgICAgIi0wLjEwMjUsIC0wLjA5NzUsIC0wLjA5MTI1LCAtMC4wODUsIC0wLjA3ODc1LCAtMC4wNjg3NSwgLTAuMDY2MjUiLCBcCi0gICAgICAgICAgIi0wLjExNzUsIC0wLjExMjUsIC0wLjEwNjI1LCAtMC4xLCAtMC4wOTM3NSwgLTAuMDgzNzUsIC0wLjA4MTI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMCwgMC4wMTEyNSwgMC4wMTc1LCAwLjAzLCAwLjAzNjI1LCAwLjA1MjUsIDAuMDYxMjUiLCBcCi0gICAgICAgICAgIi0wLjAxMTI1LCAwLCAwLjAxMjUsIDAuMDE4NzUsIDAuMDMxMjUsIDAuMDQxMjUsIDAuMDUiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTI1LCAwLCAwLjAxMjUsIDAuMDE4NzUsIDAuMDI4NzUsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAxODc1LCAtMC4wMTI1LCAwLCAwLjAwNjI1LCAwLjAyMjUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAsIDAuMDEsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjA1MjUsIC0wLjA0MTI1LCAtMC4wMjg3NSwgLTAuMDIyNSwgLTAuMDEsIDAsIDAuMDA4NzUiLCBcCi0gICAgICAgICAgIi0wLjA2MTI1LCAtMC4wNSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDA4NzUsIDAiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiRCZSTiYhU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8xX0FOX1JOX0VRXzFfQU5fU0lfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMzEyNSwgLTAuMDIsIC0wLjAwNzUsIDAuMDA1LCAwLjAxMTI1LCAwLjAyMTI1LCAwLjAzIiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDMxMjUsIC0wLjAxODc1LCAtMC4wMDYyNSwgMCwgMC4wMSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjA0Mzc1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwMjUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDYxMjUsIC0wLjA1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIC0wLjAwODc1LCAwIiwgXAotICAgICAgICAgICItMC4wNjc1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMTUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wNzc1LCAtMC4wNzI1LCAtMC4wNiwgLTAuMDQ3NSwgLTAuMDQxMjUsIC0wLjAzMTI1LCAtMC4wMjI1IiwgXAotICAgICAgICAgICItMC4wODYyNSwgLTAuMDgxMjUsIC0wLjA2ODc1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjA0LCAtMC4wMzEyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjA2MjUsIC0wLjA1MTI1LCAtMC4wNDUsIC0wLjAzODc1LCAtMC4wMzg3NSwgLTAuMDI4NzUsIC0wLjAyNjI1IiwgXAotICAgICAgICAgICItMC4wNjc1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wNCwgLTAuMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDgsIC0wLjA3NSwgLTAuMDY4NzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNTI1LCAtMC4wNSIsIFwKLSAgICAgICAgICAiLTAuMDkyNSwgLTAuMDg3NSwgLTAuMDgxMjUsIC0wLjA3NSwgLTAuMDY4NzUsIC0wLjA2NSwgLTAuMDU2MjUiLCBcCi0gICAgICAgICAgIi0wLjA5ODc1LCAtMC4wOTM3NSwgLTAuMDg3NSwgLTAuMDgxMjUsIC0wLjA3NSwgLTAuMDcxMjUsIC0wLjA2ODc1IiwgXAotICAgICAgICAgICItMC4xMTUsIC0wLjEwMzc1LCAtMC4wOTc1LCAtMC4wOTEyNSwgLTAuMDkxMjUsIC0wLjA4MTI1LCAtMC4wNzg3NSIsIFwKLSAgICAgICAgICAiLTAuMTIzNzUsIC0wLjExMjUsIC0wLjEwNjI1LCAtMC4xLCAtMC4xLCAtMC4wOSwgLTAuMDg3NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUQmIVJOJlNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9STl9FUV8wX0FOX1NJX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc1LCAwLjA2Mzc1LCAwLjA1MTI1LCAwLjA0NSwgMC4wMzg3NSwgMC4wMzUsIDAuMDI2MjUiLCBcCi0gICAgICAgICAgIjAuMDg2MjUsIDAuMDc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDUsIDAuMDQsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiMC4wOTI1LCAwLjA4NzUsIDAuMDc1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDUyNSwgMC4wNSIsIFwKLSAgICAgICAgICAiMC4xMDUsIDAuMDkzNzUsIDAuMDg3NSwgMC4wODEyNSwgMC4wNzUsIDAuMDY1LCAwLjA2MjUiLCBcCi0gICAgICAgICAgIjAuMTE3NSwgMC4xMDYyNSwgMC4xLCAwLjA5Mzc1LCAwLjA4NzUsIDAuMDc3NSwgMC4wNjg3NSIsIFwKLSAgICAgICAgICAiMC4xMzM3NSwgMC4xMjg3NSwgMC4xMTYyNSwgMC4xMSwgMC4xMDM3NSwgMC4wOTM3NSwgMC4wOTEyNSIsIFwKLSAgICAgICAgICAiMC4xNDg3NSwgMC4xMzc1LCAwLjEzMTI1LCAwLjEyNSwgMC4xMTg3NSwgMC4xMDg3NSwgMC4xIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM3NSwgMC4wMjYyNSwgMC4wMTM3NSwgMC4wMDEyNSwgLTAuMDA1LCAtMC4wMjEyNSwgLTAuMDMiLCBcCi0gICAgICAgICAgIjAuMDQ4NzUsIDAuMDM3NSwgMC4wMjUsIDAuMDEyNSwgMC4wMDYyNSwgLTAuMDEsIC0wLjAxODc1IiwgXAotICAgICAgICAgICIwLjA2MTI1LCAwLjA1LCAwLjAzNzUsIDAuMDI1LCAwLjAxMjUsIDAuMDAyNSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMDczNzUsIDAuMDYyNSwgMC4wNSwgMC4wMzc1LCAwLjAyNSwgMC4wMTUsIDAiLCBcCi0gICAgICAgICAgIjAuMDgsIDAuMDY4NzUsIDAuMDU2MjUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMjEyNSwgMC4wMTI1IiwgXAotICAgICAgICAgICIwLjA5NjI1LCAwLjA4NSwgMC4wNzI1LCAwLjA2LCAwLjA1Mzc1LCAwLjAzNzUsIDAuMDI4NzUiLCBcCi0gICAgICAgICAgIjAuMTExMjUsIDAuMSwgMC4wODc1LCAwLjA3NSwgMC4wNjI1LCAwLjA1MjUsIDAuMDM3NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiRCZSTiYhU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8xX0FOX1JOX0VRXzFfQU5fU0lfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzUsIDAuMDYzNzUsIDAuMDUxMjUsIDAuMDM4NzUsIDAuMDI2MjUsIDAuMDE2MjUsIDAuMDAxMjUiLCBcCi0gICAgICAgICAgIjAuMDg2MjUsIDAuMDc1LCAwLjA2MjUsIDAuMDUsIDAuMDM3NSwgMC4wMjc1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMDkyNSwgMC4wODc1LCAwLjA3NSwgMC4wNjI1LCAwLjA1LCAwLjAzMzc1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiMC4xMDUsIDAuMDkzNzUsIDAuMDgxMjUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNDYyNSwgMC4wMzc1IiwgXAotICAgICAgICAgICIwLjExMTI1LCAwLjEsIDAuMDg3NSwgMC4wODEyNSwgMC4wNjg3NSwgMC4wNTI1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjEyNzUsIDAuMTE2MjUsIDAuMTAzNzUsIDAuMDkxMjUsIDAuMDc4NzUsIDAuMDY4NzUsIDAuMDUzNzUiLCBcCi0gICAgICAgICAgIjAuMTM2MjUsIDAuMTI1LCAwLjExMjUsIDAuMSwgMC4wODc1LCAwLjA3MTI1LCAwLjA2MjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xLCAwLjA4ODc1LCAwLjA3NjI1LCAwLjA3LCAwLjA2Mzc1LCAwLjA1Mzc1LCAwLjA1MTI1IiwgXAotICAgICAgICAgICIwLjEwNSwgMC4xLCAwLjA4NzUsIDAuMDgxMjUsIDAuMDc1LCAwLjA2NSwgMC4wNjI1IiwgXAotICAgICAgICAgICIwLjExNzUsIDAuMTEyNSwgMC4xLCAwLjA5Mzc1LCAwLjA4NzUsIDAuMDc3NSwgMC4wNzUiLCBcCi0gICAgICAgICAgIjAuMTMsIDAuMTE4NzUsIDAuMTEyNSwgMC4xLCAwLjA5Mzc1LCAwLjA5LCAwLjA4MTI1IiwgXAotICAgICAgICAgICIwLjEzNjI1LCAwLjEzMTI1LCAwLjExODc1LCAwLjExMjUsIDAuMTA2MjUsIDAuMDk2MjUsIDAuMDkzNzUiLCBcCi0gICAgICAgICAgIjAuMTUyNSwgMC4xNDEyNSwgMC4xMjg3NSwgMC4xMjI1LCAwLjExNjI1LCAwLjEwNjI1LCAwLjEwMzc1IiwgXAotICAgICAgICAgICIwLjE2MTI1LCAwLjE1LCAwLjEzNzUsIDAuMTMxMjUsIDAuMTI1LCAwLjExNSwgMC4xMTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTSSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjMzMzE3OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYzMjI2OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDYzMzMxNzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDI1MjMsIDAuMDAyNTA3LCAwLjAwMjQ5OCwgMC4wMDI0OTMsIDAuMDAyNDkyLCAwLjAwMjQ5NCwgMC4wMDI1MDUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDQzMzUsIDAuMDA0MzI2LCAwLjAwNDMyLCAwLjAwNDMxOCwgMC4wMDQzMTksIDAuMDA0MzE5LCAwLjAwNDMyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJTRSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wNSwgLTAuMDQ1LCAtMC4wMzg3NSwgLTAuMDMyNSwgLTAuMDI2MjUsIC0wLjAxNjI1LCAtMC4wMTM3NSIsIFwKLSAgICAgICAgICAiLTAuMDYxMjUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAyNzUsIC0wLjAxODc1IiwgXAotICAgICAgICAgICItMC4wNzM3NSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDQsIC0wLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wOCwgLTAuMDc1LCAtMC4wNjg3NSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA0NjI1LCAtMC4wNDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDkyNSwgLTAuMDg3NSwgLTAuMDc1LCAtMC4wNjg3NSwgLTAuMDY4NzUsIC0wLjA1ODc1LCAtMC4wNSIsIFwKLSAgICAgICAgICAiLTAuMTA4NzUsIC0wLjA5NzUsIC0wLjA5MTI1LCAtMC4wODUsIC0wLjA3ODc1LCAtMC4wNzUsIC0wLjA2NjI1IiwgXAotICAgICAgICAgICItMC4xMTc1LCAtMC4xMTI1LCAtMC4xMDYyNSwgLTAuMSwgLTAuMDkzNzUsIC0wLjA4Mzc1LCAtMC4wODEyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAxODc1LCAtMC4wMDc1LCAwLjAwNSwgMC4wMTEyNSwgMC4wMjM3NSwgMC4wMzM3NSwgMC4wNDI1IiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLjAwNjI1LCAwLjAxMjUsIDAuMDIyNSwgMC4wMzc1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDI1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMC4wMDYyNSwgMC4wMTYyNSwgMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzNzUsIC0wLjAyNSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAuMDAzNzUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNDM3NSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDEyNSwgLTAuMDAyNSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDY1LCAtMC4wNTM3NSwgLTAuMDQxMjUsIC0wLjAzNSwgLTAuMDI4NzUsIC0wLjAxMjUsIC0wLjAwMzc1IiwgXAotICAgICAgICAgICItMC4wNzM3NSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMjEyNSwgLTAuMDEyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiU0UiOwotICAgICAgc2RmX2NvbmQgOiAiU0UgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDgxMjUsIDAuMDcsIDAuMDYzNzUsIDAuMDUxMjUsIDAuMDQ1LCAwLjA0MTI1LCAwLjAzMjUiLCBcCi0gICAgICAgICAgIjAuMDg2MjUsIDAuMDgxMjUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNDYyNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4wOTg3NSwgMC4wODc1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNTg3NSwgMC4wNSIsIFwKLSAgICAgICAgICAiMC4xMTEyNSwgMC4xLCAwLjA5Mzc1LCAwLjA4MTI1LCAwLjA4MTI1LCAwLjA3MTI1LCAwLjA2MjUiLCBcCi0gICAgICAgICAgIjAuMTIzNzUsIDAuMTEyNSwgMC4xLCAwLjA5Mzc1LCAwLjA4NzUsIDAuMDc3NSwgMC4wNzUiLCBcCi0gICAgICAgICAgIjAuMTQsIDAuMTI4NzUsIDAuMTE2MjUsIDAuMTEsIDAuMTAzNzUsIDAuMDkzNzUsIDAuMDkxMjUiLCBcCi0gICAgICAgICAgIjAuMTQ4NzUsIDAuMTM3NSwgMC4xMzEyNSwgMC4xMjUsIDAuMTE4NzUsIDAuMTA4NzUsIDAuMSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2MjUsIDAuMDUxMjUsIDAuMDM4NzUsIDAuMDI2MjUsIDAuMDIsIDAuMDAzNzUsIC0wLjAwNSIsIFwKLSAgICAgICAgICAiMC4wNjc1LCAwLjA2MjUsIDAuMDUsIDAuMDM3NSwgMC4wMjUsIDAuMDA4NzUsIDAiLCBcCi0gICAgICAgICAgIjAuMDgsIDAuMDY4NzUsIDAuMDU2MjUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMjEyNSwgMC4wMTI1IiwgXAotICAgICAgICAgICIwLjA5MjUsIDAuMDgxMjUsIDAuMDY4NzUsIDAuMDU2MjUsIDAuMDQzNzUsIDAuMDMzNzUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMDk4NzUsIDAuMDg3NSwgMC4wNzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNCwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4xMTUsIDAuMTAzNzUsIDAuMDkxMjUsIDAuMDc4NzUsIDAuMDY2MjUsIDAuMDU2MjUsIDAuMDQxMjUiLCBcCi0gICAgICAgICAgIjAuMTIzNzUsIDAuMTEyNSwgMC4xLCAwLjA4NzUsIDAuMDgxMjUsIDAuMDY1LCAwLjA1NjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBTREZGWDEgKgotICogLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChTREZGWDEpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4zODkxMjk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgZmYgKE4zMCxRQklOVCkgewotICAgIG5leHRfc3RhdGUgOiAiKChTRSBTSSkgKyAoIVNFIEQpKSI7Ci0gICAgY2xvY2tlZF9vbiA6ICJDSyI7Ci0gIH0KLSAgcGluKENLKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA1ODA5NjY7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNTgwNjk4OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDU4MDk2NjsKLSAgICBjbG9jayA6IHRydWU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyODQxLCAwLjAwMjgxNCwgMC4wMDI4LCAwLjAwMjgwNCwgMC4wMDI4MTYsIDAuMDAyODM5LCAwLjAwMjg1OCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNTkzNywgMC4wMDU5MTMsIDAuMDA1OTEyLCAwLjAwNTkxOSwgMC4wMDU5NDIsIDAuMDA1OTc5LCAwLjAwNjAyMiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQmIVNFJiFTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fU0VfRVFfMF9BTl9TSV9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMTYzNzEzLCAwLjE3MzkzMywgMC4xODY2NDYsIDAuMTk4MzU0LCAwLjIwODc2NywgMC4yMjI5MzMsIDAuMjMzODIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjA5MDc3NSwgMC4xMDA3NzEsIDAuMTEzMDA0LCAwLjEyNDE1NCwgMC4xMzM4OTQsIDAuMTQ2ODc1LCAwLjE1Njg5Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihEKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2MTI3Njc7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjExNTY3OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDYxMjc2NzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDI3MTYsIDAuMDAyNywgMC4wMDI2OTEsIDAuMDAyNjg2LCAwLjAwMjY4NCwgMC4wMDI2ODYsIDAuMDAyNjk3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA0MjA1LCAwLjAwNDE5NSwgMC4wMDQxODksIDAuMDA0MTg3LCAwLjAwNDE4OCwgMC4wMDQxODksIDAuMDA0MTk3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJTRSA9PSAxJ2IwIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wNSwgLTAuMDQ1LCAtMC4wMzg3NSwgLTAuMDMyNSwgLTAuMDI2MjUsIC0wLjAxNjI1LCAtMC4wMTM3NSIsIFwKLSAgICAgICAgICAiLTAuMDYxMjUsIC0wLjA1NjI1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDM3NSwgLTAuMDI3NSwgLTAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjA3Mzc1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wNCwgLTAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjA4LCAtMC4wNzUsIC0wLjA2ODc1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDQ2MjUsIC0wLjA0Mzc1IiwgXAotICAgICAgICAgICItMC4wOTI1LCAtMC4wODc1LCAtMC4wNzUsIC0wLjA2ODc1LCAtMC4wNjg3NSwgLTAuMDU4NzUsIC0wLjA1NjI1IiwgXAotICAgICAgICAgICItMC4xMDg3NSwgLTAuMDk3NSwgLTAuMDkxMjUsIC0wLjA4NSwgLTAuMDc4NzUsIC0wLjA3NSwgLTAuMDY2MjUiLCBcCi0gICAgICAgICAgIi0wLjExNzUsIC0wLjExMjUsIC0wLjEwNjI1LCAtMC4xLCAtMC4wOTM3NSwgLTAuMDksIC0wLjA4MTI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDE4NzUsIC0wLjAwNzUsIDAuMDA1LCAwLjAxNzUsIDAuMDIzNzUsIDAuMDMzNzUsIDAuMDQyNSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLjAwNjI1LCAwLjAxMjUsIDAuMDI4NzUsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAyNSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAuMDA2MjUsIDAuMDE2MjUsIDAuMDI1IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMC4wMSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjA0Mzc1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwMjUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA2NSwgLTAuMDUzNzUsIC0wLjA0MTI1LCAtMC4wMzUsIC0wLjAyMjUsIC0wLjAxMjUsIC0wLjAwMzc1IiwgXAotICAgICAgICAgICItMC4wNzM3NSwgLTAuMDYyNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMjEyNSwgLTAuMDEyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIVNFIjsKLSAgICAgIHNkZl9jb25kIDogIlNFID09IDEnYjAiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4MTI1LCAwLjA3LCAwLjA2Mzc1LCAwLjA1NzUsIDAuMDUxMjUsIDAuMDQxMjUsIDAuMDMyNSIsIFwKLSAgICAgICAgICAiMC4wOTI1LCAwLjA4MTI1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDUyNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4xMDUsIDAuMDkzNzUsIDAuMDgxMjUsIDAuMDc1LCAwLjA2ODc1LCAwLjA1ODc1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICIwLjExMTI1LCAwLjEwNjI1LCAwLjA5Mzc1LCAwLjA4NzUsIDAuMDgxMjUsIDAuMDcxMjUsIDAuMDY4NzUiLCBcCi0gICAgICAgICAgIjAuMTIzNzUsIDAuMTEyNSwgMC4xMDYyNSwgMC4wOTM3NSwgMC4wODc1LCAwLjA4Mzc1LCAwLjA3NSIsIFwKLSAgICAgICAgICAiMC4xNCwgMC4xMjg3NSwgMC4xMjI1LCAwLjExLCAwLjEwMzc1LCAwLjEsIDAuMDkxMjUiLCBcCi0gICAgICAgICAgIjAuMTU1LCAwLjE0Mzc1LCAwLjEzMTI1LCAwLjEyNSwgMC4xMTg3NSwgMC4xMDg3NSwgMC4xMDYyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2MjUsIDAuMDUxMjUsIDAuMDM4NzUsIDAuMDI2MjUsIDAuMDIsIDAuMDAzNzUsIC0wLjAwNSIsIFwKLSAgICAgICAgICAiMC4wNzM3NSwgMC4wNjI1LCAwLjA1LCAwLjAzNzUsIDAuMDI1LCAwLjAxNSwgMCIsIFwKLSAgICAgICAgICAiMC4wOCwgMC4wNjg3NSwgMC4wNTYyNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAyMTI1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMDkyNSwgMC4wODEyNSwgMC4wNjg3NSwgMC4wNTYyNSwgMC4wNDM3NSwgMC4wMzM3NSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4wOTg3NSwgMC4wODc1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNTYyNSwgMC4wNCwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4xMTUsIDAuMTAzNzUsIDAuMDkxMjUsIDAuMDc4NzUsIDAuMDcyNSwgMC4wNTYyNSwgMC4wNDc1IiwgXAotICAgICAgICAgICIwLjEyMzc1LCAwLjExMjUsIDAuMSwgMC4wODc1LCAwLjA4MTI1LCAwLjA2NSwgMC4wNTYyNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjI2MTgxODsKLSAgICBmdW5jdGlvbiA6ICJOMzAiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5vbl91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcmlzaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEzNTk4MywgMC4xNjA1OSwgMC4yOTk2ODksIDAuNDIyNDQ2LCAwLjU4NjIyMSwgMC45MTMxMjYsIDEuMTE3OCIsIFwKLSAgICAgICAgICAiMC4xNDYxMjQsIDAuMTcwNzM1LCAwLjMwOTk2MywgMC40MzIyMTQsIDAuNTk1ODI4LCAwLjkyMzE3MSwgMS4xMjc4NCIsIFwKLSAgICAgICAgICAiMC4xNTg3NjYsIDAuMTgzMzc4LCAwLjMyMjU0NSwgMC40NDQ5MzYsIDAuNjA4Njc2LCAwLjkzNTkxMSwgMS4xNDA1MyIsIFwKLSAgICAgICAgICAiMC4xNzAzODMsIDAuMTk0OTk4LCAwLjMzNDE2NCwgMC40NTY3NjQsIDAuNjIwNTE5LCAwLjk0NzUzMywgMS4xNTE1OSIsIFwKLSAgICAgICAgICAiMC4xODAyNjEsIDAuMjA0ODg4LCAwLjM0NDEzMSwgMC40NjYzODUsIDAuNjI5OTkxLCAwLjk1NzQ0NiwgMS4xNjE5OCIsIFwKLSAgICAgICAgICAiMC4xOTQ2NTgsIDAuMjE5Mjk5LCAwLjM1ODQ5LCAwLjQ4MDg0OCwgMC42NDQ1NzIsIDAuOTcxODU4LCAxLjE3NjQxIiwgXAotICAgICAgICAgICIwLjIwNTI4OCwgMC4yMjk5MjEsIDAuMzY5MTc1LCAwLjQ5MTQ1OSwgMC42NTUxODcsIDAuOTgyNTE4LCAxLjE4NzExIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5NDExNSwgMC4xNDMxNTIsIDAuNDI3ODIyLCAwLjY4MTM1OCwgMS4wMTY2NCwgMS42OTMxNSwgMi4xMTQ5NCIsIFwKLSAgICAgICAgICAiMC4wOTQwMzIsIDAuMTQzMTczLCAwLjQyNzY4OCwgMC42ODA1MTIsIDEuMDE2OTMsIDEuNjkzMDksIDIuMTE0ODIiLCBcCi0gICAgICAgICAgIjAuMDk0MDMsIDAuMTQzMTE3LCAwLjQyODY3NCwgMC42ODAzMDIsIDEuMDE4NSwgMS42OTMxMywgMi4xMTQ4MyIsIFwKLSAgICAgICAgICAiMC4wOTQwMjUsIDAuMTQzMTM4LCAwLjQyODY3LCAwLjY4MTI5OCwgMS4wMTg1NCwgMS42OTMxMywgMi4xMTE5OCIsIFwKLSAgICAgICAgICAiMC4wOTQ0MTgsIDAuMTQzMjkyLCAwLjQyNzY2NiwgMC42ODA0NCwgMS4wMTc4NSwgMS42OTMxNSwgMi4xMTQ4IiwgXAotICAgICAgICAgICIwLjA5NDUxNSwgMC4xNDM0MDQsIDAuNDI4NjgsIDAuNjgwMjk5LCAxLjAxODQ2LCAxLjY5MzEyLCAyLjExNDgiLCBcCi0gICAgICAgICAgIjAuMDk0NDMyLCAwLjE0MzIxMiwgMC40Mjg2ODUsIDAuNjgwMzQ1LCAxLjAxODQ0LCAxLjY5MzA5LCAyLjExNDg2Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE1MDk5MywgMC4xNzU4ODksIDAuMzE2MzU3LCAwLjQzOTkyMiwgMC42MDQ3MiwgMC45MzQ3NywgMS4xNDExOCIsIFwKLSAgICAgICAgICAiMC4xNjEyMjMsIDAuMTg2MTU2LCAwLjMyNjY4OSwgMC40NTAwOTYsIDAuNjE0OTMyLCAwLjk0NDc0NCwgMS4xNTE0MSIsIFwKLSAgICAgICAgICAiMC4xNzM5NDEsIDAuMTk4NzY0LCAwLjMzOTI5MiwgMC40NjI4NDksIDAuNjI3NjIsIDAuOTU3NjgxLCAxLjE2NDA0IiwgXAotICAgICAgICAgICIwLjE4NTY1MSwgMC4yMTA0ODMsIDAuMzUwODY2LCAwLjQ3NDUyNCwgMC42MzkzNjEsIDAuOTY5NDIsIDEuMTc1ODUiLCBcCi0gICAgICAgICAgIjAuMTk2MDQ0LCAwLjIyMDk4MywgMC4zNjE0NjYsIDAuNDg0OTI1LCAwLjY0OTc1NSwgMC45Nzk3OSwgMS4xODYyMyIsIFwKLSAgICAgICAgICAiMC4yMTAyNDEsIDAuMjM1MDkyLCAwLjM3NTU4MSwgMC40OTkxNCwgMC42NjM5MjQsIDAuOTkzOTgsIDEuMjAwMzkiLCBcCi0gICAgICAgICAgIjAuMjIxMTAzLCAwLjI0NjA1NCwgMC4zODY0NTMsIDAuNTA5OTgyLCAwLjY3NDgxOCwgMS4wMDQ2MywgMS4yMTEzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5MjUwNSwgMC4xNDE2OTUsIDAuNDIyNjU0LCAwLjY3MTY0NywgMS4wMDM2NSwgMS42Njg2LCAyLjA4NDEiLCBcCi0gICAgICAgICAgIjAuMDkyMjQsIDAuMTQxNDExLCAwLjQyMTgzNCwgMC42NzExOTIsIDEuMDAzNjQsIDEuNjY1OSwgMi4wODQyIiwgXAotICAgICAgICAgICIwLjA5Mjk4NCwgMC4xNDE2MiwgMC40MjE1NjIsIDAuNjcxNjc4LCAxLjAwMzYyLCAxLjY2ODYxLCAyLjA4Mzg1IiwgXAotICAgICAgICAgICIwLjA5MjMwMiwgMC4xNDEzODIsIDAuNDIyMzY0LCAwLjY3MTE5MywgMS4wMDM2MiwgMS42Njg1NywgMi4wODQxNiIsIFwKLSAgICAgICAgICAiMC4wOTIyNDgsIDAuMTQxMzUyLCAwLjQyMTQxNywgMC42NzExOTUsIDEuMDAzNjYsIDEuNjY4NSwgMi4wODQxNCIsIFwKLSAgICAgICAgICAiMC4wOTI5ODgsIDAuMTQxNjg0LCAwLjQyMjY2NCwgMC42NzE2NjMsIDEuMDAzNjgsIDEuNjY4NTgsIDIuMDg0MTUiLCBcCi0gICAgICAgICAgIjAuMDkyMzIsIDAuMTQxMzk5LCAwLjQyMjYzOSwgMC42NzExOTQsIDEuMDAzNjcsIDEuNjY1NjksIDIuMDg0MjIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0MDI5LCAwLjAwNDAyOCwgMC4wMDQwMTQsIDAuMDA0MDA4LCAwLjAwNDAwNCwgMC4wMDQwMDEsIDAuMDAzOTk5IiwgXAotICAgICAgICAgICIwLjAwNDAxMywgMC4wMDQwMTIsIDAuMDAzOTk4LCAwLjAwMzk5MiwgMC4wMDM5ODgsIDAuMDAzOTg0LCAwLjAwMzk4MyIsIFwKLSAgICAgICAgICAiMC4wMDQwMDUsIDAuMDA0MDA0LCAwLjAwMzk5LCAwLjAwMzk4NCwgMC4wMDM5ODEsIDAuMDAzOTc3LCAwLjAwMzk3NiIsIFwKLSAgICAgICAgICAiMC4wMDQwMDYsIDAuMDA0MDA2LCAwLjAwMzk5MywgMC4wMDM5ODYsIDAuMDAzOTgyLCAwLjAwMzk3OCwgMC4wMDM5NzciLCBcCi0gICAgICAgICAgIjAuMDA0MDE1LCAwLjAwNDAxNiwgMC4wMDQwMDMsIDAuMDAzOTk2LCAwLjAwMzk5MywgMC4wMDM5ODksIDAuMDAzOTg3IiwgXAotICAgICAgICAgICIwLjAwNDAyNSwgMC4wMDQwMjYsIDAuMDA0MDE0LCAwLjAwNDAwNywgMC4wMDQwMDMsIDAuMDAzOTk4LCAwLjAwMzk5NyIsIFwKLSAgICAgICAgICAiMC4wMDQwMzksIDAuMDA0MDQsIDAuMDA0MDI5LCAwLjAwNDAyMiwgMC4wMDQwMTgsIDAuMDA0MDEzLCAwLjAwNDAxMiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDA4NCwgMC4wMDQwOTIsIDAuMDA0MTAyLCAwLjAwNDEwNCwgMC4wMDQxMDUsIDAuMDA0MTA2LCAwLjAwNDEwNyIsIFwKLSAgICAgICAgICAiMC4wMDQwNjksIDAuMDA0MDc2LCAwLjAwNDA4NiwgMC4wMDQwODksIDAuMDA0MDksIDAuMDA0MDkxLCAwLjAwNDA5MSIsIFwKLSAgICAgICAgICAiMC4wMDQwNjcsIDAuMDA0MDc1LCAwLjAwNDA4NCwgMC4wMDQwODcsIDAuMDA0MDg5LCAwLjAwNDA4OSwgMC4wMDQwOSIsIFwKLSAgICAgICAgICAiMC4wMDQwNzUsIDAuMDA0MDgyLCAwLjAwNDA5MiwgMC4wMDQwOTUsIDAuMDA0MDk2LCAwLjAwNDA5NywgMC4wMDQwOTgiLCBcCi0gICAgICAgICAgIjAuMDA0MDksIDAuMDA0MDk3LCAwLjAwNDEwNywgMC4wMDQxMDksIDAuMDA0MTExLCAwLjAwNDExMiwgMC4wMDQxMTIiLCBcCi0gICAgICAgICAgIjAuMDA0MTA5LCAwLjAwNDExNiwgMC4wMDQxMjYsIDAuMDA0MTI4LCAwLjAwNDEzLCAwLjAwNDEzMSwgMC4wMDQxMzEiLCBcCi0gICAgICAgICAgIjAuMDA0MTMxLCAwLjAwNDEzOCwgMC4wMDQxNDgsIDAuMDA0MTUsIDAuMDA0MTUxLCAwLjAwNDE1MiwgMC4wMDQxNTIiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFFOKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMjY0NzI5OwotICAgIGZ1bmN0aW9uIDogIlFCSU5UIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBub25fdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJpc2luZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNjM3MTMsIDAuMTg3ODg4LCAwLjMyNDk2MSwgMC40NDU4NzMsIDAuNjA3MTA1LCAwLjkyOTYzMywgMS4xMzEyMiIsIFwKLSAgICAgICAgICAiMC4xNzM5MzMsIDAuMTk4MDk4LCAwLjMzNTIzLCAwLjQ1NjA4NiwgMC42MTczMTgsIDAuOTM5ODgsIDEuMTQxNDYiLCBcCi0gICAgICAgICAgIjAuMTg2NjQ2LCAwLjIxMDgwOSwgMC4zNDc4OTQsIDAuNDY4Nzk5LCAwLjYzMDAzNCwgMC45NTI1NiwgMS4xNTQxMiIsIFwKLSAgICAgICAgICAiMC4xOTgzNTQsIDAuMjIyNTE0LCAwLjM1OTU4MywgMC40ODA1MDgsIDAuNjQxNzM5LCAwLjk2NDI4NiwgMS4xNjU4OCIsIFwKLSAgICAgICAgICAiMC4yMDg3NjcsIDAuMjMyOTM5LCAwLjM3MDA0NywgMC40OTA5MjcsIDAuNjUyMTUyLCAwLjk3NDY2OSwgMS4xNzYyOCIsIFwKLSAgICAgICAgICAiMC4yMjI5NDEsIDAuMjQ3MTAzLCAwLjM4NDE4NSwgMC41MDUwOTIsIDAuNjY2MzMyLCAwLjk4ODg1NSwgMS4xOTA0MyIsIFwKLSAgICAgICAgICAiMC4yMzM4MjIsIDAuMjU3OTkzLCAwLjM5NTA2NiwgMC41MTU5OCwgMC42NzcyMSwgMC45OTk3NjIsIDEuMjAxMzUiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg5ODQsIDAuMTM5NTE0LCAwLjQyMTk5OSwgMC42NzEyMDksIDEuMDAzNTIsIDEuNjY4MzYsIDIuMDgzOCIsIFwKLSAgICAgICAgICAiMC4wODk2ODIsIDAuMTM5MzM1LCAwLjQyMTE2NywgMC42NzA5MjMsIDEuMDAzNTQsIDEuNjY1NTEsIDIuMDgzODciLCBcCi0gICAgICAgICAgIjAuMDg5OTEzLCAwLjEzOTQ4MSwgMC40MjEwNDIsIDAuNjcxMjI3LCAxLjAwMzUyLCAxLjY2ODM0LCAyLjA4MzY1IiwgXAotICAgICAgICAgICIwLjA4OTY5NCwgMC4xMzk0MjcsIDAuNDIxNzQ2LCAwLjY3MDkyMywgMS4wMDM1MywgMS42NjgyOSwgMi4wODM4NSIsIFwKLSAgICAgICAgICAiMC4wODk4NDMsIDAuMTM5MzMsIDAuNDIxMDMxLCAwLjY3MDkyMywgMS4wMDM1MSwgMS42NjgyNCwgMi4wODM4NCIsIFwKLSAgICAgICAgICAiMC4wODk5MTEsIDAuMTM5NTEsIDAuNDIyMDA4LCAwLjY3MTIxOSwgMS4wMDM1NiwgMS42NjgzNiwgMi4wODM4NCIsIFwKLSAgICAgICAgICAiMC4wODk4NTQsIDAuMTM5MzM0LCAwLjQyMTk4OCwgMC42NzA5MTcsIDEuMDAzNTYsIDEuNjY1MDMsIDIuMDgzODkiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTUxNDcyLCAwLjE3NjIwMywgMC4zMTY0MDQsIDAuNDQwMDIyLCAwLjYwNDk1NSwgMC45MzQ1NzUsIDEuMTQwNzEiLCBcCi0gICAgICAgICAgIjAuMTYxNjAxLCAwLjE4NjMzMywgMC4zMjY1MTQsIDAuNDUwMTQyLCAwLjYxNDk3NywgMC45NDQ2NzEsIDEuMTUwODEiLCBcCi0gICAgICAgICAgIjAuMTc0MjUxLCAwLjE5ODk4MywgMC4zMzkxNDUsIDAuNDYyNzgzLCAwLjYyNzYyMiwgMC45NTczNTMsIDEuMTYzNDgiLCBcCi0gICAgICAgICAgIjAuMTg1ODY0LCAwLjIxMDU5NiwgMC4zNTA3NTYsIDAuNDc0Mzg4LCAwLjYzOTMwNSwgMC45Njg5NjcsIDEuMTc1MDUiLCBcCi0gICAgICAgICAgIjAuMTk1NzMsIDAuMjIwNDYzLCAwLjM2MDY0NCwgMC40ODQyNjIsIDAuNjQ5MDk4LCAwLjk3ODg0LCAxLjE4NDkzIiwgXAotICAgICAgICAgICIwLjIxMDEzNywgMC4yMzQ4NjUsIDAuMzc1MDMxLCAwLjQ5ODY1OSwgMC42NjM0OTcsIDAuOTkzMjQ5LCAxLjE5OTM0IiwgXAotICAgICAgICAgICIwLjIyMDcyNCwgMC4yNDU0NTUsIDAuMzg1NjM5LCAwLjUwOTI0OSwgMC42NzQwODQsIDEuMDAzODYsIDEuMjA5OTYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg5Nzk1LCAwLjEzOTI1MSwgMC40MjEwMSwgMC42NzA4NzksIDEuMDAxMjksIDEuNjY3NTcsIDIuMDgzMjciLCBcCi0gICAgICAgICAgIjAuMDg5Nzk4LCAwLjEzOTI1NCwgMC40MjA4NDEsIDAuNjcwMDI1LCAxLjAwMTc1LCAxLjY2NzM3LCAyLjA4MyIsIFwKLSAgICAgICAgICAiMC4wODk3OTQsIDAuMTM5MjQ4LCAwLjQyMTYyOSwgMC42Njk5MzIsIDEuMDAyOTUsIDEuNjY3NTQsIDIuMDgzMDgiLCBcCi0gICAgICAgICAgIjAuMDg5NzkzLCAwLjEzOTI0OCwgMC40MjE2MTksIDAuNjcwNzQ1LCAxLjAwMzI0LCAxLjY2NzU0LCAyLjA4MDIyIiwgXAotICAgICAgICAgICIwLjA4OTc1MSwgMC4xMzkyNTYsIDAuNDIwODQ4LCAwLjY2OTk5NSwgMS4wMDI1MSwgMS42Njc2MiwgMi4wODI5OCIsIFwKLSAgICAgICAgICAiMC4wODk3ODYsIDAuMTM5MjU0LCAwLjQyMTYzNywgMC42Njk5MjUsIDEuMDAyOSwgMS42Njc1NywgMi4wODMwMSIsIFwKLSAgICAgICAgICAiMC4wODk3NTMsIDAuMTM5MjU3LCAwLjQyMTY0NSwgMC42Njk5NDcsIDEuMDAyODgsIDEuNjY3NTksIDIuMDgzMTUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0MDg0LCAwLjAwNDA5MiwgMC4wMDQxMDIsIDAuMDA0MTA0LCAwLjAwNDEwNSwgMC4wMDQxMDYsIDAuMDA0MTA3IiwgXAotICAgICAgICAgICIwLjAwNDA2OSwgMC4wMDQwNzYsIDAuMDA0MDg2LCAwLjAwNDA4OSwgMC4wMDQwOSwgMC4wMDQwOTEsIDAuMDA0MDkxIiwgXAotICAgICAgICAgICIwLjAwNDA2NywgMC4wMDQwNzUsIDAuMDA0MDg0LCAwLjAwNDA4NywgMC4wMDQwODksIDAuMDA0MDg5LCAwLjAwNDA5IiwgXAotICAgICAgICAgICIwLjAwNDA3NSwgMC4wMDQwODIsIDAuMDA0MDkyLCAwLjAwNDA5NSwgMC4wMDQwOTYsIDAuMDA0MDk3LCAwLjAwNDA5OCIsIFwKLSAgICAgICAgICAiMC4wMDQwOSwgMC4wMDQwOTcsIDAuMDA0MTA3LCAwLjAwNDEwOSwgMC4wMDQxMTEsIDAuMDA0MTEyLCAwLjAwNDExMiIsIFwKLSAgICAgICAgICAiMC4wMDQxMDksIDAuMDA0MTE2LCAwLjAwNDEyNiwgMC4wMDQxMjgsIDAuMDA0MTMsIDAuMDA0MTMxLCAwLjAwNDEzMSIsIFwKLSAgICAgICAgICAiMC4wMDQxMzEsIDAuMDA0MTM4LCAwLjAwNDE0OCwgMC4wMDQxNSwgMC4wMDQxNTEsIDAuMDA0MTUyLCAwLjAwNDE1MiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDAyOSwgMC4wMDQwMjgsIDAuMDA0MDE0LCAwLjAwNDAwOCwgMC4wMDQwMDQsIDAuMDA0MDAxLCAwLjAwMzk5OSIsIFwKLSAgICAgICAgICAiMC4wMDQwMTMsIDAuMDA0MDEyLCAwLjAwMzk5OCwgMC4wMDM5OTIsIDAuMDAzOTg4LCAwLjAwMzk4NCwgMC4wMDM5ODMiLCBcCi0gICAgICAgICAgIjAuMDA0MDA1LCAwLjAwNDAwNCwgMC4wMDM5OSwgMC4wMDM5ODQsIDAuMDAzOTgxLCAwLjAwMzk3NywgMC4wMDM5NzYiLCBcCi0gICAgICAgICAgIjAuMDA0MDA2LCAwLjAwNDAwNiwgMC4wMDM5OTMsIDAuMDAzOTg2LCAwLjAwMzk4MiwgMC4wMDM5NzgsIDAuMDAzOTc3IiwgXAotICAgICAgICAgICIwLjAwNDAxNSwgMC4wMDQwMTYsIDAuMDA0MDAzLCAwLjAwMzk5NiwgMC4wMDM5OTMsIDAuMDAzOTg5LCAwLjAwMzk4NyIsIFwKLSAgICAgICAgICAiMC4wMDQwMjUsIDAuMDA0MDI2LCAwLjAwNDAxNCwgMC4wMDQwMDcsIDAuMDA0MDAzLCAwLjAwMzk5OCwgMC4wMDM5OTciLCBcCi0gICAgICAgICAgIjAuMDA0MDM5LCAwLjAwNDA0LCAwLjAwNDAyOSwgMC4wMDQwMjIsIDAuMDA0MDE4LCAwLjAwNDAxMywgMC4wMDQwMTIiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFNFKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDEzNjE0MjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDEzNjEwNDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDEzNjE0MjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDM5MzgsIDAuMDAzOTE2LCAwLjAwMzkxNSwgMC4wMDM5MjIsIDAuMDAzOTM5LCAwLjAwMzk2LCAwLjAwMzk4NCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNTM4NiwgMC4wMDUzNSwgMC4wMDUzNDMsIDAuMDA1MzUzLCAwLjAwNTM2NSwgMC4wMDU0MDYsIDAuMDA1NDQ4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEJlNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9TSV9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjA0Mzc1LCAtMC4wMzg3NSwgLTAuMDMyNSwgLTAuMDI2MjUsIC0wLjAyLCAtMC4wMSwgLTAuMDA3NSIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAzMTI1LCAtMC4wMjEyNSwgLTAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDY3NSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDMzNzUsIC0wLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDgsIC0wLjA2ODc1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjA0NjI1LCAtMC4wMzc1IiwgXAotICAgICAgICAgICItMC4wODYyNSwgLTAuMDgxMjUsIC0wLjA3NSwgLTAuMDY4NzUsIC0wLjA2MjUsIC0wLjA1MjUsIC0wLjA1IiwgXAotICAgICAgICAgICItMC4xMDg3NSwgLTAuMDk3NSwgLTAuMDkxMjUsIC0wLjA4NSwgLTAuMDc4NzUsIC0wLjA3NSwgLTAuMDY2MjUiLCBcCi0gICAgICAgICAgIi0wLjExNzUsIC0wLjExMjUsIC0wLjEwNjI1LCAtMC4xLCAtMC4wOTM3NSwgLTAuMDgzNzUsIC0wLjA4MTI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDEyNSwgLTAuMDAxMjUsIDAuMDExMjUsIDAuMDIzNzUsIDAuMDMsIDAuMDQsIDAuMDQ4NzUiLCBcCi0gICAgICAgICAgIi0wLjAxNzUsIC0wLjAwNjI1LCAwLCAwLjAxMjUsIDAuMDE4NzUsIDAuMDI4NzUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAsIDAuMDEyNSwgMC4wMjI1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIDAsIDAuMDEsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwMjUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA1ODc1LCAtMC4wNTM3NSwgLTAuMDQxMjUsIC0wLjAzNSwgLTAuMDIyNSwgLTAuMDEyNSwgLTAuMDAzNzUiLCBcCi0gICAgICAgICAgIi0wLjA2NzUsIC0wLjA2MjUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDIxMjUsIC0wLjAxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiRCYhU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8xX0FOX1NJX0VRXzAgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDI1LCAtMC4wMTM3NSwgLTAuMDAxMjUsIDAuMDA1LCAwLjAxNzUsIDAuMDI3NSwgMC4wMzYyNSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAyNSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAuMDA2MjUsIDAuMDE2MjUsIDAuMDI1IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLjAwMzc1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjA1NSwgLTAuMDQzNzUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAxMjUsIC0wLjAwMjUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA2MTI1LCAtMC4wNSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDA4NzUsIDAiLCBcCi0gICAgICAgICAgIi0wLjA3MTI1LCAtMC4wNiwgLTAuMDQ3NSwgLTAuMDQxMjUsIC0wLjAzNSwgLTAuMDE4NzUsIC0wLjAxIiwgXAotICAgICAgICAgICItMC4wOCwgLTAuMDY4NzUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDM3NSwgLTAuMDI3NSwgLTAuMDE4NzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wNjI1LCAtMC4wNTEyNSwgLTAuMDQ1LCAtMC4wMzg3NSwgLTAuMDMyNSwgLTAuMDI4NzUsIC0wLjAyIiwgXAotICAgICAgICAgICItMC4wNzM3NSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDQsIC0wLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wOCwgLTAuMDc1LCAtMC4wNjg3NSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA0NjI1LCAtMC4wNDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDg2MjUsIC0wLjA4MTI1LCAtMC4wNzUsIC0wLjA2ODc1LCAtMC4wNjI1LCAtMC4wNTI1LCAtMC4wNSIsIFwKLSAgICAgICAgICAiLTAuMDkyNSwgLTAuMDg3NSwgLTAuMDgxMjUsIC0wLjA3NSwgLTAuMDY4NzUsIC0wLjA1ODc1LCAtMC4wNTYyNSIsIFwKLSAgICAgICAgICAiLTAuMTAyNSwgLTAuMDk3NSwgLTAuMDkxMjUsIC0wLjA4NSwgLTAuMDc4NzUsIC0wLjA2ODc1LCAtMC4wNjYyNSIsIFwKLSAgICAgICAgICAiLTAuMTExMjUsIC0wLjEsIC0wLjA5Mzc1LCAtMC4wODc1LCAtMC4wODEyNSwgLTAuMDc3NSwgLTAuMDY4NzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEJlNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9TSV9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3NSwgMC4wNjM3NSwgMC4wNTc1LCAwLjA1MTI1LCAwLjA0NSwgMC4wMzUsIDAuMDI2MjUiLCBcCi0gICAgICAgICAgIjAuMDg2MjUsIDAuMDc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDUsIDAuMDQ2MjUsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiMC4wOTg3NSwgMC4wODc1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1MjUsIDAuMDUiLCBcCi0gICAgICAgICAgIjAuMTExMjUsIDAuMSwgMC4wODc1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNjUsIDAuMDYyNSIsIFwKLSAgICAgICAgICAiMC4xMjM3NSwgMC4xMTI1LCAwLjEsIDAuMDkzNzUsIDAuMDg3NSwgMC4wNzc1LCAwLjA3NSIsIFwKLSAgICAgICAgICAiMC4xNCwgMC4xMjg3NSwgMC4xMTYyNSwgMC4xMSwgMC4xMDM3NSwgMC4wOTM3NSwgMC4wOTEyNSIsIFwKLSAgICAgICAgICAiMC4xNTUsIDAuMTQzNzUsIDAuMTMxMjUsIDAuMTI1LCAwLjExODc1LCAwLjEwODc1LCAwLjEwNjI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU2MjUsIDAuMDQ1LCAwLjAzMjUsIDAuMDIsIDAuMDEzNzUsIC0wLjAwMjUsIC0wLjAxMTI1IiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDU2MjUsIDAuMDQzNzUsIDAuMDMxMjUsIDAuMDE4NzUsIDAuMDA4NzUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICIwLjA4LCAwLjA2ODc1LCAwLjA1NjI1LCAwLjA0Mzc1LCAwLjAzMTI1LCAwLjAyMTI1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICIwLjA4NjI1LCAwLjA3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA0Mzc1LCAwLjAyNzUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMDk4NzUsIDAuMDg3NSwgMC4wNzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNCwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4xMTUsIDAuMTAzNzUsIDAuMDkxMjUsIDAuMDc4NzUsIDAuMDcyNSwgMC4wNTYyNSwgMC4wNDc1IiwgXAotICAgICAgICAgICIwLjEzLCAwLjExODc1LCAwLjEwNjI1LCAwLjA5Mzc1LCAwLjA4MTI1LCAwLjA3MTI1LCAwLjA1NjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJEJiFTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzFfQU5fU0lfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjg3NSwgMC4wNTc1LCAwLjA0NSwgMC4wMzg3NSwgMC4wMjYyNSwgMC4wMSwgMC4wMDEyNSIsIFwKLSAgICAgICAgICAiMC4wOCwgMC4wNjg3NSwgMC4wNTYyNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAyMTI1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMDkyNSwgMC4wODEyNSwgMC4wNjg3NSwgMC4wNTYyNSwgMC4wNSwgMC4wMzM3NSwgMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMDk4NzUsIDAuMDg3NSwgMC4wNzUsIDAuMDY4NzUsIDAuMDU2MjUsIDAuMDQsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMTA1LCAwLjEsIDAuMDg3NSwgMC4wNzUsIDAuMDYyNSwgMC4wNDYyNSwgMC4wMzc1IiwgXAotICAgICAgICAgICIwLjExNSwgMC4xMSwgMC4wOTc1LCAwLjA4NSwgMC4wNzI1LCAwLjA1NjI1LCAwLjA0NzUiLCBcCi0gICAgICAgICAgIjAuMTIzNzUsIDAuMTEyNSwgMC4xLCAwLjA4NzUsIDAuMDgxMjUsIDAuMDY1LCAwLjA1NjI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDkzNzUsIDAuMDgyNSwgMC4wNywgMC4wNjM3NSwgMC4wNTc1LCAwLjA0NzUsIDAuMDQ1IiwgXAotICAgICAgICAgICIwLjEwNSwgMC4wOTM3NSwgMC4wODEyNSwgMC4wNzUsIDAuMDY4NzUsIDAuMDU4NzUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIjAuMTExMjUsIDAuMSwgMC4wOTM3NSwgMC4wODc1LCAwLjA4MTI1LCAwLjA3MTI1LCAwLjA2MjUiLCBcCi0gICAgICAgICAgIjAuMTE3NSwgMC4xMTI1LCAwLjEsIDAuMDkzNzUsIDAuMDg3NSwgMC4wNzc1LCAwLjA3NSIsIFwKLSAgICAgICAgICAiMC4xMjM3NSwgMC4xMTg3NSwgMC4xMDYyNSwgMC4xLCAwLjA5Mzc1LCAwLjA4Mzc1LCAwLjA4MTI1IiwgXAotICAgICAgICAgICIwLjEzMzc1LCAwLjEyMjUsIDAuMTE2MjUsIDAuMTEsIDAuMTAzNzUsIDAuMDkzNzUsIDAuMDg1IiwgXAotICAgICAgICAgICIwLjE0MjUsIDAuMTMxMjUsIDAuMTE4NzUsIDAuMTEyNSwgMC4xMDYyNSwgMC4xMDI1LCAwLjA5Mzc1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTSSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjgwODgxOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDY3OTYxOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDY4MDg4MTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDI1NTIsIDAuMDAyNTM2LCAwLjAwMjUyNiwgMC4wMDI1MjIsIDAuMDAyNTIsIDAuMDAyNTI0LCAwLjAwMjUzNCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNDMxMSwgMC4wMDQzMDIsIDAuMDA0Mjk2LCAwLjAwNDI5NCwgMC4wMDQyOTUsIDAuMDA0Mjk2LCAwLjAwNDMwMSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJTRSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wNSwgLTAuMDQ1LCAtMC4wMzg3NSwgLTAuMDMyNSwgLTAuMDI2MjUsIC0wLjAxNjI1LCAtMC4wMTM3NSIsIFwKLSAgICAgICAgICAiLTAuMDYxMjUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAyNzUsIC0wLjAxODc1IiwgXAotICAgICAgICAgICItMC4wNjc1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wMzM3NSwgLTAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjA4LCAtMC4wNzUsIC0wLjA2ODc1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDQ2MjUsIC0wLjA0Mzc1IiwgXAotICAgICAgICAgICItMC4wOTI1LCAtMC4wODEyNSwgLTAuMDc1LCAtMC4wNjg3NSwgLTAuMDYyNSwgLTAuMDU4NzUsIC0wLjA1IiwgXAotICAgICAgICAgICItMC4xMDg3NSwgLTAuMDk3NSwgLTAuMDkxMjUsIC0wLjA4NSwgLTAuMDc4NzUsIC0wLjA3NSwgLTAuMDY2MjUiLCBcCi0gICAgICAgICAgIi0wLjExNzUsIC0wLjExMjUsIC0wLjEwNjI1LCAtMC4xLCAtMC4wOTM3NSwgLTAuMDgzNzUsIC0wLjA4MTI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDE4NzUsIC0wLjAwNzUsIDAuMDA1LCAwLjAxNzUsIDAuMDIzNzUsIDAuMDMzNzUsIDAuMDQyNSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLjAwNjI1LCAwLjAxMjUsIDAuMDI4NzUsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAyNSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAuMDA2MjUsIDAuMDE2MjUsIDAuMDI1IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMC4wMSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjA0Mzc1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwMjUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA2NSwgLTAuMDUzNzUsIC0wLjA0MTI1LCAtMC4wMzUsIC0wLjAyMjUsIC0wLjAxMjUsIC0wLjAwMzc1IiwgXAotICAgICAgICAgICItMC4wNzM3NSwgLTAuMDYyNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wMzEyNSwgLTAuMDIxMjUsIC0wLjAxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlNFIjsKLSAgICAgIHNkZl9jb25kIDogIlNFID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4MTI1LCAwLjA3LCAwLjA2Mzc1LCAwLjA1NzUsIDAuMDUxMjUsIDAuMDQxMjUsIDAuMDMyNSIsIFwKLSAgICAgICAgICAiMC4wOTI1LCAwLjA4MTI1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDQ2MjUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMTA1LCAwLjA5Mzc1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNTg3NSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiMC4xMTEyNSwgMC4xLCAwLjA5Mzc1LCAwLjA4NzUsIDAuMDgxMjUsIDAuMDcxMjUsIDAuMDYyNSIsIFwKLSAgICAgICAgICAiMC4xMjM3NSwgMC4xMTI1LCAwLjEsIDAuMDkzNzUsIDAuMDg3NSwgMC4wODM3NSwgMC4wNzUiLCBcCi0gICAgICAgICAgIjAuMTQsIDAuMTI4NzUsIDAuMTE2MjUsIDAuMTEsIDAuMTAzNzUsIDAuMDkzNzUsIDAuMDkxMjUiLCBcCi0gICAgICAgICAgIjAuMTQ4NzUsIDAuMTQzNzUsIDAuMTMxMjUsIDAuMTI1LCAwLjExODc1LCAwLjEwODc1LCAwLjEwNjI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDYyNSwgMC4wNTEyNSwgMC4wMzg3NSwgMC4wMjYyNSwgMC4wMiwgMC4wMDM3NSwgLTAuMDA1IiwgXAotICAgICAgICAgICIwLjA3Mzc1LCAwLjA2MjUsIDAuMDUsIDAuMDM3NSwgMC4wMjUsIDAuMDE1LCAwIiwgXAotICAgICAgICAgICIwLjA4LCAwLjA2ODc1LCAwLjA1NjI1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDIxMjUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4wOTI1LCAwLjA4MTI1LCAwLjA2ODc1LCAwLjA1NjI1LCAwLjA0Mzc1LCAwLjAzMzc1LCAwLjAxODc1IiwgXAotICAgICAgICAgICIwLjA5ODc1LCAwLjA4NzUsIDAuMDc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDQsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMTE1LCAwLjEwMzc1LCAwLjA5MTI1LCAwLjA3ODc1LCAwLjA2NjI1LCAwLjA1NjI1LCAwLjA0NzUiLCBcCi0gICAgICAgICAgIjAuMTIzNzUsIDAuMTEyNSwgMC4xLCAwLjA4NzUsIDAuMDgxMjUsIDAuMDY1LCAwLjA1NjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBTRURGRkhRWDIgKgotICogLS0tLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChTRURGRkhRWDIpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC42MzQ3NDY7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgZmYgKE4zMCxRQklOVCkgewotICAgIG5leHRfc3RhdGUgOiAiKChTRSBTSSkgKyAoIVNFICgoRSBEKSArICghRSAoISghTjMwKSkpKSkpIjsKLSAgICBjbG9ja2VkX29uIDogIkNLIjsKLSAgfQotICBwaW4oQ0spICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYzODAwMzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2Mzc4MjI7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjM4MDAzOwotICAgIGNsb2NrIDogdHJ1ZTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDMyOTYsIDAuMDAzMjcyLCAwLjAwMzI2LCAwLjAwMzI2NCwgMC4wMDMyNzYsIDAuMDAzMjk5LCAwLjAwMzMxOCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNjk5NiwgMC4wMDY5NzUsIDAuMDA2OTczLCAwLjAwNjk4NCwgMC4wMDcwMjEsIDAuMDA3MDY4LCAwLjAwNzExMSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQmIUUmU0UmIVNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9FX0VRXzBfQU5fU0VfRVFfMV9BTl9TSV9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMTI4NDk3LCAwLjEzODY4NywgMC4xNTE1MzYsIDAuMTYzNTI2LCAwLjE3NDE0NiwgMC4xODkwMTEsIDAuMjAwNDM2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wOTIxNTIsIDAuMTAyMTEyLCAwLjExNDQwNSwgMC4xMjU5NzYsIDAuMTM2MDQ4LCAwLjE0OTcyMSwgMC4xNjAxMjIiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEQpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDkxMDQ5OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDkwNzgxNjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA5MTA0OTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDQ1NDYsIDAuMDA0NTE4LCAwLjAwNDUwNSwgMC4wMDQ0OTgsIDAuMDA0NDk1LCAwLjAwNDQ5NSwgMC4wMDQ0OTYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDg1MDEsIDAuMDA4NDg2LCAwLjAwODQ3OCwgMC4wMDg0NzMsIDAuMDA4NDczLCAwLjAwODQ3NSwgMC4wMDg0OCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJFJiFTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJFX0VRXzFfQU5fU0VfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wODEyNSwgLTAuMDc2MjUsIC0wLjA3LCAtMC4wNjM3NSwgLTAuMDU3NSwgLTAuMDUzNzUsIC0wLjA1MTI1IiwgXAotICAgICAgICAgICItMC4wOTI1LCAtMC4wODc1LCAtMC4wODEyNSwgLTAuMDc1LCAtMC4wNjg3NSwgLTAuMDY1LCAtMC4wNTYyNSIsIFwKLSAgICAgICAgICAiLTAuMTA1LCAtMC4xLCAtMC4wODc1LCAtMC4wODc1LCAtMC4wODEyNSwgLTAuMDcxMjUsIC0wLjA2ODc1IiwgXAotICAgICAgICAgICItMC4xMTc1LCAtMC4xMDYyNSwgLTAuMSwgLTAuMDkzNzUsIC0wLjA5Mzc1LCAtMC4wODM3NSwgLTAuMDgxMjUiLCBcCi0gICAgICAgICAgIi0wLjEyMzc1LCAtMC4xMTg3NSwgLTAuMTEyNSwgLTAuMTA2MjUsIC0wLjEsIC0wLjA5NjI1LCAtMC4wODc1IiwgXAotICAgICAgICAgICItMC4xNCwgLTAuMTM1LCAtMC4xMjg3NSwgLTAuMTIyNSwgLTAuMTE2MjUsIC0wLjExMjUsIC0wLjEwMzc1IiwgXAotICAgICAgICAgICItMC4xNTUsIC0wLjE1LCAtMC4xNDM3NSwgLTAuMTM3NSwgLTAuMTMxMjUsIC0wLjEyMTI1LCAtMC4xMTg3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAzMTI1LCAtMC4wMjYyNSwgLTAuMDEzNzUsIC0wLjAwNzUsIC0wLjAwMTI1LCAwLjAwODc1LCAwLjAxNzUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAwLjAwMzc1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDA4NzUsIDAiLCBcCi0gICAgICAgICAgIi0wLjA2MTI1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMTUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wNjc1LCAtMC4wNjI1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAyNzUsIC0wLjAxODc1IiwgXAotICAgICAgICAgICItMC4wNzc1LCAtMC4wNzI1LCAtMC4wNjYyNSwgLTAuMDYsIC0wLjA1Mzc1LCAtMC4wNDM3NSwgLTAuMDM1IiwgXAotICAgICAgICAgICItMC4wODYyNSwgLTAuMDgxMjUsIC0wLjA3NSwgLTAuMDY4NzUsIC0wLjA2MjUsIC0wLjA1MjUsIC0wLjA0Mzc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJFJiFTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJFX0VRXzFfQU5fU0VfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTg3NSwgMC4xMTM3NSwgMC4xMDEyNSwgMC4wOTUsIDAuMDg4NzUsIDAuMDc4NzUsIDAuMDciLCBcCi0gICAgICAgICAgIjAuMTMsIDAuMTE4NzUsIDAuMTEyNSwgMC4xLCAwLjA5Mzc1LCAwLjA5LCAwLjA4MTI1IiwgXAotICAgICAgICAgICIwLjE0MjUsIDAuMTMxMjUsIDAuMTE4NzUsIDAuMTEyNSwgMC4xMDYyNSwgMC4wOTYyNSwgMC4wOTM3NSIsIFwKLSAgICAgICAgICAiMC4xNTUsIDAuMTQzNzUsIDAuMTMxMjUsIDAuMTI1LCAwLjExODc1LCAwLjEwODc1LCAwLjEiLCBcCi0gICAgICAgICAgIjAuMTYxMjUsIDAuMTUsIDAuMTQzNzUsIDAuMTMxMjUsIDAuMTI1LCAwLjEyMTI1LCAwLjExMjUiLCBcCi0gICAgICAgICAgIjAuMTc3NSwgMC4xNjYyNSwgMC4xNiwgMC4xNDc1LCAwLjE0MTI1LCAwLjEzNzUsIDAuMTI4NzUiLCBcCi0gICAgICAgICAgIjAuMTkyNSwgMC4xODEyNSwgMC4xNjg3NSwgMC4xNjI1LCAwLjE1NjI1LCAwLjE0NjI1LCAwLjE0Mzc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDkzNzUsIDAuMDg4NzUsIDAuMDcsIDAuMDYzNzUsIDAuMDUxMjUsIDAuMDM1LCAwLjAyNjI1IiwgXAotICAgICAgICAgICIwLjEwNSwgMC4wOTM3NSwgMC4wODEyNSwgMC4wNjg3NSwgMC4wNTYyNSwgMC4wNDYyNSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4xMTc1LCAwLjEwNjI1LCAwLjA5Mzc1LCAwLjA4MTI1LCAwLjA2ODc1LCAwLjA1MjUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMTIzNzUsIDAuMTEyNSwgMC4xLCAwLjA4NzUsIDAuMDgxMjUsIDAuMDY1LCAwLjA1IiwgXAotICAgICAgICAgICIwLjEzNjI1LCAwLjEyNSwgMC4xMTI1LCAwLjEsIDAuMDg3NSwgMC4wNzEyNSwgMC4wNjI1IiwgXAotICAgICAgICAgICIwLjE0NjI1LCAwLjEzNSwgMC4xMjI1LCAwLjExLCAwLjEwMzc1LCAwLjA4NzUsIDAuMDc4NzUiLCBcCi0gICAgICAgICAgIjAuMTYxMjUsIDAuMTUsIDAuMTM3NSwgMC4xMjUsIDAuMTEyNSwgMC4xMDI1LCAwLjA4NzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEUpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTUwMTU2OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTUwMTMxOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTUwMTU2OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNzg5NywgMC4wMDc4NzMsIDAuMDA3ODczLCAwLjAwNzg2OSwgMC4wMDc4NzcsIDAuMDA3ODk5LCAwLjAwNzkxOSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwOTYxLCAwLjAwOTU2MywgMC4wMDk1NjQsIDAuMDA5NTU3LCAwLjAwOTU2NiwgMC4wMDk2MDUsIDAuMDA5NjQ0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJTRSA9PSAxJ2IwIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wODc1LCAtMC4wODI1LCAtMC4wNywgLTAuMDU3NSwgLTAuMDUxMjUsIC0wLjAzNSwgLTAuMDI2MjUiLCBcCi0gICAgICAgICAgIi0wLjA5ODc1LCAtMC4wODc1LCAtMC4wODEyNSwgLTAuMDY4NzUsIC0wLjA1NjI1LCAtMC4wNDYyNSwgLTAuMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMTExMjUsIC0wLjEsIC0wLjA5Mzc1LCAtMC4wODEyNSwgLTAuMDY4NzUsIC0wLjA1ODc1LCAtMC4wNDM3NSIsIFwKLSAgICAgICAgICAiLTAuMTE3NSwgLTAuMTEyNSwgLTAuMSwgLTAuMDkzNzUsIC0wLjA4MTI1LCAtMC4wNjUsIC0wLjA1NjI1IiwgXAotICAgICAgICAgICItMC4xMywgLTAuMTI1LCAtMC4xMTI1LCAtMC4xLCAtMC4wODc1LCAtMC4wNzc1LCAtMC4wNjg3NSIsIFwKLSAgICAgICAgICAiLTAuMTQ2MjUsIC0wLjEzNSwgLTAuMTIyNSwgLTAuMTEsIC0wLjEwMzc1LCAtMC4wODc1LCAtMC4wNzg3NSIsIFwKLSAgICAgICAgICAiLTAuMTU1LCAtMC4xNDM3NSwgLTAuMTMxMjUsIC0wLjExODc1LCAtMC4xMTI1LCAtMC4wOTYyNSwgLTAuMDg3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAyNSwgLTAuMDIsIC0wLjAwNzUsIC0wLjAwMTI1LCAwLjAwNSwgMC4wMTUsIDAuMDIzNzUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAwLCAwLjAxLCAwLjAxODc1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDI1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMTUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wNjEyNSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDIxMjUsIC0wLjAxODc1IiwgXAotICAgICAgICAgICItMC4wNzc1LCAtMC4wNjYyNSwgLTAuMDYsIC0wLjA1Mzc1LCAtMC4wNDc1LCAtMC4wMzc1LCAtMC4wMjg3NSIsIFwKLSAgICAgICAgICAiLTAuMDgsIC0wLjA3NSwgLTAuMDY4NzUsIC0wLjA2ODc1LCAtMC4wNjI1LCAtMC4wNTI1LCAtMC4wNDM3NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIVNFIjsKLSAgICAgIHNkZl9jb25kIDogIlNFID09IDEnYjAiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExMjUsIDAuMTA3NSwgMC4wOTUsIDAuMDg4NzUsIDAuMDgyNSwgMC4wNzI1LCAwLjA2Mzc1IiwgXAotICAgICAgICAgICIwLjEyMzc1LCAwLjExMjUsIDAuMTA2MjUsIDAuMDkzNzUsIDAuMDg3NSwgMC4wODM3NSwgMC4wNzUiLCBcCi0gICAgICAgICAgIjAuMTM2MjUsIDAuMTI1LCAwLjExMjUsIDAuMTA2MjUsIDAuMSwgMC4wOSwgMC4wODc1IiwgXAotICAgICAgICAgICIwLjE0ODc1LCAwLjEzNzUsIDAuMTI1LCAwLjExODc1LCAwLjExMjUsIDAuMTAyNSwgMC4xIiwgXAotICAgICAgICAgICIwLjE2MTI1LCAwLjE1LCAwLjEzNzUsIDAuMTMxMjUsIDAuMTI1LCAwLjExNSwgMC4xMTI1IiwgXAotICAgICAgICAgICIwLjE3NzUsIDAuMTY2MjUsIDAuMTUzNzUsIDAuMTQ3NSwgMC4xNDEyNSwgMC4xMzEyNSwgMC4xMjg3NSIsIFwKLSAgICAgICAgICAiMC4xOTI1LCAwLjE4MTI1LCAwLjE2ODc1LCAwLjE2MjUsIDAuMTU2MjUsIDAuMTQ2MjUsIDAuMTQzNzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTI1LCAwLjEwMTI1LCAwLjA5NSwgMC4wODg3NSwgMC4wODI1LCAwLjA3ODc1LCAwLjA3IiwgXAotICAgICAgICAgICIwLjExNzUsIDAuMTEyNSwgMC4xMDYyNSwgMC4xLCAwLjA5Mzc1LCAwLjA5LCAwLjA4MTI1IiwgXAotICAgICAgICAgICIwLjEzLCAwLjEyNSwgMC4xMTg3NSwgMC4xMTI1LCAwLjEwNjI1LCAwLjEwMjUsIDAuMDkzNzUiLCBcCi0gICAgICAgICAgIjAuMTQyNSwgMC4xMzEyNSwgMC4xMjUsIDAuMTE4NzUsIDAuMTE4NzUsIDAuMTA4NzUsIDAuMTA2MjUiLCBcCi0gICAgICAgICAgIjAuMTQ4NzUsIDAuMTQzNzUsIDAuMTM3NSwgMC4xMzEyNSwgMC4xMjUsIDAuMTE1LCAwLjExMjUiLCBcCi0gICAgICAgICAgIjAuMTU4NzUsIDAuMTUzNzUsIDAuMTQ3NSwgMC4xNDEyNSwgMC4xMzUsIDAuMTMxMjUsIDAuMTIyNSIsIFwKLSAgICAgICAgICAiMC4xNjc1LCAwLjE2MjUsIDAuMTU2MjUsIDAuMTUsIDAuMTQzNzUsIDAuMTMzNzUsIDAuMTMxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFEpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC41MTkzMzM7Ci0gICAgZnVuY3Rpb24gOiAiTjMwIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBub25fdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJpc2luZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTIxOTksIDAuMjE1NDExLCAwLjI5NzY3NSwgMC40MDA0MDksIDAuNTAzMjg0LCAwLjYwNTk3MywgMC43MDg3ODQiLCBcCi0gICAgICAgICAgIjAuMTIyMzg3LCAwLjIyNTU5OCwgMC4zMDc4NjMsIDAuNDEwNTk2LCAwLjUxMzQyOCwgMC42MTYxNTksIDAuNzE4OTciLCBcCi0gICAgICAgICAgIjAuMTM1MTU4LCAwLjIzODM3NSwgMC4zMjA2MywgMC40MjMzODYsIDAuNTI2MjA0LCAwLjYyODk3NSwgMC43MzE2OTkiLCBcCi0gICAgICAgICAgIjAuMTQ3MDc1LCAwLjI1MDMwNCwgMC4zMzI1NDksIDAuNDM1MzA4LCAwLjUzODEyLCAwLjY0MDg5LCAwLjc0MzYxOCIsIFwKLSAgICAgICAgICAiMC4xNTc1MzEsIDAuMjYwNzU5LCAwLjM0MzAyOCwgMC40NDU3NDEsIDAuNTQ4NTY0LCAwLjY1MTMyMiwgMC43NTQwODEiLCBcCi0gICAgICAgICAgIjAuMTcyMzIyLCAwLjI3NTUzOSwgMC4zNTc3ODYsIDAuNDYwNTM0LCAwLjU2MzM4MSwgMC42NjYwOTksIDAuNzY4OTI5IiwgXAotICAgICAgICAgICIwLjE4MzQ4MiwgMC4yODY2OTgsIDAuMzY4OTUsIDAuNDcxNjkzLCAwLjU3NDU0OCwgMC42NzcyNywgMC43ODAxMDYiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDUxODg4LCAwLjI2MjYwNCwgMC40MzMzMjQsIDAuNjQ3NDc1LCAwLjg2MTc5NywgMS4wNzU2OCwgMS4yODk3MiIsIFwKLSAgICAgICAgICAiMC4wNTE4ODcsIDAuMjYyNTc5LCAwLjQzMzMzOCwgMC42NDc2MTUsIDAuODYxODcxLCAxLjA3NTY3LCAxLjI4OTcxIiwgXAotICAgICAgICAgICIwLjA1MTg4OSwgMC4yNjI1NjMsIDAuNDMzOTY5LCAwLjY0NzQ3LCAwLjg2MTc5OCwgMS4wNzU3NCwgMS4yODk2NSIsIFwKLSAgICAgICAgICAiMC4wNTE4OTYsIDAuMjYyOTk4LCAwLjQzMzk1NSwgMC42NDc0NSwgMC44NjE3OTYsIDEuMDc1NzUsIDEuMjg5NjYiLCBcCi0gICAgICAgICAgIjAuMDUxODk5LCAwLjI2Mjk4NiwgMC40MzM5NTksIDAuNjQ3NDgsIDAuODYxNzg4LCAxLjA3NTcxLCAxLjI4OTYzIiwgXAotICAgICAgICAgICIwLjA1MTkwNywgMC4yNjI1MDgsIDAuNDMzOTMxLCAwLjY0Nzc1MywgMC44NjEyNTEsIDEuMDc1NjcsIDEuMjg5NjQiLCBcCi0gICAgICAgICAgIjAuMDUxOTEzLCAwLjI2MjUyNSwgMC40MzM5MywgMC42NDc0NSwgMC44NjEyOTUsIDEuMDc1NjgsIDEuMjg5NjUiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTI4NTA5LCAwLjIzMjQ5OCwgMC4zMTUzMDYsIDAuNDE4Nzg1LCAwLjUyMjMwNiwgMC42MjU3OTQsIDAuNzI5MjQxIiwgXAotICAgICAgICAgICIwLjEzODcsIDAuMjQyNjk1LCAwLjMyNTUzNCwgMC40Mjg5OCwgMC41MzI0NzcsIDAuNjM1OTcsIDAuNzM5NDU1IiwgXAotICAgICAgICAgICIwLjE1MTU0NiwgMC4yNTU1NDgsIDAuMzM4MzQ5LCAwLjQ0MTgzNywgMC41NDUzMzIsIDAuNjQ4ODMsIDAuNzUyMjkxIiwgXAotICAgICAgICAgICIwLjE2MzUzNiwgMC4yNjc1NDUsIDAuMzUwMzMyLCAwLjQ1MzgxOCwgMC41NTczMzUsIDAuNjYwODIyLCAwLjc2NDI2MyIsIFwKLSAgICAgICAgICAiMC4xNzQxNTYsIDAuMjc4MTY1LCAwLjM2MDk1MSwgMC40NjQ0NTMsIDAuNTY3OTYsIDAuNjcxNDQ4LCAwLjc3NDg5NiIsIFwKLSAgICAgICAgICAiMC4xODkwMjIsIDAuMjkzMDI3LCAwLjM3NTgyMSwgMC40NzkzMDcsIDAuNTgyODE3LCAwLjY4NjMxMSwgMC43ODk3NjMiLCBcCi0gICAgICAgICAgIjAuMjAwNDQ2LCAwLjMwNDQ0NCwgMC4zODcyNDEsIDAuNDkwNzMyLCAwLjU5NDI0OSwgMC42OTc3MzUsIDAuODAxMjA3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1MDcxNSwgMC4yNTgxMzMsIDAuNDI1OTg3LCAwLjYzNDg5LCAwLjg0NjI0MSwgMS4wNTYzNSwgMS4yNjY2IiwgXAotICAgICAgICAgICIwLjA1MDcyMiwgMC4yNTgxNzQsIDAuNDI2MDM1LCAwLjYzNTA2OCwgMC44NDYyNTgsIDEuMDU2MzcsIDEuMjY2NDUiLCBcCi0gICAgICAgICAgIjAuMDUwNzIzLCAwLjI1ODE4NCwgMC40MjU5NzcsIDAuNjM0OTM0LCAwLjg0NjI0LCAxLjA1NjM2LCAxLjI2NjYiLCBcCi0gICAgICAgICAgIjAuMDUwNzE1LCAwLjI1ODA5MSwgMC40MjU5NzQsIDAuNjM1MDk3LCAwLjg0NjI1MSwgMS4wNTYzNSwgMS4yNjY1NSIsIFwKLSAgICAgICAgICAiMC4wNTA3MTMsIDAuMjU4MiwgMC40MjU5NzEsIDAuNjM2MTIyLCAwLjg0NjI0MywgMS4wNTYzNCwgMS4yNjY2IiwgXAotICAgICAgICAgICIwLjA1MDcxNywgMC4yNTgxODgsIDAuNDI1OTY5LCAwLjYzNTk4NSwgMC44NDYyMTIsIDEuMDU2MzIsIDEuMjY2NjEiLCBcCi0gICAgICAgICAgIjAuMDUwNzE4LCAwLjI1ODE1NywgMC40MjU5NTIsIDAuNjM2MDk3LCAwLjg0NjE4OCwgMS4wNTYwNywgMS4yNjY1NiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTIwMDYsIDAuMDEyMDYsIDAuMDEyMDY3LCAwLjAxMjA2OCwgMC4wMTIwNywgMC4wMTIwNzIsIDAuMDEyMDczIiwgXAotICAgICAgICAgICIwLjAxMTk3NSwgMC4wMTIwMjksIDAuMDEyMDM2LCAwLjAxMjAzOCwgMC4wMTIwNCwgMC4wMTIwNDEsIDAuMDEyMDQxIiwgXAotICAgICAgICAgICIwLjAxMTk2MSwgMC4wMTIwMTYsIDAuMDEyMDIyLCAwLjAxMjAyNSwgMC4wMTIwMjcsIDAuMDEyMDI3LCAwLjAxMjAyNyIsIFwKLSAgICAgICAgICAiMC4wMTE5NTYsIDAuMDEyMDEsIDAuMDEyMDE2LCAwLjAxMjAxOSwgMC4wMTIwMjEsIDAuMDEyMDIyLCAwLjAxMjAyMiIsIFwKLSAgICAgICAgICAiMC4wMTE5NzQsIDAuMDEyMDI5LCAwLjAxMjAzNSwgMC4wMTIwMzgsIDAuMDEyMDQsIDAuMDEyMDQxLCAwLjAxMjA0MiIsIFwKLSAgICAgICAgICAiMC4wMTE5ODksIDAuMDEyMDQ0LCAwLjAxMjA1MSwgMC4wMTIwNTQsIDAuMDEyMDU3LCAwLjAxMjA1NywgMC4wMTIwNTkiLCBcCi0gICAgICAgICAgIjAuMDEyMDE1LCAwLjAxMjA3LCAwLjAxMjA3NiwgMC4wMTIwOCwgMC4wMTIwODEsIDAuMDEyMDgzLCAwLjAxMjA4MyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMjEyMiwgMC4wMTIxOSwgMC4wMTIxOTcsIDAuMDEyMjAxLCAwLjAxMjIwMywgMC4wMTIyMDQsIDAuMDEyMjA1IiwgXAotICAgICAgICAgICIwLjAxMjA5NCwgMC4wMTIxNjMsIDAuMDEyMTcsIDAuMDEyMTc0LCAwLjAxMjE3NiwgMC4wMTIxNzcsIDAuMDEyMTc4IiwgXAotICAgICAgICAgICIwLjAxMjA5NSwgMC4wMTIxNjMsIDAuMDEyMTcsIDAuMDEyMTc0LCAwLjAxMjE3NiwgMC4wMTIxNzgsIDAuMDEyMTc4IiwgXAotICAgICAgICAgICIwLjAxMjExNywgMC4wMTIxODUsIDAuMDEyMTkzLCAwLjAxMjE5NiwgMC4wMTIxOTgsIDAuMDEyMTk5LCAwLjAxMjIiLCBcCi0gICAgICAgICAgIjAuMDEyMTU3LCAwLjAxMjIyNSwgMC4wMTIyMzMsIDAuMDEyMjM2LCAwLjAxMjIzOCwgMC4wMTIyMzksIDAuMDEyMjQiLCBcCi0gICAgICAgICAgIjAuMDEyMTg5LCAwLjAxMjI1OCwgMC4wMTIyNjYsIDAuMDEyMjcsIDAuMDEyMjcyLCAwLjAxMjI3MywgMC4wMTIyNzQiLCBcCi0gICAgICAgICAgIjAuMDEyMjQxLCAwLjAxMjMxLCAwLjAxMjMxOCwgMC4wMTIzMjIsIDAuMDEyMzI0LCAwLjAxMjMyNSwgMC4wMTIzMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFNFKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE0MTIzNTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE0MTIwMjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE0MTIzNTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDU4NjYsIDAuMDA1ODU2LCAwLjAwNTg1OSwgMC4wMDU4NjYsIDAuMDA1ODgsIDAuMDA1OTA2LCAwLjAwNTkzMiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNzI4MiwgMC4wMDcyMjYsIDAuMDA3MjA2LCAwLjAwNzIyMywgMC4wMDcyMywgMC4wMDcyNzcsIDAuMDA3MzI5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEJiFFJiFTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fRV9FUV8wX0FOX1NJX0VRXzAgPT0gMSdiMSI7Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDU2MjUsIC0wLjA1MTI1LCAtMC4wNDUsIC0wLjAzODc1LCAtMC4wMzI1LCAtMC4wMjg3NSwgLTAuMDIiLCBcCi0gICAgICAgICAgIi0wLjA2NzUsIC0wLjA2MjUsIC0wLjA1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjAzMzc1LCAtMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDgsIC0wLjA3NSwgLTAuMDYyNSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA0NjI1LCAtMC4wNDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDkyNSwgLTAuMDgxMjUsIC0wLjA3NSwgLTAuMDY4NzUsIC0wLjA2ODc1LCAtMC4wNTg3NSwgLTAuMDU2MjUiLCBcCi0gICAgICAgICAgIi0wLjA5ODc1LCAtMC4wOTM3NSwgLTAuMDg3NSwgLTAuMDgxMjUsIC0wLjA3NSwgLTAuMDcxMjUsIC0wLjA2MjUiLCBcCi0gICAgICAgICAgIi0wLjExNSwgLTAuMTAzNzUsIC0wLjA5NzUsIC0wLjA5MTI1LCAtMC4wODUsIC0wLjA4MTI1LCAtMC4wNzg3NSIsIFwKLSAgICAgICAgICAiLTAuMTIzNzUsIC0wLjExMjUsIC0wLjEwNjI1LCAtMC4xLCAtMC4xLCAtMC4wOSwgLTAuMDg3NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRCYhRSZTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fRV9FUV8wX0FOX1NJX0VRXzEgPT0gMSdiMSI7Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDA2MjUsIDAuMDA1LCAwLjAxMTI1LCAwLjAyMzc1LCAwLjAzLCAwLjA0LCAwLjA0ODc1IiwgXAotICAgICAgICAgICItMC4wMTc1LCAtMC4wMDYyNSwgMC4wMDYyNSwgMC4wMTI1LCAwLjAxODc1LCAwLjAzNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAxODc1LCAtMC4wMDYyNSwgMCwgMC4wMTI1LCAwLjAyMjUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLCAwLjAxLCAwLjAxODc1IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAwLjAwMzc1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjA1MjUsIC0wLjA0NzUsIC0wLjA0MTI1LCAtMC4wMjg3NSwgLTAuMDIyNSwgLTAuMDEyNSwgLTAuMDAzNzUiLCBcCi0gICAgICAgICAgIi0wLjA2MTI1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wMzEyNSwgLTAuMDIxMjUsIC0wLjAxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUQmRSZTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fRV9FUV8xX0FOX1NJX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDQzNzUsIC0wLjAzMjUsIC0wLjAyNjI1LCAtMC4wMiwgLTAuMDEzNzUsIC0wLjAwMzc1LCAtMC4wMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMTUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wNjEyNSwgLTAuMDU2MjUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzc1LCAtMC4wMjc1LCAtMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDczNzUsIC0wLjA2ODc1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wNCwgLTAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjA4NjI1LCAtMC4wNzUsIC0wLjA2ODc1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDUyNSwgLTAuMDQzNzUiLCBcCi0gICAgICAgICAgIi0wLjEwMjUsIC0wLjA5MTI1LCAtMC4wODUsIC0wLjA3ODc1LCAtMC4wNzI1LCAtMC4wNjg3NSwgLTAuMDYiLCBcCi0gICAgICAgICAgIi0wLjExMTI1LCAtMC4xMDYyNSwgLTAuMSwgLTAuMDkzNzUsIC0wLjA4NzUsIC0wLjA3NzUsIC0wLjA3NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJEJkUmIVNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMV9BTl9FX0VRXzFfQU5fU0lfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMjUsIC0wLjAxMzc1LCAtMC4wMDEyNSwgMC4wMDUsIDAuMDE3NSwgMC4wMjc1LCAwLjAzNjI1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDI1LCAtMC4wMTI1LCAwLCAwLjAwNjI1LCAwLjAxNjI1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjAzNzUsIC0wLjAyNSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAuMDAzNzUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjA1NSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAwMjUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA2NzUsIC0wLjA1NjI1LCAtMC4wNDM3NSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDE1LCAwIiwgXAotICAgICAgICAgICItMC4wNzc1LCAtMC4wNjYyNSwgLTAuMDUzNzUsIC0wLjA0NzUsIC0wLjAzNSwgLTAuMDI1LCAtMC4wMTYyNSIsIFwKLSAgICAgICAgICAiLTAuMDg2MjUsIC0wLjA3NSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA0Mzc1LCAtMC4wMzM3NSwgLTAuMDI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRCYhRSYhU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX0VfRVFfMF9BTl9TSV9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2MjUsIDAuMDU3NSwgMC4wMzg3NSwgMC4wMzI1LCAwLjAyLCAwLjAwMzc1LCAtMC4wMDUiLCBcCi0gICAgICAgICAgIjAuMDczNzUsIDAuMDYyNSwgMC4wNSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAxNSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiMC4wODYyNSwgMC4wNzUsIDAuMDYyNSwgMC4wNSwgMC4wNDM3NSwgMC4wMjc1LCAwLjAxODc1IiwgXAotICAgICAgICAgICIwLjA5ODc1LCAwLjA4NzUsIDAuMDc1LCAwLjA2MjUsIDAuMDUsIDAuMDQsIDAuMDI1IiwgXAotICAgICAgICAgICIwLjEwNSwgMC4wOTM3NSwgMC4wODEyNSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA0NjI1LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIjAuMTIxMjUsIDAuMTEsIDAuMDk3NSwgMC4wODUsIDAuMDcyNSwgMC4wNTYyNSwgMC4wNDc1IiwgXAotICAgICAgICAgICIwLjEzLCAwLjExODc1LCAwLjEwNjI1LCAwLjA5Mzc1LCAwLjA4MTI1LCAwLjA2NSwgMC4wNTYyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUQmIUUmU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX0VfRVFfMF9BTl9TSV9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2ODc1LCAwLjA1NzUsIDAuMDUxMjUsIDAuMDM4NzUsIDAuMDMyNSwgMC4wMjg3NSwgMC4wMiIsIFwKLSAgICAgICAgICAiMC4wOCwgMC4wNjg3NSwgMC4wNTYyNSwgMC4wNSwgMC4wNDM3NSwgMC4wMzM3NSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4wOTI1LCAwLjA4MTI1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDQ2MjUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMTA1LCAwLjA5Mzc1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNTg3NSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiMC4xMTEyNSwgMC4xLCAwLjA5Mzc1LCAwLjA4NzUsIDAuMDgxMjUsIDAuMDcxMjUsIDAuMDYyNSIsIFwKLSAgICAgICAgICAiMC4xMjc1LCAwLjEyMjUsIDAuMTEsIDAuMTAzNzUsIDAuMDk3NSwgMC4wODc1LCAwLjA3ODc1IiwgXAotICAgICAgICAgICIwLjE0MjUsIDAuMTMxMjUsIDAuMTI1LCAwLjExMjUsIDAuMTEyNSwgMC4xMDI1LCAwLjA5Mzc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRCZFJlNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9FX0VRXzFfQU5fU0lfRVFfMSA9PSAxJ2IxIjsKLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjI1LCAwLjA1MTI1LCAwLjAzODc1LCAwLjAyNjI1LCAwLjAxMzc1LCAwLjAwMzc1LCAtMC4wMTEyNSIsIFwKLSAgICAgICAgICAiMC4wNzM3NSwgMC4wNjI1LCAwLjA1LCAwLjAzNzUsIDAuMDI1LCAwLjAwODc1LCAwIiwgXAotICAgICAgICAgICIwLjA4LCAwLjA2ODc1LCAwLjA1NjI1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDIxMjUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4wOTI1LCAwLjA4MTI1LCAwLjA2ODc1LCAwLjA1NjI1LCAwLjA0Mzc1LCAwLjAzMzc1LCAwLjAxODc1IiwgXAotICAgICAgICAgICIwLjEwNSwgMC4wOTM3NSwgMC4wODEyNSwgMC4wNjg3NSwgMC4wNTYyNSwgMC4wNCwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4xMjEyNSwgMC4xMSwgMC4wOTc1LCAwLjA4NSwgMC4wNzI1LCAwLjA1NjI1LCAwLjA0NzUiLCBcCi0gICAgICAgICAgIjAuMTMsIDAuMTE4NzUsIDAuMTA2MjUsIDAuMDkzNzUsIDAuMDg3NSwgMC4wNzEyNSwgMC4wNjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJEJkUmIVNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMV9BTl9FX0VRXzFfQU5fU0lfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTM3NSwgMC4wODI1LCAwLjA3LCAwLjA2Mzc1LCAwLjA1NzUsIDAuMDQ3NSwgMC4wNDUiLCBcCi0gICAgICAgICAgIjAuMTA1LCAwLjA5Mzc1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNTg3NSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiMC4xMTc1LCAwLjEwNjI1LCAwLjA5Mzc1LCAwLjA4NzUsIDAuMDgxMjUsIDAuMDcxMjUsIDAuMDY4NzUiLCBcCi0gICAgICAgICAgIjAuMTMsIDAuMTE4NzUsIDAuMTA2MjUsIDAuMSwgMC4wOTM3NSwgMC4wODM3NSwgMC4wODEyNSIsIFwKLSAgICAgICAgICAiMC4xMzYyNSwgMC4xMjUsIDAuMTEyNSwgMC4xMDYyNSwgMC4xLCAwLjA5NjI1LCAwLjA4NzUiLCBcCi0gICAgICAgICAgIjAuMTQ2MjUsIDAuMTQxMjUsIDAuMTI4NzUsIDAuMTIyNSwgMC4xMTYyNSwgMC4xMDYyNSwgMC4wOTc1IiwgXAotICAgICAgICAgICIwLjE2MTI1LCAwLjE1LCAwLjEzNzUsIDAuMTMxMjUsIDAuMTI1LCAwLjExNSwgMC4xMDYyNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oU0kpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDg4OTczMjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA4ODY3ODQ7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwODg5NzMyOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzUyOSwgMC4wMDM0OTcsIDAuMDAzNDgsIDAuMDAzNDcxLCAwLjAwMzQ2NywgMC4wMDM0NzQsIDAuMDAzNDgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDY0MTMsIDAuMDA2Mzk1LCAwLjAwNjM4NSwgMC4wMDYzOCwgMC4wMDYzNzgsIDAuMDA2MzgyLCAwLjAwNjM4OCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJTRSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wNSwgLTAuMDM4NzUsIC0wLjAzMjUsIC0wLjAyNjI1LCAtMC4wMiwgLTAuMDEsIC0wLjAwNzUiLCBcCi0gICAgICAgICAgIi0wLjA1NSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDIxMjUsIC0wLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjA2NzUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzMzc1LCAtMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjA4LCAtMC4wNjg3NSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNCwgLTAuMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDg2MjUsIC0wLjA4MTI1LCAtMC4wNzUsIC0wLjA2ODc1LCAtMC4wNjI1LCAtMC4wNTI1LCAtMC4wNSIsIFwKLSAgICAgICAgICAiLTAuMTAyNSwgLTAuMDk3NSwgLTAuMDg1LCAtMC4wODUsIC0wLjA3ODc1LCAtMC4wNjg3NSwgLTAuMDYiLCBcCi0gICAgICAgICAgIi0wLjExNzUsIC0wLjEwNjI1LCAtMC4xLCAtMC4wOTM3NSwgLTAuMDg3NSwgLTAuMDgzNzUsIC0wLjA3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAxMjUsIC0wLjAwMTI1LCAwLjAxMTI1LCAwLjAxNzUsIDAuMDMsIDAuMDQsIDAuMDQ4NzUiLCBcCi0gICAgICAgICAgIi0wLjAxNzUsIC0wLjAwNjI1LCAwLCAwLjAxMjUsIDAuMDE4NzUsIDAuMDM1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLCAwLjAxMjUsIDAuMDIyNSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLCAwLjAxNjI1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDM3NSwgLTAuMDI1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMC4wMDM3NSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDU4NzUsIC0wLjA0NzUsIC0wLjAzNSwgLTAuMDI4NzUsIC0wLjAxNjI1LCAtMC4wMDYyNSwgMC4wMDI1IiwgXAotICAgICAgICAgICItMC4wNjEyNSwgLTAuMDU2MjUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAxNSwgLTAuMDA2MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlNFIjsKLSAgICAgIHNkZl9jb25kIDogIlNFID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3NSwgMC4wNjM3NSwgMC4wNTc1LCAwLjA1MTI1LCAwLjA0NSwgMC4wMzUsIDAuMDI2MjUiLCBcCi0gICAgICAgICAgIjAuMDg2MjUsIDAuMDc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDUsIDAuMDQsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiMC4wOTI1LCAwLjA4NzUsIDAuMDc1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDUyNSwgMC4wNSIsIFwKLSAgICAgICAgICAiMC4xMDUsIDAuMDkzNzUsIDAuMDg3NSwgMC4wODEyNSwgMC4wNzUsIDAuMDY1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICIwLjExNzUsIDAuMTA2MjUsIDAuMDkzNzUsIDAuMDg3NSwgMC4wODEyNSwgMC4wNzEyNSwgMC4wNjg3NSIsIFwKLSAgICAgICAgICAiMC4xMzM3NSwgMC4xMjI1LCAwLjExLCAwLjEwMzc1LCAwLjA5NzUsIDAuMDg3NSwgMC4wODUiLCBcCi0gICAgICAgICAgIjAuMTQyNSwgMC4xMzc1LCAwLjEyNSwgMC4xMTg3NSwgMC4xMTI1LCAwLjEwMjUsIDAuMDkzNzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNSwgMC4wMzg3NSwgMC4wMjYyNSwgMC4wMTM3NSwgMC4wMDc1LCAtMC4wMDg3NSwgLTAuMDE3NSIsIFwKLSAgICAgICAgICAiMC4wNjEyNSwgMC4wNSwgMC4wMzc1LCAwLjAyNSwgMC4wMTI1LCAwLjAwMjUsIC0wLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMDY3NSwgMC4wNjI1LCAwLjA1LCAwLjAzNzUsIDAuMDI1LCAwLjAwODc1LCAwIiwgXAotICAgICAgICAgICIwLjA4LCAwLjA2ODc1LCAwLjA1NjI1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDIxMjUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMDkyNSwgMC4wODEyNSwgMC4wNjg3NSwgMC4wNTYyNSwgMC4wNDM3NSwgMC4wMjc1LCAwLjAxODc1IiwgXAotICAgICAgICAgICIwLjEwMjUsIDAuMDkxMjUsIDAuMDc4NzUsIDAuMDY2MjUsIDAuMDYsIDAuMDQzNzUsIDAuMDI4NzUiLCBcCi0gICAgICAgICAgIjAuMTExMjUsIDAuMTA2MjUsIDAuMDkzNzUsIDAuMDgxMjUsIDAuMDY4NzUsIDAuMDUyNSwgMC4wNDM3NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogU0VERkZIUVg4ICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoU0VERkZIUVg4KSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDEuMDE2MjE7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgZmYgKE4zMCxRQklOVCkgewotICAgIG5leHRfc3RhdGUgOiAiKChTRSBTSSkgKyAoIVNFICgoRSBEKSArICghRSAoISghTjMwKSkpKSkpIjsKLSAgICBjbG9ja2VkX29uIDogIkNLIjsKLSAgfQotICBwaW4oQ0spICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYxMTQ4NjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MTEyMzU7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjExNDg2OwotICAgIGNsb2NrIDogdHJ1ZTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDM5NjEsIDAuMDAzOTM1LCAwLjAwMzkyMiwgMC4wMDM5MjQsIDAuMDAzOTM2LCAwLjAwMzk1NywgMC4wMDM5NzQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDcxMjYsIDAuMDA3MDk5LCAwLjAwNzA5NCwgMC4wMDcxMDcsIDAuMDA3MTMzLCAwLjAwNzE3MiwgMC4wMDcyMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFEJiFFJlNFJiFTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fRV9FUV8wX0FOX1NFX0VRXzFfQU5fU0lfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjEzNDYxNSwgMC4xNDQ4MDEsIDAuMTU3NTA1LCAwLjE2OTQ2LCAwLjE4MDAzNSwgMC4xOTQ2MTIsIDAuMjA1ODk5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wOTgxODksIDAuMTA4MTMzLCAwLjEyMDMwNywgMC4xMzE2NDUsIDAuMTQxNTkzLCAwLjE1NDg2NywgMC4xNjUxMjMiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEQpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDkzMDM0OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDkyNzQyMjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA5MzAzNDsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDQ0OSwgMC4wMDQ0NjIsIDAuMDA0NDQ5LCAwLjAwNDQ0MSwgMC4wMDQ0MzgsIDAuMDA0NDM5LCAwLjAwNDQ0MyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwODI2NSwgMC4wMDgyNSwgMC4wMDgyNDIsIDAuMDA4MjM4LCAwLjAwODIzNywgMC4wMDgyNCwgMC4wMDgyNDUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiRSYhU0UiOwotICAgICAgc2RmX2NvbmQgOiAiRV9FUV8xX0FOX1NFX0VRXzAgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDgxMjUsIC0wLjA3LCAtMC4wNjM3NSwgLTAuMDU3NSwgLTAuMDU3NSwgLTAuMDQ3NSwgLTAuMDQ1IiwgXAotICAgICAgICAgICItMC4wODYyNSwgLTAuMDgxMjUsIC0wLjA3NSwgLTAuMDY4NzUsIC0wLjA2MjUsIC0wLjA1ODc1LCAtMC4wNSIsIFwKLSAgICAgICAgICAiLTAuMDk4NzUsIC0wLjA5Mzc1LCAtMC4wODc1LCAtMC4wODEyNSwgLTAuMDc1LCAtMC4wNzEyNSwgLTAuMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMTExMjUsIC0wLjEsIC0wLjA5Mzc1LCAtMC4wODc1LCAtMC4wODc1LCAtMC4wNzc1LCAtMC4wNzUiLCBcCi0gICAgICAgICAgIi0wLjExNzUsIC0wLjExMjUsIC0wLjEwNjI1LCAtMC4xLCAtMC4wOTM3NSwgLTAuMDksIC0wLjA4NzUiLCBcCi0gICAgICAgICAgIi0wLjEzMzc1LCAtMC4xMjg3NSwgLTAuMTIyNSwgLTAuMTE2MjUsIC0wLjExLCAtMC4xMDYyNSwgLTAuMDk3NSIsIFwKLSAgICAgICAgICAiLTAuMTQ4NzUsIC0wLjE0Mzc1LCAtMC4xMzc1LCAtMC4xMzEyNSwgLTAuMTI1LCAtMC4xMjEyNSwgLTAuMTEyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAyNSwgLTAuMDEzNzUsIC0wLjAwNzUsIC0wLjAwMTI1LCAwLjAwNSwgMC4wMjEyNSwgMC4wMjM3NSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAyNSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAsIDAuMDEsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDI1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAwODc1LCAwIiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA1LCAtMC4wMzc1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDE1LCAtMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wNjUsIC0wLjA2LCAtMC4wNTM3NSwgLTAuMDQ3NSwgLTAuMDQxMjUsIC0wLjAzMTI1LCAtMC4wMjI1IiwgXAotICAgICAgICAgICItMC4wNzM3NSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDQsIC0wLjAzMTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJFJiFTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJFX0VRXzFfQU5fU0VfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMjUsIDAuMTEzNzUsIDAuMTAxMjUsIDAuMDk1LCAwLjA4ODc1LCAwLjA3ODc1LCAwLjA3IiwgXAotICAgICAgICAgICIwLjEzLCAwLjExODc1LCAwLjExMjUsIDAuMSwgMC4wOTM3NSwgMC4wODM3NSwgMC4wODEyNSIsIFwKLSAgICAgICAgICAiMC4xNDI1LCAwLjEzMTI1LCAwLjExODc1LCAwLjExMjUsIDAuMTA2MjUsIDAuMDk2MjUsIDAuMDkzNzUiLCBcCi0gICAgICAgICAgIjAuMTU1LCAwLjE0Mzc1LCAwLjEzMTI1LCAwLjEyNSwgMC4xMTg3NSwgMC4xMDg3NSwgMC4xIiwgXAotICAgICAgICAgICIwLjE2MTI1LCAwLjE1LCAwLjE0Mzc1LCAwLjEzMTI1LCAwLjEyNSwgMC4xMjEyNSwgMC4xMTI1IiwgXAotICAgICAgICAgICIwLjE3NzUsIDAuMTY2MjUsIDAuMTYsIDAuMTQ3NSwgMC4xNDEyNSwgMC4xMzc1LCAwLjEyODc1IiwgXAotICAgICAgICAgICIwLjE5MjUsIDAuMTgxMjUsIDAuMTY4NzUsIDAuMTYyNSwgMC4xNTYyNSwgMC4xNDYyNSwgMC4xNDM3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5Mzc1LCAwLjA4MjUsIDAuMDcsIDAuMDU3NSwgMC4wNDUsIDAuMDM1LCAwLjAyIiwgXAotICAgICAgICAgICIwLjEwNSwgMC4wOTM3NSwgMC4wODEyNSwgMC4wNjg3NSwgMC4wNTYyNSwgMC4wNCwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4xMTEyNSwgMC4xLCAwLjA4NzUsIDAuMDc1LCAwLjA2ODc1LCAwLjA1MjUsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiMC4xMjM3NSwgMC4xMTI1LCAwLjEsIDAuMDg3NSwgMC4wNzUsIDAuMDU4NzUsIDAuMDUiLCBcCi0gICAgICAgICAgIjAuMTMsIDAuMTE4NzUsIDAuMTA2MjUsIDAuMDkzNzUsIDAuMDg3NSwgMC4wNzEyNSwgMC4wNjI1IiwgXAotICAgICAgICAgICIwLjE0NjI1LCAwLjEzNSwgMC4xMjI1LCAwLjExLCAwLjA5NzUsIDAuMDg3NSwgMC4wNzI1IiwgXAotICAgICAgICAgICIwLjE1NSwgMC4xNDM3NSwgMC4xMzEyNSwgMC4xMjUsIDAuMTEyNSwgMC4wOTYyNSwgMC4wODc1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihFKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE2MzExMTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE2MzA1OTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE2MzExMTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDc2NSwgMC4wMDc2MjQsIDAuMDA3NjIxLCAwLjAwNzYyNCwgMC4wMDc2MzgsIDAuMDA3NjU3LCAwLjAwNzY3OCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwOTEyNCwgMC4wMDkwNzksIDAuMDA5MDc5LCAwLjAwOTA3NCwgMC4wMDkwODMsIDAuMDA5MTI3LCAwLjAwOTE2NyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhU0UiOwotICAgICAgc2RmX2NvbmQgOiAiU0UgPT0gMSdiMCI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDg3NSwgLTAuMDc2MjUsIC0wLjA2Mzc1LCAtMC4wNTEyNSwgLTAuMDQ1LCAtMC4wMjg3NSwgLTAuMDIiLCBcCi0gICAgICAgICAgIi0wLjA5MjUsIC0wLjA4NzUsIC0wLjA3NSwgLTAuMDYyNSwgLTAuMDUsIC0wLjA0LCAtMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMTA1LCAtMC4xLCAtMC4wODc1LCAtMC4wNzUsIC0wLjA2MjUsIC0wLjA1MjUsIC0wLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjExNzUsIC0wLjEwNjI1LCAtMC4wOTM3NSwgLTAuMDgxMjUsIC0wLjA3NSwgLTAuMDU4NzUsIC0wLjA1IiwgXAotICAgICAgICAgICItMC4xMjM3NSwgLTAuMTEyNSwgLTAuMSwgLTAuMDkzNzUsIC0wLjA4MTI1LCAtMC4wNjUsIC0wLjA1NjI1IiwgXAotICAgICAgICAgICItMC4xNCwgLTAuMTI4NzUsIC0wLjExNjI1LCAtMC4xMDM3NSwgLTAuMDkxMjUsIC0wLjA4MTI1LCAtMC4wNjYyNSIsIFwKLSAgICAgICAgICAiLTAuMTQyNSwgLTAuMTM3NSwgLTAuMTI1LCAtMC4xMTI1LCAtMC4xLCAtMC4wOSwgLTAuMDc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDE4NzUsIC0wLjAwNzUsIC0wLjAwMTI1LCAwLjAwNSwgMC4wMTEyNSwgMC4wMjc1LCAwLjAzIiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLCAwLjAwNjI1LCAwLjAxNjI1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLjAwMzc1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMDI1LCAwIiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAxNSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA1ODc1LCAtMC4wNTM3NSwgLTAuMDQ3NSwgLTAuMDQxMjUsIC0wLjA0MTI1LCAtMC4wMzEyNSwgLTAuMDIyNSIsIFwKLSAgICAgICAgICAiLTAuMDY3NSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNSwgLTAuMDUsIC0wLjA0LCAtMC4wMzEyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIVNFIjsKLSAgICAgIHNkZl9jb25kIDogIlNFID09IDEnYjAiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExODc1LCAwLjEwNzUsIDAuMDk1LCAwLjA4ODc1LCAwLjA4MjUsIDAuMDcyNSwgMC4wNjM3NSIsIFwKLSAgICAgICAgICAiMC4xMjM3NSwgMC4xMTI1LCAwLjEwNjI1LCAwLjA5Mzc1LCAwLjA4NzUsIDAuMDgzNzUsIDAuMDc1IiwgXAotICAgICAgICAgICIwLjEzNjI1LCAwLjEyNSwgMC4xMTg3NSwgMC4xMDYyNSwgMC4xLCAwLjA5LCAwLjA4NzUiLCBcCi0gICAgICAgICAgIjAuMTQ4NzUsIDAuMTM3NSwgMC4xMjUsIDAuMTE4NzUsIDAuMTEyNSwgMC4xMDI1LCAwLjEiLCBcCi0gICAgICAgICAgIjAuMTYxMjUsIDAuMTUsIDAuMTM3NSwgMC4xMzEyNSwgMC4xMjUsIDAuMTE1LCAwLjExMjUiLCBcCi0gICAgICAgICAgIjAuMTc3NSwgMC4xNjYyNSwgMC4xNiwgMC4xNDc1LCAwLjE0MTI1LCAwLjEzMTI1LCAwLjEyODc1IiwgXAotICAgICAgICAgICIwLjE5MjUsIDAuMTgxMjUsIDAuMTY4NzUsIDAuMTYyNSwgMC4xNTYyNSwgMC4xNDYyNSwgMC4xNDM3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEsIDAuMDk1LCAwLjA4ODc1LCAwLjA4MjUsIDAuMDc2MjUsIDAuMDcyNSwgMC4wNjM3NSIsIFwKLSAgICAgICAgICAiMC4xMTEyNSwgMC4xMDYyNSwgMC4xLCAwLjA5Mzc1LCAwLjA4NzUsIDAuMDc3NSwgMC4wNzUiLCBcCi0gICAgICAgICAgIjAuMTIzNzUsIDAuMTE4NzUsIDAuMTA2MjUsIDAuMTA2MjUsIDAuMSwgMC4wOSwgMC4wODc1IiwgXAotICAgICAgICAgICIwLjEzLCAwLjEyNSwgMC4xMTg3NSwgMC4xMTI1LCAwLjEwNjI1LCAwLjEwMjUsIDAuMDkzNzUiLCBcCi0gICAgICAgICAgIjAuMTM2MjUsIDAuMTMxMjUsIDAuMTI1LCAwLjExODc1LCAwLjExMjUsIDAuMTA4NzUsIDAuMSIsIFwKLSAgICAgICAgICAiMC4xNDYyNSwgMC4xNDEyNSwgMC4xMzUsIDAuMTI4NzUsIDAuMTIyNSwgMC4xMTg3NSwgMC4xMSIsIFwKLSAgICAgICAgICAiMC4xNTUsIDAuMTUsIDAuMTQzNzUsIDAuMTM3NSwgMC4xMzEyNSwgMC4xMjc1LCAwLjExODc1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihRKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDEuOTk5Njg7Ci0gICAgZnVuY3Rpb24gOiAiTjMwIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBub25fdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJpc2luZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEyMTMxLCAwLjE2MDA0OSwgMC4xOTU5ODgsIDAuMjIxNjAyLCAwLjI2MjU3NywgMC4yOTg0MjQsIDAuMzQ5NjMiLCBcCi0gICAgICAgICAgIjAuMTMxNTgzLCAwLjE3MDMyMywgMC4yMDYyNTYsIDAuMjMxODY3LCAwLjI3Mjg0OCwgMC4zMDg2ODUsIDAuMzU5ODc2IiwgXAotICAgICAgICAgICIwLjE0NDMwOCwgMC4xODMwMzksIDAuMjE4OTczLCAwLjI0NDU4OSwgMC4yODU1NjQsIDAuMzIxNDAzLCAwLjM3MjYxIiwgXAotICAgICAgICAgICIwLjE1NjA4MSwgMC4xOTQ4MTYsIDAuMjMwNzQ5LCAwLjI1NjM2MiwgMC4yOTczNDMsIDAuMzMzMTgxLCAwLjM4NDM3IiwgXAotICAgICAgICAgICIwLjE2NjMxOSwgMC4yMDUwNTQsIDAuMjQwOTg3LCAwLjI2NjYsIDAuMzA3NTgyLCAwLjM0MzQyMiwgMC4zOTQ2MDgiLCBcCi0gICAgICAgICAgIjAuMTgwOTY1LCAwLjIxOTcxLCAwLjI1NTYzOSwgMC4yODEyNTcsIDAuMzIyMjM3LCAwLjM1ODA3NCwgMC40MDkyODgiLCBcCi0gICAgICAgICAgIjAuMTkyMjA1LCAwLjIzMDk0MywgMC4yNjY4NzcsIDAuMjkyNDg5LCAwLjMzMzQ3LCAwLjM2OTMwNSwgMC40MjA1MzEiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjM1NzYsIDAuMDkzMDUyLCAwLjE2NTY4NiwgMC4yMTgxMTcsIDAuMzAyNTg3LCAwLjM3NjQ4NiwgMC40ODIxOTUiLCBcCi0gICAgICAgICAgIjAuMDIzNjE4LCAwLjA5MzA3OSwgMC4xNjU2MTcsIDAuMjE4MTMsIDAuMzAyNTg2LCAwLjM3NjA2NiwgMC40ODE5MzciLCBcCi0gICAgICAgICAgIjAuMDIzNTgyLCAwLjA5MzA1LCAwLjE2NTYzNywgMC4yMTgxMzMsIDAuMzAyNTc0LCAwLjM3NjQ2OCwgMC40ODIyMjQiLCBcCi0gICAgICAgICAgIjAuMDIzNjMzLCAwLjA5MzA2MiwgMC4xNjU2ODgsIDAuMjE4MTE3LCAwLjMwMjU5LCAwLjM3NjQ4NCwgMC40ODIwNjkiLCBcCi0gICAgICAgICAgIjAuMDIzNjI4LCAwLjA5MzA2MiwgMC4xNjU2OSwgMC4yMTgxMiwgMC4zMDI1OTQsIDAuMzc2NDg1LCAwLjQ4MjEzNSIsIFwKLSAgICAgICAgICAiMC4wMjM1OTQsIDAuMDkzMDU2LCAwLjE2NTY5NSwgMC4yMTgxMzQsIDAuMzAyNTc2LCAwLjM3NjQ2OCwgMC40ODE3MiIsIFwKLSAgICAgICAgICAiMC4wMjM2LCAwLjA5MzA1NiwgMC4xNjU2ODksIDAuMjE4MTM2LCAwLjMwMjU4OCwgMC4zNzY0NzksIDAuNDgyNDA4Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTM0NjIyLCAwLjE3NTI0LCAwLjIxMzM0NiwgMC4yNDA1MSwgMC4yODM5NDYsIDAuMzIxOTQ4LCAwLjM3NjI0MiIsIFwKLSAgICAgICAgICAiMC4xNDQ4MDksIDAuMTg1NDI1LCAwLjIyMzUzOCwgMC4yNTA3MDMsIDAuMjk0MTMyLCAwLjMzMjE0LCAwLjM4NjQzMiIsIFwKLSAgICAgICAgICAiMC4xNTc1MDksIDAuMTk4MTMxLCAwLjIzNjI0MywgMC4yNjM0MDksIDAuMzA2ODQsIDAuMzQ0ODQ1LCAwLjM5OTEzOSIsIFwKLSAgICAgICAgICAiMC4xNjk1LCAwLjIxMDExLCAwLjI0ODIyMSwgMC4yNzUzODQsIDAuMzE4ODEzLCAwLjM1NjgyLCAwLjQxMTExNCIsIFwKLSAgICAgICAgICAiMC4xODAwMzksIDAuMjIwNjU0LCAwLjI1ODc2NywgMC4yODU5MzMsIDAuMzI5MzYzLCAwLjM2NzM2OSwgMC40MjE2NjUiLCBcCi0gICAgICAgICAgIjAuMTk0NjE2LCAwLjIzNTIzLCAwLjI3MzMzNywgMC4zMDA1MDEsIDAuMzQzOTM2LCAwLjM4MTkzNSwgMC40MzYyMzQiLCBcCi0gICAgICAgICAgIjAuMjA1OTAxLCAwLjI0NjUyMywgMC4yODQ2MzUsIDAuMzExOCwgMC4zNTUyMywgMC4zOTMyMzYsIDAuNDQ3NTMxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDIzMTE5LCAwLjA5NjMxNCwgMC4xNzIyNTgsIDAuMjI3MDIsIDAuMzE1MjQxLCAwLjM5MjQwMiwgMC41MDI2MjciLCBcCi0gICAgICAgICAgIjAuMDIzMTE5LCAwLjA5NjMzOCwgMC4xNzIyNzksIDAuMjI2OTYxLCAwLjMxNTI0NywgMC4zOTIzODcsIDAuNTAyNjIiLCBcCi0gICAgICAgICAgIjAuMDIzMTE4LCAwLjA5NjM0NSwgMC4xNzIyOCwgMC4yMjY5NTgsIDAuMzE1MjM4LCAwLjM5MjM4LCAwLjUwMjYyMiIsIFwKLSAgICAgICAgICAiMC4wMjMxMjMsIDAuMDk2MzQ5LCAwLjE3MjI1NiwgMC4yMjY5NiwgMC4zMTUyNTQsIDAuMzkyMzkzLCAwLjUwMjYwMiIsIFwKLSAgICAgICAgICAiMC4wMjMxMDYsIDAuMDk2MzQ0LCAwLjE3MjI4LCAwLjIyNjk2MSwgMC4zMTUyNCwgMC4zOTIzODIsIDAuNTAyNjE4IiwgXAotICAgICAgICAgICIwLjAyMzExLCAwLjA5NjMwNCwgMC4xNzIyNjUsIDAuMjI2OTU5LCAwLjMxNTI1NCwgMC4zOTE3NjcsIDAuNTAxOTc1IiwgXAotICAgICAgICAgICIwLjAyMzEyOSwgMC4wOTYzNDgsIDAuMTcyMjc3LCAwLjIyNjk1MSwgMC4zMTUyMzYsIDAuMzkyMzc3LCAwLjUwMjYyNyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyMTY1MSwgMC4wMjE5ODcsIDAuMDIyMDY0LCAwLjAyMjA5LCAwLjAyMjExNCwgMC4wMjIxMjUsIDAuMDIyMTM1IiwgXAotICAgICAgICAgICIwLjAyMTYzNCwgMC4wMjE5NjIsIDAuMDIyMDM4LCAwLjAyMjA2NSwgMC4wMjIwODcsIDAuMDIyMDk4LCAwLjAyMjEwOCIsIFwKLSAgICAgICAgICAiMC4wMjE1OTgsIDAuMDIxOTM3LCAwLjAyMjAxNCwgMC4wMjIwNCwgMC4wMjIwNjMsIDAuMDIyMDc1LCAwLjAyMjA4NiIsIFwKLSAgICAgICAgICAiMC4wMjE2MTYsIDAuMDIxOTQxLCAwLjAyMjAxNywgMC4wMjIwNDYsIDAuMDIyMDY2LCAwLjAyMjA3OSwgMC4wMjIwODciLCBcCi0gICAgICAgICAgIjAuMDIxNjMzLCAwLjAyMTk1NywgMC4wMjIwMzMsIDAuMDIyMDU4LCAwLjAyMjA4MSwgMC4wMjIwOTQsIDAuMDIyMTAyIiwgXAotICAgICAgICAgICIwLjAyMTYxNSwgMC4wMjE5NTQsIDAuMDIyMDMzLCAwLjAyMjA1OSwgMC4wMjIwODEsIDAuMDIyMDk1LCAwLjAyMjEwNSIsIFwKLSAgICAgICAgICAiMC4wMjE2NTgsIDAuMDIxOTkxLCAwLjAyMjA2OCwgMC4wMjIwOTQsIDAuMDIyMTE2LCAwLjAyMjEzLCAwLjAyMjE0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjMwNzgsIDAuMDIzNTMsIDAuMDIzNjM5LCAwLjAyMzY3NiwgMC4wMjM3MSwgMC4wMjM3MjgsIDAuMDIzNzQ0IiwgXAotICAgICAgICAgICIwLjAyMzAzNiwgMC4wMjM0OTIsIDAuMDIzNjA0LCAwLjAyMzY0LCAwLjAyMzY3NSwgMC4wMjM2OTMsIDAuMDIzNzEiLCBcCi0gICAgICAgICAgIjAuMDIzMDMxLCAwLjAyMzQ5LCAwLjAyMzYsIDAuMDIzNjM3LCAwLjAyMzY3MiwgMC4wMjM2OSwgMC4wMjM3MDYiLCBcCi0gICAgICAgICAgIjAuMDIzMDU4LCAwLjAyMzUzMiwgMC4wMjM2MzksIDAuMDIzNjc1LCAwLjAyMzcwOCwgMC4wMjM3MjUsIDAuMDIzNzQxIiwgXAotICAgICAgICAgICIwLjAyMzA4LCAwLjAyMzUzNywgMC4wMjM2NDcsIDAuMDIzNjg1LCAwLjAyMzcxOSwgMC4wMjM3MzcsIDAuMDIzNzU0IiwgXAotICAgICAgICAgICIwLjAyMzE0NiwgMC4wMjM1OTMsIDAuMDIzNzAyLCAwLjAyMzczOCwgMC4wMjM3NzEsIDAuMDIzNzg5LCAwLjAyMzgwNSIsIFwKLSAgICAgICAgICAiMC4wMjMxNjUsIDAuMDIzNjIzLCAwLjAyMzczMywgMC4wMjM3NzIsIDAuMDIzODA1LCAwLjAyMzgyNCwgMC4wMjM4NCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oU0UpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTQ2NjM3OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTQ2NTM4OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTQ2NjM3OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNTcxNywgMC4wMDU3MDYsIDAuMDA1NzA4LCAwLjAwNTcxOCwgMC4wMDU3MzEsIDAuMDA1NzU0LCAwLjAwNTc3OCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNzAzMiwgMC4wMDY5NzcsIDAuMDA2OTU4LCAwLjAwNjk3OCwgMC4wMDY5ODMsIDAuMDA3MDMsIDAuMDA3MDg3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEJiFFJiFTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fRV9FUV8wX0FOX1NJX0VRXzAgPT0gMSdiMSI7Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDUsIC0wLjA0NSwgLTAuMDM4NzUsIC0wLjAzMjUsIC0wLjAyNjI1LCAtMC4wMjI1LCAtMC4wMiIsIFwKLSAgICAgICAgICAiLTAuMDYxMjUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzMzc1LCAtMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjA3Mzc1LCAtMC4wNjg3NSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNDYyNSwgLTAuMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDg2MjUsIC0wLjA4MTI1LCAtMC4wNzUsIC0wLjA2ODc1LCAtMC4wNjI1LCAtMC4wNTg3NSwgLTAuMDUiLCBcCi0gICAgICAgICAgIi0wLjA5MjUsIC0wLjA4NzUsIC0wLjA4MTI1LCAtMC4wNzUsIC0wLjA3NSwgLTAuMDY1LCAtMC4wNjI1IiwgXAotICAgICAgICAgICItMC4xMDg3NSwgLTAuMTAzNzUsIC0wLjA5MTI1LCAtMC4wOTEyNSwgLTAuMDg1LCAtMC4wNzUsIC0wLjA3MjUiLCBcCi0gICAgICAgICAgIi0wLjExNzUsIC0wLjExMjUsIC0wLjEwNjI1LCAtMC4xLCAtMC4wOTM3NSwgLTAuMDgzNzUsIC0wLjA4MTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEJiFFJlNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9FX0VRXzBfQU5fU0lfRVFfMSA9PSAxJ2IxIjsKLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLCAwLjAxMTI1LCAwLjAxNzUsIDAuMDMsIDAuMDM2MjUsIDAuMDQ2MjUsIDAuMDU1IiwgXAotICAgICAgICAgICItMC4wMTEyNSwgMCwgMC4wMTI1LCAwLjAxODc1LCAwLjAzMTI1LCAwLjA0MTI1LCAwLjA1IiwgXAotICAgICAgICAgICItMC4wMTc1LCAtMC4wMTI1LCAwLCAwLjAxMjUsIDAuMDE4NzUsIDAuMDI4NzUsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAxODc1LCAtMC4wMTI1LCAwLCAwLjAwNjI1LCAwLjAxNjI1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgMCwgMC4wMSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDQ2MjUsIC0wLjAzNSwgLTAuMDI4NzUsIC0wLjAyMjUsIC0wLjAxNjI1LCAwLCAwLjAwODc1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAxNSwgLTAuMDA2MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUQmRSZTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fRV9FUV8xX0FOX1NJX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDM3NSwgLTAuMDI2MjUsIC0wLjAyLCAtMC4wMTM3NSwgLTAuMDA3NSwgLTAuMDAzNzUsIDAuMDA1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAwODc1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMjEyNSwgLTAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjA2NzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjAzMzc1LCAtMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDgsIC0wLjA3NSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNDYyNSwgLTAuMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDk2MjUsIC0wLjA4NSwgLTAuMDc4NzUsIC0wLjA3MjUsIC0wLjA2NjI1LCAtMC4wNjI1LCAtMC4wNTM3NSIsIFwKLSAgICAgICAgICAiLTAuMTA1LCAtMC4xLCAtMC4wOTM3NSwgLTAuMDg3NSwgLTAuMDgxMjUsIC0wLjA3MTI1LCAtMC4wNjg3NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJEJkUmIVNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMV9BTl9FX0VRXzFfQU5fU0lfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMTg3NSwgLTAuMDA3NSwgMC4wMDUsIDAuMDExMjUsIDAuMDIzNzUsIDAuMDMzNzUsIDAuMDQyNSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAxODc1LCAtMC4wMDYyNSwgMC4wMDYyNSwgMC4wMTI1LCAwLjAyMjUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAsIDAuMDEsIDAuMDI1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDQzNzUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgMC4wMDM3NSwgMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wNjEyNSwgLTAuMDUsIC0wLjAzNzUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAwODc1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wNzEyNSwgLTAuMDYsIC0wLjA0NzUsIC0wLjA0MTI1LCAtMC4wMjg3NSwgLTAuMDE4NzUsIC0wLjAxIiwgXAotICAgICAgICAgICItMC4wOCwgLTAuMDY4NzUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDM3NSwgLTAuMDI3NSwgLTAuMDE4NzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEJiFFJiFTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fRV9FUV8wX0FOX1NJX0VRXzAgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDYyNSwgMC4wNTEyNSwgMC4wMzg3NSwgMC4wMjYyNSwgMC4wMiwgMC4wMDM3NSwgLTAuMDA1IiwgXAotICAgICAgICAgICIwLjA3Mzc1LCAwLjA2MjUsIDAuMDUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMTUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMDg2MjUsIDAuMDc1LCAwLjA2MjUsIDAuMDUsIDAuMDQzNzUsIDAuMDI3NSwgMC4wMTI1IiwgXAotICAgICAgICAgICIwLjA5ODc1LCAwLjA4NzUsIDAuMDc1LCAwLjA2MjUsIDAuMDUsIDAuMDMzNzUsIDAuMDI1IiwgXAotICAgICAgICAgICIwLjEwNSwgMC4wOTM3NSwgMC4wODEyNSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA0NjI1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICIwLjExNSwgMC4xMDM3NSwgMC4wOTEyNSwgMC4wODUsIDAuMDcyNSwgMC4wNTYyNSwgMC4wNDc1IiwgXAotICAgICAgICAgICIwLjEyMzc1LCAwLjExMjUsIDAuMSwgMC4wOTM3NSwgMC4wODEyNSwgMC4wNjUsIDAuMDU2MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEJiFFJlNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9FX0VRXzBfQU5fU0lfRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjg3NSwgMC4wNTc1LCAwLjA1MTI1LCAwLjAzODc1LCAwLjAzMjUsIDAuMDI4NzUsIDAuMDIiLCBcCi0gICAgICAgICAgIjAuMDgsIDAuMDY4NzUsIDAuMDU2MjUsIDAuMDUsIDAuMDQzNzUsIDAuMDMzNzUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMDkyNSwgMC4wODEyNSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA0NjI1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjA5ODc1LCAwLjA5Mzc1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNTg3NSwgMC4wNSIsIFwKLSAgICAgICAgICAiMC4xMTEyNSwgMC4xLCAwLjA5Mzc1LCAwLjA4NzUsIDAuMDgxMjUsIDAuMDcxMjUsIDAuMDYyNSIsIFwKLSAgICAgICAgICAiMC4xMjc1LCAwLjExNjI1LCAwLjExLCAwLjEwMzc1LCAwLjA5NzUsIDAuMDg3NSwgMC4wNzg3NSIsIFwKLSAgICAgICAgICAiMC4xNDI1LCAwLjEzMTI1LCAwLjExODc1LCAwLjExMjUsIDAuMTA2MjUsIDAuMDk2MjUsIDAuMDkzNzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEJkUmU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX0VfRVFfMV9BTl9TSV9FUV8xID09IDEnYjEiOwotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2MjUsIDAuMDUxMjUsIDAuMDM4NzUsIDAuMDI2MjUsIDAuMDEzNzUsIC0wLjAwMjUsIC0wLjAxMTI1IiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDU2MjUsIDAuMDQzNzUsIDAuMDMxMjUsIDAuMDI1LCAwLjAwODc1LCAwIiwgXAotICAgICAgICAgICIwLjA4LCAwLjA2ODc1LCAwLjA1NjI1LCAwLjA0Mzc1LCAwLjAzMTI1LCAwLjAyMTI1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICIwLjA5MjUsIDAuMDgxMjUsIDAuMDY4NzUsIDAuMDU2MjUsIDAuMDQzNzUsIDAuMDI3NSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4wOTg3NSwgMC4wODc1LCAwLjA3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA0LCAwLjAzMTI1IiwgXAotICAgICAgICAgICIwLjExNSwgMC4xMDM3NSwgMC4wOTEyNSwgMC4wNzg3NSwgMC4wNzI1LCAwLjA1NjI1LCAwLjA0NzUiLCBcCi0gICAgICAgICAgIjAuMTMsIDAuMTE4NzUsIDAuMTA2MjUsIDAuMDkzNzUsIDAuMDgxMjUsIDAuMDcxMjUsIDAuMDU2MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIkQmRSYhU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8xX0FOX0VfRVFfMV9BTl9TSV9FUV8wID09IDEnYjEiOwotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5Mzc1LCAwLjA4MjUsIDAuMDc2MjUsIDAuMDYzNzUsIDAuMDU3NSwgMC4wNTM3NSwgMC4wNDUiLCBcCi0gICAgICAgICAgIjAuMTA1LCAwLjA5Mzc1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNTg3NSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiMC4xMTc1LCAwLjEwNjI1LCAwLjA5Mzc1LCAwLjA4NzUsIDAuMDgxMjUsIDAuMDcxMjUsIDAuMDY4NzUiLCBcCi0gICAgICAgICAgIjAuMTMsIDAuMTE4NzUsIDAuMTA2MjUsIDAuMSwgMC4wOTM3NSwgMC4wODM3NSwgMC4wODEyNSIsIFwKLSAgICAgICAgICAiMC4xMzYyNSwgMC4xMjUsIDAuMTE4NzUsIDAuMTA2MjUsIDAuMSwgMC4wOTYyNSwgMC4wODc1IiwgXAotICAgICAgICAgICIwLjE1MjUsIDAuMTQxMjUsIDAuMTI4NzUsIDAuMTIyNSwgMC4xMTYyNSwgMC4xMDYyNSwgMC4wOTc1IiwgXAotICAgICAgICAgICIwLjE2MTI1LCAwLjE1LCAwLjEzNzUsIDAuMTMxMjUsIDAuMTI1LCAwLjExNSwgMC4xMDYyNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oU0kpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDg3MTIxOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDg2ODI2MzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA4NzEyMTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDM0NjksIDAuMDAzNDM3LCAwLjAwMzQyLCAwLjAwMzQxMiwgMC4wMDM0MDYsIDAuMDAzNDEyLCAwLjAwMzQxOCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNjI0LCAwLjAwNjIyMiwgMC4wMDYyMTEsIDAuMDA2MjA4LCAwLjAwNjIwNSwgMC4wMDYyMTQsIDAuMDA2MjE1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlNFIjsKLSAgICAgIHNkZl9jb25kIDogIlNFID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjA0Mzc1LCAtMC4wMzg3NSwgLTAuMDI2MjUsIC0wLjAyLCAtMC4wMTM3NSwgLTAuMDEsIC0wLjAwMTI1IiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMTUsIC0wLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjA2MTI1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMjc1LCAtMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjA3Mzc1LCAtMC4wNjg3NSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNSwgLTAuMDQsIC0wLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wODYyNSwgLTAuMDc1LCAtMC4wNjg3NSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA1MjUsIC0wLjA0Mzc1IiwgXAotICAgICAgICAgICItMC4wOTYyNSwgLTAuMDkxMjUsIC0wLjA4NSwgLTAuMDc4NzUsIC0wLjA3MjUsIC0wLjA2MjUsIC0wLjA2IiwgXAotICAgICAgICAgICItMC4xMTEyNSwgLTAuMSwgLTAuMDkzNzUsIC0wLjA4NzUsIC0wLjA4MTI1LCAtMC4wNzc1LCAtMC4wNjg3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAwNjI1LCAwLjAwNSwgMC4wMTc1LCAwLjAyMzc1LCAwLjAzNjI1LCAwLjA0NjI1LCAwLjA1NSIsIFwKLSAgICAgICAgICAiLTAuMDExMjUsIDAsIDAuMDA2MjUsIDAuMDE4NzUsIDAuMDI1LCAwLjA0MTI1LCAwLjA1IiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDEyNSwgMCwgMC4wMDYyNSwgMC4wMTg3NSwgMC4wMjg3NSwgMC4wMzc1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDE4NzUsIC0wLjAxMjUsIDAsIDAuMDA2MjUsIDAuMDIyNSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLCAwLjAxNjI1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDQ2MjUsIC0wLjA0MTI1LCAtMC4wMjg3NSwgLTAuMDE2MjUsIC0wLjAxLCAwLCAwLjAwODc1IiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMDg3NSwgMCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiU0UiOwotICAgICAgc2RmX2NvbmQgOiAiU0UgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc1LCAwLjA2Mzc1LCAwLjA1NzUsIDAuMDQ1LCAwLjAzODc1LCAwLjAzNSwgMC4wMjYyNSIsIFwKLSAgICAgICAgICAiMC4wODYyNSwgMC4wNzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNSwgMC4wNCwgMC4wMzc1IiwgXAotICAgICAgICAgICIwLjA5MjUsIDAuMDg3NSwgMC4wNzUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNTI1LCAwLjA1IiwgXAotICAgICAgICAgICIwLjEwNSwgMC4wOTM3NSwgMC4wODc1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIjAuMTE3NSwgMC4xMDYyNSwgMC4wOTM3NSwgMC4wODc1LCAwLjA4MTI1LCAwLjA3MTI1LCAwLjA2ODc1IiwgXAotICAgICAgICAgICIwLjEzMzc1LCAwLjEyMjUsIDAuMTEsIDAuMTAzNzUsIDAuMDk3NSwgMC4wODc1LCAwLjA4NSIsIFwKLSAgICAgICAgICAiMC4xNDI1LCAwLjEzMTI1LCAwLjEyNSwgMC4xMTg3NSwgMC4xMTI1LCAwLjEwMjUsIDAuMDkzNzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNSwgMC4wMzg3NSwgMC4wMjYyNSwgMC4wMTM3NSwgMC4wMDc1LCAtMC4wMDg3NSwgLTAuMDE3NSIsIFwKLSAgICAgICAgICAiMC4wNjEyNSwgMC4wNSwgMC4wMzc1LCAwLjAyNSwgMC4wMTI1LCAtMC4wMDM3NSwgLTAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4wNjc1LCAwLjA1NjI1LCAwLjA0Mzc1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMDg3NSwgMCIsIFwKLSAgICAgICAgICAiMC4wOCwgMC4wNjg3NSwgMC4wNTYyNSwgMC4wNDM3NSwgMC4wMzEyNSwgMC4wMTUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMDg2MjUsIDAuMDc1LCAwLjA2MjUsIDAuMDUsIDAuMDQzNzUsIDAuMDI3NSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4xMDI1LCAwLjA5MTI1LCAwLjA3ODc1LCAwLjA2NjI1LCAwLjA1Mzc1LCAwLjAzNzUsIDAuMDI4NzUiLCBcCi0gICAgICAgICAgIjAuMTExMjUsIDAuMSwgMC4wODc1LCAwLjA3NSwgMC4wNjI1LCAwLjA1MjUsIDAuMDM3NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogU0VERkZUUlgyICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoU0VERkZUUlgyKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuNjQ0OTk0OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIGZmIChOMzAsUUJJTlQpIHsKLSAgICBuZXh0X3N0YXRlIDogIigoU0UgU0kpICsgKCFTRSAoKCghKCghRCkgRSkpICghKCghRSkgKCFOMzApKSkpIFJOKSkpIjsKLSAgICBjbG9ja2VkX29uIDogIkNLIjsKLSAgfQotICBwaW4oQ0spICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDU5NzUzNzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA1OTc1MzI7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNTk3NTM3OwotICAgIGNsb2NrIDogdHJ1ZTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDI4NDIsIDAuMDAyODE3LCAwLjAwMjgwMiwgMC4wMDI4MDQsIDAuMDAyODE2LCAwLjAwMjgzNSwgMC4wMDI4NTgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDY0NjUsIDAuMDA2NDQsIDAuMDA2NDM2LCAwLjAwNjQ0OCwgMC4wMDY0NjcsIDAuMDA2NTA3LCAwLjAwNjUzNCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQmIUUmIVJOJiFTRSYhU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX0VfRVFfMF9BTl9STl9FUV8wX0FOX1NFX0VRXzBfQU5fU0lfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjE2MzA0NCwgMC4xNzMyNTYsIDAuMTg2MDk3LCAwLjE5ODE5NiwgMC4yMDkxNDgsIDAuMjI0MjQ5LCAwLjIzNTk5OSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDk1NTkzLCAwLjEwNTQ3OSwgMC4xMTc4OTMsIDAuMTI5NDY0LCAwLjEzOTc2LCAwLjE1MzYwMywgMC4xNjQzMzgiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEQpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY0MjE3NDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2NDIwMzc7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjQyMTc0OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNzAyMywgMC4wMDY5OSwgMC4wMDY5ODgsIDAuMDA2OTksIDAuMDA2OTk4LCAwLjAwNzAyLCAwLjAwNzA0NCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNjI2OSwgMC4wMDYyNDcsIDAuMDA2MjQzLCAwLjAwNjI0NywgMC4wMDYyNTYsIDAuMDA2MjgsIDAuMDA2MzAzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIkUmUk4mIVNFIjsKLSAgICAgIHNkZl9jb25kIDogIkVfRVFfMV9BTl9STl9FUV8xX0FOX1NFX0VRXzAgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMTM3NSwgLTAuMTMyNSwgLTAuMTIsIC0wLjExMzc1LCAtMC4xMDc1LCAtMC4xMDM3NSwgLTAuMDk1IiwgXAotICAgICAgICAgICItMC4xNDg3NSwgLTAuMTM3NSwgLTAuMTMxMjUsIC0wLjEyNSwgLTAuMTE4NzUsIC0wLjEwODc1LCAtMC4xMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMTYxMjUsIC0wLjE1LCAtMC4xNDM3NSwgLTAuMTM3NSwgLTAuMTMxMjUsIC0wLjEyMTI1LCAtMC4xMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMTY3NSwgLTAuMTU2MjUsIC0wLjE1LCAtMC4xNDM3NSwgLTAuMTM3NSwgLTAuMTMzNzUsIC0wLjEyNSIsIFwKLSAgICAgICAgICAiLTAuMTczNzUsIC0wLjE2ODc1LCAtMC4xNTYyNSwgLTAuMTUsIC0wLjE0Mzc1LCAtMC4xNCwgLTAuMTMxMjUiLCBcCi0gICAgICAgICAgIi0wLjE4Mzc1LCAtMC4xNzg3NSwgLTAuMTY2MjUsIC0wLjE2LCAtMC4xNTM3NSwgLTAuMTUsIC0wLjE0MTI1IiwgXAotICAgICAgICAgICItMC4xOTI1LCAtMC4xODEyNSwgLTAuMTc1LCAtMC4xNjg3NSwgLTAuMTYyNSwgLTAuMTUyNSwgLTAuMTUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wODc1LCAtMC4wNzYyNSwgLTAuMDYzNzUsIC0wLjA1NzUsIC0wLjA0NSwgLTAuMDM1LCAtMC4wMjYyNSIsIFwKLSAgICAgICAgICAiLTAuMDkyNSwgLTAuMDg3NSwgLTAuMDc1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDQ2MjUsIC0wLjAzMTI1IiwgXAotICAgICAgICAgICItMC4xMDUsIC0wLjA5Mzc1LCAtMC4wODc1LCAtMC4wNzUsIC0wLjA2ODc1LCAtMC4wNTI1LCAtMC4wNDM3NSIsIFwKLSAgICAgICAgICAiLTAuMTExMjUsIC0wLjEwNjI1LCAtMC4wOTM3NSwgLTAuMDgxMjUsIC0wLjA3NSwgLTAuMDU4NzUsIC0wLjA1IiwgXAotICAgICAgICAgICItMC4xMTc1LCAtMC4xMTI1LCAtMC4xLCAtMC4wODc1LCAtMC4wODEyNSwgLTAuMDcxMjUsIC0wLjA1NjI1IiwgXAotICAgICAgICAgICItMC4xMjc1LCAtMC4xMTYyNSwgLTAuMTEsIC0wLjA5NzUsIC0wLjA5MTI1LCAtMC4wNzUsIC0wLjA2NjI1IiwgXAotICAgICAgICAgICItMC4xMzYyNSwgLTAuMTI1LCAtMC4xMTI1LCAtMC4xMDYyNSwgLTAuMDkzNzUsIC0wLjA4Mzc1LCAtMC4wNzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIkUmUk4mIVNFIjsKLSAgICAgIHNkZl9jb25kIDogIkVfRVFfMV9BTl9STl9FUV8xX0FOX1NFX0VRXzAgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTkzNzUsIDAuMTgyNSwgMC4xNywgMC4xNjM3NSwgMC4xNTc1LCAwLjE0NzUsIDAuMTM4NzUiLCBcCi0gICAgICAgICAgIjAuMTk4NzUsIDAuMTkzNzUsIDAuMTgxMjUsIDAuMTc1LCAwLjE2MjUsIDAuMTU4NzUsIDAuMTUiLCBcCi0gICAgICAgICAgIjAuMjExMjUsIDAuMiwgMC4xOTM3NSwgMC4xODEyNSwgMC4xNzUsIDAuMTY1LCAwLjE2MjUiLCBcCi0gICAgICAgICAgIjAuMjE3NSwgMC4yMTI1LCAwLjIsIDAuMTkzNzUsIDAuMTgxMjUsIDAuMTc3NSwgMC4xNjg3NSIsIFwKLSAgICAgICAgICAiMC4yMywgMC4yMTg3NSwgMC4yMDYyNSwgMC4yLCAwLjE5Mzc1LCAwLjE4Mzc1LCAwLjE3NSIsIFwKLSAgICAgICAgICAiMC4yNCwgMC4yMjg3NSwgMC4yMTYyNSwgMC4yMSwgMC4yMDM3NSwgMC4xOTM3NSwgMC4xODUiLCBcCi0gICAgICAgICAgIjAuMjQyNSwgMC4yMzEyNSwgMC4yMjUsIDAuMjEyNSwgMC4yMDYyNSwgMC4xOTYyNSwgMC4xOTM3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEzMTI1LCAwLjEyNjI1LCAwLjEwNzUsIDAuMTAxMjUsIDAuMDg4NzUsIDAuMDcyNSwgMC4wNjM3NSIsIFwKLSAgICAgICAgICAiMC4xNDI1LCAwLjEzMTI1LCAwLjExODc1LCAwLjEwNjI1LCAwLjEsIDAuMDgzNzUsIDAuMDY4NzUiLCBcCi0gICAgICAgICAgIjAuMTU1LCAwLjE0Mzc1LCAwLjEzMTI1LCAwLjExODc1LCAwLjEwNjI1LCAwLjA5LCAwLjA4MTI1IiwgXAotICAgICAgICAgICIwLjE2MTI1LCAwLjE1LCAwLjEzNzUsIDAuMTI1LCAwLjExMjUsIDAuMTAyNSwgMC4wODc1IiwgXAotICAgICAgICAgICIwLjE2NzUsIDAuMTU2MjUsIDAuMTQzNzUsIDAuMTMxMjUsIDAuMTE4NzUsIDAuMTA4NzUsIDAuMDkzNzUiLCBcCi0gICAgICAgICAgIjAuMTc3NSwgMC4xNjYyNSwgMC4xNTM3NSwgMC4xNDEyNSwgMC4xMjg3NSwgMC4xMTI1LCAwLjEwMzc1IiwgXAotICAgICAgICAgICIwLjE4NjI1LCAwLjE3NSwgMC4xNjI1LCAwLjE1LCAwLjEzNzUsIDAuMTIxMjUsIDAuMTEyNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxMTc3OTk7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxMTc3OTk7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxMTc2OTk7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA3NTI0LCAwLjAwNzUwNCwgMC4wMDc1MDEsIDAuMDA3NTEsIDAuMDA3NTIyLCAwLjAwNzU0NiwgMC4wMDc1NjkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDg0NjgsIDAuMDA4NDM2LCAwLjAwODQzOCwgMC4wMDg0MzcsIDAuMDA4NDQ3LCAwLjAwODQ4MiwgMC4wMDg1MTUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiUk4mIVNFIjsKLSAgICAgIHNkZl9jb25kIDogIlJOX0VRXzFfQU5fU0VfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4xMDYyNSwgLTAuMDk1LCAtMC4wODI1LCAtMC4wNywgLTAuMDU3NSwgLTAuMDQ3NSwgLTAuMDMyNSIsIFwKLSAgICAgICAgICAiLTAuMTExMjUsIC0wLjEsIC0wLjA4NzUsIC0wLjA4MTI1LCAtMC4wNjg3NSwgLTAuMDUyNSwgLTAuMDQzNzUiLCBcCi0gICAgICAgICAgIi0wLjEyMzc1LCAtMC4xMTI1LCAtMC4xLCAtMC4wODc1LCAtMC4wODEyNSwgLTAuMDY1LCAtMC4wNTYyNSIsIFwKLSAgICAgICAgICAiLTAuMTM2MjUsIC0wLjEyNSwgLTAuMTEyNSwgLTAuMSwgLTAuMDg3NSwgLTAuMDc3NSwgLTAuMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMTQyNSwgLTAuMTMxMjUsIC0wLjExODc1LCAtMC4xMTI1LCAtMC4xLCAtMC4wODM3NSwgLTAuMDc1IiwgXAotICAgICAgICAgICItMC4xNTg3NSwgLTAuMTQ3NSwgLTAuMTM1LCAtMC4xMjI1LCAtMC4xMTYyNSwgLTAuMSwgLTAuMDkxMjUiLCBcCi0gICAgICAgICAgIi0wLjE3Mzc1LCAtMC4xNjI1LCAtMC4xNSwgLTAuMTM3NSwgLTAuMTI1LCAtMC4xMTUsIC0wLjEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4xLCAtMC4wODg3NSwgLTAuMDc2MjUsIC0wLjA3LCAtMC4wNTc1LCAtMC4wNDc1LCAtMC4wMzg3NSIsIFwKLSAgICAgICAgICAiLTAuMTExMjUsIC0wLjEsIC0wLjA4NzUsIC0wLjA4MTI1LCAtMC4wNjg3NSwgLTAuMDU4NzUsIC0wLjA1IiwgXAotICAgICAgICAgICItMC4xMTc1LCAtMC4xMTI1LCAtMC4xLCAtMC4wODc1LCAtMC4wODEyNSwgLTAuMDY1LCAtMC4wNTYyNSIsIFwKLSAgICAgICAgICAiLTAuMTMsIC0wLjExODc1LCAtMC4xMDYyNSwgLTAuMSwgLTAuMDg3NSwgLTAuMDc3NSwgLTAuMDY4NzUiLCBcCi0gICAgICAgICAgIi0wLjEzNjI1LCAtMC4xMjUsIC0wLjExMjUsIC0wLjEwNjI1LCAtMC4wOTM3NSwgLTAuMDgzNzUsIC0wLjA3NSIsIFwKLSAgICAgICAgICAiLTAuMTQ2MjUsIC0wLjEzNSwgLTAuMTIyNSwgLTAuMTEsIC0wLjEwMzc1LCAtMC4wOTM3NSwgLTAuMDg1IiwgXAotICAgICAgICAgICItMC4xNDg3NSwgLTAuMTQzNzUsIC0wLjEzMTI1LCAtMC4xMTg3NSwgLTAuMTEyNSwgLTAuMDk2MjUsIC0wLjA4NzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlJOJiFTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJSTl9FUV8xX0FOX1NFX0VRXzAgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjEyNSwgMC4yMDEyNSwgMC4xODg3NSwgMC4xODI1LCAwLjE3NjI1LCAwLjE2NjI1LCAwLjE1NzUiLCBcCi0gICAgICAgICAgIjAuMjIzNzUsIDAuMjEyNSwgMC4yLCAwLjE5Mzc1LCAwLjE4NzUsIDAuMTc3NSwgMC4xNjg3NSIsIFwKLSAgICAgICAgICAiMC4yMzYyNSwgMC4yMjUsIDAuMjEyNSwgMC4yMDYyNSwgMC4yLCAwLjE5LCAwLjE4MTI1IiwgXAotICAgICAgICAgICIwLjI0MjUsIDAuMjMxMjUsIDAuMjE4NzUsIDAuMjEyNSwgMC4yMDYyNSwgMC4xOTYyNSwgMC4xODc1IiwgXAotICAgICAgICAgICIwLjI0ODc1LCAwLjIzNzUsIDAuMjMxMjUsIDAuMjE4NzUsIDAuMjEyNSwgMC4yMDI1LCAwLjIiLCBcCi0gICAgICAgICAgIjAuMjU4NzUsIDAuMjQ3NSwgMC4yNDEyNSwgMC4yMjg3NSwgMC4yMjI1LCAwLjIxMjUsIDAuMjEiLCBcCi0gICAgICAgICAgIjAuMjY3NSwgMC4yNTYyNSwgMC4yNSwgMC4yMzc1LCAwLjIzMTI1LCAwLjIyMTI1LCAwLjIxODc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTUsIDAuMTM4NzUsIDAuMTMyNSwgMC4xMjYyNSwgMC4xMiwgMC4xMSwgMC4xMDc1IiwgXAotICAgICAgICAgICIwLjE1NSwgMC4xNSwgMC4xNDM3NSwgMC4xMzc1LCAwLjEzMTI1LCAwLjEyMTI1LCAwLjExMjUiLCBcCi0gICAgICAgICAgIjAuMTY3NSwgMC4xNjI1LCAwLjE1LCAwLjE0Mzc1LCAwLjEzNzUsIDAuMTMzNzUsIDAuMTI1IiwgXAotICAgICAgICAgICIwLjE4LCAwLjE2ODc1LCAwLjE2MjUsIDAuMTU2MjUsIDAuMTUsIDAuMTQsIDAuMTM3NSIsIFwKLSAgICAgICAgICAiMC4xOTI1LCAwLjE4MTI1LCAwLjE3NSwgMC4xNjg3NSwgMC4xNjI1LCAwLjE1MjUsIDAuMTQzNzUiLCBcCi0gICAgICAgICAgIjAuMjA4NzUsIDAuMTk3NSwgMC4xOTEyNSwgMC4xODUsIDAuMTc4NzUsIDAuMTY4NzUsIDAuMTY2MjUiLCBcCi0gICAgICAgICAgIjAuMjIzNzUsIDAuMjEyNSwgMC4yMDYyNSwgMC4yLCAwLjE5Mzc1LCAwLjE4Mzc1LCAwLjE4MTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihRKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuNTE4MDk3OwotICAgIGZ1bmN0aW9uIDogIk4zMCI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3NlbnNlIDogbm9uX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiByaXNpbmdfZWRnZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTI4MTUzLCAwLjIzMjE1LCAwLjMxNDM4NywgMC40MTc0NTEsIDAuNTIwMTI0LCAwLjYyMzI4MiwgMC43MjYyMSIsIFwKLSAgICAgICAgICAiMC4xMzgzNjEsIDAuMjQyMzMsIDAuMzI0NTkzLCAwLjQyODEyNywgMC41MzAzMDMsIDAuNjMzNDg3LCAwLjczNjQyNiIsIFwKLSAgICAgICAgICAiMC4xNTExMTQsIDAuMjU1MTA5LCAwLjMzNzMyNSwgMC40NDA1NTUsIDAuNTQzMTI1LCAwLjY0NjY4NSwgMC43NDkxNzkiLCBcCi0gICAgICAgICAgIjAuMTYyOTk0LCAwLjI2NzAwOCwgMC4zNDkyOTIsIDAuNDUyNzQzLCAwLjU1NDk3NCwgMC42NTgxMywgMC43NjEwNjMiLCBcCi0gICAgICAgICAgIjAuMTczODY3LCAwLjI3OCwgMC4zNjA4MjEsIDAuNDYzMjQ0LCAwLjU2NTk4LCAwLjY2OTAxNiwgMC43NzE4NDkiLCBcCi0gICAgICAgICAgIjAuMTg4OTUxLCAwLjI5Mjc5NCwgMC4zNzU1MDQsIDAuNDc4MzE1LCAwLjU4MTIyLCAwLjY4Mzg5NSwgMC43ODczMjgiLCBcCi0gICAgICAgICAgIjAuMjAwNDU0LCAwLjMwNDMwOCwgMC4zODY5NjgsIDAuNDg5ODM0LCAwLjU5MjU5NCwgMC42OTU2MzQsIDAuNzk4NTM2Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1NDY3OCwgMC4yNjQxNTksIDAuNDM0NjUsIDAuNjQ4NjI3LCAwLjg2MTYzLCAxLjA3NjI3LCAxLjI5MDcxIiwgXAotICAgICAgICAgICIwLjA1NDYxOSwgMC4yNjQwOTEsIDAuNDM0NDA3LCAwLjY0ODY1MSwgMC44NjIwMSwgMS4wNzYyNSwgMS4yOTA2NyIsIFwKLSAgICAgICAgICAiMC4wNTQ2MzUsIDAuMjY0MTM4LCAwLjQzNDQwOCwgMC42NDg2NTcsIDAuODYyMDExLCAxLjA3NjIzLCAxLjI5MDY2IiwgXAotICAgICAgICAgICIwLjA1NDYyMywgMC4yNjQwODYsIDAuNDM0NDA3LCAwLjY0ODY1MSwgMC44NjI0NjgsIDEuMDc2MjYsIDEuMjkwNjkiLCBcCi0gICAgICAgICAgIjAuMDU0NjIsIDAuMjY0MTIxLCAwLjQzNDQwMywgMC42NDg2MzMsIDAuODYyMSwgMS4wNzYzMSwgMS4yOTA2NyIsIFwKLSAgICAgICAgICAiMC4wNTQ2MDEsIDAuMjY0MTQzLCAwLjQzNDY0MiwgMC42NDg2NTQsIDAuODYyNDUzLCAxLjA3NTM5LCAxLjI5MSIsIFwKLSAgICAgICAgICAiMC4wNTQ2NjIsIDAuMjY0MTUxLCAwLjQzNDY4NCwgMC42NDg2MTgsIDAuODYyNDY2LCAxLjA3NjU3LCAxLjI5MDYyIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE0MTQxNiwgMC4yNDY1OSwgMC4zMjk3NDMsIDAuNDMzMTcxLCAwLjUzNzA1NCwgMC42NDA0OTgsIDAuNzQ0MjYzIiwgXAotICAgICAgICAgICIwLjE1MTY1LCAwLjI1NjgzMywgMC4zMzk5OTksIDAuNDQzNDA2LCAwLjU0NzI4NywgMC42NTA3MzIsIDAuNzU0MTExIiwgXAotICAgICAgICAgICIwLjE2NDQ2NiwgMC4yNjk2NTMsIDAuMzUyODAxLCAwLjQ1NjIyNCwgMC41NjAwOTQsIDAuNjYzNTQ4LCAwLjc2NjkzIiwgXAotICAgICAgICAgICIwLjE3NjU5MywgMC4yODE3MzYsIDAuMzY0ODQxLCAwLjQ2ODQxNiwgMC41NzE5OCwgMC42NzU2NzgsIDAuNzc5Mzk1IiwgXAotICAgICAgICAgICIwLjE4NzU0NCwgMC4yOTI3MjUsIDAuMzc1OTAzLCAwLjQ3OTM5MSwgMC41ODI3OTEsIDAuNjg2NjI1LCAwLjc5MDE4MSIsIFwKLSAgICAgICAgICAiMC4yMDI2NTMsIDAuMzA3NzYsIDAuMzkwOTkyLCAwLjQ5NDYxNCwgMC41OTgxNTYsIDAuNzAxNzM4LCAwLjgwNTQ0NiIsIFwKLSAgICAgICAgICAiMC4yMTQzNjksIDAuMzE5NTMsIDAuNDAyNzAyLCAwLjUwNjExNywgMC42MDk2NjgsIDAuNzEzNDQ2LCAwLjgxNzE0MSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTM2NzgsIDAuMjU5NjM3LCAwLjQyNjg2OSwgMC42MzcwMjUsIDAuODQ3MDUxLCAxLjA1NzUxLCAxLjI2NzU0IiwgXAotICAgICAgICAgICIwLjA1MzY3OCwgMC4yNTk5MjUsIDAuNDI2ODY4LCAwLjYzNjk5MywgMC44NDY5NDUsIDEuMDU3NiwgMS4yNjc3NiIsIFwKLSAgICAgICAgICAiMC4wNTM2NjQsIDAuMjU5NjY1LCAwLjQyNjg3NCwgMC42MzY5ODcsIDAuODQ3MjA3LCAxLjA1NzM0LCAxLjI2NzU0IiwgXAotICAgICAgICAgICIwLjA1MzQzNywgMC4yNTk5MjQsIDAuNDI2ODM4LCAwLjYzNzAxNSwgMC44NDcyMTksIDEuMDU3MzIsIDEuMjY3OSIsIFwKLSAgICAgICAgICAiMC4wNTM1NjMsIDAuMjU5OTI5LCAwLjQyNjg5NCwgMC42MzcwNDYsIDAuODQ2ODQ0LCAxLjA1NzM0LCAxLjI2Nzc4IiwgXAotICAgICAgICAgICIwLjA1MzQ5NywgMC4yNTk5MjIsIDAuNDI2OTE4LCAwLjYzNjk3NSwgMC44NDcwMTMsIDEuMDU3MzMsIDEuMjY3NjkiLCBcCi0gICAgICAgICAgIjAuMDUzNDkxLCAwLjI1OTYzOSwgMC40MjY5MTIsIDAuNjM3MDIzLCAwLjg0NzAzMSwgMS4wNTc0NywgMS4yNjc2OCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDcyNSwgMC4wMDcyNzIsIDAuMDA3MjY2LCAwLjAwNzI2MSwgMC4wMDcyNTcsIDAuMDA3MjU2LCAwLjAwNzI1NCIsIFwKLSAgICAgICAgICAiMC4wMDcyMzQsIDAuMDA3MjU3LCAwLjAwNzI1LCAwLjAwNzI0NiwgMC4wMDcyNDIsIDAuMDA3MjQsIDAuMDA3MjM5IiwgXAotICAgICAgICAgICIwLjAwNzIyOCwgMC4wMDcyNTEsIDAuMDA3MjQ1LCAwLjAwNzI0LCAwLjAwNzIzNiwgMC4wMDcyMzQsIDAuMDA3MjMzIiwgXAotICAgICAgICAgICIwLjAwNzIyNCwgMC4wMDcyNDgsIDAuMDA3MjQyLCAwLjAwNzIzNywgMC4wMDcyMzQsIDAuMDA3MjMyLCAwLjAwNzIzIiwgXAotICAgICAgICAgICIwLjAwNzIzNCwgMC4wMDcyNiwgMC4wMDcyNTMsIDAuMDA3MjQ4LCAwLjAwNzI0NSwgMC4wMDcyNDIsIDAuMDA3MjQxIiwgXAotICAgICAgICAgICIwLjAwNzI0MiwgMC4wMDcyNjksIDAuMDA3MjYzLCAwLjAwNzI1OCwgMC4wMDcyNTMsIDAuMDA3MjUyLCAwLjAwNzI1IiwgXAotICAgICAgICAgICIwLjAwNzI1NSwgMC4wMDcyODMsIDAuMDA3Mjc3LCAwLjAwNzI3MiwgMC4wMDcyNjgsIDAuMDA3MjY1LCAwLjAwNzI2NCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjI0MywgMC4wMDYyOTQsIDAuMDA2MywgMC4wMDYzMDIsIDAuMDA2MzA0LCAwLjAwNjMwNSwgMC4wMDYzMDYiLCBcCi0gICAgICAgICAgIjAuMDA2MjI5LCAwLjAwNjI4LCAwLjAwNjI4NSwgMC4wMDYyODgsIDAuMDA2MjksIDAuMDA2MjkxLCAwLjAwNjI5MSIsIFwKLSAgICAgICAgICAiMC4wMDYyMjYsIDAuMDA2Mjc3LCAwLjAwNjI4MywgMC4wMDYyODYsIDAuMDA2Mjg3LCAwLjAwNjI4OCwgMC4wMDYyODgiLCBcCi0gICAgICAgICAgIjAuMDA2MjM1LCAwLjAwNjI4NiwgMC4wMDYyOTEsIDAuMDA2Mjk0LCAwLjAwNjI5NSwgMC4wMDYyOTYsIDAuMDA2Mjk3IiwgXAotICAgICAgICAgICIwLjAwNjI0OSwgMC4wMDYzLCAwLjAwNjMwNSwgMC4wMDYzMDgsIDAuMDA2MzA4LCAwLjAwNjMxLCAwLjAwNjMxMSIsIFwKLSAgICAgICAgICAiMC4wMDYyNjUsIDAuMDA2MzE1LCAwLjAwNjMyLCAwLjAwNjMyMywgMC4wMDYzMjQsIDAuMDA2MzI0LCAwLjAwNjMyNSIsIFwKLSAgICAgICAgICAiMC4wMDYyODgsIDAuMDA2MzM4LCAwLjAwNjM0NCwgMC4wMDYzNDYsIDAuMDA2MzQ3LCAwLjAwNjM0OCwgMC4wMDYzNDgiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFFOKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuNTIwODQ2OwotICAgIGZ1bmN0aW9uIDogIlFCSU5UIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBub25fdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJpc2luZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNjM2ODgsIDAuMjY2NDI0LCAwLjM0ODc3NCwgMC40NTE1OTksIDAuNTU0NDg3LCAwLjY1NzM5LCAwLjc2MDI2OSIsIFwKLSAgICAgICAgICAiMC4xNzM5MiwgMC4yNzY2NTgsIDAuMzU5MDEzLCAwLjQ2MTgyOSwgMC41NjQ2NjUsIDAuNjY3NjI0LCAwLjc3MDUwMiIsIFwKLSAgICAgICAgICAiMC4xODY3MzYsIDAuMjg5NDgyLCAwLjM3MTgzMiwgMC40NzQ2NTIsIDAuNTc3NDc2LCAwLjY4MDQ0MywgMC43ODMzMjMiLCBcCi0gICAgICAgICAgIjAuMTk4ODYyLCAwLjMwMTY0NiwgMC4zODM5NzcsIDAuNDg2ODgsIDAuNTg5NzQ0LCAwLjY5MjYyMywgMC43OTU2MTgiLCBcCi0gICAgICAgICAgIjAuMjA5ODE5LCAwLjMxMjU1NSwgMC4zOTQ5MTUsIDAuNDk3NzI3LCAwLjYwMDUxNywgMC43MDM0ODQsIDAuODA2Mzk1IiwgXAotICAgICAgICAgICIwLjIyNDkzMywgMC4zMjc3MTgsIDAuNDEwMDg1LCAwLjUxMjk4OCwgMC42MTU4NjQsIDAuNzE4Njk3LCAwLjgyMTU5MiIsIFwKLSAgICAgICAgICAiMC4yMzY2NDgsIDAuMzM5NDIyLCAwLjQyMTc3NywgMC41MjQ2LCAwLjYyNzQ4OSwgMC43MzA0MjIsIDAuODMzMjY3Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1MTczOSwgMC4yNjMwMjIsIDAuNDM0NzAxLCAwLjY0ODc4LCAwLjg2Mjg2NywgMS4wNzc0OCwgMS4yOTE2MSIsIFwKLSAgICAgICAgICAiMC4wNTE3MzIsIDAuMjYzNTg5LCAwLjQzNDY4NiwgMC42NDkwODksIDAuODYyODkxLCAxLjA3NzMxLCAxLjI5MTY1IiwgXAotICAgICAgICAgICIwLjA1MTczOCwgMC4yNjMxNTUsIDAuNDM0NywgMC42NDg3ODQsIDAuODYyODc1LCAxLjA3NzA4LCAxLjI5MTYxIiwgXAotICAgICAgICAgICIwLjA1MTcyOSwgMC4yNjM1ODksIDAuNDM0NjgzLCAwLjY0ODg5MSwgMC44NjMwNjksIDEuMDc3MDMsIDEuMjkxNjgiLCBcCi0gICAgICAgICAgIjAuMDUxNzI4LCAwLjI2MzU5NiwgMC40MzQ2OTEsIDAuNjQ5MDg1LCAwLjg2MjY4NSwgMS4wNzc0NiwgMS4yOTE2NiIsIFwKLSAgICAgICAgICAiMC4wNTE3NTYsIDAuMjYzNTg2LCAwLjQzNDY4NywgMC42NDg3MzIsIDAuODYyNzc5LCAxLjA3NzAxLCAxLjI5MTYyIiwgXAotICAgICAgICAgICIwLjA1MTc0OSwgMC4yNjM0OTgsIDAuNDM0Njg1LCAwLjY0ODc2MywgMC44NjMyNDIsIDEuMDc3NDcsIDEuMjkxNjEiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTUyNjExLCAwLjI1NjIwOCwgMC4zMzkxMjUsIDAuNDQyNzgyLCAwLjU0NjM1NywgMC42NDk5ODgsIDAuNzUzNTkxIiwgXAotICAgICAgICAgICIwLjE2MjgyMywgMC4yNjYzODcsIDAuMzQ5MzA3LCAwLjQ1MzAxMSwgMC41NTY1MzYsIDAuNjYwMTksIDAuNzYzNzciLCBcCi0gICAgICAgICAgIjAuMTc1NTczLCAwLjI3OTE3LCAwLjM2MjA4NywgMC40NjU3MDksIDAuNTY5MzIsIDAuNjczMDU2LCAwLjc3NjU1MyIsIFwKLSAgICAgICAgICAiMC4xODc0NTYsIDAuMjkxMDUyLCAwLjM3Mzk3MywgMC40Nzc2NjIsIDAuNTgxMTk5LCAwLjY4NDg2NiwgMC43ODg0MTkiLCBcCi0gICAgICAgICAgIjAuMTk4Mjk5LCAwLjMwMTkxMiwgMC4zODQ4ODMsIDAuNDg4NDEzLCAwLjU5MjA0OSwgMC42OTU2NjQsIDAuNzk5MjYyIiwgXAotICAgICAgICAgICIwLjIxMzQwNCwgMC4zMTcwMDEsIDAuMzk5OTI4LCAwLjUwMzUzMiwgMC42MDcxNjIsIDAuNzEwNzcsIDAuODE0Mzk3IiwgXAotICAgICAgICAgICIwLjIyNDg5NCwgMC4zMjg0NzgsIDAuNDExMzk3LCAwLjUxNTAwOSwgMC42MTg2MzEsIDAuNzIyMjMyLCAwLjgyNTg2OCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTA5MzksIDAuMjU4NDIsIDAuNDI2NTEsIDAuNjM2NjA4LCAwLjg0NTkwOSwgMS4wNTY0MSwgMS4yNjcwOSIsIFwKLSAgICAgICAgICAiMC4wNTA5MzgsIDAuMjU4MjUsIDAuNDI2MzM3LCAwLjYzNjY1MSwgMC44NDYzMzgsIDEuMDU2NDYsIDEuMjY2NzgiLCBcCi0gICAgICAgICAgIjAuMDUwOTM2LCAwLjI1ODQzNywgMC40MjYzNCwgMC42MzY2NTcsIDAuODQ2MzMzLCAxLjA1NjQ4LCAxLjI2Njg3IiwgXAotICAgICAgICAgICIwLjA1MDkzMywgMC4yNTgyNTIsIDAuNDI2MzM3LCAwLjYzNjY1MSwgMC44NDY2MjYsIDEuMDU2NDYsIDEuMjY2NzkiLCBcCi0gICAgICAgICAgIjAuMDUwOTMxLCAwLjI1ODQ2MywgMC40MjYzMDgsIDAuNjM2NjEzLCAwLjg0NjU3LCAxLjA1NjQzLCAxLjI2Njc3IiwgXAotICAgICAgICAgICIwLjA1MDk0MywgMC4yNTg1MTcsIDAuNDI2NDcxLCAwLjYzNjY0OCwgMC44NDY2MjQsIDEuMDU1NzEsIDEuMjY3MSIsIFwKLSAgICAgICAgICAiMC4wNTA5MywgMC4yNTg0NiwgMC40MjY1MjQsIDAuNjM2NTg4LCAwLjg0Njc0OSwgMS4wNTY2NiwgMS4yNjY4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjI0MywgMC4wMDYyOTQsIDAuMDA2MywgMC4wMDYzMDIsIDAuMDA2MzA0LCAwLjAwNjMwNSwgMC4wMDYzMDYiLCBcCi0gICAgICAgICAgIjAuMDA2MjI5LCAwLjAwNjI4LCAwLjAwNjI4NSwgMC4wMDYyODgsIDAuMDA2MjksIDAuMDA2MjkxLCAwLjAwNjI5MSIsIFwKLSAgICAgICAgICAiMC4wMDYyMjYsIDAuMDA2Mjc3LCAwLjAwNjI4MywgMC4wMDYyODYsIDAuMDA2Mjg3LCAwLjAwNjI4OCwgMC4wMDYyODgiLCBcCi0gICAgICAgICAgIjAuMDA2MjM1LCAwLjAwNjI4NiwgMC4wMDYyOTEsIDAuMDA2Mjk0LCAwLjAwNjI5NSwgMC4wMDYyOTYsIDAuMDA2Mjk3IiwgXAotICAgICAgICAgICIwLjAwNjI0OSwgMC4wMDYzLCAwLjAwNjMwNSwgMC4wMDYzMDgsIDAuMDA2MzA4LCAwLjAwNjMxLCAwLjAwNjMxMSIsIFwKLSAgICAgICAgICAiMC4wMDYyNjUsIDAuMDA2MzE1LCAwLjAwNjMyLCAwLjAwNjMyMywgMC4wMDYzMjQsIDAuMDA2MzI0LCAwLjAwNjMyNSIsIFwKLSAgICAgICAgICAiMC4wMDYyODgsIDAuMDA2MzM4LCAwLjAwNjM0NCwgMC4wMDYzNDYsIDAuMDA2MzQ3LCAwLjAwNjM0OCwgMC4wMDYzNDgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDcyNSwgMC4wMDcyNzIsIDAuMDA3MjY2LCAwLjAwNzI2MSwgMC4wMDcyNTcsIDAuMDA3MjU2LCAwLjAwNzI1NCIsIFwKLSAgICAgICAgICAiMC4wMDcyMzQsIDAuMDA3MjU3LCAwLjAwNzI1LCAwLjAwNzI0NiwgMC4wMDcyNDIsIDAuMDA3MjQsIDAuMDA3MjM5IiwgXAotICAgICAgICAgICIwLjAwNzIyOCwgMC4wMDcyNTEsIDAuMDA3MjQ1LCAwLjAwNzI0LCAwLjAwNzIzNiwgMC4wMDcyMzQsIDAuMDA3MjMzIiwgXAotICAgICAgICAgICIwLjAwNzIyNCwgMC4wMDcyNDgsIDAuMDA3MjQyLCAwLjAwNzIzNywgMC4wMDcyMzQsIDAuMDA3MjMyLCAwLjAwNzIzIiwgXAotICAgICAgICAgICIwLjAwNzIzNCwgMC4wMDcyNiwgMC4wMDcyNTMsIDAuMDA3MjQ4LCAwLjAwNzI0NSwgMC4wMDcyNDIsIDAuMDA3MjQxIiwgXAotICAgICAgICAgICIwLjAwNzI0MiwgMC4wMDcyNjksIDAuMDA3MjYzLCAwLjAwNzI1OCwgMC4wMDcyNTMsIDAuMDA3MjUyLCAwLjAwNzI1IiwgXAotICAgICAgICAgICIwLjAwNzI1NSwgMC4wMDcyODMsIDAuMDA3Mjc3LCAwLjAwNzI3MiwgMC4wMDcyNjgsIDAuMDA3MjY1LCAwLjAwNzI2NCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUk4pICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY0MjMzMTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2NDIwNDQ7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjQyMzMxOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwODE0NiwgMC4wMDgxMTcsIDAuMDA4MTEyLCAwLjAwODEyLCAwLjAwODEzLCAwLjAwODE1NCwgMC4wMDgxNzkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDcyNjUsIDAuMDA3MjQyLCAwLjAwNzIzNiwgMC4wMDcyNCwgMC4wMDcyNDksIDAuMDA3Mjc0LCAwLjAwNzI5NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhU0UiOwotICAgICAgc2RmX2NvbmQgOiAiU0UgPT0gMSdiMCI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMTg3NSwgLTAuMTc2MjUsIC0wLjE3LCAtMC4xNjM3NSwgLTAuMTU3NSwgLTAuMTQ3NSwgLTAuMTQ1IiwgXAotICAgICAgICAgICItMC4xOTg3NSwgLTAuMTg3NSwgLTAuMTgxMjUsIC0wLjE3NSwgLTAuMTY4NzUsIC0wLjE1ODc1LCAtMC4xNTYyNSIsIFwKLSAgICAgICAgICAiLTAuMjA1LCAtMC4yLCAtMC4xOTM3NSwgLTAuMTg3NSwgLTAuMTgxMjUsIC0wLjE3MTI1LCAtMC4xNjI1IiwgXAotICAgICAgICAgICItMC4yMTc1LCAtMC4yMDYyNSwgLTAuMiwgLTAuMTkzNzUsIC0wLjE4NzUsIC0wLjE3NzUsIC0wLjE3NSIsIFwKLSAgICAgICAgICAiLTAuMjIzNzUsIC0wLjIxODc1LCAtMC4yMDYyNSwgLTAuMiwgLTAuMTkzNzUsIC0wLjE5LCAtMC4xODEyNSIsIFwKLSAgICAgICAgICAiLTAuMjMzNzUsIC0wLjIyODc1LCAtMC4yMTYyNSwgLTAuMjEsIC0wLjIwMzc1LCAtMC4yLCAtMC4xOTEyNSIsIFwKLSAgICAgICAgICAiLTAuMjQyNSwgLTAuMjMxMjUsIC0wLjIyNSwgLTAuMjE4NzUsIC0wLjIxMjUsIC0wLjIwODc1LCAtMC4yIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDc1LCAtMC4wNjM3NSwgLTAuMDUxMjUsIC0wLjAzODc1LCAtMC4wMzI1LCAtMC4wMjI1LCAtMC4wMTM3NSIsIFwKLSAgICAgICAgICAiLTAuMDgsIC0wLjA3NSwgLTAuMDYyNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wMjc1LCAtMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDkyNSwgLTAuMDgxMjUsIC0wLjA3NSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA0LCAtMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDk4NzUsIC0wLjA5Mzc1LCAtMC4wODEyNSwgLTAuMDY4NzUsIC0wLjA2MjUsIC0wLjA0NjI1LCAtMC4wMzc1IiwgXAotICAgICAgICAgICItMC4xMTEyNSwgLTAuMSwgLTAuMDg3NSwgLTAuMDc1LCAtMC4wNjg3NSwgLTAuMDU4NzUsIC0wLjA0Mzc1IiwgXAotICAgICAgICAgICItMC4xMTUsIC0wLjExLCAtMC4wOTc1LCAtMC4wODUsIC0wLjA3ODc1LCAtMC4wNjg3NSwgLTAuMDUzNzUiLCBcCi0gICAgICAgICAgIi0wLjEyMzc1LCAtMC4xMTI1LCAtMC4xMDYyNSwgLTAuMDkzNzUsIC0wLjA4NzUsIC0wLjA3MTI1LCAtMC4wNjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhU0UiOwotICAgICAgc2RmX2NvbmQgOiAiU0UgPT0gMSdiMCI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjE4NzUsIDAuMjEzNzUsIDAuMjAxMjUsIDAuMTk1LCAwLjE4MjUsIDAuMTc4NzUsIDAuMTciLCBcCi0gICAgICAgICAgIjAuMjMsIDAuMjE4NzUsIDAuMjEyNSwgMC4yLCAwLjE5Mzc1LCAwLjE4Mzc1LCAwLjE4MTI1IiwgXAotICAgICAgICAgICIwLjI0MjUsIDAuMjMxMjUsIDAuMjE4NzUsIDAuMjEyNSwgMC4yMDYyNSwgMC4xOTYyNSwgMC4xOTM3NSIsIFwKLSAgICAgICAgICAiMC4yNDg3NSwgMC4yNDM3NSwgMC4yMzEyNSwgMC4yMjUsIDAuMjEyNSwgMC4yMDg3NSwgMC4yIiwgXAotICAgICAgICAgICIwLjI2MTI1LCAwLjI1LCAwLjIzNzUsIDAuMjMxMjUsIDAuMjI1LCAwLjIxNSwgMC4yMDYyNSIsIFwKLSAgICAgICAgICAiMC4yNzEyNSwgMC4yNiwgMC4yNDc1LCAwLjI0MTI1LCAwLjIzNSwgMC4yMjUsIDAuMjE2MjUiLCBcCi0gICAgICAgICAgIjAuMjgsIDAuMjY4NzUsIDAuMjU2MjUsIDAuMjUsIDAuMjQzNzUsIDAuMjMzNzUsIDAuMjI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTI1LCAwLjExMzc1LCAwLjEwMTI1LCAwLjA4ODc1LCAwLjA3NjI1LCAwLjA2LCAwLjA1MTI1IiwgXAotICAgICAgICAgICIwLjEzLCAwLjExODc1LCAwLjEwNjI1LCAwLjA5Mzc1LCAwLjA4NzUsIDAuMDcxMjUsIDAuMDYyNSIsIFwKLSAgICAgICAgICAiMC4xNDI1LCAwLjEzMTI1LCAwLjExODc1LCAwLjEwNjI1LCAwLjA5Mzc1LCAwLjA4Mzc1LCAwLjA2ODc1IiwgXAotICAgICAgICAgICIwLjE0ODc1LCAwLjEzNzUsIDAuMTI1LCAwLjExMjUsIDAuMTA2MjUsIDAuMDksIDAuMDgxMjUiLCBcCi0gICAgICAgICAgIjAuMTU1LCAwLjE1LCAwLjEzNzUsIDAuMTI1LCAwLjExMjUsIDAuMDk2MjUsIDAuMDg3NSIsIFwKLSAgICAgICAgICAiMC4xNjUsIDAuMTUzNzUsIDAuMTQxMjUsIDAuMTI4NzUsIDAuMTIyNSwgMC4xMDYyNSwgMC4wOTc1IiwgXAotICAgICAgICAgICIwLjE3Mzc1LCAwLjE2MjUsIDAuMTUsIDAuMTM3NSwgMC4xMzEyNSwgMC4xMTUsIDAuMSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oU0UpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTQ4NTUzOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTQ4NTIyOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTQ4NTUzOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNDA4MiwgMC4wMDQwNjEsIDAuMDA0MDU5LCAwLjAwNDA2NywgMC4wMDQwODEsIDAuMDA0MTAyLCAwLjAwNDEzMSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNTUsIDAuMDA1NDY0LCAwLjAwNTQ1NSwgMC4wMDU0NjIsIDAuMDA1NDc4LCAwLjAwNTUxOSwgMC4wMDU1NTYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUQmIUUmIVJOJlNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9FX0VRXzBfQU5fUk5fRVFfMF9BTl9TSV9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjA0Mzc1LCAtMC4wMzg3NSwgLTAuMDI2MjUsIC0wLjAyLCAtMC4wMTM3NSwgLTAuMDEsIC0wLjAwMTI1IiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMTUsIC0wLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjA2NzUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAyNzUsIC0wLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDgsIC0wLjA2ODc1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjA0LCAtMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDg2MjUsIC0wLjA4MTI1LCAtMC4wNzUsIC0wLjA2MjUsIC0wLjA2MjUsIC0wLjA1MjUsIC0wLjA0Mzc1IiwgXAotICAgICAgICAgICItMC4xMDI1LCAtMC4wOTc1LCAtMC4wOTEyNSwgLTAuMDg1LCAtMC4wNzg3NSwgLTAuMDY4NzUsIC0wLjA2IiwgXAotICAgICAgICAgICItMC4xMTc1LCAtMC4xMTI1LCAtMC4xLCAtMC4wOTM3NSwgLTAuMDg3NSwgLTAuMDgzNzUsIC0wLjA3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAwNjI1LCAwLjAwNSwgMC4wMTc1LCAwLjAyMzc1LCAwLjAzNjI1LCAwLjA0NjI1LCAwLjA1NSIsIFwKLSAgICAgICAgICAiLTAuMDE3NSwgLTAuMDA2MjUsIDAuMDA2MjUsIDAuMDE4NzUsIDAuMDI1LCAwLjAzNSwgMC4wNSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxODc1LCAtMC4wMDYyNSwgMC4wMDYyNSwgMC4wMTI1LCAwLjAyODc1LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMjUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLjAwNjI1LCAwLjAxNjI1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDM3NSwgLTAuMDI1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMC4wMDM3NSwgMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wNTI1LCAtMC4wNDc1LCAtMC4wMzUsIC0wLjAyODc1LCAtMC4wMTYyNSwgLTAuMDA2MjUsIDAuMDAyNSIsIFwKLSAgICAgICAgICAiLTAuMDYxMjUsIC0wLjA1NjI1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAxNSwgLTAuMDA2MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUQmIUUmUk4mIVNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9FX0VRXzBfQU5fUk5fRVFfMV9BTl9TSV9FUV8wID09IDEnYjEiOwotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjA2MjUsIC0wLjA1MTI1LCAtMC4wNDUsIC0wLjAzODc1LCAtMC4wMzI1LCAtMC4wMjI1LCAtMC4wMiIsIFwKLSAgICAgICAgICAiLTAuMDczNzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjAzMzc1LCAtMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjA4LCAtMC4wNzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDQ2MjUsIC0wLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjA4NjI1LCAtMC4wODEyNSwgLTAuMDc1LCAtMC4wNjg3NSwgLTAuMDYyNSwgLTAuMDUyNSwgLTAuMDQzNzUiLCBcCi0gICAgICAgICAgIi0wLjA5ODc1LCAtMC4wODc1LCAtMC4wODEyNSwgLTAuMDc1LCAtMC4wNjg3NSwgLTAuMDU4NzUsIC0wLjA1IiwgXAotICAgICAgICAgICItMC4xMDI1LCAtMC4wOTc1LCAtMC4wOTEyNSwgLTAuMDc4NzUsIC0wLjA3ODc1LCAtMC4wNjg3NSwgLTAuMDYiLCBcCi0gICAgICAgICAgIi0wLjExMTI1LCAtMC4xLCAtMC4wOTM3NSwgLTAuMDg3NSwgLTAuMDgxMjUsIC0wLjA3MTI1LCAtMC4wNjg3NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJEJkUmUk4mIVNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMV9BTl9FX0VRXzFfQU5fUk5fRVFfMV9BTl9TSV9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAxODc1LCAtMC4wMTM3NSwgLTAuMDAxMjUsIDAuMDExMjUsIDAuMDE3NSwgMC4wMzM3NSwgMC4wNDI1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDE4NzUsIC0wLjAxMjUsIDAsIDAuMDA2MjUsIDAuMDIyNSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDMxMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAwLCAwLjAxLCAwLjAxODc1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDQzNzUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgMC4wMDM3NSwgMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMDg3NSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDY1LCAtMC4wNiwgLTAuMDQ3NSwgLTAuMDM1LCAtMC4wMjg3NSwgLTAuMDE4NzUsIC0wLjAwMzc1IiwgXAotICAgICAgICAgICItMC4wNzM3NSwgLTAuMDY4NzUsIC0wLjA1NjI1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDIxMjUsIC0wLjAxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEJiFFJiFSTiZTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fRV9FUV8wX0FOX1JOX0VRXzBfQU5fU0lfRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzUsIDAuMDYzNzUsIDAuMDU3NSwgMC4wNDUsIDAuMDM4NzUsIDAuMDM1LCAwLjAyNjI1IiwgXAotICAgICAgICAgICIwLjA4NjI1LCAwLjA3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1LCAwLjA0LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIjAuMDk4NzUsIDAuMDg3NSwgMC4wNzUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNTI1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjExMTI1LCAwLjEsIDAuMDg3NSwgMC4wODEyNSwgMC4wNzUsIDAuMDY1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICIwLjEyMzc1LCAwLjExMjUsIDAuMSwgMC4wOTM3NSwgMC4wODc1LCAwLjA3NzUsIDAuMDY4NzUiLCBcCi0gICAgICAgICAgIjAuMTQsIDAuMTI4NzUsIDAuMTE2MjUsIDAuMTEsIDAuMTAzNzUsIDAuMDkzNzUsIDAuMDg1IiwgXAotICAgICAgICAgICIwLjE1NSwgMC4xNDM3NSwgMC4xMzEyNSwgMC4xMjUsIDAuMTE4NzUsIDAuMTA4NzUsIDAuMSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1NjI1LCAwLjA0NSwgMC4wMzI1LCAwLjAyLCAwLjAwNzUsIC0wLjAwODc1LCAtMC4wMTc1IiwgXAotICAgICAgICAgICIwLjA2MTI1LCAwLjA1NjI1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDE4NzUsIDAuMDAyNSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMDczNzUsIDAuMDYyNSwgMC4wNSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAxNSwgMCIsIFwKLSAgICAgICAgICAiMC4wODYyNSwgMC4wNzUsIDAuMDYyNSwgMC4wNSwgMC4wMzc1LCAwLjAyNzUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4wOTg3NSwgMC4wODc1LCAwLjA3NSwgMC4wNjI1LCAwLjA1LCAwLjAzMzc1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiMC4xMTUsIDAuMTAzNzUsIDAuMDkxMjUsIDAuMDc4NzUsIDAuMDY2MjUsIDAuMDUsIDAuMDQxMjUiLCBcCi0gICAgICAgICAgIjAuMTIzNzUsIDAuMTE4NzUsIDAuMTA2MjUsIDAuMDkzNzUsIDAuMDgxMjUsIDAuMDY1LCAwLjA1NjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRCYhRSZSTiYhU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX0VfRVFfMF9BTl9STl9FUV8xX0FOX1NJX0VRXzAgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY4NzUsIDAuMDU3NSwgMC4wNDUsIDAuMDMyNSwgMC4wMjYyNSwgMC4wMSwgLTAuMDA1IiwgXAotICAgICAgICAgICIwLjA4LCAwLjA2ODc1LCAwLjA1NjI1LCAwLjA0Mzc1LCAwLjAzMTI1LCAwLjAyMTI1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICIwLjA5MjUsIDAuMDgxMjUsIDAuMDY4NzUsIDAuMDU2MjUsIDAuMDQzNzUsIDAuMDI3NSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4wOTg3NSwgMC4wODc1LCAwLjA3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA0LCAwLjAyNSIsIFwKLSAgICAgICAgICAiMC4xMDUsIDAuMDkzNzUsIDAuMDgxMjUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNDYyNSwgMC4wMzc1IiwgXAotICAgICAgICAgICIwLjExNSwgMC4xMDM3NSwgMC4wOTEyNSwgMC4wNzg3NSwgMC4wNzI1LCAwLjA1NjI1LCAwLjA0NzUiLCBcCi0gICAgICAgICAgIjAuMTIzNzUsIDAuMTEyNSwgMC4xLCAwLjA4NzUsIDAuMDgxMjUsIDAuMDY1LCAwLjA1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJEJkUmUk4mIVNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMV9BTl9FX0VRXzFfQU5fUk5fRVFfMV9BTl9TSV9FUV8wID09IDEnYjEiOwotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5Mzc1LCAwLjA4MjUsIDAuMDcsIDAuMDYzNzUsIDAuMDU3NSwgMC4wNDc1LCAwLjA0NSIsIFwKLSAgICAgICAgICAiMC4xMDUsIDAuMDkzNzUsIDAuMDgxMjUsIDAuMDc1LCAwLjA2ODc1LCAwLjA1ODc1LCAwLjA1IiwgXAotICAgICAgICAgICIwLjExMTI1LCAwLjEwNjI1LCAwLjA5Mzc1LCAwLjA4NzUsIDAuMDc1LCAwLjA3MTI1LCAwLjA2MjUiLCBcCi0gICAgICAgICAgIjAuMTIzNzUsIDAuMTEyNSwgMC4xLCAwLjA5Mzc1LCAwLjA4NzUsIDAuMDc3NSwgMC4wNjg3NSIsIFwKLSAgICAgICAgICAiMC4xMywgMC4xMTg3NSwgMC4xMDYyNSwgMC4xLCAwLjA5Mzc1LCAwLjA4Mzc1LCAwLjA3NSIsIFwKLSAgICAgICAgICAiMC4xNCwgMC4xMjg3NSwgMC4xMTYyNSwgMC4xMSwgMC4xMDM3NSwgMC4wOTM3NSwgMC4wODUiLCBcCi0gICAgICAgICAgIjAuMTQyNSwgMC4xMzEyNSwgMC4xMjUsIDAuMTEyNSwgMC4xMDYyNSwgMC4wOTYyNSwgMC4wOTM3NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oU0kpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY3NzgzMzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2NzYyNDM7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjc3ODMzOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjU2NCwgMC4wMDI1NDcsIDAuMDAyNTM4LCAwLjAwMjUzMywgMC4wMDI1MzMsIDAuMDAyNTM1LCAwLjAwMjU0OCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNDQzMiwgMC4wMDQ0MjMsIDAuMDA0NDE3LCAwLjAwNDQxNSwgMC4wMDQ0MTYsIDAuMDA0NDE3LCAwLjAwNDQyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJTRSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wNSwgLTAuMDQ1LCAtMC4wMzI1LCAtMC4wMjYyNSwgLTAuMDIsIC0wLjAxNjI1LCAtMC4wMDc1IiwgXAotICAgICAgICAgICItMC4wNjEyNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDIxMjUsIC0wLjAxODc1IiwgXAotICAgICAgICAgICItMC4wNjc1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wMzM3NSwgLTAuMDI1IiwgXAotICAgICAgICAgICItMC4wOCwgLTAuMDc1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjA0NjI1LCAtMC4wMzc1IiwgXAotICAgICAgICAgICItMC4wOTI1LCAtMC4wODEyNSwgLTAuMDc1LCAtMC4wNjg3NSwgLTAuMDYyNSwgLTAuMDUyNSwgLTAuMDUiLCBcCi0gICAgICAgICAgIi0wLjEwODc1LCAtMC4wOTc1LCAtMC4wOTEyNSwgLTAuMDg1LCAtMC4wNzg3NSwgLTAuMDY4NzUsIC0wLjA2NjI1IiwgXAotICAgICAgICAgICItMC4xMTc1LCAtMC4xMTI1LCAtMC4xLCAtMC4wOTM3NSwgLTAuMDg3NSwgLTAuMDgzNzUsIC0wLjA3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAxMjUsIC0wLjAwMTI1LCAwLjAxMTI1LCAwLjAxNzUsIDAuMDMsIDAuMDQsIDAuMDQ4NzUiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTI1LCAwLCAwLjAxMjUsIDAuMDE4NzUsIDAuMDI4NzUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAsIDAuMDEyNSwgMC4wMjI1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLCAwLjAxLCAwLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjAzNzUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLjAwMzc1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjA1ODc1LCAtMC4wNDc1LCAtMC4wNDEyNSwgLTAuMDI4NzUsIC0wLjAyMjUsIC0wLjAwNjI1LCAwLjAwMjUiLCBcCi0gICAgICAgICAgIi0wLjA2NzUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAxNSwgLTAuMDA2MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlNFIjsKLSAgICAgIHNkZl9jb25kIDogIlNFID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4MTI1LCAwLjA3LCAwLjA2Mzc1LCAwLjA1MTI1LCAwLjA0NSwgMC4wMzUsIDAuMDMyNSIsIFwKLSAgICAgICAgICAiMC4wOTI1LCAwLjA4MTI1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDQ2MjUsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiMC4xMDUsIDAuMDkzNzUsIDAuMDgxMjUsIDAuMDc1LCAwLjA2ODc1LCAwLjA1ODc1LCAwLjA1IiwgXAotICAgICAgICAgICIwLjExMTI1LCAwLjEsIDAuMDkzNzUsIDAuMDgxMjUsIDAuMDc1LCAwLjA2NSwgMC4wNjI1IiwgXAotICAgICAgICAgICIwLjEyMzc1LCAwLjExMjUsIDAuMSwgMC4wOTM3NSwgMC4wODc1LCAwLjA3NzUsIDAuMDY4NzUiLCBcCi0gICAgICAgICAgIjAuMTQsIDAuMTI4NzUsIDAuMTE2MjUsIDAuMTEsIDAuMTAzNzUsIDAuMDkzNzUsIDAuMDg1IiwgXAotICAgICAgICAgICIwLjE1NSwgMC4xNDM3NSwgMC4xMzEyNSwgMC4xMjUsIDAuMTE4NzUsIDAuMTA4NzUsIDAuMSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2MjUsIDAuMDUxMjUsIDAuMDM4NzUsIDAuMDI2MjUsIDAuMDEzNzUsIC0wLjAwMjUsIC0wLjAxMTI1IiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDYyNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAyNSwgMC4wMDg3NSwgMCIsIFwKLSAgICAgICAgICAiMC4wOCwgMC4wNjg3NSwgMC4wNTYyNSwgMC4wNDM3NSwgMC4wMzEyNSwgMC4wMjEyNSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiMC4wOTI1LCAwLjA4MTI1LCAwLjA2ODc1LCAwLjA1NjI1LCAwLjA0Mzc1LCAwLjAyNzUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMDk4NzUsIDAuMDg3NSwgMC4wNzUsIDAuMDYyNSwgMC4wNSwgMC4wNCwgMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMTE1LCAwLjEwMzc1LCAwLjA5MTI1LCAwLjA3ODc1LCAwLjA2NjI1LCAwLjA1LCAwLjA0MTI1IiwgXAotICAgICAgICAgICIwLjEyMzc1LCAwLjExMjUsIDAuMSwgMC4wODc1LCAwLjA3NSwgMC4wNjUsIDAuMDUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IFNFREZGVFJYNCAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKFNFREZGVFJYNCkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjg1NTQyNTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBmZiAoTjMwLFFCSU5UKSB7Ci0gICAgbmV4dF9zdGF0ZSA6ICIoKFNFIFNJKSArICghU0UgKCgoISgoIUQpIEUpKSAoISgoIUUpICghTjMwKSkpKSBSTikpKSI7Ci0gICAgY2xvY2tlZF9vbiA6ICJDSyI7Ci0gIH0KLSAgcGluKENLKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA1NTYzNTQ7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNTU2MjMzOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDU1NjM1NDsKLSAgICBjbG9jayA6IHRydWU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyODU2LCAwLjAwMjgzMiwgMC4wMDI4MTYsIDAuMDAyODE3LCAwLjAwMjgzMywgMC4wMDI4NDgsIDAuMDAyODcyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA2NDc4LCAwLjAwNjQ1NCwgMC4wMDY0NDksIDAuMDA2NDYsIDAuMDA2NDgxLCAwLjAwNjUxOSwgMC4wMDY1NDciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFEJiFFJiFSTiYhU0UmIVNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9FX0VRXzBfQU5fUk5fRVFfMF9BTl9TRV9FUV8wX0FOX1NJX0VRXzAgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4xNTQ1NDYsIDAuMTY0Nzk5LCAwLjE3NzYwMSwgMC4xODk3NTEsIDAuMjAwNzE4LCAwLjIxNTg0MiwgMC4yMjc2NzQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjA5NjA3NSwgMC4xMDU5NTQsIDAuMTE4MzU5LCAwLjEyOTk0MSwgMC4xNDAyNTYsIDAuMTU0MTY0LCAwLjE2NDc3NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNTg3MDY3OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDU4Njg3NDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA1ODcwNjc7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA3Mzg3LCAwLjAwNzM1NSwgMC4wMDczNDcsIDAuMDA3MzU0LCAwLjAwNzM2LCAwLjAwNzM4NCwgMC4wMDc0MDciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDYzNzYsIDAuMDA2MzU0LCAwLjAwNjM0OSwgMC4wMDYzNTMsIDAuMDA2MzY0LCAwLjAwNjM4OCwgMC4wMDY0MDkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiRSZSTiYhU0UiOwotICAgICAgc2RmX2NvbmQgOiAiRV9FUV8xX0FOX1JOX0VRXzFfQU5fU0VfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4xNDM3NSwgLTAuMTM4NzUsIC0wLjEyNjI1LCAtMC4xMiwgLTAuMTEzNzUsIC0wLjExLCAtMC4xMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMTU1LCAtMC4xNDM3NSwgLTAuMTM3NSwgLTAuMTMxMjUsIC0wLjEyNSwgLTAuMTIxMjUsIC0wLjExMjUiLCBcCi0gICAgICAgICAgIi0wLjE2NzUsIC0wLjE1NjI1LCAtMC4xNSwgLTAuMTQzNzUsIC0wLjEzNzUsIC0wLjEyNzUsIC0wLjEyNSIsIFwKLSAgICAgICAgICAiLTAuMTczNzUsIC0wLjE2MjUsIC0wLjE1NjI1LCAtMC4xNSwgLTAuMTQzNzUsIC0wLjE0LCAtMC4xMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMTgsIC0wLjE3NSwgLTAuMTYyNSwgLTAuMTU2MjUsIC0wLjE1LCAtMC4xNDYyNSwgLTAuMTM3NSIsIFwKLSAgICAgICAgICAiLTAuMTksIC0wLjE4NSwgLTAuMTcyNSwgLTAuMTY2MjUsIC0wLjE2LCAtMC4xNTYyNSwgLTAuMTQ3NSIsIFwKLSAgICAgICAgICAiLTAuMTk4NzUsIC0wLjE4NzUsIC0wLjE4MTI1LCAtMC4xNzUsIC0wLjE2ODc1LCAtMC4xNjUsIC0wLjE1NjI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDg3NSwgLTAuMDgyNSwgLTAuMDcsIC0wLjA1NzUsIC0wLjA1MTI1LCAtMC4wNDEyNSwgLTAuMDMyNSIsIFwKLSAgICAgICAgICAiLTAuMDk4NzUsIC0wLjA4NzUsIC0wLjA4MTI1LCAtMC4wNjg3NSwgLTAuMDYyNSwgLTAuMDQ2MjUsIC0wLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjExMTI1LCAtMC4xLCAtMC4wODc1LCAtMC4wODEyNSwgLTAuMDY4NzUsIC0wLjA1ODc1LCAtMC4wNSIsIFwKLSAgICAgICAgICAiLTAuMTE3NSwgLTAuMTA2MjUsIC0wLjEsIC0wLjA4NzUsIC0wLjA4MTI1LCAtMC4wNjUsIC0wLjA1NjI1IiwgXAotICAgICAgICAgICItMC4xMjM3NSwgLTAuMTEyNSwgLTAuMTA2MjUsIC0wLjA5Mzc1LCAtMC4wODc1LCAtMC4wNzEyNSwgLTAuMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMTMzNzUsIC0wLjEyMjUsIC0wLjExLCAtMC4xMDM3NSwgLTAuMDkxMjUsIC0wLjA4MTI1LCAtMC4wNzI1IiwgXAotICAgICAgICAgICItMC4xNDI1LCAtMC4xMzEyNSwgLTAuMTE4NzUsIC0wLjExMjUsIC0wLjEsIC0wLjA5LCAtMC4wODEyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiRSZSTiYhU0UiOwotICAgICAgc2RmX2NvbmQgOiAiRV9FUV8xX0FOX1JOX0VRXzFfQU5fU0VfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yLCAwLjE4ODc1LCAwLjE4MjUsIDAuMTcsIDAuMTYzNzUsIDAuMTUzNzUsIDAuMTUxMjUiLCBcCi0gICAgICAgICAgIjAuMjExMjUsIDAuMiwgMC4xODc1LCAwLjE4MTI1LCAwLjE3NSwgMC4xNjUsIDAuMTU2MjUiLCBcCi0gICAgICAgICAgIjAuMjIzNzUsIDAuMjEyNSwgMC4yLCAwLjE5Mzc1LCAwLjE4NzUsIDAuMTc3NSwgMC4xNjg3NSIsIFwKLSAgICAgICAgICAiMC4yMywgMC4yMTg3NSwgMC4yMDYyNSwgMC4yLCAwLjE5Mzc1LCAwLjE4Mzc1LCAwLjE4MTI1IiwgXAotICAgICAgICAgICIwLjIzNjI1LCAwLjIyNSwgMC4yMTg3NSwgMC4yMDYyNSwgMC4yLCAwLjE5LCAwLjE4NzUiLCBcCi0gICAgICAgICAgIjAuMjQ2MjUsIDAuMjM1LCAwLjIyODc1LCAwLjIxNjI1LCAwLjIxLCAwLjIsIDAuMTk3NSIsIFwKLSAgICAgICAgICAiMC4yNTUsIDAuMjQzNzUsIDAuMjMxMjUsIDAuMjI1LCAwLjIxODc1LCAwLjIwODc1LCAwLjIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNDM3NSwgMC4xMzI1LCAwLjEyLCAwLjEwNzUsIDAuMDk1LCAwLjA3ODc1LCAwLjA3IiwgXAotICAgICAgICAgICIwLjE0ODc1LCAwLjEzNzUsIDAuMTI1LCAwLjExMjUsIDAuMTA2MjUsIDAuMDksIDAuMDgxMjUiLCBcCi0gICAgICAgICAgIjAuMTYxMjUsIDAuMTUsIDAuMTM3NSwgMC4xMjUsIDAuMTEyNSwgMC4xMDI1LCAwLjA4NzUiLCBcCi0gICAgICAgICAgIjAuMTY3NSwgMC4xNTYyNSwgMC4xNDM3NSwgMC4xMzEyNSwgMC4xMjUsIDAuMTA4NzUsIDAuMDkzNzUiLCBcCi0gICAgICAgICAgIjAuMTczNzUsIDAuMTYyNSwgMC4xNSwgMC4xMzc1LCAwLjEzMTI1LCAwLjExNSwgMC4xMDYyNSIsIFwKLSAgICAgICAgICAiMC4xODM3NSwgMC4xNzI1LCAwLjE2LCAwLjE0NzUsIDAuMTQxMjUsIDAuMTI1LCAwLjExIiwgXAotICAgICAgICAgICIwLjE5MjUsIDAuMTgxMjUsIDAuMTY4NzUsIDAuMTU2MjUsIDAuMTQzNzUsIDAuMTI3NSwgMC4xMTg3NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxMTgzNTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDExODM1OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTE4MTI1OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNzg0MSwgMC4wMDc4MjEsIDAuMDA3ODE4LCAwLjAwNzgyNiwgMC4wMDc4NCwgMC4wMDc4NjIsIDAuMDA3ODg2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA4ODkyLCAwLjAwODg2MSwgMC4wMDg4NiwgMC4wMDg4NTgsIDAuMDA4ODcxLCAwLjAwODkwNCwgMC4wMDg5MzciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiUk4mIVNFIjsKLSAgICAgIHNkZl9jb25kIDogIlJOX0VRXzFfQU5fU0VfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4xMTI1LCAtMC4xMDEyNSwgLTAuMDg4NzUsIC0wLjA3NjI1LCAtMC4wNjM3NSwgLTAuMDUzNzUsIC0wLjAzODc1IiwgXAotICAgICAgICAgICItMC4xMTc1LCAtMC4xMTI1LCAtMC4wOTM3NSwgLTAuMDg3NSwgLTAuMDc1LCAtMC4wNTg3NSwgLTAuMDUiLCBcCi0gICAgICAgICAgIi0wLjEzLCAtMC4xMTg3NSwgLTAuMTA2MjUsIC0wLjA5Mzc1LCAtMC4wODc1LCAtMC4wNzEyNSwgLTAuMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMTQyNSwgLTAuMTMxMjUsIC0wLjExODc1LCAtMC4xMDYyNSwgLTAuMDkzNzUsIC0wLjA4Mzc1LCAtMC4wNjg3NSIsIFwKLSAgICAgICAgICAiLTAuMTQ4NzUsIC0wLjE0Mzc1LCAtMC4xMzEyNSwgLTAuMTE4NzUsIC0wLjEwNjI1LCAtMC4wOSwgLTAuMDgxMjUiLCBcCi0gICAgICAgICAgIi0wLjE2NSwgLTAuMTUzNzUsIC0wLjE0MTI1LCAtMC4xMzUsIC0wLjEyMjUsIC0wLjEwNjI1LCAtMC4wOTc1IiwgXAotICAgICAgICAgICItMC4xOCwgLTAuMTY4NzUsIC0wLjE1NjI1LCAtMC4xNDM3NSwgLTAuMTM3NSwgLTAuMTIxMjUsIC0wLjExMjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4xMDYyNSwgLTAuMDk1LCAtMC4wODI1LCAtMC4wNywgLTAuMDYzNzUsIC0wLjA1Mzc1LCAtMC4wNDUiLCBcCi0gICAgICAgICAgIi0wLjExMTI1LCAtMC4xMDYyNSwgLTAuMDkzNzUsIC0wLjA4MTI1LCAtMC4wNzUsIC0wLjA1ODc1LCAtMC4wNSIsIFwKLSAgICAgICAgICAiLTAuMTIzNzUsIC0wLjExMjUsIC0wLjEsIC0wLjA5Mzc1LCAtMC4wODc1LCAtMC4wNzEyNSwgLTAuMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMTMsIC0wLjEyNSwgLTAuMTEyNSwgLTAuMSwgLTAuMDkzNzUsIC0wLjA4Mzc1LCAtMC4wNjg3NSIsIFwKLSAgICAgICAgICAiLTAuMTM2MjUsIC0wLjEzMTI1LCAtMC4xMTg3NSwgLTAuMTA2MjUsIC0wLjEsIC0wLjA5LCAtMC4wODEyNSIsIFwKLSAgICAgICAgICAiLTAuMTQ2MjUsIC0wLjE0MTI1LCAtMC4xMjg3NSwgLTAuMTE2MjUsIC0wLjExLCAtMC4xLCAtMC4wODUiLCBcCi0gICAgICAgICAgIi0wLjE1NSwgLTAuMTQzNzUsIC0wLjEzNzUsIC0wLjEyNSwgLTAuMTE4NzUsIC0wLjEwMjUsIC0wLjA5Mzc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJSTiYhU0UiOwotICAgICAgc2RmX2NvbmQgOiAiUk5fRVFfMV9BTl9TRV9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIyNSwgMC4yMTM3NSwgMC4yMDEyNSwgMC4xOTUsIDAuMTgyNSwgMC4xNzg3NSwgMC4xNyIsIFwKLSAgICAgICAgICAiMC4yMywgMC4yMTg3NSwgMC4yMTI1LCAwLjIsIDAuMTkzNzUsIDAuMTgzNzUsIDAuMTgxMjUiLCBcCi0gICAgICAgICAgIjAuMjQyNSwgMC4yMzEyNSwgMC4yMjUsIDAuMjEyNSwgMC4yMDYyNSwgMC4xOTYyNSwgMC4xOTM3NSIsIFwKLSAgICAgICAgICAiMC4yNTUsIDAuMjQzNzUsIDAuMjMxMjUsIDAuMjI1LCAwLjIxODc1LCAwLjIwODc1LCAwLjIiLCBcCi0gICAgICAgICAgIjAuMjYxMjUsIDAuMjUsIDAuMjM3NSwgMC4yMzEyNSwgMC4yMjUsIDAuMjE1LCAwLjIwNjI1IiwgXAotICAgICAgICAgICIwLjI3MTI1LCAwLjI2LCAwLjI0NzUsIDAuMjQxMjUsIDAuMjM1LCAwLjIyNSwgMC4yMTYyNSIsIFwKLSAgICAgICAgICAiMC4yOCwgMC4yNjg3NSwgMC4yNTYyNSwgMC4yNSwgMC4yNDM3NSwgMC4yMzM3NSwgMC4yMjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNTYyNSwgMC4xNDUsIDAuMTM4NzUsIDAuMTMyNSwgMC4xMjYyNSwgMC4xMTYyNSwgMC4xMTM3NSIsIFwKLSAgICAgICAgICAiMC4xNjc1LCAwLjE1NjI1LCAwLjE1LCAwLjE0Mzc1LCAwLjEzNzUsIDAuMTI3NSwgMC4xMTg3NSIsIFwKLSAgICAgICAgICAiMC4xNzM3NSwgMC4xNjg3NSwgMC4xNjI1LCAwLjE1LCAwLjE0Mzc1LCAwLjE0LCAwLjEzMTI1IiwgXAotICAgICAgICAgICIwLjE4NjI1LCAwLjE4MTI1LCAwLjE2ODc1LCAwLjE2MjUsIDAuMTU2MjUsIDAuMTUyNSwgMC4xNDM3NSIsIFwKLSAgICAgICAgICAiMC4xOTg3NSwgMC4xODc1LCAwLjE4MTI1LCAwLjE3NSwgMC4xNjg3NSwgMC4xNTg3NSwgMC4xNTYyNSIsIFwKLSAgICAgICAgICAiMC4yMTUsIDAuMjEsIDAuMTk3NSwgMC4xOTEyNSwgMC4xODUsIDAuMTgxMjUsIDAuMTcyNSIsIFwKLSAgICAgICAgICAiMC4yMywgMC4yMjUsIDAuMjEyNSwgMC4yMDYyNSwgMC4yLCAwLjE5LCAwLjE4NzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFEpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMS4wMjk4ODsKLSAgICBmdW5jdGlvbiA6ICJOMzAiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5vbl91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcmlzaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTIxMjksIDAuMTk1ODY4LCAwLjI2ODkyNCwgMC4zMjE0OTMsIDAuNDA0ODUxLCAwLjQ3NzczLCAwLjU4MTUwOSIsIFwKLSAgICAgICAgICAiMC4xMzE0ODQsIDAuMjA2MDYsIDAuMjc5MzA5LCAwLjMzMTMwMywgMC40MTUxNTIsIDAuNDg3OTA5LCAwLjU5MjA0IiwgXAotICAgICAgICAgICIwLjE0NDIwOCwgMC4yMTg3NzksIDAuMjkxOTY5LCAwLjM0Mzg2LCAwLjQyNzU5MSwgMC41MDA2MjUsIDAuNjA0NzU5IiwgXAotICAgICAgICAgICIwLjE1NjEwOCwgMC4yMzA3MSwgMC4zMDM5MzQsIDAuMzU1ODIxLCAwLjQzOTU2LCAwLjUxMjU1MywgMC42MTYzODYiLCBcCi0gICAgICAgICAgIjAuMTY3MDA2LCAwLjI0MTU4NiwgMC4zMTQ3NzIsIDAuMzY2NzE0LCAwLjQ1MDY1NSwgMC41MjM0MjIsIDAuNjI3NTczIiwgXAotICAgICAgICAgICIwLjE4MjE1LCAwLjI1Njc0OSwgMC4zMjk5OTUsIDAuMzgxNzgzLCAwLjQ2NTMzMiwgMC41MzgzMDgsIDAuNjQyNzE4IiwgXAotICAgICAgICAgICIwLjE5Mzc5MSwgMC4yNjgzODYsIDAuMzQxNTc2LCAwLjM5MzcxMywgMC40NzczMjQsIDAuNTUwMjUxLCAwLjY1NDE5NiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzMzkzNywgMC4xODE2ODQsIDAuMzMxNjk5LCAwLjQzOTg5MywgMC42MTM2OCwgMC43NjUzMSwgMC45ODEzODgiLCBcCi0gICAgICAgICAgIjAuMDMzOTYzLCAwLjE4MTc0NywgMC4zMzE2MywgMC40NDAxNiwgMC42MTM2ODQsIDAuNzY1MzA5LCAwLjk4MTgxNSIsIFwKLSAgICAgICAgICAiMC4wMzM5ODgsIDAuMTgxNzM4LCAwLjMzMTYwMiwgMC40Mzk4ODUsIDAuNjEyNDMxLCAwLjc2NTI5NiwgMC45ODE4MjIiLCBcCi0gICAgICAgICAgIjAuMDMzOTU4LCAwLjE4MTY4NCwgMC4zMzE2MjgsIDAuNDM5ODg5LCAwLjYxMzYzOSwgMC43NjUzMDQsIDAuOTgxNDExIiwgXAotICAgICAgICAgICIwLjAzMzk4NiwgMC4xODE2MzMsIDAuMzMxNTk4LCAwLjQzOTg4NCwgMC42MTM2NjksIDAuNzY1MzA1LCAwLjk4MTgwMyIsIFwKLSAgICAgICAgICAiMC4wMzM5NjEsIDAuMTgxNjY3LCAwLjMzMTY0LCAwLjQzOTg5MywgMC42MTM2MzEsIDAuNzY1Mjk4LCAwLjk4MTgwNyIsIFwKLSAgICAgICAgICAiMC4wMzM5ODcsIDAuMTgxNzAzLCAwLjMzMTc2NiwgMC40Mzk4OSwgMC42MTM2NzksIDAuNzY1MzAyLCAwLjk4MTc2NyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEzMDg2NiwgMC4yMDY0MywgMC4yODA2MzYsIDAuMzMzMzUyLCAwLjQxNzI4NCwgMC40OTA4MzQsIDAuNTk2MjA4IiwgXAotICAgICAgICAgICIwLjE0MTExOCwgMC4yMTY2NTUsIDAuMjkwNTgsIDAuMzQzMDYsIDAuNDI3NDc4LCAwLjUwMTE2NywgMC42MDYzMDIiLCBcCi0gICAgICAgICAgIjAuMTUzOTMyLCAwLjIyOTQ5NywgMC4zMDMzNjIsIDAuMzU2MzYsIDAuNDQwMjg3LCAwLjUxMzk2OSwgMC42MTkxMTYiLCBcCi0gICAgICAgICAgIjAuMTY2MDcyLCAwLjI0MTYzMiwgMC4zMTU2OTIsIDAuMzY4NDY1LCAwLjQ1MjQ3NSwgMC41MjYxMDMsIDAuNjMxNDE5IiwgXAotICAgICAgICAgICIwLjE3NzAzOCwgMC4yNTI1NTYsIDAuMzI2NDk2LCAwLjM3OTQ4MywgMC40NjM2MjYsIDAuNTM3MDc1LCAwLjY0MjUyMSIsIFwKLSAgICAgICAgICAiMC4xOTIxNjMsIDAuMjY3Njg0LCAwLjM0MTY3OSwgMC4zOTQ0ODEsIDAuNDc4NjQzLCAwLjU1MjIzOSwgMC42NTc1MzIiLCBcCi0gICAgICAgICAgIjAuMjA0MDEzLCAwLjI3OTU3NywgMC4zNTM2NTQsIDAuNDA2NDc0LCAwLjQ5MDM5MSwgMC41NjM5NDksIDAuNjY5MzU2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDMzMDkzLCAwLjE3OTA3MywgMC4zMjczNDEsIDAuNDMzMTQ0LCAwLjYwMzkyNywgMC43NTM1NDYsIDAuOTY3MTAxIiwgXAotICAgICAgICAgICIwLjAzMzA3LCAwLjE3ODgzNCwgMC4zMjczMSwgMC40MzMxOTYsIDAuNjA0MjA4LCAwLjc1MzYyNywgMC45NjU2MyIsIFwKLSAgICAgICAgICAiMC4wMzMwODcsIDAuMTc5MDkyLCAwLjMyNzI5NywgMC40MzMyMTIsIDAuNjA0MTk1LCAwLjc1MzYyOCwgMC45NjY5ODYiLCBcCi0gICAgICAgICAgIjAuMDMzMDkxLCAwLjE3OTA3MiwgMC4zMjczNDMsIDAuNDMzMTcsIDAuNjA0MTk4LCAwLjc1MzYyNiwgMC45NjcxIiwgXAotICAgICAgICAgICIwLjAzMzA2OCwgMC4xNzkwNzksIDAuMzI3MzA4LCAwLjQzMzE5LCAwLjYwNDE5NSwgMC43NTM2MjcsIDAuOTY3MDExIiwgXAotICAgICAgICAgICIwLjAzMzE1NiwgMC4xNzkwODEsIDAuMzI3MzQ1LCAwLjQzMzMzMywgMC42MDQyLCAwLjc1MzYwNywgMC45NjcxMyIsIFwKLSAgICAgICAgICAiMC4wMzMxNSwgMC4xNzkwNzUsIDAuMzI3MzQyLCAwLjQzMzIyNCwgMC42MDQxOTgsIDAuNzUzNTI1LCAwLjk2NzEwMSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwOTk2NSwgMC4wMTAxMDUsIDAuMDEwMTA5LCAwLjAxMDEwOCwgMC4wMTAxMDYsIDAuMDEwMTA0LCAwLjAxMDEwMyIsIFwKLSAgICAgICAgICAiMC4wMDk5NSwgMC4wMTAwOSwgMC4wMTAwOTQsIDAuMDEwMDkzLCAwLjAxMDA5MSwgMC4wMTAwODksIDAuMDEwMDg3IiwgXAotICAgICAgICAgICIwLjAwOTk0NSwgMC4wMTAwODQsIDAuMDEwMDg4LCAwLjAxMDA4NywgMC4wMTAwODQsIDAuMDEwMDgzLCAwLjAxMDA4MSIsIFwKLSAgICAgICAgICAiMC4wMDk5NCwgMC4wMTAwOCwgMC4wMTAwODUsIDAuMDEwMDg0LCAwLjAxMDA4MiwgMC4wMTAwOCwgMC4wMTAwNzgiLCBcCi0gICAgICAgICAgIjAuMDA5OTUxLCAwLjAxMDA5MSwgMC4wMTAwOTYsIDAuMDEwMDk1LCAwLjAxMDA5MiwgMC4wMTAwOSwgMC4wMTAwODgiLCBcCi0gICAgICAgICAgIjAuMDA5OTU1LCAwLjAxMDA5NywgMC4wMTAxMDMsIDAuMDEwMTAxLCAwLjAxMDEsIDAuMDEwMDk4LCAwLjAxMDA5NiIsIFwKLSAgICAgICAgICAiMC4wMDk5NjgsIDAuMDEwMTEsIDAuMDEwMTE2LCAwLjAxMDExNSwgMC4wMTAxMTMsIDAuMDEwMTExLCAwLjAxMDEwOCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA4OTMzLCAwLjAwOTA4OCwgMC4wMDkxMDksIDAuMDA5MTEzLCAwLjAwOTExOCwgMC4wMDkxMiwgMC4wMDkxMjEiLCBcCi0gICAgICAgICAgIjAuMDA4OTE4LCAwLjAwOTA3NCwgMC4wMDkwOTMsIDAuMDA5MDk5LCAwLjAwOTEwNSwgMC4wMDkxMDYsIDAuMDA5MTA3IiwgXAotICAgICAgICAgICIwLjAwODkxNywgMC4wMDkwNzEsIDAuMDA5MDksIDAuMDA5MDk1LCAwLjAwOTEwMSwgMC4wMDkxMDQsIDAuMDA5MTA1IiwgXAotICAgICAgICAgICIwLjAwODkyNywgMC4wMDkwOCwgMC4wMDkwOTksIDAuMDA5MTA0LCAwLjAwOTEwOSwgMC4wMDkxMTIsIDAuMDA5MTE0IiwgXAotICAgICAgICAgICIwLjAwODk0LCAwLjAwOTA5NCwgMC4wMDkxMTMsIDAuMDA5MTE5LCAwLjAwOTEyMywgMC4wMDkxMjYsIDAuMDA5MTI3IiwgXAotICAgICAgICAgICIwLjAwODk1LCAwLjAwOTEwNCwgMC4wMDkxMjMsIDAuMDA5MTMsIDAuMDA5MTMyLCAwLjAwOTEzNSwgMC4wMDkxMzUiLCBcCi0gICAgICAgICAgIjAuMDA4OTc4LCAwLjAwOTEzMiwgMC4wMDkxNTEsIDAuMDA5MTU2LCAwLjAwOTE2MSwgMC4wMDkxNjMsIDAuMDA5MTY0Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihRTikgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAxLjAzMzc2OwotICAgIGZ1bmN0aW9uIDogIlFCSU5UIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBub25fdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJpc2luZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE1NDkwOSwgMC4yMjc5OTgsIDAuMzAxMDE5LCAwLjM1MzE3NCwgMC40MzY1MDksIDAuNTA5NDc3LCAwLjYxMzczMSIsIFwKLSAgICAgICAgICAiMC4xNjUxNTYsIDAuMjM4MzA4LCAwLjMxMTI2NCwgMC4zNjMzMDMsIDAuNDQ2ODI3LCAwLjUxOTc4LCAwLjYyNDAzOCIsIFwKLSAgICAgICAgICAiMC4xNzc5NTksIDAuMjUxMTE4LCAwLjMyNDA3MiwgMC4zNzYyNzQsIDAuNDU5NjY0LCAwLjUzMjU5MSwgMC42MzY4NDYiLCBcCi0gICAgICAgICAgIjAuMTkwMTM3LCAwLjI2MzI1NCwgMC4zMzYyMzQsIDAuMzg4Mzk3LCAwLjQ3MTc1NSwgMC41NDQ3MjgsIDAuNjQ4OTgiLCBcCi0gICAgICAgICAgIjAuMjAxMDc2LCAwLjI3NDIyNiwgMC4zNDcxOSwgMC4zOTkzOTIsIDAuNDgyODAyLCAwLjU1NTcwNiwgMC42NjAwNTYiLCBcCi0gICAgICAgICAgIjAuMjE2MjIsIDAuMjg5MzYzLCAwLjM2MjMzNiwgMC40MTQ0ODQsIDAuNDk3ODc0LCAwLjU3MDgyNSwgMC42NzUwOTgiLCBcCi0gICAgICAgICAgIjAuMjI4MDYyLCAwLjMwMTE3OCwgMC4zNzQxOCwgMC40MjYzNTQsIDAuNTA5Njg3LCAwLjU4MjY3LCAwLjY4NjkyMiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzMjMwOCwgMC4xODA1ODgsIDAuMzMyMzQ5LCAwLjQ0MDgxMywgMC42MTQ0NjIsIDAuNzY1ODk0LCAwLjk4MzMwMiIsIFwKLSAgICAgICAgICAiMC4wMzIzMTIsIDAuMTgwNDUyLCAwLjMzMjMzMiwgMC40NDAwNzUsIDAuNjE0MDA2LCAwLjc2NTkxNywgMC45ODE5NzUiLCBcCi0gICAgICAgICAgIjAuMDMyMzA1LCAwLjE4MDU4NSwgMC4zMzIzMjMsIDAuNDQwNjMzLCAwLjYxNDIyOSwgMC43NjU5MiwgMC45ODI4NjYiLCBcCi0gICAgICAgICAgIjAuMDMyMzA4LCAwLjE4MDU4NywgMC4zMzIzNSwgMC40NDA2NDQsIDAuNjE0NDYsIDAuNzY1OTE5LCAwLjk4MzMxIiwgXAotICAgICAgICAgICIwLjAzMjMxMiwgMC4xODA1NzMsIDAuMzMyMzMyLCAwLjQ0MDY0NSwgMC42MTQ0NzIsIDAuNzY1OTE5LCAwLjk4Mjg4MSIsIFwKLSAgICAgICAgICAiMC4wMzIzNCwgMC4xODA1ODYsIDAuMzMyMzUsIDAuNDQwNzQ2LCAwLjYxNDQ2NCwgMC43NjU5MDQsIDAuOTgzMjk1IiwgXAotICAgICAgICAgICIwLjAzMjMyOSwgMC4xODA1ODgsIDAuMzMyMzQ5LCAwLjQ0MDExOSwgMC42MTQ0NjMsIDAuNzY1ODczLCAwLjk4MzMxNyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE0Njk5MiwgMC4yMjA5NzcsIDAuMjk0NjYzLCAwLjM0NzMzOCwgMC40MzE1NTcsIDAuNTA1MjM5LCAwLjYxMDU1OSIsIFwKLSAgICAgICAgICAiMC4xNTcxOTgsIDAuMjMxMiwgMC4zMDQ4OSwgMC4zNTc1MTgsIDAuNDQxNzkzLCAwLjUxNTQ1MywgMC42MjA3MTgiLCBcCi0gICAgICAgICAgIjAuMTY5OTM5LCAwLjI0MzkzMywgMC4zMTc2MTcsIDAuMzcwMjUzLCAwLjQ1NDM4MywgMC41MjgxOCwgMC42MzM0NDYiLCBcCi0gICAgICAgICAgIjAuMTgxODMzLCAwLjI1NTgyNiwgMC4zMjk1MTYsIDAuMzgyMTQ0LCAwLjQ2NjM3OCwgMC41NDAwOCwgMC42NDUzNSIsIFwKLSAgICAgICAgICAiMC4xOTI3MzIsIDAuMjY2NzM3LCAwLjM0MDQyNiwgMC4zOTMwNjQsIDAuNDc3MzI2LCAwLjU1MDk4NywgMC42NTYyNTYiLCBcCi0gICAgICAgICAgIjAuMjA3ODY5LCAwLjI4MTg3NSwgMC4zNTU1NjQsIDAuNDA4MTg5LCAwLjQ5MjQyMywgMC41NjYxNjIsIDAuNjcxMzg3IiwgXAotICAgICAgICAgICIwLjIxOTUyLCAwLjI5MzQ4OCwgMC4zNjcxNjksIDAuNDE5ODAxLCAwLjUwNDA1LCAwLjU3NzczNywgMC42ODMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzE3NDUsIDAuMTc3NzA4LCAwLjMyNjgzOCwgMC40MzMzNTEsIDAuNjA0Mzg0LCAwLjc1Mzc1NSwgMC45NjY4NDIiLCBcCi0gICAgICAgICAgIjAuMDMxNzUsIDAuMTc3Njc5LCAwLjMyNjg0NywgMC40MzM1NjIsIDAuNjA0Mzg5LCAwLjc1Mzc1MSwgMC45NjcxNTEiLCBcCi0gICAgICAgICAgIjAuMDMxNzQ0LCAwLjE3NzYwNiwgMC4zMjY4MzIsIDAuNDMzMzM0LCAwLjYwMzYwMywgMC43NTM3NDMsIDAuOTY3MTExIiwgXAotICAgICAgICAgICIwLjAzMTc1LCAwLjE3NzcxMSwgMC4zMjY4NDgsIDAuNDMzMzQ2LCAwLjYwNDMwNCwgMC43NTM3NDYsIDAuOTY2ODUzIiwgXAotICAgICAgICAgICIwLjAzMTc1MiwgMC4xNzc2MDcsIDAuMzI2ODMxLCAwLjQzMzMzNCwgMC42MDQzNSwgMC43NTM3NTQsIDAuOTY3MTAzIiwgXAotICAgICAgICAgICIwLjAzMTc0LCAwLjE3Nzc2MSwgMC4zMjY4NDcsIDAuNDMzMzUyLCAwLjYwNDI3MywgMC43NTM3NDUsIDAuOTY3MTAzIiwgXAotICAgICAgICAgICIwLjAzMTc1MiwgMC4xNzc2MDIsIDAuMzI2ODMyLCAwLjQzMzM0NSwgMC42MDQzNzIsIDAuNzUzNzUxLCAwLjk2NzA2NCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwODkzMywgMC4wMDkwODgsIDAuMDA5MTA5LCAwLjAwOTExMywgMC4wMDkxMTgsIDAuMDA5MTIsIDAuMDA5MTIxIiwgXAotICAgICAgICAgICIwLjAwODkxOCwgMC4wMDkwNzQsIDAuMDA5MDkzLCAwLjAwOTA5OSwgMC4wMDkxMDUsIDAuMDA5MTA2LCAwLjAwOTEwNyIsIFwKLSAgICAgICAgICAiMC4wMDg5MTcsIDAuMDA5MDcxLCAwLjAwOTA5LCAwLjAwOTA5NSwgMC4wMDkxMDEsIDAuMDA5MTA0LCAwLjAwOTEwNSIsIFwKLSAgICAgICAgICAiMC4wMDg5MjcsIDAuMDA5MDgsIDAuMDA5MDk5LCAwLjAwOTEwNCwgMC4wMDkxMDksIDAuMDA5MTEyLCAwLjAwOTExNCIsIFwKLSAgICAgICAgICAiMC4wMDg5NCwgMC4wMDkwOTQsIDAuMDA5MTEzLCAwLjAwOTExOSwgMC4wMDkxMjMsIDAuMDA5MTI2LCAwLjAwOTEyNyIsIFwKLSAgICAgICAgICAiMC4wMDg5NSwgMC4wMDkxMDQsIDAuMDA5MTIzLCAwLjAwOTEzLCAwLjAwOTEzMiwgMC4wMDkxMzUsIDAuMDA5MTM1IiwgXAotICAgICAgICAgICIwLjAwODk3OCwgMC4wMDkxMzIsIDAuMDA5MTUxLCAwLjAwOTE1NiwgMC4wMDkxNjEsIDAuMDA5MTYzLCAwLjAwOTE2NCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA5OTY1LCAwLjAxMDEwNSwgMC4wMTAxMDksIDAuMDEwMTA4LCAwLjAxMDEwNiwgMC4wMTAxMDQsIDAuMDEwMTAzIiwgXAotICAgICAgICAgICIwLjAwOTk1LCAwLjAxMDA5LCAwLjAxMDA5NCwgMC4wMTAwOTMsIDAuMDEwMDkxLCAwLjAxMDA4OSwgMC4wMTAwODciLCBcCi0gICAgICAgICAgIjAuMDA5OTQ1LCAwLjAxMDA4NCwgMC4wMTAwODgsIDAuMDEwMDg3LCAwLjAxMDA4NCwgMC4wMTAwODMsIDAuMDEwMDgxIiwgXAotICAgICAgICAgICIwLjAwOTk0LCAwLjAxMDA4LCAwLjAxMDA4NSwgMC4wMTAwODQsIDAuMDEwMDgyLCAwLjAxMDA4LCAwLjAxMDA3OCIsIFwKLSAgICAgICAgICAiMC4wMDk5NTEsIDAuMDEwMDkxLCAwLjAxMDA5NiwgMC4wMTAwOTUsIDAuMDEwMDkyLCAwLjAxMDA5LCAwLjAxMDA4OCIsIFwKLSAgICAgICAgICAiMC4wMDk5NTUsIDAuMDEwMDk3LCAwLjAxMDEwMywgMC4wMTAxMDEsIDAuMDEwMSwgMC4wMTAwOTgsIDAuMDEwMDk2IiwgXAotICAgICAgICAgICIwLjAwOTk2OCwgMC4wMTAxMSwgMC4wMTAxMTYsIDAuMDEwMTE1LCAwLjAxMDExMywgMC4wMTAxMTEsIDAuMDEwMTA4Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihSTikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjQ0MjkxOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDY0NDA2MzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2NDQyOTE7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA4NSwgMC4wMDg0NzEsIDAuMDA4NDc1LCAwLjAwODQ3NywgMC4wMDg0ODYsIDAuMDA4NTEyLCAwLjAwODUzNiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNzE5NiwgMC4wMDcxNzMsIDAuMDA3MTcsIDAuMDA3MTc1LCAwLjAwNzE4NCwgMC4wMDcyMSwgMC4wMDcyMzIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIVNFIjsKLSAgICAgIHNkZl9jb25kIDogIlNFID09IDEnYjAiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjE5Mzc1LCAtMC4xODI1LCAtMC4xNzYyNSwgLTAuMTcsIC0wLjE2Mzc1LCAtMC4xNTM3NSwgLTAuMTUxMjUiLCBcCi0gICAgICAgICAgIi0wLjIwNSwgLTAuMTkzNzUsIC0wLjE4NzUsIC0wLjE4MTI1LCAtMC4xNzUsIC0wLjE2NSwgLTAuMTYyNSIsIFwKLSAgICAgICAgICAiLTAuMjExMjUsIC0wLjIwNjI1LCAtMC4yLCAtMC4xOTM3NSwgLTAuMTg3NSwgLTAuMTc3NSwgLTAuMTY4NzUiLCBcCi0gICAgICAgICAgIi0wLjIyMzc1LCAtMC4yMTI1LCAtMC4yMDYyNSwgLTAuMiwgLTAuMTkzNzUsIC0wLjE4Mzc1LCAtMC4xODEyNSIsIFwKLSAgICAgICAgICAiLTAuMjMsIC0wLjIxODc1LCAtMC4yMTI1LCAtMC4yMDYyNSwgLTAuMiwgLTAuMTksIC0wLjE4NzUiLCBcCi0gICAgICAgICAgIi0wLjI0LCAtMC4yMjg3NSwgLTAuMjIyNSwgLTAuMjE2MjUsIC0wLjIxLCAtMC4yLCAtMC4xOTc1IiwgXAotICAgICAgICAgICItMC4yNDI1LCAtMC4yMzc1LCAtMC4yMzEyNSwgLTAuMjI1LCAtMC4yMTg3NSwgLTAuMjA4NzUsIC0wLjIwNjI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDc1LCAtMC4wNjM3NSwgLTAuMDUxMjUsIC0wLjA0NSwgLTAuMDMyNSwgLTAuMDIyNSwgLTAuMDEzNzUiLCBcCi0gICAgICAgICAgIi0wLjA4LCAtMC4wNzUsIC0wLjA2MjUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDMzNzUsIC0wLjAxODc1IiwgXAotICAgICAgICAgICItMC4wOTI1LCAtMC4wODEyNSwgLTAuMDc1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDQsIC0wLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wOTg3NSwgLTAuMDkzNzUsIC0wLjA4MTI1LCAtMC4wNjg3NSwgLTAuMDYyNSwgLTAuMDQ2MjUsIC0wLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjEwNSwgLTAuMSwgLTAuMDg3NSwgLTAuMDc1LCAtMC4wNjg3NSwgLTAuMDUyNSwgLTAuMDQzNzUiLCBcCi0gICAgICAgICAgIi0wLjExNSwgLTAuMTAzNzUsIC0wLjA5NzUsIC0wLjA4NSwgLTAuMDc4NzUsIC0wLjA2MjUsIC0wLjA1Mzc1IiwgXAotICAgICAgICAgICItMC4xMjM3NSwgLTAuMTEyNSwgLTAuMSwgLTAuMDkzNzUsIC0wLjA4MTI1LCAtMC4wNzEyNSwgLTAuMDYyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIVNFIjsKLSAgICAgIHNkZl9jb25kIDogIlNFID09IDEnYjAiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIzMTI1LCAwLjIyLCAwLjIwNzUsIDAuMjAxMjUsIDAuMTk1LCAwLjE4NSwgMC4xNzYyNSIsIFwKLSAgICAgICAgICAiMC4yNDI1LCAwLjIzMTI1LCAwLjIxODc1LCAwLjIxMjUsIDAuMjA2MjUsIDAuMTk2MjUsIDAuMTg3NSIsIFwKLSAgICAgICAgICAiMC4yNDg3NSwgMC4yNDM3NSwgMC4yMzEyNSwgMC4yMTg3NSwgMC4yMTI1LCAwLjIwODc1LCAwLjIiLCBcCi0gICAgICAgICAgIjAuMjYxMjUsIDAuMjUsIDAuMjM3NSwgMC4yMzEyNSwgMC4yMjUsIDAuMjE1LCAwLjIwNjI1IiwgXAotICAgICAgICAgICIwLjI2NzUsIDAuMjU2MjUsIDAuMjQzNzUsIDAuMjM3NSwgMC4yMzEyNSwgMC4yMjEyNSwgMC4yMTI1IiwgXAotICAgICAgICAgICIwLjI3NzUsIDAuMjY2MjUsIDAuMjUzNzUsIDAuMjQ3NSwgMC4yNDEyNSwgMC4yMzEyNSwgMC4yMjI1IiwgXAotICAgICAgICAgICIwLjI4NjI1LCAwLjI3NSwgMC4yNjI1LCAwLjI1NjI1LCAwLjI1LCAwLjI0LCAwLjIzMTI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTI1LCAwLjExMzc1LCAwLjEwMTI1LCAwLjA4ODc1LCAwLjA4MjUsIDAuMDY2MjUsIDAuMDUxMjUiLCBcCi0gICAgICAgICAgIjAuMTM2MjUsIDAuMTI1LCAwLjExMjUsIDAuMSwgMC4wODc1LCAwLjA3MTI1LCAwLjA2MjUiLCBcCi0gICAgICAgICAgIjAuMTQ4NzUsIDAuMTM3NSwgMC4xMjUsIDAuMTEyNSwgMC4xLCAwLjA4Mzc1LCAwLjA3NSIsIFwKLSAgICAgICAgICAiMC4xNTUsIDAuMTQzNzUsIDAuMTMxMjUsIDAuMTE4NzUsIDAuMTA2MjUsIDAuMDksIDAuMDgxMjUiLCBcCi0gICAgICAgICAgIjAuMTYxMjUsIDAuMTUsIDAuMTM3NSwgMC4xMjUsIDAuMTEyNSwgMC4wOTYyNSwgMC4wODc1IiwgXAotICAgICAgICAgICIwLjE3MTI1LCAwLjE2LCAwLjE0NzUsIDAuMTM1LCAwLjEyMjUsIDAuMTA2MjUsIDAuMDk3NSIsIFwKLSAgICAgICAgICAiMC4xNzM3NSwgMC4xNjI1LCAwLjE1LCAwLjEzNzUsIDAuMTMxMjUsIDAuMTE1LCAwLjEiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFNFKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE0NjI5NTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE0NjI5NTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE0NjI1NjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDQxMjcsIDAuMDA0MTA2LCAwLjAwNDEwMywgMC4wMDQxMTIsIDAuMDA0MTI2LCAwLjAwNDE0NywgMC4wMDQxNzYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDU1MjYsIDAuMDA1NDkxLCAwLjAwNTQ4MiwgMC4wMDU0ODcsIDAuMDA1NTAzLCAwLjAwNTU0NSwgMC4wMDU1ODMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUQmIUUmIVJOJlNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9FX0VRXzBfQU5fUk5fRVFfMF9BTl9TSV9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjA0Mzc1LCAtMC4wMzg3NSwgLTAuMDI2MjUsIC0wLjAyLCAtMC4wMTM3NSwgLTAuMDEsIC0wLjAwMTI1IiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMTUsIC0wLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjA2NzUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAyNzUsIC0wLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDczNzUsIC0wLjA2ODc1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjA0LCAtMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDg2MjUsIC0wLjA4MTI1LCAtMC4wNjg3NSwgLTAuMDYyNSwgLTAuMDYyNSwgLTAuMDUyNSwgLTAuMDQzNzUiLCBcCi0gICAgICAgICAgIi0wLjEwMjUsIC0wLjA5NzUsIC0wLjA5MTI1LCAtMC4wODUsIC0wLjA3ODc1LCAtMC4wNjg3NSwgLTAuMDYiLCBcCi0gICAgICAgICAgIi0wLjExNzUsIC0wLjEwNjI1LCAtMC4xLCAtMC4wOTM3NSwgLTAuMDg3NSwgLTAuMDgzNzUsIC0wLjA3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAwNjI1LCAwLjAwNSwgMC4wMTc1LCAwLjAyMzc1LCAwLjAzNjI1LCAwLjA0NjI1LCAwLjA1NSIsIFwKLSAgICAgICAgICAiLTAuMDExMjUsIC0wLjAwNjI1LCAwLjAwNjI1LCAwLjAxODc1LCAwLjAyNSwgMC4wNDEyNSwgMC4wNSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLjAwNjI1LCAwLjAxMjUsIDAuMDI4NzUsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAyNSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAuMDA2MjUsIDAuMDE2MjUsIDAuMDI1IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMC4wMSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDUyNSwgLTAuMDQ3NSwgLTAuMDM1LCAtMC4wMjg3NSwgLTAuMDE2MjUsIC0wLjAwNjI1LCAwLjAwMjUiLCBcCi0gICAgICAgICAgIi0wLjA2MTI1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAyNSwgLTAuMDE1LCAtMC4wMDYyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRCYhRSZSTiYhU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX0VfRVFfMF9BTl9STl9FUV8xX0FOX1NJX0VRXzAgPT0gMSdiMSI7Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDYyNSwgLTAuMDUxMjUsIC0wLjA0NSwgLTAuMDM4NzUsIC0wLjAzMjUsIC0wLjAyMjUsIC0wLjAyIiwgXAotICAgICAgICAgICItMC4wNjc1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wMzM3NSwgLTAuMDI1IiwgXAotICAgICAgICAgICItMC4wOCwgLTAuMDc1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjA0NjI1LCAtMC4wMzc1IiwgXAotICAgICAgICAgICItMC4wODYyNSwgLTAuMDgxMjUsIC0wLjA3NSwgLTAuMDY4NzUsIC0wLjA2MjUsIC0wLjA1MjUsIC0wLjA0Mzc1IiwgXAotICAgICAgICAgICItMC4wOTI1LCAtMC4wODc1LCAtMC4wODEyNSwgLTAuMDc1LCAtMC4wNjg3NSwgLTAuMDU4NzUsIC0wLjA1IiwgXAotICAgICAgICAgICItMC4xMDI1LCAtMC4wOTc1LCAtMC4wODUsIC0wLjA3ODc1LCAtMC4wNzI1LCAtMC4wNjg3NSwgLTAuMDYiLCBcCi0gICAgICAgICAgIi0wLjExMTI1LCAtMC4xLCAtMC4wOTM3NSwgLTAuMDg3NSwgLTAuMDgxMjUsIC0wLjA3MTI1LCAtMC4wNjg3NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJEJkUmUk4mIVNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMV9BTl9FX0VRXzFfQU5fUk5fRVFfMV9BTl9TSV9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAxODc1LCAtMC4wMDc1LCAtMC4wMDEyNSwgMC4wMTEyNSwgMC4wMTc1LCAwLjAzMzc1LCAwLjA0MjUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAsIDAuMDEyNSwgMC4wMjI1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIDAsIDAuMDEsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIDAuMDAzNzUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNSwgLTAuMDM3NSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDAyNSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDY1LCAtMC4wNiwgLTAuMDQ3NSwgLTAuMDM1LCAtMC4wMjg3NSwgLTAuMDEyNSwgLTAuMDAzNzUiLCBcCi0gICAgICAgICAgIi0wLjA3Mzc1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAyMTI1LCAtMC4wMTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRCYhRSYhUk4mU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX0VfRVFfMF9BTl9STl9FUV8wX0FOX1NJX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDgxMjUsIDAuMDcsIDAuMDU3NSwgMC4wNTEyNSwgMC4wNDUsIDAuMDM1LCAwLjAyNjI1IiwgXAotICAgICAgICAgICIwLjA4NjI1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNTYyNSwgMC4wNSwgMC4wNCwgMC4wMzc1IiwgXAotICAgICAgICAgICIwLjA5ODc1LCAwLjA4NzUsIDAuMDgxMjUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNTI1LCAwLjA1IiwgXAotICAgICAgICAgICIwLjExMTI1LCAwLjEsIDAuMDg3NSwgMC4wODEyNSwgMC4wNzUsIDAuMDY1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICIwLjEyMzc1LCAwLjExMjUsIDAuMSwgMC4wOTM3NSwgMC4wODc1LCAwLjA3NzUsIDAuMDY4NzUiLCBcCi0gICAgICAgICAgIjAuMTQsIDAuMTI4NzUsIDAuMTIyNSwgMC4xMSwgMC4xMDM3NSwgMC4wOTM3NSwgMC4wODUiLCBcCi0gICAgICAgICAgIjAuMTU1LCAwLjE0Mzc1LCAwLjEzMTI1LCAwLjEyNSwgMC4xMTg3NSwgMC4xMDg3NSwgMC4xIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU2MjUsIDAuMDQ1LCAwLjAzMjUsIDAuMDIsIDAuMDEzNzUsIC0wLjAwMjUsIC0wLjAxNzUiLCBcCi0gICAgICAgICAgIjAuMDY3NSwgMC4wNTYyNSwgMC4wNDM3NSwgMC4wMzEyNSwgMC4wMTg3NSwgMC4wMDI1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiMC4wOCwgMC4wNjg3NSwgMC4wNTYyNSwgMC4wNDM3NSwgMC4wMzEyNSwgMC4wMTUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMDg2MjUsIDAuMDgxMjUsIDAuMDYyNSwgMC4wNSwgMC4wNDM3NSwgMC4wMjc1LCAwLjAxODc1IiwgXAotICAgICAgICAgICIwLjA5ODc1LCAwLjA4NzUsIDAuMDc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDQsIDAuMDI1IiwgXAotICAgICAgICAgICIwLjExNSwgMC4xMDM3NSwgMC4wOTEyNSwgMC4wNzg3NSwgMC4wNzI1LCAwLjA1NjI1LCAwLjA0MTI1IiwgXAotICAgICAgICAgICIwLjEzLCAwLjExODc1LCAwLjEwNjI1LCAwLjA5Mzc1LCAwLjA4MTI1LCAwLjA2NSwgMC4wNTYyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUQmIUUmUk4mIVNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9FX0VRXzBfQU5fUk5fRVFfMV9BTl9TSV9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3NSwgMC4wNjM3NSwgMC4wNTEyNSwgMC4wMzg3NSwgMC4wMjYyNSwgMC4wMSwgMC4wMDEyNSIsIFwKLSAgICAgICAgICAiMC4wOCwgMC4wNjg3NSwgMC4wNTYyNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAyMTI1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMDkyNSwgMC4wODEyNSwgMC4wNjg3NSwgMC4wNTYyNSwgMC4wNSwgMC4wMzM3NSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4xMDUsIDAuMDkzNzUsIDAuMDgxMjUsIDAuMDY4NzUsIDAuMDU2MjUsIDAuMDQsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMTExMjUsIDAuMSwgMC4wODc1LCAwLjA3NSwgMC4wNjI1LCAwLjA0NjI1LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIjAuMTIxMjUsIDAuMTEsIDAuMDk3NSwgMC4wODUsIDAuMDcyNSwgMC4wNTYyNSwgMC4wNDc1IiwgXAotICAgICAgICAgICIwLjEzLCAwLjExODc1LCAwLjEwNjI1LCAwLjA5Mzc1LCAwLjA4MTI1LCAwLjA2NSwgMC4wNTYyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiRCZFJlJOJiFTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzFfQU5fRV9FUV8xX0FOX1JOX0VRXzFfQU5fU0lfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTM3NSwgMC4wODI1LCAwLjA3NjI1LCAwLjA2Mzc1LCAwLjA1NzUsIDAuMDQ3NSwgMC4wNDUiLCBcCi0gICAgICAgICAgIjAuMTA1LCAwLjA5Mzc1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNTg3NSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiMC4xMTc1LCAwLjEwNjI1LCAwLjA5Mzc1LCAwLjA4NzUsIDAuMDgxMjUsIDAuMDcxMjUsIDAuMDYyNSIsIFwKLSAgICAgICAgICAiMC4xMjM3NSwgMC4xMTI1LCAwLjEsIDAuMDkzNzUsIDAuMDg3NSwgMC4wNzc1LCAwLjA2ODc1IiwgXAotICAgICAgICAgICIwLjEzLCAwLjExODc1LCAwLjEwNjI1LCAwLjEsIDAuMDkzNzUsIDAuMDgzNzUsIDAuMDgxMjUiLCBcCi0gICAgICAgICAgIjAuMTQsIDAuMTI4NzUsIDAuMTE2MjUsIDAuMTEsIDAuMTAzNzUsIDAuMDkzNzUsIDAuMDg1IiwgXAotICAgICAgICAgICIwLjE0MjUsIDAuMTM3NSwgMC4xMjUsIDAuMTE4NzUsIDAuMTA2MjUsIDAuMTAyNSwgMC4wOTM3NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oU0kpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY3MTQwMjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2Njk3NjU7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjcxNDAyOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjU3MSwgMC4wMDI1NTQsIDAuMDAyNTQ2LCAwLjAwMjU0MSwgMC4wMDI1NDEsIDAuMDAyNTQyLCAwLjAwMjU1NiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNDQ2NywgMC4wMDQ0NTcsIDAuMDA0NDUxLCAwLjAwNDQ0OSwgMC4wMDQ0NSwgMC4wMDQ0NSwgMC4wMDQ0NTkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiU0UiOwotICAgICAgc2RmX2NvbmQgOiAiU0UgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDUsIC0wLjAzODc1LCAtMC4wMzI1LCAtMC4wMjYyNSwgLTAuMDIsIC0wLjAxNjI1LCAtMC4wMDc1IiwgXAotICAgICAgICAgICItMC4wNjEyNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDIxMjUsIC0wLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjA2NzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNDM3NSwgLTAuMDQzNzUsIC0wLjAzMzc1LCAtMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjA4LCAtMC4wNjg3NSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNDYyNSwgLTAuMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDkyNSwgLTAuMDgxMjUsIC0wLjA3NSwgLTAuMDY4NzUsIC0wLjA2MjUsIC0wLjA1MjUsIC0wLjA1IiwgXAotICAgICAgICAgICItMC4xMDI1LCAtMC4wOTc1LCAtMC4wOTEyNSwgLTAuMDg1LCAtMC4wNzg3NSwgLTAuMDY4NzUsIC0wLjA2NjI1IiwgXAotICAgICAgICAgICItMC4xMTc1LCAtMC4xMTI1LCAtMC4xLCAtMC4wOTM3NSwgLTAuMDg3NSwgLTAuMDgzNzUsIC0wLjA3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAxMjUsIC0wLjAwMTI1LCAwLjAxMTI1LCAwLjAxNzUsIDAuMDMsIDAuMDQsIDAuMDQ4NzUiLCBcCi0gICAgICAgICAgIi0wLjAxNzUsIC0wLjAxMjUsIDAsIDAuMDEyNSwgMC4wMTg3NSwgMC4wMjg3NSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAxODc1LCAtMC4wMDYyNSwgMCwgMC4wMTI1LCAwLjAyMjUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLCAwLjAxNjI1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjAzNzUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLjAwMzc1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjA1ODc1LCAtMC4wNDc1LCAtMC4wMzUsIC0wLjAyODc1LCAtMC4wMTYyNSwgLTAuMDA2MjUsIDAuMDAyNSIsIFwKLSAgICAgICAgICAiLTAuMDYxMjUsIC0wLjA1NjI1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAxNSwgLTAuMDA2MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlNFIjsKLSAgICAgIHNkZl9jb25kIDogIlNFID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4NzUsIDAuMDc2MjUsIDAuMDYzNzUsIDAuMDU3NSwgMC4wNTEyNSwgMC4wNDEyNSwgMC4wMzI1IiwgXAotICAgICAgICAgICIwLjA5MjUsIDAuMDgxMjUsIDAuMDc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDQ2MjUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMTA1LCAwLjA5Mzc1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNTg3NSwgMC4wNSIsIFwKLSAgICAgICAgICAiMC4xMTc1LCAwLjEwNjI1LCAwLjA5Mzc1LCAwLjA4NzUsIDAuMDgxMjUsIDAuMDcxMjUsIDAuMDYyNSIsIFwKLSAgICAgICAgICAiMC4xMjM3NSwgMC4xMTI1LCAwLjEwNjI1LCAwLjA5Mzc1LCAwLjA4NzUsIDAuMDc3NSwgMC4wNzUiLCBcCi0gICAgICAgICAgIjAuMTQsIDAuMTI4NzUsIDAuMTIyNSwgMC4xMSwgMC4xMDM3NSwgMC4wOTM3NSwgMC4wOTEyNSIsIFwKLSAgICAgICAgICAiMC4xNTUsIDAuMTQzNzUsIDAuMTMxMjUsIDAuMTI1LCAwLjExODc1LCAwLjEwODc1LCAwLjEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjI1LCAwLjA1MTI1LCAwLjAzODc1LCAwLjAyNjI1LCAwLjAyLCAwLjAwMzc1LCAtMC4wMTEyNSIsIFwKLSAgICAgICAgICAiMC4wNzM3NSwgMC4wNjI1LCAwLjA1LCAwLjAzNzUsIDAuMDI1LCAwLjAwODc1LCAwIiwgXAotICAgICAgICAgICIwLjA4LCAwLjA2ODc1LCAwLjA1NjI1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDIxMjUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMDkyNSwgMC4wODEyNSwgMC4wNjg3NSwgMC4wNTYyNSwgMC4wNDM3NSwgMC4wMjc1LCAwLjAxODc1IiwgXAotICAgICAgICAgICIwLjA5ODc1LCAwLjA4NzUsIDAuMDc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDQsIDAuMDI1IiwgXAotICAgICAgICAgICIwLjExNSwgMC4xMDM3NSwgMC4wOTEyNSwgMC4wNzg3NSwgMC4wNjYyNSwgMC4wNTYyNSwgMC4wNDEyNSIsIFwKLSAgICAgICAgICAiMC4xMjM3NSwgMC4xMTI1LCAwLjEsIDAuMDg3NSwgMC4wODEyNSwgMC4wNjUsIDAuMDUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IFNFREZGVFJYTCAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKFNFREZGVFJYTCkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjUyMTI0NTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBmZiAoTjMwLFFCSU5UKSB7Ci0gICAgbmV4dF9zdGF0ZSA6ICIoKFNFIFNJKSArICghU0UgKCgoISgoIUQpIEUpKSAoISgoIUUpICghTjMwKSkpKSBSTikpKSI7Ci0gICAgY2xvY2tlZF9vbiA6ICJDSyI7Ci0gIH0KLSAgcGluKENLKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2MDQxOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYwNDE7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjA0MDg0OwotICAgIGNsb2NrIDogdHJ1ZTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDI5OTMsIDAuMDAyOTY5LCAwLjAwMjk1OCwgMC4wMDI5NjIsIDAuMDAyOTc1LCAwLjAwMjk5NSwgMC4wMDMwMTYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDU2NDUsIDAuMDA1NjIzLCAwLjAwNTYyMSwgMC4wMDU2MjksIDAuMDA1NjYxLCAwLjAwNTY5OCwgMC4wMDU3MzciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFEJiFFJiFSTiYhU0UmIVNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9FX0VRXzBfQU5fUk5fRVFfMF9BTl9TRV9FUV8wX0FOX1NJX0VRXzAgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4yMDI4NTYsIDAuMjEzMDk3LCAwLjIyNTY5MSwgMC4yMzcxMjgsIDAuMjQ3MjEzLCAwLjI2MTQsIDAuMjcxNDI0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wODkxMDMsIDAuMDk4ODI4LCAwLjExMTA0MywgMC4xMjIwMzksIDAuMTMxMzg2LCAwLjE0Mzk3NCwgMC4xNTM1MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEQpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYyNjQwODsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MjYyMDI7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjI2NDA4OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNjA2NSwgMC4wMDYwMzEsIDAuMDA2MDIyLCAwLjAwNjAyOSwgMC4wMDYwMzUsIDAuMDA2MDU5LCAwLjAwNjA4MiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNjYxNywgMC4wMDY1OTQsIDAuMDA2NTg2LCAwLjAwNjU5MiwgMC4wMDY2LCAwLjAwNjYyNSwgMC4wMDY2NDQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiRSZSTiYhU0UiOwotICAgICAgc2RmX2NvbmQgOiAiRV9FUV8xX0FOX1JOX0VRXzFfQU5fU0VfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4xMzEyNSwgLTAuMTIsIC0wLjExMzc1LCAtMC4xMDc1LCAtMC4xMDc1LCAtMC4wOTc1LCAtMC4wOTUiLCBcCi0gICAgICAgICAgIi0wLjEzNjI1LCAtMC4xMzEyNSwgLTAuMTI1LCAtMC4xMTg3NSwgLTAuMTEyNSwgLTAuMTA4NzUsIC0wLjEiLCBcCi0gICAgICAgICAgIi0wLjE0ODc1LCAtMC4xNDM3NSwgLTAuMTM3NSwgLTAuMTMxMjUsIC0wLjEyNSwgLTAuMTIxMjUsIC0wLjExMjUiLCBcCi0gICAgICAgICAgIi0wLjE1NSwgLTAuMTUsIC0wLjE0Mzc1LCAtMC4xMzc1LCAtMC4xMzEyNSwgLTAuMTI3NSwgLTAuMTE4NzUiLCBcCi0gICAgICAgICAgIi0wLjE2NzUsIC0wLjE1NjI1LCAtMC4xNSwgLTAuMTQzNzUsIC0wLjE0Mzc1LCAtMC4xMzM3NSwgLTAuMTMxMjUiLCBcCi0gICAgICAgICAgIi0wLjE3NzUsIC0wLjE2NjI1LCAtMC4xNiwgLTAuMTUzNzUsIC0wLjE1Mzc1LCAtMC4xNDM3NSwgLTAuMTQxMjUiLCBcCi0gICAgICAgICAgIi0wLjE4LCAtMC4xNzUsIC0wLjE2ODc1LCAtMC4xNjI1LCAtMC4xNTYyNSwgLTAuMTUyNSwgLTAuMTQzNzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wODc1LCAtMC4wNzYyNSwgLTAuMDYzNzUsIC0wLjA1NzUsIC0wLjA0NSwgLTAuMDM1LCAtMC4wMjYyNSIsIFwKLSAgICAgICAgICAiLTAuMDkyNSwgLTAuMDg3NSwgLTAuMDc1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDQ2MjUsIC0wLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjEwNSwgLTAuMDkzNzUsIC0wLjA4NzUsIC0wLjA3NSwgLTAuMDY4NzUsIC0wLjA1ODc1LCAtMC4wNSIsIFwKLSAgICAgICAgICAiLTAuMTExMjUsIC0wLjEwNjI1LCAtMC4wOTM3NSwgLTAuMDgxMjUsIC0wLjA3NSwgLTAuMDY1LCAtMC4wNTYyNSIsIFwKLSAgICAgICAgICAiLTAuMTE3NSwgLTAuMTEyNSwgLTAuMSwgLTAuMDg3NSwgLTAuMDgxMjUsIC0wLjA3MTI1LCAtMC4wNjI1IiwgXAotICAgICAgICAgICItMC4xMjc1LCAtMC4xMjI1LCAtMC4xMSwgLTAuMDk3NSwgLTAuMDkxMjUsIC0wLjA4MTI1LCAtMC4wNzI1IiwgXAotICAgICAgICAgICItMC4xMzYyNSwgLTAuMTI1LCAtMC4xMTI1LCAtMC4xMDYyNSwgLTAuMSwgLTAuMDgzNzUsIC0wLjA3NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiRSZSTiYhU0UiOwotICAgICAgc2RmX2NvbmQgOiAiRV9FUV8xX0FOX1JOX0VRXzFfQU5fU0VfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNzUsIDAuMTYzNzUsIDAuMTU3NSwgMC4xNTEyNSwgMC4xNDUsIDAuMTM1LCAwLjEzMjUiLCBcCi0gICAgICAgICAgIjAuMTg2MjUsIDAuMTc1LCAwLjE2MjUsIDAuMTU2MjUsIDAuMTUsIDAuMTQ2MjUsIDAuMTM3NSIsIFwKLSAgICAgICAgICAiMC4xOTI1LCAwLjE4NzUsIDAuMTc1LCAwLjE2ODc1LCAwLjE2MjUsIDAuMTU4NzUsIDAuMTUiLCBcCi0gICAgICAgICAgIjAuMjA1LCAwLjE5Mzc1LCAwLjE4MTI1LCAwLjE3NSwgMC4xNjg3NSwgMC4xNjUsIDAuMTU2MjUiLCBcCi0gICAgICAgICAgIjAuMjExMjUsIDAuMiwgMC4xOTM3NSwgMC4xODc1LCAwLjE4MTI1LCAwLjE3MTI1LCAwLjE2ODc1IiwgXAotICAgICAgICAgICIwLjIyMTI1LCAwLjIxLCAwLjIwMzc1LCAwLjE5NzUsIDAuMTkxMjUsIDAuMTgxMjUsIDAuMTcyNSIsIFwKLSAgICAgICAgICAiMC4yMywgMC4yMTg3NSwgMC4yMDYyNSwgMC4yLCAwLjE5Mzc1LCAwLjE5LCAwLjE4MTI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTMxMjUsIDAuMTIsIDAuMTA3NSwgMC4wOTUsIDAuMDgyNSwgMC4wNzI1LCAwLjA2Mzc1IiwgXAotICAgICAgICAgICIwLjEzNjI1LCAwLjEyNSwgMC4xMTI1LCAwLjEwNjI1LCAwLjA5Mzc1LCAwLjA4Mzc1LCAwLjA2ODc1IiwgXAotICAgICAgICAgICIwLjE0ODc1LCAwLjEzNzUsIDAuMTI1LCAwLjExMjUsIDAuMTA2MjUsIDAuMDksIDAuMDgxMjUiLCBcCi0gICAgICAgICAgIjAuMTU1LCAwLjE0Mzc1LCAwLjEzMTI1LCAwLjExODc1LCAwLjExMjUsIDAuMDk2MjUsIDAuMDg3NSIsIFwKLSAgICAgICAgICAiMC4xNjEyNSwgMC4xNSwgMC4xMzc1LCAwLjEzMTI1LCAwLjExODc1LCAwLjEwMjUsIDAuMDkzNzUiLCBcCi0gICAgICAgICAgIjAuMTcxMjUsIDAuMTYsIDAuMTQ3NSwgMC4xMzUsIDAuMTI4NzUsIDAuMTEyNSwgMC4xMDM3NSIsIFwKLSAgICAgICAgICAiMC4xOCwgMC4xNjg3NSwgMC4xNTYyNSwgMC4xNDM3NSwgMC4xMzc1LCAwLjEyMTI1LCAwLjExMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEUpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTIwNTc7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxMjA1NzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDEyMDQ5OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNjU0MSwgMC4wMDY1MTgsIDAuMDA2NTE1LCAwLjAwNjUyMSwgMC4wMDY1MzMsIDAuMDA2NTU4LCAwLjAwNjU4MiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNzQxNiwgMC4wMDczODIsIDAuMDA3Mzg2LCAwLjAwNzM4NCwgMC4wMDczOTQsIDAuMDA3NDM0LCAwLjAwNzQ2OSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJSTiYhU0UiOwotICAgICAgc2RmX2NvbmQgOiAiUk5fRVFfMV9BTl9TRV9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjEsIC0wLjA4ODc1LCAtMC4wNzYyNSwgLTAuMDcsIC0wLjA1NzUsIC0wLjA0NzUsIC0wLjAzODc1IiwgXAotICAgICAgICAgICItMC4xMTEyNSwgLTAuMSwgLTAuMDg3NSwgLTAuMDc1LCAtMC4wNjg3NSwgLTAuMDUyNSwgLTAuMDQzNzUiLCBcCi0gICAgICAgICAgIi0wLjExNzUsIC0wLjExMjUsIC0wLjEsIC0wLjA4NzUsIC0wLjA3NSwgLTAuMDY1LCAtMC4wNTYyNSIsIFwKLSAgICAgICAgICAiLTAuMTMsIC0wLjExODc1LCAtMC4xMDYyNSwgLTAuMDkzNzUsIC0wLjA4NzUsIC0wLjA3NzUsIC0wLjA2MjUiLCBcCi0gICAgICAgICAgIi0wLjE0MjUsIC0wLjEzMTI1LCAtMC4xMTg3NSwgLTAuMTA2MjUsIC0wLjEsIC0wLjA4Mzc1LCAtMC4wNzUiLCBcCi0gICAgICAgICAgIi0wLjE1MjUsIC0wLjE0MTI1LCAtMC4xMjg3NSwgLTAuMTIyNSwgLTAuMTEsIC0wLjEsIC0wLjA5MTI1IiwgXAotICAgICAgICAgICItMC4xNjEyNSwgLTAuMTU2MjUsIC0wLjE0Mzc1LCAtMC4xMzEyNSwgLTAuMTE4NzUsIC0wLjEwODc1LCAtMC4xIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMSwgLTAuMDg4NzUsIC0wLjA3NjI1LCAtMC4wNywgLTAuMDU3NSwgLTAuMDQ3NSwgLTAuMDM4NzUiLCBcCi0gICAgICAgICAgIi0wLjEwNSwgLTAuMSwgLTAuMDg3NSwgLTAuMDc1LCAtMC4wNjg3NSwgLTAuMDU4NzUsIC0wLjA1IiwgXAotICAgICAgICAgICItMC4xMTc1LCAtMC4xMDYyNSwgLTAuMSwgLTAuMDg3NSwgLTAuMDgxMjUsIC0wLjA3MTI1LCAtMC4wNjI1IiwgXAotICAgICAgICAgICItMC4xMjM3NSwgLTAuMTE4NzUsIC0wLjEwNjI1LCAtMC4wOTM3NSwgLTAuMDg3NSwgLTAuMDc3NSwgLTAuMDY4NzUiLCBcCi0gICAgICAgICAgIi0wLjEzLCAtMC4xMjUsIC0wLjExMjUsIC0wLjEsIC0wLjA5Mzc1LCAtMC4wODM3NSwgLTAuMDc1IiwgXAotICAgICAgICAgICItMC4xNCwgLTAuMTI4NzUsIC0wLjEyMjUsIC0wLjExLCAtMC4xMDM3NSwgLTAuMDkzNzUsIC0wLjA4NSIsIFwKLSAgICAgICAgICAiLTAuMTQ4NzUsIC0wLjEzNzUsIC0wLjEyNSwgLTAuMTE4NzUsIC0wLjExMjUsIC0wLjA5NjI1LCAtMC4wODc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJSTiYhU0UiOwotICAgICAgc2RmX2NvbmQgOiAiUk5fRVFfMV9BTl9TRV9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE5Mzc1LCAwLjE4MjUsIDAuMTc2MjUsIDAuMTcsIDAuMTYzNzUsIDAuMTUzNzUsIDAuMTUxMjUiLCBcCi0gICAgICAgICAgIjAuMjA1LCAwLjE5Mzc1LCAwLjE4MTI1LCAwLjE3NSwgMC4xNzUsIDAuMTY1LCAwLjE1NjI1IiwgXAotICAgICAgICAgICIwLjIxNzUsIDAuMjA2MjUsIDAuMTkzNzUsIDAuMTg3NSwgMC4xODEyNSwgMC4xNzc1LCAwLjE2ODc1IiwgXAotICAgICAgICAgICIwLjIyMzc1LCAwLjIxMjUsIDAuMjA2MjUsIDAuMiwgMC4xOTM3NSwgMC4xODM3NSwgMC4xODEyNSIsIFwKLSAgICAgICAgICAiMC4yMywgMC4yMTg3NSwgMC4yMTI1LCAwLjIwNjI1LCAwLjIsIDAuMTksIDAuMTg3NSIsIFwKLSAgICAgICAgICAiMC4yNCwgMC4yMjg3NSwgMC4yMjI1LCAwLjIxNjI1LCAwLjIxLCAwLjIsIDAuMTk3NSIsIFwKLSAgICAgICAgICAiMC4yNDg3NSwgMC4yMzc1LCAwLjIzMTI1LCAwLjIyNSwgMC4yMTg3NSwgMC4yMDg3NSwgMC4yMDYyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEzMTI1LCAwLjEyNjI1LCAwLjEyLCAwLjExMzc1LCAwLjEwNzUsIDAuMTAzNzUsIDAuMDk1IiwgXAotICAgICAgICAgICIwLjE0MjUsIDAuMTM3NSwgMC4xMzEyNSwgMC4xMjUsIDAuMTE4NzUsIDAuMTA4NzUsIDAuMTA2MjUiLCBcCi0gICAgICAgICAgIjAuMTU1LCAwLjE0Mzc1LCAwLjEzNzUsIDAuMTMxMjUsIDAuMTMxMjUsIDAuMTIxMjUsIDAuMTE4NzUiLCBcCi0gICAgICAgICAgIjAuMTY3NSwgMC4xNTYyNSwgMC4xNSwgMC4xNDM3NSwgMC4xMzc1LCAwLjEzMzc1LCAwLjEyNSIsIFwKLSAgICAgICAgICAiMC4xNzM3NSwgMC4xNjg3NSwgMC4xNjI1LCAwLjE1NjI1LCAwLjE1LCAwLjE0NjI1LCAwLjEzNzUiLCBcCi0gICAgICAgICAgIjAuMTksIDAuMTg1LCAwLjE3ODc1LCAwLjE3MjUsIDAuMTY2MjUsIDAuMTYyNSwgMC4xNTM3NSIsIFwKLSAgICAgICAgICAiMC4yMDUsIDAuMiwgMC4xODc1LCAwLjE4NzUsIDAuMTgxMjUsIDAuMTcxMjUsIDAuMTY4NzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFEpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4xNDc0MjM7Ci0gICAgZnVuY3Rpb24gOiAiTjMwIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBub25fdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJpc2luZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xODExMTgsIDAuMTk1MzM0LCAwLjMyMjY3NSwgMC41MzQ0NiwgMC43NDY3NCwgMS4yNDE5MiwgMS41MjQ4IiwgXAotICAgICAgICAgICIwLjE5MTI1NiwgMC4yMDU0NzEsIDAuMzMyNzg4LCAwLjU0NDYzOSwgMC43NTY4NjksIDEuMjUxNjgsIDEuNTM0NjUiLCBcCi0gICAgICAgICAgIjAuMjAzNzM5LCAwLjIxNzkxOCwgMC4zNDUyOTcsIDAuNTU3MTM0LCAwLjc2OTM4MywgMS4yNjQyNCwgMS41NDcxNCIsIFwKLSAgICAgICAgICAiMC4yMTUxMzQsIDAuMjI5MzUyLCAwLjM1NjY5MywgMC41Njg1MDksIDAuNzgwNzU4LCAxLjI3NTkzLCAxLjU1ODgxIiwgXAotICAgICAgICAgICIwLjIyNDk3NCwgMC4yMzkxNDgsIDAuMzY2NDg2LCAwLjU3ODMzNiwgMC43OTA1NTQsIDEuMjg1MzcsIDEuNTY4NjEiLCBcCi0gICAgICAgICAgIjAuMjM4NDg0LCAwLjI1MjcwNiwgMC4zODAwNDYsIDAuNTkxODY4LCAwLjgwNDEyOCwgMS4yOTg5MiwgMS41ODIxNyIsIFwKLSAgICAgICAgICAiMC4yNDg4NDksIDAuMjYzMDU5LCAwLjM5MDQxMiwgMC42MDIyMzcsIDAuODE0NDkyLCAxLjMwOTI5LCAxLjU5MjUzIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE1NjY2OSwgMC4xODUwNjgsIDAuNDQ0OTQxLCAwLjg4MDc0OCwgMS4zMTY3OCwgMi4zMzM4NywgMi45MTUzNSIsIFwKLSAgICAgICAgICAiMC4xNTY2NjcsIDAuMTg1MDgzLCAwLjQ0NDYzNiwgMC44ODA3NTcsIDEuMzE2ODgsIDIuMzMzODgsIDIuOTE1NjIiLCBcCi0gICAgICAgICAgIjAuMTU2NjUzLCAwLjE4NTA1MSwgMC40NDQ5MDksIDAuODgwODAzLCAxLjMxNjgyLCAyLjMzMzk4LCAyLjkxNTQ1IiwgXAotICAgICAgICAgICIwLjE1NjY4LCAwLjE4NTA2LCAwLjQ0NDk3OSwgMC44ODA3NDgsIDEuMzE2NzIsIDIuMzM0MTIsIDIuOTE1MzciLCBcCi0gICAgICAgICAgIjAuMTU2NjU3LCAwLjE4NTA2LCAwLjQ0NDkxNiwgMC44ODA4NjMsIDEuMzE2NzIsIDIuMzMzOTEsIDIuOTE1MzYiLCBcCi0gICAgICAgICAgIjAuMTU2NjM3LCAwLjE4NTA2NCwgMC40NDQ5MTUsIDAuODgwNzE3LCAxLjMxNjY3LCAyLjMzNCwgMi45MTU2MyIsIFwKLSAgICAgICAgICAiMC4xNTY2NDYsIDAuMTg1MDU2LCAwLjQ0NDg2NywgMC44ODA3MjgsIDEuMzE2NzYsIDIuMzM0MDcsIDIuOTE1NjciKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTk1MzgyLCAwLjIwOTM1NCwgMC4zMzQwNzksIDAuNTQxOTE1LCAwLjc0OTMsIDEuMjMzOTUsIDEuNTEwNiIsIFwKLSAgICAgICAgICAiMC4yMDU2NDMsIDAuMjE5NTU5LCAwLjM0NDM2NCwgMC41NTIwMSwgMC43NTk3MjUsIDEuMjQ0MTksIDEuNTIwNzgiLCBcCi0gICAgICAgICAgIjAuMjE4MjI4LCAwLjIzMjE1NSwgMC4zNTY5MTksIDAuNTY0NzU5LCAwLjc3MjM2OCwgMS4yNTY3OCwgMS41MzM0NiIsIFwKLSAgICAgICAgICAiMC4yMjk2NDksIDAuMjQzNTc5LCAwLjM2ODM4NiwgMC41NzYxNzIsIDAuNzgzNTQxLCAxLjI2ODEyLCAxLjU0NDc5IiwgXAotICAgICAgICAgICIwLjIzOTc1OSwgMC4yNTM2NzUsIDAuMzc4NDc5LCAwLjU4NjEyOCwgMC43OTM4NDUsIDEuMjc4MywgMS41NTQ5IiwgXAotICAgICAgICAgICIwLjI1MzkxNSwgMC4yNjc4NjYsIDAuMzkyNjc2LCAwLjYwMDMxOCwgMC44MDc5NjgsIDEuMjkyNTEsIDEuNTY5MSIsIFwKLSAgICAgICAgICAiMC4yNjM5ODIsIDAuMjc3OTEsIDAuNDAyNzI2LCAwLjYxMDUxLCAwLjgxNzk4NywgMS4zMDI1NSwgMS41NzkxNSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNTEwMTIsIDAuMTc4MTEyLCAwLjQyNTg1NSwgMC44NDI3OTUsIDEuMjU5OTksIDIuMjM0MSwgMi43ODk5OSIsIFwKLSAgICAgICAgICAiMC4xNTEwMDgsIDAuMTc3OTAyLCAwLjQyNjA4NCwgMC44NDI3NTQsIDEuMjYwMTUsIDIuMjM0MDgsIDIuNzg5ODUiLCBcCi0gICAgICAgICAgIjAuMTUwOTMyLCAwLjE3NzkwOCwgMC40MjU4NDgsIDAuODQyODc5LCAxLjI2MDE1LCAyLjIzNDA2LCAyLjc5MDAzIiwgXAotICAgICAgICAgICIwLjE1MDk1OCwgMC4xNzgwNzYsIDAuNDI2MDk2LCAwLjg0MTc0NywgMS4yNTk4NCwgMi4yMzQxOCwgMi43ODk3MiIsIFwKLSAgICAgICAgICAiMC4xNTEwMDUsIDAuMTc3OTAyLCAwLjQyNjA4NCwgMC44NDI3NSwgMS4yNjAxNSwgMi4yMzQwNywgMi43ODk4NSIsIFwKLSAgICAgICAgICAiMC4xNTA5MzQsIDAuMTc3OTAxLCAwLjQyNjA4OSwgMC44NDI3ODgsIDEuMjYwMTQsIDIuMjM0MTMsIDIuNzg5ODIiLCBcCi0gICAgICAgICAgIjAuMTUxMDMsIDAuMTc3ODg0LCAwLjQyNjEwNCwgMC44NDI5MSwgMS4yNjAxMywgMi4yMzQxNCwgMi43OTAwMyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDUzODEsIDAuMDA1MzgyLCAwLjAwNTM4NywgMC4wMDUzODgsIDAuMDA1Mzg5LCAwLjAwNTM4OSwgMC4wMDUzODkiLCBcCi0gICAgICAgICAgIjAuMDA1MzY0LCAwLjAwNTM2NiwgMC4wMDUzNywgMC4wMDUzNzEsIDAuMDA1MzcyLCAwLjAwNTM3MywgMC4wMDUzNzIiLCBcCi0gICAgICAgICAgIjAuMDA1MzU4LCAwLjAwNTM1OSwgMC4wMDUzNjMsIDAuMDA1MzY1LCAwLjAwNTM2NSwgMC4wMDUzNjYsIDAuMDA1MzY2IiwgXAotICAgICAgICAgICIwLjAwNTM2MSwgMC4wMDUzNjMsIDAuMDA1MzY3LCAwLjAwNTM2OCwgMC4wMDUzNjksIDAuMDA1MzY5LCAwLjAwNTM3IiwgXAotICAgICAgICAgICIwLjAwNTM2OCwgMC4wMDUzNjksIDAuMDA1MzczLCAwLjAwNTM3NSwgMC4wMDUzNzUsIDAuMDA1Mzc1LCAwLjAwNTM3NyIsIFwKLSAgICAgICAgICAiMC4wMDUzOCwgMC4wMDUzODEsIDAuMDA1Mzg1LCAwLjAwNTM4NywgMC4wMDUzODcsIDAuMDA1Mzg4LCAwLjAwNTM4OCIsIFwKLSAgICAgICAgICAiMC4wMDUzOTIsIDAuMDA1MzkzLCAwLjAwNTM5OCwgMC4wMDUzOTksIDAuMDA1NCwgMC4wMDU0LCAwLjAwNTQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDUzNzIsIDAuMDA1MzczLCAwLjAwNTM3NywgMC4wMDUzNzksIDAuMDA1Mzc5LCAwLjAwNTM4LCAwLjAwNTM4IiwgXAotICAgICAgICAgICIwLjAwNTM1NywgMC4wMDUzNTksIDAuMDA1MzYzLCAwLjAwNTM2NSwgMC4wMDUzNjUsIDAuMDA1MzY2LCAwLjAwNTM2NiIsIFwKLSAgICAgICAgICAiMC4wMDUzNiwgMC4wMDUzNjEsIDAuMDA1MzY2LCAwLjAwNTM2NywgMC4wMDUzNjgsIDAuMDA1MzY4LCAwLjAwNTM2OCIsIFwKLSAgICAgICAgICAiMC4wMDUzNjksIDAuMDA1MzcsIDAuMDA1Mzc1LCAwLjAwNTM3NiwgMC4wMDUzNzcsIDAuMDA1Mzc3LCAwLjAwNTM3OCIsIFwKLSAgICAgICAgICAiMC4wMDUzODQsIDAuMDA1Mzg2LCAwLjAwNTM5LCAwLjAwNTM5MiwgMC4wMDUzOTIsIDAuMDA1MzkzLCAwLjAwNTM5MyIsIFwKLSAgICAgICAgICAiMC4wMDUzOTMsIDAuMDA1Mzk1LCAwLjAwNTM5OSwgMC4wMDU0MDEsIDAuMDA1NDAyLCAwLjAwNTQwMiwgMC4wMDU0MDIiLCBcCi0gICAgICAgICAgIjAuMDA1NDIzLCAwLjAwNTQyNCwgMC4wMDU0MjksIDAuMDA1NDMxLCAwLjAwNTQzMSwgMC4wMDU0MzIsIDAuMDA1NDMyIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihRTikgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjE1MTY1MzsKLSAgICBmdW5jdGlvbiA6ICJRQklOVCI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3NlbnNlIDogbm9uX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiByaXNpbmdfZWRnZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjAzNzM4LCAwLjIxNzg1OCwgMC4zNDQ5MzMsIDAuNTU2NzYzLCAwLjc2ODUwMiwgMS4yNjI3MSwgMS41NDUxOCIsIFwKLSAgICAgICAgICAiMC4yMTM5NzYsIDAuMjI4MDg4LCAwLjM1NTE2NCwgMC41NjcwMDIsIDAuNzc4NzQyLCAxLjI3MjkyLCAxLjU1NTM3IiwgXAotICAgICAgICAgICIwLjIyNjU4NCwgMC4yNDA3MTMsIDAuMzY3Nzc5LCAwLjU3OTYzNywgMC43OTEzNTMsIDEuMjg1NTUsIDEuNTY4MDQiLCBcCi0gICAgICAgICAgIjAuMjM4MDAxLCAwLjI1MjExNywgMC4zNzkxOTYsIDAuNTkxMTA0LCAwLjgwMjc4NSwgMS4yOTY5MiwgMS41NzkzNyIsIFwKLSAgICAgICAgICAiMC4yNDgwOTEsIDAuMjYyMjA0LCAwLjM4OTI4LCAwLjYwMTEyMywgMC44MTI4NTcsIDEuMzA3MDQsIDEuNTg5NDkiLCBcCi0gICAgICAgICAgIjAuMjYyMjksIDAuMjc2Mzk2LCAwLjQwMzQ3MiwgMC42MTUzODUsIDAuODI3MDU4LCAxLjMyMTE2LCAxLjYwMzY2IiwgXAotICAgICAgICAgICIwLjI3MjMyOCwgMC4yODY0MzcsIDAuNDEzNTEzLCAwLjYyNTQyMSwgMC44MzcxMDMsIDEuMzMxMjMsIDEuNjEzNjkiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTUyNTE0LCAwLjE4MTM0NywgMC40NDI5MTIsIDAuODc4MDMxLCAxLjMxNDAxLCAyLjMzMDMsIDIuOTExMjEiLCBcCi0gICAgICAgICAgIjAuMTUyNTEsIDAuMTgxMzU5LCAwLjQ0MjkwMiwgMC44NzgyNDgsIDEuMzEzOTcsIDIuMzMwMjksIDIuOTExMTMiLCBcCi0gICAgICAgICAgIjAuMTUyNTE0LCAwLjE4MTU3LCAwLjQ0MjkxMSwgMC44Nzg2MDksIDEuMzEzOTcsIDIuMzMwMywgMi45MTEyNSIsIFwKLSAgICAgICAgICAiMC4xNTI1MTEsIDAuMTgxMzQzLCAwLjQ0MjkwNSwgMC44NzcxNDcsIDEuMzEzOTksIDIuMzMwNTYsIDIuOTExMDciLCBcCi0gICAgICAgICAgIjAuMTUyNTExLCAwLjE4MTM1MywgMC40NDI5MDIsIDAuODc4MjM4LCAxLjMxMzk2LCAyLjMzMDA3LCAyLjkxMTEzIiwgXAotICAgICAgICAgICIwLjE1MjUwMiwgMC4xODEzNDMsIDAuNDQyOTAzLCAwLjg3ODA5NywgMS4zMTM5NywgMi4zMzAxLCAyLjkxMTExIiwgXAotICAgICAgICAgICIwLjE1MjUxNiwgMC4xODEzNjksIDAuNDQyOTEsIDAuODc4NDE1LCAxLjMxMzk4LCAyLjMzMDI3LCAyLjkxMTI1Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE4ODE3OSwgMC4yMDIwMDgsIDAuMzI2NTAyLCAwLjUzMzkwNiwgMC43NDEyNzIsIDEuMjI1MTgsIDEuNTAxNzUiLCBcCi0gICAgICAgICAgIjAuMTk4MzE1LCAwLjIxMjE0NCwgMC4zMzY1OTYsIDAuNTQ0MDM4LCAwLjc1MTQzNiwgMS4yMzUzMSwgMS41MTE5OCIsIFwKLSAgICAgICAgICAiMC4yMTA4MDEsIDAuMjI0NjM0LCAwLjM0OTA4OCwgMC41NTY1MTUsIDAuNzYzODcsIDEuMjQ3ODMsIDEuNTI0NTQiLCBcCi0gICAgICAgICAgIjAuMjIyMTkxLCAwLjIzNjAyMSwgMC4zNjA1MDMsIDAuNTY3OTI0LCAwLjc3NTMyMSwgMS4yNTkyLCAxLjUzNTc3IiwgXAotICAgICAgICAgICIwLjIzMTk5LCAwLjI0NTgxLCAwLjM3MDI2OSwgMC41Nzc3MTQsIDAuNzg1MDg5LCAxLjI2OSwgMS41NDU1NiIsIFwKLSAgICAgICAgICAiMC4yNDU1NTMsIDAuMjU5MzgyLCAwLjM4Mzg0MSwgMC41OTEyNjgsIDAuNzk4NjMsIDEuMjgyNTksIDEuNTU5MjEiLCBcCi0gICAgICAgICAgIjAuMjU1ODk3LCAwLjI2OTcyLCAwLjM5NDE4LCAwLjYwMTYwMywgMC44MDg5NzIsIDEuMjkyOTIsIDEuNTY5NDYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTQ1ODI4LCAwLjE3MzQ0OSwgMC40MjM2NjUsIDAuODQwNDIyLCAxLjI1NzEyLCAyLjIyOTQyLCAyLjc4NTA3IiwgXAotICAgICAgICAgICIwLjE0NTgyNiwgMC4xNzM0NDMsIDAuNDIzMjk1LCAwLjg0MDM5NCwgMS4yNTcyNSwgMi4yMjkyLCAyLjc4NTI4IiwgXAotICAgICAgICAgICIwLjE0NTgyNSwgMC4xNzM1NTUsIDAuNDIzNTU3LCAwLjg0MDM0OSwgMS4yNTcxNywgMi4yMjkyNywgMi43ODUyMyIsIFwKLSAgICAgICAgICAiMC4xNDU4MjYsIDAuMTczNDQxLCAwLjQyMzY3NywgMC44NDAzOTgsIDEuMjU2OTUsIDIuMjI5MzgsIDIuNzg1MDMiLCBcCi0gICAgICAgICAgIjAuMTQ1ODIzLCAwLjE3MzQ0LCAwLjQyMzU2MSwgMC44NDA0MDEsIDEuMjU2OTcsIDIuMjI5MjEsIDIuNzg1MDYiLCBcCi0gICAgICAgICAgIjAuMTQ1NzY0LCAwLjE3MzQ0OCwgMC40MjM1NiwgMC44NDAzMTQsIDEuMjU2OSwgMi4yMjkyOCwgMi43ODU0NiIsIFwKLSAgICAgICAgICAiMC4xNDU4MzIsIDAuMTczNTU3LCAwLjQyMzU1NCwgMC44NDAzMjIsIDEuMjU3MDIsIDIuMjI5MzYsIDIuNzg1NDYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1MzcyLCAwLjAwNTM3MywgMC4wMDUzNzcsIDAuMDA1Mzc5LCAwLjAwNTM3OSwgMC4wMDUzOCwgMC4wMDUzOCIsIFwKLSAgICAgICAgICAiMC4wMDUzNTcsIDAuMDA1MzU5LCAwLjAwNTM2MywgMC4wMDUzNjUsIDAuMDA1MzY1LCAwLjAwNTM2NiwgMC4wMDUzNjYiLCBcCi0gICAgICAgICAgIjAuMDA1MzYsIDAuMDA1MzYxLCAwLjAwNTM2NiwgMC4wMDUzNjcsIDAuMDA1MzY4LCAwLjAwNTM2OCwgMC4wMDUzNjgiLCBcCi0gICAgICAgICAgIjAuMDA1MzY5LCAwLjAwNTM3LCAwLjAwNTM3NSwgMC4wMDUzNzYsIDAuMDA1Mzc3LCAwLjAwNTM3NywgMC4wMDUzNzgiLCBcCi0gICAgICAgICAgIjAuMDA1Mzg0LCAwLjAwNTM4NiwgMC4wMDUzOSwgMC4wMDUzOTIsIDAuMDA1MzkyLCAwLjAwNTM5MywgMC4wMDUzOTMiLCBcCi0gICAgICAgICAgIjAuMDA1MzkzLCAwLjAwNTM5NSwgMC4wMDUzOTksIDAuMDA1NDAxLCAwLjAwNTQwMiwgMC4wMDU0MDIsIDAuMDA1NDAyIiwgXAotICAgICAgICAgICIwLjAwNTQyMywgMC4wMDU0MjQsIDAuMDA1NDI5LCAwLjAwNTQzMSwgMC4wMDU0MzEsIDAuMDA1NDMyLCAwLjAwNTQzMiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNTM4MSwgMC4wMDUzODIsIDAuMDA1Mzg3LCAwLjAwNTM4OCwgMC4wMDUzODksIDAuMDA1Mzg5LCAwLjAwNTM4OSIsIFwKLSAgICAgICAgICAiMC4wMDUzNjQsIDAuMDA1MzY2LCAwLjAwNTM3LCAwLjAwNTM3MSwgMC4wMDUzNzIsIDAuMDA1MzczLCAwLjAwNTM3MiIsIFwKLSAgICAgICAgICAiMC4wMDUzNTgsIDAuMDA1MzU5LCAwLjAwNTM2MywgMC4wMDUzNjUsIDAuMDA1MzY1LCAwLjAwNTM2NiwgMC4wMDUzNjYiLCBcCi0gICAgICAgICAgIjAuMDA1MzYxLCAwLjAwNTM2MywgMC4wMDUzNjcsIDAuMDA1MzY4LCAwLjAwNTM2OSwgMC4wMDUzNjksIDAuMDA1MzciLCBcCi0gICAgICAgICAgIjAuMDA1MzY4LCAwLjAwNTM2OSwgMC4wMDUzNzMsIDAuMDA1Mzc1LCAwLjAwNTM3NSwgMC4wMDUzNzUsIDAuMDA1Mzc3IiwgXAotICAgICAgICAgICIwLjAwNTM4LCAwLjAwNTM4MSwgMC4wMDUzODUsIDAuMDA1Mzg3LCAwLjAwNTM4NywgMC4wMDUzODgsIDAuMDA1Mzg4IiwgXAotICAgICAgICAgICIwLjAwNTM5MiwgMC4wMDUzOTMsIDAuMDA1Mzk4LCAwLjAwNTM5OSwgMC4wMDU0LCAwLjAwNTQsIDAuMDA1NCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUk4pICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYwMDQ5MjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MDAyNTc7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjAwNDkyOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNzE4NCwgMC4wMDcxNTYsIDAuMDA3MTUxLCAwLjAwNzE2LCAwLjAwNzE2OSwgMC4wMDcxOTQsIDAuMDA3MjE4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA3NDc2LCAwLjAwNzQ1MywgMC4wMDc0NDgsIDAuMDA3NDUyLCAwLjAwNzQ2MywgMC4wMDc0ODYsIDAuMDA3NTA2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJTRSA9PSAxJ2IwIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4xNjg3NSwgLTAuMTYzNzUsIC0wLjE1NzUsIC0wLjE1MTI1LCAtMC4xNDUsIC0wLjE0MTI1LCAtMC4xMzI1IiwgXAotICAgICAgICAgICItMC4xOCwgLTAuMTc1LCAtMC4xNjg3NSwgLTAuMTYyNSwgLTAuMTU2MjUsIC0wLjE1MjUsIC0wLjE0Mzc1IiwgXAotICAgICAgICAgICItMC4xOTI1LCAtMC4xODc1LCAtMC4xODEyNSwgLTAuMTc1LCAtMC4xNjg3NSwgLTAuMTU4NzUsIC0wLjE1NjI1IiwgXAotICAgICAgICAgICItMC4xOTg3NSwgLTAuMTkzNzUsIC0wLjE4NzUsIC0wLjE4MTI1LCAtMC4xNzUsIC0wLjE3MTI1LCAtMC4xNjI1IiwgXAotICAgICAgICAgICItMC4yMTEyNSwgLTAuMiwgLTAuMTkzNzUsIC0wLjE4NzUsIC0wLjE4NzUsIC0wLjE3NzUsIC0wLjE3NSIsIFwKLSAgICAgICAgICAiLTAuMjIxMjUsIC0wLjIxLCAtMC4yMDM3NSwgLTAuMTk3NSwgLTAuMTk3NSwgLTAuMTg3NSwgLTAuMTg1IiwgXAotICAgICAgICAgICItMC4yMjM3NSwgLTAuMjE4NzUsIC0wLjIxMjUsIC0wLjIwNjI1LCAtMC4yLCAtMC4xOTYyNSwgLTAuMTg3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjA3NSwgLTAuMDYzNzUsIC0wLjA1NzUsIC0wLjA0NSwgLTAuMDM4NzUsIC0wLjAyODc1LCAtMC4wMiIsIFwKLSAgICAgICAgICAiLTAuMDg2MjUsIC0wLjA3NSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wMzM3NSwgLTAuMDI1IiwgXAotICAgICAgICAgICItMC4wOTg3NSwgLTAuMDg3NSwgLTAuMDc1LCAtMC4wNjg3NSwgLTAuMDU2MjUsIC0wLjA0NjI1LCAtMC4wMzc1IiwgXAotICAgICAgICAgICItMC4xMDUsIC0wLjA5Mzc1LCAtMC4wODEyNSwgLTAuMDc1LCAtMC4wNjg3NSwgLTAuMDUyNSwgLTAuMDQzNzUiLCBcCi0gICAgICAgICAgIi0wLjExMTI1LCAtMC4xLCAtMC4wODc1LCAtMC4wODEyNSwgLTAuMDc1LCAtMC4wNTg3NSwgLTAuMDUiLCBcCi0gICAgICAgICAgIi0wLjEyMTI1LCAtMC4xMSwgLTAuMDk3NSwgLTAuMDkxMjUsIC0wLjA4NSwgLTAuMDY4NzUsIC0wLjA2IiwgXAotICAgICAgICAgICItMC4xMywgLTAuMTE4NzUsIC0wLjEwNjI1LCAtMC4xLCAtMC4wODc1LCAtMC4wNzc1LCAtMC4wNjg3NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIVNFIjsKLSAgICAgIHNkZl9jb25kIDogIlNFID09IDEnYjAiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIsIDAuMTk1LCAwLjE4MjUsIDAuMTc2MjUsIDAuMTcsIDAuMTY2MjUsIDAuMTU3NSIsIFwKLSAgICAgICAgICAiMC4yMTEyNSwgMC4yMDYyNSwgMC4xOTM3NSwgMC4xODc1LCAwLjE4MTI1LCAwLjE3MTI1LCAwLjE2ODc1IiwgXAotICAgICAgICAgICIwLjIyMzc1LCAwLjIxMjUsIDAuMjA2MjUsIDAuMiwgMC4xOTM3NSwgMC4xODM3NSwgMC4xODEyNSIsIFwKLSAgICAgICAgICAiMC4yMywgMC4yMjUsIDAuMjEyNSwgMC4yMDYyNSwgMC4yLCAwLjE5NjI1LCAwLjE4NzUiLCBcCi0gICAgICAgICAgIjAuMjQyNSwgMC4yMzEyNSwgMC4yMTg3NSwgMC4yMTI1LCAwLjIwNjI1LCAwLjIwMjUsIDAuMTkzNzUiLCBcCi0gICAgICAgICAgIjAuMjUyNSwgMC4yNDEyNSwgMC4yMjg3NSwgMC4yMjI1LCAwLjIxNjI1LCAwLjIxMjUsIDAuMjAzNzUiLCBcCi0gICAgICAgICAgIjAuMjU1LCAwLjI1LCAwLjIzNzUsIDAuMjMxMjUsIDAuMjI1LCAwLjIyMTI1LCAwLjIxMjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTg3NSwgMC4xMTM3NSwgMC4xMDEyNSwgMC4wODg3NSwgMC4wNzYyNSwgMC4wNjYyNSwgMC4wNTEyNSIsIFwKLSAgICAgICAgICAiMC4xMywgMC4xMTg3NSwgMC4xMDYyNSwgMC4wOTM3NSwgMC4wODc1LCAwLjA3MTI1LCAwLjA2MjUiLCBcCi0gICAgICAgICAgIjAuMTQyNSwgMC4xMzEyNSwgMC4xMTg3NSwgMC4xMDYyNSwgMC4xLCAwLjA4Mzc1LCAwLjA3NSIsIFwKLSAgICAgICAgICAiMC4xNDg3NSwgMC4xMzc1LCAwLjEyNSwgMC4xMTI1LCAwLjEwNjI1LCAwLjA5LCAwLjA4MTI1IiwgXAotICAgICAgICAgICIwLjE1NSwgMC4xNDM3NSwgMC4xMzEyNSwgMC4xMTg3NSwgMC4xMTI1LCAwLjA5NjI1LCAwLjA4NzUiLCBcCi0gICAgICAgICAgIjAuMTY1LCAwLjE1Mzc1LCAwLjE0MTI1LCAwLjEyODc1LCAwLjEyMjUsIDAuMTA2MjUsIDAuMDk3NSIsIFwKLSAgICAgICAgICAiMC4xNzM3NSwgMC4xNjI1LCAwLjE1LCAwLjEzNzUsIDAuMTI1LCAwLjExNSwgMC4xMDYyNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oU0UpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTIwMjY0OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTIwMjI1OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTIwMjY0OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNDU0NiwgMC4wMDQ1MjcsIDAuMDA0NTIyLCAwLjAwNDUyNCwgMC4wMDQ1MzMsIDAuMDA0NTU2LCAwLjAwNDU4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA2MzE0LCAwLjAwNjI4MSwgMC4wMDYyNjcsIDAuMDA2MjcxLCAwLjAwNjI4NSwgMC4wMDYzMjUsIDAuMDA2MzYzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEJiFFJiFSTiZTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fRV9FUV8wX0FOX1JOX0VRXzBfQU5fU0lfRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wNSwgLTAuMDQ1LCAtMC4wMzg3NSwgLTAuMDMyNSwgLTAuMDI2MjUsIC0wLjAyMjUsIC0wLjAxMzc1IiwgXAotICAgICAgICAgICItMC4wNjEyNSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDMzNzUsIC0wLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDczNzUsIC0wLjA2ODc1LCAtMC4wNTYyNSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNCwgLTAuMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDg2MjUsIC0wLjA3NSwgLTAuMDY4NzUsIC0wLjA2MjUsIC0wLjA2MjUsIC0wLjA1MjUsIC0wLjA1IiwgXAotICAgICAgICAgICItMC4wOTg3NSwgLTAuMDg3NSwgLTAuMDgxMjUsIC0wLjA3NSwgLTAuMDc1LCAtMC4wNjUsIC0wLjA2MjUiLCBcCi0gICAgICAgICAgIi0wLjExNSwgLTAuMTEsIC0wLjA5NzUsIC0wLjA5NzUsIC0wLjA5MTI1LCAtMC4wODEyNSwgLTAuMDc4NzUiLCBcCi0gICAgICAgICAgIi0wLjEzLCAtMC4xMTg3NSwgLTAuMTEyNSwgLTAuMTA2MjUsIC0wLjEwNjI1LCAtMC4wOTYyNSwgLTAuMDkzNzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMTg3NSwgLTAuMDA3NSwgMC4wMDUsIDAuMDExMjUsIDAuMDE3NSwgMC4wMzM3NSwgMC4wNDI1IiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLjAwNjI1LCAwLjAxMjUsIDAuMDIyNSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLCAwLjAxLCAwLjAxODc1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAwLjAwMzc1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjA1NSwgLTAuMDUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgLTAuMDA4NzUsIDAiLCBcCi0gICAgICAgICAgIi0wLjA3MTI1LCAtMC4wNiwgLTAuMDUzNzUsIC0wLjA0MTI1LCAtMC4wMzUsIC0wLjAyNSwgLTAuMDE2MjUiLCBcCi0gICAgICAgICAgIi0wLjA4LCAtMC4wNjg3NSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA0Mzc1LCAtMC4wMzM3NSwgLTAuMDI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEJiFFJlJOJiFTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fRV9FUV8wX0FOX1JOX0VRXzFfQU5fU0lfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wNzUsIC0wLjA3LCAtMC4wNjM3NSwgLTAuMDU3NSwgLTAuMDUxMjUsIC0wLjA0MTI1LCAtMC4wMzg3NSIsIFwKLSAgICAgICAgICAiLTAuMDg2MjUsIC0wLjA3NSwgLTAuMDY4NzUsIC0wLjA2MjUsIC0wLjA2MjUsIC0wLjA1MjUsIC0wLjA1IiwgXAotICAgICAgICAgICItMC4wOTg3NSwgLTAuMDg3NSwgLTAuMDgxMjUsIC0wLjA3NSwgLTAuMDY4NzUsIC0wLjA2NSwgLTAuMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMTA1LCAtMC4xLCAtMC4wOTM3NSwgLTAuMDg3NSwgLTAuMDgxMjUsIC0wLjA3NzUsIC0wLjA2ODc1IiwgXAotICAgICAgICAgICItMC4xMTEyNSwgLTAuMTA2MjUsIC0wLjEsIC0wLjA5Mzc1LCAtMC4wODc1LCAtMC4wODM3NSwgLTAuMDc1IiwgXAotICAgICAgICAgICItMC4xMjEyNSwgLTAuMTE2MjUsIC0wLjExLCAtMC4xMDM3NSwgLTAuMDk3NSwgLTAuMDkzNzUsIC0wLjA4NSIsIFwKLSAgICAgICAgICAiLTAuMTMsIC0wLjEyNSwgLTAuMTE4NzUsIC0wLjExMjUsIC0wLjEwNjI1LCAtMC4xMDI1LCAtMC4wOTM3NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJEJkUmUk4mIVNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMV9BTl9FX0VRXzFfQU5fUk5fRVFfMV9BTl9TSV9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAzNzUsIC0wLjAyNjI1LCAtMC4wMiwgLTAuMDA3NSwgLTAuMDAxMjUsIDAuMDA4NzUsIDAuMDE3NSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDAyNSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDYxMjUsIC0wLjA1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMDg3NSwgMCIsIFwKLSAgICAgICAgICAiLTAuMDczNzUsIC0wLjA2MjUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDMxMjUsIC0wLjAyMTI1LCAtMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wOCwgLTAuMDY4NzUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjAyNzUsIC0wLjAxODc1IiwgXAotICAgICAgICAgICItMC4wOSwgLTAuMDc4NzUsIC0wLjA3MjUsIC0wLjA2LCAtMC4wNTM3NSwgLTAuMDQzNzUsIC0wLjAzNSIsIFwKLSAgICAgICAgICAiLTAuMDk4NzUsIC0wLjA4NzUsIC0wLjA4MTI1LCAtMC4wNjg3NSwgLTAuMDYyNSwgLTAuMDUyNSwgLTAuMDQzNzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEJiFFJiFSTiZTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fRV9FUV8wX0FOX1JOX0VRXzBfQU5fU0lfRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODEyNSwgMC4wNywgMC4wNjM3NSwgMC4wNTc1LCAwLjA1MTI1LCAwLjA0MTI1LCAwLjAzODc1IiwgXAotICAgICAgICAgICIwLjA5MjUsIDAuMDgxMjUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNTI1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjEwNSwgMC4wOTM3NSwgMC4wODEyNSwgMC4wNzUsIDAuMDY4NzUsIDAuMDY1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICIwLjExNzUsIDAuMTA2MjUsIDAuMDkzNzUsIDAuMDg3NSwgMC4wODEyNSwgMC4wNzc1LCAwLjA2ODc1IiwgXAotICAgICAgICAgICIwLjEyMzc1LCAwLjExODc1LCAwLjEwNjI1LCAwLjEsIDAuMDkzNzUsIDAuMDksIDAuMDgxMjUiLCBcCi0gICAgICAgICAgIjAuMTQ2MjUsIDAuMTM1LCAwLjEyMjUsIDAuMTE2MjUsIDAuMTEsIDAuMTA2MjUsIDAuMDk3NSIsIFwKLSAgICAgICAgICAiMC4xNjEyNSwgMC4xNSwgMC4xMzc1LCAwLjEzMTI1LCAwLjEyNSwgMC4xMjEyNSwgMC4xMTI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDYyNSwgMC4wNTEyNSwgMC4wMzg3NSwgMC4wMjYyNSwgMC4wMiwgMC4wMDM3NSwgLTAuMDA1IiwgXAotICAgICAgICAgICIwLjA3Mzc1LCAwLjA2MjUsIDAuMDUsIDAuMDM3NSwgMC4wMjUsIDAuMDE1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICIwLjA4NjI1LCAwLjA3NSwgMC4wNjI1LCAwLjA1LCAwLjAzNzUsIDAuMDI3NSwgMC4wMTI1IiwgXAotICAgICAgICAgICIwLjA5MjUsIDAuMDgxMjUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNSwgMC4wMzM3NSwgMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMTA1LCAwLjA5Mzc1LCAwLjA4MTI1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDQ2MjUsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiMC4xMjEyNSwgMC4xMSwgMC4wOTc1LCAwLjA4NSwgMC4wNzg3NSwgMC4wNjI1LCAwLjA1Mzc1IiwgXAotICAgICAgICAgICIwLjEzNjI1LCAwLjEyNSwgMC4xMTI1LCAwLjEsIDAuMDkzNzUsIDAuMDc3NSwgMC4wNjg3NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUQmIUUmUk4mIVNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9FX0VRXzBfQU5fUk5fRVFfMV9BTl9TSV9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4NzUsIDAuMDc2MjUsIDAuMDYzNzUsIDAuMDUxMjUsIDAuMDM4NzUsIDAuMDI4NzUsIDAuMDEzNzUiLCBcCi0gICAgICAgICAgIjAuMDkyNSwgMC4wODEyNSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1LCAwLjAzMzc1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiMC4xMDUsIDAuMDkzNzUsIDAuMDgxMjUsIDAuMDc1LCAwLjA2MjUsIDAuMDQ2MjUsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiMC4xMTc1LCAwLjEwNjI1LCAwLjA5Mzc1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNTg3NSwgMC4wNSIsIFwKLSAgICAgICAgICAiMC4xMjM3NSwgMC4xMTI1LCAwLjEsIDAuMDkzNzUsIDAuMDgxMjUsIDAuMDY1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICIwLjE0LCAwLjEyODc1LCAwLjExNjI1LCAwLjEwMzc1LCAwLjA5MTI1LCAwLjA4MTI1LCAwLjA2NjI1IiwgXAotICAgICAgICAgICIwLjE0ODc1LCAwLjEzNzUsIDAuMTI1LCAwLjExMjUsIDAuMSwgMC4wOSwgMC4wNzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIkQmRSZSTiYhU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8xX0FOX0VfRVFfMV9BTl9STl9FUV8xX0FOX1NJX0VRXzAgPT0gMSdiMSI7Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTA2MjUsIDAuMDk1LCAwLjA4MjUsIDAuMDc2MjUsIDAuMDcsIDAuMDY2MjUsIDAuMDU3NSIsIFwKLSAgICAgICAgICAiMC4xMTEyNSwgMC4xMDYyNSwgMC4wOTM3NSwgMC4wODc1LCAwLjA4MTI1LCAwLjA3NzUsIDAuMDY4NzUiLCBcCi0gICAgICAgICAgIjAuMTIzNzUsIDAuMTEyNSwgMC4xMDYyNSwgMC4xLCAwLjA5Mzc1LCAwLjA4Mzc1LCAwLjA4MTI1IiwgXAotICAgICAgICAgICIwLjEzNjI1LCAwLjEyNSwgMC4xMTI1LCAwLjEwNjI1LCAwLjEsIDAuMDk2MjUsIDAuMDg3NSIsIFwKLSAgICAgICAgICAiMC4xNDI1LCAwLjEzMTI1LCAwLjEyNSwgMC4xMTg3NSwgMC4xMTI1LCAwLjEwMjUsIDAuMSIsIFwKLSAgICAgICAgICAiMC4xNTI1LCAwLjE0MTI1LCAwLjEzNSwgMC4xMjg3NSwgMC4xMjI1LCAwLjExMjUsIDAuMTEiLCBcCi0gICAgICAgICAgIjAuMTYxMjUsIDAuMTUsIDAuMTQzNzUsIDAuMTMxMjUsIDAuMTMxMjUsIDAuMTIxMjUsIDAuMTE4NzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFNJKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA1ODMyNTc7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNTgxNjgzOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDU4MzI1NzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDI2NjEsIDAuMDAyNjQ0LCAwLjAwMjYzNiwgMC4wMDI2MywgMC4wMDI2MjgsIDAuMDAyNjMsIDAuMDAyNjM2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA0ODIsIDAuMDA0ODExLCAwLjAwNDgwNSwgMC4wMDQ4MDIsIDAuMDA0ODAzLCAwLjAwNDgwNCwgMC4wMDQ4MSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJTRSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wNTYyNSwgLTAuMDUxMjUsIC0wLjA0NSwgLTAuMDM4NzUsIC0wLjAzMjUsIC0wLjAyODc1LCAtMC4wMiIsIFwKLSAgICAgICAgICAiLTAuMDY3NSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDQsIC0wLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wOCwgLTAuMDY4NzUsIC0wLjA2MjUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNDYyNSwgLTAuMDQzNzUiLCBcCi0gICAgICAgICAgIi0wLjA5MjUsIC0wLjA4MTI1LCAtMC4wNzUsIC0wLjA2ODc1LCAtMC4wNjg3NSwgLTAuMDU4NzUsIC0wLjA1NjI1IiwgXAotICAgICAgICAgICItMC4wOTg3NSwgLTAuMDkzNzUsIC0wLjA4NzUsIC0wLjA4MTI1LCAtMC4wNzUsIC0wLjA3MTI1LCAtMC4wNjI1IiwgXAotICAgICAgICAgICItMC4xMTUsIC0wLjExLCAtMC4xMDM3NSwgLTAuMDk3NSwgLTAuMDkxMjUsIC0wLjA4NzUsIC0wLjA3ODc1IiwgXAotICAgICAgICAgICItMC4xMywgLTAuMTE4NzUsIC0wLjExMjUsIC0wLjExMjUsIC0wLjEwNjI1LCAtMC4wOTYyNSwgLTAuMDkzNzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMjUsIC0wLjAxMzc1LCAtMC4wMDc1LCAwLjAwNSwgMC4wMTEyNSwgMC4wMjEyNSwgMC4wMyIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAyNSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAuMDA2MjUsIDAuMDE2MjUsIDAuMDI1IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMC4wMDM3NSwgMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA0Mzc1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMTI1LCAtMC4wMDI1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wNjEyNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMTUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wNzEyNSwgLTAuMDY2MjUsIC0wLjA1Mzc1LCAtMC4wNDc1LCAtMC4wMzUsIC0wLjAyNSwgLTAuMDE2MjUiLCBcCi0gICAgICAgICAgIi0wLjA4NjI1LCAtMC4wNzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDMzNzUsIC0wLjAyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiU0UiOwotICAgICAgc2RmX2NvbmQgOiAiU0UgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg3NSwgMC4wNzYyNSwgMC4wNywgMC4wNjM3NSwgMC4wNTc1LCAwLjA0NzUsIDAuMDQ1IiwgXAotICAgICAgICAgICIwLjA5ODc1LCAwLjA4NzUsIDAuMDc1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDU4NzUsIDAuMDUiLCBcCi0gICAgICAgICAgIjAuMTExMjUsIDAuMSwgMC4wODc1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNzEyNSwgMC4wNjI1IiwgXAotICAgICAgICAgICIwLjExNzUsIDAuMTA2MjUsIDAuMSwgMC4wOTM3NSwgMC4wODc1LCAwLjA3NzUsIDAuMDc1IiwgXAotICAgICAgICAgICIwLjEzLCAwLjExODc1LCAwLjExMjUsIDAuMTA2MjUsIDAuMSwgMC4wOSwgMC4wODc1IiwgXAotICAgICAgICAgICIwLjE0NjI1LCAwLjEzNSwgMC4xMjg3NSwgMC4xMjI1LCAwLjExNjI1LCAwLjEwNjI1LCAwLjEwMzc1IiwgXAotICAgICAgICAgICIwLjE2MTI1LCAwLjE1LCAwLjEzNzUsIDAuMTMxMjUsIDAuMTI1LCAwLjEyMTI1LCAwLjExMjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjg3NSwgMC4wNjM3NSwgMC4wNDUsIDAuMDM4NzUsIDAuMDI2MjUsIDAuMDE2MjUsIDAuMDAxMjUiLCBcCi0gICAgICAgICAgIjAuMDgsIDAuMDY4NzUsIDAuMDU2MjUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMjEyNSwgMC4wMTI1IiwgXAotICAgICAgICAgICIwLjA5MjUsIDAuMDgxMjUsIDAuMDY4NzUsIDAuMDU2MjUsIDAuMDQzNzUsIDAuMDMzNzUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMDk4NzUsIDAuMDg3NSwgMC4wNzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNCwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4xMTEyNSwgMC4xLCAwLjA4NzUsIDAuMDc1LCAwLjA2MjUsIDAuMDUyNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4xMjEyNSwgMC4xMSwgMC4wOTc1LCAwLjA5MTI1LCAwLjA3ODc1LCAwLjA2MjUsIDAuMDUzNzUiLCBcCi0gICAgICAgICAgIjAuMTM2MjUsIDAuMTI1LCAwLjExMjUsIDAuMSwgMC4wODc1LCAwLjA3NzUsIDAuMDY4NzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBTRURGRlgyICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKFNFREZGWDIpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC41NTcyNjM7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgZmYgKE4zMCxORVQ1MzYpIHsKLSAgICBuZXh0X3N0YXRlIDogIigoU0UgU0kpICsgKCFTRSAoKEUgRCkgKyAoIUUgKCEoIU4zMCkpKSkpKSI7Ci0gICAgY2xvY2tlZF9vbiA6ICJDSyI7Ci0gIH0KLSAgcGluKENLKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA1OTM2MTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA1OTM1MzE7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNTkzNjE7Ci0gICAgY2xvY2sgOiB0cnVlOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzA5MywgMC4wMDMwNjgsIDAuMDAzMDUyLCAwLjAwMzA1NiwgMC4wMDMwNjksIDAuMDAzMDg5LCAwLjAwMzEwOCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNTk5MiwgMC4wMDU5NjgsIDAuMDA1OTYzLCAwLjAwNTk3LCAwLjAwNTk5MSwgMC4wMDYwMzYsIDAuMDA2MDc0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRCYhRSZTRSYhU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX0VfRVFfMF9BTl9TRV9FUV8xX0FOX1NJX0VRXzAgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4xNzI3MDksIDAuMTgyOTQ2LCAwLjE5NTY1MiwgMC4yMDc1MDIsIDAuMjE4MDExLCAwLjIzMjQ0LCAwLjI0MzUzOSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDk2MzA1LCAwLjEwNTkzMSwgMC4xMTg0MDksIDAuMTI5NzczLCAwLjEzOTY0MSwgMC4xNTI5NjYsIDAuMTYzMTI3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihEKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2NDk5MTc7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjQ4MTgxOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDY0OTkxNzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDMyMTgsIDAuMDAzMjAzLCAwLjAwMzE5NywgMC4wMDMxOTQsIDAuMDAzMTkyLCAwLjAwMzE5MywgMC4wMDMxOTciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDY2NDQsIDAuMDA2NjM1LCAwLjAwNjYzMSwgMC4wMDY2MjksIDAuMDA2NjI5LCAwLjAwNjYzLCAwLjAwNjYzNCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJFJiFTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJFX0VRXzFfQU5fU0VfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4xLCAtMC4wOTUsIC0wLjA4ODc1LCAtMC4wODI1LCAtMC4wODI1LCAtMC4wNzI1LCAtMC4wNyIsIFwKLSAgICAgICAgICAiLTAuMTExMjUsIC0wLjEwNjI1LCAtMC4xLCAtMC4wOTM3NSwgLTAuMDg3NSwgLTAuMDgzNzUsIC0wLjA4MTI1IiwgXAotICAgICAgICAgICItMC4xMjM3NSwgLTAuMTEyNSwgLTAuMTEyNSwgLTAuMTA2MjUsIC0wLjEsIC0wLjA5NjI1LCAtMC4wODc1IiwgXAotICAgICAgICAgICItMC4xMywgLTAuMTI1LCAtMC4xMTg3NSwgLTAuMTEyNSwgLTAuMTEyNSwgLTAuMTAyNSwgLTAuMSIsIFwKLSAgICAgICAgICAiLTAuMTQyNSwgLTAuMTM3NSwgLTAuMTMxMjUsIC0wLjEyNSwgLTAuMTE4NzUsIC0wLjExNSwgLTAuMTEyNSIsIFwKLSAgICAgICAgICAiLTAuMTU4NzUsIC0wLjE1Mzc1LCAtMC4xNDc1LCAtMC4xNDEyNSwgLTAuMTM1LCAtMC4xMzEyNSwgLTAuMTI4NzUiLCBcCi0gICAgICAgICAgIi0wLjE3Mzc1LCAtMC4xNjg3NSwgLTAuMTYyNSwgLTAuMTU2MjUsIC0wLjE1LCAtMC4xNDYyNSwgLTAuMTQzNzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wNDM3NSwgLTAuMDM4NzUsIC0wLjAzMjUsIC0wLjAyNjI1LCAtMC4wMiwgLTAuMDEsIC0wLjAwMTI1IiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA0Mzc1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAyMTI1LCAtMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wNjEyNSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDI3NSwgLTAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjA3Mzc1LCAtMC4wNjI1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjA0LCAtMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDgsIC0wLjA3NSwgLTAuMDY4NzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNDYyNSwgLTAuMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDksIC0wLjA4NSwgLTAuMDc4NzUsIC0wLjA3ODc1LCAtMC4wNzI1LCAtMC4wNjI1LCAtMC4wNTM3NSIsIFwKLSAgICAgICAgICAiLTAuMDk4NzUsIC0wLjA5Mzc1LCAtMC4wOTM3NSwgLTAuMDg3NSwgLTAuMDgxMjUsIC0wLjA3MTI1LCAtMC4wNjg3NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiRSYhU0UiOwotICAgICAgc2RmX2NvbmQgOiAiRV9FUV8xX0FOX1NFX0VRXzAgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTUsIDAuMTM4NzUsIDAuMTI2MjUsIDAuMTIsIDAuMTEzNzUsIDAuMTAzNzUsIDAuMDk1IiwgXAotICAgICAgICAgICIwLjE1NSwgMC4xNDM3NSwgMC4xMzc1LCAwLjEyNSwgMC4xMTg3NSwgMC4xMTUsIDAuMTA2MjUiLCBcCi0gICAgICAgICAgIjAuMTY3NSwgMC4xNTYyNSwgMC4xNDM3NSwgMC4xMzc1LCAwLjEzMTI1LCAwLjEyMTI1LCAwLjExODc1IiwgXAotICAgICAgICAgICIwLjE4LCAwLjE2ODc1LCAwLjE1NjI1LCAwLjE1LCAwLjE0Mzc1LCAwLjEzMzc1LCAwLjEzMTI1IiwgXAotICAgICAgICAgICIwLjE5MjUsIDAuMTgxMjUsIDAuMTY4NzUsIDAuMTU2MjUsIDAuMTUsIDAuMTQ2MjUsIDAuMTM3NSIsIFwKLSAgICAgICAgICAiMC4yMDg3NSwgMC4xOTc1LCAwLjE4NSwgMC4xNzg3NSwgMC4xNzI1LCAwLjE2MjUsIDAuMTUzNzUiLCBcCi0gICAgICAgICAgIjAuMjE3NSwgMC4yMDYyNSwgMC4yLCAwLjE4NzUsIDAuMTgxMjUsIDAuMTc3NSwgMC4xNjg3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEyNSwgMC4xMTM3NSwgMC4xMDEyNSwgMC4wODg3NSwgMC4wODI1LCAwLjA2NjI1LCAwLjA1NzUiLCBcCi0gICAgICAgICAgIjAuMTM2MjUsIDAuMTI1LCAwLjExMjUsIDAuMSwgMC4wODc1LCAwLjA3NzUsIDAuMDYyNSIsIFwKLSAgICAgICAgICAiMC4xNDI1LCAwLjEzMTI1LCAwLjExODc1LCAwLjEwNjI1LCAwLjEsIDAuMDgzNzUsIDAuMDc1IiwgXAotICAgICAgICAgICIwLjE1NSwgMC4xNDM3NSwgMC4xMzEyNSwgMC4xMTg3NSwgMC4xMDYyNSwgMC4wOTYyNSwgMC4wODEyNSIsIFwKLSAgICAgICAgICAiMC4xNjEyNSwgMC4xNTYyNSwgMC4xMzc1LCAwLjEzMTI1LCAwLjExODc1LCAwLjEwMjUsIDAuMDkzNzUiLCBcCi0gICAgICAgICAgIjAuMTc3NSwgMC4xNjYyNSwgMC4xNTM3NSwgMC4xNDEyNSwgMC4xMzUsIDAuMTE4NzUsIDAuMTEiLCBcCi0gICAgICAgICAgIjAuMTkyNSwgMC4xODEyNSwgMC4xNjg3NSwgMC4xNTYyNSwgMC4xNDM3NSwgMC4xMzM3NSwgMC4xMTg3NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxMzcwMzM7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxMzcwMzM7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxMzcwMTk7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA2MzAxLCAwLjAwNjI3NSwgMC4wMDYyOCwgMC4wMDYyODUsIDAuMDA2MywgMC4wMDYzMjUsIDAuMDA2MzUxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA3NzI5LCAwLjAwNzY5OCwgMC4wMDc2OTIsIDAuMDA3NzAxLCAwLjAwNzcxMSwgMC4wMDc3NDUsIDAuMDA3NzgzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJTRSA9PSAxJ2IwIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4xMTI1LCAtMC4xMDEyNSwgLTAuMDk1LCAtMC4wODI1LCAtMC4wNzYyNSwgLTAuMDYsIC0wLjA1MTI1IiwgXAotICAgICAgICAgICItMC4xMTc1LCAtMC4xMTI1LCAtMC4xMDYyNSwgLTAuMDkzNzUsIC0wLjA4MTI1LCAtMC4wNzEyNSwgLTAuMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMTMsIC0wLjEyNSwgLTAuMTEyNSwgLTAuMTA2MjUsIC0wLjA5Mzc1LCAtMC4wODM3NSwgLTAuMDY4NzUiLCBcCi0gICAgICAgICAgIi0wLjE0MjUsIC0wLjEzNzUsIC0wLjEyNSwgLTAuMTEyNSwgLTAuMTA2MjUsIC0wLjA5LCAtMC4wODEyNSIsIFwKLSAgICAgICAgICAiLTAuMTU1LCAtMC4xNDM3NSwgLTAuMTMxMjUsIC0wLjExODc1LCAtMC4xMTI1LCAtMC4wOTYyNSwgLTAuMDg3NSIsIFwKLSAgICAgICAgICAiLTAuMTY1LCAtMC4xNTM3NSwgLTAuMTQxMjUsIC0wLjEyODc1LCAtMC4xMjI1LCAtMC4xMDYyNSwgLTAuMDk3NSIsIFwKLSAgICAgICAgICAiLTAuMTczNzUsIC0wLjE2MjUsIC0wLjE1LCAtMC4xMzc1LCAtMC4xMzEyNSwgLTAuMTE1LCAtMC4xMDYyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAzNzUsIC0wLjAzMjUsIC0wLjAyNjI1LCAtMC4wMiwgLTAuMDEzNzUsIC0wLjAwMzc1LCAwLjAwNSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wNjEyNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDIxMjUsIC0wLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjA2NzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjAzMzc1LCAtMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjA4LCAtMC4wNjg3NSwgLTAuMDY4NzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNDYyNSwgLTAuMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDksIC0wLjA4NSwgLTAuMDc4NzUsIC0wLjA3ODc1LCAtMC4wNzI1LCAtMC4wNjI1LCAtMC4wNTM3NSIsIFwKLSAgICAgICAgICAiLTAuMDk4NzUsIC0wLjA5Mzc1LCAtMC4wODc1LCAtMC4wODc1LCAtMC4wODEyNSwgLTAuMDc3NSwgLTAuMDY4NzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJTRSA9PSAxJ2IwIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNDM3NSwgMC4xMzI1LCAwLjEyLCAwLjExMzc1LCAwLjEwNzUsIDAuMDk3NSwgMC4wODg3NSIsIFwKLSAgICAgICAgICAiMC4xNDg3NSwgMC4xNDM3NSwgMC4xMzEyNSwgMC4xMTg3NSwgMC4xMTI1LCAwLjEwODc1LCAwLjEiLCBcCi0gICAgICAgICAgIjAuMTYxMjUsIDAuMTUsIDAuMTQzNzUsIDAuMTMxMjUsIDAuMTI1LCAwLjExNSwgMC4xMTI1IiwgXAotICAgICAgICAgICIwLjE3Mzc1LCAwLjE2MjUsIDAuMTUsIDAuMTQzNzUsIDAuMTM3NSwgMC4xMjc1LCAwLjEyNSIsIFwKLSAgICAgICAgICAiMC4xODYyNSwgMC4xNzUsIDAuMTYyNSwgMC4xNTYyNSwgMC4xNSwgMC4xNCwgMC4xMzc1IiwgXAotICAgICAgICAgICIwLjIwMjUsIDAuMTkxMjUsIDAuMTg1LCAwLjE3MjUsIDAuMTY2MjUsIDAuMTYyNSwgMC4xNTM3NSIsIFwKLSAgICAgICAgICAiMC4yMjM3NSwgMC4yMTI1LCAwLjIsIDAuMTg3NSwgMC4xODEyNSwgMC4xNzc1LCAwLjE2ODc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTI1LCAwLjEyLCAwLjExMzc1LCAwLjEwNzUsIDAuMTAxMjUsIDAuMDkxMjUsIDAuMDg4NzUiLCBcCi0gICAgICAgICAgIjAuMTM2MjUsIDAuMTI1LCAwLjExODc1LCAwLjExMjUsIDAuMTEyNSwgMC4xMDI1LCAwLjEiLCBcCi0gICAgICAgICAgIjAuMTQyNSwgMC4xMzc1LCAwLjEzMTI1LCAwLjEyNSwgMC4xMTg3NSwgMC4xMTUsIDAuMTEyNSIsIFwKLSAgICAgICAgICAiMC4xNTUsIDAuMTQzNzUsIDAuMTM3NSwgMC4xMzEyNSwgMC4xMzEyNSwgMC4xMjEyNSwgMC4xMTg3NSIsIFwKLSAgICAgICAgICAiMC4xNjEyNSwgMC4xNTYyNSwgMC4xNDM3NSwgMC4xNDM3NSwgMC4xMzc1LCAwLjEyNzUsIDAuMTI1IiwgXAotICAgICAgICAgICIwLjE3MTI1LCAwLjE2LCAwLjE1Mzc1LCAwLjE0NzUsIDAuMTQ3NSwgMC4xMzc1LCAwLjEzNSIsIFwKLSAgICAgICAgICAiMC4xNzM3NSwgMC4xNjg3NSwgMC4xNjI1LCAwLjE1NjI1LCAwLjE1LCAwLjE0NjI1LCAwLjEzNzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFEpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC41MjQ3NzE7Ci0gICAgZnVuY3Rpb24gOiAiTjMwIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBub25fdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJpc2luZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMjEyNDQsIDAuMjIzNjgyLCAwLjMwNTQzMiwgMC40MDc1NTQsIDAuNTA5MjMyLCAwLjYxMDU1NSwgMC43MTIyNzYiLCBcCi0gICAgICAgICAgIjAuMTMxNDUsIDAuMjMzODcsIDAuMzE1NzQzLCAwLjQxNzg0OSwgMC41MTkzMjYsIDAuNjIwODQ1LCAwLjcyMjY0NyIsIFwKLSAgICAgICAgICAiMC4xNDQwMzgsIDAuMjQ2MzY0LCAwLjMyODQxMywgMC40MzAzNzMsIDAuNTMxOTU5LCAwLjYzMzM5MywgMC43MzU4NCIsIFwKLSAgICAgICAgICAiMC4xNTU3NzQsIDAuMjU4MDczLCAwLjMzOTY2NCwgMC40NDIwMjEsIDAuNTQzODcxLCAwLjY0NTExNCwgMC43NDY3NTMiLCBcCi0gICAgICAgICAgIjAuMTY1ODU4LCAwLjI2ODI3MSwgMC4zNTAxNjYsIDAuNDUyMjA2LCAwLjU1MzczOSwgMC42NTQ3MzksIDAuNzU2NjkyIiwgXAotICAgICAgICAgICIwLjE4MDQsIDAuMjgyODA1LCAwLjM2NDczNiwgMC40NjY3MjgsIDAuNTY4Mzg2LCAwLjY2OTczMSwgMC43NzEzNzIiLCBcCi0gICAgICAgICAgIjAuMTkxMjExLCAwLjI5MzYyMSwgMC4zNzUzNDQsIDAuNDc3Mzc3LCAwLjU3OTE5NiwgMC42ODA1NDMsIDAuNzgyMjcxIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1MjY3OCwgMC4yNjAzMzYsIDAuNDI3MjY0LCAwLjYzNTc1MywgMC44NDQ5MSwgMS4wNTUzNSwgMS4yNjUzOSIsIFwKLSAgICAgICAgICAiMC4wNTI2NjYsIDAuMjYwMjY1LCAwLjQyNjU2MiwgMC42MzU0NzMsIDAuODQ1MTcxLCAxLjA1NTM2LCAxLjI2NTM3IiwgXAotICAgICAgICAgICIwLjA1MjgwNywgMC4yNjA1OSwgMC40MjYwMzUsIDAuNjM1MDQ0LCAwLjg0NTE3NywgMS4wNTUzNSwgMS4yNjQ3OSIsIFwKLSAgICAgICAgICAiMC4wNTI1OTUsIDAuMjYwMzI1LCAwLjQyNzI1NiwgMC42MzQzMzMsIDAuODQ0ODUxLCAxLjA1NTM1LCAxLjI2NTM4IiwgXAotICAgICAgICAgICIwLjA1MjY3OSwgMC4yNTk5NjEsIDAuNDI1MDU4LCAwLjYzNTc4NCwgMC44NDUxNjgsIDEuMDU0ODEsIDEuMjY0NjgiLCBcCi0gICAgICAgICAgIjAuMDUyNzYzLCAwLjI2MDU3NCwgMC40MjcyNTksIDAuNjM1MTg2LCAwLjg0NTE3NiwgMS4wNTUzNCwgMS4yNjUzOCIsIFwKLSAgICAgICAgICAiMC4wNTI3MDYsIDAuMjYwMzI4LCAwLjQyNzI2NCwgMC42MzQzMTUsIDAuODQ1MTc2LCAxLjA1NTM0LCAxLjI2NTM1Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEzNTcwMiwgMC4yNDAxMzMsIDAuMzIyODE5LCAwLjQyNzMzOSwgMC41MzAzNDQsIDAuNjMzNywgMC43MzY4NDEiLCBcCi0gICAgICAgICAgIjAuMTQ1OTUsIDAuMjUwMzUzLCAwLjMzMzU5NywgMC40Mzc2MTcsIDAuNTQwOTY5LCAwLjY0NDQ1MiwgMC43NDcwODQiLCBcCi0gICAgICAgICAgIjAuMTU4NjQzLCAwLjI2MzA3NCwgMC4zNDY0MDcsIDAuNDUwMjQ5LCAwLjU1MzI5OCwgMC42NTY2MTgsIDAuNzYwNTcxIiwgXAotICAgICAgICAgICIwLjE3MDUwMSwgMC4yNzQ5MTIsIDAuMzU4MTk2LCAwLjQ2MjA3MywgMC41NjUwODgsIDAuNjY4NjU2LCAwLjc3MjA4NCIsIFwKLSAgICAgICAgICAiMC4xODEwMDcsIDAuMjg1NDAxLCAwLjM2ODY3MiwgMC40NzI2NjIsIDAuNTc1Nzk2LCAwLjY3ODg4MiwgMC43ODI0MDQiLCBcCi0gICAgICAgICAgIjAuMTk1NDI4LCAwLjI5OTg0MiwgMC4zODMxOTIsIDAuNDg3MTU0LCAwLjU5MDA3NiwgMC42OTM1MjMsIDAuNzk3MzIyIiwgXAotICAgICAgICAgICIwLjIwNjUyNCwgMC4zMTA5NTIsIDAuMzkzNjQ1LCAwLjQ5ODE1NywgMC42MDExNzQsIDAuNzA0NTI4LCAwLjgwNzg5MiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTIzNDUsIDAuMjU5OTYxLCAwLjQyNjI1MywgMC42MzU3MTEsIDAuODQ1MTMxLCAxLjA1NTE2LCAxLjI2NTAxIiwgXAotICAgICAgICAgICIwLjA1MjUzMywgMC4yNjAyMjgsIDAuNDI2MzUxLCAwLjYzNDc3MiwgMC44NDUxMzQsIDEuMDU1MTYsIDEuMjY1IiwgXAotICAgICAgICAgICIwLjA1MjQ5MywgMC4yNTkwMDYsIDAuNDI2NTE2LCAwLjYzNTIyNiwgMC44NDQ5NzgsIDEuMDU1MSwgMS4yNjU0OCIsIFwKLSAgICAgICAgICAiMC4wNTI1NDUsIDAuMjU5OTU0LCAwLjQyNjM3OCwgMC42MzQ5NiwgMC44NDQ5ODIsIDEuMDU1NCwgMS4yNjUzNyIsIFwKLSAgICAgICAgICAiMC4wNTI1MDgsIDAuMjU5OTk5LCAwLjQyNzIyMiwgMC42MzQ4NzQsIDAuODQ0OTc4LCAxLjA1NTQsIDEuMjY1MzgiLCBcCi0gICAgICAgICAgIjAuMDUyNTY1LCAwLjI1OTk4LCAwLjQyNjA3MiwgMC42MzU2MTQsIDAuODQ1MzExLCAxLjA1NTQ5LCAxLjI2MjgxIiwgXAotICAgICAgICAgICIwLjA1MjM4OSwgMC4yNTk5NzgsIDAuNDI2Mzg0LCAwLjYzNTAxMiwgMC44NDUxMzcsIDEuMDU0ODQsIDEuMjY1MzciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2MjczLCAwLjAwNjMzNSwgMC4wMDYzNDIsIDAuMDA2MzQ2LCAwLjAwNjM0OCwgMC4wMDYzNDksIDAuMDA2MzQ5IiwgXAotICAgICAgICAgICIwLjAwNjI1NSwgMC4wMDYzMTcsIDAuMDA2MzI1LCAwLjAwNjMyOCwgMC4wMDYzMywgMC4wMDYzMzEsIDAuMDA2MzMyIiwgXAotICAgICAgICAgICIwLjAwNjI0OCwgMC4wMDYzMDksIDAuMDA2MzE2LCAwLjAwNjMyLCAwLjAwNjMyMiwgMC4wMDYzMjMsIDAuMDA2MzI0IiwgXAotICAgICAgICAgICIwLjAwNjI0OCwgMC4wMDYzMSwgMC4wMDYzMTcsIDAuMDA2MzIxLCAwLjAwNjMyMiwgMC4wMDYzMjQsIDAuMDA2MzI0IiwgXAotICAgICAgICAgICIwLjAwNjI1NywgMC4wMDYzMTksIDAuMDA2MzI2LCAwLjAwNjMzLCAwLjAwNjMzMiwgMC4wMDYzMzMsIDAuMDA2MzMzIiwgXAotICAgICAgICAgICIwLjAwNjI2NiwgMC4wMDYzMjgsIDAuMDA2MzM1LCAwLjAwNjMzOSwgMC4wMDYzNDEsIDAuMDA2MzQyLCAwLjAwNjM0MyIsIFwKLSAgICAgICAgICAiMC4wMDYyNzcsIDAuMDA2MzM5LCAwLjAwNjM0NiwgMC4wMDYzNSwgMC4wMDYzNTIsIDAuMDA2MzUzLCAwLjAwNjM1NCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjY4NywgMC4wMDY3NSwgMC4wMDY3NTcsIDAuMDA2NzYxLCAwLjAwNjc2MiwgMC4wMDY3NjQsIDAuMDA2NzY0IiwgXAotICAgICAgICAgICIwLjAwNjY3MiwgMC4wMDY3MzUsIDAuMDA2NzQzLCAwLjAwNjc0NiwgMC4wMDY3NDgsIDAuMDA2NzQ5LCAwLjAwNjc1IiwgXAotICAgICAgICAgICIwLjAwNjY3MSwgMC4wMDY3MzQsIDAuMDA2NzQyLCAwLjAwNjc0NSwgMC4wMDY3NDgsIDAuMDA2NzQ5LCAwLjAwNjc0OSIsIFwKLSAgICAgICAgICAiMC4wMDY2NzksIDAuMDA2NzQzLCAwLjAwNjc1MSwgMC4wMDY3NTQsIDAuMDA2NzU1LCAwLjAwNjc1NywgMC4wMDY3NTciLCBcCi0gICAgICAgICAgIjAuMDA2Njk0LCAwLjAwNjc1OCwgMC4wMDY3NjUsIDAuMDA2NzY5LCAwLjAwNjc3MSwgMC4wMDY3NzEsIDAuMDA2NzczIiwgXAotICAgICAgICAgICIwLjAwNjcxMSwgMC4wMDY3NzUsIDAuMDA2NzgzLCAwLjAwNjc4NiwgMC4wMDY3ODksIDAuMDA2Nzg5LCAwLjAwNjc4OSIsIFwKLSAgICAgICAgICAiMC4wMDY3MzQsIDAuMDA2Nzk4LCAwLjAwNjgwNSwgMC4wMDY4MDksIDAuMDA2ODExLCAwLjAwNjgxMywgMC4wMDY4MTQiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFFOKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuNTI0MDQyOwotICAgIGZ1bmN0aW9uIDogIk5FVDUzNiI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3NlbnNlIDogbm9uX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiByaXNpbmdfZWRnZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTcyNzA5LCAwLjI3NTkzLCAwLjM1ODE1OCwgMC40NjA5OCwgMC41NjM4MzksIDAuNjY2NjQxLCAwLjc2OTQ0IiwgXAotICAgICAgICAgICIwLjE4Mjk0NiwgMC4yODYxNjYsIDAuMzY4Mzk3LCAwLjQ3MTIzNCwgMC41NzQwOCwgMC42NzY4NzksIDAuNzc5Njc5IiwgXAotICAgICAgICAgICIwLjE5NTY1MiwgMC4yOTg4NzQsIDAuMzgxMTAyLCAwLjQ4MzkyMSwgMC41ODY3NDMsIDAuNjg5NTc3LCAwLjc5MjQ4IiwgXAotICAgICAgICAgICIwLjIwNzUwMiwgMC4zMTA3MjYsIDAuMzkyOTU3LCAwLjQ5NTc3NCwgMC41OTg1OTUsIDAuNzAxNDg2LCAwLjgwNDMxOCIsIFwKLSAgICAgICAgICAiMC4yMTgwMTEsIDAuMzIxMjM1LCAwLjQwMzQ2NywgMC41MDYyODQsIDAuNjA5MTA1LCAwLjcxMTk3LCAwLjgxNDgyOCIsIFwKLSAgICAgICAgICAiMC4yMzI0NCwgMC4zMzU2NjIsIDAuNDE3ODg5LCAwLjUyMDcwMywgMC42MjM1MjUsIDAuNzI2MzcxLCAwLjgyOTE4OCIsIFwKLSAgICAgICAgICAiMC4yNDM1MzksIDAuMzQ2NzYzLCAwLjQyODk5MSwgMC41MzE4MjgsIDAuNjM0Njc1LCAwLjczNzQyNywgMC44NDAzMiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTQ1ODYsIDAuMjYzNjgzLCAwLjQzNDQ0OCwgMC42NDgzNywgMC44NjI4NzcsIDEuMDc2OTYsIDEuMjkwNDIiLCBcCi0gICAgICAgICAgIjAuMDU0NjA5LCAwLjI2MzU4NiwgMC40MzQ0NDgsIDAuNjQ4Mjk5LCAwLjg2Mjg4NCwgMS4wNzcwMSwgMS4yOTA0MiIsIFwKLSAgICAgICAgICAiMC4wNTQ2MDEsIDAuMjYzNTczLCAwLjQzNDQ0OCwgMC42NDg0MDUsIDAuODYyODgzLCAxLjA3NjkzLCAxLjI5MTA1IiwgXAotICAgICAgICAgICIwLjA1NDU5LCAwLjI2MzY2MywgMC40MzQ0NDcsIDAuNjQ4Mzk5LCAwLjg2Mjg2MywgMS4wNzcsIDEuMjkxMTIiLCBcCi0gICAgICAgICAgIjAuMDU0NTgxLCAwLjI2MzU4NiwgMC40MzQ2NDUsIDAuNjQ4NCwgMC44NjI5MjgsIDEuMDc2NTQsIDEuMjkwNyIsIFwKLSAgICAgICAgICAiMC4wNTQ1ODYsIDAuMjYzNzI1LCAwLjQzMzgyMSwgMC42NDg0MjMsIDAuODYyODgyLCAxLjA3NywgMS4yODk0MiIsIFwKLSAgICAgICAgICAiMC4wNTQ1OTMsIDAuMjYzNjgzLCAwLjQzNDQ0OSwgMC42NDgxMzksIDAuODYyODc2LCAxLjA3Njk3LCAxLjI5MDY5Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE2MTE2MywgMC4yNjU0MzYsIDAuMzQ4MjYzLCAwLjQ1MTgyOCwgMC41NTUzODYsIDAuNjU4OTI4LCAwLjc2MjQ4NiIsIFwKLSAgICAgICAgICAiMC4xNzEzNjIsIDAuMjc1NjM0LCAwLjM1ODQ2LCAwLjQ2MjAyOSwgMC41NjU1OSwgMC42NjkxMTksIDAuNzcyNjg2IiwgXAotICAgICAgICAgICIwLjE4Mzk0OCwgMC4yODgyMTcsIDAuMzcxMDQxLCAwLjQ3NDYzNCwgMC41NzgxODYsIDAuNjgxNzE2LCAwLjc4NTMxNiIsIFwKLSAgICAgICAgICAiMC4xOTU2OCwgMC4yOTk5NTQsIDAuMzgyODAxLCAwLjQ4NjM0LCAwLjU4OTg4OCwgMC42OTM0NjgsIDAuNzk3MDAzIiwgXAotICAgICAgICAgICIwLjIwNTc2OCwgMC4zMTAwMzgsIDAuMzkyODg1LCAwLjQ5NjQyNCwgMC41OTk5NjcsIDAuNzAzNTI3LCAwLjgwNzEwOSIsIFwKLSAgICAgICAgICAiMC4yMjAzMDUsIDAuMzI0NTc1LCAwLjQwNzQwMiwgMC41MTA5NiwgMC42MTQ1MTgsIDAuNzE4MDY0LCAwLjgyMTYxOSIsIFwKLSAgICAgICAgICAiMC4yMzExMTYsIDAuMzM1Mzg1LCAwLjQxODIzMSwgMC41MjE3NzEsIDAuNjI1MzE2LCAwLjcyODg5MiwgMC44MzI0MzIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU0MDA4LCAwLjI1ODgyNywgMC40MjY0LCAwLjYzNjMyNywgMC44NDU5MzEsIDEuMDU2MzUsIDEuMjY2NDMiLCBcCi0gICAgICAgICAgIjAuMDU0MDEsIDAuMjU4Nzg0LCAwLjQyNjA3NCwgMC42MzYwMDgsIDAuODQ2NDM2LCAxLjA1NjM5LCAxLjI2NjUiLCBcCi0gICAgICAgICAgIjAuMDU0MDIyLCAwLjI1ODczNywgMC40MjYxNTMsIDAuNjM1NTYyLCAwLjg0NjQ2LCAxLjA1NjM3LCAxLjI2NjEiLCBcCi0gICAgICAgICAgIjAuMDU0MDAyLCAwLjI1ODgxMSwgMC40MjYzMzQsIDAuNjM1NTUyLCAwLjg0NTgwOCwgMS4wNTYzNiwgMS4yNjYzOSIsIFwKLSAgICAgICAgICAiMC4wNTQwMSwgMC4yNTg5MDksIDAuNDI2MDg4LCAwLjYzNjM0MiwgMC44NDY0MjcsIDEuMDU1ODYsIDEuMjY1ODgiLCBcCi0gICAgICAgICAgIjAuMDU0MDA4LCAwLjI1ODkwNiwgMC40MjYzNTUsIDAuNjM1NTY0LCAwLjg0NjQ1MiwgMS4wNTYzNCwgMS4yNjY0IiwgXAotICAgICAgICAgICIwLjA1NDAxNSwgMC4yNTg3ODksIDAuNDI2Mzg4LCAwLjYzNTU0OCwgMC44NDY0NDgsIDEuMDU2MzQsIDEuMjY2MzkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2Njg3LCAwLjAwNjc1LCAwLjAwNjc1NywgMC4wMDY3NjEsIDAuMDA2NzYyLCAwLjAwNjc2NCwgMC4wMDY3NjQiLCBcCi0gICAgICAgICAgIjAuMDA2NjcyLCAwLjAwNjczNSwgMC4wMDY3NDMsIDAuMDA2NzQ2LCAwLjAwNjc0OCwgMC4wMDY3NDksIDAuMDA2NzUiLCBcCi0gICAgICAgICAgIjAuMDA2NjcxLCAwLjAwNjczNCwgMC4wMDY3NDIsIDAuMDA2NzQ1LCAwLjAwNjc0OCwgMC4wMDY3NDksIDAuMDA2NzQ5IiwgXAotICAgICAgICAgICIwLjAwNjY3OSwgMC4wMDY3NDMsIDAuMDA2NzUxLCAwLjAwNjc1NCwgMC4wMDY3NTUsIDAuMDA2NzU3LCAwLjAwNjc1NyIsIFwKLSAgICAgICAgICAiMC4wMDY2OTQsIDAuMDA2NzU4LCAwLjAwNjc2NSwgMC4wMDY3NjksIDAuMDA2NzcxLCAwLjAwNjc3MSwgMC4wMDY3NzMiLCBcCi0gICAgICAgICAgIjAuMDA2NzExLCAwLjAwNjc3NSwgMC4wMDY3ODMsIDAuMDA2Nzg2LCAwLjAwNjc4OSwgMC4wMDY3ODksIDAuMDA2Nzg5IiwgXAotICAgICAgICAgICIwLjAwNjczNCwgMC4wMDY3OTgsIDAuMDA2ODA1LCAwLjAwNjgwOSwgMC4wMDY4MTEsIDAuMDA2ODEzLCAwLjAwNjgxNCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjI3MywgMC4wMDYzMzUsIDAuMDA2MzQyLCAwLjAwNjM0NiwgMC4wMDYzNDgsIDAuMDA2MzQ5LCAwLjAwNjM0OSIsIFwKLSAgICAgICAgICAiMC4wMDYyNTUsIDAuMDA2MzE3LCAwLjAwNjMyNSwgMC4wMDYzMjgsIDAuMDA2MzMsIDAuMDA2MzMxLCAwLjAwNjMzMiIsIFwKLSAgICAgICAgICAiMC4wMDYyNDgsIDAuMDA2MzA5LCAwLjAwNjMxNiwgMC4wMDYzMiwgMC4wMDYzMjIsIDAuMDA2MzIzLCAwLjAwNjMyNCIsIFwKLSAgICAgICAgICAiMC4wMDYyNDgsIDAuMDA2MzEsIDAuMDA2MzE3LCAwLjAwNjMyMSwgMC4wMDYzMjIsIDAuMDA2MzI0LCAwLjAwNjMyNCIsIFwKLSAgICAgICAgICAiMC4wMDYyNTcsIDAuMDA2MzE5LCAwLjAwNjMyNiwgMC4wMDYzMywgMC4wMDYzMzIsIDAuMDA2MzMzLCAwLjAwNjMzMyIsIFwKLSAgICAgICAgICAiMC4wMDYyNjYsIDAuMDA2MzI4LCAwLjAwNjMzNSwgMC4wMDYzMzksIDAuMDA2MzQxLCAwLjAwNjM0MiwgMC4wMDYzNDMiLCBcCi0gICAgICAgICAgIjAuMDA2Mjc3LCAwLjAwNjMzOSwgMC4wMDYzNDYsIDAuMDA2MzUsIDAuMDA2MzUyLCAwLjAwNjM1MywgMC4wMDYzNTQiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFNFKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDExNDQ0OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTE0Mzc5OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTE0NDQ7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA0NTQsIDAuMDA0NTIxLCAwLjAwNDUyNCwgMC4wMDQ1MzUsIDAuMDA0NTUxLCAwLjAwNDU3OCwgMC4wMDQ2MDUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDU5NzIsIDAuMDA1OTM1LCAwLjAwNTkyNSwgMC4wMDU5NDQsIDAuMDA1OTQ4LCAwLjAwNTk3NSwgMC4wMDYwMTQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUQmIUUmIVNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9FX0VRXzBfQU5fU0lfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wNjI1LCAtMC4wNTc1LCAtMC4wNTEyNSwgLTAuMDQ1LCAtMC4wNDUsIC0wLjAzNSwgLTAuMDMyNSIsIFwKLSAgICAgICAgICAiLTAuMDczNzUsIC0wLjA2ODc1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjA0NjI1LCAtMC4wNDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDg2MjUsIC0wLjA4MTI1LCAtMC4wNzUsIC0wLjA2ODc1LCAtMC4wNjI1LCAtMC4wNTg3NSwgLTAuMDU2MjUiLCBcCi0gICAgICAgICAgIi0wLjA5ODc1LCAtMC4wOTM3NSwgLTAuMDg3NSwgLTAuMDgxMjUsIC0wLjA3NSwgLTAuMDcxMjUsIC0wLjA2MjUiLCBcCi0gICAgICAgICAgIi0wLjEwNSwgLTAuMSwgLTAuMDkzNzUsIC0wLjA4NzUsIC0wLjA4MTI1LCAtMC4wNzc1LCAtMC4wNzUiLCBcCi0gICAgICAgICAgIi0wLjExNSwgLTAuMTEsIC0wLjEwMzc1LCAtMC4wOTc1LCAtMC4wOTc1LCAtMC4wODc1LCAtMC4wODUiLCBcCi0gICAgICAgICAgIi0wLjEyMzc1LCAtMC4xMTg3NSwgLTAuMTEyNSwgLTAuMTA2MjUsIC0wLjEwNjI1LCAtMC4wOTYyNSwgLTAuMDkzNzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUQmIUUmU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX0VfRVFfMF9BTl9TSV9FUV8xID09IDEnYjEiOwotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAxMjUsIC0wLjAwNzUsIDAuMDA1LCAwLjAxMTI1LCAwLjAxNzUsIDAuMDI3NSwgMC4wMzYyNSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLCAwLjAxMjUsIDAuMDIyNSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLCAwLjAxLCAwLjAxODc1IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDI1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMDg3NSwgMCIsIFwKLSAgICAgICAgICAiLTAuMDY1LCAtMC4wNiwgLTAuMDUzNzUsIC0wLjA0MTI1LCAtMC4wMzUsIC0wLjAyNSwgLTAuMDE2MjUiLCBcCi0gICAgICAgICAgIi0wLjA3Mzc1LCAtMC4wNjg3NSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNCwgLTAuMDMxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUQmRSZTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fRV9FUV8xX0FOX1NJX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDUsIC0wLjA0NSwgLTAuMDMyNSwgLTAuMDMyNSwgLTAuMDI2MjUsIC0wLjAxNjI1LCAtMC4wMTM3NSIsIFwKLSAgICAgICAgICAiLTAuMDYxMjUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAyNzUsIC0wLjAxODc1IiwgXAotICAgICAgICAgICItMC4wNzM3NSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDQsIC0wLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wODYyNSwgLTAuMDc1LCAtMC4wNjg3NSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA1MjUsIC0wLjA0Mzc1IiwgXAotICAgICAgICAgICItMC4wOTI1LCAtMC4wODc1LCAtMC4wODEyNSwgLTAuMDc1LCAtMC4wNjg3NSwgLTAuMDU4NzUsIC0wLjA1NjI1IiwgXAotICAgICAgICAgICItMC4xMTUsIC0wLjEwMzc1LCAtMC4wOTc1LCAtMC4wOTEyNSwgLTAuMDg1LCAtMC4wODEyNSwgLTAuMDcyNSIsIFwKLSAgICAgICAgICAiLTAuMTIzNzUsIC0wLjExODc1LCAtMC4xMTI1LCAtMC4xMDYyNSwgLTAuMSwgLTAuMDksIC0wLjA4NzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiRCZFJiFTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzFfQU5fRV9FUV8xX0FOX1NJX0VRXzAgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDMxMjUsIC0wLjAyLCAtMC4wMDc1LCAtMC4wMDEyNSwgMC4wMDUsIDAuMDIxMjUsIDAuMDMiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgMCwgMC4wMSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNDM3NSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDEyNSwgLTAuMDAyNSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDYxMjUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDE1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDY3NSwgLTAuMDYyNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wMzEyNSwgLTAuMDIxMjUsIC0wLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjA4Mzc1LCAtMC4wNzI1LCAtMC4wNiwgLTAuMDUzNzUsIC0wLjA0MTI1LCAtMC4wMzEyNSwgLTAuMDIyNSIsIFwKLSAgICAgICAgICAiLTAuMDkyNSwgLTAuMDgxMjUsIC0wLjA2ODc1LCAtMC4wNjI1LCAtMC4wNSwgLTAuMDQsIC0wLjAzMTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRCYhRSYhU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX0VfRVFfMF9BTl9TSV9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4MTI1LCAwLjA3LCAwLjA1NzUsIDAuMDQ1LCAwLjAzODc1LCAwLjAyMjUsIDAuMDEzNzUiLCBcCi0gICAgICAgICAgIjAuMDkyNSwgMC4wODEyNSwgMC4wNjg3NSwgMC4wNTYyNSwgMC4wNDM3NSwgMC4wMzM3NSwgMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMTA1LCAwLjA5Mzc1LCAwLjA4MTI1LCAwLjA2ODc1LCAwLjA1NjI1LCAwLjA0NjI1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICIwLjExMTI1LCAwLjEwNjI1LCAwLjA4NzUsIDAuMDgxMjUsIDAuMDY4NzUsIDAuMDUyNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4xMjM3NSwgMC4xMTI1LCAwLjEsIDAuMDg3NSwgMC4wNzUsIDAuMDY1LCAwLjA1IiwgXAotICAgICAgICAgICIwLjEzMzc1LCAwLjEyMjUsIDAuMTEsIDAuMDk3NSwgMC4wODUsIDAuMDc1LCAwLjA2IiwgXAotICAgICAgICAgICIwLjE0MjUsIDAuMTMxMjUsIDAuMTE4NzUsIDAuMTA2MjUsIDAuMDkzNzUsIDAuMDgzNzUsIDAuMDY4NzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEJiFFJlNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9FX0VRXzBfQU5fU0lfRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODc1LCAwLjA3NjI1LCAwLjA2Mzc1LCAwLjA1NzUsIDAuMDUxMjUsIDAuMDQxMjUsIDAuMDMyNSIsIFwKLSAgICAgICAgICAiMC4wOTI1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1MjUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMTA1LCAwLjA5Mzc1LCAwLjA4NzUsIDAuMDc1LCAwLjA2ODc1LCAwLjA2NSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiMC4xMTc1LCAwLjEwNjI1LCAwLjA5Mzc1LCAwLjA4NzUsIDAuMDgxMjUsIDAuMDcxMjUsIDAuMDY4NzUiLCBcCi0gICAgICAgICAgIjAuMTMsIDAuMTE4NzUsIDAuMTA2MjUsIDAuMSwgMC4wOTM3NSwgMC4wODM3NSwgMC4wODEyNSIsIFwKLSAgICAgICAgICAiMC4xNDYyNSwgMC4xMzUsIDAuMTI4NzUsIDAuMTE2MjUsIDAuMTEsIDAuMTA2MjUsIDAuMDk3NSIsIFwKLSAgICAgICAgICAiMC4xNjEyNSwgMC4xNSwgMC4xNDM3NSwgMC4xMzEyNSwgMC4xMjUsIDAuMTIxMjUsIDAuMTEyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUQmRSZTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fRV9FUV8xX0FOX1NJX0VRXzEgPT0gMSdiMSI7Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDgxMjUsIDAuMDcsIDAuMDU3NSwgMC4wNDUsIDAuMDM4NzUsIDAuMDIyNSwgMC4wMTM3NSIsIFwKLSAgICAgICAgICAiMC4wOTI1LCAwLjA4MTI1LCAwLjA2ODc1LCAwLjA1NjI1LCAwLjA0Mzc1LCAwLjAzMzc1LCAwLjAxODc1IiwgXAotICAgICAgICAgICIwLjEwNSwgMC4wOTM3NSwgMC4wODEyNSwgMC4wNjg3NSwgMC4wNTYyNSwgMC4wNDYyNSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4xMTEyNSwgMC4xLCAwLjA4NzUsIDAuMDc1LCAwLjA2ODc1LCAwLjA1MjUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMTIzNzUsIDAuMTEyNSwgMC4xLCAwLjA4NzUsIDAuMDgxMjUsIDAuMDY1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICIwLjE0LCAwLjEyODc1LCAwLjExNjI1LCAwLjEwMzc1LCAwLjA5NzUsIDAuMDgxMjUsIDAuMDcyNSIsIFwKLSAgICAgICAgICAiMC4xNTUsIDAuMTQzNzUsIDAuMTMxMjUsIDAuMTE4NzUsIDAuMTA2MjUsIDAuMDk2MjUsIDAuMDgxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIkQmRSYhU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8xX0FOX0VfRVFfMV9BTl9TSV9FUV8wID09IDEnYjEiOwotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExMjUsIDAuMTAxMjUsIDAuMDg4NzUsIDAuMDgyNSwgMC4wNzYyNSwgMC4wNjYyNSwgMC4wNTc1IiwgXAotICAgICAgICAgICIwLjExNzUsIDAuMTEyNSwgMC4xLCAwLjA4NzUsIDAuMDgxMjUsIDAuMDc3NSwgMC4wNjg3NSIsIFwKLSAgICAgICAgICAiMC4xMywgMC4xMTg3NSwgMC4xMTI1LCAwLjEsIDAuMDkzNzUsIDAuMDksIDAuMDgxMjUiLCBcCi0gICAgICAgICAgIjAuMTQyNSwgMC4xMzEyNSwgMC4xMTg3NSwgMC4xMTI1LCAwLjEwNjI1LCAwLjA5NjI1LCAwLjA5Mzc1IiwgXAotICAgICAgICAgICIwLjE0ODc1LCAwLjE0Mzc1LCAwLjEzMTI1LCAwLjExODc1LCAwLjExMjUsIDAuMTA4NzUsIDAuMSIsIFwKLSAgICAgICAgICAiMC4xNjUsIDAuMTUzNzUsIDAuMTQxMjUsIDAuMTM1LCAwLjEyODc1LCAwLjExODc1LCAwLjExIiwgXAotICAgICAgICAgICIwLjE3Mzc1LCAwLjE2MjUsIDAuMTUsIDAuMTQzNzUsIDAuMTM3NSwgMC4xMjc1LCAwLjExODc1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTSSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjQyMDkyOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDY0MDI2NTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2NDIwOTI7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyNjM2LCAwLjAwMjYyLCAwLjAwMjYxMSwgMC4wMDI2MDcsIDAuMDAyNjA1LCAwLjAwMjYwNSwgMC4wMDI2MTUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDQ3OTcsIDAuMDA0Nzg4LCAwLjAwNDc4MiwgMC4wMDQ3OCwgMC4wMDQ3ODEsIDAuMDA0NzgzLCAwLjAwNDc4OCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJTRSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wNTYyNSwgLTAuMDUxMjUsIC0wLjA0NSwgLTAuMDM4NzUsIC0wLjAzMjUsIC0wLjAyMjUsIC0wLjAyIiwgXAotICAgICAgICAgICItMC4wNjc1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzM3NSwgLTAuMDI1IiwgXAotICAgICAgICAgICItMC4wNzM3NSwgLTAuMDY4NzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDQsIC0wLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjA4NjI1LCAtMC4wODEyNSwgLTAuMDc1LCAtMC4wNjg3NSwgLTAuMDYyNSwgLTAuMDUyNSwgLTAuMDUiLCBcCi0gICAgICAgICAgIi0wLjA5ODc1LCAtMC4wODc1LCAtMC4wODEyNSwgLTAuMDc1LCAtMC4wNzUsIC0wLjA2NSwgLTAuMDU2MjUiLCBcCi0gICAgICAgICAgIi0wLjExNSwgLTAuMTAzNzUsIC0wLjA5NzUsIC0wLjA5MTI1LCAtMC4wODUsIC0wLjA4MTI1LCAtMC4wNzI1IiwgXAotICAgICAgICAgICItMC4xMjM3NSwgLTAuMTE4NzUsIC0wLjExMjUsIC0wLjEwNjI1LCAtMC4xLCAtMC4wOSwgLTAuMDg3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAxODc1LCAtMC4wMDc1LCAtMC4wMDEyNSwgMC4wMTEyNSwgMC4wMTc1LCAwLjAyNzUsIDAuMDM2MjUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAsIDAuMDEyNSwgMC4wMjI1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAsIDAuMDEsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMDYyNSwgMC4wMDM3NSwgMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMDg3NSwgMCIsIFwKLSAgICAgICAgICAiLTAuMDY1LCAtMC4wNTM3NSwgLTAuMDQ3NSwgLTAuMDQxMjUsIC0wLjAyODc1LCAtMC4wMTg3NSwgLTAuMDEiLCBcCi0gICAgICAgICAgIi0wLjA3Mzc1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjAzNzUsIC0wLjAyNzUsIC0wLjAxODc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJTRSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTM3NSwgMC4wODI1LCAwLjA3LCAwLjA2Mzc1LCAwLjA1NzUsIDAuMDQ3NSwgMC4wMzg3NSIsIFwKLSAgICAgICAgICAiMC4wOTg3NSwgMC4wODc1LCAwLjA4MTI1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDU4NzUsIDAuMDUiLCBcCi0gICAgICAgICAgIjAuMTExMjUsIDAuMSwgMC4wODc1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNjUsIDAuMDYyNSIsIFwKLSAgICAgICAgICAiMC4xMjM3NSwgMC4xMTI1LCAwLjEsIDAuMDkzNzUsIDAuMDg3NSwgMC4wNzc1LCAwLjA3NSIsIFwKLSAgICAgICAgICAiMC4xMywgMC4xMTg3NSwgMC4xMTI1LCAwLjEwNjI1LCAwLjEsIDAuMDksIDAuMDgxMjUiLCBcCi0gICAgICAgICAgIjAuMTQ2MjUsIDAuMTM1LCAwLjEyODc1LCAwLjEyMjUsIDAuMTE2MjUsIDAuMTA2MjUsIDAuMDk3NSIsIFwKLSAgICAgICAgICAiMC4xNjEyNSwgMC4xNSwgMC4xNDM3NSwgMC4xMzEyNSwgMC4xMjUsIDAuMTIxMjUsIDAuMTEyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2ODc1LCAwLjA1NzUsIDAuMDQ1LCAwLjAzMjUsIDAuMDI2MjUsIDAuMDEsIDAuMDAxMjUiLCBcCi0gICAgICAgICAgIjAuMDgsIDAuMDY4NzUsIDAuMDU2MjUsIDAuMDQzNzUsIDAuMDMxMjUsIDAuMDIxMjUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMDg2MjUsIDAuMDgxMjUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNDM3NSwgMC4wMjc1LCAwLjAxODc1IiwgXAotICAgICAgICAgICIwLjA5ODc1LCAwLjA4NzUsIDAuMDc1LCAwLjA2MjUsIDAuMDUsIDAuMDQsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMTA1LCAwLjEsIDAuMDg3NSwgMC4wNzUsIDAuMDYyNSwgMC4wNDYyNSwgMC4wMzc1IiwgXAotICAgICAgICAgICIwLjEyMTI1LCAwLjExLCAwLjA5NzUsIDAuMDg1LCAwLjA3ODc1LCAwLjA2MjUsIDAuMDUzNzUiLCBcCi0gICAgICAgICAgIjAuMTM2MjUsIDAuMTI1LCAwLjExMjUsIDAuMSwgMC4wODc1LCAwLjA3MTI1LCAwLjA2MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBTRURGRlhMICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKFNFREZGWEwpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC40MzM5MTQ7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgZmYgKE4zMCxORVQ1MzYpIHsKLSAgICBuZXh0X3N0YXRlIDogIigoU0UgU0kpICsgKCFTRSAoKEUgRCkgKyAoIUUgKCEoIU4zMCkpKSkpKSI7Ci0gICAgY2xvY2tlZF9vbiA6ICJDSyI7Ci0gIH0KLSAgcGluKENLKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA1OTQxMjI7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNTkzNzYzOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDU5NDEyMjsKLSAgICBjbG9jayA6IHRydWU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyOTM1LCAwLjAwMjkxMSwgMC4wMDI4OTcsIDAuMDAyOTA0LCAwLjAwMjkxOCwgMC4wMDI5MzcsIDAuMDAyOTU4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA2MDIzLCAwLjAwNiwgMC4wMDYsIDAuMDA2MDEyLCAwLjAwNjAzMiwgMC4wMDYwNzcsIDAuMDA2MTE2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRCYhRSZTRSYhU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX0VfRVFfMF9BTl9TRV9FUV8xX0FOX1NJX0VRXzAgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4xOTk5MDYsIDAuMjEwMTM1LCAwLjIyMjg0NiwgMC4yMzQ1NiwgMC4yNDQ5MjMsIDAuMjU5MDMzLCAwLjI2OTg5NiIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDkzMjIsIDAuMTAyODQyLCAwLjExNTM1OSwgMC4xMjY1NywgMC4xMzYyODQsIDAuMTQ5MzY3LCAwLjE1OTMxNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNTkwNzI4OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDU4OTI4ODsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA1OTA3Mjg7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzMzEzLCAwLjAwMzI5NywgMC4wMDMyOTEsIDAuMDAzMjg4LCAwLjAwMzI4NiwgMC4wMDMyODcsIDAuMDAzMjkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDcxNzUsIDAuMDA3MTY3LCAwLjAwNzE2NCwgMC4wMDcxNjEsIDAuMDA3MTYxLCAwLjAwNzE2LCAwLjAwNzE2NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJFJiFTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJFX0VRXzFfQU5fU0VfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4xMTI1LCAtMC4xMDc1LCAtMC4xMDEyNSwgLTAuMDk1LCAtMC4wODg3NSwgLTAuMDg1LCAtMC4wODI1IiwgXAotICAgICAgICAgICItMC4xMjM3NSwgLTAuMTEyNSwgLTAuMTA2MjUsIC0wLjEwNjI1LCAtMC4xLCAtMC4wOTYyNSwgLTAuMDg3NSIsIFwKLSAgICAgICAgICAiLTAuMTMsIC0wLjEyNSwgLTAuMTE4NzUsIC0wLjExMjUsIC0wLjExMjUsIC0wLjEwMjUsIC0wLjEiLCBcCi0gICAgICAgICAgIi0wLjE0MjUsIC0wLjEzNzUsIC0wLjEzMTI1LCAtMC4xMjUsIC0wLjEyNSwgLTAuMTE1LCAtMC4xMTI1IiwgXAotICAgICAgICAgICItMC4xNTUsIC0wLjE1LCAtMC4xNDM3NSwgLTAuMTM3NSwgLTAuMTMxMjUsIC0wLjEyNzUsIC0wLjEyNSIsIFwKLSAgICAgICAgICAiLTAuMTcxMjUsIC0wLjE2NjI1LCAtMC4xNiwgLTAuMTUzNzUsIC0wLjE0NzUsIC0wLjE0Mzc1LCAtMC4xNDEyNSIsIFwKLSAgICAgICAgICAiLTAuMTg2MjUsIC0wLjE3NSwgLTAuMTY4NzUsIC0wLjE2ODc1LCAtMC4xNjI1LCAtMC4xNTg3NSwgLTAuMTUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wNjI1LCAtMC4wNTEyNSwgLTAuMDQ1LCAtMC4wMzg3NSwgLTAuMDMyNSwgLTAuMDIyNSwgLTAuMDEzNzUiLCBcCi0gICAgICAgICAgIi0wLjA2NzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjAzMzc1LCAtMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjA4LCAtMC4wNzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDQsIC0wLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wOTI1LCAtMC4wODEyNSwgLTAuMDc1LCAtMC4wNjg3NSwgLTAuMDYyNSwgLTAuMDUyNSwgLTAuMDQzNzUiLCBcCi0gICAgICAgICAgIi0wLjA5ODc1LCAtMC4wOTM3NSwgLTAuMDg3NSwgLTAuMDgxMjUsIC0wLjA2ODc1LCAtMC4wNTg3NSwgLTAuMDU2MjUiLCBcCi0gICAgICAgICAgIi0wLjExNSwgLTAuMTAzNzUsIC0wLjA5NzUsIC0wLjA5MTI1LCAtMC4wODUsIC0wLjA3NSwgLTAuMDY2MjUiLCBcCi0gICAgICAgICAgIi0wLjEyMzc1LCAtMC4xMTI1LCAtMC4xMDYyNSwgLTAuMTA2MjUsIC0wLjEsIC0wLjA5LCAtMC4wODEyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiRSYhU0UiOwotICAgICAgc2RmX2NvbmQgOiAiRV9FUV8xX0FOX1NFX0VRXzAgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTU2MjUsIDAuMTQ1LCAwLjEzMjUsIDAuMTI2MjUsIDAuMTIsIDAuMTEsIDAuMTA3NSIsIFwKLSAgICAgICAgICAiMC4xNjEyNSwgMC4xNTYyNSwgMC4xNDM3NSwgMC4xMzc1LCAwLjEzMTI1LCAwLjEyMTI1LCAwLjExODc1IiwgXAotICAgICAgICAgICIwLjE3Mzc1LCAwLjE2MjUsIDAuMTU2MjUsIDAuMTQzNzUsIDAuMTM3NSwgMC4xMzM3NSwgMC4xMjUiLCBcCi0gICAgICAgICAgIjAuMTg2MjUsIDAuMTc1LCAwLjE2MjUsIDAuMTU2MjUsIDAuMTUsIDAuMTQ2MjUsIDAuMTM3NSIsIFwKLSAgICAgICAgICAiMC4xOTg3NSwgMC4xODc1LCAwLjE3NSwgMC4xNjg3NSwgMC4xNjI1LCAwLjE1MjUsIDAuMTUiLCBcCi0gICAgICAgICAgIjAuMjE1LCAwLjIwMzc1LCAwLjE5MTI1LCAwLjE4NSwgMC4xNzg3NSwgMC4xNjg3NSwgMC4xNjYyNSIsIFwKLSAgICAgICAgICAiMC4yMjM3NSwgMC4yMTg3NSwgMC4yMDYyNSwgMC4yLCAwLjE5Mzc1LCAwLjE4Mzc1LCAwLjE4MTI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTM3NSwgMC4xMjYyNSwgMC4xMTM3NSwgMC4xMDEyNSwgMC4wODg3NSwgMC4wNzg3NSwgMC4wNyIsIFwKLSAgICAgICAgICAiMC4xNDI1LCAwLjEzMTI1LCAwLjExODc1LCAwLjExMjUsIDAuMSwgMC4wODM3NSwgMC4wNzUiLCBcCi0gICAgICAgICAgIjAuMTU1LCAwLjE0Mzc1LCAwLjEzMTI1LCAwLjExODc1LCAwLjExMjUsIDAuMDk2MjUsIDAuMDg3NSIsIFwKLSAgICAgICAgICAiMC4xNjEyNSwgMC4xNTYyNSwgMC4xNDM3NSwgMC4xMzEyNSwgMC4xMTg3NSwgMC4xMDg3NSwgMC4wOTM3NSIsIFwKLSAgICAgICAgICAiMC4xNzM3NSwgMC4xNjI1LCAwLjE1LCAwLjEzNzUsIDAuMTMxMjUsIDAuMTE1LCAwLjEwNjI1IiwgXAotICAgICAgICAgICIwLjE5LCAwLjE3ODc1LCAwLjE2NjI1LCAwLjE1Mzc1LCAwLjE0MTI1LCAwLjEzMTI1LCAwLjEyMjUiLCBcCi0gICAgICAgICAgIjAuMTk4NzUsIDAuMTkzNzUsIDAuMTgxMjUsIDAuMTY4NzUsIDAuMTU2MjUsIDAuMTQsIDAuMTMxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEUpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTUwMTAxOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTUwMDY4OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTUwMTAxOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNjc3LCAwLjAwNjc0NCwgMC4wMDY3NTEsIDAuMDA2NzU3LCAwLjAwNjc3NSwgMC4wMDY4MDEsIDAuMDA2ODI3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA4MTExLCAwLjAwODA4LCAwLjAwODA3NiwgMC4wMDgwODgsIDAuMDA4MDk3LCAwLjAwODEzMywgMC4wMDgxNjkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIVNFIjsKLSAgICAgIHNkZl9jb25kIDogIlNFID09IDEnYjAiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjExODc1LCAtMC4xMTM3NSwgLTAuMTAxMjUsIC0wLjA4ODc1LCAtMC4wODI1LCAtMC4wNjYyNSwgLTAuMDU3NSIsIFwKLSAgICAgICAgICAiLTAuMTMsIC0wLjExODc1LCAtMC4xMTI1LCAtMC4xLCAtMC4wOTM3NSwgLTAuMDc3NSwgLTAuMDY4NzUiLCBcCi0gICAgICAgICAgIi0wLjE0MjUsIC0wLjEzMTI1LCAtMC4xMjUsIC0wLjExMjUsIC0wLjEsIC0wLjA5LCAtMC4wODEyNSIsIFwKLSAgICAgICAgICAiLTAuMTU1LCAtMC4xNDM3NSwgLTAuMTMxMjUsIC0wLjExODc1LCAtMC4xMTI1LCAtMC4wOTYyNSwgLTAuMDg3NSIsIFwKLSAgICAgICAgICAiLTAuMTYxMjUsIC0wLjE1LCAtMC4xMzc1LCAtMC4xMjUsIC0wLjExODc1LCAtMC4xMDI1LCAtMC4wOTM3NSIsIFwKLSAgICAgICAgICAiLTAuMTcxMjUsIC0wLjE2LCAtMC4xNDc1LCAtMC4xMzUsIC0wLjEyODc1LCAtMC4xMTI1LCAtMC4xMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMTgsIC0wLjE2ODc1LCAtMC4xNTYyNSwgLTAuMTQzNzUsIC0wLjEzNzUsIC0wLjEyMTI1LCAtMC4xMTI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDU2MjUsIC0wLjA0NSwgLTAuMDM4NzUsIC0wLjAzMjUsIC0wLjAyNjI1LCAtMC4wMTYyNSwgLTAuMDA3NSIsIFwKLSAgICAgICAgICAiLTAuMDYxMjUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAyNzUsIC0wLjAxODc1IiwgXAotICAgICAgICAgICItMC4wNzM3NSwgLTAuMDY4NzUsIC0wLjA2MjUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDMzNzUsIC0wLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wODYyNSwgLTAuMDc1LCAtMC4wNjg3NSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA0NjI1LCAtMC4wMzc1IiwgXAotICAgICAgICAgICItMC4wOTg3NSwgLTAuMDg3NSwgLTAuMDgxMjUsIC0wLjA3NSwgLTAuMDY4NzUsIC0wLjA1ODc1LCAtMC4wNSIsIFwKLSAgICAgICAgICAiLTAuMTA4NzUsIC0wLjEwMzc1LCAtMC4wOTc1LCAtMC4wOTEyNSwgLTAuMDg1LCAtMC4wNzUsIC0wLjA2NjI1IiwgXAotICAgICAgICAgICItMC4xMjM3NSwgLTAuMTE4NzUsIC0wLjExMjUsIC0wLjEwNjI1LCAtMC4xLCAtMC4wOSwgLTAuMDgxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJTRSA9PSAxJ2IwIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNSwgMC4xMzg3NSwgMC4xMjYyNSwgMC4xMiwgMC4xMTM3NSwgMC4xMSwgMC4xMDEyNSIsIFwKLSAgICAgICAgICAiMC4xNTUsIDAuMTUsIDAuMTM3NSwgMC4xMzEyNSwgMC4xMjUsIDAuMTE1LCAwLjExMjUiLCBcCi0gICAgICAgICAgIjAuMTY3NSwgMC4xNjI1LCAwLjE1LCAwLjE0Mzc1LCAwLjEzNzUsIDAuMTI3NSwgMC4xMjUiLCBcCi0gICAgICAgICAgIjAuMTgsIDAuMTY4NzUsIDAuMTYyNSwgMC4xNTYyNSwgMC4xNSwgMC4xNCwgMC4xMzEyNSIsIFwKLSAgICAgICAgICAiMC4xOTI1LCAwLjE4MTI1LCAwLjE3NSwgMC4xNjI1LCAwLjE1NjI1LCAwLjE1MjUsIDAuMTQzNzUiLCBcCi0gICAgICAgICAgIjAuMjA4NzUsIDAuMjAzNzUsIDAuMTkxMjUsIDAuMTg1LCAwLjE3ODc1LCAwLjE2ODc1LCAwLjE2NjI1IiwgXAotICAgICAgICAgICIwLjIzLCAwLjIxODc1LCAwLjIwNjI1LCAwLjIsIDAuMTkzNzUsIDAuMTgzNzUsIDAuMTgxMjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMzEyNSwgMC4xMjYyNSwgMC4xMiwgMC4xMTM3NSwgMC4xMDc1LCAwLjEwMzc1LCAwLjA5NSIsIFwKLSAgICAgICAgICAiMC4xNDI1LCAwLjEzMTI1LCAwLjEyNSwgMC4xMjUsIDAuMTE4NzUsIDAuMTE1LCAwLjEwNjI1IiwgXAotICAgICAgICAgICIwLjE0ODc1LCAwLjE0Mzc1LCAwLjEzNzUsIDAuMTMxMjUsIDAuMTMxMjUsIDAuMTIxMjUsIDAuMTE4NzUiLCBcCi0gICAgICAgICAgIjAuMTYxMjUsIDAuMTUsIDAuMTQzNzUsIDAuMTQzNzUsIDAuMTM3NSwgMC4xMjc1LCAwLjEyNSIsIFwKLSAgICAgICAgICAiMC4xNjc1LCAwLjE1NjI1LCAwLjE1LCAwLjE1LCAwLjE0Mzc1LCAwLjEzMzc1LCAwLjEzMTI1IiwgXAotICAgICAgICAgICIwLjE3MTI1LCAwLjE2NjI1LCAwLjE2LCAwLjE1Mzc1LCAwLjE1Mzc1LCAwLjE0Mzc1LCAwLjE0MTI1IiwgXAotICAgICAgICAgICIwLjE4LCAwLjE3NSwgMC4xNjg3NSwgMC4xNjI1LCAwLjE1NjI1LCAwLjE1MjUsIDAuMTQzNzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFEpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4xNTA3NDM7Ci0gICAgZnVuY3Rpb24gOiAiTjMwIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBub25fdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJpc2luZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNjc0NDMsIDAuMTgxNjUsIDAuMzA5MzIxLCAwLjUyMDY2NCwgMC43MzI2NTksIDEuMjI3LCAxLjUxMDAzIiwgXAotICAgICAgICAgICIwLjE3NzU5OSwgMC4xOTE4MDcsIDAuMzE5MzYxLCAwLjUzMDkyNSwgMC43NDI2NDIsIDEuMjM3MTYsIDEuNTIwMTIiLCBcCi0gICAgICAgICAgIjAuMTkwMjE4LCAwLjIwNDQxNywgMC4zMzIwMDgsIDAuNTQzNTc0LCAwLjc1NTI2NSwgMS4yNDk3OCwgMS41MzI3NCIsIFwKLSAgICAgICAgICAiMC4yMDE3ODcsIDAuMjE1OTk1LCAwLjM0MzU2NiwgMC41NTUxMTIsIDAuNzY2ODM0LCAxLjI2MTM2LCAxLjU0NDMyIiwgXAotICAgICAgICAgICIwLjIxMTY1MywgMC4yMjU4NjEsIDAuMzUzMzcyLCAwLjU2NTAzNywgMC43NzY3MDEsIDEuMjcxMjgsIDEuNTU0MTgiLCBcCi0gICAgICAgICAgIjAuMjI1OTcyLCAwLjI0MDE3NiwgMC4zNjc1ODMsIDAuNTc5MjIsIDAuNzkxMjI5LCAxLjI4NTcsIDEuNTY4NTciLCBcCi0gICAgICAgICAgIjAuMjM2NTM4LCAwLjI1MDc0NSwgMC4zNzgzNDMsIDAuNTg5ODM1LCAwLjgwMTYwNiwgMS4yOTYxNSwgMS41NzkxMSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNTU4MDYsIDAuMTg0MjIxLCAwLjQ0NDA4OSwgMC44ODAxMzcsIDEuMzE3MDQsIDIuMzM0MTQsIDIuOTE2MDEiLCBcCi0gICAgICAgICAgIjAuMTU1Njk1LCAwLjE4Mzk1LCAwLjQ0NDI1NCwgMC44ODAzNCwgMS4zMTY4MSwgMi4zMzQxOSwgMi45MTU2IiwgXAotICAgICAgICAgICIwLjE1NTcxOSwgMC4xODQxODksIDAuNDQ0Mjc0LCAwLjg4MDMxMSwgMS4zMTY4MSwgMi4zMzQyMiwgMi45MTU2IiwgXAotICAgICAgICAgICIwLjE1NTcwNCwgMC4xODQwMjUsIDAuNDQ0MjUxLCAwLjg4MDMyNSwgMS4zMTY4MSwgMi4zMzQyNiwgMi45MTU2MiIsIFwKLSAgICAgICAgICAiMC4xNTU2MjMsIDAuMTg0MTc4LCAwLjQ0NDEyNCwgMC44ODA3NTcsIDEuMzE2NzUsIDIuMzM0MjcsIDIuOTE1NjIiLCBcCi0gICAgICAgICAgIjAuMTU1Njg2LCAwLjE4NDI4MywgMC40NDQ4MTcsIDAuODgwMTc2LCAxLjMxNjMsIDIuMzM0NjksIDIuOTE1ODUiLCBcCi0gICAgICAgICAgIjAuMTU1NTMsIDAuMTg0MTgyLCAwLjQ0NDAxOSwgMC44ODA2OTksIDEuMzE2OCwgMi4zMzQyOCwgMi45MTU4Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE4MDIyNSwgMC4xOTQxNTcsIDAuMzE5MDE5LCAwLjUyNjM5NywgMC43MzQzMTYsIDEuMjE4NzcsIDEuNDk1NzgiLCBcCi0gICAgICAgICAgIjAuMTkwNDQ5LCAwLjIwNDM4MywgMC4zMjkyNDcsIDAuNTM2NzE5LCAwLjc0NDQyOCwgMS4yMjksIDEuNTA2MDUiLCBcCi0gICAgICAgICAgIjAuMjAzMTYyLCAwLjIxNzA4OCwgMC4zNDE5MjUsIDAuNTQ5NDgyLCAwLjc1NzE0MiwgMS4yNDE2LCAxLjUxODY5IiwgXAotICAgICAgICAgICIwLjIxNDg4NCwgMC4yMjg4MjUsIDAuMzUzOTA4LCAwLjU2MTIxNywgMC43Njg4LCAxLjI1MzM5LCAxLjUzMDQiLCBcCi0gICAgICAgICAgIjAuMjI1MjQxLCAwLjIzOTE2MSwgMC4zNjQwMDQsIDAuNTcxNTQ1LCAwLjc3OTIxOCwgMS4yNjM2NywgMS41NDA4IiwgXAotICAgICAgICAgICIwLjIzOTM1MSwgMC4yNTMyODYsIDAuMzc4MTAyLCAwLjU4NTY3NSwgMC43OTMzMjgsIDEuMjc3OTIsIDEuNTU0ODEiLCBcCi0gICAgICAgICAgIjAuMjUwMjE4LCAwLjI2NDE1NCwgMC4zODkwNTIsIDAuNTk2NDksIDAuODA0Mzc5LCAxLjI4ODY4LCAxLjU2NTc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE0OTc4OCwgMC4xNzc1MzYsIDAuNDI2OTM3LCAwLjg0MjkwMywgMS4yNTkwOCwgMi4yMzM2MSwgMi43OTAwMyIsIFwKLSAgICAgICAgICAiMC4xNDk5ODcsIDAuMTc3NTQ5LCAwLjQyNjkzNywgMC44NDI4OTgsIDEuMjYwMDIsIDIuMjMzNjEsIDIuNzkwMTMiLCBcCi0gICAgICAgICAgIjAuMTQ5NTczLCAwLjE3NzU0OCwgMC40MjY5MTQsIDAuODQyOTI5LCAxLjI2MDAyLCAyLjIzNDA1LCAyLjc4OTk2IiwgXAotICAgICAgICAgICIwLjE0OTc0MSwgMC4xNzc1NDgsIDAuNDI2ODkyLCAwLjg0MjkyMywgMS4yNTkwNywgMi4yMzM2NiwgMi43ODk5NSIsIFwKLSAgICAgICAgICAiMC4xNDk1NjYsIDAuMTc3NTQ5LCAwLjQyNjkxNSwgMC44NDI5MTMsIDEuMjYwMDIsIDIuMjMzNjIsIDIuNzg5OTUiLCBcCi0gICAgICAgICAgIjAuMTQ5NTI3LCAwLjE3NzU0NywgMC40MjY5MDYsIDAuODQyOTI4LCAxLjI2MDQ0LCAyLjIzMzYsIDIuNzg5NzQiLCBcCi0gICAgICAgICAgIjAuMTQ5NDIzLCAwLjE3NzUxNiwgMC40MjY5MjUsIDAuODQyOTI3LCAxLjI1OTY0LCAyLjIzMjk0LCAyLjc4OTkxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDQsIDAuMDA0NDAxLCAwLjAwNDQwNSwgMC4wMDQ0MDcsIDAuMDA0NDA4LCAwLjAwNDQwOCwgMC4wMDQ0MDgiLCBcCi0gICAgICAgICAgIjAuMDA0MzgzLCAwLjAwNDM4NCwgMC4wMDQzODgsIDAuMDA0MzksIDAuMDA0MzkxLCAwLjAwNDM5MSwgMC4wMDQzOTEiLCBcCi0gICAgICAgICAgIjAuMDA0Mzc3LCAwLjAwNDM3OCwgMC4wMDQzODIsIDAuMDA0Mzg0LCAwLjAwNDM4NCwgMC4wMDQzODQsIDAuMDA0Mzg1IiwgXAotICAgICAgICAgICIwLjAwNDM3OCwgMC4wMDQzOCwgMC4wMDQzODQsIDAuMDA0Mzg1LCAwLjAwNDM4NiwgMC4wMDQzODcsIDAuMDA0Mzg3IiwgXAotICAgICAgICAgICIwLjAwNDM4NiwgMC4wMDQzODcsIDAuMDA0MzkxLCAwLjAwNDM5MywgMC4wMDQzOTQsIDAuMDA0Mzk0LCAwLjAwNDM5NCIsIFwKLSAgICAgICAgICAiMC4wMDQzOTgsIDAuMDA0Mzk5LCAwLjAwNDQwMywgMC4wMDQ0MDUsIDAuMDA0NDA2LCAwLjAwNDQwNiwgMC4wMDQ0MDYiLCBcCi0gICAgICAgICAgIjAuMDA0NDEsIDAuMDA0NDExLCAwLjAwNDQxNiwgMC4wMDQ0MTcsIDAuMDA0NDE4LCAwLjAwNDQxOCwgMC4wMDQ0MTkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDUyNTUsIDAuMDA1MjU2LCAwLjAwNTI2LCAwLjAwNTI2MiwgMC4wMDUyNjIsIDAuMDA1MjYzLCAwLjAwNTI2MiIsIFwKLSAgICAgICAgICAiMC4wMDUyNCwgMC4wMDUyNDEsIDAuMDA1MjQ1LCAwLjAwNTI0NywgMC4wMDUyNDcsIDAuMDA1MjQ4LCAwLjAwNTI0OCIsIFwKLSAgICAgICAgICAiMC4wMDUyNDEsIDAuMDA1MjQyLCAwLjAwNTI0NiwgMC4wMDUyNDgsIDAuMDA1MjQ4LCAwLjAwNTI0OSwgMC4wMDUyNDkiLCBcCi0gICAgICAgICAgIjAuMDA1MjQ5LCAwLjAwNTI1LCAwLjAwNTI1NSwgMC4wMDUyNTYsIDAuMDA1MjU2LCAwLjAwNTI1NywgMC4wMDUyNTgiLCBcCi0gICAgICAgICAgIjAuMDA1MjY1LCAwLjAwNTI2NywgMC4wMDUyNzEsIDAuMDA1MjcyLCAwLjAwNTI3MywgMC4wMDUyNzMsIDAuMDA1MjczIiwgXAotICAgICAgICAgICIwLjAwNTI4NCwgMC4wMDUyODYsIDAuMDA1MjksIDAuMDA1MjkxLCAwLjAwNTI5MiwgMC4wMDUyOTIsIDAuMDA1MjkyIiwgXAotICAgICAgICAgICIwLjAwNTMwNSwgMC4wMDUzMDcsIDAuMDA1MzExLCAwLjAwNTMxMiwgMC4wMDUzMTMsIDAuMDA1MzEzLCAwLjAwNTMxNCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUU4pICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4xNTIwNjg7Ci0gICAgZnVuY3Rpb24gOiAiTkVUNTM2IjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBub25fdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJpc2luZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xOTk5MDYsIDAuMjE0MDQ1LCAwLjM0MTE0MiwgMC41NTI5NzcsIDAuNzY0ODk3LCAxLjI1OTE2LCAxLjU0MTU1IiwgXAotICAgICAgICAgICIwLjIxMDEzNSwgMC4yMjQyNzIsIDAuMzUxMzczLCAwLjU2MzIyOSwgMC43NzUwODcsIDEuMjY5MzksIDEuNTUxNzYiLCBcCi0gICAgICAgICAgIjAuMjIyODQ2LCAwLjIzNjk4MiwgMC4zNjQwODMsIDAuNTc1OTM5LCAwLjc4Nzc5OCwgMS4yODIxLCAxLjU2NDQ3IiwgXAotICAgICAgICAgICIwLjIzNDU2LCAwLjI0ODY5NiwgMC4zNzU4MDksIDAuNTg3NjcsIDAuNzk5NDU3LCAxLjI5MzgyLCAxLjU3NiIsIFwKLSAgICAgICAgICAiMC4yNDQ5MjMsIDAuMjU5MDYsIDAuMzg2MTYxLCAwLjU5ODAyMSwgMC44MDk4NzUsIDEuMzA0MTgsIDEuNTg2NTUiLCBcCi0gICAgICAgICAgIjAuMjU5MDMzLCAwLjI3MzE3LCAwLjQwMDI3MSwgMC42MTIxMjUsIDAuODIzOTg2LCAxLjMxODI5LCAxLjYwMDY2IiwgXAotICAgICAgICAgICIwLjI2OTg5NiwgMC4yODQwMzIsIDAuNDExMTMzLCAwLjYyMjk2OCwgMC44MzQ3NiwgMS4zMjksIDEuNjExNDkiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTU0MTI0LCAwLjE4Mjk0MywgMC40NDQ0NDEsIDAuODc5NjczLCAxLjMxNTU5LCAyLjMzMjIyLCAyLjkxMzMyIiwgXAotICAgICAgICAgICIwLjE1NDEyMywgMC4xODI5NzQsIDAuNDQ0NDQxLCAwLjg3OTU1MSwgMS4zMTU1OSwgMi4zMzIyNCwgMi45MTMzOCIsIFwKLSAgICAgICAgICAiMC4xNTQxMjIsIDAuMTgzMDcsIDAuNDQ0NDE4LCAwLjg3OTk1MywgMS4zMTU0OCwgMi4zMzIxMywgMi45MTMyOCIsIFwKLSAgICAgICAgICAiMC4xNTQxMjMsIDAuMTgyOTUxLCAwLjQ0NDQwMSwgMC44Nzk5NjgsIDEuMzE1NTgsIDIuMzMyMTksIDIuOTEzMjciLCBcCi0gICAgICAgICAgIjAuMTU0MTIzLCAwLjE4MzA2NSwgMC40NDQ0MTksIDAuODc5OTQ0LCAxLjMxNTUsIDIuMzMyMSwgMi45MTMzIiwgXAotICAgICAgICAgICIwLjE1NDEyMiwgMC4xODMwNSwgMC40NDQ0MTQsIDAuODc5OTUxLCAxLjMxNTQ5LCAyLjMzMjIzLCAyLjkxMzE3IiwgXAotICAgICAgICAgICIwLjE1NDEyMiwgMC4xODMwNzEsIDAuNDQ0NDMsIDAuODc5OTY3LCAxLjMxNTc1LCAyLjMzMjEyLCAyLjkxMzI2Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE4NTk2NSwgMC4xOTk4MSwgMC4zMjQyODgsIDAuNTMxNzIyLCAwLjczOTIxMiwgMS4yMjMxNCwgMS40OTk3NSIsIFwKLSAgICAgICAgICAiMC4xOTYxMTcsIDAuMjA5OTYyLCAwLjMzNDQzNCwgMC41NDE5MTEsIDAuNzQ5MzExLCAxLjIzMzM3LCAxLjUwOTg0IiwgXAotICAgICAgICAgICIwLjIwODczMywgMC4yMjI1NzksIDAuMzQ3MDU0LCAwLjU1NDUzOCwgMC43NjE5MjksIDEuMjQ1OTksIDEuNTIyNDQiLCBcCi0gICAgICAgICAgIjAuMjIwMzA0LCAwLjIzNDE0OSwgMC4zNTg2MjEsIDAuNTY2MDk4LCAwLjc3MzQ5OSwgMS4yNTc1NiwgMS41MzQwMyIsIFwKLSAgICAgICAgICAiMC4yMzAxNzcsIDAuMjQ0MDIzLCAwLjM2ODQ5OSwgMC41NzU5NDIsIDAuNzgzMzg3LCAxLjI2NzMzLCAxLjU0Mzk3IiwgXAotICAgICAgICAgICIwLjI0NDQ4OCwgMC4yNTgzMzQsIDAuMzgyODA5LCAwLjU5MDI1NiwgMC43OTc2OTEsIDEuMjgxNzMsIDEuNTU4MjYiLCBcCi0gICAgICAgICAgIjAuMjU1MDQ1LCAwLjI2ODg5MSwgMC4zOTMzNjcsIDAuNjAwODA5LCAwLjgwODI2OCwgMS4yOTIzLCAxLjU2ODgyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE0NzU3NCwgMC4xNzUxNTIsIDAuNDI0Mzc4LCAwLjg0MTI3LCAxLjI1ODkzLCAyLjIzMTEyLCAyLjc4NzYzIiwgXAotICAgICAgICAgICIwLjE0NzU3MiwgMC4xNzUxMTEsIDAuNDI0NzA1LCAwLjg0MTI2NiwgMS4yNTg0NCwgMi4yMzExNiwgMi43ODcxOCIsIFwKLSAgICAgICAgICAiMC4xNDc1NzEsIDAuMTc1MTExLCAwLjQyNDcwNywgMC44NDEzMDQsIDEuMjU4NDQsIDIuMjMxMTUsIDIuNzg3MTkiLCBcCi0gICAgICAgICAgIjAuMTQ3NTcyLCAwLjE3NTExMSwgMC40MjQ3MDUsIDAuODQxMjc5LCAxLjI1ODQ0LCAyLjIzMTIsIDIuNzg3MjMiLCBcCi0gICAgICAgICAgIjAuMTQ3NTczLCAwLjE3NTExMiwgMC40MjQzNzgsIDAuODQxNzk5LCAxLjI1ODM2LCAyLjIzMTQsIDIuNzg3MiIsIFwKLSAgICAgICAgICAiMC4xNDc1NzIsIDAuMTc1MTEsIDAuNDI1MDEsIDAuODQxMzEyLCAxLjI1OCwgMi4yMzE5LCAyLjc4NzYiLCBcCi0gICAgICAgICAgIjAuMTQ3NTcyLCAwLjE3NTEwNywgMC40MjQyMzQsIDAuODQxNjQ1LCAxLjI1ODQ2LCAyLjIzMTM3LCAyLjc4NzQ2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNTI1NSwgMC4wMDUyNTYsIDAuMDA1MjYsIDAuMDA1MjYyLCAwLjAwNTI2MiwgMC4wMDUyNjMsIDAuMDA1MjYyIiwgXAotICAgICAgICAgICIwLjAwNTI0LCAwLjAwNTI0MSwgMC4wMDUyNDUsIDAuMDA1MjQ3LCAwLjAwNTI0NywgMC4wMDUyNDgsIDAuMDA1MjQ4IiwgXAotICAgICAgICAgICIwLjAwNTI0MSwgMC4wMDUyNDIsIDAuMDA1MjQ2LCAwLjAwNTI0OCwgMC4wMDUyNDgsIDAuMDA1MjQ5LCAwLjAwNTI0OSIsIFwKLSAgICAgICAgICAiMC4wMDUyNDksIDAuMDA1MjUsIDAuMDA1MjU1LCAwLjAwNTI1NiwgMC4wMDUyNTYsIDAuMDA1MjU3LCAwLjAwNTI1OCIsIFwKLSAgICAgICAgICAiMC4wMDUyNjUsIDAuMDA1MjY3LCAwLjAwNTI3MSwgMC4wMDUyNzIsIDAuMDA1MjczLCAwLjAwNTI3MywgMC4wMDUyNzMiLCBcCi0gICAgICAgICAgIjAuMDA1Mjg0LCAwLjAwNTI4NiwgMC4wMDUyOSwgMC4wMDUyOTEsIDAuMDA1MjkyLCAwLjAwNTI5MiwgMC4wMDUyOTIiLCBcCi0gICAgICAgICAgIjAuMDA1MzA1LCAwLjAwNTMwNywgMC4wMDUzMTEsIDAuMDA1MzEyLCAwLjAwNTMxMywgMC4wMDUzMTMsIDAuMDA1MzE0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0NCwgMC4wMDQ0MDEsIDAuMDA0NDA1LCAwLjAwNDQwNywgMC4wMDQ0MDgsIDAuMDA0NDA4LCAwLjAwNDQwOCIsIFwKLSAgICAgICAgICAiMC4wMDQzODMsIDAuMDA0Mzg0LCAwLjAwNDM4OCwgMC4wMDQzOSwgMC4wMDQzOTEsIDAuMDA0MzkxLCAwLjAwNDM5MSIsIFwKLSAgICAgICAgICAiMC4wMDQzNzcsIDAuMDA0Mzc4LCAwLjAwNDM4MiwgMC4wMDQzODQsIDAuMDA0Mzg0LCAwLjAwNDM4NCwgMC4wMDQzODUiLCBcCi0gICAgICAgICAgIjAuMDA0Mzc4LCAwLjAwNDM4LCAwLjAwNDM4NCwgMC4wMDQzODUsIDAuMDA0Mzg2LCAwLjAwNDM4NywgMC4wMDQzODciLCBcCi0gICAgICAgICAgIjAuMDA0Mzg2LCAwLjAwNDM4NywgMC4wMDQzOTEsIDAuMDA0MzkzLCAwLjAwNDM5NCwgMC4wMDQzOTQsIDAuMDA0Mzk0IiwgXAotICAgICAgICAgICIwLjAwNDM5OCwgMC4wMDQzOTksIDAuMDA0NDAzLCAwLjAwNDQwNSwgMC4wMDQ0MDYsIDAuMDA0NDA2LCAwLjAwNDQwNiIsIFwKLSAgICAgICAgICAiMC4wMDQ0MSwgMC4wMDQ0MTEsIDAuMDA0NDE2LCAwLjAwNDQxNywgMC4wMDQ0MTgsIDAuMDA0NDE4LCAwLjAwNDQxOSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oU0UpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTE1ODg1OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTE1ODQxOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTE1ODg1OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNTA2NCwgMC4wMDUwNDYsIDAuMDA1MDU1LCAwLjAwNTA2MSwgMC4wMDUwNzksIDAuMDA1MTA1LCAwLjAwNTEzMyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNjM3MywgMC4wMDYzMzYsIDAuMDA2MzMsIDAuMDA2MzMyLCAwLjAwNjM0NSwgMC4wMDYzNzcsIDAuMDA2NDE1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEJiFFJiFTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fRV9FUV8wX0FOX1NJX0VRXzAgPT0gMSdiMSI7Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDY4NzUsIC0wLjA2Mzc1LCAtMC4wNTc1LCAtMC4wNTc1LCAtMC4wNTEyNSwgLTAuMDQ3NSwgLTAuMDM4NzUiLCBcCi0gICAgICAgICAgIi0wLjA4LCAtMC4wNzUsIC0wLjA2ODc1LCAtMC4wNjI1LCAtMC4wNjI1LCAtMC4wNTI1LCAtMC4wNSIsIFwKLSAgICAgICAgICAiLTAuMDkyNSwgLTAuMDg3NSwgLTAuMDgxMjUsIC0wLjA3NSwgLTAuMDc1LCAtMC4wNjUsIC0wLjA2MjUiLCBcCi0gICAgICAgICAgIi0wLjEwNSwgLTAuMSwgLTAuMDkzNzUsIC0wLjA4NzUsIC0wLjA4MTI1LCAtMC4wNzc1LCAtMC4wNzUiLCBcCi0gICAgICAgICAgIi0wLjExMTI1LCAtMC4xMDYyNSwgLTAuMSwgLTAuMDkzNzUsIC0wLjA5Mzc1LCAtMC4wODM3NSwgLTAuMDgxMjUiLCBcCi0gICAgICAgICAgIi0wLjEyMTI1LCAtMC4xMTYyNSwgLTAuMTEsIC0wLjExLCAtMC4xMDM3NSwgLTAuMSwgLTAuMDkxMjUiLCBcCi0gICAgICAgICAgIi0wLjEzLCAtMC4xMjUsIC0wLjExODc1LCAtMC4xMTg3NSwgLTAuMTEyNSwgLTAuMTAyNSwgLTAuMSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRCYhRSZTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fRV9FUV8wX0FOX1NJX0VRXzEgPT0gMSdiMSI7Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDI1LCAtMC4wMTM3NSwgLTAuMDA3NSwgLTAuMDAxMjUsIDAuMDExMjUsIDAuMDIxMjUsIDAuMDIzNzUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMjUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLCAwLjAxLCAwLjAxODc1IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDI1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIC0wLjAwODc1LCAwIiwgXAotICAgICAgICAgICItMC4wNjEyNSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDIxMjUsIC0wLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjA3NzUsIC0wLjA2NjI1LCAtMC4wNiwgLTAuMDUzNzUsIC0wLjA0NzUsIC0wLjAzNzUsIC0wLjAyODc1IiwgXAotICAgICAgICAgICItMC4wODYyNSwgLTAuMDc1LCAtMC4wNjg3NSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA0NjI1LCAtMC4wNDM3NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRCZFJlNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9FX0VRXzFfQU5fU0lfRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wNTYyNSwgLTAuMDUxMjUsIC0wLjA0NSwgLTAuMDM4NzUsIC0wLjAzMjUsIC0wLjAyODc1LCAtMC4wMiIsIFwKLSAgICAgICAgICAiLTAuMDY3NSwgLTAuMDYyNSwgLTAuMDUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDMzNzUsIC0wLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wOCwgLTAuMDY4NzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNTYyNSwgLTAuMDQ2MjUsIC0wLjA0Mzc1IiwgXAotICAgICAgICAgICItMC4wOTI1LCAtMC4wODEyNSwgLTAuMDc1LCAtMC4wNjg3NSwgLTAuMDY4NzUsIC0wLjA1ODc1LCAtMC4wNTYyNSIsIFwKLSAgICAgICAgICAiLTAuMTA1LCAtMC4wOTM3NSwgLTAuMDg3NSwgLTAuMDgxMjUsIC0wLjA3NSwgLTAuMDcxMjUsIC0wLjA2MjUiLCBcCi0gICAgICAgICAgIi0wLjEyMTI1LCAtMC4xMSwgLTAuMTAzNzUsIC0wLjEwMzc1LCAtMC4wOTc1LCAtMC4wODc1LCAtMC4wODUiLCBcCi0gICAgICAgICAgIi0wLjEzNjI1LCAtMC4xMjUsIC0wLjExODc1LCAtMC4xMTI1LCAtMC4xMTI1LCAtMC4xMDI1LCAtMC4xIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIkQmRSYhU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8xX0FOX0VfRVFfMV9BTl9TSV9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAzNzUsIC0wLjAyNjI1LCAtMC4wMiwgLTAuMDA3NSwgLTAuMDAxMjUsIDAuMDA4NzUsIDAuMDE3NSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjAzNzUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIDAuMDAzNzUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDYxMjUsIC0wLjA1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMDg3NSwgMCIsIFwKLSAgICAgICAgICAiLTAuMDY3NSwgLTAuMDYyNSwgLTAuMDUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMjEyNSwgLTAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDgsIC0wLjA2ODc1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjAzNzUsIC0wLjAyNzUsIC0wLjAxODc1IiwgXAotICAgICAgICAgICItMC4wOSwgLTAuMDc4NzUsIC0wLjA2NjI1LCAtMC4wNiwgLTAuMDQ3NSwgLTAuMDM3NSwgLTAuMDI4NzUiLCBcCi0gICAgICAgICAgIi0wLjA5ODc1LCAtMC4wODc1LCAtMC4wNzUsIC0wLjA2ODc1LCAtMC4wNTYyNSwgLTAuMDQ2MjUsIC0wLjAzNzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEJiFFJiFTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fRV9FUV8wX0FOX1NJX0VRXzAgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg3NSwgMC4wNzYyNSwgMC4wNjM3NSwgMC4wNTEyNSwgMC4wNDUsIDAuMDI4NzUsIDAuMDIiLCBcCi0gICAgICAgICAgIjAuMDk4NzUsIDAuMDg3NSwgMC4wNzUsIDAuMDYyNSwgMC4wNSwgMC4wNCwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4xMTEyNSwgMC4xLCAwLjA4NzUsIDAuMDc1LCAwLjA2MjUsIDAuMDUyNSwgMC4wMzc1IiwgXAotICAgICAgICAgICIwLjExNzUsIDAuMTA2MjUsIDAuMDkzNzUsIDAuMDgxMjUsIDAuMDc1LCAwLjA1ODc1LCAwLjA1IiwgXAotICAgICAgICAgICIwLjEzLCAwLjExODc1LCAwLjEwNjI1LCAwLjA5Mzc1LCAwLjA4MTI1LCAwLjA3MTI1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICIwLjE0LCAwLjEyODc1LCAwLjExNjI1LCAwLjEwMzc1LCAwLjA5MTI1LCAwLjA4MTI1LCAwLjA2NjI1IiwgXAotICAgICAgICAgICIwLjE0ODc1LCAwLjEzNzUsIDAuMTI1LCAwLjExMjUsIDAuMSwgMC4wOSwgMC4wNzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEJiFFJlNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9FX0VRXzBfQU5fU0lfRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODc1LCAwLjA3NjI1LCAwLjA3LCAwLjA2Mzc1LCAwLjA1NzUsIDAuMDQ3NSwgMC4wNDUiLCBcCi0gICAgICAgICAgIjAuMDk4NzUsIDAuMDg3NSwgMC4wODEyNSwgMC4wNjg3NSwgMC4wNjg3NSwgMC4wNTg3NSwgMC4wNSIsIFwKLSAgICAgICAgICAiMC4xMTEyNSwgMC4xLCAwLjA4NzUsIDAuMDgxMjUsIDAuMDc1LCAwLjA3MTI1LCAwLjA2MjUiLCBcCi0gICAgICAgICAgIjAuMTIzNzUsIDAuMTEyNSwgMC4xLCAwLjA5Mzc1LCAwLjA4NzUsIDAuMDgzNzUsIDAuMDc1IiwgXAotICAgICAgICAgICIwLjEzNjI1LCAwLjEyNSwgMC4xMTI1LCAwLjEwNjI1LCAwLjEsIDAuMDk2MjUsIDAuMDg3NSIsIFwKLSAgICAgICAgICAiMC4xNTI1LCAwLjE0MTI1LCAwLjEzNSwgMC4xMjI1LCAwLjEyMjUsIDAuMTEyNSwgMC4xMDM3NSIsIFwKLSAgICAgICAgICAiMC4xNjc1LCAwLjE1NjI1LCAwLjE1LCAwLjEzNzUsIDAuMTM3NSwgMC4xMjc1LCAwLjExODc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRCZFJlNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9FX0VRXzFfQU5fU0lfRVFfMSA9PSAxJ2IxIjsKLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTM3NSwgMC4wODI1LCAwLjA3LCAwLjA1NzUsIDAuMDQ1LCAwLjAzNSwgMC4wMiIsIFwKLSAgICAgICAgICAiMC4wOTg3NSwgMC4wODc1LCAwLjA3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA0LCAwLjAzMTI1IiwgXAotICAgICAgICAgICIwLjExMTI1LCAwLjEsIDAuMDg3NSwgMC4wNzUsIDAuMDY4NzUsIDAuMDUyNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4xMjM3NSwgMC4xMTI1LCAwLjEsIDAuMDg3NSwgMC4wNzUsIDAuMDY1LCAwLjA1IiwgXAotICAgICAgICAgICIwLjEzLCAwLjExODc1LCAwLjEwNjI1LCAwLjA5Mzc1LCAwLjA4NzUsIDAuMDcxMjUsIDAuMDYyNSIsIFwKLSAgICAgICAgICAiMC4xNDYyNSwgMC4xMzUsIDAuMTIyNSwgMC4xMSwgMC4xMDM3NSwgMC4wODc1LCAwLjA3ODc1IiwgXAotICAgICAgICAgICIwLjE2MTI1LCAwLjE1LCAwLjEzNzUsIDAuMTI1LCAwLjExODc1LCAwLjEwMjUsIDAuMDkzNzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIkQmRSYhU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8xX0FOX0VfRVFfMV9BTl9TSV9FUV8wID09IDEnYjEiOwotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExMjUsIDAuMTAxMjUsIDAuMDk1LCAwLjA4MjUsIDAuMDgyNSwgMC4wNzI1LCAwLjA2Mzc1IiwgXAotICAgICAgICAgICIwLjEyMzc1LCAwLjExMjUsIDAuMTA2MjUsIDAuMDkzNzUsIDAuMDg3NSwgMC4wODM3NSwgMC4wNzUiLCBcCi0gICAgICAgICAgIjAuMTM2MjUsIDAuMTI1LCAwLjExMjUsIDAuMTA2MjUsIDAuMSwgMC4wOTYyNSwgMC4wODc1IiwgXAotICAgICAgICAgICIwLjE0ODc1LCAwLjEzNzUsIDAuMTI1LCAwLjExODc1LCAwLjExMjUsIDAuMTAyNSwgMC4xIiwgXAotICAgICAgICAgICIwLjE1NSwgMC4xNDM3NSwgMC4xMzc1LCAwLjEyNSwgMC4xMTg3NSwgMC4xMTUsIDAuMTA2MjUiLCBcCi0gICAgICAgICAgIjAuMTY1LCAwLjE1Mzc1LCAwLjE0NzUsIDAuMTM1LCAwLjEyODc1LCAwLjEyNSwgMC4xMTYyNSIsIFwKLSAgICAgICAgICAiMC4xNzM3NSwgMC4xNjI1LCAwLjE1NjI1LCAwLjE0Mzc1LCAwLjEzNzUsIDAuMTMzNzUsIDAuMTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTSSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjMwNTEyOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYyOTMzMTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2MzA1MTI7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyNjEyLCAwLjAwMjU5NiwgMC4wMDI1ODgsIDAuMDAyNTgzLCAwLjAwMjU4LCAwLjAwMjU4LCAwLjAwMjU5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA1MzI0LCAwLjAwNTMxNiwgMC4wMDUzMSwgMC4wMDUzMDcsIDAuMDA1MzA3LCAwLjAwNTMwOSwgMC4wMDUzMTQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiU0UiOwotICAgICAgc2RmX2NvbmQgOiAiU0UgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDYyNSwgLTAuMDU3NSwgLTAuMDUxMjUsIC0wLjA0NSwgLTAuMDM4NzUsIC0wLjAzNSwgLTAuMDI2MjUiLCBcCi0gICAgICAgICAgIi0wLjA3Mzc1LCAtMC4wNjg3NSwgLTAuMDU2MjUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDQsIC0wLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjA4NjI1LCAtMC4wNzUsIC0wLjA2ODc1LCAtMC4wNjI1LCAtMC4wNjI1LCAtMC4wNTI1LCAtMC4wNDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDkyNSwgLTAuMDg3NSwgLTAuMDgxMjUsIC0wLjA3NSwgLTAuMDY4NzUsIC0wLjA2NSwgLTAuMDU2MjUiLCBcCi0gICAgICAgICAgIi0wLjEwNSwgLTAuMSwgLTAuMDkzNzUsIC0wLjA4NzUsIC0wLjA4MTI1LCAtMC4wNzEyNSwgLTAuMDY4NzUiLCBcCi0gICAgICAgICAgIi0wLjEyMTI1LCAtMC4xMTYyNSwgLTAuMTEsIC0wLjEwMzc1LCAtMC4wOTc1LCAtMC4wODc1LCAtMC4wODUiLCBcCi0gICAgICAgICAgIi0wLjEzNjI1LCAtMC4xMjUsIC0wLjExODc1LCAtMC4xMTI1LCAtMC4xMTI1LCAtMC4xMDI1LCAtMC4xIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDI1LCAtMC4wMiwgLTAuMDA3NSwgLTAuMDAxMjUsIDAuMDExMjUsIDAuMDIxMjUsIDAuMDMiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMDYyNSwgMCwgMC4wMSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjAzNzUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLjAwMzc1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjA1NSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAwODc1LCAwIiwgXAotICAgICAgICAgICItMC4wNjEyNSwgLTAuMDU2MjUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAxNSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA3NzUsIC0wLjA2NjI1LCAtMC4wNiwgLTAuMDQ3NSwgLTAuMDQxMjUsIC0wLjAzMTI1LCAtMC4wMjI1IiwgXAotICAgICAgICAgICItMC4wODYyNSwgLTAuMDc1LCAtMC4wNjg3NSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNCwgLTAuMDMxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlNFIjsKLSAgICAgIHNkZl9jb25kIDogIlNFID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5Mzc1LCAwLjA4ODc1LCAwLjA3NjI1LCAwLjA3LCAwLjA2Mzc1LCAwLjA1Mzc1LCAwLjA1MTI1IiwgXAotICAgICAgICAgICIwLjEwNSwgMC4wOTM3NSwgMC4wODc1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIjAuMTE3NSwgMC4xMDYyNSwgMC4wOTM3NSwgMC4wODc1LCAwLjA4MTI1LCAwLjA3NzUsIDAuMDY4NzUiLCBcCi0gICAgICAgICAgIjAuMTIzNzUsIDAuMTE4NzUsIDAuMTA2MjUsIDAuMSwgMC4wOTM3NSwgMC4wODM3NSwgMC4wODEyNSIsIFwKLSAgICAgICAgICAiMC4xMzYyNSwgMC4xMjUsIDAuMTE4NzUsIDAuMTEyNSwgMC4xMDYyNSwgMC4wOTYyNSwgMC4wODc1IiwgXAotICAgICAgICAgICIwLjE1MjUsIDAuMTQxMjUsIDAuMTM1LCAwLjEyODc1LCAwLjEyMjUsIDAuMTEyNSwgMC4xMDM3NSIsIFwKLSAgICAgICAgICAiMC4xNjc1LCAwLjE1NjI1LCAwLjE1LCAwLjEzNzUsIDAuMTMxMjUsIDAuMTI3NSwgMC4xMTg3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3NSwgMC4wNywgMC4wNTEyNSwgMC4wNDUsIDAuMDMyNSwgMC4wMTYyNSwgMC4wMDc1IiwgXAotICAgICAgICAgICIwLjA4NjI1LCAwLjA3NSwgMC4wNjI1LCAwLjA1LCAwLjA0Mzc1LCAwLjAyNzUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMDk4NzUsIDAuMDg3NSwgMC4wNzUsIDAuMDYyNSwgMC4wNSwgMC4wNCwgMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMTA1LCAwLjA5Mzc1LCAwLjA4MTI1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDQ2MjUsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiMC4xMTc1LCAwLjEwNjI1LCAwLjA5Mzc1LCAwLjA4MTI1LCAwLjA2ODc1LCAwLjA1ODc1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjEyNzUsIDAuMTIyNSwgMC4xMDM3NSwgMC4wOTc1LCAwLjA4NSwgMC4wNjg3NSwgMC4wNiIsIFwKLSAgICAgICAgICAiMC4xNDI1LCAwLjEzMTI1LCAwLjExODc1LCAwLjEwNjI1LCAwLjA5Mzc1LCAwLjA4Mzc1LCAwLjA3NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogU01ERkZIUVgxICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoU01ERkZIUVgxKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuNTQ4OTI0OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIGZmIChOMzAsUUJJTlQpIHsKLSAgICBuZXh0X3N0YXRlIDogIigoU0UgU0kpICsgKCFTRSAoKFMwIEQxKSArICghUzAgRDApKSkpIjsKLSAgICBjbG9ja2VkX29uIDogIkNLIjsKLSAgfQotICBwaW4oQ0spICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDU3ODQ5NzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA1NzgyNTU7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNTc4NDk3OwotICAgIGNsb2NrIDogdHJ1ZTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDMzNDIsIDAuMDAzMzE2LCAwLjAwMzMwMiwgMC4wMDMzMDQsIDAuMDAzMzE1LCAwLjAwMzMzNiwgMC4wMDMzNTYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDc0MDIsIDAuMDA3MzgsIDAuMDA3Mzc1LCAwLjAwNzM5MywgMC4wMDc0MTEsIDAuMDA3NDU2LCAwLjAwNzQ5MSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQwJiFEMSYhUzAmIVNFJiFTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEMF9FUV8wX0FOX0QxX0VRXzBfQU5fUzBfRVFfMF9BTl9TRV9FUV8wX0FOX1NJX0VRXzAgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4xNDYwNDUsIDAuMTU2MjY4LCAwLjE2OTA3LCAwLjE4MTE0MywgMC4xOTIwNzQsIDAuMjA3Mjc2LCAwLjIxOTAyNyIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDk4MzgzLCAwLjEwODM3NywgMC4xMjA4MDEsIDAuMTMyMzksIDAuMTQyNzUzLCAwLjE1NjY4NywgMC4xNjc0NjMiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEQwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA5NDA1NTk7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwOTM3NTY3OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDk0MDU1OTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDQ2ODEsIDAuMDA0NjUzLCAwLjAwNDY0LCAwLjAwNDYzMywgMC4wMDQ2MywgMC4wMDQ2MywgMC4wMDQ2MzMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDc4MjEsIDAuMDA3ODA1LCAwLjAwNzc5NiwgMC4wMDc3OTMsIDAuMDA3NzkyLCAwLjAwNzc5NCwgMC4wMDc4MDEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIVMwJiFTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJTMF9FUV8wX0FOX1NFX0VRXzAgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDgxMjUsIC0wLjA3LCAtMC4wNjM3NSwgLTAuMDU3NSwgLTAuMDUxMjUsIC0wLjA0NzUsIC0wLjAzODc1IiwgXAotICAgICAgICAgICItMC4wODYyNSwgLTAuMDgxMjUsIC0wLjA3NSwgLTAuMDY4NzUsIC0wLjA2MjUsIC0wLjA1MjUsIC0wLjA1IiwgXAotICAgICAgICAgICItMC4wOTg3NSwgLTAuMDkzNzUsIC0wLjA4MTI1LCAtMC4wNzUsIC0wLjA3NSwgLTAuMDY1LCAtMC4wNjI1IiwgXAotICAgICAgICAgICItMC4xMTEyNSwgLTAuMSwgLTAuMDkzNzUsIC0wLjA4NzUsIC0wLjA4MTI1LCAtMC4wNzc1LCAtMC4wNjg3NSIsIFwKLSAgICAgICAgICAiLTAuMTE3NSwgLTAuMTEyNSwgLTAuMTA2MjUsIC0wLjEsIC0wLjA5Mzc1LCAtMC4wODM3NSwgLTAuMDgxMjUiLCBcCi0gICAgICAgICAgIi0wLjEzMzc1LCAtMC4xMjg3NSwgLTAuMTIyNSwgLTAuMTE2MjUsIC0wLjExLCAtMC4xLCAtMC4wOTc1IiwgXAotICAgICAgICAgICItMC4xNDg3NSwgLTAuMTQzNzUsIC0wLjEzMTI1LCAtMC4xMjUsIC0wLjEyNSwgLTAuMTE1LCAtMC4xMTI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDMxMjUsIC0wLjAyLCAtMC4wMTM3NSwgLTAuMDAxMjUsIDAuMDA1LCAwLjAxNSwgMC4wMyIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDMxMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAwLCAwLjAxLCAwLjAxODc1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDI1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wNjEyNSwgLTAuMDUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgLTAuMDA4NzUsIDAiLCBcCi0gICAgICAgICAgIi0wLjA2NzUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAyMTI1LCAtMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wNzc1LCAtMC4wNzI1LCAtMC4wNiwgLTAuMDUzNzUsIC0wLjA0MTI1LCAtMC4wMzEyNSwgLTAuMDIyNSIsIFwKLSAgICAgICAgICAiLTAuMDg2MjUsIC0wLjA4MTI1LCAtMC4wNjg3NSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA0NjI1LCAtMC4wMzEyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIVMwJiFTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJTMF9FUV8wX0FOX1NFX0VRXzAgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTEyNSwgMC4xMDEyNSwgMC4wOTUsIDAuMDg4NzUsIDAuMDc2MjUsIDAuMDcyNSwgMC4wNjM3NSIsIFwKLSAgICAgICAgICAiMC4xMjM3NSwgMC4xMTI1LCAwLjEsIDAuMDkzNzUsIDAuMDg3NSwgMC4wNzc1LCAwLjA3NSIsIFwKLSAgICAgICAgICAiMC4xMzYyNSwgMC4xMjUsIDAuMTEyNSwgMC4xMDYyNSwgMC4xLCAwLjA5LCAwLjA4MTI1IiwgXAotICAgICAgICAgICIwLjE0MjUsIDAuMTMxMjUsIDAuMTI1LCAwLjExMjUsIDAuMTEyNSwgMC4xMDI1LCAwLjA5Mzc1IiwgXAotICAgICAgICAgICIwLjE1NSwgMC4xNDM3NSwgMC4xMzEyNSwgMC4xMjUsIDAuMTE4NzUsIDAuMTA4NzUsIDAuMTA2MjUiLCBcCi0gICAgICAgICAgIjAuMTcxMjUsIDAuMTYsIDAuMTQ3NSwgMC4xNDEyNSwgMC4xMzUsIDAuMTI1LCAwLjEyMjUiLCBcCi0gICAgICAgICAgIjAuMTg2MjUsIDAuMTc1LCAwLjE2MjUsIDAuMTU2MjUsIDAuMTUsIDAuMTQsIDAuMTMxMjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODc1LCAwLjA3NjI1LCAwLjA2Mzc1LCAwLjA1MTI1LCAwLjAzODc1LCAwLjAyMjUsIDAuMDEzNzUiLCBcCi0gICAgICAgICAgIjAuMDkyNSwgMC4wODc1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDUsIDAuMDMzNzUsIDAuMDI1IiwgXAotICAgICAgICAgICIwLjEwNSwgMC4wOTM3NSwgMC4wODEyNSwgMC4wNjg3NSwgMC4wNTYyNSwgMC4wNDYyNSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4xMTc1LCAwLjEwNjI1LCAwLjA5Mzc1LCAwLjA4MTI1LCAwLjA2ODc1LCAwLjA1MjUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMTIzNzUsIDAuMTEyNSwgMC4xLCAwLjA4NzUsIDAuMDc1LCAwLjA2NSwgMC4wNSIsIFwKLSAgICAgICAgICAiMC4xNCwgMC4xMjg3NSwgMC4xMTYyNSwgMC4xMDM3NSwgMC4wOTEyNSwgMC4wNzUsIDAuMDY2MjUiLCBcCi0gICAgICAgICAgIjAuMTQ4NzUsIDAuMTM3NSwgMC4xMjUsIDAuMTEyNSwgMC4xMDYyNSwgMC4wOSwgMC4wNzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEQxKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA4OTA4MzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA4ODgwNTk7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwODkwODM7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA0NDY0LCAwLjAwNDQzNSwgMC4wMDQ0MjEsIDAuMDA0NDE0LCAwLjAwNDQxMiwgMC4wMDQ0MTIsIDAuMDA0NDE2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA4MDc4LCAwLjAwODA2MywgMC4wMDgwNTUsIDAuMDA4MDUsIDAuMDA4MDQ5LCAwLjAwODA1LCAwLjAwODA1NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJTMCYhU0UiOwotICAgICAgc2RmX2NvbmQgOiAiUzBfRVFfMV9BTl9TRV9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjA4MTI1LCAtMC4wNywgLTAuMDYzNzUsIC0wLjA1NzUsIC0wLjA1MTI1LCAtMC4wNDc1LCAtMC4wMzg3NSIsIFwKLSAgICAgICAgICAiLTAuMDg2MjUsIC0wLjA4MTI1LCAtMC4wNzUsIC0wLjA2ODc1LCAtMC4wNjI1LCAtMC4wNTI1LCAtMC4wNSIsIFwKLSAgICAgICAgICAiLTAuMDk4NzUsIC0wLjA5Mzc1LCAtMC4wODEyNSwgLTAuMDc1LCAtMC4wNzUsIC0wLjA2NSwgLTAuMDU2MjUiLCBcCi0gICAgICAgICAgIi0wLjExMTI1LCAtMC4xLCAtMC4wOTM3NSwgLTAuMDg3NSwgLTAuMDgxMjUsIC0wLjA3NzUsIC0wLjA2ODc1IiwgXAotICAgICAgICAgICItMC4xMTc1LCAtMC4xMTI1LCAtMC4xMDYyNSwgLTAuMSwgLTAuMDkzNzUsIC0wLjA4Mzc1LCAtMC4wODEyNSIsIFwKLSAgICAgICAgICAiLTAuMTMzNzUsIC0wLjEyODc1LCAtMC4xMjI1LCAtMC4xMTYyNSwgLTAuMTEsIC0wLjEsIC0wLjA5NzUiLCBcCi0gICAgICAgICAgIi0wLjE0ODc1LCAtMC4xNDM3NSwgLTAuMTMxMjUsIC0wLjEyNSwgLTAuMTI1LCAtMC4xMTUsIC0wLjEwNjI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDMxMjUsIC0wLjAyLCAtMC4wMTM3NSwgLTAuMDAxMjUsIDAuMDA1LCAwLjAxNSwgMC4wMjM3NSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDMxMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMC4wMSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjA0Mzc1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwMjUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA2MTI1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAwODc1LCAwIiwgXAotICAgICAgICAgICItMC4wNjc1LCAtMC4wNjI1LCAtMC4wNSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAyMTI1LCAtMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wNzc1LCAtMC4wNzI1LCAtMC4wNiwgLTAuMDUzNzUsIC0wLjA0NzUsIC0wLjAzMTI1LCAtMC4wMjI1IiwgXAotICAgICAgICAgICItMC4wODYyNSwgLTAuMDgxMjUsIC0wLjA3NSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA0NjI1LCAtMC4wMzc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJTMCYhU0UiOwotICAgICAgc2RmX2NvbmQgOiAiUzBfRVFfMV9BTl9TRV9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExMjUsIDAuMTAxMjUsIDAuMDk1LCAwLjA4MjUsIDAuMDc2MjUsIDAuMDcyNSwgMC4wNjM3NSIsIFwKLSAgICAgICAgICAiMC4xMjM3NSwgMC4xMTI1LCAwLjEsIDAuMDkzNzUsIDAuMDg3NSwgMC4wNzc1LCAwLjA3NSIsIFwKLSAgICAgICAgICAiMC4xMzYyNSwgMC4xMjUsIDAuMTEyNSwgMC4xMDYyNSwgMC4xLCAwLjA5LCAwLjA4MTI1IiwgXAotICAgICAgICAgICIwLjE0MjUsIDAuMTMxMjUsIDAuMTI1LCAwLjExMjUsIDAuMTA2MjUsIDAuMTAyNSwgMC4wOTM3NSIsIFwKLSAgICAgICAgICAiMC4xNTUsIDAuMTQzNzUsIDAuMTMxMjUsIDAuMTI1LCAwLjExODc1LCAwLjEwODc1LCAwLjEwNjI1IiwgXAotICAgICAgICAgICIwLjE3MTI1LCAwLjE2LCAwLjE0NzUsIDAuMTQxMjUsIDAuMTM1LCAwLjEyNSwgMC4xMjI1IiwgXAotICAgICAgICAgICIwLjE4NjI1LCAwLjE3NSwgMC4xNjI1LCAwLjE1NjI1LCAwLjE1LCAwLjE0LCAwLjEzMTI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg3NSwgMC4wNzYyNSwgMC4wNjM3NSwgMC4wNTEyNSwgMC4wMzg3NSwgMC4wMjg3NSwgMC4wMTM3NSIsIFwKLSAgICAgICAgICAiMC4wOTg3NSwgMC4wODc1LCAwLjA3NSwgMC4wNjI1LCAwLjA1LCAwLjAzMzc1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiMC4xMDUsIDAuMDkzNzUsIDAuMDgxMjUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNDYyNSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4xMTc1LCAwLjEwNjI1LCAwLjA5Mzc1LCAwLjA4MTI1LCAwLjA2ODc1LCAwLjA1MjUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMTIzNzUsIDAuMTEyNSwgMC4xLCAwLjA4NzUsIDAuMDgxMjUsIDAuMDY1LCAwLjA1IiwgXAotICAgICAgICAgICIwLjE0LCAwLjEyODc1LCAwLjExNjI1LCAwLjEwMzc1LCAwLjA5MTI1LCAwLjA4MTI1LCAwLjA2NjI1IiwgXAotICAgICAgICAgICIwLjE0ODc1LCAwLjE0Mzc1LCAwLjEyNSwgMC4xMTg3NSwgMC4xMDYyNSwgMC4wOSwgMC4wODEyNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjI2MTg5NzsKLSAgICBmdW5jdGlvbiA6ICJOMzAiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5vbl91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcmlzaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEyNzE5LCAwLjE1MTY0NywgMC4yOTA0MzUsIDAuNDEzMDE0LCAwLjU3NjQ0OCwgMC45MDM1MjEsIDEuMTA3OTUiLCBcCi0gICAgICAgICAgIjAuMTM3NDA3LCAwLjE2MTg2NiwgMC4zMDA2MjgsIDAuNDIzMTE0LCAwLjU4Njc4NSwgMC45MTM3NTksIDEuMTE4MTQiLCBcCi0gICAgICAgICAgIjAuMTUwMTk2LCAwLjE3NDY3MiwgMC4zMTM0MjgsIDAuNDM2MDE3LCAwLjU5OTUwNCwgMC45MjY1MzIsIDEuMTMwOTIiLCBcCi0gICAgICAgICAgIjAuMTYyMTA3LCAwLjE4NjU3NywgMC4zMjUzNDYsIDAuNDQ3OTI4LCAwLjYxMTQsIDAuOTM4NDUxLCAxLjE0Mjc3IiwgXAotICAgICAgICAgICIwLjE3MjkzNiwgMC4xOTc0MDksIDAuMzM2MTgsIDAuNDU4NjUyLCAwLjYyMjI2MywgMC45NDkyMTYsIDEuMTUzNjciLCBcCi0gICAgICAgICAgIjAuMTg4MTE3LCAwLjIxMjU5NiwgMC4zNTEzNzksIDAuNDczOTUxLCAwLjYzNzQyMSwgMC45NjQ0MzksIDEuMTY5MDEiLCBcCi0gICAgICAgICAgIjAuMTk5NTM3LCAwLjIyNDAxMywgMC4zNjI4MDEsIDAuNDg1Mzk0LCAwLjY0ODgzNCwgMC45NzU5NTMsIDEuMTgwMjMiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDkxNTE3LCAwLjE0MTU3LCAwLjQyNzI1MSwgMC42ODA2OTYsIDEuMDE3NCwgMS42ODkzLCAyLjExMDA4IiwgXAotICAgICAgICAgICIwLjA5MTUxNSwgMC4xNDE1NjQsIDAuNDI3ODA5LCAwLjY4MDI0MywgMS4wMTU5MywgMS42ODk0MSwgMi4xMDk3MyIsIFwKLSAgICAgICAgICAiMC4wOTE0OTksIDAuMTQxNTk5LCAwLjQyNzgwOSwgMC42Nzg3MTQsIDEuMDE2MTUsIDEuNjg5MjcsIDIuMTEwODciLCBcCi0gICAgICAgICAgIjAuMDkxNTE3LCAwLjE0MTM3MiwgMC40Mjc4MDEsIDAuNjc5NzgzLCAxLjAxNjQ3LCAxLjY4OTUsIDIuMTEzNDQiLCBcCi0gICAgICAgICAgIjAuMDkxNTEzLCAwLjE0MTU2NiwgMC40Mjc3OTcsIDAuNjc5NzI5LCAxLjAxNjI5LCAxLjY5MTQxLCAyLjExMDg5IiwgXAotICAgICAgICAgICIwLjA5MTUxNSwgMC4xNDE1NTYsIDAuNDI3Nzg3LCAwLjY4MDY0OSwgMS4wMTY0NywgMS42OTAwMSwgMi4xMTA4MSIsIFwKLSAgICAgICAgICAiMC4wOTE1MjksIDAuMTQxNDAyLCAwLjQyNzcxMSwgMC42ODA2MywgMS4wMTY0OSwgMS42OTIxMiwgMi4xMTA5NyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNDYwNDUsIDAuMTcwODIsIDAuMzExMDMzLCAwLjQzNDY5MSwgMC41OTk1MzksIDAuOTI5Mjg3LCAxLjEzNTM4IiwgXAotICAgICAgICAgICIwLjE1NjI3LCAwLjE4MTA0NywgMC4zMjEyNTcsIDAuNDQ0OTI2LCAwLjYwOTc5OCwgMC45Mzk1MTQsIDEuMTQ1NjEiLCBcCi0gICAgICAgICAgIjAuMTY5MDcsIDAuMTkzODUyLCAwLjMzNDA2MSwgMC40NTc3NjMsIDAuNjIyNjUzLCAwLjk1MjMyLCAxLjE1ODM3IiwgXAotICAgICAgICAgICIwLjE4MTE0NSwgMC4yMDU5MjcsIDAuMzQ2MTM0LCAwLjQ2OTgzNiwgMC42MzQ3MjMsIDAuOTY0Mzk0LCAxLjE3MDQ0IiwgXAotICAgICAgICAgICIwLjE5MjA3NSwgMC4yMTY4NTIsIDAuMzU3MDYzLCAwLjQ4MDc1MiwgMC42NDU1NjYsIDAuOTc1MzIxLCAxLjE4MTQxIiwgXAotICAgICAgICAgICIwLjIwNzI3NywgMC4yMzIwNjMsIDAuMzcyMjcyLCAwLjQ5NTk3LCAwLjY2MDg1MiwgMC45OTA1MjQsIDEuMTk2NjEiLCBcCi0gICAgICAgICAgIjAuMjE5MDMsIDAuMjQzODA4LCAwLjM4NDAxMSwgMC41MDc3MSwgMC42NzI1NTYsIDEuMDAyMjcsIDEuMjA4MzkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg5OTg5LCAwLjEzOTYwNCwgMC40MjE5OTQsIDAuNjcxNTI3LCAxLjAwMjg1LCAxLjY2NzI0LCAyLjA3OTc2IiwgXAotICAgICAgICAgICIwLjA4OTk5NywgMC4xMzk0NDIsIDAuNDIyMDEsIDAuNjcxNDk0LCAxLjAwMTk3LCAxLjY2NzE0LCAyLjA3OTc3IiwgXAotICAgICAgICAgICIwLjA5MDE3NSwgMC4xMzk0MzgsIDAuNDIxMDg5LCAwLjY2OTUyMiwgMS4wMDE5NywgMS42NjYxNSwgMi4wODE3NCIsIFwKLSAgICAgICAgICAiMC4wOTAxOTIsIDAuMTM5NDI2LCAwLjQyMTA4MiwgMC42Njk1NzMsIDEuMDAxNDMsIDEuNjY4NzUsIDIuMDgxOTIiLCBcCi0gICAgICAgICAgIjAuMDkwMDAyLCAwLjEzOTYwNywgMC40MjIwMTYsIDAuNjcxMzQ4LCAxLjAwMzcsIDEuNjY2NDgsIDIuMDc5NzEiLCBcCi0gICAgICAgICAgIjAuMDkwMTcxLCAwLjEzOTY2NCwgMC40MjE5OSwgMC42NzEzNjIsIDEuMDA0MDUsIDEuNjY2MDUsIDIuMDgxNzYiLCBcCi0gICAgICAgICAgIjAuMDkwMSwgMC4xMzk0MjcsIDAuNDIxMDUxLCAwLjY3MTM3MiwgMS4wMDI0OCwgMS42NjQ5NCwgMi4wODU3OSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDcwMDgsIDAuMDA2OTk1LCAwLjAwNjk0OSwgMC4wMDY5MzUsIDAuMDA2OTI1LCAwLjAwNjkxNiwgMC4wMDY5MTQiLCBcCi0gICAgICAgICAgIjAuMDA2OTc3LCAwLjAwNjk2NCwgMC4wMDY5MTksIDAuMDA2OTA0LCAwLjAwNjg5NSwgMC4wMDY4ODcsIDAuMDA2ODgzIiwgXAotICAgICAgICAgICIwLjAwNjk2MiwgMC4wMDY5NSwgMC4wMDY5MDUsIDAuMDA2ODksIDAuMDA2ODgsIDAuMDA2ODcxLCAwLjAwNjg2OCIsIFwKLSAgICAgICAgICAiMC4wMDY5NTQsIDAuMDA2OTQzLCAwLjAwNjg5OSwgMC4wMDY4ODMsIDAuMDA2ODczLCAwLjAwNjg2NCwgMC4wMDY4NjEiLCBcCi0gICAgICAgICAgIjAuMDA2OTc2LCAwLjAwNjk2NSwgMC4wMDY5MjMsIDAuMDA2OTA3LCAwLjAwNjg5NywgMC4wMDY4ODcsIDAuMDA2ODgzIiwgXAotICAgICAgICAgICIwLjAwNjk5NywgMC4wMDY5ODgsIDAuMDA2OTQ3LCAwLjAwNjkzMSwgMC4wMDY5MiwgMC4wMDY5MDksIDAuMDA2OTA2IiwgXAotICAgICAgICAgICIwLjAwNzAyMiwgMC4wMDcwMTQsIDAuMDA2OTc1LCAwLjAwNjk1OSwgMC4wMDY5NDcsIDAuMDA2OTM2LCAwLjAwNjkzMyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNzUzNCwgMC4wMDc1NDIsIDAuMDA3NTU1LCAwLjAwNzU1OCwgMC4wMDc1NTksIDAuMDA3NTYxLCAwLjAwNzU2MSIsIFwKLSAgICAgICAgICAiMC4wMDc1MDUsIDAuMDA3NTE0LCAwLjAwNzUyNiwgMC4wMDc1MjksIDAuMDA3NTMxLCAwLjAwNzUzMywgMC4wMDc1MzMiLCBcCi0gICAgICAgICAgIjAuMDA3NDk5LCAwLjAwNzUwOCwgMC4wMDc1MjEsIDAuMDA3NTI0LCAwLjAwNzUyNiwgMC4wMDc1MjcsIDAuMDA3NTI4IiwgXAotICAgICAgICAgICIwLjAwNzUyLCAwLjAwNzUyOSwgMC4wMDc1NDEsIDAuMDA3NTQ0LCAwLjAwNzU0NiwgMC4wMDc1NDcsIDAuMDA3NTQ4IiwgXAotICAgICAgICAgICIwLjAwNzU1NCwgMC4wMDc1NjMsIDAuMDA3NTc1LCAwLjAwNzU3OCwgMC4wMDc1OCwgMC4wMDc1ODEsIDAuMDA3NTgyIiwgXAotICAgICAgICAgICIwLjAwNzU4NiwgMC4wMDc1OTUsIDAuMDA3NjA3LCAwLjAwNzYwOSwgMC4wMDc2MTEsIDAuMDA3NjEzLCAwLjAwNzYxMyIsIFwKLSAgICAgICAgICAiMC4wMDc2NDMsIDAuMDA3NjUyLCAwLjAwNzY2NCwgMC4wMDc2NjYsIDAuMDA3NjY4LCAwLjAwNzY2OSwgMC4wMDc2NyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUzApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTYzMjU5OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTYzMjU5OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTYzMjQ7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA3NDcyLCAwLjAwNzQ0NywgMC4wMDc0NDIsIDAuMDA3NDQ2LCAwLjAwNzQ2LCAwLjAwNzQ4LCAwLjAwNzQ5OSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwODg2NiwgMC4wMDg4MjEsIDAuMDA4ODIxLCAwLjAwODgxNywgMC4wMDg4MjYsIDAuMDA4ODY5LCAwLjAwODkwNyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhU0UiOwotICAgICAgc2RmX2NvbmQgOiAiU0UgPT0gMSdiMCI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDQzNzUsIC0wLjAzMjUsIC0wLjAyLCAtMC4wMTM3NSwgLTAuMDA3NSwgMC4wMDg3NSwgMC4wMTc1IiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA0Mzc1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMTI1LCAtMC4wMDI1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wNjEyNSwgLTAuMDU2MjUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAxNSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA3Mzc1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAyMTI1LCAtMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wOCwgLTAuMDY4NzUsIC0wLjA2MjUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDMzNzUsIC0wLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDksIC0wLjA4NSwgLTAuMDcyNSwgLTAuMDY2MjUsIC0wLjA1Mzc1LCAtMC4wNDM3NSwgLTAuMDM1IiwgXAotICAgICAgICAgICItMC4wOTg3NSwgLTAuMDkzNzUsIC0wLjA4MTI1LCAtMC4wNjg3NSwgLTAuMDYyNSwgLTAuMDUyNSwgLTAuMDQzNzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMjUsIC0wLjAxMzc1LCAtMC4wMDc1LCAwLjAwNSwgMC4wMTEyNSwgMC4wMjEyNSwgMC4wMyIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAyNSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAuMDA2MjUsIDAuMDE2MjUsIDAuMDI1IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMDYyNSwgMC4wMDM3NSwgMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMDg3NSwgMCIsIFwKLSAgICAgICAgICAiLTAuMDYxMjUsIC0wLjA1NjI1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAxNSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA3NzUsIC0wLjA2NjI1LCAtMC4wNiwgLTAuMDUzNzUsIC0wLjA0MTI1LCAtMC4wMzEyNSwgLTAuMDIyNSIsIFwKLSAgICAgICAgICAiLTAuMDgsIC0wLjA3NSwgLTAuMDY4NzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNDYyNSwgLTAuMDM3NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIVNFIjsKLSAgICAgIHNkZl9jb25kIDogIlNFID09IDEnYjAiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwNjI1LCAwLjA5NSwgMC4wODg3NSwgMC4wNzYyNSwgMC4wNywgMC4wNjYyNSwgMC4wNTc1IiwgXAotICAgICAgICAgICIwLjExNzUsIDAuMTA2MjUsIDAuMDkzNzUsIDAuMDg3NSwgMC4wODEyNSwgMC4wNzEyNSwgMC4wNjg3NSIsIFwKLSAgICAgICAgICAiMC4xMywgMC4xMTg3NSwgMC4xMDYyNSwgMC4xLCAwLjA5Mzc1LCAwLjA4Mzc1LCAwLjA4MTI1IiwgXAotICAgICAgICAgICIwLjE0MjUsIDAuMTMxMjUsIDAuMTE4NzUsIDAuMTEyNSwgMC4xMDYyNSwgMC4wOTYyNSwgMC4wODc1IiwgXAotICAgICAgICAgICIwLjE0ODc1LCAwLjE0Mzc1LCAwLjEzMTI1LCAwLjEyNSwgMC4xMTg3NSwgMC4xMDg3NSwgMC4xIiwgXAotICAgICAgICAgICIwLjE3MTI1LCAwLjE2LCAwLjE0NzUsIDAuMTQxMjUsIDAuMTM1LCAwLjEyNSwgMC4xMjI1IiwgXAotICAgICAgICAgICIwLjE4NjI1LCAwLjE3NSwgMC4xNjI1LCAwLjE1NjI1LCAwLjE1LCAwLjE0LCAwLjEzMTI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTI1LCAwLjExMzc1LCAwLjEwNzUsIDAuMDk1LCAwLjA4ODc1LCAwLjA4NSwgMC4wNzYyNSIsIFwKLSAgICAgICAgICAiMC4xMzYyNSwgMC4xMjUsIDAuMTEyNSwgMC4xMDYyNSwgMC4xLCAwLjA5LCAwLjA4NzUiLCBcCi0gICAgICAgICAgIjAuMTQ4NzUsIDAuMTM3NSwgMC4xMjUsIDAuMTE4NzUsIDAuMTEyNSwgMC4xMDI1LCAwLjA5Mzc1IiwgXAotICAgICAgICAgICIwLjE1NSwgMC4xNDM3NSwgMC4xMzEyNSwgMC4xMjUsIDAuMTE4NzUsIDAuMTA4NzUsIDAuMTA2MjUiLCBcCi0gICAgICAgICAgIjAuMTYxMjUsIDAuMTUsIDAuMTQzNzUsIDAuMTMxMjUsIDAuMTI1LCAwLjEyMTI1LCAwLjExMjUiLCBcCi0gICAgICAgICAgIjAuMTcxMjUsIDAuMTYsIDAuMTUzNzUsIDAuMTQxMjUsIDAuMTM1LCAwLjEzMTI1LCAwLjEyMjUiLCBcCi0gICAgICAgICAgIjAuMTgsIDAuMTY4NzUsIDAuMTU2MjUsIDAuMTUsIDAuMTQzNzUsIDAuMTMzNzUsIDAuMTMxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFNFKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE1MjY4NTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE1MjY4NTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE1MjY3NjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDU0MjcsIDAuMDA1NDE0LCAwLjAwNTQxOCwgMC4wMDU0MjQsIDAuMDA1NDM4LCAwLjAwNTQ2MiwgMC4wMDU0ODciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDY4MDgsIDAuMDA2NzUyLCAwLjAwNjczNSwgMC4wMDY3NjMsIDAuMDA2NzYsIDAuMDA2ODA5LCAwLjAwNjg2MiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRDAmIUQxJiFTMCZTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEMF9FUV8wX0FOX0QxX0VRXzBfQU5fUzBfRVFfMF9BTl9TSV9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAzNzUsIC0wLjAyNjI1LCAtMC4wMiwgLTAuMDEzNzUsIC0wLjAwNzUsIDAuMDAyNSwgMC4wMTEyNSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAxODc1LCAtMC4wMTg3NSwgLTAuMDA4NzUsIDAiLCBcCi0gICAgICAgICAgIi0wLjA1NSwgLTAuMDUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAyMTI1LCAtMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wNjc1LCAtMC4wNjI1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAyNzUsIC0wLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDgsIC0wLjA2ODc1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjA0LCAtMC4wMzc1IiwgXAotICAgICAgICAgICItMC4wOSwgLTAuMDg1LCAtMC4wNzg3NSwgLTAuMDcyNSwgLTAuMDY2MjUsIC0wLjA1NjI1LCAtMC4wNDc1IiwgXAotICAgICAgICAgICItMC4xMDUsIC0wLjA5Mzc1LCAtMC4wODc1LCAtMC4wODEyNSwgLTAuMDc1LCAtMC4wNjUsIC0wLjA2MjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLCAwLjAwNSwgMC4wMTc1LCAwLjAzLCAwLjAzNjI1LCAwLjA0NjI1LCAwLjA2MTI1IiwgXAotICAgICAgICAgICItMC4wMTEyNSwgMCwgMC4wMDYyNSwgMC4wMTg3NSwgMC4wMjUsIDAuMDQxMjUsIDAuMDUiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTI1LCAwLCAwLjAwNjI1LCAwLjAxODc1LCAwLjAyODc1LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMjUsIC0wLjAxMjUsIDAsIDAuMDA2MjUsIDAuMDIyNSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDMxMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAwLCAwLjAxLCAwLjAxODc1IiwgXAotICAgICAgICAgICItMC4wNTI1LCAtMC4wNDEyNSwgLTAuMDM1LCAtMC4wMjI1LCAtMC4wMTYyNSwgMCwgMC4wMDg3NSIsIFwKLSAgICAgICAgICAiLTAuMDYxMjUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDE1LCAwIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEMCZEMSZTMCYhU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRDBfRVFfMF9BTl9EMV9FUV8xX0FOX1MwX0VRXzFfQU5fU0lfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMTg3NSwgLTAuMDA3NSwgMC4wMDUsIDAuMDE3NSwgMC4wMjM3NSwgMC4wMzM3NSwgMC4wNDg3NSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAxODc1LCAtMC4wMDYyNSwgMC4wMDYyNSwgMC4wMTI1LCAwLjAyODc1LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAsIDAuMDE2MjUsIDAuMDI1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAxODc1LCAtMC4wMDYyNSwgMC4wMDM3NSwgMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMDI1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wNzEyNSwgLTAuMDYsIC0wLjA0NzUsIC0wLjAzNSwgLTAuMDI4NzUsIC0wLjAxMjUsIC0wLjAwMzc1IiwgXAotICAgICAgICAgICItMC4wOCwgLTAuMDY4NzUsIC0wLjA1NjI1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDIxMjUsIC0wLjAxMjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wNSwgLTAuMDQ1LCAtMC4wMzg3NSwgLTAuMDMyNSwgLTAuMDI2MjUsIC0wLjAxNjI1LCAtMC4wMTM3NSIsIFwKLSAgICAgICAgICAiLTAuMDYxMjUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAyNzUsIC0wLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDczNzUsIC0wLjA2ODc1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjA0LCAtMC4wMzc1IiwgXAotICAgICAgICAgICItMC4wODYyNSwgLTAuMDc1LCAtMC4wNjg3NSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA1MjUsIC0wLjA0Mzc1IiwgXAotICAgICAgICAgICItMC4wOTI1LCAtMC4wODc1LCAtMC4wODEyNSwgLTAuMDc1LCAtMC4wNjg3NSwgLTAuMDU4NzUsIC0wLjA1NjI1IiwgXAotICAgICAgICAgICItMC4xMDg3NSwgLTAuMDk3NSwgLTAuMDkxMjUsIC0wLjA4NSwgLTAuMDc4NzUsIC0wLjA3NSwgLTAuMDY2MjUiLCBcCi0gICAgICAgICAgIi0wLjExNzUsIC0wLjEwNjI1LCAtMC4xLCAtMC4wOTM3NSwgLTAuMDg3NSwgLTAuMDgzNzUsIC0wLjA3NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUQwJiFEMSYhUzAmU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRDBfRVFfMF9BTl9EMV9FUV8wX0FOX1MwX0VRXzBfQU5fU0lfRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjI1LCAwLjA1MTI1LCAwLjAzODc1LCAwLjAzMjUsIDAuMDI2MjUsIDAuMDIyNSwgMC4wMTM3NSIsIFwKLSAgICAgICAgICAiMC4wNzM3NSwgMC4wNjI1LCAwLjA1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDI3NSwgMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMDgsIDAuMDc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDUsIDAuMDQsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMDkyNSwgMC4wODEyNSwgMC4wNzUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNTI1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjEwNSwgMC4wOTM3NSwgMC4wODc1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIjAuMTIxMjUsIDAuMTEsIDAuMTAzNzUsIDAuMDkxMjUsIDAuMDg1LCAwLjA4MTI1LCAwLjA3MjUiLCBcCi0gICAgICAgICAgIjAuMTM2MjUsIDAuMTI1LCAwLjExMjUsIDAuMTA2MjUsIDAuMSwgMC4wOSwgMC4wODEyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1NjI1LCAwLjA0NSwgMC4wMzI1LCAwLjAyLCAwLjAwNzUsIC0wLjAwODc1LCAtMC4wMTc1IiwgXAotICAgICAgICAgICIwLjA2MTI1LCAwLjA1LCAwLjAzNzUsIDAuMDI1LCAwLjAxMjUsIDAuMDAyNSwgLTAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4wNzM3NSwgMC4wNjI1LCAwLjA1LCAwLjAzNzUsIDAuMDI1LCAwLjAxNSwgMCIsIFwKLSAgICAgICAgICAiMC4wODYyNSwgMC4wNzUsIDAuMDYyNSwgMC4wNSwgMC4wMzc1LCAwLjAyMTI1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMDkyNSwgMC4wODEyNSwgMC4wNjg3NSwgMC4wNTYyNSwgMC4wNSwgMC4wMzM3NSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4xMDg3NSwgMC4wOTc1LCAwLjA4NSwgMC4wNzI1LCAwLjA2NjI1LCAwLjA1LCAwLjAzNSIsIFwKLSAgICAgICAgICAiMC4xMjM3NSwgMC4xMTI1LCAwLjEsIDAuMDg3NSwgMC4wNzUsIDAuMDU4NzUsIDAuMDUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEMCZEMSZTMCYhU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRDBfRVFfMF9BTl9EMV9FUV8xX0FOX1MwX0VRXzFfQU5fU0lfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTYyNSwgMC4wNDUsIDAuMDMyNSwgMC4wMiwgMC4wMTM3NSwgLTAuMDAyNSwgLTAuMDE3NSIsIFwKLSAgICAgICAgICAiMC4wNjc1LCAwLjA1NjI1LCAwLjA0Mzc1LCAwLjAzMTI1LCAwLjAxODc1LCAwLjAwODc1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiMC4wOCwgMC4wNjg3NSwgMC4wNTYyNSwgMC4wNDM3NSwgMC4wMzEyNSwgMC4wMjEyNSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiMC4wODYyNSwgMC4wODEyNSwgMC4wNjg3NSwgMC4wNTYyNSwgMC4wNDM3NSwgMC4wMjc1LCAwLjAxODc1IiwgXAotICAgICAgICAgICIwLjA5ODc1LCAwLjA4NzUsIDAuMDc1LCAwLjA2MjUsIDAuMDUsIDAuMDQsIDAuMDI1IiwgXAotICAgICAgICAgICIwLjEwODc1LCAwLjA5NzUsIDAuMDg1LCAwLjA3MjUsIDAuMDY2MjUsIDAuMDUsIDAuMDM1IiwgXAotICAgICAgICAgICIwLjExNzUsIDAuMTA2MjUsIDAuMDkzNzUsIDAuMDgxMjUsIDAuMDc1LCAwLjA1ODc1LCAwLjA0Mzc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg3NSwgMC4wNzYyNSwgMC4wNjM3NSwgMC4wNTc1LCAwLjA1MTI1LCAwLjA0MTI1LCAwLjAzODc1IiwgXAotICAgICAgICAgICIwLjA5ODc1LCAwLjA4NzUsIDAuMDc1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDUyNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4xMTEyNSwgMC4xLCAwLjA4NzUsIDAuMDgxMjUsIDAuMDc1LCAwLjA2NSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiMC4xMTc1LCAwLjEwNjI1LCAwLjEsIDAuMDg3NSwgMC4wODc1LCAwLjA3NzUsIDAuMDY4NzUiLCBcCi0gICAgICAgICAgIjAuMTMsIDAuMTE4NzUsIDAuMTA2MjUsIDAuMSwgMC4wOTM3NSwgMC4wODM3NSwgMC4wODEyNSIsIFwKLSAgICAgICAgICAiMC4xNCwgMC4xMjg3NSwgMC4xMTYyNSwgMC4xMSwgMC4xMDM3NSwgMC4wOTM3NSwgMC4wOTEyNSIsIFwKLSAgICAgICAgICAiMC4xNDg3NSwgMC4xMzc1LCAwLjEyNSwgMC4xMTg3NSwgMC4xMTI1LCAwLjEwMjUsIDAuMSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oU0kpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDk0MTA0NDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA5MzgxODsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA5NDEwNDQ7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzMzI4LCAwLjAwMzI5NSwgMC4wMDMyNzksIDAuMDAzMjcsIDAuMDAzMjY2LCAwLjAwMzI3NywgMC4wMDMyODEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDU5OTEsIDAuMDA1OTczLCAwLjAwNTk2MywgMC4wMDU5NTksIDAuMDA1OTU4LCAwLjAwNTk2NCwgMC4wMDU5NjgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiU0UiOwotICAgICAgc2RmX2NvbmQgOiAiU0UgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDQzNzUsIC0wLjAzMjUsIC0wLjAyNjI1LCAtMC4wMiwgLTAuMDEzNzUsIC0wLjAwMzc1LCAwLjAwNSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjA0Mzc1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDE1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDYxMjUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAyMTI1LCAtMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDczNzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjAzMzc1LCAtMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjA4LCAtMC4wNzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDQ2MjUsIC0wLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjA5NjI1LCAtMC4wODUsIC0wLjA3ODc1LCAtMC4wNzI1LCAtMC4wNjYyNSwgLTAuMDU2MjUsIC0wLjA1Mzc1IiwgXAotICAgICAgICAgICItMC4xMDUsIC0wLjEsIC0wLjA5Mzc1LCAtMC4wODEyNSwgLTAuMDgxMjUsIC0wLjA3MTI1LCAtMC4wNjI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDA2MjUsIDAuMDA1LCAwLjAxNzUsIDAuMDMsIDAuMDM2MjUsIDAuMDQ2MjUsIDAuMDYxMjUiLCBcCi0gICAgICAgICAgIi0wLjAxMTI1LCAwLCAwLjAwNjI1LCAwLjAxODc1LCAwLjAzMTI1LCAwLjA0MTI1LCAwLjA1IiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDEyNSwgMCwgMC4wMTI1LCAwLjAxODc1LCAwLjAzNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAxODc1LCAtMC4wMTI1LCAwLCAwLjAxMjUsIDAuMDIyNSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAsIDAuMDE2MjUsIDAuMDI1IiwgXAotICAgICAgICAgICItMC4wNDYyNSwgLTAuMDQxMjUsIC0wLjAyODc1LCAtMC4wMTYyNSwgLTAuMDEsIDAuMDA2MjUsIDAuMDE1IiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMDI1LCAwLjAwNjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJTRSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjg3NSwgMC4wNTc1LCAwLjA1MTI1LCAwLjAzODc1LCAwLjAzMjUsIDAuMDI4NzUsIDAuMDIiLCBcCi0gICAgICAgICAgIjAuMDgsIDAuMDY4NzUsIDAuMDU2MjUsIDAuMDUsIDAuMDQzNzUsIDAuMDMzNzUsIDAuMDI1IiwgXAotICAgICAgICAgICIwLjA4NjI1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA0NjI1LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIjAuMDk4NzUsIDAuMDg3NSwgMC4wODEyNSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1ODc1LCAwLjA1IiwgXAotICAgICAgICAgICIwLjExMTI1LCAwLjEsIDAuMDg3NSwgMC4wODEyNSwgMC4wNzUsIDAuMDY1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICIwLjEyMTI1LCAwLjExNjI1LCAwLjEwMzc1LCAwLjA5NzUsIDAuMDkxMjUsIDAuMDgxMjUsIDAuMDcyNSIsIFwKLSAgICAgICAgICAiMC4xMzYyNSwgMC4xMjUsIDAuMTEyNSwgMC4xMDYyNSwgMC4xLCAwLjA5LCAwLjA4NzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDM3NSwgMC4wMzI1LCAwLjAyLCAwLjAwNzUsIC0wLjAwNSwgLTAuMDE1LCAtMC4wMyIsIFwKLSAgICAgICAgICAiMC4wNTUsIDAuMDQzNzUsIDAuMDMxMjUsIDAuMDE4NzUsIDAuMDA2MjUsIC0wLjAxLCAtMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4wNjEyNSwgMC4wNSwgMC4wMzc1LCAwLjAyNSwgMC4wMTg3NSwgMC4wMDI1LCAtMC4wMTI1IiwgXAotICAgICAgICAgICIwLjA3Mzc1LCAwLjA2MjUsIDAuMDUsIDAuMDM3NSwgMC4wMjUsIDAuMDA4NzUsIDAiLCBcCi0gICAgICAgICAgIjAuMDgsIDAuMDY4NzUsIDAuMDU2MjUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMjEyNSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiMC4wOTYyNSwgMC4wODUsIDAuMDcyNSwgMC4wNiwgMC4wNDc1LCAwLjAzMTI1LCAwLjAyMjUiLCBcCi0gICAgICAgICAgIjAuMTA1LCAwLjA5Mzc1LCAwLjA4MTI1LCAwLjA2ODc1LCAwLjA1NjI1LCAwLjA0LCAwLjAzMTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBTTURGRkhRWDIgKgotICogLS0tLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChTTURGRkhRWDIpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC42MDAwNDI7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgZmYgKE4zMCxRQklOVCkgewotICAgIG5leHRfc3RhdGUgOiAiKChTRSBTSSkgKyAoIVNFICgoUzAgRDEpICsgKCFTMCBEMCkpKSkiOwotICAgIGNsb2NrZWRfb24gOiAiQ0siOwotICB9Ci0gIHBpbihDSykgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjE1NTA2OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYxNTQ5MzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2MTU1MDY7Ci0gICAgY2xvY2sgOiB0cnVlOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzM0MSwgMC4wMDMzMTUsIDAuMDAzMzAyLCAwLjAwMzMwNCwgMC4wMDMzMTYsIDAuMDAzMzM3LCAwLjAwMzM1NyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNzM5NywgMC4wMDczNywgMC4wMDczNjYsIDAuMDA3Mzg1LCAwLjAwNzQwNSwgMC4wMDc0NDcsIDAuMDA3NDgxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRDAmIUQxJiFTMCYhU0UmIVNJIjsKLSAgICAgIHNkZl9jb25kIDogIkQwX0VRXzBfQU5fRDFfRVFfMF9BTl9TMF9FUV8wX0FOX1NFX0VRXzBfQU5fU0lfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjEyODEwMywgMC4xMzgzMTcsIDAuMTUxMTI1LCAwLjE2MzE5MiwgMC4xNzQxMDIsIDAuMTg5MzA1LCAwLjIwMTAyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wOTc1MDUsIDAuMTA3NDc3LCAwLjExOTg4MSwgMC4xMzE0ODksIDAuMTQxNzE2LCAwLjE1NTYwMiwgMC4xNjYzNTUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEQwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA5MjQzODI7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwOTIxODA3OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDkyNDM4MjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDQ2NDIsIDAuMDA0NjEyLCAwLjAwNDU5OSwgMC4wMDQ1OTIsIDAuMDA0NTg5LCAwLjAwNDU4OSwgMC4wMDQ1OTIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDc4OCwgMC4wMDc4NjQsIDAuMDA3ODU2LCAwLjAwNzg1MiwgMC4wMDc4NTEsIDAuMDA3ODU0LCAwLjAwNzg2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFTMCYhU0UiOwotICAgICAgc2RmX2NvbmQgOiAiUzBfRVFfMF9BTl9TRV9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjA4MTI1LCAtMC4wNywgLTAuMDYzNzUsIC0wLjA1NzUsIC0wLjA1MTI1LCAtMC4wNDc1LCAtMC4wMzg3NSIsIFwKLSAgICAgICAgICAiLTAuMDg2MjUsIC0wLjA4MTI1LCAtMC4wNzUsIC0wLjA2ODc1LCAtMC4wNjI1LCAtMC4wNTI1LCAtMC4wNSIsIFwKLSAgICAgICAgICAiLTAuMDk4NzUsIC0wLjA5Mzc1LCAtMC4wODEyNSwgLTAuMDgxMjUsIC0wLjA3NSwgLTAuMDY1LCAtMC4wNjI1IiwgXAotICAgICAgICAgICItMC4xMTEyNSwgLTAuMSwgLTAuMDkzNzUsIC0wLjA4NzUsIC0wLjA4MTI1LCAtMC4wNzc1LCAtMC4wNjg3NSIsIFwKLSAgICAgICAgICAiLTAuMTE3NSwgLTAuMTEyNSwgLTAuMTA2MjUsIC0wLjEsIC0wLjA5Mzc1LCAtMC4wOSwgLTAuMDgxMjUiLCBcCi0gICAgICAgICAgIi0wLjEzMzc1LCAtMC4xMjg3NSwgLTAuMTIyNSwgLTAuMTE2MjUsIC0wLjExLCAtMC4xLCAtMC4wOTc1IiwgXAotICAgICAgICAgICItMC4xNDg3NSwgLTAuMTQzNzUsIC0wLjEzMTI1LCAtMC4xMzEyNSwgLTAuMTI1LCAtMC4xMTUsIC0wLjExMjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMjUsIC0wLjAyLCAtMC4wMDc1LCAtMC4wMDEyNSwgMC4wMDUsIDAuMDIxMjUsIDAuMDMiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMDYyNSwgMCwgMC4wMSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDM3NSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDAyNSwgMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIC0wLjAwODc1LCAwIiwgXAotICAgICAgICAgICItMC4wNjEyNSwgLTAuMDU2MjUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDE1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDcxMjUsIC0wLjA2NjI1LCAtMC4wNiwgLTAuMDUzNzUsIC0wLjA0MTI1LCAtMC4wMzEyNSwgLTAuMDIyNSIsIFwKLSAgICAgICAgICAiLTAuMDgsIC0wLjA3NSwgLTAuMDY4NzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNCwgLTAuMDMxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFTMCYhU0UiOwotICAgICAgc2RmX2NvbmQgOiAiUzBfRVFfMF9BTl9TRV9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExODc1LCAwLjEwNzUsIDAuMDk1LCAwLjA4ODc1LCAwLjA4MjUsIDAuMDcyNSwgMC4wNjM3NSIsIFwKLSAgICAgICAgICAiMC4xMjM3NSwgMC4xMTI1LCAwLjEwNjI1LCAwLjA5Mzc1LCAwLjA4NzUsIDAuMDgzNzUsIDAuMDc1IiwgXAotICAgICAgICAgICIwLjEzNjI1LCAwLjEyNSwgMC4xMTI1LCAwLjEwNjI1LCAwLjEsIDAuMDksIDAuMDg3NSIsIFwKLSAgICAgICAgICAiMC4xNDg3NSwgMC4xMzc1LCAwLjEyNSwgMC4xMTg3NSwgMC4xMTI1LCAwLjEwMjUsIDAuMDkzNzUiLCBcCi0gICAgICAgICAgIjAuMTU1LCAwLjE1LCAwLjEzNzUsIDAuMTI1LCAwLjExODc1LCAwLjExNSwgMC4xMDYyNSIsIFwKLSAgICAgICAgICAiMC4xNzEyNSwgMC4xNiwgMC4xNTM3NSwgMC4xNDEyNSwgMC4xMzUsIDAuMTMxMjUsIDAuMTIyNSIsIFwKLSAgICAgICAgICAiMC4xODYyNSwgMC4xNzUsIDAuMTYyNSwgMC4xNTYyNSwgMC4xNSwgMC4xNCwgMC4xMzc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg3NSwgMC4wNzYyNSwgMC4wNjM3NSwgMC4wNTEyNSwgMC4wMzg3NSwgMC4wMjg3NSwgMC4wMTM3NSIsIFwKLSAgICAgICAgICAiMC4wOTg3NSwgMC4wODc1LCAwLjA3NSwgMC4wNjI1LCAwLjA1LCAwLjAzMzc1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiMC4xMDUsIDAuMDkzNzUsIDAuMDgxMjUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNDYyNSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4xMTc1LCAwLjEwNjI1LCAwLjA5Mzc1LCAwLjA4MTI1LCAwLjA2ODc1LCAwLjA1MjUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMTIzNzUsIDAuMTEyNSwgMC4xLCAwLjA4NzUsIDAuMDgxMjUsIDAuMDY1LCAwLjA1IiwgXAotICAgICAgICAgICIwLjE0LCAwLjEyODc1LCAwLjExNjI1LCAwLjEwMzc1LCAwLjA5MTI1LCAwLjA4MTI1LCAwLjA2NjI1IiwgXAotICAgICAgICAgICIwLjE1NSwgMC4xNDM3NSwgMC4xMjUsIDAuMTE4NzUsIDAuMTA2MjUsIDAuMDksIDAuMDgxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEQxKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA5MTUwNjM7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwOTEyMDk0OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDkxNTA2MzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDQzODMsIDAuMDA0MzU1LCAwLjAwNDM0MSwgMC4wMDQzMzQsIDAuMDA0MzMsIDAuMDA0MzMxLCAwLjAwNDMzNiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwODEzNiwgMC4wMDgxMiwgMC4wMDgxMTIsIDAuMDA4MTA4LCAwLjAwODEwNywgMC4wMDgxMSwgMC4wMDgxMTUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiUzAmIVNFIjsKLSAgICAgIHNkZl9jb25kIDogIlMwX0VRXzFfQU5fU0VfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wODEyNSwgLTAuMDcsIC0wLjA2Mzc1LCAtMC4wNTc1LCAtMC4wNTEyNSwgLTAuMDQ3NSwgLTAuMDM4NzUiLCBcCi0gICAgICAgICAgIi0wLjA4NjI1LCAtMC4wODEyNSwgLTAuMDc1LCAtMC4wNjg3NSwgLTAuMDYyNSwgLTAuMDUyNSwgLTAuMDUiLCBcCi0gICAgICAgICAgIi0wLjA5ODc1LCAtMC4wOTM3NSwgLTAuMDgxMjUsIC0wLjA3NSwgLTAuMDc1LCAtMC4wNjUsIC0wLjA2MjUiLCBcCi0gICAgICAgICAgIi0wLjExMTI1LCAtMC4xLCAtMC4wOTM3NSwgLTAuMDg3NSwgLTAuMDgxMjUsIC0wLjA3NzUsIC0wLjA2ODc1IiwgXAotICAgICAgICAgICItMC4xMTc1LCAtMC4xMTI1LCAtMC4xMDYyNSwgLTAuMSwgLTAuMDkzNzUsIC0wLjA4Mzc1LCAtMC4wODEyNSIsIFwKLSAgICAgICAgICAiLTAuMTMzNzUsIC0wLjEyODc1LCAtMC4xMjI1LCAtMC4xMTYyNSwgLTAuMTEsIC0wLjEsIC0wLjA5NzUiLCBcCi0gICAgICAgICAgIi0wLjE0ODc1LCAtMC4xNDM3NSwgLTAuMTMxMjUsIC0wLjEyNSwgLTAuMTI1LCAtMC4xMTUsIC0wLjExMjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMjUsIC0wLjAyLCAtMC4wMDc1LCAtMC4wMDEyNSwgMC4wMDUsIDAuMDE1LCAwLjAzIiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgMCwgMC4wMSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDAyNSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAxODc1LCAtMC4wMDg3NSwgMCIsIFwKLSAgICAgICAgICAiLTAuMDYxMjUsIC0wLjA1NjI1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAyMTI1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDcxMjUsIC0wLjA2NjI1LCAtMC4wNiwgLTAuMDUzNzUsIC0wLjA0MTI1LCAtMC4wMzEyNSwgLTAuMDIyNSIsIFwKLSAgICAgICAgICAiLTAuMDgsIC0wLjA3NSwgLTAuMDY4NzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNCwgLTAuMDMxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlMwJiFTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJTMF9FUV8xX0FOX1NFX0VRXzAgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTE4NzUsIDAuMTA3NSwgMC4wOTUsIDAuMDg4NzUsIDAuMDgyNSwgMC4wNzI1LCAwLjA2Mzc1IiwgXAotICAgICAgICAgICIwLjEyMzc1LCAwLjExMjUsIDAuMTA2MjUsIDAuMDkzNzUsIDAuMDg3NSwgMC4wNzc1LCAwLjA3NSIsIFwKLSAgICAgICAgICAiMC4xMzYyNSwgMC4xMjUsIDAuMTEyNSwgMC4xMDYyNSwgMC4xLCAwLjA5LCAwLjA4NzUiLCBcCi0gICAgICAgICAgIjAuMTQ4NzUsIDAuMTM3NSwgMC4xMjUsIDAuMTE4NzUsIDAuMTEyNSwgMC4xMDI1LCAwLjA5Mzc1IiwgXAotICAgICAgICAgICIwLjE1NSwgMC4xNDM3NSwgMC4xMzc1LCAwLjEyNSwgMC4xMTg3NSwgMC4xMTUsIDAuMTA2MjUiLCBcCi0gICAgICAgICAgIjAuMTcxMjUsIDAuMTYsIDAuMTUzNzUsIDAuMTQxMjUsIDAuMTM1LCAwLjEzMTI1LCAwLjEyMjUiLCBcCi0gICAgICAgICAgIjAuMTg2MjUsIDAuMTc1LCAwLjE2MjUsIDAuMTU2MjUsIDAuMTUsIDAuMTQsIDAuMTM3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4NzUsIDAuMDc2MjUsIDAuMDYzNzUsIDAuMDUxMjUsIDAuMDQ1LCAwLjAyODc1LCAwLjAxMzc1IiwgXAotICAgICAgICAgICIwLjA5ODc1LCAwLjA4NzUsIDAuMDc1LCAwLjA2MjUsIDAuMDUsIDAuMDMzNzUsIDAuMDI1IiwgXAotICAgICAgICAgICIwLjEwNSwgMC4wOTM3NSwgMC4wODEyNSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA0NjI1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICIwLjExNzUsIDAuMTA2MjUsIDAuMDkzNzUsIDAuMDgxMjUsIDAuMDY4NzUsIDAuMDUyNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4xMjM3NSwgMC4xMTI1LCAwLjEsIDAuMDkzNzUsIDAuMDgxMjUsIDAuMDY1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICIwLjE0LCAwLjEyODc1LCAwLjExNjI1LCAwLjEwMzc1LCAwLjA5MTI1LCAwLjA4MTI1LCAwLjA2NjI1IiwgXAotICAgICAgICAgICIwLjE1NSwgMC4xNDM3NSwgMC4xMzEyNSwgMC4xMTg3NSwgMC4xMDYyNSwgMC4wOSwgMC4wODEyNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjUyMTc4NDsKLSAgICBmdW5jdGlvbiA6ICJOMzAiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5vbl91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcmlzaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwOTg0MiwgMC4yMTA3ODEsIDAuMjkxNDM2LCAwLjM5MjMwOSwgMC40OTMxNDQsIDAuNTkzOTk4LCAwLjY5NDkzIiwgXAotICAgICAgICAgICIwLjEyMDA5NCwgMC4yMjEwMzQsIDAuMzAxNjk3LCAwLjQwMjUzMywgMC41MDM0MSwgMC42MDQyMTIsIDAuNzA1MTI3IiwgXAotICAgICAgICAgICIwLjEzMjg4OSwgMC4yMzM4MzQsIDAuMzE0NDk1LCAwLjQxNTMzNiwgMC41MTYyNiwgMC42MTcwMSwgMC43MTc5MjQiLCBcCi0gICAgICAgICAgIjAuMTQ0NzkzLCAwLjI0NTc0MywgMC4zMjY0MDMsIDAuNDI3MjQzLCAwLjUyODE3MSwgMC42Mjg5MTcsIDAuNzI5ODIzIiwgXAotICAgICAgICAgICIwLjE1NTU2OSwgMC4yNTY1MjUsIDAuMzM3MTgxLCAwLjQzODAxNSwgMC41Mzg4OSwgMC42Mzk3MDEsIDAuNzQwNjgiLCBcCi0gICAgICAgICAgIjAuMTcwNzY2LCAwLjI3MTczNiwgMC4zNTIzODEsIDAuNDUzMjY2LCAwLjU1NDA5NywgMC42NTQ5MzYsIDAuNzU1Nzg1IiwgXAotICAgICAgICAgICIwLjE4MjIxMywgMC4yODMxODEsIDAuMzYzODQyLCAwLjQ2NDY2MywgMC41NjU1MTksIDAuNjY2Mzc3LCAwLjc2NzIyMyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDk3NjMsIDAuMjU1NDg3LCAwLjQyMjM2NSwgMC42MzA2NzEsIDAuODM4OTA3LCAxLjA0NTM4LCAxLjI1NTciLCBcCi0gICAgICAgICAgIjAuMDQ5NzQsIDAuMjU1NDU0LCAwLjQyMjM3MywgMC42MjkwMjksIDAuODM3NTMsIDEuMDQ2NzUsIDEuMjUzNTUiLCBcCi0gICAgICAgICAgIjAuMDQ5NzEyLCAwLjI1NTQ1NiwgMC40MjIzNjksIDAuNjI5MTg1LCAwLjgzNzQzMiwgMS4wNDU3OSwgMS4yNTM1NCIsIFwKLSAgICAgICAgICAiMC4wNDk3NDksIDAuMjU1NDUyLCAwLjQyMjM1NSwgMC42Mjk3ODQsIDAuODM3MzU5LCAxLjA0NTg1LCAxLjI1MzQ1IiwgXAotICAgICAgICAgICIwLjA0OTc2MiwgMC4yNTU0ODcsIDAuNDIyMzUsIDAuNjI5OTA1LCAwLjgzNzU1NiwgMS4wNDY3MiwgMS4yNTMzIiwgXAotICAgICAgICAgICIwLjA0OTc0NiwgMC4yNTU3OSwgMC40MjIzMywgMC42MzA2NDMsIDAuODM3Nzg1LCAxLjA0NTU4LCAxLjI1MjMzIiwgXAotICAgICAgICAgICIwLjA0OTc2MywgMC4yNTU3NTIsIDAuNDIyMzE2LCAwLjYyOTg0NywgMC44Mzc3OTUsIDEuMDQ2OTksIDEuMjU1MjQiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTI4MTAzLCAwLjIzMTgzOCwgMC4zMTQ1OTcsIDAuNDE3OTkzLCAwLjUyMTQwNiwgMC42MjQ4MTQsIDAuNzI4MTQxIiwgXAotICAgICAgICAgICIwLjEzODMxNywgMC4yNDIwNzMsIDAuMzI0Nzg4LCAwLjQyODIwMSwgMC41MzE2MjQsIDAuNjM1MDAzLCAwLjczODQyOCIsIFwKLSAgICAgICAgICAiMC4xNTExMjUsIDAuMjU0ODczLCAwLjMzNzU5NywgMC40NDEwMDIsIDAuNTQ0NDM0LCAwLjY0NzgxOSwgMC43NTExNDgiLCBcCi0gICAgICAgICAgIjAuMTYzMTkyLCAwLjI2Njk0MiwgMC4zNDk2NjUsIDAuNDUzMDcxLCAwLjU1NjUwNSwgMC42NTk4ODcsIDAuNzYzMjg3IiwgXAotICAgICAgICAgICIwLjE3NDEwMywgMC4yNzc4MzQsIDAuMzYwNTczLCAwLjQ2Mzk4MSwgMC41Njc0MDgsIDAuNjcwNzk5LCAwLjc3NDE1NCIsIFwKLSAgICAgICAgICAiMC4xODkzMDcsIDAuMjkzMDU1LCAwLjM3NTc4NiwgMC40NzkyMjUsIDAuNTgyNjE0LCAwLjY4NjAxLCAwLjc4OTM1OSIsIFwKLSAgICAgICAgICAiMC4yMDEwMjEsIDAuMzA0NzczLCAwLjM4NzQ4OCwgMC40OTA5MzQsIDAuNTk0MzE3LCAwLjY5NzY1NSwgMC44MDExMjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQ5ODMsIDAuMjU3NjMzLCAwLjQyNTU3NiwgMC42MzQzMTIsIDAuODQ1MzY3LCAxLjA1MTk0LCAxLjI2NTIiLCBcCi0gICAgICAgICAgIjAuMDQ5ODI3LCAwLjI1NzA5NiwgMC40MjUzMDgsIDAuNjM0MTA4LCAwLjg0MjgyNiwgMS4wNTUyNywgMS4yNjIxMyIsIFwKLSAgICAgICAgICAiMC4wNDk4MzYsIDAuMjU3NzIsIDAuNDI0Njg3LCAwLjYzMzc5NSwgMC44NDI3MDEsIDEuMDU1MzYsIDEuMjY1MTEiLCBcCi0gICAgICAgICAgIjAuMDQ5ODI5LCAwLjI1NzcyLCAwLjQyNTA4MSwgMC42MzQzMzcsIDAuODQ1MzQ3LCAxLjA1NTM4LCAxLjI2NTExIiwgXAotICAgICAgICAgICIwLjA0OTgzLCAwLjI1NzIyLCAwLjQyNDY2NiwgMC42MzM5MTcsIDAuODQzMDI5LCAxLjA1NTM1LCAxLjI2NTMiLCBcCi0gICAgICAgICAgIjAuMDQ5ODI4LCAwLjI1NzcxNywgMC40MjU1MzIsIDAuNjMzOTAyLCAwLjg0NTM2OSwgMS4wNTUzNSwgMS4yNjUzIiwgXAotICAgICAgICAgICIwLjA0OTgzOCwgMC4yNTcwOTMsIDAuNDI1MzI3LCAwLjYzNDA3MSwgMC44NDUzNjMsIDEuMDU1MTksIDEuMjYxNDMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA4MSwgMC4wMDgwODcsIDAuMDA4MDcsIDAuMDA4MDU5LCAwLjAwODA1MywgMC4wMDgwNDgsIDAuMDA4MDQ1IiwgXAotICAgICAgICAgICIwLjAwODA2OCwgMC4wMDgwNTcsIDAuMDA4MDQzLCAwLjAwODAzMiwgMC4wMDgwMjMsIDAuMDA4MDIxLCAwLjAwODAxOSIsIFwKLSAgICAgICAgICAiMC4wMDgwNTMsIDAuMDA4MDQzLCAwLjAwODAyOSwgMC4wMDgwMTUsIDAuMDA4MDA5LCAwLjAwODAwNCwgMC4wMDgwMDEiLCBcCi0gICAgICAgICAgIjAuMDA4MDQ0LCAwLjAwODAzNiwgMC4wMDgwMiwgMC4wMDgwMDcsIDAuMDA4LCAwLjAwNzk5NiwgMC4wMDc5OTMiLCBcCi0gICAgICAgICAgIjAuMDA4MDYzLCAwLjAwODA1OCwgMC4wMDgwNDEsIDAuMDA4MDMsIDAuMDA4MDIzLCAwLjAwODAxNywgMC4wMDgwMTQiLCBcCi0gICAgICAgICAgIjAuMDA4MDgyLCAwLjAwODA4LCAwLjAwODA2NCwgMC4wMDgwNTIsIDAuMDA4MDQ1LCAwLjAwODA0LCAwLjAwODAzNSIsIFwKLSAgICAgICAgICAiMC4wMDgxMDgsIDAuMDA4MTEyLCAwLjAwODA5OCwgMC4wMDgwODYsIDAuMDA4MDc4LCAwLjAwODA3MiwgMC4wMDgwNjkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDg3MjMsIDAuMDA4NzkzLCAwLjAwODgwMSwgMC4wMDg4MDUsIDAuMDA4ODA4LCAwLjAwODgwOSwgMC4wMDg4MSIsIFwKLSAgICAgICAgICAiMC4wMDg2OTQsIDAuMDA4NzY0LCAwLjAwODc3MywgMC4wMDg3NzcsIDAuMDA4Nzc5LCAwLjAwODc4MSwgMC4wMDg3ODIiLCBcCi0gICAgICAgICAgIjAuMDA4NjkxLCAwLjAwODc2LCAwLjAwODc2OCwgMC4wMDg3NzMsIDAuMDA4Nzc1LCAwLjAwODc3NiwgMC4wMDg3NzciLCBcCi0gICAgICAgICAgIjAuMDA4NzEyLCAwLjAwODc4MiwgMC4wMDg3OSwgMC4wMDg3OTQsIDAuMDA4Nzk2LCAwLjAwODc5OCwgMC4wMDg3OTkiLCBcCi0gICAgICAgICAgIjAuMDA4NzQ2LCAwLjAwODgxNSwgMC4wMDg4MjMsIDAuMDA4ODI3LCAwLjAwODgyOSwgMC4wMDg4MzEsIDAuMDA4ODMyIiwgXAotICAgICAgICAgICIwLjAwODc3OSwgMC4wMDg4NDksIDAuMDA4ODU3LCAwLjAwODg2MiwgMC4wMDg4NjQsIDAuMDA4ODY1LCAwLjAwODg2NiIsIFwKLSAgICAgICAgICAiMC4wMDg4MzUsIDAuMDA4OTAzLCAwLjAwODkxMSwgMC4wMDg5MTUsIDAuMDA4OTE3LCAwLjAwODkxOSwgMC4wMDg5MiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUzApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTYzMDQyOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTYyOTkyOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTYzMDQyOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNzUzNSwgMC4wMDc1MSwgMC4wMDc1MDcsIDAuMDA3NTExLCAwLjAwNzUyNSwgMC4wMDc1NDQsIDAuMDA3NTY0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA4OTYxLCAwLjAwODkxNiwgMC4wMDg5MTYsIDAuMDA4OTExLCAwLjAwODkyLCAwLjAwODk2MywgMC4wMDkwMDMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIVNFIjsKLSAgICAgIHNkZl9jb25kIDogIlNFID09IDEnYjAiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAzNzUsIC0wLjAzMjUsIC0wLjAyLCAtMC4wMTM3NSwgLTAuMDAxMjUsIDAuMDA4NzUsIDAuMDE3NSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAxMjUsIC0wLjAwMjUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA2MTI1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAxNSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA2NzUsIC0wLjA2MjUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDIxMjUsIC0wLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjA4LCAtMC4wNjg3NSwgLTAuMDYyNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wMzM3NSwgLTAuMDI1IiwgXAotICAgICAgICAgICItMC4wOSwgLTAuMDc4NzUsIC0wLjA3MjUsIC0wLjA2LCAtMC4wNTM3NSwgLTAuMDQzNzUsIC0wLjAzNSIsIFwKLSAgICAgICAgICAiLTAuMDk4NzUsIC0wLjA4NzUsIC0wLjA4MTI1LCAtMC4wNjg3NSwgLTAuMDYyNSwgLTAuMDUyNSwgLTAuMDQzNzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMTg3NSwgLTAuMDEzNzUsIC0wLjAwMTI1LCAwLjAwNSwgMC4wMTEyNSwgMC4wMjc1LCAwLjAzNjI1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLjAwNjI1LCAwLjAxNjI1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAuMDAzNzUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjA0Mzc1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDA4NzUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA2MTI1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAyNSwgLTAuMDE1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDcxMjUsIC0wLjA2LCAtMC4wNTM3NSwgLTAuMDQ3NSwgLTAuMDQxMjUsIC0wLjAzMTI1LCAtMC4wMjI1IiwgXAotICAgICAgICAgICItMC4wNzM3NSwgLTAuMDY4NzUsIC0wLjA2MjUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNDYyNSwgLTAuMDM3NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIVNFIjsKLSAgICAgIHNkZl9jb25kIDogIlNFID09IDEnYjAiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExMjUsIDAuMTAxMjUsIDAuMDg4NzUsIDAuMDgyNSwgMC4wNzYyNSwgMC4wNjYyNSwgMC4wNTc1IiwgXAotICAgICAgICAgICIwLjExNzUsIDAuMTA2MjUsIDAuMSwgMC4wODc1LCAwLjA4MTI1LCAwLjA3NzUsIDAuMDY4NzUiLCBcCi0gICAgICAgICAgIjAuMTMsIDAuMTE4NzUsIDAuMTA2MjUsIDAuMSwgMC4wOTM3NSwgMC4wODM3NSwgMC4wODEyNSIsIFwKLSAgICAgICAgICAiMC4xNDI1LCAwLjEzMTI1LCAwLjExODc1LCAwLjExMjUsIDAuMTA2MjUsIDAuMDk2MjUsIDAuMDkzNzUiLCBcCi0gICAgICAgICAgIjAuMTU1LCAwLjE0Mzc1LCAwLjEzMTI1LCAwLjEyNSwgMC4xMTg3NSwgMC4xMDg3NSwgMC4xIiwgXAotICAgICAgICAgICIwLjE3MTI1LCAwLjE2LCAwLjE0NzUsIDAuMTQxMjUsIDAuMTM1LCAwLjEyNSwgMC4xMjI1IiwgXAotICAgICAgICAgICIwLjE4NjI1LCAwLjE3NSwgMC4xNjI1LCAwLjE1NjI1LCAwLjE1LCAwLjE0LCAwLjEzNzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMzEyNSwgMC4xMiwgMC4xMDc1LCAwLjEwMTI1LCAwLjA5NSwgMC4wODUsIDAuMDc2MjUiLCBcCi0gICAgICAgICAgIjAuMTM2MjUsIDAuMTI1LCAwLjExODc1LCAwLjEwNjI1LCAwLjEsIDAuMDk2MjUsIDAuMDg3NSIsIFwKLSAgICAgICAgICAiMC4xNDg3NSwgMC4xMzc1LCAwLjEyNSwgMC4xMTg3NSwgMC4xMTI1LCAwLjEwMjUsIDAuMSIsIFwKLSAgICAgICAgICAiMC4xNjEyNSwgMC4xNSwgMC4xMzc1LCAwLjEzMTI1LCAwLjEyNSwgMC4xMTUsIDAuMTA2MjUiLCBcCi0gICAgICAgICAgIjAuMTY3NSwgMC4xNTYyNSwgMC4xNDM3NSwgMC4xMzc1LCAwLjEzMTI1LCAwLjEyMTI1LCAwLjExMjUiLCBcCi0gICAgICAgICAgIjAuMTc3NSwgMC4xNjYyNSwgMC4xNTM3NSwgMC4xNDc1LCAwLjE0MTI1LCAwLjEzMTI1LCAwLjEyMjUiLCBcCi0gICAgICAgICAgIjAuMTgsIDAuMTY4NzUsIDAuMTYyNSwgMC4xNSwgMC4xNDM3NSwgMC4xNCwgMC4xMzEyNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oU0UpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTQ3NjE0OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTQ3NTMzOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTQ3NjE0OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNTQzNSwgMC4wMDU0MjIsIDAuMDA1NDI2LCAwLjAwNTQzMSwgMC4wMDU0NDQsIDAuMDA1NDcsIDAuMDA1NDk2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA2ODE5LCAwLjAwNjc2MywgMC4wMDY3NDYsIDAuMDA2Nzc0LCAwLjAwNjc3MSwgMC4wMDY4MiwgMC4wMDY4NzciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUQwJiFEMSYhUzAmU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRDBfRVFfMF9BTl9EMV9FUV8wX0FOX1MwX0VRXzBfQU5fU0lfRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMzc1LCAtMC4wMjYyNSwgLTAuMDIsIC0wLjAxMzc1LCAtMC4wMDc1LCAwLjAwMjUsIDAuMDExMjUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA4NzUsIDAiLCBcCi0gICAgICAgICAgIi0wLjA1NSwgLTAuMDUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAyMTI1LCAtMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wNjc1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMjc1LCAtMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjA4LCAtMC4wNjg3NSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNCwgLTAuMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDksIC0wLjA4NSwgLTAuMDc4NzUsIC0wLjA3MjUsIC0wLjA2NjI1LCAtMC4wNTYyNSwgLTAuMDQ3NSIsIFwKLSAgICAgICAgICAiLTAuMTA1LCAtMC4wOTM3NSwgLTAuMDg3NSwgLTAuMDgxMjUsIC0wLjA3NSwgLTAuMDY1LCAtMC4wNjI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMCwgMC4wMTEyNSwgMC4wMTc1LCAwLjAzLCAwLjAzNjI1LCAwLjA1MjUsIDAuMDYxMjUiLCBcCi0gICAgICAgICAgIi0wLjAxMTI1LCAwLCAwLjAxMjUsIDAuMDE4NzUsIDAuMDMxMjUsIDAuMDQxMjUsIDAuMDUiLCBcCi0gICAgICAgICAgIi0wLjAxNzUsIC0wLjAxMjUsIDAsIDAuMDEyNSwgMC4wMTg3NSwgMC4wMjg3NSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAxODc1LCAtMC4wMTI1LCAwLCAwLjAwNjI1LCAwLjAyMjUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLCAwLjAxLCAwLjAxODc1IiwgXAotICAgICAgICAgICItMC4wNDYyNSwgLTAuMDQxMjUsIC0wLjAyODc1LCAtMC4wMjI1LCAtMC4wMSwgMCwgMC4wMDg3NSIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDA4NzUsIDAiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUQwJkQxJlMwJiFTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEMF9FUV8wX0FOX0QxX0VRXzFfQU5fUzBfRVFfMV9BTl9TSV9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAxODc1LCAtMC4wMDc1LCAwLjAwNSwgMC4wMTc1LCAwLjAyMzc1LCAwLjA0LCAwLjA0ODc1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLjAwNjI1LCAwLjAxMjUsIDAuMDI4NzUsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAsIDAuMDE2MjUsIDAuMDI1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAxODc1LCAtMC4wMDYyNSwgMC4wMDM3NSwgMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMDI1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wNzEyNSwgLTAuMDYsIC0wLjA0NzUsIC0wLjAzNSwgLTAuMDI4NzUsIC0wLjAxMjUsIC0wLjAwMzc1IiwgXAotICAgICAgICAgICItMC4wOCwgLTAuMDY4NzUsIC0wLjA1NjI1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDIxMjUsIC0wLjAxMjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wNSwgLTAuMDQ1LCAtMC4wMzg3NSwgLTAuMDMyNSwgLTAuMDI2MjUsIC0wLjAxNjI1LCAtMC4wMTM3NSIsIFwKLSAgICAgICAgICAiLTAuMDYxMjUsIC0wLjA1NjI1LCAtMC4wNDM3NSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAyNzUsIC0wLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDczNzUsIC0wLjA2ODc1LCAtMC4wNTYyNSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNCwgLTAuMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDg2MjUsIC0wLjA3NSwgLTAuMDY4NzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNTI1LCAtMC4wNDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDkyNSwgLTAuMDg3NSwgLTAuMDgxMjUsIC0wLjA3NSwgLTAuMDY4NzUsIC0wLjA1ODc1LCAtMC4wNTYyNSIsIFwKLSAgICAgICAgICAiLTAuMTA4NzUsIC0wLjA5NzUsIC0wLjA5MTI1LCAtMC4wODUsIC0wLjA3ODc1LCAtMC4wNzUsIC0wLjA2NjI1IiwgXAotICAgICAgICAgICItMC4xMTc1LCAtMC4xMDYyNSwgLTAuMSwgLTAuMDkzNzUsIC0wLjA4NzUsIC0wLjA4Mzc1LCAtMC4wNzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEMCYhRDEmIVMwJlNJIjsKLSAgICAgIHNkZl9jb25kIDogIkQwX0VRXzBfQU5fRDFfRVFfMF9BTl9TMF9FUV8wX0FOX1NJX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDYyNSwgMC4wNTEyNSwgMC4wNDUsIDAuMDMyNSwgMC4wMjYyNSwgMC4wMjI1LCAwLjAxMzc1IiwgXAotICAgICAgICAgICIwLjA3Mzc1LCAwLjA2MjUsIDAuMDUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMjc1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiMC4wODYyNSwgMC4wNzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNSwgMC4wNCwgMC4wMzc1IiwgXAotICAgICAgICAgICIwLjA5ODc1LCAwLjA4NzUsIDAuMDc1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDUyNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4xMDUsIDAuMDkzNzUsIDAuMDg3NSwgMC4wODEyNSwgMC4wNzUsIDAuMDY1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICIwLjEyMTI1LCAwLjExLCAwLjEwMzc1LCAwLjA5NzUsIDAuMDkxMjUsIDAuMDgxMjUsIDAuMDcyNSIsIFwKLSAgICAgICAgICAiMC4xMzYyNSwgMC4xMjUsIDAuMTEyNSwgMC4xMDYyNSwgMC4xLCAwLjA5LCAwLjA4NzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTYyNSwgMC4wNDUsIDAuMDMyNSwgMC4wMiwgMC4wMDc1LCAtMC4wMDg3NSwgLTAuMDE3NSIsIFwKLSAgICAgICAgICAiMC4wNjEyNSwgMC4wNSwgMC4wMzc1LCAwLjAyNSwgMC4wMTg3NSwgMC4wMDI1LCAtMC4wMTI1IiwgXAotICAgICAgICAgICIwLjA3Mzc1LCAwLjA2MjUsIDAuMDUsIDAuMDM3NSwgMC4wMjUsIDAuMDE1LCAwIiwgXAotICAgICAgICAgICIwLjA4NjI1LCAwLjA3NSwgMC4wNjI1LCAwLjA1LCAwLjAzNzUsIDAuMDIxMjUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4wOTI1LCAwLjA4MTI1LCAwLjA2ODc1LCAwLjA1NjI1LCAwLjA1LCAwLjAzMzc1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiMC4xMDg3NSwgMC4wOTc1LCAwLjA4NSwgMC4wNzI1LCAwLjA2NjI1LCAwLjA1LCAwLjAzNSIsIFwKLSAgICAgICAgICAiMC4xMjM3NSwgMC4xMTI1LCAwLjEsIDAuMDg3NSwgMC4wNzUsIDAuMDU4NzUsIDAuMDUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEMCZEMSZTMCYhU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRDBfRVFfMF9BTl9EMV9FUV8xX0FOX1MwX0VRXzFfQU5fU0lfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTYyNSwgMC4wNDUsIDAuMDMyNSwgMC4wMiwgMC4wMTM3NSwgLTAuMDAyNSwgLTAuMDExMjUiLCBcCi0gICAgICAgICAgIjAuMDY3NSwgMC4wNTYyNSwgMC4wNDM3NSwgMC4wMzEyNSwgMC4wMjUsIDAuMDA4NzUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICIwLjA4LCAwLjA2ODc1LCAwLjA1NjI1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDIxMjUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMDkyNSwgMC4wODEyNSwgMC4wNjg3NSwgMC4wNTYyNSwgMC4wNDM3NSwgMC4wMjc1LCAwLjAxODc1IiwgXAotICAgICAgICAgICIwLjA5ODc1LCAwLjA4NzUsIDAuMDc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDQsIDAuMDI1IiwgXAotICAgICAgICAgICIwLjEwODc1LCAwLjA5NzUsIDAuMDg1LCAwLjA3ODc1LCAwLjA2NjI1LCAwLjA1LCAwLjA0MTI1IiwgXAotICAgICAgICAgICIwLjExNzUsIDAuMTA2MjUsIDAuMDkzNzUsIDAuMDg3NSwgMC4wNzUsIDAuMDU4NzUsIDAuMDUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODc1LCAwLjA3NjI1LCAwLjA2Mzc1LCAwLjA1NzUsIDAuMDUxMjUsIDAuMDQxMjUsIDAuMDM4NzUiLCBcCi0gICAgICAgICAgIjAuMDk4NzUsIDAuMDg3NSwgMC4wNzUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNTI1LCAwLjA1IiwgXAotICAgICAgICAgICIwLjExMTI1LCAwLjEsIDAuMDg3NSwgMC4wODEyNSwgMC4wNzUsIDAuMDY1LCAwLjA2MjUiLCBcCi0gICAgICAgICAgIjAuMTIzNzUsIDAuMTEyNSwgMC4xLCAwLjA5Mzc1LCAwLjA4NzUsIDAuMDc3NSwgMC4wNjg3NSIsIFwKLSAgICAgICAgICAiMC4xMywgMC4xMTg3NSwgMC4xMDYyNSwgMC4xLCAwLjA5Mzc1LCAwLjA4Mzc1LCAwLjA4MTI1IiwgXAotICAgICAgICAgICIwLjE0LCAwLjEyODc1LCAwLjEyMjUsIDAuMTEsIDAuMTAzNzUsIDAuMSwgMC4wOTEyNSIsIFwKLSAgICAgICAgICAiMC4xNDg3NSwgMC4xMzc1LCAwLjEzMTI1LCAwLjExODc1LCAwLjExMjUsIDAuMTA4NzUsIDAuMSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oU0kpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDkwMDYyOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDg5NzY1MjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA5MDA2MjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDMzMSwgMC4wMDMyNzgsIDAuMDAzMjYxLCAwLjAwMzI1MywgMC4wMDMyNDksIDAuMDAzMjYsIDAuMDAzMjYyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA1OTk4LCAwLjAwNTk3OSwgMC4wMDU5NjksIDAuMDA1OTY1LCAwLjAwNTk2MywgMC4wMDU5NjksIDAuMDA1OTc0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlNFIjsKLSAgICAgIHNkZl9jb25kIDogIlNFID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjA0Mzc1LCAtMC4wMzI1LCAtMC4wMjYyNSwgLTAuMDIsIC0wLjAxMzc1LCAtMC4wMDM3NSwgMC4wMDUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wNDM3NSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxNSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA2MTI1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMjEyNSwgLTAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjA3Mzc1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wMzM3NSwgLTAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjA4LCAtMC4wNzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDQ2MjUsIC0wLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjA5NjI1LCAtMC4wODUsIC0wLjA3ODc1LCAtMC4wNzI1LCAtMC4wNjYyNSwgLTAuMDU2MjUsIC0wLjA1Mzc1IiwgXAotICAgICAgICAgICItMC4xMDUsIC0wLjEsIC0wLjA5Mzc1LCAtMC4wODc1LCAtMC4wODEyNSwgLTAuMDcxMjUsIC0wLjA2MjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMDYyNSwgMC4wMDUsIDAuMDE3NSwgMC4wMywgMC4wMzYyNSwgMC4wNTI1LCAwLjA2MTI1IiwgXAotICAgICAgICAgICItMC4wMTEyNSwgMCwgMC4wMTI1LCAwLjAxODc1LCAwLjAzMTI1LCAwLjA0MTI1LCAwLjA1IiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDEyNSwgMCwgMC4wMTI1LCAwLjAxODc1LCAwLjAzNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAxODc1LCAtMC4wMDYyNSwgMCwgMC4wMTI1LCAwLjAyMjUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMDYyNSwgMC4wMDYyNSwgMC4wMTYyNSwgMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjA0NjI1LCAtMC4wNDEyNSwgLTAuMDI4NzUsIC0wLjAxNjI1LCAtMC4wMSwgMC4wMDYyNSwgMC4wMTUiLCBcCi0gICAgICAgICAgIi0wLjA1NSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAwMjUsIDAuMDA2MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlNFIjsKLSAgICAgIHNkZl9jb25kIDogIlNFID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2ODc1LCAwLjA1NzUsIDAuMDUxMjUsIDAuMDQ1LCAwLjAzMjUsIDAuMDI4NzUsIDAuMDIiLCBcCi0gICAgICAgICAgIjAuMDgsIDAuMDY4NzUsIDAuMDU2MjUsIDAuMDUsIDAuMDQzNzUsIDAuMDMzNzUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMDkyNSwgMC4wODEyNSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA0NjI1LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIjAuMDk4NzUsIDAuMDg3NSwgMC4wODEyNSwgMC4wNzUsIDAuMDY4NzUsIDAuMDU4NzUsIDAuMDUiLCBcCi0gICAgICAgICAgIjAuMTExMjUsIDAuMSwgMC4wODc1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNjUsIDAuMDYyNSIsIFwKLSAgICAgICAgICAiMC4xMjc1LCAwLjExNjI1LCAwLjEwMzc1LCAwLjA5NzUsIDAuMDkxMjUsIDAuMDgxMjUsIDAuMDcyNSIsIFwKLSAgICAgICAgICAiMC4xMzYyNSwgMC4xMjUsIDAuMTE4NzUsIDAuMTA2MjUsIDAuMSwgMC4wOTYyNSwgMC4wODc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQzNzUsIDAuMDMyNSwgMC4wMiwgMC4wMDc1LCAwLjAwMTI1LCAtMC4wMTUsIC0wLjAyMzc1IiwgXAotICAgICAgICAgICIwLjA1NSwgMC4wNDM3NSwgMC4wMzEyNSwgMC4wMTg3NSwgMC4wMDYyNSwgLTAuMDEsIC0wLjAxODc1IiwgXAotICAgICAgICAgICIwLjA2MTI1LCAwLjA1LCAwLjAzNzUsIDAuMDI1LCAwLjAxODc1LCAwLjAwMjUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICIwLjA3Mzc1LCAwLjA2MjUsIDAuMDUsIDAuMDM3NSwgMC4wMjUsIDAuMDA4NzUsIDAiLCBcCi0gICAgICAgICAgIjAuMDgsIDAuMDY4NzUsIDAuMDU2MjUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMjEyNSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiMC4wOTYyNSwgMC4wODUsIDAuMDcyNSwgMC4wNiwgMC4wNDc1LCAwLjAzMTI1LCAwLjAyMjUiLCBcCi0gICAgICAgICAgIjAuMTA1LCAwLjA5Mzc1LCAwLjA4MTI1LCAwLjA2ODc1LCAwLjA1NjI1LCAwLjA0NjI1LCAwLjAzMTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBTTURGRkhRWDQgKgotICogLS0tLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChTTURGRkhRWDQpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC43MTA3OTE7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgZmYgKE4zMCxRQklOVCkgewotICAgIG5leHRfc3RhdGUgOiAiKChTRSBTSSkgKyAoIVNFICgoUzAgRDEpICsgKCFTMCBEMCkpKSkiOwotICAgIGNsb2NrZWRfb24gOiAiQ0siOwotICB9Ci0gIHBpbihDSykgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNTg4MzQyOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDU4Nzk5ODsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA1ODgzNDI7Ci0gICAgY2xvY2sgOiB0cnVlOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzI5LCAwLjAwMzI2NCwgMC4wMDMyNTIsIDAuMDAzMjUzLCAwLjAwMzI2NCwgMC4wMDMyODQsIDAuMDAzMzA1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA3Njg4LCAwLjAwNzY1OSwgMC4wMDc2NTUsIDAuMDA3Njc2LCAwLjAwNzY5LCAwLjAwNzc0MywgMC4wMDc3NjkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFEMCYhRDEmIVMwJiFTRSYhU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRDBfRVFfMF9BTl9EMV9FUV8wX0FOX1MwX0VRXzBfQU5fU0VfRVFfMF9BTl9TSV9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMTIyODg1LCAwLjEzMzA4NiwgMC4xNDU4NTYsIDAuMTU4MjkzLCAwLjE2OTY5NiwgMC4xODU0MzgsIDAuMTk3NzcxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wOTk3OTIsIDAuMTA5NzI3LCAwLjEyMjIxLCAwLjEzNDA3OSwgMC4xNDQ3NTQsIDAuMTU5MjY1LCAwLjE3MDUxNCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRDApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDk2MjAyNTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA5NTkxOTY7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwOTYyMDI1OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNDY2MiwgMC4wMDQ2MzMsIDAuMDA0NjIxLCAwLjAwNDYxMywgMC4wMDQ2MTEsIDAuMDA0NjEsIDAuMDA0NjE1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA3Njk1LCAwLjAwNzY4MSwgMC4wMDc2NzEsIDAuMDA3NjY4LCAwLjAwNzY2NywgMC4wMDc2NjksIDAuMDA3Njc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFTMCYhU0UiOwotICAgICAgc2RmX2NvbmQgOiAiUzBfRVFfMF9BTl9TRV9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjA3NSwgLTAuMDcsIC0wLjA2Mzc1LCAtMC4wNTc1LCAtMC4wNTEyNSwgLTAuMDQxMjUsIC0wLjAzODc1IiwgXAotICAgICAgICAgICItMC4wODYyNSwgLTAuMDgxMjUsIC0wLjA2ODc1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDUyNSwgLTAuMDQzNzUiLCBcCi0gICAgICAgICAgIi0wLjA5ODc1LCAtMC4wODc1LCAtMC4wODEyNSwgLTAuMDc1LCAtMC4wNjg3NSwgLTAuMDU4NzUsIC0wLjA1NjI1IiwgXAotICAgICAgICAgICItMC4xMDUsIC0wLjEsIC0wLjA5Mzc1LCAtMC4wODc1LCAtMC4wODEyNSwgLTAuMDcxMjUsIC0wLjA2ODc1IiwgXAotICAgICAgICAgICItMC4xMTc1LCAtMC4xMTI1LCAtMC4xLCAtMC4wOTM3NSwgLTAuMDg3NSwgLTAuMDgzNzUsIC0wLjA3NSIsIFwKLSAgICAgICAgICAiLTAuMTMzNzUsIC0wLjEyODc1LCAtMC4xMTYyNSwgLTAuMTEsIC0wLjEwMzc1LCAtMC4xLCAtMC4wOTEyNSIsIFwKLSAgICAgICAgICAiLTAuMTQ4NzUsIC0wLjEzNzUsIC0wLjEzMTI1LCAtMC4xMjUsIC0wLjExODc1LCAtMC4xMDg3NSwgLTAuMTA2MjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMjUsIC0wLjAxMzc1LCAtMC4wMDc1LCAwLjAwNSwgMC4wMTEyNSwgMC4wMjEyNSwgMC4wMzYyNSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAyNSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAuMDA2MjUsIDAuMDE2MjUsIDAuMDI1IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMC4wMDM3NSwgMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDQzNzUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMDI1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDE1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDcxMjUsIC0wLjA2LCAtMC4wNTM3NSwgLTAuMDQ3NSwgLTAuMDM1LCAtMC4wMjUsIC0wLjAxNjI1IiwgXAotICAgICAgICAgICItMC4wNzM3NSwgLTAuMDY4NzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDMzNzUsIC0wLjAyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIVMwJiFTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJTMF9FUV8wX0FOX1NFX0VRXzAgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTEyNSwgMC4xMDc1LCAwLjA5NSwgMC4wODI1LCAwLjA3NjI1LCAwLjA2NjI1LCAwLjA2Mzc1IiwgXAotICAgICAgICAgICIwLjEyMzc1LCAwLjExMjUsIDAuMSwgMC4wOTM3NSwgMC4wODc1LCAwLjA3NzUsIDAuMDY4NzUiLCBcCi0gICAgICAgICAgIjAuMTM2MjUsIDAuMTI1LCAwLjExMjUsIDAuMTA2MjUsIDAuMSwgMC4wOSwgMC4wODEyNSIsIFwKLSAgICAgICAgICAiMC4xNDI1LCAwLjEzNzUsIDAuMTI1LCAwLjExMjUsIDAuMTA2MjUsIDAuMDk2MjUsIDAuMDkzNzUiLCBcCi0gICAgICAgICAgIjAuMTU1LCAwLjE0Mzc1LCAwLjEzMTI1LCAwLjEyNSwgMC4xMTg3NSwgMC4xMDg3NSwgMC4xIiwgXAotICAgICAgICAgICIwLjE3MTI1LCAwLjE2LCAwLjE0NzUsIDAuMTQxMjUsIDAuMTM1LCAwLjEyNSwgMC4xMTYyNSIsIFwKLSAgICAgICAgICAiMC4xODYyNSwgMC4xNzUsIDAuMTYyNSwgMC4xNTYyNSwgMC4xNSwgMC4xNCwgMC4xMzEyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4MTI1LCAwLjA3NjI1LCAwLjA1NzUsIDAuMDUxMjUsIDAuMDM4NzUsIDAuMDIyNSwgMC4wMDc1IiwgXAotICAgICAgICAgICIwLjA5MjUsIDAuMDgxMjUsIDAuMDY4NzUsIDAuMDU2MjUsIDAuMDQzNzUsIDAuMDI3NSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4xMDUsIDAuMDkzNzUsIDAuMDgxMjUsIDAuMDY4NzUsIDAuMDU2MjUsIDAuMDQsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMTExMjUsIDAuMSwgMC4wODc1LCAwLjA3NSwgMC4wNjI1LCAwLjA1MjUsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiMC4xMjM3NSwgMC4xMTI1LCAwLjEsIDAuMDg3NSwgMC4wNzUsIDAuMDU4NzUsIDAuMDUiLCBcCi0gICAgICAgICAgIjAuMTMzNzUsIDAuMTIyNSwgMC4xMSwgMC4wOTc1LCAwLjA5MTI1LCAwLjA3NSwgMC4wNiIsIFwKLSAgICAgICAgICAiMC4xNDg3NSwgMC4xMzc1LCAwLjEyNSwgMC4xMTI1LCAwLjEsIDAuMDgzNzUsIDAuMDc1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihEMSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwOTMzMjQ5OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDkzMDQ2OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDkzMzI0OTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDQzODksIDAuMDA0MzU5LCAwLjAwNDM0NiwgMC4wMDQzMzksIDAuMDA0MzM2LCAwLjAwNDMzNiwgMC4wMDQzNCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNzk5LCAwLjAwNzk3NSwgMC4wMDc5NjcsIDAuMDA3OTYyLCAwLjAwNzk2LCAwLjAwNzk2MywgMC4wMDc5NjciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiUzAmIVNFIjsKLSAgICAgIHNkZl9jb25kIDogIlMwX0VRXzFfQU5fU0VfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wNzUsIC0wLjA3LCAtMC4wNjM3NSwgLTAuMDU3NSwgLTAuMDUxMjUsIC0wLjA0MTI1LCAtMC4wMzI1IiwgXAotICAgICAgICAgICItMC4wODYyNSwgLTAuMDc1LCAtMC4wNjg3NSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA1MjUsIC0wLjA0Mzc1IiwgXAotICAgICAgICAgICItMC4wOTg3NSwgLTAuMDg3NSwgLTAuMDgxMjUsIC0wLjA3NSwgLTAuMDY4NzUsIC0wLjA1ODc1LCAtMC4wNTYyNSIsIFwKLSAgICAgICAgICAiLTAuMTA1LCAtMC4xLCAtMC4wOTM3NSwgLTAuMDg3NSwgLTAuMDgxMjUsIC0wLjA3MTI1LCAtMC4wNjI1IiwgXAotICAgICAgICAgICItMC4xMTc1LCAtMC4xMTI1LCAtMC4xLCAtMC4wOTM3NSwgLTAuMDg3NSwgLTAuMDgzNzUsIC0wLjA3NSIsIFwKLSAgICAgICAgICAiLTAuMTMzNzUsIC0wLjEyODc1LCAtMC4xMTYyNSwgLTAuMTEsIC0wLjEwMzc1LCAtMC4xLCAtMC4wOTEyNSIsIFwKLSAgICAgICAgICAiLTAuMTQ4NzUsIC0wLjEzNzUsIC0wLjEzMTI1LCAtMC4xMjUsIC0wLjExODc1LCAtMC4xMDg3NSwgLTAuMTA2MjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMjUsIC0wLjAxMzc1LCAtMC4wMDc1LCAwLjAwNSwgMC4wMTEyNSwgMC4wMjEyNSwgMC4wMyIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAyNSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAsIDAuMDE2MjUsIDAuMDI1IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMC4wMDM3NSwgMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDQzNzUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMDI1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wNjEyNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMTUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wNzEyNSwgLTAuMDYsIC0wLjA1Mzc1LCAtMC4wNDc1LCAtMC4wNDEyNSwgLTAuMDI1LCAtMC4wMTYyNSIsIFwKLSAgICAgICAgICAiLTAuMDczNzUsIC0wLjA2ODc1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjA0LCAtMC4wMzEyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiUzAmIVNFIjsKLSAgICAgIHNkZl9jb25kIDogIlMwX0VRXzFfQU5fU0VfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTI1LCAwLjEwMTI1LCAwLjA5NSwgMC4wODI1LCAwLjA3NjI1LCAwLjA2NjI1LCAwLjA2Mzc1IiwgXAotICAgICAgICAgICIwLjEyMzc1LCAwLjExMjUsIDAuMSwgMC4wOTM3NSwgMC4wODc1LCAwLjA3NzUsIDAuMDY4NzUiLCBcCi0gICAgICAgICAgIjAuMTM2MjUsIDAuMTI1LCAwLjExMjUsIDAuMTA2MjUsIDAuMDkzNzUsIDAuMDksIDAuMDgxMjUiLCBcCi0gICAgICAgICAgIjAuMTQyNSwgMC4xMzEyNSwgMC4xMjUsIDAuMTEyNSwgMC4xMDYyNSwgMC4wOTYyNSwgMC4wOTM3NSIsIFwKLSAgICAgICAgICAiMC4xNTUsIDAuMTQzNzUsIDAuMTMxMjUsIDAuMTI1LCAwLjExODc1LCAwLjEwODc1LCAwLjEiLCBcCi0gICAgICAgICAgIjAuMTcxMjUsIDAuMTYsIDAuMTQ3NSwgMC4xNDEyNSwgMC4xMzUsIDAuMTI1LCAwLjExNjI1IiwgXAotICAgICAgICAgICIwLjE4NjI1LCAwLjE3NSwgMC4xNjI1LCAwLjE1NjI1LCAwLjE1LCAwLjE0LCAwLjEzMTI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg3NSwgMC4wNzYyNSwgMC4wNjM3NSwgMC4wNTEyNSwgMC4wMzg3NSwgMC4wMjI1LCAwLjAxMzc1IiwgXAotICAgICAgICAgICIwLjA5MjUsIDAuMDgxMjUsIDAuMDY4NzUsIDAuMDU2MjUsIDAuMDQzNzUsIDAuMDMzNzUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMTA1LCAwLjA5Mzc1LCAwLjA4MTI1LCAwLjA2ODc1LCAwLjA1NjI1LCAwLjA0LCAwLjAzMTI1IiwgXAotICAgICAgICAgICIwLjExMTI1LCAwLjEsIDAuMDg3NSwgMC4wNzUsIDAuMDY4NzUsIDAuMDUyNSwgMC4wMzc1IiwgXAotICAgICAgICAgICIwLjEyMzc1LCAwLjExMjUsIDAuMSwgMC4wODc1LCAwLjA3NSwgMC4wNTg3NSwgMC4wNSIsIFwKLSAgICAgICAgICAiMC4xNCwgMC4xMjg3NSwgMC4xMTYyNSwgMC4xMDM3NSwgMC4wOTEyNSwgMC4wNzUsIDAuMDYiLCBcCi0gICAgICAgICAgIjAuMTQ4NzUsIDAuMTM3NSwgMC4xMjUsIDAuMTEyNSwgMC4xLCAwLjA4Mzc1LCAwLjA3NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAxLjAyODkyOwotICAgIGZ1bmN0aW9uIDogIk4zMCI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3NlbnNlIDogbm9uX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiByaXNpbmdfZWRnZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDc2MDYsIDAuMTgwODYyLCAwLjI1MzQ0MywgMC4zMDUzNjUsIDAuMzg4MzUyLCAwLjQ2MDk4MSwgMC41NjQ3NTYiLCBcCi0gICAgICAgICAgIjAuMTE3NzcyLCAwLjE5MTAzNSwgMC4yNjM2MTgsIDAuMzE1NTM4LCAwLjM5ODUyNiwgMC40NzExNTQsIDAuNTc0OTI4IiwgXAotICAgICAgICAgICIwLjEzMDU0NSwgMC4yMDM3NTksIDAuMjc2MzQ1LCAwLjMyODI2MSwgMC40MTEyNDksIDAuNDgzODc4LCAwLjU4NzY1MiIsIFwKLSAgICAgICAgICAiMC4xNDI5MTMsIDAuMjE2MTc5LCAwLjI4ODc2NCwgMC4zNDA2ODQsIDAuNDIzNjcxLCAwLjQ5NjI5OCwgMC42MDAwNzEiLCBcCi0gICAgICAgICAgIjAuMTU0MTc5LCAwLjIyNzQ0OCwgMC4zMDAwNiwgMC4zNTE5NTIsIDAuNDM0OTQsIDAuNTA3NTY1LCAwLjYxMTMzNiIsIFwKLSAgICAgICAgICAiMC4xNjk4MTYsIDAuMjQzMDg4LCAwLjMxNTY5OSwgMC4zNjc2MDYsIDAuNDUwNTg2LCAwLjUyMzIzMSwgMC42MjcwOCIsIFwKLSAgICAgICAgICAiMC4xODE5NDcsIDAuMjU1MjM2LCAwLjMyNzgzNiwgMC4zNzk3MzQsIDAuNDYyNzIsIDAuNTM1MzM1LCAwLjYzOTEwMiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzMDg4OCwgMC4xNzg5LCAwLjMyOTM2OSwgMC40MzgwNCwgMC42MTA4MzUsIDAuNzYxMDUzLCAwLjk3Njg3MyIsIFwKLSAgICAgICAgICAiMC4wMzA5MDcsIDAuMTc4ODk5LCAwLjMyOTQzOCwgMC40MzgwMzcsIDAuNjEwODI4LCAwLjc2MTA0NywgMC45NzY4ODYiLCBcCi0gICAgICAgICAgIjAuMDMwOTA2LCAwLjE3ODg5OSwgMC4zMjk0MzMsIDAuNDM4MDM0LCAwLjYxMDgyOSwgMC43NjEwNTIsIDAuOTc2ODg1IiwgXAotICAgICAgICAgICIwLjAzMDkwOSwgMC4xNzg4OTksIDAuMzI5NDM1LCAwLjQzODAzMSwgMC42MTA4MjcsIDAuNzYxMDM5LCAwLjk3Njg4MiIsIFwKLSAgICAgICAgICAiMC4wMzA5MDcsIDAuMTc4ODk4LCAwLjMyOTg4OCwgMC40MzgwMjQsIDAuNjEwODE4LCAwLjc2MTAzNywgMC45NzY5MzEiLCBcCi0gICAgICAgICAgIjAuMDMwOTAxLCAwLjE3ODg5OCwgMC4zMjk1OTEsIDAuNDM4MDE0LCAwLjYxMDc5NywgMC43NjIwMDgsIDAuOTc2NDAyIiwgXAotICAgICAgICAgICIwLjAzMDkzMywgMC4xNzg3NjMsIDAuMzI5ODU4LCAwLjQzNzkzOSwgMC42MTA3MDUsIDAuNzYxODYzLCAwLjk3NzA0NSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEyMjg4NSwgMC4xOTcwNzIsIDAuMjcwNDY4LCAwLjMyMjg2NSwgMC40MDY2NjIsIDAuNDgwMDQxLCAwLjU4NDg1OSIsIFwKLSAgICAgICAgICAiMC4xMzMwODYsIDAuMjA3Mjg2LCAwLjI4MDY3LCAwLjMzMzA1MiwgMC40MTY5MTMsIDAuNDkwMjE5LCAwLjU5NTAwNiIsIFwKLSAgICAgICAgICAiMC4xNDU4NTYsIDAuMjIwMDQzLCAwLjI5MzQzNSwgMC4zNDU4MTUsIDAuNDI5NjM5LCAwLjUwMjk3MSwgMC42MDc3NSIsIFwKLSAgICAgICAgICAiMC4xNTgyOTMsIDAuMjMyNDc3LCAwLjMwNTg0MywgMC4zNTgyNDMsIDAuNDQyMDY5LCAwLjUxNTQyMSwgMC42MjAyMDUiLCBcCi0gICAgICAgICAgIjAuMTY5Njk2LCAwLjI0Mzg5MSwgMC4zMTcyNjQsIDAuMzY5Njg1LCAwLjQ1MzQ4NSwgMC41MjY4MzYsIDAuNjMxNTg5IiwgXAotICAgICAgICAgICIwLjE4NTQzOSwgMC4yNTk2MzUsIDAuMzMzMDIxLCAwLjM4NTQwMywgMC40NjkyMjcsIDAuNTQyNTc5LCAwLjY0NzM2NiIsIFwKLSAgICAgICAgICAiMC4xOTc3NzEsIDAuMjcxOTYyLCAwLjM0NTMzNCwgMC4zOTc3NDMsIDAuNDgxNTUyLCAwLjU1NDkwMiwgMC42NTk2OTIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzAxNTEsIDAuMTc1OTg5LCAwLjMyNDE3NCwgMC40MzEzOTYsIDAuNjAwOTk2LCAwLjc1MDQ1OSwgMC45NjIxMjEiLCBcCi0gICAgICAgICAgIjAuMDMwMTQ0LCAwLjE3NjE5NSwgMC4zMjQ5NTksIDAuNDMxMjM4LCAwLjYwMTQ2MSwgMC43NDkwOTgsIDAuOTYwODgxIiwgXAotICAgICAgICAgICIwLjAzMDE0OSwgMC4xNzYwMDEsIDAuMzI0MDAzLCAwLjQzMTI1MSwgMC42MDE0NzQsIDAuNzUwMzEyLCAwLjk2MTgzNSIsIFwKLSAgICAgICAgICAiMC4wMzAxNTcsIDAuMTc1OTU2LCAwLjMyNDg1MiwgMC40MzEyMjgsIDAuNjAwMzAzLCAwLjc0OTQ2MSwgMC45NjIxMzMiLCBcCi0gICAgICAgICAgIjAuMDMwMTQ0LCAwLjE3NTk2NywgMC4zMjQ4ODQsIDAuNDMxMzk3LCAwLjYwMDMsIDAuNzQ5NDA0LCAwLjk2MzEwNSIsIFwKLSAgICAgICAgICAiMC4wMzAxNTIsIDAuMTc2MjM5LCAwLjMyNDk0NywgMC40MzEyMjksIDAuNjAwODM2LCAwLjc0OTMxNywgMC45NjEyNTYiLCBcCi0gICAgICAgICAgIjAuMDMwMTQ2LCAwLjE3NTk3MywgMC4zMjQ0NSwgMC40MzEzNTcsIDAuNjAwODg2LCAwLjc1MDUwMiwgMC45NjMyODQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTA1MjQsIDAuMDEwNjE1LCAwLjAxMDYsIDAuMDEwNTk1LCAwLjAxMDU4MywgMC4wMTA1NzQsIDAuMDEwNTc1IiwgXAotICAgICAgICAgICIwLjAxMDQ5MiwgMC4wMTA1ODQsIDAuMDEwNTcsIDAuMDEwNTY1LCAwLjAxMDU1MywgMC4wMTA1NDUsIDAuMDEwNTQ0IiwgXAotICAgICAgICAgICIwLjAxMDQ3NiwgMC4wMTA1NjksIDAuMDEwNTU1LCAwLjAxMDU1LCAwLjAxMDUzOCwgMC4wMTA1MjksIDAuMDEwNTMiLCBcCi0gICAgICAgICAgIjAuMDEwNDczLCAwLjAxMDU2OCwgMC4wMTA1NTQsIDAuMDEwNTQ5LCAwLjAxMDUzOCwgMC4wMTA1MjksIDAuMDEwNTI4IiwgXAotICAgICAgICAgICIwLjAxMDQ4MiwgMC4wMTA1NzksIDAuMDEwNTY5LCAwLjAxMDU2MSwgMC4wMTA1NDgsIDAuMDEwNTQsIDAuMDEwNTM4IiwgXAotICAgICAgICAgICIwLjAxMDQ4OSwgMC4wMTA1OTMsIDAuMDEwNTgyLCAwLjAxMDU3MywgMC4wMTA1NjQsIDAuMDEwNTYsIDAuMDEwNTUxIiwgXAotICAgICAgICAgICIwLjAxMDUyOCwgMC4wMTA2MjgsIDAuMDEwNjIxLCAwLjAxMDYxOSwgMC4wMTA2MDMsIDAuMDEwNjAyLCAwLjAxMDU5MyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEwODAzLCAwLjAxMDk4OSwgMC4wMTEwMTMsIDAuMDExMDIsIDAuMDExMDI3LCAwLjAxMTAzLCAwLjAxMTAzMyIsIFwKLSAgICAgICAgICAiMC4wMTA3NjksIDAuMDEwOTYsIDAuMDEwOTg0LCAwLjAxMDk5MiwgMC4wMTA5OTksIDAuMDExMDAyLCAwLjAxMTAwNSIsIFwKLSAgICAgICAgICAiMC4wMTA3NzIsIDAuMDEwOTU4LCAwLjAxMDk4MiwgMC4wMTA5OSwgMC4wMTA5OTYsIDAuMDExLCAwLjAxMTAwMyIsIFwKLSAgICAgICAgICAiMC4wMTA3OTEsIDAuMDEwOTc1LCAwLjAxMDk5OSwgMC4wMTEwMDYsIDAuMDExMDEzLCAwLjAxMTAxNiwgMC4wMTEwMTkiLCBcCi0gICAgICAgICAgIjAuMDEwODAyLCAwLjAxMDk5MSwgMC4wMTEwMTUsIDAuMDExMDIzLCAwLjAxMTAyOSwgMC4wMTEwMzMsIDAuMDExMDM2IiwgXAotICAgICAgICAgICIwLjAxMDgyOSwgMC4wMTEwMTYsIDAuMDExMDQsIDAuMDExMDQ3LCAwLjAxMTA1NCwgMC4wMTEwNTcsIDAuMDExMDYiLCBcCi0gICAgICAgICAgIjAuMDEwODk3LCAwLjAxMTA4NCwgMC4wMTExMDgsIDAuMDExMTE1LCAwLjAxMTEyMSwgMC4wMTExMjQsIDAuMDExMTI3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNTk5NTY7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNTk5OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTU5OTU2OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNzQyOCwgMC4wMDc0MDUsIDAuMDA3Mzk4LCAwLjAwNzQwMSwgMC4wMDc0MTQsIDAuMDA3NDMyLCAwLjAwNzQ1MSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwODg0MSwgMC4wMDg3OTUsIDAuMDA4NzgzLCAwLjAwODc4NywgMC4wMDg4LCAwLjAwODg0MiwgMC4wMDg4ODMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIVNFIjsKLSAgICAgIHNkZl9jb25kIDogIlNFID09IDEnYjAiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAzNzUsIC0wLjAyNjI1LCAtMC4wMiwgLTAuMDA3NSwgLTAuMDAxMjUsIDAuMDA4NzUsIDAuMDIzNzUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAwLjAwMzc1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjA1NSwgLTAuMDUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAwODc1LCAwIiwgXAotICAgICAgICAgICItMC4wNjc1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMjEyNSwgLTAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDczNzUsIC0wLjA2ODc1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjAzNzUsIC0wLjAyNzUsIC0wLjAxODc1IiwgXAotICAgICAgICAgICItMC4wOSwgLTAuMDc4NzUsIC0wLjA2NjI1LCAtMC4wNiwgLTAuMDUzNzUsIC0wLjAzNzUsIC0wLjAyODc1IiwgXAotICAgICAgICAgICItMC4wOTg3NSwgLTAuMDg3NSwgLTAuMDc1LCAtMC4wNjg3NSwgLTAuMDYyNSwgLTAuMDQ2MjUsIC0wLjAzNzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMTg3NSwgLTAuMDA3NSwgLTAuMDAxMjUsIDAuMDExMjUsIDAuMDE3NSwgMC4wMjc1LCAwLjAzNjI1IiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLCAwLjAwNjI1LCAwLjAyMjUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIDAsIDAuMDEsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwMjUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA1NSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAwODc1LCAwIiwgXAotICAgICAgICAgICItMC4wNjUsIC0wLjA2LCAtMC4wNDc1LCAtMC4wNDEyNSwgLTAuMDM1LCAtMC4wMjUsIC0wLjAxNjI1IiwgXAotICAgICAgICAgICItMC4wNjc1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjA1LCAtMC4wNCwgLTAuMDI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhU0UiOwotICAgICAgc2RmX2NvbmQgOiAiU0UgPT0gMSdiMCI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTA2MjUsIDAuMDk1LCAwLjA4ODc1LCAwLjA3NjI1LCAwLjA3LCAwLjA2LCAwLjA1NzUiLCBcCi0gICAgICAgICAgIjAuMTE3NSwgMC4xMDYyNSwgMC4wOTM3NSwgMC4wODc1LCAwLjA4MTI1LCAwLjA3MTI1LCAwLjA2MjUiLCBcCi0gICAgICAgICAgIjAuMTMsIDAuMTE4NzUsIDAuMTA2MjUsIDAuMSwgMC4wOTM3NSwgMC4wODM3NSwgMC4wNzUiLCBcCi0gICAgICAgICAgIjAuMTQyNSwgMC4xMzEyNSwgMC4xMTg3NSwgMC4xMTI1LCAwLjEwNjI1LCAwLjA5NjI1LCAwLjA4NzUiLCBcCi0gICAgICAgICAgIjAuMTU1LCAwLjE0Mzc1LCAwLjEzMTI1LCAwLjExODc1LCAwLjExMjUsIDAuMTAyNSwgMC4xIiwgXAotICAgICAgICAgICIwLjE3MTI1LCAwLjE2LCAwLjE0NzUsIDAuMTQxMjUsIDAuMTM1LCAwLjEyNSwgMC4xMTYyNSIsIFwKLSAgICAgICAgICAiMC4xODYyNSwgMC4xNzUsIDAuMTYyNSwgMC4xNTYyNSwgMC4xNSwgMC4xNCwgMC4xMzEyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEyNSwgMC4xMiwgMC4xMDc1LCAwLjA5NSwgMC4wODg3NSwgMC4wNzg3NSwgMC4wNzYyNSIsIFwKLSAgICAgICAgICAiMC4xMzYyNSwgMC4xMjUsIDAuMTEyNSwgMC4xMDYyNSwgMC4xLCAwLjA5LCAwLjA4MTI1IiwgXAotICAgICAgICAgICIwLjE0ODc1LCAwLjEzNzUsIDAuMTI1LCAwLjExODc1LCAwLjExMjUsIDAuMTAyNSwgMC4wOTM3NSIsIFwKLSAgICAgICAgICAiMC4xNTUsIDAuMTUsIDAuMTM3NSwgMC4xMjUsIDAuMTE4NzUsIDAuMTA4NzUsIDAuMTA2MjUiLCBcCi0gICAgICAgICAgIjAuMTY3NSwgMC4xNTYyNSwgMC4xNDM3NSwgMC4xMzc1LCAwLjEyNSwgMC4xMjEyNSwgMC4xMTI1IiwgXAotICAgICAgICAgICIwLjE3NzUsIDAuMTY2MjUsIDAuMTUzNzUsIDAuMTQ3NSwgMC4xMzUsIDAuMTMxMjUsIDAuMTIyNSIsIFwKLSAgICAgICAgICAiMC4xODYyNSwgMC4xNzUsIDAuMTYyNSwgMC4xNSwgMC4xNDM3NSwgMC4xMzM3NSwgMC4xMzEyNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oU0UpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTQ1MzExOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTQ1Mjc7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNDUzMTE7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA1NDAyLCAwLjAwNTM5LCAwLjAwNTM5MiwgMC4wMDUzOTgsIDAuMDA1NDExLCAwLjAwNTQzNywgMC4wMDU0NjEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDY3NzksIDAuMDA2NzIzLCAwLjAwNjcwNSwgMC4wMDY3MywgMC4wMDY3MywgMC4wMDY3OCwgMC4wMDY4MzYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUQwJiFEMSYhUzAmU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRDBfRVFfMF9BTl9EMV9FUV8wX0FOX1MwX0VRXzBfQU5fU0lfRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMzEyNSwgLTAuMDI2MjUsIC0wLjAxMzc1LCAtMC4wMDc1LCAtMC4wMDEyNSwgMC4wMDg3NSwgMC4wMTEyNSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDM3NSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDAyNSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDE1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDY3NSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDI3NSwgLTAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjA3Mzc1LCAtMC4wNjg3NSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDQsIC0wLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wOSwgLTAuMDg1LCAtMC4wNzI1LCAtMC4wNjYyNSwgLTAuMDYsIC0wLjA1LCAtMC4wNDc1IiwgXAotICAgICAgICAgICItMC4wOTg3NSwgLTAuMDkzNzUsIC0wLjA4NzUsIC0wLjA3NSwgLTAuMDc1LCAtMC4wNjUsIC0wLjA1NjI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMCwgMC4wMTEyNSwgMC4wMjM3NSwgMC4wMywgMC4wNDI1LCAwLjA1MjUsIDAuMDYxMjUiLCBcCi0gICAgICAgICAgIi0wLjAwNSwgMCwgMC4wMTI1LCAwLjAyNSwgMC4wMzEyNSwgMC4wNDc1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICItMC4wMTc1LCAtMC4wMDYyNSwgMCwgMC4wMTI1LCAwLjAyNSwgMC4wMzUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAuMDA2MjUsIDAuMDEyNSwgMC4wMjI1LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMjUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLjAwNjI1LCAwLjAxNjI1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDQ2MjUsIC0wLjAzNSwgLTAuMDI4NzUsIC0wLjAxNjI1LCAtMC4wMSwgMC4wMDYyNSwgMC4wMTUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDA4NzUsIDAuMDA2MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUQwJkQxJlMwJiFTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEMF9FUV8wX0FOX0QxX0VRXzFfQU5fUzBfRVFfMV9BTl9TSV9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAxMjUsIC0wLjAwNzUsIDAuMDA1LCAwLjAxNzUsIDAuMDMsIDAuMDQsIDAuMDQ4NzUiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTI1LCAwLCAwLjAwNjI1LCAwLjAxODc1LCAwLjAyODc1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDI1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMC4wMDYyNSwgMC4wMTYyNSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjAzNzUsIC0wLjAyNSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAuMDEsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjA1NSwgLTAuMDQzNzUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAxMjUsIC0wLjAwMjUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDY1LCAtMC4wNiwgLTAuMDQ3NSwgLTAuMDM1LCAtMC4wMjI1LCAtMC4wMTI1LCAtMC4wMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDczNzUsIC0wLjA2ODc1LCAtMC4wNTYyNSwgLTAuMDQzNzUsIC0wLjAzMTI1LCAtMC4wMjEyNSwgLTAuMDEyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjA1LCAtMC4wNDUsIC0wLjAzMjUsIC0wLjAyNjI1LCAtMC4wMiwgLTAuMDE2MjUsIC0wLjAwNzUiLCBcCi0gICAgICAgICAgIi0wLjA2MTI1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMjc1LCAtMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDczNzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjA0LCAtMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDg2MjUsIC0wLjA3NSwgLTAuMDY4NzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNDYyNSwgLTAuMDQzNzUiLCBcCi0gICAgICAgICAgIi0wLjA5MjUsIC0wLjA4NzUsIC0wLjA3NSwgLTAuMDY4NzUsIC0wLjA2MjUsIC0wLjA1ODc1LCAtMC4wNSIsIFwKLSAgICAgICAgICAiLTAuMTAyNSwgLTAuMDk3NSwgLTAuMDkxMjUsIC0wLjA4NSwgLTAuMDc4NzUsIC0wLjA2ODc1LCAtMC4wNiIsIFwKLSAgICAgICAgICAiLTAuMTExMjUsIC0wLjEwNjI1LCAtMC4xLCAtMC4wOTM3NSwgLTAuMDg3NSwgLTAuMDc3NSwgLTAuMDY4NzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEMCYhRDEmIVMwJlNJIjsKLSAgICAgIHNkZl9jb25kIDogIkQwX0VRXzBfQU5fRDFfRVFfMF9BTl9TMF9FUV8wX0FOX1NJX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDYyNSwgMC4wNTEyNSwgMC4wMzg3NSwgMC4wMzI1LCAwLjAyNjI1LCAwLjAxNjI1LCAwLjAwNzUiLCBcCi0gICAgICAgICAgIjAuMDczNzUsIDAuMDYyNSwgMC4wNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAyNzUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMDgsIDAuMDc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDUsIDAuMDQsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMDkyNSwgMC4wODEyNSwgMC4wNzUsIDAuMDY4NzUsIDAuMDU2MjUsIDAuMDUyNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4xMDUsIDAuMDkzNzUsIDAuMDg3NSwgMC4wNzUsIDAuMDY4NzUsIDAuMDU4NzUsIDAuMDUiLCBcCi0gICAgICAgICAgIjAuMTIxMjUsIDAuMTEsIDAuMDk3NSwgMC4wOTEyNSwgMC4wODUsIDAuMDc1LCAwLjA2NjI1IiwgXAotICAgICAgICAgICIwLjEzNjI1LCAwLjEyNSwgMC4xMTI1LCAwLjEwNjI1LCAwLjEsIDAuMDksIDAuMDgxMjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNSwgMC4wMzg3NSwgMC4wMjYyNSwgMC4wMTM3NSwgMC4wMDEyNSwgLTAuMDA4NzUsIC0wLjAyMzc1IiwgXAotICAgICAgICAgICIwLjA2MTI1LCAwLjA1LCAwLjAzNzUsIDAuMDI1LCAwLjAxMjUsIC0wLjAwMzc1LCAtMC4wMTI1IiwgXAotICAgICAgICAgICIwLjA3Mzc1LCAwLjA2MjUsIDAuMDUsIDAuMDM3NSwgMC4wMjUsIDAuMDA4NzUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICIwLjA4LCAwLjA2ODc1LCAwLjA1NjI1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDIxMjUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMDkyNSwgMC4wODEyNSwgMC4wNjg3NSwgMC4wNTYyNSwgMC4wNDM3NSwgMC4wMjc1LCAwLjAxODc1IiwgXAotICAgICAgICAgICIwLjEwODc1LCAwLjA5NzUsIDAuMDg1LCAwLjA3MjUsIDAuMDYsIDAuMDQzNzUsIDAuMDM1IiwgXAotICAgICAgICAgICIwLjExNzUsIDAuMTA2MjUsIDAuMDkzNzUsIDAuMDgxMjUsIDAuMDc1LCAwLjA1ODc1LCAwLjA0Mzc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRDAmRDEmUzAmIVNJIjsKLSAgICAgIHNkZl9jb25kIDogIkQwX0VRXzBfQU5fRDFfRVFfMV9BTl9TMF9FUV8xX0FOX1NJX0VRXzAgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU2MjUsIDAuMDQ1LCAwLjAzMjUsIDAuMDIsIDAuMDA3NSwgLTAuMDA4NzUsIC0wLjAxNzUiLCBcCi0gICAgICAgICAgIjAuMDY3NSwgMC4wNTYyNSwgMC4wNDM3NSwgMC4wMzEyNSwgMC4wMTg3NSwgMC4wMDI1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiMC4wOCwgMC4wNjg3NSwgMC4wNTYyNSwgMC4wNDM3NSwgMC4wMzEyNSwgMC4wMTUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMDg2MjUsIDAuMDc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDQzNzUsIDAuMDI3NSwgMC4wMTI1IiwgXAotICAgICAgICAgICIwLjA5ODc1LCAwLjA4NzUsIDAuMDc1LCAwLjA2MjUsIDAuMDUsIDAuMDMzNzUsIDAuMDI1IiwgXAotICAgICAgICAgICIwLjEwODc1LCAwLjA5NzUsIDAuMDg1LCAwLjA3MjUsIDAuMDYsIDAuMDUsIDAuMDM1IiwgXAotICAgICAgICAgICIwLjExNzUsIDAuMTA2MjUsIDAuMDkzNzUsIDAuMDgxMjUsIDAuMDY4NzUsIDAuMDU4NzUsIDAuMDQzNzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODc1LCAwLjA3NjI1LCAwLjA2Mzc1LCAwLjA1NzUsIDAuMDUxMjUsIDAuMDQxMjUsIDAuMDMyNSIsIFwKLSAgICAgICAgICAiMC4wOTg3NSwgMC4wODc1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1MjUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMTExMjUsIDAuMSwgMC4wODc1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNjUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIjAuMTIzNzUsIDAuMTEyNSwgMC4xLCAwLjA4NzUsIDAuMDgxMjUsIDAuMDcxMjUsIDAuMDY4NzUiLCBcCi0gICAgICAgICAgIjAuMTMsIDAuMTE4NzUsIDAuMTA2MjUsIDAuMSwgMC4wOTM3NSwgMC4wODM3NSwgMC4wNzUiLCBcCi0gICAgICAgICAgIjAuMTQsIDAuMTI4NzUsIDAuMTE2MjUsIDAuMTEsIDAuMTAzNzUsIDAuMDkzNzUsIDAuMDkxMjUiLCBcCi0gICAgICAgICAgIjAuMTQ4NzUsIDAuMTM3NSwgMC4xMjUsIDAuMTE4NzUsIDAuMTEyNSwgMC4xMDI1LCAwLjEiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFNJKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA4OTEwOTM7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwODg4MzIzOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDg5MTA5MzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDMyODUsIDAuMDAzMjUzLCAwLjAwMzIzNiwgMC4wMDMyMjgsIDAuMDAzMjIyLCAwLjAwMzIzMywgMC4wMDMyMzciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDU5NTMsIDAuMDA1OTM1LCAwLjAwNTkyNSwgMC4wMDU5MjEsIDAuMDA1OTIsIDAuMDA1OTI1LCAwLjAwNTkyOSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJTRSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMzc1LCAtMC4wMzI1LCAtMC4wMiwgLTAuMDEzNzUsIC0wLjAwNzUsIDAuMDAyNSwgMC4wMDUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDA4NzUsIDAiLCBcCi0gICAgICAgICAgIi0wLjA2MTI1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMjEyNSwgLTAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDY3NSwgLTAuMDYyNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMjc1LCAtMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjA4LCAtMC4wNjg3NSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNCwgLTAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjA5NjI1LCAtMC4wODUsIC0wLjA3ODc1LCAtMC4wNzI1LCAtMC4wNjYyNSwgLTAuMDU2MjUsIC0wLjA0NzUiLCBcCi0gICAgICAgICAgIi0wLjEwNSwgLTAuMSwgLTAuMDg3NSwgLTAuMDgxMjUsIC0wLjA3NSwgLTAuMDY1LCAtMC4wNjI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMCwgMC4wMTEyNSwgMC4wMTc1LCAwLjAzLCAwLjA0MjUsIDAuMDUyNSwgMC4wNjEyNSIsIFwKLSAgICAgICAgICAiLTAuMDExMjUsIDAsIDAuMDEyNSwgMC4wMjUsIDAuMDMxMjUsIDAuMDQ3NSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiLTAuMDE3NSwgLTAuMDA2MjUsIDAsIDAuMDEyNSwgMC4wMjUsIDAuMDM1LCAwLjA1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLjAwNjI1LCAwLjAxMjUsIDAuMDI4NzUsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAyNSwgLTAuMDEyNSwgMCwgMC4wMDYyNSwgMC4wMjI1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wNDYyNSwgLTAuMDM1LCAtMC4wMjI1LCAtMC4wMSwgLTAuMDAzNzUsIDAuMDA2MjUsIDAuMDIxMjUiLCBcCi0gICAgICAgICAgIi0wLjA1NSwgLTAuMDQzNzUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDAyNSwgMC4wMTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJTRSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjg3NSwgMC4wNTc1LCAwLjA0NSwgMC4wMzg3NSwgMC4wMzI1LCAwLjAyMjUsIDAuMDEzNzUiLCBcCi0gICAgICAgICAgIjAuMDgsIDAuMDY4NzUsIDAuMDU2MjUsIDAuMDUsIDAuMDQzNzUsIDAuMDMzNzUsIDAuMDI1IiwgXAotICAgICAgICAgICIwLjA4NjI1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNTYyNSwgMC4wNSwgMC4wNDYyNSwgMC4wMzc1IiwgXAotICAgICAgICAgICIwLjA5ODc1LCAwLjA4NzUsIDAuMDc1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDUyNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4xMTEyNSwgMC4xLCAwLjA4NzUsIDAuMDgxMjUsIDAuMDc1LCAwLjA2NSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiMC4xMjc1LCAwLjExNjI1LCAwLjEwMzc1LCAwLjA5NzUsIDAuMDkxMjUsIDAuMDgxMjUsIDAuMDcyNSIsIFwKLSAgICAgICAgICAiMC4xMzYyNSwgMC4xMjUsIDAuMTEyNSwgMC4xMDYyNSwgMC4xLCAwLjA5LCAwLjA4MTI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQzNzUsIDAuMDMyNSwgMC4wMiwgMC4wMDc1LCAtMC4wMDUsIC0wLjAyMTI1LCAtMC4wMyIsIFwKLSAgICAgICAgICAiMC4wNDg3NSwgMC4wMzc1LCAwLjAyNSwgMC4wMTI1LCAwLjAwNjI1LCAtMC4wMSwgLTAuMDI1IiwgXAotICAgICAgICAgICIwLjA2MTI1LCAwLjA1LCAwLjAzNzUsIDAuMDI1LCAwLjAxMjUsIC0wLjAwMzc1LCAtMC4wMTI1IiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDYyNSwgMC4wNSwgMC4wMzc1LCAwLjAyNSwgMC4wMDg3NSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMDgsIDAuMDY4NzUsIDAuMDU2MjUsIDAuMDQzNzUsIDAuMDMxMjUsIDAuMDE1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICIwLjA5LCAwLjA3ODc1LCAwLjA2NjI1LCAwLjA1Mzc1LCAwLjA0NzUsIDAuMDMxMjUsIDAuMDE2MjUiLCBcCi0gICAgICAgICAgIjAuMTA1LCAwLjA5Mzc1LCAwLjA4MTI1LCAwLjA2ODc1LCAwLjA1NjI1LCAwLjA0LCAwLjAyNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogU01ERkZIUVg4ICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoU01ERkZIUVg4KSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuOTI5MzYxOwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIGZmIChOMzAsUUJJTlQpIHsKLSAgICBuZXh0X3N0YXRlIDogIigoU0UgU0kpICsgKCFTRSAoKFMwIEQxKSArICghUzAgRDApKSkpIjsKLSAgICBjbG9ja2VkX29uIDogIkNLIjsKLSAgfQotICBwaW4oQ0spICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDU4ODkxNjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA1ODg2NjI7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNTg4OTE2OwotICAgIGNsb2NrIDogdHJ1ZTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDM0NTEsIDAuMDAzNDI2LCAwLjAwMzQxMSwgMC4wMDM0MTIsIDAuMDAzNDIyLCAwLjAwMzQ0MSwgMC4wMDM0NjMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDc2NjQsIDAuMDA3NjQxLCAwLjAwNzYzOCwgMC4wMDc2NTYsIDAuMDA3NjY5LCAwLjAwNzcyMSwgMC4wMDc3NTQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFEMCYhRDEmIVMwJiFTRSYhU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRDBfRVFfMF9BTl9EMV9FUV8wX0FOX1MwX0VRXzBfQU5fU0VfRVFfMF9BTl9TSV9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMTMwMjc0LCAwLjE0MDQ4NywgMC4xNTMxOTIsIDAuMTY1NjI3LCAwLjE3Njk1MiwgMC4xOTI3NDcsIDAuMjA0ODQzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4xMDEwMDYsIDAuMTEwOTg0LCAwLjEyMzQ0OSwgMC4xMzUyNDUsIDAuMTQ1ODIyLCAwLjE2MDE1OCwgMC4xNzEzMTgiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEQwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA5NDY0MTY7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwOTQzNDAxOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDk0NjQxNjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDQ2NTUsIDAuMDA0NjI2LCAwLjAwNDYxMywgMC4wMDQ2MDUsIDAuMDA0NjAyLCAwLjAwNDYwNCwgMC4wMDQ2MDUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDc4ODQsIDAuMDA3ODY4LCAwLjAwNzg2LCAwLjAwNzg1NiwgMC4wMDc4NTUsIDAuMDA3ODU4LCAwLjAwNzg2NCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhUzAmIVNFIjsKLSAgICAgIHNkZl9jb25kIDogIlMwX0VRXzBfQU5fU0VfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wNzUsIC0wLjA3LCAtMC4wNjM3NSwgLTAuMDU3NSwgLTAuMDUxMjUsIC0wLjA0MTI1LCAtMC4wMzg3NSIsIFwKLSAgICAgICAgICAiLTAuMDg2MjUsIC0wLjA4MTI1LCAtMC4wNjg3NSwgLTAuMDYyNSwgLTAuMDYyNSwgLTAuMDUyNSwgLTAuMDQzNzUiLCBcCi0gICAgICAgICAgIi0wLjA5ODc1LCAtMC4wODc1LCAtMC4wODEyNSwgLTAuMDc1LCAtMC4wNjg3NSwgLTAuMDY1LCAtMC4wNTYyNSIsIFwKLSAgICAgICAgICAiLTAuMTA1LCAtMC4xLCAtMC4wOTM3NSwgLTAuMDg3NSwgLTAuMDgxMjUsIC0wLjA3MTI1LCAtMC4wNjg3NSIsIFwKLSAgICAgICAgICAiLTAuMTE3NSwgLTAuMTEyNSwgLTAuMSwgLTAuMDkzNzUsIC0wLjA5Mzc1LCAtMC4wODM3NSwgLTAuMDc1IiwgXAotICAgICAgICAgICItMC4xMzM3NSwgLTAuMTI4NzUsIC0wLjExNjI1LCAtMC4xMSwgLTAuMTEsIC0wLjEsIC0wLjA5MTI1IiwgXAotICAgICAgICAgICItMC4xNDg3NSwgLTAuMTM3NSwgLTAuMTMxMjUsIC0wLjEyNSwgLTAuMTE4NzUsIC0wLjExNSwgLTAuMTA2MjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMjUsIC0wLjAxMzc1LCAtMC4wMDc1LCAwLjAwNSwgMC4wMTEyNSwgMC4wMjEyNSwgMC4wMyIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMC4wMDYyNSwgMC4wMTYyNSwgMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLjAwMzc1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMTI1LCAtMC4wMDI1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMTUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wNjUsIC0wLjA2LCAtMC4wNTM3NSwgLTAuMDQxMjUsIC0wLjAzNSwgLTAuMDI1LCAtMC4wMTYyNSIsIFwKLSAgICAgICAgICAiLTAuMDczNzUsIC0wLjA2ODc1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjAzMzc1LCAtMC4wMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFTMCYhU0UiOwotICAgICAgc2RmX2NvbmQgOiAiUzBfRVFfMF9BTl9TRV9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExODc1LCAwLjEwNzUsIDAuMDk1LCAwLjA4ODc1LCAwLjA4MjUsIDAuMDcyNSwgMC4wNjM3NSIsIFwKLSAgICAgICAgICAiMC4xMywgMC4xMTg3NSwgMC4xMDYyNSwgMC4wOTM3NSwgMC4wODc1LCAwLjA3NzUsIDAuMDc1IiwgXAotICAgICAgICAgICIwLjEzNjI1LCAwLjEyNSwgMC4xMTI1LCAwLjEwNjI1LCAwLjEsIDAuMDksIDAuMDgxMjUiLCBcCi0gICAgICAgICAgIjAuMTQ4NzUsIDAuMTM3NSwgMC4xMjUsIDAuMTE4NzUsIDAuMTEyNSwgMC4xMDI1LCAwLjA5Mzc1IiwgXAotICAgICAgICAgICIwLjE2MTI1LCAwLjE1LCAwLjEzNzUsIDAuMTI1LCAwLjExODc1LCAwLjExNSwgMC4xMDYyNSIsIFwKLSAgICAgICAgICAiMC4xNzc1LCAwLjE2NjI1LCAwLjE1Mzc1LCAwLjE0MTI1LCAwLjEzNSwgMC4xMjUsIDAuMTIyNSIsIFwKLSAgICAgICAgICAiMC4xODYyNSwgMC4xNzUsIDAuMTY4NzUsIDAuMTU2MjUsIDAuMTUsIDAuMTQsIDAuMTM3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4NzUsIDAuMDc2MjUsIDAuMDYzNzUsIDAuMDUxMjUsIDAuMDM4NzUsIDAuMDIyNSwgMC4wMTM3NSIsIFwKLSAgICAgICAgICAiMC4wOTg3NSwgMC4wODc1LCAwLjA3NSwgMC4wNjI1LCAwLjA1LCAwLjAzMzc1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiMC4xMDUsIDAuMDkzNzUsIDAuMDgxMjUsIDAuMDY4NzUsIDAuMDU2MjUsIDAuMDQ2MjUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMTE3NSwgMC4xMDYyNSwgMC4wOTM3NSwgMC4wODEyNSwgMC4wNjg3NSwgMC4wNTI1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjEyMzc1LCAwLjExMjUsIDAuMSwgMC4wODc1LCAwLjA4MTI1LCAwLjA2NSwgMC4wNSIsIFwKLSAgICAgICAgICAiMC4xNCwgMC4xMjg3NSwgMC4xMTYyNSwgMC4xMDM3NSwgMC4wOTEyNSwgMC4wNzUsIDAuMDY2MjUiLCBcCi0gICAgICAgICAgIjAuMTU1LCAwLjE0Mzc1LCAwLjEzMTI1LCAwLjExODc1LCAwLjEwNjI1LCAwLjA5LCAwLjA3NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRDEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDg4MDAxOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDg3Njg1NzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA4ODAwMTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDQ0NTQsIDAuMDA0NDI0LCAwLjAwNDQxMSwgMC4wMDQ0MDQsIDAuMDA0NCwgMC4wMDQ0LCAwLjAwNDQwNSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwODE2MSwgMC4wMDgxNDYsIDAuMDA4MTM4LCAwLjAwODEzMywgMC4wMDgxMzIsIDAuMDA4MTMzLCAwLjAwODEzOCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJTMCYhU0UiOwotICAgICAgc2RmX2NvbmQgOiAiUzBfRVFfMV9BTl9TRV9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjA3NSwgLTAuMDcsIC0wLjA2Mzc1LCAtMC4wNTc1LCAtMC4wNTEyNSwgLTAuMDQxMjUsIC0wLjAzODc1IiwgXAotICAgICAgICAgICItMC4wODYyNSwgLTAuMDgxMjUsIC0wLjA2ODc1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDUyNSwgLTAuMDQzNzUiLCBcCi0gICAgICAgICAgIi0wLjA5ODc1LCAtMC4wODc1LCAtMC4wODEyNSwgLTAuMDc1LCAtMC4wNjg3NSwgLTAuMDY1LCAtMC4wNTYyNSIsIFwKLSAgICAgICAgICAiLTAuMTA1LCAtMC4xLCAtMC4wOTM3NSwgLTAuMDg3NSwgLTAuMDgxMjUsIC0wLjA3MTI1LCAtMC4wNjg3NSIsIFwKLSAgICAgICAgICAiLTAuMTE3NSwgLTAuMTEyNSwgLTAuMSwgLTAuMDkzNzUsIC0wLjA5Mzc1LCAtMC4wODM3NSwgLTAuMDc1IiwgXAotICAgICAgICAgICItMC4xMzM3NSwgLTAuMTI4NzUsIC0wLjExNjI1LCAtMC4xMSwgLTAuMTEsIC0wLjEsIC0wLjA5MTI1IiwgXAotICAgICAgICAgICItMC4xNDg3NSwgLTAuMTM3NSwgLTAuMTMxMjUsIC0wLjEyNSwgLTAuMTE4NzUsIC0wLjExNSwgLTAuMTA2MjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMjUsIC0wLjAxMzc1LCAtMC4wMDc1LCAwLjAwNSwgMC4wMTEyNSwgMC4wMjEyNSwgMC4wMyIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAyNSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAsIDAuMDE2MjUsIDAuMDI1IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMC4wMDM3NSwgMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDQzNzUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMDI1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDE1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDY1LCAtMC4wNiwgLTAuMDUzNzUsIC0wLjA0NzUsIC0wLjA0MTI1LCAtMC4wMjUsIC0wLjAxNjI1IiwgXAotICAgICAgICAgICItMC4wNzM3NSwgLTAuMDY4NzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDQsIC0wLjAzMTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJTMCYhU0UiOwotICAgICAgc2RmX2NvbmQgOiAiUzBfRVFfMV9BTl9TRV9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExODc1LCAwLjEwNzUsIDAuMDk1LCAwLjA4ODc1LCAwLjA4MjUsIDAuMDcyNSwgMC4wNjM3NSIsIFwKLSAgICAgICAgICAiMC4xMjM3NSwgMC4xMTg3NSwgMC4xMDYyNSwgMC4wOTM3NSwgMC4wODc1LCAwLjA3NzUsIDAuMDc1IiwgXAotICAgICAgICAgICIwLjEzNjI1LCAwLjEyNSwgMC4xMTI1LCAwLjEwNjI1LCAwLjEsIDAuMDksIDAuMDgxMjUiLCBcCi0gICAgICAgICAgIjAuMTQ4NzUsIDAuMTM3NSwgMC4xMjUsIDAuMTE4NzUsIDAuMTEyNSwgMC4xMDI1LCAwLjA5Mzc1IiwgXAotICAgICAgICAgICIwLjE2MTI1LCAwLjE1LCAwLjEzNzUsIDAuMTMxMjUsIDAuMTE4NzUsIDAuMTE1LCAwLjEwNjI1IiwgXAotICAgICAgICAgICIwLjE3NzUsIDAuMTY2MjUsIDAuMTUzNzUsIDAuMTQxMjUsIDAuMTM1LCAwLjEyNSwgMC4xMjI1IiwgXAotICAgICAgICAgICIwLjE4NjI1LCAwLjE3NSwgMC4xNjg3NSwgMC4xNTYyNSwgMC4xNSwgMC4xNCwgMC4xMzc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg3NSwgMC4wNzYyNSwgMC4wNjM3NSwgMC4wNTEyNSwgMC4wNDUsIDAuMDI4NzUsIDAuMDEzNzUiLCBcCi0gICAgICAgICAgIjAuMDk4NzUsIDAuMDg3NSwgMC4wNzUsIDAuMDYyNSwgMC4wNSwgMC4wMzM3NSwgMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMTA1LCAwLjEsIDAuMDgxMjUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNDYyNSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4xMTc1LCAwLjEwNjI1LCAwLjA5Mzc1LCAwLjA4MTI1LCAwLjA2ODc1LCAwLjA1MjUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMTMsIDAuMTE4NzUsIDAuMSwgMC4wOTM3NSwgMC4wODEyNSwgMC4wNjUsIDAuMDUiLCBcCi0gICAgICAgICAgIjAuMTQsIDAuMTI4NzUsIDAuMTE2MjUsIDAuMTAzNzUsIDAuMDk3NSwgMC4wODEyNSwgMC4wNjYyNSIsIFwKLSAgICAgICAgICAiMC4xNTUsIDAuMTQzNzUsIDAuMTMxMjUsIDAuMTE4NzUsIDAuMTA2MjUsIDAuMDksIDAuMDgxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFEpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMi4wMDcwNTsKLSAgICBmdW5jdGlvbiA6ICJOMzAiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5vbl91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcmlzaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTE5MjIzLCAwLjE1Njk3NCwgMC4xOTI4ODMsIDAuMjE4NDk4LCAwLjI1OTQ2NiwgMC4yOTUzMDQsIDAuMzQ2NTEiLCBcCi0gICAgICAgICAgIjAuMTI5NDI4LCAwLjE2NzE4MywgMC4yMDMwODgsIDAuMjI4NzAzLCAwLjI2OTY3MSwgMC4zMDU1MSwgMC4zNTY3MTQiLCBcCi0gICAgICAgICAgIjAuMTQyMDY2LCAwLjE3OTgyLCAwLjIxNTcyOSwgMC4yNDEzNDIsIDAuMjgyMzEyLCAwLjMxODE1LCAwLjM2OTM1OSIsIFwKLSAgICAgICAgICAiMC4xNTQ0NzEsIDAuMTkyMjI2LCAwLjIyODEzNSwgMC4yNTM3NTIsIDAuMjk0NzE2LCAwLjMzMDU3LCAwLjM4MTcxNCIsIFwKLSAgICAgICAgICAiMC4xNjU2MjcsIDAuMjAzMzc1LCAwLjIzOTI4NCwgMC4yNjQ5MDEsIDAuMzA1ODc3LCAwLjM0MTcwNSwgMC4zOTI5MSIsIFwKLSAgICAgICAgICAiMC4xODA4MjEsIDAuMjE4NTg0LCAwLjI1NDQ5NSwgMC4yODAxMTIsIDAuMzIxMDc0LCAwLjM1NjkyMiwgMC40MDgxMjQiLCBcCi0gICAgICAgICAgIjAuMTkzNDI5LCAwLjIzMTE4MiwgMC4yNjcwOTIsIDAuMjkyNzA4LCAwLjMzMzY4MiwgMC4zNjk1MywgMC40MjA3MTgiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjIwNjgsIDAuMDkyMDkzLCAwLjE2NTExNCwgMC4yMTc2OCwgMC4zMDIzODQsIDAuMzc1NDYzLCAwLjQ4MDk3OCIsIFwKLSAgICAgICAgICAiMC4wMjIwNywgMC4wOTIxMzUsIDAuMTY1MTE1LCAwLjIxNzY4MSwgMC4zMDE4MDYsIDAuMzc1NDY0LCAwLjQ4MTY3NyIsIFwKLSAgICAgICAgICAiMC4wMjIwNjcsIDAuMDkyMiwgMC4xNjUxMTEsIDAuMjE3NjczLCAwLjMwMjM2NiwgMC4zNzYzMjMsIDAuNDgxNjUzIiwgXAotICAgICAgICAgICIwLjAyMjA2NiwgMC4wOTIxMjYsIDAuMTY1MTEyLCAwLjIxNzY4MSwgMC4zMDIzNzMsIDAuMzc2NDU3LCAwLjQ4MTY2MiIsIFwKLSAgICAgICAgICAiMC4wMjIwODIsIDAuMDkyMTM3LCAwLjE2NTExMiwgMC4yMTc2ODIsIDAuMzAyMzgsIDAuMzc2NDExLCAwLjQ4MTU3IiwgXAotICAgICAgICAgICIwLjAyMjA2NSwgMC4wOTIxMjksIDAuMTY1MTEzLCAwLjIxNzY4MiwgMC4zMDIzNDcsIDAuMzc2MzcsIDAuNDgyMTA5IiwgXAotICAgICAgICAgICIwLjAyMjExNCwgMC4wOTIxMzQsIDAuMTY1MTE0LCAwLjIxNzY4MSwgMC4zMDIzOTcsIDAuMzc2NDE0LCAwLjQ4MTcxNyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEzMDI3NCwgMC4xNzAwNjIsIDAuMjA4MTQ0LCAwLjIzNTI5OSwgMC4yNzg3MzEsIDAuMzE2NzMsIDAuMzcxMDM0IiwgXAotICAgICAgICAgICIwLjE0MDQ4NywgMC4xODAyNywgMC4yMTgzNjMsIDAuMjQ1NTE4LCAwLjI4ODk2MSwgMC4zMjY5NDgsIDAuMzgxMjY3IiwgXAotICAgICAgICAgICIwLjE1MzE5MiwgMC4xOTI5OCwgMC4yMzEwNzUsIDAuMjU4MjM5LCAwLjMwMTY1OSwgMC4zMzk2NTksIDAuMzkzOTU3IiwgXAotICAgICAgICAgICIwLjE2NTYyNywgMC4yMDU0MTYsIDAuMjQzNTA0LCAwLjI3MDY1OSwgMC4zMTQwOSwgMC4zNTIwOSwgMC40MDYzOTYiLCBcCi0gICAgICAgICAgIjAuMTc2OTUyLCAwLjIxNjczOCwgMC4yNTQ4MiwgMC4yODE5NzQsIDAuMzI1NDA2LCAwLjM2MzQwNCwgMC40MTc3MDkiLCBcCi0gICAgICAgICAgIjAuMTkyNzQ4LCAwLjIzMjUzNiwgMC4yNzA2MjUsIDAuMjk3Nzg1LCAwLjM0MTIxLCAwLjM3OTIxLCAwLjQzMzUxNSIsIFwKLSAgICAgICAgICAiMC4yMDQ4NDMsIDAuMjQ0NjMyLCAwLjI4MjcyLCAwLjMwOTg3NiwgMC4zNTMzMDYsIDAuMzkxMzA2LCAwLjQ0NTYzNiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyMTcxOCwgMC4wOTU0ODEsIDAuMTcxODQ1LCAwLjIyNjg1NSwgMC4zMTUxNDEsIDAuMzkxNjU0LCAwLjUwMTY5NiIsIFwKLSAgICAgICAgICAiMC4wMjE3MTEsIDAuMDk1NTg0LCAwLjE3MTgyMSwgMC4yMjY4NDUsIDAuMzE1MjMsIDAuMzkxNjk3LCAwLjUwMjc5NiIsIFwKLSAgICAgICAgICAiMC4wMjE3MTYsIDAuMDk1NTMsIDAuMTcxNzU0LCAwLjIyNjU2NiwgMC4zMTQ1NzgsIDAuMzkxNzIsIDAuNTAxNTQxIiwgXAotICAgICAgICAgICIwLjAyMTcxMSwgMC4wOTU1MzIsIDAuMTcxODU2LCAwLjIyNjYzNCwgMC4zMTUxMzEsIDAuMzkxNjczLCAwLjUwMTg3OCIsIFwKLSAgICAgICAgICAiMC4wMjE3MTgsIDAuMDk1NTk0LCAwLjE3MTg0NSwgMC4yMjY4NjQsIDAuMzE1MTQsIDAuMzkxNjUyLCAwLjUwMTcxOSIsIFwKLSAgICAgICAgICAiMC4wMjE3MDksIDAuMDk1NTM0LCAwLjE3MTc0NCwgMC4yMjY3NDcsIDAuMzE1MTI4LCAwLjM5MTY5NSwgMC41MDE3ODkiLCBcCi0gICAgICAgICAgIjAuMDIxNzI2LCAwLjA5NTU4MiwgMC4xNzE4NTQsIDAuMjI2NjM4LCAwLjMxNTEzOSwgMC4zOTE2ODIsIDAuNTAxODY4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE2MzQxLCAwLjAxNjY3OSwgMC4wMTY3NTEsIDAuMDE2Nzc2LCAwLjAxNjc5OCwgMC4wMTY4MDksIDAuMDE2ODIxIiwgXAotICAgICAgICAgICIwLjAxNjMxMiwgMC4wMTY2NSwgMC4wMTY3MjIsIDAuMDE2NzQ3LCAwLjAxNjc3LCAwLjAxNjc4LCAwLjAxNjc4NiIsIFwKLSAgICAgICAgICAiMC4wMTYyODUsIDAuMDE2NjMsIDAuMDE2NzAzLCAwLjAxNjcyNywgMC4wMTY3NDgsIDAuMDE2NzU5LCAwLjAxNjc2OSIsIFwKLSAgICAgICAgICAiMC4wMTYyOTEsIDAuMDE2NjMyLCAwLjAxNjcwNywgMC4wMTY3MzMsIDAuMDE2NzQ5LCAwLjAxNjc2LCAwLjAxNjc3MiIsIFwKLSAgICAgICAgICAiMC4wMTYzMDksIDAuMDE2NjQzLCAwLjAxNjcxNiwgMC4wMTY3NDEsIDAuMDE2NzYzLCAwLjAxNjc3NywgMC4wMTY3ODIiLCBcCi0gICAgICAgICAgIjAuMDE2MzA1LCAwLjAxNjY0OCwgMC4wMTY3MjMsIDAuMDE2NzUsIDAuMDE2NzY5LCAwLjAxNjc3OSwgMC4wMTY3OTMiLCBcCi0gICAgICAgICAgIjAuMDE2MzUsIDAuMDE2Njg2LCAwLjAxNjc1OSwgMC4wMTY3ODUsIDAuMDE2ODAzLCAwLjAxNjgxNSwgMC4wMTY4MjQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxNjQ4MywgMC4wMTY5MzcsIDAuMDE3MDM5LCAwLjAxNzA3MiwgMC4wMTcxMDMsIDAuMDE3MTE5LCAwLjAxNzEzMyIsIFwKLSAgICAgICAgICAiMC4wMTY0NDcsIDAuMDE2OTA1LCAwLjAxNzAwOCwgMC4wMTcwNDIsIDAuMDE3MDcyLCAwLjAxNzA4OSwgMC4wMTcxMDMiLCBcCi0gICAgICAgICAgIjAuMDE2NDQyLCAwLjAxNjkwMiwgMC4wMTcwMDUsIDAuMDE3MDM5LCAwLjAxNzA3LCAwLjAxNzA4NiwgMC4wMTcxMDEiLCBcCi0gICAgICAgICAgIjAuMDE2NDYyLCAwLjAxNjkyMiwgMC4wMTcwMjQsIDAuMDE3MDU4LCAwLjAxNzA4OSwgMC4wMTcxMDUsIDAuMDE3MTIiLCBcCi0gICAgICAgICAgIjAuMDE2NDg5LCAwLjAxNjk0NCwgMC4wMTcwNDUsIDAuMDE3MDc5LCAwLjAxNzEwOSwgMC4wMTcxMjUsIDAuMDE3MTQiLCBcCi0gICAgICAgICAgIjAuMDE2NTE2LCAwLjAxNjk3NCwgMC4wMTcwNzYsIDAuMDE3MTEsIDAuMDE3MTQxLCAwLjAxNzE1NiwgMC4wMTcxNzEiLCBcCi0gICAgICAgICAgIjAuMDE2NTUzLCAwLjAxNzAxMiwgMC4wMTcxMTUsIDAuMDE3MTUsIDAuMDE3MTgxLCAwLjAxNzE5NiwgMC4wMTcyMTIiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFMwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE2MDMwOTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE2MDMwOTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE2MDM7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA3NTgzLCAwLjAwNzU1OSwgMC4wMDc1NTQsIDAuMDA3NTU3LCAwLjAwNzU3MiwgMC4wMDc1OTIsIDAuMDA3NjExIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA4OTE5LCAwLjAwODg3NSwgMC4wMDg4NjMsIDAuMDA4ODY1LCAwLjAwODg4MSwgMC4wMDg5MjEsIDAuMDA4OTYzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJTRSA9PSAxJ2IwIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMzEyNSwgLTAuMDI2MjUsIC0wLjAxMzc1LCAtMC4wMDc1LCAtMC4wMDEyNSwgMC4wMTUsIDAuMDIzNzUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzNzUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIDAuMDAzNzUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAxODc1LCAtMC4wMDg3NSwgMCIsIFwKLSAgICAgICAgICAiLTAuMDY3NSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDIxMjUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wNzM3NSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMjc1LCAtMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDgzNzUsIC0wLjA3MjUsIC0wLjA2NjI1LCAtMC4wNiwgLTAuMDQ3NSwgLTAuMDM3NSwgLTAuMDI4NzUiLCBcCi0gICAgICAgICAgIi0wLjA5MjUsIC0wLjA4MTI1LCAtMC4wNzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNDYyNSwgLTAuMDM3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAxODc1LCAtMC4wMDc1LCAtMC4wMDEyNSwgMC4wMTEyNSwgMC4wMTc1LCAwLjAyNzUsIDAuMDM2MjUiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAsIDAuMDA2MjUsIDAuMDIyNSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIDAsIDAuMDEsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDAyNSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMDg3NSwgMCIsIFwKLSAgICAgICAgICAiLTAuMDU4NzUsIC0wLjA1Mzc1LCAtMC4wNDc1LCAtMC4wNDEyNSwgLTAuMDM1LCAtMC4wMjUsIC0wLjAxNjI1IiwgXAotICAgICAgICAgICItMC4wNjc1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wNCwgLTAuMDMxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJTRSA9PSAxJ2IwIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTI1LCAwLjEwMTI1LCAwLjA4ODc1LCAwLjA4MjUsIDAuMDc2MjUsIDAuMDY2MjUsIDAuMDU3NSIsIFwKLSAgICAgICAgICAiMC4xMjM3NSwgMC4xMTI1LCAwLjEsIDAuMDg3NSwgMC4wODEyNSwgMC4wNzEyNSwgMC4wNjg3NSIsIFwKLSAgICAgICAgICAiMC4xMywgMC4xMjUsIDAuMTEyNSwgMC4xLCAwLjA5Mzc1LCAwLjA4Mzc1LCAwLjA4MTI1IiwgXAotICAgICAgICAgICIwLjE0MjUsIDAuMTMxMjUsIDAuMTE4NzUsIDAuMTEyNSwgMC4xMDYyNSwgMC4wOTYyNSwgMC4wODc1IiwgXAotICAgICAgICAgICIwLjE1NSwgMC4xNDM3NSwgMC4xMzEyNSwgMC4xMjUsIDAuMTE4NzUsIDAuMTA4NzUsIDAuMSIsIFwKLSAgICAgICAgICAiMC4xNzEyNSwgMC4xNjYyNSwgMC4xNTM3NSwgMC4xNDEyNSwgMC4xMzUsIDAuMTI1LCAwLjEyMjUiLCBcCi0gICAgICAgICAgIjAuMTg2MjUsIDAuMTc1LCAwLjE2ODc1LCAwLjE1NjI1LCAwLjE1LCAwLjE0LCAwLjEzNzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMzEyNSwgMC4xMiwgMC4xMDc1LCAwLjEwMTI1LCAwLjA5NSwgMC4wODUsIDAuMDc2MjUiLCBcCi0gICAgICAgICAgIjAuMTQyNSwgMC4xMzEyNSwgMC4xMTg3NSwgMC4xMDYyNSwgMC4xLCAwLjA5LCAwLjA4NzUiLCBcCi0gICAgICAgICAgIjAuMTQ4NzUsIDAuMTM3NSwgMC4xMzEyNSwgMC4xMTg3NSwgMC4xMTI1LCAwLjEwMjUsIDAuMSIsIFwKLSAgICAgICAgICAiMC4xNjEyNSwgMC4xNSwgMC4xMzc1LCAwLjEzMTI1LCAwLjExODc1LCAwLjExNSwgMC4xMDYyNSIsIFwKLSAgICAgICAgICAiMC4xNjc1LCAwLjE1NjI1LCAwLjE0Mzc1LCAwLjEzNzUsIDAuMTMxMjUsIDAuMTIxMjUsIDAuMTEyNSIsIFwKLSAgICAgICAgICAiMC4xNzc1LCAwLjE2NjI1LCAwLjE1Mzc1LCAwLjE0NzUsIDAuMTQxMjUsIDAuMTMxMjUsIDAuMTIyNSIsIFwKLSAgICAgICAgICAiMC4xODYyNSwgMC4xNzUsIDAuMTYyNSwgMC4xNSwgMC4xNDM3NSwgMC4xMzM3NSwgMC4xMzEyNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oU0UpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTU0NzA0OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTU0Njg2OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTU0NzA0OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNTQ1OCwgMC4wMDU0NDUsIDAuMDA1NDQ5LCAwLjAwNTQ1NCwgMC4wMDU0NjksIDAuMDA1NDkzLCAwLjAwNTUxOCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNjg0NSwgMC4wMDY3ODksIDAuMDA2NzcxLCAwLjAwNjc5NiwgMC4wMDY3OTcsIDAuMDA2ODQ1LCAwLjAwNjg5OSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRDAmIUQxJiFTMCZTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEMF9FUV8wX0FOX0QxX0VRXzBfQU5fUzBfRVFfMF9BTl9TSV9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAzMTI1LCAtMC4wMjYyNSwgLTAuMDEzNzUsIC0wLjAwNzUsIC0wLjAwMTI1LCAwLjAwMjUsIDAuMDExMjUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzNzUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwMjUsIDAiLCBcCi0gICAgICAgICAgIi0wLjA1NSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAxNSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA2NzUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAyNzUsIC0wLjAxODc1IiwgXAotICAgICAgICAgICItMC4wNzM3NSwgLTAuMDY4NzUsIC0wLjA2MjUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDQsIC0wLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wOSwgLTAuMDg1LCAtMC4wNzI1LCAtMC4wNjYyNSwgLTAuMDYsIC0wLjA1LCAtMC4wNDc1IiwgXAotICAgICAgICAgICItMC4wOTg3NSwgLTAuMDkzNzUsIC0wLjA4NzUsIC0wLjA4MTI1LCAtMC4wNzUsIC0wLjA2NSwgLTAuMDU2MjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLCAwLjAxMTI1LCAwLjAyMzc1LCAwLjAzLCAwLjA0MjUsIDAuMDUyNSwgMC4wNjc1IiwgXAotICAgICAgICAgICItMC4wMDUsIDAsIDAuMDEyNSwgMC4wMjUsIDAuMDMxMjUsIDAuMDQ3NSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiLTAuMDE3NSwgLTAuMDA2MjUsIDAuMDA2MjUsIDAuMDEyNSwgMC4wMjUsIDAuMDM1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLjAwNjI1LCAwLjAxMjUsIDAuMDIyNSwgMC4wMzc1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDI1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMC4wMDYyNSwgMC4wMTYyNSwgMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjA0NjI1LCAtMC4wMzUsIC0wLjAyODc1LCAtMC4wMTYyNSwgLTAuMDEsIDAuMDA2MjUsIDAuMDE1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDQzNzUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMDg3NSwgMC4wMDYyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRDAmRDEmUzAmIVNJIjsKLSAgICAgIHNkZl9jb25kIDogIkQwX0VRXzBfQU5fRDFfRVFfMV9BTl9TMF9FUV8xX0FOX1NJX0VRXzAgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDEyNSwgLTAuMDAxMjUsIDAuMDExMjUsIDAuMDE3NSwgMC4wMywgMC4wNCwgMC4wNDg3NSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxMjUsIDAsIDAuMDA2MjUsIDAuMDE4NzUsIDAuMDI4NzUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMjUsIC0wLjAxMjUsIDAsIDAuMDA2MjUsIDAuMDIyNSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjAzNzUsIC0wLjAyNSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAuMDEsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjA1NSwgLTAuMDQzNzUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgMC4wMDM3NSwgMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wNjUsIC0wLjA1Mzc1LCAtMC4wNDc1LCAtMC4wMzUsIC0wLjAyMjUsIC0wLjAxMjUsIDAuMDAyNSIsIFwKLSAgICAgICAgICAiLTAuMDczNzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNDM3NSwgLTAuMDMxMjUsIC0wLjAyMTI1LCAtMC4wMDYyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjA1LCAtMC4wMzg3NSwgLTAuMDMyNSwgLTAuMDI2MjUsIC0wLjAyLCAtMC4wMTYyNSwgLTAuMDA3NSIsIFwKLSAgICAgICAgICAiLTAuMDYxMjUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAyNzUsIC0wLjAxODc1IiwgXAotICAgICAgICAgICItMC4wNzM3NSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDQsIC0wLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wOCwgLTAuMDc1LCAtMC4wNjg3NSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA0NjI1LCAtMC4wNDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDkyNSwgLTAuMDgxMjUsIC0wLjA3NSwgLTAuMDY4NzUsIC0wLjA2MjUsIC0wLjA1ODc1LCAtMC4wNSIsIFwKLSAgICAgICAgICAiLTAuMTAyNSwgLTAuMDk3NSwgLTAuMDkxMjUsIC0wLjA4NSwgLTAuMDc4NzUsIC0wLjA2ODc1LCAtMC4wNiIsIFwKLSAgICAgICAgICAiLTAuMTExMjUsIC0wLjEwNjI1LCAtMC4xLCAtMC4wOTM3NSwgLTAuMDg3NSwgLTAuMDc3NSwgLTAuMDY4NzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEMCYhRDEmIVMwJlNJIjsKLSAgICAgIHNkZl9jb25kIDogIkQwX0VRXzBfQU5fRDFfRVFfMF9BTl9TMF9FUV8wX0FOX1NJX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDYyNSwgMC4wNTEyNSwgMC4wNDUsIDAuMDMyNSwgMC4wMjYyNSwgMC4wMTYyNSwgMC4wMTM3NSIsIFwKLSAgICAgICAgICAiMC4wNzM3NSwgMC4wNjI1LCAwLjA1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDI3NSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4wODYyNSwgMC4wNzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNSwgMC4wNCwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4wOTg3NSwgMC4wODc1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1MjUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMTA1LCAwLjEsIDAuMDg3NSwgMC4wODEyNSwgMC4wNjg3NSwgMC4wNjUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIjAuMTIxMjUsIDAuMTE2MjUsIDAuMTAzNzUsIDAuMDkxMjUsIDAuMDg1LCAwLjA4MTI1LCAwLjA3MjUiLCBcCi0gICAgICAgICAgIjAuMTM2MjUsIDAuMTI1LCAwLjExMjUsIDAuMTA2MjUsIDAuMSwgMC4wOSwgMC4wODEyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1NjI1LCAwLjA0NSwgMC4wMzI1LCAwLjAyLCAwLjAwNzUsIC0wLjAwODc1LCAtMC4wMTc1IiwgXAotICAgICAgICAgICIwLjA2MTI1LCAwLjA1LCAwLjAzNzUsIDAuMDI1LCAwLjAxODc1LCAwLjAwMjUsIC0wLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMDczNzUsIDAuMDYyNSwgMC4wNSwgMC4wMzc1LCAwLjAyNSwgMC4wMDg3NSwgMCIsIFwKLSAgICAgICAgICAiMC4wODYyNSwgMC4wNzUsIDAuMDYyNSwgMC4wNSwgMC4wMzc1LCAwLjAyMTI1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMDkyNSwgMC4wODc1LCAwLjA2ODc1LCAwLjA1NjI1LCAwLjA1LCAwLjAzMzc1LCAwLjAxODc1IiwgXAotICAgICAgICAgICIwLjEwODc1LCAwLjA5NzUsIDAuMDg1LCAwLjA3MjUsIDAuMDY2MjUsIDAuMDUsIDAuMDM1IiwgXAotICAgICAgICAgICIwLjEyMzc1LCAwLjExMjUsIDAuMSwgMC4wODc1LCAwLjA3NSwgMC4wNTg3NSwgMC4wNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUQwJkQxJlMwJiFTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEMF9FUV8wX0FOX0QxX0VRXzFfQU5fUzBfRVFfMV9BTl9TSV9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1NjI1LCAwLjA0NSwgMC4wMzI1LCAwLjAyLCAwLjAxMzc1LCAtMC4wMDI1LCAtMC4wMTc1IiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDU2MjUsIDAuMDQzNzUsIDAuMDMxMjUsIDAuMDE4NzUsIDAuMDA4NzUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICIwLjA4LCAwLjA2ODc1LCAwLjA1NjI1LCAwLjA0Mzc1LCAwLjAzMTI1LCAwLjAyMTI1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICIwLjA5MjUsIDAuMDgxMjUsIDAuMDY4NzUsIDAuMDU2MjUsIDAuMDQzNzUsIDAuMDI3NSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4wOTg3NSwgMC4wODc1LCAwLjA3NSwgMC4wNjI1LCAwLjA1LCAwLjA0LCAwLjAyNSIsIFwKLSAgICAgICAgICAiMC4xMDg3NSwgMC4wOTc1LCAwLjA4NSwgMC4wNzI1LCAwLjA2NjI1LCAwLjA1LCAwLjAzNSIsIFwKLSAgICAgICAgICAiMC4xMTc1LCAwLjEwNjI1LCAwLjA5Mzc1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNTg3NSwgMC4wNDM3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4NzUsIDAuMDc2MjUsIDAuMDcsIDAuMDU3NSwgMC4wNTEyNSwgMC4wNDEyNSwgMC4wMzg3NSIsIFwKLSAgICAgICAgICAiMC4wOTg3NSwgMC4wODc1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1MjUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMTExMjUsIDAuMSwgMC4wODc1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNjUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIjAuMTIzNzUsIDAuMTEyNSwgMC4xLCAwLjA5Mzc1LCAwLjA4NzUsIDAuMDc3NSwgMC4wNjg3NSIsIFwKLSAgICAgICAgICAiMC4xMywgMC4xMTg3NSwgMC4xMTI1LCAwLjEsIDAuMDkzNzUsIDAuMDgzNzUsIDAuMDgxMjUiLCBcCi0gICAgICAgICAgIjAuMTQ2MjUsIDAuMTM1LCAwLjEyMjUsIDAuMTEsIDAuMTAzNzUsIDAuMSwgMC4wOTEyNSIsIFwKLSAgICAgICAgICAiMC4xNTUsIDAuMTQzNzUsIDAuMTMxMjUsIDAuMTE4NzUsIDAuMTEyNSwgMC4xMDg3NSwgMC4xIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTSSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwOTQyMTUyOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDkzOTQzOTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA5NDIxNTI7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzMzA2LCAwLjAwMzI3MywgMC4wMDMyNTYsIDAuMDAzMjQ4LCAwLjAwMzI0NCwgMC4wMDMyNTUsIDAuMDAzMjU5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA2MDIxLCAwLjAwNjAwMywgMC4wMDU5OTMsIDAuMDA1OTksIDAuMDA1OTg3LCAwLjAwNTk5MywgMC4wMDU5OTgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiU0UiOwotICAgICAgc2RmX2NvbmQgOiAiU0UgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDM3NSwgLTAuMDMyNSwgLTAuMDIsIC0wLjAxMzc1LCAtMC4wMDc1LCAtMC4wMDM3NSwgMC4wMDUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDA4NzUsIDAiLCBcCi0gICAgICAgICAgIi0wLjA2MTI1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMjEyNSwgLTAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDY3NSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzM3NSwgLTAuMDI1IiwgXAotICAgICAgICAgICItMC4wOCwgLTAuMDY4NzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDQsIC0wLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjA5NjI1LCAtMC4wODUsIC0wLjA3ODc1LCAtMC4wNzI1LCAtMC4wNjYyNSwgLTAuMDU2MjUsIC0wLjA0NzUiLCBcCi0gICAgICAgICAgIi0wLjEwNSwgLTAuMSwgLTAuMDg3NSwgLTAuMDgxMjUsIC0wLjA3NSwgLTAuMDY1LCAtMC4wNjI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMCwgMC4wMTEyNSwgMC4wMjM3NSwgMC4wMywgMC4wNDI1LCAwLjA1MjUsIDAuMDY3NSIsIFwKLSAgICAgICAgICAiLTAuMDExMjUsIDAsIDAuMDEyNSwgMC4wMjUsIDAuMDMxMjUsIDAuMDQ3NSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiLTAuMDE3NSwgLTAuMDA2MjUsIDAuMDA2MjUsIDAuMDEyNSwgMC4wMjUsIDAuMDM1LCAwLjA1IiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLjAwNjI1LCAwLjAxMjUsIDAuMDI4NzUsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAyNSwgLTAuMDEyNSwgMCwgMC4wMDYyNSwgMC4wMjI1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wNDYyNSwgLTAuMDM1LCAtMC4wMjI1LCAtMC4wMSwgLTAuMDAzNzUsIDAuMDEyNSwgMC4wMjEyNSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjA0Mzc1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIDAuMDAzNzUsIDAuMDEyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiU0UiOwotICAgICAgc2RmX2NvbmQgOiAiU0UgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY4NzUsIDAuMDU3NSwgMC4wNTEyNSwgMC4wMzg3NSwgMC4wMzI1LCAwLjAyMjUsIDAuMDIiLCBcCi0gICAgICAgICAgIjAuMDgsIDAuMDY4NzUsIDAuMDU2MjUsIDAuMDUsIDAuMDQzNzUsIDAuMDMzNzUsIDAuMDI1IiwgXAotICAgICAgICAgICIwLjA5MjUsIDAuMDgxMjUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNDYyNSwgMC4wMzc1IiwgXAotICAgICAgICAgICIwLjA5ODc1LCAwLjA4NzUsIDAuMDgxMjUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNTI1LCAwLjA1IiwgXAotICAgICAgICAgICIwLjExMTI1LCAwLjEsIDAuMDg3NSwgMC4wODEyNSwgMC4wNzUsIDAuMDY1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICIwLjEyNzUsIDAuMTE2MjUsIDAuMTAzNzUsIDAuMDk3NSwgMC4wOTEyNSwgMC4wODEyNSwgMC4wNzI1IiwgXAotICAgICAgICAgICIwLjEzNjI1LCAwLjEyNSwgMC4xMTg3NSwgMC4xMDYyNSwgMC4xLCAwLjA5LCAwLjA4NzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDM3NSwgMC4wMzI1LCAwLjAyLCAwLjAwNzUsIDAuMDAxMjUsIC0wLjAxNSwgLTAuMDMiLCBcCi0gICAgICAgICAgIjAuMDU1LCAwLjA0Mzc1LCAwLjAzMTI1LCAwLjAxODc1LCAwLjAwNjI1LCAtMC4wMSwgLTAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMDYxMjUsIDAuMDUsIDAuMDM3NSwgMC4wMjUsIDAuMDE4NzUsIDAuMDAyNSwgLTAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4wNzM3NSwgMC4wNjI1LCAwLjA1LCAwLjAzNzUsIDAuMDI1LCAwLjAwODc1LCAwIiwgXAotICAgICAgICAgICIwLjA4LCAwLjA2ODc1LCAwLjA1NjI1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDIxMjUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMDk2MjUsIDAuMDg1LCAwLjA3MjUsIDAuMDYsIDAuMDQ3NSwgMC4wMzEyNSwgMC4wMjI1IiwgXAotICAgICAgICAgICIwLjEwNSwgMC4wOTM3NSwgMC4wODEyNSwgMC4wNjg3NSwgMC4wNTYyNSwgMC4wNCwgMC4wMzEyNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IFRCVUZYMTYgKgotICogLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoVEJVRlgxNikgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAxLjE4NjI4OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDc1NTUyOTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDc1MzkyNTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDc1NTUyOTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDMxNCwgMC4wMDMyMTMsIDAuMDAzMjIsIDAuMDAzMjIzLCAwLjAwMzIyNCwgMC4wMDMyMjcsIDAuMDAzMjI3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzMzUxLCAwLjAwMzMyMSwgMC4wMDMzMTksIDAuMDAzMzE5LCAwLjAwMzMxOSwgMC4wMDMzMTksIDAuMDAzMzE5Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihPRSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDA0MzA4NjQ7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDA0MzA3OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwNDMwODY0OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihzY2FsYXIpIHsKLSAgICAgICAgdmFsdWVzKCIwIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDE0NTkxLCAwLjAxNDQyMiwgMC4wMTQzNDUsIDAuMDE0MzA2LCAwLjAxNDM4OCwgMC4wMTQ1MTgsIDAuMDE0NTU0Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwODcwOTY7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDA4NzA5NjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDg3MDcxNTsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiA0LjI0NjA1OwotICAgIGZ1bmN0aW9uIDogIkEiOwotICAgIHRocmVlX3N0YXRlIDogIighT0UpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxODcwOTYsIDAuMDI0NzA5NiwgMC4wNTg3MDk2LCAwLjA4ODcwOTYsIDAuMTI4NzEsIDAuMjA4NzEsIDAuMjU4NzEiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0NDY2MywgMC4wNDczNjEsIDAuMDU5NTksIDAuMDY4NzEsIDAuMDgwMDMxLCAwLjEwMTY4MiwgMC4xMTUiLCBcCi0gICAgICAgICAgIjAuMDUzMjQ0LCAwLjA1NTk1MSwgMC4wNjgxNzUsIDAuMDc3MzI0LCAwLjA4ODY1OCwgMC4xMTAzMTQsIDAuMTIzNjM1IiwgXAotICAgICAgICAgICIwLjA2MzY5OSwgMC4wNjY0MTksIDAuMDc4Njg2LCAwLjA4Nzg0OCwgMC4wOTkxNzUsIDAuMTIwODU3LCAwLjEzNDE4MyIsIFwKLSAgICAgICAgICAiMC4wNzMyOTEsIDAuMDc2MDYzLCAwLjA4ODQ4NSwgMC4wOTc2OTIsIDAuMTA5MDc4LCAwLjEzMDc3OCwgMC4xNDQxMDkiLCBcCi0gICAgICAgICAgIjAuMDgxNzU5LCAwLjA4NDY0OCwgMC4wOTczODksIDAuMTA2Njg3LCAwLjExODEyNiwgMC4xMzk4NzUsIDAuMTUzMjE4IiwgXAotICAgICAgICAgICIwLjA5MzY2LCAwLjA5NjY3NSwgMC4xMDk4ODIsIDAuMTE5NDA5LCAwLjEzMTAzOSwgMC4xNTI4OTksIDAuMTY2MjQyIiwgXAotICAgICAgICAgICIwLjEwMjgyLCAwLjEwNTk1OCwgMC4xMTk1ODQsIDAuMTI5MjgxLCAwLjE0MTAxNiwgMC4xNjMwMDUsIDAuMTc2Mzk5Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDE4NzA5NiwgMC4wMjQ3MDk2LCAwLjA1ODcwOTYsIDAuMDg4NzA5NiwgMC4xMjg3MSwgMC4yMDg3MSwgMC4yNTg3MSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDIwMDQxLCAwLjAyMzYyNywgMC4wNDE4OTcsIDAuMDU3NDcsIDAuMDc4MjU2LCAwLjEyMDMzMSwgMC4xNDY5MzIiLCBcCi0gICAgICAgICAgIjAuMDIwMTcxLCAwLjAyMzY0MSwgMC4wNDE5MjUsIDAuMDU3NDgzLCAwLjA3ODI2NiwgMC4xMjAzNiwgMC4xNDY5MzMiLCBcCi0gICAgICAgICAgIjAuMDIwNDE0LCAwLjAyMzg2MSwgMC4wNDIwNTMsIDAuMDU3NTY4LCAwLjA3ODMwNCwgMC4xMjAzODUsIDAuMTQ2OTQyIiwgXAotICAgICAgICAgICIwLjAyMTI4NSwgMC4wMjQ2ODksIDAuMDQyNjI3LCAwLjA1Nzk5NiwgMC4wNzg2MzEsIDAuMTIwNTc0LCAwLjE0NzExNCIsIFwKLSAgICAgICAgICAiMC4wMjIzNzUsIDAuMDI1ODMyLCAwLjA0MzQ5OCwgMC4wNTg3NjgsIDAuMDc5MjU4LCAwLjEyMDk4NCwgMC4xNDc0IiwgXAotICAgICAgICAgICIwLjAyNDIwNCwgMC4wMjc1NTUsIDAuMDQ1MDUzLCAwLjA2MDI2NywgMC4wODAzODQsIDAuMTIxNzkxLCAwLjE0ODE2NCIsIFwKLSAgICAgICAgICAiMC4wMjU2OCwgMC4wMjkxMTIsIDAuMDQ2NDgxLCAwLjA2MTM3NCwgMC4wODE2NDYsIDAuMTIyNTUyLCAwLjE0ODgwOSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxODcwNzEsIDAuMDI0NzA3MiwgMC4wNTg3MDcyLCAwLjA4ODcwNzEsIDAuMTI4NzA3LCAwLjIwODcwNywgMC4yNTg3MDciKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0MDM2MiwgMC4wNDI4ODEsIDAuMDU0NjUsIDAuMDYzNjIxLCAwLjA3NDkyNSwgMC4wOTY3NDcsIDAuMTEwMjM2IiwgXAotICAgICAgICAgICIwLjA0ODE1LCAwLjA1MDY3MiwgMC4wNjI0MTgsIDAuMDcxNDA0LCAwLjA4MjcyNywgMC4xMDQ1NjIsIDAuMTE4MDU0IiwgXAotICAgICAgICAgICIwLjA1Njg4NiwgMC4wNTk0MiwgMC4wNzEyMjYsIDAuMDgwMjE4LCAwLjA5MTUzNiwgMC4xMTM0MDUsIDAuMTI2ODk4IiwgXAotICAgICAgICAgICIwLjA2NDQ5NywgMC4wNjcxMjUsIDAuMDc5MTUzLCAwLjA4ODIzMiwgMC4wOTk2MDUsIDAuMTIxNDg1LCAwLjEzNDk5IiwgXAotICAgICAgICAgICIwLjA3MTA4LCAwLjA3MzcyNCwgMC4wODYwMTcsIDAuMDk1MjAzLCAwLjEwNjY2OSwgMC4xMjg2MDQsIDAuMTQyMTA4IiwgXAotICAgICAgICAgICIwLjA4MDIyOCwgMC4wODI5NjQsIDAuMDk1NTg0LCAwLjEwNDkyOCwgMC4xMTY1LCAwLjEzODU5NCwgMC4xNTIxNDkiLCBcCi0gICAgICAgICAgIjAuMDg3MTY3LCAwLjA4OTk5MiwgMC4xMDI3NjcsIDAuMTEyMjYyLCAwLjEyMzk1NiwgMC4xNDYwNTksIDAuMTU5NjI5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDE4NzA3MSwgMC4wMjQ3MDcyLCAwLjA1ODcwNzIsIDAuMDg4NzA3MSwgMC4xMjg3MDcsIDAuMjA4NzA3LCAwLjI1ODcwNyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE3ODY1LCAwLjAyMTIyOCwgMC4wMzkyMjQsIDAuMDU0Nzk4LCAwLjA3NTY1OCwgMC4xMTc5MDksIDAuMTQ0NTgiLCBcCi0gICAgICAgICAgIjAuMDE3OTI3LCAwLjAyMTMxMywgMC4wMzkyODIsIDAuMDU0ODEsIDAuMDc1NjczLCAwLjExNzkxNywgMC4xNDQ1ODciLCBcCi0gICAgICAgICAgIjAuMDE4NTIzLCAwLjAyMTgzNywgMC4wMzk1NzMsIDAuMDU1MDAzLCAwLjA3NTgyNCwgMC4xMTgwMDgsIDAuMTQ0NzA0IiwgXAotICAgICAgICAgICIwLjAxOTUwOCwgMC4wMjI4NzcsIDAuMDQwNDIxLCAwLjA1NTcyMywgMC4wNzYzNTIsIDAuMTE4Mjc5LCAwLjE0NDg4MyIsIFwKLSAgICAgICAgICAiMC4wMjAyOTgsIDAuMDIzNzU5LCAwLjA0MTM2LCAwLjA1NjQ0MSwgMC4wNzY5ODYsIDAuMTE4ODIzLCAwLjE0NTQyNSIsIFwKLSAgICAgICAgICAiMC4wMjE3NzUsIDAuMDI1MTE2LCAwLjA0MjU5OSwgMC4wNTc3MDgsIDAuMDc4MDU2LCAwLjExOTUxNiwgMC4xNDU5NTIiLCBcCi0gICAgICAgICAgIjAuMDIyNTU3LCAwLjAyNTk5NCwgMC4wNDM4NjMsIDAuMDU4ODI5LCAwLjA3OTA3MSwgMC4xMjAxODksIDAuMTQ2MzkzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIk9FIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiB0aHJlZV9zdGF0ZV9lbmFibGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDE4NzA5NiwgMC4wMjQ3MDk2LCAwLjA1ODcwOTYsIDAuMDg4NzA5NiwgMC4xMjg3MSwgMC4yMDg3MSwgMC4yNTg3MSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQyMDc0LCAwLjA0NDc3MSwgMC4wNTY5NjQsIDAuMDY2MDkxLCAwLjA3NzQxNiwgMC4wOTkwODIsIDAuMTEyMzg2IiwgXAotICAgICAgICAgICIwLjA1MTA1MywgMC4wNTM3MzUsIDAuMDY1OTM4LCAwLjA3NTA2LCAwLjA4NjM4LCAwLjEwODA0OCwgMC4xMjEzNTUiLCBcCi0gICAgICAgICAgIjAuMDYyNzYsIDAuMDY1NDUxLCAwLjA3NzY3MiwgMC4wODY3OTQsIDAuMDk4MTI0LCAwLjExOTc4MywgMC4xMzMwOTUiLCBcCi0gICAgICAgICAgIjAuMDczMzk0LCAwLjA3NjEzLCAwLjA4ODQzNSwgMC4wOTc2ODEsIDAuMTA5MDQzLCAwLjEzMDc2NCwgMC4xNDQwNzQiLCBcCi0gICAgICAgICAgIjAuMDgyNjU4LCAwLjA4NTU5LCAwLjA5ODMzNiwgMC4xMDc2ODcsIDAuMTE5MTAyLCAwLjE0MDgyNywgMC4xNTQxNTIiLCBcCi0gICAgICAgICAgIjAuMDk1MDQzLCAwLjA5ODE4NiwgMC4xMTE0MzMsIDAuMTIwOTM1LCAwLjEzMjUyMywgMC4xNTQ1MDcsIDAuMTY3ODM0IiwgXAotICAgICAgICAgICIwLjEwNDU0MiwgMC4xMDc2MTQsIDAuMTIxNzE1LCAwLjEzMTQ2MywgMC4xNDMxODksIDAuMTY1MjEyLCAwLjE3ODYzNyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxODcwOTYsIDAuMDI0NzA5NiwgMC4wNTg3MDk2LCAwLjA4ODcwOTYsIDAuMTI4NzEsIDAuMjA4NzEsIDAuMjU4NzEiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyMDkxOCwgMC4wMjQ0NjcsIDAuMDQyNDkyLCAwLjA1Nzk0LCAwLjA3ODU5OCwgMC4xMjA1NzIsIDAuMTQ3MTUxIiwgXAotICAgICAgICAgICIwLjAyMDgxLCAwLjAyNDMxMywgMC4wNDI0MjgsIDAuMDU3ODkxLCAwLjA3ODU2NywgMC4xMjA1NTcsIDAuMTQ2OTg1IiwgXAotICAgICAgICAgICIwLjAyMTExMSwgMC4wMjQ2MDUsIDAuMDQyNjE1LCAwLjA1Nzk4LCAwLjA3ODY1NCwgMC4xMjA2MDIsIDAuMTQ3MTY5IiwgXAotICAgICAgICAgICIwLjAyMjQ5LCAwLjAyNTg0MSwgMC4wNDM3MzUsIDAuMDU4ODgyLCAwLjA3OTI2NCwgMC4xMjA5NzgsIDAuMTQ3NDI1IiwgXAotICAgICAgICAgICIwLjAyNDA1LCAwLjAyNzMzOCwgMC4wNDQ3NCwgMC4wNTk3MzQsIDAuMDc5OTk5LCAwLjEyMTQ0NiwgMC4xNDc4MjQiLCBcCi0gICAgICAgICAgIjAuMDI2NjAzLCAwLjAyOTkwNywgMC4wNDcxOTEsIDAuMDYyMTMsIDAuMDgxNzMyLCAwLjEyMjY5LCAwLjE0ODgwNSIsIFwKLSAgICAgICAgICAiMC4wMjg1NDEsIDAuMDMyNjYyLCAwLjA0OTAzNSwgMC4wNjM0MjgsIDAuMDgzMjkyLCAwLjEyMzQ5OSwgMC4xNDk1NzIiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMTg3MDcxLCAwLjAyNDcwNzIsIDAuMDU4NzA3MiwgMC4wODg3MDcxLCAwLjEyODcwNywgMC4yMDg3MDcsIDAuMjU4NzA3Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjI0NiwgMC4wNjUwMDUsIDAuMDc2NzA1LCAwLjA4NTY5NSwgMC4wOTY5NzIsIDAuMTE4Nzc5LCAwLjEzMjI1MSIsIFwKLSAgICAgICAgICAiMC4wNzI1NzQsIDAuMDc1MDQ4LCAwLjA4Njc5NiwgMC4wOTU3NzUsIDAuMTA3MDQ4LCAwLjEyODg2NCwgMC4xNDIzNCIsIFwKLSAgICAgICAgICAiMC4wODUyOTEsIDAuMDg3ODE1LCAwLjA5OTUxOCwgMC4xMDg1MDUsIDAuMTE5Nzc4LCAwLjE0MTU5NSwgMC4xNTUwNjciLCBcCi0gICAgICAgICAgIjAuMDk2OTU3LCAwLjA5OTQ0NiwgMC4xMTEyMDgsIDAuMTIwMTc3LCAwLjEzMTQ0MiwgMC4xNTMyNDYsIDAuMTY2NzIiLCBcCi0gICAgICAgICAgIjAuMTA3MDMyLCAwLjEwOTU3NywgMC4xMjEzNDQsIDAuMTMwMzEyLCAwLjE0MTYwNSwgMC4xNjM0MDUsIDAuMTc2ODc1IiwgXAotICAgICAgICAgICIwLjEyMTM0MSwgMC4xMjM5MDUsIDAuMTM1NzA1LCAwLjE0NDcwNywgMC4xNTYwMTIsIDAuMTc3ODM0LCAwLjE5MTI5NyIsIFwKLSAgICAgICAgICAiMC4xMzIyNywgMC4xMzQ4NDEsIDAuMTQ2Njk4LCAwLjE1NTcyMywgMC4xNjcwMzgsIDAuMTg4ODYsIDAuMjAyMzI0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDE4NzA3MSwgMC4wMjQ3MDcyLCAwLjA1ODcwNzIsIDAuMDg4NzA3MSwgMC4xMjg3MDcsIDAuMjA4NzA3LCAwLjI1ODcwNyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE4ODA2LCAwLjAyMjIwOCwgMC4wMzk5NzQsIDAuMDU1Mzg2LCAwLjA3NjA5OSwgMC4xMTgxODEsIDAuMTQ0Nzg2IiwgXAotICAgICAgICAgICIwLjAxODg2NCwgMC4wMjIxNywgMC4wMzk5NjYsIDAuMDU1Mzg2LCAwLjA3NjEwMiwgMC4xMTgxNzIsIDAuMTQ0Nzk1IiwgXAotICAgICAgICAgICIwLjAxODg2MywgMC4wMjIyMTYsIDAuMDM5OTcsIDAuMDU1Mzg5LCAwLjA3NjA5NywgMC4xMTgxNzIsIDAuMTQ0NzkiLCBcCi0gICAgICAgICAgIjAuMDE4ODUsIDAuMDIyMTc2LCAwLjA0MDAwNiwgMC4wNTUzNzksIDAuMDc2MDk5LCAwLjExODE4NiwgMC4xNDQ3ODciLCBcCi0gICAgICAgICAgIjAuMDE5LCAwLjAyMjMzLCAwLjA0MDE3LCAwLjA1NTUzNiwgMC4wNzYyMjMsIDAuMTE4MjY2LCAwLjE0NDkwOSIsIFwKLSAgICAgICAgICAiMC4wMTkzMTUsIDAuMDIyNTk1LCAwLjA0MDIwNCwgMC4wNTU1ODEsIDAuMDc2MjcyLCAwLjExODM0NywgMC4xNDQ4ODgiLCBcCi0gICAgICAgICAgIjAuMDE5NDg3LCAwLjAyMjc2LCAwLjA0MDQyOCwgMC4wNTU4MywgMC4wNzYzMDMsIDAuMTE4MzksIDAuMTQ0OTgyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIk9FIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiB0aHJlZV9zdGF0ZV9kaXNhYmxlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDUwMDE0LCAwLjA1OTk3NCwgMC4wNzIyMTQsIDAuMDgzMzExLCAwLjA5MzY0NiwgMC4xMDcyOCwgMC4xMTc4NzUiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihzY2FsYXIpIHsKLSAgICAgICAgdmFsdWVzKCIwIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMjUxMzYsIDAuMDM0ODU5LCAwLjA0NzEyMywgMC4wNTcxMjYsIDAuMDY1MzUsIDAuMDc2NTE3LCAwLjA4NTM0OCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKHNjYWxhcikgewotICAgICAgICB2YWx1ZXMoIjAiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxODcwOTYsIDAuMDI0NzA5NiwgMC4wNTg3MDk2LCAwLjA4ODcwOTYsIDAuMTI4NzEsIDAuMjA4NzEsIDAuMjU4NzEiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxODc0NSwgMC4wMTg4NjIsIDAuMDE5MTc2LCAwLjAxOTI3OSwgMC4wMTkzNDksIDAuMDE5NDEsIDAuMDE5NDI5IiwgXAotICAgICAgICAgICIwLjAxODI1NiwgMC4wMTgzNiwgMC4wMTg2ODYsIDAuMDE4ODE2LCAwLjAxODkxMywgMC4wMTg5OTIsIDAuMDE5MDM1IiwgXAotICAgICAgICAgICIwLjAxNzk2OSwgMC4wMTgwNjUsIDAuMDE4Mzk0LCAwLjAxODU0NiwgMC4wMTg2NjgsIDAuMDE4Nzk2LCAwLjAxODgzNCIsIFwKLSAgICAgICAgICAiMC4wMTc4NTgsIDAuMDE3OTQ1LCAwLjAxODI2NiwgMC4wMTg0MjYsIDAuMDE4NTcsIDAuMDE4NzEzLCAwLjAxODc2OSIsIFwKLSAgICAgICAgICAiMC4wMTc4NTIsIDAuMDE3OTQ3LCAwLjAxODI0MywgMC4wMTg0MDUsIDAuMDE4NTQ2LCAwLjAxODcwOSwgMC4wMTg3NjQiLCBcCi0gICAgICAgICAgIjAuMDE3OTMzLCAwLjAxODAxMiwgMC4wMTgzMDYsIDAuMDE4NDY3LCAwLjAxODYxMSwgMC4wMTg3ODMsIDAuMDE4ODUxIiwgXAotICAgICAgICAgICIwLjAxODA4LCAwLjAxODE0OSwgMC4wMTg0MjcsIDAuMDE4NTg2LCAwLjAxODczMiwgMC4wMTg5MDMsIDAuMDE4OTc5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMTg3MDcxLCAwLjAyNDcwNzIsIDAuMDU4NzA3MiwgMC4wODg3MDcxLCAwLjEyODcwNywgMC4yMDg3MDcsIDAuMjU4NzA3Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzIyNTMsIDAuMDMyNDIzLCAwLjAzMjk0OSwgMC4wMzMxNTEsIDAuMDMzMjk1LCAwLjAzMzQzMSwgMC4wMzM0NzUiLCBcCi0gICAgICAgICAgIjAuMDMxOTI1LCAwLjAzMjA3MSwgMC4wMzI1NjUsIDAuMDMyNzgzLCAwLjAzMjk0OSwgMC4wMzMxMTcsIDAuMDMzMTc0IiwgXAotICAgICAgICAgICIwLjAzMTgwNCwgMC4wMzE5MTIsIDAuMDMyMzE5LCAwLjAzMjUzOCwgMC4wMzI3MjQsIDAuMDMyOTI4LCAwLjAzMzAwMiIsIFwKLSAgICAgICAgICAiMC4wMzE5NDEsIDAuMDMyMDE0LCAwLjAzMjI5LCAwLjAzMjQ3NiwgMC4wMzI2NTEsIDAuMDMyODU5LCAwLjAzMjkyNyIsIFwKLSAgICAgICAgICAiMC4wMzIyMTYsIDAuMDMyMTYzLCAwLjAzMjM2LCAwLjAzMjUxOCwgMC4wMzI2NjEsIDAuMDMyODczLCAwLjAzMjk1MiIsIFwKLSAgICAgICAgICAiMC4wMzI3MjMsIDAuMDMyNjQyLCAwLjAzMjYxMiwgMC4wMzI3MDksIDAuMDMyODE3LCAwLjAzMjk4NiwgMC4wMzMwNTUiLCBcCi0gICAgICAgICAgIjAuMDMzMDg5LCAwLjAzMzAxOSwgMC4wMzI5NjQsIDAuMDMyOTkxLCAwLjAzMzA2LCAwLjAzMzE2OSwgMC4wMzMyMzQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJPRSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMTg3MDk2LCAwLjAyNDcwOTYsIDAuMDU4NzA5NiwgMC4wODg3MDk2LCAwLjEyODcxLCAwLjIwODcxLCAwLjI1ODcxIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTc4MTIsIDAuMDE3ODEyLCAwLjAxNzgxMSwgMC4wMTc4MDcsIDAuMDE3ODAzLCAwLjAxNzgwNCwgMC4wMTc4MDIiLCBcCi0gICAgICAgICAgIjAuMDE3NTc0LCAwLjAxNzU3NSwgMC4wMTc1NzQsIDAuMDE3NTcyLCAwLjAxNzU2NywgMC4wMTc1NjgsIDAuMDE3NTYyIiwgXAotICAgICAgICAgICIwLjAxNzUzMiwgMC4wMTc1MzEsIDAuMDE3NTM4LCAwLjAxNzUzNCwgMC4wMTc1MywgMC4wMTc1MzMsIDAuMDE3NTI2IiwgXAotICAgICAgICAgICIwLjAxNzU5NSwgMC4wMTc1ODksIDAuMDE3NTg5LCAwLjAxNzU5LCAwLjAxNzU5NCwgMC4wMTc1ODYsIDAuMDE3NTgyIiwgXAotICAgICAgICAgICIwLjAxNzY0NCwgMC4wMTc2NCwgMC4wMTc2MjksIDAuMDE3NjIzLCAwLjAxNzYyNiwgMC4wMTc2MjQsIDAuMDE3NjE3IiwgXAotICAgICAgICAgICIwLjAxNzg4MSwgMC4wMTc4NzgsIDAuMDE3ODkxLCAwLjAxNzg4NiwgMC4wMTc4NzUsIDAuMDE3ODcsIDAuMDE3ODciLCBcCi0gICAgICAgICAgIjAuMDE3OTY5LCAwLjAxNzk2NywgMC4wMTc5NywgMC4wMTc5NzIsIDAuMDE3OTY5LCAwLjAxNzk2MSwgMC4wMTc5NTQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxODcwNzEsIDAuMDI0NzA3MiwgMC4wNTg3MDcyLCAwLjA4ODcwNzEsIDAuMTI4NzA3LCAwLjIwODcwNywgMC4yNTg3MDciKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxNzQwMSwgMC4wMTc0MDIsIDAuMDE3NDAyLCAwLjAxNzQwMiwgMC4wMTc0MDEsIDAuMDE3NDAxLCAwLjAxNzQwMiIsIFwKLSAgICAgICAgICAiMC4wMTczNDIsIDAuMDE3MzQxLCAwLjAxNzM0MSwgMC4wMTczNDEsIDAuMDE3MzQsIDAuMDE3MzQyLCAwLjAxNzM0MSIsIFwKLSAgICAgICAgICAiMC4wMTczMDYsIDAuMDE3MzA2LCAwLjAxNzMwNiwgMC4wMTczMDcsIDAuMDE3MzA3LCAwLjAxNzMwNywgMC4wMTczMDciLCBcCi0gICAgICAgICAgIjAuMDE3MzE3LCAwLjAxNzMxOCwgMC4wMTczMTgsIDAuMDE3MzE4LCAwLjAxNzMxOCwgMC4wMTczMiwgMC4wMTczMTkiLCBcCi0gICAgICAgICAgIjAuMDE3MzM5LCAwLjAxNzM0NSwgMC4wMTczNSwgMC4wMTczNTIsIDAuMDE3MzUzLCAwLjAxNzM1NiwgMC4wMTczNTciLCBcCi0gICAgICAgICAgIjAuMDE3NDEsIDAuMDE3NDAxLCAwLjAxNzQwNCwgMC4wMTc0MDMsIDAuMDE3NDA0LCAwLjAxNzQwMywgMC4wMTc0MDIiLCBcCi0gICAgICAgICAgIjAuMDE3NDE5LCAwLjAxNzQxOSwgMC4wMTc0MjcsIDAuMDE3NDI0LCAwLjAxNzQxNywgMC4wMTc0MTQsIDAuMDE3NDE1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBUQlVGWDMgKgotICogLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChUQlVGWDMpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4yNjc1NjQ7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTk4MDIzOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTk3NzMxOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTk4MDIzOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDc4NiwgMC4wMDA4MDUsIDAuMDAwODA3LCAwLjAwMDgwOCwgMC4wMDA4MDgsIDAuMDAwODA5LCAwLjAwMDgwOSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDg0MSwgMC4wMDA4MzIsIDAuMDAwODMxLCAwLjAwMDgzMSwgMC4wMDA4MzEsIDAuMDAwODMxLCAwLjAwMDgzMSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oT0UpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTM5Nzc2OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTM5Njg4OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTM5Nzc2OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihzY2FsYXIpIHsKLSAgICAgICAgdmFsdWVzKCIwIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA0MjM4LCAwLjAwNDE3OCwgMC4wMDQxNDksIDAuMDA0MTM0LCAwLjAwNDE0MiwgMC4wMDQxOSwgMC4wMDQyNCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE2NzgxNTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE2NzgxNTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE2Nzc1ODsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjc3MzUwNjsKLSAgICBmdW5jdGlvbiA6ICJBIjsKLSAgICB0aHJlZV9zdGF0ZSA6ICIoIU9FKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMTE2NzgxLCAwLjA4MTY3ODIsIDAuMTUxNjc4LCAwLjIwMTY3OCwgMC4yODE2NzgsIDAuMzUxNjc4LCAwLjQ1MTY3OCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU1NTMyLCAwLjE1NDIwNCwgMC4yNTEzNjUsIDAuMzIwNzExLCAwLjQzMTczOCwgMC41Mjg4NzIsIDAuNjY3NjE0IiwgXAotICAgICAgICAgICIwLjA2NDEwOCwgMC4xNjI4MTYsIDAuMjYsIDAuMzI5MzM0LCAwLjQ0MDM3LCAwLjUzNzUyNywgMC42NzYyMTYiLCBcCi0gICAgICAgICAgIjAuMDc0NjQzLCAwLjE3MzM5MywgMC4yNzA1NzcsIDAuMzM5OTMxLCAwLjQ1MDkyMiwgMC41NDgxMjgsIDAuNjg2ODYiLCBcCi0gICAgICAgICAgIjAuMDg0MzI2LCAwLjE4MzIwMywgMC4yODA0MjQsIDAuMzQ5NzQ4LCAwLjQ2MDc2NSwgMC41NTc4NDgsIDAuNjk2NjkiLCBcCi0gICAgICAgICAgIjAuMDkzMDc5LCAwLjE5MjE3MywgMC4yODkzNTYsIDAuMzU4Njk5LCAwLjQ2OTY4LCAwLjU2Njc5NiwgMC43MDU1MjciLCBcCi0gICAgICAgICAgIjAuMTA1MzEsIDAuMjA0ODI3LCAwLjMwMTk3LCAwLjM3MTM2MywgMC40ODIzNDgsIDAuNTc5NDM3LCAwLjcxODEzOSIsIFwKLSAgICAgICAgICAiMC4xMTQ4MTMsIDAuMjE0NzM0LCAwLjMxMTg3NiwgMC4zODEyNjIsIDAuNDkyMjAzLCAwLjU4OTMxNywgMC43MjgxMjEiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMTE2NzgxLCAwLjA4MTY3ODIsIDAuMTUxNjc4LCAwLjIwMTY3OCwgMC4yODE2NzgsIDAuMzUxNjc4LCAwLjQ1MTY3OCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQwOTg4LCAwLjIzNzgyNCwgMC40MzgxOTEsIDAuNTgyNzA3LCAwLjgxMTY0MiwgMS4wMTQ2MSwgMS4zMDI1OCIsIFwKLSAgICAgICAgICAiMC4wNDEwMjMsIDAuMjM3ODQyLCAwLjQzNzk1NiwgMC41ODI2ODMsIDAuODEyOTY2LCAxLjAxMjY5LCAxLjMwMjUyIiwgXAotICAgICAgICAgICIwLjA0MTE3MSwgMC4yMzc2OTEsIDAuNDM4MTcyLCAwLjU4MjU2NCwgMC44MTE5NjEsIDEuMDEyMywgMS4zMDIzNiIsIFwKLSAgICAgICAgICAiMC4wNDE3OTUsIDAuMjM3NDUxLCAwLjQzNzk4NywgMC41ODI1OTMsIDAuODExNjU2LCAxLjAxMzExLCAxLjI5OTU0IiwgXAotICAgICAgICAgICIwLjA0MjY3NSwgMC4yMzc5MSwgMC40Mzg3MywgMC41ODE5MTMsIDAuODExNzcsIDEuMDEzMjUsIDEuMzAwNzkiLCBcCi0gICAgICAgICAgIjAuMDQ0MjA5LCAwLjIzODE1OCwgMC40MzgzNTQsIDAuNTgyNTAzLCAwLjgxMTY5MiwgMS4wMTQyLCAxLjMwMjAxIiwgXAotICAgICAgICAgICIwLjA0NTUwNCwgMC4yMzg2MjcsIDAuNDM4ODY1LCAwLjU4MjU4MiwgMC44MTE5MDMsIDEuMDEzMTMsIDEuMzAyMTQiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMTE2Nzc2LCAwLjA4MTY3NzYsIDAuMTUxNjc4LCAwLjIwMTY3OCwgMC4yODE2NzgsIDAuMzUxNjc4LCAwLjQ1MTY3OCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDUwMTY0LCAwLjE0OTU0OCwgMC4yNDc3NiwgMC4zMTc4NjUsIDAuNDMwMDg0LCAwLjUyODIyLCAwLjY2ODQ3MyIsIFwKLSAgICAgICAgICAiMC4wNTgyMjUsIDAuMTU3NjU2LCAwLjI1NTg3NywgMC4zMjU5ODcsIDAuNDM4MTcsIDAuNTM2MzYyLCAwLjY3NjU5IiwgXAotICAgICAgICAgICIwLjA2NzQyNCwgMC4xNjY5MzMsIDAuMjY1MTQ0LCAwLjMzNTI3LCAwLjQ0NzQ1NywgMC41NDU2MjMsIDAuNjg1ODUyIiwgXAotICAgICAgICAgICIwLjA3NTQyNSwgMC4xNzUxMTYsIDAuMjczMzMxLCAwLjM0MzQ1NCwgMC40NTU2MzMsIDAuNTUzNzkxLCAwLjY5NDAyNCIsIFwKLSAgICAgICAgICAiMC4wODIzMjYsIDAuMTgyMzA3LCAwLjI4MDUyOCwgMC4zNTA2NDQsIDAuNDYyODQ0LCAwLjU2MDk5MiwgMC43MDEyMDkiLCBcCi0gICAgICAgICAgIjAuMDkxODY2LCAwLjE5MjIxOSwgMC4yOTA0MTgsIDAuMzYwNTU3LCAwLjQ3MjcyMywgMC41NzA4OTMsIDAuNzExMTQ4IiwgXAotICAgICAgICAgICIwLjA5ODk2NywgMC4xOTk3MDIsIDAuMjk3ODg5LCAwLjM2ODAxNSwgMC40ODAyMDcsIDAuNTc4MzY4LCAwLjcxODYwMyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxMTY3NzYsIDAuMDgxNjc3NiwgMC4xNTE2NzgsIDAuMjAxNjc4LCAwLjI4MTY3OCwgMC4zNTE2NzgsIDAuNDUxNjc4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzg1NTksIDAuMjMzNzAxLCAwLjQzMjI1NiwgMC41NzQxMDYsIDAuODAxNTYsIDAuOTk5MDA5LCAxLjI4MTQzIiwgXAotICAgICAgICAgICIwLjAzODU3OCwgMC4yMzM0MSwgMC40MzIxODUsIDAuNTc0MjQ2LCAwLjgwMDIwNywgMC45OTgzMjUsIDEuMjgzMjEiLCBcCi0gICAgICAgICAgIjAuMDM4OTU3LCAwLjIzMzc1NiwgMC40MzE0NjQsIDAuNTc0MjEyLCAwLjgwMTIwNiwgMC45OTg3MjIsIDEuMjgyMzMiLCBcCi0gICAgICAgICAgIjAuMDM5Nzc0LCAwLjIzMzk0NywgMC40MzE1NzksIDAuNTc0MDg3LCAwLjgwMTQ4MiwgMC45OTk5OTgsIDEuMjgzMzMiLCBcCi0gICAgICAgICAgIjAuMDQwODE5LCAwLjIzNDAyNywgMC40MzIwMTIsIDAuNTcyOTY4LCAwLjgwMTMzNiwgMS4wMDAzOSwgMS4yODQ0MyIsIFwKLSAgICAgICAgICAiMC4wNDIwMzksIDAuMjM0MjE5LCAwLjQzMTU0NiwgMC41NzM3MzksIDAuODAwMjk2LCAwLjk5OTIzLCAxLjI4NDQ0IiwgXAotICAgICAgICAgICIwLjA0MzE5MiwgMC4yMzQ0MjMsIDAuNDMxOTk3LCAwLjU3Mzc3MywgMC44MDA2NDYsIDAuOTk5OTc1LCAxLjI4NDM4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIk9FIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiB0aHJlZV9zdGF0ZV9lbmFibGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDExNjc4MSwgMC4wODE2NzgyLCAwLjE1MTY3OCwgMC4yMDE2NzgsIDAuMjgxNjc4LCAwLjM1MTY3OCwgMC40NTE2NzgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1MzA4MiwgMC4xNTE3MiwgMC4yNDg4NzIsIDAuMzE4MjkyLCAwLjQyOTIyNywgMC41MjYzNTcsIDAuNjY1MDkiLCBcCi0gICAgICAgICAgIjAuMDYyMDY4LCAwLjE2MDcyNCwgMC4yNTc4NjcsIDAuMzI3MjI4LCAwLjQzODIzNiwgMC41MzUzMTUsIDAuNjc0MDg5IiwgXAotICAgICAgICAgICIwLjA3Mzc4MiwgMC4xNzI0MTksIDAuMjY5NTcsIDAuMzM4OTQ0LCAwLjQ0OTkxMiwgMC41NDcwMzcsIDAuNjg1Nzc4IiwgXAotICAgICAgICAgICIwLjA4NDYxMSwgMC4xODMzODIsIDAuMjgwNTIyLCAwLjM0OTkwNywgMC40NjA4NjMsIDAuNTU3OTgzLCAwLjY5NjczOCIsIFwKLSAgICAgICAgICAiMC4wOTQwNzQsIDAuMTkzMDYyLCAwLjI5MDE4MSwgMC4zNTk1NjcsIDAuNDcwNTMsIDAuNTY3NjQ4LCAwLjcwNjM4OSIsIFwKLSAgICAgICAgICAiMC4xMDY5NjMsIDAuMjA2NDI1LCAwLjMwMzUyNCwgMC4zNzI4OSwgMC40ODM4OTksIDAuNTgxMDA0LCAwLjcxOTczIiwgXAotICAgICAgICAgICIwLjExNjgxOSwgMC4yMTY4NTIsIDAuMzEzOTUyLCAwLjM4MzMwNSwgMC40OTQzMDgsIDAuNTkxMzczLCAwLjczMDA4OCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxMTY3ODEsIDAuMDgxNjc4MiwgMC4xNTE2NzgsIDAuMjAxNjc4LCAwLjI4MTY3OCwgMC4zNTE2NzgsIDAuNDUxNjc4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDE0MzgsIDAuMjM3ODI5LCAwLjQzODg2NCwgMC41ODI4MzMsIDAuODEyMjY4LCAxLjAxMzQ0LCAxLjMwMTA4IiwgXAotICAgICAgICAgICIwLjA0MTQzLCAwLjIzNzUwMywgMC40MzgxODIsIDAuNTgyNzE3LCAwLjgxMzA4NywgMS4wMTM1OSwgMS4zMDA2OCIsIFwKLSAgICAgICAgICAiMC4wNDE2MzEsIDAuMjM3ODE2LCAwLjQzODgyOCwgMC41ODI2MjYsIDAuODExOTk0LCAxLjAxMzQxLCAxLjMwMTA5IiwgXAotICAgICAgICAgICIwLjA0MjU3OCwgMC4yMzc5MzIsIDAuNDM4Nzg4LCAwLjU4MjY0NCwgMC44MTI5MjgsIDEuMDEzNjQsIDEuMzAwOTciLCBcCi0gICAgICAgICAgIjAuMDQzNzMsIDAuMjM4MTY1LCAwLjQzODgzLCAwLjU4MTYzLCAwLjgxMjkzOCwgMS4wMTM1NywgMS4zMDEwNCIsIFwKLSAgICAgICAgICAiMC4wNDU4MzksIDAuMjM4NDE1LCAwLjQzODU5OCwgMC41ODI3MjMsIDAuODEyOTYyLCAxLjAxNDUyLCAxLjMwMjQ4IiwgXAotICAgICAgICAgICIwLjA0NzU3NiwgMC4yMzg4MzIsIDAuNDM5MjQ3LCAwLjU4Mjg5MywgMC44MTMwMjYsIDEuMDEzNTMsIDEuMzAwOTgiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMTE2Nzc2LCAwLjA4MTY3NzYsIDAuMTUxNjc4LCAwLjIwMTY3OCwgMC4yODE2NzgsIDAuMzUxNjc4LCAwLjQ1MTY3OCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDYxMjk3LCAwLjE2MDYyMiwgMC4yNTg4MjMsIDAuMzI4OTQsIDAuNDQxMTQ5LCAwLjUzOTM0NiwgMC42Nzk1NjEiLCBcCi0gICAgICAgICAgIjAuMDcxMzIzLCAwLjE3MDYzMywgMC4yNjg4NzYsIDAuMzM4OTU1LCAwLjQ1MTIyOCwgMC41NDkzNSwgMC42ODk2MTgiLCBcCi0gICAgICAgICAgIjAuMDgyNjU5LCAwLjE4MTk0NSwgMC4yODAxNywgMC4zNTAyODksIDAuNDYyNDgxLCAwLjU2MDcsIDAuNzAwODUyIiwgXAotICAgICAgICAgICIwLjA5MTg3NSwgMC4xOTExNzYsIDAuMjg5MzkzLCAwLjM1OTQ5NSwgMC40NzE2NzUsIDAuNTY5ODkzLCAwLjcxMDA3OSIsIFwKLSAgICAgICAgICAiMC4wOTk1ODEsIDAuMTk4ODg0LCAwLjI5NzA3MSwgMC4zNjcyMDMsIDAuNDc5Mzc4LCAwLjU3NzU0NCwgMC43MTc4NTUiLCBcCi0gICAgICAgICAgIjAuMTEwMTMxLCAwLjIwOTQ4MiwgMC4zMDc2NTMsIDAuMzc3NzgzLCAwLjQ4OTk2OSwgMC41ODgxMTgsIDAuNzI4MzY1IiwgXAotICAgICAgICAgICIwLjExODU2NywgMC4yMTc5NTcsIDAuMzE2MDg4LCAwLjM4NjIwMywgMC40OTg0MTcsIDAuNTk2NTY3LCAwLjczNjg5NiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxMTY3NzYsIDAuMDgxNjc3NiwgMC4xNTE2NzgsIDAuMjAxNjc4LCAwLjI4MTY3OCwgMC4zNTE2NzgsIDAuNDUxNjc4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzkxMzIsIDAuMjMzOTI5LCAwLjQzMjQ4NywgMC41NzQyNjMsIDAuODAwNjQsIDEuMDAxMSwgMS4yODUxNyIsIFwKLSAgICAgICAgICAiMC4wMzkxMDUsIDAuMjMzODQ1LCAwLjQzMTE0NCwgMC41NzQyMDYsIDAuNzk5OTU1LCAxLjAwMDkxLCAxLjI4NTM2IiwgXAotICAgICAgICAgICIwLjAzOTE0NSwgMC4yMzM4NDcsIDAuNDMxMjM1LCAwLjU3MzQxLCAwLjgwMDAxMiwgMC45OTg1MjMsIDEuMjg0ODgiLCBcCi0gICAgICAgICAgIjAuMDM5MTQ4LCAwLjIzMzg0NSwgMC40MzIzMDQsIDAuNTc0NDE3LCAwLjgwMDMyMSwgMS4wMDA3OCwgMS4yODQ4NCIsIFwKLSAgICAgICAgICAiMC4wMzkyMDcsIDAuMjMzODIzLCAwLjQzMTgyMywgMC41NzQxMzEsIDAuODAxNjgzLCAxLjAwMDYzLCAxLjI4NDg4IiwgXAotICAgICAgICAgICIwLjAzOTMxNiwgMC4yMzM0NDQsIDAuNDMxNzQ4LCAwLjU3MzYwNSwgMC44MDEwMDcsIDEuMDAwNCwgMS4yODI4MyIsIFwKLSAgICAgICAgICAiMC4wMzk1NCwgMC4yMzMzOCwgMC40MzE0MTgsIDAuNTcyOTkzLCAwLjgwMDc0MywgMC45OTk1NjUsIDEuMjgzNjEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiT0UiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHRocmVlX3N0YXRlX2Rpc2FibGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMzM1NjUsIDAuMDQzMjczLCAwLjA1Mzk2NSwgMC4wNjI4MTQsIDAuMDcwMjE3LCAwLjA4MDA3MiwgMC4wODcyMzciKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihzY2FsYXIpIHsKLSAgICAgICAgdmFsdWVzKCIwIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMjA1OCwgMC4wMzA0ODksIDAuMDQyMjcyLCAwLjA1MTkxOSwgMC4wNTk4MTEsIDAuMDcwOTI1LCAwLjA3ODk1MiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKHNjYWxhcikgewotICAgICAgICB2YWx1ZXMoIjAiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxMTY3ODEsIDAuMDgxNjc4MiwgMC4xNTE2NzgsIDAuMjAxNjc4LCAwLjI4MTY3OCwgMC4zNTE2NzgsIDAuNDUxNjc4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDM2MTksIDAuMDAzNjU1LCAwLjAwMzY1NywgMC4wMDM2NTgsIDAuMDAzNjYsIDAuMDAzNjU4LCAwLjAwMzY1OSIsIFwKLSAgICAgICAgICAiMC4wMDM0OTksIDAuMDAzNTU4LCAwLjAwMzU2MywgMC4wMDM1NjcsIDAuMDAzNTY1LCAwLjAwMzU2NiwgMC4wMDM1NjgiLCBcCi0gICAgICAgICAgIjAuMDAzNDM3LCAwLjAwMzUxOSwgMC4wMDM1MjgsIDAuMDAzNTMsIDAuMDAzNTMzLCAwLjAwMzUzMywgMC4wMDM1MzQiLCBcCi0gICAgICAgICAgIjAuMDAzNDE3LCAwLjAwMzUxNCwgMC4wMDM1MjUsIDAuMDAzNTI5LCAwLjAwMzUzMSwgMC4wMDM1MzEsIDAuMDAzNTM1IiwgXAotICAgICAgICAgICIwLjAwMzQxOCwgMC4wMDM1MTksIDAuMDAzNTMzLCAwLjAwMzUzNywgMC4wMDM1NDMsIDAuMDAzNTQzLCAwLjAwMzU0NSIsIFwKLSAgICAgICAgICAiMC4wMDM0NDEsIDAuMDAzNTUxLCAwLjAwMzU2OSwgMC4wMDM1NywgMC4wMDM1NzksIDAuMDAzNTc4LCAwLjAwMzU4NiIsIFwKLSAgICAgICAgICAiMC4wMDM0NzUsIDAuMDAzNTg4LCAwLjAwMzYwOSwgMC4wMDM2MSwgMC4wMDM2MjIsIDAuMDAzNjI3LCAwLjAwMzYzMSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDExNjc3NiwgMC4wODE2Nzc2LCAwLjE1MTY3OCwgMC4yMDE2NzgsIDAuMjgxNjc4LCAwLjM1MTY3OCwgMC40NTE2NzgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNzUzMiwgMC4wMDc2MjEsIDAuMDA3NjI5LCAwLjAwNzYzMiwgMC4wMDc2MzQsIDAuMDA3NjM1LCAwLjAwNzYzNiIsIFwKLSAgICAgICAgICAiMC4wMDc0MzcsIDAuMDA3NTQ5LCAwLjAwNzU2MSwgMC4wMDc1NjQsIDAuMDA3NTY3LCAwLjAwNzU2OCwgMC4wMDc1NyIsIFwKLSAgICAgICAgICAiMC4wMDczNzksIDAuMDA3NTE4LCAwLjAwNzUzNSwgMC4wMDc1NCwgMC4wMDc1NDUsIDAuMDA3NTQ3LCAwLjAwNzU0OSIsIFwKLSAgICAgICAgICAiMC4wMDczNjcsIDAuMDA3NTEsIDAuMDA3NTMxLCAwLjAwNzUzNywgMC4wMDc1NDMsIDAuMDA3NTQ1LCAwLjAwNzU0OCIsIFwKLSAgICAgICAgICAiMC4wMDczNzYsIDAuMDA3NTE0LCAwLjAwNzUzNywgMC4wMDc1NDQsIDAuMDA3NTUxLCAwLjAwNzU1NCwgMC4wMDc1NTciLCBcCi0gICAgICAgICAgIjAuMDA3NDEsIDAuMDA3NTM4LCAwLjAwNzU2MywgMC4wMDc1NzMsIDAuMDA3NTc5LCAwLjAwNzU4MiwgMC4wMDc1ODUiLCBcCi0gICAgICAgICAgIjAuMDA3NDY5LCAwLjAwNzU3MywgMC4wMDc1OTksIDAuMDA3NjA4LCAwLjAwNzYxNiwgMC4wMDc2MTgsIDAuMDA3NjIxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiT0UiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDExNjc4MSwgMC4wODE2NzgyLCAwLjE1MTY3OCwgMC4yMDE2NzgsIDAuMjgxNjc4LCAwLjM1MTY3OCwgMC40NTE2NzgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzQxMiwgMC4wMDMzOTksIDAuMDAzMzkyLCAwLjAwMzM4LCAwLjAwMzM1OSwgMC4wMDMzNDksIDAuMDAzMzE3IiwgXAotICAgICAgICAgICIwLjAwMzMyNywgMC4wMDMzMDksIDAuMDAzMjkxLCAwLjAwMzI5NiwgMC4wMDMyNzYsIDAuMDAzMjI2LCAwLjAwMzIxMSIsIFwKLSAgICAgICAgICAiMC4wMDMzMTMsIDAuMDAzMywgMC4wMDMyOTMsIDAuMDAzMjgxLCAwLjAwMzI1MywgMC4wMDMyMzcsIDAuMDAzMjExIiwgXAotICAgICAgICAgICIwLjAwMzMyNiwgMC4wMDMzMTMsIDAuMDAzMzA3LCAwLjAwMzI5NSwgMC4wMDMyNzQsIDAuMDAzMjYyLCAwLjAwMzIzOSIsIFwKLSAgICAgICAgICAiMC4wMDMzNDksIDAuMDAzMzMsIDAuMDAzMzI3LCAwLjAwMzMxNywgMC4wMDMyOTUsIDAuMDAzMjg2LCAwLjAwMzI0MyIsIFwKLSAgICAgICAgICAiMC4wMDM0MDMsIDAuMDAzMzkxLCAwLjAwMzM2MywgMC4wMDMzNjgsIDAuMDAzMzUsIDAuMDAzMzMsIDAuMDAzMzAyIiwgXAotICAgICAgICAgICIwLjAwMzQ0MywgMC4wMDM0MjgsIDAuMDAzNDI5LCAwLjAwMzQxNywgMC4wMDM0MDEsIDAuMDAzMzgsIDAuMDAzMzQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxMTY3NzYsIDAuMDgxNjc3NiwgMC4xNTE2NzgsIDAuMjAxNjc4LCAwLjI4MTY3OCwgMC4zNTE2NzgsIDAuNDUxNjc4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDM3NywgMC4wMDM3NywgMC4wMDM3NywgMC4wMDM3NywgMC4wMDM3NywgMC4wMDM3NywgMC4wMDM3NyIsIFwKLSAgICAgICAgICAiMC4wMDM3MywgMC4wMDM3MywgMC4wMDM3MywgMC4wMDM3MywgMC4wMDM3MywgMC4wMDM3MywgMC4wMDM3MyIsIFwKLSAgICAgICAgICAiMC4wMDM3MjIsIDAuMDAzNzIyLCAwLjAwMzcyMiwgMC4wMDM3MjIsIDAuMDAzNzIyLCAwLjAwMzcyMiwgMC4wMDM3MjIiLCBcCi0gICAgICAgICAgIjAuMDAzNzI3LCAwLjAwMzcyOCwgMC4wMDM3MjgsIDAuMDAzNzI4LCAwLjAwMzcyOCwgMC4wMDM3MjgsIDAuMDAzNzI4IiwgXAotICAgICAgICAgICIwLjAwMzc0MiwgMC4wMDM3NDEsIDAuMDAzNzQyLCAwLjAwMzc0MiwgMC4wMDM3NDEsIDAuMDAzNzQyLCAwLjAwMzc0MiIsIFwKLSAgICAgICAgICAiMC4wMDM3NjYsIDAuMDAzNzY1LCAwLjAwMzc2NSwgMC4wMDM3NjUsIDAuMDAzNzY0LCAwLjAwMzc2NSwgMC4wMDM3NjQiLCBcCi0gICAgICAgICAgIjAuMDAzNzgyLCAwLjAwMzc5MiwgMC4wMDM3ODIsIDAuMDAzNzgxLCAwLjAwMzc5MywgMC4wMDM3ODEsIDAuMDAzNzkyIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBUQlVGWDYgKgotICogLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChUQlVGWDYpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC41MjU1NTE7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwNDAxMjY2OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwNDAwNjI2OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwNDAxMjY2OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTU4MywgMC4wMDE2MTcsIDAuMDAxNjE5LCAwLjAwMTYyMywgMC4wMDE2MjMsIDAuMDAxNjI1LCAwLjAwMTYyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTY5NCwgMC4wMDE2NzYsIDAuMDAxNjc1LCAwLjAwMTY3NSwgMC4wMDE2NzUsIDAuMDAxNjc1LCAwLjAwMTY3NCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oT0UpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMjUxMTU5OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMjUxMDU4OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMjUxMTU5OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihzY2FsYXIpIHsKLSAgICAgICAgdmFsdWVzKCIwIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA3NjYzLCAwLjAwNzU1OCwgMC4wMDc0OTgsIDAuMDA3NDgyLCAwLjAwNzUwMSwgMC4wMDc1NTYsIDAuMDA3NjYyIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMzIxOTgyOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMzIxOTgyOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMzIxODkxOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDEuNTM4Njk7Ci0gICAgZnVuY3Rpb24gOiAiQSI7Ci0gICAgdGhyZWVfc3RhdGUgOiAiKCFPRSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEzMjE5OCwgMC4wODMyMTk4LCAwLjE1MzIyLCAwLjIwMzIyLCAwLjI4MzIyLCAwLjM1MzIyLCAwLjQ1MzIyIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDY2MywgMC4wOTgwNSwgMC4xNDY0ODQsIDAuMTgxMDcyLCAwLjIzNjQxNSwgMC4yODQ3OTgsIDAuMzUzOTAyIiwgXAotICAgICAgICAgICIwLjA1NTE1MSwgMC4xMDY2MTksIDAuMTU1MDkyLCAwLjE4OTY1NCwgMC4yNDQ5NzksIDAuMjkzMzgzLCAwLjM2MjU3NyIsIFwKLSAgICAgICAgICAiMC4wNjU1NzgsIDAuMTE3MTA4LCAwLjE2NTU4LCAwLjIwMDE3MywgMC4yNTU0NzQsIDAuMzAzODc4LCAwLjM3MzAxNyIsIFwKLSAgICAgICAgICAiMC4wNzUwMzksIDAuMTI2ODA2LCAwLjE3NTI4MiwgMC4yMDk4NjUsIDAuMjY1MTc3LCAwLjMxMzU3NCwgMC4zODI3MTQiLCBcCi0gICAgICAgICAgIjAuMDgzMzg3LCAwLjEzNTYwMiwgMC4xODQwODcsIDAuMjE4Njc2LCAwLjI3Mzk3OCwgMC4zMjIzNzUsIDAuMzkxNTE4IiwgXAotICAgICAgICAgICIwLjA5NTA1MiwgMC4xNDgwNTYsIDAuMTk2NTQ0LCAwLjIzMTEyMiwgMC4yODY0ODIsIDAuMzM0ODQ3LCAwLjQwMzk1MSIsIFwKLSAgICAgICAgICAiMC4xMDQwNTgsIDAuMTU3Njc4LCAwLjIwNjIzOCwgMC4yNDA3OTMsIDAuMjk2MTAxLCAwLjM0NDUwMywgMC40MTM2MjgiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMTMyMTk4LCAwLjA4MzIxOTgsIDAuMTUzMjIsIDAuMjAzMjIsIDAuMjgzMjIsIDAuMzUzMjIsIDAuNDUzMjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyNjg3NywgMC4xMjI5MDgsIDAuMjIxNTg2LCAwLjI5MjY0NiwgMC40MDYxNTMsIDAuNTA2ODU5LCAwLjY0OTY1NCIsIFwKLSAgICAgICAgICAiMC4wMjY5NzIsIDAuMTIyOTIxLCAwLjIyMTcwNCwgMC4yOTI2NzQsIDAuNDA2ODU5LCAwLjUwNjg0NiwgMC42NDgxNDQiLCBcCi0gICAgICAgICAgIjAuMDI3MjQsIDAuMTIyOTA3LCAwLjIyMTQ1MywgMC4yOTI3NjEsIDAuNDA2NzM0LCAwLjUwNjA0NSwgMC42NDk1MTMiLCBcCi0gICAgICAgICAgIjAuMDI4MDcyLCAwLjEyMzE3MSwgMC4yMjE1MiwgMC4yOTI0MDUsIDAuNDA2NzQ2LCAwLjUwNjQ0NCwgMC42NDk0NzkiLCBcCi0gICAgICAgICAgIjAuMDI5MTQxLCAwLjEyMzU2MSwgMC4yMjE5MTEsIDAuMjkyOTE1LCAwLjQwNjc4MywgMC41MDYxMzcsIDAuNjQ5NDYiLCBcCi0gICAgICAgICAgIjAuMDMwNzg5LCAwLjEyNDI5NCwgMC4yMjIyOTcsIDAuMjkyNzk2LCAwLjQwNjI3MiwgMC41MDY3MTksIDAuNjQ5NDE5IiwgXAotICAgICAgICAgICIwLjAzMjI5OCwgMC4xMjQ5MzksIDAuMjIyNTExLCAwLjI5MzEwNiwgMC40MDY2ODEsIDAuNTA2Nzg4LCAwLjY0ODI4NSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxMzIxODksIDAuMDgzMjE4OSwgMC4xNTMyMTksIDAuMjAzMjE5LCAwLjI4MzIxOSwgMC4zNTMyMTksIDAuNDUzMjE5Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDQxNTMsIDAuMDk2MDgzLCAwLjE0NTQwOSwgMC4xODA2MDYsIDAuMjM2OTE3LCAwLjI4NjIyMywgMC4zNTY1NzIiLCBcCi0gICAgICAgICAgIjAuMDUyMDEsIDAuMTAzOTkyLCAwLjE1MzMzMSwgMC4xODg1MzgsIDAuMjQ0ODY4LCAwLjI5NDEyNywgMC4zNjQ0NTgiLCBcCi0gICAgICAgICAgIjAuMDYwODAxLCAwLjExMjg5NywgMC4xNjIyNDQsIDAuMTk3NDUzLCAwLjI1Mzc2OSwgMC4zMDMwNSwgMC4zNzM0MSIsIFwKLSAgICAgICAgICAiMC4wNjg0NzEsIDAuMTIwODg1LCAwLjE3MDI1NywgMC4yMDU0NTUsIDAuMjYxNzcyLCAwLjMxMTA0OSwgMC4zODE0MTMiLCBcCi0gICAgICAgICAgIjAuMDc1MTExLCAwLjEyNzk2MiwgMC4xNzczMzksIDAuMjEyNTUxLCAwLjI2ODg2OCwgMC4zMTgxMjQsIDAuMzg4NDk1IiwgXAotICAgICAgICAgICIwLjA4NDMwMywgMC4xMzc2NDQsIDAuMTg3MDc2LCAwLjIyMjI4MywgMC4yNzg1ODcsIDAuMzI3ODY3LCAwLjM5ODIxOSIsIFwKLSAgICAgICAgICAiMC4wOTExNTQsIDAuMTQ1MDUzLCAwLjE5NDU3OSwgMC4yMjk3ODIsIDAuMjg2MDk2LCAwLjMzNTM4MywgMC40MDU3NDEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMTMyMTg5LCAwLjA4MzIxODksIDAuMTUzMjE5LCAwLjIwMzIxOSwgMC4yODMyMTksIDAuMzUzMjE5LCAwLjQ1MzIxOSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDI1MjQ5LCAwLjEyMTcxMiwgMC4yMjA0NTEsIDAuMjkxNDMzLCAwLjQwNTk3MSwgMC41MDU5NiwgMC42NDgxNzgiLCBcCi0gICAgICAgICAgIjAuMDI1MjgyLCAwLjEyMTcwOCwgMC4yMjA3OTQsIDAuMjkxOTM2LCAwLjQwNjA0OCwgMC41MDU4OTYsIDAuNjQ4NjYzIiwgXAotICAgICAgICAgICIwLjAyNTc4NSwgMC4xMjE4MzYsIDAuMjIwODA3LCAwLjI5MTQzLCAwLjQwNTk3LCAwLjUwNDkwMiwgMC42NDg3NjIiLCBcCi0gICAgICAgICAgIjAuMDI2Nzc0LCAwLjEyMjEwOCwgMC4yMjA5NjUsIDAuMjkxOTQyLCAwLjQwNTk1OSwgMC41MDU4NTQsIDAuNjQ3NzE0IiwgXAotICAgICAgICAgICIwLjAyNzY4OSwgMC4xMjI1MTEsIDAuMjIwODY1LCAwLjI5MjA3NywgMC40MDU5MDEsIDAuNTA1MDg0LCAwLjY0NzYyNyIsIFwKLSAgICAgICAgICAiMC4wMjkwMjQsIDAuMTIzMTk0LCAwLjIyMTQyLCAwLjI5MjEyMSwgMC40MDU5NzMsIDAuNTA1NTY5LCAwLjY0ODU3NSIsIFwKLSAgICAgICAgICAiMC4wMzAyNjEsIDAuMTIzNzQzLCAwLjIyMTQyNywgMC4yOTE5OTEsIDAuNDA1ODM3LCAwLjUwNTQ4MywgMC42NDc5NDEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiT0UiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHRocmVlX3N0YXRlX2VuYWJsZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMTMyMTk4LCAwLjA4MzIxOTgsIDAuMTUzMjIsIDAuMjAzMjIsIDAuMjgzMjIsIDAuMzUzMjIsIDAuNDUzMjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0MzgwMywgMC4wOTUyMzcsIDAuMTQzNjcxLCAwLjE3ODIzNywgMC4yMzM1NCwgMC4yODE5MzksIDAuMzUxMDYxIiwgXAotICAgICAgICAgICIwLjA1Mjg1NiwgMC4xMDQyNDcsIDAuMTUyNjgzLCAwLjE4NzI0OSwgMC4yNDI1NTIsIDAuMjkwOTUsIDAuMzYwMDciLCBcCi0gICAgICAgICAgIjAuMDY0NDk5LCAwLjExNTg4MywgMC4xNjQzMjEsIDAuMTk4ODg1LCAwLjI1NDE4MiwgMC4zMDI1NzEsIDAuMzcxNzI2IiwgXAotICAgICAgICAgICIwLjA3NDc5NSwgMC4xMjY1MjksIDAuMTc0OTUyLCAwLjIwOTU0LCAwLjI2NDgwNiwgMC4zMTMxODgsIDAuMzgyMzUiLCBcCi0gICAgICAgICAgIjAuMDg0MTU2LCAwLjEzNjMyMSwgMC4xODQ3NTQsIDAuMjE5MzExLCAwLjI3NDU5NSwgMC4zMjI5NjUsIDAuMzkyMDkiLCBcCi0gICAgICAgICAgIjAuMDk2Mjk2LCAwLjE0OTQxNiwgMC4xOTc4OCwgMC4yMzI0MjksIDAuMjg3NywgMC4zMzYwNjUsIDAuNDA1MTY5IiwgXAotICAgICAgICAgICIwLjEwNTcxNywgMC4xNTkzMzIsIDAuMjA3OTAzLCAwLjI0MjQzNiwgMC4yOTc3MDYsIDAuMzQ2MDg0LCAwLjQxNTIyNyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxMzIxOTgsIDAuMDgzMjE5OCwgMC4xNTMyMiwgMC4yMDMyMiwgMC4yODMyMiwgMC4zNTMyMiwgMC40NTMyMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDI3NTksIDAuMTIzMDI2LCAwLjIyMTc0LCAwLjI5Mjc3MSwgMC40MDYzNzMsIDAuNTA1MzkyLCAwLjY0OTYyOCIsIFwKLSAgICAgICAgICAiMC4wMjc0NzEsIDAuMTIzMDEsIDAuMjIxNzMxLCAwLjI5Mjc0NywgMC40MDYzOTEsIDAuNTA1OTIsIDAuNjQ5NTgyIiwgXAotICAgICAgICAgICIwLjAyNzg3NSwgMC4xMjMxNTMsIDAuMjIxNzc4LCAwLjI5MjczOSwgMC40MDYyNzksIDAuNTA2MTAxLCAwLjY0OTU1IiwgXAotICAgICAgICAgICIwLjAyOTE3OCwgMC4xMjM0ODksIDAuMjIxODU1LCAwLjI5MjM2NywgMC40MDY3MTIsIDAuNTA2MjAyLCAwLjY0OTU1MiIsIFwKLSAgICAgICAgICAiMC4wMzA1MDgsIDAuMTIzOTcyLCAwLjIyMjEwNywgMC4yOTI1NzksIDAuNDA2ODE2LCAwLjUwNjA5NSwgMC42NDgzNTkiLCBcCi0gICAgICAgICAgIjAuMDMzMTI0LCAwLjEyNDkwNywgMC4yMjI0MTgsIDAuMjkyOTM4LCAwLjQwNjY1LCAwLjUwNjcsIDAuNjQ5NDA5IiwgXAotICAgICAgICAgICIwLjAzNDc3LCAwLjEyNTc1OCwgMC4yMjI4NjksIDAuMjkzNTUzLCAwLjQwNzEzNiwgMC41MDY1MTIsIDAuNjQ5NjM2Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEzMjE4OSwgMC4wODMyMTg5LCAwLjE1MzIxOSwgMC4yMDMyMTksIDAuMjgzMjE5LCAwLjM1MzIxOSwgMC40NTMyMTkiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2MzI1NywgMC4xMTUxMjQsIDAuMTY0NDE5LCAwLjE5OTYwNCwgMC4yNTU5MTEsIDAuMzA1MTk2LCAwLjM3NTU3NyIsIFwKLSAgICAgICAgICAiMC4wNzMzOTcsIDAuMTI1MjkxLCAwLjE3NDU5MiwgMC4yMDk3ODksIDAuMjY2MTE3LCAwLjMxNTM0MywgMC4zODU3MTciLCBcCi0gICAgICAgICAgIjAuMDg1OTg0LCAwLjEzNzg1LCAwLjE4NzE0MywgMC4yMjIzMjksIDAuMjc4NjQyLCAwLjMyNzkxNiwgMC4zOTgyNTUiLCBcCi0gICAgICAgICAgIjAuMDk3MjA2LCAwLjE0OTA3NSwgMC4xOTgzNjIsIDAuMjMzNTQ3LCAwLjI4OTkwNSwgMC4zMzkxMjgsIDAuNDA5NDY5IiwgXAotICAgICAgICAgICIwLjEwNjk1LCAwLjE1ODg5MSwgMC4yMDgxODQsIDAuMjQzMzg3LCAwLjI5OTY4NCwgMC4zNDg5MzYsIDAuNDE5Mjc2IiwgXAotICAgICAgICAgICIwLjEyMDM1NSwgMC4xNzIzNzQsIDAuMjIxNjYyLCAwLjI1Njg0OCwgMC4zMTMxNCwgMC4zNjIzOTIsIDAuNDMyNzgxIiwgXAotICAgICAgICAgICIwLjEzMTE1OCwgMC4xODMyNDUsIDAuMjMyNTQzLCAwLjI2NzczNSwgMC4zMjQwMTYsIDAuMzczMjU3LCAwLjQ0MzY1NiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxMzIxODksIDAuMDgzMjE4OSwgMC4xNTMyMTksIDAuMjAzMjE5LCAwLjI4MzIxOSwgMC4zNTMyMTksIDAuNDUzMjE5Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjYxNiwgMC4xMjE5ODUsIDAuMjIwODk5LCAwLjI5MTk2NSwgMC40MDYwNywgMC41MDYxMjksIDAuNjQ3OTE1IiwgXAotICAgICAgICAgICIwLjAyNjE0MywgMC4xMjE5NDQsIDAuMjIwOTUyLCAwLjI5MjA4MywgMC40MDQ5OCwgMC41MDYwMjEsIDAuNjQ3NzUyIiwgXAotICAgICAgICAgICIwLjAyNjE3MywgMC4xMjE5MjgsIDAuMjIwODkxLCAwLjI5MTk0MywgMC40MDYwODYsIDAuNTA2MDkzLCAwLjY0ODgwNyIsIFwKLSAgICAgICAgICAiMC4wMjYxNzMsIDAuMTIxOTYsIDAuMjIwODgyLCAwLjI5MTk0MywgMC40MDUxMDcsIDAuNTA2MDUzLCAwLjY0ODc4NSIsIFwKLSAgICAgICAgICAiMC4wMjYyMTYsIDAuMTIyMDQzLCAwLjIyMDk2MiwgMC4yOTEyNzQsIDAuNDA1MzI4LCAwLjUwNTk2LCAwLjY0ODc2OCIsIFwKLSAgICAgICAgICAiMC4wMjY0ODgsIDAuMTIyMDY4LCAwLjIyMDY0MywgMC4yOTE1NDYsIDAuNDA1NzA1LCAwLjUwNTI4NSwgMC42NDgzMDkiLCBcCi0gICAgICAgICAgIjAuMDI2NjkyLCAwLjEyMjEwOSwgMC4yMjA1ODksIDAuMjkxNDg4LCAwLjQwNTExNiwgMC41MDUzNTUsIDAuNjQ3MDg1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIk9FIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiB0aHJlZV9zdGF0ZV9kaXNhYmxlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDQ0ODA1LCAwLjA1NDU5MiwgMC4wNjY3MjksIDAuMDc3NTMxLCAwLjA4NjgzMSwgMC4wOTk1NDcsIDAuMTA5MzU3Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oc2NhbGFyKSB7Ci0gICAgICAgIHZhbHVlcygiMCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDIwNTc0LCAwLjAzMDM1NiwgMC4wNDIxNjYsIDAuMDUxNDA5LCAwLjA1OTE2OCwgMC4wNzAxNzQsIDAuMDc4MTY3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oc2NhbGFyKSB7Ci0gICAgICAgIHZhbHVlcygiMCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEzMjE5OCwgMC4wODMyMTk4LCAwLjE1MzIyLCAwLjIwMzIyLCAwLjI4MzIyLCAwLjM1MzIyLCAwLjQ1MzIyIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDc0MzksIDAuMDA3NTg3LCAwLjAwNzYwMiwgMC4wMDc2MDYsIDAuMDA3NjEsIDAuMDA3NjE0LCAwLjAwNzYxMyIsIFwKLSAgICAgICAgICAiMC4wMDcxODEsIDAuMDA3Mzc0LCAwLjAwNzQwMSwgMC4wMDc0MDcsIDAuMDA3NDEsIDAuMDA3NDE3LCAwLjAwNzQyIiwgXAotICAgICAgICAgICIwLjAwNzA0NywgMC4wMDcyODEsIDAuMDA3MzE3LCAwLjAwNzM0LCAwLjAwNzM0OCwgMC4wMDczNSwgMC4wMDczNTEiLCBcCi0gICAgICAgICAgIjAuMDA3MDE3LCAwLjAwNzI2MSwgMC4wMDczMSwgMC4wMDczMjYsIDAuMDA3MzQzLCAwLjAwNzM0NCwgMC4wMDczNTUiLCBcCi0gICAgICAgICAgIjAuMDA3MDIyLCAwLjAwNzI3MSwgMC4wMDczMjgsIDAuMDA3MzU2LCAwLjAwNzM2NSwgMC4wMDczNzEsIDAuMDA3Mzc3IiwgXAotICAgICAgICAgICIwLjAwNzA4MSwgMC4wMDczMzUsIDAuMDA3NDAxLCAwLjAwNzQyMiwgMC4wMDc0NDUsIDAuMDA3NDU3LCAwLjAwNzQ2NiIsIFwKLSAgICAgICAgICAiMC4wMDcxNjMsIDAuMDA3NDE2LCAwLjAwNzQ4NSwgMC4wMDc1MTEsIDAuMDA3NTM2LCAwLjAwNzU0OSwgMC4wMDc1NjEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxMzIxODksIDAuMDgzMjE4OSwgMC4xNTMyMTksIDAuMjAzMjE5LCAwLjI4MzIxOSwgMC4zNTMyMTksIDAuNDUzMjE5Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTUyMzYsIDAuMDE1NTE3LCAwLjAxNTU1MiwgMC4wMTU1NjIsIDAuMDE1NTcxLCAwLjAxNTU3NiwgMC4wMTU1OCIsIFwKLSAgICAgICAgICAiMC4wMTUwNDIsIDAuMDE1MzU5LCAwLjAxNTQwNywgMC4wMTU0MjIsIDAuMDE1NDM1LCAwLjAxNTQ0MSwgMC4wMTU0NDgiLCBcCi0gICAgICAgICAgIjAuMDE0OTIzLCAwLjAxNTI3NSwgMC4wMTUzNDIsIDAuMDE1MzY0LCAwLjAxNTM4MywgMC4wMTUzOTMsIDAuMDE1NDAzIiwgXAotICAgICAgICAgICIwLjAxNDkwNywgMC4wMTUyNDksIDAuMDE1MzI3LCAwLjAxNTM1MywgMC4wMTUzNzcsIDAuMDE1MzksIDAuMDE1NDAxIiwgXAotICAgICAgICAgICIwLjAxNDkzLCAwLjAxNTI1MSwgMC4wMTUzMzUsIDAuMDE1MzYzLCAwLjAxNTM5LCAwLjAxNTQwNSwgMC4wMTU0MTgiLCBcCi0gICAgICAgICAgIjAuMDE1MDE2LCAwLjAxNTMwMiwgMC4wMTUzOSwgMC4wMTU0MjQsIDAuMDE1NDUzLCAwLjAxNTQ3LCAwLjAxNTQ4NSIsIFwKLSAgICAgICAgICAiMC4wMTUxMjksIDAuMDE1Mzc2LCAwLjAxNTQ2NSwgMC4wMTU1MDEsIDAuMDE1NTM2LCAwLjAxNTU1NCwgMC4wMTU1NyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIk9FIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxMzIxOTgsIDAuMDgzMjE5OCwgMC4xNTMyMiwgMC4yMDMyMiwgMC4yODMyMiwgMC4zNTMyMiwgMC40NTMyMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2OTc5LCAwLjAwNjk2OCwgMC4wMDY5NiwgMC4wMDY5NTQsIDAuMDA2OTQ5LCAwLjAwNjkyOCwgMC4wMDY5MTQiLCBcCi0gICAgICAgICAgIjAuMDA2ODQyLCAwLjAwNjgzNCwgMC4wMDY4MjYsIDAuMDA2ODE5LCAwLjAwNjc5OCwgMC4wMDY3OTgsIDAuMDA2Nzc5IiwgXAotICAgICAgICAgICIwLjAwNjgzLCAwLjAwNjgyLCAwLjAwNjgxNCwgMC4wMDY4MDcsIDAuMDA2ODAxLCAwLjAwNjc4MywgMC4wMDY3NyIsIFwKLSAgICAgICAgICAiMC4wMDY4ODYsIDAuMDA2ODc3LCAwLjAwNjg3LCAwLjAwNjg2MiwgMC4wMDY4NDYsIDAuMDA2ODQxLCAwLjAwNjgyNiIsIFwKLSAgICAgICAgICAiMC4wMDY4OTUsIDAuMDA2ODgyLCAwLjAwNjg3NiwgMC4wMDY4NjgsIDAuMDA2ODUzLCAwLjAwNjg1NiwgMC4wMDY4MzQiLCBcCi0gICAgICAgICAgIjAuMDA2OTc4LCAwLjAwNjk2NSwgMC4wMDY5NiwgMC4wMDY5NTUsIDAuMDA2OTM0LCAwLjAwNjkzLCAwLjAwNjkxOCIsIFwKLSAgICAgICAgICAiMC4wMDcwNzEsIDAuMDA3MDY0LCAwLjAwNzA1MywgMC4wMDcwNDQsIDAuMDA3MDM1LCAwLjAwNzAyNCwgMC4wMDcwMTciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxMzIxODksIDAuMDgzMjE4OSwgMC4xNTMyMTksIDAuMjAzMjE5LCAwLjI4MzIxOSwgMC4zNTMyMTksIDAuNDUzMjE5Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDc2OTYsIDAuMDA3Njk2LCAwLjAwNzY5NiwgMC4wMDc2OTYsIDAuMDA3Njk2LCAwLjAwNzY5NiwgMC4wMDc2OTYiLCBcCi0gICAgICAgICAgIjAuMDA3NjYxLCAwLjAwNzY2MSwgMC4wMDc2NjEsIDAuMDA3NjYxLCAwLjAwNzY2LCAwLjAwNzY2MSwgMC4wMDc2NjEiLCBcCi0gICAgICAgICAgIjAuMDA3NjQ4LCAwLjAwNzY0NywgMC4wMDc2NDcsIDAuMDA3NjQ3LCAwLjAwNzY0NywgMC4wMDc2NDcsIDAuMDA3NjQ3IiwgXAotICAgICAgICAgICIwLjAwNzY1MywgMC4wMDc2NTUsIDAuMDA3NjU1LCAwLjAwNzY1NSwgMC4wMDc2NTUsIDAuMDA3NjU1LCAwLjAwNzY1NSIsIFwKLSAgICAgICAgICAiMC4wMDc2NzQsIDAuMDA3Njc2LCAwLjAwNzY3NywgMC4wMDc2NzcsIDAuMDA3Njc3LCAwLjAwNzY3NywgMC4wMDc2NzgiLCBcCi0gICAgICAgICAgIjAuMDA3NzE3LCAwLjAwNzcxLCAwLjAwNzcxLCAwLjAwNzcxMSwgMC4wMDc3MSwgMC4wMDc3MSwgMC4wMDc3MSIsIFwKLSAgICAgICAgICAiMC4wMDc3MjIsIDAuMDA3NzIyLCAwLjAwNzcyMSwgMC4wMDc3MjEsIDAuMDA3NzIxLCAwLjAwNzcyMSwgMC4wMDc3MjEiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IFRCVUZYOCAqCi0gKiAtLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKFRCVUZYOCkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjYwNDA5OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDQwMTk3MjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDQwMTMyNTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDQwMTk3MjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDE1ODQsIDAuMDAxNjE4LCAwLjAwMTYxOSwgMC4wMDE2MjMsIDAuMDAxNjI0LCAwLjAwMTYyNSwgMC4wMDE2MjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDE2OTQsIDAuMDAxNjc2LCAwLjAwMTY3NCwgMC4wMDE2NzQsIDAuMDAxNjc0LCAwLjAwMTY3NCwgMC4wMDE2NzQiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKE9FKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDI1MTE5MjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDI1MTA1NzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDI1MTE5MjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIoc2NhbGFyKSB7Ci0gICAgICAgIHZhbHVlcygiMCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwODA2NywgMC4wMDc5NzMsIDAuMDA3OTE3LCAwLjAwNzkyMywgMC4wMDc4ODUsIDAuMDA3OTQxLCAwLjAwODAxOCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDQyODgzNDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDQyODgzNDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDQyODcwNDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAyLjA2MzY2OwotICAgIGZ1bmN0aW9uIDogIkEiOwotICAgIHRocmVlX3N0YXRlIDogIighT0UpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxNDI4ODMsIDAuMDg0Mjg4MywgMC4xNTQyODgsIDAuMjA0Mjg4LCAwLjI4NDI4OCwgMC4zNTQyODgsIDAuNDU0Mjg4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDgxODcsIDAuMDg5Mjc3LCAwLjEyNTk3OSwgMC4xNTIwNDUsIDAuMTkzNywgMC4yMzAxMzgsIDAuMjgyMjY2IiwgXAotICAgICAgICAgICIwLjA1NjcyOSwgMC4wOTc4NDksIDAuMTM0NTY2LCAwLjE2MDYyNiwgMC4yMDIyODYsIDAuMjM4NzMxLCAwLjI5MDg1OCIsIFwKLSAgICAgICAgICAiMC4wNjcxOTEsIDAuMTA4NDAzLCAwLjE0NTEyOSwgMC4xNzExODQsIDAuMjEyODQ5LCAwLjI0OTMwMywgMC4zMDEzNyIsIFwKLSAgICAgICAgICAiMC4wNzY5NDMsIDAuMTE4MzcyLCAwLjE1NTA5NCwgMC4xODExNjIsIDAuMjIyODM1LCAwLjI1OTI3OCwgMC4zMTEzODUiLCBcCi0gICAgICAgICAgIjAuMDg1NjI2LCAwLjEyNzUxNSwgMC4xNjQyNjcsIDAuMTkwMzQzLCAwLjIzMjAyMSwgMC4yNjg0NTEsIDAuMzIwNTM4IiwgXAotICAgICAgICAgICIwLjA5Nzc4NCwgMC4xNDA1NTksIDAuMTc3MzU0LCAwLjIwMzQyMywgMC4yNDUwODMsIDAuMjgxNTU3LCAwLjMzMzU5NyIsIFwKLSAgICAgICAgICAiMC4xMDcxNDYsIDAuMTUwNjYxLCAwLjE4NzU3MSwgMC4yMTM2MzEsIDAuMjU1Mjk2LCAwLjI5MTcyNywgMC4zNDM3ODIiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMTQyODgzLCAwLjA4NDI4ODMsIDAuMTU0Mjg4LCAwLjIwNDI4OCwgMC4yODQyODgsIDAuMzU0Mjg4LCAwLjQ1NDI4OCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDI1MDUzLCAwLjA5Njk3LCAwLjE3MDQxMiwgMC4yMjM1MjQsIDAuMzA4NDc4LCAwLjM4MzUzLCAwLjQ5MDUiLCBcCi0gICAgICAgICAgIjAuMDI1MTY5LCAwLjA5Njk2MSwgMC4xNzAyODEsIDAuMjIzMzE0LCAwLjMwODkxOSwgMC4zODM1MzMsIDAuNDkwNTE5IiwgXAotICAgICAgICAgICIwLjAyNTM4MywgMC4wOTcwMTQsIDAuMTcwNDIyLCAwLjIyMzMyLCAwLjMwODg4NSwgMC4zODM5ODEsIDAuNDkwODE0IiwgXAotICAgICAgICAgICIwLjAyNjE3LCAwLjA5NzI3MSwgMC4xNzA0MjUsIDAuMjIzMzcxLCAwLjMwODk2OCwgMC4zODM5MywgMC40OTA2NTgiLCBcCi0gICAgICAgICAgIjAuMDI3MzI5LCAwLjA5Nzc4NywgMC4xNzA2NjEsIDAuMjIzNzYzLCAwLjMwOTE2OCwgMC4zODQwMjcsIDAuNDkwNDgiLCBcCi0gICAgICAgICAgIjAuMDI5MDIyLCAwLjA5ODc2NiwgMC4xNzEzMTIsIDAuMjI0MTksIDAuMzA5MjgyLCAwLjM4NDI0MSwgMC40OTE0NjEiLCBcCi0gICAgICAgICAgIjAuMDMwNzA2LCAwLjA5OTgyMSwgMC4xNzE4NDYsIDAuMjI0NDQ0LCAwLjMwOTY0OSwgMC4zODQzOCwgMC40OTE1NCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxNDI4NywgMC4wODQyODcsIDAuMTU0Mjg3LCAwLjIwNDI4NywgMC4yODQyODcsIDAuMzU0Mjg3LCAwLjQ1NDI4NyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQ0NzE2LCAwLjA4NTY5LCAwLjEyMjk4MSwgMC4xNDk0OTEsIDAuMTkxODg1LCAwLjIyODk3OSwgMC4yODE5NzMiLCBcCi0gICAgICAgICAgIjAuMDUyNTkxLCAwLjA5MzU5NiwgMC4xMzA5MDQsIDAuMTU3NDE2LCAwLjE5OTgxLCAwLjIzNjkxNSwgMC4yODk4OTgiLCBcCi0gICAgICAgICAgIjAuMDYxNTA4LCAwLjEwMjU4MiwgMC4xMzk5MDgsIDAuMTY2NDI4LCAwLjIwODgzMSwgMC4yNDU5MzgsIDAuMjk4OTEyIiwgXAotICAgICAgICAgICIwLjA2OTQxMSwgMC4xMTA4MywgMC4xNDgxNzgsIDAuMTc0NzAyLCAwLjIxNzEwNiwgMC4yNTQyMDMsIDAuMzA3MTk2IiwgXAotICAgICAgICAgICIwLjA3NjMyLCAwLjExODIyMSwgMC4xNTU1ODEsIDAuMTgyMTE0LCAwLjIyNDUwOCwgMC4yNjE2MzQsIDAuMzE0NTg3IiwgXAotICAgICAgICAgICIwLjA4NTgwMywgMC4xMjgzMDgsIDAuMTY1Nzk0LCAwLjE5MjMyNCwgMC4yMzQ3NCwgMC4yNzE4MTQsIDAuMzI0Nzc5IiwgXAotICAgICAgICAgICIwLjA5MzA1MSwgMC4xMzYwMzMsIDAuMTczNjE1LCAwLjIwMDE3MywgMC4yNDI1NjMsIDAuMjc5NjUyLCAwLjMzMjYzNSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxNDI4NywgMC4wODQyODcsIDAuMTU0Mjg3LCAwLjIwNDI4NywgMC4yODQyODcsIDAuMzU0Mjg3LCAwLjQ1NDI4NyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDIzMDE3LCAwLjA5NTEzNywgMC4xNjg5NzksIDAuMjIxOTM5LCAwLjMwNzgxLCAwLjM4MjIzOCwgMC40OTA0MTgiLCBcCi0gICAgICAgICAgIjAuMDIzMDUxLCAwLjA5NTE1NiwgMC4xNjg2NTMsIDAuMjIxOTc0LCAwLjMwNzMyNiwgMC4zODIwNTcsIDAuNDkwMzgiLCBcCi0gICAgICAgICAgIjAuMDIzNTI4LCAwLjA5NTI1OCwgMC4xNjg5NCwgMC4yMjE5NiwgMC4zMDczNDIsIDAuMzgyMDQxLCAwLjQ4OTc2NSIsIFwKLSAgICAgICAgICAiMC4wMjQ1MjcsIDAuMDk1NjQ4LCAwLjE2OTA1MiwgMC4yMjIzODUsIDAuMzA3ODYyLCAwLjM4MjMyMywgMC40ODkzNDciLCBcCi0gICAgICAgICAgIjAuMDI1NTM0LCAwLjA5NjIyLCAwLjE2OTUxMiwgMC4yMjI2NjIsIDAuMzA3ODA1LCAwLjM4MjkzMSwgMC40ODk2NzciLCBcCi0gICAgICAgICAgIjAuMDI2ODE0LCAwLjA5NzExNCwgMC4xNjk5OTUsIDAuMjIyOTM0LCAwLjMwNzU1MiwgMC4zODI5NTcsIDAuNDkwMjkiLCBcCi0gICAgICAgICAgIjAuMDI4MDE1LCAwLjA5Nzk4NSwgMC4xNzA0MDEsIDAuMjIzMTQ2LCAwLjMwODE5NCwgMC4zODI4MzMsIDAuNDg5NDk2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIk9FIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiB0aHJlZV9zdGF0ZV9lbmFibGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDE0Mjg4MywgMC4wODQyODgzLCAwLjE1NDI4OCwgMC4yMDQyODgsIDAuMjg0Mjg4LCAwLjM1NDI4OCwgMC40NTQyODgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0NTQyNCwgMC4wODY0OTMsIDAuMTIzMTc1LCAwLjE0OTIxOCwgMC4xOTA4NzEsIDAuMjI3MzIzLCAwLjI3OTM2OSIsIFwKLSAgICAgICAgICAiMC4wNTQ0NCwgMC4wOTU0NzgsIDAuMTMyMTY1LCAwLjE1ODIxLCAwLjE5OTg2OCwgMC4yMzYyOTgsIDAuMjg4MzU1IiwgXAotICAgICAgICAgICIwLjA2NjE1NSwgMC4xMDcyMzgsIDAuMTQzOTE5LCAwLjE2OTk2NywgMC4yMTE2MiwgMC4yNDgwNTcsIDAuMzAwMTEzIiwgXAotICAgICAgICAgICIwLjA3Njk2NSwgMC4xMTgyOTMsIDAuMTU0OTczLCAwLjE4MTAyLCAwLjIyMjY3LCAwLjI1OTEwNCwgMC4zMTExNTIiLCBcCi0gICAgICAgICAgIjAuMDg2MzYxLCAwLjEyODI5NiwgMC4xNjUsIDAuMTkxMDQyLCAwLjIzMjY5LCAwLjI2OTEzLCAwLjMyMTE2NiIsIFwKLSAgICAgICAgICAiMC4wOTk1NTEsIDAuMTQyNTE4LCAwLjE3OTI4NywgMC4yMDUzMjIsIDAuMjQ2OTU1LCAwLjI4MzM2NiwgMC4zMzU0MSIsIFwKLSAgICAgICAgICAiMC4xMDkyNCwgMC4xNTMxNDMsIDAuMTkwMDY2LCAwLjIxNjEwMSwgMC4yNTc3MTUsIDAuMjk0MTM5LCAwLjM0NjE5OCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxNDI4ODMsIDAuMDg0Mjg4MywgMC4xNTQyODgsIDAuMjA0Mjg4LCAwLjI4NDI4OCwgMC4zNTQyODgsIDAuNDU0Mjg4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjU4NjQsIDAuMDk3MjI3LCAwLjE3MDM3NSwgMC4yMjM1OTEsIDAuMzA5MDA1LCAwLjM4NDA5MSwgMC40OTE0MzgiLCBcCi0gICAgICAgICAgIjAuMDI1Nzk5LCAwLjA5NzIxMiwgMC4xNzA0MTIsIDAuMjIzNjA5LCAwLjMwODU3OCwgMC4zODQwMTcsIDAuNDkwOTE4IiwgXAotICAgICAgICAgICIwLjAyNjA0OSwgMC4wOTcyNjUsIDAuMTcwNDcyLCAwLjIyMzU3NCwgMC4zMDg5NzUsIDAuMzgzOSwgMC40OTA4MjciLCBcCi0gICAgICAgICAgIjAuMDI3MTIxLCAwLjA5NzY0OCwgMC4xNzA3MjEsIDAuMjIzNjkxLCAwLjMwOTA0LCAwLjM4NDAwNywgMC40OTEzODIiLCBcCi0gICAgICAgICAgIjAuMDI4ODI1LCAwLjA5ODMxNCwgMC4xNzA5NTksIDAuMjIzODksIDAuMzA5MTU5LCAwLjM4NDA3NiwgMC40OTEzNDIiLCBcCi0gICAgICAgICAgIjAuMDMxNTM0LCAwLjA5OTYxMiwgMC4xNzE3MywgMC4yMjQ1MDQsIDAuMzA5NTI4LCAwLjM4NDI0NiwgMC40OTE0ODIiLCBcCi0gICAgICAgICAgIjAuMDMzOTkxLCAwLjEwMDg5MywgMC4xNzI1MzIsIDAuMjI0ODM3LCAwLjMwOTQ3NiwgMC4zODQwNzgsIDAuNDkxNzcyIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDE0Mjg3LCAwLjA4NDI4NywgMC4xNTQyODcsIDAuMjA0Mjg3LCAwLjI4NDI4NywgMC4zNTQyODcsIDAuNDU0Mjg3Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjM5NzQsIDAuMTA0ODc4LCAwLjE0MjEzMiwgMC4xNjg2MjUsIDAuMjExMDAyLCAwLjI0ODA4MiwgMC4zMDExMDEiLCBcCi0gICAgICAgICAgIjAuMDc0MTc4LCAwLjExNTA2OCwgMC4xNTIzMjYsIDAuMTc4ODMxLCAwLjIyMTIwNSwgMC4yNTgyODMsIDAuMzExMjk5IiwgXAotICAgICAgICAgICIwLjA4NjY3NSwgMC4xMjc2MiwgMC4xNjQ4NjUsIDAuMTkxMzYzLCAwLjIzMzc0NSwgMC4yNzA4MjIsIDAuMzIzODM2IiwgXAotICAgICAgICAgICIwLjA5NzkzLCAwLjEzODgzLCAwLjE3NjA4OCwgMC4yMDI1ODgsIDAuMjQ0OTc1LCAwLjI4MjA0MywgMC4zMzUwNjIiLCBcCi0gICAgICAgICAgIjAuMTA3NjcyLCAwLjE0ODYzOCwgMC4xODU4OTMsIDAuMjEyMzgzLCAwLjI1NDc2MSwgMC4yOTE4NDUsIDAuMzQ0ODUxIiwgXAotICAgICAgICAgICIwLjEyMTE4NywgMC4xNjIyNTUsIDAuMTk5NTMxLCAwLjIyNjAyMiwgMC4yNjgzOTQsIDAuMzA1NDcyLCAwLjM1ODQ0MSIsIFwKLSAgICAgICAgICAiMC4xMzIwNjQsIDAuMTczMTg2LCAwLjIxMDQ2LCAwLjIzNjk1OSwgMC4yNzkzMywgMC4zMTY0MDQsIDAuMzY5MzY0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDE0Mjg3LCAwLjA4NDI4NywgMC4xNTQyODcsIDAuMjA0Mjg3LCAwLjI4NDI4NywgMC4zNTQyODcsIDAuNDU0Mjg3Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjM5NjQsIDAuMDk1NDk3LCAwLjE2OTA2NywgMC4yMjIzNzIsIDAuMzA3ODcsIDAuMzgyMzAxLCAwLjQ4OTE1NiIsIFwKLSAgICAgICAgICAiMC4wMjM5NzMsIDAuMDk1NDc0LCAwLjE2OTAxOCwgMC4yMjI0MTcsIDAuMzA3NDk2LCAwLjM4MjMxMSwgMC40ODkxNTYiLCBcCi0gICAgICAgICAgIjAuMDIzOTE2LCAwLjA5NTQzNiwgMC4xNjkwMjQsIDAuMjIyMzY3LCAwLjMwNzg3NiwgMC4zODIzMTYsIDAuNDg5MTM3IiwgXAotICAgICAgICAgICIwLjAyMzkyNCwgMC4wOTU0ODEsIDAuMTY5MDg2LCAwLjIyMjM1OCwgMC4zMDc0MDgsIDAuMzgyMzAxLCAwLjQ4OTE0MyIsIFwKLSAgICAgICAgICAiMC4wMjQwNjUsIDAuMDk1NjI2LCAwLjE2ODkxOSwgMC4yMjIzOCwgMC4zMDc4NzcsIDAuMzgyMzU1LCAwLjQ4OTE2NSIsIFwKLSAgICAgICAgICAiMC4wMjQzNjMsIDAuMDk1NjQ0LCAwLjE2OTA3LCAwLjIyMTk2NiwgMC4zMDc4MjYsIDAuMzgyMzM0LCAwLjQ4OTcwNiIsIFwKLSAgICAgICAgICAiMC4wMjQ1MjUsIDAuMDk1NjYzLCAwLjE2OTA0OCwgMC4yMjIwNDUsIDAuMzA3MjM5LCAwLjM4MjM5NywgMC40ODk3MzciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiT0UiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHRocmVlX3N0YXRlX2Rpc2FibGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wNDcwMjUsIDAuMDU2ODMzLCAwLjA2ODkyNywgMC4wNzk3OCwgMC4wODkxNTUsIDAuMTAxOTg2LCAwLjExMjE1Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oc2NhbGFyKSB7Ci0gICAgICAgIHZhbHVlcygiMCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDIzNTMyLCAwLjAzMzI1NSwgMC4wNDUzNzUsIDAuMDU1NDY3LCAwLjA2NDA1OCwgMC4wNzU1MzksIDAuMDgzODY3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oc2NhbGFyKSB7Ci0gICAgICAgIHZhbHVlcygiMCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDE0Mjg4MywgMC4wODQyODgzLCAwLjE1NDI4OCwgMC4yMDQyODgsIDAuMjg0Mjg4LCAwLjM1NDI4OCwgMC40NTQyODgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwOTQ1LCAwLjAwOTY5NywgMC4wMDk3MjgsIDAuMDA5NzQsIDAuMDA5NzQ2LCAwLjAwOTc1LCAwLjAwOTc1NiIsIFwKLSAgICAgICAgICAiMC4wMDkxOSwgMC4wMDk0NzcsIDAuMDA5NTI1LCAwLjAwOTUzOSwgMC4wMDk1NTIsIDAuMDA5NTU5LCAwLjAwOTU2MiIsIFwKLSAgICAgICAgICAiMC4wMDkwMjksIDAuMDA5MzU3LCAwLjAwOTQyNiwgMC4wMDk0NDIsIDAuMDA5NDY5LCAwLjAwOTQ3MywgMC4wMDk0ODciLCBcCi0gICAgICAgICAgIjAuMDA4OTc4LCAwLjAwOTMxNiwgMC4wMDkzOTQsIDAuMDA5NDI3LCAwLjAwOTQ0NywgMC4wMDk0NjcsIDAuMDA5NDc3IiwgXAotICAgICAgICAgICIwLjAwODk3MywgMC4wMDkzMDgsIDAuMDA5Mzk5LCAwLjAwOTQ1LCAwLjAwOTQ2MiwgMC4wMDk0NzgsIDAuMDA5NDk1IiwgXAotICAgICAgICAgICIwLjAwOTAyNiwgMC4wMDkzNTQsIDAuMDA5NDUyLCAwLjAwOTQ5MiwgMC4wMDk1MiwgMC4wMDk1NTUsIDAuMDA5NTc3IiwgXAotICAgICAgICAgICIwLjAwOTEyOSwgMC4wMDk0NDEsIDAuMDA5NTQsIDAuMDA5NTc5LCAwLjAwOTYxLCAwLjAwOTY0LCAwLjAwOTY2MSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDE0Mjg3LCAwLjA4NDI4NywgMC4xNTQyODcsIDAuMjA0Mjg3LCAwLjI4NDI4NywgMC4zNTQyODcsIDAuNDU0Mjg3Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTcyMDgsIDAuMDE3NjUxLCAwLjAxNzcyLCAwLjAxNzc0MSwgMC4wMTc3NiwgMC4wMTc3NywgMC4wMTc3NzkiLCBcCi0gICAgICAgICAgIjAuMDE3MDI0LCAwLjAxNzQ4NCwgMC4wMTc1NywgMC4wMTc1OTcsIDAuMDE3NjIyLCAwLjAxNzYzNSwgMC4wMTc2NDciLCBcCi0gICAgICAgICAgIjAuMDE2OSwgMC4wMTczNzIsIDAuMDE3NDg0LCAwLjAxNzUyMSwgMC4wMTc1NTYsIDAuMDE3NTc1LCAwLjAxNzU5MiIsIFwKLSAgICAgICAgICAiMC4wMTY5MTIsIDAuMDE3MzIxLCAwLjAxNzQ0OSwgMC4wMTc0OTMsIDAuMDE3NTM1LCAwLjAxNzU1NywgMC4wMTc1NzgiLCBcCi0gICAgICAgICAgIjAuMDE2OTYzLCAwLjAxNzMxOSwgMC4wMTc0NDYsIDAuMDE3NDk1LCAwLjAxNzUzMywgMC4wMTc1NjMsIDAuMDE3NTg3IiwgXAotICAgICAgICAgICIwLjAxNzA4NywgMC4wMTczNzgsIDAuMDE3NDk2LCAwLjAxNzU0NSwgMC4wMTc1OTMsIDAuMDE3NjIxLCAwLjAxNzY0OSIsIFwKLSAgICAgICAgICAiMC4wMTcyNSwgMC4wMTc0MzYsIDAuMDE3NTUsIDAuMDE3NjA1LCAwLjAxNzY1NywgMC4wMTc2ODYsIDAuMDE3NzE0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiT0UiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDE0Mjg4MywgMC4wODQyODgzLCAwLjE1NDI4OCwgMC4yMDQyODgsIDAuMjg0Mjg4LCAwLjM1NDI4OCwgMC40NTQyODgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwODg4NCwgMC4wMDg4NzksIDAuMDA4ODcsIDAuMDA4ODcsIDAuMDA4ODYyLCAwLjAwODg1OCwgMC4wMDg4MyIsIFwKLSAgICAgICAgICAiMC4wMDg3NSwgMC4wMDg3NDUsIDAuMDA4NzM5LCAwLjAwODczNiwgMC4wMDg3MjcsIDAuMDA4NzI1LCAwLjAwODcwMyIsIFwKLSAgICAgICAgICAiMC4wMDg3MywgMC4wMDg3MjgsIDAuMDA4NzIxLCAwLjAwODcyLCAwLjAwODcxMiwgMC4wMDg3MDQsIDAuMDA4Njk4IiwgXAotICAgICAgICAgICIwLjAwODc4MiwgMC4wMDg3NzUsIDAuMDA4NzY4LCAwLjAwODc2NywgMC4wMDg3NTksIDAuMDA4NzQsIDAuMDA4NzMyIiwgXAotICAgICAgICAgICIwLjAwODg0MSwgMC4wMDg4MzUsIDAuMDA4ODI5LCAwLjAwODgyNywgMC4wMDg4MTcsIDAuMDA4Nzk4LCAwLjAwODc5IiwgXAotICAgICAgICAgICIwLjAwODg2OSwgMC4wMDg4NjQsIDAuMDA4ODU1LCAwLjAwODg1MSwgMC4wMDg4NDQsIDAuMDA4ODMsIDAuMDA4ODE3IiwgXAotICAgICAgICAgICIwLjAwODk2MiwgMC4wMDg5NTUsIDAuMDA4OTQ3LCAwLjAwODk0MSwgMC4wMDg5MzYsIDAuMDA4OTE5LCAwLjAwODkxMSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDE0Mjg3LCAwLjA4NDI4NywgMC4xNTQyODcsIDAuMjA0Mjg3LCAwLjI4NDI4NywgMC4zNTQyODcsIDAuNDU0Mjg3Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDkyLCAwLjAwOTIsIDAuMDA5MiwgMC4wMDkyLCAwLjAwOTIsIDAuMDA5MiwgMC4wMDkyIiwgXAotICAgICAgICAgICIwLjAwOTE2NSwgMC4wMDkxNjQsIDAuMDA5MTY1LCAwLjAwOTE2NSwgMC4wMDkxNjUsIDAuMDA5MTY1LCAwLjAwOTE2NCIsIFwKLSAgICAgICAgICAiMC4wMDkxNTQsIDAuMDA5MTU0LCAwLjAwOTE1NCwgMC4wMDkxNTQsIDAuMDA5MTU0LCAwLjAwOTE1NCwgMC4wMDkxNTMiLCBcCi0gICAgICAgICAgIjAuMDA5MTU1LCAwLjAwOTE1NiwgMC4wMDkxNTcsIDAuMDA5MTU2LCAwLjAwOTE1NywgMC4wMDkxNTcsIDAuMDA5MTU2IiwgXAotICAgICAgICAgICIwLjAwOTE3MiwgMC4wMDkxNzYsIDAuMDA5MTc3LCAwLjAwOTE3NywgMC4wMDkxNzgsIDAuMDA5MTc3LCAwLjAwOTE3OCIsIFwKLSAgICAgICAgICAiMC4wMDkyMSwgMC4wMDkyMDgsIDAuMDA5MjA4LCAwLjAwOTIwOCwgMC4wMDkyMDgsIDAuMDA5MjA4LCAwLjAwOTIwOCIsIFwKLSAgICAgICAgICAiMC4wMDkyMjEsIDAuMDA5MjIxLCAwLjAwOTIxOSwgMC4wMDkyMiwgMC4wMDkyMiwgMC4wMDkyMiwgMC4wMDkyMiIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogVEJVRlhMICoKLSAqIC0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoVEJVRlhMKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMTIyNzEzOwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE0NTY5OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTQ1NTIzOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTQ1Njk7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNDM5LCAwLjAwMDQ0NywgMC4wMDA0NDcsIDAuMDAwNDQ4LCAwLjAwMDQ0OCwgMC4wMDA0NDgsIDAuMDAwNDQ4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNDY3LCAwLjAwMDQ2MiwgMC4wMDA0NjIsIDAuMDAwNDYyLCAwLjAwMDQ2MiwgMC4wMDA0NjIsIDAuMDAwNDYyIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihPRSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxMTc4MjI7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxMTc3NzQ7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxMTc4MjI7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHNjYWxhcikgewotICAgICAgICB2YWx1ZXMoIjAiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDI5NDIsIDAuMDAyODkyLCAwLjAwMjg5MiwgMC4wMDI4OTQsIDAuMDAyOTEsIDAuMDAyOTY0LCAwLjAwMzAxIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDQ3ODk2NTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA0Nzg5NjU7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNDc4OTU3OwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMTQ5Mzk7Ci0gICAgZnVuY3Rpb24gOiAiQSI7Ci0gICAgdGhyZWVfc3RhdGUgOiAiKCFPRSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEwNDc5LCAwLjAxMjQ3OSwgMC4wMzA0NzksIDAuMDYwNDc5LCAwLjA5MDQ3OSwgMC4xNjA0NzksIDAuMjAwNDc5Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDc2MzksIDAuMTIxNzU2LCAwLjI0ODg1OCwgMC40NjA3MTYsIDAuNjcyNTI1LCAxLjE2NjU4LCAxLjQ0OTAxIiwgXAotICAgICAgICAgICIwLjExNjI1OCwgMC4xMzAzODMsIDAuMjU3NDg1LCAwLjQ2OTM2OSwgMC42ODExMDgsIDEuMTc1MywgMS40NTc2NyIsIFwKLSAgICAgICAgICAiMC4xMjY2LCAwLjE0MDcyOCwgMC4yNjc4NDIsIDAuNDc5NjMyLCAwLjY5MTQ1MSwgMS4xODU3MSwgMS40Njc5OCIsIFwKLSAgICAgICAgICAiMC4xMzU5NCwgMC4xNTAwNjksIDAuMjc3MTk3LCAwLjQ4ODk3OCwgMC43MDA3NzMsIDEuMTk0OTQsIDEuNDc3MjkiLCBcCi0gICAgICAgICAgIjAuMTQ0MjA1LCAwLjE1ODMzLCAwLjI4NTQ2OSwgMC40OTcyOTIsIDAuNzA5MDE0LCAxLjIwMzE4LCAxLjQ4NTU5IiwgXAotICAgICAgICAgICIwLjE1NTY3NiwgMC4xNjk3OTksIDAuMjk2OTIsIDAuNTA4NzE2LCAwLjcyMDQ2OCwgMS4yMTQ2MSwgMS40OTcwMSIsIFwKLSAgICAgICAgICAiMC4xNjQ0MywgMC4xNzg1OTEsIDAuMzA1NzE5LCAwLjUxNzQ3LCAwLjcyOTMwOCwgMS4yMjM0MywgMS41MDU3OCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxMDQ3OSwgMC4wMTI0NzksIDAuMDMwNDc5LCAwLjA2MDQ3OSwgMC4wOTA0NzksIDAuMTYwNDc5LCAwLjIwMDQ3OSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTUzNTUyLCAwLjE4MjMxMSwgMC40NDMzMzksIDAuODc4OTQ2LCAxLjMxNDQ4LCAyLjMyNzY4LCAyLjkwNzI5IiwgXAotICAgICAgICAgICIwLjE1MzU2MiwgMC4xODI0NzUsIDAuNDQzMzA5LCAwLjg3NzE0LCAxLjMxMjA4LCAyLjMyNzY0LCAyLjkwNzQyIiwgXAotICAgICAgICAgICIwLjE1MzU5MiwgMC4xODI0NjYsIDAuNDQzMjM0LCAwLjg3ODU4NSwgMS4zMTIwMiwgMi4zMzAyMiwgMi45MDc2NSIsIFwKLSAgICAgICAgICAiMC4xNTM2NDYsIDAuMTgyNjE0LCAwLjQ0MzI0LCAwLjg3ODU3OSwgMS4zMTI0OCwgMi4zMzAwNCwgMi45MDc0NCIsIFwKLSAgICAgICAgICAiMC4xNTQxNjYsIDAuMTgyODM4LCAwLjQ0MzI3MywgMC44Nzg2NjcsIDEuMzEyNzIsIDIuMzI3OCwgMi45MDcxNiIsIFwKLSAgICAgICAgICAiMC4xNTQ1MDcsIDAuMTgzMDY0LCAwLjQ0MzI5MSwgMC44NzcxMjgsIDEuMzEzODUsIDIuMzI5NzEsIDIuOTA3MiIsIFwKLSAgICAgICAgICAiMC4xNTQ3OTgsIDAuMTgzMzQ1LCAwLjQ0MzM1NCwgMC44Nzg0NDcsIDEuMzEzOTUsIDIuMzI5ODksIDIuOTEwMzkiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMTA0NzksIDAuMDEyNDc5LCAwLjAzMDQ3OSwgMC4wNjA0NzksIDAuMDkwNDc5LCAwLjE2MDQ3OSwgMC4yMDA0NzkiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwNDE1OCwgMC4xMTc5OTYsIDAuMjQyNDY0LCAwLjQ0OTkxMywgMC42NTcyOCwgMS4xNDEyNywgMS40MTc3NSIsIFwKLSAgICAgICAgICAiMC4xMTI0MzUsIDAuMTI2MjcxLCAwLjI1MDc1OSwgMC40NTgxNjQsIDAuNjY1NTcsIDEuMTQ5NTIsIDEuNDI2MDQiLCBcCi0gICAgICAgICAgIjAuMTIxNjI4LCAwLjEzNTQ2NiwgMC4yNTk5NzMsIDAuNDY3MzcyLCAwLjY3NDc3OCwgMS4xNTg3MywgMS40MzUyNyIsIFwKLSAgICAgICAgICAiMC4xMjk1NjcsIDAuMTQzNDA3LCAwLjI2NzkxMywgMC40NzUzMjksIDAuNjgyNzA4LCAxLjE2NjY1LCAxLjQ0MzI3IiwgXAotICAgICAgICAgICIwLjEzNjM1MywgMC4xNTAyMDMsIDAuMjc0NjksIDAuNDgyMTE5LCAwLjY4OTUxOSwgMS4xNzM2MiwgMS40NDk5OSIsIFwKLSAgICAgICAgICAiMC4xNDU2MTQsIDAuMTU5NDc1LCAwLjI4Mzk3NywgMC40OTE0MjgsIDAuNjk4ODUyLCAxLjE4MjgxLCAxLjQ1OTI5IiwgXAotICAgICAgICAgICIwLjE1MjQ2MywgMC4xNjYzNDgsIDAuMjkwODk2LCAwLjQ5ODM1LCAwLjcwNTcxOSwgMS4xODk3MiwgMS40NjYyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEwNDc5LCAwLjAxMjQ3OSwgMC4wMzA0NzksIDAuMDYwNDc5LCAwLjA5MDQ3OSwgMC4xNjA0NzksIDAuMjAwNDc5Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNDY3MzEsIDAuMTc0NTQzLCAwLjQyNDE3NCwgMC44NDA5NTUsIDEuMjU2MjcsIDIuMjMxMTgsIDIuNzgzNTciLCBcCi0gICAgICAgICAgIjAuMTQ2OTI2LCAwLjE3NDI5NiwgMC40MjQxMDksIDAuODM5ODk3LCAxLjI1NjEsIDIuMjI3MzEsIDIuNzg2ODciLCBcCi0gICAgICAgICAgIjAuMTQ2ODUzLCAwLjE3NDUzOSwgMC40MjM5OTQsIDAuODM5NzEzLCAxLjI1NTg5LCAyLjIyNzA4LCAyLjc4MjI0IiwgXAotICAgICAgICAgICIwLjE0NzIzNSwgMC4xNzQ3NjMsIDAuNDIzODk2LCAwLjg0MDg2MiwgMS4yNTY1LCAyLjIyODQsIDIuNzg3MzkiLCBcCi0gICAgICAgICAgIjAuMTQ3NDU3LCAwLjE3NDk0LCAwLjQyNDAxNywgMC44NDA5MjYsIDEuMjU4LCAyLjIzMTE3LCAyLjc4NjgzIiwgXAotICAgICAgICAgICIwLjE0Nzc0MiwgMC4xNzUyMjgsIDAuNDIzNDQsIDAuODQwMzg0LCAxLjI1NzYzLCAyLjIzMTMzLCAyLjc4NTQ5IiwgXAotICAgICAgICAgICIwLjE0ODAwMywgMC4xNzUzMDMsIDAuNDIzODM5LCAwLjg0MDE4LCAxLjI1Nzg0LCAyLjIzMTE4LCAyLjc4NjcyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIk9FIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiB0aHJlZV9zdGF0ZV9lbmFibGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEwNDc5LCAwLjAxMjQ3OSwgMC4wMzA0NzksIDAuMDYwNDc5LCAwLjA5MDQ3OSwgMC4xNjA0NzksIDAuMjAwNDc5Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDUxMjUsIDAuMTE5MjQ3LCAwLjI0NjM5NywgMC40NTgyNDIsIDAuNjcwMTEsIDEuMTY0NDcsIDEuNDQ2OTMiLCBcCi0gICAgICAgICAgIjAuMTE0MDkyLCAwLjEyODIxOCwgMC4yNTUzNjEsIDAuNDY3Mjk0LCAwLjY3OTA3MSwgMS4xNzM0NSwgMS40NTU4OCIsIFwKLSAgICAgICAgICAiMC4xMjU1ODgsIDAuMTM5NzE4LCAwLjI2Njg2MiwgMC40Nzg3MDUsIDAuNjkwNTU3LCAxLjE4NSwgMS40NjczOCIsIFwKLSAgICAgICAgICAiMC4xMzU4MDgsIDAuMTQ5OTQxLCAwLjI3NzEsIDAuNDg4OTA0LCAwLjcwMDc2NCwgMS4xOTUxMSwgMS40Nzc2MSIsIFwKLSAgICAgICAgICAiMC4xNDQ1MzIsIDAuMTU4NjY5LCAwLjI4NTc3NiwgMC40OTc2MjQsIDAuNzA5NDg2LCAxLjIwMzgzLCAxLjQ4NjMzIiwgXAotICAgICAgICAgICIwLjE1NjUxOCwgMC4xNzA2MjksIDAuMjk3NzU3LCAwLjUwOTY0OSwgMC43MjE0NDksIDEuMjE1OCwgMS40OTgyOSIsIFwKLSAgICAgICAgICAiMC4xNjU3NTMsIDAuMTc5OTI0LCAwLjMwNzAzMywgMC41MTg5MTYsIDAuNzMwODA3LCAxLjIyNTA3LCAxLjUwNzUxIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEwNDc5LCAwLjAxMjQ3OSwgMC4wMzA0NzksIDAuMDYwNDc5LCAwLjA5MDQ3OSwgMC4xNjA0NzksIDAuMjAwNDc5Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNTM4MTEsIDAuMTgyNzQ2LCAwLjQ0Mzg2LCAwLjg3ODk0MiwgMS4zMTQ1MywgMi4zMzA4LCAyLjkxNDczIiwgXAotICAgICAgICAgICIwLjE1MzgxMywgMC4xODI3MiwgMC40NDM4MTYsIDAuODc4MzksIDEuMzE0NDYsIDIuMzMzMjcsIDIuOTEwOTUiLCBcCi0gICAgICAgICAgIjAuMTUzOTQ5LCAwLjE4Mjc1OCwgMC40NDMxNDUsIDAuODc5NjI3LCAxLjMxNDI0LCAyLjMzMzA0LCAyLjkxMDc4IiwgXAotICAgICAgICAgICIwLjE1NDE3LCAwLjE4Mjk2MiwgMC40NDMxMTQsIDAuODc4NjU3LCAxLjMxNDE0LCAyLjMzMDM2LCAyLjkxMTQyIiwgXAotICAgICAgICAgICIwLjE1NDUxOCwgMC4xODMyMjEsIDAuNDQzNzYzLCAwLjg3OTM0NywgMS4zMTQyLCAyLjMzMDM1LCAyLjkxMTQzIiwgXAotICAgICAgICAgICIwLjE1NDk4OCwgMC4xODM1NDMsIDAuNDQzNDczLCAwLjg3OTcyOSwgMS4zMTQyMSwgMi4zMzA1NCwgMi45MTQyOSIsIFwKLSAgICAgICAgICAiMC4xNTUyOTgsIDAuMTgzNzc3LCAwLjQ0MzU3OCwgMC44Nzk3MjQsIDEuMzE1NjksIDIuMzMwMjQsIDIuOTExMyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxMDQ3OSwgMC4wMTI0NzksIDAuMDMwNDc5LCAwLjA2MDQ3OSwgMC4wOTA0NzksIDAuMTYwNDc5LCAwLjIwMDQ3OSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTEyOTI1LCAwLjEyNjc1NSwgMC4yNTEyNjUsIDAuNDU4NzcyLCAwLjY2NjI0OCwgMS4xNTAzNiwgMS40MjcwNiIsIFwKLSAgICAgICAgICAiMC4xMjI4MDcsIDAuMTM2NjQyLCAwLjI2MTE0NiwgMC40Njg2NzIsIDAuNjc2MTY3LCAxLjE2MDIsIDEuNDM2OSIsIFwKLSAgICAgICAgICAiMC4xMzM0OTYsIDAuMTQ3MzI2LCAwLjI3MTgzOSwgMC40NzkzMjgsIDAuNjg2ODExLCAxLjE3MDkzLCAxLjQ0NzU0IiwgXAotICAgICAgICAgICIwLjE0MjA2MSwgMC4xNTU4OTEsIDAuMjgwNDAyLCAwLjQ4Nzg5NiwgMC42OTUzMzMsIDEuMTc5NDUsIDEuNDU2MTYiLCBcCi0gICAgICAgICAgIjAuMTQ5MTgzLCAwLjE2MzAyLCAwLjI4NzUwMSwgMC40OTUwMDksIDAuNzAyNTA4LCAxLjE4NjU3LCAxLjQ2MzIyIiwgXAotICAgICAgICAgICIwLjE1OTI1NSwgMC4xNzI4ODIsIDAuMjk3MzU2LCAwLjUwNTA0MSwgMC43MTI0OTksIDEuMTk2NTMsIDEuNDczMTMiLCBcCi0gICAgICAgICAgIjAuMTY2NjM4LCAwLjE4MDQ3LCAwLjMwNTA1LCAwLjUxMjM5OSwgMC43MjAwNjQsIDEuMjA0MDgsIDEuNDgwNjQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMTA0NzksIDAuMDEyNDc5LCAwLjAzMDQ3OSwgMC4wNjA0NzksIDAuMDkwNDc5LCAwLjE2MDQ3OSwgMC4yMDA0NzkiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE0NzAxOCwgMC4xNzQ1MTcsIDAuNDI0NzY3LCAwLjg0MjM4NCwgMS4yNTk4NiwgMi4yMzAzNCwgMi43ODI2OCIsIFwKLSAgICAgICAgICAiMC4xNDcwMSwgMC4xNzQ4MDYsIDAuNDI0NzMzLCAwLjg0MjI5NSwgMS4yNTk5MywgMi4yMzM1NCwgMi43ODY0NyIsIFwKLSAgICAgICAgICAiMC4xNDcsIDAuMTc0NzcyLCAwLjQyNDcxNSwgMC44NDAyNjEsIDEuMjU3MTMsIDIuMjMwNDEsIDIuNzkwMTgiLCBcCi0gICAgICAgICAgIjAuMTQ3MDM5LCAwLjE3NDc2OCwgMC40MjQzNDEsIDAuODQxODMxLCAxLjI1ODI1LCAyLjIzMTA5LCAyLjc4NTkxIiwgXAotICAgICAgICAgICIwLjE0NzAzMiwgMC4xNzQ0MjgsIDAuNDI0MDIzLCAwLjg0MTM0NywgMS4yNTg4MywgMi4yMjk3MywgMi43OTAyMiIsIFwKLSAgICAgICAgICAiMC4xNDY5MDYsIDAuMTc0NDU3LCAwLjQyMzU4NCwgMC44NDA2OSwgMS4yNTg4LCAyLjIzMzA2LCAyLjc5MDU0IiwgXAotICAgICAgICAgICIwLjE0Njg0MSwgMC4xNzQzMjMsIDAuNDIzOTc1LCAwLjg0MDU4MiwgMS4yNTYxNCwgMi4yMzIyOCwgMi43OTAwNyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJPRSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogdGhyZWVfc3RhdGVfZGlzYWJsZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAyODgxNywgMC4wMzg0OTEsIDAuMDQ4NjgzLCAwLjA1NjU0MiwgMC4wNjMxMjEsIDAuMDcyMTM0LCAwLjA3ODQzNSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKHNjYWxhcikgewotICAgICAgICB2YWx1ZXMoIjAiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAxNzAzMSwgMC4wMjY3NDcsIDAuMDM3NTM2LCAwLjA0NTgwNCwgMC4wNTI1NzMsIDAuMDYxOTA3LCAwLjA2ODgxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oc2NhbGFyKSB7Ci0gICAgICAgIHZhbHVlcygiMCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEwNDc5LCAwLjAxMjQ3OSwgMC4wMzA0NzksIDAuMDYwNDc5LCAwLjA5MDQ3OSwgMC4xNjA0NzksIDAuMjAwNDc5Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDExNDcsIDAuMDAxMTQ3LCAwLjAwMTE0NywgMC4wMDExNDcsIDAuMDAxMTQ3LCAwLjAwMTE0NywgMC4wMDExNDgiLCBcCi0gICAgICAgICAgIjAuMDAxMDkxLCAwLjAwMTA5MSwgMC4wMDEwOTIsIDAuMDAxMDkyLCAwLjAwMTA5MiwgMC4wMDEwOTQsIDAuMDAxMDkxIiwgXAotICAgICAgICAgICIwLjAwMTA3NywgMC4wMDEwNzcsIDAuMDAxMDc5LCAwLjAwMTA4LCAwLjAwMTA4LCAwLjAwMTA3OSwgMC4wMDEwOCIsIFwKLSAgICAgICAgICAiMC4wMDEwNzcsIDAuMDAxMDc4LCAwLjAwMTA4MSwgMC4wMDEwODIsIDAuMDAxMDgyLCAwLjAwMTA4MiwgMC4wMDEwODIiLCBcCi0gICAgICAgICAgIjAuMDAxMDg3LCAwLjAwMTA4OCwgMC4wMDEwOTEsIDAuMDAxMDkzLCAwLjAwMTA5MywgMC4wMDEwOTMsIDAuMDAxMDkzIiwgXAotICAgICAgICAgICIwLjAwMTExNiwgMC4wMDExMTcsIDAuMDAxMTIxLCAwLjAwMTEyMywgMC4wMDExMjQsIDAuMDAxMTI0LCAwLjAwMTEyNCIsIFwKLSAgICAgICAgICAiMC4wMDExNDYsIDAuMDAxMTQ4LCAwLjAwMTE1MywgMC4wMDExNTQsIDAuMDAxMTU1LCAwLjAwMTE1NSwgMC4wMDExNTYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxMDQ3OSwgMC4wMTI0NzksIDAuMDMwNDc5LCAwLjA2MDQ3OSwgMC4wOTA0NzksIDAuMTYwNDc5LCAwLjIwMDQ3OSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzNjUxLCAwLjAwMzY1MSwgMC4wMDM2NTMsIDAuMDAzNjU0LCAwLjAwMzY1NCwgMC4wMDM2NTQsIDAuMDAzNjU0IiwgXAotICAgICAgICAgICIwLjAwMzYxMiwgMC4wMDM2MTMsIDAuMDAzNjE2LCAwLjAwMzYxNiwgMC4wMDM2MTcsIDAuMDAzNjE3LCAwLjAwMzYxNyIsIFwKLSAgICAgICAgICAiMC4wMDM1OTgsIDAuMDAzNTk5LCAwLjAwMzYwNCwgMC4wMDM2MDUsIDAuMDAzNjA2LCAwLjAwMzYwNiwgMC4wMDM2MDYiLCBcCi0gICAgICAgICAgIjAuMDAzNjAyLCAwLjAwMzYwNCwgMC4wMDM2MDksIDAuMDAzNjExLCAwLjAwMzYxMiwgMC4wMDM2MTIsIDAuMDAzNjEzIiwgXAotICAgICAgICAgICIwLjAwMzYxMSwgMC4wMDM2MTIsIDAuMDAzNjE5LCAwLjAwMzYyMSwgMC4wMDM2MjIsIDAuMDAzNjIzLCAwLjAwMzYyMyIsIFwKLSAgICAgICAgICAiMC4wMDM2MzMsIDAuMDAzNjM1LCAwLjAwMzY0MiwgMC4wMDM2NDUsIDAuMDAzNjQ2LCAwLjAwMzY0NywgMC4wMDM2NDciLCBcCi0gICAgICAgICAgIjAuMDAzNjU5LCAwLjAwMzY2MSwgMC4wMDM2NjksIDAuMDAzNjcyLCAwLjAwMzY3NCwgMC4wMDM2NzUsIDAuMDAzNjc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiT0UiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEwNDc5LCAwLjAxMjQ3OSwgMC4wMzA0NzksIDAuMDYwNDc5LCAwLjA5MDQ3OSwgMC4xNjA0NzksIDAuMjAwNDc5Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDEwOTEsIDAuMDAxMDkxLCAwLjAwMTA3NSwgMC4wMDEwMzUsIDAuMDAwOTkzLCAwLjAwMDg5NywgMC4wMDA4NzciLCBcCi0gICAgICAgICAgIjAuMDAxMDM1LCAwLjAwMTAzMywgMC4wMDEwMDMsIDAuMDAwOTgyLCAwLjAwMDkzOSwgMC4wMDA4NzIsIDAuMDAwODE1IiwgXAotICAgICAgICAgICIwLjAwMTAzLCAwLjAwMTAzNSwgMC4wMDEwMDYsIDAuMDAwOTgxLCAwLjAwMDkzNiwgMC4wMDA4NzQsIDAuMDAwODE3IiwgXAotICAgICAgICAgICIwLjAwMTAyOCwgMC4wMDEwMzMsIDAuMDAxMDA5LCAwLjAwMDk3NiwgMC4wMDA5MzMsIDAuMDAwODcyLCAwLjAwMDgyNSIsIFwKLSAgICAgICAgICAiMC4wMDEwNTQsIDAuMDAxMDU4LCAwLjAwMTAyNywgMC4wMDA5OTQsIDAuMDAwOTU3LCAwLjAwMDg5NCwgMC4wMDA4NDgiLCBcCi0gICAgICAgICAgIjAuMDAxMTA1LCAwLjAwMTEwMSwgMC4wMDEwODMsIDAuMDAxMDQ5LCAwLjAwMTAwMywgMC4wMDA5NDIsIDAuMDAwODkiLCBcCi0gICAgICAgICAgIjAuMDAxMTM3LCAwLjAwMTEzNywgMC4wMDExMTgsIDAuMDAxMDksIDAuMDAxMDQ4LCAwLjAwMDk3OCwgMC4wMDA5MjgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxMDQ3OSwgMC4wMTI0NzksIDAuMDMwNDc5LCAwLjA2MDQ3OSwgMC4wOTA0NzksIDAuMTYwNDc5LCAwLjIwMDQ3OSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxNjM1LCAwLjAwMTYzNSwgMC4wMDE2MzUsIDAuMDAxNjM1LCAwLjAwMTYzNSwgMC4wMDE2MzUsIDAuMDAxNjM1IiwgXAotICAgICAgICAgICIwLjAwMTYwMSwgMC4wMDE2MDEsIDAuMDAxNjAxLCAwLjAwMTYwMSwgMC4wMDE2MDEsIDAuMDAxNjAxLCAwLjAwMTYwMSIsIFwKLSAgICAgICAgICAiMC4wMDE2MDEsIDAuMDAxNjAxLCAwLjAwMTYwMSwgMC4wMDE2MDEsIDAuMDAxNjAxLCAwLjAwMTYwMSwgMC4wMDE2MDEiLCBcCi0gICAgICAgICAgIjAuMDAxNjA1LCAwLjAwMTYwNSwgMC4wMDE2MDUsIDAuMDAxNjA1LCAwLjAwMTYwNSwgMC4wMDE2MDUsIDAuMDAxNjA1IiwgXAotICAgICAgICAgICIwLjAwMTYxOSwgMC4wMDE2MTksIDAuMDAxNjE5LCAwLjAwMTYxOSwgMC4wMDE2MTksIDAuMDAxNjE5LCAwLjAwMTYxOSIsIFwKLSAgICAgICAgICAiMC4wMDE2NDUsIDAuMDAxNjQxLCAwLjAwMTY0MSwgMC4wMDE2NDUsIDAuMDAxNjQ1LCAwLjAwMTY0MSwgMC4wMDE2NDEiLCBcCi0gICAgICAgICAgIjAuMDAxNjcyLCAwLjAwMTY3MSwgMC4wMDE2NjMsIDAuMDAxNjcyLCAwLjAwMTY2NCwgMC4wMDE2NzIsIDAuMDAxNjcyIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IFRJRUxPICoKLSAqIC0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChUSUVMTykgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjAxNTI0MjE7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZTUzsKLSAgICBmdW5jdGlvbiA6ICIwIjsKLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IFRMQVROQ0FYMTIgKgotICogLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoVExBVE5DQVgxMikgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjg2NTA1MjsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBjbG9ja19nYXRpbmdfaW50ZWdyYXRlZF9jZWxsIDogImxhdGNoX3Bvc2VkZ2UiOwotICBzdGF0ZXRhYmxlKCIgQ0sgIEUgIiwgIiBFSU5UICIpIHsKLSAgICAgdGFibGUgOiAiICBMICBMIDogLSA6IEwgLCBcCi0gICAgICAgICAgICAgICAgTCAgSCA6IC0gOiBIICwgXAotICAgICAgICAgICAgICAgIEggIC0gOiAtIDogTiAiOwotICB9Ci0gIHBpbihFSU5UKSB7Ci0gICAgZGlyZWN0aW9uIDogaW50ZXJuYWw7Ci0gICAgaW50ZXJuYWxfbm9kZSA6ICJFSU5UIjsKLSAgfQotICBwaW4oQ0spICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDU2NTgzOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDU2NTczOTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA1NjU4MzsKLSAgICBjbG9ja19nYXRlX2Nsb2NrX3BpbiA6IHRydWU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzOTE5LCAwLjAwMzg5MiwgMC4wMDM4NzcsIDAuMDAzODc4LCAwLjAwMzg4NywgMC4wMDM5MTEsIDAuMDAzOTMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDQ5ODIsIDAuMDA0OTU4LCAwLjAwNDk0NywgMC4wMDQ5NSwgMC4wMDQ5NTcsIDAuMDA0OTg0LCAwLjAwNTAwMSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUUiOwotICAgICAgc2RmX2NvbmQgOiAiRSA9PSAxJ2IwIjsKLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjEzMDc3MiwgMC4xNDA2ODEsIDAuMTUyODUzLCAwLjE2MzgwMSwgMC4xNzI5MTUsIDAuMTg2MTg2LCAwLjE5NjMxIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihFKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA1NzgxMzE7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNTc3MTE5OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDU3ODEzMTsKLSAgICBjbG9ja19nYXRlX2VuYWJsZV9waW4gOiB0cnVlOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNDI2NiwgMC4wMDQyNDQsIDAuMDA0MjMzLCAwLjAwNDIyNCwgMC4wMDQyMjIsIDAuMDA0MjI5LCAwLjAwNDI0MiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNDE1OCwgMC4wMDQxNDUsIDAuMDA0MTM3LCAwLjAwNDEzMSwgMC4wMDQxMzEsIDAuMDA0MTI5LCAwLjAwNDEzMSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAzMTI1LCAtMC4wMiwgLTAuMDEzNzUsIC0wLjAwNzUsIC0wLjAwNzUsIDAuMDAyNSwgMC4wMDUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDg3NSwgMCIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMTUsIC0wLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjA2MTI1LCAtMC4wNTYyNSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMjc1LCAtMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDczNzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjAzMzc1LCAtMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDgzNzUsIC0wLjA3ODc1LCAtMC4wNjYyNSwgLTAuMDYsIC0wLjA1Mzc1LCAtMC4wNSwgLTAuMDQxMjUiLCBcCi0gICAgICAgICAgIi0wLjA5MjUsIC0wLjA4NzUsIC0wLjA3NSwgLTAuMDY4NzUsIC0wLjA2MjUsIC0wLjA1ODc1LCAtMC4wNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAsIDAuMDExMjUsIDAuMDIzNzUsIDAuMDM2MjUsIDAuMDQ4NzUsIDAuMDU4NzUsIDAuMDczNzUiLCBcCi0gICAgICAgICAgIi0wLjAwNSwgMC4wMDYyNSwgMC4wMTg3NSwgMC4wMzEyNSwgMC4wMzc1LCAwLjA1Mzc1LCAwLjA2MjUiLCBcCi0gICAgICAgICAgIi0wLjAxNzUsIC0wLjAwNjI1LCAwLjAwNjI1LCAwLjAxODc1LCAwLjAzMTI1LCAwLjA0MTI1LCAwLjA1IiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDEyNSwgMCwgMC4wMTI1LCAwLjAxODc1LCAwLjAzNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAyNSwgLTAuMDEyNSwgMCwgMC4wMTI1LCAwLjAyMjUsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDQ2MjUsIC0wLjAzNSwgLTAuMDIyNSwgLTAuMDEsIDAuMDAyNSwgMC4wMTI1LCAwLjAyNzUiLCBcCi0gICAgICAgICAgIi0wLjA1NSwgLTAuMDQzNzUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAuMDAzNzUsIDAuMDE4NzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM3NSwgMC4wMjYyNSwgMC4wMiwgMC4wMTM3NSwgMC4wMTM3NSwgMC4wMDM3NSwgMC4wMDEyNSIsIFwKLSAgICAgICAgICAiMC4wNDg3NSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMTg3NSwgMC4wMTUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMDU1LCAwLjA1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDIxMjUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMDY3NSwgMC4wNjI1LCAwLjA1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDMzNzUsIDAuMDI1IiwgXAotICAgICAgICAgICIwLjA4LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDUsIDAuMDQsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiMC4wOSwgMC4wODUsIDAuMDcyNSwgMC4wNjYyNSwgMC4wNiwgMC4wNTYyNSwgMC4wNDc1IiwgXAotICAgICAgICAgICIwLjA5ODc1LCAwLjA5Mzc1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjUsIDAuMDU2MjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDYyNSwgLTAuMDA1LCAtMC4wMTc1LCAtMC4wMywgLTAuMDQyNSwgLTAuMDUyNSwgLTAuMDY3NSIsIFwKLSAgICAgICAgICAiMC4wMTEyNSwgMCwgLTAuMDEyNSwgLTAuMDI1LCAtMC4wMzEyNSwgLTAuMDQ3NSwgLTAuMDU2MjUiLCBcCi0gICAgICAgICAgIjAuMDIzNzUsIDAuMDEyNSwgMCwgLTAuMDEyNSwgLTAuMDI1LCAtMC4wMzUsIC0wLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjAzLCAwLjAxODc1LCAwLjAwNjI1LCAtMC4wMDYyNSwgLTAuMDEyNSwgLTAuMDI4NzUsIC0wLjAzNzUiLCBcCi0gICAgICAgICAgIjAuMDQyNSwgMC4wMzEyNSwgMC4wMTg3NSwgMC4wMDYyNSwgLTAuMDA2MjUsIC0wLjAxNjI1LCAtMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4wNTI1LCAwLjA0MTI1LCAwLjAyODc1LCAwLjAxNjI1LCAwLjAwMzc1LCAtMC4wMDYyNSwgLTAuMDIxMjUiLCBcCi0gICAgICAgICAgIjAuMDYxMjUsIDAuMDUsIDAuMDM3NSwgMC4wMjUsIDAuMDEyNSwgMC4wMDI1LCAtMC4wMTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihFQ0spICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMy4wNTE3MTsKLSAgICBjbG9ja19nYXRlX291dF9waW4gOiB0cnVlOwotICAgIHN0YXRlX2Z1bmN0aW9uIDogIihDSyBFSU5UKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEyMDU4MiwgMC4xMjQxNiwgMC4xNDAyMzUsIDAuMTUyMTU1LCAwLjE2NzAzMiwgMC4xOTU3NDQsIDAuMjEzNDU2IiwgXAotICAgICAgICAgICIwLjEzMDc2LCAwLjEzNDM3NiwgMC4xNTA0ODgsIDAuMTYyMzUzLCAwLjE3NzI0NiwgMC4yMDU5NDYsIDAuMjIzNjg1IiwgXAotICAgICAgICAgICIwLjE0MzQ2MywgMC4xNDcwNjEsIDAuMTYzMDk5LCAwLjE3NTA0LCAwLjE4OTkwNCwgMC4yMTg2MjgsIDAuMjM2MzM5IiwgXAotICAgICAgICAgICIwLjE1NTExNywgMC4xNTg3NDUsIDAuMTc0ODMyLCAwLjE4NjY5OSwgMC4yMDE2MTQsIDAuMjMwMzI3LCAwLjI0ODA0MyIsIFwKLSAgICAgICAgICAiMC4xNjU0NjIsIDAuMTY5MDk3LCAwLjE4NTEwMywgMC4xOTcwMzQsIDAuMjExOTMzLCAwLjI0MDYzMywgMC4yNTgzNzIiLCBcCi0gICAgICAgICAgIjAuMTc5NzM1LCAwLjE4MzM0NCwgMC4xOTkzNSwgMC4yMTEzMTksIDAuMjI2MTk2LCAwLjI1NDkwOSwgMC4yNzI2NjMiLCBcCi0gICAgICAgICAgIjAuMTkwNjQyLCAwLjE5NDI0NywgMC4yMTAyMzgsIDAuMjIyMTU0LCAwLjIzNzAxNCwgMC4yNjU2NzMsIDAuMjgzNDA2Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyNDk1NywgMC4wMjk1MSwgMC4wNTMxMzYsIDAuMDczOCwgMC4xMDE2MjYsIDAuMTU4MzkxLCAwLjE5NDI1OCIsIFwKLSAgICAgICAgICAiMC4wMjUwNjIsIDAuMDI5NTMzLCAwLjA1MzIwNCwgMC4wNzM3NzIsIDAuMTAxNTkxLCAwLjE1ODQwMywgMC4xOTQzMjIiLCBcCi0gICAgICAgICAgIjAuMDI0OTUzLCAwLjAyOTQ2NCwgMC4wNTMxNTEsIDAuMDczNzksIDAuMTAxNjI0LCAwLjE1ODM5NiwgMC4xOTQyMzYiLCBcCi0gICAgICAgICAgIjAuMDI1MDYyLCAwLjAyOTUyLCAwLjA1MzEzOCwgMC4wNzM3NiwgMC4xMDE2MzMsIDAuMTU4Mzc4LCAwLjE5NDIzMSIsIFwKLSAgICAgICAgICAiMC4wMjQ5NzcsIDAuMDI5NTcxLCAwLjA1MzE0MiwgMC4wNzM3ODcsIDAuMTAxNjQ5LCAwLjE1ODQsIDAuMTk0MzIiLCBcCi0gICAgICAgICAgIjAuMDI0OTU1LCAwLjAyOTQ2MywgMC4wNTMxMTQsIDAuMDczNzA5LCAwLjEwMTYzNCwgMC4xNTgzOTcsIDAuMTk0MzExIiwgXAotICAgICAgICAgICIwLjAyNTE0LCAwLjAyOTU3MywgMC4wNTMyNjcsIDAuMDczODYxLCAwLjEwMTY5OSwgMC4xNTg0MzgsIDAuMTk0MzQiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTA2MTA0LCAwLjEwOTE1LCAwLjEyMzQ4NCwgMC4xMzQ5MDcsIDAuMTQ5NjkxLCAwLjE3ODc0MiwgMC4xOTY4NDUiLCBcCi0gICAgICAgICAgIjAuMTE2MDIyLCAwLjExOTA0MSwgMC4xMzMzNTUsIDAuMTQ0Nzc1LCAwLjE1OTU2MiwgMC4xODg2MiwgMC4yMDY3MTkiLCBcCi0gICAgICAgICAgIjAuMTI4MTc2LCAwLjEzMTIyNSwgMC4xNDU1MTksIDAuMTU2OTYxLCAwLjE3MTcyOSwgMC4yMDA3ODksIDAuMjE4ODkxIiwgXAotICAgICAgICAgICIwLjEzOTE3NCwgMC4xNDIxNTUsIDAuMTU2NDkyLCAwLjE2NzkxOSwgMC4xODI3MDIsIDAuMjExNzYsIDAuMjI5ODU4IiwgXAotICAgICAgICAgICIwLjE0ODM1OCwgMC4xNTEzNjMsIDAuMTY1Njc5LCAwLjE3NzEwMSwgMC4xOTE4ODcsIDAuMjIwOTQzLCAwLjIzOTA0MiIsIFwKLSAgICAgICAgICAiMC4xNjE2NDcsIDAuMTY0NjMyLCAwLjE3ODk2NCwgMC4xOTAzNjcsIDAuMjA1MTU0LCAwLjIzNDIxLCAwLjI1MjMxIiwgXAotICAgICAgICAgICIwLjE3MTg3OSwgMC4xNzQ4OTEsIDAuMTg5MTg1LCAwLjIwMDYyLCAwLjIxNTM5OCwgMC4yNDQ0NTgsIDAuMjYyNTU4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxOTUyNCwgMC4wMjM3MDQsIDAuMDQ2OTc3LCAwLjA2NzczNCwgMC4wOTYwOTksIDAuMTUzODY0LCAwLjE5MDE0NSIsIFwKLSAgICAgICAgICAiMC4wMTk0NDIsIDAuMDIzNzQxLCAwLjA0Njk3NywgMC4wNjc3NDYsIDAuMDk2MDY0LCAwLjE1MzY0LCAwLjE5MDA5OCIsIFwKLSAgICAgICAgICAiMC4wMTk0ODQsIDAuMDIzNjksIDAuMDQ2OTU1LCAwLjA2Nzc0MiwgMC4wOTYwNTcsIDAuMTUzODM4LCAwLjE5MDEzMyIsIFwKLSAgICAgICAgICAiMC4wMTk0NiwgMC4wMjM2NzgsIDAuMDQ2OTc2LCAwLjA2Nzc0LCAwLjA5NjEyNCwgMC4xNTM4NjksIDAuMTkwMTEyIiwgXAotICAgICAgICAgICIwLjAxOTQ1LCAwLjAyMzc0OCwgMC4wNDY5NzksIDAuMDY3NzQxLCAwLjA5NjEyMiwgMC4xNTM0NzksIDAuMTkwMDk0IiwgXAotICAgICAgICAgICIwLjAxOTQyOCwgMC4wMjM1NzcsIDAuMDQ2OTI2LCAwLjA2NzcwOCwgMC4wOTYwNzgsIDAuMTUzNjMsIDAuMTkwMDk3IiwgXAotICAgICAgICAgICIwLjAxOTU3OCwgMC4wMjM3MzgsIDAuMDQ2OTc1LCAwLjA2Nzc2MywgMC4wOTYyMDksIDAuMTUzOTI1LCAwLjE5MDE2NCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTc1NzUsIDAuMDE3NjIsIDAuMDE3ODg1LCAwLjAxODAyNSwgMC4wMTgxMzksIDAuMDE4MjU0LCAwLjAxODI5MiIsIFwKLSAgICAgICAgICAiMC4wMTc1MzYsIDAuMDE3NTkyLCAwLjAxNzg1NCwgMC4wMTc5OTUsIDAuMDE4MTA5LCAwLjAxODIyNCwgMC4wMTgyNjMiLCBcCi0gICAgICAgICAgIjAuMDE3NTM3LCAwLjAxNzU4LCAwLjAxNzg0NiwgMC4wMTc5ODUsIDAuMDE4MDk5LCAwLjAxODIxNCwgMC4wMTgyNTQiLCBcCi0gICAgICAgICAgIjAuMDE3NTIxLCAwLjAxNzU3OSwgMC4wMTc4NDQsIDAuMDE3OTg0LCAwLjAxODA5OCwgMC4wMTgyMTQsIDAuMDE4MjUzIiwgXAotICAgICAgICAgICIwLjAxNzUzOSwgMC4wMTc1ODksIDAuMDE3ODUzLCAwLjAxNzk5MywgMC4wMTgxMDgsIDAuMDE4MjI0LCAwLjAxODI1OCIsIFwKLSAgICAgICAgICAiMC4wMTc1MzksIDAuMDE3NTk3LCAwLjAxNzg2MiwgMC4wMTgwMDUsIDAuMDE4MTIsIDAuMDE4MjQzLCAwLjAxODI4MyIsIFwKLSAgICAgICAgICAiMC4wMTc1NjMsIDAuMDE3NjIyLCAwLjAxNzg4OSwgMC4wMTgwMzIsIDAuMDE4MTQ4LCAwLjAxODI2NSwgMC4wMTgzMDUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjIzODYsIDAuMDIyNDk2LCAwLjAyMjg4NiwgMC4wMjMwNTEsIDAuMDIzMTczLCAwLjAyMzI4NSwgMC4wMjMzMTkiLCBcCi0gICAgICAgICAgIjAuMDIyMzgyLCAwLjAyMjQ3NCwgMC4wMjI4NjEsIDAuMDIzMDI4LCAwLjAyMzE1LCAwLjAyMzI2MiwgMC4wMjMyOTciLCBcCi0gICAgICAgICAgIjAuMDIyMzY5LCAwLjAyMjQ3NiwgMC4wMjI4NTYsIDAuMDIzMDIyLCAwLjAyMzE0NCwgMC4wMjMyNTYsIDAuMDIzMjkxIiwgXAotICAgICAgICAgICIwLjAyMjM2NywgMC4wMjI0NTksIDAuMDIyODQ4LCAwLjAyMzAxNSwgMC4wMjMxMzgsIDAuMDIzMjUxLCAwLjAyMzI4NiIsIFwKLSAgICAgICAgICAiMC4wMjIzNjEsIDAuMDIyNDUzLCAwLjAyMjgzOCwgMC4wMjMwMDYsIDAuMDIzMTI4LCAwLjAyMzI0MSwgMC4wMjMyNzYiLCBcCi0gICAgICAgICAgIjAuMDIyMzUsIDAuMDIyNDYxLCAwLjAyMjg1MywgMC4wMjMwMjEsIDAuMDIzMTQ2LCAwLjAyMzI2MiwgMC4wMjMyOTkiLCBcCi0gICAgICAgICAgIjAuMDIyNDM3LCAwLjAyMjUwNywgMC4wMjI4ODMsIDAuMDIzMDQ3LCAwLjAyMzE4NCwgMC4wMjMyODksIDAuMDIzMzI2Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBUTEFUTkNBWDIgKgotICogLS0tLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChUTEFUTkNBWDIpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4yNDkxODQ7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgY2xvY2tfZ2F0aW5nX2ludGVncmF0ZWRfY2VsbCA6ICJsYXRjaF9wb3NlZGdlIjsKLSAgc3RhdGV0YWJsZSgiIENLICBFICIsICIgRUlOVCAiKSB7Ci0gICAgIHRhYmxlIDogIiAgTCAgTCA6IC0gOiBMICwgXAotICAgICAgICAgICAgICAgIEwgIEggOiAtIDogSCAsIFwKLSAgICAgICAgICAgICAgICBIICAtIDogLSA6IE4gIjsKLSAgfQotICBwaW4oRUlOVCkgewotICAgIGRpcmVjdGlvbiA6IGludGVybmFsOwotICAgIGludGVybmFsX25vZGUgOiAiRUlOVCI7Ci0gIH0KLSAgcGluKENLKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA1OTcxMzQ7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNTk2ODk4OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDU5NzEzNDsKLSAgICBjbG9ja19nYXRlX2Nsb2NrX3BpbiA6IHRydWU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyMzMxLCAwLjAwMjMwMSwgMC4wMDIyODgsIDAuMDAyMjk0LCAwLjAwMjMsIDAuMDAyMzIzLCAwLjAwMjM0NyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzA0MiwgMC4wMDMwMTUsIDAuMDAzMDA1LCAwLjAwMzAxMSwgMC4wMDMwMjQsIDAuMDAzMDQ2LCAwLjAwMzA2OCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUUiOwotICAgICAgc2RmX2NvbmQgOiAiRSA9PSAxJ2IwIjsKLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjA5ODUxOCwgMC4xMDgzNSwgMC4xMTk4ODYsIDAuMTI5MzU5LCAwLjEzNzczOCwgMC4xNDg3NTgsIDAuMTU3MTE2Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihFKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA1NzU5NjI7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNTc0Njg0OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDU3NTk2MjsKLSAgICBjbG9ja19nYXRlX2VuYWJsZV9waW4gOiB0cnVlOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjQwOCwgMC4wMDIzODYsIDAuMDAyMzc2LCAwLjAwMjM3LCAwLjAwMjM3NCwgMC4wMDIzNzIsIDAuMDAyMzc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyODI5LCAwLjAwMjgxNSwgMC4wMDI4MDgsIDAuMDAyODA1LCAwLjAwMjgwNywgMC4wMDI4MDgsIDAuMDAyODEyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDI1LCAtMC4wMiwgLTAuMDEzNzUsIC0wLjAwNzUsIC0wLjAwNzUsIDAuMDAyNSwgMC4wMDUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA4NzUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDI1LCAtMC4wMjEyNSwgLTAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMjc1LCAtMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjA2NzUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjA0Mzc1LCAtMC4wMzM3NSwgLTAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjA3NzUsIC0wLjA3MjUsIC0wLjA2NjI1LCAtMC4wNiwgLTAuMDUzNzUsIC0wLjA1LCAtMC4wNDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDg2MjUsIC0wLjA4MTI1LCAtMC4wNzUsIC0wLjA2ODc1LCAtMC4wNjI1LCAtMC4wNTg3NSwgLTAuMDUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMDYyNSwgMC4wMDUsIDAuMDE3NSwgMC4wMjM3NSwgMC4wMzYyNSwgMC4wNDYyNSwgMC4wNTUiLCBcCi0gICAgICAgICAgIi0wLjAxNzUsIC0wLjAwNjI1LCAwLjAwNjI1LCAwLjAxODc1LCAwLjAyNSwgMC4wMzUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTI1LCAwLCAwLjAwNjI1LCAwLjAxODc1LCAwLjAyODc1LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMjUsIC0wLjAxMjUsIDAsIDAuMDA2MjUsIDAuMDE2MjUsIDAuMDI1IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIDAsIDAuMDEsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjA1MjUsIC0wLjA0MTI1LCAtMC4wMjg3NSwgLTAuMDIyNSwgLTAuMDEsIDAsIDAuMDA4NzUiLCBcCi0gICAgICAgICAgIi0wLjA2MTI1LCAtMC4wNSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAxODc1LCAtMC4wMDg3NSwgMCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzEyNSwgMC4wMjYyNSwgMC4wMiwgMC4wMTM3NSwgMC4wMTM3NSwgMC4wMDM3NSwgMC4wMDEyNSIsIFwKLSAgICAgICAgICAiMC4wNDI1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDI1LCAwLjAxODc1LCAwLjAxNSwgMC4wMTI1IiwgXAotICAgICAgICAgICIwLjA1NSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAzMTI1LCAwLjAyNzUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMDYxMjUsIDAuMDU2MjUsIDAuMDUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzM3NSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4wNzM3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1LCAwLjA1LCAwLjA0LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIjAuMDgzNzUsIDAuMDc4NzUsIDAuMDcyNSwgMC4wNjYyNSwgMC4wNiwgMC4wNTYyNSwgMC4wNDc1IiwgXAotICAgICAgICAgICIwLjA5MjUsIDAuMDg3NSwgMC4wODEyNSwgMC4wNzUsIDAuMDY4NzUsIDAuMDY1LCAwLjA1NjI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEyNSwgMC4wMDEyNSwgLTAuMDExMjUsIC0wLjAxNzUsIC0wLjAzLCAtMC4wNCwgLTAuMDQ4NzUiLCBcCi0gICAgICAgICAgIjAuMDIzNzUsIDAuMDEyNSwgMCwgLTAuMDEyNSwgLTAuMDE4NzUsIC0wLjAyODc1LCAtMC4wMzc1IiwgXAotICAgICAgICAgICIwLjAzLCAwLjAxODc1LCAwLjAwNjI1LCAwLCAtMC4wMTI1LCAtMC4wMjI1LCAtMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4wNDI1LCAwLjAzMTI1LCAwLjAxODc1LCAwLjAwNjI1LCAwLCAtMC4wMSwgLTAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMDQ4NzUsIDAuMDM3NSwgMC4wMjUsIDAuMDE4NzUsIDAuMDA2MjUsIC0wLjAwMzc1LCAtMC4wMTI1IiwgXAotICAgICAgICAgICIwLjA1ODc1LCAwLjA0NzUsIDAuMDM1LCAwLjAyODc1LCAwLjAxNjI1LCAwLjAwNjI1LCAtMC4wMDI1IiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDU2MjUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMjUsIDAuMDE1LCAwLjAwNjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihFQ0spICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC41MjE5Mzg7Ci0gICAgY2xvY2tfZ2F0ZV9vdXRfcGluIDogdHJ1ZTsKLSAgICBzdGF0ZV9mdW5jdGlvbiA6ICIoQ0sgRUlOVCkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTYyNDYsIDAuMjIxMDQyLCAwLjMwMzE5NiwgMC40MDU5ODYsIDAuNTA4NjIyLCAwLjYxMTI3NCwgMC43MTQwMzkiLCBcCi0gICAgICAgICAgIjAuMTI2NDQ4LCAwLjIzMTIzMiwgMC4zMTMzOTksIDAuNDE2MTQ1LCAwLjUxODgxMSwgMC42MjE1OTYsIDAuNzI0MjExIiwgXAotICAgICAgICAgICIwLjEzODU1NCwgMC4yNDMzMjEsIDAuMzI1NDg3LCAwLjQyODIzOCwgMC41MzA4OTEsIDAuNjMzNzA3LCAwLjczNjI5NiIsIFwKLSAgICAgICAgICAiMC4xNDg5NDgsIDAuMjUzNzc3LCAwLjMzNTkyNSwgMC40Mzg3NDEsIDAuNTQxMzI3LCAwLjY0NDAwNCwgMC43NDY3NzQiLCBcCi0gICAgICAgICAgIjAuMTU3Nzk2LCAwLjI2MjYwNCwgMC4zNDQ3NjUsIDAuNDQ3NTI2LCAwLjU1MDE2NiwgMC42NTI4OTgsIDAuNzU1NTc4IiwgXAotICAgICAgICAgICIwLjE3MDEzOCwgMC4yNzQ4MzIsIDAuMzU2OTkxLCAwLjQ1OTc0NiwgMC41NjIzODcsIDAuNjY1MTMsIDAuNzY3ODEiLCBcCi0gICAgICAgICAgIjAuMTc5Njk1LCAwLjI4NDU0MywgMC4zNjY3MDMsIDAuNDY5NDQ2LCAwLjU3MjA4MSwgMC42NzQ4MTYsIDAuNzc3NTA3Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1Nzk5NCwgMC4yNjUxODQsIDAuNDM1MDgxLCAwLjY0NzM3NCwgMC44NjEzMjcsIDEuMDc2MDIsIDEuMjg5ODQiLCBcCi0gICAgICAgICAgIjAuMDU3OTcxLCAwLjI2NDk4NywgMC40MzUwOTcsIDAuNjQ4NzI2LCAwLjg2MTIwNSwgMS4wNzQwNiwgMS4yODk3NiIsIFwKLSAgICAgICAgICAiMC4wNTc5NSwgMC4yNjQ5OTIsIDAuNDM1MTA3LCAwLjY0ODc0LCAwLjg2MTEyMSwgMS4wNzM4OSwgMS4yODk3NiIsIFwKLSAgICAgICAgICAiMC4wNTc5MiwgMC4yNjQ5NDQsIDAuNDM1MDc3LCAwLjY0NzIzNywgMC44NjIzNjgsIDEuMDc1MzgsIDEuMjg5ODEiLCBcCi0gICAgICAgICAgIjAuMDU3OTksIDAuMjY0OTg4LCAwLjQzNTA2NSwgMC42NDc0MTIsIDAuODYxNzkxLCAxLjA3NDI3LCAxLjI4OTc0IiwgXAotICAgICAgICAgICIwLjA1ODA3MSwgMC4yNjUwMDksIDAuNDM1MDAzLCAwLjY0ODY0NCwgMC44NjE3NjcsIDEuMDc0MzEsIDEuMjg5NTkiLCBcCi0gICAgICAgICAgIjAuMDU3OTAzLCAwLjI2NDg3NSwgMC40MzQ2NDIsIDAuNjQ3NDE0LCAwLjg2MTcyMSwgMS4wNzQ0LCAxLjI4OTU1Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5ODUxOCwgMC4yMDIxNTYsIDAuMjg0ODY3LCAwLjM4ODIyMiwgMC40OTE2MDgsIDAuNTk1MDAyLCAwLjY5ODM2NiIsIFwKLSAgICAgICAgICAiMC4xMDgzNSwgMC4yMTE5OTksIDAuMjk0NjkyLCAwLjM5ODA1OCwgMC41MDE0NDUsIDAuNjA0ODI1LCAwLjcwODIyMiIsIFwKLSAgICAgICAgICAiMC4xMTk4ODYsIDAuMjIzNTI3LCAwLjMwNjIyMiwgMC40MDk1ODcsIDAuNTEyOTc1LCAwLjYxNjM3NywgMC43MTk3NDUiLCBcCi0gICAgICAgICAgIjAuMTI5MzU5LCAwLjIzMzAwNCwgMC4zMTU2OTcsIDAuNDE5MDYyLCAwLjUyMjQ0NywgMC42MjU4MjUsIDAuNzI5MjIzIiwgXAotICAgICAgICAgICIwLjEzNzczOCwgMC4yNDEzNzksIDAuMzI0MDYsIDAuNDI3NDQsIDAuNTMwODE2LCAwLjYzNDIwNiwgMC43Mzc2MDMiLCBcCi0gICAgICAgICAgIjAuMTQ4NzU4LCAwLjI1MjQxMiwgMC4zMzUxMTgsIDAuNDM4NDY5LCAwLjU0MTg1OSwgMC42NDUyNTcsIDAuNzQ4NjEyIiwgXAotICAgICAgICAgICIwLjE1NzExNiwgMC4yNjA3NzgsIDAuMzQzNDI3LCAwLjQ0Njg0NCwgMC41NTAyMjQsIDAuNjUzNTkxLCAwLjc1Njk4MSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTExMTYsIDAuMjU3NjM0LCAwLjQyNTgxNCwgMC42MzQzOTYsIDAuODQ1NzM1LCAxLjA1NDUsIDEuMjY1NTEiLCBcCi0gICAgICAgICAgIjAuMDUxMTMxLCAwLjI1NzY4NCwgMC40MjU4MiwgMC42MzQzODMsIDAuODQ1NjcsIDEuMDU1NSwgMS4yNjU2MyIsIFwKLSAgICAgICAgICAiMC4wNTExMzIsIDAuMjU3ODY3LCAwLjQyNTc5MiwgMC42MzQzNCwgMC44NDU2ODcsIDEuMDU0NDUsIDEuMjY1MTgiLCBcCi0gICAgICAgICAgIjAuMDUxMTM1LCAwLjI1NzY2OSwgMC40MjQ2ODMsIDAuNjM0NDY2LCAwLjg0MzQzOSwgMS4wNTQ2MiwgMS4yNjUzMiIsIFwKLSAgICAgICAgICAiMC4wNTExMzUsIDAuMjU3ODY1LCAwLjQyNTc5NCwgMC42MzQzNjksIDAuODQ1NjQ4LCAxLjA1MzM2LCAxLjI2NTU1IiwgXAotICAgICAgICAgICIwLjA1MTExLCAwLjI1ODEyOSwgMC40MjQ5OCwgMC42MzQ1NjUsIDAuODQzNzU1LCAxLjA1NTY0LCAxLjI2NDQ2IiwgXAotICAgICAgICAgICIwLjA1MTI2LCAwLjI1ODEwOSwgMC40MjUwMTQsIDAuNjM1NjIxLCAwLjg0NTQ3NSwgMS4wNTU2NCwgMS4yNjU0MSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQ4MTMsIDAuMDA0ODQsIDAuMDA0ODM1LCAwLjAwNDgzLCAwLjAwNDgyNywgMC4wMDQ4MjUsIDAuMDA0ODI0IiwgXAotICAgICAgICAgICIwLjAwNDc4MSwgMC4wMDQ4MDksIDAuMDA0ODA0LCAwLjAwNDc5OSwgMC4wMDQ3OTcsIDAuMDA0Nzk0LCAwLjAwNDc5NCIsIFwKLSAgICAgICAgICAiMC4wMDQ3NzIsIDAuMDA0ODAxLCAwLjAwNDc5NiwgMC4wMDQ3ODksIDAuMDA0Nzg4LCAwLjAwNDc4NiwgMC4wMDQ3ODciLCBcCi0gICAgICAgICAgIjAuMDA0NzgzLCAwLjAwNDgxMywgMC4wMDQ4MDgsIDAuMDA0ODAzLCAwLjAwNDgsIDAuMDA0Nzk4LCAwLjAwNDc5NiIsIFwKLSAgICAgICAgICAiMC4wMDQ3OTYsIDAuMDA0ODI4LCAwLjAwNDgyMiwgMC4wMDQ4MTgsIDAuMDA0ODE0LCAwLjAwNDgxMiwgMC4wMDQ4MSIsIFwKLSAgICAgICAgICAiMC4wMDQ4MDQsIDAuMDA0ODM5LCAwLjAwNDgzNywgMC4wMDQ4MjYsIDAuMDA0ODI2LCAwLjAwNDgyNiwgMC4wMDQ4MjYiLCBcCi0gICAgICAgICAgIjAuMDA0ODI2LCAwLjAwNDg2LCAwLjAwNDg1NSwgMC4wMDQ4NSwgMC4wMDQ4NDcsIDAuMDA0ODQ1LCAwLjAwNDg0MiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwODM3NSwgMC4wMDg0MSwgMC4wMDg0MDksIDAuMDA4NDA3LCAwLjAwODQwNiwgMC4wMDg0MDYsIDAuMDA4NDA1IiwgXAotICAgICAgICAgICIwLjAwODM0OSwgMC4wMDgzODQsIDAuMDA4MzgyLCAwLjAwODM4MSwgMC4wMDgzOCwgMC4wMDgzNzksIDAuMDA4Mzc5IiwgXAotICAgICAgICAgICIwLjAwODM0NCwgMC4wMDgzODEsIDAuMDA4Mzc5LCAwLjAwODM3OCwgMC4wMDgzNzcsIDAuMDA4Mzc2LCAwLjAwODM3NSIsIFwKLSAgICAgICAgICAiMC4wMDgzNDMsIDAuMDA4MzgsIDAuMDA4Mzc5LCAwLjAwODM3NywgMC4wMDgzNzYsIDAuMDA4Mzc1LCAwLjAwODM3NCIsIFwKLSAgICAgICAgICAiMC4wMDgzNTIsIDAuMDA4MzksIDAuMDA4Mzg5LCAwLjAwODM4NywgMC4wMDgzODYsIDAuMDA4Mzg0LCAwLjAwODM4NCIsIFwKLSAgICAgICAgICAiMC4wMDgzNjEsIDAuMDA4NDAyLCAwLjAwODQwMSwgMC4wMDgzOTksIDAuMDA4Mzk3LCAwLjAwODM5NiwgMC4wMDgzOTUiLCBcCi0gICAgICAgICAgIjAuMDA4Mzg1LCAwLjAwODQyNCwgMC4wMDg0MjIsIDAuMDA4NDIsIDAuMDA4NDE5LCAwLjAwODQxNiwgMC4wMDg0MTciKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBUTEFUTkNBWDIwICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKFRMQVROQ0FYMjApIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMS4zOTcwNDsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBjbG9ja19nYXRpbmdfaW50ZWdyYXRlZF9jZWxsIDogImxhdGNoX3Bvc2VkZ2UiOwotICBzdGF0ZXRhYmxlKCIgQ0sgIEUgIiwgIiBFSU5UICIpIHsKLSAgICAgdGFibGUgOiAiICBMICBMIDogLSA6IEwgLCBcCi0gICAgICAgICAgICAgICAgTCAgSCA6IC0gOiBIICwgXAotICAgICAgICAgICAgICAgIEggIC0gOiAtIDogTiAiOwotICB9Ci0gIHBpbihFSU5UKSB7Ci0gICAgZGlyZWN0aW9uIDogaW50ZXJuYWw7Ci0gICAgaW50ZXJuYWxfbm9kZSA6ICJFSU5UIjsKLSAgfQotICBwaW4oQ0spICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY5MjU3MTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2OTIzMDU7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjkyNTcxOwotICAgIGNsb2NrX2dhdGVfY2xvY2tfcGluIDogdHJ1ZTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDUzMjEsIDAuMDA1MjkxLCAwLjAwNTI3OSwgMC4wMDUyODEsIDAuMDA1Mjg3LCAwLjAwNTMxMSwgMC4wMDUzMzQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDU0NzcsIDAuMDA1NDUyLCAwLjAwNTQ0MiwgMC4wMDU0NDMsIDAuMDA1NDQ4LCAwLjAwNTQ3MSwgMC4wMDU0ODkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFFIjsKLSAgICAgIHNkZl9jb25kIDogIkUgPT0gMSdiMCI7Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4xNTIzNjYsIDAuMTYyMTE5LCAwLjE3NDA2NywgMC4xODQxOTcsIDAuMTkzMSwgMC4yMDU0NTEsIDAuMjE0NjQiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEUpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY5NDExNTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2OTI1NTE7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjk0MTE1OwotICAgIGNsb2NrX2dhdGVfZW5hYmxlX3BpbiA6IHRydWU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA2Nzk0LCAwLjAwNjc3MywgMC4wMDY3NTksIDAuMDA2NzQ3LCAwLjAwNjc0MywgMC4wMDY3NSwgMC4wMDY3NzciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDU3NzksIDAuMDA1NzY1LCAwLjAwNTc1MywgMC4wMDU3NDksIDAuMDA1NzQzLCAwLjAwNTc1MiwgMC4wMDU3NDgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMzc1LCAtMC4wMzI1LCAtMC4wMiwgLTAuMDIsIC0wLjAxMzc1LCAtMC4wMSwgLTAuMDAxMjUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDE1LCAtMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAyNzUsIC0wLjAxODc1IiwgXAotICAgICAgICAgICItMC4wNjc1LCAtMC4wNjI1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjA0Mzc1LCAtMC4wMzM3NSwgLTAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjA4LCAtMC4wNjg3NSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNDYyNSwgLTAuMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDksIC0wLjA4NSwgLTAuMDc4NzUsIC0wLjA3MjUsIC0wLjA2NjI1LCAtMC4wNTYyNSwgLTAuMDUzNzUiLCBcCi0gICAgICAgICAgIi0wLjEwNSwgLTAuMDkzNzUsIC0wLjA4NzUsIC0wLjA4MTI1LCAtMC4wNzUsIC0wLjA3MTI1LCAtMC4wNjI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMCwgMC4wMTEyNSwgMC4wMjM3NSwgMC4wMywgMC4wNDI1LCAwLjA1MjUsIDAuMDY3NSIsIFwKLSAgICAgICAgICAiLTAuMDExMjUsIDAsIDAuMDEyNSwgMC4wMjUsIDAuMDMxMjUsIDAuMDQ3NSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiLTAuMDE3NSwgLTAuMDEyNSwgMCwgMC4wMTI1LCAwLjAyNSwgMC4wMzUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAuMDA2MjUsIDAuMDEyNSwgMC4wMjg3NSwgMC4wMzc1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDI1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMC4wMDYyNSwgMC4wMTYyNSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDUyNSwgLTAuMDQxMjUsIC0wLjAyODc1LCAtMC4wMTYyNSwgLTAuMDAzNzUsIDAuMDA2MjUsIDAuMDE1IiwgXAotICAgICAgICAgICItMC4wNjEyNSwgLTAuMDUsIC0wLjAzNzUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAwMjUsIDAuMDA2MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQzNzUsIDAuMDM4NzUsIDAuMDI2MjUsIDAuMDI2MjUsIDAuMDIsIDAuMDE2MjUsIDAuMDA3NSIsIFwKLSAgICAgICAgICAiMC4wNTUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMjUsIDAuMDIxMjUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMDYxMjUsIDAuMDU2MjUsIDAuMDUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzM3NSwgMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMDczNzUsIDAuMDY4NzUsIDAuMDU2MjUsIDAuMDUsIDAuMDUsIDAuMDQsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiMC4wODYyNSwgMC4wNzUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNTI1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjA5NjI1LCAwLjA5MTI1LCAwLjA4NSwgMC4wNzg3NSwgMC4wNzI1LCAwLjA2MjUsIDAuMDYiLCBcCi0gICAgICAgICAgIjAuMTExMjUsIDAuMSwgMC4wOTM3NSwgMC4wODc1LCAwLjA4MTI1LCAwLjA3NzUsIDAuMDY4NzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDYyNSwgLTAuMDA1LCAtMC4wMTc1LCAtMC4wMjM3NSwgLTAuMDM2MjUsIC0wLjA0NjI1LCAtMC4wNjEyNSIsIFwKLSAgICAgICAgICAiMC4wMTc1LCAwLjAwNjI1LCAtMC4wMDYyNSwgLTAuMDE4NzUsIC0wLjAyNSwgLTAuMDQxMjUsIC0wLjA1IiwgXAotICAgICAgICAgICIwLjAyMzc1LCAwLjAxODc1LCAwLjAwNjI1LCAtMC4wMDYyNSwgLTAuMDE4NzUsIC0wLjAyODc1LCAtMC4wMzc1IiwgXAotICAgICAgICAgICIwLjAzNjI1LCAwLjAyNSwgMC4wMTI1LCAwLCAtMC4wMDYyNSwgLTAuMDIyNSwgLTAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMDQyNSwgMC4wMzEyNSwgMC4wMTg3NSwgMC4wMTI1LCAwLCAtMC4wMSwgLTAuMDI1IiwgXAotICAgICAgICAgICIwLjA1ODc1LCAwLjA0NzUsIDAuMDM1LCAwLjAyMjUsIDAuMDEsIDAsIC0wLjAwODc1IiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDU2MjUsIDAuMDQzNzUsIDAuMDMxMjUsIDAuMDI1LCAwLjAwODc1LCAwIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihFQ0spICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogNS40ODU2NzsKLSAgICBjbG9ja19nYXRlX291dF9waW4gOiB0cnVlOwotICAgIHN0YXRlX2Z1bmN0aW9uIDogIihDSyBFSU5UKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEzNjg2MiwgMC4xNTM2OTQsIDAuMTY0MTMxLCAwLjE3NTk4NSwgMC4xODcxNjcsIDAuMTk3OTcyLCAwLjIwODY1NCIsIFwKLSAgICAgICAgICAiMC4xNDcwNDYsIDAuMTYzODY2LCAwLjE3NDI5OCwgMC4xODYxNDksIDAuMTk3MzIsIDAuMjA4MTU5LCAwLjIxODgwNyIsIFwKLSAgICAgICAgICAiMC4xNTk1MzUsIDAuMTc2Mzc1LCAwLjE4NjkxMywgMC4xOTg2ODEsIDAuMjA5ODU2LCAwLjIyMDY5NCwgMC4yMzEzNCIsIFwKLSAgICAgICAgICAiMC4xNzA2NjMsIDAuMTg3NTc0LCAwLjE5NzkwOSwgMC4yMDk4MTQsIDAuMjIwOTE0LCAwLjIzMTgyMiwgMC4yNDI1MDQiLCBcCi0gICAgICAgICAgIjAuMTgwMzc4LCAwLjE5NzI0MiwgMC4yMDc2NDgsIDAuMjE5NDc4LCAwLjIzMDY1NSwgMC4yNDE0OTQsIDAuMjUyMTQ0IiwgXAotICAgICAgICAgICIwLjE5MzQyMSwgMC4yMTAyNjQsIDAuMjIwNjkzLCAwLjIzMjU0NCwgMC4yNDM3MTYsIDAuMjU0NTU3LCAwLjI2NTIwNCIsIFwKLSAgICAgICAgICAiMC4yMDM2OTQsIDAuMjIwNTc0LCAwLjIzMDk5NywgMC4yNDI4MTgsIDAuMjUzOTk4LCAwLjI2NDgzNiwgMC4yNzU1MjUiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDI0Mzk1LCAwLjA0NjA0NSwgMC4wNjIyMDIsIDAuMDgyMzk1LCAwLjEwMjYxOCwgMC4xMjMxODIsIDAuMTQzODQyIiwgXAotICAgICAgICAgICIwLjAyNDQ5MiwgMC4wNDYwNTQsIDAuMDYyMiwgMC4wODIzOTEsIDAuMTAyNjA3LCAwLjEyMzE4NSwgMC4xNDM4MzkiLCBcCi0gICAgICAgICAgIjAuMDI0NDczLCAwLjA0NjAzMSwgMC4wNjIyMTIsIDAuMDgyMzM2LCAwLjEwMjYwOSwgMC4xMjMxODgsIDAuMTQzODQzIiwgXAotICAgICAgICAgICIwLjAyNDMwMiwgMC4wNDYwNDQsIDAuMDYyMTgyLCAwLjA4MjM2MywgMC4xMDI2MzksIDAuMTIzMTk1LCAwLjE0Mzg1IiwgXAotICAgICAgICAgICIwLjAyNDQ2NywgMC4wNDYxMTgsIDAuMDYyMTY1LCAwLjA4MjM3NywgMC4xMDI2NDgsIDAuMTIzMTgzLCAwLjE0MzgzNSIsIFwKLSAgICAgICAgICAiMC4wMjQ0OTgsIDAuMDQ2MDU0LCAwLjA2MjE5OSwgMC4wODIzODIsIDAuMTAyNjA5LCAwLjEyMzE4NywgMC4xNDM4NDEiLCBcCi0gICAgICAgICAgIjAuMDI0MjU4LCAwLjA0NTg5OSwgMC4wNjIxMTcsIDAuMDgyMjY5LCAwLjEwMjYxMSwgMC4xMjMxNTEsIDAuMTQzODE3Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEyMTQ1MiwgMC4xMzYwNzEsIDAuMTQ1Nzc1LCAwLjE1NzE5MywgMC4xNjgyNTYsIDAuMTc5MTUxLCAwLjE4OTk0NyIsIFwKLSAgICAgICAgICAiMC4xMzExNjksIDAuMTQ1ODU0LCAwLjE1NTUzNSwgMC4xNjY5NDEsIDAuMTc4MDEzLCAwLjE4ODksIDAuMTk5Njk4IiwgXAotICAgICAgICAgICIwLjE0MzA4NiwgMC4xNTc3ODMsIDAuMTY3NDU0LCAwLjE3ODg3NywgMC4xODk5MzIsIDAuMjAwODMzLCAwLjIxMTYzMyIsIFwKLSAgICAgICAgICAiMC4xNTMyMzEsIDAuMTY3OTQsIDAuMTc3NjEsIDAuMTg5MDI3LCAwLjIwMDEsIDAuMjEwOTg3LCAwLjIyMTc4NyIsIFwKLSAgICAgICAgICAiMC4xNjIyMTksIDAuMTc2ODczLCAwLjE4NjU0MiwgMC4xOTc5NjUsIDAuMjA5MDI0LCAwLjIxOTkyMiwgMC4yMzA3MTkiLCBcCi0gICAgICAgICAgIjAuMTc0NTI3LCAwLjE4OTE2OCwgMC4xOTg4NTgsIDAuMjEwMjYxLCAwLjIyMTM1MSwgMC4yMzIyNTUsIDAuMjQzMDUxIiwgXAotICAgICAgICAgICIwLjE4MzY3NSwgMC4xOTgyNDUsIDAuMjA3OTI0LCAwLjIxOTMyNSwgMC4yMzAzOTcsIDAuMjQxMjg2LCAwLjI1MjA4NiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTkzNSwgMC4wNDAxNTgsIDAuMDU2MzQyLCAwLjA3Njg1MSwgMC4wOTc3MDgsIDAuMTE4NzUyLCAwLjEzOTkzNCIsIFwKLSAgICAgICAgICAiMC4wMTk0NCwgMC4wNDAxODUsIDAuMDU2MzI0LCAwLjA3Njg1MiwgMC4wOTc3MDcsIDAuMTE4NzUyLCAwLjE0MDAxMyIsIFwKLSAgICAgICAgICAiMC4wMTkzOTYsIDAuMDQwMTg0LCAwLjA1NjMyMSwgMC4wNzY4NTMsIDAuMDk3NzE1LCAwLjExODc1OCwgMC4xMzk4MTEiLCBcCi0gICAgICAgICAgIjAuMDE5NDIzLCAwLjA0MDE4MSwgMC4wNTYzMjksIDAuMDc2ODUyLCAwLjA5NzY2MiwgMC4xMTg3NjEsIDAuMTM5ODAxIiwgXAotICAgICAgICAgICIwLjAxOTM4MywgMC4wNDAxODMsIDAuMDU2MzI5LCAwLjA3Njg1MiwgMC4wOTc3MjQsIDAuMTE4NzcsIDAuMTM5ODMzIiwgXAotICAgICAgICAgICIwLjAxOTMwMiwgMC4wNDAxNiwgMC4wNTYzNDUsIDAuMDc2ODQyLCAwLjA5NzcwMSwgMC4xMTg3NDgsIDAuMTQwMDE3IiwgXAotICAgICAgICAgICIwLjAxOTI4NSwgMC4wNDAzNzIsIDAuMDU2NDgyLCAwLjA3Njk4NCwgMC4wOTc4MDYsIDAuMTE4ODI2LCAwLjE0MDA1NCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzAxNzcsIDAuMDMwNDI3LCAwLjAzMDYyNywgMC4wMzA4MDMsIDAuMDMwOTI2LCAwLjAzMTAxNiwgMC4wMzEwODQiLCBcCi0gICAgICAgICAgIjAuMDMwMTM2LCAwLjAzMDM5NiwgMC4wMzA1OTcsIDAuMDMwNzczLCAwLjAzMDksIDAuMDMwOTg2LCAwLjAzMTA1NCIsIFwKLSAgICAgICAgICAiMC4wMzAxMTcsIDAuMDMwMzg1LCAwLjAzMDU4NCwgMC4wMzA3NiwgMC4wMzA4OTEsIDAuMDMwOTc1LCAwLjAzMTA0MyIsIFwKLSAgICAgICAgICAiMC4wMzAxMTIsIDAuMDMwMzg4LCAwLjAzMDU4NCwgMC4wMzA3NjIsIDAuMDMwODk0LCAwLjAzMDk3NywgMC4wMzEwNTMiLCBcCi0gICAgICAgICAgIjAuMDMwMTQ0LCAwLjAzMDQwNCwgMC4wMzA2MDMsIDAuMDMwNzc4LCAwLjAzMDg4MiwgMC4wMzA5OTMsIDAuMDMxMDYxIiwgXAotICAgICAgICAgICIwLjAzMDE1MywgMC4wMzA0MTYsIDAuMDMwNjE1LCAwLjAzMDc5LCAwLjAzMDkxNCwgMC4wMzEwMDQsIDAuMDMxMDcyIiwgXAotICAgICAgICAgICIwLjAzMDExMiwgMC4wMzA0MjIsIDAuMDMwNjI2LCAwLjAzMDgwNywgMC4wMzA5MzIsIDAuMDMxMDI0LCAwLjAzMTA5MyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzNDk3NSwgMC4wMzU1MDgsIDAuMDM1ODAyLCAwLjAzNjA0LCAwLjAzNjE5OCwgMC4wMzYzMDYsIDAuMDM2Mzg5IiwgXAotICAgICAgICAgICIwLjAzNDkyNywgMC4wMzU0ODIsIDAuMDM1Nzc4LCAwLjAzNjAxMywgMC4wMzYxNzEsIDAuMDM2MjgsIDAuMDM2MzYyIiwgXAotICAgICAgICAgICIwLjAzNDkyOCwgMC4wMzU0NzQsIDAuMDM1NzcsIDAuMDM2MDA3LCAwLjAzNjE2NiwgMC4wMzYyNzQsIDAuMDM2MzU2IiwgXAotICAgICAgICAgICIwLjAzNDkwMywgMC4wMzU0NzUsIDAuMDM1NzY5LCAwLjAzNjAwNiwgMC4wMzYxNjIsIDAuMDM2MjcyLCAwLjAzNjM1MyIsIFwKLSAgICAgICAgICAiMC4wMzQ5NDYsIDAuMDM1NDc4LCAwLjAzNTc3MywgMC4wMzYwMDksIDAuMDM2MTY4LCAwLjAzNjI3NiwgMC4wMzYzNTgiLCBcCi0gICAgICAgICAgIjAuMDM0ODgyLCAwLjAzNTQzMSwgMC4wMzU3MjksIDAuMDM1OTc0LCAwLjAzNjEzNCwgMC4wMzYyNDgsIDAuMDM2MzMxIiwgXAotICAgICAgICAgICIwLjAzNDkyMywgMC4wMzU0ODgsIDAuMDM1Nzk5LCAwLjAzNjA1LCAwLjAzNjIxMywgMC4wMzYzMjksIDAuMDM2NDExIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBUTEFUTkNBWDYgKgotICogLS0tLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChUTEFUTkNBWDYpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC41MDYzNjI7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgY2xvY2tfZ2F0aW5nX2ludGVncmF0ZWRfY2VsbCA6ICJsYXRjaF9wb3NlZGdlIjsKLSAgc3RhdGV0YWJsZSgiIENLICBFICIsICIgRUlOVCAiKSB7Ci0gICAgIHRhYmxlIDogIiAgTCAgTCA6IC0gOiBMICwgXAotICAgICAgICAgICAgICAgIEwgIEggOiAtIDogSCAsIFwKLSAgICAgICAgICAgICAgICBIICAtIDogLSA6IE4gIjsKLSAgfQotICBwaW4oRUlOVCkgewotICAgIGRpcmVjdGlvbiA6IGludGVybmFsOwotICAgIGludGVybmFsX25vZGUgOiAiRUlOVCI7Ci0gIH0KLSAgcGluKENLKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2MTUwOTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MTQ5MjM7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjE1MDk7Ci0gICAgY2xvY2tfZ2F0ZV9jbG9ja19waW4gOiB0cnVlOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzMwMywgMC4wMDMyNzQsIDAuMDAzMjYsIDAuMDAzMjYzLCAwLjAwMzI3MSwgMC4wMDMyOTMsIDAuMDAzMzEzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzOTA4LCAwLjAwMzg4MiwgMC4wMDM4NjksIDAuMDAzODc0LCAwLjAwMzg4MiwgMC4wMDM5MDcsIDAuMDAzOTI4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRSI7Ci0gICAgICBzZGZfY29uZCA6ICJFID09IDEnYjAiOwotICAgICAgZmFsbF9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMTE3MzQzLCAwLjEyNzIxMSwgMC4xMzg5MTksIDAuMTQ4Nzc2LCAwLjE1NzY0NCwgMC4xNjg4NjksIDAuMTc3ODE0Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihFKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2MjU4NjY7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjI0NDc2OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDYyNTg2NjsKLSAgICBjbG9ja19nYXRlX2VuYWJsZV9waW4gOiB0cnVlOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzU3OCwgMC4wMDM1NTYsIDAuMDAzNTQ0LCAwLjAwMzUzNSwgMC4wMDM1MzUsIDAuMDAzNTM5LCAwLjAwMzU0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzODM4LCAwLjAwMzgyNSwgMC4wMDM4MTcsIDAuMDAzODEyLCAwLjAwMzgwOSwgMC4wMDM4MSwgMC4wMDM4MTMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMzEyNSwgLTAuMDI2MjUsIC0wLjAyLCAtMC4wMTM3NSwgLTAuMDA3NSwgLTAuMDAzNzUsIC0wLjAwMTI1IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDE4NzUsIC0wLjAwODc1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDIxMjUsIC0wLjAxODc1IiwgXAotICAgICAgICAgICItMC4wNjEyNSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDMzNzUsIC0wLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDczNzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjA0LCAtMC4wMzc1IiwgXAotICAgICAgICAgICItMC4wODM3NSwgLTAuMDc4NzUsIC0wLjA3MjUsIC0wLjA2NjI1LCAtMC4wNiwgLTAuMDUsIC0wLjA0NzUiLCBcCi0gICAgICAgICAgIi0wLjA5ODc1LCAtMC4wODc1LCAtMC4wODEyNSwgLTAuMDc1LCAtMC4wNjg3NSwgLTAuMDY1LCAtMC4wNTYyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAwNjI1LCAwLjAwNSwgMC4wMTc1LCAwLjAzLCAwLjAzNjI1LCAwLjA0NjI1LCAwLjA1NSIsIFwKLSAgICAgICAgICAiLTAuMDE3NSwgLTAuMDA2MjUsIDAuMDA2MjUsIDAuMDE4NzUsIDAuMDI1LCAwLjA0MTI1LCAwLjA1IiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDEyNSwgMCwgMC4wMDYyNSwgMC4wMTg3NSwgMC4wMjg3NSwgMC4wMzc1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDI1LCAtMC4wMTI1LCAwLCAwLjAwNjI1LCAwLjAyMjUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAsIDAuMDEsIDAuMDI1IiwgXAotICAgICAgICAgICItMC4wNTI1LCAtMC4wNDEyNSwgLTAuMDI4NzUsIC0wLjAyMjUsIC0wLjAxLCAwLCAwLjAwODc1IiwgXAotICAgICAgICAgICItMC4wNjEyNSwgLTAuMDUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgLTAuMDA4NzUsIDAiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM3NSwgMC4wMzI1LCAwLjAyNjI1LCAwLjAyLCAwLjAxMzc1LCAwLjAxLCAwLjAwNzUiLCBcCi0gICAgICAgICAgIjAuMDQ4NzUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMjUsIDAuMDI1LCAwLjAxNSwgMC4wMTI1IiwgXAotICAgICAgICAgICIwLjA2MTI1LCAwLjA1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDI3NSwgMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMDY3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1LCAwLjA0Mzc1LCAwLjA0LCAwLjAzMTI1IiwgXAotICAgICAgICAgICIwLjA4LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDUsIDAuMDQ2MjUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMDksIDAuMDg1LCAwLjA3ODc1LCAwLjA3MjUsIDAuMDY2MjUsIDAuMDU2MjUsIDAuMDUzNzUiLCBcCi0gICAgICAgICAgIjAuMTA1LCAwLjA5Mzc1LCAwLjA4NzUsIDAuMDgxMjUsIDAuMDc1LCAwLjA3MTI1LCAwLjA2MjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTI1LCAwLjAwMTI1LCAtMC4wMTEyNSwgLTAuMDIzNzUsIC0wLjAzLCAtMC4wNCwgLTAuMDQ4NzUiLCBcCi0gICAgICAgICAgIjAuMDIzNzUsIDAuMDEyNSwgMCwgLTAuMDEyNSwgLTAuMDE4NzUsIC0wLjAzNSwgLTAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMDMsIDAuMDE4NzUsIDAuMDA2MjUsIDAsIC0wLjAxMjUsIC0wLjAyMjUsIC0wLjAzMTI1IiwgXAotICAgICAgICAgICIwLjA0MjUsIDAuMDMxMjUsIDAuMDE4NzUsIDAuMDA2MjUsIDAsIC0wLjAxNjI1LCAtMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMDQ4NzUsIDAuMDM3NSwgMC4wMjUsIDAuMDEyNSwgMC4wMDYyNSwgLTAuMDAzNzUsIC0wLjAxODc1IiwgXAotICAgICAgICAgICIwLjA1ODc1LCAwLjA0NzUsIDAuMDM1LCAwLjAyODc1LCAwLjAxNjI1LCAwLjAwNjI1LCAtMC4wMDI1IiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDU2MjUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMjUsIDAuMDE1LCAwLjAwNjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihFQ0spICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMS41NDcxMTsKLSAgICBjbG9ja19nYXRlX291dF9waW4gOiB0cnVlOwotICAgIHN0YXRlX2Z1bmN0aW9uIDogIihDSyBFSU5UKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTA2NjM1LCAwLjE1ODYwOSwgMC4yMDY2NzcsIDAuMjQwOTM4LCAwLjI5NTY5NCwgMC4zNDM2MjcsIDAuNDEyMDc1IiwgXAotICAgICAgICAgICIwLjExNjg0NywgMC4xNjg4NywgMC4yMTY5MjMsIDAuMjUxMTgyLCAwLjMwNTk5MSwgMC4zNTM4NiwgMC40MjIzIiwgXAotICAgICAgICAgICIwLjEyOTE1NywgMC4xODExMzQsIDAuMjI5MiwgMC4yNjM0NTYsIDAuMzE4MjE2LCAwLjM2NjE2NSwgMC40MzQ1OSIsIFwKLSAgICAgICAgICAiMC4xMzk5MzgsIDAuMTkyMDE4LCAwLjI0MDA4NiwgMC4yNzQyNTYsIDAuMzI5MTAxLCAwLjM3NzA0MSwgMC40NDU0ODEiLCBcCi0gICAgICAgICAgIjAuMTQ5MTQ4LCAwLjIwMTE2NywgMC4yNDkyMjMsIDAuMjgzNDYzLCAwLjMzODIyOSwgMC4zODYyMjIsIDAuNDU0NjA0IiwgXAotICAgICAgICAgICIwLjE2MjM0NywgMC4yMTQyOTMsIDAuMjYyMzQyLCAwLjI5NjU4OSwgMC4zNTEzNTksIDAuMzk5MzUyLCAwLjQ2NzYxNCIsIFwKLSAgICAgICAgICAiMC4xNzIzNCwgMC4yMjQzMzIsIDAuMjcyNDAxLCAwLjMwNjYzOSwgMC4zNjE0MTIsIDAuNDA5Mzg4LCAwLjQ3Nzc4MiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyOTcsIDAuMTIzNTg4LCAwLjIyMDczNiwgMC4yOTExNTcsIDAuNDAzMzI5LCAwLjUwMTExMywgMC42NDM2NTYiLCBcCi0gICAgICAgICAgIjAuMDI5NjMsIDAuMTIzNTA3LCAwLjIyMDcwOSwgMC4yOTEwODIsIDAuNDAyOTk0LCAwLjUwMjYzNSwgMC42NDM5NTEiLCBcCi0gICAgICAgICAgIjAuMDI5Njk5LCAwLjEyMzU4NiwgMC4yMjA3MzIsIDAuMjkxMTM2LCAwLjQwMzMwOCwgMC41MDEwNzIsIDAuNjQzNjMyIiwgXAotICAgICAgICAgICIwLjAyOTY0NCwgMC4xMjM1ODYsIDAuMjIwNzMxLCAwLjI5MTAwNiwgMC40MDMzMDIsIDAuNTAxMTMzLCAwLjY0MzYzNyIsIFwKLSAgICAgICAgICAiMC4wMjk2MzgsIDAuMTIzNjA3LCAwLjIyMDY5OSwgMC4yOTEwMTEsIDAuNDAzMTY3LCAwLjUwMTU2OSwgMC42NDM5ODMiLCBcCi0gICAgICAgICAgIjAuMDI5NjM4LCAwLjEyMzYxMSwgMC4yMjA4NjIsIDAuMjkxMDIxLCAwLjQwMzc3LCAwLjUwMTUzOSwgMC42NDE5MTQiLCBcCi0gICAgICAgICAgIjAuMDI5NjM2LCAwLjEyMzY2NywgMC4yMjA4OTcsIDAuMjkwOTkzLCAwLjQwMzI1NywgMC41MDE2MjYsIDAuNjQzODciKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTM4MTksIDAuMTQ1MzQ3LCAwLjE5NTA1NCwgMC4yMzA1NjQsIDAuMjg3Mzk4LCAwLjMzNzEyOSwgMC40MDgxODUiLCBcCi0gICAgICAgICAgIjAuMTAzNjYxLCAwLjE1NTI2NSwgMC4yMDQ5NzUsIDAuMjQwNDg4LCAwLjI5NzMxMywgMC4zNDcwNDksIDAuNDE4MTIxIiwgXAotICAgICAgICAgICIwLjExNTM0MywgMC4xNjY5NDQsIDAuMjE2NjU1LCAwLjI1MjE2OCwgMC4zMDg5OTQsIDAuMzU4NzMyLCAwLjQyOTgwMiIsIFwKLSAgICAgICAgICAiMC4xMjUyNjYsIDAuMTc2NzkzLCAwLjIyNjUsIDAuMjYyMDEsIDAuMzE4ODQ0LCAwLjM2ODU3NiwgMC40Mzk2NDYiLCBcCi0gICAgICAgICAgIjAuMTM0MTAxLCAwLjE4NTY5MiwgMC4yMzU0MDQsIDAuMjcwOTE1LCAwLjMyNzc0OSwgMC4zNzc0OCwgMC40NDg1NTgiLCBcCi0gICAgICAgICAgIjAuMTQ1MzQxLCAwLjE5Njk2NSwgMC4yNDY2NzQsIDAuMjgyMTg3LCAwLjMzOTAxMywgMC4zODg2OTMsIDAuNDU5NzYyIiwgXAotICAgICAgICAgICIwLjE1NDM2OCwgMC4yMDU5MTMsIDAuMjU1NjI2LCAwLjI5MTEzNSwgMC4zNDc5NjUsIDAuMzk3Njk4LCAwLjQ2ODc3MSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyNDkxNCwgMC4xMjE5NDYsIDAuMjIxNjM2LCAwLjI5MzA5NCwgMC40MDc1NjQsIDAuNTA3OTI5LCAwLjY1MTE5NSIsIFwKLSAgICAgICAgICAiMC4wMjQ4OTYsIDAuMTIxOTQ5LCAwLjIyMTMyOSwgMC4yOTMxMDMsIDAuNDA3NTU5LCAwLjUwNzkyLCAwLjY1MTIxNSIsIFwKLSAgICAgICAgICAiMC4wMjQ4OTYsIDAuMTIxOTc0LCAwLjIyMTI5NSwgMC4yOTMxMDYsIDAuNDA3NTYzLCAwLjUwNzk0OSwgMC42NTExMSIsIFwKLSAgICAgICAgICAiMC4wMjQ5MTksIDAuMTIxOTYxLCAwLjIyMTY0LCAwLjI5MzA3OCwgMC40MDc1NDksIDAuNTA3OTI3LCAwLjY1MTE4NCIsIFwKLSAgICAgICAgICAiMC4wMjQ5MTIsIDAuMTIxODEsIDAuMjIxMjk5LCAwLjI5MzAzMywgMC40MDc1NzMsIDAuNTA3NzgyLCAwLjY1MTA3MSIsIFwKLSAgICAgICAgICAiMC4wMjQ5MDgsIDAuMTIxODU2LCAwLjIyMTM1LCAwLjI5Mjc2MiwgMC40MDcwODUsIDAuNTA3NzcyLCAwLjY0OTg5NCIsIFwKLSAgICAgICAgICAiMC4wMjQ5MDYsIDAuMTIxOTQ1LCAwLjIyMTQ3OCwgMC4yOTI5MjksIDAuNDA3MDk2LCAwLjUwNzg3MSwgMC42NDk4NzIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTEzMjcsIDAuMDExNTc2LCAwLjAxMTYyNCwgMC4wMTE2MzUsIDAuMDExNjUyLCAwLjAxMTY1OSwgMC4wMTE2NzUiLCBcCi0gICAgICAgICAgIjAuMDExMjk4LCAwLjAxMTU0NywgMC4wMTE1OTQsIDAuMDExNjA5LCAwLjAxMTYyNCwgMC4wMTE2MjksIDAuMDExNjM2IiwgXAotICAgICAgICAgICIwLjAxMTI4NSwgMC4wMTE1MzQsIDAuMDExNTgxLCAwLjAxMTU5NywgMC4wMTE2MSwgMC4wMTE2MTcsIDAuMDExNjE5IiwgXAotICAgICAgICAgICIwLjAxMTI5LCAwLjAxMTU0LCAwLjAxMTU5MSwgMC4wMTE1OTksIDAuMDExNjE2LCAwLjAxMTYxNywgMC4wMTE2MjkiLCBcCi0gICAgICAgICAgIjAuMDExMywgMC4wMTE1NDgsIDAuMDExNTk1LCAwLjAxMTYxMSwgMC4wMTE2MjcsIDAuMDExNjMsIDAuMDExNjM3IiwgXAotICAgICAgICAgICIwLjAxMTMxMywgMC4wMTE1NjIsIDAuMDExNjExLCAwLjAxMTYyNiwgMC4wMTE2NCwgMC4wMTE2NDgsIDAuMDExNjUzIiwgXAotICAgICAgICAgICIwLjAxMTM0MywgMC4wMTE1OSwgMC4wMTE2MzUsIDAuMDExNjQ2LCAwLjAxMTY1OCwgMC4wMTE2NjgsIDAuMDExNjY5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTQ4OTIsIDAuMDE1MjI1LCAwLjAxNTI3OSwgMC4wMTUyOTYsIDAuMDE1MzExLCAwLjAxNTMxOCwgMC4wMTUzMjUiLCBcCi0gICAgICAgICAgIjAuMDE0ODY0LCAwLjAxNTE5OSwgMC4wMTUyNTMsIDAuMDE1MjcsIDAuMDE1Mjg0LCAwLjAxNTI5MiwgMC4wMTUyOTkiLCBcCi0gICAgICAgICAgIjAuMDE0ODU4LCAwLjAxNTE5MywgMC4wMTUyNDcsIDAuMDE1MjY0LCAwLjAxNTI3OSwgMC4wMTUyODYsIDAuMDE1MjkzIiwgXAotICAgICAgICAgICIwLjAxNDg1NSwgMC4wMTUxODksIDAuMDE1MjQzLCAwLjAxNTI1OSwgMC4wMTUyNzQsIDAuMDE1MjgyLCAwLjAxNTI4OCIsIFwKLSAgICAgICAgICAiMC4wMTQ4NDMsIDAuMDE1MTgxLCAwLjAxNTIzNiwgMC4wMTUyNTMsIDAuMDE1MjY5LCAwLjAxNTI3NiwgMC4wMTUyODMiLCBcCi0gICAgICAgICAgIjAuMDE0ODc4LCAwLjAxNTIwNywgMC4wMTUyNjIsIDAuMDE1Mjc5LCAwLjAxNTI5MywgMC4wMTUzMTIsIDAuMDE1MzE5IiwgXAotICAgICAgICAgICIwLjAxNDg4OSwgMC4wMTUyMTcsIDAuMDE1MjcxLCAwLjAxNTI4OCwgMC4wMTUzMDMsIDAuMDE1MzExLCAwLjAxNTMxOCIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogVExBVE5TUlg0ICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoVExBVE5TUlg0KSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuNzY3MjI5OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIGxhdGNoIChRSU5ULE41KSB7Ci0gICAgZGF0YV9pbiA6ICJEIjsKLSAgICBlbmFibGUgOiAiKCghR04pIFJOKSI7Ci0gICAgcHJlc2V0IDogIighU04pIjsKLSAgfQotICBwaW4oRCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjIzNjI4OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYyMjAzNDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2MjM2Mjg7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjE4LCAwLjAwMDIyMSwgMC4wMDAyMjIsIDAuMDAwMjIyLCAwLjAwMDIyMiwgMC4wMDAyMjIsIDAuMDAwMjIyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjI4LCAwLjAwMDIyNywgMC4wMDAyMjcsIDAuMDAwMjI3LCAwLjAwMDIyNywgMC4wMDAyMjcsIDAuMDAwMjI3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkdOIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlJOJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIlJOX0VRXzFfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMTI1LCAtMC4wMDEyNSwgMC4wMTEyNSwgMC4wMTc1LCAwLjAzLCAwLjA0LCAwLjA0MjUiLCBcCi0gICAgICAgICAgIi0wLjAxNzUsIC0wLjAwNjI1LCAwLCAwLjAxMjUsIDAuMDE4NzUsIDAuMDI4NzUsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAxODc1LCAtMC4wMDYyNSwgMCwgMC4wMDYyNSwgMC4wMTYyNSwgMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAuMDAzNzUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjA0Mzc1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwMjUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA2NSwgLTAuMDUzNzUsIC0wLjA0NzUsIC0wLjAzNSwgLTAuMDI4NzUsIC0wLjAxODc1LCAtMC4wMSIsIFwKLSAgICAgICAgICAiLTAuMDgsIC0wLjA2ODc1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wMzM3NSwgLTAuMDI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDMxMjUsIC0wLjAyNjI1LCAtMC4wMTM3NSwgLTAuMDA3NSwgLTAuMDAxMjUsIDAuMDA4NzUsIDAuMDE3NSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDMxMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMC4wMDM3NSwgMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA0Mzc1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDA4NzUsIDAiLCBcCi0gICAgICAgICAgIi0wLjA2MTI1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAxNSwgLTAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDczNzUsIC0wLjA2MjUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDI3NSwgLTAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjA4Mzc1LCAtMC4wNzI1LCAtMC4wNjYyNSwgLTAuMDUzNzUsIC0wLjA0NzUsIC0wLjAzNzUsIC0wLjAzNSIsIFwKLSAgICAgICAgICAiLTAuMDkyNSwgLTAuMDgxMjUsIC0wLjA3NSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA0NjI1LCAtMC4wNDM3NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJHTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiUk4mU04iOwotICAgICAgc2RmX2NvbmQgOiAiUk5fRVFfMV9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzMTI1LCAwLjAyLCAwLjAwNzUsIDAuMDAxMjUsIC0wLjAwNSwgLTAuMDE1LCAtMC4wMjM3NSIsIFwKLSAgICAgICAgICAiMC4wMzYyNSwgMC4wMzEyNSwgMC4wMTg3NSwgMC4wMDYyNSwgMCwgLTAuMDEsIC0wLjAxODc1IiwgXAotICAgICAgICAgICIwLjA0ODc1LCAwLjAzNzUsIDAuMDI1LCAwLjAxODc1LCAwLjAxMjUsIDAuMDAyNSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMDYxMjUsIDAuMDUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMTg3NSwgMC4wMDg3NSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiMC4wNjc1LCAwLjA1NjI1LCAwLjA1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDIxMjUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4wODM3NSwgMC4wNzI1LCAwLjA2LCAwLjA1Mzc1LCAwLjA0NzUsIDAuMDM3NSwgMC4wMjg3NSIsIFwKLSAgICAgICAgICAiMC4wOTI1LCAwLjA4NzUsIDAuMDc1LCAwLjA2ODc1LCAwLjA1NjI1LCAwLjA0NjI1LCAwLjAzNzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTYyNSwgMC4wNDUsIDAuMDMyNSwgMC4wMjYyNSwgMC4wMiwgMC4wMSwgMC4wMDEyNSIsIFwKLSAgICAgICAgICAiMC4wNjEyNSwgMC4wNTYyNSwgMC4wNDM3NSwgMC4wMzEyNSwgMC4wMjUsIDAuMDE1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMDczNzUsIDAuMDYyNSwgMC4wNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAyNzUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMDgsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNSwgMC4wNDM3NSwgMC4wMzM3NSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4wOTI1LCAwLjA4MTI1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDQ2MjUsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiMC4xMDI1LCAwLjA5MTI1LCAwLjA4NSwgMC4wNzI1LCAwLjA2NjI1LCAwLjA1NjI1LCAwLjA1Mzc1IiwgXAotICAgICAgICAgICIwLjExMTI1LCAwLjEwNjI1LCAwLjA5Mzc1LCAwLjA4NzUsIDAuMDc1LCAwLjA3MTI1LCAwLjA2MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEdOKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2Mjc4OTk7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjI3NzQzOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDYyNzg5OTsKLSAgICBjbG9jayA6IHRydWU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzE5LCAwLjAwMDI5MiwgMC4wMDAyOTksIDAuMDAwMzAzLCAwLjAwMDMyMSwgMC4wMDAzNDIsIDAuMDAwMzY5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzNzY0LCAwLjAwMzczNCwgMC4wMDM3MjcsIDAuMDAzNzI4LCAwLjAwMzczOSwgMC4wMDM3NjUsIDAuMDAzNzg2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkdOIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRCZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjE5NjgyMiwgMC4yMDYzMDEsIDAuMjE2MjksIDAuMjIzODE5LCAwLjIzMDI5NCwgMC4yMzg4NTgsIDAuMjQ1MzU0Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihRKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDEuMDM1ODE7Ci0gICAgZnVuY3Rpb24gOiAiUUlOVCI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTg2MTQsIDAuMTkwNDQ2LCAwLjI2MjI3LCAwLjMxMzQzLCAwLjM5NTYyNiwgMC40NjczODksIDAuNTY5OTc4IiwgXAotICAgICAgICAgICIwLjEyNzY0OCwgMC4xOTk1MDcsIDAuMjcxMzI4LCAwLjMyMjUzLCAwLjQwNDY3NiwgMC40NzY1MTQsIDAuNTc5MzU1IiwgXAotICAgICAgICAgICIwLjEzODQ4MSwgMC4yMTAzNDQsIDAuMjgyMDE5LCAwLjMzMzMyNSwgMC40MTU1MjcsIDAuNDg3NDEsIDAuNTkwMjM4IiwgXAotICAgICAgICAgICIwLjE0OTAyNSwgMC4yMjA4NzcsIDAuMjkyNzA0LCAwLjM0Mzg2NCwgMC40MjYwMTgsIDAuNDk3NzksIDAuNjAwNDQ3IiwgXAotICAgICAgICAgICIwLjE1OTE5NiwgMC4yMzEwMSwgMC4zMDI3OTgsIDAuMzUzOTksIDAuNDM2MTc1LCAwLjUwODAxMiwgMC42MTA4NzMiLCBcCi0gICAgICAgICAgIjAuMTc0MzEsIDAuMjQ2MTQ2LCAwLjMxNzg1NiwgMC4zNjkxMjYsIDAuNDUxMjczLCAwLjUyMzAzOCwgMC42MjU4MDciLCBcCi0gICAgICAgICAgIjAuMTg2MTg1LCAwLjI1ODAyOSwgMC4zMjk4MzQsIDAuMzgxMDA4LCAwLjQ2MzE0NywgMC41MzUxOTcsIDAuNjM3NzQ3Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDI4MDgyLCAwLjE3NDgyNSwgMC4zMjI5ODgsIDAuNDI4MDYsIDAuNTk4MDcsIDAuNzQzNjg4LCAwLjk1NjIzIiwgXAotICAgICAgICAgICIwLjAyODI4NSwgMC4xNzQ4MiwgMC4zMjI5NzUsIDAuNDI4NzU4LCAwLjU5ODA0LCAwLjc0NTA2NSwgMC45NTU2NjMiLCBcCi0gICAgICAgICAgIjAuMDI4Mjk1LCAwLjE3NDM2LCAwLjMyMTg5OCwgMC40MjgwNjEsIDAuNTk4MDkxLCAwLjc0NjIsIDAuOTU1NzAyIiwgXAotICAgICAgICAgICIwLjAyODI1NywgMC4xNzQ4NTksIDAuMzIyOTg4LCAwLjQyNzQ3NSwgMC41OTgwMDQsIDAuNzQzNjI4LCAwLjk1Njk1MyIsIFwKLSAgICAgICAgICAiMC4wMjgyNDMsIDAuMTc0ODIyLCAwLjMyMjkyLCAwLjQyNzQ4NCwgMC41OTgwNDQsIDAuNzQ1MDgxLCAwLjk1NTY4MiIsIFwKLSAgICAgICAgICAiMC4wMjgxOTUsIDAuMTc0MzY4LCAwLjMyMjcwOCwgMC40Mjc0NywgMC41OTc5ODYsIDAuNzQ1NDgsIDAuOTU3NjA1IiwgXAotICAgICAgICAgICIwLjAyODI5LCAwLjE3NDgyOSwgMC4zMjI5NjcsIDAuNDI4MDUyLCAwLjU5NzE0OCwgMC43NDQ0MDcsIDAuOTU3NDUyIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTQyMDQxLCAwLjIxNTY2OSwgMC4yODk0MzgsIDAuMzQyMzI5LCAwLjQyNjUxNiwgMC41MDA0NzYsIDAuNjA2MDEyIiwgXAotICAgICAgICAgICIwLjE1MDUyMywgMC4yMjQxNDUsIDAuMjk3OTE0LCAwLjM1MDgwNSwgMC40MzQ5ODksIDAuNTA4OTMzLCAwLjYxNDIzNiIsIFwKLSAgICAgICAgICAiMC4xNjAyMDUsIDAuMjMzODE3LCAwLjMwNzU5MSwgMC4zNjA0NzQsIDAuNDQ0NjYxLCAwLjUxODYwOSwgMC42MjQ0OTUiLCBcCi0gICAgICAgICAgIjAuMTY5NTk1LCAwLjI0MzIxMywgMC4zMTY5NzcsIDAuMzY5ODc5LCAwLjQ1NDMyLCAwLjUyNzk4NywgMC42MzM1NDMiLCBcCi0gICAgICAgICAgIjAuMTc4NjAxLCAwLjI1MjIzNiwgMC4zMjYwMDEsIDAuMzc4OSwgMC40NjMzNDUsIDAuNTM3MDA5LCAwLjY0MjUxIiwgXAotICAgICAgICAgICIwLjE5MTkxMSwgMC4yNjU1NDQsIDAuMzM5Mjk5LCAwLjM5MjIwMSwgMC40NzY2NDMsIDAuNTUwMjk0LCAwLjY1NjE5OCIsIFwKLSAgICAgICAgICAiMC4yMDIyMTksIDAuMjc1OTAzLCAwLjM0OTc2NSwgMC40MDI1MTgsIDAuNDg3MDc3LCAwLjU2MDk5OCwgMC42NjYxMDEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjg2OTgsIDAuMTc2MjI2LCAwLjMyNDgzMSwgMC40MzI3NjcsIDAuNjAyNzAyLCAwLjc1MTA3NiwgMC45NjQyMTYiLCBcCi0gICAgICAgICAgIjAuMDI4NzU1LCAwLjE3NjIyNCwgMC4zMjUwOTQsIDAuNDMyNzkyLCAwLjYwMTk3OSwgMC43NTIzMjUsIDAuOTYzNTk1IiwgXAotICAgICAgICAgICIwLjAyODgwMSwgMC4xNzYyMjMsIDAuMzI0OTYsIDAuNDMyNzg0LCAwLjYwMTk3OSwgMC43NTA4OTMsIDAuOTY3MzQ1IiwgXAotICAgICAgICAgICIwLjAyODc5OCwgMC4xNzYyMjksIDAuMzI1MDg5LCAwLjQzMjc2MSwgMC42MDM2OTksIDAuNzUwOTA4LCAwLjk2NDE3OSIsIFwKLSAgICAgICAgICAiMC4wMjg2NzQsIDAuMTc2MjI1LCAwLjMyNTM0OSwgMC40MzI3NTQsIDAuNjAzNjk2LCAwLjc1MDkwNywgMC45NjQwOTMiLCBcCi0gICAgICAgICAgIjAuMDI4NzE0LCAwLjE3NjIxNiwgMC4zMjUzMTgsIDAuNDMyNzgyLCAwLjYwMzY2OSwgMC43NTI0MzMsIDAuOTY3MjIyIiwgXAotICAgICAgICAgICIwLjAyODYzNywgMC4xNzYyMTgsIDAuMzI1ODkzLCAwLjQzMjYxMiwgMC42MDM4NjMsIDAuNzUzNTM0LCAwLjk2NTI3MiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJHTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBub25fdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGZhbGxpbmdfZWRnZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xODcwNzksIDAuMjU4OTM5LCAwLjMzMDc0OCwgMC4zODE5NjIsIDAuNDY0MDk0LCAwLjUzNTk0MiwgMC42Mzg3NTIiLCBcCi0gICAgICAgICAgIjAuMTk2NjE4LCAwLjI2ODQ2OCwgMC4zNDAyOCwgMC4zOTE0NDksIDAuNDczNjMsIDAuNTQ1NDcxLCAwLjY0ODMxOSIsIFwKLSAgICAgICAgICAiMC4yMDY1NTQsIDAuMjc4MjcsIDAuMzUwMjI1LCAwLjQwMTM5MiwgMC40ODM1NzUsIDAuNTU1NDE0LCAwLjY1ODI1OCIsIFwKLSAgICAgICAgICAiMC4yMTQxNDksIDAuMjg2MDA0LCAwLjM1NzgwNywgMC40MDkwMzUsIDAuNDkxMTUzLCAwLjU2MzAwNiwgMC42NjU4MTQiLCBcCi0gICAgICAgICAgIjAuMjIwNjIsIDAuMjkyMzQzLCAwLjM2NDI4OCwgMC40MTU0NTcsIDAuNDk3NTg4LCAwLjU2OTQ3NywgMC42NzIzMTkiLCBcCi0gICAgICAgICAgIjAuMjI5MjYsIDAuMzAxMTEsIDAuMzczMDA2LCAwLjQyNDE3NiwgMC41MDYzNTQsIDAuNTc4MTEzLCAwLjY4MTAyNCIsIFwKLSAgICAgICAgICAiMC4yMzU2MTIsIDAuMzA3NDc1LCAwLjM3OTI4NCwgMC40MzA0ODQsIDAuNTEyNDM1LCAwLjU4NDI3OCwgMC42ODcyOSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyODI3MiwgMC4xNzQ4NDIsIDAuMzIyOTY3LCAwLjQyODc3NywgMC41OTgwMzMsIDAuNzQ1MTIzLCAwLjk1Nzc4OCIsIFwKLSAgICAgICAgICAiMC4wMjgyNjksIDAuMTc0ODQ3LCAwLjMyMjk3MiwgMC40MjgwMjksIDAuNTk4MDM1LCAwLjc0NTA5OSwgMC45NTU2NTciLCBcCi0gICAgICAgICAgIjAuMDI4MjY4LCAwLjE3NDMwNywgMC4zMjI5NzMsIDAuNDI4NDIyLCAwLjU5ODA0NCwgMC43NDUwODUsIDAuOTU1NjYxIiwgXAotICAgICAgICAgICIwLjAyODI2NCwgMC4xNzQ4MzUsIDAuMzIyOTYsIDAuNDI4Nzk1LCAwLjU5ODAyOCwgMC43NDQ5OTcsIDAuOTU3Nzg2IiwgXAotICAgICAgICAgICIwLjAyODI3LCAwLjE3NDY4LCAwLjMyMjk3MiwgMC40Mjc5OTksIDAuNTk3MTM5LCAwLjc0NTA5MywgMC45NTU2NjMiLCBcCi0gICAgICAgICAgIjAuMDI4MjY2LCAwLjE3NDg0NiwgMC4zMjI5NywgMC40MjgwNDUsIDAuNTk4MDMzLCAwLjc0NTE3NSwgMC45NTc3OTEiLCBcCi0gICAgICAgICAgIjAuMDI4Mjc0LCAwLjE3NDg0NiwgMC4zMjI5NjcsIDAuNDI4NzQ4LCAwLjU5ODAzOCwgMC43NDUxNjQsIDAuOTU3NzgiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xOTY4MjIsIDAuMjcwNDgsIDAuMzQ0MzQxLCAwLjM5NzE1MywgMC40ODE2LCAwLjU1NTI1MywgMC42NjExNTQiLCBcCi0gICAgICAgICAgIjAuMjA2MzAxLCAwLjI3OTk1MiwgMC4zNTM4MDgsIDAuNDA2NjI2LCAwLjQ5MTA2NiwgMC41NjQ3MTgsIDAuNjcwNjIxIiwgXAotICAgICAgICAgICIwLjIxNjI5LCAwLjI4OTk1MSwgMC4zNjM4MSwgMC40MTY2MjMsIDAuNTAxMDczLCAwLjU3NDcyOCwgMC42ODA2MjYiLCBcCi0gICAgICAgICAgIjAuMjIzODE5LCAwLjI5NzQ2OCwgMC4zNzEyMzcsIDAuNDI0MTI4LCAwLjUwODYwNCwgMC41ODIyNTgsIDAuNjg4MTIzIiwgXAotICAgICAgICAgICIwLjIzMDI5NCwgMC4zMDM5MTMsIDAuMzc3NzUxLCAwLjQzMDU5MiwgMC41MTUwODEsIDAuNTg4Njg1LCAwLjY5NDYzOSIsIFwKLSAgICAgICAgICAiMC4yMzg4NTgsIDAuMzEyNTIxLCAwLjM4NjI4OSwgMC40MzkxMzUsIDAuNTIzNjE0LCAwLjU5NzI3NCwgMC43MDMyMjIiLCBcCi0gICAgICAgICAgIjAuMjQ1MzU0LCAwLjMxODk5NywgMC4zOTI3NjcsIDAuNDQ1NTM0LCAwLjUzMDA4OSwgMC42MDQwMywgMC43MDkxNCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyODYzNiwgMC4xNzYxODIsIDAuMzI1ODY4LCAwLjQzMjc3NSwgMC42MDM3MDEsIDAuNzUyNDgxLCAwLjk2NzI2OSIsIFwKLSAgICAgICAgICAiMC4wMjg2NDYsIDAuMTc2MjEyLCAwLjMyNTkwNywgMC40MzI3NTEsIDAuNjAzNjgyLCAwLjc1MjQ0MSwgMC45NjcyNTEiLCBcCi0gICAgICAgICAgIjAuMDI4NjM4LCAwLjE3NjE1NywgMC4zMjU4NTYsIDAuNDMyNzY5LCAwLjYwMzY5NiwgMC43NTI0OTUsIDAuOTY3MjY2IiwgXAotICAgICAgICAgICIwLjAyODgxNiwgMC4xNzYyMDYsIDAuMzI1NDc0LCAwLjQzMjcxNywgMC42MDM3MzcsIDAuNzUyNDQzLCAwLjk2NzE4OCIsIFwKLSAgICAgICAgICAiMC4wMjg2NTMsIDAuMTc2MjI5LCAwLjMyNTM5NCwgMC40MzI3ODQsIDAuNjAzNjcsIDAuNzUyNDQyLCAwLjk2NzIzMSIsIFwKLSAgICAgICAgICAiMC4wMjg2NTIsIDAuMTc2MjMyLCAwLjMyNTM2NiwgMC40MzI2NSwgMC42MDM2NTQsIDAuNzUxNjg3LCAwLjk2NzIyNyIsIFwKLSAgICAgICAgICAiMC4wMjg2ODUsIDAuMTc2MjMzLCAwLjMyNTM2NCwgMC40MzIyNDgsIDAuNjAzNjU4LCAwLjc1MzM0MywgMC45NjUzMTMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUk4iOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJpc2luZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE3NjI1OCwgMC4yNDc5ODYsIDAuMzE5OSwgMC4zNzEwNTMsIDAuNDUzMjQ3LCAwLjUyNTAxNSwgMC42Mjc5MTUiLCBcCi0gICAgICAgICAgIjAuMTg0ODUyLCAwLjI1NjcwNSwgMC4zMjg1MTYsIDAuMzc5Njg1LCAwLjQ2MTg2NywgMC41MzM3MDYsIDAuNjM2NTUxIiwgXAotICAgICAgICAgICIwLjE5NTYyNywgMC4yNjc0NzksIDAuMzM5Mjg5LCAwLjM5MDQ1OSwgMC40NzI2NDEsIDAuNTQ0NDgxLCAwLjY0NzMyMyIsIFwKLSAgICAgICAgICAiMC4yMDU5MywgMC4yNzc3ODksIDAuMzQ5NjAxLCAwLjQwMDc2OSwgMC40ODI5NSwgMC41NTQ3OTEsIDAuNjU3NjMiLCBcCi0gICAgICAgICAgIjAuMjE1NTY1LCAwLjI4NzQyNSwgMC4zNTkyMzUsIDAuNDEwNDA2LCAwLjQ5MjU4MiwgMC41NjQ0MjYsIDAuNjY3MjQ0IiwgXAotICAgICAgICAgICIwLjIyOTUwOSwgMC4zMDEzNTksIDAuMzczMTcxLCAwLjQyNDM0MSwgMC41MDY1MiwgMC41NzgzNjEsIDAuNjgxMjA1IiwgXAotICAgICAgICAgICIwLjI0MDEwNiwgMC4zMTE5NjQsIDAuMzgzNzc2LCAwLjQzNDk0NCwgMC41MTcxMjYsIDAuNTg4OTYzLCAwLjY5MTgwMSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyODE1OCwgMC4xNzQ1ODksIDAuMzIyOTU5LCAwLjQyODQ0OCwgMC41OTgwMjgsIDAuNzQ1NTUzLCAwLjk1Nzc5NCIsIFwKLSAgICAgICAgICAiMC4wMjgyNzIsIDAuMTc0ODQ2LCAwLjMyMjk2OSwgMC40MjgwMjIsIDAuNTk4MDM2LCAwLjc0NTA5MiwgMC45NTU2NiIsIFwKLSAgICAgICAgICAiMC4wMjgyNzIsIDAuMTc0ODQ1LCAwLjMyMjk2OSwgMC40MjgwMjIsIDAuNTk4MDM2LCAwLjc0NTEwMywgMC45NTU2NjIiLCBcCi0gICAgICAgICAgIjAuMDI4MjM5LCAwLjE3NDg0NCwgMC4zMjI5NzIsIDAuNDI4MDA0LCAwLjU5ODA0MSwgMC43NDUxMDksIDAuOTU1NjY0IiwgXAotICAgICAgICAgICIwLjAyODI1OCwgMC4xNzQ4NDQsIDAuMzIyOTY4LCAwLjQyODAzMiwgMC41OTgwMzYsIDAuNzQ1MTgzLCAwLjk1Nzc4MyIsIFwKLSAgICAgICAgICAiMC4wMjgyNjgsIDAuMTc0ODQ4LCAwLjMyMjk3MiwgMC40MjgwNDcsIDAuNTk4MDM1LCAwLjc0NTExNSwgMC45NTU2NjEiLCBcCi0gICAgICAgICAgIjAuMDI4MjYxLCAwLjE3NDg0NSwgMC4zMjI5NzIsIDAuNDI4MDA0LCAwLjU5ODA0MSwgMC43NDUxLCAwLjk1NTY2NiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogZmFsbGluZ19lZGdlOwotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE4MjUwNCwgMC4yNTYxNDEsIDAuMzI5OTIyLCAwLjM4MjgwOCwgMC40NjcyMzYsIDAuNTQwOTA1LCAwLjY0NjY5MSIsIFwKLSAgICAgICAgICAiMC4xOTIxMzQsIDAuMjY1Nzk1LCAwLjMzOTU2NCwgMC4zOTIyNjQsIDAuNDc2NjMsIDAuNTUwNDIyLCAwLjY1NTc4MiIsIFwKLSAgICAgICAgICAiMC4yMDQyMTMsIDAuMjc3OTAzLCAwLjM1MTY3LCAwLjQwNDQ0NCwgMC40ODkwMTUsIDAuNTYyNjczLCAwLjY2Nzk2IiwgXAotICAgICAgICAgICIwLjIxNTQ3OCwgMC4yODkxNjgsIDAuMzYyOTM0LCAwLjQxNTcwNSwgMC41MDAyNzksIDAuNTczOTM3LCAwLjY3OTczMSIsIFwKLSAgICAgICAgICAiMC4yMjUzMjEsIDAuMjk4OTg0LCAwLjM3Mjc0NywgMC40MjU2NDksIDAuNTEwMDgxLCAwLjU4Mzc2OSwgMC42ODkwOSIsIFwKLSAgICAgICAgICAiMC4yMzk1MiwgMC4zMTMxMzMsIDAuMzg2ODk3LCAwLjQzOTc5NiwgMC41MjQyMjMsIDAuNTk3OTE3LCAwLjcwMzY0NSIsIFwKLSAgICAgICAgICAiMC4yNTIyMjMsIDAuMzI1ODQsIDAuMzk5NjA1LCAwLjQ1MjUsIDAuNTM2OTI5LCAwLjYxMDYxNSwgMC43MTU5NCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyODY1NiwgMC4xNzYyMzEsIDAuMzI1NTQxLCAwLjQzMjc4NiwgMC42MDM2NzUsIDAuNzUyNDY2LCAwLjk2NzMwNiIsIFwKLSAgICAgICAgICAiMC4wMjg4MDQsIDAuMTc2MjMyLCAwLjMyNTQ0NSwgMC40MzI3NjMsIDAuNjAzNjgzLCAwLjc1MjQyLCAwLjk2NTA0MSIsIFwKLSAgICAgICAgICAiMC4wMjg4MiwgMC4xNzYyMTMsIDAuMzI1MzM3LCAwLjQzMjczMSwgMC42MDM2NjUsIDAuNzUzMjcyLCAwLjk2NzIyNiIsIFwKLSAgICAgICAgICAiMC4wMjg4MTMsIDAuMTc2MjE3LCAwLjMyNTQwOCwgMC40MzI3NTEsIDAuNjAzNjc5LCAwLjc1MjQ4MSwgMC45NjcyMzciLCBcCi0gICAgICAgICAgIjAuMDI4ODA4LCAwLjE3NjIyNiwgMC4zMjUzOCwgMC40MzI3ODgsIDAuNjAzODk1LCAwLjc1MjQyOSwgMC45NjUzMjciLCBcCi0gICAgICAgICAgIjAuMDI4NzIxLCAwLjE3NjIzMSwgMC4zMjUxNTQsIDAuNDMyNzYyLCAwLjYwMzY3OCwgMC43NTM0NTEsIDAuOTY2OTgzIiwgXAotICAgICAgICAgICIwLjAyODc4NywgMC4xNzYyMzUsIDAuMzI1NDUzLCAwLjQzMjc1LCAwLjYwMzY3NywgMC43NTMyNiwgMC45NjcyMjMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiU04iOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHByZXNldDsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjIwNjQsIDAuMTMzODczLCAwLjIwNTcxLCAwLjI1Njg5NiwgMC4zMzkwMDgsIDAuNDEwODU4LCAwLjUxMzQ3OSIsIFwKLSAgICAgICAgICAiMC4wNzIwNywgMC4xNDM5MjUsIDAuMjE1NzQ4LCAwLjI2Njk1OCwgMC4zNDkwNDcsIDAuNDIwODc3LCAwLjUyMzczIiwgXAotICAgICAgICAgICIwLjA4NDM5NSwgMC4xNTYyOCwgMC4yMjgxMTYsIDAuMjc5Mjc3LCAwLjM2MTMzNywgMC40MzMyNjUsIDAuNTM1OTciLCBcCi0gICAgICAgICAgIjAuMDk2MjM4LCAwLjE2NzkyNywgMC4yMzk5MDYsIDAuMjkxMDc0LCAwLjM3MzIxMiwgMC40NDUwMzcsIDAuNTQ3NzA1IiwgXAotICAgICAgICAgICIwLjEwNjY3OCwgMC4xNzg0MjEsIDAuMjUwMjMyLCAwLjMwMTQ1MiwgMC4zODM1OTQsIDAuNDU1Mzk4LCAwLjU1ODAyNCIsIFwKLSAgICAgICAgICAiMC4xMjA4NjEsIDAuMTkyNDcsIDAuMjY0MjU2LCAwLjMxNTU1NiwgMC4zOTc2NjYsIDAuNDY5NTUxLCAwLjU3MjMiLCBcCi0gICAgICAgICAgIjAuMTMxNTk4LCAwLjIwMzEsIDAuMjc0ODcxLCAwLjMyNjE3OSwgMC40MDgzNTksIDAuNDgwMjQsIDAuNTgyOTY1Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDI4MjE1LCAwLjE3NDgzNCwgMC4zMjI5OTEsIDAuNDI4MDUyLCAwLjU5ODAxOSwgMC43NDU3MzQsIDAuOTU1NjYxIiwgXAotICAgICAgICAgICIwLjAyODIxLCAwLjE3NDg0MiwgMC4zMjI5NjQsIDAuNDI4NzYsIDAuNTk3OTc5LCAwLjc0NTgwOCwgMC45NTc2MTMiLCBcCi0gICAgICAgICAgIjAuMDI4MjE1LCAwLjE3NDg4MywgMC4zMjI5NzQsIDAuNDI3NzY3LCAwLjU5Nzc5NCwgMC43NDU4MTYsIDAuOTU3MDc1IiwgXAotICAgICAgICAgICIwLjAyODIyOCwgMC4xNzQ2MjUsIDAuMzIyOTc3LCAwLjQyODA5NiwgMC41OTgwMDgsIDAuNzQ1ODQ3LCAwLjk1Njk5NSIsIFwKLSAgICAgICAgICAiMC4wMjgzMiwgMC4xNzQ4NiwgMC4zMjI5NzgsIDAuNDI4NzU1LCAwLjU5NzkxNiwgMC43NDU4MzIsIDAuOTU2Mzk1IiwgXAotICAgICAgICAgICIwLjAyODQ5NywgMC4xNzQ1NjcsIDAuMzIyNzE4LCAwLjQyODYzNCwgMC41OTY5ODYsIDAuNzQ1ODY1LCAwLjk1Njk3IiwgXAotICAgICAgICAgICIwLjAyODYxMiwgMC4xNzQ2MTEsIDAuMzIyMzg5LCAwLjQyODQzMywgMC41OTc3MiwgMC43NDU3NDQsIDAuOTU3MjE0Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg2Njc5LCAwLjE2MDM0NCwgMC4yMzQwOTksIDAuMjg3MDA1LCAwLjM3MTQ0NSwgMC40NDUwODgsIDAuNTUxMDA1IiwgXAotICAgICAgICAgICIwLjA5NTA0MSwgMC4xNjg2NzQsIDAuMjQyNDQsIDAuMjk1MzE2LCAwLjM3OTgzNSwgMC40NTM3MzMsIDAuNTU4ODczIiwgXAotICAgICAgICAgICIwLjEwNTM5NiwgMC4xNzkxMjEsIDAuMjUyODgzLCAwLjMwNTgwMiwgMC4zOTAyMzksIDAuNDYzODY0LCAwLjU2OTc5NiIsIFwKLSAgICAgICAgICAiMC4xMTU3NDEsIDAuMTg5NDA1LCAwLjI2MzE2LCAwLjMxNjA4LCAwLjQwMDUwMywgMC40NzQxMzgsIDAuNTgwMDY2IiwgXAotICAgICAgICAgICIwLjEyNTY4OSwgMC4xOTkzNjMsIDAuMjczMTI3LCAwLjMyNjAzMywgMC40MTA0OTEsIDAuNDg0MTMzLCAwLjU5MDA0NyIsIFwKLSAgICAgICAgICAiMC4xNDA0NjgsIDAuMjE0MTcyLCAwLjI4Nzg1MSwgMC4zNDA2NjYsIDAuNDI1MTU1LCAwLjQ5ODc5OCwgMC42MDQ3MDgiLCBcCi0gICAgICAgICAgIjAuMTUxODg2LCAwLjIyNTM5OCwgMC4yOTkxOTIsIDAuMzUxOTY2LCAwLjQzNjQ1LCAwLjUxMDE4NCwgMC42MTYwMTEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjg2MTksIDAuMTc2MjI3LCAwLjMyNTg5OCwgMC40MzI3OTYsIDAuNjAzNjg2LCAwLjc1MjQyMSwgMC45NjcyNjIiLCBcCi0gICAgICAgICAgIjAuMDI4NjMxLCAwLjE3NjIxOCwgMC4zMjUzNDUsIDAuNDMyNjkyLCAwLjYwMzg0NCwgMC43NTM0MDYsIDAuOTYzOTMyIiwgXAotICAgICAgICAgICIwLjAyODY0OCwgMC4xNzYyMTEsIDAuMzI1MzI5LCAwLjQzMjc3NSwgMC42MDM2NTQsIDAuNzUzMzM2LCAwLjk2NzIwMyIsIFwKLSAgICAgICAgICAiMC4wMjg3MjQsIDAuMTc2MjIzLCAwLjMyNTQ4NiwgMC40MzI3OSwgMC42MDM2NDMsIDAuNzUyNDY1LCAwLjk2NzIwNiIsIFwKLSAgICAgICAgICAiMC4wMjg2NTEsIDAuMTc2MjA4LCAwLjMyNTQ0LCAwLjQzMjcxOSwgMC42MDM2ODQsIDAuNzUyNDUzLCAwLjk2NzI0NyIsIFwKLSAgICAgICAgICAiMC4wMjg4MTcsIDAuMTc2MjQ0LCAwLjMyNTc3NiwgMC40MzI3MDgsIDAuNjAzNjE0LCAwLjc1MjQwOSwgMC45NjcyNjIiLCBcCi0gICAgICAgICAgIjAuMDI4ODgyLCAwLjE3NjI3NywgMC4zMjU1NDYsIDAuNDMyNjc3LCAwLjYwMzYxOCwgMC43NTIzNTMsIDAuOTY3MzMxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDc2NTksIDAuMDA3ODQxLCAwLjAwNzg1OSwgMC4wMDc4NjIsIDAuMDA3ODczLCAwLjAwNzg4MywgMC4wMDc4ODYiLCBcCi0gICAgICAgICAgIjAuMDA3NjUsIDAuMDA3ODI1LCAwLjAwNzg1NywgMC4wMDc4NTcsIDAuMDA3ODcxLCAwLjAwNzg3NCwgMC4wMDc4NjkiLCBcCi0gICAgICAgICAgIjAuMDA3NjQ0LCAwLjAwNzgxNywgMC4wMDc4NCwgMC4wMDc4NDksIDAuMDA3ODU1LCAwLjAwNzg1OSwgMC4wMDc4NjIiLCBcCi0gICAgICAgICAgIjAuMDA3NjM0LCAwLjAwNzgwOCwgMC4wMDc4MzMsIDAuMDA3ODQsIDAuMDA3ODQ3LCAwLjAwNzg1NywgMC4wMDc4NTMiLCBcCi0gICAgICAgICAgIjAuMDA3NjI2LCAwLjAwNzgwMSwgMC4wMDc4MjYsIDAuMDA3ODM0LCAwLjAwNzg0MSwgMC4wMDc4NDQsIDAuMDA3ODQ4IiwgXAotICAgICAgICAgICIwLjAwNzYyOCwgMC4wMDc3OTksIDAuMDA3ODI0LCAwLjAwNzgzMiwgMC4wMDc4NDIsIDAuMDA3ODM4LCAwLjAwNzg0NiIsIFwKLSAgICAgICAgICAiMC4wMDc2MjYsIDAuMDA3OCwgMC4wMDc4MjcsIDAuMDA3ODM1LCAwLjAwNzg0MiwgMC4wMDc4NDYsIDAuMDA3ODQ5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDgzMDYsIDAuMDA4NDY5LCAwLjAwODQ5NSwgMC4wMDg1MDIsIDAuMDA4NTA4LCAwLjAwODUxMywgMC4wMDg1MTgiLCBcCi0gICAgICAgICAgIjAuMDA4Mjk5LCAwLjAwODQ2MywgMC4wMDg0ODgsIDAuMDA4NDk2LCAwLjAwODUwMywgMC4wMDg1MDYsIDAuMDA4NTEiLCBcCi0gICAgICAgICAgIjAuMDA4Mjk0LCAwLjAwODQ1OCwgMC4wMDg0ODMsIDAuMDA4NDkyLCAwLjAwODQ5OCwgMC4wMDg1MDEsIDAuMDA4NTA0IiwgXAotICAgICAgICAgICIwLjAwODI5NCwgMC4wMDg0NTYsIDAuMDA4NDgyLCAwLjAwODQ5LCAwLjAwODQ5MSwgMC4wMDg1MDgsIDAuMDA4NTA0IiwgXAotICAgICAgICAgICIwLjAwODI4OCwgMC4wMDg0NSwgMC4wMDg0NzYsIDAuMDA4NDg0LCAwLjAwODQ5MSwgMC4wMDg0OTUsIDAuMDA4NTAyIiwgXAotICAgICAgICAgICIwLjAwODI3NiwgMC4wMDg0NDIsIDAuMDA4NDY4LCAwLjAwODQ3NywgMC4wMDg0ODQsIDAuMDA4NDg4LCAwLjAwODQ5MSIsIFwKLSAgICAgICAgICAiMC4wMDgyNjQsIDAuMDA4NDM3LCAwLjAwODQ1OSwgMC4wMDg0NzQsIDAuMDA4NDgxLCAwLjAwODQ4NSwgMC4wMDg0ODkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJHTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDk0ODQsIDAuMDA5NjU3LCAwLjAwOTY4MSwgMC4wMDk2ODgsIDAuMDA5Njk0LCAwLjAwOTY5NywgMC4wMDk3MDEiLCBcCi0gICAgICAgICAgIjAuMDA5NDYxLCAwLjAwOTYzNiwgMC4wMDk2NjUsIDAuMDA5NjY1LCAwLjAwOTY3NCwgMC4wMDk2NzcsIDAuMDA5NjgiLCBcCi0gICAgICAgICAgIjAuMDA5NDYzLCAwLjAwOTYzNywgMC4wMDk2NiwgMC4wMDk2NjgsIDAuMDA5Njc0LCAwLjAwOTY3NywgMC4wMDk2OCIsIFwKLSAgICAgICAgICAiMC4wMDk0NywgMC4wMDk2NDIsIDAuMDA5NjY2LCAwLjAwOTY3MywgMC4wMDk2OCwgMC4wMDk2ODQsIDAuMDA5Njg2IiwgXAotICAgICAgICAgICIwLjAwOTQ3LCAwLjAwOTY0NCwgMC4wMDk2NjcsIDAuMDA5NjcyLCAwLjAwOTY4LCAwLjAwOTY4NywgMC4wMDk2ODYiLCBcCi0gICAgICAgICAgIjAuMDA5NDg0LCAwLjAwOTY1NywgMC4wMDk2ODIsIDAuMDA5Njg5LCAwLjAwOTY5NCwgMC4wMDk2OTksIDAuMDA5NyIsIFwKLSAgICAgICAgICAiMC4wMDk0ODIsIDAuMDA5NjU3LCAwLjAwOTY4MSwgMC4wMDk2OSwgMC4wMDk2OTQsIDAuMDA5Njk3LCAwLjAwOTY5OSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEwMDA1LCAwLjAxMDE3MiwgMC4wMTAxOTgsIDAuMDEwMjA2LCAwLjAxMDIxOSwgMC4wMTAyMTYsIDAuMDEwMjE2IiwgXAotICAgICAgICAgICIwLjAwOTk5MywgMC4wMTAxNTYsIDAuMDEwMTc2LCAwLjAxMDE5NywgMC4wMTAxOTMsIDAuMDEwMjAxLCAwLjAxMDIwNSIsIFwKLSAgICAgICAgICAiMC4wMDk5ODcsIDAuMDEwMTU0LCAwLjAxMDE4NCwgMC4wMTAxODgsIDAuMDEwMjAxLCAwLjAxMDIwMywgMC4wMTAyMDEiLCBcCi0gICAgICAgICAgIjAuMDA5OTkyLCAwLjAxMDE1OSwgMC4wMTAxODUsIDAuMDEwMTkzLCAwLjAxMDIsIDAuMDEwMjAzLCAwLjAxMDIwNiIsIFwKLSAgICAgICAgICAiMC4wMDk5OTUsIDAuMDEwMTU5LCAwLjAxMDE4OCwgMC4wMTAxOTMsIDAuMDEwMjAyLCAwLjAxMDIwNCwgMC4wMTAyMDciLCBcCi0gICAgICAgICAgIjAuMDEwMDA3LCAwLjAxMDE3LCAwLjAxMDE5NSwgMC4wMTAyMDQsIDAuMDEwMjExLCAwLjAxMDIxNiwgMC4wMTAyMjEiLCBcCi0gICAgICAgICAgIjAuMDEwMDA3LCAwLjAxMDE3NywgMC4wMTAyMDMsIDAuMDEwMjEyLCAwLjAxMDIxOCwgMC4wMTAyMTcsIDAuMDEwMjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUk4iOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA4NjM0LCAwLjAwODgwOCwgMC4wMDg4MywgMC4wMDg4NDEsIDAuMDA4ODQ3LCAwLjAwODg0OSwgMC4wMDg4NTEiLCBcCi0gICAgICAgICAgIjAuMDA4NjE1LCAwLjAwODc5MSwgMC4wMDg4MTksIDAuMDA4ODE5LCAwLjAwODgyOCwgMC4wMDg4MzIsIDAuMDA4ODM0IiwgXAotICAgICAgICAgICIwLjAwODYwOSwgMC4wMDg3ODQsIDAuMDA4ODA4LCAwLjAwODgxNiwgMC4wMDg4MjUsIDAuMDA4ODI5LCAwLjAwODgyOCIsIFwKLSAgICAgICAgICAiMC4wMDg2MTMsIDAuMDA4Nzg2LCAwLjAwODgxLCAwLjAwODgxNywgMC4wMDg4MjQsIDAuMDA4ODI3LCAwLjAwODgzIiwgXAotICAgICAgICAgICIwLjAwODYxNSwgMC4wMDg3ODcsIDAuMDA4ODExLCAwLjAwODgxOCwgMC4wMDg4MjUsIDAuMDA4ODI4LCAwLjAwODgzMSIsIFwKLSAgICAgICAgICAiMC4wMDg2MTUsIDAuMDA4NzksIDAuMDA4ODE4LCAwLjAwODgyMSwgMC4wMDg4MjcsIDAuMDA4ODM0LCAwLjAwODgzMyIsIFwKLSAgICAgICAgICAiMC4wMDg2MDcsIDAuMDA4NzgsIDAuMDA4ODA1LCAwLjAwODgxMiwgMC4wMDg4MTgsIDAuMDA4ODIxLCAwLjAwODgyNCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA5ODgsIDAuMDEwMDQxLCAwLjAxMDA2NiwgMC4wMTAwNzcsIDAuMDEwMDgxLCAwLjAxMDA4NCwgMC4wMTAwODciLCBcCi0gICAgICAgICAgIjAuMDA5ODYsIDAuMDEwMDI3LCAwLjAxMDA1MiwgMC4wMTAwNTcsIDAuMDEwMDY2LCAwLjAxMDA2OSwgMC4wMTAwNzQiLCBcCi0gICAgICAgICAgIjAuMDA5ODYsIDAuMDEwMDIzLCAwLjAxMDA0OSwgMC4wMTAwNTYsIDAuMDEwMDYzLCAwLjAxMDA2NywgMC4wMTAwNyIsIFwKLSAgICAgICAgICAiMC4wMDk4NTgsIDAuMDEwMDIxLCAwLjAxMDA0NywgMC4wMTAwNTIsIDAuMDEwMDYzLCAwLjAxMDA2MSwgMC4wMTAwNzIiLCBcCi0gICAgICAgICAgIjAuMDA5ODY3LCAwLjAxMDAzLCAwLjAxMDA1NSwgMC4wMTAwNjIsIDAuMDEwMDY5LCAwLjAxMDA3MywgMC4wMTAwNzYiLCBcCi0gICAgICAgICAgIjAuMDA5ODc4LCAwLjAxMDAzOSwgMC4wMTAwNjQsIDAuMDEwMDY3LCAwLjAxMDA3OSwgMC4wMTAwODcsIDAuMDEwMDg1IiwgXAotICAgICAgICAgICIwLjAwOTg3NSwgMC4wMTAwNDEsIDAuMDEwMDY2LCAwLjAxMDA3NCwgMC4wMTAwNzUsIDAuMDEwMDg0LCAwLjAxMDA4OCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwODUwMiwgMC4wMDg2NTIsIDAuMDA4NjcsIDAuMDA4Njc1LCAwLjAwODY4LCAwLjAwODY4MSwgMC4wMDg2ODQiLCBcCi0gICAgICAgICAgIjAuMDA4NDY4LCAwLjAwODYyMiwgMC4wMDg2NDMsIDAuMDA4NjQ4LCAwLjAwODY1MywgMC4wMDg2NTUsIDAuMDA4NjU4IiwgXAotICAgICAgICAgICIwLjAwODQyOSwgMC4wMDg1ODgsIDAuMDA4NjEyLCAwLjAwODYxOSwgMC4wMDg2MjYsIDAuMDA4NjI5LCAwLjAwODYzMiIsIFwKLSAgICAgICAgICAiMC4wMDgzOTYsIDAuMDA4NTYxLCAwLjAwODU5MywgMC4wMDg1OTksIDAuMDA4NjA3LCAwLjAwODYxNSwgMC4wMDg2MTUiLCBcCi0gICAgICAgICAgIjAuMDA4Mzg5LCAwLjAwODU1NCwgMC4wMDg1ODYsIDAuMDA4NTk2LCAwLjAwODYwNiwgMC4wMDg2MTEsIDAuMDA4NjE0IiwgXAotICAgICAgICAgICIwLjAwODM5LCAwLjAwODU1MSwgMC4wMDg1ODcsIDAuMDA4NTk5LCAwLjAwODYwOSwgMC4wMDg2MTUsIDAuMDA4NjIxIiwgXAotICAgICAgICAgICIwLjAwODQxMiwgMC4wMDg1NjgsIDAuMDA4NjAyLCAwLjAwODYxNiwgMC4wMDg2MjcsIDAuMDA4NjM0LCAwLjAwODY0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDY3NjYsIDAuMDA2OTI2LCAwLjAwNjk0OSwgMC4wMDY5NTUsIDAuMDA2OTYxLCAwLjAwNjk2NSwgMC4wMDY5NzIiLCBcCi0gICAgICAgICAgIjAuMDA2NzMyLCAwLjAwNjg5NSwgMC4wMDY5MTcsIDAuMDA2OTI1LCAwLjAwNjkzLCAwLjAwNjkzNSwgMC4wMDY5MzUiLCBcCi0gICAgICAgICAgIjAuMDA2NzA0LCAwLjAwNjg3LCAwLjAwNjg5OCwgMC4wMDY5MDIsIDAuMDA2OTA4LCAwLjAwNjkxMSwgMC4wMDY5MTQiLCBcCi0gICAgICAgICAgIjAuMDA2NzA1LCAwLjAwNjg2NSwgMC4wMDY4OTUsIDAuMDA2ODk4LCAwLjAwNjkwOSwgMC4wMDY5MTYsIDAuMDA2OTE3IiwgXAotICAgICAgICAgICIwLjAwNjcwOSwgMC4wMDY4NjMsIDAuMDA2ODkxLCAwLjAwNjksIDAuMDA2OTA4LCAwLjAwNjkxMywgMC4wMDY5MTciLCBcCi0gICAgICAgICAgIjAuMDA2NzU4LCAwLjAwNjkwNCwgMC4wMDY5MywgMC4wMDY5MzgsIDAuMDA2OTQ1LCAwLjAwNjk0OSwgMC4wMDY5NTMiLCBcCi0gICAgICAgICAgIjAuMDA2NzA5LCAwLjAwNjg3OSwgMC4wMDY5MDksIDAuMDA2OTE4LCAwLjAwNjkyOCwgMC4wMDY5MzIsIDAuMDA2OTM2Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihRTikgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAxLjAzNDA5OwotICAgIGZ1bmN0aW9uIDogIk41IjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJEIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEzNDI3MiwgMC4yMTQ4MTQsIDAuMjg3MzkxLCAwLjMzOTEzNSwgMC40MjE4NzIsIDAuNDk0MjI4LCAwLjU5NzYzMiIsIFwKLSAgICAgICAgICAiMC4xNDI3NDcsIDAuMjIzMjkzLCAwLjI5NTg3MSwgMC4zNDc2MjEsIDAuNDMwMzQ3LCAwLjUwMjcwMywgMC42MDYwNDEiLCBcCi0gICAgICAgICAgIjAuMTUyNDIyLCAwLjIzMjk3LCAwLjMwNTU0MSwgMC4zNTcyOTYsIDAuNDQwMDI0LCAwLjUxMjQyMywgMC42MTU5MzYiLCBcCi0gICAgICAgICAgIjAuMTYxODM5LCAwLjI0MjM3NywgMC4zMTQ5NTUsIDAuMzY2Njk1LCAwLjQ0OTQzNSwgMC41MjE4NDksIDAuNjI1MTgiLCBcCi0gICAgICAgICAgIjAuMTcwODU0LCAwLjI1MTM5OCwgMC4zMjM5NzUsIDAuMzc1NzE0LCAwLjQ1ODQ1OCwgMC41MzA4NzMsIDAuNjM0MTgzIiwgXAotICAgICAgICAgICIwLjE4NDE1NCwgMC4yNjQ3MjIsIDAuMzM3MzA1LCAwLjM4OTA1MSwgMC40NzE3ODIsIDAuNTQ0MjA2LCAwLjY0NzY2NSIsIFwKLSAgICAgICAgICAiMC4xOTQ0NjIsIDAuMjc1MTAxLCAwLjM0NzY5NCwgMC4zOTkzOTcsIDAuNDgyMjA1LCAwLjU1NDYyNiwgMC42NTgxNzMiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDM4MTgsIDAuMTgzOCwgMC4zMjg5NSwgMC40MzU1OTQsIDAuNjA0NDA1LCAwLjc1MjgzLCAwLjk2NTc5MSIsIFwKLSAgICAgICAgICAiMC4wNDM4MTQsIDAuMTgzNzk5LCAwLjMyOTA3MSwgMC40MzU1OSwgMC42MDM4NjIsIDAuNzUzNTY4LCAwLjk2NTE3MSIsIFwKLSAgICAgICAgICAiMC4wNDM4MTUsIDAuMTgzNzk5LCAwLjMyODk4MywgMC40MzU1ODEsIDAuNjAzODYyLCAwLjc1MjYwMywgMC45NjgzNzIiLCBcCi0gICAgICAgICAgIjAuMDQzODc2LCAwLjE4MzgxLCAwLjMyOTA4NSwgMC40MzU2MiwgMC42MDU1NTcsIDAuNzUyNzE3LCAwLjk2NTc0NiIsIFwKLSAgICAgICAgICAiMC4wNDM4MzYsIDAuMTgzODA4LCAwLjMyOTMxNCwgMC40MzU2MDUsIDAuNjA1NTUxLCAwLjc1MjcxMSwgMC45NjU1NzYiLCBcCi0gICAgICAgICAgIjAuMDQzODM0LCAwLjE4MzgwNiwgMC4zMjkyNjgsIDAuNDM1NTg4LCAwLjYwNTUyMiwgMC43NTM4MDQsIDAuOTY4Mjk1IiwgXAotICAgICAgICAgICIwLjA0Mzk4NywgMC4xODM4NTEsIDAuMzI5ODc2LCAwLjQzNTM5OCwgMC42MDU3MDIsIDAuNzU0OTIxLCAwLjk2NjE1OSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExMDE0MiwgMC4xODY5MDgsIDAuMjYwNTc5LCAwLjMxMzE1MywgMC4zOTczMDcsIDAuNDcwODksIDAuNTc1OTU4IiwgXAotICAgICAgICAgICIwLjExOTE2LCAwLjE5NTkxNiwgMC4yNjk1ODIsIDAuMzIyMTcyLCAwLjQwNjMxNywgMC40Nzk5MzMsIDAuNTg1MTIzIiwgXAotICAgICAgICAgICIwLjEzMDAwOSwgMC4yMDY3NTYsIDAuMjgwMzc5LCAwLjMzMzAwMSwgMC40MTcxNjgsIDAuNDkwNzcsIDAuNTk1OTkzIiwgXAotICAgICAgICAgICIwLjE0MDU4NCwgMC4yMTczMzMsIDAuMjkxMDA2LCAwLjM0MzU4MSwgMC40Mjc3MDYsIDAuNTAxMjc5LCAwLjYwNjM3NCIsIFwKLSAgICAgICAgICAiMC4xNTA3MDksIDAuMjI3NDc3LCAwLjMwMTEzMiwgMC4zNTM3MjgsIDAuNDM3ODgyLCAwLjUxMTUsIDAuNjE2NyIsIFwKLSAgICAgICAgICAiMC4xNjU4NDQsIDAuMjQyNjA0LCAwLjMxNjIzNiwgMC4zNjg4NTUsIDAuNDUyOTc2LCAwLjUyNjUxNywgMC42MzE3MDMiLCBcCi0gICAgICAgICAgIjAuMTc3NzQyLCAwLjI1NDUzMiwgMC4zMjgyMDQsIDAuMzgwNzg3LCAwLjQ2NDkzNSwgMC41Mzg2MTksIDAuNjQzNjgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzU3MSwgMC4xNzg0OTUsIDAuMzI2NDQsIDAuNDMyMTIyLCAwLjYwMzIwMywgMC43NDk4NDcsIDAuOTY0Mjk1IiwgXAotICAgICAgICAgICIwLjAzNTY5NCwgMC4xNzg0ODYsIDAuMzI2NDIxLCAwLjQzMjcxNCwgMC42MDMxNjgsIDAuNzUxNDE1LCAwLjk2MzcxMSIsIFwKLSAgICAgICAgICAiMC4wMzU2OTQsIDAuMTc4MDQ5LCAwLjMyNTMyMywgMC40MzIxMjcsIDAuNjAzMjM0LCAwLjc1MjQxLCAwLjk2MzcwOSIsIFwKLSAgICAgICAgICAiMC4wMzU3NDQsIDAuMTc4NTQ3LCAwLjMyNjQ0LCAwLjQzMTI4NCwgMC42MDMxMDksIDAuNzQ5NjY4LCAwLjk2NDg4OSIsIFwKLSAgICAgICAgICAiMC4wMzU2ODksIDAuMTc4NTEyLCAwLjMyNjM1NywgMC40MzE1MSwgMC42MDMxNzUsIDAuNzUxNDIzLCAwLjk2Mzc4MiIsIFwKLSAgICAgICAgICAiMC4wMzU4NDcsIDAuMTc4MDcyLCAwLjMyNjE3MSwgMC40MzEyODMsIDAuNjAzMDgyLCAwLjc1MTgyMSwgMC45NjUzNjMiLCBcCi0gICAgICAgICAgIjAuMDM1ODQsIDAuMTc4NTU0LCAwLjMyNjQyNCwgMC40MzIxMDEsIDAuNjAyMzA2LCAwLjc1MDc5OSwgMC45NjUyODIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiR04iOwotICAgICAgdGltaW5nX3NlbnNlIDogbm9uX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiBmYWxsaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTg5MDk2LCAwLjI2OTc1LCAwLjM0MjMyNywgMC4zOTQwNjMsIDAuNDc2OCwgMC41NDkyMTksIDAuNjUyNjg2IiwgXAotICAgICAgICAgICIwLjE5ODU5MSwgMC4yNzkyMzMsIDAuMzUxODI1LCAwLjQwMzU0NywgMC40ODYyODgsIDAuNTU4NzE1LCAwLjY2MjE3NSIsIFwKLSAgICAgICAgICAiMC4yMDg1NjQsIDAuMjg5MjE3LCAwLjM2MTc5MywgMC40MTM1MzIsIDAuNDk2MjY5LCAwLjU2ODY4NSwgMC42NzIxNTgiLCBcCi0gICAgICAgICAgIjAuMjE2MDkzLCAwLjI5NjczOSwgMC4zNjkzMiwgMC40MjEwNTEsIDAuNTAzODA2LCAwLjU3NjIwNCwgMC42Nzk2NjkiLCBcCi0gICAgICAgICAgIjAuMjIyNTcxLCAwLjMwMzE4MSwgMC4zNzU4LCAwLjQyNzUwMSwgMC41MTAyNzQsIDAuNTgyNjY0LCAwLjY4NjE1OCIsIFwKLSAgICAgICAgICAiMC4yMzExNDksIDAuMzExNzcyLCAwLjM4NDM1MywgMC40MzYwNzMsIDAuNTE4ODI3LCAwLjU5MTI2MywgMC42OTQ3NTgiLCBcCi0gICAgICAgICAgIjAuMjM3NjM5LCAwLjMxODI4NiwgMC4zOTA4NjgsIDAuNDQyNTg2LCAwLjUyNTM0MywgMC41OTc3NTcsIDAuNzAxMzAyIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQzOTczLCAwLjE4MzgwNywgMC4zMjk4NDgsIDAuNDM1NjAxLCAwLjYwNTU1MywgMC43NTM4NTUsIDAuOTY4MzIyIiwgXAotICAgICAgICAgICIwLjA0NDA5MiwgMC4xODM4ODgsIDAuMzI5ODk1LCAwLjQzNTYxOSwgMC42MDU1NDIsIDAuNzUzODA0LCAwLjk2ODMxMSIsIFwKLSAgICAgICAgICAiMC4wNDM5NzIsIDAuMTgzODA4LCAwLjMyOTgzOSwgMC40MzU1OTUsIDAuNjA1NTU1LCAwLjc1Mzg3MiwgMC45NjgzMjIiLCBcCi0gICAgICAgICAgIjAuMDQ0MDIxLCAwLjE4Mzg3LCAwLjMyOTQzMywgMC40MzU1NzEsIDAuNjA1NjExLCAwLjc1Mzc2NywgMC45NjgyNjkiLCBcCi0gICAgICAgICAgIjAuMDQzOTczLCAwLjE4Mzg3MiwgMC4zMjkzNjEsIDAuNDM1NjI3LCAwLjYwNTUyMSwgMC43NTM4MSwgMC45NjgzMDEiLCBcCi0gICAgICAgICAgIjAuMDQzOTgsIDAuMTgzODY1LCAwLjMyOTM1LCAwLjQzNTQ0NCwgMC42MDU1MDQsIDAuNzUyOTIzLCAwLjk2ODI5OCIsIFwKLSAgICAgICAgICAiMC4wNDM5OTYsIDAuMTgzODY1LCAwLjMyOTM1MywgMC40MzUwMzgsIDAuNjA1NTA3LCAwLjc1NDc5MiwgMC45NjYyMTMiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNzg1OCwgMC4yNTUzMzEsIDAuMzI4OTk0LCAwLjM4MTU5MiwgMC40NjU3MjcsIDAuNTM5MzU2LCAwLjY0NDUyMyIsIFwKLSAgICAgICAgICAiMC4xODgxMjYsIDAuMjY0ODgsIDAuMzM4NTQ1LCAwLjM5MTEyNCwgMC40NzUyNzksIDAuNTQ4OSwgMC42NTQwOTIiLCBcCi0gICAgICAgICAgIjAuMTk4MDYsIDAuMjc0ODExLCAwLjM0ODQ3NywgMC40MDEwNTQsIDAuNDg1MjExLCAwLjU1ODgzLCAwLjY2NDAyIiwgXAotICAgICAgICAgICIwLjIwNTY0NywgMC4yODIzOTYsIDAuMzU2MDU4LCAwLjQwODY2NSwgMC40OTI3OSwgMC41NjY0MjcsIDAuNjcxNTg4IiwgXAotICAgICAgICAgICIwLjIxMjEyOCwgMC4yODg4NzUsIDAuMzYyNTQ0LCAwLjQxNTEyMiwgMC40OTkyNzQsIDAuNTcyODk3LCAwLjY3ODA4NiIsIFwKLSAgICAgICAgICAiMC4yMjA3NTgsIDAuMjk3NTEsIDAuMzcxMjU5LCAwLjQyMzg0LCAwLjUwNzk5MiwgMC41ODE1MzMsIDAuNjg2Nzk0IiwgXAotICAgICAgICAgICIwLjIyNzEyLCAwLjMwMzg4NCwgMC4zNzc1NDksIDAuNDMwMTM4LCAwLjUxNDA4OCwgMC41ODc3MTIsIDAuNjkzMDgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzU2NTksIDAuMTc4NTM0LCAwLjMyNjQwOSwgMC40MzI3NDQsIDAuNjAzMTYyLCAwLjc1MTQxOSwgMC45NjU3MDQiLCBcCi0gICAgICAgICAgIjAuMDM1NjM3LCAwLjE3ODUzNSwgMC4zMjY0MTUsIDAuNDMyMTEzLCAwLjYwMzE2MSwgMC43NTE0NCwgMC45NjM3MTciLCBcCi0gICAgICAgICAgIjAuMDM1NjM1LCAwLjE3Nzk5NSwgMC4zMjY0MTgsIDAuNDMyNDY4LCAwLjYwMzE3NywgMC43NTE0MzYsIDAuOTYzNzEyIiwgXAotICAgICAgICAgICIwLjAzNTY2LCAwLjE3ODUyOSwgMC4zMjY0LCAwLjQzMjc3MiwgMC42MDMxNTYsIDAuNzUxMzM5LCAwLjk2NTcwMSIsIFwKLSAgICAgICAgICAiMC4wMzU2NDEsIDAuMTc4MzcyLCAwLjMyNjQxNiwgMC40MzIwOTUsIDAuNjAyMzEyLCAwLjc1MTQzNywgMC45NjM3MDkiLCBcCi0gICAgICAgICAgIjAuMDM1NjYsIDAuMTc4NTM4LCAwLjMyNjQxNCwgMC40MzIxMjIsIDAuNjAzMTU5LCAwLjc1MTQ3NiwgMC45NjU3MjIiLCBcCi0gICAgICAgICAgIjAuMDM1NjU4LCAwLjE3ODUzNiwgMC4zMjY0MSwgMC40MzI2OTksIDAuNjAzMTY3LCAwLjc1MTQ3MywgMC45NjU3MDMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUk4iOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJpc2luZ19lZGdlOwotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE2Nzc1MywgMC4yNDQ1MDQsIDAuMzE4MTY3LCAwLjM3MDcyNiwgMC40NTQ4OTksIDAuNTI4NDM3LCAwLjYzMzcwMiIsIFwKLSAgICAgICAgICAiMC4xNzYzNjQsIDAuMjUzMTE5LCAwLjMyNjc4NSwgMC4zNzkzNjUsIDAuNDYzNTIsIDAuNTM3MTM5LCAwLjY0MjMzIiwgXAotICAgICAgICAgICIwLjE4NzEzOCwgMC4yNjM4OTMsIDAuMzM3NTU5LCAwLjM5MDEzOSwgMC40NzQyOTQsIDAuNTQ3OTE0LCAwLjY1MzEwMyIsIFwKLSAgICAgICAgICAiMC4xOTc0NDUsIDAuMjc0MTk3LCAwLjM0Nzg2MywgMC40MDA0NDEsIDAuNDg0NTk3LCAwLjU1ODIxOCwgMC42NjM0MDUiLCBcCi0gICAgICAgICAgIjAuMjA3MDcxLCAwLjI4MzgyMywgMC4zNTc0ODcsIDAuNDEwMDY4LCAwLjQ5NDIyLCAwLjU2Nzg0NiwgMC42NzMwMTgiLCBcCi0gICAgICAgICAgIjAuMjIxMDE2LCAwLjI5Nzc3LCAwLjM3MTQzNSwgMC40MjQwMTYsIDAuNTA4MTY5LCAwLjU4MTc5LCAwLjY4Njk3OSIsIFwKLSAgICAgICAgICAiMC4yMzE2MTcsIDAuMzA4MzczLCAwLjM4MjA0LCAwLjQzNDYxOSwgMC41MTg3NzQsIDAuNTkyMzkyLCAwLjY5NzU3OSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzNTYzNiwgMC4xNzgzMzksIDAuMzI2Mzk5LCAwLjQzMjQ4NywgMC42MDMxNTUsIDAuNzUxOTA1LCAwLjk2NTcxMyIsIFwKLSAgICAgICAgICAiMC4wMzU2NCwgMC4xNzg1MzMsIDAuMzI2NDEyLCAwLjQzMjEwOSwgMC42MDMxNjIsIDAuNzUxNDM3LCAwLjk2MzcxMiIsIFwKLSAgICAgICAgICAiMC4wMzU2MzksIDAuMTc4NTMzLCAwLjMyNjQxMSwgMC40MzIxMDksIDAuNjAzMTYyLCAwLjc1MTQ0MiwgMC45NjM3MSIsIFwKLSAgICAgICAgICAiMC4wMzU2MzcsIDAuMTc4NTMzLCAwLjMyNjQxNywgMC40MzIwOTYsIDAuNjAzMTcyLCAwLjc1MTQ0NywgMC45NjM3MDgiLCBcCi0gICAgICAgICAgIjAuMDM1NjU4LCAwLjE3ODUzNSwgMC4zMjY0MTEsIDAuNDMyMTExLCAwLjYwMzE2NSwgMC43NTE0NzgsIDAuOTY1NzEiLCBcCi0gICAgICAgICAgIjAuMDM1NjM2LCAwLjE3ODUzNSwgMC4zMjY0MTYsIDAuNDMyMTIzLCAwLjYwMzE2MSwgMC43NTE0NDgsIDAuOTYzNzEyIiwgXAotICAgICAgICAgICIwLjAzNTY0NywgMC4xNzg1MzUsIDAuMzI2NDE4LCAwLjQzMjA5NSwgMC42MDMxNzIsIDAuNzUxNDQxLCAwLjk2MzcwNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogZmFsbGluZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE3NDcyOSwgMC4yNTUyODEsIDAuMzI3ODUzLCAwLjM3OTYwMiwgMC40NjIzMzcsIDAuNTM0NzQ0LCAwLjYzODIzOCIsIFwKLSAgICAgICAgICAiMC4xODQ0MDMsIDAuMjY0OTYxLCAwLjMzNzUzNywgMC4zODkyNzMsIDAuNDcyMDE1LCAwLjU0NDMzMiwgMC42NDc2OTgiLCBcCi0gICAgICAgICAgIjAuMTk2NDY5LCAwLjI3NzAxMiwgMC4zNDk1OTUsIDAuNDAxMzA5LCAwLjQ4NDA2NiwgMC41NTY0NzcsIDAuNjU5OTA2IiwgXAotICAgICAgICAgICIwLjIwNzczNCwgMC4yODgyNzYsIDAuMzYwODYsIDAuNDEyNTc0LCAwLjQ5NTMzMSwgMC41Njc3NDIsIDAuNjcxMjIzIiwgXAotICAgICAgICAgICIwLjIxNzU1OSwgMC4yOTgxMTYsIDAuMzcwNjkyLCAwLjQyMjQyOCwgMC41MDUxNzMsIDAuNTc3NTc2LCAwLjY4MTA5IiwgXAotICAgICAgICAgICIwLjIzMTc3MiwgMC4zMTIzMDksIDAuMzg0ODg3LCAwLjQzNjYyOCwgMC41MTkzNywgMC41OTE3NzIsIDAuNjk1MTkzIiwgXAotICAgICAgICAgICIwLjI0NDQ1NiwgMC4zMjUwMjgsIDAuMzk3NjA3LCAwLjQ0OTM0NiwgMC41MzIwOSwgMC42MDQ0OTQsIDAuNzA4MDA3Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQzODcsIDAuMTgzODEsIDAuMzI5NTMxLCAwLjQzNTYyMiwgMC42MDU1MiwgMC43NTM4MTMsIDAuOTY4MTc5IiwgXAotICAgICAgICAgICIwLjA0NCwgMC4xODM4MjUsIDAuMzI5MzksIDAuNDM1NjA4LCAwLjYwNTUxOCwgMC43NTM3MTUsIDAuOTY1ODQ2IiwgXAotICAgICAgICAgICIwLjA0Mzg2LCAwLjE4MzgxMiwgMC4zMjkyNDksIDAuNDM1NTc2LCAwLjYwNTUxNiwgMC43NTQ2NDUsIDAuOTY4MTMiLCBcCi0gICAgICAgICAgIjAuMDQzODYyLCAwLjE4MzgxMiwgMC4zMjkzODQsIDAuNDM1NTkyLCAwLjYwNTUyLCAwLjc1Mzg1NywgMC45NjgxMzciLCBcCi0gICAgICAgICAgIjAuMDQzODcxLCAwLjE4MzgxNCwgMC4zMjkzNDUsIDAuNDM1NjEzLCAwLjYwNTYzMSwgMC43NTM3NCwgMC45NjYyNjMiLCBcCi0gICAgICAgICAgIjAuMDQzOTE3LCAwLjE4MzgxNCwgMC4zMjkwOTksIDAuNDM1NjIzLCAwLjYwNTUxNCwgMC43NTQ3MzMsIDAuOTY3OTYyIiwgXAotICAgICAgICAgICIwLjA0NDAyMywgMC4xODM4NDQsIDAuMzI5Mzk3LCAwLjQzNTYxMiwgMC42MDU1MTksIDAuNzU0NjM0LCAwLjk2ODEyNyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogY2xlYXI7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc4ODU5LCAwLjE1OTMyOCwgMC4yMzE4NzcsIDAuMjgzNjIxLCAwLjM2NjM0OCwgMC40Mzg3NzMsIDAuNTQyMjI5IiwgXAotICAgICAgICAgICIwLjA4NzIyOSwgMC4xNjc2ODksIDAuMjQwMjU4LCAwLjI5MTk4MiwgMC4zNzQ3NjcsIDAuNDQ3MTU2LCAwLjU1MDYyOCIsIFwKLSAgICAgICAgICAiMC4wOTc1ODgsIDAuMTc4MDQ3LCAwLjI1MDYyNiwgMC4zMDIzNjUsIDAuMzg1MDkxLCAwLjQ1NzUyOCwgMC41NjA5NjciLCBcCi0gICAgICAgICAgIjAuMTA3OTE3LCAwLjE4ODM3NSwgMC4yNjA5NTgsIDAuMzEyNzAxLCAwLjM5NTQyOCwgMC40Njc4NzcsIDAuNTcxMzA4IiwgXAotICAgICAgICAgICIwLjExNzg0OCwgMC4xOTgzNjMsIDAuMjcwOTQyLCAwLjMyMjY3NSwgMC40MDU0MjIsIDAuNDc3ODQ4LCAwLjU4MTMxMiIsIFwKLSAgICAgICAgICAiMC4xMzI5MjgsIDAuMjEzNzk5LCAwLjI4NjM4LCAwLjMzODEyNywgMC40MjA4NDcsIDAuNDkzMjc4LCAwLjU5Njc0MiIsIFwKLSAgICAgICAgICAiMC4xNDQ2NjcsIDAuMjI2MjE1LCAwLjI5ODc4MiwgMC4zNTA1MSwgMC40MzMyNjgsIDAuNTA1Njc0LCAwLjYwOTE3NSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0MzQzNiwgMC4xODM3MiwgMC4zMjk4MSwgMC40MzU1NzUsIDAuNjA1NTE3LCAwLjc1Mzc1OCwgMC45NjgzMTYiLCBcCi0gICAgICAgICAgIjAuMDQzNDA5LCAwLjE4MzcwMywgMC4zMjkyNjMsIDAuNDM1NDY3LCAwLjYwNTY3NiwgMC43NTQ4MjcsIDAuOTY1MjE1IiwgXAotICAgICAgICAgICIwLjA0MzM2MiwgMC4xODM3MDksIDAuMzI5MjUzLCAwLjQzNTU2MSwgMC42MDU0OSwgMC43NTQ3NzcsIDAuOTY4MjgxIiwgXAotICAgICAgICAgICIwLjA0MzUzNSwgMC4xODM3MjksIDAuMzI5MzcyLCAwLjQzNTU5NSwgMC42MDU0NzcsIDAuNzUzNzIsIDAuOTY4MjgzIiwgXAotICAgICAgICAgICIwLjA0NDA5LCAwLjE4MzgyNSwgMC4zMjkzODcsIDAuNDM1NTU4LCAwLjYwNTU0LCAwLjc1MzgyOSwgMC45NjgzMDkiLCBcCi0gICAgICAgICAgIjAuMDQ1MzczLCAwLjE4NDE2NiwgMC4zMjk4ODEsIDAuNDM1NjAzLCAwLjYwNTUwNSwgMC43NTM4MDUsIDAuOTY4MzA1IiwgXAotICAgICAgICAgICIwLjA0NjY4MSwgMC4xODQ3MTYsIDAuMzI5OTIsIDAuNDM1NjU1LCAwLjYwNTU4OSwgMC43NTM3NDMsIDAuOTY4MzU3Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDUzNDE0LCAwLjEzMDI2LCAwLjIwMzk2MiwgMC4yNTY0OTcsIDAuMzQwNTc0LCAwLjQxNDE0OCwgMC41MTkzMDYiLCBcCi0gICAgICAgICAgIjAuMDYzNDA2LCAwLjE0MDI2NSwgMC4yMTM5NzEsIDAuMjY2NTExLCAwLjM1MDU4NiwgMC40MjQxNjIsIDAuNTI5MjkzIiwgXAotICAgICAgICAgICIwLjA3NTcwOSwgMC4xNTI1ODksIDAuMjI2MzAzLCAwLjI3ODg0NiwgMC4zNjI5MjUsIDAuNDM2NTAyLCAwLjU0MTY3NiIsIFwKLSAgICAgICAgICAiMC4wODc1ODYsIDAuMTY0NTAyLCAwLjIzODIzLCAwLjI5MDc3NSwgMC4zNzQ4NTgsIDAuNDQ4NDM4LCAwLjU1MzU5NyIsIFwKLSAgICAgICAgICAiMC4wOTgyNzgsIDAuMTc1MzgsIDAuMjQ5MDg5LCAwLjMwMTYzMywgMC4zODU3MTcsIDAuNDU5Mjk5LCAwLjU2NDQ0NSIsIFwKLSAgICAgICAgICAiMC4xMTI4OTEsIDAuMTkwNTgsIDAuMjY0MjY3LCAwLjMxNjgxMiwgMC40MDA4OTUsIDAuNDc0NDc3LCAwLjU3OTY0IiwgXAotICAgICAgICAgICIwLjEyMzk3LCAwLjIwMjIyMSwgMC4yNzU4OTQsIDAuMzI4NDM0LCAwLjQxMjUyMSwgMC40ODYwOTYsIDAuNTkxMjY4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM0ODIsIDAuMTc4MzY5LCAwLjMyNjQ0MywgMC40MzIxMjgsIDAuNjAzMjM3LCAwLjc1MjA4MiwgMC45NjM4MjgiLCBcCi0gICAgICAgICAgIjAuMDM0ODQxLCAwLjE3ODM5NCwgMC4zMjYzOTgsIDAuNDMyNzQyLCAwLjYwMzE5MSwgMC43NTIxNTIsIDAuOTY1NzA3IiwgXAotICAgICAgICAgICIwLjAzNDk0MiwgMC4xNzg0NTEsIDAuMzI2NDE4LCAwLjQzMTg1OCwgMC42MDMwMjEsIDAuNzUyMTI4LCAwLjk2NTEzNSIsIFwKLSAgICAgICAgICAiMC4wMzU1MTMsIDAuMTc4MTM3LCAwLjMyNjQ0NSwgMC40MzIxNzMsIDAuNjAzMTk0LCAwLjc1MjEzNiwgMC45NjQ5NDciLCBcCi0gICAgICAgICAgIjAuMDM2ODE5LCAwLjE3ODY2OCwgMC4zMjY1MDksIDAuNDMyODQ4LCAwLjYwMzE5LCAwLjc1MjEzOSwgMC45NjQ0MTkiLCBcCi0gICAgICAgICAgIjAuMDM4OTM3LCAwLjE3ODk3MywgMC4zMjY1MDUsIDAuNDMyODA5LCAwLjYwMjMxNywgMC43NTIyNjQsIDAuOTY0NTU2IiwgXAotICAgICAgICAgICIwLjA0MDc0NSwgMC4xNzk1NzksIDAuMzI2NDMyLCAwLjQzMjc3NywgMC42MDMwOTMsIDAuNzUyMjA3LCAwLjk2NTE4MSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkQiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA4MzA2LCAwLjAwODQ2OSwgMC4wMDg0OTUsIDAuMDA4NTAyLCAwLjAwODUwOCwgMC4wMDg1MTMsIDAuMDA4NTE4IiwgXAotICAgICAgICAgICIwLjAwODI5OSwgMC4wMDg0NjMsIDAuMDA4NDg4LCAwLjAwODQ5NiwgMC4wMDg1MDMsIDAuMDA4NTA2LCAwLjAwODUxIiwgXAotICAgICAgICAgICIwLjAwODI5NCwgMC4wMDg0NTgsIDAuMDA4NDgzLCAwLjAwODQ5MiwgMC4wMDg0OTgsIDAuMDA4NTAxLCAwLjAwODUwNCIsIFwKLSAgICAgICAgICAiMC4wMDgyOTQsIDAuMDA4NDU2LCAwLjAwODQ4MiwgMC4wMDg0OSwgMC4wMDg0OTEsIDAuMDA4NTA4LCAwLjAwODUwNCIsIFwKLSAgICAgICAgICAiMC4wMDgyODgsIDAuMDA4NDUsIDAuMDA4NDc2LCAwLjAwODQ4NCwgMC4wMDg0OTEsIDAuMDA4NDk1LCAwLjAwODUwMiIsIFwKLSAgICAgICAgICAiMC4wMDgyNzYsIDAuMDA4NDQyLCAwLjAwODQ2OCwgMC4wMDg0NzcsIDAuMDA4NDg0LCAwLjAwODQ4OCwgMC4wMDg0OTEiLCBcCi0gICAgICAgICAgIjAuMDA4MjY0LCAwLjAwODQzNywgMC4wMDg0NTksIDAuMDA4NDc0LCAwLjAwODQ4MSwgMC4wMDg0ODUsIDAuMDA4NDg5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDc2NTksIDAuMDA3ODQxLCAwLjAwNzg1OSwgMC4wMDc4NjIsIDAuMDA3ODczLCAwLjAwNzg4MywgMC4wMDc4ODYiLCBcCi0gICAgICAgICAgIjAuMDA3NjUsIDAuMDA3ODI1LCAwLjAwNzg1NywgMC4wMDc4NTcsIDAuMDA3ODcxLCAwLjAwNzg3NCwgMC4wMDc4NjkiLCBcCi0gICAgICAgICAgIjAuMDA3NjQ0LCAwLjAwNzgxNywgMC4wMDc4NCwgMC4wMDc4NDksIDAuMDA3ODU1LCAwLjAwNzg1OSwgMC4wMDc4NjIiLCBcCi0gICAgICAgICAgIjAuMDA3NjM0LCAwLjAwNzgwOCwgMC4wMDc4MzMsIDAuMDA3ODQsIDAuMDA3ODQ3LCAwLjAwNzg1NywgMC4wMDc4NTMiLCBcCi0gICAgICAgICAgIjAuMDA3NjI2LCAwLjAwNzgwMSwgMC4wMDc4MjYsIDAuMDA3ODM0LCAwLjAwNzg0MSwgMC4wMDc4NDQsIDAuMDA3ODQ4IiwgXAotICAgICAgICAgICIwLjAwNzYyOCwgMC4wMDc3OTksIDAuMDA3ODI0LCAwLjAwNzgzMiwgMC4wMDc4NDIsIDAuMDA3ODM4LCAwLjAwNzg0NiIsIFwKLSAgICAgICAgICAiMC4wMDc2MjYsIDAuMDA3OCwgMC4wMDc4MjcsIDAuMDA3ODM1LCAwLjAwNzg0MiwgMC4wMDc4NDYsIDAuMDA3ODQ5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiR04iOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEwMDA1LCAwLjAxMDE3MiwgMC4wMTAxOTgsIDAuMDEwMjA2LCAwLjAxMDIxOSwgMC4wMTAyMTYsIDAuMDEwMjE2IiwgXAotICAgICAgICAgICIwLjAwOTk5MywgMC4wMTAxNTYsIDAuMDEwMTc2LCAwLjAxMDE5NywgMC4wMTAxOTMsIDAuMDEwMjAxLCAwLjAxMDIwNSIsIFwKLSAgICAgICAgICAiMC4wMDk5ODcsIDAuMDEwMTU0LCAwLjAxMDE4NCwgMC4wMTAxODgsIDAuMDEwMjAxLCAwLjAxMDIwMywgMC4wMTAyMDEiLCBcCi0gICAgICAgICAgIjAuMDA5OTkyLCAwLjAxMDE1OSwgMC4wMTAxODUsIDAuMDEwMTkzLCAwLjAxMDIsIDAuMDEwMjAzLCAwLjAxMDIwNiIsIFwKLSAgICAgICAgICAiMC4wMDk5OTUsIDAuMDEwMTU5LCAwLjAxMDE4OCwgMC4wMTAxOTMsIDAuMDEwMjAyLCAwLjAxMDIwNCwgMC4wMTAyMDciLCBcCi0gICAgICAgICAgIjAuMDEwMDA3LCAwLjAxMDE3LCAwLjAxMDE5NSwgMC4wMTAyMDQsIDAuMDEwMjExLCAwLjAxMDIxNiwgMC4wMTAyMjEiLCBcCi0gICAgICAgICAgIjAuMDEwMDA3LCAwLjAxMDE3NywgMC4wMTAyMDMsIDAuMDEwMjEyLCAwLjAxMDIxOCwgMC4wMTAyMTcsIDAuMDEwMjI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDk0ODQsIDAuMDA5NjU3LCAwLjAwOTY4MSwgMC4wMDk2ODgsIDAuMDA5Njk0LCAwLjAwOTY5NywgMC4wMDk3MDEiLCBcCi0gICAgICAgICAgIjAuMDA5NDYxLCAwLjAwOTYzNiwgMC4wMDk2NjUsIDAuMDA5NjY1LCAwLjAwOTY3NCwgMC4wMDk2NzcsIDAuMDA5NjgiLCBcCi0gICAgICAgICAgIjAuMDA5NDYzLCAwLjAwOTYzNywgMC4wMDk2NiwgMC4wMDk2NjgsIDAuMDA5Njc0LCAwLjAwOTY3NywgMC4wMDk2OCIsIFwKLSAgICAgICAgICAiMC4wMDk0NywgMC4wMDk2NDIsIDAuMDA5NjY2LCAwLjAwOTY3MywgMC4wMDk2OCwgMC4wMDk2ODQsIDAuMDA5Njg2IiwgXAotICAgICAgICAgICIwLjAwOTQ3LCAwLjAwOTY0NCwgMC4wMDk2NjcsIDAuMDA5NjcyLCAwLjAwOTY4LCAwLjAwOTY4NywgMC4wMDk2ODYiLCBcCi0gICAgICAgICAgIjAuMDA5NDg0LCAwLjAwOTY1NywgMC4wMDk2ODIsIDAuMDA5Njg5LCAwLjAwOTY5NCwgMC4wMDk2OTksIDAuMDA5NyIsIFwKLSAgICAgICAgICAiMC4wMDk0ODIsIDAuMDA5NjU3LCAwLjAwOTY4MSwgMC4wMDk2OSwgMC4wMDk2OTQsIDAuMDA5Njk3LCAwLjAwOTY5OSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwOTg4LCAwLjAxMDA0MSwgMC4wMTAwNjYsIDAuMDEwMDc3LCAwLjAxMDA4MSwgMC4wMTAwODQsIDAuMDEwMDg3IiwgXAotICAgICAgICAgICIwLjAwOTg2LCAwLjAxMDAyNywgMC4wMTAwNTIsIDAuMDEwMDU3LCAwLjAxMDA2NiwgMC4wMTAwNjksIDAuMDEwMDc0IiwgXAotICAgICAgICAgICIwLjAwOTg2LCAwLjAxMDAyMywgMC4wMTAwNDksIDAuMDEwMDU2LCAwLjAxMDA2MywgMC4wMTAwNjcsIDAuMDEwMDciLCBcCi0gICAgICAgICAgIjAuMDA5ODU4LCAwLjAxMDAyMSwgMC4wMTAwNDcsIDAuMDEwMDUyLCAwLjAxMDA2MywgMC4wMTAwNjEsIDAuMDEwMDcyIiwgXAotICAgICAgICAgICIwLjAwOTg2NywgMC4wMTAwMywgMC4wMTAwNTUsIDAuMDEwMDYyLCAwLjAxMDA2OSwgMC4wMTAwNzMsIDAuMDEwMDc2IiwgXAotICAgICAgICAgICIwLjAwOTg3OCwgMC4wMTAwMzksIDAuMDEwMDY0LCAwLjAxMDA2NywgMC4wMTAwNzksIDAuMDEwMDg3LCAwLjAxMDA4NSIsIFwKLSAgICAgICAgICAiMC4wMDk4NzUsIDAuMDEwMDQxLCAwLjAxMDA2NiwgMC4wMTAwNzQsIDAuMDEwMDc1LCAwLjAxMDA4NCwgMC4wMTAwODgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwODYzNCwgMC4wMDg4MDgsIDAuMDA4ODMsIDAuMDA4ODQxLCAwLjAwODg0NywgMC4wMDg4NDksIDAuMDA4ODUxIiwgXAotICAgICAgICAgICIwLjAwODYxNSwgMC4wMDg3OTEsIDAuMDA4ODE5LCAwLjAwODgxOSwgMC4wMDg4MjgsIDAuMDA4ODMyLCAwLjAwODgzNCIsIFwKLSAgICAgICAgICAiMC4wMDg2MDksIDAuMDA4Nzg0LCAwLjAwODgwOCwgMC4wMDg4MTYsIDAuMDA4ODI1LCAwLjAwODgyOSwgMC4wMDg4MjgiLCBcCi0gICAgICAgICAgIjAuMDA4NjEzLCAwLjAwODc4NiwgMC4wMDg4MSwgMC4wMDg4MTcsIDAuMDA4ODI0LCAwLjAwODgyNywgMC4wMDg4MyIsIFwKLSAgICAgICAgICAiMC4wMDg2MTUsIDAuMDA4Nzg3LCAwLjAwODgxMSwgMC4wMDg4MTgsIDAuMDA4ODI1LCAwLjAwODgyOCwgMC4wMDg4MzEiLCBcCi0gICAgICAgICAgIjAuMDA4NjE1LCAwLjAwODc5LCAwLjAwODgxOCwgMC4wMDg4MjEsIDAuMDA4ODI3LCAwLjAwODgzNCwgMC4wMDg4MzMiLCBcCi0gICAgICAgICAgIjAuMDA4NjA3LCAwLjAwODc4LCAwLjAwODgwNSwgMC4wMDg4MTIsIDAuMDA4ODE4LCAwLjAwODgyMSwgMC4wMDg4MjQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDY3NjYsIDAuMDA2OTI2LCAwLjAwNjk0OSwgMC4wMDY5NTUsIDAuMDA2OTYxLCAwLjAwNjk2NSwgMC4wMDY5NzIiLCBcCi0gICAgICAgICAgIjAuMDA2NzMyLCAwLjAwNjg5NSwgMC4wMDY5MTcsIDAuMDA2OTI1LCAwLjAwNjkzLCAwLjAwNjkzNSwgMC4wMDY5MzUiLCBcCi0gICAgICAgICAgIjAuMDA2NzA0LCAwLjAwNjg3LCAwLjAwNjg5OCwgMC4wMDY5MDIsIDAuMDA2OTA4LCAwLjAwNjkxMSwgMC4wMDY5MTQiLCBcCi0gICAgICAgICAgIjAuMDA2NzA1LCAwLjAwNjg2NSwgMC4wMDY4OTUsIDAuMDA2ODk4LCAwLjAwNjkwOSwgMC4wMDY5MTYsIDAuMDA2OTE3IiwgXAotICAgICAgICAgICIwLjAwNjcwOSwgMC4wMDY4NjMsIDAuMDA2ODkxLCAwLjAwNjksIDAuMDA2OTA4LCAwLjAwNjkxMywgMC4wMDY5MTciLCBcCi0gICAgICAgICAgIjAuMDA2NzU4LCAwLjAwNjkwNCwgMC4wMDY5MywgMC4wMDY5MzgsIDAuMDA2OTQ1LCAwLjAwNjk0OSwgMC4wMDY5NTMiLCBcCi0gICAgICAgICAgIjAuMDA2NzA5LCAwLjAwNjg3OSwgMC4wMDY5MDksIDAuMDA2OTE4LCAwLjAwNjkyOCwgMC4wMDY5MzIsIDAuMDA2OTM2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDg1MDIsIDAuMDA4NjUyLCAwLjAwODY3LCAwLjAwODY3NSwgMC4wMDg2OCwgMC4wMDg2ODEsIDAuMDA4Njg0IiwgXAotICAgICAgICAgICIwLjAwODQ2OCwgMC4wMDg2MjIsIDAuMDA4NjQzLCAwLjAwODY0OCwgMC4wMDg2NTMsIDAuMDA4NjU1LCAwLjAwODY1OCIsIFwKLSAgICAgICAgICAiMC4wMDg0MjksIDAuMDA4NTg4LCAwLjAwODYxMiwgMC4wMDg2MTksIDAuMDA4NjI2LCAwLjAwODYyOSwgMC4wMDg2MzIiLCBcCi0gICAgICAgICAgIjAuMDA4Mzk2LCAwLjAwODU2MSwgMC4wMDg1OTMsIDAuMDA4NTk5LCAwLjAwODYwNywgMC4wMDg2MTUsIDAuMDA4NjE1IiwgXAotICAgICAgICAgICIwLjAwODM4OSwgMC4wMDg1NTQsIDAuMDA4NTg2LCAwLjAwODU5NiwgMC4wMDg2MDYsIDAuMDA4NjExLCAwLjAwODYxNCIsIFwKLSAgICAgICAgICAiMC4wMDgzOSwgMC4wMDg1NTEsIDAuMDA4NTg3LCAwLjAwODU5OSwgMC4wMDg2MDksIDAuMDA4NjE1LCAwLjAwODYyMSIsIFwKLSAgICAgICAgICAiMC4wMDg0MTIsIDAuMDA4NTY4LCAwLjAwODYwMiwgMC4wMDg2MTYsIDAuMDA4NjI3LCAwLjAwODYzNCwgMC4wMDg2NCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUk4pICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTU0OTUyOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTU0OTUyOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTUzOTQxOwotICAgIGNsb2NrIDogdHJ1ZTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDI1NzYsIDAuMDAyNTM2LCAwLjAwMjU0MiwgMC4wMDI1NjUsIDAuMDAyNTkxLCAwLjAwMjYyNiwgMC4wMDI2NTgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA0NTcsIDAuMDAwNDU0LCAwLjAwMDQ1NCwgMC4wMDA0NTQsIDAuMDAwNDU0LCAwLjAwMDQ1NCwgMC4wMDA0NTQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiR04iOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiRCZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzFfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wNzUsIC0wLjA2Mzc1LCAtMC4wNTEyNSwgLTAuMDQ1LCAtMC4wMzg3NSwgLTAuMDM1LCAtMC4wMjYyNSIsIFwKLSAgICAgICAgICAiLTAuMDgsIC0wLjA2ODc1LCAtMC4wNjI1LCAtMC4wNSwgLTAuMDUsIC0wLjA0LCAtMC4wMzc1IiwgXAotICAgICAgICAgICItMC4wOTI1LCAtMC4wODEyNSwgLTAuMDY4NzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNTI1LCAtMC4wNDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDk4NzUsIC0wLjA5Mzc1LCAtMC4wODEyNSwgLTAuMDc1LCAtMC4wNjg3NSwgLTAuMDU4NzUsIC0wLjA1NjI1IiwgXAotICAgICAgICAgICItMC4xMTEyNSwgLTAuMSwgLTAuMDkzNzUsIC0wLjA4MTI1LCAtMC4wNzUsIC0wLjA3MTI1LCAtMC4wNjg3NSIsIFwKLSAgICAgICAgICAiLTAuMTI3NSwgLTAuMTE2MjUsIC0wLjEwMzc1LCAtMC4wOTc1LCAtMC4wOTEyNSwgLTAuMDg3NSwgLTAuMDc4NzUiLCBcCi0gICAgICAgICAgIi0wLjEzNjI1LCAtMC4xMjUsIC0wLjExODc1LCAtMC4xMDYyNSwgLTAuMSwgLTAuMDk2MjUsIC0wLjA4NzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUk4iOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFEJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgZmFsbF9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMTQ5NzQ1LCAwLjE1ODkzNSwgMC4xNjk1MDksIDAuMTc5MjYsIDAuMTg4NjUzLCAwLjIwMjc2OCwgMC4yMTM5NjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiR04iOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIkQmU04iOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8xX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg3NSwgMC4wODI1LCAwLjA3LCAwLjA2Mzc1LCAwLjA1NzUsIDAuMDQ3NSwgMC4wNDUiLCBcCi0gICAgICAgICAgIjAuMDk4NzUsIDAuMDg3NSwgMC4wNzUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNTI1LCAwLjA1IiwgXAotICAgICAgICAgICIwLjExMTI1LCAwLjEsIDAuMDg3NSwgMC4wODEyNSwgMC4wNzUsIDAuMDY1LCAwLjA2MjUiLCBcCi0gICAgICAgICAgIjAuMTE3NSwgMC4xMDYyNSwgMC4xLCAwLjA4NzUsIDAuMDgxMjUsIDAuMDc3NSwgMC4wNjg3NSIsIFwKLSAgICAgICAgICAiMC4xMywgMC4xMTg3NSwgMC4xMDYyNSwgMC4xLCAwLjA5Mzc1LCAwLjA4Mzc1LCAwLjA4MTI1IiwgXAotICAgICAgICAgICIwLjE0LCAwLjEyODc1LCAwLjEyMjUsIDAuMTEsIDAuMTAzNzUsIDAuMSwgMC4wOTEyNSIsIFwKLSAgICAgICAgICAiMC4xNTUsIDAuMTQzNzUsIDAuMTMxMjUsIDAuMTI1LCAwLjExODc1LCAwLjEwODc1LCAwLjEiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFNOKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE0NjI0NDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE0NjI0NDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE0NTk1MTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA2NTIsIDAuMDAwNjUyLCAwLjAwMDY1MiwgMC4wMDA2NTIsIDAuMDAwNjUyLCAwLjAwMDY1MiwgMC4wMDA2NTIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA2NywgMC4wMDA2NTYsIDAuMDAwNjU1LCAwLjAwMDY1NCwgMC4wMDA2NTQsIDAuMDAwNjU0LCAwLjAwMDY1NCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQiOwotICAgICAgc2RmX2NvbmQgOiAiRCA9PSAxJ2IwIjsKLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjEwMTg5NiwgMC4xMTE2MjYsIDAuMTIzMjMxLCAwLjEzNDM4OCwgMC4xNDQ1NDEsIDAuMTU4NzE3LCAwLjE2OTU5MSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJHTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJlY292ZXJ5X3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUQmUk4iOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1JOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQocmVjb3ZlcnlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAwNjI1LCAtMC4wMTEyNSwgLTAuMDIzNzUsIC0wLjAzNjI1LCAtMC4wNDI1LCAtMC4wNTI1LCAtMC4wNTUiLCBcCi0gICAgICAgICAgIjAuMDA1LCAtMC4wMDYyNSwgLTAuMDE4NzUsIC0wLjAyNSwgLTAuMDMxMjUsIC0wLjA0MTI1LCAtMC4wNSIsIFwKLSAgICAgICAgICAiMC4wMTEyNSwgMCwgLTAuMDA2MjUsIC0wLjAxODc1LCAtMC4wMjUsIC0wLjAzNSwgLTAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMDIzNzUsIDAuMDEyNSwgMCwgLTAuMDA2MjUsIC0wLjAxODc1LCAtMC4wMjg3NSwgLTAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMDMsIDAuMDE4NzUsIDAuMDA2MjUsIDAsIC0wLjAwNjI1LCAtMC4wMTYyNSwgLTAuMDI1IiwgXAotICAgICAgICAgICIwLjA0LCAwLjAyODc1LCAwLjAxNjI1LCAwLjAxLCAwLjAwMzc1LCAtMC4wMDYyNSwgLTAuMDE1IiwgXAotICAgICAgICAgICIwLjA0MjUsIDAuMDM3NSwgMC4wMjUsIDAuMDEyNSwgMC4wMDYyNSwgLTAuMDAzNzUsIC0wLjAwNjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIHRpbWluZ190eXBlIDogcmVjb3ZlcnlfcmlzaW5nOwotICAgICAgd2hlbiA6ICJHTiI7Ci0gICAgICBzZGZfY29uZCA6ICJHTiA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChyZWNvdmVyeV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTg3NSwgMC4wMDc1LCAwLjAwNzUsIDAuMDAxMjUsIDAuMDAxMjUsIC0wLjAwMjUsIC0wLjAwNSIsIFwKLSAgICAgICAgICAiMC4wMjM3NSwgMC4wMTg3NSwgMC4wMTI1LCAwLjAwNjI1LCAwLjAwNjI1LCAwLjAwMjUsIDAiLCBcCi0gICAgICAgICAgIjAuMDMsIDAuMDI1LCAwLjAxODc1LCAwLjAxODc1LCAwLjAxMjUsIDAuMDA4NzUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMDQyNSwgMC4wMzEyNSwgMC4wMjUsIDAuMDI1LCAwLjAxODc1LCAwLjAxNSwgMC4wMTI1IiwgXAotICAgICAgICAgICIwLjA0MjUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMzEyNSwgMC4wMjUsIDAuMDIxMjUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMDUyNSwgMC4wNDc1LCAwLjA0MTI1LCAwLjAzNSwgMC4wMzUsIDAuMDMxMjUsIDAuMDIyNSIsIFwKLSAgICAgICAgICAiMC4wNjEyNSwgMC4wNTYyNSwgMC4wNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzMzc1LCAwLjAzMTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkdOIjsKLSAgICAgIHRpbWluZ190eXBlIDogcmVtb3ZhbF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEJlJOIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9STl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHJlbW92YWxfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM3NSwgMC4wNDI1LCAwLjA1NSwgMC4wNjc1LCAwLjA3Mzc1LCAwLjA4Mzc1LCAwLjA5MjUiLCBcCi0gICAgICAgICAgIjAuMDI2MjUsIDAuMDM3NSwgMC4wNSwgMC4wNTYyNSwgMC4wNjI1LCAwLjA3MjUsIDAuMDgxMjUiLCBcCi0gICAgICAgICAgIjAuMDIsIDAuMDMxMjUsIDAuMDM3NSwgMC4wNSwgMC4wNTYyNSwgMC4wNjYyNSwgMC4wNzUiLCBcCi0gICAgICAgICAgIjAuMDEzNzUsIDAuMDE4NzUsIDAuMDMxMjUsIDAuMDQzNzUsIDAuMDUsIDAuMDYsIDAuMDY4NzUiLCBcCi0gICAgICAgICAgIjAuMDA3NSwgMC4wMTI1LCAwLjAyNSwgMC4wMzc1LCAwLjA0Mzc1LCAwLjA1Mzc1LCAwLjA2MjUiLCBcCi0gICAgICAgICAgIi0wLjAwMjUsIDAuMDA4NzUsIDAuMDE1LCAwLjAyNzUsIDAuMDMzNzUsIDAuMDQzNzUsIDAuMDUyNSIsIFwKLSAgICAgICAgICAiLTAuMDExMjUsIDAsIDAuMDEyNSwgMC4wMTg3NSwgMC4wMjUsIDAuMDM1LCAwLjA0Mzc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIHRpbWluZ190eXBlIDogcmVtb3ZhbF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIkdOIjsKLSAgICAgIHNkZl9jb25kIDogIkdOID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHJlbW92YWxfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEyNSwgMC4wMTc1LCAwLjAzLCAwLjAzNjI1LCAwLjA0MjUsIDAuMDUyNSwgMC4wNTUiLCBcCi0gICAgICAgICAgIjAuMDAxMjUsIDAuMDEyNSwgMC4wMTg3NSwgMC4wMjUsIDAuMDMxMjUsIDAuMDQxMjUsIDAuMDUiLCBcCi0gICAgICAgICAgIi0wLjAwNSwgMCwgMC4wMTI1LCAwLjAxODc1LCAwLjAyNSwgMC4wMzUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIi0wLjAxMTI1LCAtMC4wMDYyNSwgMC4wMDYyNSwgMC4wMTI1LCAwLjAxODc1LCAwLjAyODc1LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjAxNzUsIC0wLjAxMjUsIDAsIDAuMDA2MjUsIDAuMDEyNSwgMC4wMjI1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDI3NSwgLTAuMDIyNSwgLTAuMDEsIC0wLjAwMzc1LCAwLjAwMjUsIDAuMDEyNSwgMC4wMjEyNSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLjAwMzc1LCAwLjAxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IFRMQVROU1JYTCAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKFRMQVROU1JYTCkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjI3ODQ3MzsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBsYXRjaCAoUUlOVCxONSkgewotICAgIGRhdGFfaW4gOiAiRCI7Ci0gICAgZW5hYmxlIDogIigoIUdOKSBSTikiOwotICAgIHByZXNldCA6ICIoIVNOKSI7Ci0gIH0KLSAgcGluKEQpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYxNTcyNjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MTQxODM7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjE1NzI2OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDIxOCwgMC4wMDAyMiwgMC4wMDAyMjEsIDAuMDAwMjIyLCAwLjAwMDIyMiwgMC4wMDAyMjIsIDAuMDAwMjIyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjMsIDAuMDAwMjI3LCAwLjAwMDIyNywgMC4wMDAyMjcsIDAuMDAwMjI3LCAwLjAwMDIyNywgMC4wMDAyMjciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiR04iOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiUk4mU04iOwotICAgICAgc2RmX2NvbmQgOiAiUk5fRVFfMV9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAsIDAuMDExMjUsIDAuMDIzNzUsIDAuMDMsIDAuMDM2MjUsIDAuMDQ2MjUsIDAuMDU1IiwgXAotICAgICAgICAgICItMC4wMTEyNSwgMCwgMC4wMTI1LCAwLjAxODc1LCAwLjAzMTI1LCAwLjA0MTI1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICItMC4wMTc1LCAtMC4wMDYyNSwgMCwgMC4wMTI1LCAwLjAxODc1LCAwLjAyODc1LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAsIDAuMDA2MjUsIDAuMDE2MjUsIDAuMDI1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDMxMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAwLCAwLjAxLCAwLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjA1MjUsIC0wLjA0MTI1LCAtMC4wMzUsIC0wLjAyMjUsIC0wLjAxNjI1LCAtMC4wMDYyNSwgMC4wMDI1IiwgXAotICAgICAgICAgICItMC4wNjEyNSwgLTAuMDU2MjUsIC0wLjA0Mzc1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMTUsIC0wLjAwNjI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDI1LCAtMC4wMTM3NSwgLTAuMDAxMjUsIDAuMDA1LCAwLjAxMTI1LCAwLjAyMTI1LCAwLjAzIiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDE4NzUsIC0wLjAxMjUsIDAsIDAuMDA2MjUsIDAuMDE2MjUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAuMDAzNzUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDAyNSwgMCIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDE1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDcxMjUsIC0wLjA2LCAtMC4wNDc1LCAtMC4wNDEyNSwgLTAuMDM1LCAtMC4wMjUsIC0wLjAxNjI1IiwgXAotICAgICAgICAgICItMC4wOCwgLTAuMDY4NzUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjAzMzc1LCAtMC4wMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiR04iOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlJOJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIlJOX0VRXzFfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTI1LCAwLjAwMTI1LCAtMC4wMDUsIC0wLjAxNzUsIC0wLjAyMzc1LCAtMC4wMzM3NSwgLTAuMDQyNSIsIFwKLSAgICAgICAgICAiMC4wMjM3NSwgMC4wMTI1LCAwLCAtMC4wMDYyNSwgLTAuMDEyNSwgLTAuMDIyNSwgLTAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMDMsIDAuMDI1LCAwLjAxMjUsIDAuMDA2MjUsIC0wLjAwNjI1LCAtMC4wMTYyNSwgLTAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMDQyNSwgMC4wMzEyNSwgMC4wMjUsIDAuMDEyNSwgMC4wMDYyNSwgLTAuMDAzNzUsIC0wLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMDU1LCAwLjA0Mzc1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMTg3NSwgMC4wMDg3NSwgMCIsIFwKLSAgICAgICAgICAiMC4wNjUsIDAuMDUzNzUsIDAuMDQ3NSwgMC4wMzUsIDAuMDI4NzUsIDAuMDE4NzUsIDAuMDEiLCBcCi0gICAgICAgICAgIjAuMDgsIDAuMDY4NzUsIDAuMDU2MjUsIDAuMDUsIDAuMDM3NSwgMC4wMjc1LCAwLjAyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzNzUsIDAuMDI2MjUsIDAuMDIsIDAuMDA3NSwgMC4wMDEyNSwgLTAuMDA4NzUsIC0wLjAxMTI1IiwgXAotICAgICAgICAgICIwLjA0ODc1LCAwLjAzNzUsIDAuMDI1LCAwLjAxODc1LCAwLjAxMjUsIDAuMDAyNSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMDU1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDI1LCAwLjAxODc1LCAwLjAwODc1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICIwLjA2MTI1LCAwLjA1NjI1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDIxMjUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4wNzM3NSwgMC4wNjI1LCAwLjA1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDI3NSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4wODM3NSwgMC4wNzI1LCAwLjA2NjI1LCAwLjA1Mzc1LCAwLjA0NzUsIDAuMDM3NSwgMC4wMzUiLCBcCi0gICAgICAgICAgIjAuMDkyNSwgMC4wODEyNSwgMC4wNzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNDYyNSwgMC4wNDM3NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oR04pICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY1MTQ2ODsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2NTE0MzQ7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjUxNDY4OwotICAgIGNsb2NrIDogdHJ1ZTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyNTIsIDAuMDAwMjI0LCAwLjAwMDIzMiwgMC4wMDAyMzcsIDAuMDAwMjU1LCAwLjAwMDI3NiwgMC4wMDAzMDQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDM4OTgsIDAuMDAzODcsIDAuMDAzODYsIDAuMDAzODY0LCAwLjAwMzg3NCwgMC4wMDM4OTksIDAuMDAzOTIyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkdOIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRCZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjIyNDc2MiwgMC4yMzQzMTksIDAuMjQ0MSwgMC4yNTE0ODEsIDAuMjU3Nzc0LCAwLjI2NjM2OCwgMC4yNzI1MTYiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFEpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4xNDgxMDI7Ci0gICAgZnVuY3Rpb24gOiAiUUlOVCI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTYwODMxLCAwLjE3NTA3MiwgMC4zMDIxOTMsIDAuNTE0MDA0LCAwLjcyNzE3MSwgMS4yMjIxLCAxLjUwNDg2IiwgXAotICAgICAgICAgICIwLjE2OTg1OSwgMC4xODQxMDEsIDAuMzExNzIsIDAuNTIzODQ1LCAwLjczNTk1MSwgMS4yMzA4NSwgMS41MTM2NCIsIFwKLSAgICAgICAgICAiMC4xODA1OTMsIDAuMTk0NDY5LCAwLjMyMTU3NywgMC41MzM5OTEsIDAuNzQ2NjY4LCAxLjI0MTUyLCAxLjUyNDM1IiwgXAotICAgICAgICAgICIwLjE5MDc1MiwgMC4yMDQ5NjgsIDAuMzMxNzQyLCAwLjU0NDY3OCwgMC43NTY3ODQsIDEuMjUxNywgMS41MzQ0NyIsIFwKLSAgICAgICAgICAiMC4yMDAzNTcsIDAuMjE0MzA2LCAwLjM0MTU5NiwgMC41NTQyNiwgMC43NjYzNjksIDEuMjYxMjgsIDEuNTQ0MDYiLCBcCi0gICAgICAgICAgIjAuMjEzNDgxLCAwLjIyNzksIDAuMzU1NTQxLCAwLjU2NzU1NiwgMC43Nzk2MTgsIDEuMjc0NTcsIDEuNTU1NzQiLCBcCi0gICAgICAgICAgIjAuMjI0MTc2LCAwLjIzODEwNSwgMC4zNjYwMjYsIDAuNTc4MDEzLCAwLjc5MDE0LCAxLjI4MzA1LCAxLjU2Nzg1Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE1MTc3MSwgMC4xODA4ODIsIDAuNDQyMTQ3LCAwLjg3Njk5MiwgMS4zMTQwNCwgMi4zMzEwNCwgMi45MTIyOCIsIFwKLSAgICAgICAgICAiMC4xNTIxNTMsIDAuMTgxMjM3LCAwLjQ0MzIyMSwgMC44Nzg3NTIsIDEuMzE0MDgsIDIuMzMxMDksIDIuOTEyMjYiLCBcCi0gICAgICAgICAgIjAuMTUyNTU4LCAwLjE4MTQxMywgMC40NDIzODMsIDAuODc5MTE3LCAxLjMxMzk4LCAyLjMzMTA0LCAyLjkxMjM5IiwgXAotICAgICAgICAgICIwLjE1MjYxOCwgMC4xODE2NDIsIDAuNDQyNjA2LCAwLjg3ODc2NSwgMS4zMTQwNiwgMi4zMzExMywgMi45MTIzNCIsIFwKLSAgICAgICAgICAiMC4xNTIyNDYsIDAuMTgwNjc3LCAwLjQ0MjQzMiwgMC44Nzg2ODIsIDEuMzE0MTMsIDIuMzMwOCwgMi45MTI0NyIsIFwKLSAgICAgICAgICAiMC4xNTIyOTIsIDAuMTgxNzE4LCAwLjQ0MzI3MSwgMC44Nzg0NzgsIDEuMzE0NTEsIDIuMzMxNDQsIDIuOTA4NDciLCBcCi0gICAgICAgICAgIjAuMTUyNDk2LCAwLjE4MTU3NCwgMC40NDMyMjksIDAuODc4NTU1LCAxLjMxNDMyLCAyLjMyNzU4LCAyLjkxMTY0Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE3OTY1MiwgMC4xOTM0NTUsIDAuMzE3OTg0LCAwLjUyNTI5OSwgMC43MzI4ODgsIDEuMjE3MDgsIDEuNDkzMzYiLCBcCi0gICAgICAgICAgIjAuMTg4MDQzLCAwLjIwMTg0OCwgMC4zMjYzNzIsIDAuNTMzNjc5LCAwLjc0MTI4NywgMS4yMjU1NSwgMS41MDIyNCIsIFwKLSAgICAgICAgICAiMC4xOTc0NTIsIDAuMjExNDQxLCAwLjMzNTg5OCwgMC41NDMyMDcsIDAuNzUwNzk4LCAxLjIzNDk4LCAxLjUxMDcxIiwgXAotICAgICAgICAgICIwLjIwNjUyNCwgMC4yMjAzMjMsIDAuMzQ0ODQxLCAwLjU1MjE1OCwgMC43NTk3NzQsIDEuMjQ0MDIsIDEuNTIwNzUiLCBcCi0gICAgICAgICAgIjAuMjE0ODg4LCAwLjIyODU3OSwgMC4zNTMxOSwgMC41NjA0ODgsIDAuNzY3OTM1LCAxLjI1MTkyLCAxLjUyOTAzIiwgXAotICAgICAgICAgICIwLjIyNjU5NiwgMC4yNDAzODksIDAuMzY0OTAxLCAwLjU3MjIxNCwgMC43Nzk4MzEsIDEuMjY0MTEsIDEuNTQxMDUiLCBcCi0gICAgICAgICAgIjAuMjM1NTg0LCAwLjI0OTI5NSwgMC4zNzM4NzYsIDAuNTgxMTkzLCAwLjc4ODgzOSwgMS4yNzMxNiwgMS41NDk5NyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNDUzOTYsIDAuMTczMTI5LCAwLjQyMzU0OSwgMC44NDA1OTUsIDEuMjU3ODQsIDIuMjMwNzksIDIuNzgwMzUiLCBcCi0gICAgICAgICAgIjAuMTQ1NDI1LCAwLjE3MzE0OSwgMC40MjM1MDUsIDAuODQwNDAyLCAxLjI1Nzg2LCAyLjIzMTA0LCAyLjc4NzAxIiwgXAotICAgICAgICAgICIwLjE0NTM4NCwgMC4xNzMxMjksIDAuNDIzNTUzLCAwLjg0MDU5NSwgMS4yNTc4NywgMi4yMzA3OSwgMi43Nzc2NyIsIFwKLSAgICAgICAgICAiMC4xNDU0MjgsIDAuMTczMTQ4LCAwLjQyMzUyLCAwLjg0MDU3LCAxLjI1NzkzLCAyLjIzMTA2LCAyLjc4NzEzIiwgXAotICAgICAgICAgICIwLjE0NTQyNywgMC4xNzMwNDIsIDAuNDIzNTQyLCAwLjg0MDMzOCwgMS4yNTQ3OSwgMi4yMjU2LCAyLjc4Njk1IiwgXAotICAgICAgICAgICIwLjE0NTQyOCwgMC4xNzMxNDcsIDAuNDIzNTI0LCAwLjg0MDU3OCwgMS4yNTc5NiwgMi4yMzEyMSwgMi43Nzk4MSIsIFwKLSAgICAgICAgICAiMC4xNDU0MTEsIDAuMTczMDg4LCAwLjQyMzQzNCwgMC44NDA1NDgsIDEuMjU4MDUsIDIuMjMxNDIsIDIuNzgwOTIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiR04iOwotICAgICAgdGltaW5nX3NlbnNlIDogbm9uX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiBmYWxsaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIyMzcyMSwgMC4yMzc5MywgMC4zNjQ2ODIsIDAuNTc3NjYxLCAwLjc4ODcyOSwgMS4yODQ2OSwgMS41NjU0IiwgXAotICAgICAgICAgICIwLjIzMzIzNywgMC4yNDc0NjcsIDAuMzc1MDkyLCAwLjU4NzE3NCwgMC43OTkyNDEsIDEuMjk0MTksIDEuNTc2OTkiLCBcCi0gICAgICAgICAgIjAuMjQzMDY0LCAwLjI1NzMxLCAwLjM4NDg5OCwgMC41OTYyMDksIDAuODA5MTE4LCAxLjMwNDA0LCAxLjU4NjgiLCBcCi0gICAgICAgICAgIjAuMjUwNTMzLCAwLjI2NDgyNiwgMC4zOTE1NzYsIDAuNjA0NTU4LCAwLjgxNTYwNCwgMS4zMTE0OCwgMS41OTIzIiwgXAotICAgICAgICAgICIwLjI1NjcwOCwgMC4yNzA5NDYsIDAuMzk4NTc1LCAwLjYxMDY1OSwgMC44MjI3NDYsIDEuMzE3NjUsIDEuNTk4NzUiLCBcCi0gICAgICAgICAgIjAuMjY1MjM5LCAwLjI3OTQ1MiwgMC40MDcwODcsIDAuNjE5MTY5LCAwLjgzMTI0NCwgMS4zMjYxOCwgMS42MDc3MyIsIFwKLSAgICAgICAgICAiMC4yNzE1MDcsIDAuMjg1NTk2LCAwLjQxMzU5NSwgMC42MjU2OSwgMC44Mzc4MTgsIDEuMzMyNTksIDEuNjE1NSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNTI1NDYsIDAuMTgxNjYxLCAwLjQ0MTg1LCAwLjg3ODc2MiwgMS4zMTMwNiwgMi4zMzEsIDIuOTA5MDYiLCBcCi0gICAgICAgICAgIjAuMTUyNTU2LCAwLjE4MTY2OSwgMC40NDMzLCAwLjg3ODc0MywgMS4zMTQyNywgMi4zMzA5OCwgMi45MTE5NCIsIFwKLSAgICAgICAgICAiMC4xNTI0OTUsIDAuMTgxNjY4LCAwLjQ0MzIzMSwgMC44Nzc1NDgsIDEuMzE0MDMsIDIuMzMxMSwgMi45MTIzMyIsIFwKLSAgICAgICAgICAiMC4xNTI2MjksIDAuMTgxNjYxLCAwLjQ0MTg5MywgMC44Nzg3NzgsIDEuMzEzMjIsIDIuMzMxLCAyLjkwODkiLCBcCi0gICAgICAgICAgIjAuMTUyNjMyLCAwLjE4MTY2OSwgMC40NDMzMDIsIDAuODc4NzYxLCAxLjMxMzk4LCAyLjMzMDk3LCAyLjkwODc5IiwgXAotICAgICAgICAgICIwLjE1MjYzMiwgMC4xODE2NjgsIDAuNDQzMzAxLCAwLjg3ODc1LCAxLjMxNDE0LCAyLjMzMDk3LCAyLjkxMzI4IiwgXAotICAgICAgICAgICIwLjE1MjMzNSwgMC4xODEyMjcsIDAuNDQzMjk2LCAwLjg3ODgwMywgMS4zMTQxLCAyLjMzMDk0LCAyLjkxMjQ5Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIyNDc2MiwgMC4yMzg1OTMsIDAuMzYzMDMsIDAuNTcwMzcsIDAuNzc3OTc1LCAxLjI2MjIyLCAxLjUzODM3IiwgXAotICAgICAgICAgICIwLjIzNDMxOSwgMC4yNDgwNjEsIDAuMzcyNTkxLCAwLjU3OTkzLCAwLjc4NzUyOCwgMS4yNzE3NiwgMS41NDgzNSIsIFwKLSAgICAgICAgICAiMC4yNDQxLCAwLjI1Nzc5NSwgMC4zODIzNzQsIDAuNTg5NzEyLCAwLjc5NzMxNywgMS4yODE1NiwgMS41NTc2OSIsIFwKLSAgICAgICAgICAiMC4yNTE0ODEsIDAuMjY1MzQ4LCAwLjM4OTk0OCwgMC41OTcyODcsIDAuODA0ODgyLCAxLjI4ODksIDEuNTY1NTciLCBcCi0gICAgICAgICAgIjAuMjU3Nzc0LCAwLjI3MTcyMywgMC4zOTYxNzEsIDAuNjAzNDQ5LCAwLjgxMTExOSwgMS4yOTUyNywgMS41NzIxNSIsIFwKLSAgICAgICAgICAiMC4yNjYzNjgsIDAuMjgwMDY2LCAwLjQwNDY0MSwgMC42MTE5MTIsIDAuODE5NTY2LCAxLjMwMzY3LCAxLjU4MDYiLCBcCi0gICAgICAgICAgIjAuMjcyNTE2LCAwLjI4NjMwOSwgMC40MTA5NzIsIDAuNjE4MzAzLCAwLjgyNTk1LCAxLjMxMDA1LCAxLjU4Njg0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE0NTQ0MSwgMC4xNzMxMzksIDAuNDIzNTQzLCAwLjg0MDU5NywgMS4yNTc5MywgMi4yMzEwNiwgMi43ODE1NyIsIFwKLSAgICAgICAgICAiMC4xNDU0NCwgMC4xNzMxMDcsIDAuNDIzNTUxLCAwLjg0MDYwMSwgMS4yNTc5MSwgMi4yMzEwMSwgMi43ODY3IiwgXAotICAgICAgICAgICIwLjE0NTQzOSwgMC4xNzMwNzcsIDAuNDIzNTQ0LCAwLjg0MDU4OCwgMS4yNTc5MiwgMi4yMzEwMywgMi43ODEzOSIsIFwKLSAgICAgICAgICAiMC4xNDU0MTMsIDAuMTczMDA1LCAwLjQyMzU0LCAwLjg0MDU5MywgMS4yNTc4OCwgMi4yMzA2NywgMi43ODYzMSIsIFwKLSAgICAgICAgICAiMC4xNDUzNzMsIDAuMTczMTQ0LCAwLjQyMzU2NywgMC44NDA1NTcsIDEuMjU3OTQsIDIuMjMwNzMsIDIuNzg3NDIiLCBcCi0gICAgICAgICAgIjAuMTQ1NDM1LCAwLjE3MzA5NSwgMC40MjM1MTYsIDAuODM5MDEsIDEuMjU4MDQsIDIuMjMwNjQsIDIuNzg3MjgiLCBcCi0gICAgICAgICAgIjAuMTQ1Mzk1LCAwLjE3MzA1MywgMC40MjM1MzQsIDAuODM5NTgxLCAxLjI1ODA0LCAyLjIzMDYzLCAyLjc4NzMzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiByaXNpbmdfZWRnZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjEzMjcsIDAuMjI3NTI1LCAwLjM1NDQ5LCAwLjU2NjMxLCAwLjc3OTMzNSwgMS4yNzQyNSwgMS41NTcwMiIsIFwKLSAgICAgICAgICAiMC4yMjE2ODMsIDAuMjM2MTc2LCAwLjM2MzgxNSwgMC41NzU5MTEsIDAuNzg4MDQxLCAxLjI4Mjg5LCAxLjU2NTcyIiwgXAotICAgICAgICAgICIwLjIzMjYwMywgMC4yNDY4MDUsIDAuMzczNTU1LCAwLjU4NjUzOCwgMC43OTc3MzUsIDEuMjkzNTYsIDEuNTc0NDEiLCBcCi0gICAgICAgICAgIjAuMjQyNDgyLCAwLjI1NjY4NSwgMC4zODM0MzQsIDAuNTk2NDE3LCAwLjgwNzU5LCAxLjMwMzQzLCAxLjU4NDI1IiwgXAotICAgICAgICAgICIwLjI1MTUyMiwgMC4yNjU0NTUsIDAuMzkyNjA5LCAwLjYwNTQ5LCAwLjgxNzU5NSwgMS4zMTI1MiwgMS41OTUyOSIsIFwKLSAgICAgICAgICAiMC4yNjQyOTYsIDAuMjc4MTYzLCAwLjQwNTQ1MiwgMC42MTcxMDUsIDAuODMwMzI2LCAxLjMyNTI0LCAxLjYwODAxIiwgXAotICAgICAgICAgICIwLjI3NDA0MSwgMC4yODg1MDEsIDAuNDE1MjQ3LCAwLjYyNzMwNCwgMC44NDAyOTcsIDEuMzM1MjIsIDEuNjE3OTgiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTUyNDQsIDAuMTgxNjcsIDAuNDQzMjM1LCAwLjg3NzY1OSwgMS4zMTQwOCwgMi4zMzEwOSwgMi45MTIzIiwgXAotICAgICAgICAgICIwLjE1MjIyMywgMC4xODE3MjMsIDAuNDQzMjk0LCAwLjg3ODc5NCwgMS4zMTQxMSwgMi4zMzExMywgMi45MTI1IiwgXAotICAgICAgICAgICIwLjE1MjU2MSwgMC4xODE2NjIsIDAuNDQxOTQ2LCAwLjg3ODc3MSwgMS4zMTIzNSwgMi4zMzA5OSwgMi45MDkiLCBcCi0gICAgICAgICAgIjAuMTUyNTYsIDAuMTgxNjYyLCAwLjQ0MTkyOCwgMC44Nzg3OCwgMS4zMTI0OSwgMi4zMzA5OSwgMi45MDc5NyIsIFwKLSAgICAgICAgICAiMC4xNTIxMzcsIDAuMTgxNjYsIDAuNDQyNTQ0LCAwLjg3ODc3OCwgMS4zMTQwOCwgMi4zMzEwMywgMi45MTIzIiwgXAotICAgICAgICAgICIwLjE1MjYzMywgMC4xODEzMywgMC40NDIxNTEsIDAuODc3ODI0LCAxLjMxNDAxLCAyLjMzMTE0LCAyLjkxMjM1IiwgXAotICAgICAgICAgICIwLjE1MjU2LCAwLjE4MTY3MSwgMC40NDI1MjYsIDAuODc3OTI3LCAxLjMxNDAyLCAyLjMzMTE0LCAyLjkxMjM1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiBmYWxsaW5nX2VkZ2U7Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIxODIwOSwgMC4yMzE5OTgsIDAuMzU2NTIxLCAwLjU2Mzg0MywgMC43NzEyMzYsIDEuMjU1MjYsIDEuNTMxODciLCBcCi0gICAgICAgICAgIjAuMjI3ODk1LCAwLjI0MTgzNiwgMC4zNjYyODcsIDAuNTczNTQ4LCAwLjc4MDkyNiwgMS4yNjQ5MywgMS41NDExMiIsIFwKLSAgICAgICAgICAiMC4yMzk3NDgsIDAuMjUzNTI3LCAwLjM3ODA1NiwgMC41ODUzNzcsIDAuNzkyODk4LCAxLjI3NywgMS41NTM0IiwgXAotICAgICAgICAgICIwLjI1MDAxMSwgMC4yNjM4MDQsIDAuMzg4MzMxLCAwLjU5NTY0MywgMC44MDMxNTgsIDEuMjg3MjcsIDEuNTYzNjciLCBcCi0gICAgICAgICAgIjAuMjU5MTYsIDAuMjcyOTM2LCAwLjM5NzQ1NCwgMC42MDQ3NywgMC44MTIxNTEsIDEuMjk2MTUsIDEuNTcyMzQiLCBcCi0gICAgICAgICAgIjAuMjcyODkxLCAwLjI4NjY2NywgMC40MTExOTYsIDAuNjE4NTE5LCAwLjgyNjAzMywgMS4zMDk5NCwgMS41ODY1NSIsIFwKLSAgICAgICAgICAiMC4yODQyMTEsIDAuMjk3OTA4LCAwLjQyMjUwMiwgMC42Mjk4MTEsIDAuODM3NDQzLCAxLjMyMTU0LCAxLjU5NzgzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE0NTQzMywgMC4xNzMxNTcsIDAuNDIzNTUzLCAwLjg0MDY1OSwgMS4yNTU5NiwgMi4yMzEzNSwgMi43ODA2MyIsIFwKLSAgICAgICAgICAiMC4xNDU0MjgsIDAuMTczMTQ0LCAwLjQyMzU2OSwgMC44NDA3LCAxLjI1NDk2LCAyLjIyNTgyLCAyLjc4MDkyIiwgXAotICAgICAgICAgICIwLjE0NTQzNCwgMC4xNzMxNDQsIDAuNDIzNTMxLCAwLjg0MDY0OCwgMS4yNTc3MiwgMi4yMzA0MywgMi43ODA5MSIsIFwKLSAgICAgICAgICAiMC4xNDU0MzMsIDAuMTczMTUxLCAwLjQyMzUxMiwgMC44NDA2NTIsIDEuMjU3NjksIDIuMjMwNDQsIDIuNzgwNzYiLCBcCi0gICAgICAgICAgIjAuMTQ1NDI4LCAwLjE3MzE1MSwgMC40MjM1NTEsIDAuODQwNjk0LCAxLjI1NDkyLCAyLjIyNTc0LCAyLjc4MDkiLCBcCi0gICAgICAgICAgIjAuMTQ1NDM0LCAwLjE3MzEzNywgMC40MjM1MjYsIDAuODQwNjUzLCAxLjI1NzY5LCAyLjIyNTk1LCAyLjc4NjUiLCBcCi0gICAgICAgICAgIjAuMTQ1NDI5LCAwLjE3MzA2NCwgMC40MjM1MzYsIDAuODQwOTA3LCAxLjI1NDgzLCAyLjIzMDgxLCAyLjc4MTAxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiBwcmVzZXQ7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExOTAwMSwgMC4xMzM0MDcsIDAuMjYwOTE3LCAwLjQ3MjM0MywgMC42ODQ4MzUsIDEuMTc5NywgMS40NjIzOCIsIFwKLSAgICAgICAgICAiMC4xMjkxNTYsIDAuMTQzNDE0LCAwLjI3MDU3NSwgMC40ODI3MTIsIDAuNjk0Nzc1LCAxLjE5MDAzLCAxLjQ3MjQ4IiwgXAotICAgICAgICAgICIwLjE0MTM0MiwgMC4xNTUzMDIsIDAuMjgzMDQzLCAwLjQ5NDkxMiwgMC43MDcyMzIsIDEuMjAxODYsIDEuNDg0NjIiLCBcCi0gICAgICAgICAgIjAuMTUyMzczLCAwLjE2NjIyNSwgMC4yOTM1MDQsIDAuNTA2MTM2LCAwLjcxNzk0MywgMS4yMTE4NSwgMS40OTU1OSIsIFwKLSAgICAgICAgICAiMC4xNjE4MjEsIDAuMTc2MDk0LCAwLjMwMzU2NCwgMC41MTU1MjIsIDAuNzI3NTgzLCAxLjIyMjYzLCAxLjUwNTIxIiwgXAotICAgICAgICAgICIwLjE3NDY2OCwgMC4xODg5MTQsIDAuMzE2MzAzLCAwLjUyODQyNCwgMC43NDAzOCwgMS4yMzUzOSwgMS41MTc3NCIsIFwKLSAgICAgICAgICAiMC4xODQyNDUsIDAuMTk4MzY1LCAwLjMyNTkwNCwgMC41Mzc5NDcsIDAuNzUwMTE5LCAxLjI0NTA0LCAxLjUyNzY3Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE1MjEzNywgMC4xODE1NTEsIDAuNDQzMTUxLCAwLjg3ODMzNCwgMS4zMTQ3MiwgMi4zMzEzNiwgMi45MTIwMiIsIFwKLSAgICAgICAgICAiMC4xNTI0OSwgMC4xODEyNTQsIDAuNDQzMTM5LCAwLjg3ODcwOSwgMS4zMTQ3MiwgMi4zMzA5NSwgMi45MTMzMyIsIFwKLSAgICAgICAgICAiMC4xNTI1NywgMC4xODEyNzksIDAuNDQzMTMsIDAuODc4Njk0LCAxLjMxNDczLCAyLjMzMTQ5LCAyLjkxMjQ0IiwgXAotICAgICAgICAgICIwLjE1MjU1MiwgMC4xODE0MzMsIDAuNDQyODI1LCAwLjg3ODY4OSwgMS4zMTQ3MiwgMi4zMzE0OSwgMi45MTE5IiwgXAotICAgICAgICAgICIwLjE1MjU0OSwgMC4xODE2NjQsIDAuNDQyODIzLCAwLjg3ODYzOCwgMS4zMTQ2OCwgMi4zMzExNiwgMi45MTI5NiIsIFwKLSAgICAgICAgICAiMC4xNTI1NTEsIDAuMTgxNTM3LCAwLjQ0Mjg0MywgMC44Nzg2OCwgMS4zMTQ3MywgMi4zMzEwMywgMi45MTIzMyIsIFwKLSAgICAgICAgICAiMC4xNTIzNjksIDAuMTgxNTAzLCAwLjQ0Mjg3NCwgMC44Nzg1NywgMS4zMTQ1OSwgMi4zMzEzMiwgMi45MTE4OCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMzc5MzEsIDAuMTUxNzg0LCAwLjI3NjIzOSwgMC40ODM1OTYsIDAuNjkxNzczLCAxLjE3NjA1LCAxLjQ1NDI4IiwgXAotICAgICAgICAgICIwLjE0NjM3LCAwLjE2MDIxNSwgMC4yODQ2NzIsIDAuNDkyMDI3LCAwLjcwMDE4NywgMS4xODQzMywgMS40NjIyOCIsIFwKLSAgICAgICAgICAiMC4xNTcwMjUsIDAuMTcwNzE3LCAwLjI5NTMyOSwgMC41MDI2OCwgMC43MTA2NDcsIDEuMTk0ODQsIDEuNDcxNTEiLCBcCi0gICAgICAgICAgIjAuMTY3Mjg5LCAwLjE4MTEyMiwgMC4zMDU0NjUsIDAuNTEyOTE0LCAwLjcyMDMzNSwgMS4yMDQyOCwgMS40ODA0OCIsIFwKLSAgICAgICAgICAiMC4xNzY4MjgsIDAuMTkwNjU3LCAwLjMxNTEwMSwgMC41MjI2NjIsIDAuNzMwMTA4LCAxLjIxNDUsIDEuNDkxNTMiLCBcCi0gICAgICAgICAgIjAuMTkwNzMyLCAwLjIwNDQ2NywgMC4zMjkwMDEsIDAuNTM2MzgzLCAwLjc0NDEyNiwgMS4yMjg3LCAxLjUwNTIxIiwgXAotICAgICAgICAgICIwLjIwMTQ2OCwgMC4yMTUzMjQsIDAuMzM5NywgMC41NDcyMjEsIDAuNzU0Nzg3LCAxLjIzOTc4LCAxLjUxNiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNDU0MjIsIDAuMTczMTM5LCAwLjQyMzUyOSwgMC44MzkwNDcsIDEuMjU1NzUsIDIuMjI3NDQsIDIuNzkyODIiLCBcCi0gICAgICAgICAgIjAuMTQ1NDE4LCAwLjE3MzEzNiwgMC40MjM1MDcsIDAuODM4OTk2LCAxLjI1NTc1LCAyLjIyNzUyLCAyLjc4MTc3IiwgXAotICAgICAgICAgICIwLjE0NTQyMiwgMC4xNzMwNTQsIDAuNDIzNTU2LCAwLjgzOTEyMywgMS4yNTU2MSwgMi4yMjYyOCwgMi43ODA5MSIsIFwKLSAgICAgICAgICAiMC4xNDU0MjQsIDAuMTczMTQsIDAuNDIzNTIyLCAwLjg0MDY2NCwgMS4yNTc0MiwgMi4yMzAxNSwgMi43ODYxNSIsIFwKLSAgICAgICAgICAiMC4xNDU0MjQsIDAuMTczMTQzLCAwLjQyMzU0MywgMC44Mzg5NzYsIDEuMjU1NSwgMi4yMzA5OSwgMi43ODI2NCIsIFwKLSAgICAgICAgICAiMC4xNDU0NTksIDAuMTczMTY3LCAwLjQyMzY1NywgMC44NDAzNjksIDEuMjU2MTcsIDIuMjI2MzQsIDIuNzg2NjYiLCBcCi0gICAgICAgICAgIjAuMTQ1NDk3LCAwLjE3MzE0MSwgMC40MjM1NjgsIDAuODQwNjMzLCAxLjI1Nzc3LCAyLjIyNTY0LCAyLjc4Mzk3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyMTM5LCAwLjAwMjE0LCAwLjAwMjE0NCwgMC4wMDIxNDUsIDAuMDAyMTQ2LCAwLjAwMjE0NiwgMC4wMDIxNDYiLCBcCi0gICAgICAgICAgIjAuMDAyMTI4LCAwLjAwMjEyOSwgMC4wMDIxMzMsIDAuMDAyMTM0LCAwLjAwMjEzNCwgMC4wMDIxMzUsIDAuMDAyMTM2IiwgXAotICAgICAgICAgICIwLjAwMjEyMywgMC4wMDIxMjQsIDAuMDAyMTI3LCAwLjAwMjEyOCwgMC4wMDIxMjgsIDAuMDAyMTI4LCAwLjAwMjEyOSIsIFwKLSAgICAgICAgICAiMC4wMDIxMTcsIDAuMDAyMTE4LCAwLjAwMjEyMiwgMC4wMDIxMjMsIDAuMDAyMTI0LCAwLjAwMjEyNSwgMC4wMDIxMjQiLCBcCi0gICAgICAgICAgIjAuMDAyMTE3LCAwLjAwMjExOCwgMC4wMDIxMjIsIDAuMDAyMTIzLCAwLjAwMjEyMywgMC4wMDIxMjUsIDAuMDAyMTI0IiwgXAotICAgICAgICAgICIwLjAwMjExNywgMC4wMDIxMTgsIDAuMDAyMTIyLCAwLjAwMjEyMywgMC4wMDIxMjQsIDAuMDAyMTI0LCAwLjAwMjEyNSIsIFwKLSAgICAgICAgICAiMC4wMDIxMjEsIDAuMDAyMTIyLCAwLjAwMjEyNiwgMC4wMDIxMjgsIDAuMDAyMTI4LCAwLjAwMjEyOCwgMC4wMDIxMjgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI2OTUsIDAuMDAyNjk2LCAwLjAwMjY5OSwgMC4wMDI3LCAwLjAwMjcwMSwgMC4wMDI3MDEsIDAuMDAyNzAxIiwgXAotICAgICAgICAgICIwLjAwMjY4OSwgMC4wMDI2OSwgMC4wMDI2OTMsIDAuMDAyNjk0LCAwLjAwMjY5NCwgMC4wMDI2OTUsIDAuMDAyNjk1IiwgXAotICAgICAgICAgICIwLjAwMjY4NSwgMC4wMDI2ODYsIDAuMDAyNjg5LCAwLjAwMjY5LCAwLjAwMjY5LCAwLjAwMjY5LCAwLjAwMjY5MSIsIFwKLSAgICAgICAgICAiMC4wMDI2ODMsIDAuMDAyNjg0LCAwLjAwMjY4NywgMC4wMDI2ODgsIDAuMDAyNjg5LCAwLjAwMjY4OCwgMC4wMDI2ODkiLCBcCi0gICAgICAgICAgIjAuMDAyNjgsIDAuMDAyNjgxLCAwLjAwMjY4NSwgMC4wMDI2ODYsIDAuMDAyNjg2LCAwLjAwMjY4NiwgMC4wMDI2ODYiLCBcCi0gICAgICAgICAgIjAuMDAyNjgxLCAwLjAwMjY4MiwgMC4wMDI2ODYsIDAuMDAyNjg3LCAwLjAwMjY4NywgMC4wMDI2ODcsIDAuMDAyNjg4IiwgXAotICAgICAgICAgICIwLjAwMjY4MywgMC4wMDI2ODYsIDAuMDAyNjg5LCAwLjAwMjY5LCAwLjAwMjY5MSwgMC4wMDI2OTEsIDAuMDAyNjkxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiR04iOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDA3MywgMC4wMDQwNzQsIDAuMDA0MDc3LCAwLjAwNDA3OCwgMC4wMDQwNzgsIDAuMDA0MDc5LCAwLjAwNDA3OSIsIFwKLSAgICAgICAgICAiMC4wMDQwNTcsIDAuMDA0MDU4LCAwLjAwNDA2MiwgMC4wMDQwNjMsIDAuMDA0MDYzLCAwLjAwNDA2NCwgMC4wMDQwNjQiLCBcCi0gICAgICAgICAgIjAuMDA0MDU1LCAwLjAwNDA1NiwgMC4wMDQwNTksIDAuMDA0MDYsIDAuMDA0MDYxLCAwLjAwNDA2MSwgMC4wMDQwNjEiLCBcCi0gICAgICAgICAgIjAuMDA0MDU0LCAwLjAwNDA1NywgMC4wMDQwNiwgMC4wMDQwNjIsIDAuMDA0MDYyLCAwLjAwNDA2LCAwLjAwNDA2MiIsIFwKLSAgICAgICAgICAiMC4wMDQwNjEsIDAuMDA0MDY1LCAwLjAwNDA2OCwgMC4wMDQwNjksIDAuMDA0MDY3LCAwLjAwNDA2NywgMC4wMDQwNjciLCBcCi0gICAgICAgICAgIjAuMDA0MDcsIDAuMDA0MDcyLCAwLjAwNDA3NSwgMC4wMDQwNzYsIDAuMDA0MDc2LCAwLjAwNDA3NywgMC4wMDQwNzciLCBcCi0gICAgICAgICAgIjAuMDA0MDg0LCAwLjAwNDA4NSwgMC4wMDQwODksIDAuMDA0MDksIDAuMDA0MDksIDAuMDA0MDksIDAuMDA0MDkxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0NTA0LCAwLjAwNDUwNSwgMC4wMDQ1MDgsIDAuMDA0NTEsIDAuMDA0NTA5LCAwLjAwNDUwOSwgMC4wMDQ1MDkiLCBcCi0gICAgICAgICAgIjAuMDA0NDg4LCAwLjAwNDQ4OSwgMC4wMDQ0OTIsIDAuMDA0NDkzLCAwLjAwNDQ5NCwgMC4wMDQ0OTQsIDAuMDA0NDk0IiwgXAotICAgICAgICAgICIwLjAwNDQ4NCwgMC4wMDQ0ODUsIDAuMDA0NDg5LCAwLjAwNDQ5LCAwLjAwNDQ5LCAwLjAwNDQ5LCAwLjAwNDQ5IiwgXAotICAgICAgICAgICIwLjAwNDQ4NCwgMC4wMDQ0ODcsIDAuMDA0NDksIDAuMDA0NDkxLCAwLjAwNDQ5MSwgMC4wMDQ0ODksIDAuMDA0NDkyIiwgXAotICAgICAgICAgICIwLjAwNDQ5NSwgMC4wMDQ0OTYsIDAuMDA0NDk5LCAwLjAwNDQ5NywgMC4wMDQ1LCAwLjAwNDUwMSwgMC4wMDQ1MDEiLCBcCi0gICAgICAgICAgIjAuMDA0NTAzLCAwLjAwNDUwNCwgMC4wMDQ1MDcsIDAuMDA0NTA4LCAwLjAwNDUwOCwgMC4wMDQ1MDgsIDAuMDA0NTEiLCBcCi0gICAgICAgICAgIjAuMDA0NTEyLCAwLjAwNDUxMywgMC4wMDQ1MTcsIDAuMDA0NTE4LCAwLjAwNDUxOCwgMC4wMDQ1MTgsIDAuMDA0NTE4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUk4iOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzIxNSwgMC4wMDMyMTYsIDAuMDAzMjIsIDAuMDAzMjIxLCAwLjAwMzIyMSwgMC4wMDMyMjIsIDAuMDAzMjIyIiwgXAotICAgICAgICAgICIwLjAwMzIsIDAuMDAzMjAxLCAwLjAwMzIwNCwgMC4wMDMyMDYsIDAuMDAzMjA2LCAwLjAwMzIwNiwgMC4wMDMyMDYiLCBcCi0gICAgICAgICAgIjAuMDAzMTkzLCAwLjAwMzE5NCwgMC4wMDMxOTcsIDAuMDAzMTk5LCAwLjAwMzE5OSwgMC4wMDMxOTksIDAuMDAzMTk5IiwgXAotICAgICAgICAgICIwLjAwMzE5LCAwLjAwMzE5MSwgMC4wMDMxOTQsIDAuMDAzMTk1LCAwLjAwMzE5NiwgMC4wMDMxOTYsIDAuMDAzMTk2IiwgXAotICAgICAgICAgICIwLjAwMzE5MiwgMC4wMDMxOTMsIDAuMDAzMTk3LCAwLjAwMzE5OCwgMC4wMDMxOTgsIDAuMDAzMTk5LCAwLjAwMzE5OSIsIFwKLSAgICAgICAgICAiMC4wMDMxOTEsIDAuMDAzMTkzLCAwLjAwMzE5NiwgMC4wMDMxOTcsIDAuMDAzMTk4LCAwLjAwMzE5OCwgMC4wMDMxOTgiLCBcCi0gICAgICAgICAgIjAuMDAzMTk5LCAwLjAwMzIsIDAuMDAzMjAzLCAwLjAwMzIwNCwgMC4wMDMyMDUsIDAuMDAzMjA1LCAwLjAwMzIwNSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDAxOSwgMC4wMDQwMiwgMC4wMDQwMjMsIDAuMDA0MDI0LCAwLjAwNDAyNCwgMC4wMDQwMjUsIDAuMDA0MDI0IiwgXAotICAgICAgICAgICIwLjAwNDAwNCwgMC4wMDQwMDUsIDAuMDA0MDA4LCAwLjAwNDAwOSwgMC4wMDQwMSwgMC4wMDQwMTEsIDAuMDA0MDExIiwgXAotICAgICAgICAgICIwLjAwNDAwMSwgMC4wMDQwMDIsIDAuMDA0MDA1LCAwLjAwNDAwNiwgMC4wMDQwMDYsIDAuMDA0MDA2LCAwLjAwNDAwNiIsIFwKLSAgICAgICAgICAiMC4wMDM5OTksIDAuMDA0LCAwLjAwNDAwMywgMC4wMDQwMDQsIDAuMDA0MDA0LCAwLjAwNDAwNSwgMC4wMDQwMDQiLCBcCi0gICAgICAgICAgIjAuMDA0MDAzLCAwLjAwNDAwMywgMC4wMDQwMDYsIDAuMDA0MDA3LCAwLjAwNDAwOSwgMC4wMDQwMDksIDAuMDA0MDA5IiwgXAotICAgICAgICAgICIwLjAwNDAxMSwgMC4wMDQwMTIsIDAuMDA0MDE1LCAwLjAwNDAxNiwgMC4wMDQwMTYsIDAuMDA0MDE3LCAwLjAwNDAxNyIsIFwKLSAgICAgICAgICAiMC4wMDQwMTcsIDAuMDA0MDE4LCAwLjAwNDAyMSwgMC4wMDQwMjIsIDAuMDA0MDIyLCAwLjAwNDAyMywgMC4wMDQwMjMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyNTU0LCAwLjAwMjU1NCwgMC4wMDI1NTYsIDAuMDAyNTU3LCAwLjAwMjU1NywgMC4wMDI1NTcsIDAuMDAyNTU3IiwgXAotICAgICAgICAgICIwLjAwMjU0LCAwLjAwMjU0MSwgMC4wMDI1NDMsIDAuMDAyNTQ0LCAwLjAwMjU0NCwgMC4wMDI1NDUsIDAuMDAyNTQ1IiwgXAotICAgICAgICAgICIwLjAwMjUzMiwgMC4wMDI1MzMsIDAuMDAyNTM2LCAwLjAwMjUzNywgMC4wMDI1MzgsIDAuMDAyNTM4LCAwLjAwMjUzOSIsIFwKLSAgICAgICAgICAiMC4wMDI1MjQsIDAuMDAyNTI1LCAwLjAwMjUyOSwgMC4wMDI1MywgMC4wMDI1MzEsIDAuMDAyNTMyLCAwLjAwMjUzMiIsIFwKLSAgICAgICAgICAiMC4wMDI1MjEsIDAuMDAyNTIyLCAwLjAwMjUyNiwgMC4wMDI1MjgsIDAuMDAyNTI4LCAwLjAwMjUyOSwgMC4wMDI1MjkiLCBcCi0gICAgICAgICAgIjAuMDAyNTI0LCAwLjAwMjUyNSwgMC4wMDI1MywgMC4wMDI1MzIsIDAuMDAyNTMzLCAwLjAwMjUzNCwgMC4wMDI1MzQiLCBcCi0gICAgICAgICAgIjAuMDAyNTMsIDAuMDAyNTMzLCAwLjAwMjUzOCwgMC4wMDI1MzksIDAuMDAyNTQxLCAwLjAwMjU0MiwgMC4wMDI1NDIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDE1MzUsIDAuMDAxNTM1LCAwLjAwMTUzNywgMC4wMDE1MzgsIDAuMDAxNTM5LCAwLjAwMTUzOCwgMC4wMDE1MzkiLCBcCi0gICAgICAgICAgIjAuMDAxNTIxLCAwLjAwMTUyMSwgMC4wMDE1MjQsIDAuMDAxNTI1LCAwLjAwMTUyNSwgMC4wMDE1MjUsIDAuMDAxNTI1IiwgXAotICAgICAgICAgICIwLjAwMTUxNiwgMC4wMDE1MTYsIDAuMDAxNTE5LCAwLjAwMTUyLCAwLjAwMTUyLCAwLjAwMTUyMSwgMC4wMDE1MjEiLCBcCi0gICAgICAgICAgIjAuMDAxNTExLCAwLjAwMTUxMiwgMC4wMDE1MTUsIDAuMDAxNTE2LCAwLjAwMTUxNywgMC4wMDE1MTYsIDAuMDAxNTE3IiwgXAotICAgICAgICAgICIwLjAwMTUxNCwgMC4wMDE1MTUsIDAuMDAxNTE4LCAwLjAwMTUxOSwgMC4wMDE1MTksIDAuMDAxNTIsIDAuMDAxNTIiLCBcCi0gICAgICAgICAgIjAuMDAxNTE0LCAwLjAwMTUxNSwgMC4wMDE1MTksIDAuMDAxNTIsIDAuMDAxNTIxLCAwLjAwMTUyMSwgMC4wMDE1MjEiLCBcCi0gICAgICAgICAgIjAuMDAxNTIsIDAuMDAxNTIxLCAwLjAwMTUyNCwgMC4wMDE1MjUsIDAuMDAxNTI2LCAwLjAwMTUyNiwgMC4wMDE1MjYiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFFOKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMTUxOTEzOwotICAgIGZ1bmN0aW9uIDogIk41IjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJEIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNzQyNDgsIDAuMTg4NDEyLCAwLjMxNTU0OSwgMC41MjczOCwgMC43MzkyNDEsIDEuMjMzNDIsIDEuNTE1NzMiLCBcCi0gICAgICAgICAgIjAuMTgyNTgzLCAwLjE5Njc1MSwgMC4zMjM4ODQsIDAuNTM1NzIyLCAwLjc0NzU4NywgMS4yNDE4MSwgMS41MjQyMSIsIFwKLSAgICAgICAgICAiMC4xOTIwOTQsIDAuMjA2MjUzLCAwLjMzMzM5NiwgMC41NDUyMjcsIDAuNzU3MDg4LCAxLjI1MTI2LCAxLjUzMzE3IiwgXAotICAgICAgICAgICIwLjIwMTExOCwgMC4yMTUyODUsIDAuMzQyNDIsIDAuNTU0MjQ5LCAwLjc2NjEzMywgMS4yNjAzNSwgMS41NDI3NyIsIFwKLSAgICAgICAgICAiMC4yMDk0NDQsIDAuMjIzNjE2LCAwLjM1MDc1MSwgMC41NjI1ODMsIDAuNzc0NDQ0LCAxLjI2ODY2LCAxLjU1MTA1IiwgXAotICAgICAgICAgICIwLjIyMTE1MywgMC4yMzUzMTUsIDAuMzYyNDUyLCAwLjU3NDI4MiwgMC43ODYxNjYsIDEuMjgwNCwgMS41NjMiLCBcCi0gICAgICAgICAgIjAuMjMwMTcxLCAwLjI0NDM0NiwgMC4zNzE0NzYsIDAuNTgzMzAyLCAwLjc5NTIxMSwgMS4yODk0OCwgMS41NzE5NiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNTc4NDEsIDAuMTg2MDcxLCAwLjQ0NDg1OCwgMC44Nzk5MTUsIDEuMzE1MzksIDIuMzMxNiwgMi45MDg2NiIsIFwKLSAgICAgICAgICAiMC4xNTc4MjgsIDAuMTg2MDgyLCAwLjQ0NDgwNywgMC44Nzk0MDYsIDEuMzE1NCwgMi4zMzE2OCwgMi45MTI0MyIsIFwKLSAgICAgICAgICAiMC4xNTc4MTUsIDAuMTg2MDMxLCAwLjQ0NDg2MSwgMC44Nzk5MTUsIDEuMzE1MzksIDIuMzMxNTksIDIuOTAzNTgiLCBcCi0gICAgICAgICAgIjAuMTU3ODQyLCAwLjE4NjA4NiwgMC40NDQ4MjgsIDAuODc5ODk3LCAxLjMxNTQxLCAyLjMzMTY3LCAyLjkxMjQ3IiwgXAotICAgICAgICAgICIwLjE1NzgyMywgMC4xODU5NzYsIDAuNDQ0ODU1LCAwLjg3OTM3NSwgMS4zMTMxMiwgMi4zMjc5NSwgMi45MTIzMyIsIFwKLSAgICAgICAgICAiMC4xNTc4OTgsIDAuMTg2MTI3LCAwLjQ0NDgzOSwgMC44Nzk4NjEsIDEuMzE1NCwgMi4zMzE2OSwgMi45MDY4NCIsIFwKLSAgICAgICAgICAiMC4xNTc4NTksIDAuMTg2MDM1LCAwLjQ0NDc2NiwgMC44Nzk3ODgsIDEuMzE1NDIsIDIuMzMxNzYsIDIuOTA2MDMiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTUwMTIxLCAwLjE2Mzk3MSwgMC4yODg0OTgsIDAuNDk1OTY2LCAwLjcwMzM0OSwgMS4xODczNiwgMS40NjM5MiIsIFwKLSAgICAgICAgICAiMC4xNTg5MzMsIDAuMTcyNzY3LCAwLjI5NzI3OSwgMC41MDQ3MSwgMC43MTIxNDEsIDEuMTk2MTYsIDEuNDcyNzMiLCBcCi0gICAgICAgICAgIjAuMTY5NjQ0LCAwLjE4MzQ4OSwgMC4zMDgwMjcsIDAuNTE1NDM1LCAwLjcyMjg0OSwgMS4yMDY4MiwgMS40ODM0NyIsIFwKLSAgICAgICAgICAiMC4xNzk3NTksIDAuMTkzNjAyLCAwLjMxODE3NSwgMC41MjU1ODUsIDAuNzMyOTg2LCAxLjIxNywgMS40OTM1NyIsIFwKLSAgICAgICAgICAiMC4xODkzOCwgMC4yMDMyMTksIDAuMzI3NzMzLCAwLjUzNTIwMSwgMC43NDI2MSwgMS4yMjY2MywgMS41MDMyIiwgXAotICAgICAgICAgICIwLjIwMjgyNSwgMC4yMTY2NzUsIDAuMzQxMjAyLCAwLjU0ODY0NiwgMC43NTYwOTgsIDEuMjQwMSwgMS41MTY1MiIsIFwKLSAgICAgICAgICAiMC4yMTMyNzcsIDAuMjI3MTI3LCAwLjM1MTYzMiwgMC41NTkxMTQsIDAuNzY2NTI3LCAxLjI1MDYxLCAxLjUyNjk3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE0NzU3MSwgMC4xNzQ5NzYsIDAuNDI0MjQxLCAwLjgzOTk1OSwgMS4yNTgzNiwgMi4yMzEwMywgMi43ODY4MSIsIFwKLSAgICAgICAgICAiMC4xNDgwODksIDAuMTc1NjExLCAwLjQyNDg3NywgMC44NDE1MTYsIDEuMjU4MzIsIDIuMjMxLCAyLjc4Njc5IiwgXAotICAgICAgICAgICIwLjE0ODE1NywgMC4xNzUyMDQsIDAuNDIzODQ2LCAwLjg0MDk0MiwgMS4yNTgyLCAyLjIzMDY5LCAyLjc4Njc3IiwgXAotICAgICAgICAgICIwLjE0ODEzMSwgMC4xNzU2MiwgMC40MjM4MTcsIDAuODQxNzIyLCAxLjI1ODM5LCAyLjIzMTA4LCAyLjc4Njg5IiwgXAotICAgICAgICAgICIwLjE0ODE1OSwgMC4xNzQ5MzcsIDAuNDI0MTY3LCAwLjg0MTcxNywgMS4yNTg0MywgMi4yMzExLCAyLjc4NzAzIiwgXAotICAgICAgICAgICIwLjE0ODA0MywgMC4xNzU3NDQsIDAuNDI0OTk3LCAwLjg0MTY4OSwgMS4yNTg2MiwgMi4yMzEyOCwgMi43ODI0MSIsIFwKLSAgICAgICAgICAiMC4xNDgxNzUsIDAuMTc1Mjk5LCAwLjQyNDg3NiwgMC44NDE4MTUsIDEuMjU4NTIsIDIuMjI2NDcsIDIuNzg1NjMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiR04iOwotICAgICAgdGltaW5nX3NlbnNlIDogbm9uX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiBmYWxsaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIxOTU1OCwgMC4yMzM3MjIsIDAuMzYwODU5LCAwLjU3MjY4NywgMC43ODQ1NjIsIDEuMjc4NzcsIDEuNTYxMTUiLCBcCi0gICAgICAgICAgIjAuMjI5MTA2LCAwLjI0MzI3NCwgMC4zNzA0MSwgMC41ODIyNCwgMC43OTQxMDgsIDEuMjg4MzIsIDEuNTcwNjQiLCBcCi0gICAgICAgICAgIjAuMjM4ODg3LCAwLjI1MzA1OSwgMC4zODAxOSwgMC41OTIwMTksIDAuODAzODkyLCAxLjI5ODExLCAxLjU4MDUzIiwgXAotICAgICAgICAgICIwLjI0NjMzOCwgMC4yNjA2MzUsIDAuMzg3NzY4LCAwLjU5OTU5OCwgMC44MTE0NjIsIDEuMzA1NDgsIDEuNTg3OTEiLCBcCi0gICAgICAgICAgIjAuMjUyNjg4LCAwLjI2Njg1MywgMC4zOTM5OTMsIDAuNjA1NzY1LCAwLjgxNzY5OCwgMS4zMTE4NSwgMS41OTQzOCIsIFwKLSAgICAgICAgICAiMC4yNjExNzksIDAuMjc1MzQsIDAuNDAyNDcsIDAuNjE0MjcsIDAuODI2MTQ4LCAxLjMyMDI2LCAxLjYwMjg0IiwgXAotICAgICAgICAgICIwLjI2NzQxNSwgMC4yODE1ODMsIDAuNDA4ODA3LCAwLjYyMDY3NywgMC44MzI1MzcsIDEuMzI2NjUsIDEuNjA5MDkiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTU4MDQ5LCAwLjE4NjE5NywgMC40NDQ4NzMsIDAuODc5OTIxLCAxLjMxNTQ0LCAyLjMzMTcyLCAyLjkwNjYyIiwgXAotICAgICAgICAgICIwLjE1ODAzOSwgMC4xODYyMDksIDAuNDQ0ODg0LCAwLjg3OTkyNSwgMS4zMTU0MiwgMi4zMzE2OCwgMi45MTIyNCIsIFwKLSAgICAgICAgICAiMC4xNTgwMzksIDAuMTg2MTUsIDAuNDQ0ODgsIDAuODc5OTE1LCAxLjMxNTQxLCAyLjMzMTY3LCAyLjkwNzQxIiwgXAotICAgICAgICAgICIwLjE1ODA1NiwgMC4xODYwNjEsIDAuNDQ0ODgsIDAuODc5OTE5LCAxLjMxNTM5LCAyLjMzMTU2LCAyLjkxMTk1IiwgXAotICAgICAgICAgICIwLjE1Nzk0MywgMC4xODYxOTcsIDAuNDQ0ODkzLCAwLjg3OTksIDEuMzE1NDIsIDIuMzMxNTcsIDIuOTEyNTEiLCBcCi0gICAgICAgICAgIjAuMTU4MDQxLCAwLjE4NjE2NCwgMC40NDQ4NDMsIDAuODc4ODMyLCAxLjMxNTQ3LCAyLjMzMTU2LCAyLjkxMjQ2IiwgXAotICAgICAgICAgICIwLjE1ODA2MywgMC4xODYxMjMsIDAuNDQ0ODc0LCAwLjg3ODYzNSwgMS4zMTU0NywgMi4zMzE1NiwgMi45MTI0OCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMTI3ODgsIDAuMjI2NjMsIDAuMzUxMTY2LCAwLjU1ODU5OCwgMC43NjYwMDQsIDEuMjQ5OTksIDEuNTI2NTMiLCBcCi0gICAgICAgICAgIjAuMjIyMzA2LCAwLjIzNjE0NiwgMC4zNjA2NzcsIDAuNTY4MTEsIDAuNzc1NTUxLCAxLjI1OTUsIDEuNTM2IiwgXAotICAgICAgICAgICIwLjIzMjEzNiwgMC4yNDU5NzUsIDAuMzcwNDc5LCAwLjU3NzkzNSwgMC43ODUzNDUsIDEuMjY5MzcsIDEuNTQ1OTMiLCBcCi0gICAgICAgICAgIjAuMjM5NTg3LCAwLjI1MzUyNCwgMC4zNzgwNiwgMC41ODU0OTMsIDAuNzkyOSwgMS4yNzY3OSwgMS41NTM0MyIsIFwKLSAgICAgICAgICAiMC4yNDU3NjIsIDAuMjU5NjI4LCAwLjM4NDE1OSwgMC41OTE1OTIsIDAuNzk4OTQ3LCAxLjI4Mjk2LCAxLjU1OTQ3IiwgXAotICAgICAgICAgICIwLjI1NDMwMSwgMC4yNjgxNDIsIDAuMzkyNjc0LCAwLjYwMDEwNywgMC44MDc1MiwgMS4yOTE1LCAxLjU2OCIsIFwKLSAgICAgICAgICAiMC4yNjA4MDcsIDAuMjc0NjU3LCAwLjM5OTE3NywgMC42MDY2MDYsIDAuODEzOTk2LCAxLjI5NzksIDEuNTc0NjYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTQ4MTg3LCAwLjE3NTY0OCwgMC40MjM4NTMsIDAuODQxNjYsIDEuMjU2NTUsIDIuMjMwOTMsIDIuNzgyNTEiLCBcCi0gICAgICAgICAgIjAuMTQ4MTk0LCAwLjE3NTY1NSwgMC40MjQ5OTUsIDAuODQxNjMyLCAxLjI1ODUxLCAyLjIzMDg3LCAyLjc4NjI4IiwgXAotICAgICAgICAgICIwLjE0ODE3NywgMC4xNzU2NTksIDAuNDI0ODY2LCAwLjg0MDMzLCAxLjI1ODMyLCAyLjIzMTExLCAyLjc4Njg2IiwgXAotICAgICAgICAgICIwLjE0ODE4NSwgMC4xNzU2NDgsIDAuNDIzODU1LCAwLjg0MTY2MSwgMS4yNTY1NSwgMi4yMzA5MiwgMi43ODI1IiwgXAotICAgICAgICAgICIwLjE0ODE4OCwgMC4xNzU2NTUsIDAuNDI0OTk5LCAwLjg0MTYzNiwgMS4yNTgxOCwgMi4yMzA4NywgMi43ODI0MyIsIFwKLSAgICAgICAgICAiMC4xNDgxOTEsIDAuMTc1NjUzLCAwLjQyNDk5NiwgMC44NDE2MzYsIDEuMjU4MzYsIDIuMjMwODUsIDIuNzg0OTkiLCBcCi0gICAgICAgICAgIjAuMTQ4MDIxLCAwLjE3NTI1NiwgMC40MjQ5OTUsIDAuODQxNjE2LCAxLjI1ODIxLCAyLjIzMDY2LCAyLjc4NzExIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiByaXNpbmdfZWRnZTsKLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjAyMzQ5LCAwLjIxNjE4OCwgMC4zNDA2MzUsIDAuNTQ4MTU5LCAwLjc1NTU1NywgMS4yMzk1OCwgMS41MTYxNSIsIFwKLSAgICAgICAgICAiMC4yMTEwMjUsIDAuMjI0ODczLCAwLjM0OTM5NCwgMC41NTY4MjQsIDAuNzY0MjE0LCAxLjI0ODI1LCAxLjUyNDg4IiwgXAotICAgICAgICAgICIwLjIyMTY2NiwgMC4yMzU1MDcsIDAuMzYwMDQzLCAwLjU2NzQ3NywgMC43NzQ4NzQsIDEuMjU4ODcsIDEuNTM1NCIsIFwKLSAgICAgICAgICAiMC4yMzE1NDUsIDAuMjQ1Mzg3LCAwLjM2OTkyMywgMC41NzczNTcsIDAuNzg0NzU1LCAxLjI2ODc1LCAxLjU0NTI4IiwgXAotICAgICAgICAgICIwLjI0MDYyNCwgMC4yNTQ0NjEsIDAuMzc4OTg3LCAwLjU4NjQzMSwgMC43OTM4NCwgMS4yNzc4NCwgMS41NTQ0MiIsIFwKLSAgICAgICAgICAiMC4yNTMzNTQsIDAuMjY3MTk3LCAwLjM5MTcxMywgMC41OTkyMzYsIDAuODA2NTY2LCAxLjI5MDYsIDEuNTY3MTYiLCBcCi0gICAgICAgICAgIjAuMjYzMzE4LCAwLjI3NzE1OCwgMC40MDE3MTksIDAuNjA5MTI0LCAwLjgxNjUyOCwgMS4zMDA1NiwgMS41NzcxMyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNDgxNjgsIDAuMTc1NjY0LCAwLjQyNDQ1NywgMC44NDAzMjksIDEuMjU4MzIsIDIuMjMxMSwgMi43ODY4NSIsIFwKLSAgICAgICAgICAiMC4xNDgwNTQsIDAuMTc1NzI5LCAwLjQyNDk5MSwgMC44NDE2MTEsIDEuMjU4MiwgMi4yMzA5NiwgMi43ODcxMiIsIFwKLSAgICAgICAgICAiMC4xNDgxODksIDAuMTc1NjUsIDAuNDIzODU4LCAwLjg0MTY1NCwgMS4yNTY0MSwgMi4yMzA5MiwgMi43ODI0NSIsIFwKLSAgICAgICAgICAiMC4xNDgxODksIDAuMTc1NjQ5LCAwLjQyMzg1NywgMC44NDE2NTksIDEuMjU2NDMsIDIuMjMwODksIDIuNzgyNDMiLCBcCi0gICAgICAgICAgIjAuMTQ4MTE3LCAwLjE3NTMzNSwgMC40MjQyNzQsIDAuODQxNjcsIDEuMjU4MzksIDIuMjMwOTksIDIuNzg2OCIsIFwKLSAgICAgICAgICAiMC4xNDgxOTYsIDAuMTc1MzkxLCAwLjQyNDIyNiwgMC44Mzk5MDksIDEuMjU4MzEsIDIuMjMxMTYsIDIuNzg2ODQiLCBcCi0gICAgICAgICAgIjAuMTQ3OTI4LCAwLjE3NTY2OSwgMC40MjM3MDksIDAuODQwMzIxLCAxLjI1ODMzLCAyLjIzMTE1LCAyLjc4Njg3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiBmYWxsaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIxMjgzMSwgMC4yMjcwMDEsIDAuMzU0MTQyLCAwLjU2NTk3MywgMC43Nzc3MjgsIDEuMjcxOTEsIDEuNTU0MjgiLCBcCi0gICAgICAgICAgIjAuMjIyNTQyLCAwLjIzNjcwNywgMC4zNjM4NTksIDAuNTc1Njg5LCAwLjc4NzQ0MiwgMS4yODE2NSwgMS41NjM2NCIsIFwKLSAgICAgICAgICAiMC4yMzQ0MDIsIDAuMjQ4NTcxLCAwLjM3NTcxMywgMC41ODc1NDMsIDAuNzk5MzQ4LCAxLjI5MzQ4LCAxLjU3NTg2IiwgXAotICAgICAgICAgICIwLjI0NDU5NCwgMC4yNTg3NjQsIDAuMzg1OTA1LCAwLjU5NzczMywgMC44MDk1MzQsIDEuMzAzNjcsIDEuNTg2MDUiLCBcCi0gICAgICAgICAgIjAuMjUzNjY4LCAwLjI2NzgyNSwgMC4zOTQ5NzIsIDAuNjA2ODA3LCAwLjgxODU2MiwgMS4zMTI3NywgMS41OTQ3NSIsIFwKLSAgICAgICAgICAiMC4yNjc1NTEsIDAuMjgxNzIxLCAwLjQwODg2MywgMC42MjA2OTQsIDAuODMyNDkzLCAxLjMyNjYyLCAxLjYwOTAxIiwgXAotICAgICAgICAgICIwLjI3ODc2MywgMC4yOTI5MzQsIDAuNDIwMDc1LCAwLjYzMTg5OSwgMC44NDM4LCAxLjMzNzkxLCAxLjYyMDIyIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE1Nzg2MSwgMC4xODYxMTgsIDAuNDQ0ODUzLCAwLjg3OTcyMSwgMS4zMTM2MiwgMi4zMzE1OSwgMi45MDg1NiIsIFwKLSAgICAgICAgICAiMC4xNTc4NzQsIDAuMTg2MDcyLCAwLjQ0NDg1NiwgMC44Nzk3MywgMS4zMTM3OCwgMi4zMjg4OSwgMi45MDg0MyIsIFwKLSAgICAgICAgICAiMC4xNTc4NjEsIDAuMTg2MTA3LCAwLjQ0NDg1MSwgMC44Nzk3MTUsIDEuMzE1MTcsIDIuMzMxMjMsIDIuOTA4NjEiLCBcCi0gICAgICAgICAgIjAuMTU3ODQ3LCAwLjE4NjEwOCwgMC40NDQ4MzksIDAuODc5NzE0LCAxLjMxNTE1LCAyLjMzMTIzLCAyLjkwODU5IiwgXAotICAgICAgICAgICIwLjE1Nzg1OCwgMC4xODYxMDMsIDAuNDQ0ODQ5LCAwLjg3OTcyNywgMS4zMTM3NiwgMi4zMjg4NSwgMi45MDg0MiIsIFwKLSAgICAgICAgICAiMC4xNTc4NzgsIDAuMTg2MTAzLCAwLjQ0NDg0MywgMC44Nzk3MTYsIDEuMzE1MTUsIDIuMzI4ODgsIDIuOTExOSIsIFwKLSAgICAgICAgICAiMC4xNTc5MDksIDAuMTg2MTA3LCAwLjQ0NDg0NiwgMC44Nzk4NSwgMS4zMTMzNiwgMi4zMzEzNiwgMi45MDg3MiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogY2xlYXI7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEzMjMyMSwgMC4xNDY0OTYsIDAuMjczNTk2LCAwLjQ4NTUxMiwgMC42OTc5MzIsIDEuMTkyMDgsIDEuNDc1ODQiLCBcCi0gICAgICAgICAgIjAuMTQwNzY2LCAwLjE1NDk0MSwgMC4yODIwNDYsIDAuNDkzOTU5LCAwLjcwNjM1MSwgMS4yMDA0LCAxLjQ4Mzk0IiwgXAotICAgICAgICAgICIwLjE1MTQwNCwgMC4xNjU1NywgMC4yOTI2OSwgMC41MDQ2MDgsIDAuNzE2Nzk0LCAxLjIxMDkxLCAxLjQ5Mzc3IiwgXAotICAgICAgICAgICIwLjE2MTc1NiwgMC4xNzU5MjYsIDAuMzAzMDM0LCAwLjUxNDg5OSwgMC43MjY2MTEsIDEuMjIwNjIsIDEuNTAyNzYiLCBcCi0gICAgICAgICAgIjAuMTcxNjA3LCAwLjE4NTc2OSwgMC4zMTI5MDUsIDAuNTI0OTcsIDAuNzM2ODA1LCAxLjIzMTI4LCAxLjUxMzY3IiwgXAotICAgICAgICAgICIwLjE4NjE2NSwgMC4yMDAzMzcsIDAuMzI3NDk3LCAwLjUzOTMyNSwgMC43NTE1NDIsIDEuMjQ1NzksIDEuNTI4MDEiLCBcCi0gICAgICAgICAgIjAuMTk3Nzg3LCAwLjIxMTk2OCwgMC4zMzkxMDcsIDAuNTUwOTU4LCAwLjc2Mjk2LCAxLjI1NzYzLCAxLjU0MDA3Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE1Nzc1LCAwLjE4NTk5MiwgMC40NDQ4MDEsIDAuODc4ODk1LCAxLjMxMzU0LCAyLjMyNzkyLCAyLjkyMDkxIiwgXAotICAgICAgICAgICIwLjE1Nzc2MiwgMC4xODU5OTQsIDAuNDQ0Nzk0LCAwLjg3ODg2NiwgMS4zMTM1MiwgMi4zMjc5MiwgMi45MDcwOSIsIFwKLSAgICAgICAgICAiMC4xNTc3NTMsIDAuMTg1OTQ3LCAwLjQ0NDg0OSwgMC44Nzg4NjksIDEuMzEzMTgsIDIuMzI3MTEsIDIuOTA5NjQiLCBcCi0gICAgICAgICAgIjAuMTU3Nzk3LCAwLjE4NjAxMywgMC40NDQ4MTgsIDAuODc5OTYsIDEuMzE0OTgsIDIuMzMwMjMsIDIuOTEyMzYiLCBcCi0gICAgICAgICAgIjAuMTU3OTYzLCAwLjE4NjE1LCAwLjQ0NDg2NiwgMC44Nzg4MTQsIDEuMzE0MDUsIDIuMzMyMzIsIDIuOTA3NzciLCBcCi0gICAgICAgICAgIjAuMTU4NTgsIDAuMTg2NjY5LCAwLjQ0NTAzMSwgMC44NzkzNjcsIDEuMzEzNzksIDIuMzI3MTQsIDIuOTExMTYiLCBcCi0gICAgICAgICAgIjAuMTU5MjM3LCAwLjE4NzE5MiwgMC40NDUxMTksIDAuODc5OTkxLCAxLjMxNTY3LCAyLjMyNzY3LCAyLjkwOTI5Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwODU1NiwgMC4xMjI0NjUsIDAuMjQ2OTYyLCAwLjQ1NDM3NCwgMC42NjE3OTcsIDEuMTQ1NjgsIDEuNDIyMjgiLCBcCi0gICAgICAgICAgIjAuMTE4NTEyLCAwLjEzMjQyMiwgMC4yNTY5MjMsIDAuNDY0MzUsIDAuNjcxNzYzLCAxLjE1NTY2LCAxLjQzMjM5IiwgXAotICAgICAgICAgICIwLjEzMDcyNiwgMC4xNDQ2MzYsIDAuMjY5MTQ0LCAwLjQ3NjU2NywgMC42ODM5ODYsIDEuMTY3ODcsIDEuNDQ0NDEiLCBcCi0gICAgICAgICAgIjAuMTQyMDA3LCAwLjE1NTkxOSwgMC4yODA0MzIsIDAuNDg3ODU1LCAwLjY5NTI4NiwgMS4xNzkxOSwgMS40NTU5MyIsIFwKLSAgICAgICAgICAiMC4xNTE5NzMsIDAuMTY1ODgxLCAwLjI5MDM5MSwgMC40OTc4MjgsIDAuNzA1MjM1LCAxLjE4OTE2LCAxLjQ2NTc4IiwgXAotICAgICAgICAgICIwLjE2NTU4MywgMC4xNzk0ODksIDAuMzAzOTg5LCAwLjUxMTM5OSwgMC43MTg4MSwgMS4yMDI3NSwgMS40Nzk0OSIsIFwKLSAgICAgICAgICAiMC4xNzU5MiwgMC4xODk4MywgMC4zMTQzMSwgMC41MjE3MzgsIDAuNzI5MTQsIDEuMjEzMTEsIDEuNDg5NjkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTQ4MjAyLCAwLjE3NTc4NSwgMC40MjUwNTIsIDAuODQwMzUxLCAxLjI1ODAzLCAyLjIzMDE4LCAyLjc4NTgxIiwgXAotICAgICAgICAgICIwLjE0ODIyMSwgMC4xNzU3MDcsIDAuNDI0NzEzLCAwLjg0MDQ4NywgMS4yNTgxMiwgMi4yMzA1MSwgMi43ODYyNSIsIFwKLSAgICAgICAgICAiMC4xNDgyNiwgMC4xNzU1NTUsIDAuNDI1MDk0LCAwLjg0MDQ5NSwgMS4yNTgyOCwgMi4yMzAzOCwgMi43ODU3MiIsIFwKLSAgICAgICAgICAiMC4xNDgzODYsIDAuMTc1NjMzLCAwLjQyNDU3MywgMC44NDE1ODQsIDEuMjU4MjksIDIuMjI5MiwgMi43ODU4NyIsIFwKLSAgICAgICAgICAiMC4xNDg2MzMsIDAuMTc2MDg4LCAwLjQyNDg3LCAwLjg0MTI5OCwgMS4yNTgyNCwgMi4yMzA1NCwgMi43ODU5NSIsIFwKLSAgICAgICAgICAiMC4xNDkyMywgMC4xNzY1MDcsIDAuNDI0OTExLCAwLjg0MTMzNCwgMS4yNTgyMSwgMi4yMzAyNSwgMi43ODU0MiIsIFwKLSAgICAgICAgICAiMC4xNDk3NiwgMC4xNzY3ODEsIDAuNDI0Nzg3LCAwLjg0MTE3MSwgMS4yNTgwNiwgMi4yMzAwMywgMi43ODUzOSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkQiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjY5NSwgMC4wMDI2OTYsIDAuMDAyNjk5LCAwLjAwMjcsIDAuMDAyNzAxLCAwLjAwMjcwMSwgMC4wMDI3MDEiLCBcCi0gICAgICAgICAgIjAuMDAyNjg5LCAwLjAwMjY5LCAwLjAwMjY5MywgMC4wMDI2OTQsIDAuMDAyNjk0LCAwLjAwMjY5NSwgMC4wMDI2OTUiLCBcCi0gICAgICAgICAgIjAuMDAyNjg1LCAwLjAwMjY4NiwgMC4wMDI2ODksIDAuMDAyNjksIDAuMDAyNjksIDAuMDAyNjksIDAuMDAyNjkxIiwgXAotICAgICAgICAgICIwLjAwMjY4MywgMC4wMDI2ODQsIDAuMDAyNjg3LCAwLjAwMjY4OCwgMC4wMDI2ODksIDAuMDAyNjg4LCAwLjAwMjY4OSIsIFwKLSAgICAgICAgICAiMC4wMDI2OCwgMC4wMDI2ODEsIDAuMDAyNjg1LCAwLjAwMjY4NiwgMC4wMDI2ODYsIDAuMDAyNjg2LCAwLjAwMjY4NiIsIFwKLSAgICAgICAgICAiMC4wMDI2ODEsIDAuMDAyNjgyLCAwLjAwMjY4NiwgMC4wMDI2ODcsIDAuMDAyNjg3LCAwLjAwMjY4NywgMC4wMDI2ODgiLCBcCi0gICAgICAgICAgIjAuMDAyNjgzLCAwLjAwMjY4NiwgMC4wMDI2ODksIDAuMDAyNjksIDAuMDAyNjkxLCAwLjAwMjY5MSwgMC4wMDI2OTEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDIxMzksIDAuMDAyMTQsIDAuMDAyMTQ0LCAwLjAwMjE0NSwgMC4wMDIxNDYsIDAuMDAyMTQ2LCAwLjAwMjE0NiIsIFwKLSAgICAgICAgICAiMC4wMDIxMjgsIDAuMDAyMTI5LCAwLjAwMjEzMywgMC4wMDIxMzQsIDAuMDAyMTM0LCAwLjAwMjEzNSwgMC4wMDIxMzYiLCBcCi0gICAgICAgICAgIjAuMDAyMTIzLCAwLjAwMjEyNCwgMC4wMDIxMjcsIDAuMDAyMTI4LCAwLjAwMjEyOCwgMC4wMDIxMjgsIDAuMDAyMTI5IiwgXAotICAgICAgICAgICIwLjAwMjExNywgMC4wMDIxMTgsIDAuMDAyMTIyLCAwLjAwMjEyMywgMC4wMDIxMjQsIDAuMDAyMTI1LCAwLjAwMjEyNCIsIFwKLSAgICAgICAgICAiMC4wMDIxMTcsIDAuMDAyMTE4LCAwLjAwMjEyMiwgMC4wMDIxMjMsIDAuMDAyMTIzLCAwLjAwMjEyNSwgMC4wMDIxMjQiLCBcCi0gICAgICAgICAgIjAuMDAyMTE3LCAwLjAwMjExOCwgMC4wMDIxMjIsIDAuMDAyMTIzLCAwLjAwMjEyNCwgMC4wMDIxMjQsIDAuMDAyMTI1IiwgXAotICAgICAgICAgICIwLjAwMjEyMSwgMC4wMDIxMjIsIDAuMDAyMTI2LCAwLjAwMjEyOCwgMC4wMDIxMjgsIDAuMDAyMTI4LCAwLjAwMjEyOCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkdOIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQ1MDQsIDAuMDA0NTA1LCAwLjAwNDUwOCwgMC4wMDQ1MSwgMC4wMDQ1MDksIDAuMDA0NTA5LCAwLjAwNDUwOSIsIFwKLSAgICAgICAgICAiMC4wMDQ0ODgsIDAuMDA0NDg5LCAwLjAwNDQ5MiwgMC4wMDQ0OTMsIDAuMDA0NDk0LCAwLjAwNDQ5NCwgMC4wMDQ0OTQiLCBcCi0gICAgICAgICAgIjAuMDA0NDg0LCAwLjAwNDQ4NSwgMC4wMDQ0ODksIDAuMDA0NDksIDAuMDA0NDksIDAuMDA0NDksIDAuMDA0NDkiLCBcCi0gICAgICAgICAgIjAuMDA0NDg0LCAwLjAwNDQ4NywgMC4wMDQ0OSwgMC4wMDQ0OTEsIDAuMDA0NDkxLCAwLjAwNDQ4OSwgMC4wMDQ0OTIiLCBcCi0gICAgICAgICAgIjAuMDA0NDk1LCAwLjAwNDQ5NiwgMC4wMDQ0OTksIDAuMDA0NDk3LCAwLjAwNDUsIDAuMDA0NTAxLCAwLjAwNDUwMSIsIFwKLSAgICAgICAgICAiMC4wMDQ1MDMsIDAuMDA0NTA0LCAwLjAwNDUwNywgMC4wMDQ1MDgsIDAuMDA0NTA4LCAwLjAwNDUwOCwgMC4wMDQ1MSIsIFwKLSAgICAgICAgICAiMC4wMDQ1MTIsIDAuMDA0NTEzLCAwLjAwNDUxNywgMC4wMDQ1MTgsIDAuMDA0NTE4LCAwLjAwNDUxOCwgMC4wMDQ1MTgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQwNzMsIDAuMDA0MDc0LCAwLjAwNDA3NywgMC4wMDQwNzgsIDAuMDA0MDc4LCAwLjAwNDA3OSwgMC4wMDQwNzkiLCBcCi0gICAgICAgICAgIjAuMDA0MDU3LCAwLjAwNDA1OCwgMC4wMDQwNjIsIDAuMDA0MDYzLCAwLjAwNDA2MywgMC4wMDQwNjQsIDAuMDA0MDY0IiwgXAotICAgICAgICAgICIwLjAwNDA1NSwgMC4wMDQwNTYsIDAuMDA0MDU5LCAwLjAwNDA2LCAwLjAwNDA2MSwgMC4wMDQwNjEsIDAuMDA0MDYxIiwgXAotICAgICAgICAgICIwLjAwNDA1NCwgMC4wMDQwNTcsIDAuMDA0MDYsIDAuMDA0MDYyLCAwLjAwNDA2MiwgMC4wMDQwNiwgMC4wMDQwNjIiLCBcCi0gICAgICAgICAgIjAuMDA0MDYxLCAwLjAwNDA2NSwgMC4wMDQwNjgsIDAuMDA0MDY5LCAwLjAwNDA2NywgMC4wMDQwNjcsIDAuMDA0MDY3IiwgXAotICAgICAgICAgICIwLjAwNDA3LCAwLjAwNDA3MiwgMC4wMDQwNzUsIDAuMDA0MDc2LCAwLjAwNDA3NiwgMC4wMDQwNzcsIDAuMDA0MDc3IiwgXAotICAgICAgICAgICIwLjAwNDA4NCwgMC4wMDQwODUsIDAuMDA0MDg5LCAwLjAwNDA5LCAwLjAwNDA5LCAwLjAwNDA5LCAwLjAwNDA5MSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQwMTksIDAuMDA0MDIsIDAuMDA0MDIzLCAwLjAwNDAyNCwgMC4wMDQwMjQsIDAuMDA0MDI1LCAwLjAwNDAyNCIsIFwKLSAgICAgICAgICAiMC4wMDQwMDQsIDAuMDA0MDA1LCAwLjAwNDAwOCwgMC4wMDQwMDksIDAuMDA0MDEsIDAuMDA0MDExLCAwLjAwNDAxMSIsIFwKLSAgICAgICAgICAiMC4wMDQwMDEsIDAuMDA0MDAyLCAwLjAwNDAwNSwgMC4wMDQwMDYsIDAuMDA0MDA2LCAwLjAwNDAwNiwgMC4wMDQwMDYiLCBcCi0gICAgICAgICAgIjAuMDAzOTk5LCAwLjAwNCwgMC4wMDQwMDMsIDAuMDA0MDA0LCAwLjAwNDAwNCwgMC4wMDQwMDUsIDAuMDA0MDA0IiwgXAotICAgICAgICAgICIwLjAwNDAwMywgMC4wMDQwMDMsIDAuMDA0MDA2LCAwLjAwNDAwNywgMC4wMDQwMDksIDAuMDA0MDA5LCAwLjAwNDAwOSIsIFwKLSAgICAgICAgICAiMC4wMDQwMTEsIDAuMDA0MDEyLCAwLjAwNDAxNSwgMC4wMDQwMTYsIDAuMDA0MDE2LCAwLjAwNDAxNywgMC4wMDQwMTciLCBcCi0gICAgICAgICAgIjAuMDA0MDE3LCAwLjAwNDAxOCwgMC4wMDQwMjEsIDAuMDA0MDIyLCAwLjAwNDAyMiwgMC4wMDQwMjMsIDAuMDA0MDIzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzMjE1LCAwLjAwMzIxNiwgMC4wMDMyMiwgMC4wMDMyMjEsIDAuMDAzMjIxLCAwLjAwMzIyMiwgMC4wMDMyMjIiLCBcCi0gICAgICAgICAgIjAuMDAzMiwgMC4wMDMyMDEsIDAuMDAzMjA0LCAwLjAwMzIwNiwgMC4wMDMyMDYsIDAuMDAzMjA2LCAwLjAwMzIwNiIsIFwKLSAgICAgICAgICAiMC4wMDMxOTMsIDAuMDAzMTk0LCAwLjAwMzE5NywgMC4wMDMxOTksIDAuMDAzMTk5LCAwLjAwMzE5OSwgMC4wMDMxOTkiLCBcCi0gICAgICAgICAgIjAuMDAzMTksIDAuMDAzMTkxLCAwLjAwMzE5NCwgMC4wMDMxOTUsIDAuMDAzMTk2LCAwLjAwMzE5NiwgMC4wMDMxOTYiLCBcCi0gICAgICAgICAgIjAuMDAzMTkyLCAwLjAwMzE5MywgMC4wMDMxOTcsIDAuMDAzMTk4LCAwLjAwMzE5OCwgMC4wMDMxOTksIDAuMDAzMTk5IiwgXAotICAgICAgICAgICIwLjAwMzE5MSwgMC4wMDMxOTMsIDAuMDAzMTk2LCAwLjAwMzE5NywgMC4wMDMxOTgsIDAuMDAzMTk4LCAwLjAwMzE5OCIsIFwKLSAgICAgICAgICAiMC4wMDMxOTksIDAuMDAzMiwgMC4wMDMyMDMsIDAuMDAzMjA0LCAwLjAwMzIwNSwgMC4wMDMyMDUsIDAuMDAzMjA1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiU04iOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTUzNSwgMC4wMDE1MzUsIDAuMDAxNTM3LCAwLjAwMTUzOCwgMC4wMDE1MzksIDAuMDAxNTM4LCAwLjAwMTUzOSIsIFwKLSAgICAgICAgICAiMC4wMDE1MjEsIDAuMDAxNTIxLCAwLjAwMTUyNCwgMC4wMDE1MjUsIDAuMDAxNTI1LCAwLjAwMTUyNSwgMC4wMDE1MjUiLCBcCi0gICAgICAgICAgIjAuMDAxNTE2LCAwLjAwMTUxNiwgMC4wMDE1MTksIDAuMDAxNTIsIDAuMDAxNTIsIDAuMDAxNTIxLCAwLjAwMTUyMSIsIFwKLSAgICAgICAgICAiMC4wMDE1MTEsIDAuMDAxNTEyLCAwLjAwMTUxNSwgMC4wMDE1MTYsIDAuMDAxNTE3LCAwLjAwMTUxNiwgMC4wMDE1MTciLCBcCi0gICAgICAgICAgIjAuMDAxNTE0LCAwLjAwMTUxNSwgMC4wMDE1MTgsIDAuMDAxNTE5LCAwLjAwMTUxOSwgMC4wMDE1MiwgMC4wMDE1MiIsIFwKLSAgICAgICAgICAiMC4wMDE1MTQsIDAuMDAxNTE1LCAwLjAwMTUxOSwgMC4wMDE1MiwgMC4wMDE1MjEsIDAuMDAxNTIxLCAwLjAwMTUyMSIsIFwKLSAgICAgICAgICAiMC4wMDE1MiwgMC4wMDE1MjEsIDAuMDAxNTI0LCAwLjAwMTUyNSwgMC4wMDE1MjYsIDAuMDAxNTI2LCAwLjAwMTUyNiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjU1NCwgMC4wMDI1NTQsIDAuMDAyNTU2LCAwLjAwMjU1NywgMC4wMDI1NTcsIDAuMDAyNTU3LCAwLjAwMjU1NyIsIFwKLSAgICAgICAgICAiMC4wMDI1NCwgMC4wMDI1NDEsIDAuMDAyNTQzLCAwLjAwMjU0NCwgMC4wMDI1NDQsIDAuMDAyNTQ1LCAwLjAwMjU0NSIsIFwKLSAgICAgICAgICAiMC4wMDI1MzIsIDAuMDAyNTMzLCAwLjAwMjUzNiwgMC4wMDI1MzcsIDAuMDAyNTM4LCAwLjAwMjUzOCwgMC4wMDI1MzkiLCBcCi0gICAgICAgICAgIjAuMDAyNTI0LCAwLjAwMjUyNSwgMC4wMDI1MjksIDAuMDAyNTMsIDAuMDAyNTMxLCAwLjAwMjUzMiwgMC4wMDI1MzIiLCBcCi0gICAgICAgICAgIjAuMDAyNTIxLCAwLjAwMjUyMiwgMC4wMDI1MjYsIDAuMDAyNTI4LCAwLjAwMjUyOCwgMC4wMDI1MjksIDAuMDAyNTI5IiwgXAotICAgICAgICAgICIwLjAwMjUyNCwgMC4wMDI1MjUsIDAuMDAyNTMsIDAuMDAyNTMyLCAwLjAwMjUzMywgMC4wMDI1MzQsIDAuMDAyNTM0IiwgXAotICAgICAgICAgICIwLjAwMjUzLCAwLjAwMjUzMywgMC4wMDI1MzgsIDAuMDAyNTM5LCAwLjAwMjU0MSwgMC4wMDI1NDIsIDAuMDAyNTQyIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihSTikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNTM0MzU7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNTM0MzU7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNTI1MzE7Ci0gICAgY2xvY2sgOiB0cnVlOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjU2MiwgMC4wMDI1MjIsIDAuMDAyNTIzLCAwLjAwMjUzNywgMC4wMDI1NTksIDAuMDAyNTgxLCAwLjAwMjYwOCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDQ1NywgMC4wMDA0NTQsIDAuMDAwNDU0LCAwLjAwMDQ1NCwgMC4wMDA0NTQsIDAuMDAwNDU0LCAwLjAwMDQ1NCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJHTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJEJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMV9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjA1NjI1LCAtMC4wNDUsIC0wLjAzODc1LCAtMC4wMzI1LCAtMC4wMjYyNSwgLTAuMDIyNSwgLTAuMDIiLCBcCi0gICAgICAgICAgIi0wLjA2NzUsIC0wLjA1NjI1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDM3NSwgLTAuMDI3NSwgLTAuMDI1IiwgXAotICAgICAgICAgICItMC4wNzM3NSwgLTAuMDY4NzUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjA0LCAtMC4wMzc1IiwgXAotICAgICAgICAgICItMC4wODYyNSwgLTAuMDc1LCAtMC4wNjg3NSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA0NjI1LCAtMC4wNDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDkyNSwgLTAuMDg3NSwgLTAuMDc1LCAtMC4wNjg3NSwgLTAuMDYyNSwgLTAuMDU4NzUsIC0wLjA1NjI1IiwgXAotICAgICAgICAgICItMC4xMDg3NSwgLTAuMDk3NSwgLTAuMDkxMjUsIC0wLjA3ODc1LCAtMC4wNzg3NSwgLTAuMDY4NzUsIC0wLjA2NjI1IiwgXAotICAgICAgICAgICItMC4xMTc1LCAtMC4xMDYyNSwgLTAuMSwgLTAuMDkzNzUsIC0wLjA4NzUsIC0wLjA3NzUsIC0wLjA3NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQmU04iOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4xODgyODgsIDAuMTk3NTUxLCAwLjIwNzg0LCAwLjIxNzM3NSwgMC4yMjY0NDcsIDAuMjM5NTMzLCAwLjI0OTQ4NCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJHTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiRCZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzFfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjg3NSwgMC4wNjM3NSwgMC4wNTEyNSwgMC4wNDUsIDAuMDM4NzUsIDAuMDM1LCAwLjAzMjUiLCBcCi0gICAgICAgICAgIjAuMDgsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNSwgMC4wNSwgMC4wNCwgMC4wMzc1IiwgXAotICAgICAgICAgICIwLjA5MjUsIDAuMDgxMjUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNTI1LCAwLjA1IiwgXAotICAgICAgICAgICIwLjA5ODc1LCAwLjA4NzUsIDAuMDgxMjUsIDAuMDc1LCAwLjA2ODc1LCAwLjA1ODc1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICIwLjExMTI1LCAwLjEsIDAuMDg3NSwgMC4wODEyNSwgMC4wNzUsIDAuMDcxMjUsIDAuMDYyNSIsIFwKLSAgICAgICAgICAiMC4xMjEyNSwgMC4xMSwgMC4xMDM3NSwgMC4wOTEyNSwgMC4wODUsIDAuMDgxMjUsIDAuMDc4NzUiLCBcCi0gICAgICAgICAgIjAuMTMsIDAuMTE4NzUsIDAuMTEyNSwgMC4xMDYyNSwgMC4xLCAwLjA5LCAwLjA4NzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFNOKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2MTQ0Mjk7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjE0NDI5OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDYxMzM3NTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyMjYsIDAuMDAwMjI2LCAwLjAwMDIyNiwgMC4wMDAyMjYsIDAuMDAwMjI2LCAwLjAwMDIyNiwgMC4wMDAyMjYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyMzQsIDAuMDAwMjI4LCAwLjAwMDIyNywgMC4wMDAyMjcsIDAuMDAwMjI3LCAwLjAwMDIyNywgMC4wMDAyMjciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiU04iOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFEIjsKLSAgICAgIHNkZl9jb25kIDogIkQgPT0gMSdiMCI7Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4xMTkwMDEsIDAuMTI5MTU2LCAwLjE0MTM0MiwgMC4xNTIzNzMsIDAuMTYxODIxLCAwLjE3NDY2OCwgMC4xODQyNDUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiR04iOwotICAgICAgdGltaW5nX3R5cGUgOiByZWNvdmVyeV9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEJlJOIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9STl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHJlY292ZXJ5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMTI1LCAtMC4wMTc1LCAtMC4wMywgLTAuMDM2MjUsIC0wLjA0ODc1LCAtMC4wNTI1LCAtMC4wNjEyNSIsIFwKLSAgICAgICAgICAiLTAuMDAxMjUsIC0wLjAxMjUsIC0wLjAyNSwgLTAuMDMxMjUsIC0wLjAzNzUsIC0wLjA0NzUsIC0wLjA1NjI1IiwgXAotICAgICAgICAgICIwLjAwNSwgMCwgLTAuMDEyNSwgLTAuMDE4NzUsIC0wLjAzMTI1LCAtMC4wNDEyNSwgLTAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMDE3NSwgMC4wMDYyNSwgLTAuMDA2MjUsIC0wLjAxMjUsIC0wLjAxODc1LCAtMC4wMjg3NSwgLTAuMDM3NSIsIFwKLSAgICAgICAgICAiMC4wMjM3NSwgMC4wMTI1LCAwLCAtMC4wMDYyNSwgLTAuMDEyNSwgLTAuMDIyNSwgLTAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMDMzNzUsIDAuMDIyNSwgMC4wMSwgMC4wMDM3NSwgLTAuMDAyNSwgLTAuMDEyNSwgLTAuMDIxMjUiLCBcCi0gICAgICAgICAgIjAuMDM2MjUsIDAuMDMxMjUsIDAuMDE4NzUsIDAuMDA2MjUsIDAsIC0wLjAxLCAtMC4wMTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIHRpbWluZ190eXBlIDogcmVjb3ZlcnlfcmlzaW5nOwotICAgICAgd2hlbiA6ICJHTiI7Ci0gICAgICBzZGZfY29uZCA6ICJHTiA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChyZWNvdmVyeV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDYyNSwgLTAuMDA1LCAtMC4wMTEyNSwgLTAuMDExMjUsIC0wLjAxNzUsIC0wLjAyMTI1LCAtMC4wMjM3NSIsIFwKLSAgICAgICAgICAiMC4wMTEyNSwgMC4wMDYyNSwgMCwgLTAuMDA2MjUsIC0wLjAxMjUsIC0wLjAxNjI1LCAtMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4wMjM3NSwgMC4wMTI1LCAwLjAwNjI1LCAwLCAwLCAtMC4wMSwgLTAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4wMywgMC4wMTg3NSwgMC4wMTI1LCAwLjAwNjI1LCAwLjAwNjI1LCAtMC4wMDM3NSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMDM2MjUsIDAuMDI1LCAwLjAxODc1LCAwLjAxMjUsIDAuMDA2MjUsIDAuMDAyNSwgMCIsIFwKLSAgICAgICAgICAiMC4wNCwgMC4wMzUsIDAuMDI4NzUsIDAuMDIyNSwgMC4wMTYyNSwgMC4wMDYyNSwgMC4wMDM3NSIsIFwKLSAgICAgICAgICAiMC4wNDg3NSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMTg3NSwgMC4wMTUsIDAuMDEyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJHTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJlbW92YWxfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRCZSTiI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fUk5fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChyZW1vdmFsX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzMTI1LCAwLjA0MjUsIDAuMDU1LCAwLjA2MTI1LCAwLjA2NzUsIDAuMDc3NSwgMC4wODYyNSIsIFwKLSAgICAgICAgICAiMC4wMjYyNSwgMC4wMzEyNSwgMC4wNDM3NSwgMC4wNSwgMC4wNjI1LCAwLjA2NjI1LCAwLjA3NSIsIFwKLSAgICAgICAgICAiMC4wMTM3NSwgMC4wMjUsIDAuMDM3NSwgMC4wNDM3NSwgMC4wNSwgMC4wNiwgMC4wNjg3NSIsIFwKLSAgICAgICAgICAiMC4wMDc1LCAwLjAxODc1LCAwLjAzMTI1LCAwLjAzNzUsIDAuMDQzNzUsIDAuMDUzNzUsIDAuMDYyNSIsIFwKLSAgICAgICAgICAiMC4wMDEyNSwgMC4wMTI1LCAwLjAyNSwgMC4wMzEyNSwgMC4wMzc1LCAwLjA0NzUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIi0wLjAwODc1LCAwLjAwMjUsIDAuMDE1LCAwLjAyMTI1LCAwLjAyNzUsIDAuMDM3NSwgMC4wNDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDExMjUsIC0wLjAwNjI1LCAwLjAwNjI1LCAwLjAxMjUsIDAuMDI1LCAwLjAzNSwgMC4wMzc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIHRpbWluZ190eXBlIDogcmVtb3ZhbF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIkdOIjsKLSAgICAgIHNkZl9jb25kIDogIkdOID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHJlbW92YWxfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEyNSwgMC4wMjM3NSwgMC4wMywgMC4wMzYyNSwgMC4wNDI1LCAwLjA1MjUsIDAuMDYxMjUiLCBcCi0gICAgICAgICAgIjAuMDA3NSwgMC4wMTI1LCAwLjAyNSwgMC4wMzEyNSwgMC4wMzc1LCAwLjA0NzUsIDAuMDUiLCBcCi0gICAgICAgICAgIjAuMDAxMjUsIDAuMDA2MjUsIDAuMDEyNSwgMC4wMjUsIDAuMDMxMjUsIDAuMDM1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICItMC4wMDUsIDAsIDAuMDA2MjUsIDAuMDE4NzUsIDAuMDI1LCAwLjAyODc1LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjAxMTI1LCAtMC4wMDYyNSwgMCwgMC4wMTI1LCAwLjAxODc1LCAwLjAyODc1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wMjEyNSwgLTAuMDEsIC0wLjAwMzc1LCAwLjAwMjUsIDAuMDA4NzUsIDAuMDE4NzUsIDAuMDI3NSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMCwgMC4wMSwgMC4wMTg3NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogVExBVE5UU0NBWDE2ICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoVExBVE5UU0NBWDE2KSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDEuMTkwOTg7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgY2xvY2tfZ2F0aW5nX2ludGVncmF0ZWRfY2VsbCA6ICJsYXRjaF9wb3NlZGdlX3ByZWNvbnRyb2wiOwotICBzdGF0ZXRhYmxlKCIgQ0sgIEUgU0UgIiwgIiBFSU5UICIpIHsKLSAgICAgdGFibGUgOiAiICBMICBMICBMIDogLSA6IEwgLCBcCi0gICAgICAgICAgICAgICAgTCAgSCAgTCA6IC0gOiBIICwgXAotICAgICAgICAgICAgICAgIEwgIEwgIEggOiAtIDogSCAsIFwKLSAgICAgICAgICAgICAgICBMICBIICBIIDogLSA6IEggLCBcCi0gICAgICAgICAgICAgICAgSCAgLSAgLSA6IC0gOiBOICI7Ci0gIH0KLSAgcGluKEVJTlQpIHsKLSAgICBkaXJlY3Rpb24gOiBpbnRlcm5hbDsKLSAgICBpbnRlcm5hbF9ub2RlIDogIkVJTlQiOwotICB9Ci0gIHBpbihDSykgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjU5OTUzOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDY1OTgxOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDY1OTk1MzsKLSAgICBjbG9ja19nYXRlX2Nsb2NrX3BpbiA6IHRydWU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA0ODQyLCAwLjAwNDgxMiwgMC4wMDQ4MDMsIDAuMDA0ODA0LCAwLjAwNDgwOSwgMC4wMDQ4MjksIDAuMDA0ODUxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA0NjkxLCAwLjAwNDY2NywgMC4wMDQ2NTUsIDAuMDA0NjU1LCAwLjAwNDY2NCwgMC4wMDQ2ODgsIDAuMDA0NzA3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRSYhU0UiOwotICAgICAgc2RmX2NvbmQgOiAiRV9FUV8wX0FOX1NFX0VRXzAgPT0gMSdiMSI7Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4xMzEzMDMsIDAuMTQxMTI0LCAwLjE1MzA4OSwgMC4xNjMxOTIsIDAuMTcyMDM2LCAwLjE4NDI1MiwgMC4xOTM0MjQiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEUpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY3NTAwNzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2NzQ2NTc7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjc1MDA3OwotICAgIGNsb2NrX2dhdGVfZW5hYmxlX3BpbiA6IHRydWU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA1OTU3LCAwLjAwNTk0MSwgMC4wMDU5MzEsIDAuMDA1OTIxLCAwLjAwNTkxOSwgMC4wMDU5MywgMC4wMDU5NTciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDY2MTEsIDAuMDA2NTk3LCAwLjAwNjU5MiwgMC4wMDY1OTEsIDAuMDA2NjAyLCAwLjAwNjYxOSwgMC4wMDY2NDEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIVNFIjsKLSAgICAgIHNkZl9jb25kIDogIlNFID09IDEnYjAiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjA0Mzc1LCAtMC4wMzI1LCAtMC4wMjYyNSwgLTAuMDIsIC0wLjAxMzc1LCAtMC4wMSwgLTAuMDA3NSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMjEyNSwgLTAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDYxMjUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzMzc1LCAtMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjA3Mzc1LCAtMC4wNjg3NSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNDYyNSwgLTAuMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDg2MjUsIC0wLjA4MTI1LCAtMC4wNzUsIC0wLjA2ODc1LCAtMC4wNjI1LCAtMC4wNTg3NSwgLTAuMDUiLCBcCi0gICAgICAgICAgIi0wLjEwMjUsIC0wLjA5NzUsIC0wLjA5MTI1LCAtMC4wODUsIC0wLjA3ODc1LCAtMC4wNjg3NSwgLTAuMDY2MjUiLCBcCi0gICAgICAgICAgIi0wLjExNzUsIC0wLjEwNjI1LCAtMC4xLCAtMC4wOTM3NSwgLTAuMDkzNzUsIC0wLjA4Mzc1LCAtMC4wODEyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjA0Mzc1LCAtMC4wMzI1LCAtMC4wMiwgLTAuMDA3NSwgLTAuMDAxMjUsIDAuMDA4NzUsIDAuMDE3NSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjA0Mzc1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIDAuMDAzNzUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDYxMjUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDA4NzUsIDAiLCBcCi0gICAgICAgICAgIi0wLjA3Mzc1LCAtMC4wNjI1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjAzMTI1LCAtMC4wMjEyNSwgLTAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDg2MjUsIC0wLjA3NSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA0Mzc1LCAtMC4wMzM3NSwgLTAuMDI1IiwgXAotICAgICAgICAgICItMC4xMDI1LCAtMC4wOTEyNSwgLTAuMDc4NzUsIC0wLjA3MjUsIC0wLjA2LCAtMC4wNSwgLTAuMDQxMjUiLCBcCi0gICAgICAgICAgIi0wLjExNzUsIC0wLjEwNjI1LCAtMC4wOTM3NSwgLTAuMDgxMjUsIC0wLjA3NSwgLTAuMDU4NzUsIC0wLjA1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhU0UiOwotICAgICAgc2RmX2NvbmQgOiAiU0UgPT0gMSdiMCI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDUsIDAuMDM4NzUsIDAuMDMyNSwgMC4wMjYyNSwgMC4wMiwgMC4wMTYyNSwgMC4wMTM3NSIsIFwKLSAgICAgICAgICAiMC4wNTUsIDAuMDUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMjc1LCAwLjAxODc1IiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNSwgMC4wNDM3NSwgMC4wNCwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4wOCwgMC4wNzUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNTI1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjA5MjUsIDAuMDg3NSwgMC4wODEyNSwgMC4wNzUsIDAuMDY4NzUsIDAuMDY1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICIwLjEwODc1LCAwLjEwMzc1LCAwLjA5NzUsIDAuMDkxMjUsIDAuMDg1LCAwLjA3NSwgMC4wNzI1IiwgXAotICAgICAgICAgICIwLjEyMzc1LCAwLjExMjUsIDAuMTA2MjUsIDAuMSwgMC4xLCAwLjA5LCAwLjA4NzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNSwgMC4wMzg3NSwgMC4wMjYyNSwgMC4wMTM3NSwgMC4wMDc1LCAtMC4wMDI1LCAtMC4wMTEyNSIsIFwKLSAgICAgICAgICAiMC4wNTUsIDAuMDUsIDAuMDM3NSwgMC4wMjUsIDAuMDE4NzUsIDAuMDAyNSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMDY3NSwgMC4wNTYyNSwgMC4wNSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAxNSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiMC4wOCwgMC4wNjg3NSwgMC4wNTYyNSwgMC4wNSwgMC4wMzc1LCAwLjAyNzUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMDkyNSwgMC4wODEyNSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1LCAwLjA0LCAwLjAzMTI1IiwgXAotICAgICAgICAgICIwLjEwODc1LCAwLjA5NzUsIDAuMDg1LCAwLjA3ODc1LCAwLjA2NjI1LCAwLjA1NjI1LCAwLjA0NzUiLCBcCi0gICAgICAgICAgIjAuMTIzNzUsIDAuMTEyNSwgMC4xLCAwLjA4NzUsIDAuMDgxMjUsIDAuMDY1LCAwLjA1NjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihFQ0spICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogNC4yMzU2MjsKLSAgICBjbG9ja19nYXRlX291dF9waW4gOiB0cnVlOwotICAgIHN0YXRlX2Z1bmN0aW9uIDogIihDSyBFSU5UKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEyNjg1MywgMC4xMjk4MTgsIDAuMTQyOTk4LCAwLjE1MjQ3NCwgMC4xNjQwODEsIDAuMTg1ODU2LCAwLjE5OTA1OCIsIFwKLSAgICAgICAgICAiMC4xMzcxMjQsIDAuMTM5OTk0LCAwLjE1MzExOCwgMC4xNjI2MDcsIDAuMTc0MjUzLCAwLjE5NjAxMiwgMC4yMDkyMzUiLCBcCi0gICAgICAgICAgIjAuMTQ5NTI3LCAwLjE1MjQ4LCAwLjE2NTU2NiwgMC4xNzUxLCAwLjE4NjcyNSwgMC4yMDg0NjIsIDAuMjIxNjgyIiwgXAotICAgICAgICAgICIwLjE2MDQ1MSwgMC4xNjMzOTksIDAuMTc2NTMyLCAwLjE4NjAzNiwgMC4xOTc2NDEsIDAuMjE5MzkxLCAwLjIzMjYyMiIsIFwKLSAgICAgICAgICAiMC4xNjk5NDYsIDAuMTcyOTAzLCAwLjE4NjA4MSwgMC4xOTU1NTIsIDAuMjA3MTYzLCAwLjIyODkzNSwgMC4yNDIxNTEiLCBcCi0gICAgICAgICAgIjAuMTgzMzU4LCAwLjE4NjMzNCwgMC4xOTk0NjQsIDAuMjA4OTQyLCAwLjIyMDU2NiwgMC4yNDIzMzIsIDAuMjU1NTQ1IiwgXAotICAgICAgICAgICIwLjE5Mjg3MywgMC4xOTU4MSwgMC4yMDg4ODUsIDAuMjE4MzgxLCAwLjIyOTk4NSwgMC4yNTE3MTQsIDAuMjY0OTIzIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyNDE2NiwgMC4wMjc1OTEsIDAuMDQ1MzcyLCAwLjA2MDMyMSwgMC4wODA0MzYsIDAuMTIxMjUsIDAuMTQ3MDk2IiwgXAotICAgICAgICAgICIwLjAyNDA0NiwgMC4wMjc2MTQsIDAuMDQ1MjkzLCAwLjA2MDMzNSwgMC4wODA0MjksIDAuMTIxMjQ4LCAwLjE0NzA0NCIsIFwKLSAgICAgICAgICAiMC4wMjQwMzksIDAuMDI3NDc2LCAwLjA0NTIzMiwgMC4wNjAzMzksIDAuMDgwNDUyLCAwLjEyMTIxNywgMC4xNDcwNDQiLCBcCi0gICAgICAgICAgIjAuMDI0MTAyLCAwLjAyNzU1LCAwLjA0NTMzLCAwLjA2MDI4OCwgMC4wODA0NTIsIDAuMTIxMjQ4LCAwLjE0NzA5NSIsIFwKLSAgICAgICAgICAiMC4wMjQxOTcsIDAuMDI3NTc3LCAwLjA0NTMyOSwgMC4wNjAyOTUsIDAuMDgwNDI0LCAwLjEyMTI0NiwgMC4xNDcwOTUiLCBcCi0gICAgICAgICAgIjAuMDI0MTU2LCAwLjAyNzU0NywgMC4wNDUzMDMsIDAuMDYwMzE3LCAwLjA4MDQ0NywgMC4xMjEyMzYsIDAuMTQ3MDgzIiwgXAotICAgICAgICAgICIwLjAyNDExMiwgMC4wMjc1NDMsIDAuMDQ1MzE1LCAwLjA2MDM0NywgMC4wODA0NzMsIDAuMTIxMjYsIDAuMTQ3MDc3Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExMjI0OCwgMC4xMTQ3NiwgMC4xMjY0NzYsIDAuMTM1NTQ1LCAwLjE0Njk2NCwgMC4xNjkxODQsIDAuMTgyOTI0IiwgXAotICAgICAgICAgICIwLjEyMjA1MSwgMC4xMjQ1NTQsIDAuMTM2MzQ0LCAwLjE0NTM3NywgMC4xNTY4MDksIDAuMTc5MDAzLCAwLjE5Mjc1MyIsIFwKLSAgICAgICAgICAiMC4xMzM5NDQsIDAuMTM2NDY0LCAwLjE0ODIzLCAwLjE1NzI5LCAwLjE2ODcsIDAuMTkwODkzLCAwLjIwNDY0NCIsIFwKLSAgICAgICAgICAiMC4xNDM5NDQsIDAuMTQ2NDM5LCAwLjE1ODE2MywgMC4xNjcyMTYsIDAuMTc4NjQzLCAwLjIwMDg2MywgMC4yMTQ2MDIiLCBcCi0gICAgICAgICAgIjAuMTUyNTY0LCAwLjE1NTA5MiwgMC4xNjY4NjcsIDAuMTc1OTQsIDAuMTg3MzU5LCAwLjIwOTU1NywgMC4yMjMzMDkiLCBcCi0gICAgICAgICAgIjAuMTY0NzE5LCAwLjE2NzIyNywgMC4xNzg4NzIsIDAuMTg3ODg1LCAwLjE5OTMxOCwgMC4yMjE1MzEsIDAuMjM1MzU2IiwgXAotICAgICAgICAgICIwLjE3MzYxNywgMC4xNzYwNTksIDAuMTg3Nzk1LCAwLjE5Njg1NywgMC4yMDgzMzMsIDAuMjMwNTM5LCAwLjI0NDI4NSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTkzMzgsIDAuMDIyNjA2LCAwLjA0MDQwMywgMC4wNTYwNTcsIDAuMDc3NDE5LCAwLjEyMDg0NCwgMC4xNDgzMzUiLCBcCi0gICAgICAgICAgIjAuMDE5NDM1LCAwLjAyMjY1NywgMC4wNDA0NDMsIDAuMDU2MDYxLCAwLjA3NzQyMywgMC4xMjA4NTMsIDAuMTQ4NDExIiwgXAotICAgICAgICAgICIwLjAxOTM5NCwgMC4wMjI3MDIsIDAuMDQwNDM1LCAwLjA1NjA2MiwgMC4wNzc0MTUsIDAuMTIwODQzLCAwLjE0ODMzMyIsIFwKLSAgICAgICAgICAiMC4wMTkzMzEsIDAuMDIyNjI0LCAwLjA0MDQyNSwgMC4wNTYwNjMsIDAuMDc3NDE5LCAwLjEyMDg0NSwgMC4xNDgxOTciLCBcCi0gICAgICAgICAgIjAuMDE5NDUzLCAwLjAyMjcxOCwgMC4wNDA0MjgsIDAuMDU2MDc0LCAwLjA3NzQyMywgMC4xMjA4NSwgMC4xNDg0MjMiLCBcCi0gICAgICAgICAgIjAuMDE5MjYsIDAuMDIyNTQ5LCAwLjA0MDM0OSwgMC4wNTYwNDEsIDAuMDc3NDAxLCAwLjEyMDg4OCwgMC4xNDgzODUiLCBcCi0gICAgICAgICAgIjAuMDE5MzI3LCAwLjAyMjY3OSwgMC4wNDA0MTIsIDAuMDU2MDc3LCAwLjA3NzUxMywgMC4xMjA5NjMsIDAuMTQ4MzgzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyMzY3NiwgMC4wMjM3MTYsIDAuMDIzOTU1LCAwLjAyNDExMiwgMC4wMjQyNTcsIDAuMDI0NDI0LCAwLjAyNDQ5MSIsIFwKLSAgICAgICAgICAiMC4wMjM2NjEsIDAuMDIzNjgsIDAuMDIzOTI1LCAwLjAyNDA4MiwgMC4wMjQyMjYsIDAuMDI0Mzk3LCAwLjAyNDQ1NyIsIFwKLSAgICAgICAgICAiMC4wMjM2NTksIDAuMDIzNjkyLCAwLjAyMzkxNywgMC4wMjQwNzUsIDAuMDI0MjE4LCAwLjAyNDM4NSwgMC4wMjQ0NDgiLCBcCi0gICAgICAgICAgIjAuMDIzNjU2LCAwLjAyMzY5MSwgMC4wMjM5MTcsIDAuMDI0MDc1LCAwLjAyNDIxOSwgMC4wMjQzOTIsIDAuMDI0NDU1IiwgXAotICAgICAgICAgICIwLjAyMzY0NywgMC4wMjM2ODgsIDAuMDIzOTMsIDAuMDI0MDg3LCAwLjAyNDIzMiwgMC4wMjQ0MDEsIDAuMDI0NDY5IiwgXAotICAgICAgICAgICIwLjAyMzY0LCAwLjAyMzY3OSwgMC4wMjM5MjIsIDAuMDI0MDgzLCAwLjAyNDIyOSwgMC4wMjQzOTksIDAuMDI0NDY1IiwgXAotICAgICAgICAgICIwLjAyMzcxMiwgMC4wMjM3NDgsIDAuMDIzOTcsIDAuMDI0MTI5LCAwLjAyNDI3MywgMC4wMjQ0NDMsIDAuMDI0NTA2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDI4OTAxLCAwLjAyODk4OCwgMC4wMjkzNzEsIDAuMDI5NTk2LCAwLjAyOTc4OCwgMC4wMjk5OTcsIDAuMDMwMDczIiwgXAotICAgICAgICAgICIwLjAyODg2MiwgMC4wMjg5NTMsIDAuMDI5MzUzLCAwLjAyOTU3NiwgMC4wMjk3NjcsIDAuMDI5OTc0LCAwLjAzMDA1IiwgXAotICAgICAgICAgICIwLjAyODg2NCwgMC4wMjg5NTgsIDAuMDI5MzU4LCAwLjAyOTU4MSwgMC4wMjk3NzIsIDAuMDI5OTgsIDAuMDMwMDU1IiwgXAotICAgICAgICAgICIwLjAyODg5MSwgMC4wMjg5NzcsIDAuMDI5MzYxLCAwLjAyOTU4NiwgMC4wMjk3NzgsIDAuMDI5OTg3LCAwLjAzMDA2MyIsIFwKLSAgICAgICAgICAiMC4wMjg4NjcsIDAuMDI4OTYxLCAwLjAyOTM3MSwgMC4wMjk1OTQsIDAuMDI5Nzg2LCAwLjAyOTk5NSwgMC4wMzAwNyIsIFwKLSAgICAgICAgICAiMC4wMjg4NjUsIDAuMDI4OTYyLCAwLjAyOTM4LCAwLjAyOTYwNywgMC4wMjk4MDMsIDAuMDMwMDE4LCAwLjAzMDA5NSIsIFwKLSAgICAgICAgICAiMC4wMjg5NDQsIDAuMDI4OTk5LCAwLjAyOTQyOSwgMC4wMjk2NTgsIDAuMDI5ODI3LCAwLjAzMDA1MSwgMC4wMzAxMjkiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFNFKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA3MTQxNjQ7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNzExNTk2OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDcxNDE2NDsKLSAgICBjbG9ja19nYXRlX3Rlc3RfcGluIDogdHJ1ZTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDYxMjksIDAuMDA2MTEyLCAwLjAwNjEwOSwgMC4wMDYxLCAwLjAwNjEwMywgMC4wMDYxMTgsIDAuMDA2MTQ0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA2ODA0LCAwLjAwNjc5NCwgMC4wMDY3ODcsIDAuMDA2NzgzLCAwLjAwNjc4NCwgMC4wMDY3ODYsIDAuMDA2Nzk5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFFIjsKLSAgICAgIHNkZl9jb25kIDogIkUgPT0gMSdiMCI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDQzNzUsIC0wLjAzODc1LCAtMC4wMjYyNSwgLTAuMDI2MjUsIC0wLjAyLCAtMC4wMSwgLTAuMDA3NSIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAzMTI1LCAtMC4wMjEyNSwgLTAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjA2NzUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjA0Mzc1LCAtMC4wMzM3NSwgLTAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjA4LCAtMC4wNjg3NSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA1NjI1LCAtMC4wNDYyNSwgLTAuMDQzNzUiLCBcCi0gICAgICAgICAgIi0wLjA5MjUsIC0wLjA4MTI1LCAtMC4wNzUsIC0wLjA2ODc1LCAtMC4wNjI1LCAtMC4wNTg3NSwgLTAuMDUiLCBcCi0gICAgICAgICAgIi0wLjEwODc1LCAtMC4wOTc1LCAtMC4wOTEyNSwgLTAuMDg1LCAtMC4wODUsIC0wLjA3NSwgLTAuMDcyNSIsIFwKLSAgICAgICAgICAiLTAuMTIzNzUsIC0wLjExMjUsIC0wLjEwNjI1LCAtMC4xLCAtMC4wOTM3NSwgLTAuMDksIC0wLjA4MTI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDQzNzUsIC0wLjAzODc1LCAtMC4wMjYyNSwgLTAuMDEzNzUsIC0wLjAwNzUsIDAuMDA4NzUsIDAuMDE3NSIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNDM3NSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDEyNSwgLTAuMDAyNSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDYxMjUsIC0wLjA1NjI1LCAtMC4wNDM3NSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDA4NzUsIDAiLCBcCi0gICAgICAgICAgIi0wLjA3Mzc1LCAtMC4wNjI1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjAzMTI1LCAtMC4wMjEyNSwgLTAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDg2MjUsIC0wLjA3NSwgLTAuMDYyNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wMjc1LCAtMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDk2MjUsIC0wLjA4NSwgLTAuMDcyNSwgLTAuMDY2MjUsIC0wLjA1Mzc1LCAtMC4wNDM3NSwgLTAuMDM1IiwgXAotICAgICAgICAgICItMC4xMTEyNSwgLTAuMSwgLTAuMDg3NSwgLTAuMDc1LCAtMC4wNjg3NSwgLTAuMDUyNSwgLTAuMDQzNzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFFIjsKLSAgICAgIHNkZl9jb25kIDogIkUgPT0gMSdiMCI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDUsIDAuMDQ1LCAwLjAzMjUsIDAuMDMyNSwgMC4wMjYyNSwgMC4wMTYyNSwgMC4wMTM3NSIsIFwKLSAgICAgICAgICAiMC4wNjEyNSwgMC4wNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzNzUsIDAuMDI3NSwgMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMDczNzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNSwgMC4wNSwgMC4wNCwgMC4wMzc1IiwgXAotICAgICAgICAgICIwLjA4NjI1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA2MjUsIDAuMDUyNSwgMC4wNSIsIFwKLSAgICAgICAgICAiMC4wOTg3NSwgMC4wODc1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIjAuMTE1LCAwLjEwMzc1LCAwLjA5NzUsIDAuMDkxMjUsIDAuMDkxMjUsIDAuMDgxMjUsIDAuMDc4NzUiLCBcCi0gICAgICAgICAgIjAuMTMsIDAuMTE4NzUsIDAuMTEyNSwgMC4xMDYyNSwgMC4xLCAwLjA5NjI1LCAwLjA4NzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNSwgMC4wNDUsIDAuMDMyNSwgMC4wMiwgMC4wMTM3NSwgLTAuMDAyNSwgLTAuMDExMjUiLCBcCi0gICAgICAgICAgIjAuMDYxMjUsIDAuMDUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMTg3NSwgMC4wMDg3NSwgMCIsIFwKLSAgICAgICAgICAiMC4wNjc1LCAwLjA2MjUsIDAuMDUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMTUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMDgsIDAuMDY4NzUsIDAuMDU2MjUsIDAuMDUsIDAuMDM3NSwgMC4wMjc1LCAwLjAxODc1IiwgXAotICAgICAgICAgICIwLjA5MjUsIDAuMDgxMjUsIDAuMDY4NzUsIDAuMDU2MjUsIDAuMDUsIDAuMDMzNzUsIDAuMDI1IiwgXAotICAgICAgICAgICIwLjEwMjUsIDAuMDkxMjUsIDAuMDc4NzUsIDAuMDcyNSwgMC4wNiwgMC4wNSwgMC4wNDEyNSIsIFwKLSAgICAgICAgICAiMC4xMTc1LCAwLjEwNjI1LCAwLjA5Mzc1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNTg3NSwgMC4wNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBUTEFUTlRTQ0FYNCAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoVExBVE5UU0NBWDQpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4zNzc2NTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBjbG9ja19nYXRpbmdfaW50ZWdyYXRlZF9jZWxsIDogImxhdGNoX3Bvc2VkZ2VfcHJlY29udHJvbCI7Ci0gIHN0YXRldGFibGUoIiBDSyAgRSBTRSAiLCAiIEVJTlQgIikgewotICAgICB0YWJsZSA6ICIgIEwgIEwgIEwgOiAtIDogTCAsIFwKLSAgICAgICAgICAgICAgICBMICBIICBMIDogLSA6IEggLCBcCi0gICAgICAgICAgICAgICAgTCAgTCAgSCA6IC0gOiBIICwgXAotICAgICAgICAgICAgICAgIEwgIEggIEggOiAtIDogSCAsIFwKLSAgICAgICAgICAgICAgICBIICAtICAtIDogLSA6IE4gIjsKLSAgfQotICBwaW4oRUlOVCkgewotICAgIGRpcmVjdGlvbiA6IGludGVybmFsOwotICAgIGludGVybmFsX25vZGUgOiAiRUlOVCI7Ci0gIH0KLSAgcGluKENLKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2MTQ1MDU7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjE0MjE4OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDYxNDUwNTsKLSAgICBjbG9ja19nYXRlX2Nsb2NrX3BpbiA6IHRydWU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzMTk0LCAwLjAwMzE2MywgMC4wMDMxNTEsIDAuMDAzMTU0LCAwLjAwMzE2NSwgMC4wMDMxODUsIDAuMDAzMjA2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzMDkyLCAwLjAwMzA2NywgMC4wMDMwNTYsIDAuMDAzMDU2LCAwLjAwMzA2OCwgMC4wMDMwOTEsIDAuMDAzMTE0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRSYhU0UiOwotICAgICAgc2RmX2NvbmQgOiAiRV9FUV8wX0FOX1NFX0VRXzAgPT0gMSdiMSI7Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wOTkxNiwgMC4xMDkwMiwgMC4xMjA2MTQsIDAuMTMwMTI1LCAwLjEzODgzOSwgMC4xNTAwNzgsIDAuMTU4NTc0Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihFKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2NzAyODsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2NzAxODc7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjcwMjg7Ci0gICAgY2xvY2tfZ2F0ZV9lbmFibGVfcGluIDogdHJ1ZTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDI4MDksIDAuMDAyNzkxLCAwLjAwMjc4NCwgMC4wMDI3NzQsIDAuMDAyNzc4LCAwLjAwMjc5NiwgMC4wMDI4MDYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDQ0NDMsIDAuMDA0NDI2LCAwLjAwNDQyMSwgMC4wMDQ0MjIsIDAuMDA0NDMxLCAwLjAwNDQ1LCAwLjAwNDQ3MiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhU0UiOwotICAgICAgc2RmX2NvbmQgOiAiU0UgPT0gMSdiMCI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDM3NSwgLTAuMDI2MjUsIC0wLjAyLCAtMC4wMTM3NSwgLTAuMDEzNzUsIC0wLjAwMzc1LCAtMC4wMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxNSwgLTAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMjc1LCAtMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjA2NzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjA0LCAtMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDgsIC0wLjA3NSwgLTAuMDY4NzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNTI1LCAtMC4wNDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDk2MjUsIC0wLjA5MTI1LCAtMC4wNzg3NSwgLTAuMDc4NzUsIC0wLjA3MjUsIC0wLjA2MjUsIC0wLjA2IiwgXAotICAgICAgICAgICItMC4xMTEyNSwgLTAuMSwgLTAuMDkzNzUsIC0wLjA4NzUsIC0wLjA4MTI1LCAtMC4wNzc1LCAtMC4wNzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMzc1LCAtMC4wMzI1LCAtMC4wMiwgLTAuMDA3NSwgLTAuMDAxMjUsIDAuMDA4NzUsIDAuMDE3NSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjAzNzUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLjAwMzc1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjA2MTI1LCAtMC4wNSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAxODc1LCAtMC4wMDg3NSwgMCIsIFwKLSAgICAgICAgICAiLTAuMDczNzUsIC0wLjA2MjUsIC0wLjA1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDIxMjUsIC0wLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjA4NjI1LCAtMC4wNzUsIC0wLjA2MjUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDMzNzUsIC0wLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMTAyNSwgLTAuMDkxMjUsIC0wLjA3ODc1LCAtMC4wNjYyNSwgLTAuMDYsIC0wLjA1LCAtMC4wNDEyNSIsIFwKLSAgICAgICAgICAiLTAuMTExMjUsIC0wLjEsIC0wLjA4NzUsIC0wLjA4MTI1LCAtMC4wNjg3NSwgLTAuMDU4NzUsIC0wLjA1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhU0UiOwotICAgICAgc2RmX2NvbmQgOiAiU0UgPT0gMSdiMCI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQzNzUsIDAuMDMyNSwgMC4wMjYyNSwgMC4wMiwgMC4wMiwgMC4wMSwgMC4wMDc1IiwgXAotICAgICAgICAgICIwLjA0ODc1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDI1LCAwLjAyMTI1LCAwLjAxODc1IiwgXAotICAgICAgICAgICIwLjA2MTI1LCAwLjA1NjI1LCAwLjA1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDMzNzUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMDczNzUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNSwgMC4wNDYyNSwgMC4wMzc1IiwgXAotICAgICAgICAgICIwLjA4NjI1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1ODc1LCAwLjA1IiwgXAotICAgICAgICAgICIwLjEwMjUsIDAuMDk3NSwgMC4wODUsIDAuMDg1LCAwLjA3ODc1LCAwLjA2ODc1LCAwLjA2NjI1IiwgXAotICAgICAgICAgICIwLjExNzUsIDAuMTA2MjUsIDAuMSwgMC4wOTM3NSwgMC4wODc1LCAwLjA4Mzc1LCAwLjA4MTI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQzNzUsIDAuMDM4NzUsIDAuMDI2MjUsIDAuMDEzNzUsIDAuMDA3NSwgLTAuMDAyNSwgLTAuMDExMjUiLCBcCi0gICAgICAgICAgIjAuMDU1LCAwLjA0Mzc1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMTI1LCAwLjAwMjUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDU2MjUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMjUsIDAuMDE1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICIwLjA4LCAwLjA2ODc1LCAwLjA1NjI1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDI3NSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4wOTI1LCAwLjA4MTI1LCAwLjA2ODc1LCAwLjA1NjI1LCAwLjA1LCAwLjA0LCAwLjAzMTI1IiwgXAotICAgICAgICAgICIwLjEwODc1LCAwLjA5NzUsIDAuMDg1LCAwLjA3MjUsIDAuMDY2MjUsIDAuMDU2MjUsIDAuMDQ3NSIsIFwKLSAgICAgICAgICAiMC4xMTc1LCAwLjEwNjI1LCAwLjA5Mzc1LCAwLjA4NzUsIDAuMDc1LCAwLjA2NSwgMC4wNTYyNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRUNLKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDEuMDMyOTk7Ci0gICAgY2xvY2tfZ2F0ZV9vdXRfcGluIDogdHJ1ZTsKLSAgICBzdGF0ZV9mdW5jdGlvbiA6ICIoQ0sgRUlOVCkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExNDcxMiwgMC4xOTA0MjgsIDAuMjYxNjI3LCAwLjMxMjQ0NywgMC4zOTM3OTQsIDAuNDY0ODMzLCAwLjU2NjQ2NSIsIFwKLSAgICAgICAgICAiMC4xMjQ5MzMsIDAuMjAwNjE2LCAwLjI3MTg0NCwgMC4zMjI2MjksIDAuNDAzOTExLCAwLjQ3NTEzNywgMC41NzY1OTIiLCBcCi0gICAgICAgICAgIjAuMTM3MDk1LCAwLjIxMjc0OCwgMC4yODM5NTIsIDAuMzM0NzU1LCAwLjQxNjEyMywgMC40ODcyNDQsIDAuNTg4ODU4IiwgXAotICAgICAgICAgICIwLjE0NzU2MywgMC4yMjMyNCwgMC4yOTQ0NTMsIDAuMzQ1Mjg4LCAwLjQyNjU0MiwgMC40OTc3MzYsIDAuNTk5MjY1IiwgXAotICAgICAgICAgICIwLjE1NjUwOCwgMC4yMzIxOTIsIDAuMzAzNDA1LCAwLjM1NDIxLCAwLjQzNTU1NywgMC41MDY2NzIsIDAuNjA4MjE2IiwgXAotICAgICAgICAgICIwLjE2OTEwNSwgMC4yNDQ2ODgsIDAuMzE1ODk2LCAwLjM2NjY5OSwgMC40NDc5ODIsIDAuNTE5MTEyLCAwLjYyMDY3MSIsIFwKLSAgICAgICAgICAiMC4xNzg1MSwgMC4yNTQxNDgsIDAuMzI1MzY0LCAwLjM3NjE1NiwgMC40NTc0MzUsIDAuNTI4NTU0LCAwLjYzMDE1Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM4NjA0LCAwLjE3ODQ4MiwgMC4zMjM1MjcsIDAuNDI3MzUyLCAwLjU5NDIzNSwgMC43NDIyMzEsIDAuOTQ5MjU3IiwgXAotICAgICAgICAgICIwLjAzODU0MywgMC4xNzg0ODgsIDAuMzIzNjI4LCAwLjQyNzg2OSwgMC41OTQ2MzMsIDAuNzQwNDc3LCAwLjk1MTM4OSIsIFwKLSAgICAgICAgICAiMC4wMzg2MzUsIDAuMTc4NDkyLCAwLjMyMzUxMSwgMC40Mjc4NjEsIDAuNTk0MzY2LCAwLjc0MDYxMiwgMC45NDk4MDgiLCBcCi0gICAgICAgICAgIjAuMDM4NjE3LCAwLjE3ODQ4NywgMC4zMjM1NzUsIDAuNDI3OTgsIDAuNTk0NzE4LCAwLjc0MDYxOCwgMC45NTAwMjciLCBcCi0gICAgICAgICAgIjAuMDM4NjMsIDAuMTc4NDksIDAuMzIzNTE0LCAwLjQyNzg1NSwgMC41OTQ2NjYsIDAuNzQwNjg5LCAwLjk1MDY0NiIsIFwKLSAgICAgICAgICAiMC4wMzg2NTgsIDAuMTc4NTAyLCAwLjMyMzUyMiwgMC40Mjc4NDgsIDAuNTk1NDUsIDAuNzQyMjM3LCAwLjk1MDU5NyIsIFwKLSAgICAgICAgICAiMC4wMzg1ODIsIDAuMTc4NTI5LCAwLjMyMzU5NywgMC40Mjc4MDEsIDAuNTk1MzU3LCAwLjc0MTcxOCwgMC45NTE3NjIiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTczMTcsIDAuMTcxOTY1LCAwLjI0NTQyMywgMC4yOTc4NzksIDAuMzgxODk5LCAwLjQ1NTMzNCwgMC41NjA0MjQiLCBcCi0gICAgICAgICAgIjAuMTA3MTg1LCAwLjE4MTg0OCwgMC4yNTUyOTMsIDAuMzA3NzU4LCAwLjM5MTkxMSwgMC40NjUyNDcsIDAuNTcwMzIyIiwgXAotICAgICAgICAgICIwLjExODY4NywgMC4xOTMzNDQsIDAuMjY2Nzk1LCAwLjMxOTI1OSwgMC40MDMyNjIsIDAuNDc2NzAzLCAwLjU4MTY3OCIsIFwKLSAgICAgICAgICAiMC4xMjgwMTMsIDAuMjAyNjgsIDAuMjc2MjU0LCAwLjMyODcyNSwgMC40MTI3NjEsIDAuNDg2MzU2LCAwLjU5MTMzOSIsIFwKLSAgICAgICAgICAiMC4xMzY1ODMsIDAuMjExMjgyLCAwLjI4NDc4MiwgMC4zMzcyOTQsIDAuNDIxMzg0LCAwLjQ5NDgxNSwgMC42MDAwNzEiLCBcCi0gICAgICAgICAgIjAuMTQ3Njg5LCAwLjIyMjM4LCAwLjI5NTksIDAuMzQ4NDE0LCAwLjQzMjQzNiwgMC41MDYxOCwgMC42MTA5OTciLCBcCi0gICAgICAgICAgIjAuMTU2MDY5LCAwLjIzMDc2MiwgMC4zMDQyOTksIDAuMzU2Nzk3LCAwLjQ0MDgxMiwgMC41MTQ1NjMsIDAuNjE5NDEzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDMyMzIzLCAwLjE3NzQ0OCwgMC4zMjYxMzMsIDAuNDMxNjEsIDAuNjAyNDA5LCAwLjc1MjU1MSwgMC45NjQ5MzkiLCBcCi0gICAgICAgICAgIjAuMDMyMywgMC4xNzczNjgsIDAuMzI1NDk1LCAwLjQzMjc0MiwgMC42MDIzNTksIDAuNzUxNTU3LCAwLjk2NDc3NCIsIFwKLSAgICAgICAgICAiMC4wMzIzMTQsIDAuMTc3NjA5LCAwLjMyNTUwNSwgMC40MzI4NjUsIDAuNjAyMzIsIDAuNzUyNTc0LCAwLjk2NDcyOCIsIFwKLSAgICAgICAgICAiMC4wMzIzMjksIDAuMTc3NjI5LCAwLjMyNTQ1OSwgMC40MzI4MjYsIDAuNjAyNDc1LCAwLjc1MTU0MSwgMC45NjQ3NzgiLCBcCi0gICAgICAgICAgIjAuMDMyMjk1LCAwLjE3NzY1MywgMC4zMjYzMDEsIDAuNDMyODM0LCAwLjYwMjM5NiwgMC43NTIzMTksIDAuOTY0NzA1IiwgXAotICAgICAgICAgICIwLjAzMjMzLCAwLjE3NzQwNiwgMC4zMjU5NjIsIDAuNDMyNDU3LCAwLjYwMjQ2MywgMC43NTA1MDIsIDAuOTY0NzUxIiwgXAotICAgICAgICAgICIwLjAzMjMyMywgMC4xNzczMjMsIDAuMzI1OTI0LCAwLjQzMjg0NywgMC42MDM0MDUsIDAuNzUxNjA5LCAwLjk2NDc1NyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwODIyMywgMC4wMDg0MDcsIDAuMDA4NDM4LCAwLjAwODQ0NSwgMC4wMDg0NTMsIDAuMDA4NDU5LCAwLjAwODQ2MSIsIFwKLSAgICAgICAgICAiMC4wMDgxOTEsIDAuMDA4Mzc0LCAwLjAwODQwNCwgMC4wMDg0MTMsIDAuMDA4NDIzLCAwLjAwODQyNiwgMC4wMDg0MjkiLCBcCi0gICAgICAgICAgIjAuMDA4MTgzLCAwLjAwODM2NSwgMC4wMDgzOTQsIDAuMDA4NDA0LCAwLjAwODQxMywgMC4wMDg0MTcsIDAuMDA4NDIiLCBcCi0gICAgICAgICAgIjAuMDA4MTksIDAuMDA4MzczLCAwLjAwODQwMywgMC4wMDg0MTIsIDAuMDA4NDIzLCAwLjAwODQyNSwgMC4wMDg0MjgiLCBcCi0gICAgICAgICAgIjAuMDA4MjA1LCAwLjAwODM4NywgMC4wMDg0MTcsIDAuMDA4NDI3LCAwLjAwODQzNSwgMC4wMDg0NCwgMC4wMDg0NDMiLCBcCi0gICAgICAgICAgIjAuMDA4MjEyLCAwLjAwODM5NCwgMC4wMDg0MjYsIDAuMDA4NDM3LCAwLjAwODQ0MywgMC4wMDg0NDgsIDAuMDA4NDUyIiwgXAotICAgICAgICAgICIwLjAwODIzMiwgMC4wMDg0MTgsIDAuMDA4NDQ1LCAwLjAwODQ1NywgMC4wMDg0NjMsIDAuMDA4NDcxLCAwLjAwODQ3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDExMDg0LCAwLjAxMTI4MiwgMC4wMTEzMDksIDAuMDExMzE3LCAwLjAxMTMyMywgMC4wMTEzMjcsIDAuMDExMzMiLCBcCi0gICAgICAgICAgIjAuMDExMDU3LCAwLjAxMTI1NiwgMC4wMTEyODIsIDAuMDExMjksIDAuMDExMjk3LCAwLjAxMTMsIDAuMDExMzAzIiwgXAotICAgICAgICAgICIwLjAxMTA2OSwgMC4wMTEyNjgsIDAuMDExMjk0LCAwLjAxMTMwMSwgMC4wMTEzMDgsIDAuMDExMzExLCAwLjAxMTMxNCIsIFwKLSAgICAgICAgICAiMC4wMTEwOCwgMC4wMTEyNzgsIDAuMDExMzA0LCAwLjAxMTMxMiwgMC4wMTEzMTksIDAuMDExMzIyLCAwLjAxMTMyNiIsIFwKLSAgICAgICAgICAiMC4wMTEwODgsIDAuMDExMjksIDAuMDExMzE3LCAwLjAxMTMyNSwgMC4wMTEzMzIsIDAuMDExMzM1LCAwLjAxMTMzOSIsIFwKLSAgICAgICAgICAiMC4wMTExMzIsIDAuMDExMzI3LCAwLjAxMTM1MywgMC4wMTEzNDksIDAuMDExMzY4LCAwLjAxMTM1OSwgMC4wMTEzNzUiLCBcCi0gICAgICAgICAgIjAuMDExMTQ2LCAwLjAxMTM0NCwgMC4wMTEzNjgsIDAuMDExMzc5LCAwLjAxMTM4NSwgMC4wMTEzODksIDAuMDExMzkyIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTRSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNzA5MDUyOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDcwNjEwNDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA3MDkwNTI7Ci0gICAgY2xvY2tfZ2F0ZV90ZXN0X3BpbiA6IHRydWU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyOTY2LCAwLjAwMjk0OSwgMC4wMDI5NDQsIDAuMDAyOTM5LCAwLjAwMjk0NiwgMC4wMDI5NjYsIDAuMDAyOTc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA0NjM3LCAwLjAwNDYyNCwgMC4wMDQ2MTcsIDAuMDA0NjE0LCAwLjAwNDYxNCwgMC4wMDQ2MTcsIDAuMDA0NjI0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFFIjsKLSAgICAgIHNkZl9jb25kIDogIkUgPT0gMSdiMCI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDM3NSwgLTAuMDMyNSwgLTAuMDIsIC0wLjAyLCAtMC4wMTM3NSwgLTAuMDAzNzUsIC0wLjAwMTI1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDI1LCAtMC4wMTUsIC0wLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjA2MTI1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzNzUsIC0wLjAyNzUsIC0wLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDczNzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDUsIC0wLjA0LCAtMC4wMzc1IiwgXAotICAgICAgICAgICItMC4wODYyNSwgLTAuMDc1LCAtMC4wNjg3NSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA1MjUsIC0wLjA1IiwgXAotICAgICAgICAgICItMC4xMDI1LCAtMC4wOTEyNSwgLTAuMDg1LCAtMC4wNzg3NSwgLTAuMDcyNSwgLTAuMDY4NzUsIC0wLjA2NjI1IiwgXAotICAgICAgICAgICItMC4xMTEyNSwgLTAuMTA2MjUsIC0wLjEsIC0wLjA5Mzc1LCAtMC4wODc1LCAtMC4wODM3NSwgLTAuMDc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDQzNzUsIC0wLjAzMjUsIC0wLjAyLCAtMC4wMTM3NSwgLTAuMDAxMjUsIDAuMDA4NzUsIDAuMDE3NSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjA0Mzc1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwMjUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA2MTI1LCAtMC4wNSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAxODc1LCAtMC4wMDg3NSwgMCIsIFwKLSAgICAgICAgICAiLTAuMDczNzUsIC0wLjA2MjUsIC0wLjA1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDIxMjUsIC0wLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjA4LCAtMC4wNjg3NSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wMzc1LCAtMC4wMjc1LCAtMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDk2MjUsIC0wLjA4NSwgLTAuMDcyNSwgLTAuMDYsIC0wLjA1Mzc1LCAtMC4wNDM3NSwgLTAuMDM1IiwgXAotICAgICAgICAgICItMC4xMDUsIC0wLjA5Mzc1LCAtMC4wODEyNSwgLTAuMDc1LCAtMC4wNjI1LCAtMC4wNTI1LCAtMC4wNDM3NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUUiOwotICAgICAgc2RmX2NvbmQgOiAiRSA9PSAxJ2IwIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDM3NSwgMC4wMzg3NSwgMC4wMjYyNSwgMC4wMjYyNSwgMC4wMiwgMC4wMSwgMC4wMDc1IiwgXAotICAgICAgICAgICIwLjA1NSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAzMTI1LCAwLjAyMTI1LCAwLjAxODc1IiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDU2MjUsIDAuMDUsIDAuMDQzNzUsIDAuMDQzNzUsIDAuMDMzNzUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMDgsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNTYyNSwgMC4wNDYyNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4wOTI1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1ODc1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICIwLjEwODc1LCAwLjA5NzUsIDAuMDkxMjUsIDAuMDg1LCAwLjA3ODc1LCAwLjA3NSwgMC4wNzI1IiwgXAotICAgICAgICAgICIwLjExNzUsIDAuMTEyNSwgMC4xMDYyNSwgMC4xLCAwLjA5Mzc1LCAwLjA5LCAwLjA4MTI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDUsIDAuMDM4NzUsIDAuMDI2MjUsIDAuMDIsIDAuMDA3NSwgLTAuMDAyNSwgLTAuMDExMjUiLCBcCi0gICAgICAgICAgIjAuMDU1LCAwLjA1LCAwLjAzNzUsIDAuMDI1LCAwLjAxODc1LCAwLjAwODc1LCAwIiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDU2MjUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMjUsIDAuMDE1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICIwLjA4LCAwLjA2ODc1LCAwLjA1NjI1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDI3NSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4wODYyNSwgMC4wNzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNDM3NSwgMC4wMzM3NSwgMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMTAyNSwgMC4wOTEyNSwgMC4wNzg3NSwgMC4wNjYyNSwgMC4wNiwgMC4wNSwgMC4wNDEyNSIsIFwKLSAgICAgICAgICAiMC4xMTEyNSwgMC4xLCAwLjA4NzUsIDAuMDgxMjUsIDAuMDY4NzUsIDAuMDU4NzUsIDAuMDUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogVExBVE5UU0NBWDggKgotICogLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKFRMQVROVFNDQVg4KSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuNjEzOTM4OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIGNsb2NrX2dhdGluZ19pbnRlZ3JhdGVkX2NlbGwgOiAibGF0Y2hfcG9zZWRnZV9wcmVjb250cm9sIjsKLSAgc3RhdGV0YWJsZSgiIENLICBFIFNFICIsICIgRUlOVCAiKSB7Ci0gICAgIHRhYmxlIDogIiAgTCAgTCAgTCA6IC0gOiBMICwgXAotICAgICAgICAgICAgICAgIEwgIEggIEwgOiAtIDogSCAsIFwKLSAgICAgICAgICAgICAgICBMICBMICBIIDogLSA6IEggLCBcCi0gICAgICAgICAgICAgICAgTCAgSCAgSCA6IC0gOiBIICwgXAotICAgICAgICAgICAgICAgIEggIC0gIC0gOiAtIDogTiAiOwotICB9Ci0gIHBpbihFSU5UKSB7Ci0gICAgZGlyZWN0aW9uIDogaW50ZXJuYWw7Ci0gICAgaW50ZXJuYWxfbm9kZSA6ICJFSU5UIjsKLSAgfQotICBwaW4oQ0spICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYzNzAxNjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MzY3NzM7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjM3MDE2OwotICAgIGNsb2NrX2dhdGVfY2xvY2tfcGluIDogdHJ1ZTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDM1ODksIDAuMDAzNTU4LCAwLjAwMzU0NywgMC4wMDM1NTEsIDAuMDAzNTU4LCAwLjAwMzU3NiwgMC4wMDM1OTkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDM3MTIsIDAuMDAzNjg4LCAwLjAwMzY3NSwgMC4wMDM2NzYsIDAuMDAzNjg5LCAwLjAwMzcwOSwgMC4wMDM3MzMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFFJiFTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJFX0VRXzBfQU5fU0VfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjExMjQxNiwgMC4xMjIzNDUsIDAuMTM0MTUyLCAwLjE0NDE2OCwgMC4xNTI5MzUsIDAuMTY0ODY5LCAwLjE3NDA3NyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjkxODU1OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDY5MTg1NTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2OTE2NTk7Ci0gICAgY2xvY2tfZ2F0ZV9lbmFibGVfcGluIDogdHJ1ZTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDM4MTEsIDAuMDAzNzk1LCAwLjAwMzc4NiwgMC4wMDM3NzMsIDAuMDAzNzc5LCAwLjAwMzgsIDAuMDAzODA5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA1MDU4LCAwLjAwNTA0LCAwLjAwNTAzNiwgMC4wMDUwMzYsIDAuMDA1MDQ1LCAwLjAwNTA2MiwgMC4wMDUwOCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhU0UiOwotICAgICAgc2RmX2NvbmQgOiAiU0UgPT0gMSdiMCI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDM3NSwgLTAuMDI2MjUsIC0wLjAyLCAtMC4wMTM3NSwgLTAuMDEzNzUsIC0wLjAwMzc1LCAtMC4wMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTUsIC0wLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjA2MTI1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMjc1LCAtMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjA3Mzc1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wNCwgLTAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjA4LCAtMC4wNzUsIC0wLjA2ODc1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDUyNSwgLTAuMDQzNzUiLCBcCi0gICAgICAgICAgIi0wLjA5NjI1LCAtMC4wOTEyNSwgLTAuMDg1LCAtMC4wNzg3NSwgLTAuMDcyNSwgLTAuMDY4NzUsIC0wLjA2IiwgXAotICAgICAgICAgICItMC4xMTEyNSwgLTAuMSwgLTAuMDkzNzUsIC0wLjA4NzUsIC0wLjA4NzUsIC0wLjA3NzUsIC0wLjA3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjA0Mzc1LCAtMC4wMzI1LCAtMC4wMiwgLTAuMDA3NSwgLTAuMDAxMjUsIDAuMDE1LCAwLjAyMzc1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDM3NSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAuMDAzNzUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDYxMjUsIC0wLjA1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIC0wLjAwODc1LCAwIiwgXAotICAgICAgICAgICItMC4wNzM3NSwgLTAuMDYyNSwgLTAuMDUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMjEyNSwgLTAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDg2MjUsIC0wLjA3NSwgLTAuMDYyNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wMjc1LCAtMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMTAyNSwgLTAuMDkxMjUsIC0wLjA3ODc1LCAtMC4wNjYyNSwgLTAuMDYsIC0wLjA0Mzc1LCAtMC4wMzUiLCBcCi0gICAgICAgICAgIi0wLjExMTI1LCAtMC4xLCAtMC4wOTM3NSwgLTAuMDgxMjUsIC0wLjA2ODc1LCAtMC4wNTg3NSwgLTAuMDUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJTRSA9PSAxJ2IwIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDM3NSwgMC4wMzI1LCAwLjAyNjI1LCAwLjAyLCAwLjAyLCAwLjAxLCAwLjAwNzUiLCBcCi0gICAgICAgICAgIjAuMDU1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDI1LCAwLjAyMTI1LCAwLjAxODc1IiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDU2MjUsIDAuMDUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzM3NSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4wOCwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1LCAwLjA0NjI1LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIjAuMDg2MjUsIDAuMDgxMjUsIDAuMDc1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDU4NzUsIDAuMDUiLCBcCi0gICAgICAgICAgIjAuMTAyNSwgMC4wOTc1LCAwLjA5MTI1LCAwLjA4NSwgMC4wNzg3NSwgMC4wNzUsIDAuMDY2MjUiLCBcCi0gICAgICAgICAgIjAuMTE3NSwgMC4xMDYyNSwgMC4xLCAwLjA5Mzc1LCAwLjA5Mzc1LCAwLjA4Mzc1LCAwLjA4MTI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDUsIDAuMDM4NzUsIDAuMDI2MjUsIDAuMDEzNzUsIDAuMDA3NSwgLTAuMDA4NzUsIC0wLjAxNzUiLCBcCi0gICAgICAgICAgIjAuMDU1LCAwLjA0Mzc1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMTI1LCAwLjAwMjUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDU2MjUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMjUsIDAuMDE1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICIwLjA4LCAwLjA2ODc1LCAwLjA1NjI1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDI3NSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4wOTI1LCAwLjA4MTI1LCAwLjA2ODc1LCAwLjA1NjI1LCAwLjA1LCAwLjAzMzc1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiMC4xMDg3NSwgMC4wOTc1LCAwLjA4NSwgMC4wNzI1LCAwLjA2NjI1LCAwLjA1LCAwLjA0MTI1IiwgXAotICAgICAgICAgICIwLjExNzUsIDAuMTA2MjUsIDAuMSwgMC4wODc1LCAwLjA3NSwgMC4wNjUsIDAuMDU2MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEVDSykgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAxLjk5MTA1OwotICAgIGNsb2NrX2dhdGVfb3V0X3BpbiA6IHRydWU7Ci0gICAgc3RhdGVfZnVuY3Rpb24gOiAiKENLIEVJTlQpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTI2NDgsIDAuMTU1MTY0LCAwLjE5MjAwNywgMC4yMTgwMjYsIDAuMjU5NTk3LCAwLjI5NTk0NiwgMC4zNDc4NjUiLCBcCi0gICAgICAgICAgIjAuMTIyNzcxLCAwLjE2NTMyMSwgMC4yMDIyMDcsIDAuMjI4MjI5LCAwLjI2OTc4NSwgMC4zMDYxMzcsIDAuMzU4MDU4IiwgXAotICAgICAgICAgICIwLjEzNTIxNywgMC4xNzc3NjksIDAuMjE0NjM1LCAwLjI0MDY3MSwgMC4yODIyMjcsIDAuMzE4NTg5LCAwLjM3MDQ5MiIsIFwKLSAgICAgICAgICAiMC4xNDYxMzEsIDAuMTg4NjMxLCAwLjIyNTU0NywgMC4yNTE1MywgMC4yOTMxMjksIDAuMzI5NDc2LCAwLjM4MTM5NCIsIFwKLSAgICAgICAgICAiMC4xNTUzOTIsIDAuMTk3OTI5LCAwLjIzNDgwOSwgMC4yNjA4MywgMC4zMDIzODcsIDAuMzM4NzQ0LCAwLjM5MDY3NCIsIFwKLSAgICAgICAgICAiMC4xNjg4NjgsIDAuMjExMzU0LCAwLjI0ODIzMSwgMC4yNzQyNjcsIDAuMzE1ODcsIDAuMzUyMjE3LCAwLjQwNDE0MSIsIFwKLSAgICAgICAgICAiMC4xNzg3ODcsIDAuMjIxMzMyLCAwLjI1ODE2MywgMC4yODQxNjQsIDAuMzI1NzM5LCAwLjM2MjA4OSwgMC40MTM5OTgiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjg0ODksIDAuMDk5MDk1LCAwLjE3MTY3MSwgMC4yMjQyNzgsIDAuMzA5MDQ2LCAwLjM4Mzk2NSwgMC40ODk4ODEiLCBcCi0gICAgICAgICAgIjAuMDI4NDI0LCAwLjA5OTEzNSwgMC4xNzE2NTcsIDAuMjI0MTc4LCAwLjMwOTMxMywgMC4zODM2MTIsIDAuNDkwOTciLCBcCi0gICAgICAgICAgIjAuMDI4NDM2LCAwLjA5OTA3MywgMC4xNzE2MywgMC4yMjQxNzUsIDAuMzA5MzEsIDAuMzgzMzMsIDAuNDkwODciLCBcCi0gICAgICAgICAgIjAuMDI4NDEzLCAwLjA5OTE0OSwgMC4xNzE2ODMsIDAuMjI0MTg5LCAwLjMwOTMxOSwgMC4zODM5NDksIDAuNDkwOTM2IiwgXAotICAgICAgICAgICIwLjAyODQ0OCwgMC4wOTkxMzEsIDAuMTcxNjUsIDAuMjI0MTgyLCAwLjMwOTMyMiwgMC4zODM5ODksIDAuNDkxMDE4IiwgXAotICAgICAgICAgICIwLjAyODI4NCwgMC4wOTkwMzUsIDAuMTcxNjUsIDAuMjI0MjYxLCAwLjMwOTQwOSwgMC4zODM5NDYsIDAuNDkwMzY5IiwgXAotICAgICAgICAgICIwLjAyODM1NSwgMC4wOTkyMTgsIDAuMTcxNzQsIDAuMjI0MzA4LCAwLjMwOTQxNCwgMC4zODM5MjQsIDAuNDkwMzIiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTc5NzIsIDAuMTM4NzgsIDAuMTc2OTI2LCAwLjIwNDE1NCwgMC4yNDc3MzgsIDAuMjg1ODc3LCAwLjM0MDM3OSIsIFwKLSAgICAgICAgICAiMC4xMDc4NjEsIDAuMTQ4Njc0LCAwLjE4NjgzMywgMC4yMTQwNTksIDAuMjU3NjQzLCAwLjI5NTc3OSwgMC4zNTAyODQiLCBcCi0gICAgICAgICAgIjAuMTE5NjE5LCAwLjE2MDM5NywgMC4xOTg1NTksIDAuMjI1Nzg1LCAwLjI2OTM2NiwgMC4zMDc1MSwgMC4zNjIwMDciLCBcCi0gICAgICAgICAgIjAuMTI5NTk3LCAwLjE3MDM1OCwgMC4yMDg1MjUsIDAuMjM1NzU1LCAwLjI3OTM0LCAwLjMxNzQ3NCwgMC4zNzE5NyIsIFwKLSAgICAgICAgICAiMC4xMzgwMTksIDAuMTc4ODM3LCAwLjIxNjk4MywgMC4yNDQyMTEsIDAuMjg3Nzk5LCAwLjMyNTk0NywgMC4zODA0MjIiLCBcCi0gICAgICAgICAgIjAuMTQ5ODgyLCAwLjE5MDU1MiwgMC4yMjg4MDYsIDAuMjU2MDg4LCAwLjI5OTczNSwgMC4zMzc5MDYsIDAuMzkyNTMyIiwgXAotICAgICAgICAgICIwLjE1ODkzOCwgMC4xOTk3MDQsIDAuMjM3ODczLCAwLjI2NTA5OSwgMC4zMDg2ODIsIDAuMzQ2ODk3LCAwLjQwMTU0MyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyMzEzMywgMC4wOTY5NDYsIDAuMTczNTkzLCAwLjIyODc4LCAwLjMxNjU3OSwgMC4zOTM2MjYsIDAuNTA1MzExIiwgXAotICAgICAgICAgICIwLjAyMzEzLCAwLjA5Njk5OCwgMC4xNzM2LCAwLjIyODcwMiwgMC4zMTY2MiwgMC4zOTM2MzgsIDAuNTA1MjYiLCBcCi0gICAgICAgICAgIjAuMDIzMTY5LCAwLjA5Njk0MywgMC4xNzM1OSwgMC4yMjg3MDQsIDAuMzE2ODY3LCAwLjM5MzYxNywgMC41MDUzMTYiLCBcCi0gICAgICAgICAgIjAuMDIzMTM5LCAwLjA5Njk1NCwgMC4xNzM1OSwgMC4yMjg2ODQsIDAuMzE2NjM3LCAwLjM5MzY4OSwgMC41MDUyMTQiLCBcCi0gICAgICAgICAgIjAuMDIzMTM5LCAwLjA5Njk1MSwgMC4xNzM1NjksIDAuMjI4NzIsIDAuMzE3MDY2LCAwLjM5Mzk1NywgMC41MDQ0OTciLCBcCi0gICAgICAgICAgIjAuMDIzMTQ0LCAwLjA5NzAyMywgMC4xNzM2NTMsIDAuMjI4NzYsIDAuMzE3MTgyLCAwLjM5NDUyOCwgMC41MDU1MDYiLCBcCi0gICAgICAgICAgIjAuMDIzMTA3LCAwLjA5Njk2OSwgMC4xNzM2NjYsIDAuMjI4MzU0LCAwLjMxNzE1NywgMC4zOTQ2NjksIDAuNTA0MjY3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEzMDc4LCAwLjAxMzQwMiwgMC4wMTM0ODgsIDAuMDEzNTEyLCAwLjAxMzU0MiwgMC4wMTM1NiwgMC4wMTM1NzIiLCBcCi0gICAgICAgICAgIjAuMDEzMDQ4LCAwLjAxMzM3MiwgMC4wMTM0NTQsIDAuMDEzNDgyLCAwLjAxMzUwNiwgMC4wMTM1MjEsIDAuMDEzNTMzIiwgXAotICAgICAgICAgICIwLjAxMzAzOCwgMC4wMTMzNjIsIDAuMDEzNDQ0LCAwLjAxMzQ3MiwgMC4wMTM0OTgsIDAuMDEzNTExLCAwLjAxMzUyMyIsIFwKLSAgICAgICAgICAiMC4wMTMwNDEsIDAuMDEzMzY0LCAwLjAxMzQ0NywgMC4wMTM0NzQsIDAuMDEzNSwgMC4wMTM1MTQsIDAuMDEzNTMzIiwgXAotICAgICAgICAgICIwLjAxMzA1LCAwLjAxMzM3MiwgMC4wMTM0NTUsIDAuMDEzNDg1LCAwLjAxMzUwOCwgMC4wMTM1MjMsIDAuMDEzNTM0IiwgXAotICAgICAgICAgICIwLjAxMzA1OCwgMC4wMTMzODcsIDAuMDEzNDcsIDAuMDEzNTAzLCAwLjAxMzUyNCwgMC4wMTM1MzcsIDAuMDEzNTU0IiwgXAotICAgICAgICAgICIwLjAxMzA3NiwgMC4wMTM0MDcsIDAuMDEzNDk3LCAwLjAxMzUyNSwgMC4wMTM1NDgsIDAuMDEzNTY3LCAwLjAxMzU3MyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE2ODU2LCAwLjAxNzMyNiwgMC4wMTc0MjQsIDAuMDE3NDU2LCAwLjAxNzQ4NSwgMC4wMTc0OTksIDAuMDE3NTEzIiwgXAotICAgICAgICAgICIwLjAxNjgyOSwgMC4wMTcyOTksIDAuMDE3Mzk3LCAwLjAxNzQyOSwgMC4wMTc0NTcsIDAuMDE3NDczLCAwLjAxNzQ4NiIsIFwKLSAgICAgICAgICAiMC4wMTY4MzcsIDAuMDE3MzA3LCAwLjAxNzQwNSwgMC4wMTc0MzcsIDAuMDE3NDY2LCAwLjAxNzQ4MSwgMC4wMTc0OTQiLCBcCi0gICAgICAgICAgIjAuMDE2ODUxLCAwLjAxNzMxNCwgMC4wMTc0MTMsIDAuMDE3NDQ1LCAwLjAxNzQ3NCwgMC4wMTc0ODgsIDAuMDE3NTAyIiwgXAotICAgICAgICAgICIwLjAxNjg1MiwgMC4wMTczMiwgMC4wMTc0MTksIDAuMDE3NDUyLCAwLjAxNzQ4MSwgMC4wMTc0OTcsIDAuMDE3NTExIiwgXAotICAgICAgICAgICIwLjAxNjg5OCwgMC4wMTczNzYsIDAuMDE3NDc3LCAwLjAxNzUxLCAwLjAxNzU0LCAwLjAxNzU1NiwgMC4wMTc1NyIsIFwKLSAgICAgICAgICAiMC4wMTY5MjIsIDAuMDE3MzgsIDAuMDE3NDc4LCAwLjAxNzUxMSwgMC4wMTc1NCwgMC4wMTc1NTUsIDAuMDE3NTY5Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTRSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNzEyMjUyOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDcwOTUyMTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA3MTIyNTI7Ci0gICAgY2xvY2tfZ2F0ZV90ZXN0X3BpbiA6IHRydWU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzOTcyLCAwLjAwMzk1NSwgMC4wMDM5NTMsIDAuMDAzOTQzLCAwLjAwMzk1MSwgMC4wMDM5NjcsIDAuMDAzOTgxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA1MjUyLCAwLjAwNTIzOSwgMC4wMDUyMzIsIDAuMDA1MjI5LCAwLjAwNTIyOCwgMC4wMDUyMzEsIDAuMDA1MjQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUUiOwotICAgICAgc2RmX2NvbmQgOiAiRSA9PSAxJ2IwIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMzc1LCAtMC4wMzI1LCAtMC4wMjYyNSwgLTAuMDIsIC0wLjAxMzc1LCAtMC4wMDM3NSwgLTAuMDAxMjUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wNDM3NSwgLTAuMDMxMjUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAxNSwgLTAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDYxMjUsIC0wLjA1NjI1LCAtMC4wNDM3NSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAyNzUsIC0wLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDczNzUsIC0wLjA2ODc1LCAtMC4wNTYyNSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNCwgLTAuMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDg2MjUsIC0wLjA3NSwgLTAuMDY4NzUsIC0wLjA2MjUsIC0wLjA2MjUsIC0wLjA1MjUsIC0wLjA1IiwgXAotICAgICAgICAgICItMC4xMDI1LCAtMC4wOTEyNSwgLTAuMDg1LCAtMC4wNzg3NSwgLTAuMDc4NzUsIC0wLjA2ODc1LCAtMC4wNjYyNSIsIFwKLSAgICAgICAgICAiLTAuMTE3NSwgLTAuMTA2MjUsIC0wLjEsIC0wLjA5Mzc1LCAtMC4wODc1LCAtMC4wODM3NSwgLTAuMDc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDQzNzUsIC0wLjAzMjUsIC0wLjAyLCAtMC4wMTM3NSwgLTAuMDAxMjUsIDAuMDA4NzUsIDAuMDE3NSIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNDM3NSwgLTAuMDMxMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDI1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjA2MTI1LCAtMC4wNSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAxODc1LCAtMC4wMDg3NSwgMCIsIFwKLSAgICAgICAgICAiLTAuMDczNzUsIC0wLjA2MjUsIC0wLjA1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDIxMjUsIC0wLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjA4LCAtMC4wNjg3NSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wMzc1LCAtMC4wMjc1LCAtMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDk2MjUsIC0wLjA4NSwgLTAuMDcyNSwgLTAuMDYsIC0wLjA1Mzc1LCAtMC4wNDM3NSwgLTAuMDM1IiwgXAotICAgICAgICAgICItMC4xMDUsIC0wLjA5Mzc1LCAtMC4wODEyNSwgLTAuMDc1LCAtMC4wNjI1LCAtMC4wNTI1LCAtMC4wNDM3NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUUiOwotICAgICAgc2RmX2NvbmQgOiAiRSA9PSAxJ2IwIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDM3NSwgMC4wMzg3NSwgMC4wMzI1LCAwLjAyNjI1LCAwLjAyLCAwLjAxLCAwLjAwNzUiLCBcCi0gICAgICAgICAgIjAuMDU1LCAwLjA1LCAwLjAzNzUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMjEyNSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4wNjc1LCAwLjA2MjUsIDAuMDUsIDAuMDUsIDAuMDQzNzUsIDAuMDMzNzUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMDgsIDAuMDc1LCAwLjA2MjUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNDYyNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4wOTI1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjg3NSwgMC4wNTg3NSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiMC4xMDg3NSwgMC4wOTc1LCAwLjA5MTI1LCAwLjA4NSwgMC4wODUsIDAuMDc1LCAwLjA3MjUiLCBcCi0gICAgICAgICAgIjAuMTIzNzUsIDAuMTEyNSwgMC4xMDYyNSwgMC4xLCAwLjA5Mzc1LCAwLjA5LCAwLjA4MTI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDUsIDAuMDM4NzUsIDAuMDI2MjUsIDAuMDIsIDAuMDA3NSwgLTAuMDAyNSwgLTAuMDExMjUiLCBcCi0gICAgICAgICAgIjAuMDYxMjUsIDAuMDUsIDAuMDM3NSwgMC4wMjUsIDAuMDE4NzUsIDAuMDA4NzUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDU2MjUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMjUsIDAuMDE1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICIwLjA4LCAwLjA2ODc1LCAwLjA1NjI1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDI3NSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4wODYyNSwgMC4wNzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNDM3NSwgMC4wMzM3NSwgMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMTAyNSwgMC4wOTEyNSwgMC4wNzg3NSwgMC4wNjYyNSwgMC4wNiwgMC4wNSwgMC4wNDEyNSIsIFwKLSAgICAgICAgICAiMC4xMTEyNSwgMC4xLCAwLjA4NzUsIDAuMDgxMjUsIDAuMDY4NzUsIDAuMDU4NzUsIDAuMDUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBUTEFUTlgyICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKFRMQVROWDIpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4zOTM0MzM7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgbGF0Y2ggKFFJTlQsTjApIHsKLSAgICBkYXRhX2luIDogIkQiOwotICAgIGVuYWJsZSA6ICIoIUdOKSI7Ci0gIH0KLSAgcGluKEQpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY2MzQ4NTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2NjIzOTM7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjYzNDg1OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDIxNywgMC4wMDAyMiwgMC4wMDAyMjEsIDAuMDAwMjIxLCAwLjAwMDIyMiwgMC4wMDAyMjIsIDAuMDAwMjIyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjM0LCAwLjAwMDIyOCwgMC4wMDAyMjgsIDAuMDAwMjI4LCAwLjAwMDIyNywgMC4wMDAyMjcsIDAuMDAwMjI3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkdOIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDMxMjUsIC0wLjAyNjI1LCAtMC4wMTM3NSwgLTAuMDA3NSwgLTAuMDA3NSwgMC4wMDI1LCAwLjAwNSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwODc1LCAwIiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAxNSwgLTAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDYxMjUsIC0wLjA1NjI1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAyNzUsIC0wLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDczNzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjAzMzc1LCAtMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDgzNzUsIC0wLjA3ODc1LCAtMC4wNjYyNSwgLTAuMDYsIC0wLjA1Mzc1LCAtMC4wNSwgLTAuMDQxMjUiLCBcCi0gICAgICAgICAgIi0wLjA5MjUsIC0wLjA4NzUsIC0wLjA3NSwgLTAuMDY4NzUsIC0wLjA2MjUsIC0wLjA1ODc1LCAtMC4wNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAxMjUsIC0wLjAwMTI1LCAwLjAxMTI1LCAwLjAxNzUsIDAuMDMsIDAuMDQsIDAuMDQ4NzUiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTI1LCAwLCAwLjAxMjUsIDAuMDE4NzUsIDAuMDM1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDI1LCAtMC4wMDYyNSwgMCwgMC4wMTI1LCAwLjAyMjUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAsIDAuMDE2MjUsIDAuMDI1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDM3NSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAuMDAzNzUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjA2NSwgLTAuMDUzNzUsIC0wLjA0MTI1LCAtMC4wMjg3NSwgLTAuMDE2MjUsIC0wLjAwNjI1LCAwLjAwMjUiLCBcCi0gICAgICAgICAgIi0wLjA3Mzc1LCAtMC4wNjI1LCAtMC4wNSwgLTAuMDM3NSwgLTAuMDI1LCAtMC4wMTUsIC0wLjAwNjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkdOIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1LCAwLjAzODc1LCAwLjAzMjUsIDAuMDI2MjUsIDAuMDI2MjUsIDAuMDIyNSwgMC4wMiIsIFwKLSAgICAgICAgICAiMC4wNTUsIDAuMDUsIDAuMDM3NSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyNzUsIDAuMDI1IiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDU2MjUsIDAuMDUsIDAuMDQzNzUsIDAuMDQzNzUsIDAuMDQsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiMC4wNzM3NSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1LCAwLjA0NjI1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjA4NjI1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA2MjUsIDAuMDUyNSwgMC4wNSIsIFwKLSAgICAgICAgICAiMC4wOTYyNSwgMC4wOTEyNSwgMC4wODUsIDAuMDc4NzUsIDAuMDcyNSwgMC4wNjg3NSwgMC4wNjYyNSIsIFwKLSAgICAgICAgICAiMC4xMTEyNSwgMC4xLCAwLjA5Mzc1LCAwLjA4NzUsIDAuMDgxMjUsIDAuMDc3NSwgMC4wNzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzEyNSwgMC4wMiwgMC4wMDc1LCAtMC4wMDUsIC0wLjAxMTI1LCAtMC4wMjc1LCAtMC4wMzYyNSIsIFwKLSAgICAgICAgICAiMC4wNDI1LCAwLjAzMTI1LCAwLjAxODc1LCAwLjAwNjI1LCAtMC4wMDYyNSwgLTAuMDE2MjUsIC0wLjAyNSIsIFwKLSAgICAgICAgICAiMC4wNDg3NSwgMC4wMzc1LCAwLjAyNSwgMC4wMTI1LCAwLjAwNjI1LCAtMC4wMSwgLTAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMDYxMjUsIDAuMDUsIDAuMDM3NSwgMC4wMjUsIDAuMDEyNSwgMC4wMDI1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiMC4wNjc1LCAwLjA1NjI1LCAwLjA0Mzc1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMDg3NSwgMCIsIFwKLSAgICAgICAgICAiMC4wNzc1LCAwLjA2NjI1LCAwLjA1Mzc1LCAwLjA0MTI1LCAwLjAzNSwgMC4wMTg3NSwgMC4wMSIsIFwKLSAgICAgICAgICAiMC4wODYyNSwgMC4wNzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNDM3NSwgMC4wMjc1LCAwLjAxODc1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihHTikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNTg4ODY5OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDU4ODgzMjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA1ODg4Njk7Ci0gICAgY2xvY2sgOiB0cnVlOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTc5MiwgMC4wMDE3NjYsIDAuMDAxNzUyLCAwLjAwMTc1OCwgMC4wMDE3NzEsIDAuMDAxNzk2LCAwLjAwMTgxNyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzI3NiwgMC4wMDMyNTIsIDAuMDAzMjQ1LCAwLjAwMzI1MiwgMC4wMDMyNiwgMC4wMDMyODYsIDAuMDAzMzEyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkdOIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRCI7Ci0gICAgICBzZGZfY29uZCA6ICJEID09IDEnYjAiOwotICAgICAgZmFsbF9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMTUyNDQsIDAuMTYyMjQxLCAwLjE3NDMzNiwgMC4xODQ3MjYsIDAuMTkzNzQsIDAuMjA1OTY5LCAwLjIxNTI0MSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjUyNzY5ODsKLSAgICBmdW5jdGlvbiA6ICJRSU5UIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJEIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTYxMDgsIDAuMjE4MTI5LCAwLjI5OTYwMSwgMC40MDE2MTMsIDAuNTAzNjcxLCAwLjYwNTY1MiwgMC43MDc2MTYiLCBcCi0gICAgICAgICAgIjAuMTI0NzY1LCAwLjIyNjc4NSwgMC4zMDgyNTcsIDAuNDEwMjQsIDAuNTEyMzMzLCAwLjYxNDMwMiwgMC43MTYyMTMiLCBcCi0gICAgICAgICAgIjAuMTM1Mzk0LCAwLjIzNzMyMSwgMC4zMTg5MDEsIDAuNDIwODksIDAuNTIyODAzLCAwLjYyNDg5MiwgMC43MjY5MjciLCBcCi0gICAgICAgICAgIjAuMTQ1NTU5LCAwLjI0NzU3OCwgMC4zMjkwNTMsIDAuNDMwOTM0LCAwLjUzMzEyNywgMC42MzQ4MzUsIDAuNzM2OTA4IiwgXAotICAgICAgICAgICIwLjE1NTE2OCwgMC4yNTcxLCAwLjMzODcyNiwgMC40NDA2MywgMC41NDI2NjQsIDAuNjQ0NzIxLCAwLjc0Njc1NSIsIFwKLSAgICAgICAgICAiMC4xNjg0NTksIDAuMjcwNDE0LCAwLjM1MTk4MSwgMC40NTM5NDQsIDAuNTU1OTc3LCAwLjY1ODAzNCwgMC43NjAwOTMiLCBcCi0gICAgICAgICAgIjAuMTc5MzEyLCAwLjI4MTQzLCAwLjM2MjgyNCwgMC40NjQ3OTksIDAuNTY2OCwgMC42Njg4NzksIDAuNzcwODM1Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0ODEwNiwgMC4yNTc1LCAwLjQyNDM0MSwgMC42MzU4MjIsIDAuODQ0MTUxLCAxLjA1NTg2LCAxLjI2NTkzIiwgXAotICAgICAgICAgICIwLjA0ODEwNiwgMC4yNTc1MzYsIDAuNDI0MzQsIDAuNjM1NDkxLCAwLjg0NDEwMiwgMS4wNTU4NSwgMS4yNjMxNyIsIFwKLSAgICAgICAgICAiMC4wNDgxMDcsIDAuMjU2NzgyLCAwLjQyNDk5OCwgMC42MzU4MDYsIDAuODQ1MzQyLCAxLjA1NTg5LCAxLjI2NTg3IiwgXAotICAgICAgICAgICIwLjA0ODI1MiwgMC4yNTc1NTksIDAuNDI0NDAxLCAwLjYzNTQwMiwgMC44NDQxNjcsIDEuMDU0MTEsIDEuMjYxNjQiLCBcCi0gICAgICAgICAgIjAuMDQ4MTA0LCAwLjI1NzE3MSwgMC40MjU1OTgsIDAuNjM1Nzg1LCAwLjg0NTk2MiwgMS4wNTU3OSwgMS4yNjU5MyIsIFwKLSAgICAgICAgICAiMC4wNDgwODQsIDAuMjU2ODA1LCAwLjQyNDM1OCwgMC42MzU1LCAwLjg0Mzk2OSwgMS4wNTU2OCwgMS4yNjU4NyIsIFwKLSAgICAgICAgICAiMC4wNDgxMjUsIDAuMjU3NTkxLCAwLjQyNDg0MywgMC42MzU3NTUsIDAuODQ0MDQsIDEuMDU1ODEsIDEuMjY1NTQiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTE3NjM3LCAwLjIyMTc4NywgMC4zMDQ2NywgMC40MDkxMzgsIDAuNTEzMDg2LCAwLjYxNzAxNiwgMC43MTk4NzciLCBcCi0gICAgICAgICAgIjAuMTI2MDU5LCAwLjIyOTc5OSwgMC4zMTMwOCwgMC40MTcxNDksIDAuNTIwNTY1LCAwLjYyNTM4OCwgMC43MjkzNDIiLCBcCi0gICAgICAgICAgIjAuMTM1NzY2LCAwLjIzOTg2MywgMC4zMjMyMDMsIDAuNDI3MTk5LCAwLjUzMDYxNiwgMC42MzUxMzksIDAuNzM5MDU5IiwgXAotICAgICAgICAgICIwLjE0NDk0MiwgMC4yNDkwODYsIDAuMzMxOTQzLCAwLjQzNjExNCwgMC41Mzk0NzgsIDAuNjQ0Mjk4LCAwLjc0NzEzIiwgXAotICAgICAgICAgICIwLjE1MzQzOSwgMC4yNTc1NSwgMC4zNDA3OTYsIDAuNDQ0ODUzLCAwLjU0ODE4NiwgMC42NTE3ODksIDAuNzU1ODk0IiwgXAotICAgICAgICAgICIwLjE2NTIwOCwgMC4yNjkzODgsIDAuMzUyMjI1LCAwLjQ1NjM5NywgMC41NTk3NDksIDAuNjY0NTEsIDAuNzY4NDUxIiwgXAotICAgICAgICAgICIwLjE3NDM0MywgMC4yNzgxNTUsIDAuMzYxODM5LCAwLjQ2NTc5LCAwLjU2OTEwNiwgMC42NzM2MzYsIDAuNzc3NTkxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0ODA5NiwgMC4yNTc4MjYsIDAuNDI1NjQ4LCAwLjYzNjc4NCwgMC44NDczMDEsIDEuMDU3NiwgMS4yNjU1IiwgXAotICAgICAgICAgICIwLjA0ODI5NiwgMC4yNTc1OTksIDAuNDI1NjIxLCAwLjYzNjYwNywgMC44NDU0NCwgMS4wNTc1NSwgMS4yNjgwOCIsIFwKLSAgICAgICAgICAiMC4wNDgwNzMsIDAuMjU3ODMyLCAwLjQyNjE5MSwgMC42MzY2ODUsIDAuODQ1OTk1LCAxLjA1NzczLCAxLjI2NzkxIiwgXAotICAgICAgICAgICIwLjA0ODA5NywgMC4yNTc4MjgsIDAuNDI1NjQzLCAwLjYzNjU2NiwgMC44NDUzOTQsIDEuMDU3NjUsIDEuMjY1NTIiLCBcCi0gICAgICAgICAgIjAuMDQ4MTA1LCAwLjI1NzgyOCwgMC40MjYxNjgsIDAuNjM2NjU1LCAwLjg0NDMwNywgMS4wNTU5MSwgMS4yNjM3NSIsIFwKLSAgICAgICAgICAiMC4wNDgyOTUsIDAuMjU3Nzk5LCAwLjQyNTYxNCwgMC42MzY1MzMsIDAuODQ1NDMsIDEuMDU3NCwgMS4yNjc5NCIsIFwKLSAgICAgICAgICAiMC4wNDgxODQsIDAuMjU3NDczLCAwLjQyNjEyLCAwLjYzNjU1NCwgMC44NDU5NTgsIDEuMDU3NTcsIDEuMjY3OTQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiR04iOwotICAgICAgdGltaW5nX3NlbnNlIDogbm9uX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiBmYWxsaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEzNzg5NCwgMC4yMzk4MDYsIDAuMzIxMzkxLCAwLjQyMzQxNywgMC41MjUzNjIsIDAuNjI3MzgxLCAwLjcyOTQxMSIsIFwKLSAgICAgICAgICAiMC4xNDc2NjYsIDAuMjQ5NTk3LCAwLjMzMTE1MywgMC40MzMxNTUsIDAuNTM1MTcxLCAwLjYzNzIwNSwgMC43MzkyMDQiLCBcCi0gICAgICAgICAgIjAuMTU5NjM3LCAwLjI2MTU1LCAwLjM0MzEzMywgMC40NDUxMTksIDAuNTQ3MTE3LCAwLjY0OTEwMiwgMC43NTExNTgiLCBcCi0gICAgICAgICAgIjAuMTcwMjk4LCAwLjI3MjIyNiwgMC4zNTM4MDcsIDAuNDU1Nzk0LCAwLjU1NzkwMSwgMC42NTk4MzYsIDAuNzYxODU0IiwgXAotICAgICAgICAgICIwLjE3OTUwNSwgMC4yODE0MzgsIDAuMzYyOTk3LCAwLjQ2NDk5OCwgMC41NjY5NzMsIDAuNjY5MDQ5LCAwLjc3MTEzNyIsIFwKLSAgICAgICAgICAiMC4xOTIwOTYsIDAuMjk0MDAyLCAwLjM3NTU5NywgMC40Nzc1ODQsIDAuNTc5NjEyLCAwLjY4MTU4LCAwLjc4MzYiLCBcCi0gICAgICAgICAgIjAuMjAxOTIxLCAwLjMwMzgyMiwgMC4zODU1MzEsIDAuNDg3Mzk0LCAwLjU4OTQzMiwgMC42OTE0NTMsIDAuNzkzNDQ2Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0ODEzNSwgMC4yNTcyLCAwLjQyNTA1NCwgMC42MzU4MzUsIDAuODQ0NjQsIDEuMDU1ODEsIDEuMjY1ODYiLCBcCi0gICAgICAgICAgIjAuMDQ4MjUyLCAwLjI1NzI2MSwgMC40MjQ3MDEsIDAuNjM1NTQsIDAuODQ0MTcxLCAxLjA1NTg3LCAxLjI2NTg4IiwgXAotICAgICAgICAgICIwLjA0ODIzMiwgMC4yNTcxOTcsIDAuNDI1MDYzLCAwLjYzNTUxOSwgMC44NDQ1ODYsIDEuMDU1MzIsIDEuMjY1ODUiLCBcCi0gICAgICAgICAgIjAuMDQ4MDcyLCAwLjI1NzIwNSwgMC40MjUwNDYsIDAuNjM1NTMyLCAwLjg0NDExNCwgMS4wNTU4NSwgMS4yNjU4NyIsIFwKLSAgICAgICAgICAiMC4wNDgyNjUsIDAuMjU3MjY3LCAwLjQyNDcwNSwgMC42MzU1MzYsIDAuODQ0NTk3LCAxLjA1NTg3LCAxLjI2NjAyIiwgXAotICAgICAgICAgICIwLjA0ODI2MiwgMC4yNTcyMTYsIDAuNDI1MDU5LCAwLjYzNTU0NCwgMC44NDU5MDMsIDEuMDU0MzMsIDEuMjY1ODUiLCBcCi0gICAgICAgICAgIjAuMDQ4MjYxLCAwLjI1NzIzMiwgMC40MjU2OTgsIDAuNjM1NTA1LCAwLjg0NTkxMSwgMS4wNTU4NiwgMS4yNjU4NSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNTI0NCwgMC4yNTY1NDIsIDAuMzM5NDU2LCAwLjQ0MzE1NCwgMC41NDc4ODMsIDAuNjUxNzk1LCAwLjc1NTEzNiIsIFwKLSAgICAgICAgICAiMC4xNjIyNDEsIDAuMjY2MzcsIDAuMzQ5MjMyLCAwLjQ1MzcyMiwgMC41NTc2ODgsIDAuNjYxNjEyLCAwLjc2NTU1IiwgXAotICAgICAgICAgICIwLjE3NDMzNiwgMC4yNzg0NTIsIDAuMzYxMzczLCAwLjQ2NTAyOSwgMC41Njk3NzgsIDAuNjczNjk4LCAwLjc3NjU2MSIsIFwKLSAgICAgICAgICAiMC4xODQ3MjYsIDAuMjg4Njc2LCAwLjM3MjE1NSwgMC40NzYxNjQsIDAuNTc5MjY3LCAwLjY4MzQyNSwgMC43ODgwNjUiLCBcCi0gICAgICAgICAgIjAuMTkzNzQsIDAuMjk3ODU5LCAwLjM4MDgxNiwgMC40ODQ0NzYsIDAuNTg5MTkzLCAwLjY5MzEsIDAuNzk2MDMzIiwgXAotICAgICAgICAgICIwLjIwNTk2OSwgMC4zMTAxODksIDAuMzkzMDg2LCAwLjQ5NjY3OSwgMC42MDE0OTgsIDAuNzA1MzE1LCAwLjgwODM2MSIsIFwKLSAgICAgICAgICAiMC4yMTUyNDEsIDAuMzE5MTU5LCAwLjQwMjcwMSwgMC41MDY0MDcsIDAuNjA5ODA5LCAwLjcxNDU4MiwgMC44MTg1NjkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQ4MjMzLCAwLjI1Nzg0LCAwLjQyNTY1MSwgMC42MzU3NzQsIDAuODQ3MzAyLCAxLjA1NzYxLCAxLjI2NjI5IiwgXAotICAgICAgICAgICIwLjA0ODIzMywgMC4yNTc4MzMsIDAuNDI1NjgxLCAwLjYzNjc1MiwgMC44NDcyODUsIDEuMDU3NTcsIDEuMjY4MDkiLCBcCi0gICAgICAgICAgIjAuMDQ4MjI3LCAwLjI1NzgzNSwgMC40MjU2MzIsIDAuNjM1NDEyLCAwLjg0NzI3OCwgMS4wNTc1OSwgMS4yNjU1NCIsIFwKLSAgICAgICAgICAiMC4wNDgyMDMsIDAuMjU3NTYyLCAwLjQyNjE4MiwgMC42MzY2MjMsIDAuODQ1NDU1LCAxLjA1NjIyLCAxLjI2Nzg1IiwgXAotICAgICAgICAgICIwLjA0ODIxNSwgMC4yNTc4MzEsIDAuNDI1MzgxLCAwLjYzNTk0NywgMC44NDczMDksIDEuMDU3NCwgMS4yNjU5NyIsIFwKLSAgICAgICAgICAiMC4wNDgyNCwgMC4yNTc4MzIsIDAuNDI1NjQ2LCAwLjYzNTgwMSwgMC44NDcyNTgsIDEuMDU3NiwgMS4yNjY2IiwgXAotICAgICAgICAgICIwLjA0ODIxOCwgMC4yNTc1NywgMC40MjYxOCwgMC42MzY1ODksIDAuODQ1NTA2LCAxLjA1NzQ3LCAxLjI2Nzg0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0Mjk4LCAwLjAwNDM1NywgMC4wMDQzNjQsIDAuMDA0MzY3LCAwLjAwNDM2OSwgMC4wMDQzNywgMC4wMDQzNzEiLCBcCi0gICAgICAgICAgIjAuMDA0Mjg3LCAwLjAwNDM0NiwgMC4wMDQzNTMsIDAuMDA0MzU3LCAwLjAwNDM1OCwgMC4wMDQzNTksIDAuMDA0MzYiLCBcCi0gICAgICAgICAgIjAuMDA0MjgxLCAwLjAwNDM0LCAwLjAwNDM0NywgMC4wMDQzNSwgMC4wMDQzNTIsIDAuMDA0MzUzLCAwLjAwNDM1NCIsIFwKLSAgICAgICAgICAiMC4wMDQyNzUsIDAuMDA0MzM0LCAwLjAwNDM0MiwgMC4wMDQzNDUsIDAuMDA0MzQ3LCAwLjAwNDM0NCwgMC4wMDQzNDkiLCBcCi0gICAgICAgICAgIjAuMDA0MjcxLCAwLjAwNDMzMiwgMC4wMDQzMzksIDAuMDA0MzQyLCAwLjAwNDM0NCwgMC4wMDQzNDUsIDAuMDA0MzQ1IiwgXAotICAgICAgICAgICIwLjAwNDI3OCwgMC4wMDQzNDEsIDAuMDA0MzQ5LCAwLjAwNDM1NCwgMC4wMDQzNTQsIDAuMDA0MzU2LCAwLjAwNDM1NyIsIFwKLSAgICAgICAgICAiMC4wMDQyNzgsIDAuMDA0MzM4LCAwLjAwNDM0NywgMC4wMDQzNTEsIDAuMDA0MzUyLCAwLjAwNDM1NCwgMC4wMDQzNTUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQ1NjIsIDAuMDA0NjIxLCAwLjAwNDYyOCwgMC4wMDQ2MzEsIDAuMDA0NjMzLCAwLjAwNDYzNCwgMC4wMDQ2MzUiLCBcCi0gICAgICAgICAgIjAuMDA0NTU1LCAwLjAwNDYxNiwgMC4wMDQ2MjEsIDAuMDA0NjI1LCAwLjAwNDYyNywgMC4wMDQ2MjYsIDAuMDA0NjI5IiwgXAotICAgICAgICAgICIwLjAwNDU1LCAwLjAwNDYxLCAwLjAwNDYxOCwgMC4wMDQ2MjEsIDAuMDA0NjIyLCAwLjAwNDYyMywgMC4wMDQ2MjQiLCBcCi0gICAgICAgICAgIjAuMDA0NTQ2LCAwLjAwNDYwNiwgMC4wMDQ2MTMsIDAuMDA0NjE1LCAwLjAwNDYxOSwgMC4wMDQ2MTgsIDAuMDA0NjIxIiwgXAotICAgICAgICAgICIwLjAwNDU0MywgMC4wMDQ2MDQsIDAuMDA0NjEsIDAuMDA0NjE0LCAwLjAwNDYxNiwgMC4wMDQ2MTcsIDAuMDA0NjE4IiwgXAotICAgICAgICAgICIwLjAwNDU0NSwgMC4wMDQ2MDcsIDAuMDA0NjE0LCAwLjAwNDYxOCwgMC4wMDQ2MiwgMC4wMDQ2MjEsIDAuMDA0NjIyIiwgXAotICAgICAgICAgICIwLjAwNDU0NiwgMC4wMDQ2MDYsIDAuMDA0NjExLCAwLjAwNDYxNiwgMC4wMDQ2MTgsIDAuMDA0NjE5LCAwLjAwNDYyMSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkdOIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDU4ODgsIDAuMDA1OTI4LCAwLjAwNTkyNywgMC4wMDU5MjUsIDAuMDA1OTI0LCAwLjAwNTkyMywgMC4wMDU5MjMiLCBcCi0gICAgICAgICAgIjAuMDA1ODc0LCAwLjAwNTkxNCwgMC4wMDU5MTMsIDAuMDA1OTExLCAwLjAwNTkxLCAwLjAwNTkxLCAwLjAwNTkwOCIsIFwKLSAgICAgICAgICAiMC4wMDU4NjksIDAuMDA1OTEsIDAuMDA1OTEsIDAuMDA1OTA4LCAwLjAwNTkwNiwgMC4wMDU5MDYsIDAuMDA1OTA1IiwgXAotICAgICAgICAgICIwLjAwNTg3LCAwLjAwNTkxLCAwLjAwNTkxLCAwLjAwNTkwOCwgMC4wMDU5MDcsIDAuMDA1OTA2LCAwLjAwNTkwNSIsIFwKLSAgICAgICAgICAiMC4wMDU4NjcsIDAuMDA1OTA4LCAwLjAwNTkwOCwgMC4wMDU5MDUsIDAuMDA1OTA0LCAwLjAwNTkwMywgMC4wMDU5MDQiLCBcCi0gICAgICAgICAgIjAuMDA1ODc3LCAwLjAwNTkyLCAwLjAwNTkxOSwgMC4wMDU5MTcsIDAuMDA1OTE2LCAwLjAwNTkxNSwgMC4wMDU5MTQiLCBcCi0gICAgICAgICAgIjAuMDA1ODk1LCAwLjAwNTk0LCAwLjAwNTkzOSwgMC4wMDU5MzgsIDAuMDA1OTM2LCAwLjAwNTkzNSwgMC4wMDU5MzQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDU5NzIsIDAuMDA2MDMzLCAwLjAwNjAzOSwgMC4wMDYwNDEsIDAuMDA2MDQ1LCAwLjAwNjA0NiwgMC4wMDYwNDUiLCBcCi0gICAgICAgICAgIjAuMDA1OTYsIDAuMDA2MDE5LCAwLjAwNjAyNSwgMC4wMDYwMjksIDAuMDA2MDMxLCAwLjAwNjAzMiwgMC4wMDYwMzMiLCBcCi0gICAgICAgICAgIjAuMDA1OTU5LCAwLjAwNjAxOCwgMC4wMDYwMjYsIDAuMDA2MDI5LCAwLjAwNjAzLCAwLjAwNjAzMiwgMC4wMDYwMzMiLCBcCi0gICAgICAgICAgIjAuMDA1OTYxLCAwLjAwNjAyLCAwLjAwNjAyNiwgMC4wMDYwMywgMC4wMDYwMzIsIDAuMDA2MDMzLCAwLjAwNjAzNCIsIFwKLSAgICAgICAgICAiMC4wMDU5NjQsIDAuMDA2MDI2LCAwLjAwNjAzMSwgMC4wMDYwMzQsIDAuMDA2MDM1LCAwLjAwNjAzNiwgMC4wMDYwMzgiLCBcCi0gICAgICAgICAgIjAuMDA1OTY2LCAwLjAwNjAyNCwgMC4wMDYwMzEsIDAuMDA2MDM1LCAwLjAwNjAzNiwgMC4wMDYwMzcsIDAuMDA2MDM5IiwgXAotICAgICAgICAgICIwLjAwNTk3NCwgMC4wMDYwMzQsIDAuMDA2MDQxLCAwLjAwNjA0MiwgMC4wMDYwNDUsIDAuMDA2MDQ1LCAwLjAwNjA0NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUU4pICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC41Mjk5NzU7Ci0gICAgZnVuY3Rpb24gOiAiTjAiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkQiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExMDIzOCwgMC4yMTMwMTEsIDAuMjk0Mzk1LCAwLjM5NjEyMywgMC40OTc4MzksIDAuNTk5NDg4LCAwLjcwMTI4MyIsIFwKLSAgICAgICAgICAiMC4xMTg2OCwgMC4yMjE0NSwgMC4zMDI4MjQsIDAuNDA0NTQxLCAwLjUwNjI5NSwgMC42MDc5MDQsIDAuNzA5NjE2IiwgXAotICAgICAgICAgICIwLjEyODM4OSwgMC4yMzExNTEsIDAuMzEyNTI4LCAwLjQxNDIzNSwgMC41MTU5MywgMC42MTc2NTEsIDAuNzE5Mjc2IiwgXAotICAgICAgICAgICIwLjEzNzU1NCwgMC4yNDAzMzQsIDAuMzIxNzE3LCAwLjQyMzQxNiwgMC41MjUyLCAwLjYyNjgyNCwgMC43Mjg1NzUiLCBcCi0gICAgICAgICAgIjAuMTQ2MDU3LCAwLjI0ODgzNywgMC4zMzAyLCAwLjQzMTkxMywgMC41MzM2MSwgMC42MzU0MTEsIDAuNzM2OTY1IiwgXAotICAgICAgICAgICIwLjE1Nzk1LCAwLjI2MDczMiwgMC4zNDIxMTgsIDAuNDQzODExLCAwLjU0NTU4MiwgMC42NDcxOTgsIDAuNzQ4OTE5IiwgXAotICAgICAgICAgICIwLjE2NzA3MiwgMC4yNjk4NjcsIDAuMzUxMjM1LCAwLjQ1MjkzOSwgMC41NTQ2MjgsIDAuNjU2MzY5LCAwLjc1ODA0NiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTQ4MTgsIDAuMjU4ODIxLCAwLjQyNTc4NCwgMC42MzYyNiwgMC44NDYyNSwgMS4wNTYxNiwgMS4yNjM2MyIsIFwKLSAgICAgICAgICAiMC4wNTQ4NTQsIDAuMjU4NDk4LCAwLjQyNTc0MiwgMC42MzU4NTQsIDAuODQ0NDg0LCAxLjA1NjEzLCAxLjI2NjE3IiwgXAotICAgICAgICAgICIwLjA1NDg1NSwgMC4yNTg4MjIsIDAuNDI2Mjk0LCAwLjYzNjE5NSwgMC44NDUwMTQsIDEuMDU2MjQsIDEuMjY2MDgiLCBcCi0gICAgICAgICAgIjAuMDU0ODYyLCAwLjI1ODg0MiwgMC40MjU3ODMsIDAuNjM1ODQ5LCAwLjg0NDQyNiwgMS4wNTYxNywgMS4yNjM2NyIsIFwKLSAgICAgICAgICAiMC4wNTQ4NjIsIDAuMjU4ODM4LCAwLjQyNjIwNCwgMC42MzYxNzcsIDAuODQzNjY2LCAxLjA1NDI1LCAxLjI2Mjc4IiwgXAotICAgICAgICAgICIwLjA1NDk2NCwgMC4yNTg4NCwgMC40MjU3NTIsIDAuNjM1ODM1LCAwLjg0NDQ3NywgMS4wNTU5MSwgMS4yNjU5MyIsIFwKLSAgICAgICAgICAiMC4wNTUxMDUsIDAuMjU4NTIyLCAwLjQyNjI0MSwgMC42MzYwMjcsIDAuODQ0OTM0LCAxLjA1NTk3LCAxLjI2NTkxIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExMDA5NSwgMC4yMTQ3ODcsIDAuMjk3NjA2LCAwLjQwMTA5MywgMC41MDQ2MTYsIDAuNjA4MDMzLCAwLjcxMTQzNSIsIFwKLSAgICAgICAgICAiMC4xMTg3NTQsIDAuMjIzNDQ2LCAwLjMwNjI2NSwgMC40MDk3NTIsIDAuNTEzMjc4LCAwLjYxNjY4NywgMC43MjAxMTUiLCBcCi0gICAgICAgICAgIjAuMTI5Mzg1LCAwLjIzNDA4MiwgMC4zMTY4ODYsIDAuNDIwMzc1LCAwLjUyMzc5MSwgMC42MjcyODcsIDAuNzMwNzQ5IiwgXAotICAgICAgICAgICIwLjEzOTU2NCwgMC4yNDQyNjEsIDAuMzI3MDgyLCAwLjQzMDQ3NSwgMC41MzQwOSwgMC42MzczMTUsIDAuNzQwODM4IiwgXAotICAgICAgICAgICIwLjE0OTE1OSwgMC4yNTM4NjYsIDAuMzM2NjU4LCAwLjQ0MDE1NywgMC41NDM2NTMsIDAuNjQ3MTMsIDAuNzUwNTg2IiwgXAotICAgICAgICAgICIwLjE2MjY4OSwgMC4yNjc0MDMsIDAuMzUwMjI0LCAwLjQ1MzY5OCwgMC41NTcxOTUsIDAuNjYwNjQ0LCAwLjc2NDExOCIsIFwKLSAgICAgICAgICAiMC4xNzMzNDUsIDAuMjc4MDgsIDAuMzYwOTA0LCAwLjQ2NDM1NiwgMC41Njc4NSwgMC42NzEzMTksIDAuNzc0NzI2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1NDU3NiwgMC4yNTg2MDcsIDAuNDI0NTQsIDAuNjM1Njg2LCAwLjg0Mzc2NSwgMS4wNTUzMSwgMS4yNjUwNCIsIFwKLSAgICAgICAgICAiMC4wNTQ1NzQsIDAuMjU4NjYxLCAwLjQyNDUzOCwgMC42MzUzMjksIDAuODQzNzMzLCAxLjA1NTI4LCAxLjI2MjU4IiwgXAotICAgICAgICAgICIwLjA1NDU5NiwgMC4yNTc4OSwgMC40MjUzODIsIDAuNjM1NjczLCAwLjg0NDk0OCwgMS4wNTUyNywgMS4yNjUwOCIsIFwKLSAgICAgICAgICAiMC4wNTQ2MzksIDAuMjU4NywgMC40MjQ0NjQsIDAuNjM1MjY5LCAwLjg0MzgxMSwgMS4wNTM3MSwgMS4yNjA0OCIsIFwKLSAgICAgICAgICAiMC4wNTQ1NzUsIDAuMjU4Mzg3LCAwLjQyNTg0OSwgMC42MzU2NDEsIDAuODQ1NjA3LCAxLjA1NTIxLCAxLjI2NTI3IiwgXAotICAgICAgICAgICIwLjA1NDU4NCwgMC4yNTc5MTUsIDAuNDI0NTY0LCAwLjYzNTM5MywgMC44NDM2MzEsIDEuMDU1MDcsIDEuMjY1MjIiLCBcCi0gICAgICAgICAgIjAuMDU0NzU2LCAwLjI1ODgsIDAuNDI1MjMxLCAwLjYzNTYxMiwgMC44NDM4NzUsIDEuMDU1MzUsIDEuMjY0NzMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiR04iOwotICAgICAgdGltaW5nX3NlbnNlIDogbm9uX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiBmYWxsaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE0NTA3MSwgMC4yNDc4NDIsIDAuMzI5MjMsIDAuNDMxMDE4LCAwLjUzMjY3MywgMC42MzQzMjEsIDAuNzM1OTcyIiwgXAotICAgICAgICAgICIwLjE1NDg4MywgMC4yNTc2NTMsIDAuMzM5MDQ3LCAwLjQ0MDc1NSwgMC41NDI0NzgsIDAuNjQ0MTIzLCAwLjc0NTgyNCIsIFwKLSAgICAgICAgICAiMC4xNjY5NzcsIDAuMjY5NzQ2LCAwLjM1MTEzMiwgMC40NTI4ODUsIDAuNTU0NTc3LCAwLjY1NjIyMywgMC43NTgwMjEiLCBcCi0gICAgICAgICAgIjAuMTc3MzU3LCAwLjI4MDEyNywgMC4zNjE0OTcsIDAuNDYzMTg3LCAwLjU2NDk5MiwgMC42NjY1OTUsIDAuNzY4MjQyIiwgXAotICAgICAgICAgICIwLjE4NjM4MSwgMC4yODkxNTMsIDAuMzcwNTMzLCAwLjQ3MjEzOSwgMC41NzM5ODksIDAuNjc1NTMsIDAuNzc3MzU0IiwgXAotICAgICAgICAgICIwLjE5ODYwOSwgMC4zMDE0OTYsIDAuMzgyODg0LCAwLjQ4NDU1NSwgMC41ODYzMjQsIDAuNjg3ODYyLCAwLjc4OTU1MSIsIFwKLSAgICAgICAgICAiMC4yMDc4OTcsIDAuMzEwNjY1LCAwLjM5MjA0LCAwLjQ5Mzc2MSwgMC41OTU1NywgMC42OTcxMDgsIDAuNzk4Nzc5Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1NDkxNCwgMC4yNTg4MTYsIDAuNDI1Nzg5LCAwLjYzNDc1NCwgMC44NDYyNzEsIDEuMDU2MTQsIDEuMjY0MzYiLCBcCi0gICAgICAgICAgIjAuMDU0OTE3LCAwLjI1ODgyMSwgMC40MjU3MTQsIDAuNjM2MjM2LCAwLjg0NjI1NSwgMS4wNTYxMywgMS4yNjYxNSIsIFwKLSAgICAgICAgICAiMC4wNTQ5MDcsIDAuMjU4ODE1LCAwLjQyNTc2NiwgMC42MzQ4OTcsIDAuODQ2MjQ3LCAxLjA1NjE1LCAxLjI2MzY4IiwgXAotICAgICAgICAgICIwLjA1NDkwMSwgMC4yNTg1NzYsIDAuNDI2MjQyLCAwLjYzNjE0NCwgMC44NDQ0ODMsIDEuMDU0ODYsIDEuMjY2MDkiLCBcCi0gICAgICAgICAgIjAuMDU0OTA0LCAwLjI1ODgwNywgMC40MjUzMzYsIDAuNjM1MTYyLCAwLjg0NjI2NywgMS4wNTYwOCwgMS4yNjQwNiIsIFwKLSAgICAgICAgICAiMC4wNTQ5MTIsIDAuMjU4ODE4LCAwLjQyNTc4OCwgMC42MzQ3NzQsIDAuODQ2MjI2LCAxLjA1NjE0LCAxLjI2NDQxIiwgXAotICAgICAgICAgICIwLjA1NDk1MSwgMC4yNTg2MDMsIDAuNDI2Mjg4LCAwLjYzNTg2LCAwLjg0NDU0MiwgMS4wNTYwNywgMS4yNjYwNiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMzE4NzEsIDAuMjM2NDcyLCAwLjMxOTI0NSwgMC40MjI3MDcsIDAuNTI2MTU5LCAwLjYyOTU4MywgMC43MzMwMzEiLCBcCi0gICAgICAgICAgIjAuMTQxNjI1LCAwLjI0NjIyNCwgMC4zMjkwMjIsIDAuNDMyNDU5LCAwLjUzNTk0NCwgMC42MzkzNzMsIDAuNzQyNzk5IiwgXAotICAgICAgICAgICIwLjE1MzYxNSwgMC4yNTgyMiwgMC4zNDA5OTMsIDAuNDQ0NDQ2LCAwLjU0NzkxNywgMC42NTEzMzMsIDAuNzU0NzgiLCBcCi0gICAgICAgICAgIjAuMTY0Mjc4LCAwLjI2ODg4NiwgMC4zNTE2NTksIDAuNDU1MTE4LCAwLjU1ODY1NywgMC42NjIwMjMsIDAuNzY1NDYyIiwgXAotICAgICAgICAgICIwLjE3MzQ3MSwgMC4yNzgwODEsIDAuMzYwODgsIDAuNDY0MzE1LCAwLjU2Nzc2NCwgMC42NzEyMjksIDAuNzc0NzE0IiwgXAotICAgICAgICAgICIwLjE4NjA2NiwgMC4yOTA2OCwgMC4zNzM0NDUsIDAuNDc2OTEsIDAuNTgwMzg1LCAwLjY4MzgyNCwgMC43ODcyMjYiLCBcCi0gICAgICAgICAgIjAuMTk2MDEyLCAwLjMwMDYzNywgMC4zODM0MDIsIDAuNDg2ODY3LCAwLjU5MDMzOSwgMC42OTM3NzcsIDAuNzk3MTk5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1NDYwNSwgMC4yNTg0MzMsIDAuNDI1Mzc2LCAwLjYzNTcsIDAuODQ0Mzc2LCAxLjA1NTE5LCAxLjI2NTAzIiwgXAotICAgICAgICAgICIwLjA1NDYyMiwgMC4yNTg0NDksIDAuNDI1MDg4LCAwLjYzNTQwOSwgMC44NDM5NTYsIDEuMDU1MzUsIDEuMjY1MTEiLCBcCi0gICAgICAgICAgIjAuMDU0NjQsIDAuMjU4NDMzLCAwLjQyNTM4LCAwLjYzNTM3MiwgMC44NDQyODMsIDEuMDU0NzgsIDEuMjY1MDMiLCBcCi0gICAgICAgICAgIjAuMDU0NjA0LCAwLjI1ODQxNSwgMC40MjUzNzQsIDAuNjM1MzkxLCAwLjg0MzgzNSwgMS4wNTUzMSwgMS4yNjUxMiIsIFwKLSAgICAgICAgICAiMC4wNTQ2NDYsIDAuMjU4NDU0LCAwLjQyNTA5MSwgMC42MzU0MTIsIDAuODQ0MzUsIDEuMDU1MzQsIDEuMjY1MzYiLCBcCi0gICAgICAgICAgIjAuMDU0NjQyLCAwLjI1ODQzNCwgMC40MjU0MjEsIDAuNjM1NDI2LCAwLjg0NTU3NSwgMS4wNTM5LCAxLjI2NSIsIFwKLSAgICAgICAgICAiMC4wNTQ2NjMsIDAuMjU4NDM4LCAwLjQyNTk3MSwgMC42MzUzNzIsIDAuODQ1NTc5LCAxLjA1NTM0LCAxLjI2NTA2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0NTYyLCAwLjAwNDYyMSwgMC4wMDQ2MjgsIDAuMDA0NjMxLCAwLjAwNDYzMywgMC4wMDQ2MzQsIDAuMDA0NjM1IiwgXAotICAgICAgICAgICIwLjAwNDU1NSwgMC4wMDQ2MTYsIDAuMDA0NjIxLCAwLjAwNDYyNSwgMC4wMDQ2MjcsIDAuMDA0NjI2LCAwLjAwNDYyOSIsIFwKLSAgICAgICAgICAiMC4wMDQ1NSwgMC4wMDQ2MSwgMC4wMDQ2MTgsIDAuMDA0NjIxLCAwLjAwNDYyMiwgMC4wMDQ2MjMsIDAuMDA0NjI0IiwgXAotICAgICAgICAgICIwLjAwNDU0NiwgMC4wMDQ2MDYsIDAuMDA0NjEzLCAwLjAwNDYxNSwgMC4wMDQ2MTksIDAuMDA0NjE4LCAwLjAwNDYyMSIsIFwKLSAgICAgICAgICAiMC4wMDQ1NDMsIDAuMDA0NjA0LCAwLjAwNDYxLCAwLjAwNDYxNCwgMC4wMDQ2MTYsIDAuMDA0NjE3LCAwLjAwNDYxOCIsIFwKLSAgICAgICAgICAiMC4wMDQ1NDUsIDAuMDA0NjA3LCAwLjAwNDYxNCwgMC4wMDQ2MTgsIDAuMDA0NjIsIDAuMDA0NjIxLCAwLjAwNDYyMiIsIFwKLSAgICAgICAgICAiMC4wMDQ1NDYsIDAuMDA0NjA2LCAwLjAwNDYxMSwgMC4wMDQ2MTYsIDAuMDA0NjE4LCAwLjAwNDYxOSwgMC4wMDQ2MjEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQyOTgsIDAuMDA0MzU3LCAwLjAwNDM2NCwgMC4wMDQzNjcsIDAuMDA0MzY5LCAwLjAwNDM3LCAwLjAwNDM3MSIsIFwKLSAgICAgICAgICAiMC4wMDQyODcsIDAuMDA0MzQ2LCAwLjAwNDM1MywgMC4wMDQzNTcsIDAuMDA0MzU4LCAwLjAwNDM1OSwgMC4wMDQzNiIsIFwKLSAgICAgICAgICAiMC4wMDQyODEsIDAuMDA0MzQsIDAuMDA0MzQ3LCAwLjAwNDM1LCAwLjAwNDM1MiwgMC4wMDQzNTMsIDAuMDA0MzU0IiwgXAotICAgICAgICAgICIwLjAwNDI3NSwgMC4wMDQzMzQsIDAuMDA0MzQyLCAwLjAwNDM0NSwgMC4wMDQzNDcsIDAuMDA0MzQ0LCAwLjAwNDM0OSIsIFwKLSAgICAgICAgICAiMC4wMDQyNzEsIDAuMDA0MzMyLCAwLjAwNDMzOSwgMC4wMDQzNDIsIDAuMDA0MzQ0LCAwLjAwNDM0NSwgMC4wMDQzNDUiLCBcCi0gICAgICAgICAgIjAuMDA0Mjc4LCAwLjAwNDM0MSwgMC4wMDQzNDksIDAuMDA0MzU0LCAwLjAwNDM1NCwgMC4wMDQzNTYsIDAuMDA0MzU3IiwgXAotICAgICAgICAgICIwLjAwNDI3OCwgMC4wMDQzMzgsIDAuMDA0MzQ3LCAwLjAwNDM1MSwgMC4wMDQzNTIsIDAuMDA0MzU0LCAwLjAwNDM1NSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkdOIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDU5NzIsIDAuMDA2MDMzLCAwLjAwNjAzOSwgMC4wMDYwNDEsIDAuMDA2MDQ1LCAwLjAwNjA0NiwgMC4wMDYwNDUiLCBcCi0gICAgICAgICAgIjAuMDA1OTYsIDAuMDA2MDE5LCAwLjAwNjAyNSwgMC4wMDYwMjksIDAuMDA2MDMxLCAwLjAwNjAzMiwgMC4wMDYwMzMiLCBcCi0gICAgICAgICAgIjAuMDA1OTU5LCAwLjAwNjAxOCwgMC4wMDYwMjYsIDAuMDA2MDI5LCAwLjAwNjAzLCAwLjAwNjAzMiwgMC4wMDYwMzMiLCBcCi0gICAgICAgICAgIjAuMDA1OTYxLCAwLjAwNjAyLCAwLjAwNjAyNiwgMC4wMDYwMywgMC4wMDYwMzIsIDAuMDA2MDMzLCAwLjAwNjAzNCIsIFwKLSAgICAgICAgICAiMC4wMDU5NjQsIDAuMDA2MDI2LCAwLjAwNjAzMSwgMC4wMDYwMzQsIDAuMDA2MDM1LCAwLjAwNjAzNiwgMC4wMDYwMzgiLCBcCi0gICAgICAgICAgIjAuMDA1OTY2LCAwLjAwNjAyNCwgMC4wMDYwMzEsIDAuMDA2MDM1LCAwLjAwNjAzNiwgMC4wMDYwMzcsIDAuMDA2MDM5IiwgXAotICAgICAgICAgICIwLjAwNTk3NCwgMC4wMDYwMzQsIDAuMDA2MDQxLCAwLjAwNjA0MiwgMC4wMDYwNDUsIDAuMDA2MDQ1LCAwLjAwNjA0NSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNTg4OCwgMC4wMDU5MjgsIDAuMDA1OTI3LCAwLjAwNTkyNSwgMC4wMDU5MjQsIDAuMDA1OTIzLCAwLjAwNTkyMyIsIFwKLSAgICAgICAgICAiMC4wMDU4NzQsIDAuMDA1OTE0LCAwLjAwNTkxMywgMC4wMDU5MTEsIDAuMDA1OTEsIDAuMDA1OTEsIDAuMDA1OTA4IiwgXAotICAgICAgICAgICIwLjAwNTg2OSwgMC4wMDU5MSwgMC4wMDU5MSwgMC4wMDU5MDgsIDAuMDA1OTA2LCAwLjAwNTkwNiwgMC4wMDU5MDUiLCBcCi0gICAgICAgICAgIjAuMDA1ODcsIDAuMDA1OTEsIDAuMDA1OTEsIDAuMDA1OTA4LCAwLjAwNTkwNywgMC4wMDU5MDYsIDAuMDA1OTA1IiwgXAotICAgICAgICAgICIwLjAwNTg2NywgMC4wMDU5MDgsIDAuMDA1OTA4LCAwLjAwNTkwNSwgMC4wMDU5MDQsIDAuMDA1OTAzLCAwLjAwNTkwNCIsIFwKLSAgICAgICAgICAiMC4wMDU4NzcsIDAuMDA1OTIsIDAuMDA1OTE5LCAwLjAwNTkxNywgMC4wMDU5MTYsIDAuMDA1OTE1LCAwLjAwNTkxNCIsIFwKLSAgICAgICAgICAiMC4wMDU4OTUsIDAuMDA1OTQsIDAuMDA1OTM5LCAwLjAwNTkzOCwgMC4wMDU5MzYsIDAuMDA1OTM1LCAwLjAwNTkzNCIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IFRMQVROWEwgKgotICogLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoVExBVE5YTCkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjIwODQ3NjsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBsYXRjaCAoUUlOVCxOMCkgewotICAgIGRhdGFfaW4gOiAiRCI7Ci0gICAgZW5hYmxlIDogIighR04pIjsKLSAgfQotICBwaW4oRCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjQwMDgzOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYzODA5OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDY0MDA4MzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyMTYsIDAuMDAwMjIsIDAuMDAwMjIxLCAwLjAwMDIyMSwgMC4wMDAyMjEsIDAuMDAwMjIyLCAwLjAwMDIyMiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDIzNCwgMC4wMDAyMjgsIDAuMDAwMjI4LCAwLjAwMDIyOCwgMC4wMDAyMjcsIDAuMDAwMjI3LCAwLjAwMDIyNyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJHTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAzMTI1LCAtMC4wMiwgLTAuMDEzNzUsIC0wLjAwNzUsIC0wLjAwNzUsIDAuMDAyNSwgMC4wMDUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA4NzUsIDAiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wNDM3NSwgLTAuMDMxMjUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAxNSwgLTAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDYxMjUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAyNzUsIC0wLjAxODc1IiwgXAotICAgICAgICAgICItMC4wNjc1LCAtMC4wNjI1LCAtMC4wNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wMzM3NSwgLTAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjA4Mzc1LCAtMC4wNzI1LCAtMC4wNjYyNSwgLTAuMDYsIC0wLjA1Mzc1LCAtMC4wNDM3NSwgLTAuMDQxMjUiLCBcCi0gICAgICAgICAgIi0wLjA5MjUsIC0wLjA4MTI1LCAtMC4wNzUsIC0wLjA2ODc1LCAtMC4wNjI1LCAtMC4wNTg3NSwgLTAuMDUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMTI1LCAtMC4wMDEyNSwgMC4wMTEyNSwgMC4wMjM3NSwgMC4wMywgMC4wNCwgMC4wNDg3NSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxMjUsIDAsIDAuMDEyNSwgMC4wMTg3NSwgMC4wMzUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAsIDAuMDEyNSwgMC4wMjI1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLCAwLjAxNjI1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjAzNzUsIC0wLjAyNSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAuMDAzNzUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjA1ODc1LCAtMC4wNDc1LCAtMC4wMzUsIC0wLjAyODc1LCAtMC4wMTYyNSwgLTAuMDA2MjUsIDAuMDAyNSIsIFwKLSAgICAgICAgICAiLTAuMDY3NSwgLTAuMDU2MjUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAxNSwgLTAuMDA2MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiR04iOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQzNzUsIDAuMDMyNSwgMC4wMjYyNSwgMC4wMjYyNSwgMC4wMiwgMC4wMTYyNSwgMC4wMTM3NSIsIFwKLSAgICAgICAgICAiMC4wNDg3NSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAzMTI1LCAwLjAyNzUsIDAuMDI1IiwgXAotICAgICAgICAgICIwLjA2MTI1LCAwLjA1NjI1LCAwLjA1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDMzNzUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMDczNzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNSwgMC4wNSwgMC4wNDYyNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4wOCwgMC4wNzUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNTI1LCAwLjA1IiwgXAotICAgICAgICAgICIwLjA5NjI1LCAwLjA4NSwgMC4wNzg3NSwgMC4wNzI1LCAwLjA3MjUsIDAuMDYyNSwgMC4wNiIsIFwKLSAgICAgICAgICAiMC4xMDUsIDAuMDkzNzUsIDAuMDg3NSwgMC4wODEyNSwgMC4wODEyNSwgMC4wNzEyNSwgMC4wNjg3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyNSwgMC4wMTM3NSwgMC4wMDEyNSwgLTAuMDA1LCAtMC4wMTc1LCAtMC4wMjc1LCAtMC4wMzYyNSIsIFwKLSAgICAgICAgICAiMC4wMzYyNSwgMC4wMjUsIDAuMDEyNSwgMCwgLTAuMDA2MjUsIC0wLjAyMjUsIC0wLjAzMTI1IiwgXAotICAgICAgICAgICIwLjA0MjUsIDAuMDMxMjUsIDAuMDE4NzUsIDAuMDEyNSwgMCwgLTAuMDEsIC0wLjAxODc1IiwgXAotICAgICAgICAgICIwLjA1NSwgMC4wNDM3NSwgMC4wMzEyNSwgMC4wMTg3NSwgMC4wMTI1LCAtMC4wMDM3NSwgLTAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4wNjEyNSwgMC4wNSwgMC4wMzc1LCAwLjAyNSwgMC4wMTg3NSwgMC4wMDg3NSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMDcxMjUsIDAuMDY2MjUsIDAuMDUzNzUsIDAuMDQxMjUsIDAuMDI4NzUsIDAuMDE4NzUsIDAuMDEiLCBcCi0gICAgICAgICAgIjAuMDgsIDAuMDc1LCAwLjA1NjI1LCAwLjA1LCAwLjAzNzUsIDAuMDI3NSwgMC4wMTg3NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oR04pICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY1Nzg3ODsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2NTc0NzQ7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjU3ODc4OwotICAgIGNsb2NrIDogdHJ1ZTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDE2NzYsIDAuMDAxNjQ5LCAwLjAwMTYzNSwgMC4wMDE2NDQsIDAuMDAxNjUsIDAuMDAxNjc4LCAwLjAwMTY5NiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzEzMiwgMC4wMDMxMDgsIDAuMDAzMDk5LCAwLjAwMzEwMywgMC4wMDMxMTYsIDAuMDAzMTQzLCAwLjAwMzE2NyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJHTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQiOwotICAgICAgc2RmX2NvbmQgOiAiRCA9PSAxJ2IwIjsKLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjE5MzM5MiwgMC4yMDI5MTYsIDAuMjE1MTQyLCAwLjIyNTA4OCwgMC4yMzM3MzksIDAuMjQ1NzUxLCAwLjI1NDMzOSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjE1MzI0ODsKLSAgICBmdW5jdGlvbiA6ICJRSU5UIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJEIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNjExODEsIDAuMTc1NjEsIDAuMzAzMjY5LCAwLjUxNTQzNiwgMC43Mjc2MTYsIDEuMjIyNywgMS41MDU1OCIsIFwKLSAgICAgICAgICAiMC4xNzAwNDEsIDAuMTgzOTY2LCAwLjMxMTExNCwgMC41MjQxNDIsIDAuNzM2MjgyLCAxLjIzMTI4LCAxLjUxNDI0IiwgXAotICAgICAgICAgICIwLjE4MDY0MiwgMC4xOTQ4NjEsIDAuMzIyMDk4LCAwLjUzNDY5NiwgMC43NDY4NzYsIDEuMjQxOTcsIDEuNTI0ODQiLCBcCi0gICAgICAgICAgIjAuMTkwNTIxLCAwLjIwNTAyLCAwLjMzMTgxNywgMC41NDQ4MjksIDAuNzU2OTc4LCAxLjI1MjA5LCAxLjUzMzQzIiwgXAotICAgICAgICAgICIwLjIwMDI1MiwgMC4yMTQxMDcsIDAuMzQyMDk2LCAwLjU1NDMxMSwgMC43NjUyNjgsIDEuMjYwMzYsIDEuNTQ0NDUiLCBcCi0gICAgICAgICAgIjAuMjEzMzYsIDAuMjI3NDYyLCAwLjM1NDYyNywgMC41NjY5OTIsIDAuNzc5NzkxLCAxLjI3MzU1LCAxLjU1NTM3IiwgXAotICAgICAgICAgICIwLjIyNDExLCAwLjIzNzk4MSwgMC4zNjUxMDUsIDAuNTc4MDE5LCAwLjc5MDE4NiwgMS4yODMzLCAxLjU2ODIxIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE1MTUxOSwgMC4xODEwNTksIDAuNDQzMDk1LCAwLjg3ODgwNCwgMS4zMTQyOCwgMi4zMzE2NSwgMi45MTMwNyIsIFwKLSAgICAgICAgICAiMC4xNTE5ODksIDAuMTgxMzM2LCAwLjQ0MjM4NywgMC44NzkwMDUsIDEuMzE0MjMsIDIuMzMxNjksIDIuOTEzMTMiLCBcCi0gICAgICAgICAgIjAuMTUyMDA0LCAwLjE4MTA2NCwgMC40NDI5NDIsIDAuODc4NzkyLCAxLjMxNDI4LCAyLjMzMTY2LCAyLjkxMzA5IiwgXAotICAgICAgICAgICIwLjE1MTUwNSwgMC4xODEwODEsIDAuNDQxNzE2LCAwLjg3ODc1LCAxLjMxNDM4LCAyLjMzMTU5LCAyLjkwODM2IiwgXAotICAgICAgICAgICIwLjE1MjAxOSwgMC4xODA0MywgMC40NDI5NzgsIDAuODc4NTcyLCAxLjMxMjA1LCAyLjMzMjM5LCAyLjkxMzI5IiwgXAotICAgICAgICAgICIwLjE1MTkxNSwgMC4xODEyMzQsIDAuNDQxOTM0LCAwLjg3OTI4NSwgMS4zMTQyNiwgMi4zMjgyOCwgMi45MDY3MyIsIFwKLSAgICAgICAgICAiMC4xNTIzNzYsIDAuMTgxMjk5LCAwLjQ0MjQyNiwgMC44Nzg1ODEsIDEuMzE0NSwgMi4zMjcyLCAyLjkxMzU4Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE2MTM4NywgMC4xNzUwODUsIDAuMjk5ODY5LCAwLjUwNzAyMywgMC43MTQ0ODUsIDEuMTk4OTksIDEuNDc2IiwgXAotICAgICAgICAgICIwLjE3MDA0MiwgMC4xODM5MjksIDAuMzA4NTA5LCAwLjUxNTY2OCwgMC43MjMxMiwgMS4yMDcwOSwgMS40ODQ2IiwgXAotICAgICAgICAgICIwLjE3OTc4MywgMC4xOTM0NDUsIDAuMzE4MjU1LCAwLjUyNTQwOCwgMC43MzI4NjQsIDEuMjE3MTIsIDEuNDk0MzciLCBcCi0gICAgICAgICAgIjAuMTg4OTksIDAuMjAyODgyLCAwLjMyNzQ0NywgMC41MzQ2LCAwLjc0MjA1OSwgMS4yMjY1OCwgMS41MDI2IiwgXAotICAgICAgICAgICIwLjE5NzI2OSwgMC4yMTA5OTQsIDAuMzM1Nzg0LCAwLjU0MjkzNSwgMC43NTAzOTMsIDEuMjM0OTQsIDEuNTExMTciLCBcCi0gICAgICAgICAgIjAuMjA4ODcxLCAwLjIyMjk4OSwgMC4zNDczMDMsIDAuNTU0Njc1LCAwLjc2MjIyMywgMS4yNDYyOCwgMS41MjI5MyIsIFwKLSAgICAgICAgICAiMC4yMTgwMTUsIDAuMjMxODEsIDAuMzU2MDc3LCAwLjU2MzU0NywgMC43NzA5ODIsIDEuMjU1MTYsIDEuNTMxODIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTQ1MzM4LCAwLjE3Mjg1NCwgMC40MjM0OTIsIDAuODQwNjY3LCAxLjI1Nzc0LCAyLjIzMTU5LCAyLjc4MTY4IiwgXAotICAgICAgICAgICIwLjE0NTI5OSwgMC4xNzI5ODgsIDAuNDIzNDkxLCAwLjg0MDY4MiwgMS4yNTc3MywgMi4yMzAyMywgMi43ODg0MyIsIFwKLSAgICAgICAgICAiMC4xNDUzMjIsIDAuMTcyODU3LCAwLjQyMzQ3MywgMC44NDA2MzYsIDEuMjU3NywgMi4yMzA3NiwgMi43Nzg5MSIsIFwKLSAgICAgICAgICAiMC4xNDUzLCAwLjE3MzAxMywgMC40MjM1MSwgMC44NDA2ODMsIDEuMjU3NzksIDIuMjMxNjQsIDIuNzgxNjYiLCBcCi0gICAgICAgICAgIjAuMTQ1MzI4LCAwLjE3Mjg1MywgMC40MjM1MDgsIDAuODQwNjc2LCAxLjI1NzczLCAyLjIzMTc2LCAyLjc3OTY1IiwgXAotICAgICAgICAgICIwLjE0NTE0OCwgMC4xNzMwMTQsIDAuNDIyNjU3LCAwLjg0MDU4OSwgMS4yNTgwMiwgMi4yMjU5NywgMi43Nzk3NCIsIFwKLSAgICAgICAgICAiMC4xNDUyOTQsIDAuMTcyOTUsIDAuNDIyMzU3LCAwLjg0MDQ1MiwgMS4yNTU0OCwgMi4yMjc5LCAyLjc4MzM4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkdOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5vbl91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogZmFsbGluZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xODEyMjEsIDAuMTk1MTQ1LCAwLjMyMjcyNCwgMC41MzUyODQsIDAuNzQ2MjMzLCAxLjI0MjU0LCAxLjUyNTM4IiwgXAotICAgICAgICAgICIwLjE5MDczNiwgMC4yMDUxMTgsIDAuMzMyMjI1LCAwLjU0NDk3NCwgMC43NTcxNjYsIDEuMjUyMTgsIDEuNTM1MTMiLCBcCi0gICAgICAgICAgIjAuMjAyODA4LCAwLjIxNjcyOSwgMC4zNDM4MzksIDAuNTU2ODUzLCAwLjc2ODMwNiwgMS4yNjQxMywgMS41NDQ4IiwgXAotICAgICAgICAgICIwLjIxMzEwOSwgMC4yMjczMjUsIDAuMzU0OTgzLCAwLjU2NzEzNiwgMC43NzkzMTksIDEuMjc0NDEsIDEuNTU3MjkiLCBcCi0gICAgICAgICAgIjAuMjIxOTYsIDAuMjM1ODgzLCAwLjM2Mjk5NCwgMC41NzYwMDcsIDAuNzg3MTAxLCAxLjI4MzI4LCAxLjU2Mzg3IiwgXAotICAgICAgICAgICIwLjIzNDA1OCwgMC4yNDc5NzEsIDAuMzc1MDgxLCAwLjU4ODA5NiwgMC43OTkzODksIDEuMjk1MzcsIDEuNTc2MDIiLCBcCi0gICAgICAgICAgIjAuMjQzODIzLCAwLjI1ODA2OSwgMC4zODU3MSwgMC41OTc4NDEsIDAuODEwMDQ3LCAxLjMwNTE0LCAxLjU4ODAyIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE1MjE3NSwgMC4xODA4NjgsIDAuNDQzMDAzLCAwLjg3ODc5NywgMS4zMTQxNiwgMi4zMzE2NCwgMi45MTM3OCIsIFwKLSAgICAgICAgICAiMC4xNTE5ODgsIDAuMTgxNTE0LCAwLjQ0MjM4NCwgMC44Nzg4OTQsIDEuMzE0MzIsIDIuMzMxNzYsIDIuOTEzMjIiLCBcCi0gICAgICAgICAgIjAuMTUyMTg2LCAwLjE4MDk4NywgMC40NDIzOTgsIDAuODc4ODEzLCAxLjMxNTM1LCAyLjMzMTYyLCAyLjkxMTI5IiwgXAotICAgICAgICAgICIwLjE1MjI3LCAwLjE4MTQ0NiwgMC40NDMxNSwgMC44Nzg4NjEsIDEuMzE0MywgMi4zMzE2NywgMi45MTMxIiwgXAotICAgICAgICAgICIwLjE1MjE1NywgMC4xODEwNjksIDAuNDQyNDU0LCAwLjg3ODgzOCwgMS4zMTM0MywgMi4zMzE2NCwgMi45MDc3OCIsIFwKLSAgICAgICAgICAiMC4xNTIyMDYsIDAuMTgwOTYzLCAwLjQ0MjQwMywgMC44Nzg4MzEsIDEuMzEyNDIsIDIuMzMxNjIsIDIuOTA2OCIsIFwKLSAgICAgICAgICAiMC4xNTIyMzEsIDAuMTgxNDU3LCAwLjQ0MzE2OSwgMC44Nzg3OTgsIDEuMzE0MzIsIDIuMzMxNzEsIDIuOTEzMDkiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTkzMzkyLCAwLjIwNzMxLCAwLjMzMTY3NiwgMC41MzkwMDEsIDAuNzQ2NDk2LCAxLjIzMDg2LCAxLjUwNzg2IiwgXAotICAgICAgICAgICIwLjIwMjkxNiwgMC4yMTcxMTksIDAuMzQxNjQyLCAwLjU0ODgwMSwgMC43NTYyOTgsIDEuMjQwNiwgMS41MTc2NiIsIFwKLSAgICAgICAgICAiMC4yMTUxNDIsIDAuMjI4NzMxLCAwLjM1MzYyNiwgMC41NjA3NzcsIDAuNzY4MjMsIDEuMjUyNywgMS41MjkxNSIsIFwKLSAgICAgICAgICAiMC4yMjUwODgsIDAuMjM4OTk5LCAwLjM2MzI4NSwgMC41NzA2ODIsIDAuNzc4MjEyLCAxLjI2MjgsIDEuNTM5NiIsIFwKLSAgICAgICAgICAiMC4yMzM3MzksIDAuMjQ3MzAxLCAwLjM3MjIyMiwgMC41NzkzNzMsIDAuNzg2ODMsIDEuMjcxMywgMS41NDc3NSIsIFwKLSAgICAgICAgICAiMC4yNDU3NTEsIDAuMjU5MzUxLCAwLjM4MzgwMSwgMC41OTE0MjksIDAuNzk4ODY3LCAxLjI4Mjg0LCAxLjU2MDEyIiwgXAotICAgICAgICAgICIwLjI1NDMzOSwgMC4yNjgwNDEsIDAuMzkyODE0LCAwLjU5OTk3MywgMC44MDc0MzMsIDEuMjkxNDEsIDEuNTY4OTMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTQ1MzA4LCAwLjE3MzAwNCwgMC40MjI5MjMsIDAuODQwNjM0LCAxLjI1Nzg0LCAyLjIzMTIzLCAyLjc4ODE0IiwgXAotICAgICAgICAgICIwLjE0NTIwMiwgMC4xNzMwMDQsIDAuNDIzMzgsIDAuODQwNjE0LCAxLjI1NzgzLCAyLjIzMTAxLCAyLjc4ODEzIiwgXAotICAgICAgICAgICIwLjE0NTMwMSwgMC4xNzI4NTEsIDAuNDIzNDkzLCAwLjg0MDY1MSwgMS4yNTc3NCwgMi4yMzE0NCwgMi43ODY4IiwgXAotICAgICAgICAgICIwLjE0NTMyNCwgMC4xNzI5ODQsIDAuNDIyNzY0LCAwLjgzODgwMSwgMS4yNTc4LCAyLjIzMjAzLCAyLjc4ODE3IiwgXAotICAgICAgICAgICIwLjE0NTMsIDAuMTcyNzg1LCAwLjQyMzQ3OSwgMC44NDA2NSwgMS4yNTc3MSwgMi4yMzE0NSwgMi43ODY4MiIsIFwKLSAgICAgICAgICAiMC4xNDUzMTcsIDAuMTcyNzc4LCAwLjQyMjc3NSwgMC44NDA2NjMsIDEuMjU3NjcsIDIuMjI2MjYsIDIuNzg4MjMiLCBcCi0gICAgICAgICAgIjAuMTQ1MzA3LCAwLjE3Mjg1MywgMC40MjM1MDIsIDAuODQwNzA4LCAxLjI1NzcxLCAyLjIzMDEsIDIuNzc4NjgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJEIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDIzNjUsIDAuMDAyMzY3LCAwLjAwMjM3LCAwLjAwMjM3MSwgMC4wMDIzNzIsIDAuMDAyMzcyLCAwLjAwMjM3NCIsIFwKLSAgICAgICAgICAiMC4wMDIzNTUsIDAuMDAyMzU2LCAwLjAwMjM1OSwgMC4wMDIzNiwgMC4wMDIzNiwgMC4wMDIzNjIsIDAuMDAyMzYyIiwgXAotICAgICAgICAgICIwLjAwMjM0OSwgMC4wMDIzNSwgMC4wMDIzNTMsIDAuMDAyMzU0LCAwLjAwMjM1MywgMC4wMDIzNTUsIDAuMDAyMzU1IiwgXAotICAgICAgICAgICIwLjAwMjM0NCwgMC4wMDIzNDYsIDAuMDAyMzQ5LCAwLjAwMjM1LCAwLjAwMjM1MSwgMC4wMDIzNTEsIDAuMDAyMzUxIiwgXAotICAgICAgICAgICIwLjAwMjM0NCwgMC4wMDIzNDUsIDAuMDAyMzQ5LCAwLjAwMjM1MSwgMC4wMDIzNTEsIDAuMDAyMzUyLCAwLjAwMjM1MiIsIFwKLSAgICAgICAgICAiMC4wMDIzNDYsIDAuMDAyMzQ3LCAwLjAwMjM1MSwgMC4wMDIzNTIsIDAuMDAyMzUzLCAwLjAwMjM1MywgMC4wMDIzNTMiLCBcCi0gICAgICAgICAgIjAuMDAyMzQ4LCAwLjAwMjM1LCAwLjAwMjM1MywgMC4wMDIzNTUsIDAuMDAyMzU1LCAwLjAwMjM1NiwgMC4wMDIzNTYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI1MDcsIDAuMDAyNTA4LCAwLjAwMjUxMSwgMC4wMDI1MTIsIDAuMDAyNTEzLCAwLjAwMjUxMywgMC4wMDI1MTMiLCBcCi0gICAgICAgICAgIjAuMDAyNSwgMC4wMDI1MDEsIDAuMDAyNTA0LCAwLjAwMjUwNiwgMC4wMDI1MDYsIDAuMDAyNTA2LCAwLjAwMjUwNiIsIFwKLSAgICAgICAgICAiMC4wMDI0OTUsIDAuMDAyNDk2LCAwLjAwMjUsIDAuMDAyNTAxLCAwLjAwMjUwMiwgMC4wMDI1MDIsIDAuMDAyNTAyIiwgXAotICAgICAgICAgICIwLjAwMjQ5MywgMC4wMDI0OTQsIDAuMDAyNDk4LCAwLjAwMjQ5OSwgMC4wMDI1LCAwLjAwMjUsIDAuMDAyNSIsIFwKLSAgICAgICAgICAiMC4wMDI0OSwgMC4wMDI0OTEsIDAuMDAyNDk1LCAwLjAwMjQ5NiwgMC4wMDI0OTcsIDAuMDAyNDk3LCAwLjAwMjQ5NyIsIFwKLSAgICAgICAgICAiMC4wMDI0OTMsIDAuMDAyNDkyLCAwLjAwMjQ5OCwgMC4wMDI0OTksIDAuMDAyNSwgMC4wMDI1MDEsIDAuMDAyNSIsIFwKLSAgICAgICAgICAiMC4wMDI0OTMsIDAuMDAyNDk0LCAwLjAwMjQ5NywgMC4wMDI1LCAwLjAwMjUsIDAuMDAyNTAxLCAwLjAwMjUwMSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkdOIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDM4NzksIDAuMDAzODc4LCAwLjAwMzg3NCwgMC4wMDM4NzEsIDAuMDAzODcsIDAuMDAzODY5LCAwLjAwMzg2OSIsIFwKLSAgICAgICAgICAiMC4wMDM4NjIsIDAuMDAzODYyLCAwLjAwMzg1OCwgMC4wMDM4NTUsIDAuMDAzODU0LCAwLjAwMzg1MiwgMC4wMDM4NTIiLCBcCi0gICAgICAgICAgIjAuMDAzODYsIDAuMDAzODYsIDAuMDAzODU2LCAwLjAwMzg1MiwgMC4wMDM4NTIsIDAuMDAzODUsIDAuMDAzODUiLCBcCi0gICAgICAgICAgIjAuMDAzODYxLCAwLjAwMzg2MSwgMC4wMDM4NTcsIDAuMDAzODU0LCAwLjAwMzg1MiwgMC4wMDM4NTEsIDAuMDAzODUxIiwgXAotICAgICAgICAgICIwLjAwMzg1NywgMC4wMDM4NTcsIDAuMDAzODUzLCAwLjAwMzg1LCAwLjAwMzg0OCwgMC4wMDM4NDcsIDAuMDAzODQ3IiwgXAotICAgICAgICAgICIwLjAwMzg2OSwgMC4wMDM4NjksIDAuMDAzODY1LCAwLjAwMzg2MiwgMC4wMDM4NiwgMC4wMDM4NTgsIDAuMDAzODU4IiwgXAotICAgICAgICAgICIwLjAwMzg3NiwgMC4wMDM4NzQsIDAuMDAzODcyLCAwLjAwMzg2OSwgMC4wMDM4NjgsIDAuMDAzODY2LCAwLjAwMzg2NiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzgzNywgMC4wMDM4MzgsIDAuMDAzODQyLCAwLjAwMzg0MywgMC4wMDM4NDQsIDAuMDAzODQ0LCAwLjAwMzg0NCIsIFwKLSAgICAgICAgICAiMC4wMDM4MjQsIDAuMDAzODI1LCAwLjAwMzgyOSwgMC4wMDM4MzEsIDAuMDAzODMxLCAwLjAwMzgzMSwgMC4wMDM4MzEiLCBcCi0gICAgICAgICAgIjAuMDAzODI0LCAwLjAwMzgyNSwgMC4wMDM4MjksIDAuMDAzODMsIDAuMDAzODMyLCAwLjAwMzgzMSwgMC4wMDM4MzIiLCBcCi0gICAgICAgICAgIjAuMDAzODI3LCAwLjAwMzgyOCwgMC4wMDM4MzEsIDAuMDAzODMzLCAwLjAwMzgzMywgMC4wMDM4MzQsIDAuMDAzODM0IiwgXAotICAgICAgICAgICIwLjAwMzgyOSwgMC4wMDM4MywgMC4wMDM4MzQsIDAuMDAzODM1LCAwLjAwMzgzNywgMC4wMDM4MzcsIDAuMDAzODM2IiwgXAotICAgICAgICAgICIwLjAwMzgzMSwgMC4wMDM4MzgsIDAuMDAzODM3LCAwLjAwMzg0MywgMC4wMDM4NDQsIDAuMDAzODM5LCAwLjAwMzgzOSIsIFwKLSAgICAgICAgICAiMC4wMDM4NDUsIDAuMDAzODQ2LCAwLjAwMzg0OSwgMC4wMDM4NTEsIDAuMDAzODUxLCAwLjAwMzg1MiwgMC4wMDM4NTIiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFFOKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMTUwMjg7Ci0gICAgZnVuY3Rpb24gOiAiTjAiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkQiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE1MjU4LCAwLjE2NjcwMiwgMC4yOTM4ODgsIDAuNTA1NzMyLCAwLjcxNzU0NSwgMS4yMTE5MiwgMS40OTQ1NSIsIFwKLSAgICAgICAgICAiMC4xNjEyMDIsIDAuMTc1MzM1LCAwLjMwMjUxOSwgMC41MTQzNjgsIDAuNzI2MTcyLCAxLjIyMDEzLCAxLjUwMzE0IiwgXAotICAgICAgICAgICIwLjE3MDk2MywgMC4xODUwODgsIDAuMzEyMjcsIDAuNTI0MTEyLCAwLjczNTkyMSwgMS4yMzAwOCwgMS41MTI5MSIsIFwKLSAgICAgICAgICAiMC4xODAxNDYsIDAuMTk0Mjg0LCAwLjMyMTQ3MiwgMC41MzMzMTQsIDAuNzQ1MTI0LCAxLjIzOTUyLCAxLjUyMTM5IiwgXAotICAgICAgICAgICIwLjE4ODQ2MywgMC4yMDI1ODksIDAuMzI5NzgzLCAwLjU0MTYyNSwgMC43NTM0MzQsIDEuMjQ3ODUsIDEuNTMwMjQiLCBcCi0gICAgICAgICAgIjAuMjAwMjY4LCAwLjIxNDQwOCwgMC4zNDE1NjEsIDAuNTUzNDE3LCAwLjc2NTMxMywgMS4yNTk1OCwgMS41NDIwMyIsIFwKLSAgICAgICAgICAiMC4yMDkxOTEsIDAuMjIzMzIxLCAwLjM1MDQ5NywgMC41NjIzMzEsIDAuNzc0MTg4LCAxLjI2ODQzLCAxLjU1MDg2Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE1NDY3OCwgMC4xODMxOTksIDAuNDQ0MTE1LCAwLjg3OTU5OCwgMS4zMTUxNywgMi4zMzE3NCwgMi45MDcxMSIsIFwKLSAgICAgICAgICAiMC4xNTQ2MzksIDAuMTgzMzYyLCAwLjQ0NDExNiwgMC44Nzk2MDIsIDEuMzE1MTcsIDIuMzMsIDIuOTEyODkiLCBcCi0gICAgICAgICAgIjAuMTU0NjY2LCAwLjE4MzIxNSwgMC40NDQxMDQsIDAuODc5NTgzLCAxLjMxNTE3LCAyLjMzMTY4LCAyLjkwNjg4IiwgXAotICAgICAgICAgICIwLjE1NDY1NCwgMC4xODMzOTMsIDAuNDQ0MTI3LCAwLjg3OTYwMSwgMS4zMTUzLCAyLjMzMTc3LCAyLjkwNzg5IiwgXAotICAgICAgICAgICIwLjE1NDY4NSwgMC4xODMyMDksIDAuNDQ0MTI3LCAwLjg3OTU3NywgMS4zMTUxNCwgMi4zMzE3OSwgMi45MDM2NyIsIFwKLSAgICAgICAgICAiMC4xNTQ1NjYsIDAuMTgzNDE0LCAwLjQ0MzM5MywgMC44Nzk0OTMsIDEuMzE1MjEsIDIuMzI3NzgsIDIuOTA3OCIsIFwKLSAgICAgICAgICAiMC4xNTQ3MTksIDAuMTgzMzcxLCAwLjQ0MzE3NCwgMC44NzkzNDQsIDEuMzEyOTQsIDIuMzI4MywgMi45MDgyOCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNTA5MTYsIDAuMTY0NzU1LCAwLjI4OTI3NCwgMC40OTY3NywgMC43MDQyMDMsIDEuMTg4MjYsIDEuNDY0ODciLCBcCi0gICAgICAgICAgIjAuMTU5NTU5LCAwLjE3MzM5OCwgMC4yOTc5NjksIDAuNTA1NDI1LCAwLjcxMjgzMSwgMS4xOTY4NiwgMS40NzM1MiIsIFwKLSAgICAgICAgICAiMC4xNzAxODMsIDAuMTg0MDE3LCAwLjMwODQ5LCAwLjUxNjAzMywgMC43MjM0NjEsIDEuMjA3NTMsIDEuNDg0MTMiLCBcCi0gICAgICAgICAgIjAuMTgwMjg5LCAwLjE5NDEzNCwgMC4zMTg2ODEsIDAuNTI2MTM5LCAwLjczMzU3OSwgMS4yMTc2MiwgMS40OTQxMyIsIFwKLSAgICAgICAgICAiMC4xODk3MzMsIDAuMjAzNTgsIDAuMzI4MDg3LCAwLjUzNTU4LCAwLjc0MzA0OSwgMS4yMjcwMiwgMS41MDM3NiIsIFwKLSAgICAgICAgICAiMC4yMDMxNjgsIDAuMjE3MDEyLCAwLjM0MTU2NywgMC41NDg5OTUsIDAuNzU2NDUsIDEuMjQwNDMsIDEuNTE3MjQiLCBcCi0gICAgICAgICAgIjAuMjEzNTkxLCAwLjIyNzQ0MywgMC4zNTE5OTYsIDAuNTU5NDY3LCAwLjc2Njg4MSwgMS4yNTEwMywgMS41Mjc2NCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNDc3MjUsIDAuMTc1NzI5LCAwLjQyNDg5NCwgMC44NDE3OTksIDEuMjU4NTcsIDIuMjMxMzcsIDIuNzg3MzIiLCBcCi0gICAgICAgICAgIjAuMTQ4MTg5LCAwLjE3NTM4MSwgMC40MjM3NDUsIDAuODQxODksIDEuMjU4NDgsIDIuMjMxMDMsIDIuNzg3MzIiLCBcCi0gICAgICAgICAgIjAuMTQ4MTg4LCAwLjE3NTcyNCwgMC40MjQ1ODMsIDAuODQxNzk5LCAxLjI1ODU0LCAyLjIzMTQxLCAyLjc4NzMiLCBcCi0gICAgICAgICAgIjAuMTQ3NywgMC4xNzU3ODUsIDAuNDIzOTEzLCAwLjg0MTc4MSwgMS4yNTg1OCwgMi4yMzEyOSwgMi43ODI1NSIsIFwKLSAgICAgICAgICAiMC4xNDgyOTgsIDAuMTc1MDA2LCAwLjQyNDgzMywgMC44NDE1NDEsIDEuMjU1MzYsIDIuMjI5NzEsIDIuNzg3NDUiLCBcCi0gICAgICAgICAgIjAuMTQ4MTcxLCAwLjE3NTU2NSwgMC40MjM4NjgsIDAuODQxMTU0LCAxLjI1ODUxLCAyLjIyNzY2LCAyLjc4MDM5IiwgXAotICAgICAgICAgICIwLjE0ODMyNiwgMC4xNzUzOSwgMC40MjM4NTIsIDAuODQxOTU1LCAxLjI1ODU3LCAyLjIyNTU0LCAyLjc4Nzg5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkdOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5vbl91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogZmFsbGluZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xODQ1NjksIDAuMTk4NzAzLCAwLjMyNTg2LCAwLjUzNzcxOSwgMC43NDk1NjksIDEuMjQzODQsIDEuNTI2NDQiLCBcCi0gICAgICAgICAgIjAuMTk0MzcsIDAuMjA4NTA3LCAwLjMzNTY2MiwgMC41NDc1MiwgMC43NTkzNzQsIDEuMjUzNiwgMS41MzYyNSIsIFwKLSAgICAgICAgICAiMC4yMDYzMjgsIDAuMjIwNDY0LCAwLjM0NzY1MywgMC41NTk0OTksIDAuNzcxMzA3LCAxLjI2NTY3LCAxLjU0Nzk3IiwgXAotICAgICAgICAgICIwLjIxNjI5MywgMC4yMzA0MjEsIDAuMzU3NiwgMC41Njk0MzYsIDAuNzgxMjg1LCAxLjI3NTc0LCAxLjU1ODE4IiwgXAotICAgICAgICAgICIwLjIyNDkyNiwgMC4yMzkwNjIsIDAuMzY2MjQ3LCAwLjU3ODA5MSwgMC43ODk5MDIsIDEuMjg0MjYsIDEuNTY2NTYiLCBcCi0gICAgICAgICAgIjAuMjM2OTYzLCAwLjI1MTEyNywgMC4zNzgxMDQsIDAuNTkwMTU3LCAwLjgwMTk0NywgMS4yOTYxMiwgMS41Nzg3IiwgXAotICAgICAgICAgICIwLjI0NTY4OCwgMC4yNTk4MTgsIDAuMzg3MDA0LCAwLjU5ODg1NywgMC44MTA2NTQsIDEuMzA0NjEsIDEuNTg3NjQiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTU0NjgyLCAwLjE4MzM5OSwgMC40NDM3ODgsIDAuODc5NTg1LCAxLjMxNTIyLCAyLjMzMTU3LCAyLjkxMjc2IiwgXAotICAgICAgICAgICIwLjE1NDU0MiwgMC4xODMzOTksIDAuNDQ0MDQ1LCAwLjg3OTU3NiwgMS4zMTUyMiwgMi4zMzE1MSwgMi45MTI3NiIsIFwKLSAgICAgICAgICAiMC4xNTQ2NjUsIDAuMTgzMjA0LCAwLjQ0NDExNiwgMC44Nzk2LCAxLjMxNTEzLCAyLjMzMTcsIDIuOTEwOTIiLCBcCi0gICAgICAgICAgIjAuMTU0NjkyLCAwLjE4MzM3NiwgMC40NDM0MTksIDAuODc4Mzk3LCAxLjMxNTE5LCAyLjMzMTg4LCAyLjkxMjc1IiwgXAotICAgICAgICAgICIwLjE1NDY2NSwgMC4xODMxNTEsIDAuNDQ0MTEsIDAuODc5NTk3LCAxLjMxNTEyLCAyLjMzMTcxLCAyLjkxMDkyIiwgXAotICAgICAgICAgICIwLjE1NDY4OSwgMC4xODMxMzQsIDAuNDQzNDgxLCAwLjg3OTYsIDEuMzE1MTEsIDIuMzI3NjYsIDIuOTEyNzciLCBcCi0gICAgICAgICAgIjAuMTU0NzAyLCAwLjE4MzIzMiwgMC40NDQxMiwgMC44Nzk2MjQsIDEuMzE1MTYsIDIuMzI5OTMsIDIuOTA2ODgiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTcwNTc0LCAwLjE4NDM4OSwgMC4zMDg3NywgMC41MTYxODMsIDAuNzIzNjA3LCAxLjIwNzYyLCAxLjQ4NDMzIiwgXAotICAgICAgICAgICIwLjE4MDI3OCwgMC4xOTQxMDIsIDAuMzE4NDgzLCAwLjUyNTg5OCwgMC43MzMyODksIDEuMjE3MzIsIDEuNDkzOTYiLCBcCi0gICAgICAgICAgIjAuMTkyMTY0LCAwLjIwNTk4LCAwLjMzMDQwMiwgMC41Mzc3OCwgMC43NDUxNTIsIDEuMjI5MjEsIDEuNTA1NzciLCBcCi0gICAgICAgICAgIjAuMjAyNDYxLCAwLjIxNjI3OCwgMC4zNDA2NzUsIDAuNTQ4MDgzLCAwLjc1NTQ4NSwgMS4yMzk1MiwgMS41MTYxMiIsIFwKLSAgICAgICAgICAiMC4yMTEzMiwgMC4yMjUxMzgsIDAuMzQ5NTY5LCAwLjU1Njk0NSwgMC43NjQzMzUsIDEuMjQ4MzgsIDEuNTI0OTQiLCBcCi0gICAgICAgICAgIjAuMjIzNDI1LCAwLjIzNzI0NCwgMC4zNjE2NzEsIDAuNTY5MDQ2LCAwLjc3NjQyLCAxLjI2MDQ3LCAxLjUzNzAyIiwgXAotICAgICAgICAgICIwLjIzMzIwMiwgMC4yNDcwMjEsIDAuMzcxNDMxLCAwLjU3ODgyNCwgMC43ODYyMTEsIDEuMjcwMjcsIDEuNTQ2ODYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTQ4Mjk4LCAwLjE3NTU0MywgMC40MjQ3MTMsIDAuODQxNzYsIDEuMjU2ODksIDIuMjMxMzMsIDIuNzg3OTEiLCBcCi0gICAgICAgICAgIjAuMTQ4MTQ2LCAwLjE3NTg1NCwgMC40MjQyMTUsIDAuODQxODAyLCAxLjI1ODUsIDIuMjMxMzEsIDIuNzg3NTUiLCBcCi0gICAgICAgICAgIjAuMTQ4Mjk5LCAwLjE3NTU0LCAwLjQyMzg3MSwgMC44NDE3OTUsIDEuMjU3NzcsIDIuMjMxMzgsIDIuNzgyNDUiLCBcCi0gICAgICAgICAgIjAuMTQ4MzE4LCAwLjE3NTc2OCwgMC40MjQ5NzMsIDAuODQxODE4LCAxLjI1ODYsIDIuMjMxNDYsIDIuNzg3NCIsIFwKLSAgICAgICAgICAiMC4xNDgyODMsIDAuMTc1NTM3LCAwLjQyMzg2MywgMC44NDE4MDcsIDEuMjU2NjMsIDIuMjMxNDEsIDIuNzgxNTEiLCBcCi0gICAgICAgICAgIjAuMTQ4Mjk2LCAwLjE3NTUzOSwgMC40MjM4NjgsIDAuODQxODAxLCAxLjI1NjUyLCAyLjIzMTM4LCAyLjc4MDc4IiwgXAotICAgICAgICAgICIwLjE0ODI5LCAwLjE3NTc4MSwgMC40MjUwMjMsIDAuODQxODA1LCAxLjI1ODUzLCAyLjIzMTU5LCAyLjc4NzQ2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyNTA3LCAwLjAwMjUwOCwgMC4wMDI1MTEsIDAuMDAyNTEyLCAwLjAwMjUxMywgMC4wMDI1MTMsIDAuMDAyNTEzIiwgXAotICAgICAgICAgICIwLjAwMjUsIDAuMDAyNTAxLCAwLjAwMjUwNCwgMC4wMDI1MDYsIDAuMDAyNTA2LCAwLjAwMjUwNiwgMC4wMDI1MDYiLCBcCi0gICAgICAgICAgIjAuMDAyNDk1LCAwLjAwMjQ5NiwgMC4wMDI1LCAwLjAwMjUwMSwgMC4wMDI1MDIsIDAuMDAyNTAyLCAwLjAwMjUwMiIsIFwKLSAgICAgICAgICAiMC4wMDI0OTMsIDAuMDAyNDk0LCAwLjAwMjQ5OCwgMC4wMDI0OTksIDAuMDAyNSwgMC4wMDI1LCAwLjAwMjUiLCBcCi0gICAgICAgICAgIjAuMDAyNDksIDAuMDAyNDkxLCAwLjAwMjQ5NSwgMC4wMDI0OTYsIDAuMDAyNDk3LCAwLjAwMjQ5NywgMC4wMDI0OTciLCBcCi0gICAgICAgICAgIjAuMDAyNDkzLCAwLjAwMjQ5MiwgMC4wMDI0OTgsIDAuMDAyNDk5LCAwLjAwMjUsIDAuMDAyNTAxLCAwLjAwMjUiLCBcCi0gICAgICAgICAgIjAuMDAyNDkzLCAwLjAwMjQ5NCwgMC4wMDI0OTcsIDAuMDAyNSwgMC4wMDI1LCAwLjAwMjUwMSwgMC4wMDI1MDEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDIzNjUsIDAuMDAyMzY3LCAwLjAwMjM3LCAwLjAwMjM3MSwgMC4wMDIzNzIsIDAuMDAyMzcyLCAwLjAwMjM3NCIsIFwKLSAgICAgICAgICAiMC4wMDIzNTUsIDAuMDAyMzU2LCAwLjAwMjM1OSwgMC4wMDIzNiwgMC4wMDIzNiwgMC4wMDIzNjIsIDAuMDAyMzYyIiwgXAotICAgICAgICAgICIwLjAwMjM0OSwgMC4wMDIzNSwgMC4wMDIzNTMsIDAuMDAyMzU0LCAwLjAwMjM1MywgMC4wMDIzNTUsIDAuMDAyMzU1IiwgXAotICAgICAgICAgICIwLjAwMjM0NCwgMC4wMDIzNDYsIDAuMDAyMzQ5LCAwLjAwMjM1LCAwLjAwMjM1MSwgMC4wMDIzNTEsIDAuMDAyMzUxIiwgXAotICAgICAgICAgICIwLjAwMjM0NCwgMC4wMDIzNDUsIDAuMDAyMzQ5LCAwLjAwMjM1MSwgMC4wMDIzNTEsIDAuMDAyMzUyLCAwLjAwMjM1MiIsIFwKLSAgICAgICAgICAiMC4wMDIzNDYsIDAuMDAyMzQ3LCAwLjAwMjM1MSwgMC4wMDIzNTIsIDAuMDAyMzUzLCAwLjAwMjM1MywgMC4wMDIzNTMiLCBcCi0gICAgICAgICAgIjAuMDAyMzQ4LCAwLjAwMjM1LCAwLjAwMjM1MywgMC4wMDIzNTUsIDAuMDAyMzU1LCAwLjAwMjM1NiwgMC4wMDIzNTYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJHTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzODM3LCAwLjAwMzgzOCwgMC4wMDM4NDIsIDAuMDAzODQzLCAwLjAwMzg0NCwgMC4wMDM4NDQsIDAuMDAzODQ0IiwgXAotICAgICAgICAgICIwLjAwMzgyNCwgMC4wMDM4MjUsIDAuMDAzODI5LCAwLjAwMzgzMSwgMC4wMDM4MzEsIDAuMDAzODMxLCAwLjAwMzgzMSIsIFwKLSAgICAgICAgICAiMC4wMDM4MjQsIDAuMDAzODI1LCAwLjAwMzgyOSwgMC4wMDM4MywgMC4wMDM4MzIsIDAuMDAzODMxLCAwLjAwMzgzMiIsIFwKLSAgICAgICAgICAiMC4wMDM4MjcsIDAuMDAzODI4LCAwLjAwMzgzMSwgMC4wMDM4MzMsIDAuMDAzODMzLCAwLjAwMzgzNCwgMC4wMDM4MzQiLCBcCi0gICAgICAgICAgIjAuMDAzODI5LCAwLjAwMzgzLCAwLjAwMzgzNCwgMC4wMDM4MzUsIDAuMDAzODM3LCAwLjAwMzgzNywgMC4wMDM4MzYiLCBcCi0gICAgICAgICAgIjAuMDAzODMxLCAwLjAwMzgzOCwgMC4wMDM4MzcsIDAuMDAzODQzLCAwLjAwMzg0NCwgMC4wMDM4MzksIDAuMDAzODM5IiwgXAotICAgICAgICAgICIwLjAwMzg0NSwgMC4wMDM4NDYsIDAuMDAzODQ5LCAwLjAwMzg1MSwgMC4wMDM4NTEsIDAuMDAzODUyLCAwLjAwMzg1MiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzg3OSwgMC4wMDM4NzgsIDAuMDAzODc0LCAwLjAwMzg3MSwgMC4wMDM4NywgMC4wMDM4NjksIDAuMDAzODY5IiwgXAotICAgICAgICAgICIwLjAwMzg2MiwgMC4wMDM4NjIsIDAuMDAzODU4LCAwLjAwMzg1NSwgMC4wMDM4NTQsIDAuMDAzODUyLCAwLjAwMzg1MiIsIFwKLSAgICAgICAgICAiMC4wMDM4NiwgMC4wMDM4NiwgMC4wMDM4NTYsIDAuMDAzODUyLCAwLjAwMzg1MiwgMC4wMDM4NSwgMC4wMDM4NSIsIFwKLSAgICAgICAgICAiMC4wMDM4NjEsIDAuMDAzODYxLCAwLjAwMzg1NywgMC4wMDM4NTQsIDAuMDAzODUyLCAwLjAwMzg1MSwgMC4wMDM4NTEiLCBcCi0gICAgICAgICAgIjAuMDAzODU3LCAwLjAwMzg1NywgMC4wMDM4NTMsIDAuMDAzODUsIDAuMDAzODQ4LCAwLjAwMzg0NywgMC4wMDM4NDciLCBcCi0gICAgICAgICAgIjAuMDAzODY5LCAwLjAwMzg2OSwgMC4wMDM4NjUsIDAuMDAzODYyLCAwLjAwMzg2LCAwLjAwMzg1OCwgMC4wMDM4NTgiLCBcCi0gICAgICAgICAgIjAuMDAzODc2LCAwLjAwMzg3NCwgMC4wMDM4NzIsIDAuMDAzODY5LCAwLjAwMzg2OCwgMC4wMDM4NjYsIDAuMDAzODY2Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IFRMQVRTUlgyICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChUTEFUU1JYMikgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjQ0Mjc1NTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBsYXRjaCAoUUlOVCxONSkgewotICAgIGRhdGFfaW4gOiAiRCI7Ci0gICAgZW5hYmxlIDogIihHIFJOKSI7Ci0gICAgcHJlc2V0IDogIighU04pIjsKLSAgfQotICBwaW4oRCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNTkwODU5OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDU4ODk1ODsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA1OTA4NTk7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjE2LCAwLjAwMDIyLCAwLjAwMDIyMSwgMC4wMDAyMjEsIDAuMDAwMjIxLCAwLjAwMDIyMiwgMC4wMDAyMjIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyMjksIDAuMDAwMjI3LCAwLjAwMDIyNywgMC4wMDAyMjcsIDAuMDAwMjI3LCAwLjAwMDIyNywgMC4wMDAyMjciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfZmFsbGluZzsKLSAgICAgIHdoZW4gOiAiUk4mU04iOwotICAgICAgc2RmX2NvbmQgOiAiUk5fRVFfMV9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAxODc1LCAtMC4wMDc1LCAwLjAwNSwgMC4wMTc1LCAwLjAyMzc1LCAwLjA0LCAwLjA0ODc1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLjAwNjI1LCAwLjAxMjUsIDAuMDI4NzUsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAuMDA2MjUsIDAuMDE2MjUsIDAuMDI1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDM3NSwgLTAuMDI1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMC4wMDM3NSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDYxMjUsIC0wLjA1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMDI1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wNzc1LCAtMC4wNjYyNSwgLTAuMDUzNzUsIC0wLjA0MTI1LCAtMC4wMjg3NSwgLTAuMDE4NzUsIC0wLjAxIiwgXAotICAgICAgICAgICItMC4wODYyNSwgLTAuMDc1LCAtMC4wNjI1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjAyNzUsIC0wLjAxODc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDQzNzUsIC0wLjAzMjUsIC0wLjAyNjI1LCAtMC4wMiwgLTAuMDIsIC0wLjAxLCAtMC4wMDc1IiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMjEyNSwgLTAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjA2MTI1LCAtMC4wNTYyNSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzNzUsIC0wLjAyNzUsIC0wLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDczNzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjA0LCAtMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDgsIC0wLjA3NSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNDYyNSwgLTAuMDQzNzUiLCBcCi0gICAgICAgICAgIi0wLjA5NjI1LCAtMC4wODUsIC0wLjA3ODc1LCAtMC4wNzI1LCAtMC4wNjYyNSwgLTAuMDU2MjUsIC0wLjA1Mzc1IiwgXAotICAgICAgICAgICItMC4xMDUsIC0wLjA5Mzc1LCAtMC4wODc1LCAtMC4wODEyNSwgLTAuMDc1LCAtMC4wNjUsIC0wLjA2MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX2ZhbGxpbmc7Ci0gICAgICB3aGVuIDogIlJOJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIlJOX0VRXzFfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzc1LCAwLjAyNjI1LCAwLjAxMzc1LCAwLjAwMTI1LCAtMC4wMDUsIC0wLjAyMTI1LCAtMC4wMyIsIFwKLSAgICAgICAgICAiMC4wNDg3NSwgMC4wMzc1LCAwLjAyNSwgMC4wMTI1LCAwLCAtMC4wMSwgLTAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMDYxMjUsIDAuMDUsIDAuMDMxMjUsIDAuMDI1LCAwLjAxMjUsIC0wLjAwMzc1LCAtMC4wMTI1IiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDU2MjUsIDAuMDQzNzUsIDAuMDMxMjUsIDAuMDI1LCAwLjAwODc1LCAwIiwgXAotICAgICAgICAgICIwLjA4LCAwLjA2ODc1LCAwLjA1NjI1LCAwLjA0Mzc1LCAwLjAzMTI1LCAwLjAyMTI1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMDk2MjUsIDAuMDg1LCAwLjA3MjUsIDAuMDYsIDAuMDQ3NSwgMC4wMzc1LCAwLjAyMjUiLCBcCi0gICAgICAgICAgIjAuMTA1LCAwLjA5Mzc1LCAwLjA4MTI1LCAwLjA2ODc1LCAwLjA1NjI1LCAwLjA0NjI1LCAwLjAzNzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjg3NSwgMC4wNTc1LCAwLjA0NSwgMC4wNDUsIDAuMDM4NzUsIDAuMDM1LCAwLjAzMjUiLCBcCi0gICAgICAgICAgIjAuMDczNzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNSwgMC4wNDM3NSwgMC4wNCwgMC4wMzc1IiwgXAotICAgICAgICAgICIwLjA4NjI1LCAwLjA3NSwgMC4wNjI1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDUyNSwgMC4wNSIsIFwKLSAgICAgICAgICAiMC4wOTI1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1ODc1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICIwLjA5ODc1LCAwLjA5Mzc1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNzUsIDAuMDY1LCAwLjA2MjUiLCBcCi0gICAgICAgICAgIjAuMTE1LCAwLjEwMzc1LCAwLjA5NzUsIDAuMDkxMjUsIDAuMDg1LCAwLjA4MTI1LCAwLjA3ODc1IiwgXAotICAgICAgICAgICIwLjEyMzc1LCAwLjExMjUsIDAuMTA2MjUsIDAuMSwgMC4wOTM3NSwgMC4wOSwgMC4wODc1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihHKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2MDM2NzM7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjAzNjczOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDQ5ODg2NjsKLSAgICBjbG9jayA6IHRydWU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyMjEsIDAuMDAyMTg2LCAwLjAwMjE3NiwgMC4wMDIxNzYsIDAuMDAyMTg2LCAwLjAwMjIwOSwgMC4wMDIyMzIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyNTcsIDAuMDAwMjU3LCAwLjAwMDI1NywgMC4wMDAyNTcsIDAuMDAwMjU3LCAwLjAwMDI1NywgMC4wMDAyNTciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQmU04iOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4yMDAzNCwgMC4yMDkxNDUsIDAuMjIxMDAzLCAwLjIzMjgzNCwgMC4yNDM4NDcsIDAuMjYwMDQyLCAwLjI3Mjk0MSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjUyMzY0MjsKLSAgICBmdW5jdGlvbiA6ICJRSU5UIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJEIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMjg5MzMsIDAuMjMxMTg4LCAwLjMxMjkyOCwgMC40MTQ5OSwgMC41MTc0MDUsIDAuNjE5NzIsIDAuNzIxOTAxIiwgXAotICAgICAgICAgICIwLjEzNzkwMywgMC4yNDAwOTQsIDAuMzIxNzg2LCAwLjQyNDA4MSwgMC41MjYzMDUsIDAuNjI4NjAyLCAwLjczMDYzMyIsIFwKLSAgICAgICAgICAiMC4xNDg2NjcsIDAuMjUwOTQyLCAwLjMzMjY4MywgMC40MzQ4NjksIDAuNTM3MTI3LCAwLjYzOTQ1NiwgMC43NDE2OTQiLCBcCi0gICAgICAgICAgIjAuMTU5MDg2LCAwLjI2MTMzNiwgMC4zNDMwNzQsIDAuNDQ1Mzk0LCAwLjU0NzUyOSwgMC42NDk4NDQsIDAuNzUxOTkzIiwgXAotICAgICAgICAgICIwLjE2ODk0MywgMC4yNzEyMiwgMC4zNTI4NTksIDAuNDU1MTA0LCAwLjU1NzMxMywgMC42NTk2MjQsIDAuNzYyMDcxIiwgXAotICAgICAgICAgICIwLjE4MzYyNiwgMC4yODU3NDUsIDAuMzY3NTUzLCAwLjQ2OTc3MiwgMC41NzIwMzMsIDAuNjc0Mzg2LCAwLjc3NjY1IiwgXAotICAgICAgICAgICIwLjE5NTIyLCAwLjI5NzM4MywgMC4zNzkxNTgsIDAuNDgxNDcxLCAwLjU4MzY2MSwgMC42ODU5NTMsIDAuNzg4MTI1Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0ODMzNCwgMC4yNTgxNzEsIDAuNDI2NTczLCAwLjYzNjg4MiwgMC44NDUyNTIsIDEuMDU2MSwgMS4yNjkwMyIsIFwKLSAgICAgICAgICAiMC4wNDgzNjgsIDAuMjU4MTA4LCAwLjQyNTkxNywgMC42MzU4NCwgMC44NDUyNTQsIDEuMDU4NDQsIDEuMjY1MjYiLCBcCi0gICAgICAgICAgIjAuMDQ4MjUsIDAuMjU4MTU1LCAwLjQyNjUzOSwgMC42MzczMDksIDAuODQ2NTQ3LCAxLjA1ODQzLCAxLjI2ODkiLCBcCi0gICAgICAgICAgIjAuMDQ4MjQ4LCAwLjI1ODE2NiwgMC40MjY1NjksIDAuNjM2MTg0LCAwLjg0NjA1MiwgMS4wNTg0NSwgMS4yNjcyNSIsIFwKLSAgICAgICAgICAiMC4wNDg0MDUsIDAuMjU4MjE4LCAwLjQyNTY1OCwgMC42MzczMzYsIDAuODQ2NDk4LCAxLjA1NDg1LCAxLjI2NjI3IiwgXAotICAgICAgICAgICIwLjA0ODM2MiwgMC4yNTczNTcsIDAuNDI1OTA3LCAwLjYzNzMwNSwgMC44NDY1NDksIDEuMDU2MDksIDEuMjY4OTIiLCBcCi0gICAgICAgICAgIjAuMDQ4NDE4LCAwLjI1NzgxOCwgMC40MjU5NTIsIDAuNjM2MTQsIDAuODQ2MjE4LCAxLjA1ODMsIDEuMjY2OTQiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTU1OTU2LCAwLjI1OTY5LCAwLjM0Mjc5NiwgMC40NDY4MTksIDAuNTUwODM1LCAwLjY1NDkxOCwgMC43NTg5NzUiLCBcCi0gICAgICAgICAgIjAuMTY0NTI3LCAwLjI2ODMyMSwgMC4zNTE0MywgMC40NTU0NDksIDAuNTU5MjI2LCAwLjY2MzU5LCAwLjc2NzYxOSIsIFwKLSAgICAgICAgICAiMC4xNzQzMTUsIDAuMjc4MDg0LCAwLjM2MTE5MywgMC40NjUyMTcsIDAuNTY5MjQyLCAwLjY3MzE0OCwgMC43NzczNzQiLCBcCi0gICAgICAgICAgIjAuMTgzNjYsIDAuMjg3NDE4LCAwLjM3MDUxNywgMC40NzQ1MjksIDAuNTc4NDI3LCAwLjY4MjIxNSwgMC43ODYxNjkiLCBcCi0gICAgICAgICAgIjAuMTkyNTYyLCAwLjI5NjMxNywgMC4zNzk0MDEsIDAuNDgzNDMyLCAwLjU4NzMyMywgMC42OTExNDYsIDAuNzk1MDY3IiwgXAotICAgICAgICAgICIwLjIwNTM2NCwgMC4zMDkxMDQsIDAuMzkyMjA5LCAwLjQ5NjI4NywgMC42MDAwODIsIDAuNzA0Mzk3LCAwLjgwNzkwNyIsIFwKLSAgICAgICAgICAiMC4yMTUyNDYsIDAuMzE5MDAxLCAwLjQwMjEwOCwgMC41MDYwMTEsIDAuNjEwMjQxLCAwLjcxNDI2NiwgMC44MTgyOTciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQ4ODEzLCAwLjI1NzUyNiwgMC40MjYzMjMsIDAuNjM2ODI0LCAwLjg0NzI4MywgMS4wNTc5MiwgMS4yNjg1IiwgXAotICAgICAgICAgICIwLjA0ODc0OCwgMC4yNTc1MSwgMC40MjYzMjYsIDAuNjM2ODE0LCAwLjg0NTkyLCAxLjA1ODEsIDEuMjY4NTQiLCBcCi0gICAgICAgICAgIjAuMDQ4ODA1LCAwLjI1NzU4OCwgMC40MjYzMjEsIDAuNjM2ODI3LCAwLjg0NzMwOSwgMS4wNTc1NiwgMS4yNjg1MSIsIFwKLSAgICAgICAgICAiMC4wNDg3NTgsIDAuMjU3NTg5LCAwLjQyNjI2NywgMC42MzY3ODMsIDAuODQ2Mjk1LCAxLjA1NDI1LCAxLjI2NDIyIiwgXAotICAgICAgICAgICIwLjA0ODc1NiwgMC4yNTc0ODMsIDAuNDI1ODgsIDAuNjM2NzgsIDAuODQ2MzEsIDEuMDU1ODgsIDEuMjY0MjIiLCBcCi0gICAgICAgICAgIjAuMDQ4NjQ5LCAwLjI1NzY1OCwgMC40MjYyNzIsIDAuNjM2OTk1LCAwLjg0NjM4MSwgMS4wNTgxNCwgMS4yNjY0NSIsIFwKLSAgICAgICAgICAiMC4wNDg2NjgsIDAuMjU3Njg2LCAwLjQyNjI4NywgMC42MzYxNDQsIDAuODQ3NTk2LCAxLjA1ODAyLCAxLjI2ODUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBub25fdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJpc2luZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xODc5MDksIDAuMjkwMTM5LCAwLjM3MTgyOSwgMC40NzQwOTYsIDAuNTc2MzMzLCAwLjY3ODYyMSwgMC43ODA4MjUiLCBcCi0gICAgICAgICAgIjAuMTk2ODA2LCAwLjI5OTA4MiwgMC4zODA3MzksIDAuNDgyOTU5LCAwLjU4NTIzNSwgMC42ODc1MjgsIDAuNzg5NzgiLCBcCi0gICAgICAgICAgIjAuMjA4NzkzLCAwLjMxMTA3MSwgMC4zOTI3MzYsIDAuNDk1MDI2LCAwLjU5NzI0OSwgMC42OTk1MjcsIDAuODAxODA0IiwgXAotICAgICAgICAgICIwLjIyMDYxMiwgMC4zMjI3MzcsIDAuNDA0NTM5LCAwLjUwNjc2LCAwLjYwOTA0NSwgMC43MTEzMjcsIDAuODEzNDk0IiwgXAotICAgICAgICAgICIwLjIzMTYzOCwgMC4zMzM4OTksIDAuNDE1NTUyLCAwLjUxNzg0MiwgMC42MjAwNjYsIDAuNzIyMzQ0LCAwLjgyNDYyNyIsIFwKLSAgICAgICAgICAiMC4yNDcyMzksIDAuMzQ5NDA1LCAwLjQzMTE3OSwgMC41MzM0LCAwLjYzNTY3LCAwLjczNzk3MywgMC44NDAyMTIiLCBcCi0gICAgICAgICAgIjAuMjU5MTc3LCAwLjM2MTMzMiwgMC40NDMxMDYsIDAuNTQ1MzE5LCAwLjY0NzU2OSwgMC43NDk4MTQsIDAuODUyMzA5Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0ODM2NCwgMC4yNTgxNjcsIDAuNDI1OTMyLCAwLjYzNjA1NiwgMC44NDYwMzYsIDEuMDU4MzksIDEuMjY4NzkiLCBcCi0gICAgICAgICAgIjAuMDQ4Mzg3LCAwLjI1ODE3MiwgMC40MjY1MzgsIDAuNjM3MzA2LCAwLjg0NjcwMSwgMS4wNTgzNiwgMS4yNjg4NSIsIFwKLSAgICAgICAgICAiMC4wNDgzNzUsIDAuMjU4MTc2LCAwLjQyNTk1MiwgMC42MzU4NjksIDAuODQ2MjAxLCAxLjA1ODM3LCAxLjI2ODkiLCBcCi0gICAgICAgICAgIjAuMDQ4NDg5LCAwLjI1Nzc1MSwgMC40MjU5NCwgMC42MzcyOTksIDAuODQ2MDg3LCAxLjA1ODM3LCAxLjI2Njk5IiwgXAotICAgICAgICAgICIwLjA0ODMxOCwgMC4yNTgyNCwgMC40MjU5NTcsIDAuNjM1ODgsIDAuODQ2MjE4LCAxLjA1ODM2LCAxLjI2ODg5IiwgXAotICAgICAgICAgICIwLjA0ODMyLCAwLjI1Nzg1NiwgMC40MjU5MzEsIDAuNjM3MzAzLCAwLjg0NjYzLCAxLjA1ODM3LCAxLjI2ODgzIiwgXAotICAgICAgICAgICIwLjA0ODM0MywgMC4yNTc4ODQsIDAuNDI2NTQxLCAwLjYzNzMwMywgMC44NDY1NDYsIDEuMDU2ODgsIDEuMjY2MTkiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjAwMzQsIDAuMzA0MDk5LCAwLjM4NzIwNSwgMC40OTEyMTksIDAuNTk1MDg3LCAwLjY5OTM5NiwgMC44MDMxNTMiLCBcCi0gICAgICAgICAgIjAuMjA5MTQ1LCAwLjMxMjk2NiwgMC4zOTYwNTcsIDAuNTAwMTM0LCAwLjYwMzkzOSwgMC43MDgyNDEsIDAuODExNzg2IiwgXAotICAgICAgICAgICIwLjIyMTAwMywgMC4zMjQ4MzksIDAuNDA3OTEyLCAwLjUxMTkwNSwgMC42MTU5OTgsIDAuNzE5NzQ1LCAwLjgyNDE1OCIsIFwKLSAgICAgICAgICAiMC4yMzI4MzQsIDAuMzM2NTk2LCAwLjQxOTcwMywgMC41MjM3MTcsIDAuNjI3NTg0LCAwLjczMTg5NCwgMC44MzU2NTciLCBcCi0gICAgICAgICAgIjAuMjQzODQ3LCAwLjM0NzY2NywgMC40MzA3NTgsIDAuNTM0NjY5LCAwLjYzODgyMywgMC43NDI1NjcsIDAuODQ2Njc3IiwgXAotICAgICAgICAgICIwLjI2MDA0MiwgMC4zNjM4NzgsIDAuNDQ2OTUxLCAwLjU1MDg3MywgMC42NTUwMjcsIDAuNzU4NzgyLCAwLjg2MzE0MyIsIFwKLSAgICAgICAgICAiMC4yNzI5NDEsIDAuMzc2NjQ3LCAwLjQ1OTc0NywgMC41NjM3NjcsIDAuNjY3NjQsIDAuNzcxNDcyLCAwLjg3NTcyMyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDg2MjMsIDAuMjU3NjQ4LCAwLjQyNjM2MSwgMC42MzY4MjQsIDAuODQ2NDQ0LCAxLjA1ODI0LCAxLjI2ODAzIiwgXAotICAgICAgICAgICIwLjA0ODY5MSwgMC4yNTc2NTQsIDAuNDI2Mjc1LCAwLjYzNzAwMywgMC44NDYzNTksIDEuMDU4MTIsIDEuMjY2NCIsIFwKLSAgICAgICAgICAiMC4wNDg2ODYsIDAuMjU3NzU0LCAwLjQyNjI3LCAwLjYzNjcxNCwgMC44NDczODIsIDEuMDU2NzgsIDEuMjY4NzIiLCBcCi0gICAgICAgICAgIjAuMDQ4NjE1LCAwLjI1NzYxNywgMC40MjYzNTEsIDAuNjM2ODA5LCAwLjg0NjQzMSwgMS4wNTgyMSwgMS4yNjgiLCBcCi0gICAgICAgICAgIjAuMDQ4NzI2LCAwLjI1NzY1NiwgMC40MjYyNzIsIDAuNjM1ODU0LCAwLjg0NzMsIDEuMDU1NzgsIDEuMjY3OTUiLCBcCi0gICAgICAgICAgIjAuMDQ4NzMyLCAwLjI1Nzc1MywgMC40MjYyNywgMC42MzYwNzcsIDAuODQ3MzMzLCAxLjA1NjEsIDEuMjY4NDkiLCBcCi0gICAgICAgICAgIjAuMDQ4NjIzLCAwLjI1NzY2NSwgMC40MjYzNDEsIDAuNjM2ODI2LCAwLjg0NjM4NywgMS4wNTU5OCwgMS4yNjgwMyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcmlzaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE5MTE4NiwgMC4yOTM0NCwgMC4zNzUxMTMsIDAuNDc3MzMzLCAwLjU3OTYwOCwgMC42ODE5MDUsIDAuNzg0MTQ4IiwgXAotICAgICAgICAgICIwLjE5OTkxNiwgMC4zMDIxOTcsIDAuMzgzODUsIDAuNDg2MDcsIDAuNTg4MzUsIDAuNjkwNjM2LCAwLjc5MjkiLCBcCi0gICAgICAgICAgIjAuMjEwNzg2LCAwLjMxMjksIDAuMzk0NjksIDAuNDk2OTQsIDAuNTk5MTk3LCAwLjcwMTQ3NywgMC44MDM2NDQiLCBcCi0gICAgICAgICAgIjAuMjIxMzI5LCAwLjMyMzQ3NiwgMC40MDUyNDksIDAuNTA3NDY5LCAwLjYwOTcxNCwgMC43MTE5NiwgMC44MTQyOSIsIFwKLSAgICAgICAgICAiMC4yMzE0MTYsIDAuMzMzNjcyLCAwLjQxNTM0NCwgMC41MTc1NjQsIDAuNjE5ODM3LCAwLjcyMjEzNywgMC44MjQzNzkiLCBcCi0gICAgICAgICAgIjAuMjQ1NjA3LCAwLjM0Nzg3OCwgMC40Mjk1NjIsIDAuNTMxODQ1LCAwLjYzNDA3LCAwLjczNjM1NCwgMC44Mzg1ODEiLCBcCi0gICAgICAgICAgIjAuMjU2NzYzLCAwLjM1OTAyNSwgMC40NDA2ODQsIDAuNTQyOTA0LCAwLjY0NTE3NywgMC43NDc0NzIsIDAuODQ5NzI3Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0ODM3MSwgMC4yNTgxNzQsIDAuNDI1OTMyLCAwLjYzNzMwMywgMC44NDY2NzEsIDEuMDU4MzgsIDEuMjY4ODUiLCBcCi0gICAgICAgICAgIjAuMDQ4NDA5LCAwLjI1ODE5MSwgMC40MjU5MjQsIDAuNjM3MzA0LCAwLjg0NjIxNCwgMS4wNTgzNywgMS4yNjg4NiIsIFwKLSAgICAgICAgICAiMC4wNDgzNDUsIDAuMjU3OTA1LCAwLjQyNTkzNCwgMC42MzU4MywgMC44NDYxMjQsIDEuMDU4MzYsIDEuMjY4MTkiLCBcCi0gICAgICAgICAgIjAuMDQ4MzUzLCAwLjI1Nzg4NiwgMC40MjY1NDEsIDAuNjM3MzE1LCAwLjg0NjUzNiwgMS4wNTY4NiwgMS4yNjg4NiIsIFwKLSAgICAgICAgICAiMC4wNDgzNzIsIDAuMjU4MTcsIDAuNDI1OTMxLCAwLjYzNzMwMywgMC44NDY2NTIsIDEuMDU4MzgsIDEuMjY4ODQiLCBcCi0gICAgICAgICAgIjAuMDQ4NDE0LCAwLjI1ODE2NywgMC40MjU5NDQsIDAuNjM1OTI1LCAwLjg0NjE4OSwgMS4wNTgzNiwgMS4yNjg3OSIsIFwKLSAgICAgICAgICAiMC4wNDgzNywgMC4yNTgxNjMsIDAuNDI1OTI3LCAwLjYzNzMwMiwgMC44NDY2ODUsIDEuMDU4MzUsIDEuMjY4ODQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUk4iOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGZhbGxpbmdfZWRnZTsKLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTk5Mjk1LCAwLjMwMzAzNywgMC4zODYxNDcsIDAuNDkwMTY3LCAwLjU5Mzk2MywgMC42OTgxODEsIDAuODAyMjA2IiwgXAotICAgICAgICAgICIwLjIwODkzOCwgMC4zMTI2NzMsIDAuMzk1NzY3LCAwLjQ5OTc5NywgMC42MDM2NTUsIDAuNzA3NDgsIDAuODExODM5IiwgXAotICAgICAgICAgICIwLjIyMTIzOCwgMC4zMjQ5ODYsIDAuNDA4MDg3LCAwLjUxMjA5NCwgMC42MTU5MzEsIDAuNzIwMTIzLCAwLjgyNDE1NSIsIFwKLSAgICAgICAgICAiMC4yMzI2NTYsIDAuMzM2NDU2LCAwLjQxOTU2MiwgMC41MjM0NDUsIDAuNjI3NTk2LCAwLjczMTIyOSwgMC44MzU2NDEiLCBcCi0gICAgICAgICAgIjAuMjQyNzQ4LCAwLjM0NjQ4MSwgMC40Mjk1OCwgMC41MzM2NDEsIDAuNjM3NDUxLCAwLjc0MTMzOSwgMC44NDU2MzQiLCBcCi0gICAgICAgICAgIjAuMjU3OTIxLCAwLjM2MTY2NiwgMC40NDQ3NzMsIDAuNTQ4Nzk3LCAwLjY1MjY1NywgMC43NTY2NjIsIDAuODYwODM2IiwgXAotICAgICAgICAgICIwLjI3MDA4MSwgMC4zNzM4OTEsIDAuNDU3MDAxLCAwLjU2MTAxNCwgMC42NjQ4NzYsIDAuNzY5MDk4LCAwLjg3MzA1NyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDg3ODQsIDAuMjU3NjMzLCAwLjQyNjM2MiwgMC42MzY4MjQsIDAuODQ3NDcxLCAxLjA1Nzc4LCAxLjI2ODYzIiwgXAotICAgICAgICAgICIwLjA0ODc1NCwgMC4yNTc2NjgsIDAuNDI2MzE3LCAwLjYzNjgzMSwgMC44NDc0NiwgMS4wNTgxOCwgMS4yNjg0MyIsIFwKLSAgICAgICAgICAiMC4wNDg4MTQsIDAuMjU3NjY2LCAwLjQyNjMyNSwgMC42MzY4MjYsIDAuODQ1ODcxLCAxLjA1Nzc1LCAxLjI2ODUxIiwgXAotICAgICAgICAgICIwLjA0ODgwOSwgMC4yNTc2MDUsIDAuNDI2MzUxLCAwLjYzNjg2NiwgMC44NDczMzksIDEuMDU3NzksIDEuMjY4NjIiLCBcCi0gICAgICAgICAgIjAuMDQ4NzM2LCAwLjI1Nzc1LCAwLjQyNjMxNiwgMC42MzcwMzEsIDAuODQ3Mjg5LCAxLjA1NzgxLCAxLjI2ODQyIiwgXAotICAgICAgICAgICIwLjA0ODc5MywgMC4yNTc3MTIsIDAuNDI2MzE2LCAwLjYzNjgyNiwgMC44NDY0MDcsIDEuMDU4MjEsIDEuMjY4NDMiLCBcCi0gICAgICAgICAgIjAuMDQ4NzA1LCAwLjI1NzYzLCAwLjQyNjMzOCwgMC42MzY4MDUsIDAuODQ2NDA5LCAxLjA1ODIyLCAxLjI2ODM2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiBwcmVzZXQ7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3NzYzOSwgMC4xNzk4NTgsIDAuMjYxNTEsIDAuMzYzNzQ2LCAwLjQ2NjAwNCwgMC41NjgxOSwgMC42NzA0MzYiLCBcCi0gICAgICAgICAgIjAuMDg3NjA1LCAwLjE4OTgxMywgMC4yNzE1MDYsIDAuMzczNywgMC40NzU5NDEsIDAuNTc4MTY0LCAwLjY4MDQ0NyIsIFwKLSAgICAgICAgICAiMC4xMDAwMDksIDAuMjAyMjAzLCAwLjI4MzkwMSwgMC4zODYxMTgsIDAuNDg4MzIxLCAwLjU5MDU3MSwgMC42OTI5MDciLCBcCi0gICAgICAgICAgIjAuMTEyMjUsIDAuMjE0NDY5LCAwLjI5NjE3MSwgMC4zOTgzNTUsIDAuNTAwNTk2LCAwLjYwMjgyMiwgMC43MDUyMTEiLCBcCi0gICAgICAgICAgIjAuMTIzNDYxLCAwLjIyNTU1NiwgMC4zMDczMDEsIDAuNDA5NTM1LCAwLjUxMTgsIDAuNjE0MDA0LCAwLjcxNjMiLCBcCi0gICAgICAgICAgIjAuMTM4OTY3LCAwLjI0MTAzLCAwLjMyMjc2OCwgMC40MjQ5NzEsIDAuNTI3MjkzLCAwLjYyOTYwOCwgMC43MzE5MDYiLCBcCi0gICAgICAgICAgIjAuMTUwNjc1LCAwLjI1MjY1MiwgMC4zMzQzOSwgMC40MzY3MTcsIDAuNTM4OTUsIDAuNjQxMjQzLCAwLjc0MzUzIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0ODQyNCwgMC4yNTgxOSwgMC40MjY1NDksIDAuNjM3MjI5LCAwLjg0NzYsIDEuMDU3ODIsIDEuMjY2NzYiLCBcCi0gICAgICAgICAgIjAuMDQ4NDQ5LCAwLjI1ODE3MiwgMC40MjY1NjUsIDAuNjM2OTQ4LCAwLjg0NzQzNSwgMS4wNTgxOCwgMS4yNjgyMiIsIFwKLSAgICAgICAgICAiMC4wNDg0MjUsIDAuMjU4MSwgMC40MjYxMzgsIDAuNjM3MjA0LCAwLjg0NzQ2NiwgMS4wNTYwMiwgMS4yNjgxOSIsIFwKLSAgICAgICAgICAiMC4wNDg0NjcsIDAuMjU4MTU0LCAwLjQyNjUzMSwgMC42MzcxNDMsIDAuODQ3MzU0LCAxLjA1Njc4LCAxLjI2ODc2IiwgXAotICAgICAgICAgICIwLjA0ODQ2OCwgMC4yNTgxNTgsIDAuNDI2NTgzLCAwLjYzNzIyMiwgMC44NDc1NTksIDEuMDU2ODIsIDEuMjY4MyIsIFwKLSAgICAgICAgICAiMC4wNDg1MDgsIDAuMjU4MTk0LCAwLjQyNjY3MywgMC42MzcwMzIsIDAuODQ3NTI4LCAxLjA1NzQ4LCAxLjI2ODQzIiwgXAotICAgICAgICAgICIwLjA0ODY2NywgMC4yNTgwOSwgMC40MjYwMDgsIDAuNjM3MTI3LCAwLjg0NzM3MiwgMS4wNTc4MywgMS4yNjgzNiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDUxMjYsIDAuMjA4OTMyLCAwLjI5MjA1NSwgMC4zOTYwNzcsIDAuNDk5OTE4LCAwLjYwNDI0NSwgMC43MDc2NzUiLCBcCi0gICAgICAgICAgIjAuMTEzNjcxLCAwLjIxNzQyMywgMC4zMDA1MDgsIDAuNDA0NTMxLCAwLjUwODM3MiwgMC42MTI2OTYsIDAuNzE2NzQ3IiwgXAotICAgICAgICAgICIwLjEyNDIyOSwgMC4yMjc5ODYsIDAuMzExMTAzLCAwLjQxNTEyNywgMC41MTg5NDMsIDAuNjIyODEsIDAuNzI3MDU2IiwgXAotICAgICAgICAgICIwLjEzNDk4LCAwLjIzODY5NywgMC4zMjE4MTksIDAuNDI1OCwgMC41Mjk2MTcsIDAuNjMzNTQxLCAwLjczNzQ4MiIsIFwKLSAgICAgICAgICAiMC4xNDUyMjgsIDAuMjQ5MDA3LCAwLjMzMjExMiwgMC40MzYwOTYsIDAuNTQwMTk2LCAwLjY0Mzk0OSwgMC43NDgyOTMiLCBcCi0gICAgICAgICAgIjAuMTYwOTgyLCAwLjI2NDcyMiwgMC4zNDc3NzQsIDAuNDUxODAyLCAwLjU1NTg1NiwgMC42NTkyODksIDAuNzYzNzA4IiwgXAotICAgICAgICAgICIwLjE3MzM2OSwgMC4yNzcwNzYsIDAuMzYwMTQ4LCAwLjQ2NDEzOCwgMC41Njc5OTcsIDAuNjcyMjUyLCAwLjc3NTc5MSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDg3NTMsIDAuMjU3NjY3LCAwLjQyNjMzMiwgMC42MzY4NCwgMC44NDU1NDgsIDEuMDU4MTgsIDEuMjY4MDIiLCBcCi0gICAgICAgICAgIjAuMDQ4NzU5LCAwLjI1Nzc3LCAwLjQyNjMxNywgMC42MzcwNDQsIDAuODQ3MzE5LCAxLjA1ODE1LCAxLjI2ODY4IiwgXAotICAgICAgICAgICIwLjA0ODc4MywgMC4yNTc2ODUsIDAuNDI2MzIzLCAwLjYzNjkxNywgMC44NDc0OCwgMS4wNTc5OSwgMS4yNjg1MSIsIFwKLSAgICAgICAgICAiMC4wNDg3NzYsIDAuMjU3NzY3LCAwLjQyNjM1MiwgMC42MzY5NzYsIDAuODQ2MzY2LCAxLjA1ODExLCAxLjI2NTkzIiwgXAotICAgICAgICAgICIwLjA0ODY2NiwgMC4yNTc3NDgsIDAuNDI2MjkzLCAwLjYzNjc5MSwgMC44NDczNjksIDEuMDU4MjEsIDEuMjY4NDgiLCBcCi0gICAgICAgICAgIjAuMDQ4NzM5LCAwLjI1Nzc3OSwgMC40MjYzMDEsIDAuNjM2ODIsIDAuODQ3MzgsIDEuMDU4MjEsIDEuMjY4IiwgXAotICAgICAgICAgICIwLjA0ODg5NiwgMC4yNTc3NDUsIDAuNDI2Mjc3LCAwLjYzNzAzLCAwLjg0NjMwNSwgMS4wNTgxOCwgMS4yNjY3OSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkQiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDU1LCAwLjAwNDYxMywgMC4wMDQ2MiwgMC4wMDQ2MjQsIDAuMDA0NjIzLCAwLjAwNDYyNywgMC4wMDQ2MjkiLCBcCi0gICAgICAgICAgIjAuMDA0NTQsIDAuMDA0NjAyLCAwLjAwNDYxLCAwLjAwNDYxNCwgMC4wMDQ2MTYsIDAuMDA0NjE2LCAwLjAwNDYxOCIsIFwKLSAgICAgICAgICAiMC4wMDQ1MzMsIDAuMDA0NTk2LCAwLjAwNDYwNiwgMC4wMDQ2MDcsIDAuMDA0NjA5LCAwLjAwNDYwOCwgMC4wMDQ2MTYiLCBcCi0gICAgICAgICAgIjAuMDA0NTI2LCAwLjAwNDU5MSwgMC4wMDQ1OTUsIDAuMDA0NjAxLCAwLjAwNDYwMywgMC4wMDQ2MDUsIDAuMDA0NjA2IiwgXAotICAgICAgICAgICIwLjAwNDUyMSwgMC4wMDQ1ODUsIDAuMDA0NTk0LCAwLjAwNDU5OCwgMC4wMDQ2LCAwLjAwNDU5OSwgMC4wMDQ2MDIiLCBcCi0gICAgICAgICAgIjAuMDA0NTE5LCAwLjAwNDU4MywgMC4wMDQ1OTEsIDAuMDA0NTk2LCAwLjAwNDU5OCwgMC4wMDQ1OTksIDAuMDA0NjAxIiwgXAotICAgICAgICAgICIwLjAwNDUxOCwgMC4wMDQ1ODMsIDAuMDA0NTkyLCAwLjAwNDU5NiwgMC4wMDQ1OTgsIDAuMDA0NiwgMC4wMDQ2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1MDExLCAwLjAwNTA3LCAwLjAwNTA3NCwgMC4wMDUwNzgsIDAuMDA1MDgyLCAwLjAwNTA4MSwgMC4wMDUwODQiLCBcCi0gICAgICAgICAgIjAuMDA1MDA0LCAwLjAwNTA1OSwgMC4wMDUwNjgsIDAuMDA1MDcyLCAwLjAwNTA3MiwgMC4wMDUwNzUsIDAuMDA1MDc3IiwgXAotICAgICAgICAgICIwLjAwNDk5OSwgMC4wMDUwNTcsIDAuMDA1MDYyLCAwLjAwNTA2NiwgMC4wMDUwNjgsIDAuMDA1MDY5LCAwLjAwNTA3IiwgXAotICAgICAgICAgICIwLjAwNDk5NywgMC4wMDUwNTMsIDAuMDA1MDYxLCAwLjAwNTA2NCwgMC4wMDUwNjYsIDAuMDA1MDY3LCAwLjAwNTA2OCIsIFwKLSAgICAgICAgICAiMC4wMDQ5OTcsIDAuMDA1MDUzLCAwLjAwNTA2LCAwLjAwNTA2NCwgMC4wMDUwNjYsIDAuMDA1MDY3LCAwLjAwNTA2OCIsIFwKLSAgICAgICAgICAiMC4wMDQ5OTIsIDAuMDA1MDQ4LCAwLjAwNTA1MywgMC4wMDUwNTksIDAuMDA1MDYxLCAwLjAwNTA2MiwgMC4wMDUwNjMiLCBcCi0gICAgICAgICAgIjAuMDA0OTg5LCAwLjAwNTA0NSwgMC4wMDUwNTMsIDAuMDA1MDU1LCAwLjAwNTA1OSwgMC4wMDUwNTksIDAuMDA1MDYxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1NjE5LCAwLjAwNTY4MiwgMC4wMDU2ODksIDAuMDA1NjkzLCAwLjAwNTY5NSwgMC4wMDU2OTYsIDAuMDA1Njk3IiwgXAotICAgICAgICAgICIwLjAwNTYwOSwgMC4wMDU2NzEsIDAuMDA1Njc4LCAwLjAwNTY4MywgMC4wMDU2ODQsIDAuMDA1Njg0LCAwLjAwNTY4NiIsIFwKLSAgICAgICAgICAiMC4wMDU2MDYsIDAuMDA1NjY4LCAwLjAwNTY3NSwgMC4wMDU2NzksIDAuMDA1NjgxLCAwLjAwNTY4MiwgMC4wMDU2ODMiLCBcCi0gICAgICAgICAgIjAuMDA1NjA4LCAwLjAwNTY3MSwgMC4wMDU2NzgsIDAuMDA1NjgyLCAwLjAwNTY4NCwgMC4wMDU2ODUsIDAuMDA1Njg2IiwgXAotICAgICAgICAgICIwLjAwNTYxNywgMC4wMDU2NzksIDAuMDA1Njg3LCAwLjAwNTY5MSwgMC4wMDU2OTMsIDAuMDA1Njk0LCAwLjAwNTY5NSIsIFwKLSAgICAgICAgICAiMC4wMDU2MjYsIDAuMDA1Njg5LCAwLjAwNTY5NiwgMC4wMDU3LCAwLjAwNTcwMiwgMC4wMDU3MDMsIDAuMDA1NzAzIiwgXAotICAgICAgICAgICIwLjAwNTYyOCwgMC4wMDU2OSwgMC4wMDU2OTgsIDAuMDA1NzAyLCAwLjAwNTcwMywgMC4wMDU3MDUsIDAuMDA1NzA2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1OTM4LCAwLjAwNTk5MywgMC4wMDYsIDAuMDA2MDA0LCAwLjAwNjAwNSwgMC4wMDYwMDcsIDAuMDA2MDA3IiwgXAotICAgICAgICAgICIwLjAwNTkyMiwgMC4wMDU5NzcsIDAuMDA1OTg0LCAwLjAwNTk4NiwgMC4wMDU5OSwgMC4wMDU5OTEsIDAuMDA1OTkyIiwgXAotICAgICAgICAgICIwLjAwNTkxOCwgMC4wMDU5NzYsIDAuMDA1OTgxLCAwLjAwNTk4MiwgMC4wMDU5ODYsIDAuMDA1OTg3LCAwLjAwNTk4NSIsIFwKLSAgICAgICAgICAiMC4wMDU5MjEsIDAuMDA1OTc1LCAwLjAwNTk4MiwgMC4wMDU5ODYsIDAuMDA1OTg4LCAwLjAwNTk5LCAwLjAwNTk5IiwgXAotICAgICAgICAgICIwLjAwNTkzLCAwLjAwNTk4NSwgMC4wMDU5OTMsIDAuMDA1OTk5LCAwLjAwNTk5OCwgMC4wMDU5OTksIDAuMDA2MDAyIiwgXAotICAgICAgICAgICIwLjAwNTkzOSwgMC4wMDU5OTUsIDAuMDA2MDAyLCAwLjAwNjAwOCwgMC4wMDYwMDcsIDAuMDA2MDA4LCAwLjAwNjAwNyIsIFwKLSAgICAgICAgICAiMC4wMDU5NDYsIDAuMDA2MDAxLCAwLjAwNjAwOCwgMC4wMDYwMTEsIDAuMDA2MDExLCAwLjAwNjAxNCwgMC4wMDYwMTUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1NTA5LCAwLjAwNTU3MiwgMC4wMDU1NzksIDAuMDA1NTg0LCAwLjAwNTU4NSwgMC4wMDU1ODUsIDAuMDA1NTg2IiwgXAotICAgICAgICAgICIwLjAwNTQ5OSwgMC4wMDU1NjEsIDAuMDA1NTY5LCAwLjAwNTU3MiwgMC4wMDU1NzUsIDAuMDA1NTc1LCAwLjAwNTU3NiIsIFwKLSAgICAgICAgICAiMC4wMDU0OTIsIDAuMDA1NTU0LCAwLjAwNTU2MiwgMC4wMDU1NjUsIDAuMDA1NTY3LCAwLjAwNTU2OCwgMC4wMDU1NjkiLCBcCi0gICAgICAgICAgIjAuMDA1NDg3LCAwLjAwNTU1LCAwLjAwNTU1NywgMC4wMDU1NjEsIDAuMDA1NTY0LCAwLjAwNTU2NCwgMC4wMDU1NjUiLCBcCi0gICAgICAgICAgIjAuMDA1NDksIDAuMDA1NTUzLCAwLjAwNTU2LCAwLjAwNTU2NiwgMC4wMDU1NjcsIDAuMDA1NTY2LCAwLjAwNTU2NyIsIFwKLSAgICAgICAgICAiMC4wMDU0OTEsIDAuMDA1NTUyLCAwLjAwNTU2LCAwLjAwNTU2NCwgMC4wMDU1NjUsIDAuMDA1NTY3LCAwLjAwNTU2OCIsIFwKLSAgICAgICAgICAiMC4wMDU0ODcsIDAuMDA1NTQ5LCAwLjAwNTU1NiwgMC4wMDU1NiwgMC4wMDU1NjMsIDAuMDA1NTYyLCAwLjAwNTU2NCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjc4NiwgMC4wMDY4NCwgMC4wMDY4NDcsIDAuMDA2ODUsIDAuMDA2ODUyLCAwLjAwNjg1MiwgMC4wMDY4NTMiLCBcCi0gICAgICAgICAgIjAuMDA2NzcyLCAwLjAwNjgyNywgMC4wMDY4MzQsIDAuMDA2ODM3LCAwLjAwNjgzOSwgMC4wMDY4MzksIDAuMDA2ODQiLCBcCi0gICAgICAgICAgIjAuMDA2NzY5LCAwLjAwNjgyNCwgMC4wMDY4MzEsIDAuMDA2ODMyLCAwLjAwNjgzNSwgMC4wMDY4MzksIDAuMDA2ODM2IiwgXAotICAgICAgICAgICIwLjAwNjc2NywgMC4wMDY4MjMsIDAuMDA2ODI5LCAwLjAwNjgzMywgMC4wMDY4MzQsIDAuMDA2ODM2LCAwLjAwNjgzNiIsIFwKLSAgICAgICAgICAiMC4wMDY3NjksIDAuMDA2ODI0LCAwLjAwNjgzMSwgMC4wMDY4MzcsIDAuMDA2ODM2LCAwLjAwNjgzNywgMC4wMDY4MzQiLCBcCi0gICAgICAgICAgIjAuMDA2NzgyLCAwLjAwNjgzNiwgMC4wMDY4NDMsIDAuMDA2ODQ2LCAwLjAwNjg0OSwgMC4wMDY4NDgsIDAuMDA2ODQ4IiwgXAotICAgICAgICAgICIwLjAwNjc4NSwgMC4wMDY4MzksIDAuMDA2ODQ4LCAwLjAwNjg0OCwgMC4wMDY4NTEsIDAuMDA2ODU0LCAwLjAwNjg1MSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQ5OTksIDAuMDA1MDQ0LCAwLjAwNTA0OCwgMC4wMDUwNTEsIDAuMDA1MDUyLCAwLjAwNTA1NCwgMC4wMDUwNTQiLCBcCi0gICAgICAgICAgIjAuMDA0OTg1LCAwLjAwNTAzMiwgMC4wMDUwMzcsIDAuMDA1MDQyLCAwLjAwNTA0MiwgMC4wMDUwNDMsIDAuMDA1MDQzIiwgXAotICAgICAgICAgICIwLjAwNDk2NywgMC4wMDUwMTgsIDAuMDA1MDI1LCAwLjAwNTAyOCwgMC4wMDUwMzIsIDAuMDA1MDMsIDAuMDA1MDMxIiwgXAotICAgICAgICAgICIwLjAwNDk1MywgMC4wMDUwMDcsIDAuMDA1MDE1LCAwLjAwNTAxOSwgMC4wMDUwMjEsIDAuMDA1MDIyLCAwLjAwNTAyMiIsIFwKLSAgICAgICAgICAiMC4wMDQ5NTEsIDAuMDA1MDA1LCAwLjAwNTAxNCwgMC4wMDUwMTksIDAuMDA1MDIxLCAwLjAwNTAyMywgMC4wMDUwMjQiLCBcCi0gICAgICAgICAgIjAuMDA0OTQ4LCAwLjAwNTAwNiwgMC4wMDUwMTUsIDAuMDA1MDIxLCAwLjAwNTAyNCwgMC4wMDUwMjYsIDAuMDA1MDI3IiwgXAotICAgICAgICAgICIwLjAwNDk1NiwgMC4wMDUwMTQsIDAuMDA1MDIyLCAwLjAwNTAzLCAwLjAwNTAzMywgMC4wMDUwMzUsIDAuMDA1MDM3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzNjA5LCAwLjAwMzY1NywgMC4wMDM2NjIsIDAuMDAzNjY4LCAwLjAwMzY2OCwgMC4wMDM2NjgsIDAuMDAzNjciLCBcCi0gICAgICAgICAgIjAuMDAzNTg3LCAwLjAwMzYzOCwgMC4wMDM2NDMsIDAuMDAzNjQ2LCAwLjAwMzY0OCwgMC4wMDM2NDksIDAuMDAzNjUyIiwgXAotICAgICAgICAgICIwLjAwMzU3LCAwLjAwMzYyMywgMC4wMDM2MywgMC4wMDM2MzYsIDAuMDAzNjM0LCAwLjAwMzYzNSwgMC4wMDM2MzYiLCBcCi0gICAgICAgICAgIjAuMDAzNTc3LCAwLjAwMzYyOCwgMC4wMDM2MzUsIDAuMDAzNjM4LCAwLjAwMzYzOCwgMC4wMDM2NDQsIDAuMDAzNjQyIiwgXAotICAgICAgICAgICIwLjAwMzU2OSwgMC4wMDM2MjIsIDAuMDAzNjI5LCAwLjAwMzYzMiwgMC4wMDM2MzUsIDAuMDAzNjM2LCAwLjAwMzYzNiIsIFwKLSAgICAgICAgICAiMC4wMDM1NzUsIDAuMDAzNjI4LCAwLjAwMzYzNiwgMC4wMDM2NCwgMC4wMDM2NDIsIDAuMDAzNjQzLCAwLjAwMzY0NCIsIFwKLSAgICAgICAgICAiMC4wMDM1NywgMC4wMDM2MjcsIDAuMDAzNjM1LCAwLjAwMzY0LCAwLjAwMzY0MiwgMC4wMDM2NDQsIDAuMDAzNjQ1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihRTikgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjUyMjgxMzsKLSAgICBmdW5jdGlvbiA6ICJONSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTUzNDgyLCAwLjI2MDg3LCAwLjM0MjM1LCAwLjQ0NDEyMywgMC41NDU4OCwgMC42NDc2NjgsIDAuNzQ5NDUyIiwgXAotICAgICAgICAgICIwLjE2MjA3LCAwLjI2OTQ2NiwgMC4zNTA5NDcsIDAuNDUyNzE5LCAwLjU1NDQ4NiwgMC42NTYzMDgsIDAuNzU4MDU4IiwgXAotICAgICAgICAgICIwLjE3MTg0NCwgMC4yNzkyMzUsIDAuMzYwNzE0LCAwLjQ2MjQ4OCwgMC41NjQyNDgsIDAuNjY2MDQxLCAwLjc2NzgxOCIsIFwKLSAgICAgICAgICAiMC4xODExNTUsIDAuMjg4NTU0LCAwLjM3MDAyMiwgMC40NzE4MDMsIDAuNTczNTY1LCAwLjY3NTI1NSwgMC43NzcxMyIsIFwKLSAgICAgICAgICAiMC4xOTAwNCwgMC4yOTc0MzksIDAuMzc4OSwgMC40ODA2ODgsIDAuNTgyNDUzLCAwLjY4NDM1MiwgMC43ODYwMTEiLCBcCi0gICAgICAgICAgIjAuMjAyODM5LCAwLjMxMDI1NywgMC4zOTE3MjYsIDAuNDkzNTQ1LCAwLjU5NTI5OSwgMC42OTcxMTgsIDAuNzk4OTI2IiwgXAotICAgICAgICAgICIwLjIxMjc0MywgMC4zMjAxNjQsIDAuNDAxNjM4LCAwLjUwMzQyNCwgMC42MDUyNDksIDAuNzA2OTk2LCAwLjgwODc1MSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjU5NjEsIDAuMjYzOTU4LCAwLjQyOTYxNiwgMC42MzgzNywgMC44NDc5MDgsIDEuMDU4MDMsIDEuMjY4MTUiLCBcCi0gICAgICAgICAgIjAuMDY1OTY2LCAwLjI2Mzk1MiwgMC40Mjk2MTgsIDAuNjM4MzQzLCAwLjg0NjM2OSwgMS4wNTgxNCwgMS4yNjgxOCIsIFwKLSAgICAgICAgICAiMC4wNjU5MTUsIDAuMjYzOTY5LCAwLjQyOTYxLCAwLjYzODM3NSwgMC44NDc5NDksIDEuMDU3NDcsIDEuMjY4MTUiLCBcCi0gICAgICAgICAgIjAuMDY1OTY0LCAwLjI2NDA5MiwgMC40Mjk1NTgsIDAuNjM4MjgsIDAuODQ2Nzc3LCAxLjA1NDk2LCAxLjI2NDY0IiwgXAotICAgICAgICAgICIwLjA2NTk0NSwgMC4yNjM5NDcsIDAuNDI5MTc4LCAwLjYzODI4NiwgMC44NDY4MDQsIDEuMDU1NjcsIDEuMjY0NjQiLCBcCi0gICAgICAgICAgIjAuMDY1OTUsIDAuMjY0MDQxLCAwLjQyOTU3MiwgMC42Mzg1NDcsIDAuODQ2OTc1LCAxLjA1ODE4LCAxLjI2NTgzIiwgXAotICAgICAgICAgICIwLjA2NjE1NSwgMC4yNjQwODcsIDAuNDI5NjE0LCAwLjYzNzUzNCwgMC44NDgyMSwgMS4wNTgwOSwgMS4yNjgxNSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMjMzOTksIDAuMjI4NTI1LCAwLjMxMTM4MSwgMC40MTQ4NzYsIDAuNTE4NTYzLCAwLjYyMjEwMiwgMC43MjU1NTUiLCBcCi0gICAgICAgICAgIjAuMTMyMjgzLCAwLjIzNzQxNywgMC4zMjAyNzgsIDAuNDIzOTIzLCAwLjUyNzQ1NiwgMC42MzA5ODEsIDAuNzM0Mzk2IiwgXAotICAgICAgICAgICIwLjE0MzA5MywgMC4yNDgyMjgsIDAuMzMxMDg2LCAwLjQzNDY3MywgMC41MzgyNDIsIDAuNjQxNzk2LCAwLjc0NTMwNSIsIFwKLSAgICAgICAgICAiMC4xNTM1MDQsIDAuMjU4NjM4LCAwLjM0MTQ5NSwgMC40NDUyMDMsIDAuNTQ4NjYsIDAuNjUyMjAyLCAwLjc1NTcwMyIsIFwKLSAgICAgICAgICAiMC4xNjMzOTEsIDAuMjY4NTQ0LCAwLjM1MTQwOCwgMC40NTQ5ODgsIDAuNTU4NTAxLCAwLjY2MjExLCAwLjc2NTcxNyIsIFwKLSAgICAgICAgICAiMC4xNzgwOTgsIDAuMjgzMjUyLCAwLjM2NjExLCAwLjQ2OTY5MiwgMC41NzMyNTQsIDAuNjc2ODIzLCAwLjc4MDM1MSIsIFwKLSAgICAgICAgICAiMC4xODk3MDYsIDAuMjk0ODYyLCAwLjM3NzcyNywgMC40ODEzNzksIDAuNTg0ODgzLCAwLjY4ODQwOCwgMC43OTE5MzQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU1Nzk2LCAwLjI1OTI5NywgMC40MjYzNjQsIDAuNjM1NzQ0LCAwLjg0MzA5MSwgMS4wNTQwMywgMS4yNjYyIiwgXAotICAgICAgICAgICIwLjA1NTg2OSwgMC4yNTkyMDIsIDAuNDI1ODQ2LCAwLjYzNDczMSwgMC44NDMwOSwgMS4wNTYxOSwgMS4yNjI1OSIsIFwKLSAgICAgICAgICAiMC4wNTU3OCwgMC4yNTkyNzMsIDAuNDI2Mjk3LCAwLjYzNjIzMiwgMC44NDQ4OTIsIDEuMDU2MjIsIDEuMjY2MDkiLCBcCi0gICAgICAgICAgIjAuMDU1ODUzLCAwLjI1OTI5NywgMC40MjYzNSwgMC42MzUxNTEsIDAuODQ0MzYxLCAxLjA1NjI0LCAxLjI2NDUyIiwgXAotICAgICAgICAgICIwLjA1NTkzNywgMC4yNTk0MDYsIDAuNDI1Mzk0LCAwLjYzNjI4MywgMC44NDQ4MDgsIDEuMDUyMTgsIDEuMjYzNjQiLCBcCi0gICAgICAgICAgIjAuMDU1OTYsIDAuMjU4NTA3LCAwLjQyNTgzNSwgMC42MzYyMjksIDAuODQ0OTA0LCAxLjA1NCwgMS4yNjYyIiwgXAotICAgICAgICAgICIwLjA1NjAwMSwgMC4yNTkwMjksIDAuNDI1ODQ3LCAwLjYzNTExNiwgMC44NDQ2ODQsIDEuMDU2MSwgMS4yNjQyNiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJHIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5vbl91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcmlzaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE5Nzk3MiwgMC4zMDU0NDksIDAuMzg2OTI1LCAwLjQ4ODY4OCwgMC41OTA0ODMsIDAuNjkyMzIyLCAwLjc5NDAyOSIsIFwKLSAgICAgICAgICAiMC4yMDY4NzUsIDAuMzE0MzQxLCAwLjM5NTgxMSwgMC40OTc2MjksIDAuNTk5Mzg2LCAwLjcwMTE5NSwgMC44MDMwMTIiLCBcCi0gICAgICAgICAgIjAuMjE4NzM0LCAwLjMyNjE5NiwgMC40MDc2NywgMC41MDk0MjksIDAuNjExMjIxLCAwLjcxMzA4NSwgMC44MTQ4NDUiLCBcCi0gICAgICAgICAgIjAuMjMwNDUzLCAwLjMzNzkyNiwgMC40MTk0MDMsIDAuNTIxMTY3LCAwLjYyMjk2MSwgMC43MjQ4LCAwLjgyNjUwMSIsIFwKLSAgICAgICAgICAiMC4yNDE1ODEsIDAuMzQ5MDQ4LCAwLjQzMDUxNywgMC41MzIzMTMsIDAuNjM0MDU4LCAwLjczNjAzNiwgMC44Mzc2MzgiLCBcCi0gICAgICAgICAgIjAuMjU3Nzc3LCAwLjM2NTIzNywgMC40NDY3MTMsIDAuNTQ4NDg4LCAwLjY1MDI1OCwgMC43NTIyNTksIDAuODUzODIyIiwgXAotICAgICAgICAgICIwLjI3MDUyMSwgMC4zNzc5OTksIDAuNDU5NDc4LCAwLjU2MTI0NiwgMC42NjMwMywgMC43NjQ4OTcsIDAuODY2NTgyIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2NjMzNSwgMC4yNjQxMDUsIDAuNDI5NjcsIDAuNjM4Mzc0LCAwLjg0NzAzOCwgMS4wNTgyNCwgMS4yNjc0OSIsIFwKLSAgICAgICAgICAiMC4wNjYyNjIsIDAuMjY0MTE4LCAwLjQyOTYwNiwgMC42Mzg1NjMsIDAuODQ2OTM3LCAxLjA1ODE3LCAxLjI2NTc3IiwgXAotICAgICAgICAgICIwLjA2NjM0MiwgMC4yNjQyMSwgMC40Mjk2LCAwLjYzODE5OSwgMC44NDgwNjgsIDEuMDU2NjEsIDEuMjY4MjkiLCBcCi0gICAgICAgICAgIjAuMDY2Mjc5LCAwLjI2NDA3LCAwLjQyOTY1OSwgMC42MzgzNjYsIDAuODQ3MDM1LCAxLjA1ODIzLCAxLjI2NzQ2IiwgXAotICAgICAgICAgICIwLjA2NjI3OSwgMC4yNjQxMjksIDAuNDI5NjAzLCAwLjYzNzMxMSwgMC44NDc5NjUsIDEuMDU1NTksIDEuMjY3NDQiLCBcCi0gICAgICAgICAgIjAuMDY2Mjg1LCAwLjI2NDIwNCwgMC40Mjk2LCAwLjYzNzU1NSwgMC44NDgwMTUsIDEuMDU2MDUsIDEuMjY4MTQiLCBcCi0gICAgICAgICAgIjAuMDY2Mjg3LCAwLjI2NDExMywgMC40Mjk2NTEsIDAuNjM4MzkxLCAwLjg0NjkzOSwgMS4wNTU5MiwgMS4yNjc0OSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xODIzMzUsIDAuMjg3NDc1LCAwLjM3MDMzNywgMC40NzM5NTcsIDAuNTc3NTAxLCAwLjY4MTAyMywgMC43ODQ1MTIiLCBcCi0gICAgICAgICAgIjAuMTkxMjQ3LCAwLjI5NjM4NywgMC4zNzkyNDMsIDAuNDgyODIzLCAwLjU4NjQwMiwgMC42ODk5MjgsIDAuNzkzNDUiLCBcCi0gICAgICAgICAgIjAuMjAzMjM1LCAwLjMwODM3NiwgMC4zOTEyMzUsIDAuNDk0ODcyLCAwLjU5ODQwNCwgMC43MDE5MTgsIDAuODA1NDU1IiwgXAotICAgICAgICAgICIwLjIxNTA0MywgMC4zMjAxODUsIDAuNDAzMDQyLCAwLjUwNjYxOSwgMC42MTAyMDYsIDAuNzEzNzIzLCAwLjgxNzIyOSIsIFwKLSAgICAgICAgICAiMC4yMjYwNjgsIDAuMzMxMjIxLCAwLjQxNDA3LCAwLjUxNzcwNCwgMC42MjEyMzcsIDAuNzI0NzUyLCAwLjgyODI5MyIsIFwKLSAgICAgICAgICAiMC4yNDE2OCwgMC4zNDY4MjIsIDAuNDI5Njg0LCAwLjUzMzI2MiwgMC42MzY4MzcsIDAuNzQwMzcxLCAwLjg0Mzg4MyIsIFwKLSAgICAgICAgICAiMC4yNTM2MDYsIDAuMzU4NzUsIDAuNDQxNjA5LCAwLjU0NTE4NywgMC42NDg3NCwgMC43NTIyNzUsIDAuODU1OTM4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1NTkzMiwgMC4yNTkzMDIsIDAuNDI1ODU5LCAwLjYzNDg5OCwgMC44NDQ2MDEsIDEuMDU2MTcsIDEuMjY1OTMiLCBcCi0gICAgICAgICAgIjAuMDU1OTMyLCAwLjI1OTM0NSwgMC40MjYyMzQsIDAuNjM2MjMzLCAwLjg0NTEwMiwgMS4wNTYxMywgMS4yNjYwNSIsIFwKLSAgICAgICAgICAiMC4wNTU5NDksIDAuMjU5MzI3LCAwLjQyNTg3NywgMC42MzQ3NywgMC44NDQ2NjQsIDEuMDU2MTUsIDEuMjY2MTMiLCBcCi0gICAgICAgICAgIjAuMDU1OTQxLCAwLjI1ODk2MSwgMC40MjU4NjksIDAuNjM2MjIzLCAwLjg0NDYzMywgMS4wNTYxNCwgMS4yNjQ0IiwgXAotICAgICAgICAgICIwLjA1NTk2NywgMC4yNTk0MTgsIDAuNDI1ODc5LCAwLjYzNDc4NSwgMC44NDQ2OTMsIDEuMDU2MTQsIDEuMjY2MTMiLCBcCi0gICAgICAgICAgIjAuMDU1OTM2LCAwLjI1OTA1OSwgMC40MjU4NTcsIDAuNjM2MjI4LCAwLjg0NTAzOSwgMS4wNTYxNSwgMS4yNjYwMiIsIFwKLSAgICAgICAgICAiMC4wNTU5MzgsIDAuMjU5MDc1LCAwLjQyNjI1MiwgMC42MzYyMSwgMC44NDUwMDYsIDEuMDU0NzUsIDEuMjYzNjEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUk4iOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJpc2luZ19lZGdlOwotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xODU2MTYsIDAuMjkwNzYsIDAuMzczNjIsIDAuNDc3MTk4LCAwLjU4MDc3NywgMC42ODQzMDYsIDAuNzg3ODIxIiwgXAotICAgICAgICAgICIwLjE5NDM2NCwgMC4yOTk1MDgsIDAuMzgyMzYxLCAwLjQ4NTk0LCAwLjU4OTUyMiwgMC42OTMwNDMsIDAuNzk2NTcyIiwgXAotICAgICAgICAgICIwLjIwNTIwNSwgMC4zMTAzNDYsIDAuMzkzMjA1LCAwLjQ5NjgxMSwgMC42MDAzNzEsIDAuNzAzODg2LCAwLjgwNzM4NCIsIFwKLSAgICAgICAgICAiMC4yMTU3NDksIDAuMzIwODkxLCAwLjQwMzc1LCAwLjUwNzMzMywgMC42MTA4ODMsIDAuNzE0NDE4LCAwLjgxNzk1OSIsIFwKLSAgICAgICAgICAiMC4yMjU4NDYsIDAuMzMwOTksIDAuNDEzODUsIDAuNTE3NDI5LCAwLjYyMTAwNiwgMC43MjQ1MzcsIDAuODI4MDUyIiwgXAotICAgICAgICAgICIwLjI0MDA2OCwgMC4zNDUyMDIsIDAuNDI4MDYzLCAwLjUzMTY5NCwgMC42MzUyMjksIDAuNzM4NzQ3LCAwLjg0MjI1MSIsIFwKLSAgICAgICAgICAiMC4yNTExODksIDAuMzU2MzM1LCAwLjQzOTE5NCwgMC41NDI3NzIsIDAuNjQ2MzQ5LCAwLjc0OTg3NywgMC44NTM0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1NTkzNiwgMC4yNTkzMjQsIDAuNDI1ODU5LCAwLjYzNjIyNywgMC44NDUwNzIsIDEuMDU2MTYsIDEuMjY2MDUiLCBcCi0gICAgICAgICAgIjAuMDU1OTcsIDAuMjU5MzcyLCAwLjQyNTg1NCwgMC42MzYyMywgMC44NDQ1MzMsIDEuMDU2MTQsIDEuMjY2MDkiLCBcCi0gICAgICAgICAgIjAuMDU1OTUzLCAwLjI1OTA3NCwgMC40MjU4NjMsIDAuNjM0ODk0LCAwLjg0NDY1OCwgMS4wNTYxMywgMS4yNjUzOCIsIFwKLSAgICAgICAgICAiMC4wNTU5MzQsIDAuMjU5MDc1LCAwLjQyNjI1MiwgMC42MzYyMjcsIDAuODQ1MDAyLCAxLjA1NDc0LCAxLjI2NjA4IiwgXAotICAgICAgICAgICIwLjA1NTkzNSwgMC4yNTkzMTksIDAuNDI1ODU3LCAwLjYzNjIyNywgMC44NDUwNTYsIDEuMDU2MTUsIDEuMjY2MDMiLCBcCi0gICAgICAgICAgIjAuMDU1OTU0LCAwLjI1OTMwNiwgMC40MjU4NzMsIDAuNjM0ODE1LCAwLjg0NDcwNSwgMS4wNTYxNCwgMS4yNjU5NSIsIFwKLSAgICAgICAgICAiMC4wNTU5NTMsIDAuMjU5MzMxLCAwLjQyNTg1NCwgMC42MzYyMjcsIDAuODQ1MDgyLCAxLjA1NjEzLCAxLjI2NjA1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiBmYWxsaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE5Njc1LCAwLjMwNDE1MywgMC4zODU2MzQsIDAuNDg3NDA5LCAwLjU4OTIxOCwgMC42OTA5MzgsIDAuNzkyNzM5IiwgXAotICAgICAgICAgICIwLjIwNjQxNiwgMC4zMTM4MiwgMC4zOTUyOCwgMC40OTcwNjksIDAuNTk4ODU1LCAwLjcwMDcxLCAwLjgwMjM4OSIsIFwKLSAgICAgICAgICAiMC4yMTg3NzIsIDAuMzI2MTY4LCAwLjQwNzY1MywgMC41MDk0MTksIDAuNjExMjE5LCAwLjcxMjk0MywgMC44MTQ3NzUiLCBcCi0gICAgICAgICAgIjAuMjMwMjEsIDAuMzM3NjExLCAwLjQxOTEwMSwgMC41MjA4NzgsIDAuNjIyNjQxLCAwLjcyNDMwOCwgMC44MjYyMzkiLCBcCi0gICAgICAgICAgIjAuMjQwMjc3LCAwLjM0NzY3NiwgMC40MjkxNDksIDAuNTMwOTc4LCAwLjYzMjcxNCwgMC43MzQ0ODEsIDAuODM2MjI2IiwgXAotICAgICAgICAgICIwLjI1NTM5LCAwLjM2Mjc4OSwgMC40NDQyNzIsIDAuNTQ2MDUsIDAuNjQ3ODIyLCAwLjc0OTU3NiwgMC44NTEzODIiLCBcCi0gICAgICAgICAgIjAuMjY3NjUxLCAwLjM3NTA2MywgMC40NTY1MzksIDAuNTU4MzEsIDAuNjYwMDk3LCAwLjc2MTk1LCAwLjg2MzYyOSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjU5ODQsIDAuMjY0MTAyLCAwLjQyOTY1NSwgMC42MzgzODIsIDAuODQ4MDE1LCAxLjA1Nzc2LCAxLjI2ODAzIiwgXAotICAgICAgICAgICIwLjA2NTk4NCwgMC4yNjQwNjYsIDAuNDI5NjMzLCAwLjYzODM5MiwgMC44NDc5OTksIDEuMDU4MDMsIDEuMjY3ODkiLCBcCi0gICAgICAgICAgIjAuMDY1OTc0LCAwLjI2NDExMSwgMC40Mjk2MzgsIDAuNjM4Mzg4LCAwLjg0NjMxOSwgMS4wNTc3NywgMS4yNjc5NCIsIFwKLSAgICAgICAgICAiMC4wNjU5ODQsIDAuMjY0MTA3LCAwLjQyOTY0OSwgMC42Mzg0MjUsIDAuODQ3OTQ1LCAxLjA1Nzc5LCAxLjI2ODAyIiwgXAotICAgICAgICAgICIwLjA2NTkxNiwgMC4yNjQxMzksIDAuNDI5NjMzLCAwLjYzODUwNCwgMC44NDc5MDgsIDEuMDU3NzgsIDEuMjY3ODgiLCBcCi0gICAgICAgICAgIjAuMDY1OTc1LCAwLjI2NDE1OSwgMC40Mjk2MjksIDAuNjM4Mzg4LCAwLjg0Njk5OSwgMS4wNTgwNiwgMS4yNjc4OSIsIFwKLSAgICAgICAgICAiMC4wNjYxMTUsIDAuMjY0MDMxLCAwLjQyOTYzMSwgMC42MzgzNjksIDAuODQ3LCAxLjA1ODA3LCAxLjI2Nzg1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiBjbGVhcjsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTAyNTE1LCAwLjIwOTg0MSwgMC4yOTEzMTEsIDAuMzkzMDc2LCAwLjQ5NDg4MiwgMC41OTY2OTEsIDAuNjk4NTI0IiwgXAotICAgICAgICAgICIwLjExMTA2NSwgMC4yMTg0MjcsIDAuMjk5ODc5LCAwLjQwMTY0NiwgMC41MDM0NDcsIDAuNjA1MjYsIDAuNzA3MDM2IiwgXAotICAgICAgICAgICIwLjEyMTY4NSwgMC4yMjkwMjYsIDAuMzEwNTAxLCAwLjQxMjI3LCAwLjUxNDA2NCwgMC42MTU5MTgsIDAuNzE3NjE5IiwgXAotICAgICAgICAgICIwLjEzMjMwOCwgMC4yMzk2NzYsIDAuMzIxMTU5LCAwLjQyMjkwNCwgMC41MjQ3MSwgMC42MjY0NSwgMC43MjgyODUiLCBcCi0gICAgICAgICAgIjAuMTQyNjcsIDAuMjUwMDM4LCAwLjMzMTUxOCwgMC40MzMyNzIsIDAuNTM1MDY1LCAwLjYzNjg5MywgMC43Mzg2MTQiLCBcCi0gICAgICAgICAgIjAuMTU4NzI0LCAwLjI2NjIxOSwgMC4zNDc2ODcsIDAuNDQ5NDYzLCAwLjU1MTI0LCAwLjY1MzEyNywgMC43NTQ4NjUiLCBcCi0gICAgICAgICAgIjAuMTcxNjgxLCAwLjI3OTQyOSwgMC4zNjA5MTMsIDAuNDYyNzMyLCAwLjU2NDQ2MSwgMC42NjYzMDQsIDAuNzY4MTQzIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2NTc1OCwgMC4yNjQxMTQsIDAuNDI5NiwgMC42MzgzNzIsIDAuODQ1OTc0LCAxLjA1ODIsIDEuMjY3NTIiLCBcCi0gICAgICAgICAgIjAuMDY1NzIyLCAwLjI2NDEyMiwgMC40Mjk1ODgsIDAuNjM4NTY3LCAwLjg0Nzk1NSwgMS4wNTgxOSwgMS4yNjgyOCIsIFwKLSAgICAgICAgICAiMC4wNjU3MTksIDAuMjY0MDg3LCAwLjQyOTU5NywgMC42Mzg0NzksIDAuODQ4MTI3LCAxLjA1ODA3LCAxLjI2ODE2IiwgXAotICAgICAgICAgICIwLjA2NTg0MiwgMC4yNjQxMjQsIDAuNDI5NjE5LCAwLjYzODUyNiwgMC44NDY4ODYsIDEuMDU4MTYsIDEuMjY1MjQiLCBcCi0gICAgICAgICAgIjAuMDY1OTcxLCAwLjI2NDExNiwgMC40Mjk1OTksIDAuNjM4MzI1LCAwLjg0ODA1NywgMS4wNTgyMiwgMS4yNjgxMyIsIFwKLSAgICAgICAgICAiMC4wNjY3NTEsIDAuMjY0MjY3LCAwLjQyOTY0MSwgMC42Mzg0MDEsIDAuODQ4MDY1LCAxLjA1ODIzLCAxLjI2NzUxIiwgXAotICAgICAgICAgICIwLjA2Nzk2NCwgMC4yNjQ1NDIsIDAuNDI5NzQ5LCAwLjYzODYzOCwgMC44NDY5MzksIDEuMDU4MiwgMS4yNjYyNCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzE5MTksIDAuMTc3Mzc1LCAwLjI2MDE2MiwgMC4zNjM2NTcsIDAuNDY3MjEyLCAwLjU3MDcxMiwgMC42NzQyMzIiLCBcCi0gICAgICAgICAgIjAuMDgxODc5LCAwLjE4NzM1LCAwLjI3MDEzNywgMC4zNzM2MzMsIDAuNDc3MTcyLCAwLjU4MDY5LCAwLjY4NDIxOCIsIFwKLSAgICAgICAgICAiMC4wOTQyNTYsIDAuMTk5NzQ0LCAwLjI4MjU0LCAwLjM4NjA0NCwgMC40ODk1NjcsIDAuNTkzMTA3LCAwLjY5NjY1NCIsIFwKLSAgICAgICAgICAiMC4xMDY1NTQsIDAuMjEyMDYyLCAwLjI5NDg1OSwgMC4zOTgzNiwgMC41MDE5MTQsIDAuNjA1NDMyLCAwLjcwODk3IiwgXAotICAgICAgICAgICIwLjExODExMywgMC4yMjM2NTQsIDAuMzA2NDUzLCAwLjQwOTk3MiwgMC41MTM1MDMsIDAuNjE3MDMyLCAwLjcyMDU1MSIsIFwKLSAgICAgICAgICAiMC4xMzQ0MDUsIDAuMjQwMTE2LCAwLjMyMjkxLCAwLjQyNjQxMiwgMC41Mjk5NzIsIDAuNjMzNTMyLCAwLjczNzAwNCIsIFwKLSAgICAgICAgICAiMC4xNDY4NTIsIDAuMjUyODUxLCAwLjMzNTYzMiwgMC40MzkxMzQsIDAuNTQyNjgyLCAwLjY0NjIyOSwgMC43NDk3MjgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU1OTIyLCAwLjI1OTQ3MywgMC40MjYzNjYsIDAuNjM2MzcxLCAwLjg0NjA3OSwgMS4wNTU3MSwgMS4yNjM4NiIsIFwKLSAgICAgICAgICAiMC4wNTU5MjIsIDAuMjU5NDA2LCAwLjQyNjM5OCwgMC42MzYwMDQsIDAuODQ1OTExLCAxLjA1NjEzLCAxLjI2NTEiLCBcCi0gICAgICAgICAgIjAuMDU1OTYsIDAuMjU5Mjg4LCAwLjQyNjAxMywgMC42MzYzMzcsIDAuODQ1ODM2LCAxLjA1Mzc5LCAxLjI2NTUzIiwgXAotICAgICAgICAgICIwLjA1NjE4NywgMC4yNTkzOTcsIDAuNDI2Mzg0LCAwLjYzNjIyOCwgMC44NDU4MTQsIDEuMDU0OCwgMS4yNjYyOCIsIFwKLSAgICAgICAgICAiMC4wNTY4NjgsIDAuMjU5NDg0LCAwLjQyNjUyLCAwLjYzNjQwNSwgMC44NDYwNDcsIDEuMDU0ODQsIDEuMjY1NjciLCBcCi0gICAgICAgICAgIjAuMDU4NjQsIDAuMjU5ODQsIDAuNDI2NzgsIDAuNjM2MTU2LCAwLjg0NjA3NiwgMS4wNTQ4OCwgMS4yNjU4MyIsIFwKLSAgICAgICAgICAiMC4wNjA0MzQsIDAuMjYwMTM5LCAwLjQyNjI3NywgMC42MzY0MzIsIDAuODQ2MDUzLCAxLjA1NTc5LCAxLjI2NjAzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1MDExLCAwLjAwNTA3LCAwLjAwNTA3NCwgMC4wMDUwNzgsIDAuMDA1MDgyLCAwLjAwNTA4MSwgMC4wMDUwODQiLCBcCi0gICAgICAgICAgIjAuMDA1MDA0LCAwLjAwNTA1OSwgMC4wMDUwNjgsIDAuMDA1MDcyLCAwLjAwNTA3MiwgMC4wMDUwNzUsIDAuMDA1MDc3IiwgXAotICAgICAgICAgICIwLjAwNDk5OSwgMC4wMDUwNTcsIDAuMDA1MDYyLCAwLjAwNTA2NiwgMC4wMDUwNjgsIDAuMDA1MDY5LCAwLjAwNTA3IiwgXAotICAgICAgICAgICIwLjAwNDk5NywgMC4wMDUwNTMsIDAuMDA1MDYxLCAwLjAwNTA2NCwgMC4wMDUwNjYsIDAuMDA1MDY3LCAwLjAwNTA2OCIsIFwKLSAgICAgICAgICAiMC4wMDQ5OTcsIDAuMDA1MDUzLCAwLjAwNTA2LCAwLjAwNTA2NCwgMC4wMDUwNjYsIDAuMDA1MDY3LCAwLjAwNTA2OCIsIFwKLSAgICAgICAgICAiMC4wMDQ5OTIsIDAuMDA1MDQ4LCAwLjAwNTA1MywgMC4wMDUwNTksIDAuMDA1MDYxLCAwLjAwNTA2MiwgMC4wMDUwNjMiLCBcCi0gICAgICAgICAgIjAuMDA0OTg5LCAwLjAwNTA0NSwgMC4wMDUwNTMsIDAuMDA1MDU1LCAwLjAwNTA1OSwgMC4wMDUwNTksIDAuMDA1MDYxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0NTUsIDAuMDA0NjEzLCAwLjAwNDYyLCAwLjAwNDYyNCwgMC4wMDQ2MjMsIDAuMDA0NjI3LCAwLjAwNDYyOSIsIFwKLSAgICAgICAgICAiMC4wMDQ1NCwgMC4wMDQ2MDIsIDAuMDA0NjEsIDAuMDA0NjE0LCAwLjAwNDYxNiwgMC4wMDQ2MTYsIDAuMDA0NjE4IiwgXAotICAgICAgICAgICIwLjAwNDUzMywgMC4wMDQ1OTYsIDAuMDA0NjA2LCAwLjAwNDYwNywgMC4wMDQ2MDksIDAuMDA0NjA4LCAwLjAwNDYxNiIsIFwKLSAgICAgICAgICAiMC4wMDQ1MjYsIDAuMDA0NTkxLCAwLjAwNDU5NSwgMC4wMDQ2MDEsIDAuMDA0NjAzLCAwLjAwNDYwNSwgMC4wMDQ2MDYiLCBcCi0gICAgICAgICAgIjAuMDA0NTIxLCAwLjAwNDU4NSwgMC4wMDQ1OTQsIDAuMDA0NTk4LCAwLjAwNDYsIDAuMDA0NTk5LCAwLjAwNDYwMiIsIFwKLSAgICAgICAgICAiMC4wMDQ1MTksIDAuMDA0NTgzLCAwLjAwNDU5MSwgMC4wMDQ1OTYsIDAuMDA0NTk4LCAwLjAwNDU5OSwgMC4wMDQ2MDEiLCBcCi0gICAgICAgICAgIjAuMDA0NTE4LCAwLjAwNDU4MywgMC4wMDQ1OTIsIDAuMDA0NTk2LCAwLjAwNDU5OCwgMC4wMDQ2LCAwLjAwNDYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJHIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDU5MzgsIDAuMDA1OTkzLCAwLjAwNiwgMC4wMDYwMDQsIDAuMDA2MDA1LCAwLjAwNjAwNywgMC4wMDYwMDciLCBcCi0gICAgICAgICAgIjAuMDA1OTIyLCAwLjAwNTk3NywgMC4wMDU5ODQsIDAuMDA1OTg2LCAwLjAwNTk5LCAwLjAwNTk5MSwgMC4wMDU5OTIiLCBcCi0gICAgICAgICAgIjAuMDA1OTE4LCAwLjAwNTk3NiwgMC4wMDU5ODEsIDAuMDA1OTgyLCAwLjAwNTk4NiwgMC4wMDU5ODcsIDAuMDA1OTg1IiwgXAotICAgICAgICAgICIwLjAwNTkyMSwgMC4wMDU5NzUsIDAuMDA1OTgyLCAwLjAwNTk4NiwgMC4wMDU5ODgsIDAuMDA1OTksIDAuMDA1OTkiLCBcCi0gICAgICAgICAgIjAuMDA1OTMsIDAuMDA1OTg1LCAwLjAwNTk5MywgMC4wMDU5OTksIDAuMDA1OTk4LCAwLjAwNTk5OSwgMC4wMDYwMDIiLCBcCi0gICAgICAgICAgIjAuMDA1OTM5LCAwLjAwNTk5NSwgMC4wMDYwMDIsIDAuMDA2MDA4LCAwLjAwNjAwNywgMC4wMDYwMDgsIDAuMDA2MDA3IiwgXAotICAgICAgICAgICIwLjAwNTk0NiwgMC4wMDYwMDEsIDAuMDA2MDA4LCAwLjAwNjAxMSwgMC4wMDYwMTEsIDAuMDA2MDE0LCAwLjAwNjAxNSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNTYxOSwgMC4wMDU2ODIsIDAuMDA1Njg5LCAwLjAwNTY5MywgMC4wMDU2OTUsIDAuMDA1Njk2LCAwLjAwNTY5NyIsIFwKLSAgICAgICAgICAiMC4wMDU2MDksIDAuMDA1NjcxLCAwLjAwNTY3OCwgMC4wMDU2ODMsIDAuMDA1Njg0LCAwLjAwNTY4NCwgMC4wMDU2ODYiLCBcCi0gICAgICAgICAgIjAuMDA1NjA2LCAwLjAwNTY2OCwgMC4wMDU2NzUsIDAuMDA1Njc5LCAwLjAwNTY4MSwgMC4wMDU2ODIsIDAuMDA1NjgzIiwgXAotICAgICAgICAgICIwLjAwNTYwOCwgMC4wMDU2NzEsIDAuMDA1Njc4LCAwLjAwNTY4MiwgMC4wMDU2ODQsIDAuMDA1Njg1LCAwLjAwNTY4NiIsIFwKLSAgICAgICAgICAiMC4wMDU2MTcsIDAuMDA1Njc5LCAwLjAwNTY4NywgMC4wMDU2OTEsIDAuMDA1NjkzLCAwLjAwNTY5NCwgMC4wMDU2OTUiLCBcCi0gICAgICAgICAgIjAuMDA1NjI2LCAwLjAwNTY4OSwgMC4wMDU2OTYsIDAuMDA1NywgMC4wMDU3MDIsIDAuMDA1NzAzLCAwLjAwNTcwMyIsIFwKLSAgICAgICAgICAiMC4wMDU2MjgsIDAuMDA1NjksIDAuMDA1Njk4LCAwLjAwNTcwMiwgMC4wMDU3MDMsIDAuMDA1NzA1LCAwLjAwNTcwNiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDY3ODYsIDAuMDA2ODQsIDAuMDA2ODQ3LCAwLjAwNjg1LCAwLjAwNjg1MiwgMC4wMDY4NTIsIDAuMDA2ODUzIiwgXAotICAgICAgICAgICIwLjAwNjc3MiwgMC4wMDY4MjcsIDAuMDA2ODM0LCAwLjAwNjgzNywgMC4wMDY4MzksIDAuMDA2ODM5LCAwLjAwNjg0IiwgXAotICAgICAgICAgICIwLjAwNjc2OSwgMC4wMDY4MjQsIDAuMDA2ODMxLCAwLjAwNjgzMiwgMC4wMDY4MzUsIDAuMDA2ODM5LCAwLjAwNjgzNiIsIFwKLSAgICAgICAgICAiMC4wMDY3NjcsIDAuMDA2ODIzLCAwLjAwNjgyOSwgMC4wMDY4MzMsIDAuMDA2ODM0LCAwLjAwNjgzNiwgMC4wMDY4MzYiLCBcCi0gICAgICAgICAgIjAuMDA2NzY5LCAwLjAwNjgyNCwgMC4wMDY4MzEsIDAuMDA2ODM3LCAwLjAwNjgzNiwgMC4wMDY4MzcsIDAuMDA2ODM0IiwgXAotICAgICAgICAgICIwLjAwNjc4MiwgMC4wMDY4MzYsIDAuMDA2ODQzLCAwLjAwNjg0NiwgMC4wMDY4NDksIDAuMDA2ODQ4LCAwLjAwNjg0OCIsIFwKLSAgICAgICAgICAiMC4wMDY3ODUsIDAuMDA2ODM5LCAwLjAwNjg0OCwgMC4wMDY4NDgsIDAuMDA2ODUxLCAwLjAwNjg1NCwgMC4wMDY4NTEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDU1MDksIDAuMDA1NTcyLCAwLjAwNTU3OSwgMC4wMDU1ODQsIDAuMDA1NTg1LCAwLjAwNTU4NSwgMC4wMDU1ODYiLCBcCi0gICAgICAgICAgIjAuMDA1NDk5LCAwLjAwNTU2MSwgMC4wMDU1NjksIDAuMDA1NTcyLCAwLjAwNTU3NSwgMC4wMDU1NzUsIDAuMDA1NTc2IiwgXAotICAgICAgICAgICIwLjAwNTQ5MiwgMC4wMDU1NTQsIDAuMDA1NTYyLCAwLjAwNTU2NSwgMC4wMDU1NjcsIDAuMDA1NTY4LCAwLjAwNTU2OSIsIFwKLSAgICAgICAgICAiMC4wMDU0ODcsIDAuMDA1NTUsIDAuMDA1NTU3LCAwLjAwNTU2MSwgMC4wMDU1NjQsIDAuMDA1NTY0LCAwLjAwNTU2NSIsIFwKLSAgICAgICAgICAiMC4wMDU0OSwgMC4wMDU1NTMsIDAuMDA1NTYsIDAuMDA1NTY2LCAwLjAwNTU2NywgMC4wMDU1NjYsIDAuMDA1NTY3IiwgXAotICAgICAgICAgICIwLjAwNTQ5MSwgMC4wMDU1NTIsIDAuMDA1NTYsIDAuMDA1NTY0LCAwLjAwNTU2NSwgMC4wMDU1NjcsIDAuMDA1NTY4IiwgXAotICAgICAgICAgICIwLjAwNTQ4NywgMC4wMDU1NDksIDAuMDA1NTU2LCAwLjAwNTU2LCAwLjAwNTU2MywgMC4wMDU1NjIsIDAuMDA1NTY0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiU04iOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzYwOSwgMC4wMDM2NTcsIDAuMDAzNjYyLCAwLjAwMzY2OCwgMC4wMDM2NjgsIDAuMDAzNjY4LCAwLjAwMzY3IiwgXAotICAgICAgICAgICIwLjAwMzU4NywgMC4wMDM2MzgsIDAuMDAzNjQzLCAwLjAwMzY0NiwgMC4wMDM2NDgsIDAuMDAzNjQ5LCAwLjAwMzY1MiIsIFwKLSAgICAgICAgICAiMC4wMDM1NywgMC4wMDM2MjMsIDAuMDAzNjMsIDAuMDAzNjM2LCAwLjAwMzYzNCwgMC4wMDM2MzUsIDAuMDAzNjM2IiwgXAotICAgICAgICAgICIwLjAwMzU3NywgMC4wMDM2MjgsIDAuMDAzNjM1LCAwLjAwMzYzOCwgMC4wMDM2MzgsIDAuMDAzNjQ0LCAwLjAwMzY0MiIsIFwKLSAgICAgICAgICAiMC4wMDM1NjksIDAuMDAzNjIyLCAwLjAwMzYyOSwgMC4wMDM2MzIsIDAuMDAzNjM1LCAwLjAwMzYzNiwgMC4wMDM2MzYiLCBcCi0gICAgICAgICAgIjAuMDAzNTc1LCAwLjAwMzYyOCwgMC4wMDM2MzYsIDAuMDAzNjQsIDAuMDAzNjQyLCAwLjAwMzY0MywgMC4wMDM2NDQiLCBcCi0gICAgICAgICAgIjAuMDAzNTcsIDAuMDAzNjI3LCAwLjAwMzYzNSwgMC4wMDM2NCwgMC4wMDM2NDIsIDAuMDAzNjQ0LCAwLjAwMzY0NSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDk5OSwgMC4wMDUwNDQsIDAuMDA1MDQ4LCAwLjAwNTA1MSwgMC4wMDUwNTIsIDAuMDA1MDU0LCAwLjAwNTA1NCIsIFwKLSAgICAgICAgICAiMC4wMDQ5ODUsIDAuMDA1MDMyLCAwLjAwNTAzNywgMC4wMDUwNDIsIDAuMDA1MDQyLCAwLjAwNTA0MywgMC4wMDUwNDMiLCBcCi0gICAgICAgICAgIjAuMDA0OTY3LCAwLjAwNTAxOCwgMC4wMDUwMjUsIDAuMDA1MDI4LCAwLjAwNTAzMiwgMC4wMDUwMywgMC4wMDUwMzEiLCBcCi0gICAgICAgICAgIjAuMDA0OTUzLCAwLjAwNTAwNywgMC4wMDUwMTUsIDAuMDA1MDE5LCAwLjAwNTAyMSwgMC4wMDUwMjIsIDAuMDA1MDIyIiwgXAotICAgICAgICAgICIwLjAwNDk1MSwgMC4wMDUwMDUsIDAuMDA1MDE0LCAwLjAwNTAxOSwgMC4wMDUwMjEsIDAuMDA1MDIzLCAwLjAwNTAyNCIsIFwKLSAgICAgICAgICAiMC4wMDQ5NDgsIDAuMDA1MDA2LCAwLjAwNTAxNSwgMC4wMDUwMjEsIDAuMDA1MDI0LCAwLjAwNTAyNiwgMC4wMDUwMjciLCBcCi0gICAgICAgICAgIjAuMDA0OTU2LCAwLjAwNTAxNCwgMC4wMDUwMjIsIDAuMDA1MDMsIDAuMDA1MDMzLCAwLjAwNTAzNSwgMC4wMDUwMzciKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFJOKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA5ODg2MTY7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwOTc5NjU4OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDk4ODYxNjsKLSAgICBjbG9jayA6IHRydWU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNDUzLCAwLjAwMDQ1MiwgMC4wMDA0NTIsIDAuMDAwNDUyLCAwLjAwMDQ1MiwgMC4wMDA0NTIsIDAuMDAwNDUyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNDU3LCAwLjAwMDQ1NCwgMC4wMDA0NTQsIDAuMDAwNDU0LCAwLjAwMDQ1NCwgMC4wMDA0NTQsIDAuMDAwNDU0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkciOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX2ZhbGxpbmc7Ci0gICAgICB3aGVuIDogIkQmU04iOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8xX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDg3NSwgLTAuMDc2MjUsIC0wLjA3NjI1LCAtMC4wODg3NSwgLTAuMDk1LCAtMC4xMSwgLTAuMTIiLCBcCi0gICAgICAgICAgIi0wLjA5MjUsIC0wLjA4NzUsIC0wLjA4NzUsIC0wLjA5Mzc1LCAtMC4xMDYyNSwgLTAuMTIxMjUsIC0wLjEzMTI1IiwgXAotICAgICAgICAgICItMC4xMDUsIC0wLjEsIC0wLjEsIC0wLjEwNjI1LCAtMC4xMTI1LCAtMC4xMjc1LCAtMC4xMzc1IiwgXAotICAgICAgICAgICItMC4xMTc1LCAtMC4xMDYyNSwgLTAuMTA2MjUsIC0wLjExMjUsIC0wLjEyNSwgLTAuMTQsIC0wLjE1IiwgXAotICAgICAgICAgICItMC4xMjM3NSwgLTAuMTE4NzUsIC0wLjExODc1LCAtMC4xMjUsIC0wLjEzMTI1LCAtMC4xNDYyNSwgLTAuMTU2MjUiLCBcCi0gICAgICAgICAgIi0wLjE0LCAtMC4xMzUsIC0wLjEzNSwgLTAuMTM1LCAtMC4xNDc1LCAtMC4xNTYyNSwgLTAuMTY2MjUiLCBcCi0gICAgICAgICAgIi0wLjE1NSwgLTAuMTQzNzUsIC0wLjE0Mzc1LCAtMC4xNSwgLTAuMTU2MjUsIC0wLjE2NSwgLTAuMTc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRCZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjE2Mjk0MSwgMC4xNzIxNzUsIDAuMTgyNDQ0LCAwLjE5MjA3MiwgMC4yMDEzNTksIDAuMjE0OTQsIDAuMjI1NTg2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkciOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9mYWxsaW5nOwotICAgICAgd2hlbiA6ICJEJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMV9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwNjI1LCAwLjA5NSwgMC4wODg3NSwgMC4xMDEyNSwgMC4xMiwgMC4xNDc1LCAwLjE3NjI1IiwgXAotICAgICAgICAgICIwLjExMTI1LCAwLjEwNjI1LCAwLjEsIDAuMTA2MjUsIDAuMTI1LCAwLjE1ODc1LCAwLjE4MTI1IiwgXAotICAgICAgICAgICIwLjEyMzc1LCAwLjExMjUsIDAuMTEyNSwgMC4xMTg3NSwgMC4xMzc1LCAwLjE2NSwgMC4xOTM3NSIsIFwKLSAgICAgICAgICAiMC4xMzYyNSwgMC4xMjUsIDAuMTE4NzUsIDAuMTMxMjUsIDAuMTQzNzUsIDAuMTcxMjUsIDAuMiIsIFwKLSAgICAgICAgICAiMC4xNDI1LCAwLjEzMTI1LCAwLjEzMTI1LCAwLjEzNzUsIDAuMTUsIDAuMTc3NSwgMC4yMDYyNSIsIFwKLSAgICAgICAgICAiMC4xNTg3NSwgMC4xNDc1LCAwLjE0MTI1LCAwLjE1Mzc1LCAwLjE2LCAwLjE4NzUsIDAuMjE2MjUiLCBcCi0gICAgICAgICAgIjAuMTY3NSwgMC4xNjI1LCAwLjE1NjI1LCAwLjE2MjUsIDAuMTc1LCAwLjE5NjI1LCAwLjIxODc1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTTikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNzczNjk2OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDc3MzY5NjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA3NzIyNzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAzMjYsIDAuMDAwMzI2LCAwLjAwMDMyNiwgMC4wMDAzMjYsIDAuMDAwMzI2LCAwLjAwMDMyNiwgMC4wMDAzMjYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAzMzYsIDAuMDAwMzI4LCAwLjAwMDMyNywgMC4wMDAzMjcsIDAuMDAwMzI3LCAwLjAwMDMyNywgMC4wMDAzMjciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiU04iOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFEIjsKLSAgICAgIHNkZl9jb25kIDogIkQgPT0gMSdiMCI7Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wOTk5NCwgMC4xMDk3ODUsIDAuMTIxODQyLCAwLjEzMzcyNCwgMC4xNDQ4MTUsIDAuMTYwNDIsIDAuMTcyNDIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJlY292ZXJ5X2ZhbGxpbmc7Ci0gICAgICB3aGVuIDogIiFEJlJOIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9STl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHJlY292ZXJ5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMjUsIDAuMDAxMjUsIC0wLjAxMTI1LCAtMC4wMTc1LCAtMC4wMjM3NSwgLTAuMDMzNzUsIC0wLjA0MjUiLCBcCi0gICAgICAgICAgIjAuMDE3NSwgMC4wMDYyNSwgMCwgLTAuMDEyNSwgLTAuMDE4NzUsIC0wLjAyODc1LCAtMC4wMzc1IiwgXAotICAgICAgICAgICIwLjAzLCAwLjAxODc1LCAwLjAwNjI1LCAwLCAtMC4wMDYyNSwgLTAuMDIyNSwgLTAuMDI1IiwgXAotICAgICAgICAgICIwLjAzNjI1LCAwLjAyNSwgMC4wMTg3NSwgMC4wMDYyNSwgMCwgLTAuMDEsIC0wLjAxODc1IiwgXAotICAgICAgICAgICIwLjA0ODc1LCAwLjAzNzUsIDAuMDI1LCAwLjAxMjUsIDAuMDA2MjUsIC0wLjAwMzc1LCAtMC4wMTI1IiwgXAotICAgICAgICAgICIwLjA1ODc1LCAwLjA0NzUsIDAuMDM1LCAwLjAyODc1LCAwLjAxNjI1LCAwLjAwNjI1LCAtMC4wMDI1IiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDU2MjUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMjUsIDAuMDE1LCAwLjAwNjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIHRpbWluZ190eXBlIDogcmVjb3ZlcnlfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRyI7Ci0gICAgICBzZGZfY29uZCA6ICJHID09IDEnYjAiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHJlY292ZXJ5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxODc1LCAwLjAxMzc1LCAwLjAwNzUsIDAuMDAxMjUsIDAuMDAxMjUsIC0wLjAwMjUsIC0wLjAwNSIsIFwKLSAgICAgICAgICAiMC4wMjM3NSwgMC4wMTg3NSwgMC4wMTI1LCAwLjAwNjI1LCAwLjAwNjI1LCAwLjAwMjUsIDAiLCBcCi0gICAgICAgICAgIjAuMDM2MjUsIDAuMDI1LCAwLjAyNSwgMC4wMTg3NSwgMC4wMTI1LCAwLjAwODc1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICIwLjA0MjUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMjUsIDAuMDI1LCAwLjAxNSwgMC4wMTI1IiwgXAotICAgICAgICAgICIwLjA0ODc1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDMxMjUsIDAuMDIxMjUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMDU4NzUsIDAuMDUzNzUsIDAuMDQ3NSwgMC4wNDEyNSwgMC4wMzUsIDAuMDMxMjUsIDAuMDI4NzUiLCBcCi0gICAgICAgICAgIjAuMDY3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1LCAwLjA0Mzc1LCAwLjA0LCAwLjAzNzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJlbW92YWxfZmFsbGluZzsKLSAgICAgIHdoZW4gOiAiIUQmUk4iOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1JOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQocmVtb3ZhbF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTg3NSwgMC4wMywgMC4wNDI1LCAwLjA0ODc1LCAwLjA2MTI1LCAwLjA3MTI1LCAwLjA4IiwgXAotICAgICAgICAgICIwLjAxMzc1LCAwLjAxODc1LCAwLjAzMTI1LCAwLjA0Mzc1LCAwLjA1LCAwLjA2NjI1LCAwLjA3NSIsIFwKLSAgICAgICAgICAiMC4wMDEyNSwgMC4wMTI1LCAwLjAyNSwgMC4wMzEyNSwgMC4wNDM3NSwgMC4wNTM3NSwgMC4wNjI1IiwgXAotICAgICAgICAgICItMC4wMDUsIDAuMDA2MjUsIDAuMDEyNSwgMC4wMjUsIDAuMDM3NSwgMC4wNDc1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICItMC4wMTEyNSwgLTAuMDA2MjUsIDAuMDA2MjUsIDAuMDE4NzUsIDAuMDI1LCAwLjA0MTI1LCAwLjA1IiwgXAotICAgICAgICAgICItMC4wMjEyNSwgLTAuMDE2MjUsIC0wLjAwMzc1LCAwLjAwODc1LCAwLjAxNSwgMC4wMzEyNSwgMC4wNCIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAyNSwgLTAuMDEyNSwgMCwgMC4wMDYyNSwgMC4wMjI1LCAwLjAzMTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIHRpbWluZ190eXBlIDogcmVtb3ZhbF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFHIjsKLSAgICAgIHNkZl9jb25kIDogIkcgPT0gMSdiMCI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQocmVtb3ZhbF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDYyNSwgMC4wMTc1LCAwLjAyMzc1LCAwLjAzLCAwLjAzNjI1LCAwLjA0NjI1LCAwLjA1NSIsIFwKLSAgICAgICAgICAiMC4wMDEyNSwgMC4wMDYyNSwgMC4wMTI1LCAwLjAyNSwgMC4wMzEyNSwgMC4wMzUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIi0wLjAxMTI1LCAwLCAwLjAwNjI1LCAwLjAxMjUsIDAuMDE4NzUsIDAuMDI4NzUsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDE3NSwgLTAuMDEyNSwgMCwgMC4wMDYyNSwgMC4wMTI1LCAwLjAyMjUsIDAuMDI1IiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLCAwLjAwNjI1LCAwLjAxNjI1LCAwLjAxODc1IiwgXAotICAgICAgICAgICItMC4wMzM3NSwgLTAuMDI4NzUsIC0wLjAxNjI1LCAtMC4wMSwgLTAuMDAzNzUsIDAuMDA2MjUsIDAuMDA4NzUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDI1LCAwIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IFRMQVRTUlg0ICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChUTEFUU1JYNCkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjc1MDI0NjsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBsYXRjaCAoUUlOVCxONSkgewotICAgIGRhdGFfaW4gOiAiRCI7Ci0gICAgZW5hYmxlIDogIihHIFJOKSI7Ci0gICAgcHJlc2V0IDogIighU04pIjsKLSAgfQotICBwaW4oRCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjE1NDM1OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYxMzg4MTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2MTU0MzU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjE4LCAwLjAwMDIyMSwgMC4wMDAyMjEsIDAuMDAwMjIyLCAwLjAwMDIyMiwgMC4wMDAyMjIsIDAuMDAwMjIyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjI4LCAwLjAwMDIyNywgMC4wMDAyMjcsIDAuMDAwMjI3LCAwLjAwMDIyNywgMC4wMDAyMjcsIDAuMDAwMjI3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkciOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX2ZhbGxpbmc7Ci0gICAgICB3aGVuIDogIlJOJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIlJOX0VRXzFfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMTI1LCAtMC4wMDEyNSwgMC4wMTEyNSwgMC4wMjM3NSwgMC4wMywgMC4wNDYyNSwgMC4wNTUiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTI1LCAwLCAwLjAxMjUsIDAuMDI1LCAwLjAzNSwgMC4wNSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAyNSwgLTAuMDEyNSwgMCwgMC4wMTI1LCAwLjAyODc1LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgMCwgMC4wMTYyNSwgMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjA1NSwgLTAuMDQzNzUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgMC4wMDM3NSwgMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wNzEyNSwgLTAuMDYsIC0wLjA0NzUsIC0wLjAzNSwgLTAuMDIyNSwgLTAuMDEyNSwgMC4wMDI1IiwgXAotICAgICAgICAgICItMC4wOCwgLTAuMDY4NzUsIC0wLjA1NjI1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDIxMjUsIC0wLjAxMjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wNDM3NSwgLTAuMDMyNSwgLTAuMDI2MjUsIC0wLjAyLCAtMC4wMTM3NSwgLTAuMDAzNzUsIC0wLjAwMTI1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDQzNzUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wNjEyNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDIxMjUsIC0wLjAxODc1IiwgXAotICAgICAgICAgICItMC4wNjc1LCAtMC4wNjI1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzMzc1LCAtMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjA4LCAtMC4wNjg3NSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNCwgLTAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjA5LCAtMC4wNzg3NSwgLTAuMDcyNSwgLTAuMDY2MjUsIC0wLjA2LCAtMC4wNSwgLTAuMDQ3NSIsIFwKLSAgICAgICAgICAiLTAuMDk4NzUsIC0wLjA5Mzc1LCAtMC4wODEyNSwgLTAuMDc1LCAtMC4wNjg3NSwgLTAuMDU4NzUsIC0wLjA1NjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkciOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9mYWxsaW5nOwotICAgICAgd2hlbiA6ICJSTiZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJSTl9FUV8xX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDMxMjUsIDAuMDIsIDAuMDA3NSwgLTAuMDA1LCAtMC4wMTEyNSwgLTAuMDI3NSwgLTAuMDQyNSIsIFwKLSAgICAgICAgICAiMC4wNDI1LCAwLjAzMTI1LCAwLjAxODc1LCAwLjAwNjI1LCAtMC4wMDYyNSwgLTAuMDIyNSwgLTAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMDQ4NzUsIDAuMDQzNzUsIDAuMDI1LCAwLjAxMjUsIDAuMDA2MjUsIC0wLjAxLCAtMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4wNjEyNSwgMC4wNSwgMC4wMzc1LCAwLjAyNSwgMC4wMTI1LCAwLjAwMjUsIC0wLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMDczNzUsIDAuMDYyNSwgMC4wNSwgMC4wMzc1LCAwLjAyNSwgMC4wMDg3NSwgMCIsIFwKLSAgICAgICAgICAiMC4wODM3NSwgMC4wNzg3NSwgMC4wNiwgMC4wNTM3NSwgMC4wNDEyNSwgMC4wMjUsIDAuMDE2MjUiLCBcCi0gICAgICAgICAgIjAuMDk4NzUsIDAuMDg3NSwgMC4wNzUsIDAuMDYyNSwgMC4wNSwgMC4wNCwgMC4wMjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjI1LCAwLjA1MTI1LCAwLjA0NSwgMC4wMzg3NSwgMC4wMzI1LCAwLjAyODc1LCAwLjAyNjI1IiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDYyNSwgMC4wNSwgMC4wNDM3NSwgMC4wNDM3NSwgMC4wNCwgMC4wMzc1IiwgXAotICAgICAgICAgICIwLjA4LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDUsIDAuMDQ2MjUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMDg2MjUsIDAuMDgxMjUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNjI1LCAwLjA1MjUsIDAuMDUiLCBcCi0gICAgICAgICAgIjAuMDk4NzUsIDAuMDg3NSwgMC4wODEyNSwgMC4wNzUsIDAuMDY4NzUsIDAuMDY1LCAwLjA2MjUiLCBcCi0gICAgICAgICAgIjAuMTA4NzUsIDAuMTAzNzUsIDAuMDkxMjUsIDAuMDg1LCAwLjA3ODc1LCAwLjA3NSwgMC4wNzI1IiwgXAotICAgICAgICAgICIwLjExNzUsIDAuMTEyNSwgMC4xLCAwLjA5Mzc1LCAwLjA4NzUsIDAuMDgzNzUsIDAuMDgxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEcpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYxMzUyNjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MTM1MjY7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNTA4MjI4OwotICAgIGNsb2NrIDogdHJ1ZTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDIwNSwgMC4wMDIwMjQsIDAuMDAyMDEyLCAwLjAwMjAxNCwgMC4wMDIwMTgsIDAuMDAyMDQ1LCAwLjAwMjA2NCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDI1NywgMC4wMDAyNTcsIDAuMDAwMjU3LCAwLjAwMDI1NywgMC4wMDAyNTcsIDAuMDAwMjU3LCAwLjAwMDI1NyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJHIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRCZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjIwMDQzNSwgMC4yMDk2MiwgMC4yMjEyNDMsIDAuMjMzMDExLCAwLjI0NDc0MiwgMC4yNjI1NDksIDAuMjc2NTI5Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihRKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDEuMDE5NDg7Ci0gICAgZnVuY3Rpb24gOiAiUUlOVCI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTgxODUsIDAuMTkxMTQ1LCAwLjI2NDI1OCwgMC4zMTY2NDIsIDAuNDAwMDgyLCAwLjQ3MzUxMywgMC41Nzc3MDEiLCBcCi0gICAgICAgICAgIjAuMTI3MTQyLCAwLjIwMDExNiwgMC4yNzMyMzIsIDAuMzI1NTY5LCAwLjQwOTM5NywgMC40ODIyNTEsIDAuNTg2NjEyIiwgXAotICAgICAgICAgICIwLjEzODAxNiwgMC4yMTA5ODMsIDAuMjg0NDQ3LCAwLjMzNjI3MywgMC40MjAyMzQsIDAuNDkzMjU3LCAwLjU5NzQ2NCIsIFwKLSAgICAgICAgICAiMC4xNDg0MjUsIDAuMjIxMzg0LCAwLjI5NDc0OSwgMC4zNDY4NTYsIDAuNDMwNTA4LCAwLjUwMzYzMiwgMC42MDgwMSIsIFwKLSAgICAgICAgICAiMC4xNTg2MTQsIDAuMjMxNTYxLCAwLjMwNDcwNywgMC4zNTcwMjYsIDAuNDQwMzUsIDAuNTEzNzA0LCAwLjYxODEzMSIsIFwKLSAgICAgICAgICAiMC4xNzM1MiwgMC4yNDY1MDIsIDAuMzIwMDA2LCAwLjM3MjE0MSwgMC40NTU3NDUsIDAuNTI4NjA2LCAwLjYzMjk5MiIsIFwKLSAgICAgICAgICAiMC4xODUzMTEsIDAuMjU4MzEyLCAwLjMzMTczNCwgMC4zODM3NzQsIDAuNDY3NTQyLCAwLjU0MDQwNCwgMC42NDQ3ODUiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjkyNjQsIDAuMTc5MjY0LCAwLjMzMTA5MSwgMC40NDAyNjMsIDAuNjEzMjE4LCAwLjc2NjMzNywgMC45ODE1OTkiLCBcCi0gICAgICAgICAgIjAuMDI5MzY2LCAwLjE3OTM0MSwgMC4zMzEzODIsIDAuNDM5NjY4LCAwLjYxNDI5NCwgMC43NjUxMDYsIDAuOTgxNDAzIiwgXAotICAgICAgICAgICIwLjAyOTMzOSwgMC4xNzkyMzgsIDAuMzMxNzg2LCAwLjQzOTA4MywgMC42MTQwOTMsIDAuNzY1OTM4LCAwLjk4MDQ0MiIsIFwKLSAgICAgICAgICAiMC4wMjkxNTksIDAuMTc5NDUyLCAwLjMzMTY3NywgMC40Mzk2NjMsIDAuNjEzNzg5LCAwLjc2NTg3NSwgMC45ODI5MTQiLCBcCi0gICAgICAgICAgIjAuMDI5MjM3LCAwLjE3OTI2MSwgMC4zMzA5MjksIDAuNDM5NjY3LCAwLjYxMjA5NCwgMC43NjU3MzQsIDAuOTgzMDQ1IiwgXAotICAgICAgICAgICIwLjAyOTM5NywgMC4xNzkyNDUsIDAuMzMxODU0LCAwLjQ0MDIyOSwgMC42MTQwOTUsIDAuNzY0OSwgMC45ODIxODciLCBcCi0gICAgICAgICAgIjAuMDI5Mzg3LCAwLjE3OTc3MywgMC4zMzE4MzYsIDAuNDQwMjY1LCAwLjYxNDI5MiwgMC43NjUxMDEsIDAuOTgxNDAzIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTQwODQ0LCAwLjIxNDQ0NywgMC4yODgyMSwgMC4zNDA5NzIsIDAuNDI1MTUsIDAuNDk4OTk1LCAwLjYwNDYzIiwgXAotICAgICAgICAgICIwLjE0OTI0MywgMC4yMjI4MzcsIDAuMjk2NTkzLCAwLjM0OTM2NywgMC40MzM3MjgsIDAuNTA3MzU1LCAwLjYxMjYzIiwgXAotICAgICAgICAgICIwLjE1OTAzNiwgMC4yMzI2MzQsIDAuMzA2MzQ4LCAwLjM1OTEzNywgMC40NDM0OTcsIDAuNTE3MTcsIDAuNjIyNDI5IiwgXAotICAgICAgICAgICIwLjE2ODM0NCwgMC4yNDE5NTUsIDAuMzE1NjY5LCAwLjM2ODMxNSwgMC40NTI4MTIsIDAuNTI2NDk0LCAwLjYzMTc1NSIsIFwKLSAgICAgICAgICAiMC4xNzczNiwgMC4yNTA5NzMsIDAuMzI0Njc1LCAwLjM3NzUxNiwgMC40NjE4NTksIDAuNTM1NDc1LCAwLjY0MTIwMiIsIFwKLSAgICAgICAgICAiMC4xOTA0ODUsIDAuMjY0MTM3LCAwLjMzNzc0MywgMC4zOTA0NCwgMC40NzQ5NzEsIDAuNTQ4NTA3LCAwLjY1MzkzMSIsIFwKLSAgICAgICAgICAiMC4yMDA3NDUsIDAuMjc0MzQ2LCAwLjM0ODA0MywgMC40MDA5MjIsIDAuNDg1MjI5LCAwLjU1OTExNCwgMC42NjQ0MDkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjkxOTgsIDAuMTc2NTM4LCAwLjMyNTg3NCwgMC40MzI2NjEsIDAuNjAyMDA3LCAwLjc1MjA5NSwgMC45NjYyNDciLCBcCi0gICAgICAgICAgIjAuMDI5Mzc1LCAwLjE3NjU0MywgMC4zMjU4NjYsIDAuNDMyNjYxLCAwLjYwMzMyNiwgMC43NTIxNzYsIDAuOTY0NzY2IiwgXAotICAgICAgICAgICIwLjAyOTIwNywgMC4xNzY1MzgsIDAuMzI1NjQ4LCAwLjQzMjU4MSwgMC42MDMyOTgsIDAuNzUyMTE4LCAwLjk2NDc5MSIsIFwKLSAgICAgICAgICAiMC4wMjkxNjgsIDAuMTc2NTM5LCAwLjMyNTY1NSwgMC40MzEzOTgsIDAuNjAzMywgMC43NTIxMDUsIDAuOTY0ODMyIiwgXAotICAgICAgICAgICIwLjAyOTE3NywgMC4xNzY1NDMsIDAuMzI1NTYxLCAwLjQzMjY2OSwgMC42MDMzMTMsIDAuNzUyMTAxLCAwLjk2NjM5MiIsIFwKLSAgICAgICAgICAiMC4wMjkzMjcsIDAuMTc2NTQ0LCAwLjMyNTU3LCAwLjQzMTgsIDAuNjAzMzEzLCAwLjc1MTYzNSwgMC45NjQ4MDgiLCBcCi0gICAgICAgICAgIjAuMDI5MjM0LCAwLjE3NjU0OSwgMC4zMjU0OTMsIDAuNDMyNjI1LCAwLjYwMzI1NiwgMC43NTI4MjgsIDAuOTY2MDMyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkciOwotICAgICAgdGltaW5nX3NlbnNlIDogbm9uX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiByaXNpbmdfZWRnZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xODg0NDIsIDAuMjYxNTk1LCAwLjMzNDg2OSwgMC4zODcwNzEsIDAuNDcwNTYsIDAuNTQzNDA1LCAwLjY0Nzc2NSIsIFwKLSAgICAgICAgICAiMC4xOTc2NzEsIDAuMjcwODIyLCAwLjM0NDA5NCwgMC4zOTYyODQsIDAuNDc5NDY4LCAwLjU1MjQzOSwgMC42NTY5NzYiLCBcCi0gICAgICAgICAgIjAuMjA5MzM4LCAwLjI4MjUwMiwgMC4zNTU3NzYsIDAuNDA3OTY3LCAwLjQ5MTQ2MywgMC41NjQzLCAwLjY2ODY1NiIsIFwKLSAgICAgICAgICAiMC4yMjEyNDksIDAuMjk0NDAzLCAwLjM2NzY3NywgMC40MTk0OSwgMC41MDMzNjcsIDAuNTc2MjA4LCAwLjY4MDU2NSIsIFwKLSAgICAgICAgICAiMC4yMzMwNTgsIDAuMzA2MjEyLCAwLjM3OTQ4NywgMC40MzEyOTQsIDAuNTE1MTc4LCAwLjU4ODAyLCAwLjY5MjM3NyIsIFwKLSAgICAgICAgICAiMC4yNTAzMjYsIDAuMzIzNDQ0LCAwLjM5NjM2LCAwLjQ0ODkwOCwgMC41MzI0NjEsIDAuNjA1MzAzLCAwLjcwOTYxMSIsIFwKLSAgICAgICAgICAiMC4yNjM5MjEsIDAuMzM3MDY4LCAwLjQwOTk4MywgMC40NjIxNjcsIDAuNTQ2MDM0LCAwLjYxODg3NywgMC43MjMyMzciKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjkzMSwgMC4xNzk4NjYsIDAuMzMxOTY4LCAwLjQ0MDU5MywgMC42MTQyOTQsIDAuNzY0OTc2LCAwLjk4MTIxNyIsIFwKLSAgICAgICAgICAiMC4wMjkyNjksIDAuMTc5OTExLCAwLjMzMTk2NiwgMC40NDA1NjgsIDAuNjEzMzgxLCAwLjc2NDI3NSwgMC45ODEzOTgiLCBcCi0gICAgICAgICAgIjAuMDI5MzQyLCAwLjE3OTg5OCwgMC4zMzE5NjcsIDAuNDQwNTcsIDAuNjE0MjgxLCAwLjc2NTEwNCwgMC45ODEzOTgiLCBcCi0gICAgICAgICAgIjAuMDI5MjU1LCAwLjE3OTg3OCwgMC4zMzE5NjcsIDAuNDM5NTI3LCAwLjYxNDI4NiwgMC43NjUwNDksIDAuOTgxMzQ4IiwgXAotICAgICAgICAgICIwLjAyOTI3LCAwLjE3OTg3MywgMC4zMzE5NjcsIDAuNDM5NDYxLCAwLjYxNDI4NywgMC43NjUwMjksIDAuOTgxMzI2IiwgXAotICAgICAgICAgICIwLjAyOTMzLCAwLjE3OTg3NywgMC4zMzEzODksIDAuNDQwMzc2LCAwLjYxNDI4NywgMC43NjUwMDYsIDAuOTgxMzE0IiwgXAotICAgICAgICAgICIwLjAyOTA1NSwgMC4xNzk4ODUsIDAuMzMwOTA4LCAwLjQzOTI3NywgMC42MTQyODUsIDAuNzY0OTkxLCAwLjk4MTI4NiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIwMDQzNSwgMC4yNzQwNTQsIDAuMzQ3NzQ2LCAwLjQwMDU5NiwgMC40ODQ4OTUsIDAuNTU4NzkzLCAwLjY2NDIzOSIsIFwKLSAgICAgICAgICAiMC4yMDk2MiwgMC4yODMyNCwgMC4zNTY5MzcsIDAuNDA5NjUyLCAwLjQ5NDExOCwgMC41Njc5NTksIDAuNjczNDU3IiwgXAotICAgICAgICAgICIwLjIyMTI0MywgMC4yOTQ4NiwgMC4zNjg1NjIsIDAuNDIxMzg4LCAwLjUwNTczNiwgMC41NzkzNiwgMC42ODUwOCIsIFwKLSAgICAgICAgICAiMC4yMzMwMTEsIDAuMzA2NjI4LCAwLjM4MDMyNCwgMC40MzMxNjUsIDAuNTE3NTY0LCAwLjU5MTM3NiwgMC42OTY0NzEiLCBcCi0gICAgICAgICAgIjAuMjQ0NzQyLCAwLjMxODQwNCwgMC4zOTIxMDMsIDAuNDQ0NzksIDAuNTI5Mjc5LCAwLjYwMzExNiwgMC43MDg2MjEiLCBcCi0gICAgICAgICAgIjAuMjYyNTQ5LCAwLjMzNjE2NSwgMC40MDk4NjQsIDAuNDYyNjQ4LCAwLjU0NzA0MywgMC42MjA4ODUsIDAuNzI2MzgzIiwgXAotICAgICAgICAgICIwLjI3NjUyOSwgMC4zNTAxNTEsIDAuNDIzODUsIDAuNDc2NTE4LCAwLjU2MTAzMSwgMC42MzQ4NywgMC43NDAzNzIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjkyMTEsIDAuMTc2NTU2LCAwLjMyNTU0NywgMC40MzI2MzksIDAuNjAzMjUxLCAwLjc1Mjg2MywgMC45NjYyMjUiLCBcCi0gICAgICAgICAgIjAuMDI5MjE2LCAwLjE3NjU1MSwgMC4zMjU1MTYsIDAuNDMyMzIyLCAwLjYwMzI5NiwgMC43NTI3NjksIDAuOTY2Mzc3IiwgXAotICAgICAgICAgICIwLjAyOTE3OSwgMC4xNzY1NDgsIDAuMzI1NDA0LCAwLjQzMjY3MiwgMC42MDMyOTgsIDAuNzUxOTcsIDAuOTY2MzgxIiwgXAotICAgICAgICAgICIwLjAyOTE4NiwgMC4xNzY1NTEsIDAuMzI1NTY0LCAwLjQzMjYxMywgMC42MDM1MywgMC43NTI4OTgsIDAuOTY0NzEyIiwgXAotICAgICAgICAgICIwLjAyOTE4OCwgMC4xNzY1NDgsIDAuMzI1NjAxLCAwLjQzMjExNSwgMC42MDMyOTcsIDAuNzUyNzM1LCAwLjk2NjM3NSIsIFwKLSAgICAgICAgICAiMC4wMjkyMDUsIDAuMTc2NTQ5LCAwLjMyNTQ4OCwgMC40MzI1NDYsIDAuNjAzMjk2LCAwLjc1Mjc3MSwgMC45NjYzNzYiLCBcCi0gICAgICAgICAgIjAuMDI5MTM2LCAwLjE3NjU0OSwgMC4zMjU0OTEsIDAuNDMyMDMyLCAwLjYwMzI5NiwgMC43NTI3NTQsIDAuOTY2Mzc2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiByaXNpbmdfZWRnZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xOTEwOTQsIDAuMjY0MjQ2LCAwLjMzNzUxNiwgMC4zODkzMjUsIDAuNDczMjAyLCAwLjU0NjA0MiwgMC42NTA0IiwgXAotICAgICAgICAgICIwLjE5OTkxNCwgMC4yNzMwNzksIDAuMzQ2MzQ3LCAwLjM5ODUyMiwgMC40ODIwMywgMC41NTQ4NjYsIDAuNjU5MjIzIiwgXAotICAgICAgICAgICIwLjIxMDcyMywgMC4yODM4ODYsIDAuMzU3MTYxLCAwLjQwOTM0NywgMC40OTI4NDcsIDAuNTY1Njg5LCAwLjY3MDA0NiIsIFwKLSAgICAgICAgICAiMC4yMjE1MTEsIDAuMjk0NjU4LCAwLjM2NzU2OSwgMC40MTk3NzksIDAuNTAzNjE1LCAwLjU3NjQ3OCwgMC42ODA4NDkiLCBcCi0gICAgICAgICAgIjAuMjMxOTk4LCAwLjMwNTE0NiwgMC4zNzg0MTUsIDAuNDMwMjE5LCAwLjUxNDA5OSwgMC41ODY5MzUsIDAuNjkxMjkxIiwgXAotICAgICAgICAgICIwLjI0NzI2NywgMC4zMjA0OTIsIDAuMzkzNjk2LCAwLjQ0NTQ5OCwgMC41MjkzODMsIDAuNjAyMjkzLCAwLjcwNjU4IiwgXAotICAgICAgICAgICIwLjI1OTg5MSwgMC4zMzMwNDQsIDAuNDA2MzE4LCAwLjQ1ODEzLCAwLjU0MjAwNiwgMC42MTQ4NDksIDAuNzE5MjA3Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDI5MjY4LCAwLjE3OTg3OSwgMC4zMzE5NjcsIDAuNDM5NDc5LCAwLjYxNDI4MiwgMC43NjUwNCwgMC45ODEzMzMiLCBcCi0gICAgICAgICAgIjAuMDI5MzM2LCAwLjE3OTkxOSwgMC4zMzE5NjUsIDAuNDQwMzQ3LCAwLjYxNDI3OSwgMC43NjUxMDksIDAuOTgxMzkzIiwgXAotICAgICAgICAgICIwLjAyOTM0NCwgMC4xNzk4NjcsIDAuMzMxOTcxLCAwLjQ0MDU2OCwgMC42MTQyOSwgMC43NjQ5OTksIDAuOTgxMjgxIiwgXAotICAgICAgICAgICIwLjAyOTI2LCAwLjE3OTg4NCwgMC4zMzA5MDgsIDAuNDM5MzQ1LCAwLjYxNDI4NSwgMC43NjQ5MDEsIDAuOTgyMDExIiwgXAotICAgICAgICAgICIwLjAyOTM2NCwgMC4xNzk5MjEsIDAuMzMxODI2LCAwLjQzOTUwMywgMC42MTQyNzksIDAuNzY1MTI3LCAwLjk4MTQwMiIsIFwKLSAgICAgICAgICAiMC4wMjkyOTksIDAuMTc5ODc1LCAwLjMzMTk2NywgMC40Mzk1MjYsIDAuNjE0Mjg1LCAwLjc2NTAzMSwgMC45ODEzNDEiLCBcCi0gICAgICAgICAgIjAuMDI5MjY3LCAwLjE3OTg3OSwgMC4zMzE5NjcsIDAuNDM5NTI2LCAwLjYxNDI4NCwgMC43NjQ5OTQsIDAuOTgxMjkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUk4iOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGZhbGxpbmdfZWRnZTsKLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xOTE2MjcsIDAuMjY1MjA1LCAwLjMzODk0MSwgMC4zOTE2ODIsIDAuNDc2MDA0LCAwLjU0OTY1MywgMC42NTQ5MDQiLCBcCi0gICAgICAgICAgIjAuMjAxMzE0LCAwLjI3NDg5NSwgMC4zNDg2MzEsIDAuNDAxMzgzLCAwLjQ4NTY5NSwgMC41NTkzMzEsIDAuNjY0NTg3IiwgXAotICAgICAgICAgICIwLjIxMzgxOSwgMC4yODc0MjIsIDAuMzYxMDc3LCAwLjQxMzkxNiwgMC40OTgyMzEsIDAuNTcxODU1LCAwLjY3NzQ3MyIsIFwKLSAgICAgICAgICAiMC4yMjU4NCwgMC4yOTk0MjEsIDAuMzczMTU1LCAwLjQyNTkxLCAwLjUxMDIyMywgMC41ODM4NTksIDAuNjg5MTE2IiwgXAotICAgICAgICAgICIwLjIzNjg2MiwgMC4zMTA0NywgMC4zODQyMjEsIDAuNDM2OTYxLCAwLjUyMTI3OSwgMC41OTQ4OTksIDAuNzAwNTIiLCBcCi0gICAgICAgICAgIjAuMjUyMzY4LCAwLjMyNjAxMSwgMC4zOTk2ODUsIDAuNDUyMzI3LCAwLjUzNjgzLCAwLjYxMDQ0NSwgMC43MTYwNjgiLCBcCi0gICAgICAgICAgIjAuMjY1ODE4LCAwLjMzOTQ3MywgMC40MTMyMjcsIDAuNDY1ODg2LCAwLjU1MDIxLCAwLjYyMzg0NCwgMC43MjkxMTIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjkyODQsIDAuMTc2NTQzLCAwLjMyNTg3NiwgMC40MzI2NzEsIDAuNjAzMzE5LCAwLjc1MjE3NCwgMC45NjY0NTkiLCBcCi0gICAgICAgICAgIjAuMDI5MjY3LCAwLjE3NjU0NCwgMC4zMjU4NzQsIDAuNDMyNjUyLCAwLjYwMzMxNywgMC43NTIxODEsIDAuOTY2NDMiLCBcCi0gICAgICAgICAgIjAuMDI5MjA4LCAwLjE3NjU0NiwgMC4zMjU5MjYsIDAuNDMyNjY1LCAwLjYwMzMxNCwgMC43NTIxNzksIDAuOTY2NDYyIiwgXAotICAgICAgICAgICIwLjAyOTI3MiwgMC4xNzY1NDUsIDAuMzI1ODc0LCAwLjQzMjY1LCAwLjYwMzMxNSwgMC43NTIxNzUsIDAuOTY0Nzg1IiwgXAotICAgICAgICAgICIwLjAyOTI1MywgMC4xNzY1NDYsIDAuMzI1OTE0LCAwLjQzMjY2MiwgMC42MDMzMTMsIDAuNzUyMTgxLCAwLjk2NjQ2IiwgXAotICAgICAgICAgICIwLjAyOTI4NywgMC4xNzY1NDYsIDAuMzI1NjY1LCAwLjQzMTk0NywgMC42MDMyOTMsIDAuNzUyMTgzLCAwLjk2NjQyNiIsIFwKLSAgICAgICAgICAiMC4wMjkyNjYsIDAuMTc2NTQ1LCAwLjMyNTk1OCwgMC40MzI2NzMsIDAuNjAzMzA3LCAwLjc1MjcyNCwgMC45NjYzODEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiU04iOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHByZXNldDsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjI3OTcsIDAuMTM1ODY1LCAwLjIwODk0NCwgMC4yNjE0MTIsIDAuMzQ1MDA0LCAwLjQxNzg3NCwgMC41MjIzNDciLCBcCi0gICAgICAgICAgIjAuMDcyODAzLCAwLjE0NTg1NiwgMC4yMTg5MzYsIDAuMjcxMTE1LCAwLjM1NTAwOSwgMC40Mjc4NjMsIDAuNTMyMjE4IiwgXAotICAgICAgICAgICIwLjA4NTEzNiwgMC4xNTgxOSwgMC4yMzE2NTcsIDAuMjgzNTkzLCAwLjM2NzI2MywgMC40NDAyLCAwLjU0NDY1NiIsIFwKLSAgICAgICAgICAiMC4wOTY4NzksIDAuMTcwMDc3LCAwLjI0MzM4NCwgMC4yOTUzMDUsIDAuMzc5MDg4LCAwLjQ1MTk0MSwgMC41NTYzNTYiLCBcCi0gICAgICAgICAgIjAuMTA3MjU5LCAwLjE4MDMyLCAwLjI1MzY1MSwgMC4zMDU2MzMsIDAuMzg5MzQsIDAuNDYyMjQzLCAwLjU2NjU4OCIsIFwKLSAgICAgICAgICAiMC4xMjEzOTYsIDAuMTk0MjY0LCAwLjI2NzM2MSwgMC4zMTk3MDEsIDAuNDAzMTQ4LCAwLjQ3NjI4NSwgMC41ODA2OTQiLCBcCi0gICAgICAgICAgIjAuMTMyMDg2LCAwLjIwNDkwMiwgMC4yNzc5MzcsIDAuMzMwMjY1LCAwLjQxMzc3NCwgMC40ODY4ODYsIDAuNTkxMjU4Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDI5MjI3LCAwLjE3OTUxOSwgMC4zMzE0MDcsIDAuNDQwMjY1LCAwLjYxNDA2MiwgMC43NjU1MzksIDAuOTgyNzY1IiwgXAotICAgICAgICAgICIwLjAyOTMwMiwgMC4xNzkzMywgMC4zMzE1MDYsIDAuNDM5Nzc5LCAwLjYxNDIyNywgMC43NjU1MjgsIDAuOTgxNzM2IiwgXAotICAgICAgICAgICIwLjAyOTIyOSwgMC4xNzk1MDcsIDAuMzMxODQ1LCAwLjQ0MDI1LCAwLjYxMzg1NiwgMC43NjU5OTcsIDAuOTgyODM0IiwgXAotICAgICAgICAgICIwLjAyOTI3OSwgMC4xNzk5NzgsIDAuMzMxOTcyLCAwLjQzOTc1MSwgMC42MTQxODgsIDAuNzY1NTAyLCAwLjk4Mjc3MyIsIFwKLSAgICAgICAgICAiMC4wMjk0NTQsIDAuMTc5OTUsIDAuMzMxOTY3LCAwLjQ0MDI3OCwgMC42MTQxMTEsIDAuNzY1NzEyLCAwLjk4MTkzNiIsIFwKLSAgICAgICAgICAiMC4wMjk1MTQsIDAuMTc5NzI5LCAwLjMzMTYyNywgMC40NDAyMDQsIDAuNjEzOTA5LCAwLjc2NTc4OSwgMC45ODI3NjIiLCBcCi0gICAgICAgICAgIjAuMDI5ODMyLCAwLjE3OTcsIDAuMzMxNjYyLCAwLjQ0MDE1NiwgMC42MTM3NDYsIDAuNzY2LCAwLjk4Mjg2MiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4NzMwNSwgMC4xNjA5OSwgMC4yMzQ2ODMsIDAuMjg3NDkyLCAwLjM3MTg4OCwgMC40NDU0ODgsIDAuNTUxMjI5IiwgXAotICAgICAgICAgICIwLjA5NTcxNiwgMC4xNjkzNjgsIDAuMjQzMDY3LCAwLjI5NTcxNiwgMC4zODAyNTUsIDAuNDUzODY0LCAwLjU1OTYwNSIsIFwKLSAgICAgICAgICAiMC4xMDYwODUsIDAuMTc5NzY3LCAwLjI1MzQ2LCAwLjMwNjMwOCwgMC4zOTA2NjQsIDAuNDY0MjU5LCAwLjU3MDAwMiIsIFwKLSAgICAgICAgICAiMC4xMTY1MiwgMC4xODk5NzUsIDAuMjYzNjYzLCAwLjMxNjUyNSwgMC40MDA4NjEsIDAuNDc0NjkxLCAwLjU4MDIwMyIsIFwKLSAgICAgICAgICAiMC4xMjYzMzYsIDAuMTk5OTg5LCAwLjI3MzY4NiwgMC4zMjY0ODgsIDAuNDEwODgyLCAwLjQ4NDQ4OCwgMC41OTAyMjQiLCBcCi0gICAgICAgICAgIjAuMTQxMDQ2LCAwLjIxNDUzMSwgMC4yODgyOTIsIDAuMzQxMTQxLCAwLjQyNTQ5NCwgMC40OTkxMzYsIDAuNjA0ODI4IiwgXAotICAgICAgICAgICIwLjE1MjQ5NiwgMC4yMjYwMDcsIDAuMjk5NzQ4LCAwLjM1MjQ0OSwgMC40MzY4NzYsIDAuNTEwNzAyLCAwLjYxNjEzNSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyOTExNCwgMC4xNzY1NDUsIDAuMzI1NTA1LCAwLjQzMjcwNSwgMC42MDMzNDEsIDAuNzUyMDcsIDAuOTY2NDEzIiwgXAotICAgICAgICAgICIwLjAyOTE1MiwgMC4xNzY1MzYsIDAuMzI1OTMsIDAuNDMyNjU4LCAwLjYwMzMyNywgMC43NTE4NjcsIDAuOTY2NDMzIiwgXAotICAgICAgICAgICIwLjAyOTE4OCwgMC4xNzY1NDEsIDAuMzI1NDkzLCAwLjQzMjY4NSwgMC42MDMzMiwgMC43NTE5NTgsIDAuOTY2MzU3IiwgXAotICAgICAgICAgICIwLjAyOTMzOCwgMC4xNzY1NDIsIDAuMzI1NjQ3LCAwLjQzMjY3NiwgMC42MDMzMTMsIDAuNzUyNzE1LCAwLjk2NjQ3MyIsIFwKLSAgICAgICAgICAiMC4wMjkxNDUsIDAuMTc2NTM5LCAwLjMyNTU0NiwgMC40MzI2MzEsIDAuNjAzNTMyLCAwLjc1Mjk2NiwgMC45NjYzNTUiLCBcCi0gICAgICAgICAgIjAuMDI5Mzc3LCAwLjE3NjUyLCAwLjMyNTYyNCwgMC40MzI1OTQsIDAuNjAzMzA4LCAwLjc1MjExLCAwLjk2NjQ5OCIsIFwKLSAgICAgICAgICAiMC4wMjk0ODEsIDAuMTc2NTg0LCAwLjMyNTg5MiwgMC40MzI1MjIsIDAuNjAzNjEyLCAwLjc1MzAzNiwgMC45NjYxODMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJEIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNzg0OSwgMC4wMDgwMjEsIDAuMDA4MDQ2LCAwLjAwODA1MywgMC4wMDgwNTksIDAuMDA4MDYzLCAwLjAwODA2NiIsIFwKLSAgICAgICAgICAiMC4wMDc4MzYsIDAuMDA4MDEsIDAuMDA4MDM0LCAwLjAwODA0MiwgMC4wMDgwMzcsIDAuMDA4MDUyLCAwLjAwODA1NSIsIFwKLSAgICAgICAgICAiMC4wMDc4MjgsIDAuMDA4MDA1LCAwLjAwODAyNSwgMC4wMDgwMzQsIDAuMDA4MDM5LCAwLjAwODA0MiwgMC4wMDgwMzgiLCBcCi0gICAgICAgICAgIjAuMDA3ODIsIDAuMDA3OTkyLCAwLjAwODAxOSwgMC4wMDgwMjUsIDAuMDA4MDI4LCAwLjAwODAzNSwgMC4wMDgwNDMiLCBcCi0gICAgICAgICAgIjAuMDA3ODE0LCAwLjAwNzk4NiwgMC4wMDgwMTMsIDAuMDA4MDE4LCAwLjAwODAyNiwgMC4wMDgwMywgMC4wMDgwMjciLCBcCi0gICAgICAgICAgIjAuMDA3ODA4LCAwLjAwNzk4MSwgMC4wMDgwMDYsIDAuMDA4MDE0LCAwLjAwODAyNCwgMC4wMDgwMjUsIDAuMDA4MDI5IiwgXAotICAgICAgICAgICIwLjAwNzgxLCAwLjAwNzk4LCAwLjAwODAxLCAwLjAwODAxNCwgMC4wMDgwMjMsIDAuMDA4MDI2LCAwLjAwODAyOCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA4MzI5LCAwLjAwODQ5MSwgMC4wMDg1MTUsIDAuMDA4NTIzLCAwLjAwODUzLCAwLjAwODUzMywgMC4wMDg1MzYiLCBcCi0gICAgICAgICAgIjAuMDA4MzE4LCAwLjAwODQ3OSwgMC4wMDg1MDUsIDAuMDA4NTEzLCAwLjAwODUyLCAwLjAwODUyNCwgMC4wMDg1MjciLCBcCi0gICAgICAgICAgIjAuMDA4MzE3LCAwLjAwODQ3OCwgMC4wMDg1MDQsIDAuMDA4NTEsIDAuMDA4NTE3LCAwLjAwODUyLCAwLjAwODUyNCIsIFwKLSAgICAgICAgICAiMC4wMDgzMTQsIDAuMDA4NDc2LCAwLjAwODUwMywgMC4wMDg1MDksIDAuMDA4NTE0LCAwLjAwODUxOSwgMC4wMDg1MjIiLCBcCi0gICAgICAgICAgIjAuMDA4MzExLCAwLjAwODQ3MSwgMC4wMDg0OTcsIDAuMDA4NTA1LCAwLjAwODUxMSwgMC4wMDg1MTYsIDAuMDA4NTE5IiwgXAotICAgICAgICAgICIwLjAwODMwOCwgMC4wMDg0NjcsIDAuMDA4NDkzLCAwLjAwODUwMSwgMC4wMDg1MDgsIDAuMDA4NTExLCAwLjAwODUxIiwgXAotICAgICAgICAgICIwLjAwODI5NCwgMC4wMDg0NTgsIDAuMDA4NDg3LCAwLjAwODQ4OSwgMC4wMDg0OTYsIDAuMDA4NTA0LCAwLjAwODUxMiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkciOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA4ODE0LCAwLjAwODk4MSwgMC4wMDg5OTQsIDAuMDA4OTg2LCAwLjAwODk4OSwgMC4wMDg5ODIsIDAuMDA4OTc4IiwgXAotICAgICAgICAgICIwLjAwODgwNywgMC4wMDg5NzEsIDAuMDA4OTgxLCAwLjAwODk3NiwgMC4wMDg5NzYsIDAuMDA4OTcyLCAwLjAwODk2OCIsIFwKLSAgICAgICAgICAiMC4wMDg4MDMsIDAuMDA4OTY3LCAwLjAwODk3NywgMC4wMDg5NzYsIDAuMDA4OTczLCAwLjAwODk3LCAwLjAwODk2NSIsIFwKLSAgICAgICAgICAiMC4wMDg4LCAwLjAwODk2NiwgMC4wMDg5OCwgMC4wMDg5NzYsIDAuMDA4OTcxLCAwLjAwODk2OCwgMC4wMDg5NjQiLCBcCi0gICAgICAgICAgIjAuMDA4ODA1LCAwLjAwODk3MSwgMC4wMDg5ODYsIDAuMDA4OTgsIDAuMDA4OTgxLCAwLjAwODk3NCwgMC4wMDg5NyIsIFwKLSAgICAgICAgICAiMC4wMDg4MTcsIDAuMDA4OTgxLCAwLjAwODk5MiwgMC4wMDg5OSwgMC4wMDg5ODksIDAuMDA4OTg0LCAwLjAwODk4IiwgXAotICAgICAgICAgICIwLjAwODgzMiwgMC4wMDg5OTcsIDAuMDA5MDA4LCAwLjAwOTAwNywgMC4wMDkwMDUsIDAuMDA5LCAwLjAwODk5NiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA5MTc2LCAwLjAwOTMzNywgMC4wMDkzNjMsIDAuMDA5MzcxLCAwLjAwOTM2OSwgMC4wMDkzODcsIDAuMDA5Mzc4IiwgXAotICAgICAgICAgICIwLjAwOTE1OSwgMC4wMDkzMiwgMC4wMDkzNDYsIDAuMDA5MzU1LCAwLjAwOTM2MywgMC4wMDkzNTksIDAuMDA5MzY3IiwgXAotICAgICAgICAgICIwLjAwOTE1NSwgMC4wMDkzMTgsIDAuMDA5MzQzLCAwLjAwOTM1MSwgMC4wMDkzNTcsIDAuMDA5MzYxLCAwLjAwOTM2OSIsIFwKLSAgICAgICAgICAiMC4wMDkxNTYsIDAuMDA5MzE3LCAwLjAwOTM0MiwgMC4wMDkzNSwgMC4wMDkzNTcsIDAuMDA5MzU2LCAwLjAwOTM2MyIsIFwKLSAgICAgICAgICAiMC4wMDkxNjEsIDAuMDA5MzI1LCAwLjAwOTM1LCAwLjAwOTM1NSwgMC4wMDkzNjksIDAuMDA5MzY4LCAwLjAwOTM3MSIsIFwKLSAgICAgICAgICAiMC4wMDkxNjUsIDAuMDA5MzI0LCAwLjAwOTM0OSwgMC4wMDkzNjMsIDAuMDA5MzY4LCAwLjAwOTM2MiwgMC4wMDkzNzEiLCBcCi0gICAgICAgICAgIjAuMDA5MTgzLCAwLjAwOTM0NCwgMC4wMDkzNjksIDAuMDA5Mzc3LCAwLjAwOTM4NCwgMC4wMDkzODgsIDAuMDA5Mzk1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUk4iOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA4NzAyLCAwLjAwODg2NywgMC4wMDg4NzcsIDAuMDA4ODc1LCAwLjAwODg3NCwgMC4wMDg4NjcsIDAuMDA4ODYyIiwgXAotICAgICAgICAgICIwLjAwODY5NywgMC4wMDg4NiwgMC4wMDg4NzEsIDAuMDA4ODY2LCAwLjAwODg2NSwgMC4wMDg4NiwgMC4wMDg4NTUiLCBcCi0gICAgICAgICAgIjAuMDA4Njg4LCAwLjAwODg1MiwgMC4wMDg4NjIsIDAuMDA4ODYsIDAuMDA4ODU2LCAwLjAwODg1MiwgMC4wMDg4NDciLCBcCi0gICAgICAgICAgIjAuMDA4Njg1LCAwLjAwODg0OSwgMC4wMDg4NTksIDAuMDA4ODU3LCAwLjAwODg1MywgMC4wMDg4NSwgMC4wMDg4NDUiLCBcCi0gICAgICAgICAgIjAuMDA4NjksIDAuMDA4ODU0LCAwLjAwODg2NSwgMC4wMDg4NjIsIDAuMDA4ODU5LCAwLjAwODg1NCwgMC4wMDg4NDkiLCBcCi0gICAgICAgICAgIjAuMDA4Njg1LCAwLjAwODg1MSwgMC4wMDg4NjEsIDAuMDA4ODYsIDAuMDA4ODU5LCAwLjAwODg1MSwgMC4wMDg4NDgiLCBcCi0gICAgICAgICAgIjAuMDA4NjkyLCAwLjAwODg1OCwgMC4wMDg4NjgsIDAuMDA4ODY2LCAwLjAwODg2MiwgMC4wMDg4NTksIDAuMDA4ODU0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTA2NTMsIDAuMDEwODA4LCAwLjAxMDgyMiwgMC4wMTA4MjMsIDAuMDEwODE2LCAwLjAxMDgxNywgMC4wMTA4MjQiLCBcCi0gICAgICAgICAgIjAuMDEwNjQxLCAwLjAxMDc5NywgMC4wMTA4MTEsIDAuMDEwODE3LCAwLjAxMDgxNywgMC4wMTA4MDMsIDAuMDEwODA3IiwgXAotICAgICAgICAgICIwLjAxMDYzOCwgMC4wMTA3OTQsIDAuMDEwODA5LCAwLjAxMDgxLCAwLjAxMDgwOSwgMC4wMTA4MDksIDAuMDEwODA0IiwgXAotICAgICAgICAgICIwLjAxMDYzNywgMC4wMTA3OTMsIDAuMDEwODA4LCAwLjAxMDgxNSwgMC4wMTA4MDMsIDAuMDEwODEsIDAuMDEwODA5IiwgXAotICAgICAgICAgICIwLjAxMDYzOSwgMC4wMTA3OTYsIDAuMDEwODA5LCAwLjAxMDgxLCAwLjAxMDgxLCAwLjAxMDgwNywgMC4wMTA4MDciLCBcCi0gICAgICAgICAgIjAuMDEwNjQ3LCAwLjAxMDgwMiwgMC4wMTA4MTgsIDAuMDEwODIsIDAuMDEwODIxLCAwLjAxMDgxMywgMC4wMTA4MTQiLCBcCi0gICAgICAgICAgIjAuMDEwNjQ5LCAwLjAxMDgwNywgMC4wMTA4MjMsIDAuMDEwODIsIDAuMDEwODI0LCAwLjAxMDgyOCwgMC4wMTA4MiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwODcxOCwgMC4wMDg4NjcsIDAuMDA4ODg0LCAwLjAwODg4OSwgMC4wMDg4OTQsIDAuMDA4ODk2LCAwLjAwODg5OSIsIFwKLSAgICAgICAgICAiMC4wMDg2ODQsIDAuMDA4ODM3LCAwLjAwODg1NiwgMC4wMDg4NjMsIDAuMDA4ODY3LCAwLjAwODg2OSwgMC4wMDg4NzIiLCBcCi0gICAgICAgICAgIjAuMDA4NjQzLCAwLjAwODgwMiwgMC4wMDg4MjUsIDAuMDA4ODMyLCAwLjAwODgzOSwgMC4wMDg4NDIsIDAuMDA4ODQ1IiwgXAotICAgICAgICAgICIwLjAwODYwOSwgMC4wMDg3NzUsIDAuMDA4ODAzLCAwLjAwODgxMSwgMC4wMDg4MjIsIDAuMDA4ODI1LCAwLjAwODgzIiwgXAotICAgICAgICAgICIwLjAwODYwMiwgMC4wMDg3NjEsIDAuMDA4Nzk5LCAwLjAwODgwOSwgMC4wMDg4MTgsIDAuMDA4ODIyLCAwLjAwODgyNyIsIFwKLSAgICAgICAgICAiMC4wMDg2MDYsIDAuMDA4NzY2LCAwLjAwODc5OCwgMC4wMDg4MDgsIDAuMDA4ODIsIDAuMDA4ODI2LCAwLjAwODgzMSIsIFwKLSAgICAgICAgICAiMC4wMDg2MjIsIDAuMDA4NzgsIDAuMDA4ODE0LCAwLjAwODgyOCwgMC4wMDg4MzksIDAuMDA4ODQ1LCAwLjAwODg1MiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2ODUsIDAuMDA3MDA3LCAwLjAwNzAyOCwgMC4wMDcwMzUsIDAuMDA3MDQsIDAuMDA3MDQzLCAwLjAwNzA0NiIsIFwKLSAgICAgICAgICAiMC4wMDY4MDgsIDAuMDA2OTY5LCAwLjAwNjk5MiwgMC4wMDY5OTksIDAuMDA3MDA2LCAwLjAwNzAwNiwgMC4wMDcwMDkiLCBcCi0gICAgICAgICAgIjAuMDA2Nzg1LCAwLjAwNjk0OCwgMC4wMDY5NzEsIDAuMDA2OTc5LCAwLjAwNjk4NiwgMC4wMDY5ODcsIDAuMDA2OTkiLCBcCi0gICAgICAgICAgIjAuMDA2Nzk0LCAwLjAwNjk0OCwgMC4wMDY5NzMsIDAuMDA2OTgsIDAuMDA2OTg3LCAwLjAwNjk5LCAwLjAwNjk5NCIsIFwKLSAgICAgICAgICAiMC4wMDY4LCAwLjAwNjk1MiwgMC4wMDY5OCwgMC4wMDY5ODcsIDAuMDA2OTk1LCAwLjAwNjk5OSwgMC4wMDcwMDIiLCBcCi0gICAgICAgICAgIjAuMDA2ODQ1LCAwLjAwNjk3MSwgMC4wMDcsIDAuMDA3MDA5LCAwLjAwNzAxNSwgMC4wMDcwMjMsIDAuMDA3MDI0IiwgXAotICAgICAgICAgICIwLjAwNjg1NSwgMC4wMDcwMTIsIDAuMDA3MDQxLCAwLjAwNzA1LCAwLjAwNzA2MSwgMC4wMDcwNjcsIDAuMDA3MDciKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFFOKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDEuMDI5MDE7Ci0gICAgZnVuY3Rpb24gOiAiTjUiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkQiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTMyMTEzLCAwLjIxMjg5OSwgMC4yODU4NzksIDAuMzM3OTQxLCAwLjQyMTE0NywgMC40OTM5NywgMC41OTgwMjYiLCBcCi0gICAgICAgICAgIjAuMTQwNTU0LCAwLjIyMTM0NCwgMC4yOTQzMjUsIDAuMzQ2Mzg3LCAwLjQyOTYwNiwgMC41MDI0MzgsIDAuNjA2NTQ4IiwgXAotICAgICAgICAgICIwLjE1MDI5OSwgMC4yMzEwODcsIDAuMzA0MDcsIDAuMzU2MTA2LCAwLjQzOTM0LCAwLjUxMjE1NSwgMC42MTYyOTMiLCBcCi0gICAgICAgICAgIjAuMTU5NjM5LCAwLjI0MDQ0NCwgMC4zMTM0MjMsIDAuMzY1NDYsIDAuNDQ4Njk0LCAwLjUyMTUwNywgMC42MjU2NTQiLCBcCi0gICAgICAgICAgIjAuMTY4NjI3LCAwLjI0OTQxMywgMC4zMjI0MDUsIDAuMzc0NDYzLCAwLjQ1NzY3NiwgMC41MzA1MjksIDAuNjM0NTk1IiwgXAotICAgICAgICAgICIwLjE4MTc3LCAwLjI2MjU2LCAwLjMzNTU0OSwgMC4zODc2MSwgMC40NzA4MTksIDAuNTQzNzYyLCAwLjY0Nzc1MyIsIFwKLSAgICAgICAgICAiMC4xOTIwMTYsIDAuMjcyODUsIDAuMzQ1ODQ3LCAwLjM5Nzg5MywgMC40ODExMDQsIDAuNTUzOTY0LCAwLjY1Nzk5NSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0NDMyMSwgMC4xODY1NjUsIDAuMzM0NjI0LCAwLjQ0MTkzMSwgMC42MTI4MTIsIDAuNzY0NTEzLCAwLjk4MjA4IiwgXAotICAgICAgICAgICIwLjA0NDQ0MiwgMC4xODY1ODQsIDAuMzM0NjA3LCAwLjQ0MTk1NCwgMC42MTQzNDksIDAuNzY0Njg5LCAwLjk4MDE3NSIsIFwKLSAgICAgICAgICAiMC4wNDQzMjEsIDAuMTg2NTY1LCAwLjMzNDM4NSwgMC40NDE4MzgsIDAuNjE0MjMxLCAwLjc2NDU1MywgMC45ODAxOTgiLCBcCi0gICAgICAgICAgIjAuMDQ0Mzk1LCAwLjE4NjU3OSwgMC4zMzQzODgsIDAuNDQwNzkxLCAwLjYxNDIyMSwgMC43NjQ1MzIsIDAuOTgwMjA3IiwgXAotICAgICAgICAgICIwLjA0NDM0NCwgMC4xODY1NzgsIDAuMzM0Mzc3LCAwLjQ0MTk3MSwgMC42MTQzMTMsIDAuNzY0NzQzLCAwLjk4MjE2NSIsIFwKLSAgICAgICAgICAiMC4wNDQzNjEsIDAuMTg2NTg2LCAwLjMzNDI1MSwgMC40NDA5NjUsIDAuNjE0MzE4LCAwLjc2NDEwNiwgMC45ODAwNzUiLCBcCi0gICAgICAgICAgIjAuMDQ0NDE4LCAwLjE4NjYzOSwgMC4zMzQxOSwgMC40NDE5ODksIDAuNjE0MTY4LCAwLjc2NTY5OSwgMC45ODE0NDEiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDg3NzksIDAuMTg1MzgxLCAwLjI1ODkzMiwgMC4zMTE0NzIsIDAuMzk1NTc2LCAwLjQ2OTA3NCwgMC41NzQxODIiLCBcCi0gICAgICAgICAgIjAuMTE3NzQ2LCAwLjE5NDM1NiwgMC4yNjc5NDMsIDAuMzIwNDE4LCAwLjQwNDUxMywgMC40NzgwMzgsIDAuNTgzMTA1IiwgXAotICAgICAgICAgICIwLjEyODYzLCAwLjIwNTIzMiwgMC4yNzg4MjEsIDAuMzMxMzE1LCAwLjQxNTM5LCAwLjQ4ODg3NSwgMC41OTM5NTMiLCBcCi0gICAgICAgICAgIjAuMTM5MDQ4LCAwLjIxNTY1LCAwLjI4OTIsIDAuMzQxNzQ0LCAwLjQyNTc0NCwgMC40OTkyNjgsIDAuNjA0Mjg4IiwgXAotICAgICAgICAgICIwLjE0OTIyNywgMC4yMjU4MjcsIDAuMjk5NDAyLCAwLjM1MTkyMywgMC40MzU4NzEsIDAuNTA5NDE1LCAwLjYxNDUxOSIsIFwKLSAgICAgICAgICAiMC4xNjQxNDcsIDAuMjQwNzYsIDAuMzE0MzY2LCAwLjM2Njg2NiwgMC40NTA5MzYsIDAuNTI0NDUyLCAwLjYyOTU0OSIsIFwKLSAgICAgICAgICAiMC4xNzU5OTQsIDAuMjUyNjM1LCAwLjMyNjIwNCwgMC4zNzg3MzQsIDAuNDYyNzk2LCAwLjUzNjMyNywgMC42NDE0MDUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzYwMDgsIDAuMTc4MjMxLCAwLjMyNTY3MSwgMC40MzI1MiwgMC42MDE3NzcsIDAuNzUyMjI5LCAwLjk2MzAyNSIsIFwKLSAgICAgICAgICAiMC4wMzYsIDAuMTc4MjAxLCAwLjMyNTg5LCAwLjQzMjExNCwgMC42MDMwNzUsIDAuNzUxMTM4LCAwLjk2MzI3OCIsIFwKLSAgICAgICAgICAiMC4wMzYwMTUsIDAuMTc4MjE2LCAwLjMyNjU5NSwgMC40MzEzOTcsIDAuNjAzMTAzLCAwLjc1MTkxOSwgMC45NjE4MDUiLCBcCi0gICAgICAgICAgIjAuMDM2MDMxLCAwLjE3ODIxMiwgMC4zMjY0MjgsIDAuNDMyMTM4LCAwLjYwMjgxNiwgMC43NTE5MTIsIDAuOTY0OTQyIiwgXAotICAgICAgICAgICIwLjAzNjAxNywgMC4xNzgyMjksIDAuMzI1NjgsIDAuNDMyMTM5LCAwLjYwMDg5MywgMC43NTE3ODQsIDAuOTY0NzI1IiwgXAotICAgICAgICAgICIwLjAzNjE4MSwgMC4xNzgyMzcsIDAuMzI2NjI4LCAwLjQzMjY2NywgMC42MDMxMTEsIDAuNzUxMTI2LCAwLjk2MzM3IiwgXAotICAgICAgICAgICIwLjAzNjE4MiwgMC4xNzg2ODUsIDAuMzI2NDI2LCAwLjQzMjQ5NSwgMC42MDMwODMsIDAuNzUxMTU2LCAwLjk2MzI2NiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJHIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5vbl91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcmlzaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTkxNzY0LCAwLjI3MjYzMSwgMC4zNDU2MjksIDAuMzk3NjcsIDAuNDgwODc4LCAwLjU1Mzc0NSwgMC42NTc3NjEiLCBcCi0gICAgICAgICAgIjAuMjAwOTQ5LCAwLjI4MTgxLCAwLjM1NDgwNCwgMC40MDY4MjUsIDAuNDkwMDY5LCAwLjU2MjksIDAuNjY2OTc5IiwgXAotICAgICAgICAgICIwLjIxMjU0OCwgMC4yOTM0MjQsIDAuMzY2NDE1LCAwLjQxODQ3MSwgMC41MDE2ODEsIDAuNTc0NTQyLCAwLjY3ODU5NyIsIFwKLSAgICAgICAgICAiMC4yMjQzMzEsIDAuMzA1MTkzLCAwLjM3ODE4OSwgMC40MzAyMzYsIDAuNTEzNTAyLCAwLjU4NjMxOSwgMC42OTA0NTYiLCBcCi0gICAgICAgICAgIjAuMjM2MDcsIDAuMzE2OTYzLCAwLjM4OTk1NCwgMC40NDE5ODEsIDAuNTI1MjE5LCAwLjU5ODA0NiwgMC43MDIxMzMiLCBcCi0gICAgICAgICAgIjAuMjUzODksIDAuMzM0NzQ0LCAwLjQwNzczOCwgMC40NTk3NjIsIDAuNTQzMDAzLCAwLjYxNTgzNiwgMC43MTk5MTQiLCBcCi0gICAgICAgICAgIjAuMjY3ODY3LCAwLjM0ODcyNywgMC40MjE3MjIsIDAuNDczNzU4LCAwLjU1Njk4NywgMC42Mjk4MTcsIDAuNzMzOSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0NDYwOCwgMC4xODY2NTcsIDAuMzM0MjcyLCAwLjQ0MjAwMSwgMC42MTQxNCwgMC43NjU3MTMsIDAuOTgyMDY5IiwgXAotICAgICAgICAgICIwLjA0NDUzMSwgMC4xODY2NDIsIDAuMzM0MjE4LCAwLjQ0MTQ1MiwgMC42MTQyOSwgMC43NjU2NjYsIDAuOTgyMTUzIiwgXAotICAgICAgICAgICIwLjA0NDUzLCAwLjE4NjY0MSwgMC4zMzQxNzIsIDAuNDQxOTQ0LCAwLjYxNDI5LCAwLjc2NDY3MSwgMC45ODIxNTciLCBcCi0gICAgICAgICAgIjAuMDQ0NTI5LCAwLjE4NjY0MiwgMC4zMzQyNjMsIDAuNDQxOTU5LCAwLjYxNDQ4LCAwLjc2NTczNSwgMC45ODAwMjEiLCBcCi0gICAgICAgICAgIjAuMDQ0NTk1LCAwLjE4NjY0NCwgMC4zMzQzODksIDAuNDQxMzksIDAuNjE0MjksIDAuNzY1NjUsIDAuOTgyMTU0IiwgXAotICAgICAgICAgICIwLjA0NDU0MywgMC4xODY2NCwgMC4zMzQxOTUsIDAuNDQxNzcsIDAuNjE0MjkzLCAwLjc2NTY2OCwgMC45ODIxNTMiLCBcCi0gICAgICAgICAgIjAuMDQ0NTM4LCAwLjE4NjY0MSwgMC4zMzQxOTgsIDAuNDQxMjI5LCAwLjYxNDI5MywgMC43NjU2NiwgMC45ODIxNTMiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNzkwNDUsIDAuMjU1NjU4LCAwLjMyOTIzNSwgMC4zODE3NzcsIDAuNDY1ODA3LCAwLjUzOTMyMiwgMC42NDQ0MSIsIFwKLSAgICAgICAgICAiMC4xODgyNjUsIDAuMjY0ODc3LCAwLjMzODQ1MSwgMC4zOTA5ODQsIDAuNDc1MDIsIDAuNTQ4NDE1LCAwLjY1MzYxNCIsIFwKLSAgICAgICAgICAiMC4xOTk5MzgsIDAuMjc2NTQ4LCAwLjM1MDEyMiwgMC40MDI2NTUsIDAuNDg2NjksIDAuNTYwMjEyLCAwLjY2NTI4NCIsIFwKLSAgICAgICAgICAiMC4yMTE4NSwgMC4yODg0NjMsIDAuMzYyMDM4LCAwLjQxNDU5MywgMC40OTg2MDksIDAuNTcyMTI4LCAwLjY3NzIwNSIsIFwKLSAgICAgICAgICAiMC4yMjM2NjEsIDAuMzAwMjc0LCAwLjM3Mzg1LCAwLjQyNjQsIDAuNTEwNDIxLCAwLjU4MzkzOCwgMC42ODkwMTkiLCBcCi0gICAgICAgICAgIjAuMjQwOTM0LCAwLjMxNzQ5NywgMC4zOTEwNzQsIDAuNDQzNjAyLCAwLjUyNzY5LCAwLjYwMTIwNiwgMC43MDYyNDIiLCBcCi0gICAgICAgICAgIjAuMjU0NTIsIDAuMzMxMTMsIDAuNDA0NzA2LCAwLjQ1NzIzNiwgMC41NDEyNzUsIDAuNjE0NzksIDAuNzE5ODc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM1OTU2LCAwLjE3ODc1NiwgMC4zMjY1ODEsIDAuNDMyODQ0LCAwLjYwMzA4NSwgMC43NTExMDcsIDAuOTYzMjgxIiwgXAotICAgICAgICAgICIwLjAzNTk1MywgMC4xNzg3OSwgMC4zMjY1NzksIDAuNDMyODAyLCAwLjYwMTkwMSwgMC43NTAwNTYsIDAuOTYzMjY4IiwgXAotICAgICAgICAgICIwLjAzNTk3MSwgMC4xNzg3ODEsIDAuMzI2NTgsIDAuNDMyODA1LCAwLjYwMzA2NSwgMC43NTExNTEsIDAuOTYzMjY5IiwgXAotICAgICAgICAgICIwLjAzNTk1MSwgMC4xNzg3NjMsIDAuMzI2NTc5LCAwLjQzMTg5NiwgMC42MDMwNzMsIDAuNzUxMTMzLCAwLjk2MzI3MiIsIFwKLSAgICAgICAgICAiMC4wMzU5NTMsIDAuMTc4NzYsIDAuMzI2NTc5LCAwLjQzMTg5MSwgMC42MDMwNzUsIDAuNzUxMTI0LCAwLjk2MzI3NCIsIFwKLSAgICAgICAgICAiMC4wMzU5NDgsIDAuMTc4NzYzLCAwLjMyNTkzOCwgMC40MzI3OTIsIDAuNjAzMDczLCAwLjc1MTExNywgMC45NjMyNzQiLCBcCi0gICAgICAgICAgIjAuMDM1OTQ3LCAwLjE3ODc2OSwgMC4zMjU0NzUsIDAuNDMxMjk1LCAwLjYwMzA3MSwgMC43NTExMTEsIDAuOTYzMjc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiByaXNpbmdfZWRnZTsKLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xODE2OTcsIDAuMjU4MzA5LCAwLjMzMTg4NSwgMC4zODQ0MzgsIDAuNDY4NDU2LCAwLjU0MTk3NCwgMC42NDcwNTQiLCBcCi0gICAgICAgICAgIjAuMTkwNTIxLCAwLjI2NzEzMSwgMC4zNDA3MDUsIDAuMzkzMjI3LCAwLjQ3NzI3NCwgMC41NTA3OTYsIDAuNjU1ODY4IiwgXAotICAgICAgICAgICIwLjIwMTMyOCwgMC4yNzc5MzgsIDAuMzUxNTE1LCAwLjQwNDA0NSwgMC40ODgwODUsIDAuNTYxNjAxLCAwLjY2NjY4NSIsIFwKLSAgICAgICAgICAiMC4yMTIxMTIsIDAuMjg4NzIyLCAwLjM2MjI5OCwgMC40MTQ4MTgsIDAuNDk4ODY3LCAwLjU3MjM4MiwgMC42Nzc0ODciLCBcCi0gICAgICAgICAgIjAuMjIyNTkxLCAwLjI5OTIsIDAuMzcyNzc0LCAwLjQyNTMyMywgMC41MDkzNDMsIDAuNTgyODY2LCAwLjY4NzkzNiIsIFwKLSAgICAgICAgICAiMC4yMzc4NzEsIDAuMzE0NTU1LCAwLjM4ODA2MiwgMC40NDA2MDksIDAuNTI0NjMzLCAwLjU5ODIxOSwgMC43MDMyMyIsIFwKLSAgICAgICAgICAiMC4yNTA0OTQsIDAuMzI3MTA3LCAwLjQwMDY4MiwgMC40NTMyMzcsIDAuNTM3MjUyLCAwLjYxMDc2NywgMC43MTU4NTMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzU5NTIsIDAuMTc4NzY0LCAwLjMyNjU3OCwgMC40MzE4OTQsIDAuNjAzMDY1LCAwLjc1MTEyOSwgMC45NjMyNzMiLCBcCi0gICAgICAgICAgIjAuMDM1OTcsIDAuMTc4Nzk2LCAwLjMyNjU3OCwgMC40MzI3NTQsIDAuNjAzMDYzLCAwLjc1MTE1NCwgMC45NjMyNjkiLCBcCi0gICAgICAgICAgIjAuMDM1OTQ5LCAwLjE3ODc1OCwgMC4zMjY1ODcsIDAuNDMyODAxLCAwLjYwMzA4LCAwLjc1MTExNiwgMC45NjMyNzciLCBcCi0gICAgICAgICAgIjAuMDM1OTQ4LCAwLjE3ODc2OSwgMC4zMjU0NzUsIDAuNDMxNDE3LCAwLjYwMzA3MiwgMC43NTEwODEsIDAuOTYzMjU1IiwgXAotICAgICAgICAgICIwLjAzNTk3MiwgMC4xNzg3OTgsIDAuMzI2NTc3LCAwLjQzMTg5MiwgMC42MDMwNjMsIDAuNzUxMTYsIDAuOTYzMjY5IiwgXAotICAgICAgICAgICIwLjAzNTk1NCwgMC4xNzg3NjIsIDAuMzI2NTc5LCAwLjQzMTg5LCAwLjYwMzA3MiwgMC43NTExMjUsIDAuOTYzMjczIiwgXAotICAgICAgICAgICIwLjAzNTk1MiwgMC4xNzg3NjQsIDAuMzI2NTc4LCAwLjQzMTg5OCwgMC42MDMwNjgsIDAuNzUxMTEyLCAwLjk2MzI3NiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogZmFsbGluZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE4MjkxMywgMC4yNjM2OTEsIDAuMzM2NjcyLCAwLjM4ODczLCAwLjQ3MTk0OSwgMC41NDQ3NjYsIDAuNjQ4ODMyIiwgXAotICAgICAgICAgICIwLjE5MjYxMSwgMC4yNzMzODcsIDAuMzQ2MzY5LCAwLjM5ODQyNywgMC40ODE2NDYsIDAuNTU0NDcxLCAwLjY1ODUzOCIsIFwKLSAgICAgICAgICAiMC4yMDUwOTIsIDAuMjg1ODc0LCAwLjM1ODg2NiwgMC40MTA5MjEsIDAuNDk0MTM1LCAwLjU2Njk2MiwgMC42NzEwNzMiLCBcCi0gICAgICAgICAgIjAuMjE3MTM4LCAwLjI5NzkxNCwgMC4zNzA4OTUsIDAuNDIyOTU0LCAwLjUwNjE3MywgMC41Nzg5OTgsIDAuNjgzMDY0IiwgXAotICAgICAgICAgICIwLjIyODE0MywgMC4zMDg5MTksIDAuMzgxOTA5LCAwLjQzMzk2NSwgMC41MTcxOCwgMC41OTAwMDgsIDAuNjk0MTE4IiwgXAotICAgICAgICAgICIwLjI0MzY0MywgMC4zMjQ0MTYsIDAuMzk3NDA2LCAwLjQ0OTQ2NiwgMC41MzI2NzQsIDAuNjA1NTA0LCAwLjcwOTYwNSIsIFwKLSAgICAgICAgICAiMC4yNTcxNzEsIDAuMzM3OTYyLCAwLjQxMDk2NywgMC40NjMwMDksIDAuNTQ2MjIzLCAwLjYxOTA0NywgMC43MjMxNzQiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDQ0MTUsIDAuMTg2NTgyLCAwLjMzNDY0NCwgMC40NDE5ODIsIDAuNjE0Mjg1LCAwLjc2NDY5LCAwLjk4MTk0NyIsIFwKLSAgICAgICAgICAiMC4wNDQ0NDYsIDAuMTg2NTg5LCAwLjMzNDY0MSwgMC40NDE5ODgsIDAuNjE0Mjg0LCAwLjc2NDY5NCwgMC45ODE5MzMiLCBcCi0gICAgICAgICAgIjAuMDQ0NDU0LCAwLjE4NjU5MSwgMC4zMzQ2ODYsIDAuNDQxOTc4LCAwLjYxNDI4OCwgMC43NjQ2ODksIDAuOTgxOTQ5IiwgXAotICAgICAgICAgICIwLjA0NDQxOSwgMC4xODY1ODIsIDAuMzM0NjQ2LCAwLjQ0MTk4NCwgMC42MTQyODYsIDAuNzY0Njk1LCAwLjk4MDE3NiIsIFwKLSAgICAgICAgICAiMC4wNDQ0NjEsIDAuMTg2NTkyLCAwLjMzNDY3OSwgMC40NDE5NzcsIDAuNjE0Mjg5LCAwLjc2NDcwNCwgMC45ODE5NDciLCBcCi0gICAgICAgICAgIjAuMDQ0MzgzLCAwLjE4NjU4MSwgMC4zMzQzNDIsIDAuNDQxMDYyLCAwLjYxNDI4MiwgMC43NjQ3MjcsIDAuOTgxOTI5IiwgXAotICAgICAgICAgICIwLjA0NDUyNiwgMC4xODY2MTMsIDAuMzM0NzEsIDAuNDQxOTgxLCAwLjYxNDI4OSwgMC43NjU0ODgsIDAuOTgxOTAxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiBjbGVhcjsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzg1MjUsIDAuMTU5MjE0LCAwLjIzMjE5NiwgMC4yODQyMTYsIDAuMzY3NDU0LCAwLjQ0MDI5OCwgMC41NDQzNjMiLCBcCi0gICAgICAgICAgIjAuMDg2OTU3LCAwLjE2NzY0OCwgMC4yNDA2MjksIDAuMjkyNjg0LCAwLjM3NTg5MSwgMC40NDg3NTgsIDAuNTUyODA2IiwgXAotICAgICAgICAgICIwLjA5NzMwNSwgMC4xNzgwMDUsIDAuMjUwOTkxLCAwLjMwMzA0NywgMC4zODYyNTUsIDAuNDU5MTAxLCAwLjU2MzE2NSIsIFwKLSAgICAgICAgICAiMC4xMDc3MzIsIDAuMTg4MjY4LCAwLjI2MTI2MywgMC4zMTMzMTcsIDAuMzk2NTI2LCAwLjQ2OTM1LCAwLjU3MzQzNSIsIFwKLSAgICAgICAgICAiMC4xMTc1MTIsIDAuMTk4MjksIDAuMjcxMjgzLCAwLjMyMzMwOCwgMC40MDY1NSwgMC40Nzk0MTEsIDAuNTgzNDY1IiwgXAotICAgICAgICAgICIwLjEzMjUwOSwgMC4yMTM2MzMsIDAuMjg2NjA0LCAwLjMzODY1MiwgMC40MjE4ODEsIDAuNDk0NzA3LCAwLjU5ODgxNyIsIFwKLSAgICAgICAgICAiMC4xNDQzMDIsIDAuMjI1OTY2LCAwLjI5ODk0NywgMC4zNTA5NjgsIDAuNDM0MjUsIDAuNTA3MDgyLCAwLjYxMTA4Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQzOTU4LCAwLjE4NjUsIDAuMzM0MTQ4LCAwLjQ0MTkxNSwgMC42MTQzMTMsIDAuNzY0NzE2LCAwLjk4MjE3NSIsIFwKLSAgICAgICAgICAiMC4wNDM5MjMsIDAuMTg2NDc4LCAwLjMzNDYzNywgMC40NDE5OTQsIDAuNjE0MzA5LCAwLjc2NDYyMSwgMC45ODIxODQiLCBcCi0gICAgICAgICAgIjAuMDQzOTAxLCAwLjE4NjQ4NCwgMC4zMzQxMjYsIDAuNDQxOTIsIDAuNjE0MzAzLCAwLjc2NDY1OSwgMC45ODIxNTMiLCBcCi0gICAgICAgICAgIjAuMDQ0MzAyLCAwLjE4NjUyMiwgMC4zMzQzODIsIDAuNDQxOTQ1LCAwLjYxNDI5OCwgMC43NjU1OTcsIDAuOTgyMTgyIiwgXAotICAgICAgICAgICIwLjA0NDcxNiwgMC4xODY2MDksIDAuMzM0MjI3LCAwLjQ0MTk2MywgMC42MTQ0ODEsIDAuNzY1Nzc0LCAwLjk4MjE1MiIsIFwKLSAgICAgICAgICAiMC4wNDYwMzEsIDAuMTg2OTEzLCAwLjMzNDQ2LCAwLjQ0MTk4NiwgMC42MTQzMzMsIDAuNzY0NjI3LCAwLjk4MjE2MSIsIFwKLSAgICAgICAgICAiMC4wNDczODksIDAuMTg3NjEyLCAwLjMzNTA4LCAwLjQ0MjAwNiwgMC42MTQ1NjgsIDAuNzY1NzkzLCAwLjk4MTk1OCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1MzI0NywgMC4xMjk5NjksIDAuMjAzNTc3LCAwLjI1NjA1MSwgMC4zNDAwMjgsIDAuNDEzNTE2LCAwLjUxODUzOCIsIFwKLSAgICAgICAgICAiMC4wNjMyMjUsIDAuMTM5OTU5LCAwLjIxMzU3MiwgMC4yNjYwNDYsIDAuMzUwMDI2LCAwLjQyMzUxNSwgMC41Mjg1MjkiLCBcCi0gICAgICAgICAgIjAuMDc1NTM0LCAwLjE1MjI5LCAwLjIyNTkwNywgMC4yNzgzODcsIDAuMzYyMzcsIDAuNDM1ODYyLCAwLjU0MDg5MyIsIFwKLSAgICAgICAgICAiMC4wODczNTgsIDAuMTY0MTU3LCAwLjIzNzc4OCwgMC4yOTAyNzQsIDAuMzc0MjU2LCAwLjQ0Nzc1MSwgMC41NTI3NjkiLCBcCi0gICAgICAgICAgIjAuMDk3OTk0LCAwLjE3NDk2NSwgMC4yNDg1NzYsIDAuMzAxMDYsIDAuMzg1MDQ1LCAwLjQ1ODU0MSwgMC41NjM1NzMiLCBcCi0gICAgICAgICAgIjAuMTEyNTI5LCAwLjE5MDA2OCwgMC4yNjM2NTksIDAuMzE2MTQyLCAwLjQwMDEyNiwgMC40NzM2MTksIDAuNTc4NjU2IiwgXAotICAgICAgICAgICIwLjEyMzU0NywgMC4yMDE2MzgsIDAuMjc1MTk5LCAwLjMyNzY4MywgMC40MTE2NywgMC40ODUxODQsIDAuNTkwMiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzNTE3MSwgMC4xNzg0MjksIDAuMzI2MDc5LCAwLjQzMjg1NiwgMC42MDMxNTMsIDAuNzUxMDksIDAuOTY0MTYzIiwgXAotICAgICAgICAgICIwLjAzNTE5NSwgMC4xNzg0MjYsIDAuMzI2MjcxLCAwLjQzMjA4NCwgMC42MDMwOCwgMC43NTEyMzcsIDAuOTYzNTE2IiwgXAotICAgICAgICAgICIwLjAzNTI5MiwgMC4xNzg0MjYsIDAuMzI2NjIsIDAuNDMyODM5LCAwLjYwMjg5NiwgMC43NTE4MzQsIDAuOTY0ODg1IiwgXAotICAgICAgICAgICIwLjAzNTg1OSwgMC4xNzg3NjQsIDAuMzI2NjMxLCAwLjQzMjI1NiwgMC42MDMxMDcsIDAuNzUxMjEzLCAwLjk2NDIwNyIsIFwKLSAgICAgICAgICAiMC4wMzcyMDksIDAuMTc4OTU1LCAwLjMyNjY2OCwgMC40MzI2MDQsIDAuNjAzMDk0LCAwLjc1MTg4NywgMC45NjM1OSIsIFwKLSAgICAgICAgICAiMC4wMzkyMzQsIDAuMTc5MzE3LCAwLjMyNjU2NywgMC40MzI3ODMsIDAuNjAzMDk3LCAwLjc1MjA4LCAwLjk2NDA4MSIsIFwKLSAgICAgICAgICAiMC4wNDEwMywgMC4xNzk4MjcsIDAuMzI2ODU0LCAwLjQzMjg3NCwgMC42MDI5NTgsIDAuNzUyMjYzLCAwLjk2NDg4NiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkQiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA4MzI5LCAwLjAwODQ5MSwgMC4wMDg1MTUsIDAuMDA4NTIzLCAwLjAwODUzLCAwLjAwODUzMywgMC4wMDg1MzYiLCBcCi0gICAgICAgICAgIjAuMDA4MzE4LCAwLjAwODQ3OSwgMC4wMDg1MDUsIDAuMDA4NTEzLCAwLjAwODUyLCAwLjAwODUyNCwgMC4wMDg1MjciLCBcCi0gICAgICAgICAgIjAuMDA4MzE3LCAwLjAwODQ3OCwgMC4wMDg1MDQsIDAuMDA4NTEsIDAuMDA4NTE3LCAwLjAwODUyLCAwLjAwODUyNCIsIFwKLSAgICAgICAgICAiMC4wMDgzMTQsIDAuMDA4NDc2LCAwLjAwODUwMywgMC4wMDg1MDksIDAuMDA4NTE0LCAwLjAwODUxOSwgMC4wMDg1MjIiLCBcCi0gICAgICAgICAgIjAuMDA4MzExLCAwLjAwODQ3MSwgMC4wMDg0OTcsIDAuMDA4NTA1LCAwLjAwODUxMSwgMC4wMDg1MTYsIDAuMDA4NTE5IiwgXAotICAgICAgICAgICIwLjAwODMwOCwgMC4wMDg0NjcsIDAuMDA4NDkzLCAwLjAwODUwMSwgMC4wMDg1MDgsIDAuMDA4NTExLCAwLjAwODUxIiwgXAotICAgICAgICAgICIwLjAwODI5NCwgMC4wMDg0NTgsIDAuMDA4NDg3LCAwLjAwODQ4OSwgMC4wMDg0OTYsIDAuMDA4NTA0LCAwLjAwODUxMiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA3ODQ5LCAwLjAwODAyMSwgMC4wMDgwNDYsIDAuMDA4MDUzLCAwLjAwODA1OSwgMC4wMDgwNjMsIDAuMDA4MDY2IiwgXAotICAgICAgICAgICIwLjAwNzgzNiwgMC4wMDgwMSwgMC4wMDgwMzQsIDAuMDA4MDQyLCAwLjAwODAzNywgMC4wMDgwNTIsIDAuMDA4MDU1IiwgXAotICAgICAgICAgICIwLjAwNzgyOCwgMC4wMDgwMDUsIDAuMDA4MDI1LCAwLjAwODAzNCwgMC4wMDgwMzksIDAuMDA4MDQyLCAwLjAwODAzOCIsIFwKLSAgICAgICAgICAiMC4wMDc4MiwgMC4wMDc5OTIsIDAuMDA4MDE5LCAwLjAwODAyNSwgMC4wMDgwMjgsIDAuMDA4MDM1LCAwLjAwODA0MyIsIFwKLSAgICAgICAgICAiMC4wMDc4MTQsIDAuMDA3OTg2LCAwLjAwODAxMywgMC4wMDgwMTgsIDAuMDA4MDI2LCAwLjAwODAzLCAwLjAwODAyNyIsIFwKLSAgICAgICAgICAiMC4wMDc4MDgsIDAuMDA3OTgxLCAwLjAwODAwNiwgMC4wMDgwMTQsIDAuMDA4MDI0LCAwLjAwODAyNSwgMC4wMDgwMjkiLCBcCi0gICAgICAgICAgIjAuMDA3ODEsIDAuMDA3OTgsIDAuMDA4MDEsIDAuMDA4MDE0LCAwLjAwODAyMywgMC4wMDgwMjYsIDAuMDA4MDI4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDkxNzYsIDAuMDA5MzM3LCAwLjAwOTM2MywgMC4wMDkzNzEsIDAuMDA5MzY5LCAwLjAwOTM4NywgMC4wMDkzNzgiLCBcCi0gICAgICAgICAgIjAuMDA5MTU5LCAwLjAwOTMyLCAwLjAwOTM0NiwgMC4wMDkzNTUsIDAuMDA5MzYzLCAwLjAwOTM1OSwgMC4wMDkzNjciLCBcCi0gICAgICAgICAgIjAuMDA5MTU1LCAwLjAwOTMxOCwgMC4wMDkzNDMsIDAuMDA5MzUxLCAwLjAwOTM1NywgMC4wMDkzNjEsIDAuMDA5MzY5IiwgXAotICAgICAgICAgICIwLjAwOTE1NiwgMC4wMDkzMTcsIDAuMDA5MzQyLCAwLjAwOTM1LCAwLjAwOTM1NywgMC4wMDkzNTYsIDAuMDA5MzYzIiwgXAotICAgICAgICAgICIwLjAwOTE2MSwgMC4wMDkzMjUsIDAuMDA5MzUsIDAuMDA5MzU1LCAwLjAwOTM2OSwgMC4wMDkzNjgsIDAuMDA5MzcxIiwgXAotICAgICAgICAgICIwLjAwOTE2NSwgMC4wMDkzMjQsIDAuMDA5MzQ5LCAwLjAwOTM2MywgMC4wMDkzNjgsIDAuMDA5MzYyLCAwLjAwOTM3MSIsIFwKLSAgICAgICAgICAiMC4wMDkxODMsIDAuMDA5MzQ0LCAwLjAwOTM2OSwgMC4wMDkzNzcsIDAuMDA5Mzg0LCAwLjAwOTM4OCwgMC4wMDkzOTUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwODgxNCwgMC4wMDg5ODEsIDAuMDA4OTk0LCAwLjAwODk4NiwgMC4wMDg5ODksIDAuMDA4OTgyLCAwLjAwODk3OCIsIFwKLSAgICAgICAgICAiMC4wMDg4MDcsIDAuMDA4OTcxLCAwLjAwODk4MSwgMC4wMDg5NzYsIDAuMDA4OTc2LCAwLjAwODk3MiwgMC4wMDg5NjgiLCBcCi0gICAgICAgICAgIjAuMDA4ODAzLCAwLjAwODk2NywgMC4wMDg5NzcsIDAuMDA4OTc2LCAwLjAwODk3MywgMC4wMDg5NywgMC4wMDg5NjUiLCBcCi0gICAgICAgICAgIjAuMDA4OCwgMC4wMDg5NjYsIDAuMDA4OTgsIDAuMDA4OTc2LCAwLjAwODk3MSwgMC4wMDg5NjgsIDAuMDA4OTY0IiwgXAotICAgICAgICAgICIwLjAwODgwNSwgMC4wMDg5NzEsIDAuMDA4OTg2LCAwLjAwODk4LCAwLjAwODk4MSwgMC4wMDg5NzQsIDAuMDA4OTciLCBcCi0gICAgICAgICAgIjAuMDA4ODE3LCAwLjAwODk4MSwgMC4wMDg5OTIsIDAuMDA4OTksIDAuMDA4OTg5LCAwLjAwODk4NCwgMC4wMDg5OCIsIFwKLSAgICAgICAgICAiMC4wMDg4MzIsIDAuMDA4OTk3LCAwLjAwOTAwOCwgMC4wMDkwMDcsIDAuMDA5MDA1LCAwLjAwOSwgMC4wMDg5OTYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTA2NTMsIDAuMDEwODA4LCAwLjAxMDgyMiwgMC4wMTA4MjMsIDAuMDEwODE2LCAwLjAxMDgxNywgMC4wMTA4MjQiLCBcCi0gICAgICAgICAgIjAuMDEwNjQxLCAwLjAxMDc5NywgMC4wMTA4MTEsIDAuMDEwODE3LCAwLjAxMDgxNywgMC4wMTA4MDMsIDAuMDEwODA3IiwgXAotICAgICAgICAgICIwLjAxMDYzOCwgMC4wMTA3OTQsIDAuMDEwODA5LCAwLjAxMDgxLCAwLjAxMDgwOSwgMC4wMTA4MDksIDAuMDEwODA0IiwgXAotICAgICAgICAgICIwLjAxMDYzNywgMC4wMTA3OTMsIDAuMDEwODA4LCAwLjAxMDgxNSwgMC4wMTA4MDMsIDAuMDEwODEsIDAuMDEwODA5IiwgXAotICAgICAgICAgICIwLjAxMDYzOSwgMC4wMTA3OTYsIDAuMDEwODA5LCAwLjAxMDgxLCAwLjAxMDgxLCAwLjAxMDgwNywgMC4wMTA4MDciLCBcCi0gICAgICAgICAgIjAuMDEwNjQ3LCAwLjAxMDgwMiwgMC4wMTA4MTgsIDAuMDEwODIsIDAuMDEwODIxLCAwLjAxMDgxMywgMC4wMTA4MTQiLCBcCi0gICAgICAgICAgIjAuMDEwNjQ5LCAwLjAxMDgwNywgMC4wMTA4MjMsIDAuMDEwODIsIDAuMDEwODI0LCAwLjAxMDgyOCwgMC4wMTA4MiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA4NzAyLCAwLjAwODg2NywgMC4wMDg4NzcsIDAuMDA4ODc1LCAwLjAwODg3NCwgMC4wMDg4NjcsIDAuMDA4ODYyIiwgXAotICAgICAgICAgICIwLjAwODY5NywgMC4wMDg4NiwgMC4wMDg4NzEsIDAuMDA4ODY2LCAwLjAwODg2NSwgMC4wMDg4NiwgMC4wMDg4NTUiLCBcCi0gICAgICAgICAgIjAuMDA4Njg4LCAwLjAwODg1MiwgMC4wMDg4NjIsIDAuMDA4ODYsIDAuMDA4ODU2LCAwLjAwODg1MiwgMC4wMDg4NDciLCBcCi0gICAgICAgICAgIjAuMDA4Njg1LCAwLjAwODg0OSwgMC4wMDg4NTksIDAuMDA4ODU3LCAwLjAwODg1MywgMC4wMDg4NSwgMC4wMDg4NDUiLCBcCi0gICAgICAgICAgIjAuMDA4NjksIDAuMDA4ODU0LCAwLjAwODg2NSwgMC4wMDg4NjIsIDAuMDA4ODU5LCAwLjAwODg1NCwgMC4wMDg4NDkiLCBcCi0gICAgICAgICAgIjAuMDA4Njg1LCAwLjAwODg1MSwgMC4wMDg4NjEsIDAuMDA4ODYsIDAuMDA4ODU5LCAwLjAwODg1MSwgMC4wMDg4NDgiLCBcCi0gICAgICAgICAgIjAuMDA4NjkyLCAwLjAwODg1OCwgMC4wMDg4NjgsIDAuMDA4ODY2LCAwLjAwODg2MiwgMC4wMDg4NTksIDAuMDA4ODU0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiU04iOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2ODUsIDAuMDA3MDA3LCAwLjAwNzAyOCwgMC4wMDcwMzUsIDAuMDA3MDQsIDAuMDA3MDQzLCAwLjAwNzA0NiIsIFwKLSAgICAgICAgICAiMC4wMDY4MDgsIDAuMDA2OTY5LCAwLjAwNjk5MiwgMC4wMDY5OTksIDAuMDA3MDA2LCAwLjAwNzAwNiwgMC4wMDcwMDkiLCBcCi0gICAgICAgICAgIjAuMDA2Nzg1LCAwLjAwNjk0OCwgMC4wMDY5NzEsIDAuMDA2OTc5LCAwLjAwNjk4NiwgMC4wMDY5ODcsIDAuMDA2OTkiLCBcCi0gICAgICAgICAgIjAuMDA2Nzk0LCAwLjAwNjk0OCwgMC4wMDY5NzMsIDAuMDA2OTgsIDAuMDA2OTg3LCAwLjAwNjk5LCAwLjAwNjk5NCIsIFwKLSAgICAgICAgICAiMC4wMDY4LCAwLjAwNjk1MiwgMC4wMDY5OCwgMC4wMDY5ODcsIDAuMDA2OTk1LCAwLjAwNjk5OSwgMC4wMDcwMDIiLCBcCi0gICAgICAgICAgIjAuMDA2ODQ1LCAwLjAwNjk3MSwgMC4wMDcsIDAuMDA3MDA5LCAwLjAwNzAxNSwgMC4wMDcwMjMsIDAuMDA3MDI0IiwgXAotICAgICAgICAgICIwLjAwNjg1NSwgMC4wMDcwMTIsIDAuMDA3MDQxLCAwLjAwNzA1LCAwLjAwNzA2MSwgMC4wMDcwNjcsIDAuMDA3MDciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwODcxOCwgMC4wMDg4NjcsIDAuMDA4ODg0LCAwLjAwODg4OSwgMC4wMDg4OTQsIDAuMDA4ODk2LCAwLjAwODg5OSIsIFwKLSAgICAgICAgICAiMC4wMDg2ODQsIDAuMDA4ODM3LCAwLjAwODg1NiwgMC4wMDg4NjMsIDAuMDA4ODY3LCAwLjAwODg2OSwgMC4wMDg4NzIiLCBcCi0gICAgICAgICAgIjAuMDA4NjQzLCAwLjAwODgwMiwgMC4wMDg4MjUsIDAuMDA4ODMyLCAwLjAwODgzOSwgMC4wMDg4NDIsIDAuMDA4ODQ1IiwgXAotICAgICAgICAgICIwLjAwODYwOSwgMC4wMDg3NzUsIDAuMDA4ODAzLCAwLjAwODgxMSwgMC4wMDg4MjIsIDAuMDA4ODI1LCAwLjAwODgzIiwgXAotICAgICAgICAgICIwLjAwODYwMiwgMC4wMDg3NjEsIDAuMDA4Nzk5LCAwLjAwODgwOSwgMC4wMDg4MTgsIDAuMDA4ODIyLCAwLjAwODgyNyIsIFwKLSAgICAgICAgICAiMC4wMDg2MDYsIDAuMDA4NzY2LCAwLjAwODc5OCwgMC4wMDg4MDgsIDAuMDA4ODIsIDAuMDA4ODI2LCAwLjAwODgzMSIsIFwKLSAgICAgICAgICAiMC4wMDg2MjIsIDAuMDA4NzgsIDAuMDA4ODE0LCAwLjAwODgyOCwgMC4wMDg4MzksIDAuMDA4ODQ1LCAwLjAwODg1MiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUk4pICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMjQwMzEyOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMjM5NTE5OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMjQwMzEyOwotICAgIGNsb2NrIDogdHJ1ZTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA0NTMsIDAuMDAwNDUzLCAwLjAwMDQ1MiwgMC4wMDA0NTIsIDAuMDAwNDUyLCAwLjAwMDQ1MiwgMC4wMDA0NTIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA0NTgsIDAuMDAwNDU0LCAwLjAwMDQ1NCwgMC4wMDA0NTQsIDAuMDAwNDU0LCAwLjAwMDQ1NCwgMC4wMDA0NTQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfZmFsbGluZzsKLSAgICAgIHdoZW4gOiAiRCZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzFfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wOTM3NSwgLTAuMDg4NzUsIC0wLjA4ODc1LCAtMC4wOTUsIC0wLjEwNzUsIC0wLjEyMjUsIC0wLjEzMjUiLCBcCi0gICAgICAgICAgIi0wLjEwNSwgLTAuMDkzNzUsIC0wLjA5Mzc1LCAtMC4xMDYyNSwgLTAuMTEyNSwgLTAuMTMzNzUsIC0wLjE0Mzc1IiwgXAotICAgICAgICAgICItMC4xMTEyNSwgLTAuMTA2MjUsIC0wLjEwNjI1LCAtMC4xMTI1LCAtMC4xMjUsIC0wLjE0LCAtMC4xNSIsIFwKLSAgICAgICAgICAiLTAuMTIzNzUsIC0wLjExODc1LCAtMC4xMTg3NSwgLTAuMTI1LCAtMC4xMzc1LCAtMC4xNTI1LCAtMC4xNjI1IiwgXAotICAgICAgICAgICItMC4xMzYyNSwgLTAuMTI1LCAtMC4xMzEyNSwgLTAuMTM3NSwgLTAuMTQzNzUsIC0wLjE1ODc1LCAtMC4xNjg3NSIsIFwKLSAgICAgICAgICAiLTAuMTUyNSwgLTAuMTQxMjUsIC0wLjE0MTI1LCAtMC4xNDc1LCAtMC4xNiwgLTAuMTc1LCAtMC4xODUiLCBcCi0gICAgICAgICAgIi0wLjE2MTI1LCAtMC4xNTYyNSwgLTAuMTU2MjUsIC0wLjE2MjUsIC0wLjE2ODc1LCAtMC4xODM3NSwgLTAuMTkzNzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUk4iOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFEJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgZmFsbF9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMTQ5MzM5LCAwLjE1ODY1MSwgMC4xNjg5NTIsIDAuMTc4ODY4LCAwLjE4OTYxLCAwLjIwNTEsIDAuMjE4NzcyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkciOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9mYWxsaW5nOwotICAgICAgd2hlbiA6ICJEJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMV9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExMjUsIDAuMTAxMjUsIDAuMTAxMjUsIDAuMTA3NSwgMC4xMjYyNSwgMC4xNiwgMC4xODg3NSIsIFwKLSAgICAgICAgICAiMC4xMTc1LCAwLjExMjUsIDAuMTA2MjUsIDAuMTE4NzUsIDAuMTM3NSwgMC4xNjUsIDAuMTkzNzUiLCBcCi0gICAgICAgICAgIjAuMTMsIDAuMTE4NzUsIDAuMTE4NzUsIDAuMTMxMjUsIDAuMTQzNzUsIDAuMTc3NSwgMC4yMDYyNSIsIFwKLSAgICAgICAgICAiMC4xMzYyNSwgMC4xMzEyNSwgMC4xMzEyNSwgMC4xMzc1LCAwLjE1NjI1LCAwLjE4Mzc1LCAwLjIxMjUiLCBcCi0gICAgICAgICAgIjAuMTQ4NzUsIDAuMTQzNzUsIDAuMTM3NSwgMC4xNSwgMC4xNjI1LCAwLjE5NjI1LCAwLjIxODc1IiwgXAotICAgICAgICAgICIwLjE2NSwgMC4xNTM3NSwgMC4xNTM3NSwgMC4xNiwgMC4xNzg3NSwgMC4yMDYyNSwgMC4yMjg3NSIsIFwKLSAgICAgICAgICAiMC4xNzM3NSwgMC4xNjg3NSwgMC4xNjg3NSwgMC4xNzUsIDAuMTg3NSwgMC4yMTUsIDAuMjM3NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oU04pICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTQ4NDE7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNDg0MTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE0ODA0MzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA2NTMsIDAuMDAwNjUyLCAwLjAwMDY1MiwgMC4wMDA2NTIsIDAuMDAwNjUyLCAwLjAwMDY1MiwgMC4wMDA2NTIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA2NjcsIDAuMDAwNjU1LCAwLjAwMDY1NSwgMC4wMDA2NTQsIDAuMDAwNjU0LCAwLjAwMDY1NCwgMC4wMDA2NTQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiU04iOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFEIjsKLSAgICAgIHNkZl9jb25kIDogIkQgPT0gMSdiMCI7Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4xMDA1MzcsIDAuMTEwMjQzLCAwLjEyMTg0MywgMC4xMzI5NDUsIDAuMTQzMDQsIDAuMTU3MTIxLCAwLjE2NzkxOCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJHIjsKLSAgICAgIHRpbWluZ190eXBlIDogcmVjb3ZlcnlfZmFsbGluZzsKLSAgICAgIHdoZW4gOiAiIUQmUk4iOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1JOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQocmVjb3ZlcnlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2MjUsIC0wLjAwNSwgLTAuMDE3NSwgLTAuMDMsIC0wLjAzNjI1LCAtMC4wNDYyNSwgLTAuMDU1IiwgXAotICAgICAgICAgICIwLjAxMTI1LCAwLCAtMC4wMTI1LCAtMC4wMTg3NSwgLTAuMDMxMjUsIC0wLjA0MTI1LCAtMC4wNSIsIFwKLSAgICAgICAgICAiMC4wMTc1LCAwLjAxMjUsIDAsIC0wLjAxMjUsIC0wLjAxODc1LCAtMC4wMjg3NSwgLTAuMDM3NSIsIFwKLSAgICAgICAgICAiMC4wMywgMC4wMTg3NSwgMC4wMDYyNSwgLTAuMDA2MjUsIC0wLjAxMjUsIC0wLjAyMjUsIC0wLjAzMTI1IiwgXAotICAgICAgICAgICIwLjAzNjI1LCAwLjAyNSwgMC4wMTI1LCAwLCAtMC4wMDYyNSwgLTAuMDE2MjUsIC0wLjAyNSIsIFwKLSAgICAgICAgICAiMC4wNDYyNSwgMC4wMzUsIDAuMDIyNSwgMC4wMSwgMC4wMDM3NSwgLTAuMDEyNSwgLTAuMDIxMjUiLCBcCi0gICAgICAgICAgIjAuMDQ4NzUsIDAuMDQzNzUsIDAuMDMxMjUsIDAuMDE4NzUsIDAuMDA2MjUsIC0wLjAwMzc1LCAtMC4wMTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIHRpbWluZ190eXBlIDogcmVjb3ZlcnlfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRyI7Ci0gICAgICBzZGZfY29uZCA6ICJHID09IDEnYjAiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHJlY292ZXJ5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMjUsIDAuMDA3NSwgMC4wMDEyNSwgMC4wMDEyNSwgLTAuMDA1LCAtMC4wMDg3NSwgLTAuMDExMjUiLCBcCi0gICAgICAgICAgIjAuMDIzNzUsIDAuMDE4NzUsIDAuMDEyNSwgMC4wMDYyNSwgMC4wMDYyNSwgMC4wMDI1LCAwIiwgXAotICAgICAgICAgICIwLjAzLCAwLjAyNSwgMC4wMTg3NSwgMC4wMTI1LCAwLjAxMjUsIDAuMDA4NzUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMDM2MjUsIDAuMDMxMjUsIDAuMDI1LCAwLjAyNSwgMC4wMTg3NSwgMC4wMTUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4wNDI1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDMxMjUsIDAuMDI1LCAwLjAyMTI1LCAwLjAxODc1IiwgXAotICAgICAgICAgICIwLjA1MjUsIDAuMDQ3NSwgMC4wNDEyNSwgMC4wMzUsIDAuMDI4NzUsIDAuMDI1LCAwLjAyMjUiLCBcCi0gICAgICAgICAgIjAuMDYxMjUsIDAuMDU2MjUsIDAuMDUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzM3NSwgMC4wMzEyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJHIjsKLSAgICAgIHRpbWluZ190eXBlIDogcmVtb3ZhbF9mYWxsaW5nOwotICAgICAgd2hlbiA6ICIhRCZSTiI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fUk5fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChyZW1vdmFsX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzMTI1LCAwLjA0MjUsIDAuMDU1LCAwLjA2MTI1LCAwLjA3Mzc1LCAwLjA5LCAwLjA5ODc1IiwgXAotICAgICAgICAgICIwLjAyLCAwLjAzMTI1LCAwLjA0Mzc1LCAwLjA1NjI1LCAwLjA2MjUsIDAuMDc4NzUsIDAuMDg3NSIsIFwKLSAgICAgICAgICAiMC4wMTM3NSwgMC4wMjUsIDAuMDM3NSwgMC4wNSwgMC4wNTYyNSwgMC4wNzI1LCAwLjA4MTI1IiwgXAotICAgICAgICAgICIwLjAwNzUsIDAuMDE4NzUsIDAuMDMxMjUsIDAuMDM3NSwgMC4wNSwgMC4wNjYyNSwgMC4wNzUiLCBcCi0gICAgICAgICAgIjAuMDAxMjUsIDAuMDEyNSwgMC4wMjUsIDAuMDMxMjUsIDAuMDQzNzUsIDAuMDYsIDAuMDY4NzUiLCBcCi0gICAgICAgICAgIi0wLjAwODc1LCAwLjAwMjUsIDAuMDE1LCAwLjAyMTI1LCAwLjAzMzc1LCAwLjA1LCAwLjA1ODc1IiwgXAotICAgICAgICAgICItMC4wMTc1LCAtMC4wMDYyNSwgMC4wMDYyNSwgMC4wMTg3NSwgMC4wMjUsIDAuMDQxMjUsIDAuMDUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUk4iOwotICAgICAgdGltaW5nX3R5cGUgOiByZW1vdmFsX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUciOwotICAgICAgc2RmX2NvbmQgOiAiRyA9PSAxJ2IwIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChyZW1vdmFsX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMjUsIDAuMDE3NSwgMC4wMywgMC4wMzYyNSwgMC4wNDI1LCAwLjA1MjUsIDAuMDYxMjUiLCBcCi0gICAgICAgICAgIjAuMDAxMjUsIDAuMDEyNSwgMC4wMTg3NSwgMC4wMjUsIDAuMDMxMjUsIDAuMDQxMjUsIDAuMDUiLCBcCi0gICAgICAgICAgIi0wLjAwNSwgMCwgMC4wMTI1LCAwLjAxODc1LCAwLjAyNSwgMC4wMzUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIi0wLjAxMTI1LCAtMC4wMDYyNSwgMC4wMDYyNSwgMC4wMTI1LCAwLjAxODc1LCAwLjAyODc1LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjAxNzUsIC0wLjAxMjUsIDAsIDAuMDA2MjUsIDAuMDEyNSwgMC4wMjI1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDI3NSwgLTAuMDIyNSwgLTAuMDEsIC0wLjAwMzc1LCAwLjAwMjUsIDAuMDEyNSwgMC4wMjEyNSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLjAwMzc1LCAwLjAxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IFRMQVRYMiAqCi0gKiAtLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKFRMQVRYMikgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjM5MzU3NzsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBsYXRjaCAoUUlOVCxOMCkgewotICAgIGRhdGFfaW4gOiAiRCI7Ci0gICAgZW5hYmxlIDogIkciOwotICB9Ci0gIHBpbihEKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2MTE0NjU7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjEwNDg4OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDYxMTQ2NTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyMTcsIDAuMDAwMjIsIDAuMDAwMjIxLCAwLjAwMDIyMSwgMC4wMDAyMjEsIDAuMDAwMjIyLCAwLjAwMDIyMiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDIyOCwgMC4wMDAyMjcsIDAuMDAwMjI3LCAwLjAwMDIyNywgMC4wMDAyMjcsIDAuMDAwMjI3LCAwLjAwMDIyNyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJHIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9mYWxsaW5nOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAxMjUsIC0wLjAwMTI1LCAwLjAxMTI1LCAwLjAyMzc1LCAwLjAzLCAwLjA0LCAwLjA0ODc1IiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDEyNSwgMCwgMC4wMTI1LCAwLjAxODc1LCAwLjAzNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAxODc1LCAtMC4wMDYyNSwgMCwgMC4wMTI1LCAwLjAyMjUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAsIDAuMDEsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjA1NSwgLTAuMDQzNzUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgMC4wMDM3NSwgMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wNjUsIC0wLjA1Mzc1LCAtMC4wNDEyNSwgLTAuMDM1LCAtMC4wMjI1LCAtMC4wMTI1LCAtMC4wMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDgsIC0wLjA2ODc1LCAtMC4wNTYyNSwgLTAuMDQzNzUsIC0wLjAzMTI1LCAtMC4wMjEyNSwgLTAuMDEyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAzMTI1LCAtMC4wMjYyNSwgLTAuMDIsIC0wLjAxMzc1LCAtMC4wMDc1LCAtMC4wMDM3NSwgLTAuMDAxMjUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTg3NSwgLTAuMDA4NzUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAyMTI1LCAtMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDYxMjUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDM3NSwgLTAuMDI3NSwgLTAuMDI1IiwgXAotICAgICAgICAgICItMC4wNjc1LCAtMC4wNjI1LCAtMC4wNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wMzM3NSwgLTAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjA3NzUsIC0wLjA3MjUsIC0wLjA2NjI1LCAtMC4wNiwgLTAuMDUzNzUsIC0wLjA1LCAtMC4wNDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDg2MjUsIC0wLjA4MTI1LCAtMC4wNzUsIC0wLjA2ODc1LCAtMC4wNjI1LCAtMC4wNTI1LCAtMC4wNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJHIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfZmFsbGluZzsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzEyNSwgMC4wMiwgMC4wMDc1LCAtMC4wMDUsIC0wLjAxNzUsIC0wLjAyNzUsIC0wLjAzNjI1IiwgXAotICAgICAgICAgICIwLjAzNjI1LCAwLjAyNSwgMC4wMTI1LCAwLCAtMC4wMDYyNSwgLTAuMDE2MjUsIC0wLjAyNSIsIFwKLSAgICAgICAgICAiMC4wNDg3NSwgMC4wMzc1LCAwLjAyNSwgMC4wMTI1LCAwLjAwNjI1LCAtMC4wMSwgLTAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMDU1LCAwLjA0Mzc1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMTI1LCAwLjAwMjUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDU2MjUsIDAuMDQzNzUsIDAuMDMxMjUsIDAuMDI1LCAwLjAwODc1LCAwIiwgXAotICAgICAgICAgICIwLjA4Mzc1LCAwLjA3MjUsIDAuMDYsIDAuMDQ3NSwgMC4wMzUsIDAuMDI1LCAwLjAxNjI1IiwgXAotICAgICAgICAgICIwLjA5MjUsIDAuMDgxMjUsIDAuMDY4NzUsIDAuMDU2MjUsIDAuMDUsIDAuMDMzNzUsIDAuMDI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDUsIDAuMDM4NzUsIDAuMDMyNSwgMC4wMzI1LCAwLjAyNjI1LCAwLjAyODc1LCAwLjAyNjI1IiwgXAotICAgICAgICAgICIwLjA1NSwgMC4wNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzNzUsIDAuMDMzNzUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMDY3NSwgMC4wNTYyNSwgMC4wNSwgMC4wNSwgMC4wNDM3NSwgMC4wNCwgMC4wMzc1IiwgXAotICAgICAgICAgICIwLjA3Mzc1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDUsIDAuMDQ2MjUsIDAuMDUiLCBcCi0gICAgICAgICAgIjAuMDgsIDAuMDc1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDYyNSwgMC4wNTg3NSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiMC4wOTYyNSwgMC4wODUsIDAuMDc4NzUsIDAuMDcyNSwgMC4wNzI1LCAwLjA2ODc1LCAwLjA2NjI1IiwgXAotICAgICAgICAgICIwLjEwNSwgMC4wOTM3NSwgMC4wODc1LCAwLjA4MTI1LCAwLjA4MTI1LCAwLjA3MTI1LCAwLjA2ODc1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihHKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2MTc5MjQ7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjE3ODk5OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDYxNzkyNDsKLSAgICBjbG9jayA6IHRydWU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxOTI1LCAwLjAwMTg5NywgMC4wMDE4ODQsIDAuMDAxODksIDAuMDAxOTAzLCAwLjAwMTkyNCwgMC4wMDE5NDQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDMyNDIsIDAuMDAzMjE4LCAwLjAwMzIwOCwgMC4wMDMyMTYsIDAuMDAzMjI0LCAwLjAwMzI0NSwgMC4wMDMyNzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQiOwotICAgICAgc2RmX2NvbmQgOiAiRCA9PSAxJ2IwIjsKLSAgICAgIHJpc2VfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjEzNDc5NSwgMC4xNDQ5NzYsIDAuMTU3NDY4LCAwLjE2ODYzMiwgMC4xNzg0NjUsIDAuMTkyMDU5LCAwLjIwMjM1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihRKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuNTI3NjM0OwotICAgIGZ1bmN0aW9uIDogIlFJTlQiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkQiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExNTAxOCwgMC4yMTY5MDUsIDAuMjk4NDcyLCAwLjQwMDQ0LCAwLjUwMjI4MywgMC42MDQzODEsIDAuNzA2NDc5IiwgXAotICAgICAgICAgICIwLjEyNDAyMSwgMC4yMjYwMSwgMC4zMDc0NjcsIDAuNDA5NDE5LCAwLjUxMTUwNiwgMC42MTMyMjksIDAuNzE1NDgxIiwgXAotICAgICAgICAgICIwLjEzNDcwOSwgMC4yMzY2MDIsIDAuMzE4MTY2LCAwLjQyMDAzMSwgMC41MjE5NjQsIDAuNjIzOTY5LCAwLjcyNjE2NyIsIFwKLSAgICAgICAgICAiMC4xNDQ5NzUsIDAuMjQ2ODkyLCAwLjMyODQ1MywgMC40MzAzMTgsIDAuNTMyNDgzLCAwLjYzNDIwNywgMC43MzY0NTciLCBcCi0gICAgICAgICAgIjAuMTU0NTI2LCAwLjI1NjQxOCwgMC4zMzgwMTgsIDAuNDQwMDE5LCAwLjU0MjA3NywgMC42NDQwMjcsIDAuNzQ2MDc4IiwgXAotICAgICAgICAgICIwLjE2ODAzMSwgMC4yNjk5NTksIDAuMzUxNTMyLCAwLjQ1MzUxMywgMC41NTU1NzYsIDAuNjU3NDk1LCAwLjc1OTUzNyIsIFwKLSAgICAgICAgICAiMC4xNzg4MDYsIDAuMjgwODY3LCAwLjM2MjMyNCwgMC40NjQyODQsIDAuNTY2MzQzLCAwLjY2ODMzNSwgMC43NzAyODYiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQ4MzEsIDAuMjU2ODgxLCAwLjQyNDY5NywgMC42MzU4MjgsIDAuODQ1MzExLCAxLjA1NTkxLCAxLjI2NjAyIiwgXAotICAgICAgICAgICIwLjA0ODMzNiwgMC4yNTc2NjEsIDAuNDI0MzA3LCAwLjYzNTY3NSwgMC44NDQwNzEsIDEuMDUyODgsIDEuMjY2MDciLCBcCi0gICAgICAgICAgIjAuMDQ4MTgxLCAwLjI1Njg3OSwgMC40MjQzNjEsIDAuNjM0ODEyLCAwLjg0MzEzNSwgMS4wNTI2NywgMS4yNjYwMiIsIFwKLSAgICAgICAgICAiMC4wNDgwNzUsIDAuMjU2ODgsIDAuNDI0MzM4LCAwLjYzNDY5MiwgMC44NDQwOSwgMS4wNTMyOCwgMS4yNjYiLCBcCi0gICAgICAgICAgIjAuMDQ4MjE1LCAwLjI1NzA0MywgMC40MjQzNjUsIDAuNjM0Nzk1LCAwLjg0NDIzMywgMS4wNTU4OSwgMS4yNjU5OCIsIFwKLSAgICAgICAgICAiMC4wNDgxNSwgMC4yNTcwODQsIDAuNDI0OTI5LCAwLjYzNTYxOCwgMC44NDQwNDIsIDEuMDU0MjUsIDEuMjY1OTIiLCBcCi0gICAgICAgICAgIjAuMDQ4MjU5LCAwLjI1NzYyMSwgMC40MjQ5NjcsIDAuNjM1NTQ2LCAwLjg0NDAxNywgMS4wNTU5MSwgMS4yNjU2NiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTY0NzMsIDAuMjIwNTkyLCAwLjMwMzQ3OSwgMC40MDc2MzIsIDAuNTEwOTk3LCAwLjYxNTc1NSwgMC43MTk3MDgiLCBcCi0gICAgICAgICAgIjAuMTI1MDYzLCAwLjIyOTE3OCwgMC4zMTIwMjUsIDAuNDE2MTg3LCAwLjUxOTU3OSwgMC42MjQzNTksIDAuNzI4MzA2IiwgXAotICAgICAgICAgICIwLjEzNDczOSwgMC4yMzg4OTUsIDAuMzIxNzExLCAwLjQyNTg3MywgMC41MjkyNDksIDAuNjM0MDI4LCAwLjczNzk3MSIsIFwKLSAgICAgICAgICAiMC4xNDM5MzQsIDAuMjQ3NzkyLCAwLjMzMDkxLCAwLjQzNTA3OSwgMC41Mzg0NTcsIDAuNjQzMjE4LCAwLjc0NzE2NiIsIFwKLSAgICAgICAgICAiMC4xNTI0NjcsIDAuMjU2NTkyLCAwLjMzOTI5OCwgMC40NDM5MDEsIDAuNTQ3ODI5LCAwLjY1MTAyMiwgMC43NTU2OTUiLCBcCi0gICAgICAgICAgIjAuMTY0MzQ4LCAwLjI2ODQ1NiwgMC4zNTE4MzUsIDAuNDU1Nzk1LCAwLjU1OTcxMiwgMC42NjM2MzgsIDAuNzY3NjA4IiwgXAotICAgICAgICAgICIwLjE3MzQ1LCAwLjI3NzcxOCwgMC4zNjAzMywgMC40NjQ4OTYsIDAuNTY4Nzg2LCAwLjY3MjczNSwgMC43NzY2ODgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQ4MjI3LCAwLjI1NzkxNCwgMC40MjU3MjIsIDAuNjM2Njc5LCAwLjg0NTczOSwgMS4wNTc2NiwgMS4yNjgxMiIsIFwKLSAgICAgICAgICAiMC4wNDgzNTMsIDAuMjU3OTE5LCAwLjQyNTc2MSwgMC42MzY2NzcsIDAuODQ1NTE3LCAxLjA1NzY0LCAxLjI2ODEzIiwgXAotICAgICAgICAgICIwLjA0ODIwMywgMC4yNTc5MTIsIDAuNDI1NzUxLCAwLjYzNjY4LCAwLjg0NTUxMiwgMS4wNTc2NCwgMS4yNjgxNCIsIFwKLSAgICAgICAgICAiMC4wNDgxODcsIDAuMjU3Njc5LCAwLjQyNTc0NSwgMC42MzY2NzksIDAuODQ1ODk1LCAxLjA1NzY1LCAxLjI2ODExIiwgXAotICAgICAgICAgICIwLjA0ODI3NCwgMC4yNTc5MTMsIDAuNDI1NDgsIDAuNjM2NzU4LCAwLjg0NzM2NSwgMS4wNTQzMSwgMS4yNjgwMiIsIFwKLSAgICAgICAgICAiMC4wNDgzNjgsIDAuMjU3ODk2LCAwLjQyNjIzNSwgMC42MzY2NTUsIDAuODQ2OTk0LCAxLjA1NzQ1LCAxLjI2NzgyIiwgXAotICAgICAgICAgICIwLjA0ODI3MywgMC4yNTc4ODYsIDAuNDI1NTAxLCAwLjYzNjY0MSwgMC44NDcyNzksIDEuMDU3NzMsIDEuMjY3OTYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBub25fdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJpc2luZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNDg5NDEsIDAuMjUwODM5LCAwLjMzMjQxNCwgMC40MzQ0MzUsIDAuNTM2MzgsIDAuNjM4NDk3LCAwLjc0MDM4NCIsIFwKLSAgICAgICAgICAiMC4xNTkxMjEsIDAuMjYxMDQ5LCAwLjM0MjYxOSwgMC40NDQ2MjYsIDAuNTQ2NjY4LCAwLjY0ODYxNywgMC43NTA2NDkiLCBcCi0gICAgICAgICAgIjAuMTcxNzMxLCAwLjI3MzY1OSwgMC4zNTUyMjksIDAuNDU3MjM1LCAwLjU1OTI3NywgMC42NjEyMjcsIDAuNzYzMjU5IiwgXAotICAgICAgICAgICIwLjE4MjczOSwgMC4yODQ3MDcsIDAuMzY2MjQ0LCAwLjQ2ODIzNiwgMC41NzAyNzIsIDAuNjcyMjk0LCAwLjc3NDMyMyIsIFwKLSAgICAgICAgICAiMC4xOTI1MDUsIDAuMjk0NDQyLCAwLjM3NjAwOCwgMC40NzgwMSwgMC41ODAwNjksIDAuNjgyMDEzLCAwLjc4NDAzMiIsIFwKLSAgICAgICAgICAiMC4yMDU0NCwgMC4zMDczOTMsIDAuMzg4OTM3LCAwLjQ5MDkzOCwgMC41OTI5MTksIDAuNjk0OTczLCAwLjc5Njk4MSIsIFwKLSAgICAgICAgICAiMC4yMTUzODksIDAuMzE3Mjc1LCAwLjM5ODg2LCAwLjUwMDg2MSwgMC42MDI4NCwgMC43MDQ5ODQsIDAuODA2ODI2Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0ODM2OCwgMC4yNTczMzYsIDAuNDI1MTI1LCAwLjYzNTA1NCwgMC44NDU5OCwgMS4wNTM2NywgMS4yNjUzMiIsIFwKLSAgICAgICAgICAiMC4wNDgzNjYsIDAuMjU3MzU4LCAwLjQyNTA0MSwgMC42MzQ4NDcsIDAuODQzOTk0LCAxLjA1NTk1LCAxLjI2NiIsIFwKLSAgICAgICAgICAiMC4wNDgzNjcsIDAuMjU3MzU5LCAwLjQyNTAzOCwgMC42MzQ4NDcsIDAuODQzOTk0LCAxLjA1NTk1LCAxLjI2NiIsIFwKLSAgICAgICAgICAiMC4wNDgzNjMsIDAuMjU3MzE0LCAwLjQyNTA2OCwgMC42MzQ0NDMsIDAuODQ0MDYyLCAxLjA1NjA3LCAxLjI2NjEyIiwgXAotICAgICAgICAgICIwLjA0ODM3NiwgMC4yNTczNzcsIDAuNDI1MTkzLCAwLjYzNTY4NSwgMC44NDQxNiwgMS4wNTU5NiwgMS4yNjU5OSIsIFwKLSAgICAgICAgICAiMC4wNDgzNTQsIDAuMjU3MzU1LCAwLjQyNDg3NywgMC42MzU2MzEsIDAuODQ0NjQ1LCAxLjA1NjAxLCAxLjI2NiIsIFwKLSAgICAgICAgICAiMC4wNDgzMzUsIDAuMjU3Mjc4LCAwLjQyNTEyOSwgMC42MzU2NTksIDAuODQ2MDEyLCAxLjA1Mzc0LCAxLjI2NTMxIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEzNDc5NSwgMC4yMzkwMzgsIDAuMzIxNzk4LCAwLjQyNTk5OCwgMC41Mjk4NTMsIDAuNjM0MTI3LCAwLjczODA4IiwgXAotICAgICAgICAgICIwLjE0NDk3NiwgMC4yNDg3NDYsIDAuMzMyLCAwLjQzNjE4NSwgMC41Mzk1MzYsIDAuNjQ0Mjk4LCAwLjc0ODI1IiwgXAotICAgICAgICAgICIwLjE1NzQ2OCwgMC4yNjEzNDEsIDAuMzQ0NTM2LCAwLjQ0ODk1OCwgMC41NTIwMzgsIDAuNjU2NzkzLCAwLjc2MDc0MSIsIFwKLSAgICAgICAgICAiMC4xNjg2MzIsIDAuMjcyODkyLCAwLjM1NTc0OSwgMC40NTk1ODcsIDAuNTYzMTgxLCAwLjY2NzM1NSwgMC43NzE5MDEiLCBcCi0gICAgICAgICAgIjAuMTc4NDY1LCAwLjI4MjYxMywgMC4zNjU5OCwgMC40Njk5NzQsIDAuNTczODc4LCAwLjY3NzAwMSwgMC43ODE3NjkiLCBcCi0gICAgICAgICAgIjAuMTkyMDU5LCAwLjI5NTg5NywgMC4zNzkwNjcsIDAuNDgzMjUsIDAuNTg2NjEsIDAuNjkxMzc5LCAwLjc5NTMyOSIsIFwKLSAgICAgICAgICAiMC4yMDIzNSwgMC4zMDY1MDMsIDAuMzg5NDAyLCAwLjQ5MzU5NCwgMC41OTY5NywgMC43MDE2OTYsIDAuODA1NjU5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0ODMxNCwgMC4yNTc5MTQsIDAuNDI1NzUyLCAwLjYzNjY5MSwgMC44NDcwNTgsIDEuMDU3NzQsIDEuMjY4MSIsIFwKLSAgICAgICAgICAiMC4wNDgzMDQsIDAuMjU3Njc0LCAwLjQyNTczLCAwLjYzNjY3NSwgMC44NDYwNzYsIDEuMDU3NjcsIDEuMjY4MDkiLCBcCi0gICAgICAgICAgIjAuMDQ4MzQsIDAuMjU3NjY1LCAwLjQyNTczMSwgMC42MzY3NTgsIDAuODQ1NjI3LCAxLjA1NzY5LCAxLjI2ODEzIiwgXAotICAgICAgICAgICIwLjA0ODMwMywgMC4yNTc5MDksIDAuNDI1NzM4LCAwLjYzNTk1MiwgMC44NDU1MjcsIDEuMDU2MTEsIDEuMjY4MTEiLCBcCi0gICAgICAgICAgIjAuMDQ4Mjc4LCAwLjI1NzkwNywgMC40MjYyODcsIDAuNjM2NzQxLCAwLjg0NzE5LCAxLjA1NjE3LCAxLjI2ODAyIiwgXAotICAgICAgICAgICIwLjA0ODMwOCwgMC4yNTc2NiwgMC40MjU1NDgsIDAuNjM2NjgsIDAuODQ1NjYzLCAxLjA1NzY3LCAxLjI2ODEyIiwgXAotICAgICAgICAgICIwLjA0ODMwOSwgMC4yNTc4OTYsIDAuNDI1NzA1LCAwLjYzNjY0NSwgMC44NDU4MjEsIDEuMDU3NTMsIDEuMjY4MDQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJEIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQyNDYsIDAuMDA0MzA0LCAwLjAwNDMxMSwgMC4wMDQzMTUsIDAuMDA0MzIyLCAwLjAwNDMyLCAwLjAwNDMxOSIsIFwKLSAgICAgICAgICAiMC4wMDQyMzYsIDAuMDA0Mjk0LCAwLjAwNDI5OCwgMC4wMDQzMDksIDAuMDA0MzA2LCAwLjAwNDMwNCwgMC4wMDQzMDgiLCBcCi0gICAgICAgICAgIjAuMDA0MjI4LCAwLjAwNDI4NiwgMC4wMDQyOTMsIDAuMDA0Mjk3LCAwLjAwNDMwMywgMC4wMDQzLCAwLjAwNDI5NyIsIFwKLSAgICAgICAgICAiMC4wMDQyMjMsIDAuMDA0MjgyLCAwLjAwNDI4OSwgMC4wMDQyOTIsIDAuMDA0Mjk0LCAwLjAwNDI5OCwgMC4wMDQyOTYiLCBcCi0gICAgICAgICAgIjAuMDA0MjE3LCAwLjAwNDI3NywgMC4wMDQyODUsIDAuMDA0Mjg5LCAwLjAwNDI5LCAwLjAwNDI5MSwgMC4wMDQyOTIiLCBcCi0gICAgICAgICAgIjAuMDA0MjE4LCAwLjAwNDI4MSwgMC4wMDQyODksIDAuMDA0MjkyLCAwLjAwNDI5NCwgMC4wMDQyOTYsIDAuMDA0Mjk3IiwgXAotICAgICAgICAgICIwLjAwNDIyNCwgMC4wMDQyODQsIDAuMDA0MjkxLCAwLjAwNDI5NSwgMC4wMDQyOTQsIDAuMDA0Mjk1LCAwLjAwNDI5NSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDU2NiwgMC4wMDQ2MjMsIDAuMDA0NjMyLCAwLjAwNDYzMywgMC4wMDQ2MzQsIDAuMDA0NjMzLCAwLjAwNDYzNiIsIFwKLSAgICAgICAgICAiMC4wMDQ1NTksIDAuMDA0NjE1LCAwLjAwNDYyMiwgMC4wMDQ2MjQsIDAuMDA0NjI3LCAwLjAwNDYyOCwgMC4wMDQ2MjgiLCBcCi0gICAgICAgICAgIjAuMDA0NTU0LCAwLjAwNDYxMSwgMC4wMDQ2MTgsIDAuMDA0NjIxLCAwLjAwNDYyMywgMC4wMDQ2MjQsIDAuMDA0NjIzIiwgXAotICAgICAgICAgICIwLjAwNDU1LCAwLjAwNDYwNywgMC4wMDQ2MTIsIDAuMDA0NjE3LCAwLjAwNDYxOSwgMC4wMDQ2MTgsIDAuMDA0NjIxIiwgXAotICAgICAgICAgICIwLjAwNDU0NywgMC4wMDQ2MDUsIDAuMDA0NjEyLCAwLjAwNDYxNSwgMC4wMDQ2MTQsIDAuMDA0NjIsIDAuMDA0NjE4IiwgXAotICAgICAgICAgICIwLjAwNDU0NiwgMC4wMDQ2MDYsIDAuMDA0NjExLCAwLjAwNDYxNiwgMC4wMDQ2MTcsIDAuMDA0NjE5LCAwLjAwNDYxOCIsIFwKLSAgICAgICAgICAiMC4wMDQ1NDgsIDAuMDA0NjA2LCAwLjAwNDYxNSwgMC4wMDQ2MTgsIDAuMDA0NjIxLCAwLjAwNDYyMiwgMC4wMDQ2MjMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJHIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDUxNTEsIDAuMDA1MjEsIDAuMDA1MjE3LCAwLjAwNTIyLCAwLjAwNTIyMiwgMC4wMDUyMjMsIDAuMDA1MjI0IiwgXAotICAgICAgICAgICIwLjAwNTEzNSwgMC4wMDUxOTQsIDAuMDA1MjAxLCAwLjAwNTIwNCwgMC4wMDUyMDYsIDAuMDA1MjA4LCAwLjAwNTIwNyIsIFwKLSAgICAgICAgICAiMC4wMDUxMzIsIDAuMDA1MTkxLCAwLjAwNTE5OCwgMC4wMDUyMDIsIDAuMDA1MjA0LCAwLjAwNTIwNCwgMC4wMDUyMDUiLCBcCi0gICAgICAgICAgIjAuMDA1MTM5LCAwLjAwNTE5OCwgMC4wMDUyMDMsIDAuMDA1MjA5LCAwLjAwNTIxLCAwLjAwNTIxNCwgMC4wMDUyMTQiLCBcCi0gICAgICAgICAgIjAuMDA1MTQ0LCAwLjAwNTIwMywgMC4wMDUyMSwgMC4wMDUyMTMsIDAuMDA1MjE1LCAwLjAwNTIxNiwgMC4wMDUyMTciLCBcCi0gICAgICAgICAgIjAuMDA1MTU2LCAwLjAwNTIxNSwgMC4wMDUyMjIsIDAuMDA1MjI2LCAwLjAwNTIyNiwgMC4wMDUyMjcsIDAuMDA1MjI4IiwgXAotICAgICAgICAgICIwLjAwNTE3LCAwLjAwNTIyOSwgMC4wMDUyMzYsIDAuMDA1MjM4LCAwLjAwNTI0MSwgMC4wMDUyNDIsIDAuMDA1MjQzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1MTc3LCAwLjAwNTIxMSwgMC4wMDUyMDYsIDAuMDA1MjA0LCAwLjAwNTIwMiwgMC4wMDUyLCAwLjAwNTE5OCIsIFwKLSAgICAgICAgICAiMC4wMDUxNiwgMC4wMDUxOTQsIDAuMDA1MTksIDAuMDA1MTg3LCAwLjAwNTE4NSwgMC4wMDUxODMsIDAuMDA1MTgxIiwgXAotICAgICAgICAgICIwLjAwNTE1NCwgMC4wMDUxODksIDAuMDA1MTg1LCAwLjAwNTE4MiwgMC4wMDUxNzksIDAuMDA1MTc4LCAwLjAwNTE3NyIsIFwKLSAgICAgICAgICAiMC4wMDUxNTgsIDAuMDA1MTk1LCAwLjAwNTE5LCAwLjAwNTE4NiwgMC4wMDUxODQsIDAuMDA1MTgyLCAwLjAwNTE4MSIsIFwKLSAgICAgICAgICAiMC4wMDUxNjEsIDAuMDA1MTk4LCAwLjAwNTE5NCwgMC4wMDUxOSwgMC4wMDUxODgsIDAuMDA1MTg1LCAwLjAwNTE4NSIsIFwKLSAgICAgICAgICAiMC4wMDUxNzQsIDAuMDA1MjExLCAwLjAwNTIwOSwgMC4wMDUyMDUsIDAuMDA1MjAxLCAwLjAwNTE5OSwgMC4wMDUxOTgiLCBcCi0gICAgICAgICAgIjAuMDA1MTg5LCAwLjAwNTIyOCwgMC4wMDUyMjUsIDAuMDA1MjIxLCAwLjAwNTIxOSwgMC4wMDUyMTYsIDAuMDA1MjE1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihRTikgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjUyNzc7Ci0gICAgZnVuY3Rpb24gOiAiTjAiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkQiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwODg0LCAwLjIxMTUzNSwgMC4yOTI5MTcsIDAuMzk0NjE1LCAwLjQ5NjQwNCwgMC41OTgwMDEsIDAuNjk5Njg4IiwgXAotICAgICAgICAgICIwLjExNzQwNCwgMC4yMjAxMSwgMC4zMDE1MDMsIDAuNDAzMTkyLCAwLjUwNDk2NCwgMC42MDY1NjgsIDAuNzA4MjcxIiwgXAotICAgICAgICAgICIwLjEyNzEwOSwgMC4yMjk4MDcsIDAuMzExMTk2LCAwLjQxMjg4MywgMC41MTQ2NTksIDAuNjE2MjY0LCAwLjcxNzk2MyIsIFwKLSAgICAgICAgICAiMC4xMzYzMDUsIDAuMjM5MDA0LCAwLjMyMDM5NCwgMC40MjIwODQsIDAuNTIzODcxLCAwLjYyNTQ2OSwgMC43MjcxNTYiLCBcCi0gICAgICAgICAgIjAuMTQ0ODMyLCAwLjI0NzUzNywgMC4zMjg5NzIsIDAuNDMwNjE3LCAwLjUzMjM0NiwgMC42MzM5ODksIDAuNzM1NjczIiwgXAotICAgICAgICAgICIwLjE1Njc3NywgMC4yNTk0ODUsIDAuMzQwODcyLCAwLjQ0MjU2OCwgMC41NDQyMzUsIDAuNjQ1OTM1LCAwLjc0NzYyIiwgXAotICAgICAgICAgICIwLjE2NTkwNiwgMC4yNjg2NDIsIDAuMzUwMDY0LCAwLjQ1MTcwOCwgMC41NTM0NTIsIDAuNjU1MTU1LCAwLjc1Njc5OCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTQ1NjEsIDAuMjU4NzIsIDAuNDI1NzA2LCAwLjYzNTgxOSwgMC44NDQ1MDksIDEuMDU2MDUsIDEuMjY2MDYiLCBcCi0gICAgICAgICAgIjAuMDU0NTQ5LCAwLjI1ODcxNiwgMC40MjU2MzcsIDAuNjM1NzkyLCAwLjg0NDQ1MiwgMS4wNTYwNCwgMS4yNjYwNiIsIFwKLSAgICAgICAgICAiMC4wNTQ1NjMsIDAuMjU4NzQ3LCAwLjQyNTY3OCwgMC42MzU4MDcsIDAuODQ0NDQzLCAxLjA1NjA0LCAxLjI2NjA3IiwgXAotICAgICAgICAgICIwLjA1NDU3MywgMC4yNTg1MTksIDAuNDI1NjkxLCAwLjYzNTgxMywgMC44NDQ1NzEsIDEuMDU2MDQsIDEuMjY2MDUiLCBcCi0gICAgICAgICAgIjAuMDU0NTU5LCAwLjI1ODczLCAwLjQyNTM0NywgMC42MzYxMzEsIDAuODQ2MTYzLCAxLjA1Mjk2LCAxLjI2NjAxIiwgXAotICAgICAgICAgICIwLjA1NDY3MywgMC4yNTg2ODIsIDAuNDI2MTg3LCAwLjYzNTk5OSwgMC44NDU4NywgMS4wNTU4MywgMS4yNjU4MSIsIFwKLSAgICAgICAgICAiMC4wNTQ3NjIsIDAuMjU4NzY1LCAwLjQyNTM5NSwgMC42MzU5OCwgMC44NDU5ODIsIDEuMDU1OTgsIDEuMjY1ODUiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTA4NzEyLCAwLjIxMzM0MywgMC4yOTYxNSwgMC4zOTk1OTMsIDAuNTAyOTc1LCAwLjYwNjQ4MiwgMC43MDk5OTgiLCBcCi0gICAgICAgICAgIjAuMTE3NzAyLCAwLjIyMjMzLCAwLjMwNTE1NCwgMC40MDg1NzUsIDAuNTEyMTQyLCAwLjYxNTM3MywgMC43MTg5NjQiLCBcCi0gICAgICAgICAgIjAuMTI4NDExLCAwLjIzMzA0MSwgMC4zMTU4NjIsIDAuNDE5MjQ3LCAwLjUyMjY2MiwgMC42MjYxMiwgMC43Mjk2ODkiLCBcCi0gICAgICAgICAgIjAuMTM4Njk2LCAwLjI0MzMzLCAwLjMyNjE1MiwgMC40Mjk1MjYsIDAuNTMzMTM0LCAwLjYzNjM3NSwgMC43Mzk5OCIsIFwKLSAgICAgICAgICAiMC4xNDgyNTgsIDAuMjUyOTAzLCAwLjMzNTcyMSwgMC40MzkyMTIsIDAuNTQyNzI2LCAwLjY0NjExOCwgMC43NDk1ODciLCBcCi0gICAgICAgICAgIjAuMTYxOTk1LCAwLjI2NjY0NSwgMC4zNDk0NjYsIDAuNDUyOTQ2LCAwLjU1NjQ1NiwgMC42NTk4NTcsIDAuNzYzMjk1IiwgXAotICAgICAgICAgICIwLjE3MjU3NSwgMC4yNzcyMjUsIDAuMzYwMDkxLCAwLjQ2MzUxNywgMC41NjcwMzYsIDAuNjcwNDYzLCAwLjc3Mzg2MiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTQyOTYsIDAuMjU3Nzc0LCAwLjQyNDcyMSwgMC42MzU0NzcsIDAuODQ0NzUsIDEuMDU1MDgsIDEuMjY1MDMiLCBcCi0gICAgICAgICAgIjAuMDU0MzE3LCAwLjI1ODU4OCwgMC40MjQzMTIsIDAuNjM1MzgzLCAwLjg0MzcxMywgMS4wNTIxNywgMS4yNjUwNiIsIFwKLSAgICAgICAgICAiMC4wNTQzMDYsIDAuMjU3NzcyLCAwLjQyNDMyNiwgMC42MzQ1MzgsIDAuODQyNDg4LCAxLjA1MTc5LCAxLjI2NDk5IiwgXAotICAgICAgICAgICIwLjA1NDIxNiwgMC4yNTc3NzMsIDAuNDI0MzE5LCAwLjYzNDU1OSwgMC44NDM3MTEsIDEuMDUyNjcsIDEuMjY0OTgiLCBcCi0gICAgICAgICAgIjAuMDU0MjkzLCAwLjI1Nzc4MywgMC40MjQzOCwgMC42MzQ2MzksIDAuODQzNjcsIDEuMDU1MDgsIDEuMjY1MDUiLCBcCi0gICAgICAgICAgIjAuMDU0MjYsIDAuMjU3OTY1LCAwLjQyNDkyNiwgMC42MzUzMjIsIDAuODQzNjYzLCAxLjA1MzY3LCAxLjI2NDkyIiwgXAotICAgICAgICAgICIwLjA1NDQ1NSwgMC4yNTg1NzEsIDAuNDI1MTE4LCAwLjYzNTIzLCAwLjg0MzY2MSwgMS4wNTUyNSwgMS4yNjQ2MyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJHIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5vbl91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcmlzaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEyNzE3OSwgMC4yMjk3NjcsIDAuMzExMSwgMC40MTI3NTEsIDAuNTE0NDA2LCAwLjYxNjExMiwgMC43MTc3NyIsIFwKLSAgICAgICAgICAiMC4xMzczNTcsIDAuMjM5OTY0LCAwLjMyMTI3NywgMC40MjI5MzIsIDAuNTI0NjQzLCAwLjYyNjI5LCAwLjcyNzk1OCIsIFwKLSAgICAgICAgICAiMC4xNDk4NDksIDAuMjUyNDMyLCAwLjMzMzc2MiwgMC40MzU0MjIsIDAuNTM3MTM1LCAwLjYzODc4MywgMC43NDA0NTkiLCBcCi0gICAgICAgICAgIjAuMTYxMDQ1LCAwLjI2MzY0MSwgMC4zNDQ5NTksIDAuNDQ2NjM5LCAwLjU0ODM2OCwgMC42NDk4NDgsIDAuNzUxNjQ1IiwgXAotICAgICAgICAgICIwLjE3MDg3OSwgMC4yNzM0NywgMC4zNTQ3OTYsIDAuNDU2NDU3LCAwLjU1ODEyLCAwLjY1OTgxMywgMC43NjE0NjciLCBcCi0gICAgICAgICAgIjAuMTg0NDQ4LCAwLjI4NzA0NiwgMC4zNjgzOCwgMC40NzAwMzIsIDAuNTcxOCwgMC42NzMzODIsIDAuNzc1MDU4IiwgXAotICAgICAgICAgICIwLjE5NDg1MSwgMC4yOTc0NTQsIDAuMzc4Nzk2LCAwLjQ4MDQ0NiwgMC41ODIxNDksIDAuNjgzOCwgMC43ODU0NjEiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU0NjI5LCAwLjI1ODgxNiwgMC40MjU2NzksIDAuNjM1ODI3LCAwLjg0NTY4MywgMS4wNTYxLCAxLjI2NjA2IiwgXAotICAgICAgICAgICIwLjA1NDYyNywgMC4yNTgyMzksIDAuNDI1NzMyLCAwLjYzNTgxOCwgMC44NDQ2OTksIDEuMDU2MDUsIDEuMjY2MDQiLCBcCi0gICAgICAgICAgIjAuMDU0NjM0LCAwLjI1ODUyLCAwLjQyNTY3NCwgMC42MzYxNDUsIDAuODQzOTYsIDEuMDU2MDYsIDEuMjY2MDYiLCBcCi0gICAgICAgICAgIjAuMDU0NjQ4LCAwLjI1ODgwNiwgMC40MjU2NDMsIDAuNjM1MzU5LCAwLjg0NDQ1MywgMS4wNTQ1NywgMS4yNjYwMSIsIFwKLSAgICAgICAgICAiMC4wNTQ2NzYsIDAuMjU4NzE2LCAwLjQyNjI0NSwgMC42MzYxMzQsIDAuODQ2MDQ1LCAxLjA1MzkyLCAxLjI2NjAxIiwgXAotICAgICAgICAgICIwLjA1NDYzNywgMC4yNTg0NzksIDAuNDI1MTM1LCAwLjYzNTgxNCwgMC44NDQ0OTUsIDEuMDU2MDUsIDEuMjY2MDUiLCBcCi0gICAgICAgICAgIjAuMDU0NjU2LCAwLjI1ODY4OSwgMC40MjU2NzgsIDAuNjM1OCwgMC44NDQ2OTIsIDEuMDU1ODksIDEuMjY2MDEiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTQyNjQyLCAwLjI0NzI3MiwgMC4zMzAwOTIsIDAuNDMzNjE4LCAwLjUzNzAzMSwgMC42NDA1NTEsIDAuNzQzOTM1IiwgXAotICAgICAgICAgICIwLjE1MjgyOCwgMC4yNTc0NTksIDAuMzQwMjg1LCAwLjQ0Mzc4NCwgMC41NDcyODYsIDAuNjUwNjgsIDAuNzU0MTM2IiwgXAotICAgICAgICAgICIwLjE2NTQzNywgMC4yNzAwNjgsIDAuMzUyODk0LCAwLjQ1NjM5MywgMC41NTk4OTUsIDAuNjYzMjg5LCAwLjc2Njc0NSIsIFwKLSAgICAgICAgICAiMC4xNzY0NDQsIDAuMjgxMDcxLCAwLjM2Mzg5NiwgMC40NjczOTUsIDAuNTcwODc5LCAwLjY3NDMyNywgMC43Nzc3NzYiLCBcCi0gICAgICAgICAgIjAuMTg2MjA4LCAwLjI5MDgzNiwgMC4zNzM2NTQsIDAuNDc3MTUyLCAwLjU4MDY3MiwgMC42ODQwNiwgMC43ODc1MDciLCBcCi0gICAgICAgICAgIjAuMTk5MTQ5LCAwLjMwMzc3OSwgMC4zODY2MDIsIDAuNDkwMDc3LCAwLjU5MzU1NywgMC42OTcwMTcsIDAuODAwNDU3IiwgXAotICAgICAgICAgICIwLjIwOTA5MSwgMC4zMTM3MiwgMC4zOTY1MzcsIDAuNTAwMDMzLCAwLjYwMzQ4OCwgMC43MDcwMjcsIDAuODEwMzc4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1NDMzNSwgMC4yNTgyOSwgMC40MjUxOTYsIDAuNjM0NzcyLCAwLjg0NTQxMiwgMS4wNTMwOSwgMS4yNjQ0NyIsIFwKLSAgICAgICAgICAiMC4wNTQzMzEsIDAuMjU4MzAxLCAwLjQyNTAyNiwgMC42MzQ2OTQsIDAuODQzNjcyLCAxLjA1NTE3LCAxLjI2NTAzIiwgXAotICAgICAgICAgICIwLjA1NDMzMiwgMC4yNTgzMDIsIDAuNDI1MDI1LCAwLjYzNDY5MywgMC44NDM2NzIsIDEuMDU1MTcsIDEuMjY1MDQiLCBcCi0gICAgICAgICAgIjAuMDU0MzQzLCAwLjI1ODI5NywgMC40MjUwNTgsIDAuNjM0MjYxLCAwLjg0MzY2NywgMS4wNTUzNiwgMS4yNjUxOSIsIFwKLSAgICAgICAgICAiMC4wNTQzNDIsIDAuMjU4MzE5LCAwLjQyNTMxMywgMC42MzUyOTUsIDAuODQzNjE5LCAxLjA1NTIsIDEuMjY1MDIiLCBcCi0gICAgICAgICAgIjAuMDU0MzQ3LCAwLjI1ODMxOCwgMC40MjUwOTQsIDAuNjM1MzI4LCAwLjg0NDI2NCwgMS4wNTUyOCwgMS4yNjUwNCIsIFwKLSAgICAgICAgICAiMC4wNTQzMzMsIDAuMjU4MjYzLCAwLjQyNTIwNSwgMC42MzUzMDQsIDAuODQ1NDYzLCAxLjA1MzA0LCAxLjI2NDQ1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0NTY2LCAwLjAwNDYyMywgMC4wMDQ2MzIsIDAuMDA0NjMzLCAwLjAwNDYzNCwgMC4wMDQ2MzMsIDAuMDA0NjM2IiwgXAotICAgICAgICAgICIwLjAwNDU1OSwgMC4wMDQ2MTUsIDAuMDA0NjIyLCAwLjAwNDYyNCwgMC4wMDQ2MjcsIDAuMDA0NjI4LCAwLjAwNDYyOCIsIFwKLSAgICAgICAgICAiMC4wMDQ1NTQsIDAuMDA0NjExLCAwLjAwNDYxOCwgMC4wMDQ2MjEsIDAuMDA0NjIzLCAwLjAwNDYyNCwgMC4wMDQ2MjMiLCBcCi0gICAgICAgICAgIjAuMDA0NTUsIDAuMDA0NjA3LCAwLjAwNDYxMiwgMC4wMDQ2MTcsIDAuMDA0NjE5LCAwLjAwNDYxOCwgMC4wMDQ2MjEiLCBcCi0gICAgICAgICAgIjAuMDA0NTQ3LCAwLjAwNDYwNSwgMC4wMDQ2MTIsIDAuMDA0NjE1LCAwLjAwNDYxNCwgMC4wMDQ2MiwgMC4wMDQ2MTgiLCBcCi0gICAgICAgICAgIjAuMDA0NTQ2LCAwLjAwNDYwNiwgMC4wMDQ2MTEsIDAuMDA0NjE2LCAwLjAwNDYxNywgMC4wMDQ2MTksIDAuMDA0NjE4IiwgXAotICAgICAgICAgICIwLjAwNDU0OCwgMC4wMDQ2MDYsIDAuMDA0NjE1LCAwLjAwNDYxOCwgMC4wMDQ2MjEsIDAuMDA0NjIyLCAwLjAwNDYyMyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDI0NiwgMC4wMDQzMDQsIDAuMDA0MzExLCAwLjAwNDMxNSwgMC4wMDQzMjIsIDAuMDA0MzIsIDAuMDA0MzE5IiwgXAotICAgICAgICAgICIwLjAwNDIzNiwgMC4wMDQyOTQsIDAuMDA0Mjk4LCAwLjAwNDMwOSwgMC4wMDQzMDYsIDAuMDA0MzA0LCAwLjAwNDMwOCIsIFwKLSAgICAgICAgICAiMC4wMDQyMjgsIDAuMDA0Mjg2LCAwLjAwNDI5MywgMC4wMDQyOTcsIDAuMDA0MzAzLCAwLjAwNDMsIDAuMDA0Mjk3IiwgXAotICAgICAgICAgICIwLjAwNDIyMywgMC4wMDQyODIsIDAuMDA0Mjg5LCAwLjAwNDI5MiwgMC4wMDQyOTQsIDAuMDA0Mjk4LCAwLjAwNDI5NiIsIFwKLSAgICAgICAgICAiMC4wMDQyMTcsIDAuMDA0Mjc3LCAwLjAwNDI4NSwgMC4wMDQyODksIDAuMDA0MjksIDAuMDA0MjkxLCAwLjAwNDI5MiIsIFwKLSAgICAgICAgICAiMC4wMDQyMTgsIDAuMDA0MjgxLCAwLjAwNDI4OSwgMC4wMDQyOTIsIDAuMDA0Mjk0LCAwLjAwNDI5NiwgMC4wMDQyOTciLCBcCi0gICAgICAgICAgIjAuMDA0MjI0LCAwLjAwNDI4NCwgMC4wMDQyOTEsIDAuMDA0Mjk1LCAwLjAwNDI5NCwgMC4wMDQyOTUsIDAuMDA0Mjk1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1MTc3LCAwLjAwNTIxMSwgMC4wMDUyMDYsIDAuMDA1MjA0LCAwLjAwNTIwMiwgMC4wMDUyLCAwLjAwNTE5OCIsIFwKLSAgICAgICAgICAiMC4wMDUxNiwgMC4wMDUxOTQsIDAuMDA1MTksIDAuMDA1MTg3LCAwLjAwNTE4NSwgMC4wMDUxODMsIDAuMDA1MTgxIiwgXAotICAgICAgICAgICIwLjAwNTE1NCwgMC4wMDUxODksIDAuMDA1MTg1LCAwLjAwNTE4MiwgMC4wMDUxNzksIDAuMDA1MTc4LCAwLjAwNTE3NyIsIFwKLSAgICAgICAgICAiMC4wMDUxNTgsIDAuMDA1MTk1LCAwLjAwNTE5LCAwLjAwNTE4NiwgMC4wMDUxODQsIDAuMDA1MTgyLCAwLjAwNTE4MSIsIFwKLSAgICAgICAgICAiMC4wMDUxNjEsIDAuMDA1MTk4LCAwLjAwNTE5NCwgMC4wMDUxOSwgMC4wMDUxODgsIDAuMDA1MTg1LCAwLjAwNTE4NSIsIFwKLSAgICAgICAgICAiMC4wMDUxNzQsIDAuMDA1MjExLCAwLjAwNTIwOSwgMC4wMDUyMDUsIDAuMDA1MjAxLCAwLjAwNTE5OSwgMC4wMDUxOTgiLCBcCi0gICAgICAgICAgIjAuMDA1MTg5LCAwLjAwNTIyOCwgMC4wMDUyMjUsIDAuMDA1MjIxLCAwLjAwNTIxOSwgMC4wMDUyMTYsIDAuMDA1MjE1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1MTUxLCAwLjAwNTIxLCAwLjAwNTIxNywgMC4wMDUyMiwgMC4wMDUyMjIsIDAuMDA1MjIzLCAwLjAwNTIyNCIsIFwKLSAgICAgICAgICAiMC4wMDUxMzUsIDAuMDA1MTk0LCAwLjAwNTIwMSwgMC4wMDUyMDQsIDAuMDA1MjA2LCAwLjAwNTIwOCwgMC4wMDUyMDciLCBcCi0gICAgICAgICAgIjAuMDA1MTMyLCAwLjAwNTE5MSwgMC4wMDUxOTgsIDAuMDA1MjAyLCAwLjAwNTIwNCwgMC4wMDUyMDQsIDAuMDA1MjA1IiwgXAotICAgICAgICAgICIwLjAwNTEzOSwgMC4wMDUxOTgsIDAuMDA1MjAzLCAwLjAwNTIwOSwgMC4wMDUyMSwgMC4wMDUyMTQsIDAuMDA1MjE0IiwgXAotICAgICAgICAgICIwLjAwNTE0NCwgMC4wMDUyMDMsIDAuMDA1MjEsIDAuMDA1MjEzLCAwLjAwNTIxNSwgMC4wMDUyMTYsIDAuMDA1MjE3IiwgXAotICAgICAgICAgICIwLjAwNTE1NiwgMC4wMDUyMTUsIDAuMDA1MjIyLCAwLjAwNTIyNiwgMC4wMDUyMjYsIDAuMDA1MjI3LCAwLjAwNTIyOCIsIFwKLSAgICAgICAgICAiMC4wMDUxNywgMC4wMDUyMjksIDAuMDA1MjM2LCAwLjAwNTIzOCwgMC4wMDUyNDEsIDAuMDA1MjQyLCAwLjAwNTI0MyIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogVExBVFhMICoKLSAqIC0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoVExBVFhMKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMjA4Njg4OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIGxhdGNoIChRSU5ULE4wKSB7Ci0gICAgZGF0YV9pbiA6ICJEIjsKLSAgICBlbmFibGUgOiAiRyI7Ci0gIH0KLSAgcGluKEQpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYxNDQ4NzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MTI2ODY7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjE0NDg3OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDIxNywgMC4wMDAyMiwgMC4wMDAyMjEsIDAuMDAwMjIxLCAwLjAwMDIyMSwgMC4wMDAyMjIsIDAuMDAwMjIyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjI4LCAwLjAwMDIyNywgMC4wMDAyMjcsIDAuMDAwMjI3LCAwLjAwMDIyNywgMC4wMDAyMjcsIDAuMDAwMjI3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkciOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX2ZhbGxpbmc7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDA2MjUsIC0wLjAwMTI1LCAwLjAxMTI1LCAwLjAyMzc1LCAwLjAzLCAwLjA0NjI1LCAwLjA1NSIsIFwKLSAgICAgICAgICAiLTAuMDE3NSwgLTAuMDA2MjUsIDAuMDA2MjUsIDAuMDEyNSwgMC4wMjUsIDAuMDM1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLjAwNjI1LCAwLjAxMjUsIDAuMDIyNSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAsIDAuMDE2MjUsIDAuMDI1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDM3NSwgLTAuMDI1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMC4wMDM3NSwgMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wNjUsIC0wLjA1Mzc1LCAtMC4wNDEyNSwgLTAuMDI4NzUsIC0wLjAyMjUsIC0wLjAwNjI1LCAwLjAwMjUiLCBcCi0gICAgICAgICAgIi0wLjA3Mzc1LCAtMC4wNjI1LCAtMC4wNSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAyMTI1LCAtMC4wMTI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDMxMjUsIC0wLjAyLCAtMC4wMTM3NSwgLTAuMDA3NSwgLTAuMDA3NSwgLTAuMDAzNzUsIDAuMDA1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwODc1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAyNSwgLTAuMDE1LCAtMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAyNzUsIC0wLjAxODc1IiwgXAotICAgICAgICAgICItMC4wNjEyNSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDMzNzUsIC0wLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wNzc1LCAtMC4wNjYyNSwgLTAuMDYsIC0wLjA1Mzc1LCAtMC4wNDc1LCAtMC4wNDM3NSwgLTAuMDQxMjUiLCBcCi0gICAgICAgICAgIi0wLjA4NjI1LCAtMC4wNzUsIC0wLjA2ODc1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDUyNSwgLTAuMDQzNzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX2ZhbGxpbmc7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE4NzUsIDAuMDEzNzUsIDAuMDAxMjUsIC0wLjAxMTI1LCAtMC4wMjM3NSwgLTAuMDMzNzUsIC0wLjA0MjUiLCBcCi0gICAgICAgICAgIjAuMDMsIDAuMDE4NzUsIDAuMDA2MjUsIC0wLjAwNjI1LCAtMC4wMTI1LCAtMC4wMjI1LCAtMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4wNDI1LCAwLjAzMTI1LCAwLjAxODc1LCAwLjAwNjI1LCAwLCAtMC4wMSwgLTAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMDQ4NzUsIDAuMDM3NSwgMC4wMjUsIDAuMDE4NzUsIDAuMDA2MjUsIC0wLjAwMzc1LCAtMC4wMTI1IiwgXAotICAgICAgICAgICIwLjA2MTI1LCAwLjA1LCAwLjAzNzUsIDAuMDI1LCAwLjAxODc1LCAwLjAwODc1LCAwIiwgXAotICAgICAgICAgICIwLjA3MTI1LCAwLjA2NjI1LCAwLjA1Mzc1LCAwLjA0MTI1LCAwLjAyODc1LCAwLjAxODc1LCAwLjAxIiwgXAotICAgICAgICAgICIwLjA4NjI1LCAwLjA3NSwgMC4wNjI1LCAwLjA1LCAwLjA0Mzc1LCAwLjAyNzUsIDAuMDE4NzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDM3NSwgMC4wMzI1LCAwLjAyNjI1LCAwLjAyNjI1LCAwLjAyLCAwLjAyMjUsIDAuMDIiLCBcCi0gICAgICAgICAgIjAuMDQ4NzUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMzEyNSwgMC4wMjc1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiMC4wNjEyNSwgMC4wNSwgMC4wNDM3NSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzMzc1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNSwgMC4wNDM3NSwgMC4wNDYyNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4wNzM3NSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1NjI1LCAwLjA1MjUsIDAuMDUiLCBcCi0gICAgICAgICAgIjAuMDgzNzUsIDAuMDc4NzUsIDAuMDcyNSwgMC4wNjYyNSwgMC4wNjYyNSwgMC4wNjI1LCAwLjA2IiwgXAotICAgICAgICAgICIwLjA5MjUsIDAuMDg3NSwgMC4wODEyNSwgMC4wNzUsIDAuMDc1LCAwLjA2NSwgMC4wNjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihHKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2NzIwNDc7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjcyMDM4OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDY3MjA0NzsKLSAgICBjbG9jayA6IHRydWU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxODM1LCAwLjAwMTgwNiwgMC4wMDE3OTYsIDAuMDAxOCwgMC4wMDE4MDcsIDAuMDAxODM1LCAwLjAwMTg1NCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzE2MSwgMC4wMDMxMzYsIDAuMDAzMTI4LCAwLjAwMzEzNSwgMC4wMDMxMzksIDAuMDAzMTcsIDAuMDAzMTkyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkciOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFEIjsKLSAgICAgIHNkZl9jb25kIDogIkQgPT0gMSdiMCI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4xNzYxOTgsIDAuMTg2MzMsIDAuMTk4NTc2LCAwLjIwOTg0LCAwLjIxOTU0MywgMC4yMzI1NzIsIDAuMjQyOTYxIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihRKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMTUzMjMzOwotICAgIGZ1bmN0aW9uIDogIlFJTlQiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkQiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE1Nzc4MiwgMC4xNzIyOSwgMC4yOTk5MzEsIDAuNTEyMTEzLCAwLjcyNDMyOSwgMS4yMTczOCwgMS41MDIyOSIsIFwKLSAgICAgICAgICAiMC4xNjcwMDcsIDAuMTgwODYxLCAwLjMwODg1NSwgMC41MjA1MjksIDAuNzMzMjI4LCAxLjIyODM0LCAxLjUxMTIiLCBcCi0gICAgICAgICAgIjAuMTc3NTA0LCAwLjE5MTk4NiwgMC4zMTk1ODQsIDAuNTMxNzcyLCAwLjc0Mzk3NywgMS4yMzcyNywgMS41MjE5NCIsIFwKLSAgICAgICAgICAiMC4xODc2NzQsIDAuMjAyMTY0LCAwLjMyOTc3LCAwLjU0MTk1NSwgMC43NTQxNTEsIDEuMjQ3NDMsIDEuNTMyMTIiLCBcCi0gICAgICAgICAgIjAuMTk3MjczLCAwLjIxMTQ1MywgMC4zMzg1NDcsIDAuNTUxMjg1LCAwLjc2MzQ2OSwgMS4yNTg1NiwgMS41NDE0NCIsIFwKLSAgICAgICAgICAiMC4yMTAzNjYsIDAuMjI0NTEsIDAuMzUyNDk0LCAwLjU2NDYyNSwgMC43NzY3NDUsIDEuMjcxODQsIDEuNTU0NjkiLCBcCi0gICAgICAgICAgIjAuMjIwOTY3LCAwLjIzNDgzLCAwLjM2MjA1NiwgMC41NzQ4MiwgMC43ODY5NjQsIDEuMjgyMTEsIDEuNTYzNiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNTE5MzEsIDAuMTgxMzM0LCAwLjQ0MzAxMSwgMC44Nzg3NjgsIDEuMzE0MzUsIDIuMzI4MTksIDIuOTEyOTQiLCBcCi0gICAgICAgICAgIjAuMTUxOTYyLCAwLjE4MDM3MywgMC40NDI2NDMsIDAuODc5MTk0LCAxLjMxNDM5LCAyLjMzMTI0LCAyLjkxMjc4IiwgXAotICAgICAgICAgICIwLjE1MjE3OCwgMC4xODEzLCAwLjQ0Mjk3NiwgMC44Nzg3NzYsIDEuMzE0MzMsIDIuMzI5MDgsIDIuOTEyOTQiLCBcCi0gICAgICAgICAgIjAuMTUxNzM0LCAwLjE4MTMwMywgMC40NDI5NzIsIDAuODc4NzY1LCAxLjMxNDIzLCAyLjMyOTM3LCAyLjkxMyIsIFwKLSAgICAgICAgICAiMC4xNTE5MzMsIDAuMTgxMDY4LCAwLjQ0MjIyOCwgMC44Nzg2NzcsIDEuMzE0MjQsIDIuMzMxNTYsIDIuOTEyOTMiLCBcCi0gICAgICAgICAgIjAuMTUyMTE4LCAwLjE4MTA3OCwgMC40NDMwNjYsIDAuODc4NjI0LCAxLjMxNDQ1LCAyLjMzMTc4LCAyLjkxMzQ0IiwgXAotICAgICAgICAgICIwLjE1MjMyNCwgMC4xODEwNDcsIDAuNDQyMzMyLCAwLjg3ODUyNSwgMS4zMTQ2NCwgMi4zMzIwMywgMi45MTM0OSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNTgxOTgsIDAuMTcxODE1LCAwLjI5NjM0MSwgMC41MDM3ODMsIDAuNzExMzMxLCAxLjE5NTU4LCAxLjQ3MjA2IiwgXAotICAgICAgICAgICIwLjE2NjY2NiwgMC4xODAyNjYsIDAuMzA1MTE1LCAwLjUxMjI3NiwgMC43MTk3MzgsIDEuMjAzNjUsIDEuNDgwNTEiLCBcCi0gICAgICAgICAgIjAuMTc2MjkxLCAwLjE4OTg5MywgMC4zMTQ3MzgsIDAuNTIxODk4LCAwLjcyOTM1OSwgMS4yMTMzOSwgMS40OTAxMyIsIFwKLSAgICAgICAgICAiMC4xODU0MTYsIDAuMTk4OTg2LCAwLjMyMzg2MywgMC41MzEwMjMsIDAuNzM4NDk2LCAxLjIyMzA4LCAxLjQ5OTk0IiwgXAotICAgICAgICAgICIwLjE5MzY2MSwgMC4yMDcyMTgsIDAuMzMyMTIzLCAwLjUzOTI3OCwgMC43NDY2OTMsIDEuMjMxMzQsIDEuNTA3MzQiLCBcCi0gICAgICAgICAgIjAuMjA0OTQ0LCAwLjIxOTEyNywgMC4zNDM2NTksIDAuNTUwODMzLCAwLjc1ODMyOSwgMS4yNDI2LCAxLjUxOTA2IiwgXAotICAgICAgICAgICIwLjIxMzc4LCAwLjIyNzg2OSwgMC4zNTIxMjksIDAuNTU5NjQ4LCAwLjc2NzIwNiwgMS4yNTE2NiwgMS41Mjc4OSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNDUyNjQsIDAuMTcyNzg0LCAwLjQyMjQ0MywgMC44NDAwODgsIDEuMjU3ODgsIDIuMjMwODMsIDIuNzgwMzYiLCBcCi0gICAgICAgICAgIjAuMTQ1MjQyLCAwLjE3Mjc4OCwgMC40MjMzNzMsIDAuODQwNjEsIDEuMjU3NzQsIDIuMjI2NDksIDIuNzc0ODEiLCBcCi0gICAgICAgICAgIjAuMTQ1MjQxLCAwLjE3Mjc4NywgMC40MjMzNzEsIDAuODQwNjA1LCAxLjI1NzcyLCAyLjIzMDQ0LCAyLjc3NDc2IiwgXAotICAgICAgICAgICIwLjE0NTI0MSwgMC4xNzI3ODksIDAuNDIzMzYzLCAwLjg0MDU4OSwgMS4yNTc3NiwgMi4yMjQyLCAyLjc4ODU3IiwgXAotICAgICAgICAgICIwLjE0NTI0LCAwLjE3MjY4NywgMC40MjMzOSwgMC44NDA2MDUsIDEuMjUyMTksIDIuMjI1ODgsIDIuNzg2MjIiLCBcCi0gICAgICAgICAgIjAuMTQ1MTM3LCAwLjE3Mjk3MSwgMC40MjMzNjksIDAuODQwNTM2LCAxLjI1NzY4LCAyLjIzMDU0LCAyLjc4MzE5IiwgXAotICAgICAgICAgICIwLjE0NTA2OSwgMC4xNzI4OTIsIDAuNDIyNTM3LCAwLjg0MDUwMiwgMS4yNTUxLCAyLjIzMTg4LCAyLjc4MzIyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkciOwotICAgICAgdGltaW5nX3NlbnNlIDogbm9uX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiByaXNpbmdfZWRnZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTkwNTk1LCAwLjIwNDc0MywgMC4zMzI3MjcsIDAuNTQ0OTE1LCAwLjc1NzA0MywgMS4yNTIxNywgMS41MzUwNCIsIFwKLSAgICAgICAgICAiMC4yMDEwOTEsIDAuMjE1MjksIDAuMzQyMSwgMC41NTUxMjUsIDAuNzY2MDIsIDEuMjYyMzksIDEuNTQzMjEiLCBcCi0gICAgICAgICAgIjAuMjEzMzk2LCAwLjIyNzU0NSwgMC4zNTUwOTUsIDAuNTY3Njc2LCAwLjc3OTg1NCwgMS4yNzQ5NiwgMS41NTc4MiIsIFwKLSAgICAgICAgICAiMC4yMjQ1ODMsIDAuMjM4NDk5LCAwLjM2NjQ3LCAwLjU3ODY1NSwgMC43OTA4MTEsIDEuMjg1OTIsIDEuNTY3MzUiLCBcCi0gICAgICAgICAgIjAuMjM0MTY1LCAwLjI0ODM2NCwgMC4zNzYwMTcsIDAuNTg4MjE1LCAwLjc5OTQyLCAxLjI5NTQ5LCAxLjU3NjM5IiwgXAotICAgICAgICAgICIwLjI0Njg2MywgMC4yNjA3ODcsIDAuMzg4NzU1LCAwLjYwMDkzMiwgMC44MTIzNjQsIDEuMzA4MiwgMS41ODkyNCIsIFwKLSAgICAgICAgICAiMC4yNTYwNjIsIDAuMjcwNjMyLCAwLjM5ODE1MSwgMC42MTAzNjQsIDAuODIyNTQ0LCAxLjMxNzU4LCAxLjYwMDUyIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE1MTk1OSwgMC4xODA4NzIsIDAuNDQzMDI3LCAwLjg3ODgyNywgMS4zMTQyNSwgMi4zMzEyOSwgMi45MTI1MyIsIFwKLSAgICAgICAgICAiMC4xNTIzNDUsIDAuMTgxNDI3LCAwLjQ0MjM1MSwgMC44Nzg4NTEsIDEuMzEyMjgsIDIuMzMxMzIsIDIuOTA5NDciLCBcCi0gICAgICAgICAgIjAuMTUxODkxLCAwLjE4MTAwMywgMC40NDI5MjcsIDAuODc4ODY4LCAxLjMxNDM1LCAyLjMzMTM0LCAyLjkxMjc5IiwgXAotICAgICAgICAgICIwLjE1MjE3LCAwLjE4MSwgMC40NDMwMzQsIDAuODc4ODM0LCAxLjMxNDIsIDIuMzMxMywgMi45MTM1NiIsIFwKLSAgICAgICAgICAiMC4xNTIzNTMsIDAuMTgxMzY0LCAwLjQ0MzA0MywgMC44Nzg4MzcsIDEuMzEyNTksIDIuMzMxMzEsIDIuOTA4ODUiLCBcCi0gICAgICAgICAgIjAuMTUyMTIsIDAuMTgwODA1LCAwLjQ0MzA0OCwgMC44Nzg4MywgMS4zMTUyNSwgMi4zMzEzMiwgMi45MDk4MyIsIFwKLSAgICAgICAgICAiMC4xNTE2NDIsIDAuMTgxMDQ3LCAwLjQ0MjYwMSwgMC44Nzg1MjcsIDEuMzEzOTcsIDIuMzMwOTIsIDIuOTEyMzMiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTc2MTk4LCAwLjE4OTc3NiwgMC4zMTQ2NzYsIDAuNTIxODQ5LCAwLjcyOTI2OCwgMS4yMTM4NSwgMS40OTAwNSIsIFwKLSAgICAgICAgICAiMC4xODYzMywgMC4yMDAxOCwgMC4zMjQ4LCAwLjUzMTk2NiwgMC43MzkzNTIsIDEuMjIzOTgsIDEuNTAwMjIiLCBcCi0gICAgICAgICAgIjAuMTk4NTc2LCAwLjIxMjQ3MSwgMC4zMzcyNzYsIDAuNTQ0NDU1LCAwLjc1MTg4NCwgMS4yMzYzOCwgMS41MTI2MyIsIFwKLSAgICAgICAgICAiMC4yMDk4NCwgMC4yMjMzOTQsIDAuMzQ4MzE0LCAwLjU1NTQ3OSwgMC43NjI5NDgsIDEuMjQ3NDksIDEuNTIzOTEiLCBcCi0gICAgICAgICAgIjAuMjE5NTQzLCAwLjIzMzQ3NSwgMC4zNTgwNTQsIDAuNTY1MjIsIDAuNzcyNTc3LCAxLjI1Njc1LCAxLjUzMzQiLCBcCi0gICAgICAgICAgIjAuMjMyNTcyLCAwLjI0NjQ1MiwgMC4zNzEzNDEsIDAuNTc4NTEyLCAwLjc4NTkzNiwgMS4yNzAyLCAxLjU0NjcxIiwgXAotICAgICAgICAgICIwLjI0Mjk2MSwgMC4yNTY3MywgMC4zODE2MjMsIDAuNTg4NzA1LCAwLjc5NjI0NSwgMS4yODAzNywgMS41NTY5OCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNDUyNDUsIDAuMTcyOCwgMC40MjMzNjUsIDAuODQwNjU0LCAxLjI1NzgxLCAyLjIyNzYyLCAyLjc4MzkzIiwgXAotICAgICAgICAgICIwLjE0NTI0NCwgMC4xNzI5MzYsIDAuNDIzMzg2LCAwLjg0MDYyNywgMS4yNTc2NSwgMi4yMjcxMywgMi43ODExIiwgXAotICAgICAgICAgICIwLjE0NTA4NCwgMC4xNzI3OTMsIDAuNDIzMzcsIDAuODQwNzEyLCAxLjI1Nzg3LCAyLjIzMTg1LCAyLjc4MTU3IiwgXAotICAgICAgICAgICIwLjE0NTIzMywgMC4xNzI4MSwgMC40MjMzNjgsIDAuODQwNjA3LCAxLjI1ODAxLCAyLjIyNjE3LCAyLjc4Njg1IiwgXAotICAgICAgICAgICIwLjE0NTI3MiwgMC4xNzI5NDEsIDAuNDIzMzc3LCAwLjg0MDYwNSwgMS4yNTQ3NiwgMi4yMjc5MSwgMi43ODEyIiwgXAotICAgICAgICAgICIwLjE0NTEzNCwgMC4xNzI3ODksIDAuNDIzMzYxLCAwLjg0MDYwOSwgMS4yNTc3NCwgMi4yMzA4MiwgMi43ODQzNyIsIFwKLSAgICAgICAgICAiMC4xNDUwNzMsIDAuMTcyNzc3LCAwLjQyMzM1OCwgMC44Mzg4NDMsIDEuMjU3NjYsIDIuMjI1NjcsIDIuNzgxMTIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJEIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDIxODksIDAuMDAyMTksIDAuMDAyMTk0LCAwLjAwMjE5NSwgMC4wMDIxOTUsIDAuMDAyMTk2LCAwLjAwMjE5NiIsIFwKLSAgICAgICAgICAiMC4wMDIxNzgsIDAuMDAyMTc5LCAwLjAwMjE4MywgMC4wMDIxODQsIDAuMDAyMTgzLCAwLjAwMjE4NiwgMC4wMDIxODYiLCBcCi0gICAgICAgICAgIjAuMDAyMTcyLCAwLjAwMjE3MywgMC4wMDIxNzYsIDAuMDAyMTc3LCAwLjAwMjE3OCwgMC4wMDIxNzgsIDAuMDAyMTc4IiwgXAotICAgICAgICAgICIwLjAwMjE2OCwgMC4wMDIxNjksIDAuMDAyMTcyLCAwLjAwMjE3MywgMC4wMDIxNzQsIDAuMDAyMTc0LCAwLjAwMjE3NCIsIFwKLSAgICAgICAgICAiMC4wMDIxNjcsIDAuMDAyMTY4LCAwLjAwMjE3MiwgMC4wMDIxNzMsIDAuMDAyMTc0LCAwLjAwMjE3NCwgMC4wMDIxNzQiLCBcCi0gICAgICAgICAgIjAuMDAyMTY3LCAwLjAwMjE2OCwgMC4wMDIxNzIsIDAuMDAyMTczLCAwLjAwMjE3NCwgMC4wMDIxNzQsIDAuMDAyMTc0IiwgXAotICAgICAgICAgICIwLjAwMjE3MSwgMC4wMDIxNzIsIDAuMDAyMTc2LCAwLjAwMjE3NywgMC4wMDIxNzgsIDAuMDAyMTc4LCAwLjAwMjE3OCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjUwMywgMC4wMDI1MDQsIDAuMDAyNTA3LCAwLjAwMjUwOCwgMC4wMDI1MDgsIDAuMDAyNTA4LCAwLjAwMjUwOCIsIFwKLSAgICAgICAgICAiMC4wMDI0OTYsIDAuMDAyNDk3LCAwLjAwMjUsIDAuMDAyNTAxLCAwLjAwMjUwMiwgMC4wMDI1MDEsIDAuMDAyNTAxIiwgXAotICAgICAgICAgICIwLjAwMjQ5MiwgMC4wMDI0OTMsIDAuMDAyNDk2LCAwLjAwMjQ5NywgMC4wMDI0OTcsIDAuMDAyNDk3LCAwLjAwMjQ5NyIsIFwKLSAgICAgICAgICAiMC4wMDI0ODksIDAuMDAyNDksIDAuMDAyNDk0LCAwLjAwMjQ5NSwgMC4wMDI0OTUsIDAuMDAyNDk1LCAwLjAwMjQ5NiIsIFwKLSAgICAgICAgICAiMC4wMDI0ODcsIDAuMDAyNDg4LCAwLjAwMjQ5MiwgMC4wMDI0OTMsIDAuMDAyNDkzLCAwLjAwMjQ5MywgMC4wMDI0OTMiLCBcCi0gICAgICAgICAgIjAuMDAyNDkxLCAwLjAwMjQ5MSwgMC4wMDI0OTUsIDAuMDAyNDk2LCAwLjAwMjQ5NywgMC4wMDI0OTcsIDAuMDAyNDk3IiwgXAotICAgICAgICAgICIwLjAwMjQ5LCAwLjAwMjQ5MSwgMC4wMDI0OTQsIDAuMDAyNDk1LCAwLjAwMjQ5NiwgMC4wMDI0OTYsIDAuMDAyNDk2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzMDUzLCAwLjAwMzA1NSwgMC4wMDMwNTgsIDAuMDAzMDU5LCAwLjAwMzA2LCAwLjAwMzA2MSwgMC4wMDMwNjEiLCBcCi0gICAgICAgICAgIjAuMDAzMDM5LCAwLjAwMzA0LCAwLjAwMzA0NCwgMC4wMDMwNDYsIDAuMDAzMDQ2LCAwLjAwMzA0NywgMC4wMDMwNDYiLCBcCi0gICAgICAgICAgIjAuMDAzMDM3LCAwLjAwMzAzOCwgMC4wMDMwNDEsIDAuMDAzMDQzLCAwLjAwMzA0MywgMC4wMDMwNDQsIDAuMDAzMDQ0IiwgXAotICAgICAgICAgICIwLjAwMzA0MSwgMC4wMDMwNDIsIDAuMDAzMDQ1LCAwLjAwMzA0NywgMC4wMDMwNDcsIDAuMDAzMDQ4LCAwLjAwMzA0OCIsIFwKLSAgICAgICAgICAiMC4wMDMwNDcsIDAuMDAzMDQ4LCAwLjAwMzA1MiwgMC4wMDMwNTMsIDAuMDAzMDU0LCAwLjAwMzA1NCwgMC4wMDMwNTQiLCBcCi0gICAgICAgICAgIjAuMDAzMDYxLCAwLjAwMzA2MiwgMC4wMDMwNjYsIDAuMDAzMDY3LCAwLjAwMzA2OCwgMC4wMDMwNjgsIDAuMDAzMDY4IiwgXAotICAgICAgICAgICIwLjAwMzA3NiwgMC4wMDMwNzcsIDAuMDAzMDgxLCAwLjAwMzA4MiwgMC4wMDMwODMsIDAuMDAzMDg0LCAwLjAwMzA4MyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzA2OCwgMC4wMDMwNjcsIDAuMDAzMDU5LCAwLjAwMzA1NCwgMC4wMDMwNTIsIDAuMDAzMDUsIDAuMDAzMDQ5IiwgXAotICAgICAgICAgICIwLjAwMzA1MSwgMC4wMDMwNSwgMC4wMDMwNDMsIDAuMDAzMDM4LCAwLjAwMzAzNiwgMC4wMDMwMzMsIDAuMDAzMDMzIiwgXAotICAgICAgICAgICIwLjAwMzA0NSwgMC4wMDMwNDQsIDAuMDAzMDM3LCAwLjAwMzAzMSwgMC4wMDMwMjksIDAuMDAzMDI3LCAwLjAwMzAyNyIsIFwKLSAgICAgICAgICAiMC4wMDMwNTIsIDAuMDAzMDUxLCAwLjAwMzA0MywgMC4wMDMwMzgsIDAuMDAzMDM2LCAwLjAwMzAzMywgMC4wMDMwMzIiLCBcCi0gICAgICAgICAgIjAuMDAzMDU0LCAwLjAwMzA1MywgMC4wMDMwNDUsIDAuMDAzMDQsIDAuMDAzMDM4LCAwLjAwMzAzNSwgMC4wMDMwMzUiLCBcCi0gICAgICAgICAgIjAuMDAzMDcsIDAuMDAzMDY5LCAwLjAwMzA2MiwgMC4wMDMwNTYsIDAuMDAzMDU0LCAwLjAwMzA1MSwgMC4wMDMwNTEiLCBcCi0gICAgICAgICAgIjAuMDAzMDg1LCAwLjAwMzA4MiwgMC4wMDMwNzYsIDAuMDAzMDcsIDAuMDAzMDY4LCAwLjAwMzA2NSwgMC4wMDMwNjQiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFFOKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMTUyMTQ7Ci0gICAgZnVuY3Rpb24gOiAiTjAiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkQiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE0OTMwMiwgMC4xNjM0MjcsIDAuMjkwNjA4LCAwLjUwMjM5OSwgMC43MTQyOCwgMS4yMDg0NSwgMS40OTEiLCBcCi0gICAgICAgICAgIjAuMTU3NzQxLCAwLjE3MTg3MSwgMC4yOTkwMjgsIDAuNTEwODc2LCAwLjcyMjY5MSwgMS4yMTY1OSwgMS40OTk0IiwgXAotICAgICAgICAgICIwLjE2NzM2MSwgMC4xODE0OTEsIDAuMzA4NjQ5LCAwLjUyMDQ5NiwgMC43MzIzMSwgMS4yMjYzLCAxLjUwOTAyIiwgXAotICAgICAgICAgICIwLjE3NjUyLCAwLjE5MDY1MywgMC4zMTc4MSwgMC41Mjk2NTgsIDAuNzQxNDgxLCAxLjIzNTkyLCAxLjUxODQxIiwgXAotICAgICAgICAgICIwLjE4NDc2NCwgMC4xOTg4OTgsIDAuMzI2MDYyLCAwLjUzNzkwNSwgMC43NDk3MywgMS4yNDQxOCwgMS41MjYwMSIsIFwKLSAgICAgICAgICAiMC4xOTYzNzMsIDAuMjEwNTEzLCAwLjMzNzY2NiwgMC41NDk1MywgMC43NjEzNjUsIDEuMjU1NTUsIDEuNTM4IiwgXAotICAgICAgICAgICIwLjIwNTIyLCAwLjIxOTM1LCAwLjM0NjUyNiwgMC41NTgzNjgsIDAuNzcwMjcyLCAxLjI2NDU4LCAxLjU0Njg0Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE1NDIwNywgMC4xODI3NTIsIDAuNDQyOTYzLCAwLjg3ODc5NiwgMS4zMTQ4MiwgMi4zMzA5MiwgMi45MDcyNSIsIFwKLSAgICAgICAgICAiMC4xNTQxOTgsIDAuMTgyNzY1LCAwLjQ0Mzc3MSwgMC44NzkyMzgsIDEuMzE0NzcsIDIuMzI3NTUsIDIuOTAzMDUiLCBcCi0gICAgICAgICAgIjAuMTU0MTk3LCAwLjE4Mjc2OCwgMC40NDM3NywgMC44NzkyMzQsIDEuMzE0NzYsIDIuMzI5ODQsIDIuOTAzMDUiLCBcCi0gICAgICAgICAgIjAuMTU0MTc1LCAwLjE4Mjc1NCwgMC40NDM3NjUsIDAuODc5MjI0LCAxLjMxNDc3LCAyLjMyNjc2LCAyLjkxMjMzIiwgXAotICAgICAgICAgICIwLjE1NDIwNCwgMC4xODI2NDYsIDAuNDQzNzgzLCAwLjg3OTIyOSwgMS4zMTA4MSwgMi4zMjU5MSwgMi45MSIsIFwKLSAgICAgICAgICAiMC4xNTQwODIsIDAuMTgyOTg2LCAwLjQ0Mzc2MiwgMC44NzkxMTMsIDEuMzE0NjIsIDIuMzMwNjQsIDIuOTA3ODkiLCBcCi0gICAgICAgICAgIjAuMTU0MDUsIDAuMTgyOTI5LCAwLjQ0Mjk0LCAwLjg3OTA2NSwgMS4zMTIzNywgMi4zMzEyOCwgMi45MDc4OCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNDc1NTYsIDAuMTYxNDA0LCAwLjI4NTkzOCwgMC40OTM0LCAwLjcwMDgxOCwgMS4xODQ5MywgMS40NjE1NyIsIFwKLSAgICAgICAgICAiMC4xNTY0OTksIDAuMTcwMzQ1LCAwLjI5NDg2NSwgMC41MDIzMzksIDAuNzA5Nzg1LCAxLjE5Mzg1LCAxLjQ3MDQ2IiwgXAotICAgICAgICAgICIwLjE2NzIxMywgMC4xODEwNTYsIDAuMzA1NTg4LCAwLjUxMzA1NSwgMC43MjA0NzUsIDEuMjA0NTQsIDEuNDgxMjEiLCBcCi0gICAgICAgICAgIjAuMTc3NDEsIDAuMTkxMjU2LCAwLjMxNTc4OSwgMC41MjMyNTcsIDAuNzMwNjc3LCAxLjIxNDc1LCAxLjQ5MTQzIiwgXAotICAgICAgICAgICIwLjE4Njc2NCwgMC4yMDA2MTcsIDAuMzI1MTM4LCAwLjUzMjU5NSwgMC43NDAwNTksIDEuMjI0MTUsIDEuNTAwNzUiLCBcCi0gICAgICAgICAgIjAuMjAwMTc3LCAwLjIxNDAyLCAwLjMzODU1NiwgMC41NDYwMjgsIDAuNzUzNDk3LCAxLjIzNzU3LCAxLjUxNDIiLCBcCi0gICAgICAgICAgIjAuMjEwNDI1LCAwLjIyNDI1OSwgMC4zNDg4LCAwLjU1NjI5NSwgMC43NjM3NiwgMS4yNDc4NywgMS41MjQyNyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNDc2NTQsIDAuMTc1MzM0LCAwLjQyNDcyMSwgMC44NDE0NzEsIDEuMjU4MTQsIDIuMjI2NjEsIDIuNzg3MjkiLCBcCi0gICAgICAgICAgIjAuMTQ3ODMxLCAwLjE3NDU1LCAwLjQyNDY1LCAwLjg0MDk5MywgMS4yNTgzMywgMi4yMzExMiwgMi43ODcxMiIsIFwKLSAgICAgICAgICAiMC4xNDc1MDQsIDAuMTc1MzExLCAwLjQyNDY5OCwgMC44NDE0NzMsIDEuMjU4MTUsIDIuMjI3MTgsIDIuNzg3MjciLCBcCi0gICAgICAgICAgIjAuMTQ3NTY2LCAwLjE3NTMxNywgMC40MjQ2OTgsIDAuODQxNDc5LCAxLjI1ODEzLCAyLjIyNywgMi43ODcyOCIsIFwKLSAgICAgICAgICAiMC4xNDc4MTQsIDAuMTc1Mzc5LCAwLjQyMzkxLCAwLjg0MTM2LCAxLjI1ODMsIDIuMjMxMzIsIDIuNzg3MTkiLCBcCi0gICAgICAgICAgIjAuMTQ3NjgyLCAwLjE3NTA4NiwgMC40MjQ2ODQsIDAuODQxNDg5LCAxLjI1ODQ0LCAyLjIzMTM2LCAyLjc4NzM5IiwgXAotICAgICAgICAgICIwLjE0NzkxOCwgMC4xNzUwODYsIDAuNDIzOTI3LCAwLjg0MTY4NCwgMS4yNTg2MywgMi4yMzE3NCwgMi43ODQ4OSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJHIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5vbl91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcmlzaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE2NzE1OSwgMC4xODEyNTMsIDAuMzA4MjExLCAwLjUxOTk1MywgMC43MzE3MjQsIDEuMjI2MTMsIDEuNTA4MzUiLCBcCi0gICAgICAgICAgIjAuMTc3Mjc4LCAwLjE5MTM2OSwgMC4zMTgzMzgsIDAuNTMwMDcsIDAuNzQxODA4LCAxLjIzNjI1LCAxLjUxODM5IiwgXAotICAgICAgICAgICIwLjE4OTc1OSwgMC4yMDM4NTMsIDAuMzMwODIyLCAwLjU0MjU3MSwgMC43NTQzNDYsIDEuMjQ4NjYsIDEuNTMwOTkiLCBcCi0gICAgICAgICAgIjAuMjAwODEyLCAwLjIxNDkwOSwgMC4zNDE4NzcsIDAuNTUzNjAzLCAwLjc2NTQyMywgMS4yNTk3NywgMS41NDE5MSIsIFwKLSAgICAgICAgICAiMC4yMTA1NjIsIDAuMjI0NjUxLCAwLjM1MTYyNiwgMC41NjMzNTQsIDAuNzc1MDc2LCAxLjI2OTM5LCAxLjU1MTgiLCBcCi0gICAgICAgICAgIjAuMjIzODQ3LCAwLjIzNzk0NSwgMC4zNjQ5MiwgMC41NzY2NTEsIDAuNzg4NDE2LCAxLjI4MjU1LCAxLjU2NTA0IiwgXAotICAgICAgICAgICIwLjIzNDE0MSwgMC4yNDgyNDMsIDAuMzc1MjIxLCAwLjU4NjkxNSwgMC43OTg3NDIsIDEuMjkyODYsIDEuNTc1MzYiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTU0MjM1LCAwLjE4Mjc5MSwgMC40NDM3NzYsIDAuODc5MjU5LCAxLjMxNDgxLCAyLjMyNzI5LCAyLjkwODExIiwgXAotICAgICAgICAgICIwLjE1NDI0LCAwLjE4Mjk2LCAwLjQ0Mzc5LCAwLjg3OTI0NywgMS4zMTQ2OSwgMi4zMjcwOSwgMi45MDgxMyIsIFwKLSAgICAgICAgICAiMC4xNTQxMjMsIDAuMTgyODAzLCAwLjQ0Mzc4NCwgMC44NzkyODMsIDEuMzE0ODEsIDIuMzMxMzUsIDIuOTA2ODIiLCBcCi0gICAgICAgICAgIjAuMTU0MjI3LCAwLjE4Mjc5NSwgMC40NDM3OCwgMC44NzkyMzcsIDEuMzE0ODQsIDIuMzI2MzUsIDIuOTExNTkiLCBcCi0gICAgICAgICAgIjAuMTU0MjYyLCAwLjE4Mjk3NiwgMC40NDM3ODYsIDAuODc5MjM4LCAxLjMxMzA2LCAyLjMyNzUzLCAyLjkwNzE4IiwgXAotICAgICAgICAgICIwLjE1NDA5NiwgMC4xODI3OTEsIDAuNDQzNzc2LCAwLjg3OTIzNCwgMS4zMTQ3NiwgMi4zMzA5NCwgMi45MDgxOCIsIFwKLSAgICAgICAgICAiMC4xNTQwOTgsIDAuMTgyNzc3LCAwLjQ0Mzc2OSwgMC44NzgxMTUsIDEuMzE0NjIsIDIuMzI3OTcsIDIuOTA2ODciKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTgwMzMyLCAwLjE5NDE4MSwgMC4zMTg3MTksIDAuNTI2MTg5LCAwLjczMzY0NSwgMS4yMTc2NywgMS40OTQyMyIsIFwKLSAgICAgICAgICAiMC4xOTA1NTMsIDAuMjA0NDAzLCAwLjMyODk3MywgMC41MzY0MTUsIDAuNzQzODg3LCAxLjIyNzksIDEuNTA0NDkiLCBcCi0gICAgICAgICAgIjAuMjAzMTA3LCAwLjIxNjk0OCwgMC4zNDE0NzUsIDAuNTQ4OTcyLCAwLjc1NjQwOSwgMS4yNDA0NywgMS41MTcwOSIsIFwKLSAgICAgICAgICAiMC4yMTQwNzgsIDAuMjI3OTE5LCAwLjM1MjQ2LCAwLjU1OTkzMSwgMC43NjczNTMsIDEuMjUxNDIsIDEuNTI3OTYiLCBcCi0gICAgICAgICAgIjAuMjIzNjM4LCAwLjIzNzQ3NywgMC4zNjIwMDUsIDAuNTY5NDk0LCAwLjc3NjkzLCAxLjI2MDk5LCAxLjUzNzU2IiwgXAotICAgICAgICAgICIwLjIzNjM2NiwgMC4yNTAyMDYsIDAuMzc0NzQ3LCAwLjU4MjIxNywgMC43ODk2NDIsIDEuMjczNzEsIDEuNTUwMjciLCBcCi0gICAgICAgICAgIjAuMjQ1OTM3LCAwLjI1OTc4NCwgMC4zODQzMTMsIDAuNTkxNzkyLCAwLjc5OTIwMywgMS4yODMyOSwgMS41NTk5OCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNDc2MywgMC4xNzUsIDAuNDI0NzE5LCAwLjg0MTQ5MywgMS4yNTgzNSwgMi4yMzA5NywgMi43ODY1NCIsIFwKLSAgICAgICAgICAiMC4xNDc4MzQsIDAuMTc1MzYxLCAwLjQyMzUxNiwgMC44NDE0OSwgMS4yNTU0NSwgMi4yMzEwNywgMi43ODIyMiIsIFwKLSAgICAgICAgICAiMC4xNDc1OTIsIDAuMTc1MDUyLCAwLjQyNDQxMSwgMC44NDE1MzIsIDEuMjU4MzEsIDIuMjMxMSwgMi43ODcwNiIsIFwKLSAgICAgICAgICAiMC4xNDc4MDcsIDAuMTc1MDE0LCAwLjQyNDcyOCwgMC44NDE1MDQsIDEuMjU4MTgsIDIuMjMwOTksIDIuNzg1MDEiLCBcCi0gICAgICAgICAgIjAuMTQ3ODQyLCAwLjE3NTI5MiwgMC40MjQ2MzQsIDAuODQxNTE1LCAxLjI1NjM5LCAyLjIzMTAyLCAyLjc4MjY1IiwgXAotICAgICAgICAgICIwLjE0Nzc5NiwgMC4xNzQ5OTcsIDAuNDI0NzQyLCAwLjg0MTUxNywgMS4yNTc1NiwgMi4yMzEwMSwgMi43ODI4NCIsIFwKLSAgICAgICAgICAiMC4xNDczOTcsIDAuMTc1Mzc5LCAwLjQyNDY4NSwgMC44NDE1NDMsIDEuMjU3OSwgMi4yMzA2LCAyLjc4NjkzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyNTAzLCAwLjAwMjUwNCwgMC4wMDI1MDcsIDAuMDAyNTA4LCAwLjAwMjUwOCwgMC4wMDI1MDgsIDAuMDAyNTA4IiwgXAotICAgICAgICAgICIwLjAwMjQ5NiwgMC4wMDI0OTcsIDAuMDAyNSwgMC4wMDI1MDEsIDAuMDAyNTAyLCAwLjAwMjUwMSwgMC4wMDI1MDEiLCBcCi0gICAgICAgICAgIjAuMDAyNDkyLCAwLjAwMjQ5MywgMC4wMDI0OTYsIDAuMDAyNDk3LCAwLjAwMjQ5NywgMC4wMDI0OTcsIDAuMDAyNDk3IiwgXAotICAgICAgICAgICIwLjAwMjQ4OSwgMC4wMDI0OSwgMC4wMDI0OTQsIDAuMDAyNDk1LCAwLjAwMjQ5NSwgMC4wMDI0OTUsIDAuMDAyNDk2IiwgXAotICAgICAgICAgICIwLjAwMjQ4NywgMC4wMDI0ODgsIDAuMDAyNDkyLCAwLjAwMjQ5MywgMC4wMDI0OTMsIDAuMDAyNDkzLCAwLjAwMjQ5MyIsIFwKLSAgICAgICAgICAiMC4wMDI0OTEsIDAuMDAyNDkxLCAwLjAwMjQ5NSwgMC4wMDI0OTYsIDAuMDAyNDk3LCAwLjAwMjQ5NywgMC4wMDI0OTciLCBcCi0gICAgICAgICAgIjAuMDAyNDksIDAuMDAyNDkxLCAwLjAwMjQ5NCwgMC4wMDI0OTUsIDAuMDAyNDk2LCAwLjAwMjQ5NiwgMC4wMDI0OTYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDIxODksIDAuMDAyMTksIDAuMDAyMTk0LCAwLjAwMjE5NSwgMC4wMDIxOTUsIDAuMDAyMTk2LCAwLjAwMjE5NiIsIFwKLSAgICAgICAgICAiMC4wMDIxNzgsIDAuMDAyMTc5LCAwLjAwMjE4MywgMC4wMDIxODQsIDAuMDAyMTgzLCAwLjAwMjE4NiwgMC4wMDIxODYiLCBcCi0gICAgICAgICAgIjAuMDAyMTcyLCAwLjAwMjE3MywgMC4wMDIxNzYsIDAuMDAyMTc3LCAwLjAwMjE3OCwgMC4wMDIxNzgsIDAuMDAyMTc4IiwgXAotICAgICAgICAgICIwLjAwMjE2OCwgMC4wMDIxNjksIDAuMDAyMTcyLCAwLjAwMjE3MywgMC4wMDIxNzQsIDAuMDAyMTc0LCAwLjAwMjE3NCIsIFwKLSAgICAgICAgICAiMC4wMDIxNjcsIDAuMDAyMTY4LCAwLjAwMjE3MiwgMC4wMDIxNzMsIDAuMDAyMTc0LCAwLjAwMjE3NCwgMC4wMDIxNzQiLCBcCi0gICAgICAgICAgIjAuMDAyMTY3LCAwLjAwMjE2OCwgMC4wMDIxNzIsIDAuMDAyMTczLCAwLjAwMjE3NCwgMC4wMDIxNzQsIDAuMDAyMTc0IiwgXAotICAgICAgICAgICIwLjAwMjE3MSwgMC4wMDIxNzIsIDAuMDAyMTc2LCAwLjAwMjE3NywgMC4wMDIxNzgsIDAuMDAyMTc4LCAwLjAwMjE3OCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkciOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzA2OCwgMC4wMDMwNjcsIDAuMDAzMDU5LCAwLjAwMzA1NCwgMC4wMDMwNTIsIDAuMDAzMDUsIDAuMDAzMDQ5IiwgXAotICAgICAgICAgICIwLjAwMzA1MSwgMC4wMDMwNSwgMC4wMDMwNDMsIDAuMDAzMDM4LCAwLjAwMzAzNiwgMC4wMDMwMzMsIDAuMDAzMDMzIiwgXAotICAgICAgICAgICIwLjAwMzA0NSwgMC4wMDMwNDQsIDAuMDAzMDM3LCAwLjAwMzAzMSwgMC4wMDMwMjksIDAuMDAzMDI3LCAwLjAwMzAyNyIsIFwKLSAgICAgICAgICAiMC4wMDMwNTIsIDAuMDAzMDUxLCAwLjAwMzA0MywgMC4wMDMwMzgsIDAuMDAzMDM2LCAwLjAwMzAzMywgMC4wMDMwMzIiLCBcCi0gICAgICAgICAgIjAuMDAzMDU0LCAwLjAwMzA1MywgMC4wMDMwNDUsIDAuMDAzMDQsIDAuMDAzMDM4LCAwLjAwMzAzNSwgMC4wMDMwMzUiLCBcCi0gICAgICAgICAgIjAuMDAzMDcsIDAuMDAzMDY5LCAwLjAwMzA2MiwgMC4wMDMwNTYsIDAuMDAzMDU0LCAwLjAwMzA1MSwgMC4wMDMwNTEiLCBcCi0gICAgICAgICAgIjAuMDAzMDg1LCAwLjAwMzA4MiwgMC4wMDMwNzYsIDAuMDAzMDcsIDAuMDAzMDY4LCAwLjAwMzA2NSwgMC4wMDMwNjQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDMwNTMsIDAuMDAzMDU1LCAwLjAwMzA1OCwgMC4wMDMwNTksIDAuMDAzMDYsIDAuMDAzMDYxLCAwLjAwMzA2MSIsIFwKLSAgICAgICAgICAiMC4wMDMwMzksIDAuMDAzMDQsIDAuMDAzMDQ0LCAwLjAwMzA0NiwgMC4wMDMwNDYsIDAuMDAzMDQ3LCAwLjAwMzA0NiIsIFwKLSAgICAgICAgICAiMC4wMDMwMzcsIDAuMDAzMDM4LCAwLjAwMzA0MSwgMC4wMDMwNDMsIDAuMDAzMDQzLCAwLjAwMzA0NCwgMC4wMDMwNDQiLCBcCi0gICAgICAgICAgIjAuMDAzMDQxLCAwLjAwMzA0MiwgMC4wMDMwNDUsIDAuMDAzMDQ3LCAwLjAwMzA0NywgMC4wMDMwNDgsIDAuMDAzMDQ4IiwgXAotICAgICAgICAgICIwLjAwMzA0NywgMC4wMDMwNDgsIDAuMDAzMDUyLCAwLjAwMzA1MywgMC4wMDMwNTQsIDAuMDAzMDU0LCAwLjAwMzA1NCIsIFwKLSAgICAgICAgICAiMC4wMDMwNjEsIDAuMDAzMDYyLCAwLjAwMzA2NiwgMC4wMDMwNjcsIDAuMDAzMDY4LCAwLjAwMzA2OCwgMC4wMDMwNjgiLCBcCi0gICAgICAgICAgIjAuMDAzMDc2LCAwLjAwMzA3NywgMC4wMDMwODEsIDAuMDAzMDgyLCAwLjAwMzA4MywgMC4wMDMwODQsIDAuMDAzMDgzIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogWE5PUjJYMSAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChYTk9SMlgxKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMTQ2ODUyOwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2MDgwMzU7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjA3Nzc4OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDYwODAzNTsKLSAgfQotICBwaW4oQikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxMTUwODg7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxMTUwNjI7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxMTUwODg7Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4yNTkzMTM7Ci0gICAgZnVuY3Rpb24gOiAiKCEoQV5CKSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwMTQ2MywgMC4xMjYyNzIsIDAuMjY1MzU3LCAwLjM4ODA0MywgMC41NTE2ODUsIDAuODc5MDg4LCAxLjA4MzUiLCBcCi0gICAgICAgICAgIjAuMTExNTk3LCAwLjEzNjM4NiwgMC4yNzU0ODksIDAuMzk4MTc3LCAwLjU2MTk2NSwgMC44ODg5ODUsIDEuMDkzNTYiLCBcCi0gICAgICAgICAgIjAuMTI0MjU0LCAwLjE0OTA3OCwgMC4yODgxNzUsIDAuNDEwODYzLCAwLjU3NDYyMiwgMC45MDE3OCwgMS4xMDYyMSIsIFwKLSAgICAgICAgICAiMC4xMzY2NDIsIDAuMTYxNDQzLCAwLjMwMDU1OCwgMC40MjMyNTIsIDAuNTg2NTk1LCAwLjkxNDMzMywgMS4xMTg3NCIsIFwKLSAgICAgICAgICAiMC4xNDgwOTcsIDAuMTcyOTIzLCAwLjMxMjAyOCwgMC40MzQ3MjMsIDAuNTk4NDY5LCAwLjkyNTQ3MywgMS4xMzAwNiIsIFwKLSAgICAgICAgICAiMC4xNjQ3NTksIDAuMTg5NjI5LCAwLjMyODc0MywgMC40NTE0NiwgMC42MTUyMDYsIDAuOTQyMjQyLCAxLjE0NjgyIiwgXAotICAgICAgICAgICIwLjE3Nzk1MywgMC4yMDI4NjksIDAuMzQyMDA4LCAwLjQ2NDc2OCwgMC42Mjg2NzIsIDAuOTU1NTc5LCAxLjE2MDE3Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5NjU5MiwgMC4xNDUzODcsIDAuNDI5Mjk4LCAwLjY4MDkyOSwgMS4wMTY5NywgMS42OTAzNywgMi4xMTEyIiwgXAotICAgICAgICAgICIwLjA5NjU0MSwgMC4xNDUzOTIsIDAuNDI4NzA3LCAwLjY4MTkzOCwgMS4wMTcxNywgMS42OTI3OSwgMi4xMTQ0NSIsIFwKLSAgICAgICAgICAiMC4wOTY1ODQsIDAuMTQ1Mzg3LCAwLjQyODcyNSwgMC42ODE5MjEsIDEuMDE3MiwgMS42ODk2MywgMi4xMTA1IiwgXAotICAgICAgICAgICIwLjA5NjU3OCwgMC4xNDU0MSwgMC40Mjg2OTYsIDAuNjgxOTM3LCAxLjAxNzI5LCAxLjY5MDM2LCAyLjExNDM2IiwgXAotICAgICAgICAgICIwLjA5Njg2NSwgMC4xNDU1NjEsIDAuNDI5MDkzLCAwLjY4MTgyLCAxLjAxNzIyLCAxLjY5MzQ2LCAyLjExMDU1IiwgXAotICAgICAgICAgICIwLjA5NzY3NiwgMC4xNDYwNjEsIDAuNDI5MjQ0LCAwLjY4MTg3NSwgMS4wMTcxOSwgMS42OTAwNCwgMi4xMTQxOCIsIFwKLSAgICAgICAgICAiMC4wOTg1NDEsIDAuMTQ2NzksIDAuNDI4ODkxLCAwLjY4MDQ4NywgMS4wMTczNywgMS42ODk2OCwgMi4xMTIxOSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDU3MDksIDAuMTMwOTI5LCAwLjI3MTI3LCAwLjM5NDk2NiwgMC41NTk4ODQsIDAuODg5Njk0LCAxLjA5NTkxIiwgXAotICAgICAgICAgICIwLjExNTM1OSwgMC4xNDA1OTMsIDAuMjgwOTM4LCAwLjQwNDcxLCAwLjU2OTczMywgMC44OTk3MiwgMS4xMDU2NCIsIFwKLSAgICAgICAgICAiMC4xMjc1NTEsIDAuMTUyNzc2LCAwLjI5MzE0MiwgMC40MTY4NDIsIDAuNTgxNzY0LCAwLjkxMTU4LCAxLjExNzgiLCBcCi0gICAgICAgICAgIjAuMTM4OTMzLCAwLjE2NDIxNywgMC4zMDQ1OSwgMC40MjgzMDcsIDAuNTkzMzM4LCAwLjkyMzQwOCwgMS4xMjkzOSIsIFwKLSAgICAgICAgICAiMC4xNDk1ODMsIDAuMTc0ODYyLCAwLjMxNTIyNywgMC40Mzg5NDgsIDAuNjAzODU2LCAwLjkzMzg4MywgMS4xMzk5MyIsIFwKLSAgICAgICAgICAiMC4xNjQ3OTcsIDAuMTkwMTEyLCAwLjMzMDUxNywgMC40NTQyMTIsIDAuNjE5MzQ5LCAwLjk0OTI1OCwgMS4xNTUzNSIsIFwKLSAgICAgICAgICAiMC4xNzY2ODEsIDAuMjAyMDYzLCAwLjM0MjQ2NCwgMC40NjYxNjIsIDAuNjMxMDgzLCAwLjk2MTIwMywgMS4xNjczOSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTY1MDcsIDAuMTQ0MzksIDAuNDIzMTU1LCAwLjY3Mjk1NCwgMS4wMDU2MiwgMS42NjU5OSwgMi4wODAwNyIsIFwKLSAgICAgICAgICAiMC4wOTY0ODIsIDAuMTQ0NDE2LCAwLjQyMzE0LCAwLjY3MTA5NSwgMS4wMDMwMiwgMS42NjYyNywgMi4wNzk2NyIsIFwKLSAgICAgICAgICAiMC4wOTY1MzMsIDAuMTQ0Mzg5LCAwLjQyMzE2NCwgMC42NzI5NDQsIDEuMDA1NiwgMS42NjU5NiwgMi4wODAwNyIsIFwKLSAgICAgICAgICAiMC4wOTY1ODEsIDAuMTQ0NTI4LCAwLjQyMzM1MSwgMC42NzMwMDksIDEuMDAzMzEsIDEuNjY2MTksIDIuMDgzNTIiLCBcCi0gICAgICAgICAgIjAuMDk2ODQxLCAwLjE0NDY1NiwgMC40MjM1NTYsIDAuNjczMDEzLCAxLjAwNDk2LCAxLjY2NzAzLCAyLjA3OTg0IiwgXAotICAgICAgICAgICIwLjA5NzYyOSwgMC4xNDUyNTQsIDAuNDI0MDA3LCAwLjY3Mjg2OSwgMS4wMDI4MywgMS42NjY0OSwgMi4wODIxMSIsIFwKLSAgICAgICAgICAiMC4wOTg1MjcsIDAuMTQ1ODY5LCAwLjQyNDI0NCwgMC42NzE3NjksIDEuMDA1NTcsIDEuNjY2MzksIDIuMDgxMTUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTE2NDIyLCAwLjE0MTI1MSwgMC4yODA2MTYsIDAuNDAzNDExLCAwLjU2Njk3NiwgMC44OTQxNjEsIDEuMDk4NTgiLCBcCi0gICAgICAgICAgIjAuMTI2MTY1LCAwLjE1MTAzMiwgMC4yOTA0NDEsIDAuNDEzMTY5LCAwLjU3Njc1NiwgMC45MDM5MSwgMS4xMDg0NCIsIFwKLSAgICAgICAgICAiMC4xMzcyOTEsIDAuMTYyMTQzLCAwLjMwMTUyOSwgMC40MjQyNzQsIDAuNTg3ODkzLCAwLjkxNTA2MSwgMS4xMTk0OCIsIFwKLSAgICAgICAgICAiMC4xNDYyMzgsIDAuMTcxMDg0LCAwLjMxMDQ3NywgMC40MzMyMjcsIDAuNTk2ODM4LCAwLjkyMzk5NiwgMS4xMjg0NCIsIFwKLSAgICAgICAgICAiMC4xNTQwNTYsIDAuMTc4ODg2LCAwLjMxODIxNCwgMC40NDEwMjEsIDAuNjA0NjE5LCAwLjkzMTc1NiwgMS4xMzYxOSIsIFwKLSAgICAgICAgICAiMC4xNjQ0NzUsIDAuMTg5MjYsIDAuMzI4NjM5LCAwLjQ1MTQ0NywgMC42MTUwMzgsIDAuOTQyMTc0LCAxLjE0NjcxIiwgXAotICAgICAgICAgICIwLjE3MjE1NywgMC4xOTY5OSwgMC4zMzY0MTMsIDAuNDU5MTM1LCAwLjYyMjcyNywgMC45NDk5NDUsIDEuMTU0MyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTU5MTMsIDAuMTQ0OTY5LCAwLjQyOTM4MiwgMC42ODIyNTEsIDEuMDE4MDMsIDEuNjkwNDIsIDIuMTEyMjQiLCBcCi0gICAgICAgICAgIjAuMDk1ODk5LCAwLjE0NDk1MSwgMC40Mjg3NjQsIDAuNjgyMTk0LCAxLjAxODE4LCAxLjY5MTI5LCAyLjExNTA5IiwgXAotICAgICAgICAgICIwLjA5NTkxMiwgMC4xNDQ5NTcsIDAuNDI5MDIsIDAuNjgyMTU2LCAxLjAxOTI0LCAxLjY5MzUyLCAyLjExMjIzIiwgXAotICAgICAgICAgICIwLjA5NTkwNywgMC4xNDQ5NTcsIDAuNDI4MzAyLCAwLjY4MjE0NSwgMS4wMTkyMiwgMS42OTAwNSwgMi4xMTIyMSIsIFwKLSAgICAgICAgICAiMC4wOTU5NTIsIDAuMTQ0OTcxLCAwLjQyOTAxNCwgMC42ODIxNjYsIDEuMDE3OTksIDEuNjkxNTIsIDIuMTEyNTIiLCBcCi0gICAgICAgICAgIjAuMDk1OTI3LCAwLjE0NDk5NCwgMC40Mjg4NzcsIDAuNjgyMDc4LCAxLjAxNzk2LCAxLjY5MTQ0LCAyLjExNDY5IiwgXAotICAgICAgICAgICIwLjA5NTg1OCwgMC4xNDQ5MTUsIDAuNDI4NzE5LCAwLjY4MjA4OSwgMS4wMTc5NywgMS42OTMzNCwgMi4xMTI1NSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTg5OTksIDAuMTQ0MTYxLCAwLjI4NDYzMiwgMC40MDgzODUsIDAuNTczMjU5LCAwLjkwMzAyMywgMS4xMDkxMiIsIFwKLSAgICAgICAgICAiMC4xMjkxODUsIDAuMTU0MzQ2LCAwLjI5NDgyLCAwLjQxODU2NiwgMC41ODM0NTksIDAuOTEzMjQ2LCAxLjExOTMyIiwgXAotICAgICAgICAgICIwLjE0MDk5NSwgMC4xNjYxNzIsIDAuMzA2NjM3LCAwLjQzMDM5OCwgMC41OTUyNjgsIDAuOTI1MDMyLCAxLjEzMTE3IiwgXAotICAgICAgICAgICIwLjE1MDc2LCAwLjE3NTkzLCAwLjMxNjM3OSwgMC40NDAxMzIsIDAuNjA1MDExLCAwLjkzNDc5MiwgMS4xNDA4NyIsIFwKLSAgICAgICAgICAiMC4xNTkyNDcsIDAuMTg0NDI5LCAwLjMyNDkwMiwgMC40NDg2NDgsIDAuNjEzNTIxLCAwLjk0MzI4MywgMS4xNDk0NSIsIFwKLSAgICAgICAgICAiMC4xNzA3MTEsIDAuMTk1ODkyLCAwLjMzNjM1OCwgMC40NjAxMDcsIDAuNjI1MDIsIDAuOTU0NzU3LCAxLjE2MDg1IiwgXAotICAgICAgICAgICIwLjE3OTUwMywgMC4yMDQ2ODksIDAuMzQ1MTQ5LCAwLjQ2ODg5NiwgMC42MzM3ODUsIDAuOTYzNTgzLCAxLjE2OTc5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5NTUzNSwgMC4xNDM3NDYsIDAuNDIzOTYxLCAwLjY3Mjc1NCwgMS4wMDQ3LCAxLjY2NzU0LCAyLjA4NjMzIiwgXAotICAgICAgICAgICIwLjA5NTUxOCwgMC4xNDM1NzksIDAuNDIzMTE1LCAwLjY3Mjc1OCwgMS4wMDM3LCAxLjY3MDY3LCAyLjA4MjkzIiwgXAotICAgICAgICAgICIwLjA5NTQyNiwgMC4xNDM3MDQsIDAuNDIzNTIzLCAwLjY3MjY4NiwgMS4wMDQ3MiwgMS42Njc0OSwgMi4wODA4MyIsIFwKLSAgICAgICAgICAiMC4wOTU1MTksIDAuMTQzNjYyLCAwLjQyMzAzNywgMC42NzI3MjIsIDEuMDA0ODIsIDEuNjcwNTMsIDIuMDgyNDgiLCBcCi0gICAgICAgICAgIjAuMDk1NTM1LCAwLjE0MzczMSwgMC40MjI4MzUsIDAuNjcyNjU1LCAxLjAwNDY5LCAxLjY2NzQ2LCAyLjA4MjMiLCBcCi0gICAgICAgICAgIjAuMDk1NDg0LCAwLjE0Mzc0MSwgMC40MjMxNTksIDAuNjcyNzE4LCAxLjAwMzMzLCAxLjY2NzYyLCAyLjA4MjciLCBcCi0gICAgICAgICAgIjAuMDk1NTI2LCAwLjE0Mzc2LCAwLjQyMzc2LCAwLjY3MjgyMywgMS4wMDQ2OSwgMS42NzA2MSwgMi4wODYyNyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODQ4MzgsIDAuMTA5Njc3LCAwLjI0ODgwMSwgMC4zNzE0OTEsIDAuNTM1MTAyLCAwLjg2Mjg1MywgMS4wNjY3NiIsIFwKLSAgICAgICAgICAiMC4wOTQxOTIsIDAuMTE5MDMxLCAwLjI1ODE2MSwgMC4zODA4NTgsIDAuNTQ0NDY1LCAwLjg3MTk3NiwgMS4wNzYwOSIsIFwKLSAgICAgICAgICAiMC4xMDYwMjMsIDAuMTMwODY4LCAwLjI3MDAxNiwgMC4zOTI3MTUsIDAuNTU2MzI0LCAwLjg4MzcwOCwgMS4wODgwMiIsIFwKLSAgICAgICAgICAiMC4xMTcxODksIDAuMTQyMDUsIDAuMjgxMTksIDAuNDAzODkxLCAwLjU2NzYyMSwgMC44OTQ5NTMsIDEuMDk5NDQiLCBcCi0gICAgICAgICAgIjAuMTI3MzE5LCAwLjE1MjE3OSwgMC4yOTEzMTMsIDAuNDE0MDcxLCAwLjU3NzYyNiwgMC45MDQ5MywgMS4xMDk0IiwgXAotICAgICAgICAgICIwLjE0MTE3NSwgMC4xNjYxMjUsIDAuMzA1MzI3LCAwLjQyODAyLCAwLjU5MTY5MSwgMC45MTkwMTEsIDEuMTIzNjMiLCBcCi0gICAgICAgICAgIjAuMTUxOTIyLCAwLjE3NjgwNywgMC4zMTU5NzgsIDAuNDM4NzAxLCAwLjYwMjMwMywgMC45Mjk1MzksIDEuMTM0MTQiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk2MzIsIDAuMTQ1MjcxLCAwLjQyODc0OCwgMC42ODE5NDMsIDEuMDE5MjQsIDEuNjkwNzQsIDIuMTEwNzMiLCBcCi0gICAgICAgICAgIjAuMDk2MzA0LCAwLjE0NTIwNCwgMC40Mjg3MDQsIDAuNjgxOTM4LCAxLjAxOTIzLCAxLjY5MDQsIDIuMTE0MTgiLCBcCi0gICAgICAgICAgIjAuMDk2MjcsIDAuMTQ1MTg3LCAwLjQyODY5LCAwLjY4MTkzOSwgMS4wMTkyMiwgMS42OTA0NiwgMi4xMTA2OSIsIFwKLSAgICAgICAgICAiMC4wOTY0NTgsIDAuMTQ1Mjg1LCAwLjQyODcwMSwgMC42ODE4MTcsIDEuMDE3MjcsIDEuNjkwMzUsIDIuMTE0MjgiLCBcCi0gICAgICAgICAgIjAuMDk2OTczLCAwLjE0NTYyNSwgMC40Mjg3MjUsIDAuNjgwNTE1LCAxLjAxOTAyLCAxLjY4OTcxLCAyLjExMDM2IiwgXAotICAgICAgICAgICIwLjA5Nzk4OCwgMC4xNDYzODgsIDAuNDI4NjYyLCAwLjY4MjA0NiwgMS4wMTY2NywgMS42OTA0MSwgMi4xMTExMyIsIFwKLSAgICAgICAgICAiMC4wOTkwNjksIDAuMTQ2OTI0LCAwLjQyODk1NiwgMC42ODIxNDgsIDEuMDE3ODIsIDEuNjkxMzcsIDIuMTEwMzgiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDkyNjMsIDAuMTE3Nzk0LCAwLjI1ODI2OSwgMC4zODIwMTMsIDAuNTQ2ODY1LCAwLjg3NjYzNSwgMS4wODI3NiIsIFwKLSAgICAgICAgICAiMC4xMDE0NzcsIDAuMTI2NjUyLCAwLjI2NzEyLCAwLjM5MDg3NiwgMC41NTU3MzEsIDAuODg1NSwgMS4wOTE2OSIsIFwKLSAgICAgICAgICAiMC4xMTI3MTMsIDAuMTM3ODgyLCAwLjI3ODM3NywgMC40MDIxMTgsIDAuNTY3MDEyLCAwLjg5Njc4MSwgMS4xMDI4NyIsIFwKLSAgICAgICAgICAiMC4xMjM4MywgMC4xNDkwMTIsIDAuMjg5NTEyLCAwLjQxMzI3NCwgMC41NzgyMTMsIDAuOTA3OTYsIDEuMTE0MDEiLCBcCi0gICAgICAgICAgIjAuMTMzNzEsIDAuMTU4ODk2LCAwLjI5OTQwNywgMC40MjMxOCwgMC41ODgwNDQsIDAuOTE3ODIyLCAxLjEyMzkiLCBcCi0gICAgICAgICAgIjAuMTQ3Mzc0LCAwLjE3MjY0NiwgMC4zMTMxNzgsIDAuNDM2OTI3LCAwLjYwMTg1MSwgMC45MzE3MjgsIDEuMTM3NjMiLCBcCi0gICAgICAgICAgIjAuMTU3NjIyLCAwLjE4MzAwMSwgMC4zMjM1NzIsIDAuNDQ3MzIxLCAwLjYxMjIzMywgMC45NDIwMzQsIDEuMTQ4MTMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk1NTE2LCAwLjE0Mzc0NSwgMC40MjI5MjEsIDAuNjcyNjAxLCAxLjAwNTIsIDEuNjY3NDEsIDIuMDg2MjkiLCBcCi0gICAgICAgICAgIjAuMDk1NTM4LCAwLjE0MzcsIDAuNDIzODEyLCAwLjY3MjYwNCwgMS4wMDUxOSwgMS42NjczNCwgMi4wODY0MyIsIFwKLSAgICAgICAgICAiMC4wOTU1OTQsIDAuMTQzNzE3LCAwLjQyMzEyMiwgMC42NzIwOTUsIDEuMDA1MjgsIDEuNjY3NjEsIDIuMDgyNTciLCBcCi0gICAgICAgICAgIjAuMDk1NzgyLCAwLjE0Mzg5NCwgMC40MjMwNTUsIDAuNjcyNjA5LCAxLjAwNTExLCAxLjY2NTk4LCAyLjA4MjM4IiwgXAotICAgICAgICAgICIwLjA5NjI4NCwgMC4xNDQyMTcsIDAuNDIzOTA1LCAwLjY3MjU5MiwgMS4wMDUyNiwgMS42Njc3NywgMi4wODI0IiwgXAotICAgICAgICAgICIwLjA5NzMwNywgMC4xNDQ5NTQsIDAuNDI0MDAzLCAwLjY3MjA1MywgMS4wMDUzMywgMS42NjY4LCAyLjA4NTk0IiwgXAotICAgICAgICAgICIwLjA5ODE1MSwgMC4xNDU2LCAwLjQyNDI1NywgMC42NzIxNywgMS4wMDUzOCwgMS42NjcyOSwgMi4wODIzOSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDkwNDMsIDAuMTMzOTIyLCAwLjI3MzMwMiwgMC4zOTYwNzMsIDAuNTU5NjY0LCAwLjg4NjgwMiwgMS4wOTEzNiIsIFwKLSAgICAgICAgICAiMC4xMTg5OTQsIDAuMTQzODI5LCAwLjI4MzIxMSwgMC40MDU5NTIsIDAuNTY5NTY4LCAwLjg5NjcwOCwgMS4xMDExNiIsIFwKLSAgICAgICAgICAiMC4xMjk0NDMsIDAuMTU0Mjg1LCAwLjI5MzY0OSwgMC40MTY0NzksIDAuNTgwMDA4LCAwLjkwNzE4MiwgMS4xMTE2IiwgXAotICAgICAgICAgICIwLjEzODA1MywgMC4xNjI4ODEsIDAuMzAyMjQ1LCAwLjQyNTAxNCwgMC41ODg2MDYsIDAuOTE1NzUsIDEuMTIwMjIiLCBcCi0gICAgICAgICAgIjAuMTQ0Nzk0LCAwLjE2OTYzMiwgMC4zMDkwMTYsIDAuNDMxNzgsIDAuNTk1NDU3LCAwLjkyMjUsIDEuMTI2OTQiLCBcCi0gICAgICAgICAgIjAuMTUzODE5LCAwLjE3ODkwMSwgMC4zMTgzNjUsIDAuNDQxMTY5LCAwLjYwNDY1MiwgMC45MzE3NTMsIDEuMTM2MzEiLCBcCi0gICAgICAgICAgIjAuMTYwODU5LCAwLjE4NTc3OCwgMC4zMjU0NTIsIDAuNDQ4MTM1LCAwLjYxMTg1MSwgMC45Mzg5ODcsIDEuMTQzNSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTU5MDMsIDAuMTQ0OTU3LCAwLjQyOTA3LCAwLjY4MjE3OCwgMS4wMTgwNywgMS42OTE1MSwgMi4xMTUwNiIsIFwKLSAgICAgICAgICAiMC4wOTU5MTYsIDAuMTQ0OTYzLCAwLjQyODk5MSwgMC42ODIxNCwgMS4wMTc5NCwgMS42OTEzMSwgMi4xMTIxOSIsIFwKLSAgICAgICAgICAiMC4wOTU4NjQsIDAuMTQ0OTEyLCAwLjQyOTU3LCAwLjY4MTAxNCwgMS4wMTgwNCwgMS42OTExOSwgMi4xMTI0IiwgXAotICAgICAgICAgICIwLjA5NTkxLCAwLjE0NDk1OSwgMC40Mjk1NjksIDAuNjgxMjc1LCAxLjAxODE2LCAxLjY5MTQ0LCAyLjExMjIyIiwgXAotICAgICAgICAgICIwLjA5NjA2OSwgMC4xNDUxNDIsIDAuNDI5MTE3LCAwLjY4MjA2NiwgMS4wMTkyNCwgMS42OTEyNSwgMi4xMTIzMiIsIFwKLSAgICAgICAgICAiMC4wOTYzMDMsIDAuMTQ1MzcyLCAwLjQyOTY0MSwgMC42ODE0NCwgMS4wMTkyLCAxLjY5MzE2LCAyLjExNDc1IiwgXAotICAgICAgICAgICIwLjA5NjIzNywgMC4xNDUzNTksIDAuNDI5MzQsIDAuNjgyMTc0LCAxLjAxOTEsIDEuNjkxMywgMi4xMTQ4MSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTU5ODUsIDAuMTIxMjUyLCAwLjI2MTYyOCwgMC4zODUzNDEsIDAuNTUwMjU5LCAwLjg4MDA2LCAxLjA4NjI5IiwgXAotICAgICAgICAgICIwLjEwNjY3NSwgMC4xMzE5NDMsIDAuMjcyMzE4LCAwLjM5NjAzNCwgMC41NjExNDEsIDAuODkwODcxLCAxLjA5Njk4IiwgXAotICAgICAgICAgICIwLjExOTQ5MiwgMC4xNDQ3NDYsIDAuMjg1MTQxLCAwLjQwODg3MywgMC41NzM5MTIsIDAuOTAzODMsIDEuMTEwMDQiLCBcCi0gICAgICAgICAgIjAuMTMwMTA1LCAwLjE1NTM2NywgMC4yOTU3NDksIDAuNDE5NDU1LCAwLjU4NDU2NiwgMC45MTQ1NTYsIDEuMTIwNSIsIFwKLSAgICAgICAgICAiMC4xMzg2NTYsIDAuMTYzOTI3LCAwLjMwNDMwMywgMC40Mjc5OTYsIDAuNTkzMTA5LCAwLjkyMzA4MiwgMS4xMjkwNiIsIFwKLSAgICAgICAgICAiMC4xNTAxNjcsIDAuMTc1NDAyLCAwLjMxNTc4NywgMC40Mzk0OSwgMC42MDQ0MTksIDAuOTM0MjY5LCAxLjE0MDQ2IiwgXAotICAgICAgICAgICIwLjE1ODgzNCwgMC4xODQwMjIsIDAuMzI0Mzg4LCAwLjQ0ODA1LCAwLjYxMzE1MSwgMC45NDMxOTUsIDEuMTQ5MDQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk2MzQ0LCAwLjE0NDI1OCwgMC40MjMwNzUsIDAuNjcyOTI4LCAxLjAwNDk1LCAxLjY2OTQ4LCAyLjA4MDEyIiwgXAotICAgICAgICAgICIwLjA5NjM0MiwgMC4xNDQzODIsIDAuNDIzMDUxLCAwLjY3Mjg4NywgMS4wMDI4LCAxLjY2NjIzLCAyLjA4MDE3IiwgXAotICAgICAgICAgICIwLjA5NjMwNywgMC4xNDQzNiwgMC40MjM4MjMsIDAuNjcwOTA3LCAxLjAwMzA1LCAxLjY2NjY5LCAyLjA4MTMzIiwgXAotICAgICAgICAgICIwLjA5NjMyMiwgMC4xNDQzNzksIDAuNDIzMDYzLCAwLjY3MTY1OCwgMS4wMDI4MywgMS42NjYxNSwgMi4wODEwNiIsIFwKLSAgICAgICAgICAiMC4wOTYyMTIsIDAuMTQ0MjcsIDAuNDIzMDY4LCAwLjY3MTQ1NiwgMS4wMDI4OSwgMS42NjYyMywgMi4wODEyIiwgXAotICAgICAgICAgICIwLjA5NjE3NiwgMC4xNDQxMjQsIDAuNDIzNzM5LCAwLjY3Mjc2NywgMS4wMDQ3NSwgMS42Njk2NSwgMi4wODAxMyIsIFwKLSAgICAgICAgICAiMC4wOTYwMzUsIDAuMTQ0MTA2LCAwLjQyMjgwNSwgMC42NzI2MzcsIDEuMDAzLCAxLjY2NjE1LCAyLjA4MDEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDM5NDUsIDAuMDAzOTU1LCAwLjAwMzk2OSwgMC4wMDM5NzIsIDAuMDAzOTc0LCAwLjAwMzk3NiwgMC4wMDM5NzYiLCBcCi0gICAgICAgICAgIjAuMDAzOTIxLCAwLjAwMzkzLCAwLjAwMzk0NSwgMC4wMDM5NDgsIDAuMDAzOTQ5LCAwLjAwMzk1LCAwLjAwMzk1MiIsIFwKLSAgICAgICAgICAiMC4wMDM5MTYsIDAuMDAzOTI1LCAwLjAwMzk0LCAwLjAwMzk0MywgMC4wMDM5NDUsIDAuMDAzOTQ3LCAwLjAwMzk0NyIsIFwKLSAgICAgICAgICAiMC4wMDM5MjMsIDAuMDAzOTMyLCAwLjAwMzk0NiwgMC4wMDM5NSwgMC4wMDM5NTIsIDAuMDAzOTU0LCAwLjAwMzk1NCIsIFwKLSAgICAgICAgICAiMC4wMDM5MjIsIDAuMDAzOTMxLCAwLjAwMzk0NSwgMC4wMDM5NDksIDAuMDAzOTUxLCAwLjAwMzk1MywgMC4wMDM5NTQiLCBcCi0gICAgICAgICAgIjAuMDAzOTQxLCAwLjAwMzk0OSwgMC4wMDM5NjIsIDAuMDAzOTY3LCAwLjAwMzk2OSwgMC4wMDM5NzIsIDAuMDAzOTcyIiwgXAotICAgICAgICAgICIwLjAwMzk2LCAwLjAwMzk3LCAwLjAwMzk4MiwgMC4wMDM5ODcsIDAuMDAzOTg5LCAwLjAwMzk4OSwgMC4wMDM5ODgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDMxOCwgMC4wMDMxOTIsIDAuMDAzMjA5LCAwLjAwMzIxMywgMC4wMDMyMTUsIDAuMDAzMjE3LCAwLjAwMzIxNyIsIFwKLSAgICAgICAgICAiMC4wMDMxNDksIDAuMDAzMTYxLCAwLjAwMzE3OSwgMC4wMDMxODMsIDAuMDAzMTg1LCAwLjAwMzE4NywgMC4wMDMxODgiLCBcCi0gICAgICAgICAgIjAuMDAzMTQ2LCAwLjAwMzE1OCwgMC4wMDMxNzYsIDAuMDAzMTgsIDAuMDAzMTgyLCAwLjAwMzE4NCwgMC4wMDMxODQiLCBcCi0gICAgICAgICAgIjAuMDAzMTU1LCAwLjAwMzE2NywgMC4wMDMxODUsIDAuMDAzMTg5LCAwLjAwMzE5MSwgMC4wMDMxOTMsIDAuMDAzMTk0IiwgXAotICAgICAgICAgICIwLjAwMzE1OSwgMC4wMDMxNzEsIDAuMDAzMTg4LCAwLjAwMzE5MiwgMC4wMDMxOTUsIDAuMDAzMTk3LCAwLjAwMzE5NyIsIFwKLSAgICAgICAgICAiMC4wMDMxNzgsIDAuMDAzMTksIDAuMDAzMjA4LCAwLjAwMzIxMiwgMC4wMDMyMTQsIDAuMDAzMjE2LCAwLjAwMzIxNyIsIFwKLSAgICAgICAgICAiMC4wMDMxOTksIDAuMDAzMjEzLCAwLjAwMzIzLCAwLjAwMzIzMiwgMC4wMDMyMzQsIDAuMDAzMjM2LCAwLjAwMzIzNyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzg3OSwgMC4wMDM4ODgsIDAuMDAzOTAzLCAwLjAwMzkwNSwgMC4wMDM5MDgsIDAuMDAzOTA5LCAwLjAwMzkxMSIsIFwKLSAgICAgICAgICAiMC4wMDM4NjQsIDAuMDAzODc0LCAwLjAwMzg4OCwgMC4wMDM4OSwgMC4wMDM4OTMsIDAuMDAzODk0LCAwLjAwMzg5NSIsIFwKLSAgICAgICAgICAiMC4wMDM4NjgsIDAuMDAzODc3LCAwLjAwMzg5MSwgMC4wMDM4OTQsIDAuMDAzODk2LCAwLjAwMzg5NywgMC4wMDM4OTgiLCBcCi0gICAgICAgICAgIjAuMDAzODcsIDAuMDAzODc5LCAwLjAwMzg5MiwgMC4wMDM4OTYsIDAuMDAzODk3LCAwLjAwMzg5OSwgMC4wMDM4OTkiLCBcCi0gICAgICAgICAgIjAuMDAzODgsIDAuMDAzODg5LCAwLjAwMzkwMywgMC4wMDM5MDUsIDAuMDAzOTA3LCAwLjAwMzkwOSwgMC4wMDM5MDkiLCBcCi0gICAgICAgICAgIjAuMDAzODk5LCAwLjAwMzkwNywgMC4wMDM5MjEsIDAuMDAzOTIsIDAuMDAzOTI3LCAwLjAwMzkyOCwgMC4wMDM5MjkiLCBcCi0gICAgICAgICAgIjAuMDAzOTE4LCAwLjAwMzkyNCwgMC4wMDM5NDIsIDAuMDAzOTQyLCAwLjAwMzk0NiwgMC4wMDM5NDcsIDAuMDAzOTQ3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyNjA2LCAwLjAwMjYxNywgMC4wMDI2MzIsIDAuMDAyNjM2LCAwLjAwMjYzOCwgMC4wMDI2MzksIDAuMDAyNjQiLCBcCi0gICAgICAgICAgIjAuMDAyNjI5LCAwLjAwMjYzOSwgMC4wMDI2NTUsIDAuMDAyNjU4LCAwLjAwMjY2LCAwLjAwMjY2MiwgMC4wMDI2NjIiLCBcCi0gICAgICAgICAgIjAuMDAyNjg2LCAwLjAwMjY5NiwgMC4wMDI3MTEsIDAuMDAyNzE1LCAwLjAwMjcxNywgMC4wMDI3MTksIDAuMDAyNzE5IiwgXAotICAgICAgICAgICIwLjAwMjcyNiwgMC4wMDI3MzUsIDAuMDAyNzUxLCAwLjAwMjc1NSwgMC4wMDI3NTcsIDAuMDAyNzU5LCAwLjAwMjc2IiwgXAotICAgICAgICAgICIwLjAwMjc2NCwgMC4wMDI3NzMsIDAuMDAyNzg4LCAwLjAwMjc5MiwgMC4wMDI3OTQsIDAuMDAyNzk2LCAwLjAwMjc5NyIsIFwKLSAgICAgICAgICAiMC4wMDI4MzgsIDAuMDAyODQ2LCAwLjAwMjg2MSwgMC4wMDI4NjUsIDAuMDAyODY3LCAwLjAwMjg2OSwgMC4wMDI4NyIsIFwKLSAgICAgICAgICAiMC4wMDI5LCAwLjAwMjkwOSwgMC4wMDI5MjIsIDAuMDAyOTI2LCAwLjAwMjkyOCwgMC4wMDI5MywgMC4wMDI5MzEiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBYTk9SMlgyICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKFhOT1IyWDIpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4xODQyNTE7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDU1OTg2MTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA1NTk2NzY7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNTU5ODYxOwotICB9Ci0gIHBpbihCKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDEyMjA4NjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDEyMjA4OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTIyMDg2OwotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuNTEzMDcxOwotICAgIGZ1bmN0aW9uIDogIighKEFeQikpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODkxNzIsIDAuMTk0ODY2LCAwLjI3NzAzOSwgMC4zNzk3NzYsIDAuNDgyNDU2LCAwLjU4NTE2NSwgMC42ODc5NzgiLCBcCi0gICAgICAgICAgIjAuMDk5MzAyLCAwLjIwNDk2NSwgMC4yODcxNjUsIDAuMzg5ODkzLCAwLjQ5MjU3NCwgMC41OTU1NjcsIDAuNjk4MDIiLCBcCi0gICAgICAgICAgIjAuMTExODUzLCAwLjIxNzU1MiwgMC4yOTk3NDQsIDAuNDAyNDQ4LCAwLjUwNTE3MSwgMC42MDgxMjgsIDAuNzEwOTkzIiwgXAotICAgICAgICAgICIwLjEyNDI2LCAwLjIyOTk1OSwgMC4zMTIxNTksIDAuNDE0OTMxLCAwLjUxNzYzNSwgMC42MjAzMzIsIDAuNzIzNDg0IiwgXAotICAgICAgICAgICIwLjEzNTg3NywgMC4yNDE2MTYsIDAuMzIzODI2LCAwLjQyNjU0MSwgMC41MjkyNTYsIDAuNjMyMjIxLCAwLjczNDcyNCIsIFwKLSAgICAgICAgICAiMC4xNTMwMzgsIDAuMjU4OTMyLCAwLjM0MTEyNiwgMC40NDM4NjQsIDAuNTQ2Njg0LCAwLjY0OTI2NCwgMC43NTIwMzQiLCBcCi0gICAgICAgICAgIjAuMTY2NjM1LCAwLjI3MjgxLCAwLjM1NDk4OSwgMC40NTc3MDQsIDAuNTYwNDUzLCAwLjY2MzI0NCwgMC43NjYxOSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTk5MjgsIDAuMjY2MDg4LCAwLjQzNTQ4MSwgMC42NDc4MjUsIDAuODYxODE3LCAxLjA3NjExLCAxLjI4NzE1IiwgXAotICAgICAgICAgICIwLjA1OTkwMSwgMC4yNjU4MjMsIDAuNDM1NjkxLCAwLjY0NzcxNywgMC44NjIzNzYsIDEuMDc0MjEsIDEuMjg3MyIsIFwKLSAgICAgICAgICAiMC4wNTk5MTIsIDAuMjY1Nzg4LCAwLjQzNTQ3NiwgMC42NDc4MywgMC44NjIzNiwgMS4wNzQxNiwgMS4yODc2NSIsIFwKLSAgICAgICAgICAiMC4wNTk4OTEsIDAuMjY1ODcyLCAwLjQzNTQ3MiwgMC42NDg4NTUsIDAuODYyNDMyLCAxLjA3NDYxLCAxLjI4NzUzIiwgXAotICAgICAgICAgICIwLjA2MDI2OCwgMC4yNjU4MzcsIDAuNDM1NDYxLCAwLjY0ODY4NSwgMC44NjIyNTMsIDEuMDc0MTcsIDEuMjg5MzEiLCBcCi0gICAgICAgICAgIjAuMDYxMTc3LCAwLjI2NjI4OCwgMC40MzU1MzcsIDAuNjQ4NzMyLCAwLjg2MDQyOCwgMS4wNzU5MywgMS4yODczMiIsIFwKLSAgICAgICAgICAiMC4wNjI0MDMsIDAuMjY2NTkyLCAwLjQzNTM1NiwgMC42NDgwMTksIDAuODYyMjkyLCAxLjA3NDU2LCAxLjI4NzYyIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5MzcyNiwgMC4yMDExMTIsIDAuMjgzOTAzLCAwLjM4NzMyMiwgMC40OTA3NSwgMC41OTQxODYsIDAuNjk3ODE3IiwgXAotICAgICAgICAgICIwLjEwMzM2OSwgMC4yMTA3NDcsIDAuMjkzNTM3LCAwLjM5Njk2MywgMC41MDA0MTMsIDAuNjAzODMxLCAwLjcwNzMyMiIsIFwKLSAgICAgICAgICAiMC4xMTUzODYsIDAuMjIyODE3LCAwLjMwNTYxNCwgMC40MDkwNjMsIDAuNTEyNTI0LCAwLjYxNTkzNCwgMC43MTk0OTgiLCBcCi0gICAgICAgICAgIjAuMTI2OTksIDAuMjM0NDAxLCAwLjMxNzIwNCwgMC40MjA2OTcsIDAuNTI0MTE5LCAwLjYyNzY3NiwgMC43MzExNDUiLCBcCi0gICAgICAgICAgIjAuMTM3NzA1LCAwLjI0NTE4NSwgMC4zMjc5OTQsIDAuNDMxNDUxLCAwLjUzNDkxNSwgMC42MzgzMjMsIDAuNzQxODk1IiwgXAotICAgICAgICAgICIwLjE1MzQxNywgMC4yNjEwODMsIDAuMzQzODc1LCAwLjQ0NzMyNywgMC41NTA4NTcsIDAuNjU0MjQyLCAwLjc1Nzg1OCIsIFwKLSAgICAgICAgICAiMC4xNjU3NTUsIDAuMjczNjgzLCAwLjM1NjUxMywgMC40NTk5NTcsIDAuNTYzNDY4LCAwLjY2NjgxNiwgMC43NzA1MDQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDYwNTAzLCAwLjI2MjI4NiwgMC40Mjc4ODYsIDAuNjM3NTE5LCAwLjg0Njg3OSwgMS4wNTY3MiwgMS4yNjQwNyIsIFwKLSAgICAgICAgICAiMC4wNjA1MDMsIDAuMjYyMzE1LCAwLjQyNzg0NSwgMC42Mzc1NDQsIDAuODQ3MjU4LCAxLjA1NzA3LCAxLjI2MzM4IiwgXAotICAgICAgICAgICIwLjA2MDQ4NiwgMC4yNjIzMTUsIDAuNDI3OTIxLCAwLjYzNjY5LCAwLjg0NzM4NCwgMS4wNTY2MSwgMS4yNjQzNiIsIFwKLSAgICAgICAgICAiMC4wNjA1NTIsIDAuMjYyMjgzLCAwLjQyNzg1OSwgMC42Mzc5MjEsIDAuODQ1Njc3LCAxLjA1NDgxLCAxLjI2NDAxIiwgXAotICAgICAgICAgICIwLjA2MDgxNSwgMC4yNjI0MjcsIDAuNDI3ODk3LCAwLjYzNjY2OSwgMC44NDczNjksIDEuMDU2NTgsIDEuMjY0MzUiLCBcCi0gICAgICAgICAgIjAuMDYxNzIzLCAwLjI2MjM3LCAwLjQyNzk4OSwgMC42MzY1OTgsIDAuODQ0NjMsIDEuMDU0MDgsIDEuMjYzODUiLCBcCi0gICAgICAgICAgIjAuMDYyODU3LCAwLjI2Mjg0NiwgMC40MjgxNzQsIDAuNjM2NTgyLCAwLjg0NDgwNiwgMS4wNTcsIDEuMjYzOCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDU3ODksIDAuMjExMzExLCAwLjI5MzU5OCwgMC4zOTYzOTUsIDAuNDk5MTMxLCAwLjYwMTgxOCwgMC43MDQ0OTQiLCBcCi0gICAgICAgICAgIjAuMTE1NTQ1LCAwLjIyMTA3LCAwLjMwMzM1NCwgMC40MDYxNTMsIDAuNTA4ODg0LCAwLjYxMTU4MiwgMC43MTQyNTEiLCBcCi0gICAgICAgICAgIjAuMTI2NTI1LCAwLjIzMjA5LCAwLjMxNDM4MSwgMC40MTcxNjMsIDAuNTE5OTAxLCAwLjYyMjU4OCwgMC43MjU0MzEiLCBcCi0gICAgICAgICAgIjAuMTM1NTksIDAuMjQxMTcyLCAwLjMyMzM2OCwgMC40MjYxNzYsIDAuNTI4ODksIDAuNjMxNjEyLCAwLjczNDMzNSIsIFwKLSAgICAgICAgICAiMC4xNDI5NzMsIDAuMjQ4NDk4LCAwLjMzMDc4MywgMC40MzM2LCAwLjUzNjMwOSwgMC42Mzg5MjgsIDAuNzQxNTcxIiwgXAotICAgICAgICAgICIwLjE1Mjk3NSwgMC4yNTg1ODksIDAuMzQwODk2LCAwLjQ0MzY2NiwgMC41NDY0MDksIDAuNjQ5MDc4LCAwLjc1MTc4MyIsIFwKLSAgICAgICAgICAiMC4xNjA1NTksIDAuMjY2MSwgMC4zNDgzOSwgMC40NTEyMzcsIDAuNTUzOTU1LCAwLjY1NjU4MywgMC43NTk0NTgiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU5Mzg5LCAwLjI2NTU4NiwgMC40MzU4MDEsIDAuNjQ3OTU4LCAwLjg2MjUsIDEuMDc0ODQsIDEuMjg4NTQiLCBcCi0gICAgICAgICAgIjAuMDU5Mzg5LCAwLjI2NTU4OCwgMC40MzU3OCwgMC42NDc5NDksIDAuODYyNDksIDEuMDc0NzksIDEuMjg4NTMiLCBcCi0gICAgICAgICAgIjAuMDU5MzM4LCAwLjI2NTczNywgMC40MzU2MTksIDAuNjQ4MTgyLCAwLjg2MjQ1OSwgMS4wNzQ4OCwgMS4yODc3IiwgXAotICAgICAgICAgICIwLjA1OTM2NCwgMC4yNjU1NzYsIDAuNDM1NjA5LCAwLjY0NzgxMiwgMC44NjI0NTEsIDEuMDc2MDksIDEuMjg4MDEiLCBcCi0gICAgICAgICAgIjAuMDU5MzYsIDAuMjY1NTc2LCAwLjQzNTYzNiwgMC42NDc5NTksIDAuODYyNDU2LCAxLjA3NDc2LCAxLjI4NzczIiwgXAotICAgICAgICAgICIwLjA1OTMwNywgMC4yNjU4MjUsIDAuNDM1NzQ4LCAwLjY0Nzg4NCwgMC44NjIzNDgsIDEuMDc1OTQsIDEuMjg4NSIsIFwKLSAgICAgICAgICAiMC4wNTk0NDEsIDAuMjY1OTQ1LCAwLjQzNTc1NSwgMC42NDc4MjQsIDAuODYyMzQ5LCAxLjA3NTk0LCAxLjI4OTc0Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwOTAzNiwgMC4yMTYwNDksIDAuMjk4OTEzLCAwLjQwMjQwOSwgMC41MDU4NjIsIDAuNjA5Mjg2LCAwLjcxMjY4MiIsIFwKLSAgICAgICAgICAiMC4xMTkxODgsIDAuMjI2MjIyLCAwLjMwOTA5MSwgMC40MTI1OSwgMC41MTYwNDEsIDAuNjE5NDY5LCAwLjcyMjg2NiIsIFwKLSAgICAgICAgICAiMC4xMzA4NzgsIDAuMjM3OTIxLCAwLjMyMDc3MywgMC40MjQyODEsIDAuNTI3NzI0LCAwLjYzMTE3MSwgMC43MzQ1NDYiLCBcCi0gICAgICAgICAgIjAuMTQwNDIzLCAwLjI0NzQyMSwgMC4zMzAzMjgsIDAuNDMzODQ0LCAwLjUzNzI2MiwgMC42NDA3MTUsIDAuNzQ0MDkyIiwgXAotICAgICAgICAgICIwLjE0ODg1MiwgMC4yNTU4MzksIDAuMzM4Njk2LCAwLjQ0MjIxNCwgMC41NDU2NjgsIDAuNjQ5MDU4LCAwLjc1MjUwOCIsIFwKLSAgICAgICAgICAiMC4xNTk5NTIsIDAuMjY3MDA2LCAwLjM0OTg2MSwgMC40NTMzNzYsIDAuNTU2ODM2LCAwLjY2MDIyNSwgMC43NjM3MiIsIFwKLSAgICAgICAgICAiMC4xNjg1MDQsIDAuMjc1NTQxLCAwLjM1ODQyMywgMC40NjE5MywgMC41NjUzODcsIDAuNjY4OCwgMC43NzIyMjMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU5Njk1LCAwLjI2MTgwOCwgMC40Mjg0NTQsIDAuNjM2NTQ4LCAwLjg0NTk3MiwgMS4wNTU0LCAxLjI2NjgxIiwgXAotICAgICAgICAgICIwLjA1OTY3MywgMC4yNjE3MjEsIDAuNDI4NDIzLCAwLjYzNjU1OSwgMC44NDU5MzMsIDEuMDU1NTUsIDEuMjY2NzYiLCBcCi0gICAgICAgICAgIjAuMDU5NjY4LCAwLjI2MTkzMSwgMC40Mjg0MTQsIDAuNjM2NjIsIDAuODQ3MjYsIDEuMDU3MDUsIDEuMjY2NzMiLCBcCi0gICAgICAgICAgIjAuMDU5NjY2LCAwLjI2MTU2NywgMC40MjgzODIsIDAuNjM2NjYsIDAuODQ3MTQ3LCAxLjA1NzA5LCAxLjI2NjYiLCBcCi0gICAgICAgICAgIjAuMDU5NjAyLCAwLjI2MTk2LCAwLjQyODQxNiwgMC42MzYxMzMsIDAuODQ3MTM2LCAxLjA1Njk1LCAxLjI2Mzk5IiwgXAotICAgICAgICAgICIwLjA1OTU5LCAwLjI2MjAyMiwgMC40Mjg0MzYsIDAuNjM2NjExLCAwLjg0NzE3NCwgMS4wNTY5NCwgMS4yNjY4IiwgXAotICAgICAgICAgICIwLjA1OTYxOCwgMC4yNjIwNTcsIDAuNDI4NTA4LCAwLjYzNjA5OCwgMC44NDcxNzIsIDEuMDU3MDgsIDEuMjY2OTUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc0OTI3LCAwLjE4MDY0OCwgMC4yNjI4NCwgMC4zNjU1NTIsIDAuNDY4MzIxLCAwLjU3MDk5NywgMC42NzM3NzQiLCBcCi0gICAgICAgICAgIjAuMDg0MzI5LCAwLjE5MDA1NiwgMC4yNzIyNSwgMC4zNzUwMDgsIDAuNDc3NjgsIDAuNTgwNjgsIDAuNjgzMTI0IiwgXAotICAgICAgICAgICIwLjA5NjE5LCAwLjIwMTksIDAuMjg0MDk5LCAwLjM4NjgwNywgMC40ODk1MzEsIDAuNTkyNDgxLCAwLjY5NTAzNyIsIFwKLSAgICAgICAgICAiMC4xMDc5MzksIDAuMjEzNjc2LCAwLjI5NTg2MSwgMC4zOTg1OSwgMC41MDE0MTMsIDAuNjA0MDM5LCAwLjcwNjgwOCIsIFwKLSAgICAgICAgICAiMC4xMTkwNzQsIDAuMjI0ODc3LCAwLjMwNzA2OCwgMC40MDk4MzMsIDAuNTEyNTQ5LCAwLjYxNTI4NSwgMC43MTgyNjYiLCBcCi0gICAgICAgICAgIjAuMTM0OTY3LCAwLjI0MDg4MywgMC4zMjMwOCwgMC40MjU4MSwgMC41Mjg1NSwgMC42MzEzNTcsIDAuNzM0MDAyIiwgXAotICAgICAgICAgICIwLjE0NzE5NiwgMC4yNTMzOCwgMC4zMzU1MzcsIDAuNDM4MzAxLCAwLjU0MDk5OSwgMC42NDM3LCAwLjc0NjUwMSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTk2MzYsIDAuMjY1NjcxLCAwLjQzNTQ1MSwgMC42NDc5NDMsIDAuODYwNjcxLCAxLjA3NjE0LCAxLjI4NzMxIiwgXAotICAgICAgICAgICIwLjA1OTY0NSwgMC4yNjU3MTcsIDAuNDM1NTY5LCAwLjY0NzY1NywgMC44NjIyNTcsIDEuMDc0MjIsIDEuMjg3MyIsIFwKLSAgICAgICAgICAiMC4wNTk2MjUsIDAuMjY1NjkxLCAwLjQzNTQxNCwgMC42NDg1OTQsIDAuODYyMzU3LCAxLjA3NDE1LCAxLjI4OTExIiwgXAotICAgICAgICAgICIwLjA1OTcwNSwgMC4yNjU3LCAwLjQzNTQxMSwgMC42NDg2NzUsIDAuODYwNDk1LCAxLjA3NTk4LCAxLjI4NzMyIiwgXAotICAgICAgICAgICIwLjA2MDM1NiwgMC4yNjYxMzYsIDAuNDM1NDU5LCAwLjY0ODczNiwgMC44NjIyODMsIDEuMDc0NzgsIDEuMjg3NjEiLCBcCi0gICAgICAgICAgIjAuMDYyMTA3LCAwLjI2NjMyNSwgMC40MzUyNSwgMC42NDc5NTUsIDAuODYyMjg2LCAxLjA3NDU3LCAxLjI4NzMzIiwgXAotICAgICAgICAgICIwLjA2MzkyNSwgMC4yNjY3MzYsIDAuNDM1NDE2LCAwLjY0ODg4NSwgMC44NjIzMjgsIDEuMDc0NjEsIDEuMjg3MDIiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg0MzksIDAuMTkxMzc0LCAwLjI3NDIyNywgMC4zNzc3MzUsIDAuNDgxMiwgMC41ODQ1ODgsIDAuNjg3OTg1IiwgXAotICAgICAgICAgICIwLjA5MzIyMiwgMC4yMDAyOSwgMC4yODMxNDgsIDAuMzg2NjUsIDAuNDkwMTI0LCAwLjU5MzUxLCAwLjY5NjkwMyIsIFwKLSAgICAgICAgICAiMC4xMDQ1NzgsIDAuMjExNjIxLCAwLjI5NDQ4NywgMC4zOTgwMDQsIDAuNTAxNDUzLCAwLjYwNDg3OCwgMC43MDgyNTYiLCBcCi0gICAgICAgICAgIjAuMTE2MDUzLCAwLjIyMzA3OSwgMC4zMDU5NiwgMC40MDk0NjgsIDAuNTEyOTUsIDAuNjE2MzM3LCAwLjcxOTczMSIsIFwKLSAgICAgICAgICAiMC4xMjY4NDQsIDAuMjM0MDU5LCAwLjMxNjk0LCAwLjQyMDQ2LCAwLjUyMzkyNywgMC42MjczNjIsIDAuNzMwODM2IiwgXAotICAgICAgICAgICIwLjE0MjY5NiwgMC4yNDk5NiwgMC4zMzI4NDYsIDAuNDM2MzM1LCAwLjUzOTg0NiwgMC42NDMyNjYsIDAuNzQ2NjQyIiwgXAotICAgICAgICAgICIwLjE1NDYzNSwgMC4yNjIyMTgsIDAuMzQ1MDc4LCAwLjQ0ODU4MywgMC41NTIxMDIsIDAuNjU1NDgzLCAwLjc1ODg4NiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTk1NjksIDAuMjYxNjI2LCAwLjQyNzg0MSwgMC42MzY5MywgMC44NDcxMjMsIDEuMDU2OTcsIDEuMjY2MzEiLCBcCi0gICAgICAgICAgIjAuMDU5NTc4LCAwLjI2MTU5MSwgMC40Mjg0NzYsIDAuNjM2OTIxLCAwLjg0NzA5NCwgMS4wNTcsIDEuMjY2MzMiLCBcCi0gICAgICAgICAgIjAuMDU5NjEsIDAuMjYyMDk0LCAwLjQyODQxOCwgMC42MzY3NjUsIDAuODQ1MTUsIDEuMDU3MDQsIDEuMjY2NjMiLCBcCi0gICAgICAgICAgIjAuMDU5NzIzLCAwLjI2MTYyLCAwLjQyODQ4NywgMC42MzY4NTksIDAuODQ3MDg3LCAxLjA1NywgMS4yNjYzMSIsIFwKLSAgICAgICAgICAiMC4wNjAzMjUsIDAuMjYxODY1LCAwLjQyODQ1NiwgMC42Mzc3MDYsIDAuODQ3MTMzLCAxLjA1NzAyLCAxLjI2MzExIiwgXAotICAgICAgICAgICIwLjA2MTYwNCwgMC4yNjE5MTIsIDAuNDI4NTk3LCAwLjYzNjU4OCwgMC44NDcxNDMsIDEuMDU3MDMsIDEuMjY2NzQiLCBcCi0gICAgICAgICAgIjAuMDYzMjc0LCAwLjI2Mjg3OSwgMC40Mjg3ODUsIDAuNjM3NzQsIDAuODQ1NDM3LCAxLjA1NzA5LCAxLjI2NjgzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5OTQzNywgMC4yMDQ5MTYsIDAuMjg3MjA3LCAwLjM5MDAzNywgMC40OTI3MzIsIDAuNTk1NDEyLCAwLjY5ODEyOCIsIFwKLSAgICAgICAgICAiMC4xMDkyOTYsIDAuMjE0ODMyLCAwLjI5NzExOCwgMC4zOTk5MTMsIDAuNTAyNjI2LCAwLjYwNTQsIDAuNzA4MDEzIiwgXAotICAgICAgICAgICIwLjEyMDIwNSwgMC4yMjU3MjYsIDAuMzA3OTk5LCAwLjQxMDc4NywgMC41MTM1NzksIDAuNjE2Mjc5LCAwLjcxODkwNCIsIFwKLSAgICAgICAgICAiMC4xMjkwMjEsIDAuMjM0NDksIDAuMzE2Nzc0LCAwLjQxOTU2MywgMC41MjIzMjgsIDAuNjI1MDM5LCAwLjcyNzY4MiIsIFwKLSAgICAgICAgICAiMC4xMzU5MzYsIDAuMjQxNDI1LCAwLjMyMzcxNiwgMC40MjY0OTgsIDAuNTI5MjQxLCAwLjYzMTkyMywgMC43MzQ2NDgiLCBcCi0gICAgICAgICAgIjAuMTQ1MzcyLCAwLjI1MTE1NiwgMC4zMzM0MzYsIDAuNDM2MjE4LCAwLjUzOTAzNCwgMC42NDE4MTIsIDAuNzQ0MzYxIiwgXAotICAgICAgICAgICIwLjE1MjY0MywgMC4yNTg0NjEsIDAuMzQwODQxLCAwLjQ0MzU2MSwgMC41NDYyNjUsIDAuNjQ5MDM0LCAwLjc1MTcwNSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTkzNTMsIDAuMjY1Nzc2LCAwLjQzNTYyOCwgMC42NDg5OTMsIDAuODYyNDYyLCAxLjA3NDc1LCAxLjI4OTcyIiwgXAotICAgICAgICAgICIwLjA1OTM0OCwgMC4yNjU1NywgMC40MzU3NTcsIDAuNjQ3ODUyLCAwLjg2MjQyMiwgMS4wNzYxOCwgMS4yODg0NSIsIFwKLSAgICAgICAgICAiMC4wNTkzNjQsIDAuMjY1OTU3LCAwLjQzNTYxNiwgMC42NDg5MDksIDAuODYyNTM2LCAxLjA3NjEyLCAxLjI4ODMiLCBcCi0gICAgICAgICAgIjAuMDU5MzE5LCAwLjI2NTcyMiwgMC40MzU2MTMsIDAuNjQ4MjcyLCAwLjg2MTE4MywgMS4wNzQ1MiwgMS4yODgzNiIsIFwKLSAgICAgICAgICAiMC4wNTk1MDIsIDAuMjY1Nzg3LCAwLjQzNTYzMywgMC42NDg5MDcsIDAuODYyNDE4LCAxLjA3NDc5LCAxLjI4ODI1IiwgXAotICAgICAgICAgICIwLjA1OTQ5NCwgMC4yNjU5MDUsIDAuNDM1NzE2LCAwLjY0ODI5OSwgMC44NjI0MTcsIDEuMDc1OTEsIDEuMjg5NTQiLCBcCi0gICAgICAgICAgIjAuMDU5NjgxLCAwLjI2NjA1NiwgMC40MzU3NDksIDAuNjQ4MTczLCAwLjg2MjI1OSwgMS4wNzQ4NCwgMS4yODkzNiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODQ1MTYsIDAuMTkxOTA0LCAwLjI3NDY5NiwgMC4zNzgxMjUsIDAuNDgxNTg5LCAwLjU4NTAzNCwgMC42ODg2MTgiLCBcCi0gICAgICAgICAgIjAuMDk1MTcyLCAwLjIwMjYxMiwgMC4yODUzOTUsIDAuMzg4ODQsIDAuNDkyMzEyLCAwLjU5NTcxMiwgMC42OTkyOTEiLCBcCi0gICAgICAgICAgIjAuMTA4MjM5LCAwLjIxNTYxOSwgMC4yOTg0MTUsIDAuNDAxODYyLCAwLjUwNTMxOSwgMC42MDg3NDMsIDAuNzEyMTgzIiwgXAotICAgICAgICAgICIwLjExOTM2MywgMC4yMjY3MjIsIDAuMzA5NTE4LCAwLjQxMjk2MywgMC41MTY0MzIsIDAuNjE5ODQzLCAwLjcyMzI1MSIsIFwKLSAgICAgICAgICAiMC4xMjg1NzksIDAuMjM2MDAzLCAwLjMxODgxMywgMC40MjIyNDUsIDAuNTI1NzE2LCAwLjYyOTEyNywgMC43MzI2OTQiLCBcCi0gICAgICAgICAgIjAuMTQwNjg4LCAwLjI0ODAzMywgMC4zMzA4NDYsIDAuNDM0Mjc5LCAwLjUzNzcwNSwgMC42NDExOTMsIDAuNzQ0Nzk3IiwgXAotICAgICAgICAgICIwLjE0OTc4NSwgMC4yNTcwNzcsIDAuMzM5ODc3LCAwLjQ0MzMwNCwgMC41NDY3NzQsIDAuNjUwMjUxLCAwLjc1Mzc4OSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjAzMSwgMC4yNjIyNDksIDAuNDI4NDkzLCAwLjYzNzQ1NSwgMC44NDcyMiwgMS4wNTUwMiwgMS4yNjQyMSIsIFwKLSAgICAgICAgICAiMC4wNjAzMjMsIDAuMjYyMDUxLCAwLjQyNzgyNSwgMC42MzY0OTYsIDAuODQ3MjcsIDEuMDU2NDIsIDEuMjY0MTciLCBcCi0gICAgICAgICAgIjAuMDYwMzM1LCAwLjI2MjAxOSwgMC40Mjg0NDcsIDAuNjM2NjAzLCAwLjg0NzIwNSwgMS4wNTU4MSwgMS4yNjY5MSIsIFwKLSAgICAgICAgICAiMC4wNjAzNDYsIDAuMjYyMDU5LCAwLjQyODQ0NiwgMC42MzY1MSwgMC44NDcyMzksIDEuMDU2MzMsIDEuMjY2MzgiLCBcCi0gICAgICAgICAgIjAuMDYwMzUxLCAwLjI2MjA2MiwgMC40Mjg1NTMsIDAuNjM2NDE3LCAwLjg0NzIyNiwgMS4wNTYzNSwgMS4yNjQyMSIsIFwKLSAgICAgICAgICAiMC4wNjAxOSwgMC4yNjIzNDEsIDAuNDI3ODQzLCAwLjYzNzEzMiwgMC44NDY5NTcsIDEuMDU3MDIsIDEuMjYzODciLCBcCi0gICAgICAgICAgIjAuMDYwMjk2LCAwLjI2MTksIDAuNDI4NDY1LCAwLjYzNzQwOSwgMC44NDU5OTEsIDEuMDUzOTEsIDEuMjY0MDEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQ1NDQsIDAuMDA0NjE5LCAwLjAwNDYzLCAwLjAwNDYzNSwgMC4wMDQ2MzgsIDAuMDA0NjQsIDAuMDA0NjQxIiwgXAotICAgICAgICAgICIwLjAwNDUyLCAwLjAwNDU5NCwgMC4wMDQ2MDYsIDAuMDA0NjExLCAwLjAwNDYxNCwgMC4wMDQ2MTYsIDAuMDA0NjE3IiwgXAotICAgICAgICAgICIwLjAwNDUxNiwgMC4wMDQ1OTEsIDAuMDA0NjAyLCAwLjAwNDYwOSwgMC4wMDQ2MTEsIDAuMDA0NjEyLCAwLjAwNDYxNCIsIFwKLSAgICAgICAgICAiMC4wMDQ1MTYsIDAuMDA0NTkxLCAwLjAwNDYwMiwgMC4wMDQ2MDgsIDAuMDA0NjEyLCAwLjAwNDYxNCwgMC4wMDQ2MTUiLCBcCi0gICAgICAgICAgIjAuMDA0NTIxLCAwLjAwNDU5OCwgMC4wMDQ2MDgsIDAuMDA0NjE1LCAwLjAwNDYxNywgMC4wMDQ2MTgsIDAuMDA0NjIxIiwgXAotICAgICAgICAgICIwLjAwNDU0MSwgMC4wMDQ2MTcsIDAuMDA0NjMsIDAuMDA0NjMyLCAwLjAwNDYzNywgMC4wMDQ2MzksIDAuMDA0NjQiLCBcCi0gICAgICAgICAgIjAuMDA0NTY0LCAwLjAwNDYzNCwgMC4wMDQ2NDUsIDAuMDA0NjUzLCAwLjAwNDY1NywgMC4wMDQ2NTcsIDAuMDA0NjYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQxMywgMC4wMDQyMjUsIDAuMDA0MjM4LCAwLjAwNDI0NiwgMC4wMDQyNDksIDAuMDA0MjUyLCAwLjAwNDI1MyIsIFwKLSAgICAgICAgICAiMC4wMDQxLCAwLjAwNDE5NSwgMC4wMDQyMDgsIDAuMDA0MjE2LCAwLjAwNDIyLCAwLjAwNDIyMiwgMC4wMDQyMjQiLCBcCi0gICAgICAgICAgIjAuMDA0MDk3LCAwLjAwNDE5MiwgMC4wMDQyMDYsIDAuMDA0MjE0LCAwLjAwNDIxOCwgMC4wMDQyMiwgMC4wMDQyMjIiLCBcCi0gICAgICAgICAgIjAuMDA0MTA3LCAwLjAwNDIwMiwgMC4wMDQyMTYsIDAuMDA0MjI0LCAwLjAwNDIyOCwgMC4wMDQyMywgMC4wMDQyMzIiLCBcCi0gICAgICAgICAgIjAuMDA0MTEsIDAuMDA0MjA1LCAwLjAwNDIxOSwgMC4wMDQyMjYsIDAuMDA0MjMsIDAuMDA0MjMzLCAwLjAwNDIzNCIsIFwKLSAgICAgICAgICAiMC4wMDQxMywgMC4wMDQyMjUsIDAuMDA0MjM5LCAwLjAwNDI0NywgMC4wMDQyNTEsIDAuMDA0MjU0LCAwLjAwNDI1NSIsIFwKLSAgICAgICAgICAiMC4wMDQxNTQsIDAuMDA0MjQ4LCAwLjAwNDI2MiwgMC4wMDQyNjksIDAuMDA0MjczLCAwLjAwNDI3NiwgMC4wMDQyNzciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQ3MzMsIDAuMDA0ODA2LCAwLjAwNDgxNywgMC4wMDQ4MjMsIDAuMDA0ODI3LCAwLjAwNDgyOSwgMC4wMDQ4MyIsIFwKLSAgICAgICAgICAiMC4wMDQ3MjEsIDAuMDA0Nzk0LCAwLjAwNDgwNSwgMC4wMDQ4MTIsIDAuMDA0ODE1LCAwLjAwNDgxNSwgMC4wMDQ4MTgiLCBcCi0gICAgICAgICAgIjAuMDA0NzI3LCAwLjAwNDgsIDAuMDA0ODExLCAwLjAwNDgxNywgMC4wMDQ4MjEsIDAuMDA0ODIzLCAwLjAwNDgyNCIsIFwKLSAgICAgICAgICAiMC4wMDQ3MjksIDAuMDA0ODAzLCAwLjAwNDgxNCwgMC4wMDQ4MiwgMC4wMDQ4MjMsIDAuMDA0ODI2LCAwLjAwNDgyNiIsIFwKLSAgICAgICAgICAiMC4wMDQ3NCwgMC4wMDQ4MTUsIDAuMDA0ODI0LCAwLjAwNDgzLCAwLjAwNDgzMywgMC4wMDQ4MzYsIDAuMDA0ODM3IiwgXAotICAgICAgICAgICIwLjAwNDc2MiwgMC4wMDQ4MzMsIDAuMDA0ODQ2LCAwLjAwNDg0OSwgMC4wMDQ4NTQsIDAuMDA0ODUyLCAwLjAwNDg2IiwgXAotICAgICAgICAgICIwLjAwNDc4NCwgMC4wMDQ4NDksIDAuMDA0ODY0LCAwLjAwNDg2OCwgMC4wMDQ4NzMsIDAuMDA0ODc1LCAwLjAwNDg3NyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzQzNywgMC4wMDM1MjMsIDAuMDAzNTM1LCAwLjAwMzU0MSwgMC4wMDM1NDUsIDAuMDAzNTQ3LCAwLjAwMzU0OCIsIFwKLSAgICAgICAgICAiMC4wMDM0NTksIDAuMDAzNTQyLCAwLjAwMzU1NCwgMC4wMDM1NjEsIDAuMDAzNTY1LCAwLjAwMzU2NywgMC4wMDM1NjgiLCBcCi0gICAgICAgICAgIjAuMDAzNTE2LCAwLjAwMzU5NiwgMC4wMDM2MDksIDAuMDAzNjE2LCAwLjAwMzYyLCAwLjAwMzYyMiwgMC4wMDM2MjQiLCBcCi0gICAgICAgICAgIjAuMDAzNTcxLCAwLjAwMzY1LCAwLjAwMzY2NCwgMC4wMDM2NzIsIDAuMDAzNjc2LCAwLjAwMzY3OCwgMC4wMDM2OCIsIFwKLSAgICAgICAgICAiMC4wMDM1OTYsIDAuMDAzNjcyLCAwLjAwMzY4NiwgMC4wMDM2OTQsIDAuMDAzNjk4LCAwLjAwMzcwMSwgMC4wMDM3MDMiLCBcCi0gICAgICAgICAgIjAuMDAzNjcsIDAuMDAzNzQ3LCAwLjAwMzc1OCwgMC4wMDM3NjYsIDAuMDAzNzcxLCAwLjAwMzc3NCwgMC4wMDM3NzUiLCBcCi0gICAgICAgICAgIjAuMDAzNzMzLCAwLjAwMzgwOCwgMC4wMDM4MjEsIDAuMDAzODMsIDAuMDAzODM0LCAwLjAwMzgzNywgMC4wMDM4MzkiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBYTk9SMlg0ICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKFhOT1IyWDQpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4zMDAwMTI7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYxNzI0ODsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MTcwNDk7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjE3MjQ4OwotICB9Ci0gIHBpbihCKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE1ODU1MjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE1ODUwMTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE1ODU1MjsKLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjk3NzM2NjsKLSAgICBmdW5jdGlvbiA6ICIoIShBXkIpKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTk0MTUsIDAuMTgyMDQ3LCAwLjI1NDg1OSwgMC4zMDY0ODYsIDAuMzg5MTI0LCAwLjQ2MTM2LCAwLjU2NDc4OCIsIFwKLSAgICAgICAgICAiMC4xMDkzNzEsIDAuMTkyMDAyLCAwLjI2NDc4OSwgMC4zMTY0MjYsIDAuMzk5MDI2LCAwLjQ3MTI5MiwgMC41NzQ1MiIsIFwKLSAgICAgICAgICAiMC4xMjIyNiwgMC4yMDQ5NTMsIDAuMjc3NzUzLCAwLjMyOTM5MywgMC40MTE5OTIsIDAuNDg0Mjg1LCAwLjU4NzQ5NSIsIFwKLSAgICAgICAgICAiMC4xMzUxMzQsIDAuMjE3NzIzLCAwLjI5MDUxNiwgMC4zNDIxNTUsIDAuNDI0Nzg4LCAwLjQ5NzA1MiwgMC42MDAyODYiLCBcCi0gICAgICAgICAgIjAuMTQ3OTA1LCAwLjIzMDU0OCwgMC4zMDMzNzQsIDAuMzU1MDE2LCAwLjQzNzYxOCwgMC41MDk5MDUsIDAuNjEzMTE0IiwgXAotICAgICAgICAgICIwLjE2NzMzOCwgMC4yNTAwNjIsIDAuMzIyODY3LCAwLjM3NDUwOCwgMC40NTcxMTcsIDAuNTI5Mzg2LCAwLjYzMjYyMyIsIFwKLSAgICAgICAgICAiMC4xODM0MjksIDAuMjY2NDA5LCAwLjMzOTIxNywgMC4zOTA4OTMsIDAuNDczNDgzLCAwLjU0NTc1MywgMC42NDkwNjkiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDY3MjMsIDAuMTg4NDM4LCAwLjMzMzkzLCAwLjQzOTU1NiwgMC42MDgzMTYsIDAuNzU4NTc4LCAwLjk3MDUxMSIsIFwKLSAgICAgICAgICAiMC4wNDY4NjQsIDAuMTg4NTEsIDAuMzMzOTI2LCAwLjQzOTMxMywgMC42MDkzOTUsIDAuNzU4NTgxLCAwLjk3MTc4NiIsIFwKLSAgICAgICAgICAiMC4wNDY3NTksIDAuMTg4NTA3LCAwLjMzMzkxOSwgMC40MzkzNDIsIDAuNjA5MzkxLCAwLjc1ODg2NSwgMC45NzI0MjYiLCBcCi0gICAgICAgICAgIjAuMDQ2NjczLCAwLjE4ODUwMiwgMC4zMzM5MiwgMC40MzkyOTYsIDAuNjA5NjY5LCAwLjc1ODg0OCwgMC45NzI0MzQiLCBcCi0gICAgICAgICAgIjAuMDQ2NzQxLCAwLjE4ODQ4OCwgMC4zMzM4ODUsIDAuNDM5MzI1LCAwLjYwOTM3NywgMC43NTg4MDcsIDAuOTcyMjc5IiwgXAotICAgICAgICAgICIwLjA0NzM4NCwgMC4xODg2MzEsIDAuMzMzOTgsIDAuNDM5MzI4LCAwLjYwOTQxNSwgMC43NTg1ODMsIDAuOTcxMDY3IiwgXAotICAgICAgICAgICIwLjA0ODM1NiwgMC4xODg5NjcsIDAuMzM0MTMsIDAuNDM5NzE5LCAwLjYwODk1NywgMC43NTg1OCwgMC45NzA4MDciKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDQ5NTUsIDAuMTkwMjUyLCAwLjI2NDQ0OSwgMC4zMTY5MzIsIDAuNDAwNzkyLCAwLjQ3NDE1NiwgMC41NzkwMDUiLCBcCi0gICAgICAgICAgIjAuMTE0NzM0LCAwLjIwMDA0NywgMC4yNzQyNTIsIDAuMzI2NzU1LCAwLjQxMDYwNiwgMC40ODM5NjIsIDAuNTg4ODY4IiwgXAotICAgICAgICAgICIwLjEyNzA0OSwgMC4yMTIzMDQsIDAuMjg2NTIsIDAuMzM5MDE3LCAwLjQyMjg1OSwgMC40OTYyMjEsIDAuNjAxMDE4IiwgXAotICAgICAgICAgICIwLjEzOTI5NCwgMC4yMjQ1MDgsIDAuMjk4NzA4LCAwLjM1MTIxNSwgMC40MzUwNzQsIDAuNTA4NDMzLCAwLjYxMzIyNSIsIFwKLSAgICAgICAgICAiMC4xNTEyMzEsIDAuMjM2NDczLCAwLjMxMDY4NiwgMC4zNjMxODUsIDAuNDQ3MDUxLCAwLjUyMDQxLCAwLjYyNTIwMiIsIFwKLSAgICAgICAgICAiMC4xNjk1NzksIDAuMjU0ODk4LCAwLjMyOTEzLCAwLjM4MTYyMiwgMC40NjU0ODEsIDAuNTM4ODg1LCAwLjY0MzY0OCIsIFwKLSAgICAgICAgICAiMC4xODQ1MDcsIDAuMjcwMDI3LCAwLjM0NDIxNywgMC4zOTY3MjgsIDAuNDgwNTg5LCAwLjU1Mzk0NywgMC42NTg3NDQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDgwMTIsIDAuMTg5MjkyLCAwLjMzMzMwMywgMC40Mzc4NzUsIDAuNjA2OTI1LCAwLjc1MzY3NywgMC45NjU0IiwgXAotICAgICAgICAgICIwLjA0Nzk2OSwgMC4xODkyNDQsIDAuMzMzMzEzLCAwLjQzNzg2NiwgMC42MDU5MzQsIDAuNzUzNzM4LCAwLjk2NDk2NyIsIFwKLSAgICAgICAgICAiMC4wNDgwNTUsIDAuMTg5MjgyLCAwLjMzMzI4NCwgMC40MzczMzQsIDAuNjA1OTk0LCAwLjc1NTA2MSwgMC45NjcxNjMiLCBcCi0gICAgICAgICAgIjAuMDQ4MDEzLCAwLjE4OTI3NywgMC4zMzMyNzksIDAuNDM3OTAyLCAwLjYwNTk3NiwgMC43NTM3NTgsIDAuOTY2NDYiLCBcCi0gICAgICAgICAgIjAuMDQ4MDY3LCAwLjE4OTI5MSwgMC4zMzMzMDEsIDAuNDM3OTM0LCAwLjYwNTk2OSwgMC43NTM3NTEsIDAuOTY2ODcxIiwgXAotICAgICAgICAgICIwLjA0ODYzMSwgMC4xODkzOTUsIDAuMzMzMzM4LCAwLjQzNzk0MSwgMC42MDU5ODEsIDAuNzU1MjEzLCAwLjk2NzEzMSIsIFwKLSAgICAgICAgICAiMC4wNDk0MjYsIDAuMTg5NzgyLCAwLjMzMzU1NCwgMC40Mzc4OTksIDAuNjA1OTIzLCAwLjc1MzY0MSwgMC45NjY3MiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5OTUzMSwgMC4xNzcyMTUsIDAuMjQ5NjczLCAwLjMwMTMzOCwgMC4zODQwMDEsIDAuNDU2MzAxLCAwLjU1OTQ5IiwgXAotICAgICAgICAgICIwLjEwOTM3MywgMC4xODcwNDgsIDAuMjU5NTA2LCAwLjMxMTE3LCAwLjM5MzgzNCwgMC40NjYxMzMsIDAuNTY5MzIyIiwgXAotICAgICAgICAgICIwLjEyMTM0MiwgMC4xOTkwMjEsIDAuMjcxNDg4LCAwLjMyMzE1MywgMC40MDU3ODgsIDAuNDc4MTI0LCAwLjU4MTIxOCIsIFwKLSAgICAgICAgICAiMC4xMzE1NTcsIDAuMjA5MzAzLCAwLjI4MTY5MSwgMC4zMzMzNTYsIDAuNDE2MDI0LCAwLjQ4ODMxNSwgMC41OTE1MDMiLCBcCi0gICAgICAgICAgIjAuMTQwMzQ0LCAwLjIxNzk5OSwgMC4yOTA0NiwgMC4zNDIxMjcsIDAuNDI0Nzg0LCAwLjQ5NzA5OCwgMC42MDAyODIiLCBcCi0gICAgICAgICAgIjAuMTUyMTI5LCAwLjIzMDMxOCwgMC4zMDI3ODcsIDAuMzU0NDQzLCAwLjQzNzA5NCwgMC41MDkzOCwgMC42MTI2OTQiLCBcCi0gICAgICAgICAgIjAuMTYxODM3LCAwLjIzOTUwOSwgMC4zMTE5NzEsIDAuMzYzNjM1LCAwLjQ0NjI2MywgMC41MTg2MDgsIDAuNjIxNzk3Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQwMjksIDAuMTgyNzg5LCAwLjMzMDQ3MywgMC40MzY4NTUsIDAuNjA2OTE1LCAwLjc1NzQxNiwgMC45NzEyMTgiLCBcCi0gICAgICAgICAgIjAuMDQwMTk2LCAwLjE4Mjc5MSwgMC4zMzA0NzUsIDAuNDM2ODQ5LCAwLjYwNjkwNCwgMC43NTc0MDMsIDAuOTcxMjExIiwgXAotICAgICAgICAgICIwLjA0MDMzLCAwLjE4Mjc4NCwgMC4zMzA0NTgsIDAuNDM2ODY0LCAwLjYwNjk4MywgMC43NTc0MjksIDAuOTcxMTkiLCBcCi0gICAgICAgICAgIjAuMDQwMjczLCAwLjE4Mjc3MiwgMC4zMzA0NzQsIDAuNDM2ODQ0LCAwLjYwNjU0LCAwLjc1NzM5OSwgMC45NzEyMDIiLCBcCi0gICAgICAgICAgIjAuMDQwMTY4LCAwLjE4Mjc3NiwgMC4zMzA0NjQsIDAuNDM2ODQ5LCAwLjYwNjkzNCwgMC43NTc0MjcsIDAuOTcxMTg1IiwgXAotICAgICAgICAgICIwLjA0MDE5MywgMC4xODI4MjYsIDAuMzMwNTkyLCAwLjQzNjgyMSwgMC42MDc2NTcsIDAuNzU2NTMxLCAwLjk2OTY0NSIsIFwKLSAgICAgICAgICAiMC4wNDA0MDgsIDAuMTgyODM5LCAwLjMzMDI3MywgMC40MzYzOTMsIDAuNjA2ODQ1LCAwLjc1NzI5OSwgMC45NzEwNzgiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDEwMzEsIDAuMTgwNjMxLCAwLjI1NDE5OSwgMC4zMDY2NDIsIDAuMzkwNTUzLCAwLjQ2Mzk2MywgMC41Njg3MDUiLCBcCi0gICAgICAgICAgIjAuMTExMjA2LCAwLjE5MDcxOSwgMC4yNjQzNDcsIDAuMzE2Nzk0LCAwLjQwMDY2LCAwLjQ3NDA0LCAwLjU3ODgyMSIsIFwKLSAgICAgICAgICAiMC4xMjM3MzUsIDAuMjAzMzE4LCAwLjI3NjkyMiwgMC4zMjk0MDUsIDAuNDEzMjYxLCAwLjQ4NjYyOCwgMC41OTE0MjkiLCBcCi0gICAgICAgICAgIjAuMTM0ODY1LCAwLjIxNDM3LCAwLjI4Nzk4NywgMC4zNDA0MzIsIDAuNDI0MzcsIDAuNDk3Njc5LCAwLjYwMjUyNyIsIFwKLSAgICAgICAgICAiMC4xNDQzNjIsIDAuMjIzODUsIDAuMjk3NDc1LCAwLjM0OTkxNywgMC40MzM4MTIsIDAuNTA3MjM3LCAwLjYxMTk4MyIsIFwKLSAgICAgICAgICAiMC4xNTczMTksIDAuMjM2ODc2LCAwLjMxMDUsIDAuMzYyOTQxLCAwLjQ0Njg2OCwgMC41MjAyNjUsIDAuNjI1MDA3IiwgXAotICAgICAgICAgICIwLjE2NzU0MywgMC4yNDcwODIsIDAuMzIwNzEsIDAuMzczMTUzLCAwLjQ1NzAzMSwgMC41MzAzOTUsIDAuNjM1MjE1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQwNjEyLCAwLjE4MjQ3OCwgMC4zMjg2OSwgMC40MzQ3MTQsIDAuNjA0NTAyLCAwLjc1MTUyNSwgMC45NjU2NDgiLCBcCi0gICAgICAgICAgIjAuMDQwNjYxLCAwLjE4MjUxOCwgMC4zMjkyMzMsIDAuNDM0Nzk0LCAwLjYwNDI5MSwgMC43NTI5OTEsIDAuOTYzOTQ3IiwgXAotICAgICAgICAgICIwLjA0MDYxNCwgMC4xODI1MTksIDAuMzI4NzA0LCAwLjQzNDg2MywgMC42MDMzNiwgMC43NTE2NTksIDAuOTY1NTQzIiwgXAotICAgICAgICAgICIwLjA0MDY0OCwgMC4xODI1MTUsIDAuMzI5MTQ0LCAwLjQzNDY3OSwgMC42MDI3OTksIDAuNzUyOTM2LCAwLjk2NTUxNiIsIFwKLSAgICAgICAgICAiMC4wNDA1MjEsIDAuMTgyNDQ2LCAwLjMyODY4NSwgMC40MzQ2ODgsIDAuNjAzMzQ1LCAwLjc1MTAxMiwgMC45NjU1ODgiLCBcCi0gICAgICAgICAgIjAuMDQwNjA1LCAwLjE4MjU5NCwgMC4zMjg3MTMsIDAuNDM0NzA5LCAwLjYwNDU1MywgMC43NTE1MTUsIDAuOTY1NjA1IiwgXAotICAgICAgICAgICIwLjA0MDYwMywgMC4xODI1MTMsIDAuMzI5MjYxLCAwLjQzNDc2NiwgMC42MDQzMDUsIDAuNzUyNTM2LCAwLjk2NTYzMyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3NjQ2OCwgMC4xNTkxODEsIDAuMjMxOTgzLCAwLjI4MzYyMywgMC4zNjYyMTgsIDAuNDM4NDg2LCAwLjU0MTcxMiIsIFwKLSAgICAgICAgICAiMC4wODUzNzEsIDAuMTY4MDAzLCAwLjI0MDgxMywgMC4yOTI0NDgsIDAuMzc1MDQ1LCAwLjQ0NzMwNSwgMC41NTA2OTEiLCBcCi0gICAgICAgICAgIjAuMDk2MzM4LCAwLjE3OTAxMSwgMC4yNTE4MTYsIDAuMzAzNDU3LCAwLjM4NjA1NiwgMC40NTgzMzcsIDAuNTYxNTYxIiwgXAotICAgICAgICAgICIwLjEwNzMyNCwgMC4xODk4NzcsIDAuMjYyNjYyLCAwLjMxNDMxNSwgMC4zOTY5MTksIDAuNDY5MTgzLCAwLjU3MjU2OCIsIFwKLSAgICAgICAgICAiMC4xMTgzNDQsIDAuMjAwODk5LCAwLjI3MzY5MiwgMC4zMjUzMzUsIDAuNDA3OTc5LCAwLjQ4MDIxNiwgMC41ODM2NDkiLCBcCi0gICAgICAgICAgIjAuMTM0Njk0LCAwLjIxNzM2MSwgMC4yOTAxMzUsIDAuMzQxNzk4LCAwLjQyNDQwMiwgMC40OTY2NDcsIDAuNjAwMDc1IiwgXAotICAgICAgICAgICIwLjE0NzI0MywgMC4yMzA0MDQsIDAuMzAzMTg2LCAwLjM1NDg2MiwgMC40Mzc0NTQsIDAuNTA5NzA1LCAwLjYxMzAyMyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0NjMyLCAwLjE4ODM3NSwgMC4zMzQxMTYsIDAuNDM5Mjk0LCAwLjYwOTM4OCwgMC43NTc3NDUsIDAuOTcyMzE2IiwgXAotICAgICAgICAgICIwLjA0NjM2NSwgMC4xODgzNSwgMC4zMzM4NDQsIDAuNDM5MjY0LCAwLjYwOTM2NywgMC43NTc3NTEsIDAuOTcwNDUyIiwgXAotICAgICAgICAgICIwLjA0NjIyMSwgMC4xODgzNSwgMC4zMzM4MTgsIDAuNDM5MjcsIDAuNjA5MzYzLCAwLjc1ODc1OSwgMC45NzEwMzUiLCBcCi0gICAgICAgICAgIjAuMDQ2MDE3LCAwLjE4ODMyNiwgMC4zMzM4MjQsIDAuNDM5MjYyLCAwLjYwOTM1MSwgMC43NTc3MzUsIDAuOTcwNDcyIiwgXAotICAgICAgICAgICIwLjA0NjI4MywgMC4xODgzNDEsIDAuMzMzODQzLCAwLjQzOTI2NCwgMC42MDk1ODUsIDAuNzU4NTkxLCAwLjk3MDQ5NyIsIFwKLSAgICAgICAgICAiMC4wNDc5ODUsIDAuMTg4NjkzLCAwLjMzNDAzNCwgMC40Mzk2OTMsIDAuNjA4NzAzLCAwLjc1ODUyNiwgMC45NzA1MzgiLCBcCi0gICAgICAgICAgIjAuMDUwMDczLCAwLjE4OTM2NSwgMC4zMzQ0NDcsIDAuNDM5ODkzLCAwLjYwOTUzNCwgMC43NTg1OSwgMC45NzA5MzYiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzEzNjIsIDAuMTUwODkyLCAwLjIyNDUwNSwgMC4yNzY5NDgsIDAuMzYwODg1LCAwLjQzNDIwMSwgMC41MzkwNDEiLCBcCi0gICAgICAgICAgIjAuMDgwNTEyLCAwLjE1OTk5NCwgMC4yMzM2MTgsIDAuMjg2MDYyLCAwLjM2OTk1NSwgMC40NDMzNjksIDAuNTQ4MTE2IiwgXAotICAgICAgICAgICIwLjA5MTk4NCwgMC4xNzE0OTYsIDAuMjQ1MTAzLCAwLjI5NzU2OCwgMC4zODE0NTUsIDAuNDU0ODU2LCAwLjU1OTYwNyIsIFwKLSAgICAgICAgICAiMC4xMDM0NjQsIDAuMTgyOTc4LCAwLjI1NjYwNywgMC4zMDkwNjMsIDAuMzkyOTQ0LCAwLjQ2NjM5NCwgMC41NzExMDUiLCBcCi0gICAgICAgICAgIjAuMTE0NDYsIDAuMTk0MTIyLCAwLjI2Nzc2OCwgMC4zMjAyMjIsIDAuNDA0MTE3LCAwLjQ3NzUyOCwgMC41ODIyNzgiLCBcCi0gICAgICAgICAgIjAuMTMwMTgzLCAwLjIxMDE4MywgMC4yODM3OTMsIDAuMzM2MjQ4LCAwLjQyMDEyNywgMC40OTM1NSwgMC41OTgzMTUiLCBcCi0gICAgICAgICAgIjAuMTQyMTY0LCAwLjIyMjYwNCwgMC4yOTYyOCwgMC4zNDg3MjIsIDAuNDMyNTYxLCAwLjUwNTk4NywgMC42MTA4MTkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDA0ODgsIDAuMTgyNTE2LCAwLjMyOTE0NSwgMC40MzQ2ODYsIDAuNjAyNjMxLCAwLjc1Mjk2MywgMC45NjU1NTgiLCBcCi0gICAgICAgICAgIjAuMDQwNTQ3LCAwLjE4MjQzOCwgMC4zMjg3MDQsIDAuNDM0NjgyLCAwLjYwMzQwNiwgMC43NTMwNDEsIDAuOTY1NTQ2IiwgXAotICAgICAgICAgICIwLjA0MDU4MSwgMC4xODI1MjksIDAuMzI4NzMyLCAwLjQzNDc1LCAwLjYwMzYxNiwgMC43NTMwNjQsIDAuOTY1NTA0IiwgXAotICAgICAgICAgICIwLjA0MDY2OSwgMC4xODI1NjIsIDAuMzI5MTMsIDAuNDM0Njg1LCAwLjYwNDA1NCwgMC43NTEyMzUsIDAuOTY1Mzk4IiwgXAotICAgICAgICAgICIwLjA0MTMwNSwgMC4xODI2MjMsIDAuMzI4NzQsIDAuNDM0NzI1LCAwLjYwMzM0NCwgMC43NTMwNjcsIDAuOTY1NTMyIiwgXAotICAgICAgICAgICIwLjA0MzI1LCAwLjE4MzIyNywgMC4zMjk0MzMsIDAuNDM0ODk2LCAwLjYwMzMxOSwgMC43NTIxNjUsIDAuOTY1NTgyIiwgXAotICAgICAgICAgICIwLjA0NTA2NSwgMC4xODM4NSwgMC4zMjk3NjYsIDAuNDM1MDg3LCAwLjYwNDQ0OSwgMC43NTIwMTMsIDAuOTY1NjQ0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg2ODY3LCAwLjE2NDQ4MiwgMC4yMzY5NDksIDAuMjg4NjE0LCAwLjM3MTI4NCwgMC40NDM1MjgsIDAuNTQ2NzUxIiwgXAotICAgICAgICAgICIwLjA5NjczNSwgMC4xNzQ0NDQsIDAuMjQ2ODM0LCAwLjI5ODUsIDAuMzgxMTYyLCAwLjQ1MzQ2NCwgMC41NTY2NTMiLCBcCi0gICAgICAgICAgIjAuMTA3NjkzLCAwLjE4NTMwNywgMC4yNTc3NzgsIDAuMzA5NDM5LCAwLjM5MjA3NiwgMC40NjQzNTcsIDAuNTY3NjQ5IiwgXAotICAgICAgICAgICIwLjExNjM0NiwgMC4xOTM5ODcsIDAuMjY2NDUsIDAuMzE4MTE2LCAwLjQwMDc4NSwgMC40NzMwNzcsIDAuNTc2MjY3IiwgXAotICAgICAgICAgICIwLjEyMzU1NywgMC4yMDEyNTUsIDAuMjczNzE3LCAwLjMyNTM4NCwgMC40MDc5NTIsIDAuNDgwMzQ5LCAwLjU4MzQ0NiIsIFwKLSAgICAgICAgICAiMC4xMzMxMjYsIDAuMjEwOTgsIDAuMjgzMzQyLCAwLjMzNTExOCwgMC40MTc3NTcsIDAuNDkwMDYsIDAuNTkzMjg0IiwgXAotICAgICAgICAgICIwLjE0MDMyNywgMC4yMTgxODYsIDAuMjkwNjk1LCAwLjM0MjM3OCwgMC40MjQ5ODYsIDAuNDk3MjU1LCAwLjYwMDQ5Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQwMzA0LCAwLjE4Mjc4NywgMC4zMzAxNzksIDAuNDM2ODYxLCAwLjYwNjY5NSwgMC43NTY0MDgsIDAuOTcxMjA0IiwgXAotICAgICAgICAgICIwLjA0MDI4NywgMC4xODI3ODIsIDAuMzMwNDgyLCAwLjQzNjg1MiwgMC42MDY5MDksIDAuNzU3NDA1LCAwLjk3MTIxIiwgXAotICAgICAgICAgICIwLjA0MDI4OSwgMC4xODI3ODMsIDAuMzMwNTU3LCAwLjQzNjg2NiwgMC42MDc3NDgsIDAuNzU3MzI5LCAwLjk3MTI5NiIsIFwKLSAgICAgICAgICAiMC4wNDAxMzksIDAuMTgyNzc5LCAwLjMzMDQ3MSwgMC40MzY4NDEsIDAuNjA2NTI4LCAwLjc1NzM5MSwgMC45NzExODkiLCBcCi0gICAgICAgICAgIjAuMDQwMzEyLCAwLjE4MjgzLCAwLjMzMDQ4NywgMC40MzY4NjUsIDAuNjA2OTE2LCAwLjc1NzM4OSwgMC45NzExNzciLCBcCi0gICAgICAgICAgIjAuMDQwMjY1LCAwLjE4MjkyMiwgMC4zMzA2NywgMC40MzY4ODYsIDAuNjA3MDc2LCAwLjc1NjE5OSwgMC45NzEwNjgiLCBcCi0gICAgICAgICAgIjAuMDQwMjEzLCAwLjE4Mjk4MiwgMC4zMzAzMTIsIDAuNDM2OTE3LCAwLjYwNzU4NywgMC43NTcxNDMsIDAuOTcwMTgzIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg2NzY5LCAwLjE3MTk4LCAwLjI0NjE4NCwgMC4yOTg2NjUsIDAuMzgyNTE5LCAwLjQ1NTg4OSwgMC41NjA3MDgiLCBcCi0gICAgICAgICAgIjAuMDk3MjYxLCAwLjE4MjQ3NSwgMC4yNTY2NywgMC4zMDkxNTIsIDAuMzkzMDAyLCAwLjQ2NjM5LCAwLjU3MTE0OCIsIFwKLSAgICAgICAgICAiMC4xMDk2NDIsIDAuMTk0OTA1LCAwLjI2OTA5MSwgMC4zMjE1NzEsIDAuNDA1NDIzLCAwLjQ3ODgzOCwgMC41ODM2MDYiLCBcCi0gICAgICAgICAgIjAuMTIwNTQ5LCAwLjIwNTc3MiwgMC4yNzk5NjIsIDAuMzMyNDQ1LCAwLjQxNjMxNCwgMC40ODk2NjYsIDAuNTk0NDkyIiwgXAotICAgICAgICAgICIwLjEyOTcyOCwgMC4yMTQ5NDEsIDAuMjg5MTIzLCAwLjM0MTYwNSwgMC40MjU0NzcsIDAuNDk4ODI4LCAwLjYwMzY1NCIsIFwKLSAgICAgICAgICAiMC4xNDE4MTUsIDAuMjI2OTIsIDAuMzAxMDkyLCAwLjM1MzU3OCwgMC40Mzc0MjksIDAuNTEwODA2LCAwLjYxNTYxNyIsIFwKLSAgICAgICAgICAiMC4xNTA5NSwgMC4yMzU4NDUsIDAuMzEwMDY2LCAwLjM2MjU2NiwgMC40NDY0NTIsIDAuNTE5ODE5LCAwLjYyNDY1NCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0NzkxNywgMC4xODkyMDksIDAuMzMzMjUxLCAwLjQzNzY0NywgMC42MDU4NTYsIDAuNzU0OTc0LCAwLjk2NzIyMSIsIFwKLSAgICAgICAgICAiMC4wNDc5MTMsIDAuMTg5MjE0LCAwLjMzMzI2NiwgMC40Mzc0OCwgMC42MDY3ODksIDAuNzUzMjksIDAuOTY2OTA2IiwgXAotICAgICAgICAgICIwLjA0Nzc3OCwgMC4xODkxOTcsIDAuMzMzMjU5LCAwLjQzNzkzOSwgMC42MDY3NDYsIDAuNzU1MDY1LCAwLjk2NTQ1NiIsIFwKLSAgICAgICAgICAiMC4wNDc2NTYsIDAuMTg5MTcyLCAwLjMzMzI2NywgMC40MzgyNDgsIDAuNjA2NzU5LCAwLjc1NDc4OSwgMC45NjU3MzIiLCBcCi0gICAgICAgICAgIjAuMDQ3Njg4LCAwLjE4OTEzNSwgMC4zMzMyNjcsIDAuNDM3ODI1LCAwLjYwNjA0NSwgMC43NTQ4MTEsIDAuOTY1NzUyIiwgXAotICAgICAgICAgICIwLjA0NzM3OSwgMC4xODkwOTksIDAuMzMzMjIyLCAwLjQzNzQ5MywgMC42MDY3NjIsIDAuNzU0ODQzLCAwLjk2NTM4NyIsIFwKLSAgICAgICAgICAiMC4wNDc0MDIsIDAuMTg4OTM3LCAwLjMzMzE0MSwgMC40MzgyMTUsIDAuNjA2NzU2LCAwLjc1MzYyLCAwLjk2NDU5MSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA3NDc1LCAwLjAwNzY2MiwgMC4wMDc2OTYsIDAuMDA3NzA2LCAwLjAwNzcxNSwgMC4wMDc3MiwgMC4wMDc3MjUiLCBcCi0gICAgICAgICAgIjAuMDA3NDUsIDAuMDA3NjM2LCAwLjAwNzY3LCAwLjAwNzY4MiwgMC4wMDc2OTEsIDAuMDA3Njk3LCAwLjAwNzcwMiIsIFwKLSAgICAgICAgICAiMC4wMDc0MzksIDAuMDA3NjI2LCAwLjAwNzY2LCAwLjAwNzY3LCAwLjAwNzY4MSwgMC4wMDc2ODYsIDAuMDA3NjkzIiwgXAotICAgICAgICAgICIwLjAwNzQzOSwgMC4wMDc2MjcsIDAuMDA3NjYzLCAwLjAwNzY3MiwgMC4wMDc2ODIsIDAuMDA3Njg3LCAwLjAwNzY5NSIsIFwKLSAgICAgICAgICAiMC4wMDc0NDUsIDAuMDA3NjMzLCAwLjAwNzY2OCwgMC4wMDc2OCwgMC4wMDc2ODksIDAuMDA3Njk0LCAwLjAwNzciLCBcCi0gICAgICAgICAgIjAuMDA3NDYzLCAwLjAwNzYzNiwgMC4wMDc2NzEsIDAuMDA3NjgzLCAwLjAwNzY5MywgMC4wMDc2OTksIDAuMDA3NzAzIiwgXAotICAgICAgICAgICIwLjAwNzQ3OCwgMC4wMDc2NTMsIDAuMDA3Njg4LCAwLjAwNzY5OSwgMC4wMDc3MTEsIDAuMDA3NzE0LCAwLjAwNzcxNiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA3ODgzLCAwLjAwODA1NSwgMC4wMDgxLCAwLjAwODExNSwgMC4wMDgxMjksIDAuMDA4MTM2LCAwLjAwODE0MyIsIFwKLSAgICAgICAgICAiMC4wMDc4NzMsIDAuMDA4MDQyLCAwLjAwODA4OCwgMC4wMDgxMDMsIDAuMDA4MTE3LCAwLjAwODEyNSwgMC4wMDgxMzIiLCBcCi0gICAgICAgICAgIjAuMDA3ODY1LCAwLjAwODAyOSwgMC4wMDgwNzgsIDAuMDA4MDk0LCAwLjAwODExLCAwLjAwODExOSwgMC4wMDgxMjYiLCBcCi0gICAgICAgICAgIjAuMDA3ODYzLCAwLjAwODAxOSwgMC4wMDgwNzEsIDAuMDA4MDg5LCAwLjAwODEwNywgMC4wMDgxMTYsIDAuMDA4MTI1IiwgXAotICAgICAgICAgICIwLjAwNzg2NCwgMC4wMDgwMSwgMC4wMDgwNjUsIDAuMDA4MDg2LCAwLjAwODEwNSwgMC4wMDgxMTYsIDAuMDA4MTI2IiwgXAotICAgICAgICAgICIwLjAwNzg4NCwgMC4wMDgwMDcsIDAuMDA4MDY0LCAwLjAwODA4NiwgMC4wMDgxMDcsIDAuMDA4MTE5LCAwLjAwODEzIiwgXAotICAgICAgICAgICIwLjAwNzkxLCAwLjAwODAxMywgMC4wMDgwNzEsIDAuMDA4MDk0LCAwLjAwODExNywgMC4wMDgxMywgMC4wMDgxNDIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNzA3NywgMC4wMDcyNTcsIDAuMDA3MjkyLCAwLjAwNzMwNCwgMC4wMDczMTUsIDAuMDA3MzIsIDAuMDA3MzI2IiwgXAotICAgICAgICAgICIwLjAwNzA3MSwgMC4wMDcyNTIsIDAuMDA3Mjg5LCAwLjAwNzMwMiwgMC4wMDczMDcsIDAuMDA3MzE1LCAwLjAwNzMyNCIsIFwKLSAgICAgICAgICAiMC4wMDcwNzYsIDAuMDA3MjU4LCAwLjAwNzI5MiwgMC4wMDczMDYsIDAuMDA3MzE0LCAwLjAwNzMyLCAwLjAwNzMyNSIsIFwKLSAgICAgICAgICAiMC4wMDcwODUsIDAuMDA3MjY5LCAwLjAwNzMwMywgMC4wMDczMTUsIDAuMDA3MzI1LCAwLjAwNzMzLCAwLjAwNzMzNiIsIFwKLSAgICAgICAgICAiMC4wMDcwOTMsIDAuMDA3MjgyLCAwLjAwNzMxNSwgMC4wMDczMjcsIDAuMDA3MzMyLCAwLjAwNzM0MiwgMC4wMDczNDMiLCBcCi0gICAgICAgICAgIjAuMDA3MTE5LCAwLjAwNzMwNSwgMC4wMDczMzIsIDAuMDA3MzU0LCAwLjAwNzM2MywgMC4wMDczNjUsIDAuMDA3MzcxIiwgXAotICAgICAgICAgICIwLjAwNzEzOSwgMC4wMDczMjYsIDAuMDA3MzUzLCAwLjAwNzM2NywgMC4wMDczNzgsIDAuMDA3MzkxLCAwLjAwNzM4MSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1OTQ1LCAwLjAwNjE2MSwgMC4wMDYyMDksIDAuMDA2MjI0LCAwLjAwNjIzOSwgMC4wMDYyNDYsIDAuMDA2MjUzIiwgXAotICAgICAgICAgICIwLjAwNiwgMC4wMDYyMDksIDAuMDA2MjU2LCAwLjAwNjI3MiwgMC4wMDYyODcsIDAuMDA2Mjk1LCAwLjAwNjMwMiIsIFwKLSAgICAgICAgICAiMC4wMDYwOTgsIDAuMDA2Mjk3LCAwLjAwNjM0NSwgMC4wMDYzNjEsIDAuMDA2Mzc2LCAwLjAwNjM4NCwgMC4wMDYzOTEiLCBcCi0gICAgICAgICAgIjAuMDA2MTgxLCAwLjAwNjM3NCwgMC4wMDY0MjIsIDAuMDA2NDM5LCAwLjAwNjQ1NSwgMC4wMDY0NjMsIDAuMDA2NDcxIiwgXAotICAgICAgICAgICIwLjAwNjIxMiwgMC4wMDY0MDQsIDAuMDA2NDUzLCAwLjAwNjQ3LCAwLjAwNjQ4NiwgMC4wMDY0OTUsIDAuMDA2NTAzIiwgXAotICAgICAgICAgICIwLjAwNjMyMiwgMC4wMDY1MDYsIDAuMDA2NTU1LCAwLjAwNjU3MiwgMC4wMDY1ODgsIDAuMDA2NTk3LCAwLjAwNjYwNSIsIFwKLSAgICAgICAgICAiMC4wMDY0MTEsIDAuMDA2NTkxLCAwLjAwNjYzOCwgMC4wMDY2NTQsIDAuMDA2NjYxLCAwLjAwNjY3LCAwLjAwNjY3OSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IFhOT1IyWEwgKgotICogLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoWE5PUjJYTCkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjEzMTcxOwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA1ODU0MTM7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNTg1MTg3OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDU4NTQxMzsKLSAgfQotICBwaW4oQikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxMTU4Mjc7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxMTU3Njg7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxMTU4Mjc7Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4xNTI2NTsKLSAgICBmdW5jdGlvbiA6ICIoIShBXkIpKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTI0NzksIDAuMTM4OTEsIDAuMjY2MDA1LCAwLjQ3Nzg2LCAwLjY5MDA5LCAxLjE4NDQyLCAxLjQ2NjU1IiwgXAotICAgICAgICAgICIwLjEzNDg0MSwgMC4xNDg5NjcsIDAuMjc2MTM0LCAwLjQ4ODA3MSwgMC42OTk5MjUsIDEuMTk0MiwgMS40Nzc1NyIsIFwKLSAgICAgICAgICAiMC4xNDc1NzIsIDAuMTYxNzAxLCAwLjI4ODgxOCwgMC41MDA2ODEsIDAuNzEyODY3LCAxLjIwNjg5LCAxLjQ4OTM1IiwgXAotICAgICAgICAgICIwLjE1OTYzMiwgMC4xNzM3NjEsIDAuMzAwODc5LCAwLjUxMjc2OSwgMC43MjQ4MjIsIDEuMjE4ODQsIDEuNTAyMTciLCBcCi0gICAgICAgICAgIjAuMTcwODA5LCAwLjE4NDk0NiwgMC4zMTIwNDUsIDAuNTIzOTI3LCAwLjczNTc4OCwgMS4yMzExMiwgMS41MTI1OCIsIFwKLSAgICAgICAgICAiMC4xODY3NjcsIDAuMjAwOTA5LCAwLjMyODAyOCwgMC41NDAwMDYsIDAuNzUxOTExLCAxLjI0NjE1LCAxLjUyOTQyIiwgXAotICAgICAgICAgICIwLjE5OTE3NSwgMC4yMTMzMDQsIDAuMzQwMzk2LCAwLjU1MjQ2NSwgMC43NjQzMjUsIDEuMjU5MDgsIDEuNTQwOTgiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTU1MzYyLCAwLjE4MzgzNiwgMC40NDQwNzQsIDAuODc5NTg4LCAxLjMxMjcyLCAyLjMyNzEsIDIuOTEwOTQiLCBcCi0gICAgICAgICAgIjAuMTU1NDAyLCAwLjE4MzgyNSwgMC40NDMyMTcsIDAuODc4MzUzLCAxLjMxMjc1LCAyLjMyNjMyLCAyLjkwNjY3IiwgXAotICAgICAgICAgICIwLjE1NTQxOCwgMC4xODM5NDIsIDAuNDQzMjEyLCAwLjg3NzY3MSwgMS4zMTI3LCAyLjMyNjQ0LCAyLjkxMTczIiwgXAotICAgICAgICAgICIwLjE1NTQ2MiwgMC4xODQxMDYsIDAuNDQzMTgsIDAuODc3NjgxLCAxLjMxMjYyLCAyLjMzMTc3LCAyLjkwODk0IiwgXAotICAgICAgICAgICIwLjE1NTY5MSwgMC4xODQwNCwgMC40NDM0ODksIDAuODc5NDU0LCAxLjMxMjM3LCAyLjMyNjc5LCAyLjkxMTY4IiwgXAotICAgICAgICAgICIwLjE1NjE3MSwgMC4xODQ1MDMsIDAuNDQzMjU1LCAwLjg3Nzg5MiwgMS4zMTI2OCwgMi4zMjY0LCAyLjkwNjk5IiwgXAotICAgICAgICAgICIwLjE1Njc5MywgMC4xODUwOTEsIDAuNDQzNjY5LCAwLjg3Nzg2NSwgMS4zMTI2LCAyLjMyODY5LCAyLjkwNjExIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEyNjk2NiwgMC4xNDA4MzksIDAuMjY1MzE3LCAwLjQ3MjkxNywgMC42ODAzNjYsIDEuMTY0MywgMS40NDA5NiIsIFwKLSAgICAgICAgICAiMC4xMzY2ODEsIDAuMTUwNTQyLCAwLjI3NTAzNSwgMC40ODI2NjksIDAuNjkwMzA3LCAxLjE3NDIsIDEuNDUxNzIiLCBcCi0gICAgICAgICAgIjAuMTQ4ODI1LCAwLjE2MjY5MywgMC4yODcxOTYsIDAuNDk0ODEzLCAwLjcwMjE1NywgMS4xODYyMywgMS40NjMyMyIsIFwKLSAgICAgICAgICAiMC4xNTk5OTQsIDAuMTczODU1LCAwLjI5ODM5NywgMC41MDYwMDksIDAuNzEzNjQ3LCAxLjE5NzU3LCAxLjQ3NTE2IiwgXAotICAgICAgICAgICIwLjE3MDIwNiwgMC4xODQwNzIsIDAuMzA4NTgyLCAwLjUxNjIwNSwgMC43MjM3NzcsIDEuMjA3ODIsIDEuNDg0MjUiLCBcCi0gICAgICAgICAgIjAuMTg0NzMyLCAwLjE5ODU5MSwgMC4zMjMxMTcsIDAuNTMwNjI5LCAwLjczODExOCwgMS4yMjI0LCAxLjUwMDAyIiwgXAotICAgICAgICAgICIwLjE5NTkzMiwgMC4yMDk4MjYsIDAuMzM0MzQ2LCAwLjU0MTg4NCwgMC43NDkzMjEsIDEuMjMzNDMsIDEuNTEwMTQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTQ5NzgsIDAuMTc2OTM0LCAwLjQyNDg0LCAwLjg0MDMyMSwgMS4yNTcyNSwgMi4yMjU2LCAyLjc4ODYzIiwgXAotICAgICAgICAgICIwLjE0OTgxNiwgMC4xNzcwNDUsIDAuNDI1NTA0LCAwLjg0MDE1MSwgMS4yNTU2LCAyLjIyNzUsIDIuNzgzMTMiLCBcCi0gICAgICAgICAgIjAuMTQ5Nzc5LCAwLjE3Njk0LCAwLjQyNDc3NywgMC44NDAxODgsIDEuMjU1NDUsIDIuMjI1NDEsIDIuNzgzODMiLCBcCi0gICAgICAgICAgIjAuMTQ5ODMsIDAuMTc2OTYxLCAwLjQyNDIzNywgMC44NDAwNjUsIDEuMjU1NiwgMi4yMjc4MSwgMi43ODM4MSIsIFwKLSAgICAgICAgICAiMC4xNTAwNDYsIDAuMTc3MjUxLCAwLjQyNDcwMiwgMC44NDAyMjksIDEuMjU1ODgsIDIuMjMxNjMsIDIuNzc5NzYiLCBcCi0gICAgICAgICAgIjAuMTUwNjI0LCAwLjE3NzcyNywgMC40MjU1OTgsIDAuODQwNzEyLCAxLjI1NTI2LCAyLjIyNzIxLCAyLjc4MTU2IiwgXAotICAgICAgICAgICIwLjE1MTMyLCAwLjE3ODM0NCwgMC40MjU3MjMsIDAuODM5NDc2LCAxLjI1ODgyLCAyLjIyNTMyLCAyLjc4MTQ1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEzOTMzMiwgMC4xNTM0OTUsIDAuMjgwODIyLCAwLjQ5MjcwNywgMC43MDQ1NTQsIDEuMTk4ODUsIDEuNDgxMTUiLCBcCi0gICAgICAgICAgIjAuMTQ5MDY2LCAwLjE2MzIyMywgMC4yOTA1NzEsIDAuNTAyNDU3LCAwLjcxNDMxNywgMS4yMDg1MywgMS40OTA5NiIsIFwKLSAgICAgICAgICAiMC4xNTk4NzUsIDAuMTc0MDUsIDAuMzAxMzQ5LCAwLjUxMzI5OSwgMC43MjUxMDMsIDEuMjE5MzgsIDEuNTAxNjkiLCBcCi0gICAgICAgICAgIjAuMTY4NzM5LCAwLjE4MjkyLCAwLjMxMDI3NCwgMC41MjIxNDUsIDAuNzMzOTg0LCAxLjIyODIsIDEuNTEwNjEiLCBcCi0gICAgICAgICAgIjAuMTc2MDE4LCAwLjE5MDEzMSwgMC4zMTc1NDIsIDAuNTI5Mzk4LCAwLjc0MTIxNywgMS4yMzU1MSwgMS41MTc4NCIsIFwKLSAgICAgICAgICAiMC4xODU4NjYsIDAuMjAwMDUxLCAwLjMyNzM0MSwgMC41MzkyNTEsIDAuNzUxMTUsIDEuMjQ1MywgMS41Mjc2NSIsIFwKLSAgICAgICAgICAiMC4xOTMxOTIsIDAuMjA3Mzc5LCAwLjMzNDcwNiwgMC41NDY2MTQsIDAuNzU4NDYzLCAxLjI1MjYzLCAxLjUzNTAzIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE1NTM4LCAwLjE4Mzg4LCAwLjQ0NDM4OSwgMC44Nzg2MDgsIDEuMzEzNTQsIDIuMzI3NTQsIDIuOTA4NTQiLCBcCi0gICAgICAgICAgIjAuMTU1MzczLCAwLjE4Mzg3MiwgMC40NDQ0MzIsIDAuODc5NjQ3LCAxLjMxMjcxLCAyLjMyODIyLCAyLjkwNjM2IiwgXAotICAgICAgICAgICIwLjE1NTM3OSwgMC4xODM3NSwgMC40NDQzNDcsIDAuODc5Njc3LCAxLjMxMzQ5LCAyLjMzMTE0LCAyLjkwODM1IiwgXAotICAgICAgICAgICIwLjE1NTE2OSwgMC4xODM4NTgsIDAuNDQ0NDUsIDAuODc4NTc4LCAxLjMxNTAyLCAyLjMyODcsIDIuOTA4MSIsIFwKLSAgICAgICAgICAiMC4xNTUxNzIsIDAuMTgzODg5LCAwLjQ0NDM3MSwgMC44Nzg1MzgsIDEuMzEzNDUsIDIuMzI4MjIsIDIuOTA4MzMiLCBcCi0gICAgICAgICAgIjAuMTU1Mjg3LCAwLjE4NDA2NCwgMC40NDM0NTgsIDAuODc4NTg2LCAxLjMxMzAzLCAyLjMyODMxLCAyLjkwODExIiwgXAotICAgICAgICAgICIwLjE1NTI1NSwgMC4xODM4NzUsIDAuNDQ0MzE0LCAwLjg3OTUxMywgMS4zMTI1OCwgMi4zMjg1OCwgMi45MDgxOCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMzk3MzEsIDAuMTUzNjMxLCAwLjI3ODI3NSwgMC40ODU3NDMsIDAuNjkzMTc2LCAxLjE3NzEzLCAxLjQ1MzY4IiwgXAotICAgICAgICAgICIwLjE0OTkxLCAwLjE2Mzc5NywgMC4yODg0MzcsIDAuNDk1OTA4LCAwLjcwMzMzNiwgMS4xODczNSwgMS40NjM4MiIsIFwKLSAgICAgICAgICAiMC4xNjE0NzUsIDAuMTc1MzU4LCAwLjMwMDAwOCwgMC41MDc0NzcsIDAuNzE0OTM3LCAxLjE5ODg1LCAxLjQ3NTQiLCBcCi0gICAgICAgICAgIjAuMTcwODEsIDAuMTg0NzA2LCAwLjMwOTM0OSwgMC41MTY4MjEsIDAuNzI0MjQyLCAxLjIwODIsIDEuNDg0NzQiLCBcCi0gICAgICAgICAgIjAuMTc4OTY0LCAwLjE5Mjg1MywgMC4zMTc0OCwgMC41MjQ5NzMsIDAuNzMyNDA0LCAxLjIxNjQyLCAxLjQ5Mjg4IiwgXAotICAgICAgICAgICIwLjE5MDAzMiwgMC4yMDM5MjcsIDAuMzI4NTkzLCAwLjUzNjA0LCAwLjc0MzQ2NiwgMS4yMjc0MywgMS41MDM5NyIsIFwKLSAgICAgICAgICAiMC4xOTg1MzksIDAuMjEyNDI3LCAwLjMzNzA2MSwgMC41NDQ0MiwgMC43NTE5ODYsIDEuMjM1OTQsIDEuNTEyNTciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTQ5Mjg5LCAwLjE3NjcwMywgMC40MjQ1NDcsIDAuODQxNjk4LCAxLjI1NjkyLCAyLjIyODE4LCAyLjc4MzYyIiwgXAotICAgICAgICAgICIwLjE0OTIxNiwgMC4xNzY3MTksIDAuNDI0NTMsIDAuODQyMTY0LCAxLjI1Njc2LCAyLjIzMjI5LCAyLjc4NDY2IiwgXAotICAgICAgICAgICIwLjE0OTI4NSwgMC4xNzY2MzksIDAuNDI0OTc3LCAwLjg0MjA5LCAxLjI1OTE3LCAyLjIzMTc2LCAyLjc4Mjc0IiwgXAotICAgICAgICAgICIwLjE0OTI4MiwgMC4xNzY0NjcsIDAuNDI0NDYzLCAwLjg0MTU4MiwgMS4yNTg5NCwgMi4yMjkxMiwgMi43ODMxOCIsIFwKLSAgICAgICAgICAiMC4xNDkyOTYsIDAuMTc2NDk3LCAwLjQyNTUwMiwgMC44NDIxMzIsIDEuMjU2NzksIDIuMjMyMjMsIDIuNzg1MTYiLCBcCi0gICAgICAgICAgIjAuMTQ5MzY2LCAwLjE3NjY3MSwgMC40MjQ0MjYsIDAuODQxNjE3LCAxLjI1ODk1LCAyLjIyNzg5LCAyLjc4MzIzIiwgXAotICAgICAgICAgICIwLjE0OTQ4OCwgMC4xNzY4MTEsIDAuNDI1MjA3LCAwLjg0MjE0NSwgMS4yNTY4NCwgMi4yMjgxOCwgMi43ODg0NyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDkwNDcsIDAuMTIzMTg5LCAwLjI1MDM0OCwgMC40NjIyNDEsIDAuNjc0MjM1LCAxLjE2ODUxLCAxLjQ1MDk4IiwgXAotICAgICAgICAgICIwLjExODM3MiwgMC4xMzI0OTksIDAuMjU5NjE2LCAwLjQ3MTUwNCwgMC42ODM1NTcsIDEuMTc3NjQsIDEuNDYwODQiLCBcCi0gICAgICAgICAgIjAuMTMwMDY5LCAwLjE0NDIxMiwgMC4yNzEzOTYsIDAuNDgzMjA1LCAwLjY5NTI4MSwgMS4xODk2NCwgMS40NzE4NyIsIFwKLSAgICAgICAgICAiMC4xNDA2MjIsIDAuMTU0NzYzLCAwLjI4MTkxOSwgMC40OTM3NjUsIDAuNzA1NjE0LCAxLjIwMDQ2LCAxLjQ4MjUiLCBcCi0gICAgICAgICAgIjAuMTQ5ODQ4LCAwLjE2NDAwMSwgMC4yOTExMzIsIDAuNTAzMDM5LCAwLjcxNTIyMSwgMS4yMDk3NiwgMS40OTE5MiIsIFwKLSAgICAgICAgICAiMC4xNjI2OTMsIDAuMTc2ODM0LCAwLjMwMzk2MSwgMC41MTU5MjcsIDAuNzI3ODE4LCAxLjIyMjU5LCAxLjUwNDU1IiwgXAotICAgICAgICAgICIwLjE3MjI2MSwgMC4xODY0NDIsIDAuMzEzNTQ2LCAwLjUyNTQxOSwgMC43MzcyODcsIDEuMjMyMjIsIDEuNTE0MSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNTUzMjIsIDAuMTgzNzA4LCAwLjQ0MzE4NiwgMC44NzgzMDIsIDEuMzEyNjUsIDIuMzI1OTcsIDIuOTExMTYiLCBcCi0gICAgICAgICAgIjAuMTU1MjY0LCAwLjE4Mzk2NiwgMC40NDQwNjIsIDAuODc5NjMsIDEuMzEyNjcsIDIuMzI2NjQsIDIuOTA4ODEiLCBcCi0gICAgICAgICAgIjAuMTU1Mzc0LCAwLjE4Mzc1MSwgMC40NDMxOCwgMC44Nzk0MiwgMS4zMTI2MiwgMi4zMzA1MSwgMi45MTA4MyIsIFwKLSAgICAgICAgICAiMC4xNTUzNTcsIDAuMTg0MTA2LCAwLjQ0MzI5OSwgMC44Nzk0MjksIDEuMzE0MzUsIDIuMzI4NjUsIDIuOTA2MDMiLCBcCi0gICAgICAgICAgIjAuMTU1NzM2LCAwLjE4NDM2NiwgMC40NDM0NTcsIDAuODc3NjgzLCAxLjMxMjcxLCAyLjMyNzI1LCAyLjkxMTAxIiwgXAotICAgICAgICAgICIwLjE1NjI0MiwgMC4xODQ3MDQsIDAuNDQ0MjQ5LCAwLjg3Nzg4NSwgMS4zMTMyNywgMi4zMjg1OSwgMi45MDYwOCIsIFwKLSAgICAgICAgICAiMC4xNTY3ODQsIDAuMTg1MTIzLCAwLjQ0MzgxOSwgMC44Nzk0NTMsIDEuMzEyMzUsIDIuMzI3MjcsIDIuOTA2MjYiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTE0Nzk3LCAwLjEyODY4MiwgMC4yNTMzMTgsIDAuNDYwNzg4LCAwLjY2ODMwMSwgMS4xNTIyNiwgMS40Mjg2OSIsIFwKLSAgICAgICAgICAiMC4xMjM2MzUsIDAuMTM3NTE5LCAwLjI2MjE2NiwgMC40Njk2NCwgMC42NzcwOTUsIDEuMTYxMDcsIDEuNDM3NTQiLCBcCi0gICAgICAgICAgIjAuMTM0ODgxLCAwLjE0ODc3MywgMC4yNzM0MzgsIDAuNDgwOTIsIDAuNjg4MzM2LCAxLjE3MjI5LCAxLjQ0ODgxIiwgXAotICAgICAgICAgICIwLjE0NTM4NSwgMC4xNTkyNzQsIDAuMjgzOTM4LCAwLjQ5MTQzMSwgMC42OTg5MDksIDEuMTgyODIsIDEuNDU5MzQiLCBcCi0gICAgICAgICAgIjAuMTU0NTA4LCAwLjE2ODM5MSwgMC4yOTMwNjgsIDAuNTAwNTY4LCAwLjcwODAyMiwgMS4xOTE5MiwgMS40Njg0OCIsIFwKLSAgICAgICAgICAiMC4xNjcxODEsIDAuMTgxMDg0LCAwLjMwNTY3NiwgMC41MTMyMjEsIDAuNzIwNTgsIDEuMjA0NjIsIDEuNDgxMTciLCBcCi0gICAgICAgICAgIjAuMTc2NTYxLCAwLjE5MDQ3OSwgMC4zMTUyMDQsIDAuNTIyNzM2LCAwLjczMDE2NCwgMS4yMTQwOCwgMS40OTA2OCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNDkzNjQsIDAuMTc2ODMsIDAuNDI1MDE5LCAwLjg0MjA5OSwgMS4yNTg2OSwgMi4yMzIwNCwgMi43ODU1NyIsIFwKLSAgICAgICAgICAiMC4xNDkzODIsIDAuMTc2NzE5LCAwLjQyNTAwOSwgMC44NDIxMDUsIDEuMjU3LCAyLjIyODYyLCAyLjc4NTY4IiwgXAotICAgICAgICAgICIwLjE0OTQxNSwgMC4xNzY4MDIsIDAuNDI1NDIyLCAwLjg0MjA0MywgMS4yNTgxOCwgMi4yMjk0MywgMi43ODc1NSIsIFwKLSAgICAgICAgICAiMC4xNDk2NTgsIDAuMTc2OTY5LCAwLjQyNDg4OSwgMC44NDIxMywgMS4yNTg3MywgMi4yMjc4LCAyLjc4NjM0IiwgXAotICAgICAgICAgICIwLjE1MDA0NywgMC4xNzcyMDQsIDAuNDI0OTIzLCAwLjg0MjEzOSwgMS4yNTc1OCwgMi4yMzE1OSwgMi43ODQzMyIsIFwKLSAgICAgICAgICAiMC4xNTA2NTYsIDAuMTc3NzAyLCAwLjQyNTc1OCwgMC44NDAyOSwgMS4yNTg5MiwgMi4yMzA1OSwgMi43ODc2OCIsIFwKLSAgICAgICAgICAiMC4xNTExOTksIDAuMTc4MTI4LCAwLjQyNjEwMiwgMC44NDE3MzUsIDEuMjU2MDMsIDIuMjMwNjksIDIuNzgwNjgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTMzNDY3LCAwLjE0NzYyMywgMC4yNzQ5NDUsIDAuNDg2OTA2LCAwLjY5ODcwNCwgMS4xOTI5MSwgMS40NzUyNyIsIFwKLSAgICAgICAgICAiMC4xNDMzMSwgMC4xNTc0ODUsIDAuMjg0ODE5LCAwLjQ5NjY5NiwgMC43MDg1NDUsIDEuMjAyODUsIDEuNDg1MTQiLCBcCi0gICAgICAgICAgIjAuMTUzODg1LCAwLjE2ODA2MSwgMC4yOTU0MTIsIDAuNTA3MjgxLCAwLjcxOTEzMywgMS4yMTMzNCwgMS40OTU2OSIsIFwKLSAgICAgICAgICAiMC4xNjI0NzUsIDAuMTc2NjUsIDAuMzAzOTgxLCAwLjUxNTg1OCwgMC43Mjc2OTYsIDEuMjIxOTMsIDEuNTA0MyIsIFwKLSAgICAgICAgICAiMC4xNjkyMjgsIDAuMTgzNDA4LCAwLjMxMDczNCwgMC41MjI2MTcsIDAuNzM0NTEyLCAxLjIyODY2LCAxLjUxMTA2IiwgXAotICAgICAgICAgICIwLjE3ODU2NiwgMC4xOTI4OTQsIDAuMzIwMjU3LCAwLjUzMjA0MywgMC43NDM5NjQsIDEuMjM4MywgMS41MjA0OCIsIFwKLSAgICAgICAgICAiMC4xODU2NTcsIDAuMTk5ODk3LCAwLjMyNzM0NywgMC41MzkzNzMsIDAuNzUxMjE0LCAxLjI0NTM0LCAxLjUyNzg4Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE1NTM3OCwgMC4xODM4OTEsIDAuNDQzODY5LCAwLjg3OTcyOCwgMS4zMTMzNCwgMi4zMjgyOCwgMi45MDgxMyIsIFwKLSAgICAgICAgICAiMC4xNTUxNjUsIDAuMTgzODg0LCAwLjQ0MzY2NywgMC44Nzg2MzksIDEuMzE0OTcsIDIuMzI3NSwgMi45MDg1OCIsIFwKLSAgICAgICAgICAiMC4xNTUyNDgsIDAuMTgzODY3LCAwLjQ0NDQyNSwgMC44Nzg2MywgMS4zMTM0LCAyLjMyODUxLCAyLjkxMTUyIiwgXAotICAgICAgICAgICIwLjE1NTIxNCwgMC4xODM5MDIsIDAuNDQzNjUzLCAwLjg3ODU5NiwgMS4zMTM2NCwgMi4zMzA5NywgMi45MDg0OCIsIFwKLSAgICAgICAgICAiMC4xNTU1NDcsIDAuMTg0MDUzLCAwLjQ0MzU5MiwgMC44Nzk0ODYsIDEuMzEzMDMsIDIuMzI5OTcsIDIuOTA4MSIsIFwKLSAgICAgICAgICAiMC4xNTU2NDMsIDAuMTg0MjQ5LCAwLjQ0MzkxMiwgMC44Nzg3NzYsIDEuMzE0OTQsIDIuMzMwNjQsIDIuOTExMTciLCBcCi0gICAgICAgICAgIjAuMTU1NjU0LCAwLjE4NDMwNiwgMC40NDQxMTcsIDAuODc5NDg0LCAxLjMxNDc1LCAyLjMyODE1LCAyLjkxMTMzIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExOTQ0NywgMC4xMzMzMjgsIDAuMjU3ODM4LCAwLjQ2NTMwMSwgMC42NzI5ODcsIDEuMTU2OTQsIDEuNDMzNTUiLCBcCi0gICAgICAgICAgIjAuMTMwMDgsIDAuMTQzOTU3LCAwLjI2ODQ2NCwgMC40NzYxMDEsIDAuNjgzNDc2LCAxLjE2NzM3LCAxLjQ0NDAxIiwgXAotICAgICAgICAgICIwLjE0Mjk5LCAwLjE1Njg2NCwgMC4yODEzNjksIDAuNDg5MDQxLCAwLjY5NjY5MiwgMS4xODA1LCAxLjQ1NzA4IiwgXAotICAgICAgICAgICIwLjE1MzI4LCAwLjE2NzE1MiwgMC4yOTE2NTYsIDAuNDk5MzM1LCAwLjcwNjk4NywgMS4xOTA3OSwgMS40NjcxOCIsIFwKLSAgICAgICAgICAiMC4xNjE5OTgsIDAuMTc1ODcxLCAwLjMwMDM4MywgMC41MDc4NiwgMC43MTU3NDQsIDEuMTk5NDIsIDEuNDc2MDUiLCBcCi0gICAgICAgICAgIjAuMTczNDY5LCAwLjE4NzM1LCAwLjMxMTg0NywgMC41MTk0NSwgMC43MjY5OTQsIDEuMjEwOTQsIDEuNDg3NDEiLCBcCi0gICAgICAgICAgIjAuMTgyMTAyLCAwLjE5NTk0OSwgMC4zMjA0NjcsIDAuNTI3OTYxLCAwLjczNTUxMSwgMS4yMTk1MSwgMS40OTY4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE0OTY5MiwgMC4xNzY4NTgsIDAuNDI0ODc0LCAwLjg0MTYzNiwgMS4yNTcxMiwgMi4yMzIwMywgMi43NzkyOCIsIFwKLSAgICAgICAgICAiMC4xNDk2OTIsIDAuMTc2ODY0LCAwLjQyNDY4MywgMC44NDAwNywgMS4yNTcyNiwgMi4yMzExMSwgMi43ODA1OSIsIFwKLSAgICAgICAgICAiMC4xNDk2NTQsIDAuMTc2ODMzLCAwLjQyNTM3OCwgMC44Mzk4MzMsIDEuMjU1NTEsIDIuMjI0OSwgMi43ODEwMiIsIFwKLSAgICAgICAgICAiMC4xNDk2NywgMC4xNzY4MzEsIDAuNDI1MzYyLCAwLjgzOTU2MiwgMS4yNTU1LCAyLjIyNDkzLCAyLjc4MDU1IiwgXAotICAgICAgICAgICIwLjE0OTY4NiwgMC4xNzY4MTEsIDAuNDI0ODE1LCAwLjg0MjE4NCwgMS4yNTUzNSwgMi4yMjU1OCwgMi43ODY1NyIsIFwKLSAgICAgICAgICAiMC4xNDk2NzIsIDAuMTc2ODQ3LCAwLjQyNTI3OCwgMC44NDAyNzgsIDEuMjU3NTMsIDIuMjI1MTksIDIuNzg3NzgiLCBcCi0gICAgICAgICAgIjAuMTQ5NTc0LCAwLjE3Njc4MywgMC40MjUzNDMsIDAuODM5Njc0LCAxLjI1NTk4LCAyLjIyNTM4LCAyLjc4MDM5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzMzIsIDAuMDAzMzIyLCAwLjAwMzMyNywgMC4wMDMzMjksIDAuMDAzMzMsIDAuMDAzMzMsIDAuMDAzMzMiLCBcCi0gICAgICAgICAgIjAuMDAzMjk1LCAwLjAwMzI5NiwgMC4wMDMzMDEsIDAuMDAzMzAzLCAwLjAwMzMwNCwgMC4wMDMzMDUsIDAuMDAzMzA1IiwgXAotICAgICAgICAgICIwLjAwMzI5MSwgMC4wMDMyOTIsIDAuMDAzMjk4LCAwLjAwMzMsIDAuMDAzMywgMC4wMDMzMDIsIDAuMDAzMzAxIiwgXAotICAgICAgICAgICIwLjAwMzI5MSwgMC4wMDMyOTMsIDAuMDAzMjk4LCAwLjAwMzMsIDAuMDAzMzAxLCAwLjAwMzMwMiwgMC4wMDMzMDIiLCBcCi0gICAgICAgICAgIjAuMDAzMjk4LCAwLjAwMzI5OCwgMC4wMDMzMDUsIDAuMDAzMzA3LCAwLjAwMzMwNiwgMC4wMDMzMDgsIDAuMDAzMzA5IiwgXAotICAgICAgICAgICIwLjAwMzMxNywgMC4wMDMzMTksIDAuMDAzMzIyLCAwLjAwMzMyNiwgMC4wMDMzMjcsIDAuMDAzMzI4LCAwLjAwMzMyNiIsIFwKLSAgICAgICAgICAiMC4wMDMzMzYsIDAuMDAzMzQsIDAuMDAzMzQ1LCAwLjAwMzM0OCwgMC4wMDMzNDgsIDAuMDAzMzQ2LCAwLjAwMzM0NiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjgxNCwgMC4wMDI4MTYsIDAuMDAyODIyLCAwLjAwMjgyNCwgMC4wMDI4MjUsIDAuMDAyODI2LCAwLjAwMjgyNiIsIFwKLSAgICAgICAgICAiMC4wMDI3ODMsIDAuMDAyNzg1LCAwLjAwMjc5MSwgMC4wMDI3OTQsIDAuMDAyNzk0LCAwLjAwMjc5NSwgMC4wMDI3OTUiLCBcCi0gICAgICAgICAgIjAuMDAyNzgyLCAwLjAwMjc4NCwgMC4wMDI3OSwgMC4wMDI3OTIsIDAuMDAyNzkzLCAwLjAwMjc5NCwgMC4wMDI3OTQiLCBcCi0gICAgICAgICAgIjAuMDAyNzkyLCAwLjAwMjc5NCwgMC4wMDI4LCAwLjAwMjgwMywgMC4wMDI4MDQsIDAuMDAyODA1LCAwLjAwMjgwNSIsIFwKLSAgICAgICAgICAiMC4wMDI3OTMsIDAuMDAyNzk1LCAwLjAwMjgwMSwgMC4wMDI4MDQsIDAuMDAyODA1LCAwLjAwMjgwNiwgMC4wMDI4MDYiLCBcCi0gICAgICAgICAgIjAuMDAyODE2LCAwLjAwMjgxNywgMC4wMDI4MjMsIDAuMDAyODI2LCAwLjAwMjgyNywgMC4wMDI4MjcsIDAuMDAyODI4IiwgXAotICAgICAgICAgICIwLjAwMjgzNiwgMC4wMDI4MzgsIDAuMDAyODQ0LCAwLjAwMjg0MywgMC4wMDI4NDgsIDAuMDAyODQ5LCAwLjAwMjg0OSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzQ2NCwgMC4wMDM0NjYsIDAuMDAzNDcyLCAwLjAwMzQ3NCwgMC4wMDM0NzQsIDAuMDAzNDc3LCAwLjAwMzQ3NSIsIFwKLSAgICAgICAgICAiMC4wMDM0NDgsIDAuMDAzNDQ5LCAwLjAwMzQ1NSwgMC4wMDM0NTYsIDAuMDAzNDU4LCAwLjAwMzQ1NywgMC4wMDM0NTgiLCBcCi0gICAgICAgICAgIjAuMDAzNDQ4LCAwLjAwMzQ1LCAwLjAwMzQ1NSwgMC4wMDM0NTcsIDAuMDAzNDU5LCAwLjAwMzQ1OSwgMC4wMDM0NTkiLCBcCi0gICAgICAgICAgIjAuMDAzNDQ5LCAwLjAwMzQ1MSwgMC4wMDM0NTYsIDAuMDAzNDU4LCAwLjAwMzQ1OSwgMC4wMDM0NTksIDAuMDAzNDU5IiwgXAotICAgICAgICAgICIwLjAwMzQ1OCwgMC4wMDM0NiwgMC4wMDM0NjUsIDAuMDAzNDY3LCAwLjAwMzQ2OCwgMC4wMDM0NjgsIDAuMDAzNDY4IiwgXAotICAgICAgICAgICIwLjAwMzQ3NiwgMC4wMDM0NzYsIDAuMDAzNDgxLCAwLjAwMzQ4NiwgMC4wMDM0ODcsIDAuMDAzNDgyLCAwLjAwMzQ4OCIsIFwKLSAgICAgICAgICAiMC4wMDM0OTIsIDAuMDAzNDkzLCAwLjAwMzQ5OSwgMC4wMDM1MDQsIDAuMDAzNTA1LCAwLjAwMzUwMSwgMC4wMDM1MDEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDIyNTIsIDAuMDAyMjUzLCAwLjAwMjI1OSwgMC4wMDIyNjIsIDAuMDAyMjYyLCAwLjAwMjI2MywgMC4wMDIyNjMiLCBcCi0gICAgICAgICAgIjAuMDAyMjc2LCAwLjAwMjI3OCwgMC4wMDIyODMsIDAuMDAyMjg2LCAwLjAwMjI4NywgMC4wMDIyODcsIDAuMDAyMjg3IiwgXAotICAgICAgICAgICIwLjAwMjMzNSwgMC4wMDIzMzcsIDAuMDAyMzQzLCAwLjAwMjM0NSwgMC4wMDIzNDYsIDAuMDAyMzQ3LCAwLjAwMjM0NyIsIFwKLSAgICAgICAgICAiMC4wMDIzOTIsIDAuMDAyMzk0LCAwLjAwMjQsIDAuMDAyNDAyLCAwLjAwMjQwMywgMC4wMDI0MDQsIDAuMDAyNDA0IiwgXAotICAgICAgICAgICIwLjAwMjQxNCwgMC4wMDI0MTUsIDAuMDAyNDIxLCAwLjAwMjQyNCwgMC4wMDI0MjUsIDAuMDAyNDI2LCAwLjAwMjQyNiIsIFwKLSAgICAgICAgICAiMC4wMDI0ODgsIDAuMDAyNDksIDAuMDAyNDk2LCAwLjAwMjQ5OCwgMC4wMDI0OTksIDAuMDAyNSwgMC4wMDI1IiwgXAotICAgICAgICAgICIwLjAwMjU1MSwgMC4wMDI1NTMsIDAuMDAyNTU4LCAwLjAwMjU2MSwgMC4wMDI1NjEsIDAuMDAyNTYyLCAwLjAwMjU2MiIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogWE9SMlgxICoKLSAqIC0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoWE9SMlgxKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMTQzODA1OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2MzU5NjY7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjM1NTg4OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDYzNTk2NjsKLSAgfQotICBwaW4oQikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxMzAyMzk7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxMzAxODQ7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxMzAyMzk7Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4yNTk4OTY7Ci0gICAgZnVuY3Rpb24gOiAiKEFeQikiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwMzQxNSwgMC4xMjgyNTQsIDAuMjY3MzY1LCAwLjM5MDExMywgMC41NTM2ODEsIDAuODgxMTU0LCAxLjA4NTQzIiwgXAotICAgICAgICAgICIwLjExMzQ3NCwgMC4xMzgzMjcsIDAuMjc3NDIsIDAuNDAwMTc2LCAwLjU2Mzc0MiwgMC44OTEwMywgMS4wOTU0OCIsIFwKLSAgICAgICAgICAiMC4xMjYwOTIsIDAuMTUwOTY2LCAwLjI5MDA1OCwgMC40MTI3NjUsIDAuNTc2Mzc5LCAwLjkwMzcyLCAxLjEwODM0IiwgXAotICAgICAgICAgICIwLjEzODQ5LCAwLjE2MzM0OCwgMC4zMDI0ODgsIDAuNDI1MTU5LCAwLjU4ODgwNywgMC45MTYwMzcsIDEuMTIwNjIiLCBcCi0gICAgICAgICAgIjAuMTQ5OTgyLCAwLjE3NDg1MSwgMC4zMTM5NiwgMC40MzY2NjEsIDAuNjAwMjcyLCAwLjkyNzQyMywgMS4xMzIiLCBcCi0gICAgICAgICAgIjAuMTY2NzEyLCAwLjE5MTYzMSwgMC4zMzA3NTQsIDAuNDUzNDgyLCAwLjYxNzA4OCwgMC45NDQzNDQsIDEuMTQ4OTQiLCBcCi0gICAgICAgICAgIjAuMTgsIDAuMjA0OTg5LCAwLjM0NDA4NiwgMC40NjY4MTIsIDAuNjMwNTAyLCAwLjk1Nzk3MywgMS4xNjIyMSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTY5MDYsIDAuMTQ1NjU0LCAwLjQyOTQzNCwgMC42ODA0NTgsIDEuMDE2OTgsIDEuNjkwNCwgMi4xMTA2MyIsIFwKLSAgICAgICAgICAiMC4wOTY5MjcsIDAuMTQ1NjYzLCAwLjQyOTE1NywgMC42ODA1MjUsIDEuMDE2OTgsIDEuNjg5NTYsIDIuMTEwNCIsIFwKLSAgICAgICAgICAiMC4wOTY5MTcsIDAuMTQ1NjczLCAwLjQyOTI4NCwgMC42ODE5ODksIDEuMDE2OTgsIDEuNjkwNDYsIDIuMTExMSIsIFwKLSAgICAgICAgICAiMC4wOTY5NDcsIDAuMTQ1NjczLCAwLjQyOTQzNiwgMC42ODE5NDksIDEuMDE2OTksIDEuNjg5NzYsIDIuMTExMjgiLCBcCi0gICAgICAgICAgIjAuMDk3MTgsIDAuMTQ1ODM3LCAwLjQyOTIyMSwgMC42ODE4NTcsIDEuMDE4NjUsIDEuNjkwMDIsIDIuMTE0NTciLCBcCi0gICAgICAgICAgIjAuMDk3OTI4LCAwLjE0NjI4NSwgMC40MjkzMjcsIDAuNjgyMDQ4LCAxLjAxNjk4LCAxLjY4OTczLCAyLjExMTIxIiwgXAotICAgICAgICAgICIwLjA5ODg0NiwgMC4xNDcwMDIsIDAuNDI5Mzg0LCAwLjY4MjA2NywgMS4wMTcyNCwgMS42OTA0NCwgMi4xMTEyNSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDY3NjEsIDAuMTMyMDcxLCAwLjI3MjQ0OCwgMC4zOTYxMSwgMC41NjEyMjQsIDAuODkxMTY0LCAxLjA5NzIxIiwgXAotICAgICAgICAgICIwLjExNjQ4MSwgMC4xNDE3NjUsIDAuMjgyMTM2LCAwLjQwNTgwMywgMC41NzA5MjksIDAuOTAwODk1LCAxLjEwNjg4IiwgXAotICAgICAgICAgICIwLjEyODYzOSwgMC4xNTM5NTYsIDAuMjk0MzM5LCAwLjQxODA0NCwgMC41ODI5NTUsIDAuOTEyOTc1LCAxLjExOSIsIFwKLSAgICAgICAgICAiMC4xNDAxOCwgMC4xNjU1MDcsIDAuMzA1ODk3LCAwLjQyOTYxMiwgMC41OTQ0ODUsIDAuOTI0NjI3LCAxLjEzMDU5IiwgXAotICAgICAgICAgICIwLjE1MDkwMiwgMC4xNzYyMTcsIDAuMzE2NjE3LCAwLjQ0MDM0MiwgMC42MDUyNTUsIDAuOTM1MTE3LCAxLjE0MTM2IiwgXAotICAgICAgICAgICIwLjE2NjMxOCwgMC4xOTE2NjQsIDAuMzMyMDksIDAuNDU1NzY3LCAwLjYyMDgzMywgMC45NTA5NjYsIDEuMTU2ODEiLCBcCi0gICAgICAgICAgIjAuMTc4Mjk4LCAwLjIwMzczMywgMC4zNDQxODUsIDAuNDY3OTY2LCAwLjYzMjc4NywgMC45NjMxMTUsIDEuMTY5MiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTY4NDksIDAuMTQ0Nzc5LCAwLjQyMzM1NCwgMC42NzI4NDgsIDEuMDAzMDIsIDEuNjY2NDEsIDIuMDgyMTciLCBcCi0gICAgICAgICAgIjAuMDk2ODU1LCAwLjE0NDc2NywgMC40MjMzMDIsIDAuNjcyNjUsIDEuMDAzMDUsIDEuNjY2MzMsIDIuMDgxOTgiLCBcCi0gICAgICAgICAgIjAuMDk2ODUyLCAwLjE0NDY5LCAwLjQyMzIwNiwgMC42NzMwNjgsIDEuMDA1NjcsIDEuNjY4NTUsIDIuMDc5OTIiLCBcCi0gICAgICAgICAgIjAuMDk2OTAyLCAwLjE0NDcxMiwgMC40MjMxNzEsIDAuNjczMDg4LCAxLjAwNTUsIDEuNjY2NDQsIDIuMDc5NzQiLCBcCi0gICAgICAgICAgIjAuMDk3MTY4LCAwLjE0NDg5MywgMC40MjM2NTYsIDAuNjczMTE0LCAxLjAwMzM0LCAxLjY2NTYzLCAyLjA4MTk5IiwgXAotICAgICAgICAgICIwLjA5Nzk3LCAwLjE0NTQ0OCwgMC40MjM1NCwgMC42NzI4NiwgMS4wMDI4OCwgMS42NjYsIDIuMDc5NjUiLCBcCi0gICAgICAgICAgIjAuMDk4NzIxLCAwLjE0NjA5MiwgMC40MjM1OTgsIDAuNjcxMTk3LCAxLjAwNTE1LCAxLjY2NTg0LCAyLjA4MDk0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExNTcxNiwgMC4xNDA1NzYsIDAuMjc5ODA4LCAwLjQwMjU0NSwgMC41NjYxMTEsIDAuODkzMjYyLCAxLjA5NzYxIiwgXAotICAgICAgICAgICIwLjEyNTUwNiwgMC4xNTAzNDQsIDAuMjg5NjczLCAwLjQxMjM3NCwgMC41NzU5MzMsIDAuOTAzMDcsIDEuMTA3NSIsIFwKLSAgICAgICAgICAiMC4xMzY2OCwgMC4xNjE1MSwgMC4zMDA4MTEsIDAuNDIzNTM2LCAwLjU4Njk3NSwgMC45MTQyNzgsIDEuMTE4NjgiLCBcCi0gICAgICAgICAgIjAuMTQ1Njc1LCAwLjE3MDUwNiwgMC4zMDk4MiwgMC40MzI0MzYsIDAuNTk2MTEzLCAwLjkyMzI4MiwgMS4xMjc2OSIsIFwKLSAgICAgICAgICAiMC4xNTM1NjcsIDAuMTc4MzcyLCAwLjMxNzY2OSwgMC40NDAzMzgsIDAuNjAzOTIsIDAuOTMxMDE0LCAxLjEzNTQ5IiwgXAotICAgICAgICAgICIwLjE2Mzk5MSwgMC4xODg4NjcsIDAuMzI4MTQsIDAuNDUwODkyLCAwLjYxNDQ2MywgMC45NDE1NywgMS4xNDU5MyIsIFwKLSAgICAgICAgICAiMC4xNzE4MDEsIDAuMTk2NjQ5LCAwLjMzNTk0MSwgMC40NTg2NzYsIDAuNjIyMjU4LCAwLjk0OTM0MywgMS4xNTM3NSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTU4NjIsIDAuMTQ0OTIzLCAwLjQyOTQ1NiwgMC42ODExNzUsIDEuMDE3OTksIDEuNjkwMywgMi4xMTQ1MyIsIFwKLSAgICAgICAgICAiMC4wOTU4NzUsIDAuMTQ0OTE2LCAwLjQyODYzLCAwLjY4MjA3NCwgMS4wMTgwMywgMS42ODk5OCwgMi4xMTQ4MiIsIFwKLSAgICAgICAgICAiMC4wOTU5MjUsIDAuMTQ0OTI0LCAwLjQyODg3OCwgMC42ODIwMzQsIDEuMDE3NjMsIDEuNjkwOCwgMi4xMTIxIiwgXAotICAgICAgICAgICIwLjA5NTkyNiwgMC4xNDQ5MjgsIDAuNDI4MTc1LCAwLjY4MTE5NiwgMS4wMTc4NywgMS42OTA3NSwgMi4xMTIwOCIsIFwKLSAgICAgICAgICAiMC4wOTU5ODQsIDAuMTQ0OTQ1LCAwLjQyODg4LCAwLjY4MTkzOCwgMS4wMTkwOCwgMS42OTExNSwgMi4xMTIwNiIsIFwKLSAgICAgICAgICAiMC4wOTU5NDYsIDAuMTQ0OTUyLCAwLjQyOTM1LCAwLjY4MTk0NSwgMS4wMTc3NiwgMS42OTExMywgMi4xMTM4NyIsIFwKLSAgICAgICAgICAiMC4wOTU4NzQsIDAuMTQ0OTc5LCAwLjQyODYzNywgMC42ODE5NSwgMS4wMTc3OCwgMS42OTMxLCAyLjExMjExIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExOTEzMywgMC4xNDQyOSwgMC4yODQ3MzUsIDAuNDA4NDczLCAwLjU3MzM1NCwgMC45MDMxMSwgMS4xMDkyMiIsIFwKLSAgICAgICAgICAiMC4xMjkyOTYsIDAuMTU0NDgxLCAwLjI5NDkyOCwgMC40MTg2NzcsIDAuNTgzNTcsIDAuOTEzMzQ1LCAxLjExOTM5IiwgXAotICAgICAgICAgICIwLjE0MTE0NSwgMC4xNjYzMjYsIDAuMzA2NzUyLCAwLjQzMDQ5NSwgMC41OTUzNzMsIDAuOTI1MTI1LCAxLjEzMTIyIiwgXAotICAgICAgICAgICIwLjE1MDg1MSwgMC4xNzYwMzEsIDAuMzE2NDY1LCAwLjQ0MDIxMSwgMC42MDUxMTUsIDAuOTM0OTM3LCAxLjE0MDkzIiwgXAotICAgICAgICAgICIwLjE1OTMzNCwgMC4xODQ1MzQsIDAuMzI0OTc0LCAwLjQ0ODcyNywgMC42MTM1ODgsIDAuOTQzMzM4LCAxLjE0OTQ3IiwgXAotICAgICAgICAgICIwLjE3MDgzNiwgMC4xOTYwNDEsIDAuMzM2NDkxLCAwLjQ2MDIzOCwgMC42MjUxMjksIDAuOTU0OTEsIDEuMTYwOTUiLCBcCi0gICAgICAgICAgIjAuMTc5NjA0LCAwLjIwNDgwMywgMC4zNDUyNDcsIDAuNDY5LCAwLjYzMzg5LCAwLjk2MzY0OCwgMS4xNjk3MSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTU3MTUsIDAuMTQzNDg0LCAwLjQyMzEwNCwgMC42NzI3NzMsIDEuMDA1NTQsIDEuNjY0NTksIDIuMDgzMjMiLCBcCi0gICAgICAgICAgIjAuMDk1NjkxLCAwLjE0Mzg3MiwgMC40MjM0MjcsIDAuNjcyNjk3LCAxLjAwNTM1LCAxLjY3MDcyLCAyLjA4MjU5IiwgXAotICAgICAgICAgICIwLjA5NTcwNiwgMC4xNDM3OTIsIDAuNDIzMDU4LCAwLjY3MjcxLCAxLjAwMzU1LCAxLjY3MDM3LCAyLjA4Mjc2IiwgXAotICAgICAgICAgICIwLjA5NTY4OCwgMC4xNDM3ODQsIDAuNDIzMDI4LCAwLjY3MjY1NiwgMS4wMDUzNCwgMS42NzA3NSwgMi4wODI1NiIsIFwKLSAgICAgICAgICAiMC4wOTU3MTEsIDAuMTQzODgsIDAuNDIzNTcsIDAuNjcyNjE5LCAxLjAwNDc2LCAxLjY2NzM5LCAyLjA4MzcyIiwgXAotICAgICAgICAgICIwLjA5NTY5NSwgMC4xNDM3NzYsIDAuNDIzMTA1LCAwLjY3MjY2NCwgMS4wMDU0LCAxLjY3MDY4LCAyLjA4MjQ5IiwgXAotICAgICAgICAgICIwLjA5NTY5LCAwLjE0Mzc2OCwgMC40MjM3NzksIDAuNjcyNjY5LCAxLjAwNTQxLCAxLjY2ODM3LCAyLjA4MjUzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5MDc3MywgMC4xMTU1NzksIDAuMjU0ODY0LCAwLjM3NzU4MSwgMC41NDExNTksIDAuODY4Mjk0LCAxLjA3MjcyIiwgXAotICAgICAgICAgICIwLjA5OTk5MSwgMC4xMjQ4MDUsIDAuMjY0MDk1LCAwLjM4NjgxNiwgMC41NTAzODksIDAuODc3NTEsIDEuMDgxOTQiLCBcCi0gICAgICAgICAgIjAuMTExNjgsIDAuMTM2NDk2LCAwLjI3NTgwMywgMC4zOTg1MzksIDAuNTYyMTA2LCAwLjg4OTI0NywgMS4wOTM2MyIsIFwKLSAgICAgICAgICAiMC4xMjMyMzcsIDAuMTQ4MDU0LCAwLjI4NzM4MywgMC40MTAxMDUsIDAuNTczNzI2LCAwLjkwMDgzOCwgMS4xMDUyNiIsIFwKLSAgICAgICAgICAiMC4xMzM4MjMsIDAuMTU4NjYsIDAuMjk3OTU5LCAwLjQyMDcxMywgMC41ODQyODIsIDAuOTExMzk2LCAxLjExNTg0IiwgXAotICAgICAgICAgICIwLjE0ODgwMywgMC4xNzM2ODksIDAuMzEyOTg4LCAwLjQzNTc2MSwgMC41OTkzMzYsIDAuOTI2NDY0LCAxLjEzMDkxIiwgXAotICAgICAgICAgICIwLjE2MDMzMiwgMC4xODUxNDgsIDAuMzI0NDU3LCAwLjQ0NzIwNSwgMC42MTA3NywgMC45Mzc5MjMsIDEuMTQyMzUiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk1ODk2LCAwLjE0NDkwOCwgMC40Mjg4ODgsIDAuNjgyMDY2LCAxLjAxNzg0LCAxLjY5MzQ2LCAyLjExMjE1IiwgXAotICAgICAgICAgICIwLjA5NTg5OCwgMC4xNDQ5MDIsIDAuNDI4ODg3LCAwLjY4MTkzNSwgMS4wMTc4LCAxLjY5MzE0LCAyLjExMjA3IiwgXAotICAgICAgICAgICIwLjA5NTkyNywgMC4xNDQ4OTcsIDAuNDI5NDQ5LCAwLjY4MTE2NywgMS4wMTc5NywgMS42OTEyNCwgMi4xMTQ2NSIsIFwKLSAgICAgICAgICAiMC4wOTYwNiwgMC4xNDUwMjcsIDAuNDI4ODYxLCAwLjY4MTkyNywgMS4wMTc1NCwgMS42OTAyMywgMi4xMTE5NyIsIFwKLSAgICAgICAgICAiMC4wOTY1ODcsIDAuMTQ1MzQ2LCAwLjQyODg2MywgMC42ODE5NTYsIDEuMDE3ODMsIDEuNjkxMTUsIDIuMTExOTQiLCBcCi0gICAgICAgICAgIjAuMDk3NjkzLCAwLjE0NjA1NywgMC40Mjk1NTEsIDAuNjgyMDMxLCAxLjAxODk3LCAxLjY5MzEzLCAyLjExMTI1IiwgXAotICAgICAgICAgICIwLjA5ODc1NywgMC4xNDY3OTYsIDAuNDI5NjU1LCAwLjY4MTI4NCwgMS4wMTg5MywgMS42OTAwMywgMi4xMTIwMiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTA1MTcsIDAuMTE1ODI2LCAwLjI1NjIwOCwgMC4zNzk5MzUsIDAuNTQ0OTg4LCAwLjg3NDkwOSwgMS4wODA3NSIsIFwKLSAgICAgICAgICAiMC4wOTk1MzYsIDAuMTI0ODI5LCAwLjI2NTIxNiwgMC4zODg5NjQsIDAuNTU0MDI1LCAwLjg4Mzk3LCAxLjA5MDAyIiwgXAotICAgICAgICAgICIwLjExMDgzMiwgMC4xMzYxNDUsIDAuMjc2NTQxLCAwLjQwMDI3NiwgMC41NjUzMjcsIDAuODk1MzYzLCAxLjEwMTY0IiwgXAotICAgICAgICAgICIwLjEyMTc1NiwgMC4xNDcxMDcsIDAuMjg3NDg0LCAwLjQxMTIzMSwgMC41NzYyODUsIDAuOTA2MjUzLCAxLjExMjExIiwgXAotICAgICAgICAgICIwLjEzMTMzMywgMC4xNTY3MDQsIDAuMjk3MTYsIDAuNDIwODczLCAwLjU4NTk4LCAwLjkxNjAxMiwgMS4xMjIzMiIsIFwKLSAgICAgICAgICAiMC4xNDQ2MzgsIDAuMTcwMTAzLCAwLjMxMDU1MiwgMC40MzQyMzcsIDAuNTk5MDYzLCAwLjkyOTUxNiwgMS4xMzU0NSIsIFwKLSAgICAgICAgICAiMC4xNTQ1LCAwLjE4MDIzOSwgMC4zMjA3MzYsIDAuNDQ0MzIzLCAwLjYwOTIzNSwgMC45MzkzMDksIDEuMTQ1NTUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk2NjAzLCAwLjE0NDUzMywgMC40MjM0MzcsIDAuNjcwOTI0LCAxLjAwMjkzLCAxLjY2NjQ2LCAyLjA4MDU2IiwgXAotICAgICAgICAgICIwLjA5NjYyMSwgMC4xNDQ2MjIsIDAuNDIzMTQsIDAuNjcwODksIDEuMDAyODMsIDEuNjY2MjUsIDIuMDgyMTgiLCBcCi0gICAgICAgICAgIjAuMDk2NTcxLCAwLjE0NDYwOCwgMC40MjM4MDksIDAuNjcxMDA0LCAxLjAwMzAxLCAxLjY2NjE2LCAyLjA4MDY1IiwgXAotICAgICAgICAgICIwLjA5NjczNSwgMC4xNDQ2OTgsIDAuNDIzMTI3LCAwLjY3MDkyMSwgMS4wMDI5NCwgMS42NjY0MywgMi4wODA0NCIsIFwKLSAgICAgICAgICAiMC4wOTcxNzUsIDAuMTQ0ODI5LCAwLjQyMzg5NiwgMC42NzA5MTcsIDEuMDAyODYsIDEuNjY2MTEsIDIuMDgwMzkiLCBcCi0gICAgICAgICAgIjAuMDk4MTE5LCAwLjE0NTYyMywgMC40MjQyNTksIDAuNjcwOCwgMS4wMDQ3MywgMS42NjU2OSwgMi4wODExMyIsIFwKLSAgICAgICAgICAiMC4wOTg4OTcsIDAuMTQ2MzQxLCAwLjQyMzI2NSwgMC42NzI5OTIsIDEuMDA1MzYsIDEuNjY3NTQsIDIuMDgxMTciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDkyMzM1LCAwLjExNzIyNywgMC4yNTYzODEsIDAuMzc5MDkxLCAwLjU0MjcwNSwgMC44NzAxNjcsIDEuMDc0ODkiLCBcCi0gICAgICAgICAgIjAuMTAyNTAxLCAwLjEyNzM4NSwgMC4yNjY1NSwgMC4zODkyNTUsIDAuNTUyODczLCAwLjg4MDI3MSwgMS4wODQ1NiIsIFwKLSAgICAgICAgICAiMC4xMTQzMzUsIDAuMTM5MjE2LCAwLjI3ODM2MywgMC40MDEwNjcsIDAuNTY0NzEzLCAwLjg5MTg1NiwgMS4wOTY0MiIsIFwKLSAgICAgICAgICAiMC4xMjMzMDIsIDAuMTQ4MTU4LCAwLjI4NzMwNywgMC40MTAwNzYsIDAuNTczNjc0LCAwLjkwMDkxOCwgMS4xMDU0MyIsIFwKLSAgICAgICAgICAiMC4xMzA0NzYsIDAuMTU1MzU2LCAwLjI5NDUwNiwgMC40MTcyMSwgMC41ODA4MjUsIDAuOTA4NDA5LCAxLjExMjQyIiwgXAotICAgICAgICAgICIwLjE0MDM0OCwgMC4xNjQ5NjgsIDAuMzA0MDYzLCAwLjQyNjc5OCwgMC41OTA0MjEsIDAuOTE3NzQ3LCAxLjEyMjE1IiwgXAotICAgICAgICAgICIwLjE0NzA4MSwgMC4xNzE4NzksIDAuMzExMDI3LCAwLjQzMzgzLCAwLjU5NzI5NSwgMC45MjUxMDMsIDEuMTMwMDkiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk2NzE4LCAwLjE0NTUxNSwgMC40MjkxNDYsIDAuNjgxOTY4LCAxLjAxOTI0LCAxLjY5MDM2LCAyLjExMTIzIiwgXAotICAgICAgICAgICIwLjA5NjcyLCAwLjE0NTUxNCwgMC40MjkzNTcsIDAuNjgxOTc0LCAxLjAxNjk4LCAxLjY5MDQxLCAyLjExMDY3IiwgXAotICAgICAgICAgICIwLjA5NjcwNiwgMC4xNDU1MTYsIDAuNDI4Nzc4LCAwLjY4MTk1NSwgMS4wMTg2MywgMS42OTAwMywgMi4xMTQ2MSIsIFwKLSAgICAgICAgICAiMC4wOTY2OTEsIDAuMTQ1NTA4LCAwLjQyODgxMSwgMC42ODA1MTgsIDEuMDE2OTgsIDEuNjg5NzMsIDIuMTEwMTgiLCBcCi0gICAgICAgICAgIjAuMDk2NTcxLCAwLjE0NTQ2NywgMC40Mjg3ODksIDAuNjgxODYyLCAxLjAxOTA2LCAxLjY5MDQ0LCAyLjExNDEzIiwgXAotICAgICAgICAgICIwLjA5NjcyLCAwLjE0NTMyNiwgMC40MjkzLCAwLjY4MTgwNywgMS4wMTkwMywgMS42OTEzMywgMi4xMTQzMyIsIFwKLSAgICAgICAgICAiMC4wOTY1NTgsIDAuMTQ1MjIxLCAwLjQyODM5OSwgMC42ODA5NjQsIDEuMDE2OTcsIDEuNjkwMzIsIDIuMTExODYiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTA4ODA0LCAwLjEzMzk4OSwgMC4yNzQ0MzUsIDAuMzk4MTc5LCAwLjU2MzA0NCwgMC44OTI4MTksIDEuMDk4ODkiLCBcCi0gICAgICAgICAgIjAuMTE4OTk1LCAwLjE0NDE2MSwgMC4yODQ2MDYsIDAuNDA4MzQ5LCAwLjU3MzI0OCwgMC45MDI5NzgsIDEuMTA5MDciLCBcCi0gICAgICAgICAgIjAuMTI5NzI2LCAwLjE1NDg5OSwgMC4yOTUzNDUsIDAuNDE5MDg4LCAwLjU4Mzk5MSwgMC45MTM3MTYsIDEuMTE5ODIiLCBcCi0gICAgICAgICAgIjAuMTM4MjIxLCAwLjE2MzQxNCwgMC4zMDM4NjQsIDAuNDI3NTk2LCAwLjU5MjQ3MSwgMC45MjIyMDksIDEuMTI4MzMiLCBcCi0gICAgICAgICAgIjAuMTQ1MzAyLCAwLjE3MDU0MiwgMC4zMTA5OTcsIDAuNDM0NzAzLCAwLjU5OTYxNCwgMC45MjkyODQsIDEuMTM1NDQiLCBcCi0gICAgICAgICAgIjAuMTU0ODQyLCAwLjE4MDEwNSwgMC4zMjA3MzksIDAuNDQ0NDQ4LCAwLjYwOTE5NiwgMC45Mzg5NzEsIDEuMTQ1MjciLCBcCi0gICAgICAgICAgIjAuMTYyMzQ5LCAwLjE4NzY3OCwgMC4zMjgyMTYsIDAuNDUxOTM0LCAwLjYxNjc0OCwgMC45NDY0OTUsIDEuMTUyNzEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk1NjkxLCAwLjE0Mzg4NSwgMC40MjMwNjQsIDAuNjcyODI5LCAxLjAwNSwgMS42NzA3LCAyLjA4MjY0IiwgXAotICAgICAgICAgICIwLjA5NTcwNywgMC4xNDM4NjgsIDAuNDIzMDQ5LCAwLjY3MjY4NiwgMS4wMDMwMSwgMS42Njc1MywgMi4wODI3NSIsIFwKLSAgICAgICAgICAiMC4wOTU3MDUsIDAuMTQzODYsIDAuNDIzMDYzLCAwLjY3MjY4OCwgMS4wMDUyOCwgMS42NjkzLCAyLjA4Mjk1IiwgXAotICAgICAgICAgICIwLjA5NTY3MywgMC4xNDM4MjUsIDAuNDIzMDY5LCAwLjY3MjY0MiwgMS4wMDUyLCAxLjY2NzI4LCAyLjA4MjkxIiwgXAotICAgICAgICAgICIwLjA5NTc5NSwgMC4xNDM4ODMsIDAuNDIzMTA1LCAwLjY3Mjc0NiwgMS4wMDUyNywgMS42NjczLCAyLjA4MjEyIiwgXAotICAgICAgICAgICIwLjA5NTgwMSwgMC4xNDM4OTIsIDAuNDIzNDAyLCAwLjY3MTgwNSwgMS4wMDM1OCwgMS42NjgzMSwgMi4wODYyMiIsIFwKLSAgICAgICAgICAiMC4wOTU2MzUsIDAuMTQzODcsIDAuNDIyOSwgMC42NzE5NjUsIDEuMDA0MjYsIDEuNjY3NywgMi4wODUzMSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzY3MSwgMC4wMDM2OCwgMC4wMDM2OTQsIDAuMDAzNjk3LCAwLjAwMzY5OSwgMC4wMDM3MDEsIDAuMDAzNzAxIiwgXAotICAgICAgICAgICIwLjAwMzY0NiwgMC4wMDM2NTUsIDAuMDAzNjY5LCAwLjAwMzY3MywgMC4wMDM2NzQsIDAuMDAzNjc2LCAwLjAwMzY3NyIsIFwKLSAgICAgICAgICAiMC4wMDM2NDIsIDAuMDAzNjUxLCAwLjAwMzY2NiwgMC4wMDM2NjksIDAuMDAzNjcxLCAwLjAwMzY3MiwgMC4wMDM2NzIiLCBcCi0gICAgICAgICAgIjAuMDAzNjQ4LCAwLjAwMzY1OCwgMC4wMDM2NzIsIDAuMDAzNjc1LCAwLjAwMzY3NywgMC4wMDM2NzksIDAuMDAzNjc5IiwgXAotICAgICAgICAgICIwLjAwMzY0OCwgMC4wMDM2NTcsIDAuMDAzNjcyLCAwLjAwMzY3MiwgMC4wMDM2NzUsIDAuMDAzNjc3LCAwLjAwMzY3NyIsIFwKLSAgICAgICAgICAiMC4wMDM2NjQsIDAuMDAzNjc2LCAwLjAwMzY5LCAwLjAwMzY5MiwgMC4wMDM2OTYsIDAuMDAzNjk2LCAwLjAwMzY5NSIsIFwKLSAgICAgICAgICAiMC4wMDM2ODcsIDAuMDAzNjk1LCAwLjAwMzcwNywgMC4wMDM3MTIsIDAuMDAzNzE0LCAwLjAwMzcxNSwgMC4wMDM3MTQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDM0MDYsIDAuMDAzNDE4LCAwLjAwMzQzNSwgMC4wMDM0MzksIDAuMDAzNDQxLCAwLjAwMzQ0MywgMC4wMDM0NDMiLCBcCi0gICAgICAgICAgIjAuMDAzMzc2LCAwLjAwMzM4OCwgMC4wMDM0MDYsIDAuMDAzNDEsIDAuMDAzNDEzLCAwLjAwMzQxNCwgMC4wMDM0MTUiLCBcCi0gICAgICAgICAgIjAuMDAzMzcyLCAwLjAwMzM4NCwgMC4wMDM0MDIsIDAuMDAzNDA2LCAwLjAwMzQwOCwgMC4wMDM0MSwgMC4wMDM0MTEiLCBcCi0gICAgICAgICAgIjAuMDAzMzgxLCAwLjAwMzM5MywgMC4wMDM0MTEsIDAuMDAzNDE1LCAwLjAwMzQxNywgMC4wMDM0MTksIDAuMDAzNDIiLCBcCi0gICAgICAgICAgIjAuMDAzMzg1LCAwLjAwMzM5NywgMC4wMDM0MTUsIDAuMDAzNDE5LCAwLjAwMzQyMSwgMC4wMDM0MjMsIDAuMDAzNDI0IiwgXAotICAgICAgICAgICIwLjAwMzQwNCwgMC4wMDM0MTYsIDAuMDAzNDMzLCAwLjAwMzQzNywgMC4wMDM0NCwgMC4wMDM0NDIsIDAuMDAzNDQzIiwgXAotICAgICAgICAgICIwLjAwMzQyNSwgMC4wMDM0MzYsIDAuMDAzNDU0LCAwLjAwMzQ1OSwgMC4wMDM0NjIsIDAuMDAzNDY0LCAwLjAwMzQ2NSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzMxNiwgMC4wMDMzMjMsIDAuMDAzMzMzLCAwLjAwMzMzNiwgMC4wMDMzMzcsIDAuMDAzMzM5LCAwLjAwMzMzOSIsIFwKLSAgICAgICAgICAiMC4wMDMzMzEsIDAuMDAzMzM3LCAwLjAwMzM0OCwgMC4wMDMzNSwgMC4wMDMzNTIsIDAuMDAzMzUzLCAwLjAwMzM1MyIsIFwKLSAgICAgICAgICAiMC4wMDMzNzYsIDAuMDAzMzgzLCAwLjAwMzM5MywgMC4wMDMzOTUsIDAuMDAzMzk2LCAwLjAwMzM5OCwgMC4wMDMzOTgiLCBcCi0gICAgICAgICAgIjAuMDAzNDEsIDAuMDAzNDE2LCAwLjAwMzQyNSwgMC4wMDM0MjgsIDAuMDAzNDI5LCAwLjAwMzQzLCAwLjAwMzQzIiwgXAotICAgICAgICAgICIwLjAwMzQ1MywgMC4wMDM0NTgsIDAuMDAzNDY4LCAwLjAwMzQ3LCAwLjAwMzQ3MiwgMC4wMDM0NzMsIDAuMDAzNDczIiwgXAotICAgICAgICAgICIwLjAwMzUyMSwgMC4wMDM1MjIsIDAuMDAzNTIyLCAwLjAwMzUzMSwgMC4wMDM1MzQsIDAuMDAzNTI3LCAwLjAwMzUyNyIsIFwKLSAgICAgICAgICAiMC4wMDM1NiwgMC4wMDM1NjUsIDAuMDAzNTczLCAwLjAwMzU4NywgMC4wMDM1NzYsIDAuMDAzNTg5LCAwLjAwMzU3NyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjc5OSwgMC4wMDI4MTEsIDAuMDAyODI5LCAwLjAwMjgzMywgMC4wMDI4MzUsIDAuMDAyODM3LCAwLjAwMjgzNyIsIFwKLSAgICAgICAgICAiMC4wMDI3ODEsIDAuMDAyNzkzLCAwLjAwMjgxLCAwLjAwMjgxNCwgMC4wMDI4MTYsIDAuMDAyODE4LCAwLjAwMjgxOCIsIFwKLSAgICAgICAgICAiMC4wMDI3OCwgMC4wMDI3OTIsIDAuMDAyODA5LCAwLjAwMjgxMywgMC4wMDI4MTUsIDAuMDAyODE3LCAwLjAwMjgxNyIsIFwKLSAgICAgICAgICAiMC4wMDI3ODgsIDAuMDAyOCwgMC4wMDI4MTcsIDAuMDAyODIsIDAuMDAyODIzLCAwLjAwMjgyNCwgMC4wMDI4MjUiLCBcCi0gICAgICAgICAgIjAuMDAyOCwgMC4wMDI4MTMsIDAuMDAyODMxLCAwLjAwMjgzNCwgMC4wMDI4MzcsIDAuMDAyODM3LCAwLjAwMjgzOSIsIFwKLSAgICAgICAgICAiMC4wMDI4MjEsIDAuMDAyODMzLCAwLjAwMjg1NCwgMC4wMDI4NTgsIDAuMDAyODU3LCAwLjAwMjg1OSwgMC4wMDI4NjIiLCBcCi0gICAgICAgICAgIjAuMDAyODQ3LCAwLjAwMjg1NSwgMC4wMDI4NzMsIDAuMDAyODc3LCAwLjAwMjg4NCwgMC4wMDI4ODYsIDAuMDAyODg3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBYT1IyWDIgKgotICogLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChYT1IyWDIpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4xODEyMTI7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYyMDEyNTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MTk4ODk7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjIwMTI1OwotICB9Ci0gIHBpbihCKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDEzMDgxNDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDEzMDcwOTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDEzMDgxNDsKLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjUyMTYyMzsKLSAgICBmdW5jdGlvbiA6ICIoQV5CKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDkxMjYxLCAwLjE5NjM0NSwgMC4yNzc5NTIsIDAuMzc5OTM0LCAwLjQ4MTkzMSwgMC41ODQxOTgsIDAuNjg2MDM4IiwgXAotICAgICAgICAgICIwLjEwMTM0NywgMC4yMDY0MDYsIDAuMjg4MDE5LCAwLjM5MDAxMSwgMC40OTIwMDYsIDAuNTk0MTI1LCAwLjY5NjAxNyIsIFwKLSAgICAgICAgICAiMC4xMTM4NzYsIDAuMjE4OTc4LCAwLjMwMDU5MywgMC40MDI1ODUsIDAuNTA0NTc3LCAwLjYwNjg0OSwgMC43MDg2MTkiLCBcCi0gICAgICAgICAgIjAuMTI2Mzg2LCAwLjIzMTQ4NiwgMC4zMTMxMDcsIDAuNDE1MTE3LCAwLjUxNzE3LCAwLjYxOTA2NSwgMC43MjExMTYiLCBcCi0gICAgICAgICAgIjAuMTM4MDY3LCAwLjI0MzIwNywgMC4zMjQ4NCwgMC40MjY4MTUsIDAuNTI4OTM0LCAwLjYzMDgxNCwgMC43MzI5MjgiLCBcCi0gICAgICAgICAgIjAuMTU1MzUxLCAwLjI2MDcwMSwgMC4zNDIzMTUsIDAuNDQ0Mjk5LCAwLjU0NjMxOSwgMC42NDg0MTEsIDAuNzUwMzI3IiwgXAotICAgICAgICAgICIwLjE2OTE3OCwgMC4yNzQ3NjUsIDAuMzU2MzgyLCAwLjQ1ODM3MSwgMC41NjAzMzUsIDAuNjYyNDk5LCAwLjc2NDQ5NCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjAyMDEsIDAuMjY0NDE2LCAwLjQzMjgxLCAwLjY0NDQ5MiwgMC44NTY1OTYsIDEuMDY2OTIsIDEuMjc4MSIsIFwKLSAgICAgICAgICAiMC4wNjAxNTYsIDAuMjY0NDQzLCAwLjQzMzAxMiwgMC42NDM2MjQsIDAuODU2NTk0LCAxLjA2Njg3LCAxLjI3ODUxIiwgXAotICAgICAgICAgICIwLjA2MDE3MywgMC4yNjQ0MzksIDAuNDMyODAxLCAwLjY0NDUyLCAwLjg1NjU4NywgMS4wNjY5MiwgMS4yNzg1MSIsIFwKLSAgICAgICAgICAiMC4wNjAxNCwgMC4yNjQzNjEsIDAuNDMyNzk1LCAwLjY0MzU5MiwgMC44NTQ4ODcsIDEuMDY4NzYsIDEuMjc4NSIsIFwKLSAgICAgICAgICAiMC4wNjA0NTUsIDAuMjY0NDgzLCAwLjQzMjgxNywgMC42NDQzMDQsIDAuODU0NzA0LCAxLjA2ODc5LCAxLjI3ODIyIiwgXAotICAgICAgICAgICIwLjA2MTMwNCwgMC4yNjQ1MzIsIDAuNDMyMzU2LCAwLjY0Mzc1NiwgMC44NTY0ODMsIDEuMDY2NjIsIDEuMjc4NTEiLCBcCi0gICAgICAgICAgIjAuMDYyNDkxLCAwLjI2NDgyLCAwLjQzMjY5LCAwLjY0MzY3MiwgMC44NTY0MjQsIDEuMDY3MDMsIDEuMjc4MDgiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk1MDA4LCAwLjIwMjUwNywgMC4yODUzLCAwLjM4ODczNiwgMC40OTIxODksIDAuNTk1NTgxLCAwLjY5OTE5IiwgXAotICAgICAgICAgICIwLjEwNDc2OCwgMC4yMTIyMzcsIDAuMjk1MDI3LCAwLjM5ODQ1NCwgMC41MDE5NjYsIDAuNjA1MzMxLCAwLjcwODk1OSIsIFwKLSAgICAgICAgICAiMC4xMTY4NTMsIDAuMjI0MzI4LCAwLjMwNzEyNSwgMC40MTA1NjEsIDAuNTE0MDgsIDAuNjE3NDYyLCAwLjcyMTA2IiwgXAotICAgICAgICAgICIwLjEyODUzNCwgMC4yMzYwMjQsIDAuMzE4ODMxLCAwLjQyMjI1MiwgMC41MjU2OCwgMC42MjkwOTcsIDAuNzMyNzU2IiwgXAotICAgICAgICAgICIwLjEzOTQyNiwgMC4yNDY5OTMsIDAuMzI5ODA0LCAwLjQzMzI0NCwgMC41MzY2OTEsIDAuNjQwMTE1LCAwLjc0MzY1MyIsIFwKLSAgICAgICAgICAiMC4xNTU0NjEsIDAuMjYzMTUxLCAwLjM0NTk1OCwgMC40NDkzOTcsIDAuNTUyODkyLCAwLjY1NjI2LCAwLjc1OTg3OSIsIFwKLSAgICAgICAgICAiMC4xNjgwNjIsIDAuMjc1OTk5LCAwLjM1ODgxMSwgMC40NjIyNDIsIDAuNTY1NzMyLCAwLjY2OTA4LCAwLjc3MjU2MiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjA5OTgsIDAuMjYyNzI4LCAwLjQyODMxNSwgMC42MzY5MzksIDAuODQ3NzEzLCAxLjA1NzA3LCAxLjI2NDQzIiwgXAotICAgICAgICAgICIwLjA2MTAzLCAwLjI2Mjc0OCwgMC40MjgyNTMsIDAuNjM3OTE0LCAwLjg0NTAyNSwgMS4wNTc0OSwgMS4yNjQyOSIsIFwKLSAgICAgICAgICAiMC4wNjEwNDUsIDAuMjYyNzM4LCAwLjQyODI2NCwgMC42Mzc5MjksIDAuODQ0OTQxLCAxLjA1NDM1LCAxLjI2NDIiLCBcCi0gICAgICAgICAgIjAuMDYxMDQ2LCAwLjI2MjcyNCwgMC40MjgyNzgsIDAuNjM3ODU1LCAwLjg0NzE5OSwgMS4wNTcyNiwgMS4yNjQzIiwgXAotICAgICAgICAgICIwLjA2MTM1NiwgMC4yNjI3MzQsIDAuNDI4MTYyLCAwLjYzNzE5MSwgMC44NDc2NjMsIDEuMDU2MjQsIDEuMjY1NjQiLCBcCi0gICAgICAgICAgIjAuMDYyMTc5LCAwLjI2MjY4OCwgMC40MjgzOTMsIDAuNjM2ODMsIDAuODQ1MTk1LCAxLjA1NzA3LCAxLjI2NDM4IiwgXAotICAgICAgICAgICIwLjA2MzI1NiwgMC4yNjMwNzEsIDAuNDI5MjcxLCAwLjYzNzAxLCAwLjg0NTIyLCAxLjA1NzI5LCAxLjI2NDYyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwNTE3MywgMC4yMDk4MTYsIDAuMjkxNDk5LCAwLjM5MzUzNSwgMC40OTU1NCwgMC41OTc0OTcsIDAuNjk5NDY1IiwgXAotICAgICAgICAgICIwLjExNDkzOCwgMC4yMTk2MTYsIDAuMzAxMzAxLCAwLjQwMzQwNiwgMC41MDU0NDgsIDAuNjA3MzY2LCAwLjcwOTM0NSIsIFwKLSAgICAgICAgICAiMC4xMjYxNDEsIDAuMjMwODE0LCAwLjMxMjQ4MywgMC40MTQ1NTUsIDAuNTE2NTM2LCAwLjYxODUwMywgMC43MjA0NTUiLCBcCi0gICAgICAgICAgIjAuMTM1MTksIDAuMjM5OTM3LCAwLjMyMTYxMywgMC40MjM2ODMsIDAuNTI1NjkzLCAwLjYyNzY3NSwgMC43Mjk1ODQiLCBcCi0gICAgICAgICAgIjAuMTQzMjU5LCAwLjI0Nzg4OSwgMC4zMjk1NzYsIDAuNDMxNjMyLCAwLjUzMzY1NywgMC42MzU1NjksIDAuNzM3NTM0IiwgXAotICAgICAgICAgICIwLjE1MzcyMywgMC4yNTg0MDYsIDAuMzQwMDYxLCAwLjQ0MjA5MywgMC41NDQwODMsIDAuNjQ2MDc5LCAwLjc0OCIsIFwKLSAgICAgICAgICAiMC4xNjE1NDUsIDAuMjY2MjQ5LCAwLjM0NzkwNSwgMC40NDk5OTMsIDAuNTUxOTczLCAwLjY1MzkwOCwgMC43NTU5MjQiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU5MTkxLCAwLjI2NDEwNywgMC40MzI3NTIsIDAuNjQ0NTY5LCAwLjg1NjU4MywgMS4wNjc0OCwgMS4yNzkzNiIsIFwKLSAgICAgICAgICAiMC4wNTkyMTUsIDAuMjY0MTI2LCAwLjQzMjc1MiwgMC42NDM0MzcsIDAuODU2NjI1LCAxLjA2ODY3LCAxLjI3NzkzIiwgXAotICAgICAgICAgICIwLjA1OTE3NiwgMC4yNjQyODQsIDAuNDMyNzQyLCAwLjY0MzQ2OCwgMC44NTU0OTMsIDEuMDY3NiwgMS4yNzk1NCIsIFwKLSAgICAgICAgICAiMC4wNTkxNDYsIDAuMjY0MDQzLCAwLjQzMjc1MSwgMC42NDM0MTQsIDAuODU0ODI2LCAxLjA2NzA3LCAxLjI3OTUxIiwgXAotICAgICAgICAgICIwLjA1OTE3MSwgMC4yNjM5MzcsIDAuNDMyODc4LCAwLjY0MzYyNSwgMC44NTY1NiwgMS4wNjc1OSwgMS4yNzk2NyIsIFwKLSAgICAgICAgICAiMC4wNTkxOTcsIDAuMjY0Mjk4LCAwLjQzMjg4NSwgMC42NDM2MjgsIDAuODU2NDU1LCAxLjA2NzM2LCAxLjI3OTQ0IiwgXAotICAgICAgICAgICIwLjA1OTI5LCAwLjI2Mzg5MiwgMC40MzI4MTcsIDAuNjQzNTExLCAwLjg1NjQ1OCwgMS4wNjg1MywgMS4yNzkzIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwOTIzNSwgMC4yMTYyMTgsIDAuMjk5MDQ3LCAwLjQwMjUxMywgMC41MDU5ODIsIDAuNjA5MzYsIDAuNzEyNzYxIiwgXAotICAgICAgICAgICIwLjExOTUxMSwgMC4yMjY0LCAwLjMwOTIzOCwgMC40MTI3MTIsIDAuNTE2MTc0LCAwLjYxOTU4LCAwLjcyMjk3MiIsIFwKLSAgICAgICAgICAiMC4xMzEzMjgsIDAuMjM4MjkyLCAwLjMyMTEzMiwgMC40MjQ2MTgsIDAuNTI4MDc0LCAwLjYzMTQ1LCAwLjczNDgyNyIsIFwKLSAgICAgICAgICAiMC4xNDExNjEsIDAuMjQ4MDQ1LCAwLjMzMDg4NSwgMC40MzQzNDYsIDAuNTM3ODI0LCAwLjY0MTIsIDAuNzQ0NjM5IiwgXAotICAgICAgICAgICIwLjE0OTgyMSwgMC4yNTY2OTgsIDAuMzM5NTMsIDAuNDQzMDIyLCAwLjU0NjQ2NywgMC42NDk4NDUsIDAuNzUzMjciLCBcCi0gICAgICAgICAgIjAuMTYxMjI0LCAwLjI2ODIwMSwgMC4zNTEwMTgsIDAuNDU0NTEzLCAwLjU1Nzk3OCwgMC42NjEzNTEsIDAuNzY0NzMzIiwgXAotICAgICAgICAgICIwLjE3MDEwMSwgMC4yNzcwMTgsIDAuMzU5ODUyLCAwLjQ2MzM1LCAwLjU2NjgwNCwgMC42NzAxOCwgMC43NzM1NjEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU5OTA1LCAwLjI2MjIsIDAuNDI4NjM4LCAwLjYzNzgyMywgMC44NDc1LCAxLjA1NzE5LCAxLjI2NjUyIiwgXAotICAgICAgICAgICIwLjA1OTk0LCAwLjI2MjA4NCwgMC40Mjg2MjksIDAuNjM3ODM3LCAwLjg0NzQ1OSwgMS4wNTczMSwgMS4yNjcwNSIsIFwKLSAgICAgICAgICAiMC4wNTk5MSwgMC4yNjE4MDEsIDAuNDI4NjM4LCAwLjYzNzA0NiwgMC44NDc0MDYsIDEuMDU3MTUsIDEuMjY2ODUiLCBcCi0gICAgICAgICAgIjAuMDU5OTA2LCAwLjI2MTgxMywgMC40Mjg2MiwgMC42Mzc3NTQsIDAuODQ3MzU4LCAxLjA1NzE0LCAxLjI2NDMzIiwgXAotICAgICAgICAgICIwLjA1OTg2NCwgMC4yNjE4MDUsIDAuNDI4NjEzLCAwLjYzNjc3LCAwLjg0NzM1MywgMS4wNTcxNSwgMS4yNjcwNiIsIFwKLSAgICAgICAgICAiMC4wNTk5MDMsIDAuMjYxODQzLCAwLjQyODYzOSwgMC42MzY5MzYsIDAuODQ3MzY5LCAxLjA1NzE5LCAxLjI2NjQ5IiwgXAotICAgICAgICAgICIwLjA1OTg3MywgMC4yNjIwNTEsIDAuNDI3OTg3LCAwLjYzNjMwNCwgMC44NDczNjgsIDEuMDU3MTksIDEuMjY2MzIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDgwMDMxLCAwLjE4NDY5OCwgMC4yNjYzNjQsIDAuMzY4NDg3LCAwLjQ3MDQxNSwgMC41NzIzNTgsIDAuNjc0MzUxIiwgXAotICAgICAgICAgICIwLjA4OTM1NiwgMC4xOTM5ODMsIDAuMjc1NjYxLCAwLjM3Nzc3MywgMC40Nzk3MDIsIDAuNTgxNjU0LCAwLjY4MzYyOCIsIFwKLSAgICAgICAgICAiMC4xMDA5ODUsIDAuMjA1NjQsIDAuMjg3MzI3LCAwLjM4OTQ0NCwgMC40OTEzNzUsIDAuNTkzMzI2LCAwLjY5NTMwNiIsIFwKLSAgICAgICAgICAiMC4xMTI3NzUsIDAuMjE3NDgzLCAwLjI5OTE1NSwgMC40MDEyMzIsIDAuNTAzMjE0LCAwLjYwNTE4NSwgMC43MDcxMzciLCBcCi0gICAgICAgICAgIjAuMTI0MTU2LCAwLjIyODkxLCAwLjMxMDYxNSwgMC40MTI2NzMsIDAuNTE0NzAyLCAwLjYxNjY1LCAwLjcxODU4MyIsIFwKLSAgICAgICAgICAiMC4xNDA2ODgsIDAuMjQ1NTI1LCAwLjMyNzIzNiwgMC40MjkyNzksIDAuNTMxMjgxLCAwLjYzMzMwMywgMC43MzUxOTUiLCBcCi0gICAgICAgICAgIjAuMTUzNDYxLCAwLjI1ODU5NywgMC4zNDAzMDMsIDAuNDQyMzA5LCAwLjU0NDM2MSwgMC42NDYyOCwgMC43NDgyNDYiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU5MDQ0LCAwLjI2Mzk0NywgMC40MzIzMDQsIDAuNjQzNDcsIDAuODU2NjE0LCAxLjA2ODI2LCAxLjI3OTM2IiwgXAotICAgICAgICAgICIwLjA1OTEwOCwgMC4yNjQwMzksIDAuNDMyNzA0LCAwLjY0MzMyOCwgMC44NTY0NTksIDEuMDY3NDEsIDEuMjc5NTIiLCBcCi0gICAgICAgICAgIjAuMDU5MTUyLCAwLjI2NDA1NiwgMC40MzI3MDcsIDAuNjQzNTAyLCAwLjg1NjU2LCAxLjA2NzQ0LCAxLjI4MDgxIiwgXAotICAgICAgICAgICIwLjA1OTIyNywgMC4yNjM5MTEsIDAuNDMyNzEzLCAwLjY0MzQ2MSwgMC44NTU1MDUsIDEuMDY3NjIsIDEuMjc5NDciLCBcCi0gICAgICAgICAgIjAuMDU5ODA4LCAwLjI2NDE0MywgMC40MzI4OTUsIDAuNjQzNTE5LCAwLjg1NjUwNCwgMS4wNjY4NiwgMS4yNzk1OCIsIFwKLSAgICAgICAgICAiMC4wNjE2MTUsIDAuMjY0NTc3LCAwLjQzMzAyNiwgMC42NDM3OCwgMC44NTQ5OTgsIDEuMDY4NiwgMS4yNzk0NyIsIFwKLSAgICAgICAgICAiMC4wNjM0ODQsIDAuMjY1MTE1LCAwLjQzMzIyNCwgMC42NDQ2MTEsIDAuODU2NTU0LCAxLjA2ODU1LCAxLjI3OTYiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc5NzI5LCAwLjE4NzI0MSwgMC4yNzAwMzYsIDAuMzczNDY4LCAwLjQ3Njk1NSwgMC41ODAzMTgsIDAuNjgzOTQ5IiwgXAotICAgICAgICAgICIwLjA4ODg2OCwgMC4xOTYzNjEsIDAuMjc5MTUxLCAwLjM4MjU4MywgMC40ODYwMTEsIDAuNTg5NTAxLCAwLjY5MzA4OSIsIFwKLSAgICAgICAgICAiMC4xMDAxNSwgMC4yMDc2MTcsIDAuMjkwNDExLCAwLjM5Mzg1MSwgMC40OTczMTUsIDAuNjAwNzE0LCAwLjcwNDEzNyIsIFwKLSAgICAgICAgICAiMC4xMTEzNDYsIDAuMjE4ODUyLCAwLjMwMTY4NywgMC40MDUwODcsIDAuNTA4NjEsIDAuNjExOTg2LCAwLjcxNTYiLCBcCi0gICAgICAgICAgIjAuMTIxODgzLCAwLjIyOTQyOSwgMC4zMTIyMywgMC40MTU3MjIsIDAuNTE5MjE1LCAwLjYyMjU4MiwgMC43MjU5NjIiLCBcCi0gICAgICAgICAgIjAuMTM2NjUzLCAwLjI0NDQ5NiwgMC4zMjczMDQsIDAuNDMwNzI5LCAwLjUzNDE0NiwgMC42Mzc1OCwgMC43NDEyODUiLCBcCi0gICAgICAgICAgIjAuMTQ3ODg5LCAwLjI1NjA4MiwgMC4zMzg4NzIsIDAuNDQyMzUyLCAwLjU0NTc3NCwgMC42NDkzLCAwLjc1MjY4MSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjA3NDQsIDAuMjYyNjk4LCAwLjQyODE4MywgMC42MzY3NDcsIDAuODQ1MTI5LCAxLjA1NjgyLCAxLjI2NDE4IiwgXAotICAgICAgICAgICIwLjA2MDc2NCwgMC4yNjI0OTgsIDAuNDI4MTY5LCAwLjYzNjcwNiwgMC44NDczNTMsIDEuMDU0MywgMS4yNjQwNiIsIFwKLSAgICAgICAgICAiMC4wNjA3NzQsIDAuMjYyNDc3LCAwLjQyODgyLCAwLjYzNjg1NywgMC44NDc1MzcsIDEuMDU2NjYsIDEuMjY3MDkiLCBcCi0gICAgICAgICAgIjAuMDYwODMxLCAwLjI2MjQ5MiwgMC40MjgxOTcsIDAuNjM2NzksIDAuODQ1MTY5LCAxLjA1Njc1LCAxLjI2NDI5IiwgXAotICAgICAgICAgICIwLjA2MTI3NiwgMC4yNjI1NTYsIDAuNDI4ODYyLCAwLjYzNjc1NiwgMC44NDUxMzgsIDEuMDU2OCwgMS4yNjcwOCIsIFwKLSAgICAgICAgICAiMC4wNjI2NTEsIDAuMjYzMDA1LCAwLjQyOTEwOCwgMC42Mzc4NTMsIDAuODQ3MzIyLCAxLjA1NzE1LCAxLjI2MzkzIiwgXAotICAgICAgICAgICIwLjA2NDM1MywgMC4yNjM1ODIsIDAuNDI5Mjc0LCAwLjYzNjM5MywgMC44NDYzNjcsIDEuMDU1MDYsIDEuMjY0OCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzk1MDEsIDAuMTg0NjY3LCAwLjI2NjMxMiwgMC4zNjgzMDMsIDAuNDcwMjY4LCAwLjU3MjU0OSwgMC42NzQyODEiLCBcCi0gICAgICAgICAgIjAuMDg5Njg4LCAwLjE5NDg0NCwgMC4yNzY0NDUsIDAuMzc4NDY2LCAwLjQ4MDQ1NywgMC41ODI2LCAwLjY4NDQ3MSIsIFwKLSAgICAgICAgICAiMC4xMDE2OTcsIDAuMjA2Nzg0LCAwLjI4ODQwMiwgMC4zOTA0MzEsIDAuNDkyMzk1LCAwLjU5NDY2NywgMC42OTY3NyIsIFwKLSAgICAgICAgICAiMC4xMTExMjYsIDAuMjE2MjM4LCAwLjI5Nzg1NCwgMC4zOTk4ODMsIDAuNTAxODQ5LCAwLjYwNDEyOCwgMC43MDYwNjQiLCBcCi0gICAgICAgICAgIjAuMTE4NjUyLCAwLjIyMzc1OSwgMC4zMDUzNTksIDAuNDA3Mzg3LCAwLjUwOTM3NywgMC42MTE1MzcsIDAuNzEzMzg5IiwgXAotICAgICAgICAgICIwLjEyODUzMywgMC4yMzM1ODksIDAuMzE1MTYsIDAuNDE3Mjc3LCAwLjUxOTIsIDAuNjIxNTEsIDAuNzIzMjE3IiwgXAotICAgICAgICAgICIwLjEzNTc0MiwgMC4yNDA3NTYsIDAuMzIyNCwgMC40MjQzMjEsIDAuNTI2MzMzLCAwLjYyODU0NCwgMC43MzAzNjQiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU5OTIzLCAwLjI2NDI1OCwgMC40MzIwMzYsIDAuNjQzNDUxLCAwLjg1NjU5OSwgMS4wNjY5MywgMS4yNzg1IiwgXAotICAgICAgICAgICIwLjA1OTk0NiwgMC4yNjQzNzIsIDAuNDMyNzc4LCAwLjY0MzYwNywgMC44NTY2MTEsIDEuMDY3MTQsIDEuMjc4NTEiLCBcCi0gICAgICAgICAgIjAuMDU5OTMyLCAwLjI2NDM4OSwgMC40MzI3ODIsIDAuNjQzNDg5LCAwLjg1NjU4OCwgMS4wNjY5MiwgMS4yNzg4NCIsIFwKLSAgICAgICAgICAiMC4wNTk5MzMsIDAuMjY0Mzg4LCAwLjQzMjc3OSwgMC42NDM0ODIsIDAuODU2NTkxLCAxLjA2NjkzLCAxLjI3ODciLCBcCi0gICAgICAgICAgIjAuMDU5ODE3LCAwLjI2NDI1NSwgMC40MzI3MzIsIDAuNjQzNTk3LCAwLjg1NjQ5OSwgMS4wNjcxMywgMS4yNzg1MSIsIFwKLSAgICAgICAgICAiMC4wNTk3NzMsIDAuMjY0Mzc0LCAwLjQzMjY3MywgMC42NDMyOTMsIDAuODU2NDY2LCAxLjA2NjYsIDEuMjc4NSIsIFwKLSAgICAgICAgICAiMC4wNTk3NzQsIDAuMjY0MjExLCAwLjQzMjgxNiwgMC42NDM1MDksIDAuODU2NDczLCAxLjA2Njg1LCAxLjI4MDg3Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5ODk5NywgMC4yMDU5NzgsIDAuMjg4ODA4LCAwLjM5MjI5OCwgMC40OTU3NDksIDAuNTk5MTI3LCAwLjcwMjYzMiIsIFwKLSAgICAgICAgICAiMC4xMDkzMzYsIDAuMjE2MjIsIDAuMjk5MDU3LCAwLjQwMjU0NSwgMC41MDU5OTksIDAuNjA5Mzc1LCAwLjcxMjg0MiIsIFwKLSAgICAgICAgICAiMC4xMjAxOSwgMC4yMjcwNjUsIDAuMzA5OTA1LCAwLjQxMzM5MiwgMC41MTY4NDYsIDAuNjIwMjIyLCAwLjcyMzY4OSIsIFwKLSAgICAgICAgICAiMC4xMjg3NjMsIDAuMjM1Nzg4LCAwLjMxODYzNSwgMC40MjIwMTYsIDAuNTI1NTY5LCAwLjYyODg0MywgMC43MzIyNTkiLCBcCi0gICAgICAgICAgIjAuMTM1ODgyLCAwLjI0Mjk2LCAwLjMyNTgwOCwgMC40MjkyODIsIDAuNTMyNjA5LCAwLjYzNTk4MSwgMC43Mzk0OTIiLCBcCi0gICAgICAgICAgIjAuMTQ1ODYsIDAuMjUyODY4LCAwLjMzNTcxMSwgMC40MzkxNzEsIDAuNTQyNjMsIDAuNjQ1OTMxLCAwLjc0OTMyOSIsIFwKLSAgICAgICAgICAiMC4xNTMxMjgsIDAuMjYwMzU4LCAwLjM0MzIzLCAwLjQ0NjY4MywgMC41NDk5MjMsIDAuNjUzMzQ5LCAwLjc1Njc0OSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTk5MDgsIDAuMjYyMTQ3LCAwLjQyODY3OCwgMC42MzYwNTIsIDAuODQ3Mzk3LCAxLjA1NzMsIDEuMjY0NDIiLCBcCi0gICAgICAgICAgIjAuMDU5OTEsIDAuMjYxODQzLCAwLjQyODYzMywgMC42MzcwODYsIDAuODQ3NDQyLCAxLjA1NzE3LCAxLjI2NzIxIiwgXAotICAgICAgICAgICIwLjA1OTkzMywgMC4yNjE3NzMsIDAuNDI4NjEsIDAuNjM3MDczLCAwLjg0NzQxNywgMS4wNTcxNSwgMS4yNjcxNyIsIFwKLSAgICAgICAgICAiMC4wNTk4MjMsIDAuMjYxNzk0LCAwLjQyODY3MiwgMC42MzcxMzMsIDAuODQ3MzY5LCAxLjA1NzE1LCAxLjI2NzA0IiwgXAotICAgICAgICAgICIwLjA2MDAwMiwgMC4yNjE4MjIsIDAuNDI4NzI1LCAwLjYzNzAzNiwgMC44NDcyNDcsIDEuMDU3MjQsIDEuMjY2OCIsIFwKLSAgICAgICAgICAiMC4wNTk5MzIsIDAuMjYyMzg0LCAwLjQyODA3MiwgMC42Mzc3ODgsIDAuODQ2MDQ4LCAxLjA1NzA4LCAxLjI2Njk5IiwgXAotICAgICAgICAgICIwLjA2MDAzNCwgMC4yNjIwODcsIDAuNDI4MTk2LCAwLjYzNjQ4NiwgMC44NDY1MTYsIDEuMDU1NzksIDEuMjY2ODUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQ1MTUsIDAuMDA0NTg4LCAwLjAwNDU5OSwgMC4wMDQ2MDUsIDAuMDA0NjA4LCAwLjAwNDYwOCwgMC4wMDQ2MSIsIFwKLSAgICAgICAgICAiMC4wMDQ0OSwgMC4wMDQ1NjQsIDAuMDA0NTc0LCAwLjAwNDU4MSwgMC4wMDQ1ODUsIDAuMDA0NTg0LCAwLjAwNDU4NSIsIFwKLSAgICAgICAgICAiMC4wMDQ0ODcsIDAuMDA0NTYsIDAuMDA0NTcxLCAwLjAwNDU3NiwgMC4wMDQ1ODEsIDAuMDA0NTgxLCAwLjAwNDU4MiIsIFwKLSAgICAgICAgICAiMC4wMDQ0OTIsIDAuMDA0NTY2LCAwLjAwNDU3OCwgMC4wMDQ1ODMsIDAuMDA0NTg2LCAwLjAwNDU4OCwgMC4wMDQ1ODkiLCBcCi0gICAgICAgICAgIjAuMDA0NDkyLCAwLjAwNDU2NCwgMC4wMDQ1NzgsIDAuMDA0NTgxLCAwLjAwNDU4NSwgMC4wMDQ1ODYsIDAuMDA0NTg4IiwgXAotICAgICAgICAgICIwLjAwNDUxLCAwLjAwNDU4NSwgMC4wMDQ1OTQsIDAuMDA0NiwgMC4wMDQ2MDMsIDAuMDA0NjA3LCAwLjAwNDYwNiIsIFwKLSAgICAgICAgICAiMC4wMDQ1MzIsIDAuMDA0NjAyLCAwLjAwNDYxMywgMC4wMDQ2MTksIDAuMDA0NjI1LCAwLjAwNDYyNCwgMC4wMDQ2MjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQyODcsIDAuMDA0MzgxLCAwLjAwNDM5NSwgMC4wMDQ0MDIsIDAuMDA0NDA2LCAwLjAwNDQwOCwgMC4wMDQ0MSIsIFwKLSAgICAgICAgICAiMC4wMDQyNTcsIDAuMDA0MzUxLCAwLjAwNDM2NSwgMC4wMDQzNzIsIDAuMDA0Mzc2LCAwLjAwNDM3OSwgMC4wMDQzOCIsIFwKLSAgICAgICAgICAiMC4wMDQyNTMsIDAuMDA0MzQ4LCAwLjAwNDM2MSwgMC4wMDQzNjksIDAuMDA0MzczLCAwLjAwNDM3NSwgMC4wMDQzNzciLCBcCi0gICAgICAgICAgIjAuMDA0MjYyLCAwLjAwNDM1NywgMC4wMDQzNzEsIDAuMDA0Mzc4LCAwLjAwNDM4MiwgMC4wMDQzODUsIDAuMDA0Mzg2IiwgXAotICAgICAgICAgICIwLjAwNDI2NywgMC4wMDQzNiwgMC4wMDQzNzQsIDAuMDA0MzgyLCAwLjAwNDM4NiwgMC4wMDQzODgsIDAuMDA0MzkiLCBcCi0gICAgICAgICAgIjAuMDA0Mjg0LCAwLjAwNDM3OSwgMC4wMDQzOTMsIDAuMDA0NDAxLCAwLjAwNDQwNSwgMC4wMDQ0MDgsIDAuMDA0NDA5IiwgXAotICAgICAgICAgICIwLjAwNDMwOCwgMC4wMDQ0LCAwLjAwNDQxNCwgMC4wMDQ0MjIsIDAuMDA0NDI2LCAwLjAwNDQyOCwgMC4wMDQ0MyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjUsIDAuMDAyNTY5LCAwLjAwMjU3OSwgMC4wMDI1ODIsIDAuMDAyNTg1LCAwLjAwMjU4NywgMC4wMDI1ODYiLCBcCi0gICAgICAgICAgIjAuMDAyNDUzLCAwLjAwMjUyOCwgMC4wMDI1MzcsIDAuMDAyNTQsIDAuMDAyNTQyLCAwLjAwMjU0NSwgMC4wMDI1NDQiLCBcCi0gICAgICAgICAgIjAuMDAyNDM5LCAwLjAwMjUxOCwgMC4wMDI1MjgsIDAuMDAyNTM0LCAwLjAwMjUzOCwgMC4wMDI1NCwgMC4wMDI1NDEiLCBcCi0gICAgICAgICAgIjAuMDAyNDI5LCAwLjAwMjUwOSwgMC4wMDI1MjMsIDAuMDAyNTMsIDAuMDAyNTM1LCAwLjAwMjUzNywgMC4wMDI1MzkiLCBcCi0gICAgICAgICAgIjAuMDAyNDQ0LCAwLjAwMjUyNCwgMC4wMDI1NDEsIDAuMDAyNTQ4LCAwLjAwMjU1MiwgMC4wMDI1NTUsIDAuMDAyNTU3IiwgXAotICAgICAgICAgICIwLjAwMjQ4MSwgMC4wMDI1NTksIDAuMDAyNTc2LCAwLjAwMjU4NSwgMC4wMDI1OTEsIDAuMDAyNTkxLCAwLjAwMjU5NiIsIFwKLSAgICAgICAgICAiMC4wMDI1MjIsIDAuMDAyNTk2LCAwLjAwMjYxNCwgMC4wMDI2MjQsIDAuMDAyNjM0LCAwLjAwMjYzNCwgMC4wMDI2MzkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDM2NjksIDAuMDAzNzYyLCAwLjAwMzc3NSwgMC4wMDM3ODMsIDAuMDAzNzg3LCAwLjAwMzc4OSwgMC4wMDM3OTEiLCBcCi0gICAgICAgICAgIjAuMDAzNjU2LCAwLjAwMzc0OCwgMC4wMDM3NjEsIDAuMDAzNzY5LCAwLjAwMzc3MywgMC4wMDM3NzUsIDAuMDAzNzc3IiwgXAotICAgICAgICAgICIwLjAwMzY1NiwgMC4wMDM3NDksIDAuMDAzNzYyLCAwLjAwMzc3LCAwLjAwMzc3NCwgMC4wMDM3NzYsIDAuMDAzNzc4IiwgXAotICAgICAgICAgICIwLjAwMzY2NSwgMC4wMDM3NTgsIDAuMDAzNzcyLCAwLjAwMzc3OCwgMC4wMDM3ODMsIDAuMDAzNzg1LCAwLjAwMzc4NiIsIFwKLSAgICAgICAgICAiMC4wMDM2NzcsIDAuMDAzNzcyLCAwLjAwMzc4NiwgMC4wMDM3OTMsIDAuMDAzNzk2LCAwLjAwMzc5OCwgMC4wMDM4MDEiLCBcCi0gICAgICAgICAgIjAuMDAzNzA1LCAwLjAwMzc5NywgMC4wMDM4MTEsIDAuMDAzODE4LCAwLjAwMzgyMiwgMC4wMDM4MjMsIDAuMDAzODI1IiwgXAotICAgICAgICAgICIwLjAwMzcyNSwgMC4wMDM4MjEsIDAuMDAzODM1LCAwLjAwMzg0MywgMC4wMDM4NDMsIDAuMDAzODQ1LCAwLjAwMzg0NyIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogWE9SMlg0ICoKLSAqIC0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoWE9SMlg0KSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMjk3MDA1OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2MjcwMzI7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjI2ODczOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDYyNzAzMjsKLSAgfQotICBwaW4oQikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNDU5MTg7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNDU5MDI7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNDU5MTg7Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC45NzUyMDY7Ci0gICAgZnVuY3Rpb24gOiAiKEFeQikiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk5NjYzLCAwLjE4MjMwNiwgMC4yNTUwOTUsIDAuMzA2NzMsIDAuMzg5Mzc0LCAwLjQ2MTYyLCAwLjU2NDkxMiIsIFwKLSAgICAgICAgICAiMC4xMDk1MDksIDAuMTkyMjQ2LCAwLjI2NTAzMiwgMC4zMTY2NzMsIDAuMzk5MjY5LCAwLjQ3MTYxLCAwLjU3NDgxOCIsIFwKLSAgICAgICAgICAiMC4xMjI1NSwgMC4yMDUxOTQsIDAuMjc3OTksIDAuMzI5NjIxLCAwLjQxMjI3MywgMC40ODQ1MzMsIDAuNTg3ODEzIiwgXAotICAgICAgICAgICIwLjEzNTIyOCwgMC4yMTc5MjIsIDAuMjkwNzM0LCAwLjM0MjM3NSwgMC40MjQ5NzYsIDAuNDk3MjY0LCAwLjYwMDQ3NSIsIFwKLSAgICAgICAgICAiMC4xNDgwMSwgMC4yMzA2ODQsIDAuMzAzNDY1LCAwLjM1NTE0MSwgMC40Mzc3NDUsIDAuNTEsIDAuNjEzNDE4IiwgXAotICAgICAgICAgICIwLjE2NzMwMywgMC4yNTAwNjgsIDAuMzIyODc1LCAwLjM3NDUyLCAwLjQ1NzEyNSwgMC41Mjk0OCwgMC42MzI2NzkiLCBcCi0gICAgICAgICAgIjAuMTgzMzE3LCAwLjI2NjM1NiwgMC4zMzkxMiwgMC4zOTA3OTUsIDAuNDczNDA0LCAwLjU0NTY2MiwgMC42NDkwODMiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDY3MywgMC4xODg1MzEsIDAuMzMzOTQzLCAwLjQzOTU3LCAwLjYwOTcwNywgMC43NTcyOTQsIDAuOTcwNjY1IiwgXAotICAgICAgICAgICIwLjA0NjgzOSwgMC4xODg1MzYsIDAuMzMzOTQxLCAwLjQzOTM0NiwgMC42MDkzOTksIDAuNzU4OTU5LCAwLjk3MjUxMSIsIFwKLSAgICAgICAgICAiMC4wNDY3MzUsIDAuMTg4NTM0LCAwLjMzMzk0OCwgMC40Mzk1NjYsIDAuNjA5NzA0LCAwLjc1ODc2NiwgMC45NzA4MTkiLCBcCi0gICAgICAgICAgIjAuMDQ2Nzk5LCAwLjE4ODUyOCwgMC4zMzM5MjksIDAuNDM5MzUsIDAuNjA5Mzg2LCAwLjc1ODg1MSwgMC45NzIzNTYiLCBcCi0gICAgICAgICAgIjAuMDQ2ODAzLCAwLjE4ODUxLCAwLjMzMzg3OSwgMC40MzkzMTcsIDAuNjA5NDAxLCAwLjc1ODU0OCwgMC45NzAzNjIiLCBcCi0gICAgICAgICAgIjAuMDQ3NDM5LCAwLjE4ODY2NywgMC4zMzM5OTgsIDAuNDM5MzY0LCAwLjYwOTQyLCAwLjc1ODg2OSwgMC45NzI1MDUiLCBcCi0gICAgICAgICAgIjAuMDQ4MzAzLCAwLjE4ODkwNCwgMC4zMzQwNzksIDAuNDM5NDA2LCAwLjYwOTQxOSwgMC43NTg1NCwgMC45NzA2ODkiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDQwMjgsIDAuMTg5MTg5LCAwLjI2MzM5NCwgMC4zMTU4OTMsIDAuMzk5NzQ1LCAwLjQ3MzEwMSwgMC41NzgwMDkiLCBcCi0gICAgICAgICAgIjAuMTEzNzIzLCAwLjE5OTAyMiwgMC4yNzMyMDksIDAuMzI1NzA3LCAwLjQwOTU2MiwgMC40ODI5MTgsIDAuNTg3NzA1IiwgXAotICAgICAgICAgICIwLjEyNjAzMSwgMC4yMTEyODIsIDAuMjg1NDgsIDAuMzM3OTgyLCAwLjQyMTgyMSwgMC40OTUyNDcsIDAuNjAwMDAzIiwgXAotICAgICAgICAgICIwLjEzODI0OCwgMC4yMjM0ODEsIDAuMjk3NjgzLCAwLjM1MDE4MiwgMC40MzQwNDIsIDAuNTA3NDAxLCAwLjYxMjE4NCIsIFwKLSAgICAgICAgICAiMC4xNTAzMDgsIDAuMjM1NDY2LCAwLjMwOTY4MSwgMC4zNjIxNjksIDAuNDQ2MDMsIDAuNTE5NDA1LCAwLjYyNDIyOCIsIFwKLSAgICAgICAgICAiMC4xNjg2MDIsIDAuMjUzOTI0LCAwLjMyODEyMywgMC4zODA2MTYsIDAuNDY0NDg1LCAwLjUzNzg0NSwgMC42NDI2MzgiLCBcCi0gICAgICAgICAgIjAuMTgzNTE3LCAwLjI2OTA4NCwgMC4zNDMyNjMsIDAuMzk1NzcyLCAwLjQ3OTYzMywgMC41NTI5OTIsIDAuNjU3NzkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDgxMjEsIDAuMTg5MTg4LCAwLjMzMzI3MiwgMC40Mzc3NjcsIDAuNjA1ODk0LCAwLjc1MzY5NywgMC45NjQ4MzciLCBcCi0gICAgICAgICAgIjAuMDQ4MDA2LCAwLjE4OTIyOCwgMC4zMzMyNDUsIDAuNDM3NzkzLCAwLjYwNTkzNSwgMC43NTM3MywgMC45NjY4NjIiLCBcCi0gICAgICAgICAgIjAuMDQ4MDI2LCAwLjE4OTI0MSwgMC4zMzMyNDQsIDAuNDM3MzY2LCAwLjYwNTk3MSwgMC43NTM2NDUsIDAuOTY3MjY5IiwgXAotICAgICAgICAgICIwLjA0ODA1LCAwLjE4OTIzNiwgMC4zMzMzNjgsIDAuNDM3OTE3LCAwLjYwNTk0OCwgMC43NTM3MzYsIDAuOTY3MDcxIiwgXAotICAgICAgICAgICIwLjA0ODExLCAwLjE4OTI1MywgMC4zMzMyNDgsIDAuNDM3NjY2LCAwLjYwNTk0MywgMC43NTUwMzksIDAuOTY3Mjk3IiwgXAotICAgICAgICAgICIwLjA0ODYwNSwgMC4xODk0MjQsIDAuMzMzMzI1LCAwLjQzNzcsIDAuNjA1OTA4LCAwLjc1MzY4NywgMC45NjY4MzIiLCBcCi0gICAgICAgICAgIjAuMDQ5NDcxLCAwLjE4OTc0OCwgMC4zMzM1MiwgMC40Mzc3NDQsIDAuNjA1ODgyLCAwLjc1NDI5MywgMC45NjY2NDEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTg3NjEsIDAuMTc2NDAyLCAwLjI0ODg2NiwgMC4zMDA1MzEsIDAuMzgzMjA5LCAwLjQ1NTQ5MiwgMC41NTg2NzkiLCBcCi0gICAgICAgICAgIjAuMTA4NTQsIDAuMTg2MzEsIDAuMjU4NywgMC4zMTAzNjgsIDAuMzkzMDMyLCAwLjQ2NTMzOSwgMC41Njg1MjgiLCBcCi0gICAgICAgICAgIjAuMTIwNDI4LCAwLjE5ODEzNCwgMC4yNzA2LCAwLjMyMjI2NywgMC40MDQ5MTEsIDAuNDc3MjM5LCAwLjU4MDQ2IiwgXAotICAgICAgICAgICIwLjEzMDU1LCAwLjIwODI4NywgMC4yODA3NTUsIDAuMzMyNDIyLCAwLjQxNTA5MSwgMC40ODczODcsIDAuNTkwNTc1IiwgXAotICAgICAgICAgICIwLjEzOTIwNSwgMC4yMTY4ODUsIDAuMjg5MzUyLCAwLjM0MTAxOSwgMC40MjM2ODUsIDAuNDk1OTg5LCAwLjU5OTE3NyIsIFwKLSAgICAgICAgICAiMC4xNTEzMzMsIDAuMjI5MDg3LCAwLjMwMTU0OCwgMC4zNTMyMTUsIDAuNDM1ODg3LCAwLjUwODEzLCAwLjYxMTMyMSIsIFwKLSAgICAgICAgICAiMC4xNjAyNTYsIDAuMjM4MDMsIDAuMzEwNDg1LCAwLjM2MjE2MSwgMC40NDQ4MjksIDAuNTE3MTEzLCAwLjYyMDMwNCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0MDMyMywgMC4xODI3NzYsIDAuMzMwNDk1LCAwLjQzNjg1OSwgMC42MDY3MTQsIDAuNzU3NDI4LCAwLjk3MTIxMyIsIFwKLSAgICAgICAgICAiMC4wNDAyNzYsIDAuMTgyNzkxLCAwLjMzMDQ5MiwgMC40MzY4NTgsIDAuNjA2OTMsIDAuNzU3NDMyLCAwLjk3MTIxNSIsIFwKLSAgICAgICAgICAiMC4wNDAyMjYsIDAuMTgyODAzLCAwLjMzMDQ3MywgMC40MzY4NjIsIDAuNjA3NzU5LCAwLjc1NzQzMywgMC45NzEyNTEiLCBcCi0gICAgICAgICAgIjAuMDQwMjE1LCAwLjE4MjgxMywgMC4zMzA0OTIsIDAuNDM2ODc0LCAwLjYwNjUxNSwgMC43NTc0MTYsIDAuOTcxMjE4IiwgXAotICAgICAgICAgICIwLjA0MDE5NSwgMC4xODI3OTUsIDAuMzMwNDgsIDAuNDM2ODY1LCAwLjYwNjkyNSwgMC43NTc0MjgsIDAuOTcxMTk0IiwgXAotICAgICAgICAgICIwLjA0MDE3MSwgMC4xODI4NTUsIDAuMzMwNDY3LCAwLjQzNjg2NSwgMC42MDY1NTQsIDAuNzU3MzA2LCAwLjk3MTA3OSIsIFwKLSAgICAgICAgICAiMC4wNDAzOTgsIDAuMTgyODI1LCAwLjMzMDUxNywgMC40MzY5NCwgMC42MDY4MzIsIDAuNzU3Mjk4LCAwLjk3MTA5NiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwMTcxNSwgMC4xODE0MjMsIDAuMjU0OTk1LCAwLjMwNzQ0MiwgMC4zOTEzMzEsIDAuNDY0NzY3LCAwLjU2OTUxMiIsIFwKLSAgICAgICAgICAiMC4xMTE4MzksIDAuMTkxNTAyLCAwLjI2NTEzLCAwLjMxNzU4MywgMC40MDE0ODQsIDAuNDc0ODU1LCAwLjU3OTYyMiIsIFwKLSAgICAgICAgICAiMC4xMjQyOTIsIDAuMjA0MDIxLCAwLjI3NzYzNSwgMC4zMzAwNzcsIDAuNDEzOTYxLCAwLjQ4NzM2NCwgMC41OTIxMTciLCBcCi0gICAgICAgICAgIjAuMTM1MjEyLCAwLjIxNDg3NSwgMC4yODg1MDcsIDAuMzQwOTUzLCAwLjQyNDg0MywgMC40OTgyNDIsIDAuNjAzMDMiLCBcCi0gICAgICAgICAgIjAuMTQ0NTI5LCAwLjIyNDE3MiwgMC4yOTc3ODksIDAuMzUwMjUsIDAuNDM0MTMyLCAwLjUwNzUsIDAuNjEyMzc2IiwgXAotICAgICAgICAgICIwLjE1NzIyMiwgMC4yMzY5NTMsIDAuMzEwNTk3LCAwLjM2MzAzMSwgMC40NDY5MjMsIDAuNTIwMzU2LCAwLjYyNTA2NiIsIFwKLSAgICAgICAgICAiMC4xNjcyNTUsIDAuMjQ2ODkxLCAwLjMyMDUyNywgMC4zNzI5NzcsIDAuNDU2ODc0LCAwLjUzMDI0MywgMC42MzUwNTYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDA5LCAwLjE4MjM4OSwgMC4zMjg4MSwgMC40MzQ3ODQsIDAuNjAzMzcsIDAuNzUxNTk0LCAwLjk2NTY3MyIsIFwKLSAgICAgICAgICAiMC4wNDA4OTIsIDAuMTgyNjY5LCAwLjMyODg0MiwgMC40MzQ3NzIsIDAuNjA0NDcyLCAwLjc1MTIzMywgMC45NjU1MDUiLCBcCi0gICAgICAgICAgIjAuMDQwODQ0LCAwLjE4MjYxMywgMC4zMjkyOTksIDAuNDM0NzYsIDAuNjAzMzQ5LCAwLjc1MTY5NSwgMC45NjUxMTIiLCBcCi0gICAgICAgICAgIjAuMDQwODgxLCAwLjE4MjY2OCwgMC4zMjg3NzYsIDAuNDM0NzIyLCAwLjYwMzMxMSwgMC43NTE0ODIsIDAuOTY1NTczIiwgXAotICAgICAgICAgICIwLjA0MDgwOCwgMC4xODI2NDMsIDAuMzI4Nzk4LCAwLjQzNDE5OSwgMC42MDMzNzIsIDAuNzUyNjMsIDAuOTYzMzAxIiwgXAotICAgICAgICAgICIwLjA0MDgyMSwgMC4xODI3MiwgMC4zMjkzNTUsIDAuNDM0NzU5LCAwLjYwNDM1OSwgMC43NTEyMjcsIDAuOTY1Mzk0IiwgXAotICAgICAgICAgICIwLjA0MDgyLCAwLjE4MjY3NywgMC4zMjg3OTIsIDAuNDM0MTA3LCAwLjYwMzQ4LCAwLjc1MTgwOCwgMC45NjM3MDUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjg1MzEsIDAuMTQ2MTg1LCAwLjIxODY0NywgMC4yNzAzMTEsIDAuMzUyOTkxLCAwLjQyNTI2OSwgMC41Mjg0NiIsIFwKLSAgICAgICAgICAiMC4wNzc5NjQsIDAuMTU1NjE4LCAwLjIyODA4LCAwLjI3OTc0NSwgMC4zNjI0MTIsIDAuNDM0NzEsIDAuNTM3OTAxIiwgXAotICAgICAgICAgICIwLjA4OTYwNywgMC4xNjcyMjksIDAuMjM5NzA2LCAwLjI5MTM5NywgMC4zNzQwNTUsIDAuNDQ2MzM2LCAwLjU0OTUyNyIsIFwKLSAgICAgICAgICAiMC4xMDE0OTUsIDAuMTc5MTQ0LCAwLjI1MTYxOSwgMC4zMDMyOTEsIDAuMzg1OTYzLCAwLjQ1ODI2NiwgMC41NjE0NTkiLCBcCi0gICAgICAgICAgIjAuMTEyNzkxLCAwLjE5MDU3NCwgMC4yNjMwNTQsIDAuMzE0NzI4LCAwLjM5NzM5NywgMC40Njk3MDcsIDAuNTcyODk3IiwgXAotICAgICAgICAgICIwLjEyOTEyNiwgMC4yMDczNTIsIDAuMjc5ODQyLCAwLjMzMTUwMiwgMC40MTQxMjIsIDAuNDg2NTIxLCAwLjU4OTY1MiIsIFwKLSAgICAgICAgICAiMC4xNDE2NjgsIDAuMjIwNDgsIDAuMjkyOTM4LCAwLjM0NDU3NCwgMC40MjcyMTIsIDAuNDk5NTQzLCAwLjYwMjc1NyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0MDAzOCwgMC4xODI3OCwgMC4zMzA0NzgsIDAuNDM2ODQ4LCAwLjYwNjczOSwgMC43NTc0MzUsIDAuOTcxMjM5IiwgXAotICAgICAgICAgICIwLjA0MDE1MSwgMC4xODI3ODIsIDAuMzMwNDcxLCAwLjQzNjg0NywgMC42MDY5MjUsIDAuNzU3NDE0LCAwLjk3MTIxNiIsIFwKLSAgICAgICAgICAiMC4wNDAyMDgsIDAuMTgyNzc5LCAwLjMzMDQ3NiwgMC40MzY5NzksIDAuNjA2NzQ3LCAwLjc1NzI4NiwgMC45NzExOCIsIFwKLSAgICAgICAgICAiMC4wNDAzMTksIDAuMTgyNzk4LCAwLjMzMDQ1NCwgMC40MzY4NTMsIDAuNjA2OTI2LCAwLjc1NzMxMSwgMC45NzExODIiLCBcCi0gICAgICAgICAgIjAuMDQxMDQ2LCAwLjE4Mjk1MiwgMC4zMzA1MDIsIDAuNDM2ODQ5LCAwLjYwNjkwNywgMC43NTczMDUsIDAuOTcxMDg3IiwgXAotICAgICAgICAgICIwLjA0MzQ3NSwgMC4xODM1MDMsIDAuMzMwMjU4LCAwLjQzNzAwNSwgMC42MDc2MDgsIDAuNzU2MDQzLCAwLjk3MTA4OSIsIFwKLSAgICAgICAgICAiMC4wNDU0OTYsIDAuMTg0MjI4LCAwLjMzMTA5MiwgMC40MzcwNjIsIDAuNjA3ODE3LCAwLjc1NjIwOCwgMC45NzExNTIiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODMzNzgsIDAuMTY4NjE4LCAwLjI0Mjc4NCwgMC4yOTUyNzUsIDAuMzc5MTI2LCAwLjQ1MjQ3NSwgMC41NTczMSIsIFwKLSAgICAgICAgICAiMC4wOTE5NzcsIDAuMTc3MTkyLCAwLjI1MTM2NSwgMC4zMDM4NTcsIDAuMzg3NzEsIDAuNDYxMDYxLCAwLjU2NTkiLCBcCi0gICAgICAgICAgIjAuMTAyNjY0LCAwLjE4Nzk0MiwgMC4yNjIxMjEsIDAuMzE0NjAyLCAwLjM5ODQ1OCwgMC40NzE4MjMsIDAuNTc2NjM5IiwgXAotICAgICAgICAgICIwLjExMzU3NCwgMC4xOTg3MzgsIDAuMjcyOTMxLCAwLjMyNTQxNywgMC40MDkyNywgMC40ODI2NjQsIDAuNTg3NDg3IiwgXAotICAgICAgICAgICIwLjEyNDI5LCAwLjIwOTQyOSwgMC4yODM2MTksIDAuMzM2MDgxLCAwLjQxOTk5LCAwLjQ5MzMxMiwgMC41OTgxNTQiLCBcCi0gICAgICAgICAgIjAuMTQwMTI2LCAwLjIyNTQzOCwgMC4yOTk2MywgMC4zNTIxMTcsIDAuNDM1OTc2LCAwLjUwOTMwNCwgMC42MTQxMjIiLCBcCi0gICAgICAgICAgIjAuMTUyMjQ4LCAwLjIzNzk3MSwgMC4zMTIyMDUsIDAuMzY0Njc4LCAwLjQ0ODUxNCwgMC41MjE4NzksIDAuNjI2NjgxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQ3NzYxLCAwLjE4OTA2MywgMC4zMzMyMzIsIDAuNDM3OTM5LCAwLjYwNjczNiwgMC43NTQ3OTEsIDAuOTY1OTg2IiwgXAotICAgICAgICAgICIwLjA0Nzc3MywgMC4xODkxMTgsIDAuMzMzMjAxLCAwLjQzNzc2NiwgMC42MDY3MzUsIDAuNzU0NzkyLCAwLjk2NTQ2NCIsIFwKLSAgICAgICAgICAiMC4wNDc2NTMsIDAuMTg5MTE3LCAwLjMzMzIwNiwgMC40Mzc4MDIsIDAuNjA2NzUzLCAwLjc1MzU2NSwgMC45NjU0OTMiLCBcCi0gICAgICAgICAgIjAuMDQ3NjExLCAwLjE4OTEwNiwgMC4zMzMxOSwgMC40Mzc0NzcsIDAuNjA2NzM2LCAwLjc1NDk2MywgMC45NjcxODkiLCBcCi0gICAgICAgICAgIjAuMDQ3NjA1LCAwLjE4OTE1NCwgMC4zMzMyMjQsIDAuNDM3OTgsIDAuNjA2ODI3LCAwLjc1NDc5OCwgMC45NjU1IiwgXAotICAgICAgICAgICIwLjA0ODkyMywgMC4xODk0MDMsIDAuMzMzNDQ0LCAwLjQzODA1NywgMC42MDY4MDEsIDAuNzU0ODQxLCAwLjk2NTYiLCBcCi0gICAgICAgICAgIjAuMDUwNDYxLCAwLjE5MDAxOCwgMC4zMzM3NDUsIDAuNDM4NjM5LCAwLjYwNjkzOSwgMC43NTQ5MTgsIDAuOTY1NDczIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDgyOTk3LCAwLjE2NTczNSwgMC4yMzg1NDQsIDAuMjkwMTg3LCAwLjM3Mjc4NSwgMC40NDUwOTUsIDAuNTQ4MzIyIiwgXAotICAgICAgICAgICIwLjA5MzE5OSwgMC4xNzU5MTIsIDAuMjQ4NzA2LCAwLjMwMDM0NSwgMC4zODI5OCwgMC40NTUyMjEsIDAuNTU4NDY1IiwgXAotICAgICAgICAgICIwLjEwNTMzMiwgMC4xODgwNTMsIDAuMjYwODQ1LCAwLjMxMjQ4NCwgMC4zOTUxMTgsIDAuNDY3NDA1LCAwLjU3MDc1IiwgXAotICAgICAgICAgICIwLjExNjQ5LCAwLjE5OTEyOSwgMC4yNzE5NDksIDAuMzIzNTg4LCAwLjQwNjE5LCAwLjQ3ODQ0NSwgMC41ODE4NDYiLCBcCi0gICAgICAgICAgIjAuMTI1MjA5LCAwLjIwNzgxOSwgMC4yODA1ODksIDAuMzMyMjUzLCAwLjQxNDg1MiwgMC40ODcxMTYsIDAuNTkwNTM0IiwgXAotICAgICAgICAgICIwLjEzNzIxOSwgMC4yMTk0NDYsIDAuMjkyNDg0LCAwLjM0Mzg4OCwgMC40MjY0ODgsIDAuNDk4NzUzLCAwLjYwMjAyMSIsIFwKLSAgICAgICAgICAiMC4xNDU1ODUsIDAuMjI3OTc0LCAwLjMwMDc2MiwgMC4zNTI0MjMsIDAuNDM1MDU4LCAwLjUwNzI5MiwgMC42MTA1NzIiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDY1NDUsIDAuMTg4NDM4LCAwLjMzMzg4NSwgMC40MzkyODgsIDAuNjA5MzgsIDAuNzU4ODg0LCAwLjk3MjQ3NSIsIFwKLSAgICAgICAgICAiMC4wNDY0MjIsIDAuMTg4NDQ3LCAwLjMzMzg5OSwgMC40MzkyODUsIDAuNjA5NjY3LCAwLjc1NzkxOCwgMC45NzI0MjYiLCBcCi0gICAgICAgICAgIjAuMDQ2NDgzLCAwLjE4ODQ0MiwgMC4zMzM4OTgsIDAuNDM5Mjc5LCAwLjYwOTY3MSwgMC43NTg4OTMsIDAuOTcwNjE2IiwgXAotICAgICAgICAgICIwLjA0NjQzMywgMC4xODg0MDgsIDAuMzMzODc4LCAwLjQzOTMxNiwgMC42MDkzNjgsIDAuNzU4NTIyLCAwLjk3MDQyOCIsIFwKLSAgICAgICAgICAiMC4wNDYyODQsIDAuMTg4NDA0LCAwLjMzMzcyNSwgMC40Mzk1ODEsIDAuNjA5MzMzLCAwLjc1ODU0MSwgMC45NzAyNyIsIFwKLSAgICAgICAgICAiMC4wNDU5OTYsIDAuMTg4MjQxLCAwLjMzMzg1NSwgMC40MzkyMTYsIDAuNjA5Mjk0LCAwLjc1NzY5NSwgMC45NzEyMTYiLCBcCi0gICAgICAgICAgIjAuMDQ2MTk2LCAwLjE4ODE0MSwgMC4zMzM3NzEsIDAuNDM5NDQ5LCAwLjYwOTI4NiwgMC43NTc3NDYsIDAuOTcxMDE5Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDkwNzg3LCAwLjE3MDQ0MSwgMC4yNDQwNjQsIDAuMjk2NTE5LCAwLjM4MDM5NiwgMC40NTM4MDEsIDAuNTU4NTYiLCBcCi0gICAgICAgICAgIjAuMTAxMTc2LCAwLjE4MDg1MSwgMC4yNTQ0NzEsIDAuMzA2OTQsIDAuMzkwODE2LCAwLjQ2NDE4MywgMC41NjkwMzUiLCBcCi0gICAgICAgICAgIjAuMTEzMDExLCAwLjE5MjY4NCwgMC4yNjYzMDIsIDAuMzE4Nzc1LCAwLjQwMjY1LCAwLjQ3NjAxOCwgMC41ODA4MTkiLCBcCi0gICAgICAgICAgIjAuMTIzMDYzLCAwLjIwMjcyMSwgMC4yNzYzMjksIDAuMzI4ODEsIDAuNDEyNzQ5LCAwLjQ4NjA0MSwgMC41OTA5MDYiLCBcCi0gICAgICAgICAgIjAuMTMxMzkzLCAwLjIxMTAyNSwgMC4yODQ2NzUsIDAuMzM3MTUsIDAuNDIxMDQ0LCAwLjQ5NDQ3OSwgMC41OTkxOSIsIFwKLSAgICAgICAgICAiMC4xNDI2MTIsIDAuMjIyNTI4LCAwLjI5NjE1OCwgMC4zNDg1MTIsIDAuNDMyNSwgMC41MDU4ODksIDAuNjEwNjc2IiwgXAotICAgICAgICAgICIwLjE1MTM5MywgMC4yMzEwOTgsIDAuMzA0NzY1LCAwLjM1NzM0LCAwLjQ0MTE4OSwgMC41MTQ0NTUsIDAuNjE5MjQ2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQwODgzLCAwLjE4MjY2MywgMC4zMjg3OTcsIDAuNDM0NzY3LCAwLjYwNDExMywgMC43NTEzNzQsIDAuOTY1MTg5IiwgXAotICAgICAgICAgICIwLjA0MDg5OCwgMC4xODI2ODIsIDAuMzI4ODI4LCAwLjQzMzkyOCwgMC42MDM0NCwgMC43NTE2NSwgMC45NjU1MSIsIFwKLSAgICAgICAgICAiMC4wNDA4ODksIDAuMTgyNjcyLCAwLjMyODgyNCwgMC40MzQ4NTEsIDAuNjAzNDQyLCAwLjc1MTc4NCwgMC45NjU1NTYiLCBcCi0gICAgICAgICAgIjAuMDQwODI4LCAwLjE4MjY1MywgMC4zMjg4MjQsIDAuNDM0Njg5LCAwLjYwMzAwNiwgMC43NTI2MzcsIDAuOTYzMDMzIiwgXAotICAgICAgICAgICIwLjA0MDg0OSwgMC4xODI2MDMsIDAuMzI4ODI3LCAwLjQzNDc1OSwgMC42MDMzNjUsIDAuNzUxMjU5LCAwLjk2NTU5MiIsIFwKLSAgICAgICAgICAiMC4wNDA3NzksIDAuMTgyNjE3LCAwLjMyODk1OCwgMC40MzQ4MDgsIDAuNjAzNDMxLCAwLjc1MTYxNSwgMC45NjU1MTgiLCBcCi0gICAgICAgICAgIjAuMDQwODQ2LCAwLjE4Mjc0NCwgMC4zMjkxNDMsIDAuNDM0NTQ3LCAwLjYwNDIyNywgMC43NTI4NzksIDAuOTY1Mzk4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDU3MDgsIDAuMDA1ODE4LCAwLjAwNTg0NSwgMC4wMDU4NTUsIDAuMDA1ODYxLCAwLjAwNTg2NiwgMC4wMDU4NjYiLCBcCi0gICAgICAgICAgIjAuMDA1NjkzLCAwLjAwNTgwMSwgMC4wMDU4MywgMC4wMDU4MzcsIDAuMDA1ODQ3LCAwLjAwNTg1MSwgMC4wMDU4NTUiLCBcCi0gICAgICAgICAgIjAuMDA1Njg2LCAwLjAwNTc5MSwgMC4wMDU4MjEsIDAuMDA1ODMxLCAwLjAwNTg0LCAwLjAwNTg0NSwgMC4wMDU4NSIsIFwKLSAgICAgICAgICAiMC4wMDU2ODMsIDAuMDA1Nzg0LCAwLjAwNTgxNiwgMC4wMDU4MjgsIDAuMDA1ODM5LCAwLjAwNTg0NCwgMC4wMDU4NSIsIFwKLSAgICAgICAgICAiMC4wMDU2ODUsIDAuMDA1Nzc5LCAwLjAwNTgxNywgMC4wMDU4MjgsIDAuMDA1ODQxLCAwLjAwNTg0OCwgMC4wMDU4NTMiLCBcCi0gICAgICAgICAgIjAuMDA1Njk5LCAwLjAwNTc4MiwgMC4wMDU4MTksIDAuMDA1ODMzLCAwLjAwNTg0NywgMC4wMDU4NDgsIDAuMDA1ODYyIiwgXAotICAgICAgICAgICIwLjAwNTczNCwgMC4wMDU3OTIsIDAuMDA1ODMsIDAuMDA1ODQ0LCAwLjAwNTg1NSwgMC4wMDU4NjcsIDAuMDA1ODc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDc1MDMsIDAuMDA3Njc2LCAwLjAwNzcyMSwgMC4wMDc3MzYsIDAuMDA3NzQ5LCAwLjAwNzc1NiwgMC4wMDc3NjMiLCBcCi0gICAgICAgICAgIjAuMDA3NDkxLCAwLjAwNzY2MiwgMC4wMDc3MDgsIDAuMDA3NzIzLCAwLjAwNzczOCwgMC4wMDc3NDUsIDAuMDA3NzUyIiwgXAotICAgICAgICAgICIwLjAwNzQ4NCwgMC4wMDc2NDksIDAuMDA3Njk3LCAwLjAwNzcxNCwgMC4wMDc3MywgMC4wMDc3MzgsIDAuMDA3NzQ2IiwgXAotICAgICAgICAgICIwLjAwNzQ4MSwgMC4wMDc2MzksIDAuMDA3NjkxLCAwLjAwNzcwOSwgMC4wMDc3MjcsIDAuMDA3NzM2LCAwLjAwNzc0NSIsIFwKLSAgICAgICAgICAiMC4wMDc0ODQsIDAuMDA3NjMxLCAwLjAwNzY4NiwgMC4wMDc3MDYsIDAuMDA3NzI1LCAwLjAwNzczNiwgMC4wMDc3NDYiLCBcCi0gICAgICAgICAgIjAuMDA3NTA1LCAwLjAwNzYzLCAwLjAwNzY4NiwgMC4wMDc3MDgsIDAuMDA3NzMsIDAuMDA3NzQxLCAwLjAwNzc1MiIsIFwKLSAgICAgICAgICAiMC4wMDc1MywgMC4wMDc2MzQsIDAuMDA3NjkxLCAwLjAwNzcxNCwgMC4wMDc3MzcsIDAuMDA3NzUsIDAuMDA3NzYyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDcwNjIsIDAuMDA3MjIsIDAuMDA3MjU0LCAwLjAwNzI2NSwgMC4wMDcyNzYsIDAuMDA3MjgsIDAuMDA3Mjg3IiwgXAotICAgICAgICAgICIwLjAwNzExNiwgMC4wMDcyNjYsIDAuMDA3MywgMC4wMDczMTIsIDAuMDA3MzIxLCAwLjAwNzMyNiwgMC4wMDczMzIiLCBcCi0gICAgICAgICAgIjAuMDA3MjAyLCAwLjAwNzM0MiwgMC4wMDczNzYsIDAuMDA3Mzg3LCAwLjAwNzM5OCwgMC4wMDc0MDQsIDAuMDA3NDEiLCBcCi0gICAgICAgICAgIjAuMDA3MjYsIDAuMDA3Mzk0LCAwLjAwNzQyOCwgMC4wMDc0MzgsIDAuMDA3NDUsIDAuMDA3NDU2LCAwLjAwNzQ2MSIsIFwKLSAgICAgICAgICAiMC4wMDczMDIsIDAuMDA3NDM0LCAwLjAwNzQ2OSwgMC4wMDc0ODEsIDAuMDA3NDkyLCAwLjAwNzQ5OSwgMC4wMDc1MDMiLCBcCi0gICAgICAgICAgIjAuMDA3NDE2LCAwLjAwNzUyOCwgMC4wMDc1NzQsIDAuMDA3NTY0LCAwLjAwNzU3MSwgMC4wMDc1ODEsIDAuMDA3NTg3IiwgXAotICAgICAgICAgICIwLjAwNzQ3NiwgMC4wMDc1OTgsIDAuMDA3NjMzLCAwLjAwNzY0NCwgMC4wMDc2NTYsIDAuMDA3NjU3LCAwLjAwNzY2MyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2MjMxLCAwLjAwNjQ2NiwgMC4wMDY1MTMsIDAuMDA2NTI4LCAwLjAwNjU0MiwgMC4wMDY1NDksIDAuMDA2NTU2IiwgXAotICAgICAgICAgICIwLjAwNjIyNywgMC4wMDY0NjMsIDAuMDA2NTA5LCAwLjAwNjUyNCwgMC4wMDY1MzgsIDAuMDA2NTQ1LCAwLjAwNjU1MiIsIFwKLSAgICAgICAgICAiMC4wMDYyMzcsIDAuMDA2NDc0LCAwLjAwNjUyLCAwLjAwNjUzNSwgMC4wMDY1NDksIDAuMDA2NTU2LCAwLjAwNjU2MiIsIFwKLSAgICAgICAgICAiMC4wMDYyMzksIDAuMDA2NDc4LCAwLjAwNjUyNCwgMC4wMDY1MzksIDAuMDA2NTUyLCAwLjAwNjU1OSwgMC4wMDY1NjYiLCBcCi0gICAgICAgICAgIjAuMDA2MjU1LCAwLjAwNjQ5MSwgMC4wMDY1MzcsIDAuMDA2NTUyLCAwLjAwNjU2NiwgMC4wMDY1NzMsIDAuMDA2NTc4IiwgXAotICAgICAgICAgICIwLjAwNjI4LCAwLjAwNjUxMywgMC4wMDY1NTksIDAuMDA2NTcyLCAwLjAwNjU4OCwgMC4wMDY1OTUsIDAuMDA2NjAyIiwgXAotICAgICAgICAgICIwLjAwNjMwMiwgMC4wMDY1MjgsIDAuMDA2NTc0LCAwLjAwNjU5NywgMC4wMDY2MTEsIDAuMDA2NjExLCAwLjAwNjYxNyIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogWE9SMlhMICoKLSAqIC0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoWE9SMlhMKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMTI4Njc3OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2MDE0MjU7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjAxMTkxOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDYwMTQyNTsKLSAgfQotICBwaW4oQikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxMzAwNDg7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxMzAwMDE7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxMzAwNDg7Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4xNDUwMjE7Ci0gICAgZnVuY3Rpb24gOiAiKEFeQikiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEyOTQyMywgMC4xNDM1NiwgMC4yNzA2MzMsIDAuNDgyNTY1LCAwLjY5NDQ1NCwgMS4xODg4OSwgMS40NzExNyIsIFwKLSAgICAgICAgICAiMC4xMzk0NTYsIDAuMTUzNTk2LCAwLjI4MDY3NiwgMC40OTI1OTEsIDAuNzA0NTM4LCAxLjE5OTA3LCAxLjQ4MTI4IiwgXAotICAgICAgICAgICIwLjE1MjIwMSwgMC4xNjYzNCwgMC4yOTM0MywgMC41MDUzNDYsIDAuNzE3MTc2LCAxLjIxMjc5LCAxLjQ5NCIsIFwKLSAgICAgICAgICAiMC4xNjQzOTIsIDAuMTc4NTM4LCAwLjMwNTYzNSwgMC41MTc2NzgsIDAuNzI5NzM2LCAxLjIyMzc3LCAxLjUwNjIyIiwgXAotICAgICAgICAgICIwLjE3NTc5NiwgMC4xODk5MjIsIDAuMzE3MDI5LCAwLjUyOTAxNSwgMC43NDEwMDksIDEuMjM1MjMsIDEuNTE4ODMiLCBcCi0gICAgICAgICAgIjAuMTkyMTg2LCAwLjIwNjMzOCwgMC4zMzM0MjksIDAuNTQ1NDg5LCAwLjc1NzQ5MiwgMS4yNTE2NSwgMS41MzUzNCIsIFwKLSAgICAgICAgICAiMC4yMDUxMzUsIDAuMjE5MzAzLCAwLjM0NjM5NiwgMC41NTgzNywgMC43NzA0NDgsIDEuMjY0NTYsIDEuNTQ2OTQiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTU2MTIxLCAwLjE4NDUzNSwgMC40NDM4NSwgMC44Nzc3OCwgMS4zMTIyOCwgMi4zMjc0NiwgMi45MTIyOCIsIFwKLSAgICAgICAgICAiMC4xNTYxMzEsIDAuMTg0NTQyLCAwLjQ0MzgwNCwgMC44Nzc4NjEsIDEuMzEzNTIsIDIuMzI5MDIsIDIuOTA2MTciLCBcCi0gICAgICAgICAgIjAuMTU2MTE5LCAwLjE4NDUzOSwgMC40NDM4MDEsIDAuODc3ODY1LCAxLjMxNDYzLCAyLjMyODE1LCAyLjkwNjQxIiwgXAotICAgICAgICAgICIwLjE1NjE2MSwgMC4xODQ1NjEsIDAuNDQzNzc5LCAwLjg3ODA4MywgMS4zMTI5NSwgMi4zMzA4NywgMi45MTA5OSIsIFwKLSAgICAgICAgICAiMC4xNTYyOTEsIDAuMTg0NzE2LCAwLjQ0NDM0OCwgMC44NzgxMjEsIDEuMzEyODYsIDIuMzI2NDEsIDIuOTA4MzYiLCBcCi0gICAgICAgICAgIjAuMTU2NzgzLCAwLjE4NTAwMSwgMC40NDM4ODUsIDAuODc4MDg3LCAxLjMxMjkyLCAyLjMyNjM0LCAyLjkxOTU4IiwgXAotICAgICAgICAgICIwLjE1NzQwMiwgMC4xODU2MjcsIDAuNDQ0NTA4LCAwLjg3ODI4NCwgMS4zMTI5MiwgMi4zMjYzNCwgMi45MTE3MiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMzA5MSwgMC4xNDQ3OTUsIDAuMjY5Mjc3LCAwLjQ3Njc4OSwgMC42ODQyNjUsIDEuMTY4MywgMS40NDQ5OCIsIFwKLSAgICAgICAgICAiMC4xNDA2MiwgMC4xNTQ1MTQsIDAuMjc5MDAyLCAwLjQ4NjQ4NywgMC42OTQwMTksIDEuMTc4MDksIDEuNDU0NTYiLCBcCi0gICAgICAgICAgIjAuMTUyODQ4LCAwLjE2NjcyOCwgMC4yOTEyNiwgMC40OTg3NDYsIDAuNzA2MzI3LCAxLjE5MDQzLCAxLjQ2Nzk1IiwgXAotICAgICAgICAgICIwLjE2NDI3LCAwLjE3ODE3MywgMC4zMDI2ODMsIDAuNTEwMTM0LCAwLjcxNzY1NCwgMS4yMDE4LCAxLjQ3ODM4IiwgXAotICAgICAgICAgICIwLjE3NDgzOCwgMC4xODg3MzIsIDAuMzEzMjQsIDAuNTIwODczLCAwLjcyODI3MSwgMS4yMTIyNiwgMS40ODg5OCIsIFwKLSAgICAgICAgICAiMC4xODk4OTUsIDAuMjAzODA0LCAwLjMyODMxNywgMC41MzU3OTMsIDAuNzQzMjk1LCAxLjIyNzU3LCAxLjUwNDA5IiwgXAotICAgICAgICAgICIwLjIwMTU4MSwgMC4yMTU1MzEsIDAuMzQwMDM2LCAwLjU0NzQ3OCwgMC43NTQ5ODIsIDEuMjM5MTcsIDEuNTE1NjgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTUwNjUsIDAuMTc3NjM0LCAwLjQyNTE1MSwgMC44Mzk2OTYsIDEuMjU4MDgsIDIuMjMyNzcsIDIuNzc5MzYiLCBcCi0gICAgICAgICAgIjAuMTUwNTY4LCAwLjE3NzY0MSwgMC40MjUxNzcsIDAuODQwNzIyLCAxLjI1NzA3LCAyLjIyNTE2LCAyLjc4MDM0IiwgXAotICAgICAgICAgICIwLjE1MDU0NCwgMC4xNzc2MjgsIDAuNDI2MDA3LCAwLjg0MTI0MywgMS4yNTc4NywgMi4yMjgwMywgMi43ODM2MSIsIFwKLSAgICAgICAgICAiMC4xNTA2OCwgMC4xNzc2MTksIDAuNDI1MTczLCAwLjg0MjUwMSwgMS4yNTg5OCwgMi4yMzIzNiwgMi43Nzk1MiIsIFwKLSAgICAgICAgICAiMC4xNTA3OCwgMC4xNzc4MDQsIDAuNDI1MDY1LCAwLjg0MDQ3OSwgMS4yNTY5MSwgMi4yMjU4MSwgMi43NzkyOCIsIFwKLSAgICAgICAgICAiMC4xNTE0MTEsIDAuMTc4NDAzLCAwLjQyNTQwNCwgMC44NDE0ODMsIDEuMjU1NiwgMi4yMzAyNSwgMi43ODgyIiwgXAotICAgICAgICAgICIwLjE1MTk5MywgMC4xNzg4NDEsIDAuNDI2MTEzLCAwLjg0MjQ2MywgMS4yNTU4MSwgMi4yMjczOSwgMi43ODg4MiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNDEyMjEsIDAuMTU1MzY3LCAwLjI4MjY3MywgMC40OTQ1NSwgMC43MDYzNTEsIDEuMjAwNTQsIDEuNDgyODUiLCBcCi0gICAgICAgICAgIjAuMTUwOTkxLCAwLjE2NTEzOCwgMC4yOTI0MDEsIDAuNTA0MzAyLCAwLjcxNjExNywgMS4yMTAzMiwgMS40OTI4MiIsIFwKLSAgICAgICAgICAiMC4xNjIwNzEsIDAuMTc2MjM0LCAwLjMwMzUwNCwgMC41MTUzNDksIDAuNzI3MTcyLCAxLjIyMTU4LCAxLjUwMzc3IiwgXAotICAgICAgICAgICIwLjE3MDk5NiwgMC4xODUxNjIsIDAuMzEyNDQxLCAwLjUyNDI4OSwgMC43MzYxNDEsIDEuMjMwMywgMS41MTI3MiIsIFwKLSAgICAgICAgICAiMC4xNzg3OTQsIDAuMTkyOTQyLCAwLjMyMDI1NCwgMC41MzIwNywgMC43NDM5NjMsIDEuMjM4MDYsIDEuNTIwNTEiLCBcCi0gICAgICAgICAgIjAuMTg5MjQxLCAwLjIwMzMyNiwgMC4zMzA2ODgsIDAuNTQyNTE5LCAwLjc1NDI2OCwgMS4yNDg0NiwgMS41MzA5NSIsIFwKLSAgICAgICAgICAiMC4xOTY4OTQsIDAuMjExMDU0LCAwLjMzODMxNCwgMC41NTAxODUsIDAuNzYyMDA3LCAxLjI1NjIxLCAxLjUzODYxIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE1NTY1MywgMC4xODQxMjIsIDAuNDQzNjUxLCAwLjg3OTg1NywgMS4zMTMsIDIuMzI4MywgMi45MTE4IiwgXAotICAgICAgICAgICIwLjE1NTY1OSwgMC4xODQxMjQsIDAuNDQzMjg1LCAwLjg3ODI1MSwgMS4zMTI4NSwgMi4zMjQzNSwgMi45MTIxNyIsIFwKLSAgICAgICAgICAiMC4xNTU2NjYsIDAuMTg0MTE5LCAwLjQ0Mzc5NSwgMC44Nzg3NzEsIDEuMzEzNiwgMi4zMzE3LCAyLjkwODE5IiwgXAotICAgICAgICAgICIwLjE1NTQ3OCwgMC4xODQxMjEsIDAuNDQzNzc1LCAwLjg3NzYzMSwgMS4zMTI5OCwgMi4zMjg1NCwgMi45MDgxNiIsIFwKLSAgICAgICAgICAiMC4xNTU2NzUsIDAuMTg0MTQ5LCAwLjQ0NDI1LCAwLjg3ODU3NywgMS4zMTM1MSwgMi4zMzA5MiwgMi45MDg0NCIsIFwKLSAgICAgICAgICAiMC4xNTU2NTEsIDAuMTg0MTU4LCAwLjQ0NDQ2NCwgMC44Nzg3MTQsIDEuMzEzNDcsIDIuMzMwOTUsIDIuOTA4MDEiLCBcCi0gICAgICAgICAgIjAuMTU1NTQ1LCAwLjE4NDAxOCwgMC40NDQyNTYsIDAuODc4NTg5LCAxLjMxNDk2LCAyLjMyODMyLCAyLjkwODAxIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE0MjQ3MywgMC4xNTYzNTYsIDAuMjgwOTYsIDAuNDg4NDE4LCAwLjY5NTgzMSwgMS4xNzk4MSwgMS40NTYyOCIsIFwKLSAgICAgICAgICAiMC4xNTI2MjgsIDAuMTY2NTIzLCAwLjI5MTExNSwgMC40OTg1NzYsIDAuNzA2MDAyLCAxLjE4OTk1LCAxLjQ2NjQ3IiwgXAotICAgICAgICAgICIwLjE2NDQ0MiwgMC4xNzgzMzgsIDAuMzAyOTQsIDAuNTEwNDQzLCAwLjcxNzgxMiwgMS4yMDE3NSwgMS40NzgyOCIsIFwKLSAgICAgICAgICAiMC4xNzQwNzQsIDAuMTg3OTY4LCAwLjMxMjU2NSwgMC41MjAwMjMsIDAuNzI3NDgxLCAxLjIxMTM3LCAxLjQ4NzkxIiwgXAotICAgICAgICAgICIwLjE4MjUwMywgMC4xOTYzOTYsIDAuMzIxMDAyLCAwLjUyODQ5OCwgMC43MzU4NzQsIDEuMjE5ODEsIDEuNDk2MzQiLCBcCi0gICAgICAgICAgIjAuMTkzOTA1LCAwLjIwNzc4NiwgMC4zMzI0LCAwLjUzOTg3LCAwLjc0NzI3MiwgMS4yMzEyMSwgMS41MDc3NSIsIFwKLSAgICAgICAgICAiMC4yMDI2NDQsIDAuMjE2NTI4LCAwLjM0MTEyMiwgMC41NDg1ODgsIDAuNzU2MDAyLCAxLjIzOTk0LCAxLjUxNjQ3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE0OTczMywgMC4xNzcwOCwgMC40MjUxNjUsIDAuODQyMzE4LCAxLjI1NjkyLCAyLjIzMjQsIDIuNzgyODgiLCBcCi0gICAgICAgICAgIjAuMTQ5NzUyLCAwLjE3Njk1NSwgMC40MjU2NzYsIDAuODQyMTk0LCAxLjI1NzA5LCAyLjIyODU0LCAyLjc4ODAzIiwgXAotICAgICAgICAgICIwLjE0OTc0MywgMC4xNzY5MjMsIDAuNDI1MTA3LCAwLjg0MjEzMiwgMS4yNTY5LCAyLjIyODMxLCAyLjc4MzQ2IiwgXAotICAgICAgICAgICIwLjE0OTcxNywgMC4xNzY5MjQsIDAuNDI1MDUzLCAwLjg0MjIyMiwgMS4yNTkyLCAyLjIyNzg1LCAyLjc4MzM1IiwgXAotICAgICAgICAgICIwLjE0OTc1MiwgMC4xNzcwNzcsIDAuNDI1MTgzLCAwLjg0MjE1MSwgMS4yNTY5LCAyLjIyODI2LCAyLjc4MzQiLCBcCi0gICAgICAgICAgIjAuMTQ5NzQ3LCAwLjE3NzA1MSwgMC40MjUxNDcsIDAuODQyMzM1LCAxLjI1NzA0LCAyLjIyODAyLCAyLjc4Nzk2IiwgXAotICAgICAgICAgICIwLjE0OTgyMywgMC4xNzcxNTksIDAuNDI1NjQ3LCAwLjg0MjIxNiwgMS4yNTgxMywgMi4yMjc5MiwgMi43ODI5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExNjM4NSwgMC4xMzA1NDQsIDAuMjU3ODM5LCAwLjQ2OTY0NywgMC42ODE2MDcsIDEuMTc1NjUsIDEuNDU4MDkiLCBcCi0gICAgICAgICAgIjAuMTI1NjA2LCAwLjEzOTc1NCwgMC4yNjcwMTUsIDAuNDc4ODY2LCAwLjY5MDY5MywgMS4xODUwMiwgMS40NjcyNSIsIFwKLSAgICAgICAgICAiMC4xMzcyNTcsIDAuMTUxNDE4LCAwLjI3ODY3NSwgMC40OTA1NCwgMC43MDIzNjksIDEuMTk2NywgMS40Nzg5NCIsIFwKLSAgICAgICAgICAiMC4xNDg1NDgsIDAuMTYyNzIsIDAuMjkwMDEzLCAwLjUwMTg2NCwgMC43MTM3MDgsIDEuMjA3OSwgMS40OTAyMSIsIFwKLSAgICAgICAgICAiMC4xNTg2MTcsIDAuMTcyNzg2LCAwLjMwMDA2NiwgMC41MTE5MjYsIDAuNzIzNzYxLCAxLjIxNzk5LCAxLjUwMDMzIiwgXAotICAgICAgICAgICIwLjE3Mjc2NSwgMC4xODY5NTQsIDAuMzE0MjE4LCAwLjUyNjEwMiwgMC43Mzc5MzQsIDEuMjMyMTQsIDEuNTE0NjIiLCBcCi0gICAgICAgICAgIjAuMTgzNywgMC4xOTc5MjcsIDAuMzI1MjM0LCAwLjUzNzEyMywgMC43NDg4OSwgMS4yNDMxLCAxLjUyNTQ4Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE1NTY3LCAwLjE4NDAzLCAwLjQ0MzY3MiwgMC44Nzg3NTEsIDEuMzEyODksIDIuMzI4NiwgMi45MDc5MiIsIFwKLSAgICAgICAgICAiMC4xNTU2NDcsIDAuMTg0MTYsIDAuNDQzODg3LCAwLjg3ODU4NSwgMS4zMTM1NywgMi4zMzE0NiwgMi45MDg3OCIsIFwKLSAgICAgICAgICAiMC4xNTU2NzIsIDAuMTg0MzA4LCAwLjQ0Mzg3NiwgMC44Nzg2MjQsIDEuMzEzNjEsIDIuMzMxNDUsIDIuOTA4NzYiLCBcCi0gICAgICAgICAgIjAuMTU1NzU4LCAwLjE4NDI0NywgMC40NDM3NjYsIDAuODc4NzU4LCAxLjMxMzQ4LCAyLjMyODE4LCAyLjkxMTIiLCBcCi0gICAgICAgICAgIjAuMTU1OTU1LCAwLjE4NDQ3NCwgMC40NDM5NzYsIDAuODc5MjY3LCAxLjMxMzQ2LCAyLjMzMDk1LCAyLjkwODU3IiwgXAotICAgICAgICAgICIwLjE1NjYyNiwgMC4xODUxMTYsIDAuNDQ0NTM0LCAwLjg3OTU4NywgMS4zMTM0NSwgMi4zMjgxNiwgMi45MDcyNCIsIFwKLSAgICAgICAgICAiMC4xNTcyMTIsIDAuMTg1NDE1LCAwLjQ0NDc3NSwgMC44NzgzNjUsIDEuMzEzNTIsIDIuMzI4MjQsIDIuOTA4NDMiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTE0MzEzLCAwLjEyODE5NiwgMC4yNTI2OTMsIDAuNDYwMTk2LCAwLjY2NzczNCwgMS4xNTE2NiwgMS40Mjg4MiIsIFwKLSAgICAgICAgICAiMC4xMjMzMDYsIDAuMTM3MTk1LCAwLjI2MTcwMiwgMC40NjkxOTgsIDAuNjc2NzgzLCAxLjE2MDg3LCAxLjQzNzgzIiwgXAotICAgICAgICAgICIwLjEzNDU2MSwgMC4xNDg0NTcsIDAuMjcyOTcsIDAuNDgwNDA3LCAwLjY4NzkxNCwgMS4xNzIwOSwgMS40NDg2NCIsIFwKLSAgICAgICAgICAiMC4xNDUwNjgsIDAuMTU4OTYsIDAuMjgzNDc3LCAwLjQ5MDkyOSwgMC42OTg0MjcsIDEuMTgyNiwgMS40NTkxNiIsIFwKLSAgICAgICAgICAiMC4xNTQxNjUsIDAuMTY4MDY3LCAwLjI5MjU5LCAwLjUwMDA2NCwgMC43MDc1NzYsIDEuMTkxNzEsIDEuNDY4MzIiLCBcCi0gICAgICAgICAgIjAuMTY2NjY0LCAwLjE4MDU0NywgMC4zMDUxMTcsIDAuNTEyNDczLCAwLjcyMDAzOCwgMS4yMDQxMiwgMS40ODA3MiIsIFwKLSAgICAgICAgICAiMC4xNzYxMzIsIDAuMTg5OTksIDAuMzE0NTY1LCAwLjUyMjAyMywgMC43Mjk1OTksIDEuMjEzNDMsIDEuNDkwNTMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTUwNDExLCAwLjE3NzUzMiwgMC40MjQ5MTYsIDAuODQwOTE3LCAxLjI1NjQzLCAyLjIyNjAxLCAyLjc4NDY2IiwgXAotICAgICAgICAgICIwLjE1MDM5MywgMC4xNzc1MTcsIDAuNDI1MTQ5LCAwLjg0MDgxMywgMS4yNTc0MSwgMi4yMjc3MSwgMi43ODEwNiIsIFwKLSAgICAgICAgICAiMC4xNTAzOTUsIDAuMTc3NTA3LCAwLjQyNTAxNiwgMC44NDIyMTYsIDEuMjU4ODQsIDIuMjMxNzcsIDIuNzc5NzMiLCBcCi0gICAgICAgICAgIjAuMTUwNTYyLCAwLjE3NzYwNCwgMC40MjQ5NzMsIDAuODQyMjUzLCAxLjI1ODg2LCAyLjIzMTc3LCAyLjc3OTcxIiwgXAotICAgICAgICAgICIwLjE1MDg4MiwgMC4xNzc5MDcsIDAuNDI1NzYsIDAuODQxODEsIDEuMjU3ODIsIDIuMjI1MTQsIDIuNzgxMjMiLCBcCi0gICAgICAgICAgIjAuMTUxNTQ2LCAwLjE3ODQ4MSwgMC40MjQ4NDYsIDAuODQxNTMsIDEuMjU1OCwgMi4yMjU4OSwgMi43Nzk2NCIsIFwKLSAgICAgICAgICAiMC4xNTIzMTMsIDAuMTc5MDY2LCAwLjQyNTc5MiwgMC44Mzk2MTksIDEuMjU2MzEsIDIuMjI2MDUsIDIuNzgxNjkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTE4Nzg4LCAwLjEzMjkyNywgMC4yNjAwOSwgMC40NzIwMzcsIDAuNjg0MDQ3LCAxLjE3ODI5LCAxLjQ2MTkyIiwgXAotICAgICAgICAgICIwLjEyODk3LCAwLjE0MzEwOSwgMC4yNzAyMzQsIDAuNDgyMzk5LCAwLjY5NDI0NiwgMS4xODg0NCwgMS40NzE5MiIsIFwKLSAgICAgICAgICAiMC4xNDA2MjUsIDAuMTU0Nzc1LCAwLjI4MTkwMywgMC40OTM4MTQsIDAuNzA1NjY5LCAxLjIwMDUsIDEuNDgyNTIiLCBcCi0gICAgICAgICAgIjAuMTQ5MzY3LCAwLjE2MzUxOSwgMC4yOTA2MzUsIDAuNTAyNjQ1LCAwLjcxNDYyNiwgMS4yMDg4NCwgMS40OTIzNSIsIFwKLSAgICAgICAgICAiMC4xNTY0NTMsIDAuMTcwNTkzLCAwLjI5Nzc3MiwgMC41MDk2MzcsIDAuNzIxNjYzLCAxLjIxNTkzLCAxLjQ5OTU1IiwgXAotICAgICAgICAgICIwLjE2NTg4MiwgMC4xODAwMjYsIDAuMzA3MDY4LCAwLjUxOTAwNSwgMC43MzA5NDksIDEuMjI1NjgsIDEuNTA3NzYiLCBcCi0gICAgICAgICAgIjAuMTcyNzksIDAuMTg2NzY5LCAwLjMxMzg4NywgMC41MjYxMTgsIDAuNzM3NTk0LCAxLjIzMjE3LCAxLjUxNTk0Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE1NTk5OSwgMC4xODQ0NTYsIDAuNDQ0NDU4LCAwLjg3NzY0MSwgMS4zMTI4NiwgMi4zMjYzOSwgMi45MDgzNyIsIFwKLSAgICAgICAgICAiMC4xNTYwMDEsIDAuMTg0NDQzLCAwLjQ0NDM3LCAwLjg3ODE2MSwgMS4zMTI4NywgMi4zMjY1MiwgMi45MDY3MyIsIFwKLSAgICAgICAgICAiMC4xNTYwMDEsIDAuMTg0NDM0LCAwLjQ0MzczNiwgMC44Nzc5MTMsIDEuMzEyNiwgMi4zMjg4OSwgMi45MDYyOSIsIFwKLSAgICAgICAgICAiMC4xNTU5NTksIDAuMTg0NDQsIDAuNDQ0MzMzLCAwLjg3ODEzMSwgMS4zMTI4NiwgMi4zMjY1NSwgMi45MjAxNSIsIFwKLSAgICAgICAgICAiMC4xNTU4ODUsIDAuMTg0MzI5LCAwLjQ0MzM1OSwgMC44NzkyMzksIDEuMzEyODksIDIuMzI2NDUsIDIuOTA4MzciLCBcCi0gICAgICAgICAgIjAuMTU1ODA5LCAwLjE4NDI2NSwgMC40NDM2NDMsIDAuODc5NjMyLCAxLjMxMjkzLCAyLjMyOTAyLCAyLjkwNjI2IiwgXAotICAgICAgICAgICIwLjE1NTYzOCwgMC4xODQyMDUsIDAuNDQ0MTg1LCAwLjg3ODA5OSwgMS4zMTUyMywgMi4zMjc0OCwgMi45MDgzOCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMzIyODUsIDAuMTQ2MTY2LCAwLjI3MDc4NCwgMC40NzgyMzYsIDAuNjg1NjcyLCAxLjE2OTU3LCAxLjQ0NjE0IiwgXAotICAgICAgICAgICIwLjE0MjM5OSwgMC4xNTYyOTQsIDAuMjgwODk1LCAwLjQ4ODM1OCwgMC42OTU3NzMsIDEuMTc5NzIsIDEuNDU2MjIiLCBcCi0gICAgICAgICAgIjAuMTUzMDY5LCAwLjE2Njk2MiwgMC4yOTE1NiwgMC40OTkwNDQsIDAuNzA2NDMxLCAxLjE5MDM3LCAxLjQ2NjkiLCBcCi0gICAgICAgICAgIjAuMTYxNDQ3LCAwLjE3NTMwOSwgMC4yOTk5NDIsIDAuNTA3NDEsIDAuNzE0ODM2LCAxLjE5ODczLCAxLjQ3NTI3IiwgXAotICAgICAgICAgICIwLjE2ODU2NiwgMC4xODI0NTcsIDAuMzA3MDYyLCAwLjUxNDU2NSwgMC43MjE5MjMsIDEuMjA1ODUsIDEuNDgyMzgiLCBcCi0gICAgICAgICAgIjAuMTc3OTk1LCAwLjE5MTkwMiwgMC4zMTY2OTQsIDAuNTI0MTU3LCAwLjczMTQ3NiwgMS4yMTU1MywgMS40OTE4NiIsIFwKLSAgICAgICAgICAiMC4xODU1NDksIDAuMTk5NDQ5LCAwLjMyNCwgMC41MzE2MTksIDAuNzM4ODg1LCAxLjIyMjkyLCAxLjQ5OTU2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE0OTczOCwgMC4xNzcxMDYsIDAuNDI1MDg3LCAwLjg0MjMwNCwgMS4yNTc0MywgMi4yMzIwNCwgMi43ODM3IiwgXAotICAgICAgICAgICIwLjE0OTc1MiwgMC4xNzY5NTUsIDAuNDI1MTA2LCAwLjg0MDcxMywgMS4yNTcwNiwgMi4yMjg1MSwgMi43ODc4MyIsIFwKLSAgICAgICAgICAiMC4xNDk3MjMsIDAuMTc3MDQ1LCAwLjQyNTA5OSwgMC44NDIyMDUsIDEuMjU2ODcsIDIuMjI4MjIsIDIuNzgzNTciLCBcCi0gICAgICAgICAgIjAuMTQ5NzM3LCAwLjE3NzA3NSwgMC40MjUwMjksIDAuODQyMTMsIDEuMjU3NTcsIDIuMjMwNDgsIDIuNzgzMTEiLCBcCi0gICAgICAgICAgIjAuMTQ5OTIxLCAwLjE3NzE2OSwgMC40MjUwMzIsIDAuODQxOTgzLCAxLjI1OTAzLCAyLjIzMDYzLCAyLjc4MjE4IiwgXAotICAgICAgICAgICIwLjE0OTkzMSwgMC4xNzcxMTksIDAuNDI1MTU1LCAwLjg0MDM4MywgMS4yNTgyNywgMi4yMzIxNiwgMi43ODc3NyIsIFwKLSAgICAgICAgICAiMC4xNDk4MDksIDAuMTc3MDQ0LCAwLjQyNDg3NiwgMC44NDExMjksIDEuMjU4MTcsIDIuMjMxMzcsIDIuNzg3ODgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDMyNjMsIDAuMDAzMjY1LCAwLjAwMzI3LCAwLjAwMzI3MiwgMC4wMDMyNzMsIDAuMDAzMjczLCAwLjAwMzI3NCIsIFwKLSAgICAgICAgICAiMC4wMDMyMzgsIDAuMDAzMjM5LCAwLjAwMzI0NSwgMC4wMDMyNDcsIDAuMDAzMjQ4LCAwLjAwMzI0OSwgMC4wMDMyNDgiLCBcCi0gICAgICAgICAgIjAuMDAzMjM1LCAwLjAwMzIzNiwgMC4wMDMyNDEsIDAuMDAzMjQ0LCAwLjAwMzI0NCwgMC4wMDMyNDUsIDAuMDAzMjQ2IiwgXAotICAgICAgICAgICIwLjAwMzI0MiwgMC4wMDMyNDMsIDAuMDAzMjQ4LCAwLjAwMzI1MSwgMC4wMDMyNTIsIDAuMDAzMjUyLCAwLjAwMzI1MiIsIFwKLSAgICAgICAgICAiMC4wMDMyMzksIDAuMDAzMjQxLCAwLjAwMzI0OCwgMC4wMDMyNDksIDAuMDAzMjUxLCAwLjAwMzI1LCAwLjAwMzI1MiIsIFwKLSAgICAgICAgICAiMC4wMDMyNiwgMC4wMDMyNTksIDAuMDAzMjY2LCAwLjAwMzI2OSwgMC4wMDMyNjgsIDAuMDAzMjY4LCAwLjAwMzI3IiwgXAotICAgICAgICAgICIwLjAwMzI3OCwgMC4wMDMyNzksIDAuMDAzMjg0LCAwLjAwMzI4NywgMC4wMDMyODksIDAuMDAzMjksIDAuMDAzMjkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDMwNjIsIDAuMDAzMDY0LCAwLjAwMzA3LCAwLjAwMzA3MywgMC4wMDMwNzQsIDAuMDAzMDc1LCAwLjAwMzA3NSIsIFwKLSAgICAgICAgICAiMC4wMDMwMzIsIDAuMDAzMDM0LCAwLjAwMzA0MSwgMC4wMDMwNDMsIDAuMDAzMDQ0LCAwLjAwMzA0NSwgMC4wMDMwNDUiLCBcCi0gICAgICAgICAgIjAuMDAzMDI5LCAwLjAwMzAzMSwgMC4wMDMwMzcsIDAuMDAzMDQsIDAuMDAzMDQxLCAwLjAwMzA0MiwgMC4wMDMwNDIiLCBcCi0gICAgICAgICAgIjAuMDAzMDM4LCAwLjAwMzA0LCAwLjAwMzA0NywgMC4wMDMwNSwgMC4wMDMwNTEsIDAuMDAzMDUyLCAwLjAwMzA1MiIsIFwKLSAgICAgICAgICAiMC4wMDMwNDMsIDAuMDAzMDQ0LCAwLjAwMzA1MSwgMC4wMDMwNTQsIDAuMDAzMDU1LCAwLjAwMzA1NiwgMC4wMDMwNTYiLCBcCi0gICAgICAgICAgIjAuMDAzMDYxLCAwLjAwMzA2MywgMC4wMDMwNywgMC4wMDMwNzIsIDAuMDAzMDczLCAwLjAwMzA3NCwgMC4wMDMwNzUiLCBcCi0gICAgICAgICAgIjAuMDAzMDg0LCAwLjAwMzA4NiwgMC4wMDMwOTIsIDAuMDAzMDk1LCAwLjAwMzA5NiwgMC4wMDMwOTcsIDAuMDAzMDk3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyODk5LCAwLjAwMjksIDAuMDAyOTA0LCAwLjAwMjkwNiwgMC4wMDI5MDYsIDAuMDAyOTA3LCAwLjAwMjkwOCIsIFwKLSAgICAgICAgICAiMC4wMDI5MTksIDAuMDAyOTIsIDAuMDAyOTI0LCAwLjAwMjkyNiwgMC4wMDI5MjYsIDAuMDAyOTI3LCAwLjAwMjkyNyIsIFwKLSAgICAgICAgICAiMC4wMDI5NjEsIDAuMDAyOTYyLCAwLjAwMjk2NiwgMC4wMDI5NjcsIDAuMDAyOTY4LCAwLjAwMjk2OCwgMC4wMDI5NjkiLCBcCi0gICAgICAgICAgIjAuMDAyOTk0LCAwLjAwMjk5NSwgMC4wMDI5OTksIDAuMDAzMDAxLCAwLjAwMzAwMSwgMC4wMDMwMDIsIDAuMDAzMDAyIiwgXAotICAgICAgICAgICIwLjAwMzAzOSwgMC4wMDMwNCwgMC4wMDMwNDIsIDAuMDAzMDQ0LCAwLjAwMzA0NCwgMC4wMDMwNDUsIDAuMDAzMDQ1IiwgXAotICAgICAgICAgICIwLjAwMzEwMiwgMC4wMDMxMDMsIDAuMDAzMDk4LCAwLjAwMzEwNiwgMC4wMDMwOTksIDAuMDAzMTA3LCAwLjAwMzEwNyIsIFwKLSAgICAgICAgICAiMC4wMDMxNTcsIDAuMDAzMTQ0LCAwLjAwMzE0NywgMC4wMDMxNjEsIDAuMDAzMTQ4LCAwLjAwMzE0OSwgMC4wMDMxNSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjQ5MiwgMC4wMDI0OTQsIDAuMDAyNSwgMC4wMDI1MDMsIDAuMDAyNTA0LCAwLjAwMjUwNSwgMC4wMDI1MDUiLCBcCi0gICAgICAgICAgIjAuMDAyNDcxLCAwLjAwMjQ3MywgMC4wMDI0NzksIDAuMDAyNDgyLCAwLjAwMjQ4MywgMC4wMDI0ODQsIDAuMDAyNDg0IiwgXAotICAgICAgICAgICIwLjAwMjQ2OSwgMC4wMDI0NzEsIDAuMDAyNDc3LCAwLjAwMjQ4LCAwLjAwMjQ4MSwgMC4wMDI0ODEsIDAuMDAyNDgyIiwgXAotICAgICAgICAgICIwLjAwMjQ3NiwgMC4wMDI0NzgsIDAuMDAyNDg0LCAwLjAwMjQ4NiwgMC4wMDI0ODgsIDAuMDAyNDg5LCAwLjAwMjQ4OSIsIFwKLSAgICAgICAgICAiMC4wMDI0ODksIDAuMDAyNDkxLCAwLjAwMjQ5NywgMC4wMDI0OTksIDAuMDAyNSwgMC4wMDI1MDEsIDAuMDAyNTAxIiwgXAotICAgICAgICAgICIwLjAwMjUwOSwgMC4wMDI1MTEsIDAuMDAyNTIxLCAwLjAwMjUyMywgMC4wMDI1MjEsIDAuMDAyNTI1LCAwLjAwMjUyMyIsIFwKLSAgICAgICAgICAiMC4wMDI1MzIsIDAuMDAyNTM0LCAwLjAwMjU0NSwgMC4wMDI1NDMsIDAuMDAyNTQ4LCAwLjAwMjU0OSwgMC4wMDI1NDUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogQUNIQ09OWDIgKgotICogLS0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKEFDSENPTlgyKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuNjc0MDEzOwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE0Mzg5OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTQzNzM1OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTQzODk7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDExNzA0LCAwLjAxMTYzNCwgMC4wMTE2MDcsIDAuMDExNjA3LCAwLjAxMTYyNiwgMC4wMTE2NiwgMC4wMTE3MDQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMTM3NTEsIDAuMDEzNzAzLCAwLjAxMzY5MiwgMC4wMTM2NzgsIDAuMDEzNjkyLCAwLjAxMzc0OCwgMC4wMTM3OTciKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwNTIwODM1OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwNTIwNDczOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwNTIwODM1OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNzg3NSwgMC4wMDc3NzEsIDAuMDA3OTAxLCAwLjAwODExOCwgMC4wMDgzNTksIDAuMDA4NzM2LCAwLjAwODgzOSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAxNDUzNCwgMC4wMTQ1MTQsIDAuMDE0NjAzLCAwLjAxNDcxNSwgMC4wMTQ4NzksIDAuMDE1MTE5LCAwLjAxNTM5MyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQ0kpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTQwMzU4OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTQwMjE5OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTQwMzU4OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDY1OSwgMC4wMDA1NjIsIDAuMDAwNTc5LCAwLjAwMDY0OCwgMC4wMDA2NSwgMC4wMDA3MTksIDAuMDAwNzk3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyNzgyLCAwLjAwMjcyMSwgMC4wMDI3MywgMC4wMDI3NywgMC4wMDI3OTksIDAuMDAyODc1LCAwLjAwMjk1MSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQ09OKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMjI1OwotICAgIGZ1bmN0aW9uIDogIighKCgoQSBCKSsoQiBDSSkpKyhDSSBBKSkpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTg3NzIsIDAuMjczNzIzLCAwLjQwNTA4MSwgMC41NzE0NjQsIDAuNzM3NjI5LCAwLjkwNDk5NiwgMS4wNzM2OCIsIFwKLSAgICAgICAgICAiMC4xMjg3MDEsIDAuMjgzNTk3LCAwLjQxNDk0NywgMC41ODEzMTcsIDAuNzQ3MTk4LCAwLjkxNDczNCwgMS4wODMxNSIsIFwKLSAgICAgICAgICAiMC4xNDA5NzYsIDAuMjk1ODI1LCAwLjQyNzI3LCAwLjU5MzQzOSwgMC43NjAxMTEsIDAuOTI3MTU4LCAxLjA5NTQxIiwgXAotICAgICAgICAgICIwLjE1MjA1LCAwLjMwNjg4OCwgMC40MzgyNDYsIDAuNjA0MzI2LCAwLjc3MDUyMiwgMC45MzgwMzYsIDEuMTA2NjYiLCBcCi0gICAgICAgICAgIjAuMTYyMTAzLCAwLjMxNjgzNywgMC40NDgxODQsIDAuNjEzNjc3LCAwLjc4MTQ1NywgMC45NDc5OTEsIDEuMTE2NTEiLCBcCi0gICAgICAgICAgIjAuMTc1OTgsIDAuMzMwODA5LCAwLjQ2MjEwNCwgMC42Mjc4NDQsIDAuNzk0MjI4LCAwLjk2MTc5MiwgMS4xMzA1MSIsIFwKLSAgICAgICAgICAiMC4xODY4OTksIDAuMzQxNjI4LCAwLjQ3MzA4MSwgMC42MzkwNDUsIDAuODA0Nzc2LCAwLjk3MjQ4NSwgMS4xNDA3NyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMzEyMzgsIDAuNTAwNzc0LCAwLjgxMDAzOSwgMS4yMDA3NiwgMS41OTE0NCwgMS45ODMyMSwgMi4zNzYyOCIsIFwKLSAgICAgICAgICAiMC4xMzEzNDYsIDAuNTAwODA3LCAwLjgxMDAyOSwgMS4yMDA3NiwgMS41OTEyNiwgMS45ODMxNCwgMi4zNzQ5OCIsIFwKLSAgICAgICAgICAiMC4xMzE0NTQsIDAuNTAwODYxLCAwLjgxMDI1MywgMS4yMDA2OSwgMS41OTE0NCwgMS45ODMxNCwgMi4zNzU4NyIsIFwKLSAgICAgICAgICAiMC4xMzE0MTcsIDAuNTAwODY0LCAwLjgxMDAyNiwgMS4yMDA0NSwgMS41OTEyNiwgMS45ODMxMiwgMi4zNzYyNSIsIFwKLSAgICAgICAgICAiMC4xMzE1ODcsIDAuNTAwODc2LCAwLjgxMDA1MywgMS4yMDAxNywgMS41OTIzMywgMS45ODMxNCwgMi4zNzYxOCIsIFwKLSAgICAgICAgICAiMC4xMzE2ODEsIDAuNTAwNzIxLCAwLjgxMDA1MSwgMS4yMDAyMSwgMS41OTExNywgMS45ODMxNCwgMi4zNzYyOCIsIFwKLSAgICAgICAgICAiMC4xMzIxNTUsIDAuNTAwNzM4LCAwLjgxMDE0MywgMS4yMDA0MSwgMS41OTExNCwgMS45ODMxMSwgMi4zNzUzMyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMjY5MTcsIDAuMzA1NzcsIDAuNDU4MTUyLCAwLjY1MTA3OSwgMC44NDQwMjUsIDEuMDM3NzMsIDEuMjMxNDIiLCBcCi0gICAgICAgICAgIjAuMTM2OTgzLCAwLjMxNTczNiwgMC40Njg0MTYsIDAuNjYxMTg4LCAwLjg1NDExNiwgMS4wNDgwMywgMS4yNDEyOSIsIFwKLSAgICAgICAgICAiMC4xNDk2NzEsIDAuMzI4NTY2LCAwLjQ4MTEwMiwgMC42NzM5MzYsIDAuODY2ODczLCAxLjA2MDU1LCAxLjI1Mzc5IiwgXAotICAgICAgICAgICIwLjE2MjQ0NCwgMC4zNDExNjUsIDAuNDkzNzM5LCAwLjY4NjUsIDAuODc5NDY4LCAxLjA3MzE1LCAxLjI2NjM3IiwgXAotICAgICAgICAgICIwLjE3NDA2NSwgMC4zNTI2ODUsIDAuNTA1MjgyLCAwLjY5Nzk1MSwgMC44OTA4ODcsIDEuMDg0NzcsIDEuMjc3OCIsIFwKLSAgICAgICAgICAiMC4xOTEwOTQsIDAuMzY5NjIyLCAwLjUyMjIzOSwgMC43MTQ4MTIsIDAuOTA3ODAyLCAxLjEwMTI1LCAxLjI5NTAxIiwgXAotICAgICAgICAgICIwLjIwNDY4LCAwLjM4MzE2MSwgMC41MzU1MSwgMC43MjgxNTksIDAuOTIwOTQ1LCAxLjExNDEyLCAxLjMwNzk5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE0MjQ0OSwgMC41ODQ0NzYsIDAuOTUxMzE2LCAxLjQxMjM5LCAxLjg3MzAyLCAyLjMzNDQ1LCAyLjc5NTUxIiwgXAotICAgICAgICAgICIwLjE0MjQzNywgMC41ODQ0NDEsIDAuOTUxNTk3LCAxLjQxMjEsIDEuODcyNDQsIDIuMzMzMzIsIDIuNzk0MDMiLCBcCi0gICAgICAgICAgIjAuMTQyMzM1LCAwLjU4NDQyNCwgMC45NTEzMDcsIDEuNDEyMSwgMS44NzI5NywgMi4zMzQ0LCAyLjc5NDU0IiwgXAotICAgICAgICAgICIwLjE0MjQ3LCAwLjU4NDI0NywgMC45NTE1NTcsIDEuNDEyMTMsIDEuODcyNTYsIDIuMzMzOTgsIDIuNzkzOTQiLCBcCi0gICAgICAgICAgIjAuMTQyNDE3LCAwLjU4NDEwMywgMC45NTExODgsIDEuNDExNywgMS44NzIyNywgMi4zMzQzNiwgMi43OTM5OCIsIFwKLSAgICAgICAgICAiMC4xNDI2NDUsIDAuNTg0MDczLCAwLjk1MTE0OSwgMS40MTIxMSwgMS44NzIzMywgMi4zMzM2NSwgMi43OTQzOSIsIFwKLSAgICAgICAgICAiMC4xNDMwNDgsIDAuNTg0MTksIDAuOTUxNCwgMS40MTIyNSwgMS44NzI3LCAyLjMzMjc1LCAyLjc5NDkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg0MTg1LCAwLjI0NjkyOCwgMC4zODAyNTgsIDAuNTQ3NzA5LCAwLjcxNDgzNywgMC44ODI5MjUsIDEuMDUwMTciLCBcCi0gICAgICAgICAgIjAuMDkzOTIyLCAwLjI1NjU3NCwgMC4zODg5OTksIDAuNTU1NDY1LCAwLjcyMjAwNCwgMC44ODk0MDMsIDEuMDU2NzIiLCBcCi0gICAgICAgICAgIjAuMTA1MDY4LCAwLjI2Nzc3OCwgMC40MDAyODcsIDAuNTY2MzM5LCAwLjczMzA3MywgMC45MDAyNTMsIDEuMDY2ODMiLCBcCi0gICAgICAgICAgIjAuMTE0Mzg2LCAwLjI3NzEzNiwgMC40MDk4NzIsIDAuNTc2MDAxLCAwLjc0MjYyMywgMC45MDkzMDgsIDEuMDc2NDkiLCBcCi0gICAgICAgICAgIjAuMTIyODAxLCAwLjI4NTgyOSwgMC40MTg2OSwgMC41ODQ2NDcsIDAuNzUxNTY5LCAwLjkxNzgwNiwgMS4wODU0MiIsIFwKLSAgICAgICAgICAiMC4xMzU3MSwgMC4zMDAzMDksIDAuNDMzMDUsIDAuNTk5ODA2LCAwLjc2NjcxMiwgMC45MzI1NzEsIDEuMTAwMzUiLCBcCi0gICAgICAgICAgIjAuMTQ2MSwgMC4zMTM3ODgsIDAuNDQ3MDA2LCAwLjYxMzY4OCwgMC43Nzk3NDEsIDAuOTQ2MzMyLCAxLjExMzc5Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExNDc4LCAwLjQ5NjIxOSwgMC44MDg1ODcsIDEuMjAwMjYsIDEuNTkxMzksIDEuOTgzMywgMi4zNzQ1MyIsIFwKLSAgICAgICAgICAiMC4xMTY3MTcsIDAuNDk2NDA3LCAwLjgwODY1NSwgMS4yMDAxLCAxLjU5MDg3LCAxLjk4MywgMi4zNzQ3OCIsIFwKLSAgICAgICAgICAiMC4xMzA3MTIsIDAuNDk2NTk0LCAwLjgwODYzNywgMS4xOTk3OCwgMS41OTExMywgMS45ODMyOSwgMi4zNzQzMyIsIFwKLSAgICAgICAgICAiMC4xMzU4MjUsIDAuNDk2ODUyLCAwLjgwODc1MiwgMS4xOTk2NSwgMS41OTExNywgMS45ODMwNywgMi4zNzQ5OCIsIFwKLSAgICAgICAgICAiMC4xMzkyMDIsIDAuNDk2OTczLCAwLjgwODgyOCwgMS4xOTk1OSwgMS41OTA3NSwgMS45ODMxMiwgMi4zNzQ3NyIsIFwKLSAgICAgICAgICAiMC4xNDM3OTYsIDAuNDk3MjQ3LCAwLjgwODk0MywgMS4yMDA0MiwgMS41OTIwNCwgMS45ODMxNCwgMi4zNzUwNCIsIFwKLSAgICAgICAgICAiMC4xNDc2NiwgMC41MDAyMzUsIDAuODA5MTE0LCAxLjIwMDM0LCAxLjU5MDg2LCAxLjk4Mjk0LCAyLjM3NDc2Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5MDc4OSwgMC4yNzk4OTQsIDAuNDM0NDc2LCAwLjYyODAyNiwgMC44MjE0NTIsIDEuMDE1MywgMS4yMDg1MiIsIFwKLSAgICAgICAgICAiMC4xMDA3NDksIDAuMjg3ODE2LCAwLjQ0MjA1OCwgMC42MzU2MjQsIDAuODI5NDE3LCAxLjAyMzI5LCAxLjIxNzM2IiwgXAotICAgICAgICAgICIwLjExMjkyMSwgMC4yOTk5OTMsIDAuNDU0MDM3LCAwLjY0NzcwNiwgMC44NDEzOTMsIDEuMDM0NjEsIDEuMjI5NyIsIFwKLSAgICAgICAgICAiMC4xMjM3MjksIDAuMzEwODc5LCAwLjQ2NTAwNCwgMC42NTg2MDEsIDAuODUyMzQyLCAxLjA0NjAxLCAxLjI0MDM5IiwgXAotICAgICAgICAgICIwLjEzMzQ3LCAwLjMyMTA0NywgMC40NzUzNTcsIDAuNjY4OTY4LCAwLjg2MjUwNSwgMS4wNTY0OSwgMS4yNTA5MiIsIFwKLSAgICAgICAgICAiMC4xNDg3MTYsIDAuMzM3NjUyLCAwLjQ5MjIwOCwgMC42ODYxMTIsIDAuODc5NzY2LCAxLjA3MzgzLCAxLjI2ODExIiwgXAotICAgICAgICAgICIwLjE2MTkzNiwgMC4zNTI5MzEsIDAuNTA3OTMxLCAwLjcwMTgyNywgMC44OTU2NTMsIDEuMDkwMjcsIDEuMjgzODEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTMwNTg0LCAwLjU4MjYxNywgMC45NTA3NzIsIDEuNDEyMTYsIDEuODcyMjQsIDIuMzMzOTcsIDIuNzk0MDYiLCBcCi0gICAgICAgICAgIjAuMTMxMzgxLCAwLjU4MjczMywgMC45NTA4NjEsIDEuNDEyMDIsIDEuODcyMjYsIDIuMzMzNTYsIDIuNzk0NzMiLCBcCi0gICAgICAgICAgIjAuMTQ1MTg3LCAwLjU4MjYxNSwgMC45NTA5MjEsIDEuNDEyMDQsIDEuODcyOTMsIDIuMzMzMTksIDIuNzk1MzEiLCBcCi0gICAgICAgICAgIjAuMTQ5Mzk5LCAwLjU4MjU3NiwgMC45NTA4MzMsIDEuNDExNTcsIDEuODcyMDQsIDIuMzMzMTUsIDIuNzk1MTkiLCBcCi0gICAgICAgICAgIjAuMTUyODMzLCAwLjU4MjU1MywgMC45NTEyMDMsIDEuNDEyMTUsIDEuODcyMzMsIDIuMzMzNjEsIDIuNzk1NDQiLCBcCi0gICAgICAgICAgIjAuMTU3NjI1LCAwLjU4NDM0MSwgMC45NTA5NjIsIDEuNDExNSwgMS44NzIwOSwgMi4zMzI3OSwgMi43OTUxOCIsIFwKLSAgICAgICAgICAiMC4xNjEwMzYsIDAuNTg3NjYxLCAwLjk1MjQ0LCAxLjQxMTg1LCAxLjg3MjUxLCAyLjMzNDIyLCAyLjc5MzQ5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNJIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTI4MDksIDAuMjIwMzczLCAwLjM1NDcxLCAwLjUyMjYyMiwgMC42OTA3MjgsIDAuODU4NTg1LCAxLjAyNjQ4IiwgXAotICAgICAgICAgICIwLjA2MjIwMiwgMC4yMjk2MjgsIDAuMzYzODE3LCAwLjUzMTgwNywgMC42OTk1ODIsIDAuODY3NDUsIDEuMDM1NTciLCBcCi0gICAgICAgICAgIjAuMDczMzIyLCAwLjI0MDU2MiwgMC4zNzQyNzcsIDAuNTQyNTg1LCAwLjcxMDU2MSwgMC44NzgyNjcsIDEuMDQ2NTQiLCBcCi0gICAgICAgICAgIjAuMDg0MTEzLCAwLjI1MTgyNywgMC4zODYwMzEsIDAuNTUzMTU5LCAwLjcyMTM5OCwgMC44ODk3NjUsIDEuMDU3NTgiLCBcCi0gICAgICAgICAgIjAuMDk0MTYyLCAwLjI2Mjc5OCwgMC4zOTcxMzMsIDAuNTY0NzkyLCAwLjczMjA3NCwgMC45MDA1MDUsIDEuMDY3NDYiLCBcCi0gICAgICAgICAgIjAuMTA4NDA1LCAwLjI4MDIzOSwgMC40MTQ0OTIsIDAuNTgyMTc5LCAwLjc0OTkxMSwgMC45MTc0MDIsIDEuMDg1NTQiLCBcCi0gICAgICAgICAgIjAuMTE5NDIyLCAwLjI5NTQ2MywgMC40Mjk3NTQsIDAuNTk3Mzc1LCAwLjc2NDcyNywgMC45MzMxNzksIDEuMTAwODciKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTA0NDI1LCAwLjQ5NDc4LCAwLjgwODIwMywgMS4yMDAwMSwgMS41OTIyMiwgMS45ODM3MywgMi4zNzU0MSIsIFwKLSAgICAgICAgICAiMC4xMDU4MSwgMC40OTQ5MDYsIDAuODA4MTM4LCAxLjIwMDE2LCAxLjU5MTY0LCAxLjk4MzQsIDIuMzc1NCIsIFwKLSAgICAgICAgICAiMC4xMTA3MDIsIDAuNDk0ODM5LCAwLjgwODIyMywgMS4xOTk4OCwgMS41OTIwMSwgMS45ODMzNywgMi4zNzU0NCIsIFwKLSAgICAgICAgICAiMC4xMTY4MjMsIDAuNDk1MzcyLCAwLjgwODQ5MiwgMS4xOTk3NywgMS41OTE2MSwgMS45ODQxOSwgMi4zNzU5OSIsIFwKLSAgICAgICAgICAiMC4xMjM0MzEsIDAuNDk3MjA5LCAwLjgwODQzMiwgMS4yMDAxMywgMS41OTE0OCwgMS45ODM4NSwgMi4zNzQ0NSIsIFwKLSAgICAgICAgICAiMC4xMzQ5MjksIDAuNTAyNTA5LCAwLjgwOTkwMywgMS4yMDAwNywgMS41OTE0NCwgMS45ODMxMiwgMi4zNzQ5IiwgXAotICAgICAgICAgICIwLjE0NTY0MiwgMC41MDg2NDQsIDAuODEyOTc3LCAxLjIwMDM1LCAxLjU5MTI1LCAxLjk4MzQ3LCAyLjM3NDg3Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2MTU4NSwgMC4yNTUwNTMsIDAuNDEwMTQ4LCAwLjYwMzYxNywgMC43OTcyNDcsIDAuOTkxMjc3LCAxLjE4NTEiLCBcCi0gICAgICAgICAgIjAuMDcxNDkzLCAwLjI2NDkzNCwgMC40MjAwNjksIDAuNjEzNTA0LCAwLjgwNzAxNiwgMS4wMDExNCwgMS4xOTQ5NSIsIFwKLSAgICAgICAgICAiMC4wODM3NzUsIDAuMjc3MjQyLCAwLjQzMjM0NiwgMC42MjYwMjcsIDAuODE5NjAyLCAxLjAxMzMsIDEuMjA3NyIsIFwKLSAgICAgICAgICAiMC4wOTYwMzksIDAuMjg5NDYyLCAwLjQ0NDYyMSwgMC42MzgzMzQsIDAuODMyMTM1LCAxLjAyNTYxLCAxLjIxOTk0IiwgXAotICAgICAgICAgICIwLjEwNzkwOCwgMC4zMDE2MDQsIDAuNDU2ODQyLCAwLjY1MDE2NiwgMC44NDQxMjMsIDEuMDM4NTIsIDEuMjMyNTciLCBcCi0gICAgICAgICAgIjAuMTI1NDA4LCAwLjMyMTA2NiwgMC40NzYzMzEsIDAuNjcwMzg2LCAwLjg2MzkzMiwgMS4wNTgyNCwgMS4yNTEzNSIsIFwKLSAgICAgICAgICAiMC4xMzkxODYsIDAuMzM3NjE2LCAwLjQ5MzE4OCwgMC42ODc0NjEsIDAuODgxNjA1LCAxLjA3NTAxLCAxLjI2ODk3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEyMjIxMSwgMC41ODE1NjIsIDAuOTQ5ODgzLCAxLjQxMDU1LCAxLjg3MTQ5LCAyLjMzMjM0LCAyLjc5MjQyIiwgXAotICAgICAgICAgICIwLjEyMjc3OSwgMC41ODE3MzcsIDAuOTQ5ODcxLCAxLjQxMDMzLCAxLjg3MTM0LCAyLjMzMTg4LCAyLjc5MjM2IiwgXAotICAgICAgICAgICIwLjEyNjQ5MywgMC41ODE4MiwgMC45NDk4NTQsIDEuNDEwOTYsIDEuODcwOTUsIDIuMzMxODgsIDIuNzk0MSIsIFwKLSAgICAgICAgICAiMC4xMzIzMjQsIDAuNTgxOTQ0LCAwLjk0OTkyNCwgMS40MTA5NCwgMS44NzE0OCwgMi4zMzIxOSwgMi43OTQiLCBcCi0gICAgICAgICAgIjAuMTM4OTY1LCAwLjU4MjgzNCwgMC45NTAyMDcsIDEuNDEwMjgsIDEuODcxMjQsIDIuMzMzMDgsIDIuNzkzNjIiLCBcCi0gICAgICAgICAgIjAuMTUwMTY3LCAwLjU4Njg0NiwgMC45NTA3MjksIDEuNDEwODYsIDEuODcxNTIsIDIuMzMzMTcsIDIuNzkyNDQiLCBcCi0gICAgICAgICAgIjAuMTYwNjI3LCAwLjU5MTQyLCAwLjk1MzAxNSwgMS40MTEwMSwgMS44NzExNiwgMi4zMzI5NiwgMi43OTM5OCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxNjk3MiwgMC4wMTY0MDMsIDAuMDE2Mjg5LCAwLjAxNjIyMSwgMC4wMTYxODMsIDAuMDE2MTU4LCAwLjAxNjE0MSIsIFwKLSAgICAgICAgICAiMC4wMTY5MzQsIDAuMDE2MzYsIDAuMDE2MjQ0LCAwLjAxNjE3NCwgMC4wMTYxMzgsIDAuMDE2MTE0LCAwLjAxNjA5NCIsIFwKLSAgICAgICAgICAiMC4wMTY5NDEsIDAuMDE2MzU3LCAwLjAxNjIzOSwgMC4wMTYxNjgsIDAuMDE2MTI4LCAwLjAxNjEwNSwgMC4wMTYwODQiLCBcCi0gICAgICAgICAgIjAuMDE2OTU0LCAwLjAxNjM2MiwgMC4wMTYyNDIsIDAuMDE2MTcsIDAuMDE2MTMsIDAuMDE2MTAzLCAwLjAxNjA4OCIsIFwKLSAgICAgICAgICAiMC4wMTcwMDMsIDAuMDE2Mzk3LCAwLjAxNjI3MiwgMC4wMTYxOTcsIDAuMDE2MTU1LCAwLjAxNjEyOCwgMC4wMTYxMSIsIFwKLSAgICAgICAgICAiMC4wMTcwNjIsIDAuMDE2NDUsIDAuMDE2MzI0LCAwLjAxNjI0OCwgMC4wMTYyMDQsIDAuMDE2MTc3LCAwLjAxNjE1OSIsIFwKLSAgICAgICAgICAiMC4wMTcxNDMsIDAuMDE2NTE3LCAwLjAxNjM4NywgMC4wMTYzMDcsIDAuMDE2MjYyLCAwLjAxNjIzNSwgMC4wMTYyMTYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTQyMzgsIDAuMDEzNTQ3LCAwLjAxMzQwMywgMC4wMTMzMTUsIDAuMDEzMjY2LCAwLjAxMzIzNCwgMC4wMTMyMTMiLCBcCi0gICAgICAgICAgIjAuMDE0MTcxLCAwLjAxMzQ3NywgMC4wMTMzMzEsIDAuMDEzMjQyLCAwLjAxMzE5MywgMC4wMTMxNjIsIDAuMDEzMTQiLCBcCi0gICAgICAgICAgIjAuMDE0MTM1LCAwLjAxMzQ1MSwgMC4wMTMzMDksIDAuMDEzMjIxLCAwLjAxMzE3MiwgMC4wMTMxNCwgMC4wMTMxMTgiLCBcCi0gICAgICAgICAgIjAuMDE0MTcsIDAuMDEzNDYzLCAwLjAxMzMxNCwgMC4wMTMyMjQsIDAuMDEzMTc0LCAwLjAxMzE0MiwgMC4wMTMxMTkiLCBcCi0gICAgICAgICAgIjAuMDE0MjE0LCAwLjAxMzUwNiwgMC4wMTMzNTQsIDAuMDEzMjYxLCAwLjAxMzIxLCAwLjAxMzE3NywgMC4wMTMxNTQiLCBcCi0gICAgICAgICAgIjAuMDE0Mjc4LCAwLjAxMzU2MywgMC4wMTM0MSwgMC4wMTMzMTYsIDAuMDEzMjYzLCAwLjAxMzIzLCAwLjAxMzIwNiIsIFwKLSAgICAgICAgICAiMC4wMTQzNzMsIDAuMDEzNjM5LCAwLjAxMzQ4MiwgMC4wMTMzODUsIDAuMDEzMzMxLCAwLjAxMzI5NiwgMC4wMTMyNzIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTY5MDcsIDAuMDE2ODQxLCAwLjAxNjgzMSwgMC4wMTY4MjIsIDAuMDE2ODIzLCAwLjAxNjgyNCwgMC4wMTY4MiIsIFwKLSAgICAgICAgICAiMC4wMTY5MDcsIDAuMDE2ODMxLCAwLjAxNjgyMSwgMC4wMTY4MTQsIDAuMDE2ODExLCAwLjAxNjgxNSwgMC4wMTY4MDgiLCBcCi0gICAgICAgICAgIjAuMDE3MDM3LCAwLjAxNjk0NSwgMC4wMTY5MzEsIDAuMDE2OTI1LCAwLjAxNjkyLCAwLjAxNjkxNywgMC4wMTY5MTUiLCBcCi0gICAgICAgICAgIjAuMDE3MTkyLCAwLjAxNzA3NywgMC4wMTcwNjEsIDAuMDE3MDUzLCAwLjAxNzA0NywgMC4wMTcwNDUsIDAuMDE3MDQ0IiwgXAotICAgICAgICAgICIwLjAxNzQzOCwgMC4wMTczMTMsIDAuMDE3Mjk1LCAwLjAxNzI4NSwgMC4wMTcyNzgsIDAuMDE3Mjc3LCAwLjAxNzI3NCIsIFwKLSAgICAgICAgICAiMC4wMTc1OTIsIDAuMDE3NDU3LCAwLjAxNzQzNCwgMC4wMTc0MTYsIDAuMDE3NDE4LCAwLjAxNzQxNywgMC4wMTc0MDMiLCBcCi0gICAgICAgICAgIjAuMDE3ODQ3LCAwLjAxNzcwMiwgMC4wMTc2NjMsIDAuMDE3NjY4LCAwLjAxNzY2MywgMC4wMTc2NTgsIDAuMDE3NjU1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA4MTkyLCAwLjAwODE5MywgMC4wMDgxOTMsIDAuMDA4MTkzLCAwLjAwODE5MywgMC4wMDgxOTQsIDAuMDA4MTkzIiwgXAotICAgICAgICAgICIwLjAwODA1MSwgMC4wMDgwNzYsIDAuMDA4MDc5LCAwLjAwODA4LCAwLjAwODA4MSwgMC4wMDgwODIsIDAuMDA4MDgyIiwgXAotICAgICAgICAgICIwLjAwODA5LCAwLjAwODEzNiwgMC4wMDgxNDIsIDAuMDA4MTQ1LCAwLjAwODE0NiwgMC4wMDgxNDcsIDAuMDA4MTQ4IiwgXAotICAgICAgICAgICIwLjAwODE5OCwgMC4wMDgyNTYsIDAuMDA4MjY1LCAwLjAwODI3LCAwLjAwODI3MiwgMC4wMDgyNzQsIDAuMDA4Mjc1IiwgXAotICAgICAgICAgICIwLjAwODM1NywgMC4wMDgzOTEsIDAuMDA4NDAxLCAwLjAwODQwNywgMC4wMDg0MSwgMC4wMDg0MTIsIDAuMDA4NDE0IiwgXAotICAgICAgICAgICIwLjAwODY5OSwgMC4wMDg3NDYsIDAuMDA4NzU4LCAwLjAwODc2MSwgMC4wMDg3NjUsIDAuMDA4NzY3LCAwLjAwODc2OSIsIFwKLSAgICAgICAgICAiMC4wMDg4ODUsIDAuMDA4Nzk3LCAwLjAwODgxLCAwLjAwODgxOCwgMC4wMDg4MjIsIDAuMDA4ODI1LCAwLjAwODgyOCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNJIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDUzNjMsIDAuMDA1MzY0LCAwLjAwNTM2NCwgMC4wMDUzNjUsIDAuMDA1MzY0LCAwLjAwNTM2NCwgMC4wMDUzNjUiLCBcCi0gICAgICAgICAgIjAuMDA1MzM4LCAwLjAwNTM0OSwgMC4wMDUzNDksIDAuMDA1MzUxLCAwLjAwNTM1MSwgMC4wMDUzNTEsIDAuMDA1MzUxIiwgXAotICAgICAgICAgICIwLjAwNTM0MiwgMC4wMDUzNiwgMC4wMDUzNjMsIDAuMDA1MzU4LCAwLjAwNTM2NCwgMC4wMDUzNjMsIDAuMDA1MzY0IiwgXAotICAgICAgICAgICIwLjAwNTM1MywgMC4wMDUzNzIsIDAuMDA1Mzc1LCAwLjAwNTM3OSwgMC4wMDUzNzgsIDAuMDA1MzgsIDAuMDA1Mzc5IiwgXAotICAgICAgICAgICIwLjAwNTM3MSwgMC4wMDUzODcsIDAuMDA1MzksIDAuMDA1MzkzLCAwLjAwNTM5MywgMC4wMDUzOTYsIDAuMDA1Mzk0IiwgXAotICAgICAgICAgICIwLjAwNTQwOCwgMC4wMDU0MSwgMC4wMDU0MTcsIDAuMDA1NDE3LCAwLjAwNTQxOSwgMC4wMDU0MTksIDAuMDA1NDE1IiwgXAotICAgICAgICAgICIwLjAwNTQ0OCwgMC4wMDU0MzksIDAuMDA1NDQxLCAwLjAwNTQ0MiwgMC4wMDU0NDIsIDAuMDA1NDM4LCAwLjAwNTQ0NSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTk5NiwgMC4wMDE5OTgsIDAuMDAxOTk4LCAwLjAwMTk5OCwgMC4wMDE5OTgsIDAuMDAxOTk4LCAwLjAwMTk5OCIsIFwKLSAgICAgICAgICAiMC4wMDE5NSwgMC4wMDE5NjgsIDAuMDAxOTcxLCAwLjAwMTk3MiwgMC4wMDE5NzMsIDAuMDAxOTczLCAwLjAwMTk3MyIsIFwKLSAgICAgICAgICAiMC4wMDE5NDksIDAuMDAxOTc3LCAwLjAwMTk4MSwgMC4wMDE5ODQsIDAuMDAxOTg1LCAwLjAwMTk4NiwgMC4wMDE5ODYiLCBcCi0gICAgICAgICAgIjAuMDAxOTU0LCAwLjAwMTk4NywgMC4wMDE5OTMsIDAuMDAxOTk1LCAwLjAwMTk5NywgMC4wMDE5OTksIDAuMDAxOTk5IiwgXAotICAgICAgICAgICIwLjAwMTk3MiwgMC4wMDIwMDEsIDAuMDAyMDA3LCAwLjAwMjAxMiwgMC4wMDIwMTMsIDAuMDAyMDE0LCAwLjAwMjAxNSIsIFwKLSAgICAgICAgICAiMC4wMDIwMTMsIDAuMDAyMDI4LCAwLjAwMjAzMywgMC4wMDIwMzcsIDAuMDAyMDM5LCAwLjAwMjA0MSwgMC4wMDIwNDEiLCBcCi0gICAgICAgICAgIjAuMDAyMDU5LCAwLjAwMjA1NSwgMC4wMDIwNTksIDAuMDAyMDYyLCAwLjAwMjA2NCwgMC4wMDIwNjUsIDAuMDAyMDY1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBBRERGWDIgKgotICogLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChBRERGWDIpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4zNzQ0MjsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAyNjYyMTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDI2NTE0OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMjY2MjE7Ci0gIH0KLSAgcGluKEIpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMjUzMTU4OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMjUxOTMxOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMjUzMTU4OwotICB9Ci0gIHBpbihDSSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxOTg2ODQ7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxOTc1NTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE5ODY4NDsKLSAgfQotICBwaW4oQ08pICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC41MjU4NTI7Ci0gICAgZnVuY3Rpb24gOiAiKCgoQSBCKSsoQiBDSSkpKyhDSSBBKSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExMTU5MSwgMC4yMjAxNTIsIDAuMzAyMDE3LCAwLjQwNDQzNywgMC41MDczNjIsIDAuNjA5Mjc4LCAwLjcxMDE5IiwgXAotICAgICAgICAgICIwLjEyMTAzNCwgMC4yMjk2ODksIDAuMzExNDk5LCAwLjQxMzg3NSwgMC41MTY0OTIsIDAuNjE4MDEyLCAwLjcxOTczNCIsIFwKLSAgICAgICAgICAiMC4xMzIxNTEsIDAuMjQwNzkxLCAwLjMyMjU4NiwgMC40MjQ5NjcsIDAuNTI3MzQzLCAwLjYyOTUzMiwgMC43MzA4NDciLCBcCi0gICAgICAgICAgIjAuMTQzMTM2LCAwLjI1MTc0NCwgMC4zMzM1ODUsIDAuNDM1OTE2LCAwLjUzODYxNiwgMC42NDAxMTEsIDAuNzQxODA1IiwgXAotICAgICAgICAgICIwLjE1MzkyOCwgMC4yNjIzOTksIDAuMzQ0NDAyLCAwLjQ0Njc0MSwgMC41NDkzMzgsIDAuNjUxMDg4LCAwLjc1MjUwMyIsIFwKLSAgICAgICAgICAiMC4xNzAyMjQsIDAuMjc4OTkyLCAwLjM2MDc5NCwgMC40NjMzMTQsIDAuNTY0NzczLCAwLjY2NjM5NywgMC43NjkxOTEiLCBcCi0gICAgICAgICAgIjAuMTg0MTU5LCAwLjI5MzAwMywgMC4zNzQ4NzYsIDAuNDc3MjU3LCAwLjU3OTY0NCwgMC42ODE0MzQsIDAuNzgzMTE2Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2NTc5NSwgMC4yNjkwNzEsIDAuNDMyMjY4LCAwLjY0MjgyMywgMC44NDk1NDksIDEuMDU5NjQsIDEuMjY5MjEiLCBcCi0gICAgICAgICAgIjAuMDY1NjM3LCAwLjI2OTA2OSwgMC40MzQ0MDEsIDAuNjQxOTMyLCAwLjg0OTgxMiwgMS4wNTk0MSwgMS4yNjkxOSIsIFwKLSAgICAgICAgICAiMC4wNjU4MywgMC4yNjkwMjQsIDAuNDMyMDcsIDAuNjQxODUzLCAwLjg1MDM4NywgMS4wNTg4MiwgMS4yNzAwOSIsIFwKLSAgICAgICAgICAiMC4wNjU3NDgsIDAuMjY5MDY2LCAwLjQzNDExMiwgMC42NDE5NTgsIDAuODQ5NTM5LCAxLjA1OTQzLCAxLjI2OTE3IiwgXAotICAgICAgICAgICIwLjA2NTk5NSwgMC4yNjg5NzYsIDAuNDM0NzgsIDAuNjQyNjAxLCAwLjg1MDQwNCwgMS4wNTg4MSwgMS4yNzAxIiwgXAotICAgICAgICAgICIwLjA2NjU5MiwgMC4yNjkyMTYsIDAuNDM0ODE5LCAwLjY0Mjg0MywgMC44NTAwMjEsIDEuMDU5ODMsIDEuMjcwMSIsIFwKLSAgICAgICAgICAiMC4wNjY5OTEsIDAuMjY5Mjc4LCAwLjQzNDg3NywgMC42NDI4NTksIDAuODQ5ODg4LCAxLjA1ODc0LCAxLjI3MDEyIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExNzYwMSwgMC4yMjkwOTMsIDAuMzEyMzI5LCAwLjQxNTkxMiwgMC41MjAzNjcsIDAuNjIzNTQzLCAwLjcyNjc2NCIsIFwKLSAgICAgICAgICAiMC4xMjcxMDksIDAuMjM4NjY4LCAwLjMyMTg1NCwgMC40MjU1ODIsIDAuNTI4ODY2LCAwLjYzMjI0MywgMC43MzYyNzkiLCBcCi0gICAgICAgICAgIjAuMTM3NTU2LCAwLjI0OTA2NCwgMC4zMzIzMjQsIDAuNDM1NjU0LCAwLjUzOTcxNCwgMC42NDM2OCwgMC43NDY5NTkiLCBcCi0gICAgICAgICAgIjAuMTQ3NTYxLCAwLjI1OTA0LCAwLjM0MjI5LCAwLjQ0NjA0MiwgMC41NTAwOTYsIDAuNjUzMzQxLCAwLjc1Njk3NyIsIFwKLSAgICAgICAgICAiMC4xNTcyODcsIDAuMjY4NzQ2LCAwLjM1MjAxMSwgMC40NTU3ODQsIDAuNTU5ODE1LCAwLjY2MzA2MSwgMC43NjY4MDciLCBcCi0gICAgICAgICAgIjAuMTcyMDgsIDAuMjgzNzY5LCAwLjM2Njk2MSwgMC40NzA3NTEsIDAuNTc0NzQ3LCAwLjY3Nzk5OSwgMC43ODE4NjYiLCBcCi0gICAgICAgICAgIjAuMTg0NDY4LCAwLjI5NjI3NiwgMC4zNzk1MywgMC40ODM4MjksIDAuNTg3MjQ0LCAwLjY5MDU0NiwgMC43OTM0OTUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY3MjAyLCAwLjI2ODk1NCwgMC40MzQxODUsIDAuNjQwODE5LCAwLjg0ODQ0NywgMS4wNTc4MywgMS4yNjY5MyIsIFwKLSAgICAgICAgICAiMC4wNjcwNjUsIDAuMjcwMTI2LCAwLjQzNDE4NCwgMC42NDA5MTMsIDAuODQ4ODM2LCAxLjA1Nzg2LCAxLjI2NjkzIiwgXAotICAgICAgICAgICIwLjA2NzAyNCwgMC4yNjk4MzcsIDAuNDM0MTc4LCAwLjY0MDkxMSwgMC44NDkwMjYsIDEuMDU3ODIsIDEuMjY3MTMiLCBcCi0gICAgICAgICAgIjAuMDY3MzM5LCAwLjI2OTc2NCwgMC40MzQxNjYsIDAuNjQxMDM0LCAwLjg0ODk3MSwgMS4wNTg1MSwgMS4yNjcyMyIsIFwKLSAgICAgICAgICAiMC4wNjcwMjMsIDAuMjY5NTc3LCAwLjQzNDE2NywgMC42NDEwMjgsIDAuODQ3NjgzLCAxLjA1Nzk3LCAxLjI2NzM4IiwgXAotICAgICAgICAgICIwLjA2NzI5MywgMC4yNzAyMTYsIDAuNDM0MjA1LCAwLjY0MDg3NiwgMC44NDkyODYsIDEuMDU3MDgsIDEuMjY3NTIiLCBcCi0gICAgICAgICAgIjAuMDY4ODg1LCAwLjI2OTkzNCwgMC40MzQyMTgsIDAuNjQwOTc0LCAwLjg0ODc2NSwgMS4wNTc4NSwgMS4yNjY2MiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTE1ODksIDAuMjIwMTI4LCAwLjMwMTk5MiwgMC40MDQyMTIsIDAuNTA2MzQzLCAwLjYwODAzOSwgMC43MTAyOTUiLCBcCi0gICAgICAgICAgIjAuMTIwNzM3LCAwLjIyOTMwMiwgMC4zMTEzMDQsIDAuNDEzNjkyLCAwLjUxNjcyNCwgMC42MTg4NzIsIDAuNzIwMzEyIiwgXAotICAgICAgICAgICIwLjEzMjQwOSwgMC4yNDA5MzYsIDAuMzIyNzcxLCAwLjQyNDg1NSwgMC41Mjc3OTMsIDAuNjMwMDcsIDAuNzMwOTkiLCBcCi0gICAgICAgICAgIjAuMTQ0MiwgMC4yNTI3NTQsIDAuMzM0NTc1LCAwLjQzNjY4MywgMC41Mzk1NTIsIDAuNjQxOTM5LCAwLjc0Mjg2MSIsIFwKLSAgICAgICAgICAiMC4xNTYwNDUsIDAuMjY0NTQ5LCAwLjM0NjQwOCwgMC40NDg1MjQsIDAuNTUxNjE0LCAwLjY1NDIxLCAwLjc1NTQxNyIsIFwKLSAgICAgICAgICAiMC4xNzQ0NTUsIDAuMjgzMTU1LCAwLjM2NDk0NCwgMC40NjcwMDQsIDAuNTY5ODkxLCAwLjY3MTM0MywgMC43NzMzOSIsIFwKLSAgICAgICAgICAiMC4xOTA0NSwgMC4yOTkyNzYsIDAuMzgxMTc2LCAwLjQ4MzE0OSwgMC41ODYwNDksIDAuNjg4NDUsIDAuNzkxMDE5Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2NjA5OCwgMC4yNjkxMDYsIDAuNDMxNTQzLCAwLjY0MjczNiwgMC44NDk3MDUsIDEuMDU5MDIsIDEuMjY5ODMiLCBcCi0gICAgICAgICAgIjAuMDY1Njc0LCAwLjI2OTEzMywgMC40MzQ1MDUsIDAuNjQwOTc3LCAwLjg0ODkyNSwgMS4wNTgyNiwgMS4yNzAxNCIsIFwKLSAgICAgICAgICAiMC4wNjYwNDcsIDAuMjY5MTMzLCAwLjQzMjU2NiwgMC42NDE5MDQsIDAuODQ5MzE2LCAxLjA1OTQ5LCAxLjI2ODc1IiwgXAotICAgICAgICAgICIwLjA2NTkwMSwgMC4yNjkxNjMsIDAuNDM0MDc5LCAwLjY0MTk0MiwgMC44NDkxNDcsIDEuMDU5NSwgMS4yNjg2OSIsIFwKLSAgICAgICAgICAiMC4wNjYwMzQsIDAuMjY5MDE5LCAwLjQzNDAwNywgMC42NDE3NjgsIDAuODUwMjUxLCAxLjA1ODI5LCAxLjI3MDEzIiwgXAotICAgICAgICAgICIwLjA2Njc1NywgMC4yNjkzOTcsIDAuNDMyODA3LCAwLjY0MTg3MiwgMC44NDksIDEuMDU5NzEsIDEuMjY5NzUiLCBcCi0gICAgICAgICAgIjAuMDY3ODk3LCAwLjI2OTUyOCwgMC40MzQ3OSwgMC42NDE5NjYsIDAuODQ5MDA5LCAxLjA1OTU3LCAxLjI2ODYiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTE1MDY5LCAwLjIyODA2NiwgMC4zMTEzODEsIDAuNDE1MTY5LCAwLjUxODc4OSwgMC42MjI2NDksIDAuNzI1OTcxIiwgXAotICAgICAgICAgICIwLjEyNDQ1NSwgMC4yMzc0MzMsIDAuMzIwNjM5LCAwLjQyNDY4OCwgMC41Mjg1MDQsIDAuNjMxNzE2LCAwLjczNDYwOSIsIFwKLSAgICAgICAgICAiMC4xMzUyMDksIDAuMjQ3NTQ5LCAwLjMzMDg4MywgMC40MzQ2NTYsIDAuNTM4NTQ3LCAwLjY0MTg4NywgMC43NDUwNCIsIFwKLSAgICAgICAgICAiMC4xNDY2OTksIDAuMjU4MDY2LCAwLjM0MTQ1OSwgMC40NDUyNTksIDAuNTQ5ODMyLCAwLjY1Mjk5NiwgMC43NTU5MjciLCBcCi0gICAgICAgICAgIjAuMTU4MTgyLCAwLjI2OTYzNywgMC4zNTI5MjYsIDAuNDU2ODA4LCAwLjU2MTM2OCwgMC42NjQ1MzcsIDAuNzY3MjUzIiwgXAotICAgICAgICAgICIwLjE3NjMxNCwgMC4yODc3NzMsIDAuMzcxMTQ4LCAwLjQ3NDc5NywgMC41Nzk1MywgMC42ODI2MzUsIDAuNzg1NiIsIFwKLSAgICAgICAgICAiMC4xOTEwOCwgMC4zMDI3NDIsIDAuMzg2MTY3LCAwLjQ4OTkzOCwgMC41OTQ0NSwgMC42OTc2ODksIDAuODAwNDg1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2ODg5NSwgMC4yNzA4MjIsIDAuNDM1MTA3LCAwLjY0MDgwMSwgMC44NDkyMTgsIDEuMDU3MzYsIDEuMjY3MTEiLCBcCi0gICAgICAgICAgIjAuMDY4ODEyLCAwLjI3MDgwMSwgMC40MzQ4MjIsIDAuNjQxMzkyLCAwLjg0ODc5MiwgMS4wNTc4NiwgMS4yNjY4MyIsIFwKLSAgICAgICAgICAiMC4wNjg4MTYsIDAuMjY5NDU5LCAwLjQzNTEzMSwgMC42NDE3NDIsIDAuODQ5MjY3LCAxLjA1NzQyLCAxLjI2NzkxIiwgXAotICAgICAgICAgICIwLjA2ODg3NCwgMC4yNjk2NywgMC40MzUxMDgsIDAuNjQwODkyLCAwLjg0ODMyMSwgMS4wNTc4OCwgMS4yNjYzOSIsIFwKLSAgICAgICAgICAiMC4wNjg3NzYsIDAuMjcwODA0LCAwLjQzNDg1NCwgMC42NDEyMDksIDAuODQ4MzcxLCAxLjA1Nzg3LCAxLjI2NjQzIiwgXAotICAgICAgICAgICIwLjA2OTY0MSwgMC4yNzA5LCAwLjQzNTE2OSwgMC42NDEwMDIsIDAuODQ4MzUsIDEuMDU3ODcsIDEuMjY2MzMiLCBcCi0gICAgICAgICAgIjAuMDcwNzAyLCAwLjI3MTM0OCwgMC40MzUzNDYsIDAuNjQxNDM0LCAwLjg0ODUzLCAxLjA1Nzk0LCAxLjI2NjA0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNJIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDQ3MjcsIDAuMjEzMzY1LCAwLjI5NTE3OSwgMC4zOTc0OSwgMC40OTk2MzEsIDAuNjAxNTIyLCAwLjcwMzUzNSIsIFwKLSAgICAgICAgICAiMC4xMTQwOTksIDAuMjIyNzQ1LCAwLjMwNDU0OCwgMC40MDcwODgsIDAuNTA5Mjg1LCAwLjYxMTExOCwgMC43MTMxNDQiLCBcCi0gICAgICAgICAgIjAuMTI1OTE3LCAwLjIzNDU0NSwgMC4zMTYzNjQsIDAuNDE4MjU0LCAwLjUyMTM2NiwgMC42MjM0MSwgMC43MjQ4NTciLCBcCi0gICAgICAgICAgIjAuMTM3ODgsIDAuMjQ2NTI0LCAwLjMyODM0OCwgMC40MzA1NzMsIDAuNTMzMDgzLCAwLjYzNDg2NywgMC43MzU5NjkiLCBcCi0gICAgICAgICAgIjAuMTQ5ODY3LCAwLjI1ODM4OSwgMC4zNDAyNzgsIDAuNDQyNTE3LCAwLjU0NDYzLCAwLjY0Njk2MSwgMC43NDg1NzMiLCBcCi0gICAgICAgICAgIjAuMTY4MTMxLCAwLjI3NjkxNSwgMC4zNTg3MzIsIDAuNDYwNDk5LCAwLjU2MjkzOSwgMC42NjUwMjQsIDAuNzY3MTE0IiwgXAotICAgICAgICAgICIwLjE4Mzc1OCwgMC4yOTI2NTEsIDAuMzc0NDc5LCAwLjQ3NjgyNiwgMC41NzkxNDMsIDAuNjgxMDg0LCAwLjc4Mjc2NiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjYyNjksIDAuMjY5MTczLCAwLjQzNDU4OCwgMC42Mzk4NDIsIDAuODQ5MjA3LCAxLjA1ODgxLCAxLjI2OTIyIiwgXAotICAgICAgICAgICIwLjA2NjE0MSwgMC4yNjkxNywgMC40MzQ2NTIsIDAuNjQxMTQ1LCAwLjg0OTQwMiwgMS4wNTg4NSwgMS4yNjkyMiIsIFwKLSAgICAgICAgICAiMC4wNjYzODQsIDAuMjY5MTQ5LCAwLjQzNDM3NCwgMC42NDE4NzMsIDAuODQ5NTMyLCAxLjA1ODM3LCAxLjI2OTA2IiwgXAotICAgICAgICAgICIwLjA2NjMwNCwgMC4yNjkxNjgsIDAuNDM0NjY0LCAwLjYzOTI1OSwgMC44NDkzNDUsIDEuMDU4ODgsIDEuMjY4NyIsIFwKLSAgICAgICAgICAiMC4wNjYzNiwgMC4yNjkwMzYsIDAuNDM0NjE2LCAwLjYzOTk1OSwgMC44NTAwNjQsIDEuMDU4ODksIDEuMjY5MTkiLCBcCi0gICAgICAgICAgIjAuMDY3MzY5LCAwLjI2OTQwNSwgMC40MzQ2MzIsIDAuNjQxNTg4LCAwLjg0ODgzNSwgMS4wNTg3NiwgMS4yNjkwOSIsIFwKLSAgICAgICAgICAiMC4wNjkwMTQsIDAuMjY5NjkxLCAwLjQzNDc4MiwgMC42NDAxNDgsIDAuODQ5NjAyLCAxLjA1ODgsIDEuMjY5MDkiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTA5MzE0LCAwLjIyMjQ1MywgMC4zMDU3ODksIDAuNDA5OTkxLCAwLjUxMzQ2OSwgMC42MTY3MjUsIDAuNzE5NDk5IiwgXAotICAgICAgICAgICIwLjExODI4NywgMC4yMzE0NjcsIDAuMzE0NzYxLCAwLjQxOTAyOSwgMC41MjE1NjgsIDAuNjI1NDY3LCAwLjcyOTE0NiIsIFwKLSAgICAgICAgICAiMC4xMjk1OTEsIDAuMjQyNzgxLCAwLjMyNjEyNiwgMC40MzAwNDgsIDAuNTMzMTY3LCAwLjYzNjIyNSwgMC43Mzk4MTEiLCBcCi0gICAgICAgICAgIjAuMTQxMjUsIDAuMjU0NDIsIDAuMzM3ODIyLCAwLjQ0MTc1MiwgMC41NDU0NzQsIDAuNjQ4NzA4LCAwLjc1MTYyNiIsIFwKLSAgICAgICAgICAiMC4xNTI2NTcsIDAuMjY1ODYxLCAwLjM0OTIxNSwgMC40NTMxODIsIDAuNTU2OTExLCAwLjY2MDE2NCwgMC43NjMyNjkiLCBcCi0gICAgICAgICAgIjAuMTcwNDUxLCAwLjI4MzcxOCwgMC4zNjcwNjEsIDAuNDcwODgxLCAwLjU3NDM2NiwgMC42NzgxMTcsIDAuNzgxMjI5IiwgXAotICAgICAgICAgICIwLjE4NDc2NiwgMC4yOTgzMDIsIDAuMzgxNjQsIDAuNDg1MjkzLCAwLjU4OTM1NSwgMC42OTI1OTcsIDAuNzk2MjEyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3MDA3NywgMC4yNjk1ODksIDAuNDM1MTEyLCAwLjY0MTQ4MSwgMC44NDc2MSwgMS4wNTcxNiwgMS4yNjU2IiwgXAotICAgICAgICAgICIwLjA2OTkxNCwgMC4yNzA5MDQsIDAuNDM1MTM5LCAwLjY0MDY3NiwgMC44NDg5OTksIDEuMDU3MTUsIDEuMjY2OTMiLCBcCi0gICAgICAgICAgIjAuMDcwMjM0LCAwLjI3MDM2NywgMC40MzUxNTYsIDAuNjQxNTQ1LCAwLjg0OTE4NSwgMS4wNTcxMiwgMS4yNjcyNSIsIFwKLSAgICAgICAgICAiMC4wNzAwNjIsIDAuMjcxMDUyLCAwLjQzNDU0MSwgMC42NDEwNjgsIDAuODQ3NjUyLCAxLjA1NzQ0LCAxLjI2NzI1IiwgXAotICAgICAgICAgICIwLjA3MDE3OCwgMC4yNjk1MjksIDAuNDM1MTcsIDAuNjQxMDY5LCAwLjg0NzcwNSwgMS4wNTcxNCwgMS4yNjcyNyIsIFwKLSAgICAgICAgICAiMC4wNzEwNDUsIDAuMjcxMjQ2LCAwLjQzNTIzNywgMC42NDA5ODEsIDAuODQ3NTU3LCAxLjA1NzUsIDEuMjY1OSIsIFwKLSAgICAgICAgICAiMC4wNzI0NzMsIDAuMjcxNTI5LCAwLjQzNTM2LCAwLjY0MTY3NiwgMC44NDc2NzEsIDEuMDU3MTksIDEuMjY3MzMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI4NzEsIDAuMDAyOTU1LCAwLjAwMjk3LCAwLjAwMjk3OCwgMC4wMDI5ODIsIDAuMDAyOTg0LCAwLjAwMjk4NyIsIFwKLSAgICAgICAgICAiMC4wMDI4NTMsIDAuMDAyOTM4LCAwLjAwMjk1MywgMC4wMDI5NjIsIDAuMDAyOTY2LCAwLjAwMjk3LCAwLjAwMjk3MiIsIFwKLSAgICAgICAgICAiMC4wMDI4NDMsIDAuMDAyOTMsIDAuMDAyOTQ1LCAwLjAwMjk1NCwgMC4wMDI5NTgsIDAuMDAyOTYxLCAwLjAwMjk2MyIsIFwKLSAgICAgICAgICAiMC4wMDI4MzksIDAuMDAyOTI1LCAwLjAwMjk0LCAwLjAwMjk0OSwgMC4wMDI5NTQsIDAuMDAyOTU3LCAwLjAwMjk1OSIsIFwKLSAgICAgICAgICAiMC4wMDI4MzUsIDAuMDAyOTIsIDAuMDAyOTM2LCAwLjAwMjk0NiwgMC4wMDI5NTEsIDAuMDAyOTU0LCAwLjAwMjk1NiIsIFwKLSAgICAgICAgICAiMC4wMDI4MzYsIDAuMDAyOTE3LCAwLjAwMjkzNCwgMC4wMDI5NDQsIDAuMDAyOTQ5LCAwLjAwMjk1MiwgMC4wMDI5NTUiLCBcCi0gICAgICAgICAgIjAuMDAyODMyLCAwLjAwMjkxNCwgMC4wMDI5MzIsIDAuMDAyOTQyLCAwLjAwMjk0OCwgMC4wMDI5NTEsIDAuMDAyOTU0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0NDM2LCAwLjAwNDUyMywgMC4wMDQ1MzksIDAuMDA0NTQ3LCAwLjAwNDU1MywgMC4wMDQ1NTUsIDAuMDA0NTU3IiwgXAotICAgICAgICAgICIwLjAwNDQyOCwgMC4wMDQ1MTYsIDAuMDA0NTMxLCAwLjAwNDU0LCAwLjAwNDU0NCwgMC4wMDQ1NDgsIDAuMDA0NTUiLCBcCi0gICAgICAgICAgIjAuMDA0NDIyLCAwLjAwNDUxLCAwLjAwNDUyNiwgMC4wMDQ1MzYsIDAuMDA0NTQsIDAuMDA0NTQzLCAwLjAwNDU0NSIsIFwKLSAgICAgICAgICAiMC4wMDQ0MTgsIDAuMDA0NTA2LCAwLjAwNDUyMiwgMC4wMDQ1MzIsIDAuMDA0NTM3LCAwLjAwNDU0LCAwLjAwNDU0MiIsIFwKLSAgICAgICAgICAiMC4wMDQ0MTksIDAuMDA0NTA0LCAwLjAwNDUyMSwgMC4wMDQ1MzEsIDAuMDA0NTM2LCAwLjAwNDUzOSwgMC4wMDQ1NDIiLCBcCi0gICAgICAgICAgIjAuMDA0NDE4LCAwLjAwNDUwMiwgMC4wMDQ1MiwgMC4wMDQ1MywgMC4wMDQ1MzUsIDAuMDA0NTM5LCAwLjAwNDU0MSIsIFwKLSAgICAgICAgICAiMC4wMDQ0MiwgMC4wMDQ1MDEsIDAuMDA0NTE5LCAwLjAwNDUyOSwgMC4wMDQ1MzUsIDAuMDA0NTM5LCAwLjAwNDU0MiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjk4NywgMC4wMDMwNzEsIDAuMDAzMDg1LCAwLjAwMzA5MiwgMC4wMDMwOTcsIDAuMDAzMDk4LCAwLjAwMzEwMSIsIFwKLSAgICAgICAgICAiMC4wMDI5NzEsIDAuMDAzMDU3LCAwLjAwMzA3MSwgMC4wMDMwNzksIDAuMDAzMDgzLCAwLjAwMzA4NSwgMC4wMDMwODYiLCBcCi0gICAgICAgICAgIjAuMDAyOTUzLCAwLjAwMzA0LCAwLjAwMzA1NCwgMC4wMDMwNjMsIDAuMDAzMDY3LCAwLjAwMzA3LCAwLjAwMzA3MiIsIFwKLSAgICAgICAgICAiMC4wMDI5NDQsIDAuMDAzMDMsIDAuMDAzMDQ1LCAwLjAwMzA1NCwgMC4wMDMwNTgsIDAuMDAzMDYxLCAwLjAwMzA2MyIsIFwKLSAgICAgICAgICAiMC4wMDI5NDYsIDAuMDAzMDI2LCAwLjAwMzA0MiwgMC4wMDMwNTEsIDAuMDAzMDU2LCAwLjAwMzA1OCwgMC4wMDMwNjEiLCBcCi0gICAgICAgICAgIjAuMDAyOTM4LCAwLjAwMzAxOSwgMC4wMDMwMzUsIDAuMDAzMDQ1LCAwLjAwMzA1MSwgMC4wMDMwNTQsIDAuMDAzMDU3IiwgXAotICAgICAgICAgICIwLjAwMjkzOCwgMC4wMDMwMTksIDAuMDAzMDM1LCAwLjAwMzA0NiwgMC4wMDMwNTMsIDAuMDAzMDU3LCAwLjAwMzA1OCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDM4OCwgMC4wMDQ0NzUsIDAuMDA0NDksIDAuMDA0NDk4LCAwLjAwNDUwMywgMC4wMDQ1MDUsIDAuMDA0NTA4IiwgXAotICAgICAgICAgICIwLjAwNDM3OSwgMC4wMDQ0NjcsIDAuMDA0NDgyLCAwLjAwNDQ5MiwgMC4wMDQ0OTcsIDAuMDA0NDk5LCAwLjAwNDUiLCBcCi0gICAgICAgICAgIjAuMDA0MzY2LCAwLjAwNDQ1NSwgMC4wMDQ0NzEsIDAuMDA0NDc5LCAwLjAwNDQ4NCwgMC4wMDQ0ODcsIDAuMDA0NDg5IiwgXAotICAgICAgICAgICIwLjAwNDM1MywgMC4wMDQ0NDMsIDAuMDA0NDU4LCAwLjAwNDQ2OCwgMC4wMDQ0NzIsIDAuMDA0NDc1LCAwLjAwNDQ3OCIsIFwKLSAgICAgICAgICAiMC4wMDQzNDcsIDAuMDA0NDMzLCAwLjAwNDQ1MSwgMC4wMDQ0NTksIDAuMDA0NDY1LCAwLjAwNDQ2OCwgMC4wMDQ0NjkiLCBcCi0gICAgICAgICAgIjAuMDA0MzM2LCAwLjAwNDQyMSwgMC4wMDQ0MzgsIDAuMDA0NDQ4LCAwLjAwNDQ1NCwgMC4wMDQ0NTgsIDAuMDA0NDYiLCBcCi0gICAgICAgICAgIjAuMDA0MzMsIDAuMDA0NDE0LCAwLjAwNDQzMiwgMC4wMDQ0NDMsIDAuMDA0NDQ5LCAwLjAwNDQ1MiwgMC4wMDQ0NTUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyOTg3LCAwLjAwMzA3MiwgMC4wMDMwODcsIDAuMDAzMDk0LCAwLjAwMzA5OSwgMC4wMDMxMDEsIDAuMDAzMTAzIiwgXAotICAgICAgICAgICIwLjAwMjk4MSwgMC4wMDMwNjYsIDAuMDAzMDgsIDAuMDAzMDksIDAuMDAzMDk0LCAwLjAwMzA5NCwgMC4wMDMwOTYiLCBcCi0gICAgICAgICAgIjAuMDAyOTY3LCAwLjAwMzA1NCwgMC4wMDMwNywgMC4wMDMwNzgsIDAuMDAzMDgzLCAwLjAwMzA4NiwgMC4wMDMwODgiLCBcCi0gICAgICAgICAgIjAuMDAyOTU5LCAwLjAwMzA0NCwgMC4wMDMwNiwgMC4wMDMwNjksIDAuMDAzMDc0LCAwLjAwMzA3NiwgMC4wMDMwNzkiLCBcCi0gICAgICAgICAgIjAuMDAyOTUxLCAwLjAwMzAzNiwgMC4wMDMwNTMsIDAuMDAzMDYyLCAwLjAwMzA2OCwgMC4wMDMwNywgMC4wMDMwNzMiLCBcCi0gICAgICAgICAgIjAuMDAyOTU1LCAwLjAwMzAzMSwgMC4wMDMwNDksIDAuMDAzMDU5LCAwLjAwMzA2NSwgMC4wMDMwNjgsIDAuMDAzMDciLCBcCi0gICAgICAgICAgIjAuMDAyOTQ5LCAwLjAwMzAyOSwgMC4wMDMwNDcsIDAuMDAzMDU4LCAwLjAwMzA2NCwgMC4wMDMwNjgsIDAuMDAzMDciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQxMjEsIDAuMDA0MjA2LCAwLjAwNDIyMSwgMC4wMDQyMzEsIDAuMDA0MjM1LCAwLjAwNDIzOCwgMC4wMDQyNDEiLCBcCi0gICAgICAgICAgIjAuMDA0MTIxLCAwLjAwNDIwNiwgMC4wMDQyMjIsIDAuMDA0MjMxLCAwLjAwNDIzNywgMC4wMDQyNCwgMC4wMDQyNDEiLCBcCi0gICAgICAgICAgIjAuMDA0MTE5LCAwLjAwNDIwNSwgMC4wMDQyMjEsIDAuMDA0MjMxLCAwLjAwNDIzNiwgMC4wMDQyNCwgMC4wMDQyNDIiLCBcCi0gICAgICAgICAgIjAuMDA0MTE4LCAwLjAwNDIwMywgMC4wMDQyMiwgMC4wMDQyMywgMC4wMDQyMzYsIDAuMDA0MjQsIDAuMDA0MjQyIiwgXAotICAgICAgICAgICIwLjAwNDExNSwgMC4wMDQyMDEsIDAuMDA0MjE5LCAwLjAwNDIzLCAwLjAwNDIzNiwgMC4wMDQyMzksIDAuMDA0MjQzIiwgXAotICAgICAgICAgICIwLjAwNDExOSwgMC4wMDQyMDEsIDAuMDA0MjIsIDAuMDA0MjMxLCAwLjAwNDIzNywgMC4wMDQyNDMsIDAuMDA0MjQ0IiwgXAotICAgICAgICAgICIwLjAwNDEyNSwgMC4wMDQyMDQsIDAuMDA0MjI0LCAwLjAwNDIzNiwgMC4wMDQyNDIsIDAuMDA0MjQ3LCAwLjAwNDI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuNDk4MjA4OwotICAgIGZ1bmN0aW9uIDogIigoQV5CKV5DSSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEyNzI1OCwgMC4yMzcxNzcsIDAuMzE5Mzk5LCAwLjQyMTgwNiwgMC41MjQyMDUsIDAuNjI2NDQyLCAwLjcyODYzMSIsIFwKLSAgICAgICAgICAiMC4xMzU0NzUsIDAuMjQ1MzM2LCAwLjMyNzU1MywgMC40Mjk5NzgsIDAuNTMyMzIxLCAwLjYzNDY2NiwgMC43MzY4NCIsIFwKLSAgICAgICAgICAiMC4xNDQ0OTcsIDAuMjU0MzkyLCAwLjMzNjYwNSwgMC40MzkwOCwgMC41NDEzNTcsIDAuNjQzNjg2LCAwLjc0NTg2NyIsIFwKLSAgICAgICAgICAiMC4xNTM0ODQsIDAuMjYzMjk3LCAwLjM0NTU4OSwgMC40NDc5MjUsIDAuNTUwMjE4LCAwLjY1MjQ3OCwgMC43NTQ3NTIiLCBcCi0gICAgICAgICAgIjAuMTYyNDIyLCAwLjI3MjE0MSwgMC4zNTQzNTYsIDAuNDU2ODE0LCAwLjU1OTE0NywgMC42NjEzOTUsIDAuNzYzNjQyIiwgXAotICAgICAgICAgICIwLjE3NjIyMSwgMC4yODU5NDgsIDAuMzY4MTc1LCAwLjQ3MDU5MywgMC41NzMwNDgsIDAuNjc1MTk1LCAwLjc3NzQzOSIsIFwKLSAgICAgICAgICAiMC4xODc3MiwgMC4yOTc1NzgsIDAuMzc5Nzg2LCAwLjQ4MjIxNywgMC41ODQ1NTYsIDAuNjg2OTIzLCAwLjc4OTE2Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2ODUzNCwgMC4yNzA1NjYsIDAuNDM3ODcxLCAwLjY0ODA0NywgMC44NjA3NCwgMS4wNzI4NSwgMS4yODUxMSIsIFwKLSAgICAgICAgICAiMC4wNjg1NDQsIDAuMjcwNTIzLCAwLjQzNzQ1NCwgMC42NDg1NjksIDAuODU5NTI4LCAxLjA3MDc3LCAxLjI4Mjk3IiwgXAotICAgICAgICAgICIwLjA2ODMzOCwgMC4yNzA1NzcsIDAuNDM3NzcsIDAuNjQ4ODg3LCAwLjg2MDYwOCwgMS4wNzI3OCwgMS4yODQ5OCIsIFwKLSAgICAgICAgICAiMC4wNjgyODEsIDAuMjcwNTQ5LCAwLjQzNzMyMiwgMC42NDg4NDcsIDAuODYwMzQxLCAxLjA3MjY1LCAxLjI4NDgyIiwgXAotICAgICAgICAgICIwLjA2ODE3OCwgMC4yNzAyNjEsIDAuNDM3NDQ1LCAwLjY0ODY4NywgMC44NTk0NTEsIDEuMDcxNDIsIDEuMjgyNTciLCBcCi0gICAgICAgICAgIjAuMDY4NjMyLCAwLjI3MDYwNCwgMC40MzczNjEsIDAuNjQ4NTY2LCAwLjg1OTAyOSwgMS4wNzI2NSwgMS4yODQ5NCIsIFwKLSAgICAgICAgICAiMC4wNjk0NzEsIDAuMjcwNzk5LCAwLjQzNzU4NiwgMC42NDg1NjcsIDAuODU5NTksIDEuMDcwNzksIDEuMjgyNCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMzI3NTUsIDAuMjQ1NjI4LCAwLjMyOTEyLCAwLjQzMjk3MiwgMC41MzY3MTQsIDAuNjQwNDE2LCAwLjc0NDEyNiIsIFwKLSAgICAgICAgICAiMC4xNDA4MTgsIDAuMjUzNzM3LCAwLjMzNzIxOSwgMC40NDEwNzgsIDAuNTQ0ODIzLCAwLjY0ODU0MiwgMC43NTIyNjYiLCBcCi0gICAgICAgICAgIjAuMTQ5MzUyLCAwLjI2MjE4NSwgMC4zNDU2NjMsIDAuNDQ5NTIyLCAwLjU1MzI1NCwgMC42NTY5NzQsIDAuNzYwNjgiLCBcCi0gICAgICAgICAgIjAuMTU3MjQyLCAwLjI3MDA1NiwgMC4zNTM1NDIsIDAuNDU3NDI1LCAwLjU2MTEzMywgMC42NjQ4NSwgMC43Njg1NjIiLCBcCi0gICAgICAgICAgIjAuMTY0OTQsIDAuMjc3NzY2LCAwLjM2MTI1MywgMC40NjUxMTQsIDAuNTY4ODU4LCAwLjY3MjU4NSwgMC43NzYyMDciLCBcCi0gICAgICAgICAgIjAuMTc2ODQ3LCAwLjI4OTcyMSwgMC4zNzMyMzEsIDAuNDc3MDk4LCAwLjU4MDg0MiwgMC42ODQ1MjQsIDAuNzg4Mjk0IiwgXAotICAgICAgICAgICIwLjE4NjgwOSwgMC4yOTk5MDYsIDAuMzgzNCwgMC40ODcyNjQsIDAuNTkwOTkzLCAwLjY5NDcwOSwgMC43OTg0MTYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDcwMDc0LCAwLjI2OTcxMywgMC40MzM4MjEsIDAuNjQyNTkxLCAwLjg1MTcsIDEuMDU5ODMsIDEuMjcwOSIsIFwKLSAgICAgICAgICAiMC4wNjk4NDMsIDAuMjY5NjA5LCAwLjQzNDA3MiwgMC42NDI1NDgsIDAuODUxMzIxLCAxLjA2MTQxLCAxLjI2ODc5IiwgXAotICAgICAgICAgICIwLjA2OTkxMiwgMC4yNjk1MTQsIDAuNDMzNzg3LCAwLjY0MjUwNCwgMC44NTE1ODUsIDEuMDU5ODksIDEuMjcwOSIsIFwKLSAgICAgICAgICAiMC4wNjk3OTMsIDAuMjY5NDU5LCAwLjQzMzc4NCwgMC42NDI2OTcsIDAuODUxNTgzLCAxLjA1OTgyLCAxLjI3MDkiLCBcCi0gICAgICAgICAgIjAuMDY5NjI2LCAwLjI2OTQ0MiwgMC40MzM4NDQsIDAuNjQyNTMyLCAwLjg1MTMzLCAxLjA1OTg4LCAxLjI2OTUyIiwgXAotICAgICAgICAgICIwLjA2OTk4NSwgMC4yNjk3MzgsIDAuNDM0MDA0LCAwLjY0MjU1NCwgMC44NTEwNjYsIDEuMDYxMjMsIDEuMjY4NDUiLCBcCi0gICAgICAgICAgIjAuMDcwNjc5LCAwLjI2OTg4MywgMC40MzM5NzgsIDAuNjQyMDI3LCAwLjg1MTY1MSwgMS4wNTk4NSwgMS4yNzA4NCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNzcyNTcsIDAuMjgwOTc3LCAwLjM2MjU3NCwgMC40NjQ1OTUsIDAuNTY2NzY3LCAwLjY2ODc5LCAwLjc3MDg0MiIsIFwKLSAgICAgICAgICAiMC4xODY3ODgsIDAuMjkwNTUxLCAwLjM3MjE0MSwgMC40NzQyMDIsIDAuNTc2MTgyLCAwLjY3ODM1NSwgMC43ODA0MTEiLCBcCi0gICAgICAgICAgIjAuMTk3MjEsIDAuMzAxMDIxLCAwLjM4MjU2MiwgMC40ODQ1NDcsIDAuNTg2NzE3LCAwLjY4ODg0NSwgMC43OTA4ODIiLCBcCi0gICAgICAgICAgIjAuMjA3MTc3LCAwLjMxMDksIDAuMzkyNDksIDAuNDk0NTUxLCAwLjU5NjY4NCwgMC42OTg3MDQsIDAuODAwODIzIiwgXAotICAgICAgICAgICIwLjIxNjg2OCwgMC4zMjA1NjQsIDAuNDAyMTczLCAwLjUwNDIyMywgMC42MDYzNjYsIDAuNzA4Mzg3LCAwLjgxMDUxOSIsIFwKLSAgICAgICAgICAiMC4yMzE2OTMsIDAuMzM1NDYxLCAwLjQxNzA0NSwgMC41MTkxMDgsIDAuNjIxMTY2LCAwLjcyMzE4NiwgMC44MjUzNjIiLCBcCi0gICAgICAgICAgIjAuMjQ0MTEsIDAuMzQ3ODY1LCAwLjQyOTQ1OCwgMC41MzE1ODcsIDAuNjMzNjM3LCAwLjczNTY2NCwgMC44Mzc3NDEiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDYyNzc2LCAwLjI2NTE3NCwgMC40MzM0MDYsIDAuNjQ1MDY5LCAwLjg1NzQ4OCwgMS4wNjk4MywgMS4yODIxMiIsIFwKLSAgICAgICAgICAiMC4wNjI3NTIsIDAuMjY1MjgyLCAwLjQzMzM5NywgMC42NDUwMDUsIDAuODU2OTA2LCAxLjA2OTgzLCAxLjI4MjEiLCBcCi0gICAgICAgICAgIjAuMDYyNzc1LCAwLjI2NTI3MywgMC40MzMzOTcsIDAuNjQ1MDA1LCAwLjg1NzUwNywgMS4wNjk4NSwgMS4yODIxOCIsIFwKLSAgICAgICAgICAiMC4wNjI3NjMsIDAuMjY1MjkyLCAwLjQzMzQwMSwgMC42NDUyMTYsIDAuODU3NDg4LCAxLjA2OTc0LCAxLjI4MjE4IiwgXAotICAgICAgICAgICIwLjA2Mjc2MiwgMC4yNjUyOTIsIDAuNDMzNDAxLCAwLjY0NTIyMSwgMC44NTc0ODYsIDEuMDY5ODUsIDEuMjgyMjQiLCBcCi0gICAgICAgICAgIjAuMDYyNzUyLCAwLjI2NTE4LCAwLjQzMzQwNiwgMC42NDUwMDQsIDAuODU3NDg0LCAxLjA2OTc0LCAxLjI4MjMiLCBcCi0gICAgICAgICAgIjAuMDYyNzY3LCAwLjI2NTMyOSwgMC40MzMyOTcsIDAuNjQ1MDIyLCAwLjg1NzQ1NiwgMS4wNjk4MiwgMS4yODA3NyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNzUwNjMsIDAuMjgyNTczLCAwLjM2NTM0NCwgMC40Njg4NDIsIDAuNTcyMzk1LCAwLjY3NTg4OCwgMC43NzkzODYiLCBcCi0gICAgICAgICAgIjAuMTgzOTA0LCAwLjI5MTQyOSwgMC4zNzQxODYsIDAuNDc3NjUzLCAwLjU4MTIxNSwgMC42ODQ3MjQsIDAuNzg4MjMyIiwgXAotICAgICAgICAgICIwLjE5NDkyNCwgMC4zMDIyNzgsIDAuMzg1MDQzLCAwLjQ4ODUwOCwgMC41OTIwNzMsIDAuNjk1NjY5LCAwLjc5OTA4MyIsIFwKLSAgICAgICAgICAiMC4yMDU4NjQsIDAuMzEzMTc1LCAwLjM5NTkzLCAwLjQ5OTM5OSwgMC42MDI5NTIsIDAuNzA2NDc2LCAwLjgwOTk3NyIsIFwKLSAgICAgICAgICAiMC4yMTY1NTYsIDAuMzIzNzQ3LCAwLjQwNjUxOCwgMC41MDk5OTYsIDAuNjEzNTQ1LCAwLjcxNzE0MSwgMC44MjA1NjEiLCBcCi0gICAgICAgICAgIjAuMjMyODU2LCAwLjM0MDEyNSwgMC40MjI5MDEsIDAuNTI2Mzk5LCAwLjYyOTg2NSwgMC43MzM0MjUsIDAuODM2OTI3IiwgXAotICAgICAgICAgICIwLjI0Njc0NSwgMC4zNTM4ODcsIDAuNDM2NjQ5LCAwLjU0MDE0NCwgMC42NDM2MTEsIDAuNzQ3MTk1LCAwLjg1MDY3NSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjQ2ODIsIDAuMjY0MjI5LCAwLjQyOTM4NywgMC42MzgxMDksIDAuODQ2MjIsIDEuMDU3MzIsIDEuMjY2NzYiLCBcCi0gICAgICAgICAgIjAuMDY0NjExLCAwLjI2NDIyLCAwLjQyOTM3MywgMC42Mzc3NTgsIDAuODQ2NDU2LCAxLjA1NzIsIDEuMjY2NjYiLCBcCi0gICAgICAgICAgIjAuMDY0Njc3LCAwLjI2NDIyMSwgMC40MjkzNTUsIDAuNjM3NzExLCAwLjg0NjM0LCAxLjA1NjkzLCAxLjI2Njk2IiwgXAotICAgICAgICAgICIwLjA2NDYwOSwgMC4yNjQyMjMsIDAuNDI5MzU1LCAwLjYzNzcyMSwgMC44NDYyNTYsIDEuMDU3MTcsIDEuMjY2NjIiLCBcCi0gICAgICAgICAgIjAuMDY0NjY4LCAwLjI2NDIyMiwgMC40MjkxNzUsIDAuNjM3ODkxLCAwLjg0NjM0NSwgMS4wNTY5MSwgMS4yNjY5NiIsIFwKLSAgICAgICAgICAiMC4wNjQ2MjksIDAuMjY0MjE3LCAwLjQyOTE4MywgMC42MzgwMzQsIDAuODQ3MTMyLCAxLjA1NjE0LCAxLjI2NjkiLCBcCi0gICAgICAgICAgIjAuMDY0NjU3LCAwLjI2NDIzNSwgMC40MjkxODIsIDAuNjM4MDIxLCAwLjg0NzA4NiwgMS4wNTY4LCAxLjI2NjkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTI1MDE1LCAwLjIzNDg4LCAwLjMxNzA4OCwgMC40MTk1MTgsIDAuNTIxODU1LCAwLjYyNDIxMywgMC43MjYzNDIiLCBcCi0gICAgICAgICAgIjAuMTMzMywgMC4yNDMxOSwgMC4zMjUzNzYsIDAuNDI3ODYxLCAwLjUzMDE0NywgMC42MzI0MTYsIDAuNzM0NjgyIiwgXAotICAgICAgICAgICIwLjE0Mzg0LCAwLjI1MzY2MiwgMC4zMzU5NDEsIDAuNDM4MzcxLCAwLjU0MDY5NCwgMC42NDMwOTIsIDAuNzQ1MjA0IiwgXAotICAgICAgICAgICIwLjE1NDMyMywgMC4yNjQxNDUsIDAuMzQ2NDM2LCAwLjQ0ODkxMSwgMC41NTEyNTgsIDAuNjUzNTA1LCAwLjc1NTc0NiIsIFwKLSAgICAgICAgICAiMC4xNjQ4OTEsIDAuMjc0NjU3LCAwLjM1Njg3LCAwLjQ1OTM1MiwgMC41NjE2NDQsIDAuNjYzOTAxLCAwLjc2NjE4NSIsIFwKLSAgICAgICAgICAiMC4xODE0NDksIDAuMjkxMDYzLCAwLjM3MzI5NSwgMC40NzU3MzMsIDAuNTc4MDY1LCAwLjY4MDQ0NCwgMC43ODI1NzEiLCBcCi0gICAgICAgICAgIjAuMTk0ODAyLCAwLjMwNDc2LCAwLjM4Njk3NSwgMC40ODk0MTEsIDAuNTkxNzM5LCAwLjY5NDEyOSwgMC43OTYyNSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjg1MzcsIDAuMjcwNTUyLCAwLjQzNzQ2NywgMC42NDg1NzYsIDAuODU5NjMyLCAxLjA3MDc3LCAxLjI4MzUyIiwgXAotICAgICAgICAgICIwLjA2ODQ2MSwgMC4yNzA1ODMsIDAuNDM3Njc4LCAwLjY0ODg1MywgMC44NjA0OTIsIDEuMDcyNjMsIDEuMjg0OTUiLCBcCi0gICAgICAgICAgIjAuMDY4NDgzLCAwLjI3MDQ4MiwgMC40MzczMjksIDAuNjQ4NTYsIDAuODU5NTIsIDEuMDcwOCwgMS4yODQ5MiIsIFwKLSAgICAgICAgICAiMC4wNjgxNiwgMC4yNzA0MzgsIDAuNDM3Njc5LCAwLjY0ODc4MywgMC44NTkxODYsIDEuMDcyNjIsIDEuMjg0OTIiLCBcCi0gICAgICAgICAgIjAuMDY4MTUsIDAuMjcwNDQzLCAwLjQzNzY0NywgMC42NDg3NjcsIDAuODYwMzI0LCAxLjA3MjQ3LCAxLjI4NDczIiwgXAotICAgICAgICAgICIwLjA2ODUxMSwgMC4yNzA1ODgsIDAuNDM3Mzg5LCAwLjY0ODUyMywgMC44NTk1MTMsIDEuMDcwNzgsIDEuMjg0OSIsIFwKLSAgICAgICAgICAiMC4wNjk3NiwgMC4yNzA4NDUsIDAuNDM3NTY1LCAwLjY0ODU3LCAwLjg1OTQ2NCwgMS4wNzA0MSwgMS4yODQ3MyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMjkzOTUsIDAuMjQyMzU5LCAwLjMyNTg1LCAwLjQyOTc0LCAwLjUzMzUxMiwgMC42MzcxNTEsIDAuNzQwODc4IiwgXAotICAgICAgICAgICIwLjEzNzUyOCwgMC4yNTA0ODUsIDAuMzMzOTUsIDAuNDM3ODExLCAwLjU0MTU2LCAwLjY0NTI3NCwgMC43NDkwMDUiLCBcCi0gICAgICAgICAgIjAuMTQ3MzE3LCAwLjI2MDE2NywgMC4zNDM2NTEsIDAuNDQ3NTE0LCAwLjU1MTI0OSwgMC42NTQ5NzUsIDAuNzU4Njc1IiwgXAotICAgICAgICAgICIwLjE1NzA0MSwgMC4yNjk4NzQsIDAuMzUzMzYsIDAuNDU3MjI2LCAwLjU2MDk1OSwgMC42NjQ2ODYsIDAuNzY4MzkxIiwgXAotICAgICAgICAgICIwLjE2NjU0MywgMC4yNzkzNjEsIDAuMzYyODYzLCAwLjQ2NjcyOCwgMC41NzA0NjMsIDAuNjc0MTk1LCAwLjc3Nzg4IiwgXAotICAgICAgICAgICIwLjE4MTIzOCwgMC4yOTQxNCwgMC4zNzc2NjMsIDAuNDgxNTM4LCAwLjU4NTI5MSwgMC42ODkwMTYsIDAuNzkyNzM1IiwgXAotICAgICAgICAgICIwLjE5Mzg3OSwgMC4zMDY5MzMsIDAuMzkwNDM3LCAwLjQ5NDMwMiwgMC41OTgwNDMsIDAuNzAxNzc5LCAwLjgwNTM5OSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjk5NTQsIDAuMjY5NjkxLCAwLjQzMzc3OCwgMC42NDI3OTksIDAuODQ5NTEsIDEuMDU5NzIsIDEuMjY4MjQiLCBcCi0gICAgICAgICAgIjAuMDY5ODI2LCAwLjI2OTU0OCwgMC40MzQwODUsIDAuNjQyNTE0LCAwLjg1MTE2NSwgMS4wNjE0MywgMS4yNjg3MyIsIFwKLSAgICAgICAgICAiMC4wNjk4ODksIDAuMjY5NDYxLCAwLjQzMzgwMiwgMC42NDI0ODksIDAuODUxNTc3LCAxLjA1OTk0LCAxLjI3MDkxIiwgXAotICAgICAgICAgICIwLjA2OTc4MiwgMC4yNjk1MjcsIDAuNDMzNzg4LCAwLjY0MjQ5MywgMC44NTE1ODIsIDEuMDU5OTIsIDEuMjcwOTEiLCBcCi0gICAgICAgICAgIjAuMDY5NjAyLCAwLjI2OTY1MywgMC40MzM4NTMsIDAuNjQyNTQyLCAwLjg1MTU4NiwgMS4wNjAwOSwgMS4yNzA4NyIsIFwKLSAgICAgICAgICAiMC4wNzAyNjIsIDAuMjY5NzQsIDAuNDM0MjM3LCAwLjY0MjU0MywgMC44NTEwMjcsIDEuMDYxNDMsIDEuMjY4MiIsIFwKLSAgICAgICAgICAiMC4wNzA1ODksIDAuMjY5ODY2LCAwLjQzMzk0LCAwLjY0MjU5MiwgMC44NTE2MzUsIDEuMDYwMTcsIDEuMjcxMTkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTc5MTA4LCAwLjI4MzA5OCwgMC4zNjQ2NDgsIDAuNDY2NzcsIDAuNTY4OTAxLCAwLjY3MTA1NywgMC43NzMxMzQiLCBcCi0gICAgICAgICAgIjAuMTg4NTM4LCAwLjI5MjUwMywgMC4zNzQxODgsIDAuNDc2Mjk4LCAwLjU3ODQ2NCwgMC42ODA1MTQsIDAuNzgyNTk0IiwgXAotICAgICAgICAgICIwLjE5ODYwNywgMC4zMDI0OTksIDAuMzg0MTY1LCAwLjQ4NjMwMywgMC41ODg0NTEsIDAuNjkwNTA2LCAwLjc5MjY0IiwgXAotICAgICAgICAgICIwLjIwODQxMSwgMC4zMTIzNDUsIDAuMzk0MDE2LCAwLjQ5NjIwMywgMC41OTgzMDMsIDAuNzAwMzYxLCAwLjgwMjQ1MyIsIFwKLSAgICAgICAgICAiMC4yMTc5NjksIDAuMzIxODYsIDAuNDAzNTM0LCAwLjUwNTY1MywgMC42MDc4MjYsIDAuNzA5ODc2LCAwLjgxMTk1MyIsIFwKLSAgICAgICAgICAiMC4yMzI2MzEsIDAuMzM2ODYsIDAuNDE4NDA3LCAwLjUyMDM5NCwgMC42MjI2MTMsIDAuNzI0NTM3LCAwLjgyNjY1OSIsIFwKLSAgICAgICAgICAiMC4yNDc0MTEsIDAuMzUxNTkyLCAwLjQzMzIwMSwgMC41MzUxMzEsIDAuNjM3MzExLCAwLjczOTI5OSwgMC44NDE0NTQiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDYyNTI5LCAwLjI2NTE2MSwgMC40MzM2MDcsIDAuNjQ0ODA0LCAwLjg1NjY3MiwgMS4wNzAwOCwgMS4yODIzOSIsIFwKLSAgICAgICAgICAiMC4wNjI1MywgMC4yNjUyOTQsIDAuNDMzNzc1LCAwLjY0NDgzMSwgMC44NTc3NjIsIDEuMDY5OTUsIDEuMjgxIiwgXAotICAgICAgICAgICIwLjA2MjYwNiwgMC4yNjUxNzcsIDAuNDMzNjExLCAwLjY0NTUyMSwgMC44NTc3NDQsIDEuMDY5OTQsIDEuMjgyMjgiLCBcCi0gICAgICAgICAgIjAuMDYyNTY3LCAwLjI2NTE4MSwgMC40MzM2MDMsIDAuNjQ1MDE3LCAwLjg1NzczNCwgMS4wNjk5NSwgMS4yODExMSIsIFwKLSAgICAgICAgICAiMC4wNjI1NjQsIDAuMjY1Mjk4LCAwLjQzMzc1NCwgMC42NDQ5OTEsIDAuODU3NzY2LCAxLjA2OTk1LCAxLjI4MDk2IiwgXAotICAgICAgICAgICIwLjA2MjUzNCwgMC4yNjUyOTUsIDAuNDMzNTk2LCAwLjY0NDcyMywgMC44NTc3MzcsIDEuMDY5OTIsIDEuMjgwOTYiLCBcCi0gICAgICAgICAgIjAuMDYyNTY1LCAwLjI2NTI5NCwgMC40MzM2MDgsIDAuNjQ1LCAwLjg1Nzc1MiwgMS4wNjk5NSwgMS4yODA5NCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNzQwNjcsIDAuMjgxNTM5LCAwLjM2NDMxNCwgMC40Njc3OTcsIDAuNTcxMjg3LCAwLjY3NDgwNCwgMC43NzgzNTQiLCBcCi0gICAgICAgICAgIjAuMTgzMjE2LCAwLjI5MDY5LCAwLjM3MzQ2OCwgMC40NzY5MjcsIDAuNTgwNTQxLCAwLjY4NDA2NSwgMC43ODc1MDQiLCBcCi0gICAgICAgICAgIjAuMTk0Nzk2LCAwLjMwMjI5NiwgMC4zODUwOTEsIDAuNDg4NTM1LCAwLjU5MjEwNCwgMC42OTU2NDIsIDAuNzk5MTEiLCBcCi0gICAgICAgICAgIjAuMjA2NTYxLCAwLjMxNDA5OCwgMC4zOTY4NjksIDAuNTAwMzUyLCAwLjYwMzg5LCAwLjcwNzQzOCwgMC44MTA5MSIsIFwKLSAgICAgICAgICAiMC4yMTgzMjMsIDAuMzI1ODQyLCAwLjQwODU5OSwgMC41MTIwODYsIDAuNjE1NjM5LCAwLjcxOTI0NSwgMC44MjI2NDciLCBcCi0gICAgICAgICAgIjAuMjM2ODA5LCAwLjM0NDIxOCwgMC40MjY5MDIsIDAuNTMwMzcsIDAuNjMzOTEsIDAuNzM3NDkyLCAwLjg0MTAxNiIsIFwKLSAgICAgICAgICAiMC4yNTI3MywgMC4zNjAxNCwgMC40NDI5MTMsIDAuNTQ2MzQ1LCAwLjY0OTkzMiwgMC43NTM0NTgsIDAuODU3MDgzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2NDIwMiwgMC4yNjQxNDQsIDAuNDI5MzUyLCAwLjYzODA3NywgMC44NDc2NTgsIDEuMDU2MzgsIDEuMjY3MTQiLCBcCi0gICAgICAgICAgIjAuMDY0MTQzLCAwLjI2NDE0NywgMC40Mjg5NzMsIDAuNjM3NTM2LCAwLjg0NjgzMiwgMS4wNTcxLCAxLjI2NzA3IiwgXAotICAgICAgICAgICIwLjA2NDIsIDAuMjY0MTYyLCAwLjQyOTMyOSwgMC42Mzc3NTUsIDAuODQ2NDAzLCAxLjA1NzIzLCAxLjI2Njk0IiwgXAotICAgICAgICAgICIwLjA2NDE5NCwgMC4yNjQxNjMsIDAuNDI5MzE4LCAwLjYzNzc1NSwgMC44NDc1ODksIDEuMDU3MjMsIDEuMjY2ODciLCBcCi0gICAgICAgICAgIjAuMDY0MTkyLCAwLjI2NDE0LCAwLjQyOTMxMywgMC42Mzc2OTgsIDAuODQ3NTk5LCAxLjA1NzE3LCAxLjI2Njg3IiwgXAotICAgICAgICAgICIwLjA2NDE1NSwgMC4yNjQxNjksIDAuNDI5MzEsIDAuNjM3NzExLCAwLjg0NjQ4NSwgMS4wNTcyMSwgMS4yNjY4OSIsIFwKLSAgICAgICAgICAiMC4wNjQxNjEsIDAuMjY0MTgxLCAwLjQyOTA3NywgMC42Mzc4OTgsIDAuODQ2NjMzLCAxLjA1NzE4LCAxLjI2NjczIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNJIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMjQ0MDUsIDAuMjM0MzQxLCAwLjMxNjU3OSwgMC40MTg5OTksIDAuNTIxMzU2LCAwLjYyMzY4NCwgMC43MjU4MjgiLCBcCi0gICAgICAgICAgIjAuMTMyNjM1LCAwLjI0MjUzNCwgMC4zMjQ3MjUsIDAuNDI3MjA1LCAwLjUyOTUyMSwgMC42MzE3NjksIDAuNzM0MDEyIiwgXAotICAgICAgICAgICIwLjE0MzE5OSwgMC4yNTMxMywgMC4zMzUzOTYsIDAuNDM3ODE2LCAwLjU0MDE2LCAwLjY0MjUxLCAwLjc0NDY0MiIsIFwKLSAgICAgICAgICAiMC4xNTM3MzMsIDAuMjYzNDkxLCAwLjM0NTc0OSwgMC40NDgxNzgsIDAuNTUwNTE0LCAwLjY1Mjg5NCwgMC43NTUwMTIiLCBcCi0gICAgICAgICAgIjAuMTY1MTY1LCAwLjI3NDkwNywgMC4zNTcxMzgsIDAuNDU5NTgyLCAwLjU2MTkwOCwgMC42NjQyOSwgMC43NjY0MTEiLCBcCi0gICAgICAgICAgIjAuMTgyOTQzLCAwLjI5MjYwOCwgMC4zNzQ4MzQsIDAuNDc3Mjc2LCAwLjU3OTYxMSwgMC42ODE5OTQsIDAuNzg0MTIiLCBcCi0gICAgICAgICAgIjAuMTk3ODQxLCAwLjMwNzY5OCwgMC4zODk5MTcsIDAuNDkyMzU4LCAwLjU5NDY3OSwgMC42OTcwNzksIDAuNzk5MTk0Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2ODY4MywgMC4yNzA1OTUsIDAuNDM3MjM4LCAwLjY0ODUyNywgMC44NTg3NTMsIDEuMDczMDEsIDEuMjg1MjEiLCBcCi0gICAgICAgICAgIjAuMDY4NTg2LCAwLjI3MDU1OSwgMC40Mzc0NDUsIDAuNjQ3NDAyLCAwLjg2MDY3NCwgMS4wNzE0NCwgMS4yODUwOCIsIFwKLSAgICAgICAgICAiMC4wNjg0NjksIDAuMjcwNTY0LCAwLjQzNzEzNywgMC42NDg1NzYsIDAuODU5NDk4LCAxLjA3MDc3LCAxLjI4NTAzIiwgXAotICAgICAgICAgICIwLjA2ODMwOSwgMC4yNzA1NDgsIDAuNDM3MDcxLCAwLjY0ODU1NywgMC44NTk2MTQsIDEuMDcwNzUsIDEuMjg1IiwgXAotICAgICAgICAgICIwLjA2ODE4OCwgMC4yNzA1NDYsIDAuNDM3MzM3LCAwLjY0ODYxMywgMC44NTk1NDcsIDEuMDcwNzYsIDEuMjg0OTYiLCBcCi0gICAgICAgICAgIjAuMDY4NDg0LCAwLjI3MDU3OCwgMC40MzczNjMsIDAuNjQ4NTY5LCAwLjg1OTU0NiwgMS4wNzA3NywgMS4yODQ5NSIsIFwKLSAgICAgICAgICAiMC4wNjk1NzUsIDAuMjcwODU4LCAwLjQzNzU1NCwgMC42NDg1NywgMC44NTkzOTksIDEuMDcwODgsIDEuMjg0NzciKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTI1ODUxLCAwLjIzODc2LCAwLjMyMjI2MSwgMC40MjYxNTYsIDAuNTI5OTMsIDAuNjMzNTc3LCAwLjczNzI5NiIsIFwKLSAgICAgICAgICAiMC4xMzM4LCAwLjI0NjY3OCwgMC4zMzAxNjIsIDAuNDM0MDI4LCAwLjUzNzc2NywgMC42NDE0NzUsIDAuNzQ1MjEyIiwgXAotICAgICAgICAgICIwLjE0NDIwNSwgMC4yNTcwNDEsIDAuMzQwNTM5LCAwLjQ0NDQzLCAwLjU0ODE3MiwgMC42NTE5NDgsIDAuNzU1NjAyIiwgXAotICAgICAgICAgICIwLjE1NDc1OSwgMC4yNjc2ODYsIDAuMzUxMTgxLCAwLjQ1NTA2NywgMC41NTg4MjEsIDAuNjYyNDY3LCAwLjc2NjIyMyIsIFwKLSAgICAgICAgICAiMC4xNjU2MzQsIDAuMjc4NDA3LCAwLjM2MTkyNCwgMC40NjU3OSwgMC41Njk1NDEsIDAuNjczMjc2LCAwLjc3Njk1MSIsIFwKLSAgICAgICAgICAiMC4xODI2NjksIDAuMjk1NDcsIDAuMzc4OTU5LCAwLjQ4MjgyMSwgMC41ODYzNDEsIDAuNjkwMDI2LCAwLjc5MzciLCBcCi0gICAgICAgICAgIjAuMTk2Njc4LCAwLjMwOTY4NywgMC4zOTMxOTIsIDAuNDk3MDYzLCAwLjYwMDgwMiwgMC43MDQ1NCwgMC44MDgyMzgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDcwMTA4LCAwLjI2OTcyMiwgMC40MzM4MTcsIDAuNjQyODIzLCAwLjg0OTU4OCwgMS4wNTk4MywgMS4yNzA5MyIsIFwKLSAgICAgICAgICAiMC4wNzAwMTksIDAuMjY5Njc1LCAwLjQzNDMzNCwgMC42NDE3MSwgMC44NTAyNzQsIDEuMDU5NjksIDEuMjY4ODIiLCBcCi0gICAgICAgICAgIjAuMDY5OTI1LCAwLjI2OTU5NywgMC40MzQxNjMsIDAuNjQyNjEyLCAwLjg1MTcwOSwgMS4wNTg2LCAxLjI2ODQiLCBcCi0gICAgICAgICAgIjAuMDY5NjQ0LCAwLjI2OTY3NSwgMC40MzQzNDcsIDAuNjQyNjc1LCAwLjg1MTg1NiwgMS4wNjEyMywgMS4yNjc5OCIsIFwKLSAgICAgICAgICAiMC4wNjk3LCAwLjI2OTYwOCwgMC40MzM4MDQsIDAuNjQyNTMsIDAuODUxMjQ2LCAxLjA1OSwgMS4yNzA5NCIsIFwKLSAgICAgICAgICAiMC4wNzAwNzIsIDAuMjY5NzgyLCAwLjQzNDAzNSwgMC42NDI1MzgsIDAuODUxMzMzLCAxLjA2MTI1LCAxLjI3MTE0IiwgXAotICAgICAgICAgICIwLjA3MDY0OSwgMC4yNjk5MDQsIDAuNDMzOTE1LCAwLjY0MjYwMywgMC44NTE2MzksIDEuMDYwMDQsIDEuMjcwODgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0kiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE3MTMyOCwgMC4yNzUyMzgsIDAuMzU2OTExLCAwLjQ1OTA5OCwgMC41NjEyMDMsIDAuNjYzMjYxLCAwLjc2NTM2MiIsIFwKLSAgICAgICAgICAiMC4xODA1NjUsIDAuMjg0NDk1LCAwLjM2NjE1LCAwLjQ2ODM0OSwgMC41NzAzODksIDAuNjcyNTI0LCAwLjc3NDU5NyIsIFwKLSAgICAgICAgICAiMC4xOTIyNDMsIDAuMjk2MDgsIDAuMzc3NzU1LCAwLjQ3OTkwNywgMC41ODE5OTcsIDAuNjgzOTY1LCAwLjc4NjA1MyIsIFwKLSAgICAgICAgICAiMC4yMDM4OTgsIDAuMzA3Nzg4LCAwLjM4OTQ1MiwgMC40OTE1OTIsIDAuNTkzNzQ2LCAwLjY5NTc5OSwgMC43OTc4ODMiLCBcCi0gICAgICAgICAgIjAuMjE1MzU0LCAwLjMxOTI1MywgMC40MDA5MjIsIDAuNTAzMDU2LCAwLjYwNTIxLCAwLjcwNzI2NiwgMC44MDkzOTciLCBcCi0gICAgICAgICAgIjAuMjMzMDU3LCAwLjMzNjk1MSwgMC40MTg2MjYsIDAuNTIwNzY0LCAwLjYyMjg2NSwgMC43MjUwMTIsIDAuODI3MDA5IiwgXAotICAgICAgICAgICIwLjI0NzM5MSwgMC4zNTEyMjIsIDAuNDMyODc4LCAwLjUzNDk5MSwgMC42MzcxNjMsIDAuNzM5MjE2LCAwLjg0MTM1MiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjE3MDQsIDAuMjY1MTk4LCAwLjQzMzYyMSwgMC42NDU1ODgsIDAuODU3NzQ2LCAxLjA2OTk0LCAxLjI4MTI4IiwgXAotICAgICAgICAgICIwLjA2MTYxNCwgMC4yNjUwNDcsIDAuNDMzNjE1LCAwLjY0NDU1NiwgMC44NTc0ODgsIDEuMDY5NywgMS4yODIzMiIsIFwKLSAgICAgICAgICAiMC4wNjE3NiwgMC4yNjUyNDcsIDAuNDMzNjE1LCAwLjY0NTUyMSwgMC44NTc0ODcsIDEuMDY5NzUsIDEuMjgyMTUiLCBcCi0gICAgICAgICAgIjAuMDYxNjgxLCAwLjI2NTA2OCwgMC40MzMzMTgsIDAuNjQ1MDkxLCAwLjg1NzczOSwgMS4wNjk5NCwgMS4yODIyMSIsIFwKLSAgICAgICAgICAiMC4wNjE2OSwgMC4yNjUxODMsIDAuNDMzNjE1LCAwLjY0NTIxNCwgMC44NTc3MzYsIDEuMDY5OTQsIDEuMjgyMTgiLCBcCi0gICAgICAgICAgIjAuMDYxNzAyLCAwLjI2NDk5OCwgMC40MzM2MTUsIDAuNjQ0ODM3LCAwLjg1NzU5MywgMS4wNjk5NiwgMS4yODA2NCIsIFwKLSAgICAgICAgICAiMC4wNjE2NzMsIDAuMjY1MDc2LCAwLjQzMzYyLCAwLjY0NTQ5NiwgMC44NTc3MzgsIDEuMDY5OTMsIDEuMjgyMzciKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTY3MTYzLCAwLjI3MzQ5LCAwLjM1NjI2OSwgMC40NTk3ODEsIDAuNTYzMzE0LCAwLjY2NjgzLCAwLjc3MDM0OSIsIFwKLSAgICAgICAgICAiMC4xNzY1MDYsIDAuMjgyODQ2LCAwLjM2NTYyOCwgMC40NjkxNjYsIDAuNTcyNjI3LCAwLjY3NjE0NSwgMC43Nzk2NzIiLCBcCi0gICAgICAgICAgIjAuMTg4MjQxLCAwLjI5NDUzOSwgMC4zNzczMTcsIDAuNDgwODM1LCAwLjU4NDQyOSwgMC42ODc5NjMsIDAuNzkxNDI1IiwgXAotICAgICAgICAgICIwLjE5OTk4OCwgMC4zMDYzMzQsIDAuMzg5MTA5LCAwLjQ5MjYyMywgMC41OTYxODEsIDAuNjk5NjkxLCAwLjgwMzE4OCIsIFwKLSAgICAgICAgICAiMC4yMTE3OTEsIDAuMzE3OTY3LCAwLjQwMDgwNiwgMC41MDQyNjYsIDAuNjA3ODUzLCAwLjcxMTM2LCAwLjgxNDgzNSIsIFwKLSAgICAgICAgICAiMC4yMjk4NSwgMC4zMzYwNTMsIDAuNDE4ODMzLCAwLjUyMjM0MiwgMC42MjU4NjcsIDAuNzI5Mzg4LCAwLjgzMjkxOSIsIFwKLSAgICAgICAgICAiMC4yNDUyODksIDAuMzUxMzQ0LCAwLjQzNDE4NCwgMC41Mzc3MDIsIDAuNjQxMTg3LCAwLjc0NDcxMywgMC44NDgyNiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjIwNTIsIDAuMjYzMTkzLCAwLjQyODc5MiwgMC42Mzc1NTEsIDAuODQ2NjMxLCAxLjA1NzE3LCAxLjI2Njg0IiwgXAotICAgICAgICAgICIwLjA2MTk1NSwgMC4yNjMxODcsIDAuNDI4NzM0LCAwLjYzNzUzNSwgMC44NDY2MTQsIDEuMDU3MSwgMS4yNjY3NiIsIFwKLSAgICAgICAgICAiMC4wNjE5ODgsIDAuMjYzMTkxLCAwLjQyODg3OSwgMC42Mzc1NzUsIDAuODQ2NTg0LCAxLjA1NzA5LCAxLjI2Njc1IiwgXAotICAgICAgICAgICIwLjA2MjA1MywgMC4yNjMxNiwgMC40Mjg3MjIsIDAuNjM3NDg5LCAwLjg0NjQ1MywgMS4wNTY4NSwgMS4yNjY3OSIsIFwKLSAgICAgICAgICAiMC4wNjE5OTYsIDAuMjYzMTgzLCAwLjQyODc5MSwgMC42Mzc0OTMsIDAuODQ2NTc5LCAxLjA1Njk3LCAxLjI2NjcyIiwgXAotICAgICAgICAgICIwLjA2MjA3MywgMC4yNjMyMDMsIDAuNDI4NzMxLCAwLjYzNzUwMiwgMC44NDY5ODksIDEuMDU3LCAxLjI2NjY1IiwgXAotICAgICAgICAgICIwLjA2MTk2OCwgMC4yNjMxNzksIDAuNDI4NzMzLCAwLjYzNzQ2NywgMC44NDY1MTksIDEuMDU3MDEsIDEuMjY2NjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQ0MzYsIDAuMDA0NTIzLCAwLjAwNDUzOSwgMC4wMDQ1NDcsIDAuMDA0NTUzLCAwLjAwNDU1NSwgMC4wMDQ1NTciLCBcCi0gICAgICAgICAgIjAuMDA0NDI4LCAwLjAwNDUxNiwgMC4wMDQ1MzEsIDAuMDA0NTQsIDAuMDA0NTQ0LCAwLjAwNDU0OCwgMC4wMDQ1NSIsIFwKLSAgICAgICAgICAiMC4wMDQ0MjIsIDAuMDA0NTEsIDAuMDA0NTI2LCAwLjAwNDUzNiwgMC4wMDQ1NCwgMC4wMDQ1NDMsIDAuMDA0NTQ1IiwgXAotICAgICAgICAgICIwLjAwNDQxOCwgMC4wMDQ1MDYsIDAuMDA0NTIyLCAwLjAwNDUzMiwgMC4wMDQ1MzcsIDAuMDA0NTQsIDAuMDA0NTQyIiwgXAotICAgICAgICAgICIwLjAwNDQxOSwgMC4wMDQ1MDQsIDAuMDA0NTIxLCAwLjAwNDUzMSwgMC4wMDQ1MzYsIDAuMDA0NTM5LCAwLjAwNDU0MiIsIFwKLSAgICAgICAgICAiMC4wMDQ0MTgsIDAuMDA0NTAyLCAwLjAwNDUyLCAwLjAwNDUzLCAwLjAwNDUzNSwgMC4wMDQ1MzksIDAuMDA0NTQxIiwgXAotICAgICAgICAgICIwLjAwNDQyLCAwLjAwNDUwMSwgMC4wMDQ1MTksIDAuMDA0NTI5LCAwLjAwNDUzNSwgMC4wMDQ1MzksIDAuMDA0NTQyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyODcxLCAwLjAwMjk1NSwgMC4wMDI5NywgMC4wMDI5NzgsIDAuMDAyOTgyLCAwLjAwMjk4NCwgMC4wMDI5ODciLCBcCi0gICAgICAgICAgIjAuMDAyODUzLCAwLjAwMjkzOCwgMC4wMDI5NTMsIDAuMDAyOTYyLCAwLjAwMjk2NiwgMC4wMDI5NywgMC4wMDI5NzIiLCBcCi0gICAgICAgICAgIjAuMDAyODQzLCAwLjAwMjkzLCAwLjAwMjk0NSwgMC4wMDI5NTQsIDAuMDAyOTU4LCAwLjAwMjk2MSwgMC4wMDI5NjMiLCBcCi0gICAgICAgICAgIjAuMDAyODM5LCAwLjAwMjkyNSwgMC4wMDI5NCwgMC4wMDI5NDksIDAuMDAyOTU0LCAwLjAwMjk1NywgMC4wMDI5NTkiLCBcCi0gICAgICAgICAgIjAuMDAyODM1LCAwLjAwMjkyLCAwLjAwMjkzNiwgMC4wMDI5NDYsIDAuMDAyOTUxLCAwLjAwMjk1NCwgMC4wMDI5NTYiLCBcCi0gICAgICAgICAgIjAuMDAyODM2LCAwLjAwMjkxNywgMC4wMDI5MzQsIDAuMDAyOTQ0LCAwLjAwMjk0OSwgMC4wMDI5NTIsIDAuMDAyOTU1IiwgXAotICAgICAgICAgICIwLjAwMjgzMiwgMC4wMDI5MTQsIDAuMDAyOTMyLCAwLjAwMjk0MiwgMC4wMDI5NDgsIDAuMDAyOTUxLCAwLjAwMjk1NCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDM4OCwgMC4wMDQ0NzUsIDAuMDA0NDksIDAuMDA0NDk4LCAwLjAwNDUwMywgMC4wMDQ1MDUsIDAuMDA0NTA4IiwgXAotICAgICAgICAgICIwLjAwNDM3OSwgMC4wMDQ0NjcsIDAuMDA0NDgyLCAwLjAwNDQ5MiwgMC4wMDQ0OTcsIDAuMDA0NDk5LCAwLjAwNDUiLCBcCi0gICAgICAgICAgIjAuMDA0MzY2LCAwLjAwNDQ1NSwgMC4wMDQ0NzEsIDAuMDA0NDc5LCAwLjAwNDQ4NCwgMC4wMDQ0ODcsIDAuMDA0NDg5IiwgXAotICAgICAgICAgICIwLjAwNDM1MywgMC4wMDQ0NDMsIDAuMDA0NDU4LCAwLjAwNDQ2OCwgMC4wMDQ0NzIsIDAuMDA0NDc1LCAwLjAwNDQ3OCIsIFwKLSAgICAgICAgICAiMC4wMDQzNDcsIDAuMDA0NDMzLCAwLjAwNDQ1MSwgMC4wMDQ0NTksIDAuMDA0NDY1LCAwLjAwNDQ2OCwgMC4wMDQ0NjkiLCBcCi0gICAgICAgICAgIjAuMDA0MzM2LCAwLjAwNDQyMSwgMC4wMDQ0MzgsIDAuMDA0NDQ4LCAwLjAwNDQ1NCwgMC4wMDQ0NTgsIDAuMDA0NDYiLCBcCi0gICAgICAgICAgIjAuMDA0MzMsIDAuMDA0NDE0LCAwLjAwNDQzMiwgMC4wMDQ0NDMsIDAuMDA0NDQ5LCAwLjAwNDQ1MiwgMC4wMDQ0NTUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI5ODcsIDAuMDAzMDcxLCAwLjAwMzA4NSwgMC4wMDMwOTIsIDAuMDAzMDk3LCAwLjAwMzA5OCwgMC4wMDMxMDEiLCBcCi0gICAgICAgICAgIjAuMDAyOTcxLCAwLjAwMzA1NywgMC4wMDMwNzEsIDAuMDAzMDc5LCAwLjAwMzA4MywgMC4wMDMwODUsIDAuMDAzMDg2IiwgXAotICAgICAgICAgICIwLjAwMjk1MywgMC4wMDMwNCwgMC4wMDMwNTQsIDAuMDAzMDYzLCAwLjAwMzA2NywgMC4wMDMwNywgMC4wMDMwNzIiLCBcCi0gICAgICAgICAgIjAuMDAyOTQ0LCAwLjAwMzAzLCAwLjAwMzA0NSwgMC4wMDMwNTQsIDAuMDAzMDU4LCAwLjAwMzA2MSwgMC4wMDMwNjMiLCBcCi0gICAgICAgICAgIjAuMDAyOTQ2LCAwLjAwMzAyNiwgMC4wMDMwNDIsIDAuMDAzMDUxLCAwLjAwMzA1NiwgMC4wMDMwNTgsIDAuMDAzMDYxIiwgXAotICAgICAgICAgICIwLjAwMjkzOCwgMC4wMDMwMTksIDAuMDAzMDM1LCAwLjAwMzA0NSwgMC4wMDMwNTEsIDAuMDAzMDU0LCAwLjAwMzA1NyIsIFwKLSAgICAgICAgICAiMC4wMDI5MzgsIDAuMDAzMDE5LCAwLjAwMzAzNSwgMC4wMDMwNDYsIDAuMDAzMDUzLCAwLjAwMzA1NywgMC4wMDMwNTgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0MTIxLCAwLjAwNDIwNiwgMC4wMDQyMjEsIDAuMDA0MjMxLCAwLjAwNDIzNSwgMC4wMDQyMzgsIDAuMDA0MjQxIiwgXAotICAgICAgICAgICIwLjAwNDEyMSwgMC4wMDQyMDYsIDAuMDA0MjIyLCAwLjAwNDIzMSwgMC4wMDQyMzcsIDAuMDA0MjQsIDAuMDA0MjQxIiwgXAotICAgICAgICAgICIwLjAwNDExOSwgMC4wMDQyMDUsIDAuMDA0MjIxLCAwLjAwNDIzMSwgMC4wMDQyMzYsIDAuMDA0MjQsIDAuMDA0MjQyIiwgXAotICAgICAgICAgICIwLjAwNDExOCwgMC4wMDQyMDMsIDAuMDA0MjIsIDAuMDA0MjMsIDAuMDA0MjM2LCAwLjAwNDI0LCAwLjAwNDI0MiIsIFwKLSAgICAgICAgICAiMC4wMDQxMTUsIDAuMDA0MjAxLCAwLjAwNDIxOSwgMC4wMDQyMywgMC4wMDQyMzYsIDAuMDA0MjM5LCAwLjAwNDI0MyIsIFwKLSAgICAgICAgICAiMC4wMDQxMTksIDAuMDA0MjAxLCAwLjAwNDIyLCAwLjAwNDIzMSwgMC4wMDQyMzcsIDAuMDA0MjQzLCAwLjAwNDI0NCIsIFwKLSAgICAgICAgICAiMC4wMDQxMjUsIDAuMDA0MjA0LCAwLjAwNDIyNCwgMC4wMDQyMzYsIDAuMDA0MjQyLCAwLjAwNDI0NywgMC4wMDQyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjk4NywgMC4wMDMwNzIsIDAuMDAzMDg3LCAwLjAwMzA5NCwgMC4wMDMwOTksIDAuMDAzMTAxLCAwLjAwMzEwMyIsIFwKLSAgICAgICAgICAiMC4wMDI5ODEsIDAuMDAzMDY2LCAwLjAwMzA4LCAwLjAwMzA5LCAwLjAwMzA5NCwgMC4wMDMwOTQsIDAuMDAzMDk2IiwgXAotICAgICAgICAgICIwLjAwMjk2NywgMC4wMDMwNTQsIDAuMDAzMDcsIDAuMDAzMDc4LCAwLjAwMzA4MywgMC4wMDMwODYsIDAuMDAzMDg4IiwgXAotICAgICAgICAgICIwLjAwMjk1OSwgMC4wMDMwNDQsIDAuMDAzMDYsIDAuMDAzMDY5LCAwLjAwMzA3NCwgMC4wMDMwNzYsIDAuMDAzMDc5IiwgXAotICAgICAgICAgICIwLjAwMjk1MSwgMC4wMDMwMzYsIDAuMDAzMDUzLCAwLjAwMzA2MiwgMC4wMDMwNjgsIDAuMDAzMDcsIDAuMDAzMDczIiwgXAotICAgICAgICAgICIwLjAwMjk1NSwgMC4wMDMwMzEsIDAuMDAzMDQ5LCAwLjAwMzA1OSwgMC4wMDMwNjUsIDAuMDAzMDY4LCAwLjAwMzA3IiwgXAotICAgICAgICAgICIwLjAwMjk0OSwgMC4wMDMwMjksIDAuMDAzMDQ3LCAwLjAwMzA1OCwgMC4wMDMwNjQsIDAuMDAzMDY4LCAwLjAwMzA3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBBRERGWDQgKgotICogLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChBRERGWDQpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC43MDQyODQ7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMzUwNTU4OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMzQ4Mjc3OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMzUwNTU4OwotICB9Ci0gIHBpbihCKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDMzMTY0MjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDMyOTYzNzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDMzMTY0MjsKLSAgfQotICBwaW4oQ0kpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMjYyMzc1OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMjYwNTQ3OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMjYyMzc1OwotICB9Ci0gIHBpbihDTykgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAxLjAzODc0OwotICAgIGZ1bmN0aW9uIDogIigoKEEgQikrKEIgQ0kpKSsoQ0kgQSkpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5MTYwMywgMC4xNzMzMDEsIDAuMjQ2Mzk1LCAwLjI5ODE0OCwgMC4zODEyNDksIDAuNDU0MDM4LCAwLjU1NzIyMSIsIFwKLSAgICAgICAgICAiMC4xMDExNzUsIDAuMTgyODM1LCAwLjI1NTk0MSwgMC4zMDc2ODYsIDAuMzkwODE2LCAwLjQ2MzA4OCwgMC41NjY1MyIsIFwKLSAgICAgICAgICAiMC4xMTIxMjksIDAuMTkzNzk5LCAwLjI2Njg5NiwgMC4zMTg3MjksIDAuNDAxNzUxLCAwLjQ3Mzc0LCAwLjU3NzY3OCIsIFwKLSAgICAgICAgICAiMC4xMjMwMzUsIDAuMjA0NjA4LCAwLjI3NzcxNiwgMC4zMjk0NTUsIDAuNDEyNTgsIDAuNDg0OTEzLCAwLjU4ODE1NSIsIFwKLSAgICAgICAgICAiMC4xMzM2ODEsIDAuMjE1MzAyLCAwLjI4ODQxMywgMC4zNDAxNDMsIDAuNDIzMjIzLCAwLjQ5NTk5OCwgMC41OTkyODQiLCBcCi0gICAgICAgICAgIjAuMTQ5ODExLCAwLjIzMTY0MiwgMC4zMDQ3NTcsIDAuMzU2NDgyLCAwLjQzOTU4OSwgMC41MTE4MzgsIDAuNjE1NjEyIiwgXAotICAgICAgICAgICIwLjE2MzE4NiwgMC4yNDUzMjYsIDAuMzE4NDY4LCAwLjM3MDI3NiwgMC40NTMzNjgsIDAuNTI1NDA0LCAwLjYyOTE1NSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0NTY5MSwgMC4xODY1NjUsIDAuMzM1Nzk4LCAwLjQzODU2OSwgMC42MDY5NjUsIDAuNzU2OTczLCAwLjk2OTYxOSIsIFwKLSAgICAgICAgICAiMC4wNDU0NzQsIDAuMTg4NDgxLCAwLjMzNTkzNywgMC40NDEwMiwgMC42MDk0MDksIDAuNzU2NzkxLCAwLjk2ODQ2NiIsIFwKLSAgICAgICAgICAiMC4wNDUxNiwgMC4xODg0OSwgMC4zMzU5MTYsIDAuNDQwMjk0LCAwLjYwODMwNywgMC43NTY4NjUsIDAuOTY4NTI4IiwgXAotICAgICAgICAgICIwLjA0NTA5NCwgMC4xODg2MDEsIDAuMzM1ODExLCAwLjQ0MTI0OSwgMC42MDk3NzgsIDAuNzU2ODYyLCAwLjk2Nzg5NyIsIFwKLSAgICAgICAgICAiMC4wNDUyMDYsIDAuMTg2MzM4LCAwLjMzNTkyNywgMC40NDEwNDEsIDAuNjA5NjYzLCAwLjc1NjM3OCwgMC45Njc3NjMiLCBcCi0gICAgICAgICAgIjAuMDQ2MjQsIDAuMTg4ODUxLCAwLjMzMjYzOCwgMC40NDEwMywgMC42MDgyNzEsIDAuNzU1OTA1LCAwLjk2NzM5MiIsIFwKLSAgICAgICAgICAiMC4wNDcyNzMsIDAuMTg4MDA4LCAwLjMzNjQwMSwgMC40NDExNTEsIDAuNjA5NDQxLCAwLjc1Njc3NCwgMC45NjgwMTIiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTU1ODksIDAuMTc5MzQ3LCAwLjI1MzYyMSwgMC4zMDYyNTksIDAuMzkwMzU3LCAwLjQ2NDA0MywgMC41Njk1MjMiLCBcCi0gICAgICAgICAgIjAuMTA0OTc5LCAwLjE4ODc0NCwgMC4yNjMwMjksIDAuMzE1Njg2LCAwLjM5OTY5MywgMC40NzMxMjEsIDAuNTc4NTg3IiwgXAotICAgICAgICAgICIwLjExNTMwNywgMC4xOTkwNSwgMC4yNzMzMjcsIDAuMzI2MDIyLCAwLjQxMDEwOCwgMC40ODM4NDksIDAuNTg5MzU5IiwgXAotICAgICAgICAgICIwLjEyNTMwMSwgMC4yMDkwMzIsIDAuMjgzMzQ2LCAwLjMzNTg0LCAwLjQyMDMxNSwgMC40OTQyODEsIDAuNTk4ODcyIiwgXAotICAgICAgICAgICIwLjEzNTAyOSwgMC4yMTg3NDksIDAuMjkzMDQ2LCAwLjM0NTgxNiwgMC40Mjk5OTYsIDAuNTAzMjc4LCAwLjYwODYwNCIsIFwKLSAgICAgICAgICAiMC4xNDk4NzUsIDAuMjMzNzQxLCAwLjMwODA0NCwgMC4zNjA3MzQsIDAuNDQ1MDI3LCAwLjUxOTA2MiwgMC42MjM2MzkiLCBcCi0gICAgICAgICAgIjAuMTYxNzg5LCAwLjI0NjA4MywgMC4zMjA0MTUsIDAuMzczMDY2LCAwLjQ1NzI2NiwgMC41MzEyMTcsIDAuNjM1NTM1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQ2MDQzLCAwLjE4ODAyNCwgMC4zMzU2OTMsIDAuNDM5NjMyLCAwLjYwODE2MywgMC43NTU0NzUsIDAuOTY1OTczIiwgXAotICAgICAgICAgICIwLjA0NTg1NywgMC4xODgwNzYsIDAuMzM1NjgsIDAuNDM5NjU1LCAwLjYwNzg2NSwgMC43NTQ2OCwgMC45NjY2NzMiLCBcCi0gICAgICAgICAgIjAuMDQ1ODc2LCAwLjE4ODkwNSwgMC4zMzU2ODIsIDAuNDM5NjgxLCAwLjYwNzg4NSwgMC43NTQ5NTUsIDAuOTY2NDgzIiwgXAotICAgICAgICAgICIwLjA0NTgyOCwgMC4xODg3OTUsIDAuMzM1NTE4LCAwLjQzOTU5LCAwLjYwODE0NCwgMC43NTUyNzQsIDAuOTY2NTI1IiwgXAotICAgICAgICAgICIwLjA0NTcwNCwgMC4xODgxMzYsIDAuMzM1NjY2LCAwLjQzOTY3MSwgMC42MDc2NDYsIDAuNzU0NzkxLCAwLjk2NjQ4NyIsIFwKLSAgICAgICAgICAiMC4wNDY3NzQsIDAuMTg4ODA1LCAwLjMzNTE0NywgMC40Mzk3MiwgMC42MDgyMywgMC43NTQ3MjIsIDAuOTY2NDY0IiwgXAotICAgICAgICAgICIwLjA0ODI2OCwgMC4xODg3NiwgMC4zMzU4MTQsIDAuNDM5OCwgMC42MDc0NzMsIDAuNzUzNDM1LCAwLjk2NjU1MiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5MTQ2NSwgMC4xNzI3MzMsIDAuMjQ1ODQ3LCAwLjI5NzY4NCwgMC4zODA5MDYsIDAuNDUzMDUyLCAwLjU1NjI3MiIsIFwKLSAgICAgICAgICAiMC4xMDA1NTksIDAuMTgxODMsIDAuMjU0OTE3LCAwLjMwNjcxMSwgMC4zODk5MjEsIDAuNDYyNjM4LCAwLjU2NjUyMiIsIFwKLSAgICAgICAgICAiMC4xMTIxOTQsIDAuMTkzNDY1LCAwLjI2NjU2MiwgMC4zMTgzMzEsIDAuNDAxMjQ4LCAwLjQ3NDIxNiwgMC41NzgyNCIsIFwKLSAgICAgICAgICAiMC4xMjM5NjYsIDAuMjA1MjQyLCAwLjI3ODM0NywgMC4zMzAxMDksIDAuNDEzMDM3LCAwLjQ4NTk2MywgMC41OTAwNjEiLCBcCi0gICAgICAgICAgIjAuMTM1Njc1LCAwLjIxNjk1NiwgMC4yOTAyNTgsIDAuMzQyMTY1LCAwLjQyNDkyMSwgMC40OTc3MzQsIDAuNjAyMTI4IiwgXAotICAgICAgICAgICIwLjE1NDIyNSwgMC4yMzU1NDMsIDAuMzA4NjcyLCAwLjM2MDQzMSwgMC40NDMzMjMsIDAuNTE2MjEyLCAwLjYyMDQzMyIsIFwKLSAgICAgICAgICAiMC4xNjk0NjMsIDAuMjUxMjg1LCAwLjMyNDM3MywgMC4zNzYxNDQsIDAuNDU5MDIsIDAuNTMxOTQyLCAwLjYzNjMwMiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0NTQxLCAwLjE4NzY3NywgMC4zMzYwNzgsIDAuNDM5NDY1LCAwLjYwOTE4NiwgMC43NTc3NzUsIDAuOTY4MTIzIiwgXAotICAgICAgICAgICIwLjA0NTQ4NSwgMC4xODc4NDEsIDAuMzM1Nzc4LCAwLjQzOTg3NiwgMC42MDc3MDIsIDAuNzU2NzUyLCAwLjk2OTQxOSIsIFwKLSAgICAgICAgICAiMC4wNDQ5NDQsIDAuMTg3ODU4LCAwLjMzNTQ0NywgMC40NDAwMDUsIDAuNjA5MTcyLCAwLjc1NzA5NywgMC45Njg1MzIiLCBcCi0gICAgICAgICAgIjAuMDQ1MTk2LCAwLjE4NzMyMSwgMC4zMzU1NTIsIDAuNDM4OTY0LCAwLjYwOTE4LCAwLjc1Njk2NiwgMC45Njg1MzciLCBcCi0gICAgICAgICAgIjAuMDQ1MzkyLCAwLjE4Nzc0OSwgMC4zMzU3NjQsIDAuNDQxMDA0LCAwLjYwODAyNSwgMC43NTYzMzgsIDAuOTY3NDUxIiwgXAotICAgICAgICAgICIwLjA0NjQ1MSwgMC4xODk1NTYsIDAuMzM1OTI2LCAwLjQ0MDg5MSwgMC42MDkyNSwgMC43NTY3NjgsIDAuOTY4NCIsIFwKLSAgICAgICAgICAiMC4wNDgxOTksIDAuMTkwMzcxLCAwLjMzNjEwOCwgMC40NDEwOTEsIDAuNjA4MTUsIDAuNzU2ODcxLCAwLjk2NzQ5Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDkzMzE2LCAwLjE3Nzg0MiwgMC4yNTIzMjcsIDAuMzA0OTcyLCAwLjM4ODc2OCwgMC40NjI2MzUsIDAuNTY3NTk3IiwgXAotICAgICAgICAgICIwLjEwMjE2MSwgMC4xODY5NzUsIDAuMjYxNDYsIDAuMzE0MTE0LCAwLjM5ODI3MSwgMC40NzIxMjIsIDAuNTc3IiwgXAotICAgICAgICAgICIwLjExMzU0OSwgMC4xOTcyMzYsIDAuMjcxNzExLCAwLjMyNDM2NSwgMC40MDg1MjUsIDAuNDgyMzc0LCAwLjU4NzQ1NyIsIFwKLSAgICAgICAgICAiMC4xMjUxOTEsIDAuMjA4NjU5LCAwLjI4MzA0MiwgMC4zMzU3NzcsIDAuNDIwMTI0LCAwLjQ5NDA1NSwgMC41OTk2NjMiLCBcCi0gICAgICAgICAgIjAuMTM2NzU5LCAwLjIyMDIyMywgMC4yOTQ2MDMsIDAuMzQ3MzM2LCAwLjQzMTQ1NSwgMC41MDU2ODMsIDAuNjEwNjkxIiwgXAotICAgICAgICAgICIwLjE1NDg3MSwgMC4yMzg0NTksIDAuMzEyODM0LCAwLjM2NTU1MSwgMC40NDk2NjksIDAuNTIzODA2LCAwLjYyODk0MiIsIFwKLSAgICAgICAgICAiMC4xNjkyMjMsIDAuMjUzMDcxLCAwLjMyNzU5NywgMC4zODAzMjEsIDAuNDY0Mjk3LCAwLjUzOTExNCwgMC42NDM1MjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDcxNjgsIDAuMTg4ODA0LCAwLjMzNTAxMSwgMC40NDAzMzMsIDAuNjA4MDc5LCAwLjc1NDk0NiwgMC45NjY1NCIsIFwKLSAgICAgICAgICAiMC4wNDcxNTYsIDAuMTg4ODUxLCAwLjMzNjY3LCAwLjQ0MDMzNywgMC42MDc2NzUsIDAuNzU0NTc3LCAwLjk2NjUyOSIsIFwKLSAgICAgICAgICAiMC4wNDcyMjksIDAuMTg5NjM3LCAwLjMzNjYyOSwgMC40NDAyODMsIDAuNjA3NTM0LCAwLjc1NTAxNiwgMC45NjY1MTEiLCBcCi0gICAgICAgICAgIjAuMDQ3MjA3LCAwLjE4ODc5NCwgMC4zMzY2MzIsIDAuNDQwMjc2LCAwLjYwODE1NiwgMC43NTU0ODUsIDAuOTY1Nzc2IiwgXAotICAgICAgICAgICIwLjA0NzMyOSwgMC4xODg4MjgsIDAuMzM2NjY5LCAwLjQ0MDMwNSwgMC42MDc2MjQsIDAuNzU1MDUsIDAuOTY2NTQ0IiwgXAotICAgICAgICAgICIwLjA0ODUzMSwgMC4xOTAxMjYsIDAuMzM2NzM3LCAwLjQ0MDE1LCAwLjYwNzY1MiwgMC43NTQ5MjMsIDAuOTY2NTU4IiwgXAotICAgICAgICAgICIwLjA1MDY2OCwgMC4xOTA3OTQsIDAuMzM0MjA4LCAwLjQ0MDQyNiwgMC42MDgzNDEsIDAuNzU0OTE1LCAwLjk2NjU3MSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODY0NywgMC4xNjgxNTUsIDAuMjQxMjU2LCAwLjI5MjkzNywgMC4zNzYwNzMsIDAuNDQ4NTY5LCAwLjU1MTYzNSIsIFwKLSAgICAgICAgICAiMC4wOTU4NTEsIDAuMTc3NSwgMC4yNTA1MzksIDAuMzAyMzcsIDAuMzg0OTg4LCAwLjQ1Nzk4MiwgMC41NjE3NzUiLCBcCi0gICAgICAgICAgIjAuMTA3NTU4LCAwLjE4OTE0OCwgMC4yNjIyNTMsIDAuMzE0MDc3LCAwLjM5NzA1NiwgMC40NjkwNTYsIDAuNTczMTc0IiwgXAotICAgICAgICAgICIwLjExOTQ4LCAwLjIwMTA5OSwgMC4yNzQyMTIsIDAuMzI1OTYzLCAwLjQwODk2LCAwLjQ4MTczOSwgMC41ODUxODIiLCBcCi0gICAgICAgICAgIjAuMTMxNDM0LCAwLjIxMzA3OCwgMC4yODYxOTEsIDAuMzM3OTgzLCAwLjQyMDk2OCwgMC40OTMxMjYsIDAuNTk2OTk2IiwgXAotICAgICAgICAgICIwLjE0OTgwNCwgMC4yMzE1NTcsIDAuMzA0NzkxLCAwLjM1NjU4NCwgMC40Mzk2MTQsIDAuNTExNzA4LCAwLjYxNTUyMyIsIFwKLSAgICAgICAgICAiMC4xNjQ0ODYsIDAuMjQ2NzM0LCAwLjMxOTgzNywgMC4zNzE1OSwgMC40NTQxOTYsIDAuNTI3MzY5LCAwLjYzMDgxOSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0NTU0NSwgMC4xODg2MzQsIDAuMzMyMTA1LCAwLjQ0MDcyMywgMC42MDY3NDIsIDAuNzU2NTk0LCAwLjk2NzM1NCIsIFwKLSAgICAgICAgICAiMC4wNDU3MTIsIDAuMTg4MDY5LCAwLjMzNTQ4OCwgMC40NDA4MDEsIDAuNjA4ODE5LCAwLjc1NjU2OSwgMC45Njc0NzQiLCBcCi0gICAgICAgICAgIjAuMDQ1NzM3LCAwLjE4ODE4NSwgMC4zMzE2NDEsIDAuNDQwNzM4LCAwLjYwNjQ2OCwgMC43NTY1MzIsIDAuOTY4MDExIiwgXAotICAgICAgICAgICIwLjA0NTc1OCwgMC4xODgxMzYsIDAuMzMyNjU0LCAwLjQ0MDczOSwgMC42MDU5OTEsIDAuNzUzNjg4LCAwLjk2NzQ0NCIsIFwKLSAgICAgICAgICAiMC4wNDYxMDMsIDAuMTg4MTI4LCAwLjMzMjM3OSwgMC40NDA3MjksIDAuNjA2MzgsIDAuNzU2NTcyLCAwLjk2Njk2IiwgXAotICAgICAgICAgICIwLjA0Nzg2LCAwLjE4ODMyLCAwLjMzMjczOCwgMC40NDA3ODUsIDAuNjA3MDA0LCAwLjc1NjUxLCAwLjk2NzM5MiIsIFwKLSAgICAgICAgICAiMC4wNTAwMjksIDAuMTg5MzI3LCAwLjMzMzMzMiwgMC40NDA5MjIsIDAuNjA3NDkyLCAwLjc1NDY3NywgMC45Njc1MjYiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODg4MDcsIDAuMTczNTYxLCAwLjI0ODAwMiwgMC4zMDA0NzcsIDAuMzg0OTUyLCAwLjQ1ODg4OCwgMC41NjM0NTciLCBcCi0gICAgICAgICAgIjAuMDk3ODU4LCAwLjE4MjU2NiwgMC4yNTcwMTQsIDAuMzA5NTE0LCAwLjM5Mzk2OSwgMC40Njc4OTgsIDAuNTcyNDY5IiwgXAotICAgICAgICAgICIwLjEwOTUxNiwgMC4xOTQxMDksIDAuMjY4NTY3LCAwLjMyMTA2NCwgMC40MDU1NDIsIDAuNDc5NDQxLCAwLjU4NDAyMiIsIFwKLSAgICAgICAgICAiMC4xMjExNCwgMC4yMDU2MjIsIDAuMjgwMTQzLCAwLjMzMjgwNiwgMC40MTY4MDIsIDAuNDkwNDgzLCAwLjU5NjAwNiIsIFwKLSAgICAgICAgICAiMC4xMzI3MjEsIDAuMjE3MzA3LCAwLjI5MTc4MywgMC4zNDQ0NSwgMC40MjkxODgsIDAuNTAyNDExLCAwLjYwNzM2MyIsIFwKLSAgICAgICAgICAiMC4xNTA0NDMsIDAuMjM1MDUyLCAwLjMwOTUxNywgMC4zNjIyMDEsIDAuNDQ2MTkyLCAwLjUyMDA2OCwgMC42MjUxOTEiLCBcCi0gICAgICAgICAgIjAuMTY0NTIxLCAwLjI0OTQyNywgMC4zMjM5NTUsIDAuMzc2NjA5LCAwLjQ2MDg1NSwgMC41MzQ5MTcsIDAuNjM5NDcxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQ4Mzg0LCAwLjE5MDEzNywgMC4zMzY0MTcsIDAuNDQwMDY1LCAwLjYwNzMxOCwgMC43NTQ2MzQsIDAuOTY1NzkiLCBcCi0gICAgICAgICAgIjAuMDQ4NDIxLCAwLjE5MDEwNSwgMC4zMzY0NDEsIDAuNDQwMDczLCAwLjYwNzMyNiwgMC43NTQ2ODEsIDAuOTY1Nzc1IiwgXAotICAgICAgICAgICIwLjA0ODQyNiwgMC4xOTAyMjIsIDAuMzM2NDgsIDAuNDQwMDc2LCAwLjYwNzM5NywgMC43NTQ3MjMsIDAuOTY1ODI3IiwgXAotICAgICAgICAgICIwLjA0ODM2MywgMC4xODk2MzcsIDAuMzM1NzA0LCAwLjQ0MDAyMiwgMC42MDgxMjYsIDAuNzU0NjgxLCAwLjk2NTg4NSIsIFwKLSAgICAgICAgICAiMC4wNDg0MzksIDAuMTg4ODU0LCAwLjMzNjY4NCwgMC40NDAzMTUsIDAuNjA3NzcxLCAwLjc1NDcsIDAuOTY2MDk3IiwgXAotICAgICAgICAgICIwLjA1MDE3MiwgMC4xOTAwMzUsIDAuMzM2ODExLCAwLjQ0MDMyOSwgMC42MDgxNzksIDAuNzU0NzAzLCAwLjk2NTg4IiwgXAotICAgICAgICAgICIwLjA1MTczNCwgMC4xODk1OTksIDAuMzM2OTA0LCAwLjQ0MDYwNywgMC42MDc3MzIsIDAuNzU0NjA1LCAwLjk2NTk4NiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1MTA3LCAwLjAwNTMwOCwgMC4wMDUzNTIsIDAuMDA1MzY3LCAwLjAwNTM4MSwgMC4wMDUzODgsIDAuMDA1Mzk1IiwgXAotICAgICAgICAgICIwLjAwNTA3LCAwLjAwNTI3NSwgMC4wMDUzMiwgMC4wMDUzMzYsIDAuMDA1MzUxLCAwLjAwNTM1NiwgMC4wMDUzNjQiLCBcCi0gICAgICAgICAgIjAuMDA1MDUyLCAwLjAwNTI1OCwgMC4wMDUzMDYsIDAuMDA1MzIsIDAuMDA1MzM1LCAwLjAwNTM0MiwgMC4wMDUzNSIsIFwKLSAgICAgICAgICAiMC4wMDUwNDcsIDAuMDA1MjQ4LCAwLjAwNTI5NSwgMC4wMDUzMTIsIDAuMDA1MzI3LCAwLjAwNTMzNCwgMC4wMDUzNDEiLCBcCi0gICAgICAgICAgIjAuMDA1MDQxLCAwLjAwNTIzOCwgMC4wMDUyODcsIDAuMDA1MzA0LCAwLjAwNTMyLCAwLjAwNTMyOCwgMC4wMDUzMzUiLCBcCi0gICAgICAgICAgIjAuMDA1MDQ5LCAwLjAwNTIzLCAwLjAwNTI4MSwgMC4wMDUyOTgsIDAuMDA1MzE1LCAwLjAwNTMyNCwgMC4wMDUzMzIiLCBcCi0gICAgICAgICAgIjAuMDA1MDU0LCAwLjAwNTIyNCwgMC4wMDUyNzYsIDAuMDA1Mjk0LCAwLjAwNTMxMiwgMC4wMDUzMjIsIDAuMDA1MzMxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDc1NDUsIDAuMDA3NzUxLCAwLjAwNzc5NywgMC4wMDc4MTIsIDAuMDA3ODI2LCAwLjAwNzgzMywgMC4wMDc4MzkiLCBcCi0gICAgICAgICAgIjAuMDA3NTMxLCAwLjAwNzczNywgMC4wMDc3ODMsIDAuMDA3Nzk4LCAwLjAwNzgxMiwgMC4wMDc4MTksIDAuMDA3ODI2IiwgXAotICAgICAgICAgICIwLjAwNzUyMiwgMC4wMDc3MjYsIDAuMDA3NzczLCAwLjAwNzc4OSwgMC4wMDc4MDMsIDAuMDA3ODExLCAwLjAwNzgxOCIsIFwKLSAgICAgICAgICAiMC4wMDc1MTQsIDAuMDA3NzE3LCAwLjAwNzc2NSwgMC4wMDc3ODEsIDAuMDA3Nzk2LCAwLjAwNzgwNSwgMC4wMDc4MTEiLCBcCi0gICAgICAgICAgIjAuMDA3NTEzLCAwLjAwNzcxLCAwLjAwNzc1OSwgMC4wMDc3NzYsIDAuMDA3NzkyLCAwLjAwNzgsIDAuMDA3ODA5IiwgXAotICAgICAgICAgICIwLjAwNzUyLCAwLjAwNzY5OSwgMC4wMDc3NTEsIDAuMDA3NzY5LCAwLjAwNzc4NiwgMC4wMDc3OTUsIDAuMDA3ODAzIiwgXAotICAgICAgICAgICIwLjAwNzUyMywgMC4wMDc2OTYsIDAuMDA3NzQ3LCAwLjAwNzc2OCwgMC4wMDc3ODYsIDAuMDA3Nzk1LCAwLjAwNzgwMyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1MzE2LCAwLjAwNTUxOSwgMC4wMDU1NjMsIDAuMDA1NTc3LCAwLjAwNTU5LCAwLjAwNTU5NywgMC4wMDU2MDMiLCBcCi0gICAgICAgICAgIjAuMDA1MjgzLCAwLjAwNTQ4OCwgMC4wMDU1MzIsIDAuMDA1NTQ3LCAwLjAwNTU2MiwgMC4wMDU1NjcsIDAuMDA1NTczIiwgXAotICAgICAgICAgICIwLjAwNTI0OCwgMC4wMDU0NTUsIDAuMDA1NTAxLCAwLjAwNTUxNywgMC4wMDU1MzEsIDAuMDA1NTM4LCAwLjAwNTU0NCIsIFwKLSAgICAgICAgICAiMC4wMDUyMzUsIDAuMDA1NDM1LCAwLjAwNTQ4LCAwLjAwNTUsIDAuMDA1NTE0LCAwLjAwNTUxOSwgMC4wMDU1MjYiLCBcCi0gICAgICAgICAgIjAuMDA1MjM0LCAwLjAwNTQyMiwgMC4wMDU0NywgMC4wMDU0ODYsIDAuMDA1NTAzLCAwLjAwNTUxMSwgMC4wMDU1MTgiLCBcCi0gICAgICAgICAgIjAuMDA1MjU0LCAwLjAwNTQxNCwgMC4wMDU0NjMsIDAuMDA1NDgxLCAwLjAwNTQ5OCwgMC4wMDU1MDYsIDAuMDA1NTE0IiwgXAotICAgICAgICAgICIwLjAwNTIzNSwgMC4wMDU0MDYsIDAuMDA1NDU5LCAwLjAwNTQ3OCwgMC4wMDU0OTcsIDAuMDA1NTA1LCAwLjAwNTUxMyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA3NDE1LCAwLjAwNzYxNywgMC4wMDc2NjIsIDAuMDA3Njc2LCAwLjAwNzY5MSwgMC4wMDc2OTgsIDAuMDA3NzA0IiwgXAotICAgICAgICAgICIwLjAwNzQwMSwgMC4wMDc2MDQsIDAuMDA3NjQ5LCAwLjAwNzY2NCwgMC4wMDc2NzgsIDAuMDA3Njg1LCAwLjAwNzY5MiIsIFwKLSAgICAgICAgICAiMC4wMDczNzMsIDAuMDA3NTgsIDAuMDA3NjI2LCAwLjAwNzY0MiwgMC4wMDc2NTYsIDAuMDA3NjY0LCAwLjAwNzY3MSIsIFwKLSAgICAgICAgICAiMC4wMDczNTYsIDAuMDA3NTU3LCAwLjAwNzYwNiwgMC4wMDc2MiwgMC4wMDc2MzcsIDAuMDA3NjQzLCAwLjAwNzY1MSIsIFwKLSAgICAgICAgICAiMC4wMDczMzksIDAuMDA3NTM3LCAwLjAwNzU4NywgMC4wMDc2MDQsIDAuMDA3NjE4LCAwLjAwNzYyNywgMC4wMDc2MzQiLCBcCi0gICAgICAgICAgIjAuMDA3MzQxLCAwLjAwNzUyMSwgMC4wMDc1NzIsIDAuMDA3NTg4LCAwLjAwNzYwNSwgMC4wMDc2MTQsIDAuMDA3NjIyIiwgXAotICAgICAgICAgICIwLjAwNzMzOSwgMC4wMDc1MSwgMC4wMDc1NjEsIDAuMDA3NTc5LCAwLjAwNzU5NSwgMC4wMDc2MDQsIDAuMDA3NjEzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0kiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1MzIxLCAwLjAwNTUyNiwgMC4wMDU1NzEsIDAuMDA1NTg0LCAwLjAwNTU5OSwgMC4wMDU2MDYsIDAuMDA1NjEzIiwgXAotICAgICAgICAgICIwLjAwNTMwOCwgMC4wMDU1MTQsIDAuMDA1NTU4LCAwLjAwNTU3NiwgMC4wMDU1ODgsIDAuMDA1NTk2LCAwLjAwNTYwMyIsIFwKLSAgICAgICAgICAiMC4wMDUyODQsIDAuMDA1NDg3LCAwLjAwNTUzNiwgMC4wMDU1NTMsIDAuMDA1NTY2LCAwLjAwNTU3MywgMC4wMDU1ODEiLCBcCi0gICAgICAgICAgIjAuMDA1Mjc2LCAwLjAwNTQ2OSwgMC4wMDU1MTcsIDAuMDA1NTMzLCAwLjAwNTU1LCAwLjAwNTU1OCwgMC4wMDU1NjQiLCBcCi0gICAgICAgICAgIjAuMDA1MjU3LCAwLjAwNTQ1LCAwLjAwNTUsIDAuMDA1NTE4LCAwLjAwNTUzNCwgMC4wMDU1NDMsIDAuMDA1NTUxIiwgXAotICAgICAgICAgICIwLjAwNTI2MSwgMC4wMDU0NDEsIDAuMDA1NDkzLCAwLjAwNTUxMiwgMC4wMDU1MjksIDAuMDA1NTM5LCAwLjAwNTU0OCIsIFwKLSAgICAgICAgICAiMC4wMDUyNzgsIDAuMDA1NDQyLCAwLjAwNTQ5NSwgMC4wMDU1MTQsIDAuMDA1NTMyLCAwLjAwNTU0MiwgMC4wMDU1NTEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNzA1OCwgMC4wMDcyNTMsIDAuMDA3Mjk5LCAwLjAwNzMxMywgMC4wMDczMjgsIDAuMDA3MzM0LCAwLjAwNzM0MiIsIFwKLSAgICAgICAgICAiMC4wMDcwNTksIDAuMDA3MjUzLCAwLjAwNzI5OSwgMC4wMDczMTUsIDAuMDA3MzI4LCAwLjAwNzMzNSwgMC4wMDczNDIiLCBcCi0gICAgICAgICAgIjAuMDA3MDU1LCAwLjAwNzI0OSwgMC4wMDcyOTcsIDAuMDA3MzE0LCAwLjAwNzMyOSwgMC4wMDczMzksIDAuMDA3MzQ2IiwgXAotICAgICAgICAgICIwLjAwNzA2MiwgMC4wMDcyNDgsIDAuMDA3Mjk4LCAwLjAwNzMxNiwgMC4wMDczMzMsIDAuMDA3MzQyLCAwLjAwNzM1IiwgXAotICAgICAgICAgICIwLjAwNzA2MiwgMC4wMDcyNDQsIDAuMDA3Mjk2LCAwLjAwNzMxNSwgMC4wMDczMzIsIDAuMDA3MzQzLCAwLjAwNzM1MSIsIFwKLSAgICAgICAgICAiMC4wMDcwNzYsIDAuMDA3MjQ2LCAwLjAwNzMsIDAuMDA3MzIsIDAuMDA3MzM4LCAwLjAwNzM0OSwgMC4wMDczNTgiLCBcCi0gICAgICAgICAgIjAuMDA3MDk5LCAwLjAwNzI1MiwgMC4wMDczMDYsIDAuMDA3MzI2LCAwLjAwNzM0NiwgMC4wMDczNTYsIDAuMDA3MzY4Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuOTQyNjk2OwotICAgIGZ1bmN0aW9uIDogIigoQV5CKV5DSSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTEwNjMsIDAuMTk0NDE4LCAwLjI2Nzc4OCwgMC4zMTk3MDksIDAuNDAyNjY1LCAwLjQ3NTIxOCwgMC41Nzg3ODIiLCBcCi0gICAgICAgICAgIjAuMTE4NjU2LCAwLjIwMjQzOSwgMC4yNzU3MzUsIDAuMzI3NjQ2LCAwLjQxMDYyNCwgMC40ODMxNTEsIDAuNTg2ODc0IiwgXAotICAgICAgICAgICIwLjEyNzgyNCwgMC4yMTE1NjUsIDAuMjg0ODc5LCAwLjMzNjc4NSwgMC40MTk3ODYsIDAuNDkyMjkyLCAwLjU5NjAxNiIsIFwKLSAgICAgICAgICAiMC4xMzY4NjIsIDAuMjIwNDgzLCAwLjI5Mzg2OSwgMC4zNDU4NDksIDAuNDI4ODAyLCAwLjUwMTMzNSwgMC42MDUwNDMiLCBcCi0gICAgICAgICAgIjAuMTQ1ODA0LCAwLjIyOTM4MywgMC4zMDI2ODgsIDAuMzU0NjEsIDAuNDM3NjA0LCAwLjUxMDIwOSwgMC42MTM3NjMiLCBcCi0gICAgICAgICAgIjAuMTU5Nzc4LCAwLjI0MzQ1OSwgMC4zMTY3ODEsIDAuMzY4NzE3LCAwLjQ1MTY3MywgMC41MjQyMTIsIDAuNjI3OTE1IiwgXAotICAgICAgICAgICIwLjE3MTQ1OSwgMC4yNTQ5NzEsIDAuMzI4MzA1LCAwLjM4MDIzMSwgMC40NjMyMjIsIDAuNTM1NzY2LCAwLjYzOTM2MiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0OTEyOCwgMC4xOTAwMjIsIDAuMzM1NTY0LCAwLjQ0MDQ5OCwgMC42MTA0MzEsIDAuNzU5Njc3LCAwLjk3MjkzOSIsIFwKLSAgICAgICAgICAiMC4wNDkwMzgsIDAuMTg5ODQzLCAwLjMzNTIzNiwgMC40NDA1MDIsIDAuNjEwNTAzLCAwLjc1ODQ4OSwgMC45NzA5MzQiLCBcCi0gICAgICAgICAgIjAuMDQ4ODczLCAwLjE4OTkzMywgMC4zMzUyMjQsIDAuNDQwNDczLCAwLjYxMDU4MywgMC43NTg0MywgMC45NzA5MzIiLCBcCi0gICAgICAgICAgIjAuMDQ4NjE0LCAwLjE4OTkxLCAwLjMzNTI4NSwgMC40NDA0MiwgMC42MTA0MSwgMC43NTg1MzksIDAuOTcwNjk3IiwgXAotICAgICAgICAgICIwLjA0ODU2MywgMC4xODk5MDIsIDAuMzM1NTEsIDAuNDQwNDc0LCAwLjYxMDY1NSwgMC43NTc3ODIsIDAuOTcxMTg2IiwgXAotICAgICAgICAgICIwLjA0ODkzNSwgMC4xOTAwODYsIDAuMzM1NTQ4LCAwLjQ0MDQ2NiwgMC42MTAzNDMsIDAuNzU4NTA0LCAwLjk3MDY3NiIsIFwKLSAgICAgICAgICAiMC4wNDk0OSwgMC4xOTA0MjgsIDAuMzM1NDMxLCAwLjQ0MDk0MSwgMC42MTA2MTEsIDAuNzU5NTU1LCAwLjk3MDkxMiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExNTI0NiwgMC4yMDE2NDEsIDAuMjc2Mzk5LCAwLjMyOTE4LCAwLjQxMzQzNiwgMC40ODcxMDMsIDAuNTkyMzQ3IiwgXAotICAgICAgICAgICIwLjEyMzQxMSwgMC4yMDk4MiwgMC4yODQ1ODgsIDAuMzM3MzY5LCAwLjQyMTYzMSwgMC40OTUyOTQsIDAuNjAwNDk3IiwgXAotICAgICAgICAgICIwLjEzMjA4MywgMC4yMTgzNjMsIDAuMjkzMTk4LCAwLjM0NTk4NSwgMC40MzAyNDcsIDAuNTAzOTE2LCAwLjYwOTExOCIsIFwKLSAgICAgICAgICAiMC4xNDAxOTcsIDAuMjI2NTIsIDAuMzAxMjcyLCAwLjM1NDA1MywgMC40MzgzNjEsIDAuNTExOTk2LCAwLjYxNzIwMiIsIFwKLSAgICAgICAgICAiMC4xNDgxMDYsIDAuMjM0Mzg5LCAwLjMwOTE0NCwgMC4zNjE5NDgsIDAuNDQ2MjA5LCAwLjUxOTg3MSwgMC42MjUxMDUiLCBcCi0gICAgICAgICAgIjAuMTYwMTI1LCAwLjI0NjU5OSwgMC4zMjEzNzEsIDAuMzc0MTYzLCAwLjQ1ODQ3OCwgMC41MzIxMSwgMC42MzczMiIsIFwKLSAgICAgICAgICAiMC4xNzAzMjcsIDAuMjU3MDA2LCAwLjMzMTc4LCAwLjM4NDU2NSwgMC40Njg4MjMsIDAuNTQyNDg2LCAwLjY0NzY4NCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1MDIwMiwgMC4xOTE1OTksIDAuMzM2MDU0LCAwLjQ0MTAwOCwgMC42MTAyNjMsIDAuNzU4NjQzLCAwLjk2OTM0OSIsIFwKLSAgICAgICAgICAiMC4wNTAxOTksIDAuMTkxNTg5LCAwLjMzNjA2NywgMC40NDEzMDgsIDAuNjEwMjM2LCAwLjc1ODYzNywgMC45Njk3NjYiLCBcCi0gICAgICAgICAgIjAuMDUwMDI5LCAwLjE5MTQ5OCwgMC4zMzYwNTIsIDAuNDQxMzI4LCAwLjYxMDIzNCwgMC43NTg2MjYsIDAuOTY5NzUiLCBcCi0gICAgICAgICAgIjAuMDQ5ODcxLCAwLjE5MTU1MSwgMC4zMzYwNDYsIDAuNDQxMjc1LCAwLjYxMDQzNCwgMC43NTg2MTIsIDAuOTY5ODA2IiwgXAotICAgICAgICAgICIwLjA0OTc0MywgMC4xOTE1LCAwLjMzNjA0MywgMC40NDA0NSwgMC42MTAyLCAwLjc1ODYxOCwgMC45NzAyMzUiLCBcCi0gICAgICAgICAgIjAuMDUwMzIzLCAwLjE5MTc0NCwgMC4zMzYxMjQsIDAuNDQwNTM5LCAwLjYxMDQ3NywgMC43NTg2NTgsIDAuOTY5ODM2IiwgXAotICAgICAgICAgICIwLjA1MTExLCAwLjE5MTk1MiwgMC4zMzYzMTMsIDAuNDQwNzczLCAwLjYxMDMzNSwgMC43NTg3MTEsIDAuOTcxMjgxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTU5ODU2LCAwLjIzNTM2NywgMC4zMDc1OTYsIDAuMzU5Mjc0LCAwLjQ0MTk3OSwgMC41MTQzNjIsIDAuNjE3ODU4IiwgXAotICAgICAgICAgICIwLjE2OTI5MiwgMC4yNDQ3NzcsIDAuMzE3MDA1LCAwLjM2ODY2NywgMC40NTEzODEsIDAuNTIzNzc0LCAwLjYyNzIwMiIsIFwKLSAgICAgICAgICAiMC4xNzk1NDksIDAuMjU1MDU0LCAwLjMyNzI4NiwgMC4zNzg5NTgsIDAuNDYxNjc2LCAwLjUzNDA2OSwgMC42Mzc1NzciLCBcCi0gICAgICAgICAgIjAuMTg5NTQxLCAwLjI2NTA0OCwgMC4zMzcyNjksIDAuMzg4OTU5LCAwLjQ3MTY0NywgMC41NDQxMTIsIDAuNjQ3NDYxIiwgXAotICAgICAgICAgICIwLjE5OTE5NiwgMC4yNzQ2ODMsIDAuMzQ2OTA5LCAwLjM5ODU2OCwgMC40ODEyODcsIDAuNTUzNjc2LCAwLjY1NzEiLCBcCi0gICAgICAgICAgIjAuMjE0MTI0LCAwLjI4OTU4MSwgMC4zNjE3NDMsIDAuNDEzNTAyLCAwLjQ5NjIxNCwgMC41Njg2ODQsIDAuNjcyMDMyIiwgXAotICAgICAgICAgICIwLjIyNjM1MSwgMC4zMDE2ODMsIDAuMzczOTEsIDAuNDI1Njc0LCAwLjUwODI3NCwgMC41ODA3MTEsIDAuNjg0MTgxIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQ0Mjk5LCAwLjE4NDQ2MywgMC4zMzA3NjcsIDAuNDM3MDMyLCAwLjYwNzM0MiwgMC43NTY3MDMsIDAuOTcwMzYiLCBcCi0gICAgICAgICAgIjAuMDQ0Mjk4LCAwLjE4NDU3MiwgMC4zMzA4NjYsIDAuNDM2OTk0LCAwLjYwNzMxNCwgMC43NTYxNDUsIDAuOTcwMjQyIiwgXAotICAgICAgICAgICIwLjA0NDMwMywgMC4xODQ1NzcsIDAuMzMwODYsIDAuNDM2ODU1LCAwLjYwNzM0NywgMC43NTY3MTgsIDAuOTcwMjI4IiwgXAotICAgICAgICAgICIwLjA0NDI5MSwgMC4xODQ1NzYsIDAuMzMwNzY1LCAwLjQzNjk3NywgMC42MDczMDQsIDAuNzU2NTUsIDAuOTcwMzMyIiwgXAotICAgICAgICAgICIwLjA0NDM3OCwgMC4xODQ1NjQsIDAuMzMwODYsIDAuNDM2ODU5LCAwLjYwNzExNSwgMC43NTU3NDQsIDAuOTcwMjM3IiwgXAotICAgICAgICAgICIwLjA0NDMzMywgMC4xODQ1OTcsIDAuMzMwNzcsIDAuNDM2ODYsIDAuNjA3NDA1LCAwLjc1NjQzMSwgMC45NzAyMTIiLCBcCi0gICAgICAgICAgIjAuMDQ0MzU0LCAwLjE4NDYwMywgMC4zMzA3NiwgMC40MzcwMiwgMC42MDY1MzIsIDAuNzU1NTQyLCAwLjk3MDI0MiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE1NzU2MywgMC4yMzY3NzQsIDAuMzEwNDIxLCAwLjM2Mjg3OSwgMC40NDY4NzIsIDAuNTIwNDE3LCAwLjYyNTQ5OCIsIFwKLSAgICAgICAgICAiMC4xNjcwMTgsIDAuMjQ1NTY2LCAwLjMxOTE4NSwgMC4zNzE2NjMsIDAuNDU1NjYsIDAuNTI5MTkyLCAwLjYzNDMxNCIsIFwKLSAgICAgICAgICAiMC4xNzgwMTYsIDAuMjU2NDYxLCAwLjMzMDA4NSwgMC4zODI1NTQsIDAuNDY2NTQ2LCAwLjU0MDA3OCwgMC42NDUyMDIiLCBcCi0gICAgICAgICAgIjAuMTg4ODM1LCAwLjI2NzMzLCAwLjM0MDk1MiwgMC4zOTM0MzgsIDAuNDc3NDM1LCAwLjU1MDkzNSwgMC42NTYxMTEiLCBcCi0gICAgICAgICAgIjAuMTk5NDY5LCAwLjI3Nzg4OSwgMC4zNTE1MiwgMC40MDM5OTUsIDAuNDg3OTk3LCAwLjU2MTUxOSwgMC42NjY2NTkiLCBcCi0gICAgICAgICAgIjAuMjE1NzIxLCAwLjI5NDI0NCwgMC4zNjc4NCwgMC40MjAzMTUsIDAuNTA0MzEzLCAwLjU3NzkxOCwgMC42ODMwMDUiLCBcCi0gICAgICAgICAgIjAuMjI5MjU5LCAwLjMwNzgwMSwgMC4zODE0MTEsIDAuNDMzODg4LCAwLjUxNzg4MywgMC41OTE0MDQsIDAuNjk2NTQzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQ2MTk1LCAwLjE4NjQwMiwgMC4zMzEzNDYsIDAuNDM2NjMxLCAwLjYwNTY0LCAwLjc1MzkzOSwgMC45Njc3MiIsIFwKLSAgICAgICAgICAiMC4wNDYyNDgsIDAuMTg2MzM2LCAwLjMzMTQ0MSwgMC40MzY0NDQsIDAuNjA1ODI1LCAwLjc1NDE0LCAwLjk2NzIzIiwgXAotICAgICAgICAgICIwLjA0NjI0NiwgMC4xODYzNDksIDAuMzMxNDk0LCAwLjQzNjYxNywgMC42MDU0MjMsIDAuNzU0Mzc4LCAwLjk2NjAyIiwgXAotICAgICAgICAgICIwLjA0NjE5LCAwLjE4NjM3NCwgMC4zMzE0MjMsIDAuNDM2NDIyLCAwLjYwNTk0MiwgMC43NTQ0MywgMC45NjY0NTIiLCBcCi0gICAgICAgICAgIjAuMDQ2MjM4LCAwLjE4NjM3MywgMC4zMzE0NjEsIDAuNDM2NDMsIDAuNjA1ODcsIDAuNzU0MDg1LCAwLjk2NzMwNCIsIFwKLSAgICAgICAgICAiMC4wNDYyNzEsIDAuMTg2NDEsIDAuMzMxNTE4LCAwLjQzNjQwMSwgMC42MDUzNTMsIDAuNzUzODgyLCAwLjk2NzMiLCBcCi0gICAgICAgICAgIjAuMDQ2Mjk4LCAwLjE4NjM4MiwgMC4zMzE2MjIsIDAuNDM2Mzc1LCAwLjYwNTc1NiwgMC43NTQzNzUsIDAuOTY2Mjc3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTA4NTU4LCAwLjE5MjMzNywgMC4yNjU2NjgsIDAuMzE3NTg4LCAwLjQwMDU0MywgMC40NzMxODEsIDAuNTc2NzA4IiwgXAotICAgICAgICAgICIwLjExNjkyMywgMC4yMDA2NzgsIDAuMjczOTc3LCAwLjMyNTg5NiwgMC40MDg4NTQsIDAuNDgxMzksIDAuNTg0OTgyIiwgXAotICAgICAgICAgICIwLjEyNzU4MiwgMC4yMTEyMzgsIDAuMjg0NTk2LCAwLjMzNjU0NSwgMC40MTk1MDMsIDAuNDkyMDMzLCAwLjU5NTc1NSIsIFwKLSAgICAgICAgICAiMC4xMzgxNzQsIDAuMjIxODQsIDAuMjk1MjI4LCAwLjM0NzE2NiwgMC40MzAxMjUsIDAuNTAyNjU0LCAwLjYwNjMwMiIsIFwKLSAgICAgICAgICAiMC4xNDg3MiwgMC4yMzIzMzYsIDAuMzA1NjI1LCAwLjM1NzU4MSwgMC40NDA1NDUsIDAuNTEzMDc3LCAwLjYxNjcyNSIsIFwKLSAgICAgICAgICAiMC4xNjUzMDIsIDAuMjQ4NTU4LCAwLjMyMTgzOSwgMC4zNzM3OTMsIDAuNDU2NzU1LCAwLjUyOTI3NywgMC42MzI5MTciLCBcCi0gICAgICAgICAgIjAuMTc4NzI5LCAwLjI2Mjc0OCwgMC4zMzYwOTQsIDAuMzg4MDE0LCAwLjQ3MDkyOSwgMC41NDM1MTQsIDAuNjQ3MTEzIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQ5MDkzLCAwLjE5MDAwOSwgMC4zMzU1MTUsIDAuNDQwNTQzLCAwLjYxMDQ0LCAwLjc1ODE4NywgMC45NzI5MDEiLCBcCi0gICAgICAgICAgIjAuMDQ4OTcyLCAwLjE4OTk3NSwgMC4zMzUyMjYsIDAuNDQwNTE4LCAwLjYxMDQwMSwgMC43NTg0NTMsIDAuOTcxNjI1IiwgXAotICAgICAgICAgICIwLjA0ODg4MywgMC4xODk5MzEsIDAuMzM1NDM3LCAwLjQ0MDQ0MywgMC42MTA0MDIsIDAuNzU4NDc4LCAwLjk3MDkzMiIsIFwKLSAgICAgICAgICAiMC4wNDg1NTMsIDAuMTg5OTAyLCAwLjMzNTE4NywgMC40NDA0MTgsIDAuNjEwMzg5LCAwLjc1ODQ1MSwgMC45NzExNSIsIFwKLSAgICAgICAgICAiMC4wNDg1NjIsIDAuMTg5ODkyLCAwLjMzNTE4LCAwLjQ0MDQxOSwgMC42MTAzODcsIDAuNzU4NDA0LCAwLjk3MTE0OCIsIFwKLSAgICAgICAgICAiMC4wNDg5NzgsIDAuMTkwMjU1LCAwLjMzNTIzMywgMC40NDA1NjcsIDAuNjEwMzg3LCAwLjc1OTM1LCAwLjk3MTE4MSIsIFwKLSAgICAgICAgICAiMC4wNDk5NjYsIDAuMTkwMzM1LCAwLjMzNTM4NCwgMC40NDA2MjMsIDAuNjEwNDAzLCAwLjc1OTExNSwgMC45NzE1NjQiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTIyMzksIDAuMTk4NjY0LCAwLjI3MzQzOSwgMC4zMjYyMTcsIDAuNDEwNDkxLCAwLjQ4NDE1OCwgMC41ODkzNTgiLCBcCi0gICAgICAgICAgIjAuMTIwNTU5LCAwLjIwNjk4MiwgMC4yODE3MzIsIDAuMzM0NTIzLCAwLjQxODc4NSwgMC40OTI0NDgsIDAuNTk3NjU5IiwgXAotICAgICAgICAgICIwLjEzMDQ1MywgMC4yMTY4NjcsIDAuMjkxNjE5LCAwLjM0NDQxNCwgMC40Mjg2NzcsIDAuNTAyMzQzLCAwLjYwNzU1OCIsIFwKLSAgICAgICAgICAiMC4xNDAyNjYsIDAuMjI2NjgzLCAwLjMwMTQzNiwgMC4zNTQyNDEsIDAuNDM4NTA3LCAwLjUxMjE3MSwgMC42MTczODUiLCBcCi0gICAgICAgICAgIjAuMTUwMTY2LCAwLjIzNjQzMiwgMC4zMTEyMDIsIDAuMzYzOTkxLCAwLjQ0ODI1OSwgMC41MjE5MjcsIDAuNjI3MTMiLCBcCi0gICAgICAgICAgIjAuMTY0OTEsIDAuMjUxNTIxLCAwLjMyNjMwNiwgMC4zNzkxMTgsIDAuNDYzMzk1LCAwLjUzNzA0NSwgMC42NDIyNjUiLCBcCi0gICAgICAgICAgIjAuMTc3NjQ3LCAwLjI2NDQxLCAwLjMzOTE3MSwgMC4zOTE5NTgsIDAuNDc2MjUsIDAuNTQ5OTE4LCAwLjY1NTExMyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1MDA4NCwgMC4xOTE2MTEsIDAuMzM2MDc4LCAwLjQ0MDc5NiwgMC42MTAyMTIsIDAuNzU4NjM2LCAwLjk2OTcxIiwgXAotICAgICAgICAgICIwLjA1MDAwOCwgMC4xOTE1NjgsIDAuMzM2MDgzLCAwLjQ0MDk2MiwgMC42MTAyMzUsIDAuNzU4NTY2LCAwLjk2OTc5MyIsIFwKLSAgICAgICAgICAiMC4wNDk5NDMsIDAuMTkxNTQ4LCAwLjMzNjA3MSwgMC40NDA5NTMsIDAuNjEwMjI1LCAwLjc1ODU5MywgMC45Njk4MjkiLCBcCi0gICAgICAgICAgIjAuMDQ5NzkxLCAwLjE5MTUzMSwgMC4zMzYwNiwgMC40NDA5NDMsIDAuNjEwMjIxLCAwLjc1ODYwNSwgMC45Njk4NTYiLCBcCi0gICAgICAgICAgIjAuMDQ5ODI3LCAwLjE5MTU0LCAwLjMzNjA0NywgMC40NDA0NDEsIDAuNjEwMjE3LCAwLjc1ODYxNywgMC45NzEyNTIiLCBcCi0gICAgICAgICAgIjAuMDUxMTYxLCAwLjE5MTg0NCwgMC4zMzYxMjMsIDAuNDQxMzU5LCAwLjYxMDMyNCwgMC43NTg2NTMsIDAuOTY5ODY4IiwgXAotICAgICAgICAgICIwLjA1MTMwOSwgMC4xOTE5NzYsIDAuMzM2MzExLCAwLjQ0MTEzNCwgMC42MTA0MDQsIDAuNzU4NzYsIDAuOTY5NzIzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTYwNjA0LCAwLjIzNjExNywgMC4zMDg0MjcsIDAuMzYwMTM1LCAwLjQ0Mjg3NiwgMC41MTUzMDUsIDAuNjE4NzM4IiwgXAotICAgICAgICAgICIwLjE2OTc1NCwgMC4yNDUzMjksIDAuMzE3NjUyLCAwLjM2OTM1MywgMC40NTIxMDYsIDAuNTI0NTU5LCAwLjYyODAwNyIsIFwKLSAgICAgICAgICAiMC4xNzk4OTgsIDAuMjU1NTExLCAwLjMyNzcxNCwgMC4zNzk0MTUsIDAuNDYyMTY4LCAwLjUzNDYyMSwgMC42MzgwNjkiLCBcCi0gICAgICAgICAgIjAuMTg5NjQzLCAwLjI2NTI3OCwgMC4zMzc1MTIsIDAuMzg5MjAyLCAwLjQ3MTk5OCwgMC41NDQzOTksIDAuNjQ3ODQ4IiwgXAotICAgICAgICAgICIwLjE5OTEwMSwgMC4yNzQ2NTEsIDAuMzQ2OTc1LCAwLjM5ODY3NiwgMC40ODE0MjgsIDAuNTUzODc4LCAwLjY1NzMzMiIsIFwKLSAgICAgICAgICAiMC4yMTQ3NzYsIDAuMjkxMTM1LCAwLjM2MzM3MiwgMC40MTQ5ODIsIDAuNDk3NjczLCAwLjU3MDA4OSwgMC42NzM0ODciLCBcCi0gICAgICAgICAgIjAuMjI5MzY2LCAwLjMwNTU0NiwgMC4zNzc5MTcsIDAuNDI5NTQ4LCAwLjUxMjA0MiwgMC41ODQ3MzQsIDAuNjg3ODU0Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQzOTI2LCAwLjE4NDU0NCwgMC4zMzA3MzUsIDAuNDM2OTQ3LCAwLjYwNzM4MSwgMC43NTY4MDksIDAuOTcwMjU4IiwgXAotICAgICAgICAgICIwLjA0Mzk2NSwgMC4xODQ1NDIsIDAuMzMwNzM0LCAwLjQzNjk1LCAwLjYwNzEzOCwgMC43NTQ4MTgsIDAuOTcwMzg0IiwgXAotICAgICAgICAgICIwLjA0Mzk5LCAwLjE4NDUxMSwgMC4zMzA4NDEsIDAuNDM2OTU0LCAwLjYwNzEwMSwgMC43NTY1MjQsIDAuOTcwMzkxIiwgXAotICAgICAgICAgICIwLjA0Mzk4NywgMC4xODQ1MTcsIDAuMzMwNzQ3LCAwLjQzNjk1OCwgMC42MDc1NDYsIDAuNzU2Njg1LCAwLjk3MDM2OCIsIFwKLSAgICAgICAgICAiMC4wNDM5OTcsIDAuMTg0NTQyLCAwLjMzMDc0NSwgMC40MzY5NTIsIDAuNjA3MTI2LCAwLjc1NTU5NywgMC45NzAzNzgiLCBcCi0gICAgICAgICAgIjAuMDQ0MDA4LCAwLjE4NDU0MywgMC4zMzA4MzksIDAuNDM3MTE4LCAwLjYwNzExMiwgMC43NTY5NzgsIDAuOTcwMzI2IiwgXAotICAgICAgICAgICIwLjA0NDA0NSwgMC4xODQ1NCwgMC4zMzA4MjMsIDAuNDM3MTE4LCAwLjYwNzUxOCwgMC43NTY5MDEsIDAuOTcwMjEzIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTU2NDE4LCAwLjIzNjAxNiwgMC4zMDk2NzEsIDAuMzYyMTM0LCAwLjQ0NjEzMywgMC41MTk2NjIsIDAuNjI0NzE0IiwgXAotICAgICAgICAgICIwLjE2NTQ3OSwgMC4yNDUwNzUsIDAuMzE4NzE3LCAwLjM3MTE4NywgMC40NTUxODUsIDAuNTI4NzIzLCAwLjYzMzgyMSIsIFwKLSAgICAgICAgICAiMC4xNzcxMTEsIDAuMjU2NzA1LCAwLjMzMDMzOCwgMC4zODI4MDgsIDAuNDY2ODAyLCAwLjU0MDMzOCwgMC42NDU0NSIsIFwKLSAgICAgICAgICAiMC4xODg4NjUsIDAuMjY4NDU4LCAwLjM0MjA4OCwgMC4zOTQ1NjQsIDAuNDc4NTU4LCAwLjU1MjA5MSwgMC42NTcyMSIsIFwKLSAgICAgICAgICAiMC4yMDA1NDQsIDAuMjgwMDg0LCAwLjM1Mzg3MiwgMC40MDYzNzUsIDAuNDkwMzQ1LCAwLjU2Mzg3OSwgMC42NjkwMjUiLCBcCi0gICAgICAgICAgIjAuMjE5MTMsIDAuMjk4NDgsIDAuMzcyMTA5LCAwLjQyNDU3NSwgMC41MDg1NzIsIDAuNTgyMDk5LCAwLjY4NzIyOSIsIFwKLSAgICAgICAgICAiMC4yMzQ2NDIsIDAuMzE0MDE2LCAwLjM4NzU4MSwgMC40NDAwNDUsIDAuNTI0MDQsIDAuNTk3NTcsIDAuNzAyNzc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQ1NDY4LCAwLjE4NjE1OCwgMC4zMzE0MywgMC40MzY1MjQsIDAuNjA1ODUxLCAwLjc1NDcwNCwgMC45NjY0OTkiLCBcCi0gICAgICAgICAgIjAuMDQ1NDU0LCAwLjE4NjA4MywgMC4zMzE0NTMsIDAuNDM2NjA2LCAwLjYwNTU5MSwgMC43NTM5MDcsIDAuOTY3NjkxIiwgXAotICAgICAgICAgICIwLjA0NTQzMywgMC4xODYxNzEsIDAuMzMxNTE0LCAwLjQzNjU4NiwgMC42MDU3ODksIDAuNzU0NTg4LCAwLjk2NjcwMSIsIFwKLSAgICAgICAgICAiMC4wNDU0NCwgMC4xODYxNzIsIDAuMzMxNDU2LCAwLjQzNjU3OCwgMC42MDU3ODQsIDAuNzU0MTA1LCAwLjk2NzQ3NSIsIFwKLSAgICAgICAgICAiMC4wNDU0NTgsIDAuMTg2MjI3LCAwLjMzMTI1OCwgMC40MzY0MDcsIDAuNjA1NCwgMC43NTQwNjgsIDAuOTY3NDQ2IiwgXAotICAgICAgICAgICIwLjA0NTQzNywgMC4xODYyMzQsIDAuMzMxMzc5LCAwLjQzNjQxNiwgMC42MDU3ODQsIDAuNzU0MTAxLCAwLjk2NzM2OCIsIFwKLSAgICAgICAgICAiMC4wNDU0NTEsIDAuMTg2MjI1LCAwLjMzMTM2OCwgMC40MzY0MSwgMC42MDU0MDMsIDAuNzU0MTAyLCAwLjk2NzUwNyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDgyLCAwLjE5MTk5MSwgMC4yNjUzNTMsIDAuMzE3Mjc2LCAwLjQwMDI3NCwgMC40NzI3ODcsIDAuNTc2NDk1IiwgXAotICAgICAgICAgICIwLjExNjQzOSwgMC4yMDAxODYsIDAuMjczNTMsIDAuMzI1NDUsIDAuNDA4NDAxLCAwLjQ4MTAzNywgMC41ODQ1OTEiLCBcCi0gICAgICAgICAgIjAuMTI2ODE4LCAwLjIxMDU1MSwgMC4yODM5MzgsIDAuMzM1ODYzLCAwLjQxODgxNSwgMC40OTEzNTQsIDAuNTk1MDQ4IiwgXAotICAgICAgICAgICIwLjEzNzgyNSwgMC4yMjE1MywgMC4yOTQ4NTMsIDAuMzQ2ODA3LCAwLjQyOTc2NCwgMC41MDIzMDIsIDAuNjA2MDAzIiwgXAotICAgICAgICAgICIwLjE0ODk5MywgMC4yMzI2MzYsIDAuMzA1OTQ0LCAwLjM1Nzg5NiwgMC40NDA4NjMsIDAuNTEzMzc3LCAwLjYxNzAzNyIsIFwKLSAgICAgICAgICAiMC4xNjY4NCwgMC4yNTAzMjcsIDAuMzIzNTk0LCAwLjM3NTUxMiwgMC40NTg0NzgsIDAuNTMxMDM2LCAwLjYzNDYwMiIsIFwKLSAgICAgICAgICAiMC4xODE4OTMsIDAuMjY1NjI0LCAwLjMzODkyOCwgMC4zOTA4NDMsIDAuNDczODA0LCAwLjU0NjM1NiwgMC42NDk5MjEiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDkyMjgsIDAuMTkwMDU2LCAwLjMzNTYwNCwgMC40NDA1MzYsIDAuNjEwNzc4LCAwLjc1ODU5MiwgMC45NzA3NzEiLCBcCi0gICAgICAgICAgIjAuMDQ5MDc1LCAwLjE4OTk5MiwgMC4zMzU1MzYsIDAuNDQwNDY5LCAwLjYxMDQzNiwgMC43NTc5NDMsIDAuOTcyOTczIiwgXAotICAgICAgICAgICIwLjA0ODgyOSwgMC4xODk5MzUsIDAuMzM1NDY4LCAwLjQ0MDQ1LCAwLjYxMDQwNywgMC43NTg2MDMsIDAuOTcwOTA1IiwgXAotICAgICAgICAgICIwLjA0ODYyMiwgMC4xODk5LCAwLjMzNTQ1LCAwLjQ0MDQwNiwgMC42MTAzMzMsIDAuNzU4NTM0LCAwLjk3MDg5OCIsIFwKLSAgICAgICAgICAiMC4wNDg1ODYsIDAuMTg5ODk3LCAwLjMzNTE2OCwgMC40NDAzOTksIDAuNjEwMzcyLCAwLjc1ODQ2MSwgMC45NzExNzkiLCBcCi0gICAgICAgICAgIjAuMDQ4ODk0LCAwLjE5MDA2MywgMC4zMzU1NTksIDAuNDQwNDU5LCAwLjYxMDQyMywgMC43NTk1MzQsIDAuOTcyMzI2IiwgXAotICAgICAgICAgICIwLjA1MDEwNywgMC4xOTA0NTcsIDAuMzM1NjksIDAuNDQwNjQ2LCAwLjYxMDQwOCwgMC43NTk0NjIsIDAuOTcxMzQ3Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTA4Mjc2LCAwLjE5NDc1MywgMC4yNjk1MjMsIDAuMzIyMzEsIDAuNDA2NTczLCAwLjQ4MDI4NywgMC41ODU1NTIiLCBcCi0gICAgICAgICAgIjAuMTE2MzI5LCAwLjIwMjc0NSwgMC4yNzc1MTMsIDAuMzMwMjk3LCAwLjQxNDU4NCwgMC40ODgyNDMsIDAuNTkzNDQ4IiwgXAotICAgICAgICAgICIwLjEyNjU1MywgMC4yMTI5OTUsIDAuMjg3NzY4LCAwLjM0MDU1NSwgMC40MjQ4NDYsIDAuNDk4NDk5LCAwLjYwMzcwNiIsIFwKLSAgICAgICAgICAiMC4xMzc2MjksIDAuMjIzOTQzLCAwLjI5ODcyMSwgMC4zNTE1MTUsIDAuNDM1NzgyLCAwLjUwOTQ2NCwgMC42MTQ2NTQiLCBcCi0gICAgICAgICAgIjAuMTQ4NTgxLCAwLjIzNDg1NSwgMC4zMDk2MzIsIDAuMzYyNDQsIDAuNDQ2NzA5LCAwLjUyMDM3NiwgMC42MjU2IiwgXAotICAgICAgICAgICIwLjE2NTY0NywgMC4yNTE5NDMsIDAuMzI2NzE2LCAwLjM3OTUwNywgMC40NjM3NzcsIDAuNTM3NDcsIDAuNjQyNjYyIiwgXAotICAgICAgICAgICIwLjE3OTg4MywgMC4yNjY2NTEsIDAuMzQxNDE0LCAwLjM5NDIwOCwgMC40Nzg0NzYsIDAuNTUyMTU3LCAwLjY1NzM3NiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1MDA3NiwgMC4xOTE1ODIsIDAuMzM2MDQyLCAwLjQ0MDg3NiwgMC42MTAyNTIsIDAuNzU4ODU2LCAwLjk2OTA0MSIsIFwKLSAgICAgICAgICAiMC4wNDk5ODcsIDAuMTkxNDQyLCAwLjMzNjA2MiwgMC40NDEyNDUsIDAuNjEwMjIzLCAwLjc1ODYwMywgMC45Njk3NCIsIFwKLSAgICAgICAgICAiMC4wNDk5ODUsIDAuMTkxNTU3LCAwLjMzNjAzLCAwLjQ0MTAwNiwgMC42MTAzMTUsIDAuNzU4NjQsIDAuOTY5NzM5IiwgXAotICAgICAgICAgICIwLjA0OTgzMywgMC4xOTE1NTEsIDAuMzM2MDI2LCAwLjQ0MTAwNywgMC42MTAyMiwgMC43NTg2NTIsIDAuOTcwODg3IiwgXAotICAgICAgICAgICIwLjA0OTg0NiwgMC4xOTE1MjMsIDAuMzM2MDY2LCAwLjQ0MDk2OSwgMC42MTAyMiwgMC43NTg2MTksIDAuOTcwMDAyIiwgXAotICAgICAgICAgICIwLjA1MDU4MiwgMC4xOTIwMDUsIDAuMzM2MjQ2LCAwLjQ0MTE5MywgMC42MTAyODksIDAuNzU4NzU3LCAwLjk2OTcyOCIsIFwKLSAgICAgICAgICAiMC4wNTE2ODIsIDAuMTkyMDgyLCAwLjMzNjI4NywgMC40NDA2NDksIDAuNjEwMzA1LCAwLjc1NzUzOSwgMC45NzE0MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0kiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTUzMzQyLCAwLjIyODk4OSwgMC4zMDEyOTYsIDAuMzUzMDM5LCAwLjQzNTc3NywgMC41MDgyNjksIDAuNjExNjU1IiwgXAotICAgICAgICAgICIwLjE2MjY1NSwgMC4yMzgyOTQsIDAuMzEwNjAzLCAwLjM2MjM0MiwgMC40NDUwODMsIDAuNTE3NTc1LCAwLjYyMDk2MSIsIFwKLSAgICAgICAgICAiMC4xNzQ1MzYsIDAuMjUwMTcsIDAuMzIyNDY5LCAwLjM3NDIxNiwgMC40NTY5NDgsIDAuNTI5NDM2LCAwLjYzMjgyMiIsIFwKLSAgICAgICAgICAiMC4xODYzNDksIDAuMjYxODM0LCAwLjMzNDE2OSwgMC4zODU4NTksIDAuNDY4NjIsIDAuNTQxMDM3LCAwLjY0NDU3NyIsIFwKLSAgICAgICAgICAiMC4xOTgwNzIsIDAuMjczNjAyLCAwLjM0NTkyOCwgMC4zOTc2MjgsIDAuNDgwNDY5LCAwLjU1MjgzLCAwLjY1NjI5MyIsIFwKLSAgICAgICAgICAiMC4yMTU4MjgsIDAuMjkxMjI3LCAwLjM2MzUyLCAwLjQxNTIyNSwgMC40OTc5ODQsIDAuNTcwNDg2LCAwLjY3MzkxNiIsIFwKLSAgICAgICAgICAiMC4yMzAwNzksIDAuMzA1NDExLCAwLjM3NzcxOSwgMC40Mjk0MTEsIDAuNTEyMTYzLCAwLjU4NDY3LCAwLjY4ODA0MyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0Mjc5LCAwLjE4Mzk3OCwgMC4zMzA2NCwgMC40MzcxMzgsIDAuNjA2ODMsIDAuNzU3MDA3LCAwLjk3MDMzNyIsIFwKLSAgICAgICAgICAiMC4wNDI3NzIsIDAuMTgzOTc2LCAwLjMzMDY0NSwgMC40MzcxMzcsIDAuNjA2ODMyLCAwLjc1NzAwOCwgMC45NzAzMzYiLCBcCi0gICAgICAgICAgIjAuMDQyNzUzLCAwLjE4Mzk1NywgMC4zMzA2MzcsIDAuNDM3MTMzLCAwLjYwNjk3LCAwLjc1NzAwMSwgMC45NzAzMzQiLCBcCi0gICAgICAgICAgIjAuMDQyNjk3LCAwLjE4Mzk3OCwgMC4zMzA5LCAwLjQzNjc5MywgMC42MDc1MDUsIDAuNzU2ODIsIDAuOTcwMjQ0IiwgXAotICAgICAgICAgICIwLjA0Mjc0NSwgMC4xODM5NTIsIDAuMzMwNjI2LCAwLjQzNjk2MywgMC42MDczMywgMC43NTY2ODcsIDAuOTcwMzU1IiwgXAotICAgICAgICAgICIwLjA0Mjc3NiwgMC4xODM5ODEsIDAuMzMwNjU4LCAwLjQzNjkxNiwgMC42MDc0OTYsIDAuNzU2ODM4LCAwLjk3MDM2NyIsIFwKLSAgICAgICAgICAiMC4wNDI4MjcsIDAuMTgzOTU3LCAwLjMzMDcxMSwgMC40MzY5NDksIDAuNjA3MzA0LCAwLjc1NTU4NywgMC45NzAzNSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE1MTk5NiwgMC4yMjk1NCwgMC4zMDMwNTMsIDAuMzU1NTU3LCAwLjQzOTU3NSwgMC41MTMxNDYsIDAuNjE4MTYiLCBcCi0gICAgICAgICAgIjAuMTYxMjk3LCAwLjIzODk0NiwgMC4zMTI0NzgsIDAuMzY0OTcxLCAwLjQ0ODk5LCAwLjUyMjU1MSwgMC42Mjc2NjQiLCBcCi0gICAgICAgICAgIjAuMTcyODMyLCAwLjI1MDQyOSwgMC4zMjM5NDEsIDAuMzc2NDQ4LCAwLjQ2MDQ2MiwgMC41MzM5OTYsIDAuNjM5MDk0IiwgXAotICAgICAgICAgICIwLjE4NDU1OCwgMC4yNjIxODYsIDAuMzM1NzEzLCAwLjM4ODIwMiwgMC40NzIyMjksIDAuNTQ1Nzk3LCAwLjY1MDg3NiIsIFwKLSAgICAgICAgICAiMC4xOTYzNjUsIDAuMjczOSwgMC4zNDc0MTgsIDAuMzk5OTMzLCAwLjQ4Mzk0MSwgMC41NTc1MzEsIDAuNjYyNjEyIiwgXAotICAgICAgICAgICIwLjIxNDU4MywgMC4yOTE5ODIsIDAuMzY1NjYsIDAuNDE4MTQ5LCAwLjUwMjE2NCwgMC41NzU3MDUsIDAuNjgwNjcxIiwgXAotICAgICAgICAgICIwLjIyOTUsIDAuMzA2Nzc1LCAwLjM4MDI3MSwgMC40MzI3NTcsIDAuNTE2Nzc5LCAwLjU5MDM2MSwgMC42OTU0OTUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDI4NzcsIDAuMTg0NDE5LCAwLjMzMDUzNCwgMC40MzU4MzEsIDAuNjA1NDExLCAwLjc1NDQ2OCwgMC45Njc0NDUiLCBcCi0gICAgICAgICAgIjAuMDQyODQ3LCAwLjE4NDQzOSwgMC4zMzA0OTksIDAuNDM1NzgsIDAuNjA1NDQ1LCAwLjc1Mzg2NSwgMC45NjczODYiLCBcCi0gICAgICAgICAgIjAuMDQyODIyLCAwLjE4NDQyNywgMC4zMzA1MTEsIDAuNDM1OTQ5LCAwLjYwNTQxOSwgMC43NTQyOTgsIDAuOTY3MzU1IiwgXAotICAgICAgICAgICIwLjA0Mjg3MSwgMC4xODQ0NCwgMC4zMzA1MywgMC40MzU4MjIsIDAuNjA1Mzk2LCAwLjc1Mzc5OCwgMC45NjczNzciLCBcCi0gICAgICAgICAgIjAuMDQyOTAzLCAwLjE4NDQyMywgMC4zMzA1MTIsIDAuNDM1OTUsIDAuNjA1NDE0LCAwLjc1NDMzMSwgMC45NjczNSIsIFwKLSAgICAgICAgICAiMC4wNDI5MjUsIDAuMTg0NDY3LCAwLjMzMDUyNSwgMC40MzU5NzUsIDAuNjA1MzUsIDAuNzU0MzM2LCAwLjk2NzI3NyIsIFwKLSAgICAgICAgICAiMC4wNDI5NDUsIDAuMTg0NDEzLCAwLjMzMDUwNywgMC40MzU3NzcsIDAuNjA1MzUyLCAwLjc1MzgwNywgMC45NjcyNzYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNzU0NSwgMC4wMDc3NTEsIDAuMDA3Nzk3LCAwLjAwNzgxMiwgMC4wMDc4MjYsIDAuMDA3ODMzLCAwLjAwNzgzOSIsIFwKLSAgICAgICAgICAiMC4wMDc1MzEsIDAuMDA3NzM3LCAwLjAwNzc4MywgMC4wMDc3OTgsIDAuMDA3ODEyLCAwLjAwNzgxOSwgMC4wMDc4MjYiLCBcCi0gICAgICAgICAgIjAuMDA3NTIyLCAwLjAwNzcyNiwgMC4wMDc3NzMsIDAuMDA3Nzg5LCAwLjAwNzgwMywgMC4wMDc4MTEsIDAuMDA3ODE4IiwgXAotICAgICAgICAgICIwLjAwNzUxNCwgMC4wMDc3MTcsIDAuMDA3NzY1LCAwLjAwNzc4MSwgMC4wMDc3OTYsIDAuMDA3ODA1LCAwLjAwNzgxMSIsIFwKLSAgICAgICAgICAiMC4wMDc1MTMsIDAuMDA3NzEsIDAuMDA3NzU5LCAwLjAwNzc3NiwgMC4wMDc3OTIsIDAuMDA3OCwgMC4wMDc4MDkiLCBcCi0gICAgICAgICAgIjAuMDA3NTIsIDAuMDA3Njk5LCAwLjAwNzc1MSwgMC4wMDc3NjksIDAuMDA3Nzg2LCAwLjAwNzc5NSwgMC4wMDc4MDMiLCBcCi0gICAgICAgICAgIjAuMDA3NTIzLCAwLjAwNzY5NiwgMC4wMDc3NDcsIDAuMDA3NzY4LCAwLjAwNzc4NiwgMC4wMDc3OTUsIDAuMDA3ODAzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDUxMDcsIDAuMDA1MzA4LCAwLjAwNTM1MiwgMC4wMDUzNjcsIDAuMDA1MzgxLCAwLjAwNTM4OCwgMC4wMDUzOTUiLCBcCi0gICAgICAgICAgIjAuMDA1MDcsIDAuMDA1Mjc1LCAwLjAwNTMyLCAwLjAwNTMzNiwgMC4wMDUzNTEsIDAuMDA1MzU2LCAwLjAwNTM2NCIsIFwKLSAgICAgICAgICAiMC4wMDUwNTIsIDAuMDA1MjU4LCAwLjAwNTMwNiwgMC4wMDUzMiwgMC4wMDUzMzUsIDAuMDA1MzQyLCAwLjAwNTM1IiwgXAotICAgICAgICAgICIwLjAwNTA0NywgMC4wMDUyNDgsIDAuMDA1Mjk1LCAwLjAwNTMxMiwgMC4wMDUzMjcsIDAuMDA1MzM0LCAwLjAwNTM0MSIsIFwKLSAgICAgICAgICAiMC4wMDUwNDEsIDAuMDA1MjM4LCAwLjAwNTI4NywgMC4wMDUzMDQsIDAuMDA1MzIsIDAuMDA1MzI4LCAwLjAwNTMzNSIsIFwKLSAgICAgICAgICAiMC4wMDUwNDksIDAuMDA1MjMsIDAuMDA1MjgxLCAwLjAwNTI5OCwgMC4wMDUzMTUsIDAuMDA1MzI0LCAwLjAwNTMzMiIsIFwKLSAgICAgICAgICAiMC4wMDUwNTQsIDAuMDA1MjI0LCAwLjAwNTI3NiwgMC4wMDUyOTQsIDAuMDA1MzEyLCAwLjAwNTMyMiwgMC4wMDUzMzEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNzQxNSwgMC4wMDc2MTcsIDAuMDA3NjYyLCAwLjAwNzY3NiwgMC4wMDc2OTEsIDAuMDA3Njk4LCAwLjAwNzcwNCIsIFwKLSAgICAgICAgICAiMC4wMDc0MDEsIDAuMDA3NjA0LCAwLjAwNzY0OSwgMC4wMDc2NjQsIDAuMDA3Njc4LCAwLjAwNzY4NSwgMC4wMDc2OTIiLCBcCi0gICAgICAgICAgIjAuMDA3MzczLCAwLjAwNzU4LCAwLjAwNzYyNiwgMC4wMDc2NDIsIDAuMDA3NjU2LCAwLjAwNzY2NCwgMC4wMDc2NzEiLCBcCi0gICAgICAgICAgIjAuMDA3MzU2LCAwLjAwNzU1NywgMC4wMDc2MDYsIDAuMDA3NjIsIDAuMDA3NjM3LCAwLjAwNzY0MywgMC4wMDc2NTEiLCBcCi0gICAgICAgICAgIjAuMDA3MzM5LCAwLjAwNzUzNywgMC4wMDc1ODcsIDAuMDA3NjA0LCAwLjAwNzYxOCwgMC4wMDc2MjcsIDAuMDA3NjM0IiwgXAotICAgICAgICAgICIwLjAwNzM0MSwgMC4wMDc1MjEsIDAuMDA3NTcyLCAwLjAwNzU4OCwgMC4wMDc2MDUsIDAuMDA3NjE0LCAwLjAwNzYyMiIsIFwKLSAgICAgICAgICAiMC4wMDczMzksIDAuMDA3NTEsIDAuMDA3NTYxLCAwLjAwNzU3OSwgMC4wMDc1OTUsIDAuMDA3NjA0LCAwLjAwNzYxMyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1MzE2LCAwLjAwNTUxOSwgMC4wMDU1NjMsIDAuMDA1NTc3LCAwLjAwNTU5LCAwLjAwNTU5NywgMC4wMDU2MDMiLCBcCi0gICAgICAgICAgIjAuMDA1MjgzLCAwLjAwNTQ4OCwgMC4wMDU1MzIsIDAuMDA1NTQ3LCAwLjAwNTU2MiwgMC4wMDU1NjcsIDAuMDA1NTczIiwgXAotICAgICAgICAgICIwLjAwNTI0OCwgMC4wMDU0NTUsIDAuMDA1NTAxLCAwLjAwNTUxNywgMC4wMDU1MzEsIDAuMDA1NTM4LCAwLjAwNTU0NCIsIFwKLSAgICAgICAgICAiMC4wMDUyMzUsIDAuMDA1NDM1LCAwLjAwNTQ4LCAwLjAwNTUsIDAuMDA1NTE0LCAwLjAwNTUxOSwgMC4wMDU1MjYiLCBcCi0gICAgICAgICAgIjAuMDA1MjM0LCAwLjAwNTQyMiwgMC4wMDU0NywgMC4wMDU0ODYsIDAuMDA1NTAzLCAwLjAwNTUxMSwgMC4wMDU1MTgiLCBcCi0gICAgICAgICAgIjAuMDA1MjU0LCAwLjAwNTQxNCwgMC4wMDU0NjMsIDAuMDA1NDgxLCAwLjAwNTQ5OCwgMC4wMDU1MDYsIDAuMDA1NTE0IiwgXAotICAgICAgICAgICIwLjAwNTIzNSwgMC4wMDU0MDYsIDAuMDA1NDU5LCAwLjAwNTQ3OCwgMC4wMDU0OTcsIDAuMDA1NTA1LCAwLjAwNTUxMyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNJIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNzA1OCwgMC4wMDcyNTMsIDAuMDA3Mjk5LCAwLjAwNzMxMywgMC4wMDczMjgsIDAuMDA3MzM0LCAwLjAwNzM0MiIsIFwKLSAgICAgICAgICAiMC4wMDcwNTksIDAuMDA3MjUzLCAwLjAwNzI5OSwgMC4wMDczMTUsIDAuMDA3MzI4LCAwLjAwNzMzNSwgMC4wMDczNDIiLCBcCi0gICAgICAgICAgIjAuMDA3MDU1LCAwLjAwNzI0OSwgMC4wMDcyOTcsIDAuMDA3MzE0LCAwLjAwNzMyOSwgMC4wMDczMzksIDAuMDA3MzQ2IiwgXAotICAgICAgICAgICIwLjAwNzA2MiwgMC4wMDcyNDgsIDAuMDA3Mjk4LCAwLjAwNzMxNiwgMC4wMDczMzMsIDAuMDA3MzQyLCAwLjAwNzM1IiwgXAotICAgICAgICAgICIwLjAwNzA2MiwgMC4wMDcyNDQsIDAuMDA3Mjk2LCAwLjAwNzMxNSwgMC4wMDczMzIsIDAuMDA3MzQzLCAwLjAwNzM1MSIsIFwKLSAgICAgICAgICAiMC4wMDcwNzYsIDAuMDA3MjQ2LCAwLjAwNzMsIDAuMDA3MzIsIDAuMDA3MzM4LCAwLjAwNzM0OSwgMC4wMDczNTgiLCBcCi0gICAgICAgICAgIjAuMDA3MDk5LCAwLjAwNzI1MiwgMC4wMDczMDYsIDAuMDA3MzI2LCAwLjAwNzM0NiwgMC4wMDczNTYsIDAuMDA3MzY4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDUzMjEsIDAuMDA1NTI2LCAwLjAwNTU3MSwgMC4wMDU1ODQsIDAuMDA1NTk5LCAwLjAwNTYwNiwgMC4wMDU2MTMiLCBcCi0gICAgICAgICAgIjAuMDA1MzA4LCAwLjAwNTUxNCwgMC4wMDU1NTgsIDAuMDA1NTc2LCAwLjAwNTU4OCwgMC4wMDU1OTYsIDAuMDA1NjAzIiwgXAotICAgICAgICAgICIwLjAwNTI4NCwgMC4wMDU0ODcsIDAuMDA1NTM2LCAwLjAwNTU1MywgMC4wMDU1NjYsIDAuMDA1NTczLCAwLjAwNTU4MSIsIFwKLSAgICAgICAgICAiMC4wMDUyNzYsIDAuMDA1NDY5LCAwLjAwNTUxNywgMC4wMDU1MzMsIDAuMDA1NTUsIDAuMDA1NTU4LCAwLjAwNTU2NCIsIFwKLSAgICAgICAgICAiMC4wMDUyNTcsIDAuMDA1NDUsIDAuMDA1NSwgMC4wMDU1MTgsIDAuMDA1NTM0LCAwLjAwNTU0MywgMC4wMDU1NTEiLCBcCi0gICAgICAgICAgIjAuMDA1MjYxLCAwLjAwNTQ0MSwgMC4wMDU0OTMsIDAuMDA1NTEyLCAwLjAwNTUyOSwgMC4wMDU1MzksIDAuMDA1NTQ4IiwgXAotICAgICAgICAgICIwLjAwNTI3OCwgMC4wMDU0NDIsIDAuMDA1NDk1LCAwLjAwNTUxNCwgMC4wMDU1MzIsIDAuMDA1NTQyLCAwLjAwNTU1MSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogQURESFgxICoKLSAqIC0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoQURESFgxKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMjE2MjI4OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDEzNDYzODsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDEzNDYzODsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDEzNDU0MTsKLSAgfQotICBwaW4oQikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNjY4NTI7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNjU1MDE7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNjY4NTI7Ci0gIH0KLSAgcGluKENPKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMjYxMjkyOwotICAgIGZ1bmN0aW9uIDogIihBIEIpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODc0OSwgMC4xMTIxMTgsIDAuMjUxNTg2LCAwLjM3NDAzMiwgMC41Mzc5MSwgMC44NjQ2NjIsIDEuMDY5MTkiLCBcCi0gICAgICAgICAgIjAuMDk2MTMxLCAwLjEyMDc5NywgMC4yNjAxNTIsIDAuMzgyNjk1LCAwLjU0NjYxNSwgMC44NzMzODcsIDEuMDc3OTEiLCBcCi0gICAgICAgICAgIjAuMTA2NzYyLCAwLjEzMTQ3LCAwLjI3MDg3NSwgMC4zOTM5OTQsIDAuNTU3Mjc1LCAwLjg4NDAyOCwgMS4wODg1MiIsIFwKLSAgICAgICAgICAiMC4xMTY4NDIsIDAuMTQxNTUsIDAuMjgwOTY4LCAwLjQwNDA2NSwgMC41NjczNzgsIDAuODk0MTQxLCAxLjA5ODYyIiwgXAotICAgICAgICAgICIwLjEyNjExMywgMC4xNTA4MjgsIDAuMjkwMTc1LCAwLjQxMzEyOCwgMC41NzYzMzcsIDAuOTAzOTUsIDEuMTA3OTciLCBcCi0gICAgICAgICAgIjAuMTM5MjAxLCAwLjE2Mzk2NywgMC4zMDMyNjUsIDAuNDI2MTQyLCAwLjU4OTcyNCwgMC45MTY1NzgsIDEuMTIxNDkiLCBcCi0gICAgICAgICAgIjAuMTQ5Mzg5LCAwLjE3NDE3MywgMC4zMTM4NjEsIDAuNDM2MjcsIDAuNTk5NzI4LCAwLjkyNjgsIDEuMTMxNzMiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk1MDg1LCAwLjE0NTI5OCwgMC40Mjc5ODIsIDAuNjgwNTU2LCAxLjAxODA3LCAxLjY5MDQ3LCAyLjExMTc4IiwgXAotICAgICAgICAgICIwLjA5NDgxOCwgMC4xNDUzODIsIDAuNDI4NTMsIDAuNjgwMjQsIDEuMDE4MDMsIDEuNjkwNywgMi4xMTE1OCIsIFwKLSAgICAgICAgICAiMC4wOTQzNjQsIDAuMTQ1NDM1LCAwLjQyNzg5OSwgMC42Nzk4OTMsIDEuMDE4MDksIDEuNjkwOCwgMi4xMTE3IiwgXAotICAgICAgICAgICIwLjA5NDcyLCAwLjE0NTUxNSwgMC40Mjc5NDYsIDAuNjgxNDUsIDEuMDE4MDUsIDEuNjkwOCwgMi4xMTE3MSIsIFwKLSAgICAgICAgICAiMC4wOTU0OTgsIDAuMTQ1NzU3LCAwLjQyNzg5OCwgMC42ODEzNjYsIDEuMDE3MDUsIDEuNjkyMzcsIDIuMTExMTMiLCBcCi0gICAgICAgICAgIjAuMDk2NjI1LCAwLjE0NjE3NywgMC40MjgwOTMsIDAuNjgxMjIyLCAxLjAxNzk1LCAxLjY5MDU2LCAyLjExMzc2IiwgXAotICAgICAgICAgICIwLjA5NzE2OCwgMC4xNDY1OTEsIDAuNDI4OTQsIDAuNjgwMzI2LCAxLjAxNywgMS42OTA2MywgMi4xMTM4MyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzE2NzMsIDAuMDk2NDkyLCAwLjIzNzM5NSwgMC4zNjAzMSwgMC41MjU3MTIsIDAuODU1MTA4LCAxLjA2MTI5IiwgXAotICAgICAgICAgICIwLjA4MTUwMiwgMC4xMDYzMDQsIDAuMjQ3MTMzLCAwLjM3MDY3NiwgMC41MzYwODIsIDAuODY1MDA4LCAxLjA3MTEyIiwgXAotICAgICAgICAgICIwLjA5MzM2MSwgMC4xMTgxNzUsIDAuMjU4OSwgMC4zODIyMDYsIDAuNTQ3MjA2LCAwLjg3NjkyNywgMS4wODMwOCIsIFwKLSAgICAgICAgICAiMC4xMDM2OTIsIDAuMTI4NTM5LCAwLjI2OTQ4MiwgMC4zOTI2NDksIDAuNTU3NDIxLCAwLjg4NzI1LCAxLjA5MzM3IiwgXAotICAgICAgICAgICIwLjExMjM5NiwgMC4xMzcxODgsIDAuMjc4MDAzLCAwLjQwMTYyLCAwLjU2NjA4OCwgMC44OTU4ODcsIDEuMTAyMDgiLCBcCi0gICAgICAgICAgIjAuMTI0MjYzLCAwLjE0OTEyMSwgMC4yODk3NDcsIDAuNDEzNDQzLCAwLjU3ODA3NywgMC45MDc4MTIsIDEuMTE0MjciLCBcCi0gICAgICAgICAgIjAuMTMzMDcyLCAwLjE1Nzk1MiwgMC4yOTg2ODIsIDAuNDIyNDgsIDAuNTg2ODMsIDAuOTE3MjQ0LCAxLjEyMjg4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5MDg5NiwgMC4xNDAyNSwgMC40MjI5NywgMC42NzA4NzYsIDEuMDAyODgsIDEuNjY1MTksIDIuMDgyMjIiLCBcCi0gICAgICAgICAgIjAuMDkwNzc3LCAwLjE0MDk5LCAwLjQyMzA1MiwgMC42NzExMSwgMS4wMDQyOSwgMS42NjcxMSwgMi4wODIyNiIsIFwKLSAgICAgICAgICAiMC4wOTExNywgMC4xNDA1MTIsIDAuNDIzNTU1LCAwLjY3MTcxNiwgMS4wMDMyNSwgMS42NjY4NywgMi4wODE2NyIsIFwKLSAgICAgICAgICAiMC4wOTE2MjQsIDAuMTQxNDAxLCAwLjQyMjc3NywgMC42NzE0NDUsIDEuMDAyOTYsIDEuNjY3MjYsIDIuMDgyMTMiLCBcCi0gICAgICAgICAgIjAuMDkxOTc2LCAwLjE0MTUxNSwgMC40MjIyOTYsIDAuNjcwNzQ1LCAxLjAwMjY5LCAxLjY2NjMxLCAyLjA4MTkyIiwgXAotICAgICAgICAgICIwLjA5Mjc4NCwgMC4xNDEzNjIsIDAuNDIyOTY3LCAwLjY3MDkwNSwgMS4wMDI0NCwgMS42NjcxNSwgMi4wODQyNCIsIFwKLSAgICAgICAgICAiMC4wOTI5NjMsIDAuMTQyNDcyLCAwLjQyMzI1MSwgMC42NzEzMTQsIDEuMDAzMTksIDEuNjY5MDQsIDIuMDgxMjIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg0OTY1LCAwLjEwOTYwMywgMC4yNDkwNDcsIDAuMzcxODQ0LCAwLjUzNTQxNSwgMC44NjIxOTEsIDEuMDY2NjMiLCBcCi0gICAgICAgICAgIjAuMDk0MDE1LCAwLjExODY0NywgMC4yNTgwMjIsIDAuMzgwOTYyLCAwLjU0NDY1NywgMC44NzE0MDEsIDEuMDc1NzciLCBcCi0gICAgICAgICAgIjAuMTA1NzYxLCAwLjEzMDQxLCAwLjI2OTkyNSwgMC4zOTI4OSwgMC41NTU5OTEsIDAuODgzMDY0LCAxLjA4ODA3IiwgXAotICAgICAgICAgICIwLjExNjk4NiwgMC4xNDE2NTQsIDAuMjgwOTUyLCAwLjQwMzkyMywgMC41NjcwNTksIDAuODk1MDAzLCAxLjA5ODc0IiwgXAotICAgICAgICAgICIwLjEyNzAzNSwgMC4xNTE3MzIsIDAuMjkwODg5LCAwLjQxMzkzOSwgMC41Nzc1NywgMC45MDQxOSwgMS4xMDg4NiIsIFwKLSAgICAgICAgICAiMC4xNDExNDIsIDAuMTY1OTU3LCAwLjMwNTIxOCwgMC40Mjc3NjEsIDAuNTkxNzI0LCAwLjkxODQ2MSwgMS4xMjMzMyIsIFwKLSAgICAgICAgICAiMC4xNTE1NzQsIDAuMTc2Mzg2LCAwLjMxNTQ4MywgMC40MzgyNzcsIDAuNjAyMDU1LCAwLjkyODgzMSwgMS4xMzM5MyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTU1MjUsIDAuMTQ0OTk4LCAwLjQyODAxMiwgMC42ODEzMDksIDEuMDE4MiwgMS42OTA4NiwgMi4xMTE3MyIsIFwKLSAgICAgICAgICAiMC4wOTUzNTEsIDAuMTQ1MTI2LCAwLjQyODA5MywgMC42ODEzMTksIDEuMDE4MiwgMS42OTAyMywgMi4xMTE2NiIsIFwKLSAgICAgICAgICAiMC4wOTU0NjgsIDAuMTQ1MTQ1LCAwLjQyODY3NywgMC42ODEzNTQsIDEuMDE3MDIsIDEuNjkwNjgsIDIuMTE0MDkiLCBcCi0gICAgICAgICAgIjAuMDk1ODYzLCAwLjE0NDk3OCwgMC40MjgxNjgsIDAuNjgxMjQ2LCAxLjAxNjc0LCAxLjY5MjY4LCAyLjExMTc5IiwgXAotICAgICAgICAgICIwLjA5NjQ4NiwgMC4xNDUwMjIsIDAuNDI4MjE0LCAwLjY4MTAxNCwgMS4wMTgxMSwgMS42ODkzMSwgMi4xMTA5NiIsIFwKLSAgICAgICAgICAiMC4wOTc0OTIsIDAuMTQ1MzgsIDAuNDI4Njc0LCAwLjY4MDIwNiwgMS4wMTY1LCAxLjY5MDgsIDIuMTEzOTMiLCBcCi0gICAgICAgICAgIjAuMDk4MzYxLCAwLjE0NTc4NCwgMC40Mjg0NCwgMC42ODAyMzYsIDEuMDE4MDEsIDEuNjg5OTIsIDIuMTE0MTkiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY5OTU2LCAwLjA5NDc1OSwgMC4yMzUxMjYsIDAuMzU4NzUzLCAwLjUyMzg3NCwgMC44NTM5NDYsIDEuMDYwMDkiLCBcCi0gICAgICAgICAgIjAuMDc5NzYyLCAwLjEwNDUzNiwgMC4yNDQ5OCwgMC4zNjg1NzYsIDAuNTMzNTQ5LCAwLjg2Mzc2NiwgMS4wNjk5OSIsIFwKLSAgICAgICAgICAiMC4wOTEyOTUsIDAuMTE2MDUsIDAuMjU2MzgzLCAwLjM3OTkzMywgMC41NDUxOTEsIDAuODc1NjQ1LCAxLjA4MTI0IiwgXAotICAgICAgICAgICIwLjEwMDgzMSwgMC4xMjU2NTgsIDAuMjY2MTQ0LCAwLjM4OTY1LCAwLjU1NTI0LCAwLjg4NDc4NSwgMS4wOTExMyIsIFwKLSAgICAgICAgICAiMC4xMDkwMTYsIDAuMTMzODU4LCAwLjI3NDQ1OSwgMC4zOTc5NDYsIDAuNTYyOTI4LCAwLjg5MzMxMywgMS4wOTg5NSIsIFwKLSAgICAgICAgICAiMC4xMjAzMDMsIDAuMTQ1MTU0LCAwLjI4NTczNSwgMC40MDkyMDQsIDAuNTc0MjQ1LCAwLjkwNDEyNiwgMS4xMTA1OCIsIFwKLSAgICAgICAgICAiMC4xMjg2MDcsIDAuMTUzNDc0LCAwLjI5NDAxLCAwLjQxNzg0MSwgMC41ODI5MjksIDAuOTEyNTcxLCAxLjExODkyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5MTE2NCwgMC4xNDA1NjIsIDAuNDIxMzM5LCAwLjY3MDIwOCwgMS4wMDQwNSwgMS42NjQ3NCwgMi4wNzkxMyIsIFwKLSAgICAgICAgICAiMC4wOTA4NDIsIDAuMTQwNzQyLCAwLjQyMTM4MiwgMC42NzAyMjgsIDEuMDAzMDYsIDEuNjY0OTksIDIuMDc4NTMiLCBcCi0gICAgICAgICAgIjAuMDkxMTQsIDAuMTQwODc5LCAwLjQyMTg5MSwgMC42NzAwMzUsIDEuMDAyMDIsIDEuNjY2MDMsIDIuMDgxNzMiLCBcCi0gICAgICAgICAgIjAuMDkxNzg2LCAwLjE0MTEzNiwgMC40MjE2NDUsIDAuNjcwMjc1LCAxLjAwMjU3LCAxLjY2OTI2LCAyLjA3ODY1IiwgXAotICAgICAgICAgICIwLjA5MTI2OSwgMC4xNDE1MDcsIDAuNDIyMjM3LCAwLjY3MTU1OSwgMS4wMDIxMywgMS42NjYyLCAyLjA4MTQ4IiwgXAotICAgICAgICAgICIwLjA5MjQ2MywgMC4xNDE4MzcsIDAuNDIxODAyLCAwLjY3MDQ4NywgMS4wMDIwNiwgMS42Njg1MiwgMi4wNzkxNCIsIFwKLSAgICAgICAgICAiMC4wOTMxNDcsIDAuMTQyNTI5LCAwLjQyMjIzNSwgMC42NzE0NTYsIDEuMDAxMTksIDEuNjY4NCwgMi4wNzg5OCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjE1MywgMC4wMDIxNTcsIDAuMDAyMTYzLCAwLjAwMjE2NCwgMC4wMDIxNjQsIDAuMDAyMTY0LCAwLjAwMjE2NSIsIFwKLSAgICAgICAgICAiMC4wMDIxMjMsIDAuMDAyMTI4LCAwLjAwMjEzMywgMC4wMDIxMzUsIDAuMDAyMTM2LCAwLjAwMjEzNSwgMC4wMDIxMzciLCBcCi0gICAgICAgICAgIjAuMDAyMTEyLCAwLjAwMjExOCwgMC4wMDIxMjUsIDAuMDAyMTI2LCAwLjAwMjEyNywgMC4wMDIxMjcsIDAuMDAyMTI3IiwgXAotICAgICAgICAgICIwLjAwMjExMSwgMC4wMDIxMTcsIDAuMDAyMTI1LCAwLjAwMjEyNywgMC4wMDIxMjgsIDAuMDAyMTI4LCAwLjAwMjEyOCIsIFwKLSAgICAgICAgICAiMC4wMDIxMTUsIDAuMDAyMTIyLCAwLjAwMjEzLCAwLjAwMjEzMiwgMC4wMDIxMzMsIDAuMDAyMTMzLCAwLjAwMjEzNCIsIFwKLSAgICAgICAgICAiMC4wMDIxMjgsIDAuMDAyMTM1LCAwLjAwMjE0NSwgMC4wMDIxNDYsIDAuMDAyMTQ4LCAwLjAwMjE0OCwgMC4wMDIxNDgiLCBcCi0gICAgICAgICAgIjAuMDAyMTQyLCAwLjAwMjE0OCwgMC4wMDIxNTksIDAuMDAyMTYxLCAwLjAwMjE2MiwgMC4wMDIxNjMsIDAuMDAyMTY0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzMTA0LCAwLjAwMzEwOCwgMC4wMDMxMTIsIDAuMDAzMTEzLCAwLjAwMzExNCwgMC4wMDMxMTQsIDAuMDAzMTE0IiwgXAotICAgICAgICAgICIwLjAwMzA4MSwgMC4wMDMwODYsIDAuMDAzMDkyLCAwLjAwMzA5MywgMC4wMDMwOTQsIDAuMDAzMDk0LCAwLjAwMzA5NCIsIFwKLSAgICAgICAgICAiMC4wMDMwNzcsIDAuMDAzMDgzLCAwLjAwMzA5MSwgMC4wMDMwOTMsIDAuMDAzMDkzLCAwLjAwMzA5NCwgMC4wMDMwOTUiLCBcCi0gICAgICAgICAgIjAuMDAzMDczLCAwLjAwMzA3OSwgMC4wMDMwODksIDAuMDAzMDksIDAuMDAzMDkyLCAwLjAwMzA5MywgMC4wMDMwOTMiLCBcCi0gICAgICAgICAgIjAuMDAzMDc5LCAwLjAwMzA4NiwgMC4wMDMwOTYsIDAuMDAzMDk5LCAwLjAwMzEsIDAuMDAzMTAxLCAwLjAwMzEwMSIsIFwKLSAgICAgICAgICAiMC4wMDMwOTUsIDAuMDAzMTAyLCAwLjAwMzExNCwgMC4wMDMxMTQsIDAuMDAzMTE1LCAwLjAwMzExOSwgMC4wMDMxMTkiLCBcCi0gICAgICAgICAgIjAuMDAzMTExLCAwLjAwMzEyLCAwLjAwMzEzMiwgMC4wMDMxMzMsIDAuMDAzMTM3LCAwLjAwMzEzNiwgMC4wMDMxMzgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDE5MTIsIDAuMDAxOTE5LCAwLjAwMTkyOSwgMC4wMDE5MzEsIDAuMDAxOTMyLCAwLjAwMTkzMywgMC4wMDE5MzMiLCBcCi0gICAgICAgICAgIjAuMDAxODg3LCAwLjAwMTg5NCwgMC4wMDE5MDQsIDAuMDAxOTA3LCAwLjAwMTkwOCwgMC4wMDE5MDksIDAuMDAxOTA5IiwgXAotICAgICAgICAgICIwLjAwMTg4MiwgMC4wMDE4OSwgMC4wMDE5MDIsIDAuMDAxOTA0LCAwLjAwMTkwNSwgMC4wMDE5MDcsIDAuMDAxOTA3IiwgXAotICAgICAgICAgICIwLjAwMTg4NSwgMC4wMDE4OTMsIDAuMDAxOTA2LCAwLjAwMTkwOCwgMC4wMDE5MSwgMC4wMDE5MTEsIDAuMDAxOTExIiwgXAotICAgICAgICAgICIwLjAwMTg5NSwgMC4wMDE5MDQsIDAuMDAxOTE2LCAwLjAwMTkxOSwgMC4wMDE5MjEsIDAuMDAxOTIyLCAwLjAwMTkyMyIsIFwKLSAgICAgICAgICAiMC4wMDE5MTEsIDAuMDAxOTE2LCAwLjAwMTkzLCAwLjAwMTkzMywgMC4wMDE5MzIsIDAuMDAxOTM2LCAwLjAwMTkzNiIsIFwKLSAgICAgICAgICAiMC4wMDE5MzUsIDAuMDAxOTQzLCAwLjAwMTk1NywgMC4wMDE5NiwgMC4wMDE5NjIsIDAuMDAxOTY0LCAwLjAwMTk2NCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzA4NCwgMC4wMDMwOTIsIDAuMDAzMTAyLCAwLjAwMzEwNSwgMC4wMDMxMDYsIDAuMDAzMTA3LCAwLjAwMzEwNyIsIFwKLSAgICAgICAgICAiMC4wMDMwODMsIDAuMDAzMDkyLCAwLjAwMzEwNCwgMC4wMDMxMDcsIDAuMDAzMTA4LCAwLjAwMzExLCAwLjAwMzExIiwgXAotICAgICAgICAgICIwLjAwMzA5OCwgMC4wMDMxMDgsIDAuMDAzMTI0LCAwLjAwMzEyOCwgMC4wMDMxMjksIDAuMDAzMTMxLCAwLjAwMzEzMiIsIFwKLSAgICAgICAgICAiMC4wMDMxMTcsIDAuMDAzMTI3LCAwLjAwMzE0NSwgMC4wMDMxNDksIDAuMDAzMTUxLCAwLjAwMzE1MywgMC4wMDMxNTMiLCBcCi0gICAgICAgICAgIjAuMDAzMTQyLCAwLjAwMzE1MywgMC4wMDMxNzMsIDAuMDAzMTc3LCAwLjAwMzE4LCAwLjAwMzE4MiwgMC4wMDMxODMiLCBcCi0gICAgICAgICAgIjAuMDAzMTY4LCAwLjAwMzE4LCAwLjAwMzIwMSwgMC4wMDMyMDUsIDAuMDAzMjA3LCAwLjAwMzIxMiwgMC4wMDMyMTEiLCBcCi0gICAgICAgICAgIjAuMDAzMjMxLCAwLjAwMzI0MSwgMC4wMDMyNjMsIDAuMDAzMjY5LCAwLjAwMzI3MiwgMC4wMDMyNzUsIDAuMDAzMjc2Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMjU3NjE2OwotICAgIGZ1bmN0aW9uIDogIihBXkIpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTc1ODUsIDAuMTIyMzgsIDAuMjYxNTk2LCAwLjM4NDM2NiwgMC41NDgwNjcsIDAuODc1NDMzLCAxLjA3OTk5IiwgXAotICAgICAgICAgICIwLjEwNzY0NSwgMC4xMzI0MzgsIDAuMjcxNjU0LCAwLjM5NDQxOCwgMC41NTc5NywgMC44ODU3NDYsIDEuMDkwNiIsIFwKLSAgICAgICAgICAiMC4xMjAzMzIsIDAuMTQ1MTMyLCAwLjI4NDM2NSwgMC40MDcxNDEsIDAuNTcwODg3LCAwLjg5ODE4MywgMS4xMDMxMyIsIFwKLSAgICAgICAgICAiMC4xMzI0ODIsIDAuMTU3Mjg4LCAwLjI5NjUzNSwgMC40MTkzMTQsIDAuNTgzMDEyLCAwLjkxMDQwMywgMS4xMTQ5NSIsIFwKLSAgICAgICAgICAiMC4xNDM3OTcsIDAuMTY4NjEyLCAwLjMwNzg0NiwgMC40MzA3NzUsIDAuNTk0MzQ2LCAwLjkyMTgwOCwgMS4xMjYyOSIsIFwKLSAgICAgICAgICAiMC4xNjAxNjEsIDAuMTg1LCAwLjMyNDI0NiwgMC40NDcwMjIsIDAuNjEwODQxLCAwLjkzODE3OCwgMS4xNDI5NSIsIFwKLSAgICAgICAgICAiMC4xNzI5ODksIDAuMTk3ODcxLCAwLjMzNzExMSwgMC40NjAwMTUsIDAuNjIzNjUzLCAwLjk1MTA0NCwgMS4xNTU2OCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTUyMDgsIDAuMTQ0MjUyLCAwLjQyODI0OCwgMC42ODA3MTcsIDEuMDE4NTcsIDEuNjksIDIuMTEwODkiLCBcCi0gICAgICAgICAgIjAuMDk1MjE4LCAwLjE0NDI1MywgMC40MjgzMTQsIDAuNjgxMjksIDEuMDE4NzUsIDEuNjkwNTcsIDIuMTEyMTIiLCBcCi0gICAgICAgICAgIjAuMDk1MjI4LCAwLjE0NDI1NiwgMC40MjgyNDgsIDAuNjgxMzA0LCAxLjAxNzYzLCAxLjY5MDE0LCAyLjExMzE2IiwgXAotICAgICAgICAgICIwLjA5NTMyMiwgMC4xNDQzMDYsIDAuNDI4MjIyLCAwLjY4MDY2NCwgMS4wMTY4NSwgMS42ODk4NywgMi4xMTUyMSIsIFwKLSAgICAgICAgICAiMC4wOTU1ODQsIDAuMTQ0NDY4LCAwLjQyODc3MSwgMC42ODAzNDMsIDEuMDE4NDMsIDEuNjkwNjksIDIuMTEwNzgiLCBcCi0gICAgICAgICAgIjAuMDk2NDA3LCAwLjE0NTAxOSwgMC40Mjg2NTcsIDAuNjgxNTY2LCAxLjAxNzE0LCAxLjY5MDcxLCAyLjExMjg4IiwgXAotICAgICAgICAgICIwLjA5NzMwNSwgMC4xNDU2OTIsIDAuNDI4NDc1LCAwLjY4MDQ1LCAxLjAxNjcsIDEuNjg5ODIsIDIuMTExNjYiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTAwNzMxLCAwLjEyNTg5OCwgMC4yNjYzMTQsIDAuMzkwMDU3LCAwLjU1NTE2MSwgMC44ODUyMjUsIDEuMDkxMzMiLCBcCi0gICAgICAgICAgIjAuMTEwMzQ0LCAwLjEzNTUxOSwgMC4yNzU5NDEsIDAuMzk5Njg3LCAwLjU2NDcyLCAwLjg5NDg2NCwgMS4xMDA5OCIsIFwKLSAgICAgICAgICAiMC4xMjIzNTcsIDAuMTQ3NTQ1LCAwLjI4Nzk5OSwgMC40MTE3NTQsIDAuNTc2Nzg2LCAwLjkwNjc4MSwgMS4xMTMwNCIsIFwKLSAgICAgICAgICAiMC4xMzM2MTksIDAuMTU4Nzk3LCAwLjI5OTI2MSwgMC40MjMwMTUsIDAuNTg4MDk2LCAwLjkxODE0NCwgMS4xMjQzOCIsIFwKLSAgICAgICAgICAiMC4xNDQ1NDIsIDAuMTY5NzMyLCAwLjMxMDE5MiwgMC40MzM5NzEsIDAuNTk5MDA1LCAwLjkyOTIxMSwgMS4xMzU0NiIsIFwKLSAgICAgICAgICAiMC4xNTk0NDQsIDAuMTg0Njk0LCAwLjMyNTE2MiwgMC40NDg5MTMsIDAuNjE0MDQsIDAuOTQ0MDYsIDEuMTUwNCIsIFwKLSAgICAgICAgICAiMC4xNzA4NzEsIDAuMTk2MTgsIDAuMzM2Njc1LCAwLjQ2MDQ0NCwgMC42MjU2NTQsIDAuOTU1Nzk5LCAxLjE2MTgzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5NTAyMSwgMC4xNDMyMzYsIDAuNDIyNzkzLCAwLjY3MjYwOCwgMS4wMDI3NywgMS42Njc0MywgMi4wODA0MyIsIFwKLSAgICAgICAgICAiMC4wOTUwMzEsIDAuMTQzMjQ1LCAwLjQyMjc2MywgMC42NzI2MDYsIDEuMDA0OTgsIDEuNjY3NTcsIDIuMDgwMzQiLCBcCi0gICAgICAgICAgIjAuMDk1MDIsIDAuMTQzMTM2LCAwLjQyMjY4LCAwLjY3MjYxMywgMS4wMDI0MiwgMS42NjU4NSwgMi4wODcxOCIsIFwKLSAgICAgICAgICAiMC4wOTUxNTcsIDAuMTQzMzA3LCAwLjQyMjgxOCwgMC42NzI1ODgsIDEuMDAyMDgsIDEuNjY2NjIsIDIuMDgxNDQiLCBcCi0gICAgICAgICAgIjAuMDk1NDE3LCAwLjE0MzQ3OSwgMC40MjMzNDMsIDAuNjcyNjM5LCAxLjAwMjQxLCAxLjY2Njg4LCAyLjA4MTk2IiwgXAotICAgICAgICAgICIwLjA5NjMyMSwgMC4xNDQwMzMsIDAuNDIzNDc3LCAwLjY3MjU0MywgMS4wMDI4NSwgMS42NjY2NSwgMi4wODIzOCIsIFwKLSAgICAgICAgICAiMC4wOTcwNjUsIDAuMTQ0NzE3LCAwLjQyMzU2OSwgMC42NzEyOTYsIDEuMDAyNzgsIDEuNjY2NDUsIDIuMDgxNTgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTA5NjA0LCAwLjEzNDM3NSwgMC4yNzM3MTcsIDAuMzk2MzI3LCAwLjU2MDEyNywgMC44ODczOTgsIDEuMDkxOTEiLCBcCi0gICAgICAgICAgIjAuMTE5MzQ1LCAwLjE0NDA4OSwgMC4yODM0MTIsIDAuNDA2MTQ4LCAwLjU2OTg5NywgMC44OTcxMDMsIDEuMTAxNjUiLCBcCi0gICAgICAgICAgIjAuMTMwMjY1LCAwLjE1NDk5OCwgMC4yOTQzMjEsIDAuNDE3MDcsIDAuNTgwNzQsIDAuOTA3OTk1LCAxLjExMjUyIiwgXAotICAgICAgICAgICIwLjEzOTI1MSwgMC4xNjM5ODksIDAuMzAzMzQ3LCAwLjQyNjA1OCwgMC41ODk3MzcsIDAuOTE3MDExLCAxLjEyMTU1IiwgXAotICAgICAgICAgICIwLjE0NjU3NSwgMC4xNzEzMSwgMC4zMTA2MzIsIDAuNDMzMzc4LCAwLjU5NzA0NCwgMC45MjQzNjcsIDEuMTI4ODUiLCBcCi0gICAgICAgICAgIjAuMTU2NzAyLCAwLjE4MTQ0NiwgMC4zMjA3NTYsIDAuNDQzNDQ4LCAwLjYwNzEzOSwgMC45MzQ0NjgsIDEuMTM4OTIiLCBcCi0gICAgICAgICAgIjAuMTY0MTU3LCAwLjE4ODkwOSwgMC4zMjgyMzMsIDAuNDUxMDAxLCAwLjYxNDY1LCAwLjk0MTk2MywgMS4xNDY0MiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTQ1NzYsIDAuMTQzODI0LCAwLjQyODE4OCwgMC42ODAyNDksIDEuMDE3NSwgMS42OTA2NywgMi4xMTI1MyIsIFwKLSAgICAgICAgICAiMC4wOTQ1NTMsIDAuMTQzNzk5LCAwLjQyODI5OSwgMC42ODE3NTYsIDEuMDE5MjUsIDEuNjkxMzQsIDIuMTEyNjYiLCBcCi0gICAgICAgICAgIjAuMDk0NTksIDAuMTQzODMsIDAuNDI5MDUzLCAwLjY4MTAzMiwgMS4wMTc4MywgMS42OTE0MywgMi4xMTI4MSIsIFwKLSAgICAgICAgICAiMC4wOTQ1NTQsIDAuMTQzODMsIDAuNDI4MTg4LCAwLjY4MTUyOSwgMS4wMTc3NywgMS42OTE0OCwgMi4xMTI1NSIsIFwKLSAgICAgICAgICAiMC4wOTQ2MDMsIDAuMTQzODU4LCAwLjQyODMzNywgMC42ODE3NDMsIDEuMDE3NzQsIDEuNjkwODksIDIuMTEyNTIiLCBcCi0gICAgICAgICAgIjAuMDk0NjI5LCAwLjE0Mzc2NiwgMC40Mjg0ODUsIDAuNjgxNzM2LCAxLjAxNzI2LCAxLjY5MTU0LCAyLjExNDg1IiwgXAotICAgICAgICAgICIwLjA5NDUyNiwgMC4xNDM3ODQsIDAuNDI5MDMsIDAuNjgxNzg5LCAxLjAxNzc5LCAxLjY5MzQyLCAyLjExMjY1Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExMjczNywgMC4xMzc4MTYsIDAuMjc4Mjg3LCAwLjQwMjA1NSwgMC41NjcwMDksIDAuODk2OTUxLCAxLjEwMzEyIiwgXAotICAgICAgICAgICIwLjEyMjgxMiwgMC4xNDc5MTIsIDAuMjg4Mzc5LCAwLjQxMjE0NiwgMC41NzcxMTMsIDAuOTA3MDQ1LCAxLjExMzIyIiwgXAotICAgICAgICAgICIwLjEzNDYxNiwgMC4xNTk2OTIsIDAuMzAwMTY0LCAwLjQyMzk3NSwgMC41ODg4OTMsIDAuOTE4ODE5LCAxLjEyNSIsIFwKLSAgICAgICAgICAiMC4xNDQxNjQsIDAuMTY5MjE4LCAwLjMwOTY5OSwgMC40MzM1MDcsIDAuNTk4NDMxLCAwLjkyODM1NSwgMS4xMzQ1NCIsIFwKLSAgICAgICAgICAiMC4xNTIyNDUsIDAuMTc3MzAxLCAwLjMxNzc3OCwgMC40NDE1NTcsIDAuNjA2NTExLCAwLjkzNjQ1LCAxLjE0MjYxIiwgXAotICAgICAgICAgICIwLjE2MzMzMiwgMC4xODg0MjIsIDAuMzI4ODg5LCAwLjQ1MjY1MSwgMC42MTc2MTUsIDAuOTQ3NTM4LCAxLjE1MzczIiwgXAotICAgICAgICAgICIwLjE3MTkzMiwgMC4xOTY5OTYsIDAuMzM3NTA2LCAwLjQ2MTI1OCwgMC42MjYyMTEsIDAuOTU2MTI4LCAxLjE2MjMzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5NDIxNCwgMC4xNDI1NjQsIDAuNDIyMTQyLCAwLjY3MDk4OCwgMS4wMDM5MSwgMS42NjY5LCAyLjA4MjI0IiwgXAotICAgICAgICAgICIwLjA5NDE4NSwgMC4xNDI1NDgsIDAuNDIyNjksIDAuNjcxMDcsIDEuMDAzODYsIDEuNjY3MDMsIDIuMDgyMTQiLCBcCi0gICAgICAgICAgIjAuMDk0MjA5LCAwLjE0MjU1NiwgMC40MjIyNywgMC42NzA2OCwgMS4wMDM4NCwgMS42NjcxMiwgMi4wODIxNiIsIFwKLSAgICAgICAgICAiMC4wOTQyMDIsIDAuMTQyNTcxLCAwLjQyMjI3NiwgMC42NzE4MzUsIDEuMDAzODQsIDEuNjY3MTQsIDIuMDgyMTYiLCBcCi0gICAgICAgICAgIjAuMDk0MjU3LCAwLjE0MjU5MywgMC40MjIzMjgsIDAuNjcxNjk5LCAxLjAwMjg3LCAxLjY2ODY3LCAyLjA4MTc2IiwgXAotICAgICAgICAgICIwLjA5NDIyNywgMC4xNDI1ODUsIDAuNDIyMzM4LCAwLjY3MTU1OCwgMS4wMDM3MSwgMS42NjY5MiwgMi4wODM4NyIsIFwKLSAgICAgICAgICAiMC4wOTQxMzcsIDAuMTQyNTc0LCAwLjQyMjc5LCAwLjY3MDg2OCwgMS4wMDI4NiwgMS42NjY5NSwgMi4wODM5MiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODUzMDYsIDAuMTEwMDUsIDAuMjQ5MzU3LCAwLjM3MjEzMywgMC41MzU3NzgsIDAuODYzMDM2LCAxLjA2NzUzIiwgXAotICAgICAgICAgICIwLjA5NDUyNywgMC4xMTkyNzgsIDAuMjU4NjEyLCAwLjM4MTM2NCwgMC41NDUwMjksIDAuODcyMjYzLCAxLjA3NjgiLCBcCi0gICAgICAgICAgIjAuMTA2MTIzLCAwLjEzMDkwMSwgMC4yNzAyNTQsIDAuMzkzMDE5LCAwLjU1NjY2LCAwLjg4MzkwOCwgMS4wODg0IiwgXAotICAgICAgICAgICIwLjExNzM5NiwgMC4xNDIxNTcsIDAuMjgxNDk5LCAwLjQwNDI4MywgMC41Njc5MDksIDAuODk1MjA2LCAxLjA5OTY3IiwgXAotICAgICAgICAgICIwLjEyNzI4NCwgMC4xNTIwNywgMC4yOTEzODYsIDAuNDE0MjIsIDAuNTc3ODE4LCAwLjkwNTA1MiwgMS4xMDk1NyIsIFwKLSAgICAgICAgICAiMC4xNDExOTIsIDAuMTY2MDQ4LCAwLjMwNTM0OCwgMC40MjgxNCwgMC41OTE3NDgsIDAuOTE5MTQ3LCAxLjEyMzYxIiwgXAotICAgICAgICAgICIwLjE1MTk0OCwgMC4xNzY5MTQsIDAuMzE2MTg0LCAwLjQzODkzLCAwLjYwMjU3NCwgMC45Mjk4MzksIDEuMTM0MzEiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk0NjYsIDAuMTQ0MDA4LCAwLjQyODk5NSwgMC42ODA5MzIsIDEuMDE3NzYsIDEuNjkxNDcsIDIuMTEyNDIiLCBcCi0gICAgICAgICAgIjAuMDk0Njc5LCAwLjE0Mzg5NiwgMC40MjgyODIsIDAuNjgxNzMxLCAxLjAxODk5LCAxLjY5MTY0LCAyLjExMjU4IiwgXAotICAgICAgICAgICIwLjA5NDczNCwgMC4xNDM5MjUsIDAuNDI4NDY2LCAwLjY4MTczMSwgMS4wMTc4LCAxLjY5Mjg1LCAyLjExNDk4IiwgXAotICAgICAgICAgICIwLjA5NTAxMSwgMC4xNDQxMDUsIDAuNDI4NDkxLCAwLjY4MTY0NywgMS4wMTc2MywgMS42OTMyNiwgMi4xMTQyIiwgXAotICAgICAgICAgICIwLjA5NTU4NCwgMC4xNDQ0ODIsIDAuNDI4ODc5LCAwLjY4MDU3OSwgMS4wMTg3NiwgMS42OTMxNiwgMi4xMTQ2OCIsIFwKLSAgICAgICAgICAiMC4wOTY2OSwgMC4xNDUyNTYsIDAuNDI4ODI2LCAwLjY4MTQ0MywgMS4wMTc2MywgMS42OTAwMSwgMi4xMTQ3OSIsIFwKLSAgICAgICAgICAiMC4wOTc4ODMsIDAuMTQ1ODMyLCAwLjQyODY1OSwgMC42ODE0MDgsIDEuMDE3ODIsIDEuNjkzMDQsIDIuMTE0MzUiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg1NTEzLCAwLjExMDY2MSwgMC4yNTEwNTEsIDAuMzc0Nzg0LCAwLjUzOTgwNSwgMC44NzAwMzQsIDEuMDc2NjIiLCBcCi0gICAgICAgICAgIjAuMDk0NDY0LCAwLjExOTYxMSwgMC4yNjAwMDUsIDAuMzgzNzkyLCAwLjU0ODgxMywgMC44Nzg4NCwgMS4wODUxNSIsIFwKLSAgICAgICAgICAiMC4xMDU3NTQsIDAuMTMwOTEzLCAwLjI3MTMzMSwgMC4zOTUxMTksIDAuNTYwMTY4LCAwLjg5MDIyNCwgMS4wOTY0MSIsIFwKLSAgICAgICAgICAiMC4xMTYxODksIDAuMTQxMzY2LCAwLjI4MTc4MiwgMC40MDU1NDEsIDAuNTcwNTk3LCAwLjkwMDc2OSwgMS4xMDY4MiIsIFwKLSAgICAgICAgICAiMC4xMjUwODMsIDAuMTUwMjg2LCAwLjI5MDcxMiwgMC40MTQ1MDEsIDAuNTc5NTYxLCAwLjkwOTcyNSwgMS4xMTYwNyIsIFwKLSAgICAgICAgICAiMC4xMzc1OSwgMC4xNjI5MTUsIDAuMzAzMzkyLCAwLjQyNzA5OSwgMC41OTIxNjksIDAuOTIyMTM3LCAxLjEyODc0IiwgXAotICAgICAgICAgICIwLjE0Njc0NCwgMC4xNzIyMzIsIDAuMzEyNzUyLCAwLjQzNjUzMiwgMC42MDE1NzEsIDAuOTMxNDksIDEuMTM3ODQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk0ODIxLCAwLjE0MzEwOSwgMC40MjMzMzcsIDAuNjcyNDg5LCAxLjAwMjM1LCAxLjY2NjUzLCAyLjA4MTc0IiwgXAotICAgICAgICAgICIwLjA5NDgwOSwgMC4xNDMwMzcsIDAuNDIyNjAyLCAwLjY3MDk3NCwgMS4wMDIwNywgMS42NjUzNSwgMi4wODI1NCIsIFwKLSAgICAgICAgICAiMC4wOTQ4MDYsIDAuMTQzMDMyLCAwLjQyMjU3NSwgMC42NzA2MjUsIDEuMDAxOTEsIDEuNjY3MzUsIDIuMDgwMDIiLCBcCi0gICAgICAgICAgIjAuMDk1MDM4LCAwLjE0MzE4OSwgMC40MjI1MzYsIDAuNjcyNDc2LCAxLjAwMjI4LCAxLjY2NjY2LCAyLjA4NjciLCBcCi0gICAgICAgICAgIjAuMDk1NTM3LCAwLjE0MzU5NSwgMC40MjI1NDIsIDAuNjcyNjIsIDEuMDAyNTgsIDEuNjY2NjEsIDIuMDgxMjkiLCBcCi0gICAgICAgICAgIjAuMDk2MzE4LCAwLjE0NDI2LCAwLjQyMzY4OSwgMC42NzI0NDMsIDEuMDAzMTIsIDEuNjY3NzIsIDIuMDgxMzIiLCBcCi0gICAgICAgICAgIjAuMDk3MTM2LCAwLjE0NDY5MiwgMC40MjMxMTgsIDAuNjcyODg1LCAxLjAwMjAyLCAxLjY2OTk2LCAyLjA4MjIxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5MDc1NiwgMC4xMTU1NDcsIDAuMjU0NzYyLCAwLjM3NzU0LCAwLjU0MTIxMywgMC44Njg2MDIsIDEuMDczMjIiLCBcCi0gICAgICAgICAgIjAuMTAxMDc5LCAwLjEyNTg3MSwgMC4yNjUwOTYsIDAuMzg3ODc1LCAwLjU1MTY1MSwgMC44Nzg5MTQsIDEuMDgzNiIsIFwKLSAgICAgICAgICAiMC4xMTM1NzMsIDAuMTM4MzY4LCAwLjI3NzU4NiwgMC40MDAyMTEsIDAuNTY0MTA5LCAwLjg5MTY2LCAxLjA5NjIzIiwgXAotICAgICAgICAgICIwLjEyMzYyNCwgMC4xNDg0MjQsIDAuMjg3NjU5LCAwLjQxMDQ0NiwgMC41NzQyMTMsIDAuOTAxNDk2LCAxLjEwNjE3IiwgXAotICAgICAgICAgICIwLjEzMTcyLCAwLjE1NjUzNCwgMC4yOTU3NjYsIDAuNDE4NTI0LCAwLjU4MjMsIDAuOTA5NzU2LCAxLjExNDIxIiwgXAotICAgICAgICAgICIwLjE0MjY4OCwgMC4xNjc1MDQsIDAuMzA2NzQ4LCAwLjQyOTUsIDAuNTkzMjYsIDAuOTIwNDUsIDEuMTI1MjEiLCBcCi0gICAgICAgICAgIjAuMTUwNjgyLCAwLjE3NTM4OCwgMC4zMTQ1NywgMC40MzczMzUsIDAuNjAxMDc2LCAwLjkyODQ5MiwgMS4xMzMwOCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTUxMjksIDAuMTQ0MTk5LCAwLjQyODI2MywgMC42ODA3NzYsIDEuMDE4NjQsIDEuNjkwMTgsIDIuMTEwNzYiLCBcCi0gICAgICAgICAgIjAuMDk1MDc4LCAwLjE0NDE5MSwgMC40MjgyNzIsIDAuNjgwNzkyLCAxLjAxNzY3LCAxLjY5MDI5LCAyLjExMDUyIiwgXAotICAgICAgICAgICIwLjA5NTEwNiwgMC4xNDQxOTUsIDAuNDI4MjgzLCAwLjY4MDY3NiwgMS4wMTc2MiwgMS42OTA2LCAyLjExMjkxIiwgXAotICAgICAgICAgICIwLjA5NTA5OCwgMC4xNDQxMiwgMC40MjgwMTcsIDAuNjgwODQ1LCAxLjAxNzE5LCAxLjY5Mzc1LCAyLjExMDYyIiwgXAotICAgICAgICAgICIwLjA5NDk0NCwgMC4xNDM5OTUsIDAuNDI4OTA4LCAwLjY4MTI4NSwgMS4wMTc2OSwgMS42OTA2NywgMi4xMTI2IiwgXAotICAgICAgICAgICIwLjA5NDgyOSwgMC4xNDQwMTEsIDAuNDI4MDUsIDAuNjgwNjQsIDEuMDE3NjMsIDEuNjkzMDksIDIuMTEwOCIsIFwKLSAgICAgICAgICAiMC4wOTQ5NzksIDAuMTQzODg0LCAwLjQyODczMywgMC42ODE2MjQsIDEuMDE2OSwgMS42OTMxNywgMi4xMTA3NiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDcwOTcsIDAuMTMyMTg0LCAwLjI3MjY5NSwgMC4zOTY0NjQsIDAuNTYxNDM4LCAwLjg5MTM1OCwgMS4wOTc1NiIsIFwKLSAgICAgICAgICAiMC4xMTczNzgsIDAuMTQyNDY3LCAwLjI4Mjk2NSwgMC40MDY3NDgsIDAuNTcxNzUsIDAuOTAxNjI1LCAxLjEwNzgyIiwgXAotICAgICAgICAgICIwLjEyODk5MSwgMC4xNTQwNzEsIDAuMjk0NTcsIDAuNDE4MzgsIDAuNTgzMzExLCAwLjkxMzIzMSwgMS4xMTk0NiIsIFwKLSAgICAgICAgICAiMC4xMzgzNTIsIDAuMTYzNDI1LCAwLjMwMzkyMywgMC40Mjc3MDYsIDAuNTkyNjk3LCAwLjkyMjY5OCwgMS4xMjg3OCIsIFwKLSAgICAgICAgICAiMC4xNDYxOCwgMC4xNzEyNjIsIDAuMzExNzYzLCAwLjQzNTU1LCAwLjYwMDU0MSwgMC45MzA0NTgsIDEuMTM2NiIsIFwKLSAgICAgICAgICAiMC4xNTc1MzUsIDAuMTgyNzMzLCAwLjMyMzI2NywgMC40NDcwNTQsIDAuNjExNzAxLCAwLjk0MTk0MSwgMS4xNDgxNiIsIFwKLSAgICAgICAgICAiMC4xNjU2OTEsIDAuMTkwODM2LCAwLjMzMTQyNiwgMC40NTUyMTcsIDAuNjIwMjA0LCAwLjk1MDEzOCwgMS4xNTY0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5NDIwMSwgMC4xNDI1NjEsIDAuNDIyMjM0LCAwLjY3MTc1MSwgMS4wMDM5OSwgMS42NjcyMSwgMi4wODIwMiIsIFwKLSAgICAgICAgICAiMC4wOTQyLCAwLjE0MjU2MSwgMC40MjIzMDMsIDAuNjcxNzQ3LCAxLjAwNDExLCAxLjY2NjkyLCAyLjA4MjEzIiwgXAotICAgICAgICAgICIwLjA5NDE4MywgMC4xNDI1NSwgMC40MjI3NSwgMC42NzE4OCwgMS4wMDI5NiwgMS42NjcwOSwgMi4wODQzMyIsIFwKLSAgICAgICAgICAiMC4wOTQxOTYsIDAuMTQyNTYsIDAuNDIyMjk0LCAwLjY3MTczMSwgMS4wMDI2NywgMS42NjkxOSwgMi4wODIxNSIsIFwKLSAgICAgICAgICAiMC4wOTQzMDQsIDAuMTQyNjc2LCAwLjQyMjM0OCwgMC42NzE2ODYsIDEuMDAzOTYsIDEuNjY1OSwgMi4wODE1OCIsIFwKLSAgICAgICAgICAiMC4wOTQzODMsIDAuMTQyNzE1LCAwLjQyMjc2MiwgMC42NzA4NjgsIDEuMDAyNCwgMS42NjY5OCwgMi4wODM5NiIsIFwKLSAgICAgICAgICAiMC4wOTQyNjMsIDAuMTQyNjU5LCAwLjQyMjQ3MSwgMC42NzA5MjgsIDEuMDAzOTIsIDEuNjY2MDksIDIuMDg0MzQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDMxMDQsIDAuMDAzMTA4LCAwLjAwMzExMiwgMC4wMDMxMTMsIDAuMDAzMTE0LCAwLjAwMzExNCwgMC4wMDMxMTQiLCBcCi0gICAgICAgICAgIjAuMDAzMDgxLCAwLjAwMzA4NiwgMC4wMDMwOTIsIDAuMDAzMDkzLCAwLjAwMzA5NCwgMC4wMDMwOTQsIDAuMDAzMDk0IiwgXAotICAgICAgICAgICIwLjAwMzA3NywgMC4wMDMwODMsIDAuMDAzMDkxLCAwLjAwMzA5MywgMC4wMDMwOTMsIDAuMDAzMDk0LCAwLjAwMzA5NSIsIFwKLSAgICAgICAgICAiMC4wMDMwNzMsIDAuMDAzMDc5LCAwLjAwMzA4OSwgMC4wMDMwOSwgMC4wMDMwOTIsIDAuMDAzMDkzLCAwLjAwMzA5MyIsIFwKLSAgICAgICAgICAiMC4wMDMwNzksIDAuMDAzMDg2LCAwLjAwMzA5NiwgMC4wMDMwOTksIDAuMDAzMSwgMC4wMDMxMDEsIDAuMDAzMTAxIiwgXAotICAgICAgICAgICIwLjAwMzA5NSwgMC4wMDMxMDIsIDAuMDAzMTE0LCAwLjAwMzExNCwgMC4wMDMxMTUsIDAuMDAzMTE5LCAwLjAwMzExOSIsIFwKLSAgICAgICAgICAiMC4wMDMxMTEsIDAuMDAzMTIsIDAuMDAzMTMyLCAwLjAwMzEzMywgMC4wMDMxMzcsIDAuMDAzMTM2LCAwLjAwMzEzOCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjE1MywgMC4wMDIxNTcsIDAuMDAyMTYzLCAwLjAwMjE2NCwgMC4wMDIxNjQsIDAuMDAyMTY0LCAwLjAwMjE2NSIsIFwKLSAgICAgICAgICAiMC4wMDIxMjMsIDAuMDAyMTI4LCAwLjAwMjEzMywgMC4wMDIxMzUsIDAuMDAyMTM2LCAwLjAwMjEzNSwgMC4wMDIxMzciLCBcCi0gICAgICAgICAgIjAuMDAyMTEyLCAwLjAwMjExOCwgMC4wMDIxMjUsIDAuMDAyMTI2LCAwLjAwMjEyNywgMC4wMDIxMjcsIDAuMDAyMTI3IiwgXAotICAgICAgICAgICIwLjAwMjExMSwgMC4wMDIxMTcsIDAuMDAyMTI1LCAwLjAwMjEyNywgMC4wMDIxMjgsIDAuMDAyMTI4LCAwLjAwMjEyOCIsIFwKLSAgICAgICAgICAiMC4wMDIxMTUsIDAuMDAyMTIyLCAwLjAwMjEzLCAwLjAwMjEzMiwgMC4wMDIxMzMsIDAuMDAyMTMzLCAwLjAwMjEzNCIsIFwKLSAgICAgICAgICAiMC4wMDIxMjgsIDAuMDAyMTM1LCAwLjAwMjE0NSwgMC4wMDIxNDYsIDAuMDAyMTQ4LCAwLjAwMjE0OCwgMC4wMDIxNDgiLCBcCi0gICAgICAgICAgIjAuMDAyMTQyLCAwLjAwMjE0OCwgMC4wMDIxNTksIDAuMDAyMTYxLCAwLjAwMjE2MiwgMC4wMDIxNjMsIDAuMDAyMTY0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzMDg0LCAwLjAwMzA5MiwgMC4wMDMxMDIsIDAuMDAzMTA1LCAwLjAwMzEwNiwgMC4wMDMxMDcsIDAuMDAzMTA3IiwgXAotICAgICAgICAgICIwLjAwMzA4MywgMC4wMDMwOTIsIDAuMDAzMTA0LCAwLjAwMzEwNywgMC4wMDMxMDgsIDAuMDAzMTEsIDAuMDAzMTEiLCBcCi0gICAgICAgICAgIjAuMDAzMDk4LCAwLjAwMzEwOCwgMC4wMDMxMjQsIDAuMDAzMTI4LCAwLjAwMzEyOSwgMC4wMDMxMzEsIDAuMDAzMTMyIiwgXAotICAgICAgICAgICIwLjAwMzExNywgMC4wMDMxMjcsIDAuMDAzMTQ1LCAwLjAwMzE0OSwgMC4wMDMxNTEsIDAuMDAzMTUzLCAwLjAwMzE1MyIsIFwKLSAgICAgICAgICAiMC4wMDMxNDIsIDAuMDAzMTUzLCAwLjAwMzE3MywgMC4wMDMxNzcsIDAuMDAzMTgsIDAuMDAzMTgyLCAwLjAwMzE4MyIsIFwKLSAgICAgICAgICAiMC4wMDMxNjgsIDAuMDAzMTgsIDAuMDAzMjAxLCAwLjAwMzIwNSwgMC4wMDMyMDcsIDAuMDAzMjEyLCAwLjAwMzIxMSIsIFwKLSAgICAgICAgICAiMC4wMDMyMzEsIDAuMDAzMjQxLCAwLjAwMzI2MywgMC4wMDMyNjksIDAuMDAzMjcyLCAwLjAwMzI3NSwgMC4wMDMyNzYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDE5MTIsIDAuMDAxOTE5LCAwLjAwMTkyOSwgMC4wMDE5MzEsIDAuMDAxOTMyLCAwLjAwMTkzMywgMC4wMDE5MzMiLCBcCi0gICAgICAgICAgIjAuMDAxODg3LCAwLjAwMTg5NCwgMC4wMDE5MDQsIDAuMDAxOTA3LCAwLjAwMTkwOCwgMC4wMDE5MDksIDAuMDAxOTA5IiwgXAotICAgICAgICAgICIwLjAwMTg4MiwgMC4wMDE4OSwgMC4wMDE5MDIsIDAuMDAxOTA0LCAwLjAwMTkwNSwgMC4wMDE5MDcsIDAuMDAxOTA3IiwgXAotICAgICAgICAgICIwLjAwMTg4NSwgMC4wMDE4OTMsIDAuMDAxOTA2LCAwLjAwMTkwOCwgMC4wMDE5MSwgMC4wMDE5MTEsIDAuMDAxOTExIiwgXAotICAgICAgICAgICIwLjAwMTg5NSwgMC4wMDE5MDQsIDAuMDAxOTE2LCAwLjAwMTkxOSwgMC4wMDE5MjEsIDAuMDAxOTIyLCAwLjAwMTkyMyIsIFwKLSAgICAgICAgICAiMC4wMDE5MTEsIDAuMDAxOTE2LCAwLjAwMTkzLCAwLjAwMTkzMywgMC4wMDE5MzIsIDAuMDAxOTM2LCAwLjAwMTkzNiIsIFwKLSAgICAgICAgICAiMC4wMDE5MzUsIDAuMDAxOTQzLCAwLjAwMTk1NywgMC4wMDE5NiwgMC4wMDE5NjIsIDAuMDAxOTY0LCAwLjAwMTk2NCIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogQU5EM1g0ICoKLSAqIC0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoQU5EM1g0KSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMjUzMjk2OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA4NzYyMjg7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwODc2MjI4OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDg3Mzg3NTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA0MDksIDAuMDAwNDA5LCAwLjAwMDQwOSwgMC4wMDA0MDksIDAuMDAwNDA5LCAwLjAwMDQwOSwgMC4wMDA0MDkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA0MSwgMC4wMDA0MSwgMC4wMDA0MSwgMC4wMDA0MSwgMC4wMDA0MSwgMC4wMDA0MSwgMC4wMDA0MSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwODk3MDUzOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDg5NzA1MzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA4OTUxMzg7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNDA5LCAwLjAwMDQwOSwgMC4wMDA0MDksIDAuMDAwNDA5LCAwLjAwMDQwOSwgMC4wMDA0MDksIDAuMDAwNDA5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNDEsIDAuMDAwNDEsIDAuMDAwNDEsIDAuMDAwNDEsIDAuMDAwNDEsIDAuMDAwNDEsIDAuMDAwNDExIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihDKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA4OTQzNjY7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwODkzNzc3OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDg5NDM2NjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyODUsIDAuMDAwMjg1LCAwLjAwMDI4NSwgMC4wMDAyODUsIDAuMDAwMjg0LCAwLjAwMDI4NSwgMC4wMDAyODQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA0NjQsIDAuMDAwNDY1LCAwLjAwMDQ2NSwgMC4wMDA0NjUsIDAuMDAwNDY0LCAwLjAwMDQ2NCwgMC4wMDA0NjQiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMS4wMzU5NTsKLSAgICBmdW5jdGlvbiA6ICIoKEEgQikgQykiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk2MDQ4LCAwLjE3ODMxOSwgMC4yNTEwMzUsIDAuMzAyNjI3LCAwLjM4NTEzNiwgMC40NTczNCwgMC41NjA0MDQiLCBcCi0gICAgICAgICAgIjAuMTA0MDI0LCAwLjE4NjQyNiwgMC4yNTkyMjIsIDAuMzEwODE0LCAwLjM5MzMyNSwgMC40NjU0OTksIDAuNTY4Njg3IiwgXAotICAgICAgICAgICIwLjExMzE1MywgMC4xOTU1MTUsIDAuMjY4MzE1LCAwLjMxOTkwMywgMC40MDI0MTEsIDAuNDc0NTc2LCAwLjU3Nzg1IiwgXAotICAgICAgICAgICIwLjEyMjE1NiwgMC4yMDQ1MTUsIDAuMjc3MjE3LCAwLjMyODc5NiwgMC40MTEzNDEsIDAuNDgzNTA1LCAwLjU4NjU5MyIsIFwKLSAgICAgICAgICAiMC4xMzA4ODIsIDAuMjEzMjIxLCAwLjI4NTkxOSwgMC4zMzc1MDEsIDAuNDIwMDEzLCAwLjQ5MjIxMiwgMC41OTUzMiIsIFwKLSAgICAgICAgICAiMC4xNDQzMDIsIDAuMjI2ODcyLCAwLjI5OTU1MiwgMC4zNTExNTksIDAuNDMzNjU4LCAwLjUwNTgzOSwgMC42MDkxMzciLCBcCi0gICAgICAgICAgIjAuMTU1MjU0LCAwLjIzODE5MywgMC4zMTA5MjMsIDAuMzYyNTI1LCAwLjQ0NTAyMywgMC41MTcxODksIDAuNjIwMzk1Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQ3MDk3LCAwLjE4ODA5NCwgMC4zMzIyOTcsIDAuNDM4MDMxLCAwLjYwNzE0NCwgMC43NTU4NjIsIDAuOTY4MjQ1IiwgXAotICAgICAgICAgICIwLjA0NzUzLCAwLjE4ODAxNiwgMC4zMzI2ODcsIDAuNDM3MjU4LCAwLjYwNzEyMiwgMC43NTQ3MjYsIDAuOTY4NTQ5IiwgXAotICAgICAgICAgICIwLjA0NzEwMSwgMC4xODc4OTMsIDAuMzMyNDk2LCAwLjQzNzYxOCwgMC42MDcwNzUsIDAuNzU1NTE1LCAwLjk2NjMxNSIsIFwKLSAgICAgICAgICAiMC4wNDY5MjgsIDAuMTg3NzIxLCAwLjMzMjY4OCwgMC40Mzc5MTcsIDAuNjA3MjA4LCAwLjc1NTU4OCwgMC45NjgxNjIiLCBcCi0gICAgICAgICAgIjAuMDQ3MzA1LCAwLjE4Nzk1LCAwLjMzMjk5LCAwLjQzNzY2NiwgMC42MDcwNjUsIDAuNzU1NzQ0LCAwLjk2NzAxIiwgXAotICAgICAgICAgICIwLjA0ODQ4NiwgMC4xODgzMDQsIDAuMzMyODY0LCAwLjQzNzU4OSwgMC42MDY0MjYsIDAuNzU1NTExLCAwLjk2NjUyOSIsIFwKLSAgICAgICAgICAiMC4wNDk5MTQsIDAuMTg4ODc2LCAwLjMzMzQzOCwgMC40Mzc2MzQsIDAuNjA3MTc5LCAwLjc1NTU1MSwgMC45NjY3MTQiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTEyNDMsIDAuMTI2NTg2LCAwLjIwMDA5NiwgMC4yNTI1NiwgMC4zMzY0MTksIDAuNDA5ODEyLCAwLjUxNDYxNSIsIFwKLSAgICAgICAgICAiMC4wNjExNzgsIDAuMTM2NTQ5LCAwLjIxMDA0OCwgMC4yNjI1MjUsIDAuMzQ2Mzk3LCAwLjQxOTc2NywgMC41MjQ1ODkiLCBcCi0gICAgICAgICAgIjAuMDczNjg3LCAwLjE0OTA0NiwgMC4yMjI1NjgsIDAuMjc1MDQzLCAwLjM1ODkzLCAwLjQzMjMwNSwgMC41MzcxMTgiLCBcCi0gICAgICAgICAgIjAuMDg1NTI2LCAwLjE2MDk3MiwgMC4yMzQ0OTcsIDAuMjg2OTcxLCAwLjM3MDg0OCwgMC40NDQyMjIsIDAuNTQ5MDQ5IiwgXAotICAgICAgICAgICIwLjA5NjEyNCwgMC4xNzE2NTQsIDAuMjQ1MTY1LCAwLjI5NzYyMSwgMC4zODE1MjIsIDAuNDU0ODkyLCAwLjU1OTcyMiIsIFwKLSAgICAgICAgICAiMC4xMTA2NjMsIDAuMTg2NzUyLCAwLjI2MDE2MywgMC4zMTI2MTcsIDAuMzk2NTE4LCAwLjQ2OTg5OSwgMC41NzQ3MSIsIFwKLSAgICAgICAgICAiMC4xMjE2MjQsIDAuMTk4MTU0LCAwLjI3MTUwOCwgMC4zMjM5NTIsIDAuNDA3ODIyLCAwLjQ4MTIwNSwgMC41ODYwMTIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzM0MzIsIDAuMTc3OTE5LCAwLjMyNTk1OCwgMC40MzI0MTcsIDAuNjAyNjI0LCAwLjc1MDYyNSwgMC45NjQzNzEiLCBcCi0gICAgICAgICAgIjAuMDMzNDM4LCAwLjE3ODE0NSwgMC4zMjYzODQsIDAuNDMyNDE0LCAwLjYwMjU2LCAwLjc1MTUyMiwgMC45NjM4MjgiLCBcCi0gICAgICAgICAgIjAuMDMzNTE2LCAwLjE3NzkwMiwgMC4zMjU5NTgsIDAuNDMyNDE1LCAwLjYwMjQ3LCAwLjc1MDg4MSwgMC45NjI4NDkiLCBcCi0gICAgICAgICAgIjAuMDM0MDcsIDAuMTc3OTksIDAuMzI2MDMzLCAwLjQzMjQzOSwgMC42MDI1MzksIDAuNzUxNTcsIDAuOTYzNTg2IiwgXAotICAgICAgICAgICIwLjAzNTM5MywgMC4xNzgzOTMsIDAuMzI2NDY3LCAwLjQzMjU3NSwgMC42MDI1NTMsIDAuNzUxNjEyLCAwLjk2MzY5NSIsIFwKLSAgICAgICAgICAiMC4wMzcyOTUsIDAuMTc4ODg4LCAwLjMyNjU5NywgMC40MzI2MDYsIDAuNjAxODQ2LCAwLjc1MTQyNiwgMC45NjQzMzIiLCBcCi0gICAgICAgICAgIjAuMDM5MDY1LCAwLjE3OTE5OSwgMC4zMjY1ODcsIDAuNDMyNDU4LCAwLjYwMjU0NCwgMC43NTAxNjIsIDAuOTYyODY3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDkzNzI2LCAwLjE3NTY3NCwgMC4yNDg0MTcsIDAuMzAwMDE3LCAwLjM4MjUyMiwgMC40NTQ2ODcsIDAuNTU3OTY4IiwgXAotICAgICAgICAgICIwLjEwMTk3MSwgMC4xODQyNDMsIDAuMjU2OTM0LCAwLjMwODU0OSwgMC4zOTEwODIsIDAuNDYzMjMzLCAwLjU2NjUxOCIsIFwKLSAgICAgICAgICAiMC4xMTIzNDksIDAuMTk0Nzk5LCAwLjI2NzU1OSwgMC4zMTkxMzUsIDAuNDAxNjQ3LCAwLjQ3Mzg2OSwgMC41NzY5NjkiLCBcCi0gICAgICAgICAgIjAuMTIyOTcxLCAwLjIwNTI2NCwgMC4yNzc5ODQsIDAuMzI5NTYzLCAwLjQxMjEyNCwgMC40ODQyODMsIDAuNTg3NTQyIiwgXAotICAgICAgICAgICIwLjEzMzI0MSwgMC4yMTU1NDQsIDAuMjg4MjYsIDAuMzM5ODkyLCAwLjQyMjM3NywgMC40OTQ1NTksIDAuNTk3ODU2IiwgXAotICAgICAgICAgICIwLjE0ODc2OSwgMC4yMzE1MjcsIDAuMzA0MjQyLCAwLjM1NTg0NiwgMC40MzgzNjQsIDAuNTEwNTM0LCAwLjYxMzgxNiIsIFwKLSAgICAgICAgICAiMC4xNjE3MTEsIDAuMjQ0ODM2LCAwLjMxNzYwMywgMC4zNjgyODUsIDAuNDUwNzgxLCAwLjUyMjk0OSwgMC42MjYxMjYiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDcwNTUsIDAuMTg4MTIzLCAwLjMzMjgwMywgMC40Mzc3MjgsIDAuNjA3MTQ4LCAwLjc1NTUyMywgMC45NjYzMDEiLCBcCi0gICAgICAgICAgIjAuMDQ3MDM3LCAwLjE4NzkyMSwgMC4zMzI2LCAwLjQzNzYzNiwgMC42MDYxODksIDAuNzU1NTI1LCAwLjk2NjYzNSIsIFwKLSAgICAgICAgICAiMC4wNDcxLCAwLjE4NzkzOSwgMC4zMzI3NTEsIDAuNDM3OTgxLCAwLjYwNzA4OSwgMC43NTM2ODUsIDAuOTY4NDIiLCBcCi0gICAgICAgICAgIjAuMDQ3MDMzLCAwLjE4Nzc2MywgMC4zMzI1NTYsIDAuNDM3OTIyLCAwLjYwNzI0MywgMC43NTQ2ODMsIDAuOTY2NDk0IiwgXAotICAgICAgICAgICIwLjA0NzM0LCAwLjE4NzkxMiwgMC4zMzI1MjUsIDAuNDM3MjY0LCAwLjYwNjM5MiwgMC43NTU1NDMsIDAuOTY2MTQzIiwgXAotICAgICAgICAgICIwLjA0OTA1NSwgMC4xODg0ODIsIDAuMzMzMjk1LCAwLjQzODEyNywgMC42MDcxMjMsIDAuNzU1NTI3LCAwLjk2NjMwOCIsIFwKLSAgICAgICAgICAiMC4wNDk3OTIsIDAuMTg4ODksIDAuMzMzMDUxLCAwLjQzODQ0MywgMC42MDcyNzcsIDAuNzU1NjQxLCAwLjk2NjU2MiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0OTc4MiwgMC4xMjUwMTksIDAuMTk4NDcsIDAuMjUwOTA5LCAwLjMzNDc2NiwgMC40MDgxNSwgMC41MTI5NzUiLCBcCi0gICAgICAgICAgIjAuMDU5NzYyLCAwLjEzNDk5MywgMC4yMDg0NTksIDAuMjYwODgzLCAwLjM0NDc0OCwgMC40MTgxMTgsIDAuNTIyOTU2IiwgXAotICAgICAgICAgICIwLjA3MjE2MSwgMC4xNDc0MTMsIDAuMjIwOTA3LCAwLjI3MzM0NSwgMC4zNTcxOTksIDAuNDMwNTYzLCAwLjUzNTM4NSIsIFwKLSAgICAgICAgICAiMC4wODM3NzMsIDAuMTU5MTAzLCAwLjIzMjU4NywgMC4yODUwNDksIDAuMzY4OTAzLCAwLjQ0MjI2NywgMC41NDcxMTEiLCBcCi0gICAgICAgICAgIjAuMDk0MDQ1LCAwLjE2OTU0NCwgMC4yNDMwMTgsIDAuMjk1NDc1LCAwLjM3OTM1MiwgMC40NTI3MSwgMC41NTc1MDkiLCBcCi0gICAgICAgICAgIjAuMTA4Njc4LCAwLjE4NDExNiwgMC4yNTc1OTcsIDAuMzEwMDM1LCAwLjM5Mzg5MywgMC40NjcyOSwgMC41NzIwNzQiLCBcCi0gICAgICAgICAgIjAuMTE5NDI3LCAwLjE5NTY4OCwgMC4yNjkxMDgsIDAuMzIxNTYsIDAuNDA1Mzk4LCAwLjQ3ODc5NywgMC41ODM1ODYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzMxMTgsIDAuMTc3OTM3LCAwLjMyNTY2NywgMC40MzI0NjksIDAuNjAyNTksIDAuNzUxNjM2LCAwLjk2NDM0NiIsIFwKLSAgICAgICAgICAiMC4wMzMxMTIsIDAuMTc3NjU4LCAwLjMyNTcxMiwgMC40MzE3MDksIDAuNjAyNTUyLCAwLjc1MTE3NywgMC45NjQzNTkiLCBcCi0gICAgICAgICAgIjAuMDMzMzAyLCAwLjE3NzY5NCwgMC4zMjU1NDQsIDAuNDMyMzkxLCAwLjYwMjMwMiwgMC43NTE0NjQsIDAuOTYyNzQxIiwgXAotICAgICAgICAgICIwLjAzNDAwMSwgMC4xNzc3ODcsIDAuMzI1Nzg2LCAwLjQzMjM1MiwgMC42MDE5NTksIDAuNzUxNDkxLCAwLjk2NDQxNSIsIFwKLSAgICAgICAgICAiMC4wMzUyNjUsIDAuMTc4MjI4LCAwLjMyNjI3MSwgMC40MzE3NzksIDAuNjAyNDk5LCAwLjc1MTUyOSwgMC45NjQxODgiLCBcCi0gICAgICAgICAgIjAuMDM3MjU4LCAwLjE3ODU2MiwgMC4zMjYzMTIsIDAuNDMyMzI3LCAwLjYwMjU1MSwgMC43NTEzNzMsIDAuOTYyNzM1IiwgXAotICAgICAgICAgICIwLjAzOTE1MiwgMC4xNzkwNDksIDAuMzI2Mzg3LCAwLjQzMjI2NiwgMC42MDI0MTgsIDAuNzUxMTk5LCAwLjk2Mjg5MiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4OTQzNCwgMC4xNzE3NzksIDAuMjQ0NTIsIDAuMjk2MTE1LCAwLjM3ODYzLCAwLjQ1MDc5OSwgMC41NTM5ODIiLCBcCi0gICAgICAgICAgIjAuMDk3NTk2LCAwLjE3OTk4NywgMC4yNTI2ODcsIDAuMzA0MzA1LCAwLjM4NjgyNiwgMC40NTg5ODgsIDAuNTYyMjc2IiwgXAotICAgICAgICAgICIwLjEwODcwNiwgMC4xOTEwNDUsIDAuMjYzODA0LCAwLjMxNTQyNiwgMC4zOTgsIDAuNDcwMTQyLCAwLjU3MzM5NyIsIFwKLSAgICAgICAgICAiMC4xMTk3MzUsIDAuMjAyMDcyLCAwLjI3NDc3MSwgMC4zMjY0MDEsIDAuNDA4ODk5LCAwLjQ4MTA4LCAwLjU4NDM2OCIsIFwKLSAgICAgICAgICAiMC4xMzA5MiwgMC4yMTI5OTMsIDAuMjg1Njg3LCAwLjMzNzI3MiwgMC40MTk3OTEsIDAuNDkyMDU3LCAwLjU5NTEwNyIsIFwKLSAgICAgICAgICAiMC4xNDc4MzcsIDAuMjMwNTU4LCAwLjMwMzA4OCwgMC4zNTQ2NzcsIDAuNDM3MjExLCAwLjUwOTM3MiwgMC42MTI2NzEiLCBcCi0gICAgICAgICAgIjAuMTYxNzAyLCAwLjI0NDEzLCAwLjMxNjg1LCAwLjM2ODQyMywgMC40NTA5MjYsIDAuNTIzMDg5LCAwLjYyNjIzOSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0NzE3NywgMC4xODgwNCwgMC4zMzIyNjksIDAuNDM3OTk1LCAwLjYwNzEyOCwgMC43NTU1ODQsIDAuOTY2NjM3IiwgXAotICAgICAgICAgICIwLjA0NzA4NSwgMC4xODc3OTUsIDAuMzMyNjIxLCAwLjQzNzQyOCwgMC42MDYxMDgsIDAuNzU1NTIzLCAwLjk2NjUxMyIsIFwKLSAgICAgICAgICAiMC4wNDcxMiwgMC4xODc5MDgsIDAuMzMyNzMzLCAwLjQzNzk4MSwgMC42MDU5OCwgMC43NTQ2NjIsIDAuOTY2NTA0IiwgXAotICAgICAgICAgICIwLjA0NzA2NCwgMC4xODc4NiwgMC4zMzI1NjgsIDAuNDM4MDM5LCAwLjYwNjM3MSwgMC43NTU1MjQsIDAuOTY2Mjc3IiwgXAotICAgICAgICAgICIwLjA0NzMwMSwgMC4xODgxNTYsIDAuMzMyODM4LCAwLjQzNzcxMywgMC42MDcwOTksIDAuNzU1OTQ4LCAwLjk2ODM3NyIsIFwKLSAgICAgICAgICAiMC4wNDk1NTEsIDAuMTg4NTY0LCAwLjMzMzAwMywgMC40MzgwNjQsIDAuNjA3MjY5LCAwLjc1NTUzOCwgMC45NjY0NzkiLCBcCi0gICAgICAgICAgIjAuMDUwNzQ0LCAwLjE4OTUxNywgMC4zMzM0NzQsIDAuNDM4NDA5LCAwLjYwNzM4NSwgMC43NTU2NTgsIDAuOTY2OTg5Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQ4MTg4LCAwLjEyMzIzNiwgMC4xOTY2OSwgMC4yNDkwNzcsIDAuMzMyOTc2LCAwLjQwNjM1LCAwLjUxMTExIiwgXAotICAgICAgICAgICIwLjA1ODExNCwgMC4xMzMyNDYsIDAuMjA2Njg2LCAwLjI1OTExMiwgMC4zNDMwMTMsIDAuNDE2MzksIDAuNTIxMjYiLCBcCi0gICAgICAgICAgIjAuMDcwNDcyLCAwLjE0NTQ4LCAwLjIxODkxMiwgMC4yNzE0LCAwLjM1NTMxNCwgMC40Mjg2NDgsIDAuNTMzNzQ0IiwgXAotICAgICAgICAgICIwLjA4MTc4MSwgMC4xNTcwMywgMC4yMzA0NjksIDAuMjgyOTEyLCAwLjM2Njc5MSwgMC40NDAxOSwgMC41NDUyNTciLCBcCi0gICAgICAgICAgIjAuMDkxNjk2LCAwLjE2NzEyOSwgMC4yNDA1NDcsIDAuMjkzMDA4LCAwLjM3NjkxMywgMC40NTAyODMsIDAuNTU1NDA3IiwgXAotICAgICAgICAgICIwLjEwNTM5NiwgMC4xODA4MTcsIDAuMjUzOTcxLCAwLjMwNjM4NiwgMC4zOTAzNDgsIDAuNDYzNjg0LCAwLjU2ODYxMSIsIFwKLSAgICAgICAgICAiMC4xMTU2MzgsIDAuMTkxNzM1LCAwLjI2NDE2MiwgMC4zMTY1NTYsIDAuNDAwNDA0LCAwLjQ3MzkxNCwgMC41Nzg5MzIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzI5NTQsIDAuMTc3NzUsIDAuMzI2MDcsIDAuNDMyNDU2LCAwLjYwMDk0OSwgMC43NDk1MzQsIDAuOTYzOTM1IiwgXAotICAgICAgICAgICIwLjAzMjkyNCwgMC4xNzc1MzQsIDAuMzI1Mjc2LCAwLjQzMjQxNiwgMC42MDEwMTMsIDAuNzUwMjY0LCAwLjk2MTU1IiwgXAotICAgICAgICAgICIwLjAzMzE1LCAwLjE3NzgxNCwgMC4zMjU5NjgsIDAuNDMxMTQxLCAwLjYwMTQ0MywgMC43NTEzODksIDAuOTYxODM3IiwgXAotICAgICAgICAgICIwLjAzNDI2NSwgMC4xNzc5MzksIDAuMzI1NjIyLCAwLjQzMjQ1OSwgMC42MDI2NjUsIDAuNzQ5NjMsIDAuOTYyMDQzIiwgXAotICAgICAgICAgICIwLjAzNTY3NiwgMC4xNzgyNCwgMC4zMjYyMDksIDAuNDMxMzAzLCAwLjYwMTczMiwgMC43NDk1ODcsIDAuOTYxODI0IiwgXAotICAgICAgICAgICIwLjAzNzQ2MSwgMC4xNzg4NzUsIDAuMzI2NDYzLCAwLjQzMiwgMC42MDEzMjYsIDAuNzQ5NDE0LCAwLjk2MjIzIiwgXAotICAgICAgICAgICIwLjAzOTMyNywgMC4xNzkxNDcsIDAuMzI2Nzc5LCAwLjQzMTg3LCAwLjYwMjY3NSwgMC43NTAwMjIsIDAuOTYxOTE0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQ3MDIsIDAuMDA0ODA5LCAwLjAwNDgyNiwgMC4wMDQ4MzIsIDAuMDA0ODM4LCAwLjAwNDg0OCwgMC4wMDQ4NDIiLCBcCi0gICAgICAgICAgIjAuMDA0NjQ5LCAwLjAwNDc2LCAwLjAwNDc4OSwgMC4wMDQ3ODcsIDAuMDA0Nzk3LCAwLjAwNDc5NSwgMC4wMDQ4MDgiLCBcCi0gICAgICAgICAgIjAuMDA0NiwgMC4wMDQ3MywgMC4wMDQ3NTcsIDAuMDA0NzYxLCAwLjAwNDc2OSwgMC4wMDQ3NzUsIDAuMDA0Nzc4IiwgXAotICAgICAgICAgICIwLjAwNDU4NCwgMC4wMDQ3MTcsIDAuMDA0NzQ1LCAwLjAwNDc1NiwgMC4wMDQ3NiwgMC4wMDQ3NjQsIDAuMDA0NzY3IiwgXAotICAgICAgICAgICIwLjAwNDU4MywgMC4wMDQ3MDcsIDAuMDA0NzM3LCAwLjAwNDc0NywgMC4wMDQ3NTQsIDAuMDA0NzU5LCAwLjAwNDc2MyIsIFwKLSAgICAgICAgICAiMC4wMDQ2MDEsIDAuMDA0NzA0LCAwLjAwNDczNywgMC4wMDQ3NDMsIDAuMDA0NzUyLCAwLjAwNDc1OSwgMC4wMDQ3NjEiLCBcCi0gICAgICAgICAgIjAuMDA0NjYzLCAwLjAwNDcwNywgMC4wMDQ3MzgsIDAuMDA0NzQ5LCAwLjAwNDc1NiwgMC4wMDQ3NjMsIDAuMDA0NzY1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDY5MTQsIDAuMDA3MDk1LCAwLjAwNzExOSwgMC4wMDcxMjYsIDAuMDA3MTMyLCAwLjAwNzEzNiwgMC4wMDcxMzkiLCBcCi0gICAgICAgICAgIjAuMDA2ODc0LCAwLjAwNzA2NCwgMC4wMDcwOTIsIDAuMDA3MTAxLCAwLjAwNzEwOCwgMC4wMDcxMTIsIDAuMDA3MTE2IiwgXAotICAgICAgICAgICIwLjAwNjg0OCwgMC4wMDcwNDQsIDAuMDA3MDc5LCAwLjAwNzA5LCAwLjAwNzEsIDAuMDA3MTA2LCAwLjAwNzExIiwgXAotICAgICAgICAgICIwLjAwNjgyOSwgMC4wMDcwMjksIDAuMDA3MDcxLCAwLjAwNzA4NSwgMC4wMDcwOTgsIDAuMDA3MTA1LCAwLjAwNzExMSIsIFwKLSAgICAgICAgICAiMC4wMDY4MjksIDAuMDA3MDIyLCAwLjAwNzA2OSwgMC4wMDcwODQsIDAuMDA3MDk5LCAwLjAwNzEwNywgMC4wMDcxMTQiLCBcCi0gICAgICAgICAgIjAuMDA2ODQzLCAwLjAwNzAyMiwgMC4wMDcwNzQsIDAuMDA3MDkyLCAwLjAwNzEwOCwgMC4wMDcxMTcsIDAuMDA3MTI1IiwgXAotICAgICAgICAgICIwLjAwNjg2NSwgMC4wMDcwMzUsIDAuMDA3MDg3LCAwLjAwNzEwNywgMC4wMDcxMjYsIDAuMDA3MTM1LCAwLjAwNzE0NSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0Njc1LCAwLjAwNDgwNywgMC4wMDQ4MzQsIDAuMDA0ODQyLCAwLjAwNDg0NywgMC4wMDQ4NTMsIDAuMDA0ODU2IiwgXAotICAgICAgICAgICIwLjAwNDYzNywgMC4wMDQ3NjYsIDAuMDA0NzkzLCAwLjAwNDgwMiwgMC4wMDQ4MSwgMC4wMDQ4MTYsIDAuMDA0ODE2IiwgXAotICAgICAgICAgICIwLjAwNDYsIDAuMDA0NzM2LCAwLjAwNDc2NiwgMC4wMDQ3NzUsIDAuMDA0NzgyLCAwLjAwNDc4OCwgMC4wMDQ3OTIiLCBcCi0gICAgICAgICAgIjAuMDA0NTg1LCAwLjAwNDcyMSwgMC4wMDQ3NTIsIDAuMDA0NzY2LCAwLjAwNDc3NywgMC4wMDQ3NzgsIDAuMDA0NzgyIiwgXAotICAgICAgICAgICIwLjAwNDU5MywgMC4wMDQ3MTMsIDAuMDA0NzQ1LCAwLjAwNDc1OCwgMC4wMDQ3NjksIDAuMDA0NzcyLCAwLjAwNDc3OCIsIFwKLSAgICAgICAgICAiMC4wMDQ2MTgsIDAuMDA0NzA5LCAwLjAwNDc1MSwgMC4wMDQ3NjIsIDAuMDA0NzY1LCAwLjAwNDc3MywgMC4wMDQ3NzkiLCBcCi0gICAgICAgICAgIjAuMDA0NjIsIDAuMDA0NzExLCAwLjAwNDc0NiwgMC4wMDQ3NTgsIDAuMDA0NzY0LCAwLjAwNDc3MywgMC4wMDQ3OCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2NTQzLCAwLjAwNjc1MiwgMC4wMDY3NzgsIDAuMDA2Nzg2LCAwLjAwNjc5MywgMC4wMDY3OTcsIDAuMDA2OCIsIFwKLSAgICAgICAgICAiMC4wMDY0OTUsIDAuMDA2NzE3LCAwLjAwNjc0OSwgMC4wMDY3NTksIDAuMDA2NzY4LCAwLjAwNjc3MiwgMC4wMDY3NzYiLCBcCi0gICAgICAgICAgIjAuMDA2NDU3LCAwLjAwNjY4NywgMC4wMDY3MjgsIDAuMDA2NzQxLCAwLjAwNjc1MywgMC4wMDY3NTksIDAuMDA2NzY1IiwgXAotICAgICAgICAgICIwLjAwNjQzMywgMC4wMDY2NjcsIDAuMDA2NzE2LCAwLjAwNjczMywgMC4wMDY3NDgsIDAuMDA2NzU1LCAwLjAwNjc2MyIsIFwKLSAgICAgICAgICAiMC4wMDY0MjQsIDAuMDA2NjU2LCAwLjAwNjcxMSwgMC4wMDY3MywgMC4wMDY3NDcsIDAuMDA2NzU2LCAwLjAwNjc2NSIsIFwKLSAgICAgICAgICAiMC4wMDY0NDcsIDAuMDA2NjUyLCAwLjAwNjcxMywgMC4wMDY3MzQsIDAuMDA2NzU1LCAwLjAwNjc2NiwgMC4wMDY3NzYiLCBcCi0gICAgICAgICAgIjAuMDA2NDg2LCAwLjAwNjY1OCwgMC4wMDY3MTYsIDAuMDA2NzM3LCAwLjAwNjc1NiwgMC4wMDY3NjcsIDAuMDA2Nzc3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQ2OTUsIDAuMDA0ODIzLCAwLjAwNDg0MywgMC4wMDQ4NDUsIDAuMDA0ODYxLCAwLjAwNDg2NSwgMC4wMDQ4NjkiLCBcCi0gICAgICAgICAgIjAuMDA0NjIyLCAwLjAwNDc2NCwgMC4wMDQ3OTQsIDAuMDA0ODA0LCAwLjAwNDgxMywgMC4wMDQ4MTgsIDAuMDA0ODIzIiwgXAotICAgICAgICAgICIwLjAwNDYwMiwgMC4wMDQ3NDMsIDAuMDA0Nzc3LCAwLjAwNDc4NywgMC4wMDQ3OTgsIDAuMDA0ODAxLCAwLjAwNDgwOCIsIFwKLSAgICAgICAgICAiMC4wMDQ2MTcsIDAuMDA0NzMyLCAwLjAwNDc2OCwgMC4wMDQ3ODEsIDAuMDA0NzkyLCAwLjAwNDc5OSwgMC4wMDQ4MDUiLCBcCi0gICAgICAgICAgIjAuMDA0NjMzLCAwLjAwNDczNiwgMC4wMDQ3NzQsIDAuMDA0Nzg3LCAwLjAwNDc5OSwgMC4wMDQ4MDYsIDAuMDA0ODEyIiwgXAotICAgICAgICAgICIwLjAwNDc0OCwgMC4wMDQ3NzMsIDAuMDA0ODA3LCAwLjAwNDgyLCAwLjAwNDgyNywgMC4wMDQ4MzMsIDAuMDA0ODM5IiwgXAotICAgICAgICAgICIwLjAwNDcxMywgMC4wMDQ3OTgsIDAuMDA0ODI2LCAwLjAwNDgzNywgMC4wMDQ4NDcsIDAuMDA0ODU3LCAwLjAwNDg2MiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2MTU5LCAwLjAwNjM1NywgMC4wMDYzODIsIDAuMDA2MzksIDAuMDA2Mzk3LCAwLjAwNjQsIDAuMDA2NDAzIiwgXAotICAgICAgICAgICIwLjAwNjEwNSwgMC4wMDYzMjQsIDAuMDA2MzU0LCAwLjAwNjM2MywgMC4wMDYzNzEsIDAuMDA2Mzc1LCAwLjAwNjM3OCIsIFwKLSAgICAgICAgICAiMC4wMDYwNjgsIDAuMDA2Mjg4LCAwLjAwNjMyOCwgMC4wMDYzNCwgMC4wMDYzNTIsIDAuMDA2MzU3LCAwLjAwNjM2MyIsIFwKLSAgICAgICAgICAiMC4wMDYwNzEsIDAuMDA2MjczLCAwLjAwNjMxNiwgMC4wMDYzMywgMC4wMDYzNDMsIDAuMDA2MzUsIDAuMDA2MzU2IiwgXAotICAgICAgICAgICIwLjAwNjA1OCwgMC4wMDYyNTgsIDAuMDA2MzA3LCAwLjAwNjMyNCwgMC4wMDYzMzksIDAuMDA2MzQ3LCAwLjAwNjM1NSIsIFwKLSAgICAgICAgICAiMC4wMDYwMywgMC4wMDYyNDIsIDAuMDA2MzAxLCAwLjAwNjMyMywgMC4wMDYzNDIsIDAuMDA2MzUyLCAwLjAwNjM2MiIsIFwKLSAgICAgICAgICAiMC4wMDYwNTMsIDAuMDA2MjU2LCAwLjAwNjMwNywgMC4wMDYzMzEsIDAuMDA2MzUzLCAwLjAwNjM2NSwgMC4wMDYzNzciKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IEFORDNYNiAqCi0gKiAtLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKEFORDNYNikgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjQyNzc1OTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxODc1NTg7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxODc1NTg7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxODcwNDsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA4MTksIDAuMDAwODE4LCAwLjAwMDgxOCwgMC4wMDA4MTcsIDAuMDAwODE3LCAwLjAwMDgxNywgMC4wMDA4MTciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA4MTksIDAuMDAwODIsIDAuMDAwODIsIDAuMDAwODIsIDAuMDAwODIsIDAuMDAwODIsIDAuMDAwODIiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTc3NTIzOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTc3NTIzOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTc3MDk4OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDgxOSwgMC4wMDA4MTgsIDAuMDAwODE3LCAwLjAwMDgxOCwgMC4wMDA4MTcsIDAuMDAwODE3LCAwLjAwMDgxNiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDgxOSwgMC4wMDA4MiwgMC4wMDA4MjEsIDAuMDAwODIsIDAuMDAwODIsIDAuMDAwODIxLCAwLjAwMDgyMSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQykgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNjQ1NDg7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNjQ0NjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE2NDU0ODsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA1MzYsIDAuMDAwNTM1LCAwLjAwMDUzNSwgMC4wMDA1MzQsIDAuMDAwNTM1LCAwLjAwMDUzNSwgMC4wMDA1MzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA5MjgsIDAuMDAwOTI5LCAwLjAwMDkzLCAwLjAwMDkyOSwgMC4wMDA5MjksIDAuMDAwOTI5LCAwLjAwMDkyOSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAxLjUwMjEyOwotICAgIGZ1bmN0aW9uIDogIigoQSBCKSBDKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzcyODcsIDAuMTMzODUxLCAwLjE4MjY5NywgMC4yMTcxNywgMC4yNzIyNjYsIDAuMzIwNDI3LCAwLjM4OTIxNyIsIFwKLSAgICAgICAgICAiMC4wODUyNDIsIDAuMTQxOTM4LCAwLjE5MDc5NCwgMC4yMjUyNzIsIDAuMjgwMzUsIDAuMzI4NTM0LCAwLjM5NzMyNCIsIFwKLSAgICAgICAgICAiMC4wOTQyODEsIDAuMTUxMDcsIDAuMTk5OTM3LCAwLjIzNDQxNiwgMC4yODk1MDQsIDAuMzM3NjY3LCAwLjQwNjQ3NCIsIFwKLSAgICAgICAgICAiMC4xMDMyMSwgMC4xNTk4OTQsIDAuMjA4NzIyLCAwLjI0MzE5OCwgMC4yOTgyOTQsIDAuMzQ2NDU4LCAwLjQxNTI2NSIsIFwKLSAgICAgICAgICAiMC4xMTE3NSwgMC4xNjg1NzIsIDAuMjE3NDEzLCAwLjI1MTkwNywgMC4zMDY5OTMsIDAuMzU1MTYsIDAuNDIzOTciLCBcCi0gICAgICAgICAgIjAuMTI0MjQyLCAwLjE4MTUwMSwgMC4yMzAzOTksIDAuMjY0ODg0LCAwLjMxOTk1NCwgMC4zNjgxMjEsIDAuNDM2OTIzIiwgXAotICAgICAgICAgICIwLjEzNDUzNiwgMC4xOTIxNzEsIDAuMjQxMTM5LCAwLjI3NTYwNywgMC4zMzA2OTEsIDAuMzc4ODU2LCAwLjQ0NzY5NSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzNTM3OSwgMC4xMjk4MjIsIDAuMjI1NzgyLCAwLjI5NTAzOCwgMC40MDY5MTcsIDAuNTA2OTY4LCAwLjY0ODU1MSIsIFwKLSAgICAgICAgICAiMC4wMzU1NTMsIDAuMTI5NzEyLCAwLjIyNTczMywgMC4yOTUzODEsIDAuNDA4MDQzLCAwLjUwNjEsIDAuNjQ4MzU4IiwgXAotICAgICAgICAgICIwLjAzNTQzOCwgMC4xMjk2MzEsIDAuMjI1NzAyLCAwLjI5NTM0NSwgMC40MDgwNTIsIDAuNTA2ODk1LCAwLjY0NzgwMyIsIFwKLSAgICAgICAgICAiMC4wMzU1NywgMC4xMjk2NTUsIDAuMjI1NjkyLCAwLjI5NTM3OCwgMC40MDc1MzQsIDAuNTA2ODk5LCAwLjY0NzgwOSIsIFwKLSAgICAgICAgICAiMC4wMzU4ODUsIDAuMTI5ODE1LCAwLjIyNTc3MSwgMC4yOTUzOCwgMC40MDc5ODIsIDAuNTA2ODUsIDAuNjQ3ODMiLCBcCi0gICAgICAgICAgIjAuMDM3NTg3LCAwLjEzMDUxNCwgMC4yMjYxNDgsIDAuMjk1NiwgMC40MDgxNzgsIDAuNTA2OTU3LCAwLjY0Nzc3NyIsIFwKLSAgICAgICAgICAiMC4wMzgwMTQsIDAuMTMxMzk4LCAwLjIyNjY4OCwgMC4yOTYyMzEsIDAuNDA4NDQxLCAwLjUwNzA3OCwgMC42NDg4MyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0MTM1OSwgMC4wOTQwNywgMC4xNDUwNzQsIDAuMTgxNDY2LCAwLjIzOTY2OSwgMC4yOTA1NjUsIDAuMzYzMjY4IiwgXAotICAgICAgICAgICIwLjA1MTMwNywgMC4xMDQwNDIsIDAuMTU1MDc0LCAwLjE5MTQ5OCwgMC4yNDk2NzksIDAuMzAwNTc3LCAwLjM3MzI4MSIsIFwKLSAgICAgICAgICAiMC4wNjM2MzQsIDAuMTE2MzUzLCAwLjE2NzQxNSwgMC4yMDM4MDIsIDAuMjYyMDE2LCAwLjMxMjkxNSwgMC4zODU2MyIsIFwKLSAgICAgICAgICAiMC4wNzQ3ODEsIDAuMTI3NTgyLCAwLjE3ODYzLCAwLjIxNTA1NiwgMC4yNzMyNTUsIDAuMzI0MTUzLCAwLjM5Njg2NyIsIFwKLSAgICAgICAgICAiMC4wODQyMDYsIDAuMTM3MzYzLCAwLjE4ODM5NSwgMC4yMjQ4LCAwLjI4MzAzOSwgMC4zMzM5MjUsIDAuNDA2NjI3IiwgXAotICAgICAgICAgICIwLjA5NzE1MSwgMC4xNTA4NDYsIDAuMjAxNzc5LCAwLjIzODE3MiwgMC4yOTYzNzUsIDAuMzQ3MjkzLCAwLjQyMDAxMSIsIFwKLSAgICAgICAgICAiMC4xMDcwMTcsIDAuMTYwOTg3LCAwLjIxMTksIDAuMjQ4Mjk2LCAwLjMwNjQ5NiwgMC4zNTczOTMsIDAuNDMwMSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyNTQ0MiwgMC4xMjQ4NTQsIDAuMjI2NjM3LCAwLjMwMDEyMywgMC40MTcxNzYsIDAuNTE5ODI5LCAwLjY2NjQyNyIsIFwKLSAgICAgICAgICAiMC4wMjU0MDUsIDAuMTI0NzcyLCAwLjIyNzAyLCAwLjMwMDA0MiwgMC40MTcxODksIDAuNTE5ODA5LCAwLjY2NjQ2NCIsIFwKLSAgICAgICAgICAiMC4wMjU2NzYsIDAuMTI1MDI1LCAwLjIyNzA0NCwgMC4zMDAxNDMsIDAuNDE3MTg5LCAwLjUxOTg4MSwgMC42NjU4ODEiLCBcCi0gICAgICAgICAgIjAuMDI2NjYyLCAwLjEyNTE4MywgMC4yMjY5LCAwLjMwMDA5NSwgMC40MTcxNTEsIDAuNTE5ODQ2LCAwLjY2NTg3MiIsIFwKLSAgICAgICAgICAiMC4wMjc4NjUsIDAuMTI1NDk5LCAwLjIyNzIwNCwgMC4yOTk3ODgsIDAuNDE2MTU1LCAwLjUxOTcxMiwgMC42NjY0MDMiLCBcCi0gICAgICAgICAgIjAuMDI5ODE3LCAwLjEyNjAxLCAwLjIyNzEwNSwgMC4zMDAwNjIsIDAuNDE3MDQzLCAwLjUxOTU5MSwgMC42NjYwNDgiLCBcCi0gICAgICAgICAgIjAuMDMxMTU4LCAwLjEyNjQwNSwgMC4yMjczNTQsIDAuMzAwMjUxLCAwLjQxNjU4NSwgMC41MTk3MzksIDAuNjY1MzkyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc1MSwgMC4xMzE2NTQsIDAuMTgwNTI3LCAwLjIxNTAyNCwgMC4yNzAwOSwgMC4zMTgzMDMsIDAuMzg3MDc2IiwgXAotICAgICAgICAgICIwLjA4MzIsIDAuMTM5OTA1LCAwLjE4ODc5MSwgMC4yMjMyOTEsIDAuMjc4MzY1LCAwLjMyNjU0NCwgMC4zOTUzNjIiLCBcCi0gICAgICAgICAgIjAuMDkzNjc3LCAwLjE1MDQ2LCAwLjE5OTMyLCAwLjIzMzgwNSwgMC4yODg4NzMsIDAuMzM3MDg0LCAwLjQwNTg5NSIsIFwKLSAgICAgICAgICAiMC4xMDQwNjksIDAuMTYwNzg0LCAwLjIwOTYyMywgMC4yNDQxMiwgMC4yOTkxOTQsIDAuMzQ3MzksIDAuNDE2MjI4IiwgXAotICAgICAgICAgICIwLjExNDA3NCwgMC4xNzA3OTEsIDAuMjE5NjM4LCAwLjI1NDE1LCAwLjMwOTIxOSwgMC4zNTczOSwgMC40MjYyMDEiLCBcCi0gICAgICAgICAgIjAuMTI4NzQ1LCAwLjE4NjA5MywgMC4yMzUwMTEsIDAuMjY5NDkzLCAwLjMyNDU2NSwgMC4zNzI3NDUsIDAuNDQxNTQ2IiwgXAotICAgICAgICAgICIwLjE0MDM5MiwgMC4xOTgyNjEsIDAuMjQ2ODE5LCAwLjI4MTY1NCwgMC4zMzY3MzUsIDAuMzg0OTEzLCAwLjQ1MzY4OCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzNTQ3OCwgMC4xMjk3MjksIDAuMjI1ODE1LCAwLjI5NTAzNSwgMC40MDgwNjgsIDAuNTA2MDM4LCAwLjY0Nzc5NiIsIFwKLSAgICAgICAgICAiMC4wMzU0OTgsIDAuMTI5NjgxLCAwLjIyNTY4MiwgMC4yOTUzNjIsIDAuNDA4MDMxLCAwLjUwNjk0MywgMC42NDc3NDgiLCBcCi0gICAgICAgICAgIjAuMDM1NDMxLCAwLjEyOTYyNCwgMC4yMjU2NjUsIDAuMjk1MjQ5LCAwLjQwNzk2NywgMC41MDcwNTcsIDAuNjQ3NjM5IiwgXAotICAgICAgICAgICIwLjAzNTkyNCwgMC4xMjk3MjksIDAuMjI1NjcxLCAwLjI5NTI5MywgMC40MDgwMTgsIDAuNTA3MTAyLCAwLjY0ODgyOCIsIFwKLSAgICAgICAgICAiMC4wMzYwMDYsIDAuMTI5OTYsIDAuMjI1ODM1LCAwLjI5NTMzLCAwLjQwODAxNywgMC41MDY4NywgMC42NDc4MjQiLCBcCi0gICAgICAgICAgIjAuMDM3NDc4LCAwLjEzMDUwNSwgMC4yMjYwOSwgMC4yOTU4NzEsIDAuNDA4MTI5LCAwLjUwNjk2NiwgMC42NDgzMzkiLCBcCi0gICAgICAgICAgIjAuMDM4NjE5LCAwLjEzMTQsIDAuMjI2NzgzLCAwLjI5NjA5LCAwLjQwODUyMSwgMC41MDcyOTIsIDAuNjQ4NjUiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDAxOCwgMC4wOTI3NTMsIDAuMTQzNzMxLCAwLjE4MDEyMSwgMC4yMzgyOTksIDAuMjg5MTc5LCAwLjM2MTg2IiwgXAotICAgICAgICAgICIwLjA1MDE1NywgMC4xMDI3MjMsIDAuMTUzNzEzLCAwLjE5MDEwMSwgMC4yNDgyNjksIDAuMjk5MTc4LCAwLjM3MTg4MyIsIFwKLSAgICAgICAgICAiMC4wNjIzMDIsIDAuMTE0OTE4LCAwLjE2NTkyOSwgMC4yMDIzMTMsIDAuMjYwNDk0LCAwLjMxMTM4NiwgMC4zODQwODQiLCBcCi0gICAgICAgICAgIjAuMDczMDMyLCAwLjEyNTc5OSwgMC4xNzY4MTIsIDAuMjEzMjA3LCAwLjI3MTQxOSwgMC4zMjIzMjYsIDAuMzk1MDEyIiwgXAotICAgICAgICAgICIwLjA4MjU3NiwgMC4xMzU2NDksIDAuMTg2NjY1LCAwLjIyMzAzMiwgMC4yODEyMTksIDAuMzMyMTM0LCAwLjQwNDgxNyIsIFwKLSAgICAgICAgICAiMC4wOTUwODMsIDAuMTQ4NzM1LCAwLjE5OTcwMiwgMC4yMzYwOCwgMC4yOTQyNjIsIDAuMzQ1MTczLCAwLjQxNzg1MSIsIFwKLSAgICAgICAgICAiMC4xMDQ1NDUsIDAuMTU4NjQsIDAuMjA5NTQsIDAuMjQ1OTIsIDAuMzA0MDk3LCAwLjM1NDk3OCwgMC40Mjc2NzYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjUxOTIsIDAuMTI0NjIsIDAuMjI2Njc2LCAwLjI5OTQyMSwgMC40MTcxMzMsIDAuNTE5ODA3LCAwLjY2NjQwOSIsIFwKLSAgICAgICAgICAiMC4wMjUyMiwgMC4xMjQ3NzQsIDAuMjI2NDc1LCAwLjI5OTM1MiwgMC40MTcyNDEsIDAuNTE5NzEzLCAwLjY2NjM0NiIsIFwKLSAgICAgICAgICAiMC4wMjU1NTEsIDAuMTI0NjkzLCAwLjIyNjkwMiwgMC4zLCAwLjQxNzIxNywgMC41MTk1MjcsIDAuNjY1MjQ2IiwgXAotICAgICAgICAgICIwLjAyNjY3NCwgMC4xMjUwNywgMC4yMjY3ODMsIDAuMjk5NjQ4LCAwLjQxNjEyMiwgMC41MTg4MDcsIDAuNjY2MzEzIiwgXAotICAgICAgICAgICIwLjAyNzg1OSwgMC4xMjUzOTcsIDAuMjI2NDE1LCAwLjI5OTg4MiwgMC40MTcxOTQsIDAuNTE5NjUzLCAwLjY2NjQzOCIsIFwKLSAgICAgICAgICAiMC4wMjk4MTgsIDAuMTI1OTMsIDAuMjI2ODIsIDAuMzAwMDQsIDAuNDE2ODA4LCAwLjUxOTQ5NSwgMC42NjU0NzgiLCBcCi0gICAgICAgICAgIjAuMDMxNDYyLCAwLjEyNjMyNiwgMC4yMjcyNTIsIDAuMzAwMDY5LCAwLjQxNjk1NywgMC41MTk1NzcsIDAuNjY1Mzk5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDcwNTMyLCAwLjEyNzEzNCwgMC4xNzYwMjQsIDAuMjEwNTEsIDAuMjY1NTc1LCAwLjMxMzc3NCwgMC4zODI2MDciLCBcCi0gICAgICAgICAgIjAuMDc4NTgxLCAwLjEzNTM3NywgMC4xODQyNzYsIDAuMjE4NzU0LCAwLjI3Mzg0MSwgMC4zMjIwMTMsIDAuMzkwODE0IiwgXAotICAgICAgICAgICIwLjA4OTcyMiwgMC4xNDY0NDIsIDAuMTk1MzA0LCAwLjIyOTc5MywgMC4yODQ4NjgsIDAuMzMzMDQ3LCAwLjQwMTg2NyIsIFwKLSAgICAgICAgICAiMC4xMDA3OTIsIDAuMTU3MzA3LCAwLjIwNjEzOSwgMC4yNDA2MjcsIDAuMjk1NzAxLCAwLjM0MzkyNCwgMC40MTI2OTUiLCBcCi0gICAgICAgICAgIjAuMTExNTg4LCAwLjE2ODQzLCAwLjIxNzI4OCwgMC4yNTE3NywgMC4zMDY4NywgMC4zNTUwMzUsIDAuNDIzODQiLCBcCi0gICAgICAgICAgIjAuMTI3Mjk4LCAwLjE4NDI0NywgMC4yMzMwMDQsIDAuMjY3NDg4LCAwLjMyMjU1MiwgMC4zNzA3NTIsIDAuNDM5NTE2IiwgXAotICAgICAgICAgICIwLjEzOTM0MiwgMC4xOTcwMDEsIDAuMjQ1OTg0LCAwLjI4MDQ4NywgMC4zMzU1NTYsIDAuMzgzNzE2LCAwLjQ1MjUyMSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzNTQ2NiwgMC4xMjk3NzIsIDAuMjI1NzYsIDAuMjk1MTUsIDAuNDA4MDUzLCAwLjUwNzEzNiwgMC42NDg4NTkiLCBcCi0gICAgICAgICAgIjAuMDM1NTEzLCAwLjEyOTY3NywgMC4yMjU3MDUsIDAuMjk1NDM3LCAwLjQwNzY3MSwgMC41MDY5MjYsIDAuNjQ4MzU4IiwgXAotICAgICAgICAgICIwLjAzNTMzMiwgMC4xMjk2MDUsIDAuMjI1NjgyLCAwLjI5NTI0MywgMC40MDgwMDcsIDAuNTA2NDIxLCAwLjY0ODcyMSIsIFwKLSAgICAgICAgICAiMC4wMzU1NzUsIDAuMTI5ODEsIDAuMjI1Nzc0LCAwLjI5NTMxOSwgMC40MDgwMzYsIDAuNTA3MDYzLCAwLjY0ODM0OCIsIFwKLSAgICAgICAgICAiMC4wMzY0NDYsIDAuMTI5OTI4LCAwLjIyNTg0NiwgMC4yOTUzMzQsIDAuNDA4MTIyLCAwLjUwNjg4LCAwLjY0ODI5MiIsIFwKLSAgICAgICAgICAiMC4wMzg0NjcsIDAuMTMxMTA4LCAwLjIyNjQ4NiwgMC4yOTYxMiwgMC40MDgzNTgsIDAuNTA3MjM0LCAwLjY0ODU4NCIsIFwKLSAgICAgICAgICAiMC4wNDAzODIsIDAuMTMyMTI2LCAwLjIyNzAzNCwgMC4yOTYyODcsIDAuNDA4NTI2LCAwLjUwNjc2LCAwLjY0ODcyNSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzODU2MywgMC4wOTEwMjksIDAuMTQxOTQzLCAwLjE3ODMyMSwgMC4yMzY0NzMsIDAuMjg3NDM2LCAwLjM2MDA5NSIsIFwKLSAgICAgICAgICAiMC4wNDg1NTQsIDAuMTAxMDEsIDAuMTUxOTYyLCAwLjE4ODM0MSwgMC4yNDY1MjEsIDAuMjk3NDM4LCAwLjM3MDE4NCIsIFwKLSAgICAgICAgICAiMC4wNjA1NDYsIDAuMTEzMTkyLCAwLjE2NDE1NCwgMC4yMDA1NTgsIDAuMjU4NzQsIDAuMzA5NzA4LCAwLjM4MjU2MSIsIFwKLSAgICAgICAgICAiMC4wNzA3NzksIDAuMTIzNTc5LCAwLjE3NDUzMiwgMC4yMTA5MiwgMC4yNjkxMzMsIDAuMzIwMDA4LCAwLjM5MjkxNyIsIFwKLSAgICAgICAgICAiMC4wNzk1NTksIDAuMTMyMTkyLCAwLjE4MzE1NCwgMC4yMTk1MDcsIDAuMjc3NzIxLCAwLjMyODYxNiwgMC40MDEzMTQiLCBcCi0gICAgICAgICAgIjAuMDkxOTg2LCAwLjE0NTEsIDAuMTk2MzAyLCAwLjIzMjI1NiwgMC4yOTA0NDYsIDAuMzQxNzA4LCAwLjQxNDAxNSIsIFwKLSAgICAgICAgICAiMC4xMDA4NjQsIDAuMTU0ODQsIDAuMjA1Nzg4LCAwLjI0MTI5MSwgMC4yOTk0MzgsIDAuMzUxMDkxLCAwLjQyMzc4NCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyNTAzNSwgMC4xMjQ0MDUsIDAuMjI2Mzc0LCAwLjMwMDAwNCwgMC40MTcwMDksIDAuNTE4Njc0LCAwLjY2NjMxMyIsIFwKLSAgICAgICAgICAiMC4wMjUwOCwgMC4xMjQ0NDEsIDAuMjI2NDI3LCAwLjI5OTk5NiwgMC40MTY0MjMsIDAuNTE4MzMyLCAwLjY2NTQxIiwgXAotICAgICAgICAgICIwLjAyNTY4NywgMC4xMjQ3OTMsIDAuMjI2MzY1LCAwLjI5OTEyMSwgMC40MTY1NCwgMC41MTg2NTYsIDAuNjY0NjE3IiwgXAotICAgICAgICAgICIwLjAyNjkyLCAwLjEyNTAzOSwgMC4yMjY4MjEsIDAuMjk5MTkzLCAwLjQxNTkwNSwgMC41MTk5NTcsIDAuNjY0Njc4IiwgXAotICAgICAgICAgICIwLjAyODA2OSwgMC4xMjU0OSwgMC4yMjcwNzUsIDAuMjk5NDkzLCAwLjQxNjczMiwgMC41MTg4NzgsIDAuNjY2NjE5IiwgXAotICAgICAgICAgICIwLjAzMDA5NywgMC4xMjYwMzksIDAuMjI2OTUyLCAwLjI5OTYzNCwgMC40MTc1NDYsIDAuNTE5OTI2LCAwLjY2NjU1IiwgXAotICAgICAgICAgICIwLjAzMjA1NCwgMC4xMjY0MjIsIDAuMjI3MTg5LCAwLjMwMDQxLCAwLjQxNjc0OSwgMC41MjAwOSwgMC42NjY3MTciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNzIyNSwgMC4wMDc0NDYsIDAuMDA3NDkzLCAwLjAwNzUwOCwgMC4wMDc1MTcsIDAuMDA3NTQxLCAwLjAwNzUzMyIsIFwKLSAgICAgICAgICAiMC4wMDcxMjMsIDAuMDA3MzUyLCAwLjAwNzQwMSwgMC4wMDc0MSwgMC4wMDc0MywgMC4wMDc0MzYsIDAuMDA3NDQzIiwgXAotICAgICAgICAgICIwLjAwNzA1MywgMC4wMDcyOTQsIDAuMDA3MzQ4LCAwLjAwNzM2NiwgMC4wMDczOCwgMC4wMDczODksIDAuMDA3Mzk1IiwgXAotICAgICAgICAgICIwLjAwNzAzNywgMC4wMDcyNjYsIDAuMDA3MzI1LCAwLjAwNzM0NCwgMC4wMDczNTksIDAuMDA3MzY4LCAwLjAwNzM3NSIsIFwKLSAgICAgICAgICAiMC4wMDcwNSwgMC4wMDcyNTQsIDAuMDA3MzA5LCAwLjAwNzMyOSwgMC4wMDczNDksIDAuMDA3MzU4LCAwLjAwNzM2NiIsIFwKLSAgICAgICAgICAiMC4wMDcwOTksIDAuMDA3MjM5LCAwLjAwNzI5OCwgMC4wMDczMjUsIDAuMDA3MzQyLCAwLjAwNzM1MiwgMC4wMDczNjUiLCBcCi0gICAgICAgICAgIjAuMDA3MTEzLCAwLjAwNzIzMSwgMC4wMDcyOTEsIDAuMDA3MzIxLCAwLjAwNzM0MSwgMC4wMDczNTMsIDAuMDA3MzU1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTEwNzgsIDAuMDExMzc2LCAwLjAxMTQyLCAwLjAxMTQzMywgMC4wMTE0NDUsIDAuMDExNDUxLCAwLjAxMTQ1NyIsIFwKLSAgICAgICAgICAiMC4wMTA5OTQsIDAuMDExMzA0LCAwLjAxMTM1OCwgMC4wMTEzNzUsIDAuMDExMzksIDAuMDExMzk4LCAwLjAxMTQwNSIsIFwKLSAgICAgICAgICAiMC4wMTA5MzMsIDAuMDExMjU3LCAwLjAxMTMyNiwgMC4wMTEzNSwgMC4wMTEzNzIsIDAuMDExMzgzLCAwLjAxMTM5MyIsIFwKLSAgICAgICAgICAiMC4wMTA5MTgsIDAuMDExMjI2LCAwLjAxMTMxNCwgMC4wMTEzNCwgMC4wMTEzNjYsIDAuMDExMzgsIDAuMDExMzkzIiwgXAotICAgICAgICAgICIwLjAxMDkzLCAwLjAxMTIyMSwgMC4wMTEzMDcsIDAuMDExMzM4LCAwLjAxMTM2OCwgMC4wMTEzODQsIDAuMDExMzk4IiwgXAotICAgICAgICAgICIwLjAxMDk2NCwgMC4wMTEyMzYsIDAuMDExMzI1LCAwLjAxMTM2MSwgMC4wMTEzOTYsIDAuMDExNDE0LCAwLjAxMTQzMSIsIFwKLSAgICAgICAgICAiMC4wMTEwMjUsIDAuMDExMjcxLCAwLjAxMTM2NSwgMC4wMTE0MDEsIDAuMDExNDM4LCAwLjAxMTQ1OSwgMC4wMTE0NzgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNzIxNywgMC4wMDc0NjQsIDAuMDA3NTEyLCAwLjAwNzUyNywgMC4wMDc1NDEsIDAuMDA3NTQ3LCAwLjAwNzU1NCIsIFwKLSAgICAgICAgICAiMC4wMDcxMTcsIDAuMDA3MzYsIDAuMDA3NDEyLCAwLjAwNzQyNiwgMC4wMDc0NDUsIDAuMDA3NDU3LCAwLjAwNzQ2MSIsIFwKLSAgICAgICAgICAiMC4wMDcwNTYsIDAuMDA3MzA0LCAwLjAwNzM1NywgMC4wMDczNzcsIDAuMDA3Mzk0LCAwLjAwNzQwMywgMC4wMDc0MTEiLCBcCi0gICAgICAgICAgIjAuMDA3MDc0LCAwLjAwNzI3MywgMC4wMDczMzYsIDAuMDA3MzU0LCAwLjAwNzM3NCwgMC4wMDczODIsIDAuMDA3MzkxIiwgXAotICAgICAgICAgICIwLjAwNzA0NiwgMC4wMDcyNDEsIDAuMDA3MzA3LCAwLjAwNzMzMiwgMC4wMDczNTYsIDAuMDA3Mzc0LCAwLjAwNzM4IiwgXAotICAgICAgICAgICIwLjAwNzA5MiwgMC4wMDcyNDQsIDAuMDA3MzExLCAwLjAwNzMzLCAwLjAwNzM2NCwgMC4wMDczNzksIDAuMDA3Mzg0IiwgXAotICAgICAgICAgICIwLjAwNzA5MywgMC4wMDcyNDksIDAuMDA3MzA4LCAwLjAwNzM0LCAwLjAwNzM3NSwgMC4wMDczNzcsIDAuMDA3Mzg3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTAzMjYsIDAuMDEwNjQ4LCAwLjAxMDY5MywgMC4wMTA3MDcsIDAuMDEwNzE5LCAwLjAxMDcyNiwgMC4wMTA3MzEiLCBcCi0gICAgICAgICAgIjAuMDEwMjI1LCAwLjAxMDU2NywgMC4wMTA2MjQsIDAuMDEwNjQyLCAwLjAxMDY1OCwgMC4wMTA2NjcsIDAuMDEwNjc0IiwgXAotICAgICAgICAgICIwLjAxMDE1LCAwLjAxMDUwNSwgMC4wMTA1ODEsIDAuMDEwNjA3LCAwLjAxMDYzLCAwLjAxMDY0MiwgMC4wMTA2NTMiLCBcCi0gICAgICAgICAgIjAuMDEwMTM2LCAwLjAxMDQ3OSwgMC4wMTA1NjIsIDAuMDEwNTkyLCAwLjAxMDYyMSwgMC4wMTA2MzYsIDAuMDEwNjUiLCBcCi0gICAgICAgICAgIjAuMDEwMDg4LCAwLjAxMDQyNiwgMC4wMTA1MiwgMC4wMTA1NSwgMC4wMTA1ODYsIDAuMDEwNjAzLCAwLjAxMDYxOSIsIFwKLSAgICAgICAgICAiMC4wMTAxMTYsIDAuMDEwNDI0LCAwLjAxMDUyOCwgMC4wMTA1NjUsIDAuMDEwNjAyLCAwLjAxMDYyMywgMC4wMTA2NDEiLCBcCi0gICAgICAgICAgIjAuMDEwMTYzLCAwLjAxMDQ0OCwgMC4wMTA1NTIsIDAuMDEwNTkzLCAwLjAxMDYzNCwgMC4wMTA2NTcsIDAuMDEwNjc4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDcyLCAwLjAwNzQ1NSwgMC4wMDc1MDgsIDAuMDA3NTI0LCAwLjAwNzU0NSwgMC4wMDc1NTgsIDAuMDA3NTU4IiwgXAotICAgICAgICAgICIwLjAwNzA5NiwgMC4wMDczNDUsIDAuMDA3NDAxLCAwLjAwNzQyMiwgMC4wMDc0NCwgMC4wMDc0NTIsIDAuMDA3NDU4IiwgXAotICAgICAgICAgICIwLjAwNzA3NCwgMC4wMDczMTEsIDAuMDA3MzcyLCAwLjAwNzM5NCwgMC4wMDc0MTUsIDAuMDA3NDI2LCAwLjAwNzQzNiIsIFwKLSAgICAgICAgICAiMC4wMDcwODMsIDAuMDA3Mjg3LCAwLjAwNzM1OSwgMC4wMDczODYsIDAuMDA3NDEsIDAuMDA3NDI4LCAwLjAwNzQzMyIsIFwKLSAgICAgICAgICAiMC4wMDcyMDgsIDAuMDA3MzM1LCAwLjAwNzM4NywgMC4wMDc0MTUsIDAuMDA3NDM4LCAwLjAwNzQ1OCwgMC4wMDc0NjUiLCBcCi0gICAgICAgICAgIjAuMDA3MjEzLCAwLjAwNzM3NiwgMC4wMDc0MzgsIDAuMDA3NDYzLCAwLjAwNzQ5NSwgMC4wMDc1MDMsIDAuMDA3NTE4IiwgXAotICAgICAgICAgICIwLjAwNzI3OCwgMC4wMDc0MjcsIDAuMDA3NDc5LCAwLjAwNzUxMSwgMC4wMDc1MzgsIDAuMDA3NTU0LCAwLjAwNzU2NiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA5NTA1LCAwLjAwOTgxMSwgMC4wMDk4NTMsIDAuMDA5ODY2LCAwLjAwOTg3NywgMC4wMDk4ODIsIDAuMDA5ODg3IiwgXAotICAgICAgICAgICIwLjAwOTM5MSwgMC4wMDk3MjksIDAuMDA5NzgyLCAwLjAwOTc5OSwgMC4wMDk4MTMsIDAuMDA5ODIsIDAuMDA5ODI3IiwgXAotICAgICAgICAgICIwLjAwOTM1MiwgMC4wMDk2NjgsIDAuMDA5NzM0LCAwLjAwOTc1NSwgMC4wMDk3NzUsIDAuMDA5Nzg1LCAwLjAwOTc5NCIsIFwKLSAgICAgICAgICAiMC4wMDkzMTUsIDAuMDA5NjE3LCAwLjAwOTcwNCwgMC4wMDk3MzIsIDAuMDA5NzU4LCAwLjAwOTc3MiwgMC4wMDk3ODUiLCBcCi0gICAgICAgICAgIjAuMDA5MjY5LCAwLjAwOTYsIDAuMDA5NjkyLCAwLjAwOTcyNSwgMC4wMDk3NTYsIDAuMDA5NzczLCAwLjAwOTc4OCIsIFwKLSAgICAgICAgICAiMC4wMDkzMTgsIDAuMDA5NTcsIDAuMDA5NjgzLCAwLjAwOTcwNSwgMC4wMDk3NCwgMC4wMDk3NjksIDAuMDA5Nzc3IiwgXAotICAgICAgICAgICIwLjAwOTM5OCwgMC4wMDk1ODksIDAuMDA5NzE3LCAwLjAwOTcyMSwgMC4wMDk3NjUsIDAuMDA5ODA5LCAwLjAwOTgyNCIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogQU8yMlg0ICoKLSAqIC0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoQU8yMlg0KSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMjkxOTAxOwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwODUzMTg2OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDg0OTUzNDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA4NTMxODY7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNDA5LCAwLjAwMDQwOSwgMC4wMDA0MDksIDAuMDAwNDA5LCAwLjAwMDQwOSwgMC4wMDA0MDksIDAuMDAwNDA5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNDIsIDAuMDAwNDExLCAwLjAwMDQxLCAwLjAwMDQxLCAwLjAwMDQxLCAwLjAwMDQxLCAwLjAwMDQxIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihBMSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwOTA2NTU7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwOTAwMjMyOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDkwNjU1OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDIyOSwgMC4wMDAyMjgsIDAuMDAwMjI4LCAwLjAwMDIyOSwgMC4wMDAyMjgsIDAuMDAwMjI5LCAwLjAwMDIyOCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDQ2NCwgMC4wMDA0NjQsIDAuMDAwNDY1LCAwLjAwMDQ2NCwgMC4wMDA0NjQsIDAuMDAwNDY0LCAwLjAwMDQ2NCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQjApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDg2Nzk3NjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA4Njc5NzY7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwODY1NzYxOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDQwOSwgMC4wMDA0MDksIDAuMDAwNDA5LCAwLjAwMDQwOSwgMC4wMDA0MDksIDAuMDAwNDA5LCAwLjAwMDQwOSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDQxOSwgMC4wMDA0MTEsIDAuMDAwNDEsIDAuMDAwNDEsIDAuMDAwNDEsIDAuMDAwNDEsIDAuMDAwNDEiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIxKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA5MzkxMzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA5Mzg3NzI7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwOTM5MTM7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjIyLCAwLjAwMDIyMiwgMC4wMDAyMjIsIDAuMDAwMjIyLCAwLjAwMDIyMiwgMC4wMDAyMjIsIDAuMDAwMjIyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNDY0LCAwLjAwMDQ2NCwgMC4wMDA0NjQsIDAuMDAwNDY0LCAwLjAwMDQ2NCwgMC4wMDA0NjQsIDAuMDAwNDY0Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuOTk5MDM0OwotICAgIGZ1bmN0aW9uIDogIigoQTAgQTEpKyhCMCBCMSkpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODE1MjcsIDAuMTYwNDg3LCAwLjIzMzA5NSwgMC4yODQ3OTgsIDAuMzY3NDUzLCAwLjQzOTgyLCAwLjU0Mjk1OCIsIFwKLSAgICAgICAgICAiMC4wOTAzNzMsIDAuMTY5MzQzLCAwLjI0MTk0LCAwLjI5MzY0NSwgMC4zNzYyOTgsIDAuNDQ4NjY3LCAwLjU1MTgwMyIsIFwKLSAgICAgICAgICAiMC4xMDEyODUsIDAuMTgwMjUzLCAwLjI1Mjg1MiwgMC4zMDQ1NTcsIDAuMzg3MjEzLCAwLjQ1OTU4NCwgMC41NjI3MiIsIFwKLSAgICAgICAgICAiMC4xMTIxNTgsIDAuMTkxMTIxLCAwLjI2MzczNCwgMC4zMTU0NDQsIDAuMzk4MDk5LCAwLjQ3MDM3NSwgMC41NzM1NzkiLCBcCi0gICAgICAgICAgIjAuMTIyNzI0LCAwLjIwMTY2NCwgMC4yNzQyNzMsIDAuMzI1OTg0LCAwLjQwODY3NiwgMC40ODA5NzQsIDAuNTg0MTQ1IiwgXAotICAgICAgICAgICIwLjEzODU1MSwgMC4yMTc2ODMsIDAuMjkwMjA4LCAwLjM0MTkxNiwgMC40MjQ1NjgsIDAuNDk2ODgsIDAuNjAwMDk3IiwgXAotICAgICAgICAgICIwLjE1MTE5NCwgMC4yMzA4MTcsIDAuMzAzNDM0LCAwLjM1NTEzOCwgMC40Mzc3ODUsIDAuNTEwMDk3LCAwLjYxMzMxNiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0MjgzNSwgMC4xODM2MTgsIDAuMzMwMzQsIDAuNDM2MDY0LCAwLjYwNTE5MiwgMC43NTQ4ODYsIDAuOTY3Njk2IiwgXAotICAgICAgICAgICIwLjA0Mjg0OSwgMC4xODM3NDMsIDAuMzMwMzM1LCAwLjQzNjA2NiwgMC42MDUxOCwgMC43NTQ3MDEsIDAuOTY3NjU2IiwgXAotICAgICAgICAgICIwLjA0Mjc5OCwgMC4xODM3MTcsIDAuMzMwMzE1LCAwLjQzNjA1LCAwLjYwNTE0MSwgMC43NTQ3NDYsIDAuOTY3NjQ3IiwgXAotICAgICAgICAgICIwLjA0MjgyNywgMC4xODM3NDMsIDAuMzMwMDQsIDAuNDM2MDU5LCAwLjYwNTI3OSwgMC43NTQ3NzksIDAuOTY3NTY4IiwgXAotICAgICAgICAgICIwLjA0MzAyMywgMC4xODM3ODIsIDAuMzMwMTA4LCAwLjQzNTc0NiwgMC42MDYwMDQsIDAuNzU0ODk5LCAwLjk2NzQ4OSIsIFwKLSAgICAgICAgICAiMC4wNDQxMTYsIDAuMTgzODgyLCAwLjMzMDQxOSwgMC40MzYwOCwgMC42MDU2MTUsIDAuNzU0NjcxLCAwLjk2NzUyOSIsIFwKLSAgICAgICAgICAiMC4wNDU0MDEsIDAuMTg0NDQyLCAwLjMzMDI3OSwgMC40MzYxNTcsIDAuNjA1ODk4LCAwLjc1NDY4OSwgMC45Njc1NDkiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODU1MDQsIDAuMTY1NTc4LCAwLjIzOTM0NSwgMC4yOTE4NiwgMC4zNzU4MjgsIDAuNDQ5Mjk3LCAwLjU1NDE5NSIsIFwKLSAgICAgICAgICAiMC4wOTUxMzIsIDAuMTc1MjIxLCAwLjI0ODk5NCwgMC4zMDE1MTIsIDAuMzg1NDcyLCAwLjQ1ODkzNSwgMC41NjM4MDEiLCBcCi0gICAgICAgICAgIjAuMTA1NjY0LCAwLjE4NTc4MSwgMC4yNTk0OTUsIDAuMzEyMDEyLCAwLjM5NTk4NiwgMC40Njk0NTUsIDAuNTc0MzQ4IiwgXAotICAgICAgICAgICIwLjExNTc3MiwgMC4xOTU4MDUsIDAuMjY5NTksIDAuMzIyMTA2LCAwLjQwNjA4NSwgMC40Nzk1NTcsIDAuNTg0NDQiLCBcCi0gICAgICAgICAgIjAuMTI1MzcxLCAwLjIwNTQ5MiwgMC4yNzkzMDIsIDAuMzMxODE4LCAwLjQxNTc5OSwgMC40ODkzMSwgMC41OTQxNDciLCBcCi0gICAgICAgICAgIjAuMTM5OTgzLCAwLjIyMDM5NywgMC4yOTQxNjcsIDAuMzQ2Njg3LCAwLjQzMDY2NywgMC41MDQxMDksIDAuNjA5MDE3IiwgXAotICAgICAgICAgICIwLjE1MTQ3LCAwLjIzMjMzNiwgMC4zMDYxMzUsIDAuMzU4NjUyLCAwLjQ0MjY4OCwgMC41MTYwODEsIDAuNjIxMDA4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQxNDYsIDAuMTgzNDE3LCAwLjMyOTYyNywgMC40MzU2MDEsIDAuNjA1MTA3LCAwLjc1MzM5MywgMC45NjY1NzQiLCBcCi0gICAgICAgICAgIjAuMDQxNDMzLCAwLjE4MzQ4MywgMC4zMzAwMzQsIDAuNDM1NjIzLCAwLjYwNDc5MSwgMC43NTI4MDgsIDAuOTY2Mzc0IiwgXAotICAgICAgICAgICIwLjA0MTM4MSwgMC4xODM0MzcsIDAuMzI5NjUyLCAwLjQzNTU4LCAwLjYwNTE2NSwgMC43NTM2NSwgMC45NjY1NzQiLCBcCi0gICAgICAgICAgIjAuMDQxMzE1LCAwLjE4MzM5NiwgMC4zMjk3NDUsIDAuNDM1NTkyLCAwLjYwNDIwOCwgMC43NTI2MDMsIDAuOTY2NjY0IiwgXAotICAgICAgICAgICIwLjA0MTY2NiwgMC4xODM0NywgMC4zMjk2NzMsIDAuNDM1NjA1LCAwLjYwNDI4MiwgMC43NTI2MzIsIDAuOTY2NjY2IiwgXAotICAgICAgICAgICIwLjA0MjYwOCwgMC4xODM3NzUsIDAuMzMwMjA5LCAwLjQzNTY4OSwgMC42MDQyNjksIDAuNzUzMjI4LCAwLjk2NjY2MiIsIFwKLSAgICAgICAgICAiMC4wNDM3OTksIDAuMTg0MjU1LCAwLjMzMDQ2NywgMC40MzUzMzUsIDAuNjA1MDUsIDAuNzUzNjk2LCAwLjk2NjQ2MyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzkxOCwgMC4xNTgxMzYsIDAuMjMwNzMxLCAwLjI4MjQzNCwgMC4zNjUwOTEsIDAuNDM3NDUyLCAwLjU0MDU5MSIsIFwKLSAgICAgICAgICAiMC4wODgxMzEsIDAuMTY3MTA0LCAwLjIzOTcwMiwgMC4yOTE0MDYsIDAuMzc0MDU4LCAwLjQ0NjM3NywgMC41NDk1NzIiLCBcCi0gICAgICAgICAgIjAuMDk5NzkyLCAwLjE3ODc1MiwgMC4yNTEzNTQsIDAuMzAzMDYxLCAwLjM4NTcxOCwgMC40NTgwOTEsIDAuNTYxMjI3IiwgXAotICAgICAgICAgICIwLjExMTcwMiwgMC4xOTA2NjIsIDAuMjYzMjY1LCAwLjMxNDk5MSwgMC4zOTc2MzIsIDAuNDY5OTIyLCAwLjU3MzE0IiwgXAotICAgICAgICAgICIwLjEyMzY4MywgMC4yMDI2MDIsIDAuMjc1MjA2LCAwLjMyNjkxNCwgMC40MDk1NjgsIDAuNDgxODk3LCAwLjU4NTA4NyIsIFwKLSAgICAgICAgICAiMC4xNDE0OTcsIDAuMjIwNjU3LCAwLjI5MzI2MiwgMC4zNDQ5NjgsIDAuNDI3NjE0LCAwLjQ5OTk0MiwgMC42MDMxNDkiLCBcCi0gICAgICAgICAgIjAuMTU1NDY3LCAwLjIzNTEwNCwgMC4zMDc2OSwgMC4zNTk0NCwgMC40NDIwNCwgMC41MTQzMjMsIDAuNjE3NTc1Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQyODcsIDAuMTgzNzQzLCAwLjMzMDM0MSwgMC40MzYwNTgsIDAuNjA1NzE2LCAwLjc1NDM1OCwgMC45Njc2ODUiLCBcCi0gICAgICAgICAgIjAuMDQyODA4LCAwLjE4MzczNiwgMC4zMzAzMzIsIDAuNDM2MDY0LCAwLjYwNTEzNSwgMC43NTQ3MTksIDAuOTY3NjU5IiwgXAotICAgICAgICAgICIwLjA0Mjc5NCwgMC4xODM3MTksIDAuMzMwMzE0LCAwLjQzNjA1LCAwLjYwNTEzNiwgMC43NTQ3NjksIDAuOTY3NjQyIiwgXAotICAgICAgICAgICIwLjA0MzA3NiwgMC4xODM3NzksIDAuMzMwMzE2LCAwLjQzNTY4NiwgMC42MDU4NTUsIDAuNzU0NzksIDAuOTY3NjU0IiwgXAotICAgICAgICAgICIwLjA0MzEzNywgMC4xODM3ODEsIDAuMzMwMzA4LCAwLjQzNjAxOCwgMC42MDUwOTgsIDAuNzU0NzMxLCAwLjk2NzUzIiwgXAotICAgICAgICAgICIwLjA0NDc0NCwgMC4xODQwMzQsIDAuMzMwNDA2LCAwLjQzNjA3NCwgMC42MDU3NzksIDAuNzU0NjUyLCAwLjk2NzUyMSIsIFwKLSAgICAgICAgICAiMC4wNDY5ODEsIDAuMTg0NjE3LCAwLjMzMDYzMywgMC40MzU5MTIsIDAuNjA1ODc0LCAwLjc1NDY4LCAwLjk2NzU1MyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4MjA5NywgMC4xNjE5OTcsIDAuMjM1NjQ2LCAwLjI4ODE4MiwgMC4zNzIxMjYsIDAuNDQ1NjExLCAwLjU1MDQyMiIsIFwKLSAgICAgICAgICAiMC4wOTE1MjksIDAuMTcxNDA2LCAwLjI0NTExNCwgMC4yOTc1NzksIDAuMzgxNTQ4LCAwLjQ1NDk2NywgMC41NTk4MzIiLCBcCi0gICAgICAgICAgIjAuMTAyMTMxLCAwLjE4MTk1NSwgMC4yNTU2NTMsIDAuMzA4MTQ2LCAwLjM5MjEwNSwgMC40NjU0OTgsIDAuNTcwMzg4IiwgXAotICAgICAgICAgICIwLjExMjA4OCwgMC4xOTE5MjYsIDAuMjY1NjQ0LCAwLjMxODEyOSwgMC40MDIwNzYsIDAuNDc1NTY1LCAwLjU4MDM3OCIsIFwKLSAgICAgICAgICAiMC4xMjE2NDIsIDAuMjAxNTIyLCAwLjI3NTIzMywgMC4zMjc3MTksIDAuNDExNjY4LCAwLjQ4NTE1NywgMC41ODk5NzEiLCBcCi0gICAgICAgICAgIjAuMTM2MDg5LCAwLjIxNjI1OSwgMC4yODk5NjYsIDAuMzQyNDUsIDAuNDI2Mzk0LCAwLjQ5OTg0MiwgMC42MDQ3MDciLCBcCi0gICAgICAgICAgIjAuMTQ3MDk2LCAwLjIyNzg3MSwgMC4zMDE1NDgsIDAuMzU0MDQ3LCAwLjQzNzk4LCAwLjUxMTM5OCwgMC42MTYyNjIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDA5OSwgMC4xODMwODQsIDAuMzI5NzU0LCAwLjQzNTMzOSwgMC42MDQ1NDIsIDAuNzUzNDI4LCAwLjk2NjQzOSIsIFwKLSAgICAgICAgICAiMC4wNDA5NTgsIDAuMTgzMTQ0LCAwLjMyOTAzMSwgMC40MzUzMzMsIDAuNjA1MTEzLCAwLjc1MjEwMiwgMC45NjY0MDMiLCBcCi0gICAgICAgICAgIjAuMDQwOTkzLCAwLjE4MzE0LCAwLjMyOTQwNywgMC40MzUzMzksIDAuNjA1MTQ3LCAwLjc1MzM4LCAwLjk2NjQyIiwgXAotICAgICAgICAgICIwLjA0MDkyMSwgMC4xODMwNjMsIDAuMzI5MzM3LCAwLjQzNTI5NSwgMC42MDM5OTIsIDAuNzUyNTQ5LCAwLjk2NjQxOCIsIFwKLSAgICAgICAgICAiMC4wNDEzMTgsIDAuMTgzMjIsIDAuMzI5MzU0LCAwLjQzNTMxOSwgMC42MDQwMDEsIDAuNzUyNTM3LCAwLjk2NjQyOSIsIFwKLSAgICAgICAgICAiMC4wNDI0NDYsIDAuMTgzNTU1LCAwLjMyOTU2NCwgMC40MzU0MTksIDAuNjA0ODM5LCAwLjc1MjY4NiwgMC45NjY0NTIiLCBcCi0gICAgICAgICAgIjAuMDQzODY2LCAwLjE4NDE2MiwgMC4zMjk5NiwgMC40MzUyMiwgMC42MDUwNiwgMC43NTM3MDksIDAuOTY2MTczIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3MDQyMiwgMC4xNDgzNDUsIDAuMjIwNjYxLCAwLjI3MjI0MSwgMC4zNTQ3NjIsIDAuNDI3MDI1LCAwLjUzMDE0NyIsIFwKLSAgICAgICAgICAiMC4wNzkzMSwgMC4xNTcyNDgsIDAuMjI5NTcsIDAuMjgxMTUsIDAuMzYzNjY5LCAwLjQzNTkzOCwgMC41MzkwNjQiLCBcCi0gICAgICAgICAgIjAuMDkwMDczLCAwLjE2ODAxLCAwLjI0MDMzNSwgMC4yOTE5MTIsIDAuMzc0NDM0LCAwLjQ0NjY5OCwgMC41NDk4MzMiLCBcCi0gICAgICAgICAgIjAuMTAwNTY4LCAwLjE3ODY4MiwgMC4yNTA5OTgsIDAuMzAyNTgxLCAwLjM4NTEwOCwgMC40NTc0NTQsIDAuNTYwNTA5IiwgXAotICAgICAgICAgICIwLjExMDUyNSwgMC4xODg2LCAwLjI2MDkzMSwgMC4zMTI1MTUsIDAuMzk1MDQxLCAwLjQ2NzI5NCwgMC41NzA0NDQiLCBcCi0gICAgICAgICAgIjAuMTI1MTM1LCAwLjIwMzcwMSwgMC4yNzYwMzQsIDAuMzI3NjU0LCAwLjQxMDEzLCAwLjQ4MjQzNSwgMC41ODU1MzkiLCBcCi0gICAgICAgICAgIjAuMTM2NTc0LCAwLjIxNTc1OCwgMC4yODgwNTgsIDAuMzM5NjQ2LCAwLjQyMjE2MSwgMC40OTQzNTksIDAuNTk3NTA0Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQxNDAyLCAwLjE4MjUxNCwgMC4zMjkyNDYsIDAuNDM1MDE2LCAwLjYwNDIyMiwgMC43NTM5NzUsIDAuOTY1NjM4IiwgXAotICAgICAgICAgICIwLjA0MTM4MywgMC4xODI1MDQsIDAuMzI5MjMsIDAuNDM1MDA2LCAwLjYwNDIwMSwgMC43NTM5NDksIDAuOTY1NjY5IiwgXAotICAgICAgICAgICIwLjA0MTQwMSwgMC4xODI1NiwgMC4zMjkyMjgsIDAuNDM1MDA1LCAwLjYwNDIyNiwgMC43NTM5MjQsIDAuOTY1NzE5IiwgXAotICAgICAgICAgICIwLjA0MTYzNywgMC4xODI1NDMsIDAuMzI5MjQ1LCAwLjQzNDk0OCwgMC42MDQ3ODIsIDAuNzUzOTM5LCAwLjk2NTgxOSIsIFwKLSAgICAgICAgICAiMC4wNDIyNzEsIDAuMTgyNjQ4LCAwLjMyOTI1LCAwLjQzNDk5MywgMC42MDQyMTMsIDAuNzU0MTA5LCAwLjk2NzA1OSIsIFwKLSAgICAgICAgICAiMC4wNDM5NjUsIDAuMTgzMDQsIDAuMzI5MjI2LCAwLjQzNTI3LCAwLjYwNDEzNSwgMC43NTM4NTksIDAuOTY1NTc5IiwgXAotICAgICAgICAgICIwLjA0NTM5LCAwLjE4Mzg4NSwgMC4zMjk4MTYsIDAuNDM1MzMsIDAuNjA0ODkxLCAwLjc1MzA2NywgMC45NjY4NTQiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzYyNiwgMC4xNTYzNjMsIDAuMjMwMTQsIDAuMjgyNjU2LCAwLjM2NjYxNSwgMC40NDAwNjksIDAuNTQ0OTQzIiwgXAotICAgICAgICAgICIwLjA4NTE0MiwgMC4xNjUyODIsIDAuMjM5MDY1LCAwLjI5MTU3OSwgMC4zNzU1NTEsIDAuNDQ5MDIyLCAwLjU1MzkwNCIsIFwKLSAgICAgICAgICAiMC4wOTY3MzksIDAuMTc2NzcsIDAuMjUwNTY1LCAwLjMwMzA4MiwgMC4zODcwNjIsIDAuNDYwNTM1LCAwLjU2NTQxMyIsIFwKLSAgICAgICAgICAiMC4xMDgzNzgsIDAuMTg4NDE3LCAwLjI2MjIxMywgMC4zMTQ3MywgMC4zOTg3MTgsIDAuNDcyMjMzLCAwLjU3NzA3MSIsIFwKLSAgICAgICAgICAiMC4xMTk2NzIsIDAuMTk5ODE2LCAwLjI3MzYxMSwgMC4zMjYxNDksIDAuNDEwMTE2LCAwLjQ4MzU3OSwgMC41ODg0MzgiLCBcCi0gICAgICAgICAgIjAuMTM2MTg2LCAwLjIxNjQ5MiwgMC4yOTAyNjQsIDAuMzQyNzg5LCAwLjQyNjgyOSwgMC41MDAyMjMsIDAuNjA1MDkzIiwgXAotICAgICAgICAgICIwLjE0ODk2NywgMC4yMjk3NTEsIDAuMzAzNTI4LCAwLjM1NjA2OCwgMC40NDAwMTcsIDAuNTEzNDgsIDAuNjE4NDA1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQxNDQ0LCAwLjE4MzQ3OCwgMC4zMzAwNDMsIDAuNDM1NjIzLCAwLjYwNDc5MywgMC43NTI3MzcsIDAuOTY2NDEyIiwgXAotICAgICAgICAgICIwLjA0MTMwOSwgMC4xODMzNzMsIDAuMzI5NzcsIDAuNDM1NjEsIDAuNjA0OTE0LCAwLjc1MzY0LCAwLjk2NjYyOCIsIFwKLSAgICAgICAgICAiMC4wNDEzMTIsIDAuMTgzNDA4LCAwLjMyOTc1NywgMC40MzU1ODEsIDAuNjA0OTExLCAwLjc1MzY3NywgMC45NjY2NiIsIFwKLSAgICAgICAgICAiMC4wNDEzMjcsIDAuMTgzNDE3LCAwLjMyOTY1OSwgMC40MzU1NzcsIDAuNjA0NDMzLCAwLjc1MjExMywgMC45NjY2NTQiLCBcCi0gICAgICAgICAgIjAuMDQxODE4LCAwLjE4MzYyMSwgMC4zMzAxNzUsIDAuNDM1NzY3LCAwLjYwNTI2NSwgMC43NTM3NDYsIDAuOTY2NTE1IiwgXAotICAgICAgICAgICIwLjA0MzM2NiwgMC4xODM5MDcsIDAuMzMwMDI1LCAwLjQzNTcyLCAwLjYwNTAyOSwgMC43NTM3NDcsIDAuOTY2Mzg0IiwgXAotICAgICAgICAgICIwLjA0NDkxNSwgMC4xODQ0NTksIDAuMzMwNDk1LCAwLjQzNjAwOCwgMC42MDUzMDEsIDAuNzUzMTQxLCAwLjk2NjQxMSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjc5NTEsIDAuMTQ1ODk1LCAwLjIxODIxMiwgMC4yNjk3OTQsIDAuMzUyMzE1LCAwLjQyNDU4NCwgMC41Mjc3MSIsIFwKLSAgICAgICAgICAiMC4wNzcwMDUsIDAuMTU0OTQ4LCAwLjIyNzI3MywgMC4yNzg4NTUsIDAuMzYxMzc2LCAwLjQzMzY0NywgMC41MzY3NTUiLCBcCi0gICAgICAgICAgIjAuMDg4ODM4LCAwLjE2Njc4NiwgMC4yMzkxMTksIDAuMjkwNzAzLCAwLjM3MzIyMywgMC40NDU1MDQsIDAuNTQ4NjE0IiwgXAotICAgICAgICAgICIwLjEwMDQ4OCwgMC4xNzg0NjIsIDAuMjUwNzgxLCAwLjMwMjM2NSwgMC4zODQ4OTUsIDAuNDU3MjE5LCAwLjU2MDMwMSIsIFwKLSAgICAgICAgICAiMC4xMTE3MjQsIDAuMTg5ODM2LCAwLjI2MjE4LCAwLjMxMzc0MywgMC4zOTYyNzIsIDAuNDY4NjIzLCAwLjU3MTY4IiwgXAotICAgICAgICAgICIwLjEyNzc1NywgMC4yMDYzOTYsIDAuMjc4NzI2LCAwLjMzMDMwNiwgMC40MTI4MTIsIDAuNDg1MTU4LCAwLjU4ODE2NiIsIFwKLSAgICAgICAgICAiMC4xNDAwMDIsIDAuMjE5NDA3LCAwLjI5MTcxOCwgMC4zNDMyNzksIDAuNDI1ODQyLCAwLjQ5ODEzMywgMC42MDExNDEiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDEzNzcsIDAuMTgyNTIsIDAuMzI5MjM3LCAwLjQzNTAxNCwgMC42MDQyMDMsIDAuNzUzOTQxLCAwLjk2NTY1OCIsIFwKLSAgICAgICAgICAiMC4wNDEzNjMsIDAuMTgyNTA1LCAwLjMyOTIyNiwgMC40MzUwMDYsIDAuNjA0MTk4LCAwLjc1MzkzLCAwLjk2NTU3MiIsIFwKLSAgICAgICAgICAiMC4wNDE0MzUsIDAuMTgyNTU3LCAwLjMyOTIyNywgMC40MzUwMDksIDAuNjA0ODc1LCAwLjc1MzQ3NywgMC45NjY1MDkiLCBcCi0gICAgICAgICAgIjAuMDQxNzYxLCAwLjE4MjU2MSwgMC4zMjkyMTMsIDAuNDM0OTcsIDAuNjA0MjU5LCAwLjc1Mzk0OCwgMC45NjcwNTIiLCBcCi0gICAgICAgICAgIjAuMDQyNzIsIDAuMTgyNzI2LCAwLjMyOTM0MSwgMC40MzQ5MywgMC42MDQ0NjgsIDAuNzUzODE1LCAwLjk2NTc2IiwgXAotICAgICAgICAgICIwLjA0NTM2MywgMC4xODMzODYsIDAuMzI5NTYsIDAuNDM1MTc4LCAwLjYwNDksIDAuNzU0MDE1LCAwLjk2NjgzNCIsIFwKLSAgICAgICAgICAiMC4wNDc3MzYsIDAuMTg0MjI2LCAwLjMyOTg5MSwgMC40MzQ5NjMsIDAuNjA1MjcsIDAuNzUyMjk4LCAwLjk2Njg1OCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3MjU4OSwgMC4xNTIzOTcsIDAuMjI2MDkxLCAwLjI3ODU3MiwgMC4zNjI1MTMsIDAuNDM1OTYsIDAuNTQwODEiLCBcCi0gICAgICAgICAgIjAuMDgxNDMxLCAwLjE2MTI3MywgMC4yMzQ5NzIsIDAuMjg3NDUyLCAwLjM3MTM5OSwgMC40NDQ4NzgsIDAuNTQ5NjkxIiwgXAotICAgICAgICAgICIwLjA5MjkyMiwgMC4xNzI3MDUsIDAuMjQ2NDA1LCAwLjI5ODg5MywgMC4zODI4MjcsIDAuNDU2Mjc1LCAwLjU2MTEwMSIsIFwKLSAgICAgICAgICAiMC4xMDQ0OTcsIDAuMTg0MjMzLCAwLjI1NzkzNSwgMC4zMTA0MjQsIDAuMzk0MzYyLCAwLjQ2NzgxOCwgMC41NzI2ODYiLCBcCi0gICAgICAgICAgIjAuMTE1NTgsIDAuMTk1NDk1LCAwLjI2OTIwOSwgMC4zMjE2OTgsIDAuNDA1NjUsIDAuNDc5MTQsIDAuNTgzOTU2IiwgXAotICAgICAgICAgICIwLjEzMTM5LCAwLjIxMTU0MywgMC4yODUyNDksIDAuMzM3NzM1LCAwLjQyMTY3NCwgMC40OTUxMjEsIDAuNjAwMDEzIiwgXAotICAgICAgICAgICIwLjE0MzQ1MywgMC4yMjQxNDksIDAuMjk3ODMxLCAwLjM1MDMxNywgMC40MzQyNDUsIDAuNTA3Njk2LCAwLjYxMjUyOSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0MDkzMywgMC4xODMwMDgsIDAuMzI5Mjg5LCAwLjQzNTI4MSwgMC42MDM5NTIsIDAuNzUzMzQ2LCAwLjk2NjQxNyIsIFwKLSAgICAgICAgICAiMC4wNDA5MDQsIDAuMTgyOTgzLCAwLjMyOTMwMSwgMC40MzUyODcsIDAuNjA0MDAyLCAwLjc1MTQ0MiwgMC45NjY0MDUiLCBcCi0gICAgICAgICAgIjAuMDQwODEsIDAuMTgzMDcsIDAuMzI5NzI0LCAwLjQzNTMwMiwgMC42MDQ4OTMsIDAuNzUzNzU5LCAwLjk2NTkyOSIsIFwKLSAgICAgICAgICAiMC4wNDA5OTEsIDAuMTgzMTA1LCAwLjMyOTM3LCAwLjQzNTI4OSwgMC42MDQ4NTYsIDAuNzUyMDcyLCAwLjk2NjM3OCIsIFwKLSAgICAgICAgICAiMC4wNDE2NCwgMC4xODMxMzUsIDAuMzI5MzIzLCAwLjQzNTI5NywgMC42MDM5NjksIDAuNzUxOTgxLCAwLjk2NjM5NCIsIFwKLSAgICAgICAgICAiMC4wNDMxODcsIDAuMTgzNzU5LCAwLjMyOTk1NywgMC40MzU0MTQsIDAuNjA0OTM3LCAwLjc1MjgyNSwgMC45NjYzODgiLCBcCi0gICAgICAgICAgIjAuMDQ0ODMyLCAwLjE4NDM2MiwgMC4zMzAyMTUsIDAuNDM1NzI3LCAwLjYwNTAzNywgMC43NTM4NzMsIDAuOTY2MjgxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1MDk4LCAwLjAwNTI3NCwgMC4wMDUzMTEsIDAuMDA1MzIyLCAwLjAwNTMzMiwgMC4wMDUzMzgsIDAuMDA1MzQyIiwgXAotICAgICAgICAgICIwLjAwNTA2LCAwLjAwNTI0MSwgMC4wMDUyNzcsIDAuMDA1Mjg4LCAwLjAwNTI5OCwgMC4wMDUzMDQsIDAuMDA1MzA5IiwgXAotICAgICAgICAgICIwLjAwNTAyMywgMC4wMDUyMSwgMC4wMDUyNDksIDAuMDA1MjYzLCAwLjAwNTI3NCwgMC4wMDUyODEsIDAuMDA1Mjg1IiwgXAotICAgICAgICAgICIwLjAwNTAzNiwgMC4wMDUxOTYsIDAuMDA1MjM1LCAwLjAwNTI0OCwgMC4wMDUyNjEsIDAuMDA1MjY3LCAwLjAwNTI3MyIsIFwKLSAgICAgICAgICAiMC4wMDUwMjMsIDAuMDA1MTgxLCAwLjAwNTIyMywgMC4wMDUyNDEsIDAuMDA1MjUxLCAwLjAwNTI1OSwgMC4wMDUyNjUiLCBcCi0gICAgICAgICAgIjAuMDA1MDA4LCAwLjAwNTE2LCAwLjAwNTIwNCwgMC4wMDUyMjgsIDAuMDA1MjM5LCAwLjAwNTI0OSwgMC4wMDUyNjMiLCBcCi0gICAgICAgICAgIjAuMDA1MDQzLCAwLjAwNTE2MywgMC4wMDUyMDYsIDAuMDA1MjI2LCAwLjAwNTI0MywgMC4wMDUyNTQsIDAuMDA1MjYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNzcyNSwgMC4wMDc5NjgsIDAuMDA4MDEzLCAwLjAwODAyNywgMC4wMDgwNCwgMC4wMDgwNDcsIDAuMDA4MDUzIiwgXAotICAgICAgICAgICIwLjAwNzcwNywgMC4wMDc5NTEsIDAuMDA3OTk2LCAwLjAwODAxMSwgMC4wMDgwMjQsIDAuMDA4MDMxLCAwLjAwODAzNyIsIFwKLSAgICAgICAgICAiMC4wMDc2ODcsIDAuMDA3OTMzLCAwLjAwNzk4MSwgMC4wMDc5OTcsIDAuMDA4MDExLCAwLjAwODAxOCwgMC4wMDgwMjQiLCBcCi0gICAgICAgICAgIjAuMDA3Njc4LCAwLjAwNzkxOCwgMC4wMDc5NywgMC4wMDc5ODYsIDAuMDA4MDAyLCAwLjAwODAxLCAwLjAwODAxNyIsIFwKLSAgICAgICAgICAiMC4wMDc2NzMsIDAuMDA3OTA2LCAwLjAwNzk2LCAwLjAwNzk3OCwgMC4wMDc5OTUsIDAuMDA4MDAzLCAwLjAwODAxMSIsIFwKLSAgICAgICAgICAiMC4wMDc2ODgsIDAuMDA3ODkzLCAwLjAwNzk1MSwgMC4wMDc5NywgMC4wMDc5ODgsIDAuMDA3OTk4LCAwLjAwODAwNiIsIFwKLSAgICAgICAgICAiMC4wMDc2NiwgMC4wMDc4NzgsIDAuMDA3OTM5LCAwLjAwNzk2MSwgMC4wMDc5NzgsIDAuMDA3OTg5LCAwLjAwNzk5OCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkExIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNTA4OCwgMC4wMDUyNzcsIDAuMDA1MzExLCAwLjAwNTMxOSwgMC4wMDUzMzEsIDAuMDA1MzMzLCAwLjAwNTMzNiIsIFwKLSAgICAgICAgICAiMC4wMDUwNDksIDAuMDA1MjMyLCAwLjAwNTI3LCAwLjAwNTI4MSwgMC4wMDUyOTIsIDAuMDA1Mjk3LCAwLjAwNTMwMiIsIFwKLSAgICAgICAgICAiMC4wMDUwMTksIDAuMDA1MTk5LCAwLjAwNTI0MSwgMC4wMDUyNTUsIDAuMDA1MjY3LCAwLjAwNTI3MywgMC4wMDUyOCIsIFwKLSAgICAgICAgICAiMC4wMDUwMzgsIDAuMDA1MTkxLCAwLjAwNTIzNCwgMC4wMDUyNDksIDAuMDA1MjY0LCAwLjAwNTI3LCAwLjAwNTI3NCIsIFwKLSAgICAgICAgICAiMC4wMDUwMzIsIDAuMDA1MTg3LCAwLjAwNTIzMiwgMC4wMDUyNDgsIDAuMDA1MjY0LCAwLjAwNTI3MiwgMC4wMDUyOCIsIFwKLSAgICAgICAgICAiMC4wMDUwNTEsIDAuMDA1MTg4LCAwLjAwNTIzOCwgMC4wMDUyNTksIDAuMDA1Mjc1LCAwLjAwNTI4NiwgMC4wMDUzIiwgXAotICAgICAgICAgICIwLjAwNTEzNywgMC4wMDUyMTQsIDAuMDA1MjYsIDAuMDA1Mjc3LCAwLjAwNTI5NCwgMC4wMDUzMDUsIDAuMDA1MzEzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDczMjMsIDAuMDA3NTY2LCAwLjAwNzYwOCwgMC4wMDc2MjEsIDAuMDA3NjMzLCAwLjAwNzYzOSwgMC4wMDc2NDUiLCBcCi0gICAgICAgICAgIjAuMDA3Mjk4LCAwLjAwNzU0MywgMC4wMDc1ODUsIDAuMDA3NTk5LCAwLjAwNzYxMSwgMC4wMDc2MTcsIDAuMDA3NjIyIiwgXAotICAgICAgICAgICIwLjAwNzI2NywgMC4wMDc1MTMsIDAuMDA3NTU5LCAwLjAwNzU3NCwgMC4wMDc1ODcsIDAuMDA3NTkzLCAwLjAwNzU5OSIsIFwKLSAgICAgICAgICAiMC4wMDcyNTIsIDAuMDA3NDk0LCAwLjAwNzU0MiwgMC4wMDc1NTgsIDAuMDA3NTcyLCAwLjAwNzU3OSwgMC4wMDc1ODYiLCBcCi0gICAgICAgICAgIjAuMDA3MjM2LCAwLjAwNzQ3NiwgMC4wMDc1MjksIDAuMDA3NTQ2LCAwLjAwNzU2MSwgMC4wMDc1NjksIDAuMDA3NTc3IiwgXAotICAgICAgICAgICIwLjAwNzI0MywgMC4wMDc0NjMsIDAuMDA3NTE1LCAwLjAwNzUzNCwgMC4wMDc1NTEsIDAuMDA3NTYsIDAuMDA3NTY4IiwgXAotICAgICAgICAgICIwLjAwNzIzOSwgMC4wMDc0NDUsIDAuMDA3NTA1LCAwLjAwNzUyMiwgMC4wMDc1NDMsIDAuMDA3NTUzLCAwLjAwNzU2MiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDQxNiwgMC4wMDQ1NDYsIDAuMDA0NTYyLCAwLjAwNDU3MSwgMC4wMDQ1NzIsIDAuMDA0NTc1LCAwLjAwNDU3NiIsIFwKLSAgICAgICAgICAiMC4wMDQzNzUsIDAuMDA0NTE1LCAwLjAwNDUzNCwgMC4wMDQ1MzgsIDAuMDA0NTQyLCAwLjAwNDU0NSwgMC4wMDQ1NDciLCBcCi0gICAgICAgICAgIjAuMDA0MzM5LCAwLjAwNDQ3OSwgMC4wMDQ1MDEsIDAuMDA0NTA4LCAwLjAwNDUxMiwgMC4wMDQ1MTcsIDAuMDA0NTE4IiwgXAotICAgICAgICAgICIwLjAwNDMxOCwgMC4wMDQ0NjMsIDAuMDA0NDg3LCAwLjAwNDQ5MywgMC4wMDQ1LCAwLjAwNDUwMywgMC4wMDQ1MDUiLCBcCi0gICAgICAgICAgIjAuMDA0MzM0LCAwLjAwNDQzOCwgMC4wMDQ0NjcsIDAuMDA0NDc5LCAwLjAwNDQ4NCwgMC4wMDQ0ODksIDAuMDA0NDkzIiwgXAotICAgICAgICAgICIwLjAwNDM0MiwgMC4wMDQ0MzMsIDAuMDA0NDYxLCAwLjAwNDQ3MiwgMC4wMDQ0ODcsIDAuMDA0NDg5LCAwLjAwNDQ5MSIsIFwKLSAgICAgICAgICAiMC4wMDQyOTUsIDAuMDA0NDM3LCAwLjAwNDQ2OSwgMC4wMDQ0NzYsIDAuMDA0NDg3LCAwLjAwNDQ4OSwgMC4wMDQ0OTQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjcyLCAwLjAwNjk2NCwgMC4wMDcwMDksIDAuMDA3MDI0LCAwLjAwNzAzNywgMC4wMDcwNDMsIDAuMDA3MDUiLCBcCi0gICAgICAgICAgIjAuMDA2Njg4LCAwLjAwNjkzMywgMC4wMDY5OCwgMC4wMDY5OTYsIDAuMDA3MDA5LCAwLjAwNzAxNywgMC4wMDcwMjMiLCBcCi0gICAgICAgICAgIjAuMDA2NjcsIDAuMDA2OTA4LCAwLjAwNjk2MSwgMC4wMDY5NzksIDAuMDA2OTk1LCAwLjAwNzAwNCwgMC4wMDcwMTEiLCBcCi0gICAgICAgICAgIjAuMDA2NjY3LCAwLjAwNjg5MywgMC4wMDY5NSwgMC4wMDY5NywgMC4wMDY5ODgsIDAuMDA2OTk4LCAwLjAwNzAwNyIsIFwKLSAgICAgICAgICAiMC4wMDY2NjcsIDAuMDA2ODgzLCAwLjAwNjk0NSwgMC4wMDY5NjcsIDAuMDA2OTg4LCAwLjAwNjk5OSwgMC4wMDcwMDkiLCBcCi0gICAgICAgICAgIjAuMDA2NywgMC4wMDY4ODMsIDAuMDA2OTUsIDAuMDA2OTc0LCAwLjAwNjk5NywgMC4wMDcwMSwgMC4wMDcwMjIiLCBcCi0gICAgICAgICAgIjAuMDA2NzI0LCAwLjAwNjg5NSwgMC4wMDY5NjEsIDAuMDA2OTg3LCAwLjAwNzAxMiwgMC4wMDcwMjYsIDAuMDA3MDM5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0NDA3LCAwLjAwNDU1MiwgMC4wMDQ1NzMsIDAuMDA0NTc4LCAwLjAwNDU4NCwgMC4wMDQ1ODgsIDAuMDA0NTg5IiwgXAotICAgICAgICAgICIwLjAwNDM2NSwgMC4wMDQ1MTUsIDAuMDA0NTM3LCAwLjAwNDU0NSwgMC4wMDQ1NTEsIDAuMDA0NTU0LCAwLjAwNDU1NyIsIFwKLSAgICAgICAgICAiMC4wMDQzNDEsIDAuMDA0NDgzLCAwLjAwNDUxMSwgMC4wMDQ1MiwgMC4wMDQ1MjgsIDAuMDA0NTMxLCAwLjAwNDUzNSIsIFwKLSAgICAgICAgICAiMC4wMDQzNDgsIDAuMDA0NDc0LCAwLjAwNDUwMywgMC4wMDQ1MTMsIDAuMDA0NTIzLCAwLjAwNDUyNywgMC4wMDQ1MzIiLCBcCi0gICAgICAgICAgIjAuMDA0Mzc1LCAwLjAwNDQ3OCwgMC4wMDQ1MDEsIDAuMDA0NTE2LCAwLjAwNDUyNSwgMC4wMDQ1MjcsIDAuMDA0NTM3IiwgXAotICAgICAgICAgICIwLjAwNDQsIDAuMDA0NDg1LCAwLjAwNDUxOCwgMC4wMDQ1MzUsIDAuMDA0NTQyLCAwLjAwNDU1MSwgMC4wMDQ1NTciLCBcCi0gICAgICAgICAgIjAuMDA0Mzk4LCAwLjAwNDQ5OSwgMC4wMDQ1MzksIDAuMDA0NTU1LCAwLjAwNDU2NiwgMC4wMDQ1NzQsIDAuMDA0NTg0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDYzMTIsIDAuMDA2NTUzLCAwLjAwNjU5NSwgMC4wMDY2MDksIDAuMDA2NjIsIDAuMDA2NjI3LCAwLjAwNjYzMiIsIFwKLSAgICAgICAgICAiMC4wMDYyNywgMC4wMDY1MTYsIDAuMDA2NTYsIDAuMDA2NTc0LCAwLjAwNjU4NywgMC4wMDY1OTMsIDAuMDA2NTk5IiwgXAotICAgICAgICAgICIwLjAwNjI0NCwgMC4wMDY0ODMsIDAuMDA2NTMzLCAwLjAwNjU0OSwgMC4wMDY1NjQsIDAuMDA2NTcyLCAwLjAwNjU3OSIsIFwKLSAgICAgICAgICAiMC4wMDYyMzgsIDAuMDA2NDYxLCAwLjAwNjUxNywgMC4wMDY1MzYsIDAuMDA2NTUzLCAwLjAwNjU2MiwgMC4wMDY1NyIsIFwKLSAgICAgICAgICAiMC4wMDYyMjYsIDAuMDA2NDQ0LCAwLjAwNjUwNSwgMC4wMDY1MjcsIDAuMDA2NTQ3LCAwLjAwNjU1OCwgMC4wMDY1NjgiLCBcCi0gICAgICAgICAgIjAuMDA2MjQ4LCAwLjAwNjQ0NSwgMC4wMDY1MTEsIDAuMDA2NTM2LCAwLjAwNjU1OSwgMC4wMDY1NzEsIDAuMDA2NTgzIiwgXAotICAgICAgICAgICIwLjAwNjI4NSwgMC4wMDY0NTcsIDAuMDA2NTIzLCAwLjAwNjU1NCwgMC4wMDY1NzIsIDAuMDA2NTg2LCAwLjAwNjU5OSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IEFPSTIxWDQgKgotICogLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoQU9JMjFYNCkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjQ2MDc3NzsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQTApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMzM2ODYzOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMzM1NTgzOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMzM2ODYzOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTYzNywgMC4wMDE2MzYsIDAuMDAxNjM1LCAwLjAwMTYzNSwgMC4wMDE2MzUsIDAuMDAxNjM1LCAwLjAwMTYzNCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTY5MSwgMC4wMDE2NDgsIDAuMDAxNjQ1LCAwLjAwMTY0MSwgMC4wMDE2NDEsIDAuMDAxNjQxLCAwLjAwMTY0MSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQTEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMzI1MDgyOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMzIyNjY4OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMzI1MDgyOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTA0MywgMC4wMDEwNDEsIDAuMDAxMDQsIDAuMDAxMDQxLCAwLjAwMTA0MSwgMC4wMDEwNCwgMC4wMDEwNCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTg1NywgMC4wMDE4NTgsIDAuMDAxODU4LCAwLjAwMTg2MSwgMC4wMDE4NTksIDAuMDAxODU5LCAwLjAwMTg1OSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQjApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMzA1NTM5OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMzA1NDUxOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMzA1NTM5OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDM1MiwgMC4wMDAzNTIsIDAuMDAwMzUyLCAwLjAwMDM1MiwgMC4wMDAzNTIsIDAuMDAwMzUyLCAwLjAwMDM1MiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjAzOSwgMC4wMDIwNCwgMC4wMDIwNCwgMC4wMDIwMzksIDAuMDAyMDM5LCAwLjAwMjAzOSwgMC4wMDIwMzgiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC41NTAyODsKLSAgICBmdW5jdGlvbiA6ICIoISgoQTAgQTEpK0IwKSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzODg2OCwgMC4xNzc3MzIsIDAuMzE2MjI1LCAwLjQxNTQyMSwgMC41NzM1MDEsIDAuNzEyMzgyLCAwLjkxMDIwMSIsIFwKLSAgICAgICAgICAiMC4wNDgwOCwgMC4xODcwMzQsIDAuMzI1NTk0LCAwLjQyNDc3MSwgMC41ODI5MjgsIDAuNzIxOTU3LCAwLjkxOTUzMSIsIFwKLSAgICAgICAgICAiMC4wNTg0MTYsIDAuMTk3NDY0LCAwLjMzNjE3MiwgMC40MzUxMzYsIDAuNTkzMzgsIDAuNzMxODA4LCAwLjkzMDIzIiwgXAotICAgICAgICAgICIwLjA2Nzk0MSwgMC4yMDc1MzEsIDAuMzQ2MTI4LCAwLjQ0NTE1NCwgMC42MDMzNzQsIDAuNzQxOTc5LCAwLjkzOTc2NCIsIFwKLSAgICAgICAgICAiMC4wNzYzNzEsIDAuMjE3NDY1LCAwLjM1NjEyNywgMC40NTUzMDMsIDAuNjEzNjQ3LCAwLjc1MTk2MiwgMC45NDk4MDEiLCBcCi0gICAgICAgICAgIjAuMDg4MDQxLCAwLjIzMzI4OCwgMC4zNzIwMjMsIDAuNDcxMTg1LCAwLjYyOTQyLCAwLjc2Nzg4NywgMC45NjU5NjEiLCBcCi0gICAgICAgICAgIjAuMDk3MDM0LCAwLjI0NzQwNywgMC4zODYxNjMsIDAuNDg0OTk3LCAwLjY0MzQxNCwgMC43ODIyMTcsIDAuOTgwNDgiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTg2MywgMC4zNDEwNTcsIDAuNjIzNjQzLCAwLjgyNTI4OSwgMS4xNDgxNywgMS40MzAzOSwgMS44MzM0IiwgXAotICAgICAgICAgICIwLjA1ODgxOCwgMC4zNDEyNSwgMC42MjM3NTQsIDAuODI1NzM3LCAxLjE0ODA5LCAxLjQzMTEsIDEuODMzMiIsIFwKLSAgICAgICAgICAiMC4wNjExMTYsIDAuMzQxMDY1LCAwLjYyMzUsIDAuODI1MjQ1LCAxLjE0ODA3LCAxLjQzMDQ4LCAxLjgzNDIxIiwgXAotICAgICAgICAgICIwLjA2NTA0NCwgMC4zNDEyMDIsIDAuNjIzNjQ3LCAwLjgyNTc4MSwgMS4xNDgsIDEuNDMwNTQsIDEuODMzOTUiLCBcCi0gICAgICAgICAgIjAuMDcwMTg5LCAwLjM0MjMzNywgMC42MjM0NzEsIDAuODI1NTI4LCAxLjE0ODIsIDEuNDMwNTEsIDEuODMzOTgiLCBcCi0gICAgICAgICAgIjAuMDc5MTQyLCAwLjM0NTc2NSwgMC42MjQyMzksIDAuODI1MTk5LCAxLjE0Nzk1LCAxLjQzMDUzLCAxLjgzMzIxIiwgXAotICAgICAgICAgICIwLjA4Njg3NywgMC4zNTAyOTMsIDAuNjI2MjI5LCAwLjgyNTg4LCAxLjE0NzkyLCAxLjQzMDU3LCAxLjgzNDA1Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM5MDI0LCAwLjE3NDUwNiwgMC4zMDkwNzksIDAuNDA1MTE4LCAwLjU1ODkxMywgMC42OTI5OTIsIDAuODg0NzIzIiwgXAotICAgICAgICAgICIwLjA0Nzc4NSwgMC4xODM0NywgMC4zMTgwMDUsIDAuNDEzODc3LCAwLjU2NzQxNCwgMC43MDE4MTYsIDAuODkzNjA0IiwgXAotICAgICAgICAgICIwLjA1ODY2OSwgMC4xOTQ1MDUsIDAuMzI5MTA5LCAwLjQyNTEwNywgMC41Nzg1NDYsIDAuNzEyOTg2LCAwLjkwNDczIiwgXAotICAgICAgICAgICIwLjA2OTE1LCAwLjIwNTQ5NSwgMC4zNDAxMTgsIDAuNDM2MjEsIDAuNTg5NzU0LCAwLjcyMzk3NiwgMC45MTU4MDkiLCBcCi0gICAgICAgICAgIjAuMDc4NzM1LCAwLjIxNjYxNiwgMC4zNTExNTgsIDAuNDQ3MjYsIDAuNjAwNzM1LCAwLjczNTEwNCwgMC45MjcwMTEiLCBcCi0gICAgICAgICAgIjAuMDkyNDA2LCAwLjIzMzc0NywgMC4zNjg3OTcsIDAuNDY1LCAwLjYxODUwMywgMC43NTI3MzYsIDAuOTQ0NjQ4IiwgXAotICAgICAgICAgICIwLjEwMjg3NiwgMC4yNDkxMDgsIDAuMzg0NTcxLCAwLjQ4MDY2OCwgMC42MzQyMzEsIDAuNzY4ODQ5LCAwLjk2MDQ4MSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1OTI4NywgMC4zMjUzMywgMC41OTExNjUsIDAuNzgwNDQ5LCAxLjA4NDM0LCAxLjM0OTU5LCAxLjcyOTEiLCBcCi0gICAgICAgICAgIjAuMDU5NTQzLCAwLjMyNTEzMSwgMC41OTA3NjYsIDAuNzgwMzIsIDEuMDg0LCAxLjM0OTY2LCAxLjcyOTc3IiwgXAotICAgICAgICAgICIwLjA2MjY2LCAwLjMyNTI4NywgMC41OTA3ODEsIDAuNzgwNTA1LCAxLjA4NDUxLCAxLjM1MDAzLCAxLjcyOTQ3IiwgXAotICAgICAgICAgICIwLjA2NzUxMiwgMC4zMjU0ODEsIDAuNTkwNzgxLCAwLjc4MDQ5NSwgMS4wODQwNSwgMS4zNDk2NywgMS43MjkwNyIsIFwKLSAgICAgICAgICAiMC4wNzM1NDIsIDAuMzI2NzYzLCAwLjU5MDgwMSwgMC43ODA0NjIsIDEuMDg0MDgsIDEuMzQ5NjgsIDEuNzI5MDUiLCBcCi0gICAgICAgICAgIjAuMDg0MDQ5LCAwLjMzMDUxMiwgMC41OTEzMSwgMC43ODA0NCwgMS4wODQwNywgMS4zNDk2LCAxLjcyOTQ2IiwgXAotICAgICAgICAgICIwLjA5MzEwOCwgMC4zMzUxODgsIDAuNTkzNDA2LCAwLjc4MTA4NSwgMS4wODQ1MiwgMS4zNDk5OSwgMS43Mjg5OSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzYzMDQsIDAuMTc1Nzg2LCAwLjMxNDc0NiwgMC40MTM5NzMsIDAuNTcyODAzLCAwLjcxMzE1NSwgMC45MTE0NzIiLCBcCi0gICAgICAgICAgIjAuMDQ1NDAzLCAwLjE4NDk3LCAwLjMyNDI5MiwgMC40MjM3MDcsIDAuNTgyNTI1LCAwLjcyMjU4NywgMC45MjA4MTciLCBcCi0gICAgICAgICAgIjAuMDU1NjA2LCAwLjE5NTM1NywgMC4zMzQ3MDEsIDAuNDM0MTU4LCAwLjU5MzIxNiwgMC43MzIxMzEsIDAuOTMxNjc0IiwgXAotICAgICAgICAgICIwLjA2NDc5NSwgMC4yMDUzMjEsIDAuMzQ0NTgzLCAwLjQ0NDEzNSwgMC42MDMwMzQsIDAuNzQyMjQ4LCAwLjk0MTA5NiIsIFwKLSAgICAgICAgICAiMC4wNzI4OTYsIDAuMjE1MjA1LCAwLjM1NDUzNCwgMC40NTQyNDEsIDAuNjEzMjc4LCAwLjc1MjE5NCwgMC45NTA5NDQiLCBcCi0gICAgICAgICAgIjAuMDg0MDg5LCAwLjIzMDkyNiwgMC4zNzAzMDUsIDAuNDY5OTY1LCAwLjYyODgwNywgMC43NjgwOCwgMC45NjcyMSIsIFwKLSAgICAgICAgICAiMC4wOTI1NjQsIDAuMjQ0OTczLCAwLjM4NDQxNiwgMC40ODM4MDgsIDAuNjQyOTE4LCAwLjc4MjMyMiwgMC45ODExMzMiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTU3ODUsIDAuMzM5NTEyLCAwLjYyNDYzNywgMC44MjcyMSwgMS4xNTA0OSwgMS40MzQ1LCAxLjgzOTI5IiwgXAotICAgICAgICAgICIwLjA1NTg5OSwgMC4zNDAwMjEsIDAuNjIzMTYxLCAwLjgyNjQ4NSwgMS4xNTI3MSwgMS40MzQzOCwgMS44MzkzOSIsIFwKLSAgICAgICAgICAiMC4wNTgzMzMsIDAuMzQwMjE0LCAwLjYyMzExNCwgMC44MjU3OTEsIDEuMTUwMjIsIDEuNDM3MjksIDEuODM4OTIiLCBcCi0gICAgICAgICAgIjAuMDYyNDQyLCAwLjM0MDM0LCAwLjYyNDU5MywgMC44MjU3OTIsIDEuMTUyODIsIDEuNDM1OTgsIDEuODQzMTgiLCBcCi0gICAgICAgICAgIjAuMDY3ODIsIDAuMzQwNjI4LCAwLjYyNDU0OCwgMC44MjU2MzgsIDEuMTUwMTMsIDEuNDM2NzIsIDEuODQzNjIiLCBcCi0gICAgICAgICAgIjAuMDc2OTU4LCAwLjM0NDM5NSwgMC42MjUxMzMsIDAuODI2MzcxLCAxLjE1MjM4LCAxLjQzNDk5LCAxLjgzOTIyIiwgXAotICAgICAgICAgICIwLjA4NDc2NCwgMC4zNDg4NjIsIDAuNjI1NjcyLCAwLjgyODM3NiwgMS4xNTA3MiwgMS40MzY4OSwgMS44NDAwMyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzNjg3MywgMC4xNzI0NTYsIDAuMzA2ODc4LCAwLjQwMzA5NiwgMC41NTY1NjQsIDAuNjkwOTkyLCAwLjg4MjU5NiIsIFwKLSAgICAgICAgICAiMC4wNDU4MzIsIDAuMTgxNSwgMC4zMTYwNiwgMC40MTE5ODMsIDAuNTY1NTA4LCAwLjY5OTcxOCwgMC44OTE2MDEiLCBcCi0gICAgICAgICAgIjAuMDU3NTI3LCAwLjE5MzAxNywgMC4zMjc2MjEsIDAuNDIzNTEsIDAuNTc3MjAyLCAwLjcxMTMzOSwgMC45MDM3MyIsIFwKLSAgICAgICAgICAiMC4wNjk0NTIsIDAuMjA0ODgxLCAwLjMzOTQ2MiwgMC40MzU1MTMsIDAuNTg4OTk5LCAwLjcyMzU3NywgMC45MTU1MTEiLCBcCi0gICAgICAgICAgIjAuMDc5NjYzLCAwLjIxNjI3MiwgMC4zNTA3ODIsIDAuNDQ2Nzc1LCAwLjYwMDM1OSwgMC43MzQ1MzIsIDAuOTI3MDczIiwgXAotICAgICAgICAgICIwLjA5MzgzNSwgMC4yMzQ5NzgsIDAuMzY5NDU3LCAwLjQ2NTU0MywgMC42MTkxNDEsIDAuNzUzNDMyLCAwLjk0NTI2MSIsIFwKLSAgICAgICAgICAiMC4xMDQ2MzYsIDAuMjUxNjM2LCAwLjM4NTk1MiwgMC40ODE4NDUsIDAuNjM1MzM2LCAwLjc2OTc4MywgMC45NjE2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU5MzE5LCAwLjMyNTE5NywgMC41OTA3OTMsIDAuNzgwNTkzLCAxLjA4NDM1LCAxLjM0OTY3LCAxLjcyOTA2IiwgXAotICAgICAgICAgICIwLjA1OTk0NywgMC4zMjUyODgsIDAuNTkwNjk0LCAwLjc4MDQ5NywgMS4wODQwNCwgMS4zNDk1MywgMS43MjkiLCBcCi0gICAgICAgICAgIjAuMDY1MDQ1LCAwLjMyNTMsIDAuNTkwODkyLCAwLjc4MDg0OSwgMS4wODQxOSwgMS4zNDk2MiwgMS43MjkyMSIsIFwKLSAgICAgICAgICAiMC4wNzIxODUsIDAuMzI1NTQzLCAwLjU5MDc4MiwgMC43ODA1NDEsIDEuMDg0MDksIDEuMzQ5NjIsIDEuNzI5NjQiLCBcCi0gICAgICAgICAgIjAuMDgxMDU4LCAwLjMyNzM2MiwgMC41OTA3NjksIDAuNzgwNTQ2LCAxLjA4NDA3LCAxLjM0OTU5LCAxLjcyOTMyIiwgXAotICAgICAgICAgICIwLjA5NTAzOSwgMC4zMzMzOTYsIDAuNTkxNTAxLCAwLjc4MDUzMSwgMS4wODM5NiwgMS4zNDk5NiwgMS43Mjk5MiIsIFwKLSAgICAgICAgICAiMC4xMDY2NDcsIDAuMzQwNCwgMC41OTQ0MTksIDAuNzgxMTczLCAxLjA4NDAzLCAxLjM0OTYzLCAxLjcyOTA1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzMjE3MSwgMC4xNzExMTUsIDAuMzA5NzEzLCAwLjQwODgwMywgMC41NjcyMTUsIDAuNzA1NzU5LCAwLjkwNDUxOSIsIFwKLSAgICAgICAgICAiMC4wNDEwMDIsIDAuMTgwMjk1LCAwLjMxODgwOCwgMC40MTgwNzYsIDAuNTc2MTY0LCAwLjcxNTA5MSwgMC45MTM3MjciLCBcCi0gICAgICAgICAgIjAuMDUyNDc3LCAwLjE5MTUzOSwgMC4zMzAxMjcsIDAuNDI5MDkyLCAwLjU4NzA0LCAwLjcyNjMxNiwgMC45MjQ2MTciLCBcCi0gICAgICAgICAgIjAuMDYzNTg2LCAwLjIwMzA5MSwgMC4zNDE4MTIsIDAuNDQwNzQ3LCAwLjU5OTE0MiwgMC43Mzc4MDgsIDAuOTM2NTg1IiwgXAotICAgICAgICAgICIwLjA3MjYxMSwgMC4yMTQ1MDIsIDAuMzUzMTQxLCAwLjQ1MjI1MywgMC42MTA1NCwgMC43NDkwODYsIDAuOTQ4NDc0IiwgXAotICAgICAgICAgICIwLjA4NDY0LCAwLjIzMjkwOCwgMC4zNzE2MDIsIDAuNDcwNTM0LCAwLjYyODgzNiwgMC43Njc1NzQsIDAuOTY2MDY0IiwgXAotICAgICAgICAgICIwLjA5NDA2MywgMC4yNDkyNTMsIDAuMzg3NzE0LCAwLjQ4NjY3MiwgMC42NDUyMzMsIDAuNzgzNTQ2LCAwLjk4MjkxIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU4NTUxLCAwLjM0MTE3MiwgMC42MjM3NDUsIDAuODI1NzEzLCAxLjE1MDI5LCAxLjQzMzYyLCAxLjgzOTEiLCBcCi0gICAgICAgICAgIjAuMDU5NTU1LCAwLjM0MTA1NiwgMC42MjQzNTMsIDAuODI2MDEyLCAxLjE1MDA5LCAxLjQzMzY1LCAxLjgzOTA3IiwgXAotICAgICAgICAgICIwLjA2NTY2NCwgMC4zNDEwNjYsIDAuNjI0Mzk4LCAwLjgyNjk0MSwgMS4xNTA3LCAxLjQzMzUyLCAxLjg0MDQ0IiwgXAotICAgICAgICAgICIwLjA3MzcyMSwgMC4zNDExODEsIDAuNjIzNTUyLCAwLjgyNzM5MywgMS4xNTE3MywgMS40MzM5NiwgMS44Mzk0MSIsIFwKLSAgICAgICAgICAiMC4wODI4NzUsIDAuMzQzNDYxLCAwLjYyNDM4MiwgMC44MjY5MjgsIDEuMTUwODksIDEuNDM2NzYsIDEuODM4OTkiLCBcCi0gICAgICAgICAgIjAuMDk2ODMzLCAwLjM0OTQ2LCAwLjYyNDM1NiwgMC44MjczODIsIDEuMTUyODEsIDEuNDM1MTIsIDEuODQyMTQiLCBcCi0gICAgICAgICAgIjAuMTA3NjE3LCAwLjM1NjkwNCwgMC42MjczNDgsIDAuODI2ODY3LCAxLjE0OTk4LCAxLjQzNzE2LCAxLjgzODgzIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE3NTkxLCAwLjA5MTE4LCAwLjE2NDYzNSwgMC4yMTcwOTgsIDAuMzAxMDUsIDAuMzc0NTI3LCAwLjQ3OTQ1OSIsIFwKLSAgICAgICAgICAiMC4wMjc4NDgsIDAuMTAxMzg4LCAwLjE3NDg4OCwgMC4yMjczNzMsIDAuMzExMzA4LCAwLjM4NDc3NiwgMC40ODk3MDgiLCBcCi0gICAgICAgICAgIjAuMDM5Mzk2LCAwLjExNDA3MSwgMC4xODc2NDEsIDAuMjQwMDczLCAwLjMyMzM3NSwgMC4zOTY3OTcsIDAuNTAxNjM5IiwgXAotICAgICAgICAgICIwLjA0ODYwMSwgMC4xMjc0NjcsIDAuMjAwODk2LCAwLjI1MzM5LCAwLjMzNzM0LCAwLjQxMDc4NSwgMC41MTU3MzYiLCBcCi0gICAgICAgICAgIjAuMDU2MjQ2LCAwLjE0MDI1LCAwLjIxMzEwNiwgMC4yNjU1NzUsIDAuMzQ5NTE0LCAwLjQyMzEzNCwgMC41MjY5MjQiLCBcCi0gICAgICAgICAgIjAuMDY3MDg4LCAwLjE2MDk2NSwgMC4yMzM0NTYsIDAuMjg1ODYxLCAwLjM3MDI3LCAwLjQ0MzYzLCAwLjU0ODM5OCIsIFwKLSAgICAgICAgICAiMC4wNzUwNTUsIDAuMTc5MTYxLCAwLjI1MjI0MiwgMC4zMDM3OTgsIDAuMzg3NjQyLCAwLjQ2MTY3NiwgMC41NjY0NjciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzA3NTUsIDAuMTc4OTg3LCAwLjMyNzQ4NywgMC40MzM0ODksIDAuNjAzMzc3LCAwLjc1MjA3LCAwLjk2NDI3MyIsIFwKLSAgICAgICAgICAiMC4wMzM4NDYsIDAuMTc4OTc2LCAwLjMyNzQ5MSwgMC40MzM0ODMsIDAuNjAzMjA2LCAwLjc1MTc3NSwgMC45NjQxMDMiLCBcCi0gICAgICAgICAgIjAuMDQyMTk3LCAwLjE3OTY3OCwgMC4zMjc0MDYsIDAuNDMzNDkyLCAwLjYwMzM0MSwgMC43NTIxMjQsIDAuOTY0NDI2IiwgXAotICAgICAgICAgICIwLjA1MTc0NSwgMC4xODI4MDUsIDAuMzI3NzA1LCAwLjQzMzQ3MywgMC42MDMyMTIsIDAuNzUyMDE0LCAwLjk2NDE4NCIsIFwKLSAgICAgICAgICAiMC4wNjEyMjYsIDAuMTg3NjI1LCAwLjMyOTY5MywgMC40MzM5OSwgMC42MDM0NDIsIDAuNzUyMTIzLCAwLjk2NDA1IiwgXAotICAgICAgICAgICIwLjA3NDEzOCwgMC4xOTc3MjIsIDAuMzM1NTk0LCAwLjQzNzM3NywgMC42MDM5NjcsIDAuNzUyMDcyLCAwLjk2NDU4OCIsIFwKLSAgICAgICAgICAiMC4wODUwNTcsIDAuMjA3OTI2LCAwLjM0MjAwMiwgMC40NDI1NDEsIDAuNjA2MzkzLCAwLjc1MjY3MywgMC45NjQxMDciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDk5MTEsIDAuMDA5OTIyLCAwLjAwOTkyMiwgMC4wMDk5MjIsIDAuMDA5OTI0LCAwLjAwOTkyMiwgMC4wMDk5MjEiLCBcCi0gICAgICAgICAgIjAuMDA5ODM2LCAwLjAwOTg5LCAwLjAwOTg5NywgMC4wMDk4OTksIDAuMDA5OSwgMC4wMDk5MDEsIDAuMDA5OTAyIiwgXAotICAgICAgICAgICIwLjAwOTc5MywgMC4wMDk4NzQsIDAuMDA5ODg3LCAwLjAwOTg4OCwgMC4wMDk4OTQsIDAuMDA5ODk1LCAwLjAwOTg4MyIsIFwKLSAgICAgICAgICAiMC4wMDk3NzEsIDAuMDA5ODYxLCAwLjAwOTg3OSwgMC4wMDk4OCwgMC4wMDk4ODksIDAuMDA5ODk3LCAwLjAwOTkiLCBcCi0gICAgICAgICAgIjAuMDA5NzU2LCAwLjAwOTg1LCAwLjAwOTg3MiwgMC4wMDk4NzgsIDAuMDA5ODg3LCAwLjAwOTg4NywgMC4wMDk4OSIsIFwKLSAgICAgICAgICAiMC4wMDk3NTYsIDAuMDA5ODM3LCAwLjAwOTg2MywgMC4wMDk4NzEsIDAuMDA5ODgsIDAuMDA5ODgzLCAwLjAwOTg4NyIsIFwKLSAgICAgICAgICAiMC4wMDk3NjQsIDAuMDA5ODMzLCAwLjAwOTg1NywgMC4wMDk4NjMsIDAuMDA5ODc2LCAwLjAwOTg4MywgMC4wMDk4ODUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjAyLCAwLjAwMjAyNywgMC4wMDIwMjYsIDAuMDAyMDI3LCAwLjAwMjAyNiwgMC4wMDIwMjYsIDAuMDAyMDI2IiwgXAotICAgICAgICAgICIwLjAwMTg4LCAwLjAwMTk0MiwgMC4wMDE5NTIsIDAuMDAxOTUsIDAuMDAxOTUxLCAwLjAwMTk1OCwgMC4wMDE5NTUiLCBcCi0gICAgICAgICAgIjAuMDAxODA1LCAwLjAwMTkwOSwgMC4wMDE5MjUsIDAuMDAxOTMyLCAwLjAwMTkzNSwgMC4wMDE5MzcsIDAuMDAxOTM5IiwgXAotICAgICAgICAgICIwLjAwMTc2OSwgMC4wMDE4ODcsIDAuMDAxOTExLCAwLjAwMTkxOCwgMC4wMDE5MjUsIDAuMDAxOTI5LCAwLjAwMTkzMSIsIFwKLSAgICAgICAgICAiMC4wMDE3NTEsIDAuMDAxODcxLCAwLjAwMTg5OCwgMC4wMDE5MDksIDAuMDAxOTE3LCAwLjAwMTkyMSwgMC4wMDE5MjUiLCBcCi0gICAgICAgICAgIjAuMDAxNzU0LCAwLjAwMTg1NCwgMC4wMDE4ODcsIDAuMDAxODk4LCAwLjAwMTkwOCwgMC4wMDE5MTMsIDAuMDAxOTE5IiwgXAotICAgICAgICAgICIwLjAwMTc3OSwgMC4wMDE4NDYsIDAuMDAxODc5LCAwLjAwMTg5MSwgMC4wMDE5MDMsIDAuMDAxOTA5LCAwLjAwMTkxNCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkExIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwODM5OSwgMC4wMDg0NCwgMC4wMDg0NDUsIDAuMDA4NDQ0LCAwLjAwODQ0MiwgMC4wMDg0NDYsIDAuMDA4NDQ2IiwgXAotICAgICAgICAgICIwLjAwODI4NCwgMC4wMDg0MjcsIDAuMDA4NDQ1LCAwLjAwODQ1LCAwLjAwODQ1NSwgMC4wMDg0NTcsIDAuMDA4NDYiLCBcCi0gICAgICAgICAgIjAuMDA4MTk5LCAwLjAwODQwMiwgMC4wMDg0MjQsIDAuMDA4NDMzLCAwLjAwODQ0NSwgMC4wMDg0NDksIDAuMDA4NDU0IiwgXAotICAgICAgICAgICIwLjAwODE1OCwgMC4wMDgzNjQsIDAuMDA4NDA0LCAwLjAwODQyMSwgMC4wMDg0MzUsIDAuMDA4NDQyLCAwLjAwODQ0NCIsIFwKLSAgICAgICAgICAiMC4wMDgxMzcsIDAuMDA4MzM4LCAwLjAwODM5MiwgMC4wMDg0MDcsIDAuMDA4NDIzLCAwLjAwODQyOSwgMC4wMDg0NCIsIFwKLSAgICAgICAgICAiMC4wMDgxMTYsIDAuMDA4MzA1LCAwLjAwODM2NSwgMC4wMDgzODYsIDAuMDA4NDExLCAwLjAwODQxOSwgMC4wMDg0MjkiLCBcCi0gICAgICAgICAgIjAuMDA4MTMsIDAuMDA4Mjg4LCAwLjAwODM1MiwgMC4wMDgzNzcsIDAuMDA4Mzk5LCAwLjAwODQxNSwgMC4wMDg0MjIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjAxNCwgMC4wMDIwMjQsIDAuMDAyMDI2LCAwLjAwMjAyNSwgMC4wMDIwMjQsIDAuMDAyMDI1LCAwLjAwMjAyNiIsIFwKLSAgICAgICAgICAiMC4wMDE4NTMsIDAuMDAxOTMyLCAwLjAwMTk0MiwgMC4wMDE5NDYsIDAuMDAxOTQ1LCAwLjAwMTk1LCAwLjAwMTk1MiIsIFwKLSAgICAgICAgICAiMC4wMDE4MTEsIDAuMDAxOTAyLCAwLjAwMTkxOSwgMC4wMDE5MjQsIDAuMDAxOTI5LCAwLjAwMTkyOSwgMC4wMDE5MzMiLCBcCi0gICAgICAgICAgIjAuMDAxNzkyLCAwLjAwMTg4LCAwLjAwMTkwNCwgMC4wMDE5MTIsIDAuMDAxOTE3LCAwLjAwMTkyMiwgMC4wMDE5MjUiLCBcCi0gICAgICAgICAgIjAuMDAxODUzLCAwLjAwMTg4NiwgMC4wMDE5MDQsIDAuMDAxOTExLCAwLjAwMTkxOCwgMC4wMDE5MiwgMC4wMDE5MjMiLCBcCi0gICAgICAgICAgIjAuMDAxOTQ2LCAwLjAwMTg5MiwgMC4wMDE5MDcsIDAuMDAxOTEyLCAwLjAwMTkxNSwgMC4wMDE5MTgsIDAuMDAxOTIxIiwgXAotICAgICAgICAgICIwLjAwMjA1NiwgMC4wMDE5MTYsIDAuMDAxOTE4LCAwLjAwMTkxOSwgMC4wMDE5MjIsIDAuMDAxOTIzLCAwLjAwMTkyNCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjkwMywgMC4wMDY5NTcsIDAuMDA2OTYzLCAwLjAwNjk2NSwgMC4wMDY5NjUsIDAuMDA2OTY1LCAwLjAwNjk2NSIsIFwKLSAgICAgICAgICAiMC4wMDY3NDgsIDAuMDA2OTA5LCAwLjAwNjkzNSwgMC4wMDY5NDQsIDAuMDA2OTQ4LCAwLjAwNjk1MiwgMC4wMDY5NTUiLCBcCi0gICAgICAgICAgIjAuMDA2NzIzLCAwLjAwNjg3MSwgMC4wMDY5MDgsIDAuMDA2OTIyLCAwLjAwNjkzMywgMC4wMDY5MzksIDAuMDA2OTQ0IiwgXAotICAgICAgICAgICIwLjAwNjcyNiwgMC4wMDY4NDEsIDAuMDA2ODg3LCAwLjAwNjkwMywgMC4wMDY5MiwgMC4wMDY5MjUsIDAuMDA2OTM0IiwgXAotICAgICAgICAgICIwLjAwNjc4OSwgMC4wMDY4MzEsIDAuMDA2ODc1LCAwLjAwNjg5MywgMC4wMDY5MDksIDAuMDA2OTE5LCAwLjAwNjkyNyIsIFwKLSAgICAgICAgICAiMC4wMDY5MDYsIDAuMDA2ODMxLCAwLjAwNjg2OSwgMC4wMDY4ODMsIDAuMDA2OSwgMC4wMDY5MTEsIDAuMDA2OTIxIiwgXAotICAgICAgICAgICIwLjAwNzAwOSwgMC4wMDY4NDksIDAuMDA2ODcsIDAuMDA2ODg0LCAwLjAwNjg5OSwgMC4wMDY5MDgsIDAuMDA2OTE3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDAwNTYsIDAuMDAwMTM2LCAwLjAwMDE0MywgMC4wMDAxNDUsIDAuMDAwMTQ3LCAwLjAwMDE0OCwgMC4wMDAxNDkiLCBcCi0gICAgICAgICAgIjAuMDAwMTYxLCAwLjAwMDE0OCwgMC4wMDAxOCwgMC4wMDAxODksIDAuMDAwMTk4LCAwLjAwMDIwMiwgMC4wMDAyMDYiLCBcCi0gICAgICAgICAgIjAuMDAwMjI3LCAwLjAwMDEwNywgMC4wMDAxNiwgMC4wMDAxNzcsIDAuMDAwMTk1LCAwLjAwMDIwNCwgMC4wMDAyMTIiLCBcCi0gICAgICAgICAgIjAuMDAwMTk3LCAwLjAwMDA4NCwgMC4wMDAxNDMsIDAuMDAwMTYyLCAwLjAwMDE4LCAwLjAwMDE5LCAwLjAwMDE5OCIsIFwKLSAgICAgICAgICAiMC4wMDAxNjcsIDAuMDAwMDU1LCAwLjAwMDExOSwgMC4wMDAxNDUsIDAuMDAwMTY5LCAwLjAwMDE4MiwgMC4wMDAxOTYiLCBcCi0gICAgICAgICAgIjAuMDAwMTAxLCAwLjAwMDA2MywgMC4wMDAxMTYsIDAuMDAwMTQxLCAwLjAwMDE2NywgMC4wMDAxNzksIDAuMDAwMTkxIiwgXAotICAgICAgICAgICIwLjAwMDAyNiwgMC4wMDAwNzcsIDAuMDAwMTIzLCAwLjAwMDEzOCwgMC4wMDAxNjIsIDAuMDAwMTc4LCAwLjAwMDE4OSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBBT0kyMjFYMSAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoQU9JMjIxWDEpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4xODU2MTg7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA4NDYyNTc7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwODQyMTc1OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDg0NjI1NzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA0MDksIDAuMDAwNDA5LCAwLjAwMDQwOSwgMC4wMDA0MDksIDAuMDAwNDA5LCAwLjAwMDQwOSwgMC4wMDA0MDkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA0MTksIDAuMDAwNDExLCAwLjAwMDQxLCAwLjAwMDQxLCAwLjAwMDQxLCAwLjAwMDQxLCAwLjAwMDQxIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihBMSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwODI1MDkyOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDgxODI2MzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA4MjUwOTI7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjEsIDAuMDAwMjA5LCAwLjAwMDIwOSwgMC4wMDAyMSwgMC4wMDAyMDksIDAuMDAwMjA5LCAwLjAwMDIwOSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDQ2NCwgMC4wMDA0NjQsIDAuMDAwNDY1LCAwLjAwMDQ2NSwgMC4wMDA0NjUsIDAuMDAwNDY0LCAwLjAwMDQ2NCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQjApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDk0MzQyNjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA5NDA0MTM7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwOTQzNDI2OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDQwOSwgMC4wMDA0MDksIDAuMDAwNDA5LCAwLjAwMDQwOSwgMC4wMDA0MDksIDAuMDAwNDA5LCAwLjAwMDQwOSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDQxOSwgMC4wMDA0MTEsIDAuMDAwNDEsIDAuMDAwNDEsIDAuMDAwNDEsIDAuMDAwNDEsIDAuMDAwNDEiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIxKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA5MTU2ODc7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwOTA5ODkxOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDkxNTY4NzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyMiwgMC4wMDAyMTksIDAuMDAwMjE5LCAwLjAwMDIxOSwgMC4wMDAyMTksIDAuMDAwMjE5LCAwLjAwMDIxOSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDQ2NCwgMC4wMDA0NjQsIDAuMDAwNDY0LCAwLjAwMDQ2NCwgMC4wMDA0NjMsIDAuMDAwNDY0LCAwLjAwMDQ2NCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQzApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDkxODEzOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDkxODEwNzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA5MTgxMzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAwODcsIDAuMDAwMDg4LCAwLjAwMDA4NywgMC4wMDAwODcsIDAuMDAwMDg3LCAwLjAwMDA4NywgMC4wMDAwODciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA1MDksIDAuMDAwNTEsIDAuMDAwNTA5LCAwLjAwMDUxLCAwLjAwMDUxLCAwLjAwMDUxLCAwLjAwMDUwOSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjA5Mjk4NTE7Ci0gICAgZnVuY3Rpb24gOiAiKCEoKChBMCBBMSkrKEIwIEIxKSkrQzApKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTAiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE2NDIwNCwgMC4yMzQzNTMsIDAuNjMxNTQ0LCAwLjk4MzQ4OSwgMS40NTM0NywgMi4zOTQyNCwgMi45ODE4OSIsIFwKLSAgICAgICAgICAiMC4xNzM3MDksIDAuMjQzODg5LCAwLjY0MDcwNiwgMC45OTI4OTQsIDEuNDYzODIsIDIuNDA0NDgsIDIuOTkxNzgiLCBcCi0gICAgICAgICAgIjAuMTgzNzAyLCAwLjI1Mzg0NSwgMC42NTExMSwgMS4wMDI2NSwgMS40NzM2NSwgMi40MTQ1OCwgMy4wMDE4IiwgXAotICAgICAgICAgICIwLjE5MjYxOSwgMC4yNjI4NDYsIDAuNjU5NzksIDEuMDExNzcsIDEuNDgyNDUsIDIuNDIyOTIsIDMuMDEwMjkiLCBcCi0gICAgICAgICAgIjAuMjAxMTA4LCAwLjI3MTIzNSwgMC42NjgzOTgsIDEuMDIwNzQsIDEuNDkxNCwgMi40MzIzOCwgMy4wMTkyNSIsIFwKLSAgICAgICAgICAiMC4yMTQyMywgMC4yODQ0NDQsIDAuNjgxNzE4LCAxLjAzMzc2LCAxLjUwNDA4LCAyLjQ0NDcsIDMuMDMxNDQiLCBcCi0gICAgICAgICAgIjAuMjI1MzM3LCAwLjI5NTYyNywgMC42OTI2MjQsIDEuMDQ0OTksIDEuNTE0ODEsIDIuNDU1OTcsIDMuMDQzNzciKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjgyNzYyLCAwLjQyMzEzNiwgMS4yMjM1MywgMS45MzA5LCAyLjg3MzU4LCA0Ljc2MDUyLCA1LjkzNzQiLCBcCi0gICAgICAgICAgIjAuMjgyNzg4LCAwLjQyMzM2NSwgMS4yMjMzNywgMS45MzA0OSwgMi44NzM5NCwgNC43NjE4OCwgNS45Mzg2MyIsIFwKLSAgICAgICAgICAiMC4yODI4NjIsIDAuNDIzMTMxLCAxLjIyMzc2LCAxLjkzMTIsIDIuODc0MTcsIDQuNzYxMDUsIDUuOTM5NzkiLCBcCi0gICAgICAgICAgIjAuMjgyOTc3LCAwLjQyMzEyMywgMS4yMjM0MSwgMS45MzEzMSwgMi44NzM5MiwgNC43NjA0NywgNS45MzgzMSIsIFwKLSAgICAgICAgICAiMC4yODM1OTQsIDAuNDIzMjI4LCAxLjIyMzQzLCAxLjkzMDgzLCAyLjg3MzkzLCA0Ljc2MDU4LCA1LjkzOTgiLCBcCi0gICAgICAgICAgIjAuMjg1ODEzLCAwLjQyNDYwNCwgMS4yMjM1MSwgMS45MzEyMywgMi44NzM4MSwgNC43NjA1NCwgNS45NDEwNCIsIFwKLSAgICAgICAgICAiMC4yODg1NzYsIDAuNDI2Mzk3LCAxLjIyMzM3LCAxLjkzMTI4LCAyLjg3MzM4LCA0Ljc2MDc1LCA1LjkzOTgiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTEwNDA2LCAwLjE1NjgzMiwgMC40MTY2ODEsIDAuNjQ1Mzc4LCAwLjk0OTgwNywgMS41NTcyLCAxLjkzNzEiLCBcCi0gICAgICAgICAgIjAuMTE5MzQ5LCAwLjE2NTc3LCAwLjQyNTcxNCwgMC42NTQwMjMsIDAuOTU4MjU3LCAxLjU2NjMyLCAxLjk0NzQ3IiwgXAotICAgICAgICAgICIwLjEzMDMyNiwgMC4xNzY3NzcsIDAuNDM2NzQxLCAwLjY2NTI5LCAwLjk2OTY5MiwgMS41NzczOSwgMS45NTg5OCIsIFwKLSAgICAgICAgICAiMC4xNDEzMTcsIDAuMTg3NzcyLCAwLjQ0NzcyMSwgMC42NzYzMywgMC45ODA2NjEsIDEuNTg4NTgsIDEuOTY5NzkiLCBcCi0gICAgICAgICAgIjAuMTUyMjkxLCAwLjE5ODY4LCAwLjQ1ODg2MiwgMC42ODcxODEsIDAuOTkxNTUyLCAxLjYwMDM5LCAxLjk4MDA0IiwgXAotICAgICAgICAgICIwLjE2OTc4MSwgMC4yMTYzMzcsIDAuNDc2NzY4LCAwLjcwNTM4NSwgMS4wMDk4NSwgMS42MTc4OSwgMS45OTc3MyIsIFwKLSAgICAgICAgICAiMC4xODQ5NTYsIDAuMjMxNTk0LCAwLjQ5MjE4MiwgMC43MjA4NDQsIDEuMDI1MzUsIDEuNjMzNjgsIDIuMDEzMDgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTk0NDY1LCAwLjI4NDE4OSwgMC43OTMyMTMsIDEuMjQyMzEsIDEuODQwNzIsIDMuMDM3NTMsIDMuNzg1NDgiLCBcCi0gICAgICAgICAgIjAuMTk0NDIyLCAwLjI4NDIyLCAwLjc5MzMwMywgMS4yNDIzNywgMS44NDA2OCwgMy4wMzcwNCwgMy43ODYwMiIsIFwKLSAgICAgICAgICAiMC4xOTQ0OCwgMC4yODQyLCAwLjc5MzI5NiwgMS4yNDIwMiwgMS44NDA5OCwgMy4wMzczOCwgMy43ODYxOSIsIFwKLSAgICAgICAgICAiMC4xOTU5MTYsIDAuMjg0NTI2LCAwLjc5MzMwMywgMS4yNDI0LCAxLjg0MDM2LCAzLjAzNzA3LCAzLjc4NTk0IiwgXAotICAgICAgICAgICIwLjE5ODc0MiwgMC4yODYwODIsIDAuNzkzMzU4LCAxLjI0MjQxLCAxLjg0MDk5LCAzLjAzNzAyLCAzLjc4NTE5IiwgXAotICAgICAgICAgICIwLjIwNTIwOSwgMC4yOTAzNjgsIDAuNzkzMzksIDEuMjQyMDUsIDEuODQwMzksIDMuMDM3NjEsIDMuNzg1NjYiLCBcCi0gICAgICAgICAgIjAuMjExNTgyLCAwLjI5NTYwOSwgMC43OTM3NTIsIDEuMjQyMzgsIDEuODQwNTEsIDMuMDM3NzEsIDMuNzg2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkExIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNjAxMjksIDAuMjMwNTEsIDAuNjI5Mzc5LCAwLjk4MjY4NywgMS40NTQ4LCAyLjM5OTU4LCAyLjk4OTgxIiwgXAotICAgICAgICAgICIwLjE2OTY0MywgMC4yNDAwODYsIDAuNjM4Nzc1LCAwLjk5MjA0OCwgMS40NjQ2OCwgMi40MTAzNiwgMi45OTk2NSIsIFwKLSAgICAgICAgICAiMC4xNzk1NDEsIDAuMjUwMDcyLCAwLjY0ODc2LCAxLjAwMjMzLCAxLjQ3NTIxLCAyLjQyMDA1LCAzLjAwOTkxIiwgXAotICAgICAgICAgICIwLjE4ODQyNCwgMC4yNTg5ODUsIDAuNjU3NzQ3LCAxLjAxMTQyLCAxLjQ4Mzc2LCAyLjQyOTE2LCAzLjAxODcyIiwgXAotICAgICAgICAgICIwLjE5Njg0MywgMC4yNjczODgsIDAuNjY2MjM5LCAxLjAxOTYyLCAxLjQ5MTY5LCAyLjQzNzk2LCAzLjAyNzMyIiwgXAotICAgICAgICAgICIwLjIwOTg5MSwgMC4yODA0ODksIDAuNjc5NTkxLCAxLjAzMzE2LCAxLjUwNTA3LCAyLjQ1MDIyLCAzLjAzOTUyIiwgXAotICAgICAgICAgICIwLjIyMDk1MywgMC4yOTE1ODIsIDAuNjkwNTA2LCAxLjA0NDQ1LCAxLjUxNjIyLCAyLjQ2MTYsIDMuMDUxODQiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjc4MzAzLCAwLjQxOTE0NSwgMS4yMjI4NSwgMS45MzMzMywgMi44ODc1NiwgNC43ODczMSwgNS45NTc1OCIsIFwKLSAgICAgICAgICAiMC4yNzgzMDMsIDAuNDE5MzQ5LCAxLjIyMzM0LCAxLjkzNDE2LCAyLjg4Nzg1LCA0Ljc3NTg0LCA1Ljk2NTg4IiwgXAotICAgICAgICAgICIwLjI3ODMwNywgMC40MTkwOTksIDEuMjIzMzMsIDEuOTM3OTksIDIuODg0MzQsIDQuNzc1OTgsIDUuOTY1NzIiLCBcCi0gICAgICAgICAgIjAuMjc4NDkyLCAwLjQxOTEzNCwgMS4yMjU0OSwgMS45MzM0NywgMi44ODc4NCwgNC43ODgyNSwgNS45NjU3OCIsIFwKLSAgICAgICAgICAiMC4yNzkyMSwgMC40MTkyNTYsIDEuMjI1NTEsIDEuOTM2NTcsIDIuODg1NDksIDQuNzc1MzMsIDUuOTY1ODYiLCBcCi0gICAgICAgICAgIjAuMjgxMzM3LCAwLjQyMDY1OCwgMS4yMjQxNiwgMS45MzgxNiwgMi44ODU2MywgNC43ODc0MiwgNS45NjM3MiIsIFwKLSAgICAgICAgICAiMC4yODQyMzgsIDAuNDIyNDY1LCAxLjIyNDc1LCAxLjkzNTY2LCAyLjg4NTY1LCA0Ljc3NjIzLCA1Ljk2NTciKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTA3OTA1LCAwLjE1NDMzOSwgMC40MTQxNTcsIDAuNjQyNjEyLCAwLjk0NzIyNiwgMS41NTU0NiwgMS45MzU0MyIsIFwKLSAgICAgICAgICAiMC4xMTY5NDksIDAuMTYzMzY5LCAwLjQyMzI2OSwgMC42NTE1NjIsIDAuOTU2Mzc0LCAxLjU2NDc2LCAxLjk0NDEyIiwgXAotICAgICAgICAgICIwLjEyODY5NywgMC4xNzUxMzEsIDAuNDM1MDcyLCAwLjY2Mzc0OCwgMC45NjgxNTEsIDEuNTc2NDMsIDEuOTU1OTYiLCBcCi0gICAgICAgICAgIjAuMTQwMTI5LCAwLjE4NjU1NiwgMC40NDY1MTQsIDAuNjc0Nzk4LCAwLjk3OTA2MiwgMS41ODgxMywgMS45NjgxNiIsIFwKLSAgICAgICAgICAiMC4xNTE4NjcsIDAuMTk4MjkyLCAwLjQ1ODE5MywgMC42ODY1NDUsIDAuOTkwNjYzLCAxLjU5OTM3LCAxLjk3OTY2IiwgXAotICAgICAgICAgICIwLjE3MTMyMSwgMC4yMTcwNzksIDAuNDc2ODk0LCAwLjcwNTQ5NSwgMS4wMDk1OCwgMS42MTc3NSwgMS45OTg5OSIsIFwKLSAgICAgICAgICAiMC4xODgxMzQsIDAuMjMzNzUzLCAwLjQ5MzM1NCwgMC43MjE3NjIsIDEuMDI1ODQsIDEuNjM0MjUsIDIuMDE0MjMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTk0NDcyLCAwLjI4NDI3MywgMC43OTMyMDksIDEuMjQyNDcsIDEuODQwODcsIDMuMDM3NzEsIDMuNzg1ODgiLCBcCi0gICAgICAgICAgIjAuMTk0NDE5LCAwLjI4NDE2NiwgMC43OTMyODYsIDEuMjQyMTEsIDEuODQwNjksIDMuMDM3MzgsIDMuNzg1NzUiLCBcCi0gICAgICAgICAgIjAuMTk0NTE0LCAwLjI4NDE2MiwgMC43OTMyNzQsIDEuMjQyMDgsIDEuODQxMDUsIDMuMDM3NzQsIDMuNzg1NjgiLCBcCi0gICAgICAgICAgIjAuMTk3MDM5LCAwLjI4NDc3MywgMC43OTMzOTEsIDEuMjQyNDEsIDEuODQwOTksIDMuMDM3NzIsIDMuNzg1NTUiLCBcCi0gICAgICAgICAgIjAuMjAxMzQyLCAwLjI4NzIwNSwgMC43OTMwMzQsIDEuMjQyNDEsIDEuODQwNzUsIDMuMDM3NjUsIDMuNzg1NTkiLCBcCi0gICAgICAgICAgIjAuMjEwMjk5LCAwLjI5MzkyNSwgMC43OTMxNjcsIDEuMjQyNDEsIDEuODQwODQsIDMuMDM3MDcsIDMuNzg2MDIiLCBcCi0gICAgICAgICAgIjAuMjE5ODE0LCAwLjMwMTg0OSwgMC43OTM4MzYsIDEuMjQyNDUsIDEuODQwNzUsIDMuMDM3NDQsIDMuNzg2MjMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjAiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE1NjM5OSwgMC4yMjY0NTMsIDAuNjIzNTI2LCAwLjk3Mzc4NSwgMS40NDA5LCAyLjM3ODcsIDIuOTYzMzMiLCBcCi0gICAgICAgICAgIjAuMTY1MjkyLCAwLjIzNTQ0MywgMC42MzI1OTIsIDAuOTgzMDYyLCAxLjQ0OTI5LCAyLjM4NzE1LCAyLjk3Mjg0IiwgXAotICAgICAgICAgICIwLjE3NTY2LCAwLjI0NTkwOSwgMC42NDMyMDgsIDAuOTkzMjQ5LCAxLjQ2MDQ2LCAyLjM5NzYsIDIuOTgyNTUiLCBcCi0gICAgICAgICAgIjAuMTg1NTE2LCAwLjI1NTcyMSwgMC42NTI3MTEsIDEuMDAyNjQsIDEuNDcwMjIsIDIuNDA3NzIsIDIuOTkyNDYiLCBcCi0gICAgICAgICAgIjAuMTk1MzQsIDAuMjY1NjMsIDAuNjYyNzc3LCAxLjAxMzE3LCAxLjQ4MDg1LCAyLjQxODU4LCAzLjAwMzQ3IiwgXAotICAgICAgICAgICIwLjIxMTE2NSwgMC4yODE1NTIsIDAuNjc4Nzc2LCAxLjAyOTU5LCAxLjQ5NywgMi40MzQzNiwgMy4wMTg1NiIsIFwKLSAgICAgICAgICAiMC4yMjUwNzksIDAuMjk1MzE3LCAwLjY5Mjg5NCwgMS4wNDI1MSwgMS41MDk2NCwgMi40NDgyNSwgMy4wMzI1MiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yODI3NzYsIDAuNDIzMjAxLCAxLjIxODQsIDEuOTIxNDYsIDIuODU5OTcsIDQuNzM4MDcsIDUuOTEwNCIsIFwKLSAgICAgICAgICAiMC4yODI3NzcsIDAuNDIzMTE4LCAxLjIxODQsIDEuOTIyMjcsIDIuODU5OTYsIDQuNzM3NSwgNS45MTA3OSIsIFwKLSAgICAgICAgICAiMC4yODI3NjIsIDAuNDIzMTA4LCAxLjIxODQ1LCAxLjkyMjI0LCAyLjg2MDUxLCA0LjczNzQ1LCA1LjkxMTY5IiwgXAotICAgICAgICAgICIwLjI4MzA4NCwgMC40MjMyOTIsIDEuMjE4MjgsIDEuOTIxNzUsIDIuODU5ODYsIDQuNzM3NTcsIDUuOTEyMzIiLCBcCi0gICAgICAgICAgIjAuMjg0NTMsIDAuNDIzMzkzLCAxLjIxODQxLCAxLjkyMTU0LCAyLjg2MDA3LCA0LjczODA5LCA1LjkxMTAyIiwgXAotICAgICAgICAgICIwLjI4ODM2OCwgMC40MjU1MzMsIDEuMjE4MTgsIDEuOTIyMjksIDIuODYwMDgsIDQuNzM4MTYsIDUuOTEzMTciLCBcCi0gICAgICAgICAgIjAuMjkzNjU0LCAwLjQyODc0NiwgMS4yMTgzOCwgMS45MjIyNCwgMi44NjA5NiwgNC43MzgyOSwgNS45MTE2NSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDEwMTgsIDAuMTQ2OTc3LCAwLjQwNTg5MywgMC42MzQxODYsIDAuOTM4NTMsIDEuNTQ2MzksIDEuOTI2NDMiLCBcCi0gICAgICAgICAgIjAuMTEwMTI5LCAwLjE1NjAzOCwgMC40MTUxMDYsIDAuNjQzMzQsIDAuOTQ3NjMyLCAxLjU1NTY3LCAxLjkzNTMyIiwgXAotICAgICAgICAgICIwLjEyMTEyNCwgMC4xNjcwNTksIDAuNDI2MTg0LCAwLjY1NDQ5NiwgMC45NTg3MTYsIDEuNTY2NTYsIDEuOTQ2OTciLCBcCi0gICAgICAgICAgIjAuMTMxOTYzLCAwLjE3ODAwNCwgMC40MzczOTQsIDAuNjY1NjEzLCAwLjk2OTkyMywgMS41NzgsIDEuOTU3NzYiLCBcCi0gICAgICAgICAgIjAuMTQyOTE3LCAwLjE4OTAxMSwgMC40NDgzNjUsIDAuNjc2ODMyLCAwLjk4MTA5MiwgMS41ODkwMSwgMS45Njg2OCIsIFwKLSAgICAgICAgICAiMC4xNjA0MjgsIDAuMjA2NjI0LCAwLjQ2NjE2NiwgMC42OTQ1NDEsIDAuOTk4NzE3LCAxLjYwNjY4LCAxLjk4NjUiLCBcCi0gICAgICAgICAgIjAuMTc1NDgzLCAwLjIyMjE3MywgMC40ODE0NDMsIDAuNzA5OTM3LCAxLjAxNDEyLCAxLjYyMjExLCAyLjAwMTk2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE4NDE0MywgMC4yNzM5OTMsIDAuNzgyOTA0LCAxLjIzMTc3LCAxLjgzMDM3LCAzLjAyNzMxLCAzLjc3NTE2IiwgXAotICAgICAgICAgICIwLjE4NDEzMiwgMC4yNzM5MjMsIDAuNzgyODksIDEuMjMxNjMsIDEuODMwMywgMy4wMjcyNiwgMy43NzYyNiIsIFwKLSAgICAgICAgICAiMC4xODQ0MTUsIDAuMjczOTc0LCAwLjc4MjkwNiwgMS4yMzE1LCAxLjgyOTk3LCAzLjAyNzEsIDMuNzc1NjUiLCBcCi0gICAgICAgICAgIjAuMTg2MTg0LCAwLjI3NDQ5NywgMC43ODI5NTYsIDEuMjMxNDUsIDEuODMwMjEsIDMuMDI3MTcsIDMuNzc0OTQiLCBcCi0gICAgICAgICAgIjAuMTg5MzA1LCAwLjI3NjI0OSwgMC43ODI4NTksIDEuMjMxNzgsIDEuODMwMzQsIDMuMDI3MTUsIDMuNzc1NzgiLCBcCi0gICAgICAgICAgIjAuMTk2MjAzLCAwLjI4MTIzOSwgMC43ODI4ODIsIDEuMjMxNDcsIDEuODMwMTIsIDMuMDI3MTUsIDMuNzc1OCIsIFwKLSAgICAgICAgICAiMC4yMDM0MTEsIDAuMjg3MTEzLCAwLjc4MzE3NywgMS4yMzE1NSwgMS44Mjk4LCAzLjAyNzE4LCAzLjc3NjA4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIxIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNTI4NTEsIDAuMjIzNDE2LCAwLjYyMzI3NywgMC45NzYyMjMsIDEuNDQ3NzgsIDIuMzkxNzIsIDIuOTgxMDkiLCBcCi0gICAgICAgICAgIjAuMTYxNzc2LCAwLjIzMjQ2MiwgMC42MzI1OTgsIDAuOTg1NzQ5LCAxLjQ1NjU2LCAyLjQwMDcyLCAyLjk5MDI0IiwgXAotICAgICAgICAgICIwLjE3MTg1NSwgMC4yNDI2NjUsIDAuNjQzMDI4LCAwLjk5NTg5OSwgMS40Njc2NSwgMi40MTEsIDMuMDAwOSIsIFwKLSAgICAgICAgICAiMC4xODE2OTUsIDAuMjUyNTUxLCAwLjY1MjY0NywgMS4wMDU3OSwgMS40Nzc0OCwgMi40MjE2NSwgMy4wMTE2MiIsIFwKLSAgICAgICAgICAiMC4xOTE0MTEsIDAuMjYyMjcyLCAwLjY2MjYzOCwgMS4wMTUyMiwgMS40ODY3NywgMi40MzA0NCwgMy4wMjA1IiwgXAotICAgICAgICAgICIwLjIwNzA2OCwgMC4yNzc5NzQsIDAuNjc4NDkxLCAxLjAzMTMsIDEuNTAyMDEsIDIuNDQ3MDMsIDMuMDM3MDciLCBcCi0gICAgICAgICAgIjAuMjIwODMxLCAwLjI5MTU1MiwgMC42OTI0NzYsIDEuMDQ0OTgsIDEuNTE2MjIsIDIuNDYxMTgsIDMuMDUwMzMiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjc5NjcsIDAuNDIxMjkxLCAxLjIyNDI2LCAxLjkzMzUxLCAyLjg4MDYyLCA0Ljc4NzMzLCA1Ljk2MzEyIiwgXAotICAgICAgICAgICIwLjI3OTY3LCAwLjQyMTE3NiwgMS4yMjQxNiwgMS45MzM1MywgMi44ODQxNiwgNC43ODcxNywgNS45NjI1NiIsIFwKLSAgICAgICAgICAiMC4yNzk2NzYsIDAuNDIxMjA5LCAxLjIyMzU0LCAxLjkzODA0LCAyLjg4MSwgNC43ODcxNCwgNS45NTkwMyIsIFwKLSAgICAgICAgICAiMC4yNzk5NTUsIDAuNDIxMTU2LCAxLjIyNTQ5LCAxLjkzNTU1LCAyLjg4MTA4LCA0Ljc3NjExLCA1Ljk1ODgiLCBcCi0gICAgICAgICAgIjAuMjgxNDk5LCAwLjQyMTQ4NiwgMS4yMjU2NSwgMS45MzUwMywgMi44ODQxNSwgNC43ODM3NSwgNS45NjI2NSIsIFwKLSAgICAgICAgICAiMC4yODU1MDUsIDAuNDIzNzgyLCAxLjIyMzM0LCAxLjkzNzcsIDIuODgzMDIsIDQuNzc4MTIsIDUuOTU5MzciLCBcCi0gICAgICAgICAgIjAuMjkwODI3LCAwLjQyNzAzMiwgMS4yMjQ3MiwgMS45Mzc3MSwgMi44ODczOSwgNC43ODc2MiwgNS45NjQ2Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5ODU0LCAwLjE0NDQyNiwgMC40MDM0NiwgMC42MzE3NywgMC45MzU5MDcsIDEuNTQzODcsIDEuOTIzODMiLCBcCi0gICAgICAgICAgIjAuMTA3ODIzLCAwLjE1MzcyLCAwLjQxMjgxNywgMC42NDExMTMsIDAuOTQ1Mjg1LCAxLjU1MzE1LCAxLjkzMjk1IiwgXAotICAgICAgICAgICIwLjExOTY1NSwgMC4xNjU2MiwgMC40MjQ2OTUsIDAuNjUyOTk5LCAwLjk1NzIxOCwgMS41NjUxNiwgMS45NDUyMiIsIFwKLSAgICAgICAgICAiMC4xMzA4MjUsIDAuMTc2NzExLCAwLjQzNTg1MywgMC42NjQ0MjUsIDAuOTY4MzIzLCAxLjU3NjQxLCAxLjk1NjM3IiwgXAotICAgICAgICAgICIwLjE0MjQzLCAwLjE4ODQxNywgMC40NDc0NjEsIDAuNjc1NjkyLCAwLjk3OTk0NSwgMS41ODgxMiwgMS45Njc2MSIsIFwKLSAgICAgICAgICAiMC4xNjIwNDYsIDAuMjA3Mjk0LCAwLjQ2NjI2NSwgMC42OTQ1NDcsIDAuOTk4NzA4LCAxLjYwNjU2LCAxLjk4NjQiLCBcCi0gICAgICAgICAgIjAuMTc4NzA1LCAwLjIyNDMyOCwgMC40ODI1MjMsIDAuNzEwODE0LCAxLjAxNTAxLCAxLjYyMzA4LCAyLjAwMjkxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE4NDE1NCwgMC4yNzM5ODIsIDAuNzgyNzYzLCAxLjIzMTgzLCAxLjgzMDE1LCAzLjAyNjg5LCAzLjc3NTE3IiwgXAotICAgICAgICAgICIwLjE4NDEzNiwgMC4yNzM5NjcsIDAuNzgyNjc2LCAxLjIzMTU1LCAxLjgyOTk3LCAzLjAyNzAyLCAzLjc3NDM1IiwgXAotICAgICAgICAgICIwLjE4NDU4NCwgMC4yNzQwMDgsIDAuNzgyODg5LCAxLjIzMTgsIDEuODMwMjksIDMuMDI3LCAzLjc3NTYzIiwgXAotICAgICAgICAgICIwLjE4Nzc5MiwgMC4yNzQ5MzEsIDAuNzgyNjY1LCAxLjIzMTY1LCAxLjgyOTc3LCAzLjAyNzIxLCAzLjc3NTY4IiwgXAotICAgICAgICAgICIwLjE5MjU2NSwgMC4yNzc3ODYsIDAuNzgyOTEzLCAxLjIzMTcsIDEuODMwMjYsIDMuMDI3MzMsIDMuNzc0ODMiLCBcCi0gICAgICAgICAgIjAuMjAyMTU0LCAwLjI4NTEyMiwgMC43ODI5MzYsIDEuMjMxNzgsIDEuODMwMTEsIDMuMDI3MTQsIDMuNzc2NjEiLCBcCi0gICAgICAgICAgIjAuMjEyMzMyLCAwLjI5MjgxNywgMC43ODMzMjksIDEuMjMxNDksIDEuODMwMDUsIDMuMDI3MTksIDMuNzc0ODgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQzAiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE0Mjc2MiwgMC4yMTI5NTMsIDAuNjA5NzcsIDAuOTYyMDgyLCAxLjQzMjYyLCAyLjM3NjY4LCAyLjk2Njc1IiwgXAotICAgICAgICAgICIwLjE1MTE5NCwgMC4yMjE0MTUsIDAuNjE4NzIxLCAwLjk3MDg4OSwgMS40NDI1NiwgMi4zODY0NiwgMi45NzYwNiIsIFwKLSAgICAgICAgICAiMC4xNjE4NjEsIDAuMjMyMjIyLCAwLjYyOTI4MiwgMC45ODE3NiwgMS40NTIyNywgMi4zOTc3LCAyLjk4NjMzIiwgXAotICAgICAgICAgICIwLjE3MjYwOCwgMC4yNDI1MTIsIDAuNjM5OTgyLCAwLjk5MjQxNCwgMS40NjMzNiwgMi40MDgxMywgMi45OTcwOSIsIFwKLSAgICAgICAgICAiMC4xODM0MDYsIDAuMjUzNjI3LCAwLjY1MTA1MSwgMS4wMDMwMywgMS40NzQxOCwgMi40MTg3MSwgMy4wMDc5NSIsIFwKLSAgICAgICAgICAiMC4yMDA5MjYsIDAuMjcwODc3LCAwLjY2ODA2NCwgMS4wMjAxMywgMS40OTIwOCwgMi40MzYzLCAzLjAyNTI2IiwgXAotICAgICAgICAgICIwLjIxNjE4NCwgMC4yODYyMzcsIDAuNjgzMTU3LCAxLjAzNTg1LCAxLjUwNjM5LCAyLjQ1MTgxLCAzLjA0MDUxIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI4Mjg0MSwgMC40MjMxMTIsIDEuMjIzNCwgMS45MzM0MiwgMi44ODc2OCwgNC43ODM4OCwgNS45NjI1MSIsIFwKLSAgICAgICAgICAiMC4yODI3MzQsIDAuNDIzMTE2LCAxLjIyMzQ4LCAxLjkzNTYzLCAyLjg4MTUyLCA0Ljc3NjExLCA1Ljk1OTI3IiwgXAotICAgICAgICAgICIwLjI4MjA2NCwgMC40MjMxMjksIDEuMjI1NTUsIDEuOTMzMzUsIDIuODgwNzQsIDQuNzg4MjcsIDUuOTYyNjUiLCBcCi0gICAgICAgICAgIjAuMjgzMDc3LCAwLjQyMjczOCwgMS4yMjQ3NCwgMS45MzMwOSwgMi44ODQwNCwgNC43ODc3OCwgNS45NjI5OSIsIFwKLSAgICAgICAgICAiMC4yODU5NDgsIDAuNDIzMjM4LCAxLjIyMzUzLCAxLjkzMzIxLCAyLjg4NDA3LCA0Ljc4NzQ4LCA1Ljk2NDI3IiwgXAotICAgICAgICAgICIwLjI5MzQzNywgMC40Mjc0MDgsIDEuMjI1NDgsIDEuOTM2NTQsIDIuODgxMTEsIDQuNzg3ODcsIDUuOTY0NjYiLCBcCi0gICAgICAgICAgIjAuMzAxNTIyLCAwLjQzMzA5OSwgMS4yMjM1OCwgMS45MzMzNSwgMi44ODc3NywgNC43NzUyMywgNS45NjI0MSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTAzOTksIDAuMDc1MTg0LCAwLjIxNTUzNCwgMC4zMzk0MDUsIDAuNTA0NDgsIDAuODM0NjI1LCAxLjA0MDc1IiwgXAotICAgICAgICAgICIwLjA2MDY0OCwgMC4wODU1MTIsIDAuMjI1NTkzLCAwLjM0OTQ0OCwgMC41MTQ0OTIsIDAuODQ0NjQ2LCAxLjA1MDgyIiwgXAotICAgICAgICAgICIwLjA3Mzc2NCwgMC4wOTg1ODYsIDAuMjM4OTY0LCAwLjM2MjgyOCwgMC41Mjc5MzQsIDAuODU3OTU0LCAxLjA2NDIzIiwgXAotICAgICAgICAgICIwLjA4NjU4NiwgMC4xMTEzMjUsIDAuMjUxNDMzLCAwLjM3NTE0OSwgMC41NDAyMzgsIDAuODY5MTEyLCAxLjA3NTM3IiwgXAotICAgICAgICAgICIwLjA5OTYyLCAwLjEyNDM2LCAwLjI2NDQyMywgMC4zODgwNjQsIDAuNTUzMDA1LCAwLjg4MjM0NywgMS4wODcyNyIsIFwKLSAgICAgICAgICAiMC4xMTg4MzUsIDAuMTQ1Mzg4LCAwLjI4NTY1MiwgMC40MDg3NDIsIDAuNTczNDg0LCAwLjkwMzU1MSwgMS4xMDk4IiwgXAotICAgICAgICAgICIwLjEzMzU3NiwgMC4xNjMxMDcsIDAuMzAyNDcsIDAuNDI2ODE3LCAwLjU5MTYzNCwgMC45MjE0LCAxLjEyNzY2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5OTgyMSwgMC4xNDk0MTUsIDAuNDMwODI1LCAwLjY3OTQ3MiwgMS4wMTEwMywgMS42NzQ1MiwgMi4wODk0IiwgXAotICAgICAgICAgICIwLjA5OTk2NiwgMC4xNDk0MTEsIDAuNDMwODM3LCAwLjY3OTM1MSwgMS4wMTA4NywgMS42NzM0MiwgMi4wODk4MyIsIFwKLSAgICAgICAgICAiMC4xMDMzMjMsIDAuMTUwNzI5LCAwLjQzMDkyLCAwLjY3OTM4LCAxLjAxMDkyLCAxLjY3MzQ5LCAyLjA4NzQxIiwgXAotICAgICAgICAgICIwLjEwOTMxMSwgMC4xNTQ5MzYsIDAuNDMwOTM2LCAwLjY3OTM3OSwgMS4wMTExMiwgMS42NzQ1MSwgMi4wODc5NiIsIFwKLSAgICAgICAgICAiMC4xMTY2NDEsIDAuMTYwNjE3LCAwLjQzMTMxNiwgMC42NzkzNDcsIDEuMDExMTIsIDEuNjc0NSwgMi4wODkzNSIsIFwKLSAgICAgICAgICAiMC4xMzAxMywgMC4xNzE4NDIsIDAuNDM1MDg4LCAwLjY3OTQwNSwgMS4wMTExMSwgMS42NzM2MiwgMi4wODkxNyIsIFwKLSAgICAgICAgICAiMC4xNDMxOTksIDAuMTgyOTI1LCAwLjQzOTk4NCwgMC42ODA5NDQsIDEuMDExMDYsIDEuNjczNjUsIDIuMDg5NSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQ0OTEsIDAuMDA0NDkxLCAwLjAwNDQ5MiwgMC4wMDQ0OSwgMC4wMDQ0OSwgMC4wMDQ0ODksIDAuMDA0NDg2IiwgXAotICAgICAgICAgICIwLjAwNDQ4MSwgMC4wMDQ0ODMsIDAuMDA0NDg1LCAwLjAwNDQ4NSwgMC4wMDQ0ODQsIDAuMDA0NDgzLCAwLjAwNDQ4MyIsIFwKLSAgICAgICAgICAiMC4wMDQ0NzQsIDAuMDA0NDc4LCAwLjAwNDQ4MiwgMC4wMDQ0ODQsIDAuMDA0NDgzLCAwLjAwNDQ4MiwgMC4wMDQ0OCIsIFwKLSAgICAgICAgICAiMC4wMDQ0NywgMC4wMDQ0NzQsIDAuMDA0NDgxLCAwLjAwNDQ4MiwgMC4wMDQ0ODIsIDAuMDA0NDgyLCAwLjAwNDQ4IiwgXAotICAgICAgICAgICIwLjAwNDQ2NiwgMC4wMDQ0NywgMC4wMDQ0NzksIDAuMDA0NDgxLCAwLjAwNDQ4MSwgMC4wMDQ0ODEsIDAuMDA0NDgiLCBcCi0gICAgICAgICAgIjAuMDA0NDYxLCAwLjAwNDQ2NiwgMC4wMDQ0NzcsIDAuMDA0NDc5LCAwLjAwNDQ4MSwgMC4wMDQ0ODEsIDAuMDA0NDgiLCBcCi0gICAgICAgICAgIjAuMDA0NDU4LCAwLjAwNDQ2MywgMC4wMDQ0NzYsIDAuMDA0NDc4LCAwLjAwNDQ3OSwgMC4wMDQ0NzksIDAuMDA0NDc4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxMjA0LCAwLjAwMTIwNCwgMC4wMDEyMDMsIDAuMDAxMjAzLCAwLjAwMTIwMiwgMC4wMDEyMDEsIDAuMDAxMjAxIiwgXAotICAgICAgICAgICIwLjAwMTE3NiwgMC4wMDExNzcsIDAuMDAxMTc4LCAwLjAwMTE3NywgMC4wMDExNzgsIDAuMDAxMTc0LCAwLjAwMTE3NSIsIFwKLSAgICAgICAgICAiMC4wMDExNjQsIDAuMDAxMTY2LCAwLjAwMTE3LCAwLjAwMTE3MSwgMC4wMDExNywgMC4wMDExNywgMC4wMDExNjkiLCBcCi0gICAgICAgICAgIjAuMDAxMTU3LCAwLjAwMTE2LCAwLjAwMTE2NiwgMC4wMDExNjcsIDAuMDAxMTY3LCAwLjAwMTE2NiwgMC4wMDExNjYiLCBcCi0gICAgICAgICAgIjAuMDAxMTUyLCAwLjAwMTE1NiwgMC4wMDExNjQsIDAuMDAxMTY1LCAwLjAwMTE2NiwgMC4wMDExNjUsIDAuMDAxMTY0IiwgXAotICAgICAgICAgICIwLjAwMTE0NywgMC4wMDExNTIsIDAuMDAxMTYxLCAwLjAwMTE2MiwgMC4wMDExNjMsIDAuMDAxMTYzLCAwLjAwMTE2MyIsIFwKLSAgICAgICAgICAiMC4wMDExNDUsIDAuMDAxMTQ5LCAwLjAwMTE1OSwgMC4wMDExNjEsIDAuMDAxMTYyLCAwLjAwMTE2MywgMC4wMDExNjIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0MDYzLCAwLjAwNDA2NCwgMC4wMDQwNjcsIDAuMDA0MDY2LCAwLjAwNDA2NiwgMC4wMDQwNjUsIDAuMDA0MDY2IiwgXAotICAgICAgICAgICIwLjAwNDA1NSwgMC4wMDQwNiwgMC4wMDQwNjcsIDAuMDA0MDcsIDAuMDA0MDcsIDAuMDA0MDY5LCAwLjAwNDA2OCIsIFwKLSAgICAgICAgICAiMC4wMDQwNDEsIDAuMDA0MDUsIDAuMDA0MDY0LCAwLjAwNDA2NiwgMC4wMDQwNjgsIDAuMDA0MDY4LCAwLjAwNDA2OCIsIFwKLSAgICAgICAgICAiMC4wMDQwMzEsIDAuMDA0MDQyLCAwLjAwNDA2LCAwLjAwNDA2NCwgMC4wMDQwNjYsIDAuMDA0MDY4LCAwLjAwNDA2NiIsIFwKLSAgICAgICAgICAiMC4wMDQwMjIsIDAuMDA0MDM0LCAwLjAwNDA1NiwgMC4wMDQwNjEsIDAuMDA0MDY0LCAwLjAwNDA2NiwgMC4wMDQwNjYiLCBcCi0gICAgICAgICAgIjAuMDA0MDEyLCAwLjAwNDAyNSwgMC4wMDQwNTEsIDAuMDA0MDU4LCAwLjAwNDA2MiwgMC4wMDQwNjYsIDAuMDA0MDY2IiwgXAotICAgICAgICAgICIwLjAwNDAwNSwgMC4wMDQwMTgsIDAuMDA0MDQ3LCAwLjAwNDA1NSwgMC4wMDQwNiwgMC4wMDQwNjMsIDAuMDA0MDY0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxMjA0LCAwLjAwMTIwNCwgMC4wMDEyMDMsIDAuMDAxMjA0LCAwLjAwMTIwMywgMC4wMDEyMDIsIDAuMDAxMjAxIiwgXAotICAgICAgICAgICIwLjAwMTE3NSwgMC4wMDExNzYsIDAuMDAxMTc3LCAwLjAwMTE3OCwgMC4wMDExNzcsIDAuMDAxMTc2LCAwLjAwMTE3NSIsIFwKLSAgICAgICAgICAiMC4wMDExNjMsIDAuMDAxMTY2LCAwLjAwMTE3LCAwLjAwMTE3LCAwLjAwMTE3LCAwLjAwMTE3LCAwLjAwMTE2OSIsIFwKLSAgICAgICAgICAiMC4wMDExNTgsIDAuMDAxMTYsIDAuMDAxMTY2LCAwLjAwMTE2NywgMC4wMDExNjcsIDAuMDAxMTY2LCAwLjAwMTE2NSIsIFwKLSAgICAgICAgICAiMC4wMDExNTUsIDAuMDAxMTU5LCAwLjAwMTE2NCwgMC4wMDExNjUsIDAuMDAxMTY1LCAwLjAwMTE2NSwgMC4wMDExNjQiLCBcCi0gICAgICAgICAgIjAuMDAxMTYyLCAwLjAwMTE2LCAwLjAwMTE2NCwgMC4wMDExNjQsIDAuMDAxMTY1LCAwLjAwMTE2NCwgMC4wMDExNjMiLCBcCi0gICAgICAgICAgIjAuMDAxMTcxLCAwLjAwMTE2NSwgMC4wMDExNjUsIDAuMDAxMTY1LCAwLjAwMTE2NCwgMC4wMDExNjQsIDAuMDAxMTYzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzcsIDAuMDAzNywgMC4wMDM2OTksIDAuMDAzNjk5LCAwLjAwMzY5OCwgMC4wMDM2OTYsIDAuMDAzNjk2IiwgXAotICAgICAgICAgICIwLjAwMzY4OSwgMC4wMDM2OTEsIDAuMDAzNjk0LCAwLjAwMzY5MywgMC4wMDM2OTQsIDAuMDAzNjkyLCAwLjAwMzY5IiwgXAotICAgICAgICAgICIwLjAwMzY4MywgMC4wMDM2ODYsIDAuMDAzNjkxLCAwLjAwMzY5MiwgMC4wMDM2OTEsIDAuMDAzNjkxLCAwLjAwMzY4OSIsIFwKLSAgICAgICAgICAiMC4wMDM2NzgsIDAuMDAzNjgyLCAwLjAwMzY4OSwgMC4wMDM2OSwgMC4wMDM2OTEsIDAuMDAzNjg5LCAwLjAwMzY4OSIsIFwKLSAgICAgICAgICAiMC4wMDM2NzQsIDAuMDAzNjc5LCAwLjAwMzY4OCwgMC4wMDM2ODksIDAuMDAzNjksIDAuMDAzNjg5LCAwLjAwMzY4OCIsIFwKLSAgICAgICAgICAiMC4wMDM2NywgMC4wMDM2NzUsIDAuMDAzNjg2LCAwLjAwMzY4OCwgMC4wMDM2ODksIDAuMDAzNjg5LCAwLjAwMzY4OCIsIFwKLSAgICAgICAgICAiMC4wMDM2NjgsIDAuMDAzNjczLCAwLjAwMzY4NCwgMC4wMDM2ODYsIDAuMDAzNjg4LCAwLjAwMzY4OCwgMC4wMDM2ODgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDA1MzksIDAuMDAwNTQsIDAuMDAwNTQsIDAuMDAwNTQsIDAuMDAwNTQsIDAuMDAwNTM5LCAwLjAwMDUzOCIsIFwKLSAgICAgICAgICAiMC4wMDA1MzIsIDAuMDAwNTM1LCAwLjAwMDU0LCAwLjAwMDU0LCAwLjAwMDU0MSwgMC4wMDA1NDEsIDAuMDAwNTQiLCBcCi0gICAgICAgICAgIjAuMDAwNTE5LCAwLjAwMDUyNywgMC4wMDA1MzcsIDAuMDAwNTM5LCAwLjAwMDU0LCAwLjAwMDU0LCAwLjAwMDU0IiwgXAotICAgICAgICAgICIwLjAwMDUwOSwgMC4wMDA1MTgsIDAuMDAwNTM0LCAwLjAwMDUzNywgMC4wMDA1MzksIDAuMDAwNTQsIDAuMDAwNTQiLCBcCi0gICAgICAgICAgIjAuMDAwNSwgMC4wMDA1MTIsIDAuMDAwNTMxLCAwLjAwMDUzNSwgMC4wMDA1MzcsIDAuMDAwNTM5LCAwLjAwMDUzOSIsIFwKLSAgICAgICAgICAiMC4wMDA0OTEsIDAuMDAwNTAzLCAwLjAwMDUyNywgMC4wMDA1MzIsIDAuMDAwNTM1LCAwLjAwMDUzOCwgMC4wMDA1MzgiLCBcCi0gICAgICAgICAgIjAuMDAwNDkxLCAwLjAwMDQ5OSwgMC4wMDA1MjQsIDAuMDAwNTMsIDAuMDAwNTM0LCAwLjAwMDUzNywgMC4wMDA1MzciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzMjgyLCAwLjAwMzI4NCwgMC4wMDMyODUsIDAuMDAzMjg1LCAwLjAwMzI4MywgMC4wMDMyODQsIDAuMDAzMjgzIiwgXAotICAgICAgICAgICIwLjAwMzI3NCwgMC4wMDMyNzksIDAuMDAzMjg3LCAwLjAwMzI4OCwgMC4wMDMyODgsIDAuMDAzMjg4LCAwLjAwMzI4NyIsIFwKLSAgICAgICAgICAiMC4wMDMyNjEsIDAuMDAzMjY5LCAwLjAwMzI4MiwgMC4wMDMyODcsIDAuMDAzMjg3LCAwLjAwMzI4NSwgMC4wMDMyODUiLCBcCi0gICAgICAgICAgIjAuMDAzMjUsIDAuMDAzMjYxLCAwLjAwMzI3OSwgMC4wMDMyODMsIDAuMDAzMjg1LCAwLjAwMzI4NiwgMC4wMDMyODQiLCBcCi0gICAgICAgICAgIjAuMDAzMjQyLCAwLjAwMzI1MywgMC4wMDMyNzUsIDAuMDAzMjgsIDAuMDAzMjgzLCAwLjAwMzI4NiwgMC4wMDMyODYiLCBcCi0gICAgICAgICAgIjAuMDAzMjMyLCAwLjAwMzI0NCwgMC4wMDMyNywgMC4wMDMyNzcsIDAuMDAzMjgsIDAuMDAzMjgzLCAwLjAwMzI4NCIsIFwKLSAgICAgICAgICAiMC4wMDMyMjYsIDAuMDAzMjM5LCAwLjAwMzI2NywgMC4wMDMyNzQsIDAuMDAzMjc5LCAwLjAwMzI4MywgMC4wMDMyODMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDA1MzcsIDAuMDAwNTM4LCAwLjAwMDUzOCwgMC4wMDA1MzgsIDAuMDAwNTM4LCAwLjAwMDUzNywgMC4wMDA1MzciLCBcCi0gICAgICAgICAgIjAuMDAwNTI5LCAwLjAwMDUzMywgMC4wMDA1MzgsIDAuMDAwNTM4LCAwLjAwMDUzOSwgMC4wMDA1MzksIDAuMDAwNTM5IiwgXAotICAgICAgICAgICIwLjAwMDUyMSwgMC4wMDA1MjYsIDAuMDAwNTM2LCAwLjAwMDUzOCwgMC4wMDA1MzksIDAuMDAwNTM5LCAwLjAwMDUzOSIsIFwKLSAgICAgICAgICAiMC4wMDA1MTMsIDAuMDAwNTIxLCAwLjAwMDUzMywgMC4wMDA1MzYsIDAuMDAwNTM4LCAwLjAwMDUzOSwgMC4wMDA1MzkiLCBcCi0gICAgICAgICAgIjAuMDAwNTExLCAwLjAwMDUyLCAwLjAwMDUzMiwgMC4wMDA1MzUsIDAuMDAwNTM3LCAwLjAwMDUzOCwgMC4wMDA1MzgiLCBcCi0gICAgICAgICAgIjAuMDAwNTE0LCAwLjAwMDUxNywgMC4wMDA1MzEsIDAuMDAwNTM0LCAwLjAwMDUzNiwgMC4wMDA1MzgsIDAuMDAwNTM4IiwgXAotICAgICAgICAgICIwLjAwMDUyMywgMC4wMDA1MjUsIDAuMDAwNTMyLCAwLjAwMDUzNSwgMC4wMDA1MzcsIDAuMDAwNTM4LCAwLjAwMDUzOCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI5NDQsIDAuMDAyOTQ2LCAwLjAwMjk0OCwgMC4wMDI5NDgsIDAuMDAyOTQ3LCAwLjAwMjk0NiwgMC4wMDI5NDQiLCBcCi0gICAgICAgICAgIjAuMDAyOTI1LCAwLjAwMjkzMiwgMC4wMDI5NDIsIDAuMDAyOTQ0LCAwLjAwMjk0NCwgMC4wMDI5NDMsIDAuMDAyOTQzIiwgXAotICAgICAgICAgICIwLjAwMjkxMSwgMC4wMDI5MiwgMC4wMDI5MzYsIDAuMDAyOTQsIDAuMDAyOTQyLCAwLjAwMjk0MiwgMC4wMDI5NCIsIFwKLSAgICAgICAgICAiMC4wMDI5MDQsIDAuMDAyOTExLCAwLjAwMjkzMiwgMC4wMDI5MzcsIDAuMDAyOTQsIDAuMDAyOTQxLCAwLjAwMjk0IiwgXAotICAgICAgICAgICIwLjAwMjkwMiwgMC4wMDI5MDksIDAuMDAyOTI5LCAwLjAwMjkzNCwgMC4wMDI5MzcsIDAuMDAyOTM5LCAwLjAwMjkzOSIsIFwKLSAgICAgICAgICAiMC4wMDI5MDYsIDAuMDAyOTEsIDAuMDAyOTI2LCAwLjAwMjkzMSwgMC4wMDI5MzUsIDAuMDAyOTM3LCAwLjAwMjkzNyIsIFwKLSAgICAgICAgICAiMC4wMDI5MTUsIDAuMDAyOTE0LCAwLjAwMjkyNSwgMC4wMDI5MywgMC4wMDI5MzQsIDAuMDAyOTM2LCAwLjAwMjkzNiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDA0MSwgMC4wMDAwNDQsIDAuMDAwMDQ3LCAwLjAwMDA0OCwgMC4wMDAwNDksIDAuMDAwMDQ5LCAwLjAwMDA0OSIsIFwKLSAgICAgICAgICAiMC4wMDAwNDgsIDAuMDAwMDU3LCAwLjAwMDA3MiwgMC4wMDAwNzUsIDAuMDAwMDc2LCAwLjAwMDA3OCwgMC4wMDAwNzgiLCBcCi0gICAgICAgICAgIjAuMDAwMDM4LCAwLjAwMDA1MSwgMC4wMDAwNzEsIDAuMDAwMDc1LCAwLjAwMDA3NywgMC4wMDAwNzksIDAuMDAwMDgiLCBcCi0gICAgICAgICAgIjAuMDAwMDMxLCAwLjAwMDA0NiwgMC4wMDAwNywgMC4wMDAwNzYsIDAuMDAwMDgyLCAwLjAwMDA4NiwgMC4wMDAwODciLCBcCi0gICAgICAgICAgIjAuMDAwMDI3LCAwLjAwMDA0MiwgMC4wMDAwNjksIDAuMDAwMDc1LCAwLjAwMDA3OSwgMC4wMDAwODYsIDAuMDAwMDg3IiwgXAotICAgICAgICAgICIwLjAwMDAyOCwgMC4wMDAwNDEsIDAuMDAwMDY3LCAwLjAwMDA3NCwgMC4wMDAwNzksIDAuMDAwMDgzLCAwLjAwMDA4NCIsIFwKLSAgICAgICAgICAiMC4wMDAwMzUsIDAuMDAwMDQ1LCAwLjAwMDA2NywgMC4wMDAwNzUsIDAuMDAwMDc5LCAwLjAwMDA4MywgMC4wMDAwODQiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogQU9JMjIyWDIgKgotICogLS0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKEFPSTIyMlgyKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuNDI3Njg0OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNzQ0NTc7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNzM2NzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE3NDQ1NzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA4MTgsIDAuMDAwODE4LCAwLjAwMDgxNywgMC4wMDA4MTcsIDAuMDAwODE4LCAwLjAwMDgxNywgMC4wMDA4MTciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA4NDEsIDAuMDAwODIzLCAwLjAwMDgyMSwgMC4wMDA4MiwgMC4wMDA4MiwgMC4wMDA4MiwgMC4wMDA4MiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQTEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTYwNzA3OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTU5MzM3OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTYwNzA3OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDQ2OSwgMC4wMDA0NjgsIDAuMDAwNDY4LCAwLjAwMDQ2OCwgMC4wMDA0NjgsIDAuMDAwNDY4LCAwLjAwMDQ2OSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDkyOCwgMC4wMDA5MjksIDAuMDAwOTMsIDAuMDAwOTI5LCAwLjAwMDkyOSwgMC4wMDA5MjksIDAuMDAwOTI5Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNjYzNDg7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNjU3Mjg7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNjYzNDg7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwODE5LCAwLjAwMDgxOSwgMC4wMDA4MTgsIDAuMDAwODE4LCAwLjAwMDgxOCwgMC4wMDA4MTgsIDAuMDAwODE4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwODM2LCAwLjAwMDgyMSwgMC4wMDA4MiwgMC4wMDA4MiwgMC4wMDA4MiwgMC4wMDA4MiwgMC4wMDA4MiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQjEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTYxOTA0OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTYwNzA0OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTYxOTA0OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDQxNCwgMC4wMDA0MTMsIDAuMDAwNDEzLCAwLjAwMDQxMywgMC4wMDA0MTMsIDAuMDAwNDE0LCAwLjAwMDQxNCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDkyOCwgMC4wMDA5MjksIDAuMDAwOTI4LCAwLjAwMDkyOSwgMC4wMDA5MjksIDAuMDAwOTI5LCAwLjAwMDkyOSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQzApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTcyMDk5OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTcyMDk5OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTcxNjIxOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDgxOSwgMC4wMDA4MTksIDAuMDAwODE4LCAwLjAwMDgxOCwgMC4wMDA4MTgsIDAuMDAwODE4LCAwLjAwMDgxOCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDg0MiwgMC4wMDA4MjMsIDAuMDAwODIxLCAwLjAwMDgyLCAwLjAwMDgyLCAwLjAwMDgxOSwgMC4wMDA4MTkiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEMxKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE1NzE4NjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE1NzEwOTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE1NzE4NjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA0ODksIDAuMDAwNDksIDAuMDAwNDg5LCAwLjAwMDQ4OSwgMC4wMDA0ODksIDAuMDAwNDg5LCAwLjAwMDQ4OSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDkyOCwgMC4wMDA5MjgsIDAuMDAwOTI4LCAwLjAwMDkyOCwgMC4wMDA5MjgsIDAuMDAwOTI5LCAwLjAwMDkyOSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjE4MjkxOwotICAgIGZ1bmN0aW9uIDogIighKCgoQzAgQzEpKyhBMCBBMSkpKyhCMCBCMSkpKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTAiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExNDk1NCwgMC40MDc0OCwgMC42NDMzNTYsIDAuOTM4NTcsIDEuMjM1MzcsIDEuNTMxMjcsIDEuODI3NTQiLCBcCi0gICAgICAgICAgIjAuMTI0MzczLCAwLjQxNjk4NiwgMC42NTMwMzksIDAuOTQ4NTEzLCAxLjI0NDY0LCAxLjU0MTMzLCAxLjgzOTE3IiwgXAotICAgICAgICAgICIwLjEzNDU3MywgMC40MjcyMjQsIDAuNjYzMTQ4LCAwLjk1ODQ0OSwgMS4yNTUzNywgMS41NTE2MSwgMS44NDc5NyIsIFwKLSAgICAgICAgICAiMC4xNDM4MTQsIDAuNDM2NTYsIDAuNjcyNTkyLCAwLjk2ODEyMSwgMS4yNjQ1MywgMS41NjE0LCAxLjg1ODIxIiwgXAotICAgICAgICAgICIwLjE1MjQ1NiwgMC40NDU0MDgsIDAuNjgxMTk3LCAwLjk3NjkwNywgMS4yNzI0NSwgMS41Njk2NywgMS44NjcxMyIsIFwKLSAgICAgICAgICAiMC4xNjU4MSwgMC40NTg4MDcsIDAuNjk0NzIsIDAuOTkwMDIzLCAxLjI4NjI2LCAxLjU4MjYsIDEuODc5NDMiLCBcCi0gICAgICAgICAgIjAuMTc2OTkzLCAwLjQ2OTg5NCwgMC43MDU3NzgsIDEuMDAxNjUsIDEuMjk3MjgsIDEuNTkzOTYsIDEuODkwNDgiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTc2NzU5LCAwLjc2ODg0NCwgMS4yNDU1NywgMS44NDMyMywgMi40NDA2LCAzLjAzNzc5LCAzLjYzNjEzIiwgXAotICAgICAgICAgICIwLjE3Njc4LCAwLjc2ODc1NCwgMS4yNDU2MywgMS44NDI3MywgMi40NDA3MywgMy4wMzg0LCAzLjYzNjY0IiwgXAotICAgICAgICAgICIwLjE3NjgzMywgMC43Njg5MjksIDEuMjQ1NDIsIDEuODQzMjgsIDIuNDQxNjEsIDMuMDM4NDMsIDMuNjM2NzciLCBcCi0gICAgICAgICAgIjAuMTc3MTc4LCAwLjc2ODg3OCwgMS4yNDU1NiwgMS44NDM1MiwgMi40NDA1OSwgMy4wMzg4LCAzLjYzNjM0IiwgXAotICAgICAgICAgICIwLjE3ODI2NCwgMC43Njg2NzEsIDEuMjQ1ODUsIDEuODQzNTMsIDIuNDQxMTEsIDMuMDM4NTQsIDMuNjM2MjciLCBcCi0gICAgICAgICAgIjAuMTgxMDIzLCAwLjc2ODU0LCAxLjI0NTY0LCAxLjg0MjY2LCAyLjQ0MTU0LCAzLjAzOTI3LCAzLjYzNzYyIiwgXAotICAgICAgICAgICIwLjE4NDQ3NCwgMC43Njg2ODUsIDEuMjQ1NSwgMS44NDM1NCwgMi40NDA1NywgMy4wMzg2OSwgMy42MzU2OSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzc3MSwgMC4yNzA3NDgsIDAuNDIzNDQ0LCAwLjYxNDE2NCwgMC44MDQzNDYsIDAuOTk1MDMyLCAxLjE4NTI0IiwgXAotICAgICAgICAgICIwLjA4NjU5NywgMC4yNzk2MzcsIDAuNDMyNDYzLCAwLjYyMzA0MSwgMC44MTM0NCwgMS4wMDM4NiwgMS4xOTQxMyIsIFwKLSAgICAgICAgICAiMC4wOTc2MjYsIDAuMjkwNzE3LCAwLjQ0MzU0MSwgMC42MzQxNjQsIDAuODI0OTk5LCAxLjAxNTA2LCAxLjIwNTYiLCBcCi0gICAgICAgICAgIjAuMTA4Mzg3LCAwLjMwMTczNiwgMC40NTQ2MDcsIDAuNjQ1MjY0LCAwLjgzNTU2OSwgMS4wMjU5NSwgMS4yMTY5OCIsIFwKLSAgICAgICAgICAiMC4xMTk0MjUsIDAuMzEyMzk5LCAwLjQ2NTYwMiwgMC42NTYzOTYsIDAuODQ2Nzg2LCAxLjAzNjk4LCAxLjIyNzM4IiwgXAotICAgICAgICAgICIwLjEzNjkxNywgMC4zMzAyMDksIDAuNDgzMTUzLCAwLjY3MzkyLCAwLjg2NDY3NCwgMS4wNTQ5NSwgMS4yNDUzNyIsIFwKLSAgICAgICAgICAiMC4xNTEwNDYsIDAuMzQ1OTY4LCAwLjQ5ODczNCwgMC42ODk2OTcsIDAuODc5OTU1LCAxLjA3MDYyLCAxLjI2MTEzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEzMTUyNiwgMC41MDczNTMsIDAuODA4NTksIDEuMTg0ODEsIDEuNTYwNzMsIDEuOTM2OTEsIDIuMzEyODkiLCBcCi0gICAgICAgICAgIjAuMTMxMzU0LCAwLjUwNzQ0NiwgMC44MDg0OTEsIDEuMTg0ODMsIDEuNTYwNjEsIDEuOTM3MSwgMi4zMTMzIiwgXAotICAgICAgICAgICIwLjEzMjEyMSwgMC41MDczNzgsIDAuODA4NTY4LCAxLjE4NDkyLCAxLjU2MTExLCAxLjkzNzE0LCAyLjMxMjg1IiwgXAotICAgICAgICAgICIwLjEzNDk1OCwgMC41MDcyODEsIDAuODA4NTcyLCAxLjE4NDk0LCAxLjU2MDY4LCAxLjkzNjc2LCAyLjMxMzQxIiwgXAotICAgICAgICAgICIwLjEzOTAyNCwgMC41MDczODUsIDAuODA4NTYsIDEuMTg0ODcsIDEuNTYwNjYsIDEuOTM3MTgsIDIuMzEzMzkiLCBcCi0gICAgICAgICAgIjAuMTQ2NzU3LCAwLjUwODYyLCAwLjgwODU2NSwgMS4xODQ0NywgMS41NjA2NiwgMS45MzY3NiwgMi4zMTI3IiwgXAotICAgICAgICAgICIwLjE1NDkxOSwgMC41MTEyNTcsIDAuODA4NzMsIDEuMTg0NTYsIDEuNTYxMDksIDEuOTM3MjcsIDIuMzEyNyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTExOTI5LCAwLjQwNzc0MSwgMC42NDY1NDcsIDAuOTQ1MDgxLCAxLjI0NDQsIDEuNTQ0NiwgMS44NDYyNyIsIFwKLSAgICAgICAgICAiMC4xMjEzNDIsIDAuNDE3MzY4LCAwLjY1NjI1OSwgMC45NTQ4NDcsIDEuMjU1MDIsIDEuNTU0NCwgMS44NTQyMiIsIFwKLSAgICAgICAgICAiMC4xMzE1MjksIDAuNDI4MDI0LCAwLjY2NjM0NywgMC45NjUyOTMsIDEuMjY0ODQsIDEuNTY1OTcsIDEuODY1MzgiLCBcCi0gICAgICAgICAgIjAuMTQwNTY0LCAwLjQzNjkyMywgMC42NzUzNzcsIDAuOTc0MTY0LCAxLjI3Mzc5LCAxLjU3NDU0LCAxLjg3NTY4IiwgXAotICAgICAgICAgICIwLjE0OTE2NywgMC40NDU2NTUsIDAuNjg0MTIyLCAwLjk4MzA4OCwgMS4yODMwNSwgMS41ODM4LCAxLjg4MzEzIiwgXAotICAgICAgICAgICIwLjE2MjQ1MSwgMC40NTkwMDYsIDAuNjk3NjY1LCAwLjk5NjIzMiwgMS4yOTU0NCwgMS41OTU5NywgMS44OTY3MyIsIFwKLSAgICAgICAgICAiMC4xNzM1NzUsIDAuNDcwMTgyLCAwLjcwODY0MywgMS4wMDc5MywgMS4zMDY1NywgMS42MDcyOSwgMS45MDcwNiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNzM1NzMsIDAuNzcxNjg0LCAxLjI1NDA2LCAxLjg1OTI4LCAyLjQ2OSwgMy4wNjc2MSwgMy42NzI1MiIsIFwKLSAgICAgICAgICAiMC4xNzM1NCwgMC43NzIwNCwgMS4yNTU4NSwgMS44NjI4NywgMi40NjMxOCwgMy4wNzUwMiwgMy42Nzg0NyIsIFwKLSAgICAgICAgICAiMC4xNzM1NDQsIDAuNzcxOTk2LCAxLjI1NTM1LCAxLjg1ODU5LCAyLjQ2OTM0LCAzLjA2Nzg5LCAzLjY4MTM2IiwgXAotICAgICAgICAgICIwLjE3NDA1NSwgMC43NzE0ODEsIDEuMjU1OTYsIDEuODU4NTYsIDIuNDY5MTIsIDMuMDY3NDYsIDMuNjcyNTMiLCBcCi0gICAgICAgICAgIjAuMTc1MTg5LCAwLjc3MTc2NiwgMS4yNTQ2NSwgMS44NTg4NCwgMi40NjMyNywgMy4wNjc4NywgMy42ODEwNiIsIFwKLSAgICAgICAgICAiMC4xNzgwOTIsIDAuNzcxNTQ3LCAxLjI1NTkxLCAxLjg1ODksIDIuNDY0MiwgMy4wNjc2MSwgMy42ODE1MiIsIFwKLSAgICAgICAgICAiMC4xODE1NTMsIDAuNzcxOTEzLCAxLjI1NjczLCAxLjg1ODUzLCAyLjQ2NzE2LCAzLjA2ODY5LCAzLjY3MzQzIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3NTM5OCwgMC4yNjg1MzksIDAuNDIxMTYxLCAwLjYxMTczNiwgMC44MDI0MTMsIDAuOTkzMDc3LCAxLjE4MzEzIiwgXAotICAgICAgICAgICIwLjA4NDUwMiwgMC4yNzc1NDYsIDAuNDMwMjY5LCAwLjYyMDg2MiwgMC44MTEyODQsIDEuMDAxNjEsIDEuMTkyMjciLCBcCi0gICAgICAgICAgIjAuMDk1OTIzLCAwLjI4OTAzMiwgMC40NDE3NDIsIDAuNjMyNTM0LCAwLjgyMzEwNCwgMS4wMTMxNiwgMS4yMDM1NyIsIFwKLSAgICAgICAgICAiMC4xMDc3NTksIDAuMzAwNzk0LCAwLjQ1MzYzMSwgMC42NDQxNDgsIDAuODM0Nzg3LCAxLjAyNTM5LCAxLjIxNTgzIiwgXAotICAgICAgICAgICIwLjExOTg3MiwgMC4zMTE5MjEsIDAuNDY1MjYyLCAwLjY1NTgxNSwgMC44NDY1MTcsIDEuMDM2NjIsIDEuMjI3MjEiLCBcCi0gICAgICAgICAgIjAuMTM5MDU0LCAwLjMzMTEzLCAwLjQ4MzgzLCAwLjY3NDczNSwgMC44NjUwMjgsIDEuMDU1MjQsIDEuMjQ1ODYiLCBcCi0gICAgICAgICAgIjAuMTU1MzMsIDAuMzQ3NTg3LCAwLjUwMDIyOCwgMC42OTA4NDQsIDAuODgxNTQ0LCAxLjA3MTk0LCAxLjI2MjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTMxNjAzLCAwLjUwNzMyNSwgMC44MDg1NjMsIDEuMTg0ODUsIDEuNTYwNjcsIDEuOTM2NzYsIDIuMzEyODkiLCBcCi0gICAgICAgICAgIjAuMTMxMjIsIDAuNTA3NDU2LCAwLjgwODU0LCAxLjE4NDg3LCAxLjU2MDY1LCAxLjkzNzE4LCAyLjMxMzM3IiwgXAotICAgICAgICAgICIwLjEzMjc4MiwgMC41MDczOSwgMC44MDg1ODUsIDEuMTg0NTUsIDEuNTYwNzMsIDEuOTM3MTksIDIuMzEyODIiLCBcCi0gICAgICAgICAgIjAuMTM3MjEsIDAuNTA3Mzc0LCAwLjgwODU5NiwgMS4xODQ4NiwgMS41NjA2MSwgMS45MzY4NCwgMi4zMTMyNCIsIFwKLSAgICAgICAgICAiMC4xNDI5ODQsIDAuNTA3MjgxLCAwLjgwODQwOSwgMS4xODQ4OCwgMS41NjA2NiwgMS45MzczNSwgMi4zMTMyIiwgXAotICAgICAgICAgICIwLjE1NDQ5MSwgMC41MDkzMzIsIDAuODA4NTA2LCAxLjE4NDQ1LCAxLjU2MDcyLCAxLjkzNjkxLCAyLjMxMjk0IiwgXAotICAgICAgICAgICIwLjE2NTgzNCwgMC41MTMzNTYsIDAuODA4ODA3LCAxLjE4NDkxLCAxLjU2MDY4LCAxLjkzNzIzLCAyLjMxMjgzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDYzMzgsIDAuMzk5MTA0LCAwLjYzNjU1NywgMC45MzU1MzksIDEuMjM0ODksIDEuNTMzMiwgMS44MzIzOSIsIFwKLSAgICAgICAgICAiMC4xMTUzMjEsIDAuNDA3OTIsIDAuNjQ1Njc4LCAwLjk0NDgyNCwgMS4yNDMwMywgMS41NDI2MiwgMS44NDA0IiwgXAotICAgICAgICAgICIwLjEyNTgsIDAuNDE4Nzc0LCAwLjY1NjEzNiwgMC45NTUxNzMsIDEuMjU0MywgMS41NTI5MiwgMS44NTA4OSIsIFwKLSAgICAgICAgICAiMC4xMzU3NDEsIDAuNDI4NTM3LCAwLjY2NjE2NiwgMC45NjUwNzQsIDEuMjY0NTEsIDEuNTYyNzEsIDEuODYxNTkiLCBcCi0gICAgICAgICAgIjAuMTQ1NTg5LCAwLjQzODU5NywgMC42NzYwNDksIDAuOTc0Njk5LCAxLjI3Mzg5LCAxLjU3MjYxLCAxLjg3MTczIiwgXAotICAgICAgICAgICIwLjE2MTM4NCwgMC40NTQzMywgMC42OTIxNCwgMC45OTA5MzMsIDEuMjg5MywgMS41ODc4NywgMS44ODY4IiwgXAotICAgICAgICAgICIwLjE3NTAxNiwgMC40NjgzMzMsIDAuNzA1NjYyLCAxLjAwNDQ5LCAxLjMwNDIxLCAxLjYwMTk5LCAxLjkwMjA2Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE3Njc4OCwgMC43NzIwMzYsIDEuMjUyNTQsIDEuODUzMDEsIDIuNDU0OTksIDMuMDU0ODcsIDMuNjU2NDYiLCBcCi0gICAgICAgICAgIjAuMTc2NzY2LCAwLjc3MTYwMiwgMS4yNTI2MywgMS44NTMzLCAyLjQ1NDg4LCAzLjA1NTM2LCAzLjY1NTUyIiwgXAotICAgICAgICAgICIwLjE3Njg0NSwgMC43NzE4MDksIDEuMjUyNDksIDEuODUzMDIsIDIuNDU0NjIsIDMuMDU0OTUsIDMuNjU2NTUiLCBcCi0gICAgICAgICAgIjAuMTc3OTAzLCAwLjc3MjA1NSwgMS4yNTI1NywgMS44NTM5NywgMi40NTUxMywgMy4wNTQ3OCwgMy42NTU5OSIsIFwKLSAgICAgICAgICAiMC4xODAxNTksIDAuNzcxNzkyLCAxLjI1MjU5LCAxLjg1MzYxLCAyLjQ1MzkyLCAzLjA1NTQxLCAzLjY1NjIzIiwgXAotICAgICAgICAgICIwLjE4NTkwNCwgMC43NzE4NjUsIDEuMjUyNzIsIDEuODUzNzEsIDIuNDU1ODUsIDMuMDU1NiwgMy42NTc0MSIsIFwKLSAgICAgICAgICAiMC4xOTE5ODYsIDAuNzcyMzI4LCAxLjI1MjQ2LCAxLjg1MzYzLCAyLjQ1NDE1LCAzLjA1NDU5LCAzLjY1NTkiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY3OTI1LCAwLjI1OTI3MSwgMC40MTE3NzMsIDAuNjAyMjE3LCAwLjc5MjcwNiwgMC45ODI5MjcsIDEuMTczMiIsIFwKLSAgICAgICAgICAiMC4wNzcwNzQsIDAuMjY4NTM3LCAwLjQyMTAwOSwgMC42MTE1NDQsIDAuODAxODgyLCAwLjk5MjE3MywgMS4xODI1MiIsIFwKLSAgICAgICAgICAiMC4wODc5MjgsIDAuMjc5NjMzLCAwLjQzMjIwNiwgMC42MjI2ODcsIDAuODEzMTExLCAxLjAwMzYsIDEuMTkzNzgiLCBcCi0gICAgICAgICAgIjAuMDk4ODg1LCAwLjI5MDY2MywgMC40NDMyOTcsIDAuNjMzNzYxLCAwLjgyNDI1MiwgMS4wMTQ1NiwgMS4yMDQ4NyIsIFwKLSAgICAgICAgICAiMC4xMDk2NCwgMC4zMDE0MiwgMC40NTQ0NzgsIDAuNjQ0ODc1LCAwLjgzNTIxMSwgMS4wMjU2NywgMS4yMTU4MSIsIFwKLSAgICAgICAgICAiMC4xMjY0OTUsIDAuMzE5MjcsIDAuNDcxOTExLCAwLjY2MjQ3MywgMC44NTI4OTIsIDEuMDQzMjcsIDEuMjMzNTEiLCBcCi0gICAgICAgICAgIjAuMTM5NjI5LCAwLjMzNDY4NCwgMC40ODc3NDEsIDAuNjc4Mzk1LCAwLjg2ODc4MiwgMS4wNTkxMywgMS4yNDkzOSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTk2NTUsIDAuNDk1ODM5LCAwLjc5NjkwNCwgMS4xNzMwMywgMS41NDg5NSwgMS45MjUzMiwgMi4zMDEwOCIsIFwKLSAgICAgICAgICAiMC4xMTk2NzMsIDAuNDk1ODEsIDAuNzk2ODE2LCAxLjE3Mjc4LCAxLjU0ODc2LCAxLjkyNTE2LCAyLjMwMTM4IiwgXAotICAgICAgICAgICIwLjEyMDg2MSwgMC40OTU4NjYsIDAuNzk2ODUyLCAxLjE3MjcxLCAxLjU0ODkxLCAxLjkyNTQ1LCAyLjMwMTM3IiwgXAotICAgICAgICAgICIwLjEyNDA4OSwgMC40OTU4NDgsIDAuNzk2Nzg4LCAxLjE3MzAzLCAxLjU0OTE5LCAxLjkyNTM1LCAyLjMwMTI3IiwgXAotICAgICAgICAgICIwLjEyODY4NiwgMC40OTU4OCwgMC43OTY3MDgsIDEuMTczMDQsIDEuNTQ5MTYsIDEuOTI1MDYsIDIuMzAwOTIiLCBcCi0gICAgICAgICAgIjAuMTM3NDMyLCAwLjQ5NzM3NywgMC43OTY4NzcsIDEuMTczMDMsIDEuNTQ4NzUsIDEuOTI1MjgsIDIuMzAxMTciLCBcCi0gICAgICAgICAgIjAuMTQ1ODM4LCAwLjUwMDE2NywgMC43OTcwNTMsIDEuMTcyOSwgMS41NDkwOCwgMS45MjUyNiwgMi4zMDA4NiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTAyNTY1LCAwLjM5Nzk1OSwgMC42MzYxMTcsIDAuOTM1MTQ0LCAxLjIzNTU5LCAxLjUzNTMyLCAxLjgzNzQ1IiwgXAotICAgICAgICAgICIwLjExMTUxMiwgMC40MDcwNzEsIDAuNjQ0ODEzLCAwLjk0NDU2NCwgMS4yNDQ1MywgMS41NDUyMiwgMS44NDQ2NyIsIFwKLSAgICAgICAgICAiMC4xMjE3OCwgMC40MTc1ODgsIDAuNjU1NDI5LCAwLjk1NDY3NSwgMS4yNTU5NCwgMS41NTU0OSwgMS44NTYwNCIsIFwKLSAgICAgICAgICAiMC4xMzE1NCwgMC40Mjc1NTUsIDAuNjY1MzUxLCAwLjk2NDUyOCwgMS4yNjUxMywgMS41NjU0NCwgMS44NjY0OCIsIFwKLSAgICAgICAgICAiMC4xNDEyNjYsIDAuNDM3NDE1LCAwLjY3NTE4NSwgMC45NzQzODksIDEuMjc0NDksIDEuNTc2NSwgMS44NzU2NSIsIFwKLSAgICAgICAgICAiMC4xNTY3MDMsIDAuNDUzMDEzLCAwLjY5MTI2MSwgMC45OTA0NjMsIDEuMjkwMzgsIDEuNTkwOTEsIDEuODkwOTYiLCBcCi0gICAgICAgICAgIjAuMTcwMjQ5LCAwLjQ2Njg0MiwgMC43MDUwMjIsIDEuMDA0LCAxLjMwNTUxLCAxLjYwNDUsIDEuOTA2MDciKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTczMTIyLCAwLjc3MDQxMiwgMS4yNTM5NiwgMS44NTkzLCAyLjQ2OTA0LCAzLjA2OTE1LCAzLjY3MjUyIiwgXAotICAgICAgICAgICIwLjE3MzExNywgMC43NzA0NjEsIDEuMjU0MDMsIDEuODYzMTEsIDIuNDYzOTksIDMuMDcwOTQsIDMuNjc4MyIsIFwKLSAgICAgICAgICAiMC4xNzMxMzYsIDAuNzcxOSwgMS4yNTQ2OCwgMS44NjE2LCAyLjQ2MzI0LCAzLjA3NDkzLCAzLjY4MTIyIiwgXAotICAgICAgICAgICIwLjE3NDMxNywgMC43NzE0NjQsIDEuMjU0NjksIDEuODU5NDIsIDIuNDY4OTYsIDMuMDY4NzYsIDMuNjcyMSIsIFwKLSAgICAgICAgICAiMC4xNzY3MjMsIDAuNzcwMTI5LCAxLjI1NTk4LCAxLjg1OTMzLCAyLjQ2NDI2LCAzLjA2ODAxLCAzLjY4MTA5IiwgXAotICAgICAgICAgICIwLjE4MjQyOCwgMC43NzE1MTgsIDEuMjUzOTcsIDEuODU4NjIsIDIuNDY0MywgMy4wNjc0NiwgMy42NzQxNSIsIFwKLSAgICAgICAgICAiMC4xODg4MjQsIDAuNzcyMTYxLCAxLjI1NTkyLCAxLjg1ODc5LCAyLjQ2MzI1LCAzLjA3Mjc0LCAzLjY3MjQiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY1NDMsIDAuMjU2NzIzLCAwLjQwOTIzOCwgMC41OTk3NzcsIDAuNzkwMDk2LCAwLjk4MDUwMiwgMS4xNzA4OCIsIFwKLSAgICAgICAgICAiMC4wNzQ2NTYsIDAuMjY2MTQ1LCAwLjQxODY4NCwgMC42MDkxNywgMC43OTk0NjYsIDAuOTg5OTE4LCAxLjE4MDE3IiwgXAotICAgICAgICAgICIwLjA4NjA2OSwgMC4yNzc2NjYsIDAuNDMwMjA3LCAwLjYyMDY4NiwgMC44MTEwOTgsIDEuMDAxMzYsIDEuMTkxNjIiLCBcCi0gICAgICAgICAgIjAuMDk3OTg2LCAwLjI4OTU1NywgMC40NDIxMjUsIDAuNjMyNTk1LCAwLjgyMjk5NywgMS4wMTM0MiwgMS4yMDM1OSIsIFwKLSAgICAgICAgICAiMC4xMDk4NTksIDAuMzAwNDAyLCAwLjQ1MzQxNywgMC42NDM4ODUsIDAuODM0Mjg4LCAxLjAyNDY3LCAxLjIxNDkzIiwgXAotICAgICAgICAgICIwLjEyODc2LCAwLjMxOTYzMSwgMC40NzIxMjgsIDAuNjYyNTg5LCAwLjg1MzEwNCwgMS4wNDM0MywgMS4yMzM1OCIsIFwKLSAgICAgICAgICAiMC4xNDMzNzEsIDAuMzM1OTgyLCAwLjQ4ODQzLCAwLjY3ODkzNSwgMC44NjkzNDcsIDEuMDU5NjUsIDEuMjQ5ODgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTE5Njk1LCAwLjQ5NTgwMywgMC43OTY4ODksIDEuMTcyNzgsIDEuNTQ5MTUsIDEuOTI1MywgMi4zMDE2IiwgXAotICAgICAgICAgICIwLjExOTY1NiwgMC40OTU3MTUsIDAuNzk2Nzg5LCAxLjE3MzAzLCAxLjU0ODcxLCAxLjkyNTEzLCAyLjMwMTM5IiwgXAotICAgICAgICAgICIwLjEyMTk1NiwgMC40OTU3NzIsIDAuNzk2ODI1LCAxLjE3MjcyLCAxLjU0OTE4LCAxLjkyNDg1LCAyLjMwMTMyIiwgXAotICAgICAgICAgICIwLjEyNzExNiwgMC40OTU4MDEsIDAuNzk2OTMyLCAxLjE3MywgMS41NDg5NywgMS45MjQ4OCwgMi4zMDA4OCIsIFwKLSAgICAgICAgICAiMC4xMzM1NzIsIDAuNDk1OTE1LCAwLjc5Njg5LCAxLjE3MjY5LCAxLjU0OTIzLCAxLjkyNTMzLCAyLjMwMTE3IiwgXAotICAgICAgICAgICIwLjE0NjIwNSwgMC40OTgyODgsIDAuNzk2NzcsIDEuMTcyNjgsIDEuNTQ4NzksIDEuOTI1MzcsIDIuMzAxMDMiLCBcCi0gICAgICAgICAgIjAuMTU4MjE4LCAwLjUwMjM5OSwgMC43OTczNjUsIDEuMTczMDEsIDEuNTQ4NzgsIDEuOTI1MjksIDIuMzAxMzYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQzAiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4OTMzNCwgMC4zODE5MTYsIDAuNjE3MzI2LCAwLjkxNTk1LCAxLjIxNDk4LCAxLjUxMjczLCAxLjgxMTIzIiwgXAotICAgICAgICAgICIwLjA5Nzg3MywgMC4zOTA3NTQsIDAuNjI2NTYxLCAwLjkyNTA2NSwgMS4yMjMyNSwgMS41MjE2LCAxLjgxOTE1IiwgXAotICAgICAgICAgICIwLjEwODUxOSwgMC40MDEzNjQsIDAuNjM3MTk2LCAwLjkzNTMxMSwgMS4yMzM3NiwgMS41MzIwOCwgMS44MzEyMyIsIFwKLSAgICAgICAgICAiMC4xMTkzOTcsIDAuNDEyMjQzLCAwLjY0ODAzMSwgMC45NDYzMDUsIDEuMjQ1MzUsIDEuNTQzMDgsIDEuODQxNTkiLCBcCi0gICAgICAgICAgIjAuMTMwNDY5LCAwLjQyMzE4NiwgMC42NTkxNjIsIDAuOTU3NDkzLCAxLjI1NjM3LCAxLjU1MzYzLCAxLjg1MzciLCBcCi0gICAgICAgICAgIjAuMTQ4MDUsIDAuNDQwNDE5LCAwLjY3NjUzMiwgMC45NzQ2OTUsIDEuMjcyODEsIDEuNTcxMDgsIDEuODY5NzQiLCBcCi0gICAgICAgICAgIjAuMTYzNTQ3LCAwLjQ1NTYyLCAwLjY5MTc5NSwgMC45OTAyMDIsIDEuMjg4MDIsIDEuNTg2NCwgMS44ODYxMyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNzYzMzYsIDAuNzY5Njc2LCAxLjI0OTIzLCAxLjg0OTY4LCAyLjQ0OTczLCAzLjA0ODQ4LCAzLjY0ODEiLCBcCi0gICAgICAgICAgIjAuMTc1NTk0LCAwLjc2OTc1MiwgMS4yNDk4MSwgMS44NDkxMSwgMi40NDkyLCAzLjA0ODU5LCAzLjY0OTc2IiwgXAotICAgICAgICAgICIwLjE3NTc2MiwgMC43Njk3NjIsIDEuMjQ5NjksIDEuODQ5NDEsIDIuNDQ5MzcsIDMuMDQ4NzQsIDMuNjQ4MzUiLCBcCi0gICAgICAgICAgIjAuMTc5MjcyLCAwLjc2OTYxMSwgMS4yNDk2MiwgMS44NDk2OSwgMi40NDk3NSwgMy4wNDgyNCwgMy42NDgwOCIsIFwKLSAgICAgICAgICAiMC4xODQzNTcsIDAuNzY5NjQyLCAxLjI0OTc0LCAxLjg0ODg5LCAyLjQ0OTc1LCAzLjA0ODAzLCAzLjY0ODUyIiwgXAotICAgICAgICAgICIwLjE5NDcxNywgMC43NjkyNTUsIDEuMjQ5OCwgMS44NDk3NSwgMi40NDkzLCAzLjA0ODY3LCAzLjY0ODQ1IiwgXAotICAgICAgICAgICIwLjIwNTQyNiwgMC43NzA1MTUsIDEuMjQ5OSwgMS44NDk2NSwgMi40NDgzMSwgMy4wNDgxNSwgMy42NDgxMiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTYxNzIsIDAuMjQ2OTI2LCAwLjM5OTUxMywgMC41OTAxNjUsIDAuNzgwNzMsIDAuOTcxMTQsIDEuMTYxNzIiLCBcCi0gICAgICAgICAgIjAuMDY1MjU1LCAwLjI1NjMzNywgMC40MDg5MjgsIDAuNTk5NTc1LCAwLjc5MDE1NCwgMC45ODA1ODIsIDEuMTcwOTgiLCBcCi0gICAgICAgICAgIjAuMDc2MTI3LCAwLjI2NzQ0NSwgMC40MjAwNDEsIDAuNjEwNzc0LCAwLjgwMTM3OSwgMC45OTE4NjYsIDEuMTgyMjkiLCBcCi0gICAgICAgICAgIjAuMDg2OTA0LCAwLjI3ODQ4NywgMC40MzExMzUsIDAuNjIxOTg1LCAwLjgxMjU2NCwgMS4wMDMxLCAxLjE5MzQzIiwgXAotICAgICAgICAgICIwLjA5NzY0OSwgMC4yODk1NjMsIDAuNDQyMjM1LCAwLjYzMjkzNiwgMC44MjM1ODUsIDEuMDE0MTUsIDEuMjA0NDQiLCBcCi0gICAgICAgICAgIjAuMTEzMzA5LCAwLjMwNzA1NSwgMC40NTkyODQsIDAuNjUwNTc2LCAwLjg0MTE5MSwgMS4wMzE3NSwgMS4yMjIyOCIsIFwKLSAgICAgICAgICAiMC4xMjU2NTYsIDAuMzIyMDcyLCAwLjQ3NTEyMywgMC42NjU4ODIsIDAuODU2NjYxLCAxLjA0NzI0LCAxLjIzODE1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwOTIxNCwgMC40ODQ4MTMsIDAuNzg1OTM2LCAxLjE2MTk5LCAxLjUzODQ4LCAxLjkxNDc4LCAyLjI5MTE1IiwgXAotICAgICAgICAgICIwLjEwOTIyNiwgMC40ODQ4OTUsIDAuNzg1ODQ1LCAxLjE2MjA3LCAxLjUzODI2LCAxLjkxNDU3LCAyLjI5MDA2IiwgXAotICAgICAgICAgICIwLjExMTE1NiwgMC40ODQ4MTUsIDAuNzg1ODE4LCAxLjE2MjEyLCAxLjUzODMsIDEuOTE0NjcsIDIuMjk1MjQiLCBcCi0gICAgICAgICAgIjAuMTE1MDI4LCAwLjQ4NDgyNiwgMC43ODU4NDMsIDEuMTYxNzksIDEuNTM4MSwgMS45MTUzOSwgMi4yOTA5OSIsIFwKLSAgICAgICAgICAiMC4xMjAxNTUsIDAuNDg1MDcyLCAwLjc4NTg1MiwgMS4xNjIxLCAxLjUzODM5LCAxLjkxNDc2LCAyLjI5MDg3IiwgXAotICAgICAgICAgICIwLjEyOTY4NiwgMC40ODY4MzIsIDAuNzg1NTA0LCAxLjE2MTc2LCAxLjUzODIzLCAxLjkxNDU2LCAyLjI5MzAxIiwgXAotICAgICAgICAgICIwLjEzOTIwNiwgMC40ODk3NjMsIDAuNzg2NDE5LCAxLjE2MTk0LCAxLjUzODMsIDEuOTE0MzcsIDIuMjk1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMxIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODYyMjQsIDAuMzgyMjI4LCAwLjYyMDQ5OCwgMC45MTk0MTgsIDEuMjE4NjQsIDEuNTE5OTQsIDEuODE5MTkiLCBcCi0gICAgICAgICAgIjAuMDk0NzU5LCAwLjM5MTEzOCwgMC42Mjk0NjIsIDAuOTI4Mjk4LCAxLjIyNjgyLCAxLjUyODc4LCAxLjgyNzk3IiwgXAotICAgICAgICAgICIwLjEwNTYyNCwgMC40MDIxNjQsIDAuNjQwMTMzLCAwLjkzOTAxMSwgMS4yMzkzMSwgMS41Mzg1MywgMS44MzkzMyIsIFwKLSAgICAgICAgICAiMC4xMTYwODQsIDAuNDEyNTgyLCAwLjY1MDQ3MSwgMC45NDkxNjMsIDEuMjQ5MzgsIDEuNTQ5NzYsIDEuODUwOTYiLCBcCi0gICAgICAgICAgIjAuMTI3MDg0LCAwLjQyMzU1NiwgMC42NjE0NTcsIDAuOTYwMTQ0LCAxLjI2MDM5LCAxLjU1OTU0LCAxLjg2MTUiLCBcCi0gICAgICAgICAgIjAuMTQ0ODU0LCAwLjQ0MDc2MiwgMC42Nzg4MTcsIDAuOTc3NTksIDEuMjc2NzgsIDEuNTc3NTUsIDEuODc4MDUiLCBcCi0gICAgICAgICAgIjAuMTYwMTkxLCAwLjQ1NTkxNywgMC42OTQxNDcsIDAuOTkzMjU1LCAxLjI5MTk4LCAxLjU5MjM2LCAxLjg5NDA1Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE3MzM2NCwgMC43NzIwNjUsIDEuMjUzOTYsIDEuODU4NjEsIDIuNDY5MjksIDMuMDcyMzYsIDMuNjgxMzYiLCBcCi0gICAgICAgICAgIjAuMTcyNjE2LCAwLjc3MjA2NiwgMS4yNTM5NiwgMS44NTg2NCwgMi40NjcxMSwgMy4wNjc4NiwgMy42ODEyIiwgXAotICAgICAgICAgICIwLjE3Mjk1NiwgMC43NzE3NSwgMS4yNTM4OCwgMS44NjE0OSwgMi40NjMyOCwgMy4wNjgzOCwgMy42ODE1IiwgXAotICAgICAgICAgICIwLjE3NjU5NCwgMC43NzIwMDgsIDEuMjU0NTYsIDEuODYxNTMsIDIuNDYzMjgsIDMuMDY3NzUsIDMuNjcyNTEiLCBcCi0gICAgICAgICAgIjAuMTgyMDIsIDAuNzcxNjA5LCAxLjI1Njg1LCAxLjg2MTU2LCAyLjQ2MzI1LCAzLjA3MjcxLCAzLjY3MjUzIiwgXAotICAgICAgICAgICIwLjE5MjY5MywgMC43NzEyMTMsIDEuMjU2NzQsIDEuODYxNTYsIDIuNDY0NDgsIDMuMDY3ODIsIDMuNjcyMjYiLCBcCi0gICAgICAgICAgIjAuMjAzNTQsIDAuNzcyMjIsIDEuMjU3LCAxLjg1ODQ5LCAyLjQ2NDYxLCAzLjA3MjgzLCAzLjY3MjU3Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1Mzk3NCwgMC4yNDQ3MjksIDAuMzk3Mjk5LCAwLjU4Nzk2LCAwLjc3ODUzNSwgMC45Njg5NzEsIDEuMTU5NCIsIFwKLSAgICAgICAgICAiMC4wNjMxOTksIDAuMjU0Mjc4LCAwLjQwNjkxMywgMC41OTc1NjIsIDAuNzg4MTMyLCAwLjk3ODU1NywgMS4xNjg5NiIsIFwKLSAgICAgICAgICAiMC4wNzQ5ODksIDAuMjY2MjAxLCAwLjQxODgzNCwgMC42MDk0ODksIDAuODAwMDk0LCAwLjk5MDU3LCAxLjE4MTA2IiwgXAotICAgICAgICAgICIwLjA4NjczNCwgMC4yNzc1MzYsIDAuNDMwMTM0LCAwLjYyMDc5MiwgMC44MTE0MTEsIDEuMDAxOTIsIDEuMTkyMjUiLCBcCi0gICAgICAgICAgIjAuMDk4NTg1LCAwLjI4OTI0OSwgMC40NDE4MzYsIDAuNjMyNjQ5LCAwLjgyMzA3LCAxLjAxMzcxLCAxLjIwNDAyIiwgXAotICAgICAgICAgICIwLjExNTkzNiwgMC4zMDgwMjEsIDAuNDYwNjA0LCAwLjY1MTI5MiwgMC44NDE4ODYsIDEuMDMyMzMsIDEuMjIyOTEiLCBcCi0gICAgICAgICAgIjAuMTI4OTMsIDAuMzI0Mzc3LCAwLjQ3NjkzNSwgMC42Njc2MjksIDAuODU4MTg5LCAxLjA0ODY5LCAxLjIzOTE3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwOTIxMywgMC40ODQ4MTcsIDAuNzg1NzUsIDEuMTYyMDcsIDEuNTM4MDIsIDEuOTE0OCwgMi4yOTU2NiIsIFwKLSAgICAgICAgICAiMC4xMDkyNjYsIDAuNDg0ODE5LCAwLjc4NTc1NywgMS4xNjIwMywgMS41MzgyLCAxLjkxMzc1LCAyLjI5MDA3IiwgXAotICAgICAgICAgICIwLjExMjQxOSwgMC40ODQ4OTYsIDAuNzg1ODY5LCAxLjE2MjEsIDEuNTM3ODgsIDEuOTE1MjgsIDIuMjkwOTQiLCBcCi0gICAgICAgICAgIjAuMTE4MzgyLCAwLjQ4NDkxOCwgMC43ODU4NzEsIDEuMTYxOTcsIDEuNTM4MzgsIDEuOTE0NTksIDIuMjkyOTQiLCBcCi0gICAgICAgICAgIjAuMTI1NjU5LCAwLjQ4NDk1NiwgMC43ODU3OTMsIDEuMTYyMDIsIDEuNTM4MiwgMS45MTUzOCwgMi4yOTEiLCBcCi0gICAgICAgICAgIjAuMTM5Mzg2LCAwLjQ4NzcxNSwgMC43ODU4MjgsIDEuMTYyMDgsIDEuNTM4MzcsIDEuOTE0NTQsIDIuMjk0NjIiLCBcCi0gICAgICAgICAgIjAuMTUyMDc3LCAwLjQ5MjIzOSwgMC43ODY0MjYsIDEuMTYxNzMsIDEuNTM4MzUsIDEuOTE0NTQsIDIuMjkwODMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEwMzM2LCAwLjAxMDMzOCwgMC4wMTAzMzYsIDAuMDEwMzM2LCAwLjAxMDMzMSwgMC4wMTAzMzMsIDAuMDEwMzMxIiwgXAotICAgICAgICAgICIwLjAxMDMxMSwgMC4wMTAzMjQsIDAuMDEwMzI1LCAwLjAxMDMyMywgMC4wMTAzMjUsIDAuMDEwMzIyLCAwLjAxMDMyIiwgXAotICAgICAgICAgICIwLjAxMDI5MiwgMC4wMTAzMTQsIDAuMDEwMzE3LCAwLjAxMDMxOCwgMC4wMTAzMTgsIDAuMDEwMzE2LCAwLjAxMDMxNSIsIFwKLSAgICAgICAgICAiMC4wMTAyODMsIDAuMDEwMzEyLCAwLjAxMDMxNywgMC4wMTAzMiwgMC4wMTAzMTgsIDAuMDEwMzE4LCAwLjAxMDMxNyIsIFwKLSAgICAgICAgICAiMC4wMTAyNzUsIDAuMDEwMzA5LCAwLjAxMDMxMywgMC4wMTAzMTksIDAuMDEwMzE3LCAwLjAxMDMxNywgMC4wMTAzMTYiLCBcCi0gICAgICAgICAgIjAuMDEwMjY0LCAwLjAxMDMwMywgMC4wMTAzMSwgMC4wMTAzMTQsIDAuMDEwMzE1LCAwLjAxMDMxNSwgMC4wMTAzMTUiLCBcCi0gICAgICAgICAgIjAuMDEwMjU4LCAwLjAxMDI5NywgMC4wMTAzMDYsIDAuMDEwMzEyLCAwLjAxMDMxMiwgMC4wMTAzMTIsIDAuMDEwMzEyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzMjE4LCAwLjAwMzIxOSwgMC4wMDMyMTgsIDAuMDAzMjE4LCAwLjAwMzIxNiwgMC4wMDMyMTUsIDAuMDAzMjE0IiwgXAotICAgICAgICAgICIwLjAwMzE2NSwgMC4wMDMxNzQsIDAuMDAzMTc2LCAwLjAwMzE3NSwgMC4wMDMxNzUsIDAuMDAzMTc1LCAwLjAwMzE3MSIsIFwKLSAgICAgICAgICAiMC4wMDMxMzYsIDAuMDAzMTU4LCAwLjAwMzE2MywgMC4wMDMxNjQsIDAuMDAzMTYyLCAwLjAwMzE2MywgMC4wMDMxNjMiLCBcCi0gICAgICAgICAgIjAuMDAzMTE3LCAwLjAwMzE1LCAwLjAwMzE1NCwgMC4wMDMxNTgsIDAuMDAzMTU3LCAwLjAwMzE1OCwgMC4wMDMxNTciLCBcCi0gICAgICAgICAgIjAuMDAzMTA0LCAwLjAwMzE0LCAwLjAwMzE1LCAwLjAwMzE1NCwgMC4wMDMxNTUsIDAuMDAzMTU2LCAwLjAwMzE1NSIsIFwKLSAgICAgICAgICAiMC4wMDMwOTQsIDAuMDAzMTMzLCAwLjAwMzE0MiwgMC4wMDMxNDcsIDAuMDAzMTQ5LCAwLjAwMzE1MSwgMC4wMDMxNTIiLCBcCi0gICAgICAgICAgIjAuMDAzMDkyLCAwLjAwMzEyOSwgMC4wMDMxMzksIDAuMDAzMTQ1LCAwLjAwMzE0NiwgMC4wMDMxNDcsIDAuMDAzMTQ5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwOTUzMSwgMC4wMDk1NCwgMC4wMDk1MzksIDAuMDA5NTQsIDAuMDA5NTM4LCAwLjAwOTUzNywgMC4wMDk1MzciLCBcCi0gICAgICAgICAgIjAuMDA5NTAzLCAwLjAwOTUzOSwgMC4wMDk1NDMsIDAuMDA5NTQ0LCAwLjAwOTU0NSwgMC4wMDk1NDQsIDAuMDA5NTQ0IiwgXAotICAgICAgICAgICIwLjAwOTQ2OSwgMC4wMDk1MjYsIDAuMDA5NTM1LCAwLjAwOTUzOCwgMC4wMDk1MzksIDAuMDA5NTQxLCAwLjAwOTU0MiIsIFwKLSAgICAgICAgICAiMC4wMDk0NDYsIDAuMDA5NTE3LCAwLjAwOTUyNSwgMC4wMDk1MzUsIDAuMDA5NTM4LCAwLjAwOTU0MiwgMC4wMDk1NCIsIFwKLSAgICAgICAgICAiMC4wMDk0MjgsIDAuMDA5NTA2LCAwLjAwOTUyMiwgMC4wMDk1MywgMC4wMDk1MzQsIDAuMDA5NTMyLCAwLjAwOTU0MSIsIFwKLSAgICAgICAgICAiMC4wMDk0MDksIDAuMDA5NDkyLCAwLjAwOTUxMiwgMC4wMDk1MjIsIDAuMDA5NTI3LCAwLjAwOTUzMSwgMC4wMDk1MzUiLCBcCi0gICAgICAgICAgIjAuMDA5Mzk1LCAwLjAwOTQ4MSwgMC4wMDk1MDQsIDAuMDA5NTE3LCAwLjAwOTUyNCwgMC4wMDk1MjcsIDAuMDA5NTMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDMyMjMsIDAuMDAzMjI0LCAwLjAwMzIyMywgMC4wMDMyMjMsIDAuMDAzMjIxLCAwLjAwMzIyLCAwLjAwMzIyMyIsIFwKLSAgICAgICAgICAiMC4wMDMxNjMsIDAuMDAzMTc3LCAwLjAwMzE3OSwgMC4wMDMxNzgsIDAuMDAzMTc5LCAwLjAwMzE3OSwgMC4wMDMxNzciLCBcCi0gICAgICAgICAgIjAuMDAzMTM2LCAwLjAwMzE2MiwgMC4wMDMxNjQsIDAuMDAzMTY2LCAwLjAwMzE2NywgMC4wMDMxNjcsIDAuMDAzMTY2IiwgXAotICAgICAgICAgICIwLjAwMzExOCwgMC4wMDMxNTIsIDAuMDAzMTU4LCAwLjAwMzE2LCAwLjAwMzE2LCAwLjAwMzE2LCAwLjAwMzE2IiwgXAotICAgICAgICAgICIwLjAwMzEyNCwgMC4wMDMxNDMsIDAuMDAzMTU0LCAwLjAwMzE1NiwgMC4wMDMxNTcsIDAuMDAzMTU4LCAwLjAwMzE1OCIsIFwKLSAgICAgICAgICAiMC4wMDMxNDEsIDAuMDAzMTQ3LCAwLjAwMzE1MiwgMC4wMDMxNTUsIDAuMDAzMTU3LCAwLjAwMzE1NywgMC4wMDMxNTciLCBcCi0gICAgICAgICAgIjAuMDAzMTY3LCAwLjAwMzE1MiwgMC4wMDMxNTQsIDAuMDAzMTU2LCAwLjAwMzE1NywgMC4wMDMxNTYsIDAuMDAzMTU2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwODQ2NywgMC4wMDg0NjksIDAuMDA4NDY3LCAwLjAwODQ2NiwgMC4wMDg0NjQsIDAuMDA4NDYzLCAwLjAwODQ2MSIsIFwKLSAgICAgICAgICAiMC4wMDg0NDIsIDAuMDA4NDU1LCAwLjAwODQ1NSwgMC4wMDg0NTUsIDAuMDA4NDU0LCAwLjAwODQ1NCwgMC4wMDg0NTIiLCBcCi0gICAgICAgICAgIjAuMDA4NDI2LCAwLjAwODQ0NywgMC4wMDg0NTEsIDAuMDA4NDUyLCAwLjAwODQ1LCAwLjAwODQ0OSwgMC4wMDg0NDkiLCBcCi0gICAgICAgICAgIjAuMDA4NDE1LCAwLjAwODQ0MywgMC4wMDg0NDgsIDAuMDA4NDQ5LCAwLjAwODQ0OSwgMC4wMDg0NDksIDAuMDA4NDQ4IiwgXAotICAgICAgICAgICIwLjAwODQwNiwgMC4wMDg0MzgsIDAuMDA4NDQ0LCAwLjAwODQ0NiwgMC4wMDg0NDgsIDAuMDA4NDQ2LCAwLjAwODQ0NiIsIFwKLSAgICAgICAgICAiMC4wMDgzOTYsIDAuMDA4NDMzLCAwLjAwODQ0MSwgMC4wMDg0NDMsIDAuMDA4NDQ1LCAwLjAwODQ0NiwgMC4wMDg0NDQiLCBcCi0gICAgICAgICAgIjAuMDA4MzkxLCAwLjAwODQyOCwgMC4wMDg0MzYsIDAuMDA4NDQyLCAwLjAwODQ0MiwgMC4wMDg0NDIsIDAuMDA4NDQzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxOTIxLCAwLjAwMTkyMywgMC4wMDE5MjMsIDAuMDAxOTIzLCAwLjAwMTkyMywgMC4wMDE5MjIsIDAuMDAxOTIxIiwgXAotICAgICAgICAgICIwLjAwMTkwMywgMC4wMDE5MzQsIDAuMDAxOTM4LCAwLjAwMTk0LCAwLjAwMTk0MSwgMC4wMDE5NDEsIDAuMDAxOTQxIiwgXAotICAgICAgICAgICIwLjAwMTg2MywgMC4wMDE5MjUsIDAuMDAxOTM0LCAwLjAwMTkzOSwgMC4wMDE5NDEsIDAuMDAxOTQyLCAwLjAwMTk0MyIsIFwKLSAgICAgICAgICAiMC4wMDE4MzMsIDAuMDAxOTE0LCAwLjAwMTkyNiwgMC4wMDE5MzQsIDAuMDAxOTM3LCAwLjAwMTkzOSwgMC4wMDE5NDEiLCBcCi0gICAgICAgICAgIjAuMDAxODExLCAwLjAwMTksIDAuMDAxOTIsIDAuMDAxOTI5LCAwLjAwMTkzNCwgMC4wMDE5MzcsIDAuMDAxOTM4IiwgXAotICAgICAgICAgICIwLjAwMTc5MSwgMC4wMDE4ODksIDAuMDAxOTEsIDAuMDAxOTIyLCAwLjAwMTkyOSwgMC4wMDE5MzIsIDAuMDAxOTM1IiwgXAotICAgICAgICAgICIwLjAwMTc4NCwgMC4wMDE4NzksIDAuMDAxOTAyLCAwLjAwMTkxNywgMC4wMDE5MjQsIDAuMDAxOTI5LCAwLjAwMTkzMSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIxIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDc2LCAwLjAwNzYwOCwgMC4wMDc2MDgsIDAuMDA3NjA4LCAwLjAwNzYwNywgMC4wMDc2MDYsIDAuMDA3NjA1IiwgXAotICAgICAgICAgICIwLjAwNzU3MiwgMC4wMDc2MDgsIDAuMDA3NjEyLCAwLjAwNzYxNCwgMC4wMDc2MTQsIDAuMDA3NjEsIDAuMDA3NjEzIiwgXAotICAgICAgICAgICIwLjAwNzUzOSwgMC4wMDc1OTYsIDAuMDA3NjA1LCAwLjAwNzYwOCwgMC4wMDc2MSwgMC4wMDc2MTIsIDAuMDA3NjExIiwgXAotICAgICAgICAgICIwLjAwNzUxMywgMC4wMDc1ODUsIDAuMDA3NTk4LCAwLjAwNzYwMywgMC4wMDc2MDcsIDAuMDA3NjA4LCAwLjAwNzYwOSIsIFwKLSAgICAgICAgICAiMC4wMDc0OTYsIDAuMDA3NTc1LCAwLjAwNzU5LCAwLjAwNzU5OCwgMC4wMDc2MDIsIDAuMDA3NjA1LCAwLjAwNzYwNiIsIFwKLSAgICAgICAgICAiMC4wMDc0NzgsIDAuMDA3NTYyLCAwLjAwNzU4MiwgMC4wMDc1OTEsIDAuMDA3NTk3LCAwLjAwNzYsIDAuMDA3NjAyIiwgXAotICAgICAgICAgICIwLjAwNzQ2OSwgMC4wMDc1NTEsIDAuMDA3NTczLCAwLjAwNzU4NSwgMC4wMDc1OTIsIDAuMDA3NTk1LCAwLjAwNzU5OCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTkxNSwgMC4wMDE5MTksIDAuMDAxOTE5LCAwLjAwMTkxOCwgMC4wMDE5MTksIDAuMDAxOTIyLCAwLjAwMTkxOCIsIFwKLSAgICAgICAgICAiMC4wMDE4OTQsIDAuMDAxOTI5LCAwLjAwMTkzNCwgMC4wMDE5MzYsIDAuMDAxOTM3LCAwLjAwMTkzNywgMC4wMDE5MzgiLCBcCi0gICAgICAgICAgIjAuMDAxODY1LCAwLjAwMTkyMiwgMC4wMDE5MzEsIDAuMDAxOTM1LCAwLjAwMTkzNywgMC4wMDE5MzgsIDAuMDAxOTM5IiwgXAotICAgICAgICAgICIwLjAwMTgzNywgMC4wMDE5MTEsIDAuMDAxOTI0LCAwLjAwMTkzMiwgMC4wMDE5MzQsIDAuMDAxOTM2LCAwLjAwMTkzNyIsIFwKLSAgICAgICAgICAiMC4wMDE4NDUsIDAuMDAxOTA3LCAwLjAwMTkyMiwgMC4wMDE5MywgMC4wMDE5MzQsIDAuMDAxOTM1LCAwLjAwMTkzNyIsIFwKLSAgICAgICAgICAiMC4wMDE4NTQsIDAuMDAxOTA0LCAwLjAwMTkxOCwgMC4wMDE5MjYsIDAuMDAxOTMxLCAwLjAwMTkzNCwgMC4wMDE5MzYiLCBcCi0gICAgICAgICAgIjAuMDAxODgsIDAuMDAxOTA3LCAwLjAwMTkyLCAwLjAwMTkyNiwgMC4wMDE5MzEsIDAuMDAxOTM0LCAwLjAwMTkzNiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDY3MzQsIDAuMDA2NzM4LCAwLjAwNjczNywgMC4wMDY3MzYsIDAuMDA2NzM0LCAwLjAwNjczMywgMC4wMDY3MzEiLCBcCi0gICAgICAgICAgIjAuMDA2Njk3LCAwLjAwNjcyLCAwLjAwNjcyMywgMC4wMDY3MjMsIDAuMDA2NzIyLCAwLjAwNjcyMiwgMC4wMDY3MTkiLCBcCi0gICAgICAgICAgIjAuMDA2NjgsIDAuMDA2NzEyLCAwLjAwNjcxNywgMC4wMDY3MTksIDAuMDA2NzE5LCAwLjAwNjcxOCwgMC4wMDY3MTYiLCBcCi0gICAgICAgICAgIjAuMDA2Njc1LCAwLjAwNjcwNiwgMC4wMDY3MTIsIDAuMDA2NzE1LCAwLjAwNjcxNSwgMC4wMDY3MTUsIDAuMDA2NzE0IiwgXAotICAgICAgICAgICIwLjAwNjY3NCwgMC4wMDY3MDMsIDAuMDA2NzA5LCAwLjAwNjcxMywgMC4wMDY3MTYsIDAuMDA2NzE1LCAwLjAwNjcxMiIsIFwKLSAgICAgICAgICAiMC4wMDY2OTUsIDAuMDA2NzAzLCAwLjAwNjcwOCwgMC4wMDY3MTIsIDAuMDA2NzEzLCAwLjAwNjcxMiwgMC4wMDY3MTEiLCBcCi0gICAgICAgICAgIjAuMDA2NzIxLCAwLjAwNjcwNywgMC4wMDY3MTEsIDAuMDA2NzEyLCAwLjAwNjcxNCwgMC4wMDY3MTQsIDAuMDA2NzEyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwNTA0LCAwLjAwMDUyMSwgMC4wMDA1MjMsIDAuMDAwNTI0LCAwLjAwMDUyNCwgMC4wMDA1MjQsIDAuMDAwNTI1IiwgXAotICAgICAgICAgICIwLjAwMDQ5NywgMC4wMDA1NjMsIDAuMDAwNTcxLCAwLjAwMDU3NSwgMC4wMDA1NzgsIDAuMDAwNTc5LCAwLjAwMDU4IiwgXAotICAgICAgICAgICIwLjAwMDQ1NSwgMC4wMDA1NjEsIDAuMDAwNTc1LCAwLjAwMDU4MywgMC4wMDA1ODcsIDAuMDAwNTg5LCAwLjAwMDU5MSIsIFwKLSAgICAgICAgICAiMC4wMDA0MjEsIDAuMDAwNTUxLCAwLjAwMDU3LCAwLjAwMDU4MSwgMC4wMDA1ODcsIDAuMDAwNTksIDAuMDAwNTkyIiwgXAotICAgICAgICAgICIwLjAwMDM5NiwgMC4wMDA1MzksIDAuMDAwNTY0LCAwLjAwMDU3NywgMC4wMDA1ODQsIDAuMDAwNTg5LCAwLjAwMDU5MiIsIFwKLSAgICAgICAgICAiMC4wMDAzNzIsIDAuMDAwNTIzLCAwLjAwMDU1MywgMC4wMDA1NywgMC4wMDA1NzksIDAuMDAwNTg1LCAwLjAwMDU4OSIsIFwKLSAgICAgICAgICAiMC4wMDAzNjYsIDAuMDAwNTExLCAwLjAwMDU0NCwgMC4wMDA1NjQsIDAuMDAwNTc1LCAwLjAwMDU4MiwgMC4wMDA1ODYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDMSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1OTUxLCAwLjAwNTk2NCwgMC4wMDU5NjUsIDAuMDA1OTYzLCAwLjAwNTk2NCwgMC4wMDU5NjMsIDAuMDA1OTYyIiwgXAotICAgICAgICAgICIwLjAwNTkxLCAwLjAwNTk1OSwgMC4wMDU5NjYsIDAuMDA1OTY2LCAwLjAwNTk2NywgMC4wMDU5NjgsIDAuMDA1OTY5IiwgXAotICAgICAgICAgICIwLjAwNTg3NywgMC4wMDU5NDUsIDAuMDA1OTU1LCAwLjAwNTk2LCAwLjAwNTk2MywgMC4wMDU5NjQsIDAuMDA1OTYzIiwgXAotICAgICAgICAgICIwLjAwNTg2MSwgMC4wMDU5MzUsIDAuMDA1OTQ4LCAwLjAwNTk1NiwgMC4wMDU5NTgsIDAuMDA1OTYxLCAwLjAwNTk2MSIsIFwKLSAgICAgICAgICAiMC4wMDU4NTQsIDAuMDA1OTI2LCAwLjAwNTk0MiwgMC4wMDU5NTEsIDAuMDA1OTU2LCAwLjAwNTk1NywgMC4wMDU5NTciLCBcCi0gICAgICAgICAgIjAuMDA1ODY2LCAwLjAwNTkxOCwgMC4wMDU5MzUsIDAuMDA1OTQ1LCAwLjAwNTk1MSwgMC4wMDU5NTMsIDAuMDA1OTU1IiwgXAotICAgICAgICAgICIwLjAwNTg4OCwgMC4wMDU5MTYsIDAuMDA1OTMyLCAwLjAwNTk0MiwgMC4wMDU5NDgsIDAuMDA1OTUyLCAwLjAwNTk1MiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDUwNCwgMC4wMDA1MjMsIDAuMDAwNTI1LCAwLjAwMDUyNiwgMC4wMDA1MjcsIDAuMDAwNTI3LCAwLjAwMDUyNyIsIFwKLSAgICAgICAgICAiMC4wMDA0OTMsIDAuMDAwNTY1LCAwLjAwMDU3NCwgMC4wMDA1NzksIDAuMDAwNTgxLCAwLjAwMDU4MiwgMC4wMDA1ODMiLCBcCi0gICAgICAgICAgIjAuMDAwNDY1LCAwLjAwMDU2MywgMC4wMDA1NzcsIDAuMDAwNTg0LCAwLjAwMDU4OCwgMC4wMDA1OSwgMC4wMDA1OTIiLCBcCi0gICAgICAgICAgIjAuMDAwNDQ1LCAwLjAwMDU1OCwgMC4wMDA1NzYsIDAuMDAwNTg2LCAwLjAwMDU5MiwgMC4wMDA1OTUsIDAuMDAwNTk3IiwgXAotICAgICAgICAgICIwLjAwMDQzOSwgMC4wMDA1NSwgMC4wMDA1NzIsIDAuMDAwNTg0LCAwLjAwMDU5LCAwLjAwMDU5NCwgMC4wMDA1OTciLCBcCi0gICAgICAgICAgIjAuMDAwNDUxLCAwLjAwMDU0MywgMC4wMDA1NjcsIDAuMDAwNTgxLCAwLjAwMDU4OCwgMC4wMDA1OTMsIDAuMDAwNTk2IiwgXAotICAgICAgICAgICIwLjAwMDQ3NCwgMC4wMDA1NDEsIDAuMDAwNTY1LCAwLjAwMDU4MSwgMC4wMDA1ODgsIDAuMDAwNTkzLCAwLjAwMDU5NiIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogQU9JMkJCMlgxICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoQU9JMkJCMlgxKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMTg3NTM7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEwTikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjAzNjQ0OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYwMzQyOTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2MDM2NDQ7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNDg5LCAwLjAwMDQ2MywgMC4wMDA0NiwgMC4wMDA0NjgsIDAuMDAwNDc5LCAwLjAwMDUwNSwgMC4wMDA1MzIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDE1NDMsIDAuMDAxNTE5LCAwLjAwMTUxMiwgMC4wMDE1MTcsIDAuMDAxNTI4LCAwLjAwMTU1MywgMC4wMDE1NzIiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEExTikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjA3NTY3OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYwNzM3NzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2MDc1Njc7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNDk3LCAwLjAwMDQ3MSwgMC4wMDA0NzQsIDAuMDAwNDc2LCAwLjAwMDQ4NCwgMC4wMDA1MDksIDAuMDAwNTM2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxNzc5LCAwLjAwMTc1NiwgMC4wMDE3NDksIDAuMDAxNzUzLCAwLjAwMTc2MiwgMC4wMDE3ODUsIDAuMDAxODA3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwODc3MDQ4OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDg3NzA0ODsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA4NzQ3NTc7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMDk3LCAwLjAwMDA5NywgMC4wMDAwOTcsIDAuMDAwMDk3LCAwLjAwMDA5NywgMC4wMDAwOTcsIDAuMDAwMDk3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMDk2LCAwLjAwMDA5NiwgMC4wMDAwOTYsIDAuMDAwMDk2LCAwLjAwMDA5NiwgMC4wMDAwOTYsIDAuMDAwMDk2Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCMSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwOTEzMjMyOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDkxMjc2MTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA5MTMyMzI7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMDk3LCAwLjAwMDA5NywgMC4wMDAwOTcsIDAuMDAwMDk3LCAwLjAwMDA5NywgMC4wMDAwOTcsIDAuMDAwMDk3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMDk2LCAwLjAwMDA5NiwgMC4wMDAwOTYsIDAuMDAwMDk2LCAwLjAwMDA5NiwgMC4wMDAwOTYsIDAuMDAwMDk2Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMTM4NjQyOwotICAgIGZ1bmN0aW9uIDogIighKChCMCBCMSkrKCEoQTBOK0ExTikpKSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEwTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTIyMjk3LCAwLjE2OTUyLCAwLjQzNzAxNSwgMC42NzI5NDYsIDAuOTg2Nzg4LCAxLjYxNTE2LCAyLjAwODk1IiwgXAotICAgICAgICAgICIwLjEzMjU1MiwgMC4xNzk4NDMsIDAuNDQ3MDg0LCAwLjY4MjcyNywgMC45OTY4NzksIDEuNjI1MjgsIDIuMDE3ODgiLCBcCi0gICAgICAgICAgIjAuMTQzNzkzLCAwLjE5MTEzMiwgMC40NTgzNDQsIDAuNjk0MTIxLCAxLjAwODE2LCAxLjYzNzE1LCAyLjAzMDgyIiwgXAotICAgICAgICAgICIwLjE1MzExMywgMC4yMDA0NTgsIDAuNDY3NzE4LCAwLjcwMzM5NCwgMS4wMTgxOSwgMS42NDY4OSwgMi4wNDA0MiIsIFwKLSAgICAgICAgICAiMC4xNjA3MzksIDAuMjA4MDI1LCAwLjQ3NTM1OCwgMC43MTE1MTMsIDEuMDI1OTQsIDEuNjU0NzksIDIuMDQ2OTUiLCBcCi0gICAgICAgICAgIjAuMTcxNDk1LCAwLjIxODc0NiwgMC40ODYxNzQsIDAuNzIxODk0LCAxLjAzNjQsIDEuNjY1NTMsIDIuMDU3NjMiLCBcCi0gICAgICAgICAgIjAuMTc5NjIzLCAwLjIyNjg2NSwgMC40OTQyMzksIDAuNzI5ODc4LCAxLjA0NDIsIDEuNjczNTQsIDIuMDY1MzkiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTg4NTQ2LCAwLjI4NDMxNSwgMC44MjcyMzEsIDEuMzA1MzgsIDEuOTQzNDIsIDMuMjE5NDQsIDQuMDE1NjIiLCBcCi0gICAgICAgICAgIjAuMTg4NTUsIDAuMjg0MzQ0LCAwLjgyNzMxMiwgMS4zMDUzNiwgMS45NDMzOSwgMy4yMTgwOSwgNC4wMTU4OSIsIFwKLSAgICAgICAgICAiMC4xODg1NDksIDAuMjg0MzQxLCAwLjgyNzEzMywgMS4zMDU0MywgMS45NDM0MiwgMy4yMTg2NywgNC4wMTY0IiwgXAotICAgICAgICAgICIwLjE4ODU2OSwgMC4yODQzNDgsIDAuODI3NDAyLCAxLjMwNTM5LCAxLjk0MzExLCAzLjIxODk0LCA0LjAxNjU4IiwgXAotICAgICAgICAgICIwLjE4ODY0MywgMC4yODQzNTQsIDAuODI3NDA0LCAxLjMwNjA4LCAxLjk0MzIxLCAzLjIxOTAxLCA0LjAxNTk4IiwgXAotICAgICAgICAgICIwLjE4ODgwMSwgMC4yODQzMDQsIDAuODI3MDQ3LCAxLjMwNTQ3LCAxLjk0MzYyLCAzLjIxOTQsIDQuMDE1NzkiLCBcCi0gICAgICAgICAgIjAuMTg4NzQ2LCAwLjI4NDQxMywgMC44MjY3NTQsIDEuMzA1MzIsIDEuOTQzNTYsIDMuMjE5MDUsIDQuMDE4NDQiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTIxNDE3LCAwLjE2NzMxOCwgMC40MjY1MSwgMC42NTQ2MjksIDAuOTU5MDMsIDEuNTY3NDIsIDEuOTQ2ODQiLCBcCi0gICAgICAgICAgIjAuMTMxMTU3LCAwLjE3NzA2MiwgMC40MzU5ODgsIDAuNjY0MDU2LCAwLjk2ODM5MSwgMS41NzY3MiwgMS45NTYwNSIsIFwKLSAgICAgICAgICAiMC4xNDE2MTEsIDAuMTg3NTU3LCAwLjQ0NjUyNiwgMC42NzQ2NjEsIDAuOTc4NjE5LCAxLjU4Njk5LCAxLjk2NzYzIiwgXAotICAgICAgICAgICIwLjE1MDA3MiwgMC4xOTU5OTUsIDAuNDU1MTI1LCAwLjY4MzEzNSwgMC45ODc0OTgsIDEuNTk1NTIsIDEuOTc1OSIsIFwKLSAgICAgICAgICAiMC4xNTcwMjQsIDAuMjAyOTU4LCAwLjQ2MjE0NywgMC42OTAzMzEsIDAuOTk0NjY4LCAxLjYwMjYyLCAxLjk4Mjk5IiwgXAotICAgICAgICAgICIwLjE2NjQ3NiwgMC4yMTI0NzQsIDAuNDcxNTI0LCAwLjY5OTY4NSwgMS4wMDM2OCwgMS42MTIzMywgMS45OTE3MyIsIFwKLSAgICAgICAgICAiMC4xNzM1NTYsIDAuMjE5NDkzLCAwLjQ3ODU3NiwgMC43MDY4NzUsIDEuMDEwOCwgMS42MTg2OCwgMS45OTk5NiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xODU3NSwgMC4yNzU1MDMsIDAuNzg0NjI0LCAxLjIzMzMzLCAxLjgzMjA4LCAzLjAyODc4LCAzLjc3NzkzIiwgXAotICAgICAgICAgICIwLjE4NTcyOCwgMC4yNzU1NjYsIDAuNzg0NDg4LCAxLjIzMzM0LCAxLjgzMTgzLCAzLjAyODY1LCAzLjc3NzQ0IiwgXAotICAgICAgICAgICIwLjE4NTc4OCwgMC4yNzU1MDUsIDAuNzg0NzEyLCAxLjIzMzU2LCAxLjgzMTc1LCAzLjAyODcyLCAzLjc3OTIyIiwgXAotICAgICAgICAgICIwLjE4NTgyNywgMC4yNzU1MjEsIDAuNzg0Njc5LCAxLjIzMzUzLCAxLjgzMjExLCAzLjAyODY3LCAzLjc3ODU0IiwgXAotICAgICAgICAgICIwLjE4NTg1LCAwLjI3NTU3OCwgMC43ODQ0OTEsIDEuMjMzMjYsIDEuODMyMTIsIDMuMDI4NTUsIDMuNzc3NzMiLCBcCi0gICAgICAgICAgIjAuMTg1OTgxLCAwLjI3NTYzNCwgMC43ODQ1MjIsIDEuMjMzMjUsIDEuODMyMDksIDMuMDI4NzYsIDMuNzc3MjQiLCBcCi0gICAgICAgICAgIjAuMTg2MDk5LCAwLjI3NTczOSwgMC43ODQ1MTEsIDEuMjMzMjQsIDEuODMxNjgsIDMuMDI4MzUsIDMuNzc3MjQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTFOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMjEzNywgMC4xNjg1ODYsIDAuNDM1ODE1LCAwLjY3MTgwMiwgMC45ODU2MDYsIDEuNjE0LCAyLjAwODY5IiwgXAotICAgICAgICAgICIwLjEzMTUyMiwgMC4xNzg4MDksIDAuNDQ2MDkxLCAwLjY4MTUzMywgMC45OTYzMTgsIDEuNjI1NDYsIDIuMDE3MzgiLCBcCi0gICAgICAgICAgIjAuMTQzMjc0LCAwLjE5MDUzOCwgMC40NTgwMjQsIDAuNjkzODExLCAxLjAwODA2LCAxLjYzNjcxLCAyLjAyOTg5IiwgXAotICAgICAgICAgICIwLjE1Mjg0MiwgMC4yMDAwOTcsIDAuNDY3MzMzLCAwLjcwMzA0LCAxLjAxNzU0LCAxLjY0NjIzLCAyLjAzODExIiwgXAotICAgICAgICAgICIwLjE2MTIwNiwgMC4yMDg0ODcsIDAuNDc1ODA4LCAwLjcxMTQ5MywgMS4wMjU3MSwgMS42NTQ1MSwgMi4wNDczNyIsIFwKLSAgICAgICAgICAiMC4xNzI1ODgsIDAuMjE5ODM0LCAwLjQ4NzIxNSwgMC43MjI5NjIsIDEuMDM3NDIsIDEuNjY1MzYsIDIuMDU5MDQiLCBcCi0gICAgICAgICAgIjAuMTgxMjAyLCAwLjIyODQ0NSwgMC40OTU4MDMsIDAuNzMxNDY1LCAxLjA0NTcyLCAxLjY3NTE2LCAyLjA2Njc5Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE4NDg2NSwgMC4yODA3NDcsIDAuODIyOTE2LCAxLjMwMTczLCAxLjkzOTQzLCAzLjIxNTA1LCA0LjAxMyIsIFwKLSAgICAgICAgICAiMC4xODQ4NiwgMC4yODA1ODcsIDAuODIyOTE2LCAxLjMwMTM0LCAxLjkzOTcyLCAzLjIxNTU5LCA0LjAxMTcyIiwgXAotICAgICAgICAgICIwLjE4NDk1OSwgMC4yODA1OTEsIDAuODIzMjE2LCAxLjMwMTg5LCAxLjkzOTQ5LCAzLjIxNDYsIDQuMDExNTQiLCBcCi0gICAgICAgICAgIjAuMTg0ODk4LCAwLjI4MDU3NSwgMC44MjMyNDMsIDEuMzAxMzYsIDEuOTM4NjksIDMuMjEzODcsIDQuMDEwOTQiLCBcCi0gICAgICAgICAgIjAuMTg0OTk4LCAwLjI4MDYwOSwgMC44MjM1MDMsIDEuMzAxNDcsIDEuOTM5NTgsIDMuMjE1MTIsIDQuMDExNzMiLCBcCi0gICAgICAgICAgIjAuMTg1MTk1LCAwLjI4MDU1NSwgMC44MjI4MjksIDEuMzAxMzYsIDEuOTM5MDMsIDMuMjEzODgsIDQuMDExOCIsIFwKLSAgICAgICAgICAiMC4xODUxMzYsIDAuMjgwNjU4LCAwLjgyMzAzNiwgMS4zMDEzNiwgMS45Mzk0OCwgMy4yMTUyLCA0LjAxMTgzIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEyMDc2NywgMC4xNjY2NjEsIDAuNDI1NjU0LCAwLjY1MzY4MywgMC45NTc2OTYsIDEuNTY1MzYsIDEuOTQ0NTIiLCBcCi0gICAgICAgICAgIjAuMTMwNTQxLCAwLjE3NjQ1MSwgMC40MzU0MTgsIDAuNjYzNjA5LCAwLjk2NzYyNSwgMS41NzU5NiwgMS45NTY0OCIsIFwKLSAgICAgICAgICAiMC4xNDE0MTYsIDAuMTg3MzYzLCAwLjQ0NjM3OCwgMC42NzQ0MTYsIDAuOTc4Mzk4LCAxLjU4NjQ0LCAxLjk2NzUiLCBcCi0gICAgICAgICAgIjAuMTUwNDg3LCAwLjE5NjQxMywgMC40NTU0NjQsIDAuNjgzNzUsIDAuOTg3NzUsIDEuNTk2MTcsIDEuOTc2MiIsIFwKLSAgICAgICAgICAiMC4xNTc3OCwgMC4yMDM2OTIsIDAuNDYyNjk0LCAwLjY5MDg3OSwgMC45OTU0NTQsIDEuNjAzNjUsIDEuOTgzMzYiLCBcCi0gICAgICAgICAgIjAuMTY3OTgyLCAwLjIxMzg4NCwgMC40NzI5ODEsIDAuNzAxMjExLCAxLjAwNTE1LCAxLjYxMzIxLCAxLjk5NDM2IiwgXAotICAgICAgICAgICIwLjE3NTc4NiwgMC4yMjE2MDUsIDAuNDgwNDg5LCAwLjcwODc1NCwgMS4wMTI3NiwgMS42MjA5OSwgMi4wMDA2MyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xODU3NzEsIDAuMjc1NTE4LCAwLjc4NDU1MywgMS4yMzMyNywgMS44MzE2MywgMy4wMjg1OSwgMy43NzY2NCIsIFwKLSAgICAgICAgICAiMC4xODU3ODIsIDAuMjc1NTY3LCAwLjc4NDY0MywgMS4yMzMzOCwgMS44MzE2OSwgMy4wMjg3LCAzLjc3NzUiLCBcCi0gICAgICAgICAgIjAuMTg1NzYzLCAwLjI3NTUxOSwgMC43ODQ0OCwgMS4yMzMzNSwgMS44MzIxLCAzLjAyODg2LCAzLjc3OTUzIiwgXAotICAgICAgICAgICIwLjE4NTksIDAuMjc1NTgxLCAwLjc4NDY2OCwgMS4yMzMzLCAxLjgzMTk5LCAzLjAyOTE0LCAzLjc3ODIxIiwgXAotICAgICAgICAgICIwLjE4NjAxMywgMC4yNzU2NDQsIDAuNzg0NjkyLCAxLjIzMzI1LCAxLjgzMjEsIDMuMDI4ODksIDMuNzc2ODgiLCBcCi0gICAgICAgICAgIjAuMTg2MjQsIDAuMjc1ODA0LCAwLjc4NDY4NCwgMS4yMzMyNiwgMS44MzE2OCwgMy4wMjg1LCAzLjc3Nzg4IiwgXAotICAgICAgICAgICIwLjE4NjQ1MSwgMC4yNzU4NjksIDAuNzg0NzEzLCAxLjIzMzU4LCAxLjgzMTk4LCAzLjAyOTMxLCAzLjc3NzMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjAiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5Njk1NCwgMC4xNDQyNTQsIDAuNDExMjA2LCAwLjY0NzQ0NiwgMC45NjE2NzYsIDEuNTkwMTQsIDEuOTgzNCIsIFwKLSAgICAgICAgICAiMC4xMDU5NjMsIDAuMTUzMjY2LCAwLjQyMDgyNCwgMC42NTY1NTYsIDAuOTcxMTA3LCAxLjU5OTc2LCAxLjk5MTcyIiwgXAotICAgICAgICAgICIwLjExNzI2OSwgMC4xNjQyMTEsIDAuNDMxOTY2LCAwLjY2Nzc0OCwgMC45ODI0NTMsIDEuNjExMzEsIDIuMDAzMDMiLCBcCi0gICAgICAgICAgIjAuMTI4ODA5LCAwLjE3NjA4MSwgMC40NDM2MjgsIDAuNjc5LCAwLjk5MzQ5NCwgMS42MjI1LCAyLjAxNTE1IiwgXAotICAgICAgICAgICIwLjE0MDQ4MywgMC4xODc2NDMsIDAuNDU0OTksIDAuNjkwODMxLCAxLjAwNDk5LCAxLjYzNDYsIDIuMDI2NyIsIFwKLSAgICAgICAgICAiMC4xNTkzNDUsIDAuMjA2MTY2LCAwLjQ3MzU0LCAwLjcwOTQyNSwgMS4wMjM1NCwgMS42NTIzNiwgMi4wNDQ5OCIsIFwKLSAgICAgICAgICAiMC4xNzYwMywgMC4yMjI0NjUsIDAuNDg5NTg3LCAwLjcyNTY5OCwgMS4wMzk2MSwgMS42Njg2OCwgMi4wNjA1Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE4ODUwOSwgMC4yODQzNDUsIDAuODI2NDk3LCAxLjMwNTM2LCAxLjk0MzM1LCAzLjIxODg0LCA0LjAxNTM1IiwgXAotICAgICAgICAgICIwLjE4ODQ1MiwgMC4yODQyNDksIDAuODI2NjY5LCAxLjMwNTYxLCAxLjk0MzksIDMuMjE4ODIsIDQuMDE2NTgiLCBcCi0gICAgICAgICAgIjAuMTg4OTk3LCAwLjI4NDI2LCAwLjgyNjk2NywgMS4zMDUzLCAxLjk0Mzc5LCAzLjIxOTI5LCA0LjAxNjcyIiwgXAotICAgICAgICAgICIwLjE5MjE0NiwgMC4yODUwNiwgMC44MjcwNjMsIDEuMzA1NTcsIDEuOTQzNiwgMy4yMTg4MSwgNC4wMTU2OCIsIFwKLSAgICAgICAgICAiMC4xOTczNzMsIDAuMjg4MTI2LCAwLjgyNzAwMiwgMS4zMDU0OSwgMS45NDMyMywgMy4yMjAwMSwgNC4wMTYwOCIsIFwKLSAgICAgICAgICAiMC4yMDcxODQsIDAuMjk1NTc5LCAwLjgyNjY5OCwgMS4zMDYxOSwgMS45NDM2OCwgMy4yMTkzNSwgNC4wMTU4NyIsIFwKLSAgICAgICAgICAiMC4yMTc2NzIsIDAuMzAzODg3LCAwLjgyNzEyNCwgMS4zMDU2NiwgMS45NDM1MiwgMy4yMTg4NCwgNC4wMTUyNyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTIwNDIsIDAuMTM3NzI1LCAwLjM5NjM1LCAwLjYyNDQyMSwgMC45Mjg2OSwgMS41MzY5LCAxLjkxNjUzIiwgXAotICAgICAgICAgICIwLjEwMTE3NiwgMC4xNDY5NDIsIDAuNDA1NjczLCAwLjYzMzg0NiwgMC45Mzc4ODgsIDEuNTQ1NzMsIDEuOTI1OTciLCBcCi0gICAgICAgICAgIjAuMTEyMDc0LCAwLjE1Nzk0NiwgMC40MTY4MTcsIDAuNjQ1MDA3LCAwLjk0OTI2LCAxLjU1NzEyLCAxLjkzNzM0IiwgXAotICAgICAgICAgICIwLjEyMjkyMywgMC4xNjg4NzgsIDAuNDI3ODczLCAwLjY1NjEyNiwgMC45NjAyMzgsIDEuNTY4NTIsIDEuOTQ4MjEiLCBcCi0gICAgICAgICAgIjAuMTMzOTQ2LCAwLjE3OTc0NCwgMC40MzkwNzMsIDAuNjY3MzA2LCAwLjk3MTUwNSwgMS41NzkzMywgMS45NTkiLCBcCi0gICAgICAgICAgIjAuMTUxMjAxLCAwLjE5NzE0NiwgMC40NTYyMDEsIDAuNjg0OTk3LCAwLjk4ODk1MiwgMS41OTY4OCwgMS45NzY2MyIsIFwKLSAgICAgICAgICAiMC4xNjYyNywgMC4yMTI0ODQsIDAuNDcyMjQ5LCAwLjcwMDYzNCwgMS4wMDQ4MiwgMS42MTI3NiwgMS45OTI2MiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNzMwMDQsIDAuMjYyNjY1LCAwLjc3MTI3MSwgMS4yMjAyNSwgMS44MTkzLCAzLjAxNjAzLCAzLjc3NDU5IiwgXAotICAgICAgICAgICIwLjE3Mjk5MywgMC4yNjI3MDcsIDAuNzcxMjkxLCAxLjIyMDMsIDEuODIwMTcsIDMuMDIxMzEsIDMuNzY1NzMiLCBcCi0gICAgICAgICAgIjAuMTczNDQ2LCAwLjI2MjY1NywgMC43NzEzMDMsIDEuMjIwMiwgMS44MTg0LCAzLjAzMzE5LCAzLjc2MzU4IiwgXAotICAgICAgICAgICIwLjE3NTY0MywgMC4yNjM0NTYsIDAuNzcxMzUzLCAxLjIxOTg1LCAxLjgyMDI0LCAzLjAyMTY0LCAzLjc3NDEiLCBcCi0gICAgICAgICAgIjAuMTc5MzA3LCAwLjI2NTUzNCwgMC43NzEzNDUsIDEuMjE5ODYsIDEuODI2MTcsIDMuMDE2MSwgMy43NzMwNiIsIFwKLSAgICAgICAgICAiMC4xODY2MjYsIDAuMjcwNzIxLCAwLjc3MDk0OCwgMS4yMTk4NSwgMS44MTgwNCwgMy4wMjEwOCwgMy43NzMwOCIsIFwKLSAgICAgICAgICAiMC4xOTQ0NjQsIDAuMjc2NTA2LCAwLjc3MTkxLCAxLjIyMDI2LCAxLjgyMDExLCAzLjAyMTcyLCAzLjc3MjkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5MzkzMiwgMC4xNDExNDEsIDAuNDA4MjgzLCAwLjY0NDIxNCwgMC45NTg3NjMsIDEuNTg3MjgsIDEuOTc5ODUiLCBcCi0gICAgICAgICAgIjAuMTAyOTcsIDAuMTUwMjQxLCAwLjQxNzIyNCwgMC42NTM2NDksIDAuOTY3Njc0LCAxLjU5NTksIDEuOTkwMzYiLCBcCi0gICAgICAgICAgIjAuMTE0MjM3LCAwLjE2MTI2MiwgMC40Mjg5MSwgMC42NjQ4MDQsIDAuOTc5MTc2LCAxLjYwODIsIDEuOTk5NTYiLCBcCi0gICAgICAgICAgIjAuMTI1Njc2LCAwLjE3Mjk5OCwgMC40NDA0NjgsIDAuNjc2MDI4LCAwLjk5MDIyMywgMS42MTkzMywgMi4wMTE5NyIsIFwKLSAgICAgICAgICAiMC4xMzczNCwgMC4xODQ1MzIsIDAuNDUxODgsIDAuNjg3NzMsIDEuMDAxODMsIDEuNjMxMjgsIDIuMDIzNTEiLCBcCi0gICAgICAgICAgIjAuMTU2MTU4LCAwLjIwMzA2NywgMC40NzA0NCwgMC43MDYxOTEsIDEuMDIwNSwgMS42NDkxNywgMi4wNDIwMSIsIFwKLSAgICAgICAgICAiMC4xNzI2NDIsIDAuMjE5MjMzLCAwLjQ4NjQzMSwgMC43MjI1MzcsIDEuMDM2NDYsIDEuNjY0ODMsIDIuMDU3MzciKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTg0ODcxLCAwLjI4MDU5NSwgMC44MjMxNzMsIDEuMzAxNjYsIDEuOTM5MSwgMy4yMTQ4MiwgNC4wMTEzNCIsIFwKLSAgICAgICAgICAiMC4xODQ4NDYsIDAuMjgwNjE0LCAwLjgyMjY1NiwgMS4zMDIyMiwgMS45Mzk2MSwgMy4yMTQ2MiwgNC4wMTMxMiIsIFwKLSAgICAgICAgICAiMC4xODU0NTgsIDAuMjgwNDc1LCAwLjgyMzAwNCwgMS4zMDA3MSwgMS45MzkwMiwgMy4yMTUyMSwgNC4wMTA4OCIsIFwKLSAgICAgICAgICAiMC4xODg3MDksIDAuMjgxNDUzLCAwLjgyMzQyNywgMS4zMDE0MywgMS45Mzk0NiwgMy4yMTQ2MSwgNC4wMTEzMyIsIFwKLSAgICAgICAgICAiMC4xOTQwMDUsIDAuMjg0NDkzLCAwLjgyMzE5OCwgMS4zMDE1NCwgMS45Mzk0MywgMy4yMTU3OCwgNC4wMTEzNyIsIFwKLSAgICAgICAgICAiMC4yMDQwNzEsIDAuMjkyMjk4LCAwLjgyMjgyMywgMS4zMDE3NywgMS45Mzk3NCwgMy4yMTUxMiwgNC4wMTEzMyIsIFwKLSAgICAgICAgICAiMC4yMTQ2MzksIDAuMzAwNjY3LCAwLjgyMzMwNiwgMS4zMDE3NCwgMS45Mzk0NywgMy4yMTM5NCwgNC4wMTA5NyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODk3MzcsIDAuMTM1NDAyLCAwLjM5NDAzOSwgMC42MjIyMzQsIDAuOTI2MjcxLCAxLjUzNDQ4LCAxLjkxNDEzIiwgXAotICAgICAgICAgICIwLjA5ODk3NiwgMC4xNDQ3NzEsIDAuNDAzNDU3LCAwLjYzMTY0LCAwLjkzNTc1NiwgMS41NDM1NiwgMS45MjM2OCIsIFwKLSAgICAgICAgICAiMC4xMTA0NTQsIDAuMTU1MzU0LCAwLjQxNTA3NSwgMC42NDMyOTksIDAuOTQ3Mzk4LCAxLjU1NTk0LCAxLjkzNTI5IiwgXAotICAgICAgICAgICIwLjEyMjEsIDAuMTY3ODc1LCAwLjQyNjczOCwgMC42NTQ5MTEsIDAuOTU5MTEzLCAxLjU2NzYzLCAxLjk0NzAyIiwgXAotICAgICAgICAgICIwLjEzNDE1NSwgMC4xNzk1NjgsIDAuNDM4NDI3LCAwLjY2NjYyNiwgMC45NzA3NzEsIDEuNTc4ODEsIDEuOTU4NTEiLCBcCi0gICAgICAgICAgIjAuMTUzMzEyLCAwLjE5ODQyOSwgMC40NTQ2NTYsIDAuNjg1MzMzLCAwLjk4OTQ3OCwgMS41OTcyNSwgMS45NzcwNCIsIFwKLSAgICAgICAgICAiMC4xNzAwMDMsIDAuMjE1NTQ2LCAwLjQ3MzUxOCwgMC43MDE3NDksIDEuMDA1ODMsIDEuNjEzODksIDEuOTkzNzYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTczMDE2LCAwLjI2MjY4MiwgMC43NzEyODQsIDEuMjIwMDMsIDEuODE4MzksIDMuMDE2NjcsIDMuNzc0NSIsIFwKLSAgICAgICAgICAiMC4xNzMwMDgsIDAuMjYyNzMxLCAwLjc3MTI4NiwgMS4yMjAxNywgMS44MTg3NSwgMy4wMjA4MSwgMy43NzI5MyIsIFwKLSAgICAgICAgICAiMC4xNzM4MDcsIDAuMjYyNjQyLCAwLjc3MTMwNCwgMS4yMiwgMS44MTgzMSwgMy4wMTUyOSwgMy43NjU1OSIsIFwKLSAgICAgICAgICAiMC4xNzczODksIDAuMjYzOTY5LCAwLjc3MTM3NywgMS4yMjAyNiwgMS44MTgyNywgMy4wMTUyOSwgMy43NzQxNyIsIFwKLSAgICAgICAgICAiMC4xODI0NDksIDAuMjY3MTg1LCAwLjc3MTI2NiwgMS4yMjAxMywgMS44MTgxLCAzLjAxNjUxLCAzLjc3MzM5IiwgXAotICAgICAgICAgICIwLjE5Mjk2MiwgMC4yNzUxMDEsIDAuNzcxMzA4LCAxLjIyMDE4LCAxLjgxODU4LCAzLjAxNjE3LCAzLjc3MTQyIiwgXAotICAgICAgICAgICIwLjIwMzYxNSwgMC4yODMwNTEsIDAuNzcyMTU1LCAxLjIyMzI3LCAxLjgxODMxLCAzLjAyOTcsIDMuNzY1NDQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBME4iOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzIxOSwgMC4wMDMyMiwgMC4wMDMyMiwgMC4wMDMyMjIsIDAuMDAzMjIzLCAwLjAwMzIyMiwgMC4wMDMyMTkiLCBcCi0gICAgICAgICAgIjAuMDAzMTg5LCAwLjAwMzE5LCAwLjAwMzE5MSwgMC4wMDMxOTEsIDAuMDAzMTkxLCAwLjAwMzE4OCwgMC4wMDMxOSIsIFwKLSAgICAgICAgICAiMC4wMDMxOTMsIDAuMDAzMTk1LCAwLjAwMzE5NywgMC4wMDMxOTcsIDAuMDAzMTk3LCAwLjAwMzE5NiwgMC4wMDMxOTUiLCBcCi0gICAgICAgICAgIjAuMDAzMTk0LCAwLjAwMzE5NiwgMC4wMDMxOTksIDAuMDAzMTk5LCAwLjAwMzE5OSwgMC4wMDMxOTgsIDAuMDAzMTk4IiwgXAotICAgICAgICAgICIwLjAwMzIwNCwgMC4wMDMyMDYsIDAuMDAzMjExLCAwLjAwMzIxMSwgMC4wMDMyMTEsIDAuMDAzMjEsIDAuMDAzMjEiLCBcCi0gICAgICAgICAgIjAuMDAzMjI5LCAwLjAwMzIzMSwgMC4wMDMyMzYsIDAuMDAzMjM3LCAwLjAwMzIzNywgMC4wMDMyMzYsIDAuMDAzMjM2IiwgXAotICAgICAgICAgICIwLjAwMzI1MiwgMC4wMDMyNTUsIDAuMDAzMjYxLCAwLjAwMzI2MiwgMC4wMDMyNjIsIDAuMDAzMjYyLCAwLjAwMzI2MSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzI3LCAwLjAwMzI3LCAwLjAwMzI3MSwgMC4wMDMyNzEsIDAuMDAzMjcxLCAwLjAwMzI3LCAwLjAwMzI2OSIsIFwKLSAgICAgICAgICAiMC4wMDMyNDQsIDAuMDAzMjQ2LCAwLjAwMzI0OSwgMC4wMDMyNDksIDAuMDAzMjQ4LCAwLjAwMzI0NywgMC4wMDMyNDciLCBcCi0gICAgICAgICAgIjAuMDAzMjQxLCAwLjAwMzI0NCwgMC4wMDMyNDksIDAuMDAzMjQ5LCAwLjAwMzI1LCAwLjAwMzI1LCAwLjAwMzI0OSIsIFwKLSAgICAgICAgICAiMC4wMDMyMzksIDAuMDAzMjQzLCAwLjAwMzI1LCAwLjAwMzI1LCAwLjAwMzI1MSwgMC4wMDMyNTEsIDAuMDAzMjUiLCBcCi0gICAgICAgICAgIjAuMDAzMjQ4LCAwLjAwMzI1MywgMC4wMDMyNiwgMC4wMDMyNjEsIDAuMDAzMjYyLCAwLjAwMzI2MiwgMC4wMDMyNjIiLCBcCi0gICAgICAgICAgIjAuMDAzMjY1LCAwLjAwMzI3MiwgMC4wMDMyOCwgMC4wMDMyODIsIDAuMDAzMjg0LCAwLjAwMzI4NCwgMC4wMDMyODQiLCBcCi0gICAgICAgICAgIjAuMDAzMjg3LCAwLjAwMzI5NCwgMC4wMDMzMDQsIDAuMDAzMzA0LCAwLjAwMzMwNSwgMC4wMDMzMDYsIDAuMDAzMzA3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTFOIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDMwMzgsIDAuMDAzMDQsIDAuMDAzMDQzLCAwLjAwMzA0MywgMC4wMDMwNDMsIDAuMDAzMDQzLCAwLjAwMzA0MyIsIFwKLSAgICAgICAgICAiMC4wMDMwMDgsIDAuMDAzMDExLCAwLjAwMzAxNiwgMC4wMDMwMTcsIDAuMDAzMDE3LCAwLjAwMzAxNywgMC4wMDMwMTYiLCBcCi0gICAgICAgICAgIjAuMDAzMDA1LCAwLjAwMzAxLCAwLjAwMzAxNywgMC4wMDMwMTksIDAuMDAzMDE5LCAwLjAwMzAxOSwgMC4wMDMwMTkiLCBcCi0gICAgICAgICAgIjAuMDAzMDEyLCAwLjAwMzAxOCwgMC4wMDMwMjcsIDAuMDAzMDI5LCAwLjAwMzAzLCAwLjAwMzAzLCAwLjAwMzAzMSIsIFwKLSAgICAgICAgICAiMC4wMDMwMTEsIDAuMDAzMDE4LCAwLjAwMzAyOCwgMC4wMDMwMzEsIDAuMDAzMDMyLCAwLjAwMzAzMiwgMC4wMDMwMzIiLCBcCi0gICAgICAgICAgIjAuMDAzMDMyLCAwLjAwMzAzOSwgMC4wMDMwNTIsIDAuMDAzMDU1LCAwLjAwMzA1NiwgMC4wMDMwNTcsIDAuMDAzMDU3IiwgXAotICAgICAgICAgICIwLjAwMzA1MywgMC4wMDMwNjIsIDAuMDAzMDc2LCAwLjAwMzA3OSwgMC4wMDMwODEsIDAuMDAzMDgyLCAwLjAwMzA4MiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzMwMywgMC4wMDMzMDQsIDAuMDAzMzA2LCAwLjAwMzMwNCwgMC4wMDMzMDUsIDAuMDAzMzA0LCAwLjAwMzMwNCIsIFwKLSAgICAgICAgICAiMC4wMDMyNzUsIDAuMDAzMjc4LCAwLjAwMzI4MSwgMC4wMDMyODIsIDAuMDAzMjgyLCAwLjAwMzI4MSwgMC4wMDMyOCIsIFwKLSAgICAgICAgICAiMC4wMDMyNywgMC4wMDMyNzUsIDAuMDAzMjgxLCAwLjAwMzI4MiwgMC4wMDMyODIsIDAuMDAzMjgyLCAwLjAwMzI4MiIsIFwKLSAgICAgICAgICAiMC4wMDMyNzEsIDAuMDAzMjc1LCAwLjAwMzI4MywgMC4wMDMyODQsIDAuMDAzMjg1LCAwLjAwMzI4NSwgMC4wMDMyODUiLCBcCi0gICAgICAgICAgIjAuMDAzMjc3LCAwLjAwMzI4MiwgMC4wMDMyOTEsIDAuMDAzMjkzLCAwLjAwMzI5NCwgMC4wMDMyOTQsIDAuMDAzMjkzIiwgXAotICAgICAgICAgICIwLjAwMzI5NSwgMC4wMDMzMDEsIDAuMDAzMzA4LCAwLjAwMzMxNCwgMC4wMDMzMTUsIDAuMDAzMzEyLCAwLjAwMzMxNSIsIFwKLSAgICAgICAgICAiMC4wMDMzMTUsIDAuMDAzMzE3LCAwLjAwMzMzMiwgMC4wMDMzMzQsIDAuMDAzMzM2LCAwLjAwMzMzNCwgMC4wMDMzMzYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyMzA1LCAwLjAwMjMwNiwgMC4wMDIzMDYsIDAuMDAyMzA2LCAwLjAwMjMwNSwgMC4wMDIzMDQsIDAuMDAyMzA0IiwgXAotICAgICAgICAgICIwLjAwMjI5LCAwLjAwMjI5MywgMC4wMDIyOTgsIDAuMDAyMjk5LCAwLjAwMjI5OSwgMC4wMDIyOTgsIDAuMDAyMjk4IiwgXAotICAgICAgICAgICIwLjAwMjI4MywgMC4wMDIyODUsIDAuMDAyMjk1LCAwLjAwMjI5NywgMC4wMDIyOTcsIDAuMDAyMjk3LCAwLjAwMjI5NiIsIFwKLSAgICAgICAgICAiMC4wMDIyNzksIDAuMDAyMjg0LCAwLjAwMjI5MywgMC4wMDIyOTUsIDAuMDAyMjk2LCAwLjAwMjI5NiwgMC4wMDIyOTUiLCBcCi0gICAgICAgICAgIjAuMDAyMjc4LCAwLjAwMjI4MywgMC4wMDIyOTIsIDAuMDAyMjk0LCAwLjAwMjI5NSwgMC4wMDIyOTYsIDAuMDAyMjk1IiwgXAotICAgICAgICAgICIwLjAwMjI4NywgMC4wMDIyODYsIDAuMDAyMjkyLCAwLjAwMjI5MywgMC4wMDIyOTQsIDAuMDAyMjk1LCAwLjAwMjI5NSIsIFwKLSAgICAgICAgICAiMC4wMDIyOTYsIDAuMDAyMjkxLCAwLjAwMjI5MywgMC4wMDIyOTQsIDAuMDAyMjk1LCAwLjAwMjI5NSwgMC4wMDIyOTQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDA0ODEsIDAuMDAwNDgzLCAwLjAwMDQ4NiwgMC4wMDA0ODYsIDAuMDAwNDg2LCAwLjAwMDQ4NywgMC4wMDA0ODciLCBcCi0gICAgICAgICAgIjAuMDAwNDc3LCAwLjAwMDQ4NiwgMC4wMDA0OTksIDAuMDAwNTAxLCAwLjAwMDUwMywgMC4wMDA1MDQsIDAuMDAwNTA0IiwgXAotICAgICAgICAgICIwLjAwMDQ1OCwgMC4wMDA0NzMsIDAuMDAwNDk2LCAwLjAwMDUwMSwgMC4wMDA1MDMsIDAuMDAwNTA2LCAwLjAwMDUwNiIsIFwKLSAgICAgICAgICAiMC4wMDA0NDIsIDAuMDAwNDYsIDAuMDAwNDkxLCAwLjAwMDQ5OCwgMC4wMDA1MDIsIDAuMDAwNTA1LCAwLjAwMDUwNiIsIFwKLSAgICAgICAgICAiMC4wMDA0MywgMC4wMDA0NSwgMC4wMDA0ODYsIDAuMDAwNDk1LCAwLjAwMDUsIDAuMDAwNTA0LCAwLjAwMDUwNSIsIFwKLSAgICAgICAgICAiMC4wMDA0MTcsIDAuMDAwNDM3LCAwLjAwMDQ3OSwgMC4wMDA0OSwgMC4wMDA0OTYsIDAuMDAwNTAyLCAwLjAwMDUwNCIsIFwKLSAgICAgICAgICAiMC4wMDA0MTEsIDAuMDAwNDMsIDAuMDAwNDczLCAwLjAwMDQ4NiwgMC4wMDA0OTQsIDAuMDAwNTAxLCAwLjAwMDUwMyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIxIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDE5MDYsIDAuMDAxOTA3LCAwLjAwMTkwOSwgMC4wMDE5MSwgMC4wMDE5MSwgMC4wMDE5MDksIDAuMDAxOTA5IiwgXAotICAgICAgICAgICIwLjAwMTg5MywgMC4wMDE5LCAwLjAwMTkxLCAwLjAwMTkxMSwgMC4wMDE5MTMsIDAuMDAxOTEzLCAwLjAwMTkxMyIsIFwKLSAgICAgICAgICAiMC4wMDE4NzksIDAuMDAxODg5LCAwLjAwMTkwNiwgMC4wMDE5MDksIDAuMDAxOTExLCAwLjAwMTkxMiwgMC4wMDE5MTIiLCBcCi0gICAgICAgICAgIjAuMDAxODcsIDAuMDAxODgyLCAwLjAwMTkwMiwgMC4wMDE5MDYsIDAuMDAxOTA5LCAwLjAwMTkxMSwgMC4wMDE5MTEiLCBcCi0gICAgICAgICAgIjAuMDAxODY1LCAwLjAwMTg3NiwgMC4wMDE4OTksIDAuMDAxOTA0LCAwLjAwMTkwNywgMC4wMDE5MSwgMC4wMDE5MSIsIFwKLSAgICAgICAgICAiMC4wMDE4NjksIDAuMDAxODc1LCAwLjAwMTg5NiwgMC4wMDE5MDIsIDAuMDAxOTA2LCAwLjAwMTkwOSwgMC4wMDE5MDkiLCBcCi0gICAgICAgICAgIjAuMDAxODc2LCAwLjAwMTg3NywgMC4wMDE4OTUsIDAuMDAxOTAxLCAwLjAwMTkwNCwgMC4wMDE5MDgsIDAuMDAxOTA5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwNDgsIDAuMDAwNDgzLCAwLjAwMDQ4NiwgMC4wMDA0ODYsIDAuMDAwNDg3LCAwLjAwMDQ4NywgMC4wMDA0ODciLCBcCi0gICAgICAgICAgIjAuMDAwNDc1LCAwLjAwMDQ4NSwgMC4wMDA0OTksIDAuMDAwNTAyLCAwLjAwMDUwMywgMC4wMDA1MDUsIDAuMDAwNTA1IiwgXAotICAgICAgICAgICIwLjAwMDQ1OCwgMC4wMDA0NzIsIDAuMDAwNDk2LCAwLjAwMDUwMSwgMC4wMDA1MDQsIDAuMDAwNTA2LCAwLjAwMDUwNyIsIFwKLSAgICAgICAgICAiMC4wMDA0NDYsIDAuMDAwNDYzLCAwLjAwMDQ5MiwgMC4wMDA0OTksIDAuMDAwNTAzLCAwLjAwMDUwNiwgMC4wMDA1MDciLCBcCi0gICAgICAgICAgIjAuMDAwNDQyLCAwLjAwMDQ1NywgMC4wMDA0ODksIDAuMDAwNDk3LCAwLjAwMDUwMSwgMC4wMDA1MDUsIDAuMDAwNTA3IiwgXAotICAgICAgICAgICIwLjAwMDQ0MywgMC4wMDA0NTIsIDAuMDAwNDgzLCAwLjAwMDQ5NCwgMC4wMDA0OTksIDAuMDAwNTA0LCAwLjAwMDUwNiIsIFwKLSAgICAgICAgICAiMC4wMDA0NSwgMC4wMDA0NTgsIDAuMDAwNDgzLCAwLjAwMDQ5MiwgMC4wMDA0OTgsIDAuMDAwNTA0LCAwLjAwMDUwNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogQU9JMkJCMlg0ICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoQU9JMkJCMlg0KSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuNjQzMDQyOwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBME4pICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDg4OTU5OTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA4ODkyOTg7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwODg5NTk5OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTkzNywgMC4wMDE4OSwgMC4wMDE4ODcsIDAuMDAxODgsIDAuMDAxODkxLCAwLjAwMTkxNCwgMC4wMDE5NDciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDQxMjYsIDAuMDA0MDg5LCAwLjAwNDA3MSwgMC4wMDQwNjIsIDAuMDA0MDY1LCAwLjAwNDA4OSwgMC4wMDQxMTMiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEExTikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwOTIwMzI5OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDkxOTkyOTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA5MjAzMjk7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxOTM5LCAwLjAwMTg5MywgMC4wMDE4OSwgMC4wMDE4ODIsIDAuMDAxODkzLCAwLjAwMTkxNywgMC4wMDE5NDkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDQyOTMsIDAuMDA0MjU3LCAwLjAwNDI0LCAwLjAwNDIzLCAwLjAwNDIzMywgMC4wMDQyNTcsIDAuMDA0MjgxIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAzNDE2Nzg7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAzNDE2Nzg7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAzNDA3MzQ7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzkxLCAwLjAwMDM5MSwgMC4wMDAzOTEsIDAuMDAwMzkxLCAwLjAwMDM5MSwgMC4wMDAzOTIsIDAuMDAwMzkxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzksIDAuMDAwMzg5LCAwLjAwMDM4OSwgMC4wMDAzODksIDAuMDAwMzg5LCAwLjAwMDM4OSwgMC4wMDAzODkiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIxKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDMxNjk5ODsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDMxNjgyNDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDMxNjk5ODsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAzOTEsIDAuMDAwMzkxLCAwLjAwMDM5MSwgMC4wMDAzOTIsIDAuMDAwMzkyLCAwLjAwMDM5MiwgMC4wMDAzOTIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAzODksIDAuMDAwMzg5LCAwLjAwMDM4OSwgMC4wMDAzODksIDAuMDAwMzg5LCAwLjAwMDM4OSwgMC4wMDAzODkiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC41NDk3Mjk7Ci0gICAgZnVuY3Rpb24gOiAiKCEoKEIwIEIxKSsoIShBME4rQTFOKSkpKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTBOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3MzcyNCwgMC4yMTI3OTIsIDAuMzUxNDQ0LCAwLjQ1MDMyOSwgMC42MTAwMzIsIDAuNzQ5NjAxLCAwLjk0OTQ5OCIsIFwKLSAgICAgICAgICAiMC4wODM5MDQsIDAuMjIzMDMsIDAuMzYxNjIzLCAwLjQ2MDUxNSwgMC42MjAzMTksIDAuNzU5Nzk4LCAwLjk1ODYwNiIsIFwKLSAgICAgICAgICAiMC4wOTY2NywgMC4yMzU4MjQsIDAuMzc0Mzc4LCAwLjQ3MzM0OCwgMC42MzI5NjgsIDAuNzcyOTYsIDAuOTcyMTA5IiwgXAotICAgICAgICAgICIwLjEwODE5MywgMC4yNDczMSwgMC4zODU4NjIsIDAuNDg0ODA0LCAwLjY0NDY4MSwgMC43ODQxMjksIDAuOTgzNTkxIiwgXAotICAgICAgICAgICIwLjExODM3NywgMC4yNTc0OTMsIDAuMzk2MDE3LCAwLjQ5NTIwMSwgMC42NTQ2NjUsIDAuNzk0MzI5LCAwLjk5Mzg2NyIsIFwKLSAgICAgICAgICAiMC4xMzIzNTYsIDAuMjcxNTM3LCAwLjQxMDExNywgMC41MDkxNDUsIDAuNjY4NzYyLCAwLjgwODM1OSwgMS4wMDg0OCIsIFwKLSAgICAgICAgICAiMC4xNDMyMiwgMC4yODI0MSwgMC40MjEwMTEsIDAuNTE5OTQ1LCAwLjY3OTcyOCwgMC44MTkzMywgMS4wMTg4NyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2ODg2OSwgMC4zNDk0ODMsIDAuNjMzMTE4LCAwLjgzNjUwMSwgMS4xNjA1OSwgMS40NDQ2LCAxLjg0OTg4IiwgXAotICAgICAgICAgICIwLjA2ODgzNiwgMC4zNDk0ODgsIDAuNjMzMTA4LCAwLjgzNjQyNSwgMS4xNjA4NCwgMS40NDQ1OCwgMS44NDkxNCIsIFwKLSAgICAgICAgICAiMC4wNjg4NjIsIDAuMzQ5NDgyLCAwLjYzMzEyMSwgMC44MzU5LCAxLjE2MDU4LCAxLjQ0NDM4LCAxLjg1MDI2IiwgXAotICAgICAgICAgICIwLjA2OTAyMSwgMC4zNDk0NDYsIDAuNjMzMjczLCAwLjgzNjE5MiwgMS4xNjA4NiwgMS40NDQ1NCwgMS44NTAyNyIsIFwKLSAgICAgICAgICAiMC4wNjkyOTQsIDAuMzQ5NTQxLCAwLjYzMzE1OSwgMC44MzU5OTIsIDEuMTYwNTEsIDEuNDQ0NSwgMS44NTAzMiIsIFwKLSAgICAgICAgICAiMC4wNjk3NTYsIDAuMzQ5NDA1LCAwLjYzMzAxNiwgMC44MzYyNjIsIDEuMTYwNjEsIDEuNDQ0NTUsIDEuODQ5OTMiLCBcCi0gICAgICAgICAgIjAuMDcwNDMsIDAuMzQ5NTksIDAuNjMzMDgsIDAuODM1OTYyLCAxLjE2MDUsIDEuNDQ0NjMsIDEuODQ5NDgiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzUwMDgsIDAuMjExMDE1LCAwLjM0NTY2OCwgMC40NDE4MSwgMC41OTUzMjUsIDAuNzI5NzAyLCAwLjkyMTk4NSIsIFwKLSAgICAgICAgICAiMC4wODQ4MzEsIDAuMjIwODY2LCAwLjM1NTU0MSwgMC40NTE2NzEsIDAuNjA1MjUyLCAwLjczOTU0OCwgMC45MzE1MDYiLCBcCi0gICAgICAgICAgIjAuMDk3MTQ2LCAwLjIzMzIyNiwgMC4zNjc5MDcsIDAuNDY0MDUzLCAwLjYxNzYxOSwgMC43NTE5MjcsIDAuOTQ0MTMzIiwgXAotICAgICAgICAgICIwLjEwODA2NywgMC4yNDQyMjMsIDAuMzc4OTA1LCAwLjQ3NTA1NiwgMC42Mjg2MjYsIDAuNzYyOTUyLCAwLjk1NTE4NiIsIFwKLSAgICAgICAgICAiMC4xMTc0NzQsIDAuMjUzNjM5LCAwLjM4ODMyMSwgMC40ODQ1NTcsIDAuNjM4MTU4LCAwLjc3MjY5MiwgMC45NjQzMiIsIFwKLSAgICAgICAgICAiMC4xMzAzMTcsIDAuMjY2NTg1LCAwLjQwMTI1MiwgMC40OTczMTMsIDAuNjUxMDkzLCAwLjc4NTM4NiwgMC45NzcxNjIiLCBcCi0gICAgICAgICAgIjAuMTQwMTE3LCAwLjI3NjQyMiwgMC40MTExLCAwLjUwNzMwMiwgMC42NjA4MTgsIDAuNzk1Mjg3LCAwLjk4NzE3MiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3NTMyNCwgMC4zMzk3ODQsIDAuNjA1NDI0LCAwLjc5NDk4NywgMS4wOTg4MSwgMS4zNjQwNSwgMS43NDM4MiIsIFwKLSAgICAgICAgICAiMC4wNzUzMjksIDAuMzM5NzMsIDAuNjA1NDUzLCAwLjc5NTEwNSwgMS4wOTg1NiwgMS4zNjQxMywgMS43NDM0NSIsIFwKLSAgICAgICAgICAiMC4wNzUzNjIsIDAuMzM5NzMsIDAuNjA1NDU3LCAwLjc5NTI3NywgMS4wOTg1OCwgMS4zNjQxMiwgMS43NDM3NSIsIFwKLSAgICAgICAgICAiMC4wNzU1MzUsIDAuMzM5NzI4LCAwLjYwNTQ3OCwgMC43OTUwNSwgMS4wOTg1OCwgMS4zNjQ0MywgMS43NDM0NyIsIFwKLSAgICAgICAgICAiMC4wNzU4NTUsIDAuMzM5NzU5LCAwLjYwNTMyMiwgMC43OTUwMTEsIDEuMDk4NjEsIDEuMzY0MjUsIDEuNzQzNDciLCBcCi0gICAgICAgICAgIjAuMDc2NDc3LCAwLjMzOTg0OCwgMC42MDU0NzQsIDAuNzk1MDIxLCAxLjA5ODU3LCAxLjM2NDA2LCAxLjc0Mzg0IiwgXAotICAgICAgICAgICIwLjA3NzEyLCAwLjMzOTkzNCwgMC42MDU1MzQsIDAuNzk0OTg0LCAxLjA5ODYsIDEuMzY0MDIsIDEuNzQzNjEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTFOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3MTc5OSwgMC4yMTEwMjIsIDAuMzQ5ODEsIDAuNDQ4Nzk1LCAwLjYwODAxNSwgMC43NDc1NDMsIDAuOTQ3NjE5IiwgXAotICAgICAgICAgICIwLjA4MTk4MSwgMC4yMjExOTEsIDAuMzYwMDIxLCAwLjQ1OTAwNCwgMC42MTgxMTcsIDAuNzU4MzIxLCAwLjk1NzIyNCIsIFwKLSAgICAgICAgICAiMC4wOTQ3MzEsIDAuMjM0MDQyLCAwLjM3MjkxMSwgMC40NzE1MzcsIDAuNjMwNTA3LCAwLjc3MDU2MywgMC45NzA1NCIsIFwKLSAgICAgICAgICAiMC4xMDYzMzIsIDAuMjQ1NjY1LCAwLjM4NDUyMywgMC40ODM1MzEsIDAuNjQyNjE4LCAwLjc4Mjg2NCwgMC45ODE3MTYiLCBcCi0gICAgICAgICAgIjAuMTE2NjE0LCAwLjI1NTk4MywgMC4zOTQ4OTYsIDAuNDkzODIsIDAuNjUyODk1LCAwLjc5MjU0NSwgMC45OTI5MzMiLCBcCi0gICAgICAgICAgIjAuMTMwNzQ0LCAwLjI3MDE1NiwgMC40MDg5OTIsIDAuNTA4MjE0LCAwLjY2NzEyMiwgMC44MDY4MzQsIDEuMDA2MzciLCBcCi0gICAgICAgICAgIjAuMTQxNzM5LCAwLjI4MTIwMSwgMC40MjAwODgsIDAuNTE5MDI0LCAwLjY3ODMyOSwgMC44MTc4NzcsIDEuMDE3NDQiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjU3MDUsIDAuMzQ2NTIsIDAuNjI5NjMxLCAwLjgzNDMxOSwgMS4xNTgwNiwgMS40NDQwMSwgMS44NDYwOCIsIFwKLSAgICAgICAgICAiMC4wNjU2OTIsIDAuMzQ2NTc2LCAwLjYyOTYyOSwgMC44MzIzNzQsIDEuMTU5NDcsIDEuNDQwNTIsIDEuODQ5NDMiLCBcCi0gICAgICAgICAgIjAuMDY1NzIxLCAwLjM0NjQ5NSwgMC42Mjk0NjYsIDAuODM0Mjc5LCAxLjE1NjMyLCAxLjQ0MzkyLCAxLjg0NjMzIiwgXAotICAgICAgICAgICIwLjA2NTg5NSwgMC4zNDY1MzUsIDAuNjI5NTM0LCAwLjgzMjUyNiwgMS4xNTk0NSwgMS40NDA2MSwgMS44NDk1MiIsIFwKLSAgICAgICAgICAiMC4wNjYxNDMsIDAuMzQ2NTYsIDAuNjI5NTMyLCAwLjgzNDM1MywgMS4xNTkzMiwgMS40NDE3LCAxLjg0NjgzIiwgXAotICAgICAgICAgICIwLjA2NjY5NywgMC4zNDY2MjMsIDAuNjMzMDE3LCAwLjgzMjIwMiwgMS4xNTkzNCwgMS40NDM5NywgMS44NTA1OSIsIFwKLSAgICAgICAgICAiMC4wNjcyMzMsIDAuMzQ2NjY2LCAwLjYyOTY5NiwgMC44MzIyOTYsIDEuMTU3MDMsIDEuNDQzOTUsIDEuODUwNSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3MjQ5MiwgMC4yMDg0MjgsIDAuMzQzMDA5LCAwLjQzOTEzNSwgMC41OTI3NTgsIDAuNzI3MDk1LCAwLjkxOTEwNiIsIFwKLSAgICAgICAgICAiMC4wODI0MDcsIDAuMjE4Mzk1LCAwLjM1MzE0MywgMC40NDkxNTMsIDAuNjAyODc5LCAwLjczNzA3OSwgMC45Mjg5NTMiLCBcCi0gICAgICAgICAgIjAuMDk0Njc1LCAwLjIzMDY4OCwgMC4zNjU0MTUsIDAuNDYxNDU5LCAwLjYxNTA1MiwgMC43NDk0MDYsIDAuOTQxNzYyIiwgXAotICAgICAgICAgICIwLjEwNTYwMSwgMC4yNDE2NjUsIDAuMzc2NDM5LCAwLjQ3MjQyLCAwLjYyNjEwNywgMC43NjA4NDIsIDAuOTUyMjYyIiwgXAotICAgICAgICAgICIwLjExNTAwMiwgMC4yNTExNDgsIDAuMzg1ODIsIDAuNDgyMDcxLCAwLjYzNTQ4MiwgMC43Njk4NDYsIDAuOTYxNzM4IiwgXAotICAgICAgICAgICIwLjEyODI3OSwgMC4yNjQyOCwgMC4zOTg5MTEsIDAuNDk0OTk4LCAwLjY0ODcxOSwgMC43ODMwNjQsIDAuOTc0ODg0IiwgXAotICAgICAgICAgICIwLjEzODIzMiwgMC4yNzQzMDgsIDAuNDA4OTE1LCAwLjUwNTE1MiwgMC42NTg2ODUsIDAuNzkzMjE2LCAwLjk4NTI1OCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3NTUxNCwgMC4zMzk3NzEsIDAuNjA1MjYxLCAwLjc5NTEwNCwgMS4wOTg3NCwgMS4zNjQzMiwgMS43NDM2OCIsIFwKLSAgICAgICAgICAiMC4wNzU1MDUsIDAuMzM5NzIyLCAwLjYwNTQ0NCwgMC43OTUwMzYsIDEuMDk4NTcsIDEuMzY0MTYsIDEuNzQzNjEiLCBcCi0gICAgICAgICAgIjAuMDc1NjA5LCAwLjMzOTc2NSwgMC42MDU0NiwgMC43OTUwNjgsIDEuMDk4NjQsIDEuMzY0MTQsIDEuNzQzMzgiLCBcCi0gICAgICAgICAgIjAuMDc2MDE5LCAwLjMzOTc4NCwgMC42MDU0NjcsIDAuNzk1MDQyLCAxLjA5ODYyLCAxLjM2NDM2LCAxLjc0MzQiLCBcCi0gICAgICAgICAgIjAuMDc2NjY2LCAwLjMzOTgwMywgMC42MDUzMDEsIDAuNzk1MjYxLCAxLjA5ODY0LCAxLjM2NDE2LCAxLjc0MzU1IiwgXAotICAgICAgICAgICIwLjA3NzYxNywgMC4zMzk5NTYsIDAuNjA1NDksIDAuNzk1MTYxLCAxLjA5ODU3LCAxLjM2NDM3LCAxLjc0MzgiLCBcCi0gICAgICAgICAgIjAuMDc4NzEzLCAwLjM0MDAzOCwgMC42MDU1MjIsIDAuNzk1MDcyLCAxLjA5ODY5LCAxLjM2NDAxLCAxLjc0Mzc5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzNzIzNCwgMC4xNzYyNDUsIDAuMzE0NzUyLCAwLjQxMzY2OSwgMC41NzE3NzgsIDAuNzEwMDc5LCAwLjkwODA0MiIsIFwKLSAgICAgICAgICAiMC4wNDYyMjcsIDAuMTg1Mzg3LCAwLjMyMzk1NiwgMC40MjI5NDgsIDAuNTgxMzk3LCAwLjcxOTM2NywgMC45MTcwNDkiLCBcCi0gICAgICAgICAgIjAuMDU3NjA3LCAwLjE5NjcyMywgMC4zMzU0MDIsIDAuNDMzOTQ5LCAwLjU5MjExMSwgMC43MzA3NTgsIDAuOTI4ODI3IiwgXAotICAgICAgICAgICIwLjA2OTQxOSwgMC4yMDg0OTEsIDAuMzQ3MDgsIDAuNDQ2MDE1LCAwLjYwNDEyOSwgMC43NDIyMzQsIDAuOTQwMTg4IiwgXAotICAgICAgICAgICIwLjA3OTU4MywgMC4yMTk3MjcsIDAuMzU4MjY5LCAwLjQ1NzEyOSwgMC42MTU2MTcsIDAuNzUzNzI4LCAwLjk1MTQ1NSIsIFwKLSAgICAgICAgICAiMC4wOTMwOTgsIDAuMjM4Mjg5LCAwLjM3Njc4MywgMC40NzU2NzMsIDAuNjMzODk4LCAwLjc3MjQxNSwgMC45NzAwNjgiLCBcCi0gICAgICAgICAgIjAuMTAzMzcxLCAwLjI1NDU1OSwgMC4zOTI5NjksIDAuNDkxNzkzLCAwLjY1MDI2MywgMC43ODgzOTYsIDAuOTg2NDE4Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY3NzMzLCAwLjM0OTQ1NywgMC42MzA1ODgsIDAuODMxNjkzLCAxLjE1Mjg4LCAxLjQzNDAyLCAxLjgzNTk0IiwgXAotICAgICAgICAgICIwLjA2ODIxLCAwLjM0OTI5MywgMC42MzA2MjgsIDAuODMxNTU5LCAxLjE1MzQ4LCAxLjQzNDExLCAxLjgzNTgzIiwgXAotICAgICAgICAgICIwLjA3MzY0MywgMC4zNDk0NjgsIDAuNjMwNjgzLCAwLjgzMTI5NSwgMS4xNTI2OCwgMS40MzQxNSwgMS44MzU0OCIsIFwKLSAgICAgICAgICAiMC4wODA4MDEsIDAuMzQ5NDgsIDAuNjMwNjMzLCAwLjgzMTUyMywgMS4xNTI5MywgMS40MzM5NCwgMS44MzU3NCIsIFwKLSAgICAgICAgICAiMC4wODk2MTMsIDAuMzUxNDM1LCAwLjYzMDU5LCAwLjgzMTgzNiwgMS4xNTMyMiwgMS40MzQxNSwgMS44MzU5MiIsIFwKLSAgICAgICAgICAiMC4xMDM2NTcsIDAuMzU3MTkzLCAwLjYzMTQwMSwgMC44MzE3MjIsIDEuMTUyOTQsIDEuNDM0MDksIDEuODM2MDEiLCBcCi0gICAgICAgICAgIjAuMTE0OTk4LCAwLjM2NDA5NiwgMC42MzM5NjgsIDAuODMxODY5LCAxLjE1Mjk3LCAxLjQzNDA0LCAxLjgzNTA4Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM0Njk1LCAwLjE2OTM5MSwgMC4zMDM4NjMsIDAuMzk5ODY5LCAwLjU1MzU3MiwgMC42ODc5OCwgMC44ODAxNjEiLCBcCi0gICAgICAgICAgIjAuMDQzNTI5LCAwLjE3ODYzMywgMC4zMTMxNzEsIDAuNDA5MTk4LCAwLjU2MjkwNywgMC42OTczMzUsIDAuODg5Mzc2IiwgXAotICAgICAgICAgICIwLjA1NDIzNiwgMC4xODk2NDUsIDAuMzI0MjM0LCAwLjQyMDMyMywgMC41NzQwMjQsIDAuNzA4NDg3LCAwLjkwMDU2IiwgXAotICAgICAgICAgICIwLjA2NDMwNCwgMC4yMDA2NjQsIDAuMzM1Mzk4LCAwLjQzMTUxOSwgMC41ODUxNDQsIDAuNzE5NzExLCAwLjkxMTY4MyIsIFwKLSAgICAgICAgICAiMC4wNzMyNjUsIDAuMjExNTA3LCAwLjM0NjQ0NiwgMC40NDI2NDcsIDAuNTk2MjE1LCAwLjczMDYyMywgMC45MjI3MjIiLCBcCi0gICAgICAgICAgIjAuMDg1Njk2LCAwLjIyODk4MiwgMC4zNjM5NCwgMC40NTk1MDQsIDAuNjEzODM1LCAwLjc0ODMzNywgMC45NDAzIiwgXAotICAgICAgICAgICIwLjA5NTUwNSwgMC4yNDQwNzIsIDAuMzc5MTMsIDAuNDc1NTUyLCAwLjYyOTM0LCAwLjc2MzgzNCwgMC45NTU4NTkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjA3MDcsIDAuMzI1ODk1LCAwLjU5MTQ2NywgMC43ODEwODUsIDEuMDg0OTEsIDEuMzU1MzMsIDEuNzM3OTYiLCBcCi0gICAgICAgICAgIjAuMDYxMTU2LCAwLjMyNTg5MiwgMC41OTE1MDIsIDAuNzgxMDMzLCAxLjA4NDYsIDEuMzUwNDcsIDEuNzI5OTciLCBcCi0gICAgICAgICAgIjAuMDY0NzI3LCAwLjMyNTk0MSwgMC41OTE1MDMsIDAuNzgxMDI3LCAxLjA4Njk0LCAxLjM1MDUxLCAxLjczNTU3IiwgXAotICAgICAgICAgICIwLjA3MDEyOSwgMC4zMjYwOSwgMC41OTE0OTMsIDAuNzgxNTk3LCAxLjA4NzI1LCAxLjM1NDE3LCAxLjczMDg1IiwgXAotICAgICAgICAgICIwLjA3NjUyLCAwLjMyNzQ3NCwgMC41OTE0OTcsIDAuNzgxMzExLCAxLjA4NDg5LCAxLjM1MDQzLCAxLjczMTIiLCBcCi0gICAgICAgICAgIjAuMDg3NzA2LCAwLjMzMTQ3MiwgMC41OTIwNDcsIDAuNzgxMjQ2LCAxLjA4Njg2LCAxLjM1MDQ4LCAxLjcyOTg5IiwgXAotICAgICAgICAgICIwLjA5NzI4MiwgMC4zMzYyNjMsIDAuNTk0MDg3LCAwLjc4MTcwMywgMS4wODQ4OSwgMS4zNTA1OCwgMS43MzExNiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzQ2MzksIDAuMTc0Nzg2LCAwLjMxNDQ1NywgMC40MTQyMywgMC41NzM4NTEsIDAuNzEzODg3LCAwLjkxMzAxMSIsIFwKLSAgICAgICAgICAiMC4wNDM1NjgsIDAuMTgzOTYxLCAwLjMyMzczNiwgMC40MjM2NjIsIDAuNTgzNjA0LCAwLjcyMjQ0LCAwLjkyMjM2OSIsIFwKLSAgICAgICAgICAiMC4wNTUwMzUsIDAuMTk1MzA2LCAwLjMzNTEwNSwgMC40MzQ5MDUsIDAuNTk0MTg1LCAwLjczNDI1MiwgMC45MzQxODgiLCBcCi0gICAgICAgICAgIjAuMDY2NTQ5LCAwLjIwNzEwOCwgMC4zNDY5NTMsIDAuNDQ2ODY0LCAwLjYwNjM3NCwgMC43NDU2NiwgMC45NDU1MzYiLCBcCi0gICAgICAgICAgIjAuMDc2MDM0LCAwLjIxODIxMiwgMC4zNTgwMDIsIDAuNDU3ODE4LCAwLjYxNzU1OCwgMC43NTczNDcsIDAuOTU2NzA5IiwgXAotICAgICAgICAgICIwLjA4ODgxMSwgMC4yMzY3MjYsIDAuMzc2NTM0LCAwLjQ3NjMxMSwgMC42MzYxODgsIDAuNzc1OTk1LCAwLjk3NTI2NiIsIFwKLSAgICAgICAgICAiMC4wOTg0MzcsIDAuMjUzMDE0LCAwLjM5MjY4MSwgMC40OTI0MzUsIDAuNjUyMzI1LCAwLjc5MTc3NywgMC45OTE2MDIiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjQ4NzIsIDAuMzQ5MTI1LCAwLjYzMzAyNSwgMC44MzYzODUsIDEuMTYwNTUsIDEuNDQ0MzksIDEuODUwMjMiLCBcCi0gICAgICAgICAgIjAuMDY1NTE0LCAwLjM0OTE5NywgMC42MzMzMzQsIDAuODM2NDA0LCAxLjE2MDQ3LCAxLjQ0NDEyLCAxLjg1MDM5IiwgXAotICAgICAgICAgICIwLjA3MTA5MiwgMC4zNDkxNTcsIDAuNjMzMjY3LCAwLjgzNjI2OSwgMS4xNjAxMiwgMS40NDQ1OSwgMS44NDk5MSIsIFwKLSAgICAgICAgICAiMC4wNzg3MjMsIDAuMzQ5MDQxLCAwLjYzMzA1OSwgMC44MzU5ODQsIDEuMTYwNTQsIDEuNDQ0MDcsIDEuODUwMzEiLCBcCi0gICAgICAgICAgIjAuMDg3NzE3LCAwLjM1MTE0OCwgMC42MzI5OCwgMC44MzYyNTIsIDEuMTYwNzMsIDEuNDQ0NTMsIDEuODUwNDMiLCBcCi0gICAgICAgICAgIjAuMTAyMzM2LCAwLjM1Njk2OCwgMC42MzM4NzcsIDAuODM1OTY5LCAxLjE2MDUyLCAxLjQ0NDM2LCAxLjg1MDAyIiwgXAotICAgICAgICAgICIwLjExMzg3MywgMC4zNjQxMDUsIDAuNjM2MzU4LCAwLjgzNjI3MSwgMS4xNjA1NCwgMS40NDQ0NSwgMS44NDk0OSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzMjMxNiwgMC4xNjcwMzEsIDAuMzAxNTIxLCAwLjM5NzU2NiwgMC41NTEyMDcsIDAuNjg1NzI4LCAwLjg3NzY3MyIsIFwKLSAgICAgICAgICAiMC4wNDEzMjIsIDAuMTc2NTAxLCAwLjMxMDk2NCwgMC40MDcwNTQsIDAuNTYwNzUzLCAwLjY5NTE3NiwgMC44ODcyMzkiLCBcCi0gICAgICAgICAgIjAuMDUzMDAyLCAwLjE4Nzk5MSwgMC4zMjI1NTMsIDAuNDE4NjI5LCAwLjU3MjM1MiwgMC43MDY4MzMsIDAuODk4Nzk4IiwgXAotICAgICAgICAgICIwLjA2NDI0LCAwLjE5OTk4NiwgMC4zMzQ1OTMsIDAuNDMwNjYyLCAwLjU4NDM3NywgMC43MTg4MzUsIDAuOTEwOTE4IiwgXAotICAgICAgICAgICIwLjA3MzU5OSwgMC4yMTExNzEsIDAuMzQ1NzQxLCAwLjQ0MTg3OCwgMC41OTU2MDksIDAuNzMwMDczLCAwLjkyMjEyIiwgXAotICAgICAgICAgICIwLjA4NjE5OCwgMC4yMjk4NjEsIDAuMzY0NDY1LCAwLjQ2MDYxMSwgMC42MTQyODYsIDAuNzQ4NzYsIDAuOTQwNzc0IiwgXAotICAgICAgICAgICIwLjA5NTc3MywgMC4yNDY0OCwgMC4zODA5NDksIDAuNDc2OTM2LCAwLjYzMDY0NCwgMC43NjUxMTMsIDAuOTU3MTY4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDYwNzA3LCAwLjMyNTg5OSwgMC41OTE1MywgMC43ODEzMTYsIDEuMDg0ODgsIDEuMzUwOCwgMS43Mjk1MyIsIFwKLSAgICAgICAgICAiMC4wNjE3NDYsIDAuMzI1OTc5LCAwLjU5MTQ5NiwgMC43ODEwMiwgMS4wODQ0NSwgMS4zNTQ0OSwgMS43MzExNiIsIFwKLSAgICAgICAgICAiMC4wNjc2MjYsIDAuMzI1OTQxLCAwLjU5MTM1NSwgMC43ODExMzYsIDEuMDg0NywgMS4zNTA0NSwgMS43MzU1NSIsIFwKLSAgICAgICAgICAiMC4wNzU2MTMsIDAuMzI2MjExLCAwLjU5MTQ4LCAwLjc4MTA4NiwgMS4wODQ4MiwgMS4zNTA2MywgMS43MzYyMiIsIFwKLSAgICAgICAgICAiMC4wODQ4NywgMC4zMjgyOTUsIDAuNTkxMzkyLCAwLjc4MTQ1OCwgMS4wODc1LCAxLjM1NDc2LCAxLjczMDIzIiwgXAotICAgICAgICAgICIwLjA5OTkyMSwgMC4zMzQzNDQsIDAuNTkyMzI0LCAwLjc4MTI1LCAxLjA4NDg5LCAxLjM1MzY0LCAxLjczMTA2IiwgXAotICAgICAgICAgICIwLjExMjIxLCAwLjM0MTgxNSwgMC41OTU0NzIsIDAuNzgxOTYsIDEuMDg2NjQsIDEuMzU0NTEsIDEuNzM2NiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEwTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTIyNTUsIDAuMDEyMjgzLCAwLjAxMjI4NywgMC4wMTIyODcsIDAuMDEyMjg3LCAwLjAxMjI4MiwgMC4wMTIyODYiLCBcCi0gICAgICAgICAgIjAuMDEyMTk5LCAwLjAxMjIzNSwgMC4wMTIyNCwgMC4wMTIyNDMsIDAuMDEyMjM5LCAwLjAxMjI0LCAwLjAxMjIzOCIsIFwKLSAgICAgICAgICAiMC4wMTIxNjMsIDAuMDEyMjEyLCAwLjAxMjIxNiwgMC4wMTIyMiwgMC4wMTIyMjEsIDAuMDEyMjIxLCAwLjAxMjIyMSIsIFwKLSAgICAgICAgICAiMC4wMTIxNywgMC4wMTIyMjYsIDAuMDEyMjM0LCAwLjAxMjIzOCwgMC4wMTIyNCwgMC4wMTIyMzksIDAuMDEyMjQiLCBcCi0gICAgICAgICAgIjAuMDEyMTc1LCAwLjAxMjIzNSwgMC4wMTIyNDUsIDAuMDEyMjQ4LCAwLjAxMjI1LCAwLjAxMjI1LCAwLjAxMjI1MSIsIFwKLSAgICAgICAgICAiMC4wMTIyMDMsIDAuMDEyMjY2LCAwLjAxMjI3OSwgMC4wMTIyODEsIDAuMDEyMjksIDAuMDEyMjg5LCAwLjAxMjI5IiwgXAotICAgICAgICAgICIwLjAxMjIzMSwgMC4wMTIyOTQsIDAuMDEyMzA4LCAwLjAxMjMxMSwgMC4wMTIzMTUsIDAuMDEyMzE4LCAwLjAxMjMxNyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEwODYyLCAwLjAxMDkwNiwgMC4wMTA5MTMsIDAuMDEwOTE0LCAwLjAxMDkxNSwgMC4wMTA5MTYsIDAuMDEwOTE1IiwgXAotICAgICAgICAgICIwLjAxMDgwNCwgMC4wMTA4NjMsIDAuMDEwODcsIDAuMDEwODc0LCAwLjAxMDg3NCwgMC4wMTA4NzcsIDAuMDEwODc1IiwgXAotICAgICAgICAgICIwLjAxMDc1NSwgMC4wMTA4MzgsIDAuMDEwODUyLCAwLjAxMDg1NiwgMC4wMTA4NTgsIDAuMDEwODYxLCAwLjAxMDg2MSIsIFwKLSAgICAgICAgICAiMC4wMTA3MzgsIDAuMDEwODMzLCAwLjAxMDg1MSwgMC4wMTA4NTcsIDAuMDEwODYsIDAuMDEwODY0LCAwLjAxMDg2NCIsIFwKLSAgICAgICAgICAiMC4wMTA3MzMsIDAuMDEwODM3LCAwLjAxMDg1OCwgMC4wMTA4NjQsIDAuMDEwODcsIDAuMDEwODc0LCAwLjAxMDg3NiIsIFwKLSAgICAgICAgICAiMC4wMTA3NDMsIDAuMDEwODU1LCAwLjAxMDg3OSwgMC4wMTA4ODgsIDAuMDEwODk1LCAwLjAxMDksIDAuMDEwOTAyIiwgXAotICAgICAgICAgICIwLjAxMDc1NSwgMC4wMTA4NzQsIDAuMDEwOTAzLCAwLjAxMDkxMiwgMC4wMTA5MjIsIDAuMDEwOTI2LCAwLjAxMDkyOSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkExTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTE1MzYsIDAuMDExNjIsIDAuMDExNjM1LCAwLjAxMTYzMywgMC4wMTE2MzUsIDAuMDExNjMsIDAuMDExNjMzIiwgXAotICAgICAgICAgICIwLjAxMTQ2NiwgMC4wMTE1NjYsIDAuMDExNTc5LCAwLjAxMTU4MywgMC4wMTE1ODcsIDAuMDExNTg4LCAwLjAxMTU4NyIsIFwKLSAgICAgICAgICAiMC4wMTE0MTEsIDAuMDExNTM0LCAwLjAxMTU1MiwgMC4wMTE1NTgsIDAuMDExNTY1LCAwLjAxMTU2NCwgMC4wMTE1NjYiLCBcCi0gICAgICAgICAgIjAuMDExNDA0LCAwLjAxMTU0NCwgMC4wMTE1NjgsIDAuMDExNTc0LCAwLjAxMTU4MSwgMC4wMTE1ODQsIDAuMDExNTg3IiwgXAotICAgICAgICAgICIwLjAxMTM5OCwgMC4wMTE1NDUsIDAuMDExNTcyLCAwLjAxMTU4MiwgMC4wMTE1ODksIDAuMDExNTkyLCAwLjAxMTU5NiIsIFwKLSAgICAgICAgICAiMC4wMTE0MTcsIDAuMDExNTcxLCAwLjAxMTYwMSwgMC4wMTE2MSwgMC4wMTE2MiwgMC4wMTE2MjUsIDAuMDExNjI5IiwgXAotICAgICAgICAgICIwLjAxMTQzLCAwLjAxMTU5MSwgMC4wMTE2MjUsIDAuMDExNjM3LCAwLjAxMTY1LCAwLjAxMTY1NiwgMC4wMTE2NiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEwMTk4LCAwLjAxMDI1NCwgMC4wMTAyNiwgMC4wMTAyNjUsIDAuMDEwMjY1LCAwLjAxMDI3NCwgMC4wMTAyNTQiLCBcCi0gICAgICAgICAgIjAuMDEwMTM1LCAwLjAxMDIxLCAwLjAxMDIyMSwgMC4wMTAyMjYsIDAuMDEwMjI5LCAwLjAxMDIyOSwgMC4wMTAyMjgiLCBcCi0gICAgICAgICAgIjAuMDEwMDkyLCAwLjAxMDE4OCwgMC4wMTAyMDQsIDAuMDEwMjExLCAwLjAxMDIxMywgMC4wMTAyMTYsIDAuMDEwMjE2IiwgXAotICAgICAgICAgICIwLjAxMDA2MiwgMC4wMTAxNzUsIDAuMDEwMTk3LCAwLjAxMDIwNSwgMC4wMTAyMSwgMC4wMTAyMTEsIDAuMDEwMjE1IiwgXAotICAgICAgICAgICIwLjAxMDA3OSwgMC4wMTAxODIsIDAuMDEwMjA1LCAwLjAxMDIxMywgMC4wMTAyMTksIDAuMDEwMjIzLCAwLjAxMDIyNCIsIFwKLSAgICAgICAgICAiMC4wMTAwNzcsIDAuMDEwMTk1LCAwLjAxMDIyNSwgMC4wMTAyMzYsIDAuMDEwMjQ0LCAwLjAxMDI0OSwgMC4wMTAyNTEiLCBcCi0gICAgICAgICAgIjAuMDEwMDkzLCAwLjAxMDIxNCwgMC4wMTAyNDcsIDAuMDEwMjU2LCAwLjAxMDI2NiwgMC4wMTAyNzEsIDAuMDEwMjc2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA4Nzk4LCAwLjAwODgxNywgMC4wMDg4MTcsIDAuMDA4ODE3LCAwLjAwODgxNywgMC4wMDg4MTcsIDAuMDA4ODE1IiwgXAotICAgICAgICAgICIwLjAwODY4OSwgMC4wMDg3NzEsIDAuMDA4NzgzLCAwLjAwODc4NywgMC4wMDg3ODgsIDAuMDA4Nzg4LCAwLjAwODc5IiwgXAotICAgICAgICAgICIwLjAwODY1OSwgMC4wMDg3NDksIDAuMDA4NzY5LCAwLjAwODc3MywgMC4wMDg3NzgsIDAuMDA4Nzc5LCAwLjAwODc4MSIsIFwKLSAgICAgICAgICAiMC4wMDg2NTQsIDAuMDA4NzM0LCAwLjAwODc1NywgMC4wMDg3NjQsIDAuMDA4NzcsIDAuMDA4Nzc1LCAwLjAwODc3OCIsIFwKLSAgICAgICAgICAiMC4wMDg2OTgsIDAuMDA4NzM0LCAwLjAwODc1NSwgMC4wMDg3NjEsIDAuMDA4NzY3LCAwLjAwODc3MSwgMC4wMDg3NzQiLCBcCi0gICAgICAgICAgIjAuMDA4Nzg5LCAwLjAwODc0MywgMC4wMDg3NTUsIDAuMDA4NzYsIDAuMDA4NzY4LCAwLjAwODc3LCAwLjAwODc3MyIsIFwKLSAgICAgICAgICAiMC4wMDg4ODMsIDAuMDA4NzYsIDAuMDA4NzYzLCAwLjAwODc2NywgMC4wMDg3NzEsIDAuMDA4NzczLCAwLjAwODc3MyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxODIxLCAwLjAwMTg4MiwgMC4wMDE4ODgsIDAuMDAxODksIDAuMDAxODkxLCAwLjAwMTg5MiwgMC4wMDE4OTMiLCBcCi0gICAgICAgICAgIjAuMDAxNjg4LCAwLjAwMTkwNCwgMC4wMDE5MzIsIDAuMDAxOTQxLCAwLjAwMTk0OCwgMC4wMDE5NTIsIDAuMDAxOTU2IiwgXAotICAgICAgICAgICIwLjAwMTU2LCAwLjAwMTg2LCAwLjAwMTkxMSwgMC4wMDE5MjgsIDAuMDAxOTQyLCAwLjAwMTk1LCAwLjAwMTk1NyIsIFwKLSAgICAgICAgICAiMC4wMDE0OTIsIDAuMDAxODE2LCAwLjAwMTg4NSwgMC4wMDE5MDgsIDAuMDAxOTI5LCAwLjAwMTk0LCAwLjAwMTk1IiwgXAotICAgICAgICAgICIwLjAwMTQ2MiwgMC4wMDE3NzksIDAuMDAxODYxLCAwLjAwMTg4OCwgMC4wMDE5MTUsIDAuMDAxOTI4LCAwLjAwMTk0MSIsIFwKLSAgICAgICAgICAiMC4wMDE0NTQsIDAuMDAxNzMsIDAuMDAxODI1LCAwLjAwMTg2MywgMC4wMDE4OTMsIDAuMDAxOTExLCAwLjAwMTkyNyIsIFwKLSAgICAgICAgICAiMC4wMDE0NzYsIDAuMDAxNywgMC4wMDE4LCAwLjAwMTgzOCwgMC4wMDE4NzYsIDAuMDAxODk2LCAwLjAwMTkxNSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIxIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNzE1NywgMC4wMDcyMDYsIDAuMDA3MjExLCAwLjAwNzIxMSwgMC4wMDcyMTIsIDAuMDA3MjEzLCAwLjAwNzIxMyIsIFwKLSAgICAgICAgICAiMC4wMDcwMiwgMC4wMDcxODIsIDAuMDA3MjA1LCAwLjAwNzIxMiwgMC4wMDcyMTksIDAuMDA3MjIxLCAwLjAwNzIyMyIsIFwKLSAgICAgICAgICAiMC4wMDY5NjIsIDAuMDA3MTQ3LCAwLjAwNzE4MywgMC4wMDcxOTUsIDAuMDA3MjA4LCAwLjAwNzIxMywgMC4wMDcyMTYiLCBcCi0gICAgICAgICAgIjAuMDA2OTMxLCAwLjAwNzExOCwgMC4wMDcxNjQsIDAuMDA3MTgxLCAwLjAwNzE5NSwgMC4wMDcyMDEsIDAuMDA3MjA3IiwgXAotICAgICAgICAgICIwLjAwNjk4MiwgMC4wMDcxMDUsIDAuMDA3MTUzLCAwLjAwNzE3LCAwLjAwNzE4NywgMC4wMDcxOTQsIDAuMDA3MjAyIiwgXAotICAgICAgICAgICIwLjAwNzA3MSwgMC4wMDcwOTQsIDAuMDA3MTQxLCAwLjAwNzE1OCwgMC4wMDcxNzcsIDAuMDA3MTg2LCAwLjAwNzE5NSIsIFwKLSAgICAgICAgICAiMC4wMDcxODEsIDAuMDA3MDk5LCAwLjAwNzEzOCwgMC4wMDcxNTUsIDAuMDA3MTc0LCAwLjAwNzE4MywgMC4wMDcxOTEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTgxMywgMC4wMDE4ODYsIDAuMDAxODkzLCAwLjAwMTg5NiwgMC4wMDE4OTcsIDAuMDAxODk4LCAwLjAwMTg5OSIsIFwKLSAgICAgICAgICAiMC4wMDE2NjgsIDAuMDAxOTAzLCAwLjAwMTkzNSwgMC4wMDE5NDQsIDAuMDAxOTUzLCAwLjAwMTk1OCwgMC4wMDE5NjEiLCBcCi0gICAgICAgICAgIjAuMDAxNTg3LCAwLjAwMTg2NCwgMC4wMDE5MTYsIDAuMDAxOTMzLCAwLjAwMTk0OCwgMC4wMDE5NTYsIDAuMDAxOTYzIiwgXAotICAgICAgICAgICIwLjAwMTU2NSwgMC4wMDE4MzMsIDAuMDAxODk2LCAwLjAwMTkxNywgMC4wMDE5MzYsIDAuMDAxOTQ2LCAwLjAwMTk1NiIsIFwKLSAgICAgICAgICAiMC4wMDE1OTQsIDAuMDAxODA2LCAwLjAwMTg3OCwgMC4wMDE5MDQsIDAuMDAxOTI4LCAwLjAwMTk0LCAwLjAwMTk1MiIsIFwKLSAgICAgICAgICAiMC4wMDE3MDMsIDAuMDAxNzg1LCAwLjAwMTg2LCAwLjAwMTg4OCwgMC4wMDE5MTUsIDAuMDAxOTI5LCAwLjAwMTk0MyIsIFwKLSAgICAgICAgICAiMC4wMDE4MywgMC4wMDE3ODYsIDAuMDAxODUzLCAwLjAwMTg4MSwgMC4wMDE5MDgsIDAuMDAxOTI0LCAwLjAwMTkzOSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IEFPSTMxWDEgKgotICogLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoQU9JMzFYMSkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjE0NzU1NDsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQTApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDkxMjY1NTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA5MDk5MDc7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwOTEyNjU1OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDQwOSwgMC4wMDA0MDksIDAuMDAwNDA5LCAwLjAwMDQwOSwgMC4wMDA0MDksIDAuMDAwNDA4LCAwLjAwMDQwOCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDQxLCAwLjAwMDQxLCAwLjAwMDQxLCAwLjAwMDQxLCAwLjAwMDQxLCAwLjAwMDQxLCAwLjAwMDQxIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihBMSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwOTM1NDc2OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDkzMjMxMzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA5MzU0NzY7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNDA5LCAwLjAwMDQwOSwgMC4wMDA0MDksIDAuMDAwNDA5LCAwLjAwMDQwOSwgMC4wMDA0MDgsIDAuMDAwNDA4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNDEsIDAuMDAwNDEsIDAuMDAwNDEsIDAuMDAwNDEsIDAuMDAwNDEsIDAuMDAwNDEsIDAuMDAwNDEiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEEyKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA5MzAxNzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA5MjQyMzI7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwOTMwMTc7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjg1LCAwLjAwMDI4NCwgMC4wMDAyODQsIDAuMDAwMjg0LCAwLjAwMDI4NCwgMC4wMDAyODQsIDAuMDAwMjg0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNDY0LCAwLjAwMDQ2NSwgMC4wMDA0NjQsIDAuMDAwNDY1LCAwLjAwMDQ2NSwgMC4wMDA0NjUsIDAuMDAwNDY0Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwOTI3NDY1OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDkyNzI4NDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA5Mjc0NjU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMDksIDAuMDAwMDksIDAuMDAwMDksIDAuMDAwMDksIDAuMDAwMDksIDAuMDAwMDksIDAuMDAwMDkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA2OTEsIDAuMDAwNjkxLCAwLjAwMDY5LCAwLjAwMDY5MSwgMC4wMDA2OTEsIDAuMDAwNjkxLCAwLjAwMDY5MSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjA5NzYwNjE7Ci0gICAgZnVuY3Rpb24gOiAiKCEoKChBMCBBMSkgQTIpK0IwKSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDIzNjgsIDAuMTQ5MjI4LCAwLjQxNDI0OCwgMC42NDgwMTksIDAuOTU5NTk5LCAxLjU4MjMyLCAxLjk3MjM2IiwgXAotICAgICAgICAgICIwLjExMTg1MywgMC4xNTg3MzMsIDAuNDIzNzU2LCAwLjY1NzM1LCAwLjk2ODc3OSwgMS41OTE4MSwgMS45ODA4NiIsIFwKLSAgICAgICAgICAiMC4xMjI0NywgMC4xNjkzNzMsIDAuNDM0MzE5LCAwLjY2Nzk3MiwgMC45Nzk0NTksIDEuNjAyMzQsIDEuOTkyNTUiLCBcCi0gICAgICAgICAgIjAuMTMyNzA0LCAwLjE3OTU5OCwgMC40NDQ2MTksIDAuNjc4NTM0LCAwLjk5MDAyNCwgMS42MTI5NCwgMi4wMDE4OCIsIFwKLSAgICAgICAgICAiMC4xNDI2OTIsIDAuMTg5NjA2LCAwLjQ1NDkxMSwgMC42ODgzNjMsIDAuOTk5NywgMS42MjI3LCAyLjAxMjMzIiwgXAotICAgICAgICAgICIwLjE1ODcxLCAwLjIwNTU1OSwgMC40NzA4MjYsIDAuNzA0Mzg2LCAxLjAxNTg0LCAxLjYzOTEzLCAyLjAyODMiLCBcCi0gICAgICAgICAgIjAuMTcyNDQ4LCAwLjIxOTU0MywgMC40ODQ3NDIsIDAuNzE4NTQ3LCAxLjAzLCAxLjY1MjcyLCAyLjA0MTkxIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE4MTgzNywgMC4yNzYzMDYsIDAuODEyMzc4LCAxLjI4NTI4LCAxLjkxNjYzLCAzLjE3NzM3LCAzLjk2NTg4IiwgXAotICAgICAgICAgICIwLjE4MTgyMSwgMC4yNzYzMDcsIDAuODEyNDY3LCAxLjI4NTQ1LCAxLjkxNjE4LCAzLjE3NzI5LCAzLjk2NDk4IiwgXAotICAgICAgICAgICIwLjE4MjAwNywgMC4yNzY0MTcsIDAuODEyNzI2LCAxLjI4NTgsIDEuOTE2NzcsIDMuMTc4MjIsIDMuOTY2NDUiLCBcCi0gICAgICAgICAgIjAuMTgzMzY2LCAwLjI3Njg2MSwgMC44MTIzNDksIDEuMjg1MywgMS45MTYxNSwgMy4xNzczOCwgMy45NjUxMyIsIFwKLSAgICAgICAgICAiMC4xODU2OTMsIDAuMjc4MzI3LCAwLjgxMjI5LCAxLjI4NTM3LCAxLjkxNjksIDMuMTc4MDEsIDMuOTY1NDciLCBcCi0gICAgICAgICAgIjAuMTkxNTM1LCAwLjI4MjI0OSwgMC44MTIzODMsIDEuMjg1NzQsIDEuOTE2MDUsIDMuMTc4MzgsIDMuOTY0ODYiLCBcCi0gICAgICAgICAgIjAuMTk3NzU4LCAwLjI4NzE4NywgMC44MTI2NjUsIDEuMjg1MjYsIDEuOTE3MDIsIDMuMTc3OTgsIDMuOTY1ODgiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTQ2ODY2LCAwLjIxMzcyMiwgMC41OTEyMjEsIDAuOTIzNzg5LCAxLjM2NzYsIDIuMjU0NjUsIDIuODA3OSIsIFwKLSAgICAgICAgICAiMC4xNTUwMTYsIDAuMjIxOTQzLCAwLjU5OTYwNiwgMC45MzIxNiwgMS4zNzUwNiwgMi4yNjIwMSwgMi44MTU1OCIsIFwKLSAgICAgICAgICAiMC4xNjQxNTksIDAuMjMxMDg1LCAwLjYwODc0LCAwLjk0MTQwOSwgMS4zODQ2LCAyLjI3MTIzLCAyLjgyNDg5IiwgXAotICAgICAgICAgICIwLjE3MzE2OSwgMC4yNDAxODYsIDAuNjE3ODg3LCAwLjk1MDk0OSwgMS4zOTM5MywgMi4yODEwMSwgMi44MzM5NiIsIFwKLSAgICAgICAgICAiMC4xODIxLCAwLjI0OTExOCwgMC42MjY5ODQsIDAuOTU5NzY2LCAxLjQwMjk1LCAyLjI4OTQsIDIuODQyOTIiLCBcCi0gICAgICAgICAgIjAuMTk2NDc1LCAwLjI2MzQ3NiwgMC42NDEzMjQsIDAuOTc0MDI1LCAxLjQxNzEsIDIuMzAzOTIsIDIuODU3NzMiLCBcCi0gICAgICAgICAgIjAuMjA5MDQ4LCAwLjI3NTk3MywgMC42NTM5MTIsIDAuOTg2NzUyLCAxLjQyOTcyLCAyLjMxNzU5LCAyLjg3MDE0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI1NTA4LCAwLjM4NDcwNCwgMS4xMjAyNSwgMS43Njg5NCwgMi42MzM1NCwgNC4zNjQ4NSwgNS40NDI4OSIsIFwKLSAgICAgICAgICAiMC4yNTUxNCwgMC4zODUwMzksIDEuMTIwMzMsIDEuNzY5MTgsIDIuNjM0NjEsIDQuMzYzNSwgNS40NDU4NCIsIFwKLSAgICAgICAgICAiMC4yNTUxMjIsIDAuMzg1MDQyLCAxLjEyMDUsIDEuNzY5MDQsIDIuNjMzNjcsIDQuMzY0MzksIDUuNDQ3MjkiLCBcCi0gICAgICAgICAgIjAuMjU1NzMyLCAwLjM4NTAxOSwgMS4xMjA0MSwgMS43NjksIDIuNjM0MDgsIDQuMzYzNywgNS40NDQ5NyIsIFwKLSAgICAgICAgICAiMC4yNTcxNDcsIDAuMzg1NDE3LCAxLjEyMDMzLCAxLjc2ODk1LCAyLjYzMzY2LCA0LjM2NDE5LCA1LjQ0NDg0IiwgXAotICAgICAgICAgICIwLjI2MDgxOSwgMC4zODc4NzIsIDEuMTE5OTMsIDEuNzY4OSwgMi42MzM1OSwgNC4zNjM0MywgNS40NDY0NiIsIFwKLSAgICAgICAgICAiMC4yNjQ5MTUsIDAuMzkwOTcxLCAxLjEyMDM5LCAxLjc2OTE1LCAyLjYzNTc2LCA0LjM2NTM5LCA1LjQ0NjA2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkExIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDA3NjUsIDAuMTQ3OTAyLCAwLjQxNTE2MiwgMC42NTA1NzMsIDAuOTY0NjgzLCAxLjU5MjYsIDEuOTg1NTQiLCBcCi0gICAgICAgICAgIjAuMTEwMzQ3LCAwLjE1NzUwNiwgMC40MjQ0ODQsIDAuNjYwMTQyLCAwLjk3NDQxNiwgMS42MDMwMSwgMS45OTQ5MSIsIFwKLSAgICAgICAgICAiMC4xMjA5NDgsIDAuMTY4MTU1LCAwLjQzNTE0MiwgMC42NzA1NzEsIDAuOTg1MjExLCAxLjYxMzcsIDIuMDA1ODUiLCBcCi0gICAgICAgICAgIjAuMTMxMDQ4LCAwLjE3ODM0OCwgMC40NDU0MDYsIDAuNjgxMDE0LCAwLjk5NTM1MiwgMS42MjMzNywgMi4wMTYzNCIsIFwKLSAgICAgICAgICAiMC4xNDEwMTQsIDAuMTg4MzAxLCAwLjQ1NTY5MSwgMC42OTExMDMsIDEuMDA0OTgsIDEuNjMzMjcsIDIuMDI2MzEiLCBcCi0gICAgICAgICAgIjAuMTU2ODQ5LCAwLjIwNDE2MSwgMC40NzE2MzEsIDAuNzA3MTk1LCAxLjAyMTI3LCAxLjY0OTkxLCAyLjA0MTQ2IiwgXAotICAgICAgICAgICIwLjE3MDY5NSwgMC4yMTgwNzcsIDAuNDg1NjMsIDAuNzIxMzMxLCAxLjAzNTYxLCAxLjY2NDU0LCAyLjA1NTUyIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE4MDE5OCwgMC4yNzU1NjgsIDAuODE2MTAzLCAxLjI5MzcsIDEuOTI4OTEsIDMuMjAwMjgsIDMuOTk0NDYiLCBcCi0gICAgICAgICAgIjAuMTgwMjM2LCAwLjI3NTU3NiwgMC44MTYxMjQsIDEuMjkzNCwgMS45Mjg4LCAzLjIwMDY0LCAzLjk5NDY2IiwgXAotICAgICAgICAgICIwLjE4MDQxNiwgMC4yNzU2NTksIDAuODE2MDkxLCAxLjI5MzA3LCAxLjkyODgxLCAzLjIwMTAyLCAzLjk5NTMzIiwgXAotICAgICAgICAgICIwLjE4MTgyLCAwLjI3NjAwMiwgMC44MTY1OTgsIDEuMjkzMTMsIDEuOTI5MTcsIDMuMTk5ODgsIDMuOTk0NjkiLCBcCi0gICAgICAgICAgIjAuMTg0NDA2LCAwLjI3NzQ2NywgMC44MTY0NCwgMS4yOTMzLCAxLjkyOTE2LCAzLjIwMDY1LCAzLjk5NDQxIiwgXAotICAgICAgICAgICIwLjE5MDE0LCAwLjI4MTYwMSwgMC44MTY0NywgMS4yOTMyLCAxLjkyODM5LCAzLjIwMDUxLCAzLjk5NDM3IiwgXAotICAgICAgICAgICIwLjE5NjQ2NCwgMC4yODY0NjIsIDAuODE3MDkxLCAxLjI5MzEzLCAxLjkyODg4LCAzLjIwMTQyLCAzLjk5NDM3Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE0NDkxNywgMC4yMTE3NDksIDAuNTg5NDcxLCAwLjkyMjMzMSwgMS4zNjU0NCwgMi4yNTE2NSwgMi44MDU0MyIsIFwKLSAgICAgICAgICAiMC4xNTMzOCwgMC4yMjAyNTQsIDAuNTk3NjM4LCAwLjkzMDEyOSwgMS4zNzMzOSwgMi4yNTk1OSwgMi44MTM4MyIsIFwKLSAgICAgICAgICAiMC4xNjM5NzksIDAuMjMwOTIyLCAwLjYwODQwMiwgMC45NDA5MzEsIDEuMzg0NTcsIDIuMjcxMzksIDIuODI0MDkiLCBcCi0gICAgICAgICAgIjAuMTc0NTQ1LCAwLjI0MTYyMSwgMC42MTkyMjUsIDAuOTUxNzIsIDEuMzk1NTEsIDIuMjgyNTcsIDIuODM1NzciLCBcCi0gICAgICAgICAgIjAuMTg1MjA3LCAwLjI1MjMzMywgMC42MzAxNjUsIDAuOTYyNjI1LCAxLjQwNTg3LCAyLjI5MjY1LCAyLjg0NjIzIiwgXAotICAgICAgICAgICIwLjIwMjI1MiwgMC4yNjkxNzEsIDAuNjQ3MTExLCAwLjk3OTk0MywgMS40MjMwMSwgMi4zMDk3OSwgMi44NjM4NiIsIFwKLSAgICAgICAgICAiMC4yMTczMjMsIDAuMjg0MDksIDAuNjYyMTMxLCAwLjk5NTE3MSwgMS40MzgxOSwgMi4zMjQzNSwgMi44Nzg0NSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yNTQ4NzEsIDAuMzg0NzM4LCAxLjEyMDM3LCAxLjc2ODk5LCAyLjYzMzY1LCA0LjM2NDMsIDUuNDQ3NyIsIFwKLSAgICAgICAgICAiMC4yNTQ4NCwgMC4zODUwMzIsIDEuMTE5OTgsIDEuNzY4MzgsIDIuNjM1NjQsIDQuMzYzMzUsIDUuNDQ0NjkiLCBcCi0gICAgICAgICAgIjAuMjU1MTE5LCAwLjM4NDcyMSwgMS4xMTk5NCwgMS43NjgzNywgMi42MzM2NywgNC4zNjM2LCA1LjQ0NDA1IiwgXAotICAgICAgICAgICIwLjI1NTg1MywgMC4zODQ3MDUsIDEuMTIwNjksIDEuNzY4NjUsIDIuNjMzNjIsIDQuMzYzODgsIDUuNDQyNDgiLCBcCi0gICAgICAgICAgIjAuMjU3Nzc5LCAwLjM4NTQyOCwgMS4xMjAyNSwgMS43Njg2OSwgMi42MzQ1MywgNC4zNjM0NCwgNS40NDQ3OSIsIFwKLSAgICAgICAgICAiMC4yNjMwNDEsIDAuMzg4MjI0LCAxLjExOTkzLCAxLjc2ODksIDIuNjM1NzcsIDQuMzYzNjIsIDUuNDQ0NzMiLCBcCi0gICAgICAgICAgIjAuMjY5MzQzLCAwLjM5MjY1MywgMS4xMjA3LCAxLjc2OTA5LCAyLjYzNDY0LCA0LjM2MzIyLCA1LjQ0NDMyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEyIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTY5NywgMC4xNDM2OTMsIDAuNDA4MTE2LCAwLjY0MTQyLCAwLjk1Mjg0OCwgMS41NzU4OCwgMS45NjQxMSIsIFwKLSAgICAgICAgICAiMC4xMDY1OTUsIDAuMTUzMzA1LCAwLjQxODAyNywgMC42NTE2MzEsIDAuOTYyODE1LCAxLjU4NDUxLCAxLjk3NTI1IiwgXAotICAgICAgICAgICIwLjExNzEzOCwgMC4xNjM4NzgsIDAuNDI4NDgzLCAwLjY2MTk0MSwgMC45NzM2OTIsIDEuNTk2MjMsIDEuOTgzODIiLCBcCi0gICAgICAgICAgIjAuMTI3MzM0LCAwLjE3NDIyOCwgMC40MzkxMzMsIDAuNjcyMjMzLCAwLjk4MzQwMSwgMS42MDYyNSwgMS45OTYwOCIsIFwKLSAgICAgICAgICAiMC4xMzczNDksIDAuMTg0MjEzLCAwLjQ0OTI1OSwgMC42ODI1MTksIDAuOTkzNTUyLCAxLjYxNjA0LCAyLjAwNTg0IiwgXAotICAgICAgICAgICIwLjE1MzI5NCwgMC4yMDAxMzQsIDAuNDY1MTk0LCAwLjY5ODkyOCwgMS4wMDk4MywgMS42MzIyOSwgMi4wMjE1MSIsIFwKLSAgICAgICAgICAiMC4xNjY5ODksIDAuMjE0MTc4LCAwLjQ3OTE1NiwgMC43MTI4MDksIDEuMDI0MDEsIDEuNjQ2NTgsIDIuMDM2MzMiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTc1NDQ0LCAwLjI2OTUyMywgMC44MDUxNjUsIDEuMjc3NTQsIDEuOTA2MjcsIDMuMTY0NjcsIDMuOTYzMTQiLCBcCi0gICAgICAgICAgIjAuMTc1MjI5LCAwLjI3MDEyNywgMC44MDQ2MzgsIDEuMjc2NDksIDEuOTA2OTksIDMuMTcyMjYsIDMuOTUzMDciLCBcCi0gICAgICAgICAgIjAuMTc1NjksIDAuMjY5ODYxLCAwLjgwNTcyOSwgMS4yODM5LCAxLjkwNTgyLCAzLjE2NDg5LCAzLjk1NDU3IiwgXAotICAgICAgICAgICIwLjE3Njg1LCAwLjI3MDY1LCAwLjgwNDQ4LCAxLjI3OTYsIDEuOTA5MTIsIDMuMTY1NTUsIDMuOTUxMzYiLCBcCi0gICAgICAgICAgIjAuMTc5NTM4LCAwLjI3MjE1OSwgMC44MDQ1NDYsIDEuMjc5ODMsIDEuOTEwNTUsIDMuMTY3NzYsIDMuOTUxODYiLCBcCi0gICAgICAgICAgIjAuMTg1NTI1LCAwLjI3NTkyNSwgMC44MDY1MDQsIDEuMjc2NjcsIDEuOTEwNjIsIDMuMTY3OTcsIDMuOTUyMjQiLCBcCi0gICAgICAgICAgIjAuMTkyMDQsIDAuMjgxMTExLCAwLjgwNzA4OSwgMS4yNzk2NSwgMS45MTA2LCAzLjE2NzcyLCAzLjk1MTI3Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE0MDcyOSwgMC4yMDc1MzksIDAuNTg0ODg1LCAwLjkxNzY4NCwgMS4zNjEyOCwgMi4yNDc5OCwgMi44MDE0OSIsIFwKLSAgICAgICAgICAiMC4xNDkxMzIsIDAuMjE2MDI0LCAwLjU5MzQwMywgMC45MjU4OTEsIDEuMzY5MTQsIDIuMjU1MzQsIDIuODA5NjMiLCBcCi0gICAgICAgICAgIjAuMTU4OTksIDAuMjI2NzQxLCAwLjYwNDI4NywgMC45MzY3OCwgMS4zODA0NCwgMi4yNjczMywgMi44MjA4NyIsIFwKLSAgICAgICAgICAiMC4xNzA4MjgsIDAuMjM3NDgyLCAwLjYxNTMwMiwgMC45NDgxNTksIDEuMzkxNzQsIDIuMjc4OCwgMi44MzE5MiIsIFwKLSAgICAgICAgICAiMC4xODE3NjMsIDAuMjQ4NjE1LCAwLjYyNjE5MSwgMC45NTg3NDQsIDEuNDAyMTIsIDIuMjg4NzYsIDIuODQyMjciLCBcCi0gICAgICAgICAgIjAuMTk5NjI4LCAwLjI2NjI2NSwgMC42NDM3ODYsIDAuOTc2NTgyLCAxLjQxOTU0LCAyLjMwNjA2LCAyLjg2MDE2IiwgXAotICAgICAgICAgICIwLjIxNTIxOSwgMC4yODE4NTQsIDAuNjU5MjI2LCAwLjk5MjAyNiwgMS40MzUwNiwgMi4zMjIyNiwgMi44NzU1MSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yNTUwODIsIDAuMzg0NzM0LCAxLjExOTkyLCAxLjc2ODk2LCAyLjYzMzYxLCA0LjM2NDkzLCA1LjQ0MjY0IiwgXAotICAgICAgICAgICIwLjI1NTA1NSwgMC4zODQ3OCwgMS4xMTk5NCwgMS43NjgzOSwgMi42MzU3MSwgNC4zNjMzNSwgNS40NDUxMyIsIFwKLSAgICAgICAgICAiMC4yNTUwODQsIDAuMzg0NzgzLCAxLjExOTkzLCAxLjc2OTA0LCAyLjYzMzY0LCA0LjM2MzY3LCA1LjQ0MjU2IiwgXAotICAgICAgICAgICIwLjI1NjE5NCwgMC4zODQ3NzgsIDEuMTIwNjgsIDEuNzY4OTUsIDIuNjMzNjIsIDQuMzYzODgsIDUuNDQyNDUiLCBcCi0gICAgICAgICAgIjAuMjU5MjE2LCAwLjM4NTk2MiwgMS4xMjAxMywgMS43Njg3MSwgMi42MzM1NiwgNC4zNjQxOCwgNS40NDQ5NiIsIFwKLSAgICAgICAgICAiMC4yNjY3NCwgMC4zODk5NjEsIDEuMTE5OTMsIDEuNzY4OTIsIDIuNjMzNTcsIDQuMzYzNTMsIDUuNDQ2MzIiLCBcCi0gICAgICAgICAgIjAuMjc0ODQ1LCAwLjM5NTkxOCwgMS4xMjAyMSwgMS43NjkxOSwgMi42MzQ3NywgNC4zNjM3OCwgNS40NDkxOCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDkzOTgxLCAwLjE0MDg3MywgMC40MDYxMDcsIDAuNjQxODk0LCAwLjk1NjA3NywgMS41ODM3LCAxLjk3NjQ3IiwgXAotICAgICAgICAgICIwLjEwMjk1NywgMC4xNDk5MDQsIDAuNDE1NDIsIDAuNjUwOTc1LCAwLjk2NTE3MiwgMS41OTM3OCwgMS45ODYyNiIsIFwKLSAgICAgICAgICAiMC4xMTQzOCwgMC4xNjEwNjcsIDAuNDI2OTY4LCAwLjY2MjUwMSwgMC45NzY3MjksIDEuNjA1NTMsIDEuOTk3MDQiLCBcCi0gICAgICAgICAgIjAuMTI1ODA0LCAwLjE3Mjc3NSwgMC40MzgwNDgsIDAuNjczNjI3LCAwLjk4NzYwMiwgMS42MTU5NywgMi4wMDg4NSIsIFwKLSAgICAgICAgICAiMC4xMzc0MTUsIDAuMTg0MjQsIDAuNDQ5NTU4LCAwLjY4NTI1MSwgMC45OTkwNzgsIDEuNjI3NDUsIDIuMDIwMDYiLCBcCi0gICAgICAgICAgIjAuMTU2MzQ0LCAwLjIwMjc5OSwgMC40NjcyMDksIDAuNzAzNTk0LCAxLjAxNzksIDEuNjQ1OTEsIDIuMDM4MDgiLCBcCi0gICAgICAgICAgIjAuMTcyODI5LCAwLjIxOTAxOCwgMC40ODQwNTIsIDAuNzE5OTYzLCAxLjAzMzcxLCAxLjY2MTU1LCAyLjA1NDg4Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE4MTg1MywgMC4yNzYzMTksIDAuODE2MTkyLCAxLjI5MzM4LCAxLjkyODkzLCAzLjIwMDE4LCAzLjk5NDYiLCBcCi0gICAgICAgICAgIjAuMTgxNjExLCAwLjI3NjIzOSwgMC44MTYwODIsIDEuMjkzMzcsIDEuOTI5MzEsIDMuMjAxMTcsIDMuOTk0OTYiLCBcCi0gICAgICAgICAgIjAuMTgyMTI3LCAwLjI3NjIyMSwgMC44MTYzNTgsIDEuMjkzMzQsIDEuOTI4ODMsIDMuMjAxNDgsIDMuOTk1MDYiLCBcCi0gICAgICAgICAgIjAuMTg1NDkzLCAwLjI3NzI2OSwgMC44MTYzMDksIDEuMjkzMjIsIDEuOTI5MTgsIDMuMjAxMTMsIDMuOTk0MyIsIFwKLSAgICAgICAgICAiMC4xOTA5MTYsIDAuMjgwMzY4LCAwLjgxNjU0NywgMS4yOTMxNiwgMS45MjkyOCwgMy4yMDExMSwgMy45OTQ3MyIsIFwKLSAgICAgICAgICAiMC4yMDA5NDUsIDAuMjg4MTMyLCAwLjgxNjE4NSwgMS4yOTMxMywgMS45Mjg4NSwgMy4yMDA2OSwgMy45OTQ3OCIsIFwKLSAgICAgICAgICAiMC4yMTEzODEsIDAuMjk2NDg3LCAwLjgxNjcwNiwgMS4yOTMzOCwgMS45MjgzOCwgMy4xOTk3NywgMy45OTQzNSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDg5NzYsIDAuMDczNzY0LCAwLjIxNDAyOSwgMC4zMzc3NzIsIDAuNTAyNzY5LCAwLjgzMjY1NiwgMS4wMzkwNCIsIFwKLSAgICAgICAgICAiMC4wNTkxNjYsIDAuMDg0MDM2LCAwLjIyNDE1NSwgMC4zNDc4MDYsIDAuNTEyNzksIDAuODQyNzE4LCAxLjA0ODkxIiwgXAotICAgICAgICAgICIwLjA3MjA1OSwgMC4wOTY1OTEsIDAuMjM2OTM2LCAwLjM2MDcxMiwgMC41MjUxODEsIDAuODU0MTc5LCAxLjA2MDU4IiwgXAotICAgICAgICAgICIwLjA4NTE0LCAwLjEwOTgxNSwgMC4yNDk4NzMsIDAuMzczNSwgMC41Mzg0NjQsIDAuODY3MDYyLCAxLjA3MzE2IiwgXAotICAgICAgICAgICIwLjA5ODEwNSwgMC4xMjI4NjgsIDAuMjYyODA4LCAwLjM4NjM4NCwgMC41NTEyMzMsIDAuODc5NTUsIDEuMDg1ODYiLCBcCi0gICAgICAgICAgIjAuMTE3MDY1LCAwLjE0MzcxMywgMC4yODI5MTIsIDAuNDA2MzU0LCAwLjU3MTgxMywgMC45MDE1OTcsIDEuMTA1OCIsIFwKLSAgICAgICAgICAiMC4xMzE1NDMsIDAuMTYxNTEyLCAwLjMwMDg5MywgMC40MjUyMDYsIDAuNTg5OSwgMC45MTk0NiwgMS4xMjU2MiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTYyNzIsIDAuMTQ1ODI0LCAwLjQyNzA2MywgMC42NzUzODYsIDEuMDA2OTgsIDEuNjY5OTksIDIuMDg3MTUiLCBcCi0gICAgICAgICAgIjAuMDk2NDY1LCAwLjE0NTgwOSwgMC40MjcwNTcsIDAuNjc1NDQ1LCAxLjAwNjgsIDEuNjcxMjEsIDIuMDg2OTUiLCBcCi0gICAgICAgICAgIjAuMTAwMTY3LCAwLjE0NzM5OSwgMC40MjcxMSwgMC42NzU1NTQsIDEuMDA2OTcsIDEuNjcwNzIsIDIuMDg0NTEiLCBcCi0gICAgICAgICAgIjAuMTA2MjQ2LCAwLjE1MTU4MywgMC40MjcxMTUsIDAuNjc1NDc1LCAxLjAwNjg4LCAxLjY3MDE2LCAyLjA4NDU4IiwgXAotICAgICAgICAgICIwLjExMzY1MSwgMC4xNTczNzYsIDAuNDI3NDUzLCAwLjY3NTU2MywgMS4wMDY4OSwgMS42NzAyMSwgMi4wODQ4NCIsIFwKLSAgICAgICAgICAiMC4xMjczODUsIDAuMTY4NTg2LCAwLjQzMTEwNCwgMC42NzU1MjQsIDEuMDA2OTQsIDEuNjcwMjQsIDIuMDg0OTkiLCBcCi0gICAgICAgICAgIjAuMTQwNTYzLCAwLjE3OTk2MiwgMC40MzYzOTYsIDAuNjc3MTk5LCAxLjAwNjg4LCAxLjY2OTcxLCAyLjA4NDk4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzIwOSwgMC4wMDMyMDksIDAuMDAzMjA5LCAwLjAwMzIwOCwgMC4wMDMyMDgsIDAuMDAzMjA3LCAwLjAwMzIwNyIsIFwKLSAgICAgICAgICAiMC4wMDMxOTcsIDAuMDAzMTk4LCAwLjAwMzE5OSwgMC4wMDMxOTksIDAuMDAzMTk5LCAwLjAwMzE5OCwgMC4wMDMxOTciLCBcCi0gICAgICAgICAgIjAuMDAzMTkyLCAwLjAwMzE5MywgMC4wMDMxOTYsIDAuMDAzMTk3LCAwLjAwMzE5NiwgMC4wMDMxOTYsIDAuMDAzMTk3IiwgXAotICAgICAgICAgICIwLjAwMzE4OCwgMC4wMDMxOTEsIDAuMDAzMTk2LCAwLjAwMzE5NiwgMC4wMDMxOTYsIDAuMDAzMTk2LCAwLjAwMzE5NSIsIFwKLSAgICAgICAgICAiMC4wMDMxODYsIDAuMDAzMTg5LCAwLjAwMzE5NSwgMC4wMDMxOTYsIDAuMDAzMTk2LCAwLjAwMzE5NiwgMC4wMDMxOTUiLCBcCi0gICAgICAgICAgIjAuMDAzMTgzLCAwLjAwMzE4NywgMC4wMDMxOTMsIDAuMDAzMTk1LCAwLjAwMzE5NSwgMC4wMDMxOTUsIDAuMDAzMTk1IiwgXAotICAgICAgICAgICIwLjAwMzE4MiwgMC4wMDMxODUsIDAuMDAzMTksIDAuMDAzMTk1LCAwLjAwMzE5NSwgMC4wMDMxOTUsIDAuMDAzMTk1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwNzEsIDAuMDAwNzEsIDAuMDAwNzEsIDAuMDAwNzEsIDAuMDAwNzA5LCAwLjAwMDcwOSwgMC4wMDA3MDciLCBcCi0gICAgICAgICAgIjAuMDAwNjg0LCAwLjAwMDY4NywgMC4wMDA2OTEsIDAuMDAwNjksIDAuMDAwNjksIDAuMDAwNjkyLCAwLjAwMDY4OCIsIFwKLSAgICAgICAgICAiMC4wMDA2NzIsIDAuMDAwNjc3LCAwLjAwMDY4NCwgMC4wMDA2ODUsIDAuMDAwNjg1LCAwLjAwMDY4NSwgMC4wMDA2ODUiLCBcCi0gICAgICAgICAgIjAuMDAwNjY0LCAwLjAwMDY3LCAwLjAwMDY4MSwgMC4wMDA2ODMsIDAuMDAwNjgzLCAwLjAwMDY4MywgMC4wMDA2ODMiLCBcCi0gICAgICAgICAgIjAuMDAwNjU3LCAwLjAwMDY2NSwgMC4wMDA2NzgsIDAuMDAwNjgsIDAuMDAwNjgyLCAwLjAwMDY4MiwgMC4wMDA2ODEiLCBcCi0gICAgICAgICAgIjAuMDAwNjUsIDAuMDAwNjU4LCAwLjAwMDY3NCwgMC4wMDA2NzgsIDAuMDAwNjc5LCAwLjAwMDY4MSwgMC4wMDA2OCIsIFwKLSAgICAgICAgICAiMC4wMDA2NDYsIDAuMDAwNjU0LCAwLjAwMDY3MSwgMC4wMDA2NzUsIDAuMDAwNjc4LCAwLjAwMDY3OSwgMC4wMDA2NzkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyODUzLCAwLjAwMjg1MywgMC4wMDI4NTMsIDAuMDAyODUyLCAwLjAwMjg1MywgMC4wMDI4NTMsIDAuMDAyODUyIiwgXAotICAgICAgICAgICIwLjAwMjg0NSwgMC4wMDI4NDgsIDAuMDAyODUyLCAwLjAwMjg1MywgMC4wMDI4NTMsIDAuMDAyODUzLCAwLjAwMjg1MiIsIFwKLSAgICAgICAgICAiMC4wMDI4MzcsIDAuMDAyODQyLCAwLjAwMjg1LCAwLjAwMjg1MSwgMC4wMDI4NTIsIDAuMDAyODUyLCAwLjAwMjg1NCIsIFwKLSAgICAgICAgICAiMC4wMDI4MjgsIDAuMDAyODM2LCAwLjAwMjg0NiwgMC4wMDI4NDksIDAuMDAyODUxLCAwLjAwMjg1MSwgMC4wMDI4NTIiLCBcCi0gICAgICAgICAgIjAuMDAyODIzLCAwLjAwMjgzMSwgMC4wMDI4NDUsIDAuMDAyODQ4LCAwLjAwMjg1LCAwLjAwMjg1MSwgMC4wMDI4NTEiLCBcCi0gICAgICAgICAgIjAuMDAyODE2LCAwLjAwMjgyNiwgMC4wMDI4NDMsIDAuMDAyODQ2LCAwLjAwMjg0OCwgMC4wMDI4NSwgMC4wMDI4NSIsIFwKLSAgICAgICAgICAiMC4wMDI4MTMsIDAuMDAyODIyLCAwLjAwMjg0MSwgMC4wMDI4NDUsIDAuMDAyODQ3LCAwLjAwMjg1LCAwLjAwMjg1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwNzExLCAwLjAwMDcxMSwgMC4wMDA3MTEsIDAuMDAwNzExLCAwLjAwMDcxLCAwLjAwMDcwOSwgMC4wMDA3MDgiLCBcCi0gICAgICAgICAgIjAuMDAwNjg2LCAwLjAwMDY4OCwgMC4wMDA2OTEsIDAuMDAwNjkyLCAwLjAwMDY5MSwgMC4wMDA2OSwgMC4wMDA2OSIsIFwKLSAgICAgICAgICAiMC4wMDA2NzMsIDAuMDAwNjc4LCAwLjAwMDY4NSwgMC4wMDA2ODYsIDAuMDAwNjg2LCAwLjAwMDY4OCwgMC4wMDA2ODYiLCBcCi0gICAgICAgICAgIjAuMDAwNjY1LCAwLjAwMDY3MSwgMC4wMDA2ODIsIDAuMDAwNjg0LCAwLjAwMDY4NSwgMC4wMDA2ODQsIDAuMDAwNjg0IiwgXAotICAgICAgICAgICIwLjAwMDY1OSwgMC4wMDA2NjYsIDAuMDAwNjc5LCAwLjAwMDY4MiwgMC4wMDA2ODMsIDAuMDAwNjgzLCAwLjAwMDY4MyIsIFwKLSAgICAgICAgICAiMC4wMDA2NTMsIDAuMDAwNjYsIDAuMDAwNjc1LCAwLjAwMDY3OSwgMC4wMDA2ODEsIDAuMDAwNjgyLCAwLjAwMDY4MiIsIFwKLSAgICAgICAgICAiMC4wMDA2NTIsIDAuMDAwNjU4LCAwLjAwMDY3NCwgMC4wMDA2NzcsIDAuMDAwNjc5LCAwLjAwMDY4MSwgMC4wMDA2ODEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyNDU5LCAwLjAwMjQ2LCAwLjAwMjQ2MiwgMC4wMDI0NjIsIDAuMDAyNDYyLCAwLjAwMjQ2MiwgMC4wMDI0NjIiLCBcCi0gICAgICAgICAgIjAuMDAyNDU3LCAwLjAwMjQ2MiwgMC4wMDI0NjksIDAuMDAyNDcxLCAwLjAwMjQ3MSwgMC4wMDI0NzIsIDAuMDAyNDcyIiwgXAotICAgICAgICAgICIwLjAwMjQ0NCwgMC4wMDI0NTYsIDAuMDAyNDYzLCAwLjAwMjQ2OSwgMC4wMDI0NzEsIDAuMDAyNDcyLCAwLjAwMjQ3MiIsIFwKLSAgICAgICAgICAiMC4wMDI0MzMsIDAuMDAyNDQ2LCAwLjAwMjQ2MywgMC4wMDI0NjcsIDAuMDAyNDY4LCAwLjAwMjQ3MSwgMC4wMDI0NzIiLCBcCi0gICAgICAgICAgIjAuMDAyNDI0LCAwLjAwMjQzNywgMC4wMDI0NiwgMC4wMDI0NjUsIDAuMDAyNDY4LCAwLjAwMjQ3MSwgMC4wMDI0NzIiLCBcCi0gICAgICAgICAgIjAuMDAyNDE0LCAwLjAwMjQyOCwgMC4wMDI0NTYsIDAuMDAyNDYyLCAwLjAwMjQ2NiwgMC4wMDI0NjksIDAuMDAyNDciLCBcCi0gICAgICAgICAgIjAuMDAyNDA4LCAwLjAwMjQyMiwgMC4wMDI0NTMsIDAuMDAyNDYsIDAuMDAyNDY2LCAwLjAwMjQ2OCwgMC4wMDI0NyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDcxLCAwLjAwMDcxMSwgMC4wMDA3MTEsIDAuMDAwNzEsIDAuMDAwNzExLCAwLjAwMDcwOSwgMC4wMDA3MDgiLCBcCi0gICAgICAgICAgIjAuMDAwNjgzLCAwLjAwMDY4NywgMC4wMDA2OSwgMC4wMDA2OTIsIDAuMDAwNjkxLCAwLjAwMDY5LCAwLjAwMDY5IiwgXAotICAgICAgICAgICIwLjAwMDY3LCAwLjAwMDY3NywgMC4wMDA2ODUsIDAuMDAwNjg2LCAwLjAwMDY4NiwgMC4wMDA2ODksIDAuMDAwNjg2IiwgXAotICAgICAgICAgICIwLjAwMDY2NSwgMC4wMDA2NywgMC4wMDA2ODIsIDAuMDAwNjgzLCAwLjAwMDY4NSwgMC4wMDA2ODQsIDAuMDAwNjg0IiwgXAotICAgICAgICAgICIwLjAwMDY2NCwgMC4wMDA2NywgMC4wMDA2OCwgMC4wMDA2ODMsIDAuMDAwNjg0LCAwLjAwMDY4NCwgMC4wMDA2ODMiLCBcCi0gICAgICAgICAgIjAuMDAwNjY5LCAwLjAwMDY3MSwgMC4wMDA2NzksIDAuMDAwNjgyLCAwLjAwMDY4MywgMC4wMDA2ODMsIDAuMDAwNjgzIiwgXAotICAgICAgICAgICIwLjAwMDY3OCwgMC4wMDA2NzcsIDAuMDAwNjgsIDAuMDAwNjgyLCAwLjAwMDY4MywgMC4wMDA2ODMsIDAuMDAwNjgzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjMyNywgMC4wMDIzMjksIDAuMDAyMzMxLCAwLjAwMjMzMiwgMC4wMDIzMzEsIDAuMDAyMzMxLCAwLjAwMjMzIiwgXAotICAgICAgICAgICIwLjAwMjMwNywgMC4wMDIzMTUsIDAuMDAyMzI2LCAwLjAwMjMyOCwgMC4wMDIzMjksIDAuMDAyMzI5LCAwLjAwMjMyOSIsIFwKLSAgICAgICAgICAiMC4wMDIyOTMsIDAuMDAyMywgMC4wMDIzMiwgMC4wMDIzMjQsIDAuMDAyMzI2LCAwLjAwMjMyNywgMC4wMDIzMjgiLCBcCi0gICAgICAgICAgIjAuMDAyMjg3LCAwLjAwMjI5NiwgMC4wMDIzMTYsIDAuMDAyMzIxLCAwLjAwMjMyNCwgMC4wMDIzMjYsIDAuMDAyMzI2IiwgXAotICAgICAgICAgICIwLjAwMjI4NiwgMC4wMDIyOTQsIDAuMDAyMzEzLCAwLjAwMjMxOSwgMC4wMDIzMjIsIDAuMDAyMzI0LCAwLjAwMjMyNSIsIFwKLSAgICAgICAgICAiMC4wMDIyOTQsIDAuMDAyMjk1LCAwLjAwMjMwOCwgMC4wMDIzMTYsIDAuMDAyMzIsIDAuMDAyMzIzLCAwLjAwMjMyMyIsIFwKLSAgICAgICAgICAiMC4wMDIzMDYsIDAuMDAyMzAxLCAwLjAwMjMxMSwgMC4wMDIzMTYsIDAuMDAyMzE5LCAwLjAwMjMyMiwgMC4wMDIzMjMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDAwNTEsIDAuMDAwMDU0LCAwLjAwMDA1NywgMC4wMDAwNTgsIDAuMDAwMDU4LCAwLjAwMDA1OCwgMC4wMDAwNTkiLCBcCi0gICAgICAgICAgIjAuMDAwMDQ0LCAwLjAwMDA1NSwgMC4wMDAwNywgMC4wMDAwNzMsIDAuMDAwMDc1LCAwLjAwMDA3NywgMC4wMDAwNzciLCBcCi0gICAgICAgICAgIjAuMDAwMDMxLCAwLjAwMDA0NSwgMC4wMDAwNjcsIDAuMDAwMDcyLCAwLjAwMDA3NywgMC4wMDAwOCwgMC4wMDAwODEiLCBcCi0gICAgICAgICAgIjAuMDAwMDIsIDAuMDAwMDM2LCAwLjAwMDA2MywgMC4wMDAwNywgMC4wMDAwNzQsIDAuMDAwMDc5LCAwLjAwMDA4IiwgXAotICAgICAgICAgICIwLjAwMDAxNiwgMC4wMDAwMzEsIDAuMDAwMDYsIDAuMDAwMDY4LCAwLjAwMDA3MywgMC4wMDAwNzgsIDAuMDAwMDgiLCBcCi0gICAgICAgICAgIjAuMDAwMDE5LCAwLjAwMDAzLCAwLjAwMDA1NywgMC4wMDAwNjYsIDAuMDAwMDcxLCAwLjAwMDA3NiwgMC4wMDAwNzkiLCBcCi0gICAgICAgICAgIjAuMDAwMDMsIDAuMDAwMDM1LCAwLjAwMDA1NiwgMC4wMDAwNjUsIDAuMDAwMDcxLCAwLjAwMDA3NSwgMC4wMDAwNzciKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBBT0kzMlgxICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKEFPSTMyWDEpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4xNzUxNDg7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA4NzM0MTU7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwODcxMDU1OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDg3MzQxNTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA0MDksIDAuMDAwNDA5LCAwLjAwMDQwOSwgMC4wMDA0MDksIDAuMDAwNDA5LCAwLjAwMDQwOCwgMC4wMDA0MDgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA0MSwgMC4wMDA0MSwgMC4wMDA0MSwgMC4wMDA0MSwgMC4wMDA0MSwgMC4wMDA0MSwgMC4wMDA0MSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQTEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDg5MDcwNzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA4ODc1NTk7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwODkwNzA3OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDQwOSwgMC4wMDA0MDksIDAuMDAwNDA5LCAwLjAwMDQwOSwgMC4wMDA0MDksIDAuMDAwNDA4LCAwLjAwMDQwOCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDQxLCAwLjAwMDQxLCAwLjAwMDQxLCAwLjAwMDQxLCAwLjAwMDQxLCAwLjAwMDQxLCAwLjAwMDQxMSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQTIpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDkwMzgxMTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA4OTc5OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDkwMzgxMTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyNTcsIDAuMDAwMjU3LCAwLjAwMDI1NywgMC4wMDAyNTcsIDAuMDAwMjU2LCAwLjAwMDI1NywgMC4wMDAyNTciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA0NjQsIDAuMDAwNDY1LCAwLjAwMDQ2NSwgMC4wMDA0NjUsIDAuMDAwNDY1LCAwLjAwMDQ2NCwgMC4wMDA0NjQiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA4ODA3MjQ7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwODgwNzI0OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDg3ODQyNDsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA0MDksIDAuMDAwNDA5LCAwLjAwMDQwOSwgMC4wMDA0MDksIDAuMDAwNDA5LCAwLjAwMDQwOSwgMC4wMDA0MDkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA0MTksIDAuMDAwNDExLCAwLjAwMDQxLCAwLjAwMDQxLCAwLjAwMDQxLCAwLjAwMDQxLCAwLjAwMDQxIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCMSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwODY4MjU3OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDg2Nzc0NjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA4NjgyNTc7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjI3LCAwLjAwMDIyNywgMC4wMDAyMjcsIDAuMDAwMjI3LCAwLjAwMDIyNywgMC4wMDAyMjcsIDAuMDAwMjI3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNDY0LCAwLjAwMDQ2NCwgMC4wMDA0NjQsIDAuMDAwNDY0LCAwLjAwMDQ2NSwgMC4wMDA0NjUsIDAuMDAwNDY0Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMDk5MDgwNzsKLSAgICBmdW5jdGlvbiA6ICIoISgoQjAgQjEpKygoQTAgQTEpIEEyKSkpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTEwMDIzLCAwLjE1NzAyNSwgMC40MjIzMTUsIDAuNjU2NjM2LCAwLjk2ODYzNCwgMS41OTIsIDEuOTgyMDIiLCBcCi0gICAgICAgICAgIjAuMTE5NzI2LCAwLjE2Njc0LCAwLjQzMjE4NCwgMC42NjYzNTEsIDAuOTc4NTgyLCAxLjYwMjQ5LCAxLjk5MTc4IiwgXAotICAgICAgICAgICIwLjEzMDcxOCwgMC4xNzc3NDYsIDAuNDQzMTkzLCAwLjY3NzA4MiwgMC45ODkwMDcsIDEuNjEyOTUsIDIuMDAyMDQiLCBcCi0gICAgICAgICAgIjAuMTQwOTY4LCAwLjE4ODAxLCAwLjQ1MzQ3NywgMC42ODc0NDQsIDAuOTk5NTU0LCAxLjYyMzI3LCAyLjAxMjI1IiwgXAotICAgICAgICAgICIwLjE1MTA2NSwgMC4xOTgwOTgsIDAuNDYzNTcxLCAwLjY5NzcwNSwgMS4wMDkyNywgMS42MzI5MSwgMi4wMjM3MSIsIFwKLSAgICAgICAgICAiMC4xNjcxMzUsIDAuMjE0MjM2LCAwLjQ3OTU5OCwgMC43MTM5MywgMS4wMjU1NCwgMS42NTAxMywgMi4wMzg2IiwgXAotICAgICAgICAgICIwLjE4MTAyLCAwLjIyODIzMiwgMC40OTM4MzQsIDAuNzI3OTA1LCAxLjAzOTc3LCAxLjY2MzI5LCAyLjA1Mzg0Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE5MDUyNCwgMC4yODU1NjcsIDAuODIzNDIsIDEuMjk4NjIsIDEuOTMxNzIsIDMuMTk4NjcsIDMuOTkwNjUiLCBcCi0gICAgICAgICAgIjAuMTkwNTMsIDAuMjg1NTA1LCAwLjgyMzgzOSwgMS4yOTg1MSwgMS45MzE2MiwgMy4xOTg5NywgMy45OTAyOSIsIFwKLSAgICAgICAgICAiMC4xOTA1MzYsIDAuMjg1NDYxLCAwLjgyMzcyNSwgMS4yOTg3MSwgMS45MzE0OSwgMy4xOTgyOCwgMy45OTEwMSIsIFwKLSAgICAgICAgICAiMC4xOTE2MzEsIDAuMjg1Njg0LCAwLjgyNDAwMywgMS4yOTg3MSwgMS45MzE0NiwgMy4xOTgxMSwgMy45OTA5MSIsIFwKLSAgICAgICAgICAiMC4xOTM3NjcsIDAuMjg2OTM5LCAwLjgyMzQ3NSwgMS4yOTg4NywgMS45MzExMSwgMy4yMDA5MiwgMy45OTE5MSIsIFwKLSAgICAgICAgICAiMC4xOTg5MDIsIDAuMjkwNTk1LCAwLjgyMzc2LCAxLjI5ODY0LCAxLjkzMTMzLCAzLjE5ODg5LCAzLjk5MDgxIiwgXAotICAgICAgICAgICIwLjIwNDQ1OSwgMC4yOTUwMzgsIDAuODI0MTExLCAxLjI5ODI3LCAxLjkzMTk3LCAzLjIwMDQ2LCAzLjk5MTI3Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE1NzAwMiwgMC4yMjM4OTksIDAuNjAxNTE0LCAwLjkzNDQ5NywgMS4zNzcwNywgMi4yNjQwMywgMi44MTc3IiwgXAotICAgICAgICAgICIwLjE2NTMwOCwgMC4yMzIyNjEsIDAuNjA5ODQxLCAwLjk0MjU4NiwgMS4zODYyMywgMi4yNzI0MywgMi44MjY2MSIsIFwKLSAgICAgICAgICAiMC4xNzQ1MjcsIDAuMjQxNTUxLCAwLjYxOTMwMSwgMC45NTIwMTUsIDEuMzk1MzIsIDIuMjgyMjIsIDIuODM1NzciLCBcCi0gICAgICAgICAgIjAuMTgzNDc4LCAwLjI1MDYwOSwgMC42MjgzMzYsIDAuOTYwOTE0LCAxLjQwNDY5LCAyLjI5MDk5LCAyLjg0NDQ4IiwgXAotICAgICAgICAgICIwLjE5MjQ1NywgMC4yNTk1MjUsIDAuNjM3Mzg0LCAwLjk3MDM3NCwgMS40MTM4NCwgMi4zMDA3MiwgMi44NTQiLCBcCi0gICAgICAgICAgIjAuMjA2NzU1LCAwLjI3MzgxOCwgMC42NTIwNTksIDAuOTg0NTc5LCAxLjQyNzgsIDIuMzE0NzYsIDIuODY4MzgiLCBcCi0gICAgICAgICAgIjAuMjE5MjUzLCAwLjI4NjQyOSwgMC42NjQ2MTUsIDAuOTk3MTk0LCAxLjQ0MDUsIDIuMzI4MjEsIDIuODgwNjMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjcxOTIzLCAwLjQwMTc5OCwgMS4xMzcwNSwgMS43ODU1NCwgMi42NTAwMSwgNC4zNzg3MiwgNS40NjA3OSIsIFwKLSAgICAgICAgICAiMC4yNzE5MTIsIDAuNDAxNzU1LCAxLjEzNzEzLCAxLjc4NTU2LCAyLjY1LCA0LjM3ODQ1LCA1LjQ2MTQ4IiwgXAotICAgICAgICAgICIwLjI3MTg3MywgMC40MDE3NTQsIDEuMTM3MTEsIDEuNzg1NDMsIDIuNjUwMiwgNC4zNzg5OSwgNS40NjE5NiIsIFwKLSAgICAgICAgICAiMC4yNzIzODYsIDAuNDAxODA4LCAxLjEzNzExLCAxLjc4NTU3LCAyLjY0OTg5LCA0LjM4MDU0LCA1LjQ2MTg0IiwgXAotICAgICAgICAgICIwLjI3MzU5MiwgMC40MDIxOTYsIDEuMTM3MTIsIDEuNzg1NSwgMi42NSwgNC4zNzg4MywgNS40NjEzNyIsIFwKLSAgICAgICAgICAiMC4yNzcwMjIsIDAuNDA0MjI2LCAxLjEzNzExLCAxLjc4NTM1LCAyLjY0OTk0LCA0LjM3ODgyLCA1LjQ2MDk2IiwgXAotICAgICAgICAgICIwLjI4MTExOCwgMC40MDcwNjQsIDEuMTM3MDgsIDEuNzg1NDMsIDIuNjUwMDgsIDQuMzc4ODQsIDUuNDYxMSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTA4MDI4LCAwLjE1NTE0OSwgMC40MjE5OTYsIDAuNjU3NTk3LCAwLjk3MTUyOSwgMS41OTkzMiwgMS45OTEyIiwgXAotICAgICAgICAgICIwLjExNzc3LCAwLjE2NTAxNCwgMC40MzIwNzksIDAuNjY3MzkyLCAwLjk4MTY3NSwgMS42MDk1OSwgMi4wMDE0OSIsIFwKLSAgICAgICAgICAiMC4xMjg3NTIsIDAuMTc1OTgyLCAwLjQ0MjkyOCwgMC42NzgzNTUsIDAuOTkyMTMsIDEuNjIwMDgsIDIuMDExNTQiLCBcCi0gICAgICAgICAgIjAuMTM5MTAxLCAwLjE4NjM3MiwgMC40NTMzNywgMC42ODg2NjYsIDEuMDAyOCwgMS42MzAyLCAyLjAyMzQ0IiwgXAotICAgICAgICAgICIwLjE0OTE0NywgMC4xOTY0MDksIDAuNDYzNDQxLCAwLjY5ODc0NCwgMS4wMTMwNCwgMS42Mzk4NiwgMi4wMzI3OCIsIFwKLSAgICAgICAgICAiMC4xNjUwNzQsIDAuMjEyMzY2LCAwLjQ3OTczLCAwLjcxNDk1MSwgMS4wMjg5LCAxLjY1NjIsIDIuMDQ5MzMiLCBcCi0gICAgICAgICAgIjAuMTc5MDEyLCAwLjIyNjM0NCwgMC40OTM2NDEsIDAuNzI5NDg2LCAxLjA0MywgMS42NzAzNCwgMi4wNjM1OSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xODg1NDYsIDAuMjg0MDk4LCAwLjgyNTk0OCwgMS4zMDM0NSwgMS45NDAxMSwgMy4yMTUwMywgNC4wMTEzNCIsIFwKLSAgICAgICAgICAiMC4xODg1ODcsIDAuMjg0MDk2LCAwLjgyNTkyNCwgMS4zMDMzNywgMS45NDAxNiwgMy4yMTU5NSwgNC4wMTEwOCIsIFwKLSAgICAgICAgICAiMC4xODg1MTQsIDAuMjg0MDY3LCAwLjgyNTU2MiwgMS4zMDM3OSwgMS45NDA2NCwgMy4yMTM4NywgNC4wMTI3NiIsIFwKLSAgICAgICAgICAiMC4xODk1MDIsIDAuMjg0MjE5LCAwLjgyNjE5NSwgMS4zMDMzOCwgMS45Mzk4MiwgMy4yMTQyOSwgNC4wMTE5MiIsIFwKLSAgICAgICAgICAiMC4xOTE2OTEsIDAuMjg1NTUxLCAwLjgyNTgwOSwgMS4zMDMzLCAxLjk0MDAyLCAzLjIxMzY5LCA0LjAxMDgzIiwgXAotICAgICAgICAgICIwLjE5Njg3MywgMC4yODkxMjEsIDAuODI1NjQsIDEuMzAzMzYsIDEuOTQwNjUsIDMuMjE0NDgsIDQuMDExMTQiLCBcCi0gICAgICAgICAgIjAuMjAyODAxLCAwLjI5MzY4MywgMC44MjU4ODEsIDEuMzAzNzEsIDEuOTQwMzksIDMuMjEzNjcsIDQuMDExNjgiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTU0ODgzLCAwLjIyMTkwNywgMC41OTkzNzMsIDAuOTMyMjg3LCAxLjM3NTE4LCAyLjI2MTgsIDIuODE1ODQiLCBcCi0gICAgICAgICAgIjAuMTYzNDc2LCAwLjIzMDQzNSwgMC42MDc5MTQsIDAuOTQwNDQ4LCAxLjM4MzU5LCAyLjI3MDQ3LCAyLjgyMzgiLCBcCi0gICAgICAgICAgIjAuMTc0MTE1LCAwLjI0MTIxMywgMC42MTkwMDYsIDAuOTUxNTQ0LCAxLjM5NTU2LCAyLjI4MjI5LCAyLjgzNTQ0IiwgXAotICAgICAgICAgICIwLjE4NDYwOSwgMC4yNTE3MTcsIDAuNjI5Njc4LCAwLjk2MjAzMSwgMS40MDU4NiwgMi4yOTMwMiwgMi44NDYxNSIsIFwKLSAgICAgICAgICAiMC4xOTUyMTIsIDAuMjYyMzA0LCAwLjY0MDE4MSwgMC45NzI4MywgMS40MTYxNywgMi4zMDI4NiwgMi44NTY0NiIsIFwKLSAgICAgICAgICAiMC4yMTIxNjYsIDAuMjc5MzM1LCAwLjY1NzM2LCAwLjk5MDIzNCwgMS40MzMzOSwgMi4zMjAyMSwgMi44NzQ0NyIsIFwKLSAgICAgICAgICAiMC4yMjcyNDcsIDAuMjk0MzgyLCAwLjY3MjM4MiwgMS4wMDU1MiwgMS40NDg1MywgMi4zMzQ3NiwgMi44ODg3OSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yNzE5MzIsIDAuNDAxNzMxLCAxLjEzNzEyLCAxLjc4NTM4LCAyLjY1MDE1LCA0LjM3OTA4LCA1LjQ2MDMyIiwgXAotICAgICAgICAgICIwLjI3MTkxNSwgMC40MDE2OTIsIDEuMTM3MDIsIDEuNzg1NTQsIDIuNjUwMDQsIDQuMzc4NTksIDUuNDU4NDUiLCBcCi0gICAgICAgICAgIjAuMjcxOTA1LCAwLjQwMTczOSwgMS4xMzcwNywgMS43ODU1OSwgMi42NDk5MiwgNC4zNzg5NCwgNS40NjAwMiIsIFwKLSAgICAgICAgICAiMC4yNzI0MzcsIDAuNDAxNzU2LCAxLjEzNzA3LCAxLjc4NTEzLCAyLjY1MDEsIDQuMzc4NzksIDUuNDYyMjMiLCBcCi0gICAgICAgICAgIjAuMjc0MTM4LCAwLjQwMjE4OCwgMS4xMzcxMSwgMS43ODU2MywgMi42NDk1MiwgNC4zNzg2OSwgNS40NjEwMyIsIFwKLSAgICAgICAgICAiMC4yNzg5NjksIDAuNDA0ODI1LCAxLjEzNzExLCAxLjc4NTQzLCAyLjY0OTYyLCA0LjM3ODY3LCA1LjQ1OTMyIiwgXAotICAgICAgICAgICIwLjI4NDgwNSwgMC40MDg3NzksIDEuMTM3MDUsIDEuNzg1NDQsIDIuNjUwMDQsIDQuMzc4NzIsIDUuNDYyMTYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTIiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwNDc4LCAwLjE1MjAwMywgMC40MTg2ODEsIDAuNjUzODY0LCAwLjk2ODIxNiwgMS41OTYyMywgMS45ODc4NyIsIFwKLSAgICAgICAgICAiMC4xMTQ2MTgsIDAuMTYxODIxLCAwLjQyODcyNSwgMC42NjQwODUsIDAuOTc3ODgsIDEuNjA2MjksIDEuOTk3OTgiLCBcCi0gICAgICAgICAgIjAuMTI1NTgzLCAwLjE3Mjc5NCwgMC40Mzk2ODMsIDAuNjc1MDc0LCAwLjk4ODUzMywgMS42MTY4MywgMi4wMDkwMyIsIFwKLSAgICAgICAgICAiMC4xMzU3NTMsIDAuMTgyOTkzLCAwLjQ0OTk1NiwgMC42ODUyMTQsIDAuOTk5NDI4LCAxLjYyNzE4LCAyLjAxODQ0IiwgXAotICAgICAgICAgICIwLjE0NTc4LCAwLjE5MzA0NSwgMC40NjAyOTEsIDAuNjk1NDEzLCAxLjAwOTMyLCAxLjYzNzQyLCAyLjAyOTUyIiwgXAotICAgICAgICAgICIwLjE2MTc3NiwgMC4yMDkxMTEsIDAuNDc2MjY0LCAwLjcxMTgwNiwgMS4wMjUzNywgMS42NTM5MSwgMi4wNDQ1NyIsIFwKLSAgICAgICAgICAiMC4xNzU1NiwgMC4yMjI5NiwgMC40OTAyNDQsIDAuNzI1NzY5LCAxLjAzOTU0LCAxLjY2Njg4LCAyLjA2MDA1Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE4NDg0OSwgMC4yODAzMTUsIDAuODIyMDE1LCAxLjI5OTczLCAxLjkzNjUsIDMuMjEwMDUsIDQuMDA0MzEiLCBcCi0gICAgICAgICAgIjAuMTg0NzA4LCAwLjI4MDMwMiwgMC44MjE2MzcsIDEuMjk5MywgMS45MzU2NCwgMy4yMDk0OSwgNC4wMDQyIiwgXAotICAgICAgICAgICIwLjE4NDg1OCwgMC4yODAyOTUsIDAuODIxNTc0LCAxLjI5OTc0LCAxLjkzNjEsIDMuMjA4ODcsIDQuMDA1MDciLCBcCi0gICAgICAgICAgIjAuMTg1ODk2LCAwLjI4MDQzLCAwLjgyMTkyOSwgMS4yOTkyMywgMS45MzYyMiwgMy4yMDg4OSwgNC4wMDQyOSIsIFwKLSAgICAgICAgICAiMC4xODgyNTUsIDAuMjgxNzc0LCAwLjgyMjA0NywgMS4yOTkzMSwgMS45MzY1LCAzLjIwOTM2LCA0LjAwNDk3IiwgXAotICAgICAgICAgICIwLjE5MzY4OCwgMC4yODU1OTcsIDAuODIxNzU2LCAxLjI5OTg4LCAxLjkzNjI2LCAzLjIxMTA1LCA0LjAwNDYiLCBcCi0gICAgICAgICAgIjAuMTk5MzY1LCAwLjI5MDA3LCAwLjgyMTk2OSwgMS4yOTkzLCAxLjkzNjIsIDMuMjA4MzksIDQuMDA1MDgiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTUwMjkxLCAwLjIxNzE0OSwgMC41OTQ4MTQsIDAuOTI3NjQzLCAxLjM3MDk5LCAyLjI1NjQ5LCAyLjgxMDgiLCBcCi0gICAgICAgICAgIjAuMTU4NzI5LCAwLjIyNTY4NCwgMC42MDMzMzEsIDAuOTM1ODIzLCAxLjM3ODk2LCAyLjI2NTE5LCAyLjgxOTUxIiwgXAotICAgICAgICAgICIwLjE2OTYyNywgMC4yMzY3MTksIDAuNjE0Mjg5LCAwLjk0NjgzMiwgMS4zOTAzNywgMi4yNzc4NSwgMi44MzA5NCIsIFwKLSAgICAgICAgICAiMC4xODAzNTEsIDAuMjQ3NDM1LCAwLjYyNTE0OCwgMC45NTc2NTMsIDEuNDAxNDQsIDIuMjg4MzcsIDIuODQxNzMiLCBcCi0gICAgICAgICAgIjAuMTkxMzMyLCAwLjI1ODM1LCAwLjYzNjE2NiwgMC45Njg2ODIsIDEuNDEyMDQsIDIuMjk4OCwgMi44NTIyOSIsIFwKLSAgICAgICAgICAiMC4yMDkwNTksIDAuMjc1OTU3LCAwLjY1MzYwOCwgMC45ODY0MTgsIDEuNDI5NTEsIDIuMzE2MjIsIDIuODcwMzgiLCBcCi0gICAgICAgICAgIjAuMjI0ODAxLCAwLjI5MTQ2OSwgMC42NjkwNTIsIDEuMDAyLCAxLjQ0NTMyLCAyLjMzMjE4LCAyLjg4NTE4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI3MTkzNiwgMC40MDE3OTgsIDEuMTM3MDksIDEuNzg1MywgMi42NTAwOCwgNC4zNzkwNiwgNS40NTkxMSIsIFwKLSAgICAgICAgICAiMC4yNzE5MjksIDAuNDAxNzUsIDEuMTM2OTQsIDEuNzg1NDIsIDIuNjUwMDQsIDQuMzc4NjQsIDUuNDU4ODQiLCBcCi0gICAgICAgICAgIjAuMjcxOTIyLCAwLjQwMTc5MywgMS4xMzcxLCAxLjc4NTEyLCAyLjY0OTg1LCA0LjM3OTA2LCA1LjQ2MTc3IiwgXAotICAgICAgICAgICIwLjI3MjY4NywgMC40MDE2OSwgMS4xMzcxNCwgMS43ODUzNiwgMi42NDk1MSwgNC4zNzg2NCwgNS40NjIxMyIsIFwKLSAgICAgICAgICAiMC4yNzU0LCAwLjQwMjQyOCwgMS4xMzY5NiwgMS43ODU2MiwgMi42NDk5NywgNC4zNzg3LCA1LjQ2MDM5IiwgXAotICAgICAgICAgICIwLjI4MjM0MSwgMC40MDYzMjMsIDEuMTM3MTUsIDEuNzg1NDcsIDIuNjQ5NTgsIDQuMzc4NjUsIDUuNDYwNDIiLCBcCi0gICAgICAgICAgIjAuMjkwNDQsIDAuNDExOTMsIDEuMTM2OTQsIDEuNzg1NDEsIDIuNjUwMDMsIDQuMzc4ODYsIDUuNDYwNTEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjAiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5ODc1NywgMC4xNDU3NjMsIDAuNDExMjk0LCAwLjY0NTkzOSwgMC45NTk5MzUsIDEuNTg3NDUsIDEuOTc5NzgiLCBcCi0gICAgICAgICAgIjAuMTA3ODE5LCAwLjE1NDgyMiwgMC40MjAyNzYsIDAuNjU1MDA4LCAwLjk2OTA0MiwgMS41OTcxMywgMS45ODg2MyIsIFwKLSAgICAgICAgICAiMC4xMTk0NDMsIDAuMTY2MjYxLCAwLjQzMTk2OCwgMC42NjY4MTEsIDAuOTgwMjYyLCAxLjYwODE5LCAyLjAwMDU1IiwgXAotICAgICAgICAgICIwLjEzMDY2MywgMC4xNzc2MzQsIDAuNDQzMTAzLCAwLjY3Nzg5MiwgMC45OTIxMjgsIDEuNjE5OTcsIDIuMDExMDciLCBcCi0gICAgICAgICAgIjAuMTQyMzIzLCAwLjE4OTIzNCwgMC40NTQ3MDIsIDAuNjg5MzExLCAxLjAwMzgxLCAxLjYzMTI3LCAyLjAyMzI5IiwgXAotICAgICAgICAgICIwLjE2MTI4OSwgMC4yMDc3NzQsIDAuNDczMjk1LCAwLjcwNzgxOSwgMS4wMjE1NSwgMS42NTAzNywgMi4wNDE0OSIsIFwKLSAgICAgICAgICAiMC4xNzc4NjcsIDAuMjI0MTM3LCAwLjQ4OTMxNSwgMC43MjQxNzksIDEuMDM4MjIsIDEuNjY0OTksIDIuMDU4MjEiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTkwNDY4LCAwLjI4NTU5MywgMC44MjU2NTcsIDEuMzAzNDIsIDEuOTQwMiwgMy4yMTMyMSwgNC4wMDg3NiIsIFwKLSAgICAgICAgICAiMC4xOTA1MTEsIDAuMjg1NjE1LCAwLjgyNjA1MiwgMS4zMDMzNCwgMS45NDAyNSwgMy4yMTQxNCwgNC4wMDkxOSIsIFwKLSAgICAgICAgICAiMC4xOTA2MjQsIDAuMjg1MzI0LCAwLjgyNTU0MywgMS4zMDQyMiwgMS45NDAxOCwgMy4yMTMxMSwgNC4wMDk1IiwgXAotICAgICAgICAgICIwLjE5MzcyNywgMC4yODYxMDYsIDAuODI1ODE0LCAxLjMwMzY2LCAxLjk0MDE1LCAzLjIxNDE3LCA0LjAwODg0IiwgXAotICAgICAgICAgICIwLjE5ODc2MiwgMC4yODkxMDIsIDAuODI2MDU0LCAxLjMwMzQsIDEuOTQwMjQsIDMuMjEzMjYsIDQuMDA4NjgiLCBcCi0gICAgICAgICAgIjAuMjA4NDM2LCAwLjI5NjM1NCwgMC44MjU5MjksIDEuMzAzNDIsIDEuOTQwNDksIDMuMjE0NTUsIDQuMDA5MDQiLCBcCi0gICAgICAgICAgIjAuMjE4NTk3LCAwLjMwNDYxNiwgMC44MjYwMTcsIDEuMzA0MjQsIDEuOTQwMDEsIDMuMjEyNywgNC4wMDk2MSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTE4ODUsIDAuMTM3NTcxLCAwLjM5NjE4MiwgMC42MjQzNDgsIDAuOTI4NTgyLCAxLjUzNjY0LCAxLjkxNjM4IiwgXAotICAgICAgICAgICIwLjEwMTA2MywgMC4xNDY3ODcsIDAuNDA1NTE3LCAwLjYzMzY0MiwgMC45Mzc3MzgsIDEuNTQ1NzksIDEuOTI1NzEiLCBcCi0gICAgICAgICAgIjAuMTExOTYsIDAuMTU3ODI2LCAwLjQxNjY0MSwgMC42NDQ4ODksIDAuOTQ4OTI2LCAxLjU1NzIsIDEuOTM2OTYiLCBcCi0gICAgICAgICAgIjAuMTIyNzc2LCAwLjE2ODcwNSwgMC40Mjc4MzcsIDAuNjU2MDE4LCAwLjk2MDIxNSwgMS41NjgzNiwgMS45NDkwOSIsIFwKLSAgICAgICAgICAiMC4xMzM2NzgsIDAuMTc5NjMsIDAuNDM4ODU1LCAwLjY2NzEwMiwgMC45NzEzNjgsIDEuNTc5MzMsIDEuOTU5MjUiLCBcCi0gICAgICAgICAgIjAuMTUwOTQ5LCAwLjE5NzAyMywgMC40NTYwMSwgMC42ODQ4ODUsIDAuOTg5MDA3LCAxLjU5NzA5LCAxLjk3NzEiLCBcCi0gICAgICAgICAgIjAuMTY2MjIxLCAwLjIxMjg1MywgMC40NzE3ODIsIDAuNzAwMjA5LCAxLjAwNDM2LCAxLjYxMjQ3LCAxLjk5MjUyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE3ODUyNywgMC4yNjgwNjIsIDAuNzc2MDM2LCAxLjIyNDc5LCAxLjgyNzIxLCAzLjAzMzUzLCAzLjc2ODUxIiwgXAotICAgICAgICAgICIwLjE3ODUzMSwgMC4yNjgwNSwgMC43NzYxMDcsIDEuMjI0OCwgMS44MjI2OSwgMy4wMjA2MSwgMy43NzE4OSIsIFwKLSAgICAgICAgICAiMC4xNzg5ODUsIDAuMjY4MDYxLCAwLjc3NjE0MSwgMS4yMjQ5MSwgMS44MjMxNSwgMy4wMjA1NywgMy43NzEwNiIsIFwKLSAgICAgICAgICAiMC4xODExMjEsIDAuMjY4ODMyLCAwLjc3NjIxOCwgMS4yMjQ4LCAxLjgyMzg4LCAzLjAzMTM3LCAzLjc2ODMiLCBcCi0gICAgICAgICAgIjAuMTg0NjgxLCAwLjI3MDg2NywgMC43NzYxOTcsIDEuMjI0OCwgMS44MjU3NywgMy4wMjAzNywgMy43NzMzOCIsIFwKLSAgICAgICAgICAiMC4xOTIwMTMsIDAuMjc2MDYyLCAwLjc3NTk5NiwgMS4yMjQ4NywgMS44MjMxNiwgMy4wMjA3NCwgMy43NzI2NiIsIFwKLSAgICAgICAgICAiMC4yMDAwNDQsIDAuMjgyNTU4LCAwLjc3NjY0NiwgMS4yMjQ4LCAxLjgyMzMsIDMuMDIwNCwgMy43NzI0MSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk1ODExLCAwLjE0Mjg1MSwgMC40MDg3NDIsIDAuNjQzNzQ0LCAwLjk1ODA0OCwgMS41ODYzMywgMS45Nzk5NSIsIFwKLSAgICAgICAgICAiMC4xMDQ4NzUsIDAuMTUxOTY3LCAwLjQxNzc0LCAwLjY1MjYyNiwgMC45NjY3ODcsIDEuNTk2MywgMS45ODgzNSIsIFwKLSAgICAgICAgICAiMC4xMTYxNzEsIDAuMTYzMDE4LCAwLjQyOTAzOSwgMC42NjM5MjcsIDAuOTc4NDk0LCAxLjYwNjk4LCAxLjk5OTU5IiwgXAotICAgICAgICAgICIwLjEyNzY1NywgMC4xNzQ3NDYsIDAuNDQwNTk2LCAwLjY3NTM3MiwgMC45OTAzNzksIDEuNjE5MTIsIDIuMDEwOCIsIFwKLSAgICAgICAgICAiMC4xMzkzMDIsIDAuMTg2MzExLCAwLjQ1MjE3OCwgMC42ODcxMDksIDEuMDAyMDUsIDEuNjMwNDIsIDIuMDIzMDIiLCBcCi0gICAgICAgICAgIjAuMTU4MjIyLCAwLjIwNDc1OCwgMC40NzA1ODIsIDAuNzA1OTEyLCAxLjAxOTc5LCAxLjY0OTE0LCAyLjA0MDkxIiwgXAotICAgICAgICAgICIwLjE3NDY3MywgMC4yMjEwMjYsIDAuNDg2NzM1LCAwLjcyMTk0NSwgMS4wMzU5LCAxLjY2NTMzLCAyLjA1Nzg3Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE4NzExLCAwLjI4MjMzNCwgMC44MjI4NTYsIDEuMzAyMDEsIDEuOTM5OCwgMy4yMTM5OSwgNC4wMTIwNyIsIFwKLSAgICAgICAgICAiMC4xODcwNDgsIDAuMjgyMjk5LCAwLjgyMzUyMSwgMS4zMDE1LCAxLjkzOTQ1LCAzLjIxNDcyLCA0LjAxMTE0IiwgXAotICAgICAgICAgICIwLjE4NzM1NiwgMC4yODE5NDQsIDAuODIzMjUyLCAxLjMwMTQzLCAxLjkzODc2LCAzLjIxMzk1LCA0LjAxMTM3IiwgXAotICAgICAgICAgICIwLjE5MDc5MiwgMC4yODMxNjgsIDAuODIzMTksIDEuMzAxNzYsIDEuOTM5MiwgMy4yMTUxOCwgNC4wMTEwMyIsIFwKLSAgICAgICAgICAiMC4xOTU3MTcsIDAuMjg1ODYsIDAuODIzNDIzLCAxLjMwMTQ5LCAxLjkzOTMsIDMuMjE0NDksIDQuMDEwNjEiLCBcCi0gICAgICAgICAgIjAuMjA1NTM5LCAwLjI5MzU4NywgMC44MjMwOTMsIDEuMzAyMSwgMS45Mzk1MiwgMy4yMTQ2MiwgNC4wMTIzIiwgXAotICAgICAgICAgICIwLjIxNTgzMiwgMC4zMDE2NjgsIDAuODIzMzUxLCAxLjMwMjIsIDEuOTM5NDUsIDMuMjE0NjMsIDQuMDExNjIiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg5NDgsIDAuMTM1MTYzLCAwLjM5Mzc4OCwgMC42MjE5MzksIDAuOTI2MTM2LCAxLjUzNDEyLCAxLjkxNDM0IiwgXAotICAgICAgICAgICIwLjA5ODc4NywgMC4xNDQ1MjcsIDAuNDAzMjYxLCAwLjYzMTQzMiwgMC45MzU2MTYsIDEuNTQzNjYsIDEuOTIzNDYiLCBcCi0gICAgICAgICAgIjAuMTEwNDM1LCAwLjE1NTM0OSwgMC40MTUwOTksIDAuNjQzMzMxLCAwLjk0NzQ1NCwgMS41NTU4MSwgMS45MzU3NiIsIFwKLSAgICAgICAgICAiMC4xMjE4ODQsIDAuMTY3NjcyLCAwLjQyNjUyOCwgMC42NTQ3MjIsIDAuOTU4ODcxLCAxLjU2NzIxLCAxLjk0NzIyIiwgXAotICAgICAgICAgICIwLjEzMzk1NCwgMC4xNzkzODIsIDAuNDM4MjU5LCAwLjY2NjQ2MywgMC45NzA2NzMsIDEuNTc4ODcsIDEuOTU4NTYiLCBcCi0gICAgICAgICAgIjAuMTUzMDUzLCAwLjE5ODIyOCwgMC40NTQ0NzMsIDAuNjg1MTU3LCAwLjk4OTMwMSwgMS41OTczOCwgMS45NzcyNyIsIFwKLSAgICAgICAgICAiMC4xNjk4MjksIDAuMjE1MzA5LCAwLjQ3MzMyOCwgMC43MDE1NjQsIDEuMDA1NjYsIDEuNjEzOTMsIDEuOTkzOSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNzg1MzIsIDAuMjY4MDM2LCAwLjc3NjE5LCAxLjIyNDkzLCAxLjgyMzQsIDMuMDIwNTQsIDMuNzcyNjUiLCBcCi0gICAgICAgICAgIjAuMTc4NTMzLCAwLjI2ODA3LCAwLjc3NjAwMSwgMS4yMjQ4OSwgMS44MjMzMSwgMy4wMjA0MSwgMy43NzMzIiwgXAotICAgICAgICAgICIwLjE3OTMxNCwgMC4yNjgwMywgMC43NzYwMjQsIDEuMjI0ODcsIDEuODIzMzMsIDMuMDIwNDMsIDMuNzczOTMiLCBcCi0gICAgICAgICAgIjAuMTgyOTQsIDAuMjY5MzE1LCAwLjc3NjAyNCwgMS4yMjQ4NCwgMS44MjMzLCAzLjAyMDM4LCAzLjc3MzcxIiwgXAotICAgICAgICAgICIwLjE4Nzk5OSwgMC4yNzI1MTIsIDAuNzc2MDM5LCAxLjIyNDczLCAxLjgyMzM2LCAzLjAyMDY4LCAzLjc3Mjg2IiwgXAotICAgICAgICAgICIwLjE5ODUwMywgMC4yODA0NDgsIDAuNzc2MTgxLCAxLjIyNDgyLCAxLjgyMzMyLCAzLjAzMTI2LCAzLjc2ODQzIiwgXAotICAgICAgICAgICIwLjIwOTIxLCAwLjI4ODQ1MiwgMC43NzcwMDcsIDEuMjI0ODQsIDEuODIzMjksIDMuMDI5MTgsIDMuNzY4NDkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0MTA5LCAwLjAwNDEwOSwgMC4wMDQxMDksIDAuMDA0MTA2LCAwLjAwNDExLCAwLjAwNDEwOCwgMC4wMDQxMDQiLCBcCi0gICAgICAgICAgIjAuMDA0MDk3LCAwLjAwNDA5OCwgMC4wMDQwOTksIDAuMDA0MDk4LCAwLjAwNDA5NywgMC4wMDQwOTYsIDAuMDA0MDk1IiwgXAotICAgICAgICAgICIwLjAwNDA5MiwgMC4wMDQwOTQsIDAuMDA0MDk3LCAwLjAwNDA5NiwgMC4wMDQwOTcsIDAuMDA0MDkyLCAwLjAwNDA5NiIsIFwKLSAgICAgICAgICAiMC4wMDQwODgsIDAuMDA0MDkxLCAwLjAwNDA5NSwgMC4wMDQwOTUsIDAuMDA0MDk1LCAwLjAwNDA5MywgMC4wMDQwOTMiLCBcCi0gICAgICAgICAgIjAuMDA0MDg2LCAwLjAwNDA4OSwgMC4wMDQwOTQsIDAuMDA0MDk0LCAwLjAwNDA5NSwgMC4wMDQwOTQsIDAuMDA0MDkyIiwgXAotICAgICAgICAgICIwLjAwNDA4MywgMC4wMDQwODYsIDAuMDA0MDkzLCAwLjAwNDA5NCwgMC4wMDQwOTQsIDAuMDA0MDkzLCAwLjAwNDA5MyIsIFwKLSAgICAgICAgICAiMC4wMDQwODEsIDAuMDA0MDgyLCAwLjAwNDA5MiwgMC4wMDQwOTMsIDAuMDA0MDkzLCAwLjAwNDA5MywgMC4wMDQwOTIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDExMDcsIDAuMDAxMTA3LCAwLjAwMTEwNywgMC4wMDExMDcsIDAuMDAxMTA2LCAwLjAwMTEwNCwgMC4wMDExMDMiLCBcCi0gICAgICAgICAgIjAuMDAxMDg2LCAwLjAwMTA4OSwgMC4wMDEwOTMsIDAuMDAxMDkzLCAwLjAwMTA5NCwgMC4wMDEwOTMsIDAuMDAxMDg4IiwgXAotICAgICAgICAgICIwLjAwMTA3MSwgMC4wMDEwNzcsIDAuMDAxMDg4LCAwLjAwMTA5LCAwLjAwMTA5LCAwLjAwMTA5LCAwLjAwMTA4OSIsIFwKLSAgICAgICAgICAiMC4wMDEwNjEsIDAuMDAxMDcsIDAuMDAxMDg0LCAwLjAwMTA4NiwgMC4wMDEwODgsIDAuMDAxMDg4LCAwLjAwMTA4NyIsIFwKLSAgICAgICAgICAiMC4wMDEwNTMsIDAuMDAxMDYzLCAwLjAwMTA4LCAwLjAwMTA4NCwgMC4wMDEwODYsIDAuMDAxMDg3LCAwLjAwMTA4NyIsIFwKLSAgICAgICAgICAiMC4wMDEwNDQsIDAuMDAxMDU0LCAwLjAwMTA3NSwgMC4wMDEwOCwgMC4wMDEwODMsIDAuMDAxMDg1LCAwLjAwMTA4NSIsIFwKLSAgICAgICAgICAiMC4wMDEwNCwgMC4wMDEwNDksIDAuMDAxMDcxLCAwLjAwMTA3NywgMC4wMDEwODEsIDAuMDAxMDg0LCAwLjAwMTA4NCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkExIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDM3MjcsIDAuMDAzNzI3LCAwLjAwMzcyNywgMC4wMDM3MjYsIDAuMDAzNzI4LCAwLjAwMzcyNSwgMC4wMDM3MjYiLCBcCi0gICAgICAgICAgIjAuMDAzNzIsIDAuMDAzNzIzLCAwLjAwMzcyNiwgMC4wMDM3MjYsIDAuMDAzNzI2LCAwLjAwMzcyNSwgMC4wMDM3MjUiLCBcCi0gICAgICAgICAgIjAuMDAzNzExLCAwLjAwMzcxNiwgMC4wMDM3MjQsIDAuMDAzNzI0LCAwLjAwMzcyNSwgMC4wMDM3MjUsIDAuMDAzNzI3IiwgXAotICAgICAgICAgICIwLjAwMzcwNCwgMC4wMDM3MTEsIDAuMDAzNzIxLCAwLjAwMzcyMywgMC4wMDM3MjMsIDAuMDAzNzI0LCAwLjAwMzcyNCIsIFwKLSAgICAgICAgICAiMC4wMDM2OTgsIDAuMDAzNzA2LCAwLjAwMzcxOSwgMC4wMDM3MjIsIDAuMDAzNzI0LCAwLjAwMzcyMywgMC4wMDM3MjIiLCBcCi0gICAgICAgICAgIjAuMDAzNjkxLCAwLjAwMzcsIDAuMDAzNzE2LCAwLjAwMzcxOSwgMC4wMDM3MjIsIDAuMDAzNzIzLCAwLjAwMzcyMiIsIFwKLSAgICAgICAgICAiMC4wMDM2ODgsIDAuMDAzNjk2LCAwLjAwMzcxNCwgMC4wMDM3MTgsIDAuMDAzNzIxLCAwLjAwMzcyMSwgMC4wMDM3MjEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDExMDgsIDAuMDAxMTA4LCAwLjAwMTEwOCwgMC4wMDExMDgsIDAuMDAxMTA3LCAwLjAwMTEwNSwgMC4wMDExMDUiLCBcCi0gICAgICAgICAgIjAuMDAxMDg2LCAwLjAwMTA5LCAwLjAwMTA5NCwgMC4wMDEwOTUsIDAuMDAxMDk1LCAwLjAwMTA5NCwgMC4wMDEwOTMiLCBcCi0gICAgICAgICAgIjAuMDAxMDcyLCAwLjAwMTA3OSwgMC4wMDEwODksIDAuMDAxMDkxLCAwLjAwMTA5LCAwLjAwMTA5MSwgMC4wMDEwOSIsIFwKLSAgICAgICAgICAiMC4wMDEwNjMsIDAuMDAxMDcxLCAwLjAwMTA4NCwgMC4wMDEwODcsIDAuMDAxMDg5LCAwLjAwMTA4OSwgMC4wMDEwODkiLCBcCi0gICAgICAgICAgIjAuMDAxMDU1LCAwLjAwMTA2NCwgMC4wMDEwODEsIDAuMDAxMDg1LCAwLjAwMTA4NywgMC4wMDEwODgsIDAuMDAxMDg4IiwgXAotICAgICAgICAgICIwLjAwMTA0NywgMC4wMDEwNTYsIDAuMDAxMDc2LCAwLjAwMTA4MSwgMC4wMDEwODQsIDAuMDAxMDg2LCAwLjAwMTA4NiIsIFwKLSAgICAgICAgICAiMC4wMDEwNDUsIDAuMDAxMDUyLCAwLjAwMTA3MywgMC4wMDEwNzksIDAuMDAxMDgzLCAwLjAwMTA4NSwgMC4wMDEwODUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzMjk4LCAwLjAwMzI5OSwgMC4wMDMzLCAwLjAwMzI5OSwgMC4wMDMzLCAwLjAwMzI5OSwgMC4wMDMyOTkiLCBcCi0gICAgICAgICAgIjAuMDAzMjk2LCAwLjAwMzMwMiwgMC4wMDMzMDgsIDAuMDAzMzA5LCAwLjAwMzMxLCAwLjAwMzMxLCAwLjAwMzMwOSIsIFwKLSAgICAgICAgICAiMC4wMDMyODUsIDAuMDAzMjkzLCAwLjAwMzMwNiwgMC4wMDMzMSwgMC4wMDMzMDksIDAuMDAzMzA5LCAwLjAwMzMxIiwgXAotICAgICAgICAgICIwLjAwMzI3NCwgMC4wMDMyODUsIDAuMDAzMzAyLCAwLjAwMzMwNSwgMC4wMDMzMDgsIDAuMDAzMzEsIDAuMDAzMzA5IiwgXAotICAgICAgICAgICIwLjAwMzI2NSwgMC4wMDMyNzgsIDAuMDAzMjk5LCAwLjAwMzMwNSwgMC4wMDMzMDYsIDAuMDAzMzA4LCAwLjAwMzMwNyIsIFwKLSAgICAgICAgICAiMC4wMDMyNTUsIDAuMDAzMjY5LCAwLjAwMzI5NCwgMC4wMDMzMDEsIDAuMDAzMzA1LCAwLjAwMzMwOCwgMC4wMDMzMDgiLCBcCi0gICAgICAgICAgIjAuMDAzMjQ2LCAwLjAwMzI2MiwgMC4wMDMyOTIsIDAuMDAzMjk5LCAwLjAwMzMwMywgMC4wMDMzMDYsIDAuMDAzMzA3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxMTA3LCAwLjAwMTEwOCwgMC4wMDExMDgsIDAuMDAxMTA3LCAwLjAwMTEwNywgMC4wMDExMDYsIDAuMDAxMTA1IiwgXAotICAgICAgICAgICIwLjAwMTA4NCwgMC4wMDEwODgsIDAuMDAxMDk0LCAwLjAwMTA5NSwgMC4wMDEwOTUsIDAuMDAxMDk0LCAwLjAwMTA5MyIsIFwKLSAgICAgICAgICAiMC4wMDEwNzIsIDAuMDAxMDc5LCAwLjAwMTA4OCwgMC4wMDEwOSwgMC4wMDEwOSwgMC4wMDEwOTMsIDAuMDAxMDkxIiwgXAotICAgICAgICAgICIwLjAwMTA2MywgMC4wMDEwNywgMC4wMDEwODQsIDAuMDAxMDg4LCAwLjAwMTA4OSwgMC4wMDEwODksIDAuMDAxMDg5IiwgXAotICAgICAgICAgICIwLjAwMTA2LCAwLjAwMTA2NywgMC4wMDEwODIsIDAuMDAxMDg1LCAwLjAwMTA4NywgMC4wMDEwODgsIDAuMDAxMDg4IiwgXAotICAgICAgICAgICIwLjAwMTA2MywgMC4wMDEwNjcsIDAuMDAxMDgsIDAuMDAxMDg0LCAwLjAwMTA4NiwgMC4wMDEwODcsIDAuMDAxMDg3IiwgXAotICAgICAgICAgICIwLjAwMTA3LCAwLjAwMTA3MSwgMC4wMDEwOCwgMC4wMDEwODMsIDAuMDAxMDg2LCAwLjAwMTA4NywgMC4wMDEwODciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyOTE5LCAwLjAwMjkxOSwgMC4wMDI5MTksIDAuMDAyOTE5LCAwLjAwMjkxOSwgMC4wMDI5MTgsIDAuMDAyOTIiLCBcCi0gICAgICAgICAgIjAuMDAyOTAzLCAwLjAwMjkwNywgMC4wMDI5MTIsIDAuMDAyOTEyLCAwLjAwMjkxMiwgMC4wMDI5MSwgMC4wMDI5MSIsIFwKLSAgICAgICAgICAiMC4wMDI4OTQsIDAuMDAyODk3LCAwLjAwMjkwOCwgMC4wMDI5MSwgMC4wMDI5MSwgMC4wMDI5MDksIDAuMDAyOTEiLCBcCi0gICAgICAgICAgIjAuMDAyODkzLCAwLjAwMjg5OCwgMC4wMDI5MDYsIDAuMDAyOTA4LCAwLjAwMjkwOSwgMC4wMDI5MDgsIDAuMDAyOTA5IiwgXAotICAgICAgICAgICIwLjAwMjg5MywgMC4wMDI4OTcsIDAuMDAyOTA1LCAwLjAwMjkwNywgMC4wMDI5MDgsIDAuMDAyOTA4LCAwLjAwMjkwOCIsIFwKLSAgICAgICAgICAiMC4wMDI5MDEsIDAuMDAyOSwgMC4wMDI5MDUsIDAuMDAyOTA3LCAwLjAwMjkwOCwgMC4wMDI5MDgsIDAuMDAyOTA3IiwgXAotICAgICAgICAgICIwLjAwMjkxLCAwLjAwMjkwNSwgMC4wMDI5MDcsIDAuMDAyOTA3LCAwLjAwMjkwOCwgMC4wMDI5MDgsIDAuMDAyOTA3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwMjUzLCAwLjAwMDI1NSwgMC4wMDAyNTgsIDAuMDAwMjU4LCAwLjAwMDI1OSwgMC4wMDAyNTksIDAuMDAwMjU5IiwgXAotICAgICAgICAgICIwLjAwMDI1LCAwLjAwMDI2LCAwLjAwMDI3MywgMC4wMDAyNzUsIDAuMDAwMjc3LCAwLjAwMDI3OCwgMC4wMDAyNzgiLCBcCi0gICAgICAgICAgIjAuMDAwMjMyLCAwLjAwMDI0NywgMC4wMDAyNywgMC4wMDAyNzUsIDAuMDAwMjc4LCAwLjAwMDI4LCAwLjAwMDI4MSIsIFwKLSAgICAgICAgICAiMC4wMDAyMTYsIDAuMDAwMjM1LCAwLjAwMDI2NSwgMC4wMDAyNzIsIDAuMDAwMjc2LCAwLjAwMDI4LCAwLjAwMDI4MSIsIFwKLSAgICAgICAgICAiMC4wMDAyMDUsIDAuMDAwMjI1LCAwLjAwMDI2MSwgMC4wMDAyNjksIDAuMDAwMjc0LCAwLjAwMDI3OSwgMC4wMDAyOCIsIFwKLSAgICAgICAgICAiMC4wMDAxOTEsIDAuMDAwMjEyLCAwLjAwMDI1NCwgMC4wMDAyNjQsIDAuMDAwMjcxLCAwLjAwMDI3NywgMC4wMDAyNzkiLCBcCi0gICAgICAgICAgIjAuMDAwMTg2LCAwLjAwMDIwNSwgMC4wMDAyNDgsIDAuMDAwMjYxLCAwLjAwMDI2OSwgMC4wMDAyNzUsIDAuMDAwMjc4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjUxLCAwLjAwMjUxMiwgMC4wMDI1MTQsIDAuMDAyNTE0LCAwLjAwMjUxMywgMC4wMDI1MTMsIDAuMDAyNTEyIiwgXAotICAgICAgICAgICIwLjAwMjQ5OCwgMC4wMDI1MDQsIDAuMDAyNTE0LCAwLjAwMjUxNSwgMC4wMDI1MTcsIDAuMDAyNTE3LCAwLjAwMjUxNiIsIFwKLSAgICAgICAgICAiMC4wMDI0ODUsIDAuMDAyNDkzLCAwLjAwMjUxLCAwLjAwMjUxMiwgMC4wMDI1MTMsIDAuMDAyNTE1LCAwLjAwMjUxNyIsIFwKLSAgICAgICAgICAiMC4wMDI0NzYsIDAuMDAyNDg3LCAwLjAwMjUwNiwgMC4wMDI1MSwgMC4wMDI1MTMsIDAuMDAyNTE0LCAwLjAwMjUxNSIsIFwKLSAgICAgICAgICAiMC4wMDI0NywgMC4wMDI0ODIsIDAuMDAyNTAzLCAwLjAwMjUwOCwgMC4wMDI1MTEsIDAuMDAyNTEzLCAwLjAwMjUxMyIsIFwKLSAgICAgICAgICAiMC4wMDI0NzQsIDAuMDAyNDc5LCAwLjAwMjUsIDAuMDAyNTA1LCAwLjAwMjUwOSwgMC4wMDI1MTIsIDAuMDAyNTEyIiwgXAotICAgICAgICAgICIwLjAwMjQ4MSwgMC4wMDI0ODEsIDAuMDAyNDk5LCAwLjAwMjUwNSwgMC4wMDI1MDksIDAuMDAyNTExLCAwLjAwMjUxMSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDI1MiwgMC4wMDAyNTUsIDAuMDAwMjU4LCAwLjAwMDI1OSwgMC4wMDAyNTksIDAuMDAwMjU5LCAwLjAwMDI2IiwgXAotICAgICAgICAgICIwLjAwMDI0OCwgMC4wMDAyNTgsIDAuMDAwMjczLCAwLjAwMDI3NiwgMC4wMDAyNzcsIDAuMDAwMjc4LCAwLjAwMDI3OSIsIFwKLSAgICAgICAgICAiMC4wMDAyMywgMC4wMDAyNDUsIDAuMDAwMjcsIDAuMDAwMjc1LCAwLjAwMDI3OCwgMC4wMDAyODEsIDAuMDAwMjgxIiwgXAotICAgICAgICAgICIwLjAwMDIyMSwgMC4wMDAyMzgsIDAuMDAwMjY3LCAwLjAwMDI3NCwgMC4wMDAyNzgsIDAuMDAwMjgxLCAwLjAwMDI4MiIsIFwKLSAgICAgICAgICAiMC4wMDAyMTYsIDAuMDAwMjMxLCAwLjAwMDI2MywgMC4wMDAyNzEsIDAuMDAwMjc2LCAwLjAwMDI4LCAwLjAwMDI4MSIsIFwKLSAgICAgICAgICAiMC4wMDAyMTgsIDAuMDAwMjI3LCAwLjAwMDI1OCwgMC4wMDAyNjgsIDAuMDAwMjc0LCAwLjAwMDI3OSwgMC4wMDAyODEiLCBcCi0gICAgICAgICAgIjAuMDAwMjI1LCAwLjAwMDIzMiwgMC4wMDAyNTgsIDAuMDAwMjY3LCAwLjAwMDI3MywgMC4wMDAyNzksIDAuMDAwMjgiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IEJNWElYMiAqCi0gKiAtLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKEJNWElYMikgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjMxMjE4ODsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxMDI2Njk7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxMDIzNjE7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxMDI2Njk7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNDM2LCAwLjAwMDQ0MSwgMC4wMDA0NDMsIDAuMDAwNDQzLCAwLjAwMDQ0NCwgMC4wMDA0NDQsIDAuMDAwNDQ0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNDYxLCAwLjAwMDQ1NSwgMC4wMDA0NTUsIDAuMDAwNDU0LCAwLjAwMDQ1NCwgMC4wMDA0NTQsIDAuMDAwNDU0Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihNMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxMTk5MDM7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxMTk3OTk7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxMTk5MDM7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMTY0LCAwLjAwMDEzNywgMC4wMDAxNCwgMC4wMDAxNTMsIDAuMDAwMTU1LCAwLjAwMDE4MSwgMC4wMDAyMDgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDIxMTgsIDAuMDAyMDk4LCAwLjAwMjA5NSwgMC4wMDIxMDMsIDAuMDAyMTE0LCAwLjAwMjE0LCAwLjAwMjE2MSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oTTEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTEyNzI5OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTEyNjI2OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTEyNzI5OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDI5NywgMC4wMDAyNjksIDAuMDAwMjczLCAwLjAwMDI3NCwgMC4wMDAyOTEsIDAuMDAwMzExLCAwLjAwMDMzNiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTk3OSwgMC4wMDE5NTksIDAuMDAxOTU3LCAwLjAwMTk2MywgMC4wMDE5NzUsIDAuMDAyMDAyLCAwLjAwMjAyMyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUFBOKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuNTE1MTQ2OwotICAgIGZ1bmN0aW9uIDogIigoWDIgKChNMCBBKSArICghTTAgUykpKSArICghWDIgKChNMSBBKSArICghTTEgUykpKSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE0MTEyMywgMC4yNTIyOTksIDAuMzM0MTQ2LCAwLjQzNTk2MiwgMC41Mzc3NCwgMC42Mzk1NDksIDAuNzQxMzk0IiwgXAotICAgICAgICAgICIwLjE1MDIyNSwgMC4yNjEzMTMsIDAuMzQzMTY4LCAwLjQ0NDk4MywgMC41NDY3NjQsIDAuNjQ4NTc4LCAwLjc1MDI5OCIsIFwKLSAgICAgICAgICAiMC4xNjEwMzEsIDAuMjcyMjA5LCAwLjM1NDAyMiwgMC40NTU5MjIsIDAuNTU3Njc5LCAwLjY1OTQ1MywgMC43NjEzMzgiLCBcCi0gICAgICAgICAgIjAuMTcxNzYsIDAuMjgyOTQsIDAuMzY0NzU0LCAwLjQ2NjU5MywgMC41NjgzNzYsIDAuNjcwMjUzLCAwLjc3MjA4OSIsIFwKLSAgICAgICAgICAiMC4xODIzNDksIDAuMjkzNTI4LCAwLjM3NTM2MSwgMC40NzcxOTcsIDAuNTc4OTgxLCAwLjY4MDc4MiwgMC43ODI2NDMiLCBcCi0gICAgICAgICAgIjAuMTk5MDMsIDAuMzEwMTg5LCAwLjM5MjAyNiwgMC40OTM4NjYsIDAuNTk1NjUxLCAwLjY5NzQ0OSwgMC43OTkzMjIiLCBcCi0gICAgICAgICAgIjAuMjEyODkxLCAwLjMyNDA4MiwgMC40MDU5MzcsIDAuNTA3Nzg0LCAwLjYwOTU3LCAwLjcxMTM1MywgMC44MTMxNDQiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY5Njk1LCAwLjI2OTU3NCwgMC40MzQwMTIsIDAuNjQxMjMxLCAwLjg1MDQ2OCwgMS4wNTg3NiwgMS4yNzAxNiIsIFwKLSAgICAgICAgICAiMC4wNjk1OSwgMC4yNjk1MjIsIDAuNDMzOTUxLCAwLjY0MTgyNywgMC44NTA0MjIsIDEuMDU5NDcsIDEuMjcwMzMiLCBcCi0gICAgICAgICAgIjAuMDY5NTg4LCAwLjI2OTQ5LCAwLjQzMzg5MSwgMC42NDE1OTMsIDAuODUwNTk4LCAxLjA2MDEsIDEuMjcwMjgiLCBcCi0gICAgICAgICAgIjAuMDY5NjA1LCAwLjI2OTUwNywgMC40MzM4NzMsIDAuNjQxNTIxLCAwLjg1MDY5NSwgMS4wNjAyMiwgMS4yNzAyNyIsIFwKLSAgICAgICAgICAiMC4wNjk1NzcsIDAuMjY5NTQyLCAwLjQzMzg2NCwgMC42NDE0ODEsIDAuODUwNjkzLCAxLjA2MDMsIDEuMjcwMjYiLCBcCi0gICAgICAgICAgIjAuMDY5Njk3LCAwLjI2OTU0MiwgMC40MzM5MDUsIDAuNjQxNjA0LCAwLjg1MDQ2MiwgMS4wNTg4MiwgMS4yNzAyNSIsIFwKLSAgICAgICAgICAiMC4wNzAxMjEsIDAuMjY5Njk4LCAwLjQzMzk2NywgMC42NDE1MiwgMC44NTA0MzYsIDEuMDU5OTYsIDEuMjcwMDkiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTQ4Mzk2LCAwLjI2MzY1NywgMC4zNDcyMTksIDAuNDUwOTA5LCAwLjU1NDU1OSwgMC42NTgwNzIsIDAuNzYxNyIsIFwKLSAgICAgICAgICAiMC4xNTcwMTcsIDAuMjcyMjQyLCAwLjM1NTc5OSwgMC40NTk0OTMsIDAuNTYzMDc1LCAwLjY2NjY1LCAwLjc3MDE5OCIsIFwKLSAgICAgICAgICAiMC4xNjY3NzYsIDAuMjgyMDgzLCAwLjM2NTYyMSwgMC40NjkzNDQsIDAuNTcyOTI0LCAwLjY3NjQ4MiwgMC43ODAxMTMiLCBcCi0gICAgICAgICAgIjAuMTc2NSwgMC4yOTE3NDEsIDAuMzc1MzAzLCAwLjQ3ODk5NiwgMC41ODI2MzUsIDAuNjg2MTY0LCAwLjc4OTc5MSIsIFwKLSAgICAgICAgICAiMC4xODU5NjUsIDAuMzAxMjIxLCAwLjM4NDc5MiwgMC40ODg0ODcsIDAuNTkyMTQsIDAuNjk1NjU2LCAwLjc5OTI4NCIsIFwKLSAgICAgICAgICAiMC4yMDA4MTQsIDAuMzE2MDkzLCAwLjM5OTY1OCwgMC41MDMzNjMsIDAuNjA2OTQ4LCAwLjcxMDUyMiwgMC44MTQxMjYiLCBcCi0gICAgICAgICAgIjAuMjEzMDgzLCAwLjMyODQ1NywgMC40MTIwMzIsIDAuNTE1NzM3LCAwLjYxOTMyNCwgMC43MjI5MDcsIDAuODI2NDU5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3MjU3OCwgMC4yNzIzNTgsIDAuNDM1NjM3LCAwLjY0MjYwNSwgMC44NTE4NjgsIDEuMDYxMTUsIDEuMjcwOTciLCBcCi0gICAgICAgICAgIjAuMDcyNTY5LCAwLjI3MjM2NiwgMC40MzU2MzEsIDAuNjQzMTAxLCAwLjg1MjEwOCwgMS4wNjEwOSwgMS4yNzA3IiwgXAotICAgICAgICAgICIwLjA3MjUzMSwgMC4yNzIzNjUsIDAuNDM1NjA0LCAwLjY0MzU1NSwgMC44NTE5NzIsIDEuMDYwOTIsIDEuMjcwNzMiLCBcCi0gICAgICAgICAgIjAuMDcyNTA1LCAwLjI3MjMyMiwgMC40MzU1NjksIDAuNjQzNDE4LCAwLjg1MjE0NCwgMS4wNjA2NSwgMS4yNzAyMiIsIFwKLSAgICAgICAgICAiMC4wNzI2MzUsIDAuMjcyMzcsIDAuNDM1NjQ0LCAwLjY0MjYwOSwgMC44NTE4ODUsIDEuMDYwNTgsIDEuMjcwOSIsIFwKLSAgICAgICAgICAiMC4wNzI2MzIsIDAuMjcyMzQ5LCAwLjQzNTgwMywgMC42NDM1OSwgMC44NTE5NTIsIDEuMDYxMTQsIDEuMjcwNzciLCBcCi0gICAgICAgICAgIjAuMDcyOTU2LCAwLjI3MjUyNCwgMC40MzU2NjUsIDAuNjQzMTc2LCAwLjg1MjIwMiwgMS4wNjExNCwgMS4yNzA2NyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJNMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTI3OTU0LCAwLjIzODUyNiwgMC4zMjAyNzEsIDAuNDIyMDk4LCAwLjUyMzg4NSwgMC42MjU3OTYsIDAuNzI3NTMyIiwgXAotICAgICAgICAgICIwLjEzNzIwMSwgMC4yNDc3NTUsIDAuMzI5NTE0LCAwLjQzMTM0MywgMC41MzMxMjcsIDAuNjM0OTMsIDAuNzM2Nzk0IiwgXAotICAgICAgICAgICIwLjE0ODkxLCAwLjI1OTM3OSwgMC4zNDExNTksIDAuNDQyOTgzLCAwLjU0NDc2LCAwLjY0NjU5NywgMC43NDgzNzQiLCBcCi0gICAgICAgICAgIjAuMTYwNjA4LCAwLjI3MTE0NiwgMC4zNTI5MjEsIDAuNDU0NzcyLCAwLjU1NjUyMSwgMC42NTgzNDYsIDAuNzYwMTY4IiwgXAotICAgICAgICAgICIwLjE3MjM5MiwgMC4yODI5NiwgMC4zNjQ3MTYsIDAuNDY2NTUyLCAwLjU2ODM0MSwgMC42NzAxNzgsIDAuNzcyMDEyIiwgXAotICAgICAgICAgICIwLjE5MDg1NSwgMC4zMDEzODEsIDAuMzgzMTUyLCAwLjQ4NDk5MiwgMC41ODY3NzMsIDAuNjg4NTQyLCAwLjc5MDM3NiIsIFwKLSAgICAgICAgICAiMC4yMDU5ODcsIDAuMzE2NjU4LCAwLjM5ODQ0OCwgMC41MDAyODYsIDAuNjAyMDY2LCAwLjcwMzksIDAuODA1NjE1Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2ODgyNCwgMC4yNjg3NzUsIDAuNDMzMDY1LCAwLjY0MTIxNywgMC44NDkzMjgsIDEuMDU3OTgsIDEuMjY3MzYiLCBcCi0gICAgICAgICAgIjAuMDY4ODEyLCAwLjI2ODczLCAwLjQzMzA1NSwgMC42NDExOTYsIDAuODQ5MjcxLCAxLjA2MDExLCAxLjI2NzM1IiwgXAotICAgICAgICAgICIwLjA2ODg3OSwgMC4yNjg4MzMsIDAuNDMyOTEyLCAwLjY0MTIwNywgMC44NTAxODksIDEuMDU3OTksIDEuMjY3NjQiLCBcCi0gICAgICAgICAgIjAuMDY4NzU2LCAwLjI2ODY4MywgMC40MzI5MzEsIDAuNjQxMzY4LCAwLjg1MDExMSwgMS4wNTg1NSwgMS4yNjk3OSIsIFwKLSAgICAgICAgICAiMC4wNjg4MzQsIDAuMjY4ODA0LCAwLjQzMzA0NCwgMC42NDExODQsIDAuODQ5MjY1LCAxLjA2MDE3LCAxLjI2NzM1IiwgXAotICAgICAgICAgICIwLjA2OTA0OCwgMC4yNjg2NzUsIDAuNDMzMDgxLCAwLjY0MTIxMiwgMC44NTAxNzksIDEuMDU5OCwgMS4yNjgwNyIsIFwKLSAgICAgICAgICAiMC4wNjk1NTQsIDAuMjY4ODk1LCAwLjQzMzAwMywgMC42NDExOTMsIDAuODUwMTI1LCAxLjA1Nzg5LCAxLjI2Nzk3Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEzNDczMSwgMC4yNDkyNTMsIDAuMzMyNjU1LCAwLjQzNjMzNiwgMC41Mzk5MzIsIDAuNjQzNDcyLCAwLjc0NzE4NCIsIFwKLSAgICAgICAgICAiMC4xNDM2NDIsIDAuMjU4MTMzLCAwLjM0MTU5LCAwLjQ0NTI0MywgMC41NDg4NzEsIDAuNjUyMzg5LCAwLjc1NjEwNCIsIFwKLSAgICAgICAgICAiMC4xNTQ5OTYsIDAuMjY5NDM5LCAwLjM1MjkwOSwgMC40NTY1NjUsIDAuNTYwMTQyLCAwLjY2MzY5NCwgMC43NjczNTUiLCBcCi0gICAgICAgICAgIjAuMTY2MjkxLCAwLjI4MDc5NSwgMC4zNjQyMTcsIDAuNDY3OTEsIDAuNTcxNDk4LCAwLjY3NTA0MywgMC43Nzg3NDkiLCBcCi0gICAgICAgICAgIjAuMTc3NjEsIDAuMjkyMTEsIDAuMzc1NTY1LCAwLjQ3OTIzNiwgMC41ODI4MDIsIDAuNjg2MzcyLCAwLjc5MDA3MyIsIFwKLSAgICAgICAgICAiMC4xOTUxNTYsIDAuMzA5NjEsIDAuMzkzMDg0LCAwLjQ5Njc1LCAwLjYwMDM2LCAwLjcwMzk1MywgMC44MDc2MzEiLCBcCi0gICAgICAgICAgIjAuMjA5MjcyLCAwLjMyMzkxLCAwLjQwNzM2OCwgMC41MTEwNjIsIDAuNjE0NjE2LCAwLjcxODE5MywgMC44MjE4MTgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDcxNTYsIDAuMjcxNDIxLCAwLjQzNTIwMSwgMC42NDI5NDEsIDAuODUwMDA1LCAxLjA1OTksIDEuMjY3NTciLCBcCi0gICAgICAgICAgIjAuMDcxNTEsIDAuMjcxNDA4LCAwLjQzNDk0NSwgMC42NDIwNiwgMC44NTE4MSwgMS4wNjAwMSwgMS4yNjc1OCIsIFwKLSAgICAgICAgICAiMC4wNzE1NTIsIDAuMjcxNDAyLCAwLjQzNDkzNiwgMC42NDIwODEsIDAuODUxMTUzLCAxLjA2MDc4LCAxLjI2ODU1IiwgXAotICAgICAgICAgICIwLjA3MTUzNywgMC4yNzE0MzksIDAuNDM1MTQxLCAwLjY0MjA3MSwgMC44NTE2ODMsIDEuMDU5MDksIDEuMjY4MTIiLCBcCi0gICAgICAgICAgIjAuMDcxNSwgMC4yNzE0NDQsIDAuNDM0ODM5LCAwLjY0MjEyMSwgMC44NTE1NzMsIDEuMDU5MTgsIDEuMjY2OTciLCBcCi0gICAgICAgICAgIjAuMDcxODU5LCAwLjI3MTQ2MSwgMC40MzQ5NjIsIDAuNjQyMDY0LCAwLjg1MTY1OCwgMS4wNjExMywgMS4yNjc2NyIsIFwKLSAgICAgICAgICAiMC4wNzI0NTIsIDAuMjcxNjQyLCAwLjQzNDk4MiwgMC42NDMxNzQsIDAuODUxNTY4LCAxLjA2MDg5LCAxLjI2NzQ4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIk0wIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNDY4NjUsIDAuMjU3Mzk2LCAwLjMzOTEzOSwgMC40NDA5NjcsIDAuNTQyNzQyLCAwLjY0NDU5NSwgMC43NDY0MTkiLCBcCi0gICAgICAgICAgIjAuMTU2NjY4LCAwLjI2NzI0NiwgMC4zNDkwMDEsIDAuNDUwODIzLCAwLjU1MjU5NCwgMC42NTQ0MTUsIDAuNzU2MjE4IiwgXAotICAgICAgICAgICIwLjE2NzM0OSwgMC4yNzc4NDksIDAuMzU5NTk5LCAwLjQ2MTQ0MiwgMC41NjMyMTgsIDAuNjY1MDA1LCAwLjc2Njg0NCIsIFwKLSAgICAgICAgICAiMC4xNzY1MTEsIDAuMjg3MDMxLCAwLjM2ODc4OSwgMC40NzA2MTEsIDAuNTcyMzgsIDAuNjc0MTk4LCAwLjc3NjAwNiIsIFwKLSAgICAgICAgICAiMC4xODM3NzMsIDAuMjk0MjY3LCAwLjM3NjIzMiwgMC40NzgwMTUsIDAuNTc5ODYzLCAwLjY4MTcyMiwgMC43ODM1MDUiLCBcCi0gICAgICAgICAgIjAuMTkzNjk4LCAwLjMwNDM0NSwgMC4zODYxMTEsIDAuNDg3OTM0LCAwLjU4OTcwNywgMC42OTE1MjUsIDAuNzkzMjU0IiwgXAotICAgICAgICAgICIwLjIwMTA3OSwgMC4zMTE3MDIsIDAuMzkzNDc0LCAwLjQ5NTI5MiwgMC41OTcwOTUsIDAuNjk4ODg0LCAwLjgwMDcwNyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjg4MTEsIDAuMjY4NzI3LCAwLjQzMzAwOCwgMC42NDExNzIsIDAuODUwMTU0LCAxLjA2MDE1LCAxLjI2NzMyIiwgXAotICAgICAgICAgICIwLjA2ODc1LCAwLjI2ODcwNiwgMC40MzI4NjYsIDAuNjQxMTc1LCAwLjg1MDE4NywgMS4wNTg1OCwgMS4yNjk5OSIsIFwKLSAgICAgICAgICAiMC4wNjg4ODgsIDAuMjY4NjE1LCAwLjQzMzM0MSwgMC42NDAzOTEsIDAuODQ5MjY5LCAxLjA1ODU0LCAxLjI2NzMyIiwgXAotICAgICAgICAgICIwLjA2ODc2MiwgMC4yNjg2ODIsIDAuNDMyODk4LCAwLjY0MTE3MSwgMC44NTAxNzUsIDEuMDU4NTUsIDEuMjY5OTYiLCBcCi0gICAgICAgICAgIjAuMDY4ODAyLCAwLjI2ODc0NywgMC40MzMwMTEsIDAuNjQxMTU1LCAwLjg1MDQwOSwgMS4wNjAxOCwgMS4yNjczMiIsIFwKLSAgICAgICAgICAiMC4wNjg5MzIsIDAuMjY4NzI3LCAwLjQzMjkzMiwgMC42NDExOTcsIDAuODUwMTg3LCAxLjA1ODU2LCAxLjI2OTk0IiwgXAotICAgICAgICAgICIwLjA2ODkxLCAwLjI2ODg4NCwgMC40MzI5NjQsIDAuNjQwNzUyLCAwLjg1MDM1NSwgMS4wNTg1NywgMS4yNjk4OSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNTMxODgsIDAuMjY3NzQ4LCAwLjM1MTIyNywgMC40NTQ5MDgsIDAuNTU4NTEyLCAwLjY2MjA2NSwgMC43NjU3NjQiLCBcCi0gICAgICAgICAgIjAuMTYzNDQ0LCAwLjI3Nzk1OSwgMC4zNjE0NDQsIDAuNDY1MTEzLCAwLjU2ODY5NywgMC42NzIyNjQsIDAuNzc1OTE2IiwgXAotICAgICAgICAgICIwLjE3NTA0MSwgMC4yODk1NTIsIDAuMzczMDM2LCAwLjQ3NjcwOCwgMC41ODAyOTMsIDAuNjgzODY3LCAwLjc4NzUxIiwgXAotICAgICAgICAgICIwLjE4NDI5NiwgMC4yOTg4NDYsIDAuMzgyMzE2LCAwLjQ4NjAwMSwgMC41ODk2NTMsIDAuNjkzMTY0LCAwLjc5Njg4IiwgXAotICAgICAgICAgICIwLjE5MjgwMSwgMC4zMDczMDYsIDAuMzkwNjU2LCAwLjQ5NDMyMywgMC41OTc5MDEsIDAuNzAxNjM3LCAwLjgwNTEyMiIsIFwKLSAgICAgICAgICAiMC4yMDM5MDYsIDAuMzE4NDQ2LCAwLjQwMTg5NiwgMC41MDU1OTIsIDAuNjA5MTg4LCAwLjcxMjc0MSwgMC44MTYzNzMiLCBcCi0gICAgICAgICAgIjAuMjExOTcyLCAwLjMyNjYzNSwgMC40MTAxMSwgMC41MTM3NjksIDAuNjE3MzUxLCAwLjcyMDk0MSwgMC44MjQ1NiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzE2MjEsIDAuMjcxNjEzLCAwLjQzNTAxLCAwLjY0MzA4NCwgMC44NDk5NjIsIDEuMDU5MjYsIDEuMjY3MzgiLCBcCi0gICAgICAgICAgIjAuMDcxNjY4LCAwLjI3MTUzMiwgMC40MzUwMzMsIDAuNjQyMTk3LCAwLjg1MTA4NiwgMS4wNjA0MiwgMS4yNjg2MiIsIFwKLSAgICAgICAgICAiMC4wNzE2NjUsIDAuMjcxNTE3LCAwLjQzNTAyOCwgMC42NDIxODksIDAuODUxMjA3LCAxLjA1OTMxLCAxLjI2ODUiLCBcCi0gICAgICAgICAgIjAuMDcxNjE3LCAwLjI3MTYwMywgMC40MzUzMjcsIDAuNjQyMTQ2LCAwLjg0OTI1NSwgMS4wNTk5NCwgMS4yNjc2NCIsIFwKLSAgICAgICAgICAiMC4wNzE3NiwgMC4yNzE1MzcsIDAuNDM1MDIxLCAwLjY0MjE4MSwgMC44NTE2MDMsIDEuMDYxMjYsIDEuMjY4MTYiLCBcCi0gICAgICAgICAgIjAuMDcxNTgsIDAuMjcxNDkyLCAwLjQzNTI0NiwgMC42NDMwMTksIDAuODUxODg3LCAxLjA1OTk2LCAxLjI2ODE5IiwgXAotICAgICAgICAgICIwLjA3MTc1NSwgMC4yNzE2NzUsIDAuNDM1MDY1LCAwLjY0MjIzLCAwLjg1MTYzOCwgMS4wNTk0NCwgMS4yNzEwNCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJNMSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTMzODA1LCAwLjI0NTAwNSwgMC4zMjY4NDQsIDAuNDI4Njc2LCAwLjUzMDQ1NSwgMC42MzIyNzMsIDAuNzM0MDM1IiwgXAotICAgICAgICAgICIwLjE0MzA3NiwgMC4yNTQyMjEsIDAuMzM2MDY2LCAwLjQzNzkyOSwgMC41Mzk3MDgsIDAuNjQxNDg2LCAwLjc0MzM2OSIsIFwKLSAgICAgICAgICAiMC4xNTQ3MDUsIDAuMjY1ODcxLCAwLjM0Nzc0MywgMC40NDk1NzcsIDAuNTUxMzU5LCAwLjY1MzE0MiwgMC43NTUwMjciLCBcCi0gICAgICAgICAgIjAuMTY2NSwgMC4yNzc2NTksIDAuMzU5NTM2LCAwLjQ2MTM2OCwgMC41NjMxNDksIDAuNjY0OTQsIDAuNzY2ODI5IiwgXAotICAgICAgICAgICIwLjE3ODMxNiwgMC4yODk0MjgsIDAuMzcxMjQ5LCAwLjQ3MzEyLCAwLjU3NDg5MiwgMC42NzY2NzcsIDAuNzc4NTc1IiwgXAotICAgICAgICAgICIwLjE5NzAzNSwgMC4zMDgxMTcsIDAuMzg5OTcsIDAuNDkxODExLCAwLjU5MzU5NywgMC42OTU0MDQsIDAuNzk3MTY3IiwgXAotICAgICAgICAgICIwLjIxMjU5OCwgMC4zMjM2NzUsIDAuNDA1NDk3LCAwLjUwNzM2NywgMC42MDkxOTMsIDAuNzEwOTY3LCAwLjgxMjgzMyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjk1MSwgMC4yNjk1MzUsIDAuNDMzMzE1LCAwLjY0MDk5MSwgMC44NTAzMTksIDEuMDU4MDEsIDEuMjY2MTkiLCBcCi0gICAgICAgICAgIjAuMDY5NTA1LCAwLjI2OTUwMSwgMC40MzM4NTMsIDAuNjQwNzQ1LCAwLjg0OTUzMiwgMS4wNTg5NSwgMS4yNjc0OCIsIFwKLSAgICAgICAgICAiMC4wNjk2MTYsIDAuMjY5MzUyLCAwLjQzMzQwMywgMC42NDA5NzMsIDAuODQ5NjMyLCAxLjA1ODk0LCAxLjI2NzQ4IiwgXAotICAgICAgICAgICIwLjA2OTY0OCwgMC4yNjk0ODksIDAuNDMzNDEsIDAuNjQwOTUsIDAuODQ5NTg5LCAxLjA1ODkzLCAxLjI2NzQ4IiwgXAotICAgICAgICAgICIwLjA2OTYsIDAuMjY5NDIsIDAuNDMzODY5LCAwLjY0MDc1NiwgMC44NDk3MzQsIDEuMDU4OSwgMS4yNjc0OSIsIFwKLSAgICAgICAgICAiMC4wNjk4MjgsIDAuMjY5NTc5LCAwLjQzMzQ0MywgMC42NDE1NDUsIDAuODUwNDQxLCAxLjA1ODc0LCAxLjI3MDA0IiwgXAotICAgICAgICAgICIwLjA3MDMxNCwgMC4yNjk2NDgsIDAuNDMzNTM3LCAwLjY0MTcxMiwgMC44NTA4NjcsIDEuMDYwMzQsIDEuMjY3NDgiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTQwMjc2LCAwLjI1NTQ1OCwgMC4zMzkwMTMsIDAuNDQyNjkzLCAwLjU0NjI2NiwgMC42NDk4MjcsIDAuNzUzNDU3IiwgXAotICAgICAgICAgICIwLjE0OTIwNCwgMC4yNjQzOTQsIDAuMzQ3OTMxLCAwLjQ1MTYxNiwgMC41NTUxODksIDAuNjU4NzcyLCAwLjc2MjM2NyIsIFwKLSAgICAgICAgICAiMC4xNjA1MzgsIDAuMjc1NzQxLCAwLjM1OTI4NCwgMC40NjI5NjUsIDAuNTY2NTksIDAuNjcwMTIxLCAwLjc3Mzc0MiIsIFwKLSAgICAgICAgICAiMC4xNzE5MTgsIDAuMjg3MDc0LCAwLjM3MDYyMSwgMC40NzQzMTEsIDAuNTc3ODksIDAuNjgxNDYxLCAwLjc4NTAwMiIsIFwKLSAgICAgICAgICAiMC4xODMzLCAwLjI5ODQ3NywgMC4zODIwMTgsIDAuNDg1NzA5LCAwLjU4OTI4OCwgMC42OTI4NjYsIDAuNzk2NDc1IiwgXAotICAgICAgICAgICIwLjIwMTE0LCAwLjMxNjMzLCAwLjM5OTkwNCwgMC41MDM1NzcsIDAuNjA3MjAzLCAwLjcxMDc2MywgMC44MTQzOTIiLCBcCi0gICAgICAgICAgIjAuMjE1NjgzLCAwLjMzMTAyNSwgMC40MTQ1ODMsIDAuNTE4MjcsIDAuNjIxODQ5LCAwLjcyNTQzMiwgMC44MjkwNTkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDcyNDk1LCAwLjI3MjI4NywgMC40MzU1NTQsIDAuNjQyNjE0LCAwLjg1MTgzMywgMS4wNjEsIDEuMjY4NjgiLCBcCi0gICAgICAgICAgIjAuMDcyNTA0LCAwLjI3MjI4MywgMC40MzU1MzgsIDAuNjQyNTU5LCAwLjg1MTgzNCwgMS4wNjExLCAxLjI2OTMzIiwgXAotICAgICAgICAgICIwLjA3MjQ5MywgMC4yNzIyMzUsIDAuNDM1NTY1LCAwLjY0MjUzNiwgMC44NTIwNjIsIDEuMDYwNzIsIDEuMjY3OTgiLCBcCi0gICAgICAgICAgIjAuMDcyNTA3LCAwLjI3MjI5MSwgMC40MzU1MzIsIDAuNjQyNDY3LCAwLjg1MTc4NSwgMS4wNTkzMiwgMS4yNzA1OSIsIFwKLSAgICAgICAgICAiMC4wNzI1NDIsIDAuMjcyMjU4LCAwLjQzNTQ4LCAwLjY0MjUxNiwgMC44NTE3NTMsIDEuMDU5NCwgMS4yNzEiLCBcCi0gICAgICAgICAgIjAuMDcyNTI5LCAwLjI3MjI4LCAwLjQzNTU5NywgMC42NDMzNiwgMC44NTE4OTgsIDEuMDYwMzIsIDEuMjY4IiwgXAotICAgICAgICAgICIwLjA3MzExMiwgMC4yNzI0NzEsIDAuNDM1Njc4LCAwLjY0MjU0OCwgMC44NTE4MzcsIDEuMDYwNDMsIDEuMjY3OTEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiTTEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE1MjQ4OCwgMC4yNjM2NjYsIDAuMzQ1NDkzLCAwLjQ0NzM0NSwgMC41NDkxMTIsIDAuNjUwOTA1LCAwLjc1MjgwMyIsIFwKLSAgICAgICAgICAiMC4xNjIzOTUsIDAuMjczNTA0LCAwLjM1NTM0LCAwLjQ1NzE2OSwgMC41NTg5NjEsIDAuNjYwNzQ1LCAwLjc2MjYyNyIsIFwKLSAgICAgICAgICAiMC4xNzMyMiwgMC4yODQzMjMsIDAuMzY2MTY2LCAwLjQ2ODAwMywgMC41Njk3ODUsIDAuNjcxNTU1LCAwLjc3MzM1OCIsIFwKLSAgICAgICAgICAiMC4xODE4MzMsIDAuMjkzMDI4LCAwLjM3NDg0LCAwLjQ3NjczNSwgMC41Nzg1MDQsIDAuNjgwMjY4LCAwLjc4MjE2MiIsIFwKLSAgICAgICAgICAiMC4xODkwODUsIDAuMzAwMTc3LCAwLjM4MjIxOCwgMC40ODQxMDIsIDAuNTg1ODkyLCAwLjY4NzYyMywgMC43ODk1MzYiLCBcCi0gICAgICAgICAgIjAuMTk4Nzg3LCAwLjMxMDAyMSwgMC4zOTE5NzMsIDAuNDkzNzkzLCAwLjU5NTU3NiwgMC42OTcyNDYsIDAuNzk5MTM3IiwgXAotICAgICAgICAgICIwLjIwNTUwNSwgMC4zMTcxMzgsIDAuMzk4NjUsIDAuNTAwODcyLCAwLjYwMjI3OCwgMC43MDQwNjIsIDAuODA1ODc5Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2OTYzNCwgMC4yNjkzODksIDAuNDMzOTA4LCAwLjY0MDcwNCwgMC44NTAzODEsIDEuMDU4OSwgMS4yNjc1IiwgXAotICAgICAgICAgICIwLjA2OTU4MywgMC4yNjk0NTIsIDAuNDMzNDQ3LCAwLjY0MSwgMC44NTA1NzQsIDEuMDU4OTQsIDEuMjY3NSIsIFwKLSAgICAgICAgICAiMC4wNjk1NDMsIDAuMjY5NTU1LCAwLjQzMzQ1OSwgMC42NDE1NDUsIDAuODUwNDIyLCAxLjA1OTk5LCAxLjI2ODI5IiwgXAotICAgICAgICAgICIwLjA2OTU1NCwgMC4yNjkzODcsIDAuNDMzNjI1LCAwLjY0MTc2NCwgMC44NDkwNzMsIDEuMDU4OTIsIDEuMjY3NDkiLCBcCi0gICAgICAgICAgIjAuMDY5NTMyLCAwLjI2OTUzMSwgMC40MzM1NTMsIDAuNjQxNzUzLCAwLjg1MDQyMywgMS4wNTg3NCwgMS4yNjc0OSIsIFwKLSAgICAgICAgICAiMC4wNjk2OTgsIDAuMjY5NDc3LCAwLjQzMzM5OSwgMC42NDE1NzUsIDAuODUwNDQ5LCAxLjA1ODc5LCAxLjI2ODQ2IiwgXAotICAgICAgICAgICIwLjA2OTg1NCwgMC4yNjk2MTEsIDAuNDMzNjMsIDAuNjQxNTc2LCAwLjg1MDQwNiwgMS4wNjAwMSwgMS4yNjc4Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE1ODAxMywgMC4yNzMyMzgsIDAuMzU2Nzk0LCAwLjQ2MDQ5MiwgMC41NjQwNzEsIDAuNjY3NjUsIDAuNzcxMjAxIiwgXAotICAgICAgICAgICIwLjE2ODE4OSwgMC4yODM0MzQsIDAuMzY3MDAxLCAwLjQ3MDY4NiwgMC41NzQzMzgsIDAuNjc3ODU5LCAwLjc4MTQ4OSIsIFwKLSAgICAgICAgICAiMC4xNzk3MzIsIDAuMjk0OTQ2LCAwLjM3ODUwNSwgMC40ODIyLCAwLjU4NTc4MSwgMC42ODkzNTQsIDAuNzkyOTEyIiwgXAotICAgICAgICAgICIwLjE4ODg1MSwgMC4zMDQwODUsIDAuMzg3NjYzLCAwLjQ5MTM1NCwgMC41OTQ5ODQsIDAuNjk4NTE5LCAwLjgwMjE0MiIsIFwKLSAgICAgICAgICAiMC4xOTY5ODQsIDAuMzEyMTk1LCAwLjM5NTc0OCwgMC40OTk0NDYsIDAuNjAzMDI4LCAwLjcwNjYwMywgMC44MTAxNjYiLCBcCi0gICAgICAgICAgIjAuMjA3OTI5LCAwLjMyMzI1OSwgMC40MDY3OSwgMC41MTA1MTUsIDAuNjE0MTQ5LCAwLjcxNzY2MywgMC44MjEyOTIiLCBcCi0gICAgICAgICAgIjAuMjE2MDk3LCAwLjMzMTM3OCwgMC40MTQ5OTcsIDAuNTE4NjQsIDAuNjIyMjgxLCAwLjcyNTg5LCAwLjgyOTQ2NyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzI1OTEsIDAuMjcyMzcyLCAwLjQzNTYsIDAuNjQyNjEyLCAwLjg1MTk3MiwgMS4wNTk1MSwgMS4yNzA4MyIsIFwKLSAgICAgICAgICAiMC4wNzI0NjgsIDAuMjcyMzE1LCAwLjQzNTYzNCwgMC42NDM0MiwgMC44NTIyMDksIDEuMDYwNTgsIDEuMjY4MTUiLCBcCi0gICAgICAgICAgIjAuMDcyNTU5LCAwLjI3MjM2LCAwLjQzNTU5OSwgMC42NDI1NDUsIDAuODUxODc3LCAxLjA1OTM2LCAxLjI3MDI1IiwgXAotICAgICAgICAgICIwLjA3MjQ2OCwgMC4yNzIzMDQsIDAuNDM1NjM1LCAwLjY0MjYwNiwgMC44NTIxMTQsIDEuMDYwOCwgMS4yNjc5OCIsIFwKLSAgICAgICAgICAiMC4wNzI1NjQsIDAuMjcyMzQ5LCAwLjQzNTUyNywgMC42NDI0NDUsIDAuODUxODM1LCAxLjA1OTM5LCAxLjI3MDcyIiwgXAotICAgICAgICAgICIwLjA3MjQxNywgMC4yNzIzMjQsIDAuNDM1NjQ1LCAwLjY0MzYyMiwgMC44NDk4NzgsIDEuMDYwMywgMS4yNjgwNSIsIFwKLSAgICAgICAgICAiMC4wNzI3MTgsIDAuMjcyNDc4LCAwLjQzNTY1MSwgMC42NDI2ODcsIDAuODUxOTE1LCAxLjA2MTY4LCAxLjI2OTM0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlMiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE0MDg5NiwgMC4yNTIwMDMsIDAuMzMzODM0LCAwLjQzNTY1NywgMC41Mzc0NzksIDAuNjM5MjgxLCAwLjc0MTEwNSIsIFwKLSAgICAgICAgICAiMC4xNDk2OTksIDAuMjYwODIsIDAuMzQyNjUzLCAwLjQ0NDQ4OSwgMC41NDYyNzEsIDAuNjQ4MDk0LCAwLjc0OTk5MSIsIFwKLSAgICAgICAgICAiMC4xNjA0NDQsIDAuMjcxNjUyLCAwLjM1MzQ4NSwgMC40NTUzMjcsIDAuNTU3MTAxLCAwLjY1ODg5NywgMC43NjA3NjgiLCBcCi0gICAgICAgICAgIjAuMTcxMTYzLCAwLjI4MjM2NiwgMC4zNjQyMiwgMC40NjYwMzQsIDAuNTY3ODUzLCAwLjY2OTYzNCwgMC43NzE0NjQiLCBcCi0gICAgICAgICAgIjAuMTgxOTIyLCAwLjI5MzA5OCwgMC4zNzQ5ODgsIDAuNDc2ODEzLCAwLjU3ODU5NCwgMC42ODA0MTEsIDAuNzgyMjM0IiwgXAotICAgICAgICAgICIwLjE5ODc5OCwgMC4zMDk5ODcsIDAuMzkxODQ4LCAwLjQ5MzcxLCAwLjU5NTQ0OSwgMC42OTcyNywgMC43OTkwOTkiLCBcCi0gICAgICAgICAgIjAuMjEyMzU1LCAwLjMyMzU0NywgMC40MDUzODcsIDAuNTA3MjIzLCAwLjYwOTAwNCwgMC43MTA4MywgMC44MTI2MSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjk3MzMsIDAuMjY5NTc5LCAwLjQzNDAwMSwgMC42NDExODUsIDAuODUwODMxLCAxLjA1ODgxLCAxLjI3MDM3IiwgXAotICAgICAgICAgICIwLjA2OTY0MiwgMC4yNjk1MzIsIDAuNDMzOTY5LCAwLjY0MTU0NywgMC44NTA0MTcsIDEuMDYwMTEsIDEuMjcwMzIiLCBcCi0gICAgICAgICAgIjAuMDY5NTcyLCAwLjI2OTQ5OCwgMC40MzM5NTIsIDAuNjQxNjYxLCAwLjg1MDQ0OSwgMS4wNTk5MiwgMS4yNzAyOCIsIFwKLSAgICAgICAgICAiMC4wNjk2NDEsIDAuMjY5NTI3LCAwLjQzMzg5MywgMC42NDE1MzMsIDAuODUwODU2LCAxLjA1OTg3LCAxLjI3MDI4IiwgXAotICAgICAgICAgICIwLjA2OTY5NSwgMC4yNjk1MzMsIDAuNDMzODgxLCAwLjY0MTY3NywgMC44NTA3MTEsIDEuMDYwMTEsIDEuMjcwMjYiLCBcCi0gICAgICAgICAgIjAuMDY5NzMsIDAuMjY5NTI5LCAwLjQzMzkxMywgMC42NDE3NDMsIDAuODUwODc1LCAxLjA1OTc3LCAxLjI3MDI2IiwgXAotICAgICAgICAgICIwLjA3MDEyLCAwLjI2OTY2MiwgMC40MzM5NzIsIDAuNjQxNTYsIDAuODUwMzU3LCAxLjA1OTg2LCAxLjI2OTg4Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE0NzA3NCwgMC4yNjIyNDMsIDAuMzQ1NzkzLCAwLjQ0OTQ3NCwgMC41NTMwOTIsIDAuNjU2NjI2LCAwLjc2MDI0MyIsIFwKLSAgICAgICAgICAiMC4xNTU3NTUsIDAuMjcwOTI2LCAwLjM1NDQ5MiwgMC40NTgxNywgMC41NjE3OSwgMC42NjUzMjcsIDAuNzY4OTQ4IiwgXAotICAgICAgICAgICIwLjE2NTY2OSwgMC4yODA4NDksIDAuMzY0MzgxLCAwLjQ2ODA2OCwgMC41NzE2NDMsIDAuNjc1MjE2LCAwLjc3ODg5MSIsIFwKLSAgICAgICAgICAiMC4xNzU0MjUsIDAuMjkwNjMxLCAwLjM3NDE2MywgMC40Nzc4NjcsIDAuNTgxNDMzLCAwLjY4NDk5OSwgMC43ODg2MjEiLCBcCi0gICAgICAgICAgIjAuMTg1MDAyLCAwLjMwMDIzMiwgMC4zODM3NzQsIDAuNDg3NDg3LCAwLjU5MTA4LCAwLjY5NDYzNCwgMC43OTgyNTciLCBcCi0gICAgICAgICAgIjAuMjAwMTA3LCAwLjMxNTI5OSwgMC4zOTg4NjEsIDAuNTAyNTg1LCAwLjYwNjE1NiwgMC43MDk3MDksIDAuODEzMzQzIiwgXAotICAgICAgICAgICIwLjIxMjM0MiwgMC4zMjc2NjcsIDAuNDExMjI4LCAwLjUxNDkxMSwgMC42MTg1MDEsIDAuNzIyMDcxLCAwLjgyNTcwMyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzI1MTQsIDAuMjcyMjk1LCAwLjQzNTU2OCwgMC42NDMzMTMsIDAuODUyMDMxLCAxLjA2MDc2LCAxLjI3MDY2IiwgXAotICAgICAgICAgICIwLjA3MjQ3NiwgMC4yNzIyODUsIDAuNDM1NTY1LCAwLjY0MzM0OSwgMC44NTIwMjMsIDEuMDYwNzQsIDEuMjcxMjYiLCBcCi0gICAgICAgICAgIjAuMDcyNTEsIDAuMjcyMjksIDAuNDM1NTM5LCAwLjY0MjU3NCwgMC44NTE4MzgsIDEuMDYxMTIsIDEuMjcwNjIiLCBcCi0gICAgICAgICAgIjAuMDcyNTAxLCAwLjI3MjI4NSwgMC40MzU1NDMsIDAuNjQzNDQsIDAuODUxODU3LCAxLjA2MTEsIDEuMjcwMjgiLCBcCi0gICAgICAgICAgIjAuMDcyNDU0LCAwLjI3MjI0NSwgMC40MzU1NywgMC42NDMzMywgMC44NTIxMjcsIDEuMDYwNjMsIDEuMjcwMTciLCBcCi0gICAgICAgICAgIjAuMDcyNSwgMC4yNzIyODEsIDAuNDM1NDg1LCAwLjY0MzUyMywgMC44NTE5MDIsIDEuMDYxMzIsIDEuMjY4MjIiLCBcCi0gICAgICAgICAgIjAuMDcyOTE5LCAwLjI3MjQ3MywgMC40MzU1NzYsIDAuNjQzMzIyLCAwLjg1MTg3OSwgMS4wNjAzOSwgMS4yNzExMSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJYMiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg5Nzc0LCAwLjE5OTk3NiwgMC4yODE2NTUsIDAuMzgzMzk4LCAwLjQ4NTE1NywgMC41ODY5MzUsIDAuNjg4Njk3IiwgXAotICAgICAgICAgICIwLjA5OTA3NywgMC4yMDkyNzUsIDAuMjkwOTQ5LCAwLjM5MjcwMywgMC40OTQ0MzIsIDAuNTk2MjI4LCAwLjY5Nzk5OCIsIFwKLSAgICAgICAgICAiMC4xMTAzMiwgMC4yMjA0NzIsIDAuMzAyMTI1LCAwLjQwMzg4OCwgMC41MDU2MjgsIDAuNjA3MzkzLCAwLjcwOTIzNyIsIFwKLSAgICAgICAgICAiMC4xMjE2MzUsIDAuMjMxNzI1LCAwLjMxMzQwOCwgMC40MTUxNjgsIDAuNTE2OSwgMC42MTg3MTMsIDAuNzIwNDYxIiwgXAotICAgICAgICAgICIwLjEzMjY5NywgMC4yNDI3NzIsIDAuMzI0NDU3LCAwLjQyNjIwNywgMC41MjgsIDAuNjI5NzQ5LCAwLjczMTUyIiwgXAotICAgICAgICAgICIwLjE0OTE1NSwgMC4yNTkzMTgsIDAuMzQwOTg0LCAwLjQ0Mjc0OCwgMC41NDQ0OCwgMC42NDYyNzcsIDAuNzQ4MDUiLCBcCi0gICAgICAgICAgIjAuMTYyMDYxLCAwLjI3MjI5NSwgMC4zNTM5NzgsIDAuNDU1NzMyLCAwLjU1NzQ2MiwgMC42NTkyNTQsIDAuNzYwOTM3Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2ODAyNywgMC4yNjgyNTMsIDAuNDMyNTY3LCAwLjY0MDM5OSwgMC44NTAyMTcsIDEuMDU3NiwgMS4yNjk4NSIsIFwKLSAgICAgICAgICAiMC4wNjgwNTIsIDAuMjY4MjU2LCAwLjQzMjU0OCwgMC42NDA4NzMsIDAuODQ5ODkyLCAxLjA1NzYxLCAxLjI2OTgyIiwgXAotICAgICAgICAgICIwLjA2NzgxOSwgMC4yNjgzNjIsIDAuNDMyNjg4LCAwLjY0MDg2LCAwLjg0ODk3MywgMS4wNTk3OCwgMS4yNjcwNSIsIFwKLSAgICAgICAgICAiMC4wNjc2NjQsIDAuMjY4MzE1LCAwLjQzMjUyOSwgMC42NDA4NDYsIDAuODQ5NzgxLCAxLjA1Nzg4LCAxLjI2OTc4IiwgXAotICAgICAgICAgICIwLjA2NzYyNiwgMC4yNjgxMjIsIDAuNDMyNDY5LCAwLjY0MDc2NywgMC44NTAxMywgMS4wNTgzLCAxLjI2OTU3IiwgXAotICAgICAgICAgICIwLjA2ODUzMSwgMC4yNjgzNDIsIDAuNDMyNTc1LCAwLjY0MDgyOCwgMC44NDk4MTQsIDEuMDU4MjgsIDEuMjY5NTgiLCBcCi0gICAgICAgICAgIjAuMDY5OTIsIDAuMjY4NzgxLCAwLjQzMzIyMiwgMC42NDA5NzgsIDAuODQ5NzA0LCAxLjA1ODMyLCAxLjI2OTQyIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5NTkzNywgMC4yMTA3OTQsIDAuMjk0MjE0LCAwLjM5Nzg2NiwgMC41MDE0MzcsIDAuNjA0OTI0LCAwLjcwODUyNyIsIFwKLSAgICAgICAgICAiMC4xMDQ4OTYsIDAuMjE5NzUzLCAwLjMwMzE3MywgMC40MDY4MzUsIDAuNTEwMzU1LCAwLjYxMzg4OCwgMC43MTc1MDQiLCBcCi0gICAgICAgICAgIjAuMTE1ODY4LCAwLjIzMDY0LCAwLjMxNDA5NiwgMC40MTc3MjIsIDAuNTIxMjYxLCAwLjYyNDgxMywgMC43MjgzOTUiLCBcCi0gICAgICAgICAgIjAuMTI2NTcyLCAwLjI0MTMzNCwgMC4zMjQ3ODEsIDAuNDI4NDEyLCAwLjUzMTk1MSwgMC42MzU1MDMsIDAuNzM5MTA0IiwgXAotICAgICAgICAgICIwLjEzNzI4MiwgMC4yNTE5LCAwLjMzNTM2MSwgMC40MzkwMDgsIDAuNTQyNTUyLCAwLjY0NjEzOSwgMC43NDk2OTgiLCBcCi0gICAgICAgICAgIjAuMTUyOTAzLCAwLjI2NzYwMywgMC4zNTEwNjcsIDAuNDU0Njk4LCAwLjU1ODI0MiwgMC42NjE3ODksIDAuNzY1NDIzIiwgXAotICAgICAgICAgICIwLjE2NTEzNCwgMC4yNzk4NzIsIDAuMzYzMjYyLCAwLjQ2Njk0MiwgMC41NzA1MDcsIDAuNjc0MDMyLCAwLjc3NzYyMyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzEzOCwgMC4yNzE4NDEsIDAuNDM1NTE4LCAwLjY0MzIxOCwgMC44NTE4NDIsIDEuMDU5OSwgMS4yNjc4OCIsIFwKLSAgICAgICAgICAiMC4wNzEzNDQsIDAuMjcxODI1LCAwLjQzNTQ5OCwgMC42NDMyMTksIDAuODUwNjUsIDEuMDU5MDEsIDEuMjY4MjkiLCBcCi0gICAgICAgICAgIjAuMDcxMTc5LCAwLjI3MTY2NCwgMC40MzUxNjQsIDAuNjQyMjM5LCAwLjg1MTA5MSwgMS4wNjA4NSwgMS4yNjkyIiwgXAotICAgICAgICAgICIwLjA3MDg0MSwgMC4yNzE2NzMsIDAuNDM1MDM2LCAwLjY0MjE3LCAwLjg1MTUwMiwgMS4wNTkxNiwgMS4yNzA4MSIsIFwKLSAgICAgICAgICAiMC4wNzA2MjUsIDAuMjcxNjE3LCAwLjQzNTAwNiwgMC42NDIyNjIsIDAuODUwMTYxLCAxLjA2MTAyLCAxLjI2NzY0IiwgXAotICAgICAgICAgICIwLjA3MTA5MywgMC4yNzE2MTQsIDAuNDM1MDM2LCAwLjY0MzE1OCwgMC44NTEwMjgsIDEuMDU5MTksIDEuMjY3MzYiLCBcCi0gICAgICAgICAgIjAuMDcyMDA4LCAwLjI3MTg5OCwgMC40MzU1MTIsIDAuNjQzMjY2LCAwLjg1MTY5LCAxLjA1OTA3LCAxLjI2NzcyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlgyIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTQ3NTEsIDAuMjA1NTA5LCAwLjI4NzI0MywgMC4zODkwMTUsIDAuNDkwNzUyLCAwLjU5MjYwMywgMC42OTQ0MDEiLCBcCi0gICAgICAgICAgIjAuMTA0NzIxLCAwLjIxNTUwMiwgMC4yOTcyMjIsIDAuMzk4OTk2LCAwLjUwMDc2MywgMC42MDI1MjQsIDAuNzA0MzczIiwgXAotICAgICAgICAgICIwLjExNjQzMSwgMC4yMjcyNDQsIDAuMzA4OTg1LCAwLjQxMDc2OCwgMC41MTI0OTMsIDAuNjE0MjU3LCAwLjcxNjExIiwgXAotICAgICAgICAgICIwLjEyNjMwMiwgMC4yMzcwODQsIDAuMzE4ODEsIDAuNDIwNjIyLCAwLjUyMjM2NiwgMC42MjQxMDYsIDAuNzI1OTU5IiwgXAotICAgICAgICAgICIwLjEzNDE3OCwgMC4yNDQ4ODcsIDAuMzI2NjE0LCAwLjQyODM5MiwgMC41MzAxNjMsIDAuNjMyMDMyLCAwLjczMzc3OSIsIFwKLSAgICAgICAgICAiMC4xNDQ1MTUsIDAuMjU1MTY4LCAwLjMzNjkzMSwgMC40Mzg2ODksIDAuNTQwMzQ0LCAwLjY0MjIwOCwgMC43NDQwNzgiLCBcCi0gICAgICAgICAgIjAuMTUyMTY1LCAwLjI2MjU2NiwgMC4zNDQzMTgsIDAuNDQ2MTYxLCAwLjU0Nzg4LCAwLjY0OTc2OSwgMC43NTE0NyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjg2OCwgMC4yNjkwMDUsIDAuNDMyOTE1LCAwLjY0MTE1OCwgMC44NTAwNTEsIDEuMDYwMTEsIDEuMjY3MTUiLCBcCi0gICAgICAgICAgIjAuMDY4NTM2LCAwLjI2ODk4OCwgMC40MzI4ODksIDAuNjQxMTU2LCAwLjg1MDMzNiwgMS4wNTg1NywgMS4yNjcxNiIsIFwKLSAgICAgICAgICAiMC4wNjg0NjcsIDAuMjY4ODU4LCAwLjQzMzQ3MywgMC42NDAzOTEsIDAuODUwMTQzLCAxLjA1ODU1LCAxLjI2NzE1IiwgXAotICAgICAgICAgICIwLjA2ODI4MywgMC4yNjg3OTMsIDAuNDMzMTc1LCAwLjY0MTMsIDAuODQ5MTY0LCAxLjA1ODUzLCAxLjI2NzE1IiwgXAotICAgICAgICAgICIwLjA2ODEzMywgMC4yNjg5NDEsIDAuNDMzMzk0LCAwLjY0MTExOCwgMC44NTAyMDcsIDEuMDU4NCwgMS4yNjcxNSIsIFwKLSAgICAgICAgICAiMC4wNjc4NjMsIDAuMjY4ODMyLCAwLjQzMzM5MSwgMC42NDEwNCwgMC44NTAwMTIsIDEuMDU4MzcsIDEuMjY3MjYiLCBcCi0gICAgICAgICAgIjAuMDY3OTE0LCAwLjI2ODY1NiwgMC40MzMyMDMsIDAuNjQxMjQ2LCAwLjg0OTk1NiwgMS4wNTk3NCwgMS4yNjk0NSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDE1OTEsIDAuMjE1NzUxLCAwLjI5OTE5NywgMC40MDI4MzIsIDAuNTA2Mzc1LCAwLjYwOTkyMiwgMC43MTM2MjMiLCBcCi0gICAgICAgICAgIjAuMTEyMDU0LCAwLjIyNjMxNSwgMC4zMDk3MjQsIDAuNDEzMzMxLCAwLjUxNjg3NywgMC42MjA0NjYsIDAuNzI0MTMyIiwgXAotICAgICAgICAgICIwLjEyNDI5MywgMC4yMzg1MzIsIDAuMzIxODc1LCAwLjQyNTUwMiwgMC41MjkxMTYsIDAuNjMyNjAzLCAwLjczNjI5NiIsIFwKLSAgICAgICAgICAiMC4xMzUwNDcsIDAuMjQ5MjU5LCAwLjMzMjYxOSwgMC40MzYyMzMsIDAuNTM5ODMxLCAwLjY0MzMzOCwgMC43NDcwMjciLCBcCi0gICAgICAgICAgIjAuMTQzNDA4LCAwLjI1NzYxLCAwLjM0MDk5NCwgMC40NDQ2MSwgMC41NDgxNTUsIDAuNjUxNzEzLCAwLjc1NTI0OCIsIFwKLSAgICAgICAgICAiMC4xNTQ4NzcsIDAuMjY5MDIzLCAwLjM1MjQwMiwgMC40NTYwMjYsIDAuNTU5NjQxLCAwLjY2MzEyOSwgMC43NjY4MTUiLCBcCi0gICAgICAgICAgIjAuMTYzNjExLCAwLjI3NzYxOSwgMC4zNjEwMjksIDAuNDY0NTE3LCAwLjU2ODIxMSwgMC42NzE3NDksIDAuNzc1NDE1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3MTA5LCAwLjI3MTA3NSwgMC40MzQ2ODcsIDAuNjQxOTY0LCAwLjg1MDAxMywgMS4wNjA4NCwgMS4yNjc3NCIsIFwKLSAgICAgICAgICAiMC4wNzEsIDAuMjcxMTYzLCAwLjQzNDY3NiwgMC42NDE4ODYsIDAuODUwNzc0LCAxLjA2MDk3LCAxLjI2NzM3IiwgXAotICAgICAgICAgICIwLjA3MTAxNSwgMC4yNzEwODYsIDAuNDM0OTQ2LCAwLjY0MjcyMiwgMC44NDk5NjksIDEuMDU4ODYsIDEuMjY2OTMiLCBcCi0gICAgICAgICAgIjAuMDcwODY3LCAwLjI3MTA1NCwgMC40MzQ5OTcsIDAuNjQxODQ3LCAwLjg1MTYwNSwgMS4wNTg4NiwgMS4yNjcwMiIsIFwKLSAgICAgICAgICAiMC4wNzA3MTYsIDAuMjcxMDY4LCAwLjQzNDU2LCAwLjY0MTc2MSwgMC44NTEyOTQsIDEuMDU4OSwgMS4yNjk2NCIsIFwKLSAgICAgICAgICAiMC4wNzA0NDEsIDAuMjcwODQ2LCAwLjQzNDU3NiwgMC42NDI2NjgsIDAuODQ5ODIyLCAxLjA1ODg2LCAxLjI2NzA0IiwgXAotICAgICAgICAgICIwLjA3MDMxOSwgMC4yNzA4MjIsIDAuNDM0NTA0LCAwLjY0MjY1NCwgMC44NDk0MTcsIDEuMDU4ODksIDEuMjY3MDUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDM3NiwgMC4wMDM4MzcsIDAuMDAzODU0LCAwLjAwMzg2NCwgMC4wMDM4NjksIDAuMDAzODczLCAwLjAwMzg3NSIsIFwKLSAgICAgICAgICAiMC4wMDM3MjQsIDAuMDAzODAxLCAwLjAwMzgxOSwgMC4wMDM4MywgMC4wMDM4MzUsIDAuMDAzODM2LCAwLjAwMzgzOSIsIFwKLSAgICAgICAgICAiMC4wMDM3MDcsIDAuMDAzNzgzLCAwLjAwMzgsIDAuMDAzODEsIDAuMDAzODE2LCAwLjAwMzgxOSwgMC4wMDM4MjMiLCBcCi0gICAgICAgICAgIjAuMDAzNjk3LCAwLjAwMzc3MSwgMC4wMDM3ODksIDAuMDAzOCwgMC4wMDM4MDYsIDAuMDAzODEzLCAwLjAwMzgxMyIsIFwKLSAgICAgICAgICAiMC4wMDM2OTEsIDAuMDAzNzY1LCAwLjAwMzc4MywgMC4wMDM3OTQsIDAuMDAzODAxLCAwLjAwMzgwNCwgMC4wMDM4MDciLCBcCi0gICAgICAgICAgIjAuMDAzNjkxLCAwLjAwMzc2LCAwLjAwMzc4LCAwLjAwMzc5MiwgMC4wMDM4LCAwLjAwMzgwMywgMC4wMDM4MDYiLCBcCi0gICAgICAgICAgIjAuMDAzNjk4LCAwLjAwMzc2NSwgMC4wMDM3ODUsIDAuMDAzNzk4LCAwLjAwMzgwNSwgMC4wMDM4MSwgMC4wMDM4MTMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDg4NTcsIDAuMDA4OTU5LCAwLjAwODk4MSwgMC4wMDg5OTQsIDAuMDA5MDAxLCAwLjAwOTAwNSwgMC4wMDkwMDgiLCBcCi0gICAgICAgICAgIjAuMDA4ODM4LCAwLjAwODkzOSwgMC4wMDg5NjIsIDAuMDA4OTc1LCAwLjAwODk4MiwgMC4wMDg5ODYsIDAuMDA4OTg5IiwgXAotICAgICAgICAgICIwLjAwODgyNiwgMC4wMDg5MjcsIDAuMDA4OTUsIDAuMDA4OTYzLCAwLjAwODk3LCAwLjAwODk3NSwgMC4wMDg5NzgiLCBcCi0gICAgICAgICAgIjAuMDA4ODE5LCAwLjAwODkxOSwgMC4wMDg5NDMsIDAuMDA4OTU3LCAwLjAwODk2NCwgMC4wMDg5NjksIDAuMDA4OTcyIiwgXAotICAgICAgICAgICIwLjAwODgxNywgMC4wMDg5MTUsIDAuMDA4OTM5LCAwLjAwODk1NCwgMC4wMDg5NjIsIDAuMDA4OTY3LCAwLjAwODk3IiwgXAotICAgICAgICAgICIwLjAwODgxNywgMC4wMDg5MTEsIDAuMDA4OTM2LCAwLjAwODk1MiwgMC4wMDg5NjEsIDAuMDA4OTY2LCAwLjAwODk3IiwgXAotICAgICAgICAgICIwLjAwODgyMiwgMC4wMDg5MTIsIDAuMDA4OTM5LCAwLjAwODk1NSwgMC4wMDg5NjUsIDAuMDA4OTcsIDAuMDA4OTc0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiTTAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNTIxNSwgMC4wMDUyOTQsIDAuMDA1MzEzLCAwLjAwNTMyMywgMC4wMDUzMjgsIDAuMDA1MzMsIDAuMDA1MzM0IiwgXAotICAgICAgICAgICIwLjAwNTE5NywgMC4wMDUyNzYsIDAuMDA1Mjk0LCAwLjAwNTMwMywgMC4wMDUzMDksIDAuMDA1MzE0LCAwLjAwNTMxNSIsIFwKLSAgICAgICAgICAiMC4wMDUyMDEsIDAuMDA1MjgxLCAwLjAwNTI5OSwgMC4wMDUzMDgsIDAuMDA1MzEzLCAwLjAwNTMxNywgMC4wMDUzMTkiLCBcCi0gICAgICAgICAgIjAuMDA1MjA1LCAwLjAwNTI4NSwgMC4wMDUzMDIsIDAuMDA1MzEyLCAwLjAwNTMxNywgMC4wMDUzMjEsIDAuMDA1MzIzIiwgXAotICAgICAgICAgICIwLjAwNTIxNSwgMC4wMDUyOTYsIDAuMDA1MzEyLCAwLjAwNTMyLCAwLjAwNTMyOCwgMC4wMDUzMzEsIDAuMDA1MzM0IiwgXAotICAgICAgICAgICIwLjAwNTIzOSwgMC4wMDUzMTgsIDAuMDA1MzM1LCAwLjAwNTM0NSwgMC4wMDUzNTEsIDAuMDA1MzU0LCAwLjAwNTM1NiIsIFwKLSAgICAgICAgICAiMC4wMDUyNTgsIDAuMDA1MzM5LCAwLjAwNTM1NiwgMC4wMDUzNjIsIDAuMDA1MzczLCAwLjAwNTM3NCwgMC4wMDUzNzciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDU0NzYsIDAuMDA1NTc4LCAwLjAwNTYsIDAuMDA1NjE0LCAwLjAwNTYyMSwgMC4wMDU2MjUsIDAuMDA1NjI4IiwgXAotICAgICAgICAgICIwLjAwNTQ1MywgMC4wMDU1NTQsIDAuMDA1NTc3LCAwLjAwNTU5LCAwLjAwNTU5OCwgMC4wMDU2MDIsIDAuMDA1NjA1IiwgXAotICAgICAgICAgICIwLjAwNTQ1OCwgMC4wMDU1NTksIDAuMDA1NTgyLCAwLjAwNTU5NSwgMC4wMDU2MDIsIDAuMDA1NjA3LCAwLjAwNTYxIiwgXAotICAgICAgICAgICIwLjAwNTQ3MSwgMC4wMDU1NzIsIDAuMDA1NTk1LCAwLjAwNTYwOSwgMC4wMDU2MTYsIDAuMDA1NjIsIDAuMDA1NjIzIiwgXAotICAgICAgICAgICIwLjAwNTQ3MSwgMC4wMDU1NzMsIDAuMDA1NTk1LCAwLjAwNTYwOCwgMC4wMDU2MTUsIDAuMDA1NjIxLCAwLjAwNTYyMyIsIFwKLSAgICAgICAgICAiMC4wMDU0OTcsIDAuMDA1NTk4LCAwLjAwNTYyLCAwLjAwNTYzNCwgMC4wMDU2NDEsIDAuMDA1NjQ2LCAwLjAwNTY0OSIsIFwKLSAgICAgICAgICAiMC4wMDU1MTYsIDAuMDA1NjE3LCAwLjAwNTY0NSwgMC4wMDU2NTksIDAuMDA1NjY2LCAwLjAwNTY3MSwgMC4wMDU2NzQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJNMSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1MjM4LCAwLjAwNTMxMywgMC4wMDUzMywgMC4wMDUzNDEsIDAuMDA1MzQ2LCAwLjAwNTM0OSwgMC4wMDUzNTIiLCBcCi0gICAgICAgICAgIjAuMDA1MjIyLCAwLjAwNTI5NiwgMC4wMDUzMTQsIDAuMDA1MzI1LCAwLjAwNTMyOSwgMC4wMDUzMzMsIDAuMDA1MzM2IiwgXAotICAgICAgICAgICIwLjAwNTIyOCwgMC4wMDUzMDMsIDAuMDA1MzIsIDAuMDA1MzMsIDAuMDA1MzM2LCAwLjAwNTM0LCAwLjAwNTM0MiIsIFwKLSAgICAgICAgICAiMC4wMDUyMywgMC4wMDUzMDYsIDAuMDA1MzIzLCAwLjAwNTMzNCwgMC4wMDUzMzksIDAuMDA1MzQyLCAwLjAwNTM0NiIsIFwKLSAgICAgICAgICAiMC4wMDUyNDIsIDAuMDA1MzE4LCAwLjAwNTMzNCwgMC4wMDUzNDQsIDAuMDA1MzUxLCAwLjAwNTM1MSwgMC4wMDUzNTciLCBcCi0gICAgICAgICAgIjAuMDA1MjY3LCAwLjAwNTM0MSwgMC4wMDUzNTgsIDAuMDA1MzY1LCAwLjAwNTM3NSwgMC4wMDUzNzgsIDAuMDA1MzgiLCBcCi0gICAgICAgICAgIjAuMDA1Mjg2LCAwLjAwNTM2MywgMC4wMDUzOCwgMC4wMDUzODgsIDAuMDA1Mzk4LCAwLjAwNTQsIDAuMDA1NDAyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1ODIzLCAwLjAwNTkyNCwgMC4wMDU5NDgsIDAuMDA1OTYyLCAwLjAwNTk2OSwgMC4wMDU5NzQsIDAuMDA1OTc3IiwgXAotICAgICAgICAgICIwLjAwNTgwMiwgMC4wMDU5MDMsIDAuMDA1OTI3LCAwLjAwNTk0LCAwLjAwNTk0OCwgMC4wMDU5NTMsIDAuMDA1OTU2IiwgXAotICAgICAgICAgICIwLjAwNTgwNywgMC4wMDU5MDcsIDAuMDA1OTMxLCAwLjAwNTk0NSwgMC4wMDU5NTMsIDAuMDA1OTU4LCAwLjAwNTk2MSIsIFwKLSAgICAgICAgICAiMC4wMDU4MjEsIDAuMDA1OTIyLCAwLjAwNTk0NiwgMC4wMDU5NiwgMC4wMDU5NjcsIDAuMDA1OTcyLCAwLjAwNTk3NiIsIFwKLSAgICAgICAgICAiMC4wMDU4MjMsIDAuMDA1OTIzLCAwLjAwNTk0NywgMC4wMDU5NjEsIDAuMDA1OTY5LCAwLjAwNTk3NCwgMC4wMDU5NzciLCBcCi0gICAgICAgICAgIjAuMDA1ODQ4LCAwLjAwNTk0OSwgMC4wMDU5NywgMC4wMDU5ODYsIDAuMDA1OTk0LCAwLjAwNTk5OCwgMC4wMDYwMDIiLCBcCi0gICAgICAgICAgIjAuMDA1ODcxLCAwLjAwNTk3MiwgMC4wMDU5OTYsIDAuMDA2MDEsIDAuMDA2MDE4LCAwLjAwNjAyMywgMC4wMDYwMjYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQwOCwgMC4wMDQxNTcsIDAuMDA0MTc0LCAwLjAwNDE4NCwgMC4wMDQxODksIDAuMDA0MTkzLCAwLjAwNDE5NSIsIFwKLSAgICAgICAgICAiMC4wMDQwNDUsIDAuMDA0MTIyLCAwLjAwNDEzOSwgMC4wMDQxNDksIDAuMDA0MTU1LCAwLjAwNDE1NywgMC4wMDQxNiIsIFwKLSAgICAgICAgICAiMC4wMDQwMjcsIDAuMDA0MTAzLCAwLjAwNDEyLCAwLjAwNDEzMSwgMC4wMDQxMzYsIDAuMDA0MTQsIDAuMDA0MTQyIiwgXAotICAgICAgICAgICIwLjAwNDAxOCwgMC4wMDQwOTIsIDAuMDA0MTEsIDAuMDA0MTIyLCAwLjAwNDEyNywgMC4wMDQxMzEsIDAuMDA0MTM0IiwgXAotICAgICAgICAgICIwLjAwNDAxMywgMC4wMDQwODYsIDAuMDA0MTA1LCAwLjAwNDExNiwgMC4wMDQxMjMsIDAuMDA0MTI3LCAwLjAwNDEzIiwgXAotICAgICAgICAgICIwLjAwNDAxNywgMC4wMDQwODUsIDAuMDA0MTA1LCAwLjAwNDExNywgMC4wMDQxMjUsIDAuMDA0MTI5LCAwLjAwNDEzMiIsIFwKLSAgICAgICAgICAiMC4wMDQwMjMsIDAuMDA0MDg5LCAwLjAwNDExLCAwLjAwNDEyMywgMC4wMDQxMzIsIDAuMDA0MTM0LCAwLjAwNDEzOSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwODQyNywgMC4wMDg1MywgMC4wMDg1NTIsIDAuMDA4NTY1LCAwLjAwODU3MiwgMC4wMDg1NzYsIDAuMDA4NTc5IiwgXAotICAgICAgICAgICIwLjAwODQwOSwgMC4wMDg1MTEsIDAuMDA4NTMzLCAwLjAwODU0NiwgMC4wMDg1NTMsIDAuMDA4NTU3LCAwLjAwODU2IiwgXAotICAgICAgICAgICIwLjAwODM5NywgMC4wMDg0OTksIDAuMDA4NTIyLCAwLjAwODUzNSwgMC4wMDg1NDIsIDAuMDA4NTQ2LCAwLjAwODU0OSIsIFwKLSAgICAgICAgICAiMC4wMDgzOTEsIDAuMDA4NDkxLCAwLjAwODUxNSwgMC4wMDg1MjksIDAuMDA4NTM2LCAwLjAwODU0MSwgMC4wMDg1NDQiLCBcCi0gICAgICAgICAgIjAuMDA4Mzg4LCAwLjAwODQ4NiwgMC4wMDg1MTEsIDAuMDA4NTI1LCAwLjAwODUzMywgMC4wMDg1MzksIDAuMDA4NTQyIiwgXAotICAgICAgICAgICIwLjAwODM4OCwgMC4wMDg0ODMsIDAuMDA4NTA5LCAwLjAwODUyNCwgMC4wMDg1MzMsIDAuMDA4NTM4LCAwLjAwODU0MiIsIFwKLSAgICAgICAgICAiMC4wMDgzOTMsIDAuMDA4NDg1LCAwLjAwODUxMiwgMC4wMDg1MjgsIDAuMDA4NTM4LCAwLjAwODU0NCwgMC4wMDg1NDgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJYMiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0NDQ0LCAwLjAwNDUxOSwgMC4wMDQ1MzMsIDAuMDA0NTM4LCAwLjAwNDU0LCAwLjAwNDU0MSwgMC4wMDQ1NDQiLCBcCi0gICAgICAgICAgIjAuMDA0NDQ5LCAwLjAwNDUyMywgMC4wMDQ1MzYsIDAuMDA0NTQzLCAwLjAwNDU0NiwgMC4wMDQ1NDksIDAuMDA0NTUiLCBcCi0gICAgICAgICAgIjAuMDA0NDg5LCAwLjAwNDU2MSwgMC4wMDQ1NzQsIDAuMDA0NTgyLCAwLjAwNDU4NiwgMC4wMDQ1ODksIDAuMDA0NTkiLCBcCi0gICAgICAgICAgIjAuMDA0NTIsIDAuMDA0NTkyLCAwLjAwNDYwNiwgMC4wMDQ2MTMsIDAuMDA0NjE4LCAwLjAwNDYyMSwgMC4wMDQ2MjQiLCBcCi0gICAgICAgICAgIjAuMDA0NTU2LCAwLjAwNDYyOCwgMC4wMDQ2NDIsIDAuMDA0NjUxLCAwLjAwNDY1NywgMC4wMDQ2NTksIDAuMDA0NjYxIiwgXAotICAgICAgICAgICIwLjAwNDYxNCwgMC4wMDQ2ODIsIDAuMDA0Njk2LCAwLjAwNDcwNSwgMC4wMDQ3MDksIDAuMDA0NzEzLCAwLjAwNDcxNSIsIFwKLSAgICAgICAgICAiMC4wMDQ2NywgMC4wMDQ3MywgMC4wMDQ3NDUsIDAuMDA0NzYsIDAuMDA0NzY0LCAwLjAwNDc2OCwgMC4wMDQ3NyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzQ1NywgMC4wMDM1NTgsIDAuMDAzNTc0LCAwLjAwMzU4MywgMC4wMDM1ODgsIDAuMDAzNTksIDAuMDAzNTkyIiwgXAotICAgICAgICAgICIwLjAwMzQ2NCwgMC4wMDM1NjQsIDAuMDAzNTgsIDAuMDAzNTksIDAuMDAzNTk1LCAwLjAwMzU5OCwgMC4wMDM2IiwgXAotICAgICAgICAgICIwLjAwMzUyLCAwLjAwMzYxNywgMC4wMDM2MzUsIDAuMDAzNjQ1LCAwLjAwMzY1LCAwLjAwMzY1NCwgMC4wMDM2NTYiLCBcCi0gICAgICAgICAgIjAuMDAzNTQ5LCAwLjAwMzY0NiwgMC4wMDM2NjQsIDAuMDAzNjc1LCAwLjAwMzY4MSwgMC4wMDM2ODUsIDAuMDAzNjg3IiwgXAotICAgICAgICAgICIwLjAwMzU4MiwgMC4wMDM2NzgsIDAuMDAzNjk3LCAwLjAwMzcwOCwgMC4wMDM3MTQsIDAuMDAzNzE4LCAwLjAwMzcyMSIsIFwKLSAgICAgICAgICAiMC4wMDM2NTEsIDAuMDAzNzQ0LCAwLjAwMzc2MywgMC4wMDM3NzUsIDAuMDAzNzgyLCAwLjAwMzc4NiwgMC4wMDM3ODkiLCBcCi0gICAgICAgICAgIjAuMDAzNywgMC4wMDM3OTMsIDAuMDAzODEyLCAwLjAwMzgyLCAwLjAwMzgzMSwgMC4wMDM4MzUsIDAuMDAzODM4Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE0MDk1MzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE0MDU5MTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE0MDk1MzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA1NSwgMC4wMDA1MjUsIDAuMDAwNTEzLCAwLjAwMDUwOSwgMC4wMDA1MDgsIDAuMDAwNTExLCAwLjAwMDUxNyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjUzMywgMC4wMDI1MTgsIDAuMDAyNTEyLCAwLjAwMjUxLCAwLjAwMjUxLCAwLjAwMjUxMiwgMC4wMDI1MTciKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFgyKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDExMzkzNDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDExMzg3ODsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDExMzkzNDsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAwMjUsIDAuMDAwMDAzLCAwLjAwMDAwMSwgMC4wMDAwMDYsIDAuMDAwMDIyLCAwLjAwMDA1MSwgMC4wMDAwNzgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDE3NzcsIDAuMDAxNzU2LCAwLjAwMTc2MSwgMC4wMDE3NjUsIDAuMDAxNzcyLCAwLjAwMTc5OCwgMC4wMDE4MjEiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogQlVGWDggKgotICogLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKEJVRlg4KSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMzgxNDgzOwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE2MzEyMTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE2MzA1NTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE2MzEyMTsKLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAyLjAxMDMyOwotICAgIGZ1bmN0aW9uIDogIkEiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM0MzQ5LCAwLjA3MjE1NiwgMC4xMDgyODgsIDAuMTM0MDg4LCAwLjE3NTMzNCwgMC4yMTE0NywgMC4yNjMxMzgiLCBcCi0gICAgICAgICAgIjAuMDQ0NTIyLCAwLjA4MjM3NSwgMC4xMTg1NTYsIDAuMTQ0MzU4LCAwLjE4NTY0NywgMC4yMjE4MDEsIDAuMjczMjYyIiwgXAotICAgICAgICAgICIwLjA1Njg1NSwgMC4wOTQ3NjYsIDAuMTMwOTQ0LCAwLjE1Njc1MiwgMC4xOTgwNjcsIDAuMjM0MTcxLCAwLjI4NTc5NyIsIFwKLSAgICAgICAgICAiMC4wNjc2OTgsIDAuMTA1OCwgMC4xNDE5NSwgMC4xNjc3NjUsIDAuMjA5MDQzLCAwLjI0NTE2MiwgMC4yOTY3ODgiLCBcCi0gICAgICAgICAgIjAuMDc2OTgyLCAwLjExNTYxLCAwLjE1MTc0OCwgMC4xNzc1NDcsIDAuMjE4ODEyLCAwLjI1NDkxOSwgMC4zMDY1NDEiLCBcCi0gICAgICAgICAgIjAuMDg5ODIsIDAuMTI5MjM1LCAwLjE2NTQzNSwgMC4xOTExMDUsIDAuMjMyMzgxLCAwLjI2ODQ2NywgMC4zMjAwNDYiLCBcCi0gICAgICAgICAgIjAuMDk5NDA0LCAwLjEzOTUyOCwgMC4xNzYwMTQsIDAuMjAxNTQyLCAwLjI0MjgwOSwgMC4yNzg4ODYsIDAuMzMwNTAxIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDIxNDEsIDAuMDkyOTI0LCAwLjE2NjQ0MSwgMC4yMTk0NzcsIDAuMzA0MjksIDAuMzc5NzMzLCAwLjQ4NTQ3IiwgXAotICAgICAgICAgICIwLjAyMTM4OCwgMC4wOTI5OTIsIDAuMTY2NjYxLCAwLjIxOTY2NCwgMC4zMDUxNjQsIDAuMzc4OTgzLCAwLjQ4NTk0NyIsIFwKLSAgICAgICAgICAiMC4wMjIxNywgMC4wOTMxMzEsIDAuMTY2ODYzLCAwLjIxOTg2NCwgMC4zMDQ1MzgsIDAuMzc5NTI0LCAwLjQ4NTI4NCIsIFwKLSAgICAgICAgICAiMC4wMjM5NzQsIDAuMDkzNTU3LCAwLjE2NjYzNywgMC4yMjAwNjMsIDAuMzA1MTM5LCAwLjM3OTcwNiwgMC40ODUzMTEiLCBcCi0gICAgICAgICAgIjAuMDI1MzkyLCAwLjA5NDE5OCwgMC4xNjczMTQsIDAuMjIwMjQ5LCAwLjMwNDc4LCAwLjM3OTcwMywgMC40ODUzNDIiLCBcCi0gICAgICAgICAgIjAuMDI3OTU0LCAwLjA5NTIwNSwgMC4xNjc2OTYsIDAuMjIwNDM2LCAwLjMwNTM2OSwgMC4zNzkzMzQsIDAuNDg2MDU2IiwgXAotICAgICAgICAgICIwLjAzMDMxNiwgMC4wOTY0MywgMC4xNjg0MzIsIDAuMjIwNjUxLCAwLjMwNTE3OSwgMC4zNzk3ODksIDAuNDg1NDY4Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM1NjQ3LCAwLjA3NTM3MywgMC4xMTM0NzcsIDAuMTQwNjUxLCAwLjE4NDEyNCwgMC4yMjIwNjEsIDAuMjc2NDQyIiwgXAotICAgICAgICAgICIwLjA0NTU4MiwgMC4wODUzNTEsIDAuMTIzNDU0LCAwLjE1MDYzNywgMC4xOTQwOTMsIDAuMjMyMTQ1LCAwLjI4NjQzOCIsIFwKLSAgICAgICAgICAiMC4wNTc1OCwgMC4wOTczOTgsIDAuMTM1NTAyLCAwLjE2MjY4MywgMC4yMDYxNDUsIDAuMjQ0MTgzLCAwLjI5ODYxMyIsIFwKLSAgICAgICAgICAiMC4wNjgwOTksIDAuMTA4MTg1LCAwLjE0NjIzNSwgMC4xNzM0MTEsIDAuMjE2ODk1LCAwLjI1NDg5MiwgMC4zMDkyNTQiLCBcCi0gICAgICAgICAgIjAuMDc2NTAxLCAwLjExNjQ4NSwgMC4xNTQ0NzYsIDAuMTgxNjI3LCAwLjIyNTA4OCwgMC4yNjMxMTUsIDAuMzE3NDA0IiwgXAotICAgICAgICAgICIwLjA4ODYzNywgMC4xMjk2MDMsIDAuMTY3NTI2LCAwLjE5NDY1NywgMC4yMzgwOTUsIDAuMjc2MTAxLCAwLjMzMDQwNCIsIFwKLSAgICAgICAgICAiMC4wOTc2OTIsIDAuMTM5MTI2LCAwLjE3NzExOCwgMC4yMDQxNDUsIDAuMjQ3NTUsIDAuMjg1NTM1LCAwLjMzOTg2OCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyMTUxNywgMC4wOTU5MzksIDAuMTcyNTg1LCAwLjIyNzUzOCwgMC4zMTU3MzIsIDAuMzkyODgsIDAuNTAyMTkyIiwgXAotICAgICAgICAgICIwLjAyMTUxMywgMC4wOTU5NzgsIDAuMTcyMjcyLCAwLjIyNzA1OSwgMC4zMTU2OTcsIDAuMzkyMzgxLCAwLjUwMTkxOSIsIFwKLSAgICAgICAgICAiMC4wMjIwNzQsIDAuMDk1OTY5LCAwLjE3MjU3MiwgMC4yMjcxOTIsIDAuMzE1NjgsIDAuMzkyOTUxLCAwLjUwMjAxMSIsIFwKLSAgICAgICAgICAiMC4wMjM0MjQsIDAuMDk2Mzc4LCAwLjE3MjcxOSwgMC4yMjcyOSwgMC4zMTQ5LCAwLjM5MjgyMiwgMC41MDIxNTMiLCBcCi0gICAgICAgICAgIjAuMDI0ODAxLCAwLjA5NzExLCAwLjE3MzA2MywgMC4yMjc4NCwgMC4zMTU4NjcsIDAuMzkxOTE2LCAwLjUwMzA4MiIsIFwKLSAgICAgICAgICAiMC4wMjczMDgsIDAuMDk3NzI3LCAwLjE3MzI1MywgMC4yMjc3MjUsIDAuMzE1OTA1LCAwLjM5MzAxNiwgMC41MDMzMDciLCBcCi0gICAgICAgICAgIjAuMDI4OTgxLCAwLjA5ODY3MSwgMC4xNzMyODEsIDAuMjI4MDUxLCAwLjMxNjEyNywgMC4zOTMxMjgsIDAuNTAyMjMxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDgyMjEsIDAuMDA4NTE2LCAwLjAwODU2MSwgMC4wMDg1NzQsIDAuMDA4NTg1LCAwLjAwODU5MSwgMC4wMDg1OTYiLCBcCi0gICAgICAgICAgIjAuMDA4MDcyLCAwLjAwODM5LCAwLjAwODQ0NSwgMC4wMDg0NjEsIDAuMDA4NDksIDAuMDA4NDk0LCAwLjAwODQ5NyIsIFwKLSAgICAgICAgICAiMC4wMDc5ODksIDAuMDA4MzEzLCAwLjAwODM5NywgMC4wMDg0MTgsIDAuMDA4NDQzLCAwLjAwODQ1NiwgMC4wMDg0NjgiLCBcCi0gICAgICAgICAgIjAuMDA4MDY0LCAwLjAwODMyMywgMC4wMDg0MDUsIDAuMDA4NDQzLCAwLjAwODQ2LCAwLjAwODQ4MSwgMC4wMDg0OTYiLCBcCi0gICAgICAgICAgIjAuMDA4MDY4LCAwLjAwODMwNSwgMC4wMDgzOTEsIDAuMDA4NDMzLCAwLjAwODQ1OCwgMC4wMDg0NjIsIDAuMDA4NDg4IiwgXAotICAgICAgICAgICIwLjAwODEyOSwgMC4wMDgzMzIsIDAuMDA4NDIxLCAwLjAwODQ0NiwgMC4wMDg0ODMsIDAuMDA4NTA5LCAwLjAwODUyOCIsIFwKLSAgICAgICAgICAiMC4wMDgyMjQsIDAuMDA4Mzc5LCAwLjAwODQ5MSwgMC4wMDg1MDgsIDAuMDA4NTUsIDAuMDA4NTYzLCAwLjAwODU4NSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEwMjkyLCAwLjAxMDcwNSwgMC4wMTA3NzIsIDAuMDEwNzkyLCAwLjAxMDgxLCAwLjAxMDgyLCAwLjAxMDgyOSIsIFwKLSAgICAgICAgICAiMC4wMTAxMzIsIDAuMDEwNTc4LCAwLjAxMDY2NSwgMC4wMTA2OTMsIDAuMDEwNzE4LCAwLjAxMDczMSwgMC4wMTA3NDMiLCBcCi0gICAgICAgICAgIjAuMDEwMTA5LCAwLjAxMDUxNCwgMC4wMTA2MTksIDAuMDEwNjU1LCAwLjAxMDY4OSwgMC4wMTA3MDcsIDAuMDEwNzIzIiwgXAotICAgICAgICAgICIwLjAxMDA1OSwgMC4wMTA0NjUsIDAuMDEwNTg2LCAwLjAxMDYzLCAwLjAxMDY3MiwgMC4wMTA2OTQsIDAuMDEwNzE1IiwgXAotICAgICAgICAgICIwLjAxMDA1MiwgMC4wMTA0NDksIDAuMDEwNTgyLCAwLjAxMDYzMiwgMC4wMTA2ODIsIDAuMDEwNzA1LCAwLjAxMDczNSIsIFwKLSAgICAgICAgICAiMC4wMTAxOTIsIDAuMDEwNDcsIDAuMDEwNTk3LCAwLjAxMDY0OCwgMC4wMTA2OTQsIDAuMDEwNzIyLCAwLjAxMDc1NSIsIFwKLSAgICAgICAgICAiMC4wMTAyODYsIDAuMDEwNTIsIDAuMDEwNjM5LCAwLjAxMDY5OCwgMC4wMTA3NTIsIDAuMDEwNzc3LCAwLjAxMDgxMyIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IENMS0FORDJYMTIgKgotICogLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoQ0xLQU5EMlgxMikgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjg1OTI1OTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAzNTAwMTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDM1MDAxOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMzQ4MjIxOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTIzOCwgMC4wMDEyMzYsIDAuMDAxMjM2LCAwLjAwMTIzNiwgMC4wMDEyMzYsIDAuMDAxMjM2LCAwLjAwMTIzNiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTMwNCwgMC4wMDEyNDcsIDAuMDAxMjQ1LCAwLjAwMTI0MSwgMC4wMDEyNDEsIDAuMDAxMjQxLCAwLjAwMTI0MSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAzNTQxMDc7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAzNTQxMDc7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAzNTM4MTM7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjY3LCAwLjAwMDI2NiwgMC4wMDAyNjUsIDAuMDAwMjY1LCAwLjAwMDI2NiwgMC4wMDAyNjQsIDAuMDAwMjY1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxNTY0LCAwLjAwMTU2NCwgMC4wMDE1NjUsIDAuMDAxNTY1LCAwLjAwMTU2NSwgMC4wMDE1NjUsIDAuMDAxNTY1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDMuMDMzNTsKLSAgICBmdW5jdGlvbiA6ICIoQSBCKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM4MTY3LCAwLjA0MDk5NCwgMC4wNTQ2MTUsIDAuMDY1NCwgMC4wNzk0MTIsIDAuMTA3MDkyLCAwLjEyNDM1MyIsIFwKLSAgICAgICAgICAiMC4wNDcxMzEsIDAuMDUwMDAyLCAwLjA2MzYxLCAwLjA3NDQxMywgMC4wODgzOTksIDAuMTE2MDc3LCAwLjEzMzMzNyIsIFwKLSAgICAgICAgICAiMC4wNTc3MTgsIDAuMDYwNiwgMC4wNzQyMzgsIDAuMDg1MDM2LCAwLjA5OTAwNSwgMC4xMjY2OCwgMC4xNDM5NDUiLCBcCi0gICAgICAgICAgIjAuMDY2OTE1LCAwLjA2OTg3OCwgMC4wODM3MDUsIDAuMDk0NTM1LCAwLjEwODU0MywgMC4xMzYyMiwgMC4xNTM0ODYiLCBcCi0gICAgICAgICAgIjAuMDc1MTA5LCAwLjA3ODEzNSwgMC4wOTIyMjYsIDAuMTAzMTk2LCAwLjExNzE5NywgMC4xNDQ5MjIsIDAuMTYyMTcxIiwgXAotICAgICAgICAgICIwLjA4NjQyNCwgMC4wODk2MTYsIDAuMTA0MDg4LCAwLjExNTA0OSwgMC4xMjkyMjIsIDAuMTU2OTM5LCAwLjE3NDE3MyIsIFwKLSAgICAgICAgICAiMC4wOTQ5LCAwLjA5ODI5NiwgMC4xMTMwNjcsIDAuMTIzODY4LCAwLjEzODEwOSwgMC4xNjU5MzgsIDAuMTgzMTkzIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxOTI0NCwgMC4wMjM0MDUsIDAuMDQ2MjYxLCAwLjA2NjY0MSwgMC4wOTQyNDIsIDAuMTUwMDk4LCAwLjE4NTQzOCIsIFwKLSAgICAgICAgICAiMC4wMTkyMzUsIDAuMDIzMzYzLCAwLjA0NjIxMSwgMC4wNjY2MDYsIDAuMDk0MjQ3LCAwLjE1MDI0OSwgMC4xODU0MjYiLCBcCi0gICAgICAgICAgIjAuMDE5NTM3LCAwLjAyMzY0MSwgMC4wNDYzOTYsIDAuMDY2NzM1LCAwLjA5NDI5NSwgMC4xNTAyNzMsIDAuMTg1NDY3IiwgXAotICAgICAgICAgICIwLjAyMDcwMywgMC4wMjQ2ODIsIDAuMDQ3MTM2LCAwLjA2NzI2NCwgMC4wOTQ2NzQsIDAuMTUwNTY4LCAwLjE4NTYwOCIsIFwKLSAgICAgICAgICAiMC4wMjE0LCAwLjAyNTQ0OCwgMC4wNDc3NzEsIDAuMDY3ODQxLCAwLjA5NTA2NiwgMC4xNTA4NDgsIDAuMTg2MDEiLCBcCi0gICAgICAgICAgIjAuMDIyOTE2LCAwLjAyNjk3NiwgMC4wNDkwNTcsIDAuMDY4OTM2LCAwLjA5NTk0LCAwLjE1MTI0NiwgMC4xODYyMzciLCBcCi0gICAgICAgICAgIjAuMDI0NDcyLCAwLjAyODM1NSwgMC4wNTAyMzMsIDAuMDcwMTA2LCAwLjA5Njk1OCwgMC4xNTE2ODUsIDAuMTg2NjQ1Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0MTE0MywgMC4wNDQwOTYsIDAuMDU4MzMzLCAwLjA2OTcyNCwgMC4wODQ1MTIsIDAuMTEzODIzLCAwLjEzMjA4NSIsIFwKLSAgICAgICAgICAiMC4wNTA5MDksIDAuMDUzODg1LCAwLjA2ODA3MSwgMC4wNzk0NDEsIDAuMDk0MjUzLCAwLjEyMzU2MSwgMC4xNDE4MzQiLCBcCi0gICAgICAgICAgIjAuMDYzMTYsIDAuMDY2MTQzLCAwLjA4MDMxOCwgMC4wOTE3MTcsIDAuMTA2NTEzLCAwLjEzNTg1LCAwLjE1NDExOCIsIFwKLSAgICAgICAgICAiMC4wNzQ3NzcsIDAuMDc3NzkxLCAwLjA5MjA1OSwgMC4xMDM0NzYsIDAuMTE4Mjg3LCAwLjE0NzYwNywgMC4xNjU4NzgiLCBcCi0gICAgICAgICAgIjAuMDg0NDcxLCAwLjA4NzU1OSwgMC4xMDIxNDcsIDAuMTEzNTkzLCAwLjEyODQ0NSwgMC4xNTc3ODYsIDAuMTc2MDcxIiwgXAotICAgICAgICAgICIwLjA5Nzg5NywgMC4xMDExNTMsIDAuMTE2MTE0LCAwLjEyNzcyNywgMC4xNDI2NjMsIDAuMTcxOTIsIDAuMTkwMjA3IiwgXAotICAgICAgICAgICIwLjEwODA4NCwgMC4xMTE1MjgsIDAuMTI2OTExLCAwLjEzODU5OSwgMC4xNTM0ODgsIDAuMTgyOTMyLCAwLjIwMTE4MSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTk3NDcsIDAuMDIzOTA0LCAwLjA0NzM4NCwgMC4wNjg0NzgsIDAuMDk3MDM4LCAwLjE1NDk3NSwgMC4xOTE1MjciLCBcCi0gICAgICAgICAgIjAuMDE5NjgzLCAwLjAyMzg3MywgMC4wNDczODIsIDAuMDY4NDU0LCAwLjA5NzA3MiwgMC4xNTQ5NjIsIDAuMTkxMzAzIiwgXAotICAgICAgICAgICIwLjAxOTkwNCwgMC4wMjQwNzksIDAuMDQ3NDc5LCAwLjA2ODU2NiwgMC4wOTcwNjUsIDAuMTU1MTg0LCAwLjE5MTY2NiIsIFwKLSAgICAgICAgICAiMC4wMjA4MzgsIDAuMDI0ODgxLCAwLjA0NzkwNCwgMC4wNjg4MzgsIDAuMDk3MzE3LCAwLjE1NTA5MSwgMC4xOTE3NDkiLCBcCi0gICAgICAgICAgIjAuMDIyMjYsIDAuMDI2MzIyLCAwLjA0ODg3MywgMC4wNjk1NDYsIDAuMDk3NzcxLCAwLjE1NTUyNCwgMC4xOTE5NTgiLCBcCi0gICAgICAgICAgIjAuMDI0Mzk5LCAwLjAyODUsIDAuMDUwNjE3LCAwLjA3MDY5NywgMC4wOTg2MTQsIDAuMTU1OTExLCAwLjE5MjMwNSIsIFwKLSAgICAgICAgICAiMC4wMjU5NzMsIDAuMDI5OTc1LCAwLjA1MTcyOCwgMC4wNzE5OSwgMC4wOTkzMzYsIDAuMTU2MjUzLCAwLjE5MjQwMyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzU3NDgsIDAuMDM4NTc5LCAwLjA1MjE5OSwgMC4wNjI5OTMsIDAuMDc3MDA1LCAwLjEwNDY4OSwgMC4xMjE5NDkiLCBcCi0gICAgICAgICAgIjAuMDQ1MDE2LCAwLjA0Nzg4NiwgMC4wNjE0OTcsIDAuMDcyMzAyLCAwLjA4NjI4NCwgMC4xMTM5NjYsIDAuMTMxMjI0IiwgXAotICAgICAgICAgICIwLjA1NjM1NSwgMC4wNTkyMjIsIDAuMDcyODU2LCAwLjA4MzY0LCAwLjA5NzYyOSwgMC4xMjUzMSwgMC4xNDI1NjgiLCBcCi0gICAgICAgICAgIjAuMDY2MjA5LCAwLjA2OTE3LCAwLjA4MzA0NCwgMC4wOTM4OTYsIDAuMTA4MDE4LCAwLjEzNTcwOCwgMC4xNTI5NjQiLCBcCi0gICAgICAgICAgIjAuMDc0OTc0LCAwLjA3ODA1NywgMC4wOTIyMDIsIDAuMTAzMTA5LCAwLjExNzE0NSwgMC4xNDQ3ODYsIDAuMTYyMDMiLCBcCi0gICAgICAgICAgIjAuMDg2MjM2LCAwLjA4OTUzMywgMC4xMDM3MzYsIDAuMTE0NzM3LCAwLjEyODk0NiwgMC4xNTY5MDMsIDAuMTczOTE3IiwgXAotICAgICAgICAgICIwLjA5NDU4NywgMC4wOTgwODIsIDAuMTEzMTY3LCAwLjEyNDMwNSwgMC4xMzc5ODcsIDAuMTY1OTUzLCAwLjE4MzI1OCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTkyNjgsIDAuMDIzMzg3LCAwLjA0NjI0MSwgMC4wNjY2MTgsIDAuMDk0MjU2LCAwLjE1MDI0MiwgMC4xODU2NzEiLCBcCi0gICAgICAgICAgIjAuMDE5MTk4LCAwLjAyMzM3MywgMC4wNDYyMDgsIDAuMDY2NjA0LCAwLjA5NDI1NCwgMC4xNTAxMjYsIDAuMTg1NTIzIiwgXAotICAgICAgICAgICIwLjAxOTk1NywgMC4wMjM5NzIsIDAuMDQ2NTU3LCAwLjA2Njg0MiwgMC4wOTQ0MDMsIDAuMTUwMzEsIDAuMTg1NzA5IiwgXAotICAgICAgICAgICIwLjAyMTYwNSwgMC4wMjUzNjMsIDAuMDQ3NDM5LCAwLjA2NzQ0NCwgMC4wOTQ4LCAwLjE1MDMwNCwgMC4xODU3MjciLCBcCi0gICAgICAgICAgIjAuMDIyNTgsIDAuMDI2Mzg4LCAwLjA0ODMzOSwgMC4wNjgyNDUsIDAuMDk1Mzg3LCAwLjE1MTAwMywgMC4xODYwMjMiLCBcCi0gICAgICAgICAgIjAuMDI0Nzk0LCAwLjAyODY1OSwgMC4wNTAzNjYsIDAuMDY5ODYsIDAuMDk2NDY4LCAwLjE1MTYzLCAwLjE4NjUyMiIsIFwKLSAgICAgICAgICAiMC4wMjY5NDksIDAuMDMwNzU2LCAwLjA1MTQ4NywgMC4wNzA2NTQsIDAuMDk3NzQyLCAwLjE1MjE4NiwgMC4xODY5OTUiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM4MDcyLCAwLjA0MTAxOCwgMC4wNTUwNzYsIDAuMDY2Mzc4LCAwLjA4MTEyNiwgMC4xMTAzOTUsIDAuMTI4NjUyIiwgXAotICAgICAgICAgICIwLjA0NzcwMywgMC4wNTA2MzQsIDAuMDY0NzIyLCAwLjA3NjA2LCAwLjA5MDgwOCwgMC4xMjAwNjQsIDAuMTM4MzExIiwgXAotICAgICAgICAgICIwLjA1OTc2MywgMC4wNjI2OTMsIDAuMDc2NzcxLCAwLjA4ODA0MywgMC4xMDI3ODUsIDAuMTMyMDQ2LCAwLjE1MDMiLCBcCi0gICAgICAgICAgIjAuMDcwNjUzLCAwLjA3MzY4MywgMC4wODc5MDksIDAuMDk5MTgzLCAwLjExMzg3OSwgMC4xNDMxNCwgMC4xNjEzODMiLCBcCi0gICAgICAgICAgIjAuMDc5ODQ4LCAwLjA4Mjk4OSwgMC4wOTcyMzYsIDAuMTA4NzU1LCAwLjEyMzU4OSwgMC4xNTI4MjYsIDAuMTcxMDY5IiwgXAotICAgICAgICAgICIwLjA5MjQ5MiwgMC4wOTU2NjksIDAuMTEwNjcxLCAwLjEyMjI3OSwgMC4xMzcyMjEsIDAuMTY2MjcsIDAuMTg0NTM2IiwgXAotICAgICAgICAgICIwLjEwMjA3MywgMC4xMDU2MDMsIDAuMTIxMDc1LCAwLjEzMjY3NSwgMC4xNDc2NDIsIDAuMTc2NjA4LCAwLjE5NDk0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxOTMyNSwgMC4wMjM1MDksIDAuMDQ3MDAyLCAwLjA2ODE3OSwgMC4wOTY3MTIsIDAuMTU0ODg2LCAwLjE5MDg5NSIsIFwKLSAgICAgICAgICAiMC4wMTkyOTYsIDAuMDIzNTI1LCAwLjA0NzAwMSwgMC4wNjgxMjksIDAuMDk2Njk3LCAwLjE1NDcxMSwgMC4xOTEyNjMiLCBcCi0gICAgICAgICAgIjAuMDE5NzUyLCAwLjAyMzkwMSwgMC4wNDcyMzQsIDAuMDY4NDA0LCAwLjA5Njg2NSwgMC4xNTQ3MjcsIDAuMTkxMTcxIiwgXAotICAgICAgICAgICIwLjAyMTAwMiwgMC4wMjUwMzgsIDAuMDQ3OTI0LCAwLjA2ODk0MiwgMC4wOTcxOTgsIDAuMTU0OTE5LCAwLjE5MTU2NyIsIFwKLSAgICAgICAgICAiMC4wMjI1NDksIDAuMDI2NDUyLCAwLjA0OTI2OSwgMC4wNjk3NzQsIDAuMDk3ODMzLCAwLjE1NTQ2LCAwLjE5MTc3IiwgXAotICAgICAgICAgICIwLjAyNDYxNSwgMC4wMjkwOTksIDAuMDUwODE4LCAwLjA3MDk4NSwgMC4wOTg3MzUsIDAuMTU1ODM2LCAwLjE5MTg4NSIsIFwKLSAgICAgICAgICAiMC4wMjY1MjMsIDAuMDMwMzk0LCAwLjA1MjExNiwgMC4wNzIxMjYsIDAuMDk5NTk4LCAwLjE1NjI1NiwgMC4xOTI0MzIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTM5MjgsIDAuMDE0MDE5LCAwLjAxNDMyNSwgMC4wMTQ0MzEsIDAuMDE0NTAyLCAwLjAxNDU4MSwgMC4wMTQ1ODUiLCBcCi0gICAgICAgICAgIjAuMDEzNzM1LCAwLjAxMzgzMywgMC4wMTQxNCwgMC4wMTQyNTgsIDAuMDE0MzQsIDAuMDE0NDE5LCAwLjAxNDQzOSIsIFwKLSAgICAgICAgICAiMC4wMTM2NzYsIDAuMDEzNzUxLCAwLjAxNDAyOCwgMC4wMTQxNDYsIDAuMDE0MjM2LCAwLjAxNDMyOSwgMC4wMTQzNSIsIFwKLSAgICAgICAgICAiMC4wMTM2NTMsIDAuMDEzNzAyLCAwLjAxMzkyOCwgMC4wMTQwNTEsIDAuMDE0MTU1LCAwLjAxNDI2MywgMC4wMTQyOTMiLCBcCi0gICAgICAgICAgIjAuMDEzNjM0LCAwLjAxMzY4OCwgMC4wMTM5MSwgMC4wMTQwMSwgMC4wMTQxMTgsIDAuMDE0MjIzLCAwLjAxNDI2IiwgXAotICAgICAgICAgICIwLjAxMzU2NSwgMC4wMTM3MDIsIDAuMDEzODkxLCAwLjAxMzk5NywgMC4wMTQwODMsIDAuMDE0MjE2LCAwLjAxNDI1IiwgXAotICAgICAgICAgICIwLjAxMzYyNSwgMC4wMTM2NTQsIDAuMDEzODczLCAwLjAxMzk5NiwgMC4wMTQwOTksIDAuMDE0MjE2LCAwLjAxNDI3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDIwMDM5LCAwLjAyMDE1NywgMC4wMjA1NDgsIDAuMDIwNzAxLCAwLjAyMDgxMSwgMC4wMjA5MTYsIDAuMDIwOTUxIiwgXAotICAgICAgICAgICIwLjAxOTgxOCwgMC4wMTk5MjYsIDAuMDIwMjk5LCAwLjAyMDQ2MywgMC4wMjA1ODcsIDAuMDIwNzExLCAwLjAyMDc1MyIsIFwKLSAgICAgICAgICAiMC4wMTk3NzQsIDAuMDE5ODU3LCAwLjAyMDE4MiwgMC4wMjAzNDUsIDAuMDIwNDc5LCAwLjAyMDYyNSwgMC4wMjA2NzYiLCBcCi0gICAgICAgICAgIjAuMDE5NzQ3LCAwLjAxOTgwNywgMC4wMjAxMDMsIDAuMDIwMjY2LCAwLjAyMDQwNywgMC4wMjA1NjgsIDAuMDIwNjI4IiwgXAotICAgICAgICAgICIwLjAxOTg1LCAwLjAxOTg3NSwgMC4wMjAxNDQsIDAuMDIwMjkzLCAwLjAyMDQ0MSwgMC4wMjA2MDgsIDAuMDIwNjczIiwgXAotICAgICAgICAgICIwLjAyMDAxLCAwLjAyMDAzOSwgMC4wMjAyNSwgMC4wMjAzODQsIDAuMDIwNTE0LCAwLjAyMDY4OCwgMC4wMjA3NTgiLCBcCi0gICAgICAgICAgIjAuMDIwMTMyLCAwLjAyMDE2OCwgMC4wMjAzNTgsIDAuMDIwNDksIDAuMDIwNjIsIDAuMDIwNzg2LCAwLjAyMDg2MSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMzg5MywgMC4wMTM5ODcsIDAuMDE0MzAxLCAwLjAxNDQyNSwgMC4wMTQ0ODksIDAuMDE0NTM2LCAwLjAxNDU5NSIsIFwKLSAgICAgICAgICAiMC4wMTM2NzMsIDAuMDEzNzY1LCAwLjAxNDA2NCwgMC4wMTQxODksIDAuMDE0Mjg5LCAwLjAxNDM3LCAwLjAxNDM5MyIsIFwKLSAgICAgICAgICAiMC4wMTM3MjUsIDAuMDEzNzc4LCAwLjAxNDAwMiwgMC4wMTQxMTgsIDAuMDE0MjI0LCAwLjAxNDMwNiwgMC4wMTQzNjQiLCBcCi0gICAgICAgICAgIjAuMDEzNzM4LCAwLjAxMzc3LCAwLjAxMzk1NywgMC4wMTQwNzYsIDAuMDE0MTcxLCAwLjAxNDI4OSwgMC4wMTQzMzYiLCBcCi0gICAgICAgICAgIjAuMDEzNzcxLCAwLjAxMzgwOCwgMC4wMTM5ODIsIDAuMDE0MDg3LCAwLjAxNDE4MSwgMC4wMTQzMDUsIDAuMDE0MzM5IiwgXAotICAgICAgICAgICIwLjAxMzgsIDAuMDEzODQ0LCAwLjAxNDA2OSwgMC4wMTQxNjcsIDAuMDE0MjUzLCAwLjAxNDM4LCAwLjAxNDQyNSIsIFwKLSAgICAgICAgICAiMC4wMTM5NzQsIDAuMDEzOTg4LCAwLjAxNDE1MiwgMC4wMTQyNTYsIDAuMDE0MzYzLCAwLjAxNDQ4MiwgMC4wMTQ1NDEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTc3MzMsIDAuMDE3ODY2LCAwLjAxODI3LCAwLjAxODQwOCwgMC4wMTg1MTYsIDAuMDE4NjE2LCAwLjAxODY0OSIsIFwKLSAgICAgICAgICAiMC4wMTc0MTYsIDAuMDE3NTM0LCAwLjAxNzkzMSwgMC4wMTgwOTksIDAuMDE4MjIyLCAwLjAxODM0MiwgMC4wMTgzODIiLCBcCi0gICAgICAgICAgIjAuMDE3NDE4LCAwLjAxNzUwMywgMC4wMTc4MTksIDAuMDE3OTU1LCAwLjAxODA5MSwgMC4wMTgyMzQsIDAuMDE4Mjg1IiwgXAotICAgICAgICAgICIwLjAxNzMzOSwgMC4wMTc0MTUsIDAuMDE3NzAzLCAwLjAxNzgyOSwgMC4wMTc5NzcsIDAuMDE4MTQ1LCAwLjAxODIwNyIsIFwKLSAgICAgICAgICAiMC4wMTczOTcsIDAuMDE3NDc2LCAwLjAxNzc5NywgMC4wMTc5NDQsIDAuMDE4MDgsIDAuMDE4MjQsIDAuMDE4MzAzIiwgXAotICAgICAgICAgICIwLjAxNzQ3LCAwLjAxNzY4NywgMC4wMTc4MzUsIDAuMDE3OTU3LCAwLjAxODA3OSwgMC4wMTgyMjgsIDAuMDE4Mjk4IiwgXAotICAgICAgICAgICIwLjAxNzc4LCAwLjAxNzc4OCwgMC4wMTc5MjcsIDAuMDE4MDQ0LCAwLjAxODE1NSwgMC4wMTgyOTcsIDAuMDE4MzY4Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBDTEtBTkQyWDMgKgotICogLS0tLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChDTEtBTkQyWDMpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4yMTE0Njc7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTMyODA5OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTMyODA5OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTMyMTk4OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDQxMSwgMC4wMDA0MSwgMC4wMDA0MSwgMC4wMDA0MSwgMC4wMDA0MSwgMC4wMDA0MSwgMC4wMDA0MSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDQzNiwgMC4wMDA0MTUsIDAuMDAwNDEzLCAwLjAwMDQxMiwgMC4wMDA0MTIsIDAuMDAwNDEyLCAwLjAwMDQxMiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxMjQyMzQ7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxMjQyMzQ7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxMjQxNzE7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMTAxLCAwLjAwMDEsIDAuMDAwMSwgMC4wMDAxMDEsIDAuMDAwMSwgMC4wMDAxLCAwLjAwMDEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA1MiwgMC4wMDA1MjEsIDAuMDAwNTIsIDAuMDAwNTIxLCAwLjAwMDUyMSwgMC4wMDA1MiwgMC4wMDA1MiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjc2NTQwODsKLSAgICBmdW5jdGlvbiA6ICIoQSBCKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDU3MjgsIDAuMTQzMjUsIDAuMjQwMTQzLCAwLjMwOTM3MSwgMC40MjAxMzEsIDAuNTE3MDgyLCAwLjY1NTU2NSIsIFwKLSAgICAgICAgICAiMC4wNTQ2NjQsIDAuMTUyMTc2LCAwLjI0OTA2NCwgMC4zMTgzMDUsIDAuNDI4NzgsIDAuNTI1NjE3LCAwLjY2NDI0OSIsIFwKLSAgICAgICAgICAiMC4wNjQ5MTUsIDAuMTYyNDg5LCAwLjI1OTQ5NywgMC4zMjg1ODgsIDAuNDM5NTAxLCAwLjUzNjIyNCwgMC42NzQ2MjQiLCBcCi0gICAgICAgICAgIjAuMDczNzkyLCAwLjE3MTQ4NCwgMC4yNjgzODksIDAuMzM3NTkyLCAwLjQ0ODQ4MSwgMC41NDUyNDcsIDAuNjgzNjc4IiwgXAotICAgICAgICAgICIwLjA4MTUxNiwgMC4xNzkxNzksIDAuMjc2MTAxLCAwLjM0NTQxOCwgMC40NTYzNDMsIDAuNTUzLCAwLjY5MTQyOSIsIFwKLSAgICAgICAgICAiMC4wOTIxMjMsIDAuMTg5ODMzLCAwLjI4NjcwNCwgMC4zNTU5MjMsIDAuNDY2NzMxLCAwLjU2MzYzNSwgMC43MDIxNTciLCBcCi0gICAgICAgICAgIjAuMTAwMjUxLCAwLjE5ODAzLCAwLjI5NDg2MSwgMC4zNjQwNTYsIDAuNDc0ODQ3LCAwLjU3MTc3NiwgMC43MTAxMDQiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzgxNzEsIDAuMjM1MjAzLCAwLjQzNDUzLCAwLjU3Njg2MywgMC44MDU0NjEsIDEuMDA0ODUsIDEuMjkwMDgiLCBcCi0gICAgICAgICAgIjAuMDM4MDk2LCAwLjIzNDk3NiwgMC40MzQ5NTYsIDAuNTc2NTYxLCAwLjgwNTM4NSwgMS4wMDM2NiwgMS4yOTE5MiIsIFwKLSAgICAgICAgICAiMC4wMzg0MjcsIDAuMjM1MzAxLCAwLjQzNDM4MywgMC41NzgxMDgsIDAuODA1MTk3LCAxLjAwNjQ1LCAxLjI4OTczIiwgXAotICAgICAgICAgICIwLjAzOTE0OSwgMC4yMzUzNjMsIDAuNDM0NTcxLCAwLjU3ODExNywgMC44MDUxODEsIDEuMDA0NDUsIDEuMjg5NDYiLCBcCi0gICAgICAgICAgIjAuMDQwMDQzLCAwLjIzNTE4OCwgMC40MzQ1NjksIDAuNTc2OTg4LCAwLjgwNTM0NSwgMS4wMDQ4NywgMS4yOTAxMSIsIFwKLSAgICAgICAgICAiMC4wNDEyNzQsIDAuMjM1NjAzLCAwLjQzNDU4NywgMC41NzgwNDEsIDAuODA1NTQzLCAxLjAwNDg2LCAxLjI5MDgyIiwgXAotICAgICAgICAgICIwLjA0MjQyNiwgMC4yMzU2NzMsIDAuNDM0Njk3LCAwLjU3NzMyLCAwLjgwNDk4NiwgMS4wMDUzLCAxLjI4OTgyIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQ4NDc4LCAwLjE0NzQ5MywgMC4yNDU2ODIsIDAuMzE1Nzg3LCAwLjQyNzkzOSwgMC41MjYwNjYsIDAuNjY2MjM0IiwgXAotICAgICAgICAgICIwLjA1ODE3OSwgMC4xNTcyMDQsIDAuMjU1NDE0LCAwLjMyNTUwNywgMC40Mzc2NjMsIDAuNTM1Nzg2LCAwLjY3NTk2NSIsIFwKLSAgICAgICAgICAiMC4wNzAyNzcsIDAuMTY5MzMzLCAwLjI2NzU0LCAwLjMzNzY0MywgMC40NDk4MDYsIDAuNTQ3OTM1LCAwLjY4ODExMiIsIFwKLSAgICAgICAgICAiMC4wODExLCAwLjE4MDIxNiwgMC4yNzg0NTgsIDAuMzQ4NTMsIDAuNDYwNjk1LCAwLjU1ODgyLCAwLjY5OTAyNyIsIFwKLSAgICAgICAgICAiMC4wOTA0ODgsIDAuMTg5Nzg4LCAwLjI4ODAxNywgMC4zNTgxMDksIDAuNDcwMjkyLCAwLjU2ODM5LCAwLjcwODU2MSIsIFwKLSAgICAgICAgICAiMC4xMDMzMDcsIDAuMjAyODY0LCAwLjMwMTA0NSwgMC4zNzExNTIsIDAuNDgzMzM1LCAwLjU4MTQ0NiwgMC43MjE2MTkiLCBcCi0gICAgICAgICAgIjAuMTEzMDM0LCAwLjIxMjY3NSwgMC4zMTA4NzcsIDAuMzgwOTksIDAuNDkzMTI3LCAwLjU5MTI3LCAwLjczMTQ2MSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzNzg2MywgMC4yMzM1NTcsIDAuNDMyNTI3LCAwLjU3MzQ2NSwgMC44MDAzMjgsIDAuOTk4NzkyLCAxLjI4MjE3IiwgXAotICAgICAgICAgICIwLjAzNzg4MywgMC4yMzM1NjQsIDAuNDMxNjA1LCAwLjU3NDExMiwgMC44MDAzNSwgMC45OTg2MzcsIDEuMjgyMTEiLCBcCi0gICAgICAgICAgIjAuMDM4MDk0LCAwLjIzMzk1LCAwLjQzMjUyOSwgMC41NzQ0MTgsIDAuODAxMjU5LCAwLjk5ODc4LCAxLjI4MjMxIiwgXAotICAgICAgICAgICIwLjAzODk5MiwgMC4yMzM4MjksIDAuNDMxMjYyLCAwLjU3NDQyMiwgMC44MDAzMDcsIDAuOTk5NzQxLCAxLjI4NDU1IiwgXAotICAgICAgICAgICIwLjAzOTgwNSwgMC4yMzQwNDksIDAuNDMyMzQ2LCAwLjU3NDQ4NywgMC44MDE1MTIsIDEuMDAwMDEsIDEuMjg0MzMiLCBcCi0gICAgICAgICAgIjAuMDQxMjg1LCAwLjIzNDE2NCwgMC40MzIzMzgsIDAuNTczNTcxLCAwLjgwMTQ1OCwgMS4wMDA0NSwgMS4yODQ0IiwgXAotICAgICAgICAgICIwLjA0MjY0NywgMC4yMzQzMzksIDAuNDMyMTUyLCAwLjU3MzY2OCwgMC44MDE0NjIsIDAuOTk4MjY3LCAxLjI4NDI2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQzNiwgMC4xNDExMzgsIDAuMjM4MDYsIDAuMzA3MjUyLCAwLjQxODE4NCwgMC41MTUwNDEsIDAuNjUzNTM4IiwgXAotICAgICAgICAgICIwLjA1MjgyNSwgMC4xNTAzNjIsIDAuMjQ3Mjk1LCAwLjMxNjQ4NiwgMC40MjY5NzQsIDAuNTI0Mjc2LCAwLjY2MjQ2MiIsIFwKLSAgICAgICAgICAiMC4wNjM4ODYsIDAuMTYxNTIxLCAwLjI1ODQ5MiwgMC4zMjc2OTQsIDAuNDM4NTkzLCAwLjUzNTIyMSwgMC42NzM3NiIsIFwKLSAgICAgICAgICAiMC4wNzMyOTIsIDAuMTcxMDY2LCAwLjI2Nzk3MiwgMC4zMzcyMDYsIDAuNDQ4MTM5LCAwLjU0NDg0MywgMC42ODMyODEiLCBcCi0gICAgICAgICAgIjAuMDgwODQ1LCAwLjE3ODc2LCAwLjI3NTcxMiwgMC4zNDQ4NjksIDAuNDU1NTk0LCAwLjU1MjYyLCAwLjY5MTAyMiIsIFwKLSAgICAgICAgICAiMC4wOTE3MjgsIDAuMTg5NTU5LCAwLjI4NjQxNywgMC4zNTU2MTIsIDAuNDY2MzQ0LCAwLjU2MzI5NCwgMC43MDE2NjQiLCBcCi0gICAgICAgICAgIjAuMDk5NzUzLCAwLjE5NzU3LCAwLjI5NDc1MiwgMC4zNjM5ODgsIDAuNDc0NzYzLCAwLjU3MTg0NywgMC43MTAxODQiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzgxMjIsIDAuMjM0OTY2LCAwLjQzNDU4NywgMC41NzY4NjEsIDAuODA1MjE2LCAxLjAwNDg1LCAxLjI5MDE0IiwgXAotICAgICAgICAgICIwLjAzODExNywgMC4yMzQ5ODEsIDAuNDM0NTczLCAwLjU3Nzc3NSwgMC44MDU0NSwgMS4wMDQ4NSwgMS4yOTA4IiwgXAotICAgICAgICAgICIwLjAzODc1LCAwLjIzNTI3OCwgMC40MzQzODgsIDAuNTc2NzM4LCAwLjgwNTIyMiwgMS4wMDY4MSwgMS4yOTE5NiIsIFwKLSAgICAgICAgICAiMC4wMzk1MzIsIDAuMjM1MzQ4LCAwLjQzNDg5OSwgMC41NzY4NjQsIDAuODA1MjIsIDEuMDA0NTMsIDEuMjg5NTEiLCBcCi0gICAgICAgICAgIjAuMDQwOSwgMC4yMzUxMTMsIDAuNDM0NDQsIDAuNTc3MzAxLCAwLjgwNjIwNiwgMS4wMDQ4MiwgMS4yOTAwOCIsIFwKLSAgICAgICAgICAiMC4wNDIxNywgMC4yMzU4MTEsIDAuNDM1MTk0LCAwLjU3Nzc2MSwgMC44MDY1OTQsIDEuMDA0NTMsIDEuMjkxNzMiLCBcCi0gICAgICAgICAgIjAuMDQzNjE2LCAwLjIzNTg5NSwgMC40MzQ4NjEsIDAuNTc3NDA5LCAwLjgwNDk3OCwgMS4wMDQ4OSwgMS4yOTAwNyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0NTY3NywgMC4xNDQ1MjYsIDAuMjQyNzUyLCAwLjMxMjc3NiwgMC40MjUxMTMsIDAuNTIzMjMyLCAwLjY2MzMzIiwgXAotICAgICAgICAgICIwLjA1NTI3NiwgMC4xNTQxNDUsIDAuMjUyMzgsIDAuMzIyNDI5LCAwLjQzNDU3NywgMC41MzI3NywgMC42NzMwNDUiLCBcCi0gICAgICAgICAgIjAuMDY3MTU5LCAwLjE2NjEzOSwgMC4yNjQzMiwgMC4zMzQ0NzgsIDAuNDQ2Njg0LCAwLjU0NDg4MSwgMC42ODUxNjMiLCBcCi0gICAgICAgICAgIjAuMDc3NDQsIDAuMTc2MzIxLCAwLjI3NDQ0OSwgMC4zNDQ2NDcsIDAuNDU2ODYsIDAuNTU1MDQ5LCAwLjY5NTA4NiIsIFwKLSAgICAgICAgICAiMC4wODYxMzIsIDAuMTg1MTY1LCAwLjI4MzQxNiwgMC4zNTM1MzQsIDAuNDY1NjMxLCAwLjU2MzkwOCwgMC43MDQwMzUiLCBcCi0gICAgICAgICAgIjAuMDk4MDk0LCAwLjE5NzA1OCwgMC4yOTUyMDksIDAuMzY1MzU2LCAwLjQ3NzUsIDAuNTc1NjgsIDAuNzE1OTQ0IiwgXAotICAgICAgICAgICIwLjEwNzI0NiwgMC4yMDY2NjIsIDAuMzA0NTEsIDAuMzc0Nzc3LCAwLjQ4Njc3MywgMC41ODQ5MjIsIDAuNzI1MjY5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM3NjUyLCAwLjIzMzY5NywgMC40MzE0MTksIDAuNTc0MDU5LCAwLjc5OTY3MiwgMC45OTgwNTcsIDEuMjg0MzQiLCBcCi0gICAgICAgICAgIjAuMDM3NTkzLCAwLjIzMzc2MSwgMC40MzE0ODQsIDAuNTc0Mjc2LCAwLjc5OTU1MiwgMC45OTc2NTMsIDEuMjgyMDMiLCBcCi0gICAgICAgICAgIjAuMDM4MDI1LCAwLjIzMzM2OSwgMC40MzIyNywgMC41NzQxOCwgMC43OTk5LCAwLjk5ODI5MywgMS4yODE3NyIsIFwKLSAgICAgICAgICAiMC4wMzkwMzYsIDAuMjMzODM4LCAwLjQzMjQ0LCAwLjU3MzE0NCwgMC43OTk3ODMsIDAuOTk4MDYzLCAxLjI4NDIiLCBcCi0gICAgICAgICAgIjAuMDQwMDg1LCAwLjIzMzU5OSwgMC40MzE1MDQsIDAuNTczMjAzLCAwLjgwMTUzNCwgMC45OTgyNTUsIDEuMjg0NDciLCBcCi0gICAgICAgICAgIjAuMDQxNjc2LCAwLjIzNDIxOCwgMC40MzIwNTQsIDAuNTcyNzYzLCAwLjgwMTMyOCwgMS4wMDAxLCAxLjI4MjA2IiwgXAotICAgICAgICAgICIwLjA0MzA2NywgMC4yMzQxMjksIDAuNDMxODMzLCAwLjU3NDYxOSwgMC44MDE3NDYsIDEuMDAwNjIsIDEuMjgxMTIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzczOSwgMC4wMDM4MDIsIDAuMDAzODA3LCAwLjAwMzgwOCwgMC4wMDM4MSwgMC4wMDM4MTEsIDAuMDAzODEiLCBcCi0gICAgICAgICAgIjAuMDAzNjc3LCAwLjAwMzc1NywgMC4wMDM3NjEsIDAuMDAzNzY1LCAwLjAwMzc2MiwgMC4wMDM3NjMsIDAuMDAzNzYzIiwgXAotICAgICAgICAgICIwLjAwMzYzNywgMC4wMDM3MzEsIDAuMDAzNzM5LCAwLjAwMzc0MywgMC4wMDM3NDUsIDAuMDAzNzQ2LCAwLjAwMzc0OCIsIFwKLSAgICAgICAgICAiMC4wMDM2MTcsIDAuMDAzNzE5LCAwLjAwMzczMiwgMC4wMDM3MzQsIDAuMDAzNzM4LCAwLjAwMzczOSwgMC4wMDM3NDEiLCBcCi0gICAgICAgICAgIjAuMDAzNjEsIDAuMDAzNzEzLCAwLjAwMzczLCAwLjAwMzczNCwgMC4wMDM3MzgsIDAuMDAzNzM5LCAwLjAwMzc0MSIsIFwKLSAgICAgICAgICAiMC4wMDM2MSwgMC4wMDM3MiwgMC4wMDM3MzksIDAuMDAzNzQ1LCAwLjAwMzc1MSwgMC4wMDM3NTIsIDAuMDAzNzU2IiwgXAotICAgICAgICAgICIwLjAwMzYyMiwgMC4wMDM3MzEsIDAuMDAzNzUyLCAwLjAwMzc2MSwgMC4wMDM3NjcsIDAuMDAzNzY4LCAwLjAwMzc3MSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1ODE5LCAwLjAwNTkzMSwgMC4wMDU5NDIsIDAuMDA1OTQ2LCAwLjAwNTk0OSwgMC4wMDU5NSwgMC4wMDU5NTIiLCBcCi0gICAgICAgICAgIjAuMDA1NzM2LCAwLjAwNTg2OCwgMC4wMDU4ODMsIDAuMDA1ODg4LCAwLjAwNTg5MiwgMC4wMDU4OTQsIDAuMDA1ODk2IiwgXAotICAgICAgICAgICIwLjAwNTcwOSwgMC4wMDU4NiwgMC4wMDU4ODEsIDAuMDA1ODg4LCAwLjAwNTg5NCwgMC4wMDU4OTcsIDAuMDA1OSIsIFwKLSAgICAgICAgICAiMC4wMDU3MTQsIDAuMDA1ODY3LCAwLjAwNTg5MiwgMC4wMDU5LCAwLjAwNTkwNywgMC4wMDU5MTEsIDAuMDA1OTE0IiwgXAotICAgICAgICAgICIwLjAwNTcyNywgMC4wMDU4ODMsIDAuMDA1OTEyLCAwLjAwNTkyMiwgMC4wMDU5MywgMC4wMDU5MzUsIDAuMDA1OTM5IiwgXAotICAgICAgICAgICIwLjAwNTc3LCAwLjAwNTkyNywgMC4wMDU5NjEsIDAuMDA1OTcxLCAwLjAwNTk4MywgMC4wMDU5ODgsIDAuMDA1OTkzIiwgXAotICAgICAgICAgICIwLjAwNTgxNCwgMC4wMDU5NjgsIDAuMDA2MDA0LCAwLjAwNjAxNiwgMC4wMDYwMjksIDAuMDA2MDM0LCAwLjAwNjA0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDM3MzQsIDAuMDAzODA4LCAwLjAwMzgxNCwgMC4wMDM4MTYsIDAuMDAzODE4LCAwLjAwMzgyLCAwLjAwMzgyIiwgXAotICAgICAgICAgICIwLjAwMzY1NywgMC4wMDM3NDksIDAuMDAzNzYsIDAuMDAzNzYxLCAwLjAwMzc2NSwgMC4wMDM3NjYsIDAuMDAzNzY2IiwgXAotICAgICAgICAgICIwLjAwMzYyMywgMC4wMDM3MzMsIDAuMDAzNzQ4LCAwLjAwMzc1MSwgMC4wMDM3NTcsIDAuMDAzNzU4LCAwLjAwMzc2IiwgXAotICAgICAgICAgICIwLjAwMzYzNSwgMC4wMDM3NDMsIDAuMDAzNzYsIDAuMDAzNzY2LCAwLjAwMzc3LCAwLjAwMzc3MiwgMC4wMDM3NzUiLCBcCi0gICAgICAgICAgIjAuMDAzNjU1LCAwLjAwMzc1OCwgMC4wMDM3NzcsIDAuMDAzNzg2LCAwLjAwMzc5MiwgMC4wMDM3OTMsIDAuMDAzNzk2IiwgXAotICAgICAgICAgICIwLjAwMzY4OCwgMC4wMDM3OTksIDAuMDAzODI4LCAwLjAwMzgyOCwgMC4wMDM4MjcsIDAuMDAzODM5LCAwLjAwMzg0NCIsIFwKLSAgICAgICAgICAiMC4wMDM3NDYsIDAuMDAzODQ3LCAwLjAwMzg2OCwgMC4wMDM4ODMsIDAuMDAzODg1LCAwLjAwMzg4OCwgMC4wMDM4OTkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNTA2NCwgMC4wMDUxOCwgMC4wMDUxOTEsIDAuMDA1MTk1LCAwLjAwNTE5NywgMC4wMDUxOTksIDAuMDA1MiIsIFwKLSAgICAgICAgICAiMC4wMDQ5NTMsIDAuMDA1MDksIDAuMDA1MTA1LCAwLjAwNTEwOSwgMC4wMDUxMTMsIDAuMDA1MTE1LCAwLjAwNTExNyIsIFwKLSAgICAgICAgICAiMC4wMDQ5MDUsIDAuMDA1MDYyLCAwLjAwNTA4MywgMC4wMDUwOSwgMC4wMDUwOTUsIDAuMDA1MDk4LCAwLjAwNTEwMSIsIFwKLSAgICAgICAgICAiMC4wMDQ5MTksIDAuMDA1MDcsIDAuMDA1MDk1LCAwLjAwNTEwMywgMC4wMDUxMSwgMC4wMDUxMTQsIDAuMDA1MTE3IiwgXAotICAgICAgICAgICIwLjAwNDkzNSwgMC4wMDUxMDEsIDAuMDA1MTMxLCAwLjAwNTE0MSwgMC4wMDUxNSwgMC4wMDUxNTQsIDAuMDA1MTU4IiwgXAotICAgICAgICAgICIwLjAwNDk0MywgMC4wMDUxMTMsIDAuMDA1MTQ0LCAwLjAwNTE1NSwgMC4wMDUxNjYsIDAuMDA1MTcxLCAwLjAwNTE3NiIsIFwKLSAgICAgICAgICAiMC4wMDQ5NzgsIDAuMDA1MTUxLCAwLjAwNTE3OSwgMC4wMDUxOTksIDAuMDA1MjAxLCAwLjAwNTIwNywgMC4wMDUyMjEiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogQ0xLQlVGWDMgKgotICogLS0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKENMS0JVRlgzKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMTU1ODM1OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA5MzU4MTY7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwOTM1NTA0OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDkzNTgxNjsKLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjc2NjQ0ODsKLSAgICBmdW5jdGlvbiA6ICJBIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0MDc0LCAwLjEzNzk0OCwgMC4yMzQ4LCAwLjMwNDE2OSwgMC40MTQ2ODYsIDAuNTExNTMzLCAwLjY0OTgzMyIsIFwKLSAgICAgICAgICAiMC4wNTA5MzEsIDAuMTQ4MTMxLCAwLjI0NTAwNywgMC4zMTQzMTEsIDAuNDI0ODc2LCAwLjUyMTU0MiwgMC42NjAzMDEiLCBcCi0gICAgICAgICAgIjAuMDYzMDYzLCAwLjE2MDMyMSwgMC4yNTcyMTIsIDAuMzI2MzY5LCAwLjQzNzA1NiwgMC41MzQxMjYsIDAuNjcyMjY4IiwgXAotICAgICAgICAgICIwLjA3MzQ2NCwgMC4xNzA4MDIsIDAuMjY3NzAzLCAwLjMzNzA1NSwgMC40NDc1NTMsIDAuNTQ0NDQ4LCAwLjY4Mjk4MSIsIFwKLSAgICAgICAgICAiMC4wODI1NTYsIDAuMTc5OTI0LCAwLjI3Njc2OSwgMC4zNDU5NzEsIDAuNDU2NzY1LCAwLjU1MzQ4LCAwLjY5MjE4NiIsIFwKLSAgICAgICAgICAiMC4wOTQ3NSwgMC4xOTI0MjgsIDAuMjg5MjczLCAwLjM1ODQ1OCwgMC40NjkwOTYsIDAuNTY2MTk3LCAwLjcwNDU3OSIsIFwKLSAgICAgICAgICAiMC4xMDQwMzksIDAuMjAxNjg3LCAwLjI5ODQ0OCwgMC4zNjc2MTIsIDAuNDc4MjcxLCAwLjU3NTIyNiwgMC43MTM0NDMiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzcyNDEsIDAuMjM0NTc4LCAwLjQzNTA1OCwgMC41NzY3MjcsIDAuODA0NjA2LCAxLjAwNDEyLCAxLjI4OTMxIiwgXAotICAgICAgICAgICIwLjAzNzI3NywgMC4yMzUwMzIsIDAuNDM0ODA1LCAwLjU3Njc1NywgMC44MDQ2OTMsIDEuMDA0NzgsIDEuMjkwMzkiLCBcCi0gICAgICAgICAgIjAuMDM3OTA3LCAwLjIzNTA3NywgMC40MzQwODksIDAuNTc3NTA0LCAwLjgwNDY4NywgMS4wMDUwNywgMS4yODkyNCIsIFwKLSAgICAgICAgICAiMC4wMzg4NTUsIDAuMjM0ODE1LCAwLjQzNDAwMiwgMC41NzY3MDIsIDAuODA0NjU4LCAxLjAwMzk0LCAxLjI4OTU5IiwgXAotICAgICAgICAgICIwLjA0MDA5NiwgMC4yMzUxNjYsIDAuNDM0NzU2LCAwLjU3NjYzMiwgMC44MDQ4MjgsIDEuMDA0MjQsIDEuMjg5NjIiLCBcCi0gICAgICAgICAgIjAuMDQyMTI4LCAwLjIzNTA3NiwgMC40MzUxMzEsIDAuNTc2NjY2LCAwLjgwNTkyOCwgMS4wMDQ0OCwgMS4yODk2IiwgXAotICAgICAgICAgICIwLjA0NDExLCAwLjIzNTMzNiwgMC40MzQzNjEsIDAuNTc3ODQ0LCAwLjgwNjMwOSwgMS4wMDQ0NSwgMS4yODkyOSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0MTg4MSwgMC4xNDA1NTIsIDAuMjM4NjU4LCAwLjMwODc4NywgMC40MjEwMTMsIDAuNTE4OTc5LCAwLjY1OTIyIiwgXAotICAgICAgICAgICIwLjA1MTc4LCAwLjE1MDQyMywgMC4yNDg1ODUsIDAuMzE4NzE4LCAwLjQzMDc3MywgMC41Mjg5NjMsIDAuNjY5MjExIiwgXAotICAgICAgICAgICIwLjA2MzU0LCAwLjE2MjE1NCwgMC4yNjAzMTgsIDAuMzMwNDc2LCAwLjQ0MjY0MywgMC41NDA3NywgMC42ODA4NjEiLCBcCi0gICAgICAgICAgIjAuMDcyOTg3LCAwLjE3MTczOSwgMC4yNjk5MDEsIDAuMzQwMDQzLCAwLjQ1MjIyMSwgMC41NTAzOTYsIDAuNjkwMzkyIiwgXAotICAgICAgICAgICIwLjA4MTcyOCwgMC4xODA0OTMsIDAuMjc4NjE3LCAwLjM0ODc3OCwgMC40NjEwOTUsIDAuNTU4ODQsIDAuNjk5MDE0IiwgXAotICAgICAgICAgICIwLjA5Mjc3NiwgMC4xOTE3NTksIDAuMjg5ODQ0LCAwLjM2MDAzNCwgMC40NzIxMDUsIDAuNTcwMjAzLCAwLjcxMDU2NyIsIFwKLSAgICAgICAgICAiMC4xMDE2NjQsIDAuMTk5ODgyLCAwLjI5Nzg5NSwgMC4zNjc5NDcsIDAuNDgwMTExLCAwLjU3ODM5MywgMC43MTg0NDkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzY5NzYsIDAuMjMzMDI5LCAwLjQzMTEyMiwgMC41NzM0NDIsIDAuNzk5NTcxLCAwLjk5NzY3LCAxLjI4NDIiLCBcCi0gICAgICAgICAgIjAuMDM2OTQzLCAwLjIzMzI3OCwgMC40MzEyMDYsIDAuNTczNTE2LCAwLjgwMTYyNSwgMC45OTc1OTEsIDEuMjgxOCIsIFwKLSAgICAgICAgICAiMC4wMzc0NzEsIDAuMjMzMDM5LCAwLjQzMTA3MiwgMC41NzI5OTQsIDAuNzk5NzIxLCAxLjAwMDEsIDEuMjgwNjYiLCBcCi0gICAgICAgICAgIjAuMDM4NzI4LCAwLjIzMzcwMSwgMC40MzI0MTQsIDAuNTczMzI3LCAwLjgwMDA0OCwgMC45OTgxNTIsIDEuMjg0NTYiLCBcCi0gICAgICAgICAgIjAuMDM5NTUyLCAwLjIzMzM4NSwgMC40MzIzNzksIDAuNTczMjAzLCAwLjc5OTQ0OCwgMC45OTc0MTMsIDEuMjgwNTkiLCBcCi0gICAgICAgICAgIjAuMDQxMjcyLCAwLjIzNDA5OCwgMC40MzI0LCAwLjU3MzI0MiwgMC44MDEzNDYsIDEuMDAwNTIsIDEuMjgxMzciLCBcCi0gICAgICAgICAgIjAuMDQyMzE0LCAwLjIzNDAzMywgMC40MzI0NjUsIDAuNTc0MTUsIDAuNzk5NDUzLCAwLjk5ODE1NSwgMS4yODM5NSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzMjU5LCAwLjAwMzMxOSwgMC4wMDMzMiwgMC4wMDMzMjMsIDAuMDAzMzIzLCAwLjAwMzMyMywgMC4wMDMzMjYiLCBcCi0gICAgICAgICAgIjAuMDAzMTg4LCAwLjAwMzI2OCwgMC4wMDMyNzMsIDAuMDAzMjc2LCAwLjAwMzI3OSwgMC4wMDMyNzksIDAuMDAzMjc5IiwgXAotICAgICAgICAgICIwLjAwMzE0NiwgMC4wMDMyNDgsIDAuMDAzMjYsIDAuMDAzMjY0LCAwLjAwMzI2OSwgMC4wMDMyNywgMC4wMDMyNzEiLCBcCi0gICAgICAgICAgIjAuMDAzMTU5LCAwLjAwMzI2MywgMC4wMDMyNzcsIDAuMDAzMjgxLCAwLjAwMzI4NiwgMC4wMDMyODcsIDAuMDAzMjg5IiwgXAotICAgICAgICAgICIwLjAwMzE2MiwgMC4wMDMyNjEsIDAuMDAzMjc4LCAwLjAwMzI4NCwgMC4wMDMyODgsIDAuMDAzMjg5LCAwLjAwMzI5MyIsIFwKLSAgICAgICAgICAiMC4wMDMxOTMsIDAuMDAzMjg1LCAwLjAwMzMwNSwgMC4wMDMzMSwgMC4wMDMzMTcsIDAuMDAzMzIsIDAuMDAzMzIzIiwgXAotICAgICAgICAgICIwLjAwMzIyNiwgMC4wMDMzMTUsIDAuMDAzMzM2LCAwLjAwMzM0OCwgMC4wMDMzNTEsIDAuMDAzMzU0LCAwLjAwMzM1NyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0NDc3LCAwLjAwNDU2NCwgMC4wMDQ1NzIsIDAuMDA0NTc1LCAwLjAwNDU3NywgMC4wMDQ1NzgsIDAuMDA0NTc5IiwgXAotICAgICAgICAgICIwLjAwNDQwNywgMC4wMDQ1MjIsIDAuMDA0NTM0LCAwLjAwNDUzOCwgMC4wMDQ1NDEsIDAuMDA0NTQyLCAwLjAwNDU0NCIsIFwKLSAgICAgICAgICAiMC4wMDQzODQsIDAuMDA0NTEsIDAuMDA0NTI3LCAwLjAwNDUzMiwgMC4wMDQ1MzcsIDAuMDA0NTM5LCAwLjAwNDU0MSIsIFwKLSAgICAgICAgICAiMC4wMDQzNzEsIDAuMDA0NTEsIDAuMDA0NTMzLCAwLjAwNDU0LCAwLjAwNDU0NiwgMC4wMDQ1NDksIDAuMDA0NTUyIiwgXAotICAgICAgICAgICIwLjAwNDM3MiwgMC4wMDQ1MDUsIDAuMDA0NTI5LCAwLjAwNDUzNywgMC4wMDQ1NDQsIDAuMDA0NTUsIDAuMDA0NTUzIiwgXAotICAgICAgICAgICIwLjAwNDM5MywgMC4wMDQ1MjcsIDAuMDA0NTU2LCAwLjAwNDU2NCwgMC4wMDQ1NzIsIDAuMDA0NTc2LCAwLjAwNDU4IiwgXAotICAgICAgICAgICIwLjAwNDM5OCwgMC4wMDQ1MzgsIDAuMDA0NTc0LCAwLjAwNDU4NSwgMC4wMDQ1OTMsIDAuMDA0NTk1LCAwLjAwNDYwMyIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBDTEtJTlZYOCAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoQ0xLSU5WWDgpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4yOTQzMDI7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwNTgwNDIxOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwNTgwMDkyOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwNTgwNDIxOwotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDIuMDA5ODY7Ci0gICAgZnVuY3Rpb24gOiAiKCFBKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTExNjksIDAuMDQ4MTg1LCAwLjA4NTA2MiwgMC4xMTE0MTcsIDAuMTUzNTksIDAuMTkwNDI5LCAwLjI0MzI5NiIsIFwKLSAgICAgICAgICAiMC4wMjA2NDYsIDAuMDU4MjE5LCAwLjA5NTE0NiwgMC4xMjE0OSwgMC4xNjM2NTEsIDAuMjAwNTM5LCAwLjI1MzE5NyIsIFwKLSAgICAgICAgICAiMC4wMjg3NDIsIDAuMDcwOCwgMC4xMDc0NDksIDAuMTMzNzg5LCAwLjE3NTk1NCwgMC4yMTI4MzgsIDAuMjY1NjA0IiwgXAotICAgICAgICAgICIwLjAzNTI3MSwgMC4wODM0MTgsIDAuMTIwMjE0LCAwLjE0NjIxNywgMC4xODg0NTUsIDAuMjI1MjU4LCAwLjI3ODE2NyIsIFwKLSAgICAgICAgICAiMC4wNDAyODYsIDAuMDk1OSwgMC4xMzI3NDYsIDAuMTU4NjMsIDAuMjAwNzkzLCAwLjIzNzYsIDAuMjkwMzQxIiwgXAotICAgICAgICAgICIwLjA0Njg3LCAwLjExNDQwMywgMC4xNTMyOTMsIDAuMTc5NTU1LCAwLjIyMTcxMywgMC4yNTg1MTksIDAuMzExMTYzIiwgXAotICAgICAgICAgICIwLjA1MjA0OCwgMC4xMjY4NzYsIDAuMTcxMDE2LCAwLjE5NzM2NywgMC4yMzkzMDQsIDAuMjc2MDQ4LCAwLjMyNzg5NSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxNTgxLCAwLjA5MTk3NCwgMC4xNjgzMTYsIDAuMjIyNjQ1LCAwLjMwOTc3MSwgMC4zODYxNDcsIDAuNDk1MDM4IiwgXAotICAgICAgICAgICIwLjAyMTIyLCAwLjA5MjQzNywgMC4xNjgxNTEsIDAuMjIyOTA0LCAwLjMxMDE4MywgMC4zODU3ODgsIDAuNDk0NzMiLCBcCi0gICAgICAgICAgIjAuMDMwNTMzLCAwLjA5NjM5NCwgMC4xNjkyNzksIDAuMjIzMTA3LCAwLjMwOTY4NiwgMC4zODU4OSwgMC40OTQ4MzQiLCBcCi0gICAgICAgICAgIjAuMDM3OTk2LCAwLjEwMjg3NiwgMC4xNzMzMDcsIDAuMjI1NjY3LCAwLjMxMDM3NywgMC4zODYxMDQsIDAuNDk0ODMyIiwgXAotICAgICAgICAgICIwLjA0NDc4MSwgMC4xMTEwMjEsIDAuMTc4Njk4LCAwLjIzMDA2OSwgMC4zMTI4MDksIDAuMzg3NDQ1LCAwLjQ5NDY5NiIsIFwKLSAgICAgICAgICAiMC4wNTUxNDIsIDAuMTI0NDQzLCAwLjE4OTMyMiwgMC4yMzg1MzMsIDAuMzE5ODUzLCAwLjM5MjU0MiwgMC40OTgzMjIiLCBcCi0gICAgICAgICAgIjAuMDYzMTA2LCAwLjEzODgwOCwgMC4yMDA0ODIsIDAuMjQ4MDQyLCAwLjMyNzAwOSwgMC4zOTg5MTYsIDAuNTAzMDY2Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDExNTk5LCAwLjA0OTgxMSwgMC4wODc4MjUsIDAuMTE1MDE0LCAwLjE1ODQsIDAuMTk2NDk3LCAwLjI1MDc4MiIsIFwKLSAgICAgICAgICAiMC4wMjE0NTYsIDAuMDYwMDQ2LCAwLjA5ODExMSwgMC4xMjUyOTUsIDAuMTY4NjkyLCAwLjIwNjcyNCwgMC4yNjA5OTIiLCBcCi0gICAgICAgICAgIjAuMDMwNTA5LCAwLjA3Mjg4MiwgMC4xMTA2MjcsIDAuMTM3Nzk0LCAwLjE4MTIzNywgMC4yMTkyNzQsIDAuMjczNTk1IiwgXAotICAgICAgICAgICIwLjAzNzI0NSwgMC4wODU4OTEsIDAuMTIzNzUzLCAwLjE1MDUyNywgMC4xOTM5NSwgMC4yMzE5NDgsIDAuMjg2Mjg5IiwgXAotICAgICAgICAgICIwLjA0MzA4MiwgMC4wOTg4MDEsIDAuMTM2NjU2LCAwLjE2MzcxOCwgMC4yMDY2NiwgMC4yNDQ2NywgMC4yOTkwOTEiLCBcCi0gICAgICAgICAgIjAuMDUwODYzLCAwLjExODAwNiwgMC4xNTc4MTIsIDAuMTg0OTI3LCAwLjIyNjkwNSwgMC4yNjQ5MTIsIDAuMzE5MTQ2IiwgXAotICAgICAgICAgICIwLjA1NzM4OSwgMC4xMzI0NTMsIDAuMTc1Nzk2LCAwLjIwMzEwNCwgMC4yNDYzMTYsIDAuMjg0MTAxLCAwLjMzNzQ0OCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxNTc2OCwgMC4wOTI3NDUsIDAuMTY5OTM2LCAwLjIyNDc3NywgMC4zMTM1NzEsIDAuMzg5Nzk2LCAwLjQ5OTg5NiIsIFwKLSAgICAgICAgICAiMC4wMjA3MTIsIDAuMDkyOTgxLCAwLjE3MDExNSwgMC4yMjQ4NDEsIDAuMzEzNjI2LCAwLjM5MDIxNywgMC41MDAzMDgiLCBcCi0gICAgICAgICAgIjAuMDI5OTg5LCAwLjA5Njc3NywgMC4xNzEwNDIsIDAuMjI1MjI3LCAwLjMxMzU5NywgMC4zOTA2MzksIDAuNDk5OTk3IiwgXAotICAgICAgICAgICIwLjAzODQzMywgMC4xMDI2OTIsIDAuMTc0MzQyLCAwLjIyNzUyLCAwLjMxMzk1NywgMC4zOTA3NjksIDAuNDk5Nzk1IiwgXAotICAgICAgICAgICIwLjA0NTQxMiwgMC4xMTAyMDIsIDAuMTc5MzQyLCAwLjIzMTE0NiwgMC4zMTYxNTksIDAuMzkxNzg2LCAwLjQ5OTc3MyIsIFwKLSAgICAgICAgICAiMC4wNTY0LCAwLjEyMzU1NSwgMC4xODkyOTcsIDAuMjM5NDM5LCAwLjMyMjAwNywgMC4zOTYyNDcsIDAuNTAzMjUyIiwgXAotICAgICAgICAgICIwLjA2NDI5NSwgMC4xMzY4MTEsIDAuMTk5MjE4LCAwLjI0ODA4LCAwLjMyODU0LCAwLjQwMDY4MSwgMC41MDU4OTIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwODA3NCwgMC4wMDgyNywgMC4wMDgyOTMsIDAuMDA4MzAyLCAwLjAwODMwOSwgMC4wMDgzMDgsIDAuMDA4MzExIiwgXAotICAgICAgICAgICIwLjAwNzc1OCwgMC4wMDgxMjIsIDAuMDA4MjAzLCAwLjAwODIyOSwgMC4wMDgyNTQsIDAuMDA4MjY3LCAwLjAwODI4MiIsIFwKLSAgICAgICAgICAiMC4wMDc3NDksIDAuMDA4MDA4LCAwLjAwODEwNiwgMC4wMDgxNTQsIDAuMDA4MTk2LCAwLjAwODIyMSwgMC4wMDgyNCIsIFwKLSAgICAgICAgICAiMC4wMDc4MTYsIDAuMDA3OTc2LCAwLjAwODA4OSwgMC4wMDgxMTMsIDAuMDA4MTYzLCAwLjAwODE5NiwgMC4wMDgyMTciLCBcCi0gICAgICAgICAgIjAuMDA3OTY0LCAwLjAwODAwNCwgMC4wMDgwNzksIDAuMDA4MTEsIDAuMDA4MTU1LCAwLjAwODE3MywgMC4wMDgyMDMiLCBcCi0gICAgICAgICAgIjAuMDA4MjM2LCAwLjAwODA2NiwgMC4wMDgwNjUsIDAuMDA4MDkzLCAwLjAwODEzNywgMC4wMDgxNjEsIDAuMDA4MTgyIiwgXAotICAgICAgICAgICIwLjAwODUsIDAuMDA4MjAxLCAwLjAwODE1OCwgMC4wMDgxNDIsIDAuMDA4MTcxLCAwLjAwODE4MiwgMC4wMDgxOTIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDI2MSwgMCwgMC4wMDAwMywgMC4wMDAwMzksIDAuMDAwMDQ3LCAwLjAwMDA1LCAwLjAwMDA1NCIsIFwKLSAgICAgICAgICAiMC4wMDA2NzEsIDAuMDAwMTk1LCAwLjAwMDA4OSwgMC4wMDAwNTMsIDAuMDAwMDIyLCAwLjAwMDAwNCwgMC4wMDAwMTEiLCBcCi0gICAgICAgICAgIjAuMDAwNzA1LCAwLjAwMDM1MywgMC4wMDAyMTYsIDAuMDAwMTU3LCAwLjAwMDEwMSwgMC4wMDAwNzEsIDAuMDAwMDQyIiwgXAotICAgICAgICAgICIwLjAwMDU2LCAwLjAwMDQxMywgMC4wMDAyNzIsIDAuMDAwMjIsIDAuMDAwMTU0LCAwLjAwMDExMiwgMC4wMDAwOCIsIFwKLSAgICAgICAgICAiMC4wMDA0NzEsIDAuMDAwMzk0LCAwLjAwMDI4OCwgMC4wMDAyMzYsIDAuMDAwMTgsIDAuMDAwMTQyLCAwLjAwMDEwNSIsIFwKLSAgICAgICAgICAiMC4wMDAxMDksIDAuMDAwMjQ5LCAwLjAwMDIyOSwgMC4wMDAxOTgsIDAuMDAwMTU3LCAwLjAwMDEyNywgMC4wMDAwOTYiLCBcCi0gICAgICAgICAgIjAuMDAwMTc3LCAwLjAwMDI0NCwgMC4wMDAyNTQsIDAuMDAwMjM2LCAwLjAwMDE5OCwgMC4wMDAxNzEsIDAuMDAwMTUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogQ0xLTVgyWDYgKgotICogLS0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKENMS01YMlg2KSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMzM4NjE3OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA3OTI1OTc7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNzkwNTk7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNzkyNTk3OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDMwMywgMC4wMDAzMSwgMC4wMDAzMTIsIDAuMDAwMzEzLCAwLjAwMDMxNCwgMC4wMDAzMTQsIDAuMDAwMzE1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzM2LCAwLjAwMDMyOSwgMC4wMDAzMjgsIDAuMDAwMzI4LCAwLjAwMDMyNiwgMC4wMDAzMjgsIDAuMDAwMzI4Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA3NDYwMjM7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNzQzNzY3OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDc0NjAyMzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAzMTQsIDAuMDAwMzE3LCAwLjAwMDMxOSwgMC4wMDAzMTksIDAuMDAwMzE5LCAwLjAwMDMyLCAwLjAwMDMyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzMyLCAwLjAwMDMyOCwgMC4wMDAzMjgsIDAuMDAwMzI3LCAwLjAwMDMyNywgMC4wMDAzMjcsIDAuMDAwMzI3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNDA2OTU7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNDA1Nzk7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNDA2OTU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjgzLCAwLjAwMDI1NCwgMC4wMDAyNTcsIDAuMDAwMjYyLCAwLjAwMDI3NiwgMC4wMDAyOTcsIDAuMDAwMzIzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyMDgzLCAwLjAwMjA2MywgMC4wMDIwNiwgMC4wMDIwNjcsIDAuMDAyMDc3LCAwLjAwMjEwNCwgMC4wMDIxMjYiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMS42NDA0OwotICAgIGZ1bmN0aW9uIDogIigoUzAgQikgKyAoIVMwIEEpKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDkyMzY4LCAwLjEzNzMwOCwgMC4xNjY0NywgMC4yMDEyNDksIDAuMjM1NjIyLCAwLjI2OTkyMSwgMC4zMDQxMDUiLCBcCi0gICAgICAgICAgIjAuMTAxMTA5LCAwLjE0NjAwOSwgMC4xNzUxMDUsIDAuMjEwMDA2LCAwLjI0NDM4MywgMC4yNzg2NDEsIDAuMzEyODYyIiwgXAotICAgICAgICAgICIwLjExMTk0NiwgMC4xNTY4MzQsIDAuMTg1OTcsIDAuMjIwODkzLCAwLjI1NTIxNiwgMC4yODk0NzIsIDAuMzIzNzA4IiwgXAotICAgICAgICAgICIwLjEyMjg0MywgMC4xNjc3MjMsIDAuMTk2ODEzLCAwLjIzMTYzMiwgMC4yNjYwNiwgMC4zMDAzMTQsIDAuMzM0NTU1IiwgXAotICAgICAgICAgICIwLjEzMzU1NCwgMC4xNzgzOTcsIDAuMjA3NDU0LCAwLjI0MjI5OSwgMC4yNzY3MjQsIDAuMzEwOTkxLCAwLjM0NTIyIiwgXAotICAgICAgICAgICIwLjE0OTc3OCwgMC4xOTQ3MTQsIDAuMjIzODcxLCAwLjI1ODcyOSwgMC4yOTMxMDEsIDAuMzI3MzkyLCAwLjM2MTYwOSIsIFwKLSAgICAgICAgICAiMC4xNjMzODgsIDAuMjA4NjYsIDAuMjM3ODI5LCAwLjI3MjgyOCwgMC4zMDcyNzcsIDAuMzQxMzg3LCAwLjM3NTYwMSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDE4OTMsIDAuMTA4Mjc0LCAwLjE2MTMwNiwgMC4yMjkxMTcsIDAuMjk3NzE0LCAwLjM2NzMxOCwgMC40MzY5MDQiLCBcCi0gICAgICAgICAgIjAuMDQyMDA5LCAwLjEwODMxLCAwLjE2MTM2NywgMC4yMjkxMTgsIDAuMjk3NzIsIDAuMzY2OTE0LCAwLjQzNjg4OCIsIFwKLSAgICAgICAgICAiMC4wNDE3NCwgMC4xMDgxMDcsIDAuMTYxMzU2LCAwLjIyOTA4NywgMC4yOTc2NjYsIDAuMzY2OTE0LCAwLjQzNjU1OCIsIFwKLSAgICAgICAgICAiMC4wNDE1NjMsIDAuMTA4MTk2LCAwLjE2MTI4NywgMC4yMjkwNjksIDAuMjk3NjYxLCAwLjM2Njg5MSwgMC40MzY1NDYiLCBcCi0gICAgICAgICAgIjAuMDQxNzQ0LCAwLjEwODI1MSwgMC4xNjEzNDEsIDAuMjI4OTk4LCAwLjI5NzY1MSwgMC4zNjY3MTMsIDAuNDM2NTMyIiwgXAotICAgICAgICAgICIwLjA0MjU0NywgMC4xMDg2MTIsIDAuMTYxNTkxLCAwLjIyOTI2MywgMC4yOTc3OTcsIDAuMzY2ODc3LCAwLjQzNjk2MyIsIFwKLSAgICAgICAgICAiMC4wNDM4OTgsIDAuMTA5MjgzLCAwLjE2MjAyNiwgMC4yMjkzODYsIDAuMjk4MTI1LCAwLjM2NzE4OCwgMC40MzcwNDQiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk3NzUzLCAwLjE0NDUyOCwgMC4xNzQ5ODEsIDAuMjExNDQzLCAwLjI0NzI3NCwgMC4yODI5NzEsIDAuMzE4NTY2IiwgXAotICAgICAgICAgICIwLjEwNjQwNywgMC4xNTMxODEsIDAuMTgzNjc0LCAwLjIyMDA3MSwgMC4yNTU4NTksIDAuMjkxNTQ5LCAwLjMyNzE0NSIsIFwKLSAgICAgICAgICAiMC4xMTY0MzcsIDAuMTYzMTcxLCAwLjE5MzY4NiwgMC4yMzAwNjQsIDAuMjY1OTM1LCAwLjMwMTYxNSwgMC4zMzcyMTgiLCBcCi0gICAgICAgICAgIjAuMTI2NDM3LCAwLjE3MzA3MiwgMC4yMDM1NTksIDAuMjM5OTUzLCAwLjI3NTc4LCAwLjMxMTQ4MywgMC4zNDcwODYiLCBcCi0gICAgICAgICAgIjAuMTM2MjIyLCAwLjE4Mjg0OSwgMC4yMTMzMjIsIDAuMjQ5NzE0LCAwLjI4NTUzOCwgMC4zMjEyNDEsIDAuMzU2ODQ1IiwgXAotICAgICAgICAgICIwLjE1MDgwOCwgMC4xOTc2NTUsIDAuMjI4MTE5LCAwLjI2NDUyNCwgMC4zMDAzOTgsIDAuMzM2MDk2LCAwLjM3MTY5OSIsIFwKLSAgICAgICAgICAiMC4xNjMxMjIsIDAuMjEwMTUxLCAwLjI0MDcxMSwgMC4yNzcxOTIsIDAuMzEzMDQ0LCAwLjM0ODcyNywgMC4zODQzNDIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQzMTMsIDAuMTExMTAzLCAwLjE2NTI0MywgMC4yMzQxMzMsIDAuMzAzODIsIDAuMzczOTU1LCAwLjQ0NTExNCIsIFwKLSAgICAgICAgICAiMC4wNDI5NzQsIDAuMTExMDcxLCAwLjE2NTE3NSwgMC4yMzQwMTMsIDAuMzAzODM4LCAwLjM3NDIwMSwgMC40NDUwNTgiLCBcCi0gICAgICAgICAgIjAuMDQyNzcsIDAuMTEwOTgsIDAuMTY1MTYzLCAwLjIzMzk0MSwgMC4zMDM3OSwgMC4zNzQ0MzcsIDAuNDQ1MDM2IiwgXAotICAgICAgICAgICIwLjA0MjcwNCwgMC4xMTA5NDgsIDAuMTY1MTMyLCAwLjIzNDA4NywgMC4zMDM4MjksIDAuMzczOTQ5LCAwLjQ0NDY4MyIsIFwKLSAgICAgICAgICAiMC4wNDI4ODQsIDAuMTExMDU1LCAwLjE2NTE4NiwgMC4yMzQxMDgsIDAuMzAzODM1LCAwLjM3NDQ1NSwgMC40NDU1ODQiLCBcCi0gICAgICAgICAgIjAuMDQzNTgxLCAwLjExMTQyMSwgMC4xNjU0NjEsIDAuMjM0MzA0LCAwLjMwMzkzNSwgMC4zNzQ1MzksIDAuNDQ1MTg4IiwgXAotICAgICAgICAgICIwLjA0NDU4MiwgMC4xMTE5NTYsIDAuMTY1ODA0LCAwLjIzNDUwMiwgMC4zMDQxMzksIDAuMzc0NzY3LCAwLjQ0NTI3NyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTIyNjEsIDAuMTM3MTU4LCAwLjE2NjI4NCwgMC4yMDExODYsIDAuMjM1NTU4LCAwLjI2OTg0OSwgMC4zMDM5NTkiLCBcCi0gICAgICAgICAgIjAuMTAxMjY2LCAwLjE0NjE1MSwgMC4xNzUyNDEsIDAuMjEwMTQyLCAwLjI0NDUyNywgMC4yNzg4MTEsIDAuMzEzMDEzIiwgXAotICAgICAgICAgICIwLjExMjIsIDAuMTU3MDgsIDAuMTg2MjIzLCAwLjIyMTA0NywgMC4yNTU0NjYsIDAuMjg5NzIsIDAuMzIzOTUzIiwgXAotICAgICAgICAgICIwLjEyMzI2NSwgMC4xNjgxMDcsIDAuMTk3MTkzLCAwLjIzMjAwNiwgMC4yNjY0MzQsIDAuMzAwNjg1LCAwLjMzNDkyNCIsIFwKLSAgICAgICAgICAiMC4xMzM5MzksIDAuMTc4NzM0LCAwLjIwNzg0OCwgMC4yNDI2NjUsIDAuMjc3MDU1LCAwLjMxMTM1LCAwLjM0NTU2MiIsIFwKLSAgICAgICAgICAiMC4xNTA1NzYsIDAuMTk1NTEyLCAwLjIyNDU3MSwgMC4yNTk0MSwgMC4yOTM4MzgsIDAuMzI4MDkyLCAwLjM2MjMzNCIsIFwKLSAgICAgICAgICAiMC4xNjM5MjUsIDAuMjA5MTkyLCAwLjIzODM3MSwgMC4yNzMzMTksIDAuMzA3NzY3LCAwLjM0MTkwNiwgMC4zNzYxMTgiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQyMDY0LCAwLjEwODM2MiwgMC4xNjEzNiwgMC4yMjkxNDksIDAuMjk3NzUyLCAwLjM2NzM1OCwgMC40MzY2MTMiLCBcCi0gICAgICAgICAgIjAuMDQxOTE0LCAwLjEwODMzNSwgMC4xNjEzOTIsIDAuMjI4OTIsIDAuMjk3NzY0LCAwLjM2NjY0NSwgMC40MzY5MTIiLCBcCi0gICAgICAgICAgIjAuMDQxNjkxLCAwLjEwODIzMywgMC4xNjEzODcsIDAuMjI5MDU1LCAwLjI5NzY2NywgMC4zNjY3MzcsIDAuNDM2NTc2IiwgXAotICAgICAgICAgICIwLjA0MTUzMiwgMC4xMDgyMjEsIDAuMTYxMzIxLCAwLjIyOTEwNCwgMC4yOTc2OTMsIDAuMzY2OTMzLCAwLjQzNjU2OSIsIFwKLSAgICAgICAgICAiMC4wNDE3OTMsIDAuMTA4MjY1LCAwLjE2MTM0NiwgMC4yMjg5MTIsIDAuMjk3NzEzLCAwLjM2NjcyMywgMC40MzY1NTMiLCBcCi0gICAgICAgICAgIjAuMDQyNDQ0LCAwLjEwODcwMSwgMC4xNjE2NzgsIDAuMjI5MzE4LCAwLjI5NzgxMSwgMC4zNjY4NDUsIDAuNDM2NjA4IiwgXAotICAgICAgICAgICIwLjA0MzgwMiwgMC4xMDkxODIsIDAuMTYxOTkzLCAwLjIyOTUyMiwgMC4yOTgwNzgsIDAuMzY2OTczLCAwLjQzNzA3Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5OTI3NSwgMC4xNDYwNzksIDAuMTc2NTY5LCAwLjIxMzA0NiwgMC4yNDg5LCAwLjI4NDYwMiwgMC4zMjAxOTUiLCBcCi0gICAgICAgICAgIjAuMTA3NzgyLCAwLjE1NDYxOSwgMC4xODUxMDEsIDAuMjIxNTY2LCAwLjI1NzM4NywgMC4yOTMwNTksIDAuMzI4NjgiLCBcCi0gICAgICAgICAgIjAuMTE3Njc5LCAwLjE2NDQ1NiwgMC4xOTUwMTUsIDAuMjMxNDA5LCAwLjI2NzI1MiwgMC4zMDI5NjEsIDAuMzM4NTY4IiwgXAotICAgICAgICAgICIwLjEyNzYyOCwgMC4xNzQzMjYsIDAuMjA0ODA4LCAwLjI0MTIxMSwgMC4yNzcwODMsIDAuMzEyNzg5LCAwLjM0ODQwMSIsIFwKLSAgICAgICAgICAiMC4xMzcyODMsIDAuMTg0MDc2LCAwLjIxNDUyNywgMC4yNTA5MzQsIDAuMjg2ODA5LCAwLjMyMjUwNCwgMC4zNTgxMTciLCBcCi0gICAgICAgICAgIjAuMTUxOTQzLCAwLjE5ODg0NywgMC4yMjkzNjQsIDAuMjY1NzczLCAwLjMwMTY1NSwgMC4zMzczMywgMC4zNzI5NjYiLCBcCi0gICAgICAgICAgIjAuMTY0MTcsIDAuMjExMjkxLCAwLjI0MTg0NiwgMC4yNzgzMDcsIDAuMzE0MTY1LCAwLjM0OTg1OCwgMC4zODU0NjciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQzMjc4LCAwLjExMTI4NCwgMC4xNjUzOTksIDAuMjM0Mjc4LCAwLjMwMzk5MiwgMC4zNzQ1NDksIDAuNDQ1Njc5IiwgXAotICAgICAgICAgICIwLjA0MzE2MSwgMC4xMTEyOTEsIDAuMTY1Mzg5LCAwLjIzNDI2MiwgMC4zMDM5NjcsIDAuMzc0NDYyLCAwLjQ0NTE4MiIsIFwKLSAgICAgICAgICAiMC4wNDMwNDMsIDAuMTExMjA5LCAwLjE2NTM2MiwgMC4yMzQyMjIsIDAuMzAzOTE4LCAwLjM3NDUyMiwgMC40NDUxNDciLCBcCi0gICAgICAgICAgIjAuMDQyOTEzLCAwLjExMTIyMiwgMC4xNjUzNzMsIDAuMjM0MjYsIDAuMzAzOTc3LCAwLjM3NDUzMywgMC40NDU3NjMiLCBcCi0gICAgICAgICAgIjAuMDQyOTMzLCAwLjExMTI1LCAwLjE2NTM5MiwgMC4yMzQxOCwgMC4zMDM5MzQsIDAuMzc0NjI3LCAwLjQ0NTIzMyIsIFwKLSAgICAgICAgICAiMC4wNDM3NTcsIDAuMTExNjQxLCAwLjE2NTY2MiwgMC4yMzQ1MTYsIDAuMzA0MDY1LCAwLjM3NDIxMiwgMC40NDUyNzMiLCBcCi0gICAgICAgICAgIjAuMDQ0ODcyLCAwLjExMjEzMiwgMC4xNjU5ODgsIDAuMjM0NywgMC4zMDQ0MTcsIDAuMzc0NzY4LCAwLjQ0NTMyNyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg1NzQ0LCAwLjEzMDYzOCwgMC4xNTk3MjcsIDAuMTk0NTY1LCAwLjIyODk4MywgMC4yNjMyMzksIDAuMjk3NDc0IiwgXAotICAgICAgICAgICIwLjA5NDk1MiwgMC4xMzk4NCwgMC4xNjg5MzEsIDAuMjAzNzc2LCAwLjIzODE4NiwgMC4yNzI0NiwgMC4zMDY2NzQiLCBcCi0gICAgICAgICAgIjAuMTA2NjQ3LCAwLjE1MTUxOCwgMC4xODA1NiwgMC4yMTU0NDIsIDAuMjQ5ODMsIDAuMjg0MTM5LCAwLjMxODM2MyIsIFwKLSAgICAgICAgICAiMC4xMTg0MzksIDAuMTYzMjMsIDAuMTkyMywgMC4yMjcxNjQsIDAuMjYxNTY3LCAwLjI5NTg2NiwgMC4zMzAwNjQiLCBcCi0gICAgICAgICAgIjAuMTMwNDU5LCAwLjE3NTI4NCwgMC4yMDQzMTcsIDAuMjM5MjM2LCAwLjI3MzYwNiwgMC4zMDc4NywgMC4zNDIxMDQiLCBcCi0gICAgICAgICAgIjAuMTQ4OTA3LCAwLjE5MzkyNCwgMC4yMjMwNTIsIDAuMjU3OTAzLCAwLjI5MjI3LCAwLjMyNjU1OCwgMC4zNjA3ODIiLCBcCi0gICAgICAgICAgIjAuMTYzODcxLCAwLjIwOTI2NiwgMC4yMzg0NDgsIDAuMjczMzA5LCAwLjMwNzcwMiwgMC4zNDE5NywgMC4zNzYxODQiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQxNTkzLCAwLjEwODE5NiwgMC4xNjEzNTEsIDAuMjI5MDY5LCAwLjI5NzY5MiwgMC4zNjcxNzcsIDAuNDM2NjEyIiwgXAotICAgICAgICAgICIwLjA0MTU4LCAwLjEwODE4NywgMC4xNjEzMzEsIDAuMjI5MDMzLCAwLjI5NzY4OCwgMC4zNjcyODUsIDAuNDM2NTgyIiwgXAotICAgICAgICAgICIwLjA0MTU2MywgMC4xMDgwNzgsIDAuMTYxMzMzLCAwLjIyODg5OSwgMC4yOTc2ODYsIDAuMzY2NzE0LCAwLjQzNyIsIFwKLSAgICAgICAgICAiMC4wNDE2MDgsIDAuMTA4MTk0LCAwLjE2MTM0LCAwLjIyOTAwNiwgMC4yOTc2NzEsIDAuMzY2NzEzLCAwLjQzNjg1NiIsIFwKLSAgICAgICAgICAiMC4wNDE4MzMsIDAuMTA4Mjk0LCAwLjE2MTM2MywgMC4yMjkwOCwgMC4yOTc2NzYsIDAuMzY3MTc3LCAwLjQzNjU1OCIsIFwKLSAgICAgICAgICAiMC4wNDMxMTksIDAuMTA4ODE4LCAwLjE2MTY1OSwgMC4yMjkzNSwgMC4yOTc4NjIsIDAuMzY2OTI2LCAwLjQzNjg4NCIsIFwKLSAgICAgICAgICAiMC4wNDU0NDMsIDAuMTA5NzkyLCAwLjE2MjMyNywgMC4yMjk3MDYsIDAuMjk4MTk0LCAwLjM2NzI1OCwgMC40MzcxMjIiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDkxNTY5LCAwLjEzODMzOCwgMC4xNjg3NTYsIDAuMjA1MjA0LCAwLjI0MTAyNywgMC4yNzY3MzEsIDAuMzEyMzM2IiwgXAotICAgICAgICAgICIwLjEwMDU3NiwgMC4xNDcyNjgsIDAuMTc3NzQ2LCAwLjIxNDE0NCwgMC4yNDk5NzEsIDAuMjg1NjcsIDAuMzIxMjc4IiwgXAotICAgICAgICAgICIwLjExMTkyNiwgMC4xNTg2MzgsIDAuMTg5MDg0LCAwLjIyNTUzMiwgMC4yNjEzNTksIDAuMjk3MDY0LCAwLjMzMjY1MSIsIFwKLSAgICAgICAgICAiMC4xMjM1MzYsIDAuMTcwMTg3LCAwLjIwMDY0MSwgMC4yMzcwOSwgMC4yNzI5MjIsIDAuMzA4NjMxLCAwLjM0NDIxNiIsIFwKLSAgICAgICAgICAiMC4xMzUxMjQsIDAuMTgxNzQ2LCAwLjIxMjE5NywgMC4yNDg2NTIsIDAuMjg0NDgzLCAwLjMyMDE5MSwgMC4zNTU3ODEiLCBcCi0gICAgICAgICAgIjAuMTUzMDk2LCAwLjE5OTkyMSwgMC4yMzAzNiwgMC4yNjY3MjYsIDAuMzAyNTk2LCAwLjMzODI4OSwgMC4zNzM5MzQiLCBcCi0gICAgICAgICAgIjAuMTY3NTY4LCAwLjIxNDY0NywgMC4yNDUxMzYsIDAuMjgxNTU2LCAwLjMxNzQyNiwgMC4zNTMwODIsIDAuMzg4NzAzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0MjY0OCwgMC4xMTA5NzEsIDAuMTY1MTQ4LCAwLjIzNDA3NSwgMC4zMDM4MTMsIDAuMzc0NDU0LCAwLjQ0NDg5IiwgXAotICAgICAgICAgICIwLjA0MjcyNywgMC4xMTA5NTIsIDAuMTY1MTI2LCAwLjIzNDA4MSwgMC4zMDM3NzksIDAuMzc0NDY3LCAwLjQ0NTAyNCIsIFwKLSAgICAgICAgICAiMC4wNDI3MDYsIDAuMTEwOTc0LCAwLjE2NTE0NCwgMC4yMzQwNjgsIDAuMzAzODAzLCAwLjM3NDQ0MywgMC40NDUwOTciLCBcCi0gICAgICAgICAgIjAuMDQyNzI3LCAwLjExMDk5MiwgMC4xNjUxNDQsIDAuMjM0MDYsIDAuMzAzNzk2LCAwLjM3MzkxNywgMC40NDUwOTYiLCBcCi0gICAgICAgICAgIjAuMDQyNzY2LCAwLjExMTAxMywgMC4xNjUxNjMsIDAuMjM0MDc2LCAwLjMwMzgwNCwgMC4zNzQ0MzIsIDAuNDQ1MTI3IiwgXAotICAgICAgICAgICIwLjA0MzcsIDAuMTExNDIyLCAwLjE2NTUxOCwgMC4yMzQzMzYsIDAuMzAzOTM1LCAwLjM3NDEyMywgMC40NDUxMDQiLCBcCi0gICAgICAgICAgIjAuMDQ1NzYyLCAwLjExMjI5NSwgMC4xNjU5MzQsIDAuMjM0Njg3LCAwLjMwNDI1NSwgMC4zNzQ2MTIsIDAuNDQ1MjU5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlMwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDQ5NDksIDAuMTQ5ODU0LCAwLjE3ODk0NCwgMC4yMTM4NiwgMC4yNDgyMjYsIDAuMjgyNTA3LCAwLjMxNjcxOCIsIFwKLSAgICAgICAgICAiMC4xMTQ3NjgsIDAuMTU5NjUyLCAwLjE4ODc5NCwgMC4yMjM2MTYsIDAuMjU4MDQ0LCAwLjI5MjI5OCwgMC4zMjY1MzgiLCBcCi0gICAgICAgICAgIjAuMTI1ODMyLCAwLjE3MDc1LCAwLjE5OTg0MSwgMC4yMzQ3NTYsIDAuMjY5MDgyLCAwLjMwMzM4MiwgMC4zMzc1NjkiLCBcCi0gICAgICAgICAgIjAuMTM0ODA4LCAwLjE3OTY2OCwgMC4yMDg3NzgsIDAuMjQzNjUyLCAwLjI3ODA0MSwgMC4zMTIzMzUsIDAuMzQ2NTc1IiwgXAotICAgICAgICAgICIwLjE0MjEwMiwgMC4xODY5NjYsIDAuMjE2MTAzLCAwLjI1MDkyMywgMC4yODUzMTMsIDAuMzE5NjA3LCAwLjM1MzgzMiIsIFwKLSAgICAgICAgICAiMC4xNTE4OTUsIDAuMTk2ODkzLCAwLjIyNTkzNiwgMC4yNjA4NTIsIDAuMjk1MTMsIDAuMzI5NTMsIDAuMzYzNjI1IiwgXAotICAgICAgICAgICIwLjE1OTI3NiwgMC4yMDQxMjgsIDAuMjMzMzA1LCAwLjI2ODE5NiwgMC4zMDI2NTgsIDAuMzM2OTMzLCAwLjM3MTEzNyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDE3MDYsIDAuMTA4MjU5LCAwLjE2MTM2NSwgMC4yMjkwOSwgMC4yOTc2OTQsIDAuMzY3MjU5LCAwLjQzNjU2NyIsIFwKLSAgICAgICAgICAiMC4wNDE3NjUsIDAuMTA4MTUxLCAwLjE2MTI3LCAwLjIyOTA2NywgMC4yOTc2ODYsIDAuMzY2OTIsIDAuNDM2NTYzIiwgXAotICAgICAgICAgICIwLjA0MTc1LCAwLjEwODI0NywgMC4xNjEyODcsIDAuMjI4OTk0LCAwLjI5NzY5NSwgMC4zNjczMDIsIDAuNDM2NTM1IiwgXAotICAgICAgICAgICIwLjA0MTc1LCAwLjEwODIxMywgMC4xNjEzNDEsIDAuMjI4ODczLCAwLjI5NzcwMSwgMC4zNjY2NjIsIDAuNDM2MTQ0IiwgXAotICAgICAgICAgICIwLjA0MTU2NCwgMC4xMDgxNDQsIDAuMTYxMjcyLCAwLjIyODk4OCwgMC4yOTc1OTYsIDAuMzY2ODA3LCAwLjQzNjUzOSIsIFwKLSAgICAgICAgICAiMC4wNDE2NDcsIDAuMTA4MzYsIDAuMTYxNDc1LCAwLjIyOTE5MiwgMC4yOTc3NTUsIDAuMzY2NzU2LCAwLjQzNjYwOCIsIFwKLSAgICAgICAgICAiMC4wNDE5ODcsIDAuMTA4Mjg2LCAwLjE2MTUwMSwgMC4yMjkzNTMsIDAuMjk3ODU1LCAwLjM2NzE1NiwgMC40MzY3MDEiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTA5ODIzLCAwLjE1NjYzMywgMC4xODcxNzcsIDAuMjIzNTcxLCAwLjI1OTQ0NywgMC4yOTUxMzQsIDAuMzMwNzQiLCBcCi0gICAgICAgICAgIjAuMTIwMSwgMC4xNjY5NDEsIDAuMTk3NDc2LCAwLjIzMzg4NywgMC4yNjk3NjYsIDAuMzA1NDUyLCAwLjM0MTA1OCIsIFwKLSAgICAgICAgICAiMC4xMzE3NjEsIDAuMTc4NTkyLCAwLjIwOTA3OCwgMC4yNDU1NiwgMC4yODE0MTEsIDAuMzE3MDI3LCAwLjM1MjcxMSIsIFwKLSAgICAgICAgICAiMC4xNDEwOCwgMC4xODc4OTEsIDAuMjE4NDE2LCAwLjI1NDgwNCwgMC4yOTA2ODcsIDAuMzI2MzU4LCAwLjM2MTk3OSIsIFwKLSAgICAgICAgICAiMC4xNDk0OTgsIDAuMTk2Mjc0LCAwLjIyNjY3MSwgMC4yNjMxOTcsIDAuMjk4OTc0LCAwLjMzNDczOSwgMC4zNzAyODgiLCBcCi0gICAgICAgICAgIjAuMTYwMTksIDAuMjA3MjI5LCAwLjIzNzU5NiwgMC4yNzM5OTYsIDAuMzA5OTgxLCAwLjM0NTUzNywgMC4zODExNDQiLCBcCi0gICAgICAgICAgIjAuMTY4NzQ0LCAwLjIxNTQ5NiwgMC4yNDYwOTQsIDAuMjgyNTg3LCAwLjMxODQwNiwgMC4zNTQwNzksIDAuMzg5NzQyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0MzA0NCwgMC4xMTEyNTQsIDAuMTY1MjcyLCAwLjIzNDE0MywgMC4zMDM5MywgMC4zNzQwNzksIDAuNDQ1Mjc0IiwgXAotICAgICAgICAgICIwLjA0MzAyLCAwLjExMTI0OCwgMC4xNjUzODQsIDAuMjM0Mjg2LCAwLjMwMzkzMiwgMC4zNzQwNzMsIDAuNDQ1MTgiLCBcCi0gICAgICAgICAgIjAuMDQzMDk1LCAwLjExMTI0NSwgMC4xNjUzNjgsIDAuMjM0MjQ4LCAwLjMwMzk2NSwgMC4zNzQzMzgsIDAuNDQ1MjI0IiwgXAotICAgICAgICAgICIwLjA0MzAxNiwgMC4xMTExODEsIDAuMTY1MzM5LCAwLjIzNDI4OSwgMC4zMDM5NSwgMC4zNzQxODYsIDAuNDQ1MTk5IiwgXAotICAgICAgICAgICIwLjA0Mjg5LCAwLjExMTE3NywgMC4xNjUzNDEsIDAuMjM0MjUyLCAwLjMwMzk0NywgMC4zNzQwOCwgMC40NDUxNDUiLCBcCi0gICAgICAgICAgIjAuMDQzMzQ3LCAwLjExMTIyLCAwLjE2NTUzMSwgMC4yMzQzNTUsIDAuMzA0MDAyLCAwLjM3NDU4NywgMC40NDU3MjEiLCBcCi0gICAgICAgICAgIjAuMDQyOTU2LCAwLjExMTI4MiwgMC4xNjU0NjgsIDAuMjM0NDI0LCAwLjMwNDE0LCAwLjM3NDc0OCwgMC40NDU0NzEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDcwNTIsIDAuMDA3MjM2LCAwLjAwNzMwMywgMC4wMDczNDcsIDAuMDA3MzczLCAwLjAwNzM4NywgMC4wMDc0MDIiLCBcCi0gICAgICAgICAgIjAuMDA3MDMxLCAwLjAwNzIxMSwgMC4wMDcyODIsIDAuMDA3MzI3LCAwLjAwNzM1MSwgMC4wMDczNjcsIDAuMDA3MzgiLCBcCi0gICAgICAgICAgIjAuMDA3LCAwLjAwNzE4MiwgMC4wMDcyNTMsIDAuMDA3MywgMC4wMDczMjksIDAuMDA3MzQ4LCAwLjAwNzM2MSIsIFwKLSAgICAgICAgICAiMC4wMDcsIDAuMDA3MTY2LCAwLjAwNzIzNywgMC4wMDcyODYsIDAuMDA3MzE1LCAwLjAwNzMzMiwgMC4wMDczNDgiLCBcCi0gICAgICAgICAgIjAuMDA3MDAxLCAwLjAwNzE1LCAwLjAwNzIxOSwgMC4wMDcyNywgMC4wMDczMDEsIDAuMDA3MzIyLCAwLjAwNzMzNyIsIFwKLSAgICAgICAgICAiMC4wMDcwMDksIDAuMDA3MTI3LCAwLjAwNzE5NywgMC4wMDcyNDgsIDAuMDA3MjgxLCAwLjAwNzMwNywgMC4wMDczMjkiLCBcCi0gICAgICAgICAgIjAuMDA3MDU2LCAwLjAwNzEzOSwgMC4wMDcyMDUsIDAuMDA3MjUyLCAwLjAwNzI4NywgMC4wMDczMDksIDAuMDA3MzI5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA3ODUzLCAwLjAwODA4NSwgMC4wMDgxNzYsIDAuMDA4MjM2LCAwLjAwODI3MSwgMC4wMDgyOTMsIDAuMDA4MzA5IiwgXAotICAgICAgICAgICIwLjAwNzgzMSwgMC4wMDgwNjcsIDAuMDA4MTU5LCAwLjAwODIyMSwgMC4wMDgyNTYsIDAuMDA4MjgsIDAuMDA4Mjk2IiwgXAotICAgICAgICAgICIwLjAwNzgwMywgMC4wMDgwNDIsIDAuMDA4MTM2LCAwLjAwODIwMSwgMC4wMDgyMzksIDAuMDA4MjY0LCAwLjAwODI4MiIsIFwKLSAgICAgICAgICAiMC4wMDc3OTksIDAuMDA4MDI0LCAwLjAwODExOCwgMC4wMDgxODQsIDAuMDA4MjI0LCAwLjAwODI1LCAwLjAwODI2OSIsIFwKLSAgICAgICAgICAiMC4wMDc4NDQsIDAuMDA4MDI1LCAwLjAwODExNCwgMC4wMDgxOCwgMC4wMDgyMTksIDAuMDA4MjQ1LCAwLjAwODI2NCIsIFwKLSAgICAgICAgICAiMC4wMDc4MTEsIDAuMDA3OTg4LCAwLjAwODA4LCAwLjAwODE1LCAwLjAwODE5NSwgMC4wMDgyMjUsIDAuMDA4MjQ2IiwgXAotICAgICAgICAgICIwLjAwNzg0NCwgMC4wMDc5ODUsIDAuMDA4MDc1LCAwLjAwODE0LCAwLjAwODE4OCwgMC4wMDgyMTksIDAuMDA4MjQxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2ODMyLCAwLjAwNjk1OSwgMC4wMDcwMDcsIDAuMDA3MDM3LCAwLjAwNzA1NiwgMC4wMDcwNywgMC4wMDcwNzYiLCBcCi0gICAgICAgICAgIjAuMDA2NzkxLCAwLjAwNjkyOSwgMC4wMDY5OCwgMC4wMDcwMTMsIDAuMDA3MDI5LCAwLjAwNzA0MywgMC4wMDcwNTIiLCBcCi0gICAgICAgICAgIjAuMDA2NzYsIDAuMDA2OTAyLCAwLjAwNjk1OCwgMC4wMDY5OTIsIDAuMDA3MDEzLCAwLjAwNzAyNiwgMC4wMDcwMzYiLCBcCi0gICAgICAgICAgIjAuMDA2NzU5LCAwLjAwNjg5LCAwLjAwNjk0NywgMC4wMDY5NzgsIDAuMDA3MDAyLCAwLjAwNzAxNywgMC4wMDcwMjciLCBcCi0gICAgICAgICAgIjAuMDA2NzY3LCAwLjAwNjg3OCwgMC4wMDY5MzQsIDAuMDA2OTcsIDAuMDA2OTkzLCAwLjAwNzAxLCAwLjAwNzAxOSIsIFwKLSAgICAgICAgICAiMC4wMDY4MTEsIDAuMDA2ODg1LCAwLjAwNjkyOCwgMC4wMDY5NywgMC4wMDY5OTIsIDAuMDA3MDA4LCAwLjAwNzAxNiIsIFwKLSAgICAgICAgICAiMC4wMDY4MjIsIDAuMDA2ODc0LCAwLjAwNjkyLCAwLjAwNjk1OCwgMC4wMDY5ODMsIDAuMDA3MDAxLCAwLjAwNzAxNyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwODEzNCwgMC4wMDgzMzMsIDAuMDA4NDA5LCAwLjAwODQ2LCAwLjAwODQ4OSwgMC4wMDg1MDgsIDAuMDA4NTIxIiwgXAotICAgICAgICAgICIwLjAwODEyNiwgMC4wMDgzMjQsIDAuMDA4NCwgMC4wMDg0NSwgMC4wMDg0NzksIDAuMDA4NDk4LCAwLjAwODUxMSIsIFwKLSAgICAgICAgICAiMC4wMDgwOTksIDAuMDA4Mjk5LCAwLjAwODM3OCwgMC4wMDg0MzIsIDAuMDA4NDY0LCAwLjAwODQ4NCwgMC4wMDg0OTgiLCBcCi0gICAgICAgICAgIjAuMDA4MDk1LCAwLjAwODI4NCwgMC4wMDgzNjQsIDAuMDA4NDE5LCAwLjAwODQ1MiwgMC4wMDg0NzMsIDAuMDA4NDg5IiwgXAotICAgICAgICAgICIwLjAwODEwMiwgMC4wMDgyNzQsIDAuMDA4MzUzLCAwLjAwODQxLCAwLjAwODQ0NCwgMC4wMDg0NjcsIDAuMDA4NDgzIiwgXAotICAgICAgICAgICIwLjAwODExMSwgMC4wMDgyNTksIDAuMDA4MzM2LCAwLjAwODM5NSwgMC4wMDg0MzEsIDAuMDA4NDU2LCAwLjAwODQ3MyIsIFwKLSAgICAgICAgICAiMC4wMDgxNjEsIDAuMDA4MjYzLCAwLjAwODMzMywgMC4wMDgzOTIsIDAuMDA4NDI4LCAwLjAwODQ1MywgMC4wMDg0NzIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTMCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA5MDkzLCAwLjAwOTI3NSwgMC4wMDkzNDQsIDAuMDA5MzksIDAuMDA5NDE4LCAwLjAwOTQzNiwgMC4wMDk0NDciLCBcCi0gICAgICAgICAgIjAuMDA5MDg0LCAwLjAwOTI2NiwgMC4wMDkzMzUsIDAuMDA5MzgxLCAwLjAwOTQwOCwgMC4wMDk0MjYsIDAuMDA5NDM5IiwgXAotICAgICAgICAgICIwLjAwOTA5MSwgMC4wMDkyNzQsIDAuMDA5MzQzLCAwLjAwOTM5LCAwLjAwOTQxNywgMC4wMDk0MzQsIDAuMDA5NDQ4IiwgXAotICAgICAgICAgICIwLjAwOTA5MSwgMC4wMDkyNzYsIDAuMDA5MzQ2LCAwLjAwOTM5NCwgMC4wMDk0MiwgMC4wMDk0MzksIDAuMDA5NDUzIiwgXAotICAgICAgICAgICIwLjAwOTEwNSwgMC4wMDkyODksIDAuMDA5MzU4LCAwLjAwOTQwNCwgMC4wMDk0MzIsIDAuMDA5NDUxLCAwLjAwOTQ2MSIsIFwKLSAgICAgICAgICAiMC4wMDkxMTQsIDAuMDA5MzA0LCAwLjAwOTM3NCwgMC4wMDk0MjEsIDAuMDA5NDUyLCAwLjAwOTQ2OCwgMC4wMDk0OCIsIFwKLSAgICAgICAgICAiMC4wMDkxNjIsIDAuMDA5MzI0LCAwLjAwOTQwMiwgMC4wMDk0NSwgMC4wMDk0NzMsIDAuMDA5NDkxLCAwLjAwOTUwMSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNzYzNywgMC4wMDc4NDEsIDAuMDA3OTIzLCAwLjAwNzk3OSwgMC4wMDgwMTIsIDAuMDA4MDM0LCAwLjAwODA0OSIsIFwKLSAgICAgICAgICAiMC4wMDc2MjUsIDAuMDA3ODMsIDAuMDA3OTExLCAwLjAwNzk2NywgMC4wMDgsIDAuMDA4MDIxLCAwLjAwODAzNyIsIFwKLSAgICAgICAgICAiMC4wMDc2MywgMC4wMDc4MzgsIDAuMDA3OTE4LCAwLjAwNzk3NCwgMC4wMDgwMDcsIDAuMDA4MDI4LCAwLjAwODA0NCIsIFwKLSAgICAgICAgICAiMC4wMDc2MzksIDAuMDA3ODUsIDAuMDA3OTMxLCAwLjAwNzk4NywgMC4wMDgwMiwgMC4wMDgwNDIsIDAuMDA4MDU3IiwgXAotICAgICAgICAgICIwLjAwNzYzNCwgMC4wMDc4NDcsIDAuMDA3OTI4LCAwLjAwNzk4NSwgMC4wMDgwMTcsIDAuMDA4MDQsIDAuMDA4MDU1IiwgXAotICAgICAgICAgICIwLjAwNzY1LCAwLjAwNzg2OSwgMC4wMDc5NDgsIDAuMDA4MDA1LCAwLjAwODA0NCwgMC4wMDgwNjEsIDAuMDA4MDc3IiwgXAotICAgICAgICAgICIwLjAwNzY4NCwgMC4wMDc4OTYsIDAuMDA3OTc5LCAwLjAwODAyNywgMC4wMDgwNjYsIDAuMDA4MDg5LCAwLjAwODA5OSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogQ0xLWE9SMlgyICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoQ0xLWE9SMlgyKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMTgxMjEyOwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2MjAxMjU7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjE5ODg5OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDYyMDEyNTsKLSAgfQotICBwaW4oQikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxMzA4MTQ7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxMzA3MDk7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxMzA4MTQ7Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC41MjE2MjM7Ci0gICAgZnVuY3Rpb24gOiAiKEFeQikiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5MTI2MSwgMC4xOTYzNDUsIDAuMjc3OTUyLCAwLjM3OTkzNCwgMC40ODE5MzEsIDAuNTg0MTk4LCAwLjY4NjAzOCIsIFwKLSAgICAgICAgICAiMC4xMDEzNDcsIDAuMjA2NDA2LCAwLjI4ODAxOSwgMC4zOTAwMTEsIDAuNDkyMDA2LCAwLjU5NDEyNSwgMC42OTYwMTciLCBcCi0gICAgICAgICAgIjAuMTEzODc2LCAwLjIxODk3OCwgMC4zMDA1OTMsIDAuNDAyNTg1LCAwLjUwNDU3NywgMC42MDY4NDksIDAuNzA4NjE5IiwgXAotICAgICAgICAgICIwLjEyNjM4NiwgMC4yMzE0ODYsIDAuMzEzMTA3LCAwLjQxNTExNywgMC41MTcxNywgMC42MTkwNjUsIDAuNzIxMTE2IiwgXAotICAgICAgICAgICIwLjEzODA2NywgMC4yNDMyMDcsIDAuMzI0ODQsIDAuNDI2ODE1LCAwLjUyODkzNCwgMC42MzA4MTQsIDAuNzMyOTI4IiwgXAotICAgICAgICAgICIwLjE1NTM1MSwgMC4yNjA3MDEsIDAuMzQyMzE1LCAwLjQ0NDI5OSwgMC41NDYzMTksIDAuNjQ4NDExLCAwLjc1MDMyNyIsIFwKLSAgICAgICAgICAiMC4xNjkxNzgsIDAuMjc0NzY1LCAwLjM1NjM4MiwgMC40NTgzNzEsIDAuNTYwMzM1LCAwLjY2MjQ5OSwgMC43NjQ0OTQiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDYwMjAxLCAwLjI2NDQxNiwgMC40MzI4MSwgMC42NDQ0OTIsIDAuODU2NTk2LCAxLjA2NjkyLCAxLjI3ODEiLCBcCi0gICAgICAgICAgIjAuMDYwMTU2LCAwLjI2NDQ0MywgMC40MzMwMTIsIDAuNjQzNjI0LCAwLjg1NjU5NCwgMS4wNjY4NywgMS4yNzg1MSIsIFwKLSAgICAgICAgICAiMC4wNjAxNzMsIDAuMjY0NDM5LCAwLjQzMjgwMSwgMC42NDQ1MiwgMC44NTY1ODcsIDEuMDY2OTIsIDEuMjc4NTEiLCBcCi0gICAgICAgICAgIjAuMDYwMTQsIDAuMjY0MzYxLCAwLjQzMjc5NSwgMC42NDM1OTIsIDAuODU0ODg3LCAxLjA2ODc2LCAxLjI3ODUiLCBcCi0gICAgICAgICAgIjAuMDYwNDU1LCAwLjI2NDQ4MywgMC40MzI4MTcsIDAuNjQ0MzA0LCAwLjg1NDcwNCwgMS4wNjg3OSwgMS4yNzgyMiIsIFwKLSAgICAgICAgICAiMC4wNjEzMDQsIDAuMjY0NTMyLCAwLjQzMjM1NiwgMC42NDM3NTYsIDAuODU2NDgzLCAxLjA2NjYyLCAxLjI3ODUxIiwgXAotICAgICAgICAgICIwLjA2MjQ5MSwgMC4yNjQ4MiwgMC40MzI2OSwgMC42NDM2NzIsIDAuODU2NDI0LCAxLjA2NzAzLCAxLjI3ODA4Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5NTAwOCwgMC4yMDI1MDcsIDAuMjg1MywgMC4zODg3MzYsIDAuNDkyMTg5LCAwLjU5NTU4MSwgMC42OTkxOSIsIFwKLSAgICAgICAgICAiMC4xMDQ3NjgsIDAuMjEyMjM3LCAwLjI5NTAyNywgMC4zOTg0NTQsIDAuNTAxOTY2LCAwLjYwNTMzMSwgMC43MDg5NTkiLCBcCi0gICAgICAgICAgIjAuMTE2ODUzLCAwLjIyNDMyOCwgMC4zMDcxMjUsIDAuNDEwNTYxLCAwLjUxNDA4LCAwLjYxNzQ2MiwgMC43MjEwNiIsIFwKLSAgICAgICAgICAiMC4xMjg1MzQsIDAuMjM2MDI0LCAwLjMxODgzMSwgMC40MjIyNTIsIDAuNTI1NjgsIDAuNjI5MDk3LCAwLjczMjc1NiIsIFwKLSAgICAgICAgICAiMC4xMzk0MjYsIDAuMjQ2OTkzLCAwLjMyOTgwNCwgMC40MzMyNDQsIDAuNTM2NjkxLCAwLjY0MDExNSwgMC43NDM2NTMiLCBcCi0gICAgICAgICAgIjAuMTU1NDYxLCAwLjI2MzE1MSwgMC4zNDU5NTgsIDAuNDQ5Mzk3LCAwLjU1Mjg5MiwgMC42NTYyNiwgMC43NTk4NzkiLCBcCi0gICAgICAgICAgIjAuMTY4MDYyLCAwLjI3NTk5OSwgMC4zNTg4MTEsIDAuNDYyMjQyLCAwLjU2NTczMiwgMC42NjkwOCwgMC43NzI1NjIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDYwOTk4LCAwLjI2MjcyOCwgMC40MjgzMTUsIDAuNjM2OTM5LCAwLjg0NzcxMywgMS4wNTcwNywgMS4yNjQ0MyIsIFwKLSAgICAgICAgICAiMC4wNjEwMywgMC4yNjI3NDgsIDAuNDI4MjUzLCAwLjYzNzkxNCwgMC44NDUwMjUsIDEuMDU3NDksIDEuMjY0MjkiLCBcCi0gICAgICAgICAgIjAuMDYxMDQ1LCAwLjI2MjczOCwgMC40MjgyNjQsIDAuNjM3OTI5LCAwLjg0NDk0MSwgMS4wNTQzNSwgMS4yNjQyIiwgXAotICAgICAgICAgICIwLjA2MTA0NiwgMC4yNjI3MjQsIDAuNDI4Mjc4LCAwLjYzNzg1NSwgMC44NDcxOTksIDEuMDU3MjYsIDEuMjY0MyIsIFwKLSAgICAgICAgICAiMC4wNjEzNTYsIDAuMjYyNzM0LCAwLjQyODE2MiwgMC42MzcxOTEsIDAuODQ3NjYzLCAxLjA1NjI0LCAxLjI2NTY0IiwgXAotICAgICAgICAgICIwLjA2MjE3OSwgMC4yNjI2ODgsIDAuNDI4MzkzLCAwLjYzNjgzLCAwLjg0NTE5NSwgMS4wNTcwNywgMS4yNjQzOCIsIFwKLSAgICAgICAgICAiMC4wNjMyNTYsIDAuMjYzMDcxLCAwLjQyOTI3MSwgMC42MzcwMSwgMC44NDUyMiwgMS4wNTcyOSwgMS4yNjQ2MiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDUxNzMsIDAuMjA5ODE2LCAwLjI5MTQ5OSwgMC4zOTM1MzUsIDAuNDk1NTQsIDAuNTk3NDk3LCAwLjY5OTQ2NSIsIFwKLSAgICAgICAgICAiMC4xMTQ5MzgsIDAuMjE5NjE2LCAwLjMwMTMwMSwgMC40MDM0MDYsIDAuNTA1NDQ4LCAwLjYwNzM2NiwgMC43MDkzNDUiLCBcCi0gICAgICAgICAgIjAuMTI2MTQxLCAwLjIzMDgxNCwgMC4zMTI0ODMsIDAuNDE0NTU1LCAwLjUxNjUzNiwgMC42MTg1MDMsIDAuNzIwNDU1IiwgXAotICAgICAgICAgICIwLjEzNTE5LCAwLjIzOTkzNywgMC4zMjE2MTMsIDAuNDIzNjgzLCAwLjUyNTY5MywgMC42Mjc2NzUsIDAuNzI5NTg0IiwgXAotICAgICAgICAgICIwLjE0MzI1OSwgMC4yNDc4ODksIDAuMzI5NTc2LCAwLjQzMTYzMiwgMC41MzM2NTcsIDAuNjM1NTY5LCAwLjczNzUzNCIsIFwKLSAgICAgICAgICAiMC4xNTM3MjMsIDAuMjU4NDA2LCAwLjM0MDA2MSwgMC40NDIwOTMsIDAuNTQ0MDgzLCAwLjY0NjA3OSwgMC43NDgiLCBcCi0gICAgICAgICAgIjAuMTYxNTQ1LCAwLjI2NjI0OSwgMC4zNDc5MDUsIDAuNDQ5OTkzLCAwLjU1MTk3MywgMC42NTM5MDgsIDAuNzU1OTI0Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1OTE5MSwgMC4yNjQxMDcsIDAuNDMyNzUyLCAwLjY0NDU2OSwgMC44NTY1ODMsIDEuMDY3NDgsIDEuMjc5MzYiLCBcCi0gICAgICAgICAgIjAuMDU5MjE1LCAwLjI2NDEyNiwgMC40MzI3NTIsIDAuNjQzNDM3LCAwLjg1NjYyNSwgMS4wNjg2NywgMS4yNzc5MyIsIFwKLSAgICAgICAgICAiMC4wNTkxNzYsIDAuMjY0Mjg0LCAwLjQzMjc0MiwgMC42NDM0NjgsIDAuODU1NDkzLCAxLjA2NzYsIDEuMjc5NTQiLCBcCi0gICAgICAgICAgIjAuMDU5MTQ2LCAwLjI2NDA0MywgMC40MzI3NTEsIDAuNjQzNDE0LCAwLjg1NDgyNiwgMS4wNjcwNywgMS4yNzk1MSIsIFwKLSAgICAgICAgICAiMC4wNTkxNzEsIDAuMjYzOTM3LCAwLjQzMjg3OCwgMC42NDM2MjUsIDAuODU2NTYsIDEuMDY3NTksIDEuMjc5NjciLCBcCi0gICAgICAgICAgIjAuMDU5MTk3LCAwLjI2NDI5OCwgMC40MzI4ODUsIDAuNjQzNjI4LCAwLjg1NjQ1NSwgMS4wNjczNiwgMS4yNzk0NCIsIFwKLSAgICAgICAgICAiMC4wNTkyOSwgMC4yNjM4OTIsIDAuNDMyODE3LCAwLjY0MzUxMSwgMC44NTY0NTgsIDEuMDY4NTMsIDEuMjc5MyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDkyMzUsIDAuMjE2MjE4LCAwLjI5OTA0NywgMC40MDI1MTMsIDAuNTA1OTgyLCAwLjYwOTM2LCAwLjcxMjc2MSIsIFwKLSAgICAgICAgICAiMC4xMTk1MTEsIDAuMjI2NCwgMC4zMDkyMzgsIDAuNDEyNzEyLCAwLjUxNjE3NCwgMC42MTk1OCwgMC43MjI5NzIiLCBcCi0gICAgICAgICAgIjAuMTMxMzI4LCAwLjIzODI5MiwgMC4zMjExMzIsIDAuNDI0NjE4LCAwLjUyODA3NCwgMC42MzE0NSwgMC43MzQ4MjciLCBcCi0gICAgICAgICAgIjAuMTQxMTYxLCAwLjI0ODA0NSwgMC4zMzA4ODUsIDAuNDM0MzQ2LCAwLjUzNzgyNCwgMC42NDEyLCAwLjc0NDYzOSIsIFwKLSAgICAgICAgICAiMC4xNDk4MjEsIDAuMjU2Njk4LCAwLjMzOTUzLCAwLjQ0MzAyMiwgMC41NDY0NjcsIDAuNjQ5ODQ1LCAwLjc1MzI3IiwgXAotICAgICAgICAgICIwLjE2MTIyNCwgMC4yNjgyMDEsIDAuMzUxMDE4LCAwLjQ1NDUxMywgMC41NTc5NzgsIDAuNjYxMzUxLCAwLjc2NDczMyIsIFwKLSAgICAgICAgICAiMC4xNzAxMDEsIDAuMjc3MDE4LCAwLjM1OTg1MiwgMC40NjMzNSwgMC41NjY4MDQsIDAuNjcwMTgsIDAuNzczNTYxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1OTkwNSwgMC4yNjIyLCAwLjQyODYzOCwgMC42Mzc4MjMsIDAuODQ3NSwgMS4wNTcxOSwgMS4yNjY1MiIsIFwKLSAgICAgICAgICAiMC4wNTk5NCwgMC4yNjIwODQsIDAuNDI4NjI5LCAwLjYzNzgzNywgMC44NDc0NTksIDEuMDU3MzEsIDEuMjY3MDUiLCBcCi0gICAgICAgICAgIjAuMDU5OTEsIDAuMjYxODAxLCAwLjQyODYzOCwgMC42MzcwNDYsIDAuODQ3NDA2LCAxLjA1NzE1LCAxLjI2Njg1IiwgXAotICAgICAgICAgICIwLjA1OTkwNiwgMC4yNjE4MTMsIDAuNDI4NjIsIDAuNjM3NzU0LCAwLjg0NzM1OCwgMS4wNTcxNCwgMS4yNjQzMyIsIFwKLSAgICAgICAgICAiMC4wNTk4NjQsIDAuMjYxODA1LCAwLjQyODYxMywgMC42MzY3NywgMC44NDczNTMsIDEuMDU3MTUsIDEuMjY3MDYiLCBcCi0gICAgICAgICAgIjAuMDU5OTAzLCAwLjI2MTg0MywgMC40Mjg2MzksIDAuNjM2OTM2LCAwLjg0NzM2OSwgMS4wNTcxOSwgMS4yNjY0OSIsIFwKLSAgICAgICAgICAiMC4wNTk4NzMsIDAuMjYyMDUxLCAwLjQyNzk4NywgMC42MzYzMDQsIDAuODQ3MzY4LCAxLjA1NzE5LCAxLjI2NjMyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4MDAzMSwgMC4xODQ2OTgsIDAuMjY2MzY0LCAwLjM2ODQ4NywgMC40NzA0MTUsIDAuNTcyMzU4LCAwLjY3NDM1MSIsIFwKLSAgICAgICAgICAiMC4wODkzNTYsIDAuMTkzOTgzLCAwLjI3NTY2MSwgMC4zNzc3NzMsIDAuNDc5NzAyLCAwLjU4MTY1NCwgMC42ODM2MjgiLCBcCi0gICAgICAgICAgIjAuMTAwOTg1LCAwLjIwNTY0LCAwLjI4NzMyNywgMC4zODk0NDQsIDAuNDkxMzc1LCAwLjU5MzMyNiwgMC42OTUzMDYiLCBcCi0gICAgICAgICAgIjAuMTEyNzc1LCAwLjIxNzQ4MywgMC4yOTkxNTUsIDAuNDAxMjMyLCAwLjUwMzIxNCwgMC42MDUxODUsIDAuNzA3MTM3IiwgXAotICAgICAgICAgICIwLjEyNDE1NiwgMC4yMjg5MSwgMC4zMTA2MTUsIDAuNDEyNjczLCAwLjUxNDcwMiwgMC42MTY2NSwgMC43MTg1ODMiLCBcCi0gICAgICAgICAgIjAuMTQwNjg4LCAwLjI0NTUyNSwgMC4zMjcyMzYsIDAuNDI5Mjc5LCAwLjUzMTI4MSwgMC42MzMzMDMsIDAuNzM1MTk1IiwgXAotICAgICAgICAgICIwLjE1MzQ2MSwgMC4yNTg1OTcsIDAuMzQwMzAzLCAwLjQ0MjMwOSwgMC41NDQzNjEsIDAuNjQ2MjgsIDAuNzQ4MjQ2Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1OTA0NCwgMC4yNjM5NDcsIDAuNDMyMzA0LCAwLjY0MzQ3LCAwLjg1NjYxNCwgMS4wNjgyNiwgMS4yNzkzNiIsIFwKLSAgICAgICAgICAiMC4wNTkxMDgsIDAuMjY0MDM5LCAwLjQzMjcwNCwgMC42NDMzMjgsIDAuODU2NDU5LCAxLjA2NzQxLCAxLjI3OTUyIiwgXAotICAgICAgICAgICIwLjA1OTE1MiwgMC4yNjQwNTYsIDAuNDMyNzA3LCAwLjY0MzUwMiwgMC44NTY1NiwgMS4wNjc0NCwgMS4yODA4MSIsIFwKLSAgICAgICAgICAiMC4wNTkyMjcsIDAuMjYzOTExLCAwLjQzMjcxMywgMC42NDM0NjEsIDAuODU1NTA1LCAxLjA2NzYyLCAxLjI3OTQ3IiwgXAotICAgICAgICAgICIwLjA1OTgwOCwgMC4yNjQxNDMsIDAuNDMyODk1LCAwLjY0MzUxOSwgMC44NTY1MDQsIDEuMDY2ODYsIDEuMjc5NTgiLCBcCi0gICAgICAgICAgIjAuMDYxNjE1LCAwLjI2NDU3NywgMC40MzMwMjYsIDAuNjQzNzgsIDAuODU0OTk4LCAxLjA2ODYsIDEuMjc5NDciLCBcCi0gICAgICAgICAgIjAuMDYzNDg0LCAwLjI2NTExNSwgMC40MzMyMjQsIDAuNjQ0NjExLCAwLjg1NjU1NCwgMS4wNjg1NSwgMS4yNzk2Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3OTcyOSwgMC4xODcyNDEsIDAuMjcwMDM2LCAwLjM3MzQ2OCwgMC40NzY5NTUsIDAuNTgwMzE4LCAwLjY4Mzk0OSIsIFwKLSAgICAgICAgICAiMC4wODg4NjgsIDAuMTk2MzYxLCAwLjI3OTE1MSwgMC4zODI1ODMsIDAuNDg2MDExLCAwLjU4OTUwMSwgMC42OTMwODkiLCBcCi0gICAgICAgICAgIjAuMTAwMTUsIDAuMjA3NjE3LCAwLjI5MDQxMSwgMC4zOTM4NTEsIDAuNDk3MzE1LCAwLjYwMDcxNCwgMC43MDQxMzciLCBcCi0gICAgICAgICAgIjAuMTExMzQ2LCAwLjIxODg1MiwgMC4zMDE2ODcsIDAuNDA1MDg3LCAwLjUwODYxLCAwLjYxMTk4NiwgMC43MTU2IiwgXAotICAgICAgICAgICIwLjEyMTg4MywgMC4yMjk0MjksIDAuMzEyMjMsIDAuNDE1NzIyLCAwLjUxOTIxNSwgMC42MjI1ODIsIDAuNzI1OTYyIiwgXAotICAgICAgICAgICIwLjEzNjY1MywgMC4yNDQ0OTYsIDAuMzI3MzA0LCAwLjQzMDcyOSwgMC41MzQxNDYsIDAuNjM3NTgsIDAuNzQxMjg1IiwgXAotICAgICAgICAgICIwLjE0Nzg4OSwgMC4yNTYwODIsIDAuMzM4ODcyLCAwLjQ0MjM1MiwgMC41NDU3NzQsIDAuNjQ5MywgMC43NTI2ODEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDYwNzQ0LCAwLjI2MjY5OCwgMC40MjgxODMsIDAuNjM2NzQ3LCAwLjg0NTEyOSwgMS4wNTY4MiwgMS4yNjQxOCIsIFwKLSAgICAgICAgICAiMC4wNjA3NjQsIDAuMjYyNDk4LCAwLjQyODE2OSwgMC42MzY3MDYsIDAuODQ3MzUzLCAxLjA1NDMsIDEuMjY0MDYiLCBcCi0gICAgICAgICAgIjAuMDYwNzc0LCAwLjI2MjQ3NywgMC40Mjg4MiwgMC42MzY4NTcsIDAuODQ3NTM3LCAxLjA1NjY2LCAxLjI2NzA5IiwgXAotICAgICAgICAgICIwLjA2MDgzMSwgMC4yNjI0OTIsIDAuNDI4MTk3LCAwLjYzNjc5LCAwLjg0NTE2OSwgMS4wNTY3NSwgMS4yNjQyOSIsIFwKLSAgICAgICAgICAiMC4wNjEyNzYsIDAuMjYyNTU2LCAwLjQyODg2MiwgMC42MzY3NTYsIDAuODQ1MTM4LCAxLjA1NjgsIDEuMjY3MDgiLCBcCi0gICAgICAgICAgIjAuMDYyNjUxLCAwLjI2MzAwNSwgMC40MjkxMDgsIDAuNjM3ODUzLCAwLjg0NzMyMiwgMS4wNTcxNSwgMS4yNjM5MyIsIFwKLSAgICAgICAgICAiMC4wNjQzNTMsIDAuMjYzNTgyLCAwLjQyOTI3NCwgMC42MzYzOTMsIDAuODQ2MzY3LCAxLjA1NTA2LCAxLjI2NDgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc5NTAxLCAwLjE4NDY2NywgMC4yNjYzMTIsIDAuMzY4MzAzLCAwLjQ3MDI2OCwgMC41NzI1NDksIDAuNjc0MjgxIiwgXAotICAgICAgICAgICIwLjA4OTY4OCwgMC4xOTQ4NDQsIDAuMjc2NDQ1LCAwLjM3ODQ2NiwgMC40ODA0NTcsIDAuNTgyNiwgMC42ODQ0NzEiLCBcCi0gICAgICAgICAgIjAuMTAxNjk3LCAwLjIwNjc4NCwgMC4yODg0MDIsIDAuMzkwNDMxLCAwLjQ5MjM5NSwgMC41OTQ2NjcsIDAuNjk2NzciLCBcCi0gICAgICAgICAgIjAuMTExMTI2LCAwLjIxNjIzOCwgMC4yOTc4NTQsIDAuMzk5ODgzLCAwLjUwMTg0OSwgMC42MDQxMjgsIDAuNzA2MDY0IiwgXAotICAgICAgICAgICIwLjExODY1MiwgMC4yMjM3NTksIDAuMzA1MzU5LCAwLjQwNzM4NywgMC41MDkzNzcsIDAuNjExNTM3LCAwLjcxMzM4OSIsIFwKLSAgICAgICAgICAiMC4xMjg1MzMsIDAuMjMzNTg5LCAwLjMxNTE2LCAwLjQxNzI3NywgMC41MTkyLCAwLjYyMTUxLCAwLjcyMzIxNyIsIFwKLSAgICAgICAgICAiMC4xMzU3NDIsIDAuMjQwNzU2LCAwLjMyMjQsIDAuNDI0MzIxLCAwLjUyNjMzMywgMC42Mjg1NDQsIDAuNzMwMzY0Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1OTkyMywgMC4yNjQyNTgsIDAuNDMyMDM2LCAwLjY0MzQ1MSwgMC44NTY1OTksIDEuMDY2OTMsIDEuMjc4NSIsIFwKLSAgICAgICAgICAiMC4wNTk5NDYsIDAuMjY0MzcyLCAwLjQzMjc3OCwgMC42NDM2MDcsIDAuODU2NjExLCAxLjA2NzE0LCAxLjI3ODUxIiwgXAotICAgICAgICAgICIwLjA1OTkzMiwgMC4yNjQzODksIDAuNDMyNzgyLCAwLjY0MzQ4OSwgMC44NTY1ODgsIDEuMDY2OTIsIDEuMjc4ODQiLCBcCi0gICAgICAgICAgIjAuMDU5OTMzLCAwLjI2NDM4OCwgMC40MzI3NzksIDAuNjQzNDgyLCAwLjg1NjU5MSwgMS4wNjY5MywgMS4yNzg3IiwgXAotICAgICAgICAgICIwLjA1OTgxNywgMC4yNjQyNTUsIDAuNDMyNzMyLCAwLjY0MzU5NywgMC44NTY0OTksIDEuMDY3MTMsIDEuMjc4NTEiLCBcCi0gICAgICAgICAgIjAuMDU5NzczLCAwLjI2NDM3NCwgMC40MzI2NzMsIDAuNjQzMjkzLCAwLjg1NjQ2NiwgMS4wNjY2LCAxLjI3ODUiLCBcCi0gICAgICAgICAgIjAuMDU5Nzc0LCAwLjI2NDIxMSwgMC40MzI4MTYsIDAuNjQzNTA5LCAwLjg1NjQ3MywgMS4wNjY4NSwgMS4yODA4NyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTg5OTcsIDAuMjA1OTc4LCAwLjI4ODgwOCwgMC4zOTIyOTgsIDAuNDk1NzQ5LCAwLjU5OTEyNywgMC43MDI2MzIiLCBcCi0gICAgICAgICAgIjAuMTA5MzM2LCAwLjIxNjIyLCAwLjI5OTA1NywgMC40MDI1NDUsIDAuNTA1OTk5LCAwLjYwOTM3NSwgMC43MTI4NDIiLCBcCi0gICAgICAgICAgIjAuMTIwMTksIDAuMjI3MDY1LCAwLjMwOTkwNSwgMC40MTMzOTIsIDAuNTE2ODQ2LCAwLjYyMDIyMiwgMC43MjM2ODkiLCBcCi0gICAgICAgICAgIjAuMTI4NzYzLCAwLjIzNTc4OCwgMC4zMTg2MzUsIDAuNDIyMDE2LCAwLjUyNTU2OSwgMC42Mjg4NDMsIDAuNzMyMjU5IiwgXAotICAgICAgICAgICIwLjEzNTg4MiwgMC4yNDI5NiwgMC4zMjU4MDgsIDAuNDI5MjgyLCAwLjUzMjYwOSwgMC42MzU5ODEsIDAuNzM5NDkyIiwgXAotICAgICAgICAgICIwLjE0NTg2LCAwLjI1Mjg2OCwgMC4zMzU3MTEsIDAuNDM5MTcxLCAwLjU0MjYzLCAwLjY0NTkzMSwgMC43NDkzMjkiLCBcCi0gICAgICAgICAgIjAuMTUzMTI4LCAwLjI2MDM1OCwgMC4zNDMyMywgMC40NDY2ODMsIDAuNTQ5OTIzLCAwLjY1MzM0OSwgMC43NTY3NDkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU5OTA4LCAwLjI2MjE0NywgMC40Mjg2NzgsIDAuNjM2MDUyLCAwLjg0NzM5NywgMS4wNTczLCAxLjI2NDQyIiwgXAotICAgICAgICAgICIwLjA1OTkxLCAwLjI2MTg0MywgMC40Mjg2MzMsIDAuNjM3MDg2LCAwLjg0NzQ0MiwgMS4wNTcxNywgMS4yNjcyMSIsIFwKLSAgICAgICAgICAiMC4wNTk5MzMsIDAuMjYxNzczLCAwLjQyODYxLCAwLjYzNzA3MywgMC44NDc0MTcsIDEuMDU3MTUsIDEuMjY3MTciLCBcCi0gICAgICAgICAgIjAuMDU5ODIzLCAwLjI2MTc5NCwgMC40Mjg2NzIsIDAuNjM3MTMzLCAwLjg0NzM2OSwgMS4wNTcxNSwgMS4yNjcwNCIsIFwKLSAgICAgICAgICAiMC4wNjAwMDIsIDAuMjYxODIyLCAwLjQyODcyNSwgMC42MzcwMzYsIDAuODQ3MjQ3LCAxLjA1NzI0LCAxLjI2NjgiLCBcCi0gICAgICAgICAgIjAuMDU5OTMyLCAwLjI2MjM4NCwgMC40MjgwNzIsIDAuNjM3Nzg4LCAwLjg0NjA0OCwgMS4wNTcwOCwgMS4yNjY5OSIsIFwKLSAgICAgICAgICAiMC4wNjAwMzQsIDAuMjYyMDg3LCAwLjQyODE5NiwgMC42MzY0ODYsIDAuODQ2NTE2LCAxLjA1NTc5LCAxLjI2Njg1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0NTE1LCAwLjAwNDU4OCwgMC4wMDQ1OTksIDAuMDA0NjA1LCAwLjAwNDYwOCwgMC4wMDQ2MDgsIDAuMDA0NjEiLCBcCi0gICAgICAgICAgIjAuMDA0NDksIDAuMDA0NTY0LCAwLjAwNDU3NCwgMC4wMDQ1ODEsIDAuMDA0NTg1LCAwLjAwNDU4NCwgMC4wMDQ1ODUiLCBcCi0gICAgICAgICAgIjAuMDA0NDg3LCAwLjAwNDU2LCAwLjAwNDU3MSwgMC4wMDQ1NzYsIDAuMDA0NTgxLCAwLjAwNDU4MSwgMC4wMDQ1ODIiLCBcCi0gICAgICAgICAgIjAuMDA0NDkyLCAwLjAwNDU2NiwgMC4wMDQ1NzgsIDAuMDA0NTgzLCAwLjAwNDU4NiwgMC4wMDQ1ODgsIDAuMDA0NTg5IiwgXAotICAgICAgICAgICIwLjAwNDQ5MiwgMC4wMDQ1NjQsIDAuMDA0NTc4LCAwLjAwNDU4MSwgMC4wMDQ1ODUsIDAuMDA0NTg2LCAwLjAwNDU4OCIsIFwKLSAgICAgICAgICAiMC4wMDQ1MSwgMC4wMDQ1ODUsIDAuMDA0NTk0LCAwLjAwNDYsIDAuMDA0NjAzLCAwLjAwNDYwNywgMC4wMDQ2MDYiLCBcCi0gICAgICAgICAgIjAuMDA0NTMyLCAwLjAwNDYwMiwgMC4wMDQ2MTMsIDAuMDA0NjE5LCAwLjAwNDYyNSwgMC4wMDQ2MjQsIDAuMDA0NjI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0Mjg3LCAwLjAwNDM4MSwgMC4wMDQzOTUsIDAuMDA0NDAyLCAwLjAwNDQwNiwgMC4wMDQ0MDgsIDAuMDA0NDEiLCBcCi0gICAgICAgICAgIjAuMDA0MjU3LCAwLjAwNDM1MSwgMC4wMDQzNjUsIDAuMDA0MzcyLCAwLjAwNDM3NiwgMC4wMDQzNzksIDAuMDA0MzgiLCBcCi0gICAgICAgICAgIjAuMDA0MjUzLCAwLjAwNDM0OCwgMC4wMDQzNjEsIDAuMDA0MzY5LCAwLjAwNDM3MywgMC4wMDQzNzUsIDAuMDA0Mzc3IiwgXAotICAgICAgICAgICIwLjAwNDI2MiwgMC4wMDQzNTcsIDAuMDA0MzcxLCAwLjAwNDM3OCwgMC4wMDQzODIsIDAuMDA0Mzg1LCAwLjAwNDM4NiIsIFwKLSAgICAgICAgICAiMC4wMDQyNjcsIDAuMDA0MzYsIDAuMDA0Mzc0LCAwLjAwNDM4MiwgMC4wMDQzODYsIDAuMDA0Mzg4LCAwLjAwNDM5IiwgXAotICAgICAgICAgICIwLjAwNDI4NCwgMC4wMDQzNzksIDAuMDA0MzkzLCAwLjAwNDQwMSwgMC4wMDQ0MDUsIDAuMDA0NDA4LCAwLjAwNDQwOSIsIFwKLSAgICAgICAgICAiMC4wMDQzMDgsIDAuMDA0NCwgMC4wMDQ0MTQsIDAuMDA0NDIyLCAwLjAwNDQyNiwgMC4wMDQ0MjgsIDAuMDA0NDMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI1LCAwLjAwMjU2OSwgMC4wMDI1NzksIDAuMDAyNTgyLCAwLjAwMjU4NSwgMC4wMDI1ODcsIDAuMDAyNTg2IiwgXAotICAgICAgICAgICIwLjAwMjQ1MywgMC4wMDI1MjgsIDAuMDAyNTM3LCAwLjAwMjU0LCAwLjAwMjU0MiwgMC4wMDI1NDUsIDAuMDAyNTQ0IiwgXAotICAgICAgICAgICIwLjAwMjQzOSwgMC4wMDI1MTgsIDAuMDAyNTI4LCAwLjAwMjUzNCwgMC4wMDI1MzgsIDAuMDAyNTQsIDAuMDAyNTQxIiwgXAotICAgICAgICAgICIwLjAwMjQyOSwgMC4wMDI1MDksIDAuMDAyNTIzLCAwLjAwMjUzLCAwLjAwMjUzNSwgMC4wMDI1MzcsIDAuMDAyNTM5IiwgXAotICAgICAgICAgICIwLjAwMjQ0NCwgMC4wMDI1MjQsIDAuMDAyNTQxLCAwLjAwMjU0OCwgMC4wMDI1NTIsIDAuMDAyNTU1LCAwLjAwMjU1NyIsIFwKLSAgICAgICAgICAiMC4wMDI0ODEsIDAuMDAyNTU5LCAwLjAwMjU3NiwgMC4wMDI1ODUsIDAuMDAyNTkxLCAwLjAwMjU5MSwgMC4wMDI1OTYiLCBcCi0gICAgICAgICAgIjAuMDAyNTIyLCAwLjAwMjU5NiwgMC4wMDI2MTQsIDAuMDAyNjI0LCAwLjAwMjYzNCwgMC4wMDI2MzQsIDAuMDAyNjM5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzNjY5LCAwLjAwMzc2MiwgMC4wMDM3NzUsIDAuMDAzNzgzLCAwLjAwMzc4NywgMC4wMDM3ODksIDAuMDAzNzkxIiwgXAotICAgICAgICAgICIwLjAwMzY1NiwgMC4wMDM3NDgsIDAuMDAzNzYxLCAwLjAwMzc2OSwgMC4wMDM3NzMsIDAuMDAzNzc1LCAwLjAwMzc3NyIsIFwKLSAgICAgICAgICAiMC4wMDM2NTYsIDAuMDAzNzQ5LCAwLjAwMzc2MiwgMC4wMDM3NywgMC4wMDM3NzQsIDAuMDAzNzc2LCAwLjAwMzc3OCIsIFwKLSAgICAgICAgICAiMC4wMDM2NjUsIDAuMDAzNzU4LCAwLjAwMzc3MiwgMC4wMDM3NzgsIDAuMDAzNzgzLCAwLjAwMzc4NSwgMC4wMDM3ODYiLCBcCi0gICAgICAgICAgIjAuMDAzNjc3LCAwLjAwMzc3MiwgMC4wMDM3ODYsIDAuMDAzNzkzLCAwLjAwMzc5NiwgMC4wMDM3OTgsIDAuMDAzODAxIiwgXAotICAgICAgICAgICIwLjAwMzcwNSwgMC4wMDM3OTcsIDAuMDAzODExLCAwLjAwMzgxOCwgMC4wMDM4MjIsIDAuMDAzODIzLCAwLjAwMzgyNSIsIFwKLSAgICAgICAgICAiMC4wMDM3MjUsIDAuMDAzODIxLCAwLjAwMzgzNSwgMC4wMDM4NDMsIDAuMDAzODQzLCAwLjAwMzg0NSwgMC4wMDM4NDciKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogREZGTlNSWDEgKgotICogLS0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKERGRk5TUlgxKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuNDE4Njc3OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIGZmIChOMzUsUUJJTlQpIHsKLSAgICBuZXh0X3N0YXRlIDogIkQiOwotICAgIGNsb2NrZWRfb24gOiAiKCFDS04pIjsKLSAgICBjbGVhciA6ICIoIVJOKSI7Ci0gICAgcHJlc2V0IDogIighU04pIjsKLSAgICBjbGVhcl9wcmVzZXRfdmFyMSA6IEg7Ci0gICAgY2xlYXJfcHJlc2V0X3ZhcjIgOiBMOwotICB9Ci0gIHBpbihDS04pICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYyMTIyNjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MjE7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjIxMjI2OwotICAgIGNsb2NrIDogdHJ1ZTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDY1NzgsIDAuMDA2NTUxLCAwLjAwNjUzOCwgMC4wMDY1MzcsIDAuMDA2NTQ0LCAwLjAwNjU2MywgMC4wMDY1ODMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDM1MDgsIDAuMDAzNDg1LCAwLjAwMzQ3MywgMC4wMDM0NzcsIDAuMDAzNDg0LCAwLjAwMzUwOCwgMC4wMDM1MjkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0tOIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRCZSTiZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fUk5fRVFfMV9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMTE4OTM0LCAwLjEyOTIwMiwgMC4xNDE4NzcsIDAuMTUzNTQsIDAuMTYzODA4LCAwLjE3Nzk0NiwgMC4xODg2ODciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjE2NjQ2MiwgMC4xNzYyNSwgMC4xODgzMDksIDAuMTk5MjkxLCAwLjIwODY0MiwgMC4yMjE2MTIsIDAuMjMxNzU3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihEKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2MzEyNjY7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjI5OTAxOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDYzMTI2NjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDI3MTcsIDAuMDAyNjk0LCAwLjAwMjY4MywgMC4wMDI2NzQsIDAuMDAyNjcyLCAwLjAwMjY3OSwgMC4wMDI2ODIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDI5NjksIDAuMDAyOTU1LCAwLjAwMjk0NiwgMC4wMDI5NDEsIDAuMDAyOTM2LCAwLjAwMjkzOCwgMC4wMDI5NCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDS04iOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX2ZhbGxpbmc7Ci0gICAgICB3aGVuIDogIlJOJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIlJOX0VRXzFfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyNSwgMC4wMzYyNSwgMC4wNDI1LCAwLjA1NSwgMC4wNjEyNSwgMC4wNzc1LCAwLjA4NjI1IiwgXAotICAgICAgICAgICIwLjAxMzc1LCAwLjAyNSwgMC4wMzc1LCAwLjA0Mzc1LCAwLjA1NjI1LCAwLjA2NjI1LCAwLjA3NSIsIFwKLSAgICAgICAgICAiMC4wMDc1LCAwLjAxMjUsIDAuMDI1LCAwLjAzNzUsIDAuMDQzNzUsIDAuMDYsIDAuMDY4NzUiLCBcCi0gICAgICAgICAgIjAuMDAxMjUsIDAuMDA2MjUsIDAuMDE4NzUsIDAuMDMxMjUsIDAuMDM3NSwgMC4wNTM3NSwgMC4wNjI1IiwgXAotICAgICAgICAgICItMC4wMDUsIDAsIDAuMDEyNSwgMC4wMjUsIDAuMDMxMjUsIDAuMDQxMjUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIi0wLjAxNSwgLTAuMDAzNzUsIDAuMDAyNSwgMC4wMTUsIDAuMDIxMjUsIDAuMDM3NSwgMC4wNDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxMjUsIDAsIDAuMDA2MjUsIDAuMDE4NzUsIDAuMDI4NzUsIDAuMDM3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAxODc1LCAtMC4wMTM3NSwgLTAuMDA3NSwgLTAuMDAxMjUsIDAuMDA1LCAwLjAwODc1LCAwLjAxMTI1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAtMC4wMDYyNSwgLTAuMDAyNSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDg3NSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTUsIC0wLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjA1NSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMzEyNSwgLTAuMDIxMjUsIC0wLjAxODc1IiwgXAotICAgICAgICAgICItMC4wNjUsIC0wLjA1Mzc1LCAtMC4wNDc1LCAtMC4wNDEyNSwgLTAuMDM1LCAtMC4wMzEyNSwgLTAuMDI4NzUiLCBcCi0gICAgICAgICAgIi0wLjA2NzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjA0LCAtMC4wMzEyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDS04iOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9mYWxsaW5nOwotICAgICAgd2hlbiA6ICJSTiZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJSTl9FUV8xX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDUsIDAuMDM4NzUsIDAuMDI2MjUsIDAuMDEzNzUsIDAuMDAxMjUsIC0wLjAwODc1LCAtMC4wMjM3NSIsIFwKLSAgICAgICAgICAiMC4wNTUsIDAuMDUsIDAuMDM3NSwgMC4wMjUsIDAuMDEyNSwgMC4wMDI1LCAtMC4wMTI1IiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDU2MjUsIDAuMDQzNzUsIDAuMDMxMjUsIDAuMDI1LCAwLjAwODc1LCAwIiwgXAotICAgICAgICAgICIwLjA4LCAwLjA2ODc1LCAwLjA1NjI1LCAwLjA0Mzc1LCAwLjAzMTI1LCAwLjAyMTI1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICIwLjA4NjI1LCAwLjA3NSwgMC4wNjI1LCAwLjA1LCAwLjA0Mzc1LCAwLjAyNzUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMTAyNSwgMC4wOTEyNSwgMC4wNzg3NSwgMC4wNjYyNSwgMC4wNTM3NSwgMC4wNDM3NSwgMC4wMjg3NSIsIFwKLSAgICAgICAgICAiMC4xMTEyNSwgMC4xLCAwLjA4NzUsIDAuMDc1LCAwLjA2MjUsIDAuMDUyNSwgMC4wNDM3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2ODc1LCAwLjA1NzUsIDAuMDQ1LCAwLjAzODc1LCAwLjAyNjI1LCAwLjAxNjI1LCAwLjAxMzc1IiwgXAotICAgICAgICAgICIwLjA4LCAwLjA2ODc1LCAwLjA1NjI1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDI3NSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4wODYyNSwgMC4wODEyNSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA0Mzc1LCAwLjAzMzc1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICIwLjA5ODc1LCAwLjA4NzUsIDAuMDc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDQ2MjUsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiMC4xMDUsIDAuMDkzNzUsIDAuMDgxMjUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNTI1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjExNSwgMC4xMDM3NSwgMC4wOTEyNSwgMC4wODUsIDAuMDcyNSwgMC4wNjI1LCAwLjA2IiwgXAotICAgICAgICAgICIwLjEyMzc1LCAwLjExMjUsIDAuMSwgMC4wOTM3NSwgMC4wODEyNSwgMC4wNzEyNSwgMC4wNjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihRKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMjUyODgxOwotICAgIGZ1bmN0aW9uIDogIk4zNSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0tOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5vbl91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogZmFsbGluZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNzI2NTgsIDAuMTk3MzQ0LCAwLjMzNjUxNywgMC40NTk0MzQsIDAuNjIyODE0LCAwLjk0OTk1NywgMS4xNTUyMyIsIFwKLSAgICAgICAgICAiMC4xODI1NjgsIDAuMjA3MjQ5LCAwLjM0NjY3OCwgMC40NjkxNDYsIDAuNjMyNzAzLCAwLjk2MDUxMSwgMS4xNjQ1MiIsIFwKLSAgICAgICAgICAiMC4xOTQ3ODUsIDAuMjE5NDcxLCAwLjM1ODYwNSwgMC40ODEzNDksIDAuNjQ0OTMxLCAwLjk3Mjc1MywgMS4xNzczNSIsIFwKLSAgICAgICAgICAiMC4yMDU1NzksIDAuMjMwMjU5LCAwLjM2OTY4OSwgMC40OTI1MSwgMC42NTU3MDksIDAuOTgzNDgxLCAxLjE4NzQxIiwgXAotICAgICAgICAgICIwLjIxNTEwNywgMC4yMzk3OTQsIDAuMzc5MDc3LCAwLjUwMTg3NiwgMC42NjUyNTQsIDAuOTkyNzYzLCAxLjE5NzYyIiwgXAotICAgICAgICAgICIwLjIyODI4MiwgMC4yNTI5NjgsIDAuMzkyMzc5LCAwLjUxNDc4NSwgMC42Nzg0MjMsIDEuMDA1NjIsIDEuMjEwNzQiLCBcCi0gICAgICAgICAgIjAuMjM4MDc4LCAwLjI2Mjc2MSwgMC40MDIxODcsIDAuNTI0NjEzLCAwLjY4ODIzNiwgMS4wMTU0MSwgMS4yMjAzOCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTU0NTgsIDAuMTQzOTcyLCAwLjQyODE3MSwgMC42ODEzOTMsIDEuMDE3MiwgMS42OTA1MiwgMi4xMTEwNiIsIFwKLSAgICAgICAgICAiMC4wOTUwMTIsIDAuMTQzOTY3LCAwLjQyODY2MiwgMC42ODAyMDcsIDEuMDE2OCwgMS42OTM0NSwgMi4xMTQxNSIsIFwKLSAgICAgICAgICAiMC4wOTUyOTgsIDAuMTQzOTYxLCAwLjQyODI4NSwgMC42ODA1ODUsIDEuMDE2NTUsIDEuNjkzNDgsIDIuMTExMTgiLCBcCi0gICAgICAgICAgIjAuMDk1MDk2LCAwLjE0Mzk2NSwgMC40Mjg2ODYsIDAuNjgxNTg2LCAxLjAxNjgyLCAxLjY5MzM4LCAyLjEwODkyIiwgXAotICAgICAgICAgICIwLjA5NTEwNywgMC4xNDM5NjIsIDAuNDI4MDMyLCAwLjY4MTM0NywgMS4wMTY1NSwgMS42OTMyLCAyLjExNTE1IiwgXAotICAgICAgICAgICIwLjA5NTM2OCwgMC4xNDM5NzUsIDAuNDI4NjgyLCAwLjY4MDQ2NiwgMS4wMTY2MiwgMS42OTEwNywgMi4xMTUwOSIsIFwKLSAgICAgICAgICAiMC4wOTUwMDYsIDAuMTQzOTY0LCAwLjQyODY4NywgMC42Nzk1MTksIDEuMDE2OTcsIDEuNjkwOTIsIDIuMTE0ODkiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTU0Mjk3LCAwLjE3OTIyMiwgMC4zMTk1NzIsIDAuNDQzMjEsIDAuNjA4MzcsIDAuOTM4MDgzLCAxLjE0NDEyIiwgXAotICAgICAgICAgICIwLjE2NDEwMywgMC4xODkxNjMsIDAuMzI5MzQ4LCAwLjQ1MzIyMSwgMC42MTgxNCwgMC45NDc2NDksIDEuMTUzOTMiLCBcCi0gICAgICAgICAgIjAuMTc2MTY1LCAwLjIwMTE5MiwgMC4zNDE0MTMsIDAuNDY1MzU0LCAwLjYzMDIwNiwgMC45NTk2MjMsIDEuMTY2MDIiLCBcCi0gICAgICAgICAgIjAuMTg3MTQ1LCAwLjIxMjExNiwgMC4zNTIzNzIsIDAuNDc2MTkyLCAwLjY0MTE3MSwgMC45NzA2NjEsIDEuMTc2OTgiLCBcCi0gICAgICAgICAgIjAuMTk2NDk2LCAwLjIyMTQ4OSwgMC4zNjE3MjIsIDAuNDg1NTQxLCAwLjY1MDUyMywgMC45Nzk5OTUsIDEuMTg2MzQiLCBcCi0gICAgICAgICAgIjAuMjA5NDU3LCAwLjIzNDM3LCAwLjM3NDY4MSwgMC40OTg1MDcsIDAuNjYzNDgzLCAwLjk5Mjk5OSwgMS4xOTkzMSIsIFwKLSAgICAgICAgICAiMC4yMTk2NDMsIDAuMjQ0NTM2LCAwLjM4NDg4MSwgMC41MDg4NTgsIDAuNjczNjc5LCAxLjAwMzM3LCAxLjIwOTM3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5NDIzNSwgMC4xNDI1MzQsIDAuNDIyODQxLCAwLjY3MTI1MiwgMS4wMDQ5NywgMS42Njk4LCAyLjA4NTE5IiwgXAotICAgICAgICAgICIwLjA5MzM3OCwgMC4xNDE3NzYsIDAuNDIxOTk0LCAwLjY3MjI2OCwgMS4wMDQ4OCwgMS42NjY3NiwgMi4wODUyMiIsIFwKLSAgICAgICAgICAiMC4wOTM5MiwgMC4xNDE3NzYsIDAuNDIxOTQ1LCAwLjY3MjM5MywgMS4wMDQ4NiwgMS42NjcyMiwgMi4wODUyNiIsIFwKLSAgICAgICAgICAiMC4wOTM0OTIsIDAuMTQyMTgzLCAwLjQyMTkwOCwgMC42NzIxMzcsIDEuMDA0ODYsIDEuNjY4MzIsIDIuMDg1MjgiLCBcCi0gICAgICAgICAgIjAuMDkzNDc2LCAwLjE0MjA3NCwgMC40MjE5MjMsIDAuNjcyMTMyLCAxLjAwNDg2LCAxLjY2ODA1LCAyLjA4NTMxIiwgXAotICAgICAgICAgICIwLjA5MzU4MSwgMC4xNDI1NDUsIDAuNDIxOTQsIDAuNjcyMTQ0LCAxLjAwNDg1LCAxLjY2ODY1LCAyLjA4NTMzIiwgXAotICAgICAgICAgICIwLjA5MzQ1OCwgMC4xNDI1NTgsIDAuNDIyMDU0LCAwLjY3MDMzMSwgMS4wMDQ4NCwgMS42Njk0OCwgMi4wODU0NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogY2xlYXI7Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIwMjU0NSwgMC4yMjc1NTMsIDAuMzY3NTk0LCAwLjQ5MTUwMywgMC42NTYyODMsIDAuOTg1NjQsIDEuMTkyMSIsIFwKLSAgICAgICAgICAiMC4yMTI0NTcsIDAuMjM3NCwgMC4zNzc1MjUsIDAuNTAxNDUyLCAwLjY2NjAwMSwgMC45OTU4ODMsIDEuMjAyMDEiLCBcCi0gICAgICAgICAgIjAuMjI0MjUzLCAwLjI0OTIwMiwgMC4zODkyMjgsIDAuNTEzMjUzLCAwLjY3Nzg2MiwgMS4wMDc2OSwgMS4yMTM4MiIsIFwKLSAgICAgICAgICAiMC4yMzQ0MDQsIDAuMjU5MzQ5LCAwLjM5OTU4MywgMC41MjM0MDUsIDAuNjg3OTIxLCAxLjAxNzg0LCAxLjIyMzk2IiwgXAotICAgICAgICAgICIwLjI0MzI4MSwgMC4yNjgxNTEsIDAuNDA4MjY2LCAwLjUzMjIxOSwgMC42OTcwMTYsIDEuMDI2NzEsIDEuMjMyNjQiLCBcCi0gICAgICAgICAgIjAuMjU1NzgzLCAwLjI4MDc4OSwgMC40MjA4NDYsIDAuNTQ0NzUzLCAwLjcwOTUzMSwgMS4wMzg4NywgMS4yNDUzNCIsIFwKLSAgICAgICAgICAiMC4yNjQ0ODEsIDAuMjg5MzQ2LCAwLjQyOTUxOCwgMC41NTM0MTksIDAuNzE4MjE5LCAxLjA0NzkxLCAxLjI1MzgyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5NDA2NywgMC4xNDIzODQsIDAuNDIyNzM4LCAwLjY3MjQ4MiwgMS4wMDUxLCAxLjY2OTk2LCAyLjA4NjMyIiwgXAotICAgICAgICAgICIwLjA5MzQ2MSwgMC4xNDI0MDcsIDAuNDIyOTM4LCAwLjY3MjQyNywgMS4wMDQ4LCAxLjY2OTk2LCAyLjA4NjMxIiwgXAotICAgICAgICAgICIwLjA5NDE4OCwgMC4xNDI0MDUsIDAuNDIyMzA4LCAwLjY3MDg2NywgMS4wMDQ3NiwgMS42Njk5MywgMi4wODYzMSIsIFwKLSAgICAgICAgICAiMC4wOTQxOTEsIDAuMTQyNDA3LCAwLjQyMjk0OCwgMC42NzA5MDUsIDEuMDA0ODcsIDEuNjY5OTIsIDIuMDg2MjciLCBcCi0gICAgICAgICAgIjAuMDkzOTQ5LCAwLjE0MjQwMiwgMC40MjI4NTYsIDAuNjcyNTIzLCAxLjAwNTEzLCAxLjY3MDM2LCAyLjA4NTc5IiwgXAotICAgICAgICAgICIwLjA5NDA4NywgMC4xNDIzNDksIDAuNDIyODU2LCAwLjY3MjQ3MiwgMS4wMDUwOCwgMS42Njk4OCwgMi4wODYyOSIsIFwKLSAgICAgICAgICAiMC4wOTQwNjEsIDAuMTQyMzk5LCAwLjQyMTg0NiwgMC42NzI1MSwgMS4wMDUxNCwgMS42NzAzNywgMi4wODU3MiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcHJlc2V0OwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNDY0NzIsIDAuMTcxMTE1LCAwLjMxMDM2LCAwLjQzMzM5MSwgMC41OTcwMDcsIDAuOTI0NDEsIDEuMTI4MTkiLCBcCi0gICAgICAgICAgIjAuMTU1ODU4LCAwLjE4MDYwMSwgMC4zMTk3MTgsIDAuNDQyNzg1LCAwLjYwNjQsIDAuOTMzNzgzLCAxLjEzNzU4IiwgXAotICAgICAgICAgICIwLjE2NjI2OSwgMC4xOTEwMTYsIDAuMzMwNDEzLCAwLjQ1MzE5MywgMC42MTY4MTYsIDAuOTQ0MTkyLCAxLjE0ODYyIiwgXAotICAgICAgICAgICIwLjE3ODA4LCAwLjIwMjc3OSwgMC4zNDIxMTIsIDAuNDY0NjQxLCAwLjYyODE2MywgMC45NTU4NzYsIDEuMTYwNTUiLCBcCi0gICAgICAgICAgIjAuMTg5NTUxLCAwLjIxNDE5NywgMC4zNTM2MywgMC40NzY0MjMsIDAuNjM5NjUsIDAuOTY3Mzc1LCAxLjE3MTgzIiwgXAotICAgICAgICAgICIwLjIwNjQyOSwgMC4yMzEwNjQsIDAuMzcwMTgzLCAwLjQ5MzM3NSwgMC42NTY5MTksIDAuOTg0MTQ0LCAxLjE4ODg0IiwgXAotICAgICAgICAgICIwLjIxOTkwNywgMC4yNDQ2NSwgMC4zODM3MzYsIDAuNTA2OCwgMC42NzAzODksIDAuOTk3NTI1LCAxLjIwMjM2Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5NTIwOCwgMC4xNDQxMzIsIDAuNDI4ODQyLCAwLjY4MTUwNywgMS4wMTg2NiwgMS42OTMzOCwgMi4xMTUyMSIsIFwKLSAgICAgICAgICAiMC4wOTUyNzgsIDAuMTQzOTcyLCAwLjQyODEzNywgMC42ODE1MzYsIDEuMDE4NjYsIDEuNjkzNTUsIDIuMTE1MTkiLCBcCi0gICAgICAgICAgIjAuMDk1MjI0LCAwLjE0NDAwNiwgMC40Mjg4NzcsIDAuNjgxNTI1LCAxLjAxODY2LCAxLjY5MzU2LCAyLjExNTIyIiwgXAotICAgICAgICAgICIwLjA5NTIzMSwgMC4xNDQxMDgsIDAuNDI4Mzg5LCAwLjY4MTUxOSwgMS4wMTg2NiwgMS42OTM1NSwgMi4xMTUyMyIsIFwKLSAgICAgICAgICAiMC4wOTUyNjMsIDAuMTQ0MDMxLCAwLjQyODgzOCwgMC42ODE1MiwgMS4wMTg2NCwgMS42OTM0OSwgMi4xMTUwNCIsIFwKLSAgICAgICAgICAiMC4wOTUwMjMsIDAuMTQ0MDU5LCAwLjQyNzkyMywgMC42ODE1MzYsIDEuMDE4NjQsIDEuNjkzMzksIDIuMTE1MTEiLCBcCi0gICAgICAgICAgIjAuMDk1MTksIDAuMTQ0MDM0LCAwLjQyODkyNSwgMC42ODE1MzgsIDEuMDE4NjMsIDEuNjkzNDYsIDIuMTE1MjIiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTg2MTY2LCAwLjIxMTE5NSwgMC4zNTEzNTYsIDAuNDc1MzU2LCAwLjY0MDE2OSwgMC45Njk4ODEsIDEuMTc2MDIiLCBcCi0gICAgICAgICAgIjAuMTk1ODExLCAwLjIyMDc1MywgMC4zNjExNCwgMC40ODQ5OTksIDAuNjQ5NTkyLCAwLjk3OTUzMywgMS4xODU2OCIsIFwKLSAgICAgICAgICAiMC4yMDY3ODgsIDAuMjMxNjc1LCAwLjM3MTkzLCAwLjQ5NTk0NCwgMC42NjA3OTQsIDAuOTkwNTM4LCAxLjE5NjQ2IiwgXAotICAgICAgICAgICIwLjIxNzQ4NCwgMC4yNDIzNDMsIDAuMzgyNjc2LCAwLjUwNjYzOCwgMC42NzE0ODQsIDEuMDAxMjQsIDEuMjA3MzQiLCBcCi0gICAgICAgICAgIjAuMjI4MTM3LCAwLjI1MzA5MywgMC4zOTMzMjQsIDAuNTE3MzM2LCAwLjY4MjA4NSwgMS4wMTE4NywgMS4yMTgwMSIsIFwKLSAgICAgICAgICAiMC4yNDQ2NzEsIDAuMjY5NjUzLCAwLjQwOTg4NiwgMC41MzM4OTksIDAuNjk4NjQ4LCAxLjAyODQzLCAxLjIzNDU3IiwgXAotICAgICAgICAgICIwLjI1ODU5NSwgMC4yODM1MzQsIDAuNDIzODc2LCAwLjU0NzgwMSwgMC43MTIyOTQsIDEuMDQyMzMsIDEuMjQ4NDciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk0MTUyLCAwLjE0MjM3OSwgMC40MjE5MzQsIDAuNjcyNDIzLCAxLjAwNTA3LCAxLjY3MDA0LCAyLjA4NjE0IiwgXAotICAgICAgICAgICIwLjA5NDE4OCwgMC4xNDIyMzQsIDAuNDIyOTY1LCAwLjY3MDY5NCwgMS4wMDQ3NiwgMS42Njk3OSwgMi4wODYyNiIsIFwKLSAgICAgICAgICAiMC4wOTMzOCwgMC4xNDI0MzcsIDAuNDIxOTk5LCAwLjY3MjUxOSwgMS4wMDUxMywgMS42NzAzNCwgMi4wODU2MiIsIFwKLSAgICAgICAgICAiMC4wOTQwNzEsIDAuMTQyMzQ1LCAwLjQyMjk0LCAwLjY3MjUyMiwgMS4wMDUxLCAxLjY3MDM1LCAyLjA4NjQyIiwgXAotICAgICAgICAgICIwLjA5NDEzNiwgMC4xNDIzMzcsIDAuNDIyOTExLCAwLjY3MDU1OCwgMS4wMDQ4NywgMS42NzAxNSwgMi4wODYxNiIsIFwKLSAgICAgICAgICAiMC4wOTQxNTMsIDAuMTQyMDExLCAwLjQyMjgxMSwgMC42NzA2MTEsIDEuMDA0ODgsIDEuNjcwMTQsIDIuMDg2MTUiLCBcCi0gICAgICAgICAgIjAuMDk0MTY4LCAwLjE0MjQ1OSwgMC40MjI4NzksIDAuNjcwNjUzLCAxLjAwNDc5LCAxLjY2OTc1LCAyLjA4NjIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDS04iOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDkwMiwgMC4wMDQ5MSwgMC4wMDQ5MjEsIDAuMDA0OTI1LCAwLjAwNDkyNSwgMC4wMDQ5MjcsIDAuMDA0OTI2IiwgXAotICAgICAgICAgICIwLjAwNDg4OCwgMC4wMDQ4OTYsIDAuMDA0OTA3LCAwLjAwNDkwOSwgMC4wMDQ5MTIsIDAuMDA0OTEzLCAwLjAwNDkxMiIsIFwKLSAgICAgICAgICAiMC4wMDQ4OTEsIDAuMDA0ODk5LCAwLjAwNDkxLCAwLjAwNDkxMiwgMC4wMDQ5MTMsIDAuMDA0OTE1LCAwLjAwNDkxNSIsIFwKLSAgICAgICAgICAiMC4wMDQ4OTYsIDAuMDA0OTAzLCAwLjAwNDkxNSwgMC4wMDQ5MTcsIDAuMDA0OTE4LCAwLjAwNDkxOSwgMC4wMDQ5MiIsIFwKLSAgICAgICAgICAiMC4wMDQ5MDYsIDAuMDA0OTE0LCAwLjAwNDkyNSwgMC4wMDQ5MjcsIDAuMDA0OTI4LCAwLjAwNDkyOSwgMC4wMDQ5MjkiLCBcCi0gICAgICAgICAgIjAuMDA0OTEzLCAwLjAwNDkyMSwgMC4wMDQ5MzIsIDAuMDA0OTM0LCAwLjAwNDkzNiwgMC4wMDQ5MzcsIDAuMDA0OTM3IiwgXAotICAgICAgICAgICIwLjAwNDkzNCwgMC4wMDQ5NDIsIDAuMDA0OTUzLCAwLjAwNDk1NiwgMC4wMDQ5NTcsIDAuMDA0OTU4LCAwLjAwNDk1OSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDM1NCwgMC4wMDQzNjIsIDAuMDA0MzczLCAwLjAwNDM3NCwgMC4wMDQzNzYsIDAuMDA0Mzc3LCAwLjAwNDM3NyIsIFwKLSAgICAgICAgICAiMC4wMDQzMzksIDAuMDA0MzQ3LCAwLjAwNDM1OCwgMC4wMDQzNiwgMC4wMDQzNiwgMC4wMDQzNjEsIDAuMDA0MzYyIiwgXAotICAgICAgICAgICIwLjAwNDMzNSwgMC4wMDQzNDIsIDAuMDA0MzU0LCAwLjAwNDM1NiwgMC4wMDQzNTcsIDAuMDA0MzU2LCAwLjAwNDM2IiwgXAotICAgICAgICAgICIwLjAwNDMzMywgMC4wMDQzNDEsIDAuMDA0MzUyLCAwLjAwNDM1NCwgMC4wMDQzNTUsIDAuMDA0MzU2LCAwLjAwNDM1NiIsIFwKLSAgICAgICAgICAiMC4wMDQzMzMsIDAuMDA0MzQxLCAwLjAwNDM1MiwgMC4wMDQzNTYsIDAuMDA0MzU2LCAwLjAwNDM1NiwgMC4wMDQzNTciLCBcCi0gICAgICAgICAgIjAuMDA0MzQsIDAuMDA0MzQ4LCAwLjAwNDM1OSwgMC4wMDQzNjMsIDAuMDA0MzYyLCAwLjAwNDM2MywgMC4wMDQzNjQiLCBcCi0gICAgICAgICAgIjAuMDA0MzQ0LCAwLjAwNDM1MiwgMC4wMDQzNjQsIDAuMDA0MzY2LCAwLjAwNDM2NywgMC4wMDQzNjgsIDAuMDA0MzY2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUk4iOwotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNTM4MiwgMC4wMDUzODksIDAuMDA1Mzg3LCAwLjAwNTM4MiwgMC4wMDUzODIsIDAuMDA1Mzc1LCAwLjAwNTM3NiIsIFwKLSAgICAgICAgICAiMC4wMDUzNywgMC4wMDUzNzYsIDAuMDA1Mzc1LCAwLjAwNTM3LCAwLjAwNTM2NywgMC4wMDUzNjMsIDAuMDA1MzYzIiwgXAotICAgICAgICAgICIwLjAwNTM2OCwgMC4wMDUzNzQsIDAuMDA1MzczLCAwLjAwNTM2OCwgMC4wMDUzNjUsIDAuMDA1MzYzLCAwLjAwNTM2MiIsIFwKLSAgICAgICAgICAiMC4wMDUzNjksIDAuMDA1Mzc1LCAwLjAwNTM3NCwgMC4wMDUzNywgMC4wMDUzNjYsIDAuMDA1MzY0LCAwLjAwNTM2MyIsIFwKLSAgICAgICAgICAiMC4wMDUzNzIsIDAuMDA1Mzc4LCAwLjAwNTM3NywgMC4wMDUzNzMsIDAuMDA1MzY5LCAwLjAwNTM2NSwgMC4wMDUzNiIsIFwKLSAgICAgICAgICAiMC4wMDUzNzgsIDAuMDA1Mzg1LCAwLjAwNTM4NCwgMC4wMDUzNzksIDAuMDA1Mzc1LCAwLjAwNTM3LCAwLjAwNTM3IiwgXAotICAgICAgICAgICIwLjAwNTM4MywgMC4wMDUzODksIDAuMDA1Mzg5LCAwLjAwNTM4NCwgMC4wMDUzOCwgMC4wMDUzNzYsIDAuMDA1Mzc2Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3Bvd2VyKHNjYWxhcikgewotICAgICAgICB2YWx1ZXMoIjAiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1MjcxLCAwLjAwNTI3OSwgMC4wMDUyODgsIDAuMDA1MjkxLCAwLjAwNTI5MiwgMC4wMDUyOTIsIDAuMDA1MjkyIiwgXAotICAgICAgICAgICIwLjAwNTI1NywgMC4wMDUyNjQsIDAuMDA1Mjc0LCAwLjAwNTI3NiwgMC4wMDUyNzcsIDAuMDA1Mjc4LCAwLjAwNTI3OSIsIFwKLSAgICAgICAgICAiMC4wMDUyNSwgMC4wMDUyNTgsIDAuMDA1MjY4LCAwLjAwNTI3LCAwLjAwNTI3MSwgMC4wMDUyNzIsIDAuMDA1MjcyIiwgXAotICAgICAgICAgICIwLjAwNTI0NywgMC4wMDUyNTUsIDAuMDA1MjY1LCAwLjAwNTI2NywgMC4wMDUyNjgsIDAuMDA1MjY5LCAwLjAwNTI2OSIsIFwKLSAgICAgICAgICAiMC4wMDUyNDcsIDAuMDA1MjU1LCAwLjAwNTI2NSwgMC4wMDUyNjcsIDAuMDA1MjY4LCAwLjAwNTI2OSwgMC4wMDUyNjkiLCBcCi0gICAgICAgICAgIjAuMDA1MjQ5LCAwLjAwNTI1NywgMC4wMDUyNjcsIDAuMDA1MjcsIDAuMDA1MjcsIDAuMDA1MjcxLCAwLjAwNTI3MSIsIFwKLSAgICAgICAgICAiMC4wMDUyNjEsIDAuMDA1MjcsIDAuMDA1MjgxLCAwLjAwNTI4MywgMC4wMDUyODQsIDAuMDA1Mjg1LCAwLjAwNTI4NSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDAzMSwgMC4wMDQwMzksIDAuMDA0MDUxLCAwLjAwNDA1MywgMC4wMDQwNTQsIDAuMDA0MDU1LCAwLjAwNDA1NSIsIFwKLSAgICAgICAgICAiMC4wMDQwMTUsIDAuMDA0MDIzLCAwLjAwNDAzNCwgMC4wMDQwMzYsIDAuMDA0MDM4LCAwLjAwNDAzOSwgMC4wMDQwNCIsIFwKLSAgICAgICAgICAiMC4wMDQwMDYsIDAuMDA0MDE0LCAwLjAwNDAyNiwgMC4wMDQwMjgsIDAuMDA0MDI5LCAwLjAwNDAzLCAwLjAwNDAzIiwgXAotICAgICAgICAgICIwLjAwNCwgMC4wMDQwMDgsIDAuMDA0MDIsIDAuMDA0MDIyLCAwLjAwNDAyMywgMC4wMDQwMjQsIDAuMDA0MDI2IiwgXAotICAgICAgICAgICIwLjAwMzk5NSwgMC4wMDQwMDQsIDAuMDA0MDE1LCAwLjAwNDAxNywgMC4wMDQwMTgsIDAuMDA0MDIxLCAwLjAwNDAyMSIsIFwKLSAgICAgICAgICAiMC4wMDM5OSwgMC4wMDM5OTksIDAuMDA0MDEsIDAuMDA0MDEyLCAwLjAwNDAxNCwgMC4wMDQwMTYsIDAuMDA0MDE1IiwgXAotICAgICAgICAgICIwLjAwMzk4NiwgMC4wMDM5OTQsIDAuMDA0MDA2LCAwLjAwNDAwOCwgMC4wMDQwMSwgMC4wMDQwMTIsIDAuMDA0MDEyIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihRTikgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjI1MDk4NzsKLSAgICBmdW5jdGlvbiA6ICJRQklOVCI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0tOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5vbl91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogZmFsbGluZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNjY0NjIsIDAuMTkwOTcyLCAwLjMyOTk2MywgMC40NTI2NjIsIDAuNjE2Mjc0LCAwLjk0MzM5NywgMS4xNDc4MiIsIFwKLSAgICAgICAgICAiMC4xNzYyNSwgMC4yMDA3NzIsIDAuMzM5NzUyLCAwLjQ2MjQ0OCwgMC42MjYwNDEsIDAuOTUzMDc5LCAxLjE1NzYyIiwgXAotICAgICAgICAgICIwLjE4ODMwOSwgMC4yMTI4MjYsIDAuMzUxODE3LCAwLjQ3NDU0NiwgMC42MzgxMDIsIDAuOTY0OTg5LCAxLjE2OTY5IiwgXAotICAgICAgICAgICIwLjE5OTI5MSwgMC4yMjM3OTgsIDAuMzYyNzkyLCAwLjQ4NTQ1MywgMC42NDkwNzYsIDAuOTc1OTc4LCAxLjE4MDY3IiwgXAotICAgICAgICAgICIwLjIwODY0MiwgMC4yMzMxNSwgMC4zNzIxNDQsIDAuNDk0ODAzLCAwLjY1ODQyNywgMC45ODUzMTMsIDEuMTkwMDMiLCBcCi0gICAgICAgICAgIjAuMjIxNjEyLCAwLjI0NjExOCwgMC4zODUxMTMsIDAuNTA3Nzc0LCAwLjY3MTM5NSwgMC45OTgzMTksIDEuMjAzIiwgXAotICAgICAgICAgICIwLjIzMTc1NywgMC4yNTYyNTksIDAuMzk1MjYyLCAwLjUxODAyLCAwLjY4MTU2LCAxLjAwODY2LCAxLjIxMzAzIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5MTAzOCwgMC4xNDE0NzQsIDAuNDI3ODExLCAwLjY4MDAyLCAxLjAxODM2LCAxLjY5MjgzLCAyLjExNDMxIiwgXAotICAgICAgICAgICIwLjA5MDk1OCwgMC4xNDExODUsIDAuNDI3NDAxLCAwLjY4MTA2MSwgMS4wMTgzMSwgMS42ODk2NiwgMi4xMTQzMyIsIFwKLSAgICAgICAgICAiMC4wOTA5NTQsIDAuMTQxMTI3LCAwLjQyNzQyMiwgMC42ODExNTMsIDEuMDE4MzEsIDEuNjkwMjIsIDIuMTE0MzUiLCBcCi0gICAgICAgICAgIjAuMDkwOTU4LCAwLjE0MTMxLCAwLjQyNzQ0MSwgMC42ODA5MywgMS4wMTgzLCAxLjY5MTg4LCAyLjExNDM2IiwgXAotICAgICAgICAgICIwLjA5MDk1NSwgMC4xNDExMTksIDAuNDI3NDQ4LCAwLjY4MDkyLCAxLjAxODMsIDEuNjkxNzcsIDIuMTE0MzciLCBcCi0gICAgICAgICAgIjAuMDkwOTQyLCAwLjE0MTQ3MSwgMC40Mjc0NTUsIDAuNjgwOTQ1LCAxLjAxODI5LCAxLjY5MjA0LCAyLjExNDM4IiwgXAotICAgICAgICAgICIwLjA5MTAwOCwgMC4xNDExMTYsIDAuNDI3Mzc4LCAwLjY3OTYwOSwgMS4wMTgyOCwgMS42OTI2NCwgMi4xMTQ1MyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xODY3MTIsIDAuMjExNDM1LCAwLjM1MTU2OSwgMC40NzUyMjEsIDAuNjQwMTQ5LCAwLjk2OTkzOCwgMS4xNzYxMyIsIFwKLSAgICAgICAgICAiMC4xOTY2MjQsIDAuMjIxMzQ5LCAwLjM2MTQ5NiwgMC40ODUxNiwgMC42NTAwNzQsIDAuOTc5ODgyLCAxLjE4NTg2IiwgXAotICAgICAgICAgICIwLjIwODg2MywgMC4yMzM1ODgsIDAuMzczNzIzLCAwLjQ5NzM3NywgMC42NjIzMDUsIDAuOTkyMTM2LCAxLjE5ODI4IiwgXAotICAgICAgICAgICIwLjIxOTYzNywgMC4yNDQzNjMsIDAuMzg0NTA5LCAwLjUwODE4MywgMC42NzMwODgsIDEuMDAyODgsIDEuMjA4OTEiLCBcCi0gICAgICAgICAgIjAuMjI5MTkyLCAwLjI1MzkxNSwgMC4zOTQwNjQsIDAuNTE3Njk5LCAwLjY4MjYzMiwgMS4wMTIzMywgMS4yMTg1NyIsIFwKLSAgICAgICAgICAiMC4yNDIzNDEsIDAuMjY3MDYzLCAwLjQwNzE5OCwgMC41MzA4NDksIDAuNjk1NzgyLCAxLjAyNTUsIDEuMjMxNjkiLCBcCi0gICAgICAgICAgIjAuMjUyMTYzLCAwLjI3Njg4OSwgMC40MTcwMzYsIDAuNTQwNjA2LCAwLjcwNTYyMiwgMS4wMzUzNCwgMS4yNDE0NiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODk4MzUsIDAuMTM5MjMzLCAwLjQyMTA4NiwgMC42NzA2ODgsIDEuMDAxODUsIDEuNjY1MTUsIDIuMDc5NDIiLCBcCi0gICAgICAgICAgIjAuMDg5ODU2LCAwLjEzOTIzNiwgMC40MjE1MjUsIDAuNjY5NzI3LCAxLjAwMTQ3LCAxLjY2ODEzLCAyLjA4MjE0IiwgXAotICAgICAgICAgICIwLjA4OTgzOCwgMC4xMzkyMzMsIDAuNDIxMTE1LCAwLjY3MDAzOSwgMS4wMDEzNCwgMS42NjgxOCwgMi4wNzk1MSIsIFwKLSAgICAgICAgICAiMC4wODk4NTYsIDAuMTM5MjM3LCAwLjQyMTUyNSwgMC42NzA5MSwgMS4wMDE0OCwgMS42NjgwMSwgMi4wNzYzNyIsIFwKLSAgICAgICAgICAiMC4wODk4NDYsIDAuMTM5MjM0LCAwLjQyMDkwMiwgMC42NzA2NTIsIDEuMDAxMzUsIDEuNjY3NTUsIDIuMDgzNjQiLCBcCi0gICAgICAgICAgIjAuMDg5ODM3LCAwLjEzOTIzMywgMC40MjE1MjQsIDAuNjY5OTAyLCAxLjAwMTQyLCAxLjY2NTU2LCAyLjA4MzU0IiwgXAotICAgICAgICAgICIwLjA4OTg1MSwgMC4xMzkyMzQsIDAuNDIxNTI0LCAwLjY2ODg2MiwgMS4wMDE2MSwgMS42NjU0MSwgMi4wODMxNiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcHJlc2V0OwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMTQ3NzcsIDAuMjM5Mjk3LCAwLjM3ODI4OSwgMC41MDEwMDcsIDAuNjY0NTUsIDAuOTkxMzg0LCAxLjE5NjIxIiwgXAotICAgICAgICAgICIwLjIyNDY2NywgMC4yNDkxODIsIDAuMzg4MTM4LCAwLjUxMDkyMiwgMC42NzQzMDIsIDEuMDAxNTgsIDEuMjA2MSIsIFwKLSAgICAgICAgICAiMC4yMzY0NywgMC4yNjA5ODgsIDAuMzk5OTQsIDAuNTIyNzI2LCAwLjY4NjEzNywgMS4wMTMzOCwgMS4yMTc5MSIsIFwKLSAgICAgICAgICAiMC4yNDY2MSwgMC4yNzExMjUsIDAuNDEwMDg4LCAwLjUzMjg2NiwgMC42OTYyMjcsIDEuMDIzNTIsIDEuMjI4MDUiLCBcCi0gICAgICAgICAgIjAuMjU1NDgxLCAwLjI3OTk3NiwgMC40MTg5NjksIDAuNTQxNzAyLCAwLjcwNTI1NiwgMS4wMzI0LCAxLjIzNjczIiwgXAotICAgICAgICAgICIwLjI2ODAxNiwgMC4yOTI1MzYsIDAuNDMxNTI2LCAwLjU1NDI0NCwgMC43MTc3ODcsIDEuMDQ0NjEsIDEuMjQ5NDUiLCBcCi0gICAgICAgICAgIjAuMjc2Njg2LCAwLjMwMTE4MSwgMC40NDAxODIsIDAuNTYyOTA2LCAwLjcyNjQ2MiwgMS4wNTM2LCAxLjI1NzkxIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5MTA3OCwgMC4xNDEzMjYsIDAuNDI3NzA3LCAwLjY4MTEyNSwgMS4wMTg0MSwgMS42OTI4NiwgMi4xMTQ4NiIsIFwKLSAgICAgICAgICAiMC4wOTA5ODQsIDAuMTQxMTU5LCAwLjQyNzg2MSwgMC42ODEwNjQsIDEuMDE4MjksIDEuNjkyODYsIDIuMTE0ODUiLCBcCi0gICAgICAgICAgIjAuMDkxMDkyLCAwLjE0MTE1NywgMC40Mjc0MTYsIDAuNjc5NjY1LCAxLjAxODIsIDEuNjkyODQsIDIuMTE0ODUiLCBcCi0gICAgICAgICAgIjAuMDkxMDkyLCAwLjE0MTE1OCwgMC40Mjc5NjEsIDAuNjc5OTM0LCAxLjAxODI3LCAxLjY5Mjg0LCAyLjExNDgzIiwgXAotICAgICAgICAgICIwLjA5MTAwMywgMC4xNDExNTgsIDAuNDI3NzgyLCAwLjY4MTE1MSwgMS4wMTg0MiwgMS42OTMwNiwgMi4xMTQ2OCIsIFwKLSAgICAgICAgICAiMC4wOTEwODgsIDAuMTQxMzE5LCAwLjQyODAzOSwgMC42ODExMTYsIDEuMDE4MzksIDEuNjkyODIsIDIuMTE0ODUiLCBcCi0gICAgICAgICAgIjAuMDkxMTEyLCAwLjE0MTQ0NiwgMC40MjcxNjgsIDAuNjgxMTQ1LCAxLjAxODQzLCAxLjY5MzA3LCAyLjExNDY0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiBjbGVhcjsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTk4NDE1LCAwLjIyMjkyOCwgMC4zNjE5MjcsIDAuNDg0NjQ4LCAwLjY0ODE3OSwgMC45NzUyODcsIDEuMTc5ODEiLCBcCi0gICAgICAgICAgIjAuMjA3OTc0LCAwLjIzMjQ4NiwgMC4zNzE0NTgsIDAuNDk0MjI4LCAwLjY1NzYwMSwgMC45ODQ4ODIsIDEuMTg5NDEiLCBcCi0gICAgICAgICAgIjAuMjE4OTgzLCAwLjI0MzQ4LCAwLjM4MjQ3NywgMC41MDUyMDksIDAuNjY4NzY0LCAwLjk5NTkwNywgMS4yMDAyMSIsIFwKLSAgICAgICAgICAiMC4yMjk2NTcsIDAuMjU0MTUyLCAwLjM5MzE2OCwgMC41MTU4ODYsIDAuNjc5NDM4LCAxLjAwNjU5LCAxLjIxMTA4IiwgXAotICAgICAgICAgICIwLjI0MDM4LCAwLjI2NDg4NCwgMC40MDM4ODMsIDAuNTI2NjI5LCAwLjY5MDExOSwgMS4wMTcyOSwgMS4yMjE4MSIsIFwKLSAgICAgICAgICAiMC4yNTY5MzMsIDAuMjgxNDQzLCAwLjQyMDQ0LCAwLjU0MzE4OSwgMC43MDY2NzgsIDEuMDMzODQsIDEuMjM4MzciLCBcCi0gICAgICAgICAgIjAuMjcwNzU1LCAwLjI5NTI2NywgMC40MzQyMjUsIDAuNTU3MDE1LCAwLjcyMDM2OSwgMS4wNDc2NywgMS4yNTIxOSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTEwODYsIDAuMTQxMzMxLCAwLjQyNzQzNywgMC42ODEwNDgsIDEuMDE4MzksIDEuNjkyODgsIDIuMTE0NzYiLCBcCi0gICAgICAgICAgIjAuMDkxMDkzLCAwLjE0MTE4OSwgMC40Mjc5OTksIDAuNjc5NjIsIDEuMDE4MiwgMS42OTI4LCAyLjExNDgzIiwgXAotICAgICAgICAgICIwLjA5MTAwMywgMC4xNDExNTksIDAuNDI3Mzk5LCAwLjY4MTE1LCAxLjAxODQyLCAxLjY5MzA2LCAyLjExNDU2IiwgXAotICAgICAgICAgICIwLjA5MTA4NywgMC4xNDEzMTIsIDAuNDI4MTE0LCAwLjY4MTE1MSwgMS4wMTg0MSwgMS42OTMwNiwgMi4xMTQ5NiIsIFwKLSAgICAgICAgICAiMC4wOTExODksIDAuMTQxNDY1LCAwLjQyODA4NywgMC42Nzk2MDQsIDEuMDE4MjYsIDEuNjkyOTYsIDIuMTE0NzgiLCBcCi0gICAgICAgICAgIjAuMDkxMDkyLCAwLjE0MTQ2LCAwLjQyNzc2OCwgMC42Nzk2MiwgMS4wMTgyNywgMS42OTI5NiwgMi4xMTQ3NyIsIFwKLSAgICAgICAgICAiMC4wOTEwODcsIDAuMTQxNDc0LCAwLjQyNzkyMiwgMC42Nzk2MzUsIDEuMDE4MjIsIDEuNjkyNzksIDIuMTE0NzkiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTYwOTI1LCAwLjE4NTYzLCAwLjMyNTc4OSwgMC40NDk0NjQsIDAuNjE0MzQxLCAwLjk0NDE1OSwgMS4xNTAxOSIsIFwKLSAgICAgICAgICAiMC4xNzAyOTIsIDAuMTk1MDE4LCAwLjMzNTE3NiwgMC40NTg4NTMsIDAuNjIzNzMxLCAwLjk1MzU0MSwgMS4xNTk1NyIsIFwKLSAgICAgICAgICAiMC4xODA3MjIsIDAuMjA1NDUsIDAuMzQ1NjA3LCAwLjQ2OTI4OCwgMC42MzQxNTUsIDAuOTYzOTY1LCAxLjE3MDA3IiwgXAotICAgICAgICAgICIwLjE5MjYwMywgMC4yMTczMzksIDAuMzU3NTA0LCAwLjQ4MTE1MywgMC42NDYwMzksIDAuOTc1ODI3LCAxLjE4MiIsIFwKLSAgICAgICAgICAiMC4yMDQwNjgsIDAuMjI4Nzk3LCAwLjM2ODk1OCwgMC40OTI2MywgMC42NTc1MDYsIDAuOTg3MzAyLCAxLjE5MzM4IiwgXAotICAgICAgICAgICIwLjIyMDkyNCwgMC4yNDU2NDksIDAuMzg1Nzk5LCAwLjUwOTQ5LCAwLjY3NDM0NiwgMS4wMDQwOCwgMS4yMTAyNyIsIFwKLSAgICAgICAgICAiMC4yMzQzODIsIDAuMjU5MTA1LCAwLjM5OTI2MiwgMC41MjI5MzksIDAuNjg3ODA5LCAxLjAxNzUzLCAxLjIyMzc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4OTgyMywgMC4xMzkzMjMsIDAuNDIxNjc0LCAwLjY3MDk1MywgMS4wMDMyNywgMS42NjgwNCwgMi4wODM4IiwgXAotICAgICAgICAgICIwLjA4OTgzMiwgMC4xMzkzMDIsIDAuNDIxMDkzLCAwLjY3MTAwNywgMS4wMDMyOCwgMS42NjgzNywgMi4wODM3NiIsIFwKLSAgICAgICAgICAiMC4wODk4MTcsIDAuMTM5MjYsIDAuNDIxNzM4LCAwLjY3MDk2MiwgMS4wMDMzLCAxLjY2ODM3LCAyLjA4MzgiLCBcCi0gICAgICAgICAgIjAuMDg5ODIxLCAwLjEzOTM0NiwgMC40MjEzNzIsIDAuNjcwOTQ1LCAxLjAwMzMsIDEuNjY4MzQsIDIuMDgzODEiLCBcCi0gICAgICAgICAgIjAuMDg5ODIsIDAuMTM5MzQyLCAwLjQyMTY5MSwgMC42NzA5NDIsIDEuMDAzMjQsIDEuNjY4MjYsIDIuMDgzNTIiLCBcCi0gICAgICAgICAgIjAuMDg5ODM2LCAwLjEzOTM0NywgMC40MjA4NjUsIDAuNjcxMDA1LCAxLjAwMzIzLCAxLjY2ODEsIDIuMDgzNiIsIFwKLSAgICAgICAgICAiMC4wODk4NjMsIDAuMTM5Mjc1LCAwLjQyMTcyNCwgMC42NzA5ODIsIDEuMDAzMjEsIDEuNjY4MTksIDIuMDgzODQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDS04iOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDM1NCwgMC4wMDQzNjIsIDAuMDA0MzczLCAwLjAwNDM3NCwgMC4wMDQzNzYsIDAuMDA0Mzc3LCAwLjAwNDM3NyIsIFwKLSAgICAgICAgICAiMC4wMDQzMzksIDAuMDA0MzQ3LCAwLjAwNDM1OCwgMC4wMDQzNiwgMC4wMDQzNiwgMC4wMDQzNjEsIDAuMDA0MzYyIiwgXAotICAgICAgICAgICIwLjAwNDMzNSwgMC4wMDQzNDIsIDAuMDA0MzU0LCAwLjAwNDM1NiwgMC4wMDQzNTcsIDAuMDA0MzU2LCAwLjAwNDM2IiwgXAotICAgICAgICAgICIwLjAwNDMzMywgMC4wMDQzNDEsIDAuMDA0MzUyLCAwLjAwNDM1NCwgMC4wMDQzNTUsIDAuMDA0MzU2LCAwLjAwNDM1NiIsIFwKLSAgICAgICAgICAiMC4wMDQzMzMsIDAuMDA0MzQxLCAwLjAwNDM1MiwgMC4wMDQzNTYsIDAuMDA0MzU2LCAwLjAwNDM1NiwgMC4wMDQzNTciLCBcCi0gICAgICAgICAgIjAuMDA0MzQsIDAuMDA0MzQ4LCAwLjAwNDM1OSwgMC4wMDQzNjMsIDAuMDA0MzYyLCAwLjAwNDM2MywgMC4wMDQzNjQiLCBcCi0gICAgICAgICAgIjAuMDA0MzQ0LCAwLjAwNDM1MiwgMC4wMDQzNjQsIDAuMDA0MzY2LCAwLjAwNDM2NywgMC4wMDQzNjgsIDAuMDA0MzY2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0OTAyLCAwLjAwNDkxLCAwLjAwNDkyMSwgMC4wMDQ5MjUsIDAuMDA0OTI1LCAwLjAwNDkyNywgMC4wMDQ5MjYiLCBcCi0gICAgICAgICAgIjAuMDA0ODg4LCAwLjAwNDg5NiwgMC4wMDQ5MDcsIDAuMDA0OTA5LCAwLjAwNDkxMiwgMC4wMDQ5MTMsIDAuMDA0OTEyIiwgXAotICAgICAgICAgICIwLjAwNDg5MSwgMC4wMDQ4OTksIDAuMDA0OTEsIDAuMDA0OTEyLCAwLjAwNDkxMywgMC4wMDQ5MTUsIDAuMDA0OTE1IiwgXAotICAgICAgICAgICIwLjAwNDg5NiwgMC4wMDQ5MDMsIDAuMDA0OTE1LCAwLjAwNDkxNywgMC4wMDQ5MTgsIDAuMDA0OTE5LCAwLjAwNDkyIiwgXAotICAgICAgICAgICIwLjAwNDkwNiwgMC4wMDQ5MTQsIDAuMDA0OTI1LCAwLjAwNDkyNywgMC4wMDQ5MjgsIDAuMDA0OTI5LCAwLjAwNDkyOSIsIFwKLSAgICAgICAgICAiMC4wMDQ5MTMsIDAuMDA0OTIxLCAwLjAwNDkzMiwgMC4wMDQ5MzQsIDAuMDA0OTM2LCAwLjAwNDkzNywgMC4wMDQ5MzciLCBcCi0gICAgICAgICAgIjAuMDA0OTM0LCAwLjAwNDk0MiwgMC4wMDQ5NTMsIDAuMDA0OTU2LCAwLjAwNDk1NywgMC4wMDQ5NTgsIDAuMDA0OTU5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUk4iOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNTM4MiwgMC4wMDUzODksIDAuMDA1Mzg3LCAwLjAwNTM4MiwgMC4wMDUzODIsIDAuMDA1Mzc1LCAwLjAwNTM3NiIsIFwKLSAgICAgICAgICAiMC4wMDUzNywgMC4wMDUzNzYsIDAuMDA1Mzc1LCAwLjAwNTM3LCAwLjAwNTM2NywgMC4wMDUzNjMsIDAuMDA1MzYzIiwgXAotICAgICAgICAgICIwLjAwNTM2OCwgMC4wMDUzNzQsIDAuMDA1MzczLCAwLjAwNTM2OCwgMC4wMDUzNjUsIDAuMDA1MzYzLCAwLjAwNTM2MiIsIFwKLSAgICAgICAgICAiMC4wMDUzNjksIDAuMDA1Mzc1LCAwLjAwNTM3NCwgMC4wMDUzNywgMC4wMDUzNjYsIDAuMDA1MzY0LCAwLjAwNTM2MyIsIFwKLSAgICAgICAgICAiMC4wMDUzNzIsIDAuMDA1Mzc4LCAwLjAwNTM3NywgMC4wMDUzNzMsIDAuMDA1MzY5LCAwLjAwNTM2NSwgMC4wMDUzNiIsIFwKLSAgICAgICAgICAiMC4wMDUzNzgsIDAuMDA1Mzg1LCAwLjAwNTM4NCwgMC4wMDUzNzksIDAuMDA1Mzc1LCAwLjAwNTM3LCAwLjAwNTM3IiwgXAotICAgICAgICAgICIwLjAwNTM4MywgMC4wMDUzODksIDAuMDA1Mzg5LCAwLjAwNTM4NCwgMC4wMDUzOCwgMC4wMDUzNzYsIDAuMDA1Mzc2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHNjYWxhcikgewotICAgICAgICB2YWx1ZXMoIjAiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0MDMxLCAwLjAwNDAzOSwgMC4wMDQwNTEsIDAuMDA0MDUzLCAwLjAwNDA1NCwgMC4wMDQwNTUsIDAuMDA0MDU1IiwgXAotICAgICAgICAgICIwLjAwNDAxNSwgMC4wMDQwMjMsIDAuMDA0MDM0LCAwLjAwNDAzNiwgMC4wMDQwMzgsIDAuMDA0MDM5LCAwLjAwNDA0IiwgXAotICAgICAgICAgICIwLjAwNDAwNiwgMC4wMDQwMTQsIDAuMDA0MDI2LCAwLjAwNDAyOCwgMC4wMDQwMjksIDAuMDA0MDMsIDAuMDA0MDMiLCBcCi0gICAgICAgICAgIjAuMDA0LCAwLjAwNDAwOCwgMC4wMDQwMiwgMC4wMDQwMjIsIDAuMDA0MDIzLCAwLjAwNDAyNCwgMC4wMDQwMjYiLCBcCi0gICAgICAgICAgIjAuMDAzOTk1LCAwLjAwNDAwNCwgMC4wMDQwMTUsIDAuMDA0MDE3LCAwLjAwNDAxOCwgMC4wMDQwMjEsIDAuMDA0MDIxIiwgXAotICAgICAgICAgICIwLjAwMzk5LCAwLjAwMzk5OSwgMC4wMDQwMSwgMC4wMDQwMTIsIDAuMDA0MDE0LCAwLjAwNDAxNiwgMC4wMDQwMTUiLCBcCi0gICAgICAgICAgIjAuMDAzOTg2LCAwLjAwMzk5NCwgMC4wMDQwMDYsIDAuMDA0MDA4LCAwLjAwNDAxLCAwLjAwNDAxMiwgMC4wMDQwMTIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDUyNzEsIDAuMDA1Mjc5LCAwLjAwNTI4OCwgMC4wMDUyOTEsIDAuMDA1MjkyLCAwLjAwNTI5MiwgMC4wMDUyOTIiLCBcCi0gICAgICAgICAgIjAuMDA1MjU3LCAwLjAwNTI2NCwgMC4wMDUyNzQsIDAuMDA1Mjc2LCAwLjAwNTI3NywgMC4wMDUyNzgsIDAuMDA1Mjc5IiwgXAotICAgICAgICAgICIwLjAwNTI1LCAwLjAwNTI1OCwgMC4wMDUyNjgsIDAuMDA1MjcsIDAuMDA1MjcxLCAwLjAwNTI3MiwgMC4wMDUyNzIiLCBcCi0gICAgICAgICAgIjAuMDA1MjQ3LCAwLjAwNTI1NSwgMC4wMDUyNjUsIDAuMDA1MjY3LCAwLjAwNTI2OCwgMC4wMDUyNjksIDAuMDA1MjY5IiwgXAotICAgICAgICAgICIwLjAwNTI0NywgMC4wMDUyNTUsIDAuMDA1MjY1LCAwLjAwNTI2NywgMC4wMDUyNjgsIDAuMDA1MjY5LCAwLjAwNTI2OSIsIFwKLSAgICAgICAgICAiMC4wMDUyNDksIDAuMDA1MjU3LCAwLjAwNTI2NywgMC4wMDUyNywgMC4wMDUyNywgMC4wMDUyNzEsIDAuMDA1MjcxIiwgXAotICAgICAgICAgICIwLjAwNTI2MSwgMC4wMDUyNywgMC4wMDUyODEsIDAuMDA1MjgzLCAwLjAwNTI4NCwgMC4wMDUyODUsIDAuMDA1Mjg1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihSTikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjI0ODY2OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYyNDY2MTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2MjQ4NjY7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNTI5LCAwLjAwMDUwNSwgMC4wMDA0OTgsIDAuMDAwNTAyLCAwLjAwMDUxMSwgMC4wMDA1MzIsIDAuMDAwNTU2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyNDI1LCAwLjAwMjQwNywgMC4wMDI0MDEsIDAuMDAyNDA2LCAwLjAwMjQxNywgMC4wMDI0MzgsIDAuMDAyNDU5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRCZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjIxNDc3NywgMC4yMjQ2NjcsIDAuMjM2NDcsIDAuMjQ2NjEsIDAuMjU1NDgxLCAwLjI2ODAxNiwgMC4yNzY2ODYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0tOIjsKLSAgICAgIHRpbWluZ190eXBlIDogcmVjb3ZlcnlfZmFsbGluZzsKLSAgICAgIHdoZW4gOiAiRCZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzFfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChyZWNvdmVyeV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzc1LCAwLjAyNjI1LCAwLjAxMzc1LCAwLjAwMTI1LCAtMC4wMDUsIC0wLjAyMTI1LCAtMC4wMyIsIFwKLSAgICAgICAgICAiMC4wNDg3NSwgMC4wMzc1LCAwLjAyNSwgMC4wMTI1LCAwLCAtMC4wMSwgLTAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMDYxMjUsIDAuMDUsIDAuMDM3NSwgMC4wMjUsIDAuMDEyNSwgMC4wMDI1LCAtMC4wMTI1IiwgXAotICAgICAgICAgICIwLjA3Mzc1LCAwLjA2MjUsIDAuMDUsIDAuMDM3NSwgMC4wMjUsIDAuMDA4NzUsIDAiLCBcCi0gICAgICAgICAgIjAuMDgsIDAuMDY4NzUsIDAuMDU2MjUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMjEyNSwgMC4wMTI1IiwgXAotICAgICAgICAgICIwLjA5NjI1LCAwLjA4NSwgMC4wNzI1LCAwLjA2LCAwLjA0NzUsIDAuMDMxMjUsIDAuMDIyNSIsIFwKLSAgICAgICAgICAiMC4xMDUsIDAuMDkzNzUsIDAuMDgxMjUsIDAuMDY4NzUsIDAuMDU2MjUsIDAuMDQ2MjUsIDAuMDMxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiU04iOwotICAgICAgdGltaW5nX3R5cGUgOiByZWNvdmVyeV9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEIjsKLSAgICAgIHNkZl9jb25kIDogIkQgPT0gMSdiMCI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQocmVjb3ZlcnlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDgxMjUsIDAuMDg2MjUsIDAuMDk4NzUsIDAuMTExMjUsIDAuMTE3NSwgMC4xMzM3NSwgMC4xNDI1IiwgXAotICAgICAgICAgICIwLjA3LCAwLjA4MTI1LCAwLjA5Mzc1LCAwLjEsIDAuMTEyNSwgMC4xMjI1LCAwLjEzNzUiLCBcCi0gICAgICAgICAgIjAuMDYzNzUsIDAuMDY4NzUsIDAuMDgxMjUsIDAuMDkzNzUsIDAuMSwgMC4xMTYyNSwgMC4xMjUiLCBcCi0gICAgICAgICAgIjAuMDU3NSwgMC4wNjg3NSwgMC4wNzUsIDAuMDg3NSwgMC4wOTM3NSwgMC4xMSwgMC4xMTg3NSIsIFwKLSAgICAgICAgICAiMC4wNTEyNSwgMC4wNjI1LCAwLjA2ODc1LCAwLjA4MTI1LCAwLjA4NzUsIDAuMTAzNzUsIDAuMTE4NzUiLCBcCi0gICAgICAgICAgIjAuMDQ3NSwgMC4wNTg3NSwgMC4wNjUsIDAuMDc3NSwgMC4wODM3NSwgMC4xLCAwLjEwODc1IiwgXAotICAgICAgICAgICIwLjA0NSwgMC4wNSwgMC4wNjI1LCAwLjA2ODc1LCAwLjA4MTI1LCAwLjA5MTI1LCAwLjEwNjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJlbW92YWxfZmFsbGluZzsKLSAgICAgIHdoZW4gOiAiRCZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzFfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChyZW1vdmFsX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjI1LCAwLjAxMTI1LCAwLjAyMzc1LCAwLjAzNjI1LCAwLjA0ODc1LCAwLjA1ODc1LCAwLjA2NzUiLCBcCi0gICAgICAgICAgIi0wLjAwNSwgMC4wMDYyNSwgMC4wMTI1LCAwLjAyNSwgMC4wMzc1LCAwLjA0NzUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIi0wLjAxNzUsIC0wLjAwNjI1LCAwLCAwLjAxMjUsIDAuMDI1LCAwLjAzNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAxODc1LCAtMC4wMDYyNSwgMC4wMDYyNSwgMC4wMTI1LCAwLjAyMjUsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDMxMjUsIC0wLjAxODc1LCAtMC4wMDYyNSwgMCwgMC4wMTYyNSwgMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjA1MjUsIC0wLjA0MTI1LCAtMC4wMjg3NSwgLTAuMDE2MjUsIC0wLjAxLCAwLCAwLjAxNSIsIFwKLSAgICAgICAgICAiLTAuMDYxMjUsIC0wLjA1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIC0wLjAwODc1LCAwIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTTikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNjExNTQ7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNjExNTQ7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNjExNTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA0NTMsIDAuMDAwNDUyLCAwLjAwMDQ1MiwgMC4wMDA0NTIsIDAuMDAwNDUyLCAwLjAwMDQ1MiwgMC4wMDA0NTIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA0NTMsIDAuMDAwNDU0LCAwLjAwMDQ1NCwgMC4wMDA0NTQsIDAuMDAwNDU0LCAwLjAwMDQ1NCwgMC4wMDA0NTQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiU04iOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFEJiFSTiI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fUk5fRVFfMCA9PSAxJ2IxIjsKLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjE2MDkyNSwgMC4xNzAyODMsIDAuMTgwNzIyLCAwLjE5MjYwMywgMC4yMDQwNjgsIDAuMjIwOTIzLCAwLjIzNDM4MiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDS04iOwotICAgICAgdGltaW5nX3R5cGUgOiByZWNvdmVyeV9mYWxsaW5nOwotICAgICAgd2hlbiA6ICIhRCZSTiI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fUk5fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChyZWNvdmVyeV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzc1LCAwLjAyNjI1LCAwLjAxMzc1LCAwLjAwMTI1LCAtMC4wMDUsIC0wLjAyMTI1LCAtMC4wMyIsIFwKLSAgICAgICAgICAiMC4wNDg3NSwgMC4wMzc1LCAwLjAyNSwgMC4wMTI1LCAwLjAwNjI1LCAtMC4wMSwgLTAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMDYxMjUsIDAuMDUsIDAuMDM3NSwgMC4wMjUsIDAuMDEyNSwgMC4wMDI1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiMC4wNjc1LCAwLjA1NjI1LCAwLjA0Mzc1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMTUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMDgsIDAuMDY4NzUsIDAuMDU2MjUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMjEyNSwgMC4wMTI1IiwgXAotICAgICAgICAgICIwLjA5NjI1LCAwLjA4NSwgMC4wNzI1LCAwLjA2LCAwLjA1Mzc1LCAwLjAzNzUsIDAuMDI4NzUiLCBcCi0gICAgICAgICAgIjAuMTExMjUsIDAuMSwgMC4wODc1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNTI1LCAwLjA0Mzc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJlbW92YWxfZmFsbGluZzsKLSAgICAgIHdoZW4gOiAiIUQmUk4iOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1JOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQocmVtb3ZhbF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTI1LCAwLjAxNzUsIDAuMDMsIDAuMDQyNSwgMC4wNDg3NSwgMC4wNjUsIDAuMDczNzUiLCBcCi0gICAgICAgICAgIjAuMDAxMjUsIDAuMDEyNSwgMC4wMjUsIDAuMDMxMjUsIDAuMDQzNzUsIDAuMDUzNzUsIDAuMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDExMjUsIDAsIDAuMDEyNSwgMC4wMjUsIDAuMDMxMjUsIDAuMDQxMjUsIDAuMDUiLCBcCi0gICAgICAgICAgIi0wLjAxNzUsIC0wLjAxMjUsIDAsIDAuMDEyNSwgMC4wMTg3NSwgMC4wMzUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAuMDA2MjUsIDAuMDEyNSwgMC4wMjI1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wNCwgLTAuMDI4NzUsIC0wLjAxNjI1LCAtMC4wMSwgMC4wMDI1LCAwLjAxMjUsIDAuMDIxMjUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMDYyNSwgMC4wMDM3NSwgMC4wMTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IERGRk5TUlhMICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChERkZOU1JYTCkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjM4NTU2NzsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBmZiAoTjM1LFFCSU5UKSB7Ci0gICAgbmV4dF9zdGF0ZSA6ICJEIjsKLSAgICBjbG9ja2VkX29uIDogIighQ0tOKSI7Ci0gICAgY2xlYXIgOiAiKCFSTikiOwotICAgIHByZXNldCA6ICIoIVNOKSI7Ci0gICAgY2xlYXJfcHJlc2V0X3ZhcjEgOiBIOwotICAgIGNsZWFyX3ByZXNldF92YXIyIDogTDsKLSAgfQotICBwaW4oQ0tOKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA1NjEzOTE7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNTYxMjA2OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDU2MTM5MTsKLSAgICBjbG9jayA6IHRydWU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA2NTMyLCAwLjAwNjUsIDAuMDA2NDc5LCAwLjAwNjQ4MywgMC4wMDY0OSwgMC4wMDY1MTUsIDAuMDA2NTM0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzNDI0LCAwLjAwMzM5OSwgMC4wMDMzODksIDAuMDAzMzkxLCAwLjAwMzQsIDAuMDAzNDIyLCAwLjAwMzQ0NCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDS04iOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFEJlJOJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9STl9FUV8xX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4xMTg3MzIsIDAuMTI4OTM1LCAwLjE0MTYzNiwgMC4xNTMzMDUsIDAuMTYzNDQ3LCAwLjE3NzI2MSwgMC4xODc4NjMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjE4NjAxNywgMC4xOTU4MywgMC4yMDc4OCwgMC4yMTg2NjYsIDAuMjI3ODcsIDAuMjQwNjQ1LCAwLjI1MDYyNyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjI1NDgyOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYyMzkyNzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2MjU0ODI7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyNjk2LCAwLjAwMjY3NCwgMC4wMDI2NjIsIDAuMDAyNjUzLCAwLjAwMjY1MiwgMC4wMDI2NTksIDAuMDAyNjYxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzMDQ1LCAwLjAwMzAzMSwgMC4wMDMwMjIsIDAuMDAzMDE3LCAwLjAwMzAxMiwgMC4wMDMwMTQsIDAuMDAzMDE2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfZmFsbGluZzsKLSAgICAgIHdoZW4gOiAiUk4mU04iOwotICAgICAgc2RmX2NvbmQgOiAiUk5fRVFfMV9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE4NzUsIDAuMDMsIDAuMDQyNSwgMC4wNTUsIDAuMDYxMjUsIDAuMDcxMjUsIDAuMDgiLCBcCi0gICAgICAgICAgIjAuMDEzNzUsIDAuMDI1LCAwLjAzMTI1LCAwLjA0Mzc1LCAwLjA1LCAwLjA2NjI1LCAwLjA3NSIsIFwKLSAgICAgICAgICAiMC4wMDEyNSwgMC4wMTI1LCAwLjAyNSwgMC4wMzc1LCAwLjA0Mzc1LCAwLjA1Mzc1LCAwLjA2MjUiLCBcCi0gICAgICAgICAgIi0wLjAwNSwgMC4wMDYyNSwgMC4wMTg3NSwgMC4wMjUsIDAuMDM3NSwgMC4wNDc1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICItMC4wMTEyNSwgMCwgMC4wMTI1LCAwLjAxODc1LCAwLjAzMTI1LCAwLjA0MTI1LCAwLjA1IiwgXAotICAgICAgICAgICItMC4wMjEyNSwgLTAuMDEsIDAuMDAyNSwgMC4wMDg3NSwgMC4wMjEyNSwgMC4wMzEyNSwgMC4wNCIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxODc1LCAtMC4wMDYyNSwgMC4wMDYyNSwgMC4wMTI1LCAwLjAyMjUsIDAuMDMxMjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMTg3NSwgLTAuMDEzNzUsIC0wLjAwNzUsIC0wLjAwMTI1LCAtMC4wMDEyNSwgMC4wMDg3NSwgMC4wMTEyNSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMTI1LCAtMC4wMDYyNSwgLTAuMDAyNSwgMCIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDg3NSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMjUsIC0wLjAxNSwgLTAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAzMTI1LCAtMC4wMjc1LCAtMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDY1LCAtMC4wNTM3NSwgLTAuMDQ3NSwgLTAuMDQxMjUsIC0wLjA0MTI1LCAtMC4wMzEyNSwgLTAuMDI4NzUiLCBcCi0gICAgICAgICAgIi0wLjA3Mzc1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wNCwgLTAuMDM3NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDS04iOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9mYWxsaW5nOwotICAgICAgd2hlbiA6ICJSTiZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJSTl9FUV8xX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDUsIDAuMDM4NzUsIDAuMDI2MjUsIDAuMDEzNzUsIDAuMDAxMjUsIC0wLjAwODc1LCAtMC4wMjM3NSIsIFwKLSAgICAgICAgICAiMC4wNTUsIDAuMDQzNzUsIDAuMDMxMjUsIDAuMDI1LCAwLjAxMjUsIC0wLjAwMzc1LCAtMC4wMTI1IiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDU2MjUsIDAuMDQzNzUsIDAuMDMxMjUsIDAuMDI1LCAwLjAwODc1LCAwIiwgXAotICAgICAgICAgICIwLjA4LCAwLjA2ODc1LCAwLjA1NjI1LCAwLjA0Mzc1LCAwLjAzMTI1LCAwLjAyMTI1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICIwLjA4NjI1LCAwLjA3NSwgMC4wNjI1LCAwLjA1LCAwLjA0Mzc1LCAwLjAyNzUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMTAyNSwgMC4wOTEyNSwgMC4wNzg3NSwgMC4wNjYyNSwgMC4wNTM3NSwgMC4wNDM3NSwgMC4wMjg3NSIsIFwKLSAgICAgICAgICAiMC4xMTEyNSwgMC4xLCAwLjA4NzUsIDAuMDc1LCAwLjA2MjUsIDAuMDUyNSwgMC4wNDM3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2ODc1LCAwLjA1NzUsIDAuMDQ1LCAwLjAzODc1LCAwLjAyNjI1LCAwLjAyMjUsIDAuMDEzNzUiLCBcCi0gICAgICAgICAgIjAuMDgsIDAuMDY4NzUsIDAuMDU2MjUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMjc1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiMC4wODYyNSwgMC4wNzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNDM3NSwgMC4wNCwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4wOTg3NSwgMC4wODc1LCAwLjA3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA0NjI1LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIjAuMTA1LCAwLjA5Mzc1LCAwLjA4MTI1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDUyNSwgMC4wNSIsIFwKLSAgICAgICAgICAiMC4xMTUsIDAuMTAzNzUsIDAuMDkxMjUsIDAuMDg1LCAwLjA3MjUsIDAuMDYyNSwgMC4wNiIsIFwKLSAgICAgICAgICAiMC4xMjM3NSwgMC4xMTI1LCAwLjEsIDAuMDkzNzUsIDAuMDgxMjUsIDAuMDcxMjUsIDAuMDY4NzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFEpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4xNTAwNjY7Ci0gICAgZnVuY3Rpb24gOiAiTjM1IjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDS04iOwotICAgICAgdGltaW5nX3NlbnNlIDogbm9uX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiBmYWxsaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE5NjQxLCAwLjIxMDQ4MSwgMC4zMzc2MDIsIDAuNTQ5Mzc5LCAwLjc2MTI3NSwgMS4yNTU4OSwgMS41MzgiLCBcCi0gICAgICAgICAgIjAuMjA2Mjc1LCAwLjIyMDMzMiwgMC4zNDc0NjYsIDAuNTU5MjQyLCAwLjc3MDkxOSwgMS4yNjU1LCAxLjU0Nzg2IiwgXAotICAgICAgICAgICIwLjIxODQzMSwgMC4yMzI1MzYsIDAuMzU5NjE2LCAwLjU3MTM5MiwgMC43ODMwNDQsIDEuMjc3MiwgMS41NjAwMSIsIFwKLSAgICAgICAgICAiMC4yMjkwOTcsIDAuMjQzMjk5LCAwLjM3MDMwOSwgMC41ODIwODksIDAuNzkzOTgzLCAxLjI4ODYzLCAxLjU3MDcyIiwgXAotICAgICAgICAgICIwLjIzODQzOCwgMC4yNTI1MzQsIDAuMzc5NjIzLCAwLjU5MTQsIDAuODAzMTAyLCAxLjI5NzIyLCAxLjU4MDAxIiwgXAotICAgICAgICAgICIwLjI1MTM4LCAwLjI2NTYyMSwgMC4zOTI2MzQsIDAuNjA0NDIsIDAuODE2MzEzLCAxLjMxMDU5LCAxLjU5MzA2IiwgXAotICAgICAgICAgICIwLjI2MTA4NCwgMC4yNzUxOTQsIDAuNDAyNDE4LCAwLjYxNDA0OSwgMC44MjU5NDMsIDEuMzIwNTIsIDEuNjAyNjgiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTU0NzA0LCAwLjE4MzE5MiwgMC40NDI1MzEsIDAuODc5NjA5LCAxLjMxMTY4LCAyLjMzMDQxLCAyLjkwMzYzIiwgXAotICAgICAgICAgICIwLjE1NDcwNSwgMC4xODMyMDYsIDAuNDQyNTQzLCAwLjg3OTU5NiwgMS4zMTEzNSwgMi4zMjkwNSwgMi45MDMyOCIsIFwKLSAgICAgICAgICAiMC4xNTQ3MDcsIDAuMTgzMzE3LCAwLjQ0MjU0MSwgMC44NzY4ODYsIDEuMzExMjgsIDIuMzI0NzksIDIuOTAzNDIiLCBcCi0gICAgICAgICAgIjAuMTU0NzAyLCAwLjE4MzM2NiwgMC40NDI4NDMsIDAuODc5NTgyLCAxLjMxMTk1LCAyLjMzMDM5LCAyLjkwMzY4IiwgXAotICAgICAgICAgICIwLjE1NDcwOCwgMC4xODMzMSwgMC40NDI0OTUsIDAuODc3MTI4LCAxLjMxMTMzLCAyLjMyNDg3LCAyLjkwMzQzIiwgXAotICAgICAgICAgICIwLjE1NDY2NSwgMC4xODMzNjUsIDAuNDQzMTYyLCAwLjg3OTU4MywgMS4zMTE5NiwgMi4zMjQ0NywgMi45MDg0NyIsIFwKLSAgICAgICAgICAiMC4xNTQ3MSwgMC4xODMxMDgsIDAuNDQzNzEzLCAwLjg3OTU4MiwgMS4zMTEzLCAyLjMzMDM1LCAyLjkwMzU4Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE3NjEzNSwgMC4xODk4NDEsIDAuMzE0NTM3LCAwLjUyMTg0NSwgMC43Mjk5LCAxLjIxNDE5LCAxLjQ5MDk5IiwgXAotICAgICAgICAgICIwLjE4NTkwMywgMC4xOTk2NTYsIDAuMzI0MzM0LCAwLjUzMTYxNywgMC43MzkxMzYsIDEuMjIzMDcsIDEuNTAwNzciLCBcCi0gICAgICAgICAgIjAuMTk3OTYyLCAwLjIxMTcsIDAuMzM2Mzg1LCAwLjU0NDI2OCwgMC43NTExMzEsIDEuMjM2MTIsIDEuNTEyODQiLCBcCi0gICAgICAgICAgIjAuMjA4NzU1LCAwLjIyMjUwMywgMC4zNDcxODUsIDAuNTU0NDY1LCAwLjc2MTk3NCwgMS4yNDU5NCwgMS41MjM2NCIsIFwKLSAgICAgICAgICAiMC4yMTc4NzIsIDAuMjMxNzM0LCAwLjM1NjM3OSwgMC41NjQyNzgsIDAuNzcxNDk5LCAxLjI1NjEsIDEuNTMyOTEiLCBcCi0gICAgICAgICAgIjAuMjMwNjUxLCAwLjI0NDM5NiwgMC4zNjkxMjcsIDAuNTc2NDk2LCAwLjc4NDQ2NSwgMS4yNjg1NCwgMS41NDU2OCIsIFwKLSAgICAgICAgICAiMC4yNDA3MDIsIDAuMjU0NTg3LCAwLjM3OTIxNiwgMC41ODY4MDgsIDAuNzk0NTM5LCAxLjI3ODk5LCAxLjU1NTMzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE0ODAyNSwgMC4xNzU4OCwgMC40MjQzMTYsIDAuODQwMzIxLCAxLjI1ODk0LCAyLjIzMjMyLCAyLjc4ODU1IiwgXAotICAgICAgICAgICIwLjE0ODU0NSwgMC4xNzU5MiwgMC40MjQzMzEsIDAuODQwODA0LCAxLjI1NTk3LCAyLjIyNzE4LCAyLjc4ODUiLCBcCi0gICAgICAgICAgIjAuMTQ4NzE0LCAwLjE3NTYwMSwgMC40MjQzNDUsIDAuODQwNjMyLCAxLjI1NzAyLCAyLjIzMjUzLCAyLjc4ODU3IiwgXAotICAgICAgICAgICIwLjE0ODA4NiwgMC4xNzU5MTMsIDAuNDI0MzMyLCAwLjg0MDgwNCwgMS4yNTYzMiwgMi4yMjc1MSwgMi43ODg1NyIsIFwKLSAgICAgICAgICAiMC4xNDg2NjUsIDAuMTc1OTg5LCAwLjQyNDM0MywgMC44MzkyNzcsIDEuMjU4MzgsIDIuMjMyNDgsIDIuNzg4ODQiLCBcCi0gICAgICAgICAgIjAuMTQ4NzEyLCAwLjE3NTY0NiwgMC40MjQzMjgsIDAuODQwODA5LCAxLjI1ODk0LCAyLjIzMTYzLCAyLjc4ODkiLCBcCi0gICAgICAgICAgIjAuMTQ4NDM5LCAwLjE3NTk4NywgMC40MjQzMDQsIDAuODQxMjQxLCAxLjI1ODksIDIuMjI3MiwgMi43ODc3NiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogY2xlYXI7Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIyNTExOCwgMC4yMzkwNTksIDAuMzYzNDQ3LCAwLjU3MDcyOCwgMC43Nzg2NywgMS4yNjMwOCwgMS41Mzk0OSIsIFwKLSAgICAgICAgICAiMC4yMzUwNTYsIDAuMjQ4OTc3LCAwLjM3MzI4NCwgMC41ODExNTcsIDAuNzg4NjY0LCAxLjI3MzAyLCAxLjU0ODc4IiwgXAotICAgICAgICAgICIwLjI0Njk1MiwgMC4yNjA5MTEsIDAuMzg1MDc2LCAwLjU5MzAzNCwgMC44MDA1NjYsIDEuMjg0ODksIDEuNTYxMSIsIFwKLSAgICAgICAgICAiMC4yNTczMzcsIDAuMjcxMjg5LCAwLjM5NTY4LCAwLjYwMjk5NywgMC44MTA5MTUsIDEuMjk1MywgMS41NzA4OCIsIFwKLSAgICAgICAgICAiMC4yNjU4ODgsIDAuMjc5ODQ5LCAwLjQwNDA2MywgMC42MTE5NzQsIDAuODE5Nzc1LCAxLjMwNDEyLCAxLjU4MDQ1IiwgXAotICAgICAgICAgICIwLjI3ODQwOSwgMC4yOTIxMSwgMC40MTY1NDUsIDAuNjI0MTY5LCAwLjgzMTg3NywgMS4zMTYwMywgMS41OTE3MiIsIFwKLSAgICAgICAgICAiMC4yODc4NjgsIDAuMzAxNjkxLCAwLjQyNjE1LCAwLjYzMzQxOSwgMC44NDA5ODEsIDEuMzI0ODcsIDEuNjAyNjgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTQ4NTAyLCAwLjE3NjExNiwgMC40MjQzMTEsIDAuODQxODI0LCAxLjI1OTIxLCAyLjIyODIyLCAyLjc4ODUzIiwgXAotICAgICAgICAgICIwLjE0ODY1NSwgMC4xNzU5NDYsIDAuNDI0ODI0LCAwLjg0MTgwMSwgMS4yNTkyLCAyLjIyODQzLCAyLjc4ODQ5IiwgXAotICAgICAgICAgICIwLjE0ODUyMiwgMC4xNzU4MDYsIDAuNDI0MzA0LCAwLjg0MTgyOCwgMS4yNTg5LCAyLjIyODAxLCAyLjc4NzczIiwgXAotICAgICAgICAgICIwLjE0ODUxMSwgMC4xNzYxMTQsIDAuNDI0NzgyLCAwLjg0MTc5NywgMS4yNTkyNSwgMi4yMjc2LCAyLjc4NDg3IiwgXAotICAgICAgICAgICIwLjE0ODY2MywgMC4xNzU2NDIsIDAuNDI0Njk1LCAwLjg0MTgzLCAxLjI1OTMsIDIuMjI4NjIsIDIuNzg4MTYiLCBcCi0gICAgICAgICAgIjAuMTQ4Njk0LCAwLjE3NTgzNCwgMC40MjQ4ODEsIDAuODQxODA3LCAxLjI1OTIzLCAyLjIzMjUzLCAyLjc4NzI5IiwgXAotICAgICAgICAgICIwLjE0ODU1MSwgMC4xNzU5MiwgMC40MjQ5MDUsIDAuODQxNDc2LCAxLjI1OTE4LCAyLjIzMTg2LCAyLjc4Mzc3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiBwcmVzZXQ7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE3MTIxOSwgMC4xODU0NzEsIDAuMzEyNDY3LCAwLjUyNDMyNywgMC43MzYzMDIsIDEuMjMxMDUsIDEuNTEzMTIiLCBcCi0gICAgICAgICAgIjAuMTgwNTc5LCAwLjE5NDgxNSwgMC4zMjE4MDMsIDAuNTMzNTc4LCAwLjc0NTY0MywgMS4yNDAzOSwgMS41MjI0MiIsIFwKLSAgICAgICAgICAiMC4xOTEyNTksIDAuMjA1Mzc5LCAwLjMzMjQ1MSwgMC41NDQzMzIsIDAuNzU2MzE4LCAxLjI1MDc3LCAxLjUzMjg0IiwgXAotICAgICAgICAgICIwLjIwMzE5OCwgMC4yMTc0NDEsIDAuMzQ0NTgzLCAwLjU1NjI3OCwgMC43NjgyNTcsIDEuMjYyMzMsIDEuNTQ1OSIsIFwKLSAgICAgICAgICAiMC4yMTQ2NDYsIDAuMjI4OTA3LCAwLjM1NTg0OCwgMC41Njc3NCwgMC43Nzk3MjMsIDEuMjczNzksIDEuNTU3MzYiLCBcCi0gICAgICAgICAgIjAuMjMxMzA5LCAwLjI0NTU1MSwgMC4zNzI2MTIsIDAuNTg0MjMyLCAwLjc5NTk3OCwgMS4yOTAxMywgMS41NzMwNyIsIFwKLSAgICAgICAgICAiMC4yNDQ3MzgsIDAuMjU4OTM2LCAwLjM4NTk4NCwgMC41OTc3ODMsIDAuODA5Nzc4LCAxLjMwMzk1LCAxLjU4NjM4Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE1NDMzMSwgMC4xODMxNzEsIDAuNDQzNzYzLCAwLjg3OTkzNiwgMS4zMTU5LCAyLjMzMjgzLCAyLjkxMDk4IiwgXAotICAgICAgICAgICIwLjE1NDM3MywgMC4xODMxNjUsIDAuNDQzNzQ5LCAwLjg3OTg0OSwgMS4zMTU5LCAyLjMzMjg2LCAyLjkxMDA3IiwgXAotICAgICAgICAgICIwLjE1NDQxNSwgMC4xODMxNzYsIDAuNDQzNzU0LCAwLjg3OTgzNiwgMS4zMTU4OSwgMi4zMzI2NCwgMi45MTEwMSIsIFwKLSAgICAgICAgICAiMC4xNTQzMTIsIDAuMTgzMTc0LCAwLjQ0Mzg2NiwgMC44Nzk4NDMsIDEuMzE1ODgsIDIuMzMzMDksIDIuOTE0MTgiLCBcCi0gICAgICAgICAgIjAuMTU0MzMzLCAwLjE4MzE2OCwgMC40NDM4NjgsIDAuODc5OTE0LCAxLjMxNTg5LCAyLjMzMjUxLCAyLjkxNDE5IiwgXAotICAgICAgICAgICIwLjE1NDQ1NSwgMC4xODMwNjgsIDAuNDQzMDk0LCAwLjg3OTg5OCwgMS4zMTU3MywgMi4zMzIzOCwgMi45MTM0NSIsIFwKLSAgICAgICAgICAiMC4xNTQ1MzcsIDAuMTgzMTA5LCAwLjQ0Mzg5NywgMC44Nzk5MzUsIDEuMzE1ODksIDIuMzMxMDEsIDIuOTE0MiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMDgwODcsIDAuMjIyMDA3LCAwLjM0NjQ0MywgMC41NTQzODcsIDAuNzYxMjUsIDEuMjQ2MzMsIDEuNTIzMTciLCBcCi0gICAgICAgICAgIjAuMjE3NjgsIDAuMjMxNjU0LCAwLjM1NTk1MSwgMC41NjM5OTMsIDAuNzcxNTcsIDEuMjU1OTUsIDEuNTMyMTgiLCBcCi0gICAgICAgICAgIjAuMjI4NTQ3LCAwLjI0MjQ2NywgMC4zNjY5MzIsIDAuNTc0NDIsIDAuNzgxOTkxLCAxLjI2Njg4LCAxLjU0MzYzIiwgXAotICAgICAgICAgICIwLjIzOTM3NSwgMC4yNTMyOSwgMC4zNzc3NCwgMC41ODU3MSwgMC43OTI5ODYsIDEuMjc3NjcsIDEuNTU0NDciLCBcCi0gICAgICAgICAgIjAuMjQ5OTYyLCAwLjI2MzczOCwgMC4zODgzNSwgMC41OTU3NzYsIDAuODAzMTQzLCAxLjI4NzgsIDEuNTY1MDYiLCBcCi0gICAgICAgICAgIjAuMjY2NjA0LCAwLjI4MDQ1NiwgMC40MDQ5NDgsIDAuNjEyMzI3LCAwLjgxOTYwNywgMS4zMDUwMywgMS41ODE2NyIsIFwKLSAgICAgICAgICAiMC4yODAyOTQsIDAuMjk0MjA3LCAwLjQxODc2MywgMC42MjY1MDMsIDAuODM0MjQzLCAxLjMxODQ1LCAxLjU5NDE1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE0ODMzLCAwLjE3NTgwOSwgMC40MjQ3OTUsIDAuODQxODE4LCAxLjI1ODk3LCAyLjIzMjg2LCAyLjc4MzQ1IiwgXAotICAgICAgICAgICIwLjE0ODUyLCAwLjE3NTYwNSwgMC40MjQyODYsIDAuODQxMzMyLCAxLjI1ODk0LCAyLjIyODU3LCAyLjc4Nzc5IiwgXAotICAgICAgICAgICIwLjE0ODU0NSwgMC4xNzYwNzUsIDAuNDI0ODksIDAuODQxODE3LCAxLjI1ODk1LCAyLjIyNzU3LCAyLjc4OTU4IiwgXAotICAgICAgICAgICIwLjE0ODU0NCwgMC4xNzU2NjQsIDAuNDI0NjI1LCAwLjg0MDE3LCAxLjI1ODk3LCAyLjIyODU3LCAyLjc4ODExIiwgXAotICAgICAgICAgICIwLjE0ODU0MywgMC4xNzU2MDYsIDAuNDI0ODkxLCAwLjg0MTgxMSwgMS4yNTg5NywgMi4yMzE2MiwgMi43ODc4NiIsIFwKLSAgICAgICAgICAiMC4xNDg1MjIsIDAuMTc2MDc5LCAwLjQyNDg5MywgMC44NDAzMjIsIDEuMjU5MDIsIDIuMjI3OTEsIDIuNzg4OTQiLCBcCi0gICAgICAgICAgIjAuMTQ4NzI0LCAwLjE3NTcwMywgMC40MjQ4NjgsIDAuODQxNTQ3LCAxLjI1OTI3LCAyLjIzMjU0LCAyLjc4MzI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0tOIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQzNjgsIDAuMDA0MzY5LCAwLjAwNDM3MywgMC4wMDQzNzUsIDAuMDA0Mzc1LCAwLjAwNDM3NiwgMC4wMDQzNzYiLCBcCi0gICAgICAgICAgIjAuMDA0MzU1LCAwLjAwNDM1NiwgMC4wMDQzNiwgMC4wMDQzNjIsIDAuMDA0MzYyLCAwLjAwNDM2MywgMC4wMDQzNjMiLCBcCi0gICAgICAgICAgIjAuMDA0MzU3LCAwLjAwNDM1OCwgMC4wMDQzNjIsIDAuMDA0MzY0LCAwLjAwNDM2NCwgMC4wMDQzNjUsIDAuMDA0MzY0IiwgXAotICAgICAgICAgICIwLjAwNDM2MywgMC4wMDQzNjQsIDAuMDA0MzY4LCAwLjAwNDM2OSwgMC4wMDQzNjksIDAuMDA0MzcsIDAuMDA0MzciLCBcCi0gICAgICAgICAgIjAuMDA0MzcxLCAwLjAwNDM3MywgMC4wMDQzNzYsIDAuMDA0Mzc4LCAwLjAwNDM3OCwgMC4wMDQzNzksIDAuMDA0Mzc5IiwgXAotICAgICAgICAgICIwLjAwNDM3OSwgMC4wMDQzODEsIDAuMDA0Mzg1LCAwLjAwNDM4NiwgMC4wMDQzODYsIDAuMDA0Mzg3LCAwLjAwNDM4NyIsIFwKLSAgICAgICAgICAiMC4wMDQzOTEsIDAuMDA0MzkzLCAwLjAwNDM5NiwgMC4wMDQzOTgsIDAuMDA0Mzk5LCAwLjAwNDM5OSwgMC4wMDQzOTkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDM4NzMsIDAuMDAzODc0LCAwLjAwMzg3OCwgMC4wMDM4NzksIDAuMDAzODgsIDAuMDAzODc4LCAwLjAwMzg4IiwgXAotICAgICAgICAgICIwLjAwMzg1OCwgMC4wMDM4NTksIDAuMDAzODYzLCAwLjAwMzg2NSwgMC4wMDM4NjUsIDAuMDAzODY2LCAwLjAwMzg2NiIsIFwKLSAgICAgICAgICAiMC4wMDM4NTQsIDAuMDAzODU1LCAwLjAwMzg1OSwgMC4wMDM4NiwgMC4wMDM4NjEsIDAuMDAzODYyLCAwLjAwMzg2MSIsIFwKLSAgICAgICAgICAiMC4wMDM4NTIsIDAuMDAzODUzLCAwLjAwMzg1NywgMC4wMDM4NTgsIDAuMDAzODU3LCAwLjAwMzg1OSwgMC4wMDM4NTkiLCBcCi0gICAgICAgICAgIjAuMDAzODUyLCAwLjAwMzg1MywgMC4wMDM4NTcsIDAuMDAzODU4LCAwLjAwMzg1OSwgMC4wMDM4NiwgMC4wMDM4NTkiLCBcCi0gICAgICAgICAgIjAuMDAzODU5LCAwLjAwMzg2MSwgMC4wMDM4NjUsIDAuMDAzODY2LCAwLjAwMzg2NiwgMC4wMDM4NjcsIDAuMDAzODY3IiwgXAotICAgICAgICAgICIwLjAwMzg2MiwgMC4wMDM4NjMsIDAuMDAzODY3LCAwLjAwMzg2OSwgMC4wMDM4NjksIDAuMDAzODcsIDAuMDAzODciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1MDQ0LCAwLjAwNTA0NCwgMC4wMDUwNDEsIDAuMDA1MDM3LCAwLjAwNTAzNywgMC4wMDUwMzIsIDAuMDA1MDMzIiwgXAotICAgICAgICAgICIwLjAwNTAzMiwgMC4wMDUwMzIsIDAuMDA1MDMsIDAuMDA1MDI1LCAwLjAwNTAyMiwgMC4wMDUwMjEsIDAuMDA1MDIxIiwgXAotICAgICAgICAgICIwLjAwNTAzLCAwLjAwNTAzLCAwLjAwNTAyNywgMC4wMDUwMjMsIDAuMDA1MDIxLCAwLjAwNTAxOSwgMC4wMDUwMTgiLCBcCi0gICAgICAgICAgIjAuMDA1MDMsIDAuMDA1MDMsIDAuMDA1MDI3LCAwLjAwNTAyMywgMC4wMDUwMjEsIDAuMDA1MDE4LCAwLjAwNTAxOCIsIFwKLSAgICAgICAgICAiMC4wMDUwMzQsIDAuMDA1MDM0LCAwLjAwNTAzMiwgMC4wMDUwMjcsIDAuMDA1MDI0LCAwLjAwNTAyMiwgMC4wMDUwMjEiLCBcCi0gICAgICAgICAgIjAuMDA1MDQxLCAwLjAwNTA0MiwgMC4wMDUwMzksIDAuMDA1MDM1LCAwLjAwNTAzMywgMC4wMDUwMywgMC4wMDUwMyIsIFwKLSAgICAgICAgICAiMC4wMDUwNDcsIDAuMDA1MDQ4LCAwLjAwNTA0NSwgMC4wMDUwNDEsIDAuMDA1MDM5LCAwLjAwNTAzNiwgMC4wMDUwMzUiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfcG93ZXIoc2NhbGFyKSB7Ci0gICAgICAgIHZhbHVlcygiMCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQ3ODgsIDAuMDA0Nzg5LCAwLjAwNDc5MywgMC4wMDQ3OTQsIDAuMDA0Nzk0LCAwLjAwNDc5NCwgMC4wMDQ3OTQiLCBcCi0gICAgICAgICAgIjAuMDA0Nzc0LCAwLjAwNDc3NSwgMC4wMDQ3NzgsIDAuMDA0Nzc5LCAwLjAwNDc4LCAwLjAwNDc4LCAwLjAwNDc4IiwgXAotICAgICAgICAgICIwLjAwNDc2OCwgMC4wMDQ3NjksIDAuMDA0NzczLCAwLjAwNDc3NCwgMC4wMDQ3NzQsIDAuMDA0Nzc0LCAwLjAwNDc3NSIsIFwKLSAgICAgICAgICAiMC4wMDQ3NjUsIDAuMDA0NzY2LCAwLjAwNDc3LCAwLjAwNDc3MSwgMC4wMDQ3NzEsIDAuMDA0NzcxLCAwLjAwNDc3MSIsIFwKLSAgICAgICAgICAiMC4wMDQ3NjQsIDAuMDA0NzY1LCAwLjAwNDc2OSwgMC4wMDQ3NywgMC4wMDQ3NzEsIDAuMDA0NzcsIDAuMDA0NzcxIiwgXAotICAgICAgICAgICIwLjAwNDc2NiwgMC4wMDQ3NjcsIDAuMDA0NzcxLCAwLjAwNDc3MiwgMC4wMDQ3NzMsIDAuMDA0NzcyLCAwLjAwNDc3MyIsIFwKLSAgICAgICAgICAiMC4wMDQ3NzUsIDAuMDA0Nzc2LCAwLjAwNDc4LCAwLjAwNDc4MSwgMC4wMDQ3ODEsIDAuMDA0NzgyLCAwLjAwNDc4MiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzYzMiwgMC4wMDM2MzMsIDAuMDAzNjM3LCAwLjAwMzYzOCwgMC4wMDM2NCwgMC4wMDM2MzksIDAuMDAzNjM5IiwgXAotICAgICAgICAgICIwLjAwMzYxNCwgMC4wMDM2MTUsIDAuMDAzNjE5LCAwLjAwMzYyLCAwLjAwMzYyMSwgMC4wMDM2MjEsIDAuMDAzNjIyIiwgXAotICAgICAgICAgICIwLjAwMzYwNCwgMC4wMDM2MDUsIDAuMDAzNjA5LCAwLjAwMzYxMSwgMC4wMDM2MTIsIDAuMDAzNjEyLCAwLjAwMzYxMyIsIFwKLSAgICAgICAgICAiMC4wMDM1OTksIDAuMDAzNiwgMC4wMDM2MDQsIDAuMDAzNjA1LCAwLjAwMzYwNSwgMC4wMDM2MDYsIDAuMDAzNjA2IiwgXAotICAgICAgICAgICIwLjAwMzU5MywgMC4wMDM1OTQsIDAuMDAzNTk4LCAwLjAwMzYsIDAuMDAzNiwgMC4wMDM2MDEsIDAuMDAzNjAxIiwgXAotICAgICAgICAgICIwLjAwMzU4OCwgMC4wMDM1OSwgMC4wMDM1OTQsIDAuMDAzNTk1LCAwLjAwMzU5NiwgMC4wMDM1OTYsIDAuMDAzNTk2IiwgXAotICAgICAgICAgICIwLjAwMzU4NSwgMC4wMDM1ODYsIDAuMDAzNTksIDAuMDAzNTkyLCAwLjAwMzU5MiwgMC4wMDM1OTIsIDAuMDAzNTkzIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihRTikgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjE1MTczNzsKLSAgICBmdW5jdGlvbiA6ICJRQklOVCI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0tOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5vbl91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogZmFsbGluZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xODYwMTcsIDAuMjAwMTIyLCAwLjMyNzE5MiwgMC41MzkwNTUsIDAuNzUwOTA0LCAxLjI0NTE0LCAxLjUyNzU4IiwgXAotICAgICAgICAgICIwLjE5NTgzLCAwLjIwOTk0MywgMC4zMzcwMTEsIDAuNTQ4ODc1LCAwLjc2MDYzNiwgMS4yNTQ5MiwgMS41MzczOSIsIFwKLSAgICAgICAgICAiMC4yMDc4OCwgMC4yMjE5ODksIDAuMzQ5MDU3LCAwLjU2MDk4OSwgMC43NzI3MTEsIDEuMjY3MDQsIDEuNTQ5NDQiLCBcCi0gICAgICAgICAgIjAuMjE4NjY2LCAwLjIzMjc3OCwgMC4zNTk4NDcsIDAuNTcxNzEsIDAuNzgzNDc1LCAxLjI3NzczLCAxLjU2MDI0IiwgXAotICAgICAgICAgICIwLjIyNzg3LCAwLjI0MTk5LCAwLjM2OTA1OSwgMC41ODA5OTksIDAuNzkyNjU3LCAxLjI4NzAzLCAxLjU2OTQ5IiwgXAotICAgICAgICAgICIwLjI0MDY0NSwgMC4yNTQ3NDQsIDAuMzgxODI4LCAwLjU5MzY2MSwgMC44MDU1MjUsIDEuMjk5NjUsIDEuNTgyMjciLCBcCi0gICAgICAgICAgIjAuMjUwNjI3LCAwLjI2NDc0NiwgMC4zOTE4MTYsIDAuNjAzNjIsIDAuODE1NTA3LCAxLjMwOTgzLCAxLjU5MjAzIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE1MTgyMywgMC4xODA5MSwgMC40NDIzNTEsIDAuODc2MjMyLCAxLjMxMzc1LCAyLjMyOTk4LCAyLjkxMDk3IiwgXAotICAgICAgICAgICIwLjE1MTg2LCAwLjE4MDkxOSwgMC40NDIzNDUsIDAuODc2NDk2LCAxLjMxMTg4LCAyLjMyNTg2LCAyLjkxMDk0IiwgXAotICAgICAgICAgICIwLjE1MjEyMiwgMC4xODA2NTEsIDAuNDQyMzIzLCAwLjg3NjMyMywgMS4zMTEwNCwgMi4zMzAwOCwgMi45MTA5OCIsIFwKLSAgICAgICAgICAiMC4xNTE3ODEsIDAuMTgwOTE4LCAwLjQ0MjM0NiwgMC44NzY1MDMsIDEuMzExOCwgMi4zMjU4MSwgMi45MTA5NiIsIFwKLSAgICAgICAgICAiMC4xNTIwOCwgMC4xODA5MDcsIDAuNDQyMzYzLCAwLjg3NjQyNCwgMS4zMTM0NywgMi4zMzAyNCwgMi45MTEwNSIsIFwKLSAgICAgICAgICAiMC4xNTIxMDQsIDAuMTgwODY4LCAwLjQ0MjM0MiwgMC44NzY5OTksIDEuMzEzNzEsIDIuMzI5NzIsIDIuOTExMTMiLCBcCi0gICAgICAgICAgIjAuMTUxOTM3LCAwLjE4MTEwMSwgMC40NDIzODYsIDAuODc4MDAxLCAxLjMxMzY4LCAyLjMyNDUyLCAyLjkxMDUyIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIwNDQ3NywgMC4yMTgzLCAwLjM0MjczOCwgMC41NTAxMSwgMC43NTc1MjUsIDEuMjQxMiwgMS41MTc5OCIsIFwKLSAgICAgICAgICAiMC4yMTQzNDIsIDAuMjI4MTY0LCAwLjM1MjYwNCwgMC41NTk5NzMsIDAuNzY3MjQyLCAxLjI1MTAxLCAxLjUyNzg1IiwgXAotICAgICAgICAgICIwLjIyNjQ5MywgMC4yNDAzMTQsIDAuMzY0NzU0LCAwLjU3MjEyMywgMC43NzkzNTksIDEuMjYzMTMsIDEuNTQiLCBcCi0gICAgICAgICAgIjAuMjM3MjMyLCAwLjI1MTA2MywgMC4zNzU1MDEsIDAuNTgyODE5LCAwLjc5MDI0NSwgMS4yNzM5MiwgMS41NTA2OSIsIFwKLSAgICAgICAgICAiMC4yNDY0OTgsIDAuMjYwMzE5LCAwLjM4NDc2MiwgMC41OTIxMzcsIDAuNzk5NDE3LCAxLjI4MzIsIDEuNTYwMDEiLCBcCi0gICAgICAgICAgIjAuMjU5NTQzLCAwLjI3MzM3NiwgMC4zOTc4MTQsIDAuNjA1MTQ3LCAwLjgxMjU3NCwgMS4yOTY1MywgMS41NzMyIiwgXAotICAgICAgICAgICIwLjI2OTEzNCwgMC4yODI5NTgsIDAuNDA3NDIsIDAuNjE0NzY3LCAwLjgyMjE5NSwgMS4zMDU4NSwgMS41ODI2NCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNDUzOTMsIDAuMTcyOTYsIDAuNDIxNTM1LCAwLjgzOTYyNCwgMS4yNTI5MSwgMi4yMjc0OCwgMi43NzMwOSIsIFwKLSAgICAgICAgICAiMC4xNDUzOTQsIDAuMTcyOTczLCAwLjQyMTY1OCwgMC44Mzk2MDIsIDEuMjUyNTEsIDIuMjI1MTIsIDIuNzcyOTEiLCBcCi0gICAgICAgICAgIjAuMTQ1Mzk2LCAwLjE3MzA4MywgMC40MjE2NTksIDAuODM2NjkyLCAxLjI1MjIzLCAyLjIyMDY3LCAyLjc3MzA1IiwgXAotICAgICAgICAgICIwLjE0NTM3NCwgMC4xNzMxMzMsIDAuNDIyMzA5LCAwLjgzOTU3NSwgMS4yNTIwMywgMi4yMjc0OCwgMi43NzMxMiIsIFwKLSAgICAgICAgICAiMC4xNDUzOTQsIDAuMTczMDczLCAwLjQyMTcwNSwgMC44MzY5OCwgMS4yNTI0MywgMi4yMjA4OCwgMi43NzMwMiIsIFwKLSAgICAgICAgICAiMC4xNDUzMDgsIDAuMTczMTMyLCAwLjQyMjMwOSwgMC44Mzk1NzUsIDEuMjUyMDQsIDIuMjE5NzUsIDIuNzc4ODUiLCBcCi0gICAgICAgICAgIjAuMTQ1MzkyLCAwLjE3MjkwNCwgMC40MjMxMzksIDAuODM5NTc1LCAxLjI1MjA4LCAyLjIyNzM1LCAyLjc3MzE2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiBwcmVzZXQ7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIzNTIyOCwgMC4yNDkzNjEsIDAuMzc2NDEzLCAwLjU4ODIyMSwgMC44MDAxMTksIDEuMjk0NDUsIDEuNTc2NyIsIFwKLSAgICAgICAgICAiMC4yNDUxNDYsIDAuMjU5MjcyLCAwLjM4NjMzOCwgMC41OTgyNDcsIDAuODEwMDU1LCAxLjMwNDM1LCAxLjU4NjIzIiwgXAotICAgICAgICAgICIwLjI1NzA3OSwgMC4yNzEyMTMsIDAuMzk4Mjc5LCAwLjYxMDE3MywgMC44MjE5OTUsIDEuMzE2MjcsIDEuNTk4NDIiLCBcCi0gICAgICAgICAgIjAuMjY3NDUxLCAwLjI4MTU4NSwgMC40MDg2MzcsIDAuNjIwNDk0LCAwLjgzMjM1MSwgMS4zMjY2NiwgMS42MDg4NyIsIFwKLSAgICAgICAgICAiMC4yNzYwMTUsIDAuMjkwMTUsIDAuNDE3MjE3LCAwLjYyOTEwOSwgMC44NDEyMDcsIDEuMzM1NSwgMS42MTc3IiwgXAotICAgICAgICAgICIwLjI4ODQxOCwgMC4zMDI1MDcsIDAuNDI5NTksIDAuNjQxNDA0LCAwLjg1MzI5OSwgMS4zNDc0OSwgMS42Mjk5IiwgXAotICAgICAgICAgICIwLjI5Nzk5MiwgMC4zMTIxMDcsIDAuNDM5MTg5LCAwLjY1MTAzMiwgMC44NjI3NzYsIDEuMzU3MDEsIDEuNjM5NjkiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTUxOTE4LCAwLjE4MTE5MiwgMC40NDI0NCwgMC44NzgyMTIsIDEuMzEzOTcsIDIuMzI2MDMsIDIuOTExMSIsIFwKLSAgICAgICAgICAiMC4xNTIwODUsIDAuMTgwOTE1LCAwLjQ0MjQwNywgMC44NzgyMDQsIDEuMzEzOTYsIDIuMzI1NjcsIDIuOTA5ODIiLCBcCi0gICAgICAgICAgIjAuMTUxOTUsIDAuMTgwNzM3LCAwLjQ0MjQwMiwgMC44NzgyMDUsIDEuMzEzNzIsIDIuMzI2LCAyLjkxMDkyIiwgXAotICAgICAgICAgICIwLjE1MTkxNiwgMC4xODExOTMsIDAuNDQyNTg4LCAwLjg3ODE4NywgMS4zMTM5OCwgMi4zMjU5MiwgMi45MDY4NCIsIFwKLSAgICAgICAgICAiMC4xNTIwOTksIDAuMTgxMDA4LCAwLjQ0MjM2NSwgMC44NzgxOTgsIDEuMzE0MDMsIDIuMzI2MDUsIDIuOTExIiwgXAotICAgICAgICAgICIwLjE1MjEyNCwgMC4xODA5MTEsIDAuNDQyMzA1LCAwLjg3ODE3OSwgMS4zMTM5NywgMi4zMzAzMSwgMi45MTAwMiIsIFwKLSAgICAgICAgICAiMC4xNTIwNDksIDAuMTgxMDcsIDAuNDQyMzksIDAuODc4MDA5LCAxLjMxMzY5LCAyLjMyODQ4LCAyLjkwNjUzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiBjbGVhcjsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjE4MTQ5LCAwLjIzMjI3MiwgMC4zNTkzMzUsIDAuNTcxMjMzLCAwLjc4Mjk4OSwgMS4yNzczMywgMS41NTk4MSIsIFwKLSAgICAgICAgICAiMC4yMjc3NzcsIDAuMjQxOTExLCAwLjM2ODk3NiwgMC41ODA4NzEsIDAuNzkyNjkzLCAxLjI4Njk3LCAxLjU2OTEzIiwgXAotICAgICAgICAgICIwLjIzODU5NywgMC4yNTI3MTgsIDAuMzc5Nzg0LCAwLjU5MTYzOSwgMC44MDMyNzcsIDEuMjk3ODIsIDEuNTgwMjQiLCBcCi0gICAgICAgICAgIjAuMjQ5NDUyLCAwLjI2MzU3MywgMC4zOTA2MzYsIDAuNjAyNTQ5LCAwLjgxNDIxNSwgMS4zMDg2NiwgMS41OTExMSIsIFwKLSAgICAgICAgICAiMC4yNjAwMTEsIDAuMjc0MTE0LCAwLjQwMTE5OCwgMC42MTMwNDgsIDAuODI0NjcyLCAxLjMxODk1LCAxLjYwMTY3IiwgXAotICAgICAgICAgICIwLjI3NjYxMywgMC4yOTA3MjgsIDAuNDE3OCwgMC42Mjk2NDcsIDAuODQxMzAzLCAxLjMzNTkxLCAxLjYxODI4IiwgXAotICAgICAgICAgICIwLjI5MDQyNywgMC4zMDQ1NDMsIDAuNDMxNjI1LCAwLjY0MzQ0OCwgMC44NTUzMzgsIDEuMzQ5NTMsIDEuNjMxOTMiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTUxOTM0LCAwLjE4MTA2MywgMC40NDIzNTQsIDAuODc4MTMsIDEuMzEzNjYsIDIuMzMwNTgsIDIuOTA0OCIsIFwKLSAgICAgICAgICAiMC4xNTE5NDksIDAuMTgxMDI5LCAwLjQ0MjM5MywgMC44Nzc4NzYsIDEuMzEzNjEsIDIuMzI1NjQsIDIuOTEwOTMiLCBcCi0gICAgICAgICAgIjAuMTUyMDYxLCAwLjE4MTE2MywgMC40NDI0MDksIDAuODc4MTEyLCAxLjMxMzYxLCAyLjMyNTYxLCAyLjkxMTciLCBcCi0gICAgICAgICAgIjAuMTUyMDYxLCAwLjE4MTAxMiwgMC40NDI0MDYsIDAuODc2NDg0LCAxLjMxMzgzLCAyLjMyNjE4LCAyLjkxMDI3IiwgXAotICAgICAgICAgICIwLjE1MjA2MSwgMC4xODA4NjIsIDAuNDQyNDEyLCAwLjg3ODEwNiwgMS4zMTM2MiwgMi4zMzAyOCwgMi45MTAxOCIsIFwKLSAgICAgICAgICAiMC4xNTIwNTYsIDAuMTgxMTU0LCAwLjQ0MjQwNiwgMC44NzY0ODcsIDEuMzEzNjQsIDIuMzI2MDQsIDIuOTEwNzMiLCBcCi0gICAgICAgICAgIjAuMTUyMTIzLCAwLjE4MDkxLCAwLjQ0MjM5NCwgMC44NzgwOTksIDEuMzE0LCAyLjMzMDI5LCAyLjkwNTg5Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE3OTczNiwgMC4xOTM1NzIsIDAuMzE4MDA0LCAwLjUyNTQ0NywgMC43MzI4MzUsIDEuMjE2NjQsIDEuNDkzMTIiLCBcCi0gICAgICAgICAgIjAuMTg5MDg3LCAwLjIwMjkyNSwgMC4zMjczNTQsIDAuNTM0NzQ2LCAwLjc0MjE4NSwgMS4yMjU5OCwgMS41MDI0NyIsIFwKLSAgICAgICAgICAiMC4xOTk4NzgsIDAuMjEzNzA5LCAwLjMzODE1MywgMC41NDU1OSwgMC43NTI5OSwgMS4yMzY4NSwgMS41MTMzOCIsIFwKLSAgICAgICAgICAiMC4yMTE4MDksIDAuMjI1NjQ4LCAwLjM1MDExNiwgMC41NTc1MjIsIDAuNzY0OTE4LCAxLjI0ODc4LCAxLjUyNTM0IiwgXAotICAgICAgICAgICIwLjIyMzI1NSwgMC4yMzcwOTUsIDAuMzYxNTM5LCAwLjU2ODk2OSwgMC43NzYzNjUsIDEuMjYwMjMsIDEuNTM2NzkiLCBcCi0gICAgICAgICAgIjAuMjM5OTUxLCAwLjI1Mzc4MSwgMC4zNzgyMTcsIDAuNTg1NDkyLCAwLjc5MjgxNSwgMS4yNzY1OCwgMS41NTM0IiwgXAotICAgICAgICAgICIwLjI1MzA4NywgMC4yNjY5MTYsIDAuMzkxMzUxLCAwLjU5ODc2NywgMC44MDYxMjMsIDEuMjkwMDMsIDEuNTY2NTciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTQ1NDE2LCAwLjE3MzIzOCwgMC40MjMxOCwgMC44NDAxNTMsIDEuMjU2ODQsIDIuMjI4OTcsIDIuNzgwNjkiLCBcCi0gICAgICAgICAgIjAuMTQ1NDQ5LCAwLjE3MzIxNywgMC40MjMxNDksIDAuODQwMDksIDEuMjU2ODIsIDIuMjI5MDEsIDIuNzgwNyIsIFwKLSAgICAgICAgICAiMC4xNDU0NDYsIDAuMTczMjM3LCAwLjQyMzE1MywgMC44NDAwNjUsIDEuMjU2ODUsIDIuMjI4NywgMi43ODA2NCIsIFwKLSAgICAgICAgICAiMC4xNDUyODIsIDAuMTczMjE3LCAwLjQyMzI5NiwgMC44NDAwNiwgMS4yNTY4LCAyLjIyODkxLCAyLjc4NDY2IiwgXAotICAgICAgICAgICIwLjE0NTQzMywgMC4xNzMyMTIsIDAuNDIzMjk2LCAwLjg0MDExNCwgMS4yNTY4MiwgMi4yMjgzLCAyLjc4NDY0IiwgXAotICAgICAgICAgICIwLjE0NTQ0OSwgMC4xNzMxOTUsIDAuNDIyNTQ2LCAwLjg0MDEwMywgMS4yNTY3MSwgMi4yMjg1MiwgMi43ODQxIiwgXAotICAgICAgICAgICIwLjE0NTQ1LCAwLjE3MzIxMSwgMC40MjMyODcsIDAuODQwMTM3LCAxLjI1Njc2LCAyLjIyNzIsIDIuNzg0NDciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDS04iOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzg3MywgMC4wMDM4NzQsIDAuMDAzODc4LCAwLjAwMzg3OSwgMC4wMDM4OCwgMC4wMDM4NzgsIDAuMDAzODgiLCBcCi0gICAgICAgICAgIjAuMDAzODU4LCAwLjAwMzg1OSwgMC4wMDM4NjMsIDAuMDAzODY1LCAwLjAwMzg2NSwgMC4wMDM4NjYsIDAuMDAzODY2IiwgXAotICAgICAgICAgICIwLjAwMzg1NCwgMC4wMDM4NTUsIDAuMDAzODU5LCAwLjAwMzg2LCAwLjAwMzg2MSwgMC4wMDM4NjIsIDAuMDAzODYxIiwgXAotICAgICAgICAgICIwLjAwMzg1MiwgMC4wMDM4NTMsIDAuMDAzODU3LCAwLjAwMzg1OCwgMC4wMDM4NTcsIDAuMDAzODU5LCAwLjAwMzg1OSIsIFwKLSAgICAgICAgICAiMC4wMDM4NTIsIDAuMDAzODUzLCAwLjAwMzg1NywgMC4wMDM4NTgsIDAuMDAzODU5LCAwLjAwMzg2LCAwLjAwMzg1OSIsIFwKLSAgICAgICAgICAiMC4wMDM4NTksIDAuMDAzODYxLCAwLjAwMzg2NSwgMC4wMDM4NjYsIDAuMDAzODY2LCAwLjAwMzg2NywgMC4wMDM4NjciLCBcCi0gICAgICAgICAgIjAuMDAzODYyLCAwLjAwMzg2MywgMC4wMDM4NjcsIDAuMDAzODY5LCAwLjAwMzg2OSwgMC4wMDM4NywgMC4wMDM4NyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDM2OCwgMC4wMDQzNjksIDAuMDA0MzczLCAwLjAwNDM3NSwgMC4wMDQzNzUsIDAuMDA0Mzc2LCAwLjAwNDM3NiIsIFwKLSAgICAgICAgICAiMC4wMDQzNTUsIDAuMDA0MzU2LCAwLjAwNDM2LCAwLjAwNDM2MiwgMC4wMDQzNjIsIDAuMDA0MzYzLCAwLjAwNDM2MyIsIFwKLSAgICAgICAgICAiMC4wMDQzNTcsIDAuMDA0MzU4LCAwLjAwNDM2MiwgMC4wMDQzNjQsIDAuMDA0MzY0LCAwLjAwNDM2NSwgMC4wMDQzNjQiLCBcCi0gICAgICAgICAgIjAuMDA0MzYzLCAwLjAwNDM2NCwgMC4wMDQzNjgsIDAuMDA0MzY5LCAwLjAwNDM2OSwgMC4wMDQzNywgMC4wMDQzNyIsIFwKLSAgICAgICAgICAiMC4wMDQzNzEsIDAuMDA0MzczLCAwLjAwNDM3NiwgMC4wMDQzNzgsIDAuMDA0Mzc4LCAwLjAwNDM3OSwgMC4wMDQzNzkiLCBcCi0gICAgICAgICAgIjAuMDA0Mzc5LCAwLjAwNDM4MSwgMC4wMDQzODUsIDAuMDA0Mzg2LCAwLjAwNDM4NiwgMC4wMDQzODcsIDAuMDA0Mzg3IiwgXAotICAgICAgICAgICIwLjAwNDM5MSwgMC4wMDQzOTMsIDAuMDA0Mzk2LCAwLjAwNDM5OCwgMC4wMDQzOTksIDAuMDA0Mzk5LCAwLjAwNDM5OSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDUwNDQsIDAuMDA1MDQ0LCAwLjAwNTA0MSwgMC4wMDUwMzcsIDAuMDA1MDM3LCAwLjAwNTAzMiwgMC4wMDUwMzMiLCBcCi0gICAgICAgICAgIjAuMDA1MDMyLCAwLjAwNTAzMiwgMC4wMDUwMywgMC4wMDUwMjUsIDAuMDA1MDIyLCAwLjAwNTAyMSwgMC4wMDUwMjEiLCBcCi0gICAgICAgICAgIjAuMDA1MDMsIDAuMDA1MDMsIDAuMDA1MDI3LCAwLjAwNTAyMywgMC4wMDUwMjEsIDAuMDA1MDE5LCAwLjAwNTAxOCIsIFwKLSAgICAgICAgICAiMC4wMDUwMywgMC4wMDUwMywgMC4wMDUwMjcsIDAuMDA1MDIzLCAwLjAwNTAyMSwgMC4wMDUwMTgsIDAuMDA1MDE4IiwgXAotICAgICAgICAgICIwLjAwNTAzNCwgMC4wMDUwMzQsIDAuMDA1MDMyLCAwLjAwNTAyNywgMC4wMDUwMjQsIDAuMDA1MDIyLCAwLjAwNTAyMSIsIFwKLSAgICAgICAgICAiMC4wMDUwNDEsIDAuMDA1MDQyLCAwLjAwNTAzOSwgMC4wMDUwMzUsIDAuMDA1MDMzLCAwLjAwNTAzLCAwLjAwNTAzIiwgXAotICAgICAgICAgICIwLjAwNTA0NywgMC4wMDUwNDgsIDAuMDA1MDQ1LCAwLjAwNTA0MSwgMC4wMDUwMzksIDAuMDA1MDM2LCAwLjAwNTAzNSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihzY2FsYXIpIHsKLSAgICAgICAgdmFsdWVzKCIwIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiU04iOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzYzMiwgMC4wMDM2MzMsIDAuMDAzNjM3LCAwLjAwMzYzOCwgMC4wMDM2NCwgMC4wMDM2MzksIDAuMDAzNjM5IiwgXAotICAgICAgICAgICIwLjAwMzYxNCwgMC4wMDM2MTUsIDAuMDAzNjE5LCAwLjAwMzYyLCAwLjAwMzYyMSwgMC4wMDM2MjEsIDAuMDAzNjIyIiwgXAotICAgICAgICAgICIwLjAwMzYwNCwgMC4wMDM2MDUsIDAuMDAzNjA5LCAwLjAwMzYxMSwgMC4wMDM2MTIsIDAuMDAzNjEyLCAwLjAwMzYxMyIsIFwKLSAgICAgICAgICAiMC4wMDM1OTksIDAuMDAzNiwgMC4wMDM2MDQsIDAuMDAzNjA1LCAwLjAwMzYwNSwgMC4wMDM2MDYsIDAuMDAzNjA2IiwgXAotICAgICAgICAgICIwLjAwMzU5MywgMC4wMDM1OTQsIDAuMDAzNTk4LCAwLjAwMzYsIDAuMDAzNiwgMC4wMDM2MDEsIDAuMDAzNjAxIiwgXAotICAgICAgICAgICIwLjAwMzU4OCwgMC4wMDM1OSwgMC4wMDM1OTQsIDAuMDAzNTk1LCAwLjAwMzU5NiwgMC4wMDM1OTYsIDAuMDAzNTk2IiwgXAotICAgICAgICAgICIwLjAwMzU4NSwgMC4wMDM1ODYsIDAuMDAzNTksIDAuMDAzNTkyLCAwLjAwMzU5MiwgMC4wMDM1OTIsIDAuMDAzNTkzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0Nzg4LCAwLjAwNDc4OSwgMC4wMDQ3OTMsIDAuMDA0Nzk0LCAwLjAwNDc5NCwgMC4wMDQ3OTQsIDAuMDA0Nzk0IiwgXAotICAgICAgICAgICIwLjAwNDc3NCwgMC4wMDQ3NzUsIDAuMDA0Nzc4LCAwLjAwNDc3OSwgMC4wMDQ3OCwgMC4wMDQ3OCwgMC4wMDQ3OCIsIFwKLSAgICAgICAgICAiMC4wMDQ3NjgsIDAuMDA0NzY5LCAwLjAwNDc3MywgMC4wMDQ3NzQsIDAuMDA0Nzc0LCAwLjAwNDc3NCwgMC4wMDQ3NzUiLCBcCi0gICAgICAgICAgIjAuMDA0NzY1LCAwLjAwNDc2NiwgMC4wMDQ3NywgMC4wMDQ3NzEsIDAuMDA0NzcxLCAwLjAwNDc3MSwgMC4wMDQ3NzEiLCBcCi0gICAgICAgICAgIjAuMDA0NzY0LCAwLjAwNDc2NSwgMC4wMDQ3NjksIDAuMDA0NzcsIDAuMDA0NzcxLCAwLjAwNDc3LCAwLjAwNDc3MSIsIFwKLSAgICAgICAgICAiMC4wMDQ3NjYsIDAuMDA0NzY3LCAwLjAwNDc3MSwgMC4wMDQ3NzIsIDAuMDA0NzczLCAwLjAwNDc3MiwgMC4wMDQ3NzMiLCBcCi0gICAgICAgICAgIjAuMDA0Nzc1LCAwLjAwNDc3NiwgMC4wMDQ3OCwgMC4wMDQ3ODEsIDAuMDA0NzgxLCAwLjAwNDc4MiwgMC4wMDQ3ODIiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFJOKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2MzQ3MTc7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjM0NTI5OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDYzNDcxNzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA0ODMsIDAuMDAwNDYsIDAuMDAwNDUsIDAuMDAwNDU1LCAwLjAwMDQ2NCwgMC4wMDA0ODYsIDAuMDAwNTA5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyNTUzLCAwLjAwMjUzNSwgMC4wMDI1MjksIDAuMDAyNTMzLCAwLjAwMjU0MiwgMC4wMDI1NjUsIDAuMDAyNTg1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRCZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjIzNTIyOCwgMC4yNDUxNDYsIDAuMjU3MDc5LCAwLjI2NzQ1MSwgMC4yNzYwMTUsIDAuMjg4NDE4LCAwLjI5Nzk5MiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDS04iOwotICAgICAgdGltaW5nX3R5cGUgOiByZWNvdmVyeV9mYWxsaW5nOwotICAgICAgd2hlbiA6ICJEJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMV9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHJlY292ZXJ5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzNzUsIDAuMDI2MjUsIDAuMDEzNzUsIDAuMDAxMjUsIC0wLjAxMTI1LCAtMC4wMjEyNSwgLTAuMDMiLCBcCi0gICAgICAgICAgIjAuMDQ4NzUsIDAuMDM3NSwgMC4wMjUsIDAuMDEyNSwgMCwgLTAuMDEsIC0wLjAyNSIsIFwKLSAgICAgICAgICAiMC4wNjEyNSwgMC4wNSwgMC4wMzc1LCAwLjAyNSwgMC4wMTI1LCAwLjAwMjUsIC0wLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMDY3NSwgMC4wNjI1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDI1LCAwLjAwODc1LCAwIiwgXAotICAgICAgICAgICIwLjA4LCAwLjA2ODc1LCAwLjA1NjI1LCAwLjA0Mzc1LCAwLjAzMTI1LCAwLjAyMTI1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMDksIDAuMDg1LCAwLjA2NjI1LCAwLjA2LCAwLjA0NzUsIDAuMDMxMjUsIDAuMDIyNSIsIFwKLSAgICAgICAgICAiMC4xMDUsIDAuMDkzNzUsIDAuMDgxMjUsIDAuMDY4NzUsIDAuMDU2MjUsIDAuMDQ2MjUsIDAuMDMxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiU04iOwotICAgICAgdGltaW5nX3R5cGUgOiByZWNvdmVyeV9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEIjsKLSAgICAgIHNkZl9jb25kIDogIkQgPT0gMSdiMCI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQocmVjb3ZlcnlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc1LCAwLjA4NjI1LCAwLjA5ODc1LCAwLjEwNSwgMC4xMTc1LCAwLjEyNzUsIDAuMTQyNSIsIFwKLSAgICAgICAgICAiMC4wNywgMC4wNzUsIDAuMDg3NSwgMC4wOTM3NSwgMC4xMDYyNSwgMC4xMjI1LCAwLjEzMTI1IiwgXAotICAgICAgICAgICIwLjA1NzUsIDAuMDY4NzUsIDAuMDgxMjUsIDAuMDg3NSwgMC4xLCAwLjExLCAwLjEyNSIsIFwKLSAgICAgICAgICAiMC4wNTEyNSwgMC4wNjI1LCAwLjA3NSwgMC4wODEyNSwgMC4wOTM3NSwgMC4xMDM3NSwgMC4xMTg3NSIsIFwKLSAgICAgICAgICAiMC4wNDUsIDAuMDU2MjUsIDAuMDY4NzUsIDAuMDc1LCAwLjA4NzUsIDAuMTAzNzUsIDAuMTEyNSIsIFwKLSAgICAgICAgICAiMC4wNDEyNSwgMC4wNTI1LCAwLjA2NSwgMC4wNzEyNSwgMC4wNzc1LCAwLjA5Mzc1LCAwLjEwODc1IiwgXAotICAgICAgICAgICIwLjAzODc1LCAwLjA1LCAwLjA1NjI1LCAwLjA2ODc1LCAwLjA3NSwgMC4wOTEyNSwgMC4xMDYyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDS04iOwotICAgICAgdGltaW5nX3R5cGUgOiByZW1vdmFsX2ZhbGxpbmc7Ci0gICAgICB3aGVuIDogIkQmU04iOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8xX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQocmVtb3ZhbF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDYyNSwgMC4wMTEyNSwgMC4wMjM3NSwgMC4wMzYyNSwgMC4wNDI1LCAwLjA1ODc1LCAwLjA2NzUiLCBcCi0gICAgICAgICAgIi0wLjAwNSwgMC4wMDYyNSwgMC4wMTg3NSwgMC4wMjUsIDAuMDM3NSwgMC4wNDc1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICItMC4wMTc1LCAtMC4wMDYyNSwgMC4wMDYyNSwgMC4wMTI1LCAwLjAyNSwgMC4wMzUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAsIDAuMDEyNSwgMC4wMjI1LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLCAwLjAxNjI1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDUyNSwgLTAuMDQxMjUsIC0wLjAyODc1LCAtMC4wMjI1LCAtMC4wMSwgMCwgMC4wMDg3NSIsIFwKLSAgICAgICAgICAiLTAuMDYxMjUsIC0wLjA1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIC0wLjAwODc1LCAwIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTTikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNjM2MDQ7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNjM2MDQ7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNjM1NDU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNDUzLCAwLjAwMDQ1MiwgMC4wMDA0NTIsIDAuMDAwNDUyLCAwLjAwMDQ1MiwgMC4wMDA0NTIsIDAuMDAwNDUyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNDUzLCAwLjAwMDQ1NCwgMC4wMDA0NTQsIDAuMDAwNDU0LCAwLjAwMDQ1NCwgMC4wMDA0NTQsIDAuMDAwNDU0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRCYhUk4iOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1JOX0VRXzAgPT0gMSdiMSI7Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4xNzk3MzMsIDAuMTg5MDUsIDAuMTk5ODc4LCAwLjIxMTgwOSwgMC4yMjMyNTQsIDAuMjM5OTUxLCAwLjI1MzA4NyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDS04iOwotICAgICAgdGltaW5nX3R5cGUgOiByZWNvdmVyeV9mYWxsaW5nOwotICAgICAgd2hlbiA6ICIhRCZSTiI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fUk5fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChyZWNvdmVyeV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzc1LCAwLjAyNjI1LCAwLjAxMzc1LCAwLjAwMTI1LCAtMC4wMDUsIC0wLjAyMTI1LCAtMC4wMyIsIFwKLSAgICAgICAgICAiMC4wNDI1LCAwLjAzNzUsIDAuMDE4NzUsIDAuMDEyNSwgMCwgLTAuMDEsIC0wLjAxODc1IiwgXAotICAgICAgICAgICIwLjA1NSwgMC4wNDM3NSwgMC4wMzEyNSwgMC4wMTg3NSwgMC4wMTI1LCAwLjAwMjUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDU2MjUsIDAuMDQzNzUsIDAuMDMxMjUsIDAuMDI1LCAwLjAwODc1LCAwIiwgXAotICAgICAgICAgICIwLjA4LCAwLjA2ODc1LCAwLjA1NjI1LCAwLjA0Mzc1LCAwLjAzMTI1LCAwLjAyMTI1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMDk2MjUsIDAuMDg1LCAwLjA3MjUsIDAuMDYsIDAuMDQ3NSwgMC4wMzc1LCAwLjAyODc1IiwgXAotICAgICAgICAgICIwLjEwNSwgMC4wOTM3NSwgMC4wODEyNSwgMC4wNzUsIDAuMDYyNSwgMC4wNTI1LCAwLjA0Mzc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJlbW92YWxfZmFsbGluZzsKLSAgICAgIHdoZW4gOiAiIUQmUk4iOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1JOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQocmVtb3ZhbF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTI1LCAwLjAxNzUsIDAuMDMsIDAuMDQyNSwgMC4wNDg3NSwgMC4wNTg3NSwgMC4wNjc1IiwgXAotICAgICAgICAgICIwLjAwMTI1LCAwLjAxMjUsIDAuMDE4NzUsIDAuMDMxMjUsIDAuMDM3NSwgMC4wNTM3NSwgMC4wNjI1IiwgXAotICAgICAgICAgICItMC4wMTEyNSwgMCwgMC4wMTI1LCAwLjAxODc1LCAwLjAzMTI1LCAwLjA0MTI1LCAwLjA1IiwgXAotICAgICAgICAgICItMC4wMTc1LCAtMC4wMTI1LCAwLCAwLjAxMjUsIDAuMDE4NzUsIDAuMDM1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLjAwNjI1LCAwLjAxMjUsIDAuMDIyNSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDQsIC0wLjAyODc1LCAtMC4wMTYyNSwgLTAuMDEsIDAuMDAyNSwgMC4wMTI1LCAwLjAyMTI1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDM3NSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAuMDAzNzUsIDAuMDEyNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBERkZSSFFYMSAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoREZGUkhRWDEpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4zNzc0MjU7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgZmYgKE4zMCxRQklOVCkgewotICAgIG5leHRfc3RhdGUgOiAiRCI7Ci0gICAgY2xvY2tlZF9vbiA6ICJDSyI7Ci0gICAgY2xlYXIgOiAiKCFSTikiOwotICB9Ci0gIHBpbihDSykgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjA1Mjc3OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYwNDgzNjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2MDUyNzc7Ci0gICAgY2xvY2sgOiB0cnVlOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzI0MSwgMC4wMDMyMTgsIDAuMDAzMjA2LCAwLjAwMzIwNCwgMC4wMDMyMTIsIDAuMDAzMjMyLCAwLjAwMzI1MyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwODU3NSwgMC4wMDg1NTYsIDAuMDA4NTUxLCAwLjAwODU1MywgMC4wMDg1NTUsIDAuMDA4NTgsIDAuMDA4NTk0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRCZSTiI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fUk5fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjE1Njg1NSwgMC4xNjY5ODUsIDAuMTc5ODgzLCAwLjE5MjUxMywgMC4yMDQxOSwgMC4yMjAyNSwgMC4yMzMzODQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjExMjc3OCwgMC4xMjI2NCwgMC4xMzUxMDksIDAuMTQ3MjAyLCAwLjE1ODI0LCAwLjE3MzI3NiwgMC4xODQ3NDgiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEQpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDgyODUyMzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA4MjY0MjI7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwODI4NTIzOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjkyOCwgMC4wMDI4OTYsIDAuMDAyODgxLCAwLjAwMjg3LCAwLjAwMjg3NiwgMC4wMDI4NzEsIDAuMDAyODgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDM3NjgsIDAuMDAzNzQ5LCAwLjAwMzczOSwgMC4wMDM3MzQsIDAuMDAzNzMsIDAuMDAzNzMyLCAwLjAwMzczOCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJSTiI7Ci0gICAgICBzZGZfY29uZCA6ICJSTiA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMTg3NSwgLTAuMDA3NSwgLTAuMDAxMjUsIDAuMDA1LCAwLjAxMTI1LCAwLjAyMTI1LCAwLjAzIiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLCAwLjAwNjI1LCAwLjAxLCAwLjAxODc1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAuMDAzNzUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDM3NSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDAyNSwgMCIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDE1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDY1LCAtMC4wNTM3NSwgLTAuMDQ3NSwgLTAuMDQxMjUsIC0wLjAzNSwgLTAuMDI1LCAtMC4wMTYyNSIsIFwKLSAgICAgICAgICAiLTAuMDczNzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjAzMzc1LCAtMC4wMjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzMTI1LCAwLjA0MjUsIDAuMDU1LCAwLjA2NzUsIDAuMDczNzUsIDAuMDksIDAuMDk4NzUiLCBcCi0gICAgICAgICAgIjAuMDIsIDAuMDMxMjUsIDAuMDQzNzUsIDAuMDU2MjUsIDAuMDY4NzUsIDAuMDc4NzUsIDAuMDkzNzUiLCBcCi0gICAgICAgICAgIjAuMDEzNzUsIDAuMDI1LCAwLjAzNzUsIDAuMDUsIDAuMDU2MjUsIDAuMDcyNSwgMC4wODc1IiwgXAotICAgICAgICAgICIwLjAwNzUsIDAuMDE4NzUsIDAuMDMxMjUsIDAuMDQzNzUsIDAuMDU2MjUsIDAuMDY2MjUsIDAuMDgxMjUiLCBcCi0gICAgICAgICAgIjAuMDAxMjUsIDAuMDEyNSwgMC4wMjUsIDAuMDM3NSwgMC4wNSwgMC4wNiwgMC4wNzUiLCBcCi0gICAgICAgICAgIi0wLjAwMjUsIDAuMDA4NzUsIDAuMDIxMjUsIDAuMDMzNzUsIDAuMDQsIDAuMDU2MjUsIDAuMDY1IiwgXAotICAgICAgICAgICItMC4wMDUsIDAsIDAuMDEyNSwgMC4wMjUsIDAuMDM3NSwgMC4wNDc1LCAwLjA2MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlJOIjsKLSAgICAgIHNkZl9jb25kIDogIlJOID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzNzUsIDAuMDMyNSwgMC4wMiwgMC4wMTM3NSwgMC4wMDc1LCAtMC4wMDI1LCAtMC4wMTEyNSIsIFwKLSAgICAgICAgICAiMC4wNDg3NSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAxODc1LCAwLjAxMjUsIDAuMDA4NzUsIDAiLCBcCi0gICAgICAgICAgIjAuMDYxMjUsIDAuMDUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMjUsIDAuMDE1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDYyNSwgMC4wNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAyNzUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMDgsIDAuMDY4NzUsIDAuMDU2MjUsIDAuMDUsIDAuMDQzNzUsIDAuMDMzNzUsIDAuMDI1IiwgXAotICAgICAgICAgICIwLjA5LCAwLjA4NSwgMC4wNzI1LCAwLjA2NjI1LCAwLjA1Mzc1LCAwLjA0Mzc1LCAwLjA0MTI1IiwgXAotICAgICAgICAgICIwLjEwNSwgMC4wOTM3NSwgMC4wODEyNSwgMC4wNzUsIDAuMDY4NzUsIDAuMDU4NzUsIDAuMDUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDYyNSwgLTAuMDA1LCAtMC4wMTc1LCAtMC4wMywgLTAuMDQyNSwgLTAuMDU4NzUsIC0wLjA3Mzc1IiwgXAotICAgICAgICAgICIwLjAxNzUsIDAuMDA2MjUsIC0wLjAwNjI1LCAtMC4wMTg3NSwgLTAuMDMxMjUsIC0wLjA0NzUsIC0wLjA2MjUiLCBcCi0gICAgICAgICAgIjAuMDIzNzUsIDAuMDEyNSwgMCwgLTAuMDEyNSwgLTAuMDI1LCAtMC4wNDEyNSwgLTAuMDUiLCBcCi0gICAgICAgICAgIjAuMDM2MjUsIDAuMDI1LCAwLjAxMjUsIDAsIC0wLjAxMjUsIC0wLjAyODc1LCAtMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4wNDI1LCAwLjAzMTI1LCAwLjAxODc1LCAwLjAwNjI1LCAtMC4wMDYyNSwgLTAuMDIyNSwgLTAuMDM3NSIsIFwKLSAgICAgICAgICAiMC4wNTI1LCAwLjA0MTI1LCAwLjAyODc1LCAwLjAxNjI1LCAwLjAwMzc1LCAtMC4wMTI1LCAtMC4wMjc1IiwgXAotICAgICAgICAgICIwLjA2MTI1LCAwLjA1LCAwLjAzNzUsIDAuMDI1LCAwLjAxMjUsIC0wLjAwMzc1LCAtMC4wMTg3NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjI2Mzc4OwotICAgIGZ1bmN0aW9uIDogIk4zMCI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3NlbnNlIDogbm9uX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiByaXNpbmdfZWRnZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTU3NzcyLCAwLjE4MjQyMiwgMC4zMjExOTEsIDAuNDQzNzcxLCAwLjYwNzMwNywgMC45MzQzNDMsIDEuMTM4NiIsIFwKLSAgICAgICAgICAiMC4xNjc4NDEsIDAuMTkyNDkyLCAwLjMzMTI4NiwgMC40NTM4NTksIDAuNjE3NDEyLCAwLjk0NDM2NiwgMS4xNDg4NyIsIFwKLSAgICAgICAgICAiMC4xODA3MjgsIDAuMjA1NCwgMC4zNDQxNzIsIDAuNDY2NzY2LCAwLjYzMDIyMywgMC45NTcyNjIsIDEuMTYxNzYiLCBcCi0gICAgICAgICAgIjAuMTkzMjU1LCAwLjIxNzkxMywgMC4zNTY2OTksIDAuNDc5MzMxLCAwLjY0Mjg0LCAwLjk2OTc3NiwgMS4xNzQyOCIsIFwKLSAgICAgICAgICAiMC4yMDQ4MDksIDAuMjI5NDYzLCAwLjM2ODI4MSwgMC40OTA4NSwgMC42NTQzNTgsIDAuOTgxMzk2LCAxLjE4NTg3IiwgXAotICAgICAgICAgICIwLjIyMDUwNywgMC4yNDUxNzgsIDAuMzgzOTc1LCAwLjUwNjUzNiwgMC42Njk5OTYsIDAuOTk2OTY5LCAxLjIwMTUiLCBcCi0gICAgICAgICAgIjAuMjMzMTQxLCAwLjI1NzgxMiwgMC4zOTY2MjMsIDAuNTE5MTk1LCAwLjY4Mjc0MSwgMS4wMDk3OCwgMS4yMTQiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk1NDU2LCAwLjE0NDMzNywgMC40Mjg0MjksIDAuNjgxMzQ2LCAxLjAxODU1LCAxLjY5MjkzLCAyLjExMzI1IiwgXAotICAgICAgICAgICIwLjA5NTQ4OCwgMC4xNDQzMjgsIDAuNDI4NzIxLCAwLjY4MDM4LCAxLjAxNjY0LCAxLjY5MjgsIDIuMTE0NTMiLCBcCi0gICAgICAgICAgIjAuMDk1NDgxLCAwLjE0NDMyMiwgMC40MjgwNTcsIDAuNjgxMzY2LCAxLjAxODM4LCAxLjY5Mjc4LCAyLjExNDQ3IiwgXAotICAgICAgICAgICIwLjA5NTQ5NSwgMC4xNDQzMjgsIDAuNDI4NjczLCAwLjY3OTk1NiwgMS4wMTY1LCAxLjY5Mjc2LCAyLjExNDUiLCBcCi0gICAgICAgICAgIjAuMDk1NDk2LCAwLjE0NDM5NCwgMC40MjgwMTIsIDAuNjgxMzI3LCAxLjAxODU0LCAxLjY5MjkzLCAyLjExMDE2IiwgXAotICAgICAgICAgICIwLjA5NTQ0NywgMC4xNDQzMjgsIDAuNDI4MDc4LCAwLjY4MTI5MywgMS4wMTgzMiwgMS42OTA0LCAyLjExNDM4IiwgXAotICAgICAgICAgICIwLjA5NTQ1NCwgMC4xNDQzMTIsIDAuNDI4NDI1LCAwLjY4MTI4NSwgMS4wMTYyNywgMS42ODk2OSwgMi4xMTM5NSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNTY4NTUsIDAuMTgxNjQyLCAwLjMyMTg1OSwgMC40NDU1NDksIDAuNjEwNDQxLCAwLjk0MDIyMiwgMS4xNDYyOCIsIFwKLSAgICAgICAgICAiMC4xNjY5ODUsIDAuMTkxNzc3LCAwLjMzMTk5NSwgMC40NTU2ODUsIDAuNjIwNTU5LCAwLjk1MDI5MSwgMS4xNTYzNCIsIFwKLSAgICAgICAgICAiMC4xNzk4ODMsIDAuMjA0NjcyLCAwLjM0NDg5MywgMC40Njg1OTMsIDAuNjMzNDA0LCAwLjk2MzI2MSwgMS4xNjkxNyIsIFwKLSAgICAgICAgICAiMC4xOTI1MTMsIDAuMjE3MzAzLCAwLjM1NzUyLCAwLjQ4MTIwOSwgMC42NDYwODMsIDAuOTc1ODE3LCAxLjE4MTg2IiwgXAotICAgICAgICAgICIwLjIwNDE5LCAwLjIyODk3NywgMC4zNjkxOTEsIDAuNDkyODc5LCAwLjY1NzcyNywgMC45ODc1NiwgMS4xOTM1NSIsIFwKLSAgICAgICAgICAiMC4yMjAyNSwgMC4yNDUwMzcsIDAuMzg1MjUzLCAwLjUwODk0NiwgMC42NzM4MTMsIDEuMDAzNDgsIDEuMjA5NiIsIFwKLSAgICAgICAgICAiMC4yMzMzODQsIDAuMjU4MTcyLCAwLjM5ODM4NSwgMC41MjIwNywgMC42ODY5NDUsIDEuMDE2NjgsIDEuMjIyNzIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDkwNTkzLCAwLjEzOTgzNiwgMC40MjE5NDQsIDAuNjcxNjMxLCAxLjAwNDIyLCAxLjY2NDUsIDIuMDg1OTUiLCBcCi0gICAgICAgICAgIjAuMDkwNjQ5LCAwLjEzOTgzNywgMC40MjE4MTcsIDAuNjcxNjA0LCAxLjAwNDQsIDEuNjY2NzgsIDIuMDgyNzciLCBcCi0gICAgICAgICAgIjAuMDkwNjI2LCAwLjEzOTc4NiwgMC40MjE3MDQsIDAuNjcxNTgyLCAxLjAwMzksIDEuNjY0MDIsIDIuMDg1MjkiLCBcCi0gICAgICAgICAgIjAuMDkwNjM2LCAwLjEzOTg0NywgMC40MjE3MjUsIDAuNjcxNjE0LCAxLjAwNDM5LCAxLjY2NjgyLCAyLjA4Mjg2IiwgXAotICAgICAgICAgICIwLjA5MDU5MiwgMC4xMzk4NDcsIDAuNDIxOTEzLCAwLjY3MTYyOSwgMS4wMDI4OCwgMS42NjQwNywgMi4wODE3MyIsIFwKLSAgICAgICAgICAiMC4wOTA1NDQsIDAuMTM5ODE4LCAwLjQyMTY0LCAwLjY3MTU5NywgMS4wMDQzOSwgMS42Njg4OCwgMi4wODI2IiwgXAotICAgICAgICAgICIwLjA5MDU4NiwgMC4xMzk4MTQsIDAuNDIxNjIzLCAwLjY3MTYyNSwgMS4wMDQzOSwgMS42NjY5NywgMi4wODI5NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogY2xlYXI7Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3NDU3OCwgMC4wOTk0MjMsIDAuMjM5NTc3LCAwLjM2MzIzMiwgMC41MjgwNTIsIDAuODU3ODEyLCAxLjA2Mzg2IiwgXAotICAgICAgICAgICIwLjA4NDQ5MSwgMC4xMDkzNDUsIDAuMjQ5NTIxLCAwLjM3MzE2OSwgMC41MzgwNTMsIDAuODY3NzQ5LCAxLjA3MzgiLCBcCi0gICAgICAgICAgIjAuMDk2NDk3LCAwLjEyMTM2MSwgMC4yNjE1NDQsIDAuMzg1MjExLCAwLjU1MDA5LCAwLjg3OTgyOCwgMS4wODU4NyIsIFwKLSAgICAgICAgICAiMC4xMDcyNTUsIDAuMTMyMTE3LCAwLjI3MjMyMSwgMC4zOTU5NzMsIDAuNTYwODM2LCAwLjg5MDU3NywgMS4wOTY2MyIsIFwKLSAgICAgICAgICAiMC4xMTYzNDksIDAuMTQxMjA0LCAwLjI4MTQwNSwgMC40MDUwNjEsIDAuNTY5OTUsIDAuODk5Njc2LCAxLjEwNTczIiwgXAotICAgICAgICAgICIwLjEyOTA3MiwgMC4xNTM5NDksIDAuMjk0MTQ5LCAwLjQxNzgxMSwgMC41ODI2NDIsIDAuOTEyNDA3LCAxLjExODQ3IiwgXAotICAgICAgICAgICIwLjEzODQzNSwgMC4xNjMzMTQsIDAuMzAzNTExLCAwLjQyNzE5MywgMC41OTIwNTEsIDAuOTIxNzgzLCAxLjEyNzg0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5MDgxNiwgMC4xMzk4NTgsIDAuNDIxMzgsIDAuNjcwNDYyLCAxLjAwMzYyLCAxLjY2ODg2LCAyLjA4NTExIiwgXAotICAgICAgICAgICIwLjA5MDgxNiwgMC4xMzk4NDYsIDAuNDIxMzA0LCAwLjY3MDU2MSwgMS4wMDMxLCAxLjY2ODk0LCAyLjA4NSIsIFwKLSAgICAgICAgICAiMC4wOTA4OTEsIDAuMTM5ODY0LCAwLjQyMTM2NiwgMC42NzA0ODYsIDEuMDAzMTUsIDEuNjY4ODQsIDIuMDg1MDMiLCBcCi0gICAgICAgICAgIjAuMDkxMTc5LCAwLjE0MDAxMiwgMC40MjEyNzQsIDAuNjcwNDc5LCAxLjAwMzM0LCAxLjY2ODc5LCAyLjA4NDkzIiwgXAotICAgICAgICAgICIwLjA5MTYzNSwgMC4xNDAyOTUsIDAuNDIxMjcsIDAuNjcwNTUxLCAxLjAwMzExLCAxLjY2ODc5LCAyLjA4NDkyIiwgXAotICAgICAgICAgICIwLjA5MjM5MiwgMC4xNDA3MTIsIDAuNDIxMjg2LCAwLjY3MDM1NCwgMS4wMDM2LCAxLjY2ODksIDIuMDg0OTEiLCBcCi0gICAgICAgICAgIjAuMDkzMiwgMC4xNDExNjMsIDAuNDIxMzk4LCAwLjY3MDQwNSwgMS4wMDI2NCwgMS42Njg5OCwgMi4wODQ4NCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDc1MjIsIDAuMDA3NTExLCAwLjAwNzQ1OCwgMC4wMDc0MzgsIDAuMDA3NDI1LCAwLjAwNzQxMywgMC4wMDc0MDgiLCBcCi0gICAgICAgICAgIjAuMDA3NDkzLCAwLjAwNzQ4MywgMC4wMDc0MywgMC4wMDc0MTEsIDAuMDA3Mzk3LCAwLjAwNzM4NCwgMC4wMDczOCIsIFwKLSAgICAgICAgICAiMC4wMDc0OCwgMC4wMDc0NywgMC4wMDc0MTksIDAuMDA3Mzk4LCAwLjAwNzM4NCwgMC4wMDczNzIsIDAuMDA3MzY3IiwgXAotICAgICAgICAgICIwLjAwNzQ3NywgMC4wMDc0NjgsIDAuMDA3NDE3LCAwLjAwNzM5NiwgMC4wMDczODIsIDAuMDA3MzY4LCAwLjAwNzM2NSIsIFwKLSAgICAgICAgICAiMC4wMDc0ODIsIDAuMDA3NDczLCAwLjAwNzQyNSwgMC4wMDc0MDQsIDAuMDA3Mzg5LCAwLjAwNzM3NSwgMC4wMDczNyIsIFwKLSAgICAgICAgICAiMC4wMDc1MTUsIDAuMDA3NTA4LCAwLjAwNzQ2MSwgMC4wMDc0NCwgMC4wMDc0MjYsIDAuMDA3NDExLCAwLjAwNzQwNyIsIFwKLSAgICAgICAgICAiMC4wMDc1MTQsIDAuMDA3NTA3LCAwLjAwNzQ2MywgMC4wMDc0NDIsIDAuMDA3NDI3LCAwLjAwNzQxMSwgMC4wMDc0MDciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDc3MiwgMC4wMDc3MywgMC4wMDc3NDMsIDAuMDA3NzQ2LCAwLjAwNzc0OCwgMC4wMDc3NDksIDAuMDA3NzUiLCBcCi0gICAgICAgICAgIjAuMDA3Njk0LCAwLjAwNzcwNCwgMC4wMDc3MTcsIDAuMDA3NzIsIDAuMDA3NzIyLCAwLjAwNzcyMywgMC4wMDc3MjQiLCBcCi0gICAgICAgICAgIjAuMDA3NjksIDAuMDA3Njk5LCAwLjAwNzcxMiwgMC4wMDc3MTUsIDAuMDA3NzE3LCAwLjAwNzcxOSwgMC4wMDc3MTkiLCBcCi0gICAgICAgICAgIjAuMDA3NzA2LCAwLjAwNzcxNSwgMC4wMDc3MjgsIDAuMDA3NzMxLCAwLjAwNzczMywgMC4wMDc3MzQsIDAuMDA3NzM1IiwgXAotICAgICAgICAgICIwLjAwNzcyLCAwLjAwNzcyOSwgMC4wMDc3NDIsIDAuMDA3NzQ1LCAwLjAwNzc0NywgMC4wMDc3NDksIDAuMDA3NzQ5IiwgXAotICAgICAgICAgICIwLjAwNzc3MywgMC4wMDc3ODIsIDAuMDA3Nzk1LCAwLjAwNzc5NywgMC4wMDc3OTksIDAuMDA3ODAxLCAwLjAwNzgwMSIsIFwKLSAgICAgICAgICAiMC4wMDc4MDcsIDAuMDA3ODE2LCAwLjAwNzgyOSwgMC4wMDc4MzIsIDAuMDA3ODMzLCAwLjAwNzgzNSwgMC4wMDc4MzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA4NzgsIDAuMDA4Nzg4LCAwLjAwODc5NywgMC4wMDg3OTksIDAuMDA4OCwgMC4wMDg4MDEsIDAuMDA4ODAxIiwgXAotICAgICAgICAgICIwLjAwODczNCwgMC4wMDg3NDMsIDAuMDA4NzU1LCAwLjAwODc1OCwgMC4wMDg3NTksIDAuMDA4NzYsIDAuMDA4NzYxIiwgXAotICAgICAgICAgICIwLjAwODcwMywgMC4wMDg3MTQsIDAuMDA4NzMyLCAwLjAwODczNSwgMC4wMDg3MzcsIDAuMDA4NzM5LCAwLjAwODczOSIsIFwKLSAgICAgICAgICAiMC4wMDg2ODEsIDAuMDA4NjkzLCAwLjAwODcxMywgMC4wMDg3MTgsIDAuMDA4NzIxLCAwLjAwODcyMywgMC4wMDg3MjMiLCBcCi0gICAgICAgICAgIjAuMDA4NjcxLCAwLjAwODY4NCwgMC4wMDg3MDcsIDAuMDA4NzEyLCAwLjAwODcxNSwgMC4wMDg3MTgsIDAuMDA4NzE4IiwgXAotICAgICAgICAgICIwLjAwODY3LCAwLjAwODY3OCwgMC4wMDg3MDksIDAuMDA4NzE0LCAwLjAwODcxOCwgMC4wMDg3MjEsIDAuMDA4NzIyIiwgXAotICAgICAgICAgICIwLjAwODY4LCAwLjAwODY5MywgMC4wMDg3MTgsIDAuMDA4NzI3LCAwLjAwODcyOSwgMC4wMDg3MzMsIDAuMDA4NzM0Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3Bvd2VyKHNjYWxhcikgewotICAgICAgICB2YWx1ZXMoIjAiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFJOKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE2MDcxNTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE0ODc4NjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE2MDcxNTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA2NTMsIDAuMDAwNjUyLCAwLjAwMDY1MiwgMC4wMDA2NTIsIDAuMDAwNjUyLCAwLjAwMDY1MiwgMC4wMDA2NTIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA2NiwgMC4wMDA2NTQsIDAuMDAwNjU1LCAwLjAwMDY1NSwgMC4wMDA2NTQsIDAuMDAwNjU1LCAwLjAwMDY1NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQiOwotICAgICAgc2RmX2NvbmQgOiAiRCA9PSAxJ2IwIjsKLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjA4Mjk3MSwgMC4wOTIyMTUsIDAuMTAyMjcxLCAwLjExMTc5NywgMC4xMjA2NzMsIDAuMTMzMjg3LCAwLjE0MzA0OSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJlY292ZXJ5X3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiRCI7Ci0gICAgICBzZGZfY29uZCA6ICJEID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHJlY292ZXJ5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wNDM3NSwgLTAuMDQ4NzUsIC0wLjA2NzUsIC0wLjA4LCAtMC4wOTI1LCAtMC4xMDI1LCAtMC4xMTc1IiwgXAotICAgICAgICAgICItMC4wNDUsIC0wLjA1NjI1LCAtMC4wNjg3NSwgLTAuMDgxMjUsIC0wLjA5Mzc1LCAtMC4xMSwgLTAuMTI1IiwgXAotICAgICAgICAgICItMC4wNDUsIC0wLjA1NjI1LCAtMC4wNjg3NSwgLTAuMDgxMjUsIC0wLjA5Mzc1LCAtMC4xMSwgLTAuMTE4NzUiLCBcCi0gICAgICAgICAgIi0wLjAzMjUsIC0wLjA0Mzc1LCAtMC4wNTYyNSwgLTAuMDY4NzUsIC0wLjA4MTI1LCAtMC4wOTc1LCAtMC4xMTI1IiwgXAotICAgICAgICAgICItMC4wMTM3NSwgLTAuMDMxMjUsIC0wLjA0Mzc1LCAtMC4wNTYyNSwgLTAuMDY4NzUsIC0wLjA4NSwgLTAuMSIsIFwKLSAgICAgICAgICAiMC4wMDg3NSwgLTAuMDAyNSwgLTAuMDIxMjUsIC0wLjAzMzc1LCAtMC4wNDYyNSwgLTAuMDYyNSwgLTAuMDc3NSIsIFwKLSAgICAgICAgICAiMC4wMywgMC4wMTg3NSwgMC4wMDYyNSwgLTAuMDEyNSwgLTAuMDI1LCAtMC4wNDc1LCAtMC4wNTYyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJlbW92YWxfcmlzaW5nOwotICAgICAgd2hlbiA6ICJEIjsKLSAgICAgIHNkZl9jb25kIDogIkQgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQocmVtb3ZhbF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjI1LCAwLjA3Mzc1LCAwLjA4NjI1LCAwLjA5ODc1LCAwLjExMTI1LCAwLjEyNzUsIDAuMTM2MjUiLCBcCi0gICAgICAgICAgIjAuMDcsIDAuMDc1LCAwLjA4NzUsIDAuMSwgMC4xMTI1LCAwLjEyODc1LCAwLjE0Mzc1IiwgXAotICAgICAgICAgICIwLjA3NjI1LCAwLjA4NzUsIDAuMSwgMC4xMTI1LCAwLjExODc1LCAwLjEzNSwgMC4xNSIsIFwKLSAgICAgICAgICAiMC4wODI1LCAwLjA5Mzc1LCAwLjEwNjI1LCAwLjExODc1LCAwLjEyNSwgMC4xNDEyNSwgMC4xNTYyNSIsIFwKLSAgICAgICAgICAiMC4wODg3NSwgMC4xLCAwLjExMjUsIDAuMTI1LCAwLjEzMTI1LCAwLjE0NzUsIDAuMTYyNSIsIFwKLSAgICAgICAgICAiMC4wOTc1LCAwLjEwMjUsIDAuMTE1LCAwLjEyNzUsIDAuMTQsIDAuMTU2MjUsIDAuMTcxMjUiLCBcCi0gICAgICAgICAgIjAuMTAxMjUsIDAuMTEyNSwgMC4xMjUsIDAuMTM3NSwgMC4xNSwgMC4xNiwgMC4xNzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogREZGUkhRWDQgKgotICogLS0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKERGRlJIUVg0KSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuNTY3OTE7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgZmYgKE4zMCxRQklOVCkgewotICAgIG5leHRfc3RhdGUgOiAiRCI7Ci0gICAgY2xvY2tlZF9vbiA6ICJDSyI7Ci0gICAgY2xlYXIgOiAiKCFSTikiOwotICB9Ci0gIHBpbihDSykgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjUyNDgyOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDY1MjQwMzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2NTI0ODI7Ci0gICAgY2xvY2sgOiB0cnVlOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzU3NCwgMC4wMDM1NDgsIDAuMDAzNTM2LCAwLjAwMzUzNSwgMC4wMDM1NDIsIDAuMDAzNTY5LCAwLjAwMzU4NiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwODIyNSwgMC4wMDgyMDUsIDAuMDA4MTk0LCAwLjAwODE5NCwgMC4wMDgyLCAwLjAwODIxNiwgMC4wMDgyNDEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFEJlJOIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9STl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMTMwMTg4LCAwLjE0MDQwOCwgMC4xNTMxNzUsIDAuMTY1NjU3LCAwLjE3NzEwOSwgMC4xOTMxMjUsIDAuMjA1Mzk4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4xMTEwMzYsIDAuMTIwOTExLCAwLjEzMzExMSwgMC4xNDUyOTUsIDAuMTU1OTg1LCAwLjE3MDU4NSwgMC4xODE1MzkiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEQpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDc3MjE1ODsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA3NzA2MTc7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNzcyMTU4OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjc3NSwgMC4wMDI3NDIsIDAuMDAyNzI3LCAwLjAwMjcxNiwgMC4wMDI3MTgsIDAuMDAyNzE4LCAwLjAwMjcyMiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzc5MiwgMC4wMDM3NzIsIDAuMDAzNzYxLCAwLjAwMzc1NywgMC4wMDM3NSwgMC4wMDM3NTUsIDAuMDAzNzYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiUk4iOwotICAgICAgc2RmX2NvbmQgOiAiUk4gPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDEyNSwgLTAuMDA3NSwgLTAuMDAxMjUsIDAuMDA1LCAwLjAxMTI1LCAwLjAyMTI1LCAwLjAyMzc1IiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLCAwLjAwNjI1LCAwLjAxLCAwLjAxODc1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAuMDAzNzUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzNzUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwODc1LCAwIiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAyNSwgLTAuMDE1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDY1LCAtMC4wNTM3NSwgLTAuMDQ3NSwgLTAuMDQxMjUsIC0wLjAzNSwgLTAuMDI1LCAtMC4wMTYyNSIsIFwKLSAgICAgICAgICAiLTAuMDczNzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjAzMzc1LCAtMC4wMjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzMTI1LCAwLjA0MjUsIDAuMDU1LCAwLjA2NzUsIDAuMDgsIDAuMDksIDAuMTA1IiwgXAotICAgICAgICAgICIwLjAyNjI1LCAwLjAzNzUsIDAuMDUsIDAuMDU2MjUsIDAuMDY4NzUsIDAuMDg1LCAwLjA5Mzc1IiwgXAotICAgICAgICAgICIwLjAyLCAwLjAyNSwgMC4wMzc1LCAwLjA1LCAwLjA2MjUsIDAuMDc4NzUsIDAuMDg3NSIsIFwKLSAgICAgICAgICAiMC4wMTM3NSwgMC4wMjUsIDAuMDM3NSwgMC4wNSwgMC4wNTYyNSwgMC4wNzI1LCAwLjA4MTI1IiwgXAotICAgICAgICAgICIwLjAwNzUsIDAuMDE4NzUsIDAuMDMxMjUsIDAuMDQzNzUsIDAuMDUsIDAuMDY2MjUsIDAuMDgxMjUiLCBcCi0gICAgICAgICAgIjAuMDAzNzUsIDAuMDE1LCAwLjAyNzUsIDAuMDQsIDAuMDQ2MjUsIDAuMDYyNSwgMC4wNzEyNSIsIFwKLSAgICAgICAgICAiMC4wMDEyNSwgMC4wMTI1LCAwLjAyNSwgMC4wMzEyNSwgMC4wNDM3NSwgMC4wNiwgMC4wNjg3NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiUk4iOwotICAgICAgc2RmX2NvbmQgOiAiUk4gPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQzNzUsIDAuMDMyNSwgMC4wMiwgMC4wMTM3NSwgMC4wMDc1LCAtMC4wMDI1LCAtMC4wMDUiLCBcCi0gICAgICAgICAgIjAuMDQ4NzUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMjUsIDAuMDE4NzUsIDAuMDA4NzUsIDAiLCBcCi0gICAgICAgICAgIjAuMDYxMjUsIDAuMDUsIDAuMDQzNzUsIDAuMDMxMjUsIDAuMDI1LCAwLjAyMTI1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMDczNzUsIDAuMDYyNSwgMC4wNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAyNzUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMDgsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNSwgMC4wNDM3NSwgMC4wMzM3NSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4wOTYyNSwgMC4wODUsIDAuMDcyNSwgMC4wNjYyNSwgMC4wNiwgMC4wNSwgMC4wNDEyNSIsIFwKLSAgICAgICAgICAiMC4xMDUsIDAuMDkzNzUsIDAuMDgxMjUsIDAuMDc1LCAwLjA2ODc1LCAwLjA1ODc1LCAwLjA1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2MjUsIC0wLjAwNSwgLTAuMDE3NSwgLTAuMDMsIC0wLjA0MjUsIC0wLjA1ODc1LCAtMC4wNjc1IiwgXAotICAgICAgICAgICIwLjAxNzUsIDAuMDA2MjUsIC0wLjAwNjI1LCAtMC4wMTg3NSwgLTAuMDMxMjUsIC0wLjA0NzUsIC0wLjA2MjUiLCBcCi0gICAgICAgICAgIjAuMDIzNzUsIDAuMDEyNSwgMCwgLTAuMDEyNSwgLTAuMDI1LCAtMC4wNDEyNSwgLTAuMDUiLCBcCi0gICAgICAgICAgIjAuMDM2MjUsIDAuMDI1LCAwLjAxMjUsIDAsIC0wLjAxMjUsIC0wLjAyODc1LCAtMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4wNDI1LCAwLjAzMTI1LCAwLjAxODc1LCAwLjAwNjI1LCAtMC4wMDYyNSwgLTAuMDIyNSwgLTAuMDM3NSIsIFwKLSAgICAgICAgICAiMC4wNTI1LCAwLjA0MTI1LCAwLjAyODc1LCAwLjAxNjI1LCAwLjAwMzc1LCAtMC4wMTI1LCAtMC4wMjEyNSIsIFwKLSAgICAgICAgICAiMC4wNjEyNSwgMC4wNSwgMC4wMzc1LCAwLjAyNSwgMC4wMTI1LCAtMC4wMDM3NSwgLTAuMDE4NzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFEpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMS4wMjY5MjsKLSAgICBmdW5jdGlvbiA6ICJOMzAiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5vbl91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcmlzaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTMwNDUsIDAuMjA2MjE3LCAwLjI3ODg4LCAwLjMzMDc3NiwgMC40MTM3OTEsIDAuNDg2NDcyLCAwLjU5MDI3NCIsIFwKLSAgICAgICAgICAiMC4xNDA2ODIsIDAuMjE2NDQ2LCAwLjI4OTExMiwgMC4zNDEwMTIsIDAuNDI0MDYxLCAwLjQ5NjY5MSwgMC42MDA1ODciLCBcCi0gICAgICAgICAgIjAuMTUzMzk2LCAwLjIyOTE2MiwgMC4zMDE4MjcsIDAuMzUzNzIyLCAwLjQzNjc0NSwgMC41MDk0MSwgMC42MTMyMzIiLCBcCi0gICAgICAgICAgIjAuMTY1ODI0LCAwLjI0MTU5MSwgMC4zMTQyNTYsIDAuMzY2MTksIDAuNDQ5MTk5LCAwLjUyMTgzOCwgMC42MjU3MDMiLCBcCi0gICAgICAgICAgIjAuMTc3MDg5LCAwLjI1Mjg1OCwgMC4zMjU1MjQsIDAuMzc3NDIsIDAuNDYwNDM4LCAwLjUzMzEwOSwgMC42MzY5MTgiLCBcCi0gICAgICAgICAgIjAuMTkyMjQ2LCAwLjI2ODAyMiwgMC4zNDA2OTIsIDAuMzkyNTg3LCAwLjQ3NTYyNywgMC41NDgyNjEsIDAuNjUyMTQ3IiwgXAotICAgICAgICAgICIwLjIwNDgzNCwgMC4yODA2MDcsIDAuMzUzMjc2LCAwLjQwNTE3MiwgMC40ODgyNjQsIDAuNTYwODU3LCAwLjY2NDY2MSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzNjQzLCAwLjE4MTMxMiwgMC4zMzEzMTIsIDAuNDM4NjEyLCAwLjYxMTc4LCAwLjc2MjE2LCAwLjk3OTA4IiwgXAotICAgICAgICAgICIwLjAzNjQxMiwgMC4xODEzNjMsIDAuMzMxMjk0LCAwLjQzODYxNCwgMC42MTE4OTYsIDAuNzYyMDE4LCAwLjk3NzM0MiIsIFwKLSAgICAgICAgICAiMC4wMzYzODIsIDAuMTgxMzEyLCAwLjMzMTMwMywgMC40Mzg2MDQsIDAuNjExODM0LCAwLjc2MjA5MywgMC45NzkwODgiLCBcCi0gICAgICAgICAgIjAuMDM2Mzg0LCAwLjE4MTI3NSwgMC4zMzEyNzYsIDAuNDM5MjA2LCAwLjYxMTg4OCwgMC43NjIwOSwgMC45NzczMDIiLCBcCi0gICAgICAgICAgIjAuMDM2Mzc5LCAwLjE4MTMxMSwgMC4zMzEzMDIsIDAuNDM4NjA3LCAwLjYxMTgyNSwgMC43NjIxNTcsIDAuOTc5MDYxIiwgXAotICAgICAgICAgICIwLjAzNjQxNywgMC4xODEzMTgsIDAuMzMxMzExLCAwLjQzODU4MywgMC42MTE4ODIsIDAuNzYyMDQyLCAwLjk3NzMyMiIsIFwKLSAgICAgICAgICAiMC4wMzY0MjMsIDAuMTgxMzIsIDAuMzMxMzE2LCAwLjQzODU4NSwgMC42MTA2ODMsIDAuNzYzMDE5LCAwLjk3NzUwNSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEzMDE4OCwgMC4yMDQ2NzksIDAuMjc4MDg1LCAwLjMzMDUwNiwgMC40MTQzMTIsIDAuNDg3Njc2LCAwLjU5MjUxNiIsIFwKLSAgICAgICAgICAiMC4xNDA0MDgsIDAuMjE0ODk0LCAwLjI4ODI4MiwgMC4zNDA2ODksIDAuNDI0NTI1LCAwLjQ5Nzg5NiwgMC42MDI3MjgiLCBcCi0gICAgICAgICAgIjAuMTUzMTc1LCAwLjIyNzY3MiwgMC4zMDEwNTYsIDAuMzUzNDY1LCAwLjQzNzMwNSwgMC41MTA2NzEsIDAuNjE1NTA4IiwgXAotICAgICAgICAgICIwLjE2NTY1NywgMC4yNDAxNDYsIDAuMzEzNTQ1LCAwLjM2NTk0NSwgMC40NDk4LCAwLjUyMzEzMSwgMC42Mjc5MzEiLCBcCi0gICAgICAgICAgIjAuMTc3MTA5LCAwLjI1MTYwOCwgMC4zMjUwMDksIDAuMzc3MzkzLCAwLjQ2MTIyOCwgMC41MzQ1OTgsIDAuNjM5NDMxIiwgXAotICAgICAgICAgICIwLjE5MzEyNSwgMC4yNjc2MTcsIDAuMzQxMDAzLCAwLjM5MzQxMiwgMC40NzcyNDksIDAuNTUwNjE2LCAwLjY1NTQ1MyIsIFwKLSAgICAgICAgICAiMC4yMDUzOTgsIDAuMjc5ODksIDAuMzUzMjg3LCAwLjQwNTY5MiwgMC40ODk1MiwgMC41NjI5MDgsIDAuNjY3NjciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzA5MTIsIDAuMTc2MTE0LCAwLjMyNTAxNCwgMC40MzAxMzYsIDAuNjAwMzc5LCAwLjc0OTI5MywgMC45NjEwMSIsIFwKLSAgICAgICAgICAiMC4wMzA5MDYsIDAuMTc2MTIxLCAwLjMyNDM5MiwgMC40MzEyNjUsIDAuNjAwMjcxLCAwLjc0ODU3NCwgMC45NjAzMTQiLCBcCi0gICAgICAgICAgIjAuMDMwOTA0LCAwLjE3NjExNywgMC4zMjQ5MTMsIDAuNDMxMjY0LCAwLjYwMDM0LCAwLjc0OTA4NSwgMC45NjA5NjUiLCBcCi0gICAgICAgICAgIjAuMDMwODk5LCAwLjE3NjE0NywgMC4zMjQ0MzUsIDAuNDMxMjg1LCAwLjYwMTYwNiwgMC43NTA0NjMsIDAuOTYwOTY2IiwgXAotICAgICAgICAgICIwLjAzMDkwMywgMC4xNzYzODYsIDAuMzI0MDk1LCAwLjQzMTI2OCwgMC42MDA5MjUsIDAuNzQ4NDcxLCAwLjk2MDQ4NSIsIFwKLSAgICAgICAgICAiMC4wMzA5MDcsIDAuMTc2NDAyLCAwLjMyNDI5OCwgMC40MzEyNjUsIDAuNjAwMjc2LCAwLjc0OTA5LCAwLjk2MDk1NSIsIFwKLSAgICAgICAgICAiMC4wMzA5MDEsIDAuMTc2MTM5LCAwLjMyNDI2OSwgMC40MzEzMDIsIDAuNjAwMjc5LCAwLjc1MDUyNiwgMC45NjA2OSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogY2xlYXI7Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQxNTAzLCAwLjExNjI0NiwgMC4xODk1NDQsIDAuMjQxOTE4LCAwLjMyNTczNCwgMC4zOTkwOCwgMC41MDM4MzEiLCBcCi0gICAgICAgICAgIjAuMDUxMzQxLCAwLjEyNjEwOSwgMC4xOTk0MjEsIDAuMjUxNzkzLCAwLjMzNTYxNCwgMC40MDg5NzMsIDAuNTEzNzIyIiwgXAotICAgICAgICAgICIwLjA2MzM1MiwgMC4xMzgxOTIsIDAuMjExNTMyLCAwLjI2Mzg5MSwgMC4zNDc2OSwgMC40MjEwMzIsIDAuNTI1ODEyIiwgXAotICAgICAgICAgICIwLjA3Mzk3MSwgMC4xNDg4NCwgMC4yMjIxNTgsIDAuMjc0NTQyLCAwLjM1ODM3MiwgMC40MzE3MjcsIDAuNTM2NDg4IiwgXAotICAgICAgICAgICIwLjA4Mjc2OCwgMC4xNTc4NCwgMC4yMzExNTksIDAuMjgzNTM3LCAwLjM2NzM3MywgMC40NDA3MDQsIDAuNTQ1NDk0IiwgXAotICAgICAgICAgICIwLjA5NDgwOCwgMC4xNzAxNjcsIDAuMjQzNDYzLCAwLjI5NTgzOSwgMC4zNzk2NjIsIDAuNDUzMDA4LCAwLjU1NzgyNyIsIFwKLSAgICAgICAgICAiMC4xMDM4MDYsIDAuMTc5NDc3LCAwLjI1Mjc2NywgMC4zMDUxMTUsIDAuMzg4OTE1LCAwLjQ2MjI2OCwgMC41NjcwMjIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzA0MjksIDAuMTc1ODU5LCAwLjMyNDI1NywgMC40MzAzOTgsIDAuNTk5OTUsIDAuNzQ5MjAyLCAwLjk2MjI2NCIsIFwKLSAgICAgICAgICAiMC4wMzA0NTUsIDAuMTc1ODU1LCAwLjMyNDE1NSwgMC40MzA0MTIsIDAuNjAwMDMzLCAwLjc0OTM2NywgMC45NjIwNyIsIFwKLSAgICAgICAgICAiMC4wMzA3NjIsIDAuMTc1ODY0LCAwLjMyNDE0NCwgMC40MzAzNzcsIDAuNjAwMzIxLCAwLjc0OTM5NCwgMC45NjEzMTciLCBcCi0gICAgICAgICAgIjAuMDMxNzA3LCAwLjE3NTk3MiwgMC4zMjQyMzcsIDAuNDMwMzU2LCAwLjYwMDI4NywgMC43NDkwMzcsIDAuOTYyMDkxIiwgXAotICAgICAgICAgICIwLjAzMjc5OCwgMC4xNzYxODIsIDAuMzI0MTY4LCAwLjQzMDM2MSwgMC41OTk5NzksIDAuNzQ4ODg1LCAwLjk2MTUyMyIsIFwKLSAgICAgICAgICAiMC4wMzQ0ODQsIDAuMTc2NTM4LCAwLjMyNDU2MSwgMC40MzA0NSwgMC42MDAyNzMsIDAuNzQ4OTY1LCAwLjk2MTYzOCIsIFwKLSAgICAgICAgICAiMC4wMzU5MiwgMC4xNzY5MDcsIDAuMzI0MzU1LCAwLjQzMDc4MywgMC42MDAzMzgsIDAuNzQ4OTQ2LCAwLjk2MTIzOCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMTY0MiwgMC4wMTE3NjQsIDAuMDExNzU1LCAwLjAxMTc0OCwgMC4wMTE3MzksIDAuMDExNzMzLCAwLjAxMTcyNyIsIFwKLSAgICAgICAgICAiMC4wMTE2MDgsIDAuMDExNzMyLCAwLjAxMTcyNCwgMC4wMTE3MTYsIDAuMDExNzA4LCAwLjAxMTcwNCwgMC4wMTE2OTgiLCBcCi0gICAgICAgICAgIjAuMDExNTkyLCAwLjAxMTcxNiwgMC4wMTE3MDgsIDAuMDExNzAzLCAwLjAxMTY5MywgMC4wMTE2ODYsIDAuMDExNjgiLCBcCi0gICAgICAgICAgIjAuMDExNTksIDAuMDExNzE1LCAwLjAxMTcwOCwgMC4wMTE3LCAwLjAxMTY5MSwgMC4wMTE2ODMsIDAuMDExNjc5IiwgXAotICAgICAgICAgICIwLjAxMTU5NiwgMC4wMTE3MjMsIDAuMDExNzEzLCAwLjAxMTcxMiwgMC4wMTE3LCAwLjAxMTY5NSwgMC4wMTE2ODgiLCBcCi0gICAgICAgICAgIjAuMDExNjE5LCAwLjAxMTc0NywgMC4wMTE3NDEsIDAuMDExNzM0LCAwLjAxMTcyNSwgMC4wMTE3MiwgMC4wMTE3MTIiLCBcCi0gICAgICAgICAgIjAuMDExNjQxLCAwLjAxMTc2OCwgMC4wMTE3NjMsIDAuMDExNzU2LCAwLjAxMTc0OCwgMC4wMTE3NDEsIDAuMDExNzM0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTE1OTksIDAuMDExODA3LCAwLjAxMTgzNiwgMC4wMTE4NDQsIDAuMDExODUyLCAwLjAxMTg1NiwgMC4wMTE4NTkiLCBcCi0gICAgICAgICAgIjAuMDExNTY3LCAwLjAxMTc3NywgMC4wMTE4MDUsIDAuMDExODE0LCAwLjAxMTgyMiwgMC4wMTE4MjYsIDAuMDExODI5IiwgXAotICAgICAgICAgICIwLjAxMTU2MSwgMC4wMTE3NzMsIDAuMDExODAyLCAwLjAxMTgxMSwgMC4wMTE4MTksIDAuMDExODIzLCAwLjAxMTgyNiIsIFwKLSAgICAgICAgICAiMC4wMTE1NzgsIDAuMDExNzksIDAuMDExODE4LCAwLjAxMTgyNywgMC4wMTE4MzUsIDAuMDExODM4LCAwLjAxMTg0MiIsIFwKLSAgICAgICAgICAiMC4wMTE1OTcsIDAuMDExODA2LCAwLjAxMTgzNCwgMC4wMTE4NDMsIDAuMDExODUxLCAwLjAxMTg1NSwgMC4wMTE4NTgiLCBcCi0gICAgICAgICAgIjAuMDExNjM4LCAwLjAxMTg0NywgMC4wMTE4NzUsIDAuMDExODg0LCAwLjAxMTg5MiwgMC4wMTE4OTUsIDAuMDExODk5IiwgXAotICAgICAgICAgICIwLjAxMTY4MiwgMC4wMTE4OTYsIDAuMDExOTI0LCAwLjAxMTkzMywgMC4wMTE5NCwgMC4wMTE5NDQsIDAuMDExOTQ4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUk4iOwotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEyOTU1LCAwLjAxMzExNSwgMC4wMTMxMzEsIDAuMDEzMTM3LCAwLjAxMzE0MiwgMC4wMTMxNDQsIDAuMDEzMTQ2IiwgXAotICAgICAgICAgICIwLjAxMjg1MywgMC4wMTMwMzcsIDAuMDEzMDYxLCAwLjAxMzA2OCwgMC4wMTMwNzQsIDAuMDEzMDc4LCAwLjAxMzA4IiwgXAotICAgICAgICAgICIwLjAxMjc3NywgMC4wMTI5ODEsIDAuMDEzMDEzLCAwLjAxMzAyNCwgMC4wMTMwMzMsIDAuMDEzMDM3LCAwLjAxMzA0MSIsIFwKLSAgICAgICAgICAiMC4wMTI3MjgsIDAuMDEyOTQxLCAwLjAxMjk4MSwgMC4wMTI5OTQsIDAuMDEzMDA1LCAwLjAxMzAxMSwgMC4wMTMwMTciLCBcCi0gICAgICAgICAgIjAuMDEyNzA2LCAwLjAxMjkyMywgMC4wMTI5NjQsIDAuMDEyOTgzLCAwLjAxMjk5NiwgMC4wMTMwMDIsIDAuMDEzMDA4IiwgXAotICAgICAgICAgICIwLjAxMjcxNiwgMC4wMTI5MjEsIDAuMDEyOTcyLCAwLjAxMjk4OSwgMC4wMTMwMDYsIDAuMDEzMDEzLCAwLjAxMzAyIiwgXAotICAgICAgICAgICIwLjAxMjc0MywgMC4wMTI5MzksIDAuMDEyOTk0LCAwLjAxMzAxMywgMC4wMTMwMywgMC4wMTMwMzcsIDAuMDEzMDQxIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3Bvd2VyKHNjYWxhcikgewotICAgICAgICB2YWx1ZXMoIjAiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFJOKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDI1MTU2NDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDIzMjk3ODsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDI1MTU2NDsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA5NzksIDAuMDAwOTc4LCAwLjAwMDk3NywgMC4wMDA5NzgsIDAuMDAwOTc4LCAwLjAwMDk3OCwgMC4wMDA5NzgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA5OTUsIDAuMDAwOTgyLCAwLjAwMDk4MiwgMC4wMDA5ODEsIDAuMDAwOTgxLCAwLjAwMDk4MiwgMC4wMDA5ODIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUk4iOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFEIjsKLSAgICAgIHNkZl9jb25kIDogIkQgPT0gMSdiMCI7Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wODY0NiwgMC4wOTU3MywgMC4xMDU5MjEsIDAuMTE1NDI3LCAwLjEyNDIxMiwgMC4xMzY3NDMsIDAuMTQ2Mzc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogcmVjb3ZlcnlfcmlzaW5nOwotICAgICAgd2hlbiA6ICJEIjsKLSAgICAgIHNkZl9jb25kIDogIkQgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQocmVjb3ZlcnlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAzMTI1LCAtMC4wNDI1LCAtMC4wNjEyNSwgLTAuMDY3NSwgLTAuMDgsIC0wLjA5NjI1LCAtMC4xMDUiLCBcCi0gICAgICAgICAgIi0wLjAzODc1LCAtMC4wNSwgLTAuMDYyNSwgLTAuMDc1LCAtMC4wODc1LCAtMC4xMDM3NSwgLTAuMTEyNSIsIFwKLSAgICAgICAgICAiLTAuMDM4NzUsIC0wLjA1LCAtMC4wNjI1LCAtMC4wNzUsIC0wLjA4NzUsIC0wLjEwMzc1LCAtMC4xMTI1IiwgXAotICAgICAgICAgICItMC4wMzI1LCAtMC4wNDM3NSwgLTAuMDU2MjUsIC0wLjA2ODc1LCAtMC4wODEyNSwgLTAuMDk3NSwgLTAuMTEyNSIsIFwKLSAgICAgICAgICAiLTAuMDIsIC0wLjAzMTI1LCAtMC4wNDM3NSwgLTAuMDU2MjUsIC0wLjA2ODc1LCAtMC4wOTEyNSwgLTAuMSIsIFwKLSAgICAgICAgICAiMC4wMDI1LCAtMC4wMDg3NSwgLTAuMDIxMjUsIC0wLjA0LCAtMC4wNTI1LCAtMC4wNjg3NSwgLTAuMDgzNzUiLCBcCi0gICAgICAgICAgIjAuMDMsIDAuMDEyNSwgMCwgLTAuMDE4NzUsIC0wLjAzMTI1LCAtMC4wNDc1LCAtMC4wNjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogcmVtb3ZhbF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIkQiOwotICAgICAgc2RmX2NvbmQgOiAiRCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChyZW1vdmFsX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1NjI1LCAwLjA2NzUsIDAuMDgsIDAuMDkyNSwgMC4xMDUsIDAuMTIxMjUsIDAuMTMiLCBcCi0gICAgICAgICAgIjAuMDYzNzUsIDAuMDY4NzUsIDAuMDg3NSwgMC4wOTM3NSwgMC4xMDYyNSwgMC4xMjI1LCAwLjEzNzUiLCBcCi0gICAgICAgICAgIjAuMDcsIDAuMDc1LCAwLjA5Mzc1LCAwLjEsIDAuMTEyNSwgMC4xMjg3NSwgMC4xMzc1IiwgXAotICAgICAgICAgICIwLjA3NjI1LCAwLjA4MTI1LCAwLjA5Mzc1LCAwLjEwNjI1LCAwLjExODc1LCAwLjEzNSwgMC4xNDM3NSIsIFwKLSAgICAgICAgICAiMC4wNzYyNSwgMC4wODc1LCAwLjEsIDAuMTEyNSwgMC4xMjUsIDAuMTQxMjUsIDAuMTUiLCBcCi0gICAgICAgICAgIjAuMDg1LCAwLjA5NjI1LCAwLjEwODc1LCAwLjEyMTI1LCAwLjEzMzc1LCAwLjE0Mzc1LCAwLjE1ODc1IiwgXAotICAgICAgICAgICIwLjA4ODc1LCAwLjEsIDAuMTEyNSwgMC4xMjUsIDAuMTM3NSwgMC4xNDc1LCAwLjE2MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IERGRlJYMiAqCi0gKiAtLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKERGRlJYMikgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjQ1NDY1OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIGZmIChOMzAsUUJJTlQpIHsKLSAgICBuZXh0X3N0YXRlIDogIkQiOwotICAgIGNsb2NrZWRfb24gOiAiQ0siOwotICAgIGNsZWFyIDogIighUk4pIjsKLSAgfQotICBwaW4oQ0spICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYxNDA1NTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MTM4MTI7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjE0MDU1OwotICAgIGNsb2NrIDogdHJ1ZTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDMwNjQsIDAuMDAzMDM3LCAwLjAwMzAyNCwgMC4wMDMwMjYsIDAuMDAzMDM4LCAwLjAwMzA1NywgMC4wMDMwNzkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDY1OTQsIDAuMDA2NTcyLCAwLjAwNjU2MSwgMC4wMDY1NjMsIDAuMDA2NTY5LCAwLjAwNjU5MywgMC4wMDY2MTMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFEJlJOIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9STl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMTYxNzU0LCAwLjE3MTk1NiwgMC4xODQ3MjgsIDAuMTk2NjM4LCAwLjIwNzExOSwgMC4yMjE4MzIsIDAuMjMzMSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMTAzNTQzLCAwLjExMzQ0MywgMC4xMjU2NTYsIDAuMTM3MDk2LCAwLjE0NjcyNywgMC4xNjAwMzQsIDAuMTcwMTU5Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihEKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2NjcwMjY7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjY0NzgyOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDY2NzAyNjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDIyOTQsIDAuMDAyMjcxLCAwLjAwMjI2LCAwLjAwMjI1NCwgMC4wMDIyNTQsIDAuMDAyMjU2LCAwLjAwMjI2MyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjc3NCwgMC4wMDI3NiwgMC4wMDI3NTIsIDAuMDAyNzQ5LCAwLjAwMjc0OSwgMC4wMDI3NDgsIDAuMDAyNzU0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlJOIjsKLSAgICAgIHNkZl9jb25kIDogIlJOID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAxODc1LCAtMC4wMDc1LCAtMC4wMDEyNSwgMC4wMDUsIDAuMDExMjUsIDAuMDE1LCAwLjAyMzc1IiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLCAwLjAxLCAwLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAtMC4wMDI1LCAwIiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAwODc1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDIxMjUsIC0wLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjA2NSwgLTAuMDYsIC0wLjA0NzUsIC0wLjA0MTI1LCAtMC4wMzUsIC0wLjAzMTI1LCAtMC4wMjI1IiwgXAotICAgICAgICAgICItMC4wNzM3NSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDQsIC0wLjAzMTI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjUsIDAuMDM2MjUsIDAuMDQ4NzUsIDAuMDYxMjUsIDAuMDY3NSwgMC4wODM3NSwgMC4wOTI1IiwgXAotICAgICAgICAgICIwLjAxMzc1LCAwLjAyNSwgMC4wMzc1LCAwLjA1LCAwLjA2MjUsIDAuMDcyNSwgMC4wODEyNSIsIFwKLSAgICAgICAgICAiMC4wMDc1LCAwLjAxODc1LCAwLjAzMTI1LCAwLjA0Mzc1LCAwLjA1LCAwLjA2NjI1LCAwLjA3NSIsIFwKLSAgICAgICAgICAiMC4wMDEyNSwgMC4wMTI1LCAwLjAyNSwgMC4wMzc1LCAwLjA0Mzc1LCAwLjA2LCAwLjA2ODc1IiwgXAotICAgICAgICAgICIwLjAwMTI1LCAwLjAwNjI1LCAwLjAxODc1LCAwLjAzMTI1LCAwLjA0Mzc1LCAwLjA1Mzc1LCAwLjA2MjUiLCBcCi0gICAgICAgICAgIi0wLjAwODc1LCAwLjAwMjUsIDAuMDE1LCAwLjAyNzUsIDAuMDMzNzUsIDAuMDUsIDAuMDU4NzUiLCBcCi0gICAgICAgICAgIi0wLjAxMTI1LCAwLCAwLjAxMjUsIDAuMDE4NzUsIDAuMDMxMjUsIDAuMDQxMjUsIDAuMDU2MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlJOIjsKLSAgICAgIHNkZl9jb25kIDogIlJOID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0Mzc1LCAwLjAzMjUsIDAuMDI2MjUsIDAuMDIsIDAuMDEzNzUsIDAuMDAzNzUsIDAuMDAxMjUiLCBcCi0gICAgICAgICAgIjAuMDU1LCAwLjA0Mzc1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMTg3NSwgMC4wMTUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMDYxMjUsIDAuMDU2MjUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMjEyNSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4wNzM3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA0Mzc1LCAwLjA0Mzc1LCAwLjAzMzc1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiMC4wODYyNSwgMC4wNzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNSwgMC4wNCwgMC4wMzc1IiwgXAotICAgICAgICAgICIwLjA5NjI1LCAwLjA4NSwgMC4wNzg3NSwgMC4wNjYyNSwgMC4wNiwgMC4wNTYyNSwgMC4wNDc1IiwgXAotICAgICAgICAgICIwLjEwNSwgMC4xLCAwLjA4NzUsIDAuMDgxMjUsIDAuMDc1LCAwLjA2NSwgMC4wNTYyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxODc1LCAwLjAwNzUsIC0wLjAwNSwgLTAuMDE3NSwgLTAuMDMsIC0wLjA0NjI1LCAtMC4wNTUiLCBcCi0gICAgICAgICAgIjAuMDMsIDAuMDE4NzUsIDAsIC0wLjAxMjUsIC0wLjAxODc1LCAtMC4wMzUsIC0wLjA1IiwgXAotICAgICAgICAgICIwLjAzNjI1LCAwLjAyNSwgMC4wMTI1LCAwLCAtMC4wMTI1LCAtMC4wMjg3NSwgLTAuMDM3NSIsIFwKLSAgICAgICAgICAiMC4wNDI1LCAwLjAzNzUsIDAuMDE4NzUsIDAuMDA2MjUsIDAsIC0wLjAxNjI1LCAtMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4wNTUsIDAuMDQzNzUsIDAuMDMxMjUsIDAuMDE4NzUsIDAuMDA2MjUsIC0wLjAxLCAtMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4wNjUsIDAuMDUzNzUsIDAuMDQxMjUsIDAuMDI4NzUsIDAuMDE2MjUsIDAsIC0wLjAwODc1IiwgXAotICAgICAgICAgICIwLjA3Mzc1LCAwLjA2MjUsIDAuMDUsIDAuMDM3NSwgMC4wMjUsIDAuMDA4NzUsIDAiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFEpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC41MjA5NzQ7Ci0gICAgZnVuY3Rpb24gOiAiTjMwIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBub25fdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJpc2luZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNTAzNTcsIDAuMjU1NjU3LCAwLjMzNzQxOSwgMC40Mzg3NzgsIDAuNTQxMzczLCAwLjY0MzMxNCwgMC43NDQ3NDEiLCBcCi0gICAgICAgICAgIjAuMTYwNTg5LCAwLjI2NTc4NiwgMC4zNDc1MjMsIDAuNDQ5MDA5LCAwLjU1MTY3LCAwLjY1MzIyNSwgMC43NTQ0OTkiLCBcCi0gICAgICAgICAgIjAuMTczMjY3LCAwLjI3ODU2MywgMC4zNjAzNDQsIDAuNDYxNjg4LCAwLjU2NDI5MiwgMC42NjU5MDcsIDAuNzY3Njc2IiwgXAotICAgICAgICAgICIwLjE4NTAyNiwgMC4yOTAzMzQsIDAuMzcyMDc5LCAwLjQ3MzQ1NiwgMC41NzYwNSwgMC42Nzc4MzQsIDAuNzc5NDI4IiwgXAotICAgICAgICAgICIwLjE5NTEzNCwgMC4zMDA0NDUsIDAuMzgyMjc2LCAwLjQ4MzUyOSwgMC41ODYyLCAwLjY4Nzc2NCwgMC43ODk1NSIsIFwKLSAgICAgICAgICAiMC4yMDk2NDgsIDAuMzE0OTUzLCAwLjM5Njc2MiwgMC40OTgwNTMsIDAuNjAwNjc5LCAwLjcwMjI3NiwgMC44MDMzNTkiLCBcCi0gICAgICAgICAgIjAuMjIwNTU4LCAwLjMyNTc4NywgMC40MDc0MTgsIDAuNTA5MDExLCAwLjYxMTY2LCAwLjcxMzIwOCwgMC44MTQ4OTQiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDYwNzI0LCAwLjI2MjM2MiwgMC40Mjg2NjMsIDAuNjM3MDI0LCAwLjg0NTY2OCwgMS4wNTUxMiwgMS4yNjgwMyIsIFwKLSAgICAgICAgICAiMC4wNjA3MzgsIDAuMjYyMTk0LCAwLjQyODY0MiwgMC42MzcwNjMsIDAuODQ1Njc0LCAxLjA1ODE5LCAxLjI2NjI0IiwgXAotICAgICAgICAgICIwLjA2MDc4MywgMC4yNjIzMjYsIDAuNDI4NjU5LCAwLjYzNzA3LCAwLjg0NTY3MiwgMS4wNTgxOSwgMS4yNjgwMiIsIFwKLSAgICAgICAgICAiMC4wNjA4NTEsIDAuMjYyMzc5LCAwLjQyODY2LCAwLjYzNzAyNCwgMC44NDU2NzEsIDEuMDU1NzMsIDEuMjY4MDEiLCBcCi0gICAgICAgICAgIjAuMDYwNjEyLCAwLjI2MjM5OSwgMC40Mjc4NzgsIDAuNjM3MTksIDAuODQ1NjU4LCAxLjA1ODE4LCAxLjI2Nzk4IiwgXAotICAgICAgICAgICIwLjA2MDg2MywgMC4yNjIzNDUsIDAuNDI4NjYyLCAwLjYzNzE4NCwgMC44NDU2NTUsIDEuMDU4MTUsIDEuMjY1NyIsIFwKLSAgICAgICAgICAiMC4wNjA5MzgsIDAuMjYyMjk5LCAwLjQyNzkwOSwgMC42MzY5NzEsIDAuODQ1NjgzLCAxLjA1ODEzLCAxLjI2Nzk1Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE0MDE4OSwgMC4yNDQ5ODUsIDAuMzI4MzAyLCAwLjQzMTMsIDAuNTM0OTQ1LCAwLjYzODU5LCAwLjc0MjI3NyIsIFwKLSAgICAgICAgICAiMC4xNTA0MTEsIDAuMjU1MjE0LCAwLjMzODQ5OSwgMC40NDE3NDMsIDAuNTQ1MjQsIDAuNjQ4ODUxLCAwLjc1MjQwNSIsIFwKLSAgICAgICAgICAiMC4xNjMxODMsIDAuMjY3OTc3LCAwLjM1MTI5OSwgMC40NTQ1MTksIDAuNTU4MDE0LCAwLjY2MTYyMywgMC43NjUxNzkiLCBcCi0gICAgICAgICAgIjAuMTc1MDkzLCAwLjI4MDEzMSwgMC4zNjMyMiwgMC40NjY0MzYsIDAuNTcwMDA4LCAwLjY3MzUsIDAuNzc3MTc1IiwgXAotICAgICAgICAgICIwLjE4NTU3NSwgMC4yOTA1OSwgMC4zNzM2ODcsIDAuNDc2ODc5LCAwLjU4MDQ3NCwgMC42ODM5ODUsIDAuNzg3NjUzIiwgXAotICAgICAgICAgICIwLjIwMDI2MywgMC4zMDUyODksIDAuMzg4Mzc0LCAwLjQ5MTU3MywgMC41OTUxNjMsIDAuNjk4NzE5LCAwLjgwMjM0NCIsIFwKLSAgICAgICAgICAiMC4yMTE1NTYsIDAuMzE2NTY5LCAwLjM5OTYxLCAwLjUwMzIwNiwgMC42MDYzMTksIDAuNzA5OTQ5LCAwLjgxMzYzOSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTM0MjgsIDAuMjU5NTQsIDAuNDI2MTIzLCAwLjYzNTM0MiwgMC44NDU0LCAxLjA1NTU3LCAxLjI2Njc1IiwgXAotICAgICAgICAgICIwLjA1MzUxNCwgMC4yNTk1MzUsIDAuNDI1OTE1LCAwLjYzNjU5NywgMC44NDU3NSwgMS4wNTYwOSwgMS4yNjYxIiwgXAotICAgICAgICAgICIwLjA1MzQ0LCAwLjI1OTUzLCAwLjQyNjExNiwgMC42MzY2MTEsIDAuODQ1NzQxLCAxLjA1NjEsIDEuMjY2MSIsIFwKLSAgICAgICAgICAiMC4wNTMzNDEsIDAuMjU4NzkzLCAwLjQyNjA3MywgMC42MzY2NiwgMC44NDYyNzMsIDEuMDU1NTUsIDEuMjY2NzUiLCBcCi0gICAgICAgICAgIjAuMDUzMjYsIDAuMjU4OTMxLCAwLjQyNjExMywgMC42MzY0MzcsIDAuODQ2MjEzLCAxLjA1NTQ4LCAxLjI2NjY5IiwgXAotICAgICAgICAgICIwLjA1MzQxNSwgMC4yNTg4NjksIDAuNDI2MTIyLCAwLjYzNjQ2LCAwLjg0NjE3MiwgMS4wNTYwMywgMS4yNjY2OSIsIFwKLSAgICAgICAgICAiMC4wNTMzNjYsIDAuMjU4OTYsIDAuNDI2MDA0LCAwLjYzNTA3NiwgMC44NDUzNzksIDEuMDU1NTcsIDEuMjY2NjgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUk4iOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGNsZWFyOwotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjM2NzIsIDAuMTY4NDE1LCAwLjI1MTM3OSwgMC4zNTQ5NTcsIDAuNDU4NTkxLCAwLjU2MjIwNiwgMC42NjU2NDkiLCBcCi0gICAgICAgICAgIjAuMDczNjEsIDAuMTc4MjczLCAwLjI2MTMsIDAuMzY0ODczLCAwLjQ2ODY4MSwgMC41NzIxNjgsIDAuNjc1NjE2IiwgXAotICAgICAgICAgICIwLjA4NTkzMywgMC4xOTA3MzQsIDAuMjczNzM2LCAwLjM3NzIyOCwgMC40ODA5NDYsIDAuNTg0NTczLCAwLjY4Nzk5NiIsIFwKLSAgICAgICAgICAiMC4wOTc4OTgsIDAuMjAyNjk3LCAwLjI4NTU0MiwgMC4zODkxMjUsIDAuNDkyODM5LCAwLjU5NjUyLCAwLjY5OTk4OCIsIFwKLSAgICAgICAgICAiMC4xMDg1MDgsIDAuMjEzMzkyLCAwLjI5NjQ2OCwgMC40MDAwMzgsIDAuNTAzNDY1LCAwLjYwNzE3OSwgMC43MTA2MjUiLCBcCi0gICAgICAgICAgIjAuMTIzMjE2LCAwLjIyODI5NCwgMC4zMTEwNzYsIDAuNDE0OTYzLCAwLjUxODQ4OSwgMC42MjE4MDEsIDAuNzI1NDI3IiwgXAotICAgICAgICAgICIwLjEzNDUyLCAwLjIzOTU0NSwgMC4zMjI2MjgsIDAuNDI2MjA2LCAwLjUyOTc1MiwgMC42MzM0MDgsIDAuNzM2NzkzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1MzQ3NCwgMC4yNTkxNzMsIDAuNDI2NDA3LCAwLjYzNjE1MSwgMC44NDYxNjksIDEuMDU2MjMsIDEuMjY1OTMiLCBcCi0gICAgICAgICAgIjAuMDUzMzM0LCAwLjI1OTIxLCAwLjQyNjQ4MSwgMC42MzYxOTgsIDAuODQ2MDA3LCAxLjA1NjIsIDEuMjY1ODUiLCBcCi0gICAgICAgICAgIjAuMDUzNTMzLCAwLjI1OTE5MywgMC40MjY0NDcsIDAuNjM1MjMsIDAuODQ2MDcyLCAxLjA1NjI3LCAxLjI2NTgiLCBcCi0gICAgICAgICAgIjAuMDUzODQ4LCAwLjI1OTIxLCAwLjQyNTg3MiwgMC42MzU1MjcsIDAuODQ1OTQsIDEuMDU2MTYsIDEuMjY1NzkiLCBcCi0gICAgICAgICAgIjAuMDU0ODU4LCAwLjI1ODY0NywgMC40MjY0NjgsIDAuNjM2MTc3LCAwLjg0NTk4NCwgMS4wNTYyMiwgMS4yNjU3IiwgXAotICAgICAgICAgICIwLjA1NjU1NCwgMC4yNTkxMTQsIDAuNDI2MjM0LCAwLjYzNjE5LCAwLjg0NjA5NCwgMS4wNTU4OSwgMS4yNjU1MiIsIFwKLSAgICAgICAgICAiMC4wNTc3NTMsIDAuMjU5Njg2LCAwLjQyNjU3NSwgMC42MzYxMzEsIDAuODQ1ODYzLCAxLjA1NTc3LCAxLjI2NTQ2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNTM4NSwgMC4wMDU0MjksIDAuMDA1NDI2LCAwLjAwNTQyMywgMC4wMDU0MjEsIDAuMDA1NDE5LCAwLjAwNTQxOCIsIFwKLSAgICAgICAgICAiMC4wMDUzNywgMC4wMDU0MTQsIDAuMDA1NDExLCAwLjAwNTQwOCwgMC4wMDU0MDYsIDAuMDA1NDA0LCAwLjAwNTQwMiIsIFwKLSAgICAgICAgICAiMC4wMDUzNjEsIDAuMDA1NDA2LCAwLjAwNTQwMywgMC4wMDU0LCAwLjAwNTM5NywgMC4wMDUzOTUsIDAuMDA1Mzk0IiwgXAotICAgICAgICAgICIwLjAwNTM2MSwgMC4wMDU0MDYsIDAuMDA1NDA0LCAwLjAwNTQsIDAuMDA1Mzk4LCAwLjAwNTM5NiwgMC4wMDUzOTQiLCBcCi0gICAgICAgICAgIjAuMDA1MzcsIDAuMDA1NDE2LCAwLjAwNTQxMywgMC4wMDU0MSwgMC4wMDU0MDgsIDAuMDA1NDA1LCAwLjAwNTQwNCIsIFwKLSAgICAgICAgICAiMC4wMDUzNzksIDAuMDA1NDI3LCAwLjAwNTQyNCwgMC4wMDU0MjEsIDAuMDA1NDE4LCAwLjAwNTQxNSwgMC4wMDU0MTUiLCBcCi0gICAgICAgICAgIjAuMDA1MzksIDAuMDA1NDM4LCAwLjAwNTQzNiwgMC4wMDU0MzIsIDAuMDA1NDI5LCAwLjAwNTQyNywgMC4wMDU0MjYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDU1ODcsIDAuMDA1NjM5LCAwLjAwNTY0NSwgMC4wMDU2NDgsIDAuMDA1NjQ5LCAwLjAwNTY1MSwgMC4wMDU2NTEiLCBcCi0gICAgICAgICAgIjAuMDA1NTcyLCAwLjAwNTYyNCwgMC4wMDU2MywgMC4wMDU2MzUsIDAuMDA1NjM2LCAwLjAwNTYzNywgMC4wMDU2MzYiLCBcCi0gICAgICAgICAgIjAuMDA1NTcsIDAuMDA1NjIzLCAwLjAwNTYyOSwgMC4wMDU2MzMsIDAuMDA1NjM0LCAwLjAwNTYzNSwgMC4wMDU2MzUiLCBcCi0gICAgICAgICAgIjAuMDA1NTc4LCAwLjAwNTYzMSwgMC4wMDU2MzcsIDAuMDA1NjQsIDAuMDA1NjQsIDAuMDA1NjQyLCAwLjAwNTY0MyIsIFwKLSAgICAgICAgICAiMC4wMDU1OTMsIDAuMDA1NjQ1LCAwLjAwNTY1MSwgMC4wMDU2NTQsIDAuMDA1NjU1LCAwLjAwNTY1NiwgMC4wMDU2NTciLCBcCi0gICAgICAgICAgIjAuMDA1NjA5LCAwLjAwNTY2MSwgMC4wMDU2NjcsIDAuMDA1NjcsIDAuMDA1NjcyLCAwLjAwNTY3MywgMC4wMDU2NzMiLCBcCi0gICAgICAgICAgIjAuMDA1NjMyLCAwLjAwNTY4NSwgMC4wMDU2OTEsIDAuMDA1NjkzLCAwLjAwNTY5NSwgMC4wMDU2OTYsIDAuMDA1Njk2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUk4iOwotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNTc3MywgMC4wMDU4MiwgMC4wMDU4MjYsIDAuMDA1ODI4LCAwLjAwNTgyOCwgMC4wMDU4MzEsIDAuMDA1ODMxIiwgXAotICAgICAgICAgICIwLjAwNTc1MiwgMC4wMDU4MDMsIDAuMDA1ODA5LCAwLjAwNTgxMiwgMC4wMDU4MTMsIDAuMDA1ODEzLCAwLjAwNTgxNSIsIFwKLSAgICAgICAgICAiMC4wMDU3MjgsIDAuMDA1Nzg1LCAwLjAwNTc5MywgMC4wMDU3OTcsIDAuMDA1Nzk5LCAwLjAwNTgsIDAuMDA1ODAxIiwgXAotICAgICAgICAgICIwLjAwNTcxMywgMC4wMDU3NzQsIDAuMDA1NzgzLCAwLjAwNTc4OCwgMC4wMDU3OSwgMC4wMDU3OTIsIDAuMDA1NzkzIiwgXAotICAgICAgICAgICIwLjAwNTcwNiwgMC4wMDU3NjksIDAuMDA1Nzc5LCAwLjAwNTc4NCwgMC4wMDU3ODcsIDAuMDA1Nzg5LCAwLjAwNTc5IiwgXAotICAgICAgICAgICIwLjAwNTcwMSwgMC4wMDU3NjQsIDAuMDA1Nzc2LCAwLjAwNTc4MiwgMC4wMDU3ODYsIDAuMDA1Nzg4LCAwLjAwNTc4OSIsIFwKLSAgICAgICAgICAiMC4wMDU3MDUsIDAuMDA1NzY2LCAwLjAwNTc3OCwgMC4wMDU3ODQsIDAuMDA1Nzg5LCAwLjAwNTc5MSwgMC4wMDU3OTMiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfcG93ZXIoc2NhbGFyKSB7Ci0gICAgICAgIHZhbHVlcygiMCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUU4pICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC41MjQ3Mjc7Ci0gICAgZnVuY3Rpb24gOiAiUUJJTlQiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5vbl91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcmlzaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE2MTc1NCwgMC4yNjM0LCAwLjM0NDg4OSwgMC40NDY0OTYsIDAuNTQ4NDYzLCAwLjY1MDE5MiwgMC43NTE5NzMiLCBcCi0gICAgICAgICAgIjAuMTcxOTU2LCAwLjI3MzU1LCAwLjM1NTAzNCwgMC40NTY3NjYsIDAuNTU4NTYsIDAuNjYwMzM4LCAwLjc2MjExNyIsIFwKLSAgICAgICAgICAiMC4xODQ3MjgsIDAuMjg2MzIsIDAuMzY3ODE0LCAwLjQ2OTUzOSwgMC41NzEzMzIsIDAuNjczMTEsIDAuNzc0ODg5IiwgXAotICAgICAgICAgICIwLjE5NjYzOCwgMC4yOTgyNiwgMC4zNzk3MjQsIDAuNDgxNDQzLCAwLjU4MzIyNiwgMC42ODUwMTgsIDAuNzg2Nzk3IiwgXAotICAgICAgICAgICIwLjIwNzExOSwgMC4zMDg3OTIsIDAuMzkwMjU2LCAwLjQ5MTk4NCwgMC41OTM3NjMsIDAuNjk1NTU1LCAwLjc5NzMzMyIsIFwKLSAgICAgICAgICAiMC4yMjE4MzIsIDAuMzIzNDgsIDAuNDA0OTQxLCAwLjUwNjY2OSwgMC42MDg0NDksIDAuNzEwMjQyLCAwLjgxMjAxOCIsIFwKLSAgICAgICAgICAiMC4yMzMxLCAwLjMzNDc3MywgMC40MTYyMTgsIDAuNTE4MDMxLCAwLjYxOTgwMiwgMC43MjE1MzgsIDAuODIzMzE3Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1MTA3NSwgMC4yNTkwMjksIDAuNDI2NDA3LCAwLjYzNTg0NCwgMC44NDYwODUsIDEuMDU2NDYsIDEuMjY4MDYiLCBcCi0gICAgICAgICAgIjAuMDUxMDY3LCAwLjI1OTAzLCAwLjQyNjE0MSwgMC42MzcwODQsIDAuODQ2NTI1LCAxLjA1NzI2LCAxLjI2NzM3IiwgXAotICAgICAgICAgICIwLjA1MTA2NSwgMC4yNTkwMjcsIDAuNDI2NDA2LCAwLjYzNzA5LCAwLjg0NjUxNywgMS4wNTcyNiwgMS4yNjczOCIsIFwKLSAgICAgICAgICAiMC4wNTEwNjQsIDAuMjU4NDc3LCAwLjQyNjM5OCwgMC42MzcxMTYsIDAuODQ3MjE3LCAxLjA1NjQyLCAxLjI2ODA3IiwgXAotICAgICAgICAgICIwLjA1MTAwNiwgMC4yNTg0OTQsIDAuNDI2NDA1LCAwLjYzNzAyMSwgMC44NDcyMjcsIDEuMDU2MzcsIDEuMjY4MDQiLCBcCi0gICAgICAgICAgIjAuMDUxMDcyLCAwLjI1ODQ5LCAwLjQyNjQwNiwgMC42MzcwMjksIDAuODQ3MjEsIDEuMDU3MjQsIDEuMjY4MDQiLCBcCi0gICAgICAgICAgIjAuMDUxMDI1LCAwLjI1ODQ5MywgMC40MjYxOTQsIDAuNjM2MDA2LCAwLjg0NjIxNiwgMS4wNTY0OSwgMS4yNjgwMyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNzM5MDgsIDAuMjc3MjQsIDAuMzYwMTA4LCAwLjQ2MzY5OCwgMC41NjczNzYsIDAuNjcxMDQyLCAwLjc3NDUzMyIsIFwKLSAgICAgICAgICAiMC4xODQxMzEsIDAuMjg3NDg2LCAwLjM3MDM0MywgMC40NzM5NTEsIDAuNTc3NjQ0LCAwLjY4MTE4OSwgMC43ODQ3ODIiLCBcCi0gICAgICAgICAgIjAuMTk2ODMsIDAuMzAwMjExLCAwLjM4MzA4MSwgMC40ODY2NzMsIDAuNTkwMzQ5LCAwLjY5MzkxMiwgMC43OTc1MSIsIFwKLSAgICAgICAgICAiMC4yMDg1ODksIDAuMzExOSwgMC4zOTQ3NjQsIDAuNDk4MzU1LCAwLjYwMjAzNCwgMC43MDU2NTMsIDAuODA5MTk0IiwgXAotICAgICAgICAgICIwLjIxODY5NCwgMC4zMjIwMTEsIDAuNDA0ODg5LCAwLjUwODQ3NywgMC42MTIxNiwgMC43MTU3MDksIDAuODE5MzExIiwgXAotICAgICAgICAgICIwLjIzMzIwOSwgMC4zMzY1MTYsIDAuNDE5MzksIDAuNTIyOTgyLCAwLjYyNjY1NCwgMC43MzAyMTIsIDAuODMzODU2IiwgXAotICAgICAgICAgICIwLjI0NDEyMiwgMC4zNDc0ODgsIDAuNDMwMzQyLCAwLjUzMzk0NSwgMC42Mzc2NDQsIDAuNzQxMTg3LCAwLjg0NDc1OCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTE1ODUsIDAuMjU4NTc0LCAwLjQyNjc1NiwgMC42MzYxNDgsIDAuODQ1NDE0LCAxLjA1NDkxLCAxLjI2NzEzIiwgXAotICAgICAgICAgICIwLjA1MTU5LCAwLjI1ODY3MiwgMC40MjY2NzksIDAuNjM2MTU0LCAwLjg0NTI3LCAxLjA1NzExLCAxLjI2NTY1IiwgXAotICAgICAgICAgICIwLjA1MTU4MywgMC4yNTg1NjQsIDAuNDI2NzQzLCAwLjYzNjE1MiwgMC44NDU0MTIsIDEuMDU3MTEsIDEuMjY3MTIiLCBcCi0gICAgICAgICAgIjAuMDUxNjIzLCAwLjI1ODU2NywgMC40MjY3MzIsIDAuNjM2MTQsIDAuODQ1NDA5LCAxLjA1NTIsIDEuMjY3MTEiLCBcCi0gICAgICAgICAgIjAuMDUxNTgyLCAwLjI1ODU2OSwgMC40MjYwMzQsIDAuNjM2MTY1LCAwLjg0NTMwNSwgMS4wNTcxLCAxLjI2NzEiLCBcCi0gICAgICAgICAgIjAuMDUxNjA3LCAwLjI1ODU2NiwgMC40MjY3NTcsIDAuNjM2MTc1LCAwLjg0NTQwMSwgMS4wNTcxLCAxLjI2NTIzIiwgXAotICAgICAgICAgICIwLjA1MTYwOCwgMC4yNTg2ODMsIDAuNDI1OTc3LCAwLjYzNjEzMSwgMC44NDUyNTQsIDEuMDU3MSwgMS4yNjcwMyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcHJlc2V0OwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODUxODIsIDAuMTg2ODA4LCAwLjI2ODIyMSwgMC4zNzAwMDYsIDAuNDcxODEzLCAwLjU3MzY0OCwgMC42NzUzOTciLCBcCi0gICAgICAgICAgIjAuMDk1MTI5LCAwLjE5Njc1OCwgMC4yNzgxNjEsIDAuMzc5OTUyLCAwLjQ4MTgxNCwgMC41ODM1OTIsIDAuNjg1MzQ0IiwgXAotICAgICAgICAgICIwLjEwNzQ3LCAwLjIwOTA2OCwgMC4yOTA0NzksIDAuMzkyMjYyLCAwLjQ5NDA0NSwgMC41OTU5MzMsIDAuNjk3NjUzIiwgXAotICAgICAgICAgICIwLjExOTQyOCwgMC4yMjEwMywgMC4zMDI0NDgsIDAuNDA0MjMxLCAwLjUwNjAwOCwgMC42MDc4NywgMC43MDk2MTMiLCBcCi0gICAgICAgICAgIjAuMTI5ODY3LCAwLjIzMTM4NCwgMC4zMTI3OTIsIDAuNDE0NTczLCAwLjUxNjM0OSwgMC42MTgyMjksIDAuNzE5OTU0IiwgXAotICAgICAgICAgICIwLjE0NDU2OCwgMC4yNDYwMzIsIDAuMzI3NDE5LCAwLjQyOTIyNywgMC41MzEwMDYsIDAuNjMyODA2LCAwLjczNDU1NSIsIFwKLSAgICAgICAgICAiMC4xNTU2ODgsIDAuMjU3MDc4LCAwLjMzODQ2OCwgMC40NDAyNTEsIDAuNTQyMDIxLCAwLjY0Mzg5OSwgMC43NDU2MiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTEwOTEsIDAuMjU4OTE3LCAwLjQyNjk2OCwgMC42MzY5NTIsIDAuODQ3Mzc1LCAxLjA1NzczLCAxLjI2Nzg1IiwgXAotICAgICAgICAgICIwLjA1MTA5MywgMC4yNTg4NDcsIDAuNDI2OTI3LCAwLjYzNjk4OSwgMC44NDcyMzQsIDEuMDU3NzEsIDEuMjY3NzkiLCBcCi0gICAgICAgICAgIjAuMDUxMTA3LCAwLjI1ODg2NywgMC40MjY4NTMsIDAuNjM2NDM2LCAwLjg0NzI5NSwgMS4wNTc3NywgMS4yNjc3NSIsIFwKLSAgICAgICAgICAiMC4wNTEwOTYsIDAuMjU4ODA4LCAwLjQyNjUyOCwgMC42MzYzODgsIDAuODQ3MjMyLCAxLjA1NzY5LCAxLjI2Nzc2IiwgXAotICAgICAgICAgICIwLjA1MTIwNSwgMC4yNTg4NTUsIDAuNDI2ODU2LCAwLjYzNzAzOCwgMC44NDcyNjcsIDEuMDU3NzYsIDEuMjY3NzIiLCBcCi0gICAgICAgICAgIjAuMDUxMjkxLCAwLjI1ODg4NSwgMC40MjY4NzMsIDAuNjM3MTE1LCAwLjg0NzM0MywgMS4wNTc0OSwgMS4yNjc1NyIsIFwKLSAgICAgICAgICAiMC4wNTE1OTEsIDAuMjU4ODU2LCAwLjQyNjk0MywgMC42MzcwMiwgMC44NDcxODEsIDEuMDU3NDksIDEuMjY3NTUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1NTg3LCAwLjAwNTYzOSwgMC4wMDU2NDUsIDAuMDA1NjQ4LCAwLjAwNTY0OSwgMC4wMDU2NTEsIDAuMDA1NjUxIiwgXAotICAgICAgICAgICIwLjAwNTU3MiwgMC4wMDU2MjQsIDAuMDA1NjMsIDAuMDA1NjM1LCAwLjAwNTYzNiwgMC4wMDU2MzcsIDAuMDA1NjM2IiwgXAotICAgICAgICAgICIwLjAwNTU3LCAwLjAwNTYyMywgMC4wMDU2MjksIDAuMDA1NjMzLCAwLjAwNTYzNCwgMC4wMDU2MzUsIDAuMDA1NjM1IiwgXAotICAgICAgICAgICIwLjAwNTU3OCwgMC4wMDU2MzEsIDAuMDA1NjM3LCAwLjAwNTY0LCAwLjAwNTY0LCAwLjAwNTY0MiwgMC4wMDU2NDMiLCBcCi0gICAgICAgICAgIjAuMDA1NTkzLCAwLjAwNTY0NSwgMC4wMDU2NTEsIDAuMDA1NjU0LCAwLjAwNTY1NSwgMC4wMDU2NTYsIDAuMDA1NjU3IiwgXAotICAgICAgICAgICIwLjAwNTYwOSwgMC4wMDU2NjEsIDAuMDA1NjY3LCAwLjAwNTY3LCAwLjAwNTY3MiwgMC4wMDU2NzMsIDAuMDA1NjczIiwgXAotICAgICAgICAgICIwLjAwNTYzMiwgMC4wMDU2ODUsIDAuMDA1NjkxLCAwLjAwNTY5MywgMC4wMDU2OTUsIDAuMDA1Njk2LCAwLjAwNTY5NiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNTM4NSwgMC4wMDU0MjksIDAuMDA1NDI2LCAwLjAwNTQyMywgMC4wMDU0MjEsIDAuMDA1NDE5LCAwLjAwNTQxOCIsIFwKLSAgICAgICAgICAiMC4wMDUzNywgMC4wMDU0MTQsIDAuMDA1NDExLCAwLjAwNTQwOCwgMC4wMDU0MDYsIDAuMDA1NDA0LCAwLjAwNTQwMiIsIFwKLSAgICAgICAgICAiMC4wMDUzNjEsIDAuMDA1NDA2LCAwLjAwNTQwMywgMC4wMDU0LCAwLjAwNTM5NywgMC4wMDUzOTUsIDAuMDA1Mzk0IiwgXAotICAgICAgICAgICIwLjAwNTM2MSwgMC4wMDU0MDYsIDAuMDA1NDA0LCAwLjAwNTQsIDAuMDA1Mzk4LCAwLjAwNTM5NiwgMC4wMDUzOTQiLCBcCi0gICAgICAgICAgIjAuMDA1MzcsIDAuMDA1NDE2LCAwLjAwNTQxMywgMC4wMDU0MSwgMC4wMDU0MDgsIDAuMDA1NDA1LCAwLjAwNTQwNCIsIFwKLSAgICAgICAgICAiMC4wMDUzNzksIDAuMDA1NDI3LCAwLjAwNTQyNCwgMC4wMDU0MjEsIDAuMDA1NDE4LCAwLjAwNTQxNSwgMC4wMDU0MTUiLCBcCi0gICAgICAgICAgIjAuMDA1MzksIDAuMDA1NDM4LCAwLjAwNTQzNiwgMC4wMDU0MzIsIDAuMDA1NDI5LCAwLjAwNTQyNywgMC4wMDU0MjYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1NzczLCAwLjAwNTgyLCAwLjAwNTgyNiwgMC4wMDU4MjgsIDAuMDA1ODI4LCAwLjAwNTgzMSwgMC4wMDU4MzEiLCBcCi0gICAgICAgICAgIjAuMDA1NzUyLCAwLjAwNTgwMywgMC4wMDU4MDksIDAuMDA1ODEyLCAwLjAwNTgxMywgMC4wMDU4MTMsIDAuMDA1ODE1IiwgXAotICAgICAgICAgICIwLjAwNTcyOCwgMC4wMDU3ODUsIDAuMDA1NzkzLCAwLjAwNTc5NywgMC4wMDU3OTksIDAuMDA1OCwgMC4wMDU4MDEiLCBcCi0gICAgICAgICAgIjAuMDA1NzEzLCAwLjAwNTc3NCwgMC4wMDU3ODMsIDAuMDA1Nzg4LCAwLjAwNTc5LCAwLjAwNTc5MiwgMC4wMDU3OTMiLCBcCi0gICAgICAgICAgIjAuMDA1NzA2LCAwLjAwNTc2OSwgMC4wMDU3NzksIDAuMDA1Nzg0LCAwLjAwNTc4NywgMC4wMDU3ODksIDAuMDA1NzkiLCBcCi0gICAgICAgICAgIjAuMDA1NzAxLCAwLjAwNTc2NCwgMC4wMDU3NzYsIDAuMDA1NzgyLCAwLjAwNTc4NiwgMC4wMDU3ODgsIDAuMDA1Nzg5IiwgXAotICAgICAgICAgICIwLjAwNTcwNSwgMC4wMDU3NjYsIDAuMDA1Nzc4LCAwLjAwNTc4NCwgMC4wMDU3ODksIDAuMDA1NzkxLCAwLjAwNTc5MyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihzY2FsYXIpIHsKLSAgICAgICAgdmFsdWVzKCIwIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihSTikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNDE7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxMzA3NjU7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNDE7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNTUzLCAwLjAwMDU1MywgMC4wMDA1NTIsIDAuMDAwNTUyLCAwLjAwMDU1MiwgMC4wMDA1NTIsIDAuMDAwNTUyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNTYzLCAwLjAwMDU1NSwgMC4wMDA1NTUsIDAuMDAwNTU1LCAwLjAwMDU1NCwgMC4wMDA1NTUsIDAuMDAwNTU1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRCI7Ci0gICAgICBzZGZfY29uZCA6ICJEID09IDEnYjAiOwotICAgICAgZmFsbF9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDg2MDc4LCAwLjA5NTQyMywgMC4xMDc0NywgMC4xMTk0MjgsIDAuMTI5ODY3LCAwLjE0NDU2OCwgMC4xNTU2ODgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiByZWNvdmVyeV9yaXNpbmc7Ci0gICAgICB3aGVuIDogIkQiOwotICAgICAgc2RmX2NvbmQgOiAiRCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChyZWNvdmVyeV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDMxMjUsIC0wLjA0MjUsIC0wLjA1NSwgLTAuMDY3NSwgLTAuMDgsIC0wLjA5LCAtMC4xMDUiLCBcCi0gICAgICAgICAgIi0wLjAzODc1LCAtMC4wNSwgLTAuMDYyNSwgLTAuMDc1LCAtMC4wODEyNSwgLTAuMDk3NSwgLTAuMTA2MjUiLCBcCi0gICAgICAgICAgIi0wLjAzMjUsIC0wLjA0Mzc1LCAtMC4wNjI1LCAtMC4wNzUsIC0wLjA4MTI1LCAtMC4wOTc1LCAtMC4xMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDI2MjUsIC0wLjAzNzUsIC0wLjA1LCAtMC4wNjI1LCAtMC4wNzUsIC0wLjA5MTI1LCAtMC4xIiwgXAotICAgICAgICAgICItMC4wMTM3NSwgLTAuMDI1LCAtMC4wMzc1LCAtMC4wNSwgLTAuMDYyNSwgLTAuMDc4NzUsIC0wLjA4NzUiLCBcCi0gICAgICAgICAgIjAuMDE1LCAwLjAwMzc1LCAtMC4wMTUsIC0wLjAyNzUsIC0wLjA0LCAtMC4wNTYyNSwgLTAuMDY1IiwgXAotICAgICAgICAgICIwLjAzNjI1LCAwLjAyNSwgMC4wMTI1LCAwLCAtMC4wMTI1LCAtMC4wMzUsIC0wLjA0Mzc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogcmVtb3ZhbF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIkQiOwotICAgICAgc2RmX2NvbmQgOiAiRCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChyZW1vdmFsX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1LCAwLjA2MTI1LCAwLjA3Mzc1LCAwLjA4NjI1LCAwLjA5ODc1LCAwLjExNSwgMC4xMjM3NSIsIFwKLSAgICAgICAgICAiMC4wNTc1LCAwLjA2ODc1LCAwLjA4MTI1LCAwLjA5Mzc1LCAwLjEwNjI1LCAwLjExNjI1LCAwLjEzMTI1IiwgXAotICAgICAgICAgICIwLjA2Mzc1LCAwLjA3NSwgMC4wODc1LCAwLjEsIDAuMTEyNSwgMC4xMjI1LCAwLjEzNzUiLCBcCi0gICAgICAgICAgIjAuMDcsIDAuMDgxMjUsIDAuMDkzNzUsIDAuMTA2MjUsIDAuMTE4NzUsIDAuMTI4NzUsIDAuMTM3NSIsIFwKLSAgICAgICAgICAiMC4wNzYyNSwgMC4wODc1LCAwLjEsIDAuMTEyNSwgMC4xMTg3NSwgMC4xMzUsIDAuMTQzNzUiLCBcCi0gICAgICAgICAgIjAuMDg1LCAwLjA5NjI1LCAwLjEwODc1LCAwLjEyMTI1LCAwLjEyNzUsIDAuMTQzNzUsIDAuMTUyNSIsIFwKLSAgICAgICAgICAiMC4wODg3NSwgMC4xLCAwLjExMjUsIDAuMTI1LCAwLjEzMTI1LCAwLjE0NzUsIDAuMTU2MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IERGRlNSSFFYNCAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKERGRlNSSFFYNCkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjYwOTk0MjsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBmZiAoTjM1LFFCSU5UKSB7Ci0gICAgbmV4dF9zdGF0ZSA6ICJEIjsKLSAgICBjbG9ja2VkX29uIDogIkNLIjsKLSAgICBjbGVhciA6ICIoIVJOKSI7Ci0gICAgcHJlc2V0IDogIighU04pIjsKLSAgICBjbGVhcl9wcmVzZXRfdmFyMSA6IEg7Ci0gIH0KLSAgcGluKENLKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA1NzIwMjU7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNTcxODY2OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDU3MjAyNTsKLSAgICBjbG9jayA6IHRydWU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzNDQ3LCAwLjAwMzQyNSwgMC4wMDM0MTEsIDAuMDAzNDExLCAwLjAwMzQyMSwgMC4wMDM0NDYsIDAuMDAzNDYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDkxMjYsIDAuMDA5MDk5LCAwLjAwOTA5MywgMC4wMDkwOCwgMC4wMDkwODksIDAuMDA5MTA4LCAwLjAwOTEzMSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQmUk4mU04iOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1JOX0VRXzFfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjE0NzEwMiwgMC4xNTczMjgsIDAuMTcwMTczLCAwLjE4Mjg3NiwgMC4xOTQ1ODUsIDAuMjExMTkyLCAwLjIyNDEyMSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMTI5NTA5LCAwLjEzOTQyMSwgMC4xNTE5MzUsIDAuMTY0MDI3LCAwLjE3NTIwOSwgMC4xOTAxNTksIDAuMjAyMDUzIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihEKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA3NzkyNTU7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNzc2NTY4OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDc3OTI1NTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDM4NzksIDAuMDAzODQ1LCAwLjAwMzgyNywgMC4wMDM4MTYsIDAuMDAzODExLCAwLjAwMzgxNiwgMC4wMDM4MTkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDM3MiwgMC4wMDM3LCAwLjAwMzY4NywgMC4wMDM2NzksIDAuMDAzNjczLCAwLjAwMzY3MiwgMC4wMDM2NzMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiUk4mU04iOwotICAgICAgc2RmX2NvbmQgOiAiUk5fRVFfMV9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAxMjUsIC0wLjAwNzUsIDAuMDA1LCAwLjAxMTI1LCAwLjAxNzUsIDAuMDIxMjUsIDAuMDMiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMCwgMC4wMDYyNSwgMC4wMTYyNSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLjAwMzc1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzNzUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwMjUsIDAiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wNDM3NSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAwODc1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDY1LCAtMC4wNTM3NSwgLTAuMDQxMjUsIC0wLjAzNSwgLTAuMDI4NzUsIC0wLjAyNSwgLTAuMDE2MjUiLCBcCi0gICAgICAgICAgIi0wLjA3Mzc1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAyNzUsIC0wLjAyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDMxMjUsIDAuMDQyNSwgMC4wNTUsIDAuMDY3NSwgMC4wNzM3NSwgMC4wOSwgMC4xMDUiLCBcCi0gICAgICAgICAgIjAuMDIsIDAuMDMxMjUsIDAuMDQzNzUsIDAuMDU2MjUsIDAuMDY4NzUsIDAuMDg1LCAwLjA5Mzc1IiwgXAotICAgICAgICAgICIwLjAxMzc1LCAwLjAyNSwgMC4wMzc1LCAwLjA1LCAwLjA2MjUsIDAuMDcyNSwgMC4wODc1IiwgXAotICAgICAgICAgICIwLjAwNzUsIDAuMDE4NzUsIDAuMDMxMjUsIDAuMDQzNzUsIDAuMDU2MjUsIDAuMDY2MjUsIDAuMDgxMjUiLCBcCi0gICAgICAgICAgIjAuMDAxMjUsIDAuMDEyNSwgMC4wMjUsIDAuMDM3NSwgMC4wNSwgMC4wNjYyNSwgMC4wNzUiLCBcCi0gICAgICAgICAgIi0wLjAwMjUsIDAuMDA4NzUsIDAuMDIxMjUsIDAuMDMzNzUsIDAuMDQsIDAuMDU2MjUsIDAuMDY1IiwgXAotICAgICAgICAgICItMC4wMDUsIDAsIDAuMDEyNSwgMC4wMjUsIDAuMDM3NSwgMC4wNTM3NSwgMC4wNjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJSTiZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJSTl9FUV8xX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY4NzUsIDAuMDU3NSwgMC4wNDUsIDAuMDMyNSwgMC4wMiwgMC4wMDM3NSwgLTAuMDA1IiwgXAotICAgICAgICAgICIwLjA4LCAwLjA2ODc1LCAwLjA1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDE1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICIwLjA5MjUsIDAuMDc1LCAwLjA2MjUsIDAuMDUsIDAuMDM3NSwgMC4wMjc1LCAwLjAxODc1IiwgXAotICAgICAgICAgICIwLjA5ODc1LCAwLjA4NzUsIDAuMDc1LCAwLjA1NjI1LCAwLjA1LCAwLjAzMzc1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiMC4xMTEyNSwgMC4wOTM3NSwgMC4wODEyNSwgMC4wNjg3NSwgMC4wNTYyNSwgMC4wNDYyNSwgMC4wMzc1IiwgXAotICAgICAgICAgICIwLjEyMTI1LCAwLjExLCAwLjA5MTI1LCAwLjA3ODc1LCAwLjA3MjUsIDAuMDU2MjUsIDAuMDQ3NSIsIFwKLSAgICAgICAgICAiMC4xMywgMC4xMTg3NSwgMC4xMDYyNSwgMC4wOTM3NSwgMC4wODEyNSwgMC4wNjUsIDAuMDU2MjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzc1LCAwLjAyNjI1LCAwLjAxMzc1LCAwLjAwMTI1LCAtMC4wMTEyNSwgLTAuMDI3NSwgLTAuMDQyNSIsIFwKLSAgICAgICAgICAiMC4wNDg3NSwgMC4wMzc1LCAwLjAyNSwgMC4wMDYyNSwgLTAuMDA2MjUsIC0wLjAyMjUsIC0wLjAzNzUiLCBcCi0gICAgICAgICAgIjAuMDU1LCAwLjA0Mzc1LCAwLjAzMTI1LCAwLjAxODc1LCAwLjAwNjI1LCAtMC4wMSwgLTAuMDI1IiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDU2MjUsIDAuMDQzNzUsIDAuMDI1LCAwLjAxMjUsIC0wLjAwMzc1LCAtMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4wNzM3NSwgMC4wNjI1LCAwLjA1LCAwLjAzNzUsIDAuMDI1LCAwLjAwMjUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICIwLjA4Mzc1LCAwLjA3MjUsIDAuMDYsIDAuMDQ3NSwgMC4wMzUsIDAuMDE4NzUsIDAuMDAzNzUiLCBcCi0gICAgICAgICAgIjAuMDkyNSwgMC4wODEyNSwgMC4wNjg3NSwgMC4wNTYyNSwgMC4wNDM3NSwgMC4wMjEyNSwgMC4wMTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihRKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDEuMDMxMjE7Ci0gICAgZnVuY3Rpb24gOiAiTjM1IjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBub25fdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJpc2luZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEzNDMyOCwgMC4yMDY1NjMsIDAuMjc3NTE3LCAwLjMyODE4OCwgMC40MDkyNjEsIDAuNDgwMTg1LCAwLjU4MTU1MSIsIFwKLSAgICAgICAgICAiMC4xNDQ0NTksIDAuMjE2NzQxLCAwLjI4NzY4NywgMC4zMzgzNjMsIDAuNDE5NDE4LCAwLjQ5MDM1OCwgMC41OTE3MDciLCBcCi0gICAgICAgICAgIjAuMTU3MjkxLCAwLjIyOTUyMSwgMC4zMDA0OTIsIDAuMzUxMTUzLCAwLjQzMjIyNCwgMC41MDMxNDcsIDAuNjA0NTIiLCBcCi0gICAgICAgICAgIjAuMTY5NzY1LCAwLjI0MTk5NiwgMC4zMTI5NjUsIDAuMzYzNjI3LCAwLjQ0NDY5OCwgMC41MTU2MjIsIDAuNjE2OTk1IiwgXAotICAgICAgICAgICIwLjE4MTQ2NywgMC4yNTM3MDIsIDAuMzI0NjUzLCAwLjM3NTMwOCwgMC40NTY0LCAwLjUyNzMyNCwgMC42Mjg2NjYiLCBcCi0gICAgICAgICAgIjAuMTk3Njg4LCAwLjI2OTkxNiwgMC4zNDA4ODYsIDAuMzkxNTQ4LCAwLjQ3MjYxOCwgMC41NDM1NDIsIDAuNjQ0OTE1IiwgXAotICAgICAgICAgICIwLjIxMDg3NCwgMC4yODMxMTQsIDAuMzU0MDc1LCAwLjQwNDc0NiwgMC40ODU4MjEsIDAuNTU2NzQ2LCAwLjY1ODEwNyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzMjQ4MiwgMC4xNzM5MzMsIDAuMzE5NjQxLCAwLjQyNDA5OSwgMC41OTE5LCAwLjczODMxNCwgMC45NDY2NDMiLCBcCi0gICAgICAgICAgIjAuMDMyNDgxLCAwLjE3Mzk5OSwgMC4zMTk2NDMsIDAuNDIzOTYsIDAuNTkxNDE4LCAwLjczODM1NSwgMC45NDY3NDIiLCBcCi0gICAgICAgICAgIjAuMDMyNDE5LCAwLjE3MzkzMSwgMC4zMTk2NTYsIDAuNDIzMzg0LCAwLjU5MTg5MiwgMC43MzgzMDEsIDAuOTQ2NjYiLCBcCi0gICAgICAgICAgIjAuMDMyNDIsIDAuMTc0MDAzLCAwLjMxOTY1NCwgMC40MjMzODYsIDAuNTkxODk0LCAwLjczODMwMywgMC45NDY2NjEiLCBcCi0gICAgICAgICAgIjAuMDMyNDY4LCAwLjE3MzkyNywgMC4zMTk2NjksIDAuNDIzNDc5LCAwLjU5MTg5MSwgMC43MzgyODksIDAuOTQ2Njk0IiwgXAotICAgICAgICAgICIwLjAzMjQwNywgMC4xNzM5OSwgMC4zMTk2NTUsIDAuNDIzNDMxLCAwLjU5MTg5LCAwLjczODMwMiwgMC45NDY2NjMiLCBcCi0gICAgICAgICAgIjAuMDMyMzQzLCAwLjE3Mzk5MywgMC4zMTk2NCwgMC40MjQwOCwgMC41OTE5MDUsIDAuNzM4MzI3LCAwLjk0Njc1MSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE0NzEwMiwgMC4yMjE3MDgsIDAuMjk1MDcyLCAwLjM0NzQ1MiwgMC40MzEyNjEsIDAuNTA0NjIxLCAwLjYwOTQyMyIsIFwKLSAgICAgICAgICAiMC4xNTczMjgsIDAuMjMxOTUxLCAwLjMwNTMxMSwgMC4zNTc2ODksIDAuNDQxNDkyLCAwLjUxNDg1NCwgMC42MTk2NjgiLCBcCi0gICAgICAgICAgIjAuMTcwMTczLCAwLjI0NDc3LCAwLjMxODEzOSwgMC4zNzA1MTgsIDAuNDU0MzI1LCAwLjUyNzY2NSwgMC42MzI0MDkiLCBcCi0gICAgICAgICAgIjAuMTgyODc2LCAwLjI1NzQ4MSwgMC4zMzA4NTQsIDAuMzgzMjI1LCAwLjQ2NzAzMywgMC41NDAzOSwgMC42NDUyIiwgXAotICAgICAgICAgICIwLjE5NDU4NSwgMC4yNjkxOCwgMC4zNDI1NDksIDAuMzk0OTI4LCAwLjQ3ODczNSwgMC41NTIwNzcsIDAuNjU2ODM4IiwgXAotICAgICAgICAgICIwLjIxMTE5MiwgMC4yODU3OTMsIDAuMzU5MTU4LCAwLjQxMTU5NCwgMC40OTUzOTcsIDAuNTY4NzU4LCAwLjY3MzU3MiIsIFwKLSAgICAgICAgICAiMC4yMjQxMjEsIDAuMjk4NzMyLCAwLjM3MjEwNCwgMC40MjQ0NzgsIDAuNTA4MjksIDAuNTgxNjgsIDAuNjg2NDUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzE4ODgsIDAuMTc2Mzk1LCAwLjMyNDY5OCwgMC40MzA2MzYsIDAuNjAwNjk0LCAwLjc0ODg4OCwgMC45NjMzODYiLCBcCi0gICAgICAgICAgIjAuMDMxODk3LCAwLjE3NjQ3MywgMC4zMjQ0NCwgMC40MzA2MzUsIDAuNjAxNDYzLCAwLjc0ODg5MSwgMC45NjM0MDQiLCBcCi0gICAgICAgICAgIjAuMDMxOTkyLCAwLjE3NjQsIDAuMzI0NDQ4LCAwLjQzMDgyNCwgMC42MDA1NTUsIDAuNzQ5MzQzLCAwLjk2MzA4IiwgXAotICAgICAgICAgICIwLjAzMTg4NiwgMC4xNzYzOTUsIDAuMzI0NDY0LCAwLjQzMDYyNSwgMC42MDA2MiwgMC43NDg5MzYsIDAuOTYzMzg2IiwgXAotICAgICAgICAgICIwLjAzMTk5MSwgMC4xNzY0LCAwLjMyNDQ0OCwgMC40MzEzODQsIDAuNjAwNTY2LCAwLjc0OTM2NywgMC45NjE0NDIiLCBcCi0gICAgICAgICAgIjAuMDMxOTgsIDAuMTc2NCwgMC4zMjQ1NywgMC40MzA2MiwgMC42MDA0MjgsIDAuNzQ4Nzc2LCAwLjk2MzM5OSIsIFwKLSAgICAgICAgICAiMC4wMzE5NDYsIDAuMTc2NCwgMC4zMjQ0NTYsIDAuNDMwNjUyLCAwLjYwMDgyOSwgMC43NDg4ODksIDAuOTYzMzk0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiBjbGVhcjsKLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNzMxNzQsIDAuMjQ3NzYzLCAwLjMyMTEzMSwgMC4zNzM1MTUsIDAuNDU3MzM4LCAwLjUzMDY1MywgMC42MzU0NjgiLCBcCi0gICAgICAgICAgIjAuMTgyOTksIDAuMjU3NjMsIDAuMzMwOTgyLCAwLjM4MzM4NCwgMC40NjcxOTUsIDAuNTQwNTEsIDAuNjQ1MzA4IiwgXAotICAgICAgICAgICIwLjE5NTExNiwgMC4yNjk3MDMsIDAuMzQzMDcxLCAwLjM5NTQ1NSwgMC40NzkyNzIsIDAuNTUyNjEyLCAwLjY1NzQwOSIsIFwKLSAgICAgICAgICAiMC4yMDU4MTgsIDAuMjgwNDA4LCAwLjM1Mzc3OCwgMC40MDYxNjIsIDAuNDkwMDE3LCAwLjU2MzM3NCwgMC42NjgxMTUiLCBcCi0gICAgICAgICAgIjAuMjE0OTQxLCAwLjI4OTUyNiwgMC4zNjI4OTMsIDAuNDE1Mjc2LCAwLjQ5OTA4NSwgMC41NzI0NDgsIDAuNjc3MjM0IiwgXAotICAgICAgICAgICIwLjIyNzg1OSwgMC4zMDI0MjksIDAuMzc1Nzk0LCAwLjQyODIsIDAuNTEyMDA0LCAwLjU4NTMyNSwgMC42OTAwOTYiLCBcCi0gICAgICAgICAgIjAuMjM3OTY2LCAwLjMxMjY0NCwgMC4zODYwMzIsIDAuNDM4NCwgMC41MjIyMjcsIDAuNTk1NTk0LCAwLjcwMDM0NyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzMjE5NywgMC4xNzY0ODMsIDAuMzI1MTYyLCAwLjQzMTMyNCwgMC42MDE3MzIsIDAuNzUwNjU0LCAwLjk2MzQwMiIsIFwKLSAgICAgICAgICAiMC4wMzIxODcsIDAuMTc2NDE3LCAwLjMyNTE2NCwgMC40MzEyNzksIDAuNjAxNDIsIDAuNzUwNjI2LCAwLjk2MzI1NiIsIFwKLSAgICAgICAgICAiMC4wMzIxNTMsIDAuMTc2NDgzLCAwLjMyNTEzNSwgMC40MzEzMjksIDAuNjAxNzI5LCAwLjc1MDM3MywgMC45NjMzODIiLCBcCi0gICAgICAgICAgIjAuMDMyMTg0LCAwLjE3NjQ2MywgMC4zMjUxNTgsIDAuNDMxMzIyLCAwLjYwMTQwMiwgMC43NTA3MzEsIDAuOTYzMzgzIiwgXAotICAgICAgICAgICIwLjAzMjE2NSwgMC4xNzY0OTIsIDAuMzI1MTUsIDAuNDMxMzE0LCAwLjYwMTcyMiwgMC43NTA3MjUsIDAuOTYzMzc2IiwgXAotICAgICAgICAgICIwLjAzMjE2NSwgMC4xNzY0NjQsIDAuMzI1MTAzLCAwLjQzMTM5OCwgMC42MDA1NDUsIDAuNzUwMzU3LCAwLjk2MzQ4MiIsIFwKLSAgICAgICAgICAiMC4wMzIwODksIDAuMTc2NDA2LCAwLjMyNTA5NCwgMC40MzEzMTksIDAuNjAwNTMyLCAwLjc1MDcwMywgMC45NjM0MDEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiU04iOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHByZXNldDsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDk4MTYsIDAuMTgxODM3LCAwLjI1MjgwNiwgMC4zMDM0NzgsIDAuMzg0NjA5LCAwLjQ1NTU1NCwgMC41NTY4OTUiLCBcCi0gICAgICAgICAgIjAuMTE4OTg5LCAwLjE5MTAyMSwgMC4yNjE5ODgsIDAuMzEyNjc1LCAwLjM5MzgwOCwgMC40NjQ3MjQsIDAuNTY2MDY0IiwgXAotICAgICAgICAgICIwLjEyOTY0LCAwLjIwMTU4OCwgMC4yNzI1NDYsIDAuMzIzMjE5LCAwLjQwNDM1NCwgMC40NzUyNzYsIDAuNTc2NjIxIiwgXAotICAgICAgICAgICIwLjE0MTYxMiwgMC4yMTM1NDUsIDAuMjg0NTA2LCAwLjMzNTE3OSwgMC40MTYyOTcsIDAuNDg3MjI3LCAwLjU4ODU5NiIsIFwKLSAgICAgICAgICAiMC4xNTM2MDMsIDAuMjI1NDk5LCAwLjI5NjQ1OSwgMC4zNDcxMjksIDAuNDI4MjcyLCAwLjQ5OTE5NiwgMC42MDA1MzciLCBcCi0gICAgICAgICAgIjAuMTcwNzQ4LCAwLjI0MjY2NiwgMC4zMTM2MzIsIDAuMzY0MzA3LCAwLjQ0NTQ0OSwgMC41MTYyOTksIDAuNjE3Njk0IiwgXAotICAgICAgICAgICIwLjE4NDEyNiwgMC4yNTYwNTYsIDAuMzI3MDA4LCAwLjM3NzY4NiwgMC40NTg3OTMsIDAuNTI5NzYyLCAwLjYzMTA5OCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzMTYwMiwgMC4xNzM3NTksIDAuMzE5OTk1LCAwLjQyNDE1NSwgMC41OTIsIDAuNzM4ODA0LCAwLjk0Nzk2NSIsIFwKLSAgICAgICAgICAiMC4wMzE1ODMsIDAuMTczODA3LCAwLjMyMDAzLCAwLjQyNDc1MiwgMC41OTIyNzYsIDAuNzM4NjcyLCAwLjk0Nzk2NSIsIFwKLSAgICAgICAgICAiMC4wMzE2MDksIDAuMTczODA2LCAwLjMyMDAyMywgMC40MjQ3NTQsIDAuNTkyMjU3LCAwLjczODY4MywgMC45NDc5NDQiLCBcCi0gICAgICAgICAgIjAuMDMxNjAyLCAwLjE3Mzc5LCAwLjMxOTk0LCAwLjQyNDcwNiwgMC41OTIyNywgMC43Mzg2ODEsIDAuOTQ3OTQzIiwgXAotICAgICAgICAgICIwLjAzMTU0OCwgMC4xNzM3NzQsIDAuMzIwMDc1LCAwLjQyNDYzNSwgMC41OTIyNzMsIDAuNzM4NjY2LCAwLjk0Nzk0MSIsIFwKLSAgICAgICAgICAiMC4wMzE3MzksIDAuMTczODEyLCAwLjMxOTg5NiwgMC40MjQxMDEsIDAuNTkyMjQyLCAwLjczODY1NywgMC45NDc5ODMiLCBcCi0gICAgICAgICAgIjAuMDMxNzM2LCAwLjE3Mzc0OSwgMC4zMjAwMDQsIDAuNDI0NTM2LCAwLjU5MjA3OSwgMC43Mzg2NTEsIDAuOTQ3OTA0Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTUxNTk0LCAwLjIyNjI3LCAwLjI5OTYzNywgMC4zNTIwMTcsIDAuNDM1ODM0LCAwLjUwOTIwOSwgMC42MTM5NzUiLCBcCi0gICAgICAgICAgIjAuMTYwODcsIDAuMjM1NTMsIDAuMzA4OSwgMC4zNjEyODcsIDAuNDQ1MTA5LCAwLjUxODQ4MiwgMC42MjMyMjQiLCBcCi0gICAgICAgICAgIjAuMTcxNjE2LCAwLjI0NjI4NSwgMC4zMTk2NDQsIDAuMzcyMDMxLCAwLjQ1NTg1NCwgMC41MjkyMjcsIDAuNjMzOTciLCBcCi0gICAgICAgICAgIjAuMTgyMjE0LCAwLjI1Njc5MiwgMC4zMzAxNjIsIDAuMzgyNTQ1LCAwLjQ2NjM3MSwgMC41Mzk3NDMsIDAuNjQ0NDk0IiwgXAotICAgICAgICAgICIwLjE5Mjc2NywgMC4yNjczMzgsIDAuMzQwNzAyLCAwLjM5MzEwMiwgMC40NzY5MTEsIDAuNTUwMjM2LCAwLjY1NDk5MiIsIFwKLSAgICAgICAgICAiMC4yMDkyNTEsIDAuMjgzOTIsIDAuMzU3Mjg4LCAwLjQwOTY2OSwgMC40OTM0OTIsIDAuNTY2ODIyLCAwLjY3MTYxOCIsIFwKLSAgICAgICAgICAiMC4yMjMxOTUsIDAuMjk3ODExLCAwLjM3MTE4MSwgMC40MjM1NjIsIDAuNTA3Mzc2LCAwLjU4MDczMSwgMC42ODU0OTciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzIxMTksIDAuMTc2NDMyLCAwLjMyNTEzOCwgMC40MzE0NzYsIDAuNjAxNzE5LCAwLjc1MDc3NSwgMC45NjM0MzIiLCBcCi0gICAgICAgICAgIjAuMDMyMTYyLCAwLjE3NjQ0NywgMC4zMjUxNDEsIDAuNDMxNTU4LCAwLjYwMDYxMiwgMC43NTA3NDgsIDAuOTYzNDM2IiwgXAotICAgICAgICAgICIwLjAzMjEyOSwgMC4xNzY0MTUsIDAuMzI1MDkyLCAwLjQzMTU0MiwgMC42MDA0OTEsIDAuNzUwNzM0LCAwLjk2MzQxMiIsIFwKLSAgICAgICAgICAiMC4wMzIxMjEsIDAuMTc2NDc0LCAwLjMyNTE0LCAwLjQzMTI5MywgMC42MDE0MiwgMC43NTA3MTgsIDAuOTYzMzY1IiwgXAotICAgICAgICAgICIwLjAzMjEyOCwgMC4xNzY0NDksIDAuMzI1MTI2LCAwLjQzMTY4NCwgMC42MDA1NDcsIDAuNzQ5Njg4LCAwLjk2MzM4OSIsIFwKLSAgICAgICAgICAiMC4wMzIwOTYsIDAuMTc2NDEyLCAwLjMyNTExMSwgMC40MzE0NTIsIDAuNjAxNDksIDAuNzUwNTMsIDAuOTYzMzkyIiwgXAotICAgICAgICAgICIwLjAzMjE3MSwgMC4xNzY0MDgsIDAuMzI1MTAzLCAwLjQzMTQ2MywgMC42MDE2NzYsIDAuNzUwNjUsIDAuOTYyOTA0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDExODkxLCAwLjAxMjA0OCwgMC4wMTIwNzEsIDAuMDEyMDgsIDAuMDEyMDg0LCAwLjAxMjA4OSwgMC4wMTIwOTEiLCBcCi0gICAgICAgICAgIjAuMDExODY0LCAwLjAxMjAyMiwgMC4wMTIwNDcsIDAuMDEyMDU1LCAwLjAxMjA1OSwgMC4wMTIwNjIsIDAuMDEyMDY1IiwgXAotICAgICAgICAgICIwLjAxMTg1NSwgMC4wMTIwMDYsIDAuMDEyMDM2LCAwLjAxMjAzOSwgMC4wMTIwNDEsIDAuMDEyMDQ4LCAwLjAxMjA0NiIsIFwKLSAgICAgICAgICAiMC4wMTE4NDcsIDAuMDEyMDAyLCAwLjAxMjAyNSwgMC4wMTIwMzMsIDAuMDEyMDM5LCAwLjAxMjAzOCwgMC4wMTIwMzkiLCBcCi0gICAgICAgICAgIjAuMDExODQ5LCAwLjAxMjAwNSwgMC4wMTIwMjgsIDAuMDEyMDM1LCAwLjAxMjAzOCwgMC4wMTIwNDEsIDAuMDEyMDQzIiwgXAotICAgICAgICAgICIwLjAxMTg4LCAwLjAxMjAzNCwgMC4wMTIwNTcsIDAuMDEyMDY0LCAwLjAxMjA3LCAwLjAxMjA3MywgMC4wMTIwNzgiLCBcCi0gICAgICAgICAgIjAuMDExODczLCAwLjAxMjAzNSwgMC4wMTIwNiwgMC4wMTIwNjgsIDAuMDEyMDcsIDAuMDEyMDc1LCAwLjAxMjA3NyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDExNDM5LCAwLjAxMTY1LCAwLjAxMTY4MywgMC4wMTE2OTMsIDAuMDExNzAyLCAwLjAxMTcwNywgMC4wMTE3MTEiLCBcCi0gICAgICAgICAgIjAuMDExNDE0LCAwLjAxMTYyNCwgMC4wMTE2NTcsIDAuMDExNjY4LCAwLjAxMTY3NywgMC4wMTE2ODEsIDAuMDExNjg2IiwgXAotICAgICAgICAgICIwLjAxMTQwNywgMC4wMTE2MiwgMC4wMTE2NTQsIDAuMDExNjY0LCAwLjAxMTY3MywgMC4wMTE2NzgsIDAuMDExNjgyIiwgXAotICAgICAgICAgICIwLjAxMTQyLCAwLjAxMTYzMiwgMC4wMTE2NjUsIDAuMDExNjc1LCAwLjAxMTY4NCwgMC4wMTE2ODksIDAuMDExNjkzIiwgXAotICAgICAgICAgICIwLjAxMTQzMywgMC4wMTE2NDYsIDAuMDExNjc5LCAwLjAxMTY5LCAwLjAxMTY5OSwgMC4wMTE3MDQsIDAuMDExNzA4IiwgXAotICAgICAgICAgICIwLjAxMTQ5NiwgMC4wMTE3MDgsIDAuMDExNzQyLCAwLjAxMTc1MiwgMC4wMTE3NjIsIDAuMDExNzY2LCAwLjAxMTc3IiwgXAotICAgICAgICAgICIwLjAxMTQ5LCAwLjAxMTcwNCwgMC4wMTE3MzgsIDAuMDExNzQ4LCAwLjAxMTc1NywgMC4wMTE3NjIsIDAuMDExNzY3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUk4iOwotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEzOTMzLCAwLjAxNDE1NCwgMC4wMTQxOTEsIDAuMDE0MjAzLCAwLjAxNDIxMywgMC4wMTQyMTksIDAuMDE0MjIzIiwgXAotICAgICAgICAgICIwLjAxMzkxMSwgMC4wMTQxMzIsIDAuMDE0MTY5LCAwLjAxNDE4LCAwLjAxNDE5MSwgMC4wMTQxOTcsIDAuMDE0MjAxIiwgXAotICAgICAgICAgICIwLjAxMzkwMiwgMC4wMTQxMjMsIDAuMDE0MTYsIDAuMDE0MTcyLCAwLjAxNDE4MiwgMC4wMTQxODgsIDAuMDE0MTkyIiwgXAotICAgICAgICAgICIwLjAxMzg5OSwgMC4wMTQxMiwgMC4wMTQxNTcsIDAuMDE0MTY5LCAwLjAxNDE3OSwgMC4wMTQxODUsIDAuMDE0MTg5IiwgXAotICAgICAgICAgICIwLjAxMzkxMSwgMC4wMTQxMzIsIDAuMDE0MTY5LCAwLjAxNDE4MSwgMC4wMTQxOTEsIDAuMDE0MTk2LCAwLjAxNDIwMSIsIFwKLSAgICAgICAgICAiMC4wMTM5MjIsIDAuMDE0MTQxLCAwLjAxNDE3OCwgMC4wMTQxOSwgMC4wMTQyLCAwLjAxNDIwNiwgMC4wMTQyMSIsIFwKLSAgICAgICAgICAiMC4wMTM5MTQsIDAuMDE0MTMzLCAwLjAxNDE3LCAwLjAxNDE4MiwgMC4wMTQxOTIsIDAuMDE0MTk4LCAwLjAxNDIwMyIpOwotICAgICAgfQotICAgICAgcmlzZV9wb3dlcihzY2FsYXIpIHsKLSAgICAgICAgdmFsdWVzKCIwIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiU04iOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE0Mjc4LCAwLjAxNDQyOCwgMC4wMTQ0NDksIDAuMDE0NDU1LCAwLjAxNDQ2LCAwLjAxNDQ1MiwgMC4wMTQ0NjUiLCBcCi0gICAgICAgICAgIjAuMDE0MjQzLCAwLjAxNDM5LCAwLjAxNDQwOSwgMC4wMTQ0MTYsIDAuMDE0NDA2LCAwLjAxNDQyMywgMC4wMTQ0MjUiLCBcCi0gICAgICAgICAgIjAuMDE0MjE5LCAwLjAxNDM2OSwgMC4wMTQzODksIDAuMDE0Mzk1LCAwLjAxNDQwMSwgMC4wMTQ0MDQsIDAuMDE0NDA2IiwgXAotICAgICAgICAgICIwLjAxNDIxOSwgMC4wMTQzNjYsIDAuMDE0Mzg2LCAwLjAxNDM5MiwgMC4wMTQzOTcsIDAuMDE0Mzk5LCAwLjAxNDM4NyIsIFwKLSAgICAgICAgICAiMC4wMTQyMSwgMC4wMTQzNiwgMC4wMTQzODEsIDAuMDE0Mzg3LCAwLjAxNDM5MiwgMC4wMTQzOTUsIDAuMDE0Mzk4IiwgXAotICAgICAgICAgICIwLjAxNDIyMSwgMC4wMTQzNzcsIDAuMDE0Mzk4LCAwLjAxNDQwNSwgMC4wMTQ0MSwgMC4wMTQ0MDksIDAuMDE0NDE2IiwgXAotICAgICAgICAgICIwLjAxNDIyOCwgMC4wMTQzODUsIDAuMDE0NDIsIDAuMDE0NDI3LCAwLjAxNDQzNCwgMC4wMTQ0MzYsIDAuMDE0NDM5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTA5NDMsIDAuMDExMTY0LCAwLjAxMTIwMSwgMC4wMTEyMTMsIDAuMDExMjIzLCAwLjAxMTIyOSwgMC4wMTEyMzQiLCBcCi0gICAgICAgICAgIjAuMDEwODkzLCAwLjAxMTExMywgMC4wMTExNTEsIDAuMDExMTYzLCAwLjAxMTE3MywgMC4wMTExNzksIDAuMDExMTgzIiwgXAotICAgICAgICAgICIwLjAxMDg2NiwgMC4wMTEwODYsIDAuMDExMTI0LCAwLjAxMTEzNSwgMC4wMTExNDYsIDAuMDExMTUxLCAwLjAxMTE1NiIsIFwKLSAgICAgICAgICAiMC4wMTA4NTEsIDAuMDExMDcxLCAwLjAxMTEwOSwgMC4wMTExMiwgMC4wMTExMzEsIDAuMDExMTM2LCAwLjAxMTE0MSIsIFwKLSAgICAgICAgICAiMC4wMTA4NDEsIDAuMDExMDU5LCAwLjAxMTA5NywgMC4wMTExMDksIDAuMDExMTE5LCAwLjAxMTEyNSwgMC4wMTExMjkiLCBcCi0gICAgICAgICAgIjAuMDEwODI0LCAwLjAxMTA0NCwgMC4wMTEwODIsIDAuMDExMDk0LCAwLjAxMTEwNSwgMC4wMTExMSwgMC4wMTExMTUiLCBcCi0gICAgICAgICAgIjAuMDEwODEyLCAwLjAxMTAzMiwgMC4wMTEwNywgMC4wMTEwODIsIDAuMDExMDkzLCAwLjAxMTA5OCwgMC4wMTExMDMiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFJOKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA1NzU5Mzc7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNTc1ODIyOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDU3NTkzNzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA3MzgsIDAuMDAwNzE2LCAwLjAwMDcwOCwgMC4wMDA3MTIsIDAuMDAwNzIxLCAwLjAwMDc0MywgMC4wMDA3NjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDI1OTcsIDAuMDAyNTc5LCAwLjAwMjU3NCwgMC4wMDI1NzgsIDAuMDAyNTg4LCAwLjAwMjYxLCAwLjAwMjYyNiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQmU04iOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4xNzMxNzQsIDAuMTgyOTksIDAuMTk1MTE2LCAwLjIwNTgxOCwgMC4yMTQ5NDEsIDAuMjI3ODU5LCAwLjIzNzk2NiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJlY292ZXJ5X3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiRCZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzFfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChyZWNvdmVyeV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjI1LCAwLjA1MTI1LCAwLjAzODc1LCAwLjAyNjI1LCAwLjAxMzc1LCAtMC4wMDI1LCAtMC4wMTEyNSIsIFwKLSAgICAgICAgICAiMC4wNzM3NSwgMC4wNjI1LCAwLjA1LCAwLjAzNzUsIDAuMDI1LCAwLjAwODc1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiMC4wODYyNSwgMC4wNzUsIDAuMDYyNSwgMC4wNSwgMC4wMzc1LCAwLjAyMTI1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICIwLjA5ODc1LCAwLjA4NzUsIDAuMDc1LCAwLjA2MjUsIDAuMDUsIDAuMDMzNzUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMTExMjUsIDAuMSwgMC4wODEyNSwgMC4wNjg3NSwgMC4wNTYyNSwgMC4wNCwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4xMjEyNSwgMC4xMSwgMC4wOTc1LCAwLjA4NSwgMC4wNzI1LCAwLjA1NjI1LCAwLjA0MTI1IiwgXAotICAgICAgICAgICIwLjEzLCAwLjExODc1LCAwLjEwNjI1LCAwLjA5Mzc1LCAwLjA4MTI1LCAwLjA2NSwgMC4wNTYyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJlY292ZXJ5X3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUQiOwotICAgICAgc2RmX2NvbmQgOiAiRCA9PSAxJ2IwIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChyZWNvdmVyeV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODEyNSwgMC4wOTI1LCAwLjEwNSwgMC4xMTEyNSwgMC4xMTc1LCAwLjEzMzc1LCAwLjE0ODc1IiwgXAotICAgICAgICAgICIwLjA3NjI1LCAwLjA4MTI1LCAwLjA5Mzc1LCAwLjEsIDAuMTEyNSwgMC4xMjg3NSwgMC4xMzc1IiwgXAotICAgICAgICAgICIwLjA2Mzc1LCAwLjA3NSwgMC4wODc1LCAwLjA5Mzc1LCAwLjEsIDAuMTE2MjUsIDAuMTMxMjUiLCBcCi0gICAgICAgICAgIjAuMDU3NSwgMC4wNjg3NSwgMC4wODEyNSwgMC4wODc1LCAwLjEsIDAuMTEsIDAuMTI1IiwgXAotICAgICAgICAgICIwLjA1MTI1LCAwLjA2MjUsIDAuMDc1LCAwLjA4MTI1LCAwLjA5Mzc1LCAwLjEwMzc1LCAwLjExODc1IiwgXAotICAgICAgICAgICIwLjA0NzUsIDAuMDU4NzUsIDAuMDY1LCAwLjA3NzUsIDAuMDgzNzUsIDAuMSwgMC4xMDg3NSIsIFwKLSAgICAgICAgICAiMC4wNDUsIDAuMDU2MjUsIDAuMDYyNSwgMC4wNzUsIDAuMDgxMjUsIDAuMDk3NSwgMC4xMDYyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJlbW92YWxfcmlzaW5nOwotICAgICAgd2hlbiA6ICJEJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMV9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHJlbW92YWxfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAxMjUsIC0wLjAwMTI1LCAwLjAxMTI1LCAwLjAyMzc1LCAwLjAzNjI1LCAwLjA0NjI1LCAwLjA2MTI1IiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDEyNSwgMCwgMC4wMTI1LCAwLjAyNSwgMC4wNDEyNSwgMC4wNSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAyNSwgLTAuMDEyNSwgMCwgMC4wMTI1LCAwLjAyODc1LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAxMjUsIDAsIDAuMDE2MjUsIDAuMDI1IiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA0Mzc1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIDAuMDAzNzUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjA3MTI1LCAtMC4wNiwgLTAuMDQ3NSwgLTAuMDM1LCAtMC4wMjI1LCAtMC4wMDYyNSwgMC4wMDI1IiwgXAotICAgICAgICAgICItMC4wOCwgLTAuMDY4NzUsIC0wLjA1NjI1LCAtMC4wNDM3NSwgLTAuMDMxMjUsIC0wLjAyMTI1LCAtMC4wMDYyNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oU04pICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTg0ODk2OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTg0ODk2OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTg0ODQyOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDY1MywgMC4wMDA2NTIsIDAuMDAwNjUxLCAwLjAwMDY1MiwgMC4wMDA2NTIsIDAuMDAwNjUyLCAwLjAwMDY1MiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDY1NCwgMC4wMDA2NTQsIDAuMDAwNjU0LCAwLjAwMDY1NCwgMC4wMDA2NTQsIDAuMDAwNjU0LCAwLjAwMDY1NCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQmIVJOIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9STl9FUV8wID09IDEnYjEiOwotICAgICAgZmFsbF9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMTA5Nzc0LCAwLjExODkyNSwgMC4xMjk2NCwgMC4xNDE2MTIsIDAuMTUzNjAyLCAwLjE3MDc0OCwgMC4xODQxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiByZWNvdmVyeV9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEJlJOIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9STl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHJlY292ZXJ5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjI1LCAtMC4wMDUsIC0wLjAxNzUsIC0wLjAzLCAtMC4wNDI1LCAtMC4wNjUsIC0wLjA4IiwgXAotICAgICAgICAgICIwLjAxNzUsIDAuMDA2MjUsIC0wLjAxMjUsIC0wLjAyNSwgLTAuMDM3NSwgLTAuMDUzNzUsIC0wLjA2ODc1IiwgXAotICAgICAgICAgICIwLjAyMzc1LCAwLjAxMjUsIDAsIC0wLjAxMjUsIC0wLjAyNSwgLTAuMDQxMjUsIC0wLjA1NjI1IiwgXAotICAgICAgICAgICIwLjAzNjI1LCAwLjAyNSwgMC4wMTI1LCAwLCAtMC4wMTI1LCAtMC4wMzUsIC0wLjA1IiwgXAotICAgICAgICAgICIwLjA0ODc1LCAwLjAzNzUsIDAuMDE4NzUsIDAuMDA2MjUsIC0wLjAwNjI1LCAtMC4wMjI1LCAtMC4wMzc1IiwgXAotICAgICAgICAgICIwLjA2NSwgMC4wNTM3NSwgMC4wNDEyNSwgMC4wMjI1LCAwLjAxLCAtMC4wMDYyNSwgLTAuMDIxMjUiLCBcCi0gICAgICAgICAgIjAuMDgsIDAuMDY4NzUsIDAuMDUsIDAuMDM3NSwgMC4wMjUsIDAuMDA4NzUsIC0wLjAwNjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogcmVtb3ZhbF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEJlJOIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9STl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHJlbW92YWxfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM3NSwgMC4wNDg3NSwgMC4wNjEyNSwgMC4wNzM3NSwgMC4wODYyNSwgMC4xMDI1LCAwLjExNzUiLCBcCi0gICAgICAgICAgIjAuMDMyNSwgMC4wNDM3NSwgMC4wNTYyNSwgMC4wNjg3NSwgMC4wNzUsIDAuMDk3NSwgMC4xMDYyNSIsIFwKLSAgICAgICAgICAiMC4wMiwgMC4wMzEyNSwgMC4wNDM3NSwgMC4wNTYyNSwgMC4wNjg3NSwgMC4wODUsIDAuMDkzNzUiLCBcCi0gICAgICAgICAgIjAuMDA3NSwgMC4wMTg3NSwgMC4wMzEyNSwgMC4wNDM3NSwgMC4wNTYyNSwgMC4wNzI1LCAwLjA4NzUiLCBcCi0gICAgICAgICAgIjAuMDAxMjUsIDAuMDA2MjUsIDAuMDI1LCAwLjAzNzUsIDAuMDQzNzUsIDAuMDYsIDAuMDc1IiwgXAotICAgICAgICAgICItMC4wMTUsIC0wLjAwMzc1LCAwLjAwODc1LCAwLjAyMTI1LCAwLjAzMzc1LCAwLjA1LCAwLjA1ODc1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLjAwNjI1LCAwLjAxODc1LCAwLjAzNSwgMC4wNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IERGRlNSWDIgKgotICogLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoREZGU1JYMikgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjUwNTA5OTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBmZiAoTjM1LFFCSU5UKSB7Ci0gICAgbmV4dF9zdGF0ZSA6ICJEIjsKLSAgICBjbG9ja2VkX29uIDogIkNLIjsKLSAgICBjbGVhciA6ICIoIVJOKSI7Ci0gICAgcHJlc2V0IDogIighU04pIjsKLSAgICBjbGVhcl9wcmVzZXRfdmFyMSA6IEg7Ci0gICAgY2xlYXJfcHJlc2V0X3ZhcjIgOiBMOwotICB9Ci0gIHBpbihDSykgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNTU0ODQ2OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDU1NDYyNzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA1NTQ4NDY7Ci0gICAgY2xvY2sgOiB0cnVlOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjgzNSwgMC4wMDI4MTEsIDAuMDAyNzk4LCAwLjAwMjgsIDAuMDAyODEyLCAwLjAwMjgzMiwgMC4wMDI4NDYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDc4NSwgMC4wMDc4MjgsIDAuMDA3ODIyLCAwLjAwNzgyNCwgMC4wMDc4MywgMC4wMDc4NSwgMC4wMDc4NjkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFEJlJOJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9STl9FUV8xX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4xODEyMzgsIDAuMTkxNDI4LCAwLjIwNDIzOSwgMC4yMTY3NjgsIDAuMjI4MjU3LCAwLjI0NDM3MiwgMC4yNTY3NTgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjEyNjY0NiwgMC4xMzY1MjEsIDAuMTQ4ODQ3LCAwLjE2MDg2NiwgMC4xNzE1OSwgMC4xODYsIDAuMTk3NDgiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEQpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYxODk3NjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MTc1MjM7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjE4OTc2OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjkxNywgMC4wMDI4OTUsIDAuMDAyODgyLCAwLjAwMjg3MywgMC4wMDI4NzIsIDAuMDAyODcyLCAwLjAwMjg3NCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzA5NCwgMC4wMDMwODEsIDAuMDAzMDcyLCAwLjAwMzA2NiwgMC4wMDMwNjIsIDAuMDAzMDYzLCAwLjAwMzA2MyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJSTiZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJSTl9FUV8xX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDE4NzUsIC0wLjAwNzUsIC0wLjAwMTI1LCAwLjAwNSwgMC4wMTEyNSwgMC4wMjEyNSwgMC4wMjM3NSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxODc1LCAtMC4wMTI1LCAwLCAwLCAwLjAxLCAwLjAxODc1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDMxMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMC4wMDM3NSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMDg3NSwgMCIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDE1LCAtMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wNjUsIC0wLjA2LCAtMC4wNDc1LCAtMC4wNDEyNSwgLTAuMDM1LCAtMC4wMjUsIC0wLjAyMjUiLCBcCi0gICAgICAgICAgIi0wLjA3Mzc1LCAtMC4wNjg3NSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDMzNzUsIC0wLjAzMTI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjUsIDAuMDM2MjUsIDAuMDQ4NzUsIDAuMDYxMjUsIDAuMDY3NSwgMC4wODM3NSwgMC4wOTI1IiwgXAotICAgICAgICAgICIwLjAxMzc1LCAwLjAyNSwgMC4wMzc1LCAwLjA1LCAwLjA2MjUsIDAuMDcyNSwgMC4wODc1IiwgXAotICAgICAgICAgICIwLjAwNzUsIDAuMDE4NzUsIDAuMDMxMjUsIDAuMDQzNzUsIDAuMDUsIDAuMDY2MjUsIDAuMDc1IiwgXAotICAgICAgICAgICIwLjAwMTI1LCAwLjAxMjUsIDAuMDI1LCAwLjAzMTI1LCAwLjA0Mzc1LCAwLjA2LCAwLjA2ODc1IiwgXAotICAgICAgICAgICItMC4wMDUsIDAuMDA2MjUsIDAuMDE4NzUsIDAuMDMxMjUsIDAuMDM3NSwgMC4wNTM3NSwgMC4wNjI1IiwgXAotICAgICAgICAgICItMC4wMTUsIC0wLjAwMzc1LCAwLjAwODc1LCAwLjAyMTI1LCAwLjAyNzUsIDAuMDQzNzUsIDAuMDUyNSIsIFwKLSAgICAgICAgICAiLTAuMDE3NSwgLTAuMDA2MjUsIDAsIDAuMDEyNSwgMC4wMjUsIDAuMDQxMjUsIDAuMDUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlJOJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIlJOX0VRXzFfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzUsIDAuMDYzNzUsIDAuMDUxMjUsIDAuMDM4NzUsIDAuMDI2MjUsIDAuMDE2MjUsIDAuMDA3NSIsIFwKLSAgICAgICAgICAiMC4wODYyNSwgMC4wNzUsIDAuMDU2MjUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMjEyNSwgMC4wMTI1IiwgXAotICAgICAgICAgICIwLjA5ODc1LCAwLjA4MTI1LCAwLjA2ODc1LCAwLjA1NjI1LCAwLjA0Mzc1LCAwLjAzMzc1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiMC4xMDUsIDAuMDkzNzUsIDAuMDgxMjUsIDAuMDY4NzUsIDAuMDU2MjUsIDAuMDQ2MjUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMTE3NSwgMC4xMDYyNSwgMC4wODc1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNTI1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjEyNzUsIDAuMTE2MjUsIDAuMTAzNzUsIDAuMDkxMjUsIDAuMDc4NzUsIDAuMDY4NzUsIDAuMDUzNzUiLCBcCi0gICAgICAgICAgIjAuMTQyNSwgMC4xMjUsIDAuMTEyNSwgMC4xLCAwLjA4NzUsIDAuMDc3NSwgMC4wNjg3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1LCAwLjAzODc1LCAwLjAyNjI1LCAwLjAxMzc1LCAtMC4wMDUsIC0wLjAyMTI1LCAtMC4wMyIsIFwKLSAgICAgICAgICAiMC4wNTUsIDAuMDQzNzUsIDAuMDMxMjUsIDAuMDE4NzUsIDAuMDA2MjUsIC0wLjAxLCAtMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMDY3NSwgMC4wNTYyNSwgMC4wNDM3NSwgMC4wMzEyNSwgMC4wMTg3NSwgMC4wMDI1LCAtMC4wMTI1IiwgXAotICAgICAgICAgICIwLjA3Mzc1LCAwLjA2MjUsIDAuMDUsIDAuMDM3NSwgMC4wMjUsIDAuMDA4NzUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICIwLjA4NjI1LCAwLjA3NSwgMC4wNjI1LCAwLjA0Mzc1LCAwLjAzMTI1LCAwLjAxNSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiMC4wOTYyNSwgMC4wODUsIDAuMDcyNSwgMC4wNiwgMC4wNDc1LCAwLjAzMTI1LCAwLjAxNjI1IiwgXAotICAgICAgICAgICIwLjEwNSwgMC4wOTM3NSwgMC4wODEyNSwgMC4wNjg3NSwgMC4wNTYyNSwgMC4wNCwgMC4wMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFEpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC41MTgyMjE7Ci0gICAgZnVuY3Rpb24gOiAiTjM1IjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBub25fdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJpc2luZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNDg1MDYsIDAuMjUxNjU5LCAwLjMzMzQ0MSwgMC40MzUwMDgsIDAuNTM2OTI3LCAwLjYzOTk3NSwgMC43NDE5NCIsIFwKLSAgICAgICAgICAiMC4xNTg2MjIsIDAuMjYxOCwgMC4zNDM1MjMsIDAuNDQ1MjMsIDAuNTQ3NTg1LCAwLjY0OTYwNywgMC43NTE5NjciLCBcCi0gICAgICAgICAgIjAuMTcxMzE5LCAwLjI3NDUyOSwgMC4zNTYwOTIsIDAuNDU4MTE2LCAwLjU1OTczMywgMC42NjI3NDQsIDAuNzYzNzM3IiwgXAotICAgICAgICAgICIwLjE4Mzc0MiwgMC4yODY5NjYsIDAuMzY4NjE4LCAwLjQ3MDU0LCAwLjU3MjE2MywgMC42NzUxNTMsIDAuNzc3MTQ1IiwgXAotICAgICAgICAgICIwLjE5NTE1OCwgMC4yOTgyNDEsIDAuMzgwMDksIDAuNDgxNzA3LCAwLjU4MzUxNSwgMC42ODY2MDksIDAuNzg4MjI3IiwgXAotICAgICAgICAgICIwLjIxMTA5MywgMC4zMTQxMDMsIDAuMzk1OTc0LCAwLjQ5NzkwMiwgMC41OTk1NDIsIDAuNzAyNTI4LCAwLjgwNDQ2OCIsIFwKLSAgICAgICAgICAiMC4yMjM1OSwgMC4zMjY3NDUsIDAuNDA4NTI2LCAwLjUxMDEwOCwgMC42MTIwNTIsIDAuNzE0MzEyLCAwLjgxNjk0NCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTQ4NDEsIDAuMjU5NDY1LCAwLjQyNzA3NywgMC42MzYzNTgsIDAuODQ2NzYzLCAxLjA1NjI2LCAxLjI2NjAzIiwgXAotICAgICAgICAgICIwLjA1NDk2NywgMC4yNTk3NjIsIDAuNDI3MDcsIDAuNjM2NTUzLCAwLjg0ODE2MywgMS4wNTg1MSwgMS4yNjU4OSIsIFwKLSAgICAgICAgICAiMC4wNTQ4ODMsIDAuMjYwMTA1LCAwLjQyNjM3OSwgMC42Mzc0ODQsIDAuODQ2NzUxLCAxLjA1NTQ3LCAxLjI2Njg3IiwgXAotICAgICAgICAgICIwLjA1NTAyOSwgMC4yNjAwNjMsIDAuNDI2NjYzLCAwLjYzNzQ5MSwgMC44NDY3MTUsIDEuMDU1NDcsIDEuMjY2MTYiLCBcCi0gICAgICAgICAgIjAuMDU0ODExLCAwLjI2MDI5NCwgMC40MjcwNzgsIDAuNjM2NDgsIDAuODQ2ODc4LCAxLjA1NjQ1LCAxLjI2ODY5IiwgXAotICAgICAgICAgICIwLjA1NDkxOSwgMC4yNjAzMywgMC40MjcwNjgsIDAuNjM3NTEzLCAwLjg0NjU4OSwgMS4wNTY0NywgMS4yNjY0MSIsIFwKLSAgICAgICAgICAiMC4wNTQ4LCAwLjI1OTQzOCwgMC40MjcwNzUsIDAuNjM2Mzg0LCAwLjg0NjAwMywgMS4wNTY1NywgMS4yNjU0NyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNTk0MDEsIDAuMjY0NDMsIDAuMzQ3Mjk4LCAwLjQ1MDk4OSwgMC41NTUxMTIsIDAuNjU4NzE2LCAwLjc2MjMyNSIsIFwKLSAgICAgICAgICAiMC4xNjk1ODgsIDAuMjc0NjAyLCAwLjM1NzQ3NCwgMC40NjEyNDQsIDAuNTY1MjkyLCAwLjY2ODkxNCwgMC43NzI1MjQiLCBcCi0gICAgICAgICAgIjAuMTgyNCwgMC4yODcyNSwgMC4zNzAxNzgsIDAuNDc0MTI3LCAwLjU3ODEyNiwgMC42ODE3MzMsIDAuNzg1MzI2IiwgXAotICAgICAgICAgICIwLjE5NDkzOCwgMC4zMDAxMDksIDAuMzgyODU4LCAwLjQ4NjU3NiwgMC41OTA2NTQsIDAuNjk0MjY2LCAwLjc5Nzg4MyIsIFwKLSAgICAgICAgICAiMC4yMDY0MjYsIDAuMzExNTA2LCAwLjM5NDMzNywgMC40OTgwMTcsIDAuNjAyMTQsIDAuNzA1NzM5LCAwLjgwOTMxOSIsIFwKLSAgICAgICAgICAiMC4yMjI1MjgsIDAuMzI3Nzk3LCAwLjQxMDM5NiwgMC41MTQxNTgsIDAuNjE4MzA1LCAwLjcyMTg1LCAwLjgyNTI2NCIsIFwKLSAgICAgICAgICAiMC4yMzQ5MjMsIDAuMzQwMTIzLCAwLjQyMzE5NiwgMC41MjY5NDksIDAuNjMwNTk0LCAwLjczNDI3MSwgMC44Mzc5MzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU0NDcxLCAwLjI1OTg2OSwgMC40MjY2NDYsIDAuNjM2NjQ2LCAwLjg0Nzk4MSwgMS4wNTgwMiwgMS4yNjc5MSIsIFwKLSAgICAgICAgICAiMC4wNTQzMTEsIDAuMjU5ODYxLCAwLjQyNjYyMiwgMC42MzYxOTcsIDAuODQ3OTcyLCAxLjA1ODAzLCAxLjI2Nzg4IiwgXAotICAgICAgICAgICIwLjA1NDI3NywgMC4yNTg2ODEsIDAuNDI1ODM2LCAwLjYzNzIxNCwgMC44NDU5ODYsIDEuMDU4MDYsIDEuMjY3OTQiLCBcCi0gICAgICAgICAgIjAuMDU0MzE5LCAwLjI1OTg2NSwgMC40MjcyNDEsIDAuNjM2MiwgMC44NDYwMjIsIDEuMDU4MDcsIDEuMjY3OTgiLCBcCi0gICAgICAgICAgIjAuMDU0NDY3LCAwLjI1OTg3LCAwLjQyNjY2NSwgMC42MzY2NDYsIDAuODQ2MDI3LCAxLjA1ODA0LCAxLjI2Nzg0IiwgXAotICAgICAgICAgICIwLjA1NDMwOSwgMC4yNTkxODQsIDAuNDI2NTYzLCAwLjYzNjgzNiwgMC44NDU3MjIsIDEuMDU4MDUsIDEuMjY2MjIiLCBcCi0gICAgICAgICAgIjAuMDU0MjY5LCAwLjI1OTYyMiwgMC40MjcyODIsIDAuNjM3NjI1LCAwLjg0NzksIDEuMDU4MSwgMS4yNjgyMSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogY2xlYXI7Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE5NjY4NCwgMC4zMDE4NSwgMC4zODQ2NywgMC40ODg0MzMsIDAuNTkyMDcyLCAwLjY5NTQyOSwgMC43OTkzNDUiLCBcCi0gICAgICAgICAgIjAuMjA2NTQ5LCAwLjMxMTI5NiwgMC4zOTQyNDgsIDAuNDk4MjE5LCAwLjYwMTYyOCwgMC43MDU1NTUsIDAuODA5MDY4IiwgXAotICAgICAgICAgICIwLjIxODYyOSwgMC4zMjMzMzYsIDAuNDA2MzAxLCAwLjUxMDQxNCwgMC42MTQwNDksIDAuNzE3NjQsIDAuODIxMDY2IiwgXAotICAgICAgICAgICIwLjIzMDEwMSwgMC4zMzUyNiwgMC40MTc3NjUsIDAuNTIxNTEzLCAwLjYyNTI0OSwgMC43MjkxMDYsIDAuODMyNjA4IiwgXAotICAgICAgICAgICIwLjIzOTkxOSwgMC4zNDUxMDEsIDAuNDI3NjcsIDAuNTMxNzIsIDAuNjM1MzI2LCAwLjczODk3NSwgMC44NDI1NzUiLCBcCi0gICAgICAgICAgIjAuMjUzNzU5LCAwLjM1ODkzMSwgMC40NDE0NzcsIDAuNTQ1NDgzLCAwLjY0ODgzNCwgMC43NTI3ODUsIDAuODU2NDI3IiwgXAotICAgICAgICAgICIwLjI2NDE2OSwgMC4zNjkzMjgsIDAuNDUxOTA2LCAwLjU1NTk3MSwgMC42NTk1ODQsIDAuNzYzMjQxLCAwLjg2NjgzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1NDQyLCAwLjI1OTU4NywgMC40MjcxMzMsIDAuNjM3NjM3LCAwLjg0Nzk2OSwgMS4wNTgwMywgMS4yNjgyNSIsIFwKLSAgICAgICAgICAiMC4wNTQ0NTIsIDAuMjU5MjIxLCAwLjQyNzMwMiwgMC42Mzc2NywgMC44NDc5MDUsIDEuMDU4MTIsIDEuMjY4MTIiLCBcCi0gICAgICAgICAgIjAuMDU0Mzk5LCAwLjI1OTYxNSwgMC40MjczMDgsIDAuNjM3Njg2LCAwLjg0ODAyNywgMS4wNTgxLCAxLjI2ODEyIiwgXAotICAgICAgICAgICIwLjA1NDM5OCwgMC4yNTk1NTgsIDAuNDI3MzA0LCAwLjYzNzYzNywgMC44NDc3MzgsIDEuMDU4MDgsIDEuMjY4MSIsIFwKLSAgICAgICAgICAiMC4wNTQ0MjksIDAuMjU5ODczLCAwLjQyNzMxOSwgMC42Mzc3MDYsIDAuODQ3OTc0LCAxLjA1ODE3LCAxLjI2ODMiLCBcCi0gICAgICAgICAgIjAuMDU0Mzc2LCAwLjI1OTg3NCwgMC40MjY2NjgsIDAuNjM3NjUsIDAuODQ3ODY5LCAxLjA1ODE0LCAxLjI2ODMyIiwgXAotICAgICAgICAgICIwLjA1NDQ1NSwgMC4yNTkwNjUsIDAuNDI3Mjk4LCAwLjYzNzY5OCwgMC44NDc5OSwgMS4wNTgyNCwgMS4yNjgyOCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcHJlc2V0OwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMzM2OTYsIDAuMjM2ODMsIDAuMzE4MDc0LCAwLjQyMDY5MiwgMC41MjI1NDIsIDAuNjI0NTAxLCAwLjcyNjQyOSIsIFwKLSAgICAgICAgICAiMC4xNDMyODksIDAuMjQ2NDMyLCAwLjMyNzg4NSwgMC40MzAzMTksIDAuNTMyMTY4LCAwLjYzNDE3NiwgMC43MzYwMjEiLCBcCi0gICAgICAgICAgIjAuMTU0MDg3LCAwLjI1NzMzNiwgMC4zMzg2ODMsIDAuNDQxMDU3LCAwLjU0Mjk0LCAwLjY0NDkxOCwgMC43NDY4MzUiLCBcCi0gICAgICAgICAgIjAuMTYzOTI1LCAwLjI2NjcyMiwgMC4zNDg2NjEsIDAuNDUwOTc0LCAwLjU1Mjc4NSwgMC42NTQ3MDEsIDAuNzU2NjM2IiwgXAotICAgICAgICAgICIwLjE3NDIyNywgMC4yNzcyNywgMC4zNTg2NDUsIDAuNDYxMDYyLCAwLjU2Mjk2MSwgMC42NjQ5NCwgMC43NjY4NjciLCBcCi0gICAgICAgICAgIjAuMTkxNzA0LCAwLjI5NDc4OCwgMC4zNzY1NTYsIDAuNDc4NTU3LCAwLjU4MDQ0MywgMC42ODE2NjEsIDAuNzg0MzcyIiwgXAotICAgICAgICAgICIwLjIwNTEyMiwgMC4zMDgyMjQsIDAuMzg5NDEzLCAwLjQ5MjAyNiwgMC41OTM4MDEsIDAuNjk1ODE1LCAwLjc5NzgyNSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTQyNSwgMC4yNjAyNDUsIDAuNDI2OTU4LCAwLjYzNzY3NywgMC44NDgwNzIsIDEuMDU4NDEsIDEuMjY4NjEiLCBcCi0gICAgICAgICAgIjAuMDU0MjEyLCAwLjI2MDA2MiwgMC40MjcxMzksIDAuNjM3NjY3LCAwLjg0ODA2LCAxLjA1ODQxLCAxLjI2ODU5IiwgXAotICAgICAgICAgICIwLjA1NDEwNiwgMC4yNjAyMTYsIDAuNDI3MDAxLCAwLjYzNzY3NSwgMC44NDgwNzEsIDEuMDU4MzksIDEuMjY4NTUiLCBcCi0gICAgICAgICAgIjAuMDU0MTQ3LCAwLjI2MDIwNSwgMC40MjcwMDcsIDAuNjM3NjU2LCAwLjg0ODA1NywgMS4wNTgzOCwgMS4yNjg1OCIsIFwKLSAgICAgICAgICAiMC4wNTQyMTMsIDAuMjYwMzA5LCAwLjQyNzEyLCAwLjYzNzY4NiwgMC44NDgwNCwgMS4wNTgzOCwgMS4yNjg2MSIsIFwKLSAgICAgICAgICAiMC4wNTQyMjIsIDAuMjU5ODQsIDAuNDI3MzAyLCAwLjYzNzY1LCAwLjg0ODAyNiwgMS4wNTg0LCAxLjI2ODYzIiwgXAotICAgICAgICAgICIwLjA1NDE5MSwgMC4yNjAyNDksIDAuNDI3MTE2LCAwLjYzNzY1NCwgMC44NDgwOTMsIDEuMDU4MzcsIDEuMjY4NTkiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTcxNzE1LCAwLjI3NjkyNiwgMC4zNTk3ODIsIDAuNDYzNjA0LCAwLjU2NzI3MiwgMC42NzA2NjksIDAuNzc0NTc1IiwgXAotICAgICAgICAgICIwLjE4MTE4OSwgMC4yODY0MTIsIDAuMzY5MjgsIDAuNDczMDg3LCAwLjU3Njc1MywgMC42ODAxMzMsIDAuNzg0MDU5IiwgXAotICAgICAgICAgICIwLjE5MjAyNCwgMC4yOTcyNTIsIDAuMzc5ODUxLCAwLjQ4MzgxNywgMC41ODczOTksIDAuNjkxMjQ2LCAwLjc5NDg5MSIsIFwKLSAgICAgICAgICAiMC4yMDI3NTYsIDAuMzA3OTc3LCAwLjM5MDYwMywgMC40OTQ2OTksIDAuNTk4MzM0LCAwLjcwMTc2NywgMC44MDU2MTUiLCBcCi0gICAgICAgICAgIjAuMjEzMzU3LCAwLjMxODU3NiwgMC40MDEzNzQsIDAuNTA1MjUzLCAwLjYwODkxOCwgMC43MTIyOTQsIDAuODE2MjI1IiwgXAotICAgICAgICAgICIwLjIyOTk5NiwgMC4zMzUyMjUsIDAuNDE4MDM4LCAwLjUyMTg5NywgMC42MjU1NjEsIDAuNzI5MjI0LCAwLjgzMjg3IiwgXAotICAgICAgICAgICIwLjI0MzkzNiwgMC4zNDkxNjgsIDAuNDMxOTg2LCAwLjUzNTg1MSwgMC42Mzk1MDksIDAuNzQzMzE2LCAwLjg0NjgxOCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTQ1MDksIDAuMjU5NTA3LCAwLjQyNzE0NywgMC42Mzc2MzgsIDAuODQ3OTg2LCAxLjA1NzkxLCAxLjI2ODI0IiwgXAotICAgICAgICAgICIwLjA1NDM3NiwgMC4yNTk1MzYsIDAuNDI3MTMsIDAuNjM3NjM3LCAwLjg0Nzk2NSwgMS4wNTc4NywgMS4yNjgyNCIsIFwKLSAgICAgICAgICAiMC4wNTQzNDYsIDAuMjU5ODY4LCAwLjQyNzMxNywgMC42Mzc1MjEsIDAuODQ3NzU1LCAxLjA1ODE0LCAxLjI2ODMiLCBcCi0gICAgICAgICAgIjAuMDU0Mzk2LCAwLjI1OTYxOCwgMC40MjczMDUsIDAuNjM3NzA0LCAwLjg0Nzk4LCAxLjA1NzgzLCAxLjI2ODI2IiwgXAotICAgICAgICAgICIwLjA1NDUzMSwgMC4yNTk4NzIsIDAuNDI3MTQ0LCAwLjYzNzYyNSwgMC44NDc5NTUsIDEuMDU3ODUsIDEuMjY4MTkiLCBcCi0gICAgICAgICAgIjAuMDU0NDIyLCAwLjI1OTg5LCAwLjQyNzEyNSwgMC42Mzc2MjksIDAuODQ3OTQyLCAxLjA1ODExLCAxLjI2ODIxIiwgXAotICAgICAgICAgICIwLjA1NDM2NiwgMC4yNTk0OTQsIDAuNDI3MTAxLCAwLjYzNzYzNCwgMC44NDc5NDQsIDEuMDU3ODQsIDEuMjY4MTkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1NjI0LCAwLjAwNTY4NSwgMC4wMDU2OTUsIDAuMDA1Njk3LCAwLjAwNTcsIDAuMDA1NzAxLCAwLjAwNTcwMiIsIFwKLSAgICAgICAgICAiMC4wMDU2MTEsIDAuMDA1NjcyLCAwLjAwNTY4LCAwLjAwNTY4NCwgMC4wMDU2ODYsIDAuMDA1Njg4LCAwLjAwNTY4OCIsIFwKLSAgICAgICAgICAiMC4wMDU2MDQsIDAuMDA1NjY2LCAwLjAwNTY3NCwgMC4wMDU2NzcsIDAuMDA1Njc5LCAwLjAwNTY4MSwgMC4wMDU2ODIiLCBcCi0gICAgICAgICAgIjAuMDA1NjAzLCAwLjAwNTY2NSwgMC4wMDU2NzMsIDAuMDA1Njc3LCAwLjAwNTY3OSwgMC4wMDU2OCwgMC4wMDU2ODEiLCBcCi0gICAgICAgICAgIjAuMDA1NjA3LCAwLjAwNTY2OSwgMC4wMDU2NzcsIDAuMDA1NjgxLCAwLjAwNTY4MywgMC4wMDU2ODQsIDAuMDA1Njg1IiwgXAotICAgICAgICAgICIwLjAwNTYxNiwgMC4wMDU2NzcsIDAuMDA1Njg1LCAwLjAwNTY4OSwgMC4wMDU2OTEsIDAuMDA1NjkyLCAwLjAwNTY5MyIsIFwKLSAgICAgICAgICAiMC4wMDU2MjgsIDAuMDA1NjksIDAuMDA1Njk3LCAwLjAwNTcwMSwgMC4wMDU3MDMsIDAuMDA1NzA0LCAwLjAwNTcwNSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNTQzMiwgMC4wMDU0ODcsIDAuMDA1NDk0LCAwLjAwNTQ5OSwgMC4wMDU1MDEsIDAuMDA1NTAyLCAwLjAwNTUwMSIsIFwKLSAgICAgICAgICAiMC4wMDU0MTksIDAuMDA1NDc0LCAwLjAwNTQ4MiwgMC4wMDU0ODQsIDAuMDA1NDg4LCAwLjAwNTQ5LCAwLjAwNTQ4NiIsIFwKLSAgICAgICAgICAiMC4wMDU0MTYsIDAuMDA1NDcxLCAwLjAwNTQ3OCwgMC4wMDU0ODIsIDAuMDA1NDgzLCAwLjAwNTQ4NSwgMC4wMDU0ODUiLCBcCi0gICAgICAgICAgIjAuMDA1NDIyLCAwLjAwNTQ3NywgMC4wMDU0ODQsIDAuMDA1NDg3LCAwLjAwNTQ4OSwgMC4wMDU0OTIsIDAuMDA1NDkyIiwgXAotICAgICAgICAgICIwLjAwNTQyOSwgMC4wMDU0ODQsIDAuMDA1NDkyLCAwLjAwNTQ5NiwgMC4wMDU0OTcsIDAuMDA1NDk4LCAwLjAwNTQ5OSIsIFwKLSAgICAgICAgICAiMC4wMDU0NDUsIDAuMDA1NSwgMC4wMDU1MDcsIDAuMDA1NTEsIDAuMDA1NTEyLCAwLjAwNTUxMywgMC4wMDU1MTUiLCBcCi0gICAgICAgICAgIjAuMDA1NDYxLCAwLjAwNTUxNiwgMC4wMDU1MjMsIDAuMDA1NTI3LCAwLjAwNTUyOCwgMC4wMDU1MywgMC4wMDU1MyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDcwNzUsIDAuMDA3MTIxLCAwLjAwNzExOCwgMC4wMDcxMTQsIDAuMDA3MTExLCAwLjAwNzEwOSwgMC4wMDcxMDYiLCBcCi0gICAgICAgICAgIjAuMDA3MDY1LCAwLjAwNzExMSwgMC4wMDcxMDgsIDAuMDA3MTA0LCAwLjAwNzEsIDAuMDA3MDk4LCAwLjAwNzA5NiIsIFwKLSAgICAgICAgICAiMC4wMDcwNjEsIDAuMDA3MTA3LCAwLjAwNzEwNSwgMC4wMDcxLCAwLjAwNzA5NywgMC4wMDcwOTQsIDAuMDA3MDkyIiwgXAotICAgICAgICAgICIwLjAwNzA2MywgMC4wMDcxMSwgMC4wMDcxMDgsIDAuMDA3MTA0LCAwLjAwNzEsIDAuMDA3MDk3LCAwLjAwNzA5NSIsIFwKLSAgICAgICAgICAiMC4wMDcwNjYsIDAuMDA3MTEzLCAwLjAwNzExMSwgMC4wMDcxMDksIDAuMDA3MTA2LCAwLjAwNzA5NywgMC4wMDcxMDIiLCBcCi0gICAgICAgICAgIjAuMDA3MDczLCAwLjAwNzEyLCAwLjAwNzEyLCAwLjAwNzExMywgMC4wMDcxMSwgMC4wMDcxMDQsIDAuMDA3MTA5IiwgXAotICAgICAgICAgICIwLjAwNzA4LCAwLjAwNzEyNywgMC4wMDcxMjUsIDAuMDA3MTIzLCAwLjAwNzExOSwgMC4wMDcxMTYsIDAuMDA3MTE1Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3Bvd2VyKHNjYWxhcikgewotICAgICAgICB2YWx1ZXMoIjAiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2NTA3LCAwLjAwNjU2NSwgMC4wMDY1NzEsIDAuMDA2NTc1LCAwLjAwNjU3NiwgMC4wMDY1NzcsIDAuMDA2NTc4IiwgXAotICAgICAgICAgICIwLjAwNjQ5NSwgMC4wMDY1NTIsIDAuMDA2NTU4LCAwLjAwNjU2MSwgMC4wMDY1NjIsIDAuMDA2NTYzLCAwLjAwNjU2NCIsIFwKLSAgICAgICAgICAiMC4wMDY0ODksIDAuMDA2NTQ2LCAwLjAwNjU1MiwgMC4wMDY1NTUsIDAuMDA2NTU3LCAwLjAwNjU1OCwgMC4wMDY1NTgiLCBcCi0gICAgICAgICAgIjAuMDA2NDg2LCAwLjAwNjU0MywgMC4wMDY1NDksIDAuMDA2NTUyLCAwLjAwNjU1NCwgMC4wMDY1NTQsIDAuMDA2NTU2IiwgXAotICAgICAgICAgICIwLjAwNjQ4NCwgMC4wMDY1NDIsIDAuMDA2NTQ5LCAwLjAwNjU1MiwgMC4wMDY1NTMsIDAuMDA2NTU0LCAwLjAwNjU1NSIsIFwKLSAgICAgICAgICAiMC4wMDY0ODYsIDAuMDA2NTQ1LCAwLjAwNjU1MSwgMC4wMDY1NTQsIDAuMDA2NTU1LCAwLjAwNjU1NiwgMC4wMDY1NTciLCBcCi0gICAgICAgICAgIjAuMDA2NDg5LCAwLjAwNjU0OSwgMC4wMDY1NTUsIDAuMDA2NTU5LCAwLjAwNjU2MSwgMC4wMDY1NjIsIDAuMDA2NTYyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1Mjg4LCAwLjAwNTM0NCwgMC4wMDUzNTIsIDAuMDA1MzU1LCAwLjAwNTM1NywgMC4wMDUzNTcsIDAuMDA1MzU5IiwgXAotICAgICAgICAgICIwLjAwNTI3MywgMC4wMDUzMjksIDAuMDA1MzM2LCAwLjAwNTMzOSwgMC4wMDUzNDIsIDAuMDA1MzQyLCAwLjAwNTM0MyIsIFwKLSAgICAgICAgICAiMC4wMDUyNjQsIDAuMDA1MzIsIDAuMDA1MzI3LCAwLjAwNTMzLCAwLjAwNTMzLCAwLjAwNTMzOCwgMC4wMDUzMzciLCBcCi0gICAgICAgICAgIjAuMDA1MjU4LCAwLjAwNTMxNSwgMC4wMDUzMjEsIDAuMDA1MzI2LCAwLjAwNTMyOCwgMC4wMDUzMjksIDAuMDA1MzMxIiwgXAotICAgICAgICAgICIwLjAwNTI1NCwgMC4wMDUzMSwgMC4wMDUzMTcsIDAuMDA1MzIsIDAuMDA1MzIyLCAwLjAwNTMyMywgMC4wMDUzMjQiLCBcCi0gICAgICAgICAgIjAuMDA1MjQ5LCAwLjAwNTMwNSwgMC4wMDUzMTIsIDAuMDA1MzE3LCAwLjAwNTMxNywgMC4wMDUzMTksIDAuMDA1MzIxIiwgXAotICAgICAgICAgICIwLjAwNTI0MywgMC4wMDUyOTksIDAuMDA1MzA4LCAwLjAwNTMxMSwgMC4wMDUzMTMsIDAuMDA1MzEzLCAwLjAwNTMxMyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUU4pICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC41MjM2MTI7Ci0gICAgZnVuY3Rpb24gOiAiUUJJTlQiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5vbl91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcmlzaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE4MTIzOCwgMC4yODI5MjYsIDAuMzY0NDI3LCAwLjQ2NjM1NiwgMC41NjgzNDEsIDAuNjcwMjQ5LCAwLjc3MjE0OSIsIFwKLSAgICAgICAgICAiMC4xOTE0MjgsIDAuMjkzMTE0LCAwLjM3NDYxNywgMC40NzY1NjQsIDAuNTc4NTI4LCAwLjY4MDQ0NSwgMC43ODIzNDkiLCBcCi0gICAgICAgICAgIjAuMjA0MjM5LCAwLjMwNTkyNiwgMC4zODczNywgMC40ODkyOTQsIDAuNTkxMzUzLCAwLjY5MzI2MiwgMC43OTUxNTQiLCBcCi0gICAgICAgICAgIjAuMjE2NzY4LCAwLjMxODQ3NSwgMC4zOTk5NTgsIDAuNTAxOTAxLCAwLjYwMzg3NSwgMC43MDU3ODcsIDAuODA3Njk1IiwgXAotICAgICAgICAgICIwLjIyODI1NywgMC4zMjk5NTIsIDAuNDExNDQ3LCAwLjUxMzM3NiwgMC42MTUzNjMsIDAuNzE3MjY3LCAwLjgxOTE0OCIsIFwKLSAgICAgICAgICAiMC4yNDQzNzIsIDAuMzQ2MDksIDAuNDI3NTYsIDAuNTI5Mzg3LCAwLjYzMTUwOSwgMC43MzMzODIsIDAuODM1MzI3IiwgXAotICAgICAgICAgICIwLjI1Njc1OCwgMC4zNTg0NzMsIDAuNDM5OTk0LCAwLjU0MTkyNywgMC42NDM4NDUsIDAuNzQ1NzkxLCAwLjg0NzczMyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTExNTcsIDAuMjU5MjU3LCAwLjQyNjkyNSwgMC42MzcxMzIsIDAuODQ4Njc5LCAxLjA1OTAzLCAxLjI2OTM3IiwgXAotICAgICAgICAgICIwLjA1MTE2NywgMC4yNTkyNTEsIDAuNDI2OTQ0LCAwLjYzNjkzLCAwLjg0ODY3NSwgMS4wNTkwMywgMS4yNjkzNSIsIFwKLSAgICAgICAgICAiMC4wNTExNjYsIDAuMjU4Njg5LCAwLjQyNjE4OSwgMC42Mzc2OCwgMC44NDY3OTcsIDEuMDU5MDUsIDEuMjY5MzYiLCBcCi0gICAgICAgICAgIjAuMDUxMTUzLCAwLjI1OTI4OSwgMC40MjcyOTQsIDAuNjM2ODY2LCAwLjg0Njc5OCwgMS4wNTkwNSwgMS4yNjk0IiwgXAotICAgICAgICAgICIwLjA1MTE1NSwgMC4yNTkyNjgsIDAuNDI2OTA3LCAwLjYzNzEzNSwgMC44NDY3OTgsIDEuMDU5MDUsIDEuMjY5MzMiLCBcCi0gICAgICAgICAgIjAuMDUxMTM2LCAwLjI1ODcyMiwgMC40MjY5OCwgMC42Mzc0NTgsIDAuODQ2NzUsIDEuMDU5MDUsIDEuMjY3MzQiLCBcCi0gICAgICAgICAgIjAuMDUxMTYsIDAuMjU4ODE5LCAwLjQyNzU4NSwgMC42MzgxNjksIDAuODQ4NjMzLCAxLjA1OTA2LCAxLjI2OTUzIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE3Mjk2OSwgMC4yNzY2MDMsIDAuMzU5NTkzLCAwLjQ2MzMwNCwgMC41NjcwNjQsIDAuNjcwOTM4LCAwLjc3NDY5OSIsIFwKLSAgICAgICAgICAiMC4xODMwODEsIDAuMjg2NzIyLCAwLjM2OTcwOCwgMC40NzMzNzEsIDAuNTc3MTgyLCAwLjY4MDkzNCwgMC43ODQ3OCIsIFwKLSAgICAgICAgICAiMC4xOTU3NjgsIDAuMjk5NDIyLCAwLjM4MjM5OSwgMC40ODYxMTQsIDAuNTg5ODY0LCAwLjY5MzczOSwgMC43OTczNjYiLCBcCi0gICAgICAgICAgIjAuMjA4MTkyLCAwLjMxMTg1MSwgMC4zOTQ4MjcsIDAuNDk4NTM3LCAwLjYwMjI4NywgMC43MDYxNTcsIDAuODA5OTIzIiwgXAotICAgICAgICAgICIwLjIxOTYwNCwgMC4zMjMyNjIsIDAuNDA2MjQ0LCAwLjUwOTk1MiwgMC42MTM3MDUsIDAuNzE3NTgyLCAwLjgyMTI0NSIsIFwKLSAgICAgICAgICAiMC4yMzU1NDUsIDAuMzM5MiwgMC40MjIxNzYsIDAuNTI1ODksIDAuNjI5NjM1LCAwLjczMzUxOCwgMC44MzcyNjQiLCBcCi0gICAgICAgICAgIjAuMjQ4MDYxLCAwLjM1MTcwNSwgMC40MzQ2OTUsIDAuNTM4NDA3LCAwLjY0MjE2OCwgMC43NDU5NjIsIDAuODQ5NzY1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1MTE4MiwgMC4yNTg3NTksIDAuNDI3MDQsIDAuNjM2NzQxLCAwLjg0NjcyNiwgMS4wNTYzNiwgMS4yNjYzNCIsIFwKLSAgICAgICAgICAiMC4wNTEyMDIsIDAuMjU4NzcyLCAwLjQyNzAxOSwgMC42MzY1NzYsIDAuODQ3NzQ5LCAxLjA1ODEsIDEuMjY2MjkiLCBcCi0gICAgICAgICAgIjAuMDUxMTkxLCAwLjI1ODY5MywgMC40MjY1OTksIDAuNjM3MjE3LCAwLjg0Njg4NCwgMS4wNTYxNiwgMS4yNjcwMSIsIFwKLSAgICAgICAgICAiMC4wNTExODUsIDAuMjU4NjU3LCAwLjQyNjQ5MiwgMC42MzcyMjIsIDAuODQ2ODc2LCAxLjA1NjE5LCAxLjI2NjMzIiwgXAotICAgICAgICAgICIwLjA1MTE1NywgMC4yNTg5MjEsIDAuNDI3MDMxLCAwLjYzNjcwMiwgMC44NDY3NzEsIDEuMDU2MzQsIDEuMjY4NDgiLCBcCi0gICAgICAgICAgIjAuMDUxMTg2LCAwLjI1ODkwNywgMC40MjcwMTYsIDAuNjM3MjI1LCAwLjg0Njg0OCwgMS4wNTYzNCwgMS4yNjYyOCIsIFwKLSAgICAgICAgICAiMC4wNTEyMDIsIDAuMjU4NzU2LCAwLjQyNzAzMSwgMC42MzY3MywgMC44NDYyMTgsIDEuMDU2NSwgMS4yNjYwOSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcHJlc2V0OwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMTg0OTIsIDAuMzIwMjE0LCAwLjQwMTY5MSwgMC41MDM2MjgsIDAuNjA1NTUzLCAwLjcwNzQ5MywgMC44MDk0MDIiLCBcCi0gICAgICAgICAgIjAuMjI4Mzg1LCAwLjMzMDA2OCwgMC40MTE1NzcsIDAuNTEzNDk5LCAwLjYxNTQ2OSwgMC43MTczNjIsIDAuODE5MjU1IiwgXAotICAgICAgICAgICIwLjI0MDQ0LCAwLjM0MjA5OSwgMC40MjM2MjgsIDAuNTI1NTkxLCAwLjYyNzUyLCAwLjcyOTQxOCwgMC44MzEzNzUiLCBcCi0gICAgICAgICAgIjAuMjUxOTAzLCAwLjM1MzYzMiwgMC40MzUwOTcsIDAuNTM3MDI0LCAwLjYzODk0OCwgMC43NDA4ODIsIDAuODQyNzc2IiwgXAotICAgICAgICAgICIwLjI2MTcyNCwgMC4zNjM0NzgsIDAuNDQ0OTM5LCAwLjU0NjkwNiwgMC42NDg4MjEsIDAuNzUwNzU0LCAwLjg1MjY1NiIsIFwKLSAgICAgICAgICAiMC4yNzU1OTksIDAuMzc3MzIzLCAwLjQ1ODc4NywgMC41NjA3MjcsIDAuNjYyNTQ2LCAwLjc2NDU4MSwgMC44NjY1MTEiLCBcCi0gICAgICAgICAgIjAuMjg2LCAwLjM4NzcxNiwgMC40NjkxODEsIDAuNTcxMTQ4LCAwLjY3MzA2NiwgMC43NzUwMDUsIDAuODc2OTAxIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1MTIxMiwgMC4yNTg3NzUsIDAuNDI3NjMyLCAwLjYzODE4NCwgMC44NDg2MjksIDEuMDU4OTksIDEuMjY5NTEiLCBcCi0gICAgICAgICAgIjAuMDUxMjA3LCAwLjI1ODY2NywgMC40Mjc0MTMsIDAuNjM4MTg4LCAwLjg0ODU3OSwgMS4wNTkwNSwgMS4yNjk0MSIsIFwKLSAgICAgICAgICAiMC4wNTEyMTQsIDAuMjU4NjM1LCAwLjQyNzM0LCAwLjYzODE5LCAwLjg0ODYzOSwgMS4wNTkwNSwgMS4yNjk0NCIsIFwKLSAgICAgICAgICAiMC4wNTEyMTMsIDAuMjU4Nzc1LCAwLjQyNzMzOCwgMC42MzgxMzQsIDAuODQ4NDYyLCAxLjA1OTAzLCAxLjI2OTQzIiwgXAotICAgICAgICAgICIwLjA1MTIxMiwgMC4yNTkyOTEsIDAuNDI3NTAyLCAwLjYzODIxMiwgMC44NDg2MjksIDEuMDU5MDcsIDEuMjY5NTMiLCBcCi0gICAgICAgICAgIjAuMDUxMjA3LCAwLjI1OTI3MiwgMC40MjY5NDcsIDAuNjM4MTcyLCAwLjg0ODU1NSwgMS4wNTkwNiwgMS4yNjk1MyIsIFwKLSAgICAgICAgICAiMC4wNTEyMTQsIDAuMjU5MDkxLCAwLjQyNzM1MSwgMC42MzgyMDUsIDAuODQ4NjM2LCAxLjA1OTExLCAxLjI2OTUxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiBjbGVhcjsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTkzNTA3LCAwLjI5NTIzOCwgMC4zNzY3MTIsIDAuNDc4NjU0LCAwLjU4MDU3OSwgMC42ODI1MDUsIDAuNzg0NDI1IiwgXAotICAgICAgICAgICIwLjIwMjk5OCwgMC4zMDQ3MjEsIDAuMzg2MTk4LCAwLjQ4ODEzNiwgMC41OTAwNiwgMC42OTIwMDEsIDAuNzkzOTA5IiwgXAotICAgICAgICAgICIwLjIxMzg2NSwgMC4zMTU1OSwgMC4zOTcwNTMsIDAuNDk4OTY3LCAwLjYwMDgxMywgMC43MDI4NTIsIDAuODA0Nzc1IiwgXAotICAgICAgICAgICIwLjIyNDU5MiwgMC4zMjYzMTEsIDAuNDA3Nzc0LCAwLjUwOTc0MywgMC42MTE2NTksIDAuNzEzNTQ4LCAwLjgxNTQ5MyIsIFwKLSAgICAgICAgICAiMC4yMzUxNTYsIDAuMzM2ODg3LCAwLjQxODM0OCwgMC41MjAzMDIsIDAuNjIyMjI3LCAwLjcyNDE3MywgMC44MjYwNzciLCBcCi0gICAgICAgICAgIjAuMjUxODA4LCAwLjM1MzUyOCwgMC40MzQ5OTIsIDAuNTM2OTQxLCAwLjYzODg2NSwgMC43NDA3OTQsIDAuODQyNzE2IiwgXAotICAgICAgICAgICIwLjI2NTc0LCAwLjM2NzQ2LCAwLjQ0ODkyNCwgMC41NTA4NzUsIDAuNjUyNzk4LCAwLjc1NDgyMSwgMC44NTY2NDkiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDUxMjEsIDAuMjU4Nzc4LCAwLjQyNzYyNSwgMC42MzgxODMsIDAuODQ4NjQ1LCAxLjA1ODkzLCAxLjI2OTUxIiwgXAotICAgICAgICAgICIwLjA1MTE5MiwgMC4yNTg3NzQsIDAuNDI3NjMsIDAuNjM4MTg0LCAwLjg0ODYyOSwgMS4wNTg5LCAxLjI2OTUxIiwgXAotICAgICAgICAgICIwLjA1MTIwNiwgMC4yNTkyNzMsIDAuNDI3NTMzLCAwLjYzODA4OCwgMC44NDg0NzMsIDEuMDU5MDgsIDEuMjY5NTMiLCBcCi0gICAgICAgICAgIjAuMDUxMjExLCAwLjI1ODksIDAuNDI3NTA1LCAwLjYzODIwNywgMC44NDg2MzQsIDEuMDU4ODgsIDEuMjY5NTEiLCBcCi0gICAgICAgICAgIjAuMDUxMjExLCAwLjI1OTI1NCwgMC40Mjc1NDgsIDAuNjM4MTcyLCAwLjg0ODYxOSwgMS4wNTg4OSwgMS4yNjk0OCIsIFwKLSAgICAgICAgICAiMC4wNTEyMDQsIDAuMjU5MjY2LCAwLjQyNzU5NiwgMC42MzgxNzMsIDAuODQ4NjEyLCAxLjA1OTA0LCAxLjI2OTQ5IiwgXAotICAgICAgICAgICIwLjA1MTE4NiwgMC4yNTg3MjcsIDAuNDI3NTk2LCAwLjYzODE3MiwgMC44NDg2MTQsIDEuMDU4ODksIDEuMjY5NDgiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTU4MjE4LCAwLjI2MTkyMSwgMC4zNDQ4ODcsIDAuNDQ4NjUzLCAwLjU1MjM3OCwgMC42NTYxMTYsIDAuNzU5ODQ2IiwgXAotICAgICAgICAgICIwLjE2NzgzMiwgMC4yNzE0ODQsIDAuMzU0NDUsIDAuNDU4MjI4LCAwLjU2MTk0NSwgMC42NjU2OTQsIDAuNzY5NDA2IiwgXAotICAgICAgICAgICIwLjE3ODYzMywgMC4yODIzNTEsIDAuMzY1Mjk3LCAwLjQ2OTA2LCAwLjU3Mjc4OCwgMC42NzY1MzIsIDAuNzgwMjU5IiwgXAotICAgICAgICAgICIwLjE4ODQ2OCwgMC4yOTIxMDEsIDAuMzc1MDg3LCAwLjQ3ODg2NCwgMC41ODI1NzMsIDAuNjg2MzAyLCAwLjc5MDAzMyIsIFwKLSAgICAgICAgICAiMC4xOTg3NTcsIDAuMzAyNDY2LCAwLjM4NTQ1LCAwLjQ4OTIwNSwgMC41OTI5MjcsIDAuNjk2NjcxLCAwLjgwMDQwMSIsIFwKLSAgICAgICAgICAiMC4yMTYyNTcsIDAuMzE5OTU3LCAwLjQwMjk1NywgMC41MDY2OTMsIDAuNjEwNDEyLCAwLjcxNDAwMiwgMC44MTc4OTEiLCBcCi0gICAgICAgICAgIjAuMjI5NjU2LCAwLjMzMzMxMywgMC40MTYyODMsIDAuNTIwMDUzLCAwLjYyMzc1NCwgMC43Mjc0OTgsIDAuODMxMjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDUxMTQ2LCAwLjI1OTAwMywgMC40MjcxNTYsIDAuNjM3NTQ4LCAwLjg0NzgzNywgMS4wNTgxNSwgMS4yNjg0MiIsIFwKLSAgICAgICAgICAiMC4wNTExNjMsIDAuMjU4OTA0LCAwLjQyNzEwOSwgMC42Mzc1NjEsIDAuODQ3ODM1LCAxLjA1ODIsIDEuMjY4NCIsIFwKLSAgICAgICAgICAiMC4wNTExNjQsIDAuMjU4OTkzLCAwLjQyNzE1NSwgMC42Mzc1MzIsIDAuODQ3ODMxLCAxLjA1ODEyLCAxLjI2ODQyIiwgXAotICAgICAgICAgICIwLjA1MTE0NSwgMC4yNTg5NzYsIDAuNDI3MTQzLCAwLjYzNzQ5NCwgMC44NDc4MjQsIDEuMDU4MDYsIDEuMjY4NDIiLCBcCi0gICAgICAgICAgIjAuMDUxMTQzLCAwLjI1ODk5MSwgMC40MjcxODgsIDAuNjM3NTY1LCAwLjg0Nzc4NywgMS4wNTgwOCwgMS4yNjg1MyIsIFwKLSAgICAgICAgICAiMC4wNTExNTIsIDAuMjU4NzAzLCAwLjQyNzE5MSwgMC42Mzc0ODIsIDAuODQ3NzQ5LCAxLjA1ODAyLCAxLjI2ODM2IiwgXAotICAgICAgICAgICIwLjA1MTE2NiwgMC4yNTg5OTEsIDAuNDI3MTg3LCAwLjYzNzUwNCwgMC44NDc4NjcsIDEuMDU4MDMsIDEuMjY4MzgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1NDMyLCAwLjAwNTQ4NywgMC4wMDU0OTQsIDAuMDA1NDk5LCAwLjAwNTUwMSwgMC4wMDU1MDIsIDAuMDA1NTAxIiwgXAotICAgICAgICAgICIwLjAwNTQxOSwgMC4wMDU0NzQsIDAuMDA1NDgyLCAwLjAwNTQ4NCwgMC4wMDU0ODgsIDAuMDA1NDksIDAuMDA1NDg2IiwgXAotICAgICAgICAgICIwLjAwNTQxNiwgMC4wMDU0NzEsIDAuMDA1NDc4LCAwLjAwNTQ4MiwgMC4wMDU0ODMsIDAuMDA1NDg1LCAwLjAwNTQ4NSIsIFwKLSAgICAgICAgICAiMC4wMDU0MjIsIDAuMDA1NDc3LCAwLjAwNTQ4NCwgMC4wMDU0ODcsIDAuMDA1NDg5LCAwLjAwNTQ5MiwgMC4wMDU0OTIiLCBcCi0gICAgICAgICAgIjAuMDA1NDI5LCAwLjAwNTQ4NCwgMC4wMDU0OTIsIDAuMDA1NDk2LCAwLjAwNTQ5NywgMC4wMDU0OTgsIDAuMDA1NDk5IiwgXAotICAgICAgICAgICIwLjAwNTQ0NSwgMC4wMDU1LCAwLjAwNTUwNywgMC4wMDU1MSwgMC4wMDU1MTIsIDAuMDA1NTEzLCAwLjAwNTUxNSIsIFwKLSAgICAgICAgICAiMC4wMDU0NjEsIDAuMDA1NTE2LCAwLjAwNTUyMywgMC4wMDU1MjcsIDAuMDA1NTI4LCAwLjAwNTUzLCAwLjAwNTUzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1NjI0LCAwLjAwNTY4NSwgMC4wMDU2OTUsIDAuMDA1Njk3LCAwLjAwNTcsIDAuMDA1NzAxLCAwLjAwNTcwMiIsIFwKLSAgICAgICAgICAiMC4wMDU2MTEsIDAuMDA1NjcyLCAwLjAwNTY4LCAwLjAwNTY4NCwgMC4wMDU2ODYsIDAuMDA1Njg4LCAwLjAwNTY4OCIsIFwKLSAgICAgICAgICAiMC4wMDU2MDQsIDAuMDA1NjY2LCAwLjAwNTY3NCwgMC4wMDU2NzcsIDAuMDA1Njc5LCAwLjAwNTY4MSwgMC4wMDU2ODIiLCBcCi0gICAgICAgICAgIjAuMDA1NjAzLCAwLjAwNTY2NSwgMC4wMDU2NzMsIDAuMDA1Njc3LCAwLjAwNTY3OSwgMC4wMDU2OCwgMC4wMDU2ODEiLCBcCi0gICAgICAgICAgIjAuMDA1NjA3LCAwLjAwNTY2OSwgMC4wMDU2NzcsIDAuMDA1NjgxLCAwLjAwNTY4MywgMC4wMDU2ODQsIDAuMDA1Njg1IiwgXAotICAgICAgICAgICIwLjAwNTYxNiwgMC4wMDU2NzcsIDAuMDA1Njg1LCAwLjAwNTY4OSwgMC4wMDU2OTEsIDAuMDA1NjkyLCAwLjAwNTY5MyIsIFwKLSAgICAgICAgICAiMC4wMDU2MjgsIDAuMDA1NjksIDAuMDA1Njk3LCAwLjAwNTcwMSwgMC4wMDU3MDMsIDAuMDA1NzA0LCAwLjAwNTcwNSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDcwNzUsIDAuMDA3MTIxLCAwLjAwNzExOCwgMC4wMDcxMTQsIDAuMDA3MTExLCAwLjAwNzEwOSwgMC4wMDcxMDYiLCBcCi0gICAgICAgICAgIjAuMDA3MDY1LCAwLjAwNzExMSwgMC4wMDcxMDgsIDAuMDA3MTA0LCAwLjAwNzEsIDAuMDA3MDk4LCAwLjAwNzA5NiIsIFwKLSAgICAgICAgICAiMC4wMDcwNjEsIDAuMDA3MTA3LCAwLjAwNzEwNSwgMC4wMDcxLCAwLjAwNzA5NywgMC4wMDcwOTQsIDAuMDA3MDkyIiwgXAotICAgICAgICAgICIwLjAwNzA2MywgMC4wMDcxMSwgMC4wMDcxMDgsIDAuMDA3MTA0LCAwLjAwNzEsIDAuMDA3MDk3LCAwLjAwNzA5NSIsIFwKLSAgICAgICAgICAiMC4wMDcwNjYsIDAuMDA3MTEzLCAwLjAwNzExMSwgMC4wMDcxMDksIDAuMDA3MTA2LCAwLjAwNzA5NywgMC4wMDcxMDIiLCBcCi0gICAgICAgICAgIjAuMDA3MDczLCAwLjAwNzEyLCAwLjAwNzEyLCAwLjAwNzExMywgMC4wMDcxMSwgMC4wMDcxMDQsIDAuMDA3MTA5IiwgXAotICAgICAgICAgICIwLjAwNzA4LCAwLjAwNzEyNywgMC4wMDcxMjUsIDAuMDA3MTIzLCAwLjAwNzExOSwgMC4wMDcxMTYsIDAuMDA3MTE1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHNjYWxhcikgewotICAgICAgICB2YWx1ZXMoIjAiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1Mjg4LCAwLjAwNTM0NCwgMC4wMDUzNTIsIDAuMDA1MzU1LCAwLjAwNTM1NywgMC4wMDUzNTcsIDAuMDA1MzU5IiwgXAotICAgICAgICAgICIwLjAwNTI3MywgMC4wMDUzMjksIDAuMDA1MzM2LCAwLjAwNTMzOSwgMC4wMDUzNDIsIDAuMDA1MzQyLCAwLjAwNTM0MyIsIFwKLSAgICAgICAgICAiMC4wMDUyNjQsIDAuMDA1MzIsIDAuMDA1MzI3LCAwLjAwNTMzLCAwLjAwNTMzLCAwLjAwNTMzOCwgMC4wMDUzMzciLCBcCi0gICAgICAgICAgIjAuMDA1MjU4LCAwLjAwNTMxNSwgMC4wMDUzMjEsIDAuMDA1MzI2LCAwLjAwNTMyOCwgMC4wMDUzMjksIDAuMDA1MzMxIiwgXAotICAgICAgICAgICIwLjAwNTI1NCwgMC4wMDUzMSwgMC4wMDUzMTcsIDAuMDA1MzIsIDAuMDA1MzIyLCAwLjAwNTMyMywgMC4wMDUzMjQiLCBcCi0gICAgICAgICAgIjAuMDA1MjQ5LCAwLjAwNTMwNSwgMC4wMDUzMTIsIDAuMDA1MzE3LCAwLjAwNTMxNywgMC4wMDUzMTksIDAuMDA1MzIxIiwgXAotICAgICAgICAgICIwLjAwNTI0MywgMC4wMDUyOTksIDAuMDA1MzA4LCAwLjAwNTMxMSwgMC4wMDUzMTMsIDAuMDA1MzEzLCAwLjAwNTMxMyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjUwNywgMC4wMDY1NjUsIDAuMDA2NTcxLCAwLjAwNjU3NSwgMC4wMDY1NzYsIDAuMDA2NTc3LCAwLjAwNjU3OCIsIFwKLSAgICAgICAgICAiMC4wMDY0OTUsIDAuMDA2NTUyLCAwLjAwNjU1OCwgMC4wMDY1NjEsIDAuMDA2NTYyLCAwLjAwNjU2MywgMC4wMDY1NjQiLCBcCi0gICAgICAgICAgIjAuMDA2NDg5LCAwLjAwNjU0NiwgMC4wMDY1NTIsIDAuMDA2NTU1LCAwLjAwNjU1NywgMC4wMDY1NTgsIDAuMDA2NTU4IiwgXAotICAgICAgICAgICIwLjAwNjQ4NiwgMC4wMDY1NDMsIDAuMDA2NTQ5LCAwLjAwNjU1MiwgMC4wMDY1NTQsIDAuMDA2NTU0LCAwLjAwNjU1NiIsIFwKLSAgICAgICAgICAiMC4wMDY0ODQsIDAuMDA2NTQyLCAwLjAwNjU0OSwgMC4wMDY1NTIsIDAuMDA2NTUzLCAwLjAwNjU1NCwgMC4wMDY1NTUiLCBcCi0gICAgICAgICAgIjAuMDA2NDg2LCAwLjAwNjU0NSwgMC4wMDY1NTEsIDAuMDA2NTU0LCAwLjAwNjU1NSwgMC4wMDY1NTYsIDAuMDA2NTU3IiwgXAotICAgICAgICAgICIwLjAwNjQ4OSwgMC4wMDY1NDksIDAuMDA2NTU1LCAwLjAwNjU1OSwgMC4wMDY1NjEsIDAuMDA2NTYyLCAwLjAwNjU2MiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUk4pICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYzMDAxNzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2Mjk0NTY7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjMwMDE3OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDUxMywgMC4wMDA0OTEsIDAuMDAwNDgyLCAwLjAwMDQ4NSwgMC4wMDA0OTIsIDAuMDAwNTEzLCAwLjAwMDUzMyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzI5OSwgMC4wMDMyODIsIDAuMDAzMjc3LCAwLjAwMzI4MiwgMC4wMDMyOTEsIDAuMDAzMzEyLCAwLjAwMzMyOSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQmU04iOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4yMTg0OTIsIDAuMjI4Mzg1LCAwLjI0MDQ0LCAwLjI1MTkwMywgMC4yNjE3MjQsIDAuMjc1NTk5LCAwLjI4NiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJlY292ZXJ5X3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiRCZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzFfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChyZWNvdmVyeV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjg3NSwgMC4wNTc1LCAwLjA0NSwgMC4wMzI1LCAwLjAyLCAwLjAwMzc1LCAtMC4wMDUiLCBcCi0gICAgICAgICAgIjAuMDgsIDAuMDY4NzUsIDAuMDU2MjUsIDAuMDQzNzUsIDAuMDMxMjUsIDAuMDE1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICIwLjA5MjUsIDAuMDgxMjUsIDAuMDY4NzUsIDAuMDU2MjUsIDAuMDQzNzUsIDAuMDI3NSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4xMDUsIDAuMDkzNzUsIDAuMDgxMjUsIDAuMDY4NzUsIDAuMDU2MjUsIDAuMDQsIDAuMDI1IiwgXAotICAgICAgICAgICIwLjExNzUsIDAuMTA2MjUsIDAuMDkzNzUsIDAuMDc1LCAwLjA2MjUsIDAuMDUyNSwgMC4wMzc1IiwgXAotICAgICAgICAgICIwLjEzMzc1LCAwLjExNjI1LCAwLjEwMzc1LCAwLjA5MTI1LCAwLjA3ODc1LCAwLjA2MjUsIDAuMDUzNzUiLCBcCi0gICAgICAgICAgIjAuMTQyNSwgMC4xMzEyNSwgMC4xMTg3NSwgMC4xMDYyNSwgMC4wOTM3NSwgMC4wNzc1LCAwLjA2MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiU04iOwotICAgICAgdGltaW5nX3R5cGUgOiByZWNvdmVyeV9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEIjsKLSAgICAgIHNkZl9jb25kIDogIkQgPT0gMSdiMCI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQocmVjb3ZlcnlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg3NSwgMC4wOTg3NSwgMC4xMDUsIDAuMTE3NSwgMC4xMjM3NSwgMC4xNCwgMC4xNTUiLCBcCi0gICAgICAgICAgIjAuMDc2MjUsIDAuMDg3NSwgMC4xLCAwLjEwNjI1LCAwLjExODc1LCAwLjEyODc1LCAwLjE0Mzc1IiwgXAotICAgICAgICAgICIwLjA3LCAwLjA3NSwgMC4wODc1LCAwLjEsIDAuMTA2MjUsIDAuMTIyNSwgMC4xMzEyNSIsIFwKLSAgICAgICAgICAiMC4wNjM3NSwgMC4wNjg3NSwgMC4wODEyNSwgMC4wOTM3NSwgMC4xLCAwLjExNjI1LCAwLjEyNSIsIFwKLSAgICAgICAgICAiMC4wNTc1LCAwLjA2MjUsIDAuMDc1LCAwLjA4NzUsIDAuMDkzNzUsIDAuMTEsIDAuMTE4NzUiLCBcCi0gICAgICAgICAgIjAuMDQ3NSwgMC4wNTg3NSwgMC4wNzEyNSwgMC4wNzc1LCAwLjA4Mzc1LCAwLjEsIDAuMTE1IiwgXAotICAgICAgICAgICIwLjA0NSwgMC4wNTYyNSwgMC4wNjI1LCAwLjA3NSwgMC4wODEyNSwgMC4wOTc1LCAwLjEwNjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogcmVtb3ZhbF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIkQmU04iOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8xX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQocmVtb3ZhbF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDE4NzUsIC0wLjAwNzUsIDAuMDA1LCAwLjAxNzUsIDAuMDMsIDAuMDQsIDAuMDU1IiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLjAwNjI1LCAwLjAxODc1LCAwLjAzNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDMxMjUsIC0wLjAxODc1LCAtMC4wMDYyNSwgMC4wMDYyNSwgMC4wMjI1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDQzNzUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAuMDEsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjA2MTI1LCAtMC4wNSwgLTAuMDM3NSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDAyNSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDc3NSwgLTAuMDY2MjUsIC0wLjA1Mzc1LCAtMC4wNDEyNSwgLTAuMDI4NzUsIC0wLjAxODc1LCAtMC4wMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDg2MjUsIC0wLjA3NSwgLTAuMDYyNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wMjc1LCAtMC4wMTg3NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oU04pICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTg5NjAyOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTg5NTg0OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTg5NjAyOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDQ1MywgMC4wMDA0NTMsIDAuMDAwNDUyLCAwLjAwMDQ1MiwgMC4wMDA0NTIsIDAuMDAwNDUyLCAwLjAwMDQ1MiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDQ1NCwgMC4wMDA0NTMsIDAuMDAwNDU0LCAwLjAwMDQ1NCwgMC4wMDA0NTQsIDAuMDAwNDU0LCAwLjAwMDQ1NCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQmIVJOIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9STl9FUV8wID09IDEnYjEiOwotICAgICAgZmFsbF9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMTU4MjA2LCAwLjE2Nzc3LCAwLjE3ODU2OSwgMC4xODg0NDIsIDAuMTk4NzU3LCAwLjIxNjI1NywgMC4yMjk2NTYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiByZWNvdmVyeV9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEJlJOIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9STl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHJlY292ZXJ5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMjUsIDAuMDAxMjUsIC0wLjAxMTI1LCAtMC4wMjM3NSwgLTAuMDM2MjUsIC0wLjA1MjUsIC0wLjA2NzUiLCBcCi0gICAgICAgICAgIjAuMDIzNzUsIDAuMDEyNSwgLTAuMDA2MjUsIC0wLjAxODc1LCAtMC4wMzEyNSwgLTAuMDQ3NSwgLTAuMDU2MjUiLCBcCi0gICAgICAgICAgIjAuMDMsIDAuMDE4NzUsIDAuMDA2MjUsIC0wLjAwNjI1LCAtMC4wMTg3NSwgLTAuMDM1LCAtMC4wNSIsIFwKLSAgICAgICAgICAiMC4wNDI1LCAwLjAzMTI1LCAwLjAxODc1LCAwLjAwNjI1LCAtMC4wMDYyNSwgLTAuMDIyNSwgLTAuMDM3NSIsIFwKLSAgICAgICAgICAiMC4wNTUsIDAuMDQzNzUsIDAuMDMxMjUsIDAuMDEyNSwgMCwgLTAuMDE2MjUsIC0wLjAyNSIsIFwKLSAgICAgICAgICAiMC4wNzEyNSwgMC4wNiwgMC4wNDc1LCAwLjAzNSwgMC4wMjI1LCAwLCAtMC4wMDg3NSIsIFwKLSAgICAgICAgICAiMC4wODYyNSwgMC4wNzUsIDAuMDYyNSwgMC4wNDM3NSwgMC4wMzEyNSwgMC4wMTUsIDAuMDA2MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiByZW1vdmFsX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUQmUk4iOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1JOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQocmVtb3ZhbF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzEyNSwgMC4wNDI1LCAwLjA1NSwgMC4wNjc1LCAwLjA4LCAwLjA5NjI1LCAwLjEwNSIsIFwKLSAgICAgICAgICAiMC4wMjYyNSwgMC4wMzEyNSwgMC4wNSwgMC4wNTYyNSwgMC4wNjg3NSwgMC4wODUsIDAuMSIsIFwKLSAgICAgICAgICAiMC4wMTM3NSwgMC4wMjUsIDAuMDM3NSwgMC4wNSwgMC4wNjI1LCAwLjA3ODc1LCAwLjA4NzUiLCBcCi0gICAgICAgICAgIjAuMDAxMjUsIDAuMDEyNSwgMC4wMjUsIDAuMDM3NSwgMC4wNSwgMC4wNjYyNSwgMC4wNzUiLCBcCi0gICAgICAgICAgIi0wLjAwNSwgMCwgMC4wMTI1LCAwLjAyNSwgMC4wMzc1LCAwLjA1Mzc1LCAwLjA2ODc1IiwgXAotICAgICAgICAgICItMC4wMjEyNSwgLTAuMDEsIDAuMDAyNSwgMC4wMTUsIDAuMDI3NSwgMC4wMzc1LCAwLjA1MjUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMjUsIC0wLjAxMjUsIDAsIDAuMDEyNSwgMC4wMjg3NSwgMC4wNDM3NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogREZGU1g0ICoKLSAqIC0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoREZGU1g0KSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuNjU4NjgzOwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIGZmIChOMzUsUUJJTlQpIHsKLSAgICBuZXh0X3N0YXRlIDogIkQiOwotICAgIGNsb2NrZWRfb24gOiAiQ0siOwotICAgIHByZXNldCA6ICIoIVNOKSI7Ci0gIH0KLSAgcGluKENLKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2Mjg4Mjc7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjI4NDg1OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDYyODgyNzsKLSAgICBjbG9jayA6IHRydWU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyNjIzLCAwLjAwMjU5NywgMC4wMDI1ODIsIDAuMDAyNTg0LCAwLjAwMjYsIDAuMDAyNjIsIDAuMDAyNjQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDY2MTEsIDAuMDA2NTgzLCAwLjAwNjU2NCwgMC4wMDY1NjMsIDAuMDA2NTc3LCAwLjAwNjYwOCwgMC4wMDY2MjciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFEJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMTY1Njk0LCAwLjE3NTk1MywgMC4xODg3MjUsIDAuMjAwNTgxLCAwLjIxMTE4NCwgMC4yMjU2MTEsIDAuMjM2ODYyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4xMTMwMjksIDAuMTIyOTM1LCAwLjEzNTE1OCwgMC4xNDY2LCAwLjE1NjE1LCAwLjE2OTM1NywgMC4xNzkzNTkiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEQpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYzMjM5OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYzMDcxODsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2MzIzOTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDI2MzEsIDAuMDAyNjA4LCAwLjAwMjU5NiwgMC4wMDI1ODcsIDAuMDAyNTg4LCAwLjAwMjU4NywgMC4wMDI1OTIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDI5MDksIDAuMDAyODk1LCAwLjAwMjg4NywgMC4wMDI4ODMsIDAuMDAyODc5LCAwLjAwMjg4MSwgMC4wMDI4ODUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiU04iOwotICAgICAgc2RmX2NvbmQgOiAiU04gPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDEyNSwgLTAuMDA3NSwgLTAuMDAxMjUsIDAuMDA1LCAwLjAxMTI1LCAwLjAxNSwgMC4wMjM3NSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxODc1LCAtMC4wMDYyNSwgMCwgMCwgMC4wMSwgMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIC0wLjAwMjUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzNzUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxODc1LCAtMC4wMDg3NSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDE1LCAtMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wNjUsIC0wLjA1Mzc1LCAtMC4wNDc1LCAtMC4wNDEyNSwgLTAuMDM1LCAtMC4wMjUsIC0wLjAyMjUiLCBcCi0gICAgICAgICAgIi0wLjA3Mzc1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wMzM3NSwgLTAuMDMxMjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxODc1LCAwLjAzLCAwLjA0MjUsIDAuMDU1LCAwLjA2MTI1LCAwLjA3NzUsIDAuMDg2MjUiLCBcCi0gICAgICAgICAgIjAuMDEzNzUsIDAuMDI1LCAwLjAzNzUsIDAuMDQzNzUsIDAuMDU2MjUsIDAuMDY2MjUsIDAuMDc1IiwgXAotICAgICAgICAgICIwLjAwNzUsIDAuMDEyNSwgMC4wMjUsIDAuMDM3NSwgMC4wNDM3NSwgMC4wNiwgMC4wNjg3NSIsIFwKLSAgICAgICAgICAiMC4wMDEyNSwgMC4wMDYyNSwgMC4wMTg3NSwgMC4wMzEyNSwgMC4wMzc1LCAwLjA1Mzc1LCAwLjA2MjUiLCBcCi0gICAgICAgICAgIi0wLjAwNSwgMC4wMDYyNSwgMC4wMTI1LCAwLjAyNSwgMC4wMzc1LCAwLjA0NzUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIi0wLjAxNSwgLTAuMDAzNzUsIDAuMDA4NzUsIDAuMDIxMjUsIDAuMDI3NSwgMC4wMzc1LCAwLjA1MjUiLCBcCi0gICAgICAgICAgIi0wLjAxNzUsIC0wLjAwNjI1LCAwLjAwNjI1LCAwLjAxMjUsIDAuMDI1LCAwLjAzNSwgMC4wNDM3NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiU04iOwotICAgICAgc2RmX2NvbmQgOiAiU04gPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDUsIDAuMDM4NzUsIDAuMDI2MjUsIDAuMDIsIDAuMDEzNzUsIDAuMDAzNzUsIC0wLjAwNSIsIFwKLSAgICAgICAgICAiMC4wNTUsIDAuMDQzNzUsIDAuMDMxMjUsIDAuMDI1LCAwLjAxODc1LCAwLjAxNSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiMC4wNjc1LCAwLjA1NjI1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDIxMjUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMDczNzUsIDAuMDY4NzUsIDAuMDU2MjUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzM3NSwgMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMDg2MjUsIDAuMDc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDUsIDAuMDQsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMDk2MjUsIDAuMDkxMjUsIDAuMDc4NzUsIDAuMDY2MjUsIDAuMDYsIDAuMDUsIDAuMDQ3NSIsIFwKLSAgICAgICAgICAiMC4xMTEyNSwgMC4xLCAwLjA4NzUsIDAuMDgxMjUsIDAuMDY4NzUsIDAuMDY1LCAwLjA1NjI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDUsIDAuMDM4NzUsIDAuMDI2MjUsIDAuMDEzNzUsIDAuMDAxMjUsIC0wLjAxNSwgLTAuMDIzNzUiLCBcCi0gICAgICAgICAgIjAuMDYxMjUsIDAuMDUsIDAuMDM3NSwgMC4wMjUsIDAuMDEyNSwgLTAuMDAzNzUsIC0wLjAxODc1IiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDU2MjUsIDAuMDQzNzUsIDAuMDMxMjUsIDAuMDE4NzUsIDAuMDA4NzUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICIwLjA4LCAwLjA2ODc1LCAwLjA1NjI1LCAwLjA0Mzc1LCAwLjAzMTI1LCAwLjAxNSwgMCIsIFwKLSAgICAgICAgICAiMC4wODYyNSwgMC4wNzUsIDAuMDYyNSwgMC4wNSwgMC4wMzc1LCAwLjAyMTI1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMDk2MjUsIDAuMDg1LCAwLjA3MjUsIDAuMDYsIDAuMDQ3NSwgMC4wMzEyNSwgMC4wMjI1IiwgXAotICAgICAgICAgICIwLjEwNSwgMC4wOTM3NSwgMC4wODEyNSwgMC4wNjg3NSwgMC4wNTYyNSwgMC4wNCwgMC4wMzEyNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAxLjA0OTk0OwotICAgIGZ1bmN0aW9uIDogIk4zNSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3NlbnNlIDogbm9uX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiByaXNpbmdfZWRnZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMjAyNiwgMC4xOTM4OTcsIDAuMjY2MzExLCAwLjMxNzY3MiwgMC40MDEwNzgsIDAuNDczMDAyLCAwLjU3NjE2NiIsIFwKLSAgICAgICAgICAiMC4xMzAzNzksIDAuMjA0MDQ4LCAwLjI3NjQ2MSwgMC4zMjc3MzQsIDAuNDEwNTg0LCAwLjQ4MzE4NywgMC41ODYyNDciLCBcCi0gICAgICAgICAgIjAuMTQzMDYsIDAuMjE2Njk0LCAwLjI4OTMzNSwgMC4zNDA0NTQsIDAuNDIzODY2LCAwLjQ5NTgzLCAwLjU5ODk5IiwgXAotICAgICAgICAgICIwLjE1NDg1NSwgMC4yMjg1MzksIDAuMzAwOTM2LCAwLjM1MjIwNiwgMC40MzQ4OTIsIDAuNTA3NjQsIDAuNjEwNzExIiwgXAotICAgICAgICAgICIwLjE2NTEzNiwgMC4yMzg3NzEsIDAuMzExNDE1LCAwLjM2MjUyMiwgMC40NDU5MzksIDAuNTE3OTAyLCAwLjYyMTA2IiwgXAotICAgICAgICAgICIwLjE3OTkxMywgMC4yNTM1NDgsIDAuMzI2MDMyLCAwLjM3NzU2NCwgMC40NjAzMjgsIDAuNTMyNzA2LCAwLjYzNTc5NCIsIFwKLSAgICAgICAgICAiMC4xOTA5NzksIDAuMjY0NjEzLCAwLjMzNzA3NiwgMC4zODg2MjQsIDAuNDcxNDIxLCAwLjU0MzY0LCAwLjY0Njg2MSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzMzIzNywgMC4xNzg5ODMsIDAuMzI2NjUsIDAuNDMyMDY1LCAwLjYwMTM1OSwgMC43NTE2OSwgMC45NjQ2ODUiLCBcCi0gICAgICAgICAgIjAuMDMzMzg2LCAwLjE3ODM0MiwgMC4zMjY2NTIsIDAuNDMxODgzLCAwLjYwMjMyLCAwLjc1MTcwMSwgMC45NjQ2ODMiLCBcCi0gICAgICAgICAgIjAuMDMzMjY0LCAwLjE3ODk1OCwgMC4zMjYwNzYsIDAuNDMyMDI1LCAwLjYwMTM3NCwgMC43NTE2ODgsIDAuOTY0NjY3IiwgXAotICAgICAgICAgICIwLjAzMzM5MywgMC4xNzgzNzksIDAuMzI2NjUsIDAuNDMxOTA1LCAwLjYwMTI5NywgMC43NTE2OTcsIDAuOTY0NjciLCBcCi0gICAgICAgICAgIjAuMDMzMjYxLCAwLjE3ODk1OCwgMC4zMjYyMzIsIDAuNDMyMDA5LCAwLjYwMTM5MywgMC43NTE2ODcsIDAuOTY0NjQzIiwgXAotICAgICAgICAgICIwLjAzMzI1NiwgMC4xNzg5NDgsIDAuMzI2NjUyLCAwLjQzMTg5MSwgMC42MDI0MzgsIDAuNzUxNjk2LCAwLjk2NDYzNSIsIFwKLSAgICAgICAgICAiMC4wMzMyMDksIDAuMTc4MDk4LCAwLjMyNjY1MSwgMC40MzE4NjIsIDAuNjAyNDQsIDAuNzUxNjU1LCAwLjk2NDYyNSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE0MDY1NCwgMC4yMTYxNjgsIDAuMjkwMDY4LCAwLjM0MjYzMiwgMC40MjY3NzksIDAuNTAwMywgMC42MDU0MzciLCBcCi0gICAgICAgICAgIjAuMTUwODgyLCAwLjIyNjM1MywgMC4zMDAxNDYsIDAuMzUyODQxLCAwLjQzNzAwNywgMC41MTA2NTIsIDAuNjE1Njk1IiwgXAotICAgICAgICAgICIwLjE2MzY5MiwgMC4yMzkxNzIsIDAuMzEzMTA2LCAwLjM2NTY5MywgMC40NDk4MzgsIDAuNTIzNDg4LCAwLjYyODU0NCIsIFwKLSAgICAgICAgICAiMC4xNzU1MTMsIDAuMjUwOTYsIDAuMzI0ODE4LCAwLjM3NzQ3MiwgMC40NjE2MzUsIDAuNTM1Mjg1LCAwLjY0MDMyOSIsIFwKLSAgICAgICAgICAiMC4xODYxNDIsIDAuMjYxNjEsIDAuMzM1NTkxLCAwLjM4ODE0MiwgMC40NzI0NzIsIDAuNTQ1OTY0LCAwLjY1MDkzOCIsIFwKLSAgICAgICAgICAiMC4yMDA1NzMsIDAuMjc2MDM3LCAwLjM1MDAzNywgMC40MDI1ODUsIDAuNDg2NzAzLCAwLjU2MDA2MywgMC42NjU4NjciLCBcCi0gICAgICAgICAgIjAuMjExODIyLCAwLjI4NzI5MiwgMC4zNjExNDgsIDAuNDEzOTIsIDAuNDk3OTQ5LCAwLjU3MTYwOCwgMC42NzY4NTciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzM1ODEsIDAuMTc3NDk0LCAwLjMyNjI4NiwgMC40MzMwOTYsIDAuNjAzODQxLCAwLjc1Mjc4MiwgMC45NjUzNDEiLCBcCi0gICAgICAgICAgIjAuMDMzNTkxLCAwLjE3ODk1NywgMC4zMjYxOTgsIDAuNDMzMDcxLCAwLjYwMzgwMywgMC43NTMxNDIsIDAuOTY1MjY4IiwgXAotICAgICAgICAgICIwLjAzMzQ5MiwgMC4xNzg5ODYsIDAuMzI2MDcxLCAwLjQzMzEyMSwgMC42MDM4NDIsIDAuNzUzMTM4LCAwLjk2NTA3MSIsIFwKLSAgICAgICAgICAiMC4wMzM1NzQsIDAuMTc4ODk3LCAwLjMyNjIyNCwgMC40MzMwNzEsIDAuNjAzODAxLCAwLjc1MzE0NiwgMC45NjUyNDEiLCBcCi0gICAgICAgICAgIjAuMDMzNDY0LCAwLjE3ODk5NywgMC4zMjYyOTcsIDAuNDMzMTQyLCAwLjYwMzk2LCAwLjc1MzIzNywgMC45NjUzOSIsIFwKLSAgICAgICAgICAiMC4wMzM1NywgMC4xNzksIDAuMzI2MzA2LCAwLjQzMzE2MSwgMC42MDM4NDIsIDAuNzUxMzAyLCAwLjk2NDg3NSIsIFwKLSAgICAgICAgICAiMC4wMzM1NDYsIDAuMTc4OTk1LCAwLjMyNTc3MiwgMC40MzMyNTUsIDAuNjAzODM1LCAwLjc1MzEzLCAwLjk2NjYxNyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcHJlc2V0OwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExMjE0NiwgMC4xODU2NDMsIDAuMjU3Nzk1LCAwLjMwOTM4OCwgMC4zOTI1NjcsIDAuNDY0NjEsIDAuNTY3Nzk0IiwgXAotICAgICAgICAgICIwLjEyMTgxNywgMC4xOTUyOTksIDAuMjY3OTM3LCAwLjMxOTg5NSwgMC40MDIyODQsIDAuNDczOTIxLCAwLjU3Nzk1MyIsIFwKLSAgICAgICAgICAiMC4xMzM5MjUsIDAuMjA3NDE5LCAwLjI3OTc2OSwgMC4zMzE1MTcsIDAuNDE0NTM5LCAwLjQ4NjUyMSwgMC41ODk2MDciLCBcCi0gICAgICAgICAgIjAuMTQ2MjE2LCAwLjIxOTY5NywgMC4yOTIwOTgsIDAuMzQzNTIsIDAuNDI2Njc5LCAwLjQ5ODc1NSwgMC42MDE5MTUiLCBcCi0gICAgICAgICAgIjAuMTU3NzQyLCAwLjIzMTIyNywgMC4zMDMzNDksIDAuMzU1MjYxLCAwLjQzODIzMiwgMC41MTAyNzEsIDAuNjEzNDEiLCBcCi0gICAgICAgICAgIjAuMTc0MTM0LCAwLjI0NzYzLCAwLjMyMDIyNCwgMC4zNzIwMDEsIDAuNDU0MDIzLCAwLjUyNjc2NCwgMC42Mjk5MDkiLCBcCi0gICAgICAgICAgIjAuMTg3NzgxLCAwLjI2MTMwMSwgMC4zMzM4NDUsIDAuMzg1NjYzLCAwLjQ2ODIwNSwgMC41NDAyOTEsIDAuNjQzNTEyIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDMzNDgyLCAwLjE3ODkxOCwgMC4zMjYxMTksIDAuNDMyMjEyLCAwLjYwMjQzNiwgMC43NTE2MDcsIDAuOTY0NTY0IiwgXAotICAgICAgICAgICIwLjAzMzQ3NCwgMC4xNzg5MDEsIDAuMzI2NjY0LCAwLjQzMjE3NywgMC42MDI0NDUsIDAuNzUxNTU1LCAwLjk2NDQ3NCIsIFwKLSAgICAgICAgICAiMC4wMzM0OTUsIDAuMTc4OTA1LCAwLjMyNjY1NSwgMC40MzIxNzIsIDAuNjAxNTEzLCAwLjc1MTYwNCwgMC45NjQ1NDMiLCBcCi0gICAgICAgICAgIjAuMDMzNDkxLCAwLjE3ODkzMywgMC4zMjY2MiwgMC40MzIzMSwgMC42MDI0NDcsIDAuNzUxNTgsIDAuOTY0NTM5IiwgXAotICAgICAgICAgICIwLjAzMzQzNiwgMC4xNzg5LCAwLjMyNjYzNywgMC40MzIyOSwgMC42MDI0MTIsIDAuNzUxNTc3LCAwLjk2NDUzOSIsIFwKLSAgICAgICAgICAiMC4wMzM0MDcsIDAuMTc4OTM1LCAwLjMyNjI0MywgMC40MzIxNDksIDAuNjAyMDM5LCAwLjc1MTU5OSwgMC45NjQ1NCIsIFwKLSAgICAgICAgICAiMC4wMzM1NjQsIDAuMTc4ODkzLCAwLjMyNjYyMiwgMC40MzIzMDUsIDAuNjAyNDIyLCAwLjc1MTU4MSwgMC45NjQ1MjYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDc4OTEsIDAuMDA4MDQ3LCAwLjAwODA2NywgMC4wMDgwNzMsIDAuMDA4MDc5LCAwLjAwODA4MSwgMC4wMDgwODMiLCBcCi0gICAgICAgICAgIjAuMDA3ODc0LCAwLjAwODAzLCAwLjAwODA1MSwgMC4wMDgwNTUsIDAuMDA4MDYyLCAwLjAwODA2NSwgMC4wMDgwNjkiLCBcCi0gICAgICAgICAgIjAuMDA3ODY3LCAwLjAwODAyMywgMC4wMDgwNDMsIDAuMDA4MDQ5LCAwLjAwODA1NCwgMC4wMDgwNTgsIDAuMDA4MDYiLCBcCi0gICAgICAgICAgIjAuMDA3ODY2LCAwLjAwODAyMiwgMC4wMDgwNDIsIDAuMDA4MDQ5LCAwLjAwODA1NCwgMC4wMDgwNTYsIDAuMDA4MDU5IiwgXAotICAgICAgICAgICIwLjAwNzg3NiwgMC4wMDgwMzIsIDAuMDA4MDUzLCAwLjAwODA1OCwgMC4wMDgwNjQsIDAuMDA4MDY3LCAwLjAwODA3IiwgXAotICAgICAgICAgICIwLjAwNzg3OCwgMC4wMDgwMzcsIDAuMDA4MDU4LCAwLjAwODA2NCwgMC4wMDgwNjksIDAuMDA4MDcyLCAwLjAwODA3NSIsIFwKLSAgICAgICAgICAiMC4wMDc4OTMsIDAuMDA4MDUsIDAuMDA4MDcxLCAwLjAwODA3NywgMC4wMDgwODIsIDAuMDA4MDg1LCAwLjAwODA4NyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA3Nzc5LCAwLjAwNzk0MSwgMC4wMDc5NjMsIDAuMDA3OTY5LCAwLjAwNzk3NiwgMC4wMDc5NzgsIDAuMDA3OTgxIiwgXAotICAgICAgICAgICIwLjAwNzc3MywgMC4wMDc5MjgsIDAuMDA3OTUxLCAwLjAwNzk1OCwgMC4wMDc5NjIsIDAuMDA3OTY2LCAwLjAwNzk2OSIsIFwKLSAgICAgICAgICAiMC4wMDc3NjUsIDAuMDA3OTI0LCAwLjAwNzk0OCwgMC4wMDc5NTYsIDAuMDA3OTYyLCAwLjAwNzk2NSwgMC4wMDc5NjgiLCBcCi0gICAgICAgICAgIjAuMDA3Nzc5LCAwLjAwNzkzNiwgMC4wMDc5NTcsIDAuMDA3OTY1LCAwLjAwNzk3LCAwLjAwNzk3MywgMC4wMDc5NzYiLCBcCi0gICAgICAgICAgIjAuMDA3Nzk0LCAwLjAwNzk1LCAwLjAwNzk3MywgMC4wMDc5NzksIDAuMDA3OTg2LCAwLjAwNzk4OSwgMC4wMDc5OTEiLCBcCi0gICAgICAgICAgIjAuMDA3ODA2LCAwLjAwNzk2MywgMC4wMDc5ODUsIDAuMDA3OTkzLCAwLjAwNzk5NywgMC4wMDgwMDEsIDAuMDA4MDA0IiwgXAotICAgICAgICAgICIwLjAwNzgyNiwgMC4wMDc5ODcsIDAuMDA4MDEsIDAuMDA4MDE3LCAwLjAwODAyMywgMC4wMDgwMjYsIDAuMDA4MDI4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiU04iOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA4MjIzLCAwLjAwODM3NywgMC4wMDgzOTcsIDAuMDA4NDAzLCAwLjAwODQxLCAwLjAwODQxMiwgMC4wMDg0MTUiLCBcCi0gICAgICAgICAgIjAuMDA4MjA2LCAwLjAwODM2MSwgMC4wMDgzODIsIDAuMDA4Mzg4LCAwLjAwODM5MywgMC4wMDgzOTYsIDAuMDA4Mzk4IiwgXAotICAgICAgICAgICIwLjAwODE5NywgMC4wMDgzNTMsIDAuMDA4MzczLCAwLjAwODM3OSwgMC4wMDgzODUsIDAuMDA4Mzg5LCAwLjAwODM5MiIsIFwKLSAgICAgICAgICAiMC4wMDgxOSwgMC4wMDgzNDQsIDAuMDA4MzY1LCAwLjAwODM3MSwgMC4wMDgzNzYsIDAuMDA4MzgxLCAwLjAwODM4NCIsIFwKLSAgICAgICAgICAiMC4wMDgxODYsIDAuMDA4MzQsIDAuMDA4MzYsIDAuMDA4MzY2LCAwLjAwODM3MiwgMC4wMDgzNzcsIDAuMDA4MzgiLCBcCi0gICAgICAgICAgIjAuMDA4MTgzLCAwLjAwODM0LCAwLjAwODM2MSwgMC4wMDgzNjgsIDAuMDA4Mzc1LCAwLjAwODM3NiwgMC4wMDgzOCIsIFwKLSAgICAgICAgICAiMC4wMDgxODUsIDAuMDA4MzQyLCAwLjAwODM2MywgMC4wMDgzNzIsIDAuMDA4Mzc2LCAwLjAwODM3OSwgMC4wMDgzODEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoc2NhbGFyKSB7Ci0gICAgICAgIHZhbHVlcygiMCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUU4pICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMS4wMzc4MTsKLSAgICBmdW5jdGlvbiA6ICJRQklOVCI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3NlbnNlIDogbm9uX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiByaXNpbmdfZWRnZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNjU2OTQsIDAuMjM4MjYsIDAuMzEwNjk3LCAwLjM2MjQyNiwgMC40NDUyMTksIDAuNTE3Njg1LCAwLjYyMTI2NiIsIFwKLSAgICAgICAgICAiMC4xNzU5NTMsIDAuMjQ4NDkzLCAwLjMyMDkwNywgMC4zNzI2NTUsIDAuNDU1NDUxLCAwLjUyNzkxLCAwLjYzMTQ3MiIsIFwKLSAgICAgICAgICAiMC4xODg3MjUsIDAuMjYxMjY3LCAwLjMzMzY5OSwgMC4zODU0MzYsIDAuNDY4MjI4LCAwLjU0MDY5LCAwLjY0NDIzOCIsIFwKLSAgICAgICAgICAiMC4yMDA1ODEsIDAuMjczMTIzLCAwLjM0NTU0NCwgMC4zOTcyODYsIDAuNDgwMDgxLCAwLjU1MjU0MSwgMC42NTYxMDEiLCBcCi0gICAgICAgICAgIjAuMjExMTg0LCAwLjI4Mzc1MiwgMC4zNTYyMSwgMC40MDc5MzksIDAuNDkwNzc5LCAwLjU2MzIwNCwgMC42NjY3NjIiLCBcCi0gICAgICAgICAgIjAuMjI1NjExLCAwLjI5ODE4OCwgMC4zNzA2MzcsIDAuNDIyMzY1LCAwLjUwNTE1MiwgMC41Nzc2NDEsIDAuNjgxMjk3IiwgXAotICAgICAgICAgICIwLjIzNjg2MiwgMC4zMDk0MzgsIDAuMzgxODEsIDAuNDMzNTc1LCAwLjUxNjM0NiwgMC41ODg4MSwgMC42OTIzNjIiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzIyNzksIDAuMTc4MDE2LCAwLjMyNzU0NSwgMC40MzQzOTMsIDAuNjA1MzU2LCAwLjc1NDgyOCwgMC45Njc3MzUiLCBcCi0gICAgICAgICAgIjAuMDMyMywgMC4xNzgxNzgsIDAuMzI3NTE5LCAwLjQzNDM4NiwgMC42MDUzMzEsIDAuNzU1MDEyLCAwLjk2NzgzNSIsIFwKLSAgICAgICAgICAiMC4wMzIyODUsIDAuMTc4MTczLCAwLjMyNzA2MywgMC40MzQzODIsIDAuNjA1Mzc4LCAwLjc1NTAyOSwgMC45Njc2ODkiLCBcCi0gICAgICAgICAgIjAuMDMyMjk0LCAwLjE3ODIzNywgMC4zMjc1NCwgMC40MzQzODcsIDAuNjA1MzIsIDAuNzU1MDE4LCAwLjk2NzgxMyIsIFwKLSAgICAgICAgICAiMC4wMzIyODksIDAuMTc4MTY4LCAwLjMyNzUyMSwgMC40MzQ0MDMsIDAuNjA1NjMxLCAwLjc1NTE4NCwgMC45Njc5MjUiLCBcCi0gICAgICAgICAgIjAuMDMyMjc4LCAwLjE3ODE3MSwgMC4zMjc1MTQsIDAuNDM0NDA4LCAwLjYwNTM3NywgMC43NTM2ODEsIDAuOTY3NDExIiwgXAotICAgICAgICAgICIwLjAzMjI2OSwgMC4xNzgxNzEsIDAuMzI3MTIxLCAwLjQzNDQ1MywgMC42MDUzNTEsIDAuNzU1MDIxLCAwLjk2OTEyMiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE0NzA0MSwgMC4yMjEwMDksIDAuMjk0Njg2LCAwLjM0NzMwNywgMC40MzE1OTgsIDAuNTA1MjM4LCAwLjYxMDUwNyIsIFwKLSAgICAgICAgICAiMC4xNTcxNywgMC4yMzExNDEsIDAuMzA0ODExLCAwLjM1NzQyOSwgMC40NDE1OTYsIDAuNTE1MzcxLCAwLjYyMDYyIiwgXAotICAgICAgICAgICIwLjE2OTg1NSwgMC4yNDM4MjIsIDAuMzE3NTA3LCAwLjM3MDEyLCAwLjQ1NDQwNiwgMC41MjgwNTQsIDAuNjMzMzIzIiwgXAotICAgICAgICAgICIwLjE4MTY0MSwgMC4yNTU2MDUsIDAuMzI5Mjc5LCAwLjM4MTg5NywgMC40NjYxMzIsIDAuNTM5ODM4LCAwLjY0NTA4OCIsIFwKLSAgICAgICAgICAiMC4xOTE5MzEsIDAuMjY1ODk5LCAwLjMzOTU4NSwgMC4zOTIxOTYsIDAuNDc2NDgzLCAwLjU1MDEzLCAwLjY1NTM5OSIsIFwKLSAgICAgICAgICAiMC4yMDY3MTEsIDAuMjgwNjgsIDAuMzU0MzUxLCAwLjQwNjk2MywgMC40OTExOTMsIDAuNTY0OTA2LCAwLjY3MDE1OSIsIFwKLSAgICAgICAgICAiMC4yMTc3NjksIDAuMjkxNzM1LCAwLjM2NTQxNiwgMC40MTgwMjksIDAuNTAyMjYzLCAwLjU3NTk0OCwgMC42ODEyMjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzE5MDgsIDAuMTc3NjY0LCAwLjMyNjgzMywgMC40MzMwNjksIDAuNjAzMTYxLCAwLjc1MzcwMSwgMC45NjcxMDgiLCBcCi0gICAgICAgICAgIjAuMDMxOTMzLCAwLjE3NzgzMywgMC4zMjY4MzUsIDAuNDMzMDM3LCAwLjYwNDAzMSwgMC43NTM3MjMsIDAuOTY3MDY1IiwgXAotICAgICAgICAgICIwLjAzMTkyOSwgMC4xNzc2NjUsIDAuMzI2NDY2LCAwLjQzMzA1NiwgMC42MDMyMDEsIDAuNzUzNjc5LCAwLjk2NzA5MSIsIFwKLSAgICAgICAgICAiMC4wMzE5MzgsIDAuMTc3ODIxLCAwLjMyNjgzMywgMC40MzMwMzgsIDAuNjAzNjEzLCAwLjc1MzcwNywgMC45NjcwNTQiLCBcCi0gICAgICAgICAgIjAuMDMxOTI5LCAwLjE3NzY2NSwgMC4zMjY0MjEsIDAuNDMzMDU0LCAwLjYwMzIwOCwgMC43NTM2NzUsIDAuOTY3MDcyIiwgXAotICAgICAgICAgICIwLjAzMTkzLCAwLjE3NzY2NSwgMC4zMjY4MzksIDAuNDMzMzk5LCAwLjYwNDIxMywgMC43NTM3MDIsIDAuOTY3MDM3IiwgXAotICAgICAgICAgICIwLjAzMTkxMiwgMC4xNzc3NDYsIDAuMzI2ODI0LCAwLjQzMzM4MywgMC42MDQyMTUsIDAuNzUzNTk4LCAwLjk2NzAyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiBjbGVhcjsKLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMzg4MDgsIDAuMjEyODE3LCAwLjI4NjQ1MiwgMC4zMzkwODMsIDAuNDIzMzYzLCAwLjQ5NzAxOSwgMC42MDIyODYiLCBcCi0gICAgICAgICAgIjAuMTQ4NDcyLCAwLjIyMjQ3LCAwLjI5NjE2OCwgMC4zNDg4NDQsIDAuNDMzMDM2LCAwLjUwNjY4OCwgMC42MTIwNTIiLCBcCi0gICAgICAgICAgIjAuMTYwNTk2LCAwLjIzNDYxLCAwLjMwODI4LCAwLjM2MDkxMywgMC40NDUxOTcsIDAuNTE4ODQxLCAwLjYyNDA5MyIsIFwKLSAgICAgICAgICAiMC4xNzI4ODQsIDAuMjQ2OTEzLCAwLjMyMDU5MSwgMC4zNzMxODksIDAuNDU3NDc3LCAwLjUzMTEzOCwgMC42MzY0MDMiLCBcCi0gICAgICAgICAgIjAuMTg0NDA5LCAwLjI1ODQzMiwgMC4zMzIwNjMsIDAuMzg0NzY2LCAwLjQ2OTAwMSwgMC41NDI2NTUsIDAuNjQ3OTE1IiwgXAotICAgICAgICAgICIwLjIwMDc5OSwgMC4yNzQ4MTcsIDAuMzQ4NTAyLCAwLjQwMTE1NiwgMC40ODUyOCwgMC41NTkwNTYsIDAuNjY0MzIiLCBcCi0gICAgICAgICAgIjAuMjE0NDgsIDAuMjg4NDk4LCAwLjM2MjE3OSwgMC40MTQ4NSwgMC40OTkwNDYsIDAuNTcyNzEsIDAuNjc3OTg0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDMxOTYyLCAwLjE3NzcwNSwgMC4zMjY3MDgsIDAuNDMzMTEyLCAwLjYwNDMxNiwgMC43NTM2NDksIDAuOTY3MDc3IiwgXAotICAgICAgICAgICIwLjAzMTk3MywgMC4xNzc3NDksIDAuMzI2ODk4LCAwLjQzMzQwNywgMC42MDQzNTIsIDAuNzUzNjg0LCAwLjk2Njk4NSIsIFwKLSAgICAgICAgICAiMC4wMzE5NjQsIDAuMTc3NjgzLCAwLjMyNjg2NywgMC40MzM0ODksIDAuNjAzMjk4LCAwLjc1MzY2MywgMC45NjcwODMiLCBcCi0gICAgICAgICAgIjAuMDMxOTU4LCAwLjE3NzgyNywgMC4zMjY4MjksIDAuNDMzMjU1LCAwLjYwNDM0LCAwLjc1MzYzMywgMC45NjcwNTEiLCBcCi0gICAgICAgICAgIjAuMDMxOTczLCAwLjE3NzY4MSwgMC4zMjY4NDIsIDAuNDMzMTQ1LCAwLjYwNDMyMiwgMC43NTM2ODIsIDAuOTY2OTgxIiwgXAotICAgICAgICAgICIwLjAzMTk1OSwgMC4xNzc2NzcsIDAuMzI2NTgxLCAwLjQzMzExNCwgMC42MDM0NTksIDAuNzUzNjUzLCAwLjk2NzA1NSIsIFwKLSAgICAgICAgICAiMC4wMzE5NzIsIDAuMTc3NzI4LCAwLjMyNjgxNCwgMC40MzMxNDksIDAuNjA0MjU4LCAwLjc1MzYwNiwgMC45NjcwMyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNzc3OSwgMC4wMDc5NDEsIDAuMDA3OTYzLCAwLjAwNzk2OSwgMC4wMDc5NzYsIDAuMDA3OTc4LCAwLjAwNzk4MSIsIFwKLSAgICAgICAgICAiMC4wMDc3NzMsIDAuMDA3OTI4LCAwLjAwNzk1MSwgMC4wMDc5NTgsIDAuMDA3OTYyLCAwLjAwNzk2NiwgMC4wMDc5NjkiLCBcCi0gICAgICAgICAgIjAuMDA3NzY1LCAwLjAwNzkyNCwgMC4wMDc5NDgsIDAuMDA3OTU2LCAwLjAwNzk2MiwgMC4wMDc5NjUsIDAuMDA3OTY4IiwgXAotICAgICAgICAgICIwLjAwNzc3OSwgMC4wMDc5MzYsIDAuMDA3OTU3LCAwLjAwNzk2NSwgMC4wMDc5NywgMC4wMDc5NzMsIDAuMDA3OTc2IiwgXAotICAgICAgICAgICIwLjAwNzc5NCwgMC4wMDc5NSwgMC4wMDc5NzMsIDAuMDA3OTc5LCAwLjAwNzk4NiwgMC4wMDc5ODksIDAuMDA3OTkxIiwgXAotICAgICAgICAgICIwLjAwNzgwNiwgMC4wMDc5NjMsIDAuMDA3OTg1LCAwLjAwNzk5MywgMC4wMDc5OTcsIDAuMDA4MDAxLCAwLjAwODAwNCIsIFwKLSAgICAgICAgICAiMC4wMDc4MjYsIDAuMDA3OTg3LCAwLjAwODAxLCAwLjAwODAxNywgMC4wMDgwMjMsIDAuMDA4MDI2LCAwLjAwODAyOCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA3ODkxLCAwLjAwODA0NywgMC4wMDgwNjcsIDAuMDA4MDczLCAwLjAwODA3OSwgMC4wMDgwODEsIDAuMDA4MDgzIiwgXAotICAgICAgICAgICIwLjAwNzg3NCwgMC4wMDgwMywgMC4wMDgwNTEsIDAuMDA4MDU1LCAwLjAwODA2MiwgMC4wMDgwNjUsIDAuMDA4MDY5IiwgXAotICAgICAgICAgICIwLjAwNzg2NywgMC4wMDgwMjMsIDAuMDA4MDQzLCAwLjAwODA0OSwgMC4wMDgwNTQsIDAuMDA4MDU4LCAwLjAwODA2IiwgXAotICAgICAgICAgICIwLjAwNzg2NiwgMC4wMDgwMjIsIDAuMDA4MDQyLCAwLjAwODA0OSwgMC4wMDgwNTQsIDAuMDA4MDU2LCAwLjAwODA1OSIsIFwKLSAgICAgICAgICAiMC4wMDc4NzYsIDAuMDA4MDMyLCAwLjAwODA1MywgMC4wMDgwNTgsIDAuMDA4MDY0LCAwLjAwODA2NywgMC4wMDgwNyIsIFwKLSAgICAgICAgICAiMC4wMDc4NzgsIDAuMDA4MDM3LCAwLjAwODA1OCwgMC4wMDgwNjQsIDAuMDA4MDY5LCAwLjAwODA3MiwgMC4wMDgwNzUiLCBcCi0gICAgICAgICAgIjAuMDA3ODkzLCAwLjAwODA1LCAwLjAwODA3MSwgMC4wMDgwNzcsIDAuMDA4MDgyLCAwLjAwODA4NSwgMC4wMDgwODciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDgyMjMsIDAuMDA4Mzc3LCAwLjAwODM5NywgMC4wMDg0MDMsIDAuMDA4NDEsIDAuMDA4NDEyLCAwLjAwODQxNSIsIFwKLSAgICAgICAgICAiMC4wMDgyMDYsIDAuMDA4MzYxLCAwLjAwODM4MiwgMC4wMDgzODgsIDAuMDA4MzkzLCAwLjAwODM5NiwgMC4wMDgzOTgiLCBcCi0gICAgICAgICAgIjAuMDA4MTk3LCAwLjAwODM1MywgMC4wMDgzNzMsIDAuMDA4Mzc5LCAwLjAwODM4NSwgMC4wMDgzODksIDAuMDA4MzkyIiwgXAotICAgICAgICAgICIwLjAwODE5LCAwLjAwODM0NCwgMC4wMDgzNjUsIDAuMDA4MzcxLCAwLjAwODM3NiwgMC4wMDgzODEsIDAuMDA4Mzg0IiwgXAotICAgICAgICAgICIwLjAwODE4NiwgMC4wMDgzNCwgMC4wMDgzNiwgMC4wMDgzNjYsIDAuMDA4MzcyLCAwLjAwODM3NywgMC4wMDgzOCIsIFwKLSAgICAgICAgICAiMC4wMDgxODMsIDAuMDA4MzQsIDAuMDA4MzYxLCAwLjAwODM2OCwgMC4wMDgzNzUsIDAuMDA4Mzc2LCAwLjAwODM4IiwgXAotICAgICAgICAgICIwLjAwODE4NSwgMC4wMDgzNDIsIDAuMDA4MzYzLCAwLjAwODM3MiwgMC4wMDgzNzYsIDAuMDA4Mzc5LCAwLjAwODM4MSIpOwotICAgICAgfQotICAgICAgcmlzZV9wb3dlcihzY2FsYXIpIHsKLSAgICAgICAgdmFsdWVzKCIwIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTTikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxMzk3OTk7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxMzA4MzI7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxMzk3OTk7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNDUzLCAwLjAwMDQ1MiwgMC4wMDA0NTIsIDAuMDAwNDUxLCAwLjAwMDQ1MiwgMC4wMDA0NTIsIDAuMDAwNDUyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNDU2LCAwLjAwMDQ1NCwgMC4wMDA0NTQsIDAuMDAwNDU0LCAwLjAwMDQ1NCwgMC4wMDA0NTQsIDAuMDAwNDU0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRCI7Ci0gICAgICBzZGZfY29uZCA6ICJEID09IDEnYjAiOwotICAgICAgZmFsbF9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMTM4ODA4LCAwLjE0ODQ3MiwgMC4xNjA1OTYsIDAuMTcyODg0LCAwLjE4NDQwOSwgMC4yMDA3OTksIDAuMjE0NDgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiByZWNvdmVyeV9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEIjsKLSAgICAgIHNkZl9jb25kIDogIkQgPT0gMSdiMCI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQocmVjb3ZlcnlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE4NzUsIDAuMDA3NSwgLTAuMDExMjUsIC0wLjAyMzc1LCAtMC4wMzYyNSwgLTAuMDQ2MjUsIC0wLjA2MTI1IiwgXAotICAgICAgICAgICIwLjAyMzc1LCAwLjAxMjUsIDAsIC0wLjAxMjUsIC0wLjAyNSwgLTAuMDQxMjUsIC0wLjA1IiwgXAotICAgICAgICAgICIwLjAzNjI1LCAwLjAyNSwgMC4wMTI1LCAwLCAtMC4wMTI1LCAtMC4wMjg3NSwgLTAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMDQyNSwgMC4wMzc1LCAwLjAxODc1LCAwLjAwNjI1LCAtMC4wMDYyNSwgLTAuMDE2MjUsIC0wLjAzMTI1IiwgXAotICAgICAgICAgICIwLjA1NSwgMC4wNDM3NSwgMC4wMzEyNSwgMC4wMTg3NSwgMC4wMDYyNSwgLTAuMDEsIC0wLjAxODc1IiwgXAotICAgICAgICAgICIwLjA3MTI1LCAwLjA2LCAwLjA0NzUsIDAuMDM1LCAwLjAyMjUsIDAuMDA2MjUsIC0wLjAwMjUiLCBcCi0gICAgICAgICAgIjAuMDg2MjUsIDAuMDc1LCAwLjA2MjUsIDAuMDUsIDAuMDM3NSwgMC4wMjEyNSwgMC4wMTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogcmVtb3ZhbF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEIjsKLSAgICAgIHNkZl9jb25kIDogIkQgPT0gMSdiMCI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQocmVtb3ZhbF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjUsIDAuMDM2MjUsIDAuMDQ4NzUsIDAuMDYxMjUsIDAuMDY3NSwgMC4wODM3NSwgMC4wOTg3NSIsIFwKLSAgICAgICAgICAiMC4wMiwgMC4wMjUsIDAuMDM3NSwgMC4wNSwgMC4wNjI1LCAwLjA3ODc1LCAwLjA4NzUiLCBcCi0gICAgICAgICAgIjAuMDA3NSwgMC4wMTg3NSwgMC4wMzEyNSwgMC4wNDM3NSwgMC4wNSwgMC4wNjYyNSwgMC4wNzUiLCBcCi0gICAgICAgICAgIi0wLjAwNSwgMC4wMDYyNSwgMC4wMTg3NSwgMC4wMzEyNSwgMC4wMzc1LCAwLjA1Mzc1LCAwLjA2ODc1IiwgXAotICAgICAgICAgICItMC4wMTEyNSwgLTAuMDA2MjUsIDAuMDA2MjUsIDAuMDE4NzUsIDAuMDMxMjUsIDAuMDQ3NSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiLTAuMDI3NSwgLTAuMDE2MjUsIC0wLjAwMzc1LCAwLjAwODc1LCAwLjAxNSwgMC4wMzEyNSwgMC4wNCIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAuMDA2MjUsIDAuMDIyNSwgMC4wMzEyNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogREZGU1hMICoKLSAqIC0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoREZGU1hMKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMzI1NzY5OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIGZmIChOMzUsUUJJTlQpIHsKLSAgICBuZXh0X3N0YXRlIDogIkQiOwotICAgIGNsb2NrZWRfb24gOiAiQ0siOwotICAgIHByZXNldCA6ICIoIVNOKSI7Ci0gIH0KLSAgcGluKENLKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2Mjk1MTM7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjI5MzUyOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDYyOTUxMzsKLSAgICBjbG9jayA6IHRydWU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyNDQ3LCAwLjAwMjQyMiwgMC4wMDI0MDYsIDAuMDAyNDA5LCAwLjAwMjQyMywgMC4wMDI0MzksIDAuMDAyNDY2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA3MzUzLCAwLjAwNzMzLCAwLjAwNzMyLCAwLjAwNzMyMywgMC4wMDczMzIsIDAuMDA3MzU0LCAwLjAwNzM3NCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQmU04iOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4yMDIxNDgsIDAuMjEyMzgxLCAwLjIyNTEzNywgMC4yMzcwOTQsIDAuMjQ3Njc5LCAwLjI2MjMwNiwgMC4yNzM3NjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjEyMDU3NiwgMC4xMzA0NzIsIDAuMTQyNzUsIDAuMTU0MjM0LCAwLjE2NDAwMiwgMC4xNzczNTUsIDAuMTg3NjA1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihEKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2NDM0ODM7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjQyMDk7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjQzNDgzOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjg4LCAwLjAwMjg1OCwgMC4wMDI4NDYsIDAuMDAyODM3LCAwLjAwMjgzNywgMC4wMDI4NCwgMC4wMDI4NDEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDMyMzMsIDAuMDAzMjIsIDAuMDAzMjEzLCAwLjAwMzIwOSwgMC4wMDMyMDYsIDAuMDAzMjA5LCAwLjAwMzIxMyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJTTiA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMTg3NSwgLTAuMDA3NSwgLTAuMDAxMjUsIDAuMDA1LCAwLjAwNSwgMC4wMTUsIDAuMDE3NSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMCwgMC4wMDM3NSwgMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDMxMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMTI1LCAtMC4wMDI1LCAwIiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxNSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA1NSwgLTAuMDUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAyMTI1LCAtMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wNjUsIC0wLjA2LCAtMC4wNDc1LCAtMC4wNDEyNSwgLTAuMDQxMjUsIC0wLjAzMTI1LCAtMC4wMjg3NSIsIFwKLSAgICAgICAgICAiLTAuMDczNzUsIC0wLjA2ODc1LCAtMC4wNTYyNSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNCwgLTAuMDMxMjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxODc1LCAwLjAyMzc1LCAwLjAzNjI1LCAwLjA0ODc1LCAwLjA2MTI1LCAwLjA3MTI1LCAwLjA4IiwgXAotICAgICAgICAgICIwLjAwNzUsIDAuMDE4NzUsIDAuMDMxMjUsIDAuMDQzNzUsIDAuMDUsIDAuMDYsIDAuMDc1IiwgXAotICAgICAgICAgICIwLjAwMTI1LCAwLjAxMjUsIDAuMDI1LCAwLjAzMTI1LCAwLjA0Mzc1LCAwLjA1Mzc1LCAwLjA2MjUiLCBcCi0gICAgICAgICAgIi0wLjAwNSwgMCwgMC4wMTI1LCAwLjAyNSwgMC4wMzc1LCAwLjA0NzUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIi0wLjAxMTI1LCAwLCAwLjAwNjI1LCAwLjAxODc1LCAwLjAzMTI1LCAwLjA0MTI1LCAwLjA1IiwgXAotICAgICAgICAgICItMC4wMjEyNSwgLTAuMDEsIDAuMDAyNSwgMC4wMDg3NSwgMC4wMjEyNSwgMC4wMzEyNSwgMC4wNDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxODc1LCAtMC4wMDYyNSwgMC4wMDYyNSwgMC4wMTI1LCAwLjAyODc1LCAwLjAzNzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlNOIjsKLSAgICAgIHNkZl9jb25kIDogIlNOID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1LCAwLjAzODc1LCAwLjAzMjUsIDAuMDIsIDAuMDEzNzUsIDAuMDEsIDAuMDAxMjUiLCBcCi0gICAgICAgICAgIjAuMDYxMjUsIDAuMDUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMjUsIDAuMDE1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMDY3NSwgMC4wNjI1LCAwLjA1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDI3NSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4wOCwgMC4wNjg3NSwgMC4wNTYyNSwgMC4wNSwgMC4wNDM3NSwgMC4wMzM3NSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4wOTI1LCAwLjA4MTI1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDQ2MjUsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiMC4xMDI1LCAwLjA5MTI1LCAwLjA4NSwgMC4wNzI1LCAwLjA2NjI1LCAwLjA1NjI1LCAwLjA1Mzc1IiwgXAotICAgICAgICAgICIwLjExNzUsIDAuMTA2MjUsIDAuMDkzNzUsIDAuMDgxMjUsIDAuMDc1LCAwLjA2NSwgMC4wNjI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU2MjUsIDAuMDQ1LCAwLjAzMjUsIDAuMDIsIDAuMDA3NSwgLTAuMDA4NzUsIC0wLjAxNzUiLCBcCi0gICAgICAgICAgIjAuMDY3NSwgMC4wNTYyNSwgMC4wMzc1LCAwLjAyNSwgMC4wMTg3NSwgMC4wMDI1LCAtMC4wMTI1IiwgXAotICAgICAgICAgICIwLjA3Mzc1LCAwLjA2MjUsIDAuMDUsIDAuMDM3NSwgMC4wMjUsIDAuMDA4NzUsIDAiLCBcCi0gICAgICAgICAgIjAuMDg2MjUsIDAuMDc1LCAwLjA1NjI1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDIxMjUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMDkyNSwgMC4wODEyNSwgMC4wNjg3NSwgMC4wNTYyNSwgMC4wNDM3NSwgMC4wMjc1LCAwLjAxODc1IiwgXAotICAgICAgICAgICIwLjEwMjUsIDAuMDkxMjUsIDAuMDc4NzUsIDAuMDY2MjUsIDAuMDUzNzUsIDAuMDM3NSwgMC4wMjg3NSIsIFwKLSAgICAgICAgICAiMC4xMTEyNSwgMC4xLCAwLjA4NzUsIDAuMDc1LCAwLjA2MjUsIDAuMDQ2MjUsIDAuMDM3NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjE0ODIyOwotICAgIGZ1bmN0aW9uIDogIk4zNSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3NlbnNlIDogbm9uX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiByaXNpbmdfZWRnZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTcyMzIzLCAwLjE4NjU0NCwgMC4zMTM0NjQsIDAuNTI1MzM5LCAwLjczNzIxNCwgMS4yMzE1OSwgMS41MTUwNiIsIFwKLSAgICAgICAgICAiMC4xODI2MDcsIDAuMTk2ODU2LCAwLjMyMzg2OSwgMC41MzU2MzUsIDAuNzQ3NTI1LCAxLjI0MjUsIDEuNTI1MjEiLCBcCi0gICAgICAgICAgIjAuMTk1MjI4LCAwLjIwOTQ5OSwgMC4zMzYzOTIsIDAuNTQ4MjYsIDAuNzYwMTc1LCAxLjI1NTEyLCAxLjUzNzYxIiwgXAotICAgICAgICAgICIwLjIwNzE1NywgMC4yMjEzNzYsIDAuMzQ4NDEsIDAuNTYwMTczLCAwLjc3MjA0NywgMS4yNjY5MywgMS41NDk4OSIsIFwKLSAgICAgICAgICAiMC4yMTc1NjIsIDAuMjMxNzg3LCAwLjM1ODkxLCAwLjU3MDU4LCAwLjc4MjQ2LCAxLjI3Njc4LCAxLjU1OTEiLCBcCi0gICAgICAgICAgIjAuMjMyNTg5LCAwLjI0NjY5LCAwLjM3MzkyNiwgMC41ODU1NzQsIDAuNzk3MzI4LCAxLjI5MjQzLCAxLjU3NDA3IiwgXAotICAgICAgICAgICIwLjI0MzcyNiwgMC4yNTc3MTksIDAuMzg0ODQyLCAwLjU5NjczNiwgMC44MDg0NjYsIDEuMzAzNTcsIDEuNTg1MjIiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTU0MTE5LCAwLjE4MzAyOSwgMC40NDMxMTUsIDAuODc5ODg2LCAxLjMxNTc0LCAyLjMyOTI3LCAyLjkxNDQ5IiwgXAotICAgICAgICAgICIwLjE1NDMyOCwgMC4xODMwMjcsIDAuNDQzODE4LCAwLjg3OTg3NiwgMS4zMTU3NiwgMi4zMzMxLCAyLjkxMzkiLCBcCi0gICAgICAgICAgIjAuMTU0MzEyLCAwLjE4MjczMywgMC40NDMxMjUsIDAuODc5ODY1LCAxLjMxNTc5LCAyLjMzMzAyLCAyLjkxMzUiLCBcCi0gICAgICAgICAgIjAuMTU0MTE3LCAwLjE4MzAzLCAwLjQ0Mzg2NywgMC44Nzk4NzcsIDEuMzE1NzMsIDIuMzMyNjUsIDIuOTE0NSIsIFwKLSAgICAgICAgICAiMC4xNTQxMjQsIDAuMTgzMDMyLCAwLjQ0Mzk3LCAwLjg3OTg3MiwgMS4zMTU3NCwgMi4zMjk3OCwgMi45MDYiLCBcCi0gICAgICAgICAgIjAuMTUzOTQ5LCAwLjE4MzAxOSwgMC40NDMwNDEsIDAuODc5ODcxLCAxLjMxMzk5LCAyLjMzMzA5LCAyLjkwODMiLCBcCi0gICAgICAgICAgIjAuMTUzOTksIDAuMTgyODMzLCAwLjQ0MzEyNywgMC44Nzk4OTYsIDEuMzEzOTYsIDIuMzMzMDgsIDIuOTA5MDgiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTkxNDEyLCAwLjIwNTI2MywgMC4zMjk3NTUsIDAuNTM3MjQxLCAwLjc0NDY3LCAxLjIyOTI5LCAxLjUwNjI5IiwgXAotICAgICAgICAgICIwLjIwMTY2LCAwLjIxNTUxMiwgMC4zNDAyMzksIDAuNTQ3NDg0LCAwLjc1NDkzMSwgMS4yMzk1MiwgMS41MTY1NSIsIFwKLSAgICAgICAgICAiMC4yMTQ0MTcsIDAuMjI4MjUzLCAwLjM1MjkyNywgMC41NjAyODMsIDAuNzY3NjI2LCAxLjI1MjU4LCAxLjUyODA3IiwgXAotICAgICAgICAgICIwLjIyNjM2MSwgMC4yNDAyMDksIDAuMzY0Njg2LCAwLjU3MjE2LCAwLjc3OTk0NCwgMS4yNjMzNSwgMS41NDEyMSIsIFwKLSAgICAgICAgICAiMC4yMzY5MzksIDAuMjUwNjg5LCAwLjM3NTMwOSwgMC41ODI3MzUsIDAuNzkwMTg2LCAxLjI3NDA0LCAxLjU1MTg2IiwgXAotICAgICAgICAgICIwLjI1MTYxNiwgMC4yNjU0NjIsIDAuMzg5ODU3LCAwLjU5NzQyMSwgMC44MDUxNDYsIDEuMjg5NTgsIDEuNTY2NSIsIFwKLSAgICAgICAgICAiMC4yNjMwMjksIDAuMjc2OTA5LCAwLjQwMTUyOSwgMC42MDg3NjgsIDAuODE2MjAyLCAxLjMwMTI0LCAxLjU3NjciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTQ4NzMxLCAwLjE3NjA0MSwgMC40MjQ3MTMsIDAuODQxMTM2LCAxLjI1NzI0LCAyLjIzMTU5LCAyLjc4ODU4IiwgXAotICAgICAgICAgICIwLjE0ODczNiwgMC4xNzYwMTMsIDAuNDI0NDE0LCAwLjg0MTEwMywgMS4yNTczMywgMi4yMzE1NSwgMi43ODg2IiwgXAotICAgICAgICAgICIwLjE0ODcyOCwgMC4xNzU0NTksIDAuNDI0NDI2LCAwLjg0MTk3MywgMS4yNTY1OSwgMi4yMzI1MywgMi43ODM4MyIsIFwKLSAgICAgICAgICAiMC4xNDg3NDEsIDAuMTc2MDUsIDAuNDI0NzgzLCAwLjg0MTAzMSwgMS4yNTgyMywgMi4yMjI1OCwgMi43ODg1MiIsIFwKLSAgICAgICAgICAiMC4xNDg3MzYsIDAuMTc1NjU3LCAwLjQyNDYzOCwgMC44NDA2NDQsIDEuMjU1MzMsIDIuMjI1OTUsIDIuNzg4NjciLCBcCi0gICAgICAgICAgIjAuMTQ4NzI2LCAwLjE3NjA1NSwgMC40MjQ4MDIsIDAuODQxMDgsIDEuMjU4MjQsIDIuMjMxOTYsIDIuNzg4NjIiLCBcCi0gICAgICAgICAgIjAuMTQ4MzA1LCAwLjE3NTMxOCwgMC40MjQzNDIsIDAuODQwODY5LCAxLjI1NzE3LCAyLjIyNzI3LCAyLjc4MjIyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiBwcmVzZXQ7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE2ODI5NywgMC4xODIzMzMsIDAuMzA5NTk0LCAwLjUyMTI1MywgMC43MzMxMjksIDEuMjI3MzQsIDEuNTEwMzgiLCBcCi0gICAgICAgICAgIjAuMTc3ODA1LCAwLjE5MTgzMSwgMC4zMTkxMDIsIDAuNTMwNzYxLCAwLjc0MjYyNSwgMS4yMzY4MSwgMS41MTg5NyIsIFwKLSAgICAgICAgICAiMC4xODkzOCwgMC4yMDM1ODQsIDAuMzMwNjI4LCAwLjU0MjMzNywgMC43NTQyNTMsIDEuMjQ4MjQsIDEuNTMxMDUiLCBcCi0gICAgICAgICAgIjAuMjAxNDExLCAwLjIxNTUwNywgMC4zNDI2NzEsIDAuNTU0MzY0LCAwLjc2NjAyNiwgMS4yNjAyMSwgMS41NDMwOCIsIFwKLSAgICAgICAgICAiMC4yMTI4ODUsIDAuMjI3MDU3LCAwLjM1NDExNCwgMC41NjU5NjUsIDAuNzc3ODQ1LCAxLjI3MTk4LCAxLjU1NTQ2IiwgXAotICAgICAgICAgICIwLjIyOTUzNywgMC4yNDM3ODYsIDAuMzcwNzgyLCAwLjU4MjQ2NSwgMC43OTQxMjQsIDEuMjg4MzcsIDEuNTcxMiIsIFwKLSAgICAgICAgICAiMC4yNDI1NzcsIDAuMjU2NjU1LCAwLjM4Mzc0MiwgMC41OTU1MjQsIDAuODA3NDA5LCAxLjMwMTY4LCAxLjU4NDEzIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE1NDI1NSwgMC4xODMwMDksIDAuNDQzOTYxLCAwLjg3OTg1NSwgMS4zMTU5LCAyLjMzMjYxLCAyLjkxMjIxIiwgXAotICAgICAgICAgICIwLjE1Mzk4MSwgMC4xODMwMTQsIDAuNDQzOTU5LCAwLjg3OTk3OCwgMS4zMTU4OCwgMi4zMjY5NCwgMi45MDY0OSIsIFwKLSAgICAgICAgICAiMC4xNTQyNDMsIDAuMTgzMDA4LCAwLjQ0MzkwOCwgMC44Nzk4NDYsIDEuMzE1ODgsIDIuMzMyNywgMi45MTA5NyIsIFwKLSAgICAgICAgICAiMC4xNTM5ODQsIDAuMTgzMDIxLCAwLjQ0MzkwOSwgMC44Nzk4NDgsIDEuMzE1OTMsIDIuMzI1NDcsIDIuOTA0MjMiLCBcCi0gICAgICAgICAgIjAuMTU0MjUzLCAwLjE4MzAxNCwgMC40NDM5NDIsIDAuODc5OTMxLCAxLjMxNTkzLCAyLjMyODUsIDIuOTEzODEiLCBcCi0gICAgICAgICAgIjAuMTU0MjY0LCAwLjE4MzAyOSwgMC40NDM5NTEsIDAuODc5ODM0LCAxLjMxNTgxLCAyLjMzMywgMi45MDk5MiIsIFwKLSAgICAgICAgICAiMC4xNTM4OTcsIDAuMTgyOTk4LCAwLjQ0Mzk2NCwgMC44Nzk3MTYsIDEuMzE1NjQsIDIuMzMyODgsIDIuOTExMTMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzODY2LCAwLjAwMzg2NywgMC4wMDM4NjksIDAuMDAzODcsIDAuMDAzODcsIDAuMDAzODcsIDAuMDAzODciLCBcCi0gICAgICAgICAgIjAuMDAzODUxLCAwLjAwMzg1MiwgMC4wMDM4NTQsIDAuMDAzODU1LCAwLjAwMzg1NSwgMC4wMDM4NTUsIDAuMDAzODU1IiwgXAotICAgICAgICAgICIwLjAwMzg0MywgMC4wMDM4NDQsIDAuMDAzODQ2LCAwLjAwMzg0NywgMC4wMDM4NDcsIDAuMDAzODQ3LCAwLjAwMzg0NyIsIFwKLSAgICAgICAgICAiMC4wMDM4NDMsIDAuMDAzODQ0LCAwLjAwMzg0NiwgMC4wMDM4NDcsIDAuMDAzODQ3LCAwLjAwMzg0NywgMC4wMDM4NDciLCBcCi0gICAgICAgICAgIjAuMDAzODU0LCAwLjAwMzg1NCwgMC4wMDM4NTYsIDAuMDAzODU3LCAwLjAwMzg1NywgMC4wMDM4NTcsIDAuMDAzODU4IiwgXAotICAgICAgICAgICIwLjAwMzg2LCAwLjAwMzg2MSwgMC4wMDM4NjMsIDAuMDAzODY0LCAwLjAwMzg2NSwgMC4wMDM4NjQsIDAuMDAzODY0IiwgXAotICAgICAgICAgICIwLjAwMzg3NSwgMC4wMDM4NzYsIDAuMDAzODc4LCAwLjAwMzg3OSwgMC4wMDM4NzgsIDAuMDAzODc4LCAwLjAwMzg3OCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzM1OCwgMC4wMDMzNTgsIDAuMDAzMzYxLCAwLjAwMzM2MiwgMC4wMDMzNjMsIDAuMDAzMzYyLCAwLjAwMzM2NCIsIFwKLSAgICAgICAgICAiMC4wMDMzNDMsIDAuMDAzMzQ0LCAwLjAwMzM0NywgMC4wMDMzNDYsIDAuMDAzMzQ4LCAwLjAwMzM0OSwgMC4wMDMzNDkiLCBcCi0gICAgICAgICAgIjAuMDAzMzQxLCAwLjAwMzM0MiwgMC4wMDMzNDUsIDAuMDAzMzQ2LCAwLjAwMzM0NiwgMC4wMDMzNDcsIDAuMDAzMzQ2IiwgXAotICAgICAgICAgICIwLjAwMzM0OCwgMC4wMDMzNDksIDAuMDAzMzUyLCAwLjAwMzM1MywgMC4wMDMzNTMsIDAuMDAzMzU0LCAwLjAwMzM1MyIsIFwKLSAgICAgICAgICAiMC4wMDMzNjQsIDAuMDAzMzY1LCAwLjAwMzM2OCwgMC4wMDMzNjksIDAuMDAzMzcsIDAuMDAzMzY5LCAwLjAwMzM3IiwgXAotICAgICAgICAgICIwLjAwMzM3NywgMC4wMDMzNzgsIDAuMDAzMzgxLCAwLjAwMzM4MiwgMC4wMDMzODMsIDAuMDAzMzgzLCAwLjAwMzM4NSIsIFwKLSAgICAgICAgICAiMC4wMDM0MDIsIDAuMDAzNDAzLCAwLjAwMzQwNiwgMC4wMDM0MDcsIDAuMDAzNDA3LCAwLjAwMzQwNywgMC4wMDM0MDciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0NTMzLCAwLjAwNDUzNCwgMC4wMDQ1MzYsIDAuMDA0NTM3LCAwLjAwNDUzNywgMC4wMDQ1MzcsIDAuMDA0NTM3IiwgXAotICAgICAgICAgICIwLjAwNDUyMSwgMC4wMDQ1MjIsIDAuMDA0NTI0LCAwLjAwNDUyNSwgMC4wMDQ1MjUsIDAuMDA0NTI1LCAwLjAwNDUyNiIsIFwKLSAgICAgICAgICAiMC4wMDQ1MTUsIDAuMDA0NTE2LCAwLjAwNDUxOCwgMC4wMDQ1MTksIDAuMDA0NTE5LCAwLjAwNDUxOCwgMC4wMDQ1MTkiLCBcCi0gICAgICAgICAgIjAuMDA0NTE0LCAwLjAwNDUxNSwgMC4wMDQ1MTcsIDAuMDA0NTE4LCAwLjAwNDUxOCwgMC4wMDQ1MTcsIDAuMDA0NTE2IiwgXAotICAgICAgICAgICIwLjAwNDUxMywgMC4wMDQ1MTQsIDAuMDA0NTE2LCAwLjAwNDUxNywgMC4wMDQ1MTcsIDAuMDA0NTE3LCAwLjAwNDUxOSIsIFwKLSAgICAgICAgICAiMC4wMDQ1MTYsIDAuMDA0NTE3LCAwLjAwNDUxOSwgMC4wMDQ1MiwgMC4wMDQ1MiwgMC4wMDQ1MiwgMC4wMDQ1MiIsIFwKLSAgICAgICAgICAiMC4wMDQ1MjUsIDAuMDA0NTI2LCAwLjAwNDUyOCwgMC4wMDQ1MjksIDAuMDA0NTMsIDAuMDA0NTMsIDAuMDA0NTMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoc2NhbGFyKSB7Ci0gICAgICAgIHZhbHVlcygiMCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUU4pICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4xNTMwNTI7Ci0gICAgZnVuY3Rpb24gOiAiUUJJTlQiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5vbl91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcmlzaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIwMjE0OCwgMC4yMTYyNjIsIDAuMzQzMjg3LCAwLjU1NTEyMiwgMC43NjY5MiwgMS4yNjExMywgMS41NDM2OSIsIFwKLSAgICAgICAgICAiMC4yMTIzODEsIDAuMjI2NDk2LCAwLjM1MzU4LCAwLjU2NTM2NCwgMC43NzcxNTMsIDEuMjcxMzYsIDEuNTUzOTMiLCBcCi0gICAgICAgICAgIjAuMjI1MTM3LCAwLjIzOTI1MywgMC4zNjYzMjYsIDAuNTc4MTA1LCAwLjc4OTkzMiwgMS4yODQyNywgMS41NjY1NyIsIFwKLSAgICAgICAgICAiMC4yMzcwOTQsIDAuMjUxMjA5LCAwLjM3ODIzLCAwLjU5MDA4MiwgMC44MDE4NTUsIDEuMjk1ODIsIDEuNTc4NjIiLCBcCi0gICAgICAgICAgIjAuMjQ3Njc5LCAwLjI2MTc3NywgMC4zODg4MjQsIDAuNjAwNjcxLCAwLjgxMjQ1NiwgMS4zMDY3MSwgMS41ODkyNSIsIFwKLSAgICAgICAgICAiMC4yNjIzMDYsIDAuMjc2NDIsIDAuNDAzNDMzLCAwLjYxNTI5LCAwLjgyNzA0NiwgMS4zMjEzNSwgMS42MDM4NiIsIFwKLSAgICAgICAgICAiMC4yNzM3NjUsIDAuMjg3ODg1LCAwLjQxNDk1MiwgMC42MjY3NzgsIDAuODM4NTg0LCAxLjMzMjkzLCAxLjYxNTIzIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE1MjQ3MiwgMC4xODE0NDgsIDAuNDQyNDgxLCAwLjg3NzEzNywgMS4zMTIzMSwgMi4zMzAyLCAyLjkxMTE1IiwgXAotICAgICAgICAgICIwLjE1MjQ3LCAwLjE4MTQ0LCAwLjQ0Mjc5NywgMC44NzcxODUsIDEuMzEyMjUsIDIuMzMwMTgsIDIuOTExMTciLCBcCi0gICAgICAgICAgIjAuMTUyNDYzLCAwLjE4MDk1OCwgMC40NDI2OTcsIDAuODc3ODk4LCAxLjMxMjEzLCAyLjMzMDQ3LCAyLjkwNTk4IiwgXAotICAgICAgICAgICIwLjE1MjQ4MywgMC4xODE0NDksIDAuNDQyNTE4LCAwLjg3NzI2LCAxLjMxNDA1LCAyLjMyMjkyLCAyLjkxMTE0IiwgXAotICAgICAgICAgICIwLjE1MjQ3MywgMC4xODEyMjYsIDAuNDQyNTE1LCAwLjg3NTk0LCAxLjMxMDQ1LCAyLjMyMjg2LCAyLjkxMTIiLCBcCi0gICAgICAgICAgIjAuMTUyNDcsIDAuMTgxNDUxLCAwLjQ0MjE3NywgMC44NzcyMTYsIDEuMzEzOTQsIDIuMzMwMzcsIDIuOTExMiIsIFwKLSAgICAgICAgICAiMC4xNTIyODQsIDAuMTgwOTg3LCAwLjQ0MjcwNiwgMC44NzcxMywgMS4zMTE0LCAyLjMyNDgyLCAyLjkwNDI4Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE4MTcxLCAwLjE5NTU0NywgMC4zMTk5OTcsIDAuNTI3NDA0LCAwLjczNDc3NiwgMS4yMTg2MywgMS40OTUzNCIsIFwKLSAgICAgICAgICAiMC4xOTIwMTQsIDAuMjA1ODU1LCAwLjMzMDI3OCwgMC41Mzc3MDYsIDAuNzQ1MDksIDEuMjI5MDYsIDEuNTA1NDgiLCBcCi0gICAgICAgICAgIjAuMjA0NjMsIDAuMjE4NDc0LCAwLjM0MjkxOCwgMC41NTAzMTksIDAuNzU3NzIxLCAxLjI0MTY2LCAxLjUxNzg4IiwgXAotICAgICAgICAgICIwLjIxNjU0MiwgMC4yMzAzOCwgMC4zNTQ4MDksIDAuNTYyMjM3LCAwLjc2OTYwOSwgMS4yNTM0NywgMS41MzAxNyIsIFwKLSAgICAgICAgICAiMC4yMjY5NSwgMC4yNDA3ODksIDAuMzY1MjUsIDAuNTcyNjQ0LCAwLjc4MDAyMSwgMS4yNjM4OCwgMS41NDA2MSIsIFwKLSAgICAgICAgICAiMC4yNDE5NSwgMC4yNTU3NzQsIDAuMzgwMjU3LCAwLjU4NzY0MSwgMC43OTUwMjUsIDEuMjc4OTksIDEuNTU1NTgiLCBcCi0gICAgICAgICAgIjAuMjUzMDQ3LCAwLjI2Njg3MSwgMC4zOTEzMzIsIDAuNTk4NzQ4LCAwLjgwNjEyNywgMS4yOTAxMiwgMS41NjY1OSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNDU1OTUsIDAuMTczNTIzLCAwLjQyMjc0NCwgMC44NDAyMzYsIDEuMjU2ODIsIDIuMjI1OTMsIDIuNzg1NDkiLCBcCi0gICAgICAgICAgIjAuMTQ1NzQ5LCAwLjE3MzUyOSwgMC40MjMzOTIsIDAuODQwMjE4LCAxLjI1NjgzLCAyLjIyOTQ3LCAyLjc4NDQ1IiwgXAotICAgICAgICAgICIwLjE0NTczNiwgMC4xNzMyMTIsIDAuNDIyNzI4LCAwLjg0MDIwMywgMS4yNTY5LCAyLjIyOTM1LCAyLjc4Mzc0IiwgXAotICAgICAgICAgICIwLjE0NTU5MywgMC4xNzM1MjUsIDAuNDIzNDE3LCAwLjg0MDIxMiwgMS4yNTY4LCAyLjIyODc3LCAyLjc4NTQyIiwgXAotICAgICAgICAgICIwLjE0NTU5MywgMC4xNzM1MjIsIDAuNDIzNTc0LCAwLjg0MDIwNywgMS4yNTY4MSwgMi4yMjYwNSwgMi43Nzc4NiIsIFwKLSAgICAgICAgICAiMC4xNDUzMzQsIDAuMTczNDc4LCAwLjQyMjcyMywgMC44NDAyMjEsIDEuMjU1MjQsIDIuMjI5NDcsIDIuNzc4NzQiLCBcCi0gICAgICAgICAgIjAuMTQ1NTcxLCAwLjE3MzMyLCAwLjQyMjc1MSwgMC44NDAyNzMsIDEuMjU1MTgsIDIuMjI5NDEsIDIuNzc5NjkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiU04iOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGNsZWFyOwotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNzc4MywgMC4xOTE2NDMsIDAuMzE2MTIyLCAwLjUyMzQ5NiwgMC43MzA4ODUsIDEuMjE0ODEsIDEuNDkxMDYiLCBcCi0gICAgICAgICAgIjAuMTg3MzQsIDAuMjAxMTUsIDAuMzI1NjMyLCAwLjUzMzAwNiwgMC43NDAzODYsIDEuMjI0MzIsIDEuNTAwNTQiLCBcCi0gICAgICAgICAgIjAuMTk5MDE3LCAwLjIxMjg0OCwgMC4zMzcyOTQsIDAuNTQ0NjQ5LCAwLjc1MjE0NCwgMS4yMzU3NywgMS41MTI0NyIsIFwKLSAgICAgICAgICAiMC4yMTEwNTMsIDAuMjI0ODgsIDAuMzQ5MzMsIDAuNTU2NjQyLCAwLjc2MzkxOSwgMS4yNDc3NiwgMS41MjQ1MiIsIFwKLSAgICAgICAgICAiMC4yMjI0NzksIDAuMjM2MzA5LCAwLjM2MDc1MywgMC41NjgxODYsIDAuNzc1NTg0LCAxLjI1OTQ1LCAxLjUzNTkxIiwgXAotICAgICAgICAgICIwLjIzOTE3MSwgMC4yNTMwMDcsIDAuMzc3NDQ4LCAwLjU4NDc3MSwgMC43OTIwMzgsIDEuMjc1OTEsIDEuNTUyNjMiLCBcCi0gICAgICAgICAgIjAuMjUxOTU5LCAwLjI2NTc4NCwgMC4zOTAyMzYsIDAuNTk3NjM5LCAwLjgwNDk3OCwgMS4yODg5LCAxLjU2NTQzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE0NTc3NiwgMC4xNzM1MzIsIDAuNDIzNiwgMC44NDAyMjYsIDEuMjU2OTcsIDIuMjI4NDQsIDIuNzgzOTUiLCBcCi0gICAgICAgICAgIjAuMTQ1NjIyLCAwLjE3MzU1MiwgMC40MjM2LCAwLjg0MDQxNywgMS4yNTY5NiwgMi4yMjM0NCwgMi43NzY4MSIsIFwKLSAgICAgICAgICAiMC4xNDU3NzEsIDAuMTczNTQ2LCAwLjQyMzU0OCwgMC44NDAxODgsIDEuMjU3MDIsIDIuMjI4NjUsIDIuNzgxMDYiLCBcCi0gICAgICAgICAgIjAuMTQ1NjI0LCAwLjE3MzU2NCwgMC40MjM1MDUsIDAuODQwMTg2LCAxLjI1NzExLCAyLjIyMjI5LCAyLjc3Mzg1IiwgXAotICAgICAgICAgICIwLjE0NTc4OCwgMC4xNzM1NTcsIDAuNDIzNTY4LCAwLjg0MDMzNSwgMS4yNTcxLCAyLjIyNTE1LCAyLjc4NDM2IiwgXAotICAgICAgICAgICIwLjE0NTc3NSwgMC4xNzM1NTksIDAuNDIzNTY3LCAwLjg0MDE2LCAxLjI1NjkyLCAyLjIyOTI0LCAyLjc4MDgxIiwgXAotICAgICAgICAgICIwLjE0NTU2MSwgMC4xNzM1MjcsIDAuNDIzNTgxLCAwLjg0MDAwOSwgMS4yNTY3MSwgMi4yMjkwOSwgMi43ODExNyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDMzNTgsIDAuMDAzMzU4LCAwLjAwMzM2MSwgMC4wMDMzNjIsIDAuMDAzMzYzLCAwLjAwMzM2MiwgMC4wMDMzNjQiLCBcCi0gICAgICAgICAgIjAuMDAzMzQzLCAwLjAwMzM0NCwgMC4wMDMzNDcsIDAuMDAzMzQ2LCAwLjAwMzM0OCwgMC4wMDMzNDksIDAuMDAzMzQ5IiwgXAotICAgICAgICAgICIwLjAwMzM0MSwgMC4wMDMzNDIsIDAuMDAzMzQ1LCAwLjAwMzM0NiwgMC4wMDMzNDYsIDAuMDAzMzQ3LCAwLjAwMzM0NiIsIFwKLSAgICAgICAgICAiMC4wMDMzNDgsIDAuMDAzMzQ5LCAwLjAwMzM1MiwgMC4wMDMzNTMsIDAuMDAzMzUzLCAwLjAwMzM1NCwgMC4wMDMzNTMiLCBcCi0gICAgICAgICAgIjAuMDAzMzY0LCAwLjAwMzM2NSwgMC4wMDMzNjgsIDAuMDAzMzY5LCAwLjAwMzM3LCAwLjAwMzM2OSwgMC4wMDMzNyIsIFwKLSAgICAgICAgICAiMC4wMDMzNzcsIDAuMDAzMzc4LCAwLjAwMzM4MSwgMC4wMDMzODIsIDAuMDAzMzgzLCAwLjAwMzM4MywgMC4wMDMzODUiLCBcCi0gICAgICAgICAgIjAuMDAzNDAyLCAwLjAwMzQwMywgMC4wMDM0MDYsIDAuMDAzNDA3LCAwLjAwMzQwNywgMC4wMDM0MDcsIDAuMDAzNDA3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzODY2LCAwLjAwMzg2NywgMC4wMDM4NjksIDAuMDAzODcsIDAuMDAzODcsIDAuMDAzODcsIDAuMDAzODciLCBcCi0gICAgICAgICAgIjAuMDAzODUxLCAwLjAwMzg1MiwgMC4wMDM4NTQsIDAuMDAzODU1LCAwLjAwMzg1NSwgMC4wMDM4NTUsIDAuMDAzODU1IiwgXAotICAgICAgICAgICIwLjAwMzg0MywgMC4wMDM4NDQsIDAuMDAzODQ2LCAwLjAwMzg0NywgMC4wMDM4NDcsIDAuMDAzODQ3LCAwLjAwMzg0NyIsIFwKLSAgICAgICAgICAiMC4wMDM4NDMsIDAuMDAzODQ0LCAwLjAwMzg0NiwgMC4wMDM4NDcsIDAuMDAzODQ3LCAwLjAwMzg0NywgMC4wMDM4NDciLCBcCi0gICAgICAgICAgIjAuMDAzODU0LCAwLjAwMzg1NCwgMC4wMDM4NTYsIDAuMDAzODU3LCAwLjAwMzg1NywgMC4wMDM4NTcsIDAuMDAzODU4IiwgXAotICAgICAgICAgICIwLjAwMzg2LCAwLjAwMzg2MSwgMC4wMDM4NjMsIDAuMDAzODY0LCAwLjAwMzg2NSwgMC4wMDM4NjQsIDAuMDAzODY0IiwgXAotICAgICAgICAgICIwLjAwMzg3NSwgMC4wMDM4NzYsIDAuMDAzODc4LCAwLjAwMzg3OSwgMC4wMDM4NzgsIDAuMDAzODc4LCAwLjAwMzg3OCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQ1MzMsIDAuMDA0NTM0LCAwLjAwNDUzNiwgMC4wMDQ1MzcsIDAuMDA0NTM3LCAwLjAwNDUzNywgMC4wMDQ1MzciLCBcCi0gICAgICAgICAgIjAuMDA0NTIxLCAwLjAwNDUyMiwgMC4wMDQ1MjQsIDAuMDA0NTI1LCAwLjAwNDUyNSwgMC4wMDQ1MjUsIDAuMDA0NTI2IiwgXAotICAgICAgICAgICIwLjAwNDUxNSwgMC4wMDQ1MTYsIDAuMDA0NTE4LCAwLjAwNDUxOSwgMC4wMDQ1MTksIDAuMDA0NTE4LCAwLjAwNDUxOSIsIFwKLSAgICAgICAgICAiMC4wMDQ1MTQsIDAuMDA0NTE1LCAwLjAwNDUxNywgMC4wMDQ1MTgsIDAuMDA0NTE4LCAwLjAwNDUxNywgMC4wMDQ1MTYiLCBcCi0gICAgICAgICAgIjAuMDA0NTEzLCAwLjAwNDUxNCwgMC4wMDQ1MTYsIDAuMDA0NTE3LCAwLjAwNDUxNywgMC4wMDQ1MTcsIDAuMDA0NTE5IiwgXAotICAgICAgICAgICIwLjAwNDUxNiwgMC4wMDQ1MTcsIDAuMDA0NTE5LCAwLjAwNDUyLCAwLjAwNDUyLCAwLjAwNDUyLCAwLjAwNDUyIiwgXAotICAgICAgICAgICIwLjAwNDUyNSwgMC4wMDQ1MjYsIDAuMDA0NTI4LCAwLjAwNDUyOSwgMC4wMDQ1MywgMC4wMDQ1MywgMC4wMDQ1MyIpOwotICAgICAgfQotICAgICAgcmlzZV9wb3dlcihzY2FsYXIpIHsKLSAgICAgICAgdmFsdWVzKCIwIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTTikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxMDEyNDg7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwOTIzNjY2OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTAxMjQ4OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDQ1MywgMC4wMDA0NTMsIDAuMDAwNDUyLCAwLjAwMDQ1MiwgMC4wMDA0NTIsIDAuMDAwNDUyLCAwLjAwMDQ1MiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDQ1NiwgMC4wMDA0NTQsIDAuMDAwNDU0LCAwLjAwMDQ1NCwgMC4wMDA0NTQsIDAuMDAwNDU0LCAwLjAwMDQ1NCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQiOwotICAgICAgc2RmX2NvbmQgOiAiRCA9PSAxJ2IwIjsKLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjE3NzgzLCAwLjE4NzM0LCAwLjE5OTAxNywgMC4yMTEwNTMsIDAuMjIyNDc5LCAwLjIzOTE3MSwgMC4yNTE5NTkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiByZWNvdmVyeV9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEIjsKLSAgICAgIHNkZl9jb25kIDogIkQgPT0gMSdiMCI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQocmVjb3ZlcnlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEyNSwgMC4wMDEyNSwgLTAuMDExMjUsIC0wLjAyMzc1LCAtMC4wMzYyNSwgLTAuMDQ2MjUsIC0wLjA2MTI1IiwgXAotICAgICAgICAgICIwLjAyMzc1LCAwLjAxMjUsIDAsIC0wLjAxMjUsIC0wLjAyNSwgLTAuMDQxMjUsIC0wLjA1IiwgXAotICAgICAgICAgICIwLjAzNjI1LCAwLjAyNSwgMC4wMTI1LCAwLCAtMC4wMTI1LCAtMC4wMjg3NSwgLTAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMDQyNSwgMC4wMzEyNSwgMC4wMTg3NSwgMC4wMDYyNSwgLTAuMDA2MjUsIC0wLjAxNjI1LCAtMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4wNTUsIDAuMDQzNzUsIDAuMDMxMjUsIDAuMDE4NzUsIDAuMDA2MjUsIC0wLjAxLCAtMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4wNzEyNSwgMC4wNiwgMC4wNDc1LCAwLjAzNSwgMC4wMjI1LCAwLjAwNjI1LCAtMC4wMDI1IiwgXAotICAgICAgICAgICIwLjA4NjI1LCAwLjA3NSwgMC4wNjI1LCAwLjA1LCAwLjAzNzUsIDAuMDIxMjUsIDAuMDEyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJlbW92YWxfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRCI7Ci0gICAgICBzZGZfY29uZCA6ICJEID09IDEnYjAiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHJlbW92YWxfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDMxMjUsIDAuMDM2MjUsIDAuMDQ4NzUsIDAuMDYxMjUsIDAuMDczNzUsIDAuMDksIDAuMDk4NzUiLCBcCi0gICAgICAgICAgIjAuMDIsIDAuMDMxMjUsIDAuMDQzNzUsIDAuMDU2MjUsIDAuMDYyNSwgMC4wNzg3NSwgMC4wOTM3NSIsIFwKLSAgICAgICAgICAiMC4wMDc1LCAwLjAxODc1LCAwLjAzMTI1LCAwLjA0Mzc1LCAwLjA1NjI1LCAwLjA2NjI1LCAwLjA4MTI1IiwgXAotICAgICAgICAgICIwLjAwMTI1LCAwLjAwNjI1LCAwLjAxODc1LCAwLjAzMTI1LCAwLjA0Mzc1LCAwLjA2LCAwLjA2ODc1IiwgXAotICAgICAgICAgICItMC4wMTEyNSwgMCwgMC4wMTI1LCAwLjAyNSwgMC4wMzc1LCAwLjA0NzUsIDAuMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDI3NSwgLTAuMDE2MjUsIC0wLjAwMzc1LCAwLjAwODc1LCAwLjAyMTI1LCAwLjAzNzUsIDAuMDQ2MjUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMjUsIC0wLjAxMjUsIDAsIDAuMDEyNSwgMC4wMjI1LCAwLjAzNzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBERkZUUlgxICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKERGRlRSWDEpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4zNDIxMzc7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgZmYgKE4zMCxRQklOVCkgewotICAgIG5leHRfc3RhdGUgOiAiKEQgUk4pIjsKLSAgICBjbG9ja2VkX29uIDogIkNLIjsKLSAgfQotICBwaW4oQ0spICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDU4MDM3NDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA1ODAyODQ7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNTgwMzc0OwotICAgIGNsb2NrIDogdHJ1ZTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDMwNDQsIDAuMDAzMDE3LCAwLjAwMzAwMiwgMC4wMDMwMDYsIDAuMDAzMDIyLCAwLjAwMzA0LCAwLjAwMzA2MiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNTg3MywgMC4wMDU4NDgsIDAuMDA1ODQ0LCAwLjAwNTg1MywgMC4wMDU4NzYsIDAuMDA1OTEyLCAwLjAwNTk1NyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQmIVJOIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9STl9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMTY1MjA2LCAwLjE3NTM4NCwgMC4xODgwOTcsIDAuMTk5NjQ2LCAwLjIwOTg3OSwgMC4yMjM4MjEsIDAuMjM0NTI4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wODM0MzMsIDAuMDkzMzgyLCAwLjEwNTYwMywgMC4xMTY2NDIsIDAuMTI2MTcsIDAuMTM5MDQ3LCAwLjE0ODgiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEQpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYwMTEwODsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MDA1MjM7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjAxMTA4OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjMzNSwgMC4wMDIzMTUsIDAuMDAyMzA1LCAwLjAwMjMwNywgMC4wMDIzMTMsIDAuMDAyMzQ1LCAwLjAwMjM2NCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzc2NywgMC4wMDM3NTMsIDAuMDAzNzQxLCAwLjAwMzczOCwgMC4wMDM3NDUsIDAuMDAzNzY0LCAwLjAwMzc3OCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJSTiI7Ci0gICAgICBzZGZfY29uZCA6ICJSTiA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wNDM3NSwgLTAuMDMyNSwgLTAuMDI2MjUsIC0wLjAyLCAtMC4wMTM3NSwgLTAuMDEsIC0wLjAwMTI1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAyMTI1LCAtMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wNjEyNSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDI3NSwgLTAuMDI1IiwgXAotICAgICAgICAgICItMC4wNzM3NSwgLTAuMDY4NzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDQsIC0wLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjA4NjI1LCAtMC4wODEyNSwgLTAuMDc1LCAtMC4wNjg3NSwgLTAuMDYyNSwgLTAuMDUyNSwgLTAuMDUiLCBcCi0gICAgICAgICAgIi0wLjEwMjUsIC0wLjA5NzUsIC0wLjA5MTI1LCAtMC4wODUsIC0wLjA3ODc1LCAtMC4wNjg3NSwgLTAuMDY2MjUiLCBcCi0gICAgICAgICAgIi0wLjExNzUsIC0wLjEwNjI1LCAtMC4xLCAtMC4wOTM3NSwgLTAuMDg3NSwgLTAuMDgzNzUsIC0wLjA3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2MjUsIDAuMDE3NSwgMC4wMywgMC4wMzYyNSwgMC4wNDg3NSwgMC4wNTg3NSwgMC4wNjc1IiwgXAotICAgICAgICAgICItMC4wMDUsIDAuMDA2MjUsIDAuMDE4NzUsIDAuMDMxMjUsIDAuMDM3NSwgMC4wNTM3NSwgMC4wNjI1IiwgXAotICAgICAgICAgICItMC4wMTEyNSwgLTAuMDA2MjUsIDAuMDA2MjUsIDAuMDE4NzUsIDAuMDI1LCAwLjA0MTI1LCAwLjA1IiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDEyNSwgMCwgMC4wMDYyNSwgMC4wMTg3NSwgMC4wMjg3NSwgMC4wMzc1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLCAwLjAxMjUsIDAuMDIyNSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDQsIC0wLjAyODc1LCAtMC4wMjI1LCAtMC4wMSwgLTAuMDAzNzUsIDAuMDEyNSwgMC4wMjEyNSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjAzNzUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIDAuMDAzNzUsIDAuMDEyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiUk4iOwotICAgICAgc2RmX2NvbmQgOiAiUk4gPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc1LCAwLjA2Mzc1LCAwLjA1MTI1LCAwLjA0NSwgMC4wMzg3NSwgMC4wMzUsIDAuMDI2MjUiLCBcCi0gICAgICAgICAgIjAuMDgsIDAuMDc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDUsIDAuMDQsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiMC4wOTI1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1MjUsIDAuMDUiLCBcCi0gICAgICAgICAgIjAuMTA1LCAwLjA5Mzc1LCAwLjA4NzUsIDAuMDgxMjUsIDAuMDc1LCAwLjA2NSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiMC4xMTc1LCAwLjEwNjI1LCAwLjEsIDAuMDg3NSwgMC4wODc1LCAwLjA3NzUsIDAuMDY4NzUiLCBcCi0gICAgICAgICAgIjAuMTMzNzUsIDAuMTIyNSwgMC4xMTYyNSwgMC4xMSwgMC4xMDM3NSwgMC4wOTM3NSwgMC4wODUiLCBcCi0gICAgICAgICAgIjAuMTQ4NzUsIDAuMTM3NSwgMC4xMzEyNSwgMC4xMTg3NSwgMC4xMTI1LCAwLjEwODc1LCAwLjEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjUsIDAuMDEzNzUsIDAuMDAxMjUsIC0wLjAxMTI1LCAtMC4wMTc1LCAtMC4wMzM3NSwgLTAuMDQyNSIsIFwKLSAgICAgICAgICAiMC4wMzYyNSwgMC4wMjUsIDAuMDEyNSwgMCwgLTAuMDA2MjUsIC0wLjAyMjUsIC0wLjAzMTI1IiwgXAotICAgICAgICAgICIwLjA0ODc1LCAwLjAzNzUsIDAuMDI1LCAwLjAxMjUsIDAuMDA2MjUsIC0wLjAxLCAtMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4wNjEyNSwgMC4wNSwgMC4wMzc1LCAwLjAyNSwgMC4wMTI1LCAwLjAwMjUsIC0wLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMDY3NSwgMC4wNTYyNSwgMC4wNDM3NSwgMC4wMzEyNSwgMC4wMjUsIDAuMDA4NzUsIDAiLCBcCi0gICAgICAgICAgIjAuMDgzNzUsIDAuMDcyNSwgMC4wNiwgMC4wNDc1LCAwLjAzNSwgMC4wMjUsIDAuMDE2MjUiLCBcCi0gICAgICAgICAgIjAuMDkyNSwgMC4wODEyNSwgMC4wNjg3NSwgMC4wNTYyNSwgMC4wNSwgMC4wMzM3NSwgMC4wMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFEpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4yNjE3NTg7Ci0gICAgZnVuY3Rpb24gOiAiTjMwIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBub25fdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJpc2luZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMzU5NzUsIDAuMTYwNTksIDAuMjk5Njk0LCAwLjQyMjExMywgMC41ODU3MDksIDAuOTEyNjgyLCAxLjExNzcyIiwgXAotICAgICAgICAgICIwLjE0NjExOSwgMC4xNzA3MzYsIDAuMzA5NywgMC40MzIyNTEsIDAuNTk1ODU3LCAwLjkyMjg0NywgMS4xMjc4NyIsIFwKLSAgICAgICAgICAiMC4xNTg3MDMsIDAuMTgzMzMsIDAuMzIyNTA3LCAwLjQ0NDg1NywgMC42MDg0NDYsIDAuOTM1ODY4LCAxLjE0MDQiLCBcCi0gICAgICAgICAgIjAuMTcwMTg2LCAwLjE5NDgwNSwgMC4zMzM3MDYsIDAuNDU2MzUyLCAwLjYyMDEyNCwgMC45NDczODMsIDEuMTUxOTciLCBcCi0gICAgICAgICAgIjAuMTgwMTI2LCAwLjIwNDc5MSwgMC4zNDM5NjMsIDAuNDY2MzQyLCAwLjYzMDA2NiwgMC45NTczMzEsIDEuMTYxODkiLCBcCi0gICAgICAgICAgIjAuMTkzOTQ5LCAwLjIxODU4MiwgMC4zNTc3NTgsIDAuNDgwMDc4LCAwLjY0MzkwMiwgMC45NzExMjQsIDEuMTc1NjYiLCBcCi0gICAgICAgICAgIjAuMjA0NDk0LCAwLjIyOTEyOCwgMC4zNjg0NTQsIDAuNDkwNzA1LCAwLjY1NDM5OSwgMC45ODE3NjcsIDEuMTg2MyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTQ0NDgsIDAuMTQzNTU0LCAwLjQyODk3OCwgMC42ODA3NTksIDEuMDE4MjIsIDEuNjkwNjMsIDIuMTE1MjgiLCBcCi0gICAgICAgICAgIjAuMDk0NDY4LCAwLjE0MzU4NCwgMC40Mjg1ODksIDAuNjgwNzg4LCAxLjAxODE5LCAxLjY5MDU1LCAyLjExNTI1IiwgXAotICAgICAgICAgICIwLjA5Mzc4NCwgMC4xNDM3NjksIDAuNDI5MDEzLCAwLjY4MDcyMywgMS4wMTgyMiwgMS42OTM1NCwgMi4xMTUyMSIsIFwKLSAgICAgICAgICAiMC4wOTQzMDIsIDAuMTQzNDgxLCAwLjQyODE5MiwgMC42ODA3MDksIDEuMDE4NzksIDEuNjkzNTUsIDIuMTE1MjgiLCBcCi0gICAgICAgICAgIjAuMDk0ODA1LCAwLjE0MzgwOSwgMC40MjkwMDgsIDAuNjgwNjU0LCAxLjAxODg0LCAxLjY5MzU0LCAyLjExNTIxIiwgXAotICAgICAgICAgICIwLjA5NDQxOSwgMC4xNDM1NzksIDAuNDI5LCAwLjY4MDg2MSwgMS4wMTg4MywgMS42OTM1MSwgMi4xMTUxNyIsIFwKLSAgICAgICAgICAiMC4wOTQ3MjYsIDAuMTQzNTc3LCAwLjQyNzgwMSwgMC42ODA2OTgsIDEuMDE4NzUsIDEuNjkzNTUsIDIuMTE1MjMiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTUyNDkxLCAwLjE3NzM4OSwgMC4zMTc3MTgsIDAuNDQxNDgzLCAwLjYwNjM1MiwgMC45MzYxMywgMS4xNDIyNSIsIFwKLSAgICAgICAgICAiMC4xNjI2NTksIDAuMTg3NjI4LCAwLjMyNzgxOCwgMC40NTE2OTUsIDAuNjE2NTgxLCAwLjk0NjMzNiwgMS4xNTI0NiIsIFwKLSAgICAgICAgICAiMC4xNzUzNzYsIDAuMjAwMzAxLCAwLjM0MDc5OCwgMC40NjQxNSwgMC42MjkyNjYsIDAuOTU5MDAxLCAxLjE2NDk5IiwgXAotICAgICAgICAgICIwLjE4NjkyMSwgMC4yMTE4OTksIDAuMzUyMzQ1LCAwLjQ3NjAxMiwgMC42NDA4MTMsIDAuOTcwNTQ4LCAxLjE3NjU0IiwgXAotICAgICAgICAgICIwLjE5NzE1OSwgMC4yMjIsIDAuMzYyNjA5LCAwLjQ4NjE5MSwgMC42NTEwNiwgMC45ODA5MzIsIDEuMTg2OTEiLCBcCi0gICAgICAgICAgIjAuMjExMTEyLCAwLjIzNjA1MSwgMC4zNzY1NzcsIDAuNTAwMTEsIDAuNjY0OTc3LCAwLjk5NDY0NywgMS4yMDA4NyIsIFwKLSAgICAgICAgICAiMC4yMjE4MDksIDAuMjQ2NzgxLCAwLjM4NzE4OCwgMC41MTA4ODUsIDAuNjc1NzA3LCAxLjAwNTQ4LCAxLjIxMTU5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5MzM4MiwgMC4xNDE3ODgsIDAuNDIzMDEzLCAwLjY3MjM1NiwgMS4wMDQ4MywgMS42Njk4OCwgMi4wODU2NiIsIFwKLSAgICAgICAgICAiMC4wOTI5NDQsIDAuMTQxODQ3LCAwLjQyMjQ5OCwgMC42NzIzNDUsIDEuMDA0ODYsIDEuNjY5ODQsIDIuMDg1NjYiLCBcCi0gICAgICAgICAgIjAuMDkzNDAzLCAwLjE0MjE1NiwgMC40MjE3NzksIDAuNjcwMzc5LCAxLjAwNDg3LCAxLjY2OTc2LCAyLjA4MjczIiwgXAotICAgICAgICAgICIwLjA5MzQ3MSwgMC4xNDE4MjMsIDAuNDIzMDA4LCAwLjY3MjQ4NywgMS4wMDQ4NywgMS42Njk3NSwgMi4wODI2OCIsIFwKLSAgICAgICAgICAiMC4wOTI2NjIsIDAuMTQxODc0LCAwLjQyMTg1NywgMC42NzIzNzksIDEuMDA0ODgsIDEuNjcwMjMsIDIuMDg1NDUiLCBcCi0gICAgICAgICAgIjAuMDkzNDY2LCAwLjE0MTgwMSwgMC40MjI5ODgsIDAuNjcyMzM4LCAxLjAwNDgyLCAxLjY2ODIxLCAyLjA4NTYiLCBcCi0gICAgICAgICAgIjAuMDkzMDM3LCAwLjE0MjE3MiwgMC40MjI5OTIsIDAuNjcyNDYxLCAxLjAwNDg2LCAxLjY2OTg4LCAyLjA4NTYxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDE0LCAwLjAwNDEzOSwgMC4wMDQxMjUsIDAuMDA0MTE5LCAwLjAwNDExNSwgMC4wMDQxMTIsIDAuMDA0MTExIiwgXAotICAgICAgICAgICIwLjAwNDEyMywgMC4wMDQxMjIsIDAuMDA0MTA4LCAwLjAwNDEwMiwgMC4wMDQwOTgsIDAuMDA0MDk0LCAwLjAwNDA5MyIsIFwKLSAgICAgICAgICAiMC4wMDQxMTUsIDAuMDA0MTE0LCAwLjAwNDEsIDAuMDA0MDk1LCAwLjAwNDA5LCAwLjAwNDA4NiwgMC4wMDQwODUiLCBcCi0gICAgICAgICAgIjAuMDA0MTE3LCAwLjAwNDExNywgMC4wMDQxMDMsIDAuMDA0MDk3LCAwLjAwNDA5MywgMC4wMDQwODksIDAuMDA0MDg4IiwgXAotICAgICAgICAgICIwLjAwNDEyMywgMC4wMDQxMjMsIDAuMDA0MTEsIDAuMDA0MTA0LCAwLjAwNDEsIDAuMDA0MDk2LCAwLjAwNDA5NCIsIFwKLSAgICAgICAgICAiMC4wMDQxMzUsIDAuMDA0MTM2LCAwLjAwNDEyMywgMC4wMDQxMTcsIDAuMDA0MTEzLCAwLjAwNDEwOCwgMC4wMDQxMDciLCBcCi0gICAgICAgICAgIjAuMDA0MTQ4LCAwLjAwNDE0OSwgMC4wMDQxMzcsIDAuMDA0MTMxLCAwLjAwNDEyNywgMC4wMDQxMjIsIDAuMDA0MTIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQyMTcsIDAuMDA0MjI1LCAwLjAwNDIzNSwgMC4wMDQyMzcsIDAuMDA0MjM4LCAwLjAwNDIzOSwgMC4wMDQyNCIsIFwKLSAgICAgICAgICAiMC4wMDQyMDMsIDAuMDA0MjEsIDAuMDA0MjIsIDAuMDA0MjIyLCAwLjAwNDIyMywgMC4wMDQyMjQsIDAuMDA0MjI1IiwgXAotICAgICAgICAgICIwLjAwNDIwMiwgMC4wMDQyMDksIDAuMDA0MjE5LCAwLjAwNDIyMSwgMC4wMDQyMjMsIDAuMDA0MjI0LCAwLjAwNDIyNCIsIFwKLSAgICAgICAgICAiMC4wMDQyMSwgMC4wMDQyMTcsIDAuMDA0MjI3LCAwLjAwNDIyOSwgMC4wMDQyMzEsIDAuMDA0MjMyLCAwLjAwNDIzMiIsIFwKLSAgICAgICAgICAiMC4wMDQyMjUsIDAuMDA0MjMyLCAwLjAwNDI0MiwgMC4wMDQyNDQsIDAuMDA0MjQ2LCAwLjAwNDI0NywgMC4wMDQyNDciLCBcCi0gICAgICAgICAgIjAuMDA0MjQ2LCAwLjAwNDI1MywgMC4wMDQyNjMsIDAuMDA0MjY1LCAwLjAwNDI2NywgMC4wMDQyNjcsIDAuMDA0MjY4IiwgXAotICAgICAgICAgICIwLjAwNDI2NCwgMC4wMDQyNzIsIDAuMDA0MjgxLCAwLjAwNDI4MywgMC4wMDQyODUsIDAuMDA0Mjg2LCAwLjAwNDI4NiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUU4pICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4yNjQxOTQ7Ci0gICAgZnVuY3Rpb24gOiAiUUJJTlQiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5vbl91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcmlzaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE2NTIwNiwgMC4xODk3MTQsIDAuMzI4NzI3LCAwLjQ1MTM4LCAwLjYxNDkyNywgMC45NDIwOTEsIDEuMTQ2NTkiLCBcCi0gICAgICAgICAgIjAuMTc1Mzg0LCAwLjE5OTkwNCwgMC4zMzg5NjIsIDAuNDYxNTgzLCAwLjYyNTE0MywgMC45NTIyOSwgMS4xNTY4IiwgXAotICAgICAgICAgICIwLjE4ODA5NywgMC4yMTI2MDUsIDAuMzUxNjUxLCAwLjQ3NDI4MywgMC42Mzc4NCwgMC45NjQ5NjUsIDEuMTY5MzgiLCBcCi0gICAgICAgICAgIjAuMTk5NjQ2LCAwLjIyNDE1OCwgMC4zNjMxOTksIDAuNDg1ODUyLCAwLjY0OTM4OCwgMC45NzY1MTMsIDEuMTgwOTMiLCBcCi0gICAgICAgICAgIjAuMjA5ODc5LCAwLjIzNDM4LCAwLjM3MzQ1NiwgMC40OTYwODUsIDAuNjU5NjM5LCAwLjk4Njg5LCAxLjE5MTI1IiwgXAotICAgICAgICAgICIwLjIyMzgyMSwgMC4yNDgzMzgsIDAuMzg3Mzk4LCAwLjUxMDAwOSwgMC42NzM1NTgsIDEuMDAwNzMsIDEuMjA1MjEiLCBcCi0gICAgICAgICAgIjAuMjM0NTMzLCAwLjI1OTA1OCwgMC4zOTgwNzgsIDAuNTIwNzU3LCAwLjY4NDI4NSwgMS4wMTE0NCwgMS4yMTU5NCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTExMzUsIDAuMTQxNDIsIDAuNDI3ODc1LCAwLjY4MDk3OSwgMS4wMTgyMiwgMS42OTI3NCwgMi4xMTQ0NSIsIFwKLSAgICAgICAgICAiMC4wOTEwNTgsIDAuMTQxMzE1LCAwLjQyNzQxNCwgMC42ODA5NzQsIDEuMDE4MTgsIDEuNjkyNzMsIDIuMTE0NDYiLCBcCi0gICAgICAgICAgIjAuMDkxMTM1LCAwLjE0MTQ2MiwgMC40MjcxNjIsIDAuNjc5MDM2LCAxLjAxODIxLCAxLjY5MjcxLCAyLjExMTY1IiwgXAotICAgICAgICAgICIwLjA5MDk4NywgMC4xNDEzMDMsIDAuNDI4MTQzLCAwLjY4MTExMSwgMS4wMTgyMSwgMS42OTI3LCAyLjExMTU4IiwgXAotICAgICAgICAgICIwLjA5MDkwNywgMC4xNDEwNDgsIDAuNDI3MTYsIDAuNjgwOTk1LCAxLjAxODIxLCAxLjY5Mjk5LCAyLjExNDMzIiwgXAotICAgICAgICAgICIwLjA5MTEwMywgMC4xNDEzMDksIDAuNDI4MTIxLCAwLjY4MDk2OSwgMS4wMTgyMSwgMS42OTE5OSwgMi4xMTQ0MiIsIFwKLSAgICAgICAgICAiMC4wOTEwNjcsIDAuMTQxNDgxLCAwLjQyODA5NiwgMC42ODEwNDIsIDEuMDE4MjIsIDEuNjkyNzUsIDIuMTE0NDMiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTUwOTIzLCAwLjE3NTY1LCAwLjMxNTc5OCwgMC40Mzk0NTIsIDAuNjA0MjkzLCAwLjkzNDA2OCwgMS4xNDAxMyIsIFwKLSAgICAgICAgICAiMC4xNjEwNjYsIDAuMTg1NzkzLCAwLjMyNTk0NywgMC40NDk1OTYsIDAuNjE0NDM2LCAwLjk0NDE5NywgMS4xNTAyOCIsIFwKLSAgICAgICAgICAiMC4xNzM2NDEsIDAuMTk4MzY2LCAwLjMzODUzLCAwLjQ2MjE2NywgMC42MjcwMDcsIDAuOTU2NzQyLCAxLjE2Mjg0IiwgXAotICAgICAgICAgICIwLjE4NTEyNCwgMC4yMDk4NTEsIDAuMzUwMDEsIDAuNDczNjQ5LCAwLjYzODQ5MywgMC45NjgyNCwgMS4xNzQzNSIsIFwKLSAgICAgICAgICAiMC4xOTUwODksIDAuMjE5ODE1LCAwLjM1OTk3NSwgMC40ODM2MDksIDAuNjQ4NDQ3LCAwLjk3ODE5MSwgMS4xODQyOSIsIFwKLSAgICAgICAgICAiMC4yMDg4ODksIDAuMjMzNjE3LCAwLjM3Mzc3LCAwLjQ5NzQxNSwgMC42NjIyNTMsIDAuOTkxOTg1LCAxLjE5ODA4IiwgXAotICAgICAgICAgICIwLjIxOTQxMiwgMC4yNDQxMzYsIDAuMzg0MzI1LCAwLjUwNzkyLCAwLjY3Mjc1NSwgMS4wMDI1NCwgMS4yMDg2MyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODk3NDUsIDAuMTM5MjA4LCAwLjQyMTU1NSwgMC42Njk5NjQsIDEuMDAyNTEsIDEuNjY0OSwgMi4wODMwOSIsIFwKLSAgICAgICAgICAiMC4wODk3NDUsIDAuMTM5MjA1LCAwLjQyMTM1OCwgMC42Njk5NywgMS4wMDI0OCwgMS42NjQ3MSwgMi4wODMwNCIsIFwKLSAgICAgICAgICAiMC4wODk3NDUsIDAuMTM5MjA1LCAwLjQyMTYxMiwgMC42Njk5NCwgMS4wMDI0OSwgMS42Njc1MywgMi4wODI5NCIsIFwKLSAgICAgICAgICAiMC4wODk3NDUsIDAuMTM5MjAzLCAwLjQyMTA0NSwgMC42Njk5MywgMS4wMDI5MiwgMS42Njc1OCwgMi4wODMxMiIsIFwKLSAgICAgICAgICAiMC4wODk3MTQsIDAuMTM5MTkyLCAwLjQyMTYwMSwgMC42Njk5MDMsIDEuMDAyODksIDEuNjY3NTUsIDIuMDgyOTciLCBcCi0gICAgICAgICAgIjAuMDg5NzQzLCAwLjEzOTIwNCwgMC40MjE1ODcsIDAuNjcwMDA0LCAxLjAwMjkzLCAxLjY2NzUyLCAyLjA4MjkiLCBcCi0gICAgICAgICAgIjAuMDg5Njk3LCAwLjEzOTIxMSwgMC40MjA3MzgsIDAuNjY5OTA4LCAxLjAwMjgyLCAxLjY2NzY1LCAyLjA4MzA2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDIxNywgMC4wMDQyMjUsIDAuMDA0MjM1LCAwLjAwNDIzNywgMC4wMDQyMzgsIDAuMDA0MjM5LCAwLjAwNDI0IiwgXAotICAgICAgICAgICIwLjAwNDIwMywgMC4wMDQyMSwgMC4wMDQyMiwgMC4wMDQyMjIsIDAuMDA0MjIzLCAwLjAwNDIyNCwgMC4wMDQyMjUiLCBcCi0gICAgICAgICAgIjAuMDA0MjAyLCAwLjAwNDIwOSwgMC4wMDQyMTksIDAuMDA0MjIxLCAwLjAwNDIyMywgMC4wMDQyMjQsIDAuMDA0MjI0IiwgXAotICAgICAgICAgICIwLjAwNDIxLCAwLjAwNDIxNywgMC4wMDQyMjcsIDAuMDA0MjI5LCAwLjAwNDIzMSwgMC4wMDQyMzIsIDAuMDA0MjMyIiwgXAotICAgICAgICAgICIwLjAwNDIyNSwgMC4wMDQyMzIsIDAuMDA0MjQyLCAwLjAwNDI0NCwgMC4wMDQyNDYsIDAuMDA0MjQ3LCAwLjAwNDI0NyIsIFwKLSAgICAgICAgICAiMC4wMDQyNDYsIDAuMDA0MjUzLCAwLjAwNDI2MywgMC4wMDQyNjUsIDAuMDA0MjY3LCAwLjAwNDI2NywgMC4wMDQyNjgiLCBcCi0gICAgICAgICAgIjAuMDA0MjY0LCAwLjAwNDI3MiwgMC4wMDQyODEsIDAuMDA0MjgzLCAwLjAwNDI4NSwgMC4wMDQyODYsIDAuMDA0Mjg2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0MTQsIDAuMDA0MTM5LCAwLjAwNDEyNSwgMC4wMDQxMTksIDAuMDA0MTE1LCAwLjAwNDExMiwgMC4wMDQxMTEiLCBcCi0gICAgICAgICAgIjAuMDA0MTIzLCAwLjAwNDEyMiwgMC4wMDQxMDgsIDAuMDA0MTAyLCAwLjAwNDA5OCwgMC4wMDQwOTQsIDAuMDA0MDkzIiwgXAotICAgICAgICAgICIwLjAwNDExNSwgMC4wMDQxMTQsIDAuMDA0MSwgMC4wMDQwOTUsIDAuMDA0MDksIDAuMDA0MDg2LCAwLjAwNDA4NSIsIFwKLSAgICAgICAgICAiMC4wMDQxMTcsIDAuMDA0MTE3LCAwLjAwNDEwMywgMC4wMDQwOTcsIDAuMDA0MDkzLCAwLjAwNDA4OSwgMC4wMDQwODgiLCBcCi0gICAgICAgICAgIjAuMDA0MTIzLCAwLjAwNDEyMywgMC4wMDQxMSwgMC4wMDQxMDQsIDAuMDA0MSwgMC4wMDQwOTYsIDAuMDA0MDk0IiwgXAotICAgICAgICAgICIwLjAwNDEzNSwgMC4wMDQxMzYsIDAuMDA0MTIzLCAwLjAwNDExNywgMC4wMDQxMTMsIDAuMDA0MTA4LCAwLjAwNDEwNyIsIFwKLSAgICAgICAgICAiMC4wMDQxNDgsIDAuMDA0MTQ5LCAwLjAwNDEzNywgMC4wMDQxMzEsIDAuMDA0MTI3LCAwLjAwNDEyMiwgMC4wMDQxMiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUk4pICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDU2MTczOTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA1NjE3Mzk7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNTYwNTM7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyMzM4LCAwLjAwMjMxNiwgMC4wMDIzMDQsIDAuMDAyMjk5LCAwLjAwMjI5NiwgMC4wMDIzMDYsIDAuMDAyMzE1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA0MDI3LCAwLjAwNDAxNiwgMC4wMDQwMDksIDAuMDA0MDA4LCAwLjAwNDAxNSwgMC4wMDQwMzgsIDAuMDA0MDU2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIkQiOwotICAgICAgc2RmX2NvbmQgOiAiRCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wNDM3NSwgLTAuMDM4NzUsIC0wLjAzMjUsIC0wLjAyNjI1LCAtMC4wMiwgLTAuMDEsIC0wLjAwNzUiLCBcCi0gICAgICAgICAgIi0wLjA1NSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAyMTI1LCAtMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wNjc1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzM3NSwgLTAuMDI1IiwgXAotICAgICAgICAgICItMC4wNzM3NSwgLTAuMDY4NzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDQsIC0wLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjA4NjI1LCAtMC4wNzUsIC0wLjA2ODc1LCAtMC4wNjI1LCAtMC4wNjI1LCAtMC4wNTI1LCAtMC4wNDM3NSIsIFwKLSAgICAgICAgICAiLTAuMTAyNSwgLTAuMDkxMjUsIC0wLjA4NSwgLTAuMDc4NzUsIC0wLjA3MjUsIC0wLjA2ODc1LCAtMC4wNiIsIFwKLSAgICAgICAgICAiLTAuMTExMjUsIC0wLjEwNjI1LCAtMC4xLCAtMC4wOTM3NSwgLTAuMDg3NSwgLTAuMDc3NSwgLTAuMDc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDYyNSwgMC4wMTc1LCAwLjAzLCAwLjAzNjI1LCAwLjA0ODc1LCAwLjA1ODc1LCAwLjA2NzUiLCBcCi0gICAgICAgICAgIi0wLjAwNSwgMC4wMDYyNSwgMC4wMTg3NSwgMC4wMzEyNSwgMC4wMzc1LCAwLjA0NzUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIi0wLjAxNzUsIC0wLjAwNjI1LCAwLjAwNjI1LCAwLjAxODc1LCAwLjAyNSwgMC4wMzUsIDAuMDUiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMC4wMDYyNSwgMC4wMTI1LCAwLjAyODc1LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMjUsIC0wLjAxMjUsIDAsIDAuMDA2MjUsIDAuMDE2MjUsIDAuMDI1IiwgXAotICAgICAgICAgICItMC4wNCwgLTAuMDM1LCAtMC4wMjI1LCAtMC4wMTYyNSwgLTAuMDAzNzUsIDAuMDA2MjUsIDAuMDE1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDQzNzUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAxMjUsIC0wLjAwMjUsIDAuMDA2MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIkQiOwotICAgICAgc2RmX2NvbmQgOiAiRCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzUsIDAuMDYzNzUsIDAuMDU3NSwgMC4wNTEyNSwgMC4wNDUsIDAuMDM1LCAwLjAyNjI1IiwgXAotICAgICAgICAgICIwLjA4NjI1LCAwLjA3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1LCAwLjA0NjI1LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIjAuMDkyNSwgMC4wODc1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1MjUsIDAuMDUiLCBcCi0gICAgICAgICAgIjAuMTA1LCAwLjA5Mzc1LCAwLjA4NzUsIDAuMDgxMjUsIDAuMDc1LCAwLjA2NSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiMC4xMTc1LCAwLjEwNjI1LCAwLjA5Mzc1LCAwLjA4NzUsIDAuMDgxMjUsIDAuMDc3NSwgMC4wNjg3NSIsIFwKLSAgICAgICAgICAiMC4xMzM3NSwgMC4xMjI1LCAwLjExLCAwLjEwMzc1LCAwLjA5NzUsIDAuMDg3NSwgMC4wODUiLCBcCi0gICAgICAgICAgIjAuMTQyNSwgMC4xMzEyNSwgMC4xMjUsIDAuMTE4NzUsIDAuMTEyNSwgMC4xMDI1LCAwLjA5Mzc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDI1LCAwLjAyLCAwLjAwNzUsIC0wLjAwNSwgLTAuMDE3NSwgLTAuMDI3NSwgLTAuMDQyNSIsIFwKLSAgICAgICAgICAiMC4wMzYyNSwgMC4wMjUsIDAuMDEyNSwgMCwgLTAuMDA2MjUsIC0wLjAyMjUsIC0wLjAzMTI1IiwgXAotICAgICAgICAgICIwLjA0ODc1LCAwLjAzNzUsIDAuMDI1LCAwLjAxMjUsIDAuMDA2MjUsIC0wLjAxLCAtMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4wNjEyNSwgMC4wNSwgMC4wMzc1LCAwLjAyNSwgMC4wMTg3NSwgMC4wMDI1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiMC4wNzM3NSwgMC4wNjI1LCAwLjA1LCAwLjAzNzUsIDAuMDI1LCAwLjAxNSwgMCIsIFwKLSAgICAgICAgICAiMC4wODM3NSwgMC4wNzI1LCAwLjA2LCAwLjA1Mzc1LCAwLjA0MTI1LCAwLjAyNSwgMC4wMTYyNSIsIFwKLSAgICAgICAgICAiMC4wOTg3NSwgMC4wODc1LCAwLjA3NSwgMC4wNjI1LCAwLjA1LCAwLjA0LCAwLjAyNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IERGRlRSWDQgKgotICogLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoREZGVFJYNCkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjY0NjA4OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIGZmIChOMzAsUUJJTlQpIHsKLSAgICBuZXh0X3N0YXRlIDogIihEIFJOKSI7Ci0gICAgY2xvY2tlZF9vbiA6ICJDSyI7Ci0gIH0KLSAgcGluKENLKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2NDI4MjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2NDI2MTI7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjQyODI7Ci0gICAgY2xvY2sgOiB0cnVlOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzAwNCwgMC4wMDI5OCwgMC4wMDI5NjgsIDAuMDAyOTcyLCAwLjAwMjk4NCwgMC4wMDMwMDUsIDAuMDAzMDI2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA1NzI1LCAwLjAwNTcwMiwgMC4wMDU3LCAwLjAwNTcxLCAwLjAwNTczMiwgMC4wMDU3NzksIDAuMDA1ODE4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRCYhUk4iOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1JOX0VRXzAgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4xNTA0OTYsIDAuMTYwNzI2LCAwLjE3MzQzMSwgMC4xODQ5MzYsIDAuMTk1MTkzLCAwLjIwOTA3NiwgMC4yMTk5MTEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjA4MjY0MywgMC4wOTIyOTMsIDAuMTA0NjUyLCAwLjExNTc5MiwgMC4xMjUyMDcsIDAuMTM4MDg5LCAwLjE0NzY4NCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjQwNDA3OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYzOTY5NzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2NDA0MDc7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyMzYzLCAwLjAwMjM0MywgMC4wMDIzMzMsIDAuMDAyMzM1LCAwLjAwMjM0MiwgMC4wMDIzNjUsIDAuMDAyMzkxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzODM0LCAwLjAwMzgxOSwgMC4wMDM4MDcsIDAuMDAzODA1LCAwLjAwMzgxMiwgMC4wMDM4MzIsIDAuMDAzODQ0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlJOIjsKLSAgICAgIHNkZl9jb25kIDogIlJOID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjA0Mzc1LCAtMC4wMzI1LCAtMC4wMjYyNSwgLTAuMDIsIC0wLjAyLCAtMC4wMSwgLTAuMDA3NSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMjEyNSwgLTAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDYxMjUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzMzc1LCAtMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjA3Mzc1LCAtMC4wNjg3NSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNCwgLTAuMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDg2MjUsIC0wLjA4MTI1LCAtMC4wNzUsIC0wLjA2ODc1LCAtMC4wNjI1LCAtMC4wNTI1LCAtMC4wNSIsIFwKLSAgICAgICAgICAiLTAuMTAyNSwgLTAuMDk3NSwgLTAuMDkxMjUsIC0wLjA4NSwgLTAuMDc4NzUsIC0wLjA2ODc1LCAtMC4wNjYyNSIsIFwKLSAgICAgICAgICAiLTAuMTExMjUsIC0wLjEwNjI1LCAtMC4xLCAtMC4wOTM3NSwgLTAuMDg3NSwgLTAuMDgzNzUsIC0wLjA3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2MjUsIDAuMDE3NSwgMC4wMywgMC4wMzYyNSwgMC4wNDg3NSwgMC4wNTg3NSwgMC4wNjc1IiwgXAotICAgICAgICAgICItMC4wMDUsIDAuMDA2MjUsIDAuMDE4NzUsIDAuMDMxMjUsIDAuMDM3NSwgMC4wNTM3NSwgMC4wNjI1IiwgXAotICAgICAgICAgICItMC4wMTEyNSwgLTAuMDA2MjUsIDAuMDA2MjUsIDAuMDE4NzUsIDAuMDI1LCAwLjA0MTI1LCAwLjA1IiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDEyNSwgMCwgMC4wMDYyNSwgMC4wMTg3NSwgMC4wMjg3NSwgMC4wMzc1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLCAwLjAxMjUsIDAuMDIyNSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDQsIC0wLjAyODc1LCAtMC4wMTYyNSwgLTAuMDEsIC0wLjAwMzc1LCAwLjAxMjUsIDAuMDIxMjUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzNzUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLjAwMzc1LCAwLjAxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlJOIjsKLSAgICAgIHNkZl9jb25kIDogIlJOID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3NSwgMC4wNjM3NSwgMC4wNTc1LCAwLjA1MTI1LCAwLjA0NSwgMC4wMzUsIDAuMDI2MjUiLCBcCi0gICAgICAgICAgIjAuMDg2MjUsIDAuMDc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDUsIDAuMDQ2MjUsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiMC4wOTg3NSwgMC4wODc1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1MjUsIDAuMDUiLCBcCi0gICAgICAgICAgIjAuMTExMjUsIDAuMSwgMC4wODc1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNjUsIDAuMDYyNSIsIFwKLSAgICAgICAgICAiMC4xMjM3NSwgMC4xMTI1LCAwLjEsIDAuMDkzNzUsIDAuMDg3NSwgMC4wNzc1LCAwLjA3NSIsIFwKLSAgICAgICAgICAiMC4xNCwgMC4xMjg3NSwgMC4xMTYyNSwgMC4xMSwgMC4xMDM3NSwgMC4wOTM3NSwgMC4wOTEyNSIsIFwKLSAgICAgICAgICAiMC4xNTUsIDAuMTQzNzUsIDAuMTMxMjUsIDAuMTI1LCAwLjExODc1LCAwLjEwODc1LCAwLjEwNjI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDMxMjUsIDAuMDIsIDAuMDA3NSwgLTAuMDA1LCAtMC4wMTc1LCAtMC4wMjc1LCAtMC4wMzYyNSIsIFwKLSAgICAgICAgICAiMC4wMzYyNSwgMC4wMjUsIDAuMDE4NzUsIDAuMDA2MjUsIC0wLjAwNjI1LCAtMC4wMTYyNSwgLTAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMDQ4NzUsIDAuMDM3NSwgMC4wMjUsIDAuMDE4NzUsIDAuMDA2MjUsIC0wLjAxLCAtMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4wNjEyNSwgMC4wNSwgMC4wMzc1LCAwLjAyNSwgMC4wMTg3NSwgMC4wMDI1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiMC4wNzM3NSwgMC4wNjI1LCAwLjA1LCAwLjAzNzUsIDAuMDI1LCAwLjAxNSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiMC4wODM3NSwgMC4wNzg3NSwgMC4wNjYyNSwgMC4wNTM3NSwgMC4wNDEyNSwgMC4wMjUsIDAuMDE2MjUiLCBcCi0gICAgICAgICAgIjAuMDk4NzUsIDAuMDg3NSwgMC4wNzUsIDAuMDYyNSwgMC4wNSwgMC4wNCwgMC4wMzEyNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAxLjAyOTIzOwotICAgIGZ1bmN0aW9uIDogIk4zMCI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3NlbnNlIDogbm9uX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiByaXNpbmdfZWRnZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTU3OCwgMC4xODk0MTgsIDAuMjYyMDg5LCAwLjMxMzc4NiwgMC4zOTY2NTIsIDAuNDY4MjU4LCAwLjU3MjAyMyIsIFwKLSAgICAgICAgICAiMC4xMjU5NTIsIDAuMTk5NTk5LCAwLjI3MjE1OSwgMC4zMjM0MiwgMC40MDY4ODQsIDAuNDc4OTE0LCAwLjU4MjA2IiwgXAotICAgICAgICAgICIwLjEzODQ3LCAwLjIxMjEyNSwgMC4yODQ2NTksIDAuMzM2MTg1LCAwLjQxOTI1MiwgMC40OTE0MSwgMC41OTQ2MSIsIFwKLSAgICAgICAgICAiMC4xNDk5MzMsIDAuMjIzNjA4LCAwLjI5NjI1MiwgMC4zNDc2NjcsIDAuNDMwODQsIDAuNTAyMzA0LCAwLjYwNjI5NCIsIFwKLSAgICAgICAgICAiMC4xNTk5NzQsIDAuMjMzNjQ5LCAwLjMwNjI5LCAwLjM1NzcyNiwgMC40NDA4ODUsIDAuNTEyMzQ3LCAwLjYxNjMyNiIsIFwKLSAgICAgICAgICAiMC4xNzM4MjMsIDAuMjQ3NDgyLCAwLjMyMDE4LCAwLjM3MTY1MSwgMC40NTQ2ODIsIDAuNTI2MTY1LCAwLjYzMDEzOCIsIFwKLSAgICAgICAgICAiMC4xODQ0MjYsIDAuMjU4MDgsIDAuMzMwNzg3LCAwLjM4MjMzNiwgMC40NjUzMTUsIDAuNTM2OTYsIDAuNjQwNjQyIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDMyOTQ1LCAwLjE3OTA0MSwgMC4zMjY5MDEsIDAuNDMyNTQxLCAwLjYwMjEwOCwgMC43NTExNzEsIDAuOTY1NDM1IiwgXAotICAgICAgICAgICIwLjAzMzA4NywgMC4xNzkwNDcsIDAuMzI2ODczLCAwLjQzMjI4OCwgMC42MDE5OTEsIDAuNzUyMywgMC45NjU0MDMiLCBcCi0gICAgICAgICAgIjAuMDMyOTE3LCAwLjE3ODQ0NywgMC4zMjYzNjIsIDAuNDMyNjA3LCAwLjYwMjk4MiwgMC43NTIyOTksIDAuOTY1NDAxIiwgXAotICAgICAgICAgICIwLjAzMjk5MiwgMC4xNzg0NjEsIDAuMzI2OSwgMC40MzI2MiwgMC42MDIwMzUsIDAuNzUwNjU1LCAwLjk2NTQ0NyIsIFwKLSAgICAgICAgICAiMC4wMzI5NzMsIDAuMTc4NDU2LCAwLjMyNjg5OSwgMC40MzI2MjksIDAuNjAyMDIzLCAwLjc1MDYzNiwgMC45NjU0MzUiLCBcCi0gICAgICAgICAgIjAuMDMzMDE2LCAwLjE3ODg4MSwgMC4zMjYwNjQsIDAuNDMyNDEzLCAwLjYwMjExMiwgMC43NTA3NjgsIDAuOTY1NDA3IiwgXAotICAgICAgICAgICIwLjAzMzA3NiwgMC4xNzkwNTgsIDAuMzI2MjE1LCAwLjQzMjQ0MiwgMC42MDIxMDEsIDAuNzUxMTY2LCAwLjk2NTM1MSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEyNTQ1MSwgMC4yMDA2NDMsIDAuMjc0NTYzLCAwLjMyNzIzNywgMC40MTEwNzksIDAuNDg0ODcsIDAuNTkwMDE3IiwgXAotICAgICAgICAgICIwLjEzNTY5OSwgMC4yMTA4ODYsIDAuMjg0ODE1LCAwLjMzNzQyOSwgMC40MjE3MTMsIDAuNDk1MTIzLCAwLjYwMDI2OSIsIFwKLSAgICAgICAgICAiMC4xNDgzNTcsIDAuMjIzNTQ1LCAwLjI5NzU1MSwgMC4zNTAxMTQsIDAuNDM0NDA3LCAwLjUwNzkyNSwgMC42MTMzNTMiLCBcCi0gICAgICAgICAgIjAuMTU5OTAxLCAwLjIzNTA5MywgMC4zMDkxODMsIDAuMzYxNzE3LCAwLjQ0NjEwOSwgMC41MTkzMzQsIDAuNjI0NDkzIiwgXAotICAgICAgICAgICIwLjE3MDE3NSwgMC4yNDUzMjQsIDAuMzE5Mjg4LCAwLjM3MTg1LCAwLjQ1NjQ3MSwgMC41Mjk1OTMsIDAuNjM0NzQyIiwgXAotICAgICAgICAgICIwLjE4NDA0NywgMC4yNTkyNTUsIDAuMzMzMTc0LCAwLjM4NTg0NiwgMC40Njk3MSwgMC41NDM0NzcsIDAuNjQ4NjI0IiwgXAotICAgICAgICAgICIwLjE5NDg4NiwgMC4yNzAwODQsIDAuMzQ0MjQ3LCAwLjM5NjQ2NSwgMC40ODA5NTEsIDAuNTU0MzMxLCAwLjY1OTQ2OCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzMjUwNiwgMC4xNzg2ODMsIDAuMzI2Nzg5LCAwLjQzMjY5OCwgMC42MDMxNjksIDAuNzUyODA3LCAwLjk2NTU5IiwgXAotICAgICAgICAgICIwLjAzMjQxNSwgMC4xNzg1NywgMC4zMjY3ODksIDAuNDMyNTcsIDAuNjAzOTA1LCAwLjc1MjgyLCAwLjk2NTU5NSIsIFwKLSAgICAgICAgICAiMC4wMzI1MjIsIDAuMTc4NjkzLCAwLjMyNjg1MiwgMC40MzI4NzEsIDAuNjAzOTQsIDAuNzUzMjcyLCAwLjk2NDgxOCIsIFwKLSAgICAgICAgICAiMC4wMzI1MDUsIDAuMTc4NTkzLCAwLjMyNjgwNSwgMC40MzI2OTYsIDAuNjAzOTMxLCAwLjc1MjkyNywgMC45NjU2NDUiLCBcCi0gICAgICAgICAgIjAuMDMyNDY5LCAwLjE3ODUxMSwgMC4zMjY4MSwgMC40MzI1OTgsIDAuNjAzNjkyLCAwLjc1MjkxNywgMC45NjU1ODkiLCBcCi0gICAgICAgICAgIjAuMDMyMzUyLCAwLjE3ODYyOCwgMC4zMjY3ODcsIDAuNDMyNjk4LCAwLjYwMzI3OSwgMC43NTI3ODYsIDAuOTY1NjA4IiwgXAotICAgICAgICAgICIwLjAzMjM5MSwgMC4xNzg2ODksIDAuMzI2ODA5LCAwLjQzMTQxMiwgMC42MDM5NDYsIDAuNzUyODk3LCAwLjk2NTYwNSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNzgxNCwgMC4wMDc5NzksIDAuMDA3OTk3LCAwLjAwODAwMSwgMC4wMDgwMDgsIDAuMDA4MDExLCAwLjAwODAxMyIsIFwKLSAgICAgICAgICAiMC4wMDc3OTcsIDAuMDA3OTYsIDAuMDA3OTc5LCAwLjAwNzk4NywgMC4wMDc5OTIsIDAuMDA3OTkyLCAwLjAwNzk5NyIsIFwKLSAgICAgICAgICAiMC4wMDc3OTMsIDAuMDA3OTU1LCAwLjAwNzk3NCwgMC4wMDc5ODEsIDAuMDA3OTg3LCAwLjAwNzk4OSwgMC4wMDc5OTIiLCBcCi0gICAgICAgICAgIjAuMDA3NzkzLCAwLjAwNzk1NiwgMC4wMDc5NzYsIDAuMDA3OTgxLCAwLjAwNzk4NywgMC4wMDc5OSwgMC4wMDc5OTQiLCBcCi0gICAgICAgICAgIjAuMDA3Nzk5LCAwLjAwNzk2MiwgMC4wMDc5ODIsIDAuMDA3OTg4LCAwLjAwNzk5MywgMC4wMDc5OTYsIDAuMDA4IiwgXAotICAgICAgICAgICIwLjAwNzgwOSwgMC4wMDc5NzMsIDAuMDA3OTkzLCAwLjAwNzk5OSwgMC4wMDgwMDQsIDAuMDA4MDA3LCAwLjAwODAxIiwgXAotICAgICAgICAgICIwLjAwNzgyMiwgMC4wMDc5ODUsIDAuMDA4MDA2LCAwLjAwODAxMiwgMC4wMDgwMTcsIDAuMDA4MDE3LCAwLjAwODAyNCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA4MDc3LCAwLjAwODIyNSwgMC4wMDgyNDQsIDAuMDA4MjUsIDAuMDA4MjU0LCAwLjAwODI1NywgMC4wMDgyNTkiLCBcCi0gICAgICAgICAgIjAuMDA4MDYzLCAwLjAwODIxMiwgMC4wMDgyMywgMC4wMDgyMzYsIDAuMDA4MjQyLCAwLjAwODI0NCwgMC4wMDgyNDYiLCBcCi0gICAgICAgICAgIjAuMDA4MDYyLCAwLjAwODIxMiwgMC4wMDgyMzEsIDAuMDA4MjM3LCAwLjAwODIzOSwgMC4wMDgyNDYsIDAuMDA4MjQ2IiwgXAotICAgICAgICAgICIwLjAwODA3LCAwLjAwODIyMSwgMC4wMDgyNDEsIDAuMDA4MjQ2LCAwLjAwODI1LCAwLjAwODI1MywgMC4wMDgyNTUiLCBcCi0gICAgICAgICAgIjAuMDA4MDg5LCAwLjAwODIzOCwgMC4wMDgyNTgsIDAuMDA4MjYyLCAwLjAwODI2NywgMC4wMDgyNjksIDAuMDA4MjcxIiwgXAotICAgICAgICAgICIwLjAwODEwMiwgMC4wMDgyNTMsIDAuMDA4MjcyLCAwLjAwODI3OCwgMC4wMDgyODMsIDAuMDA4Mjg2LCAwLjAwODI4NyIsIFwKLSAgICAgICAgICAiMC4wMDgxMjcsIDAuMDA4Mjc4LCAwLjAwODI5OCwgMC4wMDgzMDIsIDAuMDA4MzA3LCAwLjAwODMxMSwgMC4wMDgzMTMiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFFOKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDEuMDM2NDQ7Ci0gICAgZnVuY3Rpb24gOiAiUUJJTlQiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5vbl91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcmlzaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTUwNDk2LCAwLjIyMjk1NywgMC4yOTUxOTMsIDAuMzQ2ODM3LCAwLjQyOTQzMSwgMC41MDE2NSwgMC42MDQ4NzUiLCBcCi0gICAgICAgICAgIjAuMTYwNzI2LCAwLjIzMzIxMywgMC4zMDU0NDMsIDAuMzU3MDgzLCAwLjQzOTY1LCAwLjUxMTksIDAuNjE1MTI3IiwgXAotICAgICAgICAgICIwLjE3MzQzMSwgMC4yNDU4NjUsIDAuMzE4MTE4LCAwLjM2OTY5MiwgMC40NTIzMjYsIDAuNTI0NTQsIDAuNjI3OTQxIiwgXAotICAgICAgICAgICIwLjE4NDk0MSwgMC4yNTc0MjUsIDAuMzI5Njg5LCAwLjM4MTMxMSwgMC40NjM5MzEsIDAuNTM2MTIyLCAwLjYzOTM0NyIsIFwKLSAgICAgICAgICAiMC4xOTUxOTMsIDAuMjY3Njk1LCAwLjMzOTkyNiwgMC4zOTE1NTksIDAuNDc0MjQsIDAuNTQ2MzgyLCAwLjY0OTYwNyIsIFwKLSAgICAgICAgICAiMC4yMDkwNzYsIDAuMjgxNTU4LCAwLjM1Mzc5MywgMC40MDU0MzgsIDAuNDg4MDM3LCAwLjU2MDI1LCAwLjY2MzQ3NiIsIFwKLSAgICAgICAgICAiMC4yMTk5MTEsIDAuMjkyMzk5LCAwLjM2NDY3MSwgMC40MTYyNjQsIDAuNDk4ODU4LCAwLjU3MTA5LCAwLjY3NDMxOCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzMjIzMSwgMC4xNzc2NzYsIDAuMzI2NzU1LCAwLjQzMjU1OCwgMC42MDMwNDYsIDAuNzUyNzI5LCAwLjk2NTg3MyIsIFwKLSAgICAgICAgICAiMC4wMzIyMzksIDAuMTc3NzczLCAwLjMyNjc1MywgMC40MzI0MjIsIDAuNjAzOTQyLCAwLjc1MjczMywgMC45NjU4NzYiLCBcCi0gICAgICAgICAgIjAuMDMyMjY5LCAwLjE3NzY4OSwgMC4zMjY3ODYsIDAuNDMzMzAzLCAwLjYwMzk3NywgMC43NTMxNTksIDAuOTY0NTc4IiwgXAotICAgICAgICAgICIwLjAzMjIzOCwgMC4xNzc3NjcsIDAuMzI2NzU5LCAwLjQzMjY2MSwgMC42MDM5NjUsIDAuNzUyNzg4LCAwLjk2NTg4NCIsIFwKLSAgICAgICAgICAiMC4wMzIyMTgsIDAuMTc3Nzg1LCAwLjMyNjc2MSwgMC40MzI2NTMsIDAuNjAzNTk2LCAwLjc1Mjc4MywgMC45NjU4NyIsIFwKLSAgICAgICAgICAiMC4wMzIyMzksIDAuMTc3Njg1LCAwLjMyNjc1MywgMC40MzI1NTYsIDAuNjAzMDg2LCAwLjc1MjcyNCwgMC45NjU4NzkiLCBcCi0gICAgICAgICAgIjAuMDMyMjQxLCAwLjE3NzY5LCAwLjMyNjc2NywgMC40MzE5NzUsIDAuNjAzOTgxLCAwLjc1Mjc2LCAwLjk2NTg4NiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE0MjQ2NSwgMC4yMTY0NSwgMC4yOTAxMzgsIDAuMzQyNzY2LCAwLjQyNzAwMiwgMC41MDA2NzcsIDAuNjA1OTE3IiwgXAotICAgICAgICAgICIwLjE1MjY0MSwgMC4yMjY2MjksIDAuMzAwMzAxLCAwLjM1MjkxNiwgMC40MzcxODMsIDAuNTEwODIyLCAwLjYxNjA2MyIsIFwKLSAgICAgICAgICAiMC4xNjUxNTYsIDAuMjM5MTU5LCAwLjMxMjgyOCwgMC4zNjU0NTUsIDAuNDQ5NjkxLCAwLjUyMzM1MiwgMC42Mjg2MDIiLCBcCi0gICAgICAgICAgIjAuMTc2NjA4LCAwLjI1MDY1MSwgMC4zMjQzMjgsIDAuMzc2OTA3LCAwLjQ2MTE2MywgMC41MzQ4MTMsIDAuNjQwMSIsIFwKLSAgICAgICAgICAiMC4xODY2NTEsIDAuMjYwNjkyLCAwLjMzNDM2OCwgMC4zODY5NDgsIDAuNDcxMjA0LCAwLjU0NDg1MiwgMC42NTAxMzgiLCBcCi0gICAgICAgICAgIjAuMjAwNTAxLCAwLjI3NDUzOCwgMC4zNDgxODYsIDAuNDAwODIxLCAwLjQ4NTA4MywgMC41NTg3MDIsIDAuNjYzOTc4IiwgXAotICAgICAgICAgICIwLjIxMTEyMywgMC4yODUxMDEsIDAuMzU4ODA1LCAwLjQxMTQxNywgMC40OTU2NjYsIDAuNTY5MzM3LCAwLjY3NDU3MiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzMTkxMSwgMC4xNzc2NzEsIDAuMzI2ODc0LCAwLjQzMzUzNywgMC42MDMyODQsIDAuNzUyNzIsIDAuOTY3MDkiLCBcCi0gICAgICAgICAgIjAuMDMxOTQyLCAwLjE3NzY2NCwgMC4zMjY4MzMsIDAuNDMzMDM4LCAwLjYwMzI0NiwgMC43NTM2NCwgMC45NjY5NzgiLCBcCi0gICAgICAgICAgIjAuMDMxOTA4LCAwLjE3NzcyMSwgMC4zMjY1NjcsIDAuNDMzMTA5LCAwLjYwNDMxMywgMC43NTM2NDgsIDAuOTY2OTkiLCBcCi0gICAgICAgICAgIjAuMDMxOTAxLCAwLjE3NzgyLCAwLjMyNjg2NSwgMC40MzMxMTEsIDAuNjAzMjY3LCAwLjc1Mjg2OCwgMC45NjcxNDkiLCBcCi0gICAgICAgICAgIjAuMDMxOTAxLCAwLjE3NzgyLCAwLjMyNjg2MywgMC40MzMxMTQsIDAuNjAzMjYsIDAuNzUyODYzLCAwLjk2NzEzNyIsIFwKLSAgICAgICAgICAiMC4wMzE5MDUsIDAuMTc3NTg0LCAwLjMyNjM3NSwgMC40MzM0NTIsIDAuNjAzMjc4LCAwLjc1Mjg4MiwgMC45NjcwOTYiLCBcCi0gICAgICAgICAgIjAuMDMxOTQxLCAwLjE3NzY2NCwgMC4zMjYzNjksIDAuNDMzNDY1LCAwLjYwMzI3NCwgMC43NTI3LCAwLjk2Njk5MyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwODA3NywgMC4wMDgyMjUsIDAuMDA4MjQ0LCAwLjAwODI1LCAwLjAwODI1NCwgMC4wMDgyNTcsIDAuMDA4MjU5IiwgXAotICAgICAgICAgICIwLjAwODA2MywgMC4wMDgyMTIsIDAuMDA4MjMsIDAuMDA4MjM2LCAwLjAwODI0MiwgMC4wMDgyNDQsIDAuMDA4MjQ2IiwgXAotICAgICAgICAgICIwLjAwODA2MiwgMC4wMDgyMTIsIDAuMDA4MjMxLCAwLjAwODIzNywgMC4wMDgyMzksIDAuMDA4MjQ2LCAwLjAwODI0NiIsIFwKLSAgICAgICAgICAiMC4wMDgwNywgMC4wMDgyMjEsIDAuMDA4MjQxLCAwLjAwODI0NiwgMC4wMDgyNSwgMC4wMDgyNTMsIDAuMDA4MjU1IiwgXAotICAgICAgICAgICIwLjAwODA4OSwgMC4wMDgyMzgsIDAuMDA4MjU4LCAwLjAwODI2MiwgMC4wMDgyNjcsIDAuMDA4MjY5LCAwLjAwODI3MSIsIFwKLSAgICAgICAgICAiMC4wMDgxMDIsIDAuMDA4MjUzLCAwLjAwODI3MiwgMC4wMDgyNzgsIDAuMDA4MjgzLCAwLjAwODI4NiwgMC4wMDgyODciLCBcCi0gICAgICAgICAgIjAuMDA4MTI3LCAwLjAwODI3OCwgMC4wMDgyOTgsIDAuMDA4MzAyLCAwLjAwODMwNywgMC4wMDgzMTEsIDAuMDA4MzEzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDc4MTQsIDAuMDA3OTc5LCAwLjAwNzk5NywgMC4wMDgwMDEsIDAuMDA4MDA4LCAwLjAwODAxMSwgMC4wMDgwMTMiLCBcCi0gICAgICAgICAgIjAuMDA3Nzk3LCAwLjAwNzk2LCAwLjAwNzk3OSwgMC4wMDc5ODcsIDAuMDA3OTkyLCAwLjAwNzk5MiwgMC4wMDc5OTciLCBcCi0gICAgICAgICAgIjAuMDA3NzkzLCAwLjAwNzk1NSwgMC4wMDc5NzQsIDAuMDA3OTgxLCAwLjAwNzk4NywgMC4wMDc5ODksIDAuMDA3OTkyIiwgXAotICAgICAgICAgICIwLjAwNzc5MywgMC4wMDc5NTYsIDAuMDA3OTc2LCAwLjAwNzk4MSwgMC4wMDc5ODcsIDAuMDA3OTksIDAuMDA3OTk0IiwgXAotICAgICAgICAgICIwLjAwNzc5OSwgMC4wMDc5NjIsIDAuMDA3OTgyLCAwLjAwNzk4OCwgMC4wMDc5OTMsIDAuMDA3OTk2LCAwLjAwOCIsIFwKLSAgICAgICAgICAiMC4wMDc4MDksIDAuMDA3OTczLCAwLjAwNzk5MywgMC4wMDc5OTksIDAuMDA4MDA0LCAwLjAwODAwNywgMC4wMDgwMSIsIFwKLSAgICAgICAgICAiMC4wMDc4MjIsIDAuMDA3OTg1LCAwLjAwODAwNiwgMC4wMDgwMTIsIDAuMDA4MDE3LCAwLjAwODAxNywgMC4wMDgwMjQiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFJOKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2MDA4Nzk7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjAwODc5OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDYwMDE1NDsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDIzNjcsIDAuMDAyMzQ0LCAwLjAwMjMzMywgMC4wMDIzMjgsIDAuMDAyMzI3LCAwLjAwMjMzNCwgMC4wMDIzMzkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDQwNTYsIDAuMDA0MDQ1LCAwLjAwNDAzNywgMC4wMDQwMzgsIDAuMDA0MDQ1LCAwLjAwNDA2NiwgMC4wMDQwODUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiRCI7Ci0gICAgICBzZGZfY29uZCA6ICJEID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjA0Mzc1LCAtMC4wMzg3NSwgLTAuMDMyNSwgLTAuMDI2MjUsIC0wLjAyLCAtMC4wMSwgLTAuMDA3NSIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDIxMjUsIC0wLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjA2MTI1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzM3NSwgLTAuMDI1IiwgXAotICAgICAgICAgICItMC4wNzM3NSwgLTAuMDY4NzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDQsIC0wLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjA4NjI1LCAtMC4wNzUsIC0wLjA2ODc1LCAtMC4wNjI1LCAtMC4wNjI1LCAtMC4wNTI1LCAtMC4wNDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDk2MjUsIC0wLjA5MTI1LCAtMC4wODUsIC0wLjA3ODc1LCAtMC4wNzI1LCAtMC4wNjg3NSwgLTAuMDYiLCBcCi0gICAgICAgICAgIi0wLjExMTI1LCAtMC4xLCAtMC4wOTM3NSwgLTAuMDg3NSwgLTAuMDg3NSwgLTAuMDc3NSwgLTAuMDc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDYyNSwgMC4wMTc1LCAwLjAzLCAwLjAzNjI1LCAwLjA0ODc1LCAwLjA1ODc1LCAwLjA2NzUiLCBcCi0gICAgICAgICAgIi0wLjAwNSwgMC4wMDYyNSwgMC4wMTg3NSwgMC4wMzEyNSwgMC4wMzc1LCAwLjA0NzUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIi0wLjAxMTI1LCAtMC4wMDYyNSwgMC4wMDYyNSwgMC4wMTg3NSwgMC4wMjUsIDAuMDM1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAuMDA2MjUsIDAuMDE4NzUsIDAuMDI4NzUsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAxODc1LCAtMC4wMTI1LCAwLCAwLjAwNjI1LCAwLjAxNjI1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDQsIC0wLjAzNSwgLTAuMDIyNSwgLTAuMDEsIC0wLjAwMzc1LCAwLjAwNjI1LCAwLjAxNSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDAyNSwgMC4wMDYyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiRCI7Ci0gICAgICBzZGZfY29uZCA6ICJEID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4MTI1LCAwLjA3LCAwLjA1NzUsIDAuMDUxMjUsIDAuMDQ1LCAwLjAzNSwgMC4wMzI1IiwgXAotICAgICAgICAgICIwLjA4NjI1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA0NjI1LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIjAuMDk4NzUsIDAuMDg3NSwgMC4wNzUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNTg3NSwgMC4wNSIsIFwKLSAgICAgICAgICAiMC4xMTEyNSwgMC4xLCAwLjA4NzUsIDAuMDgxMjUsIDAuMDc1LCAwLjA2NSwgMC4wNjI1IiwgXAotICAgICAgICAgICIwLjExNzUsIDAuMTA2MjUsIDAuMSwgMC4wOTM3NSwgMC4wODc1LCAwLjA3NzUsIDAuMDY4NzUiLCBcCi0gICAgICAgICAgIjAuMTMzNzUsIDAuMTIyNSwgMC4xMTYyNSwgMC4xMDM3NSwgMC4wOTc1LCAwLjA5Mzc1LCAwLjA4NSIsIFwKLSAgICAgICAgICAiMC4xNDg3NSwgMC4xMzc1LCAwLjEyNSwgMC4xMTg3NSwgMC4xMTI1LCAwLjEwMjUsIDAuMSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzMTI1LCAwLjAyLCAwLjAwNzUsIC0wLjAwNSwgLTAuMDExMjUsIC0wLjAyNzUsIC0wLjAzNjI1IiwgXAotICAgICAgICAgICIwLjA0MjUsIDAuMDMxMjUsIDAuMDE4NzUsIDAuMDA2MjUsIC0wLjAwNjI1LCAtMC4wMTYyNSwgLTAuMDI1IiwgXAotICAgICAgICAgICIwLjA1NSwgMC4wNDM3NSwgMC4wMzEyNSwgMC4wMTg3NSwgMC4wMDYyNSwgLTAuMDAzNzUsIC0wLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMDYxMjUsIDAuMDU2MjUsIDAuMDQzNzUsIDAuMDMxMjUsIDAuMDE4NzUsIDAuMDA4NzUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICIwLjA3Mzc1LCAwLjA2MjUsIDAuMDUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMTUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMDksIDAuMDc4NzUsIDAuMDY2MjUsIDAuMDUzNzUsIDAuMDQxMjUsIDAuMDMxMjUsIDAuMDIyNSIsIFwKLSAgICAgICAgICAiMC4wOTg3NSwgMC4wODc1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNTYyNSwgMC4wNCwgMC4wMzEyNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBERkZYNCAqCi0gKiAtLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoREZGWDQpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC42MjYyMzE7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgZmYgKE4zMCxRQklOVCkgewotICAgIG5leHRfc3RhdGUgOiAiRCI7Ci0gICAgY2xvY2tlZF9vbiA6ICJDSyI7Ci0gIH0KLSAgcGluKENLKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA1ODU2MTE7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNTg1MzkyOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDU4NTYxMTsKLSAgICBjbG9jayA6IHRydWU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyOTA5LCAwLjAwMjg4NCwgMC4wMDI4NjksIDAuMDAyODcsIDAuMDAyODg1LCAwLjAwMjksIDAuMDAyOTI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA2MzY1LCAwLjAwNjM0MywgMC4wMDYzMzMsIDAuMDA2MzM0LCAwLjAwNjMzOSwgMC4wMDYzNjMsIDAuMDA2MzgzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRCI7Ci0gICAgICBzZGZfY29uZCA6ICJEID09IDEnYjAiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMTUzNDEyLCAwLjE2MzY3OCwgMC4xNzY1LCAwLjE4ODU1OCwgMC4xOTkzMywgMC4yMTQzNjUsIDAuMjI2MTA0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4xMDMwMDcsIDAuMTEyODg3LCAwLjEyNTIyNywgMC4xMzY3NDgsIDAuMTQ2NTg2LCAwLjE2MDIyMiwgMC4xNzA2MzIiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEQpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYwMzIyODsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MDE2MjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2MDMyMjg7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyMTg5LCAwLjAwMjE2NywgMC4wMDIxNTYsIDAuMDAyMTQ5LCAwLjAwMjE0OCwgMC4wMDIxNSwgMC4wMDIxNjQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDI3NjQsIDAuMDAyNzQ5LCAwLjAwMjc0MiwgMC4wMDI3MzksIDAuMDAyNzM4LCAwLjAwMjc0MSwgMC4wMDI3NDMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMTg3NSwgLTAuMDA3NSwgLTAuMDAxMjUsIDAuMDA1LCAwLjAxMTI1LCAwLjAyMTI1LCAwLjAyMzc1IiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLCAwLCAwLjAxLCAwLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgLTAuMDAyNSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDM3NSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDE4NzUsIC0wLjAwODc1LCAwIiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMTUsIC0wLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjA2NSwgLTAuMDUzNzUsIC0wLjA0NzUsIC0wLjA0MTI1LCAtMC4wMzUsIC0wLjAyNSwgLTAuMDIyNSIsIFwKLSAgICAgICAgICAiLTAuMDczNzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjAzMzc1LCAtMC4wMzEyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDI1LCAwLjAzNjI1LCAwLjA0ODc1LCAwLjA1NSwgMC4wNjc1LCAwLjA3NzUsIDAuMDkyNSIsIFwKLSAgICAgICAgICAiMC4wMTM3NSwgMC4wMjUsIDAuMDM3NSwgMC4wNSwgMC4wNTYyNSwgMC4wNzI1LCAwLjA4MTI1IiwgXAotICAgICAgICAgICIwLjAwNzUsIDAuMDE4NzUsIDAuMDMxMjUsIDAuMDQzNzUsIDAuMDUsIDAuMDY2MjUsIDAuMDc1IiwgXAotICAgICAgICAgICIwLjAwMTI1LCAwLjAxMjUsIDAuMDI1LCAwLjAzNzUsIDAuMDQzNzUsIDAuMDYsIDAuMDY4NzUiLCBcCi0gICAgICAgICAgIi0wLjAwNSwgMC4wMDYyNSwgMC4wMTg3NSwgMC4wMzEyNSwgMC4wMzc1LCAwLjA1Mzc1LCAwLjA2MjUiLCBcCi0gICAgICAgICAgIi0wLjAwODc1LCAwLjAwMjUsIDAuMDE1LCAwLjAyMTI1LCAwLjAzMzc1LCAwLjA0Mzc1LCAwLjA1MjUiLCBcCi0gICAgICAgICAgIi0wLjAxMTI1LCAtMC4wMDYyNSwgMC4wMDYyNSwgMC4wMTg3NSwgMC4wMjUsIDAuMDQxMjUsIDAuMDUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQzNzUsIDAuMDMyNSwgMC4wMiwgMC4wMTM3NSwgMC4wMDc1LCAtMC4wMDI1LCAtMC4wMDUiLCBcCi0gICAgICAgICAgIjAuMDQ4NzUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMjUsIDAuMDE4NzUsIDAuMDA4NzUsIDAiLCBcCi0gICAgICAgICAgIjAuMDYxMjUsIDAuMDUsIDAuMDQzNzUsIDAuMDMxMjUsIDAuMDI1LCAwLjAyMTI1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMDczNzUsIDAuMDYyNSwgMC4wNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAyNzUsIDAuMDI1IiwgXAotICAgICAgICAgICIwLjA4LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDUsIDAuMDQzNzUsIDAuMDQsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMDk2MjUsIDAuMDg1LCAwLjA3MjUsIDAuMDY2MjUsIDAuMDYsIDAuMDUsIDAuMDQxMjUiLCBcCi0gICAgICAgICAgIjAuMTA1LCAwLjA5Mzc1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNTg3NSwgMC4wNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxODc1LCAwLjAwNzUsIC0wLjAwNSwgLTAuMDE3NSwgLTAuMDMsIC0wLjA0NjI1LCAtMC4wNTUiLCBcCi0gICAgICAgICAgIjAuMDMsIDAuMDE4NzUsIDAuMDA2MjUsIC0wLjAwNjI1LCAtMC4wMTg3NSwgLTAuMDM1LCAtMC4wNSIsIFwKLSAgICAgICAgICAiMC4wMzYyNSwgMC4wMjUsIDAuMDEyNSwgMCwgLTAuMDEyNSwgLTAuMDI4NzUsIC0wLjAzNzUiLCBcCi0gICAgICAgICAgIjAuMDQ4NzUsIDAuMDM3NSwgMC4wMjUsIDAuMDEyNSwgMCwgLTAuMDE2MjUsIC0wLjAzMTI1IiwgXAotICAgICAgICAgICIwLjA1NSwgMC4wNDM3NSwgMC4wMzEyNSwgMC4wMTg3NSwgMC4wMDYyNSwgLTAuMDEsIC0wLjAxODc1IiwgXAotICAgICAgICAgICIwLjA2NSwgMC4wNTM3NSwgMC4wNDEyNSwgMC4wMjg3NSwgMC4wMTYyNSwgMCwgLTAuMDA4NzUiLCBcCi0gICAgICAgICAgIjAuMDczNzUsIDAuMDYyNSwgMC4wNSwgMC4wMzc1LCAwLjAyNSwgMC4wMDg3NSwgMCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAxLjAyNzg1OwotICAgIGZ1bmN0aW9uIDogIk4zMCI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3NlbnNlIDogbm9uX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiByaXNpbmdfZWRnZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTgxMDgsIDAuMTkxNywgMC4yNjQxNzksIDAuMzE1NDExLCAwLjM5ODcyMywgMC40NzA3MjIsIDAuNTczNzg0IiwgXAotICAgICAgICAgICIwLjEyODM2MywgMC4yMDE5NTQsIDAuMjc0MjcyLCAwLjMyNTgxNiwgMC40MDg5MTUsIDAuNDgwOTk4LCAwLjU4NDA5NyIsIFwKLSAgICAgICAgICAiMC4xNDEwNzQsIDAuMjE0NjY4LCAwLjI4NzMxNSwgMC4zMzkwNTksIDAuNDIxNzMyLCAwLjQ5MzIwNywgMC41OTY5MDciLCBcCi0gICAgICAgICAgIjAuMTUzMDY2LCAwLjIyNjY1MSwgMC4yOTkyNzcsIDAuMzUwNDk0LCAwLjQzMzcyMywgMC41MDQ5MTUsIDAuNjA5MDM3IiwgXAotICAgICAgICAgICIwLjE2MzcxNSwgMC4yMzczMDksIDAuMzA5OTM1LCAwLjM2MTQ5NCwgMC40NDQzMDYsIDAuNTE2MjM4LCAwLjYxODc4MiIsIFwKLSAgICAgICAgICAiMC4xNzg3MDMsIDAuMjUyMywgMC4zMjQ5MzUsIDAuMzc2ODQyLCAwLjQ1OTM1NywgMC41MzA2ODcsIDAuNjM0NTc5IiwgXAotICAgICAgICAgICIwLjE5MDExLCAwLjI2MzY4OCwgMC4zMzYyMjEsIDAuMzg3NDc4LCAwLjQ3MDc1OSwgMC41NDI3MzYsIDAuNjQ1ODA5Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDMzMTMyLCAwLjE3OTAzNSwgMC4zMjYyMjgsIDAuNDMyMDIsIDAuNjAxNzMyLCAwLjc1MTgxMSwgMC45NjQ3MzgiLCBcCi0gICAgICAgICAgIjAuMDMzMTk0LCAwLjE3OTAzNiwgMC4zMjY3LCAwLjQzMjI4NiwgMC42MDI2MTEsIDAuNzUxODEzLCAwLjk2NDc0IiwgXAotICAgICAgICAgICIwLjAzMzA4NCwgMC4xNzkwNDYsIDAuMzI1ODY2LCAwLjQzMTgzOSwgMC42MDE2ODQsIDAuNzUwNjcxLCAwLjk2NDc2MiIsIFwKLSAgICAgICAgICAiMC4wMzMxNDQsIDAuMTc5MDM2LCAwLjMyNjA2LCAwLjQzMjI2NiwgMC42MDE2NzYsIDAuNzUwMDQ0LCAwLjk2NDc5NCIsIFwKLSAgICAgICAgICAiMC4wMzMxNDksIDAuMTc5MDM3LCAwLjMyNjA0MSwgMC40MzIyNjksIDAuNjAxNjQxLCAwLjc0OTk4MiwgMC45NjI1MDIiLCBcCi0gICAgICAgICAgIjAuMDMzMTE4LCAwLjE3OTA0NCwgMC4zMjU5OTEsIDAuNDMxMzQ3LCAwLjYwMTcwOSwgMC43NTA0ODQsIDAuOTY0NzM3IiwgXAotICAgICAgICAgICIwLjAzMzE2MiwgMC4xNzgyODEsIDAuMzI2NzM4LCAwLjQzMjE2NSwgMC42MDE3MzIsIDAuNzUxODA0LCAwLjk2NDY3NyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEyODI1MSwgMC4yMDMzNzUsIDAuMjc3MzA3LCAwLjMzMDAyMywgMC40MTQwMjcsIDAuNDg3NTg1LCAwLjU5MjUzIiwgXAotICAgICAgICAgICIwLjEzODUwNCwgMC4yMTM2NDEsIDAuMjg3NTY4LCAwLjM0MDAwMSwgMC40MjQyODYsIDAuNDk3NjAzLCAwLjYwMjY1MSIsIFwKLSAgICAgICAgICAiMC4xNTEyODMsIDAuMjI2NDE2LCAwLjMwMDI2OCwgMC4zNTI5MjksIDAuNDM3MTM0LCAwLjUxMDMzOCwgMC42MTU0MTEiLCBcCi0gICAgICAgICAgIjAuMTYzMzg2LCAwLjIzODUyOSwgMC4zMTI0NjcsIDAuMzY1MjIsIDAuNDQ5MTkxLCAwLjUyMjY5NCwgMC42Mjc0OTEiLCBcCi0gICAgICAgICAgIjAuMTc0MTcyLCAwLjI0OTMwNiwgMC4zMjMyMywgMC4zNzU1NjYsIDAuNDU5OTcyLCAwLjUzMzI5NCwgMC42Mzg3MzQiLCBcCi0gICAgICAgICAgIjAuMTg5MTkzLCAwLjI2NDMzMSwgMC4zMzgxMTcsIDAuMzkwNjY5LCAwLjQ3NDk3NiwgMC41NDgwOTgsIDAuNjUzNDYyIiwgXAotICAgICAgICAgICIwLjIwMDkxNSwgMC4yNzYwNSwgMC4zNDk5ODgsIDAuNDAyMjU3LCAwLjQ4NjcwNywgMC41NjAxODYsIDAuNjY0OTc5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDMyNTgzLCAwLjE3ODY1MSwgMC4zMjY2NzQsIDAuNDMyMjg4LCAwLjYwMzQ4MSwgMC43NTI3OTYsIDAuOTY1Nzc4IiwgXAotICAgICAgICAgICIwLjAzMjM2MywgMC4xNzg2NDcsIDAuMzI1ODE0LCAwLjQzMTczOSwgMC42MDM0NjgsIDAuNzUyMjkxLCAwLjk2NDkwMyIsIFwKLSAgICAgICAgICAiMC4wMzI2MjUsIDAuMTc4NjEyLCAwLjMyNjYwNywgMC40MzIzNjIsIDAuNjAxNzg1LCAwLjc1MjA0MywgMC45NjQ3ODkiLCBcCi0gICAgICAgICAgIjAuMDMyMzk2LCAwLjE3ODY1LCAwLjMyNjY3NCwgMC40MzIxODQsIDAuNjAzNDgyLCAwLjc1Mjc0MywgMC45NjQzMDYiLCBcCi0gICAgICAgICAgIjAuMDMyNDAzLCAwLjE3ODY1LCAwLjMyNjY2MiwgMC40MzI3NTEsIDAuNjAzNDgzLCAwLjc1MjQzNCwgMC45NjM4NSIsIFwKLSAgICAgICAgICAiMC4wMzI1NTIsIDAuMTc4NjQ4LCAwLjMyNjU3NywgMC40MzEzNTcsIDAuNjAzNDY4LCAwLjc1MTA5OSwgMC45NjU3MDQiLCBcCi0gICAgICAgICAgIjAuMDMyNTkxLCAwLjE3ODY1MSwgMC4zMjY2NzksIDAuNDMyOCwgMC42MDM0OCwgMC43NTI3MTUsIDAuOTY0NTA3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA3NzU3LCAwLjAwNzkyLCAwLjAwNzk0NCwgMC4wMDc5NTEsIDAuMDA3OTU2LCAwLjAwNzk1OSwgMC4wMDc5NjIiLCBcCi0gICAgICAgICAgIjAuMDA3NzQzLCAwLjAwNzkwNywgMC4wMDc5MjksIDAuMDA3OTM3LCAwLjAwNzk0MSwgMC4wMDc5NDQsIDAuMDA3OTQ2IiwgXAotICAgICAgICAgICIwLjAwNzczNCwgMC4wMDc4OTksIDAuMDA3OTIxLCAwLjAwNzkyNywgMC4wMDc5MzMsIDAuMDA3OTM0LCAwLjAwNzk0IiwgXAotICAgICAgICAgICIwLjAwNzczMywgMC4wMDc4OTcsIDAuMDA3OTE4LCAwLjAwNzkyNSwgMC4wMDc5MywgMC4wMDc5MzYsIDAuMDA3OTM2IiwgXAotICAgICAgICAgICIwLjAwNzc0LCAwLjAwNzkwNSwgMC4wMDc5MjYsIDAuMDA3OTMzLCAwLjAwNzkzOSwgMC4wMDc5NDIsIDAuMDA3OTQ0IiwgXAotICAgICAgICAgICIwLjAwNzc0NSwgMC4wMDc5MTIsIDAuMDA3OTM0LCAwLjAwNzk0MSwgMC4wMDc5NDYsIDAuMDA3OTUxLCAwLjAwNzk1MyIsIFwKLSAgICAgICAgICAiMC4wMDc3NTksIDAuMDA3OTI1LCAwLjAwNzk0NywgMC4wMDc5NTQsIDAuMDA3OTU5LCAwLjAwNzk2LCAwLjAwNzk2MyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA4MDkzLCAwLjAwODI0NCwgMC4wMDgyNjQsIDAuMDA4MjY5LCAwLjAwODI3MiwgMC4wMDgyNzUsIDAuMDA4Mjc5IiwgXAotICAgICAgICAgICIwLjAwODA3NSwgMC4wMDgyMjgsIDAuMDA4MjQ4LCAwLjAwODI1NSwgMC4wMDgyNTgsIDAuMDA4MjYzLCAwLjAwODI2NCIsIFwKLSAgICAgICAgICAiMC4wMDgwNzEsIDAuMDA4MjI1LCAwLjAwODI0NSwgMC4wMDgyNTEsIDAuMDA4MjU3LCAwLjAwODI1OSwgMC4wMDgyNjEiLCBcCi0gICAgICAgICAgIjAuMDA4MDgsIDAuMDA4MjMzLCAwLjAwODI1MywgMC4wMDgyNTksIDAuMDA4MjYyLCAwLjAwODI2NywgMC4wMDgyNjciLCBcCi0gICAgICAgICAgIjAuMDA4MDk3LCAwLjAwODI1LCAwLjAwODI3LCAwLjAwODI3NiwgMC4wMDgyODEsIDAuMDA4MjgzLCAwLjAwODI4NiIsIFwKLSAgICAgICAgICAiMC4wMDgxMDUsIDAuMDA4MjU3LCAwLjAwODI3NywgMC4wMDgyODMsIDAuMDA4Mjg4LCAwLjAwODI4OSwgMC4wMDgyOTEiLCBcCi0gICAgICAgICAgIjAuMDA4MTM4LCAwLjAwODI4OCwgMC4wMDgzMDgsIDAuMDA4MzE0LCAwLjAwODMxNiwgMC4wMDgzMTksIDAuMDA4MzI2Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihRTikgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAxLjAzOTAzOwotICAgIGZ1bmN0aW9uIDogIlFCSU5UIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBub25fdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJpc2luZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE1MzQxMiwgMC4yMjU4NTEsIDAuMjk4MDM4LCAwLjM0OTYyOCwgMC40MzIxMTksIDAuNTA0MzEsIDAuNjA3NDE3IiwgXAotICAgICAgICAgICIwLjE2MzY3OCwgMC4yMzYxMTIsIDAuMzA4MzA0LCAwLjM1OTg3MywgMC40NDIzNzQsIDAuNTE0NTQ2LCAwLjYxNzY3NSIsIFwKLSAgICAgICAgICAiMC4xNzY1LCAwLjI0ODg4NywgMC4zMjEwNTYsIDAuMzcyNjU4LCAwLjQ1NTE3NCwgMC41MjczMjEsIDAuNjMwNDQ3IiwgXAotICAgICAgICAgICIwLjE4ODU1OCwgMC4yNjEwMDEsIDAuMzMzMTg3LCAwLjM4NDc4OCwgMC40NjcyNzEsIDAuNTM5NDQyLCAwLjY0MjU3OCIsIFwKLSAgICAgICAgICAiMC4xOTkzMywgMC4yNzE3NzgsIDAuMzQzOTY0LCAwLjM5NTQ3MiwgMC40NzgwNTIsIDAuNTUwMjE5LCAwLjY1MzQ5OCIsIFwKLSAgICAgICAgICAiMC4yMTQzNjUsIDAuMjg2OCwgMC4zNTg5NjEsIDAuNDEwNTYxLCAwLjQ5MzA2MiwgMC41NjUxMDMsIDAuNjY4MzU2IiwgXAotICAgICAgICAgICIwLjIyNjEwNCwgMC4yOTg1MjUsIDAuMzcwNzEyLCAwLjQyMjIwMiwgMC41MDQ3OTUsIDAuNTc2OTU4LCAwLjY4MDExNCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzMjI1LCAwLjE3NzU2MywgMC4zMjY1MzEsIDAuNDMyMDUyLCAwLjYwMzQ5MywgMC43NTI2NDUsIDAuOTY1NTkiLCBcCi0gICAgICAgICAgIjAuMDMyMjcyLCAwLjE3NzU2MiwgMC4zMjU3OTIsIDAuNDMxNjEyLCAwLjYwMzQ4LCAwLjc1MjE0NiwgMC45NjUxMSIsIFwKLSAgICAgICAgICAiMC4wMzIzMDEsIDAuMTc3NTI3LCAwLjMyNjQ5NSwgMC40MzIyNDQsIDAuNjAyMTQ5LCAwLjc1MjA3OCwgMC45NjUwOTQiLCBcCi0gICAgICAgICAgIjAuMDMyMjcsIDAuMTc3NTY0LCAwLjMyNjUzLCAwLjQzMTk4NCwgMC42MDM0OTUsIDAuNzUyNjAzLCAwLjk2NDE3NiIsIFwKLSAgICAgICAgICAiMC4wMzIyNTcsIDAuMTc3NTYxLCAwLjMyNjUyNCwgMC40MzI3MjgsIDAuNjAzNDk2LCAwLjc1MjIyNCwgMC45NjM2NzQiLCBcCi0gICAgICAgICAgIjAuMDMyMjUzLCAwLjE3NzU2MywgMC4zMjY0NzgsIDAuNDMxNjU3LCAwLjYwMzQ4MSwgMC43NTEyNTksIDAuOTY1NTQ1IiwgXAotICAgICAgICAgICIwLjAzMjI3NCwgMC4xNzc1NjQsIDAuMzI2NTM0LCAwLjQzMjY5MSwgMC42MDM0OTMsIDAuNzUyNTgxLCAwLjk2NDM2MyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE0NDkzMiwgMC4yMTg5MTMsIDAuMjkyNTEzLCAwLjM0NTA4OSwgMC40MjkyNjUsIDAuNTAyODQxLCAwLjYwNzk4NyIsIFwKLSAgICAgICAgICAiMC4xNTUxOTgsIDAuMjI5MTc1LCAwLjMwMjc3MSwgMC4zNTUzNTYsIDAuNDM5NTE4LCAwLjUxMzEwOCwgMC42MTgyNiIsIFwKLSAgICAgICAgICAiMC4xNjc4OTQsIDAuMjQxODI3LCAwLjMxNTQ1MywgMC4zNjgwNDUsIDAuNDUyMTkyLCAwLjUyNTc4OSwgMC42MzA5MzQiLCBcCi0gICAgICAgICAgIjAuMTc5ODgyLCAwLjI1MzgyMywgMC4zMjc0NDYsIDAuMzgwMDA3LCAwLjQ2NDE4NywgMC41Mzc2MzUsIDAuNjQyOTYzIiwgXAotICAgICAgICAgICIwLjE5MDUzNywgMC4yNjQ1MTgsIDAuMzM4MTQ0LCAwLjM5MDcxMywgMC40NzQ4NzMsIDAuNTQ4NDk4LCAwLjY1MzQ2MiIsIFwKLSAgICAgICAgICAiMC4yMDU1MjksIDAuMjc5NDYyLCAwLjM1MzA4NywgMC40MDU3MDEsIDAuNDg5ODI2LCAwLjU2MzQxMiwgMC42Njg1NzciLCBcCi0gICAgICAgICAgIjAuMjE2OTQyLCAwLjI5MDg3NCwgMC4zNjQ0ODIsIDAuNDE3MDUxLCAwLjUwMTIzLCAwLjU3NDgwMiwgMC42Nzk5NDkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzE5NjQsIDAuMTc3NTQsIDAuMzI2MzA3LCAwLjQzMjY4NCwgMC42MDI3NywgMC43NTMwMTIsIDAuOTY2MTU2IiwgXAotICAgICAgICAgICIwLjAzMTk3NCwgMC4xNzc1NDMsIDAuMzI2NTI4LCAwLjQzMjcyNSwgMC42MDM4MTYsIDAuNzUzMDA5LCAwLjk2NjE3NCIsIFwKLSAgICAgICAgICAiMC4wMzE5NDEsIDAuMTc3NTQyLCAwLjMyNjExNCwgMC40MzI0OTcsIDAuNjAyNzczLCAwLjc1MjA4NSwgMC45NjYyNDQiLCBcCi0gICAgICAgICAgIjAuMDMxOTU0LCAwLjE3NzU0NSwgMC4zMjYxMDksIDAuNDMyNzIxLCAwLjYwMjc2OSwgMC43NTIxMTIsIDAuOTY2MzQyIiwgXAotICAgICAgICAgICIwLjAzMTk2LCAwLjE3NzUzNywgMC4zMjYxMDcsIDAuNDMzMTQ0LCAwLjYwMjc2MiwgMC43NTA1NTYsIDAuOTY1MDA5IiwgXAotICAgICAgICAgICIwLjAzMTk2LCAwLjE3NzU0MywgMC4zMjYxMTEsIDAuNDMyMzU3LCAwLjYwMjc4NiwgMC43NTIyODksIDAuOTY2MjUyIiwgXAotICAgICAgICAgICIwLjAzMTk4MSwgMC4xNzc1NDksIDAuMzI2NTc0LCAwLjQzMjcwMiwgMC42MDI3OTksIDAuNzUyOTgzLCAwLjk2NjExNiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwODA5MywgMC4wMDgyNDQsIDAuMDA4MjY0LCAwLjAwODI2OSwgMC4wMDgyNzIsIDAuMDA4Mjc1LCAwLjAwODI3OSIsIFwKLSAgICAgICAgICAiMC4wMDgwNzUsIDAuMDA4MjI4LCAwLjAwODI0OCwgMC4wMDgyNTUsIDAuMDA4MjU4LCAwLjAwODI2MywgMC4wMDgyNjQiLCBcCi0gICAgICAgICAgIjAuMDA4MDcxLCAwLjAwODIyNSwgMC4wMDgyNDUsIDAuMDA4MjUxLCAwLjAwODI1NywgMC4wMDgyNTksIDAuMDA4MjYxIiwgXAotICAgICAgICAgICIwLjAwODA4LCAwLjAwODIzMywgMC4wMDgyNTMsIDAuMDA4MjU5LCAwLjAwODI2MiwgMC4wMDgyNjcsIDAuMDA4MjY3IiwgXAotICAgICAgICAgICIwLjAwODA5NywgMC4wMDgyNSwgMC4wMDgyNywgMC4wMDgyNzYsIDAuMDA4MjgxLCAwLjAwODI4MywgMC4wMDgyODYiLCBcCi0gICAgICAgICAgIjAuMDA4MTA1LCAwLjAwODI1NywgMC4wMDgyNzcsIDAuMDA4MjgzLCAwLjAwODI4OCwgMC4wMDgyODksIDAuMDA4MjkxIiwgXAotICAgICAgICAgICIwLjAwODEzOCwgMC4wMDgyODgsIDAuMDA4MzA4LCAwLjAwODMxNCwgMC4wMDgzMTYsIDAuMDA4MzE5LCAwLjAwODMyNiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA3NzU3LCAwLjAwNzkyLCAwLjAwNzk0NCwgMC4wMDc5NTEsIDAuMDA3OTU2LCAwLjAwNzk1OSwgMC4wMDc5NjIiLCBcCi0gICAgICAgICAgIjAuMDA3NzQzLCAwLjAwNzkwNywgMC4wMDc5MjksIDAuMDA3OTM3LCAwLjAwNzk0MSwgMC4wMDc5NDQsIDAuMDA3OTQ2IiwgXAotICAgICAgICAgICIwLjAwNzczNCwgMC4wMDc4OTksIDAuMDA3OTIxLCAwLjAwNzkyNywgMC4wMDc5MzMsIDAuMDA3OTM0LCAwLjAwNzk0IiwgXAotICAgICAgICAgICIwLjAwNzczMywgMC4wMDc4OTcsIDAuMDA3OTE4LCAwLjAwNzkyNSwgMC4wMDc5MywgMC4wMDc5MzYsIDAuMDA3OTM2IiwgXAotICAgICAgICAgICIwLjAwNzc0LCAwLjAwNzkwNSwgMC4wMDc5MjYsIDAuMDA3OTMzLCAwLjAwNzkzOSwgMC4wMDc5NDIsIDAuMDA3OTQ0IiwgXAotICAgICAgICAgICIwLjAwNzc0NSwgMC4wMDc5MTIsIDAuMDA3OTM0LCAwLjAwNzk0MSwgMC4wMDc5NDYsIDAuMDA3OTUxLCAwLjAwNzk1MyIsIFwKLSAgICAgICAgICAiMC4wMDc3NTksIDAuMDA3OTI1LCAwLjAwNzk0NywgMC4wMDc5NTQsIDAuMDA3OTU5LCAwLjAwNzk2LCAwLjAwNzk2MyIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogRExZMVgxICoKLSAqIC0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoRExZMVgxKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMTIyODg0OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2NDEzNjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2NDEzNjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2NDEzMzE7Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4yNTY5MDY7Ci0gICAgZnVuY3Rpb24gOiAiQSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTEwMDU1LCAwLjEzNDYyMiwgMC4yNzM2OTgsIDAuMzk2NDEsIDAuNTYwMDAzLCAwLjg4NzA0NiwgMS4wOTE1NSIsIFwKLSAgICAgICAgICAiMC4xMjAwNzQsIDAuMTQ0NjIzLCAwLjI4MzcxNSwgMC40MDY0NDMsIDAuNTY5OTU5LCAwLjg5NzE0NywgMS4xMDE1MiIsIFwKLSAgICAgICAgICAiMC4xMzAxOTgsIDAuMTU0NzUyLCAwLjI5MzgzLCAwLjQxNjU1MywgMC41ODAxNDYsIDAuOTA3MjI1LCAxLjExMTcxIiwgXAotICAgICAgICAgICIwLjEzODEzLCAwLjE2MjY4NiwgMC4zMDE3NjYsIDAuNDI0NDMsIDAuNTg4MDg1LCAwLjkxNTE2NSwgMS4xMTk2NSIsIFwKLSAgICAgICAgICAiMC4xNDQ3NzcsIDAuMTY5MzM2LCAwLjMwODQxNSwgMC40MzEwNzcsIDAuNTk0NzIyLCAwLjkyMTc5NywgMS4xMjYyOSIsIFwKLSAgICAgICAgICAiMC4xNTM5OSwgMC4xNzg1NCwgMC4zMTc2MTMsIDAuNDQwMzExLCAwLjYwMzg3NiwgMC45MzEwMzksIDEuMTM1NDMiLCBcCi0gICAgICAgICAgIjAuMTYxMTUyLCAwLjE4NTU3NiwgMC4zMjQ2NTksIDAuNDQ3MzIxLCAwLjYxMTAyMiwgMC45MzgxNzYsIDEuMTQyNjQiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDkxMTQ0LCAwLjE0MTQzOCwgMC40MjY2OCwgMC42ODA5NiwgMS4wMTgyNywgMS42OTA0MiwgMi4xMTEzOSIsIFwKLSAgICAgICAgICAiMC4wOTExNzYsIDAuMTQxMDk2LCAwLjQyNzk2NCwgMC42ODA5ODEsIDEuMDE4MDIsIDEuNjg5OCwgMi4xMTM5OCIsIFwKLSAgICAgICAgICAiMC4wOTEwMjMsIDAuMTQxMDg2LCAwLjQyNzM0NiwgMC42ODA5NTksIDEuMDE4MjUsIDEuNjg5MjIsIDIuMTEwNDMiLCBcCi0gICAgICAgICAgIjAuMDkxMDE3LCAwLjE0MTQzMywgMC40MjczNDEsIDAuNjc5OTU2LCAxLjAxNjE1LCAxLjY4OTM1LCAyLjExMDQyIiwgXAotICAgICAgICAgICIwLjA5MTEwNSwgMC4xNDE0MjgsIDAuNDI3NDAzLCAwLjY3OTk2MiwgMS4wMTgyMiwgMS42OTI0NSwgMi4xMTAyMSIsIFwKLSAgICAgICAgICAiMC4wOTEwODUsIDAuMTQxMzk1LCAwLjQyNzg4MiwgMC42ODA3NDYsIDEuMDE3OTEsIDEuNjg5ODMsIDIuMTEzNzMiLCBcCi0gICAgICAgICAgIjAuMDkxMDE5LCAwLjE0MTE2MywgMC40MjczNjcsIDAuNjgwNDk1LCAxLjAxNjgyLCAxLjY5MDM1LCAyLjExMTI3Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExMDQ4MywgMC4xMzUyNjUsIDAuMjc1NDk5LCAwLjM5OTE0NSwgMC41NjQwMjksIDAuODkzOTE3LCAxLjA5OTkxIiwgXAotICAgICAgICAgICIwLjEyMDAyOSwgMC4xNDQ4MDIsIDAuMjg1MDMyLCAwLjQwODcwMywgMC41NzM1NzYsIDAuOTAzNDcsIDEuMTA5NTYiLCBcCi0gICAgICAgICAgIjAuMTI5NDc1LCAwLjE1NDI0NywgMC4yOTQ0ODgsIDAuNDE4MTg3LCAwLjU4MzAyMywgMC45MTI5MTMsIDEuMTE4ODciLCBcCi0gICAgICAgICAgIjAuMTM2NTUxLCAwLjE2MTMyNCwgMC4zMDE1NzYsIDAuNDI1MjMxLCAwLjU5MDEzNywgMC45MTk5MjYsIDEuMTI2MDYiLCBcCi0gICAgICAgICAgIjAuMTQyNjUxLCAwLjE2NzM5NSwgMC4zMDc2MzksIDAuNDMxMjkyLCAwLjU5NjEwOSwgMC45MjU5NzUsIDEuMTMyMTEiLCBcCi0gICAgICAgICAgIjAuMTUwNzM4LCAwLjE3NTUwMiwgMC4zMTU3MTIsIDAuNDM5NDA4LCAwLjYwNDMzMiwgMC45MzQwNzQsIDEuMTQwMTUiLCBcCi0gICAgICAgICAgIjAuMTU2NzI5LCAwLjE4MTUxMSwgMC4zMjE2MDgsIDAuNDQ1MjYzLCAwLjYxMDE0NywgMC45NDAxNTgsIDEuMTQ2MjMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg5NzUzLCAwLjEzOTU2OCwgMC40MjA5MzMsIDAuNjcwMjQyLCAxLjAwMzMyLCAxLjY3MDA3LCAyLjA4NTI0IiwgXAotICAgICAgICAgICIwLjA4OTg2LCAwLjEzOTQ4NCwgMC40MjIxMjcsIDAuNjcxNjIsIDEuMDA0MTksIDEuNjcwMDYsIDIuMDg1OTUiLCBcCi0gICAgICAgICAgIjAuMDg5NzUyLCAwLjEzOTUxMiwgMC40MjA5NDQsIDAuNjY5NzQyLCAxLjAwMjQ3LCAxLjY3MDAxLCAyLjA4NTA5IiwgXAotICAgICAgICAgICIwLjA4OTgzNCwgMC4xMzk0NjEsIDAuNDIwODU4LCAwLjY3MTYzOCwgMS4wMDQ0MiwgMS42NjU2MSwgMi4wNzkyOCIsIFwKLSAgICAgICAgICAiMC4wODk3NzUsIDAuMTM5MzI0LCAwLjQyMDkwMSwgMC42NzE2MjMsIDEuMDA0MzUsIDEuNjcwMTQsIDIuMDgwOTMiLCBcCi0gICAgICAgICAgIjAuMDg5ODQ1LCAwLjEzOTI5OSwgMC40MjIwMzQsIDAuNjcxNjcyLCAxLjAwNDQzLCAxLjY2NDksIDIuMDg1MjYiLCBcCi0gICAgICAgICAgIjAuMDg5NjQzLCAwLjEzOTE2OCwgMC40MjE0NTksIDAuNjcxNTYyLCAxLjAwMzA5LCAxLjY2OTk4LCAyLjA4MTYxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzMjUyLCAwLjAwMzI1NiwgMC4wMDMyNjEsIDAuMDAzMjYxLCAwLjAwMzI1OSwgMC4wMDMyNjUsIDAuMDAzMjYiLCBcCi0gICAgICAgICAgIjAuMDAzMjIxLCAwLjAwMzIyNSwgMC4wMDMyMjksIDAuMDAzMjMsIDAuMDAzMjMsIDAuMDAzMjI4LCAwLjAwMzIzMSIsIFwKLSAgICAgICAgICAiMC4wMDMyMjcsIDAuMDAzMjMxLCAwLjAwMzIzNiwgMC4wMDMyMzYsIDAuMDAzMjQsIDAuMDAzMjM1LCAwLjAwMzIzNCIsIFwKLSAgICAgICAgICAiMC4wMDMyMjksIDAuMDAzMjMzLCAwLjAwMzIzOCwgMC4wMDMyMzgsIDAuMDAzMjM4LCAwLjAwMzIzOSwgMC4wMDMyMzkiLCBcCi0gICAgICAgICAgIjAuMDAzMjQ3LCAwLjAwMzI1MSwgMC4wMDMyNTYsIDAuMDAzMjU4LCAwLjAwMzI1NywgMC4wMDMyNTgsIDAuMDAzMjU4IiwgXAotICAgICAgICAgICIwLjAwMzI3MiwgMC4wMDMyNzUsIDAuMDAzMjc4LCAwLjAwMzI3OSwgMC4wMDMyNzksIDAuMDAzMjgsIDAuMDAzMjgiLCBcCi0gICAgICAgICAgIjAuMDAzMjk3LCAwLjAwMzI5NiwgMC4wMDMzLCAwLjAwMzMwMSwgMC4wMDMzMDQsIDAuMDAzMzAzLCAwLjAwMzMwNCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzg5OCwgMC4wMDM5MDQsIDAuMDAzOTExLCAwLjAwMzkxMiwgMC4wMDM5MTMsIDAuMDAzOTE0LCAwLjAwMzkxNCIsIFwKLSAgICAgICAgICAiMC4wMDM4NzMsIDAuMDAzODc5LCAwLjAwMzg4NiwgMC4wMDM4ODgsIDAuMDAzODg4LCAwLjAwMzg4OSwgMC4wMDM4ODkiLCBcCi0gICAgICAgICAgIjAuMDAzODY3LCAwLjAwMzg3MywgMC4wMDM4OCwgMC4wMDM4ODEsIDAuMDAzODgyLCAwLjAwMzg4MywgMC4wMDM4ODMiLCBcCi0gICAgICAgICAgIjAuMDAzODczLCAwLjAwMzg3OSwgMC4wMDM4ODYsIDAuMDAzODg3LCAwLjAwMzg4OCwgMC4wMDM4ODksIDAuMDAzODg5IiwgXAotICAgICAgICAgICIwLjAwMzg4OSwgMC4wMDM4OSwgMC4wMDM4OTgsIDAuMDAzODk5LCAwLjAwMzg5OCwgMC4wMDM4OTksIDAuMDAzOSIsIFwKLSAgICAgICAgICAiMC4wMDM5MDksIDAuMDAzOTE1LCAwLjAwMzkyMiwgMC4wMDM5MjQsIDAuMDAzOTI1LCAwLjAwMzkyMywgMC4wMDM5MjUiLCBcCi0gICAgICAgICAgIjAuMDAzOTM0LCAwLjAwMzkzOSwgMC4wMDM5NDMsIDAuMDAzOTQzLCAwLjAwMzk0NSwgMC4wMDM5NDksIDAuMDAzOTUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IERMWTRYMSAqCi0gKiAtLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKERMWTRYMSkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjM1ODY1OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2ODY0OTg7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjg2MjMzOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDY4NjQ5ODsKLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjI2MjU2MTsKLSAgICBmdW5jdGlvbiA6ICJBIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMjYwNzIsIDAuMzUwMjg1LCAwLjQ4NzQwNCwgMC42MDgzNTcsIDAuNzY5NTg5LCAxLjA5MjE5LCAxLjI5MzU1IiwgXAotICAgICAgICAgICIwLjMzNjAyMSwgMC4zNjAyMzcsIDAuNDk3MzQzLCAwLjYxODMxOCwgMC43Nzk0OSwgMS4xMDIwNCwgMS4zMDM0NiIsIFwKLSAgICAgICAgICAiMC4zNDY3MDgsIDAuMzcwOTI4LCAwLjUwODA0NCwgMC42MjkwMDMsIDAuNzkwMjYxLCAxLjExMjY0LCAxLjMxNDIyIiwgXAotICAgICAgICAgICIwLjM1NTA0NCwgMC4zNzkyNjYsIDAuNTE2Mzc0LCAwLjYzNzM0MSwgMC43OTg2MTMsIDEuMTIxMDYsIDEuMzIyNTIiLCBcCi0gICAgICAgICAgIjAuMzYyMjEyLCAwLjM4NjQzNiwgMC41MjM1NDYsIDAuNjQ0NTExLCAwLjgwNTc1MywgMS4xMjgyMiwgMS4zMjk3NCIsIFwKLSAgICAgICAgICAiMC4zNzE5MzEsIDAuMzk2MTUyLCAwLjUzMzI2NywgMC42NTQyMjcsIDAuODE1NDg0LCAxLjEzNzg2LCAxLjMzOTQ1IiwgXAotICAgICAgICAgICIwLjM3OTM4OCwgMC40MDM2MDksIDAuNTQwNzI4LCAwLjY2MTY4OCwgMC44MjI5MzcsIDEuMTQ1MjgsIDEuMzQ2ODciKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDkwNTM3LCAwLjEzOTY1OCwgMC40MjIyOTQsIDAuNjcxNTQ0LCAxLjAwMjA1LCAxLjY2NTM4LCAyLjA4MTE1IiwgXAotICAgICAgICAgICIwLjA5MDUzNSwgMC4xNDAwMSwgMC40MjIyNjIsIDAuNjcxNTY4LCAxLjAwMzcsIDEuNjY1NzUsIDIuMDgzNDUiLCBcCi0gICAgICAgICAgIjAuMDkwNTIzLCAwLjEzOTY1OSwgMC40MjA5ODIsIDAuNjcxNTMyLCAxLjAwMzkxLCAxLjY2NjI2LCAyLjA4MTAxIiwgXAotICAgICAgICAgICIwLjA5MDM5OSwgMC4xMzk5NDIsIDAuNDIyMDY5LCAwLjY3MTUzNiwgMS4wMDM5NCwgMS42NjU2OCwgMi4wODM2NiIsIFwKLSAgICAgICAgICAiMC4wOTA1MTcsIDAuMTM5OTYzLCAwLjQyMTYzLCAwLjY3MTU2MiwgMS4wMDM4OCwgMS42Njg0NSwgMi4wNzk1NyIsIFwKLSAgICAgICAgICAiMC4wOTA0OTMsIDAuMTM5NjU5LCAwLjQyMDk4MiwgMC42NzE1MzMsIDEuMDAzOTEsIDEuNjY2MTksIDIuMDgxMDEiLCBcCi0gICAgICAgICAgIjAuMDkwNDkzLCAwLjEzOTY1MSwgMC40MjEwMDIsIDAuNjcxNTQsIDEuMDAzODgsIDEuNjY4MjgsIDIuMDgxMDYiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzI2MzYxLCAwLjM1MTEzNSwgMC40OTEzNDcsIDAuNjE0OTkzLCAwLjc3OTg4MiwgMS4xMDk2NCwgMS4zMTU1NyIsIFwKLSAgICAgICAgICAiMC4zMzYwNDgsIDAuMzYwODI0LCAwLjUwMTAzLCAwLjYyNDY4NCwgMC43ODk1NSwgMS4xMTkyMywgMS4zMjUzMyIsIFwKLSAgICAgICAgICAiMC4zNDYwNTgsIDAuMzcwODM0LCAwLjUxMTA0LCAwLjYzNDY5NywgMC43OTk1NTksIDEuMTI5MzUsIDEuMzM1MzYiLCBcCi0gICAgICAgICAgIjAuMzUzNTc2LCAwLjM3ODM1MywgMC41MTg1NTMsIDAuNjQyMjE1LCAwLjgwNzA1MywgMS4xMzY4NywgMS4zNDI5IiwgXAotICAgICAgICAgICIwLjM2MDExMywgMC4zODQ4MjEsIDAuNTI1MTQzLCAwLjY0ODY4NywgMC44MTM1NDEsIDEuMTQzMzQsIDEuMzQ5MzUiLCBcCi0gICAgICAgICAgIjAuMzY4NzEzLCAwLjM5MzQ5LCAwLjUzMzY1MywgMC42NTcyNjgsIDAuODIyMjM4LCAxLjE1MTgsIDEuMzU3OTQiLCBcCi0gICAgICAgICAgIjAuMzc1MDgxLCAwLjM5OTg1NCwgMC41NDAwMTEsIDAuNjYzNzQyLCAwLjgyODU5NCwgMS4xNTgxNiwgMS4zNjQ0OCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTA0MjgsIDAuMTM5OTY1LCAwLjQyMjYxMSwgMC42NzIwNjMsIDEuMDA0NzQsIDEuNjcwMjMsIDIuMDg1MzciLCBcCi0gICAgICAgICAgIjAuMDkwNDg2LCAwLjE0MDA5NiwgMC40MjIzNzUsIDAuNjcyMDIyLCAxLjAwNDcyLCAxLjY2NzAzLCAyLjA3OTc4IiwgXAotICAgICAgICAgICIwLjA5MDQ4MiwgMC4xNDAwOTMsIDAuNDIyMTgzLCAwLjY3MjA0MSwgMS4wMDI4OCwgMS42NzAxNiwgMi4wODU4MiIsIFwKLSAgICAgICAgICAiMC4wOTA0NzgsIDAuMTQwMDkzLCAwLjQyMjUyNiwgMC42NzIwMjUsIDEuMDAzOTgsIDEuNjcwMTQsIDIuMDgxNDMiLCBcCi0gICAgICAgICAgIjAuMDkwNDg1LCAwLjE0MDA5NywgMC40MjE1NSwgMC42NzIwMzYsIDEuMDA0NjQsIDEuNjY1MTMsIDIuMDgxMjYiLCBcCi0gICAgICAgICAgIjAuMDkwNDgxLCAwLjE0MDA5MSwgMC40MjEyMDQsIDAuNjcyMDQxLCAxLjAwNDcsIDEuNjY5MDQsIDIuMDgxNDkiLCBcCi0gICAgICAgICAgIjAuMDkwNDMyLCAwLjE0MDA4NCwgMC40MjE2ODgsIDAuNjcyMDgsIDEuMDA0NzUsIDEuNjY2NTQsIDIuMDgxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTE2NjMsIDAuMDExNjY5LCAwLjAxMTY3NywgMC4wMTE2NzksIDAuMDExNjgsIDAuMDExNjgxLCAwLjAxMTY4MSIsIFwKLSAgICAgICAgICAiMC4wMTE2MzUsIDAuMDExNjQxLCAwLjAxMTY0OCwgMC4wMTE2NSwgMC4wMTE2NSwgMC4wMTE2NTIsIDAuMDExNjUyIiwgXAotICAgICAgICAgICIwLjAxMTYzNywgMC4wMTE2NDMsIDAuMDExNjUyLCAwLjAxMTY1NCwgMC4wMTE2NTYsIDAuMDExNjU1LCAwLjAxMTY1NCIsIFwKLSAgICAgICAgICAiMC4wMTE2MzksIDAuMDExNjQ1LCAwLjAxMTY1MywgMC4wMTE2NTUsIDAuMDExNjU1LCAwLjAxMTY1NiwgMC4wMTE2NTYiLCBcCi0gICAgICAgICAgIjAuMDExNjUzLCAwLjAxMTY1OCwgMC4wMTE2NjcsIDAuMDExNjY5LCAwLjAxMTY2OSwgMC4wMTE2NjksIDAuMDExNjcyIiwgXAotICAgICAgICAgICIwLjAxMTY4MSwgMC4wMTE2ODcsIDAuMDExNjk1LCAwLjAxMTY5NiwgMC4wMTE2OTcsIDAuMDExNjk4LCAwLjAxMTY5NiIsIFwKLSAgICAgICAgICAiMC4wMTE3MDMsIDAuMDExNzA4LCAwLjAxMTcxNywgMC4wMTE3MTksIDAuMDExNzE5LCAwLjAxMTcxNywgMC4wMTE3MTkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTE3MywgMC4wMTE3MzgsIDAuMDExNzQ5LCAwLjAxMTc1MSwgMC4wMTE3NTIsIDAuMDExNzUzLCAwLjAxMTc1MyIsIFwKLSAgICAgICAgICAiMC4wMTE3MDcsIDAuMDExNzE1LCAwLjAxMTcyNSwgMC4wMTE3MjcsIDAuMDExNzI4LCAwLjAxMTcyOSwgMC4wMTE3MjkiLCBcCi0gICAgICAgICAgIjAuMDExNzAyLCAwLjAxMTcwOSwgMC4wMTE3MiwgMC4wMTE3MjIsIDAuMDExNzIzLCAwLjAxMTcyNCwgMC4wMTE3MjUiLCBcCi0gICAgICAgICAgIjAuMDExNzA1LCAwLjAxMTcxMywgMC4wMTE3MjMsIDAuMDExNzI1LCAwLjAxMTcyNywgMC4wMTE3MjgsIDAuMDExNzI3IiwgXAotICAgICAgICAgICIwLjAxMTcxNSwgMC4wMTE3MjIsIDAuMDExNzMzLCAwLjAxMTczNCwgMC4wMTE3MzUsIDAuMDExNzM4LCAwLjAxMTczNiIsIFwKLSAgICAgICAgICAiMC4wMTE3NDEsIDAuMDExNzQ4LCAwLjAxMTc1NiwgMC4wMTE3NTksIDAuMDExNzYyLCAwLjAxMTc2LCAwLjAxMTc2MSIsIFwKLSAgICAgICAgICAiMC4wMTE3NjMsIDAuMDExNzcxLCAwLjAxMTc3OCwgMC4wMTE3ODMsIDAuMDExNzg0LCAwLjAxMTc4MiwgMC4wMTE3ODUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogRURGRkhRWDEgKgotICogLS0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKEVERkZIUVgxKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuNDE2NTU0OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIGZmIChOMzAsUUJJTlQpIHsKLSAgICBuZXh0X3N0YXRlIDogIigoRSBEKSArICghRSAoISghTjMwKSkpKSI7Ci0gICAgY2xvY2tlZF9vbiA6ICJDSyI7Ci0gIH0KLSAgcGluKENLKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2NzYxNzY7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjc2MTM4OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDY3NjE3NjsKLSAgICBjbG9jayA6IHRydWU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzNDg3LCAwLjAwMzQ2MywgMC4wMDM0NTEsIDAuMDAzNDU0LCAwLjAwMzQ2NSwgMC4wMDM0ODksIDAuMDAzNTA4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA2OTEyLCAwLjAwNjg5MSwgMC4wMDY4OTQsIDAuMDA2ODk5LCAwLjAwNjkzMSwgMC4wMDY5ODYsIDAuMDA3MDI4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRCZFIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9FX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4xNDcwOTMsIDAuMTU3MzQzLCAwLjE2OTk4MSwgMC4xODE3MDcsIDAuMTkyMDgsIDAuMjA2MzE4LCAwLjIxNzI0MyIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDg4OTEyLCAwLjA5ODg5OSwgMC4xMTEwODIsIDAuMTIyMzE2LCAwLjEzMjAxNSwgMC4xNDUwNzMsIDAuMTU1MDQ0Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihEKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA5MTA3NzI7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwOTA4MjczOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDkxMDc3MjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDMyODIsIDAuMDAzMjUxLCAwLjAwMzIzNCwgMC4wMDMyMjUsIDAuMDAzMjIxLCAwLjAwMzIzMSwgMC4wMDMyMzciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDY3LCAwLjAwNjY4MywgMC4wMDY2NzMsIDAuMDA2NjY5LCAwLjAwNjY2NywgMC4wMDY2NzEsIDAuMDA2Njc0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIkUiOwotICAgICAgc2RmX2NvbmQgOiAiRSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wNSwgLTAuMDM4NzUsIC0wLjAzMjUsIC0wLjAyNjI1LCAtMC4wMiwgLTAuMDE2MjUsIC0wLjAwNzUiLCBcCi0gICAgICAgICAgIi0wLjA1NSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDIxMjUsIC0wLjAxODc1IiwgXAotICAgICAgICAgICItMC4wNjc1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wMzM3NSwgLTAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjA4LCAtMC4wNjg3NSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA1NjI1LCAtMC4wNDYyNSwgLTAuMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDg2MjUsIC0wLjA4MTI1LCAtMC4wNzUsIC0wLjA2ODc1LCAtMC4wNjI1LCAtMC4wNTg3NSwgLTAuMDUiLCBcCi0gICAgICAgICAgIi0wLjEwMjUsIC0wLjA5NzUsIC0wLjA5MTI1LCAtMC4wODUsIC0wLjA3ODc1LCAtMC4wNjg3NSwgLTAuMDY2MjUiLCBcCi0gICAgICAgICAgIi0wLjExNzUsIC0wLjEwNjI1LCAtMC4xLCAtMC4wOTM3NSwgLTAuMDg3NSwgLTAuMDgzNzUsIC0wLjA3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAxMjUsIC0wLjAwMTI1LCAwLjAxMTI1LCAwLjAxNzUsIDAuMDMsIDAuMDQsIDAuMDQ4NzUiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTI1LCAwLCAwLjAxMjUsIDAuMDE4NzUsIDAuMDI4NzUsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAxODc1LCAtMC4wMDYyNSwgMCwgMC4wMDYyNSwgMC4wMjI1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDMxMjUsIC0wLjAxODc1LCAtMC4wMDYyNSwgMCwgMC4wMSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjAzNzUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLjAwMzc1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjA1ODc1LCAtMC4wNDc1LCAtMC4wNDEyNSwgLTAuMDI4NzUsIC0wLjAyMjUsIC0wLjAwNjI1LCAwLjAwMjUiLCBcCi0gICAgICAgICAgIi0wLjA2NzUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAxNSwgLTAuMDA2MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIkUiOwotICAgICAgc2RmX2NvbmQgOiAiRSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzUsIDAuMDYzNzUsIDAuMDU3NSwgMC4wNTEyNSwgMC4wNDUsIDAuMDM1LCAwLjAzMjUiLCBcCi0gICAgICAgICAgIjAuMDg2MjUsIDAuMDc1LCAwLjA2ODc1LCAwLjA1NjI1LCAwLjA1NjI1LCAwLjA0NjI1LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIjAuMDk4NzUsIDAuMDg3NSwgMC4wNzUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNTg3NSwgMC4wNSIsIFwKLSAgICAgICAgICAiMC4xMDUsIDAuMDkzNzUsIDAuMDg3NSwgMC4wODEyNSwgMC4wNzUsIDAuMDY1LCAwLjA2MjUiLCBcCi0gICAgICAgICAgIjAuMTE3NSwgMC4xMDYyNSwgMC4xLCAwLjA5Mzc1LCAwLjA4NzUsIDAuMDc3NSwgMC4wNjg3NSIsIFwKLSAgICAgICAgICAiMC4xMzM3NSwgMC4xMjI1LCAwLjExLCAwLjEwMzc1LCAwLjEwMzc1LCAwLjA5Mzc1LCAwLjA4NSIsIFwKLSAgICAgICAgICAiMC4xNDI1LCAwLjEzNzUsIDAuMTI1LCAwLjExODc1LCAwLjExMjUsIDAuMTAyNSwgMC4xIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU2MjUsIDAuMDQ1LCAwLjAzMjUsIDAuMDIsIDAuMDA3NSwgLTAuMDAyNSwgLTAuMDE3NSIsIFwKLSAgICAgICAgICAiMC4wNjEyNSwgMC4wNSwgMC4wMzc1LCAwLjAyNSwgMC4wMTg3NSwgMC4wMDI1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiMC4wNzM3NSwgMC4wNjI1LCAwLjA1LCAwLjAzNzUsIDAuMDI1LCAwLjAxNSwgMCIsIFwKLSAgICAgICAgICAiMC4wOCwgMC4wNjg3NSwgMC4wNTYyNSwgMC4wNSwgMC4wMzc1LCAwLjAyMTI1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMDkyNSwgMC4wODEyNSwgMC4wNjg3NSwgMC4wNTYyNSwgMC4wNDM3NSwgMC4wMzM3NSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4xMDI1LCAwLjA5MTI1LCAwLjA3ODc1LCAwLjA3MjUsIDAuMDYsIDAuMDQzNzUsIDAuMDM1IiwgXAotICAgICAgICAgICIwLjExNzUsIDAuMTA2MjUsIDAuMDkzNzUsIDAuMDgxMjUsIDAuMDY4NzUsIDAuMDU4NzUsIDAuMDQzNzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEUpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTc5MzI1OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTc5MzA3OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTc5MzI1OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNjEzOSwgMC4wMDYxMjgsIDAuMDA2MTI5LCAwLjAwNjEzNSwgMC4wMDYxNSwgMC4wMDYxNywgMC4wMDYxOTQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDcyMTMsIDAuMDA3MTYsIDAuMDA3MTU3LCAwLjAwNzE1LCAwLjAwNzE2MywgMC4wMDcyMDksIDAuMDA3MjU4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEIjsKLSAgICAgIHNkZl9jb25kIDogIkQgPT0gMSdiMCI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDUsIC0wLjAzODc1LCAtMC4wMjYyNSwgLTAuMDEzNzUsIC0wLjAwNzUsIDAuMDA4NzUsIDAuMDE3NSIsIFwKLSAgICAgICAgICAiLTAuMDYxMjUsIC0wLjA1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAxMjUsIC0wLjAwMjUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA2NzUsIC0wLjA2MjUsIC0wLjA1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAxNSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA4LCAtMC4wNjg3NSwgLTAuMDU2MjUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMjEyNSwgLTAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDg2MjUsIC0wLjA3NSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA0Mzc1LCAtMC4wMzM3NSwgLTAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjA5NjI1LCAtMC4wODUsIC0wLjA3ODc1LCAtMC4wNjYyNSwgLTAuMDUzNzUsIC0wLjA0Mzc1LCAtMC4wMzUiLCBcCi0gICAgICAgICAgIi0wLjEwNSwgLTAuMDkzNzUsIC0wLjA4MTI1LCAtMC4wNzUsIC0wLjA2MjUsIC0wLjA1MjUsIC0wLjA0Mzc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDYyNSwgMC4wMTc1LCAwLjAyMzc1LCAwLjAzNjI1LCAwLjA0MjUsIDAuMDU4NzUsIDAuMDY3NSIsIFwKLSAgICAgICAgICAiLTAuMDA1LCAwLjAwNjI1LCAwLjAxODc1LCAwLjAyNSwgMC4wMzc1LCAwLjA0NzUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIi0wLjAxNzUsIC0wLjAwNjI1LCAwLjAwNjI1LCAwLjAxMjUsIDAuMDI1LCAwLjAzNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLjAwNjI1LCAwLjAxMjUsIDAuMDI4NzUsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAyNSwgLTAuMDEyNSwgMCwgMC4wMDYyNSwgMC4wMTYyNSwgMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjA0LCAtMC4wMzUsIC0wLjAyMjUsIC0wLjAxLCAtMC4wMDM3NSwgMC4wMDYyNSwgMC4wMTUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wNDM3NSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDEyNSwgLTAuMDAyNSwgMC4wMDYyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJEIjsKLSAgICAgIHNkZl9jb25kIDogIkQgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDUsIC0wLjAzODc1LCAtMC4wMzI1LCAtMC4wMjYyNSwgLTAuMDIsIC0wLjAxNjI1LCAtMC4wMDc1IiwgXAotICAgICAgICAgICItMC4wNjEyNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDIxMjUsIC0wLjAxODc1IiwgXAotICAgICAgICAgICItMC4wNjc1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wMzM3NSwgLTAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjA4LCAtMC4wNzUsIC0wLjA2ODc1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDQ2MjUsIC0wLjA0Mzc1IiwgXAotICAgICAgICAgICItMC4wOTI1LCAtMC4wODc1LCAtMC4wNzUsIC0wLjA3NSwgLTAuMDY4NzUsIC0wLjA1ODc1LCAtMC4wNSIsIFwKLSAgICAgICAgICAiLTAuMTA4NzUsIC0wLjEwMzc1LCAtMC4wOTc1LCAtMC4wOTEyNSwgLTAuMDg1LCAtMC4wNzUsIC0wLjA2NjI1IiwgXAotICAgICAgICAgICItMC4xMjM3NSwgLTAuMTEyNSwgLTAuMTA2MjUsIC0wLjEsIC0wLjA5Mzc1LCAtMC4wOSwgLTAuMDgxMjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxODc1LCAwLjAyMzc1LCAwLjAzNjI1LCAwLjA0ODc1LCAwLjA1NSwgMC4wNzEyNSwgMC4wOCIsIFwKLSAgICAgICAgICAiMC4wMDc1LCAwLjAxODc1LCAwLjAzMTI1LCAwLjAzNzUsIDAuMDUsIDAuMDYsIDAuMDY4NzUiLCBcCi0gICAgICAgICAgIjAuMDAxMjUsIDAuMDA2MjUsIDAuMDE4NzUsIDAuMDMxMjUsIDAuMDM3NSwgMC4wNDc1LCAwLjA2MjUiLCBcCi0gICAgICAgICAgIi0wLjAxMTI1LCAwLCAwLjAxMjUsIDAuMDE4NzUsIDAuMDMxMjUsIDAuMDQxMjUsIDAuMDUiLCBcCi0gICAgICAgICAgIi0wLjAxNzUsIC0wLjAwNjI1LCAwLCAwLjAxMjUsIDAuMDE4NzUsIDAuMDM1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICItMC4wMjc1LCAtMC4wMTYyNSwgLTAuMDEsIDAuMDAyNSwgMC4wMDg3NSwgMC4wMTg3NSwgMC4wMjc1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDI1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMCwgMC4wMTYyNSwgMC4wMTg3NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUQiOwotICAgICAgc2RmX2NvbmQgOiAiRCA9PSAxJ2IwIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjI1LCAwLjA1MTI1LCAwLjAzODc1LCAwLjAyNjI1LCAwLjAyLCAwLjAwMzc1LCAtMC4wMDUiLCBcCi0gICAgICAgICAgIjAuMDczNzUsIDAuMDYyNSwgMC4wNSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAxNSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiMC4wODYyNSwgMC4wNzUsIDAuMDYyNSwgMC4wNSwgMC4wNDM3NSwgMC4wMjc1LCAwLjAxODc1IiwgXAotICAgICAgICAgICIwLjA5MjUsIDAuMDg3NSwgMC4wNzUsIDAuMDYyNSwgMC4wNSwgMC4wMzM3NSwgMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMTA1LCAwLjA5Mzc1LCAwLjA4MTI1LCAwLjA2ODc1LCAwLjA1NjI1LCAwLjA0NjI1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICIwLjExNSwgMC4xMDM3NSwgMC4wOTEyNSwgMC4wNzg3NSwgMC4wNzI1LCAwLjA1NjI1LCAwLjA0NzUiLCBcCi0gICAgICAgICAgIjAuMTIzNzUsIDAuMTEyNSwgMC4xLCAwLjA4NzUsIDAuMDc1LCAwLjA2NSwgMC4wNTYyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1NjI1LCAwLjA1MTI1LCAwLjAzODc1LCAwLjAzODc1LCAwLjAzMjUsIDAuMDIyNSwgMC4wMiIsIFwKLSAgICAgICAgICAiMC4wNjc1LCAwLjA1NjI1LCAwLjA1LCAwLjA0Mzc1LCAwLjA0Mzc1LCAwLjAzMzc1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICIwLjA4LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDU2MjUsIDAuMDQ2MjUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMDg2MjUsIDAuMDgxMjUsIDAuMDc1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDU4NzUsIDAuMDUiLCBcCi0gICAgICAgICAgIjAuMDk4NzUsIDAuMDg3NSwgMC4wODEyNSwgMC4wNzUsIDAuMDc1LCAwLjA2NSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiMC4xMDg3NSwgMC4xMDM3NSwgMC4wOTEyNSwgMC4wOTEyNSwgMC4wODUsIDAuMDc1LCAwLjA3MjUiLCBcCi0gICAgICAgICAgIjAuMTE3NSwgMC4xMDYyNSwgMC4xLCAwLjA5Mzc1LCAwLjA5Mzc1LCAwLjA4Mzc1LCAwLjA4MTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJEIjsKLSAgICAgIHNkZl9jb25kIDogIkQgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY4NzUsIDAuMDU3NSwgMC4wNTEyNSwgMC4wNDUsIDAuMDM4NzUsIDAuMDI4NzUsIDAuMDI2MjUiLCBcCi0gICAgICAgICAgIjAuMDgsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNSwgMC4wNCwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4wOTI1LCAwLjA4MTI1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDUyNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4xMDUsIDAuMDkzNzUsIDAuMDgxMjUsIDAuMDc1LCAwLjA2ODc1LCAwLjA2NSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiMC4xMTEyNSwgMC4xMDYyNSwgMC4wOTM3NSwgMC4wODc1LCAwLjA4MTI1LCAwLjA3NzUsIDAuMDY4NzUiLCBcCi0gICAgICAgICAgIjAuMTMzNzUsIDAuMTIyNSwgMC4xMSwgMC4xMDM3NSwgMC4wOTc1LCAwLjA5Mzc1LCAwLjA4NSIsIFwKLSAgICAgICAgICAiMC4xNDI1LCAwLjEzNzUsIDAuMTI1LCAwLjExODc1LCAwLjExMjUsIDAuMTAyNSwgMC4xIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDI1LCAwLjAyLCAwLjAwNzUsIC0wLjAwNSwgLTAuMDExMjUsIC0wLjAyNzUsIC0wLjAzNjI1IiwgXAotICAgICAgICAgICIwLjAzNjI1LCAwLjAyNSwgMC4wMTI1LCAwLjAwNjI1LCAtMC4wMDYyNSwgLTAuMDE2MjUsIC0wLjAyNSIsIFwKLSAgICAgICAgICAiMC4wNDg3NSwgMC4wMzc1LCAwLjAyNSwgMC4wMTI1LCAwLjAwNjI1LCAtMC4wMDM3NSwgLTAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMDYxMjUsIDAuMDUsIDAuMDM3NSwgMC4wMjUsIDAuMDE4NzUsIDAuMDAyNSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMDY3NSwgMC4wNTYyNSwgMC4wNSwgMC4wMzc1LCAwLjAyNSwgMC4wMTUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMDgzNzUsIDAuMDcyNSwgMC4wNiwgMC4wNTM3NSwgMC4wNDEyNSwgMC4wMzEyNSwgMC4wMjI1IiwgXAotICAgICAgICAgICIwLjA5MjUsIDAuMDg3NSwgMC4wNzUsIDAuMDYyNSwgMC4wNSwgMC4wNCwgMC4wMzEyNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjI2MDQyMjsKLSAgICBmdW5jdGlvbiA6ICJOMzAiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5vbl91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcmlzaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEzMDAxNSwgMC4xNTQ2NDIsIDAuMjk0MDE3LCAwLjQxNzAyOSwgMC41ODA4MTgsIDAuOTA4NzQzLCAxLjExMzciLCBcCi0gICAgICAgICAgIjAuMTQwMjMzLCAwLjE2NDg2MSwgMC4zMDQyNDIsIDAuNDI3MjAxLCAwLjU5MTA1LCAwLjkxODk3OCwgMS4xMjM5MSIsIFwKLSAgICAgICAgICAiMC4xNTI4MDUsIDAuMTc3NDMyLCAwLjMxNjgwOCwgMC40Mzk4MTYsIDAuNjAzNjQyLCAwLjkzMTU0LCAxLjEzNjM2IiwgXAotICAgICAgICAgICIwLjE2NDQzNCwgMC4xODkwNjIsIDAuMzI4NDQyLCAwLjQ1MTQ1MSwgMC42MTUyNjksIDAuOTQzMTc5LCAxLjE0Nzk5IiwgXAotICAgICAgICAgICIwLjE3NDQxOCwgMC4xOTkwNDYsIDAuMzM4NDIyLCAwLjQ2MTQzMSwgMC42MjUzMDksIDAuOTUzMTcyLCAxLjE1Nzk2IiwgXAotICAgICAgICAgICIwLjE4ODcxMywgMC4yMTMzNCwgMC4zNTI3MDgsIDAuNDc1NjY0LCAwLjYzOTUyNCwgMC45NjczNzksIDEuMTcyMjUiLCBcCi0gICAgICAgICAgIjAuMTk5NTYzLCAwLjIyNDE4LCAwLjM2MzU0MywgMC40ODY0ODUsIDAuNjUwNDYyLCAwLjk3ODE4MSwgMS4xODMwNCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTIyOTIsIDAuMTQyNTI2LCAwLjQyOTg2NywgMC42ODM1MSwgMS4wMjIzLCAxLjcwMjUzLCAyLjEyMjQ4IiwgXAotICAgICAgICAgICIwLjA5MjI4NywgMC4xNDI1MjEsIDAuNDMwNDEsIDAuNjgzNjUyLCAxLjAyMjU3LCAxLjcwMjU0LCAyLjEyMjciLCBcCi0gICAgICAgICAgIjAuMDkyMjg4LCAwLjE0MjUyMSwgMC40Mjk4NjIsIDAuNjgzNTc4LCAxLjAyMzg4LCAxLjcwMjUxLCAyLjEyMzEiLCBcCi0gICAgICAgICAgIjAuMDkyMjg5LCAwLjE0MjUxOSwgMC40Mjk3OTEsIDAuNjgzNTAyLCAxLjAyMzg4LCAxLjcwMjUzLCAyLjEyMzAyIiwgXAotICAgICAgICAgICIwLjA5MjI4NiwgMC4xNDI1MjEsIDAuNDMwMzc1LCAwLjY4MzUzOSwgMS4wMjM5NywgMS43MDI1MywgMi4xMjI5OCIsIFwKLSAgICAgICAgICAiMC4wOTIzMDcsIDAuMTQyNTI5LCAwLjQzMDM1OSwgMC42ODM1MjcsIDEuMDIyNTgsIDEuNjk5NTcsIDIuMTIyOTEiLCBcCi0gICAgICAgICAgIjAuMDkyMjI4LCAwLjE0MjUxMiwgMC40MzAyOTEsIDAuNjg0NTg1LCAxLjAyMTc3LCAxLjcwMjAxLCAyLjEyMzQ1Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE0NzA5MywgMC4xNzE4ODEsIDAuMzEyMTI2LCAwLjQzNTg1NSwgMC42MDA3NjcsIDAuOTMwNjQ5LCAxLjEzNjc0IiwgXAotICAgICAgICAgICIwLjE1NzM0MywgMC4xODIxMywgMC4zMjIzODIsIDAuNDQ2MDgxLCAwLjYxMTA1NiwgMC45NDA4NzcsIDEuMTQ3MDUiLCBcCi0gICAgICAgICAgIjAuMTY5OTgxLCAwLjE5NDc2OSwgMC4zMzUwMjQsIDAuNDU4NzYsIDAuNjIzNzA1LCAwLjk1MzUzOCwgMS4xNTk2MiIsIFwKLSAgICAgICAgICAiMC4xODE3MDcsIDAuMjA2NDk0LCAwLjM0Njc0NSwgMC40NzA0MzMsIDAuNjM1NDEzLCAwLjk2NTIxLCAxLjE3MTQxIiwgXAotICAgICAgICAgICIwLjE5MjA4LCAwLjIxNjg2NiwgMC4zNTcxMTQsIDAuNDgwNzk1LCAwLjY0NTc4LCAwLjk3NTU3OSwgMS4xODE3OCIsIFwKLSAgICAgICAgICAiMC4yMDYzMTgsIDAuMjMxMTA1LCAwLjM3MTM1NCwgMC40OTUwNDEsIDAuNjYwMDIxLCAwLjk4OTg0NCwgMS4xOTYwMiIsIFwKLSAgICAgICAgICAiMC4yMTcyNDMsIDAuMjQyMDMzLCAwLjM4MjMxOSwgMC41MDYwMDQsIDAuNjcwODk0LCAxLjAwMDg2LCAxLjIwNjg4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5MDQ0LCAwLjEzOTczNywgMC40MjE5MzksIDAuNjcxNzUyLCAxLjAwNDY1LCAxLjY2NzE3LCAyLjA4MTY4IiwgXAotICAgICAgICAgICIwLjA5MDQzMiwgMC4xMzk2ODcsIDAuNDIxMzEsIDAuNjcxODE5LCAxLjAwNDU2LCAxLjY2NTQzLCAyLjA4MTExIiwgXAotICAgICAgICAgICIwLjA5MDQzMSwgMC4xMzk2NTMsIDAuNDIxNDIsIDAuNjcxNjksIDEuMDAxNDMsIDEuNjY3MTUsIDIuMDgxODEiLCBcCi0gICAgICAgICAgIjAuMDkwNDMzLCAwLjEzOTcwNCwgMC40MjEzMSwgMC42NzE1MDUsIDEuMDA0NTcsIDEuNjcwMjYsIDIuMDgwOTIiLCBcCi0gICAgICAgICAgIjAuMDkwNDM1LCAwLjEzOTY4NCwgMC40MjEyOTQsIDAuNjcxNjkxLCAxLjAwNDU4LCAxLjY3MDI3LCAyLjA4MDk1IiwgXAotICAgICAgICAgICIwLjA5MDQzNCwgMC4xMzk2OTEsIDAuNDIxMzI5LCAwLjY3MTczOCwgMS4wMDQ1NywgMS42NjUzOCwgMi4wODEwNyIsIFwKLSAgICAgICAgICAiMC4wOTA0MzksIDAuMTM5NzQ1LCAwLjQyMTI0NSwgMC42NzE2NDcsIDEuMDA0NjUsIDEuNjY1NTksIDIuMDg2MjQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA3NTI1LCAwLjAwNzUzMywgMC4wMDc1NDQsIDAuMDA3NTQ2LCAwLjAwNzU0OCwgMC4wMDc1NSwgMC4wMDc1NDkiLCBcCi0gICAgICAgICAgIjAuMDA3NDksIDAuMDA3NDk4LCAwLjAwNzUxLCAwLjAwNzUxMiwgMC4wMDc1MTIsIDAuMDA3NTE2LCAwLjAwNzUxNSIsIFwKLSAgICAgICAgICAiMC4wMDc0NzQsIDAuMDA3NDgyLCAwLjAwNzQ5MywgMC4wMDc0OTYsIDAuMDA3NDk4LCAwLjAwNzQ5OSwgMC4wMDc0OTgiLCBcCi0gICAgICAgICAgIjAuMDA3NDc2LCAwLjAwNzQ4MywgMC4wMDc0OTUsIDAuMDA3NDk3LCAwLjAwNzQ5OSwgMC4wMDc1LCAwLjAwNzUiLCBcCi0gICAgICAgICAgIjAuMDA3NDk0LCAwLjAwNzUwMiwgMC4wMDc1MTQsIDAuMDA3NTE2LCAwLjAwNzUxOCwgMC4wMDc1MiwgMC4wMDc1MTkiLCBcCi0gICAgICAgICAgIjAuMDA3NTE2LCAwLjAwNzUyNCwgMC4wMDc1MzUsIDAuMDA3NTM4LCAwLjAwNzU0LCAwLjAwNzU0MSwgMC4wMDc1NDEiLCBcCi0gICAgICAgICAgIjAuMDA3NTQxLCAwLjAwNzU0OCwgMC4wMDc1NiwgMC4wMDc1NjIsIDAuMDA3NTY0LCAwLjAwNzU2NSwgMC4wMDc1NjYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDc3MjIsIDAuMDA3NzMsIDAuMDA3NzM4LCAwLjAwNzczOSwgMC4wMDc3MzksIDAuMDA3NzQsIDAuMDA3NzQiLCBcCi0gICAgICAgICAgIjAuMDA3Njk0LCAwLjAwNzcwMiwgMC4wMDc3MSwgMC4wMDc3MTEsIDAuMDA3NzExLCAwLjAwNzcxMiwgMC4wMDc3MTIiLCBcCi0gICAgICAgICAgIjAuMDA3Njk4LCAwLjAwNzcwNiwgMC4wMDc3MTQsIDAuMDA3NzE1LCAwLjAwNzcxNiwgMC4wMDc3MTYsIDAuMDA3NzE2IiwgXAotICAgICAgICAgICIwLjAwNzcyLCAwLjAwNzcyNywgMC4wMDc3MzUsIDAuMDA3NzM2LCAwLjAwNzczNywgMC4wMDc3MzcsIDAuMDA3NzM3IiwgXAotICAgICAgICAgICIwLjAwNzc1OSwgMC4wMDc3NjcsIDAuMDA3Nzc0LCAwLjAwNzc3NSwgMC4wMDc3NzUsIDAuMDA3Nzc2LCAwLjAwNzc3NiIsIFwKLSAgICAgICAgICAiMC4wMDc4MDcsIDAuMDA3ODE1LCAwLjAwNzgyMiwgMC4wMDc4MjMsIDAuMDA3ODIzLCAwLjAwNzgyMywgMC4wMDc4MjQiLCBcCi0gICAgICAgICAgIjAuMDA3ODUsIDAuMDA3ODU4LCAwLjAwNzg2NSwgMC4wMDc4NjYsIDAuMDA3ODY2LCAwLjAwNzg2NiwgMC4wMDc4NjYiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IEVERkZYMiAqCi0gKiAtLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKEVERkZYMikgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjQ3NzQ4OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIGZmIChOMzAsUUJJTlQpIHsKLSAgICBuZXh0X3N0YXRlIDogIigoRSBEKSArICghRSAoISghTjMwKSkpKSI7Ci0gICAgY2xvY2tlZF9vbiA6ICJDSyI7Ci0gIH0KLSAgcGluKENLKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2NzU1NTc7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjc1MjU5OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDY3NTU1NzsKLSAgICBjbG9jayA6IHRydWU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzMTQzLCAwLjAwMzExOSwgMC4wMDMxMDYsIDAuMDAzMTEsIDAuMDAzMTIyLCAwLjAwMzE0MywgMC4wMDMxNjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDU3ODksIDAuMDA1NzY2LCAwLjAwNTc2NywgMC4wMDU3NzMsIDAuMDA1Nzk5LCAwLjAwNTg0NSwgMC4wMDU4ODIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFEJkUiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX0VfRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjE1NDUyMSwgMC4xNjQ3NjcsIDAuMTc3MzQxLCAwLjE4ODc0MywgMC4xOTg4MzQsIDAuMjEyNTIyLCAwLjIyMzA5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wODk0ODUsIDAuMDk5Mzc1LCAwLjExMTQ5MiwgMC4xMjIzODQsIDAuMTMxNzY0LCAwLjE0NDI4MiwgMC4xNTM4NTYiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEQpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY3ODAxNzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2NzY3NzM7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjc4MDE3OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjQ2MSwgMC4wMDI0NDYsIDAuMDAyNDM3LCAwLjAwMjQzMiwgMC4wMDI0MywgMC4wMDI0MzEsIDAuMDAyNDQyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA0ODUsIDAuMDA0ODQxLCAwLjAwNDgzNSwgMC4wMDQ4MzIsIDAuMDA0ODMzLCAwLjAwNDgzNCwgMC4wMDQ4NCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJFIjsKLSAgICAgIHNkZl9jb25kIDogIkUgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDU2MjUsIC0wLjA1MTI1LCAtMC4wNDUsIC0wLjAzODc1LCAtMC4wMzI1LCAtMC4wMjg3NSwgLTAuMDIiLCBcCi0gICAgICAgICAgIi0wLjA2NzUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjA0Mzc1LCAtMC4wMzM3NSwgLTAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjA3Mzc1LCAtMC4wNjg3NSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNDYyNSwgLTAuMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDg2MjUsIC0wLjA4MTI1LCAtMC4wNzUsIC0wLjA2ODc1LCAtMC4wNjI1LCAtMC4wNTg3NSwgLTAuMDUiLCBcCi0gICAgICAgICAgIi0wLjA5ODc1LCAtMC4wODc1LCAtMC4wODEyNSwgLTAuMDgxMjUsIC0wLjA3NSwgLTAuMDY1LCAtMC4wNjI1IiwgXAotICAgICAgICAgICItMC4xMTUsIC0wLjEwMzc1LCAtMC4wOTc1LCAtMC4wOTc1LCAtMC4wOTEyNSwgLTAuMDgxMjUsIC0wLjA3ODc1IiwgXAotICAgICAgICAgICItMC4xMjM3NSwgLTAuMTE4NzUsIC0wLjExMjUsIC0wLjEwNjI1LCAtMC4xLCAtMC4wOTYyNSwgLTAuMDkzNzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMTg3NSwgLTAuMDA3NSwgLTAuMDAxMjUsIDAuMDExMjUsIDAuMDE3NSwgMC4wMjc1LCAwLjAzNjI1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLCAwLjAwNjI1LCAwLjAyMjUsIDAuMDI1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAsIDAuMDEsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzNzUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIDAuMDAzNzUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDA4NzUsIDAiLCBcCi0gICAgICAgICAgIi0wLjA2NSwgLTAuMDUzNzUsIC0wLjA0NzUsIC0wLjA0MTI1LCAtMC4wMjg3NSwgLTAuMDE4NzUsIC0wLjAxIiwgXAotICAgICAgICAgICItMC4wNjc1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wMjc1LCAtMC4wMTg3NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiRSI7Ci0gICAgICBzZGZfY29uZCA6ICJFID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5Mzc1LCAwLjA4MjUsIDAuMDcsIDAuMDYzNzUsIDAuMDU3NSwgMC4wNTM3NSwgMC4wNDUiLCBcCi0gICAgICAgICAgIjAuMDk4NzUsIDAuMDkzNzUsIDAuMDgxMjUsIDAuMDc1LCAwLjA2ODc1LCAwLjA1ODc1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICIwLjExMTI1LCAwLjEsIDAuMDkzNzUsIDAuMDgxMjUsIDAuMDc1LCAwLjA3MTI1LCAwLjA2MjUiLCBcCi0gICAgICAgICAgIjAuMTIzNzUsIDAuMTEyNSwgMC4xLCAwLjA5Mzc1LCAwLjA4NzUsIDAuMDgzNzUsIDAuMDc1IiwgXAotICAgICAgICAgICIwLjEzNjI1LCAwLjEyNSwgMC4xMTI1LCAwLjEwNjI1LCAwLjEsIDAuMDksIDAuMDg3NSIsIFwKLSAgICAgICAgICAiMC4xNTI1LCAwLjE0MTI1LCAwLjEyODc1LCAwLjEyMjUsIDAuMTE2MjUsIDAuMTA2MjUsIDAuMTAzNzUiLCBcCi0gICAgICAgICAgIjAuMTYxMjUsIDAuMTUsIDAuMTQzNzUsIDAuMTM3NSwgMC4xMzEyNSwgMC4xMjEyNSwgMC4xMTI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc1LCAwLjA2Mzc1LCAwLjA1MTI1LCAwLjAzODc1LCAwLjAyNjI1LCAwLjAxNjI1LCAwLjAwMTI1IiwgXAotICAgICAgICAgICIwLjA4LCAwLjA2ODc1LCAwLjA1NjI1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDIxMjUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4wOTI1LCAwLjA4MTI1LCAwLjA2ODc1LCAwLjA1NjI1LCAwLjA0Mzc1LCAwLjAzMzc1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiMC4wOTg3NSwgMC4wODc1LCAwLjA3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA0LCAwLjAzMTI1IiwgXAotICAgICAgICAgICIwLjExMTI1LCAwLjEsIDAuMDg3NSwgMC4wNzUsIDAuMDYyNSwgMC4wNTI1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjEyMTI1LCAwLjExLCAwLjA5NzUsIDAuMDkxMjUsIDAuMDc4NzUsIDAuMDYyNSwgMC4wNTM3NSIsIFwKLSAgICAgICAgICAiMC4xMzYyNSwgMC4xMjUsIDAuMTEyNSwgMC4xLCAwLjA4NzUsIDAuMDc3NSwgMC4wNjg3NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNDYzOTc7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNDYzNzY7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNDYzOTc7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA0NTg1LCAwLjAwNDU2NCwgMC4wMDQ1NjEsIDAuMDA0NTY3LCAwLjAwNDU4LCAwLjAwNDYwNCwgMC4wMDQ2MzEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDU4NjgsIDAuMDA1ODM0LCAwLjAwNTgyMywgMC4wMDU4MjYsIDAuMDA1ODQzLCAwLjAwNTg4MywgMC4wMDU5MjQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUQiOwotICAgICAgc2RmX2NvbmQgOiAiRCA9PSAxJ2IwIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wNjI1LCAtMC4wNTEyNSwgLTAuMDM4NzUsIC0wLjAzMjUsIC0wLjAyLCAtMC4wMSwgLTAuMDAxMjUiLCBcCi0gICAgICAgICAgIi0wLjA3Mzc1LCAtMC4wNjI1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjAzMTI1LCAtMC4wMjEyNSwgLTAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDg2MjUsIC0wLjA3NSwgLTAuMDYyNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wMzM3NSwgLTAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjA5MjUsIC0wLjA4NzUsIC0wLjA3NSwgLTAuMDYyNSwgLTAuMDUsIC0wLjA0LCAtMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMTA1LCAtMC4wOTM3NSwgLTAuMDgxMjUsIC0wLjA2ODc1LCAtMC4wNjI1LCAtMC4wNDYyNSwgLTAuMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMTE1LCAtMC4xMDM3NSwgLTAuMDkxMjUsIC0wLjA3ODc1LCAtMC4wNzI1LCAtMC4wNTYyNSwgLTAuMDQ3NSIsIFwKLSAgICAgICAgICAiLTAuMTIzNzUsIC0wLjExMjUsIC0wLjEsIC0wLjA4NzUsIC0wLjA4MTI1LCAtMC4wNjUsIC0wLjA1NjI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDA2MjUsIDAuMDA1LCAwLjAxMTI1LCAwLjAxNzUsIDAuMDIzNzUsIDAuMDIxMjUsIDAuMDExMjUiLCBcCi0gICAgICAgICAgIi0wLjAxNzUsIC0wLjAwNjI1LCAwLjAwNjI1LCAwLjAxMjUsIDAuMDEyNSwgMC4wMTYyNSwgMCIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxODc1LCAtMC4wMDYyNSwgMCwgMCwgMC4wMDM3NSwgLTAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDEyNSwgLTAuMDA4NzUsIC0wLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDM3NSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDE4NzUsIC0wLjAyMTI1LCAtMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDUyNSwgLTAuMDQ3NSwgLTAuMDQxMjUsIC0wLjAzNSwgLTAuMDI4NzUsIC0wLjAyNSwgLTAuMDQ3NSIsIFwKLSAgICAgICAgICAiLTAuMDYxMjUsIC0wLjA1NjI1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDM3NSwgLTAuMDMzNzUsIC0wLjA1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIkQiOwotICAgICAgc2RmX2NvbmQgOiAiRCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wNjI1LCAtMC4wNTEyNSwgLTAuMDQ1LCAtMC4wMzg3NSwgLTAuMDMyNSwgLTAuMDI4NzUsIC0wLjAyIiwgXAotICAgICAgICAgICItMC4wNjc1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wMzM3NSwgLTAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjA4LCAtMC4wNzUsIC0wLjA2ODc1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDQ2MjUsIC0wLjA0Mzc1IiwgXAotICAgICAgICAgICItMC4wOTI1LCAtMC4wODc1LCAtMC4wNzUsIC0wLjA2ODc1LCAtMC4wNjg3NSwgLTAuMDU4NzUsIC0wLjA1NjI1IiwgXAotICAgICAgICAgICItMC4xMDUsIC0wLjEsIC0wLjA4NzUsIC0wLjA4MTI1LCAtMC4wODEyNSwgLTAuMDcxMjUsIC0wLjA2ODc1IiwgXAotICAgICAgICAgICItMC4xMjEyNSwgLTAuMTE2MjUsIC0wLjExLCAtMC4xMDM3NSwgLTAuMDk3NSwgLTAuMDg3NSwgLTAuMDg1IiwgXAotICAgICAgICAgICItMC4xMzYyNSwgLTAuMTMxMjUsIC0wLjExODc1LCAtMC4xMTI1LCAtMC4xMTI1LCAtMC4xMDI1LCAtMC4xIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDYyNSwgMC4wMTc1LCAwLjAyMzc1LCAwLjAzNjI1LCAwLjA0MjUsIDAuMDUyNSwgMC4wNjc1IiwgXAotICAgICAgICAgICIwLjAwMTI1LCAwLjAwNjI1LCAwLjAxODc1LCAwLjAyNSwgMC4wMzc1LCAwLjA0NzUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIi0wLjAxMTI1LCAwLCAwLjAwNjI1LCAwLjAxODc1LCAwLjAyNSwgMC4wMzUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIi0wLjAxNzUsIC0wLjAxMjUsIDAsIDAuMDA2MjUsIDAuMDEyNSwgMC4wMjI1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLCAwLjAwNjI1LCAwLjAxNjI1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDQsIC0wLjAyODc1LCAtMC4wMjI1LCAtMC4wMSwgLTAuMDAzNzUsIDAuMDA2MjUsIDAuMDE1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDI1LCAwLjAwNjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRCI7Ci0gICAgICBzZGZfY29uZCA6ICJEID09IDEnYjAiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4MTI1LCAwLjA3LCAwLjA1NzUsIDAuMDQ1LCAwLjAzODc1LCAwLjAyMjUsIDAuMDEzNzUiLCBcCi0gICAgICAgICAgIjAuMDkyNSwgMC4wODEyNSwgMC4wNjg3NSwgMC4wNTYyNSwgMC4wNSwgMC4wMzM3NSwgMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMTA1LCAwLjA5Mzc1LCAwLjA4MTI1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDQ2MjUsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiMC4xMTEyNSwgMC4xLCAwLjA4NzUsIDAuMDgxMjUsIDAuMDY4NzUsIDAuMDUyNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4xMjM3NSwgMC4xMTI1LCAwLjEsIDAuMDg3NSwgMC4wNzUsIDAuMDY1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICIwLjEzMzc1LCAwLjEyMjUsIDAuMTEsIDAuMDk3NSwgMC4wODUsIDAuMDc1LCAwLjA2NjI1IiwgXAotICAgICAgICAgICIwLjE0MjUsIDAuMTMxMjUsIDAuMTE4NzUsIDAuMTA2MjUsIDAuMDkzNzUsIDAuMDgzNzUsIDAuMDY4NzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNSwgMC4wNDUsIDAuMDM4NzUsIDAuMDMyNSwgMC4wMjYyNSwgMC4wMTYyNSwgMC4wMTM3NSIsIFwKLSAgICAgICAgICAiMC4wNjEyNSwgMC4wNTYyNSwgMC4wNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAyNzUsIDAuMDI1IiwgXAotICAgICAgICAgICIwLjA3Mzc1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDUsIDAuMDQsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiMC4wODYyNSwgMC4wNzUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNTI1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjA5MjUsIDAuMDg3NSwgMC4wNzUsIDAuMDc1LCAwLjA2ODc1LCAwLjA1ODc1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICIwLjEwMjUsIDAuMDk3NSwgMC4wOTEyNSwgMC4wODUsIDAuMDc4NzUsIDAuMDY4NzUsIDAuMDY2MjUiLCBcCi0gICAgICAgICAgIjAuMTExMjUsIDAuMTA2MjUsIDAuMDkzNzUsIDAuMDkzNzUsIDAuMDg3NSwgMC4wNzc1LCAwLjA3NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiRCI7Ci0gICAgICBzZGZfY29uZCA6ICJEID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4NzUsIDAuMDc2MjUsIDAuMDYzNzUsIDAuMDU3NSwgMC4wNTEyNSwgMC4wNDEyNSwgMC4wMzg3NSIsIFwKLSAgICAgICAgICAiMC4wOTI1LCAwLjA4NzUsIDAuMDc1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDUyNSwgMC4wNSIsIFwKLSAgICAgICAgICAiMC4xMDUsIDAuMDkzNzUsIDAuMDg3NSwgMC4wODEyNSwgMC4wNzUsIDAuMDY1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICIwLjExNzUsIDAuMTA2MjUsIDAuMSwgMC4wODc1LCAwLjA4NzUsIDAuMDc3NSwgMC4wNjg3NSIsIFwKLSAgICAgICAgICAiMC4xMywgMC4xMTg3NSwgMC4xMTI1LCAwLjEsIDAuMDkzNzUsIDAuMDksIDAuMDgxMjUiLCBcCi0gICAgICAgICAgIjAuMTQ2MjUsIDAuMTQxMjUsIDAuMTI4NzUsIDAuMTIyNSwgMC4xMTYyNSwgMC4xMDYyNSwgMC4wOTc1IiwgXAotICAgICAgICAgICIwLjE2MTI1LCAwLjE1LCAwLjE0Mzc1LCAwLjEzNzUsIDAuMTMxMjUsIDAuMTIxMjUsIDAuMTEyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyNSwgMC4wMTM3NSwgMC4wMDEyNSwgLTAuMDA1LCAtMC4wMTc1LCAtMC4wMjc1LCAtMC4wMzYyNSIsIFwKLSAgICAgICAgICAiMC4wMzYyNSwgMC4wMjUsIDAuMDEyNSwgMCwgLTAuMDA2MjUsIC0wLjAxNjI1LCAtMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMDQyNSwgMC4wMzc1LCAwLjAyNSwgMC4wMTI1LCAwLjAwNjI1LCAtMC4wMSwgLTAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMDU1LCAwLjA1LCAwLjAzNzUsIDAuMDI1LCAwLjAxODc1LCAwLjAwMjUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDU2MjUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMjUsIDAuMDE1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICIwLjA4Mzc1LCAwLjA3MjUsIDAuMDYsIDAuMDQ3NSwgMC4wNDEyNSwgMC4wMzEyNSwgMC4wMjI1IiwgXAotICAgICAgICAgICIwLjA5MjUsIDAuMDgxMjUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNSwgMC4wNCwgMC4wMzEyNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjUyNDExNjsKLSAgICBmdW5jdGlvbiA6ICJOMzAiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5vbl91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcmlzaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExODQxMywgMC4yMjA2MTcsIDAuMzAxNDY2LCAwLjQwMjczLCAwLjUwNDU0NCwgMC42MDUzNiwgMC43MDcwMTciLCBcCi0gICAgICAgICAgIjAuMTI4NTg3LCAwLjIzMDc4LCAwLjMxMTgyOCwgMC40MTMzNDcsIDAuNTE0MDk5LCAwLjYxNTIyMywgMC43MTY3MjIiLCBcCi0gICAgICAgICAgIjAuMTQxMDQyLCAwLjI0MzI0NywgMC4zMjQ0NzgsIDAuNDI1OTY0LCAwLjUyNjczOCwgMC42Mjc4ODEsIDAuNzI5NjczIiwgXAotICAgICAgICAgICIwLjE1MjM0LCAwLjI1NDE5OCwgMC4zMzU2NDMsIDAuNDM2NTk1LCAwLjUzODc5MiwgMC42MzkxMjcsIDAuNzQwOTk2IiwgXAotICAgICAgICAgICIwLjE2MjE0OSwgMC4yNjQzODQsIDAuMzQ2MDM5LCAwLjQ0Njk4NiwgMC41NDg0OTQsIDAuNjQ4OTU1LCAwLjc1MDgxMiIsIFwKLSAgICAgICAgICAiMC4xNzU3NTUsIDAuMjc4MDY3LCAwLjM1OTcxOCwgMC40NjA1MzEsIDAuNTYyMjI5LCAwLjY2MjYwNywgMC43NjQ0MzIiLCBcCi0gICAgICAgICAgIjAuMTg2MTM1LCAwLjI4ODI5NCwgMC4zNjkzNTQsIDAuNDcxMjYyLCAwLjU3MjE4MiwgMC42NzMxMzUsIDAuNzc0ODE2Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1MjI5NywgMC4yNTc4NCwgMC40MjQzOCwgMC42MzIyMTYsIDAuODQyNjUzLCAxLjA0OTM2LCAxLjI2MDgyIiwgXAotICAgICAgICAgICIwLjA1MjQxMSwgMC4yNTc4OTIsIDAuNDI0NTUxLCAwLjYzMzM4NCwgMC44NDA5NywgMS4wNDk1MiwgMS4yNTg1IiwgXAotICAgICAgICAgICIwLjA1MjI5NCwgMC4yNTczNTcsIDAuNDIzMzU1LCAwLjYzMzQxMiwgMC44NDEwOTcsIDEuMDQ5ODEsIDEuMjYwNzciLCBcCi0gICAgICAgICAgIjAuMDUyNDQsIDAuMjU4NDEsIDAuNDI0MzQ1LCAwLjYzMjcwOSwgMC44NDA4LCAxLjA0OTk5LCAxLjI2MDc1IiwgXAotICAgICAgICAgICIwLjA1MjEyOCwgMC4yNTY1NTQsIDAuNDI0MDY4LCAwLjYzMTk2OSwgMC44NDAzNDgsIDEuMDQ5ODksIDEuMjYwNzQiLCBcCi0gICAgICAgICAgIjAuMDUyNDQ2LCAwLjI1ODA4NiwgMC40MjM2NjUsIDAuNjMyNjUsIDAuODQwNzc4LCAxLjA0OTY2LCAxLjI2MDcxIiwgXAotICAgICAgICAgICIwLjA1MjE1OSwgMC4yNTgxMzksIDAuNDI0NTI4LCAwLjYzMjIsIDAuODQyNjA4LCAxLjA0OTQsIDEuMjYwNyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMzIxNTksIDAuMjM2ODY2LCAwLjMyMDAzMywgMC40MjMxMywgMC41MjY0OTUsIDAuNjMwMjMsIDAuNzM0MDU1IiwgXAotICAgICAgICAgICIwLjE0MjQyMiwgMC4yNDcyMDEsIDAuMzMwMjgsIDAuNDMzODQ0LCAwLjUzNjg3NSwgMC42NDA0ODksIDAuNzQ0MTMyIiwgXAotICAgICAgICAgICIwLjE1NDk5NSwgMC4yNTk3NDgsIDAuMzQyMzU0LCAwLjQ0NjAxNCwgMC41NDk0OTUsIDAuNjUzMTA5LCAwLjc1NjYxMyIsIFwKLSAgICAgICAgICAiMC4xNjYzOTUsIDAuMjcxMTMxLCAwLjM1NDMwMiwgMC40NTc0NDMsIDAuNTYwOTE0LCAwLjY2NDUwNiwgMC43NjgwMjEiLCBcCi0gICAgICAgICAgIjAuMTc2NDk5LCAwLjI4MTI3MSwgMC4zNjQzMTcsIDAuNDY3NDk3LCAwLjU3MTE4NiwgMC42NzQ1NjIsIDAuNzc4MjA3IiwgXAotICAgICAgICAgICIwLjE5MDE3MiwgMC4yOTQ3ODgsIDAuMzc3NDkzLCAwLjQ4MTE4MiwgMC41ODQ2NjcsIDAuNjg4MjkyLCAwLjc5MTc4OSIsIFwKLSAgICAgICAgICAiMC4yMDA3NDEsIDAuMzA1NDY3LCAwLjM4ODEzNiwgMC40OTE3NzgsIDAuNTk1MjUzLCAwLjY5ODg1MiwgMC44MDIzNjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDUyMjQ5LCAwLjI1ODg1OSwgMC40MjU3NywgMC42MzQ1NSwgMC44NDM1ODksIDEuMDU1MTksIDEuMjY0MTMiLCBcCi0gICAgICAgICAgIjAuMDUyMTcsIDAuMjU4MzksIDAuNDI1ODM2LCAwLjYzNTM1LCAwLjg0NTE3MywgMS4wNTUyMiwgMS4yNjYyMSIsIFwKLSAgICAgICAgICAiMC4wNTIxNjQsIDAuMjU4NjAyLCAwLjQyNTkyMSwgMC42MzYxNjgsIDAuODQ1NDY4LCAxLjA1NTg5LCAxLjI2NTgyIiwgXAotICAgICAgICAgICIwLjA1MjUwNiwgMC4yNTg3MjksIDAuNDI1Njg0LCAwLjYzNjMzNywgMC44NDU0NzQsIDEuMDU1OTMsIDEuMjY1ODgiLCBcCi0gICAgICAgICAgIjAuMDUyMTQ3LCAwLjI1ODQzNiwgMC40MjU5MzcsIDAuNjM2MDIyLCAwLjg0NjUyNiwgMS4wNTUyLCAxLjI2NjEzIiwgXAotICAgICAgICAgICIwLjA1MjQwNywgMC4yNTgxODUsIDAuNDI1NzUzLCAwLjYzNjA5NSwgMC44NDUzNTYsIDEuMDU1ODgsIDEuMjY0ODMiLCBcCi0gICAgICAgICAgIjAuMDUyNDc5LCAwLjI1ODc3NSwgMC40MjU5OTYsIDAuNjM2MjY1LCAwLjg0NTUxMiwgMS4wNTU5LCAxLjI2NTg0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNTM1OSwgMC4wMDU0MTgsIDAuMDA1NDI0LCAwLjAwNTQyOCwgMC4wMDU0MywgMC4wMDU0MzEsIDAuMDA1NDMyIiwgXAotICAgICAgICAgICIwLjAwNTM0MywgMC4wMDU0MDIsIDAuMDA1NDA4LCAwLjAwNTQxMiwgMC4wMDU0MTQsIDAuMDA1NDE1LCAwLjAwNTQxNSIsIFwKLSAgICAgICAgICAiMC4wMDUzMzYsIDAuMDA1Mzk1LCAwLjAwNTQwMSwgMC4wMDU0MDQsIDAuMDA1NDA2LCAwLjAwNTQwNywgMC4wMDU0MDgiLCBcCi0gICAgICAgICAgIjAuMDA1MzM4LCAwLjAwNTM5NywgMC4wMDU0MDQsIDAuMDA1NDA3LCAwLjAwNTQwOSwgMC4wMDU0MTEsIDAuMDA1NDExIiwgXAotICAgICAgICAgICIwLjAwNTM0NCwgMC4wMDU0MDMsIDAuMDA1NDA5LCAwLjAwNTQxMywgMC4wMDU0MTUsIDAuMDA1NDE2LCAwLjAwNTQxNiIsIFwKLSAgICAgICAgICAiMC4wMDUzNTYsIDAuMDA1NDE1LCAwLjAwNTQyMiwgMC4wMDU0MjUsIDAuMDA1NDI3LCAwLjAwNTQyOCwgMC4wMDU0MjkiLCBcCi0gICAgICAgICAgIjAuMDA1MzY5LCAwLjAwNTQzLCAwLjAwNTQzNywgMC4wMDU0NDEsIDAuMDA1NDQyLCAwLjAwNTQ0MywgMC4wMDU0NDMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDU4MjgsIDAuMDA1ODc3LCAwLjAwNTg4MywgMC4wMDU4ODcsIDAuMDA1ODg3LCAwLjAwNTg4NywgMC4wMDU4ODkiLCBcCi0gICAgICAgICAgIjAuMDA1ODE0LCAwLjAwNTg2MywgMC4wMDU4NjksIDAuMDA1ODcyLCAwLjAwNTg3MywgMC4wMDU4NzUsIDAuMDA1ODc0IiwgXAotICAgICAgICAgICIwLjAwNTgxNSwgMC4wMDU4NjUsIDAuMDA1ODcxLCAwLjAwNTg3NCwgMC4wMDU4NzUsIDAuMDA1ODc3LCAwLjAwNTg3NyIsIFwKLSAgICAgICAgICAiMC4wMDU4MjUsIDAuMDA1ODc0LCAwLjAwNTg4LCAwLjAwNTg4MywgMC4wMDU4ODUsIDAuMDA1ODg2LCAwLjAwNTg4NiIsIFwKLSAgICAgICAgICAiMC4wMDU4NDEsIDAuMDA1ODksIDAuMDA1ODk2LCAwLjAwNTg5OSwgMC4wMDU5LCAwLjAwNTkwMSwgMC4wMDU5MDIiLCBcCi0gICAgICAgICAgIjAuMDA1ODYsIDAuMDA1OTEsIDAuMDA1OTE2LCAwLjAwNTkxOSwgMC4wMDU5MiwgMC4wMDU5MjIsIDAuMDA1OTIyIiwgXAotICAgICAgICAgICIwLjAwNTg4LCAwLjAwNTkzLCAwLjAwNTkzNiwgMC4wMDU5MzgsIDAuMDA1OTQxLCAwLjAwNTk0MiwgMC4wMDU5NDEiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFFOKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuNTE5MjU3OwotICAgIGZ1bmN0aW9uIDogIlFCSU5UIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBub25fdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJpc2luZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNTQ1MjEsIDAuMjU1NzQ5LCAwLjMzNjgyOCwgMC40Mzc5NDEsIDAuNTM5MTc5LCAwLjY0MDU3NCwgMC43NDE5OTkiLCBcCi0gICAgICAgICAgIjAuMTY0NzY3LCAwLjI2NTk2NSwgMC4zNDcwMjcsIDAuNDQ4MzM5LCAwLjU0OTU1OCwgMC42NTA3NzgsIDAuNzUyMDU2IiwgXAotICAgICAgICAgICIwLjE3NzM0MSwgMC4yNzg1MzksIDAuMzU5NTc5LCAwLjQ2MDgxMSwgMC41NjIwOTksIDAuNjYzMzU0LCAwLjc2NDYyMSIsIFwKLSAgICAgICAgICAiMC4xODg3NDMsIDAuMjg5OTMzLCAwLjM3MTAxOSwgMC40NzIyMDYsIDAuNTczNDg3LCAwLjY3NDc1MSwgMC43NzYwMTYiLCBcCi0gICAgICAgICAgIjAuMTk4ODM0LCAwLjMwMDA4MywgMC4zODExMzQsIDAuNDgyMzU4LCAwLjU4MzYxOSwgMC42ODQ5MDEsIDAuNzg2MTczIiwgXAotICAgICAgICAgICIwLjIxMjUyMiwgMC4zMTM2OTEsIDAuMzk0NzQ0LCAwLjQ5NTk4NywgMC41OTcyNzcsIDAuNjk4NTI3LCAwLjc5OTc5NiIsIFwKLSAgICAgICAgICAiMC4yMjMwOSwgMC4zMjQyNzksIDAuNDA1MzI1LCAwLjUwNjU1NSwgMC42MDc4MzksIDAuNzA5MDk5LCAwLjgxMDM2NSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTA4NzEsIDAuMjU3MjAxLCAwLjQyNDE1NSwgMC42MzIxNTQsIDAuODQwNTQ5LCAxLjA1MDg5LCAxLjI1ODk2IiwgXAotICAgICAgICAgICIwLjA1MDg0NCwgMC4yNTcxMTYsIDAuNDI0MTY4LCAwLjYzMjg2MywgMC44NDE4MjgsIDEuMDUwOTQsIDEuMjYxNDkiLCBcCi0gICAgICAgICAgIjAuMDUwODU1LCAwLjI1NzEzNSwgMC40MjQzNiwgMC42MzM3MzksIDAuODQyMTA5LCAxLjA1MTgsIDEuMjYwNzUiLCBcCi0gICAgICAgICAgIjAuMDUwODU5LCAwLjI1NzEzMywgMC40MjQxNDIsIDAuNjMzODAyLCAwLjg0MjEwMiwgMS4wNTE4MywgMS4yNjA4NCIsIFwKLSAgICAgICAgICAiMC4wNTA4NDMsIDAuMjU3MTIyLCAwLjQyNDE4MywgMC42MzM3MDcsIDAuODQzMjE5LCAxLjA1MDk4LCAxLjI2MTQ1IiwgXAotICAgICAgICAgICIwLjA1MDgyOSwgMC4yNTcwMzcsIDAuNDI0NCwgMC42MzM3MjMsIDAuODQyMDEyLCAxLjA1MTgsIDEuMjU5NjMiLCBcCi0gICAgICAgICAgIjAuMDUwODU5LCAwLjI1NzEzNSwgMC40MjQzNjMsIDAuNjMzNzY5LCAwLjg0MjE1NiwgMS4wNTE4LCAxLjI2MDc5Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE0MzU1MywgMC4yNDcyNTEsIDAuMzMwMTYxLCAwLjQzMzgxMSwgMC41Mzc0MTksIDAuNjQxMDM2LCAwLjc0NDYzOCIsIFwKLSAgICAgICAgICAiMC4xNTM3MTksIDAuMjU3NDMxLCAwLjM0MDM2LCAwLjQ0Mzk2OCwgMC41NDc2MDEsIDAuNjUxMDU4LCAwLjc1NDgyNSIsIFwKLSAgICAgICAgICAiMC4xNjYxOCwgMC4yNjk4NCwgMC4zNTI3NzksIDAuNDU2NDAzLCAwLjU2MDAwMSwgMC42NjM2MjUsIDAuNzY3MjMyIiwgXAotICAgICAgICAgICIwLjE3NzQ3MSwgMC4yODExNTksIDAuMzY0MDk4LCAwLjQ2NzcyMywgMC41NzE0MDksIDAuNjc0OTU4LCAwLjc3ODU3IiwgXAotICAgICAgICAgICIwLjE4NzI2OCwgMC4yOTA5NjgsIDAuMzczOTM4LCAwLjQ3NzUzOSwgMC41ODExNjYsIDAuNjg0NzMzLCAwLjc4ODM1MSIsIFwKLSAgICAgICAgICAiMC4yMDA4ODMsIDAuMzA0NjEzLCAwLjM4NzU5MiwgMC40OTExNywgMC41OTQ4MzEsIDAuNjk4MzY2LCAwLjgwMTk5MiIsIFwKLSAgICAgICAgICAiMC4yMTEyMSwgMC4zMTQ4NzIsIDAuMzk3OCwgMC41MDE0NzMsIDAuNjA1MDIyLCAwLjcwODY0NywgMC44MTIyNzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDUxMDI0LCAwLjI1ODI5LCAwLjQyNjI3NywgMC42MzYxNTQsIDAuODQ2ODg1LCAxLjA1NTc3LCAxLjI2Njk2IiwgXAotICAgICAgICAgICIwLjA1MTAzOSwgMC4yNTgyNzgsIDAuNDI2MzE5LCAwLjYzNjc2OSwgMC44NDYwMjIsIDEuMDU1NjksIDEuMjY1NjgiLCBcCi0gICAgICAgICAgIjAuMDUxMDE5LCAwLjI1ODM5MSwgMC40MjYxODgsIDAuNjM2ODUzLCAwLjg0NTg3OCwgMS4wNTU4NiwgMS4yNjY5MyIsIFwKLSAgICAgICAgICAiMC4wNTEwNDMsIDAuMjU4NjE2LCAwLjQyNjI0OCwgMC42MzYxMjgsIDAuODQ1NDczLCAxLjA1NTksIDEuMjY2OTUiLCBcCi0gICAgICAgICAgIjAuMDUxMDM2LCAwLjI1ODM3OCwgMC40MjYwNzEsIDAuNjM1OTI3LCAwLjg0NTQ4MSwgMS4wNTU4NywgMS4yNjY5NCIsIFwKLSAgICAgICAgICAiMC4wNTEwMzgsIDAuMjU4Mzc1LCAwLjQyNjA3MywgMC42MzU5OTcsIDAuODQ1NDM0LCAxLjA1NTgyLCAxLjI2NjkyIiwgXAotICAgICAgICAgICIwLjA1MTA4OSwgMC4yNTg0MzksIDAuNDI2MzEsIDAuNjM1NjMxLCAwLjg0Njc5NSwgMS4wNTU3MiwgMS4yNjY5MyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDU4MjgsIDAuMDA1ODc3LCAwLjAwNTg4MywgMC4wMDU4ODcsIDAuMDA1ODg3LCAwLjAwNTg4NywgMC4wMDU4ODkiLCBcCi0gICAgICAgICAgIjAuMDA1ODE0LCAwLjAwNTg2MywgMC4wMDU4NjksIDAuMDA1ODcyLCAwLjAwNTg3MywgMC4wMDU4NzUsIDAuMDA1ODc0IiwgXAotICAgICAgICAgICIwLjAwNTgxNSwgMC4wMDU4NjUsIDAuMDA1ODcxLCAwLjAwNTg3NCwgMC4wMDU4NzUsIDAuMDA1ODc3LCAwLjAwNTg3NyIsIFwKLSAgICAgICAgICAiMC4wMDU4MjUsIDAuMDA1ODc0LCAwLjAwNTg4LCAwLjAwNTg4MywgMC4wMDU4ODUsIDAuMDA1ODg2LCAwLjAwNTg4NiIsIFwKLSAgICAgICAgICAiMC4wMDU4NDEsIDAuMDA1ODksIDAuMDA1ODk2LCAwLjAwNTg5OSwgMC4wMDU5LCAwLjAwNTkwMSwgMC4wMDU5MDIiLCBcCi0gICAgICAgICAgIjAuMDA1ODYsIDAuMDA1OTEsIDAuMDA1OTE2LCAwLjAwNTkxOSwgMC4wMDU5MiwgMC4wMDU5MjIsIDAuMDA1OTIyIiwgXAotICAgICAgICAgICIwLjAwNTg4LCAwLjAwNTkzLCAwLjAwNTkzNiwgMC4wMDU5MzgsIDAuMDA1OTQxLCAwLjAwNTk0MiwgMC4wMDU5NDEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDUzNTksIDAuMDA1NDE4LCAwLjAwNTQyNCwgMC4wMDU0MjgsIDAuMDA1NDMsIDAuMDA1NDMxLCAwLjAwNTQzMiIsIFwKLSAgICAgICAgICAiMC4wMDUzNDMsIDAuMDA1NDAyLCAwLjAwNTQwOCwgMC4wMDU0MTIsIDAuMDA1NDE0LCAwLjAwNTQxNSwgMC4wMDU0MTUiLCBcCi0gICAgICAgICAgIjAuMDA1MzM2LCAwLjAwNTM5NSwgMC4wMDU0MDEsIDAuMDA1NDA0LCAwLjAwNTQwNiwgMC4wMDU0MDcsIDAuMDA1NDA4IiwgXAotICAgICAgICAgICIwLjAwNTMzOCwgMC4wMDUzOTcsIDAuMDA1NDA0LCAwLjAwNTQwNywgMC4wMDU0MDksIDAuMDA1NDExLCAwLjAwNTQxMSIsIFwKLSAgICAgICAgICAiMC4wMDUzNDQsIDAuMDA1NDAzLCAwLjAwNTQwOSwgMC4wMDU0MTMsIDAuMDA1NDE1LCAwLjAwNTQxNiwgMC4wMDU0MTYiLCBcCi0gICAgICAgICAgIjAuMDA1MzU2LCAwLjAwNTQxNSwgMC4wMDU0MjIsIDAuMDA1NDI1LCAwLjAwNTQyNywgMC4wMDU0MjgsIDAuMDA1NDI5IiwgXAotICAgICAgICAgICIwLjAwNTM2OSwgMC4wMDU0MywgMC4wMDU0MzcsIDAuMDA1NDQxLCAwLjAwNTQ0MiwgMC4wMDU0NDMsIDAuMDA1NDQzIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBFREZGWEwgKgotICogLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChFREZGWEwpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4zNDczMDU7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgZmYgKE4zMCxRQklOVCkgewotICAgIG5leHRfc3RhdGUgOiAiKChFIEQpICsgKCFFICghKCFOMzApKSkpIjsKLSAgICBjbG9ja2VkX29uIDogIkNLIjsKLSAgfQotICBwaW4oQ0spICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY2OTMwNzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2Njg4MzU7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjY5MzA3OwotICAgIGNsb2NrIDogdHJ1ZTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDMxMjQsIDAuMDAzMDk4LCAwLjAwMzA4OSwgMC4wMDMwOSwgMC4wMDMxMDEsIDAuMDAzMTIzLCAwLjAwMzE0NSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNjA4LCAwLjAwNjA1NywgMC4wMDYwNTUsIDAuMDA2MDY1LCAwLjAwNjA4OCwgMC4wMDYxMzMsIDAuMDA2MTcyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRCZFIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9FX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4xOTM3MzYsIDAuMjAzOTM3LCAwLjIxNjY1MiwgMC4yMjgzOTYsIDAuMjM4NzcyLCAwLjI1Mjk4NCwgMC4yNjM4ODIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjA5Mjk0MywgMC4xMDI2NjksIDAuMTE1MDAyLCAwLjEyNjI4NiwgMC4xMzU5NjgsIDAuMTQ5MDM2LCAwLjE1ODk5NCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjAwMTQzOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDU5ODM5NTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2MDAxNDM7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyNzMxLCAwLjAwMjcxNCwgMC4wMDI3MDYsIDAuMDAyNywgMC4wMDI2OTcsIDAuMDAyNjk3LCAwLjAwMjcwNiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNTEwNywgMC4wMDUwOTgsIDAuMDA1MDkyLCAwLjAwNTA4OSwgMC4wMDUwOSwgMC4wMDUwOTIsIDAuMDA1MDk2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIkUiOwotICAgICAgc2RmX2NvbmQgOiAiRSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wNjI1LCAtMC4wNTc1LCAtMC4wNDUsIC0wLjA0NSwgLTAuMDM4NzUsIC0wLjAyODc1LCAtMC4wMjYyNSIsIFwKLSAgICAgICAgICAiLTAuMDczNzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjA0LCAtMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDgsIC0wLjA3NSwgLTAuMDY4NzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNTI1LCAtMC4wNDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDkyNSwgLTAuMDg3NSwgLTAuMDgxMjUsIC0wLjA3NSwgLTAuMDY4NzUsIC0wLjA1ODc1LCAtMC4wNTYyNSIsIFwKLSAgICAgICAgICAiLTAuMTA1LCAtMC4wOTM3NSwgLTAuMDg3NSwgLTAuMDgxMjUsIC0wLjA3NSwgLTAuMDcxMjUsIC0wLjA2ODc1IiwgXAotICAgICAgICAgICItMC4xMjEyNSwgLTAuMTEsIC0wLjEwMzc1LCAtMC4wOTc1LCAtMC4wOTc1LCAtMC4wODc1LCAtMC4wODUiLCBcCi0gICAgICAgICAgIi0wLjEzLCAtMC4xMjUsIC0wLjExODc1LCAtMC4xMTI1LCAtMC4xMDYyNSwgLTAuMTAyNSwgLTAuMDkzNzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMjUsIC0wLjAxMzc1LCAtMC4wMDc1LCAwLjAwNSwgMC4wMTEyNSwgMC4wMjc1LCAwLjAzNjI1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDI1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMC4wMDYyNSwgMC4wMTYyNSwgMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLjAwMzc1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjA1NSwgLTAuMDQzNzUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAxMjUsIC0wLjAwMjUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA2MTI1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAxNSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA3MTI1LCAtMC4wNjYyNSwgLTAuMDUzNzUsIC0wLjA0NzUsIC0wLjAzNSwgLTAuMDI1LCAtMC4wMTYyNSIsIFwKLSAgICAgICAgICAiLTAuMDgsIC0wLjA3NSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wMzM3NSwgLTAuMDI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJFIjsKLSAgICAgIHNkZl9jb25kIDogIkUgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDkzNzUsIDAuMDgyNSwgMC4wNzYyNSwgMC4wNjM3NSwgMC4wNTc1LCAwLjA1Mzc1LCAwLjA0NSIsIFwKLSAgICAgICAgICAiMC4xMDUsIDAuMDkzNzUsIDAuMDgxMjUsIDAuMDc1LCAwLjA2ODc1LCAwLjA1ODc1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICIwLjExMTI1LCAwLjEwNjI1LCAwLjA5Mzc1LCAwLjA4NzUsIDAuMDgxMjUsIDAuMDcxMjUsIDAuMDY4NzUiLCBcCi0gICAgICAgICAgIjAuMTIzNzUsIDAuMTEyNSwgMC4xMDYyNSwgMC4xLCAwLjA5Mzc1LCAwLjA4Mzc1LCAwLjA3NSIsIFwKLSAgICAgICAgICAiMC4xMzYyNSwgMC4xMjUsIDAuMTEyNSwgMC4xMDYyNSwgMC4xLCAwLjA5NjI1LCAwLjA4NzUiLCBcCi0gICAgICAgICAgIjAuMTUyNSwgMC4xNDEyNSwgMC4xMjg3NSwgMC4xMjI1LCAwLjExNjI1LCAwLjExMjUsIDAuMTAzNzUiLCBcCi0gICAgICAgICAgIjAuMTY3NSwgMC4xNTYyNSwgMC4xNDM3NSwgMC4xMzc1LCAwLjEzMTI1LCAwLjEyMTI1LCAwLjExODc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc1LCAwLjA2Mzc1LCAwLjA1MTI1LCAwLjAzODc1LCAwLjAzMjUsIDAuMDE2MjUsIDAuMDA3NSIsIFwKLSAgICAgICAgICAiMC4wODYyNSwgMC4wNzUsIDAuMDYyNSwgMC4wNSwgMC4wMzc1LCAwLjAyNzUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4wOTI1LCAwLjA4MTI1LCAwLjA2ODc1LCAwLjA1NjI1LCAwLjA1LCAwLjAzMzc1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiMC4xMDUsIDAuMDkzNzUsIDAuMDgxMjUsIDAuMDY4NzUsIDAuMDU2MjUsIDAuMDQ2MjUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMTExMjUsIDAuMSwgMC4wODc1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNTI1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjEyNzUsIDAuMTE2MjUsIDAuMTAzNzUsIDAuMDkxMjUsIDAuMDg1LCAwLjA2ODc1LCAwLjA2IiwgXAotICAgICAgICAgICIwLjEzNjI1LCAwLjEyNSwgMC4xMTI1LCAwLjEwNjI1LCAwLjA5Mzc1LCAwLjA3NzUsIDAuMDY4NzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEUpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTQyMDQxOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTQyMDQxOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTQxOTgzOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNDgxNSwgMC4wMDQ3OTgsIDAuMDA0Nzk4LCAwLjAwNDgwOSwgMC4wMDQ4MTgsIDAuMDA0ODQzLCAwLjAwNDg3NCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNTk2NSwgMC4wMDU5MzMsIDAuMDA1OTIxLCAwLjAwNTkyNSwgMC4wMDU5NDIsIDAuMDA1OTgyLCAwLjAwNjAyMSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRCI7Ci0gICAgICBzZGZfY29uZCA6ICJEID09IDEnYjAiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjA2MjUsIC0wLjA1NzUsIC0wLjA0NSwgLTAuMDMyNSwgLTAuMDIsIC0wLjAxLCAtMC4wMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDczNzUsIC0wLjA2MjUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDMxMjUsIC0wLjAyMTI1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDg2MjUsIC0wLjA3NSwgLTAuMDYyNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wMzM3NSwgLTAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjA5ODc1LCAtMC4wODc1LCAtMC4wNzUsIC0wLjA2MjUsIC0wLjA1LCAtMC4wNCwgLTAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjEwNSwgLTAuMDkzNzUsIC0wLjA4MTI1LCAtMC4wNjg3NSwgLTAuMDYyNSwgLTAuMDQ2MjUsIC0wLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjExNSwgLTAuMTAzNzUsIC0wLjA5MTI1LCAtMC4wNzg3NSwgLTAuMDcyNSwgLTAuMDU2MjUsIC0wLjA0NzUiLCBcCi0gICAgICAgICAgIi0wLjEyMzc1LCAtMC4xMTI1LCAtMC4xLCAtMC4wODc1LCAtMC4wODEyNSwgLTAuMDY1LCAtMC4wNTYyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAsIDAuMDExMjUsIDAuMDIzNzUsIDAuMDMsIDAuMDM2MjUsIDAuMDUyNSwgMC4wNjEyNSIsIFwKLSAgICAgICAgICAiLTAuMDExMjUsIDAsIDAuMDEyNSwgMC4wMTg3NSwgMC4wMzEyNSwgMC4wNDEyNSwgMC4wNSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxMjUsIDAsIDAuMDEyNSwgMC4wMTg3NSwgMC4wMjg3NSwgMC4wMzc1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDI1LCAtMC4wMTI1LCAwLCAwLjAwNjI1LCAwLjAxNjI1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDMxMjUsIC0wLjAxODc1LCAtMC4wMDYyNSwgMCwgMC4wMSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDQ2MjUsIC0wLjA0MTI1LCAtMC4wMjg3NSwgLTAuMDE2MjUsIC0wLjAxLCAwLCAwLjAwODc1IiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMDg3NSwgMCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJEIjsKLSAgICAgIHNkZl9jb25kIDogIkQgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDYyNSwgLTAuMDU3NSwgLTAuMDUxMjUsIC0wLjA0NSwgLTAuMDM4NzUsIC0wLjAyODc1LCAtMC4wMjYyNSIsIFwKLSAgICAgICAgICAiLTAuMDczNzUsIC0wLjA2ODc1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wNCwgLTAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjA4NjI1LCAtMC4wNzUsIC0wLjA2ODc1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDUyNSwgLTAuMDQzNzUiLCBcCi0gICAgICAgICAgIi0wLjA5ODc1LCAtMC4wODc1LCAtMC4wODEyNSwgLTAuMDc1LCAtMC4wNjg3NSwgLTAuMDY1LCAtMC4wNTYyNSIsIFwKLSAgICAgICAgICAiLTAuMTExMjUsIC0wLjEsIC0wLjA5Mzc1LCAtMC4wODc1LCAtMC4wODEyNSwgLTAuMDcxMjUsIC0wLjA2ODc1IiwgXAotICAgICAgICAgICItMC4xMjc1LCAtMC4xMjI1LCAtMC4xMSwgLTAuMTAzNzUsIC0wLjA5NzUsIC0wLjA5Mzc1LCAtMC4wODUiLCBcCi0gICAgICAgICAgIi0wLjE0MjUsIC0wLjEzMTI1LCAtMC4xMjUsIC0wLjExODc1LCAtMC4xMTI1LCAtMC4xMDg3NSwgLTAuMSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2MjUsIDAuMDE3NSwgMC4wMywgMC4wMzYyNSwgMC4wNDg3NSwgMC4wNTg3NSwgMC4wNjc1IiwgXAotICAgICAgICAgICIwLjAwMTI1LCAwLjAwNjI1LCAwLjAxODc1LCAwLjAzMTI1LCAwLjAzNzUsIDAuMDUzNzUsIDAuMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDExMjUsIDAsIDAuMDA2MjUsIDAuMDE4NzUsIDAuMDI1LCAwLjA0MTI1LCAwLjA1IiwgXAotICAgICAgICAgICItMC4wMTc1LCAtMC4wMTI1LCAwLCAwLjAwNjI1LCAwLjAxODc1LCAwLjAyODc1LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAsIDAuMDA2MjUsIDAuMDIyNSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDQsIC0wLjAyODc1LCAtMC4wMjI1LCAtMC4wMSwgLTAuMDAzNzUsIDAuMDA2MjUsIDAuMDE1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDI1LCAwLjAwNjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRCI7Ci0gICAgICBzZGZfY29uZCA6ICJEID09IDEnYjAiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4MTI1LCAwLjA3LCAwLjA1NzUsIDAuMDQ1LCAwLjAzODc1LCAwLjAyMjUsIDAuMDEzNzUiLCBcCi0gICAgICAgICAgIjAuMDkyNSwgMC4wODEyNSwgMC4wNjg3NSwgMC4wNTYyNSwgMC4wNSwgMC4wMzM3NSwgMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMTA1LCAwLjA5Mzc1LCAwLjA4MTI1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDQ2MjUsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiMC4xMTEyNSwgMC4xLCAwLjA4NzUsIDAuMDgxMjUsIDAuMDY4NzUsIDAuMDUyNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4xMjM3NSwgMC4xMTI1LCAwLjEsIDAuMDg3NSwgMC4wNzUsIDAuMDY1LCAwLjA1IiwgXAotICAgICAgICAgICIwLjEzMzc1LCAwLjEyMjUsIDAuMTEsIDAuMDk3NSwgMC4wODUsIDAuMDc1LCAwLjA2IiwgXAotICAgICAgICAgICIwLjE0MjUsIDAuMTMxMjUsIDAuMTE4NzUsIDAuMTA2MjUsIDAuMDkzNzUsIDAuMDgzNzUsIDAuMDY4NzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjI1LCAwLjA1MTI1LCAwLjA0NSwgMC4wMzg3NSwgMC4wMzg3NSwgMC4wMjg3NSwgMC4wMiIsIFwKLSAgICAgICAgICAiMC4wNzM3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1LCAwLjA0Mzc1LCAwLjA0LCAwLjAzMTI1IiwgXAotICAgICAgICAgICIwLjA4NjI1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1MjUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMDkyNSwgMC4wODc1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNTg3NSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiMC4wOTg3NSwgMC4wOTM3NSwgMC4wODc1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNzEyNSwgMC4wNjI1IiwgXAotICAgICAgICAgICIwLjExNSwgMC4xMDM3NSwgMC4wOTc1LCAwLjA5MTI1LCAwLjA4NSwgMC4wODEyNSwgMC4wNzI1IiwgXAotICAgICAgICAgICIwLjExNzUsIDAuMTEyNSwgMC4xMDYyNSwgMC4xLCAwLjA5Mzc1LCAwLjA5LCAwLjA4MTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJEIjsKLSAgICAgIHNkZl9jb25kIDogIkQgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg3NSwgMC4wNzYyNSwgMC4wNjM3NSwgMC4wNTc1LCAwLjA1MTI1LCAwLjA0NzUsIDAuMDM4NzUiLCBcCi0gICAgICAgICAgIjAuMDk4NzUsIDAuMDg3NSwgMC4wNzUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNTI1LCAwLjA1IiwgXAotICAgICAgICAgICIwLjEwNSwgMC4xLCAwLjA4NzUsIDAuMDgxMjUsIDAuMDc1LCAwLjA2NSwgMC4wNjI1IiwgXAotICAgICAgICAgICIwLjExNzUsIDAuMTA2MjUsIDAuMSwgMC4wOTM3NSwgMC4wODc1LCAwLjA3NzUsIDAuMDc1IiwgXAotICAgICAgICAgICIwLjEzLCAwLjExODc1LCAwLjExMjUsIDAuMTA2MjUsIDAuMSwgMC4wOSwgMC4wODEyNSIsIFwKLSAgICAgICAgICAiMC4xNTI1LCAwLjE0MTI1LCAwLjEyODc1LCAwLjEyMjUsIDAuMTE2MjUsIDAuMTA2MjUsIDAuMTAzNzUiLCBcCi0gICAgICAgICAgIjAuMTY3NSwgMC4xNTYyNSwgMC4xNDM3NSwgMC4xMzc1LCAwLjEzMTI1LCAwLjEyMTI1LCAwLjExODc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM3NSwgMC4wMjYyNSwgMC4wMTM3NSwgMC4wMDEyNSwgLTAuMDA1LCAtMC4wMjEyNSwgLTAuMDMiLCBcCi0gICAgICAgICAgIjAuMDQyNSwgMC4wMzEyNSwgMC4wMTg3NSwgMC4wMTI1LCAwLCAtMC4wMSwgLTAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMDU1LCAwLjA0Mzc1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMTI1LCAwLjAwMjUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDU2MjUsIDAuMDQzNzUsIDAuMDMxMjUsIDAuMDI1LCAwLjAxNSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiMC4wOCwgMC4wNjg3NSwgMC4wNTYyNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAyMTI1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMDksIDAuMDg1LCAwLjA3MjUsIDAuMDYsIDAuMDUzNzUsIDAuMDM3NSwgMC4wMjg3NSIsIFwKLSAgICAgICAgICAiMC4xMDUsIDAuMDkzNzUsIDAuMDgxMjUsIDAuMDc1LCAwLjA2MjUsIDAuMDUyNSwgMC4wNDM3NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjE1MjgxODsKLSAgICBmdW5jdGlvbiA6ICJOMzAiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5vbl91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcmlzaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE2OTE0NywgMC4xODMxNjgsIDAuMzEwNjQsIDAuNTIyNTM4LCAwLjczNDI0MywgMS4yMjg4NywgMS41MTEyNyIsIFwKLSAgICAgICAgICAiMC4xNzkzNSwgMC4xOTM1NzYsIDAuMzIwODYyLCAwLjUzMjU3MywgMC43NDQ0OTQsIDEuMjM5MSwgMS41MjE0NyIsIFwKLSAgICAgICAgICAiMC4xOTE5NzcsIDAuMjA2MTk4LCAwLjMzMzQ4LCAwLjU0NTI0MiwgMC43NTcxMiwgMS4yNTE3MywgMS41MzQwOSIsIFwKLSAgICAgICAgICAiMC4yMDM1NjksIDAuMjE3Nzk4LCAwLjM0NTA4OCwgMC41NTY3ODMsIDAuNzY4NzE3LCAxLjI2MzM0LCAxLjU0NjE1IiwgXAotICAgICAgICAgICIwLjIxMzQ4OCwgMC4yMjc3MTYsIDAuMzU0OTk4LCAwLjU2NjUwNSwgMC43Nzg2NDEsIDEuMjczMjcsIDEuNTU2MDgiLCBcCi0gICAgICAgICAgIjAuMjI3ODEzLCAwLjI0MjA1MSwgMC4zNjkzMzQsIDAuNTgxMDM0LCAwLjc5Mjk3NywgMS4yODc2MywgMS41NzA0MyIsIFwKLSAgICAgICAgICAiMC4yMzg0MiwgMC4yNTI3LCAwLjM3OTk3NywgMC41OTE2NTMsIDAuODAzNjEsIDEuMjk4MywgMS41ODEwOSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNTM3NzYsIDAuMTgyNTc0LCAwLjQ0MjY1MywgMC44Nzc3MTcsIDEuMzEzNTEsIDIuMzMzMjgsIDIuOTEwMjQiLCBcCi0gICAgICAgICAgIjAuMTUzNzgzLCAwLjE4Mjg0MiwgMC40NDI2MjIsIDAuODc5MTE0LCAxLjMxNTYsIDIuMzMzMzEsIDIuOTEwNCIsIFwKLSAgICAgICAgICAiMC4xNTM3ODEsIDAuMTgyODM4LCAwLjQ0MjYzNywgMC44Nzk0NzIsIDEuMzE1NTksIDIuMzMzMjksIDIuOTEwODgiLCBcCi0gICAgICAgICAgIjAuMTUzNzg0LCAwLjE4Mjg0NCwgMC40NDI5NTEsIDAuODc4MTMyLCAxLjMxNTU5LCAyLjMzMzMzLCAyLjkxNDg5IiwgXAotICAgICAgICAgICIwLjE1Mzc4NCwgMC4xODI4NCwgMC40NDI2MzUsIDAuODc4MDU2LCAxLjMxNTU4LCAyLjMzMzM1LCAyLjkxNDkyIiwgXAotICAgICAgICAgICIwLjE1Mzc5NiwgMC4xODI4NDUsIDAuNDQyNjI1LCAwLjg3ODA5NywgMS4zMTU1OCwgMi4zMzM0MSwgMi45MTQ5OCIsIFwKLSAgICAgICAgICAiMC4xNTM5NDEsIDAuMTgyNDg5LCAwLjQ0Mjg4MywgMC44NzgxMTQsIDEuMzE1NTgsIDIuMzMzNSwgMi45MTUwNCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xODI1MzcsIDAuMTk2NDcsIDAuMzIxMTYxLCAwLjUyODg3MSwgMC43MzY1ODIsIDEuMjIwNDgsIDEuNDk4NTkiLCBcCi0gICAgICAgICAgIjAuMTkyNzI3LCAwLjIwNjY5NywgMC4zMzE2LCAwLjUzOTAzNCwgMC43NDY3MDcsIDEuMjMwNDksIDEuNTA4OTIiLCBcCi0gICAgICAgICAgIjAuMjA1NDU1LCAwLjIxOTM4MywgMC4zNDQxNjIsIDAuNTUxNzc1LCAwLjc1OTQ3OSwgMS4yNDQzOSwgMS41MjE1MyIsIFwKLSAgICAgICAgICAiMC4yMTcxOTcsIDAuMjMxMTMxLCAwLjM1NjEyNCwgMC41NjM1MywgMC43NzEyNCwgMS4yNTUwOSwgMS41MzMyNSIsIFwKLSAgICAgICAgICAiMC4yMjc1NzYsIDAuMjQxNTAzLCAwLjM2NjI2OSwgMC41NzM4OTMsIDAuNzgxNTk1LCAxLjI2NjUsIDEuNTQzNjUiLCBcCi0gICAgICAgICAgIjAuMjQxNzY5LCAwLjI1NTc0OSwgMC4zODA2NTIsIDAuNTg4MDksIDAuNzk1NzU4LCAxLjI3OTY2LCAxLjU1Nzk2IiwgXAotICAgICAgICAgICIwLjI1MjY5OSwgMC4yNjY2MTcsIDAuMzkxNTk5LCAwLjU5OTAyNywgMC44MDY3MzcsIDEuMjkwNjYsIDEuNTY4NzQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTQ4MjYxLCAwLjE3NTg5MSwgMC40MjQ2NDYsIDAuODQxMTQ1LCAxLjI1Nzg5LCAyLjIzMTM4LCAyLjc4ODQ2IiwgXAotICAgICAgICAgICIwLjE0ODI0NywgMC4xNzU1NTUsIDAuNDIzODMzLCAwLjg0MTE2OSwgMS4yNTc2NywgMi4yMjc2MSwgMi43ODA4NiIsIFwKLSAgICAgICAgICAiMC4xNDgyNzQsIDAuMTc1ODk4LCAwLjQyNTE5MywgMC44NDExNDksIDEuMjU3ODEsIDIuMjMyMDcsIDIuNzg4NDgiLCBcCi0gICAgICAgICAgIjAuMTQ4MjYxLCAwLjE3NTg4OCwgMC40MjQ1MTQsIDAuODQxMTI4LCAxLjI1Nzg0LCAyLjIzMTI4LCAyLjc4ODM4IiwgXAotICAgICAgICAgICIwLjE0ODI3MywgMC4xNzU4OTksIDAuNDI1MTc1LCAwLjg0MTE3MSwgMS4yNTc4LCAyLjIzMjAzLCAyLjc4ODQ3IiwgXAotICAgICAgICAgICIwLjE0ODA1MiwgMC4xNzQ2MDcsIDAuNDIzODc2LCAwLjg0MTE5MSwgMS4yNTc2NiwgMi4yMzExNiwgMi43ODMwMyIsIFwKLSAgICAgICAgICAiMC4xNDgyNjUsIDAuMTc1OSwgMC40MjMzNTUsIDAuODQxMTU5LCAxLjI1Nzg2LCAyLjIzMTM4LCAyLjc4ODQzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzc3LCAwLjAwMzc3MSwgMC4wMDM3NzUsIDAuMDAzNzc3LCAwLjAwMzc3NywgMC4wMDM3NzcsIDAuMDAzNzc4IiwgXAotICAgICAgICAgICIwLjAwMzc1NSwgMC4wMDM3NTYsIDAuMDAzNzYsIDAuMDAzNzYxLCAwLjAwMzc2MiwgMC4wMDM3NjIsIDAuMDAzNzYzIiwgXAotICAgICAgICAgICIwLjAwMzc0NywgMC4wMDM3NDgsIDAuMDAzNzUyLCAwLjAwMzc1NCwgMC4wMDM3NTQsIDAuMDAzNzU0LCAwLjAwMzc1NCIsIFwKLSAgICAgICAgICAiMC4wMDM3NDksIDAuMDAzNzUsIDAuMDAzNzU0LCAwLjAwMzc1NiwgMC4wMDM3NTYsIDAuMDAzNzU2LCAwLjAwMzc1NyIsIFwKLSAgICAgICAgICAiMC4wMDM3NTksIDAuMDAzNzYsIDAuMDAzNzY0LCAwLjAwMzc2NSwgMC4wMDM3NjYsIDAuMDAzNzY2LCAwLjAwMzc2NiIsIFwKLSAgICAgICAgICAiMC4wMDM3NjgsIDAuMDAzNzcsIDAuMDAzNzczLCAwLjAwMzc3NSwgMC4wMDM3NzUsIDAuMDAzNzc1LCAwLjAwMzc3NiIsIFwKLSAgICAgICAgICAiMC4wMDM3ODIsIDAuMDAzNzgzLCAwLjAwMzc4NywgMC4wMDM3ODksIDAuMDAzNzg5LCAwLjAwMzc5LCAwLjAwMzc5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzOTEzLCAwLjAwMzkxNCwgMC4wMDM5MTgsIDAuMDAzOTE5LCAwLjAwMzkyLCAwLjAwMzkyLCAwLjAwMzkyMSIsIFwKLSAgICAgICAgICAiMC4wMDM5LCAwLjAwMzkwMSwgMC4wMDM5MDUsIDAuMDAzOTA3LCAwLjAwMzkwOCwgMC4wMDM5MDgsIDAuMDAzOTA4IiwgXAotICAgICAgICAgICIwLjAwMzksIDAuMDAzOTAxLCAwLjAwMzkwNiwgMC4wMDM5MDcsIDAuMDAzOTA3LCAwLjAwMzkwOCwgMC4wMDM5MDgiLCBcCi0gICAgICAgICAgIjAuMDAzOTA5LCAwLjAwMzkxLCAwLjAwMzkxNCwgMC4wMDM5MTUsIDAuMDAzOTE2LCAwLjAwMzkxNiwgMC4wMDM5MTciLCBcCi0gICAgICAgICAgIjAuMDAzOTI0LCAwLjAwMzkyNiwgMC4wMDM5MywgMC4wMDM5MzEsIDAuMDAzOTMyLCAwLjAwMzkzMiwgMC4wMDM5MzIiLCBcCi0gICAgICAgICAgIjAuMDAzOTQ2LCAwLjAwMzk0NywgMC4wMDM5NTEsIDAuMDAzOTUzLCAwLjAwMzk1NCwgMC4wMDM5NTQsIDAuMDAzOTU0IiwgXAotICAgICAgICAgICIwLjAwMzk2NSwgMC4wMDM5NjYsIDAuMDAzOTcsIDAuMDAzOTcyLCAwLjAwMzk3MiwgMC4wMDM5NzIsIDAuMDAzOTczIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihRTikgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjE0ODI4MjsKLSAgICBmdW5jdGlvbiA6ICJRQklOVCI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3NlbnNlIDogbm9uX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiByaXNpbmdfZWRnZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTkzNzM2LCAwLjIwODAzOCwgMC4zMzY3MDQsIDAuNTUwOTg5LCAwLjc2NTMzMiwgMS4yNjU0LCAxLjU1MTQzIiwgXAotICAgICAgICAgICIwLjIwMzkzNywgMC4yMTgyNDQsIDAuMzQ2OTIxLCAwLjU2MTE3OCwgMC43NzU1MDUsIDEuMjc1NjMsIDEuNTYxNzEiLCBcCi0gICAgICAgICAgIjAuMjE2NjUyLCAwLjIzMDk1NCwgMC4zNTk1OSwgMC41NzM5LCAwLjc4ODI0LCAxLjI4ODQ5LCAxLjU3NDM2IiwgXAotICAgICAgICAgICIwLjIyODM5NiwgMC4yNDI2OTgsIDAuMzcxNDA3LCAwLjU4NTY0OSwgMC43OTk5OTIsIDEuMzAwMDcsIDEuNTg2MSIsIFwKLSAgICAgICAgICAiMC4yMzg3NzIsIDAuMjUzMDczLCAwLjM4MTcwNSwgMC41OTYwMTksIDAuODEwMzU4LCAxLjMxMDYsIDEuNTk2NDgiLCBcCi0gICAgICAgICAgIjAuMjUyOTg0LCAwLjI2NzI5MiwgMC4zOTU5NjcsIDAuNjEwMjI2LCAwLjgyNDU1MSwgMS4zMjQ2NSwgMS42MTA3NCIsIFwKLSAgICAgICAgICAiMC4yNjM4ODIsIDAuMjc4MTgyLCAwLjQwNjg4MywgMC42MjExMzMsIDAuODM1NDc2LCAxLjMzNTU0LCAxLjYyMTU4Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE1Mjk5MiwgMC4xODI0OTIsIDAuNDQ1MzIyLCAwLjg4NTM2MiwgMS4zMjQ2NiwgMi4zNDY0OCwgMi45MzU5MiIsIFwKLSAgICAgICAgICAiMC4xNTI5ODksIDAuMTgyMTM2LCAwLjQ0NTA4MywgMC44ODUzNDksIDEuMzI0NjEsIDIuMzQ2MjcsIDIuOTI5ODMiLCBcCi0gICAgICAgICAgIjAuMTUyOTkxLCAwLjE4MjQ4OSwgMC40NDYxNjUsIDAuODg1MzU1LCAxLjMyNDYzLCAyLjM0OTk3LCAyLjkzNTkyIiwgXAotICAgICAgICAgICIwLjE1Mjk5MiwgMC4xODI0OSwgMC40NDUyMTgsIDAuODg1MzUxLCAxLjMyNDY0LCAyLjM0NjcsIDIuOTM1ODkiLCBcCi0gICAgICAgICAgIjAuMTUyOTkxLCAwLjE4MjQ5MSwgMC40NDYxNTUsIDAuODg1MzU4LCAxLjMyNDYyLCAyLjM0OTk2LCAyLjkzNTkxIiwgXAotICAgICAgICAgICIwLjE1MzAxNiwgMC4xODIwNTEsIDAuNDQ1MDczLCAwLjg4NTM1MywgMS4zMjQ2MSwgMi4zNDY3MywgMi45Mjg1MyIsIFwKLSAgICAgICAgICAiMC4xNTI5OTQsIDAuMTgyNDkxLCAwLjQ0NTMxMSwgMC44ODUzNjQsIDEuMzI0NjQsIDIuMzQ2NDMsIDIuOTM1ODkiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTc4NTYsIDAuMTkyNTMxLCAwLjMxODMxNSwgMC41Mjc4OTQsIDAuNzM3NDAyLCAxLjIyNjM1LCAxLjUwNTY0IiwgXAotICAgICAgICAgICIwLjE4ODc3MSwgMC4yMDI3NTQsIDAuMzI4NTMxLCAwLjUzODA0NCwgMC43NDc1ODgsIDEuMjM2NTgsIDEuNTE1OSIsIFwKLSAgICAgICAgICAiMC4yMDEzOTUsIDAuMjE1Mzc3LCAwLjM0MTE1MiwgMC41NTA2NTcsIDAuNzYwMjEyLCAxLjI0OTIsIDEuNTI4NTEiLCBcCi0gICAgICAgICAgIjAuMjEyOTksIDAuMjI2OTczLCAwLjM1Mjc1MSwgMC41NjIyNjcsIDAuNzcxODA3LCAxLjI2MDgxLCAxLjU0MDIzIiwgXAotICAgICAgICAgICIwLjIyMjkwOCwgMC4yMzY4OTEsIDAuMzYyNjY2LCAwLjU3MjA0MywgMC43ODE3MjcsIDEuMjcwNzMsIDEuNTUwMTYiLCBcCi0gICAgICAgICAgIjAuMjM3MjQsIDAuMjUxMjIzLCAwLjM3NywgMC41ODY1MDksIDAuNzk2MDYyLCAxLjI4NTA4LCAxLjU2NDUiLCBcCi0gICAgICAgICAgIjAuMjQ3ODQ3LCAwLjI2MTgzNSwgMC4zODc2MTMsIDAuNTk3MTQyLCAwLjgwNjY3MiwgMS4yOTU3MiwgMS41NzUxMyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNDYxNzgsIDAuMTc0MTQyLCAwLjQyNTQ1NiwgMC44NDQ1MzEsIDEuMjYzODUsIDIuMjQ2MzEsIDIuODAyMjYiLCBcCi0gICAgICAgICAgIjAuMTQ2MTQzLCAwLjE3NDM1MiwgMC40MjU0MjcsIDAuODQ1NzEsIDEuMjY2MTIsIDIuMjQ2MzYsIDIuODAyMzMiLCBcCi0gICAgICAgICAgIjAuMTQ2MTU1LCAwLjE3NDM0NiwgMC40MjU0MjYsIDAuODQ2MTA4LCAxLjI2NjA5LCAyLjI0NjMxLCAyLjgwMjA5IiwgXAotICAgICAgICAgICIwLjE0NjEyOCwgMC4xNzQzNDgsIDAuNDI1NDQ2LCAwLjg0NTExNiwgMS4yNjYwOSwgMi4yNDYzNywgMi44MDY1IiwgXAotICAgICAgICAgICIwLjE0NjEzOCwgMC4xNzQzNDcsIDAuNDI1NDI2LCAwLjg0NDg4OSwgMS4yNjYxLCAyLjI0NjQxLCAyLjgwNjU0IiwgXAotICAgICAgICAgICIwLjE0NjEwNCwgMC4xNzQzNDgsIDAuNDI1NDI3LCAwLjg0NTA0NywgMS4yNjYxMSwgMi4yNDY1MSwgMi44MDY2NSIsIFwKLSAgICAgICAgICAiMC4xNDYyLCAwLjE3NDA0MSwgMC40MjU0NCwgMC44NDQ1ODYsIDEuMjY2MTEsIDIuMjQ2NjYsIDIuODA2NzIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzOTEzLCAwLjAwMzkxNCwgMC4wMDM5MTgsIDAuMDAzOTE5LCAwLjAwMzkyLCAwLjAwMzkyLCAwLjAwMzkyMSIsIFwKLSAgICAgICAgICAiMC4wMDM5LCAwLjAwMzkwMSwgMC4wMDM5MDUsIDAuMDAzOTA3LCAwLjAwMzkwOCwgMC4wMDM5MDgsIDAuMDAzOTA4IiwgXAotICAgICAgICAgICIwLjAwMzksIDAuMDAzOTAxLCAwLjAwMzkwNiwgMC4wMDM5MDcsIDAuMDAzOTA3LCAwLjAwMzkwOCwgMC4wMDM5MDgiLCBcCi0gICAgICAgICAgIjAuMDAzOTA5LCAwLjAwMzkxLCAwLjAwMzkxNCwgMC4wMDM5MTUsIDAuMDAzOTE2LCAwLjAwMzkxNiwgMC4wMDM5MTciLCBcCi0gICAgICAgICAgIjAuMDAzOTI0LCAwLjAwMzkyNiwgMC4wMDM5MywgMC4wMDM5MzEsIDAuMDAzOTMyLCAwLjAwMzkzMiwgMC4wMDM5MzIiLCBcCi0gICAgICAgICAgIjAuMDAzOTQ2LCAwLjAwMzk0NywgMC4wMDM5NTEsIDAuMDAzOTUzLCAwLjAwMzk1NCwgMC4wMDM5NTQsIDAuMDAzOTU0IiwgXAotICAgICAgICAgICIwLjAwMzk2NSwgMC4wMDM5NjYsIDAuMDAzOTcsIDAuMDAzOTcyLCAwLjAwMzk3MiwgMC4wMDM5NzIsIDAuMDAzOTczIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzNzcsIDAuMDAzNzcxLCAwLjAwMzc3NSwgMC4wMDM3NzcsIDAuMDAzNzc3LCAwLjAwMzc3NywgMC4wMDM3NzgiLCBcCi0gICAgICAgICAgIjAuMDAzNzU1LCAwLjAwMzc1NiwgMC4wMDM3NiwgMC4wMDM3NjEsIDAuMDAzNzYyLCAwLjAwMzc2MiwgMC4wMDM3NjMiLCBcCi0gICAgICAgICAgIjAuMDAzNzQ3LCAwLjAwMzc0OCwgMC4wMDM3NTIsIDAuMDAzNzU0LCAwLjAwMzc1NCwgMC4wMDM3NTQsIDAuMDAzNzU0IiwgXAotICAgICAgICAgICIwLjAwMzc0OSwgMC4wMDM3NSwgMC4wMDM3NTQsIDAuMDAzNzU2LCAwLjAwMzc1NiwgMC4wMDM3NTYsIDAuMDAzNzU3IiwgXAotICAgICAgICAgICIwLjAwMzc1OSwgMC4wMDM3NiwgMC4wMDM3NjQsIDAuMDAzNzY1LCAwLjAwMzc2NiwgMC4wMDM3NjYsIDAuMDAzNzY2IiwgXAotICAgICAgICAgICIwLjAwMzc2OCwgMC4wMDM3NywgMC4wMDM3NzMsIDAuMDAzNzc1LCAwLjAwMzc3NSwgMC4wMDM3NzUsIDAuMDAzNzc2IiwgXAotICAgICAgICAgICIwLjAwMzc4MiwgMC4wMDM3ODMsIDAuMDAzNzg3LCAwLjAwMzc4OSwgMC4wMDM3ODksIDAuMDAzNzksIDAuMDAzNzkiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IElOVlgyMCAqCi0gKiAtLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKElOVlgyMCkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjgyMzUwNDsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDE1MDc0NDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMTUwNjgxOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAxNTA3NDQ7Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogNC45Njg1NDsKLSAgICBmdW5jdGlvbiA6ICIoIUEpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDgxNjcsIDAuMDE4OTEsIDAuMDI3NDE3LCAwLjAzODA0NSwgMC4wNDg2MTMsIDAuMDU5MjQ2LCAwLjA2OTgwOCIsIFwKLSAgICAgICAgICAiMC4wMTYzNjUsIDAuMDI4OTA0LCAwLjAzNzQyLCAwLjA0ODA2NSwgMC4wNTg2NzksIDAuMDY5Mjk1LCAwLjA3OTkyNiIsIFwKLSAgICAgICAgICAiMC4wMjI2MjksIDAuMDQwNTM1LCAwLjA0OTk2MSwgMC4wNjA2NzgsIDAuMDcxMjU4LCAwLjA4MTgxNSwgMC4wOTIxOTgiLCBcCi0gICAgICAgICAgIjAuMDI3MzkxLCAwLjA0OTI1MSwgMC4wNjEzNDgsIDAuMDczMjksIDAuMDgzOSwgMC4wOTQ0OTcsIDAuMTA1MDMzIiwgXAotICAgICAgICAgICIwLjAzMTE1LCAwLjA1NzIzMSwgMC4wNzA0NTQsIDAuMDg0NjUsIDAuMDk2NDc2LCAwLjEwNzA3NCwgMC4xMTc2ODUiLCBcCi0gICAgICAgICAgIjAuMDM2MTAxLCAwLjA2NzQ4NywgMC4wODM1OSwgMC4xMDA2MDcsIDAuMTE0ODE4LCAwLjEyNzA4MywgMC4xMzg0OTciLCBcCi0gICAgICAgICAgIjAuMDM5NzM0LCAwLjA3NTMxMSwgMC4wOTMwNDQsIDAuMTExODM2LCAwLjEyODE2MywgMC4xNDIyNCwgMC4xNTQ4MDUiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA5ODYsIDAuMDMxNTc3LCAwLjA0OTE2NywgMC4wNzEwMiwgMC4wOTMwMjMsIDAuMTE0NzczLCAwLjEzNjYyNyIsIFwKLSAgICAgICAgICAiMC4wMTY1NDEsIDAuMDM0NzM4LCAwLjA1MDk0MSwgMC4wNzE5MjIsIDAuMDkzMzI3LCAwLjExNDg3NiwgMC4xMzY2NzUiLCBcCi0gICAgICAgICAgIjAuMDI0NDQxLCAwLjA0MzE1LCAwLjA1NzUyMiwgMC4wNzcwMzgsIDAuMDk3MTUyLCAwLjExNzc4NywgMC4xMzg3ODUiLCBcCi0gICAgICAgICAgIjAuMDMwNzM5LCAwLjA1Mjk2NSwgMC4wNjY0NDUsIDAuMDg0NjMyLCAwLjEwMzY0OCwgMC4xMjM0MzEsIDAuMTQzNjczIiwgXAotICAgICAgICAgICIwLjAzNjY1LCAwLjA2MTQyMywgMC4wNzY1NiwgMC4wOTM0MywgMC4xMTE1NDgsIDAuMTMwNDk3LCAwLjE1MDA1NiIsIFwKLSAgICAgICAgICAiMC4wNDU0MDEsIDAuMDc0Mjg0LCAwLjA5MDc0LCAwLjEwODA4OCwgMC4xMjUyNDcsIDAuMTQzMTE5LCAwLjE2MTc2NiIsIFwKLSAgICAgICAgICAiMC4wNTIwMTQsIDAuMDgzNzIxLCAwLjEwMzQwNywgMC4xMjIzNzksIDAuMTM5MTQ2LCAwLjE1NTkxOSwgMC4xNzM1MzEiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA4NTIxLCAwLjAxOTYxNywgMC4wMjgzNDYsIDAuMDM5MjkxLCAwLjA1MDIzNSwgMC4wNjExNjQsIDAuMDcyMTIyIiwgXAotICAgICAgICAgICIwLjAxNzIwNSwgMC4wMjk4MywgMC4wMzg2MzQsIDAuMDQ5NjE1LCAwLjA2MDU4NCwgMC4wNzE0MDQsIDAuMDgyNDY1IiwgXAotICAgICAgICAgICIwLjAyNDM2NywgMC4wNDIwNTQsIDAuMDUxNjYxLCAwLjA2MjUxOCwgMC4wNzM0NDQsIDAuMDg0MzYyLCAwLjA5NTAxNCIsIFwKLSAgICAgICAgICAiMC4wMjk2ODksIDAuMDUxODg0LCAwLjA2MzYzLCAwLjA3NTY1MSwgMC4wODY1MDYsIDAuMDk3MzU5LCAwLjEwODI4NSIsIFwKLSAgICAgICAgICAiMC4wMzQyMTcsIDAuMDYwMDE5LCAwLjA3MzgzMywgMC4wODc3NjIsIDAuMDk5NTYyLCAwLjExMDQwOCwgMC4xMjEyOTUiLCBcCi0gICAgICAgICAgIjAuMDQwMzYzLCAwLjA3MTUyOCwgMC4wODgzNywgMC4xMDQ0LCAwLjExODU2MywgMC4xMzA4NzgsIDAuMTQyMjAxIiwgXAotICAgICAgICAgICIwLjA0NDk2NSwgMC4wODAzNjUsIDAuMDk4ODU1LCAwLjExNzg1NSwgMC4xMzMzOTMsIDAuMTQ3NDMzLCAwLjE1OTkzOCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDk2NTMsIDAuMDMxNTk1LCAwLjA0OTE3MiwgMC4wNzExODUsIDAuMDkzMjU3LCAwLjExNTUxLCAwLjEzNzIzNyIsIFwKLSAgICAgICAgICAiMC4wMTYwMDgsIDAuMDM0MzMxLCAwLjA1MDY3MywgMC4wNzE5NDEsIDAuMDkzMzY3LCAwLjExNTU0OCwgMC4xMzc1MTUiLCBcCi0gICAgICAgICAgIjAuMDIzOTk2LCAwLjA0MjI2MiwgMC4wNTcwMiwgMC4wNzY2MzQsIDAuMDk3MTQ1LCAwLjExODAxNCwgMC4xMzg5MTkiLCBcCi0gICAgICAgICAgIjAuMDMxMDg3LCAwLjA1MjAzLCAwLjA2NTMwMSwgMC4wODM2NzEsIDAuMTAzMDA0LCAwLjEyMjg2OSwgMC4xNDM0OTgiLCBcCi0gICAgICAgICAgIjAuMDM3MTM2LCAwLjA2MTIxMSwgMC4wNzQ5MTEsIDAuMDkxOTYyLCAwLjExMDQ1MSwgMC4xMjk2NTIsIDAuMTQ5MTgiLCBcCi0gICAgICAgICAgIjAuMDQ2NjI0LCAwLjA3NDIzOSwgMC4wODk0NzEsIDAuMTA3NTA3LCAwLjEyNDIxNywgMC4xNDIxMjEsIDAuMTYwOTM5IiwgXAotICAgICAgICAgICIwLjA1MzExMSwgMC4wODQ5OTEsIDAuMTAyNTk5LCAwLjEyMDYyMSwgMC4xMzcxODIsIDAuMTUzNzU3LCAwLjE3MTcyMiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyMTIyNCwgMC4wMjE3OTEsIDAuMDIxOTA4LCAwLjAyMTk3MywgMC4wMjIwMTIsIDAuMDIyMDM2LCAwLjAyMjA1IiwgXAotICAgICAgICAgICIwLjAyMDUyNSwgMC4wMjEwNjcsIDAuMDIxMzMyLCAwLjAyMTUyLCAwLjAyMTYzNywgMC4wMjE3MjcsIDAuMDIxNzc0IiwgXAotICAgICAgICAgICIwLjAyMDYyMiwgMC4wMjA4MjYsIDAuMDIwOTcxLCAwLjAyMTE5NSwgMC4wMjEzMzUsIDAuMDIxNDQxLCAwLjAyMTUwMyIsIFwKLSAgICAgICAgICAiMC4wMjA5MTIsIDAuMDIwOTQ0LCAwLjAyMTAyNCwgMC4wMjExMzgsIDAuMDIxMjQ0LCAwLjAyMTMzMiwgMC4wMjE0MTUiLCBcCi0gICAgICAgICAgIjAuMDIxMzQ1LCAwLjAyMTA0MywgMC4wMjEyNzcsIDAuMDIxMjczLCAwLjAyMTMyNSwgMC4wMjEzODEsIDAuMDIxNDM1IiwgXAotICAgICAgICAgICIwLjAyMjc1NywgMC4wMjE5ODUsIDAuMDIxNzE3LCAwLjAyMTYxNiwgMC4wMjE1NTYsIDAuMDIxNTY0LCAwLjAyMTU2IiwgXAotICAgICAgICAgICIwLjAyMzA4OSwgMC4wMjIxNDcsIDAuMDIyMDExLCAwLjAyMTgyMywgMC4wMjE2NjQsIDAuMDIxNjYsIDAuMDIxNjI2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwOTM3LCAwLjAwMDIzOCwgMC4wMDAwOTQsIDAsIDAuMDAwMDUyLCAwLjAwMDA4NCwgMC4wMDAxMDYiLCBcCi0gICAgICAgICAgIjAuMDAxODkyLCAwLjAwMTE2OSwgMC4wMDA4MzksIDAuMDAwNTkxLCAwLjAwMDQzNiwgMC4wMDAzMjgsIDAuMDAwMjUzIiwgXAotICAgICAgICAgICIwLjAwMTc4NCwgMC4wMDE1MiwgMC4wMDEyNzEsIDAuMDAxMDIyLCAwLjAwMDgzNywgMC4wMDA3MDIsIDAuMDAwNjIiLCBcCi0gICAgICAgICAgIjAuMDAxMjg4LCAwLjAwMTQzLCAwLjAwMTMyLCAwLjAwMTE0NiwgMC4wMDEwMDEsIDAuMDAwODcsIDAuMDAwNzY1IiwgXAotICAgICAgICAgICIwLjAwMDk5MywgMC4wMDEwODksIDAuMDAxMTI5LCAwLjAwMTA3MSwgMC4wMDA5NzksIDAuMDAwODksIDAuMDAwODA3IiwgXAotICAgICAgICAgICIwLjAwMDA0NSwgMC4wMDA3ODYsIDAuMDAwODUyLCAwLjAwMDU1MywgMC4wMDA2MTMsIDAuMDAwNjE1LCAwLjAwMDU5NSIsIFwKLSAgICAgICAgICAiMC4wMDA2OTEsIDAuMDAwMDE2LCAwLjAwMDMzNCwgMC4wMDA1NDMsIDAuMDAwNjI3LCAwLjAwMDY1OCwgMC4wMDA2NTkiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogSU5WWDQgKgotICogLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKElOVlg0KSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMTQ5NjE4OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDMwMzk1MzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDMwMzgzNDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDMwMzk1MzsKLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAxLjAzMjA5OwotICAgIGZ1bmN0aW9uIDogIighQSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE2MjIxLCAwLjA4ODI4NiwgMC4xNjAyOTMsIDAuMjExNzE4LCAwLjI5NDA3LCAwLjM2NTg3NywgMC40Njg3NTkiLCBcCi0gICAgICAgICAgIjAuMDI2MTcxLCAwLjA5ODE3NywgMC4xNzAxMjIsIDAuMjIxNjk2LCAwLjMwMzg3MiwgMC4zNzU4MzMsIDAuNDc4NjciLCBcCi0gICAgICAgICAgIjAuMDM2NzcxLCAwLjExMDUwOSwgMC4xODI2MDEsIDAuMjMzOSwgMC4zMTU0ODIsIDAuMzg3Mzk3LCAwLjQ5MDM5MiIsIFwKLSAgICAgICAgICAiMC4wNDUwMDksIDAuMTIzNDc3LCAwLjE5NTQ5LCAwLjI0Njg1NywgMC4zMjkyNCwgMC40MDEwMjQsIDAuNTA0MTE4IiwgXAotICAgICAgICAgICIwLjA1MTUzMywgMC4xMzU5ODEsIDAuMjA3NDE3LCAwLjI1OTA3OSwgMC4zNDEyNTYsIDAuNDEzMTIxLCAwLjUxNjE1OCIsIFwKLSAgICAgICAgICAiMC4wNjEyMDQsIDAuMTU2Mzc2LCAwLjIyNzQxMiwgMC4yNzg3NjQsIDAuMzYxMzM4LCAwLjQzMzE5LCAwLjUzNTkyNiIsIFwKLSAgICAgICAgICAiMC4wNjc3MjIsIDAuMTc0MDg1LCAwLjI0NTc2NiwgMC4yOTYzMzcsIDAuMzc4NTE1LCAwLjQ1MDg3MSwgMC41NTM0NzkiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjYyMTcsIDAuMTc0ODYzLCAwLjMyMzQ4NiwgMC40Mjk2NDcsIDAuNTk5NzM3LCAwLjc0ODEzNSwgMC45NjA1MTYiLCBcCi0gICAgICAgICAgIjAuMDMwMDYzLCAwLjE3NDk0MiwgMC4zMjM5MzUsIDAuNDI5NTcsIDAuNTk5OTQ5LCAwLjc0ODE0MiwgMC45NjEyMDQiLCBcCi0gICAgICAgICAgIjAuMDM5MTQyLCAwLjE3NjEzMSwgMC4zMjM0OTQsIDAuNDMwMjI3LCAwLjYwMDIzMSwgMC43NDg1OTMsIDAuOTYwMzkyIiwgXAotICAgICAgICAgICIwLjA0ODE4OCwgMC4xNzk2MzEsIDAuMzIzODkzLCAwLjQzMDE2MSwgMC41OTk1NCwgMC43NDc4MzEsIDAuOTYwMzAxIiwgXAotICAgICAgICAgICIwLjA1NzMzMSwgMC4xODQ3NDgsIDAuMzI2NDQxLCAwLjQzMTA3LCAwLjU5OTUwOCwgMC43NDgxNDIsIDAuOTYwMzAxIiwgXAotICAgICAgICAgICIwLjA2Nzg4NSwgMC4xOTU1MDksIDAuMzMzMzc2LCAwLjQzNTA2MywgMC42MDExOTMsIDAuNzQ5MTAyLCAwLjk2MTAxMiIsIFwKLSAgICAgICAgICAiMC4wNzgwNTMsIDAuMjA1OTk0LCAwLjMzOTYwOSwgMC40NDA3NzMsIDAuNjAzNjA0LCAwLjc0OTU1NCwgMC45NjIxMjYiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTY2ODgsIDAuMDkwMjA4LCAwLjE2MzU5NiwgMC4yMTU5NTksIDAuMjk5NzI2LCAwLjM3MzE3LCAwLjQ3ODA3NyIsIFwKLSAgICAgICAgICAiMC4wMjY4NjIsIDAuMTAwMjg4LCAwLjE3MzY4OSwgMC4yMjYwNjEsIDAuMzA5ODgzLCAwLjM4MzIwNiwgMC40ODgxNTEiLCBcCi0gICAgICAgICAgIjAuMDM4MTI3LCAwLjExMjk1MiwgMC4xODY1MzUsIDAuMjM4NzkyLCAwLjMyMTk2NywgMC4zOTUzMTMsIDAuNTAwMTM0IiwgXAotICAgICAgICAgICIwLjA0Njk5OCwgMC4xMjU1OTcsIDAuMTk4OTcxLCAwLjI1MTYyMiwgMC4zMzUyODgsIDAuNDA4NjMsIDAuNTEzMzQ0IiwgXAotICAgICAgICAgICIwLjA1NDU0MywgMC4xMzkxODUsIDAuMjExOTE4LCAwLjI2NDI4MywgMC4zNDgxNDMsIDAuNDIxNTgyLCAwLjUyNjQ0OSIsIFwKLSAgICAgICAgICAiMC4wNjUyMTcsIDAuMTU5OTQyLCAwLjIzMjI4LCAwLjI4NDYxMiwgMC4zNjg5NDIsIDAuNDM5MzYsIDAuNTQ2ODM5IiwgXAotICAgICAgICAgICIwLjA3MzEyNCwgMC4xNzgyMjIsIDAuMjUxMTEzLCAwLjMwMjUzOSwgMC4zODYzMzcsIDAuNDU5NjY3LCAwLjU2NDk2NyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyNjAzNywgMC4xNzQ1NiwgMC4zMjMxNDcsIDAuNDI5NTY3LCAwLjYwMDUyNSwgMC43NDgxODEsIDAuOTU5ODM4IiwgXAotICAgICAgICAgICIwLjAyOTQ3LCAwLjE3NDQ5NSwgMC4zMjMxOTQsIDAuNDMwMywgMC42MDAzOTgsIDAuNzQ5MzEzLCAwLjk2MDEzNSIsIFwKLSAgICAgICAgICAiMC4wMzgzMzgsIDAuMTc1MjksIDAuMzIzMTI4LCAwLjQzMDMyMywgMC42MDA1OTEsIDAuNzQ3MjM2LCAwLjk2MDAyNiIsIFwKLSAgICAgICAgICAiMC4wNDc3OTgsIDAuMTc4OTk0LCAwLjMyMzM3NywgMC40MjkyNTcsIDAuNTk4NzksIDAuNzQ4MTIzLCAwLjk2MjMwOCIsIFwKLSAgICAgICAgICAiMC4wNTYzOTYsIDAuMTgzNDUxLCAwLjMyNTM4MywgMC40MzA3MzUsIDAuNjAwMzkzLCAwLjc0NzgwNiwgMC45NjA5MDIiLCBcCi0gICAgICAgICAgIjAuMDY4NDk0LCAwLjE5MzY0OCwgMC4zMzIyNzIsIDAuNDM0MjgyLCAwLjYwMDkyOSwgMC43NDc0MjMsIDAuOTU5NjIyIiwgXAotICAgICAgICAgICIwLjA3ODE4NiwgMC4yMDM5NjIsIDAuMzM4NTIxLCAwLjQzODM3NSwgMC42MDIyMDEsIDAuNzQ5NTMxLCAwLjk1OTYwNiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0MjEzLCAwLjAwNDI4LCAwLjAwNDI4NiwgMC4wMDQyODgsIDAuMDA0Mjg4LCAwLjAwNDI5LCAwLjAwNDI4OSIsIFwKLSAgICAgICAgICAiMC4wMDQwNTgsIDAuMDA0MjM1LCAwLjAwNDI1OSwgMC4wMDQyNjgsIDAuMDA0Mjc0LCAwLjAwNDI3OCwgMC4wMDQyODIiLCBcCi0gICAgICAgICAgIjAuMDA0MDQ1LCAwLjAwNDE5NSwgMC4wMDQyMzcsIDAuMDA0MjQ2LCAwLjAwNDI1OSwgMC4wMDQyNjYsIDAuMDA0MjY0IiwgXAotICAgICAgICAgICIwLjAwNDA3OSwgMC4wMDQxODIsIDAuMDA0MjIxLCAwLjAwNDIzNywgMC4wMDQyNTEsIDAuMDA0MjYsIDAuMDA0MjY2IiwgXAotICAgICAgICAgICIwLjAwNDE2NCwgMC4wMDQxNjksIDAuMDA0MjA5LCAwLjAwNDIyOSwgMC4wMDQyNDQsIDAuMDA0MjU0LCAwLjAwNDI2IiwgXAotICAgICAgICAgICIwLjAwNDIwNCwgMC4wMDQxODgsIDAuMDA0MjA3LCAwLjAwNDIxMiwgMC4wMDQyNDEsIDAuMDA0MjQ1LCAwLjAwNDI1NiIsIFwKLSAgICAgICAgICAiMC4wMDQzMTksIDAuMDA0MjE3LCAwLjAwNDIyNCwgMC4wMDQyMjYsIDAuMDA0MjQsIDAuMDA0MjUxLCAwLjAwNDI1NyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwMDM0LCAwLjAwMDA1NCwgMC4wMDAwNjMsIDAuMDAwMDY1LCAwLjAwMDA2NywgMC4wMDAwNjgsIDAuMDAwMDY5IiwgXAotICAgICAgICAgICIwLjAwMDIzMiwgMC4wMDAwMDcsIDAuMDAwMDI3LCAwLjAwMDAzOCwgMC4wMDAwNDgsIDAuMDAwMDUyLCAwLjAwMDA1NyIsIFwKLSAgICAgICAgICAiMC4wMDAyNjksIDAuMDAwMDYsIDAuMDAwMDA1LCAwLjAwMDAxMiwgMC4wMDAwMjcsIDAuMDAwMDM2LCAwLjAwMDA0NCIsIFwKLSAgICAgICAgICAiMC4wMDAxOTEsIDAuMDAwMDgsIDAuMDAwMDIyLCAwLjAwMDAwMSwgMC4wMDAwMTgsIDAuMDAwMDI4LCAwLjAwMDAzNyIsIFwKLSAgICAgICAgICAiMC4wMDAxODIsIDAuMDAwMTA3LCAwLjAwMDA1MywgMC4wMDAwMjcsIDAuMDAwMDAzLCAwLjAwMDAxMSwgMC4wMDAwMjQiLCBcCi0gICAgICAgICAgIjAuMDAwMDYxLCAwLjAwMDA4NiwgMC4wMDAwNTMsIDAuMDAwMDMxLCAwLjAwMDAwNCwgMC4wMDAwMDUsIDAuMDAwMDIiLCBcCi0gICAgICAgICAgIjAuMDAwMDc3LCAwLjAwMDA1NywgMC4wMDAwMzgsIDAuMDAwMDMsIDAuMDAwMDA5LCAwLjAwMDAwMywgMC4wMDAwMTgiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogTURGRkhRWDEgKgotICogLS0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKE1ERkZIUVgxKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuNDMzMjU3OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIGZmIChOMzAsUUJJTlQpIHsKLSAgICBuZXh0X3N0YXRlIDogIigoUzAgRDEpICsgKCFTMCBEMCkpIjsKLSAgICBjbG9ja2VkX29uIDogIkNLIjsKLSAgfQotICBwaW4oQ0spICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYyMjE4MjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MjE5MzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2MjIxODI7Ci0gICAgY2xvY2sgOiB0cnVlOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzM5NSwgMC4wMDMzNywgMC4wMDMzNTUsIDAuMDAzMzU4LCAwLjAwMzM2NywgMC4wMDMzOTEsIDAuMDAzNDEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDczODIsIDAuMDA3MzYsIDAuMDA3MzU3LCAwLjAwNzM2OCwgMC4wMDczOTEsIDAuMDA3NDMyLCAwLjAwNzQ3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRDAmIUQxJiFTMCI7Ci0gICAgICBzZGZfY29uZCA6ICJEMF9FUV8wX0FOX0QxX0VRXzBfQU5fUzBfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjE0Njk0OSwgMC4xNTcxNDUsIDAuMTY5OTgzLCAwLjE4MTk5OSwgMC4xOTI4NSwgMC4yMDc5MTksIDAuMjE5NjA5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wOTM5MTIsIDAuMTAzNjI1LCAwLjExNjE5MywgMC4xMjc3ODYsIDAuMTM4MDY0LCAwLjE1MTg5MywgMC4xNjI1MTYiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEQwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA4ODc1OTY7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwODg1NDUzOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDg4NzU5NjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDM2NjgsIDAuMDAzNjM1LCAwLjAwMzYxOCwgMC4wMDM2MTEsIDAuMDAzNjA0LCAwLjAwMzYxNiwgMC4wMDM2MTgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDU4NTksIDAuMDA1ODQxLCAwLjAwNTgzLCAwLjAwNTgyNywgMC4wMDU4MjUsIDAuMDA1ODMsIDAuMDA1ODM1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFTMCI7Ci0gICAgICBzZGZfY29uZCA6ICJTMCA9PSAxJ2IwIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wNDM3NSwgLTAuMDM4NzUsIC0wLjAyNjI1LCAtMC4wMiwgLTAuMDEzNzUsIC0wLjAxLCAtMC4wMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDE1LCAtMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wNjEyNSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wMzc1LCAtMC4wMzc1LCAtMC4wMjc1LCAtMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDczNzUsIC0wLjA2ODc1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wNCwgLTAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjA4NjI1LCAtMC4wNzUsIC0wLjA2ODc1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDQ2MjUsIC0wLjA0Mzc1IiwgXAotICAgICAgICAgICItMC4wOTYyNSwgLTAuMDkxMjUsIC0wLjA4NSwgLTAuMDc4NzUsIC0wLjA3MjUsIC0wLjA2MjUsIC0wLjA1Mzc1IiwgXAotICAgICAgICAgICItMC4xMTEyNSwgLTAuMSwgLTAuMDkzNzUsIC0wLjA4NzUsIC0wLjA4MTI1LCAtMC4wNzEyNSwgLTAuMDY4NzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMDYyNSwgMC4wMDUsIDAuMDE3NSwgMC4wMjM3NSwgMC4wMzYyNSwgMC4wNDYyNSwgMC4wNjEyNSIsIFwKLSAgICAgICAgICAiLTAuMDExMjUsIC0wLjAwNjI1LCAwLjAwNjI1LCAwLjAxODc1LCAwLjAyNSwgMC4wNDEyNSwgMC4wNSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxMjUsIDAsIDAuMDA2MjUsIDAuMDE4NzUsIDAuMDI4NzUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMjUsIC0wLjAxMjUsIDAsIDAuMDA2MjUsIDAuMDIyNSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDMxMjUsIC0wLjAxODc1LCAtMC4wMDYyNSwgMCwgMC4wMTYyNSwgMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjA1MjUsIC0wLjA0MTI1LCAtMC4wMjg3NSwgLTAuMDE2MjUsIC0wLjAxLCAwLCAwLjAxNSIsIFwKLSAgICAgICAgICAiLTAuMDYxMjUsIC0wLjA1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMDg3NSwgMC4wMDYyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIVMwIjsKLSAgICAgIHNkZl9jb25kIDogIlMwID09IDEnYjAiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2ODc1LCAwLjA2Mzc1LCAwLjA1MTI1LCAwLjA0NSwgMC4wMzg3NSwgMC4wMjg3NSwgMC4wMiIsIFwKLSAgICAgICAgICAiMC4wOCwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1LCAwLjA0Mzc1LCAwLjA0LCAwLjAzMTI1IiwgXAotICAgICAgICAgICIwLjA5MjUsIDAuMDgxMjUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNDYyNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4wOTg3NSwgMC4wOTM3NSwgMC4wODEyNSwgMC4wNzUsIDAuMDY4NzUsIDAuMDU4NzUsIDAuMDUiLCBcCi0gICAgICAgICAgIjAuMTExMjUsIDAuMSwgMC4wOTM3NSwgMC4wODEyNSwgMC4wNzUsIDAuMDcxMjUsIDAuMDYyNSIsIFwKLSAgICAgICAgICAiMC4xMjc1LCAwLjExNjI1LCAwLjEwMzc1LCAwLjA5NzUsIDAuMDkxMjUsIDAuMDgxMjUsIDAuMDc4NzUiLCBcCi0gICAgICAgICAgIjAuMTM2MjUsIDAuMTMxMjUsIDAuMTE4NzUsIDAuMTEyNSwgMC4xMDYyNSwgMC4wOTYyNSwgMC4wODc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQzNzUsIDAuMDMyNSwgMC4wMiwgMC4wMDc1LCAwLjAwMTI1LCAtMC4wMTUsIC0wLjAyMzc1IiwgXAotICAgICAgICAgICIwLjA1NSwgMC4wNDM3NSwgMC4wMzEyNSwgMC4wMTg3NSwgMC4wMDYyNSwgLTAuMDEsIC0wLjAxODc1IiwgXAotICAgICAgICAgICIwLjA2MTI1LCAwLjA1LCAwLjAzNzUsIDAuMDI1LCAwLjAxODc1LCAwLjAwMjUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICIwLjA3Mzc1LCAwLjA2MjUsIDAuMDUsIDAuMDM3NSwgMC4wMjUsIDAuMDE1LCAwIiwgXAotICAgICAgICAgICIwLjA4LCAwLjA2ODc1LCAwLjA1NjI1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDIxMjUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4wOTYyNSwgMC4wODUsIDAuMDcyNSwgMC4wNiwgMC4wNDc1LCAwLjAzNzUsIDAuMDIyNSIsIFwKLSAgICAgICAgICAiMC4xMDUsIDAuMDkzNzUsIDAuMDgxMjUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNDYyNSwgMC4wMzEyNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRDEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDg5NTQ4MjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA4OTIwNjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA4OTU0ODI7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzNDM5LCAwLjAwMzQwNiwgMC4wMDMzODksIDAuMDAzMzgxLCAwLjAwMzM3NCwgMC4wMDMzODIsIDAuMDAzMzkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDYxLCAwLjAwNjA4MiwgMC4wMDYwNzIsIDAuMDA2MDY3LCAwLjAwNjA2NCwgMC4wMDYwNjksIDAuMDA2MDc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlMwIjsKLSAgICAgIHNkZl9jb25kIDogIlMwID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjA0Mzc1LCAtMC4wMzI1LCAtMC4wMjYyNSwgLTAuMDIsIC0wLjAxMzc1LCAtMC4wMDM3NSwgLTAuMDAxMjUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDE1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDYxMjUsIC0wLjA1NjI1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAyNzUsIC0wLjAxODc1IiwgXAotICAgICAgICAgICItMC4wNzM3NSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDMzNzUsIC0wLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wODYyNSwgLTAuMDc1LCAtMC4wNjg3NSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA0NjI1LCAtMC4wMzc1IiwgXAotICAgICAgICAgICItMC4wOTYyNSwgLTAuMDkxMjUsIC0wLjA4NSwgLTAuMDcyNSwgLTAuMDcyNSwgLTAuMDYyNSwgLTAuMDUzNzUiLCBcCi0gICAgICAgICAgIi0wLjExMTI1LCAtMC4xLCAtMC4wOTM3NSwgLTAuMDg3NSwgLTAuMDgxMjUsIC0wLjA3MTI1LCAtMC4wNjg3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAwNjI1LCAwLjAwNSwgMC4wMTc1LCAwLjAyMzc1LCAwLjAzNjI1LCAwLjA0NjI1LCAwLjA1NSIsIFwKLSAgICAgICAgICAiLTAuMDE3NSwgLTAuMDA2MjUsIDAuMDA2MjUsIDAuMDE4NzUsIDAuMDI1LCAwLjA0MTI1LCAwLjA1IiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDEyNSwgMCwgMC4wMDYyNSwgMC4wMTg3NSwgMC4wMjg3NSwgMC4wMzc1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDI1LCAtMC4wMTI1LCAwLCAwLjAwNjI1LCAwLjAyMjUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAsIDAuMDEsIDAuMDI1IiwgXAotICAgICAgICAgICItMC4wNTI1LCAtMC4wNDEyNSwgLTAuMDI4NzUsIC0wLjAyMjUsIC0wLjAxLCAwLCAwLjAwODc1IiwgXAotICAgICAgICAgICItMC4wNjEyNSwgLTAuMDUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgLTAuMDA4NzUsIDAiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlMwIjsKLSAgICAgIHNkZl9jb25kIDogIlMwID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2ODc1LCAwLjA1NzUsIDAuMDUxMjUsIDAuMDQ1LCAwLjAzODc1LCAwLjAyODc1LCAwLjAyIiwgXAotICAgICAgICAgICIwLjA4LCAwLjA2ODc1LCAwLjA1NjI1LCAwLjA1LCAwLjA0Mzc1LCAwLjAzMzc1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICIwLjA5MjUsIDAuMDgxMjUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNDYyNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4wOTg3NSwgMC4wODc1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNTg3NSwgMC4wNSIsIFwKLSAgICAgICAgICAiMC4xMTEyNSwgMC4xLCAwLjA5Mzc1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNzEyNSwgMC4wNjI1IiwgXAotICAgICAgICAgICIwLjEyNzUsIDAuMTE2MjUsIDAuMTAzNzUsIDAuMDk3NSwgMC4wOTEyNSwgMC4wODEyNSwgMC4wNzg3NSIsIFwKLSAgICAgICAgICAiMC4xMzYyNSwgMC4xMjUsIDAuMTE4NzUsIDAuMTEyNSwgMC4xMDYyNSwgMC4wOTYyNSwgMC4wODc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQzNzUsIDAuMDMyNSwgMC4wMiwgMC4wMTM3NSwgMC4wMDEyNSwgLTAuMDE1LCAtMC4wMjM3NSIsIFwKLSAgICAgICAgICAiMC4wNTUsIDAuMDQzNzUsIDAuMDMxMjUsIDAuMDE4NzUsIDAuMDA2MjUsIC0wLjAwMzc1LCAtMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4wNjEyNSwgMC4wNTYyNSwgMC4wNDM3NSwgMC4wMzEyNSwgMC4wMTg3NSwgMC4wMDI1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiMC4wNzM3NSwgMC4wNjI1LCAwLjA1LCAwLjAzNzUsIDAuMDI1LCAwLjAxNSwgMCIsIFwKLSAgICAgICAgICAiMC4wOCwgMC4wNzUsIDAuMDYyNSwgMC4wNSwgMC4wMzc1LCAwLjAyMTI1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMDk2MjUsIDAuMDg1LCAwLjA3MjUsIDAuMDYsIDAuMDQ3NSwgMC4wMzc1LCAwLjAyMjUiLCBcCi0gICAgICAgICAgIjAuMTA1LCAwLjA5Mzc1LCAwLjA4MTI1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDQ2MjUsIDAuMDM3NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjI2MzI0MjsKLSAgICBmdW5jdGlvbiA6ICJOMzAiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5vbl91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcmlzaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEyODM5NCwgMC4xNTI4NTUsIDAuMjkxNjUsIDAuNDE0MjA2LCAwLjU3NzY5LCAwLjkwNDc1LCAxLjEwOTE0IiwgXAotICAgICAgICAgICIwLjEzODU3NCwgMC4xNjMwMzYsIDAuMzAxODA4LCAwLjQyNDM4MywgMC41ODc4MzUsIDAuOTE0OTIxLCAxLjExOTM0IiwgXAotICAgICAgICAgICIwLjE1MTM4OSwgMC4xNzU4NTIsIDAuMzE0NjEyLCAwLjQzNzIwOCwgMC42MDA3MjcsIDAuOTI3NzQ1LCAxLjEzMjEzIiwgXAotICAgICAgICAgICIwLjE2MzM2NywgMC4xODc4MzcsIDAuMzI2NjAzLCAwLjQ0OTE4OSwgMC42MTI2MzUsIDAuOTM5NzA4LCAxLjE0NDEyIiwgXAotICAgICAgICAgICIwLjE3Mzk5NiwgMC4xOTg0NzEsIDAuMzM3MjUxLCAwLjQ1OTgyNSwgMC42MjMyODQsIDAuOTUwMzM1LCAxLjE1NDc0IiwgXAotICAgICAgICAgICIwLjE4ODk4OSwgMC4yMTM0NywgMC4zNTIyNzUsIDAuNDc0ODc0LCAwLjYzODMxNywgMC45NjUyNywgMS4xNjk3MSIsIFwKLSAgICAgICAgICAiMC4yMDAzODYsIDAuMjI0ODY2LCAwLjM2MzY1LCAwLjQ4NjIwOSwgMC42NDk2OTQsIDAuOTc2NjU1LCAxLjE4MTA2Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5MTU2OSwgMC4xNDE1OTcsIDAuNDI3ODcyLCAwLjY3OTgxOCwgMS4wMTc4MiwgMS42ODk1NCwgMi4xMTAyOCIsIFwKLSAgICAgICAgICAiMC4wOTE1NjMsIDAuMTQxNTg1LCAwLjQyNzgyNSwgMC42Nzk3NTQsIDEuMDE3NzcsIDEuNjg5MzgsIDIuMTEwMTkiLCBcCi0gICAgICAgICAgIjAuMDkxNTY3LCAwLjE0MTU5MiwgMC40Mjc3NiwgMC42NzkzMTYsIDEuMDE3OTMsIDEuNjg5NDgsIDIuMTEwMjQiLCBcCi0gICAgICAgICAgIjAuMDkxNTY2LCAwLjE0MTU5MiwgMC40Mjc3NzcsIDAuNjc5NzY5LCAxLjAxNzc1LCAxLjY4OTUsIDIuMTEwMjQiLCBcCi0gICAgICAgICAgIjAuMDkxNTYxLCAwLjE0MTU4OCwgMC40Mjc3OTUsIDAuNjc5NzU1LCAxLjAxNzc1LCAxLjY4OTM0LCAyLjExMDE1IiwgXAotICAgICAgICAgICIwLjA5MTU2OSwgMC4xNDE1OTEsIDAuNDI3ODI0LCAwLjY4MDc1MSwgMS4wMTYxNiwgMS42ODk4OSwgMi4xMTA4NCIsIFwKLSAgICAgICAgICAiMC4wOTE0NzYsIDAuMTQxNTkzLCAwLjQyNzcwOSwgMC42ODA0OTMsIDEuMDE1ODEsIDEuNjkxODIsIDIuMTExMTIiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTQ2OTQ5LCAwLjE3MTczLCAwLjMxMTk5LCAwLjQzNTY0NywgMC42MDA0OTEsIDAuOTMwMjIzLCAxLjEzNjMxIiwgXAotICAgICAgICAgICIwLjE1NzE0NSwgMC4xODE5MjksIDAuMzIyMTQsIDAuNDQ1ODQyLCAwLjYxMDczNiwgMC45NDA0MTYsIDEuMTQ2NDkiLCBcCi0gICAgICAgICAgIjAuMTY5OTg0LCAwLjE5NDc2NSwgMC4zMzQ5OCwgMC40NTg2MjksIDAuNjIzNTY3LCAwLjk1MzIxMiwgMS4xNTkzMiIsIFwKLSAgICAgICAgICAiMC4xODE5OTksIDAuMjA2Nzc4LCAwLjM0Njk5MiwgMC40NzA2NDIsIDAuNjM1NTc3LCAwLjk2NTIyMSwgMS4xNzEzNCIsIFwKLSAgICAgICAgICAiMC4xOTI4NTEsIDAuMjE3NjM3LCAwLjM1Nzg2MSwgMC40ODE1MjEsIDAuNjQ2MzUsIDAuOTc2MTE0LCAxLjE4MjIiLCBcCi0gICAgICAgICAgIjAuMjA3OTIsIDAuMjMyNzEsIDAuMzcyOTM5LCAwLjQ5NjYyMywgMC42NjE0MTQsIDAuOTkxMTgzLCAxLjE5NzI3IiwgXAotICAgICAgICAgICIwLjIxOTYxMSwgMC4yNDQzOTYsIDAuMzg0NjA0LCAwLjUwODI3MywgMC42NzMxMDMsIDEuMDAyODcsIDEuMjA4OTUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDkwMDg5LCAwLjEzOTQ1NSwgMC40MjEyMzYsIDAuNjcxMzgyLCAxLjAwMjI3LCAxLjY2NTU0LCAyLjA4MDE5IiwgXAotICAgICAgICAgICIwLjA5MDIwMSwgMC4xMzk0MTksIDAuNDIxNTAyLCAwLjY3MTM3OCwgMS4wMDE4NCwgMS42NjUxMiwgMi4wODU2NSIsIFwKLSAgICAgICAgICAiMC4wOTAxMDUsIDAuMTM5MzkyLCAwLjQyMTE2OSwgMC42NzExMzIsIDEuMDAwOTQsIDEuNjY5NDYsIDIuMDgyMTUiLCBcCi0gICAgICAgICAgIjAuMDkwMDkyLCAwLjEzOTM4LCAwLjQyMTE0OCwgMC42NzEzODYsIDEuMDAxMTUsIDEuNjY5NDEsIDIuMDgyMjkiLCBcCi0gICAgICAgICAgIjAuMDkwMDYxLCAwLjEzOTY2OCwgMC40MjE5NTksIDAuNjcwMzgxLCAxLjAwMzczLCAxLjY2NDgyLCAyLjA3OTgxIiwgXAotICAgICAgICAgICIwLjA5MDA3MywgMC4xMzkyMDQsIDAuNDIxOTM4LCAwLjY2OTc1OCwgMS4wMDQwMiwgMS42NjQ4MSwgMi4wNzk2MiIsIFwKLSAgICAgICAgICAiMC4wOTAxNDEsIDAuMTM5NjgzLCAwLjQyMTk5OCwgMC42NzA0NjMsIDEuMDA0MDEsIDEuNjY0ODcsIDIuMDc5ODIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA3MTY0LCAwLjAwNzE1MiwgMC4wMDcxMDcsIDAuMDA3MDkyLCAwLjAwNzA4MywgMC4wMDcwNzQsIDAuMDA3MDcxIiwgXAotICAgICAgICAgICIwLjAwNzEzNCwgMC4wMDcxMjIsIDAuMDA3MDc3LCAwLjAwNzA2MiwgMC4wMDcwNTIsIDAuMDA3MDQ2LCAwLjAwNzA0MSIsIFwKLSAgICAgICAgICAiMC4wMDcxMTgsIDAuMDA3MTA3LCAwLjAwNzA2MywgMC4wMDcwNDgsIDAuMDA3MDM4LCAwLjAwNzAyOCwgMC4wMDcwMjYiLCBcCi0gICAgICAgICAgIjAuMDA3MTEzLCAwLjAwNzEwMiwgMC4wMDcwNTgsIDAuMDA3MDQzLCAwLjAwNzAzMywgMC4wMDcwMjMsIDAuMDA3MDIiLCBcCi0gICAgICAgICAgIjAuMDA3MTMyLCAwLjAwNzEyMiwgMC4wMDcwOCwgMC4wMDcwNjQsIDAuMDA3MDU0LCAwLjAwNzA0NSwgMC4wMDcwNDEiLCBcCi0gICAgICAgICAgIjAuMDA3MTQ5LCAwLjAwNzE0LCAwLjAwNzEsIDAuMDA3MDg0LCAwLjAwNzA3MywgMC4wMDcwNjMsIDAuMDA3MDU5IiwgXAotICAgICAgICAgICIwLjAwNzE4MSwgMC4wMDcxNzMsIDAuMDA3MTMzLCAwLjAwNzExNywgMC4wMDcxMDYsIDAuMDA3MDk0LCAwLjAwNzA5MSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNzY1OCwgMC4wMDc2NjcsIDAuMDA3NjgsIDAuMDA3NjgyLCAwLjAwNzY4NCwgMC4wMDc2ODYsIDAuMDA3Njg2IiwgXAotICAgICAgICAgICIwLjAwNzYyOSwgMC4wMDc2MzgsIDAuMDA3NjUxLCAwLjAwNzY1NCwgMC4wMDc2NTUsIDAuMDA3NjU3LCAwLjAwNzY1NyIsIFwKLSAgICAgICAgICAiMC4wMDc2MjUsIDAuMDA3NjM0LCAwLjAwNzY0NywgMC4wMDc2NSwgMC4wMDc2NTIsIDAuMDA3NjUzLCAwLjAwNzY1NCIsIFwKLSAgICAgICAgICAiMC4wMDc2NDYsIDAuMDA3NjU1LCAwLjAwNzY2NywgMC4wMDc2NywgMC4wMDc2NzIsIDAuMDA3Njc0LCAwLjAwNzY3NCIsIFwKLSAgICAgICAgICAiMC4wMDc2NzksIDAuMDA3Njg4LCAwLjAwNzcwMSwgMC4wMDc3MDMsIDAuMDA3NzA1LCAwLjAwNzcwNywgMC4wMDc3MDciLCBcCi0gICAgICAgICAgIjAuMDA3NzExLCAwLjAwNzcyLCAwLjAwNzczMiwgMC4wMDc3MzUsIDAuMDA3NzM2LCAwLjAwNzczOCwgMC4wMDc3MzgiLCBcCi0gICAgICAgICAgIjAuMDA3NzY5LCAwLjAwNzc3NywgMC4wMDc3OSwgMC4wMDc3OTIsIDAuMDA3Nzk0LCAwLjAwNzc5NSwgMC4wMDc3OTYiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFMwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE2MTYyOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTYxNTUzOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTYxNjI7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA1NTM0LCAwLjAwNTUxMywgMC4wMDU1MDQsIDAuMDA1NTAyLCAwLjAwNTUxNCwgMC4wMDU1MzEsIDAuMDA1NTUyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA2OTE4LCAwLjAwNjg2NSwgMC4wMDY4NDksIDAuMDA2ODU1LCAwLjAwNjg3NiwgMC4wMDY5MjMsIDAuMDA2OTYzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEMCZEMSI7Ci0gICAgICBzZGZfY29uZCA6ICJEMF9FUV8wX0FOX0QxX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDM3NSwgLTAuMDI2MjUsIC0wLjAyLCAtMC4wMTM3NSwgLTAuMDA3NSwgMC4wMDI1LCAwLjAwNSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMDg3NSwgMCIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMjEyNSwgLTAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDY3NSwgLTAuMDYyNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzM3NSwgLTAuMDI1IiwgXAotICAgICAgICAgICItMC4wOCwgLTAuMDc1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjA0NjI1LCAtMC4wMzc1IiwgXAotICAgICAgICAgICItMC4wOTYyNSwgLTAuMDg1LCAtMC4wNzg3NSwgLTAuMDcyNSwgLTAuMDY2MjUsIC0wLjA1NjI1LCAtMC4wNTM3NSIsIFwKLSAgICAgICAgICAiLTAuMTA1LCAtMC4xLCAtMC4wOTM3NSwgLTAuMDgxMjUsIC0wLjA4MTI1LCAtMC4wNzEyNSwgLTAuMDYyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAsIDAuMDExMjUsIDAuMDIzNzUsIDAuMDMsIDAuMDQyNSwgMC4wNTI1LCAwLjA2NzUiLCBcCi0gICAgICAgICAgIi0wLjAwNSwgMCwgMC4wMTI1LCAwLjAyNSwgMC4wMzEyNSwgMC4wNDc1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICItMC4wMTc1LCAtMC4wMDYyNSwgMC4wMDYyNSwgMC4wMTI1LCAwLjAyNSwgMC4wMzUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAuMDA2MjUsIDAuMDEyNSwgMC4wMjg3NSwgMC4wMzc1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDI1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMC4wMDYyNSwgMC4wMTYyNSwgMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjA0NjI1LCAtMC4wMzUsIC0wLjAyODc1LCAtMC4wMTYyNSwgLTAuMDEsIDAuMDA2MjUsIDAuMDE1IiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMDI1LCAwLjAwNjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIkQwJiFEMSI7Ci0gICAgICBzZGZfY29uZCA6ICJEMF9FUV8xX0FOX0QxX0VRXzAgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDE4NzUsIC0wLjAwNzUsIDAuMDA1LCAwLjAxNzUsIDAuMDIzNzUsIDAuMDQsIDAuMDQ4NzUiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAuMDA2MjUsIDAuMDEyNSwgMC4wMjg3NSwgMC4wMzc1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDMxMjUsIC0wLjAxODc1LCAtMC4wMDYyNSwgMC4wMDYyNSwgMC4wMTYyNSwgMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLjAxLCAwLjAxODc1IiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA0Mzc1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMTI1LCAtMC4wMDI1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wNjUsIC0wLjA1Mzc1LCAtMC4wNDc1LCAtMC4wMzUsIC0wLjAyMjUsIC0wLjAxMjUsIC0wLjAwMzc1IiwgXAotICAgICAgICAgICItMC4wNzM3NSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA0Mzc1LCAtMC4wMzEyNSwgLTAuMDIxMjUsIC0wLjAxMjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wNTYyNSwgLTAuMDQ1LCAtMC4wMzg3NSwgLTAuMDMyNSwgLTAuMDI2MjUsIC0wLjAxNjI1LCAtMC4wMTM3NSIsIFwKLSAgICAgICAgICAiLTAuMDY3NSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDI3NSwgLTAuMDI1IiwgXAotICAgICAgICAgICItMC4wNzM3NSwgLTAuMDY4NzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDQsIC0wLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wODYyNSwgLTAuMDc1LCAtMC4wNjg3NSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA0NjI1LCAtMC4wNDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDkyNSwgLTAuMDgxMjUsIC0wLjA3NSwgLTAuMDY4NzUsIC0wLjA2MjUsIC0wLjA1ODc1LCAtMC4wNSIsIFwKLSAgICAgICAgICAiLTAuMTAyNSwgLTAuMDkxMjUsIC0wLjA4NSwgLTAuMDc4NzUsIC0wLjA3MjUsIC0wLjA2MjUsIC0wLjA2IiwgXAotICAgICAgICAgICItMC4xMTEyNSwgLTAuMSwgLTAuMDkzNzUsIC0wLjA4NzUsIC0wLjA4MTI1LCAtMC4wNzEyNSwgLTAuMDY4NzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEMCZEMSI7Ci0gICAgICBzZGZfY29uZCA6ICJEMF9FUV8wX0FOX0QxX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDYyNSwgMC4wNTEyNSwgMC4wNDUsIDAuMDM4NzUsIDAuMDMyNSwgMC4wMjI1LCAwLjAxMzc1IiwgXAotICAgICAgICAgICIwLjA3Mzc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzM3NSwgMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMDg2MjUsIDAuMDc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDUsIDAuMDQsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiMC4wOTg3NSwgMC4wODc1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1MjUsIDAuMDUiLCBcCi0gICAgICAgICAgIjAuMTA1LCAwLjEsIDAuMDg3NSwgMC4wODEyNSwgMC4wNzUsIDAuMDY1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICIwLjEyMTI1LCAwLjExNjI1LCAwLjEwMzc1LCAwLjA5NzUsIDAuMDkxMjUsIDAuMDgxMjUsIDAuMDcyNSIsIFwKLSAgICAgICAgICAiMC4xMzYyNSwgMC4xMjUsIDAuMTE4NzUsIDAuMTA2MjUsIDAuMSwgMC4wOTYyNSwgMC4wODc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM3NSwgMC4wMjYyNSwgMC4wMTM3NSwgMC4wMDEyNSwgLTAuMDA1LCAtMC4wMjEyNSwgLTAuMDMiLCBcCi0gICAgICAgICAgIjAuMDQ4NzUsIDAuMDM3NSwgMC4wMjUsIDAuMDEyNSwgMCwgLTAuMDEsIC0wLjAyNSIsIFwKLSAgICAgICAgICAiMC4wNjEyNSwgMC4wNSwgMC4wMzc1LCAwLjAyNSwgMC4wMTI1LCAtMC4wMDM3NSwgLTAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4wNjc1LCAwLjA1NjI1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDI1LCAwLjAwODc1LCAwIiwgXAotICAgICAgICAgICIwLjA4LCAwLjA2ODc1LCAwLjA1NjI1LCAwLjA0Mzc1LCAwLjAzMTI1LCAwLjAyMTI1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICIwLjA5NjI1LCAwLjA4NSwgMC4wNzI1LCAwLjA2LCAwLjA0NzUsIDAuMDMxMjUsIDAuMDIyNSIsIFwKLSAgICAgICAgICAiMC4xMDUsIDAuMDkzNzUsIDAuMDgxMjUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNDYyNSwgMC4wMzEyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiRDAmIUQxIjsKLSAgICAgIHNkZl9jb25kIDogIkQwX0VRXzFfQU5fRDFfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTYyNSwgMC4wNDUsIDAuMDMyNSwgMC4wMiwgMC4wMTM3NSwgLTAuMDAyNSwgLTAuMDE3NSIsIFwKLSAgICAgICAgICAiMC4wNjc1LCAwLjA1NjI1LCAwLjA0Mzc1LCAwLjAzMTI1LCAwLjAxODc1LCAwLjAwODc1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiMC4wOCwgMC4wNjg3NSwgMC4wNTYyNSwgMC4wNDM3NSwgMC4wMzEyNSwgMC4wMTUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMDg2MjUsIDAuMDc1LCAwLjA2MjUsIDAuMDUsIDAuMDQzNzUsIDAuMDI3NSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4wOTI1LCAwLjA4NzUsIDAuMDc1LCAwLjA2MjUsIDAuMDUsIDAuMDMzNzUsIDAuMDI1IiwgXAotICAgICAgICAgICIwLjEwODc1LCAwLjA5NzUsIDAuMDg1LCAwLjA3MjUsIDAuMDYsIDAuMDQzNzUsIDAuMDM1IiwgXAotICAgICAgICAgICIwLjExNzUsIDAuMTA2MjUsIDAuMDkzNzUsIDAuMDgxMjUsIDAuMDY4NzUsIDAuMDUyNSwgMC4wNDM3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4MTI1LCAwLjA3LCAwLjA2Mzc1LCAwLjA1NzUsIDAuMDUxMjUsIDAuMDQxMjUsIDAuMDMyNSIsIFwKLSAgICAgICAgICAiMC4wOTI1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1MjUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMTA1LCAwLjA5Mzc1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNTg3NSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiMC4xMTEyNSwgMC4xLCAwLjA5Mzc1LCAwLjA4NzUsIDAuMDgxMjUsIDAuMDcxMjUsIDAuMDYyNSIsIFwKLSAgICAgICAgICAiMC4xMTc1LCAwLjEwNjI1LCAwLjEsIDAuMDkzNzUsIDAuMDg3NSwgMC4wNzc1LCAwLjA2ODc1IiwgXAotICAgICAgICAgICIwLjEyNzUsIDAuMTE2MjUsIDAuMTEsIDAuMTAzNzUsIDAuMDk3NSwgMC4wODc1LCAwLjA3ODc1IiwgXAotICAgICAgICAgICIwLjEzNjI1LCAwLjEyNSwgMC4xMTg3NSwgMC4xMDYyNSwgMC4xLCAwLjA5NjI1LCAwLjA4NzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogTURGRkhRWDIgKgotICogLS0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKE1ERkZIUVgyKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuNDc3MjA0OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIGZmIChOMzAsUUJJTlQpIHsKLSAgICBuZXh0X3N0YXRlIDogIigoUzAgRDEpICsgKCFTMCBEMCkpIjsKLSAgICBjbG9ja2VkX29uIDogIkNLIjsKLSAgfQotICBwaW4oQ0spICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYyNjQyODsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MjY0Mjg7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjI2MzIzOwotICAgIGNsb2NrIDogdHJ1ZTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDMzODksIDAuMDAzMzY0LCAwLjAwMzM0OCwgMC4wMDMzNSwgMC4wMDMzNjQsIDAuMDAzMzg1LCAwLjAwMzQwMyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNzQwOSwgMC4wMDczODgsIDAuMDA3Mzg1LCAwLjAwNzM5NiwgMC4wMDc0MTgsIDAuMDA3NDYsIDAuMDA3NDk5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRDAmIUQxJiFTMCI7Ci0gICAgICBzZGZfY29uZCA6ICJEMF9FUV8wX0FOX0QxX0VRXzBfQU5fUzBfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjEzMjM4OCwgMC4xNDI2MzksIDAuMTU1NDE4LCAwLjE2NzQyNCwgMC4xNzgyNjEsIDAuMTkzMzA5LCAwLjIwNDk4NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDkzNTExLCAwLjEwMzQ2NSwgMC4xMTU3OTcsIDAuMTI3MzkzLCAwLjEzNzY3NywgMC4xNTE0MzMsIDAuMTYyMTIyIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihEMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwODcyODk7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwODY5NTc3OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDg3Mjg5OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzYxNiwgMC4wMDM1ODMsIDAuMDAzNTY2LCAwLjAwMzU1OCwgMC4wMDM1NTIsIDAuMDAzNTU3LCAwLjAwMzU2NiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNTksIDAuMDA1ODgyLCAwLjAwNTg3MSwgMC4wMDU4NjgsIDAuMDA1ODY2LCAwLjAwNTg3LCAwLjAwNTg3NiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhUzAiOwotICAgICAgc2RmX2NvbmQgOiAiUzAgPT0gMSdiMCI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDQzNzUsIC0wLjAzODc1LCAtMC4wMjYyNSwgLTAuMDIsIC0wLjAxMzc1LCAtMC4wMSwgLTAuMDAxMjUiLCBcCi0gICAgICAgICAgIi0wLjA1NSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAxNSwgLTAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDYxMjUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAyNzUsIC0wLjAxODc1IiwgXAotICAgICAgICAgICItMC4wNzM3NSwgLTAuMDY4NzUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjA0LCAtMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDg2MjUsIC0wLjA3NSwgLTAuMDY4NzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNDYyNSwgLTAuMDQzNzUiLCBcCi0gICAgICAgICAgIi0wLjA5NjI1LCAtMC4wOTEyNSwgLTAuMDg1LCAtMC4wNzg3NSwgLTAuMDcyNSwgLTAuMDYyNSwgLTAuMDUzNzUiLCBcCi0gICAgICAgICAgIi0wLjExMTI1LCAtMC4xLCAtMC4wOTM3NSwgLTAuMDg3NSwgLTAuMDgxMjUsIC0wLjA3MTI1LCAtMC4wNjg3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAwNjI1LCAwLjAwNSwgMC4wMTc1LCAwLjAzLCAwLjAzNjI1LCAwLjA1MjUsIDAuMDYxMjUiLCBcCi0gICAgICAgICAgIi0wLjAxMTI1LCAwLCAwLjAwNjI1LCAwLjAxODc1LCAwLjAyNSwgMC4wNDEyNSwgMC4wNSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxMjUsIDAsIDAuMDEyNSwgMC4wMTg3NSwgMC4wMjg3NSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAxODc1LCAtMC4wMTI1LCAwLCAwLjAxMjUsIDAuMDIyNSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAsIDAuMDE2MjUsIDAuMDI1IiwgXAotICAgICAgICAgICItMC4wNTI1LCAtMC4wNDEyNSwgLTAuMDI4NzUsIC0wLjAxNjI1LCAtMC4wMSwgMCwgMC4wMTUiLCBcCi0gICAgICAgICAgIi0wLjA1NSwgLTAuMDUsIC0wLjAzNzUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAwODc1LCAwLjAwNjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhUzAiOwotICAgICAgc2RmX2NvbmQgOiAiUzAgPT0gMSdiMCI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc1LCAwLjA2Mzc1LCAwLjA1MTI1LCAwLjA0NSwgMC4wMzg3NSwgMC4wMjg3NSwgMC4wMjYyNSIsIFwKLSAgICAgICAgICAiMC4wOCwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1LCAwLjA0LCAwLjAzMTI1IiwgXAotICAgICAgICAgICIwLjA5MjUsIDAuMDgxMjUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNDYyNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4xMDUsIDAuMDkzNzUsIDAuMDgxMjUsIDAuMDc1LCAwLjA2ODc1LCAwLjA1ODc1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICIwLjExMTI1LCAwLjEsIDAuMDkzNzUsIDAuMDg3NSwgMC4wODEyNSwgMC4wNzEyNSwgMC4wNjI1IiwgXAotICAgICAgICAgICIwLjEyNzUsIDAuMTE2MjUsIDAuMTEsIDAuMDk3NSwgMC4wOTEyNSwgMC4wODc1LCAwLjA3ODc1IiwgXAotICAgICAgICAgICIwLjE0MjUsIDAuMTMxMjUsIDAuMTE4NzUsIDAuMTEyNSwgMC4xMDYyNSwgMC4wOTYyNSwgMC4wODc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQzNzUsIDAuMDMyNSwgMC4wMiwgMC4wMDc1LCAwLjAwMTI1LCAtMC4wMTUsIC0wLjAyMzc1IiwgXAotICAgICAgICAgICIwLjA1NSwgMC4wNDM3NSwgMC4wMzEyNSwgMC4wMTg3NSwgMC4wMDYyNSwgLTAuMDAzNzUsIC0wLjAxODc1IiwgXAotICAgICAgICAgICIwLjA2MTI1LCAwLjA1NjI1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDE4NzUsIDAuMDAyNSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMDczNzUsIDAuMDYyNSwgMC4wNSwgMC4wMzc1LCAwLjAyNSwgMC4wMTUsIDAiLCBcCi0gICAgICAgICAgIjAuMDgsIDAuMDc1LCAwLjA1NjI1LCAwLjA1LCAwLjAzNzUsIDAuMDIxMjUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4wOTYyNSwgMC4wODUsIDAuMDcyNSwgMC4wNiwgMC4wNDc1LCAwLjAzNzUsIDAuMDIyNSIsIFwKLSAgICAgICAgICAiMC4xMDUsIDAuMDkzNzUsIDAuMDgxMjUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNDYyNSwgMC4wMzEyNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRDEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDg4ODMzNzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA4ODU5MzI7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwODg4MzM3OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzMzNSwgMC4wMDMzMDMsIDAuMDAzMjg2LCAwLjAwMzI3NywgMC4wMDMyNzIsIDAuMDAzMjg3LCAwLjAwMzI4NiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNjE0OSwgMC4wMDYxMzEsIDAuMDA2MTIsIDAuMDA2MTE2LCAwLjAwNjExNCwgMC4wMDYxMTksIDAuMDA2MTIyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlMwIjsKLSAgICAgIHNkZl9jb25kIDogIlMwID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjA0Mzc1LCAtMC4wMzI1LCAtMC4wMjYyNSwgLTAuMDIsIC0wLjAxMzc1LCAtMC4wMDM3NSwgLTAuMDAxMjUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDE1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDYxMjUsIC0wLjA1NjI1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAyNzUsIC0wLjAxODc1IiwgXAotICAgICAgICAgICItMC4wNzM3NSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDMzNzUsIC0wLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wOCwgLTAuMDc1LCAtMC4wNjg3NSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA0NjI1LCAtMC4wMzc1IiwgXAotICAgICAgICAgICItMC4wOTYyNSwgLTAuMDkxMjUsIC0wLjA3ODc1LCAtMC4wNzI1LCAtMC4wNzI1LCAtMC4wNjI1LCAtMC4wNTM3NSIsIFwKLSAgICAgICAgICAiLTAuMTExMjUsIC0wLjEsIC0wLjA5Mzc1LCAtMC4wODc1LCAtMC4wODEyNSwgLTAuMDcxMjUsIC0wLjA2ODc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDA2MjUsIDAuMDA1LCAwLjAxNzUsIDAuMDIzNzUsIDAuMDM2MjUsIDAuMDQ2MjUsIDAuMDU1IiwgXAotICAgICAgICAgICItMC4wMTEyNSwgLTAuMDA2MjUsIDAuMDA2MjUsIDAuMDE4NzUsIDAuMDI1LCAwLjA0MTI1LCAwLjA1IiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDEyNSwgMCwgMC4wMDYyNSwgMC4wMTg3NSwgMC4wMjg3NSwgMC4wMzc1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDE4NzUsIC0wLjAxMjUsIDAsIDAuMDA2MjUsIDAuMDIyNSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDMxMjUsIC0wLjAxODc1LCAtMC4wMDYyNSwgMCwgMC4wMTYyNSwgMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjA1MjUsIC0wLjA0MTI1LCAtMC4wMjg3NSwgLTAuMDE2MjUsIC0wLjAxLCAwLCAwLjAxNSIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNSwgLTAuMDM3NSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDA4NzUsIDAuMDA2MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlMwIjsKLSAgICAgIHNkZl9jb25kIDogIlMwID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2ODc1LCAwLjA2Mzc1LCAwLjA1MTI1LCAwLjA0NSwgMC4wMzg3NSwgMC4wMjg3NSwgMC4wMiIsIFwKLSAgICAgICAgICAiMC4wOCwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1LCAwLjA0Mzc1LCAwLjA0LCAwLjAzMTI1IiwgXAotICAgICAgICAgICIwLjA5MjUsIDAuMDgxMjUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNDYyNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4wOTg3NSwgMC4wOTM3NSwgMC4wODEyNSwgMC4wNzUsIDAuMDY4NzUsIDAuMDU4NzUsIDAuMDUiLCBcCi0gICAgICAgICAgIjAuMTExMjUsIDAuMSwgMC4wOTM3NSwgMC4wODEyNSwgMC4wNzUsIDAuMDcxMjUsIDAuMDYyNSIsIFwKLSAgICAgICAgICAiMC4xMjc1LCAwLjExNjI1LCAwLjEwMzc1LCAwLjA5NzUsIDAuMDkxMjUsIDAuMDgxMjUsIDAuMDc4NzUiLCBcCi0gICAgICAgICAgIjAuMTQyNSwgMC4xMzEyNSwgMC4xMTg3NSwgMC4xMTI1LCAwLjEwNjI1LCAwLjA5NjI1LCAwLjA4NzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDM3NSwgMC4wMzg3NSwgMC4wMiwgMC4wMTM3NSwgMC4wMDEyNSwgLTAuMDE1LCAtMC4wMjM3NSIsIFwKLSAgICAgICAgICAiMC4wNTUsIDAuMDQzNzUsIDAuMDMxMjUsIDAuMDE4NzUsIDAuMDA2MjUsIC0wLjAwMzc1LCAtMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4wNjc1LCAwLjA1NjI1LCAwLjA0Mzc1LCAwLjAzMTI1LCAwLjAxODc1LCAwLjAwMjUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICIwLjA3Mzc1LCAwLjA2MjUsIDAuMDUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMTUsIDAiLCBcCi0gICAgICAgICAgIjAuMDg2MjUsIDAuMDc1LCAwLjA2MjUsIDAuMDUsIDAuMDM3NSwgMC4wMjEyNSwgMC4wMTI1IiwgXAotICAgICAgICAgICIwLjA5NjI1LCAwLjA4NSwgMC4wNzI1LCAwLjA2LCAwLjA0NzUsIDAuMDM3NSwgMC4wMjI1IiwgXAotICAgICAgICAgICIwLjEwNSwgMC4wOTM3NSwgMC4wODEyNSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA0NjI1LCAwLjAzNzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFEpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC41MjA2NjY7Ci0gICAgZnVuY3Rpb24gOiAiTjMwIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBub25fdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJpc2luZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTM3NzMsIDAuMjE1NzE3LCAwLjI5NzA5MiwgMC4zOTg3MjcsIDAuNTAwNjE3LCAwLjYwMjI5MywgMC43MDQxMjIiLCBcCi0gICAgICAgICAgIjAuMTIzOTkzLCAwLjIyNTkzNCwgMC4zMDczMTQsIDAuNDA5MDY4LCAwLjUxMDg0NCwgMC42MTI1MTgsIDAuNzE0MzUiLCBcCi0gICAgICAgICAgIjAuMTM2NzQxLCAwLjIzODY5NSwgMC4zMjAwOCwgMC40MjE4NDksIDAuNTIzNTM3LCAwLjYyNTM2NSwgMC43MjcxMjEiLCBcCi0gICAgICAgICAgIjAuMTQ4NzIxLCAwLjI1MDY3NywgMC4zMzIwNTIsIDAuNDMzODUsIDAuNTM1NTc3LCAwLjYzNzI1MywgMC43MzkwODciLCBcCi0gICAgICAgICAgIjAuMTU5MjgsIDAuMjYxMjQyLCAwLjM0MjYxOCwgMC40NDQ0MTYsIDAuNTQ2MTQ0LCAwLjY0NzgxNiwgMC43NDk2NTkiLCBcCi0gICAgICAgICAgIjAuMTc0MzE4LCAwLjI3NjI4OCwgMC4zNTc2NTksIDAuNDU5NDEyLCAwLjU2MTExLCAwLjY2Mjk1LCAwLjc2NDcxOCIsIFwKLSAgICAgICAgICAiMC4xODU2OSwgMC4yODc2NzIsIDAuMzY5MDUsIDAuNDcwODAxLCAwLjU3MjQ5OSwgMC42NzQzNTEsIDAuNzc2MTE4Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1MTA0NywgMC4yNTc5ODYsIDAuNDI2MzU2LCAwLjYzNTQ3MSwgMC44NDY3MzMsIDEuMDU2NzcsIDEuMjY3MSIsIFwKLSAgICAgICAgICAiMC4wNTEwNjYsIDAuMjU3OTU4LCAwLjQyNjM1NywgMC42MzQ2MjksIDAuODQ2NzQzLCAxLjA1NTM5LCAxLjI2NzExIiwgXAotICAgICAgICAgICIwLjA1MTA1MiwgMC4yNTc5OCwgMC40MjYzNDgsIDAuNjM2NTIsIDAuODQ2NTksIDEuMDU2OTMsIDEuMjY3MTMiLCBcCi0gICAgICAgICAgIjAuMDUxMDQ2LCAwLjI1Nzk4NCwgMC40MjYzNDIsIDAuNjM1MDQ2LCAwLjg0NjcyMSwgMS4wNTUzOCwgMS4yNjcxMSIsIFwKLSAgICAgICAgICAiMC4wNTEwMzQsIDAuMjU3OTgxLCAwLjQyNjMzMSwgMC42MzUzMzIsIDAuODQ2NzI1LCAxLjA1NTQzLCAxLjI2NzEzIiwgXAotICAgICAgICAgICIwLjA1MTA2NSwgMC4yNTc5OTQsIDAuNDI2MzE1LCAwLjYzNjQ2MSwgMC44NDY1NjUsIDEuMDU2OTQsIDEuMjY3MTciLCBcCi0gICAgICAgICAgIjAuMDUxMDY2LCAwLjI1ODI2NSwgMC40MjYyNDQsIDAuNjM2MzU4LCAwLjg0NjE1MSwgMS4wNTQ5NSwgMS4yNjQ3MyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMzIzOTIsIDAuMjM2MjgsIDAuMzE5MDIzLCAwLjQyMjQ2NywgMC41MjU4MjksIDAuNjI5MjMyLCAwLjczMjU5NCIsIFwKLSAgICAgICAgICAiMC4xNDI2MzksIDAuMjQ2NTI2LCAwLjMyOTI2NSwgMC40MzI2OTUsIDAuNTM2MDY0LCAwLjYzOTQ4NSwgMC43NDI4NjYiLCBcCi0gICAgICAgICAgIjAuMTU1NDE4LCAwLjI1OTI5OSwgMC4zNDIwMzYsIDAuNDQ1NDQ2LCAwLjU0ODg3MSwgMC42NTIyMzQsIDAuNzU1NjgiLCBcCi0gICAgICAgICAgIjAuMTY3NDI2LCAwLjI3MTMwMywgMC4zNTQwNDMsIDAuNDU3NDQzLCAwLjU2MDkwNiwgMC42NjQyNDMsIDAuNzY3Njg1IiwgXAotICAgICAgICAgICIwLjE3ODI2MSwgMC4yODIxNSwgMC4zNjQ5MywgMC40NjgzMzUsIDAuNTcxNjk4LCAwLjY3NTEwMiwgMC43Nzg0NjkiLCBcCi0gICAgICAgICAgIjAuMTkzMzExLCAwLjI5NzIwNSwgMC4zNzk5NDcsIDAuNDgzMzg2LCAwLjU4Njc0OSwgMC42OTAxNTQsIDAuNzkzNTMzIiwgXAotICAgICAgICAgICIwLjIwNDk4NywgMC4zMDg4NjcsIDAuMzkxNjQsIDAuNDk1MDM0LCAwLjU5ODQwMSwgMC43MDE4MjYsIDAuODA1MjA4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1MDc0MSwgMC4yNTc5NzYsIDAuNDI1MDg5LCAwLjYzNDA1NywgMC44NDU2MjEsIDEuMDU1NTYsIDEuMjY1MzgiLCBcCi0gICAgICAgICAgIjAuMDUwNzQyLCAwLjI1Nzk4NiwgMC40MjQ5MywgMC42MzM4NTksIDAuODQ1NTUyLCAxLjA1NTU1LCAxLjI2NTYxIiwgXAotICAgICAgICAgICIwLjA1MDc0MiwgMC4yNTczNTQsIDAuNDI1NTI0LCAwLjYzNTYxMywgMC44NDU1MzIsIDEuMDU1NSwgMS4yNjE3MyIsIFwKLSAgICAgICAgICAiMC4wNTA3NDIsIDAuMjU3NDUzLCAwLjQyNTU0LCAwLjYzNTU0OCwgMC44NDM4OTYsIDEuMDU1NTEsIDEuMjYxNzciLCBcCi0gICAgICAgICAgIjAuMDUwNzM3LCAwLjI1Nzk2OCwgMC40MjUxMSwgMC42MzQyMzcsIDAuODQ1NjE0LCAxLjA1NTYsIDEuMjY1NDEiLCBcCi0gICAgICAgICAgIjAuMDUwNzQxLCAwLjI1Nzk5LCAwLjQyNTE0MywgMC42MzQyMzYsIDAuODQ1NjE5LCAxLjA1NTU4LCAxLjI2NTUxIiwgXAotICAgICAgICAgICIwLjA1MDc0NiwgMC4yNTc5NywgMC40MjQ0NDcsIDAuNjM1NjUzLCAwLjg0NTUxNCwgMS4wNTU1NiwgMS4yNjU2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwODA4MiwgMC4wMDgwNzYsIDAuMDA4MDYxLCAwLjAwODA0OSwgMC4wMDgwNDIsIDAuMDA4MDM5LCAwLjAwODAzNSIsIFwKLSAgICAgICAgICAiMC4wMDgwNSwgMC4wMDgwNDMsIDAuMDA4MDI4LCAwLjAwODAxNywgMC4wMDgwMSwgMC4wMDgwMDYsIDAuMDA4MDAzIiwgXAotICAgICAgICAgICIwLjAwODAzNSwgMC4wMDgwMzEsIDAuMDA4MDE1LCAwLjAwODAwNCwgMC4wMDc5OTcsIDAuMDA3OTkzLCAwLjAwNzk5IiwgXAotICAgICAgICAgICIwLjAwODAyOSwgMC4wMDgwMjYsIDAuMDA4MDEsIDAuMDA3OTk5LCAwLjAwNzk5MiwgMC4wMDc5ODgsIDAuMDA3OTg0IiwgXAotICAgICAgICAgICIwLjAwODA0NywgMC4wMDgwNDcsIDAuMDA4MDMxLCAwLjAwODAxOSwgMC4wMDgwMTIsIDAuMDA4MDA4LCAwLjAwODAwNiIsIFwKLSAgICAgICAgICAiMC4wMDgwNjIsIDAuMDA4MDY1LCAwLjAwODA1LCAwLjAwODAzOSwgMC4wMDgwMzIsIDAuMDA4MDI3LCAwLjAwODAyMyIsIFwKLSAgICAgICAgICAiMC4wMDgwOTEsIDAuMDA4MTAxLCAwLjAwODA4NywgMC4wMDgwNzQsIDAuMDA4MDY3LCAwLjAwODA2MiwgMC4wMDgwNTgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDg2NDQsIDAuMDA4NzIsIDAuMDA4NzI5LCAwLjAwODczNCwgMC4wMDg3MzcsIDAuMDA4NzM5LCAwLjAwODc0IiwgXAotICAgICAgICAgICIwLjAwODYxMywgMC4wMDg2ODksIDAuMDA4Njk5LCAwLjAwODcwNCwgMC4wMDg3MDcsIDAuMDA4NzA4LCAwLjAwODcxIiwgXAotICAgICAgICAgICIwLjAwODYxMSwgMC4wMDg2ODcsIDAuMDA4Njk3LCAwLjAwODcwMiwgMC4wMDg3MDUsIDAuMDA4NzA3LCAwLjAwODcwOCIsIFwKLSAgICAgICAgICAiMC4wMDg2MzIsIDAuMDA4NzA4LCAwLjAwODcxNywgMC4wMDg3MjMsIDAuMDA4NzI1LCAwLjAwODcyNywgMC4wMDg3MjgiLCBcCi0gICAgICAgICAgIjAuMDA4NjY2LCAwLjAwODc0MiwgMC4wMDg3NTEsIDAuMDA4NzU2LCAwLjAwODc1OSwgMC4wMDg3NjEsIDAuMDA4NzYyIiwgXAotICAgICAgICAgICIwLjAwODY5NywgMC4wMDg3NzIsIDAuMDA4NzgyLCAwLjAwODc4NiwgMC4wMDg3ODksIDAuMDA4NzkxLCAwLjAwODc5MiIsIFwKLSAgICAgICAgICAiMC4wMDg3NTYsIDAuMDA4ODMxLCAwLjAwODg0LCAwLjAwODg0NSwgMC4wMDg4NDgsIDAuMDA4ODQ5LCAwLjAwODg1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNjM5MjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE2Mzg2MTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE2MzkyOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNTYxLCAwLjAwNTU4OSwgMC4wMDU1NzYsIDAuMDA1NTc3LCAwLjAwNTU4OSwgMC4wMDU2MDUsIDAuMDA1NjI2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA2OTg3LCAwLjAwNjkzNSwgMC4wMDY5MTgsIDAuMDA2OTI0LCAwLjAwNjk0MiwgMC4wMDY5ODcsIDAuMDA3MDMyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEMCZEMSI7Ci0gICAgICBzZGZfY29uZCA6ICJEMF9FUV8wX0FOX0QxX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDM3NSwgLTAuMDI2MjUsIC0wLjAyLCAtMC4wMTM3NSwgLTAuMDA3NSwgMC4wMDI1LCAwLjAwNSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMDg3NSwgMCIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMjEyNSwgLTAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDY3NSwgLTAuMDYyNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzM3NSwgLTAuMDI1IiwgXAotICAgICAgICAgICItMC4wOCwgLTAuMDY4NzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDQsIC0wLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjA5NjI1LCAtMC4wODUsIC0wLjA3ODc1LCAtMC4wNzI1LCAtMC4wNjYyNSwgLTAuMDU2MjUsIC0wLjA1Mzc1IiwgXAotICAgICAgICAgICItMC4xMDUsIC0wLjEsIC0wLjA4NzUsIC0wLjA4MTI1LCAtMC4wNzUsIC0wLjA3MTI1LCAtMC4wNjI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMCwgMC4wMTEyNSwgMC4wMjM3NSwgMC4wMzYyNSwgMC4wNDI1LCAwLjA1ODc1LCAwLjA2NzUiLCBcCi0gICAgICAgICAgIi0wLjAwNSwgMCwgMC4wMTI1LCAwLjAyNSwgMC4wMzc1LCAwLjA0NzUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIi0wLjAxNzUsIC0wLjAwNjI1LCAwLjAwNjI1LCAwLjAxMjUsIDAuMDI1LCAwLjAzNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxODc1LCAtMC4wMDYyNSwgMC4wMDYyNSwgMC4wMTI1LCAwLjAyODc1LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMjUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLjAwNjI1LCAwLjAxNjI1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDQ2MjUsIC0wLjAzNSwgLTAuMDIyNSwgLTAuMDE2MjUsIC0wLjAwMzc1LCAwLjAwNjI1LCAwLjAxNSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjA0Mzc1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMTI1LCAtMC4wMDI1LCAwLjAwNjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIkQwJiFEMSI7Ci0gICAgICBzZGZfY29uZCA6ICJEMF9FUV8xX0FOX0QxX0VRXzAgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDE4NzUsIC0wLjAwNzUsIDAuMDA1LCAwLjAxNzUsIDAuMDIzNzUsIDAuMDQsIDAuMDQ4NzUiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAuMDA2MjUsIDAuMDEyNSwgMC4wMjg3NSwgMC4wMzc1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDMxMjUsIC0wLjAxODc1LCAtMC4wMDYyNSwgMCwgMC4wMTYyNSwgMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLjAwMzc1LCAwLjAxODc1IiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAxMjUsIC0wLjAwMjUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA2NSwgLTAuMDYsIC0wLjA0NzUsIC0wLjAzNSwgLTAuMDIyNSwgLTAuMDEyNSwgLTAuMDAzNzUiLCBcCi0gICAgICAgICAgIi0wLjA3Mzc1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDQzNzUsIC0wLjAzMTI1LCAtMC4wMjEyNSwgLTAuMDEyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjA1NjI1LCAtMC4wNTEyNSwgLTAuMDM4NzUsIC0wLjAzMjUsIC0wLjAyNjI1LCAtMC4wMjI1LCAtMC4wMTM3NSIsIFwKLSAgICAgICAgICAiLTAuMDY3NSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDI3NSwgLTAuMDI1IiwgXAotICAgICAgICAgICItMC4wOCwgLTAuMDY4NzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDQsIC0wLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wODYyNSwgLTAuMDc1LCAtMC4wNjg3NSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA0NjI1LCAtMC4wNDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDkyNSwgLTAuMDg3NSwgLTAuMDc1LCAtMC4wNjg3NSwgLTAuMDYyNSwgLTAuMDU4NzUsIC0wLjA1IiwgXAotICAgICAgICAgICItMC4xMDI1LCAtMC4wOTc1LCAtMC4wODUsIC0wLjA3ODc1LCAtMC4wNzI1LCAtMC4wNjg3NSwgLTAuMDYiLCBcCi0gICAgICAgICAgIi0wLjExMTI1LCAtMC4xLCAtMC4wOTM3NSwgLTAuMDg3NSwgLTAuMDgxMjUsIC0wLjA3MTI1LCAtMC4wNjg3NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUQwJkQxIjsKLSAgICAgIHNkZl9jb25kIDogIkQwX0VRXzBfQU5fRDFfRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjI1LCAwLjA1NzUsIDAuMDQ1LCAwLjAzODc1LCAwLjAzMjUsIDAuMDIyNSwgMC4wMTM3NSIsIFwKLSAgICAgICAgICAiMC4wNzM3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDMzNzUsIDAuMDI1IiwgXAotICAgICAgICAgICIwLjA4NjI1LCAwLjA3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1LCAwLjA0LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIjAuMDk4NzUsIDAuMDg3NSwgMC4wNzUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNTI1LCAwLjA1IiwgXAotICAgICAgICAgICIwLjExMTI1LCAwLjEsIDAuMDg3NSwgMC4wODEyNSwgMC4wNzUsIDAuMDY1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICIwLjEyNzUsIDAuMTE2MjUsIDAuMTAzNzUsIDAuMDk3NSwgMC4wOTEyNSwgMC4wODEyNSwgMC4wNzI1IiwgXAotICAgICAgICAgICIwLjEzNjI1LCAwLjEyNSwgMC4xMTg3NSwgMC4xMDYyNSwgMC4xLCAwLjA5NjI1LCAwLjA4NzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzc1LCAwLjAyNjI1LCAwLjAxMzc1LCAwLjAwMTI1LCAtMC4wMDUsIC0wLjAyMTI1LCAtMC4wMyIsIFwKLSAgICAgICAgICAiMC4wNDg3NSwgMC4wMzc1LCAwLjAyNSwgMC4wMTI1LCAwLCAtMC4wMSwgLTAuMDI1IiwgXAotICAgICAgICAgICIwLjA2MTI1LCAwLjA1LCAwLjAzNzUsIDAuMDI1LCAwLjAxMjUsIC0wLjAwMzc1LCAtMC4wMTI1IiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDYyNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAyNSwgMC4wMDg3NSwgMCIsIFwKLSAgICAgICAgICAiMC4wOCwgMC4wNjg3NSwgMC4wNTYyNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAyMTI1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICIwLjA5NjI1LCAwLjA4NSwgMC4wNzI1LCAwLjA2LCAwLjA0NzUsIDAuMDMxMjUsIDAuMDIyNSIsIFwKLSAgICAgICAgICAiMC4xMDUsIDAuMSwgMC4wODEyNSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA0NjI1LCAwLjAzNzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIkQwJiFEMSI7Ci0gICAgICBzZGZfY29uZCA6ICJEMF9FUV8xX0FOX0QxX0VRXzAgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU2MjUsIDAuMDQ1LCAwLjAzMjUsIDAuMDIsIDAuMDEzNzUsIC0wLjAwMjUsIC0wLjAxMTI1IiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDU2MjUsIDAuMDQzNzUsIDAuMDMxMjUsIDAuMDE4NzUsIDAuMDA4NzUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICIwLjA4LCAwLjA2ODc1LCAwLjA1NjI1LCAwLjA0Mzc1LCAwLjAzMTI1LCAwLjAyMTI1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICIwLjA4NjI1LCAwLjA3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA0Mzc1LCAwLjAyNzUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMDk4NzUsIDAuMDg3NSwgMC4wNzUsIDAuMDYyNSwgMC4wNSwgMC4wMzM3NSwgMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMTA4NzUsIDAuMDk3NSwgMC4wODUsIDAuMDcyNSwgMC4wNiwgMC4wNSwgMC4wMzUiLCBcCi0gICAgICAgICAgIjAuMTE3NSwgMC4xMDYyNSwgMC4wOTM3NSwgMC4wODEyNSwgMC4wNjg3NSwgMC4wNTg3NSwgMC4wNDM3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4NzUsIDAuMDc2MjUsIDAuMDYzNzUsIDAuMDU3NSwgMC4wNTEyNSwgMC4wNDEyNSwgMC4wMzI1IiwgXAotICAgICAgICAgICIwLjA5MjUsIDAuMDgxMjUsIDAuMDc1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDUyNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4xMDUsIDAuMDkzNzUsIDAuMDg3NSwgMC4wNzUsIDAuMDY4NzUsIDAuMDY1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICIwLjExNzUsIDAuMTA2MjUsIDAuMDkzNzUsIDAuMDg3NSwgMC4wODEyNSwgMC4wNzEyNSwgMC4wNjI1IiwgXAotICAgICAgICAgICIwLjEyMzc1LCAwLjExMjUsIDAuMSwgMC4wOTM3NSwgMC4wODc1LCAwLjA3NzUsIDAuMDc1IiwgXAotICAgICAgICAgICIwLjEzMzc1LCAwLjEyMjUsIDAuMTEsIDAuMTAzNzUsIDAuMDk3NSwgMC4wODc1LCAwLjA4NSIsIFwKLSAgICAgICAgICAiMC4xMzYyNSwgMC4xMzEyNSwgMC4xMTg3NSwgMC4xMTI1LCAwLjEwNjI1LCAwLjA5NjI1LCAwLjA4NzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogTURGRkhRWDQgKgotICogLS0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKE1ERkZIUVg0KSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuNTk1MjUyOwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIGZmIChOMzAsUUJJTlQpIHsKLSAgICBuZXh0X3N0YXRlIDogIigoUzAgRDEpICsgKCFTMCBEMCkpIjsKLSAgICBjbG9ja2VkX29uIDogIkNLIjsKLSAgfQotICBwaW4oQ0spICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYxODc5OTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MTg1OTM7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjE4Nzk5OwotICAgIGNsb2NrIDogdHJ1ZTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDM0NTMsIDAuMDAzNDI4LCAwLjAwMzQxMiwgMC4wMDM0MTQsIDAuMDAzNDI1LCAwLjAwMzQ0NSwgMC4wMDM0NjYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDc1MjEsIDAuMDA3NDk5LCAwLjAwNzQ5NSwgMC4wMDc1MSwgMC4wMDc1MjksIDAuMDA3NTcyLCAwLjAwNzYwNiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQwJiFEMSYhUzAiOwotICAgICAgc2RmX2NvbmQgOiAiRDBfRVFfMF9BTl9EMV9FUV8wX0FOX1MwX0VRXzAgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4xMjE0MjgsIDAuMTMxNzExLCAwLjE0NDM2MiwgMC4xNTY2NjYsIDAuMTY3NzgyLCAwLjE4MzMwMSwgMC4xOTUyODUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjA5NTExMSwgMC4xMDUwNzMsIDAuMTE3NDg2LCAwLjEyOTI0NiwgMC4xMzk3MzMsIDAuMTUzODQ5LCAwLjE2NDgxNCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRDApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDg5NDU1ODsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA4OTIwNzI7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwODk0NTU4OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzU1MiwgMC4wMDM1MiwgMC4wMDM1MDMsIDAuMDAzNDk0LCAwLjAwMzQ4OSwgMC4wMDM0OTcsIDAuMDAzNTAyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA1OCwgMC4wMDU3ODIsIDAuMDA1NzcxLCAwLjAwNTc2OCwgMC4wMDU3NjcsIDAuMDA1NzcsIDAuMDA1Nzc2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFTMCI7Ci0gICAgICBzZGZfY29uZCA6ICJTMCA9PSAxJ2IwIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wNDM3NSwgLTAuMDMyNSwgLTAuMDI2MjUsIC0wLjAyLCAtMC4wMTM3NSwgLTAuMDAzNzUsIDAuMDA1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDQzNzUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wNjEyNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDIxMjUsIC0wLjAxODc1IiwgXAotICAgICAgICAgICItMC4wNzM3NSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDMzNzUsIC0wLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDgsIC0wLjA3NSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNDYyNSwgLTAuMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDk2MjUsIC0wLjA4NSwgLTAuMDc4NzUsIC0wLjA3MjUsIC0wLjA2NjI1LCAtMC4wNTYyNSwgLTAuMDUzNzUiLCBcCi0gICAgICAgICAgIi0wLjEwNSwgLTAuMSwgLTAuMDkzNzUsIC0wLjA4MTI1LCAtMC4wODEyNSwgLTAuMDcxMjUsIC0wLjA2MjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLCAwLjAxMTI1LCAwLjAxNzUsIDAuMDMsIDAuMDQyNSwgMC4wNTI1LCAwLjA2MTI1IiwgXAotICAgICAgICAgICItMC4wMTEyNSwgMCwgMC4wMTI1LCAwLjAyNSwgMC4wMzEyNSwgMC4wNDc1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICItMC4wMTc1LCAtMC4wMDYyNSwgMCwgMC4wMTI1LCAwLjAyNSwgMC4wMzUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAuMDA2MjUsIDAuMDEyNSwgMC4wMjg3NSwgMC4wMzc1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDI1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMC4wMDYyNSwgMC4wMTYyNSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDQ2MjUsIC0wLjAzNSwgLTAuMDIyNSwgLTAuMDE2MjUsIC0wLjAwMzc1LCAwLjAwNjI1LCAwLjAxNSIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNDM3NSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDEyNSwgLTAuMDAyNSwgMC4wMDYyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIVMwIjsKLSAgICAgIHNkZl9jb25kIDogIlMwID09IDEnYjAiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2ODc1LCAwLjA1NzUsIDAuMDUxMjUsIDAuMDQ1LCAwLjAzODc1LCAwLjAyODc1LCAwLjAyIiwgXAotICAgICAgICAgICIwLjA4LCAwLjA2ODc1LCAwLjA1NjI1LCAwLjA1LCAwLjA0Mzc1LCAwLjAzMzc1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICIwLjA5MjUsIDAuMDgxMjUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNDYyNSwgMC4wMzc1IiwgXAotICAgICAgICAgICIwLjA5ODc1LCAwLjA5Mzc1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNTg3NSwgMC4wNSIsIFwKLSAgICAgICAgICAiMC4xMTEyNSwgMC4xLCAwLjA4NzUsIDAuMDgxMjUsIDAuMDc1LCAwLjA2NSwgMC4wNjI1IiwgXAotICAgICAgICAgICIwLjEyNzUsIDAuMTE2MjUsIDAuMTAzNzUsIDAuMDk3NSwgMC4wOTEyNSwgMC4wODEyNSwgMC4wNzI1IiwgXAotICAgICAgICAgICIwLjEzNjI1LCAwLjEyNSwgMC4xMTg3NSwgMC4xMDYyNSwgMC4xLCAwLjA5NjI1LCAwLjA4NzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDM3NSwgMC4wMzI1LCAwLjAyLCAwLjAwNzUsIC0wLjAwNSwgLTAuMDE1LCAtMC4wMyIsIFwKLSAgICAgICAgICAiMC4wNTUsIDAuMDQzNzUsIDAuMDMxMjUsIDAuMDE4NzUsIDAuMDA2MjUsIC0wLjAxLCAtMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4wNjEyNSwgMC4wNSwgMC4wMzc1LCAwLjAyNSwgMC4wMTg3NSwgMC4wMDI1LCAtMC4wMTI1IiwgXAotICAgICAgICAgICIwLjA3Mzc1LCAwLjA2MjUsIDAuMDUsIDAuMDM3NSwgMC4wMjUsIDAuMDA4NzUsIDAiLCBcCi0gICAgICAgICAgIjAuMDgsIDAuMDY4NzUsIDAuMDU2MjUsIDAuMDQzNzUsIDAuMDMxMjUsIDAuMDIxMjUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMDk2MjUsIDAuMDg1LCAwLjA3MjUsIDAuMDYsIDAuMDQ3NSwgMC4wMzEyNSwgMC4wMjI1IiwgXAotICAgICAgICAgICIwLjEwNSwgMC4wOTM3NSwgMC4wODEyNSwgMC4wNjg3NSwgMC4wNTYyNSwgMC4wNCwgMC4wMzEyNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRDEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDg4NzA3OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDg4Mzk2NzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA4ODcwNzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDMyOTYsIDAuMDAzMjYzLCAwLjAwMzI0NiwgMC4wMDMyMzgsIDAuMDAzMjM0LCAwLjAwMzI0MywgMC4wMDMyNDkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDYwMzgsIDAuMDA2MDIxLCAwLjAwNjAxLCAwLjAwNjAwNiwgMC4wMDYwMDQsIDAuMDA2MDExLCAwLjAwNjAxNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJTMCI7Ci0gICAgICBzZGZfY29uZCA6ICJTMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wNDM3NSwgLTAuMDMyNSwgLTAuMDI2MjUsIC0wLjAyLCAtMC4wMTM3NSwgLTAuMDAzNzUsIDAuMDA1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDQzNzUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMDg3NSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA2MTI1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMjEyNSwgLTAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDczNzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjAzMzc1LCAtMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjA4LCAtMC4wNzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDQsIC0wLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjA5NjI1LCAtMC4wODUsIC0wLjA3ODc1LCAtMC4wNzI1LCAtMC4wNjYyNSwgLTAuMDU2MjUsIC0wLjA1Mzc1IiwgXAotICAgICAgICAgICItMC4xMDUsIC0wLjEsIC0wLjA4NzUsIC0wLjA4MTI1LCAtMC4wNzUsIC0wLjA3MTI1LCAtMC4wNjI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMCwgMC4wMDUsIDAuMDE3NSwgMC4wMywgMC4wMzYyNSwgMC4wNTI1LCAwLjA2MTI1IiwgXAotICAgICAgICAgICItMC4wMTEyNSwgMCwgMC4wMTI1LCAwLjAxODc1LCAwLjAzMTI1LCAwLjA0NzUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIi0wLjAxNzUsIC0wLjAxMjUsIDAsIDAuMDEyNSwgMC4wMjUsIDAuMDM1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLjAwNjI1LCAwLjAxMjUsIDAuMDI4NzUsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAyNSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAuMDA2MjUsIDAuMDE2MjUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjA0NjI1LCAtMC4wMzUsIC0wLjAyMjUsIC0wLjAxNjI1LCAtMC4wMDM3NSwgMC4wMDYyNSwgMC4wMTUiLCBcCi0gICAgICAgICAgIi0wLjA1NSwgLTAuMDQzNzUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAxMjUsIC0wLjAwMjUsIDAuMDA2MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlMwIjsKLSAgICAgIHNkZl9jb25kIDogIlMwID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2ODc1LCAwLjA1NzUsIDAuMDUxMjUsIDAuMDM4NzUsIDAuMDMyNSwgMC4wMjg3NSwgMC4wMiIsIFwKLSAgICAgICAgICAiMC4wOCwgMC4wNjg3NSwgMC4wNTYyNSwgMC4wNSwgMC4wNDM3NSwgMC4wMzM3NSwgMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMDkyNSwgMC4wODEyNSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA0NjI1LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIjAuMDk4NzUsIDAuMDg3NSwgMC4wODEyNSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1ODc1LCAwLjA1IiwgXAotICAgICAgICAgICIwLjExMTI1LCAwLjEsIDAuMDg3NSwgMC4wODEyNSwgMC4wNzUsIDAuMDY1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICIwLjEyNzUsIDAuMTE2MjUsIDAuMTAzNzUsIDAuMDk3NSwgMC4wOTEyNSwgMC4wODEyNSwgMC4wNzI1IiwgXAotICAgICAgICAgICIwLjEzNjI1LCAwLjEyNSwgMC4xMTg3NSwgMC4xMDYyNSwgMC4xLCAwLjA5LCAwLjA4NzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDM3NSwgMC4wMzI1LCAwLjAyLCAwLjAwNzUsIC0wLjAwNSwgLTAuMDE1LCAtMC4wMyIsIFwKLSAgICAgICAgICAiMC4wNTUsIDAuMDQzNzUsIDAuMDMxMjUsIDAuMDE4NzUsIDAuMDA2MjUsIC0wLjAxLCAtMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4wNjEyNSwgMC4wNSwgMC4wMzc1LCAwLjAyNSwgMC4wMTg3NSwgMC4wMDI1LCAtMC4wMTI1IiwgXAotICAgICAgICAgICIwLjA3Mzc1LCAwLjA2MjUsIDAuMDUsIDAuMDM3NSwgMC4wMjUsIDAuMDA4NzUsIDAiLCBcCi0gICAgICAgICAgIjAuMDgsIDAuMDY4NzUsIDAuMDU2MjUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMjEyNSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiMC4wOTYyNSwgMC4wODUsIDAuMDcyNSwgMC4wNiwgMC4wNDc1LCAwLjAzMTI1LCAwLjAyMjUiLCBcCi0gICAgICAgICAgIjAuMTA1LCAwLjA5Mzc1LCAwLjA4MTI1LCAwLjA2ODc1LCAwLjA1NjI1LCAwLjA0LCAwLjAzMTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihRKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDEuMDMxNDM7Ci0gICAgZnVuY3Rpb24gOiAiTjMwIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBub25fdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJpc2luZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwNDk1MSwgMC4xNzgyMTUsIDAuMjUwODIsIDAuMzAyNjc3LCAwLjM4NTY5OCwgMC40NTgzMjMsIDAuNTYyMTA3IiwgXAotICAgICAgICAgICIwLjExNTE2NiwgMC4xODg0MjQsIDAuMjYxMDI5LCAwLjMxMjg4MSwgMC4zOTU5MDgsIDAuNDY4NTM0LCAwLjU3MjI5NCIsIFwKLSAgICAgICAgICAiMC4xMjc3MzgsIDAuMjAwOTk0LCAwLjI3MzYwMSwgMC4zMjU0MzYsIDAuNDA4NDgyLCAwLjQ4MTE1NCwgMC41ODQ4NTUiLCBcCi0gICAgICAgICAgIjAuMTM5OTk0LCAwLjIxMzI1NiwgMC4yODU4MzcsIDAuMzM3NzU3LCAwLjQyMDczOSwgMC40OTMzNjUsIDAuNTk3MTM3IiwgXAotICAgICAgICAgICIwLjE1MTA2OSwgMC4yMjQzNDUsIDAuMjk2OTQzLCAwLjM0ODg1MSwgMC40MzE4MjQsIDAuNTA0Mzg1LCAwLjYwODE5MSIsIFwKLSAgICAgICAgICAiMC4xNjY0NzUsIDAuMjM5NzU2LCAwLjMxMjM1OSwgMC4zNjQyNDksIDAuNDQ3MjMzLCAwLjUxOTg1MSwgMC42MjM2MTIiLCBcCi0gICAgICAgICAgIjAuMTc4MjM2LCAwLjI1MTQ4OCwgMC4zMjQwOTQsIDAuMzc1OTYzLCAwLjQ1ODk3MiwgMC41MzE1ODksIDAuNjM1MzU4Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDMwODcsIDAuMTc4ODgxLCAwLjMyOTU3OCwgMC40Mzc4MzQsIDAuNjEwNzk4LCAwLjc2MTAzOSwgMC45Nzc5OTciLCBcCi0gICAgICAgICAgIjAuMDMwODcxLCAwLjE3ODg4LCAwLjMyOTEzNSwgMC40MzcxNzQsIDAuNjEwNzkyLCAwLjc2MTA0NywgMC45Nzc5NjciLCBcCi0gICAgICAgICAgIjAuMDMwODMxLCAwLjE3ODg5MSwgMC4zMjkxNTIsIDAuNDM3NzA4LCAwLjYxMDgwOSwgMC43NjIwMiwgMC45NzY4MDMiLCBcCi0gICAgICAgICAgIjAuMDMwODYsIDAuMTc4ODg4LCAwLjMyODk1MywgMC40MzgwMTEsIDAuNjEwODAyLCAwLjc2MTA0NiwgMC45NzY3NzIiLCBcCi0gICAgICAgICAgIjAuMDMwODU4LCAwLjE3ODg2NCwgMC4zMjk1MywgMC40MzgwMTksIDAuNjEwNzg0LCAwLjc2MTY2OCwgMC45NzY4NTIiLCBcCi0gICAgICAgICAgIjAuMDMwODYyLCAwLjE3ODg2NiwgMC4zMjk1MjMsIDAuNDM3OTkxLCAwLjYxMDc3MywgMC43NjE1OSwgMC45NzcwODYiLCBcCi0gICAgICAgICAgIjAuMDMwODk4LCAwLjE3ODg5MywgMC4zMjk1NDksIDAuNDM3ODEyLCAwLjYxMDY3NSwgMC43NjA5NTYsIDAuOTc3ODQ0Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTIxNDI4LCAwLjE5NTYyNiwgMC4yNjkwMTMsIDAuMzIxMzk4LCAwLjQwNTIyOCwgMC40Nzg1NjksIDAuNTgzMzUzIiwgXAotICAgICAgICAgICIwLjEzMTcxMSwgMC4yMDU5MDIsIDAuMjc5Mjk5LCAwLjMzMTY4LCAwLjQxNTUwMSwgMC40ODg4NzYsIDAuNTkzNjI1IiwgXAotICAgICAgICAgICIwLjE0NDM2MiwgMC4yMTg1NSwgMC4yOTE5NDYsIDAuMzQ0MzM4LCAwLjQyODE0OSwgMC41MDE1NTksIDAuNjA2MjcxIiwgXAotICAgICAgICAgICIwLjE1NjY2NywgMC4yMzA4NTYsIDAuMzA0MjUzLCAwLjM1NjY0LCAwLjQ0MDQ1NSwgMC41MTM4MjQsIDAuNjE4NTc5IiwgXAotICAgICAgICAgICIwLjE2Nzc4MywgMC4yNDE5NjgsIDAuMzE1MzU4LCAwLjM2Nzc0MSwgMC40NTE2MDQsIDAuNTI0OTE0LCAwLjYyOTcwNCIsIFwKLSAgICAgICAgICAiMC4xODMzMTEsIDAuMjU3NDk3LCAwLjMzMDg2OCwgMC4zODMyNzksIDAuNDY3MSwgMC41NDA0NTQsIDAuNjQ1MjQ2IiwgXAotICAgICAgICAgICIwLjE5NTI5LCAwLjI2OTQ5OCwgMC4zNDI4NzYsIDAuMzk1MjYsIDAuNDc5MDg5LCAwLjU1MjQ0NCwgMC42NTcyMzQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzAxLCAwLjE3NTk2NCwgMC4zMjQ0MTMsIDAuNDMwNzY1LCAwLjYwMDc2MiwgMC43NTAzNTcsIDAuOTYxNzIiLCBcCi0gICAgICAgICAgIjAuMDMwMDgxLCAwLjE3NTk4NSwgMC4zMjQwMTksIDAuNDMwNjA2LCAwLjYwMTE3MiwgMC43NDg4MzYsIDAuOTYxNzA3IiwgXAotICAgICAgICAgICIwLjAzMDA5OCwgMC4xNzU5OTQsIDAuMzI0OTk2LCAwLjQzMDgxMywgMC42MDA5NzcsIDAuNzQ4ODE1LCAwLjk2MTY5NiIsIFwKLSAgICAgICAgICAiMC4wMzAwOTksIDAuMTc1OTgzLCAwLjMyNDk5MywgMC40MzEwNjgsIDAuNjAxMTM2LCAwLjc0OTIwNywgMC45NjE3NjkiLCBcCi0gICAgICAgICAgIjAuMDMwMTA2LCAwLjE3NjI0NywgMC4zMjQ5NzIsIDAuNDMxMjQ3LCAwLjYwMTUzNSwgMC43NDkxMTQsIDAuOTYwNzk0IiwgXAotICAgICAgICAgICIwLjAzMDA5OSwgMC4xNzU5NiwgMC4zMjQ4NTIsIDAuNDMxMjM0LCAwLjYwMDM2NiwgMC43NDk0NzEsIDAuOTYzMjYzIiwgXAotICAgICAgICAgICIwLjAzMDEwMywgMC4xNzYxODEsIDAuMzI0OTUyLCAwLjQzMTIzNCwgMC42MDAyODIsIDAuNzQ5NDc4LCAwLjk2MTM4NCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMDU1OCwgMC4wMTA2NSwgMC4wMTA2MzUsIDAuMDEwNjMsIDAuMDEwNjE4LCAwLjAxMDYxNSwgMC4wMTA2MTEiLCBcCi0gICAgICAgICAgIjAuMDEwNTI3LCAwLjAxMDYxOSwgMC4wMTA2MDYsIDAuMDEwNTk3LCAwLjAxMDU4OCwgMC4wMTA1ODMsIDAuMDEwNTc2IiwgXAotICAgICAgICAgICIwLjAxMDUwNywgMC4wMTA2LCAwLjAxMDU4OCwgMC4wMTA1NzksIDAuMDEwNTcyLCAwLjAxMDU2OCwgMC4wMTA1NjIiLCBcCi0gICAgICAgICAgIjAuMDEwNTAyLCAwLjAxMDU5NywgMC4wMTA1ODUsIDAuMDEwNTc5LCAwLjAxMDU2OCwgMC4wMTA1NiwgMC4wMTA1NTUiLCBcCi0gICAgICAgICAgIjAuMDEwNTE2LCAwLjAxMDYxNSwgMC4wMTA2MDIsIDAuMDEwNTk1LCAwLjAxMDU4NiwgMC4wMTA1NzksIDAuMDEwNTc1IiwgXAotICAgICAgICAgICIwLjAxMDUyOCwgMC4wMTA2MzEsIDAuMDEwNjE5LCAwLjAxMDYxNSwgMC4wMTA2MDMsIDAuMDEwNTk5LCAwLjAxMDU5MiIsIFwKLSAgICAgICAgICAiMC4wMTA1NjcsIDAuMDEwNjY4LCAwLjAxMDY2MSwgMC4wMTA2NTYsIDAuMDEwNjQxLCAwLjAxMDYzOSwgMC4wMTA2MjkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMDk1NiwgMC4wMTExNDUsIDAuMDExMTcsIDAuMDExMTc3LCAwLjAxMTE4NCwgMC4wMTExODcsIDAuMDExMTkiLCBcCi0gICAgICAgICAgIjAuMDEwOTI4LCAwLjAxMTExNiwgMC4wMTExNDEsIDAuMDExMTQ5LCAwLjAxMTE1NiwgMC4wMTExNTksIDAuMDExMTYyIiwgXAotICAgICAgICAgICIwLjAxMDkyNiwgMC4wMTExMTYsIDAuMDExMTQsIDAuMDExMTQ3LCAwLjAxMTE1NCwgMC4wMTExNTgsIDAuMDExMTYxIiwgXAotICAgICAgICAgICIwLjAxMDk0MywgMC4wMTExMzEsIDAuMDExMTU2LCAwLjAxMTE2NCwgMC4wMTExNywgMC4wMTExNzQsIDAuMDExMTc3IiwgXAotICAgICAgICAgICIwLjAxMDk4MiwgMC4wMTExNjUsIDAuMDExMTg5LCAwLjAxMTE5NiwgMC4wMTEyMDMsIDAuMDExMjA2LCAwLjAxMTIwOSIsIFwKLSAgICAgICAgICAiMC4wMTEwMDgsIDAuMDExMTk1LCAwLjAxMTIxOCwgMC4wMTEyMjYsIDAuMDExMjMyLCAwLjAxMTIzNSwgMC4wMTEyMzgiLCBcCi0gICAgICAgICAgIjAuMDExMDYsIDAuMDExMjQ5LCAwLjAxMTI3MywgMC4wMTEyOCwgMC4wMTEyODcsIDAuMDExMjksIDAuMDExMjkzIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNjAxMjE7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNjAwNzM7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNjAxMjE7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA1NDYyLCAwLjAwNTQ0LCAwLjAwNTQyOSwgMC4wMDU0MzEsIDAuMDA1NDQyLCAwLjAwNTQ2LCAwLjAwNTQ3OCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNjc5OCwgMC4wMDY3NDQsIDAuMDA2NzI4LCAwLjAwNjczNiwgMC4wMDY3NTYsIDAuMDA2Nzk1LCAwLjAwNjg0NiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRDAmRDEiOwotICAgICAgc2RmX2NvbmQgOiAiRDBfRVFfMF9BTl9EMV9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAzNzUsIC0wLjAyNjI1LCAtMC4wMiwgLTAuMDEzNzUsIC0wLjAwNzUsIDAuMDAyNSwgMC4wMTEyNSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDM3NSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA4NzUsIDAiLCBcCi0gICAgICAgICAgIi0wLjA1NSwgLTAuMDUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAxNSwgLTAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDY3NSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDI3NSwgLTAuMDI1IiwgXAotICAgICAgICAgICItMC4wOCwgLTAuMDY4NzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDQsIC0wLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wOSwgLTAuMDg1LCAtMC4wNzg3NSwgLTAuMDY2MjUsIC0wLjA2LCAtMC4wNTYyNSwgLTAuMDQ3NSIsIFwKLSAgICAgICAgICAiLTAuMTA1LCAtMC4wOTM3NSwgLTAuMDg3NSwgLTAuMDgxMjUsIC0wLjA3NSwgLTAuMDY1LCAtMC4wNjI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDYyNSwgMC4wMTEyNSwgMC4wMjM3NSwgMC4wMzYyNSwgMC4wNDg3NSwgMC4wNTg3NSwgMC4wNjc1IiwgXAotICAgICAgICAgICItMC4wMDUsIDAuMDA2MjUsIDAuMDE4NzUsIDAuMDMxMjUsIDAuMDM3NSwgMC4wNTM3NSwgMC4wNjI1IiwgXAotICAgICAgICAgICItMC4wMTEyNSwgLTAuMDA2MjUsIDAuMDA2MjUsIDAuMDE4NzUsIDAuMDI1LCAwLjA0MTI1LCAwLjA1IiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDEyNSwgMCwgMC4wMDYyNSwgMC4wMTg3NSwgMC4wMjg3NSwgMC4wMzc1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDE4NzUsIC0wLjAxMjUsIDAsIDAuMDA2MjUsIDAuMDIyNSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDQsIC0wLjAyODc1LCAtMC4wMjI1LCAtMC4wMSwgLTAuMDAzNzUsIDAuMDEyNSwgMC4wMjEyNSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAwLjAwMzc1LCAwLjAxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiRDAmIUQxIjsKLSAgICAgIHNkZl9jb25kIDogIkQwX0VRXzFfQU5fRDFfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMTI1LCAtMC4wMDEyNSwgMC4wMTEyNSwgMC4wMTc1LCAwLjAzLCAwLjA0LCAwLjA1NSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxMjUsIDAsIDAuMDEyNSwgMC4wMTg3NSwgMC4wMzUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMjUsIC0wLjAxMjUsIDAsIDAuMDA2MjUsIDAuMDIyNSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDMxMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAwLCAwLjAxLCAwLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjA0Mzc1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLjAwMzc1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjA1ODc1LCAtMC4wNTM3NSwgLTAuMDQxMjUsIC0wLjAyODc1LCAtMC4wMjI1LCAtMC4wMDYyNSwgMC4wMDI1IiwgXAotICAgICAgICAgICItMC4wNjc1LCAtMC4wNjI1LCAtMC4wNSwgLTAuMDM3NSwgLTAuMDI1LCAtMC4wMTUsIC0wLjAwNjI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDUsIC0wLjA0NSwgLTAuMDM4NzUsIC0wLjAzMjUsIC0wLjAyNjI1LCAtMC4wMTYyNSwgLTAuMDA3NSIsIFwKLSAgICAgICAgICAiLTAuMDYxMjUsIC0wLjA1NjI1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAyNzUsIC0wLjAxODc1IiwgXAotICAgICAgICAgICItMC4wNzM3NSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDMzNzUsIC0wLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wOCwgLTAuMDc1LCAtMC4wNjg3NSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNDYyNSwgLTAuMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDg2MjUsIC0wLjA4MTI1LCAtMC4wNzUsIC0wLjA2ODc1LCAtMC4wNjI1LCAtMC4wNTI1LCAtMC4wNDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDk2MjUsIC0wLjA5MTI1LCAtMC4wODUsIC0wLjA3MjUsIC0wLjA2NjI1LCAtMC4wNjI1LCAtMC4wNTM3NSIsIFwKLSAgICAgICAgICAiLTAuMTA1LCAtMC4xLCAtMC4wODc1LCAtMC4wODEyNSwgLTAuMDc1LCAtMC4wNjUsIC0wLjA2MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEMCZEMSI7Ci0gICAgICBzZGZfY29uZCA6ICJEMF9FUV8wX0FOX0QxX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDYyNSwgMC4wNTEyNSwgMC4wNDUsIDAuMDMyNSwgMC4wMjYyNSwgMC4wMjI1LCAwLjAxMzc1IiwgXAotICAgICAgICAgICIwLjA3Mzc1LCAwLjA2MjUsIDAuMDUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMjc1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiMC4wODYyNSwgMC4wNzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNSwgMC4wNCwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4wOTg3NSwgMC4wODc1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1MjUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMTA1LCAwLjEsIDAuMDg3NSwgMC4wODEyNSwgMC4wNzUsIDAuMDY1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICIwLjEyMTI1LCAwLjExNjI1LCAwLjEwMzc1LCAwLjA5NzUsIDAuMDg1LCAwLjA4MTI1LCAwLjA3MjUiLCBcCi0gICAgICAgICAgIjAuMTM2MjUsIDAuMTI1LCAwLjExMjUsIDAuMTA2MjUsIDAuMSwgMC4wOSwgMC4wODEyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzNzUsIDAuMDI2MjUsIDAuMDEzNzUsIDAuMDAxMjUsIC0wLjAxMTI1LCAtMC4wMjEyNSwgLTAuMDM2MjUiLCBcCi0gICAgICAgICAgIjAuMDQ4NzUsIDAuMDM3NSwgMC4wMjUsIDAuMDEyNSwgMCwgLTAuMDE2MjUsIC0wLjAyNSIsIFwKLSAgICAgICAgICAiMC4wNTUsIDAuMDUsIDAuMDMxMjUsIDAuMDI1LCAwLjAxMjUsIC0wLjAwMzc1LCAtMC4wMTI1IiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDU2MjUsIDAuMDQzNzUsIDAuMDMxMjUsIDAuMDI1LCAwLjAwODc1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiMC4wOCwgMC4wNjg3NSwgMC4wNTYyNSwgMC4wNDM3NSwgMC4wMzEyNSwgMC4wMTUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMDk2MjUsIDAuMDg1LCAwLjA3MjUsIDAuMDYsIDAuMDQ3NSwgMC4wMzEyNSwgMC4wMjI1IiwgXAotICAgICAgICAgICIwLjEwNSwgMC4wOTM3NSwgMC4wODEyNSwgMC4wNjg3NSwgMC4wNTYyNSwgMC4wNCwgMC4wMzEyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiRDAmIUQxIjsKLSAgICAgIHNkZl9jb25kIDogIkQwX0VRXzFfQU5fRDFfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTYyNSwgMC4wNDUsIDAuMDMyNSwgMC4wMiwgMC4wMDc1LCAtMC4wMDg3NSwgLTAuMDE3NSIsIFwKLSAgICAgICAgICAiMC4wNjc1LCAwLjA1NjI1LCAwLjA0Mzc1LCAwLjAzMTI1LCAwLjAxODc1LCAwLjAwMjUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICIwLjA3Mzc1LCAwLjA2MjUsIDAuMDUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMTUsIDAiLCBcCi0gICAgICAgICAgIjAuMDg2MjUsIDAuMDc1LCAwLjA2MjUsIDAuMDUsIDAuMDM3NSwgMC4wMjEyNSwgMC4wMTI1IiwgXAotICAgICAgICAgICIwLjA5MjUsIDAuMDgxMjUsIDAuMDY4NzUsIDAuMDU2MjUsIDAuMDQzNzUsIDAuMDMzNzUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMTAyNSwgMC4wOTEyNSwgMC4wNzg3NSwgMC4wNjYyNSwgMC4wNiwgMC4wNDM3NSwgMC4wMjg3NSIsIFwKLSAgICAgICAgICAiMC4xMTEyNSwgMC4xLCAwLjA4NzUsIDAuMDc1LCAwLjA2MjUsIDAuMDUyNSwgMC4wMzc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDgxMjUsIDAuMDcsIDAuMDYzNzUsIDAuMDUxMjUsIDAuMDQ1LCAwLjAzNSwgMC4wMzI1IiwgXAotICAgICAgICAgICIwLjA5MjUsIDAuMDgxMjUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNDYyNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4xMDUsIDAuMDkzNzUsIDAuMDgxMjUsIDAuMDc1LCAwLjA2ODc1LCAwLjA1ODc1LCAwLjA1IiwgXAotICAgICAgICAgICIwLjExMTI1LCAwLjEsIDAuMDg3NSwgMC4wODEyNSwgMC4wNzUsIDAuMDY1LCAwLjA2MjUiLCBcCi0gICAgICAgICAgIjAuMTE3NSwgMC4xMDYyNSwgMC4xLCAwLjA4NzUsIDAuMDgxMjUsIDAuMDcxMjUsIDAuMDY4NzUiLCBcCi0gICAgICAgICAgIjAuMTI3NSwgMC4xMTYyNSwgMC4xMSwgMC4wOTc1LCAwLjA5MTI1LCAwLjA4MTI1LCAwLjA3ODc1IiwgXAotICAgICAgICAgICIwLjEzNjI1LCAwLjEyNSwgMC4xMTI1LCAwLjEwNjI1LCAwLjEsIDAuMDksIDAuMDgxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogTVg0WDEgKgotICogLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKE1YNFgxKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMjUzNTE1OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2Mjc3OTg7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjI2MzU5OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDYyNzc5ODsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA3NDQsIDAuMDAwNzI1LCAwLjAwMDcxNSwgMC4wMDA3MSwgMC4wMDA3MSwgMC4wMDA3MTIsIDAuMDAwNzE2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyNDI0LCAwLjAwMjQxMywgMC4wMDI0MDgsIDAuMDAyNDA1LCAwLjAwMjQwNSwgMC4wMDI0MDcsIDAuMDAyNDEyIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA1OTQxMzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA1OTI0Njk7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNTk0MTM7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjE3LCAwLjAwMDIyLCAwLjAwMDIyMSwgMC4wMDAyMjIsIDAuMDAwMjIyLCAwLjAwMDIyMiwgMC4wMDAyMjIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyMzIsIDAuMDAwMjI4LCAwLjAwMDIyNywgMC4wMDAyMjcsIDAuMDAwMjI3LCAwLjAwMDIyNywgMC4wMDAyMjciKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEMpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYxNzA5NzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MTUzNTE7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjE3MDk3OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDgwOSwgMC4wMDA3ODgsIDAuMDAwNzc4LCAwLjAwMDc3NCwgMC4wMDA3NzQsIDAuMDAwNzc3LCAwLjAwMDc4MyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjEzOCwgMC4wMDIxMjYsIDAuMDAyMTIsIDAuMDAyMTE4LCAwLjAwMjExOCwgMC4wMDIxMTksIDAuMDAyMTIzIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihEKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2NTQxODsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2NTI1OTU7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjU0MTg7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjE4LCAwLjAwMDIyLCAwLjAwMDIyMSwgMC4wMDAyMjIsIDAuMDAwMjIyLCAwLjAwMDIyMiwgMC4wMDAyMjIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyMzMsIDAuMDAwMjI4LCAwLjAwMDIyOCwgMC4wMDAyMjcsIDAuMDAwMjI3LCAwLjAwMDIyNywgMC4wMDAyMjciKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFMwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDIwMDM4NjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDIwMDMyOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMjAwMzg2OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDI5MywgMC4wMDAyNjUsIDAuMDAwMjY0LCAwLjAwMDI3MiwgMC4wMDAyODYsIDAuMDAwMjk3LCAwLjAwMDMxOCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzE1NywgMC4wMDMxMzcsIDAuMDAzMTMzLCAwLjAwMzEzOCwgMC4wMDMxNDYsIDAuMDAzMTY0LCAwLjAwMzE4NiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUzEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTEzNjA0OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTEzNTY1OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTEzNjA0OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDA1NywgMC4wMDAwMjgsIDAuMDAwMDI1LCAwLjAwMDA0NSwgMC4wMDAwNDksIDAuMDAwMDc2LCAwLjAwMDEwMSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTk5MywgMC4wMDE5NzEsIDAuMDAxOTczLCAwLjAwMTk3OCwgMC4wMDE5ODgsIDAuMDAyMDA5LCAwLjAwMjAzMyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjI1MzI0MzsKLSAgICBmdW5jdGlvbiA6ICIoKFMxICgoUzAgRCkgKyAoIVMwIEMpKSkgKyAoIVMxICgoUzAgQikgKyAoIVMwIEEpKSkpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNTA4NTUsIDAuMTc2OTY2LCAwLjMxNTkzMSwgMC40MzczNzksIDAuNTk5NDYxLCAwLjkyMzAwMiwgMS4xMjUzNyIsIFwKLSAgICAgICAgICAiMC4xNTk2OTYsIDAuMTg1ODI1LCAwLjMyNDc3NiwgMC40NDYyMTcsIDAuNjA4MTc1LCAwLjkzMTkxMSwgMS4xMzQyNSIsIFwKLSAgICAgICAgICAiMC4xNzA0ODcsIDAuMTk2NTk1LCAwLjMzNTU2MSwgMC40NTcwNDEsIDAuNjE5MTA0LCAwLjk0MjYyNywgMS4xNDQ5OCIsIFwKLSAgICAgICAgICAiMC4xODEyNjYsIDAuMjA3MzYzLCAwLjM0NjM2MiwgMC40Njc4MywgMC42Mjk3NDUsIDAuOTUzNDYsIDEuMTU1ODIiLCBcCi0gICAgICAgICAgIjAuMTkxNzc0LCAwLjIxNzg2NSwgMC4zNTY4NTUsIDAuNDc4MzI1LCAwLjY0MDM4MiwgMC45NjM5NTEsIDEuMTY2MzIiLCBcCi0gICAgICAgICAgIjAuMjA4MDEzLCAwLjIzNDE0MiwgMC4zNzMxMjMsIDAuNDk0NTk4LCAwLjY1NjY2NywgMC45ODAyMTgsIDEuMTgyNTgiLCBcCi0gICAgICAgICAgIjAuMjIxNDYsIDAuMjQ3NzU3LCAwLjM4NjcxNywgMC41MDgxNzksIDAuNjcwMTcyLCAwLjk5Mzg2MywgMS4xOTYzMiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDQ3ODMsIDAuMTUyMDE3LCAwLjQyNzkwOSwgMC42NzY0MzEsIDEuMDA3MTYsIDEuNjc1MjYsIDIuMDg4NzUiLCBcCi0gICAgICAgICAgIjAuMTA0NzU4LCAwLjE1MjAwNywgMC40MjgzMywgMC42NzY0MTQsIDEuMDA3OTcsIDEuNjc1OTgsIDIuMDg5MzgiLCBcCi0gICAgICAgICAgIjAuMTA0NzYyLCAwLjE1MjAwNSwgMC40Mjc4OTksIDAuNjc2Njc5LCAxLjAwNzM3LCAxLjY3NTg1LCAyLjA5IiwgXAotICAgICAgICAgICIwLjEwNDc5MiwgMC4xNTIwMzEsIDAuNDI3OTU3LCAwLjY3NjM5MiwgMS4wMDc5MSwgMS42NzM4MSwgMi4wODkxIiwgXAotICAgICAgICAgICIwLjEwNDgxNSwgMC4xNTIwNDYsIDAuNDI3OTAyLCAwLjY3NjQyNCwgMS4wMDcyOSwgMS42NzM2NywgMi4wODkzMyIsIFwKLSAgICAgICAgICAiMC4xMDQ5NjYsIDAuMTUyMTYzLCAwLjQyNzkzLCAwLjY3NjQ4MiwgMS4wMDc0MywgMS42NzM2MiwgMi4wODg4MiIsIFwKLSAgICAgICAgICAiMC4xMDUzNCwgMC4xNTI0NzEsIDAuNDI4MzY4LCAwLjY3NjQwMywgMS4wMDc2LCAxLjY3NTY1LCAyLjA4ODU4Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE1Njk5LCAwLjE4NDE2LCAwLjMyNjU1NSwgMC40NTAyOTEsIDAuNjE1MjU2LCAwLjk0NTEzOSwgMS4xNTEyOSIsIFwKLSAgICAgICAgICAiMC4xNjU1NDMsIDAuMTkyNzcyLCAwLjMzNTE0NywgMC40NTg4ODUsIDAuNjIzODE0LCAwLjk1MzYyNSwgMS4xNTk3MiIsIFwKLSAgICAgICAgICAiMC4xNzUzOTYsIDAuMjAyNjQ5LCAwLjM0NDk4MSwgMC40Njg3MzQsIDAuNjMzNjg4LCAwLjk2MzU0NywgMS4xNjk1NSIsIFwKLSAgICAgICAgICAiMC4xODUxMzEsIDAuMjEyMzY3LCAwLjM1NDc2MywgMC40Nzg1MDMsIDAuNjQzNDM3LCAwLjk3MzI0OCwgMS4xNzkzNSIsIFwKLSAgICAgICAgICAiMC4xOTQ2MjgsIDAuMjIxODgzLCAwLjM2NDIyNywgMC40ODc5ODksIDAuNjUyOTQsIDAuOTgyNzY4LCAxLjE4ODgiLCBcCi0gICAgICAgICAgIjAuMjA5MTM5LCAwLjIzNjM4MSwgMC4zNzg3OTMsIDAuNTAyNTM5LCAwLjY2NzQ4LCAwLjk5NzM0LCAxLjIwMzQxIiwgXAotICAgICAgICAgICIwLjIyMTIxNiwgMC4yNDg1MzUsIDAuMzkwOTM3LCAwLjUxNDY4NCwgMC42Nzk2NDcsIDEuMDA5NDcsIDEuMjE1NSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDc0NDcsIDAuMTU0NDMyLCAwLjQyNzgyNSwgMC42NzU1MiwgMS4wMDY5LCAxLjY3MTYxLCAyLjA4MTIxIiwgXAotICAgICAgICAgICIwLjEwNzQzMSwgMC4xNTQ0NjksIDAuNDI4Mjk2LCAwLjY3NTQ5MywgMS4wMDY3LCAxLjY3MTI1LCAyLjA4NjgzIiwgXAotICAgICAgICAgICIwLjEwNzQ1MiwgMC4xNTQ0MjUsIDAuNDI4MTUxLCAwLjY3NTQ5NCwgMS4wMDUwMiwgMS42Njc4MywgMi4wODY2NyIsIFwKLSAgICAgICAgICAiMC4xMDc0NjEsIDAuMTU0NDEyLCAwLjQyODAwOCwgMC42NzU0ODYsIDEuMDA2NzEsIDEuNjcxMjUsIDIuMDg2ODciLCBcCi0gICAgICAgICAgIjAuMTA3NDQ3LCAwLjE1NDQzMywgMC40Mjg0MDksIDAuNjc0ODMzLCAxLjAwNTEsIDEuNjcxNDUsIDIuMDg2NTYiLCBcCi0gICAgICAgICAgIjAuMTA3NjgyLCAwLjE1NDYzLCAwLjQyODAwNSwgMC42NzU1MTksIDEuMDA2NzQsIDEuNjcxNTEsIDIuMDg3MDIiLCBcCi0gICAgICAgICAgIjAuMTA4MDEzLCAwLjE1NDkyLCAwLjQyODA5MywgMC42NzU0NDEsIDEuMDA1MTIsIDEuNjcxMzksIDIuMDg2NTgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTUxMDQ5LCAwLjE3NzE1NCwgMC4zMTYxNTgsIDAuNDM3NjM0LCAwLjU5OTY3MywgMC45MjMzMDcsIDEuMTI1NjgiLCBcCi0gICAgICAgICAgIjAuMTU5OTE1LCAwLjE4NjA1MiwgMC4zMjUwMSwgMC40NDY0ODUsIDAuNjA4NTk4LCAwLjkzMjIzNywgMS4xMzQ0NyIsIFwKLSAgICAgICAgICAiMC4xNzA3NzYsIDAuMTk2ODc1LCAwLjMzNTg4NiwgMC40NTczNjYsIDAuNjE5NDMzLCAwLjk0MzAxOCwgMS4xNDUzOSIsIFwKLSAgICAgICAgICAiMC4xODE2MDksIDAuMjA3NzI0LCAwLjM0NjczMiwgMC40NjgyNDcsIDAuNjMwMjg3LCAwLjk1Mzg2MywgMS4xNTYyNSIsIFwKLSAgICAgICAgICAiMC4xOTIxMTUsIDAuMjE4MjI0LCAwLjM1NzI0MiwgMC40Nzg3MjUsIDAuNjQwNzk1LCAwLjk2NDM3OCwgMS4xNjY3NiIsIFwKLSAgICAgICAgICAiMC4yMDg0OTgsIDAuMjM0NjA4LCAwLjM3MzYyLCAwLjQ5NTA5OSwgMC42NTcxODksIDAuOTgwODMyLCAxLjE4MzEzIiwgXAotICAgICAgICAgICIwLjIyMjIyMiwgMC4yNDg0MDQsIDAuMzg3Mzg2LCAwLjUwODg4MywgMC42NzA5NTgsIDAuOTk0NTMyLCAxLjE5Njg5Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwNDgwNywgMC4xNTIwNzIsIDAuNDI3OTYyLCAwLjY3NjQ5MywgMS4wMDgxOCwgMS42NzYxMiwgMi4wOTAyIiwgXAotICAgICAgICAgICIwLjEwNDc4OSwgMC4xNTIwNjcsIDAuNDI4MDI3LCAwLjY3NjQ2NSwgMS4wMDczOCwgMS42NzMzNSwgMi4wOTI4MSIsIFwKLSAgICAgICAgICAiMC4xMDQ3ODcsIDAuMTUyMDM4LCAwLjQyNzk3NiwgMC42NzY0NzEsIDEuMDA3MzUsIDEuNjczNzksIDIuMDg5NSIsIFwKLSAgICAgICAgICAiMC4xMDQ4MDQsIDAuMTUyMDU3LCAwLjQyNzk1NSwgMC42NzY3ODMsIDEuMDA3MzEsIDEuNjczNjksIDIuMDg5NjEiLCBcCi0gICAgICAgICAgIjAuMTA0NzY5LCAwLjE1MjA4MiwgMC40Mjc5NjUsIDAuNjc2NDg2LCAxLjAwNzM1LCAxLjY3Mzc2LCAyLjA4OTU2IiwgXAotICAgICAgICAgICIwLjEwNDk5OSwgMC4xNTIxMDEsIDAuNDI4MDA2LCAwLjY3NjQ3NiwgMS4wMDc2NSwgMS42NzMwOCwgMi4wOTAxMiIsIFwKLSAgICAgICAgICAiMC4xMDUyMzIsIDAuMTUyMzYyLCAwLjQyODA1MywgMC42NzY0NzYsIDEuMDA3NjYsIDEuNjc1MDcsIDIuMDkwMDkiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTU4MDgxLCAwLjE4NTMwNSwgMC4zMjc2NiwgMC40NTE0MDYsIDAuNjE2MzkzLCAwLjk0NjI5NSwgMS4xNTIyOCIsIFwKLSAgICAgICAgICAiMC4xNjY3MjgsIDAuMTkzOTc5LCAwLjMzNjM1NCwgMC40NjAwOTIsIDAuNjI1MDMsIDAuOTU0ODM0LCAxLjE2MDkiLCBcCi0gICAgICAgICAgIjAuMTc2NDY4LCAwLjIwMzczNywgMC4zNDYwNzksIDAuNDY5ODI3LCAwLjYzNDc2LCAwLjk2NDU0NiwgMS4xNzA3MiIsIFwKLSAgICAgICAgICAiMC4xODYxNzgsIDAuMjEzNDQ2LCAwLjM1NTc5MSwgMC40Nzk1NDMsIDAuNjQ0NDk4LCAwLjk3NDI5LCAxLjE4MDU0IiwgXAotICAgICAgICAgICIwLjE5NTcxMiwgMC4yMjI5MzIsIDAuMzY1MzUyLCAwLjQ4OTA5MSwgMC42NTQwMjgsIDAuOTgzODgyLCAxLjE4OTk2IiwgXAotICAgICAgICAgICIwLjIxMDI1OSwgMC4yMzc1MzQsIDAuMzc5OTM0LCAwLjUwMzcwNywgMC42Njg2MjgsIDAuOTk4NDM1LCAxLjIwNDUiLCBcCi0gICAgICAgICAgIjAuMjIyMjA4LCAwLjI0OTUxOCwgMC4zOTE4OTcsIDAuNTE1NjY0LCAwLjY4MDYyLCAxLjAxMDQ2LCAxLjIxNjQ4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwNzUyNiwgMC4xNTQ0OTQsIDAuNDI3OTI5LCAwLjY3NTUzMiwgMS4wMDcwNywgMS42Njc5LCAyLjA4NDM2IiwgXAotICAgICAgICAgICIwLjEwNzUsIDAuMTU0NDg2LCAwLjQyNzg3LCAwLjY3NTU5NSwgMS4wMDUxOSwgMS42NzEzMiwgMi4wODU0NCIsIFwKLSAgICAgICAgICAiMC4xMDc1MjksIDAuMTU0NDkyLCAwLjQyODIwNywgMC42NzU1MDQsIDEuMDA2NywgMS42NzEwNiwgMi4wODcxOCIsIFwKLSAgICAgICAgICAiMC4xMDc1MzEsIDAuMTU0NDg3LCAwLjQyODM1MywgMC42NzU0OTQsIDEuMDA2ODIsIDEuNjcxMjMsIDIuMDg3NDUiLCBcCi0gICAgICAgICAgIjAuMTA3NTc2LCAwLjE1NDQ5MywgMC40Mjc5NzUsIDAuNjc1NTIyLCAxLjAwNjc1LCAxLjY3MTQ2LCAyLjA4NzEiLCBcCi0gICAgICAgICAgIjAuMTA3NzcsIDAuMTU0NTk1LCAwLjQyNzg5NiwgMC42NzU3ODIsIDEuMDA1MiwgMS42NzEzMywgMi4wODUzMyIsIFwKLSAgICAgICAgICAiMC4xMDgwNTIsIDAuMTU0OTIsIDAuNDI4NjYyLCAwLjY3NTQ1MywgMS4wMDUwNCwgMS42NzE0MiwgMi4wODY2MyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNDcyNTYsIDAuMTczMjc5LCAwLjMxMjE2MiwgMC40MzM2MzksIDAuNTk1Njc5LCAwLjkxOTMzNSwgMS4xMjE2OCIsIFwKLSAgICAgICAgICAiMC4xNTU5NTUsIDAuMTgxOTY1LCAwLjMyMDg2MywgMC40NDIzNDIsIDAuNjA0MzkxLCAwLjkyNzk4OSwgMS4xMzAzNyIsIFwKLSAgICAgICAgICAiMC4xNjY3MTMsIDAuMTkyNzMsIDAuMzMxNjA1LCAwLjQ1MzEwOSwgMC42MTUxNTgsIDAuOTM4NzIzLCAxLjE0MTA4IiwgXAotICAgICAgICAgICIwLjE3NzUzMywgMC4yMDM1NzcsIDAuMzQyNDI4LCAwLjQ2MzkxMSwgMC42MjU5NjcsIDAuOTQ5NTYxLCAxLjE1MTk0IiwgXAotICAgICAgICAgICIwLjE4ODAyNywgMC4yMTQwMjMsIDAuMzUyOTE3LCAwLjQ3NDQwNCwgMC42MzY0NTcsIDAuOTYwMDUzLCAxLjE2MjQ0IiwgXAotICAgICAgICAgICIwLjIwNDA2MiwgMC4yMzAwOTIsIDAuMzY4OTg1LCAwLjQ5MDQ2NiwgMC42NTI0ODYsIDAuOTc2MjE3LCAxLjE3ODQzIiwgXAotICAgICAgICAgICIwLjIxNzY2MSwgMC4yNDM4MDYsIDAuMzgyNjc4LCAwLjUwNDE1NywgMC42NjYxNywgMC45ODk4NTcsIDEuMTkyMTMiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTA0Mjg3LCAwLjE1MTU2OCwgMC40Mjc3MjYsIDAuNjc2MzU2LCAxLjAwODEyLCAxLjY3NjEyLCAyLjA5MDM4IiwgXAotICAgICAgICAgICIwLjEwNDI3OSwgMC4xNTE1NDQsIDAuNDI3NzMyLCAwLjY3NjM1NCwgMS4wMDczMywgMS42NzM4MywgMi4wODk0OCIsIFwKLSAgICAgICAgICAiMC4xMDQyNjksIDAuMTUxNTUxLCAwLjQyNzcyNywgMC42NzY2MTksIDEuMDA3MDEsIDEuNjc1MjEsIDIuMDkwMDYiLCBcCi0gICAgICAgICAgIjAuMTA0MjgzLCAwLjE1MTU2MiwgMC40Mjc3MDEsIDAuNjc2MzUsIDEuMDA3MzMsIDEuNjczOCwgMi4wODk2IiwgXAotICAgICAgICAgICIwLjEwNDIyNiwgMC4xNTE1NTgsIDAuNDI3Njg4LCAwLjY3NjM0NCwgMS4wMDczMywgMS42NzM2NiwgMi4wODk1NiIsIFwKLSAgICAgICAgICAiMC4xMDQ1MTYsIDAuMTUxNzA4LCAwLjQyNzc2MSwgMC42NzY0NzMsIDEuMDA3NjEsIDEuNjc1MTQsIDIuMDkwMTEiLCBcCi0gICAgICAgICAgIjAuMTA0Nzc0LCAwLjE1MTk3MywgMC40Mjc4MTUsIDAuNjc2MzIyLCAxLjAwNzU4LCAxLjY3MzY3LCAyLjA5MDIyIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE1MzY2NSwgMC4xODA3MjMsIDAuMzIyODg2LCAwLjQ0NjYxLCAwLjYxMTU2OSwgMC45NDEzOTIsIDEuMTQ3NTciLCBcCi0gICAgICAgICAgIjAuMTYyMzM0LCAwLjE4OTQ0NywgMC4zMzE2MTcsIDAuNDU1MzQxLCAwLjYyMDI5NCwgMC45NTAwNjgsIDEuMTU2MTQiLCBcCi0gICAgICAgICAgIjAuMTcyMjY0LCAwLjE5OTI5OSwgMC4zNDE0ODUsIDAuNDY1MjIxLCAwLjYzMDE3NSwgMC45NTk5MzEsIDEuMTY2MDMiLCBcCi0gICAgICAgICAgIjAuMTgxOTU1LCAwLjIwOTA1NSwgMC4zNTExOTMsIDAuNDc0OTI5LCAwLjYzOTg5MywgMC45Njk3NDMsIDEuMTc1OTIiLCBcCi0gICAgICAgICAgIjAuMTkxNDc3LCAwLjIxODUyNiwgMC4zNjA3MTksIDAuNDg0NDc1LCAwLjY0OTQxNiwgMC45NzkxNzMsIDEuMTg1MjciLCBcCi0gICAgICAgICAgIjAuMjA1ODcsIDAuMjMyOTc0LCAwLjM3NTE5NiwgMC40OTg5MjQsIDAuNjYzODg2LCAwLjk5MzY0NSwgMS4xOTk3MyIsIFwKLSAgICAgICAgICAiMC4yMTc1NywgMC4yNDQ3MjcsIDAuMzg2OTgyLCAwLjUxMDc0NSwgMC42NzU2NjEsIDEuMDA1NDUsIDEuMjExNTIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTA2ODY4LCAwLjE1MzgyMiwgMC40Mjc5NDYsIDAuNjc1MjksIDEuMDA2ODIsIDEuNjcxNzYsIDIuMDgzMjQiLCBcCi0gICAgICAgICAgIjAuMTA2ODA5LCAwLjE1MzgwNSwgMC40Mjc4ODIsIDAuNjc0MTg2LCAxLjAwNTMxLCAxLjY3MTI2LCAyLjA4Mjg3IiwgXAotICAgICAgICAgICIwLjEwNjg3NCwgMC4xNTM4MzUsIDAuNDI3MzczLCAwLjY3NTMzNiwgMS4wMDU1NiwgMS42NzExOSwgMi4wODMzMiIsIFwKLSAgICAgICAgICAiMC4xMDY4NSwgMC4xNTM4MDYsIDAuNDI3OTQ5LCAwLjY3NTI5LCAxLjAwNjg0LCAxLjY3MTc2LCAyLjA4NzYzIiwgXAotICAgICAgICAgICIwLjEwNjg5MSwgMC4xNTM4MzksIDAuNDI3MzgyLCAwLjY3NDQwNiwgMS4wMDU2MSwgMS42NzEyLCAyLjA4MzI0IiwgXAotICAgICAgICAgICIwLjEwNzExLCAwLjE1NDA1OSwgMC40Mjc1MTYsIDAuNjc1MzEzLCAxLjAwNTUxLCAxLjY3MTE2LCAyLjA4Mjk5IiwgXAotICAgICAgICAgICIwLjEwNzQ3NywgMC4xNTQzMTYsIDAuNDI4MDgzLCAwLjY3NTYyLCAxLjAwNTA4LCAxLjY3MTI0LCAyLjA4NDI0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkQiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE0NTkxNSwgMC4xNzE5MTcsIDAuMzEwNzM3LCAwLjQzMjE4MywgMC41OTQyNDgsIDAuOTE3ODE5LCAxLjEyMDE3IiwgXAotICAgICAgICAgICIwLjE1NDc1OSwgMC4xODA3NTksIDAuMzE5NTgsIDAuNDQxMDI4LCAwLjYwMzEwMywgMC45MjY3MTEsIDEuMTI4OTkiLCBcCi0gICAgICAgICAgIjAuMTY1NjAyLCAwLjE5MTYwMywgMC4zMzA0MjgsIDAuNDUxODc5LCAwLjYxMzk1MywgMC45Mzc1NzYsIDEuMTM5ODQiLCBcCi0gICAgICAgICAgIjAuMTc2NDQ1LCAwLjIwMjQ0MSwgMC4zNDEyNDksIDAuNDYyNzE2LCAwLjYyNDY2MiwgMC45NDgzNSwgMS4xNTA3MSIsIFwKLSAgICAgICAgICAiMC4xODY5NzEsIDAuMjEyOTkzLCAwLjM1MTgsIDAuNDczMjY4LCAwLjYzNTMwOCwgMC45NTg4OTQsIDEuMTYxMjgiLCBcCi0gICAgICAgICAgIjAuMjAyOTY5LCAwLjIyODk5MiwgMC4zNjc4MSwgMC40ODkyODQsIDAuNjUxMzI4LCAwLjk3NDkwNywgMS4xNzcyOCIsIFwKLSAgICAgICAgICAiMC4yMTY1OTEsIDAuMjQyNjY1LCAwLjM4MTUxOCwgMC41MDMwNCwgMC42NjQ5ODUsIDAuOTg4NTk3LCAxLjE5MDkzIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwNDE4NiwgMC4xNTE0NjQsIDAuNDI3NjAyLCAwLjY3NjI2NywgMS4wMDcxMywgMS42NzUyMywgMi4wODg4MiIsIFwKLSAgICAgICAgICAiMC4xMDQxODIsIDAuMTUxNDU4LCAwLjQyNzYzMiwgMC42NzYyNTIsIDEuMDA3LCAxLjY3MzczLCAyLjA5MDAzIiwgXAotICAgICAgICAgICIwLjEwNDE2OSwgMC4xNTE0NTEsIDAuNDI3NjQsIDAuNjc2MjM1LCAxLjAwNzQsIDEuNjc1OTYsIDIuMDg5OTciLCBcCi0gICAgICAgICAgIjAuMTA0MTgsIDAuMTUxNDY4LCAwLjQyNzYzNSwgMC42NzYyNTIsIDEuMDA3ODYsIDEuNjczOTQsIDIuMDg5NDkiLCBcCi0gICAgICAgICAgIjAuMTA0MTc0LCAwLjE1MTQ2MiwgMC40Mjc1OTgsIDAuNjc2MjU4LCAxLjAwNzI0LCAxLjY3MzgxLCAyLjA4OTM1IiwgXAotICAgICAgICAgICIwLjEwNDQ0NywgMC4xNTE2MTUsIDAuNDI3NjM4LCAwLjY3NjI4MywgMS4wMDcyNSwgMS42NzM2OSwgMi4wODk0NiIsIFwKLSAgICAgICAgICAiMC4xMDQ3NTksIDAuMTUxODk3LCAwLjQyNzc1LCAwLjY3NjUzOSwgMS4wMDc1MywgMS42NzU1NiwgMi4wODk4NiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNTM0OTQsIDAuMTgwNTgzLCAwLjMyMjc1LCAwLjQ0NjUwOSwgMC42MTE0MzgsIDAuOTQxMjA0LCAxLjE0NzI5IiwgXAotICAgICAgICAgICIwLjE2MjAwNiwgMC4xODkwNjUsIDAuMzMxMjI1LCAwLjQ1NDk1OSwgMC42MTk5MTcsIDAuOTQ5NjgxLCAxLjE1NTc3IiwgXAotICAgICAgICAgICIwLjE3MTcyOSwgMC4xOTg4MTQsIDAuMzQwOTQzLCAwLjQ2NDY4LCAwLjYyOTYyOSwgMC45NTk0NjgsIDEuMTY1NTkiLCBcCi0gICAgICAgICAgIjAuMTgxMzg3LCAwLjIwODQ3OSwgMC4zNTA2MTQsIDAuNDc0MzU1LCAwLjYzOTMxNywgMC45NjkxNjQsIDEuMTc1MzIiLCBcCi0gICAgICAgICAgIjAuMTkwNzc1LCAwLjIxNzg4NSwgMC4zNjAwNCwgMC40ODM3ODMsIDAuNjQ4NzM5LCAwLjk3ODU4NCwgMS4xODQ1NyIsIFwKLSAgICAgICAgICAiMC4yMDUwNzksIDAuMjMyMTYyLCAwLjM3NDM2NywgMC40OTgxMTEsIDAuNjYzMDQxLCAwLjk5MjgzNywgMS4xOTg5NCIsIFwKLSAgICAgICAgICAiMC4yMTY4NjksIDAuMjQzOTgsIDAuMzg2MjcyLCAwLjUwOTk5LCAwLjY3NDk1MiwgMS4wMDQ3NSwgMS4yMTA4MSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDY4MDMsIDAuMTUzODQ4LCAwLjQyNzM4OSwgMC42NzU0OTMsIDEuMDA1NDUsIDEuNjcxMiwgMi4wODMxNyIsIFwKLSAgICAgICAgICAiMC4xMDY4NTEsIDAuMTUzODAxLCAwLjQyNzcyMSwgMC42NzQyNTQsIDEuMDA1NDgsIDEuNjcxMTgsIDIuMDgzMTciLCBcCi0gICAgICAgICAgIjAuMTA2ODE4LCAwLjE1Mzc1LCAwLjQyNzkyNCwgMC42NzUyNzEsIDEuMDA2NjksIDEuNjcxNTEsIDIuMDg3NDMiLCBcCi0gICAgICAgICAgIjAuMTA2NzI4LCAwLjE1Mzc3MSwgMC40Mjc4NjEsIDAuNjc1Mjg1LCAxLjAwNjgsIDEuNjcxNjcsIDIuMDg3NDkiLCBcCi0gICAgICAgICAgIjAuMTA2ODEsIDAuMTUzODA0LCAwLjQyODE0NCwgMC42NzUzMDYsIDEuMDA1MDQsIDEuNjY3ODIsIDIuMDg2NTEiLCBcCi0gICAgICAgICAgIjAuMTA3MTIsIDAuMTU0MDU1LCAwLjQyNzQ1MiwgMC42NzUzMDksIDEuMDA2NiwgMS42NzExNSwgMi4wODY4MSIsIFwKLSAgICAgICAgICAiMC4xMDc0MiwgMC4xNTQ1MDMsIDAuNDI4MjM1LCAwLjY3NTM2NSwgMS4wMDUwOCwgMS42NzEyOCwgMi4wODU3NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTQ0ODAzLCAwLjE3MDk2OSwgMC4zMDk5MTUsIDAuNDMxMzkxLCAwLjU5MzM5MiwgMC45MTcwNTksIDEuMTE5NDYiLCBcCi0gICAgICAgICAgIjAuMTUzOTczLCAwLjE4MDEwNCwgMC4zMTkwODUsIDAuNDQwNTQ5LCAwLjYwMjY0MSwgMC45MjYxOTksIDEuMTI4NTYiLCBcCi0gICAgICAgICAgIjAuMTY1NjMzLCAwLjE5MTc1LCAwLjMzMDc1NywgMC40NTIyNiwgMC42MTQzMDUsIDAuOTM3ODg0LCAxLjE0MDI3IiwgXAotICAgICAgICAgICIwLjE3NzMyNCwgMC4yMDM0NjIsIDAuMzQyNDUyLCAwLjQ2MzkyLCAwLjYyNjAwOSwgMC45NDk1ODYsIDEuMTUyMDciLCBcCi0gICAgICAgICAgIjAuMTg5MDg5LCAwLjIxNTIyNSwgMC4zNTQyMjUsIDAuNDc1NzExLCAwLjYzNzc3OSwgMC45NjEzNjcsIDEuMTYzNzUiLCBcCi0gICAgICAgICAgIjAuMjA3NDAxLCAwLjIzMzUzMiwgMC4zNzI1NDQsIDAuNDk0MDM4LCAwLjY1NTk4LCAwLjk3OTcwMiwgMS4xODIwNyIsIFwKLSAgICAgICAgICAiMC4yMjI0NzYsIDAuMjQ4NjcyLCAwLjM4NzY3LCAwLjUwOTEzNiwgMC42NzExNTUsIDAuOTk0OTE1LCAxLjE5NzI2Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwNDgwOSwgMC4xNTIwNTcsIDAuNDI3OTk5LCAwLjY3NjUxLCAxLjAwOTQ3LCAxLjY3NjA3LCAyLjA5MzEzIiwgXAotICAgICAgICAgICIwLjEwNDgwNCwgMC4xNTIwNjEsIDAuNDI3OTgyLCAwLjY3Njc0NSwgMS4wMDkyNiwgMS42NzU4OCwgMi4wOTI4NyIsIFwKLSAgICAgICAgICAiMC4xMDQ3OTksIDAuMTUyMDc2LCAwLjQyODA1NywgMC42NzY3NjIsIDEuMDA5MzksIDEuNjc1NTgsIDIuMDkyODEiLCBcCi0gICAgICAgICAgIjAuMTA0ODQ0LCAwLjE1MjA5NCwgMC40MjgzNTMsIDAuNjc2NDc1LCAxLjAwNzk0LCAxLjY3NTksIDIuMDkzMiIsIFwKLSAgICAgICAgICAiMC4xMDQ4NCwgMC4xNTIxMTQsIDAuNDI3OTkyLCAwLjY3NjQ5MiwgMS4wMDkyNCwgMS42NzU4MywgMi4wOTI3NiIsIFwKLSAgICAgICAgICAiMC4xMDUwNzksIDAuMTUyMjQxLCAwLjQyODAzMiwgMC42NzY0OTksIDEuMDA5MzEsIDEuNjc1ODYsIDIuMDkyODgiLCBcCi0gICAgICAgICAgIjAuMTA1NjM3LCAwLjE1MjY0NCwgMC40MjgwODcsIDAuNjc2Njg4LCAxLjAwOTI5LCAxLjY3NTg5LCAyLjA5MjcxIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE1MDg5MSwgMC4xNzgwOTgsIDAuMzIwNDY3LCAwLjQ0NDE5OCwgMC42MDkxNDksIDAuOTM4OTU1LCAxLjE0NTEiLCBcCi0gICAgICAgICAgIjAuMTU5NjkyLCAwLjE4NjkwNiwgMC4zMjkyNiwgMC40NTMwMDQsIDAuNjE3OTcsIDAuOTQ3ODI1LCAxLjE1Mzg2IiwgXAotICAgICAgICAgICIwLjE3MDkzMiwgMC4xOTgxNjksIDAuMzQwNTYyLCAwLjQ2NDMwMSwgMC42MjkyMzMsIDAuOTU5MDQ2LCAxLjE2NTE0IiwgXAotICAgICAgICAgICIwLjE4MjMzMywgMC4yMDk1OSwgMC4zNTE5MzMsIDAuNDc1Njk3LCAwLjY0MDY1MiwgMC45NzA0OCwgMS4xNzY1MSIsIFwKLSAgICAgICAgICAiMC4xOTM3MzEsIDAuMjIwOTY4LCAwLjM2MzMyNiwgMC40ODcwOTIsIDAuNjUyMDQ4LCAwLjk4MTg3NSwgMS4xODc5MSIsIFwKLSAgICAgICAgICAiMC4yMTEwMjEsIDAuMjM4MjQ0LCAwLjM4MDYzNSwgMC41MDQ0MDYsIDAuNjY5MzQ4LCAwLjk5OTE1NiwgMS4yMDUyMyIsIFwKLSAgICAgICAgICAiMC4yMjUwNjYsIDAuMjUyMzI1LCAwLjM5NDc0NiwgMC41MTg1MDksIDAuNjgzNDYyLCAxLjAxMzI4LCAxLjIxOTM1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwNzQ1NiwgMC4xNTQ0ODcsIDAuNDI4MjgzLCAwLjY3NTUsIDEuMDA2OTIsIDEuNjcxNjIsIDIuMDg3MjEiLCBcCi0gICAgICAgICAgIjAuMTA3NDYzLCAwLjE1NDQ4NCwgMC40Mjg0NDgsIDAuNjc1NTI1LCAxLjAwNzAxLCAxLjY3MTU4LCAyLjA4NzAzIiwgXAotICAgICAgICAgICIwLjEwNzUwNywgMC4xNTQ0OTIsIDAuNDI4MzA1LCAwLjY3NTUxNCwgMS4wMDY3MywgMS42NzE0MSwgMi4wODcwOCIsIFwKLSAgICAgICAgICAiMC4xMDc0OTgsIDAuMTU0NDk4LCAwLjQyODQzMywgMC42NzU1MDksIDEuMDA2NTcsIDEuNjcxNDQsIDIuMDg2NyIsIFwKLSAgICAgICAgICAiMC4xMDc0OTksIDAuMTU0NTExLCAwLjQyODI4NywgMC42NzU1MDEsIDEuMDA3MjgsIDEuNjcxNTQsIDIuMDg3MTMiLCBcCi0gICAgICAgICAgIjAuMTA3ODA2LCAwLjE1NDY5NCwgMC40MjgwMTMsIDAuNjc1ODM2LCAxLjAwNjc0LCAxLjY3MTUyLCAyLjA4NzIyIiwgXAotICAgICAgICAgICIwLjEwODMyLCAwLjE1NTExOSwgMC40MjgxOTcsIDAuNjc1ODA5LCAxLjAwNTI1LCAxLjY3MTM1LCAyLjA4NjY4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlMwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNzE5ODQsIDAuMTk4MDkyLCAwLjMzNzA2NiwgMC40NTg1ODgsIDAuNjIwNiwgMC45NDQxNDgsIDEuMTQ2NTEiLCBcCi0gICAgICAgICAgIjAuMTgxODYyLCAwLjIwNzk4OCwgMC4zNDY5NDMsIDAuNDY4Mzk3LCAwLjYzMDQ4OSwgMC45NTQwMjgsIDEuMTU2MzYiLCBcCi0gICAgICAgICAgIjAuMTkzNzQ3LCAwLjIxOTgzNiwgMC4zNTg4MjEsIDAuNDgwMjg4LCAwLjY0MjIyLCAwLjk2NTkxNSwgMS4xNjgyOCIsIFwKLSAgICAgICAgICAiMC4yMDQyNjgsIDAuMjMwMzY2LCAwLjM2OTM0NywgMC40OTA4MTMsIDAuNjUyODY2LCAwLjk3NjQ0LCAxLjE3ODgiLCBcCi0gICAgICAgICAgIjAuMjEzNjA0LCAwLjIzOTY5OSwgMC4zNzg2OTMsIDAuNTAwMTU5LCAwLjY2MjI1MywgMC45ODU4MTcsIDEuMTg4MTIiLCBcCi0gICAgICAgICAgIjAuMjI1OTI1LCAwLjI1MjA4NiwgMC4zOTEwNzEsIDAuNTEyNDgzLCAwLjY3NDYxMywgMC45OTgxMDgsIDEuMjAwNDkiLCBcCi0gICAgICAgICAgIjAuMjM1MDU1LCAwLjI2MTE5OCwgMC40MDAxODgsIDAuNTIxNjQ5LCAwLjY4MzYyNywgMS4wMDcyNSwgMS4yMDk1OSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDQ3NzUsIDAuMTUyMDE4LCAwLjQyODEzOCwgMC42NzY3OSwgMS4wMDk0MiwgMS42NzU5MywgMi4wOTMwOCIsIFwKLSAgICAgICAgICAiMC4xMDQ3NzQsIDAuMTUyMDM1LCAwLjQyNzk4MywgMC42NzY2NTMsIDEuMDA5MzksIDEuNjc1ODYsIDIuMDkyODYiLCBcCi0gICAgICAgICAgIjAuMTA0Nzc4LCAwLjE1MjAzNiwgMC40MjgxMjUsIDAuNjc2NDE0LCAxLjAwOTQ0LCAxLjY3NjEzLCAyLjA5MzE1IiwgXAotICAgICAgICAgICIwLjEwNDc2OCwgMC4xNTIwMzUsIDAuNDI4Mjc5LCAwLjY3NjY2NywgMS4wMDk0NiwgMS42NzYxMiwgMi4wOTMwMiIsIFwKLSAgICAgICAgICAiMC4xMDQ3NzMsIDAuMTUyMDI4LCAwLjQyODMwNCwgMC42NzY0MTEsIDEuMDA5MzgsIDEuNjc2MDcsIDIuMDkyNzEiLCBcCi0gICAgICAgICAgIjAuMTA0Nzk0LCAwLjE1MjA0NywgMC40MjgwNDksIDAuNjc2NDg5LCAxLjAwODAzLCAxLjY3NTg4LCAyLjA5MDM1IiwgXAotICAgICAgICAgICIwLjEwNTAyMywgMC4xNTIyNDksIDAuNDI3OTg3LCAwLjY3NjQ2OCwgMS4wMDkxMSwgMS42NzU3NiwgMi4wOTI0NSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNzYzNjQsIDAuMjAzNjIxLCAwLjM0NTk5NiwgMC40Njk3MjQsIDAuNjM0NjgsIDAuOTY0NDgsIDEuMTcwNTUiLCBcCi0gICAgICAgICAgIjAuMTg2NjI0LCAwLjIxMzg3OCwgMC4zNTYyNTYsIDAuNDc5OTg0LCAwLjY0NDkzOCwgMC45NzQ3NDIsIDEuMTgwODEiLCBcCi0gICAgICAgICAgIjAuMTk4OTkzLCAwLjIyNjIxNSwgMC4zNjg2MDgsIDAuNDkyMzQyLCAwLjY1NzI5NSwgMC45ODcxNywgMS4xOTMzMiIsIFwKLSAgICAgICAgICAiMC4yMTAyMTMsIDAuMjM3NDY2LCAwLjM3OTgxNiwgMC41MDM1NTEsIDAuNjY4NTg0LCAwLjk5ODMzMiwgMS4yMDQzOCIsIFwKLSAgICAgICAgICAiMC4yMjAyNDMsIDAuMjQ3NDg5LCAwLjM4OTYyNSwgMC41MTM2MjYsIDAuNjc4MzA5LCAxLjAwODExLCAxLjIxNDE4IiwgXAotICAgICAgICAgICIwLjIzMzc2OCwgMC4yNjA1ODYsIDAuNDAzMzg4LCAwLjUyNzE0NSwgMC42OTIwOTMsIDEuMDIxOTEsIDEuMjI3OTQiLCBcCi0gICAgICAgICAgIjAuMjQzODk1LCAwLjI3MTAyNiwgMC40MTMzOTYsIDAuNTM3MzA0LCAwLjcwMjI1MiwgMS4wMzIwOCwgMS4yMzgxMSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDc1NTYsIDAuMTU0NTQzLCAwLjQyODQzMiwgMC42NzU4OTMsIDEuMDA3LCAxLjY3MTU5LCAyLjA4NzcxIiwgXAotICAgICAgICAgICIwLjEwNzUzNiwgMC4xNTQ1MTEsIDAuNDI4NDIxLCAwLjY3NTM2MSwgMS4wMDY3NiwgMS42NzE0NywgMi4wODY5MSIsIFwKLSAgICAgICAgICAiMC4xMDc1NiwgMC4xNTQ1NDUsIDAuNDI4Mjg1LCAwLjY3NTczNywgMS4wMDY4MSwgMS42NzE3NywgMi4wODc0MiIsIFwKLSAgICAgICAgICAiMC4xMDc1NjQsIDAuMTU0NTE1LCAwLjQyODI0NiwgMC42NzU3MiwgMS4wMDczNCwgMS42NzE3MywgMi4wODY3OSIsIFwKLSAgICAgICAgICAiMC4xMDc1MywgMC4xNTQ1NDgsIDAuNDI4MjY2LCAwLjY3NTYzNCwgMS4wMDY1OSwgMS42NzE2OCwgMi4wODY4NiIsIFwKLSAgICAgICAgICAiMC4xMDc1MTEsIDAuMTU0NTIsIDAuNDI4NDY0LCAwLjY3NTUwNSwgMS4wMDY4MiwgMS42NzE3MSwgMi4wODc0NCIsIFwKLSAgICAgICAgICAiMC4xMDc3MTMsIDAuMTU0Njg5LCAwLjQyODUyOCwgMC42NzU3OTQsIDEuMDA2NiwgMS42NzE0NiwgMi4wODY3OCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTMSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTA0NTQsIDAuMTMwNDA1LCAwLjI2ODk5MywgMC4zOTAzOTcsIDAuNTUyMzQ0LCAwLjg3NjIwNSwgMS4wNzg0OCIsIFwKLSAgICAgICAgICAiMC4xMTM3MzksIDAuMTM5NjI0LCAwLjI3ODE4NiwgMC4zOTk1NjYsIDAuNTYxNTI0LCAwLjg4NTMzMiwgMS4wODc4NCIsIFwKLSAgICAgICAgICAiMC4xMjUwNzYsIDAuMTUwOTQyLCAwLjI4OTUwMywgMC40MTA4OSwgMC41NzI3ODUsIDAuODk2NjUyLCAxLjA5OSIsIFwKLSAgICAgICAgICAiMC4xMzY0OTcsIDAuMTYyMzU2LCAwLjMwMDkzNiwgMC40MjIzMiwgMC41ODQyODUsIDAuOTA4MTE3LCAxLjExMDUxIiwgXAotICAgICAgICAgICIwLjE0NzM1NCwgMC4xNzMyMzYsIDAuMzExODAyLCAwLjQzMzE3OSwgMC41OTUyMDIsIDAuOTE4OTUsIDEuMTIxMTUiLCBcCi0gICAgICAgICAgIjAuMTYyODk4LCAwLjE4ODgwOCwgMC4zMjc0NSwgMC40NDg4NTcsIDAuNjEwODI4LCAwLjkzNDY4NSwgMS4xMzcwMSIsIFwKLSAgICAgICAgICAiMC4xNzUwNzYsIDAuMjAwOTkyLCAwLjMzOTY3NSwgMC40NjEwODcsIDAuNjIyODk2LCAwLjk0NjcyNywgMS4xNDkxOSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDM2MzYsIDAuMTUwOTk5LCAwLjQyNzI4NSwgMC42NzYyNTksIDEuMDA2OTUsIDEuNjcyOTcsIDIuMDkyMjMiLCBcCi0gICAgICAgICAgIjAuMTAzNTQ3LCAwLjE1MDk5NiwgMC40MjcyNzgsIDAuNjc1OTU5LCAxLjAwNjk2LCAxLjY3MjE2LCAyLjA5MDI5IiwgXAotICAgICAgICAgICIwLjEwMzQ2NiwgMC4xNTA5MDQsIDAuNDI3MjUzLCAwLjY3NTk0MiwgMS4wMDc1NCwgMS42NzIyMiwgMi4wOTAxNiIsIFwKLSAgICAgICAgICAiMC4xMDMyMTYsIDAuMTUwNzY0LCAwLjQyNzIwOSwgMC42NzU4NzYsIDEuMDA2OTUsIDEuNjcxOTksIDIuMDkwNDEiLCBcCi0gICAgICAgICAgIjAuMTAzMTUzLCAwLjE1MDcxNiwgMC40MjY5OTgsIDAuNjc1ODQ2LCAxLjAwNzAxLCAxLjY3MzgzLCAyLjA5MjgxIiwgXAotICAgICAgICAgICIwLjEwNDAxLCAwLjE1MTIxOCwgMC40Mjc2OTUsIDAuNjc1MTAxLCAxLjAwNjg4LCAxLjY3MjksIDIuMDkwMjgiLCBcCi0gICAgICAgICAgIjAuMTA0OTczLCAwLjE1MTg4MiwgMC40Mjc5NTMsIDAuNjc2MzIzLCAxLjAwODg3LCAxLjY3MjQ3LCAyLjA4ODA3Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExMTAzLCAwLjEzODEyMiwgMC4yODAyMjMsIDAuNDAzODg1LCAwLjU2ODg0OSwgMC44OTg2ODcsIDEuMTA0ODIiLCBcCi0gICAgICAgICAgIjAuMTE5ODkyLCAwLjE0Njk4NCwgMC4yODkwODcsIDAuNDEyNzUsIDAuNTc3NjU5LCAwLjkwNzY2NCwgMS4xMTQiLCBcCi0gICAgICAgICAgIjAuMTMwODI4LCAwLjE1Nzg5OCwgMC4zMDAwMjcsIDAuNDIzNjk1LCAwLjU4ODYwMywgMC45MTg0NTIsIDEuMTI0NjUiLCBcCi0gICAgICAgICAgIjAuMTQxODYyLCAwLjE2ODkyNywgMC4zMTEwNDYsIDAuNDM0NzI1LCAwLjU5OTYyLCAwLjkyOTQzOSwgMS4xMzU3OSIsIFwKLSAgICAgICAgICAiMC4xNTIyOTcsIDAuMTc5Mzk3LCAwLjMyMTUxOSwgMC40NDUyLCAwLjYxMDExOSwgMC45Mzk4NjQsIDEuMTQ2MjciLCBcCi0gICAgICAgICAgIjAuMTY3MDI3LCAwLjE5NDE2MywgMC4zMzYzMDQsIDAuNDYwMDA2LCAwLjYyNDkxNCwgMC45NTQ3NDYsIDEuMTYxMDEiLCBcCi0gICAgICAgICAgIjAuMTc4MzY5LCAwLjIwNTUzNiwgMC4zNDc4NSwgMC40NzE1NTUsIDAuNjM2NTA2LCAwLjk2NjU3LCAxLjE3MjY3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwNjc1NywgMC4xNTM5MDgsIDAuNDI3NzA2LCAwLjY3NTIwOCwgMS4wMDY5NSwgMS42NjYzNywgMi4wODEwMiIsIFwKLSAgICAgICAgICAiMC4xMDY3MDUsIDAuMTUzODc0LCAwLjQyNzkzNywgMC42NzUxNzMsIDEuMDA1MzIsIDEuNjY3ODksIDIuMDgxOTciLCBcCi0gICAgICAgICAgIjAuMTA2NTMzLCAwLjE1Mzc4NCwgMC40Mjc5MTIsIDAuNjc1MjI2LCAxLjAwNTE4LCAxLjY2ODA0LCAyLjA4MDY1IiwgXAotICAgICAgICAgICIwLjEwNjI4NywgMC4xNTM2MDksIDAuNDI3ODM1LCAwLjY3NDE0NCwgMS4wMDQ4NywgMS42NzE0LCAyLjA4MjE4IiwgXAotICAgICAgICAgICIwLjEwNjEyOSwgMC4xNTM1MDQsIDAuNDI3NDMyLCAwLjY3NDE1OSwgMS4wMDY3NSwgMS42NzExNiwgMi4wODIzIiwgXAotICAgICAgICAgICIwLjEwNjYzNCwgMC4xNTM4MDIsIDAuNDI4MDUxLCAwLjY3NDIzNiwgMS4wMDQ5NiwgMS42NzAyMiwgMi4wODAzIiwgXAotICAgICAgICAgICIwLjEwNzIzLCAwLjE1NDI5NSwgMC40MjgyNzYsIDAuNjc1NDQyLCAxLjAwNjkzLCAxLjY2NzEzLCAyLjA4MjU0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlMxIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTE4MjMsIDAuMTM3ODM0LCAwLjI3NjU5NiwgMC4zOTgwMDksIDAuNTYwMDA0LCAwLjg4Mzk2MSwgMS4wODU5OCIsIFwKLSAgICAgICAgICAiMC4xMjE5LCAwLjE0NzkyMiwgMC4yODY2NzEsIDAuNDA4MDY1LCAwLjU3MDA4NywgMC44OTM3MzUsIDEuMDk2NjEiLCBcCi0gICAgICAgICAgIjAuMTMzOTA1LCAwLjE1OTkwMSwgMC4yOTg2NjQsIDAuNDIwMDY4LCAwLjU4MjA5LCAwLjkwNTk1NSwgMS4xMDgzMyIsIFwKLSAgICAgICAgICAiMC4xNDQzMjQsIDAuMTcwMzQyLCAwLjMwOTEwMiwgMC40MzA1NjUsIDAuNTkyNTA0LCAwLjkxNjQ1LCAxLjExODYyIiwgXAotICAgICAgICAgICIwLjE1MjU3MSwgMC4xNzg1NjMsIDAuMzE3MzE3LCAwLjQzODcyMywgMC42MDA1OTMsIDAuOTI0ODE1LCAxLjEyNzIiLCBcCi0gICAgICAgICAgIjAuMTYzNDc1LCAwLjE4OTUwMywgMC4zMjgyNTcsIDAuNDQ5NzM1LCAwLjYxMTY3OSwgMC45MzU1NjgsIDEuMTM3OCIsIFwKLSAgICAgICAgICAiMC4xNzE3NTEsIDAuMTk3NjMxLCAwLjMzNjM4OSwgMC40NTc3OTEsIDAuNjE5NzQ1LCAwLjk0MzczMiwgMS4xNDU4NSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDQwMTQsIDAuMTUxMzk3LCAwLjQyNzUxOSwgMC42NzYzODEsIDEuMDA2OTEsIDEuNjcyNzksIDIuMDkyMjciLCBcCi0gICAgICAgICAgIjAuMTA0MDE0LCAwLjE1MTQxNywgMC40Mjc1NzEsIDAuNjc2MDcyLCAxLjAwOTE3LCAxLjY3NjE5LCAyLjA4OTEzIiwgXAotICAgICAgICAgICIwLjEwMzk3LCAwLjE1MTM2NCwgMC40Mjc4NzIsIDAuNjc2MDcsIDEuMDA5MDcsIDEuNjczMTUsIDIuMDkwNDciLCBcCi0gICAgICAgICAgIjAuMTAzNzcyLCAwLjE1MTI3OCwgMC40Mjc1LCAwLjY3NjM4NiwgMS4wMDY5OCwgMS42NzI4NywgMi4wOTIwNSIsIFwKLSAgICAgICAgICAiMC4xMDM3NjgsIDAuMTUxMjU1LCAwLjQyNzQ5MSwgMC42NzYwNDMsIDEuMDA5MDEsIDEuNjcyODcsIDIuMDg5MDYiLCBcCi0gICAgICAgICAgIjAuMTAzNTQzLCAwLjE1MTAyNCwgMC40Mjc1MTYsIDAuNjc1MzY1LCAxLjAwNjk4LCAxLjY3Mjg5LCAyLjA5MiIsIFwKLSAgICAgICAgICAiMC4xMDMzODksIDAuMTUwOTE5LCAwLjQyNzcyMywgMC42NzYxNjcsIDEuMDA5MjIsIDEuNjcyODcsIDIuMDkxOTgiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTE4MjM3LCAwLjE0NTI1NCwgMC4yODcyNTcsIDAuNDEwOTMxLCAwLjU3NTgxMiwgMC45MDU5OTEsIDEuMTExNzgiLCBcCi0gICAgICAgICAgIjAuMTI4NzM4LCAwLjE1NTc3MSwgMC4yOTc3OTMsIDAuNDIxNDgsIDAuNTg2Mzg1LCAwLjkxNjI2OCwgMS4xMjIzOCIsIFwKLSAgICAgICAgICAiMC4xNDEzNTYsIDAuMTY4Mzc1LCAwLjMxMDM3MSwgMC40MzQwNjEsIDAuNTk4OTg3LCAwLjkyODgxMSwgMS4xMzQ5NSIsIFwKLSAgICAgICAgICAiMC4xNTI1MDMsIDAuMTc5NTA3LCAwLjMyMTUwNiwgMC40NDUxOTQsIDAuNjEwMTU3LCAwLjkzOTg4MSwgMS4xNDYyNSIsIFwKLSAgICAgICAgICAiMC4xNjEzNDcsIDAuMTg4MzIsIDAuMzMwMzUyLCAwLjQ1NDAyOSwgMC42MTg5MTIsIDAuOTQ4ODU4LCAxLjE1NTIzIiwgXAotICAgICAgICAgICIwLjE3MzQ4MywgMC4yMDA0OTMsIDAuMzQyNDg1LCAwLjQ2NjE4NywgMC42MzExMSwgMC45NjEwMDEsIDEuMTY3MTYiLCBcCi0gICAgICAgICAgIjAuMTgyNTY2LCAwLjIwOTQ5MSwgMC4zNTE1MzQsIDAuNDc1MjQ1LCAwLjY0MDEyMiwgMC45Njk5NDcsIDEuMTc2NjQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTA2Mjc2LCAwLjE1MzM5MSwgMC40MjcyMiwgMC42NzM5ODMsIDEuMDA2MDksIDEuNjY3NDcsIDIuMDg3NCIsIFwKLSAgICAgICAgICAiMC4xMDYyNzMsIDAuMTUzNDE4LCAwLjQyNzcyMiwgMC42NzQsIDEuMDA1NDMsIDEuNjY4NDksIDIuMDgxMTYiLCBcCi0gICAgICAgICAgIjAuMTA2MjE5LCAwLjE1MzM2MSwgMC40Mjc1MzgsIDAuNjc0Mzk0LCAxLjAwNjYyLCAxLjY2ODM0LCAyLjA4NzM0IiwgXAotICAgICAgICAgICIwLjEwNjE0NSwgMC4xNTMzMTMsIDAuNDI3NDc1LCAwLjY3NTAzMywgMS4wMDQ4MywgMS42NzExNCwgMi4wODE2NiIsIFwKLSAgICAgICAgICAiMC4xMDYwNzQsIDAuMTUzMjgxLCAwLjQyNzY2MywgMC42NzUwMzEsIDEuMDA2MzQsIDEuNjY4NzEsIDIuMDgyMzkiLCBcCi0gICAgICAgICAgIjAuMTA1ODY1LCAwLjE1MzA2NCwgMC40Mjc3MjYsIDAuNjc0MDA4LCAxLjAwNDkxLCAxLjY2ODIyLCAyLjA4MDkyIiwgXAotICAgICAgICAgICIwLjEwNTc0NSwgMC4xNTI5NzIsIDAuNDI3Njk3LCAwLjY3NDEwOSwgMS4wMDYzMywgMS42NzEyMSwgMi4wODQyMiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjQzOCwgMC4wMDI0NDksIDAuMDAyNDcyLCAwLjAwMjQ3NywgMC4wMDI0NzksIDAuMDAyNDgzLCAwLjAwMjQ4NCIsIFwKLSAgICAgICAgICAiMC4wMDI0MjIsIDAuMDAyNDM0LCAwLjAwMjQ1NywgMC4wMDI0NjIsIDAuMDAyNDY1LCAwLjAwMjQ2NywgMC4wMDI0NjkiLCBcCi0gICAgICAgICAgIjAuMDAyNDEzLCAwLjAwMjQyNSwgMC4wMDI0NDcsIDAuMDAyNDUzLCAwLjAwMjQ1NiwgMC4wMDI0NTksIDAuMDAyNDYxIiwgXAotICAgICAgICAgICIwLjAwMjQwNywgMC4wMDI0MTgsIDAuMDAyNDQyLCAwLjAwMjQ0OCwgMC4wMDI0NTIsIDAuMDAyNDU1LCAwLjAwMjQ1NiIsIFwKLSAgICAgICAgICAiMC4wMDI0MDMsIDAuMDAyNDE0LCAwLjAwMjQzOSwgMC4wMDI0NDUsIDAuMDAyNDQ5LCAwLjAwMjQ1MiwgMC4wMDI0NTMiLCBcCi0gICAgICAgICAgIjAuMDAyNDAxLCAwLjAwMjQxMiwgMC4wMDI0MzcsIDAuMDAyNDQ0LCAwLjAwMjQ0OCwgMC4wMDI0NTIsIDAuMDAyNDUzIiwgXAotICAgICAgICAgICIwLjAwMjQwNCwgMC4wMDI0MTQsIDAuMDAyNDQsIDAuMDAyNDQ2LCAwLjAwMjQ1MSwgMC4wMDI0NTUsIDAuMDAyNDU3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0OTQ1LCAwLjAwNDk2MSwgMC4wMDQ5ODksIDAuMDA0OTk2LCAwLjAwNSwgMC4wMDUwMDQsIDAuMDA1MDA1IiwgXAotICAgICAgICAgICIwLjAwNDkzNywgMC4wMDQ5NTIsIDAuMDA0OTgxLCAwLjAwNDk4OCwgMC4wMDQ5OTIsIDAuMDA0OTk2LCAwLjAwNDk5NyIsIFwKLSAgICAgICAgICAiMC4wMDQ5MywgMC4wMDQ5NDUsIDAuMDA0OTc1LCAwLjAwNDk4MiwgMC4wMDQ5ODcsIDAuMDA0OTkxLCAwLjAwNDk5MiIsIFwKLSAgICAgICAgICAiMC4wMDQ5MjYsIDAuMDA0OTQxLCAwLjAwNDk3MiwgMC4wMDQ5NzksIDAuMDA0OTg0LCAwLjAwNDk4OCwgMC4wMDQ5ODkiLCBcCi0gICAgICAgICAgIjAuMDA0OTI0LCAwLjAwNDkzOCwgMC4wMDQ5NywgMC4wMDQ5NzgsIDAuMDA0OTgzLCAwLjAwNDk4NywgMC4wMDQ5ODgiLCBcCi0gICAgICAgICAgIjAuMDA0OTIxLCAwLjAwNDkzNiwgMC4wMDQ5NjgsIDAuMDA0OTc3LCAwLjAwNDk4MiwgMC4wMDQ5ODcsIDAuMDA0OTg5IiwgXAotICAgICAgICAgICIwLjAwNDkyNSwgMC4wMDQ5MzcsIDAuMDA0OTY5LCAwLjAwNDk3OCwgMC4wMDQ5ODQsIDAuMDA0OTg5LCAwLjAwNDk5MSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjMyOSwgMC4wMDIzNCwgMC4wMDIzNjIsIDAuMDAyMzY5LCAwLjAwMjM3MSwgMC4wMDIzNzQsIDAuMDAyMzc1IiwgXAotICAgICAgICAgICIwLjAwMjMxMiwgMC4wMDIzMjQsIDAuMDAyMzQ2LCAwLjAwMjM1MiwgMC4wMDIzNTUsIDAuMDAyMzU4LCAwLjAwMjM1OSIsIFwKLSAgICAgICAgICAiMC4wMDIzMDMsIDAuMDAyMzE1LCAwLjAwMjMzOCwgMC4wMDIzNDQsIDAuMDAyMzQ3LCAwLjAwMjM1LCAwLjAwMjM1MSIsIFwKLSAgICAgICAgICAiMC4wMDIyOTcsIDAuMDAyMzA5LCAwLjAwMjMzMiwgMC4wMDIzMzksIDAuMDAyMzQyLCAwLjAwMjM0NSwgMC4wMDIzNDYiLCBcCi0gICAgICAgICAgIjAuMDAyMjkzLCAwLjAwMjMwNCwgMC4wMDIzMjksIDAuMDAyMzM1LCAwLjAwMjMzOSwgMC4wMDIzNDMsIDAuMDAyMzQ0IiwgXAotICAgICAgICAgICIwLjAwMjI5MSwgMC4wMDIzMDIsIDAuMDAyMzI3LCAwLjAwMjMzNCwgMC4wMDIzMzksIDAuMDAyMzQyLCAwLjAwMjM0MyIsIFwKLSAgICAgICAgICAiMC4wMDIyOTQsIDAuMDAyMzA0LCAwLjAwMjMyOSwgMC4wMDIzMzYsIDAuMDAyMzQxLCAwLjAwMjM0NSwgMC4wMDIzNDYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDUxMDYsIDAuMDA1MTIxLCAwLjAwNTE1LCAwLjAwNTE1NywgMC4wMDUxNjEsIDAuMDA1MTY1LCAwLjAwNTE2NiIsIFwKLSAgICAgICAgICAiMC4wMDUwOTgsIDAuMDA1MTEzLCAwLjAwNTE0MSwgMC4wMDUxNDksIDAuMDA1MTUzLCAwLjAwNTE1NiwgMC4wMDUxNTgiLCBcCi0gICAgICAgICAgIjAuMDA1MDkxLCAwLjAwNTEwNiwgMC4wMDUxMzYsIDAuMDA1MTQzLCAwLjAwNTE0OCwgMC4wMDUxNTEsIDAuMDA1MTUzIiwgXAotICAgICAgICAgICIwLjAwNTA4NywgMC4wMDUxMDIsIDAuMDA1MTMyLCAwLjAwNTE0LCAwLjAwNTE0NSwgMC4wMDUxNDgsIDAuMDA1MTUiLCBcCi0gICAgICAgICAgIjAuMDA1MDgzLCAwLjAwNTA5OCwgMC4wMDUxMywgMC4wMDUxMzgsIDAuMDA1MTQyLCAwLjAwNTE0NywgMC4wMDUxNDgiLCBcCi0gICAgICAgICAgIjAuMDA1MDgyLCAwLjAwNTA5NiwgMC4wMDUxMjgsIDAuMDA1MTM3LCAwLjAwNTE0MiwgMC4wMDUxNDcsIDAuMDA1MTQ4IiwgXAotICAgICAgICAgICIwLjAwNTA4MywgMC4wMDUwOTcsIDAuMDA1MTI5LCAwLjAwNTEzOCwgMC4wMDUxNDQsIDAuMDA1MTQ5LCAwLjAwNTE1MSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjI3MSwgMC4wMDIyODQsIDAuMDAyMzA2LCAwLjAwMjMxMSwgMC4wMDIzMTQsIDAuMDAyMzE3LCAwLjAwMjMxOCIsIFwKLSAgICAgICAgICAiMC4wMDIyNTUsIDAuMDAyMjY3LCAwLjAwMjI5LCAwLjAwMjI5NSwgMC4wMDIyOTgsIDAuMDAyMzAxLCAwLjAwMjMwMiIsIFwKLSAgICAgICAgICAiMC4wMDIyNDUsIDAuMDAyMjU4LCAwLjAwMjI4MSwgMC4wMDIyODcsIDAuMDAyMjksIDAuMDAyMjkzLCAwLjAwMjI5NSIsIFwKLSAgICAgICAgICAiMC4wMDIyMzksIDAuMDAyMjUxLCAwLjAwMjI3NiwgMC4wMDIyODIsIDAuMDAyMjg1LCAwLjAwMjI4OSwgMC4wMDIyOSIsIFwKLSAgICAgICAgICAiMC4wMDIyMzYsIDAuMDAyMjQ4LCAwLjAwMjI3MywgMC4wMDIyNzksIDAuMDAyMjgzLCAwLjAwMjI4NywgMC4wMDIyODgiLCBcCi0gICAgICAgICAgIjAuMDAyMjM0LCAwLjAwMjI0NiwgMC4wMDIyNzIsIDAuMDAyMjc5LCAwLjAwMjI4MywgMC4wMDIyODcsIDAuMDAyMjg5IiwgXAotICAgICAgICAgICIwLjAwMjIzOCwgMC4wMDIyNDgsIDAuMDAyMjc0LCAwLjAwMjI4MSwgMC4wMDIyODYsIDAuMDAyMjksIDAuMDAyMjkyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0ODk0LCAwLjAwNDkwOSwgMC4wMDQ5MzcsIDAuMDA0OTQzLCAwLjAwNDk0NywgMC4wMDQ5NTEsIDAuMDA0OTUyIiwgXAotICAgICAgICAgICIwLjAwNDg4NSwgMC4wMDQ5LCAwLjAwNDkyOCwgMC4wMDQ5MzUsIDAuMDA0OTM5LCAwLjAwNDk0MiwgMC4wMDQ5NDQiLCBcCi0gICAgICAgICAgIjAuMDA0ODc5LCAwLjAwNDg5NCwgMC4wMDQ5MjMsIDAuMDA0OTMsIDAuMDA0OTM0LCAwLjAwNDkzNywgMC4wMDQ5MzgiLCBcCi0gICAgICAgICAgIjAuMDA0ODc0LCAwLjAwNDg4OSwgMC4wMDQ5MTksIDAuMDA0OTI2LCAwLjAwNDkzMSwgMC4wMDQ5MzUsIDAuMDA0OTM2IiwgXAotICAgICAgICAgICIwLjAwNDg3MSwgMC4wMDQ4ODYsIDAuMDA0OTE2LCAwLjAwNDkyNCwgMC4wMDQ5MjksIDAuMDA0OTMzLCAwLjAwNDkzNCIsIFwKLSAgICAgICAgICAiMC4wMDQ4NjksIDAuMDA0ODgzLCAwLjAwNDkxNSwgMC4wMDQ5MjQsIDAuMDA0OTI5LCAwLjAwNDkzMywgMC4wMDQ5MzUiLCBcCi0gICAgICAgICAgIjAuMDA0ODcsIDAuMDA0ODgyLCAwLjAwNDkxNiwgMC4wMDQ5MjUsIDAuMDA0OTMxLCAwLjAwNDkzNiwgMC4wMDQ5MzciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJEIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDIwMjYsIDAuMDAyMDM5LCAwLjAwMjA2MSwgMC4wMDIwNjYsIDAuMDAyMDcsIDAuMDAyMDcyLCAwLjAwMjA3MyIsIFwKLSAgICAgICAgICAiMC4wMDIwMSwgMC4wMDIwMjMsIDAuMDAyMDQ1LCAwLjAwMjA1MSwgMC4wMDIwNTQsIDAuMDAyMDU3LCAwLjAwMjA1NyIsIFwKLSAgICAgICAgICAiMC4wMDIwMDEsIDAuMDAyMDE0LCAwLjAwMjAzNywgMC4wMDIwNDIsIDAuMDAyMDQ2LCAwLjAwMjA0OSwgMC4wMDIwNSIsIFwKLSAgICAgICAgICAiMC4wMDE5OTUsIDAuMDAyMDA3LCAwLjAwMjAzMSwgMC4wMDIwMzcsIDAuMDAyMDQxLCAwLjAwMjA0NCwgMC4wMDIwNDUiLCBcCi0gICAgICAgICAgIjAuMDAxOTkxLCAwLjAwMjAwMywgMC4wMDIwMjgsIDAuMDAyMDM1LCAwLjAwMjAzOCwgMC4wMDIwNDIsIDAuMDAyMDQzIiwgXAotICAgICAgICAgICIwLjAwMTk5LCAwLjAwMjAwMiwgMC4wMDIwMjcsIDAuMDAyMDM0LCAwLjAwMjAzOSwgMC4wMDIwNDMsIDAuMDAyMDQ0IiwgXAotICAgICAgICAgICIwLjAwMTk5MywgMC4wMDIwMDQsIDAuMDAyMDI5LCAwLjAwMjAzNywgMC4wMDIwNDIsIDAuMDAyMDQ2LCAwLjAwMjA0NyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNTA2OSwgMC4wMDUwODQsIDAuMDA1MTEyLCAwLjAwNTExOSwgMC4wMDUxMjMsIDAuMDA1MTI2LCAwLjAwNTEyNyIsIFwKLSAgICAgICAgICAiMC4wMDUwNiwgMC4wMDUwNzYsIDAuMDA1MTA0LCAwLjAwNTExLCAwLjAwNTExNSwgMC4wMDUxMTgsIDAuMDA1MTE5IiwgXAotICAgICAgICAgICIwLjAwNTA1NCwgMC4wMDUwNjksIDAuMDA1MDk4LCAwLjAwNTEwNSwgMC4wMDUxMDksIDAuMDA1MTEzLCAwLjAwNTExNCIsIFwKLSAgICAgICAgICAiMC4wMDUwNSwgMC4wMDUwNjUsIDAuMDA1MDk1LCAwLjAwNTEwMiwgMC4wMDUxMDcsIDAuMDA1MTExLCAwLjAwNTExMiIsIFwKLSAgICAgICAgICAiMC4wMDUwNDgsIDAuMDA1MDYyLCAwLjAwNTA5MywgMC4wMDUxMDEsIDAuMDA1MTA2LCAwLjAwNTExLCAwLjAwNTExMSIsIFwKLSAgICAgICAgICAiMC4wMDUwNDYsIDAuMDA1MDYxLCAwLjAwNTA5MiwgMC4wMDUxMDEsIDAuMDA1MTA2LCAwLjAwNTExMSwgMC4wMDUxMTIiLCBcCi0gICAgICAgICAgIjAuMDA1MDQ4LCAwLjAwNTA2NywgMC4wMDUwOTQsIDAuMDA1MTAzLCAwLjAwNTEwOSwgMC4wMDUxMTMsIDAuMDA1MTE1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUzAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNzIzLCAwLjAwNzI0MiwgMC4wMDcyNjUsIDAuMDA3MjcsIDAuMDA3Mjc0LCAwLjAwNzI3NywgMC4wMDcyNzciLCBcCi0gICAgICAgICAgIjAuMDA3MTkxLCAwLjAwNzIwMywgMC4wMDcyMjYsIDAuMDA3MjMzLCAwLjAwNzIzNSwgMC4wMDcyMzgsIDAuMDA3MjQiLCBcCi0gICAgICAgICAgIjAuMDA3MTg2LCAwLjAwNzE5OCwgMC4wMDcyMjEsIDAuMDA3MjI3LCAwLjAwNzIzLCAwLjAwNzIzMywgMC4wMDcyMzMiLCBcCi0gICAgICAgICAgIjAuMDA3MTk4LCAwLjAwNzIxLCAwLjAwNzIzMiwgMC4wMDcyMzgsIDAuMDA3MjQxLCAwLjAwNzI0NSwgMC4wMDcyNDUiLCBcCi0gICAgICAgICAgIjAuMDA3MTk4LCAwLjAwNzIxLCAwLjAwNzIzMiwgMC4wMDcyMzgsIDAuMDA3MjQxLCAwLjAwNzI0NCwgMC4wMDcyNDYiLCBcCi0gICAgICAgICAgIjAuMDA3MjI0LCAwLjAwNzIzNiwgMC4wMDcyNjYsIDAuMDA3MjY0LCAwLjAwNzI3NiwgMC4wMDcyNzksIDAuMDA3MjcxIiwgXAotICAgICAgICAgICIwLjAwNzI1OCwgMC4wMDcyNzgsIDAuMDA3MzAxLCAwLjAwNzMwNiwgMC4wMDczMDIsIDAuMDA3MzEzLCAwLjAwNzMwNiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjk2OCwgMC4wMDY5ODMsIDAuMDA3MDEyLCAwLjAwNzAxOSwgMC4wMDcwMjMsIDAuMDA3MDI3LCAwLjAwNzAyOCIsIFwKLSAgICAgICAgICAiMC4wMDY5NDksIDAuMDA2OTY0LCAwLjAwNjk5MywgMC4wMDcsIDAuMDA3MDA1LCAwLjAwNzAwOCwgMC4wMDcwMDkiLCBcCi0gICAgICAgICAgIjAuMDA2OTMzLCAwLjAwNjk0OCwgMC4wMDY5NzcsIDAuMDA2OTg0LCAwLjAwNjk4OCwgMC4wMDY5OTIsIDAuMDA2OTkzIiwgXAotICAgICAgICAgICIwLjAwNjkyOCwgMC4wMDY5NDMsIDAuMDA2OTcyLCAwLjAwNjk3OSwgMC4wMDY5ODQsIDAuMDA2OTg3LCAwLjAwNjk4OCIsIFwKLSAgICAgICAgICAiMC4wMDY5MzIsIDAuMDA2OTQ2LCAwLjAwNjk3NSwgMC4wMDY5ODMsIDAuMDA2OTg2LCAwLjAwNjk5LCAwLjAwNjk5MiIsIFwKLSAgICAgICAgICAiMC4wMDY5NDEsIDAuMDA2OTU2LCAwLjAwNjk4NSwgMC4wMDY5OTIsIDAuMDA3LCAwLjAwNywgMC4wMDcwMDUiLCBcCi0gICAgICAgICAgIjAuMDA2OTU1LCAwLjAwNjk3NiwgMC4wMDY5OTksIDAuMDA3MDA3LCAwLjAwNzAxMSwgMC4wMDcwMjEsIDAuMDA3MDE2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUzEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzc4MywgMC4wMDM3OTQsIDAuMDAzODExLCAwLjAwMzgxNSwgMC4wMDM4MTcsIDAuMDAzODE5LCAwLjAwMzgxOSIsIFwKLSAgICAgICAgICAiMC4wMDM3OSwgMC4wMDM4MDEsIDAuMDAzODE5LCAwLjAwMzgyMywgMC4wMDM4MjYsIDAuMDAzODI4LCAwLjAwMzgyOCIsIFwKLSAgICAgICAgICAiMC4wMDM4MzksIDAuMDAzODQ5LCAwLjAwMzg2OCwgMC4wMDM4NzIsIDAuMDAzODc2LCAwLjAwMzg3OCwgMC4wMDM4NzkiLCBcCi0gICAgICAgICAgIjAuMDAzODc1LCAwLjAwMzg4NSwgMC4wMDM5MDUsIDAuMDAzOTEsIDAuMDAzOTEzLCAwLjAwMzkxNSwgMC4wMDM5MTciLCBcCi0gICAgICAgICAgIjAuMDAzOTAyLCAwLjAwMzkxMSwgMC4wMDM5MzEsIDAuMDAzOTM2LCAwLjAwMzk0LCAwLjAwMzk0MiwgMC4wMDM5NDMiLCBcCi0gICAgICAgICAgIjAuMDAzOTY3LCAwLjAwMzk2OSwgMC4wMDM5ODgsIDAuMDAzOTk0LCAwLjAwMzk5NywgMC4wMDQsIDAuMDA0MDAxIiwgXAotICAgICAgICAgICIwLjAwNDAxNCwgMC4wMDQwMjMsIDAuMDA0MDQxLCAwLjAwNDA0NywgMC4wMDQwNSwgMC4wMDQwNTMsIDAuMDA0MDU0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyOTM1LCAwLjAwMjk0OCwgMC4wMDI5NywgMC4wMDI5NzUsIDAuMDAyOTc3LCAwLjAwMjk4LCAwLjAwMjk4IiwgXAotICAgICAgICAgICIwLjAwMjk0MiwgMC4wMDI5NTYsIDAuMDAyOTc4LCAwLjAwMjk4MywgMC4wMDI5ODYsIDAuMDAyOTg5LCAwLjAwMjk4OSIsIFwKLSAgICAgICAgICAiMC4wMDI5OTQsIDAuMDAzMDA3LCAwLjAwMzAzLCAwLjAwMzAzNiwgMC4wMDMwMzksIDAuMDAzMDQyLCAwLjAwMzA0MyIsIFwKLSAgICAgICAgICAiMC4wMDMwMzksIDAuMDAzMDUyLCAwLjAwMzA3NiwgMC4wMDMwODIsIDAuMDAzMDg1LCAwLjAwMzA4OSwgMC4wMDMwOSIsIFwKLSAgICAgICAgICAiMC4wMDMwNjcsIDAuMDAzMDgsIDAuMDAzMTA1LCAwLjAwMzExMSwgMC4wMDMxMTUsIDAuMDAzMTE4LCAwLjAwMzExOSIsIFwKLSAgICAgICAgICAiMC4wMDMxMzYsIDAuMDAzMTQ5LCAwLjAwMzE3MywgMC4wMDMxOCwgMC4wMDMxODQsIDAuMDAzMTg3LCAwLjAwMzE4OSIsIFwKLSAgICAgICAgICAiMC4wMDMxODgsIDAuMDAzMjAxLCAwLjAwMzIyNSwgMC4wMDMyMzEsIDAuMDAzMjM2LCAwLjAwMzIzOSwgMC4wMDMyNDEiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogTVg0WDIgKgotICogLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKE1YNFgyKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMjkwOTE2OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA1NTExNjc7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNTQ5NzY2OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDU1MTE2NzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA4MTEsIDAuMDAwNzkxLCAwLjAwMDc4MSwgMC4wMDA3NzUsIDAuMDAwNzczLCAwLjAwMDc3MywgMC4wMDA3NzYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDI2ODYsIDAuMDAyNjc1LCAwLjAwMjY2OSwgMC4wMDI2NjYsIDAuMDAyNjY2LCAwLjAwMjY2NiwgMC4wMDI2NjkiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYxNTYyNDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MTM4Nzk7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjE1NjI0OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDIxNywgMC4wMDAyMiwgMC4wMDAyMjEsIDAuMDAwMjIyLCAwLjAwMDIyMiwgMC4wMDAyMjIsIDAuMDAwMjIyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjMyLCAwLjAwMDIyOCwgMC4wMDAyMjcsIDAuMDAwMjI3LCAwLjAwMDIyNywgMC4wMDAyMjcsIDAuMDAwMjI3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihDKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA1NTU0MjI7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNTUzODI4OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDU1NTQyMjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA5NTYsIDAuMDAwOTM3LCAwLjAwMDkyNywgMC4wMDA5MjIsIDAuMDAwOTIsIDAuMDAwOTIsIDAuMDAwOTIyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyOTM5LCAwLjAwMjkyOCwgMC4wMDI5MjEsIDAuMDAyOTE5LCAwLjAwMjkxOSwgMC4wMDI5MTksIDAuMDAyOTIyIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihEKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2NTAyNTI7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjQ4NzA3OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDY1MDI1MjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyMTgsIDAuMDAwMjIxLCAwLjAwMDIyMiwgMC4wMDAyMjIsIDAuMDAwMjIyLCAwLjAwMDIyMiwgMC4wMDAyMjMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyMzEsIDAuMDAwMjI3LCAwLjAwMDIyNywgMC4wMDAyMjcsIDAuMDAwMjI3LCAwLjAwMDIyNywgMC4wMDAyMjciKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFMwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDIxMjgyNTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDIxMjc5ODsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDIxMjgyNTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAzNzUsIDAuMDAwMzQ4LCAwLjAwMDM0MywgMC4wMDAzNDYsIDAuMDAwMzU4LCAwLjAwMDQsIDAuMDAwNDI5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzNDI4LCAwLjAwMzQwNywgMC4wMDM0MDYsIDAuMDAzNDA1LCAwLjAwMzQxOSwgMC4wMDM0MzcsIDAuMDAzNDQ5Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTMSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxMTIxMzQ7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxMTIwOTI7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxMTIxMzQ7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMTA1LCAwLjAwMDA3NiwgMC4wMDAwNzMsIDAuMDAwMDkzLCAwLjAwMDA5NSwgMC4wMDAxMjEsIDAuMDAwMTQ2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyMTE3LCAwLjAwMjA5NiwgMC4wMDIwOTgsIDAuMDAyMTAxLCAwLjAwMjExLCAwLjAwMjEzMiwgMC4wMDIxNTYiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC41MTUxOTQ7Ci0gICAgZnVuY3Rpb24gOiAiKChTMSAoKFMwIEQpICsgKCFTMCBDKSkpICsgKCFTMSAoKFMwIEIpICsgKCFTMCBBKSkpKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTM5NjQsIDAuMjUxMzEzLCAwLjMzMzkwOSwgMC40MzY4LCAwLjUzOTU4MSwgMC42NDIzMzcsIDAuNzQ1MjEzIiwgXAotICAgICAgICAgICIwLjE0ODgxLCAwLjI2MDQzMywgMC4zNDI5ODksIDAuNDQ1ODY0LCAwLjU0ODcxLCAwLjY1MTM5OCwgMC43NTQyOTgiLCBcCi0gICAgICAgICAgIjAuMTU5NjI1LCAwLjI3MTI1NSwgMC4zNTM4NDgsIDAuNDU2Njc5LCAwLjU1OTQ2LCAwLjY2MjI5MSwgMC43NjUwNjUiLCBcCi0gICAgICAgICAgIjAuMTcwNDY1LCAwLjI4MjE3LCAwLjM2NDcyMiwgMC40Njc1NTksIDAuNTcwMzcxLCAwLjY3MzI3NCwgMC43NzYwNTciLCBcCi0gICAgICAgICAgIjAuMTgxMzI1LCAwLjI5MzAzMywgMC4zNzU2MDUsIDAuNDc4NDQyLCAwLjU4MTI1OCwgMC42ODQwNjIsIDAuNzg2OTM4IiwgXAotICAgICAgICAgICIwLjE5NzgzMiwgMC4zMDk1NjYsIDAuMzkyMTY4LCAwLjQ5NTAzNiwgMC41OTc4MzEsIDAuNzAwNDg0LCAwLjgwMzQ2NSIsIFwKLSAgICAgICAgICAiMC4yMTE1MDksIDAuMzIzMjIsIDAuNDA1ODIsIDAuNTA4NjU2LCAwLjYxMTQ0LCAwLjcxNDI2NiwgMC44MTcwNzYiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDcwMTkzLCAwLjI3MzkwNCwgMC40NDEzNTIsIDAuNjUxOTMyLCAwLjg2NDUwMSwgMS4wNzc4NiwgMS4yOTAzMiIsIFwKLSAgICAgICAgICAiMC4wNzAxOTksIDAuMjczNzY1LCAwLjQ0MTE0NiwgMC42NTMwMzksIDAuODY2MDc0LCAxLjA3Nzk1LCAxLjI5MDMyIiwgXAotICAgICAgICAgICIwLjA3MDE5LCAwLjI3Mzk1OSwgMC40NDA5MDksIDAuNjUyODUsIDAuODY1NTQ2LCAxLjA3NzAzLCAxLjI5Mjc1IiwgXAotICAgICAgICAgICIwLjA3MDE3OSwgMC4yNzM5MjgsIDAuNDQxMDY1LCAwLjY1Mjg0MSwgMC44NjU4MzIsIDEuMDc3MTksIDEuMjkwMyIsIFwKLSAgICAgICAgICAiMC4wNzAzMTYsIDAuMjczOTE3LCAwLjQ0MTA3OCwgMC42NTI4MzgsIDAuODY1ODc5LCAxLjA3NzExLCAxLjI5MDMyIiwgXAotICAgICAgICAgICIwLjA3MDMzOCwgMC4yNzM5NDcsIDAuNDQwOTI0LCAwLjY1MzA4NSwgMC44NjQwMiwgMS4wNzgzOCwgMS4yOTAzMyIsIFwKLSAgICAgICAgICAiMC4wNzA2MTEsIDAuMjc0MTA5LCAwLjQ0MTAzMiwgMC42NTI4MzYsIDAuODY1NTcsIDEuMDc3NjgsIDEuMjkyNzEiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTQ1ODE2LCAwLjI2MDU1NSwgMC4zNDM5ODUsIDAuNDQ3NTg2LCAwLjU1MTA4OCwgMC42NTQ1ODUsIDAuNzU4MDc4IiwgXAotICAgICAgICAgICIwLjE1NDU3NSwgMC4yNjkzMDYsIDAuMzUyNzQsIDAuNDU2MzM4LCAwLjU1OTg0LCAwLjY2MzMzMSwgMC43NjY5NzMiLCBcCi0gICAgICAgICAgIjAuMTY0NDYsIDAuMjc5MjExLCAwLjM2MjY0MSwgMC40NjYyNDMsIDAuNTY5NzQ2LCAwLjY3MzI0MywgMC43NzY3NjUiLCBcCi0gICAgICAgICAgIjAuMTc0MjM0LCAwLjI4ODkzNywgMC4zNzIzOTYsIDAuNDc1OTk4LCAwLjU3OTU0OSwgMC42ODMwMDQsIDAuNzg2NTYiLCBcCi0gICAgICAgICAgIjAuMTgzOTQzLCAwLjI5ODYyMSwgMC4zODIwODMsIDAuNDg1Njg1LCAwLjU4OTIxOSwgMC42OTI3MDIsIDAuNzk2MjQ1IiwgXAotICAgICAgICAgICIwLjE5ODc4NywgMC4zMTM1MzUsIDAuMzk2OTgzLCAwLjUwMDU3NywgMC42MDQwOTQsIDAuNzA3NTgxLCAwLjgxMTE0NiIsIFwKLSAgICAgICAgICAiMC4yMTExODgsIDAuMzI1OTc5LCAwLjQwOTQ0MiwgMC41MTMwNTEsIDAuNjE2NTU3LCAwLjcyMDE2NCwgMC44MjM2MDQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDcyMTg2LCAwLjI3MjAwOCwgMC40MzUyMjksIDAuNjQyMDgyLCAwLjg1MTM1NCwgMS4wNTg3NSwgMS4yNyIsIFwKLSAgICAgICAgICAiMC4wNzIxOTIsIDAuMjcyMDE0LCAwLjQzNTIyNywgMC42NDI5NjQsIDAuODUxMzUzLCAxLjA1ODY3LCAxLjI2NjgxIiwgXAotICAgICAgICAgICIwLjA3MjIyMSwgMC4yNzIwMTEsIDAuNDM1MjI5LCAwLjY0MjA5OSwgMC44NTEzNjksIDEuMDU4NzgsIDEuMjcwMjEiLCBcCi0gICAgICAgICAgIjAuMDcyMjQ1LCAwLjI3MTkzMywgMC40MzUyNjYsIDAuNjQyMTQxLCAwLjg1MTU2NSwgMS4wNTk5MSwgMS4yNjc0NiIsIFwKLSAgICAgICAgICAiMC4wNzIyNywgMC4yNzIwMjcsIDAuNDM1MjY3LCAwLjY0MjE0OCwgMC44NTE0NjcsIDEuMDU5MDksIDEuMjY3MzYiLCBcCi0gICAgICAgICAgIjAuMDcyMzEzLCAwLjI3MTk3NiwgMC40MzUxNywgMC42NDIwNjYsIDAuODUxMjg3LCAxLjA1OTQzLCAxLjI2NzY1IiwgXAotICAgICAgICAgICIwLjA3Mjc4NSwgMC4yNzIwMzEsIDAuNDM1MjgsIDAuNjQyMTcyLCAwLjg1MTM0MiwgMS4wNTgwNiwgMS4yNjY4NiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMzc5MjksIDAuMjQ5NjUsIDAuMzMyMjUxLCAwLjQzNTA4NSwgMC41Mzc5MTYsIDAuNjQwNjY1LCAwLjc0MzU3NyIsIFwKLSAgICAgICAgICAiMC4xNDY4MTcsIDAuMjU4NTE5LCAwLjM0MTEyNSwgMC40NDM5NzUsIDAuNTQ2NzU1LCAwLjY0OTU4LCAwLjc1MjQzOCIsIFwKLSAgICAgICAgICAiMC4xNTc2NDMsIDAuMjY5MzY3LCAwLjM1MTk2OCwgMC40NTQ4MTQsIDAuNTU3NjA3LCAwLjY2MDQzNCwgMC43NjMyOCIsIFwKLSAgICAgICAgICAiMC4xNjg1NDIsIDAuMjgwMjQsIDAuMzYyODMyLCAwLjQ2NTY3OSwgMC41Njg1MDUsIDAuNjcxNDIzLCAwLjc3NDE5NSIsIFwKLSAgICAgICAgICAiMC4xNzkwNCwgMC4yOTA3NjksIDAuMzczMzc2LCAwLjQ3NjIzMywgMC41NzkwNiwgMC42ODE5MDIsIDAuNzg0NzQ4IiwgXAotICAgICAgICAgICIwLjE5NTgyMywgMC4zMDc1NTYsIDAuMzkwMTcyLCAwLjQ5MzAyNywgMC41OTU4MjIsIDAuNjk4NjQxLCAwLjgwMTUwNiIsIFwKLSAgICAgICAgICAiMC4yMDk0NTIsIDAuMzIxMjYzLCAwLjQwMzg1OSwgMC41MDY3MjEsIDAuNjA5NTE4LCAwLjcxMjMxOCwgMC44MTUyNjciKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDcwMDg2LCAwLjI3Mzc1NSwgMC40NDEzMDcsIDAuNjUyODAxLCAwLjg2NTg5NSwgMS4wNzg4NSwgMS4yOTAzMSIsIFwKLSAgICAgICAgICAiMC4wNzAwNDYsIDAuMjczNjM0LCAwLjQ0MDgyLCAwLjY1MjA0MiwgMC44NjQ3MjYsIDEuMDc3NzIsIDEuMjkwMzEiLCBcCi0gICAgICAgICAgIjAuMDY5OTQxLCAwLjI3MzY5NywgMC40NDA4NjYsIDAuNjUyODA0LCAwLjg2NTU0MSwgMS4wNzc2NiwgMS4yOTAzIiwgXAotICAgICAgICAgICIwLjA3MDA0LCAwLjI3Mzc2MiwgMC40NDEyNjksIDAuNjUyNzg0LCAwLjg2NTgxMiwgMS4wNzcxNiwgMS4yOTAzMSIsIFwKLSAgICAgICAgICAiMC4wNzAwNTgsIDAuMjczNzUyLCAwLjQ0MDk3NiwgMC42NTI3NzQsIDAuODY1ODA2LCAxLjA3NzQ3LCAxLjI5MDMxIiwgXAotICAgICAgICAgICIwLjA3MDE3MiwgMC4yNzM2ODgsIDAuNDQwODg5LCAwLjY1MjgzLCAwLjg2NTU1MSwgMS4wNzc3LCAxLjI5MDMxIiwgXAotICAgICAgICAgICIwLjA3MDQyNywgMC4yNzM5NTksIDAuNDQwODU4LCAwLjY1Mjc4MywgMC44NjU0NDgsIDEuMDc4OTcsIDEuMjkwMjIiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTQ0NjcyLCAwLjI1OTM5MSwgMC4zNDI4MDgsIDAuNDQ2MzksIDAuNTQ5ODc3LCAwLjY1MzM2LCAwLjc1Njk4NCIsIFwKLSAgICAgICAgICAiMC4xNTM0NjksIDAuMjY4MTI4LCAwLjM1MTU0OCwgMC40NTUxMzIsIDAuNTU4NjQxLCAwLjY2MjExNCwgMC43NjU2NTkiLCBcCi0gICAgICAgICAgIjAuMTYzMjc0LCAwLjI3NzkwNywgMC4zNjEzMjgsIDAuNDY0OTEyLCAwLjU2ODQsIDAuNjcxODg0LCAwLjc3NTUwNiIsIFwKLSAgICAgICAgICAiMC4xNzMwNiwgMC4yODc3MDIsIDAuMzcxMTQsIDAuNDc0NzI2LCAwLjU3ODIxMiwgMC42ODE3MDcsIDAuNzg1MjM4IiwgXAotICAgICAgICAgICIwLjE4MjYwNCwgMC4yOTcyNjcsIDAuMzgwNzEsIDAuNDg0MjkyLCAwLjU4Nzc4OSwgMC42OTEyODYsIDAuNzk0ODI0IiwgXAotICAgICAgICAgICIwLjE5NzQzOCwgMC4zMTIxNzcsIDAuMzk1NjA0LCAwLjQ5OTE5NiwgMC42MDI2ODgsIDAuNzA2MTcsIDAuODA5ODAzIiwgXAotICAgICAgICAgICIwLjIwOTY2NSwgMC4zMjQ1NSwgMC40MDc5ODUsIDAuNTExNTc3LCAwLjYxNTA3MiwgMC43MTg1NTksIDAuODIyMTgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDcyMDg4LCAwLjI3MTc5MiwgMC40MzUwMTQsIDAuNjQyMTM1LCAwLjg1MTE1NywgMS4wNTg1MywgMS4yNjc0NyIsIFwKLSAgICAgICAgICAiMC4wNzIwNTEsIDAuMjcxNzYzLCAwLjQzNTA0NSwgMC42NDE5NjEsIDAuODUxMjMxLCAxLjA2MDI5LCAxLjI2NzM1IiwgXAotICAgICAgICAgICIwLjA3MjE3LCAwLjI3MTc5MiwgMC40MzUwMTUsIDAuNjQyODQsIDAuODUxMTgyLCAxLjA1ODU2LCAxLjI2ODk0IiwgXAotICAgICAgICAgICIwLjA3MjE3OSwgMC4yNzE2NDksIDAuNDM1MDIzLCAwLjY0MTk0MywgMC44NTExMjYsIDEuMDYwMjgsIDEuMjY3NyIsIFwKLSAgICAgICAgICAiMC4wNzIxNzcsIDAuMjcxNzc5LCAwLjQzNTAzNywgMC42NDE5NTcsIDAuODUwNjMzLCAxLjA2MDMzLCAxLjI2NzM1IiwgXAotICAgICAgICAgICIwLjA3MjE0OCwgMC4yNzE3ODEsIDAuNDM0OTY3LCAwLjY0MTg2MiwgMC44NTEwOTksIDEuMDU4NDksIDEuMjY2NzMiLCBcCi0gICAgICAgICAgIjAuMDcyNzExLCAwLjI3MTk4NywgMC40MzUwNTIsIDAuNjQxODU0LCAwLjg1MTE2OSwgMS4wNTg1MywgMS4yNjkyOSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNDUxNjQsIDAuMjU3NjM2LCAwLjM0MDMyOSwgMC40NDMxNjYsIDAuNTQ1OTYyLCAwLjY0ODc3MiwgMC43NTE2NjgiLCBcCi0gICAgICAgICAgIjAuMTU0MjEzLCAwLjI2NjYzNCwgMC4zNDkzMTQsIDAuNDUyMTcyLCAwLjU1NDk3MSwgMC42NTc3ODEsIDAuNzYwNzQ1IiwgXAotICAgICAgICAgICIwLjE2NTEyNSwgMC4yNzc1NjgsIDAuMzYwMjcyLCAwLjQ2MzEyOSwgMC41NjU5MjUsIDAuNjY4NzIzLCAwLjc3MTY0MyIsIFwKLSAgICAgICAgICAiMC4xNzU4ODYsIDAuMjg4MzUzLCAwLjM3MTAzNiwgMC40NzM5MjQsIDAuNTc2NzY3LCAwLjY3OTQ5MiwgMC43ODI0NDMiLCBcCi0gICAgICAgICAgIjAuMTg2NzIzLCAwLjI5OTE3MSwgMC4zODE4NzUsIDAuNDg0NzI2LCAwLjU4NzU3NCwgMC42OTAzNTQsIDAuNzkzMjgyIiwgXAotICAgICAgICAgICIwLjIwMzY4NiwgMC4zMTYwODIsIDAuMzk4NzgsIDAuNTAxNjQzLCAwLjYwNDQ0NSwgMC43MDcyNCwgMC44MTAwMzMiLCBcCi0gICAgICAgICAgIjAuMjE3MzIyLCAwLjMyOTgxNCwgMC40MTI1MiwgMC41MTUzODUsIDAuNjE4MTg2LCAwLjcyMTAwNSwgMC44MjM5NTciKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDcwOTYxLCAwLjI3NDUzMiwgMC40NDEzMTEsIDAuNjUzMTQ0LCAwLjg2NTc4LCAxLjA3Nzk2LCAxLjI5MDQyIiwgXAotICAgICAgICAgICIwLjA3MDg5NywgMC4yNzQ1NzMsIDAuNDQxNDYzLCAwLjY1MzEzMiwgMC44NjU3MzgsIDEuMDc5MzQsIDEuMjkwNDciLCBcCi0gICAgICAgICAgIjAuMDcwNzY2LCAwLjI3NDQ0MSwgMC40NDE0MTcsIDAuNjUzMTMzLCAwLjg2NTc1NCwgMS4wNzgwOCwgMS4yOTA0MSIsIFwKLSAgICAgICAgICAiMC4wNzA4NjMsIDAuMjc0MzMsIDAuNDQxNDA0LCAwLjY1MzM0NiwgMC44NjYyMywgMS4wNzgwNywgMS4yOTAzMSIsIFwKLSAgICAgICAgICAiMC4wNzA4OTMsIDAuMjc0NTQ2LCAwLjQ0MTgzNywgMC42NTMxNTEsIDAuODY2MTY2LCAxLjA3OTM2LCAxLjI5MDMiLCBcCi0gICAgICAgICAgIjAuMDcwOTAyLCAwLjI3NDU4MywgMC40NDE0MjcsIDAuNjUzMTIyLCAwLjg2NTc0NCwgMS4wNzkxMiwgMS4yOTI4IiwgXAotICAgICAgICAgICIwLjA3MTQ1NiwgMC4yNzQ2NTIsIDAuNDQxNTEsIDAuNjUzMzgxLCAwLjg2NTc1MywgMS4wNzc5OCwgMS4yOTA0NyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNTIxMjQsIDAuMjY3NjQyLCAwLjM1MTE4MywgMC40NTQ4MTQsIDAuNTU4MzE2LCAwLjY2MTgwOCwgMC43NjU0MTEiLCBcCi0gICAgICAgICAgIjAuMTYwODM5LCAwLjI3NjQxNiwgMC4zNTk5NywgMC40NjM2MDYsIDAuNTY3MTIxLCAwLjY3MDYsIDAuNzc0MTI2IiwgXAotICAgICAgICAgICIwLjE3MDkxMiwgMC4yODY0MTMsIDAuMzY5OTYzLCAwLjQ3MzYwOSwgMC41NzcxMDcsIDAuNjgwNTk5LCAwLjc4NDEzMSIsIFwKLSAgICAgICAgICAiMC4xODA1ODUsIDAuMjk2MTYsIDAuMzc5NjkyLCAwLjQ4MzM0NywgMC41ODY4NDcsIDAuNjkwMzM4LCAwLjc5Mzg2OSIsIFwKLSAgICAgICAgICAiMC4xOTAzMjYsIDAuMzA1ODU2LCAwLjM4OTQxNSwgMC40OTMwNjgsIDAuNTk2NTc3LCAwLjcwMDA2MSwgMC44MDM1OSIsIFwKLSAgICAgICAgICAiMC4yMDU1MzUsIDAuMzIxMDc0LCAwLjQwNDYxOCwgMC41MDgyNDksIDAuNjExODIsIDAuNzE1MjU1LCAwLjgxODc4IiwgXAotICAgICAgICAgICIwLjIxNzk5NiwgMC4zMzM2MDIsIDAuNDE3MTc5LCAwLjUyMDgxNiwgMC42MjQzODksIDAuNzI3ODE2LCAwLjgzMTM1MSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzMxNzcsIDAuMjcyODgsIDAuNDM1ODg5LCAwLjY0MjYzLCAwLjg1MTY3MSwgMS4wNTg5LCAxLjI2OTkzIiwgXAotICAgICAgICAgICIwLjA3MzAyNCwgMC4yNzI4NTUsIDAuNDM1OTA4LCAwLjY0MzM4MywgMC44NTA3NTksIDEuMDYwMjYsIDEuMjY4NTgiLCBcCi0gICAgICAgICAgIjAuMDczMTU4LCAwLjI3Mjg5MywgMC40MzU4NzgsIDAuNjQzNDE4LCAwLjg1MTYxNCwgMS4wNjAxNiwgMS4yNjg3MiIsIFwKLSAgICAgICAgICAiMC4wNzMwNzQsIDAuMjcyODYxLCAwLjQzNjE2MSwgMC42NDIyMywgMC44NTAzMTgsIDEuMDU5OSwgMS4yNjcwNCIsIFwKLSAgICAgICAgICAiMC4wNzMxOTQsIDAuMjcyODM5LCAwLjQzNTg0OSwgMC42NDMzODgsIDAuODUwNTcxLCAxLjA2MDI4LCAxLjI2ODQzIiwgXAotICAgICAgICAgICIwLjA3MzIyOSwgMC4yNzI4MDMsIDAuNDM1ODUzLCAwLjY0MjYwOCwgMC44NTE5NzUsIDEuMDYwMjUsIDEuMjY4NDkiLCBcCi0gICAgICAgICAgIjAuMDczNjc1LCAwLjI3MzAzMywgMC40MzU5MzEsIDAuNjQyNTUsIDAuODUxOTczLCAxLjA2MDU3LCAxLjI2ODciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTQzMDc3LCAwLjI1NTM3MiwgMC4zMzgwNDQsIDAuNDQwODY0LCAwLjU0MzY1MywgMC42NDY0NTksIDAuNzQ5MzQxIiwgXAotICAgICAgICAgICIwLjE1MTk5LCAwLjI2NDM0LCAwLjM0Njk5MSwgMC40NDk4MzIsIDAuNTUyNjIsIDAuNjU1NDE5LCAwLjc1ODMxNiIsIFwKLSAgICAgICAgICAiMC4xNjI5MjEsIDAuMjc1MjI3LCAwLjM1Nzg3LCAwLjQ2MDcxNiwgMC41NjM1MDUsIDAuNjY2MjksIDAuNzY5MDc4IiwgXAotICAgICAgICAgICIwLjE3Mzc0NiwgMC4yODYwOSwgMC4zNjg3ODksIDAuNDcxNjI1LCAwLjU3NDQyMiwgMC42NzcyMTIsIDAuNzgwMTMxIiwgXAotICAgICAgICAgICIwLjE4NDQ1OSwgMC4yOTcwMjcsIDAuMzc5NzMyLCAwLjQ4MjU5NSwgMC41ODU0MTIsIDAuNjg4MTY0LCAwLjc5MTA3NSIsIFwKLSAgICAgICAgICAiMC4yMDEzNjksIDAuMzEzNzEzLCAwLjM5NjM3MywgMC40OTkyMjEsIDAuNjAyMDE0LCAwLjcwNDgxNSwgMC44MDc3MTQiLCBcCi0gICAgICAgICAgIjAuMjE1MDUyLCAwLjMyNzQ1MywgMC40MTAxMTUsIDAuNTEyOTU2LCAwLjYxNTc5NiwgMC43MTg1NTIsIDAuODIxNDc3Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3MDcyOCwgMC4yNzQ0MDEsIDAuNDQxMTgzLCAwLjY1MjU4NiwgMC44NjU2ODQsIDEuMDc3ODMsIDEuMjkwMzMiLCBcCi0gICAgICAgICAgIjAuMDcwNjk1LCAwLjI3NDM4LCAwLjQ0MTEzMywgMC42NTI5OCwgMC44NjU2NzEsIDEuMDc3OTEsIDEuMjkwMzMiLCBcCi0gICAgICAgICAgIjAuMDcwNjg0LCAwLjI3NDIzMywgMC40NDEzMjcsIDAuNjUzMDI5LCAwLjg2NTY0NywgMS4wNzkwNSwgMS4yOTI3NSIsIFwKLSAgICAgICAgICAiMC4wNzA3MzgsIDAuMjc0MjY0LCAwLjQ0MTI1LCAwLjY1MjYsIDAuODY1NzEsIDEuMDc3OTUsIDEuMjkwMzEiLCBcCi0gICAgICAgICAgIjAuMDcwNzcsIDAuMjc0NDQ3LCAwLjQ0MTI2NiwgMC42NTMyNCwgMC44NjQ1OCwgMS4wNzc5OSwgMS4yOTAzMyIsIFwKLSAgICAgICAgICAiMC4wNzA3NzMsIDAuMjc0NDI5LCAwLjQ0MTEsIDAuNjUzMDQsIDAuODY1NjcsIDEuMDc3OTMsIDEuMjkwMzQiLCBcCi0gICAgICAgICAgIjAuMDcxMzA2LCAwLjI3NDU2NCwgMC40NDEzNzEsIDAuNjUzMDEyLCAwLjg2NDYxNSwgMS4wNzc5NiwgMS4yOTAzMSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNTEwMzksIDAuMjY2NDcsIDAuMzQ5OTkzLCAwLjQ1MzYwNSwgMC41NTcwOTMsIDAuNjYwNjI1LCAwLjc2NDA4NiIsIFwKLSAgICAgICAgICAiMC4xNTk2MjUsIDAuMjc1MDU2LCAwLjM1ODU4MiwgMC40NjIxOTUsIDAuNTY1Njg0LCAwLjY2OTI0NywgMC43NzI2ODEiLCBcCi0gICAgICAgICAgIjAuMTY5NDIzLCAwLjI4NDg0LCAwLjM2ODM2NCwgMC40NzE5NzksIDAuNTc1NDcxLCAwLjY3ODk1NSwgMC43ODI0OTYiLCBcCi0gICAgICAgICAgIjAuMTc5MDY3LCAwLjI5NDU1OCwgMC4zNzgwOTYsIDAuNDgxNzA2LCAwLjU4NTIzNCwgMC42ODg2OTMsIDAuNzkyMjE1IiwgXAotICAgICAgICAgICIwLjE4ODY5MiwgMC4zMDQyMDcsIDAuMzg3NzM2LCAwLjQ5MTM0NSwgMC41OTQ4NzUsIDAuNjk4MzMzLCAwLjgwMTg1NCIsIFwKLSAgICAgICAgICAiMC4yMDM4NDQsIDAuMzE5MzEzLCAwLjQwMjg1NCwgMC41MDY0NjgsIDAuNjA5OTY1LCAwLjcxMzQ0NywgMC44MTY5NzMiLCBcCi0gICAgICAgICAgIjAuMjE2MTA4LCAwLjMzMTc1MiwgMC40MTUyODksIDAuNTE4OTI2LCAwLjYyMjQzMSwgMC43MjU4ODEsIDAuODI5NDAzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3MzA3MywgMC4yNzI3MzgsIDAuNDM1NzY0LCAwLjY0MjUzMiwgMC44NTE1MywgMS4wNjA3NSwgMS4yNjgyMiIsIFwKLSAgICAgICAgICAiMC4wNzMwNjgsIDAuMjcyNzM5LCAwLjQzNTc2NiwgMC42NDI1NjMsIDAuODUxNTI4LCAxLjA2MDkyLCAxLjI2ODM4IiwgXAotICAgICAgICAgICIwLjA3MzA3MiwgMC4yNzI3NDMsIDAuNDM1NzU4LCAwLjY0MjQ2NiwgMC44NTE0OTMsIDEuMDU4NzgsIDEuMjY3NTUiLCBcCi0gICAgICAgICAgIjAuMDcyOTUzLCAwLjI3MjczOCwgMC40MzU3ODQsIDAuNjQyNzI4LCAwLjg1MTQ5LCAxLjA2MDE3LCAxLjI2ODUyIiwgXAotICAgICAgICAgICIwLjA3MywgMC4yNzI2OTIsIDAuNDM1NzkzLCAwLjY0MjQ4MSwgMC44NTAwNTIsIDEuMDYwMTksIDEuMjY4NTYiLCBcCi0gICAgICAgICAgIjAuMDczMDUsIDAuMjcyNzEzLCAwLjQzNTY5MSwgMC42NDMyODIsIDAuODUxNDksIDEuMDU5ODIsIDEuMjY2ODUiLCBcCi0gICAgICAgICAgIjAuMDczNDc3LCAwLjI3Mjg3MiwgMC40MzU3ODUsIDAuNjQzNDk1LCAwLjg1MTczNiwgMS4wNjA1NywgMS4yNjg2NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTM3MTcxLCAwLjI0OTUzMiwgMC4zMzIxNjgsIDAuNDM1MDA0LCAwLjUzNzg2NywgMC42NDA1NjUsIDAuNzQzNTEiLCBcCi0gICAgICAgICAgIjAuMTQ2MzQ1LCAwLjI1ODY0NiwgMC4zNDEzMTEsIDAuNDQ0MTgxLCAwLjU0NzAzMSwgMC42NDk3MzQsIDAuNzUyNjU5IiwgXAotICAgICAgICAgICIwLjE1ODAzMSwgMC4yNzAzMzUsIDAuMzUyOTk5LCAwLjQ1NTg0NSwgMC41NTg2MzIsIDAuNjYxNDIzLCAwLjc2NDM0NiIsIFwKLSAgICAgICAgICAiMC4xNjk4MjksIDAuMjgyMTM1LCAwLjM2NDgsIDAuNDY3NjQ1LCAwLjU3MDQzNywgMC42NzMyNTMsIDAuNzc2MjAxIiwgXAotICAgICAgICAgICIwLjE4MTYyNiwgMC4yOTQwMzEsIDAuMzc2NjkyLCAwLjQ3OTQ5NCwgMC41ODIzMzEsIDAuNjg1MDkyLCAwLjc4ODAyNyIsIFwKLSAgICAgICAgICAiMC4yMDAzNjgsIDAuMzEyNzQyLCAwLjM5NTQxNCwgMC40OTgyNTMsIDAuNjAxMTA4LCAwLjcwMzg1MiwgMC44MDY3NzQiLCBcCi0gICAgICAgICAgIjAuMjE1ODMxLCAwLjMyODIxOSwgMC40MTA4OTgsIDAuNTEzNzQ4LCAwLjYxNjU2MSwgMC43MTkzNTYsIDAuODIyMjg4Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3MDczOCwgMC4yNzQ0MzUsIDAuNDQxNzQzLCAwLjY1MzA1OSwgMC44NjYxNTYsIDEuMDc5MzUsIDEuMjkyODkiLCBcCi0gICAgICAgICAgIjAuMDcwNzI4LCAwLjI3NDM5OCwgMC40NDE3MDUsIDAuNjUzMjY2LCAwLjg2NjA3LCAxLjA3OTIyLCAxLjI5MDk0IiwgXAotICAgICAgICAgICIwLjA3MDc0LCAwLjI3NDQ1MiwgMC40NDEzODUsIDAuNjUzMDM1LCAwLjg2NTgxOCwgMS4wNzkzLCAxLjI5Mjc0IiwgXAotICAgICAgICAgICIwLjA3MDgyMywgMC4yNzQ0MzcsIDAuNDQxMzA1LCAwLjY1MzA1OCwgMC44NjYwNTgsIDEuMDc3OTgsIDEuMjkyNTkiLCBcCi0gICAgICAgICAgIjAuMDcwNzcyLCAwLjI3NDQzMSwgMC40NDEyNzEsIDAuNjUzMjM5LCAwLjg2NTk1MywgMS4wNzg5MywgMS4yOTA4NSIsIFwKLSAgICAgICAgICAiMC4wNzA4ODgsIDAuMjc0NDU5LCAwLjQ0MTMzNywgMC42NTMwNTgsIDAuODY2MTE1LCAxLjA3OTI2LCAxLjI5MjgxIiwgXAotICAgICAgICAgICIwLjA3MTU0MywgMC4yNzQ1NzEsIDAuNDQxMzY1LCAwLjY1MzAzMSwgMC44NjYwMDMsIDEuMDc4OCwgMS4yOTI3NSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNDQ1MDMsIDAuMjYwMDIyLCAwLjM0MzU3NywgMC40NDcyMDgsIDAuNTUwNzA3LCAwLjY1NDI4OCwgMC43NTc3MTQiLCBcCi0gICAgICAgICAgIjAuMTUzMzY4LCAwLjI2ODg3MiwgMC4zNTI0MjEsIDAuNDU2MDUsIDAuNTU5NTYxLCAwLjY2MzA0MSwgMC43NjY1NzMiLCBcCi0gICAgICAgICAgIjAuMTY0NzQ3LCAwLjI4MDI5NSwgMC4zNjM4MjcsIDAuNDY3NDYyLCAwLjU3MDk5LCAwLjY3NDQ2NCwgMC43Nzc5ODEiLCBcCi0gICAgICAgICAgIjAuMTc2MDU0LCAwLjI5MTU1OCwgMC4zNzUxMTUsIDAuNDc4NzUxLCAwLjU4MjI1NiwgMC42ODU3NDgsIDAuNzg5MjYyIiwgXAotICAgICAgICAgICIwLjE4NzYyNiwgMC4zMDMxMjYsIDAuMzg2Njg4LCAwLjQ5MDMxOSwgMC41OTM4NjIsIDAuNjk3MzI3LCAwLjgwMDg1MSIsIFwKLSAgICAgICAgICAiMC4yMDU0OTYsIDAuMzIwOTcxLCAwLjQwNDU1OSwgMC41MDgyMjMsIDAuNjExNzY5LCAwLjcxNTIyNCwgMC44MTg3NiIsIFwKLSAgICAgICAgICAiMC4yMjAzNTIsIDAuMzM1OTMxLCAwLjQxOTUzNCwgMC41MjMxNjcsIDAuNjI2NzAyLCAwLjczMDE4NywgMC44MzM3MTEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDczMTgxLCAwLjI3Mjg3NiwgMC40MzU4ODQsIDAuNjQzNDYzLCAwLjg1MTY1NiwgMS4wNjA1OCwgMS4yNzAwNSIsIFwKLSAgICAgICAgICAiMC4wNzMwOTEsIDAuMjcyODgyLCAwLjQzNTg4NCwgMC42NDM0MTEsIDAuODUxNjEzLCAxLjA2MDM1LCAxLjI2OTkiLCBcCi0gICAgICAgICAgIjAuMDczMTg2LCAwLjI3MjksIDAuNDM1OTIxLCAwLjY0MzM5LCAwLjg1MTYzOCwgMS4wNjAzOCwgMS4yNjk0OCIsIFwKLSAgICAgICAgICAiMC4wNzMyMDEsIDAuMjcyODk2LCAwLjQzNTg5NywgMC42NDMzOTUsIDAuODUxNjM3LCAxLjA2MDU4LCAxLjI3MDE2IiwgXAotICAgICAgICAgICIwLjA3MzIxNiwgMC4yNzI5MTgsIDAuNDM1OTEsIDAuNjQzMzksIDAuODUxODA1LCAxLjA2MDY4LCAxLjI3MDQiLCBcCi0gICAgICAgICAgIjAuMDczMjkxLCAwLjI3Mjg5LCAwLjQzNTk1MiwgMC42NDM0MjYsIDAuODUxODUsIDEuMDYwNjUsIDEuMjcwMSIsIFwKLSAgICAgICAgICAiMC4wNzM3NjYsIDAuMjczMDUsIDAuNDM1OTQxLCAwLjY0MzM4OCwgMC44NTE2MjYsIDEuMDYwNTgsIDEuMjcwMDEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUzAiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE2NjA2NywgMC4yNzg0NTksIDAuMzYxMTMzLCAwLjQ2Mzk1OCwgMC41NjY3NDksIDAuNjY5NTQ5LCAwLjc3MjMzNSIsIFwKLSAgICAgICAgICAiMC4xNzYwMjcsIDAuMjg4Mzk3LCAwLjM3MTA1NCwgMC40NzM4OTIsIDAuNTc2Njg4LCAwLjY3OTQ4MiwgMC43ODIzOTciLCBcCi0gICAgICAgICAgIjAuMTg4MTcxLCAwLjMwMDU2MSwgMC4zODMxOTUsIDAuNDg2MDM2LCAwLjU4ODg2OSwgMC42OTE2MTksIDAuNzk0NTc3IiwgXAotICAgICAgICAgICIwLjE5ODc4MSwgMC4zMTExMzQsIDAuMzkzODI3LCAwLjQ5NjY3MywgMC41OTk0NjEsIDAuNzAyMjQ2LCAwLjgwNTE4MSIsIFwKLSAgICAgICAgICAiMC4yMDgwNTIsIDAuMzIwNDA5LCAwLjQwMzEwNywgMC41MDU5NTMsIDAuNjA4ODAxLCAwLjcxMTUzMSwgMC44MTQ0NTciLCBcCi0gICAgICAgICAgIjAuMjIwNjc0LCAwLjMzMjk5NCwgMC40MTU2NTMsIDAuNTE4NTA3LCAwLjYyMTI4NywgMC43MjQwNzksIDAuODI3MDAxIiwgXAotICAgICAgICAgICIwLjIyOTY5NSwgMC4zNDIxNDMsIDAuNDI0ODEzLCAwLjUyNzY1OSwgMC42MzA0NTIsIDAuNzMzMjQxLCAwLjgzNjE3MSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzA5MDIsIDAuMjc0NjA5LCAwLjQ0MTQyOCwgMC42NTMxNjIsIDAuODY1OTg1LCAxLjA3OTA0LCAxLjI5MjY2IiwgXAotICAgICAgICAgICIwLjA3MDk5NCwgMC4yNzQ1ODksIDAuNDQxNTQ4LCAwLjY1MzE0MywgMC44NjU4OSwgMS4wNzkyOSwgMS4yOTI4NCIsIFwKLSAgICAgICAgICAiMC4wNzA5MTgsIDAuMjc0NjE0LCAwLjQ0MTgzOCwgMC42NTMxNTMsIDAuODY2MTYzLCAxLjA3OTMxLCAxLjI5MDQyIiwgXAotICAgICAgICAgICIwLjA3MDkyMiwgMC4yNzQ2MjEsIDAuNDQxNDE1LCAwLjY1MzM0MywgMC44NjU5NTYsIDEuMDc5MjEsIDEuMjkxMjkiLCBcCi0gICAgICAgICAgIjAuMDcwOTc2LCAwLjI3NDQ5MiwgMC40NDE0MDksIDAuNjUzMjQ4LCAwLjg2NjExNCwgMS4wNzkyNywgMS4yOTEwNiIsIFwKLSAgICAgICAgICAiMC4wNzA5MjcsIDAuMjc0NTgsIDAuNDQxNDg3LCAwLjY1MzM1MiwgMC44NjYyMSwgMS4wNzkyMywgMS4yOTExOCIsIFwKLSAgICAgICAgICAiMC4wNzExOTIsIDAuMjc0NjUzLCAwLjQ0MTQ3OCwgMC42NTMyNDYsIDAuODY2MDQsIDEuMDc5MjQsIDEuMjkxMzkiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTcwNjQ1LCAwLjI4NjA1NiwgMC4zNjk1ODQsIDAuNDczMTk5LCAwLjU3NjY5LCAwLjY4MDE3NSwgMC43ODM2NSIsIFwKLSAgICAgICAgICAiMC4xODA4MjIsIDAuMjk2MjQ0LCAwLjM3OTc2NywgMC40ODMzODIsIDAuNTg2ODczLCAwLjY5MDM2LCAwLjc5MzgyNiIsIFwKLSAgICAgICAgICAiMC4xOTMzMTYsIDAuMzA4NzMsIDAuMzkyMjUyLCAwLjQ5NTg2OCwgMC41OTkzNTksIDAuNzAyODQ2LCAwLjgwNjM0OSIsIFwKLSAgICAgICAgICAiMC4yMDQ2MDMsIDAuMzIwMDc3LCAwLjQwMzU4MSwgMC41MDcxOTgsIDAuNjEwNzA2LCAwLjcxNDE3MiwgMC44MTc2OTkiLCBcCi0gICAgICAgICAgIjAuMjE0NTk3LCAwLjMzMDAyMywgMC40MTM4MTgsIDAuNTE3NDMzLCAwLjYyMDY0NCwgMC43MjQxMzEsIDAuODI3NjM4IiwgXAotICAgICAgICAgICIwLjIyODM3NiwgMC4zNDM3OTYsIDAuNDI3MzE0LCAwLjUzMDkzMSwgMC42MzQ0MjIsIDAuNzM3OTEsIDAuODQxMzg2IiwgXAotICAgICAgICAgICIwLjIzODY4MywgMC4zNTQ2MjIsIDAuNDM4MTI4LCAwLjU0MTc2NCwgMC42NDUyNjIsIDAuNzQ4MzE4LCAwLjg1MjI2NSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzMwNzEsIDAuMjcyNzUzLCAwLjQzNTk2MiwgMC42NDMzOTYsIDAuODUxNjAxLCAxLjA1OTgzLCAxLjI3MDAyIiwgXAotICAgICAgICAgICIwLjA3MzA5MSwgMC4yNzI3NTIsIDAuNDM1OTE4LCAwLjY0MzQwNywgMC44NTE2MzgsIDEuMDYwNDcsIDEuMjciLCBcCi0gICAgICAgICAgIjAuMDczMDk0LCAwLjI3MjcxOCwgMC40MzU3MjcsIDAuNjQzMywgMC44NTE1NDEsIDEuMDU5ODksIDEuMjY5NzgiLCBcCi0gICAgICAgICAgIjAuMDczMDE1LCAwLjI3Mjc0NiwgMC40MzU3ODcsIDAuNjQzMzU0LCAwLjg1MTU2NiwgMS4wNjAzMywgMS4yNjk4OSIsIFwKLSAgICAgICAgICAiMC4wNzMwOTQsIDAuMjcyNzM2LCAwLjQzNTc1OSwgMC42NDI3OSwgMC44NTE1NDQsIDEuMDYwNTQsIDEuMjY4NDQiLCBcCi0gICAgICAgICAgIjAuMDczMTAyLCAwLjI3Mjc0NiwgMC40MzU3NzUsIDAuNjQzMjcsIDAuODUxNTI0LCAxLjA2MDUzLCAxLjI2OTg0IiwgXAotICAgICAgICAgICIwLjA3MzA3NSwgMC4yNzI3MjcsIDAuNDM1NzI4LCAwLjY0MzI4NSwgMC44NTE4NDYsIDEuMDYwNzMsIDEuMjY4NDQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUzEiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4ODc1NiwgMC4yMDA1NjIsIDAuMjgzMTI1LCAwLjM4NTg3OSwgMC40ODg2MiwgMC41OTE0MTQsIDAuNjk0MTExIiwgXAotICAgICAgICAgICIwLjA5ODA1NiwgMC4yMDk5MTEsIDAuMjkyNDgsIDAuMzk1MjMzLCAwLjQ5Nzk3MywgMC42MDA3NjgsIDAuNzAzNjQxIiwgXAotICAgICAgICAgICIwLjEwOTU3MywgMC4yMjEzNTIsIDAuMzAzOTIsIDAuNDA2Njc0LCAwLjUwOTQyOSwgMC42MTIxOCwgMC43MTUwMzYiLCBcCi0gICAgICAgICAgIjAuMTIxMDM1LCAwLjIzMjc2LCAwLjMxNTMyNywgMC40MTgwNzQsIDAuNTIwODE5LCAwLjYyMzU5OSwgMC43MjY0NDYiLCBcCi0gICAgICAgICAgIjAuMTMyMzYyLCAwLjI0NDAxNywgMC4zMjY1NTgsIDAuNDI5MzM5LCAwLjUzMjA4NSwgMC42MzQ5MzMsIDAuNzM3NzQiLCBcCi0gICAgICAgICAgIjAuMTQ5MTg0LCAwLjI2MDgyNSwgMC4zNDMzNDIsIDAuNDQ2MTIzLCAwLjU0ODg2NiwgMC42NTE2NjcsIDAuNzU0NDA3IiwgXAotICAgICAgICAgICIwLjE2MjIzOCwgMC4yNzM5MDQsIDAuMzU2NDU4LCAwLjQ1OTIyNiwgMC41NjE5NjQsIDAuNjY0NzQ4LCAwLjc2NzU5OCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjk0MzIsIDAuMjczODA3LCAwLjQ0MTM1NiwgMC42NTIyMDYsIDAuODY0NDg2LCAxLjA3Njc1LCAxLjI5MDY5IiwgXAotICAgICAgICAgICIwLjA2OTQwMiwgMC4yNzM5MSwgMC40NDA3ODQsIDAuNjUyMTc1LCAwLjg2NDQzOSwgMS4wNzY3NCwgMS4yOTAwOCIsIFwKLSAgICAgICAgICAiMC4wNjkxNDUsIDAuMjczODQxLCAwLjQ0MDczNiwgMC42NTE3MTksIDAuODY1NjY4LCAxLjA3NzUyLCAxLjI5IiwgXAotICAgICAgICAgICIwLjA2ODg1NSwgMC4yNzM3LCAwLjQ0MTE3OCwgMC42NTI1OTksIDAuODY1Mjg5LCAxLjA3NzQ0LCAxLjI5IiwgXAotICAgICAgICAgICIwLjA2ODU0NCwgMC4yNzM2NTgsIDAuNDQwNzUzLCAwLjY1MjE1OCwgMC44NjQ0NjMsIDEuMDc4ODUsIDEuMjg5OTgiLCBcCi0gICAgICAgICAgIjAuMDY5NDYyLCAwLjI3Mzc4MywgMC40NDA3MjgsIDAuNjUyMTYzLCAwLjg2NDQzMiwgMS4wNzg0MywgMS4yOTA5IiwgXAotICAgICAgICAgICIwLjA3MDY3NSwgMC4yNzM5ODksIDAuNDQxMzYsIDAuNjUyNjcyLCAwLjg2NTIzNiwgMS4wNzczOCwgMS4yOTAwMiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTY1NzMsIDAuMjEwODU5LCAwLjI5NDE5OSwgMC4zOTc3MjMsIDAuNTAxMTcxLCAwLjYwNDYzOCwgMC43MDgxNDciLCBcCi0gICAgICAgICAgIjAuMTA1NDg0LCAwLjIxOTgwOSwgMC4zMDMxMzgsIDAuNDA2NjYzLCAwLjUxMDExMywgMC42MTM1NywgMC43MTcxNjkiLCBcCi0gICAgICAgICAgIjAuMTE2NDIsIDAuMjMwNzI5LCAwLjMxNDAzMywgMC40MTc1NzgsIDAuNTIxMDQ4LCAwLjYyNDQ5OCwgMC43MjgxIiwgXAotICAgICAgICAgICIwLjEyNzUwNiwgMC4yNDE3NTMsIDAuMzI1MTAxLCAwLjQyODYzNSwgMC41MzIwOTMsIDAuNjM1NTg0LCAwLjczOTA4MiIsIFwKLSAgICAgICAgICAiMC4xMzgzNTEsIDAuMjUyNTQyLCAwLjMzNTg4MiwgMC40Mzk0MTksIDAuNTQyOTA3LCAwLjY0NjM0NSwgMC43NDk5NTQiLCBcCi0gICAgICAgICAgIjAuMTU0NDAzLCAwLjI2ODUyLCAwLjM1MTg4MiwgMC40NTU0MTYsIDAuNTU4ODczLCAwLjY2MjMzOSwgMC43NjU3NyIsIFwKLSAgICAgICAgICAiMC4xNjY3NTUsIDAuMjgwOTMsIDAuMzY0Mjc4LCAwLjQ2NzgxMSwgMC41NzEyOTgsIDAuNjc0NzMyLCAwLjc3ODI2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3MTI0MywgMC4yNzEzNTcsIDAuNDM0Njk2LCAwLjY0MTY0NSwgMC44NTA4NjMsIDEuMDYwMDQsIDEuMjY2NTIiLCBcCi0gICAgICAgICAgIjAuMDcxMTM4LCAwLjI3MTM3NiwgMC40MzQ2NzYsIDAuNjQxNTYxLCAwLjg1MDg3NCwgMS4wNTgzLCAxLjI2NjIzIiwgXAotICAgICAgICAgICIwLjA3MTAxNCwgMC4yNzEzMzcsIDAuNDM0OTg3LCAwLjY0MTYwNSwgMC44NTA5MjMsIDEuMDU4MjUsIDEuMjY3MTIiLCBcCi0gICAgICAgICAgIjAuMDcwNzE4LCAwLjI3MTIzNCwgMC40MzQ2MywgMC42NDE2MjEsIDAuODUwNCwgMS4wNjAxOCwgMS4yNjY4OSIsIFwKLSAgICAgICAgICAiMC4wNzA0MjQsIDAuMjcxMTc3LCAwLjQzNDU0MiwgMC42NDE2NTQsIDAuODUwOTk3LCAxLjA1ODE3LCAxLjI2NjgyIiwgXAotICAgICAgICAgICIwLjA3MDg1NSwgMC4yNzEyMDIsIDAuNDM0NTY4LCAwLjY0MTU5MiwgMC44NTA4NDYsIDEuMDU4MzksIDEuMjY5NDkiLCBcCi0gICAgICAgICAgIjAuMDcxODI0LCAwLjI3MTQ1MSwgMC40MzQ3MjIsIDAuNjQyNTQsIDAuODUxMDY4LCAxLjA1OTEyLCAxLjI2Njk3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlMxIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTcxNDQsIDAuMjA4NTMxLCAwLjI5MTA0OCwgMC4zOTM4MiwgMC40OTY1NjMsIDAuNTk5MzgsIDAuNzAyMjEyIiwgXAotICAgICAgICAgICIwLjEwNzM0MiwgMC4yMTg2MTUsIDAuMzAxMTMyLCAwLjQwMzkwNywgMC41MDY2NSwgMC42MDk0NzcsIDAuNzEyMTU2IiwgXAotICAgICAgICAgICIwLjExOTQyOCwgMC4yMzA3NjgsIDAuMzEzMjg0LCAwLjQxNjA0LCAwLjUxODgzOSwgMC42MjE1NCwgMC43MjQ0MjMiLCBcCi0gICAgICAgICAgIjAuMTMwMzA0LCAwLjI0MTYzNCwgMC4zMjQxMjUsIDAuNDI2OTEsIDAuNTI5NjY1LCAwLjYzMjQzMiwgMC43MzUzMTMiLCBcCi0gICAgICAgICAgIjAuMTM5MjczLCAwLjI1MDUxMSwgMC4zMzMwMzIsIDAuNDM1ODA5LCAwLjUzODU1NSwgMC42NDEzNzYsIDAuNzQ0MTk1IiwgXAotICAgICAgICAgICIwLjE1MTE2OCwgMC4yNjIyOTUsIDAuMzQ0ODg5LCAwLjQ0NzcwNCwgMC41NTA1MjEsIDAuNjUzMjMxLCAwLjc1NjA0NiIsIFwKLSAgICAgICAgICAiMC4xNTk2MzksIDAuMjcwNjcyLCAwLjM1MzE3LCAwLjQ1NTk2OCwgMC41NTg3MjcsIDAuNjYxNjU1LCAwLjc2NDIxMyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjkyNDMsIDAuMjczMzU1LCAwLjQ0MDQ0MSwgMC42NTI0MTMsIDAuODY1MTI3LCAxLjA3Njg1LCAxLjI5MjUzIiwgXAotICAgICAgICAgICIwLjA2OTExMiwgMC4yNzMzODYsIDAuNDQwNDIzLCAwLjY1MjQwOSwgMC44NjUxMDMsIDEuMDc2OTcsIDEuMjkyNSIsIFwKLSAgICAgICAgICAiMC4wNjkxMjYsIDAuMjczMzE1LCAwLjQ0MDg2OSwgMC42NTI2ODgsIDAuODY1NjI5LCAxLjA3ODkyLCAxLjI4OTk1IiwgXAotICAgICAgICAgICIwLjA2ODkzLCAwLjI3MzMyMSwgMC40NDAyOTQsIDAuNjUyMzg3LCAwLjg2NDMxOSwgMS4wNzg4MiwgMS4yODk5NSIsIFwKLSAgICAgICAgICAiMC4wNjg4MzMsIDAuMjczMzI2LCAwLjQ0MDM2LCAwLjY1MjM5MSwgMC44NjUxMTcsIDEuMDc2ODUsIDEuMjkyNTIiLCBcCi0gICAgICAgICAgIjAuMDY4NTM5LCAwLjI3MzI0NiwgMC40NDA4NywgMC42NTI1OTgsIDAuODY1NDg0LCAxLjA3NzI5LCAxLjI5MjM2IiwgXAotICAgICAgICAgICIwLjA2ODU1MSwgMC4yNzMwODMsIDAuNDQwMzY5LCAwLjY1MjMzNCwgMC44NjQ0MTUsIDEuMDc2ODQsIDEuMjkyMSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDIzMjMsIDAuMjE3NDMxLCAwLjMwMDg2MywgMC40MDQ0MjMsIDAuNTA3ODc5LCAwLjYxMTM1MiwgMC43MTQ4MzgiLCBcCi0gICAgICAgICAgIjAuMTEyODYsIDAuMjI4MDQzLCAwLjMxMTQ4MSwgMC40MTUwNCwgMC41MTg0OTksIDAuNjIxOTU0LCAwLjcyNTQxNSIsIFwKLSAgICAgICAgICAiMC4xMjU2NTUsIDAuMjQwNzgsIDAuMzI0MjA4LCAwLjQyNzgsIDAuNTMxMjMsIDAuNjM0NjkxLCAwLjczODIwOCIsIFwKLSAgICAgICAgICAiMC4xMzcxMDMsIDAuMjUyMTQzLCAwLjMzNTU3OCwgMC40MzkxNCwgMC41NDI1OTksIDAuNjQ2MTIyLCAwLjc0OTU1NCIsIFwKLSAgICAgICAgICAiMC4xNDY4MzQsIDAuMjYxODQ5LCAwLjM0NTI5OCwgMC40NDg4NjMsIDAuNTUyMzE5LCAwLjY1NTc4MSwgMC43NTkyMjMiLCBcCi0gICAgICAgICAgIjAuMTU5MzU4LCAwLjI3NDM4MSwgMC4zNTc4MTQsIDAuNDYxMzg5LCAwLjU2NDg0MywgMC42NjgzMTMsIDAuNzcxNzY0IiwgXAotICAgICAgICAgICIwLjE2OTE1NywgMC4yODM5NTYsIDAuMzY3NDI0LCAwLjQ3MDk4NSwgMC41NzQ0NjEsIDAuNjc3OTIyLCAwLjc4MTQzNiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzE5NDgsIDAuMjcyMjY3LCAwLjQzNTM2NywgMC42NDI0MDQsIDAuODQ5OTMzLCAxLjA2MDQxLCAxLjI2NzQyIiwgXAotICAgICAgICAgICIwLjA3MTg2NCwgMC4yNzIyNTcsIDAuNDM1MzY3LCAwLjY0MjIxMSwgMC44NTA2OSwgMS4wNTg2MSwgMS4yNjc3NyIsIFwKLSAgICAgICAgICAiMC4wNzE3NTMsIDAuMjcyMTg2LCAwLjQzNTU3NCwgMC42NDMxMzcsIDAuODUxMjAyLCAxLjA1ODQ3LCAxLjI2Njk5IiwgXAotICAgICAgICAgICIwLjA3MTcwNSwgMC4yNzIxNjMsIDAuNDM1MjgzLCAwLjY0MjI3NSwgMC44NTA1MDUsIDEuMDYwNTgsIDEuMjY4MzEiLCBcCi0gICAgICAgICAgIjAuMDcxNTA2LCAwLjI3MjEyNywgMC40MzUyNDcsIDAuNjQyMDEyLCAwLjg1MTE2OSwgMS4wNTg1MiwgMS4yNjk2IiwgXAotICAgICAgICAgICIwLjA3MTExLCAwLjI3MjA4OCwgMC40MzUyMiwgMC42NDIxMDEsIDAuODUxMTU2LCAxLjA1ODYxLCAxLjI2OTYyIiwgXAotICAgICAgICAgICIwLjA3MDk4NSwgMC4yNzE5NiwgMC40MzU0NzMsIDAuNjQyNzUzLCAwLjg1MTIwOSwgMS4wNTg1NCwgMS4yNjY5MyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzI5OCwgMC4wMDMzMjIsIDAuMDAzMzI1LCAwLjAwMzMyOCwgMC4wMDMzMjksIDAuMDAzMzI5LCAwLjAwMzMyOSIsIFwKLSAgICAgICAgICAiMC4wMDMyODIsIDAuMDAzMzA3LCAwLjAwMzMxLCAwLjAwMzMxMiwgMC4wMDMzMTQsIDAuMDAzMzE0LCAwLjAwMzMxNCIsIFwKLSAgICAgICAgICAiMC4wMDMyNzMsIDAuMDAzMywgMC4wMDMzMDQsIDAuMDAzMzA1LCAwLjAwMzMwNywgMC4wMDMzMDcsIDAuMDAzMzA4IiwgXAotICAgICAgICAgICIwLjAwMzI2NSwgMC4wMDMyOTQsIDAuMDAzMjk5LCAwLjAwMzMwMSwgMC4wMDMzMDIsIDAuMDAzMzA0LCAwLjAwMzMwNCIsIFwKLSAgICAgICAgICAiMC4wMDMyNjMsIDAuMDAzMjkxLCAwLjAwMzI5NywgMC4wMDMzLCAwLjAwMzMwMSwgMC4wMDMzMDIsIDAuMDAzMzAzIiwgXAotICAgICAgICAgICIwLjAwMzI2NywgMC4wMDMyOSwgMC4wMDMyOTcsIDAuMDAzMzAxLCAwLjAwMzMwMSwgMC4wMDMzMDIsIDAuMDAzMzAzIiwgXAotICAgICAgICAgICIwLjAwMzI2NiwgMC4wMDMyOTEsIDAuMDAzMjk3LCAwLjAwMzMwMywgMC4wMDMzMDMsIDAuMDAzMzA1LCAwLjAwMzMwNSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNTg5MywgMC4wMDU5NTEsIDAuMDA1OTY0LCAwLjAwNTk3LCAwLjAwNTk3NCwgMC4wMDU5NzYsIDAuMDA1OTc3IiwgXAotICAgICAgICAgICIwLjAwNTg4MywgMC4wMDU5NDMsIDAuMDA1OTU1LCAwLjAwNTk2MiwgMC4wMDU5NjUsIDAuMDA1OTY4LCAwLjAwNTk2OSIsIFwKLSAgICAgICAgICAiMC4wMDU4NzcsIDAuMDA1OTM3LCAwLjAwNTk1LCAwLjAwNTk1NywgMC4wMDU5NjEsIDAuMDA1OTYzLCAwLjAwNTk2NSIsIFwKLSAgICAgICAgICAiMC4wMDU4NzIsIDAuMDA1OTMyLCAwLjAwNTk0NiwgMC4wMDU5NTMsIDAuMDA1OTU3LCAwLjAwNTk2LCAwLjAwNTk2MiIsIFwKLSAgICAgICAgICAiMC4wMDU4NzEsIDAuMDA1OTMxLCAwLjAwNTk0NSwgMC4wMDU5NTMsIDAuMDA1OTU3LCAwLjAwNTk2LCAwLjAwNTk2MiIsIFwKLSAgICAgICAgICAiMC4wMDU4NzEsIDAuMDA1OTI4LCAwLjAwNTk0MywgMC4wMDU5NTIsIDAuMDA1OTU3LCAwLjAwNTk2LCAwLjAwNTk2MiIsIFwKLSAgICAgICAgICAiMC4wMDU4NzUsIDAuMDA1OTMsIDAuMDA1OTQ1LCAwLjAwNTk1NCwgMC4wMDU5NiwgMC4wMDU5NjMsIDAuMDA1OTY1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzMTQ5LCAwLjAwMzIyNiwgMC4wMDMyNDMsIDAuMDAzMjUyLCAwLjAwMzI1NywgMC4wMDMyNTksIDAuMDAzMjYxIiwgXAotICAgICAgICAgICIwLjAwMzEzMiwgMC4wMDMyMDgsIDAuMDAzMjI1LCAwLjAwMzIzNiwgMC4wMDMyNCwgMC4wMDMyNDQsIDAuMDAzMjQ1IiwgXAotICAgICAgICAgICIwLjAwMzEyMywgMC4wMDMxOTksIDAuMDAzMjE2LCAwLjAwMzIyNiwgMC4wMDMyMzIsIDAuMDAzMjM1LCAwLjAwMzIzNyIsIFwKLSAgICAgICAgICAiMC4wMDMxMTYsIDAuMDAzMTkzLCAwLjAwMzIxLCAwLjAwMzIyMSwgMC4wMDMyMjYsIDAuMDAzMjMsIDAuMDAzMjM0IiwgXAotICAgICAgICAgICIwLjAwMzExMiwgMC4wMDMxODYsIDAuMDAzMjA2LCAwLjAwMzIxNywgMC4wMDMyMjMsIDAuMDAzMjI3LCAwLjAwMzIzMSIsIFwKLSAgICAgICAgICAiMC4wMDMxMiwgMC4wMDMxODUsIDAuMDAzMjA0LCAwLjAwMzIxNiwgMC4wMDMyMjIsIDAuMDAzMjI2LCAwLjAwMzIyOCIsIFwKLSAgICAgICAgICAiMC4wMDMxMTUsIDAuMDAzMTgyLCAwLjAwMzIwMiwgMC4wMDMyMTYsIDAuMDAzMjI1LCAwLjAwMzIyNywgMC4wMDMyMyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNTk0MywgMC4wMDYwNDMsIDAuMDA2MDY1LCAwLjAwNjA3OCwgMC4wMDYwODUsIDAuMDA2MDg5LCAwLjAwNjA5MiIsIFwKLSAgICAgICAgICAiMC4wMDU5MzUsIDAuMDA2MDM1LCAwLjAwNjA1NywgMC4wMDYwNywgMC4wMDYwNzYsIDAuMDA2MDgxLCAwLjAwNjA4NCIsIFwKLSAgICAgICAgICAiMC4wMDU5MjksIDAuMDA2MDI5LCAwLjAwNjA1MSwgMC4wMDYwNjQsIDAuMDA2MDcxLCAwLjAwNjA3NSwgMC4wMDYwNzgiLCBcCi0gICAgICAgICAgIjAuMDA1OTI1LCAwLjAwNjAyMywgMC4wMDYwNDcsIDAuMDA2MDYsIDAuMDA2MDY3LCAwLjAwNjA3MiwgMC4wMDYwNzUiLCBcCi0gICAgICAgICAgIjAuMDA1OTIzLCAwLjAwNjAyLCAwLjAwNjA0MywgMC4wMDYwNTgsIDAuMDA2MDY1LCAwLjAwNjA3LCAwLjAwNjA3NCIsIFwKLSAgICAgICAgICAiMC4wMDU5MjMsIDAuMDA2MDE0LCAwLjAwNjAzOSwgMC4wMDYwNTUsIDAuMDA2MDYzLCAwLjAwNjA2OCwgMC4wMDYwNzIiLCBcCi0gICAgICAgICAgIjAuMDA1OTI4LCAwLjAwNjAxNCwgMC4wMDYwNCwgMC4wMDYwNTUsIDAuMDA2MDY0LCAwLjAwNjA2OSwgMC4wMDYwNzMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDMyMzEsIDAuMDAzMzA3LCAwLjAwMzMyNCwgMC4wMDMzMzQsIDAuMDAzMzQsIDAuMDAzMzQzLCAwLjAwMzM0NyIsIFwKLSAgICAgICAgICAiMC4wMDMyMTUsIDAuMDAzMjkxLCAwLjAwMzMwOCwgMC4wMDMzMTksIDAuMDAzMzI0LCAwLjAwMzMyOCwgMC4wMDMzMyIsIFwKLSAgICAgICAgICAiMC4wMDMyMDcsIDAuMDAzMjgyLCAwLjAwMzMsIDAuMDAzMzEsIDAuMDAzMzE2LCAwLjAwMzMyLCAwLjAwMzMyMyIsIFwKLSAgICAgICAgICAiMC4wMDMyLCAwLjAwMzI3NCwgMC4wMDMyOTMsIDAuMDAzMzA1LCAwLjAwMzMxMSwgMC4wMDMzMTUsIDAuMDAzMzE3IiwgXAotICAgICAgICAgICIwLjAwMzE5NiwgMC4wMDMyNjksIDAuMDAzMjg4LCAwLjAwMzMsIDAuMDAzMzA3LCAwLjAwMzMxLCAwLjAwMzMxNCIsIFwKLSAgICAgICAgICAiMC4wMDMxOTQsIDAuMDAzMjY0LCAwLjAwMzI4NCwgMC4wMDMyOTYsIDAuMDAzMzAzLCAwLjAwMzMwNywgMC4wMDMzMTEiLCBcCi0gICAgICAgICAgIjAuMDAzMTk1LCAwLjAwMzI2MSwgMC4wMDMyODMsIDAuMDAzMjk1LCAwLjAwMzMwMywgMC4wMDMzMDgsIDAuMDAzMzExIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2Mzk0LCAwLjAwNjQ5MSwgMC4wMDY1MTMsIDAuMDA2NTI2LCAwLjAwNjUzMywgMC4wMDY1MzgsIDAuMDA2NTQxIiwgXAotICAgICAgICAgICIwLjAwNjM4NiwgMC4wMDY0ODIsIDAuMDA2NTA1LCAwLjAwNjUxOCwgMC4wMDY1MjUsIDAuMDA2NTI5LCAwLjAwNjUzMiIsIFwKLSAgICAgICAgICAiMC4wMDYzOCwgMC4wMDY0NzYsIDAuMDA2NDk5LCAwLjAwNjUxMiwgMC4wMDY1MiwgMC4wMDY1MjQsIDAuMDA2NTI4IiwgXAotICAgICAgICAgICIwLjAwNjM3NSwgMC4wMDY0NzEsIDAuMDA2NDk0LCAwLjAwNjUwOCwgMC4wMDY1MTYsIDAuMDA2NTIxLCAwLjAwNjUyNCIsIFwKLSAgICAgICAgICAiMC4wMDYzNzIsIDAuMDA2NDY2LCAwLjAwNjQ5MSwgMC4wMDY1MDUsIDAuMDA2NTEzLCAwLjAwNjUxOSwgMC4wMDY1MjIiLCBcCi0gICAgICAgICAgIjAuMDA2Mzc3LCAwLjAwNjQ2MywgMC4wMDY0ODgsIDAuMDA2NTAzLCAwLjAwNjUxMiwgMC4wMDY1MTcsIDAuMDA2NTIxIiwgXAotICAgICAgICAgICIwLjAwNjM3OCwgMC4wMDY0NjEsIDAuMDA2NDg2LCAwLjAwNjUwMiwgMC4wMDY1MTEsIDAuMDA2NTE3LCAwLjAwNjUyMSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkQiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjk5MiwgMC4wMDMwNjksIDAuMDAzMDg2LCAwLjAwMzA5NiwgMC4wMDMxMDEsIDAuMDAzMTA1LCAwLjAwMzEwNyIsIFwKLSAgICAgICAgICAiMC4wMDI5NzcsIDAuMDAzMDUzLCAwLjAwMzA3MiwgMC4wMDMwOCwgMC4wMDMwODYsIDAuMDAzMDg5LCAwLjAwMzA5MyIsIFwKLSAgICAgICAgICAiMC4wMDI5NjgsIDAuMDAzMDQ0LCAwLjAwMzA2MiwgMC4wMDMwNzMsIDAuMDAzMDc4LCAwLjAwMzA4MiwgMC4wMDMwODQiLCBcCi0gICAgICAgICAgIjAuMDAyOTYxLCAwLjAwMzAzNywgMC4wMDMwNTYsIDAuMDAzMDY3LCAwLjAwMzA3MywgMC4wMDMwNzcsIDAuMDAzMDgiLCBcCi0gICAgICAgICAgIjAuMDAyOTU3LCAwLjAwMzAzMywgMC4wMDMwNTIsIDAuMDAzMDYzLCAwLjAwMzA3LCAwLjAwMzA3MywgMC4wMDMwNzciLCBcCi0gICAgICAgICAgIjAuMDAyOTYxLCAwLjAwMzAyOCwgMC4wMDMwNDgsIDAuMDAzMDYsIDAuMDAzMDY2LCAwLjAwMzA3MSwgMC4wMDMwNzQiLCBcCi0gICAgICAgICAgIjAuMDAyOTYyLCAwLjAwMzAyNywgMC4wMDMwNDcsIDAuMDAzMDYyLCAwLjAwMzA2OCwgMC4wMDMwNzIsIDAuMDAzMDc2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2NDg4LCAwLjAwNjU4NSwgMC4wMDY2MDcsIDAuMDA2NjIsIDAuMDA2NjI3LCAwLjAwNjYzMSwgMC4wMDY2MzUiLCBcCi0gICAgICAgICAgIjAuMDA2NDgsIDAuMDA2NTc3LCAwLjAwNjU5OSwgMC4wMDY2MTIsIDAuMDA2NjE5LCAwLjAwNjYyNCwgMC4wMDY2MjciLCBcCi0gICAgICAgICAgIjAuMDA2NDc0LCAwLjAwNjU3LCAwLjAwNjU5MywgMC4wMDY2MDYsIDAuMDA2NjE0LCAwLjAwNjYxOCwgMC4wMDY2MjIiLCBcCi0gICAgICAgICAgIjAuMDA2NDY5LCAwLjAwNjU2NSwgMC4wMDY1ODgsIDAuMDA2NjAyLCAwLjAwNjYxLCAwLjAwNjYxNSwgMC4wMDY2MTgiLCBcCi0gICAgICAgICAgIjAuMDA2NDY3LCAwLjAwNjU2LCAwLjAwNjU4NSwgMC4wMDY2LCAwLjAwNjYwOCwgMC4wMDY2MTMsIDAuMDA2NjE3IiwgXAotICAgICAgICAgICIwLjAwNjQ2OSwgMC4wMDY1NTcsIDAuMDA2NTgyLCAwLjAwNjU5OCwgMC4wMDY2MDYsIDAuMDA2NjEyLCAwLjAwNjYxNSIsIFwKLSAgICAgICAgICAiMC4wMDY0NywgMC4wMDY1NTcsIDAuMDA2NTgyLCAwLjAwNjU5OCwgMC4wMDY2MDcsIDAuMDA2NjEzLCAwLjAwNjYxNyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlMwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDg4MTksIDAuMDA4ODUyLCAwLjAwODg2MSwgMC4wMDg4NjcsIDAuMDA4ODY4LCAwLjAwODg2OCwgMC4wMDg4NzEiLCBcCi0gICAgICAgICAgIjAuMDA4Nzg1LCAwLjAwODgxOCwgMC4wMDg4MjYsIDAuMDA4ODMsIDAuMDA4ODMzLCAwLjAwODgzNCwgMC4wMDg4MzUiLCBcCi0gICAgICAgICAgIjAuMDA4NzcsIDAuMDA4ODA0LCAwLjAwODgxMSwgMC4wMDg4MTgsIDAuMDA4ODIyLCAwLjAwODgyLCAwLjAwODgyMiIsIFwKLSAgICAgICAgICAiMC4wMDg3OCwgMC4wMDg4MTUsIDAuMDA4ODIyLCAwLjAwODgyOCwgMC4wMDg4MywgMC4wMDg4MzEsIDAuMDA4ODMyIiwgXAotICAgICAgICAgICIwLjAwODc4NiwgMC4wMDg4MjEsIDAuMDA4ODI5LCAwLjAwODgzMywgMC4wMDg4MzcsIDAuMDA4ODM2LCAwLjAwODgzOCIsIFwKLSAgICAgICAgICAiMC4wMDg4MTcsIDAuMDA4ODUyLCAwLjAwODg2LCAwLjAwODg2NCwgMC4wMDg4NjYsIDAuMDA4ODY5LCAwLjAwODg2OSIsIFwKLSAgICAgICAgICAiMC4wMDg4NTcsIDAuMDA4ODkyLCAwLjAwODksIDAuMDA4OTAxLCAwLjAwODkxLCAwLjAwODkwOCwgMC4wMDg5MDkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDg1NjQsIDAuMDA4NjU5LCAwLjAwODY4MiwgMC4wMDg2OTYsIDAuMDA4NzAzLCAwLjAwODcwOCwgMC4wMDg3MTEiLCBcCi0gICAgICAgICAgIjAuMDA4NTQ1LCAwLjAwODY0MSwgMC4wMDg2NjQsIDAuMDA4Njc3LCAwLjAwODY4NSwgMC4wMDg2ODksIDAuMDA4NjkzIiwgXAotICAgICAgICAgICIwLjAwODUzLCAwLjAwODYyNSwgMC4wMDg2NDgsIDAuMDA4NjYxLCAwLjAwODY2OSwgMC4wMDg2NzQsIDAuMDA4Njc3IiwgXAotICAgICAgICAgICIwLjAwODUyNywgMC4wMDg2MjIsIDAuMDA4NjQ2LCAwLjAwODY1OSwgMC4wMDg2NjcsIDAuMDA4NjcxLCAwLjAwODY3NSIsIFwKLSAgICAgICAgICAiMC4wMDg1MjksIDAuMDA4NjI0LCAwLjAwODY0NywgMC4wMDg2NjEsIDAuMDA4NjY5LCAwLjAwODY3MywgMC4wMDg2NzciLCBcCi0gICAgICAgICAgIjAuMDA4NTQ2LCAwLjAwODY0MSwgMC4wMDg2NjQsIDAuMDA4Njc3LCAwLjAwODY4NSwgMC4wMDg2OSwgMC4wMDg2OTMiLCBcCi0gICAgICAgICAgIjAuMDA4NTU4LCAwLjAwODY1NCwgMC4wMDg2NzcsIDAuMDA4NjkxLCAwLjAwODY5OSwgMC4wMDg3MDIsIDAuMDA4NzA3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUzEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDczOCwgMC4wMDQ4MTcsIDAuMDA0ODI4LCAwLjAwNDgzNSwgMC4wMDQ4MzksIDAuMDA0ODQxLCAwLjAwNDg0MiIsIFwKLSAgICAgICAgICAiMC4wMDQ3NDksIDAuMDA0ODI1LCAwLjAwNDgzOCwgMC4wMDQ4NDUsIDAuMDA0ODQ5LCAwLjAwNDg1MSwgMC4wMDQ4NTMiLCBcCi0gICAgICAgICAgIjAuMDA0Nzk3LCAwLjAwNDg3LCAwLjAwNDg4NCwgMC4wMDQ4OTMsIDAuMDA0ODk3LCAwLjAwNDg5OCwgMC4wMDQ5IiwgXAotICAgICAgICAgICIwLjAwNDgyOCwgMC4wMDQ5MDEsIDAuMDA0OTE1LCAwLjAwNDkyNCwgMC4wMDQ5MjgsIDAuMDA0OTMsIDAuMDA0OTM0IiwgXAotICAgICAgICAgICIwLjAwNDg1NiwgMC4wMDQ5MjgsIDAuMDA0OTQzLCAwLjAwNDk1MiwgMC4wMDQ5NTcsIDAuMDA0OTYsIDAuMDA0OTYyIiwgXAotICAgICAgICAgICIwLjAwNDkyNywgMC4wMDQ5ODMsIDAuMDA1MDEyLCAwLjAwNTAxNywgMC4wMDUwMjgsIDAuMDA1MDI4LCAwLjAwNTAzIiwgXAotICAgICAgICAgICIwLjAwNDk3MiwgMC4wMDUwMzksIDAuMDA1MDQ5LCAwLjAwNTA2MiwgMC4wMDUwNjUsIDAuMDA1MDcxLCAwLjAwNTA3MyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzY5NiwgMC4wMDM3OTUsIDAuMDAzODEsIDAuMDAzODE5LCAwLjAwMzgyMywgMC4wMDM4MjYsIDAuMDAzODI4IiwgXAotICAgICAgICAgICIwLjAwMzcwNCwgMC4wMDM4MDIsIDAuMDAzODE4LCAwLjAwMzgyNywgMC4wMDM4MzIsIDAuMDAzODM1LCAwLjAwMzgzNyIsIFwKLSAgICAgICAgICAiMC4wMDM3NTgsIDAuMDAzODUzLCAwLjAwMzg3LCAwLjAwMzg4LCAwLjAwMzg4NSwgMC4wMDM4ODgsIDAuMDAzODkxIiwgXAotICAgICAgICAgICIwLjAwMzc5MiwgMC4wMDM4ODUsIDAuMDAzOTAzLCAwLjAwMzkxNCwgMC4wMDM5MTksIDAuMDAzOTIzLCAwLjAwMzkyNSIsIFwKLSAgICAgICAgICAiMC4wMDM4MzMsIDAuMDAzOTI3LCAwLjAwMzk0NiwgMC4wMDM5NTcsIDAuMDAzOTYzLCAwLjAwMzk2NywgMC4wMDM5NjkiLCBcCi0gICAgICAgICAgIjAuMDAzODk1LCAwLjAwMzk4NiwgMC4wMDQwMDUsIDAuMDA0MDE3LCAwLjAwNDAyMywgMC4wMDQwMjcsIDAuMDA0MDMiLCBcCi0gICAgICAgICAgIjAuMDAzOTU4LCAwLjAwNDA0NiwgMC4wMDQwNjUsIDAuMDA0MDc2LCAwLjAwNDA4MywgMC4wMDQwODcsIDAuMDA0MDkiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogTVg0WEwgKgotICogLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKE1YNFhMKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMjM4MzQzOwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2NzAzMTc7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjY4NzA1OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDY3MDMxNzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA3NjUsIDAuMDAwNzQ1LCAwLjAwMDczNSwgMC4wMDA3MywgMC4wMDA3MjksIDAuMDAwNzMyLCAwLjAwMDczOCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjM1MiwgMC4wMDIzNCwgMC4wMDIzMzUsIDAuMDAyMzMzLCAwLjAwMjMzMywgMC4wMDIzMzQsIDAuMDAyMzM4Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA1OTAzNTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA1ODg1MDc7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNTkwMzU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjE4LCAwLjAwMDIyMSwgMC4wMDAyMjEsIDAuMDAwMjIyLCAwLjAwMDIyMiwgMC4wMDAyMjIsIDAuMDAwMjIyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjMxLCAwLjAwMDIyNywgMC4wMDAyMjcsIDAuMDAwMjI3LCAwLjAwMDIyNywgMC4wMDAyMjcsIDAuMDAwMjI3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihDKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2MjIzNTI7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjIwNTc4OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDYyMjM1MjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA3ODgsIDAuMDAwNzY3LCAwLjAwMDc1NywgMC4wMDA3NTMsIDAuMDAwNzUyLCAwLjAwMDc1NiwgMC4wMDA3NjIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDIxNDQsIDAuMDAyMTMyLCAwLjAwMjEyNywgMC4wMDIxMjQsIDAuMDAyMTI0LCAwLjAwMjEyNiwgMC4wMDIxMjkiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEQpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYyMzcyOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYyMjQ1NTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2MjM3MjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyMTgsIDAuMDAwMjIsIDAuMDAwMjIxLCAwLjAwMDIyMiwgMC4wMDAyMjIsIDAuMDAwMjIyLCAwLjAwMDIyMiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDIzMiwgMC4wMDAyMjgsIDAuMDAwMjI4LCAwLjAwMDIyNywgMC4wMDAyMjcsIDAuMDAwMjI3LCAwLjAwMDIyNyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUzApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMjAwMDU1OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTk5OTg5OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMjAwMDU1OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDMzMSwgMC4wMDAzMDIsIDAuMDAwMzAxLCAwLjAwMDMwOSwgMC4wMDAzMjMsIDAuMDAwMzM1LCAwLjAwMDM1NCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzE3MiwgMC4wMDMxNTEsIDAuMDAzMTQ5LCAwLjAwMzE1MywgMC4wMDMxNiwgMC4wMDMxNzksIDAuMDAzMiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUzEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTEyMzk3OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTEyMzk3OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTEyMzg4OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDA1OSwgMC4wMDAwMywgMC4wMDAwMjcsIDAuMDAwMDQ4LCAwLjAwMDA1LCAwLjAwMDA3NiwgMC4wMDAxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyMDA0LCAwLjAwMTk4MywgMC4wMDE5ODUsIDAuMDAxOTksIDAuMDAxOTk5LCAwLjAwMjAyLCAwLjAwMjA0NCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjE0NzI3OTsKLSAgICBmdW5jdGlvbiA6ICIoKFMxICgoUzAgRCkgKyAoIVMwIEMpKSkgKyAoIVMxICgoUzAgQikgKyAoIVMwIEEpKSkpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNzQwNjksIDAuMTg4NDk5LCAwLjMxNjA1OSwgMC41MjgxNTMsIDAuNzM5ODk3LCAxLjIzNDI4LCAxLjUxNjc4IiwgXAotICAgICAgICAgICIwLjE4MjgzMywgMC4xOTcyNjIsIDAuMzI0ODM0LCAwLjUzNjkyMSwgMC43NDg3NjIsIDEuMjQzMDcsIDEuNTI1MzUiLCBcCi0gICAgICAgICAgIjAuMTkzNjIxLCAwLjIwODA0OSwgMC4zMzU2MjIsIDAuNTQ3NTg4LCAwLjc1OTQzOSwgMS4yNTM3NCwgMS41MzYzMiIsIFwKLSAgICAgICAgICAiMC4yMDQ1MTMsIDAuMjE4OTMzLCAwLjM0NjUwOSwgMC41NTg1MTMsIDAuNzcwMzEyLCAxLjI2NDc4LCAxLjU0NzIyIiwgXAotICAgICAgICAgICIwLjIxNDc4MiwgMC4yMjkxODYsIDAuMzU2Nzc5LCAwLjU2ODg1OSwgMC43ODA1OSwgMS4yNzQ5NywgMS41NTc0MyIsIFwKLSAgICAgICAgICAiMC4yMzA4OTcsIDAuMjQ1MzE2LCAwLjM3MjkwOSwgMC41ODQ5MjgsIDAuNzk2NzQsIDEuMjkxMDIsIDEuNTczNjQiLCBcCi0gICAgICAgICAgIjAuMjQ0NTEyLCAwLjI1ODkzNywgMC4zODY1MzYsIDAuNTk4NTQzLCAwLjgxMDM2LCAxLjMwNDY2LCAxLjU4NzA2Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE2MTkxMiwgMC4xODk4MjgsIDAuNDQ2MDE2LCAwLjg3ODU5MywgMS4zMTU0LCAyLjMzMTc3LCAyLjkwNjk1IiwgXAotICAgICAgICAgICIwLjE2MTkyMywgMC4xODk2NjQsIDAuNDQ1OTU4LCAwLjg3ODU5MiwgMS4zMTU1NywgMi4zMjY5NSwgMi45MDczMSIsIFwKLSAgICAgICAgICAiMC4xNjE5MTIsIDAuMTg5ODQxLCAwLjQ0NjMwMywgMC44ODAzMDIsIDEuMzE1MzQsIDIuMzMxMzksIDIuOTA2NCIsIFwKLSAgICAgICAgICAiMC4xNjE5MjcsIDAuMTg5ODM5LCAwLjQ0NjAyMywgMC44Nzg3NDEsIDEuMzE1MzMsIDIuMzI3MTksIDIuOTA1OTYiLCBcCi0gICAgICAgICAgIjAuMTYxOTIzLCAwLjE4OTgxLCAwLjQ0NjAxMSwgMC44Nzg1NjcsIDEuMzE1MzMsIDIuMzMxNSwgMi45MTIzMyIsIFwKLSAgICAgICAgICAiMC4xNjIwOTMsIDAuMTg5OTU2LCAwLjQ0NjMyMSwgMC44Nzg3NDksIDEuMzE1MjgsIDIuMzI3NTIsIDIuOTA2NjQiLCBcCi0gICAgICAgICAgIjAuMTYyMzQyLCAwLjE5MDI0NSwgMC40NDY0MTUsIDAuODc4NDY2LCAxLjMxNTEyLCAyLjMyNzUxLCAyLjkwNzQyIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE3NzkyNywgMC4xOTIyNjgsIDAuMzE3NjMxLCAwLjUyNTExNiwgMC43MzI1NDYsIDEuMjE2NTIsIDEuNDkzMDQiLCBcCi0gICAgICAgICAgIjAuMTg2NjE2LCAwLjIwMDk1NiwgMC4zMjYzMjEsIDAuNTMzODA4LCAwLjc0MTI1NSwgMS4yMjUyLCAxLjUwMTc0IiwgXAotICAgICAgICAgICIwLjE5NjUwNiwgMC4yMTA4MzksIDAuMzM2MjQxLCAwLjU0MzcyLCAwLjc1MTIxOSwgMS4yMzUxLCAxLjUxMTY4IiwgXAotICAgICAgICAgICIwLjIwNjE3NiwgMC4yMjA1MTYsIDAuMzQ1ODg5LCAwLjU1MzM4LCAwLjc2MDg0OCwgMS4yNDQ3OCwgMS41MjEzMiIsIFwKLSAgICAgICAgICAiMC4yMTU3MDEsIDAuMjMwMDI1LCAwLjM1NTQwOCwgMC41NjI5MDcsIDAuNzcwNDMxLCAxLjI1NDMsIDEuNTMwNzciLCBcCi0gICAgICAgICAgIjAuMjMwMTMzLCAwLjI0NDQ4MSwgMC4zNjk4NzksIDAuNTc3MzgxLCAwLjc4NDkzOCwgMS4yNjg3NywgMS41NDUyOCIsIFwKLSAgICAgICAgICAiMC4yNDE3OTgsIDAuMjU2MjAxLCAwLjM4MTU5MSwgMC41ODkwOSwgMC43OTY1OTQsIDEuMjgwNTgsIDEuNTU2OTkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTU4MjkyLCAwLjE4NDgxOCwgMC40MjgyLCAwLjg0MTcwNCwgMS4yNTkzNywgMi4yMjg5NCwgMi43ODAzIiwgXAotICAgICAgICAgICIwLjE1ODI5MSwgMC4xODQ4MTcsIDAuNDI4Mjk0LCAwLjg0MTc4NiwgMS4yNTcxNSwgMi4yMjkwMSwgMi43ODAzOCIsIFwKLSAgICAgICAgICAiMC4xNTgzMzQsIDAuMTg0NzgxLCAwLjQyODA4NiwgMC44NDI3MjEsIDEuMjU5NzEsIDIuMjI4MSwgMi43ODE1MSIsIFwKLSAgICAgICAgICAiMC4xNTgzMDgsIDAuMTg0ODAxLCAwLjQyODMzNSwgMC44NDE3NiwgMS4yNTc3MywgMi4yMjg5NywgMi43ODI0MiIsIFwKLSAgICAgICAgICAiMC4xNTgzMjYsIDAuMTg0ODI4LCAwLjQyODUxLCAwLjg0MTgwNiwgMS4yNTk4MywgMi4yMjg3MywgMi43ODc2NiIsIFwKLSAgICAgICAgICAiMC4xNTg1MTMsIDAuMTg0OTg4LCAwLjQyODMwNiwgMC44NDE4MjYsIDEuMjU5ODEsIDIuMjI4NiwgMi43ODc4NyIsIFwKLSAgICAgICAgICAiMC4xNTg4NTIsIDAuMTg1Mjg1LCAwLjQyODU4OCwgMC44NDMyMjcsIDEuMjU5NjksIDIuMjMyNywgMi43ODM3MSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNzQxMzYsIDAuMTg4NTc3LCAwLjMxNjE0NiwgMC41MjgyMTcsIDAuNzQwMDQ3LCAxLjIzNDM5LCAxLjUxNjgiLCBcCi0gICAgICAgICAgIjAuMTgzMDc4LCAwLjE5NzUwNywgMC4zMjUwNzgsIDAuNTM3MDgxLCAwLjc0ODg5NSwgMS4yNDMzMiwgMS41MjU3NSIsIFwKLSAgICAgICAgICAiMC4xOTM5MzUsIDAuMjA4MzYzLCAwLjMzNTkzNywgMC41NDc5MTcsIDAuNzU5NzU5LCAxLjI1NDA5LCAxLjUzNjYzIiwgXAotICAgICAgICAgICIwLjIwNDgxNSwgMC4yMTkyMjEsIDAuMzQ2ODE0LCAwLjU1ODgxOSwgMC43NzA2MjIsIDEuMjY1MSwgMS41NDc1IiwgXAotICAgICAgICAgICIwLjIxNTI3OCwgMC4yMjk3MTksIDAuMzU3MzA5LCAwLjU2OTI0MiwgMC43ODExNDMsIDEuMjc1MzEsIDEuNTU3NzMiLCBcCi0gICAgICAgICAgIjAuMjMxNDU0LCAwLjI0NTkwNSwgMC4zNzM0OTEsIDAuNTg1NTA4LCAwLjc5NzM4OSwgMS4yOTE3NywgMS41NzQxNSIsIFwKLSAgICAgICAgICAiMC4yNDUwMjEsIDAuMjU5NDQ5LCAwLjM4NzAzNiwgMC41OTkwNTMsIDAuODEwOTA1LCAxLjMwNTMzLCAxLjU4NzU3Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE2MTkzMiwgMC4xODk4NTksIDAuNDQ2MzQ0LCAwLjg3OTc2LCAxLjMxNTU3LCAyLjMzMTQ1LCAyLjkxMjQ5IiwgXAotICAgICAgICAgICIwLjE2MTkzMiwgMC4xODk4NiwgMC40NDYzMzEsIDAuODgwMzcsIDEuMzE1MzgsIDIuMzMxNywgMi45MTI0NiIsIFwKLSAgICAgICAgICAiMC4xNjE5MjMsIDAuMTg5ODUxLCAwLjQ0NjMxMiwgMC44ODAzMzQsIDEuMzE1MzYsIDIuMzMxNDUsIDIuOTEyNDYiLCBcCi0gICAgICAgICAgIjAuMTYxOTMyLCAwLjE4OTc4OCwgMC40NDYwMzQsIDAuODc4NywgMS4zMTUzNiwgMi4zMjcxLCAyLjkxMjQiLCBcCi0gICAgICAgICAgIjAuMTYxOTUzLCAwLjE4OTg3NiwgMC40NDYzMjIsIDAuODgwMDg3LCAxLjMxNTM1LCAyLjMzMTE5LCAyLjkxMDU2IiwgXAotICAgICAgICAgICIwLjE2MjA5NSwgMC4xODk5OSwgMC40NDYwNTksIDAuODc4Nzg5LCAxLjMxNTQzLCAyLjMyNzY2LCAyLjkxMTkiLCBcCi0gICAgICAgICAgIjAuMTYyMzY5LCAwLjE5MDE5NiwgMC40NDY0MywgMC44Nzg2MjcsIDEuMzE1MTcsIDIuMzI3MDcsIDIuOTA3MyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNzkxMywgMC4xOTM0NTcsIDAuMzE4ODkxLCAwLjUyNjQ0MSwgMC43MzM4OTMsIDEuMjE3NzYsIDEuNDk0MzUiLCBcCi0gICAgICAgICAgIjAuMTg3NjgyLCAwLjIwMjAyNSwgMC4zMjc0MzEsIDAuNTM0OTM5LCAwLjc0MjQzMiwgMS4yMjYzMSwgMS41MDI4OSIsIFwKLSAgICAgICAgICAiMC4xOTc0NzksIDAuMjExODA4LCAwLjMzNzI1MSwgMC41NDQ3NTMsIDAuNzUyMjUzLCAxLjIzNjE0LCAxLjUxMjcyIiwgXAotICAgICAgICAgICIwLjIwNzE2LCAwLjIyMTUxMSwgMC4zNDY5MTEsIDAuNTU0NDE2LCAwLjc2MTkwNiwgMS4yNDU4MiwgMS41MjIzNyIsIFwKLSAgICAgICAgICAiMC4yMTY2NDcsIDAuMjMwOTkyLCAwLjM1NjQxMSwgMC41NjM5NzcsIDAuNzcxNDIzLCAxLjI1NTMsIDEuNTMxODgiLCBcCi0gICAgICAgICAgIjAuMjMxMTEyLCAwLjI0NTQ0NSwgMC4zNzA4NjksIDAuNTc4MzgzLCAwLjc4NTkyMywgMS4yNjk3OCwgMS41NDY0IiwgXAotICAgICAgICAgICIwLjI0Mjc5NywgMC4yNTcyMTgsIDAuMzgyNjg2LCAwLjU5MDI2MiwgMC43OTc3MzIsIDEuMjgxNjIsIDEuNTU4MTMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTU4NDMxLCAwLjE4NDkwMiwgMC40Mjg0NywgMC44NDM1NjIsIDEuMjU5ODMsIDIuMjI4NTksIDIuNzgwNjYiLCBcCi0gICAgICAgICAgIjAuMTU4NDMxLCAwLjE4NDg4OCwgMC40MjgyNDYsIDAuODQyMTksIDEuMjU5OCwgMi4yMjc5LCAyLjc4MDc4IiwgXAotICAgICAgICAgICIwLjE1ODQyOSwgMC4xODQ4NjYsIDAuNDI4MjM0LCAwLjg0MjIwOCwgMS4yNTk3OSwgMi4yMjgwOSwgMi43ODEzNyIsIFwKLSAgICAgICAgICAiMC4xNTg0MjUsIDAuMTg0OTIyLCAwLjQyODQyNCwgMC44NDE4MDQsIDEuMjU3NzMsIDIuMjI4NzYsIDIuNzg0MjQiLCBcCi0gICAgICAgICAgIjAuMTU4NDQyLCAwLjE4NDg4NywgMC40MjgyNDMsIDAuODQzNjAyLCAxLjI1OTc2LCAyLjIyNzg0LCAyLjc4MjQzIiwgXAotICAgICAgICAgICIwLjE1ODY1MiwgMC4xODUwNjEsIDAuNDI5MDk3LCAwLjg0MTg2MSwgMS4yNTk3MiwgMi4yMjgzNywgMi43ODg1NSIsIFwKLSAgICAgICAgICAiMC4xNTkxOSwgMC4xODUzNzIsIDAuNDI4NTM0LCAwLjg0MzY0MiwgMS4yNTk2NywgMi4yMjg1NCwgMi43ODQ3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE3MDg3MywgMC4xODUyNzcsIDAuMzEyODE2LCAwLjUyNDc1NSwgMC43MzY2MzMsIDEuMjMwOSwgMS41MTM1MiIsIFwKLSAgICAgICAgICAiMC4xNzk1ODMsIDAuMTkzOTg5LCAwLjMyMTUyOCwgMC41MzM0NzYsIDAuNzQ1MzUyLCAxLjIzOTU0LCAxLjUyMiIsIFwKLSAgICAgICAgICAiMC4xOTAzNSwgMC4yMDQ3NTMsIDAuMzMyMzEyLCAwLjU0NDI3OSwgMC43NTYyNDUsIDEuMjUwNDQsIDEuNTMyODciLCBcCi0gICAgICAgICAgIjAuMjAxMzA4LCAwLjIxNTY5NywgMC4zNDMyNzgsIDAuNTU1MzcyLCAwLjc2NzIwNSwgMS4yNjE1NywgMS41NDM4IiwgXAotICAgICAgICAgICIwLjIxMTcyMywgMC4yMjYxMzQsIDAuMzUzNzE2LCAwLjU2NTY4NSwgMC43Nzc2NTgsIDEuMjcxODQsIDEuNTU0MjkiLCBcCi0gICAgICAgICAgIjAuMjI3NSwgMC4yNDE5MjMsIDAuMzY5NDc2LCAwLjU4MTU4MywgMC43OTMzODcsIDEuMjg3NjIsIDEuNTcwMDEiLCBcCi0gICAgICAgICAgIjAuMjQxMDA0LCAwLjI1NTQwMywgMC4zODI5ODUsIDAuNTk1MDA3LCAwLjgwNjgxNiwgMS4zMDExMiwgMS41ODM1NCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNjE1MzcsIDAuMTg5NDksIDAuNDQ2MTc2LCAwLjg4MDE1NywgMS4zMTUzOSwgMi4zMzE0NCwgMi45MTI2MyIsIFwKLSAgICAgICAgICAiMC4xNjE1MzYsIDAuMTg5NDkxLCAwLjQ0NjE1NiwgMC44Nzg5NzYsIDEuMzE1MzMsIDIuMzMxMjQsIDIuOTExODkiLCBcCi0gICAgICAgICAgIjAuMTYxNTMxLCAwLjE4OTM0NiwgMC40NDYxNTMsIDAuODc5MTksIDEuMzE1NTEsIDIuMzI3NTcsIDIuOTA3NDMiLCBcCi0gICAgICAgICAgIjAuMTYxNTQsIDAuMTg5NDU3LCAwLjQ0NjIwOSwgMC44NzgzOTcsIDEuMzE1NDksIDIuMzI3NjQsIDIuOTExODkiLCBcCi0gICAgICAgICAgIjAuMTYxNTU0LCAwLjE4OTQxNSwgMC40NDYxNTQsIDAuODc5MTY2LCAxLjMxNTUxLCAyLjMyNzY0LCAyLjkwNzI2IiwgXAotICAgICAgICAgICIwLjE2MTczNCwgMC4xODk2NTEsIDAuNDQ2MjExLCAwLjg3ODU3LCAxLjMxNTQ1LCAyLjMyNzU5LCAyLjkwNjgzIiwgXAotICAgICAgICAgICIwLjE2MTk1NiwgMC4xODk3NzgsIDAuNDQ2MjY0LCAwLjg3ODUyNCwgMS4zMTUxLCAyLjMyNzY4LCAyLjkwNzQyIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE3NTA4NiwgMC4xODkzOSwgMC4zMTQ2NjMsIDAuNTIyMTQ2LCAwLjcyOTYyOCwgMS4yMTM2NSwgMS40OTAyIiwgXAotICAgICAgICAgICIwLjE4Mzc5NywgMC4xOTgwOTgsIDAuMzIzMzgsIDAuNTMwOTExLCAwLjczODM0MiwgMS4yMjIyMiwgMS40OTg3OSIsIFwKLSAgICAgICAgICAiMC4xOTM2OCwgMC4yMDc5ODEsIDAuMzMzMjYzLCAwLjU0MDc0OSwgMC43NDgyNDYsIDEuMjMyMTUsIDEuNTA4NjkiLCBcCi0gICAgICAgICAgIjAuMjAzMzg2LCAwLjIxNzcwOSwgMC4zNDMwMDQsIDAuNTUwNDk2LCAwLjc1Nzk4MiwgMS4yNDIwMSwgMS41MTg1NSIsIFwKLSAgICAgICAgICAiMC4yMTI4NzgsIDAuMjI3MTgxLCAwLjM1MjQ3MSwgMC41NTk5NjIsIDAuNzY3NTIyLCAxLjI1MTM2LCAxLjUyNzkxIiwgXAotICAgICAgICAgICIwLjIyNzI0MiwgMC4yNDE1NDUsIDAuMzY2ODUsIDAuNTc0MzUsIDAuNzgxNzksIDEuMjY1NzQsIDEuNTQyMjYiLCBcCi0gICAgICAgICAgIjAuMjM4Njc3LCAwLjI1Mjk5OCwgMC4zNzgzMzMsIDAuNTg1ODQ5LCAwLjc5MzM5LCAxLjI3NzIyLCAxLjU1Mzc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE1Nzc4OSwgMC4xODQzMzQsIDAuNDI4MjI2LCAwLjg0MzEyMywgMS4yNTk2OSwgMi4yMzI3OSwgMi43ODg5NiIsIFwKLSAgICAgICAgICAiMC4xNTc4MjksIDAuMTg0MzIyLCAwLjQyODQ2MywgMC44NDM0MTgsIDEuMjU5NjcsIDIuMjI5MTYsIDIuNzgxMDkiLCBcCi0gICAgICAgICAgIjAuMTU3Nzc5LCAwLjE4NDMzMSwgMC40Mjc5NTcsIDAuODQxNzIxLCAxLjI1NzI5LCAyLjIyOTM3LCAyLjc4MTU4IiwgXAotICAgICAgICAgICIwLjE1NzgwOCwgMC4xODQzNSwgMC40MjgwMjcsIDAuODQzMTA4LCAxLjI1OTY4LCAyLjIzMjg4LCAyLjc4OTEiLCBcCi0gICAgICAgICAgIjAuMTU3Nzg2LCAwLjE4NDMzMSwgMC40Mjc5MTUsIDAuODQxNzEyLCAxLjI1NjksIDIuMjI5MTgsIDIuNzgxNTMiLCBcCi0gICAgICAgICAgIjAuMTU4MDUyLCAwLjE4NDU1MSwgMC40MjgzODYsIDAuODQxNzMsIDEuMjU4MjIsIDIuMjI4OTYsIDIuNzg0NjciLCBcCi0gICAgICAgICAgIjAuMTU4NDE0LCAwLjE4NDgyMSwgMC40Mjg1MDIsIDAuODQxNjc5LCAxLjI1ODgzLCAyLjIyODA3LCAyLjc4NzkxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkQiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE2OTY0OSwgMC4xODQwMjIsIDAuMzExNTQsIDAuNTIzNDQ5LCAwLjczNTMwNiwgMS4yMjk2MSwgMS41MTIwOCIsIFwKLSAgICAgICAgICAiMC4xNzg1MDksIDAuMTkyOTA3LCAwLjMyMDQwOCwgMC41MzIzMjksIDAuNzQ0MTkxLCAxLjIzODQ0LCAxLjUyMTA0IiwgXAotICAgICAgICAgICIwLjE4OTMyOSwgMC4yMDM3MjYsIDAuMzMxMjYzLCAwLjU0MzE3NSwgMC43NTUwNSwgMS4yNDkyNCwgMS41MzE3NyIsIFwKLSAgICAgICAgICAiMC4yMDAwNDcsIDAuMjE0NDM0LCAwLjM0MTk1OSwgMC41NTM5MDYsIDAuNzY1ODQyLCAxLjI2MDIsIDEuNTQyNSIsIFwKLSAgICAgICAgICAiMC4yMTA1NTksIDAuMjI0OTYsIDAuMzUyNDc5LCAwLjU2NDQyNCwgMC43NzYzMDEsIDEuMjcwNTgsIDEuNTUyOSIsIFwKLSAgICAgICAgICAiMC4yMjY2MDEsIDAuMjQxMDA5LCAwLjM2ODUzOCwgMC41ODA2MDgsIDAuNzkyMzQ0LCAxLjI4NjYyLCAxLjU2OSIsIFwKLSAgICAgICAgICAiMC4yMzk5MjksIDAuMjU0Mjg4LCAwLjM4MTg3MywgMC41OTM4NzQsIDAuODA1NjY2LCAxLjI5OTk4LCAxLjU4MjM3Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE2MTQyOSwgMC4xODkzNDUsIDAuNDQ1NzU0LCAwLjg4MDAxOSwgMS4zMTUzMiwgMi4zMzE0OCwgMi45MTIzOCIsIFwKLSAgICAgICAgICAiMC4xNjE0NDYsIDAuMTg5Mzk4LCAwLjQ0NjA2NywgMC44ODAwODgsIDEuMzE1MjgsIDIuMzMxMjYsIDIuOTEyNDIiLCBcCi0gICAgICAgICAgIjAuMTYxNDI5LCAwLjE4OTMxLCAwLjQ0NjA2NCwgMC44Nzk5ODgsIDEuMzE1MjYsIDIuMzMxMjQsIDIuOTEyIiwgXAotICAgICAgICAgICIwLjE2MTQ1NiwgMC4xODkzMDYsIDAuNDQ2MDgyLCAwLjg3OTEwMywgMS4zMTU0LCAyLjMyNzAxLCAyLjkwNzM3IiwgXAotICAgICAgICAgICIwLjE2MTQ1NiwgMC4xODk0MDcsIDAuNDQ2MDcsIDAuODc5MDU2LCAxLjMxMzU0LCAyLjMyNzU1LCAyLjkwODQ4IiwgXAotICAgICAgICAgICIwLjE2MTY1NCwgMC4xODk1NzIsIDAuNDQ2MDg4LCAwLjg3ODYyOCwgMS4zMTQ0NywgMi4zMjc1NCwgMi45MTE2IiwgXAotICAgICAgICAgICIwLjE2MTkyLCAwLjE4OTk0NywgMC40NDYyLCAwLjg3ODUzMSwgMS4zMTUwMywgMi4zMjc0MSwgMi45MDczOCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNzUxMDQsIDAuMTg5NDEyLCAwLjMxNDY5NywgMC41MjIxODYsIDAuNzI5NjcxLCAxLjIxMzU1LCAxLjQ5MDE0IiwgXAotICAgICAgICAgICIwLjE4MzU1MiwgMC4xOTc4NTcsIDAuMzIzMTQzLCAwLjUzMDYzMywgMC43MzgxMTcsIDEuMjIyLCAxLjQ5ODU5IiwgXAotICAgICAgICAgICIwLjE5MzMyOCwgMC4yMDc2MzYsIDAuMzMyOTI2LCAwLjU0MDQxNiwgMC43NDc5MDEsIDEuMjMxNzksIDEuNTA4MzgiLCBcCi0gICAgICAgICAgIjAuMjAyOTY2LCAwLjIxNzI3NywgMC4zNDI1NzMsIDAuNTUwMDY4LCAwLjc1NzU1MSwgMS4yNDE0NCwgMS41MTgwNCIsIFwKLSAgICAgICAgICAiMC4yMTIzMzEsIDAuMjI2NjM1LCAwLjM1MTkyOSwgMC41NTk0MzIsIDAuNzY2ODg1LCAxLjI1MDgzLCAxLjUyNzM2IiwgXAotICAgICAgICAgICIwLjIyNjQ1MiwgMC4yNDA3NjEsIDAuMzY2MDc2LCAwLjU3MzU4MSwgMC43ODEwNjYsIDEuMjY0OTYsIDEuNTQxNTEiLCBcCi0gICAgICAgICAgIjAuMjM3OTc3LCAwLjI1MjI4NiwgMC4zNzc2MTQsIDAuNTg1MTI1LCAwLjc5MjY3MywgMS4yNzY1LCAxLjU1MzAyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE1Nzc5MSwgMC4xODQzMjYsIDAuNDI4Mzc2LCAwLjg0MTU2NywgMS4yNTk2NywgMi4yMjgyLCAyLjc4MTgyIiwgXAotICAgICAgICAgICIwLjE1Nzc5MywgMC4xODQzMjYsIDAuNDI4Mzk1LCAwLjg0MTU2LCAxLjI1OTY2LCAyLjIyODE3LCAyLjc4MTYzIiwgXAotICAgICAgICAgICIwLjE1Nzc5NywgMC4xODQzMywgMC40MjgzNTEsIDAuODQxNjI3LCAxLjI1OTY1LCAyLjIyODMzLCAyLjc4MTg4IiwgXAotICAgICAgICAgICIwLjE1NzgwNiwgMC4xODQzMzQsIDAuNDI4MjMxLCAwLjg0MTYwNSwgMS4yNTk2NSwgMi4yMjgyNiwgMi43ODIxNyIsIFwKLSAgICAgICAgICAiMC4xNTc4MDcsIDAuMTg0MzMxLCAwLjQyODM4NSwgMC44NDE3MzYsIDEuMjU3MzksIDIuMjI5MSwgMi43ODQyOSIsIFwKLSAgICAgICAgICAiMC4xNTgwNTQsIDAuMTg0NTQyLCAwLjQyODM5NSwgMC44NDE2NzksIDEuMjU5NjQsIDIuMjI4MDMsIDIuNzg0NzIiLCBcCi0gICAgICAgICAgIjAuMTU4NDEsIDAuMTg0ODY0LCAwLjQyODQ4OSwgMC44NDE2NzMsIDEuMjU2MDUsIDIuMjI3OTYsIDIuNzgzMDgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUzAiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE2NzY3NiwgMC4xODIxMDUsIDAuMzA5Njg0LCAwLjUyMTcyNywgMC43MzM0OTgsIDEuMjI3ODYsIDEuNTEwMzYiLCBcCi0gICAgICAgICAgIjAuMTc2ODQ4LCAwLjE5MTI2MywgMC4zMTg4NDEsIDAuNTMwNzk3LCAwLjc0MjY0NiwgMS4yMzY4NywgMS41MTk0OCIsIFwKLSAgICAgICAgICAiMC4xODg0NzgsIDAuMjAyOTA2LCAwLjMzMDQ4MiwgMC41NDI1NTUsIDAuNzU0MzIxLCAxLjI0ODU5LCAxLjUzMTE5IiwgXAotICAgICAgICAgICIwLjIwMDE2MiwgMC4yMTQ1ODUsIDAuMzQyMTc0LCAwLjU1NDE5OSwgMC43NjYwMDUsIDEuMjYwNDIsIDEuNTQyOTIiLCBcCi0gICAgICAgICAgIjAuMjExOTAxLCAwLjIyNjM0LCAwLjM1MzkzMiwgMC41NjYwMTgsIDAuNzc3Nzg2LCAxLjI3MjA0LCAxLjU1NDQ2IiwgXAotICAgICAgICAgICIwLjIyOTkyNCwgMC4yNDQzOCwgMC4zNzE5NjYsIDAuNTgzOTk0LCAwLjc5NTkwNCwgMS4yOTAyNSwgMS41NzI1MiIsIFwKLSAgICAgICAgICAiMC4yNDQ2MTUsIDAuMjU5MDg1LCAwLjM4NjcsIDAuNTk4NzEzLCAwLjgxMDU1NSwgMS4zMDQ5NywgMS41ODczNyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNjE5NDIsIDAuMTg5ODYxLCAwLjQ0NjQ3NiwgMC44ODA0MzgsIDEuMzE1NTIsIDIuMzMxODgsIDIuOTEyNTciLCBcCi0gICAgICAgICAgIjAuMTYxOTU0LCAwLjE4OTg4MywgMC40NDYyMzQsIDAuODgwMjkxLCAxLjMxNTQsIDIuMzMxMzEsIDIuOTEyNTEiLCBcCi0gICAgICAgICAgIjAuMTYxOTYyLCAwLjE4OTg4NywgMC40NDYzMzYsIDAuODgwMzI0LCAxLjMxNTM5LCAyLjMzMTYyLCAyLjkxMjM1IiwgXAotICAgICAgICAgICIwLjE2MTk4LCAwLjE4OTkwNSwgMC40NDYzNCwgMC44ODAzLCAxLjMxNTM1LCAyLjMzMTcsIDIuOTEyMzUiLCBcCi0gICAgICAgICAgIjAuMTYxOTk5LCAwLjE4OTkxNSwgMC40NDYzNDEsIDAuODgwMTg4LCAxLjMxNTM1LCAyLjMzMTI3LCAyLjkxMjM1IiwgXAotICAgICAgICAgICIwLjE2MjIwNiwgMC4xOTAwNywgMC40NDYzOTUsIDAuODgwMDU4LCAxLjMxNTUsIDIuMzMwOTMsIDIuOTEwMzkiLCBcCi0gICAgICAgICAgIjAuMTYyOTAyLCAwLjE5MDQ1LCAwLjQ0NjQ2OCwgMC44ODAwNjYsIDEuMzE1MTgsIDIuMzI4MzUsIDIuOTExOTQiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTcxMzM4LCAwLjE4NTY5MiwgMC4zMTEwNTksIDAuNTE4NTMyLCAwLjcyNjAzMywgMS4yMDk5LCAxLjQ4NjQ4IiwgXAotICAgICAgICAgICIwLjE4MDIwNiwgMC4xOTQ1NTEsIDAuMzE5OTA2LCAwLjUyNzQ1NywgMC43MzQ4ODEsIDEuMjE4ODUsIDEuNDk1MzEiLCBcCi0gICAgICAgICAgIjAuMTkxNTIsIDAuMjA1ODc0LCAwLjMzMTIyMiwgMC41Mzg3MTYsIDAuNzQ2MTUsIDEuMjMwMDksIDEuNTA2NjIiLCBcCi0gICAgICAgICAgIjAuMjAyODYzLCAwLjIxNzE5OSwgMC4zNDI1OTIsIDAuNTUwMTEzLCAwLjc1NzU4LCAxLjI0MTQ1LCAxLjUxODAzIiwgXAotICAgICAgICAgICIwLjIxNDEzOSwgMC4yMjg0ODgsIDAuMzUzODk2LCAwLjU2MTM4MywgMC43Njg4OTEsIDEuMjUyNzYsIDEuNTI5MzQiLCBcCi0gICAgICAgICAgIjAuMjMxMTEzLCAwLjI0NTQ3MSwgMC4zNzA4ODIsIDAuNTc4MzUzLCAwLjc4NTg4MywgMS4yNjk3NywgMS41NDYzNiIsIFwKLSAgICAgICAgICAiMC4yNDQ4MDUsIDAuMjU5MTUsIDAuMzg0NTUyLCAwLjU5MjA0NiwgMC43OTk1NjUsIDEuMjgzNDEsIDEuNTYwMDEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTU4MzUxLCAwLjE4NDgyMywgMC40Mjg3NjMsIDAuODQzMzM3LCAxLjI1OTczLCAyLjIzMTg2LCAyLjc4ODY3IiwgXAotICAgICAgICAgICIwLjE1ODM1NywgMC4xODQ4MzEsIDAuNDI4NDU2LCAwLjg0MzQ0MywgMS4yNTk3NiwgMi4yMzI3NSwgMi43ODQ3MSIsIFwKLSAgICAgICAgICAiMC4xNTgzNTIsIDAuMTg0ODM4LCAwLjQyODQ3LCAwLjg0MzU3NSwgMS4yNTk3NywgMi4yMzE4NSwgMi43ODc4MyIsIFwKLSAgICAgICAgICAiMC4xNTgzODcsIDAuMTg0ODYyLCAwLjQyODQ4LCAwLjg0MzUyNCwgMS4yNTk4MywgMi4yMzE3OSwgMi43ODc3NSIsIFwKLSAgICAgICAgICAiMC4xNTg0MDcsIDAuMTg0ODc2LCAwLjQyODQ4MywgMC44NDM0MzcsIDEuMjU5NzMsIDIuMjMxOTYsIDIuNzg0NCIsIFwKLSAgICAgICAgICAiMC4xNTg2NzgsIDAuMTg1MDc2LCAwLjQyOTAyMywgMC44NDM0NzcsIDEuMjU5ODMsIDIuMjMxOTIsIDIuNzg5MDUiLCBcCi0gICAgICAgICAgIjAuMTU5MTU2LCAwLjE4NTUxMSwgMC40Mjg5NDIsIDAuODQzNTI4LCAxLjI1OTgxLCAyLjIzMjMxLCAyLjc4ODQ1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlMwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xOTU4ODksIDAuMjEwMzE4LCAwLjMzNzg4MywgMC41NDk4NTIsIDAuNzYxNywgMS4yNTYwNSwgMS41Mzg1OCIsIFwKLSAgICAgICAgICAiMC4yMDU4MDcsIDAuMjIwMjM1LCAwLjM0NzgwMSwgMC41NTk3NTMsIDAuNzcxNjIxLCAxLjI2NTg5LCAxLjU0ODUxIiwgXAotICAgICAgICAgICIwLjIxNzg4MiwgMC4yMzIyODcsIDAuMzU5ODczLCAwLjU3MTg3OCwgMC43ODM2NzMsIDEuMjc4LCAxLjU2MDU0IiwgXAotICAgICAgICAgICIwLjIyODI3MSwgMC4yNDI2NzYsIDAuMzcwMjYyLCAwLjU4MjI2NiwgMC43OTQwNjMsIDEuMjg4MzksIDEuNTcwOTUiLCBcCi0gICAgICAgICAgIjAuMjM3MjcxLCAwLjI1MTcwMywgMC4zNzkyNzYsIDAuNTkxMjE4LCAwLjgwMzA5NiwgMS4yOTczMywgMS41Nzk5NCIsIFwKLSAgICAgICAgICAiMC4yNTAwMjMsIDAuMjY0NDU5LCAwLjM5MjA1MywgMC42MDQwMjcsIDAuODE1ODc0LCAxLjMxMDE5LCAxLjU5Mjc5IiwgXAotICAgICAgICAgICIwLjI1OTIyLCAwLjI3MzYzMiwgMC40MDEyNDQsIDAuNjEzMjM3LCAwLjgyNTA1NCwgMS4zMTkzMSwgMS42MDE2OCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNjE5MzMsIDAuMTg5ODU2LCAwLjQ0NjMyMSwgMC44ODAzMjUsIDEuMzE1MzYsIDIuMzMxNTEsIDIuOTEyNDUiLCBcCi0gICAgICAgICAgIjAuMTYxOTMxLCAwLjE4OTg1NywgMC40NDYzMjEsIDAuODgwMzY2LCAxLjMxNTM1LCAyLjMzMTQ1LCAyLjkxMjUiLCBcCi0gICAgICAgICAgIjAuMTYxOTIyLCAwLjE4OTg0NiwgMC40NDYzMDQsIDAuODgwMywgMS4zMTUzNCwgMi4zMzE2NywgMi45MTIzOSIsIFwKLSAgICAgICAgICAiMC4xNjE5MjQsIDAuMTg5ODQ2LCAwLjQ0NjMwNCwgMC44ODAyMjMsIDEuMzE1MzQsIDIuMzMxMjYsIDIuOTEyNDEiLCBcCi0gICAgICAgICAgIjAuMTYxOTI1LCAwLjE4OTg1MywgMC40NDY0MzMsIDAuODgwMjUsIDEuMzE1MzMsIDIuMzMxNjksIDIuOTEyNDUiLCBcCi0gICAgICAgICAgIjAuMTYxOTc3LCAwLjE4OTg5OCwgMC40NDY0MzYsIDAuODgwMywgMS4zMTUzNCwgMi4zMzE1LCAyLjkwODEiLCBcCi0gICAgICAgICAgIjAuMTYyMTYzLCAwLjE5MDA0OSwgMC40NDYzODMsIDAuODgwMDcxLCAxLjMxNTE5LCAyLjMzMDkyLCAyLjkxMTc2Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE5ODAwMiwgMC4yMTIzNDIsIDAuMzM3NzUzLCAwLjU0NTI1NCwgMC43NTI3NTIsIDEuMjM2NjUsIDEuNTEzMjQiLCBcCi0gICAgICAgICAgIjAuMjA4MjI4LCAwLjIyMjU2OSwgMC4zNDc5NzcsIDAuNTU1NDgxLCAwLjc2Mjk4LCAxLjI0Njg3LCAxLjUyMzQ1IiwgXAotICAgICAgICAgICIwLjIyMDYzMiwgMC4yMzQ5NTcsIDAuMzYwMzkzLCAwLjU2NzkxNCwgMC43NzUzOTksIDEuMjU5MjgsIDEuNTM1ODUiLCBcCi0gICAgICAgICAgIjAuMjMxODc0LCAwLjI0NjIyMywgMC4zNzE2MzcsIDAuNTc5MTI2LCAwLjc4NjY0MSwgMS4yNzA1MywgMS41NDcxMSIsIFwKLSAgICAgICAgICAiMC4yNDE5NjQsIDAuMjU2MzA1LCAwLjM4MTY5OCwgMC41ODg5NDcsIDAuNzk2NDc1LCAxLjI4MDM1LCAxLjU1NzE0IiwgXAotICAgICAgICAgICIwLjI1NTEwOCwgMC4yNjk4OTksIDAuMzk1MzAyLCAwLjYwMjgwOSwgMC44MTAyNjIsIDEuMjk0MjEsIDEuNTcwMzMiLCBcCi0gICAgICAgICAgIjAuMjY1NzQ5LCAwLjI3OTk0MSwgMC40MDU1MTEsIDAuNjEyODcyLCAwLjgyMDU0NSwgMS4zMDQ1MiwgMS41ODA3NyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNTg0NDgsIDAuMTg0OTExLCAwLjQyODgyMSwgMC44NDM1NzIsIDEuMjU5OTYsIDIuMjMyNjUsIDIuNzg2ODciLCBcCi0gICAgICAgICAgIjAuMTU4NDQ1LCAwLjE4NDkwNiwgMC40Mjg0NDIsIDAuODQzNDQ5LCAxLjI1OTgyLCAyLjIzMjI5LCAyLjc4Mjc5IiwgXAotICAgICAgICAgICIwLjE1ODQ0MiwgMC4xODQ4OTQsIDAuNDI4NTYzLCAwLjg0MzUxMiwgMS4yNTk4NSwgMi4yMzI0NywgMi43ODc3MSIsIFwKLSAgICAgICAgICAiMC4xNTg0NDMsIDAuMTg0OTEsIDAuNDI4NDQxLCAwLjg0MzE4NiwgMS4yNTk3OSwgMi4yMjk1LCAyLjc4Mjc2IiwgXAotICAgICAgICAgICIwLjE1ODQzMiwgMC4xODQ4ODgsIDAuNDI4Nzg3LCAwLjg0MzQyNSwgMS4yNTk4MywgMi4yMzIxNCwgMi43ODgzNSIsIFwKLSAgICAgICAgICAiMC4xNTg0MzYsIDAuMTg0OSwgMC40Mjg3OCwgMC44NDM1NTYsIDEuMjU5NzMsIDIuMjMyMzYsIDIuNzg4MDciLCBcCi0gICAgICAgICAgIjAuMTU4NjMzLCAwLjE4NTA5LCAwLjQyODczMSwgMC44NDM0MTgsIDEuMjU5NTUsIDIuMjMyNTQsIDIuNzg4MjMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUzEiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEyNzQ5LCAwLjE0MTgyLCAwLjI2OTE1MywgMC40ODEwOTYsIDAuNjkzMjA2LCAxLjE4NzYsIDEuNDcwMSIsIFwKLSAgICAgICAgICAiMC4xMzY2MzQsIDAuMTUwOTkxLCAwLjI3ODI5OCwgMC40OTAyMjYsIDAuNzAyMDA2LCAxLjE5Njg0LCAxLjQ3ODkzIiwgXAotICAgICAgICAgICIwLjE0ODA3LCAwLjE2MjQsIDAuMjg5NzM2LCAwLjUwMTY5OCwgMC43MTM2MTcsIDEuMjA4MzQsIDEuNDkwNDciLCBcCi0gICAgICAgICAgIjAuMTU5MzcyLCAwLjE3MzY5MSwgMC4zMDEwMywgMC41MTI4NzIsIDAuNzI0ODY2LCAxLjIxOTIsIDEuNTAyMDIiLCBcCi0gICAgICAgICAgIjAuMTY5NTY1LCAwLjE4MzkwNSwgMC4zMTEyMzcsIDAuNTIzMjA0LCAwLjczNTExNywgMS4yMjk4NSwgMS41MTE5OSIsIFwKLSAgICAgICAgICAiMC4xODQxNDYsIDAuMTk4NTM1LCAwLjMyNTkxNiwgMC41Mzc4MzQsIDAuNzQ5ODgzLCAxLjI0NDUsIDEuNTI2NTMiLCBcCi0gICAgICAgICAgIjAuMTk1MzYyLCAwLjIwOTc2OCwgMC4zMzcxNzYsIDAuNTQ5MDUzLCAwLjc2MDg2OCwgMS4yNTU5NCwgMS41Mzc4NyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNjA5MjUsIDAuMTg4OTA2LCAwLjQ0NTQ1MywgMC44NzgxMzEsIDEuMzEzMTUsIDIuMzI3MjksIDIuOTA3MTMiLCBcCi0gICAgICAgICAgIjAuMTYwODg4LCAwLjE4ODg4OSwgMC40NDU0MDksIDAuODc4MTM3LCAxLjMxNTE1LCAyLjMyNzMxLCAyLjkwNjIzIiwgXAotICAgICAgICAgICIwLjE2MDc2OCwgMC4xODg2NzUsIDAuNDQ1NDAxLCAwLjg3ODA1OSwgMS4zMTMxNiwgMi4zMjczNCwgMi45MDU5MyIsIFwKLSAgICAgICAgICAiMC4xNjA2ODQsIDAuMTg4NTc1LCAwLjQ0NTMxNCwgMC44Nzg2NjksIDEuMzEzMzcsIDIuMzI2NjYsIDIuOTA4NyIsIFwKLSAgICAgICAgICAiMC4xNjA3OCwgMC4xODg3NjIsIDAuNDQ1MzgsIDAuODc4MDU0LCAxLjMxMzExLCAyLjMyNzMzLCAyLjkwNTkxIiwgXAotICAgICAgICAgICIwLjE2MTI0OSwgMC4xODkyMSwgMC40NDU5NjMsIDAuODc4MTUyLCAxLjMxMjgyLCAyLjMyNzM0LCAyLjkwNjIiLCBcCi0gICAgICAgICAgIjAuMTYxODM1LCAwLjE4OTcxOSwgMC40NDYxNDgsIDAuODc4NDM0LCAxLjMxMzI4LCAyLjMyNzQ2LCAyLjkwNTk2Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEzMTc3NywgMC4xNDYwMzgsIDAuMjcxMjIxLCAwLjQ3ODYwOCwgMC42ODYwNDMsIDEuMTcwMTIsIDEuNDQ3MjEiLCBcCi0gICAgICAgICAgIjAuMTQwNTgsIDAuMTU0ODc4LCAwLjI4MDA2MiwgMC40ODc0NTMsIDAuNjk0ODY4LCAxLjE3OTAzLCAxLjQ1NjE2IiwgXAotICAgICAgICAgICIwLjE1MTU5NSwgMC4xNjU4OTMsIDAuMjkxMDgzLCAwLjQ5ODQ3MSwgMC43MDU5MjksIDEuMTkwNTgsIDEuNDY2OTMiLCBcCi0gICAgICAgICAgIjAuMTYyMzk5LCAwLjE3NjY5NCwgMC4zMDE4NywgMC41MDkyODUsIDAuNzE2NzMyLCAxLjIwMDk3LCAxLjQ3NzI4IiwgXAotICAgICAgICAgICIwLjE3MjMwOSwgMC4xODY1OTYsIDAuMzExNzg3LCAwLjUxOTIxMSwgMC43MjY2NDUsIDEuMjEwODYsIDEuNDg3NzUiLCBcCi0gICAgICAgICAgIjAuMTg2MDY5LCAwLjIwMDM4LCAwLjMyNTYyLCAwLjUzMzAzOCwgMC43NDA0OCwgMS4yMjQ1MiwgMS41MDE3OSIsIFwKLSAgICAgICAgICAiMC4xOTY1NDgsIDAuMjEwOTE0LCAwLjMzNjIzNCwgMC41NDM2MzEsIDAuNzUxMDkzLCAxLjIzNTE0LCAxLjUxMjQ2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE1Nzc0MiwgMC4xODQzMDQsIDAuNDI4MDYzLCAwLjg0MTQ2MSwgMS4yNTk0MiwgMi4yMzE1MSwgMi43ODExMSIsIFwKLSAgICAgICAgICAiMC4xNTc2NTgsIDAuMTg0MjIxLCAwLjQyODEwMiwgMC44NDE1NzUsIDEuMjU2OSwgMi4yMzEsIDIuNzgwOSIsIFwKLSAgICAgICAgICAiMC4xNTc0ODksIDAuMTg0MDg3LCAwLjQyODYwMSwgMC44NDI4NjgsIDEuMjU5NDgsIDIuMjI2MTMsIDIuNzgxNzQiLCBcCi0gICAgICAgICAgIjAuMTU3MzM1LCAwLjE4MzkzMSwgMC40Mjg1NDEsIDAuODQxNzI0LCAxLjI1OTQ4LCAyLjIyNjgsIDIuNzg4NjciLCBcCi0gICAgICAgICAgIjAuMTU3MzU5LCAwLjE4Mzk4OSwgMC40Mjg1NCwgMC44NDMwMDMsIDEuMjU5NDMsIDIuMjMwODUsIDIuNzgzMzEiLCBcCi0gICAgICAgICAgIjAuMTU3NzUxLCAwLjE4NDM2NywgMC40Mjg2ODgsIDAuODQxOTY3LCAxLjI1OTUsIDIuMjMyNSwgMi43ODA3NCIsIFwKLSAgICAgICAgICAiMC4xNTgyMTEsIDAuMTg0ODEzLCAwLjQyODg4OSwgMC44NDMwNzMsIDEuMjU5NTksIDIuMjI2LCAyLjc4MDU1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlMxIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMzY1MTgsIDAuMTUwOTA0LCAwLjI3ODMxNCwgMC40OTAyNywgMC43MDIxNTcsIDEuMTk3MDMsIDEuNDc5NzgiLCBcCi0gICAgICAgICAgIjAuMTQ2NTg4LCAwLjE2MDk3MywgMC4yODgzOSwgMC41MDAyNCwgMC43MTIxNzksIDEuMjA2MzcsIDEuNDg5MTIiLCBcCi0gICAgICAgICAgIjAuMTU4NjM3LCAwLjE3MzAxNSwgMC4zMDA0MzIsIDAuNTEyNDA0LCAwLjcyNDMzMiwgMS4yMTkxNiwgMS41MDEyMyIsIFwKLSAgICAgICAgICAiMC4xNjg4ODIsIDAuMTgzMjQ3LCAwLjMxMDY2OCwgMC41MjI1MjQsIDAuNzM0NDc1LCAxLjIyOTM5LCAxLjUxMTQyIiwgXAotICAgICAgICAgICIwLjE3NzA3NSwgMC4xOTE0NjQsIDAuMzE4ODc3LCAwLjUzMDczLCAwLjc0MjY5LCAxLjIzNzA2LCAxLjUxOTc1IiwgXAotICAgICAgICAgICIwLjE4Nzk3LCAwLjIwMjM0NSwgMC4zMjk3NzYsIDAuNTQxNjc4LCAwLjc1MzYxMywgMS4yNDg1MywgMS41MzA5OCIsIFwKLSAgICAgICAgICAiMC4xOTU5ODYsIDAuMjEwMzM0LCAwLjMzNzc5MSwgMC41NDk3MTQsIDAuNzYxNTQ5LCAxLjI1NjUxLCAxLjUzOTAxIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE2MTIzNCwgMC4xODkxMjYsIDAuNDQ1OTc1LCAwLjg3ODIwMSwgMS4zMTQ1MSwgMi4zMjc0MywgMi45MDcxNCIsIFwKLSAgICAgICAgICAiMC4xNjEyMDksIDAuMTg5MTI3LCAwLjQ0NTU5MiwgMC44Nzk5OTIsIDEuMzEzNywgMi4zMzE4MSwgMi45MDYwOCIsIFwKLSAgICAgICAgICAiMC4xNjExODQsIDAuMTg5MTQ2LCAwLjQ0NTYwOCwgMC44NzgyMywgMS4zMTM0MywgMi4zMjg1LCAyLjkxMjc3IiwgXAotICAgICAgICAgICIwLjE2MTEzNiwgMC4xODkwOTEsIDAuNDQ1NTcsIDAuODc5OTgsIDEuMzEzNzEsIDIuMzMwMzMsIDIuOTA2MTUiLCBcCi0gICAgICAgICAgIjAuMTYwOTUzLCAwLjE4OTA3OCwgMC40NDU1MTMsIDAuODc4NzkzLCAxLjMxMzY1LCAyLjMyNjgxLCAyLjkwNzA5IiwgXAotICAgICAgICAgICIwLjE2MDg0LCAwLjE4ODg3LCAwLjQ0NTg1NiwgMC44Nzk4NjEsIDEuMzE1MzYsIDIuMzI3NDUsIDIuOTA4OSIsIFwKLSAgICAgICAgICAiMC4xNjA4MDQsIDAuMTg4NzU5LCAwLjQ0NTc1MiwgMC44NzgxNjUsIDEuMzE1MTksIDIuMzI3NDEsIDIuOTE4MjciKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTQwNDc1LCAwLjE1NDc1OCwgMC4yNzk5LCAwLjQ4NzMyNSwgMC42OTQ4MzgsIDEuMTc4OTcsIDEuNDU1ODQiLCBcCi0gICAgICAgICAgIjAuMTUxMDE4LCAwLjE2NTI5NSwgMC4yOTA0NDksIDAuNDk3ODY2LCAwLjcwNTM2NCwgMS4xODk1MywgMS40NjY0MSIsIFwKLSAgICAgICAgICAiMC4xNjM2MTEsIDAuMTc3ODk4LCAwLjMwMzA0NywgMC41MTA0NzQsIDAuNzE3OTM1LCAxLjIwMjE3LCAxLjQ3OTE4IiwgXAotICAgICAgICAgICIwLjE3NDU0NSwgMC4xODg4MTYsIDAuMzEzOTgxLCAwLjUyMTQxNCwgMC43Mjg4NDgsIDEuMjEyOTQsIDEuNDkwMiIsIFwKLSAgICAgICAgICAiMC4xODMzMzcsIDAuMTk3NjE1LCAwLjMyMjc3OSwgMC41MzAyMDMsIDAuNzM3NjUyLCAxLjIyMTkyLCAxLjQ5OTAyIiwgXAotICAgICAgICAgICIwLjE5NTM0MiwgMC4yMDk2MjksIDAuMzM0Nzg0LCAwLjU0MjIxNCwgMC43NDk2NDUsIDEuMjMzNzksIDEuNTEwNzMiLCBcCi0gICAgICAgICAgIjAuMjA0MzYzLCAwLjIxODYwNywgMC4zNDM3OCwgMC41NTEyNzUsIDAuNzU4NjQ4LCAxLjI0Mjk0LCAxLjUxOTcyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE1NzI2MywgMC4xODM4NDQsIDAuNDI3NzE4LCAwLjg0MTgzNywgMS4yNTk4LCAyLjIyODE5LCAyLjc4MTc3IiwgXAotICAgICAgICAgICIwLjE1NzI1OSwgMC4xODM4NTcsIDAuNDI3ODQ2LCAwLjg0MTU3MywgMS4yNTU5OCwgMi4yMjgyMSwgMi43ODE0OSIsIFwKLSAgICAgICAgICAiMC4xNTcyMjksIDAuMTgzNzUsIDAuNDI4MzUxLCAwLjg0Mjg4MywgMS4yNTk1NSwgMi4yMzExOSwgMi43ODA4MyIsIFwKLSAgICAgICAgICAiMC4xNTcxOTYsIDAuMTgzNzU2LCAwLjQyNzg2LCAwLjg0Mjk0LCAxLjI1OTQxLCAyLjIzMTUsIDIuNzkxMDkiLCBcCi0gICAgICAgICAgIjAuMTU3MTM0LCAwLjE4MzcwNiwgMC40MjgzMiwgMC44NDI4NDQsIDEuMjU5NCwgMi4yMjgzMywgMi43OTA1NCIsIFwKLSAgICAgICAgICAiMC4xNTY5MDcsIDAuMTgzNTcyLCAwLjQyNzY0LCAwLjg0MTM5NCwgMS4yNTkzNiwgMi4yMzA4OSwgMi43ODE3OCIsIFwKLSAgICAgICAgICAiMC4xNTY4OTYsIDAuMTgzMzgzLCAwLjQyODE2OSwgMC44NDMwMTgsIDEuMjU5MzUsIDIuMjI4NjMsIDIuNzgxODMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDIwNCwgMC4wMDIwNDIsIDAuMDAyMDUsIDAuMDAyMDU0LCAwLjAwMjA1NiwgMC4wMDIwNTcsIDAuMDAyMDU3IiwgXAotICAgICAgICAgICIwLjAwMjAyMywgMC4wMDIwMjYsIDAuMDAyMDM0LCAwLjAwMjAzOCwgMC4wMDIwMzksIDAuMDAyMDQxLCAwLjAwMjA0MSIsIFwKLSAgICAgICAgICAiMC4wMDIwMTQsIDAuMDAyMDE3LCAwLjAwMjAyNiwgMC4wMDIwMywgMC4wMDIwMzEsIDAuMDAyMDMzLCAwLjAwMjAzMyIsIFwKLSAgICAgICAgICAiMC4wMDIwMDksIDAuMDAyMDEyLCAwLjAwMjAyMSwgMC4wMDIwMjUsIDAuMDAyMDI3LCAwLjAwMjAyOCwgMC4wMDIwMjkiLCBcCi0gICAgICAgICAgIjAuMDAyMDA2LCAwLjAwMjAwOSwgMC4wMDIwMTgsIDAuMDAyMDIzLCAwLjAwMjAyNSwgMC4wMDIwMjYsIDAuMDAyMDI3IiwgXAotICAgICAgICAgICIwLjAwMjAwNiwgMC4wMDIwMDgsIDAuMDAyMDE5LCAwLjAwMjAyNCwgMC4wMDIwMjYsIDAuMDAyMDI4LCAwLjAwMjAyOCIsIFwKLSAgICAgICAgICAiMC4wMDIwMDksIDAuMDAyMDExLCAwLjAwMjAyMiwgMC4wMDIwMjcsIDAuMDAyMDI5LCAwLjAwMjAzMSwgMC4wMDIwMzEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQ0NTcsIDAuMDA0NDYsIDAuMDA0NDcxLCAwLjAwNDQ3NiwgMC4wMDQ0NzgsIDAuMDA0NDc5LCAwLjAwNDQ4IiwgXAotICAgICAgICAgICIwLjAwNDQ0OCwgMC4wMDQ0NTEsIDAuMDA0NDYzLCAwLjAwNDQ2NywgMC4wMDQ0NjksIDAuMDA0NDcxLCAwLjAwNDQ3MSIsIFwKLSAgICAgICAgICAiMC4wMDQ0NDIsIDAuMDA0NDQ1LCAwLjAwNDQ1NywgMC4wMDQ0NjIsIDAuMDA0NDY0LCAwLjAwNDQ2NSwgMC4wMDQ0NjYiLCBcCi0gICAgICAgICAgIjAuMDA0NDM5LCAwLjAwNDQ0MiwgMC4wMDQ0NTQsIDAuMDA0NDU5LCAwLjAwNDQ2MSwgMC4wMDQ0NjMsIDAuMDA0NDYzIiwgXAotICAgICAgICAgICIwLjAwNDQzNywgMC4wMDQ0NCwgMC4wMDQ0NTIsIDAuMDA0NDU4LCAwLjAwNDQ2LCAwLjAwNDQ2MiwgMC4wMDQ0NjMiLCBcCi0gICAgICAgICAgIjAuMDA0NDM0LCAwLjAwNDQzNywgMC4wMDQ0NTEsIDAuMDA0NDU3LCAwLjAwNDQ1OSwgMC4wMDQ0NjEsIDAuMDA0NDYyIiwgXAotICAgICAgICAgICIwLjAwNDQzOCwgMC4wMDQ0MzksIDAuMDA0NDU0LCAwLjAwNDQ2MSwgMC4wMDQ0NjMsIDAuMDA0NDY2LCAwLjAwNDQ2NiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTg4OSwgMC4wMDE4OTEsIDAuMDAxOSwgMC4wMDE5MDMsIDAuMDAxOTA1LCAwLjAwMTkwNiwgMC4wMDE5MDciLCBcCi0gICAgICAgICAgIjAuMDAxODczLCAwLjAwMTg3NSwgMC4wMDE4ODMsIDAuMDAxODg3LCAwLjAwMTg4OSwgMC4wMDE4OSwgMC4wMDE4OSIsIFwKLSAgICAgICAgICAiMC4wMDE4NjMsIDAuMDAxODY2LCAwLjAwMTg3NSwgMC4wMDE4NzksIDAuMDAxODgsIDAuMDAxODgxLCAwLjAwMTg4MiIsIFwKLSAgICAgICAgICAiMC4wMDE4NTgsIDAuMDAxODYsIDAuMDAxODcsIDAuMDAxODc0LCAwLjAwMTg3NiwgMC4wMDE4NzcsIDAuMDAxODc3IiwgXAotICAgICAgICAgICIwLjAwMTg1NSwgMC4wMDE4NTcsIDAuMDAxODY3LCAwLjAwMTg3MiwgMC4wMDE4NzMsIDAuMDAxODc1LCAwLjAwMTg3NiIsIFwKLSAgICAgICAgICAiMC4wMDE4NTMsIDAuMDAxODU1LCAwLjAwMTg2NiwgMC4wMDE4NzEsIDAuMDAxODczLCAwLjAwMTg3NSwgMC4wMDE4NzYiLCBcCi0gICAgICAgICAgIjAuMDAxODU3LCAwLjAwMTg1OSwgMC4wMDE4NywgMC4wMDE4NzQsIDAuMDAxODc3LCAwLjAwMTg3OCwgMC4wMDE4NzkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQ2NTQsIDAuMDA0NjU3LCAwLjAwNDY2OCwgMC4wMDQ2NzMsIDAuMDA0Njc1LCAwLjAwNDY3NiwgMC4wMDQ2NzYiLCBcCi0gICAgICAgICAgIjAuMDA0NjQ1LCAwLjAwNDY0OCwgMC4wMDQ2NTksIDAuMDA0NjY0LCAwLjAwNDY2NSwgMC4wMDQ2NjcsIDAuMDA0NjY3IiwgXAotICAgICAgICAgICIwLjAwNDYzOSwgMC4wMDQ2NDIsIDAuMDA0NjUzLCAwLjAwNDY1OSwgMC4wMDQ2NiwgMC4wMDQ2NjIsIDAuMDA0NjYyIiwgXAotICAgICAgICAgICIwLjAwNDYzNSwgMC4wMDQ2MzgsIDAuMDA0NjUsIDAuMDA0NjU2LCAwLjAwNDY1OCwgMC4wMDQ2NiwgMC4wMDQ2NiIsIFwKLSAgICAgICAgICAiMC4wMDQ2MzMsIDAuMDA0NjM3LCAwLjAwNDY0OSwgMC4wMDQ2NTUsIDAuMDA0NjU3LCAwLjAwNDY1OSwgMC4wMDQ2NTkiLCBcCi0gICAgICAgICAgIjAuMDA0NjMyLCAwLjAwNDYzNSwgMC4wMDQ2NDgsIDAuMDA0NjU1LCAwLjAwNDY1NywgMC4wMDQ2NTksIDAuMDA0NjYiLCBcCi0gICAgICAgICAgIjAuMDA0NjQxLCAwLjAwNDYzNSwgMC4wMDQ2NSwgMC4wMDQ2NTcsIDAuMDA0NjYsIDAuMDA0NjYyLCAwLjAwNDY2MyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTgzMiwgMC4wMDE4MzQsIDAuMDAxODQzLCAwLjAwMTg0NywgMC4wMDE4NDgsIDAuMDAxODQ5LCAwLjAwMTg1IiwgXAotICAgICAgICAgICIwLjAwMTgxNSwgMC4wMDE4MTcsIDAuMDAxODI2LCAwLjAwMTgzLCAwLjAwMTgzMSwgMC4wMDE4MzIsIDAuMDAxODMyIiwgXAotICAgICAgICAgICIwLjAwMTgwNSwgMC4wMDE4MDgsIDAuMDAxODE3LCAwLjAwMTgyMSwgMC4wMDE4MjIsIDAuMDAxODI0LCAwLjAwMTgyNCIsIFwKLSAgICAgICAgICAiMC4wMDE4LCAwLjAwMTgwMiwgMC4wMDE4MTIsIDAuMDAxODE3LCAwLjAwMTgxOCwgMC4wMDE4MiwgMC4wMDE4MiIsIFwKLSAgICAgICAgICAiMC4wMDE3OTcsIDAuMDAxNzk5LCAwLjAwMTgwOSwgMC4wMDE4MTQsIDAuMDAxODE2LCAwLjAwMTgxOCwgMC4wMDE4MTgiLCBcCi0gICAgICAgICAgIjAuMDAxNzk3LCAwLjAwMTc5OSwgMC4wMDE4MSwgMC4wMDE4MTUsIDAuMDAxODE3LCAwLjAwMTgxOSwgMC4wMDE4MTkiLCBcCi0gICAgICAgICAgIjAuMDAxOCwgMC4wMDE4MDIsIDAuMDAxODEzLCAwLjAwMTgxOCwgMC4wMDE4MjEsIDAuMDAxODIzLCAwLjAwMTgyMyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDQ4MywgMC4wMDQ0ODYsIDAuMDA0NDk3LCAwLjAwNDUwMSwgMC4wMDQ1MDMsIDAuMDA0NTA0LCAwLjAwNDUwNSIsIFwKLSAgICAgICAgICAiMC4wMDQ0NzQsIDAuMDA0NDc3LCAwLjAwNDQ4OCwgMC4wMDQ0OTIsIDAuMDA0NDk0LCAwLjAwNDQ5NSwgMC4wMDQ0OTYiLCBcCi0gICAgICAgICAgIjAuMDA0NDY4LCAwLjAwNDQ3MSwgMC4wMDQ0ODIsIDAuMDA0NDg3LCAwLjAwNDQ4OSwgMC4wMDQ0OSwgMC4wMDQ0OTEiLCBcCi0gICAgICAgICAgIjAuMDA0NDY0LCAwLjAwNDQ2NywgMC4wMDQ0NzksIDAuMDA0NDg0LCAwLjAwNDQ4NiwgMC4wMDQ0ODgsIDAuMDA0NDg5IiwgXAotICAgICAgICAgICIwLjAwNDQ2MywgMC4wMDQ0NjYsIDAuMDA0NDc4LCAwLjAwNDQ4MywgMC4wMDQ0ODUsIDAuMDA0NDg3LCAwLjAwNDQ4OCIsIFwKLSAgICAgICAgICAiMC4wMDQ0NjIsIDAuMDA0NDY1LCAwLjAwNDQ3OCwgMC4wMDQ0ODQsIDAuMDA0NDg2LCAwLjAwNDQ4OCwgMC4wMDQ0ODgiLCBcCi0gICAgICAgICAgIjAuMDA0NDYzLCAwLjAwNDQ2NiwgMC4wMDQ0NzksIDAuMDA0NDg2LCAwLjAwNDQ4OCwgMC4wMDQ0OSwgMC4wMDQ0OTEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJEIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDE1OTQsIDAuMDAxNTk2LCAwLjAwMTYwNSwgMC4wMDE2MDgsIDAuMDAxNjEsIDAuMDAxNjExLCAwLjAwMTYxMiIsIFwKLSAgICAgICAgICAiMC4wMDE1NzgsIDAuMDAxNTgsIDAuMDAxNTg5LCAwLjAwMTU5MywgMC4wMDE1OTQsIDAuMDAxNTk1LCAwLjAwMTU5NiIsIFwKLSAgICAgICAgICAiMC4wMDE1NjksIDAuMDAxNTcxLCAwLjAwMTU4MSwgMC4wMDE1ODQsIDAuMDAxNTg2LCAwLjAwMTU4NywgMC4wMDE1ODgiLCBcCi0gICAgICAgICAgIjAuMDAxNTYzLCAwLjAwMTU2NSwgMC4wMDE1NzUsIDAuMDAxNTgsIDAuMDAxNTgxLCAwLjAwMTU4MywgMC4wMDE1ODMiLCBcCi0gICAgICAgICAgIjAuMDAxNTYsIDAuMDAxNTYzLCAwLjAwMTU3MywgMC4wMDE1NzcsIDAuMDAxNTc5LCAwLjAwMTU4MSwgMC4wMDE1ODEiLCBcCi0gICAgICAgICAgIjAuMDAxNTYsIDAuMDAxNTYyLCAwLjAwMTU3MywgMC4wMDE1NzgsIDAuMDAxNTgsIDAuMDAxNTgyLCAwLjAwMTU4MyIsIFwKLSAgICAgICAgICAiMC4wMDE1NjIsIDAuMDAxNTY2LCAwLjAwMTU3NiwgMC4wMDE1ODEsIDAuMDAxNTgzLCAwLjAwMTU4NSwgMC4wMDE1ODUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQ2NjMsIDAuMDA0NjY2LCAwLjAwNDY3NywgMC4wMDQ2ODEsIDAuMDA0NjgzLCAwLjAwNDY4NSwgMC4wMDQ2ODUiLCBcCi0gICAgICAgICAgIjAuMDA0NjU0LCAwLjAwNDY1NywgMC4wMDQ2NjgsIDAuMDA0NjczLCAwLjAwNDY3NCwgMC4wMDQ2NzYsIDAuMDA0Njc2IiwgXAotICAgICAgICAgICIwLjAwNDY0NywgMC4wMDQ2NSwgMC4wMDQ2NjIsIDAuMDA0NjY3LCAwLjAwNDY2OCwgMC4wMDQ2NywgMC4wMDQ2NyIsIFwKLSAgICAgICAgICAiMC4wMDQ2NDUsIDAuMDA0NjQ4LCAwLjAwNDY2LCAwLjAwNDY2NSwgMC4wMDQ2NjcsIDAuMDA0NjY5LCAwLjAwNDY2OSIsIFwKLSAgICAgICAgICAiMC4wMDQ2NDMsIDAuMDA0NjQ2LCAwLjAwNDY1OCwgMC4wMDQ2NjQsIDAuMDA0NjY2LCAwLjAwNDY2NywgMC4wMDQ2NjgiLCBcCi0gICAgICAgICAgIjAuMDA0NjQzLCAwLjAwNDY0NiwgMC4wMDQ2NTksIDAuMDA0NjY1LCAwLjAwNDY2NywgMC4wMDQ2NjksIDAuMDA0NjciLCBcCi0gICAgICAgICAgIjAuMDA0NjQ1LCAwLjAwNDY0OCwgMC4wMDQ2NjEsIDAuMDA0NjY4LCAwLjAwNDY3LCAwLjAwNDY3MiwgMC4wMDQ2NzMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTMCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2NzQ0LCAwLjAwNjc0NiwgMC4wMDY3NTUsIDAuMDA2NzU5LCAwLjAwNjc2LCAwLjAwNjc2MiwgMC4wMDY3NjIiLCBcCi0gICAgICAgICAgIjAuMDA2NzAzLCAwLjAwNjcwNiwgMC4wMDY3MTUsIDAuMDA2NzE5LCAwLjAwNjcyLCAwLjAwNjcyMiwgMC4wMDY3MjIiLCBcCi0gICAgICAgICAgIjAuMDA2NzAzLCAwLjAwNjcwNSwgMC4wMDY3MTQsIDAuMDA2NzE4LCAwLjAwNjcxOSwgMC4wMDY3MiwgMC4wMDY3MjEiLCBcCi0gICAgICAgICAgIjAuMDA2NzExLCAwLjAwNjcxMywgMC4wMDY3MjIsIDAuMDA2NzI2LCAwLjAwNjcyNywgMC4wMDY3MjksIDAuMDA2NzI5IiwgXAotICAgICAgICAgICIwLjAwNjcxNywgMC4wMDY3MTksIDAuMDA2NzI4LCAwLjAwNjczMiwgMC4wMDY3MzQsIDAuMDA2NzM1LCAwLjAwNjczNSIsIFwKLSAgICAgICAgICAiMC4wMDY3NTEsIDAuMDA2NzU0LCAwLjAwNjc1NCwgMC4wMDY3NiwgMC4wMDY3NjEsIDAuMDA2NzcsIDAuMDA2NzciLCBcCi0gICAgICAgICAgIjAuMDA2Nzg2LCAwLjAwNjc4OCwgMC4wMDY3OTcsIDAuMDA2ODAxLCAwLjAwNjgwMywgMC4wMDY4MDUsIDAuMDA2Nzk3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2NTQsIDAuMDA2NTQzLCAwLjAwNjU1NCwgMC4wMDY1NTksIDAuMDA2NTYxLCAwLjAwNjU2MiwgMC4wMDY1NjMiLCBcCi0gICAgICAgICAgIjAuMDA2NTIsIDAuMDA2NTIzLCAwLjAwNjUzNCwgMC4wMDY1MzksIDAuMDA2NTQxLCAwLjAwNjU0MiwgMC4wMDY1NDMiLCBcCi0gICAgICAgICAgIjAuMDA2NTAzLCAwLjAwNjUwNSwgMC4wMDY1MTcsIDAuMDA2NTIyLCAwLjAwNjUyNCwgMC4wMDY1MjUsIDAuMDA2NTI2IiwgXAotICAgICAgICAgICIwLjAwNjUwNSwgMC4wMDY1MDgsIDAuMDA2NTIsIDAuMDA2NTI0LCAwLjAwNjUyNywgMC4wMDY1MjgsIDAuMDA2NTI5IiwgXAotICAgICAgICAgICIwLjAwNjUwMSwgMC4wMDY1MDMsIDAuMDA2NTE0LCAwLjAwNjUyLCAwLjAwNjUyMiwgMC4wMDY1MjMsIDAuMDA2NTIzIiwgXAotICAgICAgICAgICIwLjAwNjUxMSwgMC4wMDY1MTYsIDAuMDA2NTI3LCAwLjAwNjUzLCAwLjAwNjUzMiwgMC4wMDY1MzYsIDAuMDA2NTM2IiwgXAotICAgICAgICAgICIwLjAwNjUyNCwgMC4wMDY1MzQsIDAuMDA2NTQ1LCAwLjAwNjU0NCwgMC4wMDY1NTIsIDAuMDA2NTU0LCAwLjAwNjU0OCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlMxIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDMzODIsIDAuMDAzMzg0LCAwLjAwMzM5MSwgMC4wMDMzOTQsIDAuMDAzMzk0LCAwLjAwMzM5NSwgMC4wMDMzOTYiLCBcCi0gICAgICAgICAgIjAuMDAzMzksIDAuMDAzMzkyLCAwLjAwMzQsIDAuMDAzNDAzLCAwLjAwMzQwNCwgMC4wMDM0MDUsIDAuMDAzNDA1IiwgXAotICAgICAgICAgICIwLjAwMzQ0LCAwLjAwMzQ0MiwgMC4wMDM0NSwgMC4wMDM0NTMsIDAuMDAzNDU0LCAwLjAwMzQ1NiwgMC4wMDM0NTYiLCBcCi0gICAgICAgICAgIjAuMDAzNDcxLCAwLjAwMzQ3MywgMC4wMDM0ODEsIDAuMDAzNDg1LCAwLjAwMzQ4NywgMC4wMDM0ODksIDAuMDAzNDg4IiwgXAotICAgICAgICAgICIwLjAwMzUwMywgMC4wMDM1MDUsIDAuMDAzNTEzLCAwLjAwMzUxNywgMC4wMDM1MTksIDAuMDAzNTIsIDAuMDAzNTIxIiwgXAotICAgICAgICAgICIwLjAwMzU2LCAwLjAwMzU2MywgMC4wMDM1NjksIDAuMDAzNTczLCAwLjAwMzU3NSwgMC4wMDM1NzYsIDAuMDAzNTc3IiwgXAotICAgICAgICAgICIwLjAwMzYxNywgMC4wMDM2MiwgMC4wMDM2MjgsIDAuMDAzNjMxLCAwLjAwMzYzMywgMC4wMDM2MzUsIDAuMDAzNjM1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyNTI1LCAwLjAwMjUyNywgMC4wMDI1MzUsIDAuMDAyNTM5LCAwLjAwMjU0LCAwLjAwMjU0MSwgMC4wMDI1NDEiLCBcCi0gICAgICAgICAgIjAuMDAyNTMzLCAwLjAwMjUzNSwgMC4wMDI1NDQsIDAuMDAyNTQ4LCAwLjAwMjU0OSwgMC4wMDI1NSwgMC4wMDI1NSIsIFwKLSAgICAgICAgICAiMC4wMDI1ODcsIDAuMDAyNTg5LCAwLjAwMjU5OCwgMC4wMDI2MDIsIDAuMDAyNjA0LCAwLjAwMjYwNSwgMC4wMDI2MDYiLCBcCi0gICAgICAgICAgIjAuMDAyNjI2LCAwLjAwMjYyOSwgMC4wMDI2MzksIDAuMDAyNjQzLCAwLjAwMjY0NSwgMC4wMDI2NDYsIDAuMDAyNjQ3IiwgXAotICAgICAgICAgICIwLjAwMjY2LCAwLjAwMjY2MywgMC4wMDI2NzMsIDAuMDAyNjc3LCAwLjAwMjY3OSwgMC4wMDI2ODEsIDAuMDAyNjgxIiwgXAotICAgICAgICAgICIwLjAwMjczLCAwLjAwMjczMiwgMC4wMDI3NDIsIDAuMDAyNzQ3LCAwLjAwMjc0OSwgMC4wMDI3NTEsIDAuMDAyNzUxIiwgXAotICAgICAgICAgICIwLjAwMjc4MSwgMC4wMDI3ODQsIDAuMDAyNzkzLCAwLjAwMjc5OCwgMC4wMDI4LCAwLjAwMjgwMiwgMC4wMDI4MDMiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IE1YSTJYMiAqCi0gKiAtLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKE1YSTJYMikgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjIwMDM2ODsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjE5MzU7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjE3ODE0OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDYxOTM1OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDIxMSwgMC4wMDAyMTYsIDAuMDAwMjE3LCAwLjAwMDIxOCwgMC4wMDAyMTgsIDAuMDAwMjE5LCAwLjAwMDIxOSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDIzLCAwLjAwMDIyNywgMC4wMDAyMjcsIDAuMDAwMjI3LCAwLjAwMDIyNywgMC4wMDAyMjcsIDAuMDAwMjI3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA1OTQ4OTI7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNTkzMTk1OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDU5NDg5MjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyMTcsIDAuMDAwMjIsIDAuMDAwMjIxLCAwLjAwMDIyMSwgMC4wMDAyMjIsIDAuMDAwMjIyLCAwLjAwMDIyMiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDIzLCAwLjAwMDIyNywgMC4wMDAyMjcsIDAuMDAwMjI3LCAwLjAwMDIyNywgMC4wMDAyMjcsIDAuMDAwMjI3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxMzY2ODM7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxMzY2Mzk7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxMzY2ODM7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjEzLCAwLjAwMDE4NSwgMC4wMDAxOSwgMC4wMDAyMDUsIDAuMDAwMjA5LCAwLjAwMDIzNiwgMC4wMDAyNjQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDE4MTUsIDAuMDAxNzk1LCAwLjAwMTc5NCwgMC4wMDE4MDMsIDAuMDAxODE0LCAwLjAwMTg0MSwgMC4wMDE4NjQiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC41MDY0NDE7Ci0gICAgZnVuY3Rpb24gOiAiKCEoKFMwIEIpICsgKCFTMCBBKSkpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTQ2OSwgMC4xOTczNDQsIDAuMjc5MjU5LCAwLjM4MTY1OCwgMC40ODQwNCwgMC41ODYzMjcsIDAuNjg4Nzc1IiwgXAotICAgICAgICAgICIwLjEwMzIxNSwgMC4yMDU4NDMsIDAuMjg3NzU3LCAwLjM5MDIyOCwgMC40OTI1NTYsIDAuNTk0OTE0LCAwLjY5NzIzNiIsIFwKLSAgICAgICAgICAiMC4xMTMwODEsIDAuMjE1NzE0LCAwLjI5NzU5OSwgMC4zOTk5ODUsIDAuNTAyMzgzLCAwLjYwNDcwNywgMC43MDcxMDUiLCBcCi0gICAgICAgICAgIjAuMTIyMjg3LCAwLjIyNDk2MiwgMC4zMDY4NjEsIDAuNDA5MzExLCAwLjUxMTY0OSwgMC42MTQwMTIsIDAuNzE2Mzc3IiwgXAotICAgICAgICAgICIwLjEzMDU5MSwgMC4yMzMyMjIsIDAuMzE1MDk3LCAwLjQxNzUwMSwgMC41MTk5MDksIDAuNjIyMjQ0LCAwLjcyNDUyMSIsIFwKLSAgICAgICAgICAiMC4xNDI0OCwgMC4yNDUxMDEsIDAuMzI3MDE2LCAwLjQyOTM3NywgMC41MzE3NiwgMC42MzQxNzEsIDAuNzM2NDI3IiwgXAotICAgICAgICAgICIwLjE1MTU5NCwgMC4yNTQyMzcsIDAuMzM2MTM4LCAwLjQzODQ5MSwgMC41NDA4NDMsIDAuNjQzMjAxLCAwLjc0NTU2Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1MTI5NywgMC4yNjAzMTEsIDAuNDI5NDkxLCAwLjYzOTc4MSwgMC44NTIzOTYsIDEuMDYyMzEsIDEuMjc1MzUiLCBcCi0gICAgICAgICAgIjAuMDUxMjkyLCAwLjI1OTU4NywgMC40MjkyMjQsIDAuNjM5NDU5LCAwLjg1MjM2NSwgMS4wNjM4MywgMS4yNzM2MSIsIFwKLSAgICAgICAgICAiMC4wNTEzMDEsIDAuMjYwMzk3LCAwLjQyOTQ1OSwgMC42NDEwMDIsIDAuODUyMzgyLCAxLjA2MzcxLCAxLjI3NTI2IiwgXAotICAgICAgICAgICIwLjA1MTMwMywgMC4yNjAwNzMsIDAuNDI5NDM2LCAwLjYzOTUxOSwgMC44NTIzODksIDEuMDYzODEsIDEuMjc1MjgiLCBcCi0gICAgICAgICAgIjAuMDUxNDA5LCAwLjI1OTg3LCAwLjQyOTQ0MiwgMC42MzkxNTksIDAuODUyNDU1LCAxLjA2MzgyLCAxLjI3NTA3IiwgXAotICAgICAgICAgICIwLjA1MTQ2NiwgMC4yNTk4NDIsIDAuNDI4Njg4LCAwLjY0MDAyNSwgMC44NTA5MzMsIDEuMDYxNTksIDEuMjc0ODkiLCBcCi0gICAgICAgICAgIjAuMDUxNzQ0LCAwLjI2MDM0MiwgMC40Mjg4NzIsIDAuNjQwMDgsIDAuODUxMjk4LCAxLjA2MjM0LCAxLjI3MzQ2Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5NTA2MywgMC4xOTg5MzksIDAuMjgxNzM0LCAwLjM4NTE2OSwgMC40ODg1ODMsIDAuNTkyMDIzLCAwLjY5NTQyMyIsIFwKLSAgICAgICAgICAiMC4xMDM4NzEsIDAuMjA3Njk0LCAwLjI5MDQ2MywgMC4zOTM4OSwgMC40OTczNSwgMC42MDA3NTgsIDAuNzA0MjA4IiwgXAotICAgICAgICAgICIwLjExNDYwNCwgMC4yMTg0NTEsIDAuMzAxMjkyLCAwLjQwNDcxOSwgMC41MDgxMjksIDAuNjExNTYyLCAwLjcxNTAwMyIsIFwKLSAgICAgICAgICAiMC4xMjQ3MywgMC4yMjg1ODUsIDAuMzExMzcxLCAwLjQxNDgxNywgMC41MTgyMzMsIDAuNjIxNjc2LCAwLjcyNTA3OSIsIFwKLSAgICAgICAgICAiMC4xMzQzNDQsIDAuMjM4MjAyLCAwLjMyMDk2NCwgMC40MjQ0NDgsIDAuNTI3ODU3LCAwLjYzMTI3MywgMC43MzQ3MiIsIFwKLSAgICAgICAgICAiMC4xNDc4NTksIDAuMjUxNjU3LCAwLjMzNDQzMiwgMC40Mzc5MTUsIDAuNTQxMzQ0LCAwLjY0NDczMSwgMC43NDgyMjEiLCBcCi0gICAgICAgICAgIjAuMTU4MzI4LCAwLjI2MjM0OSwgMC4zNDUxMjQsIDAuNDQ4NTQsIDAuNTUxOTk0LCAwLjY1NTQwNywgMC43NTg4NzkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDUwODk2LCAwLjI1Nzg3NCwgMC40MjUyMjEsIDAuNjM2NTQzLCAwLjg0NjMxNiwgMS4wNTY0NCwgMS4yNjYwNyIsIFwKLSAgICAgICAgICAiMC4wNTA5MTksIDAuMjU3OTYxLCAwLjQyNTcyMywgMC42MzYxMzQsIDAuODQ1MDQsIDEuMDU2MTIsIDEuMjY0MzUiLCBcCi0gICAgICAgICAgIjAuMDUwODg5LCAwLjI1ODQ5MiwgMC40MjU0ODYsIDAuNjM0NzQsIDAuODQ2MjI4LCAxLjA1NjI5LCAxLjI2NjMyIiwgXAotICAgICAgICAgICIwLjA1MDkxOSwgMC4yNTg1OTksIDAuNDI1MjksIDAuNjM2NDI5LCAwLjg0NjM1OCwgMS4wNTYyNiwgMS4yNjU3IiwgXAotICAgICAgICAgICIwLjA1MDkxOSwgMC4yNTg1MTMsIDAuNDI1NzAyLCAwLjYzNjQxOSwgMC44NDYzNzIsIDEuMDU2MjUsIDEuMjY2MzEiLCBcCi0gICAgICAgICAgIjAuMDUxMDU0LCAwLjI1ODA5NCwgMC40MjYxNzcsIDAuNjM2NTExLCAwLjg0NjQ1MywgMS4wNTU1OSwgMS4yNjY0NiIsIFwKLSAgICAgICAgICAiMC4wNTEyMDIsIDAuMjU4NjI3LCAwLjQyNTU3MiwgMC42MzYyNDgsIDAuODQ0MjY2LCAxLjA1NjE0LCAxLjI2NDAzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5NTk4OSwgMC4xOTg2NTgsIDAuMjgwNTcsIDAuMzgzMDEzLCAwLjQ4NTM1LCAwLjU4NzcxNywgMC42OTAwOTMiLCBcCi0gICAgICAgICAgIjAuMTA0NjI0LCAwLjIwNzI2MywgMC4yODkxNjksIDAuMzkxNDYyLCAwLjQ5NCwgMC41OTYzMDYsIDAuNjk4Njk4IiwgXAotICAgICAgICAgICIwLjExNDM3NSwgMC4yMTY5OTEsIDAuMjk4OTI0LCAwLjQwMTI1OCwgMC41MDM3MDEsIDAuNjA2MDY2LCAwLjcwODQ1NSIsIFwKLSAgICAgICAgICAiMC4xMjM2NjIsIDAuMjI2MzI4LCAwLjMwODIzLCAwLjQxMDUxNywgMC41MTMwMTksIDAuNjE1MzksIDAuNzE3NzUyIiwgXAotICAgICAgICAgICIwLjEzMjA2MSwgMC4yMzQ2NjIsIDAuMzE2NTY0LCAwLjQxODg0NywgMC41MjEzNDgsIDAuNjIzNjQ5LCAwLjcyNjEwMiIsIFwKLSAgICAgICAgICAiMC4xNDQwNTQsIDAuMjQ2NjcsIDAuMzI4NTU2LCAwLjQzMDk0MSwgMC41MzMzNzEsIDAuNjM1Njc1LCAwLjczODA0NiIsIFwKLSAgICAgICAgICAiMC4xNTMxNzgsIDAuMjU1ODY1LCAwLjMzNzc4NSwgMC40NDAxNDIsIDAuNTQyNDg5LCAwLjY0NDg0NSwgMC43NDczMTMiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDUxMzA1LCAwLjI1OTgyLCAwLjQyOTUwMywgMC42Mzk2MjMsIDAuODUyMzk4LCAxLjA2Mzg3LCAxLjI3NTM3IiwgXAotICAgICAgICAgICIwLjA1MTM2LCAwLjI2MDM4LCAwLjQyOTI1MSwgMC42NDA1MjQsIDAuODUwODgzLCAxLjA2MzgzLCAxLjI3NTM1IiwgXAotICAgICAgICAgICIwLjA1MTM1MiwgMC4yNTk2NTQsIDAuNDI5NDc2LCAwLjY0MDg2OCwgMC44NTA4OTEsIDEuMDYzODQsIDEuMjc1MzIiLCBcCi0gICAgICAgICAgIjAuMDUxMzY2LCAwLjI2MDA0NiwgMC40Mjg1NiwgMC42Mzk5NTYsIDAuODUyNDAzLCAxLjA2Mzg5LCAxLjI3NTMxIiwgXAotICAgICAgICAgICIwLjA1MTQ1MiwgMC4yNjAwOTIsIDAuNDI5NDY2LCAwLjYzOTE3MywgMC44NTIzOTEsIDEuMDYyNSwgMS4yNzUzNCIsIFwKLSAgICAgICAgICAiMC4wNTE1MTYsIDAuMjYwMzksIDAuNDI5NDEsIDAuNjQwMDYyLCAwLjg1MDc1OSwgMS4wNjM1NywgMS4yNzMyNiIsIFwKLSAgICAgICAgICAiMC4wNTE4MjEsIDAuMjYwMDU2LCAwLjQyOTQwMywgMC42NDAwNCwgMC44NTExOTIsIDEuMDYyMzIsIDEuMjcyODMiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk1NDUsIDAuMTk5MzI4LCAwLjI4MjEyMSwgMC4zODU1MTUsIDAuNDg4OTM5LCAwLjU5MjM4NiwgMC42OTU3OTkiLCBcCi0gICAgICAgICAgIjAuMTA0MzM4LCAwLjIwODE2LCAwLjI5MDk1LCAwLjM5NDM4LCAwLjQ5NzgzMywgMC42MDEyNDIsIDAuNzA0NzAyIiwgXAotICAgICAgICAgICIwLjExNTE3NSwgMC4yMTg5OTIsIDAuMzAxNzgxLCAwLjQwNTI2NSwgMC41MDg2NzgsIDAuNjEyMTI4LCAwLjcxNTUzMSIsIFwKLSAgICAgICAgICAiMC4xMjU0MDQsIDAuMjI5MjQ5LCAwLjMxMjAzNiwgMC40MTU1MDYsIDAuNTE4OTI0LCAwLjYyMjM1OCwgMC43MjU3NzUiLCBcCi0gICAgICAgICAgIjAuMTM1MDc5LCAwLjIzODk0MywgMC4zMjE3MjQsIDAuNDI1MTg4LCAwLjUyODYwNiwgMC42MzIwNDYsIDAuNzM1NDc1IiwgXAotICAgICAgICAgICIwLjE0ODgwMSwgMC4yNTI2MTYsIDAuMzM1NDE1LCAwLjQzODg3NywgMC41NDIyOTQsIDAuNjQ1NzUzLCAwLjc0OTE4OCIsIFwKLSAgICAgICAgICAiMC4xNTk1MTIsIDAuMjYzMzc0LCAwLjM0NjIwOCwgMC40NDk2MiwgMC41NTMwNzEsIDAuNjU2NTI1LCAwLjc1OTkxOCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTA5MjcsIDAuMjU3OTgxLCAwLjQyNjU0NSwgMC42MzY0MzcsIDAuODQ2NDQxLCAxLjA1NjM2LCAxLjI2NjIxIiwgXAotICAgICAgICAgICIwLjA1MDkwOSwgMC4yNTgwOTgsIDAuNDI1NzQ0LCAwLjYzNjQwOSwgMC44NDUwNDMsIDEuMDU2MTEsIDEuMjY0MjQiLCBcCi0gICAgICAgICAgIjAuMDUwOTMyLCAwLjI1ODA4OCwgMC40MjYyNCwgMC42MzQ3NDIsIDAuODQ2MzcsIDEuMDU2MjYsIDEuMjY2MDIiLCBcCi0gICAgICAgICAgIjAuMDUwOTI1LCAwLjI1ODUzNiwgMC40MjYyNzcsIDAuNjM2NDY5LCAwLjg0NjMyMywgMS4wNTYyOSwgMS4yNjYxNyIsIFwKLSAgICAgICAgICAiMC4wNTA5NTIsIDAuMjU4MDQ1LCAwLjQyNjQ2LCAwLjYzNjUwNSwgMC44NDYyODksIDEuMDU2MzYsIDEuMjY2MzEiLCBcCi0gICAgICAgICAgIjAuMDUxMDU2LCAwLjI1ODEwNCwgMC40MjU3MjMsIDAuNjM2NTA5LCAwLjg0NjMzMSwgMS4wNTY0NiwgMS4yNjY0NCIsIFwKLSAgICAgICAgICAiMC4wNTExMTgsIDAuMjU4NDM4LCAwLjQyNTI1OSwgMC42MzUwMTUsIDAuODQ2NDg5LCAxLjA1NjQ1LCAxLjI2NDY4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlMwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDQwMzIsIDAuMjA2Njk1LCAwLjI4ODYwMSwgMC4zOTEwMjEsIDAuNDkzMzY1LCAwLjU5NTczOCwgMC42OTgxMDIiLCBcCi0gICAgICAgICAgIjAuMTE0MDgzLCAwLjIxNjc0NCwgMC4yOTg2NTEsIDAuNDAxMDgxLCAwLjUwMzQxOCwgMC42MDU3ODQsIDAuNzA4MTczIiwgXAotICAgICAgICAgICIwLjEyNDg2NiwgMC4yMjc1MTksIDAuMzA5NDAxLCAwLjQxMTg1OSwgMC41MTQxOTEsIDAuNjE2NTU2LCAwLjcxODk1NSIsIFwKLSAgICAgICAgICAiMC4xMzM2MDcsIDAuMjM2MjUsIDAuMzE4MTQ2LCAwLjQyMDQxNiwgMC41MjI5MjgsIDAuNjI1MjY3LCAwLjcyNzU3NiIsIFwKLSAgICAgICAgICAiMC4xNDA5NywgMC4yNDM1OTcsIDAuMzI1NDkxLCAwLjQyNzg5LCAwLjUzMDI5MiwgMC42MzI2NTYsIDAuNzM0OTQ1IiwgXAotICAgICAgICAgICIwLjE1MDcxNywgMC4yNTMzODgsIDAuMzM1MTY0LCAwLjQzNzQ4NiwgMC41Mzk5ODcsIDAuNjQyMTk2LCAwLjc0NDU4MSIsIFwKLSAgICAgICAgICAiMC4xNTgzMTMsIDAuMjYwOTAxLCAwLjM0Mjg2NywgMC40NDUxMywgMC41NDc1NjUsIDAuNjQ5ODU4LCAwLjc1MjMwMiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTEzMzIsIDAuMjYwMDUxLCAwLjQyOTUxMSwgMC42NDEwNDQsIDAuODUyMzg5LCAxLjA2MzkxLCAxLjI3NTM5IiwgXAotICAgICAgICAgICIwLjA1MTMzNywgMC4yNjAwMjQsIDAuNDI5NTA1LCAwLjYzOTY5NiwgMC44NTIzNjIsIDEuMDYzODQsIDEuMjc1MzciLCBcCi0gICAgICAgICAgIjAuMDUxMzAxLCAwLjI1OTgyLCAwLjQyODg3NSwgMC42Mzk2OTcsIDAuODUyMzU2LCAxLjA2MzgzLCAxLjI3NTM5IiwgXAotICAgICAgICAgICIwLjA1MTM2MiwgMC4yNjA0MiwgMC40Mjg4ODIsIDAuNjQwMDM2LCAwLjg1MjQxNywgMS4wNjM3OSwgMS4yNzUxMyIsIFwKLSAgICAgICAgICAiMC4wNTEzNDgsIDAuMjU5NzA0LCAwLjQyOTQ2MywgMC42Mzk3OTgsIDAuODUyNDQ3LCAxLjA2Mzg3LCAxLjI3NTQiLCBcCi0gICAgICAgICAgIjAuMDUxMzY0LCAwLjI2MDMxOCwgMC40MjkzNjUsIDAuNjQwNjI1LCAwLjg1MTA4LCAxLjA2MjI1LCAxLjI3MjY0IiwgXAotICAgICAgICAgICIwLjA1MTQ5MSwgMC4yNTk4MzEsIDAuNDI5MTQsIDAuNjQwNTY4LCAwLjg1MTI5NywgMS4wNjIyOSwgMS4yNzI3Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwNDkxMywgMC4yMDg3NjQsIDAuMjkxNTQ0LCAwLjM5NTAyNywgMC40OTg0MzUsIDAuNjAxODc0LCAwLjcwNTI3NiIsIFwKLSAgICAgICAgICAiMC4xMTQ1NTQsIDAuMjE4NDE5LCAwLjMwMTIzMywgMC40MDQ2ODYsIDAuNTA4MDk1LCAwLjYxMTUyMywgMC43MTQ5NCIsIFwKLSAgICAgICAgICAiMC4xMjQ5NTIsIDAuMjI4NzUsIDAuMzExNTYyLCAwLjQxNSwgMC41MTg0MjQsIDAuNjIxODcyLCAwLjcyNTI5MyIsIFwKLSAgICAgICAgICAiMC4xMzI2MzIsIDAuMjM2NDg0LCAwLjMxOTI5MSwgMC40MjI3NDUsIDAuNTI2MTU3LCAwLjYyOTU5NSwgMC43MzMwOTEiLCBcCi0gICAgICAgICAgIjAuMTM5MjMxLCAwLjI0MzA4NCwgMC4zMjU4NTIsIDAuNDI5Mjg4LCAwLjUzMjc4NywgMC42MzYxOTIsIDAuNzM5Njc0IiwgXAotICAgICAgICAgICIwLjE0NzgwNiwgMC4yNTE2MTYsIDAuMzM0Mzg5LCAwLjQzNzgwOSwgMC41NDEyMzYsIDAuNjQ0NjkxLCAwLjc0ODA4NiIsIFwKLSAgICAgICAgICAiMC4xNTQzODgsIDAuMjU4MDg0LCAwLjM0MTAwNiwgMC40NDQ0NDcsIDAuNTQ3ODU3LCAwLjY1MTMwMywgMC43NTQ1ODgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDUwODg3LCAwLjI1ODExNSwgMC40MjYzNjcsIDAuNjM2NTQ1LCAwLjg0NjI1OSwgMS4wNTYzNCwgMS4yNjYiLCBcCi0gICAgICAgICAgIjAuMDUwODgyLCAwLjI1ODA5LCAwLjQyNTI2MiwgMC42MzQ3MTksIDAuODQ2MjU4LCAxLjA1NjI4LCAxLjI2NjE1IiwgXAotICAgICAgICAgICIwLjA1MDkyMSwgMC4yNTgwNTgsIDAuNDI2NSwgMC42MzYzNDYsIDAuODQ2Mzc5LCAxLjA1NjIzLCAxLjI2NjExIiwgXAotICAgICAgICAgICIwLjA1MDg5MywgMC4yNTg1MTgsIDAuNDI1MzcxLCAwLjYzNjUxOCwgMC44NDYyNDMsIDEuMDU2MywgMS4yNjY2MSIsIFwKLSAgICAgICAgICAiMC4wNTA4NzUsIDAuMjU3ODYyLCAwLjQyNjEzOSwgMC42MzQ3MTksIDAuODQ0MTUyLCAxLjA1NjM5LCAxLjI2NjUzIiwgXAotICAgICAgICAgICIwLjA1MDkwOSwgMC4yNTgxMTEsIDAuNDI2MjEyLCAwLjYzNjE4MSwgMC44NDYwOSwgMS4wNTYwNiwgMS4yNjU5MiIsIFwKLSAgICAgICAgICAiMC4wNTEwNDUsIDAuMjU3OTg2LCAwLjQyNTczLCAwLjYzNTU4LCAwLjg0NDY3NiwgMS4wNTU3NywgMS4yNjMxNCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg4Mjc1LCAwLjE5MDkwMSwgMC4yNzI4MDgsIDAuMzc1MDkyLCAwLjQ3NzU4MiwgMC41Nzk5NTQsIDAuNjgyMzQzIiwgXAotICAgICAgICAgICIwLjA5NjkxMSwgMC4xOTk1NCwgMC4yODE0NDYsIDAuMzgzNzE0LCAwLjQ4NjIwOCwgMC41ODg2MDIsIDAuNjkwOTc5IiwgXAotICAgICAgICAgICIwLjEwODI0NiwgMC4yMTA4OTMsIDAuMjkyNzkzLCAwLjM5NTE3LCAwLjQ5NzU4NywgMC41OTk5NTQsIDAuNzAyMzMyIiwgXAotICAgICAgICAgICIwLjExODg5OCwgMC4yMjE1MTEsIDAuMzAzNDE0LCAwLjQwNTg2MywgMC41MDgyMDQsIDAuNjEwNTkzLCAwLjcxMjkzNCIsIFwKLSAgICAgICAgICAiMC4xMjc5OTEsIDAuMjMwNjcsIDAuMzEyNTYxLCAwLjQxNDk2NCwgMC41MTcyMjksIDAuNjE5NzY5LCAwLjcyMjEzNiIsIFwKLSAgICAgICAgICAiMC4xNDA3MTgsIDAuMjQzMzc4LCAwLjMyNTI5MSwgMC40Mjc2NjUsIDAuNTI5OTM5LCAwLjYzMjM3MywgMC43MzQ4MTYiLCBcCi0gICAgICAgICAgIjAuMTUwMjYsIDAuMjUyODM0LCAwLjMzNDc5NCwgMC40MzcxMjEsIDAuNTM5NTMzLCAwLjY0MTk1MSwgMC43NDQyODkiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDUxMzIzLCAwLjI2MDMzMywgMC40MjkyMzYsIDAuNjM5MjQsIDAuODUwOTM1LCAxLjA2Mzg0LCAxLjI3NTM2IiwgXAotICAgICAgICAgICIwLjA1MTMyMiwgMC4yNjAyMzUsIDAuNDI5MjMyLCAwLjY0MDA0MiwgMC44NTIzMjcsIDEuMDYzODYsIDEuMjc1MzUiLCBcCi0gICAgICAgICAgIjAuMDUxMjkxLCAwLjI1OTc3NywgMC40Mjk0NjEsIDAuNjQwOTgzLCAwLjg1MjM5MiwgMS4wNjM4NywgMS4yNzUzMyIsIFwKLSAgICAgICAgICAiMC4wNTEzMzEsIDAuMjYwMDY1LCAwLjQyOTQ2OCwgMC42Mzk3NjIsIDAuODUyMzg2LCAxLjA2MzksIDEuMjc1MjkiLCBcCi0gICAgICAgICAgIjAuMDUxNDQzLCAwLjI1OTk0NywgMC40MjkzOTMsIDAuNjM5ODQzLCAwLjg1MTg1OCwgMS4wNjM4OSwgMS4yNzUzMiIsIFwKLSAgICAgICAgICAiMC4wNTE1MDksIDAuMjYwMjYzLCAwLjQyOTQyNSwgMC42NDA3ODYsIDAuODUxMTg4LCAxLjA2MzczLCAxLjI3NTEiLCBcCi0gICAgICAgICAgIjAuMDUxODY2LCAwLjI2MDMxOCwgMC40Mjg5MDMsIDAuNjQwODMsIDAuODUyMjgyLCAxLjA2MzYyLCAxLjI3MzE5Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4ODc2MSwgMC4xOTI2MjIsIDAuMjc1NDM4LCAwLjM3ODg3LCAwLjQ4MjI4NiwgMC41ODU3MzQsIDAuNjg5MTQxIiwgXAotICAgICAgICAgICIwLjA5NzczNiwgMC4yMDE1NjEsIDAuMjg0MzQ2LCAwLjM4NzgxOCwgMC40OTEyLCAwLjU5NDY0NywgMC42OTgwNjEiLCBcCi0gICAgICAgICAgIjAuMTA5Mzc3LCAwLjIxMzIxMSwgMC4yOTU5NzgsIDAuMzk5NDI2LCAwLjUwMjg0NywgMC42MDYyNzgsIDAuNzA5NzEyIiwgXAotICAgICAgICAgICIwLjEyMDU3NiwgMC4yMjQ0MjYsIDAuMzA3MjI0LCAwLjQxMDY1OCwgMC41MTQxNzksIDAuNjE3NTI0LCAwLjcyMDk5NiIsIFwKLSAgICAgICAgICAiMC4xMzA0NjMsIDAuMjM0MzEzLCAwLjMxNzEyMSwgMC40MjA2MDIsIDAuNTIzOTczLCAwLjYyNzQxNywgMC43MzA4NDciLCBcCi0gICAgICAgICAgIjAuMTQ0NDM5LCAwLjI0ODMwNSwgMC4zMzExLCAwLjQzNDU0NCwgMC41MzgwMTMsIDAuNjQxNDE5LCAwLjc0NDg3NCIsIFwKLSAgICAgICAgICAiMC4xNTQ4OTYsIDAuMjU4NzcsIDAuMzQxNTczLCAwLjQ0NTAyMSwgMC41NDg0OTUsIDAuNjUxOTE1LCAwLjc1NTI5OSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTA5MjksIDAuMjU4MTMyLCAwLjQyNTQ1LCAwLjYzNjUyNywgMC44NDYzMDEsIDEuMDU2NDYsIDEuMjY1ODMiLCBcCi0gICAgICAgICAgIjAuMDUwOTAzLCAwLjI1ODYzNywgMC40MjY0NjYsIDAuNjM0NzAzLCAwLjg0NjI4NSwgMS4wNTYxNiwgMS4yNjUxMiIsIFwKLSAgICAgICAgICAiMC4wNTA5NjIsIDAuMjU3OTE1LCAwLjQyNTczNCwgMC42MzY0OTksIDAuODQ0ODY0LCAxLjA1NjE1LCAxLjI2NDIyIiwgXAotICAgICAgICAgICIwLjA1MDkyNiwgMC4yNTg1MTQsIDAuNDI1Njg2LCAwLjYzNTk4MywgMC44NDQyMTksIDEuMDU2MjksIDEuMjY2MzciLCBcCi0gICAgICAgICAgIjAuMDUxMDYsIDAuMjU4NTE2LCAwLjQyNTgwMiwgMC42MzQ2ODMsIDAuODQ2MjU1LCAxLjA1NjI3LCAxLjI2NDE0IiwgXAotICAgICAgICAgICIwLjA1MTEzNywgMC4yNTg1NTYsIDAuNDI1NjY2LCAwLjYzNTk3NiwgMC44NDY0ODMsIDEuMDU2MjgsIDEuMjY2MzYiLCBcCi0gICAgICAgICAgIjAuMDUxNDAxLCAwLjI1ODU0NSwgMC40MjU0NDgsIDAuNjM2NDA3LCAwLjg0NjU4MSwgMS4wNTY0NSwgMS4yNjU1OSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDY4MSwgMC4wMDQ3MjUsIDAuMDA0NzMzLCAwLjAwNDczMywgMC4wMDQ3MzgsIDAuMDA0NzM4LCAwLjAwNDc0IiwgXAotICAgICAgICAgICIwLjAwNDY2OCwgMC4wMDQ3MTUsIDAuMDA0NzE3LCAwLjAwNDcyLCAwLjAwNDcyMSwgMC4wMDQ3MjYsIDAuMDA0NzE4IiwgXAotICAgICAgICAgICIwLjAwNDY2MSwgMC4wMDQ3MDUsIDAuMDA0NzExLCAwLjAwNDcxMiwgMC4wMDQ3MTQsIDAuMDA0NzEzLCAwLjAwNDcxMiIsIFwKLSAgICAgICAgICAiMC4wMDQ2NTQsIDAuMDA0Njk5LCAwLjAwNDcwNywgMC4wMDQ3MDksIDAuMDA0NzExLCAwLjAwNDcxMSwgMC4wMDQ3MTEiLCBcCi0gICAgICAgICAgIjAuMDA0NjUsIDAuMDA0Njk4LCAwLjAwNDcwMywgMC4wMDQ3MDcsIDAuMDA0NzA4LCAwLjAwNDcwOSwgMC4wMDQ3MDgiLCBcCi0gICAgICAgICAgIjAuMDA0NjUyLCAwLjAwNDY5NywgMC4wMDQ3MDQsIDAuMDA0NzA2LCAwLjAwNDcwOCwgMC4wMDQ3MDksIDAuMDA0NzExIiwgXAotICAgICAgICAgICIwLjAwNDY1OCwgMC4wMDQ3MDQsIDAuMDA0NzA3LCAwLjAwNDcxMiwgMC4wMDQ3MTIsIDAuMDA0NzE0LCAwLjAwNDcxNSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzQ4MSwgMC4wMDM1NDMsIDAuMDAzNTUxLCAwLjAwMzU1NSwgMC4wMDM1NTcsIDAuMDAzNTU4LCAwLjAwMzU1OSIsIFwKLSAgICAgICAgICAiMC4wMDM0NTgsIDAuMDAzNTIyLCAwLjAwMzUyOSwgMC4wMDM1MzMsIDAuMDAzNTM1LCAwLjAwMzUzNiwgMC4wMDM1MzciLCBcCi0gICAgICAgICAgIjAuMDAzNDQ4LCAwLjAwMzUxMSwgMC4wMDM1MTgsIDAuMDAzNTIyLCAwLjAwMzUyNCwgMC4wMDM1MjUsIDAuMDAzNTI2IiwgXAotICAgICAgICAgICIwLjAwMzQzNiwgMC4wMDM1MDIsIDAuMDAzNTEsIDAuMDAzNTE0LCAwLjAwMzUxNiwgMC4wMDM1MTcsIDAuMDAzNTE4IiwgXAotICAgICAgICAgICIwLjAwMzQzOSwgMC4wMDM1MDQsIDAuMDAzNTEyLCAwLjAwMzUxNiwgMC4wMDM1MTgsIDAuMDAzNTIsIDAuMDAzNTIxIiwgXAotICAgICAgICAgICIwLjAwMzQzNywgMC4wMDM1MDQsIDAuMDAzNTEyLCAwLjAwMzUxNiwgMC4wMDM1MTksIDAuMDAzNTIsIDAuMDAzNTIxIiwgXAotICAgICAgICAgICIwLjAwMzQ0NCwgMC4wMDM1MTIsIDAuMDAzNTIsIDAuMDAzNTI1LCAwLjAwMzUyNywgMC4wMDM1MjksIDAuMDAzNTMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQ4NjMsIDAuMDA0OTExLCAwLjAwNDkxOCwgMC4wMDQ5MTYsIDAuMDA0OTE4LCAwLjAwNDkxOSwgMC4wMDQ5MjYiLCBcCi0gICAgICAgICAgIjAuMDA0ODUsIDAuMDA0ODk1LCAwLjAwNDkwMSwgMC4wMDQ5MDQsIDAuMDA0OTA2LCAwLjAwNDkwNiwgMC4wMDQ5MDkiLCBcCi0gICAgICAgICAgIjAuMDA0ODQyLCAwLjAwNDg4NywgMC4wMDQ4OTYsIDAuMDA0ODk2LCAwLjAwNDkwMSwgMC4wMDQ5MDEsIDAuMDA0ODk5IiwgXAotICAgICAgICAgICIwLjAwNDgzNSwgMC4wMDQ4ODQsIDAuMDA0ODg4LCAwLjAwNDg5MywgMC4wMDQ4OSwgMC4wMDQ4OTYsIDAuMDA0ODkiLCBcCi0gICAgICAgICAgIjAuMDA0ODMyLCAwLjAwNDg4LCAwLjAwNDg4NiwgMC4wMDQ4OSwgMC4wMDQ4OTEsIDAuMDA0ODkzLCAwLjAwNDg5NCIsIFwKLSAgICAgICAgICAiMC4wMDQ4MzEsIDAuMDA0ODc5LCAwLjAwNDg4NSwgMC4wMDQ4ODksIDAuMDA0ODkxLCAwLjAwNDg5MiwgMC4wMDQ4OTIiLCBcCi0gICAgICAgICAgIjAuMDA0ODM2LCAwLjAwNDg4MywgMC4wMDQ4OSwgMC4wMDQ4OTMsIDAuMDA0ODk1LCAwLjAwNDg5NiwgMC4wMDQ4OTYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDMzNjgsIDAuMDAzNDMzLCAwLjAwMzQ0MSwgMC4wMDM0NDUsIDAuMDAzNDQ4LCAwLjAwMzQ0OSwgMC4wMDM0NSIsIFwKLSAgICAgICAgICAiMC4wMDMzNDYsIDAuMDAzNDExLCAwLjAwMzQxOSwgMC4wMDM0MjQsIDAuMDAzNDI2LCAwLjAwMzQyNywgMC4wMDM0MjgiLCBcCi0gICAgICAgICAgIjAuMDAzMzM2LCAwLjAwMzQwMSwgMC4wMDM0MDksIDAuMDAzNDEzLCAwLjAwMzQxNSwgMC4wMDM0MTcsIDAuMDAzNDE4IiwgXAotICAgICAgICAgICIwLjAwMzMyNCwgMC4wMDMzOTEsIDAuMDAzMzk5LCAwLjAwMzQwNCwgMC4wMDM0MDcsIDAuMDAzNDA4LCAwLjAwMzQwOSIsIFwKLSAgICAgICAgICAiMC4wMDMzMjYsIDAuMDAzMzkxLCAwLjAwMzQsIDAuMDAzNDA0LCAwLjAwMzQwNywgMC4wMDM0MDgsIDAuMDAzNDA5IiwgXAotICAgICAgICAgICIwLjAwMzMyNCwgMC4wMDMzOTMsIDAuMDAzNDAzLCAwLjAwMzQwOCwgMC4wMDM0MSwgMC4wMDM0MTIsIDAuMDAzNDEzIiwgXAotICAgICAgICAgICIwLjAwMzMyNSwgMC4wMDMzOTQsIDAuMDAzNDA0LCAwLjAwMzQwOCwgMC4wMDM0MTEsIDAuMDAzNDEyLCAwLjAwMzQxNCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlMwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQ1MzQsIDAuMDA0NTc4LCAwLjAwNDU3NiwgMC4wMDQ1OSwgMC4wMDQ1OTMsIDAuMDA0NTc5LCAwLjAwNDU4OCIsIFwKLSAgICAgICAgICAiMC4wMDQ1MSwgMC4wMDQ1NTUsIDAuMDA0NTU5LCAwLjAwNDU2MSwgMC4wMDQ1NjgsIDAuMDA0NTYzLCAwLjAwNDU2NCIsIFwKLSAgICAgICAgICAiMC4wMDQ1MTEsIDAuMDA0NTU1LCAwLjAwNDU1OSwgMC4wMDQ1NjIsIDAuMDA0NTYzLCAwLjAwNDU2NCwgMC4wMDQ1NzIiLCBcCi0gICAgICAgICAgIjAuMDA0NTA4LCAwLjAwNDU1MiwgMC4wMDQ1NTgsIDAuMDA0NTYsIDAuMDA0NTYxLCAwLjAwNDU2MSwgMC4wMDQ1NjIiLCBcCi0gICAgICAgICAgIjAuMDA0NTE2LCAwLjAwNDU2MiwgMC4wMDQ1NywgMC4wMDQ1NjcsIDAuMDA0NTc0LCAwLjAwNDU3MiwgMC4wMDQ1NyIsIFwKLSAgICAgICAgICAiMC4wMDQ1NDMsIDAuMDA0NTg5LCAwLjAwNDU5MSwgMC4wMDQ1OTQsIDAuMDA0NTk1LCAwLjAwNDU5NiwgMC4wMDQ1OTYiLCBcCi0gICAgICAgICAgIjAuMDA0NTYyLCAwLjAwNDYxLCAwLjAwNDYxMSwgMC4wMDQ2MTYsIDAuMDA0NjE0LCAwLjAwNDYxNywgMC4wMDQ2MTgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDUyMzYsIDAuMDA1Mjk5LCAwLjAwNTMwNiwgMC4wMDUzMSwgMC4wMDUzMTIsIDAuMDA1MzEzLCAwLjAwNTMxNCIsIFwKLSAgICAgICAgICAiMC4wMDUyMTgsIDAuMDA1MjgxLCAwLjAwNTI4OSwgMC4wMDUyOTIsIDAuMDA1Mjk0LCAwLjAwNTI5NiwgMC4wMDUyOTYiLCBcCi0gICAgICAgICAgIjAuMDA1MjE1LCAwLjAwNTI3OSwgMC4wMDUyODYsIDAuMDA1MjksIDAuMDA1MjkyLCAwLjAwNTI5MywgMC4wMDUyOTMiLCBcCi0gICAgICAgICAgIjAuMDA1MjE3LCAwLjAwNTI4MSwgMC4wMDUyODgsIDAuMDA1MjkyLCAwLjAwNTI5NCwgMC4wMDUyOTUsIDAuMDA1Mjk2IiwgXAotICAgICAgICAgICIwLjAwNTIyOCwgMC4wMDUyOTMsIDAuMDA1MywgMC4wMDUyOTksIDAuMDA1MzA2LCAwLjAwNTMwNywgMC4wMDUzMDgiLCBcCi0gICAgICAgICAgIjAuMDA1MjQ2LCAwLjAwNTMwOSwgMC4wMDUzMTYsIDAuMDA1MzIsIDAuMDA1MzIyLCAwLjAwNTMyMywgMC4wMDUzMjQiLCBcCi0gICAgICAgICAgIjAuMDA1MjY4LCAwLjAwNTMyOCwgMC4wMDUzMzgsIDAuMDA1MzQyLCAwLjAwNTM0NCwgMC4wMDUzNDUsIDAuMDA1MzQ0Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBNWEkzWDIgKgotICogLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChNWEkzWDIpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4yODc2MTU7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY1NDAxMjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2NTI4Njg7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjU0MDEyOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDc5MywgMC4wMDA3NzMsIDAuMDAwNzYzLCAwLjAwMDc1OSwgMC4wMDA3NTcsIDAuMDAwNzU5LCAwLjAwMDc2MyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjIyNCwgMC4wMDIyMTIsIDAuMDAyMjA2LCAwLjAwMjIwNCwgMC4wMDIyMDQsIDAuMDAyMjA1LCAwLjAwMjIxIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2NTQwMjM7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjUyNDAzOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDY1NDAyMzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyMTYsIDAuMDAwMjIsIDAuMDAwMjIsIDAuMDAwMjIxLCAwLjAwMDIyMSwgMC4wMDAyMjEsIDAuMDAwMjIxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjMzLCAwLjAwMDIyOCwgMC4wMDAyMjgsIDAuMDAwMjI3LCAwLjAwMDIyNywgMC4wMDAyMjcsIDAuMDAwMjI3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihDKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA1OTA0OTk7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNTkwMzM5OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDU5MDQ5OTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyMjUsIDAuMDAwMTk4LCAwLjAwMDIwNSwgMC4wMDAyMDksIDAuMDAwMjIxLCAwLjAwMDI0NywgMC4wMDAyNzMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDEzNzEsIDAuMDAxMzUxLCAwLjAwMTM1LCAwLjAwMTM1OCwgMC4wMDEzNzEsIDAuMDAxMzk5LCAwLjAwMTQyMiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUzApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTM5ODM2OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTM5ODM2OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTM5ODE5OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDEyOCwgMC4wMDAwOTksIDAuMDAwMTA0LCAwLjAwMDExOCwgMC4wMDAxMzksIDAuMDAwMTUyLCAwLjAwMDE3OCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTg0MiwgMC4wMDE4MjEsIDAuMDAxODIyLCAwLjAwMTgzMywgMC4wMDE4NDIsIDAuMDAxODY4LCAwLjAwMTg5Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTMSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxMzAzNDg7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxMzAyNzQ7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxMzAzNDg7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjg5LCAwLjAwMDI2MywgMC4wMDAyNiwgMC4wMDAyNzEsIDAuMDAwMjgxLCAwLjAwMDMwOCwgMC4wMDAzMzIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDE4NTEsIDAuMDAxODMxLCAwLjAwMTgzMSwgMC4wMDE4NDIsIDAuMDAxODUyLCAwLjAwMTg3OCwgMC4wMDE5MDEiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC41MjI2NzE7Ci0gICAgZnVuY3Rpb24gOiAiKCEoKFMxIEMpICsgKCFTMSAoKFMwIEIpICsgKCFTMCBBKSkpKSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEyNzM0OSwgMC4yMzExNDQsIDAuMzEyMjksIDAuNDEzNzAzLCAwLjUxNTAxMSwgMC42MTYyMDgsIDAuNzE3NjMiLCBcCi0gICAgICAgICAgIjAuMTM1OTEzLCAwLjIzOTc0MSwgMC4zMjA5MDUsIDAuNDIyMywgMC41MjM1LCAwLjYyNDk1NCwgMC43MjYyMjgiLCBcCi0gICAgICAgICAgIjAuMTQ1NjY2LCAwLjI0OTQ1MywgMC4zMzA2MywgMC40MzIwMjEsIDAuNTMzMzg4LCAwLjYzNDYyOSwgMC43MzU5NDkiLCBcCi0gICAgICAgICAgIjAuMTU0ODcsIDAuMjU4NzI2LCAwLjMzOTg5MSwgMC40NDEyNjgsIDAuNTQyNjE0LCAwLjY0MzkyMiwgMC43NDUyNCIsIFwKLSAgICAgICAgICAiMC4xNjMxNDUsIDAuMjY2OTU1LCAwLjM0ODA5NSwgMC40NDk1NTMsIDAuNTUwODIzLCAwLjY1MjE1MiwgMC43NTM1MDkiLCBcCi0gICAgICAgICAgIjAuMTc0NzI2LCAwLjI3ODQ4LCAwLjM1OTY0NiwgMC40NjEwMzIsIDAuNTYyMzcxLCAwLjY2MzY3NiwgMC43NjQ5ODgiLCBcCi0gICAgICAgICAgIjAuMTgzNzA3LCAwLjI4NzU4NiwgMC4zNjg3MzMsIDAuNDcwMTE4LCAwLjU3MTQ2MSwgMC42NzI3NjIsIDAuNzc0MTgzIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1ODYwMiwgMC4yNjA2NzMsIDAuNDI3MDYzLCAwLjYzNDgzOSwgMC44NDM5NDYsIDEuMDUzNCwgMS4yNjE2NiIsIFwKLSAgICAgICAgICAiMC4wNTg1OTcsIDAuMjYwNjc4LCAwLjQyNzE5MiwgMC42MzQxMzcsIDAuODQyOTI5LCAxLjA1Mzk5LCAxLjI2MTY5IiwgXAotICAgICAgICAgICIwLjA1ODYwNCwgMC4yNjA2NzYsIDAuNDI3MTkzLCAwLjYzNDg1MywgMC44NDQ5OSwgMS4wNTM4OSwgMS4yNjE4IiwgXAotICAgICAgICAgICIwLjA1ODU3NSwgMC4yNjA3MjEsIDAuNDI3MDU0LCAwLjYzNTg0LCAwLjg0NDg0MiwgMS4wNTI3LCAxLjI2MTc4IiwgXAotICAgICAgICAgICIwLjA1ODU4OCwgMC4yNjA5NDksIDAuNDI3MDUzLCAwLjYzNDU0LCAwLjg0NDgzMywgMS4wNTM5NiwgMS4yNjEyMiIsIFwKLSAgICAgICAgICAiMC4wNTg3MTMsIDAuMjYwNzMzLCAwLjQyNzA3MywgMC42MzU4NTMsIDAuODQ0ODM4LCAxLjA1MjY1LCAxLjI2MTU1IiwgXAotICAgICAgICAgICIwLjA1ODU4OCwgMC4yNjA5NjIsIDAuNDI3MDIxLCAwLjYzNTA5NCwgMC44NDQ3MzgsIDEuMDUyNjIsIDEuMjYzMTEiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTI5ODkyLCAwLjIzNjU4LCAwLjMxOTQ3MSwgMC40MjMwNDEsIDAuNTI2NDk5LCAwLjYyOTk4OCwgMC43MzM0MzgiLCBcCi0gICAgICAgICAgIjAuMTM4NzI4LCAwLjI0NTQ1MywgMC4zMjgzNjYsIDAuNDMxOTEzLCAwLjUzNTQxNywgMC42Mzg4NTcsIDAuNzQyMzEiLCBcCi0gICAgICAgICAgIjAuMTQ5NTE1LCAwLjI1NjE3NCwgMC4zMzkwNzQsIDAuNDQyNjM4LCAwLjU0NjEzOSwgMC42NDk1NzksIDAuNzUzMDU5IiwgXAotICAgICAgICAgICIwLjE1OTY4MiwgMC4yNjYzMzksIDAuMzQ5MjQyLCAwLjQ1MjgwNCwgMC41NTYzMDYsIDAuNjU5NzQ3LCAwLjc2MzIyNiIsIFwKLSAgICAgICAgICAiMC4xNjkwNDUsIDAuMjc1NzA1LCAwLjM1ODYwNywgMC40NjIxNTMsIDAuNTY1NjY5LCAwLjY2OTE0MiwgMC43NzI2MjgiLCBcCi0gICAgICAgICAgIjAuMTgyMzEsIDAuMjg4OTQ0LCAwLjM3MTg3OCwgMC40NzU0MTMsIDAuNTc4OTE4LCAwLjY4MjM1NywgMC43ODU4MTEiLCBcCi0gICAgICAgICAgIjAuMTkyNjM0LCAwLjI5OTM2OCwgMC4zODIyNTksIDAuNDg1ODIzLCAwLjU4OTM0LCAwLjY5Mjc3NywgMC43OTYyMjMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU5NTg4LCAwLjI2MjIyOCwgMC40Mjg5MDcsIDAuNjM3MDcxLCAwLjg0ODI0MiwgMS4wNTgyMywgMS4yNjczNSIsIFwKLSAgICAgICAgICAiMC4wNTk2MzQsIDAuMjYyMTg3LCAwLjQyOTI1OCwgMC42MzcwMDQsIDAuODQ4MjE1LCAxLjA1ODEyLCAxLjI2NzY4IiwgXAotICAgICAgICAgICIwLjA1OTYzOCwgMC4yNjIxOSwgMC40MjkxNTksIDAuNjM3MDg1LCAwLjg0ODIwNiwgMS4wNTgwOCwgMS4yNjgxOCIsIFwKLSAgICAgICAgICAiMC4wNTk2NCwgMC4yNjIxNTYsIDAuNDI5MTYsIDAuNjM2OTk0LCAwLjg0ODE1NywgMS4wNTgwNywgMS4yNjgxOCIsIFwKLSAgICAgICAgICAiMC4wNTk2MzMsIDAuMjYyMDgxLCAwLjQyOTE0NSwgMC42Mzg1MjEsIDAuODQ4MjIsIDEuMDU4MTcsIDEuMjY3OTgiLCBcCi0gICAgICAgICAgIjAuMDU5Njg3LCAwLjI2MjE1MiwgMC40MjkzNDMsIDAuNjM3MDA1LCAwLjg0ODEyNywgMS4wNTgxNiwgMS4yNjcxIiwgXAotICAgICAgICAgICIwLjA1OTYzNywgMC4yNjIzMTMsIDAuNDI4OTgxLCAwLjYzNzg4NywgMC44NDgxNjksIDEuMDU4MTYsIDEuMjY3NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMjcxMTIsIDAuMjMwODU2LCAwLjMxMjAxNywgMC40MTM0MDgsIDAuNTE0NzM2LCAwLjYxNjA0MywgMC43MTczNiIsIFwKLSAgICAgICAgICAiMC4xMzU1MDksIDAuMjM5MjkzLCAwLjMyMDQzMywgMC40MjE4NTQsIDAuNTIzMjI2LCAwLjYyNDU1NywgMC43MjU3NjYiLCBcCi0gICAgICAgICAgIjAuMTQ1MTc4LCAwLjI0ODk1OCwgMC4zMzAxMjQsIDAuNDMxNTI1LCAwLjUzMjg0NiwgMC42MzQxMjksIDAuNzM1NDUyIiwgXAotICAgICAgICAgICIwLjE1NDI4MywgMC4yNTgwODYsIDAuMzM5MjMxLCAwLjQ0MDYzNiwgMC41NDIwMTksIDAuNjQzMzI4LCAwLjc0NDU2NCIsIFwKLSAgICAgICAgICAiMC4xNjI1MzUsIDAuMjY2MzY5LCAwLjM0NzU0NCwgMC40NDg5MzQsIDAuNTUwMzAzLCAwLjY1MTU0NCwgMC43NTI4NTgiLCBcCi0gICAgICAgICAgIjAuMTczODY1LCAwLjI3NzYyNywgMC4zNTg4MTUsIDAuNDYwMjM4LCAwLjU2MTUxNSwgMC42NjI4MDYsIDAuNzY0MTI3IiwgXAotICAgICAgICAgICIwLjE4Mjc0OCwgMC4yODY1MzQsIDAuMzY3Njc5LCAwLjQ2OTA1NiwgMC41NzA0MDMsIDAuNjcxNzA0LCAwLjc3MzAxNyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTg1NjksIDAuMjYwNzAyLCAwLjQyNzA0NCwgMC42MzU4NTUsIDAuODQ0ODMyLCAxLjA1MjY3LCAxLjI2MzA0IiwgXAotICAgICAgICAgICIwLjA1ODU2NCwgMC4yNjA2NTUsIDAuNDI3MDU0LCAwLjYzNTkxMiwgMC44NDUwMjUsIDEuMDU0MTUsIDEuMjYxNTUiLCBcCi0gICAgICAgICAgIjAuMDU4NTI0LCAwLjI2MDY2MiwgMC40MjYzNTQsIDAuNjM0ODY4LCAwLjg0NDg2MywgMS4wNTM5MSwgMS4yNjE2OCIsIFwKLSAgICAgICAgICAiMC4wNTg1ODQsIDAuMjYwODg1LCAwLjQyNzA0MSwgMC42MzU4NjMsIDAuODQ1MDA1LCAxLjA1NDA2LCAxLjI2MTU0IiwgXAotICAgICAgICAgICIwLjA1ODU1OSwgMC4yNjA2NTcsIDAuNDI3MTc0LCAwLjYzNDgzNiwgMC44NDQ5OTcsIDEuMDUzODcsIDEuMjYxNzciLCBcCi0gICAgICAgICAgIjAuMDU4NjgxLCAwLjI2MDY3MywgMC40MjcxNjMsIDAuNjM0NzkyLCAwLjg0NDg0MywgMS4wNTM1MSwgMS4yNjE2NyIsIFwKLSAgICAgICAgICAiMC4wNTg2MTIsIDAuMjYwNTQ4LCAwLjQyNzAwNiwgMC42MzU3NDgsIDAuODQ0NzI0LCAxLjA1MjU2LCAxLjI2MTQ3Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEyODU1MiwgMC4yMzUyNSwgMC4zMTgxNTQsIDAuNDIxNzA4LCAwLjUyNTIwNCwgMC42Mjg2NDQsIDAuNzMyMSIsIFwKLSAgICAgICAgICAiMC4xMzczNTQsIDAuMjQzOTkzLCAwLjMyNjg4MywgMC40MzA0NDcsIDAuNTMzOTE0LCAwLjYzNzQxLCAwLjc0MDgzNCIsIFwKLSAgICAgICAgICAiMC4xNDgwNzUsIDAuMjU0Njk3LCAwLjMzNzYwNSwgMC40NDExNjYsIDAuNTQ0NjYsIDAuNjQ4MSwgMC43NTE1OTkiLCBcCi0gICAgICAgICAgIjAuMTU4MjExLCAwLjI2NDkxNiwgMC4zNDc4MTksIDAuNDUxMzY4LCAwLjU1NDg4MywgMC42NTgzMjIsIDAuNzYxNzY2IiwgXAotICAgICAgICAgICIwLjE2NzU3LCAwLjI3NDIwNSwgMC4zNTcxMDQsIDAuNDYwNjQ3LCAwLjU2NDE2MywgMC42Njc2MDUsIDAuNzcxMDciLCBcCi0gICAgICAgICAgIjAuMTgwNjIyLCAwLjI4NzI3NCwgMC4zNzAxNjcsIDAuNDczNzY1LCAwLjU3NzI3MiwgMC42ODA3NDEsIDAuNzg0MTI1IiwgXAotICAgICAgICAgICIwLjE5MDk4OCwgMC4yOTc2NjYsIDAuMzgwNTUzLCAwLjQ4NDExNCwgMC41ODc2MzMsIDAuNjkxMDcsIDAuNzk0NTExIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1OTQ5NCwgMC4yNjIyMzUsIDAuNDI5MjI3LCAwLjYzNzE3MSwgMC44NDgyNTksIDEuMDU4MTYsIDEuMjY3NCIsIFwKLSAgICAgICAgICAiMC4wNTk1OTEsIDAuMjYyNTAyLCAwLjQyOTEwNCwgMC42Mzc3MSwgMC44NDgyMzcsIDEuMDU4MjEsIDEuMjY3OTYiLCBcCi0gICAgICAgICAgIjAuMDU5NDk2LCAwLjI2MjU3MywgMC40MjkxMjcsIDAuNjM3MTY3LCAwLjg0ODE5MiwgMS4wNTgwNCwgMS4yNjgxNSIsIFwKLSAgICAgICAgICAiMC4wNTk2MiwgMC4yNjIwOTcsIDAuNDI5MTYyLCAwLjYzNzg2MSwgMC44NDgxMywgMS4wNTgxNSwgMS4yNjc1MyIsIFwKLSAgICAgICAgICAiMC4wNTk2MDIsIDAuMjYyMDg1LCAwLjQyOTEyMSwgMC42MzgxNjQsIDAuODQ4MTU4LCAxLjA1ODAzLCAxLjI2NjgiLCBcCi0gICAgICAgICAgIjAuMDU5NzEzLCAwLjI2MjU0OCwgMC40MjkxMjQsIDAuNjM2OTM1LCAwLjg0NTc4MSwgMS4wNTgwNCwgMS4yNjc4OSIsIFwKLSAgICAgICAgICAiMC4wNTk2MjksIDAuMjYyMjg3LCAwLjQyODkyNSwgMC42Mzc3MjQsIDAuODQ4MTIxLCAxLjA1ODE1LCAxLjI2NzM3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5ODgwOCwgMC4yMDI1OTUsIDAuMjgzNzY5LCAwLjM4NTE4NywgMC40ODY1MDIsIDAuNTg3ODM4LCAwLjY4OTI2OCIsIFwKLSAgICAgICAgICAiMC4xMDg0MTMsIDAuMjEyMjI1LCAwLjI5MzM3OSwgMC4zOTQ4MDEsIDAuNDk2MTgxLCAwLjU5NzU0NSwgMC42OTg3NCIsIFwKLSAgICAgICAgICAiMC4xMTgxNTksIDAuMjIxOTkxLCAwLjMwMzE0NSwgMC40MDQ1NDcsIDAuNTA1OTQsIDAuNjA3Mjg1LCAwLjcwODUwNiIsIFwKLSAgICAgICAgICAiMC4xMjU3MTcsIDAuMjI5NjE4LCAwLjMxMDgwMywgMC40MTIyNDUsIDAuNTEzNTMsIDAuNjE0ODI5LCAwLjcxNjE1NiIsIFwKLSAgICAgICAgICAiMC4xMzE5NzYsIDAuMjM1NzQ1LCAwLjMxNjkyLCAwLjQxODMyMiwgMC41MTk2NTUsIDAuNjIwOTcyLCAwLjcyMjM0OSIsIFwKLSAgICAgICAgICAiMC4xNDA0MzMsIDAuMjQ0MjUsIDAuMzI1NDU4LCAwLjQyNjg3NCwgMC41MjgxNjksIDAuNjI5NDUyLCAwLjczMDc4NSIsIFwKLSAgICAgICAgICAiMC4xNDY2OTksIDAuMjUwNTg3LCAwLjMzMTc0NCwgMC40MzMxNzYsIDAuNTM0NDk2LCAwLjYzNTg1LCAwLjczNzExIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1ODM2OCwgMC4yNjA2NzgsIDAuNDI3MDQsIDAuNjM1OTIyLCAwLjg0NDg3MywgMS4wNTQsIDEuMjYwMzgiLCBcCi0gICAgICAgICAgIjAuMDU4MzU5LCAwLjI2MDYzLCAwLjQyNzA0NywgMC42MzU5MjMsIDAuODQ1MDMyLCAxLjA1MjIxLCAxLjI2MTY4IiwgXAotICAgICAgICAgICIwLjA1ODM3LCAwLjI2MDYyNSwgMC40MjcwMzYsIDAuNjM1ODY4LCAwLjg0NTAwMywgMS4wNTQxNiwgMS4yNjE2NyIsIFwKLSAgICAgICAgICAiMC4wNTgyODEsIDAuMjYwNjEzLCAwLjQyNzIwOCwgMC42MzQ2OTMsIDAuODQ0ODgxLCAxLjA1MzU3LCAxLjI2MTU2IiwgXAotICAgICAgICAgICIwLjA1ODQyOCwgMC4yNjA2NjgsIDAuNDI2OTk3LCAwLjYzNTEzNCwgMC44NDQ4MzksIDEuMDUyODEsIDEuMjYzMzMiLCBcCi0gICAgICAgICAgIjAuMDU4MzQyLCAwLjI2MDcyNCwgMC40MjcxNjgsIDAuNjM0Nzk3LCAwLjg0NDc3NywgMS4wNTM4LCAxLjI2MTc1IiwgXAotICAgICAgICAgICIwLjA1ODUxMSwgMC4yNjA2NCwgMC40MjY5NjYsIDAuNjM1ODc1LCAwLjg0NDczMywgMS4wNTM4OCwgMS4yNjE3MyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDMyNSwgMC4yMDk5OTYsIDAuMjkyODg4LCAwLjM5NjQ2MSwgMC40OTk5OTQsIDAuNjAzNDA0LCAwLjcwNjg1OCIsIFwKLSAgICAgICAgICAiMC4xMTMyNTEsIDAuMjE5OTk5LCAwLjMwMjksIDAuNDA2NDQ4LCAwLjUwOTk1MiwgMC42MTM0MjQsIDAuNzE2ODc3IiwgXAotICAgICAgICAgICIwLjEyMzcxOSwgMC4yMzA0MzksIDAuMzEzMzUsIDAuNDE2OTE1LCAwLjUyMDQyOCwgMC42MjM4NywgMC43MjczNTkiLCBcCi0gICAgICAgICAgIjAuMTMxOTc1LCAwLjIzODcyNSwgMC4zMjE2NDIsIDAuNDI1MTk5LCAwLjUyODcyNCwgMC42MzIxNjMsIDAuNzM1NjA5IiwgXAotICAgICAgICAgICIwLjEzODg3MiwgMC4yNDU2MTcsIDAuMzI4NTM0LCAwLjQzMjA5NiwgMC41MzU2MDIsIDAuNjM5MDQ2LCAwLjc0MjQ4OSIsIFwKLSAgICAgICAgICAiMC4xNDg1MDcsIDAuMjU1Mjg2LCAwLjMzODE3OSwgMC40NDE3NTEsIDAuNTQ1MjcyLCAwLjY0ODcxLCAwLjc1MjE1NyIsIFwKLSAgICAgICAgICAiMC4xNTU3ODcsIDAuMjYyNTUzLCAwLjM0NTQ2OSwgMC40NDkwMTIsIDAuNTUyNTE1LCAwLjY1NjA2OCwgMC43NTk0MzgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU5NzIxLCAwLjI2MjI2MiwgMC40MjkxODcsIDAuNjM3Nzg1LCAwLjg0ODE4NSwgMS4wNTgyLCAxLjI2ODA5IiwgXAotICAgICAgICAgICIwLjA1OTcxNiwgMC4yNjIzNzMsIDAuNDI5MTY0LCAwLjYzODUzMywgMC44NDY5MTEsIDEuMDU2MzksIDEuMjY4MDIiLCBcCi0gICAgICAgICAgIjAuMDU5NzIzLCAwLjI2MjIxNywgMC40MjkxOTQsIDAuNjM3NTY1LCAwLjg0ODE0MiwgMS4wNTgxLCAxLjI2ODE1IiwgXAotICAgICAgICAgICIwLjA1OTY2NCwgMC4yNjIyMTQsIDAuNDI4Njc0LCAwLjYzNzcwMiwgMC44NDgxMDksIDEuMDU4MTIsIDEuMjY3NTUiLCBcCi0gICAgICAgICAgIjAuMDU5NzM2LCAwLjI2MjI5MiwgMC40MjkyMSwgMC42MzcwNjcsIDAuODQ4MTY1LCAxLjA1ODEyLCAxLjI2Nzg3IiwgXAotICAgICAgICAgICIwLjA1OTcyNCwgMC4yNjI2NTMsIDAuNDI5MTg2LCAwLjYzNzc0NCwgMC44NDgxMTEsIDEuMDU4MjEsIDEuMjY3ODkiLCBcCi0gICAgICAgICAgIjAuMDU5NzMsIDAuMjYyNjI2LCAwLjQyODc0MiwgMC42Mzg1NTksIDAuODQ4MTk1LCAxLjA1NTk0LCAxLjI2OCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTM1NDU5LCAwLjIzOTIzOCwgMC4zMjA0MDcsIDAuNDIxODQ3LCAwLjUyMzEwNSwgMC42MjQ0MDUsIDAuNzI1NzI4IiwgXAotICAgICAgICAgICIwLjE0NTU5MywgMC4yNDkyOTksIDAuMzMwNDU3LCAwLjQzMTg1NCwgMC41MzMxNTQsIDAuNjM0NDc0LCAwLjczNTc3NyIsIFwKLSAgICAgICAgICAiMC4xNTYyODEsIDAuMjYwMDU1LCAwLjM0MTIzNCwgMC40NDI2MTgsIDAuNTQzOTUzLCAwLjY0NTIyNiwgMC43NDY1NDIiLCBcCi0gICAgICAgICAgIjAuMTY0ODMsIDAuMjY4NjI3LCAwLjM0OTc0MiwgMC40NTExNzYsIDAuNTUyNDYzLCAwLjY1Mzg0LCAwLjc1NTA5OSIsIFwKLSAgICAgICAgICAiMC4xNzE5MjQsIDAuMjc1NzAxLCAwLjM1Njg3OCwgMC40NTgyMTEsIDAuNTU5NjU3LCAwLjY2MDgzLCAwLjc2MjE4OCIsIFwKLSAgICAgICAgICAiMC4xODE3MDcsIDAuMjg1MjUsIDAuMzY2NDExLCAwLjQ2Nzc5NSwgMC41NjkzODIsIDAuNjcwNjAyLCAwLjc3MTkxNSIsIFwKLSAgICAgICAgICAiMC4xODkxNTksIDAuMjkyOTg3LCAwLjM3NDE1NiwgMC40NzU1NDIsIDAuNTc2ODQ3LCAwLjY3ODE2LCAwLjc3OTQyIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1ODU5LCAwLjI2MDY3MiwgMC40MjcyMDIsIDAuNjM0Njk3LCAwLjg0Mzk3NiwgMS4wNTM5NiwgMS4yNjE2OSIsIFwKLSAgICAgICAgICAiMC4wNTg1NjcsIDAuMjYwNjYyLCAwLjQyNzE0NSwgMC42MzQ4NzYsIDAuODQzNzc1LCAxLjA1MzkyLCAxLjI2MTY3IiwgXAotICAgICAgICAgICIwLjA1ODU4NSwgMC4yNjA2NjIsIDAuNDI3MTg2LCAwLjYzNDg0MiwgMC44NDM1NTQsIDEuMDUzOTEsIDEuMjYxOCIsIFwKLSAgICAgICAgICAiMC4wNTg1NjEsIDAuMjYwOTI0LCAwLjQyNzA0NCwgMC42MzQ4NSwgMC44NDQ4MzQsIDEuMDUzOTUsIDEuMjYxNTkiLCBcCi0gICAgICAgICAgIjAuMDU4NTkyLCAwLjI2MDY2NSwgMC40MjcxODUsIDAuNjM0MTAxLCAwLjg0MzU3MiwgMS4wNTM5MiwgMS4yNjE3OSIsIFwKLSAgICAgICAgICAiMC4wNTg2MDUsIDAuMjYwNzI0LCAwLjQyNzA0NiwgMC42MzUxNjUsIDAuODQzNDQxLCAxLjA1MzksIDEuMjYzMTQiLCBcCi0gICAgICAgICAgIjAuMDU4NTQ0LCAwLjI2MDcyNCwgMC40MjcxMjYsIDAuNjM0ODcsIDAuODQ0NzE3LCAxLjA1Mzc3LCAxLjI2MjkzIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEzODg2NCwgMC4yNDU1NjcsIDAuMzI4NDY1LCAwLjQzMjAyMSwgMC41MzU1MzMsIDAuNjM4OTcsIDAuNzQyNDE5IiwgXAotICAgICAgICAgICIwLjE0ODU1NiwgMC4yNTUyNTksIDAuMzM4MTU2LCAwLjQ0MTcxMiwgMC41NDUyMjQsIDAuNjQ4NjYxLCAwLjc1MjExIiwgXAotICAgICAgICAgICIwLjE1ODc4OCwgMC4yNjU0NiwgMC4zNDgzNTYsIDAuNDUxOTI3LCAwLjU1NTQxNCwgMC42NTg4NTUsIDAuNzYyMzg2IiwgXAotICAgICAgICAgICIwLjE2NjI5MSwgMC4yNzMwMzYsIDAuMzU1OTYyLCAwLjQ1OTQ5MywgMC41NjI5OTksIDAuNjY2NDM4LCAwLjc2OTg4OSIsIFwKLSAgICAgICAgICAiMC4xNzI2NSwgMC4yNzkzNTksIDAuMzYyMjYsIDAuNDY1ODIsIDAuNTY5MzIyLCAwLjY3Mjc2MiwgMC43NzYyNCIsIFwKLSAgICAgICAgICAiMC4xODEyODEsIDAuMjg3ODM0LCAwLjM3MDcxOSwgMC40NzQzODEsIDAuNTc3ODg0LCAwLjY4MTMyNCwgMC43ODQ3NzgiLCBcCi0gICAgICAgICAgIjAuMTg3NzM0LCAwLjI5NDQ0OCwgMC4zNzczNjksIDAuNDgwOTA1LCAwLjU4NDQxLCAwLjY4Nzg0NywgMC43OTEzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1OTY1NSwgMC4yNjIxNiwgMC40Mjg1OTcsIDAuNjM3NzA5LCAwLjg0ODE4NywgMS4wNTgxNSwgMS4yNjc2IiwgXAotICAgICAgICAgICIwLjA1OTY1NSwgMC4yNjIxNTgsIDAuNDI4NTc3LCAwLjYzNzc5MywgMC44NDgxNzcsIDEuMDU4MTIsIDEuMjY3NTkiLCBcCi0gICAgICAgICAgIjAuMDU5NTUyLCAwLjI2MjMzNCwgMC40MjkxMzYsIDAuNjM3NDcsIDAuODQ4MjQ4LCAxLjA1ODA4LCAxLjI2ODA3IiwgXAotICAgICAgICAgICIwLjA1OTQ1OSwgMC4yNjIxNjQsIDAuNDI4MDk5LCAwLjYzNjk1NCwgMC44NDgyMDIsIDEuMDU4MTIsIDEuMjY3NjMiLCBcCi0gICAgICAgICAgIjAuMDU5NjMsIDAuMjYyMTg2LCAwLjQyOTE1OSwgMC42MzcwNDcsIDAuODQ4MTU2LCAxLjA1ODA4LCAxLjI2ODE3IiwgXAotICAgICAgICAgICIwLjA1OTczMSwgMC4yNjIxNjYsIDAuNDI5MTU1LCAwLjYzNzAwNywgMC44NDgxNTQsIDEuMDU4MTUsIDEuMjY3NTEiLCBcCi0gICAgICAgICAgIjAuMDU5NjI5LCAwLjI2MjM5NSwgMC40MjkzMTMsIDAuNjM3NTY5LCAwLjg0ODIwNywgMS4wNTgxMiwgMS4yNjc5MSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTIwNjgsIDAuMjI0NTM2LCAwLjMwNTcsIDAuNDA3MDc0LCAwLjUwODQyMSwgMC42MDk3MjgsIDAuNzExMDUyIiwgXAotICAgICAgICAgICIwLjEyOTM2LCAwLjIzMzE0NiwgMC4zMTQzMTQsIDAuNDE1NzA5LCAwLjUxNzAyMywgMC42MTg0MiwgMC43MTk2MzQiLCBcCi0gICAgICAgICAgIjAuMTQwNTkxLCAwLjI0NDQyOSwgMC4zMjU2MTcsIDAuNDI2OTksIDAuNTI4MTY0LCAwLjYyOTYwMywgMC43MzA5MTgiLCBcCi0gICAgICAgICAgIjAuMTUxMDU1LCAwLjI1NDk0NSwgMC4zMzYxMTIsIDAuNDM3NDk3LCAwLjUzODc3MywgMC42NDAwNTUsIDAuNzQxMzgzIiwgXAotICAgICAgICAgICIwLjE2MDI1MSwgMC4yNjQwMjksIDAuMzQ1MTcyLCAwLjQ0NjU2OSwgMC41NDc5NDcsIDAuNjQ5MjY2LCAwLjc1MDUzMSIsIFwKLSAgICAgICAgICAiMC4xNzI0OTEsIDAuMjc2MjQxLCAwLjM1NzQwNCwgMC40NTg4NTUsIDAuNTYwMTMzLCAwLjY2MTQyNywgMC43NjI3NDIiLCBcCi0gICAgICAgICAgIjAuMTgxNzg5LCAwLjI4NTcxLCAwLjM2Njg2LCAwLjQ2ODE3OCwgMC41Njk1MDIsIDAuNjcwODY4LCAwLjc3MjE5MiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTg1NDUsIDAuMjYwNzIzLCAwLjQyNzA1NiwgMC42MzU4NCwgMC44NDQ4NDcsIDEuMDUyNjksIDEuMjYxNjQiLCBcCi0gICAgICAgICAgIjAuMDU4NjA0LCAwLjI2MDY3NywgMC40MjcxODgsIDAuNjM0ODg0LCAwLjg0NDg0LCAxLjA1NDE3LCAxLjI2MTc1IiwgXAotICAgICAgICAgICIwLjA1ODU5OSwgMC4yNjA2OCwgMC40MjcyMTcsIDAuNjM0MDY3LCAwLjg0Mjg3NiwgMS4wNTM5MiwgMS4yNjE3OSIsIFwKLSAgICAgICAgICAiMC4wNTg1NzQsIDAuMjYwNzMsIDAuNDI3MDY1LCAwLjYzNDcwNCwgMC44NDQ4NjgsIDEuMDUzOTEsIDEuMjYxNjEiLCBcCi0gICAgICAgICAgIjAuMDU4NTkyLCAwLjI2MDg1OSwgMC40MjcwNSwgMC42MzUwMzMsIDAuODQ0OTE5LCAxLjA1NDAxLCAxLjI2MzA3IiwgXAotICAgICAgICAgICIwLjA1ODczNiwgMC4yNjA3MDcsIDAuNDI3MDcyLCAwLjYzNDgwNSwgMC44NDQ4NDEsIDEuMDUzNTUsIDEuMjYxNzkiLCBcCi0gICAgICAgICAgIjAuMDU4NjYzLCAwLjI2MDk2OCwgMC40MjY2MTcsIDAuNjM0ODY1LCAwLjg0NDc0NiwgMS4wNTM3OCwgMS4yNjE2MiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMjI1NjQsIDAuMjI5MywgMC4zMTIyMDQsIDAuNDE1NzYxLCAwLjUxOTI1NCwgMC42MjI2OTQsIDAuNzI2MTUxIiwgXAotICAgICAgICAgICIwLjEzMTU1NiwgMC4yMzgyNTYsIDAuMzIxMTUxLCAwLjQyNDcxMywgMC41MjgyMTcsIDAuNjMxNjU2LCAwLjczNTEwOCIsIFwKLSAgICAgICAgICAiMC4xNDMxODMsIDAuMjQ5ODk1LCAwLjMzMjc5NiwgMC40MzYzNDYsIDAuNTM5ODYyLCAwLjY0MzI5OSwgMC43NDY3NDUiLCBcCi0gICAgICAgICAgIjAuMTU0MDksIDAuMjYwNzg0LCAwLjM0MzY3OCwgMC40NDcyMzksIDAuNTUwNzUxLCAwLjY1NDE4OSwgMC43NTc2NCIsIFwKLSAgICAgICAgICAiMC4xNjM2ODIsIDAuMjcwMzUyLCAwLjM1MzI0MywgMC40NTY3ODUsIDAuNTYwMjkzLCAwLjY2Mzc1OCwgMC43NjcxOTkiLCBcCi0gICAgICAgICAgIjAuMTc2ODUzLCAwLjI4MzUsIDAuMzY2Mzk2LCAwLjQ2OTk2OSwgMC41NzM0OTksIDAuNjc2OTYxLCAwLjc4MDM1NSIsIFwKLSAgICAgICAgICAiMC4xODY5MjksIDAuMjkzNjMxLCAwLjM3NjUyNywgMC40ODAwODYsIDAuNTgzNTUzLCAwLjY4NzA0MSwgMC43OTA0NzciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU5NiwgMC4yNjIyNjUsIDAuNDI5MjA5LCAwLjYzNzIxMSwgMC44NDgyNzQsIDEuMDU4MTYsIDEuMjY3NzMiLCBcCi0gICAgICAgICAgIjAuMDU5NjI2LCAwLjI2MjE1NSwgMC40MjkxNDgsIDAuNjM2OTgsIDAuODQ4MTk3LCAxLjA1ODE0LCAxLjI2NzYxIiwgXAotICAgICAgICAgICIwLjA1OTYyMSwgMC4yNjIxMzIsIDAuNDI5MTY1LCAwLjYzNzc1NSwgMC44NDgxNDMsIDEuMDU4MTUsIDEuMjY3NTMiLCBcCi0gICAgICAgICAgIjAuMDU5NjIzLCAwLjI2MjA5OCwgMC40MjkxMDksIDAuNjM3NzU1LCAwLjg0ODE2NiwgMS4wNTgxLCAxLjI2NzU3IiwgXAotICAgICAgICAgICIwLjA1OTU5OSwgMC4yNjIyODcsIDAuNDI5MTE2LCAwLjYzODQ0OCwgMC44NDcxNjcsIDEuMDU2NCwgMS4yNjc4NyIsIFwKLSAgICAgICAgICAiMC4wNTk3MzksIDAuMjYyNTUsIDAuNDI5MTA4LCAwLjYzODU3MiwgMC44NDYwNjcsIDEuMDU4MDYsIDEuMjY3OTMiLCBcCi0gICAgICAgICAgIjAuMDU5NjA1LCAwLjI2MjM0NCwgMC40Mjg0NTEsIDAuNjM3NjM2LCAwLjg0ODE2OCwgMS4wNTgxMywgMS4yNjc4OCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTMSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc4NDgsIDAuMTgyMjI4LCAwLjI2MzQsIDAuMzY0ODQzLCAwLjQ2NjEzMywgMC41Njc0MzUsIDAuNjY4NzY3IiwgXAotICAgICAgICAgICIwLjA4NzU0LCAwLjE5MTMzOSwgMC4yNzI1MTMsIDAuMzczOTA5LCAwLjQ3NTI0NSwgMC41NzY1NjUsIDAuNjc3OTMzIiwgXAotICAgICAgICAgICIwLjA5OTE2MiwgMC4yMDI5ODQsIDAuMjg0MTYzLCAwLjM4NTYxLCAwLjQ4NjkwMiwgMC41ODgyMiwgMC42ODk1NTIiLCBcCi0gICAgICAgICAgIjAuMTEwOTQ4LCAwLjIxNDc0OSwgMC4yOTU5MzUsIDAuMzk3MzQ3LCAwLjQ5ODY4MSwgMC41OTk5OTYsIDAuNzAxMzQyIiwgXAotICAgICAgICAgICIwLjEyMjIyNiwgMC4yMjYxNTEsIDAuMzA3MzI5LCAwLjQwODcyNSwgMC41MTAwNzYsIDAuNjExMzkxLCAwLjcxMjczIiwgXAotICAgICAgICAgICIwLjEzODU3MiwgMC4yNDI2MTMsIDAuMzIzODEzLCAwLjQyNTE5OSwgMC41MjY1MywgMC42Mjc4NDgsIDAuNzI5MTUiLCBcCi0gICAgICAgICAgIjAuMTUxMjA1LCAwLjI1NTQxMywgMC4zMzY1NTgsIDAuNDM4LCAwLjUzOTM0NSwgMC42NDA2MjEsIDAuNzQxOTIiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU4MjkyLCAwLjI2MDQzMiwgMC40MjcxNDEsIDAuNjM2MDI4LCAwLjg0NDkwNCwgMS4wNTM2MiwgMS4yNjE1NyIsIFwKLSAgICAgICAgICAiMC4wNTgzMSwgMC4yNjA2NzcsIDAuNDI3MDMsIDAuNjM1MTA5LCAwLjg0NDc0MSwgMS4wNTI3NSwgMS4yNjExOSIsIFwKLSAgICAgICAgICAiMC4wNTgzNDgsIDAuMjYwNjU2LCAwLjQyNjk4OSwgMC42MzU4NjYsIDAuODQ0ODM0LCAxLjA1Mjc1LCAxLjI2MzA5IiwgXAotICAgICAgICAgICIwLjA1ODQ5LCAwLjI2MDY2NywgMC40MjY5OTMsIDAuNjM1MDM4LCAwLjg0NDc1MSwgMS4wNTI3MiwgMS4yNjI5OCIsIFwKLSAgICAgICAgICAiMC4wNTkwMTEsIDAuMjYwNTM4LCAwLjQyNzAzNCwgMC42MzU1NzYsIDAuODQ0NzQsIDEuMDUyNjYsIDEuMjYxNDgiLCBcCi0gICAgICAgICAgIjAuMDYwNzQzLCAwLjI2MTAxNiwgMC40MjcyNzksIDAuNjM1MDQxLCAwLjg0NDc0NSwgMS4wNTM4LCAxLjI2MTU2IiwgXAotICAgICAgICAgICIwLjA2MjYxNiwgMC4yNjE0ODEsIDAuNDI3MjY1LCAwLjYzNTk0OCwgMC44NDQ4NTgsIDEuMDUzODEsIDEuMjYxNTYiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDgxOTM3LCAwLjE4ODYwMywgMC4yNzE1MDIsIDAuMzc1MDM1LCAwLjQ3ODU1OCwgMC41ODIsIDAuNjg1NDY2IiwgXAotICAgICAgICAgICIwLjA5MDc5MSwgMC4xOTc0NjcsIDAuMjgwMzY3LCAwLjM4MzkxMiwgMC40ODc0MjUsIDAuNTkwODY3LCAwLjY5NDMzIiwgXAotICAgICAgICAgICIwLjEwMjE3NiwgMC4yMDg4NTcsIDAuMjkxNzYsIDAuMzk1MzcyLCAwLjQ5ODg3NiwgMC42MDIzNjIsIDAuNzA1NzI2IiwgXAotICAgICAgICAgICIwLjExMzUzMSwgMC4yMjAyMTQsIDAuMzAzMTI4LCAwLjQwNjY4LCAwLjUxMDIwMiwgMC42MTM2NzQsIDAuNzE3MTQ3IiwgXAotICAgICAgICAgICIwLjEyNDQwMywgMC4yMzExMjgsIDAuMzE0MDcyLCAwLjQxNzY0NSwgMC41MjExNiwgMC42MjQ2MDIsIDAuNzI4MDU3IiwgXAotICAgICAgICAgICIwLjEzOTgzLCAwLjI0NjY2NywgMC4zMjk1OTYsIDAuNDMzMTUzLCAwLjUzNjcwNiwgMC42NDAxMjUsIDAuNzQzNTcyIiwgXAotICAgICAgICAgICIwLjE1MTQ0NiwgMC4yNTg3MDcsIDAuMzQxNTk2LCAwLjQ0NTE2NSwgMC41NDg3MDksIDAuNjUyMTA0LCAwLjc1NTU2NyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTk1MTMsIDAuMjYyMTI0LCAwLjQyOTExNSwgMC42Mzg0NDcsIDAuODQ4MjA5LCAxLjA1ODA1LCAxLjI2Nzk4IiwgXAotICAgICAgICAgICIwLjA1OTUyNSwgMC4yNjIxNDIsIDAuNDI5MTE1LCAwLjYzODExMSwgMC44NDgyMjUsIDEuMDU4MDQsIDEuMjY3NiIsIFwKLSAgICAgICAgICAiMC4wNTk1NTMsIDAuMjYyNTg5LCAwLjQyOTExNCwgMC42MzcxNDUsIDAuODQ2MzY1LCAxLjA1NTg2LCAxLjI2NzkyIiwgXAotICAgICAgICAgICIwLjA1OTcwMiwgMC4yNjIxNjgsIDAuNDI5MTIxLCAwLjYzODQ3OCwgMC44NDgxOTQsIDEuMDU4MjEsIDEuMjY4MTUiLCBcCi0gICAgICAgICAgIjAuMDYwMTgzLCAwLjI2MjIzNiwgMC40MjkyNzcsIDAuNjM3NDU5LCAwLjg0ODIwMywgMS4wNTgxMSwgMS4yNjc0NSIsIFwKLSAgICAgICAgICAiMC4wNjE3MjksIDAuMjYzMDIsIDAuNDI5MzE4LCAwLjYzODY1MywgMC44NDgxNzMsIDEuMDU4MTUsIDEuMjY4MTQiLCBcCi0gICAgICAgICAgIjAuMDYzMjg4LCAwLjI2MzI2OCwgMC40Mjg5ODksIDAuNjM4ODI2LCAwLjg0NjIwNSwgMS4wNTgyNCwgMS4yNjc5NiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTMSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk1MDM3LCAwLjE5ODgyLCAwLjI3OTk2OSwgMC4zODEzOCwgMC40ODI3NTYsIDAuNTg0MTI3LCAwLjY4NTMxNCIsIFwKLSAgICAgICAgICAiMC4xMDQ5MSwgMC4yMDg3MzMsIDAuMjg5ODk5LCAwLjM5MTM1MSwgMC40OTI2MzEsIDAuNTkzOTI4LCAwLjY5NTI0NSIsIFwKLSAgICAgICAgICAiMC4xMTUxNDMsIDAuMjE4OTI3LCAwLjMwMDA5NCwgMC40MDE0NzgsIDAuNTAyODIyLCAwLjYwNDEzLCAwLjcwNTQ1OSIsIFwKLSAgICAgICAgICAiMC4xMjM1MzMsIDAuMjI3MjYyLCAwLjMwODQ1NCwgMC40MDk4OCwgMC41MTExNjEsIDAuNjEyNDUyLCAwLjcxMzc3NiIsIFwKLSAgICAgICAgICAiMC4xMjk5MzEsIDAuMjMzNzE3LCAwLjMxNDg4NSwgMC40MTYzMzYsIDAuNTE3NjE3LCAwLjYxODkxMSwgMC43MjAyMjEiLCBcCi0gICAgICAgICAgIjAuMTM4OTIsIDAuMjQyOTExLCAwLjMyMzk3OSwgMC40MjU0OTUsIDAuNTI2ODg0LCAwLjYyODExNywgMC43Mjk0NzUiLCBcCi0gICAgICAgICAgIjAuMTQ1NTUxLCAwLjI0OTcyNywgMC4zMzA5MjcsIDAuNDMyMzMzLCAwLjUzMzY4LCAwLjYzNDk4MSwgMC43MzYyNzciKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU4NDgyLCAwLjI2MDY0MiwgMC40MjcwNDMsIDAuNjM1ODgsIDAuODQ0OTc2LCAxLjA1MjE2LCAxLjI2MTU3IiwgXAotICAgICAgICAgICIwLjA1ODQ1MywgMC4yNjA2NiwgMC40MjcwNTYsIDAuNjM0NTUyLCAwLjg0NDg0MiwgMS4wNTI1OSwgMS4yNjE3OSIsIFwKLSAgICAgICAgICAiMC4wNTg0NzQsIDAuMjYwNjkxLCAwLjQyNzAzOCwgMC42MzU1NTksIDAuODQ0ODI2LCAxLjA1MjY5LCAxLjI2MTU0IiwgXAotICAgICAgICAgICIwLjA1ODM4OSwgMC4yNjA2NDcsIDAuNDI3MTg5LCAwLjYzNDgwNywgMC44NDQ4NDMsIDEuMDUzNTMsIDEuMjYxNjEiLCBcCi0gICAgICAgICAgIjAuMDU4NTg3LCAwLjI2MDcxNCwgMC40MjcwMzMsIDAuNjM0NzI3LCAwLjg0NDcxOCwgMS4wNTM1LCAxLjI2MTYxIiwgXAotICAgICAgICAgICIwLjA1ODYzNCwgMC4yNjA3MzcsIDAuNDI2OCwgMC42MzUxOTMsIDAuODQ0ODMxLCAxLjA1Mzc4LCAxLjI2Mjg3IiwgXAotICAgICAgICAgICIwLjA1ODcwNiwgMC4yNjA5NzEsIDAuNDI3MTEsIDAuNjM1NzEzLCAwLjg0NDc1MiwgMS4wNTM3NywgMS4yNjE3MyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTg2NDEsIDAuMjA1Mzg3LCAwLjI4ODI5NiwgMC4zOTE4NDcsIDAuNDk1MzU4LCAwLjU5ODgyOCwgMC43MDIyNzYiLCBcCi0gICAgICAgICAgIjAuMTA4ODM1LCAwLjIxNTU1MSwgMC4yOTg0NjEsIDAuNDAyMDI4LCAwLjUwNTU0MSwgMC42MDg5ODMsIDAuNzEyNDc2IiwgXAotICAgICAgICAgICIwLjExOTc5LCAwLjIyNjQ5OSwgMC4zMDk0MTMsIDAuNDEyOTc5LCAwLjUxNjQ5NSwgMC42MTk5MzYsIDAuNzIzNDIyIiwgXAotICAgICAgICAgICIwLjEyODcyNywgMC4yMzU0NjksIDAuMzE4MzY4LCAwLjQyMTk0LCAwLjUyNTQ5LCAwLjYyODkxNCwgMC43MzIzNDQiLCBcCi0gICAgICAgICAgIjAuMTM2MDksIDAuMjQyODEyLCAwLjMyNTcxNSwgMC40MjkyODUsIDAuNTMyODE5LCAwLjYzNjI1OCwgMC43Mzk2OTEiLCBcCi0gICAgICAgICAgIjAuMTQ2MjA5LCAwLjI1MzExOSwgMC4zMzYwNDIsIDAuNDM5NTg3LCAwLjU0MzA3OSwgMC42NDY2MTYsIDAuNzUwMDM4IiwgXAotICAgICAgICAgICIwLjE1MzkzNywgMC4yNjEwNjgsIDAuMzQ0MDEzLCAwLjQ0NzQ2NiwgMC41NTEwNDIsIDAuNjU0NTI4LCAwLjc1Nzk5NiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTk3MTQsIDAuMjYyNjY1LCAwLjQyOTIxOCwgMC42Mzc1MDUsIDAuODQ1OTMzLCAxLjA1Mzk2LCAxLjI2ODA2IiwgXAotICAgICAgICAgICIwLjA1OTcxOCwgMC4yNjIyNTMsIDAuNDI5MTkzLCAwLjYzNzU0NCwgMC44NDgxNiwgMS4wNTgxMSwgMS4yNjgxNCIsIFwKLSAgICAgICAgICAiMC4wNTk3MDUsIDAuMjYyMjM2LCAwLjQyOTE4MywgMC42Mzc2MTMsIDAuODQ4MTM3LCAxLjA1ODEsIDEuMjY4MTciLCBcCi0gICAgICAgICAgIjAuMDU5NjA1LCAwLjI2MjE5OSwgMC40MjkxNiwgMC42Mzc3NTQsIDAuODQ2NjU1LCAxLjA1ODEyLCAxLjI2NzkyIiwgXAotICAgICAgICAgICIwLjA1OTgxOCwgMC4yNjIyNzksIDAuNDI5MTg4LCAwLjYzNzgsIDAuODQ3OTkxLCAxLjA1ODE1LCAxLjI2NzkxIiwgXAotICAgICAgICAgICIwLjA1OTg4MiwgMC4yNjI4MzMsIDAuNDI4NzQ5LCAwLjYzNzY5NCwgMC44NDgyMSwgMS4wNTc5LCAxLjI2NzkiLCBcCi0gICAgICAgICAgIjAuMDU5OTIxLCAwLjI2MjU3NCwgMC40MjkwMjUsIDAuNjM3OTYzLCAwLjg0Nzc2OSwgMS4wNTY0MiwgMS4yNjc2NyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNTMzMiwgMC4wMDUzODEsIDAuMDA1Mzg5LCAwLjAwNTM5MSwgMC4wMDUzOTIsIDAuMDA1Mzk0LCAwLjAwNTM5NiIsIFwKLSAgICAgICAgICAiMC4wMDUzMiwgMC4wMDUzNjgsIDAuMDA1Mzc1LCAwLjAwNTM3OSwgMC4wMDUzODEsIDAuMDA1MzgxLCAwLjAwNTM4MyIsIFwKLSAgICAgICAgICAiMC4wMDUzMTIsIDAuMDA1MzYxLCAwLjAwNTM2NywgMC4wMDUzNzEsIDAuMDA1MzcyLCAwLjAwNTM3NSwgMC4wMDUzNzQiLCBcCi0gICAgICAgICAgIjAuMDA1MzA3LCAwLjAwNTM1NiwgMC4wMDUzNjIsIDAuMDA1MzY2LCAwLjAwNTM2NywgMC4wMDUzNjksIDAuMDA1MzY5IiwgXAotICAgICAgICAgICIwLjAwNTMwNCwgMC4wMDUzNTQsIDAuMDA1MzYxLCAwLjAwNTM2NCwgMC4wMDUzNjcsIDAuMDA1MzY3LCAwLjAwNTM2OSIsIFwKLSAgICAgICAgICAiMC4wMDUzMDQsIDAuMDA1MzU1LCAwLjAwNTM2MiwgMC4wMDUzNjUsIDAuMDA1MzY3LCAwLjAwNTM2OSwgMC4wMDUzNyIsIFwKLSAgICAgICAgICAiMC4wMDUzMDksIDAuMDA1MzU5LCAwLjAwNTM2NiwgMC4wMDUzNywgMC4wMDUzNzIsIDAuMDA1MzcyLCAwLjAwNTM3NCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDE3MSwgMC4wMDQyNTgsIDAuMDA0MjcsIDAuMDA0Mjc3LCAwLjAwNDI4LCAwLjAwNDI4MiwgMC4wMDQyODQiLCBcCi0gICAgICAgICAgIjAuMDA0MTU0LCAwLjAwNDIzOCwgMC4wMDQyNSwgMC4wMDQyNTcsIDAuMDA0MjYsIDAuMDA0MjYyLCAwLjAwNDI2MyIsIFwKLSAgICAgICAgICAiMC4wMDQxNDMsIDAuMDA0MjI3LCAwLjAwNDIzOSwgMC4wMDQyNDUsIDAuMDA0MjQ5LCAwLjAwNDI1MSwgMC4wMDQyNTIiLCBcCi0gICAgICAgICAgIjAuMDA0MTM1LCAwLjAwNDIxOSwgMC4wMDQyMzEsIDAuMDA0MjM4LCAwLjAwNDI0MSwgMC4wMDQyNDMsIDAuMDA0MjQ1IiwgXAotICAgICAgICAgICIwLjAwNDEzMywgMC4wMDQyMTgsIDAuMDA0MjMsIDAuMDA0MjM2LCAwLjAwNDI0LCAwLjAwNDI0MiwgMC4wMDQyNDQiLCBcCi0gICAgICAgICAgIjAuMDA0MTM0LCAwLjAwNDIxOSwgMC4wMDQyMzEsIDAuMDA0MjM3LCAwLjAwNDI0MSwgMC4wMDQyNDMsIDAuMDA0MjQ0IiwgXAotICAgICAgICAgICIwLjAwNDEzOCwgMC4wMDQyMjIsIDAuMDA0MjM1LCAwLjAwNDI0MiwgMC4wMDQyNDUsIDAuMDA0MjQ3LCAwLjAwNDI0OSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNTQyNSwgMC4wMDU0NzMsIDAuMDA1NDc4LCAwLjAwNTQ4MSwgMC4wMDU0ODMsIDAuMDA1NDg0LCAwLjAwNTQ4NCIsIFwKLSAgICAgICAgICAiMC4wMDU0MTMsIDAuMDA1NDYsIDAuMDA1NDY3LCAwLjAwNTQ3LCAwLjAwNTQ3MSwgMC4wMDU0NzIsIDAuMDA1NDczIiwgXAotICAgICAgICAgICIwLjAwNTQwNSwgMC4wMDU0NTMsIDAuMDA1NDU5LCAwLjAwNTQ2MywgMC4wMDU0NjMsIDAuMDA1NDY0LCAwLjAwNTQ2NSIsIFwKLSAgICAgICAgICAiMC4wMDU0MDIsIDAuMDA1NDQ5LCAwLjAwNTQ1NSwgMC4wMDU0NTgsIDAuMDA1NDYsIDAuMDA1NDYxLCAwLjAwNTQ2MiIsIFwKLSAgICAgICAgICAiMC4wMDUzOTgsIDAuMDA1NDQ3LCAwLjAwNTQ1MywgMC4wMDU0NTcsIDAuMDA1NDU4LCAwLjAwNTQ2LCAwLjAwNTQ1OSIsIFwKLSAgICAgICAgICAiMC4wMDUzOTYsIDAuMDA1NDQ4LCAwLjAwNTQ1MywgMC4wMDU0NTYsIDAuMDA1NDU4LCAwLjAwNTQ2LCAwLjAwNTQ2IiwgXAotICAgICAgICAgICIwLjAwNTQwNCwgMC4wMDU0NTEsIDAuMDA1NDU4LCAwLjAwNTQ2MSwgMC4wMDU0NjQsIDAuMDA1NDY0LCAwLjAwNTQ2NSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDAwMywgMC4wMDQwODYsIDAuMDA0MDk4LCAwLjAwNDEwNCwgMC4wMDQxMDcsIDAuMDA0MTA5LCAwLjAwNDExIiwgXAotICAgICAgICAgICIwLjAwMzk3OCwgMC4wMDQwNjQsIDAuMDA0MDc2LCAwLjAwNDA4MiwgMC4wMDQwODYsIDAuMDA0MDg4LCAwLjAwNDA4OSIsIFwKLSAgICAgICAgICAiMC4wMDM5NywgMC4wMDQwNTQsIDAuMDA0MDY2LCAwLjAwNDA3MiwgMC4wMDQwNzUsIDAuMDA0MDc3LCAwLjAwNDA3OCIsIFwKLSAgICAgICAgICAiMC4wMDM5NjQsIDAuMDA0MDQ3LCAwLjAwNDA1OSwgMC4wMDQwNjUsIDAuMDA0MDY5LCAwLjAwNDA3MSwgMC4wMDQwNzIiLCBcCi0gICAgICAgICAgIjAuMDAzOTYyLCAwLjAwNDA0NiwgMC4wMDQwNTgsIDAuMDA0MDY0LCAwLjAwNDA2OCwgMC4wMDQwNywgMC4wMDQwNzEiLCBcCi0gICAgICAgICAgIjAuMDAzOTY0LCAwLjAwNDA1LCAwLjAwNDA2MiwgMC4wMDQwNjgsIDAuMDA0MDcxLCAwLjAwNDA3MywgMC4wMDQwNzUiLCBcCi0gICAgICAgICAgIjAuMDAzOTY5LCAwLjAwNDA1NCwgMC4wMDQwNjYsIDAuMDA0MDczLCAwLjAwNDA3NiwgMC4wMDQwNzgsIDAuMDA0MDgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQzNjUsIDAuMDA0NDM1LCAwLjAwNDQ0NSwgMC4wMDQ0NSwgMC4wMDQ0NTMsIDAuMDA0NDU0LCAwLjAwNDQ1NSIsIFwKLSAgICAgICAgICAiMC4wMDQzMzgsIDAuMDA0NDA5LCAwLjAwNDQxOSwgMC4wMDQ0MjQsIDAuMDA0NDI3LCAwLjAwNDQyOCwgMC4wMDQ0MjkiLCBcCi0gICAgICAgICAgIjAuMDA0MzMzLCAwLjAwNDQwNCwgMC4wMDQ0MTUsIDAuMDA0NDIsIDAuMDA0NDIzLCAwLjAwNDQyNSwgMC4wMDQ0MjYiLCBcCi0gICAgICAgICAgIjAuMDA0MzM5LCAwLjAwNDQxLCAwLjAwNDQyLCAwLjAwNDQyNiwgMC4wMDQ0MjksIDAuMDA0NDMsIDAuMDA0NDMxIiwgXAotICAgICAgICAgICIwLjAwNDM0OCwgMC4wMDQ0MjIsIDAuMDA0NDMyLCAwLjAwNDQzNywgMC4wMDQ0MzksIDAuMDA0NDQxLCAwLjAwNDQ0MiIsIFwKLSAgICAgICAgICAiMC4wMDQzNzEsIDAuMDA0NDQ3LCAwLjAwNDQ1NiwgMC4wMDQ0NiwgMC4wMDQ0NjQsIDAuMDA0NDY0LCAwLjAwNDQ2NiIsIFwKLSAgICAgICAgICAiMC4wMDQzOTYsIDAuMDA0NDY5LCAwLjAwNDQ3OSwgMC4wMDQ0ODMsIDAuMDA0NDg2LCAwLjAwNDQ4NywgMC4wMDQ0ODkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDM4MjMsIDAuMDAzOTE2LCAwLjAwMzkzLCAwLjAwMzkzNywgMC4wMDM5NCwgMC4wMDM5NDMsIDAuMDAzOTQ0IiwgXAotICAgICAgICAgICIwLjAwMzc5MywgMC4wMDM4ODgsIDAuMDAzOTAxLCAwLjAwMzkwOCwgMC4wMDM5MTEsIDAuMDAzOTE0LCAwLjAwMzkxNSIsIFwKLSAgICAgICAgICAiMC4wMDM3OTUsIDAuMDAzODksIDAuMDAzOTAzLCAwLjAwMzkxLCAwLjAwMzkxNCwgMC4wMDM5MTYsIDAuMDAzOTE4IiwgXAotICAgICAgICAgICIwLjAwMzc5NSwgMC4wMDM4OSwgMC4wMDM5MDQsIDAuMDAzOTExLCAwLjAwMzkxNSwgMC4wMDM5MTgsIDAuMDAzOTE5IiwgXAotICAgICAgICAgICIwLjAwMzgxLCAwLjAwMzkwNSwgMC4wMDM5MTksIDAuMDAzOTI2LCAwLjAwMzkzLCAwLjAwMzkzMiwgMC4wMDM5MzQiLCBcCi0gICAgICAgICAgIjAuMDAzODM0LCAwLjAwMzkyOSwgMC4wMDM5NDMsIDAuMDAzOTUsIDAuMDAzOTU0LCAwLjAwMzk1NiwgMC4wMDM5NTgiLCBcCi0gICAgICAgICAgIjAuMDAzODU5LCAwLjAwMzk1NCwgMC4wMDM5NjksIDAuMDAzOTc1LCAwLjAwMzk3OSwgMC4wMDM5ODEsIDAuMDAzOTgzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUzAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNTA2MiwgMC4wMDUxMDgsIDAuMDA1MTE0LCAwLjAwNTExNiwgMC4wMDUxMTgsIDAuMDA1MTE4LCAwLjAwNTExOCIsIFwKLSAgICAgICAgICAiMC4wMDUwMzUsIDAuMDA1MDgyLCAwLjAwNTA4OCwgMC4wMDUwOSwgMC4wMDUwOTEsIDAuMDA1MDkxLCAwLjAwNTA5NSIsIFwKLSAgICAgICAgICAiMC4wMDUwMzMsIDAuMDA1MDgsIDAuMDA1MDg1LCAwLjAwNTA4OSwgMC4wMDUwODksIDAuMDA1MDksIDAuMDA1MDkiLCBcCi0gICAgICAgICAgIjAuMDA1MDM0LCAwLjAwNTA4MSwgMC4wMDUwODYsIDAuMDA1MDg5LCAwLjAwNTA5LCAwLjAwNTA5MiwgMC4wMDUwOTMiLCBcCi0gICAgICAgICAgIjAuMDA1MDQ1LCAwLjAwNTA5MiwgMC4wMDUwOTgsIDAuMDA1MDk5LCAwLjAwNTEwMiwgMC4wMDUxMDIsIDAuMDA1MTAyIiwgXAotICAgICAgICAgICIwLjAwNTA2OCwgMC4wMDUxMTIsIDAuMDA1MTE5LCAwLjAwNTEyMSwgMC4wMDUxMjUsIDAuMDA1MTI2LCAwLjAwNTEyNyIsIFwKLSAgICAgICAgICAiMC4wMDUwODcsIDAuMDA1MTM1LCAwLjAwNTE0MiwgMC4wMDUxNDUsIDAuMDA1MTUsIDAuMDA1MTUsIDAuMDA1MTUxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1OTIxLCAwLjAwNjAwNCwgMC4wMDYwMTUsIDAuMDA2MDIxLCAwLjAwNjAyNCwgMC4wMDYwMjYsIDAuMDA2MDI3IiwgXAotICAgICAgICAgICIwLjAwNTkwMywgMC4wMDU5ODYsIDAuMDA1OTk3LCAwLjAwNjAwMywgMC4wMDYwMDYsIDAuMDA2MDA4LCAwLjAwNjAwOSIsIFwKLSAgICAgICAgICAiMC4wMDU4OTksIDAuMDA1OTg0LCAwLjAwNTk5NSwgMC4wMDYwMDIsIDAuMDA2MDA1LCAwLjAwNjAwNywgMC4wMDYwMDgiLCBcCi0gICAgICAgICAgIjAuMDA1OTA1LCAwLjAwNTk4OCwgMC4wMDU5OTksIDAuMDA2MDA1LCAwLjAwNjAwOSwgMC4wMDYwMSwgMC4wMDYwMTIiLCBcCi0gICAgICAgICAgIjAuMDA1OTEzLCAwLjAwNTk5NiwgMC4wMDYwMDgsIDAuMDA2MDE0LCAwLjAwNjAxNywgMC4wMDYwMTksIDAuMDA2MDIiLCBcCi0gICAgICAgICAgIjAuMDA1OTM1LCAwLjAwNjAxNSwgMC4wMDYwMjYsIDAuMDA2MDM1LCAwLjAwNjAzOCwgMC4wMDYwNCwgMC4wMDYwNDIiLCBcCi0gICAgICAgICAgIjAuMDA1OTU3LCAwLjAwNjA0LCAwLjAwNjA1MSwgMC4wMDYwNTgsIDAuMDA2MDYxLCAwLjAwNjA2MiwgMC4wMDYwNjQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTMSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0NjQ1LCAwLjAwNDcwMSwgMC4wMDQ3MDksIDAuMDA0NzE1LCAwLjAwNDcxOCwgMC4wMDQ3MTgsIDAuMDA0NzIxIiwgXAotICAgICAgICAgICIwLjAwNDYzMSwgMC4wMDQ2ODcsIDAuMDA0Njk1LCAwLjAwNDcsIDAuMDA0NzAyLCAwLjAwNDcwNCwgMC4wMDQ3MDUiLCBcCi0gICAgICAgICAgIjAuMDA0NjM5LCAwLjAwNDY5NCwgMC4wMDQ3MDMsIDAuMDA0NzA3LCAwLjAwNDcxLCAwLjAwNDcxMSwgMC4wMDQ3MTIiLCBcCi0gICAgICAgICAgIjAuMDA0NjQyLCAwLjAwNDY5NywgMC4wMDQ3MDQsIDAuMDA0NzA5LCAwLjAwNDcxMSwgMC4wMDQ3MTMsIDAuMDA0NzE0IiwgXAotICAgICAgICAgICIwLjAwNDY1MSwgMC4wMDQ3MDgsIDAuMDA0NzE3LCAwLjAwNDcyLCAwLjAwNDcyMiwgMC4wMDQ3MjQsIDAuMDA0NzI1IiwgXAotICAgICAgICAgICIwLjAwNDY3NSwgMC4wMDQ3MjksIDAuMDA0NzM2LCAwLjAwNDc0MSwgMC4wMDQ3NDQsIDAuMDA0NzQ0LCAwLjAwNDc0NiIsIFwKLSAgICAgICAgICAiMC4wMDQ2OTUsIDAuMDA0NzQ5LCAwLjAwNDc1NywgMC4wMDQ3NjIsIDAuMDA0NzY0LCAwLjAwNDc2NCwgMC4wMDQ3NjYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDM1MjgsIDAuMDAzNjIyLCAwLjAwMzYzNiwgMC4wMDM2NDQsIDAuMDAzNjQ4LCAwLjAwMzY1MSwgMC4wMDM2NTMiLCBcCi0gICAgICAgICAgIjAuMDAzNTA5LCAwLjAwMzYwMywgMC4wMDM2MTgsIDAuMDAzNjI1LCAwLjAwMzYyOSwgMC4wMDM2MzIsIDAuMDAzNjM0IiwgXAotICAgICAgICAgICIwLjAwMzUxMiwgMC4wMDM2MDYsIDAuMDAzNjIsIDAuMDAzNjI4LCAwLjAwMzYzMiwgMC4wMDM2MzUsIDAuMDAzNjM2IiwgXAotICAgICAgICAgICIwLjAwMzUxMiwgMC4wMDM2MDcsIDAuMDAzNjIxLCAwLjAwMzYyOSwgMC4wMDM2MzIsIDAuMDAzNjM1LCAwLjAwMzYzNyIsIFwKLSAgICAgICAgICAiMC4wMDM1MjQsIDAuMDAzNjE5LCAwLjAwMzYzMywgMC4wMDM2NDEsIDAuMDAzNjQ1LCAwLjAwMzY0OCwgMC4wMDM2NDkiLCBcCi0gICAgICAgICAgIjAuMDAzNTQ3LCAwLjAwMzY0MSwgMC4wMDM2NTUsIDAuMDAzNjYzLCAwLjAwMzY2NywgMC4wMDM2NjksIDAuMDAzNjcxIiwgXAotICAgICAgICAgICIwLjAwMzU2OSwgMC4wMDM2NjMsIDAuMDAzNjc3LCAwLjAwMzY4NSwgMC4wMDM2OSwgMC4wMDM2OTIsIDAuMDAzNjk0Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBNWEkzWEwgKgotICogLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChNWEkzWEwpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4yMjU1OTc7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY3OTc5MTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2NzgwNzY7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjc5NzkxOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDc5NywgMC4wMDA3NzYsIDAuMDAwNzY3LCAwLjAwMDc2MywgMC4wMDA3NjMsIDAuMDAwNzY3LCAwLjAwMDc3MyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjA0NCwgMC4wMDIwMzIsIDAuMDAyMDI2LCAwLjAwMjAyNCwgMC4wMDIwMjQsIDAuMDAyMDI2LCAwLjAwMjAzIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2MjM1MDc7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjIyMDAyOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDYyMzUwNzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyMTcsIDAuMDAwMjIsIDAuMDAwMjIxLCAwLjAwMDIyMSwgMC4wMDAyMjEsIDAuMDAwMjIxLCAwLjAwMDIyMiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDIzLCAwLjAwMDIyOCwgMC4wMDAyMjcsIDAuMDAwMjI3LCAwLjAwMDIyNywgMC4wMDAyMjcsIDAuMDAwMjI3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihDKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2MDY0Nzg7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjA2MjUyOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDYwNjQ3ODsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyOTgsIDAuMDAwMjcyLCAwLjAwMDI3LCAwLjAwMDI4MSwgMC4wMDAyOTIsIDAuMDAwMzIsIDAuMDAwMzQ0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxMzcyLCAwLjAwMTM1MiwgMC4wMDEzNSwgMC4wMDEzNTcsIDAuMDAxMzcyLCAwLjAwMTM5OSwgMC4wMDE0MjEiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFMwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDEyMjM0NTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDEyMjI4MjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDEyMjM0NTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxNzgsIDAuMDAwMTUxLCAwLjAwMDE1NSwgMC4wMDAxNjcsIDAuMDAwMTc0LCAwLjAwMDE5OSwgMC4wMDAyMjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDE5NCwgMC4wMDE5MiwgMC4wMDE5MTgsIDAuMDAxOTI2LCAwLjAwMTkzNywgMC4wMDE5NjQsIDAuMDAxOTg2Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTMSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxMjU1MzI7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxMjU1MTg7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxMjU1MzI7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjU1LCAwLjAwMDIyOCwgMC4wMDAyMzEsIDAuMDAwMjMzLCAwLjAwMDI0MywgMC4wMDAyNjYsIDAuMDAwMjkyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyMTEzLCAwLjAwMjA5MiwgMC4wMDIwOTgsIDAuMDAyMDk5LCAwLjAwMjExMiwgMC4wMDIxMzIsIDAuMDAyMTU0Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMTUwMTM5OwotICAgIGZ1bmN0aW9uIDogIighKChTMSBDKSArICghUzEgKChTMCBCKSArICghUzAgQSkpKSkpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNjExMDQsIDAuMTc1MjU0LCAwLjMwMjUzNywgMC41MTQ0ODIsIDAuNzI2MzM3LCAxLjIyMDY2LCAxLjUwMzEyIiwgXAotICAgICAgICAgICIwLjE2OTYwMiwgMC4xODM3NTIsIDAuMzExMDU1LCAwLjUyMzAyMSwgMC43MzQ4MjksIDEuMjI5MTcsIDEuNTExNTgiLCBcCi0gICAgICAgICAgIjAuMTc5Mzc2LCAwLjE5MzUyNCwgMC4zMjA4MTEsIDAuNTMyNzcsIDAuNzQ0NjE5LCAxLjIzODk0LCAxLjUyMTQiLCBcCi0gICAgICAgICAgIjAuMTg4NDMyLCAwLjIwMjYwMywgMC4zMjk5MDEsIDAuNTQxNzkzLCAwLjc1MzY5LCAxLjI0Nzk4LCAxLjUzMDQ2IiwgXAotICAgICAgICAgICIwLjE5NjU0MiwgMC4yMTA3MDMsIDAuMzM4LCAwLjU0OTg5MiwgMC43NjE3NjYsIDEuMjU2MDYsIDEuNTM4NTUiLCBcCi0gICAgICAgICAgIjAuMjA3NzgsIDAuMjIxOTQ0LCAwLjM0OTI0NCwgMC41NjExMzIsIDAuNzczMDMyLCAxLjI2NzM0LCAxLjU0OTgxIiwgXAotICAgICAgICAgICIwLjIxNjM4LCAwLjIzMDU1OCwgMC4zNTc4NTMsIDAuNTY5NzM5LCAwLjc4MTYxLCAxLjI3NTk5LCAxLjU1ODM4Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE1NDY3MywgMC4xODMxNTQsIDAuNDQyOTk4LCAwLjg3NzUyMSwgMS4zMTI4NiwgMi4zMjc5MywgMi45MTE2NCIsIFwKLSAgICAgICAgICAiMC4xNTQ2NzMsIDAuMTgzMTgyLCAwLjQ0MzU3MSwgMC44NzkwNjEsIDEuMzEyOSwgMi4zMzA4MywgMi45MDgzMyIsIFwKLSAgICAgICAgICAiMC4xNTQ2NywgMC4xODMxNDQsIDAuNDQzMDgxLCAwLjg3ODk5NSwgMS4zMTI5LCAyLjMyNzksIDIuOTA3OTciLCBcCi0gICAgICAgICAgIjAuMTU0NTEyLCAwLjE4MzEzNywgMC40NDI4NTcsIDAuODc4MDE4LCAxLjMxMjg4LCAyLjMyODM5LCAyLjkwNzkyIiwgXAotICAgICAgICAgICIwLjE1NDY2MywgMC4xODMyOTMsIDAuNDQyNzc1LCAwLjg3Nzg2NiwgMS4zMTMxNCwgMi4zMjk4MiwgMi45MDg0NiIsIFwKLSAgICAgICAgICAiMC4xNTQ3MDEsIDAuMTgzMzM0LCAwLjQ0Mjg2MiwgMC44Nzc5MDMsIDEuMzEyODcsIDIuMzI3ODIsIDIuOTExMyIsIFwKLSAgICAgICAgICAiMC4xNTQ2ODUsIDAuMTgzMzE1LCAwLjQ0MzUyLCAwLjg3ODUzLCAxLjMxMzAxLCAyLjMyNjY4LCAyLjkwODMiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTYwOTg4LCAwLjE3NDg4OCwgMC4yOTk1NCwgMC41MDcwNzUsIDAuNzE0NTQ0LCAxLjE5ODY0LCAxLjQ3NTIzIiwgXAotICAgICAgICAgICIwLjE2OTYxNiwgMC4xODM1MTMsIDAuMzA4MTYsIDAuNTE1NzAxLCAwLjcyMzE1OCwgMS4yMDcyNCwgMS40ODM4NSIsIFwKLSAgICAgICAgICAiMC4xODAyMDMsIDAuMTk0MDg5LCAwLjMxODcyNywgMC41MjYyNiwgMC43MzM3MzgsIDEuMjE3ODIsIDEuNDk0NDEiLCBcCi0gICAgICAgICAgIjAuMTkwMjgsIDAuMjA0MTcyLCAwLjMyODgyMSwgMC41MzYzNDYsIDAuNzQzODIzLCAxLjIyNzksIDEuNTA0NTEiLCBcCi0gICAgICAgICAgIjAuMTk5NDE0LCAwLjIxMzMsIDAuMzM3OTM5LCAwLjU0NTQ3NCwgMC43NTI5NTEsIDEuMjM3MDEsIDEuNTEzNjIiLCBcCi0gICAgICAgICAgIjAuMjEyMjQ1LCAwLjIyNjEzNCwgMC4zNTA3OCwgMC41NTgyOTgsIDAuNzY1ODQ1LCAxLjI0OTg1LCAxLjUyNjQ3IiwgXAotICAgICAgICAgICIwLjIyMjQwNiwgMC4yMzYzLCAwLjM2MDkzOCwgMC41Njg0NzksIDAuNzc1OTQ4LCAxLjI2MDAzLCAxLjUzNjYzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE0ODcyMSwgMC4xNzYwODcsIDAuNDI0MDcxLCAwLjg0MDU3NSwgMS4yNTY3NCwgMi4yMjg3NCwgMi43ODgxNSIsIFwKLSAgICAgICAgICAiMC4xNDg3MjIsIDAuMTc2MDc5LCAwLjQyNDM4MSwgMC44NDE1NjIsIDEuMjU2NDcsIDIuMjI4MTMsIDIuNzgzNDkiLCBcCi0gICAgICAgICAgIjAuMTQ4NzEsIDAuMTc2MDg0LCAwLjQyNDU5NSwgMC44NDE1NjksIDEuMjU2NDYsIDIuMjMxNzEsIDIuNzg0NTIiLCBcCi0gICAgICAgICAgIjAuMTQ4NjcxLCAwLjE3NjA3LCAwLjQyNDkxNCwgMC44NDE1OTQsIDEuMjU2NTUsIDIuMjI4MDksIDIuNzgzMTQiLCBcCi0gICAgICAgICAgIjAuMTQ4Njg3LCAwLjE3NjA1OSwgMC40MjQ1MTcsIDAuODQxNTc2LCAxLjI1NjQ4LCAyLjIzMTU2LCAyLjc4NDg2IiwgXAotICAgICAgICAgICIwLjE0ODc3NSwgMC4xNzYxMjUsIDAuNDI0MzMsIDAuODQxMTg2LCAxLjI1ODU0LCAyLjIyNzY4LCAyLjc4MzI3IiwgXAotICAgICAgICAgICIwLjE0ODcxNSwgMC4xNzYwOCwgMC40MjQ1NjksIDAuODQxNjI1LCAxLjI1NjQ3LCAyLjIyODA0LCAyLjc4Mjc5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE2MjIwNSwgMC4xNzYzNTQsIDAuMzAzNjM3LCAwLjUxNTU1MiwgMC43Mjc0MzQsIDEuMjIxNzIsIDEuNTA0MTgiLCBcCi0gICAgICAgICAgIjAuMTcwNjMzLCAwLjE4NDc4MiwgMC4zMTIwNjMsIDAuNTIzOTg1LCAwLjczNTg2NCwgMS4yMzAxMywgMS41MTI3NiIsIFwKLSAgICAgICAgICAiMC4xODAyODEsIDAuMTk0NDQ4LCAwLjMyMTczNSwgMC41MzM2MjksIDAuNzQ1NTAyLCAxLjIzOTgxLCAxLjUyMjI4IiwgXAotICAgICAgICAgICIwLjE4OTM0OCwgMC4yMDM1MSwgMC4zMzA4NDUsIDAuNTQyNzA0LCAwLjc1NDYwNywgMS4yNDg5MiwgMS41MzEzOCIsIFwKLSAgICAgICAgICAiMC4xOTc1MDQsIDAuMjExNjUyLCAwLjMzODk4OSwgMC41NTA4NzksIDAuNzYyNzU1LCAxLjI1NzA3LCAxLjUzOTgiLCBcCi0gICAgICAgICAgIjAuMjA4ODE4LCAwLjIyMjk4LCAwLjM1MDI3OSwgMC41NjIxNzUsIDAuNzc0MDUzLCAxLjI2ODM2LCAxLjU1MDg0IiwgXAotICAgICAgICAgICIwLjIxNzUxOSwgMC4yMzE2OTYsIDAuMzU4OTY2LCAwLjU3MDg4LCAwLjc4MjgyOCwgMS4yNzcwNywgMS41NTk1NSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNTQ2NywgMC4xODMxNzYsIDAuNDQzNTM0LCAwLjg3Nzc5NSwgMS4zMTI4NywgMi4zMzA3MSwgMi45MDgxNyIsIFwKLSAgICAgICAgICAiMC4xNTQ2NywgMC4xODMxNzIsIDAuNDQzNTMxLCAwLjg3Nzk2NywgMS4zMTI4NCwgMi4zMzA2LCAyLjkwNzA1IiwgXAotICAgICAgICAgICIwLjE1NDY3NiwgMC4xODMzMTMsIDAuNDQyNzM5LCAwLjg3Nzg2MiwgMS4zMTMxNCwgMi4zMjc4NCwgMi45MDg0OCIsIFwKLSAgICAgICAgICAiMC4xNTQ0ODIsIDAuMTgzMTQyLCAwLjQ0Mjc1NiwgMC44Nzc5NzcsIDEuMzEyOTMsIDIuMzI3OSwgMi45MTE2MSIsIFwKLSAgICAgICAgICAiMC4xNTQ2NjcsIDAuMTgzMTQ0LCAwLjQ0MjgxNiwgMC44Nzg5MzcsIDEuMzEyMDYsIDIuMzI3ODUsIDIuOTA2NjkiLCBcCi0gICAgICAgICAgIjAuMTU0NjM5LCAwLjE4MzMxOCwgMC40NDI4NjcsIDAuODc3OTY1LCAxLjMxNDI4LCAyLjMyODI3LCAyLjkwNzc1IiwgXAotICAgICAgICAgICIwLjE1NDU5NSwgMC4xODMxNiwgMC40NDMzMTUsIDAuODc3ODczLCAxLjMxNDM4LCAyLjMyODIyLCAyLjkwNzc5Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE2MTA4NCwgMC4xNzQ5ODQsIDAuMjk5NjM3LCAwLjUwNzIwNywgMC43MTQ2MzgsIDEuMTk4NzMsIDEuNDc1MjkiLCBcCi0gICAgICAgICAgIjAuMTY5OTk4LCAwLjE4Mzg5NSwgMC4zMDg1NDMsIDAuNTE2MDg4LCAwLjcyMzU0MiwgMS4yMDc2MywgMS40ODQyNCIsIFwKLSAgICAgICAgICAiMC4xODA3NDksIDAuMTk0NjI2LCAwLjMxOTI4NSwgMC41MjY4MDIsIDAuNzM0MjA0LCAxLjIxODMsIDEuNDk0OTciLCBcCi0gICAgICAgICAgIjAuMTkwOTAzLCAwLjIwNDc4NywgMC4zMjk0NDMsIDAuNTM2OTYxLCAwLjc0NDQzOCwgMS4yMjg2MiwgMS41MDUxMiIsIFwKLSAgICAgICAgICAiMC4yMDAxOTUsIDAuMjE0MDkzLCAwLjMzODczNiwgMC41NDYyNSwgMC43NTM3NjgsIDEuMjM3ODEsIDEuNTE0NDMiLCBcCi0gICAgICAgICAgIjAuMjEzMjM2LCAwLjIyNzExOCwgMC4zNTE3NzIsIDAuNTU5Mjg5LCAwLjc2NjgzNywgMS4yNTEwMiwgMS41Mjc0NiIsIFwKLSAgICAgICAgICAiMC4yMjMzNTIsIDAuMjM3MjQ5LCAwLjM2MTg4OCwgMC41Njk0MjgsIDAuNzc2ODk3LCAxLjI2MDk4LCAxLjUzNzYyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE0ODcyLCAwLjE3NjA5NCwgMC40MjM3NzksIDAuODQxNDksIDEuMjU2NzEsIDIuMjI4NzksIDIuNzg3OTMiLCBcCi0gICAgICAgICAgIjAuMTQ4NzIzLCAwLjE3NjA4LCAwLjQyNDM5MSwgMC44NDE1MzUsIDEuMjU2NSwgMi4yMjgxNywgMi43ODM0NyIsIFwKLSAgICAgICAgICAiMC4xNDg3MTcsIDAuMTc1NjIsIDAuNDIyOTg3LCAwLjg0MTU0MSwgMS4yNTgyNywgMi4yMzE1NiwgMi43NzU2OSIsIFwKLSAgICAgICAgICAiMC4xNDg3MTEsIDAuMTc2MDQ3LCAwLjQyNDIyNywgMC44NDE1NDQsIDEuMjU2MzEsIDIuMjMyMzksIDIuNzgyNzMiLCBcCi0gICAgICAgICAgIjAuMTQ4NjkxLCAwLjE3NjA1MywgMC40MjQyOTUsIDAuODQxNTE4LCAxLjI1NTQ5LCAyLjIyNzA5LCAyLjc4MzIzIiwgXAotICAgICAgICAgICIwLjE0ODc2NCwgMC4xNzYwOTEsIDAuNDI0MjUsIDAuODQxNTIsIDEuMjU4NiwgMi4yMjU4NiwgMi43ODMwNyIsIFwKLSAgICAgICAgICAiMC4xNDg3MzEsIDAuMTc2MDY3LCAwLjQyNDQ1MiwgMC44NDE2MzIsIDEuMjU2NDgsIDIuMjI4MDYsIDIuNzg0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEzNjMyMywgMC4xNTA0NzksIDAuMjc3Nzk5LCAwLjQ4OTc3NSwgMC43MDE2NDIsIDEuMTk1OTIsIDEuNDc4NjkiLCBcCi0gICAgICAgICAgIjAuMTQ1OTEzLCAwLjE2MDA2OSwgMC4yODczOTEsIDAuNDk5MzcxLCAwLjcxMTIzNSwgMS4yMDU1MSwgMS40ODgyMSIsIFwKLSAgICAgICAgICAiMC4xNTU5NjcsIDAuMTcwMTIzLCAwLjI5NzQ4NCwgMC41MDk0MTcsIDAuNzIxMjk5LCAxLjIxNTYzLCAxLjQ5ODAzIiwgXAotICAgICAgICAgICIwLjE2MzUwNiwgMC4xNzc2NzUsIDAuMzA1MDEyLCAwLjUxNzAxNSwgMC43Mjg4MjksIDEuMjIzMiwgMS41MDU2MSIsIFwKLSAgICAgICAgICAiMC4xNzAwNjQsIDAuMTg0MjM0LCAwLjMxMTU3OCwgMC41MjM1NjMsIDAuNzM1MzgxLCAxLjIyOTc1LCAxLjUxMjE2IiwgXAotICAgICAgICAgICIwLjE3ODY4NywgMC4xOTI4NjcsIDAuMzIwMTksIDAuNTMyMDk2LCAwLjc0NDAxNCwgMS4yMzgzMSwgMS41MjA4IiwgXAotICAgICAgICAgICIwLjE4NTEzNiwgMC4xOTkyOSwgMC4zMjY2MTEsIDAuNTM4NTg3LCAwLjc1MDQzLCAxLjI0NDcxLCAxLjUyNzQyIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE1NDcxNiwgMC4xODMxOSwgMC40NDMxNDEsIDAuODc3NjM3LCAxLjMxMzAzLCAyLjMyOTkxLCAyLjkxMjMyIiwgXAotICAgICAgICAgICIwLjE1NDcxNiwgMC4xODMxOTEsIDAuNDQzMTE3LCAwLjg3NzcyNCwgMS4zMTMwNCwgMi4zMjk5MSwgMi45MTIwOSIsIFwKLSAgICAgICAgICAiMC4xNTQ3MDcsIDAuMTgzMTg5LCAwLjQ0MzczLCAwLjg3OTA1NCwgMS4zMTIzNiwgMi4zMjc5OCwgMi45MDc4MyIsIFwKLSAgICAgICAgICAiMC4xNTQ1NTMsIDAuMTgzMjMsIDAuNDQzNjU3LCAwLjg3OTE2OSwgMS4zMTI5MSwgMi4zMzA5MywgMi45MDg1MiIsIFwKLSAgICAgICAgICAiMC4xNTQ2MjEsIDAuMTgzMiwgMC40NDM2ODgsIDAuODc5MTU4LCAxLjMxNDUyLCAyLjMzMDkyLCAyLjkwODUyIiwgXAotICAgICAgICAgICIwLjE1NDU3NCwgMC4xODMxMzgsIDAuNDQzNjE4LCAwLjg3ODA2NiwgMS4zMTQ1NSwgMi4zMjgyNywgMi45MDc5NiIsIFwKLSAgICAgICAgICAiMC4xNTQ1NDYsIDAuMTgzMjEyLCAwLjQ0MzYsIDAuODc4OTI4LCAxLjMxNDQ5LCAyLjMzMDIzLCAyLjkxMTUzIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEzNzgzNCwgMC4xNTE3MzksIDAuMjc2Mzk5LCAwLjQ4Mzk2NiwgMC42OTE0NDQsIDEuMTc1NTQsIDEuNDUyMjEiLCBcCi0gICAgICAgICAgIjAuMTQ3ODYzLCAwLjE2MTc2OSwgMC4yODY0MzksIDAuNDkzOTcxLCAwLjcwMTQ3NSwgMS4xODU1NCwgMS40NjIxNiIsIFwKLSAgICAgICAgICAiMC4xNTg1LCAwLjE3MjM5MywgMC4yOTcxMDMsIDAuNTA0NjE2LCAwLjcxMjA5NiwgMS4xOTYxOCwgMS40NzI4NiIsIFwKLSAgICAgICAgICAiMC4xNjY5NjIsIDAuMTgwODU0LCAwLjMwNTUzNywgMC41MTMwNzQsIDAuNzIwNjU5LCAxLjIwNDc0LCAxLjQ4MTI2IiwgXAotICAgICAgICAgICIwLjE3NDAzOCwgMC4xODc5MzgsIDAuMzEyNjE0LCAwLjUyMDE0NiwgMC43Mjc2MzYsIDEuMjExNzIsIDEuNDg4MzQiLCBcCi0gICAgICAgICAgIjAuMTgzODgxLCAwLjE5Nzc4LCAwLjMyMjQ1NywgMC41Mjk5OTksIDAuNzM3NDg0LCAxLjIyMTU4LCAxLjQ5ODIxIiwgXAotICAgICAgICAgICIwLjE5MTM4OCwgMC4yMDUyNywgMC4zMjk5NjMsIDAuNTM3NTEyLCAwLjc0NTAwOSwgMS4yMjkwOCwgMS41MDU2NyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNDg4MzQsIDAuMTc2MjExLCAwLjQyNDkyNSwgMC44NDE2NjIsIDEuMjU2NjQsIDIuMjI4MjcsIDIuNzg4NTQiLCBcCi0gICAgICAgICAgIjAuMTQ4ODQ3LCAwLjE3NjIwMiwgMC40MjQzNTQsIDAuODQxNTgzLCAxLjI1NjczLCAyLjIyOTkxLCAyLjc4MzAzIiwgXAotICAgICAgICAgICIwLjE0ODgyLCAwLjE3NjE4MywgMC40MjQ5NTQsIDAuODQxNjMyLCAxLjI1NjM5LCAyLjIyNzg3LCAyLjc4ODE4IiwgXAotICAgICAgICAgICIwLjE0ODgxNywgMC4xNzYyNjksIDAuNDI0MzU0LCAwLjg0MTU4MywgMS4yNTQ3NSwgMi4yMjc5OSwgMi43ODI4MyIsIFwKLSAgICAgICAgICAiMC4xNDg4NywgMC4xNzYyMjMsIDAuNDI0NDIzLCAwLjg0MTU1NiwgMS4yNTcyNiwgMi4yMjcyMSwgMi43ODMwOSIsIFwKLSAgICAgICAgICAiMC4xNDg4NDYsIDAuMTc2MTg4LCAwLjQyNDk4MSwgMC44NDE2NTEsIDEuMjU3MDIsIDIuMjMxNTksIDIuNzg3OTIiLCBcCi0gICAgICAgICAgIjAuMTQ4OTYzLCAwLjE3NjI2OSwgMC40MjQ5MzMsIDAuODQxNTYsIDEuMjU4NzIsIDIuMjMxNzQsIDIuNzg2MSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTcyNDI1LCAwLjE4NjU3NywgMC4zMTM4OTYsIDAuNTI1Nzk2LCAwLjczNzY1OCwgMS4yMzIwMywgMS41MTQ0MiIsIFwKLSAgICAgICAgICAiMC4xODI1MTYsIDAuMTk2NjcyLCAwLjMyMzk3MSwgMC41MzU4NjMsIDAuNzQ3NzM3LCAxLjI0MjA2LCAxLjUyNDUxIiwgXAotICAgICAgICAgICIwLjE5MzU1MywgMC4yMDc3MTEsIDAuMzM1MDM5LCAwLjU0NjksIDAuNzU4Nzc2LCAxLjI1MzE3LCAxLjUzNTU0IiwgXAotICAgICAgICAgICIwLjIwMjY4NywgMC4yMTY4MzcsIDAuMzQ0MTQsIDAuNTU2MDkyLCAwLjc2NzkxNiwgMS4yNjIyNSwgMS41NDQ2NyIsIFwKLSAgICAgICAgICAiMC4yMTAyMzIsIDAuMjI0Mzk4LCAwLjM1MTY2LCAwLjU2MzU0MSwgMC43NzU0NzcsIDEuMjY5OCwgMS41NTIzNyIsIFwKLSAgICAgICAgICAiMC4yMjAzNiwgMC4yMzQ1MTQsIDAuMzYxNzk2LCAwLjU3MzcwNiwgMC43ODU1ODQsIDEuMjgwMDMsIDEuNTYyMiIsIFwKLSAgICAgICAgICAiMC4yMjgzMDcsIDAuMjQyNDc4LCAwLjM2OTczMiwgMC41ODE2NDQsIDAuNzkzNDgxLCAxLjI4NzgxLCAxLjU3MDMiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTU0NjgsIDAuMTgzMTcyLCAwLjQ0MzYzMywgMC44Nzc4NywgMS4zMTI4OCwgMi4zMzEwMSwgMi45MDg2IiwgXAotICAgICAgICAgICIwLjE1NDY3MywgMC4xODMxNTcsIDAuNDQyNzY0LCAwLjg3Nzg1NywgMS4zMTMxLCAyLjMyODM5LCAyLjkwODU5IiwgXAotICAgICAgICAgICIwLjE1NDY3MywgMC4xODMwMzgsIDAuNDQyNzMyLCAwLjg3NzgzNywgMS4zMTMwNiwgMi4zMjc0LCAyLjkwODUzIiwgXAotICAgICAgICAgICIwLjE1NDY3NCwgMC4xODMxODMsIDAuNDQzNTcsIDAuODc5MDEyLCAxLjMxMjkxLCAyLjMzMDg0LCAyLjkwODMiLCBcCi0gICAgICAgICAgIjAuMTU0NjY5LCAwLjE4MzE0NSwgMC40NDI4MTQsIDAuODc4OTI2LCAxLjMxMjg0LCAyLjMyNzkxLCAyLjkxMTk3IiwgXAotICAgICAgICAgICIwLjE1NDcwMywgMC4xODMyODcsIDAuNDQzNDgsIDAuODc3ODA4LCAxLjMxMzAzLCAyLjMzMDcsIDIuOTA4NDYiLCBcCi0gICAgICAgICAgIjAuMTU0NjU3LCAwLjE4MzA4OSwgMC40NDI5NzMsIDAuODc4NzE0LCAxLjMxNDEsIDIuMzI5NTYsIDIuOTA3ODIiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTcyODkyLCAwLjE4Njc5MSwgMC4zMTE0MzYsIDAuNTE4OTg4LCAwLjcyNjQzMywgMS4yMTA1MiwgMS40ODcxMyIsIFwKLSAgICAgICAgICAiMC4xODI2MTQsIDAuMTk2NDk5LCAwLjMyMTExNCwgMC41Mjg2NywgMC43MzYxNDYsIDEuMjIwMjMsIDEuNDk2NzgiLCBcCi0gICAgICAgICAgIjAuMTkyOTIyLCAwLjIwNjgxLCAwLjMzMTQ1OCwgMC41Mzg5NzMsIDAuNzQ2NTQ1LCAxLjIzMDUzLCAxLjUwNzE1IiwgXAotICAgICAgICAgICIwLjIwMTMwNSwgMC4yMTUyMDQsIDAuMzM5ODUzLCAwLjU0NzM4OCwgMC43NTQ4NTIsIDEuMjM4OTQsIDEuNTE1NTMiLCBcCi0gICAgICAgICAgIjAuMjA4MTA1LCAwLjIyMjAwMSwgMC4zNDY1OTksIDAuNTU0MjM5LCAwLjc2MTY1MSwgMS4yNDU3MywgMS41MjI1NSIsIFwKLSAgICAgICAgICAiMC4yMTY4NjEsIDAuMjMwNzUsIDAuMzU1NDAzLCAwLjU2MjkyMSwgMC43NzA1OTksIDEuMjU0NjgsIDEuNTMxMDciLCBcCi0gICAgICAgICAgIjAuMjI0MDI1LCAwLjIzNzkwNSwgMC4zNjI1NDcsIDAuNTY5OTgsIDAuNzc3NTM4LCAxLjI2MTU5LCAxLjUzODIxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE0ODcyMywgMC4xNzYwNzIsIDAuNDI0MzU0LCAwLjg0MTQ3NCwgMS4yNTY0OSwgMi4yMjgxLCAyLjc4MzM1IiwgXAotICAgICAgICAgICIwLjE0ODcwOSwgMC4xNzYwODIsIDAuNDI0NzY3LCAwLjg0MTYwOCwgMS4yNTY1MiwgMi4yMjI2MSwgMi43ODc4IiwgXAotICAgICAgICAgICIwLjE0ODcxNywgMC4xNzYwOTMsIDAuNDI0MjczLCAwLjg0MTUzLCAxLjI1ODQ4LCAyLjIyODk3LCAyLjc4MzE5IiwgXAotICAgICAgICAgICIwLjE0ODcyNiwgMC4xNzYwNzIsIDAuNDI0MzYzLCAwLjg0MDQ1OCwgMS4yNTY1NCwgMi4yMjgyNSwgMi43ODc3NyIsIFwKLSAgICAgICAgICAiMC4xNDg3MjQsIDAuMTc2MDc3LCAwLjQyNDMzNCwgMC44Mzk2NywgMS4yNTY1NiwgMi4yMjgxNSwgMi43ODMzNCIsIFwKLSAgICAgICAgICAiMC4xNDg3NjYsIDAuMTc2MTEsIDAuNDI0OTE1LCAwLjg0MTYwMywgMS4yNTY1MywgMi4yMjgxMiwgMi43ODQ4MyIsIFwKLSAgICAgICAgICAiMC4xNDg3MzYsIDAuMTc2MTQxLCAwLjQyNDI1OSwgMC44NDE0NjYsIDEuMjU4NDksIDIuMjMxNTEsIDIuNzg0OTkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUzAiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE1NDU1MSwgMC4xNjg3MTksIDAuMjk2MDEzLCAwLjUwNzkwNCwgMC43MTk4MTEsIDEuMjE0MDksIDEuNDk2NTciLCBcCi0gICAgICAgICAgIjAuMTYzMjQ1LCAwLjE3NzQwNywgMC4zMDQ3MDcsIDAuNTE2NTk3LCAwLjcyODQ4NiwgMS4yMjI4MSwgMS41MDUyNiIsIFwKLSAgICAgICAgICAiMC4xNzQzNDYsIDAuMTg4NTE0LCAwLjMxNTgwOSwgMC41Mjc3LCAwLjczOTYwNywgMS4yMzM4OCwgMS41MTYzNiIsIFwKLSAgICAgICAgICAiMC4xODQ1NjcsIDAuMTk4NzM2LCAwLjMyNjA0MSwgMC41Mzc5MjksIDAuNzQ5ODIzLCAxLjI0NDE0LCAxLjUyNjUzIiwgXAotICAgICAgICAgICIwLjE5MzI0LCAwLjIwNzQ1OCwgMC4zMzQ3NDcsIDAuNTQ2NjU2LCAwLjc1ODUzNSwgMS4yNTI5MywgMS41MzUzIiwgXAotICAgICAgICAgICIwLjIwNTAwNywgMC4yMTkxNzUsIDAuMzQ2NDY0LCAwLjU1ODM1NywgMC43NzAyNSwgMS4yNjQ1OCwgMS41NDcwMSIsIFwKLSAgICAgICAgICAiMC4yMTM4MjcsIDAuMjI4MDE0LCAwLjM1NTI5NCwgMC41NjcyMDcsIDAuNzc5MDc2LCAxLjI3MzQsIDEuNTU1OTkiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTU0NSwgMC4xODMxMzYsIDAuNDQyODY2LCAwLjg3Nzk0NiwgMS4zMTQ1LCAyLjMyODIzLCAyLjkwODA1IiwgXAotICAgICAgICAgICIwLjE1NDY2MywgMC4xODMxNCwgMC40NDI4NjcsIDAuODc4MDE5LCAxLjMxMjg0LCAyLjMyNzksIDIuOTA3OTEiLCBcCi0gICAgICAgICAgIjAuMTU0NTAyLCAwLjE4MzEzNiwgMC40NDI4NzksIDAuODc3OTU0LCAxLjMxNDQ5LCAyLjMyODIyLCAyLjkwODA2IiwgXAotICAgICAgICAgICIwLjE1NDU2NywgMC4xODMxMzgsIDAuNDQyODc2LCAwLjg3Nzk4NiwgMS4zMTI4NSwgMi4zMjc4OSwgMi45MTEzNiIsIFwKLSAgICAgICAgICAiMC4xNTQ2NzEsIDAuMTgzMTc1LCAwLjQ0MzAzMiwgMC44Nzc3OTUsIDEuMzEzMDMsIDIuMzMwOTQsIDIuOTA4MzciLCBcCi0gICAgICAgICAgIjAuMTU0NTYsIDAuMTgzMzUzLCAwLjQ0Mjc2OSwgMC44Nzc4MzQsIDEuMzE0MjksIDIuMzMwNiwgMi45MDgzNyIsIFwKLSAgICAgICAgICAiMC4xNTQ3MSwgMC4xODMzNTcsIDAuNDQzNTE1LCAwLjg3ODc5NCwgMS4zMTI5OCwgMi4zMjc3OSwgMi45MTEzOCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNTQxNDcsIDAuMTY4MDQ2LCAwLjI5MjY4MiwgMC41MDAyNTksIDAuNzA3NzAzLCAxLjE5MTc5LCAxLjQ2ODU5IiwgXAotICAgICAgICAgICIwLjE2MzE2OCwgMC4xNzcwNjcsIDAuMzAxNzE2LCAwLjUwOTI3LCAwLjcxNjcxNywgMS4yMDA4MSwgMS40NzczNiIsIFwKLSAgICAgICAgICAiMC4xNzQ3MjUsIDAuMTg4NjIzLCAwLjMxMzI1NywgMC41MjA3ODUsIDAuNzI4Mjc2LCAxLjIxMjM2LCAxLjQ4OSIsIFwKLSAgICAgICAgICAiMC4xODU0NDMsIDAuMTk5MzQyLCAwLjMyMzk4OCwgMC41MzE1NCwgMC43Mzg5ODgsIDEuMjIzMDcsIDEuNDk5NjgiLCBcCi0gICAgICAgICAgIjAuMTk0NzQ3LCAwLjIwODYzMiwgMC4zMzMyOCwgMC41NDA4MDgsIDAuNzQ4Mjg0LCAxLjIzMjM1LCAxLjUwODk2IiwgXAotICAgICAgICAgICIwLjIwNzU4NSwgMC4yMjE0NzIsIDAuMzQ2MTI0LCAwLjU1MzYzOSwgMC43NjEyMTksIDEuMjQ1MTksIDEuNTIxODEiLCBcCi0gICAgICAgICAgIjAuMjE3MywgMC4yMzEyMDIsIDAuMzU1ODQ2LCAwLjU2MzM3MiwgMC43NzA5MTksIDEuMjU0OTIsIDEuNTMxNTMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTQ4NzI3LCAwLjE3NjA5MSwgMC40MjQ4NzgsIDAuODQxNDg3LCAxLjI1NjcxLCAyLjIyODQ4LCAyLjc4MDMiLCBcCi0gICAgICAgICAgIjAuMTQ4NzI1LCAwLjE3NjA3OSwgMC40MjQxMzQsIDAuODM5MDY5LCAxLjI1NjU4LCAyLjIyODM5LCAyLjc4NzcxIiwgXAotICAgICAgICAgICIwLjE0ODcyOSwgMC4xNzYwNzYsIDAuNDI0ODMsIDAuODQxNTMxLCAxLjI1NjU5LCAyLjIyODI3LCAyLjc4ODEyIiwgXAotICAgICAgICAgICIwLjE0ODcyNiwgMC4xNzYwNjEsIDAuNDI0MzI2LCAwLjg0MTQxOCwgMS4yNTY0NSwgMi4yMjgwOCwgMi43ODMzNiIsIFwKLSAgICAgICAgICAiMC4xNDg2ODUsIDAuMTc2MDY2LCAwLjQyNDEzMiwgMC44NDE1NywgMS4yNTY0MywgMi4yMzE1OCwgMi43ODQ4IiwgXAotICAgICAgICAgICIwLjE0ODkwNSwgMC4xNzU5NDUsIDAuNDI0MjMzLCAwLjg0MTUxNSwgMS4yNTU2NywgMi4yMjkyMiwgMi43ODMxNCIsIFwKLSAgICAgICAgICAiMC4xNDg3NDMsIDAuMTc1OTY5LCAwLjQyNDg4OSwgMC44NDE1NTksIDEuMjU4NiwgMi4yMjk4NywgMi43ODI4NiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTMSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTE1Nzg2LCAwLjEyOTk1OCwgMC4yNTcyNjEsIDAuNDY5MjIsIDAuNjgxMDg2LCAxLjE3NTQzLCAxLjQ1Nzg0IiwgXAotICAgICAgICAgICIwLjEyNDc3LCAwLjEzODk0MywgMC4yNjYyNTksIDAuNDc4MTcxLCAwLjY5MDExOCwgMS4xODQzNywgMS40NjY4NSIsIFwKLSAgICAgICAgICAiMC4xMzYzNiwgMC4xNTA1MjQsIDAuMjc3ODYsIDAuNDg5Nzc2LCAwLjcwMTY2MywgMS4xOTYwNywgMS40Nzg0NSIsIFwKLSAgICAgICAgICAiMC4xNDc1MTUsIDAuMTYxNjk2LCAwLjI4OTAzLCAwLjUwMDk2LCAwLjcxMjg5NSwgMS4yMDcyMiwgMS40ODk2MyIsIFwKLSAgICAgICAgICAiMC4xNTc1MzUsIDAuMTcxNzE0LCAwLjI5OTA0OCwgMC41MTEwMTcsIDAuNzIyODc5LCAxLjIxNzIsIDEuNDk5NzUiLCBcCi0gICAgICAgICAgIjAuMTcxNTg5LCAwLjE4NTc2MSwgMC4zMTMxLCAwLjUyNTA1OSwgMC43MzY5MjEsIDEuMjMxMjQsIDEuNTEzODUiLCBcCi0gICAgICAgICAgIjAuMTgyMjgsIDAuMTk2NDk4LCAwLjMyMzgyNCwgMC41MzU3NDgsIDAuNzQ3NjExLCAxLjI0MTk2LCAxLjUyNDQzIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE1NDc2MSwgMC4xODMyNTcsIDAuNDQzMTMxLCAwLjg3NzM3OSwgMS4zMTI5MywgMi4zMjc5OSwgMi45MTE3MSIsIFwKLSAgICAgICAgICAiMC4xNTQ4MDYsIDAuMTgzMTY2LCAwLjQ0Mjg5MiwgMC44Nzc5NTEsIDEuMzE0NjIsIDIuMzI4MDUsIDIuOTA4NiIsIFwKLSAgICAgICAgICAiMC4xNTQ4MzgsIDAuMTgzNDA4LCAwLjQ0MzA3NCwgMC44Nzg4ODEsIDEuMzEyOTYsIDIuMzI3MjQsIDIuOTA4MjIiLCBcCi0gICAgICAgICAgIjAuMTU0ODc2LCAwLjE4MzQxMiwgMC40NDMwODQsIDAuODc3Nzg5LCAxLjMxNDM4LCAyLjMyNzkyLCAyLjkwODI2IiwgXAotICAgICAgICAgICIwLjE1NTEzNywgMC4xODM3ODcsIDAuNDQzNjA3LCAwLjg3NzY1MSwgMS4zMTI4OCwgMi4zMjgzMiwgMi45MTEyOSIsIFwKLSAgICAgICAgICAiMC4xNTU4NzIsIDAuMTg0MzM4LCAwLjQ0MzIzOSwgMC44Nzg4NTgsIDEuMzEyODcsIDIuMzMwNDMsIDIuOTA3MDEiLCBcCi0gICAgICAgICAgIjAuMTU2NDkyLCAwLjE4NDc3NywgMC40NDM5MywgMC44Nzc4NzksIDEuMzE0MTgsIDIuMzI4MDcsIDIuOTA4MzMiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTE2MDc4LCAwLjEyOTk2NSwgMC4yNTQ2MDksIDAuNDYyMTIxLCAwLjY2OTY0NCwgMS4xNTM2OCwgMS40MzAyNyIsIFwKLSAgICAgICAgICAiMC4xMjQ4MTgsIDAuMTM4NzA4LCAwLjI2MzM3MiwgMC40NzA4NzksIDAuNjc4MzQ1LCAxLjE2MjQ2LCAxLjQzOTAxIiwgXAotICAgICAgICAgICIwLjEzNTk4MywgMC4xNDk4NzIsIDAuMjc0NTQyLCAwLjQ4MjA3MiwgMC42ODk1MzEsIDEuMTczNzMsIDEuNDUwMjIiLCBcCi0gICAgICAgICAgIjAuMTQ2NzM1LCAwLjE2MDYzNCwgMC4yODUyOTUsIDAuNDkyODMxLCAwLjcwMDMxLCAxLjE4NDM5LCAxLjQ2MTAxIiwgXAotICAgICAgICAgICIwLjE1NjE1MywgMC4xNzAwMzcsIDAuMjk0NzE0LCAwLjUwMjI2MSwgMC43MDk3NjIsIDEuMTkzODksIDEuNDcwNDQiLCBcCi0gICAgICAgICAgIjAuMTY5MDE2LCAwLjE4MjkyNiwgMC4zMDc1ODUsIDAuNTE1MTQ3LCAwLjcyMjYxMSwgMS4yMDY2OSwgMS40ODMzIiwgXAotICAgICAgICAgICIwLjE3ODY2MSwgMC4xOTI1ODUsIDAuMzE3MjcyLCAwLjUyNDgyMSwgMC43MzIzMTEsIDEuMjE2MzYsIDEuNDkzMDciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTQ4NzM1LCAwLjE3NjA0MywgMC40MjQyOCwgMC44NDE1MjUsIDEuMjU4NDcsIDIuMjMxNjUsIDIuNzg0MzgiLCBcCi0gICAgICAgICAgIjAuMTQ4NzQ1LCAwLjE3NjExMSwgMC40MjQ3NjYsIDAuODQxNTY5LCAxLjI1Nzg2LCAyLjIzMTg2LCAyLjc4NjM2IiwgXAotICAgICAgICAgICIwLjE0ODc4MiwgMC4xNzYwNSwgMC40MjQyMTQsIDAuODQxNTU1LCAxLjI1ODM5LCAyLjIzMjA2LCAyLjc4NjI3IiwgXAotICAgICAgICAgICIwLjE0ODk1MiwgMC4xNzYxNTcsIDAuNDI0ODUzLCAwLjg0MTUxNiwgMS4yNTcwNCwgMi4yMjc2NSwgMi43ODc3NCIsIFwKLSAgICAgICAgICAiMC4xNDk0MjYsIDAuMTc2NjI1LCAwLjQyNDUwMSwgMC44NDE1NzIsIDEuMjU3MjEsIDIuMjMxOTUsIDIuNzg4MTIiLCBcCi0gICAgICAgICAgIjAuMTUwMDgyLCAwLjE3NzA5NSwgMC40MjUwNTksIDAuODQxNTg0LCAxLjI1ODQ4LCAyLjIyOTM4LCAyLjc4Mjk0IiwgXAotICAgICAgICAgICIwLjE1MDY2NiwgMC4xNzc2ODYsIDAuNDI1NDA0LCAwLjg0MTYzNSwgMS4yNTg2LCAyLjIyOTcxLCAyLjc4ODM1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlMxIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMzQ5OTcsIDAuMTQ5MTQ1LCAwLjI3NjQ4NSwgMC40ODgzNjgsIDAuNzAwMjU2LCAxLjE5NDU2LCAxLjQ3NzIzIiwgXAotICAgICAgICAgICIwLjE0NDc0NSwgMC4xNTg4OTUsIDAuMjg2MjIsIDAuNDk4MTM1LCAwLjcwOTk3NywgMS4yMDQzMiwgMS40ODY3MiIsIFwKLSAgICAgICAgICAiMC4xNTU0NDksIDAuMTY5NjE2LCAwLjI5NjkxNSwgMC41MDg4MDgsIDAuNzIwNjgsIDEuMjE1MTIsIDEuNDk3NDciLCBcCi0gICAgICAgICAgIjAuMTY0NTQ2LCAwLjE3ODcxNywgMC4zMDYwNTMsIDAuNTE3OTE2LCAwLjcyOTgzMSwgMS4yMjQxMSwgMS41MDY1OSIsIFwKLSAgICAgICAgICAiMC4xNzE2NDYsIDAuMTg1ODAxLCAwLjMxMzM1NywgMC41MjUyNTQsIDAuNzM3MTIzLCAxLjIzMTQ0LCAxLjUxMzkxIiwgXAotICAgICAgICAgICIwLjE4MTU5NiwgMC4xOTU3OSwgMC4zMjMwODIsIDAuNTM0OTg4LCAwLjc0NjkzMSwgMS4yNDEwNiwgMS41MjM2NCIsIFwKLSAgICAgICAgICAiMC4xODg5NDQsIDAuMjAzMTM4LCAwLjMzMDQ5NCwgMC41NDI0MTIsIDAuNzU0MjY3LCAxLjI0ODcsIDEuNTMxMTciKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTU0NjI2LCAwLjE4MzEyOCwgMC40NDI1NTksIDAuODc4OTI5LCAxLjMxMjIxLCAyLjMyNzg2LCAyLjkxMjAzIiwgXAotICAgICAgICAgICIwLjE1NDYyOSwgMC4xODMxMzEsIDAuNDQzNjExLCAwLjg3NzQ2MywgMS4zMTI4NywgMi4zMzA3NiwgMi45MDgyNCIsIFwKLSAgICAgICAgICAiMC4xNTQ0MzcsIDAuMTgzMDkxLCAwLjQ0Mjg3OSwgMC44Nzc5MjIsIDEuMzEzMTMsIDIuMzMwOTMsIDIuOTA4MTMiLCBcCi0gICAgICAgICAgIjAuMTU0NDM0LCAwLjE4MzA5LCAwLjQ0MjczOSwgMC44Nzc5OTMsIDEuMzE0NDgsIDIuMzI4MTgsIDIuOTA3ODYiLCBcCi0gICAgICAgICAgIjAuMTU0NzM0LCAwLjE4MzIyNSwgMC40NDI3NTksIDAuODc3NzcxLCAxLjMxMzAzLCAyLjMyNzk1LCAyLjkwODUyIiwgXAotICAgICAgICAgICIwLjE1NDY5NSwgMC4xODMyODYsIDAuNDQzMTIyLCAwLjg3Nzc4NywgMS4zMTQzLCAyLjMzMDQsIDIuOTExMTkiLCBcCi0gICAgICAgICAgIjAuMTU0NjY0LCAwLjE4MzMxMywgMC40NDMwNywgMC44Nzc5NTksIDEuMzEyOTIsIDIuMzMwNDcsIDIuOTExMTIiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTM1NzgzLCAwLjE0OTY4NywgMC4yNzQzNjUsIDAuNDgxODk2LCAwLjY4OTM4NywgMS4xNzM0OCwgMS40NTAxIiwgXAotICAgICAgICAgICIwLjE0NTkzMSwgMC4xNTk4MzYsIDAuMjg0NTA3LCAwLjQ5MjA0MiwgMC42OTk1MjksIDEuMTgzNjIsIDEuNDYwMjMiLCBcCi0gICAgICAgICAgIjAuMTU3NDQ5LCAwLjE3MTM1NCwgMC4yOTYwMywgMC41MDM2MTgsIDAuNzExMDU0LCAxLjE5NTE0LCAxLjQ3MTc1IiwgXAotICAgICAgICAgICIwLjE2NjgxOSwgMC4xODA3MiwgMC4zMDUzODgsIDAuNTEyOTY0LCAwLjcyMDQyMiwgMS4yMDQ1MSwgMS40ODEzIiwgXAotICAgICAgICAgICIwLjE3NTEwNCwgMC4xODkwMDksIDAuMzEzNjg5LCAwLjUyMTI1MywgMC43Mjg2OTksIDEuMjEyNzksIDEuNDg5NCIsIFwKLSAgICAgICAgICAiMC4xODYxLCAwLjIwMDAxMywgMC4zMjQ3MDYsIDAuNTMyMzA2LCAwLjczOTc5OSwgMS4yMjM4OSwgMS41MDA0NSIsIFwKLSAgICAgICAgICAiMC4xOTQ0MjgsIDAuMjA4MzYsIDAuMzMzMTE3LCAwLjU0MDY4MywgMC43NDgxNTYsIDEuMjMyMzUsIDEuNTA4OTQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTQ4ODUzLCAwLjE3NjIwMiwgMC40MjQ1MTksIDAuODQxNjUsIDEuMjU2MzksIDIuMjI3OTksIDIuNzgzNjMiLCBcCi0gICAgICAgICAgIjAuMTQ4ODU0LCAwLjE3NjA3OSwgMC40MjQzNjgsIDAuODQxNTk2LCAxLjI1NzUsIDIuMjI3NTksIDIuNzgzMSIsIFwKLSAgICAgICAgICAiMC4xNDg4MzcsIDAuMTc2MTksIDAuNDI0NDI2LCAwLjg0MTM4MywgMS4yNTY0MiwgMi4yMjgwMiwgMi43ODMwOSIsIFwKLSAgICAgICAgICAiMC4xNDg4MjMsIDAuMTc2MTk5LCAwLjQyNDkyMSwgMC44Mzk3MjQsIDEuMjU2NDYsIDIuMjI4MDMsIDIuNzg4NjIiLCBcCi0gICAgICAgICAgIjAuMTQ4OTQ5LCAwLjE3NjI5MywgMC40MjQ0MiwgMC44NDE0NCwgMS4yNTg0NywgMi4yMzA1MiwgMi43ODIxNiIsIFwKLSAgICAgICAgICAiMC4xNDkwNTQsIDAuMTc2MjY1LCAwLjQyNDY1OCwgMC44NDA4NjcsIDEuMjU3OTIsIDIuMjMxODksIDIuNzg3NzQiLCBcCi0gICAgICAgICAgIjAuMTQ5MDc2LCAwLjE3NjMxOSwgMC40MjQ2MTEsIDAuODM5NTEsIDEuMjU3ODksIDIuMjMxMDcsIDIuNzg3OTMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDM1NjYsIDAuMDAzNTY3LCAwLjAwMzU3MiwgMC4wMDM1NzQsIDAuMDAzNTc1LCAwLjAwMzU3NiwgMC4wMDM1NzYiLCBcCi0gICAgICAgICAgIjAuMDAzNTU0LCAwLjAwMzU1NSwgMC4wMDM1NiwgMC4wMDM1NjIsIDAuMDAzNTYzLCAwLjAwMzU2MywgMC4wMDM1NjQiLCBcCi0gICAgICAgICAgIjAuMDAzNTQ2LCAwLjAwMzU0NywgMC4wMDM1NTIsIDAuMDAzNTU0LCAwLjAwMzU1NSwgMC4wMDM1NTYsIDAuMDAzNTU1IiwgXAotICAgICAgICAgICIwLjAwMzU0LCAwLjAwMzU0MiwgMC4wMDM1NDcsIDAuMDAzNTQ5LCAwLjAwMzU1LCAwLjAwMzU1LCAwLjAwMzU1IiwgXAotICAgICAgICAgICIwLjAwMzU0LCAwLjAwMzU0MiwgMC4wMDM1NDYsIDAuMDAzNTQ5LCAwLjAwMzU0OSwgMC4wMDM1NSwgMC4wMDM1NSIsIFwKLSAgICAgICAgICAiMC4wMDM1NCwgMC4wMDM1NDIsIDAuMDAzNTQ3LCAwLjAwMzU1LCAwLjAwMzU1LCAwLjAwMzU1MSwgMC4wMDM1NTIiLCBcCi0gICAgICAgICAgIjAuMDAzNTQzLCAwLjAwMzU0NCwgMC4wMDM1NDksIDAuMDAzNTUyLCAwLjAwMzU1MiwgMC4wMDM1NTMsIDAuMDAzNTUzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzMTQxLCAwLjAwMzE0MywgMC4wMDMxNDksIDAuMDAzMTUxLCAwLjAwMzE1MiwgMC4wMDMxNTMsIDAuMDAzMTUzIiwgXAotICAgICAgICAgICIwLjAwMzEyLCAwLjAwMzEyMSwgMC4wMDMxMjgsIDAuMDAzMTMsIDAuMDAzMTMxLCAwLjAwMzEzMSwgMC4wMDMxMzEiLCBcCi0gICAgICAgICAgIjAuMDAzMTA4LCAwLjAwMzExLCAwLjAwMzExNiwgMC4wMDMxMTksIDAuMDAzMTE5LCAwLjAwMzEyLCAwLjAwMzEyIiwgXAotICAgICAgICAgICIwLjAwMzEwNCwgMC4wMDMxMDYsIDAuMDAzMTEyLCAwLjAwMzExNCwgMC4wMDMxMTUsIDAuMDAzMTE1LCAwLjAwMzExNiIsIFwKLSAgICAgICAgICAiMC4wMDMxMDEsIDAuMDAzMTAzLCAwLjAwMzExLCAwLjAwMzExMiwgMC4wMDMxMTMsIDAuMDAzMTEzLCAwLjAwMzExNCIsIFwKLSAgICAgICAgICAiMC4wMDMxMDcsIDAuMDAzMTA4LCAwLjAwMzExNSwgMC4wMDMxMTcsIDAuMDAzMTE4LCAwLjAwMzExOSwgMC4wMDMxMTkiLCBcCi0gICAgICAgICAgIjAuMDAzMTExLCAwLjAwMzExMiwgMC4wMDMxMTksIDAuMDAzMTIyLCAwLjAwMzEyMywgMC4wMDMxMjMsIDAuMDAzMTIzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzODAyLCAwLjAwMzgwNCwgMC4wMDM4MDksIDAuMDAzODExLCAwLjAwMzgxMiwgMC4wMDM4MTIsIDAuMDAzODEyIiwgXAotICAgICAgICAgICIwLjAwMzc5LCAwLjAwMzc5MSwgMC4wMDM3OTYsIDAuMDAzNzk4LCAwLjAwMzc5OSwgMC4wMDM3OTksIDAuMDAzNzk5IiwgXAotICAgICAgICAgICIwLjAwMzc4MywgMC4wMDM3ODQsIDAuMDAzNzg5LCAwLjAwMzc5MSwgMC4wMDM3OTIsIDAuMDAzNzkzLCAwLjAwMzc5MyIsIFwKLSAgICAgICAgICAiMC4wMDM3NzksIDAuMDAzNzgxLCAwLjAwMzc4NiwgMC4wMDM3ODgsIDAuMDAzNzg4LCAwLjAwMzc5LCAwLjAwMzc4OSIsIFwKLSAgICAgICAgICAiMC4wMDM3NzcsIDAuMDAzNzc5LCAwLjAwMzc4NCwgMC4wMDM3ODYsIDAuMDAzNzg3LCAwLjAwMzc4NywgMC4wMDM3ODgiLCBcCi0gICAgICAgICAgIjAuMDAzNzc5LCAwLjAwMzc4MSwgMC4wMDM3ODYsIDAuMDAzNzg4LCAwLjAwMzc4OSwgMC4wMDM3OSwgMC4wMDM3OSIsIFwKLSAgICAgICAgICAiMC4wMDM3ODIsIDAuMDAzNzgzLCAwLjAwMzc4OCwgMC4wMDM3OSwgMC4wMDM3OTEsIDAuMDAzNzkyLCAwLjAwMzc5MiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjk1MywgMC4wMDI5NTUsIDAuMDAyOTYxLCAwLjAwMjk2MywgMC4wMDI5NjQsIDAuMDAyOTY1LCAwLjAwMjk2NSIsIFwKLSAgICAgICAgICAiMC4wMDI5MzIsIDAuMDAyOTM0LCAwLjAwMjk0LCAwLjAwMjk0MiwgMC4wMDI5NDMsIDAuMDAyOTQ0LCAwLjAwMjk0NCIsIFwKLSAgICAgICAgICAiMC4wMDI5MjEsIDAuMDAyOTIzLCAwLjAwMjkyOSwgMC4wMDI5MzIsIDAuMDAyOTMzLCAwLjAwMjkzMywgMC4wMDI5MzMiLCBcCi0gICAgICAgICAgIjAuMDAyOTE2LCAwLjAwMjkxOCwgMC4wMDI5MjQsIDAuMDAyOTI3LCAwLjAwMjkyNywgMC4wMDI5MjgsIDAuMDAyOTI4IiwgXAotICAgICAgICAgICIwLjAwMjkxNCwgMC4wMDI5MTYsIDAuMDAyOTIzLCAwLjAwMjkyNSwgMC4wMDI5MjYsIDAuMDAyOTI2LCAwLjAwMjkyNyIsIFwKLSAgICAgICAgICAiMC4wMDI5MTksIDAuMDAyOTIxLCAwLjAwMjkyOCwgMC4wMDI5MywgMC4wMDI5MzEsIDAuMDAyOTMyLCAwLjAwMjkzMiIsIFwKLSAgICAgICAgICAiMC4wMDI5MjMsIDAuMDAyOTI1LCAwLjAwMjkzMSwgMC4wMDI5MzQsIDAuMDAyOTM1LCAwLjAwMjkzNSwgMC4wMDI5MzYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI3OTksIDAuMDAyOCwgMC4wMDI4MDYsIDAuMDAyODA4LCAwLjAwMjgwOCwgMC4wMDI4MDksIDAuMDAyODA5IiwgXAotICAgICAgICAgICIwLjAwMjc3NCwgMC4wMDI3NzUsIDAuMDAyNzgxLCAwLjAwMjc4MywgMC4wMDI3ODMsIDAuMDAyNzg0LCAwLjAwMjc4NSIsIFwKLSAgICAgICAgICAiMC4wMDI3NjksIDAuMDAyNzcsIDAuMDAyNzc2LCAwLjAwMjc3OCwgMC4wMDI3NzksIDAuMDAyNzgsIDAuMDAyNzgiLCBcCi0gICAgICAgICAgIjAuMDAyNzczLCAwLjAwMjc3NCwgMC4wMDI3OCwgMC4wMDI3ODIsIDAuMDAyNzgzLCAwLjAwMjc4NCwgMC4wMDI3ODQiLCBcCi0gICAgICAgICAgIjAuMDAyNzgyLCAwLjAwMjc4MywgMC4wMDI3ODksIDAuMDAyNzkxLCAwLjAwMjc5MiwgMC4wMDI3OTIsIDAuMDAyNzkzIiwgXAotICAgICAgICAgICIwLjAwMjgwNSwgMC4wMDI4MDYsIDAuMDAyODExLCAwLjAwMjgxMywgMC4wMDI4MTUsIDAuMDAyODE1LCAwLjAwMjgxNSIsIFwKLSAgICAgICAgICAiMC4wMDI4MjgsIDAuMDAyODI5LCAwLjAwMjgzNCwgMC4wMDI4MzYsIDAuMDAyODM3LCAwLjAwMjgzOCwgMC4wMDI4MzkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI4NzIsIDAuMDAyODc0LCAwLjAwMjg4LCAwLjAwMjg4MywgMC4wMDI4ODQsIDAuMDAyODg0LCAwLjAwMjg4NCIsIFwKLSAgICAgICAgICAiMC4wMDI4NDMsIDAuMDAyODQ1LCAwLjAwMjg1MSwgMC4wMDI4NTQsIDAuMDAyODU1LCAwLjAwMjg1NSwgMC4wMDI4NTYiLCBcCi0gICAgICAgICAgIjAuMDAyODQ0LCAwLjAwMjg0NiwgMC4wMDI4NTIsIDAuMDAyODU1LCAwLjAwMjg1NiwgMC4wMDI4NTcsIDAuMDAyODU3IiwgXAotICAgICAgICAgICIwLjAwMjg0NSwgMC4wMDI4NDcsIDAuMDAyODUzLCAwLjAwMjg1NiwgMC4wMDI4NTcsIDAuMDAyODU4LCAwLjAwMjg1OCIsIFwKLSAgICAgICAgICAiMC4wMDI4NTksIDAuMDAyODYxLCAwLjAwMjg2OCwgMC4wMDI4NywgMC4wMDI4NzEsIDAuMDAyODcyLCAwLjAwMjg3MiIsIFwKLSAgICAgICAgICAiMC4wMDI4ODEsIDAuMDAyODgzLCAwLjAwMjg5LCAwLjAwMjg5MiwgMC4wMDI4OTMsIDAuMDAyODk0LCAwLjAwMjg5NSIsIFwKLSAgICAgICAgICAiMC4wMDI5MDgsIDAuMDAyOTA5LCAwLjAwMjkxNCwgMC4wMDI5MTcsIDAuMDAyOTE4LCAwLjAwMjkxOSwgMC4wMDI5MTkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTMCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzNDQ3LCAwLjAwMzQ0OCwgMC4wMDM0NTMsIDAuMDAzNDU1LCAwLjAwMzQ1NiwgMC4wMDM0NTYsIDAuMDAzNDU3IiwgXAotICAgICAgICAgICIwLjAwMzQxOSwgMC4wMDM0MjEsIDAuMDAzNDI2LCAwLjAwMzQyOCwgMC4wMDM0MjksIDAuMDAzNDI5LCAwLjAwMzQyOSIsIFwKLSAgICAgICAgICAiMC4wMDM0MTgsIDAuMDAzNDIsIDAuMDAzNDI0LCAwLjAwMzQyNiwgMC4wMDM0MjcsIDAuMDAzNDI4LCAwLjAwMzQyOCIsIFwKLSAgICAgICAgICAiMC4wMDM0MTgsIDAuMDAzNDE5LCAwLjAwMzQyNCwgMC4wMDM0MjYsIDAuMDAzNDI4LCAwLjAwMzQyNywgMC4wMDM0MjgiLCBcCi0gICAgICAgICAgIjAuMDAzNDI1LCAwLjAwMzQyNywgMC4wMDM0MzEsIDAuMDAzNDMzLCAwLjAwMzQzNCwgMC4wMDM0MzUsIDAuMDAzNDM0IiwgXAotICAgICAgICAgICIwLjAwMzQ0OCwgMC4wMDM0NSwgMC4wMDM0NTUsIDAuMDAzNDU3LCAwLjAwMzQ1OCwgMC4wMDM0NTgsIDAuMDAzNDU3IiwgXAotICAgICAgICAgICIwLjAwMzQ3MSwgMC4wMDM0NzMsIDAuMDAzNDcxLCAwLjAwMzQ4LCAwLjAwMzQ3MywgMC4wMDM0ODEsIDAuMDAzNDgxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1MDg4LCAwLjAwNTA5LCAwLjAwNTA5NiwgMC4wMDUwOTksIDAuMDA1MDk5LCAwLjAwNTEsIDAuMDA1MSIsIFwKLSAgICAgICAgICAiMC4wMDUwNywgMC4wMDUwNzIsIDAuMDA1MDc4LCAwLjAwNTA4LCAwLjAwNTA4MSwgMC4wMDUwODIsIDAuMDA1MDgyIiwgXAotICAgICAgICAgICIwLjAwNTA2OCwgMC4wMDUwNywgMC4wMDUwNzYsIDAuMDA1MDc4LCAwLjAwNTA3OSwgMC4wMDUwNzksIDAuMDA1MDgiLCBcCi0gICAgICAgICAgIjAuMDA1MDY2LCAwLjAwNTA2OCwgMC4wMDUwNzQsIDAuMDA1MDc2LCAwLjAwNTA3NywgMC4wMDUwNzgsIDAuMDA1MDc4IiwgXAotICAgICAgICAgICIwLjAwNTA3NCwgMC4wMDUwNzUsIDAuMDA1MDc2LCAwLjAwNTA4NCwgMC4wMDUwODQsIDAuMDA1MDg1LCAwLjAwNTA4NSIsIFwKLSAgICAgICAgICAiMC4wMDUwOTYsIDAuMDA1MDk3LCAwLjAwNTEwMywgMC4wMDUxMDYsIDAuMDA1MTA3LCAwLjAwNTEwNywgMC4wMDUxMDciLCBcCi0gICAgICAgICAgIjAuMDA1MTEyLCAwLjAwNTExMiwgMC4wMDUxMiwgMC4wMDUxMTksIDAuMDA1MTIzLCAwLjAwNTEyNCwgMC4wMDUxMjQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTMSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzNDAyLCAwLjAwMzQwMywgMC4wMDM0MDksIDAuMDAzNDExLCAwLjAwMzQxMiwgMC4wMDM0MTMsIDAuMDAzNDEzIiwgXAotICAgICAgICAgICIwLjAwMzM4MiwgMC4wMDMzODQsIDAuMDAzMzg5LCAwLjAwMzM5MiwgMC4wMDMzOTIsIDAuMDAzMzk0LCAwLjAwMzM5MyIsIFwKLSAgICAgICAgICAiMC4wMDMzODIsIDAuMDAzMzgzLCAwLjAwMzM4OSwgMC4wMDMzOTEsIDAuMDAzMzkyLCAwLjAwMzM5MywgMC4wMDMzOTIiLCBcCi0gICAgICAgICAgIjAuMDAzMzgxLCAwLjAwMzM4MiwgMC4wMDMzODgsIDAuMDAzMzksIDAuMDAzMzkxLCAwLjAwMzM5MSwgMC4wMDMzOTIiLCBcCi0gICAgICAgICAgIjAuMDAzMzg5LCAwLjAwMzM5LCAwLjAwMzM5NSwgMC4wMDMzOTcsIDAuMDAzMzk4LCAwLjAwMzM5OSwgMC4wMDMzOTkiLCBcCi0gICAgICAgICAgIjAuMDAzNDA0LCAwLjAwMzQwNywgMC4wMDM0MTIsIDAuMDAzNDE1LCAwLjAwMzQxNiwgMC4wMDM0MTYsIDAuMDAzNDE3IiwgXAotICAgICAgICAgICIwLjAwMzQyMiwgMC4wMDM0MjMsIDAuMDAzNDI5LCAwLjAwMzQzMSwgMC4wMDM0MjksIDAuMDAzNDMyLCAwLjAwMzQzMiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjUxNCwgMC4wMDI1MTYsIDAuMDAyNTIyLCAwLjAwMjUyNSwgMC4wMDI1MjYsIDAuMDAyNTI3LCAwLjAwMjUyNyIsIFwKLSAgICAgICAgICAiMC4wMDI0ODgsIDAuMDAyNDksIDAuMDAyNDk3LCAwLjAwMjQ5OSwgMC4wMDI1LCAwLjAwMjUwMSwgMC4wMDI1MDEiLCBcCi0gICAgICAgICAgIjAuMDAyNDgzLCAwLjAwMjQ4NSwgMC4wMDI0OTEsIDAuMDAyNDk0LCAwLjAwMjQ5NCwgMC4wMDI0OTUsIDAuMDAyNDk1IiwgXAotICAgICAgICAgICIwLjAwMjQ5MSwgMC4wMDI0OTIsIDAuMDAyNDk5LCAwLjAwMjUwMSwgMC4wMDI1MDIsIDAuMDAyNTAzLCAwLjAwMjUwMyIsIFwKLSAgICAgICAgICAiMC4wMDI0ODgsIDAuMDAyNDksIDAuMDAyNDk2LCAwLjAwMjQ5OSwgMC4wMDI1LCAwLjAwMjUsIDAuMDAyNTAxIiwgXAotICAgICAgICAgICIwLjAwMjUwOCwgMC4wMDI1MDksIDAuMDAyNTE2LCAwLjAwMjUxOCwgMC4wMDI1MTksIDAuMDAyNTIsIDAuMDAyNTIiLCBcCi0gICAgICAgICAgIjAuMDAyNTI5LCAwLjAwMjUzMSwgMC4wMDI1MzcsIDAuMDAyNTQxLCAwLjAwMjU0MiwgMC4wMDI1NDMsIDAuMDAyNTQzIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBNWEk0WDQgKgotICogLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChNWEk0WDQpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC40MzgxMjg7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYyNjE5NTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MjQ2NzQ7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjI2MTk1OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTAyLCAwLjAwMTAwMSwgMC4wMDA5OTEsIDAuMDAwOTg2LCAwLjAwMDk4NSwgMC4wMDA5ODYsIDAuMDAwOTkxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyNjQsIDAuMDAyNjI5LCAwLjAwMjYyNCwgMC4wMDI2MiwgMC4wMDI2MjEsIDAuMDAyNjIxLCAwLjAwMjYyNCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjM0Njk3OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYzMzE4MTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2MzQ2OTc7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjE4LCAwLjAwMDIyLCAwLjAwMDIyMSwgMC4wMDAyMjIsIDAuMDAwMjIyLCAwLjAwMDIyMiwgMC4wMDAyMjIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyMjksIDAuMDAwMjI3LCAwLjAwMDIyNywgMC4wMDAyMjcsIDAuMDAwMjI3LCAwLjAwMDIyNywgMC4wMDAyMjciKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEMpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY2NTg1OTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2NjQ0MjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2NjU4NTk7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwODk1LCAwLjAwMDg3NiwgMC4wMDA4NjYsIDAuMDAwODYyLCAwLjAwMDg2MSwgMC4wMDA4NjIsIDAuMDAwODY3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyNDYsIDAuMDAyNDQ5LCAwLjAwMjQ0MywgMC4wMDI0NDEsIDAuMDAyNDQsIDAuMDAyNDQyLCAwLjAwMjQ0NyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjEyOTQ3OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYxMTU3NzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2MTI5NDc7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjE2LCAwLjAwMDIyLCAwLjAwMDIyMSwgMC4wMDAyMjEsIDAuMDAwMjIxLCAwLjAwMDIyMiwgMC4wMDAyMjIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyMywgMC4wMDAyMjcsIDAuMDAwMjI3LCAwLjAwMDIyNywgMC4wMDAyMjcsIDAuMDAwMjI3LCAwLjAwMDIyNyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUzApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMjE1NjkxOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMjE1NjI2OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMjE1NjkxOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDM5LCAwLjAwMDM2MiwgMC4wMDAzNTgsIDAuMDAwMzYyLCAwLjAwMDM3NCwgMC4wMDA0MTMsIDAuMDAwNDQzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzMTE5LCAwLjAwMzA5NywgMC4wMDMwOTcsIDAuMDAzMDk3LCAwLjAwMzExNCwgMC4wMDMxMjcsIDAuMDAzMTQyIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTMSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNzU2Mjk7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNzU2MjQ7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNzU2Mjk7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNDUzLCAwLjAwMDQyNiwgMC4wMDA0MjIsIDAuMDAwNDI2LCAwLjAwMDQzMiwgMC4wMDA0NTQsIDAuMDAwNDc3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyODc0LCAwLjAwMjg1MiwgMC4wMDI4NTcsIDAuMDAyODU3LCAwLjAwMjg2NiwgMC4wMDI4ODQsIDAuMDAyOTA1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDEuMDMxMjY7Ci0gICAgZnVuY3Rpb24gOiAiKCEoKFMxICgoUzAgRCkgKyAoIVMwIEMpKSkgKyAoIVMxICgoUzAgQikgKyAoIVMwIEEpKSkpKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMzgyMzYsIDAuMjE4NjE4LCAwLjI5MTcxNSwgMC4zNDM4MDEsIDAuNDI3MDg3LCAwLjQ5OTk3NCwgMC42MDQwNDgiLCBcCi0gICAgICAgICAgIjAuMTQ2OTQxLCAwLjIyNzI4OSwgMC4zMDA0NTksIDAuMzUyNTU4LCAwLjQzNTg2LCAwLjUwODc1NCwgMC42MTI3OTYiLCBcCi0gICAgICAgICAgIjAuMTU2Nzc1LCAwLjIzNzE0MSwgMC4zMTAyNTksIDAuMzYyMzQsIDAuNDQ1NjIzLCAwLjUxODUzMSwgMC42MjI1NzMiLCBcCi0gICAgICAgICAgIjAuMTY2MzUyLCAwLjI0NjczLCAwLjMxOTgyOCwgMC4zNzE5MTQsIDAuNDU1MTk5LCAwLjUyODA4NSwgMC42MzIxNiIsIFwKLSAgICAgICAgICAiMC4xNzUyMDksIDAuMjU1NTY4LCAwLjMyODY4MiwgMC4zODA3ODksIDAuNDY0MDcyLCAwLjUzNjk1NSwgMC42NDEwNDQiLCBcCi0gICAgICAgICAgIjAuMTg4MDQsIDAuMjY4Mzc2LCAwLjM0MTQ5OSwgMC4zOTM2MDYsIDAuNDc2ODkyLCAwLjU0OTc3OSwgMC42NTM4NTMiLCBcCi0gICAgICAgICAgIjAuMTk3NzkxLCAwLjI3ODA4OSwgMC4zNTEyMzMsIDAuNDAzMzEzLCAwLjQ4NjYsIDAuNTU5NDksIDAuNjYzNTU1Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQ0OTI5LCAwLjE4ODA2NiwgMC4zMzY0MTksIDAuNDQ0MDYyLCAwLjYxNjQ5NywgMC43NjY4NzMsIDAuOTg0MjE3IiwgXAotICAgICAgICAgICIwLjA0NDg5MSwgMC4xODgyMTcsIDAuMzM2NjMsIDAuNDQzNzQzLCAwLjYxNTgzMywgMC43NjY2OTMsIDAuOTg0MTg2IiwgXAotICAgICAgICAgICIwLjA0NDg5LCAwLjE4ODIwNSwgMC4zMzY1MzQsIDAuNDQ0MDQ3LCAwLjYxNjQ1OCwgMC43NjY3MzUsIDAuOTg0MTg3IiwgXAotICAgICAgICAgICIwLjA0NDkzLCAwLjE4ODE1MSwgMC4zMzYzMTYsIDAuNDQ0MDU1LCAwLjYxNjQ4OCwgMC43NjY4NjgsIDAuOTg0MjA3IiwgXAotICAgICAgICAgICIwLjA0NDk0NCwgMC4xODgyMzMsIDAuMzM2NjQ0LCAwLjQ0NDEwNywgMC42MTU5MzcsIDAuNzY2ODc3LCAwLjk4NDIxNyIsIFwKLSAgICAgICAgICAiMC4wNDQ4MTMsIDAuMTg4MjI3LCAwLjMzNjc3NiwgMC40NDQwNDMsIDAuNjE2NDk5LCAwLjc2Njg3MiwgMC45ODQxOTgiLCBcCi0gICAgICAgICAgIjAuMDQ1MjA5LCAwLjE4ODMwNCwgMC4zMzY4MjEsIDAuNDQ0MDU5LCAwLjYxNjQ0NywgMC43NjY4NjksIDAuOTg0MTgxIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTM5NjEyLCAwLjIyMTU5MywgMC4yOTU1NzEsIDAuMzQ4MTUzLCAwLjQzMjIzOSwgMC41MDU3OTYsIDAuNjEwODciLCBcCi0gICAgICAgICAgIjAuMTQ4NDgxLCAwLjIzMDM3LCAwLjMwNDM1LCAwLjM1NjkzMywgMC40NDEwMTgsIDAuNTE0NTk4LCAwLjYxOTY4NSIsIFwKLSAgICAgICAgICAiMC4xNTkyNjEsIDAuMjQxMTQ1LCAwLjMxNTEyMSwgMC4zNjc3MDYsIDAuNDUxNzkxLCAwLjUyNTM3LCAwLjYzMDQ1OSIsIFwKLSAgICAgICAgICAiMC4xNjk3ODIsIDAuMjUxNjIxLCAwLjMyNTYwMSwgMC4zNzgxOTQsIDAuNDYyMjg3LCAwLjUzNTg3LCAwLjY0MDkzNyIsIFwKLSAgICAgICAgICAiMC4xNzk2MTYsIDAuMjYxNDk3LCAwLjMzNTQ3NSwgMC4zODgwNTgsIDAuNDcyMTQ3LCAwLjU0NTcyNywgMC42NTA4MTciLCBcCi0gICAgICAgICAgIjAuMTk0MDQ3LCAwLjI3NTg4NywgMC4zNDk4NDYsIDAuNDAyNDQxLCAwLjQ4NjUyOSwgMC41NjAxMDYsIDAuNjY1MjAxIiwgXAotICAgICAgICAgICIwLjIwNTI3MiwgMC4yODcxNDQsIDAuMzYxMTIyLCAwLjQxMzcwMiwgMC40OTc3OTIsIDAuNTcxMzUyLCAwLjY3NjQyNiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0NTA1NCwgMC4xODYyMDQsIDAuMzMxNzgzLCAwLjQzODA5OCwgMC42MDc2MjYsIDAuNzU2NDY2LCAwLjk2Nzk0MiIsIFwKLSAgICAgICAgICAiMC4wNDUxNywgMC4xODY0OSwgMC4zMzIwMDksIDAuNDM4MDUyLCAwLjYwNzU4NiwgMC43NTU0NTQsIDAuOTY5NDkyIiwgXAotICAgICAgICAgICIwLjA0NTE1MiwgMC4xODY0ODgsIDAuMzMyNTUyLCAwLjQzODA0OCwgMC42MDc1ODMsIDAuNzU1NDMyLCAwLjk2OTQ3IiwgXAotICAgICAgICAgICIwLjA0NTE2NSwgMC4xODY0MzcsIDAuMzMyMzE1LCAwLjQzODA4NiwgMC42MDc3MSwgMC43NTQ4OTksIDAuOTY5NDYyIiwgXAotICAgICAgICAgICIwLjA0NTE4MSwgMC4xODYxNDgsIDAuMzMxOTgsIDAuNDM4MDUxLCAwLjYwNzU3MywgMC43NTUzOTYsIDAuOTY5NDc1IiwgXAotICAgICAgICAgICIwLjA0NTA1NiwgMC4xODY0NjgsIDAuMzMyNTY4LCAwLjQzODA0NSwgMC42MDc1OCwgMC43NTUzOTMsIDAuOTY5NDE1IiwgXAotICAgICAgICAgICIwLjA0NTI2MSwgMC4xODY1MDIsIDAuMzMyMDM3LCAwLjQzNzk1NSwgMC42MDc1ODksIDAuNzU2Mzg5LCAwLjk2ODEwNCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEzOTEwOSwgMC4yMTk0NzYsIDAuMjkyNjAzLCAwLjM0NDcwMSwgMC40MjgwMDYsIDAuNTAwOTUzLCAwLjYwNDk1IiwgXAotICAgICAgICAgICIwLjE0NzcxNywgMC4yMjgwNDUsIDAuMzAxMTU5LCAwLjM1MzI2MiwgMC40MzY1NDcsIDAuNTA5NDMyLCAwLjYxMzUyIiwgXAotICAgICAgICAgICIwLjE1NzQsIDAuMjM3NzY0LCAwLjMxMDkxMiwgMC4zNjI5ODksIDAuNDQ2Mjc2LCAwLjUxOTE2NSwgMC42MjMyMzQiLCBcCi0gICAgICAgICAgIjAuMTY2OTM3LCAwLjI0NzI1NSwgMC4zMjA0MDMsIDAuMzcyNDgyLCAwLjQ1NTc2NywgMC41Mjg2NTgsIDAuNjMyNzIyIiwgXAotICAgICAgICAgICIwLjE3NTY4NywgMC4yNTYwNjQsIDAuMzI5MjM0LCAwLjM4MTMxNiwgMC40NjQ1OTgsIDAuNTM3NDk3LCAwLjY0MTU1MiIsIFwKLSAgICAgICAgICAiMC4xODg2NCwgMC4yNjg5MjksIDAuMzQyMDUzLCAwLjM5NDE2LCAwLjQ3NzQ0NiwgMC41NTAzMzQsIDAuNjU0NDA3IiwgXAotICAgICAgICAgICIwLjE5ODM1MywgMC4yNzg1NywgMC4zNTE3MDEsIDAuNDAzNzk2LCAwLjQ4NzA4MywgMC41NTk5NzEsIDAuNjY0MDQiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDQ5MjIsIDAuMTg4MjM3LCAwLjMzNjY0MSwgMC40NDQxMDgsIDAuNjE1OTQ5LCAwLjc2Njg4NCwgMC45ODQyNDMiLCBcCi0gICAgICAgICAgIjAuMDQ0OTcyLCAwLjE4ODIzNywgMC4zMzY2NDQsIDAuNDQ0MTE3LCAwLjYxNjQ0NywgMC43NjY4ODUsIDAuOTg0MjM5IiwgXAotICAgICAgICAgICIwLjA0NDkyMywgMC4xODgyNDgsIDAuMzM2ODY2LCAwLjQ0NDA1OCwgMC42MTY0OTYsIDAuNzY2ODUzLCAwLjk4NDIwOSIsIFwKLSAgICAgICAgICAiMC4wNDQ5ODQsIDAuMTg4MjU1LCAwLjMzNjgzMywgMC40NDQwNjMsIDAuNjE2NDg4LCAwLjc2NjM4MiwgMC45ODQxOTciLCBcCi0gICAgICAgICAgIjAuMDQ0ODkzLCAwLjE4ODE2MSwgMC4zMzY1NDEsIDAuNDQ0MDYyLCAwLjYxNjQ4MywgMC43NjU4MjYsIDAuOTg0MTk1IiwgXAotICAgICAgICAgICIwLjA0NDg2NywgMC4xODgyMzMsIDAuMzM2NzgxLCAwLjQ0NDA0NiwgMC42MTY1MDEsIDAuNzY2ODU5LCAwLjk4NDE5OSIsIFwKLSAgICAgICAgICAiMC4wNDQ4OTYsIDAuMTg4MzA1LCAwLjMzNjc2NiwgMC40NDQwNjEsIDAuNjE2NDUzLCAwLjc2Njg3LCAwLjk4NDE4NyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEzOTQzNCwgMC4yMjEzNywgMC4yOTUzNDksIDAuMzQ3OTMsIDAuNDMyMDI2LCAwLjUwNTYwMywgMC42MTA2NzkiLCBcCi0gICAgICAgICAgIjAuMTQ4NDgsIDAuMjMwMzcsIDAuMzA0MzQ3LCAwLjM1NjkyOSwgMC40NDEwMTQsIDAuNTE0NTk0LCAwLjYxOTY4MSIsIFwKLSAgICAgICAgICAiMC4xNTkzNzYsIDAuMjQxMjY0LCAwLjMxNTI0LCAwLjM2NzgyMywgMC40NTE5MDgsIDAuNTI1NDg2LCAwLjYzMDU3NyIsIFwKLSAgICAgICAgICAiMC4xNjk4MjQsIDAuMjUxNzk2LCAwLjMyNTc3MiwgMC4zNzgzNTYsIDAuNDYyNDQsIDAuNTM2MDE5LCAwLjY0MTEwOCIsIFwKLSAgICAgICAgICAiMC4xNzk4MzgsIDAuMjYxNzE4LCAwLjMzNTY5NywgMC4zODgyOCwgMC40NzIzNjgsIDAuNTQ1OTQ5LCAwLjY1MTAzOCIsIFwKLSAgICAgICAgICAiMC4xOTQzMTcsIDAuMjc2MjE1LCAwLjM1MDIwMiwgMC40MDI4MTQsIDAuNDg2ODk2LCAwLjU2MDQ1OCwgMC42NjU1NzIiLCBcCi0gICAgICAgICAgIjAuMjA1NTk2LCAwLjI4NzQ4MSwgMC4zNjE0NSwgMC40MTQwMzQsIDAuNDk4MTE5LCAwLjU3MTcwOCwgMC42NzY3ODMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDUwOTcsIDAuMTg2NTE0LCAwLjMzMjA3MSwgMC40MzgwOTQsIDAuNjA3OTIyLCAwLjc1NTYzLCAwLjk2OTU2MiIsIFwKLSAgICAgICAgICAiMC4wNDUxNzMsIDAuMTg2NDkyLCAwLjMzMTk5NCwgMC40MzgwNiwgMC42MDc2LCAwLjc1NTQ4OSwgMC45Njk1MSIsIFwKLSAgICAgICAgICAiMC4wNDUxNywgMC4xODY0OTIsIDAuMzMxOTgsIDAuNDM4MDU3LCAwLjYwNzU5LCAwLjc1NTQxNywgMC45Njk0OTEiLCBcCi0gICAgICAgICAgIjAuMDQ1MDc2LCAwLjE4NjQ5LCAwLjMzMTk4NiwgMC40MzgwNTcsIDAuNjA3NTg4LCAwLjc1NTQyNCwgMC45Njk0ODYiLCBcCi0gICAgICAgICAgIjAuMDQ1MTc5LCAwLjE4NjMxNywgMC4zMzE5ODEsIDAuNDM4MDUyLCAwLjYwNzU3NCwgMC43NTUzOTYsIDAuOTY5NDc3IiwgXAotICAgICAgICAgICIwLjA0NTA1OCwgMC4xODY0MzMsIDAuMzMyMjE0LCAwLjQzNzQwMiwgMC42MDc2MjYsIDAuNzU1MjY4LCAwLjk2OTQ1OSIsIFwKLSAgICAgICAgICAiMC4wNDUyNDksIDAuMTg2NTI1LCAwLjMzMjAzMSwgMC40MzgwMzMsIDAuNjA3NTk3LCAwLjc1NjM3OSwgMC45Njk0MjkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMzQ3NjQsIDAuMjE1MDQ3LCAwLjI4ODE1NywgMC4zNDAyMzgsIDAuNDIzNTIxLCAwLjQ5NjQzMywgMC42MDA0NzQiLCBcCi0gICAgICAgICAgIjAuMTQzMzA4LCAwLjIyMzU4MiwgMC4yOTY2OTQsIDAuMzQ4Nzc0LCAwLjQzMjA1OCwgMC41MDQ5NzYsIDAuNjA5MDA4IiwgXAotICAgICAgICAgICIwLjE1MzExMywgMC4yMzM0NSwgMC4zMDY1NiwgMC4zNTg2NjksIDAuNDQxOTQ0LCAwLjUxNDg0MSwgMC42MTg4ODkiLCBcCi0gICAgICAgICAgIjAuMTYyNDQ5LCAwLjI0Mjc2LCAwLjMxNTg3MSwgMC4zNjc5NzMsIDAuNDUxMjcyLCAwLjUyNDE1MiwgMC42MjgxNiIsIFwKLSAgICAgICAgICAiMC4xNzEwOTYsIDAuMjUxMzkzLCAwLjMyNDUwNSwgMC4zNzY2NDEsIDAuNDU5ODk1LCAwLjUzMjc5LCAwLjYzNjg1NiIsIFwKLSAgICAgICAgICAiMC4xODM1NzQsIDAuMjYzNzQ0LCAwLjMzNjg5OSwgMC4zODg5NzksIDAuNDcyMjYzLCAwLjU0NTE3LCAwLjY0OTA2NSIsIFwKLSAgICAgICAgICAiMC4xOTI4OTQsIDAuMjczMDkzLCAwLjM0NjI1MiwgMC4zOTgzNzEsIDAuNDgxNjQxLCAwLjU1NDUwNiwgMC42NTg1OTIiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDQ4ODEsIDAuMTg4MjA5LCAwLjMzNjUzOSwgMC40NDQwNTksIDAuNjE2NDc0LCAwLjc2Njc5MywgMC45ODQyMjEiLCBcCi0gICAgICAgICAgIjAuMDQ0ODksIDAuMTg4MjEsIDAuMzM2NTM5LCAwLjQ0NDA1OSwgMC42MTY0NywgMC43NjY3NDUsIDAuOTg0MjE5IiwgXAotICAgICAgICAgICIwLjA0NDg4OCwgMC4xODgyMjUsIDAuMzM2NjMyLCAwLjQ0MzQ5MSwgMC42MTY1MDEsIDAuNzY2ODg5LCAwLjk4MjQ2OCIsIFwKLSAgICAgICAgICAiMC4wNDQ4NjcsIDAuMTg4MjI5LCAwLjMzNjYzLCAwLjQ0NDA0OCwgMC42MTY3MDYsIDAuNzY2ODg5LCAwLjk4Mjg1IiwgXAotICAgICAgICAgICIwLjA0NDg4LCAwLjE4ODIzNSwgMC4zMzY2MDksIDAuNDQzMjIzLCAwLjYxNjUwNSwgMC43NjYzOTgsIDAuOTg0MjI0IiwgXAotICAgICAgICAgICIwLjA0NDg0NiwgMC4xODgwNzMsIDAuMzM2NTI4LCAwLjQ0NDA2MywgMC42MTY0ODYsIDAuNzY2MjQzLCAwLjk4Mjc5MyIsIFwKLSAgICAgICAgICAiMC4wNDQ4OTMsIDAuMTg4MzA2LCAwLjMzNjU2NCwgMC40NDQxODIsIDAuNjE2NTg3LCAwLjc2NzgxNCwgMC45ODI2NjYiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMzc0MTIsIDAuMjE5NDgzLCAwLjI5MzQ4OSwgMC4zNDYwNzcsIDAuNDMwMTYzLCAwLjUwMzc1MiwgMC42MDg4MzQiLCBcCi0gICAgICAgICAgIjAuMTQ2MzE5LCAwLjIyODMyOCwgMC4zMDIzMywgMC4zNTQ5MTYsIDAuNDM5MDA2LCAwLjUxMjU4NiwgMC42MTc2ODQiLCBcCi0gICAgICAgICAgIjAuMTU3MTE2LCAwLjIzOTA1NywgMC4zMTMwNTMsIDAuMzY1NjUsIDAuNDQ5NzQxLCAwLjUyMzMyMiwgMC42Mjg0MTkiLCBcCi0gICAgICAgICAgIjAuMTY3MjkyLCAwLjI0OTM2OSwgMC4zMjMzNjUsIDAuMzc1OTUzLCAwLjQ2MDA0NSwgMC41MzM2MjMsIDAuNjM4NzI0IiwgXAotICAgICAgICAgICIwLjE3NzA2MywgMC4yNTkwNjYsIDAuMzMzMDY5LCAwLjM4NTY3MywgMC40Njk3ODQsIDAuNTQzMzI3LCAwLjY0ODM5MiIsIFwKLSAgICAgICAgICAiMC4xOTEwMjUsIDAuMjczMDM4LCAwLjM0NzAyLCAwLjM5OTYxMSwgMC40ODM3MDQsIDAuNTU3Mjc4LCAwLjY2MjM5IiwgXAotICAgICAgICAgICIwLjIwMTgzOCwgMC4yODM4MjMsIDAuMzU3ODIyLCAwLjQxMDQ1NCwgMC40OTQ1MjUsIDAuNTY4MDkyLCAwLjY3MzIxNiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0NTMzMiwgMC4xODY3MywgMC4zMzIzMzYsIDAuNDM3NTUyLCAwLjYwNzc2NCwgMC43NTU3NSwgMC45Njk1NyIsIFwKLSAgICAgICAgICAiMC4wNDUzOTYsIDAuMTg2NzMsIDAuMzMyMjM0LCAwLjQzODIyNiwgMC42MDc3NDIsIDAuNzU1NTQ5LCAwLjk2OTUwMiIsIFwKLSAgICAgICAgICAiMC4wNDUzNDUsIDAuMTg2NzE0LCAwLjMzMjM0MywgMC40MzgxOTQsIDAuNjA3NzM5LCAwLjc1NTUyNCwgMC45Njk0NzQiLCBcCi0gICAgICAgICAgIjAuMDQ1MzM5LCAwLjE4NjcyMSwgMC4zMzIyMSwgMC40MzgyMjQsIDAuNjA3NzE1LCAwLjc1NTQ2MiwgMC45Njk0NzYiLCBcCi0gICAgICAgICAgIjAuMDQ1MzQ1LCAwLjE4NjcyMiwgMC4zMzIyMjgsIDAuNDM3NjksIDAuNjA3ODUzLCAwLjc1NjU2MywgMC45NjgyMTkiLCBcCi0gICAgICAgICAgIjAuMDQ1MTk3LCAwLjE4NjcwOSwgMC4zMzI2NDksIDAuNDM4MTk5LCAwLjYwNzcwMSwgMC43NTU0MDEsIDAuOTY5NDAzIiwgXAotICAgICAgICAgICIwLjA0NTUxOSwgMC4xODY3NTgsIDAuMzMyMjE1LCAwLjQzODM3NywgMC42MDY4MjEsIDAuNzU1Mzc2LCAwLjk2Njg5NCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJEIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEzNjUwMSwgMC4yMTY4MDcsIDAuMjg5OTcsIDAuMzQyMDUxLCAwLjQyNTMzNCwgMC40OTgyNDEsIDAuNjAyMDk0IiwgXAotICAgICAgICAgICIwLjE0NTE3NiwgMC4yMjU0NzUsIDAuMjk4NTg2LCAwLjM1MDY4OSwgMC40MzM5OCwgMC41MDY4NywgMC42MTA5MzYiLCBcCi0gICAgICAgICAgIjAuMTU0OTkxLCAwLjIzNTI4NiwgMC4zMDgzOTMsIDAuMzYwNDc0LCAwLjQ0Mzc1NywgMC41MTY2NzEsIDAuNjIwNzEyIiwgXAotICAgICAgICAgICIwLjE2NDQ0NywgMC4yNDQ3NDksIDAuMzE3OSwgMC4zNjk5NzksIDAuNDUzMjYzLCAwLjUyNjE2NywgMC42MzAyMjEiLCBcCi0gICAgICAgICAgIjAuMTczMTMyLCAwLjI1MzQyOCwgMC4zMjY1MzgsIDAuMzc4NjE5LCAwLjQ2MTkwMywgMC41MzQ4MTYsIDAuNjM4ODU2IiwgXAotICAgICAgICAgICIwLjE4NTc4NiwgMC4yNjYwMTcsIDAuMzM5MTY0LCAwLjM5MTI0MSwgMC40NzQ1MjcsIDAuNTQ3NDMxLCAwLjY1MTQ4NCIsIFwKLSAgICAgICAgICAiMC4xOTUyNDIsIDAuMjc1NDg1LCAwLjM0ODY0NCwgMC40MDA3NjMsIDAuNDg0MDE2LCAwLjU1NjkwNywgMC42NjEwNDYiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDQ4NDcsIDAuMTg4MDk1LCAwLjMzNjU0NywgMC40NDQwNjksIDAuNjE2NDk0LCAwLjc2NjE0NywgMC45ODI5NzUiLCBcCi0gICAgICAgICAgIjAuMDQ0ODgxLCAwLjE4ODIzNywgMC4zMzY2MiwgMC40NDQwNDMsIDAuNjE2NTkxLCAwLjc2NjQwMiwgMC45ODQyMzYiLCBcCi0gICAgICAgICAgIjAuMDQ0ODcyLCAwLjE4ODIwMywgMC4zMzY1NDEsIDAuNDQ0MDU5LCAwLjYxNjQ3NywgMC43NjY3NjIsIDAuOTg0MjIzIiwgXAotICAgICAgICAgICIwLjA0NDgzNywgMC4xODgxMjEsIDAuMzM2NTQxLCAwLjQ0NDA3MSwgMC42MTY1MDEsIDAuNzY2MDg2LCAwLjk4NDIyNyIsIFwKLSAgICAgICAgICAiMC4wNDQ4ODQsIDAuMTg4MjE2LCAwLjMzNjU0NCwgMC40NDQwNiwgMC42MTY0NzcsIDAuNzY2NzcsIDAuOTg0MjIxIiwgXAotICAgICAgICAgICIwLjA0NDc3NCwgMC4xODgxMTYsIDAuMzM2NTIxLCAwLjQ0NDA1OCwgMC42MTY0ODIsIDAuNzY2NTc0LCAwLjk4NDIxOSIsIFwKLSAgICAgICAgICAiMC4wNDQ5MDMsIDAuMTg4MjkzLCAwLjMzNjU2NiwgMC40NDQxNzksIDAuNjE2NDM3LCAwLjc2Nzg5OSwgMC45ODQxODkiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMzg0NDMsIDAuMjIwNDAxLCAwLjI5NDQwNywgMC4zNDY5OTUsIDAuNDMxMDgxLCAwLjUwNDY2OSwgMC42MDk3NTQiLCBcCi0gICAgICAgICAgIjAuMTQ3MzAxLCAwLjIyOTI3NiwgMC4zMDMzMTYsIDAuMzU1OTAzLCAwLjQzOTk5NSwgMC41MTM1NjUsIDAuNjE4NjE1IiwgXAotICAgICAgICAgICIwLjE1ODEzNSwgMC4yNDAxNDUsIDAuMzE0MTUsIDAuMzY2NzM0LCAwLjQ1MDgyNCwgMC41MjQ0MDUsIDAuNjI5NTA1IiwgXAotICAgICAgICAgICIwLjE2ODQ5NCwgMC4yNTA1NjIsIDAuMzI0NTI0LCAwLjM3NzE0NywgMC40NjEyMTEsIDAuNTM0Nzg4LCAwLjYzOTkxIiwgXAotICAgICAgICAgICIwLjE3ODM5NiwgMC4yNjAzOTksIDAuMzM0Mzk1LCAwLjM4Njk4MiwgMC40NzEwNzUsIDAuNTQ0NjU1LCAwLjY0OTc1NiIsIFwKLSAgICAgICAgICAiMC4xOTI2NDYsIDAuMjc0NTkxLCAwLjM0ODU5MiwgMC40MDExNzYsIDAuNDg1MjY4LCAwLjU1ODg1LCAwLjY2Mzk1IiwgXAotICAgICAgICAgICIwLjIwMzU4MywgMC4yODU1NjgsIDAuMzU5NTc1LCAwLjQxMjE4NCwgMC40OTYyNzIsIDAuNTY5ODU3LCAwLjY3NDg5MiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0NTQyMiwgMC4xODY3MzUsIDAuMzMyMzY3LCAwLjQzNzU3NSwgMC42MDc3NjksIDAuNzU1NzQ0LCAwLjk2OTU2OSIsIFwKLSAgICAgICAgICAiMC4wNDU0MjgsIDAuMTg2NjY1LCAwLjMzMjI0LCAwLjQzODIzOSwgMC42MDc3MywgMC43NTY2MDIsIDAuOTY3Nzg1IiwgXAotICAgICAgICAgICIwLjA0NTM5NiwgMC4xODY3MjYsIDAuMzMyMTc1LCAwLjQzODE5NiwgMC42MDc3MjMsIDAuNzU1NTMxLCAwLjk2OTQyMyIsIFwKLSAgICAgICAgICAiMC4wNDUzMTksIDAuMTg2NzIsIDAuMzMyNDI3LCAwLjQzODM2MywgMC42MDc3MjIsIDAuNzU1NCwgMC45NjcwNTQiLCBcCi0gICAgICAgICAgIjAuMDQ1NDA4LCAwLjE4NjcxOCwgMC4zMzIyMDgsIDAuNDM4MjA3LCAwLjYwNzcwMywgMC43NTU0NjYsIDAuOTY5NDYxIiwgXAotICAgICAgICAgICIwLjA0NTI3LCAwLjE4NjcxNiwgMC4zMzIxOTMsIDAuNDM4MTkzLCAwLjYwNzY5NywgMC43NTU1MjEsIDAuOTY5MzciLCBcCi0gICAgICAgICAgIjAuMDQ1NTI5LCAwLjE4NjgxOSwgMC4zMzIyOTMsIDAuNDM4Mjg3LCAwLjYwNzc3OSwgMC43NTUwMTEsIDAuOTY5NTI0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlMwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE1NjkxNiwgMC4yMzcyODEsIDAuMzEwNDE2LCAwLjM2MjUwNCwgMC40NDU3OTQsIDAuNTE4NzAxLCAwLjYyMjczNSIsIFwKLSAgICAgICAgICAiMC4xNjcxOTUsIDAuMjQ3NTYyLCAwLjMyMDcxMywgMC4zNzI3ODUsIDAuNDU2MDczLCAwLjUyODk4NCwgMC42MzMwMTQiLCBcCi0gICAgICAgICAgIjAuMTc5NTcsIDAuMjU5OTQ5LCAwLjMzMzA5NywgMC4zODUxNzIsIDAuNDY4NDYsIDAuNTQxMzc0LCAwLjY0NTM5OSIsIFwKLSAgICAgICAgICAiMC4xOTA0NzMsIDAuMjcwODQxLCAwLjM0Mzk1NSwgMC4zOTYwMjksIDAuNDc5MzIxLCAwLjU1MjI5LCAwLjY1NjI1MyIsIFwKLSAgICAgICAgICAiMC4xOTk2NDcsIDAuMjgwMDIyLCAwLjM1MzEzOCwgMC40MDUyMzgsIDAuNDg4NTc5LCAwLjU2MTQzMywgMC42NjU0NzMiLCBcCi0gICAgICAgICAgIjAuMjEzMDA3LCAwLjI5MzM2LCAwLjM2NjQ3OCwgMC40MTg1NzgsIDAuNTAxODY4LCAwLjU3NDc3NCwgMC42Nzg4MTEiLCBcCi0gICAgICAgICAgIjAuMjIyODQ5LCAwLjMwMzE0MywgMC4zNzYzMDQsIDAuNDI4Mzc4LCAwLjUxMTY2OSwgMC41ODQ2NDUsIDAuNjg4NjA1Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQ0OTU3LCAwLjE4ODI1OCwgMC4zMzY4MjYsIDAuNDQ0MDc4LCAwLjYxNjQ5NywgMC43NjY3NzgsIDAuOTg0MzI3IiwgXAotICAgICAgICAgICIwLjA0NDk4NCwgMC4xODgyNiwgMC4zMzY4MzIsIDAuNDQ0MjExLCAwLjYxNjcwOSwgMC43NjY4OTUsIDAuOTg0MzEiLCBcCi0gICAgICAgICAgIjAuMDQ0OTgxLCAwLjE4ODI1NiwgMC4zMzY4MDQsIDAuNDQ0MDgsIDAuNjE2NjgsIDAuNzY2ODkyLCAwLjk4NDMxNiIsIFwKLSAgICAgICAgICAiMC4wNDQ5MjcsIDAuMTg4MjUxLCAwLjMzNjYzNCwgMC40NDQwNjMsIDAuNjE2NTU5LCAwLjc2Njg5MSwgMC45ODQyNzUiLCBcCi0gICAgICAgICAgIjAuMDQ0OTY0LCAwLjE4ODIzNiwgMC4zMzY2NDgsIDAuNDQ0MDY5LCAwLjYxNjcxMiwgMC43NjY5LCAwLjk4NDMxNCIsIFwKLSAgICAgICAgICAiMC4wNDQ5NiwgMC4xODgyNjIsIDAuMzM2NzksIDAuNDQ0MDc4LCAwLjYxNjUwNCwgMC43NjcwNzMsIDAuOTg0MzE2IiwgXAotICAgICAgICAgICIwLjA0NDgzMywgMC4xODgyMzQsIDAuMzM2Nzk4LCAwLjQ0NDA3OSwgMC42MTY2OTMsIDAuNzY3OTEzLCAwLjk4NDI4NyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE2MDAxMywgMC4yNDE4NTEsIDAuMzE1ODc1LCAwLjM2ODQ3OSwgMC40NTI1NiwgMC41MjYxMzMsIDAuNjMxMTc0IiwgXAotICAgICAgICAgICIwLjE2OTgyMSwgMC4yNTE3ODcsIDAuMzI1NzU4LCAwLjM3ODM0MSwgMC40NjI0MjUsIDAuNTM2MDAzLCAwLjY0MTA5MyIsIFwKLSAgICAgICAgICAiMC4xODE2OTYsIDAuMjYzNjYxLCAwLjMzNzYzMSwgMC4zOTAyMTUsIDAuNDc0Mjk4LCAwLjU0Nzg3NiwgMC42NTI5NjYiLCBcCi0gICAgICAgICAgIjAuMTkxOTg2LCAwLjI3Mzg2OSwgMC4zNDc4NDMsIDAuNDAwNDI0LCAwLjQ4NDUwOCwgMC41NTgwODUsIDAuNjYzMTc2IiwgXAotICAgICAgICAgICIwLjIwMDk5MiwgMC4yODI4NzUsIDAuMzU2ODU0LCAwLjQwOTQzNywgMC40OTM1MTksIDAuNTY3MDk4LCAwLjY3MjE4NyIsIFwKLSAgICAgICAgICAiMC4yMTI1MzQsIDAuMjk0NSwgMC4zNjg0NzEsIDAuNDIxMDU1LCAwLjUwNTEzOSwgMC41Nzg3MTgsIDAuNjgzODA5IiwgXAotICAgICAgICAgICIwLjIyMTY5LCAwLjMwMzUxMSwgMC4zNzc0NTksIDAuNDMwMDU3LCAwLjUxNDE0NCwgMC41ODc3MTIsIDAuNjkyODIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDUzMTQsIDAuMTg2NzMsIDAuMzMyNjAxLCAwLjQzODI4NywgMC42MDc3MzcsIDAuNzU2NjU5LCAwLjk2OTQ3NyIsIFwKLSAgICAgICAgICAiMC4wNDUzMjYsIDAuMTg2NzMsIDAuMzMyNjc0LCAwLjQzODIyLCAwLjYwNzcyNiwgMC43NTY2NjQsIDAuOTY5NjU3IiwgXAotICAgICAgICAgICIwLjA0NTM5MywgMC4xODY3MywgMC4zMzI1NzksIDAuNDM4MjE1LCAwLjYwNzcyNywgMC43NTY2NiwgMC45Njk0ODgiLCBcCi0gICAgICAgICAgIjAuMDQ1Mzk0LCAwLjE4NjcyOSwgMC4zMzI0MDEsIDAuNDM4MjY3LCAwLjYwNzc0NCwgMC43NTY2NTYsIDAuOTY5NDg3IiwgXAotICAgICAgICAgICIwLjA0NTQwOSwgMC4xODY3NDksIDAuMzMyNjIyLCAwLjQzODIyMywgMC42MDgwMDksIDAuNzU2NTU0LCAwLjk2OTYzMyIsIFwKLSAgICAgICAgICAiMC4wNDUzOTUsIDAuMTg2NzM5LCAwLjMzMjM3OCwgMC40MzgzNTMsIDAuNjA3Nzk3LCAwLjc1NjU4MSwgMC45Njk1MjIiLCBcCi0gICAgICAgICAgIjAuMDQ1MjY2LCAwLjE4NjczLCAwLjMzMjc4MSwgMC40MzgzMTcsIDAuNjA3OTgsIDAuNzU2NTUxLCAwLjk2OTYzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlMwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEzMTE5NCwgMC4yMTE1NjMsIDAuMjg0Njg0LCAwLjMzNjc4NSwgMC40MjAwNjUsIDAuNDkyOTU2LCAwLjU5NzA1IiwgXAotICAgICAgICAgICIwLjEzOTkzMiwgMC4yMjAyODUsIDAuMjkzMzk5LCAwLjM0NTUwMywgMC40Mjg3OSwgMC41MDE2OTYsIDAuNjA1NzY2IiwgXAotICAgICAgICAgICIwLjE1MTI0NywgMC4yMzE2MTgsIDAuMzA0NzM1LCAwLjM1NjgzNSwgMC40NDAxMjUsIDAuNTEzMDI5LCAwLjYxNzA2OSIsIFwKLSAgICAgICAgICAiMC4xNjIyNDYsIDAuMjQyNjA5LCAwLjMxNTc1OCwgMC4zNjc4MzQsIDAuNDUxMTIsIDAuNTI0MDI2LCAwLjYyODA3MyIsIFwKLSAgICAgICAgICAiMC4xNzI0NTYsIDAuMjUyODEzLCAwLjMyNTkzMSwgMC4zNzgwMTIsIDAuNDYxMzI4LCAwLjUzNDE5NywgMC42MzgyMjkiLCBcCi0gICAgICAgICAgIjAuMTg2NTA4LCAwLjI2Njg1NiwgMC4zMzk5NzQsIDAuMzkyMDc1LCAwLjQ3NTM1OCwgMC41NDgyMDksIDAuNjUyMjk0IiwgXAotICAgICAgICAgICIwLjE5NzAzNywgMC4yNzcyOTMsIDAuMzUwNDQ0LCAwLjQwMjUxOSwgMC40ODU4MTMsIDAuNTU4NzIxLCAwLjY2Mjc1Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQ0OTU2LCAwLjE4ODI0NywgMC4zMzY4ODcsIDAuNDQ0MjUsIDAuNjE2NDcyLCAwLjc2Njk2NiwgMC45ODQzMTYiLCBcCi0gICAgICAgICAgIjAuMDQ0OTA5LCAwLjE4ODI0NywgMC4zMzY4OTEsIDAuNDQ0MjEzLCAwLjYxNjcyMywgMC43NjY4OTYsIDAuOTg0MzE0IiwgXAotICAgICAgICAgICIwLjA0NDk0OSwgMC4xODgyMzQsIDAuMzM2ODcsIDAuNDQ0MDYxLCAwLjYxNjQ5MywgMC43NjY3ODksIDAuOTg0MzEyIiwgXAotICAgICAgICAgICIwLjA0NDk3OSwgMC4xODgyNTUsIDAuMzM2ODY2LCAwLjQ0NDA4MywgMC42MTY2ODUsIDAuNzY3OTYyLCAwLjk4NDI3IiwgXAotICAgICAgICAgICIwLjA0NDk2NSwgMC4xODgyNTgsIDAuMzM2ODMxLCAwLjQ0NDA2NywgMC42MTY2NTMsIDAuNzY2ODkyLCAwLjk4NDMxNiIsIFwKLSAgICAgICAgICAiMC4wNDQ4NjIsIDAuMTg4MjI2LCAwLjMzNjc5MSwgMC40NDQwOCwgMC42MTY2NzcsIDAuNzY3MDM1LCAwLjk4NDMxMiIsIFwKLSAgICAgICAgICAiMC4wNDUwMjYsIDAuMTg4MzIyLCAwLjMzNjgwMSwgMC40NDQwNjUsIDAuNjE2Njc2LCAwLjc2Nzg0OCwgMC45ODQyNDciKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMzI1NTEsIDAuMjE0NDMsIDAuMjg4NDAzLCAwLjM0MDk4OCwgMC40MjUwNzgsIDAuNDk4NjI5LCAwLjYwMzcwOSIsIFwKLSAgICAgICAgICAiMC4xNDE1NjksIDAuMjIzNDMzLCAwLjI5NzQwOSwgMC4zNDk5OTMsIDAuNDM0MDgzLCAwLjUwNzYzLCAwLjYxMjcyMiIsIFwKLSAgICAgICAgICAiMC4xNTMxNjYsIDAuMjM1MDYsIDAuMzA5MDYsIDAuMzYxNjU2LCAwLjQ0NTczOCwgMC41MTkyNzMsIDAuNjI0NDI3IiwgXAotICAgICAgICAgICIwLjE2NDU5MiwgMC4yNDY0OTksIDAuMzIwNDgsIDAuMzczMDY1LCAwLjQ1NzE1NiwgMC41MzA3MTgsIDAuNjM1Nzc2IiwgXAotICAgICAgICAgICIwLjE3NTA2OSwgMC4yNTY5NTcsIDAuMzMwOTQ2LCAwLjM4MzU0LCAwLjQ2NzY3MiwgMC41NDEyMDgsIDAuNjQ2MzAzIiwgXAotICAgICAgICAgICIwLjE5MDE3LCAwLjI3MjAzOCwgMC4zNDYwMywgMC4zOTg2MzYsIDAuNDgyNzMyLCAwLjU1NjMwNSwgMC42NjEzODIiLCBcCi0gICAgICAgICAgIjAuMjAxMTExLCAwLjI4MzAwMiwgMC4zNTY5NjksIDAuNDA5NTY0LCAwLjQ5MzY1OSwgMC41NjcyNTIsIDAuNjcyMzAxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQ1NDI5LCAwLjE4NjczNiwgMC4zMzIzNjYsIDAuNDM4MjYzLCAwLjYwNzc2MiwgMC43NTY2NTgsIDAuOTY5NjY3IiwgXAotICAgICAgICAgICIwLjA0NTM0MiwgMC4xODY3MzEsIDAuMzMyNDE3LCAwLjQzODI1LCAwLjYwNzc0LCAwLjc1NjU4NSwgMC45Njk2ODkiLCBcCi0gICAgICAgICAgIjAuMDQ1NDE5LCAwLjE4NjczNywgMC4zMzI3NjYsIDAuNDM4MzEsIDAuNjA3NzM3LCAwLjc1NjQ5LCAwLjk2OTY1NiIsIFwKLSAgICAgICAgICAiMC4wNDUzODYsIDAuMTg2NzQ5LCAwLjMzMjQ1MSwgMC40MzgzODQsIDAuNjA3ODMxLCAwLjc1NjU2NywgMC45Njk1ODMiLCBcCi0gICAgICAgICAgIjAuMDQ1MzMzLCAwLjE4NjcyOCwgMC4zMzIyNzgsIDAuNDM4MjA0LCAwLjYwNzkzNiwgMC43NTY3ODgsIDAuOTY5NjY2IiwgXAotICAgICAgICAgICIwLjA0NTMwOCwgMC4xODY3MTgsIDAuMzMyNTYyLCAwLjQzODE5NCwgMC42MDc4ODIsIDAuNzU2NzQxLCAwLjk2OTY0NCIsIFwKLSAgICAgICAgICAiMC4wNDUzOSwgMC4xODY4MSwgMC4zMzI3MiwgMC40MzgyMTksIDAuNjA3ODAxLCAwLjc1NjY0NiwgMC45Njk2MTIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUzEiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc5OTQ3LCAwLjE2MDExNywgMC4yMzMyNTUsIDAuMjg1MzI3LCAwLjM2ODYxNCwgMC40NDE1MiwgMC41NDU1NTgiLCBcCi0gICAgICAgICAgIjAuMDg5MTEsIDAuMTY5MjgyLCAwLjI0MjQxNywgMC4yOTQ0OTQsIDAuMzc3Nzc0LCAwLjQ1MDY4MSwgMC41NTQ3MjUiLCBcCi0gICAgICAgICAgIjAuMTAwNzc1LCAwLjE4MDk2OCwgMC4yNTQwNzUsIDAuMzA2MTc5LCAwLjM4OTQ4MSwgMC40NjIzNTIsIDAuNTY2MzU0IiwgXAotICAgICAgICAgICIwLjExMjQ1MSwgMC4xOTI2MTYsIDAuMjY1NzY2LCAwLjMxNzg0NCwgMC40MDExMzEsIDAuNDc0MDMsIDAuNTc4MDg5IiwgXAotICAgICAgICAgICIwLjEyNDM5NywgMC4yMDQ1OTEsIDAuMjc3NzM2LCAwLjMyOTgxNywgMC40MTMxMDUsIDAuNDg2MDAyLCAwLjU5MDA2MyIsIFwKLSAgICAgICAgICAiMC4xNDIxNTQsIDAuMjIyNTY2LCAwLjI5NTY5OSwgMC4zNDc3OSwgMC40MzEwNzcsIDAuNTAzOTYsIDAuNjA4MDUiLCBcCi0gICAgICAgICAgIjAuMTU1OTczLCAwLjIzNjkzLCAwLjMxMDAyOSwgMC4zNjIxMDQsIDAuNDQ1Mzg3LCAwLjUxODI2NiwgMC42MjIzNTkiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDQ2NjcsIDAuMTg4MjEzLCAwLjMzNjMwMywgMC40NDQwNjMsIDAuNjE1ODIsIDAuNzY2NzUsIDAuOTg0MjUyIiwgXAotICAgICAgICAgICIwLjA0NDY3OCwgMC4xODgyMTgsIDAuMzM2NTI3LCAwLjQ0NDA1OSwgMC42MTY0NzUsIDAuNzY2NjQ3LCAwLjk4NDIxMyIsIFwKLSAgICAgICAgICAiMC4wNDQ3MDIsIDAuMTg4MjAyLCAwLjMzNjYxMiwgMC40NDQwMDgsIDAuNjE2Njc4LCAwLjc2Njg4NCwgMC45ODM5OTQiLCBcCi0gICAgICAgICAgIjAuMDQ0NzgxLCAwLjE4ODIyNiwgMC4zMzY1MDgsIDAuNDQ0MDIyLCAwLjYxNjQ4NiwgMC43NjY1MDUsIDAuOTg0MjA0IiwgXAotICAgICAgICAgICIwLjA0NDk5NywgMC4xODgyOTksIDAuMzM2NTUsIDAuNDQ0MDM1LCAwLjYxNjUsIDAuNzY2NDQ1LCAwLjk4NDA5MiIsIFwKLSAgICAgICAgICAiMC4wNDY5MTUsIDAuMTg4NjkzLCAwLjMzNjcwOSwgMC40NDQxNDksIDAuNjE2NTMyLCAwLjc2NjkzNiwgMC45ODQxMDEiLCBcCi0gICAgICAgICAgIjAuMDQ5MzQzLCAwLjE4OTM1NSwgMC4zMzcwMDgsIDAuNDQzOTUxLCAwLjYxNjYxNCwgMC43NjY5OTksIDAuOTg0MTMzIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDgyNjU1LCAwLjE2NDQyNCwgMC4yMzgzOCwgMC4yOTA5NTgsIDAuMzc1MDQsIDAuNDQ4NjI5LCAwLjU1MzY5MyIsIFwKLSAgICAgICAgICAiMC4wOTE1MTUsIDAuMTczMzM5LCAwLjI0NzI5NSwgMC4yOTk4NzYsIDAuMzgzOTU4LCAwLjQ1NzU0LCAwLjU2MjYxOCIsIFwKLSAgICAgICAgICAiMC4xMDI4NzUsIDAuMTg0Njk0LCAwLjI1ODY1OSwgMC4zMTEyNDEsIDAuMzk1MzI3LCAwLjQ2ODkxNiwgMC41NzM5ODQiLCBcCi0gICAgICAgICAgIjAuMTE0Mjc2LCAwLjE5NjAyNCwgMC4yNzAwMSwgMC4zMjI1OTcsIDAuNDA2NjksIDAuNDgwMjU4LCAwLjU4NTMwMyIsIFwKLSAgICAgICAgICAiMC4xMjU4ODQsIDAuMjA3Njg1LCAwLjI4MTY2LCAwLjMzNDI0OSwgMC40MTgzMzksIDAuNDkxOTMsIDAuNTk3MDA0IiwgXAotICAgICAgICAgICIwLjE0Mjg1MiwgMC4yMjQ4NCwgMC4yOTg4MTgsIDAuMzUxNDAyLCAwLjQzNTQ5MywgMC41MDkwNjcsIDAuNjE0MTcyIiwgXAotICAgICAgICAgICIwLjE1NTk0OSwgMC4yMzgzODQsIDAuMzEyMzY1LCAwLjM2NDk2NiwgMC40NDkwNjQsIDAuNTIyNjI0LCAwLjYyNzY3OSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0NDkxMiwgMC4xODY0NTcsIDAuMzMyMDEsIDAuNDM4MDIzLCAwLjYwNzU2NSwgMC43NTU0MzUsIDAuOTY5NDE1IiwgXAotICAgICAgICAgICIwLjA0NDg3NSwgMC4xODY0NTQsIDAuMzMyNjA4LCAwLjQzODAyMywgMC42MDc1NjgsIDAuNzU1NTYyLCAwLjk2OTM5MSIsIFwKLSAgICAgICAgICAiMC4wNDQ5MTEsIDAuMTg2NDY2LCAwLjMzMjAxOCwgMC40MzgwMjcsIDAuNjA3NTY1LCAwLjc1NTY4NywgMC45Njk0MTQiLCBcCi0gICAgICAgICAgIjAuMDQ0OTgzLCAwLjE4NjUsIDAuMzMyMDU2LCAwLjQzNzM4MSwgMC42MDc0MjEsIDAuNzU2NDU5LCAwLjk2Nzc0MiIsIFwKLSAgICAgICAgICAiMC4wNDUyNywgMC4xODY1NTUsIDAuMzMyMDE2LCAwLjQzODAzOCwgMC42MDc1ODQsIDAuNzU1NzA5LCAwLjk2OTQxIiwgXAotICAgICAgICAgICIwLjA0Njg3MiwgMC4xODY5MiwgMC4zMzI0MzIsIDAuNDM4MTY0LCAwLjYwNzYzOCwgMC43NTUzMywgMC45NjkzNzYiLCBcCi0gICAgICAgICAgIjAuMDQ4OTE0LCAwLjE4NzU2NCwgMC4zMzMwNzMsIDAuNDM4NDQ0LCAwLjYwNzkzOCwgMC43NTUyNTMsIDAuOTY5NTc0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlMxIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwNTczOCwgMC4xODU5OTUsIDAuMjU5MTE1LCAwLjMxMTE5MywgMC4zOTQ0NzksIDAuNDY3MzczLCAwLjU3MTQzNSIsIFwKLSAgICAgICAgICAiMC4xMTU2NTcsIDAuMTk1OTgyLCAwLjI2OTEwMiwgMC4zMjEyMDksIDAuNDA0NDk1LCAwLjQ3NzM4NCwgMC41ODE0NTYiLCBcCi0gICAgICAgICAgIjAuMTI3NDQ5LCAwLjIwNzcsIDAuMjgwODc2LCAwLjMzMjk3OSwgMC40MTYzMSwgMC40ODkxMzgsIDAuNTkzMTU1IiwgXAotICAgICAgICAgICIwLjEzNzU0MiwgMC4yMTc4LCAwLjI5MDk3OCwgMC4zNDMwODksIDAuNDI2MzU0LCAwLjQ5OTIxLCAwLjYwMzM1MyIsIFwKLSAgICAgICAgICAiMC4xNDYxOTIsIDAuMjI2NDM0LCAwLjI5OTU5NiwgMC4zNTE2OSwgMC40MzUwMDcsIDAuNTA3OTMxLCAwLjYxMTkyIiwgXAotICAgICAgICAgICIwLjE1ODE0NiwgMC4yMzgxNywgMC4zMTE2NjcsIDAuMzYzNzUxLCAwLjQ0NzA0MiwgMC41MTk5MDksIDAuNjIzOTkxIiwgXAotICAgICAgICAgICIwLjE2NjgyNCwgMC4yNDcyMDYsIDAuMzIwNDc4LCAwLjM3MjU4MSwgMC40NTU4ODQsIDAuNTI4NzIsIDAuNjMyODUyIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQ0Nzk1LCAwLjE4ODE3MSwgMC4zMzY1MDQsIDAuNDQ0MDQ3LCAwLjYxNjQ3NiwgMC43NjY0MTYsIDAuOTg0MTk3IiwgXAotICAgICAgICAgICIwLjA0NDczNiwgMC4xODgxOTgsIDAuMzM2NzY4LCAwLjQ0NDA0LCAwLjYxNjQ4NSwgMC43NjY4MzIsIDAuOTg0MTk0IiwgXAotICAgICAgICAgICIwLjA0NDY3MSwgMC4xODgxNzUsIDAuMzM2NjE1LCAwLjQ0NDA4NCwgMC42MTY2NzksIDAuNzY2OTM2LCAwLjk4Mjg4IiwgXAotICAgICAgICAgICIwLjA0NDcyMiwgMC4xODgxNjgsIDAuMzM2NTQsIDAuNDQ0MjI2LCAwLjYxNTgxOCwgMC43Njc4NTksIDAuOTg0MjU0IiwgXAotICAgICAgICAgICIwLjA0NDY1NCwgMC4xODgxNDMsIDAuMzM2NiwgMC40NDM5NTcsIDAuNjE1NDgsIDAuNzY2NTIyLCAwLjk4NDE0NyIsIFwKLSAgICAgICAgICAiMC4wNDQ4MjQsIDAuMTg4MzA0LCAwLjMzNjU3OSwgMC40NDQwNzgsIDAuNjE2NTcsIDAuNzY2OTYzLCAwLjk4NDAyNCIsIFwKLSAgICAgICAgICAiMC4wNDQ3NzYsIDAuMTg4MzcyLCAwLjMzNjc3OSwgMC40NDQzMDIsIDAuNjE1OTc0LCAwLjc2NzEzNiwgMC45ODIzNzQiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDc2MDQsIDAuMTg5NjYzLCAwLjI2MzYyOCwgMC4zMTYyNTgsIDAuNDAwMzI5LCAwLjQ3MzkwMSwgMC41NzkwMjciLCBcCi0gICAgICAgICAgIjAuMTE3OTg0LCAwLjE5OTk3MywgMC4yNzM5MjcsIDAuMzI2NTM4LCAwLjQxMDYwNywgMC40ODQyNTIsIDAuNTg5MjM5IiwgXAotICAgICAgICAgICIwLjEzMDM1LCAwLjIxMjM0LCAwLjI4NjI4MSwgMC4zMzg4ODgsIDAuNDIzMDMyLCAwLjQ5NjU0MiwgMC42MDE2MDkiLCBcCi0gICAgICAgICAgIjAuMTQwODgzLCAwLjIyMjk1NywgMC4yOTY5NTQsIDAuMzQ5NTUsIDAuNDMzNjQzLCAwLjUwNzIyOSwgMC42MTIzMjUiLCBcCi0gICAgICAgICAgIjAuMTUwODIyLCAwLjIzMjc0NCwgMC4zMDY3NDMsIDAuMzU5MzM2LCAwLjQ0MzQzLCAwLjUxNzAxMSwgMC42MjIxMTYiLCBcCi0gICAgICAgICAgIjAuMTYzNjgzLCAwLjI0NTY4MSwgMC4zMTk2ODcsIDAuMzcyMjc1LCAwLjQ1NjM3NSwgMC41Mjk5NDMsIDAuNjM1MDA3IiwgXAotICAgICAgICAgICIwLjE3MzU4NCwgMC4yNTU2MiwgMC4zMjk2MzMsIDAuMzgyMjI4LCAwLjQ2NjMyNCwgMC41Mzk4ODIsIDAuNjQ0OTQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDUyMzksIDAuMTg2NjksIDAuMzMyMTY1LCAwLjQzNzE4NSwgMC42MDY4MTQsIDAuNzU1MzkxLCAwLjk2NzAzNCIsIFwKLSAgICAgICAgICAiMC4wNDUzMDEsIDAuMTg2NjkxLCAwLjMzMjMyMiwgMC40MzgyODMsIDAuNjA3NzEzLCAwLjc1NDY4NywgMC45Njk0ODIiLCBcCi0gICAgICAgICAgIjAuMDQ1Mjk3LCAwLjE4NjY4OSwgMC4zMzIwOTYsIDAuNDM4MTg5LCAwLjYwNjIwNCwgMC43NTU4NCwgMC45Njk0NTgiLCBcCi0gICAgICAgICAgIjAuMDQ1MjIzLCAwLjE4NjY4OSwgMC4zMzIxNDgsIDAuNDM4MTg1LCAwLjYwNzY5MSwgMC43NTU1NDQsIDAuOTY5Mzg3IiwgXAotICAgICAgICAgICIwLjA0NTE5MywgMC4xODY2OTYsIDAuMzMyMTI4LCAwLjQzODE3NywgMC42MDc2NzcsIDAuNzU1NDQ3LCAwLjk2OTQzNyIsIFwKLSAgICAgICAgICAiMC4wNDUyNywgMC4xODY3NTksIDAuMzMyMzQ1LCAwLjQzODIwMSwgMC42MDc3MTIsIDAuNzU2NTIxLCAwLjk2OTMyNiIsIFwKLSAgICAgICAgICAiMC4wNDUyMDQsIDAuMTg2ODA2LCAwLjMzMjU0OCwgMC40Mzc3NjQsIDAuNjA3NDY0LCAwLjc1NjU0NCwgMC45Njc5NjYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwODEsIDAuMDA4Mjc1LCAwLjAwODMxMywgMC4wMDgzMjYsIDAuMDA4MzM3LCAwLjAwODM0NiwgMC4wMDgzNDkiLCBcCi0gICAgICAgICAgIjAuMDA4MDksIDAuMDA4MjY0LCAwLjAwODMwMiwgMC4wMDgzMTQsIDAuMDA4MzI2LCAwLjAwODMzMSwgMC4wMDgzMzciLCBcCi0gICAgICAgICAgIjAuMDA4MDgyLCAwLjAwODI1OCwgMC4wMDgyOTQsIDAuMDA4MzA3LCAwLjAwODMxOCwgMC4wMDgzMjQsIDAuMDA4MzMiLCBcCi0gICAgICAgICAgIjAuMDA4MDc1LCAwLjAwODI1LCAwLjAwODI5LCAwLjAwODMwMiwgMC4wMDgzMTIsIDAuMDA4MzIxLCAwLjAwODMyNSIsIFwKLSAgICAgICAgICAiMC4wMDgwNzUsIDAuMDA4MjQ4LCAwLjAwODI4NywgMC4wMDgyOTksIDAuMDA4MzExLCAwLjAwODMxNiwgMC4wMDgzMjEiLCBcCi0gICAgICAgICAgIjAuMDA4MDY3LCAwLjAwODI0NCwgMC4wMDgyODMsIDAuMDA4Mjk3LCAwLjAwODMwOCwgMC4wMDgzMTQsIDAuMDA4MzE5IiwgXAotICAgICAgICAgICIwLjAwODA2NiwgMC4wMDgyNDcsIDAuMDA4Mjg5LCAwLjAwODI5OCwgMC4wMDgzMSwgMC4wMDgzMTcsIDAuMDA4MzIzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDcyOTgsIDAuMDA3NTI4LCAwLjAwNzU3NywgMC4wMDc1OTMsIDAuMDA3NjA3LCAwLjAwNzYxNCwgMC4wMDc2MjEiLCBcCi0gICAgICAgICAgIjAuMDA3MjgsIDAuMDA3NTA5LCAwLjAwNzU1NywgMC4wMDc1NzMsIDAuMDA3NTg4LCAwLjAwNzU5NSwgMC4wMDc2MDIiLCBcCi0gICAgICAgICAgIjAuMDA3MjY5LCAwLjAwNzQ5OCwgMC4wMDc1NDcsIDAuMDA3NTYyLCAwLjAwNzU3NywgMC4wMDc1ODQsIDAuMDA3NTkxIiwgXAotICAgICAgICAgICIwLjAwNzI2MiwgMC4wMDc0OTEsIDAuMDA3NTM5LCAwLjAwNzU1NSwgMC4wMDc1NjksIDAuMDA3NTc3LCAwLjAwNzU4NCIsIFwKLSAgICAgICAgICAiMC4wMDcyNiwgMC4wMDc0ODgsIDAuMDA3NTM3LCAwLjAwNzU1MiwgMC4wMDc1NjcsIDAuMDA3NTc1LCAwLjAwNzU4MSIsIFwKLSAgICAgICAgICAiMC4wMDcyNSwgMC4wMDc0ODQsIDAuMDA3NTM0LCAwLjAwNzU1LCAwLjAwNzU2NSwgMC4wMDc1NzMsIDAuMDA3NTgiLCBcCi0gICAgICAgICAgIjAuMDA3MjU5LCAwLjAwNzQ5MiwgMC4wMDc1NDIsIDAuMDA3NTU3LCAwLjAwNzU3MiwgMC4wMDc1OCwgMC4wMDc1ODciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwODMwNywgMC4wMDg0ODEsIDAuMDA4NTIsIDAuMDA4NTMxLCAwLjAwODU0NSwgMC4wMDg1NSwgMC4wMDg1NTQiLCBcCi0gICAgICAgICAgIjAuMDA4Mjk2LCAwLjAwODQ3LCAwLjAwODUwOSwgMC4wMDg1MjEsIDAuMDA4NTMzLCAwLjAwODUzNywgMC4wMDg1NDIiLCBcCi0gICAgICAgICAgIjAuMDA4Mjg3LCAwLjAwODQ2MiwgMC4wMDg1LCAwLjAwODUxMiwgMC4wMDg1MjQsIDAuMDA4NTMxLCAwLjAwODUzNSIsIFwKLSAgICAgICAgICAiMC4wMDgyODEsIDAuMDA4NDU2LCAwLjAwODQ5NSwgMC4wMDg1MDcsIDAuMDA4NTE4LCAwLjAwODUyNiwgMC4wMDg1MzEiLCBcCi0gICAgICAgICAgIjAuMDA4Mjc5LCAwLjAwODQ1MywgMC4wMDg0OTIsIDAuMDA4NTA0LCAwLjAwODUxNiwgMC4wMDg1MjIsIDAuMDA4NTMiLCBcCi0gICAgICAgICAgIjAuMDA4MjczLCAwLjAwODQ1MSwgMC4wMDg0ODksIDAuMDA4NTAzLCAwLjAwODUxNCwgMC4wMDg1MiwgMC4wMDg1MjUiLCBcCi0gICAgICAgICAgIjAuMDA4Mjc3LCAwLjAwODQ1NCwgMC4wMDg0OTQsIDAuMDA4NTA0LCAwLjAwODUxNiwgMC4wMDg1MjMsIDAuMDA4NTI5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDcxMTMsIDAuMDA3MzQzLCAwLjAwNzM5MSwgMC4wMDc0MDcsIDAuMDA3NDIxLCAwLjAwNzQyOSwgMC4wMDc0MzYiLCBcCi0gICAgICAgICAgIjAuMDA3MDk1LCAwLjAwNzMyNCwgMC4wMDczNzIsIDAuMDA3Mzg4LCAwLjAwNzQwMywgMC4wMDc0MSwgMC4wMDc0MTciLCBcCi0gICAgICAgICAgIjAuMDA3MDgzLCAwLjAwNzMxMywgMC4wMDczNjEsIDAuMDA3Mzc3LCAwLjAwNzM5MSwgMC4wMDczOTksIDAuMDA3NDA2IiwgXAotICAgICAgICAgICIwLjAwNzA3NiwgMC4wMDczMDYsIDAuMDA3MzU1LCAwLjAwNzM3LCAwLjAwNzM4NSwgMC4wMDczOTIsIDAuMDA3Mzk5IiwgXAotICAgICAgICAgICIwLjAwNzA3NCwgMC4wMDczMDIsIDAuMDA3MzUxLCAwLjAwNzM2NywgMC4wMDczODIsIDAuMDA3Mzg5LCAwLjAwNzM5NiIsIFwKLSAgICAgICAgICAiMC4wMDcwNjIsIDAuMDA3Mjk4LCAwLjAwNzM0OCwgMC4wMDczNjQsIDAuMDA3Mzc5LCAwLjAwNzM4NywgMC4wMDczOTQiLCBcCi0gICAgICAgICAgIjAuMDA3MDcxLCAwLjAwNzMwNCwgMC4wMDczNTMsIDAuMDA3MzY5LCAwLjAwNzM4NCwgMC4wMDczOTIsIDAuMDA3Mzk5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDc3MjgsIDAuMDA3ODU4LCAwLjAwNzg4NSwgMC4wMDc4OTMsIDAuMDA3OSwgMC4wMDc5MDQsIDAuMDA3OTA3IiwgXAotICAgICAgICAgICIwLjAwNzcxNiwgMC4wMDc4NDcsIDAuMDA3ODcyLCAwLjAwNzg4MSwgMC4wMDc4ODgsIDAuMDA3ODkyLCAwLjAwNzg5NiIsIFwKLSAgICAgICAgICAiMC4wMDc3MDgsIDAuMDA3ODM5LCAwLjAwNzg2NiwgMC4wMDc4NzUsIDAuMDA3ODgxLCAwLjAwNzg4NCwgMC4wMDc4ODkiLCBcCi0gICAgICAgICAgIjAuMDA3NzAyLCAwLjAwNzgzMywgMC4wMDc4NiwgMC4wMDc4NjgsIDAuMDA3ODc0LCAwLjAwNzg3OCwgMC4wMDc4ODIiLCBcCi0gICAgICAgICAgIjAuMDA3NywgMC4wMDc4MzEsIDAuMDA3ODU5LCAwLjAwNzg2NiwgMC4wMDc4NzMsIDAuMDA3ODc4LCAwLjAwNzg4MSIsIFwKLSAgICAgICAgICAiMC4wMDc2OTksIDAuMDA3ODMsIDAuMDA3ODU3LCAwLjAwNzg2OCwgMC4wMDc4NzQsIDAuMDA3ODc3LCAwLjAwNzg4IiwgXAotICAgICAgICAgICIwLjAwNzY5OSwgMC4wMDc4MzEsIDAuMDA3ODU5LCAwLjAwNzg3MywgMC4wMDc4NzYsIDAuMDA3ODgzLCAwLjAwNzg4NCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA3NDYsIDAuMDA3NjUsIDAuMDA3Njg4LCAwLjAwNzcsIDAuMDA3NzExLCAwLjAwNzcxNywgMC4wMDc3MjIiLCBcCi0gICAgICAgICAgIjAuMDA3NDQyLCAwLjAwNzYzMSwgMC4wMDc2NjksIDAuMDA3NjgxLCAwLjAwNzY5MiwgMC4wMDc2OTcsIDAuMDA3NzAyIiwgXAotICAgICAgICAgICIwLjAwNzQyMywgMC4wMDc2MTcsIDAuMDA3NjU2LCAwLjAwNzY2OSwgMC4wMDc2OCwgMC4wMDc2ODYsIDAuMDA3NjkxIiwgXAotICAgICAgICAgICIwLjAwNzQyMSwgMC4wMDc2MTIsIDAuMDA3NjQ5LCAwLjAwNzY2MSwgMC4wMDc2NzMsIDAuMDA3Njc4LCAwLjAwNzY4MyIsIFwKLSAgICAgICAgICAiMC4wMDc0MjMsIDAuMDA3NjExLCAwLjAwNzY0OSwgMC4wMDc2NjEsIDAuMDA3NjcyLCAwLjAwNzY3OCwgMC4wMDc2ODMiLCBcCi0gICAgICAgICAgIjAuMDA3NDE1LCAwLjAwNzYwOCwgMC4wMDc2NDgsIDAuMDA3NjYsIDAuMDA3NjcyLCAwLjAwNzY3OCwgMC4wMDc2ODMiLCBcCi0gICAgICAgICAgIjAuMDA3NDIyLCAwLjAwNzYxNiwgMC4wMDc2NTUsIDAuMDA3NjY3LCAwLjAwNzY3OSwgMC4wMDc2ODUsIDAuMDA3NjkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJEIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNzkyMywgMC4wMDgwNTUsIDAuMDA4MDgxLCAwLjAwODA4OSwgMC4wMDgwOTcsIDAuMDA4MTAyLCAwLjAwODEwNyIsIFwKLSAgICAgICAgICAiMC4wMDc5MTIsIDAuMDA4MDQzLCAwLjAwODA3MSwgMC4wMDgwODMsIDAuMDA4MDg1LCAwLjAwODA5LCAwLjAwODA5MiIsIFwKLSAgICAgICAgICAiMC4wMDc5MDUsIDAuMDA4MDM1LCAwLjAwODA2MSwgMC4wMDgwNywgMC4wMDgwNzcsIDAuMDA4MDgxLCAwLjAwODA4NSIsIFwKLSAgICAgICAgICAiMC4wMDc4OTcsIDAuMDA4MDI5LCAwLjAwODA1NSwgMC4wMDgwNjQsIDAuMDA4MDcxLCAwLjAwODA3NywgMC4wMDgwODEiLCBcCi0gICAgICAgICAgIjAuMDA3ODk2LCAwLjAwODAyNiwgMC4wMDgwNTMsIDAuMDA4MDYxLCAwLjAwODA2OCwgMC4wMDgwNzMsIDAuMDA4MDc3IiwgXAotICAgICAgICAgICIwLjAwNzg5LCAwLjAwODAyNCwgMC4wMDgwNTIsIDAuMDA4MDYsIDAuMDA4MDY4LCAwLjAwODA3MiwgMC4wMDgwNzYiLCBcCi0gICAgICAgICAgIjAuMDA3ODg5LCAwLjAwODAyNiwgMC4wMDgwNTMsIDAuMDA4MDY4LCAwLjAwODA3LCAwLjAwODA3NCwgMC4wMDgwNzkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNzM4MiwgMC4wMDc1NzIsIDAuMDA3NjEsIDAuMDA3NjIyLCAwLjAwNzYzMywgMC4wMDc2MzksIDAuMDA3NjQ0IiwgXAotICAgICAgICAgICIwLjAwNzM2MiwgMC4wMDc1NTEsIDAuMDA3NTg5LCAwLjAwNzYwMSwgMC4wMDc2MTMsIDAuMDA3NjE4LCAwLjAwNzYyMyIsIFwKLSAgICAgICAgICAiMC4wMDczNTIsIDAuMDA3NTQxLCAwLjAwNzU3OCwgMC4wMDc1OTEsIDAuMDA3NjAyLCAwLjAwNzYwNywgMC4wMDc2MTIiLCBcCi0gICAgICAgICAgIjAuMDA3MzQzLCAwLjAwNzUzMiwgMC4wMDc1NywgMC4wMDc1ODIsIDAuMDA3NTkzLCAwLjAwNzU5OSwgMC4wMDc2MDQiLCBcCi0gICAgICAgICAgIjAuMDA3MzQxLCAwLjAwNzUzLCAwLjAwNzU2OCwgMC4wMDc1OCwgMC4wMDc1OTIsIDAuMDA3NTk3LCAwLjAwNzYwMiIsIFwKLSAgICAgICAgICAiMC4wMDczMzYsIDAuMDA3NTI5LCAwLjAwNzU2OCwgMC4wMDc1ODEsIDAuMDA3NTkyLCAwLjAwNzU5OCwgMC4wMDc2MDMiLCBcCi0gICAgICAgICAgIjAuMDA3MzQxLCAwLjAwNzUzNSwgMC4wMDc1NzQsIDAuMDA3NTg3LCAwLjAwNzU5OCwgMC4wMDc2MDQsIDAuMDA3NjA5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUzAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEwMjU4LCAwLjAxMDQyOCwgMC4wMTA0NjQsIDAuMDEwNDc3LCAwLjAxMDQ4NiwgMC4wMTA0OTMsIDAuMDEwNDk5IiwgXAotICAgICAgICAgICIwLjAxMDI0MSwgMC4wMTA0MTIsIDAuMDEwNDQ4LCAwLjAxMDQ2LCAwLjAxMDQ3MiwgMC4wMTA0NzYsIDAuMDEwNDgxIiwgXAotICAgICAgICAgICIwLjAxMDIyMSwgMC4wMTAzOTIsIDAuMDEwNDI4LCAwLjAxMDQzOSwgMC4wMTA0NTEsIDAuMDEwNDU4LCAwLjAxMDQ2MSIsIFwKLSAgICAgICAgICAiMC4wMTAyMjIsIDAuMDEwMzkxLCAwLjAxMDQyOCwgMC4wMTA0NCwgMC4wMTA0NSwgMC4wMTA0NTUsIDAuMDEwNDYyIiwgXAotICAgICAgICAgICIwLjAxMDIzLCAwLjAxMDM5OSwgMC4wMTA0MzUsIDAuMDEwNDQ5LCAwLjAxMDQ1NywgMC4wMTA0NjIsIDAuMDEwNDY3IiwgXAotICAgICAgICAgICIwLjAxMDIzNCwgMC4wMTA0MDMsIDAuMDEwNDM5LCAwLjAxMDQ1MSwgMC4wMTA0NjIsIDAuMDEwNDY3LCAwLjAxMDQ3MSIsIFwKLSAgICAgICAgICAiMC4wMTAyNDgsIDAuMDEwNDIyLCAwLjAxMDQ2LCAwLjAxMDQ3MywgMC4wMTA0ODIsIDAuMDEwNDg4LCAwLjAxMDQ5MyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEyNTUzLCAwLjAxMjc0MiwgMC4wMTI3OCwgMC4wMTI3OTIsIDAuMDEyODAzLCAwLjAxMjgwOCwgMC4wMTI4MTMiLCBcCi0gICAgICAgICAgIjAuMDEyNTE1LCAwLjAxMjcwNSwgMC4wMTI3NDIsIDAuMDEyNzU0LCAwLjAxMjc2NSwgMC4wMTI3NzEsIDAuMDEyNzc2IiwgXAotICAgICAgICAgICIwLjAxMjQ5NiwgMC4wMTI2ODYsIDAuMDEyNzIzLCAwLjAxMjczNSwgMC4wMTI3NDYsIDAuMDEyNzUxLCAwLjAxMjc1NyIsIFwKLSAgICAgICAgICAiMC4wMTI0OTgsIDAuMDEyNjg4LCAwLjAxMjcyNiwgMC4wMTI3MzgsIDAuMDEyNzQ5LCAwLjAxMjc1NCwgMC4wMTI3NTkiLCBcCi0gICAgICAgICAgIjAuMDEyNTA2LCAwLjAxMjY5NSwgMC4wMTI3MzMsIDAuMDEyNzQ1LCAwLjAxMjc1NSwgMC4wMTI3NjEsIDAuMDEyNzY2IiwgXAotICAgICAgICAgICIwLjAxMjUyOSwgMC4wMTI3MTYsIDAuMDEyNzU0LCAwLjAxMjc2NiwgMC4wMTI3NzcsIDAuMDEyNzgzLCAwLjAxMjc4NyIsIFwKLSAgICAgICAgICAiMC4wMTI1NjQsIDAuMDEyNzUsIDAuMDEyNzg3LCAwLjAxMjc5OSwgMC4wMTI4MDksIDAuMDEyODE3LCAwLjAxMjgyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUzEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA3OTA4LCAwLjAwODA4MiwgMC4wMDgxMjIsIDAuMDA4MTM2LCAwLjAwODE0NywgMC4wMDgxNTQsIDAuMDA4MTYxIiwgXAotICAgICAgICAgICIwLjAwNzg5OSwgMC4wMDgwNzUsIDAuMDA4MTEyLCAwLjAwODEyNiwgMC4wMDgxMzgsIDAuMDA4MTQ3LCAwLjAwODE1MiIsIFwKLSAgICAgICAgICAiMC4wMDc4OTcsIDAuMDA4MDczLCAwLjAwODExNCwgMC4wMDgxMjQsIDAuMDA4MTM3LCAwLjAwODE0MywgMC4wMDgxNDkiLCBcCi0gICAgICAgICAgIjAuMDA3OTAzLCAwLjAwODA3OCwgMC4wMDgxMTcsIDAuMDA4MTMxLCAwLjAwODE0MywgMC4wMDgxNDksIDAuMDA4MTU1IiwgXAotICAgICAgICAgICIwLjAwNzkwNywgMC4wMDgwODMsIDAuMDA4MTI1LCAwLjAwODEzNiwgMC4wMDgxNDgsIDAuMDA4MTU0LCAwLjAwODE2MSIsIFwKLSAgICAgICAgICAiMC4wMDc5MTYsIDAuMDA4MDkxLCAwLjAwODEzLCAwLjAwODE0NiwgMC4wMDgxNTUsIDAuMDA4MTY1LCAwLjAwODE2OCIsIFwKLSAgICAgICAgICAiMC4wMDc5MzgsIDAuMDA4MTA5LCAwLjAwODE0NywgMC4wMDgxNTYsIDAuMDA4MTY4LCAwLjAwODE3NSwgMC4wMDgxODEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjUsIDAuMDA2Njk5LCAwLjAwNjc0NCwgMC4wMDY3NTksIDAuMDA2NzczLCAwLjAwNjc4LCAwLjAwNjc4NiIsIFwKLSAgICAgICAgICAiMC4wMDY0ODUsIDAuMDA2Njg1LCAwLjAwNjcyOSwgMC4wMDY3NDQsIDAuMDA2NzU4LCAwLjAwNjc2NSwgMC4wMDY3NzIiLCBcCi0gICAgICAgICAgIjAuMDA2NDc5LCAwLjAwNjY4LCAwLjAwNjcyNCwgMC4wMDY3MzksIDAuMDA2NzUyLCAwLjAwNjc2LCAwLjAwNjc2NiIsIFwKLSAgICAgICAgICAiMC4wMDY0ODQsIDAuMDA2Njg2LCAwLjAwNjczLCAwLjAwNjc0NSwgMC4wMDY3NTksIDAuMDA2NzY2LCAwLjAwNjc3MiIsIFwKLSAgICAgICAgICAiMC4wMDY0OCwgMC4wMDY2ODEsIDAuMDA2NzI2LCAwLjAwNjc0MSwgMC4wMDY3NTUsIDAuMDA2NzYyLCAwLjAwNjc2OSIsIFwKLSAgICAgICAgICAiMC4wMDY0OTksIDAuMDA2Njk5LCAwLjAwNjc0MywgMC4wMDY3NTgsIDAuMDA2NzcyLCAwLjAwNjc3OSwgMC4wMDY3ODYiLCBcCi0gICAgICAgICAgIjAuMDA2NTIzLCAwLjAwNjcxOCwgMC4wMDY3NjMsIDAuMDA2Nzc3LCAwLjAwNjc5MSwgMC4wMDY3OTksIDAuMDA2ODA1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IE5BTkQyQlg0ICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChOQU5EMkJYNCkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjM0MTc4MTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQU4pICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDk1NDU2OTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA5NTQwNzM7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwOTU0NTY5OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTYzMiwgMC4wMDE1ODYsIDAuMDAxNTgsIDAuMDAxNTcsIDAuMDAxNTgsIDAuMDAxNjA0LCAwLjAwMTYzMiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNDA4OSwgMC4wMDQwNTUsIDAuMDA0MDQ0LCAwLjAwNDA0OCwgMC4wMDQwNTcsIDAuMDA0MDg4LCAwLjAwNDExNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAzMjg5Mjk7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAzMjg3MTk7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAzMjg5Mjk7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxMDMsIDAuMDAxMDI4LCAwLjAwMTAyNiwgMC4wMDEwMjYsIDAuMDAxMDI2LCAwLjAwMTAyNiwgMC4wMDEwMjYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDE4NTYsIDAuMDAxODU4LCAwLjAwMTg1OCwgMC4wMDE4NiwgMC4wMDE4NTksIDAuMDAxODU5LCAwLjAwMTg1OSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjU1ODgzNzsKLSAgICBmdW5jdGlvbiA6ICIoISgoIUFOKSBCKSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkFOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0NzQ2MiwgMC4xMjA4NzMsIDAuMTkzMzE0LCAwLjI0NTA2NywgMC4zMjc2NjYsIDAuNDAwMjA4LCAwLjUwMzQ4NyIsIFwKLSAgICAgICAgICAiMC4wNTc4MDcsIDAuMTMxMjIzLCAwLjIwMzYzNywgMC4yNTUzOCwgMC4zMzgwNDcsIDAuNDEwNTU4LCAwLjUxMzg5NyIsIFwKLSAgICAgICAgICAiMC4wNzA1NjMsIDAuMTQzODI2LCAwLjIxNjI2MywgMC4yNjc5NjgsIDAuMzUwNjY1LCAwLjQyMzIwNCwgMC41MjY1NTQiLCBcCi0gICAgICAgICAgIjAuMDgyMjA2LCAwLjE1NTU4NywgMC4yMjgwMzUsIDAuMjc5NjkzLCAwLjM2MjQyMSwgMC40MzQ4OTUsIDAuNTM4MjE5IiwgXAotICAgICAgICAgICIwLjA5MjU1MSwgMC4xNjYxNTksIDAuMjM4NTQ3LCAwLjI5MDI1MywgMC4zNzI5ODEsIDAuNDQ1NDc4LCAwLjU0ODc4OSIsIFwKLSAgICAgICAgICAiMC4xMDY3MDYsIDAuMTgwNjE2LCAwLjI1Mjk1MywgMC4zMDQ2MzIsIDAuMzg3MzczLCAwLjQ1OTc1NywgMC41NjMzMjEiLCBcCi0gICAgICAgICAgIjAuMTE3NjE4LCAwLjE5MTkxNCwgMC4yNjQyMTUsIDAuMzE1ODY1LCAwLjM5ODU2NiwgMC40NzA5MzMsIDAuNTc0MzQ0Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM2NjI2LCAwLjE4MjA5MiwgMC4zMzA1NDIsIDAuNDM2NzM1LCAwLjYwNzA2MSwgMC43NTYwOTgsIDAuOTY4OTIiLCBcCi0gICAgICAgICAgIjAuMDM2NDgsIDAuMTgxOTg4LCAwLjMzMDQ4NiwgMC40MzY4NDUsIDAuNjA3MDI4LCAwLjc1NjE2MiwgMC45Njg3NjgiLCBcCi0gICAgICAgICAgIjAuMDM2NzYsIDAuMTgyMTAxLCAwLjMzMDQ1NSwgMC40MzY3OTksIDAuNjA3MTE5LCAwLjc1NTk5NiwgMC45Njg0OTQiLCBcCi0gICAgICAgICAgIjAuMDM3NzQ4LCAwLjE4MjIzOCwgMC4zMzA0NDksIDAuNDM2ODU2LCAwLjYwNzEzMSwgMC43NTYxMSwgMC45Njg3MDciLCBcCi0gICAgICAgICAgIjAuMDM5MDY3LCAwLjE4MjQ2LCAwLjMzMDYsIDAuNDM2ODQ4LCAwLjYwNjkzMywgMC43NTYyNDEsIDAuOTY4NjE1IiwgXAotICAgICAgICAgICIwLjA0MTMyLCAwLjE4MjkwNiwgMC4zMzA2NzgsIDAuNDM2ODk2LCAwLjYwNzA4NCwgMC43NTU2NjIsIDAuOTY5MTE4IiwgXAotICAgICAgICAgICIwLjA0MzQyMywgMC4xODM0NjYsIDAuMzMwODU3LCAwLjQzNjk4LCAwLjYwNzAyNSwgMC43NTU5NzgsIDAuOTY4NTY0Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDYwODk3LCAwLjE5NTY1NywgMC4zMjk5MzksIDAuNDI2MDE4LCAwLjU3OTM1NywgMC43MTM2NzgsIDAuOTA2MDUxIiwgXAotICAgICAgICAgICIwLjA3MDc1MiwgMC4yMDU1NTcsIDAuMzM5ODQ1LCAwLjQzNTkyNSwgMC41ODkyNTEsIDAuNzIzNTY2LCAwLjkxNTg4IiwgXAotICAgICAgICAgICIwLjA4MzA4NCwgMC4yMTc5NDYsIDAuMzUyMzI0LCAwLjQ0ODM3MiwgMC42MDE3MjIsIDAuNzM1OTgyLCAwLjkyODYwOCIsIFwKLSAgICAgICAgICAiMC4wOTQxNjcsIDAuMjI5MDgsIDAuMzYzNDQ2LCAwLjQ1OTQ3MiwgMC42MTI5NzcsIDAuNzQ3MzM1LCAwLjkzODg5OCIsIFwKLSAgICAgICAgICAiMC4xMDM3MDEsIDAuMjM4NjIsIDAuMzczMDY2LCAwLjQ2OTAwMSwgMC42MjI3MDgsIDAuNzU2NzY2LCAwLjk0ODQ5NyIsIFwKLSAgICAgICAgICAiMC4xMTY2OTQsIDAuMjUxNzY0LCAwLjM4NjE0MSwgMC40ODIwNDksIDAuNjM1NzQzLCAwLjc3MDEwNiwgMC45NjE5MDciLCBcCi0gICAgICAgICAgIjAuMTI2NjUsIDAuMjYxNzI3LCAwLjM5NjA2MSwgMC40OTIyMDMsIDAuNjQ1NDYyLCAwLjc4MDIxOCwgMC45NzE3NjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTUxNzUsIDAuMzIwMjQxLCAwLjU4NjYxMiwgMC43NzQ4NiwgMS4wODUxMywgMS4zNTIyNSwgMS43MjMyMiIsIFwKLSAgICAgICAgICAiMC4wNTUxOTgsIDAuMzIwMjQ2LCAwLjU4NjYxNCwgMC43NzQ4NzcsIDEuMDg1MDEsIDEuMzUxOTMsIDEuNzIzMTciLCBcCi0gICAgICAgICAgIjAuMDU1Mjc1LCAwLjMyMDI0NywgMC41ODgzNTMsIDAuNzc0Nzg1LCAxLjA4NTIzLCAxLjM1MjI2LCAxLjcyNDI0IiwgXAotICAgICAgICAgICIwLjA1NTU5MywgMC4zMjAyOTYsIDAuNTg1NTU5LCAwLjc3NTEwNCwgMS4wNzg2MSwgMS4zNDU2MywgMS43MjgwMSIsIFwKLSAgICAgICAgICAiMC4wNTYxMiwgMC4zMjAyMTksIDAuNTg4MjUxLCAwLjc3NTYzMywgMS4wNzgyNSwgMS4zNDc2OSwgMS43MzQyNyIsIFwKLSAgICAgICAgICAiMC4wNTcxMTEsIDAuMzE5MzYyLCAwLjU4ODE0OSwgMC43NzY2MywgMS4wNzg0OSwgMS4zNDQwNCwgMS43MjU4NyIsIFwKLSAgICAgICAgICAiMC4wNTc4NTQsIDAuMzIwNDA2LCAwLjU4NjU1OCwgMC43NzQ4OTksIDEuMDgxNDMsIDEuMzQ0MzYsIDEuNzIzNjIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTgwNzUsIDAuMDkxMjcyLCAwLjE2NDQ2NCwgMC4yMTY3MDMsIDAuMzAwNTE2LCAwLjM3MzY4OSwgMC40Nzc5MzYiLCBcCi0gICAgICAgICAgIjAuMDI4MDE1LCAwLjEwMTAyOCwgMC4xNzQyMDgsIDAuMjI2NDIxLCAwLjMxMDEwMiwgMC4zODMwOTUsIDAuNDg3NTk5IiwgXAotICAgICAgICAgICIwLjAzOTI2MSwgMC4xMTM1MDQsIDAuMTg2Njk0LCAwLjIzODkxLCAwLjMyMjUzNiwgMC4zOTQ2MjEsIDAuNDk5MTQ0IiwgXAotICAgICAgICAgICIwLjA0Nzc2LCAwLjEyNTk1OSwgMC4xOTkyOCwgMC4yNTE0MDUsIDAuMzM1MDI0LCAwLjQwODAyMiwgMC41MTI4IiwgXAotICAgICAgICAgICIwLjA1NDgxNCwgMC4xMzg5MDksIDAuMjExNjE0LCAwLjI2NDAyNSwgMC4zNDc0OSwgMC40MjA1NCwgMC41MjUzIiwgXAotICAgICAgICAgICIwLjA2NDg1LCAwLjE1OTMzOSwgMC4yMzE2MjEsIDAuMjgzODE1LCAwLjM2NzcxNSwgMC40NDA0ODYsIDAuNTQ1MjkyIiwgXAotICAgICAgICAgICIwLjA3Mjc3OSwgMC4xNzcyNTksIDAuMjQ5OTI2LCAwLjMwMTM4MywgMC4zODQ4NDYsIDAuNDU4NDIxLCAwLjU2MjUzNiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyOTkyMywgMC4xODAzOTYsIDAuMzMxMjUsIDAuNDM4NTY0LCAwLjYxMDksIDAuNzYxNTI4LCAwLjk3NjM0OCIsIFwKLSAgICAgICAgICAiMC4wMzMxNTgsIDAuMTgwMzY1LCAwLjMzMTUyNSwgMC40MzgwODEsIDAuNjEwNjU1LCAwLjc2MTA2MywgMC45NzU5ODIiLCBcCi0gICAgICAgICAgIjAuMDQxODk5LCAwLjE4MTU3OCwgMC4zMzEwMzIsIDAuNDM4NDc2LCAwLjYxMDk2OSwgMC43NjIyNDcsIDAuOTc2MTMyIiwgXAotICAgICAgICAgICIwLjA1MTY4OCwgMC4xODQ5NDUsIDAuMzMxMzc0LCAwLjQzOTE0OSwgMC42MTA2NDEsIDAuNzYxMDU2LCAwLjk3NjMwMiIsIFwKLSAgICAgICAgICAiMC4wNjA4MDcsIDAuMTg5ODgzLCAwLjMzMzQxMywgMC40Mzk5MTQsIDAuNjEwNTIzLCAwLjc2MTAxNywgMC45NzYyNTkiLCBcCi0gICAgICAgICAgIjAuMDcyNTc2LCAwLjIwMDI0NywgMC4zNDA0MjQsIDAuNDQzNjQxLCAwLjYxMjIyNSwgMC43NjEyMiwgMC45NzYzNjEiLCBcCi0gICAgICAgICAgIjAuMDgyNDk5LCAwLjIxMDgzOCwgMC4zNDY2NiwgMC40NDkyNDIsIDAuNjE1MzgxLCAwLjc2MjQ1NiwgMC45NzYzNDUiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzExOTEsIDAuMTY1NzE2LCAwLjMwMDAyMiwgMC4zOTU5MDEsIDAuNTQ5MzAzLCAwLjY4Mzg5LCAwLjg3NTgzIiwgXAotICAgICAgICAgICIwLjA0MDA1LCAwLjE3NDkzOSwgMC4zMDkyOCwgMC40MDUyMTUsIDAuNTU4NjYyLCAwLjY5Mjg1NSwgMC44ODQ2NTIiLCBcCi0gICAgICAgICAgIjAuMDUxODYsIDAuMTg2NDUzLCAwLjMyMDkyNSwgMC40MTY3NDQsIDAuNTcwMjcxLCAwLjcwNDUyNSwgMC44OTYzNzgiLCBcCi0gICAgICAgICAgIjAuMDYyOTUsIDAuMTk4NDY1LCAwLjMzMjg3OSwgMC40Mjg4ODIsIDAuNTgyMzg1LCAwLjcxNjYxNCwgMC45MDkwMDUiLCBcCi0gICAgICAgICAgIjAuMDcxNjYsIDAuMjA5NzEzLCAwLjM0NDA3MywgMC40NDAwNzMsIDAuNTkzNjczLCAwLjcyNzc4NywgMC45MjA0MzQiLCBcCi0gICAgICAgICAgIjAuMDg0NTMxLCAwLjIyODQwNSwgMC4zNjI3NDcsIDAuNDU2MzgzLCAwLjYxMjMzNywgMC43NDY5MTIsIDAuOTM4NDUzIiwgXAotICAgICAgICAgICIwLjA5MzUxOSwgMC4yNDUwNzYsIDAuMzc5MjY3LCAwLjQ3NTExMSwgMC42Mjg5MDksIDAuNzYzMTIyLCAwLjk1NDcyNyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1MzY2MSwgMC4zMjAxMDIsIDAuNTg2NTE1LCAwLjc3OTMwOCwgMS4wODQwNywgMS4zNDUyOSwgMS43MjM0MSIsIFwKLSAgICAgICAgICAiMC4wNTQ3ODYsIDAuMzIwMTQ5LCAwLjU4NTU3MSwgMC43NzY5NzQsIDEuMDg0LCAxLjM0NTQxLCAxLjcyODUiLCBcCi0gICAgICAgICAgIjAuMDYwOTg1LCAwLjMyMDA2NiwgMC41ODQ5NjMsIDAuNzc2NTQyLCAxLjA4MTAyLCAxLjM1MTMsIDEuNzIzOTMiLCBcCi0gICAgICAgICAgIjAuMDY5MDcyLCAwLjMyMDM3MSwgMC41ODY2MDEsIDAuNzc3MDcxLCAxLjA4MTI5LCAxLjM1MjMxLCAxLjcyMzE3IiwgXAotICAgICAgICAgICIwLjA3ODY5MiwgMC4zMjI2NTksIDAuNTg2Mzk0LCAwLjc3NjY1NCwgMS4wODUyLCAxLjM0Nzg0LCAxLjcyNDE3IiwgXAotICAgICAgICAgICIwLjA5MjgyNiwgMC4zMjg3NTMsIDAuNTg3NDkyLCAwLjc3NDgwMSwgMS4wNzkzNCwgMS4zNDM5LCAxLjcyODE4IiwgXAotICAgICAgICAgICIwLjEwNDUzNywgMC4zMzYyMjQsIDAuNTkwNTU2LCAwLjc3NzYyNCwgMS4wNzgyNywgMS4zNDQ2NCwgMS43MjgxMiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkFOIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNzAyNiwgMC4wMDcwNzYsIDAuMDA3MDgxLCAwLjAwNzA4MiwgMC4wMDcwODQsIDAuMDA3MDg2LCAwLjAwNzA4NiIsIFwKLSAgICAgICAgICAiMC4wMDY5NjIsIDAuMDA3MDMsIDAuMDA3MDM3LCAwLjAwNzA0MSwgMC4wMDcwNDIsIDAuMDA3MDQyLCAwLjAwNzA0MyIsIFwKLSAgICAgICAgICAiMC4wMDY5MjcsIDAuMDA3MDA3LCAwLjAwNzAxOSwgMC4wMDcwMjIsIDAuMDA3MDI2LCAwLjAwNzAyNiwgMC4wMDcwMjgiLCBcCi0gICAgICAgICAgIjAuMDA2OTMzLCAwLjAwNzAxMiwgMC4wMDcwMjYsIDAuMDA3MDMsIDAuMDA3MDM0LCAwLjAwNzAzNywgMC4wMDcwMzYiLCBcCi0gICAgICAgICAgIjAuMDA2OTM4LCAwLjAwNzAyNCwgMC4wMDcwMzksIDAuMDA3MDQ0LCAwLjAwNzA0OSwgMC4wMDcwNTEsIDAuMDA3MDU0IiwgXAotICAgICAgICAgICIwLjAwNjk4MywgMC4wMDcwNTUsIDAuMDA3MDczLCAwLjAwNzA3NywgMC4wMDcwODMsIDAuMDA3MDg1LCAwLjAwNzA4OCIsIFwKLSAgICAgICAgICAiMC4wMDcwMjMsIDAuMDA3MDg3LCAwLjAwNzEwMywgMC4wMDcxMTEsIDAuMDA3MTE0LCAwLjAwNzExNiwgMC4wMDcxMTkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNzAxNiwgMC4wMDcxNDksIDAuMDA3MTY1LCAwLjAwNzE3LCAwLjAwNzE3NCwgMC4wMDcxNzcsIDAuMDA3MTc5IiwgXAotICAgICAgICAgICIwLjAwNjk1NiwgMC4wMDcxMDUsIDAuMDA3MTI2LCAwLjAwNzEzMiwgMC4wMDcxMzgsIDAuMDA3MTQxLCAwLjAwNzE0NCIsIFwKLSAgICAgICAgICAiMC4wMDY5MDUsIDAuMDA3MDc5LCAwLjAwNzEwOCwgMC4wMDcxMTcsIDAuMDA3MTI2LCAwLjAwNzEzLCAwLjAwNzEzNCIsIFwKLSAgICAgICAgICAiMC4wMDY4ODYsIDAuMDA3MDcsIDAuMDA3MTA2LCAwLjAwNzExNywgMC4wMDcxMjgsIDAuMDA3MTMzLCAwLjAwNzEzOCIsIFwKLSAgICAgICAgICAiMC4wMDY4ODIsIDAuMDA3MDY5LCAwLjAwNzExLCAwLjAwNzEyNCwgMC4wMDcxMzYsIDAuMDA3MTQzLCAwLjAwNzE0OSIsIFwKLSAgICAgICAgICAiMC4wMDY4OTMsIDAuMDA3MDgyLCAwLjAwNzEyOCwgMC4wMDcxNDQsIDAuMDA3MTU5LCAwLjAwNzE2NywgMC4wMDcxNzQiLCBcCi0gICAgICAgICAgIjAuMDA2OTEsIDAuMDA3MSwgMC4wMDcxNDgsIDAuMDA3MTY2LCAwLjAwNzE4MywgMC4wMDcxOTIsIDAuMDA3MiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1MjE3LCAwLjAwNTI3MywgMC4wMDUyNzcsIDAuMDA1Mjc5LCAwLjAwNTI4MSwgMC4wMDUyODIsIDAuMDA1Mjg0IiwgXAotICAgICAgICAgICIwLjAwNTA3MywgMC4wMDUyNSwgMC4wMDUyNzQsIDAuMDA1MjksIDAuMDA1Mjg5LCAwLjAwNTI5MSwgMC4wMDUyOTYiLCBcCi0gICAgICAgICAgIjAuMDA1MDM2LCAwLjAwNTIxMywgMC4wMDUyNTUsIDAuMDA1MjY4LCAwLjAwNTI3OSwgMC4wMDUyNzksIDAuMDA1MjkxIiwgXAotICAgICAgICAgICIwLjAwNTA0MiwgMC4wMDUxOTksIDAuMDA1MjQ0LCAwLjAwNTI1MSwgMC4wMDUyNzEsIDAuMDA1Mjc3LCAwLjAwNTI4MyIsIFwKLSAgICAgICAgICAiMC4wMDUwOSwgMC4wMDUxODksIDAuMDA1MjMxLCAwLjAwNTI0NSwgMC4wMDUyNjMsIDAuMDA1MjcyLCAwLjAwNTI3OSIsIFwKLSAgICAgICAgICAiMC4wMDUxMTUsIDAuMDA1MTg5LCAwLjAwNTIyMSwgMC4wMDUyMzcsIDAuMDA1MjYyLCAwLjAwNTI1MywgMC4wMDUyNzEiLCBcCi0gICAgICAgICAgIjAuMDA1MjEyLCAwLjAwNTIwNSwgMC4wMDUyMzIsIDAuMDA1MjM4LCAwLjAwNTI1NSwgMC4wMDUyNjYsIDAuMDA1MjY1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDEyNjMsIDAuMDAxMzQxLCAwLjAwMTM0OSwgMC4wMDEzNTEsIDAuMDAxMzUzLCAwLjAwMTM1NCwgMC4wMDEzNTYiLCBcCi0gICAgICAgICAgIjAuMDAxMDU0LCAwLjAwMTI3OSwgMC4wMDEzMTMsIDAuMDAxMzI0LCAwLjAwMTMzNCwgMC4wMDEzMzksIDAuMDAxMzQzIiwgXAotICAgICAgICAgICIwLjAwMTAwOCwgMC4wMDEyMjQsIDAuMDAxMjc4LCAwLjAwMTI5NiwgMC4wMDEzMTMsIDAuMDAxMzIyLCAwLjAwMTMzIiwgXAotICAgICAgICAgICIwLjAwMTAyNiwgMC4wMDExOTcsIDAuMDAxMjU3LCAwLjAwMTI3OSwgMC4wMDEyOTksIDAuMDAxMzEsIDAuMDAxMzIiLCBcCi0gICAgICAgICAgIjAuMDAxMDkyLCAwLjAwMTE2OSwgMC4wMDEyMzQsIDAuMDAxMjU5LCAwLjAwMTI4MywgMC4wMDEyOTcsIDAuMDAxMzA5IiwgXAotICAgICAgICAgICIwLjAwMTIyOSwgMC4wMDExNjQsIDAuMDAxMjE5LCAwLjAwMTIzNSwgMC4wMDEyNywgMC4wMDEyODUsIDAuMDAxMjk5IiwgXAotICAgICAgICAgICIwLjAwMTM1MSwgMC4wMDExOCwgMC4wMDEyMTgsIDAuMDAxMjM5LCAwLjAwMTI2NCwgMC4wMDEyNzksIDAuMDAxMjkzIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogTkFORDJYNCAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChOQU5EMlg0KSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMjk4MjUxOwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDM0MzA2MzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDM0MzA2MzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDM0MjIyOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTYzNywgMC4wMDE2MzUsIDAuMDAxNjM1LCAwLjAwMTYzNSwgMC4wMDE2MzUsIDAuMDAxNjM0LCAwLjAwMTYzNCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTY5LCAwLjAwMTY0OSwgMC4wMDE2NDUsIDAuMDAxNjQxLCAwLjAwMTY0MSwgMC4wMDE2NDEsIDAuMDAxNjQxIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDMyNjgzODsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDMyNjYzNTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDMyNjgzODsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDEwNDcsIDAuMDAxMDQ2LCAwLjAwMTA0NCwgMC4wMDEwNDQsIDAuMDAxMDQ0LCAwLjAwMTA0NCwgMC4wMDEwNDMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDE4NTcsIDAuMDAxODU4LCAwLjAwMTg1NywgMC4wMDE4NiwgMC4wMDE4NTksIDAuMDAxODU5LCAwLjAwMTg1OSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjU4NjYyNTsKLSAgICBmdW5jdGlvbiA6ICIoIShBIEIpKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTkwMjgsIDAuMDkxMzYxLCAwLjE2MzU5MiwgMC4yMTUwODYsIDAuMjk3Njg3LCAwLjM2OTY4MiwgMC40NzI3MTEiLCBcCi0gICAgICAgICAgIjAuMDI5MDAzLCAwLjEwMTMwMywgMC4xNzMyNTIsIDAuMjI0NzQ4LCAwLjMwNzIzOSwgMC4zNzkzMzMsIDAuNDgyMzkiLCBcCi0gICAgICAgICAgIjAuMDQwNjQ4LCAwLjExMzU3NSwgMC4xODU4MDQsIDAuMjM3Mjg4LCAwLjMxOTc5NiwgMC4zOTE4NjMsIDAuNDkzOTUyIiwgXAotICAgICAgICAgICIwLjA0OTU5NCwgMC4xMjYwNjMsIDAuMTk4Mzc2LCAwLjI0OTc5NywgMC4zMzIyNzEsIDAuNDA0MzQxLCAwLjUwNzMxOSIsIFwKLSAgICAgICAgICAiMC4wNTcxOTgsIDAuMTM5MDUxLCAwLjIxMDcyNSwgMC4yNjI0NDksIDAuMzQ0ODI0LCAwLjQxNjc5NiwgMC41MjAwNjciLCBcCi0gICAgICAgICAgIjAuMDY3MzY2LCAwLjE1OTUxMiwgMC4yMzA3NTQsIDAuMjgyMjUxLCAwLjM2NTAxOSwgMC40MzY5MzEsIDAuNTQwMTEzIiwgXAotICAgICAgICAgICIwLjA3NDg5LCAwLjE3NzQ5LCAwLjI0OTExOSwgMC4yOTk4MjYsIDAuMzgyMTc2LCAwLjQ1NDc0OCwgMC41NTc1MTQiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzA4MjMsIDAuMTc5NDY2LCAwLjMyODAyOSwgMC40MzQwMTksIDAuNjA0MDAyLCAwLjc1MjIyOCwgMC45NjQ2NTEiLCBcCi0gICAgICAgICAgIjAuMDMzOTAxLCAwLjE3OTQxNSwgMC4zMjc4OCwgMC40MzQxMDUsIDAuNjA0MDExLCAwLjc1MjUxMSwgMC45NjQ0NDQiLCBcCi0gICAgICAgICAgIjAuMDQyMTUyLCAwLjE4MDIyNiwgMC4zMjc5NiwgMC40MzQxNTMsIDAuNjAzOTg0LCAwLjc1MjQwMSwgMC45NjQzMDEiLCBcCi0gICAgICAgICAgIjAuMDUxOTA3LCAwLjE4MzkzLCAwLjMyODIzOCwgMC40MzM5NjEsIDAuNjAzOTM4LCAwLjc1MjM2MiwgMC45NjQ3NjQiLCBcCi0gICAgICAgICAgIjAuMDYwNjYsIDAuMTg4ODI4LCAwLjMzMDQ5NSwgMC40MzQ2MzEsIDAuNjAzOTAxLCAwLjc1MjQ4LCAwLjk2NTAwMiIsIFwKLSAgICAgICAgICAiMC4wNzM1NzcsIDAuMTk5MTc0LCAwLjMzNjg4OSwgMC40Mzg1MDcsIDAuNjA0NzE5LCAwLjc1MjMxMSwgMC45NjUwMDMiLCBcCi0gICAgICAgICAgIjAuMDg0MDQyLCAwLjIwOTg1OCwgMC4zNDM3NDUsIDAuNDQ0MDE1LCAwLjYwNzcwOCwgMC43NTM0NiwgMC45NjQ1MDciKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzMwMDUsIDAuMTY3NTUzLCAwLjMwMTkxMiwgMC4zOTc2NTEsIDAuNTUxNDQyLCAwLjY4NTQ0MSwgMC44NzcyODkiLCBcCi0gICAgICAgICAgIjAuMDQxNjM5LCAwLjE3NjQ2OCwgMC4zMTA4MSwgMC40MDY2MDQsIDAuNTYwMDEzLCAwLjY5NDM5LCAwLjg4NjAzNCIsIFwKLSAgICAgICAgICAiMC4wNTI0MTUsIDAuMTg3NCwgMC4zMjE5NDMsIDAuNDE3ODMxLCAwLjU3MTE0NCwgMC43MDU0NTUsIDAuODk3MSIsIFwKLSAgICAgICAgICAiMC4wNjI0NTQsIDAuMTk4MzU0LCAwLjMzMjg2NSwgMC40Mjg5MDIsIDAuNTgyMzMyLCAwLjcxNjU0NiwgMC45MDg0MTkiLCBcCi0gICAgICAgICAgIjAuMDcxMzM4LCAwLjIwOTI3NywgMC4zNDM2ODIsIDAuNDM5OTI0LCAwLjU5MzU0NSwgMC43Mjc2NDEsIDAuOTE5NDk2IiwgXAotICAgICAgICAgICIwLjA4MzQxNCwgMC4yMjY3MjYsIDAuMzYxNDEsIDAuNDU2NTY5LCAwLjYxMTA2OCwgMC43NDUyNzcsIDAuOTM3MzcxIiwgXAotICAgICAgICAgICIwLjA5MjgxNiwgMC4yNDE3NjUsIDAuMzc2ODA4LCAwLjQ3MjgzMiwgMC42MjY1NDYsIDAuNzYwNzc5LCAwLjk1MjUyNyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1MjYzNywgMC4zMTgzMjIsIDAuNTg0MDI2LCAwLjc3ODc0OSwgMS4wNzc1NSwgMS4zNDMwOSwgMS43MjI1NiIsIFwKLSAgICAgICAgICAiMC4wNTMyODgsIDAuMzE4MjkxLCAwLjU4Mzk2MSwgMC43Nzc5MDYsIDEuMDgwMjksIDEuMzUwNjEsIDEuNzI2NjMiLCBcCi0gICAgICAgICAgIjAuMDU3MDMyLCAwLjMxOTA3LCAwLjU4Mzg1OSwgMC43NzM3MDksIDEuMDgwMzUsIDEuMzQ2MzQsIDEuNzI3MjIiLCBcCi0gICAgICAgICAgIjAuMDYyNzU5LCAwLjMxODc2MiwgMC41ODczNDEsIDAuNzczNzIxLCAxLjA4MDA3LCAxLjM1MDg1LCAxLjczMjg1IiwgXAotICAgICAgICAgICIwLjA2OTY1NSwgMC4zMjA3NTEsIDAuNTg1Mjg0LCAwLjc3MzYyOCwgMS4wNzc0MiwgMS4zNTA4LCAxLjcyMjM4IiwgXAotICAgICAgICAgICIwLjA4MDUwMywgMC4zMjQxNzYsIDAuNTg2MzU1LCAwLjc3NTc3NCwgMS4wNzgzNSwgMS4zNTAxNCwgMS43MjI3NCIsIFwKLSAgICAgICAgICAiMC4wODk5NzYsIDAuMzI5NjQsIDAuNTg2NjczLCAwLjc3NjY0NSwgMS4wNzcyNSwgMS4zNTA5NSwgMS43MjczIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE3OTI5LCAwLjA5MTE5NywgMC4xNjQ0MjIsIDAuMjE2NTYxLCAwLjMwMDMzMSwgMC4zNzMyOTYsIDAuNDc4MzA0IiwgXAotICAgICAgICAgICIwLjAyNzg2MSwgMC4xMDEwOTcsIDAuMTc0MDg0LCAwLjIyNjMwNiwgMC4zMTAwNjcsIDAuMzgzMDY2LCAwLjQ4NzY0IiwgXAotICAgICAgICAgICIwLjAzOTA5OSwgMC4xMTM3OTksIDAuMTg3MDAxLCAwLjIzOTI1OCwgMC4zMjMwMjcsIDAuMzk2MjEyLCAwLjUwMDM3NyIsIFwKLSAgICAgICAgICAiMC4wNDc0OTgsIDAuMTI1ODM2LCAwLjE5OTE3NywgMC4yNTEzNDYsIDAuMzM0OTk3LCAwLjQwODA3MywgMC41MTI4NjEiLCBcCi0gICAgICAgICAgIjAuMDU0NDg5LCAwLjEzODc4OSwgMC4yMTE1MTUsIDAuMjYzOTUzLCAwLjM0NzQ5NSwgMC40MjA1MzQsIDAuNTI1MzQxIiwgXAotICAgICAgICAgICIwLjA2NDQ1LCAwLjE1OTIwNiwgMC4yMzE1MjEsIDAuMjgzNzMyLCAwLjM2NzY3NSwgMC40NDA0OTYsIDAuNTQ1MzM1IiwgXAotICAgICAgICAgICIwLjA3MjM0MSwgMC4xNzY1NDEsIDAuMjQ5ODI3LCAwLjMwMTI5NywgMC4zODQ4MDIsIDAuNDU4NDE5LCAwLjU2MjU4MiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyOTYyMSwgMC4xODA0NDgsIDAuMzMxMDY4LCAwLjQzOTM2NiwgMC42MTExMzksIDAuNzYxNzEzLCAwLjk3NzY1NCIsIFwKLSAgICAgICAgICAiMC4wMzI4OTcsIDAuMTgwMjcyLCAwLjMzMTU5OSwgMC40MzkwNzQsIDAuNjExMjA5LCAwLjc2MTcyMSwgMC45NzY3NTEiLCBcCi0gICAgICAgICAgIjAuMDQxNjMsIDAuMTgxMzc5LCAwLjMzMTUyLCAwLjQzODcwNywgMC42MTExMDUsIDAuNzYxOTQ4LCAwLjk3OTAxNiIsIFwKLSAgICAgICAgICAiMC4wNTE0MjcsIDAuMTg0NzI1LCAwLjMzMTMxOCwgMC40Mzg5ODcsIDAuNjExMTEsIDAuNzYxNTgzLCAwLjk3NzE4NiIsIFwKLSAgICAgICAgICAiMC4wNjA1MzEsIDAuMTg5NzksIDAuMzMzNTM4LCAwLjQ0MDEzMywgMC42MTA3NzksIDAuNzYxNjY3LCAwLjk3NzE4NyIsIFwKLSAgICAgICAgICAiMC4wNzIyNDYsIDAuMjAwMTY1LCAwLjM0MDUyNywgMC40NDM4NzEsIDAuNjEyNjQ0LCAwLjc2MTg5NiwgMC45NzczMDEiLCBcCi0gICAgICAgICAgIjAuMDgxNjY5LCAwLjIxMDIxNSwgMC4zNDY3MzMsIDAuNDQ5MzkzLCAwLjYxNTg0MywgMC43NjMyMTIsIDAuOTc2NjkxIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDMwODQ0LCAwLjE2NTM3LCAwLjI5OTY0MiwgMC4zOTU2NjIsIDAuNTQ4ODUzLCAwLjY4MzY0MywgMC44NzUwOTQiLCBcCi0gICAgICAgICAgIjAuMDM5NjgzLCAwLjE3NDQ1OSwgMC4zMDg4MTUsIDAuNDA0NjkzLCAwLjU1ODE1NCwgMC42OTIzOTgsIDAuODg0MTQ3IiwgXAotICAgICAgICAgICIwLjA1MTQ2NCwgMC4xODYwMSwgMC4zMjAzOTUsIDAuNDE2MjIyLCAwLjU2OTc5OSwgMC43MDM5NTEsIDAuODk2NDI5IiwgXAotICAgICAgICAgICIwLjA2MjU1LCAwLjE5NzkyOSwgMC4zMzIzMiwgMC40MjgzMjcsIDAuNTgxNzE3LCAwLjcxNjE2NSwgMC45MDgyNDIiLCBcCi0gICAgICAgICAgIjAuMDcxMjA5LCAwLjIwOTI0MiwgMC4zNDM3ODEsIDAuNDM5NTMsIDAuNTkzMTQ5LCAwLjcyNzI0OSwgMC45MTk4ODIiLCBcCi0gICAgICAgICAgIjAuMDg0MDA1LCAwLjIyNzk1MywgMC4zNjIyNTEsIDAuNDU1ODYsIDAuNjExNjksIDAuNzQ1OTU5LCAwLjkzNzg2NSIsIFwKLSAgICAgICAgICAiMC4wOTMxMTksIDAuMjQ0NjM3LCAwLjM3ODc3NSwgMC40NzQ2MDQsIDAuNjI4MTg5LCAwLjc2Mjg5OCwgMC45NTQxNTgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTI3MSwgMC4zMTgyMDYsIDAuNTg0MDY4LCAwLjc3MzUyNSwgMS4wODMyNCwgMS4zNDMyMiwgMS43MzMyNiIsIFwKLSAgICAgICAgICAiMC4wNTQwMTIsIDAuMzE5MDg4LCAwLjU4NzE4MywgMC43NzU4MjMsIDEuMDgzMTIsIDEuMzQ2NDEsIDEuNzI3MzgiLCBcCi0gICAgICAgICAgIjAuMDYwMTk3LCAwLjMxODM1OCwgMC41ODM4OTgsIDAuNzc1ODM1LCAxLjA3ODM4LCAxLjM1MDExLCAxLjcyMTk5IiwgXAotICAgICAgICAgICIwLjA2ODIwMiwgMC4zMjAzMTIsIDAuNTg3Mjc0LCAwLjc3ODU1NCwgMS4wODMzMywgMS4zNDMxNCwgMS43MjQ5MyIsIFwKLSAgICAgICAgICAiMC4wNzgwMjEsIDAuMzIxNjUzLCAwLjU4Mzk5LCAwLjc3NTc4NCwgMS4wODQwMiwgMS4zNDY2OSwgMS43MjI5OSIsIFwKLSAgICAgICAgICAiMC4wOTIxNiwgMC4zMjc3ODUsIDAuNTg2NDMyLCAwLjc3MzY2OSwgMS4wNzk5MSwgMS4zNDYzOCwgMS43MjY4NiIsIFwKLSAgICAgICAgICAiMC4xMDM5NDYsIDAuMzM1MjksIDAuNTg5NTEsIDAuNzc2NTM5LCAxLjA3ODE0LCAxLjM0MzMxLCAxLjczMTU4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDY5MTcsIDAuMDA2OTM4LCAwLjAwNjk0LCAwLjAwNjk0MSwgMC4wMDY5NDEsIDAuMDA2OTQxLCAwLjAwNjk0MSIsIFwKLSAgICAgICAgICAiMC4wMDY4MDcsIDAuMDA2ODk2LCAwLjAwNjkwNSwgMC4wMDY5MDgsIDAuMDA2OTEyLCAwLjAwNjkxMywgMC4wMDY5MDciLCBcCi0gICAgICAgICAgIjAuMDA2OCwgMC4wMDY4OCwgMC4wMDY4OTcsIDAuMDA2OTAyLCAwLjAwNjkwOCwgMC4wMDY5MSwgMC4wMDY5MDUiLCBcCi0gICAgICAgICAgIjAuMDA2ODI4LCAwLjAwNjg3NCwgMC4wMDY4OTQsIDAuMDA2ODk5LCAwLjAwNjkwNCwgMC4wMDY5MDgsIDAuMDA2OTA5IiwgXAotICAgICAgICAgICIwLjAwNjg2NSwgMC4wMDY4NzgsIDAuMDA2ODksIDAuMDA2OTAxLCAwLjAwNjkwMywgMC4wMDY5MDUsIDAuMDA2OTA4IiwgXAotICAgICAgICAgICIwLjAwNjk3NywgMC4wMDY4OTcsIDAuMDA2ODk1LCAwLjAwNjg5OCwgMC4wMDY5MDcsIDAuMDA2ODk3LCAwLjAwNjkxMSIsIFwKLSAgICAgICAgICAiMC4wMDcxLCAwLjAwNjkzLCAwLjAwNjkxNywgMC4wMDY5MDksIDAuMDA2OTExLCAwLjAwNjkxNywgMC4wMDY5MDUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDg2OCwgMC4wMDA5MzMsIDAuMDAwOTM5LCAwLjAwMDk0MSwgMC4wMDA5NDMsIDAuMDAwOTQ0LCAwLjAwMDk0NCIsIFwKLSAgICAgICAgICAiMC4wMDA2ODMsIDAuMDAwODc5LCAwLjAwMDkwOSwgMC4wMDA5MTgsIDAuMDAwOTI2LCAwLjAwMDkzLCAwLjAwMDkzNCIsIFwKLSAgICAgICAgICAiMC4wMDA1ODYsIDAuMDAwODIzLCAwLjAwMDg3NCwgMC4wMDA4OSwgMC4wMDA5MDYsIDAuMDAwOTE0LCAwLjAwMDkyMSIsIFwKLSAgICAgICAgICAiMC4wMDA1NSwgMC4wMDA3OCwgMC4wMDA4NDMsIDAuMDAwODY2LCAwLjAwMDg4OSwgMC4wMDA4OTgsIDAuMDAwOTA4IiwgXAotICAgICAgICAgICIwLjAwMDU0MSwgMC4wMDA3NDgsIDAuMDAwODE5LCAwLjAwMDg0NiwgMC4wMDA4NzEsIDAuMDAwODg1LCAwLjAwMDg5OCIsIFwKLSAgICAgICAgICAiMC4wMDA1NTksIDAuMDAwNzEsIDAuMDAwNzg2LCAwLjAwMDgxNywgMC4wMDA4NDcsIDAuMDAwODY0LCAwLjAwMDg4MSIsIFwKLSAgICAgICAgICAiMC4wMDA1OTMsIDAuMDAwNjk0LCAwLjAwMDc2NywgMC4wMDA3OTgsIDAuMDAwODMyLCAwLjAwMDg1MSwgMC4wMDA4NjkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNTQwNCwgMC4wMDU0NTksIDAuMDA1NDY2LCAwLjAwNTQ2NywgMC4wMDU0NjgsIDAuMDA1NDcsIDAuMDA1NDciLCBcCi0gICAgICAgICAgIjAuMDA1MjYsIDAuMDA1NDM4LCAwLjAwNTQ2MiwgMC4wMDU0NzksIDAuMDA1NDc1LCAwLjAwNTQ4LCAwLjAwNTQ4NCIsIFwKLSAgICAgICAgICAiMC4wMDUyMTYsIDAuMDA1Mzk5LCAwLjAwNTQ0MiwgMC4wMDU0NTMsIDAuMDA1NDYzLCAwLjAwNTQ3LCAwLjAwNTQ3OCIsIFwKLSAgICAgICAgICAiMC4wMDUyMjgsIDAuMDA1Mzg3LCAwLjAwNTQzMSwgMC4wMDU0NDQsIDAuMDA1NDU5LCAwLjAwNTQ2NSwgMC4wMDU0NzMiLCBcCi0gICAgICAgICAgIjAuMDA1Mjc4LCAwLjAwNTM3NywgMC4wMDU0MTksIDAuMDA1NDM3LCAwLjAwNTQ1LCAwLjAwNTQ2LCAwLjAwNTQ2NyIsIFwKLSAgICAgICAgICAiMC4wMDUzMDYsIDAuMDA1Mzc2LCAwLjAwNTQwNywgMC4wMDU0MzEsIDAuMDA1NDQ1LCAwLjAwNTQ0LCAwLjAwNTQ1OSIsIFwKLSAgICAgICAgICAiMC4wMDU0MDEsIDAuMDA1MzgzLCAwLjAwNTQxOSwgMC4wMDU0MjgsIDAuMDA1NDQsIDAuMDA1NDUxLCAwLjAwNTQ1MyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwODU5LCAwLjAwMDkzNiwgMC4wMDA5NDQsIDAuMDAwOTQ2LCAwLjAwMDk0OCwgMC4wMDA5NDksIDAuMDAwOTUiLCBcCi0gICAgICAgICAgIjAuMDAwNjQ4LCAwLjAwMDg3NCwgMC4wMDA5MDgsIDAuMDAwOTE5LCAwLjAwMDkyOSwgMC4wMDA5MzQsIDAuMDAwOTM4IiwgXAotICAgICAgICAgICIwLjAwMDYwNywgMC4wMDA4MjEsIDAuMDAwODc0LCAwLjAwMDg5MiwgMC4wMDA5MDgsIDAuMDAwOTE3LCAwLjAwMDkyNSIsIFwKLSAgICAgICAgICAiMC4wMDA2MSwgMC4wMDA3ODQsIDAuMDAwODQ4LCAwLjAwMDg3LCAwLjAwMDg5NCwgMC4wMDA5MDMsIDAuMDAwOTE2IiwgXAotICAgICAgICAgICIwLjAwMDY4OCwgMC4wMDA3NjUsIDAuMDAwODI5LCAwLjAwMDg1NCwgMC4wMDA4NzgsIDAuMDAwODkyLCAwLjAwMDkwNCIsIFwKLSAgICAgICAgICAiMC4wMDA4MjcsIDAuMDAwNzYsIDAuMDAwODE1LCAwLjAwMDgzNCwgMC4wMDA4NjUsIDAuMDAwODgsIDAuMDAwODk0IiwgXAotICAgICAgICAgICIwLjAwMDk0OSwgMC4wMDA3NzYsIDAuMDAwODE0LCAwLjAwMDgzNSwgMC4wMDA4NTksIDAuMDAwODc0LCAwLjAwMDg4OCIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IE5BTkQyWEwgKgotICogLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoTkFORDJYTCkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjA0NDM1ODI7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDU3OTc0MTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA1Nzk3NDE7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNTc4NjMzOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDIyNiwgMC4wMDAyMjYsIDAuMDAwMjI2LCAwLjAwMDIyNiwgMC4wMDAyMjYsIDAuMDAwMjI2LCAwLjAwMDIyNiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDIzNCwgMC4wMDAyMjgsIDAuMDAwMjI3LCAwLjAwMDIyNywgMC4wMDAyMjcsIDAuMDAwMjI3LCAwLjAwMDIyNyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjQ0MTk7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjQzODU3OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDY0NDE5OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDEzLCAwLjAwMDEzLCAwLjAwMDEzLCAwLjAwMDEyOSwgMC4wMDAxMywgMC4wMDAxMywgMC4wMDAxMyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDI1NywgMC4wMDAyNTcsIDAuMDAwMjU3LCAwLjAwMDI1NywgMC4wMDAyNTcsIDAuMDAwMjU3LCAwLjAwMDI1NyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjA4NDQwMTc7Ci0gICAgZnVuY3Rpb24gOiAiKCEoQSBCKSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4MDY3OCwgMC4wOTQ4MjgsIDAuMjIyMDQxLCAwLjQzMzk3MiwgMC42NDYwOTMsIDEuMTQwMjQsIDEuNDIzNDgiLCBcCi0gICAgICAgICAgIjAuMDkwNTkxLCAwLjEwNDUxNiwgMC4yMzE2OTMsIDAuNDQzNzY0LCAwLjY1NTQxOSwgMS4xNDk4OSwgMS40MzI4OSIsIFwKLSAgICAgICAgICAiMC4xMDI3MTEsIDAuMTE2OTcxLCAwLjI0NDA5MywgMC40NTU1NDMsIDAuNjY3MDQ1LCAxLjE2MTU0LCAxLjQ0NDE0IiwgXAotICAgICAgICAgICIwLjExNTA2LCAwLjEyOTIwOCwgMC4yNTY0MTcsIDAuNDY4MjI2LCAwLjY3ODk1NSwgMS4xNzM4NSwgMS40NTYxOCIsIFwKLSAgICAgICAgICAiMC4xMjc5NDgsIDAuMTQyMDI2LCAwLjI2ODg5NSwgMC40ODA1NjcsIDAuNjkxNDc5LCAxLjE4NTg0LCAxLjQ2ODU3IiwgXAotICAgICAgICAgICIwLjE0ODAxMSwgMC4xNjIxNDQsIDAuMjg4Mzg1LCAwLjUwMDM0NCwgMC43MTIwOTEsIDEuMjA1NjgsIDEuNDg3MzciLCBcCi0gICAgICAgICAgIjAuMTY1MjQxLCAwLjE3OTg0NiwgMC4zMDU3MzEsIDAuNTE3ODU0LCAwLjcyOTMxNSwgMS4yMjIyNSwgMS41MDUzNiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNTcxODksIDAuMTg2MywgMC40NDcxMTksIDAuODgxNywgMS4zMTY4OSwgMi4zMzAzNSwgMi45MDk3NCIsIFwKLSAgICAgICAgICAiMC4xNTcyNTIsIDAuMTg2MjgxLCAwLjQ0Njk1NiwgMC44ODIxMDYsIDEuMzE2NTgsIDIuMzMwNjcsIDIuOTA5OTciLCBcCi0gICAgICAgICAgIjAuMTU4NjgsIDAuMTg2OTMxLCAwLjQ0NzExNCwgMC44ODE4OTcsIDEuMzE2NjEsIDIuMzMwNTQsIDIuOTEwMjUiLCBcCi0gICAgICAgICAgIjAuMTYyOTg4LCAwLjE5MDQyOCwgMC40NDcxMzIsIDAuODgxNzk5LCAxLjMxNjE5LCAyLjMzMDU0LCAyLjkwOTg2IiwgXAotICAgICAgICAgICIwLjE2ODY3NCwgMC4xOTUyNjYsIDAuNDQ3NTAyLCAwLjg4MTY2OSwgMS4zMTYyNSwgMi4zMzEwMSwgMi45MDk5IiwgXAotICAgICAgICAgICIwLjE3OTg0MSwgMC4yMDU3MDIsIDAuNDUxMTc4LCAwLjg4MTY5MiwgMS4zMTY2MiwgMi4zMzEwNCwgMi45MDg5MSIsIFwKLSAgICAgICAgICAiMC4xOTEyMSwgMC4yMTYxMTksIDAuNDU2NjEyLCAwLjg4MTgwNCwgMS4zMTY1MSwgMi4zMzA0OCwgMi45MTA2Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE0Mjk3OCwgMC4xNjg1NiwgMC4zOTczMSwgMC43Nzg3MDgsIDEuMTYwNzQsIDIuMDUwMTIsIDIuNTU4ODUiLCBcCi0gICAgICAgICAgIjAuMTUxOTgyLCAwLjE3NzM4OCwgMC40MDYzNTMsIDAuNzg4MjY4LCAxLjE2OTEyLCAyLjA1ODQ5LCAyLjU2Nzc0IiwgXAotICAgICAgICAgICIwLjE2MjgzNiwgMC4xODg0MDEsIDAuNDE3MzMyLCAwLjc5ODg5NiwgMS4xODA0MSwgMi4wNjk4NiwgMi41Nzg4NCIsIFwKLSAgICAgICAgICAiMC4xNzM3MTgsIDAuMTk5MjA2LCAwLjQyODI2MSwgMC44MTAxNTUsIDEuMTkxNzUsIDIuMDgxNTcsIDIuNTg5MDEiLCBcCi0gICAgICAgICAgIjAuMTg0NTgyLCAwLjIxMDAxNCwgMC40Mzk2MDksIDAuODIxMTE2LCAxLjIwMjE2LCAyLjA5MjQxLCAyLjYwMTE3IiwgXAotICAgICAgICAgICIwLjIwMjA0MiwgMC4yMjcyNjIsIDAuNDU2NjYzLCAwLjgzODMxNCwgMS4yMjAzMywgMi4xMDkzNywgMi42MTgzNSIsIFwKLSAgICAgICAgICAiMC4yMTc2MDEsIDAuMjQyNDE5LCAwLjQ3MjA2MywgMC44NTM1OTUsIDEuMjM1MjIsIDIuMTI0ODksIDIuNjMzMjciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjcwMjQ4LCAwLjMxOTgxLCAwLjc3NjIyMiwgMS41MzMzOSwgMi4yNzU3OCwgNC4wMzA4MywgNS4wMzU0NSIsIFwKLSAgICAgICAgICAiMC4yNjk4ODMsIDAuMzIwNjAzLCAwLjc3MTc3MywgMS41MjM1OCwgMi4yNzc3MSwgNC4wNDA3OCwgNS4wMzc0NyIsIFwKLSAgICAgICAgICAiMC4yNzAyNzUsIDAuMzE5Njg2LCAwLjc3NTU5MiwgMS41MjUwNCwgMi4yNzUxOCwgNC4wMzM2NywgNS4wMzg4NyIsIFwKLSAgICAgICAgICAiMC4yNzEwMTgsIDAuMzIwMjIxLCAwLjc3NTYwMSwgMS41MjI2NywgMi4yNzQ1OCwgNC4wMzAyLCA1LjA0MjciLCBcCi0gICAgICAgICAgIjAuMjcyOTU1LCAwLjMyMjIxNCwgMC43NzEwNjQsIDEuNTIzMzYsIDIuMjg2ODMsIDQuMDM0MjMsIDUuMDMzNzMiLCBcCi0gICAgICAgICAgIjAuMjc4MjYxLCAwLjMyNjE1OCwgMC43NzI5NTgsIDEuNTI3MjEsIDIuMjc0NjMsIDQuMDQyMywgNS4wMzg4NCIsIFwKLSAgICAgICAgICAiMC4yODQxODIsIDAuMzMxMjk3LCAwLjc3Mzk4NiwgMS41MjY4OCwgMi4yODkwNywgNC4wNDExLCA1LjA0MjgxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3OTI1LCAwLjA5MzMzMywgMC4yMjA1NDYsIDAuNDMyNDYsIDAuNjQ0NDg3LCAxLjEzODc2LCAxLjQyMjQ3IiwgXAotICAgICAgICAgICIwLjA4OTA5OSwgMC4xMDMyMjQsIDAuMjMwMzY5LCAwLjQ0MjU3MiwgMC42NTQzNDgsIDEuMTQ4NjQsIDEuNDMxOSIsIFwKLSAgICAgICAgICAiMC4xMDEyMjksIDAuMTE1MzcsIDAuMjQyNjYsIDAuNDU0MDY0LCAwLjY2NTcwNiwgMS4xNjAwNywgMS40NDI2OCIsIFwKLSAgICAgICAgICAiMC4xMTM1NTgsIDAuMTI3NzA5LCAwLjI1NDk2OSwgMC40NjY4MDYsIDAuNjc3NDY5LCAxLjE3MjM0LCAxLjQ1NDcxIiwgXAotICAgICAgICAgICIwLjEyNjQzNCwgMC4xNDA1MDksIDAuMjY3MzgyLCAwLjQ3OTAzMywgMC42ODk5ODMsIDEuMTg0MzYsIDEuNDY3MSIsIFwKLSAgICAgICAgICAiMC4xNDY1NzksIDAuMTYwNTg5LCAwLjI4Njg2OSwgMC40OTg4MjcsIDAuNzEwNTg3LCAxLjIwNDU0LCAxLjQ4NTkiLCBcCi0gICAgICAgICAgIjAuMTYzNTk0LCAwLjE3ODE2NiwgMC4zMDQxODUsIDAuNTE2MzQ3LCAwLjcyNzgxMSwgMS4yMjA3NiwgMS41MDQzMiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNTU0MzcsIDAuMTg0NzM5LCAwLjQ0NTM3NSwgMC44ODAxODUsIDEuMzE1MDYsIDIuMzI5NywgMi45MTA1OCIsIFwKLSAgICAgICAgICAiMC4xNTU1NzMsIDAuMTg0NDA3LCAwLjQ0NTI1MSwgMC44ODAwODIsIDEuMzE1ODgsIDIuMzI5NjEsIDIuOTA5MTIiLCBcCi0gICAgICAgICAgIjAuMTU3Mjg5LCAwLjE4NTMzNSwgMC40NDUzNzUsIDAuODc5ODg3LCAxLjMxNTAyLCAyLjMyOTU5LCAyLjkxMDIiLCBcCi0gICAgICAgICAgIjAuMTYxNDYyLCAwLjE4OTEyLCAwLjQ0NTM1MSwgMC44ODAxNzIsIDEuMzE0NzIsIDIuMzMxMDYsIDIuOTA5MzIiLCBcCi0gICAgICAgICAgIjAuMTY3MDksIDAuMTk0MDI3LCAwLjQ0NjQyMywgMC44ODEzLCAxLjMxNTAxLCAyLjMzMjg3LCAyLjkwOTMyIiwgXAotICAgICAgICAgICIwLjE3ODUyMiwgMC4yMDQwNzEsIDAuNDUwMzU1LCAwLjg4MTM5NCwgMS4zMTY3NiwgMi4zMzA1NiwgMi45MDg3MSIsIFwKLSAgICAgICAgICAiMC4xODk3NjEsIDAuMjE0NjIzLCAwLjQ1NTc3MiwgMC44ODA4NywgMS4zMTczNSwgMi4zMjk1LCAyLjkxMDU2Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE0MDc5NCwgMC4xNjYyMTksIDAuMzk1MDY5LCAwLjc3NjMyLCAxLjE1NzQ5LCAyLjA0NzIxLCAyLjU1NjIxIiwgXAotICAgICAgICAgICIwLjE1MDEyLCAwLjE3NTUzLCAwLjQwNDYzMywgMC43ODU5MDgsIDEuMTY3OTMsIDIuMDU4NDMsIDIuNTY1OCIsIFwKLSAgICAgICAgICAiMC4xNjE1NTYsIDAuMTg3MDMyLCAwLjQxNjA3OCwgMC43OTc0MTcsIDEuMTc4ODYsIDIuMDY4ODIsIDIuNTc2OTEiLCBcCi0gICAgICAgICAgIjAuMTczMDg1LCAwLjE5ODU0MiwgMC40Mjc3NTYsIDAuODA5MDc5LCAxLjE5MDUxLCAyLjA4MDQsIDIuNTg4OTIiLCBcCi0gICAgICAgICAgIjAuMTg0NzI3LCAwLjIxMDE4NSwgMC40MzkxMjUsIDAuODIwNTYsIDEuMjAxODYsIDIuMDkyMTgsIDIuNjAxMTgiLCBcCi0gICAgICAgICAgIjAuMjAzNjA3LCAwLjIyODkwNywgMC40NTUzOTQsIDAuODM5NTY0LCAxLjIyMDU1LCAyLjExMDg5LCAyLjYxOTM4IiwgXAotICAgICAgICAgICIwLjIyMDYzNSwgMC4yNDU1ODIsIDAuNDc0MTY1LCAwLjg1NTcyMywgMS4yMzY5OSwgMi4xMjc0NSwgMi42MzU0NCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yNjk4LCAwLjMyMDQ5MSwgMC43NzE2MTMsIDEuNTI3MDQsIDIuMjgwODcsIDQuMDQwOTMsIDUuMDM3OTQiLCBcCi0gICAgICAgICAgIjAuMjY5NTUyLCAwLjMyMDYxNSwgMC43NzA3NywgMS41MzMzNCwgMi4yNzU3NSwgNC4wMzEzMSwgNS4wNDM2MSIsIFwKLSAgICAgICAgICAiMC4yNjk1OTgsIDAuMzE5NzYyLCAwLjc3MTI4MiwgMS41MjQ0NSwgMi4yNzUzLCA0LjAzMDM0LCA1LjAzNzQ1IiwgXAotICAgICAgICAgICIwLjI3MjA4MSwgMC4zMjE3OTksIDAuNzcwNzc0LCAxLjUyNDM1LCAyLjI3NTMsIDQuMDQzMjQsIDUuMDM5MjUiLCBcCi0gICAgICAgICAgIjAuMjc0NDIzLCAwLjMyMzA4MywgMC43NzI5NTIsIDEuNTMyNzUsIDIuMjgxMzEsIDQuMDM0ODQsIDUuMDMxMTkiLCBcCi0gICAgICAgICAgIjAuMjgyMTQsIDAuMzI5MjIyLCAwLjc3NTI5OCwgMS41MjI5NywgMi4yODkyOSwgNC4wMzUxNSwgNS4wMzMyNyIsIFwKLSAgICAgICAgICAiMC4yODk3NTUsIDAuMzM2NjQzLCAwLjc3MzkzNiwgMS41MjQ4MSwgMi4yODEyMiwgNC4wMzA1LCA1LjAzNjA1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxMjAxLCAwLjAwMTIwMiwgMC4wMDEyMDIsIDAuMDAxMjAyLCAwLjAwMTIwMiwgMC4wMDEyMDIsIDAuMDAxMjAxIiwgXAotICAgICAgICAgICIwLjAwMTE5NiwgMC4wMDExOTYsIDAuMDAxMTk4LCAwLjAwMTE5OSwgMC4wMDExOTgsIDAuMDAxMTk4LCAwLjAwMTE5OSIsIFwKLSAgICAgICAgICAiMC4wMDExOTQsIDAuMDAxMTk1LCAwLjAwMTE5NywgMC4wMDExOTgsIDAuMDAxMTk4LCAwLjAwMTE5OCwgMC4wMDExOTgiLCBcCi0gICAgICAgICAgIjAuMDAxMTkzLCAwLjAwMTE5MywgMC4wMDExOTcsIDAuMDAxMTk4LCAwLjAwMTE5OCwgMC4wMDExOTgsIDAuMDAxMTk4IiwgXAotICAgICAgICAgICIwLjAwMTE5MywgMC4wMDExOTUsIDAuMDAxMTk3LCAwLjAwMTE5OCwgMC4wMDExOTgsIDAuMDAxMTk4LCAwLjAwMTE5OCIsIFwKLSAgICAgICAgICAiMC4wMDEyLCAwLjAwMTE5OSwgMC4wMDExOTcsIDAuMDAxMTk5LCAwLjAwMTE5OSwgMC4wMDExOTgsIDAuMDAxMTk4IiwgXAotICAgICAgICAgICIwLjAwMTIwNiwgMC4wMDEyMDUsIDAuMDAxMiwgMC4wMDEyLCAwLjAwMTE5OSwgMC4wMDExOTksIDAuMDAxMTk5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwMjE5LCAwLjAwMDIyLCAwLjAwMDIyMSwgMC4wMDAyMjEsIDAuMDAwMjIxLCAwLjAwMDIyMSwgMC4wMDAyMjEiLCBcCi0gICAgICAgICAgIjAuMDAwMjExLCAwLjAwMDIxMiwgMC4wMDAyMTgsIDAuMDAwMjIsIDAuMDAwMjIsIDAuMDAwMjIxLCAwLjAwMDIyMSIsIFwKLSAgICAgICAgICAiMC4wMDAyMDMsIDAuMDAwMjA1LCAwLjAwMDIxNCwgMC4wMDAyMTgsIDAuMDAwMjE5LCAwLjAwMDIyLCAwLjAwMDIyIiwgXAotICAgICAgICAgICIwLjAwMDE5NiwgMC4wMDAxOTksIDAuMDAwMjExLCAwLjAwMDIxNiwgMC4wMDAyMTgsIDAuMDAwMjE5LCAwLjAwMDIyIiwgXAotICAgICAgICAgICIwLjAwMDE5MiwgMC4wMDAxOTUsIDAuMDAwMjA4LCAwLjAwMDIxNCwgMC4wMDAyMTYsIDAuMDAwMjE5LCAwLjAwMDIxOSIsIFwKLSAgICAgICAgICAiMC4wMDAxODcsIDAuMDAwMTksIDAuMDAwMjA1LCAwLjAwMDIxMiwgMC4wMDAyMTUsIDAuMDAwMjE4LCAwLjAwMDIxOCIsIFwKLSAgICAgICAgICAiMC4wMDAxODYsIDAuMDAwMTg5LCAwLjAwMDIwMiwgMC4wMDAyMSwgMC4wMDAyMTQsIDAuMDAwMjE3LCAwLjAwMDIxOCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDk3NiwgMC4wMDA5NzcsIDAuMDAwOTc4LCAwLjAwMDk3OCwgMC4wMDA5NzgsIDAuMDAwOTc4LCAwLjAwMDk3OCIsIFwKLSAgICAgICAgICAiMC4wMDA5NzIsIDAuMDAwOTczLCAwLjAwMDk3NywgMC4wMDA5NzksIDAuMDAwOTgsIDAuMDAwOTgsIDAuMDAwOTgiLCBcCi0gICAgICAgICAgIjAuMDAwOTY4LCAwLjAwMDk3LCAwLjAwMDk3NiwgMC4wMDA5NzksIDAuMDAwOTgsIDAuMDAwOTgsIDAuMDAwOTgxIiwgXAotICAgICAgICAgICIwLjAwMDk2NCwgMC4wMDA5NjYsIDAuMDAwOTc0LCAwLjAwMDk3NywgMC4wMDA5NzksIDAuMDAwOTgsIDAuMDAwOTgiLCBcCi0gICAgICAgICAgIjAuMDAwOTY0LCAwLjAwMDk2NiwgMC4wMDA5NzMsIDAuMDAwOTc3LCAwLjAwMDk3OCwgMC4wMDA5OCwgMC4wMDA5OCIsIFwKLSAgICAgICAgICAiMC4wMDA5NjYsIDAuMDAwOTY3LCAwLjAwMDk3MywgMC4wMDA5NzcsIDAuMDAwOTc4LCAwLjAwMDk3OSwgMC4wMDA5OCIsIFwKLSAgICAgICAgICAiMC4wMDA5NywgMC4wMDA5NywgMC4wMDA5NzMsIDAuMDAwOTc3LCAwLjAwMDk3OCwgMC4wMDA5OCwgMC4wMDA5OCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDIxOSwgMC4wMDAyMTksIDAuMDAwMjIxLCAwLjAwMDIyMSwgMC4wMDAyMjEsIDAuMDAwMjIxLCAwLjAwMDIyMSIsIFwKLSAgICAgICAgICAiMC4wMDAyMSwgMC4wMDAyMTIsIDAuMDAwMjE3LCAwLjAwMDIxOSwgMC4wMDAyMiwgMC4wMDAyMjEsIDAuMDAwMjIxIiwgXAotICAgICAgICAgICIwLjAwMDIwMiwgMC4wMDAyMDQsIDAuMDAwMjEzLCAwLjAwMDIxNywgMC4wMDAyMTksIDAuMDAwMjIsIDAuMDAwMjIiLCBcCi0gICAgICAgICAgIjAuMDAwMTk3LCAwLjAwMDIsIDAuMDAwMjExLCAwLjAwMDIxNiwgMC4wMDAyMTgsIDAuMDAwMjE5LCAwLjAwMDIyIiwgXAotICAgICAgICAgICIwLjAwMDE5NSwgMC4wMDAxOTgsIDAuMDAwMjA5LCAwLjAwMDIxNCwgMC4wMDAyMTcsIDAuMDAwMjE5LCAwLjAwMDIxOSIsIFwKLSAgICAgICAgICAiMC4wMDAxOTcsIDAuMDAwMTk4LCAwLjAwMDIwNywgMC4wMDAyMTMsIDAuMDAwMjE2LCAwLjAwMDIxOCwgMC4wMDAyMTkiLCBcCi0gICAgICAgICAgIjAuMDAwMjAzLCAwLjAwMDIwMiwgMC4wMDAyMDgsIDAuMDAwMjEzLCAwLjAwMDIxNSwgMC4wMDAyMTgsIDAuMDAwMjE5Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogTkFORDNYMiAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChOQU5EM1gyKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMjIyNjk0OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE4MzEwNzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE4MzEwNzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE4MjYwNDsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA4MTgsIDAuMDAwODE4LCAwLjAwMDgxNywgMC4wMDA4MTcsIDAuMDAwODE3LCAwLjAwMDgxNywgMC4wMDA4MTciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA4MTksIDAuMDAwODIsIDAuMDAwODIsIDAuMDAwODIsIDAuMDAwODIsIDAuMDAwODIsIDAuMDAwODIiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTc1MzE3OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTc1MzE3OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTc0OTI0OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDgxOSwgMC4wMDA4MTcsIDAuMDAwODE3LCAwLjAwMDgxNywgMC4wMDA4MTcsIDAuMDAwODE3LCAwLjAwMDgxNyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDgxOSwgMC4wMDA4MiwgMC4wMDA4MiwgMC4wMDA4MjEsIDAuMDAwODIxLCAwLjAwMDgyMSwgMC4wMDA4MjEiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEMpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTYxNTg5OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTYxNDQ5OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTYxNTg5OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDUzOCwgMC4wMDA1MzcsIDAuMDAwNTM3LCAwLjAwMDUzNywgMC4wMDA1MzcsIDAuMDAwNTM3LCAwLjAwMDUzNyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDkyOCwgMC4wMDA5MjksIDAuMDAwOTMsIDAuMDAwOTI5LCAwLjAwMDkyOSwgMC4wMDA5MjksIDAuMDAwOTI5Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMjAwODI1OwotICAgIGZ1bmN0aW9uIDogIighKChBIEIpIEMpKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDMxNzg5LCAwLjEzMzgxNiwgMC4yMTUxNjUsIDAuMzE2Nzg5LCAwLjQxODU4MSwgMC41MjAyMDEsIDAuNjIxOTI3IiwgXAotICAgICAgICAgICIwLjA0MTY1OSwgMC4xNDM3MDEsIDAuMjI1MDUsIDAuMzI2NzcyLCAwLjQyODI4OCwgMC41MzAwMDgsIDAuNjMxNjQ0IiwgXAotICAgICAgICAgICIwLjA1NDM2MiwgMC4xNTU3MDksIDAuMjM3NDI3LCAwLjMzOTAxMSwgMC40NDA1ODcsIDAuNTQxMTM5LCAwLjY0MzEwNyIsIFwKLSAgICAgICAgICAiMC4wNjY1MjEsIDAuMTY4NzA5LCAwLjI0OTkzMiwgMC4zNTE0NiwgMC40NTMxMTksIDAuNTU0Njg1LCAwLjY1NjExNSIsIFwKLSAgICAgICAgICAiMC4wNzY5NjgsIDAuMTgxMDQyLCAwLjI2MjU3NSwgMC4zNjQwMzcsIDAuNDY1NjIzLCAwLjU2NzE2OCwgMC42Njg2NzUiLCBcCi0gICAgICAgICAgIjAuMDkxMjY4LCAwLjIwMTc4MSwgMC4yODI0MDUsIDAuMzg0MzMsIDAuNDg1ODA4LCAwLjU4NzM5NCwgMC42ODg3NyIsIFwKLSAgICAgICAgICAiMC4xMDIwMDEsIDAuMjE5NjMzLCAwLjI5OTk4MiwgMC40MDE1NDcsIDAuNTAzNjA1LCAwLjYwNDk4NiwgMC43MDYzMDMiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU2MjcsIDAuMjY1NTUyLCAwLjQzMjkxNSwgMC42NDE5OTMsIDAuODUxMDkzLCAxLjA2MDE4LCAxLjI2OTMxIiwgXAotICAgICAgICAgICIwLjA1NzU2OSwgMC4yNjUzNDMsIDAuNDMyODc4LCAwLjY0MTg5NiwgMC44NTA3NTYsIDEuMDYwMTksIDEuMjY5MTMiLCBcCi0gICAgICAgICAgIjAuMDYzNjE2LCAwLjI2NTQxNSwgMC40MzI2MzUsIDAuNjQxNjc0LCAwLjg1MDgsIDEuMDU5ODgsIDEuMjY5NDIiLCBcCi0gICAgICAgICAgIjAuMDcxNzA4LCAwLjI2NjcxNywgMC40MzI4NjcsIDAuNjQxOTY5LCAwLjg1MTE5MywgMS4wNTk4NywgMS4yNjk0MSIsIFwKLSAgICAgICAgICAiMC4wODA3OTQsIDAuMjcwMjc3LCAwLjQzMzQsIDAuNjQxNjc0LCAwLjg1MDgsIDEuMDU5ODYsIDEuMjY5MDUiLCBcCi0gICAgICAgICAgIjAuMDk1OTAzLCAwLjI3NzU5NiwgMC40MzcwODUsIDAuNjQyMTc5LCAwLjg1MDc0MywgMS4wNjAwMiwgMS4yNjkzOSIsIFwKLSAgICAgICAgICAiMC4xMDgzOTYsIDAuMjg2MDAzLCAwLjQ0MjY0MywgMC42NDQ2MTQsIDAuODUxMTA0LCAxLjA1OTg3LCAxLjI2OTAzIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4MTM3NywgMC4zNTg2NzcsIDAuNTgwNjM0LCAwLjg1Nzk3NCwgMS4xMzUwOSwgMS40MTE5MSwgMS42ODk2MSIsIFwKLSAgICAgICAgICAiMC4wODk0NDgsIDAuMzY3MTU3LCAwLjU4ODk4MywgMC44NjYxNTksIDEuMTQ0MDYsIDEuNDIwNjEsIDEuNjk3MTUiLCBcCi0gICAgICAgICAgIjAuMDk4NDY0LCAwLjM3NjMzNywgMC41OTgyNTEsIDAuODc1NzUyLCAxLjE1Mjk5LCAxLjQyOTczLCAxLjcwODMxIiwgXAotICAgICAgICAgICIwLjEwNzM1LCAwLjM4NTM0MiwgMC42MDcyMTcsIDAuODg0NDExLCAxLjE2MjQxLCAxLjQzODY2LCAxLjcxNjQzIiwgXAotICAgICAgICAgICIwLjExNjIzLCAwLjM5NDM5MSwgMC42MTYyMDQsIDAuODk0MTQsIDEuMTcwNjgsIDEuNDQ4MzUsIDEuNzI0OTQiLCBcCi0gICAgICAgICAgIjAuMTMwMzM4LCAwLjQwODYxNSwgMC42MzA3MjUsIDAuOTA3OTc5LCAxLjE4NTIyLCAxLjQ2MjEzLCAxLjczOTYyIiwgXAotICAgICAgICAgICIwLjE0MTYzNSwgMC40MjEyNzQsIDAuNjQzMTksIDAuOTIwNDYyLCAxLjE5ODE3LCAxLjQ3NTM5LCAxLjc1MjA5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEzOTc3MiwgMC42ODMzOSwgMS4xMTU1NiwgMS42NTgxLCAyLjIwNzg1LCAyLjc1MDc0LCAzLjI5NjYiLCBcCi0gICAgICAgICAgIjAuMTM5MjA5LCAwLjY4MjE5OCwgMS4xMTY4MiwgMS42NjI2OCwgMi4yMDAzMSwgMi43NTEwMSwgMy4yOTQ3NiIsIFwKLSAgICAgICAgICAiMC4xMzk3OTcsIDAuNjgzMTMxLCAxLjExNjUsIDEuNjYzMzMsIDIuMjA3NDQsIDIuNzQ2MTQsIDMuMjg1OTkiLCBcCi0gICAgICAgICAgIjAuMTQxNDY1LCAwLjY4MjAyMywgMS4xMTgyNywgMS42NjIxNywgMi4yMDA2MiwgMi43NDk5MywgMy4yODc0IiwgXAotICAgICAgICAgICIwLjE0NDE5MiwgMC42ODE0ODQsIDEuMTE4MjgsIDEuNjU4MDgsIDIuMjA0OTEsIDIuNzUxNDcsIDMuMjg4MDciLCBcCi0gICAgICAgICAgIjAuMTUwMTY4LCAwLjY4MjA0NSwgMS4xMTg2MiwgMS42NjE1MywgMi4yMDIzMSwgMi43NTA1MiwgMy4yOTI4MiIsIFwKLSAgICAgICAgICAiMC4xNTY2NjUsIDAuNjg3MzM4LCAxLjExNjE3LCAxLjY2MjUsIDIuMjA3MzQsIDIuNzQ0NTMsIDMuMjk0MDYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDMwODE5LCAwLjEzMzMyMywgMC4yMTUyMDMsIDAuMzE3Njc4LCAwLjQxOTg2MiwgMC41MjI0OTQsIDAuNjI0Njc3IiwgXAotICAgICAgICAgICIwLjA0MDY5MSwgMC4xNDMyMDksIDAuMjI1MTI5LCAwLjMyNzUzNiwgMC40Mjk4NTIsIDAuNTMyMTQxLCAwLjYzNDI5NyIsIFwKLSAgICAgICAgICAiMC4wNTMzMzEsIDAuMTU1NTcsIDAuMjM3NDU5LCAwLjMzOTg1MSwgMC40NDE3MTQsIDAuNTQzMzI1LCAwLjY0NjAyMyIsIFwKLSAgICAgICAgICAiMC4wNjUyNzEsIDAuMTY4MTM3LCAwLjI0OTg1OCwgMC4zNTIxNjYsIDAuNDU0NSwgMC41NTY4MzIsIDAuNjU4ODg1IiwgXAotICAgICAgICAgICIwLjA3NTM5MiwgMC4xODA0MTUsIDAuMjYyNDUzLCAwLjM2NDc4LCAwLjQ2Njk0OSwgMC41NjkyNTMsIDAuNjcxNTA0IiwgXAotICAgICAgICAgICIwLjA4OTEwNiwgMC4yMDEwNjksIDAuMjgyMjczLCAwLjM4NDg0NiwgMC40ODY5OCwgMC41ODkzNDIsIDAuNjkxNTQyIiwgXAotICAgICAgICAgICIwLjA5OTY3NCwgMC4yMTg5MjMsIDAuMjk5ODQ1LCAwLjQwMjYyMywgMC41MDQ4MjUsIDAuNjA2ODY2LCAwLjcwODk4MSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTQ5MjEsIDAuMjY1NjUsIDAuNDM0MTE4LCAwLjY0NTAwMywgMC44NTUyOTQsIDEuMDY2NiwgMS4yNzczNCIsIFwKLSAgICAgICAgICAiMC4wNTY0MDEsIDAuMjY1NTU3LCAwLjQzNDEwOCwgMC42NDUwMjIsIDAuODU1ODI2LCAxLjA2NjIyLCAxLjI3Njg1IiwgXAotICAgICAgICAgICIwLjA2MjU5LCAwLjI2NTU5NywgMC40MzQxMDIsIDAuNjQ0OTEzLCAwLjg1NTQ5OCwgMS4wNjU3OCwgMS4yNzcxMyIsIFwKLSAgICAgICAgICAiMC4wNzA5NzcsIDAuMjY3MDE4LCAwLjQzNDA4OSwgMC42NDQ4NzksIDAuODU1NzAxLCAxLjA2NjIzLCAxLjI3NzA2IiwgXAotICAgICAgICAgICIwLjA4MDMyLCAwLjI3MDQzMSwgMC40MzQ3NzYsIDAuNjQ0OTU5LCAwLjg1NTI2MSwgMS4wNjU4NSwgMS4yNzY5MSIsIFwKLSAgICAgICAgICAiMC4wOTU3NTEsIDAuMjc4MDA0LCAwLjQzODY3LCAwLjY0NTMxMywgMC44NTUxNzMsIDEuMDY2MDUsIDEuMjc2ODMiLCBcCi0gICAgICAgICAgIjAuMTA4MDU4LCAwLjI4NjQxNCwgMC40NDQxMDgsIDAuNjQ3NjEzLCAwLjg1NTYxMSwgMS4wNjYzNCwgMS4yNzcwMyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzkyMzMsIDAuMzU2Nzc3LCAwLjU3ODE0LCAwLjg1NTM3MywgMS4xMzI3NywgMS40MDk3MywgMS42ODY3MyIsIFwKLSAgICAgICAgICAiMC4wODc1NjIsIDAuMzY1NDEyLCAwLjU4NzI4NywgMC44NjQxNjIsIDEuMTQxNjEsIDEuNDE4MzksIDEuNjk2NjEiLCBcCi0gICAgICAgICAgIjAuMDk3OTk5LCAwLjM3NjE0NCwgMC41OTc4NjUsIDAuODc1MzU2LCAxLjE1MjA2LCAxLjQzMDMxLCAxLjcwNjcxIiwgXAotICAgICAgICAgICIwLjEwODUxNSwgMC4zODY1NiwgMC42MDg4NTcsIDAuODg2MDIzLCAxLjE2Mjk1LCAxLjQ0MDQ1LCAxLjcxNzM1IiwgXAotICAgICAgICAgICIwLjExODk5MywgMC4zOTcyOTcsIDAuNjE5MDgsIDAuODk2MzQxLCAxLjE3NDMzLCAxLjQ1MTMyLCAxLjcyOTM1IiwgXAotICAgICAgICAgICIwLjEzNTk0MSwgMC40MTQxODUsIDAuNjM2MzA1LCAwLjkxMzQ2NiwgMS4xOTA2OCwgMS40Njg2NCwgMS43NDYwNiIsIFwKLSAgICAgICAgICAiMC4xNDk1NTIsIDAuNDI5MTM3LCAwLjY1MTMyMywgMC45Mjg2ODIsIDEuMjA1OTIsIDEuNDgzMjIsIDEuNzYwMzgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTM5NzU2LCAwLjY4MTQ4NCwgMS4xMTgzNywgMS42NjI1MywgMi4yMDcxOCwgMi43NTA1OCwgMy4yOTQ0NyIsIFwKLSAgICAgICAgICAiMC4xMzkyNTgsIDAuNjgxNDgyLCAxLjExNTU3LCAxLjY1OTQ1LCAyLjIwNzI3LCAyLjc0ODY5LCAzLjI4NTg3IiwgXAotICAgICAgICAgICIwLjEzOTkwMywgMC42ODE0ODMsIDEuMTE4NjQsIDEuNjU4MTYsIDIuMjAyMzEsIDIuNzQzMjIsIDMuMjk1NDkiLCBcCi0gICAgICAgICAgIjAuMTQzMDQ4LCAwLjY4MjAzNiwgMS4xMTU1MiwgMS42NjMyNywgMi4yMDI1NSwgMi43NTE1MSwgMy4yOTQ4MSIsIFwKLSAgICAgICAgICAiMC4xNDcyMDksIDAuNjgzMzI0LCAxLjExNzQ0LCAxLjY2MjE0LCAyLjIwMDcsIDIuNzUxNjQsIDMuMjg1MTciLCBcCi0gICAgICAgICAgIjAuMTU1OTczLCAwLjY4MzM3OSwgMS4xMTg2OSwgMS42NjIxOCwgMi4yMDYyMSwgMi43NDMzMywgMy4yODU4MyIsIFwKLSAgICAgICAgICAiMC4xNjQ3NDYsIDAuNjg0NzIxLCAxLjExODIyLCAxLjY2MjM4LCAyLjIxNDYzLCAyLjc0NTA4LCAzLjMwNzY0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyOTM2NiwgMC4xMzE4NjcsIDAuMjE0MDAxLCAwLjMxNjM2OCwgMC40MTg3MTIsIDAuNTIxMzk4LCAwLjYyMzk2OSIsIFwKLSAgICAgICAgICAiMC4wMzkzODIsIDAuMTQxNzUxLCAwLjIyMzYxNiwgMC4zMjYwOTcsIDAuNDI4NTM0LCAwLjUzMTA2MSwgMC42MzMzOSIsIFwKLSAgICAgICAgICAiMC4wNTE5NDMsIDAuMTU0MDc0LCAwLjIzNjE1OCwgMC4zMzgxMzUsIDAuNDQwMzI5LCAwLjU0MjYwNCwgMC42NDQ5NDkiLCBcCi0gICAgICAgICAgIjAuMDYzNjYsIDAuMTY2NzU1LCAwLjI0ODc0LCAwLjM1MDU4OCwgMC40NTMxLCAwLjU1NTQyMiwgMC42NTgzODUiLCBcCi0gICAgICAgICAgIjAuMDczMTc4LCAwLjE3OTA4MSwgMC4yNjEyMzQsIDAuMzYzNTI1LCAwLjQ2NjAzMSwgMC41Njg0MDUsIDAuNjcwNzk0IiwgXAotICAgICAgICAgICIwLjA4NjY5NywgMC4xOTk3ODQsIDAuMjgxMDY1LCAwLjM4MzgxNSwgMC40ODYxMTQsIDAuNTg4NjUxLCAwLjY5MTA2NCIsIFwKLSAgICAgICAgICAiMC4wOTY1NDYsIDAuMjE3NjIsIDAuMjk4NjIzLCAwLjQwMTExOCwgMC41MDQwMTEsIDAuNjA2MTI2LCAwLjcwODQwMSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTM0ODMsIDAuMjY1NDA1LCAwLjQzNDUxOCwgMC42NDY1MDYsIDAuODU3MzI1LCAxLjA2OTk5LCAxLjI4MDg4IiwgXAotICAgICAgICAgICIwLjA1NDk0NywgMC4yNjUwNSwgMC40MzQ5MDIsIDAuNjQ1ODUzLCAwLjg1NzQ3NCwgMS4wNjg3MSwgMS4yODM0MSIsIFwKLSAgICAgICAgICAiMC4wNjE0MjEsIDAuMjY1MTUyLCAwLjQzNDk0MSwgMC42NDU5MzMsIDAuODU4Mjg1LCAxLjA3MDc0LCAxLjI4MDY5IiwgXAotICAgICAgICAgICIwLjA2OTYyNSwgMC4yNjY0MTksIDAuNDM0NjAzLCAwLjY0NTY1OSwgMC44NTgxMTYsIDEuMDcwNjksIDEuMjgwNyIsIFwKLSAgICAgICAgICAiMC4wNzk0ODIsIDAuMjcwMDA1LCAwLjQzNTcxMywgMC42NDU4NzEsIDAuODU3NjA2LCAxLjA2ODksIDEuMjgyNzYiLCBcCi0gICAgICAgICAgIjAuMDk0ODI5LCAwLjI3NzQ1MywgMC40Mzk1OTUsIDAuNjQ3NjY1LCAwLjg1NzQ3MiwgMS4wNjkzMiwgMS4yODA5NCIsIFwKLSAgICAgICAgICAiMC4xMDc1NTksIDAuMjg1OTUsIDAuNDQ1MTQxLCAwLjY0ODgxNiwgMC44NTc5MDcsIDEuMDY5LCAxLjI4MDY3Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3NDc0NSwgMC4zNTIxMDQsIDAuNTczOTM1LCAwLjg1MTYwOSwgMS4xMjgyNiwgMS40MDUzOCwgMS42ODM1NiIsIFwKLSAgICAgICAgICAiMC4wODI5ODYsIDAuMzYwNjYsIDAuNTgyMzgyLCAwLjg1OTUyNSwgMS4xMzY2NywgMS40MTM4MSwgMS42OTEiLCBcCi0gICAgICAgICAgIjAuMDkzODQ1LCAwLjM3MTY5MywgMC41OTM0ODcsIDAuODcwNTc2LCAxLjE0ODUzLCAxLjQyNDg0LCAxLjcwMjE2IiwgXAotICAgICAgICAgICIwLjEwNDY5MywgMC4zODIzODMsIDAuNjA0Mzg2LCAwLjg4MTg0MiwgMS4xNTg4NCwgMS40MzYxNywgMS43MTMxOSIsIFwKLSAgICAgICAgICAiMC4xMTU4MDMsIDAuMzkzMzYxLCAwLjYxNTExNCwgMC44OTIyOTMsIDEuMTcwMjYsIDEuNDQ3MjQsIDEuNzI1MzIiLCBcCi0gICAgICAgICAgIjAuMTM0MDI5LCAwLjQxMDc5MywgMC42MzI3OSwgMC45MTAwOTksIDEuMTg3OTgsIDEuNDY0MjEsIDEuNzQyMzEiLCBcCi0gICAgICAgICAgIjAuMTQ4NjM5LCAwLjQyNjIzMywgMC42NDgzMTIsIDAuOTI1Mjc3LCAxLjIwMjk3LCAxLjQ4MDk2LCAxLjc1Njg0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEzOTIzNywgMC42ODMzOCwgMS4xMTg4MywgMS42NTgxMSwgMi4yMDY5NiwgMi43NTEwMSwgMy4yODU3OCIsIFwKLSAgICAgICAgICAiMC4xMzkxNzgsIDAuNjgzMzI5LCAxLjExODU2LCAxLjY2MTA5LCAyLjIxNDQ4LCAyLjc0ODQ0LCAzLjI5NDA1IiwgXAotICAgICAgICAgICIwLjE0MDYwOSwgMC42ODMxNTksIDEuMTE4MzcsIDEuNjYxMDIsIDIuMjAwNywgMi43NDUwMSwgMy4yODgzOCIsIFwKLSAgICAgICAgICAiMC4xNDUxOTQsIDAuNjgzMTI3LCAxLjExODY5LCAxLjY2MzI4LCAyLjIwMjcxLCAyLjc1MDk1LCAzLjI4NzEyIiwgXAotICAgICAgICAgICIwLjE1MTI0OCwgMC42ODIxNSwgMS4xMTg0MywgMS42NjI0MiwgMi4yMDA3MSwgMi43NTE1NiwgMy4yODU4MiIsIFwKLSAgICAgICAgICAiMC4xNjI4NzcsIDAuNjgzMzk5LCAxLjExODQ0LCAxLjY2MjY2LCAyLjIwMDYzLCAyLjc0OTg5LCAzLjI4NTkiLCBcCi0gICAgICAgICAgIjAuMTc0MTE3LCAwLjY4MzYyLCAxLjEyMzgzLCAxLjY2MjUxLCAyLjIwNzQ0LCAyLjc0Mjg3LCAzLjI5MzkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQ5NjQsIDAuMDA0OTY2LCAwLjAwNDk2NSwgMC4wMDQ5NjYsIDAuMDA0OTY2LCAwLjAwNDk2NiwgMC4wMDQ5NjYiLCBcCi0gICAgICAgICAgIjAuMDA0OTI1LCAwLjAwNDk0MSwgMC4wMDQ5NDMsIDAuMDA0OTQ0LCAwLjAwNDk0NCwgMC4wMDQ5NDQsIDAuMDA0OTQ3IiwgXAotICAgICAgICAgICIwLjAwNDkyLCAwLjAwNDkyNiwgMC4wMDQ5NCwgMC4wMDQ5NDEsIDAuMDA0OTQzLCAwLjAwNDkzNiwgMC4wMDQ5MzYiLCBcCi0gICAgICAgICAgIjAuMDA0OTIzLCAwLjAwNDkzNiwgMC4wMDQ5MzcsIDAuMDA0OTM5LCAwLjAwNDkzOSwgMC4wMDQ5NCwgMC4wMDQ5MzgiLCBcCi0gICAgICAgICAgIjAuMDA0OTI5LCAwLjAwNDkzNSwgMC4wMDQ5MzgsIDAuMDA0OTM4LCAwLjAwNDkzOSwgMC4wMDQ5NCwgMC4wMDQ5NCIsIFwKLSAgICAgICAgICAiMC4wMDQ5NjEsIDAuMDA0OTQzLCAwLjAwNDk0LCAwLjAwNDk0MiwgMC4wMDQ5NDIsIDAuMDA0OTQsIDAuMDA0OTM5IiwgXAotICAgICAgICAgICIwLjAwNDk5OSwgMC4wMDQ5NTcsIDAuMDA0OTQ1LCAwLjAwNDk0MywgMC4wMDQ5NDQsIDAuMDA0OTQyLCAwLjAwNDk0MyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDg5NSwgMC4wMDA5MTMsIDAuMDAwOTE1LCAwLjAwMDkxNiwgMC4wMDA5MTYsIDAuMDAwOTE2LCAwLjAwMDkxNyIsIFwKLSAgICAgICAgICAiMC4wMDA4MjgsIDAuMDAwODk0LCAwLjAwMDkwMywgMC4wMDA5MDgsIDAuMDAwOTEsIDAuMDAwOTEyLCAwLjAwMDkxMyIsIFwKLSAgICAgICAgICAiMC4wMDA3NzksIDAuMDAwODc0LCAwLjAwMDg4OSwgMC4wMDA4OTgsIDAuMDAwOTAzLCAwLjAwMDkwNiwgMC4wMDA5MDgiLCBcCi0gICAgICAgICAgIjAuMDAwNzUxLCAwLjAwMDg1NywgMC4wMDA4NzgsIDAuMDAwODksIDAuMDAwODk2LCAwLjAwMDksIDAuMDAwOTAzIiwgXAotICAgICAgICAgICIwLjAwMDczNCwgMC4wMDA4NDEsIDAuMDAwODY2LCAwLjAwMDg4MSwgMC4wMDA4OSwgMC4wMDA4OTUsIDAuMDAwODk5IiwgXAotICAgICAgICAgICIwLjAwMDcyLCAwLjAwMDgyLCAwLjAwMDg1LCAwLjAwMDg2OSwgMC4wMDA4OCwgMC4wMDA4ODYsIDAuMDAwODkxIiwgXAotICAgICAgICAgICIwLjAwMDcxNywgMC4wMDA4MDcsIDAuMDAwODM5LCAwLjAwMDg2LCAwLjAwMDg3MiwgMC4wMDA4OCwgMC4wMDA4ODYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQxOTEsIDAuMDA0MTk4LCAwLjAwNDE5NywgMC4wMDQxOTgsIDAuMDA0MTk3LCAwLjAwNDE5OCwgMC4wMDQxOTciLCBcCi0gICAgICAgICAgIjAuMDA0MTU4LCAwLjAwNDE4OSwgMC4wMDQxOTIsIDAuMDA0MTkzLCAwLjAwNDE5NSwgMC4wMDQxOTYsIDAuMDA0MTk2IiwgXAotICAgICAgICAgICIwLjAwNDE0NiwgMC4wMDQxOCwgMC4wMDQxODksIDAuMDA0MTkyLCAwLjAwNDE5MywgMC4wMDQxOTMsIDAuMDA0MTk0IiwgXAotICAgICAgICAgICIwLjAwNDE0NiwgMC4wMDQxODIsIDAuMDA0MTg2LCAwLjAwNDE5MSwgMC4wMDQxOTIsIDAuMDA0MTk0LCAwLjAwNDE5NiIsIFwKLSAgICAgICAgICAiMC4wMDQxNTMsIDAuMDA0MTgsIDAuMDA0MTg5LCAwLjAwNDE5MSwgMC4wMDQxOTIsIDAuMDA0MTk0LCAwLjAwNDE5MyIsIFwKLSAgICAgICAgICAiMC4wMDQxODEsIDAuMDA0MTg1LCAwLjAwNDE4NiwgMC4wMDQxOTIsIDAuMDA0MTkyLCAwLjAwNDE5MywgMC4wMDQxOTQiLCBcCi0gICAgICAgICAgIjAuMDA0MjE2LCAwLjAwNDE5NCwgMC4wMDQxOTEsIDAuMDA0MTk1LCAwLjAwNDE5NSwgMC4wMDQxOTUsIDAuMDA0MTk2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwODk3LCAwLjAwMDkxNCwgMC4wMDA5MTYsIDAuMDAwOTE3LCAwLjAwMDkxOCwgMC4wMDA5MTgsIDAuMDAwOTE4IiwgXAotICAgICAgICAgICIwLjAwMDgyOSwgMC4wMDA4OTYsIDAuMDAwOTA1LCAwLjAwMDkxLCAwLjAwMDkxMiwgMC4wMDA5MTMsIDAuMDAwOTE1IiwgXAotICAgICAgICAgICIwLjAwMDc4LCAwLjAwMDg3NSwgMC4wMDA4OTEsIDAuMDAwOSwgMC4wMDA5MDQsIDAuMDAwOTA3LCAwLjAwMDkwOSIsIFwKLSAgICAgICAgICAiMC4wMDA3NTQsIDAuMDAwODU4LCAwLjAwMDg3OSwgMC4wMDA4OTEsIDAuMDAwODk4LCAwLjAwMDkwMiwgMC4wMDA5MDUiLCBcCi0gICAgICAgICAgIjAuMDAwNzM5LCAwLjAwMDg0NCwgMC4wMDA4NjgsIDAuMDAwODgzLCAwLjAwMDg5MSwgMC4wMDA4OTcsIDAuMDAwOSIsIFwKLSAgICAgICAgICAiMC4wMDA3MzIsIDAuMDAwODI0LCAwLjAwMDg1MywgMC4wMDA4NzEsIDAuMDAwODgyLCAwLjAwMDg4OSwgMC4wMDA4OTMiLCBcCi0gICAgICAgICAgIjAuMDAwNzM2LCAwLjAwMDgxMywgMC4wMDA4NDMsIDAuMDAwODYzLCAwLjAwMDg3NSwgMC4wMDA4ODMsIDAuMDAwODg4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzMzU5LCAwLjAwMzM3LCAwLjAwMzM3NCwgMC4wMDMzNzYsIDAuMDAzMzc2LCAwLjAwMzM3NiwgMC4wMDMzNzYiLCBcCi0gICAgICAgICAgIjAuMDAzMzMyLCAwLjAwMzM4MSwgMC4wMDMzODgsIDAuMDAzMzksIDAuMDAzMzkzLCAwLjAwMzM5NCwgMC4wMDMzOTUiLCBcCi0gICAgICAgICAgIjAuMDAzMzA2LCAwLjAwMzM2NiwgMC4wMDMzODMsIDAuMDAzMzkxLCAwLjAwMzM5NCwgMC4wMDM0LCAwLjAwMzM5OSIsIFwKLSAgICAgICAgICAiMC4wMDMyODUsIDAuMDAzMzY0LCAwLjAwMzM3NywgMC4wMDMzODUsIDAuMDAzMzksIDAuMDAzMzkyLCAwLjAwMzM5NCIsIFwKLSAgICAgICAgICAiMC4wMDMzMDEsIDAuMDAzMzYsIDAuMDAzMzc2LCAwLjAwMzM4NSwgMC4wMDMzODksIDAuMDAzMzkxLCAwLjAwMzM5NCIsIFwKLSAgICAgICAgICAiMC4wMDMzMTgsIDAuMDAzMzYyLCAwLjAwMzM2OCwgMC4wMDMzODMsIDAuMDAzMzg2LCAwLjAwMzM5LCAwLjAwMzM5MSIsIFwKLSAgICAgICAgICAiMC4wMDMzNTEsIDAuMDAzMzY3LCAwLjAwMzM3MywgMC4wMDMzODEsIDAuMDAzMzg3LCAwLjAwMzM4OSwgMC4wMDMzOTMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDA4OTEsIDAuMDAwOTExLCAwLjAwMDkxMywgMC4wMDA5MTUsIDAuMDAwOTE1LCAwLjAwMDkxNSwgMC4wMDA5MTUiLCBcCi0gICAgICAgICAgIjAuMDAwODE2LCAwLjAwMDg5LCAwLjAwMDksIDAuMDAwOTA2LCAwLjAwMDkwOSwgMC4wMDA5MSwgMC4wMDA5MTEiLCBcCi0gICAgICAgICAgIjAuMDAwNzgsIDAuMDAwODcyLCAwLjAwMDg4OCwgMC4wMDA4OTcsIDAuMDAwOTAyLCAwLjAwMDkwNSwgMC4wMDA5MDgiLCBcCi0gICAgICAgICAgIjAuMDAwNzYzLCAwLjAwMDg1NSwgMC4wMDA4NzYsIDAuMDAwODg4LCAwLjAwMDg5NSwgMC4wMDA4OTksIDAuMDAwOTAyIiwgXAotICAgICAgICAgICIwLjAwMDc2OSwgMC4wMDA4NDUsIDAuMDAwODY4LCAwLjAwMDg4MiwgMC4wMDA4OSwgMC4wMDA4OTUsIDAuMDAwODk4IiwgXAotICAgICAgICAgICIwLjAwMDgwNywgMC4wMDA4MzcsIDAuMDAwODYsIDAuMDAwODc1LCAwLjAwMDg4NCwgMC4wMDA4OSwgMC4wMDA4OTQiLCBcCi0gICAgICAgICAgIjAuMDAwODQ3LCAwLjAwMDgzNywgMC4wMDA4NTcsIDAuMDAwODcxLCAwLjAwMDg4LCAwLjAwMDg4NywgMC4wMDA4OTEiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IE5BTkQ0QkJYNCAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKE5BTkQ0QkJYNCkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjY3NTcyMjsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQU4pICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDkwMzU2OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDkwMzA5OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDkwMzU2OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTY4LCAwLjAwMTYzLCAwLjAwMTYyMiwgMC4wMDE2MTUsIDAuMDAxNjI2LCAwLjAwMTY1MSwgMC4wMDE2OCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzkyNSwgMC4wMDM4OTIsIDAuMDAzODgzLCAwLjAwMzg4NywgMC4wMDM4OTYsIDAuMDAzOTI5LCAwLjAwMzk1OCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQk4pICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDkyNTgwMjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA5MjU1Mzc7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwOTI1ODAyOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTYxOCwgMC4wMDE1NzEsIDAuMDAxNTY5LCAwLjAwMTU2MywgMC4wMDE1NzMsIDAuMDAxNiwgMC4wMDE2MjkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDM4NCwgMC4wMDM4MDcsIDAuMDAzNzk3LCAwLjAwMzgsIDAuMDAzODExLCAwLjAwMzg0MSwgMC4wMDM4NzMiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEMpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMzAzMzQ2OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMzAzMzQ2OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMzAyMzY1OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTYzNywgMC4wMDE2MzYsIDAuMDAxNjM1LCAwLjAwMTYzMSwgMC4wMDE2MzUsIDAuMDAxNjM1LCAwLjAwMTYzNCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTY4OCwgMC4wMDE2NDMsIDAuMDAxNjQyLCAwLjAwMTY0MSwgMC4wMDE2NDIsIDAuMDAxNjQsIDAuMDAxNjQiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEQpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMzEyMDA5OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMzExODA2OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMzEyMDA5OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDM1OSwgMC4wMDAzNTgsIDAuMDAwMzU3LCAwLjAwMDM1NiwgMC4wMDAzNTcsIDAuMDAwMzU2LCAwLjAwMDM1NyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTg1NiwgMC4wMDE4NTgsIDAuMDAxODU4LCAwLjAwMTg1OCwgMC4wMDE4NTcsIDAuMDAxODYsIDAuMDAxODYiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4yODA4NTI7Ci0gICAgZnVuY3Rpb24gOiAiKCEoKCgoIUJOKSAoIUFOKSkgQykgRCkpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTAyMTgsIDAuMTI0NTY5LCAwLjE5NzIsIDAuMjQ4OTU2LCAwLjMzMTY4OSwgMC40MDM3NjgsIDAuNTA3MzYyIiwgXAotICAgICAgICAgICIwLjA2MDQ5OCwgMC4xMzQ3MDgsIDAuMjA3MzQsIDAuMjU5MDg2LCAwLjM0MTgwMSwgMC40MTM4ODcsIDAuNTE3MTExIiwgXAotICAgICAgICAgICIwLjA3MzA2OCwgMC4xNDcyNDUsIDAuMjE5ODc1LCAwLjI3MTYxOSwgMC4zNTQzNDMsIDAuNDI2NjA5LCAwLjUyOTk1NSIsIFwKLSAgICAgICAgICAiMC4wODQ0MzUsIDAuMTU4NTE3LCAwLjIzMTEyNiwgMC4yODI4NzIsIDAuMzY1NjAzLCAwLjQzNzk1MSwgMC41NDEyMzQiLCBcCi0gICAgICAgICAgIjAuMDk0MjgsIDAuMTY4NDMyLCAwLjI0MTAzOSwgMC4yOTI3NjksIDAuMzc1NDk2LCAwLjQ0NzgxNCwgMC41NTEwODgiLCBcCi0gICAgICAgICAgIjAuMTA4Mjk1LCAwLjE4MjU2MywgMC4yNTUxMzUsIDAuMzA2ODUxLCAwLjM4OTU2OCwgMC40NjE4OTQsIDAuNTY1MTQ4IiwgXAotICAgICAgICAgICIwLjExODkwMiwgMC4xOTM0OTYsIDAuMjY1ODMzLCAwLjMxNzU0MiwgMC40MDAyMTgsIDAuNDcyNTQ3LCAwLjU3NTc1MyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0NTUyMSwgMC4xOTI1NzUsIDAuMzQxMjQ5LCAwLjQ0NzcxLCAwLjYxODMyNSwgMC43NjcwMjksIDAuOTc5NzgxIiwgXAotICAgICAgICAgICIwLjA0NTQ5OCwgMC4xOTI1NzgsIDAuMzQxMjQ5LCAwLjQ0NzU5OCwgMC42MTgzMTEsIDAuNzY2NjAzLCAwLjk3OTg4MSIsIFwKLSAgICAgICAgICAiMC4wNDU3MTIsIDAuMTkyNjAyLCAwLjM0MTI1NiwgMC40NDc3MiwgMC42MTc5NzYsIDAuNzY2ODUsIDAuOTgwMzU4IiwgXAotICAgICAgICAgICIwLjA0NjUwNSwgMC4xOTI1ODMsIDAuMzQxMjY3LCAwLjQ0NzYzOSwgMC42MTgxNDgsIDAuNzY3MTI4LCAwLjk3OTkzMSIsIFwKLSAgICAgICAgICAiMC4wNDc1MTEsIDAuMTkyNzY5LCAwLjM0MTIyOCwgMC40NDc5NzYsIDAuNjE4MjcxLCAwLjc2NzA5OSwgMC45Nzk2NzgiLCBcCi0gICAgICAgICAgIjAuMDQ5MjM0LCAwLjE5MzI4MywgMC4zNDE1MSwgMC40NDc3NDUsIDAuNjE3OTIzLCAwLjc2NjgyNCwgMC45ODAxMzciLCBcCi0gICAgICAgICAgIjAuMDUwODcsIDAuMTkzNjM3LCAwLjM0MTU1NCwgMC40NDgxMjIsIDAuNjE4MTU4LCAwLjc2Njk4MiwgMC45Nzk2OTYiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTE3NzQsIDAuMzg0ODMzLCAwLjY1NzIxLCAwLjg1MjAxNywgMS4xNjMyMSwgMS40MzU5NSwgMS44MjQ4MSIsIFwKLSAgICAgICAgICAiMC4xMjE1MTYsIDAuMzk0NjcsIDAuNjY3MDc2LCAwLjg2MTg5LCAxLjE3MzA5LCAxLjQ0NTg0LCAxLjgzNDY3IiwgXAotICAgICAgICAgICIwLjEzMzQ1OSwgMC40MDY3NzcsIDAuNjc5NTM2LCAwLjg3MzgwNywgMS4xODQ4NCwgMS40NTg0LCAxLjg0NjQ5IiwgXAotICAgICAgICAgICIwLjE0MzY4NSwgMC40MTcyNjIsIDAuNjg5NzY3LCAwLjg4NDAzOSwgMS4xOTU1NiwgMS40Njc4NiwgMS44NTcyMiIsIFwKLSAgICAgICAgICAiMC4xNTIzNDQsIDAuNDI1NzMsIDAuNjk4Nzc3LCAwLjg5MjgxLCAxLjIwMzkzLCAxLjQ3Njc4LCAxLjg2NTY5IiwgXAotICAgICAgICAgICIwLjE2NDcwNCwgMC40MzgyMSwgMC43MTA3MTQsIDAuOTA1MjUyLCAxLjIxNjQ3LCAxLjQ4OTk1LCAxLjg3ODUzIiwgXAotICAgICAgICAgICIwLjE3MzgxLCAwLjQ0NzMzMywgMC43MjAxMjMsIDAuOTE0MzU5LCAxLjIyNjM5LCAxLjQ5Nzg4LCAxLjg4NzU0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTMwOTczLCAwLjY2MzM1MSwgMS4xOTYxNywgMS41NzU0NSwgMi4xODc3NywgMi43MjIwNCwgMy40ODM0NiIsIFwKLSAgICAgICAgICAiMC4xMzA5OTEsIDAuNjYzMzUsIDEuMTk2MTcsIDEuNTc1NDcsIDIuMTg3NzksIDIuNzIyLCAzLjQ4MzQxIiwgXAotICAgICAgICAgICIwLjEzMDc0NywgMC42NjMzMjEsIDEuMTk3NjksIDEuNTc2NDksIDIuMTg1MzgsIDIuNzE1NTUsIDMuNDc5OTQiLCBcCi0gICAgICAgICAgIjAuMTMwNzc0LCAwLjY2MjU5MSwgMS4xOTUzLCAxLjU3NjU5LCAyLjE4NjAxLCAyLjcxODMzLCAzLjQ4MzQ4IiwgXAotICAgICAgICAgICIwLjEzMDk3MSwgMC42NjM0MDYsIDEuMTk1MDQsIDEuNTc3MTUsIDIuMTg5MzcsIDIuNzE2ODIsIDMuNDgwMjIiLCBcCi0gICAgICAgICAgIjAuMTMwODk2LCAwLjY2MjgyOSwgMS4xOTYyLCAxLjU3NjU4LCAyLjE4NTIsIDIuNzE1NzYsIDMuNDgzNSIsIFwKLSAgICAgICAgICAiMC4xMzA4NzQsIDAuNjYzNDMyLCAxLjE5NzU0LCAxLjU3NjU1LCAyLjE4ODcsIDIuNzE4MTUsIDMuNDgzMzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQk4iOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDUxMjk2LCAwLjEyNTE5MywgMC4xOTc5NzcsIDAuMjQ5OTE2LCAwLjMzMjg2NywgMC40MDU1OTgsIDAuNTA5MzMyIiwgXAotICAgICAgICAgICIwLjA2MTUxMiwgMC4xMzUzNjksIDAuMjA4MTQ2LCAwLjI2MDA4MSwgMC4zNDMwNTIsIDAuNDE1NjU2LCAwLjUxOTM2NSIsIFwKLSAgICAgICAgICAiMC4wNzQxNTEsIDAuMTQ3OTYzLCAwLjIyMDc0LCAwLjI3MjY3MywgMC4zNTU3MjMsIDAuNDI4MTgyLCAwLjUzMTk2MyIsIFwKLSAgICAgICAgICAiMC4wODU2OTUsIDAuMTU5NTU1LCAwLjIzMjMyMywgMC4yODQyMzgsIDAuMzY3MjY1LCAwLjQzOTk4LCAwLjU0MzUzNCIsIFwKLSAgICAgICAgICAiMC4wOTU5MjQsIDAuMTY5OTQzLCAwLjI0MjY4NiwgMC4yOTQ1ODcsIDAuMzc3NTk4LCAwLjQ1MDE0NiwgMC41NTQwMTIiLCBcCi0gICAgICAgICAgIjAuMTA5OTA3LCAwLjE4NDEsIDAuMjU2ODIxLCAwLjMwODY5LCAwLjM5MTcxMSwgMC40NjQyOTcsIDAuNTY4MTcxIiwgXAotICAgICAgICAgICIwLjEyMDc0MiwgMC4xOTUxNDYsIDAuMjY3ODgsIDAuMzE5NzYxLCAwLjQwMjc4MywgMC40NzUzMTksIDAuNTc5MjM1Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQzOTMxLCAwLjE5MTI5NCwgMC4zNDA4MzEsIDAuNDQ3ODA1LCAwLjYxOTEzNiwgMC43NjkwNzgsIDAuOTgzMTIzIiwgXAotICAgICAgICAgICIwLjA0Mzg0MiwgMC4xOTEyOTQsIDAuMzQwODI3LCAwLjQ0Nzk2LCAwLjYxOTQzNSwgMC43Njg5NCwgMC45ODMwNzciLCBcCi0gICAgICAgICAgIjAuMDQ0MTU5LCAwLjE5MTMyMiwgMC4zNDA4MTcsIDAuNDQ3ODA4LCAwLjYxOTIzNiwgMC43NjkyNDcsIDAuOTgzMDAxIiwgXAotICAgICAgICAgICIwLjA0NDg3NCwgMC4xOTE0NDIsIDAuMzQwODI2LCAwLjQ0Nzk2OSwgMC42MTkzMDgsIDAuNzY5MjAyLCAwLjk4Mjk5NiIsIFwKLSAgICAgICAgICAiMC4wNDU5NzEsIDAuMTkxNjE2LCAwLjM0MTEwNSwgMC40NDc4NzcsIDAuNjE5MDUyLCAwLjc2OTIxLCAwLjk4MzE1NiIsIFwKLSAgICAgICAgICAiMC4wNDc5MTksIDAuMTkyMDMzLCAwLjM0MTA1LCAwLjQ0NzkzOCwgMC42MTkzMjQsIDAuNzY4ODkxLCAwLjk4MzM0MSIsIFwKLSAgICAgICAgICAiMC4wNDk3NDksIDAuMTkyNDkxLCAwLjM0MTExNywgMC40NDgwMSwgMC42MTkzMjQsIDAuNzY5MDI1LCAwLjk4MzMzOSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwODY3MiwgMC4zODE3OTMsIDAuNjU0MTAyLCAwLjg0OTA5OCwgMS4xNjAwNSwgMS40MzI0MiwgMS44MjE1NCIsIFwKLSAgICAgICAgICAiMC4xMTg0MiwgMC4zOTE2MjUsIDAuNjY0MDAxLCAwLjg1ODUxMSwgMS4xNzA0MywgMS40NDI0MywgMS44MzI0MSIsIFwKLSAgICAgICAgICAiMC4xMzA0OTEsIDAuNDAzODA3LCAwLjY3NjE1OCwgMC44NzEyMTcsIDEuMTgyMTYsIDEuNDU0NTYsIDEuODQzNjgiLCBcCi0gICAgICAgICAgIjAuMTQwOTg3LCAwLjQxNDQwOSwgMC42ODY4MTksIDAuODgxNDYzLCAxLjE5Mjk4LCAxLjQ2NTIzLCAxLjg1NDY2IiwgXAotICAgICAgICAgICIwLjE0OTk1NCwgMC40MjM0NDYsIDAuNjk1ODEzLCAwLjg5MTEzOSwgMS4yMDE3MSwgMS40NzQ1MSwgMS44NjM3OCIsIFwKLSAgICAgICAgICAiMC4xNjIxOTMsIDAuNDM1NjIsIDAuNzA4MTYzLCAwLjkwMjcyNSwgMS4yMTM5NSwgMS40ODcxMiwgMS44NzYzNSIsIFwKLSAgICAgICAgICAiMC4xNzE1MTIsIDAuNDQ0OTM2LCAwLjcxNzY5OCwgMC45MTIxMzEsIDEuMjI0MjgsIDEuNDk1NjIsIDEuODg1MzgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMzA3MzYsIDAuNjYzMzQ2LCAxLjE5NjE5LCAxLjU3ODc4LCAyLjE4NTU2LCAyLjcxODkxLCAzLjQ3OTE0IiwgXAotICAgICAgICAgICIwLjEzMDg4MywgMC42NjMzNTEsIDEuMTk2MTMsIDEuNTc2NzEsIDIuMTg4NzIsIDIuNzE5MTQsIDMuNDc2MzMiLCBcCi0gICAgICAgICAgIjAuMTMwOTAyLCAwLjY2MzMyMiwgMS4xOTgxNSwgMS41Nzg4MSwgMi4xODU1LCAyLjcxODg2LCAzLjQ3OTM3IiwgXAotICAgICAgICAgICIwLjEzMTAwMywgMC42NjMzOTQsIDEuMTk2MDcsIDEuNTc2NjYsIDIuMTg3NzcsIDIuNzE4ODgsIDMuNDgzODciLCBcCi0gICAgICAgICAgIjAuMTMwOTIzLCAwLjY2MzQ0NiwgMS4xOTgxNiwgMS41NzUxLCAyLjE4NTM4LCAyLjcyMTQ0LCAzLjQ4MzgxIiwgXAotICAgICAgICAgICIwLjEzMTA3LCAwLjY2MzE5OCwgMS4xOTY2MSwgMS41NzY1OSwgMi4xODU0NCwgMi43MjIwOCwgMy40NzU5MSIsIFwKLSAgICAgICAgICAiMC4xMzExMSwgMC42NjMxOTUsIDEuMTk2MzIsIDEuNTc2NjUsIDIuMTgzNTcsIDIuNzE4MTgsIDMuNDgzNyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyMjM2NCwgMC4wOTUyNSwgMC4xNjc5MjYsIDAuMjE5ODA3LCAwLjMwMjk0OCwgMC4zNzU0MjgsIDAuNDc5MjgyIiwgXAotICAgICAgICAgICIwLjAzMjM1OSwgMC4xMDUyMjUsIDAuMTc3OTE0LCAwLjIyOTc2OSwgMC4zMTI3NDIsIDAuMzg1NDA1LCAwLjQ4OTIwNSIsIFwKLSAgICAgICAgICAiMC4wNDQ2OTgsIDAuMTE3NzM0LCAwLjE5MDQxNCwgMC4yNDIzODEsIDAuMzI1MzY3LCAwLjM5Nzk1NiwgMC41MDE3NjYiLCBcCi0gICAgICAgICAgIjAuMDU0NywgMC4xMzAxNzksIDAuMjAyODM3LCAwLjI1NDY5OCwgMC4zMzcxMzksIDAuNDA5NTY2LCAwLjUxMzQyIiwgXAotICAgICAgICAgICIwLjA2MjgxOSwgMC4xNDMwMDUsIDAuMjE1MjEsIDAuMjY3MDkzLCAwLjM1MDExOSwgMC40MjI3MzcsIDAuNTI1NTU0IiwgXAotICAgICAgICAgICIwLjA3NDQwOCwgMC4xNjM1NTEsIDAuMjM2MTE3LCAwLjI4ODA0MywgMC4zNzEwNCwgMC40NDIyMDgsIDAuNTQ3NTEzIiwgXAotICAgICAgICAgICIwLjA4MjczLCAwLjE4MTQzOSwgMC4yNTM2NjksIDAuMzA0NzIyLCAwLjM4NzYzLCAwLjQ2MDIzNiwgMC41NjM3NTMiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzczMTgsIDAuMTg3NDksIDAuMzM3NTY0LCAwLjQ0NDY5LCAwLjYxNjE1MSwgMC43NjYzNjIsIDAuOTgwNTY3IiwgXAotICAgICAgICAgICIwLjAzOTY2NCwgMC4xODc0OTMsIDAuMzM3MzY3LCAwLjQ0NDc0MiwgMC42MTYxNTgsIDAuNzY2MzU1LCAwLjk4MDUwMiIsIFwKLSAgICAgICAgICAiMC4wNDcwMjksIDAuMTg3OTY3LCAwLjMzNzU0LCAwLjQ0NDY0MSwgMC42MTYwNjQsIDAuNzY2MzAxLCAwLjk4MDcwNyIsIFwKLSAgICAgICAgICAiMC4wNTYzMzgsIDAuMTkxMjYyLCAwLjMzNzc2MSwgMC40NDQ0ODgsIDAuNjE2MTE3LCAwLjc2NTkwNiwgMC45ODA0NzEiLCBcCi0gICAgICAgICAgIjAuMDY1ODMxLCAwLjE5NjEyMiwgMC4zMzk2NjUsIDAuNDQ0ODk3LCAwLjYxNTkzOSwgMC43NjYxMzYsIDAuOTgwNTQxIiwgXAotICAgICAgICAgICIwLjA3ODk0NCwgMC4yMDU4NTQsIDAuMzQ1MzE0LCAwLjQ0ODM4NywgMC42MTY1MiwgMC43NjU5MjIsIDAuOTgwNTA3IiwgXAotICAgICAgICAgICIwLjA5MDI1MiwgMC4yMTYzNCwgMC4zNTIzMjYsIDAuNDUzOTIxLCAwLjYxOTUyNCwgMC43NjY5MzQsIDAuOTgwMDYzIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc2ODM3LCAwLjM0OTc1NiwgMC42MjIwMTIsIDAuODE2NTQ1LCAxLjEyNzU3LCAxLjQwMDg2LCAxLjc4OTAxIiwgXAotICAgICAgICAgICIwLjA4NDc0NywgMC4zNTgwMjIsIDAuNjMwNjQ1LCAwLjgyNDkxLCAxLjEzNjUyLCAxLjQwODQ2LCAxLjc5ODA2IiwgXAotICAgICAgICAgICIwLjA5NDU5LCAwLjM2ODE3NiwgMC42NDA2NTEsIDAuODM1MjI2LCAxLjE0NzIxLCAxLjQxODYzLCAxLjgwODY5IiwgXAotICAgICAgICAgICIwLjEwNDcwMiwgMC4zNzgzMjMsIDAuNjUxMDUyLCAwLjg0NTY4NCwgMS4xNTcsIDEuNDI4OTgsIDEuODE4MSIsIFwKLSAgICAgICAgICAiMC4xMTQ4MzEsIDAuMzg4NTI0LCAwLjY2MTI4OSwgMC44NTYxMjYsIDEuMTY2OTksIDEuNDM5MzYsIDEuODI4NDciLCBcCi0gICAgICAgICAgIjAuMTMwNjI0LCAwLjQwNDgyNSwgMC42Nzc4ODEsIDAuODcyMzAxLCAxLjE4MzgzLCAxLjQ1NTk3LCAxLjg0NTciLCBcCi0gICAgICAgICAgIjAuMTQzMzAzLCAwLjQxOTEsIDAuNjkyMDkxLCAwLjg4NjU5MSwgMS4xOTgxMywgMS40NzAyNSwgMS44NTk2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTMwNzc5LCAwLjY2NDQzMSwgMS4xOTc0NywgMS41NzU3NSwgMi4xODQwMywgMi43MTU4LCAzLjQ4MDMyIiwgXAotICAgICAgICAgICIwLjEzMDczNCwgMC42NjMyOTUsIDEuMTk1MDgsIDEuNTc5NDQsIDIuMTg3NzEsIDIuNzE3OTcsIDMuNDgzNjQiLCBcCi0gICAgICAgICAgIjAuMTMxMDY2LCAwLjY2MzI4NiwgMS4xOTYzLCAxLjU3NjU3LCAyLjE4MzA1LCAyLjcyMjk3LCAzLjQ4NDIiLCBcCi0gICAgICAgICAgIjAuMTMzOTIsIDAuNjY0NDQ2LCAxLjE5NjE4LCAxLjU3NjgzLCAyLjE4NTczLCAyLjcyMywgMy40Nzk0OSIsIFwKLSAgICAgICAgICAiMC4xMzgwMDEsIDAuNjYzMTg5LCAxLjE5NDkyLCAxLjU3Njk5LCAyLjE4OTI0LCAyLjcxODQ4LCAzLjQ3OTM0IiwgXAotICAgICAgICAgICIwLjE0NjU0OSwgMC42NjQ2MDcsIDEuMTk2MzUsIDEuNTc5MzcsIDIuMTg1NjgsIDIuNzIzMTUsIDMuNDgyOTciLCBcCi0gICAgICAgICAgIjAuMTU1NTQyLCAwLjY2NTkzMywgMS4xOTYyMiwgMS41NzY1MiwgMi4xODU2MiwgMi43MTgxMiwgMy40NzkxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkQiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDIwMzM4LCAwLjA5Mjc3NSwgMC4xNjUxNzcsIDAuMjE2OTAyLCAwLjI5OTYyOCwgMC4zNzE5OTUsIDAuNDc1NDg2IiwgXAotICAgICAgICAgICIwLjAzMDM2NCwgMC4xMDI3OTYsIDAuMTc1MTg2LCAwLjIyNjkxOCwgMC4zMDk2MTYsIDAuMzgyMDAxLCAwLjQ4NTYwOSIsIFwKLSAgICAgICAgICAiMC4wNDIzMjIsIDAuMTE1Mjk1LCAwLjE4NzY5MSwgMC4yMzk0NTMsIDAuMzIyMTQ5LCAwLjM5NDU1NiwgMC40OTgzMDQiLCBcCi0gICAgICAgICAgIjAuMDUxNTYzLCAwLjEyODA2NiwgMC4yMDAxMzgsIDAuMjUxODM5LCAwLjMzNDMxMSwgMC40MDY0NjgsIDAuNTEwMDgzIiwgXAotICAgICAgICAgICIwLjA1OTI1NiwgMC4xNDA2NDgsIDAuMjEyNTU4LCAwLjI2NDI5NywgMC4zNDcwOTcsIDAuNDE4NTk1LCAwLjUyMjE1NiIsIFwKLSAgICAgICAgICAiMC4wNjk3NTcsIDAuMTYwNzM1LCAwLjIzMjM0OCwgMC4yODQwMTUsIDAuMzY2ODQ3LCAwLjQzODc4MywgMC41NDI2NSIsIFwKLSAgICAgICAgICAiMC4wNzc3NTEsIDAuMTc5MDc4LCAwLjI1MTA4NSwgMC4zMDI1ODksIDAuMzg0NTU0LCAwLjQ1Njk0MSwgMC41NjAxMTkiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzQ4MTgsIDAuMTg0NzM1LCAwLjMzMzk4NSwgMC40NDA3MzMsIDAuNjEyODM1LCAwLjc2MTM3NywgMC45NzUzMyIsIFwKLSAgICAgICAgICAiMC4wMzc1NTcsIDAuMTg0NDE2LCAwLjMzMzk2NSwgMC40NDEyMzIsIDAuNjExODA2LCAwLjc2Mjg0NSwgMC45NzU0MDEiLCBcCi0gICAgICAgICAgIjAuMDQ1MzU4LCAwLjE4NTA4OCwgMC4zMzQ2MjYsIDAuNDQxMTczLCAwLjYxMTczMiwgMC43NjI2NDUsIDAuOTc1NjIxIiwgXAotICAgICAgICAgICIwLjA1NTAxNiwgMC4xODg2NTYsIDAuMzM0OTA2LCAwLjQ0MTY2NCwgMC42MTIwODYsIDAuNzYyNTc1LCAwLjk3NTM4MyIsIFwKLSAgICAgICAgICAiMC4wNjQ1NDYsIDAuMTkzNjI3LCAwLjMzNjYxMywgMC40NDE2MDQsIDAuNjExODE3LCAwLjc2MjcwOSwgMC45NzUyMzgiLCBcCi0gICAgICAgICAgIjAuMDc3NDUxLCAwLjIwMzkwNSwgMC4zNDMxMjcsIDAuNDQ1NDI3LCAwLjYxMjc2MywgMC43NjI1MzEsIDAuOTc1MzMyIiwgXAotICAgICAgICAgICIwLjA4Nzg2LCAwLjIxMzk3MiwgMC4zNDk2NTgsIDAuNDUwODg5LCAwLjYxNTg5LCAwLjc2MjQ3NywgMC45NzUzNzMiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjY1MjcsIDAuMzM5MjY1LCAwLjYxMTUzNiwgMC44MDYwMzgsIDEuMTE3NzMsIDEuMzg5NTIsIDEuNzc5NTciLCBcCi0gICAgICAgICAgIjAuMDc0MTAzLCAwLjM0NzU1NSwgMC42MTk5NTQsIDAuODE0NDM0LCAxLjEyNjM3LCAxLjM5NzgxLCAxLjc4ODE1IiwgXAotICAgICAgICAgICIwLjA4NDM1MiwgMC4zNTc5NDksIDAuNjMwNDExLCAwLjgyNDkyMiwgMS4xMzYxNiwgMS40MDg0OCwgMS43OTc3NSIsIFwKLSAgICAgICAgICAiMC4wOTQ4OTMsIDAuMzY4MTcxLCAwLjY0MDY5NiwgMC44MzU1OTgsIDEuMTQ2NzEsIDEuNDE5MzMsIDEuODA4MDEiLCBcCi0gICAgICAgICAgIjAuMTA1NjAxLCAwLjM3ODQ2NSwgMC42NTEwMDUsIDAuODQ1OTQxLCAxLjE1Njk4LCAxLjQyOTcxLCAxLjgxODEyIiwgXAotICAgICAgICAgICIwLjEyMjQ1OSwgMC4zOTQ4MTksIDAuNjY3NTcsIDAuODYxOTUzLCAxLjE3MzcsIDEuNDQ1NTYsIDEuODM0NSIsIFwKLSAgICAgICAgICAiMC4xMzU5ODEsIDAuNDEwMTQ4LCAwLjY4Mjc4NSwgMC44NzcyMDcsIDEuMTg4OCwgMS40NjA3NywgMS44NTA1NSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEzMDE3OSwgMC42NjMzMzgsIDEuMTk2MDksIDEuNTc2NjgsIDIuMTg4MzQsIDIuNzE3ODgsIDMuNDg0ODMiLCBcCi0gICAgICAgICAgIjAuMTI5NDcyLCAwLjY2MzM3OSwgMS4xOTYwNywgMS41NzYzNSwgMi4xODg2NSwgMi43MjMwNSwgMy40NzU2NiIsIFwKLSAgICAgICAgICAiMC4xMzEzOCwgMC42NjQ1NzUsIDEuMTk1MTgsIDEuNTc2NTIsIDIuMTg0MiwgMi43MTgyLCAzLjQ3OTg5IiwgXAotICAgICAgICAgICIwLjEzNjA5MiwgMC42NjM5NzYsIDEuMTk3MzEsIDEuNTc2OSwgMi4xODU0OCwgMi43MTg4OSwgMy40Nzk1MyIsIFwKLSAgICAgICAgICAiMC4xNDI1NzUsIDAuNjYyNTQzLCAxLjE5ODAzLCAxLjU3NjkxLCAyLjE4NTQ3LCAyLjcxODc2LCAzLjQ4NTQzIiwgXAotICAgICAgICAgICIwLjE1NDgxLCAwLjY2NDQ4OCwgMS4xOTYyMSwgMS41NzkzMywgMi4xODU5OSwgMi43MTgyMSwgMy40ODU1IiwgXAotICAgICAgICAgICIwLjE2NjQ4NiwgMC42NjY2ODQsIDEuMTk2MzUsIDEuNTc2NTQsIDIuMTg1ODgsIDIuNzE4MTMsIDMuNDc2MTkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTI3NTQsIDAuMDEyNzYyLCAwLjAxMjc2MywgMC4wMTI3NjIsIDAuMDEyNzYsIDAuMDEyNzU5LCAwLjAxMjc2IiwgXAotICAgICAgICAgICIwLjAxMjY5NCwgMC4wMTI3MTEsIDAuMDEyNzExLCAwLjAxMjcxLCAwLjAxMjcxMSwgMC4wMTI3MTEsIDAuMDEyNzExIiwgXAotICAgICAgICAgICIwLjAxMjY1LCAwLjAxMjY4MSwgMC4wMTI2ODQsIDAuMDEyNjg1LCAwLjAxMjY4OCwgMC4wMTI2ODYsIDAuMDEyNjg1IiwgXAotICAgICAgICAgICIwLjAxMjY1OSwgMC4wMTI2ODksIDAuMDEyNjk1LCAwLjAxMjY5NywgMC4wMTI2OTcsIDAuMDEyNjk3LCAwLjAxMjY5OCIsIFwKLSAgICAgICAgICAiMC4wMTI2NzMsIDAuMDEyNzAzLCAwLjAxMjcwOSwgMC4wMTI3MTMsIDAuMDEyNzEyLCAwLjAxMjcxMywgMC4wMTI3MTEiLCBcCi0gICAgICAgICAgIjAuMDEyNjc4LCAwLjAxMjcxNSwgMC4wMTI3MjIsIDAuMDEyNzI5LCAwLjAxMjcyNCwgMC4wMTI3MjQsIDAuMDEyNzI2IiwgXAotICAgICAgICAgICIwLjAxMjcwNywgMC4wMTI3NDgsIDAuMDEyNzUyLCAwLjAxMjc1NywgMC4wMTI3NTYsIDAuMDEyNzU4LCAwLjAxMjc1NiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA5NDcyLCAwLjAwOTU5NCwgMC4wMDk2MSwgMC4wMDk2MTUsIDAuMDA5NjE5LCAwLjAwOTYyMSwgMC4wMDk2MjMiLCBcCi0gICAgICAgICAgIjAuMDA5NDAyLCAwLjAwOTU0NSwgMC4wMDk1NjcsIDAuMDA5NTczLCAwLjAwOTU3OSwgMC4wMDk1ODMsIDAuMDA5NTg1IiwgXAotICAgICAgICAgICIwLjAwOTM0NSwgMC4wMDk1MTQsIDAuMDA5NTQ1LCAwLjAwOTU1NSwgMC4wMDk1NjQsIDAuMDA5NTY4LCAwLjAwOTU3MiIsIFwKLSAgICAgICAgICAiMC4wMDkzMjEsIDAuMDA5NTA0LCAwLjAwOTU0MiwgMC4wMDk1NTQsIDAuMDA5NTY2LCAwLjAwOTU3MiwgMC4wMDk1NzciLCBcCi0gICAgICAgICAgIjAuMDA5MzE1LCAwLjAwOTUwNywgMC4wMDk1NDksIDAuMDA5NTY0LCAwLjAwOTU3OCwgMC4wMDk1ODUsIDAuMDA5NTkxIiwgXAotICAgICAgICAgICIwLjAwOTMxMSwgMC4wMDk1MDcsIDAuMDA5NTU2LCAwLjAwOTU3MywgMC4wMDk1ODgsIDAuMDA5NTk2LCAwLjAwOTYwNCIsIFwKLSAgICAgICAgICAiMC4wMDkzMjQsIDAuMDA5NTIxLCAwLjAwOTU3NCwgMC4wMDk1OTMsIDAuMDA5NjExLCAwLjAwOTYyLCAwLjAwOTYyOSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkJOIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMTMxMiwgMC4wMTEzMzUsIDAuMDExMzM2LCAwLjAxMTMzNiwgMC4wMTEzMzYsIDAuMDExMzM2LCAwLjAxMTMzNiIsIFwKLSAgICAgICAgICAiMC4wMTEyNDksIDAuMDExMjgzLCAwLjAxMTI4NiwgMC4wMTEyODgsIDAuMDExMjg5LCAwLjAxMTI4OSwgMC4wMTEyODgiLCBcCi0gICAgICAgICAgIjAuMDExMjAzLCAwLjAxMTI1NiwgMC4wMTEyNjMsIDAuMDExMjY1LCAwLjAxMTI2OCwgMC4wMTEyNjcsIDAuMDExMjY4IiwgXAotICAgICAgICAgICIwLjAxMTIwNiwgMC4wMTEyNjQsIDAuMDExMjczLCAwLjAxMTI3NywgMC4wMTEyNzksIDAuMDExMjgzLCAwLjAxMTI3OSIsIFwKLSAgICAgICAgICAiMC4wMTEyMSwgMC4wMTEyNzYsIDAuMDExMjg2LCAwLjAxMTI5LCAwLjAxMTI5LCAwLjAxMTI5NCwgMC4wMTEyOTIiLCBcCi0gICAgICAgICAgIjAuMDExMjM4LCAwLjAxMTMwOCwgMC4wMTEzMiwgMC4wMTEzMjcsIDAuMDExMzI4LCAwLjAxMTMzMSwgMC4wMTEzMyIsIFwKLSAgICAgICAgICAiMC4wMTEyNjYsIDAuMDExMzQsIDAuMDExMzUzLCAwLjAxMTM1NSwgMC4wMTEzNTksIDAuMDExMzYxLCAwLjAxMTM2MyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA5MDM4LCAwLjAwOTE2NiwgMC4wMDkxODMsIDAuMDA5MTg5LCAwLjAwOTE5MywgMC4wMDkxOTYsIDAuMDA5MTk4IiwgXAotICAgICAgICAgICIwLjAwODk3MywgMC4wMDkxMTksIDAuMDA5MTQxLCAwLjAwOTE0OCwgMC4wMDkxNTUsIDAuMDA5MTU4LCAwLjAwOTE2MSIsIFwKLSAgICAgICAgICAiMC4wMDg5MjYsIDAuMDA5MDkyLCAwLjAwOTEyMiwgMC4wMDkxMzIsIDAuMDA5MTQxLCAwLjAwOTE0NSwgMC4wMDkxNDkiLCBcCi0gICAgICAgICAgIjAuMDA4ODk0LCAwLjAwOTA3OCwgMC4wMDkxMTYsIDAuMDA5MTI5LCAwLjAwOTE0LCAwLjAwOTE0NiwgMC4wMDkxNTIiLCBcCi0gICAgICAgICAgIjAuMDA4ODg3LCAwLjAwOTA3NywgMC4wMDkxMiwgMC4wMDkxMzUsIDAuMDA5MTQ5LCAwLjAwOTE1NiwgMC4wMDkxNjIiLCBcCi0gICAgICAgICAgIjAuMDA4ODk0LCAwLjAwOTA4OCwgMC4wMDkxMzgsIDAuMDA5MTU1LCAwLjAwOTE3MSwgMC4wMDkxOCwgMC4wMDkxODgiLCBcCi0gICAgICAgICAgIjAuMDA4OTA5LCAwLjAwOTEwNCwgMC4wMDkxNTcsIDAuMDA5MTc2LCAwLjAwOTE5NSwgMC4wMDkyMDQsIDAuMDA5MjE0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDg4MDEsIDAuMDA4ODE2LCAwLjAwODgxNywgMC4wMDg4MTgsIDAuMDA4ODE4LCAwLjAwODgxOSwgMC4wMDg4MTgiLCBcCi0gICAgICAgICAgIjAuMDA4NzUyLCAwLjAwODgyNywgMC4wMDg4MzgsIDAuMDA4ODQxLCAwLjAwODg0NCwgMC4wMDg4NDQsIDAuMDA4ODQ1IiwgXAotICAgICAgICAgICIwLjAwODY5NCwgMC4wMDg4MDksIDAuMDA4ODMxLCAwLjAwODgzNiwgMC4wMDg4NDEsIDAuMDA4ODQ0LCAwLjAwODg0NyIsIFwKLSAgICAgICAgICAiMC4wMDg2ODUsIDAuMDA4OCwgMC4wMDg4MjUsIDAuMDA4ODMzLCAwLjAwODg0MiwgMC4wMDg4NDMsIDAuMDA4ODQ3IiwgXAotICAgICAgICAgICIwLjAwODcyLCAwLjAwODgwNywgMC4wMDg4MjUsIDAuMDA4ODMzLCAwLjAwODg0LCAwLjAwODg0NCwgMC4wMDg4NDgiLCBcCi0gICAgICAgICAgIjAuMDA4ODEzLCAwLjAwODgyNiwgMC4wMDg4MzgsIDAuMDA4ODQ4LCAwLjAwODg0NywgMC4wMDg4MjgsIDAuMDA4ODQ5IiwgXAotICAgICAgICAgICIwLjAwODgyNiwgMC4wMDg4MjIsIDAuMDA4ODM0LCAwLjAwODgzMSwgMC4wMDg4MzksIDAuMDA4ODQxLCAwLjAwODg3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDM0ODksIDAuMDAzNTQsIDAuMDAzNTQ2LCAwLjAwMzU0OCwgMC4wMDM1NDksIDAuMDAzNTQ5LCAwLjAwMzU1IiwgXAotICAgICAgICAgICIwLjAwMzMxNywgMC4wMDM0ODgsIDAuMDAzNTE2LCAwLjAwMzUyNSwgMC4wMDM1MzMsIDAuMDAzNTM3LCAwLjAwMzU0IiwgXAotICAgICAgICAgICIwLjAwMzIxNywgMC4wMDM0MzUsIDAuMDAzNDgyLCAwLjAwMzQ5OCwgMC4wMDM1MTMsIDAuMDAzNTIsIDAuMDAzNTI3IiwgXAotICAgICAgICAgICIwLjAwMzE2NywgMC4wMDMzOSwgMC4wMDM0NTIsIDAuMDAzNDc0LCAwLjAwMzQ5NCwgMC4wMDM1MDUsIDAuMDAzNTE1IiwgXAotICAgICAgICAgICIwLjAwMzE0MSwgMC4wMDMzNTQsIDAuMDAzNDI1LCAwLjAwMzQ1MSwgMC4wMDM0NzcsIDAuMDAzNDksIDAuMDAzNTAzIiwgXAotICAgICAgICAgICIwLjAwMzEyNSwgMC4wMDMzMDksIDAuMDAzMzg4LCAwLjAwMzQyLCAwLjAwMzQ1MSwgMC4wMDM0NjgsIDAuMDAzNDg1IiwgXAotICAgICAgICAgICIwLjAwMzEzMiwgMC4wMDMyODQsIDAuMDAzMzYzLCAwLjAwMzM5NywgMC4wMDM0MzIsIDAuMDAzNDUyLCAwLjAwMzQ3MiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkQiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2NDM4LCAwLjAwNjQ4MywgMC4wMDY0ODksIDAuMDA2NDkxLCAwLjAwNjQ5MSwgMC4wMDY0OTEsIDAuMDA2NDkyIiwgXAotICAgICAgICAgICIwLjAwNjM4OSwgMC4wMDY1MjMsIDAuMDA2NTM5LCAwLjAwNjU0MiwgMC4wMDY1NDcsIDAuMDA2NTQ2LCAwLjAwNjU1MSIsIFwKLSAgICAgICAgICAiMC4wMDYzMjksIDAuMDA2NTAzLCAwLjAwNjUyOSwgMC4wMDY1NDUsIDAuMDA2NTUzLCAwLjAwNjU1NiwgMC4wMDY1NjEiLCBcCi0gICAgICAgICAgIjAuMDA2MzE3LCAwLjAwNjQ5MywgMC4wMDY1MjQsIDAuMDA2NTM5LCAwLjAwNjU1MywgMC4wMDY1NTksIDAuMDA2NTYzIiwgXAotICAgICAgICAgICIwLjAwNjM0MSwgMC4wMDY0ODQsIDAuMDA2NTI1LCAwLjAwNjU0MSwgMC4wMDY1NTEsIDAuMDA2NTYyLCAwLjAwNjU2NiIsIFwKLSAgICAgICAgICAiMC4wMDYzMjcsIDAuMDA2NTExLCAwLjAwNjUzNCwgMC4wMDY1NDIsIDAuMDA2NTU0LCAwLjAwNjU1NCwgMC4wMDY1NjYiLCBcCi0gICAgICAgICAgIjAuMDA2NDAyLCAwLjAwNjQ5MywgMC4wMDY1MjYsIDAuMDA2NTQzLCAwLjAwNjU0NiwgMC4wMDY1NTUsIDAuMDA2NTUyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDM0NzIsIDAuMDAzNTM1LCAwLjAwMzU0MiwgMC4wMDM1NDUsIDAuMDAzNTQ2LCAwLjAwMzU0NywgMC4wMDM1NDgiLCBcCi0gICAgICAgICAgIjAuMDAzMjg3LCAwLjAwMzQ3OCwgMC4wMDM1MDksIDAuMDAzNTE5LCAwLjAwMzUyOCwgMC4wMDM1MzIsIDAuMDAzNTM3IiwgXAotICAgICAgICAgICIwLjAwMzIwMywgMC4wMDM0MjEsIDAuMDAzNDczLCAwLjAwMzQ5LCAwLjAwMzUwNiwgMC4wMDM1MTUsIDAuMDAzNTIzIiwgXAotICAgICAgICAgICIwLjAwMzE5NiwgMC4wMDMzODIsIDAuMDAzNDQ1LCAwLjAwMzQ2NywgMC4wMDM0ODksIDAuMDAzNSwgMC4wMDM1MTEiLCBcCi0gICAgICAgICAgIjAuMDAzMjI5LCAwLjAwMzM2LCAwLjAwMzQyNSwgMC4wMDM0NSwgMC4wMDM0NzUsIDAuMDAzNDg4LCAwLjAwMzUwMSIsIFwKLSAgICAgICAgICAiMC4wMDMzNTEsIDAuMDAzMzU3LCAwLjAwMzQxMSwgMC4wMDM0MzYsIDAuMDAzNDYyLCAwLjAwMzQ3NywgMC4wMDM0OTEiLCBcCi0gICAgICAgICAgIjAuMDAzNCwgMC4wMDMzNDQsIDAuMDAzMzk0LCAwLjAwMzQxOSwgMC4wMDM0NDYsIDAuMDAzNDYzLCAwLjAwMzQ3OSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBOQU5ENEJYNCAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoTkFORDRCWDQpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC42MzIwNjk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEFOKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA4ODI5MDQ7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwODgyNjIxOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDg4MjkwNDsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDE2MTEsIDAuMDAxNTYzLCAwLjAwMTU1MiwgMC4wMDE1NTUsIDAuMDAxNTY2LCAwLjAwMTU5NSwgMC4wMDE2MjciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDM1MTYsIDAuMDAzNDgyLCAwLjAwMzQ2OSwgMC4wMDM0NzUsIDAuMDAzNDg1LCAwLjAwMzUxNSwgMC4wMDM1NTIiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMzEwOTU4OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMzEwOTU4OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMzA5ODQ2OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTYzNywgMC4wMDE2MzYsIDAuMDAxNjM1LCAwLjAwMTYzNCwgMC4wMDE2MzQsIDAuMDAxNjMxLCAwLjAwMTYzNCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTYzOSwgMC4wMDE2NCwgMC4wMDE2NDEsIDAuMDAxNjQsIDAuMDAxNjQsIDAuMDAxNjQsIDAuMDAxNjQiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEMpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMzI2MTM2OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMzI2MTM2OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMzI1MTU0OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTYzNywgMC4wMDE2MzYsIDAuMDAxNjM1LCAwLjAwMTYzNCwgMC4wMDE2MzQsIDAuMDAxNjM0LCAwLjAwMTYzNCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTYzOSwgMC4wMDE2NCwgMC4wMDE2NDIsIDAuMDAxNjQsIDAuMDAxNjQxLCAwLjAwMTY0MSwgMC4wMDE2NDIiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEQpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMzE2NTQ2OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMzE2MzIyOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMzE2NTQ2OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDQyNiwgMC4wMDA0MjUsIDAuMDAwNDIzLCAwLjAwMDQyMywgMC4wMDA0MjMsIDAuMDAwNDIzLCAwLjAwMDQyNCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTg1NiwgMC4wMDE4NTksIDAuMDAxODU5LCAwLjAwMTg1OCwgMC4wMDE4NTgsIDAuMDAxODU4LCAwLjAwMTg1OCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjI3ODExODsKLSAgICBmdW5jdGlvbiA6ICIoISgoKCghQU4pIEIpIEMpIEQpKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQU4iOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDUxMzg1LCAwLjEyNTU3MSwgMC4xOTgxNjUsIDAuMjQ5ODg5LCAwLjMzMjU2MiwgMC40MDQ1ODksIDAuNTA4MDkxIiwgXAotICAgICAgICAgICIwLjA2MTYzNywgMC4xMzU3NDEsIDAuMjA4MzI0LCAwLjI2MDA1MywgMC4zNDI1NSwgMC40MTQ3NywgMC41MTgxNDIiLCBcCi0gICAgICAgICAgIjAuMDc0MjM3LCAwLjE0ODMxLCAwLjIyMDg5MSwgMC4yNzI2MDksIDAuMzU1MjU1LCAwLjQyNzU3MywgMC41MzA3MjUiLCBcCi0gICAgICAgICAgIjAuMDg1NjM3LCAwLjE1OTU4OSwgMC4yMzIxNywgMC4yODM4NywgMC4zNjY1MzMsIDAuNDM4ODUzLCAwLjU0MjAwMSIsIFwKLSAgICAgICAgICAiMC4wOTU1MDcsIDAuMTY5NTM3LCAwLjI0MjA5MiwgMC4yOTM4MDMsIDAuMzc2NDY5LCAwLjQ0ODc2OCwgMC41NTE5MjkiLCBcCi0gICAgICAgICAgIjAuMTA5MTU3LCAwLjE4MzM5NiwgMC4yNTU5LCAwLjMwNzU5OCwgMC4zOTAyNDIsIDAuNDYyNTM2LCAwLjU2NTc2NiIsIFwKLSAgICAgICAgICAiMC4xMTk2NzMsIDAuMTk0MTExLCAwLjI2NjY1NSwgMC4zMTgzMywgMC40MDA5NTcsIDAuNDczMjM3LCAwLjU3NjQzMiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0NzM0NiwgMC4xOTQyNiwgMC4zNDI3MjIsIDAuNDQ5MDU0LCAwLjYxOTM4NiwgMC43Njc0OTgsIDAuOTc5ODkxIiwgXAotICAgICAgICAgICIwLjA0NzM0MywgMC4xOTQyNjIsIDAuMzQyNzI2LCAwLjQ0OTAyMywgMC42MTg5NDcsIDAuNzY4MDQ5LCAwLjk4MDE2MiIsIFwKLSAgICAgICAgICAiMC4wNDc1MDEsIDAuMTk0MjgsIDAuMzQyNzIxLCAwLjQ0OTA0NywgMC42MTg5MDIsIDAuNzY3NzA2LCAwLjk4MDEyOCIsIFwKLSAgICAgICAgICAiMC4wNDgzMDIsIDAuMTk0MjIzLCAwLjM0Mjc2LCAwLjQ0ODk2NywgMC42MTkxMTcsIDAuNzY3ODc4LCAwLjk4MDE0MiIsIFwKLSAgICAgICAgICAiMC4wNDkyNjEsIDAuMTk0NDEzLCAwLjM0MjczMywgMC40NDkzMDUsIDAuNjE5MTI2LCAwLjc2Nzg5NiwgMC45ODAxNDQiLCBcCi0gICAgICAgICAgIjAuMDUxMDkxLCAwLjE5NDg2MSwgMC4zNDI5MTUsIDAuNDQ5MDY0LCAwLjYxOTAyMywgMC43Njc4NjYsIDAuOTgwMjI0IiwgXAotICAgICAgICAgICIwLjA1MjczLCAwLjE5NTI0LCAwLjM0Mjk3MywgMC40NDk0MzgsIDAuNjE5MTY3LCAwLjc2NzgzLCAwLjk4MDExOCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExNDg5MywgMC4zODc4NjEsIDAuNjYwMTkyLCAwLjg1NDkyNSwgMS4xNjY3LCAxLjQzODM5LCAxLjgyODYxIiwgXAotICAgICAgICAgICIwLjEyNDYyNCwgMC4zOTc3MDUsIDAuNjcwNDk5LCAwLjg2NDYxOCwgMS4xNzU5OCwgMS40NDg1MSwgMS44MzczOSIsIFwKLSAgICAgICAgICAiMC4xMzY2MzEsIDAuNDA5OTQ5LCAwLjY4MjY5OSwgMC44NzY4NDgsIDEuMTg3ODcsIDEuNDYwODIsIDEuODQ5NiIsIFwKLSAgICAgICAgICAiMC4xNDY5NSwgMC40MjAyNjIsIDAuNjkyNzA4LCAwLjg4NzUwNCwgMS4xOTg5NywgMS40NzEwMywgMS44NjAzOCIsIFwKLSAgICAgICAgICAiMC4xNTU2OTUsIDAuNDI5MDc1LCAwLjcwMTg1NiwgMC44OTYyNjcsIDEuMjA4MDIsIDEuNDgwNTksIDEuODY4ODMiLCBcCi0gICAgICAgICAgIjAuMTY4MTk3LCAwLjQ0MTc5NiwgMC43MTQwNDcsIDAuOTA4NzEsIDEuMjIwMzcsIDEuNDkyMTksIDEuODgxOTciLCBcCi0gICAgICAgICAgIjAuMTc3Mjk5LCAwLjQ1MDY4MywgMC43MjMzNywgMC45MTgyMDYsIDEuMjI5MTgsIDEuNTAyNDIsIDEuODkwNzEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMzcxNDEsIDAuNjY5NTY0LCAxLjIwMjI5LCAxLjU4MzIyLCAyLjE5NTA3LCAyLjcyNDksIDMuNDgyMTciLCBcCi0gICAgICAgICAgIjAuMTM3MTUxLCAwLjY2OTU3MywgMS4yMDQxMSwgMS41ODI4OSwgMi4xOTIxMywgMi43MjI3NSwgMy40ODY0OCIsIFwKLSAgICAgICAgICAiMC4xMzY4ODksIDAuNjY5MDQxLCAxLjIwNDEsIDEuNTgyNzUsIDIuMTkyMTEsIDIuNzIyMzQsIDMuNDg2MTYiLCBcCi0gICAgICAgICAgIjAuMTM2OTEsIDAuNjY5NTY3LCAxLjIwMjMsIDEuNTg0NDEsIDIuMTg5ODIsIDIuNzI0ODIsIDMuNDgyOTciLCBcCi0gICAgICAgICAgIjAuMTM3MTg4LCAwLjY2OTYzLCAxLjIwMzksIDEuNTgyOTksIDIuMTg5MzIsIDIuNzI4NTgsIDMuNDg2MTYiLCBcCi0gICAgICAgICAgIjAuMTM3MTIzLCAwLjY2ODgzMiwgMS4yMDIzMSwgMS41ODI5LCAyLjE5NDUxLCAyLjcyNDc2LCAzLjQ5MDA2IiwgXAotICAgICAgICAgICIwLjEzNjk2OCwgMC42Njk0NjcsIDEuMjAxMiwgMS41ODExOSwgMi4xOTE4NCwgMi43Mjg3MSwgMy40ODI2NCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyNDY2OSwgMC4wOTgwMzQsIDAuMTcwNzAzLCAwLjIyMjU5NiwgMC4zMDU0NjksIDAuMzc4MDIzLCAwLjQ4MTY1MiIsIFwKLSAgICAgICAgICAiMC4wMzQ2NDksIDAuMTA3NzI3LCAwLjE4MDQxMywgMC4yMzIyMzcsIDAuMzE1MTgzLCAwLjM4NzU5OCwgMC40OTEyMDMiLCBcCi0gICAgICAgICAgIjAuMDQ3MjI0LCAwLjEyMDIzNywgMC4xOTI5MjEsIDAuMjQ0NzU5LCAwLjMyNzY5NiwgMC4zOTkyOCwgMC41MDI3MzYiLCBcCi0gICAgICAgICAgIjAuMDU3ODgzLCAwLjEzMjU5OCwgMC4yMDUzNzUsIDAuMjU3MTYzLCAwLjM0MDAxOCwgMC40MTI0NzQsIDAuNTE2MDc0IiwgXAotICAgICAgICAgICIwLjA2NjgzLCAwLjE0NTEzNSwgMC4yMTc3MjQsIDAuMjY5NzA3LCAwLjM1MjQ1NywgMC40MjQ5MDgsIDAuNTI4Mzg2IiwgXAotICAgICAgICAgICIwLjA3OTY2NCwgMC4xNjU4MjEsIDAuMjM3Njc4LCAwLjI4OTQ0MywgMC4zNzI1NjIsIDAuNDQzNzIxLCAwLjU0ODQ5MyIsIFwKLSAgICAgICAgICAiMC4wODg2OTQsIDAuMTgzNTIyLCAwLjI1NTE3MywgMC4zMDY5MjYsIDAuMzg5Nzc0LCAwLjQ2MjU1LCAwLjU2NTk1Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQxNTU3LCAwLjE5MDk0MywgMC4zNDA0MTMsIDAuNDQ3MTc2LCAwLjYxODE1OCwgMC43NjczLCAwLjk4MDY5NyIsIFwKLSAgICAgICAgICAiMC4wNDM0MjEsIDAuMTkxMDYxLCAwLjM0MDM0OCwgMC40NDcxMjYsIDAuNjE3NzcyLCAwLjc2NzE0NCwgMC45ODA0MTUiLCBcCi0gICAgICAgICAgIjAuMDUwMzUzLCAwLjE5MTUwNCwgMC4zNDA0MjEsIDAuNDQ3MDc5LCAwLjYxNzg5NywgMC43Njc1NzcsIDAuOTgwNTMiLCBcCi0gICAgICAgICAgIjAuMDU5NDY0LCAwLjE5NDc3NSwgMC4zNDA1ODEsIDAuNDQ3MTk3LCAwLjYxNzc3NywgMC43NjcwNDcsIDAuOTgwNjcxIiwgXAotICAgICAgICAgICIwLjA2ODkxMSwgMC4xOTk4NTEsIDAuMzQyNjM2LCAwLjQ0NzQ1NSwgMC42MTc2ODMsIDAuNzY3MDEzLCAwLjk4MDcyOSIsIFwKLSAgICAgICAgICAiMC4wODE2NjUsIDAuMjA5NDgsIDAuMzQ4NTgsIDAuNDUxMTE0LCAwLjYxODc0NywgMC43NjcwMTIsIDAuOTgwNjk1IiwgXAotICAgICAgICAgICIwLjA5Mjg4MSwgMC4yMTk2MzYsIDAuMzU1OTAyLCAwLjQ1NjQ1OCwgMC42MjEzMzUsIDAuNzY4MjU0LCAwLjk4MDM5NCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4NzMxNSwgMC4zNjAwMzcsIDAuNjMyMzcyLCAwLjgyNjgzOSwgMS4xMzgzOCwgMS40MTAyNiwgMS44MDAzOSIsIFwKLSAgICAgICAgICAiMC4wOTUzNDMsIDAuMzY4NzMzLCAwLjY0MDg1MSwgMC44MzU0NTMsIDEuMTQ2NTIsIDEuNDE4OTYsIDEuODA4NTIiLCBcCi0gICAgICAgICAgIjAuMTA0NjIzLCAwLjM3ODA2OSwgMC42NTA4NjcsIDAuODQ1MzE4LCAxLjE1NjI0LCAxLjQyOTM0LCAxLjgxNzI5IiwgXAotICAgICAgICAgICIwLjExMzQwOSwgMC4zODcxMjIsIDAuNjU5ODkyLCAwLjg1NDE0NiwgMS4xNjUyNSwgMS40MzgxMywgMS44MjcwNCIsIFwKLSAgICAgICAgICAiMC4xMjIxOTMsIDAuMzk1NzAyLCAwLjY2ODQyNiwgMC44NjM1NDksIDEuMTc0MzcsIDEuNDQ2OTEsIDEuODM2MDIiLCBcCi0gICAgICAgICAgIjAuMTM1OTksIDAuNDA5NzY1LCAwLjY4MjMxMywgMC44NzcyNjUsIDEuMTg4NCwgMS40NjE3NiwgMS44NTAxMSIsIFwKLSAgICAgICAgICAiMC4xNDcwNTgsIDAuNDIxOTg1LCAwLjY5NDk2MywgMC44ODkzMzQsIDEuMjAxMDgsIDEuNDc0MTYsIDEuODYyMTEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMzcxNDYsIDAuNjcwNDY0LCAxLjIwMzY5LCAxLjU4MzIyLCAyLjE5NDY1LCAyLjcyNDkxLCAzLjQ5MTUxIiwgXAotICAgICAgICAgICIwLjEzNzExOSwgMC42NzA1MjgsIDEuMjA0MzgsIDEuNTgyNTYsIDIuMTkxNjIsIDIuNzI0MjYsIDMuNDg5NzEiLCBcCi0gICAgICAgICAgIjAuMTM3MjU2LCAwLjY2OTU2MiwgMS4yMDM4MSwgMS41ODMxMywgMi4xOTIyMywgMi43Mjc5NywgMy40OTE0IiwgXAotICAgICAgICAgICIwLjEzODQyOCwgMC42NzA0MzQsIDEuMjAzOTgsIDEuNTgyNzcsIDIuMTk1NTUsIDIuNzIyNjQsIDMuNDg2MTkiLCBcCi0gICAgICAgICAgIjAuMTQwNTYzLCAwLjY3MDcyMSwgMS4yMDIzOSwgMS41ODUyNSwgMi4xOTE1MSwgMi43MjQ5MiwgMy40ODYwMSIsIFwKLSAgICAgICAgICAiMC4xNDU3MjksIDAuNjY5ODY2LCAxLjIwNDQsIDEuNTg0NDUsIDIuMTkxNTEsIDIuNzI4OSwgMy40ODI0MyIsIFwKLSAgICAgICAgICAiMC4xNTE1NDUsIDAuNjcwNzA3LCAxLjIwMzQ2LCAxLjU4NTUzLCAyLjE5Mzg5LCAyLjcyODU1LCAzLjQ4NzM2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDIzMTE4LCAwLjA5NTkzNiwgMC4xNjg1NTQsIDAuMjIwNDc1LCAwLjMwMzI3MywgMC4zNzU4NDksIDAuNDc5NDgyIiwgXAotICAgICAgICAgICIwLjAzMzIzMywgMC4xMDU5OTksIDAuMTc4NTk1LCAwLjIzMDM4NCwgMC4zMTMyODIsIDAuMzg1ODM2LCAwLjQ4OTUyMSIsIFwKLSAgICAgICAgICAiMC4wNDU1NDQsIDAuMTE4MzQ1LCAwLjE5MDkzMywgMC4yNDI4MDksIDAuMzI0OTMzLCAwLjM5NzA5OSwgMC41MDEwNDciLCBcCi0gICAgICAgICAgIjAuMDU1ODYyLCAwLjEzMDkzMywgMC4yMDM1MzksIDAuMjU1NDU4LCAwLjMzNzg3MSwgMC40MTAyOTQsIDAuNTEzODQzIiwgXAotICAgICAgICAgICIwLjA2NDE1NywgMC4xNDMyMzEsIDAuMjE1NzUyLCAwLjI2NzY5NywgMC4zNTA0NTMsIDAuNDIyOTIsIDAuNTI2NzI2IiwgXAotICAgICAgICAgICIwLjA3NjQxMSwgMC4xNjM5MjQsIDAuMjM1NjkxLCAwLjI4NzQzMSwgMC4zNzA1NTIsIDAuNDQyNTQzLCAwLjU0NjU1OSIsIFwKLSAgICAgICAgICAiMC4wODUxODYsIDAuMTgxNzkzLCAwLjI1MzE4LCAwLjMwNDkxOCwgMC4zODc3ODgsIDAuNDYwNTM2LCAwLjU2NDExIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM5MDc2LCAwLjE4ODYzNiwgMC4zMzgzNTEsIDAuNDQ1MDQ0LCAwLjYxNjEzMywgMC43NjU0MjUsIDAuOTc5MTQ1IiwgXAotICAgICAgICAgICIwLjA0MTI1MiwgMC4xODg2MTIsIDAuMzM4MTE3LCAwLjQ0NDg2NywgMC42MTU3MTEsIDAuNzY1Njg4LCAwLjk3OTA4MiIsIFwKLSAgICAgICAgICAiMC4wNDg2MjQsIDAuMTg5MjgzLCAwLjMzODExMywgMC40NDUwMzUsIDAuNjE1OTQyLCAwLjc2NTIzNSwgMC45NzkwNTkiLCBcCi0gICAgICAgICAgIjAuMDU3NTY2LCAwLjE5MjQ3OSwgMC4zMzgzNjQsIDAuNDQ0ODc0LCAwLjYxNTkzMiwgMC43NjUyNjEsIDAuOTc5MTg5IiwgXAotICAgICAgICAgICIwLjA2NzUxMSwgMC4xOTc3NTMsIDAuMzQwNDExLCAwLjQ0NTM3NSwgMC42MTU3MTIsIDAuNzY1MjY0LCAwLjk3OTEzNSIsIFwKLSAgICAgICAgICAiMC4wNzk5NDMsIDAuMjA3NjI0LCAwLjM0NjU4OCwgMC40NDkwNjYsIDAuNjE2NjgsIDAuNzY1NDUyLCAwLjk3OTA4MyIsIFwKLSAgICAgICAgICAiMC4wOTEwMzksIDAuMjE4MDEyLCAwLjM1Mzk4NCwgMC40NTQ1MjIsIDAuNjE5MzYsIDAuNzY2NDU4LCAwLjk3OTAwNiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4MDM5OSwgMC4zNTMyODcsIDAuNjI1Njg0LCAwLjgxOTkxMSwgMS4xMzE2MywgMS40MDMzOSwgMS43OTI3MyIsIFwKLSAgICAgICAgICAiMC4wODgyNywgMC4zNjE0MjEsIDAuNjMzNzY3LCAwLjgyODM0NiwgMS4xMzk0NSwgMS40MTE4NSwgMS44MDA2MSIsIFwKLSAgICAgICAgICAiMC4wOTgxODYsIDAuMzcxNjU5LCAwLjY0NDQ5NCwgMC44Mzg3MDcsIDEuMTUwMzYsIDEuNDIyMjksIDEuODExNzkiLCBcCi0gICAgICAgICAgIjAuMTA4MTUxLCAwLjM4MTk3NiwgMC42NTQ0MDMsIDAuODQ5NTI0LCAxLjE2MDMyLCAxLjQzMzA2LCAxLjgyMjUzIiwgXAotICAgICAgICAgICIwLjExODM0MywgMC4zOTE5MjksIDAuNjY0NjI5LCAwLjg1OTQxOCwgMS4xNzA4OCwgMS40NDI5NywgMS44MzI0NiIsIFwKLSAgICAgICAgICAiMC4xMzQ1MTUsIDAuNDA4MzU5LCAwLjY4MTMzOSwgMC44NzU3NjksIDEuMTg4MDIsIDEuNDU5NDMsIDEuODQ5MjciLCBcCi0gICAgICAgICAgIjAuMTQ3MTE4LCAwLjQyMjUxNCwgMC42OTU2NjYsIDAuODkwNjU1LCAxLjIwMTgzLCAxLjQ3NDE4LCAxLjg2Mjk2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTM3MDcxLCAwLjY2ODk1NSwgMS4yMDQwOSwgMS41ODMxNCwgMi4xOTQ5NCwgMi43MjQ5NiwgMy40ODI2NSIsIFwKLSAgICAgICAgICAiMC4xMzY3MjgsIDAuNjY5MzEzLCAxLjIwMjA4LCAxLjU4MjU5LCAyLjE5NTU1LCAyLjcyNDEsIDMuNDkxNjEiLCBcCi0gICAgICAgICAgIjAuMTM3MzEsIDAuNjcwNzI2LCAxLjIwMzgyLCAxLjU4Mjc3LCAyLjE5NDE2LCAyLjcyNDEsIDMuNDg5MzUiLCBcCi0gICAgICAgICAgIjAuMTM5NzUyLCAwLjY3MDI1NiwgMS4yMDIyNCwgMS41ODUwOCwgMi4xOTE0NiwgMi43MjcyNywgMy40ODE1MSIsIFwKLSAgICAgICAgICAiMC4xNDM3MSwgMC42NzA2ODEsIDEuMjAyMjksIDEuNTgxNDgsIDIuMTkzOSwgMi43MjQyLCAzLjQ4OTYzIiwgXAotICAgICAgICAgICIwLjE1MjIzMiwgMC42NzA4NjIsIDEuMjAyNTEsIDEuNTg1NjksIDIuMTk1NDEsIDIuNzI0NDIsIDMuNDg5ODMiLCBcCi0gICAgICAgICAgIjAuMTYwNTcyLCAwLjY3MjExNSwgMS4yMDIzNywgMS41ODExNiwgMi4xOTIxMiwgMi43MjQxOSwgMy40OTE5NyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJEIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyMTAzOCwgMC4wOTMzNzYsIDAuMTY1NzcyLCAwLjIxNzM1NiwgMC4yOTk5ODcsIDAuMzcyMzYzLCAwLjQ3NTUyOSIsIFwKLSAgICAgICAgICAiMC4wMzEwODQsIDAuMTAzNDA5LCAwLjE3NTU4MSwgMC4yMjcxNTcsIDAuMzA5NzkxLCAwLjM4MjA4MSwgMC40ODU2OTUiLCBcCi0gICAgICAgICAgIjAuMDQzMTY4LCAwLjExNTcyNiwgMC4xODgwODgsIDAuMjM5ODE2LCAwLjMyMTU1MiwgMC4zOTM1MzgsIDAuNDk3MDM3IiwgXAotICAgICAgICAgICIwLjA1MjUwOSwgMC4xMjgyMywgMC4yMDA2OTgsIDAuMjUyMjczLCAwLjMzNDg0MiwgMC40MDcxNDUsIDAuNTEwMzg5IiwgXAotICAgICAgICAgICIwLjA2MDUwNiwgMC4xNDExNzYsIDAuMjEzMDMxLCAwLjI2NDgzOSwgMC4zNDc0OTEsIDAuNDE5NTY4LCAwLjUyMzE1MiIsIFwKLSAgICAgICAgICAiMC4wNzEzMDksIDAuMTYxNTA0LCAwLjIzMzA2MiwgMC4yODQ2NzUsIDAuMzY3NTc4LCAwLjQzOTMyNiwgMC41NDMwODEiLCBcCi0gICAgICAgICAgIjAuMDc5OTQ3LCAwLjE3OTQ4OCwgMC4yNTEzMzUsIDAuMzAyMTg1LCAwLjM4NDcwMiwgMC40NTc0NTksIDAuNTYwNDA5Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM2Mzc4LCAwLjE4NTc1NiwgMC4zMzQ3MjQsIDAuNDQxMDU0LCAwLjYxMTQzNCwgMC43NjE0NjUsIDAuOTc1NjczIiwgXAotICAgICAgICAgICIwLjAzOTAwMywgMC4xODU1MDcsIDAuMzM0NzE0LCAwLjQ0MTc5OCwgMC42MTE1NTQsIDAuNzYwNzExLCAwLjk3NDE1MiIsIFwKLSAgICAgICAgICAiMC4wNDY2NjEsIDAuMTg2MjI0LCAwLjMzNDY5OCwgMC40NDEyMjMsIDAuNjExNTkzLCAwLjc1OTg0LCAwLjk3NDU4MiIsIFwKLSAgICAgICAgICAiMC4wNTY0NDgsIDAuMTg5NzQyLCAwLjMzNDgzNiwgMC40NDEzNDMsIDAuNjEyMDQ3LCAwLjc2MDg4NywgMC45NzM1NiIsIFwKLSAgICAgICAgICAiMC4wNjU4NjIsIDAuMTk0NDk3LCAwLjMzNywgMC40NDI1NDQsIDAuNjExNzQxLCAwLjc2MDYzOCwgMC45NzM4NzIiLCBcCi0gICAgICAgICAgIjAuMDc5ODI2LCAwLjIwNDY5LCAwLjM0Mzg0NSwgMC40NDUzOTUsIDAuNjEzMjE1LCAwLjc2MjIyLCAwLjk3Mzk5IiwgXAotICAgICAgICAgICIwLjA4OTQxNSwgMC4yMTUxNDcsIDAuMzUwMDQ1LCAwLjQ1MTY5MiwgMC42MTY0MjYsIDAuNzYyMzM0LCAwLjk3MzA4MyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2OTMxNSwgMC4zNDE5NTgsIDAuNjE0NTk1LCAwLjgwODczNywgMS4xMjAxNCwgMS4zOTI0NywgMS43ODE4MyIsIFwKLSAgICAgICAgICAiMC4wNzY5MjgsIDAuMzUwMjY2LCAwLjYyMjYwNSwgMC44MTcxNTIsIDEuMTI4MywgMS40MDA0NywgMS43ODk5MyIsIFwKLSAgICAgICAgICAiMC4wODY5NDcsIDAuMzYwMzE1LCAwLjYzMjgyLCAwLjgyNzQyNCwgMS4xMzg1NiwgMS40MTE3MywgMS43OTk4OCIsIFwKLSAgICAgICAgICAiMC4wOTc1OTQsIDAuMzcwODk5LCAwLjY0MzQ4MSwgMC44MzgwMDIsIDEuMTQ5NzIsIDEuNDIxNjksIDEuODExMzMiLCBcCi0gICAgICAgICAgIjAuMTA4MjEyLCAwLjM4MTIyOSwgMC42NTQwNSwgMC44NDgzOTgsIDEuMTU5NTMsIDEuNDMyMzEsIDEuODIxMDIiLCBcCi0gICAgICAgICAgIjAuMTI1NDkxLCAwLjM5NzY3NSwgMC42NzAzMTMsIDAuODY1MTQyLCAxLjE3NjA3LCAxLjQ0OTczLCAxLjgzNzQzIiwgXAotICAgICAgICAgICIwLjEzOTMyOCwgMC40MTI1MDYsIDAuNjg0OTMxLCAwLjg3OTYxNiwgMS4xOTEwOSwgMS40NjMwOCwgMS44NTM1NyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEzNjg5NSwgMC42Njk1NjksIDEuMjAzOTcsIDEuNTgyODksIDIuMTkyMTQsIDIuNzI1MDIsIDMuNDg5OTciLCBcCi0gICAgICAgICAgIjAuMTM2MDIzLCAwLjY2OTA0MywgMS4yMDQzNiwgMS41ODI4LCAyLjE5MTYzLCAyLjcyOTA4LCAzLjQ4NjE3IiwgXAotICAgICAgICAgICIwLjEzNzQzLCAwLjY3MDY4LCAxLjIwMjA1LCAxLjU4MjY0LCAyLjE5NTU2LCAyLjcyODE0LCAzLjQ4NTE1IiwgXAotICAgICAgICAgICIwLjE0MTk5MSwgMC42Njk1ODUsIDEuMjAyMzQsIDEuNTgyNjgsIDIuMTk0MTEsIDIuNzI0MjMsIDMuNDg5ODQiLCBcCi0gICAgICAgICAgIjAuMTQ4MjY2LCAwLjY2ODczNSwgMS4yMDM4NywgMS41ODMwMiwgMi4xOTE2NSwgMi43MjMxMSwgMy40ODM5NCIsIFwKLSAgICAgICAgICAiMC4xNjAxMjcsIDAuNjcwMjY0LCAxLjIwMjI3LCAxLjU4MzE4LCAyLjE5NTUxLCAyLjcyMTgsIDMuNDg1MzQiLCBcCi0gICAgICAgICAgIjAuMTcxMjMxLCAwLjY3Mjg2NSwgMS4yMDE5MywgMS41ODI5MywgMi4xOTIwNCwgMi43MjQzMiwgMy40ODIwMiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkFOIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxNTI2MSwgMC4wMTUyNjcsIDAuMDE1MjY4LCAwLjAxNTI2OCwgMC4wMTUyNjUsIDAuMDE1MjY1LCAwLjAxNTI2NCIsIFwKLSAgICAgICAgICAiMC4wMTUyMDEsIDAuMDE1MjE2LCAwLjAxNTIxNSwgMC4wMTUyMTQsIDAuMDE1MjE2LCAwLjAxNTIxMywgMC4wMTUyMTUiLCBcCi0gICAgICAgICAgIjAuMDE1MTYxLCAwLjAxNTE5LCAwLjAxNTE5NCwgMC4wMTUxOTUsIDAuMDE1MTk1LCAwLjAxNTE5NSwgMC4wMTUxOTQiLCBcCi0gICAgICAgICAgIjAuMDE1MTYzLCAwLjAxNTE5LCAwLjAxNTE5NiwgMC4wMTUxOTksIDAuMDE1MTk3LCAwLjAxNTIsIDAuMDE1MTk2IiwgXAotICAgICAgICAgICIwLjAxNTE3OCwgMC4wMTUyMDYsIDAuMDE1MjExLCAwLjAxNTIxNSwgMC4wMTUyMTQsIDAuMDE1MjE2LCAwLjAxNTIxNiIsIFwKLSAgICAgICAgICAiMC4wMTUyMTIsIDAuMDE1MjQ0LCAwLjAxNTI1MSwgMC4wMTUyNTMsIDAuMDE1MjUyLCAwLjAxNTI1MSwgMC4wMTUyNSIsIFwKLSAgICAgICAgICAiMC4wMTUyNDEsIDAuMDE1Mjc0LCAwLjAxNTI4LCAwLjAxNTI4NCwgMC4wMTUyODIsIDAuMDE1Mjg0LCAwLjAxNTI4MSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA4NDMzLCAwLjAwODU1LCAwLjAwODU2NiwgMC4wMDg1NzEsIDAuMDA4NTc2LCAwLjAwODU3OCwgMC4wMDg1OCIsIFwKLSAgICAgICAgICAiMC4wMDgzNjEsIDAuMDA4NTAxLCAwLjAwODUyMywgMC4wMDg1MywgMC4wMDg1MzYsIDAuMDA4NTM5LCAwLjAwODU0MiIsIFwKLSAgICAgICAgICAiMC4wMDgzMDQsIDAuMDA4NDY5LCAwLjAwODUsIDAuMDA4NTEsIDAuMDA4NTE5LCAwLjAwODUyNCwgMC4wMDg1MjgiLCBcCi0gICAgICAgICAgIjAuMDA4Mjc5LCAwLjAwODQ1OSwgMC4wMDg0OTcsIDAuMDA4NTA5LCAwLjAwODUyMSwgMC4wMDg1MjcsIDAuMDA4NTMzIiwgXAotICAgICAgICAgICIwLjAwODI3NSwgMC4wMDg0NjEsIDAuMDA4NTAzLCAwLjAwODUxOCwgMC4wMDg1MzIsIDAuMDA4NTM5LCAwLjAwODU0NiIsIFwKLSAgICAgICAgICAiMC4wMDgyNjMsIDAuMDA4NDU1LCAwLjAwODUsIDAuMDA4NTIsIDAuMDA4NTMzLCAwLjAwODU0NCwgMC4wMDg1NTIiLCBcCi0gICAgICAgICAgIjAuMDA4MjcyLCAwLjAwODQ2OCwgMC4wMDg1MjEsIDAuMDA4NTQsIDAuMDA4NTU3LCAwLjAwODU2NywgMC4wMDg1NzYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMjc3OCwgMC4wMTI3NzksIDAuMDEyNzgsIDAuMDEyNzgzLCAwLjAxMjc4LCAwLjAxMjc3OSwgMC4wMTI3OCIsIFwKLSAgICAgICAgICAiMC4wMTI2OTIsIDAuMDEyNzI5LCAwLjAxMjczNCwgMC4wMTI3MzYsIDAuMDEyNzM4LCAwLjAxMjczOCwgMC4wMTI3MzgiLCBcCi0gICAgICAgICAgIjAuMDEyNjY3LCAwLjAxMjcxNiwgMC4wMTI3MjgsIDAuMDEyNzI4LCAwLjAxMjczMSwgMC4wMTI3MjcsIDAuMDEyNzI3IiwgXAotICAgICAgICAgICIwLjAxMjY3NSwgMC4wMTI3MTYsIDAuMDEyNzI1LCAwLjAxMjcyOSwgMC4wMTI3MzEsIDAuMDEyNzMxLCAwLjAxMjczMiIsIFwKLSAgICAgICAgICAiMC4wMTI3LCAwLjAxMjcxNiwgMC4wMTI3MjUsIDAuMDEyNzI5LCAwLjAxMjcyNywgMC4wMTI3MywgMC4wMTI3MjgiLCBcCi0gICAgICAgICAgIjAuMDEyNjY0LCAwLjAxMjc0NiwgMC4wMTI3MzUsIDAuMDEyNzM1LCAwLjAxMjczNywgMC4wMTI3MDYsIDAuMDEyNzM3IiwgXAotICAgICAgICAgICIwLjAxMjczLCAwLjAxMjc3NCwgMC4wMTI3NSwgMC4wMTI3NDYsIDAuMDEyNzQzLCAwLjAxMjc0NSwgMC4wMTI3MzgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzE5OSwgMC4wMDMyNDgsIDAuMDAzMjU0LCAwLjAwMzI1NiwgMC4wMDMyNTgsIDAuMDAzMjU5LCAwLjAwMzI1OSIsIFwKLSAgICAgICAgICAiMC4wMDMwMzEsIDAuMDAzMTk3LCAwLjAwMzIyNSwgMC4wMDMyMzQsIDAuMDAzMjQxLCAwLjAwMzI0NSwgMC4wMDMyNDkiLCBcCi0gICAgICAgICAgIjAuMDAyOTMyLCAwLjAwMzE0MiwgMC4wMDMxOSwgMC4wMDMyMDcsIDAuMDAzMjIxLCAwLjAwMzIyOSwgMC4wMDMyMzYiLCBcCi0gICAgICAgICAgIjAuMDAyODc2LCAwLjAwMzA5OCwgMC4wMDMxNiwgMC4wMDMxODIsIDAuMDAzMjAyLCAwLjAwMzIxMywgMC4wMDMyMjMiLCBcCi0gICAgICAgICAgIjAuMDAyODQ0LCAwLjAwMzA2MiwgMC4wMDMxMzMsIDAuMDAzMTYsIDAuMDAzMTg1LCAwLjAwMzE5OSwgMC4wMDMyMTIiLCBcCi0gICAgICAgICAgIjAuMDAyODE2LCAwLjAwMzAxNCwgMC4wMDMwOTUsIDAuMDAzMTI3LCAwLjAwMzE1OSwgMC4wMDMxNzcsIDAuMDAzMTk0IiwgXAotICAgICAgICAgICIwLjAwMjgwNSwgMC4wMDI5ODMsIDAuMDAzMDY3LCAwLjAwMzEwMiwgMC4wMDMxMzgsIDAuMDAzMTU5LCAwLjAwMzE3OSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEwNDMyLCAwLjAxMDQ0NiwgMC4wMTA0NDYsIDAuMDEwNDQ3LCAwLjAxMDQ0OCwgMC4wMTA0NDcsIDAuMDEwNDQ3IiwgXAotICAgICAgICAgICIwLjAxMDM4MiwgMC4wMTA0NTgsIDAuMDEwNDY5LCAwLjAxMDQ3MSwgMC4wMTA0NzQsIDAuMDEwNDc3LCAwLjAxMDQ3NiIsIFwKLSAgICAgICAgICAiMC4wMTAzNSwgMC4wMTA0NDgsIDAuMDEwNDY1LCAwLjAxMDQ3MSwgMC4wMTA0NzcsIDAuMDEwNDg0LCAwLjAxMDQ4MSIsIFwKLSAgICAgICAgICAiMC4wMTAzMTgsIDAuMDEwNDMsIDAuMDEwNDU1LCAwLjAxMDQ2NCwgMC4wMTA0NywgMC4wMTA0NzQsIDAuMDEwNDc4IiwgXAotICAgICAgICAgICIwLjAxMDM3NiwgMC4wMTA0NDQsIDAuMDEwNDY1LCAwLjAxMDQ3MywgMC4wMTA0NzUsIDAuMDEwNDc5LCAwLjAxMDQ4IiwgXAotICAgICAgICAgICIwLjAxMDM2MSwgMC4wMTA0NjcsIDAuMDEwNDcxLCAwLjAxMDQ3NiwgMC4wMTA0ODIsIDAuMDEwNDY0LCAwLjAxMDQ4MyIsIFwKLSAgICAgICAgICAiMC4wMTA0MDQsIDAuMDEwNDk2LCAwLjAxMDQ4NSwgMC4wMTA0ODgsIDAuMDEwNDksIDAuMDEwNDkxLCAwLjAxMDQ5MSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzMiwgMC4wMDMyNDksIDAuMDAzMjU0LCAwLjAwMzI1NiwgMC4wMDMyNTgsIDAuMDAzMjU4LCAwLjAwMzI1OSIsIFwKLSAgICAgICAgICAiMC4wMDMwMzEsIDAuMDAzMTk3LCAwLjAwMzIyNSwgMC4wMDMyMzQsIDAuMDAzMjQxLCAwLjAwMzI0NSwgMC4wMDMyNDkiLCBcCi0gICAgICAgICAgIjAuMDAyOTI5LCAwLjAwMzE0MiwgMC4wMDMxOSwgMC4wMDMyMDYsIDAuMDAzMjIxLCAwLjAwMzIyOSwgMC4wMDMyMzYiLCBcCi0gICAgICAgICAgIjAuMDAyODc4LCAwLjAwMzA5OSwgMC4wMDMxNiwgMC4wMDMxODIsIDAuMDAzMjAzLCAwLjAwMzIxMywgMC4wMDMyMjQiLCBcCi0gICAgICAgICAgIjAuMDAyODUsIDAuMDAzMDYzLCAwLjAwMzEzNCwgMC4wMDMxNiwgMC4wMDMxODUsIDAuMDAzMTk5LCAwLjAwMzIxMiIsIFwKLSAgICAgICAgICAiMC4wMDI4MzIsIDAuMDAzMDE4LCAwLjAwMzA5NywgMC4wMDMxMjksIDAuMDAzMTYsIDAuMDAzMTc3LCAwLjAwMzE5NCIsIFwKLSAgICAgICAgICAiMC4wMDI4MzQsIDAuMDAyOTkxLCAwLjAwMzA3MiwgMC4wMDMxMDYsIDAuMDAzMTQxLCAwLjAwMzE2MSwgMC4wMDMxOCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkQiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA3OTA4LCAwLjAwNzk1MywgMC4wMDc5NTYsIDAuMDA3OTU3LCAwLjAwNzk1NiwgMC4wMDc5NTgsIDAuMDA3OTU4IiwgXAotICAgICAgICAgICIwLjAwNzg2MSwgMC4wMDc5OTIsIDAuMDA4MDEyLCAwLjAwODAyLCAwLjAwODAyMiwgMC4wMDgwMjUsIDAuMDA4MDI3IiwgXAotICAgICAgICAgICIwLjAwNzgyNiwgMC4wMDc5ODMsIDAuMDA4MDEsIDAuMDA4MDE5LCAwLjAwODAzMywgMC4wMDgwMzYsIDAuMDA4MDM5IiwgXAotICAgICAgICAgICIwLjAwNzgwOCwgMC4wMDc5NzMsIDAuMDA4MDA2LCAwLjAwODAxNiwgMC4wMDgwMjcsIDAuMDA4MDMxLCAwLjAwODAzNSIsIFwKLSAgICAgICAgICAiMC4wMDc4MjQsIDAuMDA3OTY4LCAwLjAwODAwMSwgMC4wMDgwMTMsIDAuMDA4MDI0LCAwLjAwODAzLCAwLjAwODAzNCIsIFwKLSAgICAgICAgICAiMC4wMDc4ODgsIDAuMDA3OTY4LCAwLjAwNzk5NCwgMC4wMDgwMSwgMC4wMDgwMjgsIDAuMDA4MDE0LCAwLjAwODAzMyIsIFwKLSAgICAgICAgICAiMC4wMDc4ODEsIDAuMDA3OTg3LCAwLjAwODAwOSwgMC4wMDgwMTMsIDAuMDA4MDIzLCAwLjAwODAzMywgMC4wMDgwMjgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzE4NiwgMC4wMDMyNDQsIDAuMDAzMjUxLCAwLjAwMzI1MywgMC4wMDMyNTUsIDAuMDAzMjU2LCAwLjAwMzI1NyIsIFwKLSAgICAgICAgICAiMC4wMDI5OTgsIDAuMDAzMTg2LCAwLjAwMzIxNywgMC4wMDMyMjcsIDAuMDAzMjM2LCAwLjAwMzI0MSwgMC4wMDMyNDUiLCBcCi0gICAgICAgICAgIjAuMDAyOTM0LCAwLjAwMzEzNSwgMC4wMDMxODQsIDAuMDAzMjAxLCAwLjAwMzIxNywgMC4wMDMyMjUsIDAuMDAzMjMyIiwgXAotICAgICAgICAgICIwLjAwMjkxMSwgMC4wMDMwOTIsIDAuMDAzMTUzLCAwLjAwMzE3NiwgMC4wMDMxOTcsIDAuMDAzMjA5LCAwLjAwMzIyIiwgXAotICAgICAgICAgICIwLjAwMjk0MiwgMC4wMDMwNzEsIDAuMDAzMTM2LCAwLjAwMzE2LCAwLjAwMzE4NSwgMC4wMDMxOTgsIDAuMDAzMjExIiwgXAotICAgICAgICAgICIwLjAwMzAzMywgMC4wMDMwNTgsIDAuMDAzMTE2LCAwLjAwMzE0MiwgMC4wMDMxNjgsIDAuMDAzMTgzLCAwLjAwMzE5OCIsIFwKLSAgICAgICAgICAiMC4wMDMxMywgMC4wMDMwNjQsIDAuMDAzMTA5LCAwLjAwMzEzMywgMC4wMDMxNTksIDAuMDAzMTc1LCAwLjAwMzE5MSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IE5BTkQ0WDQgKgotICogLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoTkFORDRYNCkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjU4ODQ0NDsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAzMTA0Mzc7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAzMTA0Mzc7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAzMDkwOTk7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxNjM3LCAwLjAwMTYzNSwgMC4wMDE2MzUsIDAuMDAxNjM0LCAwLjAwMTYzNCwgMC4wMDE2MzQsIDAuMDAxNjM0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxNjM5LCAwLjAwMTYzOSwgMC4wMDE2NCwgMC4wMDE2NCwgMC4wMDE2NCwgMC4wMDE2NDEsIDAuMDAxNjQxIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDMxMjg4NTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDMxMjg4NTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDMxMTc5NzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDE2MzcsIDAuMDAxNjM1LCAwLjAwMTYzNSwgMC4wMDE2MzQsIDAuMDAxNjM1LCAwLjAwMTYzNCwgMC4wMDE2MzQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDE2MzksIDAuMDAxNjQsIDAuMDAxNjM5LCAwLjAwMTY0LCAwLjAwMTY0MiwgMC4wMDE2NDEsIDAuMDAxNjQxIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihDKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDMyNDE1MzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDMyNDE1MzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDMyMzE1NjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDE2MzcsIDAuMDAxNjM1LCAwLjAwMTYzNSwgMC4wMDE2MzQsIDAuMDAxNjM1LCAwLjAwMTYzNCwgMC4wMDE2MzQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDE2MzksIDAuMDAxNjQsIDAuMDAxNjM4LCAwLjAwMTY0LCAwLjAwMTY0MSwgMC4wMDE2NDIsIDAuMDAxNjQyIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihEKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDMxMjkyNzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDMxMjY4ODsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDMxMjkyNzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA1NSwgMC4wMDA1NDcsIDAuMDAwNTQ0LCAwLjAwMDU0NiwgMC4wMDA1NDYsIDAuMDAwNTQ2LCAwLjAwMDU0NiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTg1NiwgMC4wMDE4NTksIDAuMDAxODU5LCAwLjAwMTg1OCwgMC4wMDE4NTgsIDAuMDAxODU4LCAwLjAwMTg1OCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjI3MTQ4MjsKLSAgICBmdW5jdGlvbiA6ICIoISgoKEEgQikgQykgRCkpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyNTQ1MywgMC4wOTkzNTIsIDAuMTcxODk2LCAwLjIyMzU3NiwgMC4zMDYxOTgsIDAuMzc4NTIxLCAwLjQ4MTU2NiIsIFwKLSAgICAgICAgICAiMC4wMzU0OTUsIDAuMTA5MjE2LCAwLjE4MTc0OSwgMC4yMzM0MzksIDAuMzE2MTE4LCAwLjM4ODI4NSwgMC40OTEzNzkiLCBcCi0gICAgICAgICAgIjAuMDQ4Mjc1LCAwLjEyMTU3NywgMC4xOTQxMTgsIDAuMjQ1ODA5LCAwLjMyODQyNSwgMC4zOTk4MDUsIDAuNTAyOTY3IiwgXAotICAgICAgICAgICIwLjA1OTY4OCwgMC4xMzQ0NjEsIDAuMjA2OTc1LCAwLjI1ODYzNywgMC4zNDEyNCwgMC40MTM0NzMsIDAuNTE2Njc0IiwgXAotICAgICAgICAgICIwLjA2ODg2OSwgMC4xNDY1MTYsIDAuMjE5MDAyLCAwLjI3MDg3OCwgMC4zNTMzNTksIDAuNDI1NTIzLCAwLjUyODc1MiIsIFwKLSAgICAgICAgICAiMC4wODE0NDEsIDAuMTY3MzExLCAwLjIzOTA2NywgMC4yOTA2OSwgMC4zNzM2MTEsIDAuNDQ1Njk4LCAwLjU0ODc3MSIsIFwKLSAgICAgICAgICAiMC4wOTE0MDgsIDAuMTg1MTk0LCAwLjI1NzMwNiwgMC4zMDgyMjMsIDAuMzkwNzYyLCAwLjQ2MzM4NSwgMC41NjYzODciKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDM3NjYsIDAuMTkyNjk3LCAwLjM0MTMzOCwgMC40NDc5NzQsIDAuNjE3OTMyLCAwLjc2NjU4MywgMC45Nzg2MDEiLCBcCi0gICAgICAgICAgIjAuMDQ1NDY5LCAwLjE5MjYyNSwgMC4zNDEzNTcsIDAuNDQ3ODU3LCAwLjYxNzcwMiwgMC43NjYyMTUsIDAuOTc4OCIsIFwKLSAgICAgICAgICAiMC4wNTIxMiwgMC4xOTMxMzUsIDAuMzQxMzcyLCAwLjQ0NzU2MywgMC42MTc1MTQsIDAuNzY2MjAxLCAwLjk3ODYyNCIsIFwKLSAgICAgICAgICAiMC4wNjA0ODYsIDAuMTk2MDksIDAuMzQxNTQ2LCAwLjQ0NzU1MywgMC42MTc3MTksIDAuNzY2MjEsIDAuOTc4NzI2IiwgXAotICAgICAgICAgICIwLjA3MDA2MiwgMC4yMDExLCAwLjM0MzQ5MiwgMC40NDgwMTMsIDAuNjE3NTAzLCAwLjc2NjczMywgMC45Nzg5ODMiLCBcCi0gICAgICAgICAgIjAuMDg0MDI4LCAwLjIxMDMzMiwgMC4zNDkzMTMsIDAuNDUxODIyLCAwLjYxODIyOCwgMC43NjYyODksIDAuOTc5MTY0IiwgXAotICAgICAgICAgICIwLjA5NTI2MywgMC4yMjA0NDksIDAuMzU1ODU0LCAwLjQ1NjcxMiwgMC42MjEwMjUsIDAuNzY3MjIyLCAwLjk3ODYyNSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5MDc2OCwgMC4zNjMzMDIsIDAuNjM1NTQyLCAwLjgzMDE2NSwgMS4xNDE5MiwgMS40MTM2NiwgMS44MDMyOCIsIFwKLSAgICAgICAgICAiMC4wOTg5MjMsIDAuMzcyMTY3LCAwLjY0NDg4MSwgMC44MzkwNiwgMS4xNTA4NCwgMS40MjI1OSwgMS44MTE2NSIsIFwKLSAgICAgICAgICAiMC4xMDc4MjQsIDAuMzgxMiwgMC42NTQwNjMsIDAuODQ4MTg2LCAxLjE1OTg0LCAxLjQzMTQ5LCAxLjgyMTc4IiwgXAotICAgICAgICAgICIwLjExNjA2LCAwLjM4OTY2LCAwLjY2MjUzLCAwLjg1NjU4MSwgMS4xNjgyMiwgMS40NDAxNywgMS44Mjk3NiIsIFwKLSAgICAgICAgICAiMC4xMjM5MTcsIDAuMzk3MzA3LCAwLjY2OTk1MiwgMC44NjQ1MTUsIDEuMTc1NzQsIDEuNDQ4NTMsIDEuODM3NTUiLCBcCi0gICAgICAgICAgIjAuMTM1OTE1LCAwLjQwOTQxMywgMC42ODIxOTcsIDAuODc2NjY1LCAxLjE4Nzk3LCAxLjQ2MDM5LCAxLjg0OTY1IiwgXAotICAgICAgICAgICIwLjE0NTQzOSwgMC40MTk2NjUsIDAuNjkyNTMzLCAwLjg4NzM1NSwgMS4xOTg0OCwgMS40NzA3NiwgMS44NjA1OSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEzNzE0OCwgMC42Njk1NTgsIDEuMjAyMzEsIDEuNTgzMDYsIDIuMTk0ODgsIDIuNzI0ODIsIDMuNDkwMTEiLCBcCi0gICAgICAgICAgIjAuMTM3MTU2LCAwLjY2OTUyMiwgMS4yMDQxOCwgMS41ODI5OSwgMi4xOTQ4NiwgMi43MjQ2OSwgMy40ODYwMyIsIFwKLSAgICAgICAgICAiMC4xMzcxOTYsIDAuNjcwNzc5LCAxLjIwMzk5LCAxLjU4MjU1LCAyLjE5Mzk2LCAyLjcyODk5LCAzLjQ4MTUzIiwgXAotICAgICAgICAgICIwLjEzNzg2LCAwLjY3MDM0MSwgMS4yMDExMiwgMS41ODU2MiwgMi4xOTM4NCwgMi43MjQwNiwgMy40ODk0NyIsIFwKLSAgICAgICAgICAiMC4xMzkyMTUsIDAuNjcwNzY3LCAxLjIwMjU3LCAxLjU4Mjc3LCAyLjE5MTU0LCAyLjcyMjg5LCAzLjQ4NTA3IiwgXAotICAgICAgICAgICIwLjE0MjM2NCwgMC42Njk3MSwgMS4yMDI0OCwgMS41ODI3NSwgMi4xOTI1MywgMi43MjQ0NCwgMy40ODU0NCIsIFwKLSAgICAgICAgICAiMC4xNDYyMiwgMC42NzEyNTksIDEuMjAyNDMsIDEuNTg0NCwgMi4xOTE0NywgMi43MjQzMywgMy40ODk5OSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyNDcxMSwgMC4wOTgwNzUsIDAuMTcwNjgxLCAwLjIyMjU4MSwgMC4zMDU0MzIsIDAuMzc3OTc0LCAwLjQ4MTU2MSIsIFwKLSAgICAgICAgICAiMC4wMzQ2OTgsIDAuMTA3OTQ2LCAwLjE4MDYwNCwgMC4yMzI0MzcsIDAuMzE1MjMsIDAuMzg3NzkxLCAwLjQ5MTQ5MyIsIFwKLSAgICAgICAgICAiMC4wNDcyNDYsIDAuMTIwMjkxLCAwLjE5Mjk1OSwgMC4yNDQ3ODEsIDAuMzI3NjkyLCAwLjM5OTMyMiwgMC41MDI4NzQiLCBcCi0gICAgICAgICAgIjAuMDU4MDg4LCAwLjEzMjg4NCwgMC4yMDU1MzgsIDAuMjU3Mzc2LCAwLjM0MDI2LCAwLjQxMjcwNywgMC41MTYxMzQiLCBcCi0gICAgICAgICAgIjAuMDY2OSwgMC4xNDUxNTksIDAuMjE3NzI5LCAwLjI2OTcsIDAuMzUyNDI3LCAwLjQyNDg2LCAwLjUyODMwOSIsIFwKLSAgICAgICAgICAiMC4wNzk2NywgMC4xNjU4NDYsIDAuMjM3NjgyLCAwLjI4OTQzNSwgMC4zNzI1MzIsIDAuNDQzNjgzLCAwLjU0ODQxNyIsIFwKLSAgICAgICAgICAiMC4wODg4MDIsIDAuMTgzNTQ2LCAwLjI1NTE3NywgMC4zMDY5MTYsIDAuMzg5NzM3LCAwLjQ2MjQ5OSwgMC41NjU4NzkiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDE2NDcsIDAuMTkxMTc1LCAwLjM0MDMyLCAwLjQ0NzE1LCAwLjYxODA3OSwgMC43NjcxOTMsIDAuOTgwNTQ0IiwgXAotICAgICAgICAgICIwLjA0MzQ4MiwgMC4xOTA5OTIsIDAuMzQwMzM4LCAwLjQ0NzE1NywgMC42MTc3LCAwLjc2NzQ2OSwgMC45ODA1OTkiLCBcCi0gICAgICAgICAgIjAuMDUwNDUzLCAwLjE5MTU0LCAwLjM0MDQ0NywgMC40NDcwMTMsIDAuNjE3ODE2LCAwLjc2Njk4NywgMC45ODA2MTMiLCBcCi0gICAgICAgICAgIjAuMDU5MDU5LCAwLjE5NDY4NiwgMC4zNDA1OTcsIDAuNDQ3MTc1LCAwLjYxNzY4MywgMC43NjY5MjgsIDAuOTgwNTYzIiwgXAotICAgICAgICAgICIwLjA2ODk2NiwgMC4xOTk4ODMsIDAuMzQyNjM0LCAwLjQ0NzQyMywgMC42MTc2MDgsIDAuNzY2ODk1LCAwLjk4MDU1MyIsIFwKLSAgICAgICAgICAiMC4wODE1OTQsIDAuMjA5NTExLCAwLjM0ODU2NCwgMC40NTEwODQsIDAuNjE4NjcsIDAuNzY2ODk2LCAwLjk4MDUyMSIsIFwKLSAgICAgICAgICAiMC4wOTI5NDMsIDAuMjE5NjY0LCAwLjM1NTg5NiwgMC40NTY0MTcsIDAuNjIxMzE2LCAwLjc2ODE0NiwgMC45ODAyMjYiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODc0MzksIDAuMzU5OTkxLCAwLjYzMjE3OCwgMC44MjcxNzksIDEuMTM3ODgsIDEuNDExMDQsIDEuNzk5MyIsIFwKLSAgICAgICAgICAiMC4wOTU0NjcsIDAuMzY4ODI5LCAwLjY0MTA1MSwgMC44MzU2NjcsIDEuMTQ2NjUsIDEuNDE5MjMsIDEuODA3NTUiLCBcCi0gICAgICAgICAgIjAuMTA0NzQzLCAwLjM3ODE2OSwgMC42NTA3MjUsIDAuODQ1NTkxLCAxLjE1NjYyLCAxLjQyODYsIDEuODE3NzMiLCBcCi0gICAgICAgICAgIjAuMTEzNTYxLCAwLjM4NzI0MiwgMC42NTk5OTQsIDAuODU0MTY2LCAxLjE2NTU3LCAxLjQzOCwgMS44MjY5OCIsIFwKLSAgICAgICAgICAiMC4xMjIzNSwgMC4zOTU4MDUsIDAuNjY4NTQyLCAwLjg2Mjk1OCwgMS4xNzQ2MywgMS40NDY3NSwgMS44MzUzMyIsIFwKLSAgICAgICAgICAiMC4xMzYxNTMsIDAuNDA5ODkzLCAwLjY4MjczMiwgMC44NzcwNDIsIDEuMTg4MywgMS40NjA3NSwgMS44NDk1NyIsIFwKLSAgICAgICAgICAiMC4xNDcyNTIsIDAuNDIyMDY4LCAwLjY5NTA1MiwgMC44ODk0OTUsIDEuMjAxMTMsIDEuNDc0MTYsIDEuODYyMTQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMzcxNDgsIDAuNjY5NjU5LCAxLjIwNDQxLCAxLjU4NTA0LCAyLjE5MTg0LCAyLjcyODQ2LCAzLjQ4NjE5IiwgXAotICAgICAgICAgICIwLjEzNzE1MywgMC42NzA1ODQsIDEuMjAyMzksIDEuNTgxNDksIDIuMTkxNjYsIDIuNzIxOTMsIDMuNDkxMzQiLCBcCi0gICAgICAgICAgIjAuMTM2OTYyLCAwLjY2OTYxOCwgMS4yMDIzNSwgMS41ODQ4OSwgMi4xOTE5OSwgMi43MjM3OCwgMy40ODU2NSIsIFwKLSAgICAgICAgICAiMC4xMzg1MDgsIDAuNjcwNTE2LCAxLjIwNDA0LCAxLjU4Mjg3LCAyLjE4OTU0LCAyLjcyMzk3LCAzLjQ4NTk4IiwgXAotICAgICAgICAgICIwLjE0MDYzLCAwLjY3MDc3MywgMS4yMDI0NiwgMS41ODI3NCwgMi4xOTM5LCAyLjcyNDIyLCAzLjQ4NTIiLCBcCi0gICAgICAgICAgIjAuMTQ1Nzc4LCAwLjY3MDQzLCAxLjIwMzY4LCAxLjU4Mjc2LCAyLjE5MTI3LCAyLjcyNDI0LCAzLjQ4NTE5IiwgXAotICAgICAgICAgICIwLjE1MTYxNCwgMC42NzA3NjEsIDEuMjAzNDcsIDEuNTgyNTcsIDIuMTkzNzcsIDIuNzI4MzcsIDMuNDg2NzIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjMxNTIsIDAuMDk1OTQ2LCAwLjE2ODUyLCAwLjIyMDQ2MSwgMC4zMDMyNDcsIDAuMzc1NzgyLCAwLjQ3OTQwOCIsIFwKLSAgICAgICAgICAiMC4wMzMyNjUsIDAuMTA1ODQ5LCAwLjE3ODQxOSwgMC4yMzAxOSwgMC4zMTMwNzQsIDAuMzg1NjEzLCAwLjQ4OTE1MiIsIFwKLSAgICAgICAgICAiMC4wNDU1NywgMC4xMTgzNDQsIDAuMTkwOTA4LCAwLjI0Mjc3OSwgMC4zMjQ4NjcsIDAuMzk3MjUyLCAwLjUwMDc4NCIsIFwKLSAgICAgICAgICAiMC4wNTU4NTMsIDAuMTMwOTMxLCAwLjIwMzQ4MSwgMC4yNTU0NiwgMC4zMzgyNjEsIDAuNDA5OTc0LCAwLjUxMzQ4OCIsIFwKLSAgICAgICAgICAiMC4wNjQyMTUsIDAuMTQzMjQyLCAwLjIxNTc0NywgMC4yNjc2NzksIDAuMzUwNDYsIDAuNDIyODYyLCAwLjUyNjY0NCIsIFwKLSAgICAgICAgICAiMC4wNzY0NjksIDAuMTYzOTM4LCAwLjIzNTY4NiwgMC4yODc0MDksIDAuMzcwNTEzLCAwLjQ0MjQ4OCwgMC41NDY0NzkiLCBcCi0gICAgICAgICAgIjAuMDg1MjUzLCAwLjE4MTgwNiwgMC4yNTMxNzQsIDAuMzA0OSwgMC4zODc3NDksIDAuNDYwNDgxLCAwLjU2Mzg1NiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzOTEyNSwgMC4xODg2NTksIDAuMzM4MzAzLCAwLjQ0NSwgMC42MTU5ODgsIDAuNzY1MzAyLCAwLjk3ODk2NyIsIFwKLSAgICAgICAgICAiMC4wNDEzMSwgMC4xODg2MzYsIDAuMzM4MTAzLCAwLjQ0NDg1NywgMC42MTU5MTgsIDAuNzY1NTc0LCAwLjk3ODk1MSIsIFwKLSAgICAgICAgICAiMC4wNDg3MTQsIDAuMTg5MzA5LCAwLjMzODEwOSwgMC40NDUwMDcsIDAuNjE1ODY0LCAwLjc2NTE0MiwgMC45Nzg5NjgiLCBcCi0gICAgICAgICAgIjAuMDU3NzEyLCAwLjE5MjUwMiwgMC4zMzg0MzksIDAuNDQ1MDAyLCAwLjYxNTg0OCwgMC43NjUxNDcsIDAuOTc5MDI1IiwgXAotICAgICAgICAgICIwLjA2NzU1NiwgMC4xOTc3MTQsIDAuMzQwNDAxLCAwLjQ0NTMzNSwgMC42MTU2NiwgMC43NjUxNSwgMC45Nzg5NjkiLCBcCi0gICAgICAgICAgIjAuMDgwMDA0LCAwLjIwNzY0NCwgMC4zNDY1NzcsIDAuNDQ5MDI3LCAwLjYxNjYwMSwgMC43NjUzNzQsIDAuOTc4OTE5IiwgXAotICAgICAgICAgICIwLjA5MTExNywgMC4yMTgwMywgMC4zNTM5NzQsIDAuNDU0NDg0LCAwLjYxOTI4NCwgMC43NjYzNDIsIDAuOTc4NjgyIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDgwNDQ4LCAwLjM1MzI3NywgMC42MjU2MjMsIDAuODE5NTk2LCAxLjEzMTUzLCAxLjQwMzMsIDEuNzkyNzIiLCBcCi0gICAgICAgICAgIjAuMDg4MzIyLCAwLjM2MTQ0OCwgMC42MzM3NDEsIDAuODI4Mjk5LCAxLjEzOTM5LCAxLjQxMTc1LCAxLjgwMDUxIiwgXAotICAgICAgICAgICIwLjA5ODIzOSwgMC4zNzE2NjQsIDAuNjQ0NDgsIDAuODM4NjU5LCAxLjE1MDI3LCAxLjQyMjE3LCAxLjgxMTczIiwgXAotICAgICAgICAgICIwLjEwODIyNiwgMC4zODE5ODMsIDAuNjU0NDA3LCAwLjg0OTUyLCAxLjE2MDI3LCAxLjQzMzAzLCAxLjgyMTQ3IiwgXAotICAgICAgICAgICIwLjExODM5OSwgMC4zOTE5NDMsIDAuNjY0NTk2LCAwLjg1OTcwNSwgMS4xNzA3OSwgMS40NDI4OSwgMS44MzIzIiwgXAotICAgICAgICAgICIwLjEzNDU4MiwgMC40MDgzNjEsIDAuNjgxMzI3LCAwLjg3NTcyOSwgMS4xODc5NywgMS40NTkzNCwgMS44NDkxNSIsIFwKLSAgICAgICAgICAiMC4xNDcyMTcsIDAuNDIyNTA4LCAwLjY5NTYyNSwgMC44OTAyNDgsIDEuMjAxODQsIDEuNDc0MDEsIDEuODYyODIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMzcxNDIsIDAuNjY4OTU4LCAxLjIwNDAxLCAxLjU4NTUyLCAyLjE5NDc4LCAyLjcyNDg0LCAzLjQ4MjA1IiwgXAotICAgICAgICAgICIwLjEzNjc5NiwgMC42Njk1NTEsIDEuMjA0MzQsIDEuNTgyNTcsIDIuMTk1NTEsIDIuNzIzOTYsIDMuNDkxNSIsIFwKLSAgICAgICAgICAiMC4xMzczOTQsIDAuNjY5NTg0LCAxLjIwMzg3LCAxLjU4Mjg3LCAyLjE5MzkxLCAyLjcyMzk3LCAzLjQ4OTM3IiwgXAotICAgICAgICAgICIwLjEzOTg0OSwgMC42NzAzMTIsIDEuMjAyMjgsIDEuNTg1MTMsIDIuMTkxNDEsIDIuNzI3MzEsIDMuNDg0OCIsIFwKLSAgICAgICAgICAiMC4xNDM3OTgsIDAuNjY5NTIsIDEuMjAyMywgMS41ODEwOSwgMi4xOTM4MSwgMi43MjQxMiwgMy40ODk0IiwgXAotICAgICAgICAgICIwLjE1MjMyMSwgMC42NzA5MTYsIDEuMjAyNTUsIDEuNTg1NjksIDIuMTk1NCwgMi43MjkzNSwgMy40ODk2OCIsIFwKLSAgICAgICAgICAiMC4xNjA2ODYsIDAuNjcyMTY5LCAxLjIwMjM5LCAxLjU4MjMxLCAyLjE5Mzg1LCAyLjcyNDE4LCAzLjQ5MTgzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkQiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDIxMDc2LCAwLjA5MzM5MSwgMC4xNjU3NzIsIDAuMjE3MzQ0LCAwLjI5OTk1NywgMC4zNzIzMDksIDAuNDc1NDYiLCBcCi0gICAgICAgICAgIjAuMDMxMTI2LCAwLjEwMzI1NCwgMC4xNzU2MDUsIDAuMjI3MTcyLCAwLjMwOTc4NiwgMC4zODIwNiwgMC40ODU0MzEiLCBcCi0gICAgICAgICAgIjAuMDQzMTc2LCAwLjExNTc2MywgMC4xODgxMDcsIDAuMjM5ODE2LCAwLjMyMTU1OCwgMC4zOTM3NTQsIDAuNDk3MDE5IiwgXAotICAgICAgICAgICIwLjA1MjU1OSwgMC4xMjgyNDUsIDAuMjAwNjk4LCAwLjI1MjI1NiwgMC4zMzQ4MSwgMC40MDcwOTgsIDAuNTEwMzE4IiwgXAotICAgICAgICAgICIwLjA2MDU2OCwgMC4xNDExOTEsIDAuMjEzMDMxLCAwLjI2NDgyNywgMC4zNDc0NjYsIDAuNDE5NTIyLCAwLjUyMzA4NCIsIFwKLSAgICAgICAgICAiMC4wNzEzNzksIDAuMTYxNTIsIDAuMjMzMDYzLCAwLjI4NDY2NCwgMC4zNjc1NDcsIDAuNDM5Mjg2LCAwLjU0MzAxNCIsIFwKLSAgICAgICAgICAiMC4wODAwMjUsIDAuMTc5NTA1LCAwLjI1MTMzNCwgMC4zMDIxNzQsIDAuMzg0NjcyLCAwLjQ1NzQxNCwgMC41NjAzNCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzNjQ0MywgMC4xODU3OTYsIDAuMzM0NzIzLCAwLjQ0MTAyNCwgMC42MTEzNjgsIDAuNzYxMzMzLCAwLjk3NTU0IiwgXAotICAgICAgICAgICIwLjAzOTA2LCAwLjE4NTQ4MywgMC4zMzQ3MTIsIDAuNDQxNzczLCAwLjYxMTQ4OCwgMC43NjA2MTUsIDAuOTczODA2IiwgXAotICAgICAgICAgICIwLjA0NjgzLCAwLjE4NjI0OCwgMC4zMzQ2OTQsIDAuNDQxMjEzLCAwLjYxMTUyNywgMC43NjA2MDYsIDAuOTc0NDM3IiwgXAotICAgICAgICAgICIwLjA1NjUxMywgMC4xODk3NzEsIDAuMzM0ODMxLCAwLjQ0MTI2MiwgMC42MTE5ODUsIDAuNzYwNzksIDAuOTczNDI5IiwgXAotICAgICAgICAgICIwLjA2NTkxNywgMC4xOTQ1MTgsIDAuMzM2OTk0LCAwLjQ0MjUxOCwgMC42MTE2ODEsIDAuNzYwNTQsIDAuOTczNzI2IiwgXAotICAgICAgICAgICIwLjA3OTg4NiwgMC4yMDQ3MTksIDAuMzQzODksIDAuNDQ1MzY2LCAwLjYxMzE1MiwgMC43NjIxMzEsIDAuOTczODQ1IiwgXAotICAgICAgICAgICIwLjA4OTQ4NiwgMC4yMTUxNzQsIDAuMzUwMDQxLCAwLjQ1MTY2OCwgMC42MTYzNjMsIDAuNzYyMjM5LCAwLjk3MjkyMiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2OTQwMSwgMC4zNDE5OTMsIDAuNjE0NTk2LCAwLjgwODkxLCAxLjEyMDIsIDEuMzkxOTQsIDEuNzgyMjMiLCBcCi0gICAgICAgICAgIjAuMDc3MDE1LCAwLjM1MDI5NiwgMC42MjI2MjEsIDAuODE3MTQ3LCAxLjEyODE4LCAxLjQwMDQ2LCAxLjc4OTM2IiwgXAotICAgICAgICAgICIwLjA4NzA0NywgMC4zNjAzNTcsIDAuNjMzMDg3LCAwLjgyNzQxLCAxLjEzODUzLCAxLjQxMTY3LCAxLjgwMDU2IiwgXAotICAgICAgICAgICIwLjA5NzcyMSwgMC4zNzA5MjMsIDAuNjQzNTE0LCAwLjgzODA3NywgMS4xNDk2OSwgMS40MjE2OCwgMS44MTEyMyIsIFwKLSAgICAgICAgICAiMC4xMDgzMiwgMC4zODEyNDMsIDAuNjU0MDU2LCAwLjg0ODM5LCAxLjE1OTQ5LCAxLjQzMjI3LCAxLjgyMTAyIiwgXAotICAgICAgICAgICIwLjEyNTYwOSwgMC4zOTc3MTYsIDAuNjcwMzI1LCAwLjg2NTEzMiwgMS4xNzYwMywgMS40NDk2OCwgMS44MzczNCIsIFwKLSAgICAgICAgICAiMC4xMzk0NjYsIDAuNDEyNTUsIDAuNjg0OTc0LCAwLjg3OTYwNSwgMS4xOTEwNSwgMS40NjMwMiwgMS44NTM0OCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEzNjk4NSwgMC42Njk2MiwgMS4yMDM5NiwgMS41ODE0MSwgMi4xOTM5LCAyLjcyOTEyLCAzLjQ5MDkyIiwgXAotICAgICAgICAgICIwLjEzNTc4NSwgMC42NjkxNjksIDEuMjA0MzgsIDEuNTgyNzksIDIuMTk1MzUsIDIuNzI0NTIsIDMuNDg1MTciLCBcCi0gICAgICAgICAgIjAuMTM3NTMyLCAwLjY3MDczNCwgMS4yMDA4MywgMS41ODI2NSwgMi4xOTU1LCAyLjcyNzk5LCAzLjQ4OTQ0IiwgXAotICAgICAgICAgICIwLjE0MjAzOSwgMC42Njk1OCwgMS4yMDIzNCwgMS41ODI2NCwgMi4xOTQwMSwgMi43MjQxLCAzLjQ4OTU3IiwgXAotICAgICAgICAgICIwLjE0ODMzMSwgMC42NzAyNjgsIDEuMjAzODksIDEuNTgzLCAyLjE5MTU4LCAyLjcyMjg0LCAzLjQ4MjU1IiwgXAotICAgICAgICAgICIwLjE2MDIxLCAwLjY3MDMyMSwgMS4yMDIyOSwgMS41ODMxNiwgMi4xOTU0NSwgMi43MjE2OSwgMy40ODUxOSIsIFwKLSAgICAgICAgICAiMC4xNzEzMjIsIDAuNjcyOTIyLCAxLjIwMTM1LCAxLjU4MjkxLCAyLjE5MTk5LCAyLjcyNDIzLCAzLjQ5MTIxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTUzMjgsIDAuMDE1MzMsIDAuMDE1MzI5LCAwLjAxNTMyNywgMC4wMTUzMjYsIDAuMDE1MzI3LCAwLjAxNTMyNCIsIFwKLSAgICAgICAgICAiMC4wMTUyMzcsIDAuMDE1MjUzLCAwLjAxNTI1NiwgMC4wMTUyNTYsIDAuMDE1MjU2LCAwLjAxNTI1NSwgMC4wMTUyNTQiLCBcCi0gICAgICAgICAgIjAuMDE1MjExLCAwLjAxNTIyOSwgMC4wMTUyNDEsIDAuMDE1MjQxLCAwLjAxNTI0MSwgMC4wMTUyMzIsIDAuMDE1MjMxIiwgXAotICAgICAgICAgICIwLjAxNTE5OCwgMC4wMTUyMjgsIDAuMDE1MjM0LCAwLjAxNTIzNiwgMC4wMTUyMzgsIDAuMDE1MjM1LCAwLjAxNTI0NSIsIFwKLSAgICAgICAgICAiMC4wMTUyMywgMC4wMTUyMjksIDAuMDE1MjM1LCAwLjAxNTI0LCAwLjAxNTIzNCwgMC4wMTUyMzcsIDAuMDE1MjM2IiwgXAotICAgICAgICAgICIwLjAxNTI5OCwgMC4wMTUyNTQsIDAuMDE1MjQxLCAwLjAxNTI0LCAwLjAxNTI0LCAwLjAxNTIzMiwgMC4wMTUyMzMiLCBcCi0gICAgICAgICAgIjAuMDE1Mzc3LCAwLjAxNTI4MSwgMC4wMTUyNjEsIDAuMDE1MjQ3LCAwLjAxNTI0NCwgMC4wMTUyNDcsIDAuMDE1MjQzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI4NjcsIDAuMDAyOTE2LCAwLjAwMjkyMiwgMC4wMDI5MjQsIDAuMDAyOTI2LCAwLjAwMjkyNywgMC4wMDI5MjciLCBcCi0gICAgICAgICAgIjAuMDAyNzA0LCAwLjAwMjg2NSwgMC4wMDI4OTMsIDAuMDAyOTAyLCAwLjAwMjkxLCAwLjAwMjkxNCwgMC4wMDI5MTciLCBcCi0gICAgICAgICAgIjAuMDAyNTk5LCAwLjAwMjgxMSwgMC4wMDI4NTksIDAuMDAyODc1LCAwLjAwMjg5MywgMC4wMDI4OTcsIDAuMDAyOTA0IiwgXAotICAgICAgICAgICIwLjAwMjU0NiwgMC4wMDI3NjUsIDAuMDAyODI3LCAwLjAwMjg0OSwgMC4wMDI4NywgMC4wMDI4ODEsIDAuMDAyODkxIiwgXAotICAgICAgICAgICIwLjAwMjUxNCwgMC4wMDI3MjgsIDAuMDAyOCwgMC4wMDI4MjYsIDAuMDAyODU0LCAwLjAwMjg2NiwgMC4wMDI4OCIsIFwKLSAgICAgICAgICAiMC4wMDI0ODQsIDAuMDAyNjgyLCAwLjAwMjc2MywgMC4wMDI3OTUsIDAuMDAyODI3LCAwLjAwMjg0NSwgMC4wMDI4NjIiLCBcCi0gICAgICAgICAgIjAuMDAyNDY5LCAwLjAwMjY0OSwgMC4wMDI3MzMsIDAuMDAyNzY4LCAwLjAwMjgwNSwgMC4wMDI4MjUsIDAuMDAyODQ2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTMxNywgMC4wMTMxNzYsIDAuMDEzMTczLCAwLjAxMzE3NSwgMC4wMTMxNzUsIDAuMDEzMTcyLCAwLjAxMzE3MyIsIFwKLSAgICAgICAgICAiMC4wMTMwODUsIDAuMDEzMTI1LCAwLjAxMzEzMiwgMC4wMTMxMzQsIDAuMDEzMTM0LCAwLjAxMzEzNSwgMC4wMTMxMzMiLCBcCi0gICAgICAgICAgIjAuMDEzMDU3LCAwLjAxMzExLCAwLjAxMzExOSwgMC4wMTMxMjMsIDAuMDEzMTI2LCAwLjAxMzEyMSwgMC4wMTMxMzIiLCBcCi0gICAgICAgICAgIjAuMDEzMDMsIDAuMDEzMDk0LCAwLjAxMzEwOCwgMC4wMTMxMTIsIDAuMDEzMTE5LCAwLjAxMzEyLCAwLjAxMzEyMSIsIFwKLSAgICAgICAgICAiMC4wMTMwOTUsIDAuMDEzMTExLCAwLjAxMzEyLCAwLjAxMzEyNCwgMC4wMTMxMjIsIDAuMDEzMTI4LCAwLjAxMzEyMyIsIFwKLSAgICAgICAgICAiMC4wMTMwNzgsIDAuMDEzMTQxLCAwLjAxMzEyOSwgMC4wMTMxMywgMC4wMTMxMzIsIDAuMDEzMDk4LCAwLjAxMzEyOSIsIFwKLSAgICAgICAgICAiMC4wMTMxMjUsIDAuMDEzMTcxLCAwLjAxMzE0NSwgMC4wMTMxNDIsIDAuMDEzMTM5LCAwLjAxMzEzOSwgMC4wMTMxMzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjg2OSwgMC4wMDI5MTgsIDAuMDAyOTI0LCAwLjAwMjkyNiwgMC4wMDI5MjgsIDAuMDAyOTI5LCAwLjAwMjkyOSIsIFwKLSAgICAgICAgICAiMC4wMDI3MDUsIDAuMDAyODcxLCAwLjAwMjg5NSwgMC4wMDI5MDQsIDAuMDAyOTEyLCAwLjAwMjkxNSwgMC4wMDI5MTkiLCBcCi0gICAgICAgICAgIjAuMDAyNjAyLCAwLjAwMjgxMiwgMC4wMDI4NiwgMC4wMDI4NzYsIDAuMDAyODkxLCAwLjAwMjksIDAuMDAyOTA4IiwgXAotICAgICAgICAgICIwLjAwMjU0NywgMC4wMDI3NjgsIDAuMDAyODMsIDAuMDAyODUyLCAwLjAwMjg3MiwgMC4wMDI4ODMsIDAuMDAyODk0IiwgXAotICAgICAgICAgICIwLjAwMjUxNSwgMC4wMDI3MzIsIDAuMDAyODAzLCAwLjAwMjgzLCAwLjAwMjg1NSwgMC4wMDI4NjksIDAuMDAyODgyIiwgXAotICAgICAgICAgICIwLjAwMjQ4NiwgMC4wMDI2ODQsIDAuMDAyNzY1LCAwLjAwMjc5NywgMC4wMDI4MjksIDAuMDAyODQ3LCAwLjAwMjg2NCIsIFwKLSAgICAgICAgICAiMC4wMDI0NzUsIDAuMDAyNjUzLCAwLjAwMjczNywgMC4wMDI3NzIsIDAuMDAyODA4LCAwLjAwMjgyOSwgMC4wMDI4NDkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMDgwNSwgMC4wMTA4MTksIDAuMDEwODIsIDAuMDEwODIsIDAuMDEwODIxLCAwLjAxMDgyLCAwLjAxMDgyMSIsIFwKLSAgICAgICAgICAiMC4wMTA3NTYsIDAuMDEwODMzLCAwLjAxMDg0NCwgMC4wMTA4NDYsIDAuMDEwODQ5LCAwLjAxMDg1MSwgMC4wMTA4NTIiLCBcCi0gICAgICAgICAgIjAuMDEwNzI3LCAwLjAxMDgyMiwgMC4wMTA4NCwgMC4wMTA4NDQsIDAuMDEwODUxLCAwLjAxMDg1NCwgMC4wMTA4NTUiLCBcCi0gICAgICAgICAgIjAuMDEwNjk4LCAwLjAxMDgwNiwgMC4wMTA4MjUsIDAuMDEwODQxLCAwLjAxMDg0NCwgMC4wMTA4NDksIDAuMDEwODUyIiwgXAotICAgICAgICAgICIwLjAxMDc1MSwgMC4wMTA4MTgsIDAuMDEwODM5LCAwLjAxMDg0NSwgMC4wMTA4NDksIDAuMDEwODU1LCAwLjAxMDg1NCIsIFwKLSAgICAgICAgICAiMC4wMTA3MzYsIDAuMDEwODQyLCAwLjAxMDg0NSwgMC4wMTA4NTEsIDAuMDEwODU2LCAwLjAxMDgzOCwgMC4wMTA4NTciLCBcCi0gICAgICAgICAgIjAuMDEwNzgyLCAwLjAxMDg2OSwgMC4wMTA4NTgsIDAuMDEwODYyLCAwLjAxMDg2MywgMC4wMTA4NjUsIDAuMDEwODYzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI4NjksIDAuMDAyOTE5LCAwLjAwMjkyNCwgMC4wMDI5MjYsIDAuMDAyOTI4LCAwLjAwMjkyOCwgMC4wMDI5MjkiLCBcCi0gICAgICAgICAgIjAuMDAyNzAyLCAwLjAwMjg2NywgMC4wMDI4OTUsIDAuMDAyOTAzLCAwLjAwMjkxMSwgMC4wMDI5MTUsIDAuMDAyOTE5IiwgXAotICAgICAgICAgICIwLjAwMjU5OSwgMC4wMDI4MTIsIDAuMDAyODYsIDAuMDAyODc2LCAwLjAwMjg5MSwgMC4wMDI4OTksIDAuMDAyOTA2IiwgXAotICAgICAgICAgICIwLjAwMjU0OSwgMC4wMDI3NjksIDAuMDAyODMsIDAuMDAyODUyLCAwLjAwMjg3MywgMC4wMDI4ODMsIDAuMDAyODk0IiwgXAotICAgICAgICAgICIwLjAwMjUyLCAwLjAwMjczMywgMC4wMDI4MDQsIDAuMDAyODMsIDAuMDAyODU1LCAwLjAwMjg2OSwgMC4wMDI4ODIiLCBcCi0gICAgICAgICAgIjAuMDAyNTAzLCAwLjAwMjY4OSwgMC4wMDI3NjcsIDAuMDAyNzk5LCAwLjAwMjgzLCAwLjAwMjg0OCwgMC4wMDI4NjQiLCBcCi0gICAgICAgICAgIjAuMDAyNTA1LCAwLjAwMjY2MSwgMC4wMDI3NDIsIDAuMDAyNzc2LCAwLjAwMjgxMSwgMC4wMDI4MzEsIDAuMDAyODUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJEIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwODI4OCwgMC4wMDgzMywgMC4wMDgzMzQsIDAuMDA4MzM1LCAwLjAwODMzNywgMC4wMDgzMzgsIDAuMDA4MzM3IiwgXAotICAgICAgICAgICIwLjAwODI0MSwgMC4wMDgzNzQsIDAuMDA4MzkxLCAwLjAwODM5OSwgMC4wMDg0MDIsIDAuMDA4NDA1LCAwLjAwODQwNyIsIFwKLSAgICAgICAgICAiMC4wMDgyMTMsIDAuMDA4MzY0LCAwLjAwODM4OSwgMC4wMDgzOTgsIDAuMDA4NDEzLCAwLjAwODQxOCwgMC4wMDg0MjEiLCBcCi0gICAgICAgICAgIjAuMDA4MTkxLCAwLjAwODM0NywgMC4wMDgzODUsIDAuMDA4Mzk0LCAwLjAwODQwNSwgMC4wMDg0MTEsIDAuMDA4NDE0IiwgXAotICAgICAgICAgICIwLjAwODIwNCwgMC4wMDgzNDgsIDAuMDA4MzgxLCAwLjAwODM4OSwgMC4wMDg0MDQsIDAuMDA4NDA5LCAwLjAwODQxNCIsIFwKLSAgICAgICAgICAiMC4wMDgyNjgsIDAuMDA4MzUyLCAwLjAwODM3OCwgMC4wMDgzOTEsIDAuMDA4NDAzLCAwLjAwODM5MywgMC4wMDg0MTIiLCBcCi0gICAgICAgICAgIjAuMDA4MjYsIDAuMDA4MzY3LCAwLjAwODM4OCwgMC4wMDgzOTUsIDAuMDA4NDAzLCAwLjAwODQwOSwgMC4wMDg0MzciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjg1NiwgMC4wMDI5MTQsIDAuMDAyOTIxLCAwLjAwMjkyMywgMC4wMDI5MjUsIDAuMDAyOTI2LCAwLjAwMjkyNyIsIFwKLSAgICAgICAgICAiMC4wMDI2NjgsIDAuMDAyODU1LCAwLjAwMjg4NywgMC4wMDI4OTcsIDAuMDAyOTA2LCAwLjAwMjkxMSwgMC4wMDI5MTYiLCBcCi0gICAgICAgICAgIjAuMDAyNjAzLCAwLjAwMjgwNSwgMC4wMDI4NTQsIDAuMDAyODc1LCAwLjAwMjg4NywgMC4wMDI4OTUsIDAuMDAyOTAyIiwgXAotICAgICAgICAgICIwLjAwMjU4LCAwLjAwMjc2MSwgMC4wMDI4MjMsIDAuMDAyODQ2LCAwLjAwMjg2NywgMC4wMDI4NzksIDAuMDAyODkiLCBcCi0gICAgICAgICAgIjAuMDAyNjExLCAwLjAwMjc0MiwgMC4wMDI4MDYsIDAuMDAyODMsIDAuMDAyODU1LCAwLjAwMjg2OCwgMC4wMDI4ODEiLCBcCi0gICAgICAgICAgIjAuMDAyNzAzLCAwLjAwMjcyOCwgMC4wMDI3ODYsIDAuMDAyODEyLCAwLjAwMjgzOCwgMC4wMDI4NTQsIDAuMDAyODY5IiwgXAotICAgICAgICAgICIwLjAwMjgsIDAuMDAyNzM0LCAwLjAwMjc3OSwgMC4wMDI4MDMsIDAuMDAyODI5LCAwLjAwMjg0NSwgMC4wMDI4NjEiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBOQU5ENFg4ICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKE5BTkQ0WDgpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMS4xNTA1NTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDA1ODA3Mzk7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDA1ODA3Mzk7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDA1NzgxODQ7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzMjY0LCAwLjAwMzI2MSwgMC4wMDMyNiwgMC4wMDMyNTksIDAuMDAzMjU4LCAwLjAwMzI1OSwgMC4wMDMyNTciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDMyNjYsIDAuMDAzMjY5LCAwLjAwMzI3LCAwLjAwMzI3MiwgMC4wMDMyNjksIDAuMDAzMjcsIDAuMDAzMjciKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwNTgwNDA1OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwNTgwNDA1OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwNTc4MjA3OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzI2NCwgMC4wMDMyNjEsIDAuMDAzMjU5LCAwLjAwMzI1NywgMC4wMDMyNiwgMC4wMDMyNTcsIDAuMDAzMjU3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzMjY2LCAwLjAwMzI2OSwgMC4wMDMyNjcsIDAuMDAzMjcyLCAwLjAwMzI2OCwgMC4wMDMyNzEsIDAuMDAzMjcxIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihDKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDU4MDU3NzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDU4MDU3NzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDU3ODY2MzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDMyNjQsIDAuMDAzMjYxLCAwLjAwMzI2MiwgMC4wMDMyNTgsIDAuMDAzMjU5LCAwLjAwMzI1OSwgMC4wMDMyNTkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDMyNjYsIDAuMDAzMjY5LCAwLjAwMzI3LCAwLjAwMzI3MiwgMC4wMDMyNjUsIDAuMDAzMjcyLCAwLjAwMzI3MyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDA1ODc1NjM7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDA1ODcxNDE7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDA1ODc1NjM7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxNjE4LCAwLjAwMTYxNSwgMC4wMDE2MSwgMC4wMDE2MTQsIDAuMDAxNjE0LCAwLjAwMTYxMiwgMC4wMDE2MTIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDM2OTksIDAuMDAzNzAyLCAwLjAwMzcwMywgMC4wMDM3MDIsIDAuMDAzNzAxLCAwLjAwMzcwNiwgMC4wMDM3MDYiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC41NTQ4MTU7Ci0gICAgZnVuY3Rpb24gOiAiKCEoKChBIEIpIEMpIEQpKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTg4MjEsIDAuMDU3MzExLCAwLjA5NDYxMSwgMC4xMjExMjYsIDAuMTYzNDUsIDAuMjAwNDI1LCAwLjI1MzE5NiIsIFwKLSAgICAgICAgICAiMC4wMjkwNjEsIDAuMDY3MzcxLCAwLjEwNDY1OSwgMC4xMzExNzUsIDAuMTczNDk0LCAwLjIxMDUwMSwgMC4yNjMzMTMiLCBcCi0gICAgICAgICAgIjAuMDQxMjM1LCAwLjA3OTk2NCwgMC4xMTY5OTgsIDAuMTQzNTA5LCAwLjE4NTgzMSwgMC4yMjI4MTEsIDAuMjc1NjI2IiwgXAotICAgICAgICAgICIwLjA1MDc0MiwgMC4wOTI2NDcsIDAuMTI5NTAxLCAwLjE1NTk4NCwgMC4xOTgyODIsIDAuMjM0Nzg2LCAwLjI4ODEwNSIsIFwKLSAgICAgICAgICAiMC4wNTkwNDQsIDAuMTA1Mjk1LCAwLjE0MjM5MiwgMC4xNjg0MjMsIDAuMjEwNzAzLCAwLjI0NzY2MiwgMC4zMDA0NDciLCBcCi0gICAgICAgICAgIjAuMDY5NzIxLCAwLjEyNTExNCwgMC4xNjMxNjYsIDAuMTg5NTcsIDAuMjMxNzk3LCAwLjI2ODY5MywgMC4zMjE0NDEiLCBcCi0gICAgICAgICAgIjAuMDc3NzAzLCAwLjE0MDIwNiwgMC4xODA4MjMsIDAuMjA3MjU0LCAwLjI0OTMyMSwgMC4yODYyMTksIDAuMzM4MTg1Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDMxMDAyLCAwLjEwNzQ5NywgMC4xODM3MDQsIDAuMjM4MTIzLCAwLjMyNTI3LCAwLjQwMTUxMSwgMC41MTA0ODIiLCBcCi0gICAgICAgICAgIjAuMDMzNjU4LCAwLjEwNzM4MSwgMC4xODM3MjEsIDAuMjM4MTUxLCAwLjMyNTQwNCwgMC40MDE1MjEsIDAuNTEwODQ3IiwgXAotICAgICAgICAgICIwLjA0MTM3OCwgMC4xMTA0MjQsIDAuMTg0MzIsIDAuMjM4MjM5LCAwLjMyNTI3LCAwLjQwMTU0NiwgMC41MTA2NDUiLCBcCi0gICAgICAgICAgIjAuMDUwNDU3LCAwLjExNjAzMiwgMC4xODc2LCAwLjI0MDA0LCAwLjMyNTY2MSwgMC40MDE1MjcsIDAuNTEwNDQzIiwgXAotICAgICAgICAgICIwLjA1ODM4MywgMC4xMjMxNDYsIDAuMTkyNDg1LCAwLjI0NDAzMiwgMC4zMjc3OTEsIDAuNDAyNDY3LCAwLjUxMDg1MSIsIFwKLSAgICAgICAgICAiMC4wNzExNTgsIDAuMTM1NzI2LCAwLjIwMjEzNCwgMC4yNTE3OTMsIDAuMzMzNTIzLCAwLjQwNjYyOCwgMC41MTI2MTMiLCBcCi0gICAgICAgICAgIjAuMDgxNjAzLCAwLjE0ODU4MywgMC4yMTI0NDcsIDAuMjYwOTQ0LCAwLjM0MDc1NywgMC40MTI1MTgsIDAuNTE2OTUzIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY3NjAzLCAwLjIwOTUzNiwgMC4zNTExNzksIDAuNDUyMzY2LCAwLjYxNDI3NywgMC43NTU3OTcsIDAuOTU3ODc0IiwgXAotICAgICAgICAgICIwLjA3NTQwMiwgMC4yMTc5NDIsIDAuMzU5NzQ0LCAwLjQ2MTA0NCwgMC42MjI5MTgsIDAuNzY0NjIsIDAuOTY2NjI2IiwgXAotICAgICAgICAgICIwLjA4NDA3MiwgMC4yMjY3NywgMC4zNjg2MTksIDAuNDY5NzUyLCAwLjYzMTc1LCAwLjc3MzIxMSwgMC45NzU2MDQiLCBcCi0gICAgICAgICAgIjAuMDkyMTIsIDAuMjM0NzIzLCAwLjM3NjYxNywgMC40Nzc5MTMsIDAuNjM5NzI3LCAwLjc4MTQyNiwgMC45ODM1OTYiLCBcCi0gICAgICAgICAgIjAuMDk5Nzc0LCAwLjI0MjM0MywgMC4zODQyNzgsIDAuNDg1NjgxLCAwLjY0NzU3LCAwLjc4OTMwMSwgMC45OTE2NzYiLCBcCi0gICAgICAgICAgIjAuMTEwNTk0LCAwLjI1NDExNywgMC4zOTYwOTEsIDAuNDk3NDI0LCAwLjY1OTYwMywgMC44MDE0NCwgMS4wMDM0IiwgXAotICAgICAgICAgICIwLjExOTI1NywgMC4yNjQ0MywgMC40MDY0OTQsIDAuNTA3NzUxLCAwLjY2OTgxMywgMC44MTE0NDgsIDEuMDE0MzEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTQ5NjUsIDAuMzcxODUzLCAwLjY0ODkzLCAwLjg0Nzc0MSwgMS4xNjI2NCwgMS40NDIxOSwgMS44MzY4MiIsIFwKLSAgICAgICAgICAiMC4wOTQ5ODksIDAuMzcxODgsIDAuNjQ4OTIyLCAwLjg0NzgxNiwgMS4xNjI4NSwgMS40NDI1MSwgMS44MzY3IiwgXAotICAgICAgICAgICIwLjA5NTMsIDAuMzcyMjQ5LCAwLjY0ODk4MywgMC44NDgyOTMsIDEuMTYzNTIsIDEuNDQzMTUsIDEuODM2MzkiLCBcCi0gICAgICAgICAgIjAuMDk2NDQ5LCAwLjM3MTkyMiwgMC42NTAwODQsIDAuODQ2MDE2LCAxLjE2NTUxLCAxLjQ0MDYsIDEuODM5NjYiLCBcCi0gICAgICAgICAgIjAuMDk4MjU0LCAwLjM3MjI4NSwgMC42NDg4MTUsIDAuODQ3MDE5LCAxLjE2MzU4LCAxLjQ0MDgxLCAxLjgzNjc3IiwgXAotICAgICAgICAgICIwLjEwMjY1MywgMC4zNzQyMjEsIDAuNjQ5ODk4LCAwLjg0ODM1MywgMS4xNjI1MSwgMS40NDIyNiwgMS44MzY0MiIsIFwKLSAgICAgICAgICAiMC4xMDczMSwgMC4zNzU4NjQsIDAuNjUwMjU0LCAwLjg0NjQyOCwgMS4xNjM1NywgMS40NDA2MiwgMS44Mzg4OCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxODM2NiwgMC4wNTYyMTgsIDAuMDkzNDQ4LCAwLjExOTk4MiwgMC4xNjI0MDIsIDAuMTk5NDQyLCAwLjI1MjM0OCIsIFwKLSAgICAgICAgICAiMC4wMjg0NiwgMC4wNjYyNjgsIDAuMTAzNTA4LCAwLjEzMDA1MSwgMC4xNzI0MywgMC4yMDk1MjMsIDAuMjYyNDc5IiwgXAotICAgICAgICAgICIwLjA0MDE3MSwgMC4wNzg4NTUsIDAuMTE1ODQyLCAwLjE0MjM4NCwgMC4xODQ3OTgsIDAuMjIxODUxLCAwLjI3NDg2NyIsIFwKLSAgICAgICAgICAiMC4wNDkxODUsIDAuMDkxNDcxLCAwLjEyODMyMywgMC4xNTQ4MjcsIDAuMTk3MjM2LCAwLjIzMzczMywgMC4yODczMzYiLCBcCi0gICAgICAgICAgIjAuMDU3MDA5LCAwLjEwNDEwMSwgMC4xNDExODMsIDAuMTY3MjQzLCAwLjIwOTU5OCwgMC4yNDY2OTQsIDAuMjk5NzkzIiwgXAotICAgICAgICAgICIwLjA2NzMzNywgMC4xMjM3NzYsIDAuMTYxODYzLCAwLjE4ODI2NiwgMC4yMzA1OTUsIDAuMjY3NjczLCAwLjMyMDU3NiIsIFwKLSAgICAgICAgICAiMC4wNzUxMiwgMC4xMzgzNzYsIDAuMTc5NDg4LCAwLjIwNTg3OCwgMC4yNDgxNTUsIDAuMjg0MzQzLCAwLjMzNzI2MSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyOTA2NywgMC4xMDU1NTQsIDAuMTgyMDMxLCAwLjIzNjg5NCwgMC4zMjQzMzYsIDAuNDAwNTc1LCAwLjUxMDE2OSIsIFwKLSAgICAgICAgICAiMC4wMzE4NjcsIDAuMTA1NjM0LCAwLjE4MjExNywgMC4yMzY3NzcsIDAuMzI0MTA3LCAwLjQwMDU4MSwgMC41MTAyMjEiLCBcCi0gICAgICAgICAgIjAuMDM5ODYzLCAwLjEwODc0NCwgMC4xODI2OTEsIDAuMjM2ODE1LCAwLjMyNDM1NSwgMC40MDA1NzMsIDAuNTEwMDE4IiwgXAotICAgICAgICAgICIwLjA0OTA3NywgMC4xMTQ0NDYsIDAuMTg2MTk5LCAwLjIzODc0OCwgMC4zMjQ2MTMsIDAuNDAwNTcyLCAwLjUxMDA0OCIsIFwKLSAgICAgICAgICAiMC4wNTY5ODYsIDAuMTIxNzM2LCAwLjE5MTE1LCAwLjI0MjcyLCAwLjMyNjc1OSwgMC40MDE1NzcsIDAuNTEwMDczIiwgXAotICAgICAgICAgICIwLjA2OTEzMiwgMC4xMzQzNzEsIDAuMjAwOTUzLCAwLjI1MDYzLCAwLjMzMjU1LCAwLjQwNTc5MywgMC41MTIwNTYiLCBcCi0gICAgICAgICAgIjAuMDc4NzQ0LCAwLjE0Nzc2NiwgMC4yMTE0NDgsIDAuMjU5ODk5LCAwLjMzOTkyOCwgMC40MTIxOSwgMC41MTY1NDQiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjQ1OTEsIDAuMjA2NjczLCAwLjM0ODIxOCwgMC40NDkzODQsIDAuNjExMTIsIDAuNzUyNzgxLCAwLjk1NTE4NiIsIFwKLSAgICAgICAgICAiMC4wNzIzNSwgMC4yMTUwMTIsIDAuMzU2Njg3LCAwLjQ1ODE2MiwgMC42MTk2NjMsIDAuNzYxNzk0LCAwLjk2MzY0IiwgXAotICAgICAgICAgICIwLjA4MTQ0MywgMC4yMjQxMTYsIDAuMzY2MDM4LCAwLjQ2NzMwMSwgMC42MjkxNSwgMC43NzA2MDYsIDAuOTczMSIsIFwKLSAgICAgICAgICAiMC4wOTAyMTcsIDAuMjMyNzkyLCAwLjM3NDc2MSwgMC40NzU5NzEsIDAuNjM4MDI4LCAwLjc3OTU3OCwgMC45ODE5MDkiLCBcCi0gICAgICAgICAgIjAuMDk4ODQ0LCAwLjI0MTQ5LCAwLjM4MzU3NywgMC40ODQ4NzgsIDAuNjQ2OTk4LCAwLjc4ODUyLCAwLjk5MDY4NCIsIFwKLSAgICAgICAgICAiMC4xMTEzNTMsIDAuMjU1Mzc0LCAwLjM5NzQ1LCAwLjQ5ODc1OSwgMC42NjA4MjksIDAuODAyNDAxLCAxLjAwNDc5IiwgXAotICAgICAgICAgICIwLjEyMTIyOSwgMC4yNjc2OTUsIDAuNDA5NjQzLCAwLjUxMTAwMiwgMC42NzMxMjksIDAuODE0NzcsIDEuMDE3NjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTQ5NjUsIDAuMzcyNTExLCAwLjY0OTYzMiwgMC44NDY0ODIsIDEuMTYzOCwgMS40NDIyMywgMS44Mzg4NyIsIFwKLSAgICAgICAgICAiMC4wOTQ3NjQsIDAuMzcyNDIzLCAwLjY0ODk4OCwgMC44NDgyMzEsIDEuMTYzNTUsIDEuNDQyOTQsIDEuODM2NzgiLCBcCi0gICAgICAgICAgIjAuMDk1NDk5LCAwLjM3MTUyNSwgMC42NDkwNCwgMC44NDcwMTQsIDEuMTYzNTYsIDEuNDQzMTcsIDEuODM1NSIsIFwKLSAgICAgICAgICAiMC4wOTc1OTgsIDAuMzcxODA0LCAwLjY0ODkyNSwgMC44NDY3OTQsIDEuMTYzNjUsIDEuNDQwNjIsIDEuODM2NTUiLCBcCi0gICAgICAgICAgIjAuMTAwNTQ0LCAwLjM3MjM0MiwgMC42NDkwMTEsIDAuODQ2MjQxLCAxLjE2NDc2LCAxLjQ0MDUzLCAxLjgzNjQzIiwgXAotICAgICAgICAgICIwLjEwNzM4MiwgMC4zNzQwOTQsIDAuNjUwMzc4LCAwLjg0ODM1NSwgMS4xNjM2MiwgMS40NDA1LCAxLjgzNjY2IiwgXAotICAgICAgICAgICIwLjExNDUyOSwgMC4zNzcyODIsIDAuNjUwMzk4LCAwLjg0ODYzOCwgMS4xNjM1OCwgMS40NDA2NSwgMS44MzkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTcxNzIsIDAuMDU0NTE1LCAwLjA5MTY0MywgMC4xMTgxNzYsIDAuMTYwNTkyLCAwLjE5NzYzOSwgMC4yNTA1OTgiLCBcCi0gICAgICAgICAgIjAuMDI3MjU2LCAwLjA2NDY1NSwgMC4xMDE4MDgsIDAuMTI4Mjk4LCAwLjE3MDcxOSwgMC4yMDc4MDQsIDAuMjYwNzg0IiwgXAotICAgICAgICAgICIwLjAzODMyNCwgMC4wNzcyNDQsIDAuMTE0MTY3LCAwLjE0MDY5NSwgMC4xODMxNjMsIDAuMjE5Nzk5LCAwLjI3Mjg3NCIsIFwKLSAgICAgICAgICAiMC4wNDY3NjUsIDAuMDg5ODczLCAwLjEyNjYwMiwgMC4xNTMwODksIDAuMTk1NTE0LCAwLjIzMjMwMSwgMC4yODU1MjgiLCBcCi0gICAgICAgICAgIjAuMDU0MDkyLCAwLjEwMjYxOSwgMC4xMzk3MjQsIDAuMTY1NDY5LCAwLjIwNzgxNSwgMC4yNDQ4OTIsIDAuMjk4MDY3IiwgXAotICAgICAgICAgICIwLjA2MzM2NiwgMC4xMjE4MDMsIDAuMTYwMTYzLCAwLjE4NjU0NSwgMC4yMjg3OTksIDAuMjY1MjQ0LCAwLjMxODE2NCIsIFwKLSAgICAgICAgICAiMC4wNzA5NDcsIDAuMTM1ODA5LCAwLjE3Nzc5NiwgMC4yMDM5OTUsIDAuMjQ2MTYyLCAwLjI4MjQwNywgMC4zMzUzNDEiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjY3NzIsIDAuMTAzMzMyLCAwLjE3OTg2OSwgMC4yMzQ1MTUsIDAuMzIyMTQ1LCAwLjM5ODQ1NCwgMC41MDc3NTQiLCBcCi0gICAgICAgICAgIjAuMDI5OTg1LCAwLjEwMzQ1NywgMC4xNzk4NDEsIDAuMjM0NjUzLCAwLjMyMTk0LCAwLjM5ODQ1MywgMC41MDgxIiwgXAotICAgICAgICAgICIwLjAzODQzNywgMC4xMDY3OTksIDAuMTgwNjEsIDAuMjM0NjA5LCAwLjMyMjA2OSwgMC4zOTg0NDUsIDAuNTA3OTU0IiwgXAotICAgICAgICAgICIwLjA0Nzc5NSwgMC4xMTI2NTMsIDAuMTg0MTcyLCAwLjIzNjY1NSwgMC4zMjI0NzgsIDAuMzk4NTA1LCAwLjUwNzgxMyIsIFwKLSAgICAgICAgICAiMC4wNTU2MzUsIDAuMTE5ODQ5LCAwLjE4ODk2OCwgMC4yNDA5MTEsIDAuMzI0ODU3LCAwLjM5OTU0MiwgMC41MDc4NjQiLCBcCi0gICAgICAgICAgIjAuMDY4MzU5LCAwLjEzMzA5OSwgMC4xOTkyMjcsIDAuMjQ5MDM3LCAwLjMzMDYzMSwgMC40MDQwNzYsIDAuNTEwMjE2IiwgXAotICAgICAgICAgICIwLjA3NzA1NiwgMC4xNDY3NDQsIDAuMjEwMzQzLCAwLjI1ODM3NiwgMC4zMzgyNjIsIDAuNDEwNDIyLCAwLjUxNDc3NyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1ODQyNSwgMC4yMDAzNzksIDAuMzQyMDkxLCAwLjQ0MzEzOSwgMC42MDUyNTksIDAuNzQ2NDk4LCAwLjk0ODY2MyIsIFwKLSAgICAgICAgICAiMC4wNjYwMTIsIDAuMjA4NywgMC4zNTAzMjgsIDAuNDUxNTQ3LCAwLjYxMzQzNCwgMC43NTQ5ODIsIDAuOTU3NDE3IiwgXAotICAgICAgICAgICIwLjA3NTgzMywgMC4yMTg2MjYsIDAuMzYwNjgxLCAwLjQ2MTk4MywgMC42MjM3MDgsIDAuNzY1MzgyLCAwLjk2NzUyNyIsIFwKLSAgICAgICAgICAiMC4wODU5NjMsIDAuMjI4NjQ1LCAwLjM3MDUzMiwgMC40NzE3OTUsIDAuNjMzOTE5LCAwLjc3NTIxMywgMC45Nzc1NyIsIFwKLSAgICAgICAgICAiMC4wOTU3ODksIDAuMjM4NjY4LCAwLjM4MDcxMywgMC40ODIxNDgsIDAuNjQzOTI0LCAwLjc4NTYwNywgMC45ODgxMyIsIFwKLSAgICAgICAgICAiMC4xMDk3ODQsIDAuMjU0ODE1LCAwLjM5Njk4NSwgMC40OTgzNzIsIDAuNjYwNzY1LCAwLjgwMjE2NSwgMS4wMDQ1NSIsIFwKLSAgICAgICAgICAiMC4xMjA3MzgsIDAuMjY5MDk3LCAwLjQxMTA4NCwgMC41MTI1NzQsIDAuNjc0NzYzLCAwLjgxNjQxNCwgMS4wMTg5MSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5NDk5NSwgMC4zNzE4NTIsIDAuNjQ4NDg3LCAwLjg0NzA4MiwgMS4xNjUzOCwgMS40NDA5NiwgMS44MzY4IiwgXAotICAgICAgICAgICIwLjA5NDk1NCwgMC4zNzI0NjIsIDAuNjQ4OTQ4LCAwLjg0NjgwNywgMS4xNjM3MiwgMS40NDA3LCAxLjgzODM4IiwgXAotICAgICAgICAgICIwLjA5NjI3NiwgMC4zNzIyNjEsIDAuNjQ4MzI5LCAwLjg0ODE1MiwgMS4xNjM2MiwgMS40NDIwNywgMS44MzY2NiIsIFwKLSAgICAgICAgICAiMC4xMDAwMTMsIDAuMzcyMjI4LCAwLjY1MDA5NCwgMC44NDY3MDYsIDEuMTYzNzksIDEuNDQyMTgsIDEuODM5NzYiLCBcCi0gICAgICAgICAgIjAuMTA1MDcyLCAwLjM3MzMxMSwgMC42NDg5NTcsIDAuODQ3NzYsIDEuMTYzNTIsIDEuNDQwNjQsIDEuODM2ODIiLCBcCi0gICAgICAgICAgIjAuMTE1MTg4LCAwLjM3NTk3MiwgMC42NDk5MzYsIDAuODQ2OTA3LCAxLjE2NSwgMS40NDA3NCwgMS44MzY1NiIsIFwKLSAgICAgICAgICAiMC4xMjUxMzMsIDAuMzgwMjUyLCAwLjY1MTQyOSwgMC44NDg1NTMsIDEuMTYzMzQsIDEuNDQwNTcsIDEuODM2NzMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTUzMzYsIDAuMDUyNDM3LCAwLjA4OTQ1NSwgMC4xMTU5MDIsIDAuMTU4MzEsIDAuMTk1MzU4LCAwLjI0ODE4IiwgXAotICAgICAgICAgICIwLjAyNTQyNywgMC4wNjI2MTMsIDAuMDk5Njc1LCAwLjEyNjEyMSwgMC4xNjg1MjQsIDAuMjA1NTE5LCAwLjI1ODM4IiwgXAotICAgICAgICAgICIwLjAzNTcwOSwgMC4wNzUyMTIsIDAuMTEyMDMsIDAuMTM4NDgsIDAuMTgwODA0LCAwLjIxNzg2NiwgMC4yNzA5MDgiLCBcCi0gICAgICAgICAgIjAuMDQzMjk2LCAwLjA4Nzg1OCwgMC4xMjQ3OTYsIDAuMTUwOTQ3LCAwLjE5MzI2NSwgMC4yMzAzMjUsIDAuMjgzMjYiLCBcCi0gICAgICAgICAgIjAuMDQ5OTY2LCAwLjA5OTgxOCwgMC4xMzc0MTIsIDAuMTYzMzY1LCAwLjIwNTcwMSwgMC4yNDI3MzEsIDAuMjk1NjM1IiwgXAotICAgICAgICAgICIwLjA1ODIyNiwgMC4xMTk0ODMsIDAuMTU4MTI1LCAwLjE4NDQ4MywgMC4yMjY3MDYsIDAuMjYzNzQ3LCAwLjMxNjU2NCIsIFwKLSAgICAgICAgICAiMC4wNjUwNzksIDAuMTMzMzE1LCAwLjE3NDYxMSwgMC4yMDIyMTMsIDAuMjQ0Mjc5LCAwLjI4MTI2NCwgMC4zMzMzNTkiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjQ1MTYsIDAuMTAwODY4LCAwLjE3NzU5OCwgMC4yMzIxNjYsIDAuMzE5MjIyLCAwLjM5NTYzNywgMC41MDQ2MDUiLCBcCi0gICAgICAgICAgIjAuMDI4MjY3LCAwLjEwMTA1MiwgMC4xNzcyNzEsIDAuMjMxOTcyLCAwLjMxOTIxNiwgMC4zOTU0MjEsIDAuNTA1NTAyIiwgXAotICAgICAgICAgICIwLjAzNzI2NCwgMC4xMDQ1NSwgMC4xNzgxMzUsIDAuMjMyMzc2LCAwLjMxOTc1MSwgMC4zOTU0NjQsIDAuNTA0NzQ1IiwgXAotICAgICAgICAgICIwLjA0NjYxNywgMC4xMTA1MjYsIDAuMTgxNTMyLCAwLjIzNDIxOSwgMC4zMjAwNCwgMC4zOTU1MjYsIDAuNTA0NjY2IiwgXAotICAgICAgICAgICIwLjA1NDQwNSwgMC4xMTc0MDEsIDAuMTg2ODg4LCAwLjIzODUzLCAwLjMyMjY0NiwgMC4zOTY2MjgsIDAuNTA1MDY0IiwgXAotICAgICAgICAgICIwLjA2NjgzMywgMC4xMzEzOTgsIDAuMTk2OTAzLCAwLjI0NjY3NCwgMC4zMjc5ODQsIDAuNDAxNzcxLCAwLjUwNzk3MyIsIFwKLSAgICAgICAgICAiMC4wNzU3OTUsIDAuMTQ1NTI2LCAwLjIwNjM2OCwgMC4yNTU4MTIsIDAuMzM1Njg5LCAwLjQwNzc4NCwgMC41MTE1MjEiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDg3OTQsIDAuMTkwODQsIDAuMzMyNDM1LCAwLjQzMzcwMywgMC41OTU1NTYsIDAuNzM3MDIzLCAwLjkzOTM1MSIsIFwKLSAgICAgICAgICAiMC4wNTYzMDYsIDAuMTk4OTQzLCAwLjM0MDc4NSwgMC40NDE5NDgsIDAuNjAzNjQ2LCAwLjc0NTQxNiwgMC45NDc0NDMiLCBcCi0gICAgICAgICAgIjAuMDY2NTEsIDAuMjA5MDc0LCAwLjM1MDk5MywgMC40NTIxOTIsIDAuNjE0MDA0LCAwLjc1NTU1MiwgMC45NTgwNjQiLCBcCi0gICAgICAgICAgIjAuMDc3MzU5LCAwLjIxOTMxNSwgMC4zNjEzOSwgMC40NjI1ODIsIDAuNjI0NTEsIDAuNzY2MDg0LCAwLjk2ODU5IiwgXAotICAgICAgICAgICIwLjA4Nzg5MiwgMC4yMjk2ODIsIDAuMzcxNjEzLCAwLjQ3MjgwNywgMC42MzQ2ODIsIDAuNzc2MzM0LCAwLjk3ODYzOCIsIFwKLSAgICAgICAgICAiMC4xMDI5NzcsIDAuMjQ2MTk5LCAwLjM4NzgzOCwgMC40ODkyMDIsIDAuNjUxMjc0LCAwLjc5MzAyMywgMC45OTQ5OSIsIFwKLSAgICAgICAgICAiMC4xMTM3NTYsIDAuMjYxNjA4LCAwLjQwMzI0NywgMC41MDQzMTksIDAuNjY2MjU4LCAwLjgwODEwMiwgMS4wMTAzNiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5NDY3OSwgMC4zNzIwNTQsIDAuNjQ4OTgsIDAuODQ3ODE4LCAxLjE2Mjc3LCAxLjQ0MTAyLCAxLjgzNTY2IiwgXAotICAgICAgICAgICIwLjA5Mzg1NCwgMC4zNzE4MTUsIDAuNjQ5MDQsIDAuODQ2OTA4LCAxLjE2MzM4LCAxLjQ0MDg1LCAxLjgzOTY4IiwgXAotICAgICAgICAgICIwLjA5NzM1NSwgMC4zNzI0NzUsIDAuNjQ4MjIsIDAuODQ4MzMxLCAxLjE2NDgsIDEuNDQwMzUsIDEuODM2NjciLCBcCi0gICAgICAgICAgIjAuMTAzNjUxLCAwLjM3MTkwNSwgMC42NDkwNzMsIDAuODQ2ODc0LCAxLjE2MjQ1LCAxLjQ0MDY1LCAxLjgzNDA3IiwgXAotICAgICAgICAgICIwLjExMTE0LCAwLjM3MjY0OCwgMC42NDkwNTIsIDAuODQ2ODA5LCAxLjE2NTU0LCAxLjQ0MDM5LCAxLjgzNjQiLCBcCi0gICAgICAgICAgIjAuMTIzNzAyLCAwLjM3ODQzLCAwLjY0OTkxNywgMC44NDYyNDMsIDEuMTY0NzIsIDEuNDQyMjgsIDEuODM2NDgiLCBcCi0gICAgICAgICAgIjAuMTM1ODcyLCAwLjM4MzU5OSwgMC42NTIzLCAwLjg0Nzk5LCAxLjE2MzM4LCAxLjQ0MDgzLCAxLjgzNjY3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjY2NTQsIDAuMDI2NjU4LCAwLjAyNjY1NCwgMC4wMjY2NTMsIDAuMDI2NjU2LCAwLjAyNjY1MSwgMC4wMjY2NTYiLCBcCi0gICAgICAgICAgIjAuMDI2NDU4LCAwLjAyNjUxLCAwLjAyNjUyNCwgMC4wMjY1MjcsIDAuMDI2NTI2LCAwLjAyNjUyNiwgMC4wMjY1MjgiLCBcCi0gICAgICAgICAgIjAuMDI2MzgsIDAuMDI2NDYxLCAwLjAyNjQ3MiwgMC4wMjY0NzcsIDAuMDI2NDY5LCAwLjAyNjQ4MywgMC4wMjY0ODgiLCBcCi0gICAgICAgICAgIjAuMDI2MzkzLCAwLjAyNjQ1MywgMC4wMjY0NTYsIDAuMDI2NDYzLCAwLjAyNjQ2OSwgMC4wMjY0MTcsIDAuMDI2NDgxIiwgXAotICAgICAgICAgICIwLjAyNjQwMSwgMC4wMjY0OCwgMC4wMjY0ODYsIDAuMDI2NDc1LCAwLjAyNjQ3MywgMC4wMjY0ODEsIDAuMDI2NDc2IiwgXAotICAgICAgICAgICIwLjAyNjY1LCAwLjAyNjU0OCwgMC4wMjY1MjEsIDAuMDI2NTE4LCAwLjAyNjUxMSwgMC4wMjY1MDYsIDAuMDI2NTA0IiwgXAotICAgICAgICAgICIwLjAyNjc1MiwgMC4wMjY1ODEsIDAuMDI2NTQ2LCAwLjAyNjUzNCwgMC4wMjY1MTgsIDAuMDI2NTExLCAwLjAyNjQ5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDUyNCwgMC4wMDUzNjcsIDAuMDA1Mzg3LCAwLjAwNTM5NCwgMC4wMDU0LCAwLjAwNTQwMywgMC4wMDU0MDUiLCBcCi0gICAgICAgICAgIjAuMDA0ODUyLCAwLjAwNTE5NSwgMC4wMDUyODEsIDAuMDA1MzEsIDAuMDA1MzM3LCAwLjAwNTM1MiwgMC4wMDUzNjUiLCBcCi0gICAgICAgICAgIjAuMDA0NjU1LCAwLjAwNTA0LCAwLjAwNTE3LCAwLjAwNTIxOSwgMC4wMDUyNjcsIDAuMDA1Mjk0LCAwLjAwNTMxOSIsIFwKLSAgICAgICAgICAiMC4wMDQ1NjUsIDAuMDA0OTI1LCAwLjAwNTA3OSwgMC4wMDUxNDEsIDAuMDA1MjEsIDAuMDA1MjQ4LCAwLjAwNTI3NCIsIFwKLSAgICAgICAgICAiMC4wMDQ1MTksIDAuMDA0ODM5LCAwLjAwNSwgMC4wMDUwNzIsIDAuMDA1MTQ2LCAwLjAwNTE4OSwgMC4wMDUyMzIiLCBcCi0gICAgICAgICAgIjAuMDA0NDcsIDAuMDA0NzQ1LCAwLjAwNDkwNiwgMC4wMDQ5ODMsIDAuMDA1MDY4LCAwLjAwNTEyLCAwLjAwNTE3MiIsIFwKLSAgICAgICAgICAiMC4wMDQ0NSwgMC4wMDQ2ODgsIDAuMDA0ODQxLCAwLjAwNDkxOSwgMC4wMDUwMDksIDAuMDA1MDY1LCAwLjAwNTEyNCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDIyNzk5LCAwLjAyMjgxMiwgMC4wMjI4MTQsIDAuMDIyODEzLCAwLjAyMjgxMiwgMC4wMjI4MTEsIDAuMDIyODE0IiwgXAotICAgICAgICAgICIwLjAyMjYwNiwgMC4wMjI3MDUsIDAuMDIyNzI1LCAwLjAyMjczMSwgMC4wMjI3MzQsIDAuMDIyNzM3LCAwLjAyMjc0NCIsIFwKLSAgICAgICAgICAiMC4wMjI0OTgsIDAuMDIyNjQ2LCAwLjAyMjY3NiwgMC4wMjI2ODcsIDAuMDIyNzAzLCAwLjAyMjcwNywgMC4wMjI3MTIiLCBcCi0gICAgICAgICAgIjAuMDIyNTAzLCAwLjAyMjYzMywgMC4wMjI2NiwgMC4wMjI2NzYsIDAuMDIyNjg5LCAwLjAyMjY1NiwgMC4wMjI3MDYiLCBcCi0gICAgICAgICAgIjAuMDIyNDcxLCAwLjAyMjY2NCwgMC4wMjI2ODUsIDAuMDIyNjg0LCAwLjAyMjY5NywgMC4wMjI3MDMsIDAuMDIyNzA4IiwgXAotICAgICAgICAgICIwLjAyMjY5OCwgMC4wMjI2NzIsIDAuMDIyNjgxLCAwLjAyMjY5MSwgMC4wMjI3MDEsIDAuMDIyNzA3LCAwLjAyMjcwOCIsIFwKLSAgICAgICAgICAiMC4wMjI3MiwgMC4wMjI3NDgsIDAuMDIyNzM1LCAwLjAyMjczNiwgMC4wMjI3MzEsIDAuMDIyNzA5LCAwLjAyMjcxMyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1MjQ1LCAwLjAwNTM3MiwgMC4wMDUzOTMsIDAuMDA1Mzk5LCAwLjAwNTQwNSwgMC4wMDU0MDgsIDAuMDA1NDExIiwgXAotICAgICAgICAgICIwLjAwNDg0OCwgMC4wMDUyLCAwLjAwNTI4NiwgMC4wMDUzMTUsIDAuMDA1MzQzLCAwLjAwNTM1OCwgMC4wMDUzNzEiLCBcCi0gICAgICAgICAgIjAuMDA0NjU2LCAwLjAwNTA0MywgMC4wMDUxNzQsIDAuMDA1MjI0LCAwLjAwNTI3MiwgMC4wMDUyOTksIDAuMDA1MzI0IiwgXAotICAgICAgICAgICIwLjAwNDU2NywgMC4wMDQ5MjcsIDAuMDA1MDgyLCAwLjAwNTE0NSwgMC4wMDUyMDgsIDAuMDA1MjQ0LCAwLjAwNTI3OSIsIFwKLSAgICAgICAgICAiMC4wMDQ1MTYsIDAuMDA0ODQyLCAwLjAwNTAwNSwgMC4wMDUwNzYsIDAuMDA1MTUxLCAwLjAwNTE5NCwgMC4wMDUyMzciLCBcCi0gICAgICAgICAgIjAuMDA0NDc4LCAwLjAwNDc0OCwgMC4wMDQ5MSwgMC4wMDQ5ODcsIDAuMDA1MDczLCAwLjAwNTEyNSwgMC4wMDUxNzciLCBcCi0gICAgICAgICAgIjAuMDA0NDY4LCAwLjAwNDcwMiwgMC4wMDQ4NDcsIDAuMDA0OTI1LCAwLjAwNTAxNSwgMC4wMDUwNzIsIDAuMDA1MTMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxODY3MywgMC4wMTg3MTIsIDAuMDE4NzE3LCAwLjAxODcxNywgMC4wMTg3MTksIDAuMDE4NzE4LCAwLjAxODcyIiwgXAotICAgICAgICAgICIwLjAxODUzLCAwLjAxODcwOCwgMC4wMTg3NDMsIDAuMDE4NzUzLCAwLjAxODc2NCwgMC4wMTg3NywgMC4wMTg3NzMiLCBcCi0gICAgICAgICAgIjAuMDE4NDE4LCAwLjAxODY1NiwgMC4wMTg3MTEsIDAuMDE4NzMzLCAwLjAxODc1MSwgMC4wMTg3NiwgMC4wMTg3NzEiLCBcCi0gICAgICAgICAgIjAuMDE4NDMzLCAwLjAxODY0MSwgMC4wMTg2OTIsIDAuMDE4NzIzLCAwLjAxODc0MSwgMC4wMTg3MjQsIDAuMDE4NzY4IiwgXAotICAgICAgICAgICIwLjAxODM5LCAwLjAxODY3LCAwLjAxODcyMSwgMC4wMTg3MywgMC4wMTg3NTcsIDAuMDE4NzUyLCAwLjAxODc3NiIsIFwKLSAgICAgICAgICAiMC4wMTg1ODIsIDAuMDE4NjM1LCAwLjAxODY5MiwgMC4wMTg3MTMsIDAuMDE4NzM0LCAwLjAxODczNSwgMC4wMTg3NDkiLCBcCi0gICAgICAgICAgIjAuMDE4NjM5LCAwLjAxODc4MSwgMC4wMTg3OTQsIDAuMDE4Nzk5LCAwLjAxODc5NCwgMC4wMTg3ODMsIDAuMDE4NzkzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDUyNDcsIDAuMDA1Mzc2LCAwLjAwNTM5NywgMC4wMDU0MDMsIDAuMDA1NDA5LCAwLjAwNTQxMiwgMC4wMDU0MTUiLCBcCi0gICAgICAgICAgIjAuMDA0ODQ5LCAwLjAwNTIwMywgMC4wMDUyODksIDAuMDA1MzE5LCAwLjAwNTM0NywgMC4wMDUzNjIsIDAuMDA1MzgzIiwgXAotICAgICAgICAgICIwLjAwNDY1OCwgMC4wMDUwNDUsIDAuMDA1MTc3LCAwLjAwNTIyNiwgMC4wMDUyNzUsIDAuMDA1MzAyLCAwLjAwNTMyNyIsIFwKLSAgICAgICAgICAiMC4wMDQ1NzksIDAuMDA0OTM5LCAwLjAwNTA5MywgMC4wMDUxNDgsIDAuMDA1MjEyLCAwLjAwNTI0OCwgMC4wMDUyOTEiLCBcCi0gICAgICAgICAgIjAuMDA0NTM1LCAwLjAwNDg0OCwgMC4wMDUwMDksIDAuMDA1MDgsIDAuMDA1MTU1LCAwLjAwNTE5OCwgMC4wMDUyNDEiLCBcCi0gICAgICAgICAgIjAuMDA0NTI0LCAwLjAwNDc3LCAwLjAwNDkyLCAwLjAwNDk5NSwgMC4wMDUwOCwgMC4wMDUxMzEsIDAuMDA1MTgzIiwgXAotICAgICAgICAgICIwLjAwNDU1OCwgMC4wMDQ3MywgMC4wMDQ4NjksIDAuMDA0OTQzLCAwLjAwNTAyOSwgMC4wMDUwODQsIDAuMDA1MTQxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTQzODksIDAuMDE0NTA4LCAwLjAxNDUyNCwgMC4wMTQ1MzIsIDAuMDE0NTM0LCAwLjAxNDU0MiwgMC4wMTQ1MzkiLCBcCi0gICAgICAgICAgIjAuMDE0MjM0LCAwLjAxNDUzMywgMC4wMTQ1ODgsIDAuMDE0NjA2LCAwLjAxNDYyMiwgMC4wMTQ2MzMsIDAuMDE0NjM4IiwgXAotICAgICAgICAgICIwLjAxNDExMywgMC4wMTQ0NzQsIDAuMDE0NTYyLCAwLjAxNDU5OCwgMC4wMTQ2MiwgMC4wMTQ2MzYsIDAuMDE0NjQ5IiwgXAotICAgICAgICAgICIwLjAxNDExNywgMC4wMTQ0NDMsIDAuMDE0NTM5LCAwLjAxNDU2NywgMC4wMTQ2MDYsIDAuMDE0NjI1LCAwLjAxNDY0MyIsIFwKLSAgICAgICAgICAiMC4wMTQwODEsIDAuMDE0Mzc4LCAwLjAxNDUzNywgMC4wMTQ1ODEsIDAuMDE0NjAzLCAwLjAxNDYyMywgMC4wMTQ2NTIiLCBcCi0gICAgICAgICAgIjAuMDE0NDI0LCAwLjAxNDQ5MywgMC4wMTQ1NTMsIDAuMDE0NTgyLCAwLjAxNDYxOCwgMC4wMTQ2MjksIDAuMDE0NjM0IiwgXAotICAgICAgICAgICIwLjAxNDM3NCwgMC4wMTQ0NzQsIDAuMDE0NDczLCAwLjAxNDU2OSwgMC4wMTQ1OTQsIDAuMDE0NjIzLCAwLjAxNDYyOSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1MjA2LCAwLjAwNTM2NiwgMC4wMDUzOTIsIDAuMDA1NCwgMC4wMDU0MDcsIDAuMDA1NDExLCAwLjAwNTQxNSIsIFwKLSAgICAgICAgICAiMC4wMDQ3OTgsIDAuMDA1MTc5LCAwLjAwNTI3NSwgMC4wMDUzMDksIDAuMDA1MzM5LCAwLjAwNTM1NiwgMC4wMDUzNzEiLCBcCi0gICAgICAgICAgIjAuMDA0NjQsIDAuMDA1MDA5LCAwLjAwNTE1MSwgMC4wMDUyMDUsIDAuMDA1MjU5LCAwLjAwNTI4OSwgMC4wMDUzMTciLCBcCi0gICAgICAgICAgIjAuMDA0NjU5LCAwLjAwNDkyLCAwLjAwNTA2OSwgMC4wMDUxMzMsIDAuMDA1MTk5LCAwLjAwNTIzNywgMC4wMDUyNzQiLCBcCi0gICAgICAgICAgIjAuMDA0NzY1LCAwLjAwNDg4OCwgMC4wMDUwMjIsIDAuMDA1MDg2LCAwLjAwNTE1NywgMC4wMDUxOTksIDAuMDA1MjQxIiwgXAotICAgICAgICAgICIwLjAwNDk1OSwgMC4wMDQ5NDIsIDAuMDA1MDE3LCAwLjAwNTA2NiwgMC4wMDUxMjksIDAuMDA1MTcsIDAuMDA1MjEyIiwgXAotICAgICAgICAgICIwLjAwNTE2OCwgMC4wMDQ5MzksIDAuMDA0OTg0LCAwLjAwNTAyNywgMC4wMDUwODcsIDAuMDA1MTI4LCAwLjAwNTE3NCIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogTk9SM1g2ICoKLSAqIC0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoTk9SM1g2KSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuNjE2NDE2OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDUyODA1OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwNTI0Mjg5OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwNTI4MDU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyMTA3LCAwLjAwMjIyOSwgMC4wMDIyNzEsIDAuMDAyMjk2LCAwLjAwMjMxNCwgMC4wMDIzMjgsIDAuMDAyMzQ3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA0NDY2LCAwLjAwNDQ2OSwgMC4wMDQ0NjksIDAuMDA0NDY5LCAwLjAwNDQ3LCAwLjAwNDQ3LCAwLjAwNDQ3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDUzNTU4NzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDUzMjQ0NzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDUzNTU4NzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDIxMDUsIDAuMDAyMzA2LCAwLjAwMjM0MiwgMC4wMDIzNSwgMC4wMDIzNTcsIDAuMDAyMzY3LCAwLjAwMjM3OSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjU4MSwgMC4wMDI1ODIsIDAuMDAyNTgzLCAwLjAwMjU4MywgMC4wMDI1ODQsIDAuMDAyNTg0LCAwLjAwMjU4NCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQykgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDA1MDQ5NDg7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDA1MDQ4ODY7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDA1MDQ5NDg7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNjUxLCAwLjAwMDY1MiwgMC4wMDA2NTIsIDAuMDAwNjUyLCAwLjAwMDY1MiwgMC4wMDA2NTIsIDAuMDAwNjUyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyMDI3LCAwLjAwMjAyNywgMC4wMDIwMjgsIDAuMDAyMDI3LCAwLjAwMjAyNywgMC4wMDIwMjcsIDAuMDAyMDI2Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuNTY4NzQ1OwotICAgIGZ1bmN0aW9uIDogIighKChBK0IpK0MpKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDU3NzEsIDAuMTgxNzIxLCAwLjMxNjg5MSwgMC40MTM5MDgsIDAuNTY5MDc4LCAwLjcwNDkzLCAwLjg5ODIwMiIsIFwKLSAgICAgICAgICAiMC4wNTM5MTksIDAuMTkwMDA4LCAwLjMyNTYxMiwgMC40MjI2MzUsIDAuNTc3NjkxLCAwLjcxMzE3MywgMC45MDcxOCIsIFwKLSAgICAgICAgICAiMC4wNjI1NjUsIDAuMTk4Njk1LCAwLjMzNDQzOCwgMC40MzEyOTgsIDAuNTg2MTg1LCAwLjcyMjUzMSwgMC45MTU1NTIiLCBcCi0gICAgICAgICAgIjAuMDcwNDQ0LCAwLjIwNjgwNSwgMC4zNDI1MTIsIDAuNDM5NDE3LCAwLjU5NDM2NiwgMC43Mjk5NTIsIDAuOTI0MjUyIiwgXAotICAgICAgICAgICIwLjA3NzM4NiwgMC4yMTQ2OTksIDAuMzUwNDcyLCAwLjQ0NzQ4OCwgMC42MDI2NTQsIDAuNzM4MjM0LCAwLjkzMjA3IiwgXAotICAgICAgICAgICIwLjA4NzE0LCAwLjIyNzE4NiwgMC4zNjI5NjUsIDAuNDU5ODk1LCAwLjYxNTA3MiwgMC43NTA1NDQsIDAuOTQ0NzQ0IiwgXAotICAgICAgICAgICIwLjA5NDc3MiwgMC4yMzgxNzMsIDAuMzc0MDA3LCAwLjQ3MTE0NCwgMC42MjU5NzYsIDAuNzYyMDY0LCAwLjk1NTg5NyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3MDIyNywgMC4zNDI3MjUsIDAuNjE1MDg1LCAwLjgxMDczOCwgMS4xMjQ0MywgMS4zOTQ0NiwgMS43ODc5OSIsIFwKLSAgICAgICAgICAiMC4wNzAyOTcsIDAuMzQyODQ0LCAwLjYxNTg1OSwgMC44MTIwNTMsIDEuMTIxODksIDEuMzk3NjYsIDEuNzgzNzIiLCBcCi0gICAgICAgICAgIjAuMDcxNjA4LCAwLjM0MzIyOCwgMC42MTY3MTUsIDAuODExODg1LCAxLjEyMjEzLCAxLjM5NDM4LCAxLjc4Mzg0IiwgXAotICAgICAgICAgICIwLjA3NDE2NiwgMC4zNDM2MjEsIDAuNjE1NTI1LCAwLjgxMTg3NCwgMS4xMjIyNywgMS4zOTY2MiwgMS43ODM5NiIsIFwKLSAgICAgICAgICAiMC4wNzc3MjUsIDAuMzQ0MzYxLCAwLjYxNjMzOSwgMC44MTE5NDUsIDEuMTI0NDYsIDEuMzk3NjksIDEuNzg0MDIiLCBcCi0gICAgICAgICAgIjAuMDg0NjUyLCAwLjM0NjgyOCwgMC42MTcwNTcsIDAuODEwNTc2LCAxLjEyNDIyLCAxLjM5NjU3LCAxLjc4ODMyIiwgXAotICAgICAgICAgICIwLjA5MDcwMiwgMC4zNDk3MDUsIDAuNjE4NzUzLCAwLjgxMDc0MSwgMS4xMjM0NywgMS4zOTc4MywgMS43ODgzNSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxOTg0MiwgMC4wNzE4MTUsIDAuMTIyNzk5LCAwLjE1OTExOSwgMC4yMTcxOCwgMC4yNjc5LCAwLjM0MDYwNCIsIFwKLSAgICAgICAgICAiMC4wMzAxMDMsIDAuMDgxODgxLCAwLjEzMjg3NCwgMC4xNjkyMDUsIDAuMjI3MjM2LCAwLjI3ODAxMSwgMC4zNTA1NzgiLCBcCi0gICAgICAgICAgIjAuMDQyNzI0LCAwLjA5NTAyOCwgMC4xNDU3MzIsIDAuMTgyMzUyLCAwLjI0MDM3OSwgMC4yOTExNjMsIDAuMzYyOTY0IiwgXAotICAgICAgICAgICIwLjA1MzAyOCwgMC4xMDgwNzYsIDAuMTU5MDE1LCAwLjE5NTMyNCwgMC4yNTMzODcsIDAuMzA0MTA4LCAwLjM3NjYzNCIsIFwKLSAgICAgICAgICAiMC4wNjE0MzcsIDAuMTIwODM1LCAwLjE3MTEwNywgMC4yMDc4MTcsIDAuMjY1NzQ3LCAwLjMxNjQzMywgMC4zODg4NjciLCBcCi0gICAgICAgICAgIjAuMDczOTAzLCAwLjE0MjM1MywgMC4xOTI5MzUsIDAuMjI4MDA0LCAwLjI4NTk4NiwgMC4zMzcyMjcsIDAuNDA5NTY1IiwgXAotICAgICAgICAgICIwLjA4MzMyOCwgMC4xNTk0MDgsIDAuMjEwNzI4LCAwLjI0NjkxNywgMC4zMDUzOTMsIDAuMzU2MjAyLCAwLjQyODY2NCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzMDIyOSwgMC4xMzIwNjEsIDAuMjMzOTk1LCAwLjMwNjg0MSwgMC40MjMzOTQsIDAuNTI1NTk5LCAwLjY3MTM0IiwgXAotICAgICAgICAgICIwLjAzMjQ2OCwgMC4xMzIwMDIsIDAuMjM0MDA3LCAwLjMwNjg3NCwgMC40MjM0MzgsIDAuNTI1NDU4LCAwLjY3MTA3IiwgXAotICAgICAgICAgICIwLjAzOTg2NCwgMC4xMzM2MjksIDAuMjM0MDk4LCAwLjMwNjkyMSwgMC40MjM1NywgMC41MjU0ODEsIDAuNjcxMDgxIiwgXAotICAgICAgICAgICIwLjA0ODg5NSwgMC4xMzc5MDcsIDAuMjM1NjAyLCAwLjMwNzE0LCAwLjQyMzM5MSwgMC41MjUzOTIsIDAuNjcxMDY3IiwgXAotICAgICAgICAgICIwLjA1Nzk0NywgMC4xNDM5NjgsIDAuMjM5MzI3LCAwLjMwOTIzNiwgMC40MjM3NzUsIDAuNTI1NjAyLCAwLjY3MTE3NCIsIFwKLSAgICAgICAgICAiMC4wNjk2OTgsIDAuMTU1MDk3LCAwLjI0NjY3NCwgMC4zMTU1NzcsIDAuNDI3MjM5LCAwLjUyNjg0NiwgMC42NzExODMiLCBcCi0gICAgICAgICAgIjAuMDc5NjE2LCAwLjE2Njc5NSwgMC4yNTU0MzIsIDAuMzIyMTQ2LCAwLjQzMTY3LCAwLjUzMDAyMywgMC42NzI2MTQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDI1NDgsIDAuMTc4MzE5LCAwLjMxMzkwNiwgMC40MTA1ODYsIDAuNTY1ODQ2LCAwLjcwMTA5LCAwLjg5NTYxMyIsIFwKLSAgICAgICAgICAiMC4wNTA3MzMsIDAuMTg2ODE2LCAwLjMyMjQyMywgMC40MTk0MjQsIDAuNTc0ODQ0LCAwLjcwOTk1OSwgMC45MDM2NDgiLCBcCi0gICAgICAgICAgIjAuMDYwNTIyLCAwLjE5NjcwMSwgMC4zMzI0OTEsIDAuNDI5NDQ5LCAwLjU4NDE5MiwgMC43MTk5NjEsIDAuOTEzNjQxIiwgXAotICAgICAgICAgICIwLjA2OTkwMiwgMC4yMDY0NjgsIDAuMzQyMTk1LCAwLjQzOTQwNCwgMC41OTQxNSwgMC43MzAyMjcsIDAuOTIzMjg5IiwgXAotICAgICAgICAgICIwLjA3ODE2LCAwLjIxNjMzNSwgMC4zNTIxMTgsIDAuNDQ4OTkyLCAwLjYwMzk3OSwgMC43Mzk2MzMsIDAuOTMzMzU4IiwgXAotICAgICAgICAgICIwLjA4OTY1NCwgMC4yMzE4NzIsIDAuMzY3NzMxLCAwLjQ2MzY5NCwgMC42MTk4NTcsIDAuNzU1NTI4LCAwLjk0OTEyOCIsIFwKLSAgICAgICAgICAiMC4wOTgzODIsIDAuMjQ1NzExLCAwLjM4MTUxMywgMC40Nzg0NzQsIDAuNjMzNTQ0LCAwLjc2OTU5OCwgMC45NjM2NjgiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzAyMTgsIDAuMzQzNDE5LCAwLjYxNTY2MiwgMC44MTEzMTUsIDEuMTI0NDIsIDEuMzk2NTQsIDEuNzgzOTQiLCBcCi0gICAgICAgICAgIjAuMDcwNDUyLCAwLjM0MzQzMiwgMC42MTU4OCwgMC44MTIwMjcsIDEuMTIxNzUsIDEuMzk3NjMsIDEuNzg4MDUiLCBcCi0gICAgICAgICAgIjAuMDczMDgxLCAwLjM0MzQ1MiwgMC42MTY4MTksIDAuODEyMDk4LCAxLjEyMzU0LCAxLjM5NDgyLCAxLjc4ODA1IiwgXAotICAgICAgICAgICIwLjA3NzY1MSwgMC4zNDM0OTMsIDAuNjE1NjUsIDAuODEwMDg4LCAxLjEyNDIsIDEuMzk0NDUsIDEuNzg1MjkiLCBcCi0gICAgICAgICAgIjAuMDgzNjYzLCAwLjM0NDg5MSwgMC42MTUyNjUsIDAuODExMzk5LCAxLjEyMzUsIDEuMzk3NDYsIDEuNzgzODgiLCBcCi0gICAgICAgICAgIjAuMDkzOTk0LCAwLjM0ODY1NywgMC42MTcxMDEsIDAuODEyMDYyLCAxLjEyMjE1LCAxLjM5NzQyLCAxLjc4NTQxIiwgXAotICAgICAgICAgICIwLjEwMjYxMSwgMC4zNTMxODEsIDAuNjE5MTYyLCAwLjgxMjExOSwgMS4xMjM0MywgMS4zOTc2NCwgMS43ODM3NiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxODA0NCwgMC4wNjgxNDcsIDAuMTE3ODgxLCAwLjE1MzQzMywgMC4yMTAxOTksIDAuMjYwMDMxLCAwLjMzMDg1MSIsIFwKLSAgICAgICAgICAiMC4wMjgyODUsIDAuMDc4NDYyLCAwLjEyODIxLCAwLjE2MzcyNywgMC4yMjA1NDEsIDAuMjcwMjc0LCAwLjM0MTE4OCIsIFwKLSAgICAgICAgICAiMC4wNDAyNTMsIDAuMDkxNDYyLCAwLjE0MDc3MiwgMC4xNzY0NzgsIDAuMjMzNjQzLCAwLjI4MzI4NCwgMC4zNTM5MTUiLCBcCi0gICAgICAgICAgIjAuMDQ5NjI3LCAwLjEwNDMzMywgMC4xNTM2NzEsIDAuMTg5NzM2LCAwLjI0NjYzNCwgMC4yOTYyNjgsIDAuMzY3MzAzIiwgXAotICAgICAgICAgICIwLjA1NzYzMywgMC4xMTcxOSwgMC4xNjY1MzYsIDAuMjAyMDE4LCAwLjI1ODg5LCAwLjMwODE1NSwgMC4zNzkzNyIsIFwKLSAgICAgICAgICAiMC4wNjkwMzgsIDAuMTM4NjE4LCAwLjE4NzY1NCwgMC4yMjM2MzEsIDAuMjgwMzgyLCAwLjMzMDA4MiwgMC40MDAyNTIiLCBcCi0gICAgICAgICAgIjAuMDc3NDgyLCAwLjE1NTM2LCAwLjIwNjU0OSwgMC4yNDE5NTUsIDAuMjk4NTksIDAuMzQ4MzUxLCAwLjQxOTMyNCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyNjU0LCAwLjEyNjM2LCAwLjIyNjMwNywgMC4yOTc2ODIsIDAuNDExNjY5LCAwLjUxMTY3MiwgMC42NTQxNDciLCBcCi0gICAgICAgICAgIjAuMDI5Mjk0LCAwLjEyNjM1OSwgMC4yMjYzMTEsIDAuMjk3NjQyLCAwLjQxMTY3MywgMC41MTE0NjYsIDAuNjU0MTEiLCBcCi0gICAgICAgICAgIjAuMDM3MzA3LCAwLjEyODE4MSwgMC4yMjYyNjYsIDAuMjk3NTMyLCAwLjQxMTc1MSwgMC41MTE0NjEsIDAuNjU0MDkiLCBcCi0gICAgICAgICAgIjAuMDQ2NDYsIDAuMTMyNzY3LCAwLjIyODE5OSwgMC4yOTc5NTksIDAuNDExNzI5LCAwLjUxMTQ0OSwgMC42NTQwOTUiLCBcCi0gICAgICAgICAgIjAuMDU1MDY1LCAwLjEzOTA3LCAwLjIzMTgzNiwgMC4zMDAyOTUsIDAuNDEyMTUxLCAwLjUxMTQ1MywgMC42NTQwNTUiLCBcCi0gICAgICAgICAgIjAuMDY3MDM4LCAwLjE1MDI0OSwgMC4yNDAwMzEsIDAuMzA2MDI4LCAwLjQxNTQ4NiwgMC41MTMwOTUsIDAuNjU0MjMyIiwgXAotICAgICAgICAgICIwLjA3NzA4MiwgMC4xNjI1OTgsIDAuMjQ4MDgzLCAwLjMxMzI2MSwgMC40MjA0OTcsIDAuNTE2NjQyLCAwLjY1NTc5MSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzNTQwNCwgMC4xNzEyODcsIDAuMzA2ODQsIDAuNDA0MDIzLCAwLjU1ODY2NywgMC42OTQ2MTMsIDAuODg4MjI0IiwgXAotICAgICAgICAgICIwLjA0MzQwMSwgMC4xNzk4MjEsIDAuMzE1NDE0LCAwLjQxMjQzNiwgMC41Njc2OTksIDAuNzAzMDg5LCAwLjg5NzM3NyIsIFwKLSAgICAgICAgICAiMC4wNTQxMTcsIDAuMTkwMjE3LCAwLjMyNjEzNSwgMC40MjI4NTcsIDAuNTc3NDg1LCAwLjcxMzU0NSwgMC45MDc3ODYiLCBcCi0gICAgICAgICAgIjAuMDY0ODg3LCAwLjIwMDk5OCwgMC4zMzY4NjgsIDAuNDMzNjQ3LCAwLjU4ODkyLCAwLjcyMzk0NSwgMC45MTc4NjUiLCBcCi0gICAgICAgICAgIjAuMDczNjEyLCAwLjIxMTY3MSwgMC4zNDc0NzQsIDAuNDQ0MzQzLCAwLjU5OTUxLCAwLjczNDg0NSwgMC45Mjg1ODUiLCBcCi0gICAgICAgICAgIjAuMDg1MzY3LCAwLjIyODkyOSwgMC4zNjQ2MjksIDAuNDYxMDkyLCAwLjYxNjg5NiwgMC43NTIzODQsIDAuOTQ1Nzg2IiwgXAotICAgICAgICAgICIwLjA5NDI2MSwgMC4yNDQyNDMsIDAuMzc5NzgxLCAwLjQ3NjU3LCAwLjYzMTU0MiwgMC43Njc2NTgsIDAuOTYwODg1Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY5OTA0LCAwLjM0MzQyMSwgMC42MTYzMiwgMC44MTAxNDYsIDEuMTIyMTksIDEuMzk0MjksIDEuNzg4MjYiLCBcCi0gICAgICAgICAgIjAuMDcwNDAyLCAwLjM0MjcxNSwgMC42MTY3MjcsIDAuODEyMDkyLCAxLjEyMTc1LCAxLjM5NzgxLCAxLjc4MzkzIiwgXAotICAgICAgICAgICIwLjA3NjEyOSwgMC4zNDI3OTQsIDAuNjE2ODIzLCAwLjgxMTM4MSwgMS4xMjE0NCwgMS4zOTQxNiwgMS43ODQiLCBcCi0gICAgICAgICAgIjAuMDgzNzMyLCAwLjM0Mjg3MiwgMC42MTY3NzksIDAuODExMzg0LCAxLjEyNDQ3LCAxLjM5NTc3LCAxLjc4Njc3IiwgXAotICAgICAgICAgICIwLjA5MjYzNSwgMC4zNDU2MDcsIDAuNjE2NzAzLCAwLjgxMDAyNCwgMS4xMjQzOSwgMS4zOTY1OCwgMS43ODc3OSIsIFwKLSAgICAgICAgICAiMC4xMDcwNjQsIDAuMzUxNTExLCAwLjYxNzQwNSwgMC44MTIwMDUsIDEuMTIxNTQsIDEuMzk3NzMsIDEuNzg0NjciLCBcCi0gICAgICAgICAgIjAuMTE3NDExLCAwLjM1ODczMywgMC42MjAzNzcsIDAuODEwOTk3LCAxLjEyMzQ3LCAxLjM5NDIsIDEuNzg0NDEiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTU3LCAwLjA2NTQ5NCwgMC4xMTUxNzEsIDAuMTUwNjcyLCAwLjIwNzQ0OSwgMC4yNTcxNDcsIDAuMzI4MDg2IiwgXAotICAgICAgICAgICIwLjAyNjA0NiwgMC4wNzU4MDYsIDAuMTI1NTY0LCAwLjE2MTAxOCwgMC4yMTc3NzUsIDAuMjY3NDY1LCAwLjMzODUxNyIsIFwKLSAgICAgICAgICAiMC4wMzY5NjQsIDAuMDg4OSwgMC4xMzgzMzUsIDAuMTc0MTAzLCAwLjIzMDg3MiwgMC4yODA0OTQsIDAuMzUxNTI4IiwgXAotICAgICAgICAgICIwLjA0NTQ5OSwgMC4xMDE3NzYsIDAuMTUxMDM0LCAwLjE4NjUzMywgMC4yNDM0NTUsIDAuMjkzMTI2LCAwLjM2NDAyMSIsIFwKLSAgICAgICAgICAiMC4wNTI4NjIsIDAuMTE0ODc0LCAwLjE2MzkzMywgMC4yMDAxODksIDAuMjU2OTM4LCAwLjMwNjU1MiwgMC4zNzc2MTIiLCBcCi0gICAgICAgICAgIjAuMDYyNTksIDAuMTM1NTc0LCAwLjE4NTMzNywgMC4yMjA2ODcsIDAuMjc2NzE3LCAwLjMyNjM0NiwgMC4zOTc1NjYiLCBcCi0gICAgICAgICAgIjAuMDY5OTY0LCAwLjE1MjU3OSwgMC4yMDM1NTQsIDAuMjM4ODE1LCAwLjI5NjAxMSwgMC4zNDU1NzcsIDAuNDE2NDkzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDIzNjQyLCAwLjEyMzg5NSwgMC4yMjQwMDgsIDAuMjk0ODE0LCAwLjQwODk1OCwgMC41MTA0MDEsIDAuNjUxNjExIiwgXAotICAgICAgICAgICIwLjAyNjk0OCwgMC4xMjM1ODksIDAuMjIzNTIyLCAwLjI5NDg5MywgMC40MTAyMTMsIDAuNTA4OTYyLCAwLjY1MjA1NiIsIFwKLSAgICAgICAgICAiMC4wMzU3MjUsIDAuMTI1ODY3LCAwLjIyNDAyNiwgMC4yOTU0NDUsIDAuNDA4OTA1LCAwLjUxMDQzOSwgMC42NTIwNTciLCBcCi0gICAgICAgICAgIjAuMDQ1MTA4LCAwLjEzMDM5NywgMC4yMjU3NzgsIDAuMjk2MjIzLCAwLjQwODkxOCwgMC41MDkzODEsIDAuNjUyNTc3IiwgXAotICAgICAgICAgICIwLjA1MzI0NSwgMC4xMzY1NDIsIDAuMjI5NTU2LCAwLjI5NzQ1NSwgMC40MTA3MTgsIDAuNTA4NTQyLCAwLjY1MTY3IiwgXAotICAgICAgICAgICIwLjA2NTY3MSwgMC4xNDg2NjYsIDAuMjM3NzU0LCAwLjMwNDU4NiwgMC40MTMyMTQsIDAuNTEyMTk1LCAwLjY1MzEiLCBcCi0gICAgICAgICAgIjAuMDc1ODA1LCAwLjE2MDIyNywgMC4yNDY0NywgMC4zMTE5MTYsIDAuNDE4MjExLCAwLjUxNTQ2OSwgMC42NTUzNDgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxNDk2OCwgMC4wMTUwMywgMC4wMTUwMzksIDAuMDE1MDQyLCAwLjAxNTA0NCwgMC4wMTUwNDYsIDAuMDE1MDUiLCBcCi0gICAgICAgICAgIjAuMDE0Nzg3LCAwLjAxNDk2OCwgMC4wMTUwMDEsIDAuMDE1MDEyLCAwLjAxNTAyMiwgMC4wMTUwMjcsIDAuMDE1MDMzIiwgXAotICAgICAgICAgICIwLjAxNDcwMSwgMC4wMTQ5MDQsIDAuMDE0OTYsIDAuMDE0OTc5LCAwLjAxNDk5NiwgMC4wMTUwMDcsIDAuMDE1MDE2IiwgXAotICAgICAgICAgICIwLjAxNDY2NSwgMC4wMTQ4NTYsIDAuMDE0OTI0LCAwLjAxNDk0OSwgMC4wMTQ5ODIsIDAuMDE0OTg3LCAwLjAxNSIsIFwKLSAgICAgICAgICAiMC4wMTQ2NDcsIDAuMDE0ODIyLCAwLjAxNDg5NiwgMC4wMTQ5MjUsIDAuMDE0OTU0LCAwLjAxNDk2NCwgMC4wMTQ5OSIsIFwKLSAgICAgICAgICAiMC4wMTQ2MzQsIDAuMDE0NzgxLCAwLjAxNDg1NywgMC4wMTQ4ODcsIDAuMDE0OTI4LCAwLjAxNDk0NSwgMC4wMTQ5NjciLCBcCi0gICAgICAgICAgIjAuMDE0NjQ0LCAwLjAxNDc2MywgMC4wMTQ4MzQsIDAuMDE0ODY1LCAwLjAxNDkxLCAwLjAxNDkyOSwgMC4wMTQ5NTIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDA3LCAwLjAwNDA3NCwgMC4wMDQwNzUsIDAuMDA0MDc2LCAwLjAwNDA3NywgMC4wMDQwNzcsIDAuMDA0MDc2IiwgXAotICAgICAgICAgICIwLjAwMzg0OCwgMC4wMDM5MDgsIDAuMDAzOTE4LCAwLjAwMzkyMSwgMC4wMDM5MjYsIDAuMDAzOTI1LCAwLjAwMzkyNyIsIFwKLSAgICAgICAgICAiMC4wMDM3OTcsIDAuMDAzODc5LCAwLjAwMzg4MiwgMC4wMDM5MDIsIDAuMDAzOTA4LCAwLjAwMzkwOSwgMC4wMDM4ODkiLCBcCi0gICAgICAgICAgIjAuMDAzODA3LCAwLjAwMzg1OCwgMC4wMDM4NzksIDAuMDAzODgzLCAwLjAwMzg5LCAwLjAwMzg5NSwgMC4wMDM4OTciLCBcCi0gICAgICAgICAgIjAuMDAzOTMsIDAuMDAzODk4LCAwLjAwMzg4NiwgMC4wMDM5LCAwLjAwMzg5OCwgMC4wMDM4OTcsIDAuMDAzODk3IiwgXAotICAgICAgICAgICIwLjAwMzk0MiwgMC4wMDM5MjgsIDAuMDAzOTE2LCAwLjAwMzkwNywgMC4wMDM5MDIsIDAuMDAzOTE1LCAwLjAwMzkwNSIsIFwKLSAgICAgICAgICAiMC4wMDQwNTksIDAuMDA0MDE1LCAwLjAwMzk3LCAwLjAwMzk1NCwgMC4wMDM5NDksIDAuMDAzOTQsIDAuMDAzOTM0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTI5NTIsIDAuMDEzMDE1LCAwLjAxMzAyMywgMC4wMTMwMjIsIDAuMDEzMDI3LCAwLjAxMzAyOCwgMC4wMTMwMjkiLCBcCi0gICAgICAgICAgIjAuMDEyNzcyLCAwLjAxMjk0OSwgMC4wMTI5ODIsIDAuMDEyOTkyLCAwLjAxMzAwMywgMC4wMTMwMDksIDAuMDEzMDIxIiwgXAotICAgICAgICAgICIwLjAxMjY5MSwgMC4wMTI4OTcsIDAuMDEyOTQyLCAwLjAxMjk1NiwgMC4wMTI5NzcsIDAuMDEyOTkxLCAwLjAxMjk5NiIsIFwKLSAgICAgICAgICAiMC4wMTI2NTgsIDAuMDEyODQzLCAwLjAxMjkwOCwgMC4wMTI5MzMsIDAuMDEyOTU3LCAwLjAxMjk3LCAwLjAxMjk4MyIsIFwKLSAgICAgICAgICAiMC4wMTI2NDgsIDAuMDEyODEyLCAwLjAxMjg4LCAwLjAxMjkwNywgMC4wMTI5MzYsIDAuMDEyOTU0LCAwLjAxMjk3IiwgXAotICAgICAgICAgICIwLjAxMjY1NSwgMC4wMTI3NzgsIDAuMDEyODQ4LCAwLjAxMjg1MSwgMC4wMTI5MTIsIDAuMDEyOTMyLCAwLjAxMjk0MiIsIFwKLSAgICAgICAgICAiMC4wMTI2ODgsIDAuMDEyNzY1LCAwLjAxMjgyOSwgMC4wMTI4NjEsIDAuMDEyODk1LCAwLjAxMjkxNCwgMC4wMTI5MzkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjIzMywgMC4wMDIyNjUsIDAuMDAyMjY5LCAwLjAwMjI3LCAwLjAwMjI3MSwgMC4wMDIyNzEsIDAuMDAyMjcxIiwgXAotICAgICAgICAgICIwLjAwMjAzLCAwLjAwMjIwNSwgMC4wMDIyMzQsIDAuMDAyMjQzLCAwLjAwMjI1MSwgMC4wMDIyNTUsIDAuMDAyMjU5IiwgXAotICAgICAgICAgICIwLjAwMTkyNCwgMC4wMDIxNTYsIDAuMDAyMTk4LCAwLjAwMjIxNywgMC4wMDIyMzQsIDAuMDAyMjQxLCAwLjAwMjI0NiIsIFwKLSAgICAgICAgICAiMC4wMDE5MTEsIDAuMDAyMTIxLCAwLjAwMjE3MywgMC4wMDIyMDIsIDAuMDAyMjI1LCAwLjAwMjIzNCwgMC4wMDIyNDIiLCBcCi0gICAgICAgICAgIjAuMDAxOTY0LCAwLjAwMjE1NCwgMC4wMDIxNTcsIDAuMDAyMTgyLCAwLjAwMjIyNiwgMC4wMDIyMzEsIDAuMDAyMjQiLCBcCi0gICAgICAgICAgIjAuMDAyMDA5LCAwLjAwMjE0LCAwLjAwMjIxLCAwLjAwMjE5OSwgMC4wMDIyMTcsIDAuMDAyMjI2LCAwLjAwMjIyOCIsIFwKLSAgICAgICAgICAiMC4wMDIxNTYsIDAuMDAyMjUxLCAwLjAwMjIzMywgMC4wMDIyMzcsIDAuMDAyMjQzLCAwLjAwMjI0NywgMC4wMDIyNTIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMDgzMywgMC4wMTA5MzQsIDAuMDEwOTQ4LCAwLjAxMDk1MSwgMC4wMTA5NTUsIDAuMDEwOTU0LCAwLjAxMDk1OCIsIFwKLSAgICAgICAgICAiMC4wMTA1NzUsIDAuMDEwODM0LCAwLjAxMDg4OSwgMC4wMTA5MDMsIDAuMDEwOTE4LCAwLjAxMDkyNiwgMC4wMTA5MyIsIFwKLSAgICAgICAgICAiMC4wMTA1MjIsIDAuMDEwNzU1LCAwLjAxMDgyOSwgMC4wMTA4NTcsIDAuMDEwODgsIDAuMDEwODkzLCAwLjAxMDkwNiIsIFwKLSAgICAgICAgICAiMC4wMTA2MDUsIDAuMDEwNzI4LCAwLjAxMDgwMywgMC4wMTA4MzMsIDAuMDEwODYzLCAwLjAxMDg3OSwgMC4wMTA4OTEiLCBcCi0gICAgICAgICAgIjAuMDEwNjU0LCAwLjAxMDY5NSwgMC4wMTA3NjgsIDAuMDEwNzk5LCAwLjAxMDgzOCwgMC4wMTA4NiwgMC4wMTA4NzUiLCBcCi0gICAgICAgICAgIjAuMDEwODM1LCAwLjAxMDcwNiwgMC4wMTA3NTUsIDAuMDEwNzc3LCAwLjAxMDgxOSwgMC4wMTA4MzksIDAuMDEwODYiLCBcCi0gICAgICAgICAgIjAuMDExMDEsIDAuMDEwNzQ4LCAwLjAxMDc2OCwgMC4wMTA3ODksIDAuMDEwODEzLCAwLjAxMDgzLCAwLjAxMDg1MyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwMTU5LCAwLjAwMDI4OCwgMC4wMDAzMDIsIDAuMDAwMzA3LCAwLjAwMDMxLCAwLjAwMDMxMiwgMC4wMDAzMTQiLCBcCi0gICAgICAgICAgIjAuMDAwMDQ1LCAwLjAwMDMyMywgMC4wMDAzODEsIDAuMDAwNCwgMC4wMDA0MTYsIDAuMDAwNDI1LCAwLjAwMDQzMiIsIFwKLSAgICAgICAgICAiMC4wMDAxNzcsIDAuMDAwMjU0LCAwLjAwMDM0MywgMC4wMDAzNzQsIDAuMDAwNDAyLCAwLjAwMDQxNiwgMC4wMDA0MjkiLCBcCi0gICAgICAgICAgIjAuMDAwMTUxLCAwLjAwMDIxMSwgMC4wMDAzMTgsIDAuMDAwMzU1LCAwLjAwMDM4MywgMC4wMDA0MDgsIDAuMDAwNDI3IiwgXAotICAgICAgICAgICIwLjAwMDE1OCwgMC4wMDAxNzksIDAuMDAwMjg0LCAwLjAwMDMzMiwgMC4wMDAzNjksIDAuMDAwMzkzLCAwLjAwMDQxIiwgXAotICAgICAgICAgICIwLjAwMDA4NSwgMC4wMDAyMDcsIDAuMDAwMjc0LCAwLjAwMDMxMywgMC4wMDAzNTMsIDAuMDAwMzc4LCAwLjAwMDQxNCIsIFwKLSAgICAgICAgICAiMC4wMDAwNzIsIDAuMDAwMjMsIDAuMDAwMzA4LCAwLjAwMDMzOCwgMC4wMDAzNzQsIDAuMDAwMzkzLCAwLjAwMDQxNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBOT1I0QkJYMSAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoTk9SNEJCWDEpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4xODAxMTc7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEFOKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2NDkxODI7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjQ5MDI7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjQ5MTgyOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDQ1NSwgMC4wMDA0MjksIDAuMDAwNDI3LCAwLjAwMDQzNSwgMC4wMDA0NDUsIDAuMDAwNDcsIDAuMDAwNDk2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxNDk1LCAwLjAwMTQ3NiwgMC4wMDE0NzQsIDAuMDAxNDgsIDAuMDAxNDkxLCAwLjAwMTUxNywgMC4wMDE1NDEiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEJOKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA1NTYzNTk7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNTU2MTI4OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDU1NjM1OTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAzNTksIDAuMDAwMzMzLCAwLjAwMDMyOSwgMC4wMDAzMzYsIDAuMDAwMzQ4LCAwLjAwMDM3NCwgMC4wMDAzOTkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDE1OSwgMC4wMDE1NzEsIDAuMDAxNTY5LCAwLjAwMTU3NywgMC4wMDE1OTEsIDAuMDAxNjE3LCAwLjAwMTY0MSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQykgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwOTIzMTQzOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDkxODI4NzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA5MjMxNDM7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMTU1LCAwLjAwMDE1NSwgMC4wMDAxNTUsIDAuMDAwMTU1LCAwLjAwMDE1NSwgMC4wMDAxNTUsIDAuMDAwMTU1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzExLCAwLjAwMDMxLCAwLjAwMDMxLCAwLjAwMDMxLCAwLjAwMDMxLCAwLjAwMDMxLCAwLjAwMDMxIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihEKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA5MTE5NzQ7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwOTExOTc0OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDkxMTkzNzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxMTIsIDAuMDAwMTEyLCAwLjAwMDExMiwgMC4wMDAxMTIsIDAuMDAwMTEyLCAwLjAwMDExMiwgMC4wMDAxMTIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyNCwgMC4wMDAyNDEsIDAuMDAwMjQsIDAuMDAwMjQsIDAuMDAwMjQsIDAuMDAwMjQsIDAuMDAwMjQiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4wNjMxNDkyOwotICAgIGZ1bmN0aW9uIDogIighKCgoKCFBTikrKCFCTikpK0MpK0QpKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQU4iOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIxMTkwMywgMC4zMDM5NjMsIDAuODI2MDMxLCAxLjI4NjE4LCAxLjkwMDcxLCAzLjEyNjUzLCAzLjg5MzA0IiwgXAotICAgICAgICAgICIwLjIyMjA4NiwgMC4zMTQyMjUsIDAuODM1OTI2LCAxLjI5NjQ0LCAxLjkxMTI3LCAzLjEzNjc2LCAzLjkwMzM0IiwgXAotICAgICAgICAgICIwLjIzMzMxNywgMC4zMjUyMTksIDAuODQ3MzMxLCAxLjMwNzU2LCAxLjkyMTc1LCAzLjE0ODA3LCAzLjkxNDU0IiwgXAotICAgICAgICAgICIwLjI0MjM1NCwgMC4zMzQ0NjgsIDAuODU2NDQzLCAxLjMxNzA5LCAxLjkzMjA2LCAzLjE1NzMxLCAzLjkyMzg5IiwgXAotICAgICAgICAgICIwLjI0OTk2OCwgMC4zNDE5OTcsIDAuODY0Mjc1LCAxLjMyNTA3LCAxLjkzODA0LCAzLjE2NDg1LCAzLjkzMTUyIiwgXAotICAgICAgICAgICIwLjI2MDE4NSwgMC4zNTIzMjksIDAuODc0MzQxLCAxLjMzNDMxLCAxLjk0ODcsIDMuMTc1NzQsIDMuOTQxNzYiLCBcCi0gICAgICAgICAgIjAuMjY4MDAyLCAwLjM2MDE4MywgMC44ODI0ODEsIDEuMzQyNTEsIDEuOTU2MjMsIDMuMTgyOTcsIDMuOTQ5NTUiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzU4NDg2LCAwLjU0MTI5LCAxLjU4MzUxLCAyLjUwMTk0LCAzLjcyNzQxLCA2LjE2NTY3LCA3LjY5MzUxIiwgXAotICAgICAgICAgICIwLjM1ODQ5MSwgMC41NDIyMTgsIDEuNTgwNDEsIDIuNTAxOTksIDMuNzI3NzIsIDYuMTY2MjQsIDcuNjkzNiIsIFwKLSAgICAgICAgICAiMC4zNTg1NCwgMC41NDA5NTIsIDEuNTgwNTcsIDIuNTAxOSwgMy43MjcwOCwgNi4xNjUxNCwgNy42OTI0OCIsIFwKLSAgICAgICAgICAiMC4zNTg0OTYsIDAuNTQxNzc0LCAxLjU4MzQxLCAyLjUwMjI2LCAzLjcxOTQ4LCA2LjE2OTIxLCA3LjY5MzM0IiwgXAotICAgICAgICAgICIwLjM1ODU3OSwgMC41NDIxNjMsIDEuNTgzNjUsIDIuNTAyNjQsIDMuNzI2NywgNi4xNjQwNiwgNy42OTMzOSIsIFwKLSAgICAgICAgICAiMC4zNTg0NSwgMC41NDIxMjIsIDEuNTgwNDYsIDIuNDk5MzMsIDMuNzI2OTUsIDYuMTYzMDIsIDcuNjg5NjYiLCBcCi0gICAgICAgICAgIjAuMzU3NzM1LCAwLjU0MjEyNiwgMS41ODM2MSwgMi40OTc3LCAzLjcyMDMsIDYuMTY4NzksIDcuNjkzMiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzQ0MTIsIDAuMDk5NjM3LCAwLjI0MDY0LCAwLjM2NDYxMSwgMC41Mjk2NSwgMC44NjAwMzgsIDEuMDY1OTIiLCBcCi0gICAgICAgICAgIjAuMDg0MjM5LCAwLjEwOTQ1MSwgMC4yNTA1MTcsIDAuMzc0NDY5LCAwLjUzOTUzNCwgMC44Njk3OSwgMS4wNzYwMSIsIFwKLSAgICAgICAgICAiMC4wOTQ5NTgsIDAuMTIwMTY2LCAwLjI2MTIxMiwgMC4zODUxMzYsIDAuNTUwMTc5LCAwLjg4MDQ4LCAxLjA4NjcyIiwgXAotICAgICAgICAgICIwLjEwMzczMSwgMC4xMjg5MjcsIDAuMjY5OTUzLCAwLjM5Mzg2OSwgMC41NTkwMzgsIDAuODg5MTk0LCAxLjA5NTI5IiwgXAotICAgICAgICAgICIwLjExMDg4MywgMC4xMzYwODgsIDAuMjc3MDkxLCAwLjQwMTAxNywgMC41NjYwODIsIDAuODk2MTU1LCAxLjEwMjQ3IiwgXAotICAgICAgICAgICIwLjEyMDc4LCAwLjE0NjA3MiwgMC4yODcwMDYsIDAuNDEwOTU0LCAwLjU3NTM0MywgMC45MDUyNzYsIDEuMTEyNCIsIFwKLSAgICAgICAgICAiMC4xMjgzNzUsIDAuMTUzNDY0LCAwLjI5NDI5OCwgMC40MTgyNiwgMC41ODMzMTcsIDAuOTEzMzYxLCAxLjExOTU0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwMzQ1NSwgMC4xNTI5MTIsIDAuNDM0NjU4LCAwLjY4Mjk5OSwgMS4wMTQ1MSwgMS42Nzc2LCAyLjA5MTQ5IiwgXAotICAgICAgICAgICIwLjEwMzQzLCAwLjE1MjkwNiwgMC40MzQ2MDQsIDAuNjgzMTE5LCAxLjAxNDQyLCAxLjY3Nzc5LCAyLjA5MTk2IiwgXAotICAgICAgICAgICIwLjEwMzU0NywgMC4xNTI5NjUsIDAuNDM0NDY0LCAwLjY4Mjk4MSwgMS4wMTQ1NCwgMS42Nzc2MywgMi4wOTIzNSIsIFwKLSAgICAgICAgICAiMC4xMDM4ODMsIDAuMTUzMTkxLCAwLjQzNDM5OSwgMC42ODI5NzMsIDEuMDE0NDUsIDEuNjc3OTQsIDIuMDkxNSIsIFwKLSAgICAgICAgICAiMC4xMDQxNiwgMC4xNTMzOTIsIDAuNDM0NDY4LCAwLjY4Mjk3MSwgMS4wMTQ0LCAxLjY3NzI0LCAyLjA5MTUzIiwgXAotICAgICAgICAgICIwLjEwNDYyMywgMC4xNTM2MDksIDAuNDM0NzU2LCAwLjY4MzAxMywgMS4wMTQ0LCAxLjY3NzY3LCAyLjA5MTU0IiwgXAotICAgICAgICAgICIwLjEwNTI2MiwgMC4xNTM4NjQsIDAuNDM0NjUsIDAuNjgzMTc3LCAxLjAxNDg2LCAxLjY3NzgxLCAyLjA5MTUzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkJOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMDg0MzMsIDAuMzAwNTk1LCAwLjgyMjU2NywgMS4yODI4OCwgMS44OTY3LCAzLjEyMzg5LCAzLjg5MDA1IiwgXAotICAgICAgICAgICIwLjIxODU4NCwgMC4zMTA2ODYsIDAuODMyNjM5LCAxLjI5Mjg1LCAxLjkwNjkyLCAzLjEzMzYyLCAzLjg5OTkxIiwgXAotICAgICAgICAgICIwLjIyOTgxNSwgMC4zMjE4NzMsIDAuODQzOTcxLCAxLjMwNDgxLCAxLjkxODE1LCAzLjE0NDg3LCAzLjkxMTE4IiwgXAotICAgICAgICAgICIwLjIzODU2OSwgMC4zMzA3NTYsIDAuODUyODQxLCAxLjMxMzU0LCAxLjkyODQ5LCAzLjE1MzcyLCAzLjkyMDI5IiwgXAotICAgICAgICAgICIwLjI0NjQxMywgMC4zMzg3MTksIDAuODYwNDM1LCAxLjMyMTY2LCAxLjkzNTMxLCAzLjE2MTYsIDMuOTI4MjMiLCBcCi0gICAgICAgICAgIjAuMjU2ODIyLCAwLjM0OTA2LCAwLjg3MDk3NSwgMS4zMzIzOCwgMS45NDU1NywgMy4xNzE5NywgMy45Mzg1OSIsIFwKLSAgICAgICAgICAiMC4yNjQ3ODcsIDAuMzU2OTY4LCAwLjg3OTI3MiwgMS4zMzkzMywgMS45NTI5NCwgMy4xODA0OSwgMy45NDY5OCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zNTg0MjgsIDAuNTQxNTE2LCAxLjU4MDQzLCAyLjUwMTk1LCAzLjcyNjgzLCA2LjE2MjUyLCA3LjY5Mzg0IiwgXAotICAgICAgICAgICIwLjM1Nzg1MywgMC41NDIxNjksIDEuNTgwNTIsIDIuNDk3MjksIDMuNzI2ODksIDYuMTY0MjUsIDcuNjkxNzMiLCBcCi0gICAgICAgICAgIjAuMzU4NTg2LCAwLjU0MjE4MiwgMS41ODA0LCAyLjUwMjQ5LCAzLjcyNjg4LCA2LjE2NDI3LCA3LjY5MTY0IiwgXAotICAgICAgICAgICIwLjM1NzgyNSwgMC41NDIyMDQsIDEuNTgzNDYsIDIuNTAyMzQsIDMuNzE5NzcsIDYuMTY5MjMsIDcuNjkzMzQiLCBcCi0gICAgICAgICAgIjAuMzU4NDkzLCAwLjU0MjI3OCwgMS41ODE5LCAyLjUwMjUzLCAzLjcxOTE4LCA2LjE2OTE5LCA3LjY5MzM2IiwgXAotICAgICAgICAgICIwLjM1NzkzOSwgMC41NDIxNzQsIDEuNTgxMDQsIDIuNTAyNzEsIDMuNzIwMTUsIDYuMTY4NzMsIDcuNjkzMjIiLCBcCi0gICAgICAgICAgIjAuMzU4MzQxLCAwLjU0MTM2MSwgMS41ODM0OSwgMi41MDE3LCAzLjcyMjY0LCA2LjE2Mjg0LCA3LjY5MzU1Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3MzMxMywgMC4wOTgyNzIsIDAuMjM4ODQxLCAwLjM2MjY4OSwgMC41Mjc2MjYsIDAuODU3MjExLCAxLjA2MzI4IiwgXAotICAgICAgICAgICIwLjA4MzA2OCwgMC4xMDgwMTUsIDAuMjQ4NjExLCAwLjM3MjQzMSwgMC41MzczOTgsIDAuODY3MzUsIDEuMDczODgiLCBcCi0gICAgICAgICAgIjAuMDkzOTQ3LCAwLjExODg4OCwgMC4yNTk0OTIsIDAuMzgzMzI1LCAwLjU0ODM1MiwgMC44NzgxNDksIDEuMDg0ODUiLCBcCi0gICAgICAgICAgIjAuMTAyODU2LCAwLjEyNzc4NywgMC4yNjgzNjcsIDAuMzkyMDkyLCAwLjU1NzE2MywgMC44ODc1NzMsIDEuMDkzMTkiLCBcCi0gICAgICAgICAgIjAuMTEwMzY3LCAwLjEzNDg0OSwgMC4yNzU3MzcsIDAuMzk5NTgzLCAwLjU2NDMwMSwgMC44OTQzNDQsIDEuMTAwNzEiLCBcCi0gICAgICAgICAgIjAuMTIwMjczLCAwLjE0NTE2NiwgMC4yODUwMDMsIDAuNDA4Nzc0LCAwLjU3Mzg4LCAwLjkwMzk4LCAxLjEwOTg4IiwgXAotICAgICAgICAgICIwLjEyNzkwOCwgMC4xNTI3NywgMC4yOTMxOCwgMC40MTY5MDEsIDAuNTgyMDkzLCAwLjkxMTk2NiwgMS4xMTc4OSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDA0NjYsIDAuMTQ5ODg5LCAwLjQzMTQ2NSwgMC42ODAxNjEsIDEuMDExNDgsIDEuNjc0NDIsIDIuMDg4NjUiLCBcCi0gICAgICAgICAgIjAuMTAwNDMyLCAwLjE0OTg4NCwgMC40MzE1MjcsIDAuNjgwMTQxLCAxLjAxMTM5LCAxLjY3NDk4LCAyLjA4ODkzIiwgXAotICAgICAgICAgICIwLjEwMDYyNywgMC4xNDk5NDIsIDAuNDMxNTU4LCAwLjY4MDIxNywgMS4wMTE0NCwgMS42NzQ4OSwgMi4wODg4NSIsIFwKLSAgICAgICAgICAiMC4xMDA4OTEsIDAuMTUwMjQyLCAwLjQzMTQzNywgMC42ODAyMzcsIDEuMDExMzksIDEuNjc0ODEsIDIuMDg5MjciLCBcCi0gICAgICAgICAgIjAuMTAxMjQ4LCAwLjE1MDQxNSwgMC40MzE1MTQsIDAuNjc5OTkzLCAxLjAxMTYsIDEuNjc0MTcsIDIuMDg5MzgiLCBcCi0gICAgICAgICAgIjAuMTAxNzYxLCAwLjE1MDc0LCAwLjQzMTcyNSwgMC42ODAwNDIsIDEuMDExNDIsIDEuNjc0NSwgMi4wODgzNyIsIFwKLSAgICAgICAgICAiMC4xMDI0NzUsIDAuMTUxLCAwLjQzMTgyOCwgMC42ODAxNzgsIDEuMDExNDUsIDEuNjc0NTMsIDIuMDg4NDIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTg2MjgsIDAuMjc4NTY1LCAwLjgwMDMwOSwgMS4yNjA2NiwgMS44NzU2MiwgMy4xMDIwMSwgMy44NjczIiwgXAotICAgICAgICAgICIwLjE5NDM3LCAwLjI4NjcyMywgMC44MDg1MzQsIDEuMjY5NTQsIDEuODgzNjQsIDMuMTEwMywgMy44NzU4OCIsIFwKLSAgICAgICAgICAiMC4yMDM4NTgsIDAuMjk2MjQxLCAwLjgxODU3OSwgMS4yNzg5MywgMS44OTM5MiwgMy4xMTkxOCwgMy44ODU3NyIsIFwKLSAgICAgICAgICAiMC4yMTM0NTYsIDAuMzA1ODAzLCAwLjgyNzkyNCwgMS4yODg0MywgMS45MDI5MywgMy4xMjg4LCAzLjg5NTMzIiwgXAotICAgICAgICAgICIwLjIyMzA1OSwgMC4zMTQ5NTEsIDAuODM3NDgzLCAxLjI5Nzc2LCAxLjkxMTQ5LCAzLjEzOTYzLCAzLjkwNDk4IiwgXAotICAgICAgICAgICIwLjIzODM2LCAwLjMzMDc3MiwgMC44NTM0MjMsIDEuMzEzNSwgMS45Mjc4LCAzLjE1NDk5LCAzLjkyMDc5IiwgXAotICAgICAgICAgICIwLjI1MjA2NywgMC4zNDQwMTEsIDAuODY2NzE1LCAxLjMyNzAyLCAxLjk0MDcyLCAzLjE2Nzc5LCAzLjkzNDM2Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjM1ODQ4OCwgMC41NDIzNjQsIDEuNTgzNDQsIDIuNTAyMDcsIDMuNzI3OTEsIDYuMTYyMjEsIDcuNjkyNTUiLCBcCi0gICAgICAgICAgIjAuMzU3ODY5LCAwLjU0MjM4NiwgMS41ODM0MywgMi41MDI1OSwgMy43Mjc2NiwgNi4xNzAwOSwgNy42OTExOSIsIFwKLSAgICAgICAgICAiMC4zNTc5OCwgMC41NDIzMSwgMS41ODM3MSwgMi41MDIzLCAzLjcxOTM4LCA2LjE2OTIxLCA3LjY5MzYiLCBcCi0gICAgICAgICAgIjAuMzU4Njk4LCAwLjU0MjI1OCwgMS41ODA0OSwgMi40OTc2MiwgMy43Mjc0OCwgNi4xNjU1MiwgNy42OTI5IiwgXAotICAgICAgICAgICIwLjM1OTkxOCwgMC41NDEzNTIsIDEuNTgzMjYsIDIuNDk5MTEsIDMuNzI2MjgsIDYuMTYyMjEsIDcuNjkyODkiLCBcCi0gICAgICAgICAgIjAuMzYzMzQyLCAwLjU0MzgzOCwgMS41ODM2NCwgMi41MDE4OSwgMy43MjcwOSwgNi4xNjE3NSwgNy42OTM0OCIsIFwKLSAgICAgICAgICAiMC4zNjgyMjUsIDAuNTQ1MjQ2LCAxLjU4MzM1LCAyLjUwMTcsIDMuNzIyMjQsIDYuMTY4OTgsIDcuNjkzNDEiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDUzMTg2LCAwLjA3Nzk3OCwgMC4yMTgyNjQsIDAuMzQyMTc3LCAwLjUwNzE5LCAwLjgzNzIzOCwgMS4wNDMyNSIsIFwKLSAgICAgICAgICAiMC4wNjMzNjcsIDAuMDg4MjIsIDAuMjI4NTMxLCAwLjM1MjE4MiwgMC41MTcxMjUsIDAuODQ2OTkxLCAxLjA1MzE3IiwgXAotICAgICAgICAgICIwLjA3NjQ1OSwgMC4xMDEyNTYsIDAuMjQxNTUyLCAwLjM2NDEyMywgMC41MjkwMzgsIDAuODYwMjA1LCAxLjA2NTM2IiwgXAotICAgICAgICAgICIwLjA4OTU4OSwgMC4xMTQyNjgsIDAuMjU0MTU5LCAwLjM3Nzc2MiwgMC41NDE0MTIsIDAuODczMTIxLCAxLjA3OTY3IiwgXAotICAgICAgICAgICIwLjEwMjIxOCwgMC4xMjcyMDksIDAuMjY3MDUzLCAwLjM5MDU2NSwgMC41NTUzNTcsIDAuODgzNjAyLCAxLjA4OTczIiwgXAotICAgICAgICAgICIwLjEyMTg3NCwgMC4xNDgxNzEsIDAuMjg2OTIxLCAwLjQxMTE0OCwgMC41NzU1NjcsIDAuOTA1MzYyLCAxLjExMTYiLCBcCi0gICAgICAgICAgIjAuMTM2ODQ2LCAwLjE2NTY3MywgMC4zMDQ2OTIsIDAuNDI4ODgsIDAuNTk0OTYyLCAwLjkyMzE5NiwgMS4xMjkzMiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTY4MzMsIDAuMTQ2NTQ0LCAwLjQyODI0NCwgMC42NzcwOCwgMS4wMDg1MywgMS42NzIwOSwgMi4wODU5OSIsIFwKLSAgICAgICAgICAiMC4wOTY5MDEsIDAuMTQ2NjEyLCAwLjQyODI1NywgMC42NzY4NjcsIDEuMDA4MzMsIDEuNjcxMTYsIDIuMDg2MTEiLCBcCi0gICAgICAgICAgIjAuMTAwMDMxLCAwLjE0Nzc3NCwgMC40MjgzNDgsIDAuNjc2OTI1LCAxLjAwODM3LCAxLjY3MTM5LCAyLjA4NjA2IiwgXAotICAgICAgICAgICIwLjEwNTcwMSwgMC4xNTE1NjUsIDAuNDI4MjQsIDAuNjc2OTkyLCAxLjAwODU1LCAxLjY3MTE5LCAyLjA4NTUxIiwgXAotICAgICAgICAgICIwLjExMzAxOCwgMC4xNTcxMjksIDAuNDI4NTU3LCAwLjY3NjgxNiwgMS4wMDg0NiwgMS42NzEzMSwgMi4wODU3NyIsIFwKLSAgICAgICAgICAiMC4xMjY0NjcsIDAuMTY3NzczLCAwLjQzMjAzNywgMC42NzY4NTgsIDEuMDA4NCwgMS42NzA4MywgMi4wODYwMSIsIFwKLSAgICAgICAgICAiMC4xMzk1MjEsIDAuMTc5NTUsIDAuNDM3Mjc5LCAwLjY3ODU4MiwgMS4wMDgzNiwgMS42NzE0NSwgMi4wODYxOCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJEIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNzY3MjUsIDAuMjY4ODUsIDAuNzkwODE0LCAxLjI1MTE2LCAxLjg2NTk3LCAzLjA5MTQyLCAzLjg1Nzk1IiwgXAotICAgICAgICAgICIwLjE4NDYxMywgMC4yNzY4MTksIDAuNzk5MDkxLCAxLjI1ODc1LCAxLjg3NDAyLCAzLjA5OTc5LCAzLjg2NjQyIiwgXAotICAgICAgICAgICIwLjE5NDU2MywgMC4yODY5NDIsIDAuODA5MTA3LCAxLjI2OTY1LCAxLjg4NDQxLCAzLjExMDExLCAzLjg3NjUzIiwgXAotICAgICAgICAgICIwLjIwNDY3MywgMC4yOTY5ODksIDAuODE5MTczLCAxLjI3OTQyLCAxLjg5NDEyLCAzLjEyMTMyLCAzLjg4NjgyIiwgXAotICAgICAgICAgICIwLjIxNDkxLCAwLjMwNzI2NywgMC44Mjk2MDEsIDEuMjg5NjIsIDEuOTA0NDcsIDMuMTMwNzgsIDMuODk3MzQiLCBcCi0gICAgICAgICAgIjAuMjMxNDc5LCAwLjMyMzY1NSwgMC44NDU5MjMsIDEuMzA2MTcsIDEuOTE5NjgsIDMuMTQ3MTYsIDMuOTEzNzkiLCBcCi0gICAgICAgICAgIjAuMjQ2MjQ0LCAwLjMzODE4OCwgMC44NjAwNjEsIDEuMzIwNTgsIDEuOTM0MDYsIDMuMTYxMjMsIDMuOTI3NzkiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzU4NDg2LCAwLjU0MjIwNiwgMS41ODM0OCwgMi41MDIxLCAzLjcyNzc3LCA2LjE2NjMxLCA3LjY5MzU4IiwgXAotICAgICAgICAgICIwLjM1ODUyMSwgMC41NDIyMTgsIDEuNTgzNiwgMi41MDE0OSwgMy43Mjc3LCA2LjE2NDMxLCA3LjY5MzgyIiwgXAotICAgICAgICAgICIwLjM1ODI0NiwgMC41NDIyMjEsIDEuNTgwNTQsIDIuNDk3NTksIDMuNzE5MzksIDYuMTY0MzQsIDcuNjkxODMiLCBcCi0gICAgICAgICAgIjAuMzU3NTY4LCAwLjU0MjEwMywgMS41ODMyOCwgMi40OTkyNCwgMy43MjcyNywgNi4xNjI1OCwgNy42OTEyOCIsIFwKLSAgICAgICAgICAiMC4zNTk5NjYsIDAuNTQxOTQ5LCAxLjU4MzQ4LCAyLjUwMDIzLCAzLjcyNzM4LCA2LjE2OTM3LCA3LjY5MzY5IiwgXAotICAgICAgICAgICIwLjM2NTQ2NywgMC41NDM0MTYsIDEuNTgsIDIuNTAxODYsIDMuNzI2MjMsIDYuMTYyMzgsIDcuNjkzNDkiLCBcCi0gICAgICAgICAgIjAuMzcyNTQyLCAwLjU0NzE0NiwgMS41ODMxNCwgMi41MDE4NiwgMy43MjYyLCA2LjE2ODgsIDcuNjkzMjMiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDUwODUxLCAwLjA3NTU5NywgMC4yMTU3NjYsIDAuMzM5NTE0LCAwLjUwNDM4MiwgMC44MzQyNDcsIDEuMDQwMzMiLCBcCi0gICAgICAgICAgIjAuMDYxMSwgMC4wODU5MTQsIDAuMjI2MTg2LCAwLjM0OTc5MSwgMC41MTQ2NTUsIDAuODQ0NTE5LCAxLjA1MDU5IiwgXAotICAgICAgICAgICIwLjA3NDE1OCwgMC4wOTg2NDQsIDAuMjM4ODMzLCAwLjM2MTc1NCwgMC41MjY2MDUsIDAuODU2NzIzLCAxLjA2MjQ4IiwgXAotICAgICAgICAgICIwLjA4NzAwNywgMC4xMTEzMDEsIDAuMjUxNzM3LCAwLjM3NTI0NywgMC41NDAwNTQsIDAuODY5MTU3LCAxLjA3NDUiLCBcCi0gICAgICAgICAgIjAuMDk5ODE3LCAwLjEyNDY1MywgMC4yNjQ2ODIsIDAuMzg4MDI4LCAwLjU1Mjk4MSwgMC44ODI3NTEsIDEuMDg3OTEiLCBcCi0gICAgICAgICAgIjAuMTE5Mjc0LCAwLjE0NTY2LCAwLjI4NTc4OSwgMC40MDg2OTgsIDAuNTczMjkzLCAwLjkwMzAxOSwgMS4xMDkyMyIsIFwKLSAgICAgICAgICAiMC4xMzM3ODcsIDAuMTYzNDQ4LCAwLjMwMjYxMSwgMC40MjY3NTYsIDAuNTkyNSwgMC45MjIyNjUsIDEuMTI4NDciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk0NTU5LCAwLjE0NDQ1OCwgMC40MjcyOTYsIDAuNjc1Mzg4LCAxLjAwNjMsIDEuNjczOTMsIDIuMDg1MTQiLCBcCi0gICAgICAgICAgIjAuMDk0Njc4LCAwLjE0NDQ1NywgMC40MjU5NDEsIDAuNjc0NywgMS4wMDk1MywgMS42NzQyOCwgMi4wODQ1NiIsIFwKLSAgICAgICAgICAiMC4wOTc5NTgsIDAuMTQ1NzMyLCAwLjQyNzIzMSwgMC42NzUxMDksIDEuMDA2MiwgMS42NzI0NywgMi4wODQzOSIsIFwKLSAgICAgICAgICAiMC4xMDM3ODYsIDAuMTUwMDgzLCAwLjQyNjQyMSwgMC42NzU5OTUsIDEuMDA2NTMsIDEuNjY5NzMsIDIuMDg0NjMiLCBcCi0gICAgICAgICAgIjAuMTEwNzIxLCAwLjE1NTM5NywgMC40MjYyNjksIDAuNjc1MzAyLCAxLjAwNjc1LCAxLjY3NDA4LCAyLjA4Mzg0IiwgXAotICAgICAgICAgICIwLjEyNDM4NSwgMC4xNjYzNzksIDAuNDMwMTU1LCAwLjY3Njg2NSwgMS4wMDY1NywgMS42Njk2OSwgMi4wODU0MSIsIFwKLSAgICAgICAgICAiMC4xMzgxNjMsIDAuMTc3MjYxLCAwLjQzNjM5MywgMC42NzcwNjMsIDEuMDA3MywgMS42NzA0OCwgMi4wODk2NiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkFOIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDMyODYsIDAuMDAzMjg3LCAwLjAwMzI4OCwgMC4wMDMyODcsIDAuMDAzMjg4LCAwLjAwMzI4OCwgMC4wMDMyODgiLCBcCi0gICAgICAgICAgIjAuMDAzMjU5LCAwLjAwMzI2MSwgMC4wMDMyNjMsIDAuMDAzMjYzLCAwLjAwMzI2MywgMC4wMDMyNjMsIDAuMDAzMjYzIiwgXAotICAgICAgICAgICIwLjAwMzI2MSwgMC4wMDMyNjQsIDAuMDAzMjY3LCAwLjAwMzI2OCwgMC4wMDMyNjgsIDAuMDAzMjY4LCAwLjAwMzI2OCIsIFwKLSAgICAgICAgICAiMC4wMDMyNjIsIDAuMDAzMjY2LCAwLjAwMzI3LCAwLjAwMzI3MiwgMC4wMDMyNzIsIDAuMDAzMjcyLCAwLjAwMzI3NSIsIFwKLSAgICAgICAgICAiMC4wMDMyNzIsIDAuMDAzMjc2LCAwLjAwMzI4MSwgMC4wMDMyODMsIDAuMDAzMjgzLCAwLjAwMzI4MywgMC4wMDMyODciLCBcCi0gICAgICAgICAgIjAuMDAzMjk2LCAwLjAwMzI5OSwgMC4wMDMzMDcsIDAuMDAzMzA5LCAwLjAwMzMwOSwgMC4wMDMzMDksIDAuMDAzMzExIiwgXAotICAgICAgICAgICIwLjAwMzMyLCAwLjAwMzMyNCwgMC4wMDMzMzEsIDAuMDAzMzMzLCAwLjAwMzMzMywgMC4wMDMzMzMsIDAuMDAzMzM3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyOTE5LCAwLjAwMjkyLCAwLjAwMjkyLCAwLjAwMjkyLCAwLjAwMjkxOSwgMC4wMDI5MTksIDAuMDAyOTE4IiwgXAotICAgICAgICAgICIwLjAwMjg5NSwgMC4wMDI4OTUsIDAuMDAyODk1LCAwLjAwMjg5NSwgMC4wMDI4OTUsIDAuMDAyODk0LCAwLjAwMjg5NCIsIFwKLSAgICAgICAgICAiMC4wMDI4OTEsIDAuMDAyODkyLCAwLjAwMjg5MywgMC4wMDI4OTQsIDAuMDAyODkzLCAwLjAwMjg5MywgMC4wMDI4OTIiLCBcCi0gICAgICAgICAgIjAuMDAyODkyLCAwLjAwMjg5MywgMC4wMDI4OTMsIDAuMDAyODkzLCAwLjAwMjg5NCwgMC4wMDI4OTMsIDAuMDAyODkzIiwgXAotICAgICAgICAgICIwLjAwMjkwNCwgMC4wMDI5MDUsIDAuMDAyOTA2LCAwLjAwMjkwNywgMC4wMDI5MDcsIDAuMDAyOTA2LCAwLjAwMjkwNiIsIFwKLSAgICAgICAgICAiMC4wMDI5MjYsIDAuMDAyOTI3LCAwLjAwMjkyOCwgMC4wMDI5MjgsIDAuMDAyOTE5LCAwLjAwMjkxOSwgMC4wMDI5MjgiLCBcCi0gICAgICAgICAgIjAuMDAyOTQ0LCAwLjAwMjk0NSwgMC4wMDI5NDQsIDAuMDAyOTQ3LCAwLjAwMjk0NCwgMC4wMDI5NDQsIDAuMDAyOTQ0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQk4iOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjk2MywgMC4wMDI5NjUsIDAuMDAyOTY5LCAwLjAwMjk2OSwgMC4wMDI5NjgsIDAuMDAyOTY4LCAwLjAwMjk2OCIsIFwKLSAgICAgICAgICAiMC4wMDI5MzEsIDAuMDAyOTM1LCAwLjAwMjkzOSwgMC4wMDI5NCwgMC4wMDI5NDEsIDAuMDAyOTQxLCAwLjAwMjkzOSIsIFwKLSAgICAgICAgICAiMC4wMDI5MywgMC4wMDI5MzUsIDAuMDAyOTQzLCAwLjAwMjk0NCwgMC4wMDI5NDUsIDAuMDAyOTQ2LCAwLjAwMjk0NiIsIFwKLSAgICAgICAgICAiMC4wMDI5NCwgMC4wMDI5NDUsIDAuMDAyOTU0LCAwLjAwMjk1NywgMC4wMDI5NTcsIDAuMDAyOTU4LCAwLjAwMjk1OSIsIFwKLSAgICAgICAgICAiMC4wMDI5MzgsIDAuMDAyOTQ0LCAwLjAwMjk1NSwgMC4wMDI5NTcsIDAuMDAyOTU4LCAwLjAwMjk1OSwgMC4wMDI5NjIiLCBcCi0gICAgICAgICAgIjAuMDAyOTYsIDAuMDAyOTY3LCAwLjAwMjk3NywgMC4wMDI5ODEsIDAuMDAyOTgzLCAwLjAwMjk4NCwgMC4wMDI5ODgiLCBcCi0gICAgICAgICAgIjAuMDAyOTgzLCAwLjAwMjk5LCAwLjAwMzAwMywgMC4wMDMwMDcsIDAuMDAzMDA4LCAwLjAwMzAxLCAwLjAwMzAxMSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjY2NywgMC4wMDI2NjcsIDAuMDAyNjY4LCAwLjAwMjY2OCwgMC4wMDI2NjgsIDAuMDAyNjY3LCAwLjAwMjY2NyIsIFwKLSAgICAgICAgICAiMC4wMDI2NDMsIDAuMDAyNjQ0LCAwLjAwMjY0NSwgMC4wMDI2NDUsIDAuMDAyNjQ1LCAwLjAwMjY0NSwgMC4wMDI2NDUiLCBcCi0gICAgICAgICAgIjAuMDAyNjQsIDAuMDAyNjQxLCAwLjAwMjY0NSwgMC4wMDI2NDUsIDAuMDAyNjQ1LCAwLjAwMjY0NSwgMC4wMDI2NDUiLCBcCi0gICAgICAgICAgIjAuMDAyNjM5LCAwLjAwMjY0MiwgMC4wMDI2NDUsIDAuMDAyNjQ2LCAwLjAwMjY0NiwgMC4wMDI2NDYsIDAuMDAyNjQ2IiwgXAotICAgICAgICAgICIwLjAwMjY0OCwgMC4wMDI2NSwgMC4wMDI2NTUsIDAuMDAyNjU3LCAwLjAwMjY1NSwgMC4wMDI2NTcsIDAuMDAyNjU3IiwgXAotICAgICAgICAgICIwLjAwMjY2NywgMC4wMDI2NywgMC4wMDI2NzUsIDAuMDAyNjc3LCAwLjAwMjY3NiwgMC4wMDI2NzcsIDAuMDAyNjc3IiwgXAotICAgICAgICAgICIwLjAwMjY4OCwgMC4wMDI2OTMsIDAuMDAyNjk5LCAwLjAwMjY5OSwgMC4wMDI3MDEsIDAuMDAyNzAyLCAwLjAwMjY5OSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjYwOCwgMC4wMDI2MDksIDAuMDAyNjExLCAwLjAwMjYxMSwgMC4wMDI2MTEsIDAuMDAyNjEzLCAwLjAwMjYxMSIsIFwKLSAgICAgICAgICAiMC4wMDI1OTQsIDAuMDAyNTk5LCAwLjAwMjYwNywgMC4wMDI2MDgsIDAuMDAyNjA5LCAwLjAwMjYxLCAwLjAwMjYxIiwgXAotICAgICAgICAgICIwLjAwMjU4MiwgMC4wMDI1OSwgMC4wMDI2MDMsIDAuMDAyNjA2LCAwLjAwMjYwOCwgMC4wMDI2MDksIDAuMDAyNjA4IiwgXAotICAgICAgICAgICIwLjAwMjU3NCwgMC4wMDI1ODMsIDAuMDAyNTk5LCAwLjAwMjYwMywgMC4wMDI2MDYsIDAuMDAyNjA4LCAwLjAwMjYwOCIsIFwKLSAgICAgICAgICAiMC4wMDI1NjgsIDAuMDAyNTc0LCAwLjAwMjU5NiwgMC4wMDI2MDEsIDAuMDAyNjA1LCAwLjAwMjYwNywgMC4wMDI2MDgiLCBcCi0gICAgICAgICAgIjAuMDAyNTYzLCAwLjAwMjU3MSwgMC4wMDI1OTIsIDAuMDAyNTk4LCAwLjAwMjYwMiwgMC4wMDI2MDUsIDAuMDAyNjA1IiwgXAotICAgICAgICAgICIwLjAwMjU2MiwgMC4wMDI1NjksIDAuMDAyNTg4LCAwLjAwMjU5NCwgMC4wMDI2LCAwLjAwMjYwNCwgMC4wMDI2MDUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDAyODIsIDAuMDAwMjgzLCAwLjAwMDI4MywgMC4wMDAyODMsIDAuMDAwMjgzLCAwLjAwMDI4MywgMC4wMDAyODMiLCBcCi0gICAgICAgICAgIjAuMDAwMjgzLCAwLjAwMDI4OCwgMC4wMDAyOTQsIDAuMDAwMjk1LCAwLjAwMDI5NiwgMC4wMDAyOTcsIDAuMDAwMjk3IiwgXAotICAgICAgICAgICIwLjAwMDI3NSwgMC4wMDAyODMsIDAuMDAwMjk0LCAwLjAwMDI5OCwgMC4wMDAyOTksIDAuMDAwMjk5LCAwLjAwMDMwMSIsIFwKLSAgICAgICAgICAiMC4wMDAyNzIsIDAuMDAwMjgsIDAuMDAwMjkzLCAwLjAwMDI5NiwgMC4wMDAyOTksIDAuMDAwMjk5LCAwLjAwMDI5OSIsIFwKLSAgICAgICAgICAiMC4wMDAyNzgsIDAuMDAwMjg0LCAwLjAwMDI5MiwgMC4wMDAyOTYsIDAuMDAwMjk5LCAwLjAwMDMwMSwgMC4wMDAzMDEiLCBcCi0gICAgICAgICAgIjAuMDAwMjg1LCAwLjAwMDI4LCAwLjAwMDI5NiwgMC4wMDAyOTUsIDAuMDAwMywgMC4wMDAzLCAwLjAwMDMwMSIsIFwKLSAgICAgICAgICAiMC4wMDAyOTgsIDAuMDAwMjk4LCAwLjAwMDI5OSwgMC4wMDAzMDEsIDAuMDAwMywgMC4wMDAzMDIsIDAuMDAwMzAyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyMjcsIDAuMDAyMjcyLCAwLjAwMjI3NCwgMC4wMDIyNzUsIDAuMDAyMjc1LCAwLjAwMjI3NiwgMC4wMDIyNzYiLCBcCi0gICAgICAgICAgIjAuMDAyMjUsIDAuMDAyMjU3LCAwLjAwMjI2OSwgMC4wMDIyNzEsIDAuMDAyMjcyLCAwLjAwMjI3MywgMC4wMDIyNzQiLCBcCi0gICAgICAgICAgIjAuMDAyMjM0LCAwLjAwMjI0NSwgMC4wMDIyNjMsIDAuMDAyMjY3LCAwLjAwMjI3LCAwLjAwMjI3MSwgMC4wMDIyNzIiLCBcCi0gICAgICAgICAgIjAuMDAyMjI3LCAwLjAwMjIzOCwgMC4wMDIyNTksIDAuMDAyMjY0LCAwLjAwMjI2NywgMC4wMDIyNzIsIDAuMDAyMjcxIiwgXAotICAgICAgICAgICIwLjAwMjIyNSwgMC4wMDIyMzQsIDAuMDAyMjU1LCAwLjAwMjI2MiwgMC4wMDIyNjUsIDAuMDAyMjY5LCAwLjAwMjI3IiwgXAotICAgICAgICAgICIwLjAwMjIzLCAwLjAwMjIzMywgMC4wMDIyNTIsIDAuMDAyMjU5LCAwLjAwMjI2MywgMC4wMDIyNjcsIDAuMDAyMjY4IiwgXAotICAgICAgICAgICIwLjAwMjIzOCwgMC4wMDIyMzgsIDAuMDAyMjUyLCAwLjAwMjI1NywgMC4wMDIyNjIsIDAuMDAyMjY1LCAwLjAwMjI2NiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDAxMSwgMC4wMDAwMTMsIDAuMDAwMDE2LCAwLjAwMDAxNywgMC4wMDAwMTcsIDAuMDAwMDE4LCAwLjAwMDAxOCIsIFwKLSAgICAgICAgICAiMC4wMDAwMiwgMC4wMDAwMjgsIDAuMDAwMDQsIDAuMDAwMDQyLCAwLjAwMDA0MywgMC4wMDAwNDQsIDAuMDAwMDQ1IiwgXAotICAgICAgICAgICIwLjAwMDAxLCAwLjAwMDAyMiwgMC4wMDAwNDEsIDAuMDAwMDQ5LCAwLjAwMDA1MSwgMC4wMDAwNTMsIDAuMDAwMDU0IiwgXAotICAgICAgICAgICIwLjAwMDAwNywgMC4wMDAwMiwgMC4wMDAwNCwgMC4wMDAwNDUsIDAuMDAwMDQ4LCAwLjAwMDA1MiwgMC4wMDAwNTciLCBcCi0gICAgICAgICAgIjAuMDAwMDA0LCAwLjAwMDAxNywgMC4wMDAwMzgsIDAuMDAwMDQ1LCAwLjAwMDA0OCwgMC4wMDAwNTEsIDAuMDAwMDU0IiwgXAotICAgICAgICAgICIwLjAwMDAwNSwgMC4wMDAwMTcsIDAuMDAwMDM3LCAwLjAwMDA0MywgMC4wMDAwNDgsIDAuMDAwMDUxLCAwLjAwMDA1MiIsIFwKLSAgICAgICAgICAiMC4wMDAwMTEsIDAuMDAwMDIsIDAuMDAwMDM5LCAwLjAwMDA0NSwgMC4wMDAwNDgsIDAuMDAwMDUsIDAuMDAwMDUxIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogTk9SNEJYMiAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChOT1I0QlgyKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMjkzNDc3OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBTikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNTUyMzYzOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDU1MjEwNDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA1NTIzNjM7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyOTU1LCAwLjAwMjkyOSwgMC4wMDI5MjMsIDAuMDAyOTMsIDAuMDAyOTQsIDAuMDAyOTYyLCAwLjAwMjk4NiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTg1OSwgMC4wMDE4MzQsIDAuMDAxODIyLCAwLjAwMTgyLCAwLjAwMTgyNywgMC4wMDE4NDYsIDAuMDAxODY0Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE1OTkwMTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE1ODYxMzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE1OTkwMTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyODksIDAuMDAwMjg5LCAwLjAwMDI4OSwgMC4wMDAyODksIDAuMDAwMjg5LCAwLjAwMDI4OSwgMC4wMDAyODkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA1NDUsIDAuMDAwNTQ1LCAwLjAwMDU0NSwgMC4wMDA1NDUsIDAuMDAwNTQ1LCAwLjAwMDU0MywgMC4wMDA1NDQiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEMpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTU3NTYyOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTU2NDIzOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTU3NTYyOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDI1NiwgMC4wMDAyNTYsIDAuMDAwMjU2LCAwLjAwMDI1NiwgMC4wMDAyNTYsIDAuMDAwMjU2LCAwLjAwMDI1NyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDQxOSwgMC4wMDA0MiwgMC4wMDA0MTksIDAuMDAwNDE5LCAwLjAwMDQxOSwgMC4wMDA0MTksIDAuMDAwNDE5Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihEKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE1OTg2MzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE1OTg2MzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE1OTg0OTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxNzQsIDAuMDAwMTc0LCAwLjAwMDE3NCwgMC4wMDAxNzQsIDAuMDAwMTc0LCAwLjAwMDE3NCwgMC4wMDAxNzQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA1MjgsIDAuMDAwNTI4LCAwLjAwMDUyNywgMC4wMDA1MjcsIDAuMDAwNTI3LCAwLjAwMDUyNiwgMC4wMDA1MjciKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4xMjg3NTU7Ci0gICAgZnVuY3Rpb24gOiAiKCEoKCgoIUFOKStCKStDKStEKSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkFOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNDkzNDQsIDAuNTQ3MzY5LCAwLjg2NTM5OSwgMS4yNjM3LCAxLjY2MDUyLCAyLjA1OTYyLCAyLjQ1NjQ0IiwgXAotICAgICAgICAgICIwLjE1OTQzOSwgMC41NTc2MjgsIDAuODc1MjY0LCAxLjI3MzIxLCAxLjY3MDU5LCAyLjA2OTA2LCAyLjQ2NTkiLCBcCi0gICAgICAgICAgIjAuMTcxNTQzLCAwLjU2OTQ1NCwgMC44ODgwNjksIDEuMjg1NDIsIDEuNjg0MjgsIDIuMDgxMDMsIDIuNDc4MSIsIFwKLSAgICAgICAgICAiMC4xODE3OSwgMC41ODAwODIsIDAuODk4MSwgMS4yOTYxMiwgMS42OTI4NCwgMi4wOTIyMSwgMi40ODg2NyIsIFwKLSAgICAgICAgICAiMC4xOTA0NTYsIDAuNTg4NjUzLCAwLjkwNjcxMywgMS4zMDQ2MiwgMS43MDE5NywgMi4xMDA0NSwgMi40OTcyNCIsIFwKLSAgICAgICAgICAiMC4yMDI4MjIsIDAuNjAwOTExLCAwLjkxOTc1NywgMS4zMTcxOSwgMS43MTQ2OSwgMi4xMTI0NywgMi41MDg4NSIsIFwKLSAgICAgICAgICAiMC4yMTIwMzEsIDAuNjEwMTYyLCAwLjkyODM1NSwgMS4zMjU4NCwgMS43MjM2OCwgMi4xMjE2OSwgMi41MTkzNCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMTM5NDQsIDEuMDEwOSwgMS42NDgwMiwgMi40NDUwOSwgMy4yNDA4MywgNC4wMzg2NCwgNC44MzQ0IiwgXAotICAgICAgICAgICIwLjIxNDQzMSwgMS4wMTA5OSwgMS42NDU1NywgMi40NDQ1MywgMy4yNDA3OSwgNC4wMzgwMywgNC44MzM4IiwgXAotICAgICAgICAgICIwLjIxMzk5OCwgMS4wMTA2MywgMS42NDgyMSwgMi40NDQ1MSwgMy4yMzUwOCwgNC4wMzc3OSwgNC44MzM3NyIsIFwKLSAgICAgICAgICAiMC4yMTM5ODUsIDEuMDEwOTUsIDEuNjQ3OTcsIDIuNDQ0ODcsIDMuMjQwNDgsIDQuMDM4NTcsIDQuODM0MDEiLCBcCi0gICAgICAgICAgIjAuMjE0NDI0LCAxLjAxMDgxLCAxLjY0NzkyLCAyLjQ0NDYzLCAzLjI0MDg1LCA0LjAzODExLCA0LjgzMzg2IiwgXAotICAgICAgICAgICIwLjIxNDQyMiwgMS4wMDkwNSwgMS42NDg0MSwgMi40MzkyNiwgMy4yMzUsIDQuMDM3NzMsIDQuODMyOTEiLCBcCi0gICAgICAgICAgIjAuMjE0MTMzLCAxLjAwOTQ1LCAxLjY0Nzg3LCAyLjQ0MTA1LCAzLjI0MDg1LCA0LjAyOTYyLCA0LjgzNDE5Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1OTc0OSwgMC4xNjU3OTEsIDAuMjQ5MDI0LCAwLjM1Mjc3LCAwLjQ1NjQyMywgMC41NTk5NjYsIDAuNjYzNDE2IiwgXAotICAgICAgICAgICIwLjA2OTYyMSwgMC4xNzU2ODQsIDAuMjU4OTMsIDAuMzYyNzE2LCAwLjQ2NjMyLCAwLjU2OTkwNywgMC42NzMzNDgiLCBcCi0gICAgICAgICAgIjAuMDgxMzgyLCAwLjE4NzM3OSwgMC4yNzA2MywgMC4zNzQ0MjMsIDAuNDc4MDEsIDAuNTgxNjEyLCAwLjY4NTA0MiIsIFwKLSAgICAgICAgICAiMC4wOTExNiwgMC4xOTcxNjUsIDAuMjgwNDA2LCAwLjM4NDIwMSwgMC40ODc4MzUsIDAuNTkxNTEzLCAwLjY5NDkzOSIsIFwKLSAgICAgICAgICAiMC4wOTk3MSwgMC4yMDQ5OCwgMC4yODgxOTIsIDAuMzkxOTgyLCAwLjQ5NTY3NiwgMC41OTkyMDgsIDAuNzAyNzUyIiwgXAotICAgICAgICAgICIwLjExMTU3OCwgMC4yMTc0NjYsIDAuMzAwNjU3LCAwLjQwMzk5NywgMC41MDgwODgsIDAuNjExNTMxLCAwLjcxNTMwOCIsIFwKLSAgICAgICAgICAiMC4xMjAzMjUsIDAuMjI1MzczLCAwLjMwODUxNSwgMC40MTIzMDUsIDAuNTE1ODQ1LCAwLjYxOTUyMywgMC43MjMwMTQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY1NzA0LCAwLjI3Mzk3OCwgMC40NDExNDUsIDAuNjUwMzQ5LCAwLjg1OTYzMSwgMS4wNjkxNiwgMS4yNzc3NyIsIFwKLSAgICAgICAgICAiMC4wNjU2NzQsIDAuMjczODE5LCAwLjQ0MTA4NiwgMC42NTA0MjUsIDAuODU5NTE3LCAxLjA2ODc0LCAxLjI3NzkyIiwgXAotICAgICAgICAgICIwLjA2NTc2MSwgMC4yNzM4MDQsIDAuNDQxMDgzLCAwLjY1MDUxOSwgMC44NTk1MTMsIDEuMDY4NzUsIDEuMjc4MTIiLCBcCi0gICAgICAgICAgIjAuMDY2Mzc3LCAwLjI3NCwgMC40NDEyNSwgMC42NTA0MDgsIDAuODU5NTM0LCAxLjA2OTE1LCAxLjI3Nzk3IiwgXAotICAgICAgICAgICIwLjA2Njg3NywgMC4yNzQxMTgsIDAuNDQxMTU3LCAwLjY1MDY2OSwgMC44NTk3MzEsIDEuMDY4NzYsIDEuMjc4NjciLCBcCi0gICAgICAgICAgIjAuMDY4MDI1LCAwLjI3NDA5MywgMC40NDE0NTksIDAuNjUwNDIzLCAwLjg1OTcyLCAxLjA2ODg3LCAxLjI3ODI5IiwgXAotICAgICAgICAgICIwLjA2ODY1NSwgMC4yNzQ1MDEsIDAuNDQxNTcsIDAuNjUwNTIsIDAuODU5NTQ3LCAxLjA2ODg1LCAxLjI3NzkyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEyNDAwMiwgMC41MjE1MDksIDAuODM5ODI4LCAxLjIzNzQxLCAxLjYzNjE0LCAyLjAzMjY4LCAyLjQyOTk0IiwgXAotICAgICAgICAgICIwLjEzMjI3NywgMC41MzAxNzUsIDAuODQ4MjkzLCAxLjI0NjM2LCAxLjY0NDY4LCAyLjA0MTMsIDIuNDM5NTIiLCBcCi0gICAgICAgICAgIjAuMTQxMzg0LCAwLjUzOTUxMSwgMC44NTc1NzUsIDEuMjU0OTksIDEuNjUyNjcsIDIuMDUxMjQsIDIuNDQ5MjEiLCBcCi0gICAgICAgICAgIjAuMTQ5ODAzLCAwLjU0ODE0OSwgMC44NjY1NiwgMS4yNjQ1NiwgMS42NjI1LCAyLjA2MDUzLCAyLjQ1Njk0IiwgXAotICAgICAgICAgICIwLjE1Nzg1MywgMC41NTY0MDEsIDAuODc0NzQ2LCAxLjI3MjYsIDEuNjY5NjYsIDIuMDY3OTUsIDIuNDY0NzEiLCBcCi0gICAgICAgICAgIjAuMTcwNjA5LCAwLjU2OTAyNywgMC44ODc2MDksIDEuMjg0OTYsIDEuNjgzODgsIDIuMDgwMDUsIDIuNDc3OTIiLCBcCi0gICAgICAgICAgIjAuMTgxNTkzLCAwLjU4MDI2OSwgMC44OTg2ODEsIDEuMjk1OTMsIDEuNjkzNTQsIDIuMDkyNTQsIDIuNDg5MTgiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjE0NDQ2LCAxLjAwOTEzLCAxLjY0MzM4LCAyLjQ0NDUsIDMuMjQxOTYsIDQuMDM3NDksIDQuODI0NSIsIFwKLSAgICAgICAgICAiMC4yMTQwMDYsIDEuMDA5NDcsIDEuNjQ1MTEsIDIuNDQ0NzUsIDMuMjM0MzYsIDQuMDM3NDUsIDQuODM0NDgiLCBcCi0gICAgICAgICAgIjAuMjE0NDU3LCAxLjAwOTAxLCAxLjY0NDk5LCAyLjQzOTg1LCAzLjIzNTA5LCA0LjAzNzkxLCA0LjgyMzgiLCBcCi0gICAgICAgICAgIjAuMjE1MTI5LCAxLjAwODk5LCAxLjY0ODEyLCAyLjQ0NDk2LCAzLjI0MTcsIDQuMDM4NTUsIDQuODMzOTUiLCBcCi0gICAgICAgICAgIjAuMjE2MjkxLCAxLjAxMDkxLCAxLjY0ODE2LCAyLjQ0NDg1LCAzLjIzNTM2LCA0LjAzNzg3LCA0LjgyNDQzIiwgXAotICAgICAgICAgICIwLjIxOTY1NCwgMS4wMTA3NywgMS42NDgyMSwgMi40Mzk1NSwgMy4yNDIwMiwgNC4wMzcxNiwgNC44MjQ5IiwgXAotICAgICAgICAgICIwLjIyMzc2OSwgMS4wMTA5NywgMS42NDgxNiwgMi40NDQyNiwgMy4yNDA1NywgNC4wMzgzOCwgNC44MjQ2MyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzUyMTYsIDAuMTM5ODI3LCAwLjIyMjc5LCAwLjMyNjM5MSwgMC40Mjk5MDksIDAuNTMzNTA4LCAwLjYzNzEwMiIsIFwKLSAgICAgICAgICAiMC4wNDU0MDgsIDAuMTQ5ODk0LCAwLjIzMjg1NSwgMC4zMzY0NTQsIDAuNDM5OTgzLCAwLjU0MzU3NSwgMC42NDY5NTQiLCBcCi0gICAgICAgICAgIjAuMDU4MjkyLCAwLjE2MjY1MSwgMC4yNDU1MzIsIDAuMzQ5MTc0LCAwLjQ1MTY3NSwgMC41NTUxNDksIDAuNjU4NTIyIiwgXAotICAgICAgICAgICIwLjA3MTMwOSwgMC4xNzUzNzksIDAuMjU4MzQyLCAwLjM2MTM2NCwgMC40NjQ4MTcsIDAuNTY4MzU4LCAwLjY3MjE2MyIsIFwKLSAgICAgICAgICAiMC4wODMwNDYsIDAuMTg3ODYzLCAwLjI3MTA3MiwgMC4zNzUzMzMsIDAuNDc5MDIxLCAwLjU4MjUyNCwgMC42ODU5MTIiLCBcCi0gICAgICAgICAgIjAuMDk4OTc5LCAwLjIwODMyMiwgMC4yOTEyMzIsIDAuMzk1MTE0LCAwLjQ5ODU4NiwgMC42MDE5MywgMC43MDUzNDQiLCBcCi0gICAgICAgICAgIjAuMTExNzg5LCAwLjIyNzE2NiwgMC4zMDkwNDIsIDAuNDEzMTUsIDAuNTE2NDg1LCAwLjYxOTkwNCwgMC43MjMyMDgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDYwMDg1LCAwLjI2OTEwNiwgMC40MzY0NTUsIDAuNjQ1NzI2LCAwLjg1NTM5OSwgMS4wNjQ3OSwgMS4yNzM3OSIsIFwKLSAgICAgICAgICAiMC4wNjA1NjcsIDAuMjY5MDg5LCAwLjQzNjUyMSwgMC42NDU4NjksIDAuODU1MDk3LCAxLjA2NDIxLCAxLjI3MzUzIiwgXAotICAgICAgICAgICIwLjA2NTYzOCwgMC4yNjkwOTEsIDAuNDM2NTUsIDAuNjQ1ODYzLCAwLjg1NTA1NCwgMS4wNjQyOCwgMS4yNzM1NSIsIFwKLSAgICAgICAgICAiMC4wNzI3MDksIDAuMjY5OTA2LCAwLjQzNjQ0NiwgMC42NDU4OTIsIDAuODU0OTUsIDEuMDY0MiwgMS4yNzM3NCIsIFwKLSAgICAgICAgICAiMC4wODEyNjEsIDAuMjcyODkyLCAwLjQzNjczOSwgMC42NDU5OTgsIDAuODU1MTc3LCAxLjA2NDQyLCAxLjI3MzM4IiwgXAotICAgICAgICAgICIwLjA5NjgzLCAwLjI4MDA1NiwgMC40NDAwMjQsIDAuNjQ2MTc5LCAwLjg1NTEzNywgMS4wNjQ1LCAxLjI3MzQzIiwgXAotICAgICAgICAgICIwLjEwODMwNiwgMC4yODc2MTMsIDAuNDQ1MDQ1LCAwLjY0NzkwMiwgMC44NTUwODEsIDEuMDY0NTIsIDEuMjczODUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTE1MjQ2LCAwLjUxMjc0OSwgMC44MzE1OTEsIDEuMjI4NzMsIDEuNjI3NTksIDIuMDI0NDYsIDIuNDIxNCIsIFwKLSAgICAgICAgICAiMC4xMjMzNTgsIDAuNTIxNDY1LCAwLjgzOTYxNCwgMS4yMzc5OSwgMS42MzQ3NywgMi4wMzIzMywgMi40MzA4IiwgXAotICAgICAgICAgICIwLjEzMzA3NiwgMC41MzEzMzEsIDAuODQ5MTU2LCAxLjI0NzYxLCAxLjY0NTE2LCAyLjA0MjI5LCAyLjQ0MDc4IiwgXAotICAgICAgICAgICIwLjE0MjUzOSwgMC41NDA5MjUsIDAuODU5NTE4LCAxLjI1Nzg4LCAxLjY1NDQ2LCAyLjA1MzcyLCAyLjQ1MDQzIiwgXAotICAgICAgICAgICIwLjE1MjA1MSwgMC41NTA0NzIsIDAuODY4ODAxLCAxLjI2NjIyLCAxLjY2NTM1LCAyLjA2MTc4LCAyLjQ1OTQ0IiwgXAotICAgICAgICAgICIwLjE2NzQzMSwgMC41NjU5NDgsIDAuODg0NDkyLCAxLjI4MjMzLCAxLjY4MDgxLCAyLjA3NzU1LCAyLjQ3NTAzIiwgXAotICAgICAgICAgICIwLjE4MDg1OCwgMC41Nzc5MDksIDAuODk3ODA1LCAxLjI5NTU0LCAxLjY5Mjk1LCAyLjA5MjU4LCAyLjQ4ODc5Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIxNDQxOSwgMS4wMDkwNiwgMS42NDQ5NSwgMi40NDQ1NCwgMy4yMzUyOSwgNC4wMzc5NiwgNC44MzM4NCIsIFwKLSAgICAgICAgICAiMC4yMTQzOTksIDEuMDEwODMsIDEuNjQ4LCAyLjQ0NTIxLCAzLjI0MDk0LCA0LjAzNzM3LCA0LjgyMzgzIiwgXAotICAgICAgICAgICIwLjIxNDQ3OSwgMS4wMDg5OSwgMS42NDYwNCwgMi40NDQ5MywgMy4yNDEzNCwgNC4wMjg4MSwgNC44MzQ2NiIsIFwKLSAgICAgICAgICAiMC4yMTU2NzUsIDEuMDA5MDIsIDEuNjQ4MjcsIDIuNDM5NjIsIDMuMjQwOTUsIDQuMDMwMjYsIDQuODM0NTYiLCBcCi0gICAgICAgICAgIjAuMjE3ODk2LCAxLjAxMDcyLCAxLjY0NDg1LCAyLjQzOTY5LCAzLjI0MjA1LCA0LjAzNzQ2LCA0LjgzMzk1IiwgXAotICAgICAgICAgICIwLjIyMzc0MiwgMS4wMTA2OSwgMS42NDgyMiwgMi40NDQ3MywgMy4yNDE5NCwgNC4wMzc1OSwgNC44MjQ5NSIsIFwKLSAgICAgICAgICAiMC4yMzA1NDEsIDEuMDA4ODQsIDEuNjQ0OTcsIDIuNDQ0MiwgMy4yMzQ5OSwgNC4wMzg3OCwgNC44MzM5OSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzMxMDgsIDAuMTM3MDAxLCAwLjIxOTgyMywgMC4zMjM0NjIsIDAuNDI2ODUzLCAwLjUzMDI2OCwgMC42MzM4NiIsIFwKLSAgICAgICAgICAiMC4wNDM0MSwgMC4xNDY5MzMsIDAuMjI5ODAzLCAwLjMzMzM1NywgMC40MzY4OTQsIDAuNTQwMjUyLCAwLjY0Mzc1MiIsIFwKLSAgICAgICAgICAiMC4wNTY0MDMsIDAuMTU5OTMzLCAwLjI0MjcsIDAuMzQ2Mjc2LCAwLjQ0ODgwMiwgMC41NTIxNywgMC42NTU2MzQiLCBcCi0gICAgICAgICAgIjAuMDY5MTksIDAuMTczMTcyLCAwLjI1NTY4MywgMC4zNTkyMDEsIDAuNDYzMDcxLCAwLjU2NjAzOCwgMC42Njg1MjciLCBcCi0gICAgICAgICAgIjAuMDgwMTEzLCAwLjE4NTQwNCwgMC4yNjgyNSwgMC4zNzE2ODUsIDAuNDc1MTc4LCAwLjU3ODY0NiwgMC42ODMwMDEiLCBcCi0gICAgICAgICAgIjAuMDk1MzY4LCAwLjIwNTY3NywgMC4yODk3MTEsIDAuMzkyMzk2LCAwLjQ5NTY4MSwgMC41OTkxMjcsIDAuNzAyNDIxIiwgXAotICAgICAgICAgICIwLjEwNzg5MSwgMC4yMjQ1MiwgMC4zMDYyNjksIDAuNDA5NzAzLCAwLjUxMzYwNiwgMC42MTY5NzIsIDAuNzIwMjkzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1NjQzMiwgMC4yNjU4MjcsIDAuNDMzMTc2LCAwLjY0MjcyMSwgMC44NTIyMDEsIDEuMDYxMDEsIDEuMjcwOTciLCBcCi0gICAgICAgICAgIjAuMDU3MzM1LCAwLjI2NTc0MywgMC40MzMyNDMsIDAuNjQyNDY2LCAwLjg1MTk0OCwgMS4wNjExMSwgMS4yNzAzMiIsIFwKLSAgICAgICAgICAiMC4wNjI1NDMsIDAuMjY1ODUyLCAwLjQzMzI4OSwgMC42NDI1MjQsIDAuODUxNzAyLCAxLjA2MTEsIDEuMjcwMzUiLCBcCi0gICAgICAgICAgIjAuMDcwMDkxLCAwLjI2NjcyOSwgMC40MzMzNTMsIDAuNjQyNjU2LCAwLjg1MTcxOCwgMS4wNjEwMiwgMS4yNzA3OSIsIFwKLSAgICAgICAgICAiMC4wNzkzOTMsIDAuMjY5Njg0LCAwLjQzMzQ5NSwgMC42NDI2MzIsIDAuODUxOTYzLCAxLjA2MTI1LCAxLjI3MDg3IiwgXAotICAgICAgICAgICIwLjA5NDcxNSwgMC4yNzczNjYsIDAuNDM2NTI1LCAwLjY0MjgzMywgMC44NTE5ODEsIDEuMDYxMzMsIDEuMjcwMzYiLCBcCi0gICAgICAgICAgIjAuMTA2MDE1LCAwLjI4NDc3NCwgMC40NDE5NDgsIDAuNjQ1MDQ0LCAwLjg1MTg3MiwgMS4wNjE1LCAxLjI3MDY4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkQiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwMDA4NSwgMC40OTgyMzYsIDAuODE2MTE2LCAxLjIxNDA5LCAxLjYxMTI0LCAyLjAxMDE0LCAyLjQwNjQ4IiwgXAotICAgICAgICAgICIwLjEwNzkyLCAwLjUwNjE0NCwgMC44MjQ0OTgsIDEuMjIxNjgsIDEuNjE5MDUsIDIuMDE2NTMsIDIuNDE0MDciLCBcCi0gICAgICAgICAgIjAuMTE3ODY1LCAwLjUxNjU2NCwgMC44MzQzMDUsIDEuMjMxOTcsIDEuNjI5OSwgMi4wMjc0NSwgMi40MjU5OSIsIFwKLSAgICAgICAgICAiMC4xMjgzNjIsIDAuNTI2Nzk2LCAwLjg0NTAwMiwgMS4yNDM3NywgMS42NDEyOSwgMi4wMzkzMSwgMi40MzU3MSIsIFwKLSAgICAgICAgICAiMC4xMzg2MTcsIDAuNTM2NzMyLCAwLjg1NDk2LCAxLjI1MjkyLCAxLjY0OTk1LCAyLjA0OTA1LCAyLjQ0NDk1IiwgXAotICAgICAgICAgICIwLjE1NTQxNywgMC41NTMwOTYsIDAuODcxODI4LCAxLjI2ODkzLCAxLjY2NjUzLCAyLjA2NTcsIDIuNDYyODgiLCBcCi0gICAgICAgICAgIjAuMTcwNjQ0LCAwLjU2NzQzMSwgMC44ODYwNDcsIDEuMjgzMzMsIDEuNjgwOTEsIDIuMDc5NDMsIDIuNDc1NzYiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjEzNjI5LCAxLjAxMTA2LCAxLjY0ODAxLCAyLjQ0NDg4LCAzLjIzNDQ4LCA0LjAzODYsIDQuODMzOTYiLCBcCi0gICAgICAgICAgIjAuMjEzMzM5LCAxLjAxMDcyLCAxLjY0NDY0LCAyLjQ0NDE4LCAzLjI0MDQzLCA0LjAyODk5LCA0LjgzMzEyIiwgXAotICAgICAgICAgICIwLjIxMjgxOSwgMS4wMTEwMiwgMS42NDc3NCwgMi40NDAxOCwgMy4yNDEwMiwgNC4wMjk5NywgNC44MjMyOSIsIFwKLSAgICAgICAgICAiMC4yMTU1NDMsIDEuMDEwNzYsIDEuNjQ1MTUsIDIuNDQwMjYsIDMuMjQxNzEsIDQuMDM4NTcsIDQuODMzOTciLCBcCi0gICAgICAgICAgIjAuMjIwNDM0LCAxLjAxMDY2LCAxLjY0NzksIDIuNDQwMDQsIDMuMjM4NjYsIDQuMDM4MjksIDQuODMzMTciLCBcCi0gICAgICAgICAgIjAuMjMwMTMyLCAxLjAwODc3LCAxLjY0ODI2LCAyLjQ0NDE5LCAzLjI0MDU3LCA0LjAzODU1LCA0LjgyMzQxIiwgXAotICAgICAgICAgICIwLjI0MDA5MiwgMS4wMDg4OSwgMS42NDgwOSwgMi40NDQxOCwgMy4yNDA1NiwgNC4wMzc5NCwgNC44Mjg2MSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzAwMjUsIDAuMTMzNTU1LCAwLjIxNjMxNCwgMC4zMTk5NDQsIDAuNDIzMzY5LCAwLjUyNjc2MywgMC42MzAzMTkiLCBcCi0gICAgICAgICAgIjAuMDQwMzk3LCAwLjE0MzkyMSwgMC4yMjY2ODEsIDAuMzMwMTgsIDAuNDMzNjQxLCAwLjUzNzIyLCAwLjY0MDY0IiwgXAotICAgICAgICAgICIwLjA1MzMzOCwgMC4xNTY2MiwgMC4yMzk0ODUsIDAuMzQyMzc5LCAwLjQ0NTcxOCwgMC41NDkxODksIDAuNjUyNzA4IiwgXAotICAgICAgICAgICIwLjA2NTU0NiwgMC4xNjkyNjQsIDAuMjUyMzQyLCAwLjM1NTY5MywgMC40NTkyNTIsIDAuNTYxNjI0LCAwLjY2NDk1MSIsIFwKLSAgICAgICAgICAiMC4wNzYxNzQsIDAuMTgyMTI0LCAwLjI2NDkxNCwgMC4zNjg1MDgsIDAuNDcyMDgyLCAwLjU3NTcyNiwgMC42Nzg5NzUiLCBcCi0gICAgICAgICAgIjAuMDkwNjExLCAwLjIwMzI1OCwgMC4yODYzNSwgMC4zODkxNDYsIDAuNDkyNDcsIDAuNTk1Nzc1LCAwLjY5OTM4NyIsIFwKLSAgICAgICAgICAiMC4xMDE1NzksIDAuMjIxMzk5LCAwLjMwMzE3OCwgMC40MDc5NTYsIDAuNTA5NjE2LCAwLjYxMzgxLCAwLjcxNzE0MSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTI4MzIsIDAuMjYyMzA5LCAwLjQzMTEwOCwgMC42Mzk1NjQsIDAuODQ5MzI1LCAxLjA1ODU1LCAxLjI2NzY4IiwgXAotICAgICAgICAgICIwLjA1Mzk4LCAwLjI2MjI5MywgMC40MzEwNTksIDAuNjM5OTkxLCAwLjg1MDU4MiwgMS4wNTg5OSwgMS4yNjkxNCIsIFwKLSAgICAgICAgICAiMC4wNTk4MDksIDAuMjYyOTg2LCAwLjQyOTg4NCwgMC42NDAyODgsIDAuODUwNywgMS4wNTg0MywgMS4yNjgzNiIsIFwKLSAgICAgICAgICAiMC4wNjc5MywgMC4yNjQwODUsIDAuNDI5OTc2LCAwLjY0MDg4NSwgMC44NDkyODksIDEuMDU4OTMsIDEuMjcxMyIsIFwKLSAgICAgICAgICAiMC4wNzcxLCAwLjI2NzE1NCwgMC40MzE0OSwgMC42NDExODQsIDAuODQ5NzY1LCAxLjA1ODY2LCAxLjI3MDc3IiwgXAotICAgICAgICAgICIwLjA5MzAwNywgMC4yNzM3OTcsIDAuNDM0NDcsIDAuNjM5ODk2LCAwLjg1MDM4NSwgMS4wNjEsIDEuMjY4MTkiLCBcCi0gICAgICAgICAgIjAuMTA1NzA4LCAwLjI4MTkzLCAwLjQzODkzNiwgMC42NDMzMDIsIDAuODQ4ODYxLCAxLjA1ODQ3LCAxLjI2Nzk5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQU4iOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNzYwNCwgMC4wMDc2MjQsIDAuMDA3NjI3LCAwLjAwNzYyOCwgMC4wMDc2MjgsIDAuMDA3NjI4LCAwLjAwNzYyOCIsIFwKLSAgICAgICAgICAiMC4wMDc1NjYsIDAuMDA3NTk2LCAwLjAwNzU5NywgMC4wMDc2MDIsIDAuMDA3NjAzLCAwLjAwNzYwMywgMC4wMDc2MDMiLCBcCi0gICAgICAgICAgIjAuMDA3NTUyLCAwLjAwNzU5LCAwLjAwNzU5NCwgMC4wMDc1OTgsIDAuMDA3NTk5LCAwLjAwNzU5OSwgMC4wMDc2IiwgXAotICAgICAgICAgICIwLjAwNzU1NSwgMC4wMDc2MDEsIDAuMDA3NjA4LCAwLjAwNzYxMSwgMC4wMDc2MTMsIDAuMDA3NjEzLCAwLjAwNzYxNSIsIFwKLSAgICAgICAgICAiMC4wMDc1NjIsIDAuMDA3NjA3LCAwLjAwNzYxNSwgMC4wMDc2MTksIDAuMDA3NjIyLCAwLjAwNzYyNCwgMC4wMDc2MjMiLCBcCi0gICAgICAgICAgIjAuMDA3NTYxLCAwLjAwNzYxMSwgMC4wMDc2MjEsIDAuMDA3NjI2LCAwLjAwNzYyOCwgMC4wMDc2MywgMC4wMDc2MzIiLCBcCi0gICAgICAgICAgIjAuMDA3NTc5LCAwLjAwNzYzMSwgMC4wMDc2NDIsIDAuMDA3NjQ4LCAwLjAwNzY1MSwgMC4wMDc2NTEsIDAuMDA3NjUzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0NzE0LCAwLjAwNDcxNSwgMC4wMDQ3MTMsIDAuMDA0NzEyLCAwLjAwNDcxNSwgMC4wMDQ3MTQsIDAuMDA0NzE0IiwgXAotICAgICAgICAgICIwLjAwNDY4NywgMC4wMDQ2OSwgMC4wMDQ2OSwgMC4wMDQ2OSwgMC4wMDQ2ODksIDAuMDA0Njg5LCAwLjAwNDY5IiwgXAotICAgICAgICAgICIwLjAwNDY3OCwgMC4wMDQ2ODIsIDAuMDA0NjgzLCAwLjAwNDY4MywgMC4wMDQ2ODIsIDAuMDA0NjgyLCAwLjAwNDY4MyIsIFwKLSAgICAgICAgICAiMC4wMDQ2NzcsIDAuMDA0Njg0LCAwLjAwNDY4NCwgMC4wMDQ2ODQsIDAuMDA0Njg0LCAwLjAwNDY4NCwgMC4wMDQ2ODQiLCBcCi0gICAgICAgICAgIjAuMDA0Njc3LCAwLjAwNDY4NCwgMC4wMDQ2ODYsIDAuMDA0Njg2LCAwLjAwNDY4NiwgMC4wMDQ2ODUsIDAuMDA0Njg2IiwgXAotICAgICAgICAgICIwLjAwNDY4LCAwLjAwNDY5NCwgMC4wMDQ2OTUsIDAuMDA0NjkzLCAwLjAwNDY5NiwgMC4wMDQ2OTUsIDAuMDA0Njk0IiwgXAotICAgICAgICAgICIwLjAwNDY5NywgMC4wMDQ3MDMsIDAuMDA0NzA1LCAwLjAwNDcwNywgMC4wMDQ3MDYsIDAuMDA0NzA3LCAwLjAwNDcwNyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjQxMywgMC4wMDY0MjMsIDAuMDA2NDI0LCAwLjAwNjQyNSwgMC4wMDY0MjQsIDAuMDA2NDI1LCAwLjAwNjQyNSIsIFwKLSAgICAgICAgICAiMC4wMDYzNzQsIDAuMDA2NDEzLCAwLjAwNjQxOCwgMC4wMDY0MiwgMC4wMDY0MjEsIDAuMDA2NDIyLCAwLjAwNjQyNSIsIFwKLSAgICAgICAgICAiMC4wMDYzNDUsIDAuMDA2NCwgMC4wMDY0MDksIDAuMDA2NDE0LCAwLjAwNjQxNywgMC4wMDY0MTMsIDAuMDA2NDIiLCBcCi0gICAgICAgICAgIjAuMDA2MzI4LCAwLjAwNjM4OSwgMC4wMDY0MDMsIDAuMDA2NDA5LCAwLjAwNjQxMywgMC4wMDY0MTMsIDAuMDA2NDE2IiwgXAotICAgICAgICAgICIwLjAwNjMxNywgMC4wMDYzODEsIDAuMDA2Mzk2LCAwLjAwNjQwNSwgMC4wMDY0MDksIDAuMDA2NDEzLCAwLjAwNjQxNCIsIFwKLSAgICAgICAgICAiMC4wMDYzMDcsIDAuMDA2MzcsIDAuMDA2Mzg2LCAwLjAwNjM5OCwgMC4wMDY0MDQsIDAuMDA2NDA4LCAwLjAwNjQxIiwgXAotICAgICAgICAgICIwLjAwNjMwMiwgMC4wMDYzNjEsIDAuMDA2MzgsIDAuMDA2MzkyLCAwLjAwNjM5OSwgMC4wMDY0MDQsIDAuMDA2NDA3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxMzg1LCAwLjAwMTM4NiwgMC4wMDEzODUsIDAuMDAxMzg2LCAwLjAwMTM4NSwgMC4wMDEzODUsIDAuMDAxMzg1IiwgXAotICAgICAgICAgICIwLjAwMTM0LCAwLjAwMTM1MiwgMC4wMDEzNTMsIDAuMDAxMzU0LCAwLjAwMTM1NCwgMC4wMDEzNTUsIDAuMDAxMzU0IiwgXAotICAgICAgICAgICIwLjAwMTMxOCwgMC4wMDEzNDEsIDAuMDAxMzQ0LCAwLjAwMTM0NiwgMC4wMDEzNDMsIDAuMDAxMzQzLCAwLjAwMTM0MyIsIFwKLSAgICAgICAgICAiMC4wMDEzMDIsIDAuMDAxMzMxLCAwLjAwMTMzNywgMC4wMDEzMzgsIDAuMDAxMzM5LCAwLjAwMTM0LCAwLjAwMTM0MSIsIFwKLSAgICAgICAgICAiMC4wMDEzMjcsIDAuMDAxMzM5LCAwLjAwMTM0MywgMC4wMDEzNDMsIDAuMDAxMzQ0LCAwLjAwMTM0NCwgMC4wMDEzNDQiLCBcCi0gICAgICAgICAgIjAuMDAxMzUxLCAwLjAwMTM0MSwgMC4wMDEzNDMsIDAuMDAxMzQ1LCAwLjAwMTM0NSwgMC4wMDEzNDQsIDAuMDAxMzQzIiwgXAotICAgICAgICAgICIwLjAwMTMzMiwgMC4wMDEzNTksIDAuMDAxMzUsIDAuMDAxMzUxLCAwLjAwMTM0OSwgMC4wMDEzNDcsIDAuMDAxMzQ2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1NDA1LCAwLjAwNTQxNSwgMC4wMDU0MTMsIDAuMDA1NDE2LCAwLjAwNTQxMywgMC4wMDU0MTcsIDAuMDA1NDE2IiwgXAotICAgICAgICAgICIwLjAwNTM2NSwgMC4wMDU0MDQsIDAuMDA1NDA5LCAwLjAwNTQxMiwgMC4wMDU0MTIsIDAuMDA1NDEzLCAwLjAwNTQxNCIsIFwKLSAgICAgICAgICAiMC4wMDUzMzYsIDAuMDA1MzkxLCAwLjAwNTQwMywgMC4wMDU0MDgsIDAuMDA1NDA2LCAwLjAwNTQwOCwgMC4wMDU0MTEiLCBcCi0gICAgICAgICAgIjAuMDA1MzIsIDAuMDA1MzgxLCAwLjAwNTM5MywgMC4wMDU0LCAwLjAwNTQwNiwgMC4wMDU0MDQsIDAuMDA1NDA4IiwgXAotICAgICAgICAgICIwLjAwNTMwOSwgMC4wMDUzNzMsIDAuMDA1Mzg4LCAwLjAwNTM5NiwgMC4wMDU0LCAwLjAwNTQwNCwgMC4wMDU0MDUiLCBcCi0gICAgICAgICAgIjAuMDA1MzAxLCAwLjAwNTM2MiwgMC4wMDUzNzgsIDAuMDA1Mzg5LCAwLjAwNTM5NSwgMC4wMDUzOTgsIDAuMDA1NDAzIiwgXAotICAgICAgICAgICIwLjAwNTMsIDAuMDA1MzM1LCAwLjAwNTM3NywgMC4wMDUzODMsIDAuMDA1Mzk3LCAwLjAwNTM5NiwgMC4wMDUzOTgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDA3NDIsIDAuMDAwNzQ2LCAwLjAwMDc0NiwgMC4wMDA3NDYsIDAuMDAwNzQ2LCAwLjAwMDc0NiwgMC4wMDA3NDYiLCBcCi0gICAgICAgICAgIjAuMDAwNzMzLCAwLjAwMDc2NywgMC4wMDA3NzEsIDAuMDAwNzczLCAwLjAwMDc3NCwgMC4wMDA3NzUsIDAuMDAwNzc1IiwgXAotICAgICAgICAgICIwLjAwMDcxNCwgMC4wMDA3NjUsIDAuMDAwNzcyLCAwLjAwMDc3NSwgMC4wMDA3OCwgMC4wMDA3ODEsIDAuMDAwNzgyIiwgXAotICAgICAgICAgICIwLjAwMDcwNywgMC4wMDA3NiwgMC4wMDA3NjksIDAuMDAwNzc0LCAwLjAwMDc3NiwgMC4wMDA3NzksIDAuMDAwNzgyIiwgXAotICAgICAgICAgICIwLjAwMDcxOCwgMC4wMDA3NTUsIDAuMDAwNzY3LCAwLjAwMDc3NiwgMC4wMDA3NzksIDAuMDAwNzgsIDAuMDAwNzc5IiwgXAotICAgICAgICAgICIwLjAwMDczNywgMC4wMDA3NjQsIDAuMDAwNzY5LCAwLjAwMDc3OCwgMC4wMDA3OCwgMC4wMDA3ODEsIDAuMDAwNzgyIiwgXAotICAgICAgICAgICIwLjAwMDcxMywgMC4wMDA3NzgsIDAuMDAwNzc5LCAwLjAwMDc4MSwgMC4wMDA3ODQsIDAuMDAwNzg0LCAwLjAwMDc4NCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkQiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDI1MywgMC4wMDQyNjksIDAuMDA0MjcsIDAuMDA0MjcxLCAwLjAwNDI3MSwgMC4wMDQyNzEsIDAuMDA0MjcxIiwgXAotICAgICAgICAgICIwLjAwNDE5MywgMC4wMDQyNTMsIDAuMDA0MjYsIDAuMDA0MjY0LCAwLjAwNDI2NSwgMC4wMDQyNjYsIDAuMDA0MjY4IiwgXAotICAgICAgICAgICIwLjAwNDE2MywgMC4wMDQyMzYsIDAuMDA0MjQ5LCAwLjAwNDI1NiwgMC4wMDQyNTksIDAuMDA0MjYyLCAwLjAwNDI2MiIsIFwKLSAgICAgICAgICAiMC4wMDQxNSwgMC4wMDQyMjIsIDAuMDA0MjM5LCAwLjAwNDI0OCwgMC4wMDQyNTUsIDAuMDA0MjU2LCAwLjAwNDI1OSIsIFwKLSAgICAgICAgICAiMC4wMDQxNiwgMC4wMDQyMTYsIDAuMDA0MjMzLCAwLjAwNDI0MywgMC4wMDQyNDksIDAuMDA0MjU0LCAwLjAwNDI1NiIsIFwKLSAgICAgICAgICAiMC4wMDQxODUsIDAuMDA0MjEsIDAuMDA0MjI2LCAwLjAwNDIzNywgMC4wMDQyNDUsIDAuMDA0MjQ4LCAwLjAwNDI1MSIsIFwKLSAgICAgICAgICAiMC4wMDQyMTcsIDAuMDA0MjEsIDAuMDA0MjI0LCAwLjAwNDIzNSwgMC4wMDQyNDEsIDAuMDA0MjQ3LCAwLjAwNDI0OCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDA2NywgMC4wMDAwODcsIDAuMDAwMDg5LCAwLjAwMDA5LCAwLjAwMDA5LCAwLjAwMDA5LCAwLjAwMDA5MSIsIFwKLSAgICAgICAgICAiMC4wMDAwNjgsIDAuMDAwMTM2LCAwLjAwMDE0NCwgMC4wMDAxNDgsIDAuMDAwMTUsIDAuMDAwMTUxLCAwLjAwMDE1MiIsIFwKLSAgICAgICAgICAiMC4wMDAwNDQsIDAuMDAwMTM4LCAwLjAwMDE1LCAwLjAwMDE2MiwgMC4wMDAxNjYsIDAuMDAwMTY5LCAwLjAwMDE3MSIsIFwKLSAgICAgICAgICAiMC4wMDAwNDEsIDAuMDAwMTM2LCAwLjAwMDE0OSwgMC4wMDAxNTgsIDAuMDAwMTYzLCAwLjAwMDE3MiwgMC4wMDAxNzQiLCBcCi0gICAgICAgICAgIjAuMDAwMDE3LCAwLjAwMDEyOSwgMC4wMDAxNDgsIDAuMDAwMTU3LCAwLjAwMDE2MywgMC4wMDAxNjYsIDAuMDAwMTY5IiwgXAotICAgICAgICAgICIwLjAwMDA0OCwgMC4wMDAxMzIsIDAuMDAwMTQ3LCAwLjAwMDE1OSwgMC4wMDAxNjQsIDAuMDAwMTY4LCAwLjAwMDE3IiwgXAotICAgICAgICAgICIwLjAwMDA3NSwgMC4wMDAxMzcsIDAuMDAwMTUxLCAwLjAwMDE2MSwgMC4wMDAxNjUsIDAuMDAwMTY5LCAwLjAwMDE3MiIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IE5PUjRCWDQgKgotICogLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoTk9SNEJYNCkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjU3OTgyMzsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQU4pICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDgyOTMwMzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA4Mjg5MTU7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwODI5MzAzOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNTU4OCwgMC4wMDU1MzksIDAuMDA1NTM3LCAwLjAwNTUzOCwgMC4wMDU1NDcsIDAuMDA1NTc3LCAwLjAwNTYxMSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzQ2NCwgMC4wMDM0MjMsIDAuMDAzMzk5LCAwLjAwMzM5LCAwLjAwMzM5LCAwLjAwMzQxNSwgMC4wMDM0MzYiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMjk4ODE1OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMjk2Mjg7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAyOTg4MTU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNTk5LCAwLjAwMDU5OSwgMC4wMDA1OTksIDAuMDAwNTk5LCAwLjAwMDU5OSwgMC4wMDA1OTksIDAuMDAwNTk5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxMTA5LCAwLjAwMTEwOCwgMC4wMDExMSwgMC4wMDExMDcsIDAuMDAxMTA3LCAwLjAwMTExLCAwLjAwMTEwOCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQykgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAzMDA5ODU7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAyOTg3MzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDMwMDk4NTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA1MjQsIDAuMDAwNTI0LCAwLjAwMDUyNCwgMC4wMDA1MjQsIDAuMDAwNTI0LCAwLjAwMDUyNCwgMC4wMDA1MjQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA4NTQsIDAuMDAwODU1LCAwLjAwMDg1MywgMC4wMDA4NTQsIDAuMDAwODU1LCAwLjAwMDg1MywgMC4wMDA4NTQiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEQpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMzA3ODE4OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMzA3Nzg1OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMzA3ODE4OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDM1NywgMC4wMDAzNTcsIDAuMDAwMzU3LCAwLjAwMDM1NywgMC4wMDAzNTcsIDAuMDAwMzU3LCAwLjAwMDM1NyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTA3LCAwLjAwMTA2OSwgMC4wMDEwNywgMC4wMDEwNjksIDAuMDAxMDcsIDAuMDAxMDY5LCAwLjAwMTA2OSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjI3MTI2MzsKLSAgICBmdW5jdGlvbiA6ICIoISgoKCghQU4pK0IpK0MpK0QpKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQU4iOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTExMzUxLCAwLjM5MjkwMywgMC42NzQ0MzEsIDAuODc1NDQ4LCAxLjE5NzM2LCAxLjQ3NzYzLCAxLjg4MTMzIiwgXAotICAgICAgICAgICIwLjEyMTQwNSwgMC40MDMwMjEsIDAuNjg0NzM4LCAwLjg4NTMxOSwgMS4yMDczNSwgMS40ODc5NywgMS44OTEzOCIsIFwKLSAgICAgICAgICAiMC4xMzM3NDksIDAuNDE1Njg1LCAwLjY5NzY1MSwgMC44OTc4LCAxLjIxOTgyLCAxLjUwMDQ1LCAxLjkwMzg2IiwgXAotICAgICAgICAgICIwLjE0NDU1MywgMC40MjY0NzIsIDAuNzA3ODc0LCAwLjkwODY3MiwgMS4yMzA4LCAxLjUxMTQ3LCAxLjkxNDM4IiwgXAotICAgICAgICAgICIwLjE1Mzc3MywgMC40MzU3NDMsIDAuNzE3MDgzLCAwLjkxODMxMSwgMS4yNDA2NSwgMS41MjEwMiwgMS45MjMwOSIsIFwKLSAgICAgICAgICAiMC4xNjY4NjEsIDAuNDQ5MDQ2LCAwLjczMDM5MSwgMC45MzE5MDEsIDEuMjUyNjYsIDEuNTM0NDEsIDEuOTM1OTkiLCBcCi0gICAgICAgICAgIjAuMTc2NzI4LCAwLjQ1ODc1MSwgMC43NDAxMjcsIDAuOTQxNDIzLCAxLjI2MzUxLCAxLjU0Mzc4LCAxLjk0Njk1Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTM1MTA5LCAwLjY5NzE5OCwgMS4yNjE1NiwgMS42NjY3MiwgMi4zMTIwOSwgMi44NzEzNSwgMy42ODMyNSIsIFwKLSAgICAgICAgICAiMC4xMzUzNCwgMC42OTc4MTYsIDEuMjYwNzUsIDEuNjY2NTYsIDIuMzExOTgsIDIuODc1NjcsIDMuNjgzMjQiLCBcCi0gICAgICAgICAgIjAuMTM1MTUxLCAwLjY5ODExMiwgMS4yNjEzNCwgMS42NjM5OCwgMi4zMTE4OSwgMi44NzU2MywgMy42ODMyMiIsIFwKLSAgICAgICAgICAiMC4xMzUzNTIsIDAuNjk5MzE3LCAxLjI2MTMzLCAxLjY2Mzc1LCAyLjMxMTk3LCAyLjg3MDI5LCAzLjY4MjkiLCBcCi0gICAgICAgICAgIjAuMTM1NDA4LCAwLjY5ODI2NywgMS4yNjM1NSwgMS42NjY4NiwgMi4zMDcxNCwgMi44NzYwNiwgMy42NzQ4NyIsIFwKLSAgICAgICAgICAiMC4xMzUyNywgMC42OTk1MDgsIDEuMjYzNjksIDEuNjY3MjQsIDIuMzA3NTYsIDIuODc2MjUsIDMuNjgyMTYiLCBcCi0gICAgICAgICAgIjAuMTM1MjU2LCAwLjY5OTM0NiwgMS4yNjM1LCAxLjY2Njg5LCAyLjMxMjMsIDIuODcwMzYsIDMuNjgzMSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1MDQ4LCAwLjEyNzIzMywgMC4yMDEzMywgMC4yNTQwMDIsIDAuMzM4MTQxLCAwLjQxMTcxNiwgMC41MTY3IiwgXAotICAgICAgICAgICIwLjA2MDUxMSwgMC4xMzcyMTksIDAuMjExMjkyLCAwLjI2Mzk4MywgMC4zNDgxNDYsIDAuNDIxNzA0LCAwLjUyNjYyMyIsIFwKLSAgICAgICAgICAiMC4wNzI2NDYsIDAuMTQ5MzE2LCAwLjIyMzM5MiwgMC4yNzYwNzMsIDAuMzYwMjExLCAwLjQzMzgwNiwgMC41Mzg3NDIiLCBcCi0gICAgICAgICAgIjAuMDgzMDk0LCAwLjE1OTgxMiwgMC4yMzM4NzQsIDAuMjg2NTUzLCAwLjM3MDcyNSwgMC40NDQyOTgsIDAuNTQ5MjkyIiwgXAotICAgICAgICAgICIwLjA5MjA4NCwgMC4xNjgzMzMsIDAuMjQyMzgxLCAwLjI5NTA0NSwgMC4zNzkyMDUsIDAuNDUyNzg5LCAwLjU1NzczNiIsIFwKLSAgICAgICAgICAiMC4xMDQ3OTEsIDAuMTgxMjMyLCAwLjI1NTIzOSwgMC4zMDgxNjYsIDAuMzkyMzE4LCAwLjQ2NTc5OCwgMC41NzA4OTgiLCBcCi0gICAgICAgICAgIjAuMTE0MjIsIDAuMTkwNDYxLCAwLjI2NDM2MywgMC4zMTY5OTksIDAuNDAxMDcxLCAwLjQ3NDYzMSwgMC41Nzk2MTYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDU2OTYsIDAuMTkyNzcxLCAwLjM0MDkxMiwgMC40NDY5MTQsIDAuNjE2NTkzLCAwLjc2NTE3MywgMC45NzczNDkiLCBcCi0gICAgICAgICAgIjAuMDQ1NjY0LCAwLjE5Mjc0NCwgMC4zNDA5MDMsIDAuNDQ2ODYxLCAwLjYxNjY1LCAwLjc2NTIxOSwgMC45NzcxMSIsIFwKLSAgICAgICAgICAiMC4wNDU4NDcsIDAuMTkyNzg4LCAwLjM0MDkxLCAwLjQ0NjkxNywgMC42MTY1MzMsIDAuNzY1MTk3LCAwLjk3NzExMiIsIFwKLSAgICAgICAgICAiMC4wNDY1MzYsIDAuMTkyODc4LCAwLjM0MDk4NywgMC40NDcxNDgsIDAuNjE2ODk0LCAwLjc2NTIyNywgMC45NzczMzgiLCBcCi0gICAgICAgICAgIjAuMDQ3Mjg5LCAwLjE5Mjk5NiwgMC4zNDEwMzEsIDAuNDQ2OTQsIDAuNjE2Njc3LCAwLjc2NTE5LCAwLjk3NzEyIiwgXAotICAgICAgICAgICIwLjA0ODYwOCwgMC4xOTMzMjgsIDAuMzQxMzEsIDAuNDQ3MDM3LCAwLjYxNjU1OSwgMC43NjUwNzgsIDAuOTc3MzMzIiwgXAotICAgICAgICAgICIwLjA0OTcxNiwgMC4xOTM3MzYsIDAuMzQxMzE2LCAwLjQ0NzEzNiwgMC42MTY3MTIsIDAuNzY1MjI4LCAwLjk3NzA5NCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4Mzk0NywgMC4zNjUzMzcsIDAuNjQ2OTUsIDAuODQ3Nzc2LCAxLjE2OTIzLCAxLjQ1MDUzLCAxLjg1Mjg4IiwgXAotICAgICAgICAgICIwLjA5MjA1MSwgMC4zNzM5ODQsIDAuNjU1MzI5LCAwLjg1NjUxNSwgMS4xNzgxMiwgMS40NTk1MiwgMS44NjA0MyIsIFwKLSAgICAgICAgICAiMC4xMDExNzgsIDAuMzgzMzI3LCAwLjY2NDY4MSwgMC44NjU1NDYsIDEuMTg3NjcsIDEuNDY4MDQsIDEuODcxMDciLCBcCi0gICAgICAgICAgIjAuMTA5NTY2LCAwLjM5MTc3MiwgMC42NzMxMiwgMC44NzQzNTcsIDEuMTk2NTEsIDEuNDc3MDcsIDEuODgwMjUiLCBcCi0gICAgICAgICAgIjAuMTE3NjIyLCAwLjM5OTc0NiwgMC42ODE0MSwgMC44ODIwOTMsIDEuMjA0NTIsIDEuNDg0NjQsIDEuODg4MjEiLCBcCi0gICAgICAgICAgIjAuMTI5NzQ1LCAwLjQxMjMzNywgMC42OTM5MDcsIDAuODk0ODM3LCAxLjIxNjk4LCAxLjQ5NzQ4LCAxLjg5OTkzIiwgXAotICAgICAgICAgICIwLjEzOTQxMSwgMC40MjM1MDUsIDAuNzA1MjgxLCAwLjkwNjQ0NywgMS4yMjc4MSwgMS41MDk4NywgMS45MTA0MSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEzNTI4NSwgMC42OTkwMTgsIDEuMjYzODEsIDEuNjYyNTcsIDIuMzExNjcsIDIuODc2MSwgMy42ODI3IiwgXAotICAgICAgICAgICIwLjEzNTEwMiwgMC42OTkzNTgsIDEuMjYxNTMsIDEuNjY2ODksIDIuMzA2OCwgMi44NzYzOSwgMy42NzU0MyIsIFwKLSAgICAgICAgICAiMC4xMzU1NywgMC42OTk0MzEsIDEuMjYxMjgsIDEuNjYzNDYsIDIuMzEyMDQsIDIuODc1NTcsIDMuNjgyODIiLCBcCi0gICAgICAgICAgIjAuMTM2Njk4LCAwLjY5OTQ0NywgMS4yNjM1OSwgMS42NjY4OCwgMi4zMTIzMywgMi44NzYwNiwgMy42NzQ4MyIsIFwKLSAgICAgICAgICAiMC4xMzg3NTQsIDAuNjk5MzY3LCAxLjI2Mzc3LCAxLjY2NjUzLCAyLjMxMjI0LCAyLjg3Mjc0LCAzLjY4MzI0IiwgXAotICAgICAgICAgICIwLjE0MzM0NSwgMC42OTgzMTUsIDEuMjYxMywgMS42NjM1MSwgMi4zMTE5OSwgMi44NzMyNiwgMy42ODIzMSIsIFwKLSAgICAgICAgICAiMC4xNDkwMTksIDAuNjk5MzM3LCAxLjI2Mzg1LCAxLjY2NzAyLCAyLjMxMTcyLCAyLjg3NjY1LCAzLjY3NzQiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjQ0MSwgMC4wOTkzMzEsIDAuMTczMDQxLCAwLjIyNTU5NSwgMC4zMDk2MTksIDAuMzgzMDQxLCAwLjQ4ODA3NiIsIFwKLSAgICAgICAgICAiMC4wMzQ2MzEsIDAuMTA5MzkyLCAwLjE4MzEwNSwgMC4yMzU2NTIsIDAuMzE5NjQ1LCAwLjM5MzE4MywgMC40OTgxNTEiLCBcCi0gICAgICAgICAgIjAuMDQ3NjE5LCAwLjEyMjAzMSwgMC4xOTU4MDgsIDAuMjQ4MzExLCAwLjMzMjM0NCwgMC40MDQ5NTYsIDAuNTA5ODUzIiwgXAotICAgICAgICAgICIwLjA1OTA3NCwgMC4xMzUzMTcsIDAuMjA4NTY3LCAwLjI2MTE0OCwgMC4zNDUyMzUsIDAuNDE4NTg1LCAwLjUyMzYzMyIsIFwKLSAgICAgICAgICAiMC4wNjg3MjksIDAuMTQ4MTU0LCAwLjIyMjAwNSwgMC4yNzQ2MSwgMC4zNTg2NzMsIDAuNDMyMDkxLCAwLjUzNzExOSIsIFwKLSAgICAgICAgICAiMC4wODIyNzIsIDAuMTY4NzI3LCAwLjI0MTQ5NywgMC4yOTM5ODcsIDAuMzc4MzQsIDAuNDUxNzk0LCAwLjU1NjQ2MSIsIFwKLSAgICAgICAgICAiMC4wOTI2NzMsIDAuMTg2OTg0LCAwLjI1OTMxNywgMC4zMTE3NjMsIDAuMzk1NzYyLCAwLjQ2OTY2NiwgMC41NzQ0OTQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzkxODQsIDAuMTg3NTgyLCAwLjMzNjEyMywgMC40NDIyMzcsIDAuNjEyMDE3LCAwLjc2MDY1MSwgMC45NzMzIiwgXAotICAgICAgICAgICIwLjA0MDcxOCwgMC4xODc2OTQsIDAuMzM2MTEyLCAwLjQ0MjQxNCwgMC42MTIwNTUsIDAuNzYwNTU4LCAwLjk3Mjk1NyIsIFwKLSAgICAgICAgICAiMC4wNDcyMDEsIDAuMTg3OTcyLCAwLjMzNjEwOSwgMC40NDIyMjQsIDAuNjEyMDA0LCAwLjc2MDU5MiwgMC45NzI3MzIiLCBcCi0gICAgICAgICAgIjAuMDU1NjExLCAwLjE5MDc2MywgMC4zMzY0NDIsIDAuNDQyNDkyLCAwLjYxMjEzNywgMC43NjA4OCwgMC45NzI3NjMiLCBcCi0gICAgICAgICAgIjAuMDY0OTQ3LCAwLjE5NTE3NCwgMC4zMzc3NDIsIDAuNDQyNTI2LCAwLjYxMjE4OSwgMC43NjA1MzcsIDAuOTczMDcxIiwgXAotICAgICAgICAgICIwLjA3ODA5OSwgMC4yMDQ3OCwgMC4zNDM1MjEsIDAuNDQ1NjU0LCAwLjYxMjQzOCwgMC43NjA3MjYsIDAuOTcyNzA2IiwgXAotICAgICAgICAgICIwLjA4OTA5LCAwLjIxNDUxNywgMC4zNTA1NzEsIDAuNDUwNzgsIDAuNjE0OTE4LCAwLjc2MTE5NSwgMC45NzI3MzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzUyNzEsIDAuMzU2NjQyLCAwLjYzNzk2OCwgMC44MzkzOTUsIDEuMTYxMTIsIDEuNDQyNjUsIDEuODQzNTkiLCBcCi0gICAgICAgICAgIjAuMDgzMjAzLCAwLjM2NTI3NSwgMC42NDY3NzYsIDAuODQ3NzcxLCAxLjE2OTgzLCAxLjQ1MDMzLCAxLjg1MzIiLCBcCi0gICAgICAgICAgIjAuMDkyNzk3LCAwLjM3NDkwOSwgMC42NTYzMzEsIDAuODU3NDE4LCAxLjE3OTc2LCAxLjQ2MDIyLCAxLjg2MTg3IiwgXAotICAgICAgICAgICIwLjEwMjI5NiwgMC4zODQ0ODcsIDAuNjY1ODkyLCAwLjg2Njc0NCwgMS4xODg4NCwgMS40NjkzOSwgMS44NzI3NyIsIFwKLSAgICAgICAgICAiMC4xMTE3MzMsIDAuMzk0MTM1LCAwLjY3NTYzOCwgMC44NzY1NDksIDEuMTk3OTEsIDEuNDgwNzcsIDEuODgxNDYiLCBcCi0gICAgICAgICAgIjAuMTI2MjUyLCAwLjQwOTM1MywgMC42OTA5MSwgMC44OTIxMzYsIDEuMjEzNzUsIDEuNDk1OTMsIDEuODk2OTIiLCBcCi0gICAgICAgICAgIjAuMTM3ODMsIDAuNDIyODQzLCAwLjcwNDUxMywgMC45MDYwOTgsIDEuMjI3MjUsIDEuNTA5NDIsIDEuOTEwMDIiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMzQ5OTQsIDAuNjk4OTQyLCAxLjI2MTQ2LCAxLjY2NzA2LCAyLjMwNzE3LCAyLjg3NjcxLCAzLjY4MjE5IiwgXAotICAgICAgICAgICIwLjEzNDk3LCAwLjY5ODA0NiwgMS4yNjM4OSwgMS42NjY5OSwgMi4zMTI0LCAyLjg3NjEsIDMuNjc0NzkiLCBcCi0gICAgICAgICAgIjAuMTM1NjE2LCAwLjY5OTM1OSwgMS4yNjE1NCwgMS42NjY3OCwgMi4zMDc0MSwgMi44NzYwNywgMy42ODIwNCIsIFwKLSAgICAgICAgICAiMC4xMzgwODIsIDAuNjk5Mzc4LCAxLjI2MTYzLCAxLjY2NjQ0LCAyLjMxMTkyLCAyLjg3MDc1LCAzLjY4MzE2IiwgXAotICAgICAgICAgICIwLjE0MTc1LCAwLjY5OTM1NSwgMS4yNjE0OSwgMS42NjY1NywgMi4zMTEzMiwgMi44NzA2MSwgMy42ODIxOSIsIFwKLSAgICAgICAgICAiMC4xNDk4MzYsIDAuNjk5NjQ3LCAxLjI2MTQzLCAxLjY2NjgsIDIuMzA2ODgsIDIuODc2OSwgMy42NzQwNiIsIFwKLSAgICAgICAgICAiMC4xNTg5MjYsIDAuNzAwOTA1LCAxLjI2MzQ3LCAxLjY2NzA3LCAyLjMxMTU3LCAyLjg3NjYsIDMuNjc3NDkiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjI2MjQsIDAuMDk2NTg2LCAwLjE3MDEzNCwgMC4yMjI2NzMsIDAuMzA2NjQzLCAwLjM4MDE0MiwgMC40ODUzODIiLCBcCi0gICAgICAgICAgIjAuMDMyODk3LCAwLjEwNjgyNSwgMC4xODAxNjEsIDAuMjMyNjQ3LCAwLjMxNjU4NywgMC4zOTAxNzEsIDAuNDk1MDU5IiwgXAotICAgICAgICAgICIwLjA0NTY1LCAwLjExOTkwNCwgMC4xOTM1MjIsIDAuMjQ2MDEsIDAuMzMwMDUxLCAwLjQwMzQ2MiwgMC41MDg0NDQiLCBcCi0gICAgICAgICAgIjAuMDU2MzM5LCAwLjEzMjc5NiwgMC4yMDU5NTQsIDAuMjU4NTQ3LCAwLjM0MjQzLCAwLjQxNjQ5OCwgMC41MjA4MzEiLCBcCi0gICAgICAgICAgIjAuMDY1MTA2LCAwLjE0NTc2MSwgMC4yMTg1NDQsIDAuMjcxMDc1LCAwLjM1NTI0MSwgMC40Mjg2NDYsIDAuNTMzNjk5IiwgXAotICAgICAgICAgICIwLjA3ODEzMSwgMC4xNjYxMjIsIDAuMjM4ODA3LCAwLjI5MjUwMywgMC4zNzY0MzgsIDAuNDQ5OTU1LCAwLjU1MzkxOCIsIFwKLSAgICAgICAgICAiMC4wODc1NjcsIDAuMTg0MzIxLCAwLjI1NjU2MiwgMC4zMDkwMjUsIDAuMzk0NTgsIDAuNDY2OTEsIDAuNTcyOTcyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM1NjczLCAwLjE4NDMxOSwgMC4zMzMxNjcsIDAuNDM5MTk2LCAwLjYwOTA4NywgMC43NTgxMjIsIDAuOTcwNTE1IiwgXAotICAgICAgICAgICIwLjAzNzYsIDAuMTg0NDQyLCAwLjMzMzExNCwgMC40MzkyMDYsIDAuNjA5MTIxLCAwLjc1Nzk5MywgMC45NzAwODkiLCBcCi0gICAgICAgICAgIjAuMDQ0NDQ2LCAwLjE4NDc1MywgMC4zMzMxMDcsIDAuNDM5MTk5LCAwLjYwOTIxMywgMC43NTc3NTEsIDAuOTcwMDg5IiwgXAotICAgICAgICAgICIwLjA1MzUwNSwgMC4xODc2MywgMC4zMzMxNzgsIDAuNDM5MzAzLCAwLjYwOTM4NywgMC43NTc5NTcsIDAuOTcwMTM3IiwgXAotICAgICAgICAgICIwLjA2MzIxMiwgMC4xOTIsIDAuMzM0OTIyLCAwLjQzOTQ3NywgMC42MDkwNzcsIDAuNzU3NzI0LCAwLjk3MDM4MiIsIFwKLSAgICAgICAgICAiMC4wNzU3MzIsIDAuMjAyMDA5LCAwLjM0MDcyMSwgMC40NDI0LCAwLjYwOTQ5NiwgMC43NTc3MzYsIDAuOTcwMzQiLCBcCi0gICAgICAgICAgIjAuMDg2OTc2LCAwLjIxMTg2OSwgMC4zNDc0NTYsIDAuNDQ3NzgsIDAuNjExODk4LCAwLjc1ODQ1LCAwLjk3MDExOCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJEIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2MDUzNCwgMC4zNDIyODcsIDAuNjIzOTA1LCAwLjgyNDMwNSwgMS4xNDU2MiwgMS40Mjc3NSwgMS44Mjg0NiIsIFwKLSAgICAgICAgICAiMC4wNjgxNzUsIDAuMzUwNDk5LCAwLjYzMTY0NywgMC44MzM0MzQsIDEuMTU0MTMsIDEuNDM2MjEsIDEuODM3MjIiLCBcCi0gICAgICAgICAgIjAuMDc4MTY3LCAwLjM2MDQzLCAwLjY0MTk0OSwgMC44NDI2NDUsIDEuMTY0NzksIDEuNDQ1ODgsIDEuODQ3NjIiLCBcCi0gICAgICAgICAgIjAuMDg4ODA4LCAwLjM3MDgwNSwgMC42NTIyNzMsIDAuODUyODUxLCAxLjE3NDY2LCAxLjQ1NjUxLCAxLjg1ODA0IiwgXAotICAgICAgICAgICIwLjA5OTY1LCAwLjM4MDk4MSwgMC42NjI4MSwgMC44NjM0MjUsIDEuMTg0ODYsIDEuNDY2NzMsIDEuODY4MTEiLCBcCi0gICAgICAgICAgIjAuMTE2MDA1LCAwLjM5NzMzMSwgMC42Nzg5LCAwLjg3OTc3NywgMS4yMDE1MSwgMS40ODM1OSwgMS44ODQyMSIsIFwKLSAgICAgICAgICAiMC4xMjgzMTMsIDAuNDExOTQsIDAuNjkzMjE0LCAwLjg5NDE2NSwgMS4yMTYwNiwgMS40OTY5NywgMS45MDA1NSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEzMzk5NiwgMC42OTk0NTcsIDEuMjY0LCAxLjY2NDAxLCAyLjMwNzU1LCAyLjg3NjUsIDMuNjc1NTkiLCBcCi0gICAgICAgICAgIjAuMTMyNjEsIDAuNjk5NDQyLCAxLjI2MTY5LCAxLjY2NzI4LCAyLjMwNzYzLCAyLjg3NjU2LCAzLjY4MTk0IiwgXAotICAgICAgICAgICIwLjEzNTE5MSwgMC42OTgwNjYsIDEuMjYxMzksIDEuNjY1MTEsIDIuMzExOTMsIDIuODc2MTQsIDMuNjc1MjgiLCBcCi0gICAgICAgICAgIjAuMTQwNjIyLCAwLjY5OTI4NiwgMS4yNjI1LCAxLjY2MjgxLCAyLjMwOTA3LCAyLjg3NjIyLCAzLjY3NTI5IiwgXAotICAgICAgICAgICIwLjE0NzQwMSwgMC42OTkyNDUsIDEuMjYzOSwgMS42NjY2LCAyLjMxMTQsIDIuODc2MjcsIDMuNjc1NzgiLCBcCi0gICAgICAgICAgIjAuMTYwMDI5LCAwLjY5OTEzMywgMS4yNjM2MSwgMS42NjM3NCwgMi4zMTE2MSwgMi44NzY2OSwgMy42NzcyOCIsIFwKLSAgICAgICAgICAiMC4xNzEyOTUsIDAuNzAwNDQ5LCAxLjI2MTE1LCAxLjY2Mzc5LCAyLjMxMTczLCAyLjg3NTY0LCAzLjY3NTg3Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE5NzY3LCAwLjA5MzM1MiwgMC4xNjY4NTQsIDAuMjE5MzY1LCAwLjMwMzQ4OCwgMC4zNzY5NjEsIDAuNDgyMDM3IiwgXAotICAgICAgICAgICIwLjAzMDEyMSwgMC4xMDM2NzQsIDAuMTc2OTU0LCAwLjIyOTQ3MywgMC4zMTM1MzQsIDAuMzg3MDg2LCAwLjQ5MjA5NSIsIFwKLSAgICAgICAgICAiMC4wNDIzOCwgMC4xMTYzMTEsIDAuMTg5ODkxLCAwLjI0MjM2OSwgMC4zMjY0NDMsIDAuMzk5MTY0LCAwLjUwNDA4NyIsIFwKLSAgICAgICAgICAiMC4wNTIwNjIsIDAuMTI5MDQ5LCAwLjIwMjc4MSwgMC4yNTUzMjYsIDAuMzM5MjM5LCAwLjQxMjk3NiwgMC41MTY2NjciLCBcCi0gICAgICAgICAgIjAuMDYwMjk3LCAwLjE0MjMxNCwgMC4yMTU0MDUsIDAuMjY3OTM0LCAwLjM1MTk3NCwgMC40MjU0MTgsIDAuNTMwNjE0IiwgXAotICAgICAgICAgICIwLjA3MTI0NiwgMC4xNjMyMzMsIDAuMjM2OTMxLCAwLjI4OTM0OSwgMC4zNzMzMjUsIDAuNDQ2OTcyLCAwLjU1MDk0OSIsIFwKLSAgICAgICAgICAiMC4wNzk5NjUsIDAuMTgxNTc4LCAwLjI1NDU4OSwgMC4zMDYwNjUsIDAuMzkxNDgsIDAuNDY0MDc4LCAwLjU2OTk2OCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzMjEwOSwgMC4xODE0NzcsIDAuMzMwNjA3LCAwLjQzNzQ5OCwgMC42MDY2OTYsIDAuNzU1OTI2LCAwLjk2ODM3NyIsIFwKLSAgICAgICAgICAiMC4wMzQ2MTEsIDAuMTgxNDkyLCAwLjMzMDc5MSwgMC40MzcxMDMsIDAuNjA2NDE1LCAwLjc1NTcxNiwgMC45Njg1OTgiLCBcCi0gICAgICAgICAgIjAuMDQyMTA5LCAwLjE4MjAwOCwgMC4zMzA3MjQsIDAuNDM3MzExLCAwLjYwNjU1MiwgMC43NTU3MjEsIDAuOTY4NzU4IiwgXAotICAgICAgICAgICIwLjA1MTkzMywgMC4xODQ5MDEsIDAuMzMwMzQ1LCAwLjQzNzM2OSwgMC42MDgwODQsIDAuNzU1ODUxLCAwLjk2ODAyMSIsIFwKLSAgICAgICAgICAiMC4wNjEwNjQsIDAuMTg5NjU3LCAwLjMzMjI5NSwgMC40MzY1NzIsIDAuNjA4MDc0LCAwLjc1NTA3LCAwLjk2ODA3NiIsIFwKLSAgICAgICAgICAiMC4wNzUwMjYsIDAuMTk5MjIxLCAwLjMzODA5NiwgMC40NDAxNTMsIDAuNjA2ODk5LCAwLjc1NTM4OCwgMC45NjgzODIiLCBcCi0gICAgICAgICAgIjAuMDg2NDk5LCAwLjIwOTMwNCwgMC4zNDQzOTQsIDAuNDQ1MjYzLCAwLjYwOTIyOSwgMC43NTgwMjIsIDAuOTY4NjI4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQU4iOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE0NTU5LCAwLjAxNDYyOSwgMC4wMTQ2MzksIDAuMDE0NjQxLCAwLjAxNDYzOSwgMC4wMTQ2NDQsIDAuMDE0NjQ1IiwgXAotICAgICAgICAgICIwLjAxNDQ4NywgMC4wMTQ1NzUsIDAuMDE0NTgyLCAwLjAxNDU4NywgMC4wMTQ1OTQsIDAuMDE0NTkzLCAwLjAxNDU5MyIsIFwKLSAgICAgICAgICAiMC4wMTQ0NDksIDAuMDE0NTUyLCAwLjAxNDU3LCAwLjAxNDU3NSwgMC4wMTQ1OCwgMC4wMTQ1ODIsIDAuMDE0NTg0IiwgXAotICAgICAgICAgICIwLjAxNDQ0NywgMC4wMTQ1NiwgMC4wMTQ1NzcsIDAuMDE0NTgzLCAwLjAxNDU5NSwgMC4wMTQ1OTgsIDAuMDE0NTk2IiwgXAotICAgICAgICAgICIwLjAxNDQ1MiwgMC4wMTQ1NjYsIDAuMDE0NTkyLCAwLjAxNDYsIDAuMDE0NjA3LCAwLjAxNDYxMSwgMC4wMTQ2MiIsIFwKLSAgICAgICAgICAiMC4wMTQ0NTQsIDAuMDE0NTcyLCAwLjAxNDYsIDAuMDE0NjA5LCAwLjAxNDYyLCAwLjAxNDYyMSwgMC4wMTQ2MjYiLCBcCi0gICAgICAgICAgIjAuMDE0NDc1LCAwLjAxNDU5NywgMC4wMTQ2MjcsIDAuMDE0NjM4LCAwLjAxNDY0OCwgMC4wMTQ2NTMsIDAuMDE0NjU4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDkyNCwgMC4wMDkyNDEsIDAuMDA5MjQzLCAwLjAwOTI0MSwgMC4wMDkyNDEsIDAuMDA5MjQyLCAwLjAwOTIzOSIsIFwKLSAgICAgICAgICAiMC4wMDkxODgsIDAuMDA5MTk4LCAwLjAwOTE5OSwgMC4wMDkxOTcsIDAuMDA5MTk3LCAwLjAwOTE5NiwgMC4wMDkxOTciLCBcCi0gICAgICAgICAgIjAuMDA5MTU1LCAwLjAwOTE3NCwgMC4wMDkxNzUsIDAuMDA5MTc2LCAwLjAwOTE3NywgMC4wMDkxNzYsIDAuMDA5MTczIiwgXAotICAgICAgICAgICIwLjAwOTE1MiwgMC4wMDkxNTksIDAuMDA5MTYzLCAwLjAwOTE2MywgMC4wMDkxNjQsIDAuMDA5MTY1LCAwLjAwOTE2MyIsIFwKLSAgICAgICAgICAiMC4wMDkxNDgsIDAuMDA5MTc2LCAwLjAwOTE3OCwgMC4wMDkxOCwgMC4wMDkxODIsIDAuMDA5MTgyLCAwLjAwOTE4MSIsIFwKLSAgICAgICAgICAiMC4wMDkxNDIsIDAuMDA5MTgxLCAwLjAwOTE4NCwgMC4wMDkxODQsIDAuMDA5MTg5LCAwLjAwOTE4MywgMC4wMDkxODIiLCBcCi0gICAgICAgICAgIjAuMDA5MTU5LCAwLjAwOTE5NiwgMC4wMDkyMDEsIDAuMDA5MjAxLCAwLjAwOTIwMiwgMC4wMDkyMDMsIDAuMDA5MjAyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTI0MzEsIDAuMDEyNDYzLCAwLjAxMjQ2NiwgMC4wMTI0NjcsIDAuMDEyNDY5LCAwLjAxMjQ2NiwgMC4wMTI0NjgiLCBcCi0gICAgICAgICAgIjAuMDEyMzI1LCAwLjAxMjQzMywgMC4wMTI0NSwgMC4wMTI0NTUsIDAuMDEyNDU5LCAwLjAxMjQ2MiwgMC4wMTI0NjQiLCBcCi0gICAgICAgICAgIjAuMDEyMjY1LCAwLjAxMjM5OSwgMC4wMTI0MjgsIDAuMDEyNDMxLCAwLjAxMjQ0NiwgMC4wMTI0NTYsIDAuMDEyNDQ3IiwgXAotICAgICAgICAgICIwLjAxMjIzNiwgMC4wMTIzNzQsIDAuMDEyNDEzLCAwLjAxMjQyNCwgMC4wMTI0MzYsIDAuMDEyNDQxLCAwLjAxMjQ0NyIsIFwKLSAgICAgICAgICAiMC4wMTIyMTksIDAuMDEyMzUzLCAwLjAxMjM5NiwgMC4wMTI0MSwgMC4wMTI0MjYsIDAuMDEyNDM0LCAwLjAxMjQ0MSIsIFwKLSAgICAgICAgICAiMC4wMTIyMDIsIDAuMDEyMzI1LCAwLjAxMjM3MSwgMC4wMTIzOTIsIDAuMDEyNDExLCAwLjAxMjQyMSwgMC4wMTI0MzEiLCBcCi0gICAgICAgICAgIjAuMDEyMTk4LCAwLjAxMjMwNiwgMC4wMTIzNTgsIDAuMDEyMzc4LCAwLjAxMjQsIDAuMDEyNDEsIDAuMDEyNDIyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI4MDcsIDAuMDAyODA4LCAwLjAwMjgwOCwgMC4wMDI4MDgsIDAuMDAyODA4LCAwLjAwMjgwNSwgMC4wMDI4MDciLCBcCi0gICAgICAgICAgIjAuMDAyNjk4LCAwLjAwMjczNSwgMC4wMDI3MzksIDAuMDAyNzQyLCAwLjAwMjc0MywgMC4wMDI3NDMsIDAuMDAyNzQ0IiwgXAotICAgICAgICAgICIwLjAwMjY0OCwgMC4wMDI3MDgsIDAuMDAyNzIsIDAuMDAyNzIzLCAwLjAwMjcyNiwgMC4wMDI3MiwgMC4wMDI3MjEiLCBcCi0gICAgICAgICAgIjAuMDAyNjA5LCAwLjAwMjY5MiwgMC4wMDI3MDMsIDAuMDAyNzA5LCAwLjAwMjcxNCwgMC4wMDI3MTYsIDAuMDAyNzE4IiwgXAotICAgICAgICAgICIwLjAwMjY4OCwgMC4wMDI2OTIsIDAuMDAyNzE0LCAwLjAwMjcxNywgMC4wMDI3MTksIDAuMDAyNzIxLCAwLjAwMjcyMyIsIFwKLSAgICAgICAgICAiMC4wMDI2MzUsIDAuMDAyNzMsIDAuMDAyNzIsIDAuMDAyNzIxLCAwLjAwMjcyNSwgMC4wMDI3MjUsIDAuMDAyNzIyIiwgXAotICAgICAgICAgICIwLjAwMjY5OSwgMC4wMDI3NjYsIDAuMDAyNzM4LCAwLjAwMjczNSwgMC4wMDI3MzIsIDAuMDAyNzM1LCAwLjAwMjczMSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEwNDg3LCAwLjAxMDUyMSwgMC4wMTA1MjQsIDAuMDEwNTI3LCAwLjAxMDUyNSwgMC4wMTA1MjYsIDAuMDEwNTI2IiwgXAotICAgICAgICAgICIwLjAxMDM4MiwgMC4wMTA0ODksIDAuMDEwNTA2LCAwLjAxMDUxMSwgMC4wMTA1MTcsIDAuMDEwNTE2LCAwLjAxMDUyNCIsIFwKLSAgICAgICAgICAiMC4wMTAzMjMsIDAuMDEwNDU2LCAwLjAxMDQ4OSwgMC4wMTA0OTYsIDAuMDEwNTA0LCAwLjAxMDUwOCwgMC4wMTA1MTMiLCBcCi0gICAgICAgICAgIjAuMDEwMjk1LCAwLjAxMDQzMiwgMC4wMTA0NjgsIDAuMDEwNDgsIDAuMDEwNDkzLCAwLjAxMDQ5LCAwLjAxMDUwMyIsIFwKLSAgICAgICAgICAiMC4wMTAyNzksIDAuMDEwNDEsIDAuMDEwNDUzLCAwLjAxMDQ2OCwgMC4wMTA0ODQsIDAuMDEwNDkxLCAwLjAxMDQ5NyIsIFwKLSAgICAgICAgICAiMC4wMTAyNywgMC4wMTAzODQsIDAuMDEwNDM3LCAwLjAxMDQ1LCAwLjAxMDQ3MiwgMC4wMTA0NzgsIDAuMDEwNDg5IiwgXAotICAgICAgICAgICIwLjAxMDI3NiwgMC4wMTAzNywgMC4wMTA0MTgsIDAuMDEwNDM4LCAwLjAxMDQ1OCwgMC4wMTA0NjksIDAuMDEwNDgxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDE0OSwgMC4wMDE1MDQsIDAuMDAxNTA1LCAwLjAwMTUwNSwgMC4wMDE1MDUsIDAuMDAxNTA1LCAwLjAwMTUwNSIsIFwKLSAgICAgICAgICAiMC4wMDE0NDIsIDAuMDAxNTM3LCAwLjAwMTU1MywgMC4wMDE1NTcsIDAuMDAxNTYxLCAwLjAwMTU2MiwgMC4wMDE1NjQiLCBcCi0gICAgICAgICAgIjAuMDAxMzg5LCAwLjAwMTUyNywgMC4wMDE1NDgsIDAuMDAxNTU1LCAwLjAwMTU2MSwgMC4wMDE1NjQsIDAuMDAxNTY2IiwgXAotICAgICAgICAgICIwLjAwMTM5NiwgMC4wMDE1MTYsIDAuMDAxNTM5LCAwLjAwMTU1MiwgMC4wMDE1NjEsIDAuMDAxNTY0LCAwLjAwMTU3IiwgXAotICAgICAgICAgICIwLjAwMTQxOSwgMC4wMDE1MSwgMC4wMDE1MzYsIDAuMDAxNTQ4LCAwLjAwMTU1OSwgMC4wMDE1NjQsIDAuMDAxNTY5IiwgXAotICAgICAgICAgICIwLjAwMTM3MSwgMC4wMDE1MzgsIDAuMDAxNTUxLCAwLjAwMTU1MywgMC4wMDE1NjIsIDAuMDAxNTY2LCAwLjAwMTU3NSIsIFwKLSAgICAgICAgICAiMC4wMDE0MjMsIDAuMDAxNTY5LCAwLjAwMTU2NywgMC4wMDE1NzMsIDAuMDAxNTczLCAwLjAwMTU4MSwgMC4wMDE1NzgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJEIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwODMxOCwgMC4wMDgzNzEsIDAuMDA4Mzc3LCAwLjAwODM3OCwgMC4wMDgzNzcsIDAuMDA4MzgxLCAwLjAwODM4MiIsIFwKLSAgICAgICAgICAiMC4wMDgxNjQsIDAuMDA4MzI0LCAwLjAwODM0OSwgMC4wMDgzNTcsIDAuMDA4MzY1LCAwLjAwODM2OCwgMC4wMDgzNjkiLCBcCi0gICAgICAgICAgIjAuMDA4MTIzLCAwLjAwODI4NCwgMC4wMDgzMjMsIDAuMDA4MzM1LCAwLjAwODM0NywgMC4wMDgzNTQsIDAuMDA4MzYxIiwgXAotICAgICAgICAgICIwLjAwODExNSwgMC4wMDgyNTEsIDAuMDA4Mjk5LCAwLjAwODMxNiwgMC4wMDgzMzQsIDAuMDA4MzQxLCAwLjAwODM0OSIsIFwKLSAgICAgICAgICAiMC4wMDgxNTIsIDAuMDA4MjM3LCAwLjAwODI4NSwgMC4wMDgzMDQsIDAuMDA4MzI2LCAwLjAwODMzMSwgMC4wMDgzNDQiLCBcCi0gICAgICAgICAgIjAuMDA4MjQyLCAwLjAwODIzLCAwLjAwODI3MiwgMC4wMDgyOSwgMC4wMDgzMSwgMC4wMDgzMjIsIDAuMDA4MzMyIiwgXAotICAgICAgICAgICIwLjAwODMzNCwgMC4wMDgyMzgsIDAuMDA4MjY5LCAwLjAwODI4NiwgMC4wMDgzMDQsIDAuMDA4MzE2LCAwLjAwODMxOCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwMTE1LCAwLjAwMDE4MSwgMC4wMDAxODgsIDAuMDAwMTksIDAuMDAwMTkxLCAwLjAwMDE5MiwgMC4wMDAxOTQiLCBcCi0gICAgICAgICAgIjAuMDAwMDY2LCAwLjAwMDI2NCwgMC4wMDAyOTcsIDAuMDAwMzA1LCAwLjAwMDMxMywgMC4wMDAzMTYsIDAuMDAwMzIiLCBcCi0gICAgICAgICAgIjAuMDAwMDE2LCAwLjAwMDI2MiwgMC4wMDAyOTksIDAuMDAwMzEyLCAwLjAwMDMyMiwgMC4wMDAzNDIsIDAuMDAwMzQ5IiwgXAotICAgICAgICAgICIwLjAwMDAwMSwgMC4wMDAyNDksIDAuMDAwMjk1LCAwLjAwMDMwOCwgMC4wMDAzMjMsIDAuMDAwMzMyLCAwLjAwMDM1MSIsIFwKLSAgICAgICAgICAiMC4wMDAwMTEsIDAuMDAwMjQyLCAwLjAwMDI4NywgMC4wMDAzMDUsIDAuMDAwMzI0LCAwLjAwMDMzMywgMC4wMDAzNDEiLCBcCi0gICAgICAgICAgIjAuMDAwMDY1LCAwLjAwMDI0MiwgMC4wMDAyODUsIDAuMDAwMzAzLCAwLjAwMDMyLCAwLjAwMDMyOSwgMC4wMDAzNDIiLCBcCi0gICAgICAgICAgIjAuMDAwMTU0LCAwLjAwMDI1NSwgMC4wMDAyOTYsIDAuMDAwMzExLCAwLjAwMDMyOCwgMC4wMDAzMzYsIDAuMDAwMzQzIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBPQTIyWDQgKgotICogLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChPQTIyWDQpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4yOTIwMjY7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA4NjkzMjY7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwODY3MTk0OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDg2OTMyNjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA0MDksIDAuMDAwNDA5LCAwLjAwMDQwOSwgMC4wMDA0MDksIDAuMDAwNDA5LCAwLjAwMDQwOCwgMC4wMDA0MDgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA0MSwgMC4wMDA0MSwgMC4wMDA0MSwgMC4wMDA0MSwgMC4wMDA0MSwgMC4wMDA0MSwgMC4wMDA0MSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQTEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDkyMDAyMTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA5MjAwMjE7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwOTE3MDQxOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDQwOSwgMC4wMDA0MDksIDAuMDAwNDA5LCAwLjAwMDQwOSwgMC4wMDA0MDksIDAuMDAwNDA5LCAwLjAwMDQwOSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDQxLCAwLjAwMDQxLCAwLjAwMDQxLCAwLjAwMDQxLCAwLjAwMDQxLCAwLjAwMDQxLCAwLjAwMDQwOSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQjApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDg4MDMwMTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA4NzQ2NzU7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwODgwMzAxOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDQwOCwgMC4wMDA0MDksIDAuMDAwNDA4LCAwLjAwMDQwOCwgMC4wMDA0MDgsIDAuMDAwNDA4LCAwLjAwMDQwOCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDQ2NCwgMC4wMDA0NjQsIDAuMDAwNDY1LCAwLjAwMDQ2NSwgMC4wMDA0NjUsIDAuMDAwNDY1LCAwLjAwMDQ2NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQjEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDkyODgxNDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA5Mjg1NTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA5Mjg4MTQ7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNDA3LCAwLjAwMDQwOCwgMC4wMDA0MDgsIDAuMDAwNDA4LCAwLjAwMDQwOCwgMC4wMDA0MDgsIDAuMDAwNDA3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNDY0LCAwLjAwMDQ2NCwgMC4wMDA0NjQsIDAuMDAwNDY0LCAwLjAwMDQ2NCwgMC4wMDA0NjQsIDAuMDAwNDY0Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDEuMDAxNTY7Ci0gICAgZnVuY3Rpb24gOiAiKChBMCtBMSkgKEIwK0IxKSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4NDI5NSwgMC4xNjI4MDQsIDAuMjM1NTczLCAwLjI4NzQxMywgMC4zNzAyOTQsIDAuNDQyODQsIDAuNTQ2MzUxIiwgXAotICAgICAgICAgICIwLjA5Mzg4MSwgMC4xNzI0LCAwLjI0NTE0MiwgMC4yOTcwMSwgMC4zNzk4OTgsIDAuNDUyNDIzLCAwLjU1NTkiLCBcCi0gICAgICAgICAgIjAuMTA0OTc3LCAwLjE4MzUxMiwgMC4yNTYzMSwgMC4zMDgxNDYsIDAuMzkxMDI4LCAwLjQ2MzUyMiwgMC41NjcxMzEiLCBcCi0gICAgICAgICAgIjAuMTE2MDAxLCAwLjE5NDQyOCwgMC4yNjcxOTksIDAuMzE5MDQyLCAwLjQwMTk1MSwgMC40NzQ0OTksIDAuNTc3OTc2IiwgXAotICAgICAgICAgICIwLjEyNjU1NiwgMC4yMDQ5NzksIDAuMjc3NzU2LCAwLjMyOTU5MywgMC40MTI0ODksIDAuNDg0OTgzLCAwLjU4ODU5OCIsIFwKLSAgICAgICAgICAiMC4xNDI3MzIsIDAuMjIxMzYxLCAwLjI5NDExNywgMC4zNDU5NjYsIDAuNDI4ODc2LCAwLjUwMTM1OSwgMC42MDQ4ODkiLCBcCi0gICAgICAgICAgIjAuMTU1NDksIDAuMjM0NTQyLCAwLjMwNzI5MywgMC4zNTkxNjgsIDAuNDQyMDQ0LCAwLjUxNDU2MSwgMC42MTgwODMiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDE0MTMsIDAuMTgzNTA3LCAwLjMzMTAyOCwgMC40MzcyNSwgMC42MDcsIDAuNzU3MDg0LCAwLjk3MDk3NiIsIFwKLSAgICAgICAgICAiMC4wNDEyODMsIDAuMTgzNjA5LCAwLjMzMTAxMSwgMC40MzczODUsIDAuNjA3MDAyLCAwLjc1NzM1NSwgMC45NzA4NyIsIFwKLSAgICAgICAgICAiMC4wNDExODYsIDAuMTgzNTg3LCAwLjMzMTEwMywgMC40MzY0ODYsIDAuNjA3ODMxLCAwLjc1NzI2MSwgMC45NzEwNDIiLCBcCi0gICAgICAgICAgIjAuMDQxMTAzLCAwLjE4MzU5NiwgMC4zMzEwMDcsIDAuNDM3MTg3LCAwLjYwNzA3MywgMC43NTczNzIsIDAuOTcwODkxIiwgXAotICAgICAgICAgICIwLjA0MTMyNCwgMC4xODM2MjYsIDAuMzMwNjE3LCAwLjQzNzIxMywgMC42MDc4NDIsIDAuNzU3MjQ5LCAwLjk3MTAzOSIsIFwKLSAgICAgICAgICAiMC4wNDIyMzgsIDAuMTgzNzUsIDAuMzMxMTA5LCAwLjQzNjkzMywgMC42MDc0MjksIDAuNzU2Mzg4LCAwLjk3MDcyOSIsIFwKLSAgICAgICAgICAiMC4wNDM0ODgsIDAuMTg0Mjg3LCAwLjMzMTM3MywgMC40Mzc0NjEsIDAuNjA3NDU0LCAwLjc1NjAzMywgMC45NzA3NDciKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODUzMjIsIDAuMTY3MzQ5LCAwLjI0MTMyOSwgMC4yOTM5MDUsIDAuMzc3OTQyLCAwLjQ1MTQ1NywgMC41NTY0NDkiLCBcCi0gICAgICAgICAgIjAuMDkzOTIzLCAwLjE3NTk1NiwgMC4yNDk5MjYsIDAuMzAyNTA1LCAwLjM4NjU0MiwgMC40NjAwNCwgMC41NjUwMDQiLCBcCi0gICAgICAgICAgIjAuMTAzOTU4LCAwLjE4NTk4OCwgMC4yNTk5NzIsIDAuMzEyNTU4LCAwLjM5NjU4NywgMC40NzAxLCAwLjU3NTA4MyIsIFwKLSAgICAgICAgICAiMC4xMTM4NTUsIDAuMTk1ODgsIDAuMjY5ODY3LCAwLjMyMjQ0OCwgMC40MDY0ODgsIDAuNDgwMDA1LCAwLjU4NDk5OCIsIFwKLSAgICAgICAgICAiMC4xMjM0MzYsIDAuMjA1NDc4LCAwLjI3OTQ2NywgMC4zMzIwNDksIDAuNDE2MDkxLCAwLjQ4OTU4OCwgMC41OTQ2MDEiLCBcCi0gICAgICAgICAgIjAuMTM3NjU3LCAwLjIxOTk0NCwgMC4yOTM5MzUsIDAuMzQ2NTE1LCAwLjQzMDU2LCAwLjUwNDA2LCAwLjYwOTA5IiwgXAotICAgICAgICAgICIwLjE0ODk5NSwgMC4yMzE3NjEsIDAuMzA1NzY3LCAwLjM1ODM1NSwgMC40NDI0MDQsIDAuNTE1OTMyLCAwLjYyMDg0MyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0NDg2MSwgMC4xODU0MjIsIDAuMzMxMDMzLCAwLjQzNjY5MSwgMC42MDYwMDYsIDAuNzUzNTgzLCAwLjk2NzExNiIsIFwKLSAgICAgICAgICAiMC4wNDQ4MzMsIDAuMTg1NDMxLCAwLjMzMTAyLCAwLjQzNjY3NywgMC42MDYwMiwgMC43NTQ2MiwgMC45NjcwMTkiLCBcCi0gICAgICAgICAgIjAuMDQ0ODIsIDAuMTg1NDE5LCAwLjMzMTA1MiwgMC40MzY2NzYsIDAuNjA1OTY5LCAwLjc1MzM5OCwgMC45NjcwMiIsIFwKLSAgICAgICAgICAiMC4wNDQ5NCwgMC4xODU0MzgsIDAuMzMxMDI3LCAwLjQzNjY5MSwgMC42MDYwMDcsIDAuNzU0MzM4LCAwLjk2NzEzMiIsIFwKLSAgICAgICAgICAiMC4wNDUxOTgsIDAuMTg1NDkzLCAwLjMzMTA0OSwgMC40MzY3MDUsIDAuNjA2MDE0LCAwLjc1NDYyLCAwLjk2NzEwMyIsIFwKLSAgICAgICAgICAiMC4wNDYzNywgMC4xODU2NiwgMC4zMzEyMDUsIDAuNDM2NzgzLCAwLjYwNjA2NywgMC43NTM0MTIsIDAuOTY2OTgyIiwgXAotICAgICAgICAgICIwLjA0NzUyMywgMC4xODYyOTcsIDAuMzMxMzc0LCAwLjQzNjk1OCwgMC42MDYyMzMsIDAuNzU0ODI5LCAwLjk2NzI4MyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzk0NjUsIDAuMTU3NTgxLCAwLjIzMDI0LCAwLjI4MjA2OCwgMC4zNjQ5MiwgMC40Mzc0MTQsIDAuNTQwODY1IiwgXAotICAgICAgICAgICIwLjA4OTEzOCwgMC4xNjcyMTIsIDAuMjM5ODg0LCAwLjI5MTY4NiwgMC4zNzQ1NTcsIDAuNDQ3MDY2LCAwLjU1MDUxNSIsIFwKLSAgICAgICAgICAiMC4xMDAwNjQsIDAuMTc4MTgyLCAwLjI1MDg2NSwgMC4zMDI2NjUsIDAuMzg1NTE5LCAwLjQ1Nzk5MywgMC41NjE1NjgiLCBcCi0gICAgICAgICAgIjAuMTEwODA4LCAwLjE4ODkwOCwgMC4yNjE2MSwgMC4zMTMzOTUsIDAuMzk2Mjk4LCAwLjQ2ODc0MiwgMC41NzIyMTUiLCBcCi0gICAgICAgICAgIjAuMTIxMjM2LCAwLjE5OTMyNSwgMC4yNzIwMDQsIDAuMzIzODI3LCAwLjQwNjcwMSwgMC40NzkxODIsIDAuNTgyNjM4IiwgXAotICAgICAgICAgICIwLjEzNjc4MywgMC4yMTUxMTIsIDAuMjg3Nzk2LCAwLjMzOTYwMSwgMC40MjI1MzQsIDAuNDk0OTIzLCAwLjU5ODQxNyIsIFwKLSAgICAgICAgICAiMC4xNDkzMDUsIDAuMjI4MDk1LCAwLjMwMDc1NiwgMC4zNTI1NTUsIDAuNDM1Mzg2LCAwLjUwNzg3LCAwLjYxMTM4NSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0MDY3NiwgMC4xODMyMDIsIDAuMzMwNjg3LCAwLjQzNjM1LCAwLjYwNjQwNywgMC43NTcwODMsIDAuOTcwNjM3IiwgXAotICAgICAgICAgICIwLjA0MDc2MywgMC4xODMyMDUsIDAuMzMwNjcxLCAwLjQzNjg4NCwgMC42MDY3MjgsIDAuNzU3MDg0LCAwLjk3MDYxNiIsIFwKLSAgICAgICAgICAiMC4wNDA1ODQsIDAuMTgzMTg2LCAwLjMzMDM2MSwgMC40MzYzOTUsIDAuNjA3NTE2LCAwLjc1Njg4LCAwLjk3MDYwOCIsIFwKLSAgICAgICAgICAiMC4wNDA2MjgsIDAuMTgzMTczLCAwLjMzMDE2LCAwLjQzNjg4NSwgMC42MDc2MDcsIDAuNzU2Njg2LCAwLjk2OTg5NSIsIFwKLSAgICAgICAgICAiMC4wNDA5NDksIDAuMTgzMjIxLCAwLjMzMDY2NiwgMC40MzY5NjUsIDAuNjA2NDEsIDAuNzU3MDIxLCAwLjk3MDQ3NCIsIFwKLSAgICAgICAgICAiMC4wNDIyODksIDAuMTgzNjA1LCAwLjMzMDQzNSwgMC40MzY5MjgsIDAuNjA3MjI0LCAwLjc1Njg2NSwgMC45NzAzMzIiLCBcCi0gICAgICAgICAgIjAuMDQzMjUsIDAuMTg0MDg5LCAwLjMzMDk0NCwgMC40MzcxOTIsIDAuNjA3NTE3LCAwLjc1NjkxNiwgMC45NjkwNDgiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODIxNjMsIDAuMTY0MTkzLCAwLjIzODE3MSwgMC4yOTA3NTUsIDAuMzc0Nzg3LCAwLjQ0ODI4OSwgMC41NTMyNDMiLCBcCi0gICAgICAgICAgIjAuMDkxMDA1LCAwLjE3MzAzOCwgMC4yNDcwMTksIDAuMjk5NTk3LCAwLjM4MzYzNiwgMC40NTcxNDgsIDAuNTYyMTQ4IiwgXAotICAgICAgICAgICIwLjEwMjQ2OSwgMC4xODQ0OTEsIDAuMjU4NDgxLCAwLjMxMTA2MiwgMC4zOTUxMDMsIDAuNDY4NjIsIDAuNTczNjE0IiwgXAotICAgICAgICAgICIwLjExNDEzLCAwLjE5NjE0MywgMC4yNzAxMzgsIDAuMzIyNzIzLCAwLjQwNjc2NywgMC40ODAyODIsIDAuNTg1Mjg2IiwgXAotICAgICAgICAgICIwLjEyNTYxLCAwLjIwNzYxNCwgMC4yODE2MDcsIDAuMzM0MTkzLCAwLjQxODIzOSwgMC40OTE3NDYsIDAuNTk2NzY4IiwgXAotICAgICAgICAgICIwLjE0MjYwOCwgMC4yMjQ4NDQsIDAuMjk4ODMyLCAwLjM1MTQxOCwgMC40MzU0NjgsIDAuNTA4OTY5LCAwLjYxMzk2MSIsIFwKLSAgICAgICAgICAiMC4xNTU4NjgsIDAuMjM4NTc1LCAwLjMxMjU1MSwgMC4zNjUxNjUsIDAuNDQ5MTkxLCAwLjUyMjY4NSwgMC42Mjc2NjIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDQ4ODksIDAuMTg1NDM1LCAwLjMzMTE1NCwgMC40MzY2NzUsIDAuNjA1MDUsIDAuNzU0MzM2LCAwLjk2NzIyOCIsIFwKLSAgICAgICAgICAiMC4wNDQ4OTEsIDAuMTg1NDI2LCAwLjMzMTAyOSwgMC40MzY2OTgsIDAuNjA1OTk4LCAwLjc1NDMzNiwgMC45NjcxMjciLCBcCi0gICAgICAgICAgIjAuMDQ0ODE4LCAwLjE4NTQxOSwgMC4zMzEwMzIsIDAuNDM2NjkyLCAwLjYwNTk5NCwgMC43NTQzNzgsIDAuOTY2OTk4IiwgXAotICAgICAgICAgICIwLjA0NDkxLCAwLjE4NTQzLCAwLjMzMTAyLCAwLjQzNjY4MSwgMC42MDYsIDAuNzU0MzQ3LCAwLjk2NzAwOCIsIFwKLSAgICAgICAgICAiMC4wNDUyODgsIDAuMTg1NTc0LCAwLjMzMTAxOCwgMC40MzY2OTcsIDAuNjA2MDI2LCAwLjc1NDM1NiwgMC45NjcxMDgiLCBcCi0gICAgICAgICAgIjAuMDQ2ODM4LCAwLjE4NTg4NywgMC4zMzExNDIsIDAuNDM2NzczLCAwLjYwNjA2NSwgMC43NTMzNTYsIDAuOTY3MTI3IiwgXAotICAgICAgICAgICIwLjA0ODg2MiwgMC4xODY0MDQsIDAuMzMxNjA2LCAwLjQzNzA2NSwgMC42MDUzMTIsIDAuNzU0Mzk1LCAwLjk2Njk2OCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzcxNjYsIDAuMTU1NjkyLCAwLjIyODQ0OSwgMC4yODAyOSwgMC4zNjMxODcsIDAuNDM1NzUxLCAwLjUzOTIxOCIsIFwKLSAgICAgICAgICAiMC4wODYzMjgsIDAuMTY0NzkyLCAwLjIzNzU1MywgMC4yODkzOTQsIDAuMzcyMzAyLCAwLjQ0NDg0NywgMC41NDgzMjEiLCBcCi0gICAgICAgICAgIjAuMDk4MjQzLCAwLjE3NjY4OSwgMC4yNDk0NjEsIDAuMzAxMzA0LCAwLjM4NDIwNiwgMC40NTY3NzQsIDAuNTYwMjQyIiwgXAotICAgICAgICAgICIwLjEwOTk5LCAwLjE4ODM5OCwgMC4yNjExNzQsIDAuMzEzMDE5LCAwLjM5NTkxNiwgMC40Njg0OTUsIDAuNTcyMDE4IiwgXAotICAgICAgICAgICIwLjEyMTgsIDAuMjAwMTYxLCAwLjI3MjkzMSwgMC4zMjQ3NzcsIDAuNDA3Njg2LCAwLjQ4MDI0NiwgMC41ODM3MjMiLCBcCi0gICAgICAgICAgIjAuMTM5NDk0LCAwLjIxODAyMSwgMC4yOTA3NzEsIDAuMzQyNjU0LCAwLjQyNTUxOCwgMC40OTgwMTYsIDAuNjAxNTQ2IiwgXAotICAgICAgICAgICIwLjE1MzExNiwgMC4yMzIwMzEsIDAuMzA0Nzk1LCAwLjM1NjY0MSwgMC40Mzk1MDksIDAuNTEyMDIyLCAwLjYxNTU3NCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0MTI3MywgMC4xODM2MTcsIDAuMzMxMDE5LCAwLjQzNzIzMSwgMC42MDcxNDIsIDAuNzU3NDM4LCAwLjk3MDk0OSIsIFwKLSAgICAgICAgICAiMC4wNDExNjUsIDAuMTgzNjA3LCAwLjMzMDk5NSwgMC40MzcyMDEsIDAuNjA3MDMxLCAwLjc1NzM2OCwgMC45NzA4ODgiLCBcCi0gICAgICAgICAgIjAuMDQxMDYxLCAwLjE4MzYwMywgMC4zMzEwMDQsIDAuNDM3MjA4LCAwLjYwNzUyMSwgMC43NTY5NDgsIDAuOTcwODkzIiwgXAotICAgICAgICAgICIwLjA0MTExNywgMC4xODM1ODcsIDAuMzMwOTkzLCAwLjQzNzIxMiwgMC42MDc4MzMsIDAuNzU3MDI4LCAwLjk3MDk5NCIsIFwKLSAgICAgICAgICAiMC4wNDE1MDQsIDAuMTgzNjg0LCAwLjMzMTAzMiwgMC40MzcxNzMsIDAuNjA3MTE3LCAwLjc1NzM3MSwgMC45NzA3NDYiLCBcCi0gICAgICAgICAgIjAuMDQzMjE2LCAwLjE4NDAzLCAwLjMzMTE5LCAwLjQzNjUyNywgMC42MDcxNTEsIDAuNzU2Mjc3LCAwLjk3MDcyOCIsIFwKLSAgICAgICAgICAiMC4wNDUyNDYsIDAuMTg0NzEyLCAwLjMzMTIxOCwgMC40MzY4NDUsIDAuNjA3NTMyLCAwLjc1Njg1NSwgMC45NzA3ODMiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzcwNTYsIDAuMTU4MTU5LCAwLjIzMTg1MiwgMC4yODQzMTIsIDAuMzY4MjE3LCAwLjQ0MTY1OSwgMC41NDY1NDIiLCBcCi0gICAgICAgICAgIjAuMDg1Njg4LCAwLjE2NjgwMiwgMC4yNDA0OTUsIDAuMjkyOTU2LCAwLjM3Njg2NCwgMC40NTAyOTksIDAuNTU1MTk5IiwgXAotICAgICAgICAgICIwLjA5NTYwNywgMC4xNzY3MjksIDAuMjUwNDI3LCAwLjMwMjg4OSwgMC4zODY3OTcsIDAuNDYwMjM5LCAwLjU2NTEyNSIsIFwKLSAgICAgICAgICAiMC4xMDUzMzEsIDAuMTg2NDU3LCAwLjI2MDE2MiwgMC4zMTI2MjYsIDAuMzk2NTM0LCAwLjQ2OTk4LCAwLjU3NDg2MiIsIFwKLSAgICAgICAgICAiMC4xMTQ1OTcsIDAuMTk1NzgzLCAwLjI2OTQ4OCwgMC4zMjE5NTUsIDAuNDA1ODcsIDAuNDc5Mjg5LCAwLjU4NDIxNSIsIFwKLSAgICAgICAgICAiMC4xMjc5NzEsIDAuMjA5NjQ5LCAwLjI4MzM1NSwgMC4zMzU4MjEsIDAuNDE5NzM1LCAwLjQ5MzE1MywgMC41OTgwOTkiLCBcCi0gICAgICAgICAgIjAuMTM4NTg5LCAwLjIyMDc4NywgMC4yOTQ1MjIsIDAuMzQ2OTY5LCAwLjQzMDkwNCwgMC41MDQyODcsIDAuNjA5MjYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDM1OTEsIDAuMTg0Mjc4LCAwLjMyOTkyMywgMC40MzU2NzEsIDAuNjA1MDU1LCAwLjc1Mjg1NCwgMC45NjY1NSIsIFwKLSAgICAgICAgICAiMC4wNDM1OTksIDAuMTg0MzQ3LCAwLjMyOTg5LCAwLjQzNTY3NCwgMC42MDUwNTMsIDAuNzUzNTQyLCAwLjk2NjYwNiIsIFwKLSAgICAgICAgICAiMC4wNDM2MjEsIDAuMTg0Mjc2LCAwLjMyOTkxNSwgMC40MzU2NzUsIDAuNjA1MDQ3LCAwLjc1MzY3NiwgMC45NjY1NjMiLCBcCi0gICAgICAgICAgIjAuMDQzNzc1LCAwLjE4NDMwOSwgMC4zMjk5MzQsIDAuNDM1NjgyLCAwLjYwNTA1NiwgMC43NTM2NTcsIDAuOTY2NTQ4IiwgXAotICAgICAgICAgICIwLjA0NDUsIDAuMTg0NDY1LCAwLjMzMDM2MywgMC40MzU3MTcsIDAuNjA0NjUsIDAuNzUyNTQ1LCAwLjk2NjQwNCIsIFwKLSAgICAgICAgICAiMC4wNDU4NDgsIDAuMTg0OTA0LCAwLjMzMDIxNywgMC40MzU4NDksIDAuNjA1MTQ2LCAwLjc1MjQ3OSwgMC45NjYxNTQiLCBcCi0gICAgICAgICAgIjAuMDQ3MjUyLCAwLjE4NTY0LCAwLjMzMDU1NCwgMC40MzU0MTIsIDAuNjA0OTA2LCAwLjc1Mzc3MSwgMC45NjY0MDQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjEiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDcyMDg4LCAwLjE1MDI5MSwgMC4yMjI5NDUsIDAuMjc0NzY2LCAwLjM1NzYzLCAwLjQzMDA5NSwgMC41MzM1NjEiLCBcCi0gICAgICAgICAgIjAuMDgxMjUzLCAwLjE1OTMyMSwgMC4yMzE5ODcsIDAuMjgzNzg4LCAwLjM2NjY1NywgMC40MzkxNywgMC41NDI2MTYiLCBcCi0gICAgICAgICAgIjAuMDkzMTI5LCAwLjE3MTE3MSwgMC4yNDM4NSwgMC4yOTU2ODcsIDAuMzc4NTA1LCAwLjQ1MDk3NiwgMC41NTQ1NTkiLCBcCi0gICAgICAgICAgIjAuMTA0NzEzLCAwLjE4Mjc4OCwgMC4yNTU0NTksIDAuMzA3MjkzLCAwLjM5MDE1OCwgMC40NjI2MzgsIDAuNTY2MDkzIiwgXAotICAgICAgICAgICIwLjExNjE4MSwgMC4xOTQzNiwgMC4yNjcwNCwgMC4zMTg4NDcsIDAuNDAxNzEzLCAwLjQ3NDI0MywgMC41Nzc2OTEiLCBcCi0gICAgICAgICAgIjAuMTMzMTY1LCAwLjIxMTc1OCwgMC4yODQzMTMsIDAuMzM2MTMsIDAuNDE4OTU5LCAwLjQ5MTQ5MiwgMC41OTQ5MjgiLCBcCi0gICAgICAgICAgIjAuMTQ2MDAzLCAwLjIyNTA2LCAwLjI5NzY5NCwgMC4zNDk0OTcsIDAuNDMyMzQ1LCAwLjUwNDgwNywgMC42MDgzNTUiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDA3NjksIDAuMTgzMTk2LCAwLjMzMDY2OSwgMC40MzYzNDgsIDAuNjA2MzQ3LCAwLjc1NTU3OSwgMC45NzA2MyIsIFwKLSAgICAgICAgICAiMC4wNDA3MjMsIDAuMTgzMTkyLCAwLjMzMDY1LCAwLjQzNjg1OCwgMC42MDY3MTgsIDAuNzU3MDczLCAwLjk3MDU4NyIsIFwKLSAgICAgICAgICAiMC4wNDA2NDQsIDAuMTgzMTc0LCAwLjMzMDM0LCAwLjQzNjk2MywgMC42MDc1MDYsIDAuNzU2OTQ0LCAwLjk3MDc2IiwgXAotICAgICAgICAgICIwLjA0MDY5NCwgMC4xODMxODEsIDAuMzMwNjQsIDAuNDM2OTg3LCAwLjYwNzAzNCwgMC43NTcwMTksIDAuOTcwNTU3IiwgXAotICAgICAgICAgICIwLjA0MTM4OSwgMC4xODMzMjEsIDAuMzMwNjcyLCAwLjQzNjg4MiwgMC42MDY4MywgMC43NTY5NTEsIDAuOTcwNTU0IiwgXAotICAgICAgICAgICIwLjA0MzkxMSwgMC4xODM3NDMsIDAuMzMwOTEzLCAwLjQzNzExMiwgMC42MDY4MjMsIDAuNzU3MTAyLCAwLjk3MDU4NSIsIFwKLSAgICAgICAgICAiMC4wNDUyNTUsIDAuMTg0NDA4LCAwLjMzMDcxLCAwLjQzNjgxMywgMC42MDc1ODEsIDAuNzU2OTM0LCAwLjk3MDU0NSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3MzY4NCwgMC4xNTQ3OTksIDAuMjI4NDk3LCAwLjI4MDk1OSwgMC4zNjQ4NjcsIDAuNDM4MywgMC41NDMyMDQiLCBcCi0gICAgICAgICAgIjAuMDgyNTM2LCAwLjE2MzY2NCwgMC4yMzczNjMsIDAuMjg5ODI3LCAwLjM3MzczNCwgMC40NDcxNDUsIDAuNTUyMDU3IiwgXAotICAgICAgICAgICIwLjA5NDAyMywgMC4xNzUxNDQsIDAuMjQ4ODQ5LCAwLjMwMTMyMiwgMC4zODUyMjksIDAuNDU4Njc0LCAwLjU2MzYyIiwgXAotICAgICAgICAgICIwLjEwNTU0MywgMC4xODY2NzIsIDAuMjYwMzg5LCAwLjMxMjg2LCAwLjM5Njc3NCwgMC40NzAyMTMsIDAuNTc1MTE2IiwgXAotICAgICAgICAgICIwLjExNjUyLCAwLjE5Nzc0OSwgMC4yNzE0NjcsIDAuMzIzOTM4LCAwLjQwNzg1NCwgMC40ODEzMDEsIDAuNTg2MTkiLCBcCi0gICAgICAgICAgIjAuMTMyMjQyLCAwLjIxMzkxMiwgMC4yODc2NDUsIDAuMzQwMTA3LCAwLjQyNDAxNywgMC40OTc0NDcsIDAuNjAyNDc2IiwgXAotICAgICAgICAgICIwLjE0NDIyLCAwLjIyNjU3NiwgMC4zMDAyNTQsIDAuMzUyNzI0LCAwLjQzNjY2NSwgMC41MTAwMzIsIDAuNjE1MDE2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQzNjMsIDAuMTg0MzIzLCAwLjMyOTg5NiwgMC40MzU2ODcsIDAuNjA1MDU0LCAwLjc1MjYzMiwgMC45NjY2MiIsIFwKLSAgICAgICAgICAiMC4wNDM2MTMsIDAuMTg0MjgzLCAwLjMyOTkyMywgMC40MzU2ODMsIDAuNjA1MDM5LCAwLjc1MzY4NywgMC45NjY1MzIiLCBcCi0gICAgICAgICAgIjAuMDQzNjUxLCAwLjE4NDI4OSwgMC4zMzAzMDEsIDAuNDM1MTMxLCAwLjYwNTA0NSwgMC43NTM4NCwgMC45NjQ4MzMiLCBcCi0gICAgICAgICAgIjAuMDQzOTE4LCAwLjE4NDMyNSwgMC4zMjk5MDUsIDAuNDM1NjgsIDAuNjA1MDYxLCAwLjc1MjY1MywgMC45NjY2MDgiLCBcCi0gICAgICAgICAgIjAuMDQ0NjM2LCAwLjE4NDQ2MywgMC4zMjk5NzEsIDAuNDM1NzIxLCAwLjYwNTA2OCwgMC43NTM3NDIsIDAuOTY2NTU4IiwgXAotICAgICAgICAgICIwLjA0NjgyOCwgMC4xODUwMzksIDAuMzMwNjA5LCAwLjQzNTkxLCAwLjYwNTE1NywgMC43NTM4MTMsIDAuOTY2NDAzIiwgXAotICAgICAgICAgICIwLjA0OTAwOSwgMC4xODU4MDEsIDAuMzMwNjQ2LCAwLjQzNjEyNiwgMC42MDU0NzIsIDAuNzUzNzgsIDAuOTY2NDcyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1MDk2LCAwLjAwNTI3OCwgMC4wMDUzMDksIDAuMDA1MzIzLCAwLjAwNTMzNSwgMC4wMDUzMzgsIDAuMDA1MzQyIiwgXAotICAgICAgICAgICIwLjAwNTA2NiwgMC4wMDUyNDYsIDAuMDA1MjgxLCAwLjAwNTI5NCwgMC4wMDUzMDYsIDAuMDA1MzA5LCAwLjAwNTMxMSIsIFwKLSAgICAgICAgICAiMC4wMDUwMzcsIDAuMDA1MjI0LCAwLjAwNTI2NCwgMC4wMDUyNzYsIDAuMDA1Mjg3LCAwLjAwNTI4NywgMC4wMDUyOTYiLCBcCi0gICAgICAgICAgIjAuMDA1MDI1LCAwLjAwNTIwNywgMC4wMDUyNDksIDAuMDA1MjYyLCAwLjAwNTI3LCAwLjAwNTI3OCwgMC4wMDUyODIiLCBcCi0gICAgICAgICAgIjAuMDA1MDExLCAwLjAwNTE5MSwgMC4wMDUyMzMsIDAuMDA1MjQ5LCAwLjAwNTI2MywgMC4wMDUyNjcsIDAuMDA1Mjc1IiwgXAotICAgICAgICAgICIwLjAwNTAwNywgMC4wMDUxNzQsIDAuMDA1MjIsIDAuMDA1MjM1LCAwLjAwNTI1MSwgMC4wMDUyNTgsIDAuMDA1MjY3IiwgXAotICAgICAgICAgICIwLjAwNTAxNSwgMC4wMDUxNjgsIDAuMDA1MjIsIDAuMDA1MjMzLCAwLjAwNTI0NywgMC4wMDUyNTQsIDAuMDA1MjU5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDc3MzcsIDAuMDA3OTc0LCAwLjAwODAxOSwgMC4wMDgwMzMsIDAuMDA4MDQ2LCAwLjAwODA1MywgMC4wMDgwNTkiLCBcCi0gICAgICAgICAgIjAuMDA3NzE0LCAwLjAwNzk1MiwgMC4wMDc5OTgsIDAuMDA4MDEzLCAwLjAwODAyNiwgMC4wMDgwMzMsIDAuMDA4MDM5IiwgXAotICAgICAgICAgICIwLjAwNzY4OCwgMC4wMDc5MjksIDAuMDA3OTc5LCAwLjAwNzk5NiwgMC4wMDgwMSwgMC4wMDgwMTgsIDAuMDA4MDI0IiwgXAotICAgICAgICAgICIwLjAwNzY5NCwgMC4wMDc5MTgsIDAuMDA3OTcsIDAuMDA3OTg4LCAwLjAwODAwMywgMC4wMDgwMTEsIDAuMDA4MDE4IiwgXAotICAgICAgICAgICIwLjAwNzY5NCwgMC4wMDc5MDcsIDAuMDA3OTYxLCAwLjAwNzk3OSwgMC4wMDc5OTYsIDAuMDA4MDA1LCAwLjAwODAxMyIsIFwKLSAgICAgICAgICAiMC4wMDc2ODksIDAuMDA3ODg2LCAwLjAwNzk0OSwgMC4wMDc5NywgMC4wMDc5OSwgMC4wMDgsIDAuMDA4MDEiLCBcCi0gICAgICAgICAgIjAuMDA3NjgyLCAwLjAwNzg3OSwgMC4wMDc5NDIsIDAuMDA3OTY1LCAwLjAwNzk4NiwgMC4wMDc5OTcsIDAuMDA4MDA4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0ODIxLCAwLjAwNTAwNSwgMC4wMDUwNCwgMC4wMDUwNDUsIDAuMDA1MDU0LCAwLjAwNTA1OCwgMC4wMDUwNjIiLCBcCi0gICAgICAgICAgIjAuMDA0NzgzLCAwLjAwNDk3MywgMC4wMDUwMDUsIDAuMDA1MDEzLCAwLjAwNTAyMSwgMC4wMDUwMjMsIDAuMDA1MDMyIiwgXAotICAgICAgICAgICIwLjAwNDc0LCAwLjAwNDkzMSwgMC4wMDQ5NjUsIDAuMDA0OTc2LCAwLjAwNDk4NSwgMC4wMDQ5ODUsIDAuMDA1MDAxIiwgXAotICAgICAgICAgICIwLjAwNDcyMywgMC4wMDQ5MDUsIDAuMDA0OTQyLCAwLjAwNDk1MywgMC4wMDQ5NjMsIDAuMDA0OTY4LCAwLjAwNDk3MSIsIFwKLSAgICAgICAgICAiMC4wMDQ3MDIsIDAuMDA0ODc5LCAwLjAwNDkyMSwgMC4wMDQ5MzQsIDAuMDA0OTQ2LCAwLjAwNDk1MywgMC4wMDQ5NTgiLCBcCi0gICAgICAgICAgIjAuMDA0NywgMC4wMDQ4NjUsIDAuMDA0OTA0LCAwLjAwNDkxNiwgMC4wMDQ5MjgsIDAuMDA0OTMzLCAwLjAwNDk0IiwgXAotICAgICAgICAgICIwLjAwNDcwNCwgMC4wMDQ4NDgsIDAuMDA0ODk1LCAwLjAwNDkwOCwgMC4wMDQ5MjMsIDAuMDA0OTI0LCAwLjAwNDkzNyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA3NDAxLCAwLjAwNzYzMywgMC4wMDc2NzcsIDAuMDA3NjkxLCAwLjAwNzcwNCwgMC4wMDc3MSwgMC4wMDc3MTYiLCBcCi0gICAgICAgICAgIjAuMDA3MzU4LCAwLjAwNzU5NSwgMC4wMDc2NDMsIDAuMDA3NjU4LCAwLjAwNzY3MiwgMC4wMDc2NzksIDAuMDA3Njg2IiwgXAotICAgICAgICAgICIwLjAwNzMzMywgMC4wMDc1NjUsIDAuMDA3NjE4LCAwLjAwNzYzNiwgMC4wMDc2NTIsIDAuMDA3NjYsIDAuMDA3NjY4IiwgXAotICAgICAgICAgICIwLjAwNzMyNSwgMC4wMDc1NDksIDAuMDA3NjA3LCAwLjAwNzYyNywgMC4wMDc2NDYsIDAuMDA3NjU1LCAwLjAwNzY2NSIsIFwKLSAgICAgICAgICAiMC4wMDczNjgsIDAuMDA3NTUyLCAwLjAwNzYwOSwgMC4wMDc2MjksIDAuMDA3NjQ5LCAwLjAwNzY1OSwgMC4wMDc2NjkiLCBcCi0gICAgICAgICAgIjAuMDA3MzY4LCAwLjAwNzU0MiwgMC4wMDc2MDcsIDAuMDA3NjMxLCAwLjAwNzY1NSwgMC4wMDc2NjgsIDAuMDA3NjgiLCBcCi0gICAgICAgICAgIjAuMDA3Mzg3LCAwLjAwNzU0OSwgMC4wMDc2MTQsIDAuMDA3NjQyLCAwLjAwNzY2OCwgMC4wMDc2ODIsIDAuMDA3Njk2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1MDg4LCAwLjAwNTI3MywgMC4wMDUzMDUsIDAuMDA1MzIsIDAuMDA1MzMsIDAuMDA1MzMxLCAwLjAwNTM0IiwgXAotICAgICAgICAgICIwLjAwNTA1MiwgMC4wMDUyMzcsIDAuMDA1Mjc0LCAwLjAwNTI4NiwgMC4wMDUyOTcsIDAuMDA1MzAyLCAwLjAwNTMwNyIsIFwKLSAgICAgICAgICAiMC4wMDUwMzEsIDAuMDA1MjEyLCAwLjAwNTI1NCwgMC4wMDUyNjcsIDAuMDA1MjgxLCAwLjAwNTI4NSwgMC4wMDUyOTMiLCBcCi0gICAgICAgICAgIjAuMDA1MDMzLCAwLjAwNTIwNSwgMC4wMDUyNSwgMC4wMDUyNjUsIDAuMDA1Mjc5LCAwLjAwNTI4NywgMC4wMDUyOTMiLCBcCi0gICAgICAgICAgIjAuMDA1MDYzLCAwLjAwNTIwNywgMC4wMDUyNTMsIDAuMDA1MjY5LCAwLjAwNTI4NywgMC4wMDUyOTQsIDAuMDA1MzAxIiwgXAotICAgICAgICAgICIwLjAwNTA2NywgMC4wMDUyMDgsIDAuMDA1MjU0LCAwLjAwNTI3OCwgMC4wMDUyOTUsIDAuMDA1MzA1LCAwLjAwNTMxNSIsIFwKLSAgICAgICAgICAiMC4wMDUxNjIsIDAuMDA1MjM2LCAwLjAwNTI4LCAwLjAwNTI5OSwgMC4wMDUzMTgsIDAuMDA1MzI3LCAwLjAwNTMzMyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2NjAyLCAwLjAwNjgsIDAuMDA2ODI5LCAwLjAwNjgzOSwgMC4wMDY4NDcsIDAuMDA2ODUxLCAwLjAwNjg1NSIsIFwKLSAgICAgICAgICAiMC4wMDY1NzQsIDAuMDA2Nzc4LCAwLjAwNjgwOSwgMC4wMDY4MTgsIDAuMDA2ODI3LCAwLjAwNjgzMSwgMC4wMDY4MzUiLCBcCi0gICAgICAgICAgIjAuMDA2NTQ3LCAwLjAwNjc1MiwgMC4wMDY3ODcsIDAuMDA2Nzk4LCAwLjAwNjgwNywgMC4wMDY4MTIsIDAuMDA2ODE2IiwgXAotICAgICAgICAgICIwLjAwNjUzMywgMC4wMDY3MzYsIDAuMDA2Nzc0LCAwLjAwNjc4NiwgMC4wMDY3OTYsIDAuMDA2ODAyLCAwLjAwNjgwNyIsIFwKLSAgICAgICAgICAiMC4wMDY1NTYsIDAuMDA2NzMsIDAuMDA2NzY4LCAwLjAwNjc4MSwgMC4wMDY3OTIsIDAuMDA2Nzk4LCAwLjAwNjgwMyIsIFwKLSAgICAgICAgICAiMC4wMDY1MTgsIDAuMDA2NzA0LCAwLjAwNjc1MiwgMC4wMDY3NjgsIDAuMDA2NzgzLCAwLjAwNjc5LCAwLjAwNjc5NyIsIFwKLSAgICAgICAgICAiMC4wMDY1NzcsIDAuMDA2NzIsIDAuMDA2NzYyLCAwLjAwNjc3NywgMC4wMDY3OTEsIDAuMDA2Nzk4LCAwLjAwNjgwNCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIxIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDc5NSwgMC4wMDQ5NzgsIDAuMDA1MDA4LCAwLjAwNTAxOSwgMC4wMDUwMjgsIDAuMDA1MDMzLCAwLjAwNTAzOCIsIFwKLSAgICAgICAgICAiMC4wMDQ3NSwgMC4wMDQ5MzgsIDAuMDA0OTcxLCAwLjAwNDk4MywgMC4wMDQ5OTEsIDAuMDA0OTk1LCAwLjAwNTAwMSIsIFwKLSAgICAgICAgICAiMC4wMDQ3MTcsIDAuMDA0ODk4LCAwLjAwNDkzNiwgMC4wMDQ5NDEsIDAuMDA0OTU5LCAwLjAwNDk2NSwgMC4wMDQ5NjciLCBcCi0gICAgICAgICAgIjAuMDA0NzEzLCAwLjAwNDg4MywgMC4wMDQ5MjYsIDAuMDA0OTMzLCAwLjAwNDk1NCwgMC4wMDQ5NiwgMC4wMDQ5NjgiLCBcCi0gICAgICAgICAgIjAuMDA0NzA4LCAwLjAwNDg3MywgMC4wMDQ5MTMsIDAuMDA0OTM0LCAwLjAwNDk1MSwgMC4wMDQ5NTgsIDAuMDA0OTcxIiwgXAotICAgICAgICAgICIwLjAwNDczNywgMC4wMDQ4NzUsIDAuMDA0OTIzLCAwLjAwNDk0NCwgMC4wMDQ5NiwgMC4wMDQ5NjksIDAuMDA0OTc2IiwgXAotICAgICAgICAgICIwLjAwNDc3LCAwLjAwNDg5NiwgMC4wMDQ5NDMsIDAuMDA0OTYyLCAwLjAwNDk4MSwgMC4wMDQ5ODYsIDAuMDA1MDA3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDYyNjUsIDAuMDA2NDY3LCAwLjAwNjQ5OSwgMC4wMDY1MDksIDAuMDA2NTE4LCAwLjAwNjUyMywgMC4wMDY1MjciLCBcCi0gICAgICAgICAgIjAuMDA2MjIsIDAuMDA2NDMxLCAwLjAwNjQ2NywgMC4wMDY0NzgsIDAuMDA2NDg4LCAwLjAwNjQ5MywgMC4wMDY0OTgiLCBcCi0gICAgICAgICAgIjAuMDA2MTk0LCAwLjAwNjQsIDAuMDA2NDQyLCAwLjAwNjQ1NiwgMC4wMDY0NjgsIDAuMDA2NDc0LCAwLjAwNjQ4IiwgXAotICAgICAgICAgICIwLjAwNjE5MSwgMC4wMDYzODQsIDAuMDA2NDMxLCAwLjAwNjQ0NiwgMC4wMDY0NiwgMC4wMDY0NjgsIDAuMDA2NDc1IiwgXAotICAgICAgICAgICIwLjAwNjE4NCwgMC4wMDYzNzEsIDAuMDA2NDIzLCAwLjAwNjQ0MSwgMC4wMDY0NTgsIDAuMDA2NDY2LCAwLjAwNjQ3NSIsIFwKLSAgICAgICAgICAiMC4wMDYyMDMsIDAuMDA2Mzc1LCAwLjAwNjQzMSwgMC4wMDY0NTIsIDAuMDA2NDcxLCAwLjAwNjQ4MiwgMC4wMDY0OTEiLCBcCi0gICAgICAgICAgIjAuMDA2MjQ0LCAwLjAwNjM5LCAwLjAwNjQ0OCwgMC4wMDY0NjcsIDAuMDA2NDksIDAuMDA2NTAyLCAwLjAwNjUxMiIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IE9BSTIxWDEgKgotICogLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoT0FJMjFYMSkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjEwNzI3ODsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQTApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDg3MzA4NDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA4NzA0ODQ7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwODczMDg0OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDQwOSwgMC4wMDA0MDksIDAuMDAwNDA5LCAwLjAwMDQwOSwgMC4wMDA0MDksIDAuMDAwNDA4LCAwLjAwMDQwOSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDQxLCAwLjAwMDQxLCAwLjAwMDQxLCAwLjAwMDQxLCAwLjAwMDQxLCAwLjAwMDQxLCAwLjAwMDQxIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihBMSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwOTEwMTc7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwOTEwMTc7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwOTA3MTYxOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDQwOSwgMC4wMDA0MDksIDAuMDAwNDA5LCAwLjAwMDQwOSwgMC4wMDA0MDksIDAuMDAwNDA5LCAwLjAwMDQwOSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDQxLCAwLjAwMDQxLCAwLjAwMDQxLCAwLjAwMDQxLCAwLjAwMDQxLCAwLjAwMDQxLCAwLjAwMDQxIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwOTE4NDY7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwOTE3ODIyOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDkxODQ2OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDE2LCAwLjAwMDE2MSwgMC4wMDAxNjEsIDAuMDAwMTYsIDAuMDAwMTYxLCAwLjAwMDE2MSwgMC4wMDAxNjEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA0NjQsIDAuMDAwNDY1LCAwLjAwMDQ2NSwgMC4wMDA0NjUsIDAuMDAwNDY1LCAwLjAwMDQ2NSwgMC4wMDA0NjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4xMzg5MzU7Ci0gICAgZnVuY3Rpb24gOiAiKCEoKEEwK0ExKSBCMCkpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk4MDc2LCAwLjE0NDU4MywgMC40MDc3NzMsIDAuNjM5OTAzLCAwLjk0ODk5NywgMS41Njc2MywgMS45NTUyNiIsIFwKLSAgICAgICAgICAiMC4xMDY3ODgsIDAuMTUzMzQ1LCAwLjQxNjU1NiwgMC42NDg3MDQsIDAuOTU4MjkxLCAxLjU3NjEzLCAxLjk2Mzk3IiwgXAotICAgICAgICAgICIwLjExNjgyNCwgMC4xNjM0NDQsIDAuNDI2NTk5LCAwLjY1ODcxNSwgMC45NjgxMywgMS41ODY4MSwgMS45NzM0NCIsIFwKLSAgICAgICAgICAiMC4xMjY4ODIsIDAuMTczNDg2LCAwLjQzNjc1NSwgMC42Njg2NzcsIDAuOTc4Mzk0LCAxLjU5NzAyLCAxLjk4Mjg2IiwgXAotICAgICAgICAgICIwLjEzNjc1MiwgMC4xODM0MDIsIDAuNDQ2NzI1LCAwLjY3ODkzNywgMC45ODgwMzMsIDEuNjA2ODMsIDEuOTk0NDQiLCBcCi0gICAgICAgICAgIjAuMTUyNzYyLCAwLjE5OTY0OSwgMC40NjI2MzQsIDAuNjk1MTcyLCAxLjAwNDQxLCAxLjYyMzUsIDIuMDEwMTMiLCBcCi0gICAgICAgICAgIjAuMTY2NjI1LCAwLjIxMzI0NCwgMC40NzY2OTksIDAuNzA4OTE2LCAxLjAxODI4LCAxLjYzNzI5LCAyLjAyMzk3Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE4MDg1NiwgMC4yNzQ3NTEsIDAuODA3MTc1LCAxLjI3NjcsIDEuOTA0MywgMy4xNTU4NCwgMy45MzgwMyIsIFwKLSAgICAgICAgICAiMC4xODEwMzQsIDAuMjc0ODU0LCAwLjgwNzEyNywgMS4yNzY3MywgMS45MDM4MSwgMy4xNTU1NiwgMy45Mzc5OSIsIFwKLSAgICAgICAgICAiMC4xODE0NTksIDAuMjc0NzY1LCAwLjgwNzU0NSwgMS4yNzcwOCwgMS45MDMwNiwgMy4xNTU5OSwgMy45Mzg1NSIsIFwKLSAgICAgICAgICAiMC4xODM0OTMsIDAuMjc1ODA2LCAwLjgwNzA4NiwgMS4yNzY2LCAxLjkwMzczLCAzLjE1NTE3LCAzLjkzODE5IiwgXAotICAgICAgICAgICIwLjE4NjQyNSwgMC4yNzc0NDYsIDAuODA3MDk0LCAxLjI3NjY5LCAxLjkwMzEsIDMuMTU2MzIsIDMuOTM4MTciLCBcCi0gICAgICAgICAgIjAuMTkzMjI5LCAwLjI4MjY3MywgMC44MDcxNjYsIDEuMjc2NzksIDEuOTAyOTMsIDMuMTU2ODQsIDMuOTM4ODEiLCBcCi0gICAgICAgICAgIjAuMjAwNTU5LCAwLjI4NzkzNSwgMC44MDc4NjIsIDEuMjc2OTEsIDEuOTA0MzYsIDMuMTU1ODUsIDMuOTM5MTgiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk5ODEsIDAuMTQ2NTksIDAuNDEwOTg3LCAwLjY0NDQxNSwgMC45NTQ3ODMsIDEuNTc2NzgsIDEuOTY1NzQiLCBcCi0gICAgICAgICAgIjAuMTA5MjEyLCAwLjE1NTk2OCwgMC40MjAzNjEsIDAuNjUzNDIxLCAwLjk2NDI3NywgMS41ODU5MiwgMS45NzQwMSIsIFwKLSAgICAgICAgICAiMC4xMjAyNTEsIDAuMTY3MDMzLCAwLjQzMTQxMywgMC42NjQ2NDQsIDAuOTc1NzkzLCAxLjU5NzkxLCAxLjk4NTk4IiwgXAotICAgICAgICAgICIwLjEzMTA1NywgMC4xNzc4ODUsIDAuNDQyNTY5LCAwLjY3NTU1NCwgMC45ODY4NjUsIDEuNjA3OTMsIDEuOTk3ODkiLCBcCi0gICAgICAgICAgIjAuMTQyMDI5LCAwLjE4ODc2NSwgMC40NTM0MTksIDAuNjg2NzAxLCAwLjk5NzQ0LCAxLjYxOTM1LCAyLjAwODQzIiwgXAotICAgICAgICAgICIwLjE1OTI1LCAwLjIwNjIzNywgMC40NzA4NzYsIDAuNzA0MTI3LCAxLjAxNTEyLCAxLjYzNzM0LCAyLjAyNjA3IiwgXAotICAgICAgICAgICIwLjE3NDQwOCwgMC4yMjEyNjEsIDAuNDg2NDU0LCAwLjcxOTg5OSwgMS4wMzA3NywgMS42NTIyNywgMi4wNDExNCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNzU4OSwgMC4yNjc5MDMsIDAuNzg5NjQ1LCAxLjI1MDY4LCAxLjg2NDE1LCAzLjA5MTY1LCAzLjg2MDUxIiwgXAotICAgICAgICAgICIwLjE3NTg3NSwgMC4yNjc4OTgsIDAuNzg5NywgMS4yNTAyMywgMS44NjM4NywgMy4wOTE1MSwgMy44NTcxIiwgXAotICAgICAgICAgICIwLjE3NiwgMC4yNjgwMTksIDAuNzg5NjkyLCAxLjI1MDAxLCAxLjg2NTE1LCAzLjA5MTkxLCAzLjg1ODc4IiwgXAotICAgICAgICAgICIwLjE3NzU5NywgMC4yNjgzMDMsIDAuNzg5Njg2LCAxLjI1MDY4LCAxLjg2NTE3LCAzLjA5MDMsIDMuODU5NjUiLCBcCi0gICAgICAgICAgIjAuMTgwNjQxLCAwLjI2OTk0NSwgMC43ODk5ODUsIDEuMjUwMSwgMS44NjQxNSwgMy4wOTE2OSwgMy44NjA2MiIsIFwKLSAgICAgICAgICAiMC4xODcxMTksIDAuMjc0NzExLCAwLjc4OTc3MiwgMS4yNTA1MiwgMS44NjQzNSwgMy4wOTMzOSwgMy44NjAyNiIsIFwKLSAgICAgICAgICAiMC4xOTQwNzQsIDAuMjc5ODU5LCAwLjc5MDE1NywgMS4yNDk5OSwgMS44NjQzNywgMy4wOTA5NiwgMy44NTk4OCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk0ODI3LCAwLjE0MTM1NiwgMC40MDQ0OTcsIDAuNjM2Mzk5LCAwLjk0NTkxNiwgMS41NjUwNiwgMS45NTExMyIsIFwKLSAgICAgICAgICAiMC4xMDM4MDMsIDAuMTUwMzYzLCAwLjQxMzQ2MywgMC42NDU0MSwgMC45NTQ1OTcsIDEuNTcyOTksIDEuOTU5MjIiLCBcCi0gICAgICAgICAgIjAuMTE1Mjc4LCAwLjE2MTkwNiwgMC40MjUzOTMsIDAuNjU2OTksIDAuOTY2Njc5LCAxLjU4NTY5LCAxLjk3MTc0IiwgXAotICAgICAgICAgICIwLjEyNjYwNCwgMC4xNzMxNDYsIDAuNDM2MzY4LCAwLjY2ODY1MSwgMC45NzgwMywgMS41OTY3MSwgMS45ODMyNyIsIFwKLSAgICAgICAgICAiMC4xMzgyMTEsIDAuMTg0Njk5LCAwLjQ0Nzg3NiwgMC42ODAwNDgsIDAuOTg5Mzk2LCAxLjYwODE2LCAxLjk5NTUyIiwgXAotICAgICAgICAgICIwLjE1NzE1MiwgMC4yMDMyMzUsIDAuNDY2MzA2LCAwLjY5ODYyOCwgMS4wMDc2MiwgMS42MjYzMSwgMi4wMTMxOSIsIFwKLSAgICAgICAgICAiMC4xNzM1NDMsIDAuMjE5NDQxLCAwLjQ4MjQzOCwgMC43MTQ1MzMsIDEuMDI0MjQsIDEuNjQyNTcsIDIuMDI4OTQiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTgwODE3LCAwLjI3NDgyOSwgMC44MDczNDYsIDEuMjc2NjMsIDEuOTAzMDEsIDMuMTU2MTMsIDMuOTM3MTkiLCBcCi0gICAgICAgICAgIjAuMTgwODcsIDAuMjc0ODUsIDAuODA3MDM1LCAxLjI3NzE3LCAxLjkwMzMyLCAzLjE1NTM2LCAzLjkzNzgyIiwgXAotICAgICAgICAgICIwLjE4MTY2NiwgMC4yNzQ4NDcsIDAuODA3MjQ3LCAxLjI3NzIsIDEuOTAzNzIsIDMuMTU2MDgsIDMuOTM3MTYiLCBcCi0gICAgICAgICAgIjAuMTg1MjIzLCAwLjI3NjAwMywgMC44MDc2MTQsIDEuMjc2OCwgMS45MDI2NywgMy4xNTU0LCAzLjkzNzY0IiwgXAotICAgICAgICAgICIwLjE5MDM4NiwgMC4yNzkyLCAwLjgwNzQzOSwgMS4yNzY3OCwgMS45MDM4OSwgMy4xNTY2NywgMy45MzgxIiwgXAotICAgICAgICAgICIwLjIwMDc0NCwgMC4yODcwNTcsIDAuODA3NDA5LCAxLjI3NjczLCAxLjkwMjksIDMuMTU1NTksIDMuOTM3MzEiLCBcCi0gICAgICAgICAgIjAuMjExMjQsIDAuMjk1NjAyLCAwLjgwNzgzNywgMS4yNzY3OCwgMS45MDI3NSwgMy4xNTU1MywgMy45Mzg1MyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTMyODQsIDAuMTM4OTM3LCAwLjM5NzI5MiwgMC42MjUzOCwgMC45Mjk5MTIsIDEuNTM3NjcsIDEuOTE4MTYiLCBcCi0gICAgICAgICAgIjAuMTAyODI0LCAwLjE0ODU1OCwgMC40MDcwMjksIDAuNjM0OTkzLCAwLjkzOTM3NywgMS41NDY3LCAxLjkyNjM3IiwgXAotICAgICAgICAgICIwLjExMzg3OCwgMC4xNTk2MjYsIDAuNDE4MzI3LCAwLjY0NjQwNSwgMC45NTA3NiwgMS41NTkzNSwgMS45MzgzNyIsIFwKLSAgICAgICAgICAiMC4xMjQ3MDQsIDAuMTcwNTc2LCAwLjQyOTUzMiwgMC42NTc0MTMsIDAuOTYxMjA3LCAxLjU2OTU0LCAxLjk0OTgiLCBcCi0gICAgICAgICAgIjAuMTM1NTc1LCAwLjE4MTQ0NCwgMC40NDAzNjMsIDAuNjY4NTg2LCAwLjk3MjM5OSwgMS41ODA1MywgMS45NjEwOCIsIFwKLSAgICAgICAgICAiMC4xNTMwNzQsIDAuMTk5MTAzLCAwLjQ1ODExLCAwLjY4NjE0OCwgMC45OTAyOTQsIDEuNTk4NTUsIDEuOTc3NzkiLCBcCi0gICAgICAgICAgIjAuMTY4MzM0LCAwLjIxNDI2OSwgMC40NzM3MjQsIDAuNzAyMSwgMS4wMDYxNiwgMS42MTQzLCAxLjk5Mzk4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE2NzIzNywgMC4yNTYxNjUsIDAuNzY5OTE5LCAxLjIxNDU5LCAxLjgxMzkzLCAzLjAxMDk4LCAzLjc1ODkxIiwgXAotICAgICAgICAgICIwLjE2NjcxNywgMC4yNTc0NDcsIDAuNzY2MTA2LCAxLjIyMTY2LCAxLjgxMzIxLCAzLjAyMDA4LCAzLjc2NDIiLCBcCi0gICAgICAgICAgIjAuMTY3MDM2LCAwLjI1NjgzNywgMC43NjUzMjUsIDEuMjE0NjUsIDEuODEyODksIDMuMDEyMzIsIDMuNzcyNjkiLCBcCi0gICAgICAgICAgIjAuMTY4NzM2LCAwLjI1Nzk4MiwgMC43NjUxNTksIDEuMjE1NzYsIDEuODE4MTIsIDMuMDMyMTgsIDMuNzY0MTMiLCBcCi0gICAgICAgICAgIjAuMTcxODYzLCAwLjI1OTA0NSwgMC43Njc0NTEsIDEuMjE0NTYsIDEuODI0LCAzLjAyMDM3LCAzLjc1OTcxIiwgXAotICAgICAgICAgICIwLjE3ODYyOCwgMC4yNjQwMDcsIDAuNzY5NzA4LCAxLjIxNzQ0LCAxLjgyNDk1LCAzLjAxNTA3LCAzLjc3MDA0IiwgXAotICAgICAgICAgICIwLjE4NjA1NCwgMC4yNjg4NTgsIDAuNzY5OTA0LCAxLjIxNDU3LCAxLjgxMzY1LCAzLjAxMTY1LCAzLjc3MTEyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDg4NTcsIDAuMDczNDQsIDAuMjEyNjA4LCAwLjMzNTQzMSwgMC40OTkzNjEsIDAuODI2NywgMS4wMzE1NCIsIFwKLSAgICAgICAgICAiMC4wNTg3MTQsIDAuMDgzMzY3LCAwLjIyMjU0OSwgMC4zNDUzMzQsIDAuNTA5MDQsIDAuODM2NDcsIDEuMDQxNzMiLCBcCi0gICAgICAgICAgIjAuMDcxMzE5LCAwLjA5NTcyNywgMC4yMzQ5NDYsIDAuMzU3NjUyLCAwLjUyMDYzNywgMC44NDgxNjMsIDEuMDUzMSIsIFwKLSAgICAgICAgICAiMC4wODM5OTcsIDAuMTA4NDk0LCAwLjI0NzQ4NCwgMC4zNzAxNywgMC41MzMwMjEsIDAuODYwNjY5LCAxLjA2NTIiLCBcCi0gICAgICAgICAgIjAuMDk2Njg0LCAwLjEyMTI2MywgMC4yNjAyNDMsIDAuMzgyNzQ4LCAwLjU0NjQwMywgMC44NzMwODQsIDEuMDc3MTgiLCBcCi0gICAgICAgICAgIjAuMTE0NTk0LCAwLjE0MTU2MywgMC4yNzk4NzgsIDAuNDAyOTMxLCAwLjU2NjQxOCwgMC44OTIxNDcsIDEuMDk2NzMiLCBcCi0gICAgICAgICAgIjAuMTI4MTYsIDAuMTU4NTYsIDAuMjk3NDQxLCAwLjQyMDY2NSwgMC41ODQxMiwgMC45MDkyODIsIDEuMTEzOTciKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk4MDg2LCAwLjE0ODUyNCwgMC40MzQ0OTUsIDAuNjg3MTM4LCAxLjAyMzYxLCAxLjY5Nzg1LCAyLjExODk5IiwgXAotICAgICAgICAgICIwLjA5ODM1NSwgMC4xNDg0OTgsIDAuNDM0NDk0LCAwLjY4NzE0OSwgMS4wMjM5MywgMS42OTcyMSwgMi4xMTg5OCIsIFwKLSAgICAgICAgICAiMC4xMDIzNDQsIDAuMTUwMzUzLCAwLjQzNDQ1NSwgMC42ODY5MTksIDEuMDIzOTgsIDEuNjk3MjgsIDIuMTE5MTYiLCBcCi0gICAgICAgICAgIjAuMTA4Nzc0LCAwLjE1NDgyOCwgMC40MzQ1NjgsIDAuNjg2OTY0LCAxLjAyMzc1LCAxLjY5NzY2LCAyLjExODQ2IiwgXAotICAgICAgICAgICIwLjExNjUyLCAwLjE2MDkzNSwgMC40MzUyMywgMC42ODcxNDYsIDEuMDIzNjUsIDEuNjk3MTcsIDIuMTE4ODIiLCBcCi0gICAgICAgICAgIjAuMTMwNTgxLCAwLjE3MjYzOSwgMC40MzkxNTgsIDAuNjg3MjkzLCAxLjAyNDAzLCAxLjY5NzU5LCAyLjExOTAxIiwgXAotICAgICAgICAgICIwLjE0MzczMiwgMC4xODQzMSwgMC40NDQ3NjgsIDAuNjg5MDIxLCAxLjAyMzczLCAxLjY5NzE2LCAyLjExODU0Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5NTE4MSwgMC4xNDE5NDIsIDAuNDA2MzM4LCAwLjYzOTY5MSwgMC45NTA0NDQsIDEuNTcyMTMsIDEuOTYxNjQiLCBcCi0gICAgICAgICAgIjAuMTA0Mjg3LCAwLjE1MTExMywgMC40MTU1NjgsIDAuNjQ4NzkzLCAwLjk1OTQ0OSwgMS41ODEwMywgMS45NzA2MyIsIFwKLSAgICAgICAgICAiMC4xMTYsIDAuMTYyODQ3LCAwLjQyNzQzOCwgMC42NjA1ODgsIDAuOTcxMzY0LCAxLjU5MzQ3LCAxLjk4MjEiLCBcCi0gICAgICAgICAgIjAuMTI3NDc1LCAwLjE3NDI4MywgMC40Mzg4ODMsIDAuNjcyMDg4LCAwLjk4MzIxOSwgMS42MDQ5NSwgMS45OTM4OSIsIFwKLSAgICAgICAgICAiMC4xMzkyODEsIDAuMTg1OTk3LCAwLjQ1MDU3NSwgMC42ODM5MywgMC45OTQ2NCwgMS42MTY2MSwgMi4wMDU0OSIsIFwKLSAgICAgICAgICAiMC4xNTg3NzMsIDAuMjA0ODE2LCAwLjQ2OTQzNSwgMC43MDI1MzQsIDEuMDEzNTEsIDEuNjM2MDcsIDIuMDIzNzEiLCBcCi0gICAgICAgICAgIjAuMTc1Nzg2LCAwLjIyMjA0NiwgMC40ODU4MTMsIDAuNzE5MTkzLCAxLjAyOTk0LCAxLjY1MTM4LCAyLjA0MTE3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE3NTgzOCwgMC4yNjc4ODYsIDAuNzg5NjY1LCAxLjI1MDUyLCAxLjg2NDU5LCAzLjA5MTU3LCAzLjg1OTIxIiwgXAotICAgICAgICAgICIwLjE3NTg5LCAwLjI2NzkzOSwgMC43ODk5ODQsIDEuMjUwMzQsIDEuODY0MDMsIDMuMDkxODgsIDMuODU5MTkiLCBcCi0gICAgICAgICAgIjAuMTc2MjUyLCAwLjI2Nzg2NCwgMC43ODk2NzgsIDEuMjUwNTEsIDEuODY0MDUsIDMuMDkxNjMsIDMuODU5MDMiLCBcCi0gICAgICAgICAgIjAuMTc5NTEzLCAwLjI2ODc2MiwgMC43ODk2OTQsIDEuMjUwMjksIDEuODY0ODIsIDMuMDkxMzMsIDMuODYwMTQiLCBcCi0gICAgICAgICAgIjAuMTg0Njk0LCAwLjI3MTcwMiwgMC43ODk2OSwgMS4yNTAwNCwgMS44NjQxNSwgMy4wOTI0MSwgMy44NTk1MiIsIFwKLSAgICAgICAgICAiMC4xOTQ0NTUsIDAuMjc5MzA4LCAwLjc4OTYwNCwgMS4yNTA1NSwgMS44NjQzMywgMy4wOTI0MywgMy44NTk2NyIsIFwKLSAgICAgICAgICAiMC4yMDQ4MDgsIDAuMjg3MDk5LCAwLjc5MDI5MywgMS4yNTAyMywgMS44NjQyOCwgMy4wOTE4OCwgMy44NjI5OSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI2NiwgMC4wMDI2NiwgMC4wMDI2NiwgMC4wMDI2NTksIDAuMDAyNjU5LCAwLjAwMjY1NywgMC4wMDI2NTciLCBcCi0gICAgICAgICAgIjAuMDAyNjQ3LCAwLjAwMjY0OSwgMC4wMDI2NTIsIDAuMDAyNjUyLCAwLjAwMjY1MSwgMC4wMDI2NSwgMC4wMDI2NSIsIFwKLSAgICAgICAgICAiMC4wMDI2NDEsIDAuMDAyNjQ0LCAwLjAwMjY0OSwgMC4wMDI2NTEsIDAuMDAyNjUxLCAwLjAwMjY0OCwgMC4wMDI2NDgiLCBcCi0gICAgICAgICAgIjAuMDAyNjM3LCAwLjAwMjY0MSwgMC4wMDI2NDgsIDAuMDAyNjQ4LCAwLjAwMjY0OSwgMC4wMDI2NDcsIDAuMDAyNjQ4IiwgXAotICAgICAgICAgICIwLjAwMjYzMywgMC4wMDI2MzgsIDAuMDAyNjQ2LCAwLjAwMjY0NywgMC4wMDI2NDgsIDAuMDAyNjQ4LCAwLjAwMjY0OSIsIFwKLSAgICAgICAgICAiMC4wMDI2MzEsIDAuMDAyNjM2LCAwLjAwMjY0MiwgMC4wMDI2NDcsIDAuMDAyNjQ3LCAwLjAwMjY0NywgMC4wMDI2NDciLCBcCi0gICAgICAgICAgIjAuMDAyNjMzLCAwLjAwMjYzNiwgMC4wMDI2NDQsIDAuMDAyNjQ2LCAwLjAwMjY0NywgMC4wMDI2NDgsIDAuMDAyNjQ2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwNTU2LCAwLjAwMDU1NywgMC4wMDA1NTcsIDAuMDAwNTU3LCAwLjAwMDU1NywgMC4wMDA1NTYsIDAuMDAwNTU2IiwgXAotICAgICAgICAgICIwLjAwMDUzNiwgMC4wMDA1MzksIDAuMDAwNTQzLCAwLjAwMDU0NCwgMC4wMDA1NDQsIDAuMDAwNTQ0LCAwLjAwMDU0NCIsIFwKLSAgICAgICAgICAiMC4wMDA1MjQsIDAuMDAwNTMsIDAuMDAwNTM5LCAwLjAwMDU0MSwgMC4wMDA1NDEsIDAuMDAwNTQyLCAwLjAwMDU0MiIsIFwKLSAgICAgICAgICAiMC4wMDA1MTcsIDAuMDAwNTI0LCAwLjAwMDUzNiwgMC4wMDA1MzgsIDAuMDAwNTQsIDAuMDAwNTQxLCAwLjAwMDU0MSIsIFwKLSAgICAgICAgICAiMC4wMDA1MSwgMC4wMDA1MTksIDAuMDAwNTMzLCAwLjAwMDUzNiwgMC4wMDA1MzgsIDAuMDAwNTQsIDAuMDAwNTQiLCBcCi0gICAgICAgICAgIjAuMDAwNTA1LCAwLjAwMDUxMywgMC4wMDA1MywgMC4wMDA1MzQsIDAuMDAwNTM3LCAwLjAwMDUzOSwgMC4wMDA1MzkiLCBcCi0gICAgICAgICAgIjAuMDAwNTAyLCAwLjAwMDUxLCAwLjAwMDUyOCwgMC4wMDA1MzMsIDAuMDAwNTM2LCAwLjAwMDUzOCwgMC4wMDA1MzgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyMzE3LCAwLjAwMjMxNywgMC4wMDIzMTcsIDAuMDAyMzE3LCAwLjAwMjMxNywgMC4wMDIzMTYsIDAuMDAyMzE0IiwgXAotICAgICAgICAgICIwLjAwMjI5OSwgMC4wMDIzMDMsIDAuMDAyMzA2LCAwLjAwMjMwOCwgMC4wMDIzMDgsIDAuMDAyMzA3LCAwLjAwMjMwNiIsIFwKLSAgICAgICAgICAiMC4wMDIyODksIDAuMDAyMjk1LCAwLjAwMjMwMywgMC4wMDIzMDUsIDAuMDAyMzA1LCAwLjAwMjMwNSwgMC4wMDIzMDQiLCBcCi0gICAgICAgICAgIjAuMDAyMjg2LCAwLjAwMjI5MiwgMC4wMDIzMDIsIDAuMDAyMzAzLCAwLjAwMjMwNCwgMC4wMDIzMDQsIDAuMDAyMzA0IiwgXAotICAgICAgICAgICIwLjAwMjI4NiwgMC4wMDIyOTEsIDAuMDAyMywgMC4wMDIzMDMsIDAuMDAyMzAzLCAwLjAwMjMwNCwgMC4wMDIzMDMiLCBcCi0gICAgICAgICAgIjAuMDAyMjkzLCAwLjAwMjI5NCwgMC4wMDIzLCAwLjAwMjMwMiwgMC4wMDIzMDMsIDAuMDAyMzAzLCAwLjAwMjMwMyIsIFwKLSAgICAgICAgICAiMC4wMDIzMDUsIDAuMDAyMywgMC4wMDIzMDIsIDAuMDAyMzAzLCAwLjAwMjMwMywgMC4wMDIzMDMsIDAuMDAyMzAzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwMjU5LCAwLjAwMDI2MiwgMC4wMDAyNjQsIDAuMDAwMjY1LCAwLjAwMDI2NSwgMC4wMDAyNjYsIDAuMDAwMjY2IiwgXAotICAgICAgICAgICIwLjAwMDI0OCwgMC4wMDAyNTgsIDAuMDAwMjcxLCAwLjAwMDI3MywgMC4wMDAyNzQsIDAuMDAwMjc2LCAwLjAwMDI3NyIsIFwKLSAgICAgICAgICAiMC4wMDAyMjYsIDAuMDAwMjQyLCAwLjAwMDI2NiwgMC4wMDAyNzEsIDAuMDAwMjc0LCAwLjAwMDI3NiwgMC4wMDAyNzciLCBcCi0gICAgICAgICAgIjAuMDAwMjA5LCAwLjAwMDIyOCwgMC4wMDAyNiwgMC4wMDAyNjcsIDAuMDAwMjcxLCAwLjAwMDI3NSwgMC4wMDAyNzYiLCBcCi0gICAgICAgICAgIjAuMDAwMTk1LCAwLjAwMDIxNiwgMC4wMDAyNTQsIDAuMDAwMjYzLCAwLjAwMDI2OSwgMC4wMDAyNzMsIDAuMDAwMjc1IiwgXAotICAgICAgICAgICIwLjAwMDE4LCAwLjAwMDIwMSwgMC4wMDAyNDYsIDAuMDAwMjU3LCAwLjAwMDI2NSwgMC4wMDAyNzEsIDAuMDAwMjczIiwgXAotICAgICAgICAgICIwLjAwMDE3MSwgMC4wMDAxOTIsIDAuMDAwMjQsIDAuMDAwMjUzLCAwLjAwMDI2MSwgMC4wMDAyNjksIDAuMDAwMjcxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTg0OSwgMC4wMDE4NTEsIDAuMDAxODU0LCAwLjAwMTg1NCwgMC4wMDE4NTUsIDAuMDAxODU1LCAwLjAwMTg1NSIsIFwKLSAgICAgICAgICAiMC4wMDE4MzksIDAuMDAxODQ3LCAwLjAwMTg1NywgMC4wMDE4NTksIDAuMDAxODYxLCAwLjAwMTg2MiwgMC4wMDE4NjIiLCBcCi0gICAgICAgICAgIjAuMDAxODI4LCAwLjAwMTgzNywgMC4wMDE4NTUsIDAuMDAxODU4LCAwLjAwMTg2MiwgMC4wMDE4NjIsIDAuMDAxODYzIiwgXAotICAgICAgICAgICIwLjAwMTgyMiwgMC4wMDE4MzIsIDAuMDAxODUyLCAwLjAwMTg1NiwgMC4wMDE4NTksIDAuMDAxODYyLCAwLjAwMTg2MyIsIFwKLSAgICAgICAgICAiMC4wMDE4MTksIDAuMDAxODMsIDAuMDAxODUsIDAuMDAxODUzLCAwLjAwMTg1NywgMC4wMDE4NjEsIDAuMDAxODYyIiwgXAotICAgICAgICAgICIwLjAwMTgyNSwgMC4wMDE4MzEsIDAuMDAxODQ3LCAwLjAwMTg1NCwgMC4wMDE4NTcsIDAuMDAxODYxLCAwLjAwMTg2MSIsIFwKLSAgICAgICAgICAiMC4wMDE4MzUsIDAuMDAxODM2LCAwLjAwMTg0NywgMC4wMDE4NTQsIDAuMDAxODU3LCAwLjAwMTg2LCAwLjAwMTg2MSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDU4NSwgMC4wMDA1ODgsIDAuMDAwNTkxLCAwLjAwMDU5MSwgMC4wMDA1OTEsIDAuMDAwNTkyLCAwLjAwMDU5MSIsIFwKLSAgICAgICAgICAiMC4wMDA1NjEsIDAuMDAwNTcsIDAuMDAwNTg1LCAwLjAwMDU4NywgMC4wMDA1ODksIDAuMDAwNTksIDAuMDAwNTkiLCBcCi0gICAgICAgICAgIjAuMDAwNTQyLCAwLjAwMDU1NSwgMC4wMDA1NzgsIDAuMDAwNTgzLCAwLjAwMDU4NiwgMC4wMDA1ODgsIDAuMDAwNTg5IiwgXAotICAgICAgICAgICIwLjAwMDUzNCwgMC4wMDA1NDYsIDAuMDAwNTcyLCAwLjAwMDU3OSwgMC4wMDA1ODMsIDAuMDAwNTg2LCAwLjAwMDU4NyIsIFwKLSAgICAgICAgICAiMC4wMDA1MzEsIDAuMDAwNTQyLCAwLjAwMDU2OCwgMC4wMDA1NzYsIDAuMDAwNTgxLCAwLjAwMDU4NSwgMC4wMDA1ODYiLCBcCi0gICAgICAgICAgIjAuMDAwNTQsIDAuMDAwNTQyLCAwLjAwMDU2NSwgMC4wMDA1NzMsIDAuMDAwNTc4LCAwLjAwMDU4MywgMC4wMDA1ODUiLCBcCi0gICAgICAgICAgIjAuMDAwNTUzLCAwLjAwMDU1MSwgMC4wMDA1NjQsIDAuMDAwNTcyLCAwLjAwMDU3NywgMC4wMDA1ODIsIDAuMDAwNTg0Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IE9BSTIyMVg0ICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChPQUkyMjFYNCkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjcwNjM3OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAzMzA1NjY7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAzMjk3Mzc7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAzMzA1NjY7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxNjM3LCAwLjAwMTYzNSwgMC4wMDE2MzUsIDAuMDAxNjM1LCAwLjAwMTYzNSwgMC4wMDE2MzUsIDAuMDAxNjM0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxNjM5LCAwLjAwMTY0MSwgMC4wMDE2NCwgMC4wMDE2NCwgMC4wMDE2NDEsIDAuMDAxNjQxLCAwLjAwMTY0MSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQTEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMzI0NzUzOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMzI0NzUzOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMzIzNDI4OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTYzNywgMC4wMDE2MzcsIDAuMDAxNjM2LCAwLjAwMTYzNiwgMC4wMDE2MzUsIDAuMDAxNjM1LCAwLjAwMTYzNSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTYzOCwgMC4wMDE2NCwgMC4wMDE2MzksIDAuMDAxNjM5LCAwLjAwMTY0LCAwLjAwMTY0LCAwLjAwMTY0Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAzMjc5Mjc7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAzMjY4NjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDMyNzkyNzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDE2MzcsIDAuMDAxNjM2LCAwLjAwMTYzNCwgMC4wMDE2MzQsIDAuMDAxNjM0LCAwLjAwMTYzMywgMC4wMDE2MzMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDE2MzksIDAuMDAxNjQsIDAuMDAxNjQsIDAuMDAxNjQsIDAuMDAxNjQxLCAwLjAwMTY0MiwgMC4wMDE2NDEiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIxKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDMxMzU3NjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDMxMzU3NjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDMxMjUxMzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDE2MzcsIDAuMDAxNjM3LCAwLjAwMTYzNiwgMC4wMDE2MzYsIDAuMDAxNjM1LCAwLjAwMTYzNSwgMC4wMDE2MzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDE2MzgsIDAuMDAxNjM5LCAwLjAwMTYzOSwgMC4wMDE2NCwgMC4wMDE2NCwgMC4wMDE2NDEsIDAuMDAxNjQxIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihDMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAzMTA0Nzk7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAzMTAyNzk7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAzMTA0Nzk7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNDA2LCAwLjAwMDQwOCwgMC4wMDA0MDksIDAuMDAwNDA5LCAwLjAwMDQwOSwgMC4wMDA0MDcsIDAuMDAwNDA4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxODU2LCAwLjAwMTg1OCwgMC4wMDE4NTgsIDAuMDAxODU5LCAwLjAwMTg1OSwgMC4wMDE4NTgsIDAuMDAxODU4Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMzczOTI5OwotICAgIGZ1bmN0aW9uIDogIighKCgoQTArQTEpIChCMCtCMSkpIEMwKSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0NzQzOSwgMC4xODcxNTksIDAuMzI1MDQxLCAwLjQyMzE0MSwgMC41ODAzOTQsIDAuNzE3NTA4LCAwLjkxNDAxNyIsIFwKLSAgICAgICAgICAiMC4wNTYwNTEsIDAuMTk1ODI0LCAwLjMzMzU5NSwgMC40MzE4NzMsIDAuNTg4ODI2LCAwLjcyNjQ3MywgMC45MjIzMyIsIFwKLSAgICAgICAgICAiMC4wNjYwNjUsIDAuMjA1OTYsIDAuMzQzNzg0LCAwLjQ0MjA1LCAwLjU5OTMwMSwgMC43MzY2MDIsIDAuOTMyOTgzIiwgXAotICAgICAgICAgICIwLjA3NjA2OSwgMC4yMTYwMTUsIDAuMzUzOTM4LCAwLjQ1MjEzNCwgMC42MDkxMywgMC43NDY1OTYsIDAuOTQzMTciLCBcCi0gICAgICAgICAgIjAuMDg1NDEyLCAwLjIyNjEzMiwgMC4zNjQwOTgsIDAuNDYyMjk1LCAwLjYxOTYwNywgMC43NTY4MjYsIDAuOTUyOTg0IiwgXAotICAgICAgICAgICIwLjA5ODQ4MSwgMC4yNDE4NjMsIDAuMzgwMTIyLCAwLjQ3ODI2LCAwLjYzNTM2MSwgMC43NzMwMzEsIDAuOTY5MjE1IiwgXAotICAgICAgICAgICIwLjEwODczOSwgMC4yNTU4NjQsIDAuMzk0MzM5LCAwLjQ5Mjc5MywgMC42NTAwMjUsIDAuNzg3NTUsIDAuOTgzNTU5Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg1MzQxLCAwLjM2NDMzMSwgMC42NDM3NCwgMC44NDMzNSwgMS4xNjI0LCAxLjQ0MjAyLCAxLjg0MDYiLCBcCi0gICAgICAgICAgIjAuMDg1Mzg1LCAwLjM2NDM3MywgMC42NDM3OTUsIDAuODQzNDE5LCAxLjE2MjczLCAxLjQ0MjE1LCAxLjg0MDYyIiwgXAotICAgICAgICAgICIwLjA4NzYwMiwgMC4zNjQzMDgsIDAuNjQzODM3LCAwLjg0MzMyMiwgMS4xNjI0NywgMS40NDE2MiwgMS44NDA2NyIsIFwKLSAgICAgICAgICAiMC4wOTE1ODcsIDAuMzY0NDQ1LCAwLjY0MzY3NCwgMC44NDMzMDIsIDEuMTYyNDUsIDEuNDQyMDUsIDEuODQwNjUiLCBcCi0gICAgICAgICAgIjAuMDk2NTQxLCAwLjM2NTczOCwgMC42NDM3ODgsIDAuODQzMiwgMS4xNjI2MywgMS40NDIwNSwgMS44NDEwNSIsIFwKLSAgICAgICAgICAiMC4xMDU4NiwgMC4zNjg5OCwgMC42NDQzMjUsIDAuODQzMzkyLCAxLjE2MjQxLCAxLjQ0MjA1LCAxLjg0MDgiLCBcCi0gICAgICAgICAgIjAuMTE0NjAzLCAwLjM3MzcxMiwgMC42NDY0MzUsIDAuODQzODA2LCAxLjE2MjM5LCAxLjQ0MTY2LCAxLjg0MDU2Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc2NDU5LCAwLjI3OTk0NSwgMC40ODIzMzQsIDAuNjI2OTY0LCAwLjg1ODE5MSwgMS4wNjA3NywgMS4zNDk2NCIsIFwKLSAgICAgICAgICAiMC4wODU3NDQsIDAuMjg5NDExLCAwLjQ5MjExNywgMC42MzY0MTIsIDAuODY4MDU1LCAxLjA2OTk4LCAxLjM1OTIzIiwgXAotICAgICAgICAgICIwLjA5NTkwOSwgMC4yOTk1OSwgMC41MDI0MTMsIDAuNjQ2NzQsIDAuODc4MDE0LCAxLjA4MDE3LCAxLjM3MDA4IiwgXAotICAgICAgICAgICIwLjEwNTMyNSwgMC4zMDkxMzksIDAuNTExNjI1LCAwLjY1NjE4NCwgMC44ODc4MTcsIDEuMDg5NTgsIDEuMzc5MzQiLCBcCi0gICAgICAgICAgIjAuMTE0MzgzLCAwLjMxODI3OCwgMC41MjA3ODMsIDAuNjY1MzY0LCAwLjg5NjUxOCwgMS4wOTkxNiwgMS4zODgxNiIsIFwKLSAgICAgICAgICAiMC4xMjgyOTEsIDAuMzMyNTUxLCAwLjUzNTE0MiwgMC42Nzk4MDIsIDAuOTExMjI2LCAxLjExMzIyLCAxLjQwMjQ3IiwgXAotICAgICAgICAgICIwLjEzOTMzLCAwLjM0NDg4LCAwLjU0NzU0NCwgMC42OTIyODcsIDAuOTIzNzcxLCAxLjEyNTk4LCAxLjQxNTI0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTA0NjUyLCAwLjUwMjcxOSwgMC45MDAxNDIsIDEuMTg0NjMsIDEuNjQyMzYsIDIuMDQzNTgsIDIuNjE0MTYiLCBcCi0gICAgICAgICAgIjAuMTA0NzUyLCAwLjUwMjg4OSwgMC45MDAzNDUsIDEuMTg0NjQsIDEuNjQyMjMsIDIuMDQzNSwgMi42MTQxIiwgXAotICAgICAgICAgICIwLjEwNDg3OSwgMC41MDI1NzgsIDAuOTAwMjc1LCAxLjE4NTE0LCAxLjY0MjQ1LCAyLjA0MjgsIDIuNjE2MDYiLCBcCi0gICAgICAgICAgIjAuMTA2MDg1LCAwLjUwMjY4OSwgMC44OTk5ODIsIDEuMTg1MjEsIDEuNjQyNDEsIDIuMDQyOTIsIDIuNjE1OTQiLCBcCi0gICAgICAgICAgIjAuMTA4MTMxLCAwLjUwMjU3LCAwLjkwMDAwNywgMS4xODUyNiwgMS42NDIzLCAyLjA0MzAzLCAyLjYxNTIxIiwgXAotICAgICAgICAgICIwLjExMjYwNSwgMC41MDMyODksIDAuODk5OTU2LCAxLjE4NDYyLCAxLjY0MjU4LCAyLjA0MjY2LCAyLjYxMzg3IiwgXAotICAgICAgICAgICIwLjExODA0NCwgMC41MDQ4NzMsIDAuOTAwNDY2LCAxLjE4NDYyLCAxLjY0MjM4LCAyLjA0Mjk3LCAyLjYxNTE2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkExIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0NDIsIDAuMTgzOTYyLCAwLjMyMTcyNSwgMC40MTk4ODYsIDAuNTc2OTI2LCAwLjcxNDU1NCwgMC45MTExNjgiLCBcCi0gICAgICAgICAgIjAuMDUzMDYsIDAuMTkyODU1LCAwLjMzMDc0NiwgMC40Mjg5MTIsIDAuNTg2MDEyLCAwLjcyMzM5MiwgMC45MTk0MjIiLCBcCi0gICAgICAgICAgIjAuMDY0NTgsIDAuMjA0Mzk1LCAwLjM0MjE5OSwgMC40NDA0NzQsIDAuNTk3NDU1LCAwLjczNDc1LCAwLjkzMTYzOSIsIFwKLSAgICAgICAgICAiMC4wNzYyMjksIDAuMjE1NjIyLCAwLjM1MzUyNiwgMC40NTE2MzYsIDAuNjA4NzIyLCAwLjc0NjE4MywgMC45NDI5MTYiLCBcCi0gICAgICAgICAgIjAuMDg3MzM2LCAwLjIyNzE2LCAwLjM2NTAwNywgMC40NjMyMzcsIDAuNjIwMzU2LCAwLjc1Nzc0NCwgMC45NTM4NTkiLCBcCi0gICAgICAgICAgIjAuMTAyMTU1LCAwLjI0NTU2NiwgMC4zODMzNzMsIDAuNDgxNTk2LCAwLjYzODcxNywgMC43NzYxOTksIDAuOTcyNDQ0IiwgXAotICAgICAgICAgICIwLjExMzcwMSwgMC4yNjE3NDYsIDAuMzk5NTM0LCAwLjQ5Nzc1NSwgMC42NTQ3MDksIDAuNzkyMTMsIDAuOTg4NDY3Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg1NDE3LCAwLjM2NDM5MywgMC42NDM5NzIsIDAuODQzMzYyLCAxLjE2MjM4LCAxLjQ0MTgzLCAxLjg0MDY2IiwgXAotICAgICAgICAgICIwLjA4NTU1NywgMC4zNjQyOTEsIDAuNjQzODAyLCAwLjg0MzQwNiwgMS4xNjI2LCAxLjQ0MTY3LCAxLjg0MDY1IiwgXAotICAgICAgICAgICIwLjA4OTg1NywgMC4zNjQzMTMsIDAuNjQzODQxLCAwLjg0MzMzLCAxLjE2MjQsIDEuNDQxNzksIDEuODQwNjUiLCBcCi0gICAgICAgICAgIjAuMDk2NzcsIDAuMzY0NDYxLCAwLjY0MzgxMywgMC44NDMxNTcsIDEuMTYyNzMsIDEuNDQyLCAxLjg0MDY2IiwgXAotICAgICAgICAgICIwLjEwNDcxMiwgMC4zNjYyNTMsIDAuNjQzNzkyLCAwLjg0MzI1MywgMS4xNjIzOCwgMS40NDE5NSwgMS44NDEwNiIsIFwKLSAgICAgICAgICAiMC4xMTg2ODksIDAuMzcxODA4LCAwLjY0NDM2LCAwLjg0MzM1NiwgMS4xNjI0LCAxLjQ0MiwgMS44NDExMSIsIFwKLSAgICAgICAgICAiMC4xMzEzMDksIDAuMzc4NTU2LCAwLjY0NzE3NywgMC44NDM4NjMsIDEuMTYyNjgsIDEuNDQyMDMsIDEuODQxMDciKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzAyMDQsIDAuMjc0Mzc5LCAwLjQ3ODExMiwgMC42MjMxODgsIDAuODU2MDExLCAxLjA1OTIyLCAxLjM1MDUzIiwgXAotICAgICAgICAgICIwLjA3OTQ5NSwgMC4yODQyNDksIDAuNDg3OTg1LCAwLjYzMzEzLCAwLjg2NTkzMywgMS4wNjkxMywgMS4zNjA4NCIsIFwKLSAgICAgICAgICAiMC4wODkzODcsIDAuMjk0MzQ3LCAwLjQ5ODA1MywgMC42NDM0ODIsIDAuODc2Mjg1LCAxLjA3OTMxLCAxLjM3MDMzIiwgXAotICAgICAgICAgICIwLjA5ODY0NiwgMC4zMDM3NTUsIDAuNTA3NDg2LCAwLjY1MzE1NSwgMC44ODU0NzMsIDEuMDg5MzgsIDEuMzc5NzYiLCBcCi0gICAgICAgICAgIjAuMTA3NTg2LCAwLjMxMjkyMiwgMC41MTY2MDQsIDAuNjYyMTM3LCAwLjg5NDY1NiwgMS4wOTgzNSwgMS4zODg5NSIsIFwKLSAgICAgICAgICAiMC4xMjEwNzcsIDAuMzI2OTgxLCAwLjUzMDkwMiwgMC42NzY0NywgMC45MDkwNDUsIDEuMTEzMDIsIDEuNDAzMDkiLCBcCi0gICAgICAgICAgIjAuMTMxNzI4LCAwLjMzOTIyMiwgMC41NDMyOTgsIDAuNjg4ODI2LCAwLjkyMTM4NiwgMS4xMjQ4NiwgMS40MTU2MyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5NzQ3OCwgMC40OTc0NjUsIDAuODk2ODc1LCAxLjE4MzIzLCAxLjY0NDg2LCAyLjA0NjA3LCAyLjYyODQ5IiwgXAotICAgICAgICAgICIwLjA5NzUxMywgMC40OTczNTUsIDAuODk2ODg0LCAxLjE4NjU2LCAxLjY0MzQxLCAyLjA1MTM4LCAyLjYyMTQiLCBcCi0gICAgICAgICAgIjAuMDk3Nzc3LCAwLjQ5NzIyOCwgMC44OTcwNTEsIDEuMTgzNSwgMS42NDM0MSwgMi4wNTExNywgMi42MjIyNyIsIFwKLSAgICAgICAgICAiMC4wOTkxMiwgMC40OTcxNTcsIDAuODk2NjUxLCAxLjE4NDYxLCAxLjY0ODAzLCAyLjA0NjA5LCAyLjYyODA0IiwgXAotICAgICAgICAgICIwLjEwMTI2NCwgMC40OTcyODMsIDAuODk3NjY2LCAxLjE4NDA3LCAxLjY0NjMxLCAyLjA1MjA3LCAyLjYyMzcxIiwgXAotICAgICAgICAgICIwLjEwNjE4MiwgMC40OTc5MzMsIDAuODk3ODMzLCAxLjE4NTE1LCAxLjY0NzcxLCAyLjA0NjA5LCAyLjYyNjEiLCBcCi0gICAgICAgICAgIjAuMTExOTU5LCAwLjQ5OTY0OCwgMC44OTgxODksIDEuMTg2NTMsIDEuNjQ3MjcsIDIuMDUwOTYsIDIuNjI0MDciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjAiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQxODA4LCAwLjE3OTk4OSwgMC4zMTc1NSwgMC40MTU3MTYsIDAuNTcyODQsIDAuNzEwMTk3LCAwLjkwNjU4MSIsIFwKLSAgICAgICAgICAiMC4wNTA0NywgMC4xODg5MjcsIDAuMzI2MzU3LCAwLjQyNDUxMSwgMC41ODE2OTEsIDAuNzE5MDQ1LCAwLjkxNTQxMyIsIFwKLSAgICAgICAgICAiMC4wNjA0NDQsIDAuMTk4OTU0LCAwLjMzNjU0NSwgMC40MzQ3ODYsIDAuNTkxODM4LCAwLjcyOTE5NCwgMC45MjU2NTUiLCBcCi0gICAgICAgICAgIjAuMDcwMTg5LCAwLjIwODkyMiwgMC4zNDY1NjksIDAuNDQ0Nzg5LCAwLjYwMTkwMiwgMC43MzkzNjgsIDAuOTM1NjY5IiwgXAotICAgICAgICAgICIwLjA3ODg3NiwgMC4yMTkxNDksIDAuMzU2NjU1LCAwLjQ1NDg5NywgMC42MTIwMjgsIDAuNzQ5NDU5LCAwLjk0NTc1NiIsIFwKLSAgICAgICAgICAiMC4wOTEwNjEsIDAuMjM0ODI5LCAwLjM3MjYzOCwgMC40NzA0NTQsIDAuNjI4MTg4LCAwLjc2NTY1NiwgMC45NjE5NzkiLCBcCi0gICAgICAgICAgIjAuMTAwNDU4LCAwLjI0ODg2NCwgMC4zODY5NjYsIDAuNDg1MDg0LCAwLjY0MjIwMiwgMC43Nzk4MTgsIDAuOTc2MTYxIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc3NTU1LCAwLjM1NjYzMSwgMC42MzU5ODgsIDAuODM1MzY1LCAxLjE1NDYzLCAxLjQzMzc0LCAxLjgzMjkxIiwgXAotICAgICAgICAgICIwLjA3Nzc5NiwgMC4zNTY3NTcsIDAuNjM2MDE4LCAwLjgzNTQ0NCwgMS4xNTQ4MiwgMS40MzM3MiwgMS44MzI4NyIsIFwKLSAgICAgICAgICAiMC4wODA0ODMsIDAuMzU2NjE1LCAwLjYzNTg2MywgMC44MzUzNDQsIDEuMTU0NiwgMS40MzM3NiwgMS44MzMwMSIsIFwKLSAgICAgICAgICAiMC4wODQ5MSwgMC4zNTY4MDMsIDAuNjM1OTc2LCAwLjgzNTQwMywgMS4xNTQ2LCAxLjQzNDEyLCAxLjgzMzE4IiwgXAotICAgICAgICAgICIwLjA5MDI3MiwgMC4zNTgxMjQsIDAuNjM1ODMyLCAwLjgzNTQ5MywgMS4xNTQ3NSwgMS40MzQwOCwgMS44MzI4NyIsIFwKLSAgICAgICAgICAiMC4xMDAyMDUsIDAuMzYxNzczLCAwLjYzNjY4NiwgMC44MzU1NjEsIDEuMTU0NTYsIDEuNDMzNzIsIDEuODMyODciLCBcCi0gICAgICAgICAgIjAuMTA5MDI3LCAwLjM2NjM2LCAwLjYzODY5MSwgMC44MzYyMDcsIDEuMTU0NjksIDEuNDM0MTIsIDEuODMyNzkiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzAyNjYsIDAuMjczNjcyLCAwLjQ3NjI3NCwgMC42MjEwNjcsIDAuODUxNzE5LCAxLjA1NDgsIDEuMzQzMjgiLCBcCi0gICAgICAgICAgIjAuMDc5MDg3LCAwLjI4MjY3MSwgMC40ODUwODQsIDAuNjI5NzE4LCAwLjg2MTAxMSwgMS4wNjMyNywgMS4zNTI0NCIsIFwKLSAgICAgICAgICAiMC4wODk2MTIsIDAuMjkzMzU3LCAwLjQ5NTgwOCwgMC42NDA1MjksIDAuODcxNDk3LCAxLjA3NDM2LCAxLjM2MjY4IiwgXAotICAgICAgICAgICIwLjEwMDE5LCAwLjMwNDAyMSwgMC41MDY1MjYsIDAuNjUxMDU3LCAwLjg4MjY0MiwgMS4wODUsIDEuMzc0MSIsIFwKLSAgICAgICAgICAiMC4xMTA2OTYsIDAuMzE0NjEyLCAwLjUxNzIyMSwgMC42NjE3MSwgMC44OTI4OTgsIDEuMDk1ODEsIDEuMzg0MzciLCBcCi0gICAgICAgICAgIjAuMTI2NTUzLCAwLjMzMTQ1MywgMC41MzQxMTgsIDAuNjc4OSwgMC45MDk4OCwgMS4xMTI0NiwgMS40MDEyMiIsIFwKLSAgICAgICAgICAiMC4xMzk0MTcsIDAuMzQ2MTQzLCAwLjU0NzIwOCwgMC42OTM2OTksIDAuOTI0ODcsIDEuMTI3MjEsIDEuNDE2MjEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDQ3NjcsIDAuNTAyNTY4LCAwLjkwMDIyNiwgMS4xODQxNywgMS42Mzk0MSwgMi4wMzkzMiwgMi42MDg4OCIsIFwKLSAgICAgICAgICAiMC4xMDQ3MTMsIDAuNTAyNTYzLCAwLjkwMDU2NSwgMS4xODQwMywgMS42MzkxLCAyLjAzODM2LCAyLjYwOTkxIiwgXAotICAgICAgICAgICIwLjEwNTM1NywgMC41MDI1ODMsIDAuOTAwODY5LCAxLjE4NDQyLCAxLjYzOTgsIDIuMDM5MDcsIDIuNjA5MjEiLCBcCi0gICAgICAgICAgIjAuMTA4MDUyLCAwLjUwMjU4MiwgMC45LCAxLjE4NDE1LCAxLjYzOTExLCAyLjAzOTMyLCAyLjYxMDMyIiwgXAotICAgICAgICAgICIwLjExMjAyNSwgMC41MDI1NTgsIDAuOTAwMTQ5LCAxLjE4NDA4LCAxLjYzOTEzLCAyLjAzODk5LCAyLjYwOTg3IiwgXAotICAgICAgICAgICIwLjEyMDMxMiwgMC41MDM3MiwgMC45MDAyNTUsIDEuMTg0MTQsIDEuNjM5MDksIDIuMDM4NjcsIDIuNjEwNDUiLCBcCi0gICAgICAgICAgIjAuMTI4OTAxLCAwLjUwNjA2LCAwLjkwMDA4NiwgMS4xODQwMiwgMS42Mzg5NywgMi4wMzg0MSwgMi42MDk2MyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzg0ODUsIDAuMTc2NjU5LCAwLjMxNDE5MSwgMC40MTI0MTQsIDAuNTY5NDcsIDAuNzA2ODkyLCAwLjkwMzE4MyIsIFwKLSAgICAgICAgICAiMC4wNDc0MTksIDAuMTg1NzM2LCAwLjMyMzMyNiwgMC40MjE1MTUsIDAuNTc4NjU1LCAwLjcxNjA0OSwgMC45MTIzMjkiLCBcCi0gICAgICAgICAgIjAuMDU4OTMxLCAwLjE5NzM0MSwgMC4zMzQ5MTYsIDAuNDMzMTI1LCAwLjU5MDI3LCAwLjcyNzYzNywgMC45MjQwNDQiLCBcCi0gICAgICAgICAgIjAuMDcwMzAxLCAwLjIwODM3MiwgMC4zNDU5NTUsIDAuNDQ0MTY3LCAwLjYwMTMwMiwgMC43Mzg2OSwgMC45MzQ5OTQiLCBcCi0gICAgICAgICAgIjAuMDgwMzUzLCAwLjIxOTg3NiwgMC4zNTc0MTUsIDAuNDU1NzEyLCAwLjYxMjczMSwgMC43NTAxNTcsIDAuOTQ2NDQ4IiwgXAotICAgICAgICAgICIwLjA5Mzk1OCwgMC4yMzgzNTIsIDAuMzc1ODM4LCAwLjQ3NDA0MiwgMC42MzExNDIsIDAuNzY4NTU2LCAwLjk2NDg3MyIsIFwKLSAgICAgICAgICAiMC4xMDQwNjIsIDAuMjU0NTcsIDAuMzkxOTkzLCAwLjQ5MDA5NiwgMC42NDcxOTksIDAuNzg0NjE0LCAwLjk4MDkzMyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3NzU2NSwgMC4zNTY1NjYsIDAuNjM1ODUsIDAuODM1NTYxLCAxLjE1NDU4LCAxLjQzMzk0LCAxLjgzMjk3IiwgXAotICAgICAgICAgICIwLjA3ODIyMywgMC4zNTY1ODIsIDAuNjM1OTUxLCAwLjgzNTM5OSwgMS4xNTQ1NCwgMS40MzM3NCwgMS44MzI4NiIsIFwKLSAgICAgICAgICAiMC4wODMzMDYsIDAuMzU2NTk3LCAwLjYzNTk4MiwgMC44MzUzODQsIDEuMTU0NTUsIDEuNDM0MDUsIDEuODMyOTIiLCBcCi0gICAgICAgICAgIjAuMDkxMDY5LCAwLjM1NjkzMSwgMC42MzU5NjcsIDAuODM1NDAzLCAxLjE1NDYyLCAxLjQzNDA4LCAxLjgzMjg5IiwgXAotICAgICAgICAgICIwLjA5OTY0NCwgMC4zNTg4NTYsIDAuNjM1OTQ2LCAwLjgzNTUzNCwgMS4xNTQ3NSwgMS40MzQwOSwgMS44MzI5NSIsIFwKLSAgICAgICAgICAiMC4xMTQzNTksIDAuMzY0ODY3LCAwLjYzNjc3NCwgMC44MzUzNzEsIDEuMTU0NzgsIDEuNDM0MTMsIDEuODMyOTYiLCBcCi0gICAgICAgICAgIjAuMTI2ODk2LCAwLjM3MjExNSwgMC42Mzk2NzcsIDAuODM2MTIyLCAxLjE1NDc4LCAxLjQzMzg4LCAxLjgzMjg1Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDYzOTI1LCAwLjI2ODM5MSwgMC40NzIwMzMsIDAuNjE3NDc2LCAwLjg1MDE5OCwgMS4wNTM1OCwgMS4zNDUwNyIsIFwKLSAgICAgICAgICAiMC4wNzI2MzIsIDAuMjc3NDQxLCAwLjQ4MTE2NywgMC42MjY1MzQsIDAuODU5MjA2LCAxLjA2MjgxLCAxLjM1MzQzIiwgXAotICAgICAgICAgICIwLjA4Mjg1OSwgMC4yODgwNywgMC40OTE4NywgMC42Mzc0MjYsIDAuODcwMDY2LCAxLjA3NDA1LCAxLjM2NDE3IiwgXAotICAgICAgICAgICIwLjA5MzE1OSwgMC4yOTg1NjMsIDAuNTAyNDcsIDAuNjQ4MTEyLCAwLjg4MTA4NCwgMS4wODQxNiwgMS4zNzU5MyIsIFwKLSAgICAgICAgICAiMC4xMDM0ODYsIDAuMzA4OTc3LCAwLjUxMzA3NiwgMC42NTg0OTgsIDAuODkxNTg0LCAxLjA5NTQ3LCAxLjM4NiIsIFwKLSAgICAgICAgICAiMC4xMTg3NjgsIDAuMzI1NjM2LCAwLjUyOTg2LCAwLjY3NTM4MiwgMC45MDgyMzYsIDEuMTExNzYsIDEuNDAzMjUiLCBcCi0gICAgICAgICAgIjAuMTMwODU1LCAwLjM0MDE0MiwgMC41NDM5NjgsIDAuNjkwMjMzLCAwLjkyMjk0MiwgMS4xMjY4MiwgMS40MTc1MSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5NzU1NCwgMC40OTgxODgsIDAuODk4NjA3LCAxLjE4Njg5LCAxLjY0ODE3LCAyLjA1MTM4LCAyLjYyMTMzIiwgXAotICAgICAgICAgICIwLjA5NzU2NiwgMC40OTgwMDksIDAuODk5MjM5LCAxLjE4NjI4LCAxLjY0NjI1LCAyLjA0NjM4LCAyLjYyODQ4IiwgXAotICAgICAgICAgICIwLjA5ODQ3NSwgMC40OTgwMDksIDAuODk4NDY1LCAxLjE4NDcyLCAxLjY0NDUxLCAyLjA0NjYxLCAyLjYyODYyIiwgXAotICAgICAgICAgICIwLjEwMTM0LCAwLjQ5ODAwNiwgMC44OTg1MDIsIDEuMTg0NjIsIDEuNjQzNCwgMi4wNTE0OCwgMi42MjEzNSIsIFwKLSAgICAgICAgICAiMC4xMDU2NDUsIDAuNDk4MDA4LCAwLjg5ODU4NywgMS4xODYxNiwgMS42NDM2NiwgMi4wNDYwOCwgMi42MjgyMSIsIFwKLSAgICAgICAgICAiMC4xMTQzODMsIDAuNDk5MTY1LCAwLjg5ODQ3NiwgMS4xODY2MywgMS42NDUxNiwgMi4wNTA5MSwgMi42MjEzNCIsIFwKLSAgICAgICAgICAiMC4xMjM0MzYsIDAuNTAxNzQ5LCAwLjg5ODU1NiwgMS4xODYyOCwgMS42NDgyNCwgMi4wNDc4MiwgMi42MjYwNiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTkxLCAwLjA5MTYzMSwgMC4xNjM5NywgMC4yMTU2NzQsIDAuMjk4MzIzLCAwLjM3MDk4NywgMC40NzQwOTYiLCBcCi0gICAgICAgICAgIjAuMDI5MDk3LCAwLjEwMTU1NiwgMC4xNzM3NzQsIDAuMjI1NDQ2LCAwLjMwODExOCwgMC4zODA1MjYsIDAuNDgzODcyIiwgXAotICAgICAgICAgICIwLjA0MDgzNiwgMC4xMTM5MjIsIDAuMTg2MjYsIDAuMjM3OTcsIDAuMzIwNzExLCAwLjM5MjE1MSwgMC40OTU1MDkiLCBcCi0gICAgICAgICAgIjAuMDQ5Nzc5LCAwLjEyNjQxMywgMC4xOTg5NzMsIDAuMjUwNjcsIDAuMzMzMTQyLCAwLjQwNTUxNCwgMC41MDg4NzEiLCBcCi0gICAgICAgICAgIjAuMDU3MjUsIDAuMTM5MzY2LCAwLjIxMTI5OSwgMC4yNjMyMDIsIDAuMzQ1NzU2LCAwLjQxODAzNiwgMC41MjEzNjEiLCBcCi0gICAgICAgICAgIjAuMDY3MjMyLCAwLjE1OTc0MiwgMC4yMzEyODQsIDAuMjgyOTU4LCAwLjM2NjE0LCAwLjQzODAwMiwgMC41NDE0MDEiLCBcCi0gICAgICAgICAgIjAuMDc1MTM0LCAwLjE3NzQ1NSwgMC4yNDk2MDEsIDAuMzAwNDYyLCAwLjM4MzEzNiwgMC40NTU4ODIsIDAuNTU5MDk2Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQyNzI2LCAwLjE5MTA0OSwgMC4zMzk3OTgsIDAuNDQ2MDI5LCAwLjYxNjE2OCwgMC43NjUyMjYsIDAuOTc4MTA4IiwgXAotICAgICAgICAgICIwLjA0NTczNiwgMC4xOTEwMzUsIDAuMzM5ODE5LCAwLjQ0NjA2OCwgMC42MTYxMTEsIDAuNzY1MDksIDAuOTc3ODM5IiwgXAotICAgICAgICAgICIwLjA1Mzk5OSwgMC4xOTE4NCwgMC4zMzk3MTksIDAuNDQ2MDcsIDAuNjE2MTkxLCAwLjc2NTA1NywgMC45NzgwMDYiLCBcCi0gICAgICAgICAgIjAuMDYzNjAyLCAwLjE5NTM5NiwgMC4zNDAwNjcsIDAuNDQ2MjA3LCAwLjYxNjE4OCwgMC43NjUxMTMsIDAuOTc3Nzc0IiwgXAotICAgICAgICAgICIwLjA3MzczLCAwLjIwMDM0NCwgMC4zNDIyNTksIDAuNDQ2NTk3LCAwLjYxNjE1LCAwLjc2NTAzMiwgMC45Nzc5NzEiLCBcCi0gICAgICAgICAgIjAuMDg4ODk0LCAwLjIxMDcxNSwgMC4zNDg1NjUsIDAuNDUwNDU2LCAwLjYxNzA0NywgMC43NjUwNzEsIDAuOTc3OTY4IiwgXAotICAgICAgICAgICIwLjEwMTIwNiwgMC4yMjExMTUsIDAuMzU1Mzk2LCAwLjQ1NjAzNCwgMC42MTk5MzksIDAuNzY2MDYzLCAwLjk3ODAzNCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2MTMxNywgMC4yNjQ4NjgsIDAuNDY3NjU3LCAwLjYxMTgzMSwgMC44NDM0MDcsIDEuMDQ1NDcsIDEuMzM1MzgiLCBcCi0gICAgICAgICAgIjAuMDY5NzA4LCAwLjI3MzY2NSwgMC40NzYyMzksIDAuNjIwNjg0LCAwLjg1MTkyMywgMS4wNTQxOSwgMS4zNDMzNyIsIFwKLSAgICAgICAgICAiMC4wODA0NjYsIDAuMjg0NDQyLCAwLjQ4NzA1MywgMC42MzE2OTIsIDAuODYyODU5LCAxLjA2NTMzLCAxLjM1NDQyIiwgXAotICAgICAgICAgICIwLjA5MTg0NCwgMC4yOTU2OTIsIDAuNDk4MzEsIDAuNjQyOTE1LCAwLjg3NDUxMywgMS4wNzcwOSwgMS4zNjU2NCIsIFwKLSAgICAgICAgICAiMC4xMDI3NjUsIDAuMzA2Mjk0LCAwLjUwOTAwOSwgMC42NTM4NDQsIDAuODg0ODksIDEuMDg3NzMsIDEuMzc2NDgiLCBcCi0gICAgICAgICAgIjAuMTIwNjA0LCAwLjMyMzk2OCwgMC41MjY2MjksIDAuNjcxMTg5LCAwLjkwMjg0MSwgMS4xMDQ5NiwgMS4zOTQxOSIsIFwKLSAgICAgICAgICAiMC4xMzMzNjIsIDAuMzM5MzQ0LCAwLjU0MTM1LCAwLjY4NjYyOCwgMC45MTc4MzUsIDEuMTIwNzQsIDEuNDA5NDYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDQ2NjIsIDAuNTAyNTgzLCAwLjkwMDI2OSwgMS4xODY4NSwgMS42NDM0LCAyLjA1MTQ0LCAyLjY0MTkzIiwgXAotICAgICAgICAgICIwLjEwNDA5MywgMC41MDI2NTgsIDAuOTAwMDY4LCAxLjE4NjQ2LCAxLjY0NzMyLCAyLjA0NzUsIDIuNjI3NDQiLCBcCi0gICAgICAgICAgIjAuMTA2MjkxLCAwLjUwMjU0OSwgMC45MDAwMDcsIDEuMTg0OTgsIDEuNjQ2MjgsIDIuMDQ2MjcsIDIuNjIzMzIiLCBcCi0gICAgICAgICAgIjAuMTExMTM5LCAwLjUwMjgzLCAwLjg5OTk5MSwgMS4xODYwMiwgMS42NDM3OCwgMi4wNDYwOCwgMi42MjMxNiIsIFwKLSAgICAgICAgICAiMC4xMTc5MTQsIDAuNTAyNjI3LCAwLjg5OTk2NiwgMS4xODY5LCAxLjY0NzMyLCAyLjA0NjEsIDIuNjI2MjciLCBcCi0gICAgICAgICAgIjAuMTMwMDU5LCAwLjUwNDMyMiwgMC45MDAyMjIsIDEuMTg1ODQsIDEuNjQzMjEsIDIuMDQ4MTYsIDIuNjIzMzEiLCBcCi0gICAgICAgICAgIjAuMTQxNzIyLCAwLjUwODMxMiwgMC45MDAwNTksIDEuMTg2NSwgMS42NDcxNSwgMi4wNDU4NywgMi42MjcyMiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxNjEyNCwgMC4wMTYxMjQsIDAuMDE2MTIxLCAwLjAxNjEyMSwgMC4wMTYxMTgsIDAuMDE2MTE0LCAwLjAxNjExNCIsIFwKLSAgICAgICAgICAiMC4wMTYwNDMsIDAuMDE2MDU3LCAwLjAxNjA1NiwgMC4wMTYwNTcsIDAuMDE2MDUyLCAwLjAxNjA1LCAwLjAxNjA1IiwgXAotICAgICAgICAgICIwLjAxNjAwNywgMC4wMTYwMzgsIDAuMDE2MDM5LCAwLjAxNjAzOSwgMC4wMTYwNCwgMC4wMTYwMzksIDAuMDE2MDM5IiwgXAotICAgICAgICAgICIwLjAxNjAwMiwgMC4wMTYwMjUsIDAuMDE2MDMyLCAwLjAxNjAzMSwgMC4wMTYwMzEsIDAuMDE2MDM0LCAwLjAxNjAyOSIsIFwKLSAgICAgICAgICAiMC4wMTU5NzUsIDAuMDE2MDE4LCAwLjAxNjAyNywgMC4wMTYwMjYsIDAuMDE2MDI4LCAwLjAxNjAyNywgMC4wMTYwMjgiLCBcCi0gICAgICAgICAgIjAuMDE1OTc3LCAwLjAxNjAxNCwgMC4wMTYwMjIsIDAuMDE1OTkzLCAwLjAxNjAyNiwgMC4wMTYwMjUsIDAuMDE2MDIxIiwgXAotICAgICAgICAgICIwLjAxNTk4OCwgMC4wMTYwMTIsIDAuMDE2MDIsIDAuMDE2MDIxLCAwLjAxNjAyNSwgMC4wMTYwMjIsIDAuMDE2MDIxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQ0MzUsIDAuMDA0NDQ0LCAwLjAwNDQ0NSwgMC4wMDQ0NDMsIDAuMDA0NDQyLCAwLjAwNDQ0NSwgMC4wMDQ0NDEiLCBcCi0gICAgICAgICAgIjAuMDA0MzE5LCAwLjAwNDM4LCAwLjAwNDM4OCwgMC4wMDQzODksIDAuMDA0MzkzLCAwLjAwNDM5MiwgMC4wMDQzOTQiLCBcCi0gICAgICAgICAgIjAuMDA0MjUzLCAwLjAwNDM0OSwgMC4wMDQzNjUsIDAuMDA0MzcxLCAwLjAwNDM3NiwgMC4wMDQzNzcsIDAuMDA0Mzc2IiwgXAotICAgICAgICAgICIwLjAwNDIxMSwgMC4wMDQzMjcsIDAuMDA0MzUxLCAwLjAwNDM1OSwgMC4wMDQzNjcsIDAuMDA0MzY5LCAwLjAwNDM3MiIsIFwKLSAgICAgICAgICAiMC4wMDQxODIsIDAuMDA0MzA4LCAwLjAwNDMzOCwgMC4wMDQzNDgsIDAuMDA0MzU3LCAwLjAwNDM2MSwgMC4wMDQzNjQiLCBcCi0gICAgICAgICAgIjAuMDA0MTU2LCAwLjAwNDI4MSwgMC4wMDQzMTksIDAuMDA0MzM0LCAwLjAwNDM0NSwgMC4wMDQzNTEsIDAuMDA0MzU3IiwgXAotICAgICAgICAgICIwLjAwNDE0LCAwLjAwNDI2MywgMC4wMDQzMDUsIDAuMDA0MzIyLCAwLjAwNDMzNywgMC4wMDQzNDQsIDAuMDA0MzQ5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE0Nzc5LCAwLjAxNDc4MiwgMC4wMTQ3NzcsIDAuMDE0Nzc5LCAwLjAxNDc3NiwgMC4wMTQ3NzEsIDAuMDE0NzcyIiwgXAotICAgICAgICAgICIwLjAxNDY2NSwgMC4wMTQ3MDMsIDAuMDE0NzA2LCAwLjAxNDcwOSwgMC4wMTQ3MDUsIDAuMDE0NzA0LCAwLjAxNDcwNSIsIFwKLSAgICAgICAgICAiMC4wMTQ2MzIsIDAuMDE0Njg0LCAwLjAxNDY4OSwgMC4wMTQ2OTEsIDAuMDE0NjksIDAuMDE0NjksIDAuMDE0Njg3IiwgXAotICAgICAgICAgICIwLjAxNDYxOCwgMC4wMTQ2NjksIDAuMDE0Njc2LCAwLjAxNDY3OCwgMC4wMTQ2OCwgMC4wMTQ2ODEsIDAuMDE0Njc4IiwgXAotICAgICAgICAgICIwLjAxNDYzNSwgMC4wMTQ2NjMsIDAuMDE0Njc2LCAwLjAxNDY3NCwgMC4wMTQ2NzksIDAuMDE0Njc2LCAwLjAxNDY3NSIsIFwKLSAgICAgICAgICAiMC4wMTQ3LCAwLjAxNDY3LCAwLjAxNDY3NywgMC4wMTQ2NzUsIDAuMDE0Njc4LCAwLjAxNDY3NSwgMC4wMTQ2NzgiLCBcCi0gICAgICAgICAgIjAuMDE0NzgsIDAuMDE0Njg4LCAwLjAxNDY4NSwgMC4wMTQ2ODMsIDAuMDE0NjgyLCAwLjAxNDY3OSwgMC4wMTQ2NzYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzIxNywgMC4wMDMyNjYsIDAuMDAzMjcsIDAuMDAzMjcyLCAwLjAwMzI3NSwgMC4wMDMyNzMsIDAuMDAzMjY5IiwgXAotICAgICAgICAgICIwLjAwMzA5MiwgMC4wMDMyNjUsIDAuMDAzMjg5LCAwLjAwMzI5OSwgMC4wMDMzMDYsIDAuMDAzMzA3LCAwLjAwMzMwNyIsIFwKLSAgICAgICAgICAiMC4wMDI5NjIsIDAuMDAzMjE4LCAwLjAwMzI2NSwgMC4wMDMyOCwgMC4wMDMyOTQsIDAuMDAzMywgMC4wMDMzMDYiLCBcCi0gICAgICAgICAgIjAuMDAyODc4LCAwLjAwMzE3LCAwLjAwMzIzNSwgMC4wMDMyNTcsIDAuMDAzMjc3LCAwLjAwMzI4NywgMC4wMDMyOTYiLCBcCi0gICAgICAgICAgIjAuMDAyODI1LCAwLjAwMzEyOSwgMC4wMDMyMDgsIDAuMDAzMjM1LCAwLjAwMzI2LCAwLjAwMzI3MywgMC4wMDMyODUiLCBcCi0gICAgICAgICAgIjAuMDAyNzcyLCAwLjAwMzA3MSwgMC4wMDMxNjcsIDAuMDAzMjAxLCAwLjAwMzIzNCwgMC4wMDMyNTIsIDAuMDAzMjY4IiwgXAotICAgICAgICAgICIwLjAwMjc0NSwgMC4wMDMwMjksIDAuMDAzMTM0LCAwLjAwMzE3NCwgMC4wMDMyMTMsIDAuMDAzMjM0LCAwLjAwMzI1MyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMjI4NywgMC4wMTIyOTEsIDAuMDEyMjkxLCAwLjAxMjI5MiwgMC4wMTIyOTEsIDAuMDEyMjg4LCAwLjAxMjI4OCIsIFwKLSAgICAgICAgICAiMC4wMTIyMjYsIDAuMDEyMjgzLCAwLjAxMjI4OSwgMC4wMTIyOSwgMC4wMTIyOTIsIDAuMDEyMjkxLCAwLjAxMjI5IiwgXAotICAgICAgICAgICIwLjAxMjE2OCwgMC4wMTIyNjQsIDAuMDEyMjc3LCAwLjAxMjI4MiwgMC4wMTIyODYsIDAuMDEyMjg3LCAwLjAxMjI4NyIsIFwKLSAgICAgICAgICAiMC4wMTIxMzEsIDAuMDEyMjQ3LCAwLjAxMjI2OSwgMC4wMTIyNzYsIDAuMDEyMjgxLCAwLjAxMjI4MiwgMC4wMTIyODQiLCBcCi0gICAgICAgICAgIjAuMDEyMTEyLCAwLjAxMjIzMywgMC4wMTIyNjEsIDAuMDEyMjY5LCAwLjAxMjI3NCwgMC4wMTIyNzcsIDAuMDEyMjgxIiwgXAotICAgICAgICAgICIwLjAxMjEwMywgMC4wMTIyMTksIDAuMDEyMjQ5LCAwLjAxMjI0NiwgMC4wMTIyNjksIDAuMDEyMjcyLCAwLjAxMjI3NiIsIFwKLSAgICAgICAgICAiMC4wMTIxMTQsIDAuMDEyMjExLCAwLjAxMjI0NCwgMC4wMTIyNTUsIDAuMDEyMjY2LCAwLjAxMjI3MiwgMC4wMTIyNzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDQzNiwgMC4wMDQ0NDQsIDAuMDA0NDQzLCAwLjAwNDQ0MiwgMC4wMDQ0NDQsIDAuMDA0NDUzLCAwLjAwNDQ0MyIsIFwKLSAgICAgICAgICAiMC4wMDQzMiwgMC4wMDQzODEsIDAuMDA0Mzg5LCAwLjAwNDM4OCwgMC4wMDQzOTIsIDAuMDA0MzkzLCAwLjAwNDM5MyIsIFwKLSAgICAgICAgICAiMC4wMDQyNTMsIDAuMDA0MzQ5LCAwLjAwNDM2NiwgMC4wMDQzNzEsIDAuMDA0Mzc1LCAwLjAwNDM3NSwgMC4wMDQzNzgiLCBcCi0gICAgICAgICAgIjAuMDA0MjExLCAwLjAwNDMyNywgMC4wMDQzNTEsIDAuMDA0MzU5LCAwLjAwNDM2NSwgMC4wMDQzNjgsIDAuMDA0MzczIiwgXAotICAgICAgICAgICIwLjAwNDE4NiwgMC4wMDQzMDksIDAuMDA0MzM5LCAwLjAwNDM0OSwgMC4wMDQzNTgsIDAuMDA0MzYyLCAwLjAwNDM2NiIsIFwKLSAgICAgICAgICAiMC4wMDQxNjcsIDAuMDA0Mjg2LCAwLjAwNDMyMSwgMC4wMDQzMzUsIDAuMDA0MzQ2LCAwLjAwNDM1MywgMC4wMDQzNTgiLCBcCi0gICAgICAgICAgIjAuMDA0MTYzLCAwLjAwNDI3MiwgMC4wMDQyOTUsIDAuMDA0MzI2LCAwLjAwNDMzOSwgMC4wMDQzNDYsIDAuMDA0MzUzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEwOTExLCAwLjAxMDkyMywgMC4wMTA5MjMsIDAuMDEwOTIzLCAwLjAxMDkyMiwgMC4wMTA5MjIsIDAuMDEwOTIxIiwgXAotICAgICAgICAgICIwLjAxMDgyLCAwLjAxMDkwNCwgMC4wMTA5MTQsIDAuMDEwOTE4LCAwLjAxMDkxOSwgMC4wMTA5MTksIDAuMDEwOTIxIiwgXAotICAgICAgICAgICIwLjAxMDc3MiwgMC4wMTA4ODUsIDAuMDEwOTA0LCAwLjAxMDkwOCwgMC4wMTA5MTMsIDAuMDEwOTE2LCAwLjAxMDkxNCIsIFwKLSAgICAgICAgICAiMC4wMTA3NjUsIDAuMDEwODczLCAwLjAxMDg5NCwgMC4wMTA5MDEsIDAuMDEwOTA3LCAwLjAxMDkxMSwgMC4wMTA5MTEiLCBcCi0gICAgICAgICAgIjAuMDEwNzg1LCAwLjAxMDg2NiwgMC4wMTA4ODksIDAuMDEwODk3LCAwLjAxMDkwNCwgMC4wMTA5MDYsIDAuMDEwOTEiLCBcCi0gICAgICAgICAgIjAuMDEwODUsIDAuMDEwODY5LCAwLjAxMDg5LCAwLjAxMDg5NiwgMC4wMTA5MDQsIDAuMDEwOTA2LCAwLjAxMDkwOSIsIFwKLSAgICAgICAgICAiMC4wMTA5MzYsIDAuMDEwODgsIDAuMDEwODk0LCAwLjAxMDkwMSwgMC4wMTA5MDYsIDAuMDEwOTA3LCAwLjAxMDkwOCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzMTk3LCAwLjAwMzI0NSwgMC4wMDMyNTIsIDAuMDAzMjUzLCAwLjAwMzI1MywgMC4wMDMyNTMsIDAuMDAzMjU3IiwgXAotICAgICAgICAgICIwLjAwMzA3MiwgMC4wMDMyNDUsIDAuMDAzMjcsIDAuMDAzMjc4LCAwLjAwMzI4NSwgMC4wMDMyODgsIDAuMDAzMjkiLCBcCi0gICAgICAgICAgIjAuMDAyOTQxLCAwLjAwMzE5NywgMC4wMDMyNDUsIDAuMDAzMjYsIDAuMDAzMjc0LCAwLjAwMzI4LCAwLjAwMzI4NiIsIFwKLSAgICAgICAgICAiMC4wMDI4NiwgMC4wMDMxNTIsIDAuMDAzMjE2LCAwLjAwMzIzOCwgMC4wMDMyNTcsIDAuMDAzMjY4LCAwLjAwMzI3OCIsIFwKLSAgICAgICAgICAiMC4wMDI4MDksIDAuMDAzMTExLCAwLjAwMzE4OSwgMC4wMDMyMTYsIDAuMDAzMjQxLCAwLjAwMzI1NCwgMC4wMDMyNjYiLCBcCi0gICAgICAgICAgIjAuMDAyNzY4LCAwLjAwMzA1NiwgMC4wMDMxNSwgMC4wMDMxODMsIDAuMDAzMjE2LCAwLjAwMzIzMywgMC4wMDMyNDkiLCBcCi0gICAgICAgICAgIjAuMDAyNzU2LCAwLjAwMzAxOSwgMC4wMDMxMTksIDAuMDAzMTU4LCAwLjAwMzE5NiwgMC4wMDMyMTYsIDAuMDAzMjM2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQzAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA5MDczLCAwLjAwOTEyMywgMC4wMDkxMjgsIDAuMDA5MTMsIDAuMDA5MTMxLCAwLjAwOTEzMiwgMC4wMDkxMzIiLCBcCi0gICAgICAgICAgIjAuMDA4OTkzLCAwLjAwOTE0OCwgMC4wMDkxNzEsIDAuMDA5MTc3LCAwLjAwOTE4MywgMC4wMDkxODUsIDAuMDA5MTg3IiwgXAotICAgICAgICAgICIwLjAwODk2LCAwLjAwOTEzNCwgMC4wMDkxNjUsIDAuMDA5MTc0LCAwLjAwOTE4MiwgMC4wMDkxOTMsIDAuMDA5MjA2IiwgXAotICAgICAgICAgICIwLjAwODk0LCAwLjAwOTExNiwgMC4wMDkxNTUsIDAuMDA5MTY3LCAwLjAwOTE3OCwgMC4wMDkxODQsIDAuMDA5MTg5IiwgXAotICAgICAgICAgICIwLjAwODk2NywgMC4wMDkxMDgsIDAuMDA5MTQ2LCAwLjAwOTE2MiwgMC4wMDkxNzQsIDAuMDA5MTgyLCAwLjAwOTE4NyIsIFwKLSAgICAgICAgICAiMC4wMDkwNTUsIDAuMDA5MTE0LCAwLjAwOTE0MiwgMC4wMDkxNTYsIDAuMDA5MTczLCAwLjAwOTE2OCwgMC4wMDkxODQiLCBcCi0gICAgICAgICAgIjAuMDA5MTU0LCAwLjAwOTEyMiwgMC4wMDkxNTQsIDAuMDA5MTU2LCAwLjAwOTE3MywgMC4wMDkxODMsIDAuMDA5MTc2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQ1MTUsIDAuMDA0NTcxLCAwLjAwNDU3OCwgMC4wMDQ1NzgsIDAuMDA0NTc4LCAwLjAwNDU3OSwgMC4wMDQ1ODMiLCBcCi0gICAgICAgICAgIjAuMDA0MzU0LCAwLjAwNDUxNSwgMC4wMDQ1NDUsIDAuMDA0NTUzLCAwLjAwNDU2MSwgMC4wMDQ1NjQsIDAuMDA0NTY4IiwgXAotICAgICAgICAgICIwLjAwNDI4MSwgMC4wMDQ0NjMsIDAuMDA0NTExLCAwLjAwNDUyNiwgMC4wMDQ1NCwgMC4wMDQ1NDgsIDAuMDA0NTU0IiwgXAotICAgICAgICAgICIwLjAwNDI3NywgMC4wMDQ0MzQsIDAuMDA0NDg4LCAwLjAwNDUwOCwgMC4wMDQ1MjYsIDAuMDA0NTM4LCAwLjAwNDU0NCIsIFwKLSAgICAgICAgICAiMC4wMDQyODUsIDAuMDA0NDA2LCAwLjAwNDQ2NSwgMC4wMDQ0ODgsIDAuMDA0NTExLCAwLjAwNDUyMiwgMC4wMDQ1MzQiLCBcCi0gICAgICAgICAgIjAuMDA0Mzc4LCAwLjAwNDM5NiwgMC4wMDQ0NDgsIDAuMDA0NDcxLCAwLjAwNDQ5NiwgMC4wMDQ1MSwgMC4wMDQ1MjEiLCBcCi0gICAgICAgICAgIjAuMDA0NDYzLCAwLjAwNDQwMywgMC4wMDQ0MzgsIDAuMDA0NDY1LCAwLjAwNDQ4NywgMC4wMDQ1MDIsIDAuMDA0NTE0Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IE9BSTIyMlgxICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChPQUkyMjJYMSkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjIwOTM0ODsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQTApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDg5MzMyNjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA4OTEzNzY7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwODkzMzI2OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDQwOSwgMC4wMDA0MDksIDAuMDAwNDA5LCAwLjAwMDQwOSwgMC4wMDA0MDksIDAuMDAwNDA4LCAwLjAwMDQwOSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDQxLCAwLjAwMDQxLCAwLjAwMDQxLCAwLjAwMDQxLCAwLjAwMDQxLCAwLjAwMDQxLCAwLjAwMDQxIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihBMSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwOTE3NTU7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwOTE3NTU7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwOTE0MDE1OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDQwOSwgMC4wMDA0MDksIDAuMDAwNDA5LCAwLjAwMDQwOSwgMC4wMDA0MDksIDAuMDAwNDA5LCAwLjAwMDQwOSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDQxLCAwLjAwMDQxLCAwLjAwMDQxLCAwLjAwMDQxLCAwLjAwMDQxLCAwLjAwMDQxLCAwLjAwMDQxIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwODcwNjk0OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDg2Nzg4NjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA4NzA2OTQ7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNDA5LCAwLjAwMDQwOSwgMC4wMDA0MDgsIDAuMDAwNDA5LCAwLjAwMDQwOSwgMC4wMDA0MDgsIDAuMDAwNDA4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNDEsIDAuMDAwNDEsIDAuMDAwNDEsIDAuMDAwNDEsIDAuMDAwNDEsIDAuMDAwNDEsIDAuMDAwNDEiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIxKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA4ODg5ODk7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwODg4OTg5OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDg4NjA4NjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA0MDksIDAuMDAwNDA5LCAwLjAwMDQwOSwgMC4wMDA0MDksIDAuMDAwNDA5LCAwLjAwMDQwOSwgMC4wMDA0MDkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA0MSwgMC4wMDA0MSwgMC4wMDA0MSwgMC4wMDA0MSwgMC4wMDA0MSwgMC4wMDA0MSwgMC4wMDA0MSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQzApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDkyMjA2NDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA5MTY2NTc7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwOTIyMDY0OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDMwOSwgMC4wMDAzMSwgMC4wMDAzMSwgMC4wMDAzMDksIDAuMDAwMzEsIDAuMDAwMzEsIDAuMDAwMzEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA0NjQsIDAuMDAwNDY1LCAwLjAwMDQ2NCwgMC4wMDA0NjUsIDAuMDAwNDY1LCAwLjAwMDQ2NSwgMC4wMDA0NjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEMxKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA5Njk1OTI7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwOTY5NTkyOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDk2OTQ0ODsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAzMDksIDAuMDAwMzA5LCAwLjAwMDMxLCAwLjAwMDMwOSwgMC4wMDAzMSwgMC4wMDAzMDksIDAuMDAwMzA5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNDY0LCAwLjAwMDQ2NCwgMC4wMDA0NjQsIDAuMDAwNDY0LCAwLjAwMDQ2NCwgMC4wMDA0NjQsIDAuMDAwNDY0Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMDk2NjE4MjsKLSAgICBmdW5jdGlvbiA6ICIoISgoKEMwK0MxKSAoQTArQTEpKSAoQjArQjEpKSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTQ5ODMsIDAuMTYyMTQzLCAwLjQyNzY3OSwgMC42NjE0NjksIDAuOTczMzk1LCAxLjU5NTk1LCAxLjk4NTM3IiwgXAotICAgICAgICAgICIwLjEyMzY0MywgMC4xNzA4NjEsIDAuNDM2Mjk1LCAwLjY3MDE0MSwgMC45ODIwNDYsIDEuNjA0NTgsIDEuOTkzNzkiLCBcCi0gICAgICAgICAgIjAuMTMzNzYyLCAwLjE4MDk4NiwgMC40NDY1NDYsIDAuNjgwNDk1LCAwLjk5MTk4NiwgMS42MTUyLCAyLjAwMzk4IiwgXAotICAgICAgICAgICIwLjE0MzcyMywgMC4xOTA5OTgsIDAuNDU2NjU1LCAwLjY5MDU1MywgMS4wMDIxLCAxLjYyNDg3LCAyLjAxMzk4IiwgXAotICAgICAgICAgICIwLjE1MzY3OSwgMC4yMDEwMDIsIDAuNDY2NjA4LCAwLjcwMDc1NiwgMS4wMTIwNywgMS42MzQ4LCAyLjAyMzgxIiwgXAotICAgICAgICAgICIwLjE2OTczMywgMC4yMTY5OTgsIDAuNDgyOTExLCAwLjcxNjU4LCAxLjAyODA2LCAxLjY1MTg2LCAyLjA0MDMxIiwgXAotICAgICAgICAgICIwLjE4MzU5NiwgMC4yMzA5MTEsIDAuNDk3MTU5LCAwLjczMDYzLCAxLjA0MTk2LCAxLjY2NTI5LCAyLjA1NDM4Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIyMTk5OCwgMC4zMTYzNzgsIDAuODUxODM1LCAxLjMyNDA3LCAxLjk1MzQsIDMuMjEzMjMsIDMuOTk5NzkiLCBcCi0gICAgICAgICAgIjAuMjIxOTE5LCAwLjMxNjM3MywgMC44NTE4MywgMS4zMjQyMiwgMS45NTM1NCwgMy4yMTI4NSwgNC4wMDA2MiIsIFwKLSAgICAgICAgICAiMC4yMjIxMjIsIDAuMzE2MzQsIDAuODUxODgyLCAxLjMyNDIsIDEuOTU0MDMsIDMuMjEyNzIsIDQuMDAwMTUiLCBcCi0gICAgICAgICAgIjAuMjIzNTU4LCAwLjMxNjg2NCwgMC44NTE3MzgsIDEuMzIzODUsIDEuOTU0MDMsIDMuMjEyOTIsIDQiLCBcCi0gICAgICAgICAgIjAuMjI2MjA3LCAwLjMxODM0LCAwLjg1MTgyNSwgMS4zMjQyNCwgMS45NTM1NywgMy4yMTI5OSwgMy45OTk5NyIsIFwKLSAgICAgICAgICAiMC4yMzIyOTUsIDAuMzIyNzQ2LCAwLjg1MTg4MiwgMS4zMjM5NCwgMS45NTM1NywgMy4yMTMyNSwgNC4wMDAwMiIsIFwKLSAgICAgICAgICAiMC4yMzg4NTcsIDAuMzI4MTc0LCAwLjg1MjM3NiwgMS4zMjM4OCwgMS45NTQxLCAzLjIxMzQsIDMuOTk5ODMiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTc3MTU4LCAwLjI0NTI1LCAwLjYzMDI4OCwgMC45NzM2MTgsIDEuNDMxNTUsIDIuMzQ3NjIsIDIuOTE4OTgiLCBcCi0gICAgICAgICAgIjAuMTg2NzExLCAwLjI1NDc2NSwgMC42Mzk3ODksIDAuOTgzMjI1LCAxLjQ0MTYsIDIuMzU3MDUsIDIuOTI4MDMiLCBcCi0gICAgICAgICAgIjAuMTk3MjE1LCAwLjI2NTM4OCwgMC42NTA0OTYsIDAuOTkzNzUsIDEuNDUxNTksIDIuMzY3NDUsIDIuOTM5MDEiLCBcCi0gICAgICAgICAgIjAuMjA2ODMxLCAwLjI3NTEwMSwgMC42NjAxNDYsIDEuMDAzNjEsIDEuNDYxMTIsIDIuMzc2NjksIDIuOTQ4MjMiLCBcCi0gICAgICAgICAgIjAuMjE2MTUyLCAwLjI4NDM1NiwgMC42Njk1MjEsIDEuMDEzMTYsIDEuNDcwOTUsIDIuMzg2NzQsIDIuOTU4MTkiLCBcCi0gICAgICAgICAgIjAuMjMwNzAxLCAwLjI5ODg5MywgMC42ODQxMzIsIDEuMDI3ODUsIDEuNDg1NjIsIDIuNDAxMjksIDIuOTcyMTIiLCBcCi0gICAgICAgICAgIjAuMjQzMjI4LCAwLjMxMTQxNCwgMC42OTY0ODIsIDEuMDM5NzQsIDEuNDk4MTgsIDIuNDEzOTYsIDIuOTg0NiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yODc3MzMsIDAuNDIwMDIsIDEuMTgxMywgMS44NTMyNSwgMi43NDg4NCwgNC41NDEzNCwgNS42NjA1IiwgXAotICAgICAgICAgICIwLjI4NzYyNiwgMC40MjAwMzMsIDEuMTgwODgsIDEuODUzNDksIDIuNzUwNjQsIDQuNTQxNDIsIDUuNjYwNjEiLCBcCi0gICAgICAgICAgIjAuMjg3NzU4LCAwLjQyMDEwMiwgMS4xODEyNSwgMS44NTMyLCAyLjc0ODU4LCA0LjU0MTE3LCA1LjY1OTk5IiwgXAotICAgICAgICAgICIwLjI4NzY5NiwgMC40MjAxODIsIDEuMTgxMDQsIDEuODUzNTIsIDIuNzQ5NDgsIDQuNTQwNjksIDUuNjYxODIiLCBcCi0gICAgICAgICAgIjAuMjg4MDU3LCAwLjQyMDExMSwgMS4xODExOCwgMS44NTMyLCAyLjc1MDU4LCA0LjU0MTY2LCA1LjY2MDExIiwgXAotICAgICAgICAgICIwLjI4OTk3NiwgMC40MjEyMzIsIDEuMTgwODcsIDEuODUzMjUsIDIuNzQ5ODIsIDQuNTQxMzcsIDUuNjU5MzIiLCBcCi0gICAgICAgICAgIjAuMjkyNywgMC40MjMwMTEsIDEuMTgxNzQsIDEuODUzMTQsIDIuNzUxNTQsIDQuNTQxNSwgNS42NTk1OCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTExNzU2LCAwLjE1ODk4NiwgMC40MjQzNjgsIDAuNjU4MjgzLCAwLjk2OTY4MSwgMS41OTI0NiwgMS45ODE5NCIsIFwKLSAgICAgICAgICAiMC4xMjA3MDUsIDAuMTY3ODg4LCAwLjQzMzM4NywgMC42NjcyNjgsIDAuOTc5MjMzLCAxLjYwMTQyLCAxLjk5MTU4IiwgXAotICAgICAgICAgICIwLjEzMjAwMiwgMC4xNzkyMzYsIDAuNDQ0NzEsIDAuNjc4NjYsIDAuOTkwNDI1LCAxLjYxMzY1LCAyLjAwMjIyIiwgXAotICAgICAgICAgICIwLjE0MzUxOCwgMC4xOTA3NTMsIDAuNDU2MzcxLCAwLjY5MDAyMywgMS4wMDE3OCwgMS42MjQ1NCwgMi4wMTM1NCIsIFwKLSAgICAgICAgICAiMC4xNTUwNywgMC4yMDIzMDUsIDAuNDY3Nzk4LCAwLjcwMTYxMSwgMS4wMTI4NiwgMS42MzYxNiwgMi4wMjU3NiIsIFwKLSAgICAgICAgICAiMC4xNzM1NTgsIDAuMjIwNzE1LCAwLjQ4NjA5OCwgMC43MjAwMzgsIDEuMDMxMzMsIDEuNjU0NDksIDIuMDQzMzQiLCBcCi0gICAgICAgICAgIjAuMTkwMjcxLCAwLjIzNzAzNCwgMC41MDI0MjcsIDAuNzM1OTc4LCAxLjA0Nzg0LCAxLjY3MDM2LCAyLjA1OTYiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjIxOTkxLCAwLjMxNjM5NSwgMC44NTE4MzIsIDEuMzI0MDQsIDEuOTU0MDgsIDMuMjEzMywgNC4wMDAxOSIsIFwKLSAgICAgICAgICAiMC4yMjE5NywgMC4zMTYzNDQsIDAuODUxNzAyLCAxLjMyNDI3LCAxLjk1Mzc1LCAzLjIxMjc3LCA0LjAwMDYxIiwgXAotICAgICAgICAgICIwLjIyMjE2NiwgMC4zMTYzNDUsIDAuODUxODAzLCAxLjMyMzk3LCAxLjk1MzU3LCAzLjIxMzI5LCA0LjAwMDE1IiwgXAotICAgICAgICAgICIwLjIyNDc4NSwgMC4zMTY5NzcsIDAuODUxNjk0LCAxLjMyMzg2LCAxLjk1MzgzLCAzLjIxMzM3LCA0LjAwMDQyIiwgXAotICAgICAgICAgICIwLjIyOTEyNSwgMC4zMTk1NTgsIDAuODUxODgxLCAxLjMyNDI2LCAxLjk1NDA4LCAzLjIxMjQ5LCAzLjk5OTgyIiwgXAotICAgICAgICAgICIwLjIzODc0NiwgMC4zMjYzNTcsIDAuODUxNjksIDEuMzI0MiwgMS45NTM2MywgMy4yMTMyMSwgNC4wMDAzMiIsIFwKLSAgICAgICAgICAiMC4yNDgyMDIsIDAuMzM0MzEsIDAuODUyMTIsIDEuMzIzOTEsIDEuOTUzNTIsIDMuMjEzMzcsIDQuMDAwMjUiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTcwMzg5LCAwLjIzODQwOSwgMC42MjMyMjEsIDAuOTY2NjE3LCAxLjQyNDQ0LCAyLjM0MDU2LCAyLjkxMTg2IiwgXAotICAgICAgICAgICIwLjE4MDEwNywgMC4yNDgyMDgsIDAuNjMyOTI1LCAwLjk3NjE5OCwgMS40MzQ0LCAyLjM1MDMyLCAyLjkyMDkxIiwgXAotICAgICAgICAgICIwLjE5MDQwMiwgMC4yNTg1NzcsIDAuNjQzNjg5LCAwLjk4NzQ2MywgMS40NDQzOCwgMi4zNjAxOSwgMi45MzIwNyIsIFwKLSAgICAgICAgICAiMC4xOTk5ODIsIDAuMjY4MzIzLCAwLjY1MzMzNCwgMC45OTY4MzQsIDEuNDU0MzYsIDIuMzY5OTgsIDIuOTQxNTUiLCBcCi0gICAgICAgICAgIjAuMjA5MTc3LCAwLjI3NzQ4MywgMC42NjI2NDksIDEuMDA2MzIsIDEuNDY0MTYsIDIuMzgwMDEsIDIuOTUxNDgiLCBcCi0gICAgICAgICAgIjAuMjIzNTgyLCAwLjI5MTg4NiwgMC42NzcyNzMsIDEuMDIxLCAxLjQ3ODgyLCAyLjM5NDU0LCAyLjk2NTQxIiwgXAotICAgICAgICAgICIwLjIzNjAwOSwgMC4zMDQzMzUsIDAuNjg5NDYxLCAxLjAzMjg5LCAxLjQ5MSwgMi40MDc0MywgMi45NzgyNiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yNzk1NzgsIDAuNDEyMDksIDEuMTcyODgsIDEuODQ0OTIsIDIuNzQxNTYsIDQuNTMzOTIsIDUuNjUxNTEiLCBcCi0gICAgICAgICAgIjAuMjc5NTgsIDAuNDEyMDg3LCAxLjE3Mjg2LCAxLjg0NDU5LCAyLjc0MDM0LCA0LjUzOTQsIDUuNjUwNDUiLCBcCi0gICAgICAgICAgIjAuMjc5NTY2LCAwLjQxMjA4MiwgMS4xNzIzOSwgMS44NDQ3MiwgMi43NDA1MiwgNC41Mzc2OSwgNS42NTMwOSIsIFwKLSAgICAgICAgICAiMC4yNzk1ODcsIDAuNDEyMTgyLCAxLjE3MjYzLCAxLjg0NDk5LCAyLjc0MDg4LCA0LjUzNzY3LCA1LjY1MzAyIiwgXAotICAgICAgICAgICIwLjI4MDE5NiwgMC40MTIwNCwgMS4xNzI3OCwgMS44NDQ1OSwgMi43NDIwNiwgNC41MzQ5NCwgNS42NTA5MSIsIFwKLSAgICAgICAgICAiMC4yODIxNzIsIDAuNDEzMjEzLCAxLjE3MjQsIDEuODQ0NjYsIDIuNzQxMTYsIDQuNTM4NzcsIDUuNjUwNDkiLCBcCi0gICAgICAgICAgIjAuMjg0OTkzLCAwLjQxNTAxNSwgMS4xNzIzNCwgMS44NDQ3LCAyLjc0MTIzLCA0LjUzMzczLCA1LjY1Mjc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDgyNTgsIDAuMTU1MTE4LCAwLjQyMDE3NywgMC42NTM4ODQsIDAuOTY1MjU2LCAxLjU4ODQxLCAxLjk3NzY5IiwgXAotICAgICAgICAgICIwLjExNzE1MiwgMC4xNjQxMDEsIDAuNDI5MTI4LCAwLjY2MjgzNSwgMC45NzQyNTMsIDEuNTk3NjQsIDEuOTg2NCIsIFwKLSAgICAgICAgICAiMC4xMjcyNywgMC4xNzQyMDMsIDAuNDM5NDI1LCAwLjY3MzAzOSwgMC45ODQ0OTcsIDEuNjA3NzYsIDEuOTk3MDciLCBcCi0gICAgICAgICAgIjAuMTM3MjE3LCAwLjE4NDMyMiwgMC40NDk1NDYsIDAuNjgzMjU0LCAwLjk5NDc1OSwgMS42MTc5MywgMi4wMDY4NyIsIFwKLSAgICAgICAgICAiMC4xNDcyOTYsIDAuMTk0MzU5LCAwLjQ1OTQ4OSwgMC42OTMyNCwgMS4wMDQ2LCAxLjYyNzc2LCAyLjAxNjk5IiwgXAotICAgICAgICAgICIwLjE2MzE2MSwgMC4yMTAzMTMsIDAuNDc1NzUzLCAwLjcwOTUwNSwgMS4wMjEwMiwgMS42NDQxOSwgMi4wMzMyNSIsIFwKLSAgICAgICAgICAiMC4xNzY4ODksIDAuMjI0NDEyLCAwLjQ4OTc1MiwgMC43MjM1NzIsIDEuMDM1MjQsIDEuNjU4MzUsIDIuMDQ3NjkiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjEzMTM5LCAwLjMwNzYyNywgMC44NDI3NTEsIDEuMzE1MDgsIDEuOTQ0NzQsIDMuMjA0MDgsIDMuOTkxIiwgXAotICAgICAgICAgICIwLjIxMzEyMywgMC4zMDc0NjUsIDAuODQyNTI2LCAxLjMxNTAzLCAxLjk0NDc1LCAzLjIwNDY4LCAzLjk5MDA1IiwgXAotICAgICAgICAgICIwLjIxMzI2LCAwLjMwNzUzMywgMC44NDI3MSwgMS4zMTUwNCwgMS45NDQ4MSwgMy4yMDQyNiwgMy45OTE1NiIsIFwKLSAgICAgICAgICAiMC4yMTQ5NTUsIDAuMzA4MDgyLCAwLjg0Mjc5NywgMS4zMTQ4OSwgMS45NDQyMiwgMy4yMDQzMywgMy45OTE0MiIsIFwKLSAgICAgICAgICAiMC4yMTc4MDcsIDAuMzA5Njc3LCAwLjg0MjcsIDEuMzE0OTQsIDEuOTQ0NSwgMy4yMDM1NCwgMy45OTEwMiIsIFwKLSAgICAgICAgICAiMC4yMjM5ODgsIDAuMzE0MzI4LCAwLjg0MjcwNywgMS4zMTUwNSwgMS45NDQ0MywgMy4yMDM3OSwgMy45OTEwOCIsIFwKLSAgICAgICAgICAiMC4yMzA2NjYsIDAuMzE5NDIzLCAwLjg0MzIwMSwgMS4zMTQ4LCAxLjk0NDczLCAzLjIwMzkxLCAzLjk5MTQ5Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE3MDk4NSwgMC4yMzkwNTksIDAuNjIzOTQ4LCAwLjk2NzUxOSwgMS40MjQ5MywgMi4zNDA0NywgMi45MTIwNyIsIFwKLSAgICAgICAgICAiMC4xODAwNjEsIDAuMjQ4MTc1LCAwLjYzMzMyNywgMC45NzY1NjMsIDEuNDMzOTQsIDIuMzQ5MDksIDIuOTIxNDYiLCBcCi0gICAgICAgICAgIjAuMTkwOTYyLCAwLjI1OTE1NCwgMC42NDQzMzMsIDAuOTg3ODIyLCAxLjQ0NDg3LCAyLjM2MDY5LCAyLjkzMjciLCBcCi0gICAgICAgICAgIjAuMjAxNzQyLCAwLjI2OTk5NSwgMC42NTQ5NjUsIDAuOTk4NDQsIDEuNDU2MzksIDIuMzcwODUsIDIuOTQzMSIsIFwKLSAgICAgICAgICAiMC4yMTI0NTcsIDAuMjgwNzE0LCAwLjY2NTQzNywgMS4wMDg5MywgMS40NjY3OCwgMi4zODE1MywgMi45NTM4MyIsIFwKLSAgICAgICAgICAiMC4yMjk0NjUsIDAuMjk3Njk2LCAwLjY4MzA3OCwgMS4wMjYxNSwgMS40ODM3NCwgMi4zOTk0NSwgMi45NzEzNiIsIFwKLSAgICAgICAgICAiMC4yNDQ2MjMsIDAuMzEyNTgzLCAwLjY5Nzg0NCwgMS4wNDEwMSwgMS40OTk2MiwgMi40MTQ5NSwgMi45ODYyNiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yODc1NDYsIDAuNDIwMDY0LCAxLjE4MDg5LCAxLjg1MzE5LCAyLjc0ODU0LCA0LjU0MDgxLCA1LjY2MDg5IiwgXAotICAgICAgICAgICIwLjI4NzcsIDAuNDIwMDU0LCAxLjE4MTA4LCAxLjg1MzQxLCAyLjc0OTA4LCA0LjUzOTU0LCA1LjY2MDI4IiwgXAotICAgICAgICAgICIwLjI4NzcxMSwgMC40MjAwNTgsIDEuMTgwODgsIDEuODUzOCwgMi43NDkxMywgNC41NDA4MiwgNS42NjAxMSIsIFwKLSAgICAgICAgICAiMC4yODc3NTgsIDAuNDIwMDE2LCAxLjE4MSwgMS44NTM0NiwgMi43NDk2OSwgNC41Mzk1MywgNS42NjE2IiwgXAotICAgICAgICAgICIwLjI4ODUwOCwgMC40MjAxMDYsIDEuMTgxMjEsIDEuODUzMTMsIDIuNzQ5NzcsIDQuNTM5MzksIDUuNjYxNzkiLCBcCi0gICAgICAgICAgIjAuMjkxNzk5LCAwLjQyMTgxNCwgMS4xODExNiwgMS44NTMyMiwgMi43NDkxMiwgNC41NDE5NywgNS42NTk3MSIsIFwKLSAgICAgICAgICAiMC4yOTY1NDgsIDAuNDI0NjQ5LCAxLjE4MTczLCAxLjg1MzE2LCAyLjc0OTkyLCA0LjU0MTI0LCA1LjY2MDQ5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIxIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDQ0NjIsIDAuMTUxMzgsIDAuNDE2MzkxLCAwLjY1MDAwMywgMC45NjE0NDYsIDEuNTg0ODYsIDEuOTczNzEiLCBcCi0gICAgICAgICAgIjAuMTEzNTAzLCAwLjE2MDM2NCwgMC40MjU1MTUsIDAuNjU5MTQsIDAuOTcwNjczLCAxLjU5MzcxLCAxLjk4Mjg1IiwgXAotICAgICAgICAgICIwLjEyNDgxMywgMC4xNzE4MTksIDAuNDM2OTI2LCAwLjY3MDYzLCAwLjk4MjEzMiwgMS42MDUyLCAxLjk5NDYyIiwgXAotICAgICAgICAgICIwLjEzNjIxMywgMC4xODMxMzQsIDAuNDQ4MzcyLCAwLjY4MjAyLCAwLjk5MzUxNiwgMS42MTY2MSwgMi4wMDU2NiIsIFwKLSAgICAgICAgICAiMC4xNDc2NzgsIDAuMTk0NjQ4LCAwLjQ1OTgwMiwgMC42OTM0ODMsIDEuMDA0OTQsIDEuNjI4MDMsIDIuMDE3MzIiLCBcCi0gICAgICAgICAgIjAuMTY2Mjg2LCAwLjIxMzEyOSwgMC40NzgxOTIsIDAuNzExOTEyLCAxLjAyMzM4LCAxLjY0NjMyLCAyLjAzNTg1IiwgXAotICAgICAgICAgICIwLjE4Mjk1NCwgMC4yMjk0ODYsIDAuNDk0MzMyLCAwLjcyODA1OCwgMS4wMzk1LCAxLjY2MjU2LCAyLjA1MTY1Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIxMzEwMiwgMC4zMDc1MjIsIDAuODQyODIzLCAxLjMxNSwgMS45NDQ0MywgMy4yMDQzNCwgMy45OTExMiIsIFwKLSAgICAgICAgICAiMC4yMTMwOTcsIDAuMzA3NTI5LCAwLjg0MjYxMSwgMS4zMTQ5MSwgMS45NDQ3MywgMy4yMDQyMywgMy45OTE0NiIsIFwKLSAgICAgICAgICAiMC4yMTM0NjcsIDAuMzA3NTM0LCAwLjg0MjcxMywgMS4zMTQ5OSwgMS45NDQ3MiwgMy4yMDQwMSwgMy45OTEiLCBcCi0gICAgICAgICAgIjAuMjE2NTEsIDAuMzA4MzQ0LCAwLjg0MjY0MywgMS4zMTQ5MSwgMS45NDQ0MSwgMy4yMDQwNSwgMy45OTAyNSIsIFwKLSAgICAgICAgICAiMC4yMjEyOTcsIDAuMzExMjI0LCAwLjg0MjcxMywgMS4zMTQ3NCwgMS45NDQ0LCAzLjIwNDE0LCAzLjk5MDkzIiwgXAotICAgICAgICAgICIwLjIzMTQxNiwgMC4zMTg0NDgsIDAuODQyNzA1LCAxLjMxNDk3LCAxLjk0NDM1LCAzLjIwMzkxLCAzLjk5MDk4IiwgXAotICAgICAgICAgICIwLjI0MTI0LCAwLjMyNjY4NiwgMC44NDMxMDQsIDEuMzE0OTQsIDEuOTQ0MzIsIDMuMjA0MDksIDMuOTkxMzYiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTY1MjUzLCAwLjIzNDIwNiwgMC42MjM0MTgsIDAuOTY3MDcyLCAxLjQyNTQxLCAyLjMzOTM5LCAyLjkxMTcyIiwgXAotICAgICAgICAgICIwLjE3NDU2OCwgMC4yNDM1NTcsIDAuNjMzMzgyLCAwLjk3NjYzNiwgMS40MzM5NywgMi4zNDkwMywgMi45MjE0MiIsIFwKLSAgICAgICAgICAiMC4xODUyNTQsIDAuMjU0MzM2LCAwLjY0NDI1MiwgMC45ODc4ODEsIDEuNDQ0ODcsIDIuMzYwNjksIDIuOTMyNzEiLCBcCi0gICAgICAgICAgIjAuMTk1ODE5LCAwLjI2NTA0OSwgMC42NTQ5ODUsIDAuOTk4NTE4LCAxLjQ1NjM2LCAyLjM3MTI0LCAyLjk0MzEyIiwgXAotICAgICAgICAgICIwLjIwNjMyNCwgMC4yNzU0NDUsIDAuNjY1NDUyLCAxLjAwODg5LCAxLjQ2NywgMi4zODE3OCwgMi45NTM4NCIsIFwKLSAgICAgICAgICAiMC4yMjMyMDEsIDAuMjkyMjQ4LCAwLjY4MjYzLCAxLjAyNjA0LCAxLjQ4Mzc1LCAyLjM5OTQ5LCAyLjk3MTM5IiwgXAotICAgICAgICAgICIwLjIzODAzLCAwLjMwNzAwOSwgMC42OTczMSwgMS4wNDA4NCwgMS40OTk2MywgMi40MTQ4NywgMi45ODYzNCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yODI4NDcsIDAuNDE3Mzk5LCAxLjE4MDI0LCAxLjg1MjE5LCAyLjc0OTI1LCA0LjUzODQ3LCA1LjY1ODk0IiwgXAotICAgICAgICAgICIwLjI4MjgyNCwgMC40MTc2MDMsIDEuMTc5NDYsIDEuODUyMzIsIDIuNzQ3NzksIDQuNTM3OTUsIDUuNjU5MDQiLCBcCi0gICAgICAgICAgIjAuMjgyOTQ4LCAwLjQxNzM4NSwgMS4xNzk0NiwgMS44NTE5NywgMi43NDY3MiwgNC41MzkyNywgNS42NTgyOCIsIFwKLSAgICAgICAgICAiMC4yODMwMTksIDAuNDE3NDUzLCAxLjE3OTkzLCAxLjg1MjQ3LCAyLjc0NzIzLCA0LjUzOTQ1LCA1LjY1OTc4IiwgXAotICAgICAgICAgICIwLjI4Mzc5MSwgMC40MTc0MzEsIDEuMTgwMjksIDEuODUxNzEsIDIuNzQ5MDQsIDQuNTQwMTIsIDUuNjYwMTgiLCBcCi0gICAgICAgICAgIjAuMjg3NTUyLCAwLjQxOTIwOSwgMS4xNzk0NSwgMS44NTE3MSwgMi43NDY4OCwgNC41NDA0NiwgNS42NTgwOSIsIFwKLSAgICAgICAgICAiMC4yOTI0MDgsIDAuNDIyMDIzLCAxLjE4MDA4LCAxLjg1MTY2LCAyLjc0OTI5LCA0LjUzOTcxLCA1LjY1NzUxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTg0NywgMC4xNDUxNzcsIDAuNDEwMTkxLCAwLjY0NDA5OSwgMC45NTU3NzMsIDEuNTc4OTYsIDEuOTY4NTYiLCBcCi0gICAgICAgICAgIjAuMTA3MjQ5LCAwLjE1NDA0MywgMC40MTkxMTQsIDAuNjUzMDI2LCAwLjk2NDcwNSwgMS41ODc5LCAxLjk3NzQ4IiwgXAotICAgICAgICAgICIwLjExNzMwOSwgMC4xNjQyMjksIDAuNDI5MzI2LCAwLjY2MzExMSwgMC45NzQ5OTIsIDEuNTk4MzMsIDEuOTg3MzkiLCBcCi0gICAgICAgICAgIjAuMTI3MjM0LCAwLjE3NDMxNCwgMC40Mzk5NDcsIDAuNjczMjc1LCAwLjk4NTE4MSwgMS42MDg0NSwgMS45OTc2NyIsIFwKLSAgICAgICAgICAiMC4xMzcxNjcsIDAuMTg0MjE2LCAwLjQ0OTUyNSwgMC42ODM0MDUsIDAuOTk1MTY4LCAxLjYxODQxLCAyLjAwNzc3IiwgXAotICAgICAgICAgICIwLjE1MzAwMiwgMC4yMDAyNzMsIDAuNDY2MDQxLCAwLjY5OTUzMiwgMS4wMTE0LCAxLjYzNDYzLCAyLjAyMzY5IiwgXAotICAgICAgICAgICIwLjE2NjgxMSwgMC4yMTQyMDYsIDAuNDc5NjIxLCAwLjcxMzU1NiwgMS4wMjU1LCAxLjY0ODksIDIuMDM4MSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMDU3LCAwLjI5OTg4MSwgMC44MzQ1NDcsIDEuMzA2NjQsIDEuOTM2MDgsIDMuMTk1MTYsIDMuOTgyOTMiLCBcCi0gICAgICAgICAgIjAuMjA1NzM0LCAwLjI5OTkwMywgMC44MzQzNzIsIDEuMzA2NjEsIDEuOTM1OTYsIDMuMTk0NzIsIDMuOTgyOCIsIFwKLSAgICAgICAgICAiMC4yMDYxMTUsIDAuMjk5OTM2LCAwLjgzNDM2MywgMS4zMDY1LCAxLjkzNTkxLCAzLjE5NTEzLCAzLjk4MTM1IiwgXAotICAgICAgICAgICIwLjIwODE0NSwgMC4zMDA2NjIsIDAuODM0NzUsIDEuMzA2NDUsIDEuOTM2MTcsIDMuMTk0ODksIDMuOTgxNiIsIFwKLSAgICAgICAgICAiMC4yMTEzNzcsIDAuMzAyNjk3LCAwLjgzNDU4MywgMS4zMDY1LCAxLjkzNjE2LCAzLjE5NzgsIDMuOTgyMzgiLCBcCi0gICAgICAgICAgIjAuMjE4MjE5LCAwLjMwNzY2NiwgMC44MzQ1NjQsIDEuMzA2NDUsIDEuOTM2MTEsIDMuMTk0NzUsIDMuOTgxNTMiLCBcCi0gICAgICAgICAgIjAuMjI1NTA5LCAwLjMxMjk4OSwgMC44MzUyNjQsIDEuMzA2NDYsIDEuOTM2MDgsIDMuMTk0NDksIDMuOTgyNDYiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTU3MDk3LCAwLjIyNTIxLCAwLjYwOTc3MywgMC45NTIyMzQsIDEuNDEwMTUsIDIuMzI2MywgMi44OTc0OSIsIFwKLSAgICAgICAgICAiMC4xNjU4MzgsIDAuMjM0MDkzLCAwLjYxODcyLCAwLjk2MDkzMSwgMS40MTgzMywgMi4zMzM2NCwgMi45MDU4NCIsIFwKLSAgICAgICAgICAiMC4xNzY5NTYsIDAuMjQ1MTI3LCAwLjYyOTYzLCAwLjk3MjM5NywgMS40MzAzNSwgMi4zNDYyOSwgMi45MTc1NiIsIFwKLSAgICAgICAgICAiMC4xODc2ODMsIDAuMjU0NzAyLCAwLjY0MDMyNywgMC45ODMxMjEsIDEuNDQwNTUsIDIuMzU2MjQsIDIuOTI3OCIsIFwKLSAgICAgICAgICAiMC4xOTg0MDgsIDAuMjY2NTU1LCAwLjY1MTg3NiwgMC45OTQ1MDUsIDEuNDUyMjEsIDIuMzY3NzQsIDIuOTM5MTIiLCBcCi0gICAgICAgICAgIjAuMjE2MjE5LCAwLjI4NDI1NiwgMC42Njg5NCwgMS4wMTEzLCAxLjQ2OTk0LCAyLjM4NTMzLCAyLjk1NjEiLCBcCi0gICAgICAgICAgIjAuMjMxOTYyLCAwLjI5OTg4NCwgMC42ODQ2ODcsIDEuMDI2NzMsIDEuNDg0NzMsIDIuMzk5NzQsIDIuOTcyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI4NzU4NywgMC40MjAwMTksIDEuMTc5NzgsIDEuODUxOTIsIDIuNzQ3NzcsIDQuNTM5MTYsIDUuNjU4OSIsIFwKLSAgICAgICAgICAiMC4yODc3NTUsIDAuNDIwMjUzLCAxLjE4MDI2LCAxLjg1MTg5LCAyLjc0NzQ5LCA0LjUzODA4LCA1LjY1OTMzIiwgXAotICAgICAgICAgICIwLjI4NzM4MiwgMC40MjAyMzQsIDEuMTgwMTgsIDEuODUxODUsIDIuNzQ4MzIsIDQuNTM5MSwgNS42NTg2MiIsIFwKLSAgICAgICAgICAiMC4yODc0MjYsIDAuNDE5ODI3LCAxLjE4MDIyLCAxLjg1MjI1LCAyLjc0ODE0LCA0LjU0MDA1LCA1LjY1ODA5IiwgXAotICAgICAgICAgICIwLjI4OTU2NywgMC40MjAwNjMsIDEuMTc5NDksIDEuODUxODgsIDIuNzQ4MTIsIDQuNTQyMTEsIDUuNjU4NTUiLCBcCi0gICAgICAgICAgIjAuMjk1NjcxLCAwLjQyMzQwMiwgMS4xODAwMywgMS44NTE2MSwgMi43NDgyMywgNC41Mzk5MiwgNS42NTk2NCIsIFwKLSAgICAgICAgICAiMC4zMDMyNTQsIDAuNDI4NDM5LCAxLjE3OTQ3LCAxLjg1MTUsIDIuNzQ3MDcsIDQuNTM4MjEsIDUuNjU4MDkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQzEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5NTQ3MSwgMC4xNDIxODgsIDAuNDA3MjQ3LCAwLjY0MDk4LCAwLjk1MjgzNiwgMS41NzU5NywgMS45NjU1NSIsIFwKLSAgICAgICAgICAiMC4xMDQ2MiwgMC4xNTE0MiwgMC40MTY1MjUsIDAuNjUwMzY3LCAwLjk2MjA2MywgMS41ODUyNiwgMS45NzQ4NCIsIFwKLSAgICAgICAgICAiMC4xMTYwNDQsIDAuMTYyOTYxLCAwLjQyODAwNywgMC42NjE4OTgsIDAuOTczNjcsIDEuNTk2ODksIDEuOTg2NDUiLCBcCi0gICAgICAgICAgIjAuMTI3MzE3LCAwLjE3NDE5MSwgMC40Mzk0MywgMC42NzMyNjQsIDAuOTg1MDExLCAxLjYwODMsIDEuOTk3NTciLCBcCi0gICAgICAgICAgIjAuMTM4ODkxLCAwLjE4NTY2LCAwLjQ1MDg5NywgMC42ODQ3NjYsIDAuOTk2NDU1LCAxLjYxOTYzLCAyLjAwODk4IiwgXAotICAgICAgICAgICIwLjE1NzU2MiwgMC4yMDQxMTQsIDAuNDY5MjY1LCAwLjcwMzE3NCwgMS4wMTQ5MiwgMS42MzgxLCAyLjAyNzciLCBcCi0gICAgICAgICAgIjAuMTczOTkzLCAwLjIyMDI2NywgMC40ODUzODQsIDAuNzE5MjUsIDEuMDMxLCAxLjY1NDE4LCAyLjA0MzQ1Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIwNTcxLCAwLjI5OTgyOCwgMC44MzQ1OTUsIDEuMzA2NTIsIDEuOTM1OTQsIDMuMTk0NTksIDMuOTgxNTEiLCBcCi0gICAgICAgICAgIjAuMjA1Njk5LCAwLjI5OTkzOCwgMC44MzQzNTgsIDEuMzA2NTMsIDEuOTM2MDEsIDMuMTk0NjMsIDMuOTgyOCIsIFwKLSAgICAgICAgICAiMC4yMDYzMywgMC4yOTk5MTgsIDAuODM0NDksIDEuMzA2NjEsIDEuOTM2LCAzLjE5NDY3LCAzLjk4Mjg4IiwgXAotICAgICAgICAgICIwLjIwOTg4NywgMC4zMDEwNjYsIDAuODM0NTkxLCAxLjMwNjQ3LCAxLjkzNjAzLCAzLjE5NDk1LCAzLjk4MTYzIiwgXAotICAgICAgICAgICIwLjIxNTEwMiwgMC4zMDQxNzgsIDAuODM0NTczLCAxLjMwNjQ5LCAxLjkzNTY2LCAzLjE5NDg1LCAzLjk4MjQ5IiwgXAotICAgICAgICAgICIwLjIyNTQxNCwgMC4zMTE5MDYsIDAuODM0NTE5LCAxLjMwNjQ5LCAxLjkzNjA1LCAzLjE5NDkyLCAzLjk4Mjc5IiwgXAotICAgICAgICAgICIwLjIzNjA3LCAwLjMyMDQ3MSwgMC44MzUwOSwgMS4zMDY1MSwgMS45MzYwNCwgMy4xOTQ5NywgMy45ODIxNyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNTI4MTMsIDAuMjIxNzMzLCAwLjYxMTI5OSwgMC45NTQ1OSwgMS40MTI1LCAyLjMyODc2LCAyLjg5OTk0IiwgXAotICAgICAgICAgICIwLjE2MTc4OCwgMC4yMzA4MTUsIDAuNjIwMzM2LCAwLjk2MzY2MSwgMS40MjEyNSwgMi4zMzYzNywgMi45MDg3OSIsIFwKLSAgICAgICAgICAiMC4xNzI2NywgMC4yNDE3NDcsIDAuNjMxNTY4LCAwLjk3NDk3NiwgMS40MzMxOSwgMi4zNDkxLCAyLjkyMDQ4IiwgXAotICAgICAgICAgICIwLjE4MzE0NCwgMC4yNTEwNTcsIDAuNjQyMDE4LCAwLjk4NTg1MiwgMS40NDM0LCAyLjM1OTA5LCAyLjkzMDY1IiwgXAotICAgICAgICAgICIwLjE5NDA2MSwgMC4yNjM0MDUsIDAuNjUzMjQ5LCAwLjk5Njk0NSwgMS40NTUwNiwgMi4zNzA2MSwgMi45NDIwNSIsIFwKLSAgICAgICAgICAiMC4yMTE4LCAwLjI4MDc4OSwgMC42NzA2MDIsIDEuMDE0MDMsIDEuNDcyODIsIDIuMzg4MiwgMi45NTkwMSIsIFwKLSAgICAgICAgICAiMC4yMjc1MDMsIDAuMjk2Mzg4LCAwLjY4NjMyMiwgMS4wMjk4OSwgMS40ODc1LCAyLjQwMjY1LCAyLjk3NDkzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI4NDMwNiwgMC40MTg3MjcsIDEuMTgxMiwgMS44NTMxNCwgMi43NDg3LCA0LjU0MDczLCA1LjY2MDIiLCBcCi0gICAgICAgICAgIjAuMjg0MTY0LCAwLjQxODgwMSwgMS4xODEyMywgMS44NTMzMiwgMi43NDkwMSwgNC41Mzk0OCwgNS42NjA4MyIsIFwKLSAgICAgICAgICAiMC4yODQxNjYsIDAuNDE4NjYxLCAxLjE4MTU5LCAxLjg1MzE2LCAyLjc0OTc2LCA0LjU0MjgxLCA1LjY2MDI3IiwgXAotICAgICAgICAgICIwLjI4NDE2NSwgMC40MTg0NjUsIDEuMTgxNTUsIDEuODU0NDIsIDIuNzQ5NjUsIDQuNTQxNTcsIDUuNjU5MiIsIFwKLSAgICAgICAgICAiMC4yODY0MzIsIDAuNDE4ODE2LCAxLjE4MDg2LCAxLjg1MzI4LCAyLjc0OTgxLCA0LjU0NDg5LCA1LjY2MDI1IiwgXAotICAgICAgICAgICIwLjI5MjkwMSwgMC40MjIwMzYsIDEuMTgxNjgsIDEuODUzMDcsIDIuNzUwODEsIDQuNTQxMzgsIDUuNjYxNDgiLCBcCi0gICAgICAgICAgIjAuMzAwNTk4LCAwLjQyNzI4MiwgMS4xODA4NiwgMS44NTMyNiwgMi43NDg1NiwgNC41Mzk3OSwgNS42NTk2NyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDUyOTUsIDAuMDA1Mjk1LCAwLjAwNTI5NCwgMC4wMDUyOTIsIDAuMDA1MjkyLCAwLjAwNTI4NywgMC4wMDUyODUiLCBcCi0gICAgICAgICAgIjAuMDA1Mjc3LCAwLjAwNTI3OSwgMC4wMDUyNzksIDAuMDA1Mjc3LCAwLjAwNTI4LCAwLjAwNTI3MywgMC4wMDUyNzEiLCBcCi0gICAgICAgICAgIjAuMDA1MjcyLCAwLjAwNTI3NCwgMC4wMDUyNzQsIDAuMDA1Mjc0LCAwLjAwNTI3MiwgMC4wMDUyNjksIDAuMDA1MjY2IiwgXAotICAgICAgICAgICIwLjAwNTI2OSwgMC4wMDUyNzEsIDAuMDA1MjcyLCAwLjAwNTI3MiwgMC4wMDUyNywgMC4wMDUyNjgsIDAuMDA1MjY1IiwgXAotICAgICAgICAgICIwLjAwNTI2NiwgMC4wMDUyNjksIDAuMDA1MjcxLCAwLjAwNTI3MSwgMC4wMDUyNywgMC4wMDUyNjcsIDAuMDA1MjY1IiwgXAotICAgICAgICAgICIwLjAwNTI2NSwgMC4wMDUyNjcsIDAuMDA1MjcsIDAuMDA1MjY5LCAwLjAwNTI2OCwgMC4wMDUyNjYsIDAuMDA1MjYzIiwgXAotICAgICAgICAgICIwLjAwNTI2NSwgMC4wMDUyNjYsIDAuMDA1MjY5LCAwLjAwNTI2OSwgMC4wMDUyNjgsIDAuMDA1MjY2LCAwLjAwNTI2NCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTYyLCAwLjAwMTYyLCAwLjAwMTYyLCAwLjAwMTYxOCwgMC4wMDE2MTksIDAuMDAxNjI1LCAwLjAwMTYxNiIsIFwKLSAgICAgICAgICAiMC4wMDE2MDEsIDAuMDAxNjAzLCAwLjAwMTYwNywgMC4wMDE2MDcsIDAuMDAxNjA4LCAwLjAwMTYwNiwgMC4wMDE2MDQiLCBcCi0gICAgICAgICAgIjAuMDAxNTkxLCAwLjAwMTU5NSwgMC4wMDE2MDIsIDAuMDAxNjAzLCAwLjAwMTYwMywgMC4wMDE2MDIsIDAuMDAxNjAxIiwgXAotICAgICAgICAgICIwLjAwMTU4MywgMC4wMDE1ODksIDAuMDAxNTk5LCAwLjAwMTYwMSwgMC4wMDE2MDIsIDAuMDAxNjAxLCAwLjAwMTYiLCBcCi0gICAgICAgICAgIjAuMDAxNTc4LCAwLjAwMTU4NCwgMC4wMDE1OTcsIDAuMDAxNTk5LCAwLjAwMTYsIDAuMDAxNiwgMC4wMDE1OTkiLCBcCi0gICAgICAgICAgIjAuMDAxNTY5LCAwLjAwMTU3NywgMC4wMDE1OTMsIDAuMDAxNTk3LCAwLjAwMTU5OCwgMC4wMDE1OTksIDAuMDAxNTk5IiwgXAotICAgICAgICAgICIwLjAwMTU2NCwgMC4wMDE1NzIsIDAuMDAxNTksIDAuMDAxNTk0LCAwLjAwMTU5NywgMC4wMDE1OTgsIDAuMDAxNTk3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDk1OCwgMC4wMDQ5NTgsIDAuMDA0OTU2LCAwLjAwNDk1NSwgMC4wMDQ5NTQsIDAuMDA0OTUxLCAwLjAwNDk0NyIsIFwKLSAgICAgICAgICAiMC4wMDQ5MzgsIDAuMDA0OTM4LCAwLjAwNDkzOSwgMC4wMDQ5MzksIDAuMDA0OTM4LCAwLjAwNDkzNCwgMC4wMDQ5MzIiLCBcCi0gICAgICAgICAgIjAuMDA0OTMsIDAuMDA0OTMyLCAwLjAwNDkzNSwgMC4wMDQ5MzUsIDAuMDA0OTM0LCAwLjAwNDkzMiwgMC4wMDQ5MjgiLCBcCi0gICAgICAgICAgIjAuMDA0OTI2LCAwLjAwNDkyOSwgMC4wMDQ5MzIsIDAuMDA0OTMzLCAwLjAwNDkzMiwgMC4wMDQ5MjgsIDAuMDA0OTI3IiwgXAotICAgICAgICAgICIwLjAwNDkyNSwgMC4wMDQ5MjgsIDAuMDA0OTMyLCAwLjAwNDkzMiwgMC4wMDQ5MzEsIDAuMDA0OTI4LCAwLjAwNDkyNyIsIFwKLSAgICAgICAgICAiMC4wMDQ5MywgMC4wMDQ5MywgMC4wMDQ5MzIsIDAuMDA0OTMyLCAwLjAwNDkzLCAwLjAwNDkyOCwgMC4wMDQ5MjYiLCBcCi0gICAgICAgICAgIjAuMDA0OTQsIDAuMDA0OTM1LCAwLjAwNDkzMywgMC4wMDQ5MzIsIDAuMDA0OTMxLCAwLjAwNDkyOSwgMC4wMDQ5MjciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDEzMjMsIDAuMDAxMzI1LCAwLjAwMTMyNywgMC4wMDEzMjcsIDAuMDAxMzI3LCAwLjAwMTMzLCAwLjAwMTMyNSIsIFwKLSAgICAgICAgICAiMC4wMDEzMTYsIDAuMDAxMzIzLCAwLjAwMTMzNCwgMC4wMDEzMzUsIDAuMDAxMzM2LCAwLjAwMTMzNiwgMC4wMDEzMzciLCBcCi0gICAgICAgICAgIjAuMDAxMjk3LCAwLjAwMTMwOSwgMC4wMDEzMywgMC4wMDEzMzMsIDAuMDAxMzM1LCAwLjAwMTMzNiwgMC4wMDEzMzYiLCBcCi0gICAgICAgICAgIjAuMDAxMjgxLCAwLjAwMTI5NiwgMC4wMDEzMjMsIDAuMDAxMzI5LCAwLjAwMTMzMywgMC4wMDEzMzUsIDAuMDAxMzM1IiwgXAotICAgICAgICAgICIwLjAwMTI2NywgMC4wMDEyODQsIDAuMDAxMzE4LCAwLjAwMTMyNiwgMC4wMDEzMywgMC4wMDEzMzMsIDAuMDAxMzM0IiwgXAotICAgICAgICAgICIwLjAwMTI1LCAwLjAwMTI2OSwgMC4wMDEzMDksIDAuMDAxMzIsIDAuMDAxMzI2LCAwLjAwMTMzMSwgMC4wMDEzMzIiLCBcCi0gICAgICAgICAgIjAuMDAxMjM4LCAwLjAwMTI1OCwgMC4wMDEzMDIsIDAuMDAxMzE1LCAwLjAwMTMyMywgMC4wMDEzMjgsIDAuMDAxMzMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0MzE3LCAwLjAwNDMxNiwgMC4wMDQzMTYsIDAuMDA0MzE1LCAwLjAwNDMxNCwgMC4wMDQzMTMsIDAuMDA0MzEyIiwgXAotICAgICAgICAgICIwLjAwNDMxMSwgMC4wMDQzMTMsIDAuMDA0MzE0LCAwLjAwNDMxNSwgMC4wMDQzMTQsIDAuMDA0MzEzLCAwLjAwNDMxMiIsIFwKLSAgICAgICAgICAiMC4wMDQzMDIsIDAuMDA0MzA2LCAwLjAwNDMxMiwgMC4wMDQzMTMsIDAuMDA0MzE0LCAwLjAwNDMxMiwgMC4wMDQzMTEiLCBcCi0gICAgICAgICAgIjAuMDA0Mjk1LCAwLjAwNDMwMSwgMC4wMDQzMSwgMC4wMDQzMTEsIDAuMDA0MzEyLCAwLjAwNDMxMSwgMC4wMDQzMSIsIFwKLSAgICAgICAgICAiMC4wMDQyOTEsIDAuMDA0Mjk4LCAwLjAwNDMwOCwgMC4wMDQzMTEsIDAuMDA0MzExLCAwLjAwNDMxMSwgMC4wMDQzMDkiLCBcCi0gICAgICAgICAgIjAuMDA0Mjg0LCAwLjAwNDI5MiwgMC4wMDQzMDUsIDAuMDA0MzA5LCAwLjAwNDMxLCAwLjAwNDMwOSwgMC4wMDQzMDkiLCBcCi0gICAgICAgICAgIjAuMDA0MjgsIDAuMDA0Mjg5LCAwLjAwNDMwNCwgMC4wMDQzMDcsIDAuMDA0MzA5LCAwLjAwNDMxLCAwLjAwNDMxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxNjIxLCAwLjAwMTYyMiwgMC4wMDE2MjEsIDAuMDAxNjIyLCAwLjAwMTYyMiwgMC4wMDE2MTgsIDAuMDAxNjE3IiwgXAotICAgICAgICAgICIwLjAwMTYwMiwgMC4wMDE2MDMsIDAuMDAxNjA3LCAwLjAwMTYwOCwgMC4wMDE2MDcsIDAuMDAxNjA1LCAwLjAwMTYwNSIsIFwKLSAgICAgICAgICAiMC4wMDE1OTEsIDAuMDAxNTk2LCAwLjAwMTYwMywgMC4wMDE2MDQsIDAuMDAxNjA0LCAwLjAwMTYwMywgMC4wMDE2MDIiLCBcCi0gICAgICAgICAgIjAuMDAxNTg0LCAwLjAwMTU4OSwgMC4wMDE1OTksIDAuMDAxNjAxLCAwLjAwMTYwMSwgMC4wMDE2MDEsIDAuMDAxNiIsIFwKLSAgICAgICAgICAiMC4wMDE1NzcsIDAuMDAxNTg1LCAwLjAwMTU5NywgMC4wMDE1OTksIDAuMDAxNiwgMC4wMDE2MDEsIDAuMDAxNTk5IiwgXAotICAgICAgICAgICIwLjAwMTU3LCAwLjAwMTU3OCwgMC4wMDE1OTMsIDAuMDAxNTk2LCAwLjAwMTU5OCwgMC4wMDE1OTksIDAuMDAxNTk4IiwgXAotICAgICAgICAgICIwLjAwMTU2NiwgMC4wMDE1NzMsIDAuMDAxNTksIDAuMDAxNTk1LCAwLjAwMTU5NywgMC4wMDE1OTgsIDAuMDAxNTk3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzk2NywgMC4wMDM5NjcsIDAuMDAzOTY2LCAwLjAwMzk2NiwgMC4wMDM5NjUsIDAuMDAzOTY0LCAwLjAwMzk2MSIsIFwKLSAgICAgICAgICAiMC4wMDM5NTcsIDAuMDAzOTYsIDAuMDAzOTY0LCAwLjAwMzk2NCwgMC4wMDM5NjQsIDAuMDAzOTYyLCAwLjAwMzk2MSIsIFwKLSAgICAgICAgICAiMC4wMDM5NDcsIDAuMDAzOTUzLCAwLjAwMzk2MSwgMC4wMDM5NjIsIDAuMDAzOTYyLCAwLjAwMzk2MSwgMC4wMDM5NiIsIFwKLSAgICAgICAgICAiMC4wMDM5NDQsIDAuMDAzOTUsIDAuMDAzOTU5LCAwLjAwMzk2LCAwLjAwMzk2MiwgMC4wMDM5NiwgMC4wMDM5NiIsIFwKLSAgICAgICAgICAiMC4wMDM5NDEsIDAuMDAzOTQ3LCAwLjAwMzk1NywgMC4wMDM5NTksIDAuMDAzOTYxLCAwLjAwMzk2LCAwLjAwMzk1OSIsIFwKLSAgICAgICAgICAiMC4wMDM5NDMsIDAuMDAzOTQ3LCAwLjAwMzk1NywgMC4wMDM5NTksIDAuMDAzOTYsIDAuMDAzOTYsIDAuMDAzOTU5IiwgXAotICAgICAgICAgICIwLjAwMzk1MSwgMC4wMDM5NTEsIDAuMDAzOTU4LCAwLjAwMzk2LCAwLjAwMzk2LCAwLjAwMzk2LCAwLjAwMzk1OSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTI0NSwgMC4wMDEyNDcsIDAuMDAxMjQ5LCAwLjAwMTI0OSwgMC4wMDEyNDUsIDAuMDAxMjQ4LCAwLjAwMTI0OCIsIFwKLSAgICAgICAgICAiMC4wMDEyMzksIDAuMDAxMjQ2LCAwLjAwMTI1NiwgMC4wMDEyNTgsIDAuMDAxMjU5LCAwLjAwMTI1OSwgMC4wMDEyNTkiLCBcCi0gICAgICAgICAgIjAuMDAxMjIxLCAwLjAwMTIzMiwgMC4wMDEyNTIsIDAuMDAxMjU2LCAwLjAwMTI1OCwgMC4wMDEyNiwgMC4wMDEyNTkiLCBcCi0gICAgICAgICAgIjAuMDAxMjA0LCAwLjAwMTIxOSwgMC4wMDEyNDYsIDAuMDAxMjUzLCAwLjAwMTI1NiwgMC4wMDEyNTgsIDAuMDAxMjU4IiwgXAotICAgICAgICAgICIwLjAwMTE5LCAwLjAwMTIwOCwgMC4wMDEyNCwgMC4wMDEyNDksIDAuMDAxMjUzLCAwLjAwMTI1NywgMC4wMDEyNTciLCBcCi0gICAgICAgICAgIjAuMDAxMTczLCAwLjAwMTE5MiwgMC4wMDEyMzIsIDAuMDAxMjQzLCAwLjAwMTI0OSwgMC4wMDEyNTQsIDAuMDAxMjU1IiwgXAotICAgICAgICAgICIwLjAwMTE2MywgMC4wMDExODIsIDAuMDAxMjI2LCAwLjAwMTIzOCwgMC4wMDEyNDYsIDAuMDAxMjUyLCAwLjAwMTI1NCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDMxNiwgMC4wMDMxNjEsIDAuMDAzMTYzLCAwLjAwMzE2MywgMC4wMDMxNjMsIDAuMDAzMTYzLCAwLjAwMzE2MyIsIFwKLSAgICAgICAgICAiMC4wMDMxNjQsIDAuMDAzMTY5LCAwLjAwMzE3NiwgMC4wMDMxNzcsIDAuMDAzMTc4LCAwLjAwMzE3OCwgMC4wMDMxNzkiLCBcCi0gICAgICAgICAgIjAuMDAzMTU1LCAwLjAwMzE2MywgMC4wMDMxNzUsIDAuMDAzMTc3LCAwLjAwMzE4LCAwLjAwMzE4MSwgMC4wMDMxNzkiLCBcCi0gICAgICAgICAgIjAuMDAzMTQ2LCAwLjAwMzE1NywgMC4wMDMxNzIsIDAuMDAzMTc3LCAwLjAwMzE3OSwgMC4wMDMxODIsIDAuMDAzMTgyIiwgXAotICAgICAgICAgICIwLjAwMzEzOSwgMC4wMDMxNTEsIDAuMDAzMTcyLCAwLjAwMzE3NiwgMC4wMDMxOCwgMC4wMDMxODEsIDAuMDAzMTgzIiwgXAotICAgICAgICAgICIwLjAwMzEzMSwgMC4wMDMxNDQsIDAuMDAzMTY3LCAwLjAwMzE3MywgMC4wMDMxNzcsIDAuMDAzMTgsIDAuMDAzMTgxIiwgXAotICAgICAgICAgICIwLjAwMzEyNywgMC4wMDMxNCwgMC4wMDMxNjYsIDAuMDAzMTcyLCAwLjAwMzE3NiwgMC4wMDMxOCwgMC4wMDMxODEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDE2MTgsIDAuMDAxNjE5LCAwLjAwMTYxOSwgMC4wMDE2MTgsIDAuMDAxNjE3LCAwLjAwMTYxNSwgMC4wMDE2MTUiLCBcCi0gICAgICAgICAgIjAuMDAxNTk4LCAwLjAwMTYwMiwgMC4wMDE2MDYsIDAuMDAxNjA2LCAwLjAwMTYwNSwgMC4wMDE2MDUsIDAuMDAxNjA0IiwgXAotICAgICAgICAgICIwLjAwMTU5MSwgMC4wMDE1OTUsIDAuMDAxNjAxLCAwLjAwMTYwMywgMC4wMDE2MDQsIDAuMDAxNjAzLCAwLjAwMTYwMiIsIFwKLSAgICAgICAgICAiMC4wMDE1ODUsIDAuMDAxNTg1LCAwLjAwMTU5OSwgMC4wMDE2MDEsIDAuMDAxNjAyLCAwLjAwMTYwMSwgMC4wMDE2IiwgXAotICAgICAgICAgICIwLjAwMTU4OCwgMC4wMDE1OTEsIDAuMDAxNTk3LCAwLjAwMTYsIDAuMDAxNjAxLCAwLjAwMTYsIDAuMDAxNiIsIFwKLSAgICAgICAgICAiMC4wMDE1OTEsIDAuMDAxNTkyLCAwLjAwMTU5OCwgMC4wMDE1OTksIDAuMDAxNiwgMC4wMDE1OTksIDAuMDAxNTk4IiwgXAotICAgICAgICAgICIwLjAwMTYsIDAuMDAxNTk4LCAwLjAwMTU5OSwgMC4wMDE2LCAwLjAwMTYwMSwgMC4wMDE1OTksIDAuMDAxNTk5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQzEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjgyMywgMC4wMDI4MjUsIDAuMDAyODI3LCAwLjAwMjgyOCwgMC4wMDI4MjgsIDAuMDAyODI3LCAwLjAwMjgyNyIsIFwKLSAgICAgICAgICAiMC4wMDI4MjMsIDAuMDAyODMsIDAuMDAyODM5LCAwLjAwMjg0MSwgMC4wMDI4NDIsIDAuMDAyODQzLCAwLjAwMjg0MyIsIFwKLSAgICAgICAgICAiMC4wMDI4MTMsIDAuMDAyODIzLCAwLjAwMjgzOCwgMC4wMDI4NDEsIDAuMDAyODQzLCAwLjAwMjg0NSwgMC4wMDI4NDUiLCBcCi0gICAgICAgICAgIjAuMDAyODA3LCAwLjAwMjgxOCwgMC4wMDI4MzcsIDAuMDAyODQxLCAwLjAwMjg0MywgMC4wMDI4NDUsIDAuMDAyODQ2IiwgXAotICAgICAgICAgICIwLjAwMjgwMywgMC4wMDI4MTQsIDAuMDAyODM1LCAwLjAwMjg0LCAwLjAwMjg0MywgMC4wMDI4NDUsIDAuMDAyODQ1IiwgXAotICAgICAgICAgICIwLjAwMjgwNiwgMC4wMDI4MTMsIDAuMDAyODMzLCAwLjAwMjgzOSwgMC4wMDI4NDIsIDAuMDAyODQ1LCAwLjAwMjg0NSIsIFwKLSAgICAgICAgICAiMC4wMDI4MTEsIDAuMDAyODE1LCAwLjAwMjgzMywgMC4wMDI4MzgsIDAuMDAyODQyLCAwLjAwMjg0NSwgMC4wMDI4NDYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDEzNTksIDAuMDAxMzYsIDAuMDAxMzYzLCAwLjAwMTM2MywgMC4wMDEzNjMsIDAuMDAxMzYxLCAwLjAwMTM2MSIsIFwKLSAgICAgICAgICAiMC4wMDEzNDksIDAuMDAxMzU3LCAwLjAwMTM2OSwgMC4wMDEzNzIsIDAuMDAxMzcyLCAwLjAwMTM3MiwgMC4wMDEzNzEiLCBcCi0gICAgICAgICAgIjAuMDAxMzMyLCAwLjAwMTM0NCwgMC4wMDEzNjQsIDAuMDAxMzY4LCAwLjAwMTM3MSwgMC4wMDEzNzIsIDAuMDAxMzcyIiwgXAotICAgICAgICAgICIwLjAwMTMyMywgMC4wMDEzMzIsIDAuMDAxMzYsIDAuMDAxMzY2LCAwLjAwMTM3LCAwLjAwMTM3MSwgMC4wMDEzNzEiLCBcCi0gICAgICAgICAgIjAuMDAxMzE2LCAwLjAwMTMyNywgMC4wMDEzNTcsIDAuMDAxMzY0LCAwLjAwMTM2NywgMC4wMDEzNywgMC4wMDEzNyIsIFwKLSAgICAgICAgICAiMC4wMDEzMTEsIDAuMDAxMzIzLCAwLjAwMTM1MiwgMC4wMDEzNiwgMC4wMDEzNjUsIDAuMDAxMzY4LCAwLjAwMTM2OSIsIFwKLSAgICAgICAgICAiMC4wMDEzMTMsIDAuMDAxMzIyLCAwLjAwMTM0OSwgMC4wMDEzNTgsIDAuMDAxMzYzLCAwLjAwMTM2NywgMC4wMDEzNjgiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBPQUkyMlg0ICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKE9BSTIyWDQpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC41NzEzNTY7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDMyOTY4MjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDMyODc2MTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDMyOTY4MjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDE2MzcsIDAuMDAxNjM1LCAwLjAwMTYzNSwgMC4wMDE2MzQsIDAuMDAxNjM1LCAwLjAwMTYzNCwgMC4wMDE2MzQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDE2NDEsIDAuMDAxNjQxLCAwLjAwMTY0LCAwLjAwMTY0LCAwLjAwMTY0MSwgMC4wMDE2NDEsIDAuMDAxNjQxIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihBMSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAzMjQzMjQ7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAzMjQzMjQ7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAzMjMxODE7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxNjM4LCAwLjAwMTYzNiwgMC4wMDE2MzcsIDAuMDAxNjM2LCAwLjAwMTYzNiwgMC4wMDE2MzYsIDAuMDAxNjM2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxNjM5LCAwLjAwMTYzOSwgMC4wMDE2MzksIDAuMDAxNjM5LCAwLjAwMTY0LCAwLjAwMTY0LCAwLjAwMTY0Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAzNDQ0MDY7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAzNDIyNDE7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAzNDQ0MDY7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxMzksIDAuMDAxMzkzLCAwLjAwMTM5MywgMC4wMDEzOTUsIDAuMDAxMzk0LCAwLjAwMTM5MiwgMC4wMDEzOTMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDE4NTYsIDAuMDAxODU4LCAwLjAwMTg1OCwgMC4wMDE4NTgsIDAuMDAxODU0LCAwLjAwMTg2LCAwLjAwMTg2Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCMSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAzMjc4ODsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDMyNzgwNTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDMyNzg4OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTM5LCAwLjAwMTM5MSwgMC4wMDEzOTEsIDAuMDAxMzkyLCAwLjAwMTM5MSwgMC4wMDEzOTIsIDAuMDAxMzkxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxODU2LCAwLjAwMTg1NywgMC4wMDE4NTcsIDAuMDAxODU3LCAwLjAwMTg1NywgMC4wMDE4NTgsIDAuMDAxODU4Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuNTU1MjM2OwotICAgIGZ1bmN0aW9uIDogIighKChCMCtCMSkgKEEwK0ExKSkpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDM3OTUsIDAuMTgxNDg5LCAwLjMxODc1MiwgMC40MTYzNzYsIDAuNTczMTIxLCAwLjcwOTc3LCAwLjkwNTM2NSIsIFwKLSAgICAgICAgICAiMC4wNTIzOSwgMC4xOTAyOTMsIDAuMzI3MjIzLCAwLjQyNTI0OSwgMC41ODE1NDQsIDAuNzE4ODcsIDAuOTE0MDc1IiwgXAotICAgICAgICAgICIwLjA2MjM5NCwgMC4yMDAzMjMsIDAuMzM3MzgzLCAwLjQzNTIwMSwgMC41OTE3NzQsIDAuNzI4OTk3LCAwLjkyMzk0NCIsIFwKLSAgICAgICAgICAiMC4wNzIyNDgsIDAuMjEwNDI2LCAwLjM0NzUyNywgMC40NDUzNzEsIDAuNjAxOTc1LCAwLjczODY1OSwgMC45MzQyMjMiLCBcCi0gICAgICAgICAgIjAuMDgxMTUzLCAwLjIyMDM3NiwgMC4zNTc2OCwgMC40NTU1ODQsIDAuNjEyMjAxLCAwLjc0ODg3MiwgMC45NDQyODQiLCBcCi0gICAgICAgICAgIjAuMDkzNDM3LCAwLjIzNjI2LCAwLjM3MzU1OCwgMC40NzA3ODMsIDAuNjI4MTE3LCAwLjc2NTI5MiwgMC45NjA2MjkiLCBcCi0gICAgICAgICAgIjAuMTAzMzgsIDAuMjUwNTg2LCAwLjM4NzY5MywgMC40ODUzODgsIDAuNjQxOTQ3LCAwLjc3OTI0NywgMC45NzQ4MjgiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzcwNzEsIDAuMzU0MTg1LCAwLjYzMTYsIDAuODI5NTY2LCAxLjE0Njc4LCAxLjQyNCwgMS44MjAxIiwgXAotICAgICAgICAgICIwLjA3NzI4NywgMC4zNTQzMTIsIDAuNjMxNjE5LCAwLjgyOTY4NiwgMS4xNDY0LCAxLjQyMzg2LCAxLjgyMDMzIiwgXAotICAgICAgICAgICIwLjA3OTkwNiwgMC4zNTQyMDksIDAuNjMxNjYyLCAwLjgyOTY0NSwgMS4xNDY2NywgMS40MjM3NywgMS44MTk5NSIsIFwKLSAgICAgICAgICAiMC4wODQzMjQsIDAuMzU0NDY1LCAwLjYzMTYyOCwgMC44Mjk4OTIsIDEuMTQ2NzcsIDEuNDIzNzMsIDEuODE5OTMiLCBcCi0gICAgICAgICAgIjAuMDg5NjQ3LCAwLjM1NTcwMywgMC42MzE1MjEsIDAuODI5NzUzLCAxLjE0NjQyLCAxLjQyNDA1LCAxLjgyMDI0IiwgXAotICAgICAgICAgICIwLjA5OTQ2MiwgMC4zNTkzNjYsIDAuNjMyMzQ2LCAwLjgyOTc0OCwgMS4xNDY0LCAxLjQyMzczLCAxLjgxOTk0IiwgXAotICAgICAgICAgICIwLjEwODI1LCAwLjM2NDMxNCwgMC42MzQyNDIsIDAuODMwNDAzLCAxLjE0Njc5LCAxLjQyNDA0LCAxLjgxOTg3Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQ4MTc0LCAwLjE4NTkxMiwgMC4zMjI4OSwgMC40MjA2NjMsIDAuNTc4MTQ5LCAwLjcxNjUwNCwgMC45MTQzMDEiLCBcCi0gICAgICAgICAgIjAuMDU3NzQzLCAwLjE5NTU0OSwgMC4zMzI2OTcsIDAuNDMwNDU4LCAwLjU4Nzk1MywgMC43MjYzNjYsIDAuOTI0MzgxIiwgXAotICAgICAgICAgICIwLjA2ODc0LCAwLjIwNjY2NiwgMC4zNDM3NSwgMC40NDE1MDQsIDAuNTk4OTAyLCAwLjczNzE5NywgMC45MzUwMTUiLCBcCi0gICAgICAgICAgIjAuMDc5NTM4LCAwLjIxNzE0NiwgMC4zNTQ2NDEsIDAuNDUyNDM1LCAwLjYwOTc1MSwgMC43NDgxOTQsIDAuOTQ1NzUzIiwgXAotICAgICAgICAgICIwLjA4OTc3OCwgMC4yMjg0MjcsIDAuMzY1Njg4LCAwLjQ2MzQ0NSwgMC42MjA3MDYsIDAuNzU5MzEsIDAuOTU2NzQ5IiwgXAotICAgICAgICAgICIwLjEwNDUyMSwgMC4yNDU3ODQsIDAuMzgyOTksIDAuNDgwOTMzLCAwLjYzODA1LCAwLjc3NjY4MywgMC45NzQyOTQiLCBcCi0gICAgICAgICAgIjAuMTE1ODI2LCAwLjI2MDc3OSwgMC4zOTgyNDQsIDAuNDk2MDU2LCAwLjY1MzI3LCAwLjc5MTcyLCAwLjk4OTY4MyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2Nzg3NCwgMC4zMzg2NDMsIDAuNjExMjIsIDAuODA3MDYsIDEuMTE5ODMsIDEuMzkzODksIDEuNzg1MjMiLCBcCi0gICAgICAgICAgIjAuMDY3ODM4LCAwLjMzODUzNywgMC42MTEzMDgsIDAuODA3MDU1LCAxLjExOTg3LCAxLjM5NDA5LCAxLjc4NTgyIiwgXAotICAgICAgICAgICIwLjA2OTQwNiwgMC4zMzg1MjksIDAuNjExMzEsIDAuODA3MTk4LCAxLjEyMDAxLCAxLjM5NDA2LCAxLjc4NTE2IiwgXAotICAgICAgICAgICIwLjA3Mjg1MSwgMC4zMzg1NDksIDAuNjExMjUxLCAwLjgwNjg1OCwgMS4xMTk5NywgMS4zOTM1NCwgMS43ODQ5IiwgXAotICAgICAgICAgICIwLjA3NzUxMywgMC4zMzkyODYsIDAuNjExMzcyLCAwLjgwNjc4OCwgMS4xMTk3OCwgMS4zOTQxLCAxLjc4NDk4IiwgXAotICAgICAgICAgICIwLjA4NjUxNiwgMC4zNDI0NzQsIDAuNjExNjc1LCAwLjgwNjgwOSwgMS4xMjAwMSwgMS4zOTQyMiwgMS43ODQ4OSIsIFwKLSAgICAgICAgICAiMC4wOTQ5NTUsIDAuMzQ2MTkyLCAwLjYxMzI2MSwgMC44MDcyNzcsIDEuMTIwMDEsIDEuMzk0MDksIDEuNzg1NzIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQwNjAxLCAwLjE3ODQwNCwgMC4zMTU0MjEsIDAuNDEzMzY4LCAwLjU2OTY4NSwgMC43MDYzMjIsIDAuOTAyNDcxIiwgXAotICAgICAgICAgICIwLjA0OTQ3OCwgMC4xODczODgsIDAuMzI0NTA1LCAwLjQyMjIxMSwgMC41Nzg5NDcsIDAuNzE1NTYsIDAuOTExNzM1IiwgXAotICAgICAgICAgICIwLjA2MDg0MSwgMC4xOTg3MjQsIDAuMzM1ODM3LCAwLjQzMzYzLCAwLjU5MDMzNiwgMC43MjY5MDIsIDAuOTIyNjc0IiwgXAotICAgICAgICAgICIwLjA3MjU0LCAwLjIxMDQ5NywgMC4zNDc1NSwgMC40NDU1MDEsIDAuNjAxODAyLCAwLjczODY1OCwgMC45MzQ2NjEiLCBcCi0gICAgICAgICAgIjAuMDgzMDM4LCAwLjIyMTcxMywgMC4zNTg3NzIsIDAuNDU2NTI1LCAwLjYxMzA1NywgMC43NDk4MTUsIDAuOTQ1MjM0IiwgXAotICAgICAgICAgICIwLjA5Njk4NCwgMC4yNDAwODksIDAuMzc3MTA4LCAwLjQ3NTA0NSwgMC42MzEyOTcsIDAuNzY4MzY0LCAwLjk2Mzg4MyIsIFwKLSAgICAgICAgICAiMC4xMDc1MzIsIDAuMjU2MjE1LCAwLjM5MzI2MiwgMC40OTEwNjMsIDAuNjQ3Mzk2LCAwLjc4NDU1NSwgMC45ODAwODQiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzcwODQsIDAuMzU0MjYzLCAwLjYzMTUxNywgMC44Mjk1NjksIDEuMTQ2NzUsIDEuNDIzOTYsIDEuODIwMDEiLCBcCi0gICAgICAgICAgIjAuMDc3Njg2LCAwLjM1NDIxMSwgMC42MzE0OTQsIDAuODI5NTgxLCAxLjE0NjQyLCAxLjQyMzczLCAxLjgxOTc2IiwgXAotICAgICAgICAgICIwLjA4MjkwNCwgMC4zNTQyMjIsIDAuNjMxNTg5LCAwLjgyOTc2LCAxLjE0NjQ0LCAxLjQyMzk1LCAxLjgyMDAxIiwgXAotICAgICAgICAgICIwLjA5MDAyLCAwLjM1NDQzLCAwLjYzMTYzLCAwLjgyOTcyMywgMS4xNDY3MywgMS40MjM3NywgMS44MTk3NiIsIFwKLSAgICAgICAgICAiMC4wOTg2NDUsIDAuMzU2NDE4LCAwLjYzMTYzLCAwLjgyOTYwMSwgMS4xNDY2OCwgMS40MjM3MywgMS44MTk4MyIsIFwKLSAgICAgICAgICAiMC4xMTMwODIsIDAuMzYyMjkxLCAwLjYzMjQyLCAwLjgyOTcxMywgMS4xNDY3NywgMS40MjQwNCwgMS44MTk5OCIsIFwKLSAgICAgICAgICAiMC4xMjU1MjYsIDAuMzY5MzMxLCAwLjYzNTMwOSwgMC44MzAzMjQsIDEuMTQ2NzcsIDEuNDIzODksIDEuODE5ODQiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDQzNDMsIDAuMTgzMzYyLCAwLjMyMTkzNCwgMC40MjA2NDEsIDAuNTc5MDkzLCAwLjcxNzIwMywgMC45MTUxMzIiLCBcCi0gICAgICAgICAgIjAuMDUzODQ4LCAwLjE5MzE4NywgMC4zMzE3NDQsIDAuNDMwNjExLCAwLjU4ODc2NywgMC43MjczMjgsIDAuOTI1MTA2IiwgXAotICAgICAgICAgICIwLjA2NDYyMiwgMC4yMDQxNjgsIDAuMzQyNzY0LCAwLjQ0MTQ3NiwgMC41OTk3MjksIDAuNzM4MDgyLCAwLjkzNTkwMSIsIFwKLSAgICAgICAgICAiMC4wNzUxNzMsIDAuMjE0NTEsIDAuMzUzNTcsIDAuNDUyNjY2LCAwLjYxMDY2LCAwLjc0OTEwNSwgMC45NDY3NTYiLCBcCi0gICAgICAgICAgIjAuMDg0OTY4LCAwLjIyNTY0OSwgMC4zNjQ0NDksIDAuNDYzMjMsIDAuNjIxNTIxLCAwLjc2MDAzNSwgMC45NTc5MzYiLCBcCi0gICAgICAgICAgIjAuMDk4OTI0LCAwLjI0MjgyMSwgMC4zODE2NDYsIDAuNDgwNjk1LCAwLjYzODkyOSwgMC43Nzc0MzksIDAuOTc1MTYzIiwgXAotICAgICAgICAgICIwLjEwOTcxNywgMC4yNTc2NDQsIDAuMzk2NzQsIDAuNDk1NzE0LCAwLjY1NDIzMywgMC43OTI1MjIsIDAuOTkwNDciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjM2LCAwLjMzNzQ1NywgMC42MTE0MzcsIDAuODEyMzA3LCAxLjEyMTQ1LCAxLjM5NzQ3LCAxLjc5MzA4IiwgXAotICAgICAgICAgICIwLjA2MzYyNiwgMC4zMzc2NCwgMC42MTEyMDIsIDAuODA5MjQ0LCAxLjEyMTg1LCAxLjM5Njk2LCAxLjc5MDU1IiwgXAotICAgICAgICAgICIwLjA2NTM5OSwgMC4zMzczNzEsIDAuNjExMzAzLCAwLjgwOTA4NCwgMS4xMjQ3MiwgMS40MDUzOSwgMS43OTMyOSIsIFwKLSAgICAgICAgICAiMC4wNjkwMTYsIDAuMzM3NTQyLCAwLjYxMzEyMiwgMC44MDcwNzMsIDEuMTI4NTIsIDEuNDAxMTQsIDEuNzk2MjMiLCBcCi0gICAgICAgICAgIjAuMDczOTI1LCAwLjMzODE0NiwgMC42MTExNzMsIDAuODExMDA1LCAxLjEyODk2LCAxLjM5NzE2LCAxLjc5Mjk3IiwgXAotICAgICAgICAgICIwLjA4MzI3MywgMC4zNDEzNiwgMC42MTE2MjYsIDAuODA2NzQ4LCAxLjEyNDU5LCAxLjM5NzU1LCAxLjgwMjY0IiwgXAotICAgICAgICAgICIwLjA5MTY0MSwgMC4zNDUwOSwgMC42MTM0MjMsIDAuODA5MjYxLCAxLjEyNzU2LCAxLjQwNDk2LCAxLjc5MTIyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzNTc4NywgMC4xNzMwMTEsIDAuMzEwMDIxLCAwLjQwNzg2LCAwLjU2NDQ5MywgMC43MDE0NTUsIDAuODk3MjI4IiwgXAotICAgICAgICAgICIwLjA0NDMzNCwgMC4xODE4LCAwLjMxODgzMiwgMC40MTY2NzgsIDAuNTczMzczLCAwLjcxMDMxNSwgMC45MDYzMjYiLCBcCi0gICAgICAgICAgIjAuMDU0MjIsIDAuMTkxOTExLCAwLjMyOTAxMSwgMC40MjY5MzIsIDAuNTgzNDk0LCAwLjcyMDQ2MSwgMC45MTYzNCIsIFwKLSAgICAgICAgICAiMC4wNjM0MDEsIDAuMjAxODgsIDAuMzM5MDcsIDAuNDM2OTYsIDAuNTkzNjE5LCAwLjczMDcwMywgMC45MjYzMjQiLCBcCi0gICAgICAgICAgIjAuMDcxNDI1LCAwLjIxMTkxNCwgMC4zNDkxMjYsIDAuNDQ3MDczLCAwLjYwMzcwMSwgMC43NDA2MzksIDAuOTM2NDIxIiwgXAotICAgICAgICAgICIwLjA4MjY1NCwgMC4yMjc3MTEsIDAuMzY1MTM3LCAwLjQ2MjcxNiwgMC42MTk4NjcsIDAuNzU2OTA3LCAwLjk1MjY5MSIsIFwKLSAgICAgICAgICAiMC4wOTExMTcsIDAuMjQyMDcyLCAwLjM3OTA2NSwgMC40NzcwNywgMC42MzM5MzksIDAuNzcwOTk1LCAwLjk2Njc1MyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2ODk2MywgMC4zNDYxOTMsIDAuNjIzNzksIDAuODIyMjQzLCAxLjEzOTcsIDEuNDE3NDcsIDEuODE0MTciLCBcCi0gICAgICAgICAgIjAuMDY5NCwgMC4zNDYyMzIsIDAuNjIzODc3LCAwLjgyMjE2MiwgMS4xMzk2OCwgMS40MTc0MiwgMS44MTQzNSIsIFwKLSAgICAgICAgICAiMC4wNzI2MzUsIDAuMzQ2MTIxLCAwLjYyMzc0OSwgMC44MjIyNDgsIDEuMTM5NjQsIDEuNDE3NDksIDEuODE0MzQiLCBcCi0gICAgICAgICAgIjAuMDc3NTg5LCAwLjM0NjQ2OCwgMC42MjM3MzEsIDAuODIyMjMzLCAxLjEzOTcxLCAxLjQxNzQ1LCAxLjgxNDIyIiwgXAotICAgICAgICAgICIwLjA4MzQ0NiwgMC4zNDc4NTksIDAuNjIzNzI4LCAwLjgyMjI2NiwgMS4xMzk2MywgMS40MTc1NSwgMS44MTQyNiIsIFwKLSAgICAgICAgICAiMC4wOTM4OTIsIDAuMzUxNzEsIDAuNjI0NTg4LCAwLjgyMjI1LCAxLjEzOTUxLCAxLjQxNzQyLCAxLjgxNDI5IiwgXAotICAgICAgICAgICIwLjEwMjc5NSwgMC4zNTY5NDksIDAuNjI2NjEzLCAwLjgyMjg5OCwgMS4xMzk3MiwgMS40MTczOSwgMS44MTQ0OCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0MTQ3OCwgMC4xNzkyMzgsIDAuMzE2MjM4LCAwLjQxMzk0NSwgMC41NzEzNTcsIDAuNzA5NzQzLCAwLjkwNzUwNSIsIFwKLSAgICAgICAgICAiMC4wNTA2MTIsIDAuMTg4NTQsIDAuMzI1NTE3LCAwLjQyMzM1OSwgMC41ODA1NjEsIDAuNzE4OTk3LCAwLjkxNjU0OSIsIFwKLSAgICAgICAgICAiMC4wNjIyNjEsIDAuMjAwMDMyLCAwLjMzNzA4NywgMC40MzQ5ODUsIDAuNTkyMjQ3LCAwLjczMDczMSwgMC45MjgxNjQiLCBcCi0gICAgICAgICAgIjAuMDc0NDE3LCAwLjIxMTc1NCwgMC4zNDkxODUsIDAuNDQ3MDI1LCAwLjYwNDQxOCwgMC43NDI3ODcsIDAuOTQwMzczIiwgXAotICAgICAgICAgICIwLjA4NTUzNSwgMC4yMjM1MjcsIDAuMzYwNjIxLCAwLjQ1ODI4NCwgMC42MTU5MTksIDAuNzU0MjU5LCAwLjk1MTQyOSIsIFwKLSAgICAgICAgICAiMC4xMDA3OTYsIDAuMjQyMTM0LCAwLjM3OTAyMSwgMC40NzY4NDksIDAuNjM0MjcsIDAuNzcyOTEsIDAuOTcwNDI5IiwgXAotICAgICAgICAgICIwLjExMjMwMywgMC4yNTg2NTEsIDAuMzk1NTQ3LCAwLjQ5MzI0NywgMC42NTA4MjYsIDAuNzg5MTgsIDAuOTg2OTg3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY3ODA4LCAwLjMzODcxOCwgMC42MTEyNDEsIDAuODA3MTU4LCAxLjExOTY2LCAxLjM5MzgzLCAxLjc4NTIxIiwgXAotICAgICAgICAgICIwLjA2ODA1NiwgMC4zMzg2MzUsIDAuNjExMjM2LCAwLjgwNjc4MywgMS4xMTk3NSwgMS4zOTM5OCwgMS43ODQ5OCIsIFwKLSAgICAgICAgICAiMC4wNzI2MjUsIDAuMzM4NTE3LCAwLjYxMTIyNCwgMC44MDY4MTksIDEuMTIwMTMsIDEuMzkzOSwgMS43ODQ4MiIsIFwKLSAgICAgICAgICAiMC4wNzkyNDYsIDAuMzM4NTg3LCAwLjYxMTUsIDAuODA2OTkyLCAxLjExOTk2LCAxLjM5MzU0LCAxLjc4NDkiLCBcCi0gICAgICAgICAgIjAuMDg3NjIxLCAwLjM0MDQxMywgMC42MTEyMzMsIDAuODA2NzgsIDEuMTE5NjYsIDEuMzkzODMsIDEuNzg0OTIiLCBcCi0gICAgICAgICAgIjAuMTAxNjcsIDAuMzQ1OTk4LCAwLjYxMTkwNiwgMC44MDY3ODIsIDEuMTE5NzMsIDEuMzkzOTksIDEuNzg0ODQiLCBcCi0gICAgICAgICAgIjAuMTEzNjQsIDAuMzUyNjU2LCAwLjYxNDU5LCAwLjgwNzM1NiwgMS4xMTk2OSwgMS4zOTQyNywgMS43ODQ5MSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzI2MDcsIDAuMTY5OTA2LCAwLjMwNjg5OCwgMC40MDQ3MzgsIDAuNTYxMzcxLCAwLjY5ODQ2NywgMC44OTQxMyIsIFwKLSAgICAgICAgICAiMC4wNDE0NTMsIDAuMTc5MDI1LCAwLjMxNjAzMSwgMC40MTM5NjIsIDAuNTcwNTQ5LCAwLjcwNzU4NywgMC45MDM0NjkiLCBcCi0gICAgICAgICAgIjAuMDUyODUzLCAwLjE5MDMwNSwgMC4zMjc0MDIsIDAuNDI1Mjc3LCAwLjU4MTg3NSwgMC43MTg5MjIsIDAuOTE0NzU4IiwgXAotICAgICAgICAgICIwLjA2Mzg1MSwgMC4yMDIwMjQsIDAuMzM5MTgsIDAuNDM3MDU1LCAwLjU5MzY4MywgMC43MzA3MywgMC45MjY0MDYiLCBcCi0gICAgICAgICAgIjAuMDcyNzA3LCAwLjIxMzIwNywgMC4zNTAyOTMsIDAuNDQ4MjQ5LCAwLjYwNDgzNywgMC43NDE5MjUsIDAuOTM3NTM0IiwgXAotICAgICAgICAgICIwLjA4NDYyOSwgMC4yMzE1OTIsIDAuMzY4Njg3LCAwLjQ2NjYwNiwgMC42MjMyMjksIDAuNzYwMjY2LCAwLjk1NjAyMSIsIFwKLSAgICAgICAgICAiMC4wOTQzODEsIDAuMjQ3ODUxLCAwLjM4NDg0LCAwLjQ4MjY2LCAwLjYzOTI5MywgMC43NzYzNDksIDAuOTcyMDcyIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY4OTU3LCAwLjM0NjE4NCwgMC42MjM3NzQsIDAuODIyMjQyLCAxLjEzOTcsIDEuNDE3NDEsIDEuODE0MzQiLCBcCi0gICAgICAgICAgIjAuMDcwMTQ1LCAwLjM0NjEyOCwgMC42MjM3MTcsIDAuODIyMjU2LCAxLjEzOTcsIDEuNDE3NDksIDEuODE0MTEiLCBcCi0gICAgICAgICAgIjAuMDc2MzUyLCAwLjM0NjE1NCwgMC42MjM4NTcsIDAuODIyMjQzLCAxLjEzOTY1LCAxLjQxNzQzLCAxLjgxNDMzIiwgXAotICAgICAgICAgICIwLjA4NDMyMSwgMC4zNDY0MjcsIDAuNjIzNzA0LCAwLjgyMjIyNywgMS4xMzk3MywgMS40MTc1NSwgMS44MTQ0NiIsIFwKLSAgICAgICAgICAiMC4wOTM3MzcsIDAuMzQ4NzM1LCAwLjYyMzcxMiwgMC44MjIxNTcsIDEuMTM5NjIsIDEuNDE3NTgsIDEuODE0MzYiLCBcCi0gICAgICAgICAgIjAuMTA5MTc0LCAwLjM1NDk0MywgMC42MjQ2ODgsIDAuODIyMTc5LCAxLjEzOTYzLCAxLjQxNzUzLCAxLjgxNDI3IiwgXAotICAgICAgICAgICIwLjExOTYxOCwgMC4zNjI1MjgsIDAuNjI3ODAzLCAwLjgyMjk1OSwgMS4xMzk2NywgMS40MTc0NSwgMS44MTQxOCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzNzcwNywgMC4xNzY2NTksIDAuMzE1MjI0LCAwLjQxNDEyNSwgMC41NzIyMzcsIDAuNzEwNzc4LCAwLjkwODU3NiIsIFwKLSAgICAgICAgICAiMC4wNDY3NzQsIDAuMTg2MTk1LCAwLjMyNDY3NywgMC40MjM1OTYsIDAuNTgxNjU0LCAwLjcyMDAwNiwgMC45MTc1ODciLCBcCi0gICAgICAgICAgIjAuMDU4NDc1LCAwLjE5Nzc5MywgMC4zMzY0MjksIDAuNDM1MDQ1LCAwLjU5MzIwOSwgMC43MzE2NzQsIDAuOTI5MjA1IiwgXAotICAgICAgICAgICIwLjA3MDMwMywgMC4yMDk0OTksIDAuMzQ4MTY1LCAwLjQ0NzE2MSwgMC42MDUzODYsIDAuNzQzNjAzLCAwLjk0MTMxNSIsIFwKLSAgICAgICAgICAiMC4wODA3OCwgMC4yMjEwNTcsIDAuMzU5NzQ2LCAwLjQ1ODUyNiwgMC42MTY3NDcsIDAuNzU1Mzg0LCAwLjk1MjgzMSIsIFwKLSAgICAgICAgICAiMC4wOTQ5OTgsIDAuMjM5NjQyLCAwLjM3ODE0NCwgMC40NzcwNjIsIDAuNjM1MjY3LCAwLjc3Mzg1NywgMC45NzE0MzgiLCBcCi0gICAgICAgICAgIjAuMTA1NzAyLCAwLjI1NjE3MywgMC4zOTQ2NDcsIDAuNDkzNDg3LCAwLjY1MTY3NSwgMC43OTAxNTQsIDAuOTg3OTYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjM1MjQsIDAuMzM3Mzg1LCAwLjYxMTIyMywgMC44MDc4MTIsIDEuMTIxODQsIDEuMzk3MDUsIDEuNzkwNTUiLCBcCi0gICAgICAgICAgIjAuMDYzODI2LCAwLjMzNzQ5NywgMC42MTM0MzIsIDAuODExMjM4LCAxLjEyNzY3LCAxLjQwMTM2LCAxLjc5NjEyIiwgXAotICAgICAgICAgICIwLjA2ODcxMSwgMC4zMzc0NTIsIDAuNjExMzA3LCAwLjgxMTgsIDEuMTI4MTIsIDEuMzk3NTIsIDEuNzk1NTUiLCBcCi0gICAgICAgICAgIjAuMDc1OTI2LCAwLjMzNzQ5MiwgMC42MTE2MzgsIDAuODA3NTc3LCAxLjEyMjA1LCAxLjQwMDk1LCAxLjc5Mjg3IiwgXAotICAgICAgICAgICIwLjA4NDgzNCwgMC4zMzkyOTksIDAuNjExMjA1LCAwLjgxMTA2NCwgMS4xMjg4MSwgMS4zOTkwMiwgMS44MDE4NSIsIFwKLSAgICAgICAgICAiMC4wOTkxNTgsIDAuMzQ0OTQ5LCAwLjYxMTgwOSwgMC44MTE0NjQsIDEuMTI4NDQsIDEuMzk3MjUsIDEuNzkxMSIsIFwKLSAgICAgICAgICAiMC4xMTEwOTMsIDAuMzUxNTc2LCAwLjYxNDc1OSwgMC44MDkyOTIsIDEuMTIxNzEsIDEuNDA2MDUsIDEuNzkxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTM3MjQsIDAuMDEzNzI4LCAwLjAxMzcyNywgMC4wMTM3MjUsIDAuMDEzNzI2LCAwLjAxMzcyNSwgMC4wMTM3MjMiLCBcCi0gICAgICAgICAgIjAuMDEzNjQ1LCAwLjAxMzY4MiwgMC4wMTM2ODYsIDAuMDEzNjg4LCAwLjAxMzY4OCwgMC4wMTM2ODYsIDAuMDEzNjg1IiwgXAotICAgICAgICAgICIwLjAxMzYwMSwgMC4wMTM2NjMsIDAuMDEzNjcyLCAwLjAxMzY3NSwgMC4wMTM2NzUsIDAuMDEzNjc3LCAwLjAxMzY4NCIsIFwKLSAgICAgICAgICAiMC4wMTM1ODEsIDAuMDEzNjUyLCAwLjAxMzY2NCwgMC4wMTM2NywgMC4wMTM2NzIsIDAuMDEzNjc0LCAwLjAxMzY3NSIsIFwKLSAgICAgICAgICAiMC4wMTM1NzEsIDAuMDEzNjQxLCAwLjAxMzY1OCwgMC4wMTM2NjUsIDAuMDEzNjY3LCAwLjAxMzY3LCAwLjAxMzY3IiwgXAotICAgICAgICAgICIwLjAxMzU3NiwgMC4wMTM2MjcsIDAuMDEzNjUyLCAwLjAxMzY0NCwgMC4wMTM2NjQsIDAuMDEzNjcsIDAuMDEzNjY5IiwgXAotICAgICAgICAgICIwLjAxMzU5MywgMC4wMTM2MzIsIDAuMDEzNjQ5LCAwLjAxMzY1NCwgMC4wMTM2NiwgMC4wMTM2NjIsIDAuMDEzNjY3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDMzMDUsIDAuMDAzMzE3LCAwLjAwMzMxNiwgMC4wMDMzMTYsIDAuMDAzMzE4LCAwLjAwMzMxNSwgMC4wMDMzMTMiLCBcCi0gICAgICAgICAgIjAuMDAzMTg4LCAwLjAwMzI1MiwgMC4wMDMyNjEsIDAuMDAzMjYzLCAwLjAwMzI2NCwgMC4wMDMyNjcsIDAuMDAzMjY2IiwgXAotICAgICAgICAgICIwLjAwMzEyNSwgMC4wMDMyMjEsIDAuMDAzMjQsIDAuMDAzMjQ0LCAwLjAwMzI0OSwgMC4wMDMyNTEsIDAuMDAzMjUzIiwgXAotICAgICAgICAgICIwLjAwMzA3OSwgMC4wMDMxOTQsIDAuMDAzMjIzLCAwLjAwMzIzMiwgMC4wMDMyMzksIDAuMDAzMjQyLCAwLjAwMzI0NiIsIFwKLSAgICAgICAgICAiMC4wMDMwNTQsIDAuMDAzMTgsIDAuMDAzMjEyLCAwLjAwMzIyMiwgMC4wMDMyMzIsIDAuMDAzMjM3LCAwLjAwMzI0MSIsIFwKLSAgICAgICAgICAiMC4wMDMwMzMsIDAuMDAzMTU2LCAwLjAwMzE5NCwgMC4wMDMyMDgsIDAuMDAzMjIsIDAuMDAzMjI3LCAwLjAwMzIzMiIsIFwKLSAgICAgICAgICAiMC4wMDMwMywgMC4wMDMxNDIsIDAuMDAzMTgzLCAwLjAwMzE5NywgMC4wMDMyMTIsIDAuMDAzMjE5LCAwLjAwMzIyOCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkExIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMjM1OSwgMC4wMTIzNjgsIDAuMDEyMzY5LCAwLjAxMjM2NywgMC4wMTIzNjYsIDAuMDEyMzY2LCAwLjAxMjM2MyIsIFwKLSAgICAgICAgICAiMC4wMTIyNCwgMC4wMTIzMTEsIDAuMDEyMzIxLCAwLjAxMjMyMSwgMC4wMTIzMjQsIDAuMDEyMzI2LCAwLjAxMjMyMyIsIFwKLSAgICAgICAgICAiMC4wMTIxOTQsIDAuMDEyMjg4LCAwLjAxMjMwMiwgMC4wMTIzMDcsIDAuMDEyMzExLCAwLjAxMjMxMiwgMC4wMTIzMSIsIFwKLSAgICAgICAgICAiMC4wMTIyMTIsIDAuMDEyMjgsIDAuMDEyMjk2LCAwLjAxMjMwMywgMC4wMTIzMDYsIDAuMDEyMzA4LCAwLjAxMjMxMSIsIFwKLSAgICAgICAgICAiMC4wMTIyMzEsIDAuMDEyMjY5LCAwLjAxMjI4NywgMC4wMTIyOTQsIDAuMDEyMywgMC4wMTIzMDEsIDAuMDEyMzAzIiwgXAotICAgICAgICAgICIwLjAxMjMxMSwgMC4wMTIyNzgsIDAuMDEyMjksIDAuMDEyMjk0LCAwLjAxMjI5OSwgMC4wMTIzMDMsIDAuMDEyMzA1IiwgXAotICAgICAgICAgICIwLjAxMjQxNiwgMC4wMTIyOTgsIDAuMDEyMjk5LCAwLjAxMjMwMiwgMC4wMTIzMDMsIDAuMDEyMzA0LCAwLjAxMjMwNCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyMTYzLCAwLjAwMjIxNiwgMC4wMDIyMjEsIDAuMDAyMjI2LCAwLjAwMjIyNCwgMC4wMDIyMTksIDAuMDAyMjI1IiwgXAotICAgICAgICAgICIwLjAwMjAyOSwgMC4wMDIyMTMsIDAuMDAyMjQsIDAuMDAyMjQ4LCAwLjAwMjI1NCwgMC4wMDIyNTgsIDAuMDAyMjYxIiwgXAotICAgICAgICAgICIwLjAwMTg5NiwgMC4wMDIxNjQsIDAuMDAyMjEzLCAwLjAwMjIyOSwgMC4wMDIyNDMsIDAuMDAyMjUxLCAwLjAwMjI1NyIsIFwKLSAgICAgICAgICAiMC4wMDE4MjYsIDAuMDAyMTE1LCAwLjAwMjE4MywgMC4wMDIyMDYsIDAuMDAyMjI2LCAwLjAwMjIzNywgMC4wMDIyNDYiLCBcCi0gICAgICAgICAgIjAuMDAxNzY1LCAwLjAwMjA3NCwgMC4wMDIxNTYsIDAuMDAyMTgzLCAwLjAwMjIwOSwgMC4wMDIyMjMsIDAuMDAyMjM2IiwgXAotICAgICAgICAgICIwLjAwMTcyMywgMC4wMDIwMTgsIDAuMDAyMTE1LCAwLjAwMjE1LCAwLjAwMjE4MywgMC4wMDIyMDIsIDAuMDAyMjE4IiwgXAotICAgICAgICAgICIwLjAwMTcxLCAwLjAwMTk4LCAwLjAwMjA4NSwgMC4wMDIxMjUsIDAuMDAyMTY0LCAwLjAwMjE4NCwgMC4wMDIyMDUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDk0NiwgMC4wMDk0OTcsIDAuMDA5NTAxLCAwLjAwOTUwMiwgMC4wMDk1MDMsIDAuMDA5NTAzLCAwLjAwOTUwMyIsIFwKLSAgICAgICAgICAiMC4wMDkzNjgsIDAuMDA5NSwgMC4wMDk1MTgsIDAuMDA5NTIzLCAwLjAwOTUyOCwgMC4wMDk1MywgMC4wMDk1MzIiLCBcCi0gICAgICAgICAgIjAuMDA5Mjg4LCAwLjAwOTQ3MSwgMC4wMDk1MDIsIDAuMDA5NTEyLCAwLjAwOTUyMSwgMC4wMDk1MTksIDAuMDA5NTI5IiwgXAotICAgICAgICAgICIwLjAwOTI0NywgMC4wMDk0NDUsIDAuMDA5NDg1LCAwLjAwOTQ5OSwgMC4wMDk1MTEsIDAuMDA5NTE2LCAwLjAwOTUyNSIsIFwKLSAgICAgICAgICAiMC4wMDkyMywgMC4wMDk0MjIsIDAuMDA5NDcsIDAuMDA5NDg2LCAwLjAwOTUwMywgMC4wMDk1MTQsIDAuMDA5NTE5IiwgXAotICAgICAgICAgICIwLjAwOTIzLCAwLjAwOTM5NCwgMC4wMDk0NSwgMC4wMDk0NjEsIDAuMDA5NDkyLCAwLjAwOTUwNCwgMC4wMDk1MTEiLCBcCi0gICAgICAgICAgIjAuMDA5MjQ4LCAwLjAwOTM4LCAwLjAwOTQzOCwgMC4wMDk0NTksIDAuMDA5NDgzLCAwLjAwOTQ5MywgMC4wMDk1MDUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzI5MywgMC4wMDMzMSwgMC4wMDMzMTMsIDAuMDAzMzEyLCAwLjAwMzMxMSwgMC4wMDMzMTEsIDAuMDAzMzEzIiwgXAotICAgICAgICAgICIwLjAwMzE2NCwgMC4wMDMyNDUsIDAuMDAzMjU3LCAwLjAwMzI1NywgMC4wMDMyNjIsIDAuMDAzMjYyLCAwLjAwMzI2MyIsIFwKLSAgICAgICAgICAiMC4wMDMxMTksIDAuMDAzMjE0LCAwLjAwMzIzMiwgMC4wMDMyMzksIDAuMDAzMjQ0LCAwLjAwMzI0NywgMC4wMDMyNDgiLCBcCi0gICAgICAgICAgIjAuMDAzMTEzLCAwLjAwMzIwMSwgMC4wMDMyMjYsIDAuMDAzMjMzLCAwLjAwMzI0LCAwLjAwMzI0MywgMC4wMDMyNDYiLCBcCi0gICAgICAgICAgIjAuMDAzMTg5LCAwLjAwMzE5NSwgMC4wMDMyMTksIDAuMDAzMjI1LCAwLjAwMzIzNCwgMC4wMDMyMzcsIDAuMDAzMjM5IiwgXAotICAgICAgICAgICIwLjAwMzI3MSwgMC4wMDMyMTgsIDAuMDAzMjI4LCAwLjAwMzIzMywgMC4wMDMyMzcsIDAuMDAzMjQsIDAuMDAzMjQxIiwgXAotICAgICAgICAgICIwLjAwMzM2NywgMC4wMDMyMzksIDAuMDAzMjM4LCAwLjAwMzIzOSwgMC4wMDMyNDMsIDAuMDAzMjQ0LCAwLjAwMzI0NSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIxIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwODA5MiwgMC4wMDgxNDUsIDAuMDA4MTUyLCAwLjAwODE1MywgMC4wMDgxNTQsIDAuMDA4MTU0LCAwLjAwODE1NSIsIFwKLSAgICAgICAgICAiMC4wMDc5NjMsIDAuMDA4MTM5LCAwLjAwODE2MywgMC4wMDgxNywgMC4wMDgxNzYsIDAuMDA4MTgsIDAuMDA4MTgyIiwgXAotICAgICAgICAgICIwLjAwNzkwMywgMC4wMDgxMDYsIDAuMDA4MTQzLCAwLjAwODE1NywgMC4wMDgxNjgsIDAuMDA4MTc0LCAwLjAwODE3OCIsIFwKLSAgICAgICAgICAiMC4wMDc4OTMsIDAuMDA4MDgyLCAwLjAwODEyOCwgMC4wMDgxNDMsIDAuMDA4MTU2LCAwLjAwODE2NiwgMC4wMDgxNzIiLCBcCi0gICAgICAgICAgIjAuMDA3OTI5LCAwLjAwODA2MywgMC4wMDgxMTQsIDAuMDA4MTMyLCAwLjAwODE0OSwgMC4wMDgxNTksIDAuMDA4MTY4IiwgXAotICAgICAgICAgICIwLjAwODAzMiwgMC4wMDgwNTQsIDAuMDA4MTA0LCAwLjAwODEyMiwgMC4wMDgxNDIsIDAuMDA4MTUsIDAuMDA4MTYxIiwgXAotICAgICAgICAgICIwLjAwODA3MiwgMC4wMDgwNjIsIDAuMDA4MTAyLCAwLjAwODEyMSwgMC4wMDgxMzgsIDAuMDA4MTUsIDAuMDA4MTU4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDIxNjEsIDAuMDAyMjIxLCAwLjAwMjIzLCAwLjAwMjIzLCAwLjAwMjIyNywgMC4wMDIyMzIsIDAuMDAyMjMyIiwgXAotICAgICAgICAgICIwLjAwMjAxNywgMC4wMDIyMTcsIDAuMDAyMjQ2LCAwLjAwMjI1MywgMC4wMDIyNjIsIDAuMDAyMjY1LCAwLjAwMjI2OSIsIFwKLSAgICAgICAgICAiMC4wMDE5MjYsIDAuMDAyMTY5LCAwLjAwMjIyLCAwLjAwMjIzOSwgMC4wMDIyNTMsIDAuMDAyMjU5LCAwLjAwMjI2NiIsIFwKLSAgICAgICAgICAiMC4wMDE4ODUsIDAuMDAyMTMsIDAuMDAyMTk1LCAwLjAwMjIxNywgMC4wMDIyMzcsIDAuMDAyMjQ3LCAwLjAwMjI1NyIsIFwKLSAgICAgICAgICAiMC4wMDE5MzcsIDAuMDAyMTA5LCAwLjAwMjE3OSwgMC4wMDIyMDMsIDAuMDAyMjI3LCAwLjAwMjIzOSwgMC4wMDIyNSIsIFwKLSAgICAgICAgICAiMC4wMDE5OTgsIDAuMDAyMTAxLCAwLjAwMjE2NywgMC4wMDIxOTIsIDAuMDAyMjE3LCAwLjAwMjIzMSwgMC4wMDIyNDQiLCBcCi0gICAgICAgICAgIjAuMDAyMTE5LCAwLjAwMjA5OCwgMC4wMDIxNTksIDAuMDAyMTg0LCAwLjAwMjIxLCAwLjAwMjIyNCwgMC4wMDIyMzgiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IE9BSTJCQjFYMSAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKE9BSTJCQjFYMSkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjExNTczNjsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQTBOKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2NTUwNDY7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjU1MDQ2OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDY1NDEwMzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyMjYsIDAuMDAwMjI2LCAwLjAwMDIyNiwgMC4wMDAyMjYsIDAuMDAwMjI2LCAwLjAwMDIyNiwgMC4wMDAyMjYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyMzMsIDAuMDAwMjI4LCAwLjAwMDIyNywgMC4wMDAyMjcsIDAuMDAwMjI3LCAwLjAwMDIyNywgMC4wMDAyMjciKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEExTikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjE2NTAyOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYxNjMzMzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2MTY1MDI7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMTE2LCAwLjAwMDExNiwgMC4wMDAxMTYsIDAuMDAwMTE2LCAwLjAwMDExNiwgMC4wMDAxMTYsIDAuMDAwMTE2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjU3LCAwLjAwMDI1NywgMC4wMDAyNTcsIDAuMDAwMjU3LCAwLjAwMDI1NywgMC4wMDAyNTcsIDAuMDAwMjU3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwOTE5NTU7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwOTE5NTU7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwOTE3NTE2OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDQwOSwgMC4wMDA0MDksIDAuMDAwNDA5LCAwLjAwMDQwOSwgMC4wMDA0MDksIDAuMDAwNDA5LCAwLjAwMDQwOSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDQyLCAwLjAwMDQxMiwgMC4wMDA0MTEsIDAuMDAwNDEsIDAuMDAwNDEsIDAuMDAwNDEsIDAuMDAwNDEiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4xNDY1NzQ7Ci0gICAgZnVuY3Rpb24gOiAiKCEoKCEoQTBOIEExTikpIEIwKSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEwTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg3NzgzLCAwLjExMjExMywgMC4yNDkyNTcsIDAuMzcwMjg0LCAwLjUzMTU3LCAwLjg1NDE3LCAxLjA1NTg0IiwgXAotICAgICAgICAgICIwLjA5NjUwNywgMC4xMjA4NTEsIDAuMjU4MTQ0LCAwLjM3OTIyNywgMC41NDA2OTcsIDAuODYyOTE5LCAxLjA2NTEiLCBcCi0gICAgICAgICAgIjAuMTA3MDA4LCAwLjEzMTMyNCwgMC4yNjg1MjYsIDAuMzg5NTgsIDAuNTUxMDQ5LCAwLjg3MzMxMiwgMS4wNzUwMiIsIFwKLSAgICAgICAgICAiMC4xMTcyNDgsIDAuMTQxNTUyLCAwLjI3ODc3MywgMC4zOTk4MzgsIDAuNTYxMjY3LCAwLjg4MzYyOCwgMS4wODU1NCIsIFwKLSAgICAgICAgICAiMC4xMjYzODUsIDAuMTUwNzIzLCAwLjI4NzkwMSwgMC40MDkwNDEsIDAuNTcwNTMyLCAwLjg5MjcsIDEuMDk0NDIiLCBcCi0gICAgICAgICAgIjAuMTM5MzM4LCAwLjE2MzU4OCwgMC4zMDA3MTMsIDAuNDIxNzMzLCAwLjU4MzA4NSwgMC45MDU2NTksIDEuMTA3MjkiLCBcCi0gICAgICAgICAgIjAuMTQ5NDI4LCAwLjE3MzkzMiwgMC4zMTEwNzMsIDAuNDMyMTc0LCAwLjU5MzQ4NSwgMC45MTYxLCAxLjExNzUxIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5NTcwOCwgMC4xNDQwODcsIDAuNDIzOTIxLCAwLjY3MzA1OSwgMS4wMDU0NiwgMS42NjgwMSwgMi4wODIxNiIsIFwKLSAgICAgICAgICAiMC4wOTU2NTcsIDAuMTQ0MDg2LCAwLjQyNDI1NiwgMC42NzMxOTEsIDEuMDA0ODksIDEuNjY4MTQsIDIuMDgzMTMiLCBcCi0gICAgICAgICAgIjAuMDk1NzE2LCAwLjE0NDIzOCwgMC40MjQzMzYsIDAuNjczMTc3LCAxLjAwNDk4LCAxLjY2ODEzLCAyLjA4NjY1IiwgXAotICAgICAgICAgICIwLjA5NTk3MywgMC4xNDQ0MzEsIDAuNDI0NDM5LCAwLjY3MzE4NCwgMS4wMDQ5OSwgMS42Njc5MiwgMi4wODQ4IiwgXAotICAgICAgICAgICIwLjA5NjM2NSwgMC4xNDQ2NDMsIDAuNDI0NTUxLCAwLjY3MzEwOSwgMS4wMDQ4NSwgMS42NjgxMiwgMi4wODYzNyIsIFwKLSAgICAgICAgICAiMC4wOTcyNzEsIDAuMTQ1MzQsIDAuNDI1MTEsIDAuNjczMDU3LCAxLjAwNTUsIDEuNjY3OTMsIDIuMDgyNSIsIFwKLSAgICAgICAgICAiMC4wOTgxNTQsIDAuMTQ1ODI3LCAwLjQyNDg4NCwgMC42NzMyMywgMS4wMDU1LCAxLjY2ODU4LCAyLjA4NjIxIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExMDcxMywgMC4xNTYzOTMsIDAuNDE0NzQ1LCAwLjY0MjYyNywgMC45NDY0NDEsIDEuNTU0MTEsIDEuOTM0MDMiLCBcCi0gICAgICAgICAgIjAuMTIwNTM0LCAwLjE2NjIxMiwgMC40MjQ2MDgsIDAuNjUyNDk5LCAwLjk1NjM0NSwgMS41NjM5NywgMS45NDM3OSIsIFwKLSAgICAgICAgICAiMC4xMzIwNiwgMC4xNzc3NzYsIDAuNDM2MjExLCAwLjY2NDIxMSwgMC45Njc5NDIsIDEuNTc1NzEsIDEuOTU1MzgiLCBcCi0gICAgICAgICAgIjAuMTQxODk1LCAwLjE4NzYwNCwgMC40NDYwNjQsIDAuNjczOTcyLCAwLjk3NzgxNCwgMS41ODU1LCAxLjk2NTI0IiwgXAotICAgICAgICAgICIwLjE1MDE3MiwgMC4xOTU4ODEsIDAuNDU0MzU4LCAwLjY4MjI1NywgMC45ODYxLCAxLjU5Mzc3LCAxLjk3MzU0IiwgXAotICAgICAgICAgICIwLjE2MTg4MiwgMC4yMDc2MDEsIDAuNDY2MDgsIDAuNjk0MDEzLCAwLjk5Nzg1NCwgMS42MDU0NCwgMS45ODUyNSIsIFwKLSAgICAgICAgICAiMC4xNzAzNDgsIDAuMjE2MDQ1LCAwLjQ3NDU0LCAwLjcwMjU0NywgMS4wMDYzMSwgMS42MTM5MiwgMS45OTQwNiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNjY2MjQsIDAuMjU2ODcxLCAwLjc2NTkwMiwgMS4yMTU1NiwgMS44MTc4NywgMy4wMTM5MSwgMy43NzAwNSIsIFwKLSAgICAgICAgICAiMC4xNjY2MzQsIDAuMjU2Nzg3LCAwLjc2NTgzOCwgMS4yMTUzNCwgMS44MTc4NSwgMy4wMTM5MiwgMy43NjI0NSIsIFwKLSAgICAgICAgICAiMC4xNjY2NjgsIDAuMjU2MjI4LCAwLjc2NTkyNSwgMS4yMTc5NCwgMS44MTc3NiwgMy4wMTI1NCwgMy43NjM2NSIsIFwKLSAgICAgICAgICAiMC4xNjcwNjQsIDAuMjU2NDA5LCAwLjc2NzIyMywgMS4yMTc1NSwgMS44MTQ3NSwgMy4wMTM3MywgMy43NjMwNSIsIFwKLSAgICAgICAgICAiMC4xNjcxOTksIDAuMjU2OTI1LCAwLjc2NzAyOCwgMS4yMTcyMywgMS44MTc2NSwgMy4wMTM3MiwgMy43NjMyMyIsIFwKLSAgICAgICAgICAiMC4xNjcyNiwgMC4yNTcwOTMsIDAuNzY3MDI4LCAxLjIxNzM5LCAxLjgxNzc5LCAzLjAxODI2LCAzLjc2OTM3IiwgXAotICAgICAgICAgICIwLjE2NzMwNCwgMC4yNTcxNDIsIDAuNzY3MTgzLCAxLjIxNDAzLCAxLjgxNzc4LCAzLjAxODM2LCAzLjc1ODM5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkExTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg1MzM5LCAwLjEwOTY3NiwgMC4yNDY4NjYsIDAuMzY3OTI1LCAwLjUyOTE2OSwgMC44NTE3MzMsIDEuMDUzNTEiLCBcCi0gICAgICAgICAgIjAuMDk0NDAxLCAwLjExODczOCwgMC4yNTU5NjQsIDAuMzc3MDI0LCAwLjUzODU1OSwgMC44NjA3ODcsIDEuMDYyNDQiLCBcCi0gICAgICAgICAgIjAuMTA1OTQ3LCAwLjEzMDI3NywgMC4yNjc0ODQsIDAuMzg4NTIzLCAwLjU0OTgxMiwgMC44NzIzNzcsIDEuMDc0MDYiLCBcCi0gICAgICAgICAgIjAuMTE3MjksIDAuMTQxNjAyLCAwLjI3ODgyMiwgMC4zOTk3OTksIDAuNTYxMzg3LCAwLjg4Mzc2OSwgMS4wODU1OCIsIFwKLSAgICAgICAgICAiMC4xMjY5NzYsIDAuMTUxNjI1LCAwLjI4ODc4OSwgMC40MDk4NTQsIDAuNTcxMDkyLCAwLjg5Mzg1NSwgMS4wOTUzNiIsIFwKLSAgICAgICAgICAiMC4xNDA5NTIsIDAuMTY0NzQyLCAwLjMwMTc4NywgMC40MjI4MTUsIDAuNTg0MTYyLCAwLjkwNjg4OSwgMS4xMDg1MyIsIFwKLSAgICAgICAgICAiMC4xNTE0NjYsIDAuMTc2Mjk2LCAwLjMxMjE4NSwgMC40MzMxMDMsIDAuNTk0NDc0LCAwLjkxNzE1NywgMS4xMTg4OSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTU3MTIsIDAuMTQ0MzM3LCAwLjQyNDM1NiwgMC42NzMxODcsIDEuMDA0NDQsIDEuNjY4LCAyLjA4MzI5IiwgXAotICAgICAgICAgICIwLjA5NTY0OSwgMC4xNDQzMjMsIDAuNDI0MzMsIDAuNjczMTc4LCAxLjAwNDg3LCAxLjY2ODEzLCAyLjA4Njc5IiwgXAotICAgICAgICAgICIwLjA5NTcyNSwgMC4xNDQyNiwgMC40MjQzOTYsIDAuNjczMjEzLCAxLjAwNDQzLCAxLjY3MTI1LCAyLjA4MjI0IiwgXAotICAgICAgICAgICIwLjA5NjA5OCwgMC4xNDQ0ODEsIDAuNDI0NDA4LCAwLjY3Mjk1NiwgMS4wMDQ4OSwgMS42Njg2NywgMi4wODMxOCIsIFwKLSAgICAgICAgICAiMC4wOTY2MzcsIDAuMTQ0OTE2LCAwLjQyNDY3OSwgMC42NzMzNDcsIDEuMDA2MjcsIDEuNjcxMDQsIDIuMDgyNDMiLCBcCi0gICAgICAgICAgIjAuMDk3NzYsIDAuMTQ1ODg0LCAwLjQyNTMzNCwgMC42NzMwNjIsIDEuMDA0NDgsIDEuNjY4NDUsIDIuMDg2MjkiLCBcCi0gICAgICAgICAgIjAuMDk4NzI0LCAwLjE0NjU3NiwgMC40MjU2NTIsIDAuNjc0MDkyLCAxLjAwNTUsIDEuNjY4NjcsIDIuMDgzMTgiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTA4ODk0LCAwLjE1NDU0LCAwLjQxMjkxMSwgMC42NDEwMjMsIDAuOTQ0ODY5LCAxLjU1MjUzLCAxLjkzMjYyIiwgXAotICAgICAgICAgICIwLjExODY4NiwgMC4xNjQzNDcsIDAuNDIyODU5LCAwLjY1MDk0MywgMC45NTUwMDYsIDEuNTYzMTUsIDEuOTQyMjIiLCBcCi0gICAgICAgICAgIjAuMTI5ODE0LCAwLjE3NTUwOCwgMC40MzM5OTksIDAuNjYyMDcxLCAwLjk2NjIzMSwgMS41NzQxNywgMS45NTQyMiIsIFwKLSAgICAgICAgICAiMC4xMzg4OSwgMC4xODQ1ODEsIDAuNDQzMjIzLCAwLjY3MTY4NywgMC45NzU3ODEsIDEuNTgzOTYsIDEuOTYzMTkiLCBcCi0gICAgICAgICAgIjAuMTQ3MzQ3LCAwLjE5MzA2LCAwLjQ1MTcxMSwgMC42Nzk1MjIsIDAuOTg0MzY2LCAxLjU5MjM3LCAxLjk3MTkxIiwgXAotICAgICAgICAgICIwLjE1Nzg4MSwgMC4yMDM2MzUsIDAuNDYyMzI2LCAwLjY5MDI5MiwgMC45OTQxMiwgMS42MDE5OSwgMS45ODM2MyIsIFwKLSAgICAgICAgICAiMC4xNjU4MjIsIDAuMjExNDA0LCAwLjQ2OTk4OSwgMC42OTc5OTksIDEuMDAyNTMsIDEuNjEwOTgsIDEuOTg5NTYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTY2Nzk3LCAwLjI1Njc2OCwgMC43NjU4MDMsIDEuMjIwOTUsIDEuODIzNzEsIDMuMDIwMSwgMy43NzE5NCIsIFwKLSAgICAgICAgICAiMC4xNjY0OTQsIDAuMjU2NzM1LCAwLjc2OTgxLCAxLjIxNTY1LCAxLjgxNTIxLCAzLjAxMjgzLCAzLjc3MTA2IiwgXAotICAgICAgICAgICIwLjE2Njc3NywgMC4yNTY3ODcsIDAuNzY5NDE5LCAxLjIyMTczLCAxLjgxMzY0LCAzLjAxMTM0LCAzLjc2MDM4IiwgXAotICAgICAgICAgICIwLjE2Njk0NSwgMC4yNTY3OTEsIDAuNzY1MTk5LCAxLjIxNDgyLCAxLjgxMzcsIDMuMDEwMjcsIDMuNzcyMzMiLCBcCi0gICAgICAgICAgIjAuMTY3MTEzLCAwLjI1Njk1LCAwLjc2NTIxNCwgMS4yMTc1NywgMS44MTQwMywgMy4wMTAyNywgMy43NjM4MiIsIFwKLSAgICAgICAgICAiMC4xNjcyNDYsIDAuMjU2OTc5LCAwLjc2NTIyNSwgMS4yMTQ0OCwgMS44MTc5MSwgMy4wMTk3NCwgMy43NjEwNiIsIFwKLSAgICAgICAgICAiMC4xNjczNjEsIDAuMjU2ODExLCAwLjc2OTMxOSwgMS4yMjE3NiwgMS44MTMwMywgMy4wMTE4NywgMy43NzEyNCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDUwMDU3LCAwLjA3NDcyMiwgMC4yMTM4NjIsIDAuMzM2NzQxLCAwLjUwMDQxMSwgMC44Mjc2NzEsIDEuMDMyNTkiLCBcCi0gICAgICAgICAgIjAuMDU5OTg0LCAwLjA4NDYwNCwgMC4yMjM4MzUsIDAuMzQ2NTQ0LCAwLjUxMDE3MSwgMC44MzczMDgsIDEuMDQyMSIsIFwKLSAgICAgICAgICAiMC4wNzIzNzgsIDAuMDk2OTYyLCAwLjIzNjE5NiwgMC4zNTg4NDIsIDAuNTIxNjE3LCAwLjg0ODcwOCwgMS4wNTM2MyIsIFwKLSAgICAgICAgICAiMC4wODUzMjksIDAuMTA5NDc4LCAwLjI0ODY0NCwgMC4zNzEzMjMsIDAuNTM0OTc2LCAwLjg2MDc4MiwgMS4wNjU2OSIsIFwKLSAgICAgICAgICAiMC4wOTgwNjMsIDAuMTIyNTczLCAwLjI2MTMxNCwgMC4zODM4NzgsIDAuNTQ3NDUyLCAwLjg3Mzc2NiwgMS4wNzc3MSIsIFwKLSAgICAgICAgICAiMC4xMTYzMDEsIDAuMTQzMDgzLCAwLjI4MTA4NSwgMC40MDQyMDIsIDAuNTY3NDEzLCAwLjg5Mjg3MywgMS4wOTc1IiwgXAotICAgICAgICAgICIwLjEzMDE0MiwgMC4xNjAwMDgsIDAuMjk4NjY3LCAwLjQyMTgwNywgMC41ODUxMDcsIDAuOTEwMjc2LCAxLjExNDU5Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5NDU0OCwgMC4xNDUsIDAuNDMxMjA4LCAwLjY4MzYzOSwgMS4wMjAzNSwgMS42OTM2NCwgMi4xMTQ1OSIsIFwKLSAgICAgICAgICAiMC4wOTQ4MzcsIDAuMTQ1MDI3LCAwLjQzMTE1NywgMC42ODM1OTgsIDEuMDIwMTcsIDEuNjkzMTEsIDIuMTEzOTEiLCBcCi0gICAgICAgICAgIjAuMDk4ODY3LCAwLjE0NjgwOCwgMC40MzExNDMsIDAuNjgzNjk2LCAxLjAyMDQyLCAxLjY5MzIsIDIuMTEzOTMiLCBcCi0gICAgICAgICAgIjAuMTA1MDM1LCAwLjE1MTU5MiwgMC40MzA5OTIsIDAuNjgzNTQzLCAxLjAyMDI2LCAxLjY5MzI2LCAyLjExMzU2IiwgXAotICAgICAgICAgICIwLjExMjYxNSwgMC4xNTcyNDEsIDAuNDMxNjk1LCAwLjY4MzUxNywgMS4wMTk3NiwgMS42OTM3NiwgMi4xMTM4NCIsIFwKLSAgICAgICAgICAiMC4xMjY1MTMsIDAuMTY5MDAyLCAwLjQzNTYzOCwgMC42ODM3NjUsIDEuMDIwMDcsIDEuNjkzMSwgMi4xMTM4OCIsIFwKLSAgICAgICAgICAiMC4xMzk2NjksIDAuMTgwMzg2LCAwLjQ0MTIzNiwgMC42ODU1ODEsIDEuMDIwMDYsIDEuNjkzMjQsIDIuMTEzOCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTEzODcsIDAuMTM3MDc2LCAwLjM5NTc3OSwgMC42MjM3NTEsIDAuOTI3NjYzLCAxLjUzNTc3LCAxLjkxNTk1IiwgXAotICAgICAgICAgICIwLjEwMDEzNiwgMC4xNDU4NDgsIDAuNDA0MzI2LCAwLjYzMjc2MiwgMC45MzYzNzgsIDEuNTQ0MjEsIDEuOTI0OSIsIFwKLSAgICAgICAgICAiMC4xMTA5NjIsIDAuMTU2NzQ5LCAwLjQxNTI5NSwgMC42NDM3MDEsIDAuOTQ3OTAyLCAxLjU1NjYxLCAxLjkzNTgzIiwgXAotICAgICAgICAgICIwLjEyMTc2MSwgMC4xNjc1NDUsIDAuNDI2NDY3LCAwLjY1NDM0OCwgMC45NTg1MjMsIDEuNTY3MTcsIDEuOTQ3NjEiLCBcCi0gICAgICAgICAgIjAuMTMyNTU2LCAwLjE3ODUxNSwgMC40MzczMjYsIDAuNjY1NDY4LCAwLjk2OTgwNiwgMS41Nzc5NCwgMS45NTgwMiIsIFwKLSAgICAgICAgICAiMC4xNDk4NywgMC4xOTU4NDIsIDAuNDU0MjY2LCAwLjY4MzA1LCAwLjk4NzYwMSwgMS41OTQ5OSwgMS45NzQ4OCIsIFwKLSAgICAgICAgICAiMC4xNjQ4MTEsIDAuMjExNjc2LCAwLjQ3MDMzLCAwLjY5ODQ4OCwgMS4wMDI1MSwgMS42MTEwMSwgMS45OTAyMyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNjY3NjcsIDAuMjU3MTk5LCAwLjc2NTY2NiwgMS4yMTU2MywgMS44MjUyLCAzLjAxNDQxLCAzLjc2OTQiLCBcCi0gICAgICAgICAgIjAuMTY2NjQzLCAwLjI1NjI2NiwgMC43NjcyNjgsIDEuMjE3MTgsIDEuODE4MzUsIDMuMDE5MTQsIDMuNzYzODQiLCBcCi0gICAgICAgICAgIjAuMTY3MjM1LCAwLjI1NzQzMiwgMC43NjczMjksIDEuMjE3NjIsIDEuODE4NjEsIDMuMDMyMDcsIDMuNzYzOTgiLCBcCi0gICAgICAgICAgIjAuMTY5MjE3LCAwLjI1ODE5NiwgMC43Njk2MTMsIDEuMjIxNDYsIDEuODE1NDEsIDMuMDMxODMsIDMuNzY0MjUiLCBcCi0gICAgICAgICAgIjAuMTcyNTU3LCAwLjI1OTY5OSwgMC43Njk4NzQsIDEuMjIxNTcsIDEuODI0NjgsIDMuMDE5MTcsIDMuNzYzODkiLCBcCi0gICAgICAgICAgIjAuMTgwMDE3LCAwLjI2NDQxNCwgMC43NjUyMTcsIDEuMjE3ODYsIDEuODEzMjMsIDMuMDE5MjQsIDMuNzcxMTQiLCBcCi0gICAgICAgICAgIjAuMTg3NzMxLCAwLjI3MDk1MSwgMC43NjgyMSwgMS4yMTc2LCAxLjgxODMxLCAzLjAxMTQsIDMuNzcwODciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBME4iOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTcwOCwgMC4wMDE3MTMsIDAuMDAxNzE2LCAwLjAwMTcyLCAwLjAwMTcyLCAwLjAwMTcyLCAwLjAwMTcyMSIsIFwKLSAgICAgICAgICAiMC4wMDE2NzgsIDAuMDAxNjg0LCAwLjAwMTY5LCAwLjAwMTY5MiwgMC4wMDE2OTIsIDAuMDAxNjkzLCAwLjAwMTY5MyIsIFwKLSAgICAgICAgICAiMC4wMDE2NjQsIDAuMDAxNjcxLCAwLjAwMTY3OSwgMC4wMDE2OCwgMC4wMDE2ODEsIDAuMDAxNjgyLCAwLjAwMTY4MiIsIFwKLSAgICAgICAgICAiMC4wMDE2NjIsIDAuMDAxNjY4LCAwLjAwMTY3NiwgMC4wMDE2NzgsIDAuMDAxNjc4LCAwLjAwMTY3OSwgMC4wMDE2NzkiLCBcCi0gICAgICAgICAgIjAuMDAxNjU1LCAwLjAwMTY2NCwgMC4wMDE2NzQsIDAuMDAxNjc3LCAwLjAwMTY3OCwgMC4wMDE2NzksIDAuMDAxNjgiLCBcCi0gICAgICAgICAgIjAuMDAxNjU4LCAwLjAwMTY2NiwgMC4wMDE2NzksIDAuMDAxNjgyLCAwLjAwMTY4NCwgMC4wMDE2ODUsIDAuMDAxNjg1IiwgXAotICAgICAgICAgICIwLjAwMTY2NCwgMC4wMDE2NzMsIDAuMDAxNjg2LCAwLjAwMTY4OSwgMC4wMDE2OSwgMC4wMDE2OTIsIDAuMDAxNjkzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyNzg0LCAwLjAwMjc5LCAwLjAwMjc5OSwgMC4wMDI4LCAwLjAwMjgwMSwgMC4wMDI4MDIsIDAuMDAyODAyIiwgXAotICAgICAgICAgICIwLjAwMjc2MSwgMC4wMDI3NywgMC4wMDI3ODEsIDAuMDAyNzg0LCAwLjAwMjc4NSwgMC4wMDI3ODYsIDAuMDAyNzg2IiwgXAotICAgICAgICAgICIwLjAwMjc1MywgMC4wMDI3NjMsIDAuMDAyNzgsIDAuMDAyNzgzLCAwLjAwMjc4NSwgMC4wMDI3ODcsIDAuMDAyNzg4IiwgXAotICAgICAgICAgICIwLjAwMjc1MSwgMC4wMDI3NjMsIDAuMDAyNzgyLCAwLjAwMjc4NywgMC4wMDI3ODksIDAuMDAyNzkxLCAwLjAwMjc5MiIsIFwKLSAgICAgICAgICAiMC4wMDI3NTUsIDAuMDAyNzY3LCAwLjAwMjc5LCAwLjAwMjc5NSwgMC4wMDI3OTgsIDAuMDAyODAxLCAwLjAwMjgwMSIsIFwKLSAgICAgICAgICAiMC4wMDI3NjMsIDAuMDAyNzc3LCAwLjAwMjgsIDAuMDAyODA2LCAwLjAwMjgxLCAwLjAwMjgxMywgMC4wMDI4MTQiLCBcCi0gICAgICAgICAgIjAuMDAyNzc0LCAwLjAwMjc4NywgMC4wMDI4MTMsIDAuMDAyODE5LCAwLjAwMjgyMywgMC4wMDI4MjcsIDAuMDAyODI4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTFOIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDE3MDgsIDAuMDAxNzEzLCAwLjAwMTcyLCAwLjAwMTcyMiwgMC4wMDE3MjMsIDAuMDAxNzIzLCAwLjAwMTcyMyIsIFwKLSAgICAgICAgICAiMC4wMDE2NzgsIDAuMDAxNjg0LCAwLjAwMTY5MywgMC4wMDE2OTQsIDAuMDAxNjk1LCAwLjAwMTY5NiwgMC4wMDE2OTYiLCBcCi0gICAgICAgICAgIjAuMDAxNjY5LCAwLjAwMTY3NywgMC4wMDE2ODgsIDAuMDAxNjksIDAuMDAxNjkyLCAwLjAwMTY5MywgMC4wMDE2OTMiLCBcCi0gICAgICAgICAgIjAuMDAxNjc2LCAwLjAwMTY4NCwgMC4wMDE2OTYsIDAuMDAxNjk4LCAwLjAwMTcsIDAuMDAxNzAxLCAwLjAwMTcwMiIsIFwKLSAgICAgICAgICAiMC4wMDE2ODUsIDAuMDAxNjk0LCAwLjAwMTcwOSwgMC4wMDE3MTIsIDAuMDAxNzEzLCAwLjAwMTcxNSwgMC4wMDE3MTYiLCBcCi0gICAgICAgICAgIjAuMDAxNzA2LCAwLjAwMTcxNCwgMC4wMDE3MzIsIDAuMDAxNzM2LCAwLjAwMTczOCwgMC4wMDE3NCwgMC4wMDE3NCIsIFwKLSAgICAgICAgICAiMC4wMDE3MjcsIDAuMDAxNzQxLCAwLjAwMTc1MywgMC4wMDE3NTksIDAuMDAxNzYxLCAwLjAwMTc2MywgMC4wMDE3NjQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI1MzgsIDAuMDAyNTQ0LCAwLjAwMjU1MSwgMC4wMDI1NTMsIDAuMDAyNTUzLCAwLjAwMjU1NCwgMC4wMDI1NTQiLCBcCi0gICAgICAgICAgIjAuMDAyNTA5LCAwLjAwMjUxNywgMC4wMDI1MjcsIDAuMDAyNTI5LCAwLjAwMjUzLCAwLjAwMjUzMSwgMC4wMDI1MzIiLCBcCi0gICAgICAgICAgIjAuMDAyNDk4LCAwLjAwMjUwOCwgMC4wMDI1MjMsIDAuMDAyNTI2LCAwLjAwMjUyNywgMC4wMDI1MjksIDAuMDAyNTI5IiwgXAotICAgICAgICAgICIwLjAwMjQ5NSwgMC4wMDI1MDcsIDAuMDAyNTI1LCAwLjAwMjUzLCAwLjAwMjUzMiwgMC4wMDI1MzQsIDAuMDAyNTM1IiwgXAotICAgICAgICAgICIwLjAwMjQ5MSwgMC4wMDI1MDQsIDAuMDAyNTIyLCAwLjAwMjUyNywgMC4wMDI1MjksIDAuMDAyNTMyLCAwLjAwMjUzMSIsIFwKLSAgICAgICAgICAiMC4wMDI1MDYsIDAuMDAyNTEyLCAwLjAwMjUzNiwgMC4wMDI1NDUsIDAuMDAyNTQ1LCAwLjAwMjU0NywgMC4wMDI1NDgiLCBcCi0gICAgICAgICAgIjAuMDAyNTIsIDAuMDAyNTMzLCAwLjAwMjU1NywgMC4wMDI1NjIsIDAuMDAyNTYzLCAwLjAwMjU3LCAwLjAwMjU3MSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDE1NzEsIDAuMDAxNTczLCAwLjAwMTU3NCwgMC4wMDE1NzQsIDAuMDAxNTc0LCAwLjAwMTU3NCwgMC4wMDE1NzQiLCBcCi0gICAgICAgICAgIjAuMDAxNTU3LCAwLjAwMTU2MSwgMC4wMDE1NjYsIDAuMDAxNTY3LCAwLjAwMTU2OSwgMC4wMDE1NjgsIDAuMDAxNTY4IiwgXAotICAgICAgICAgICIwLjAwMTU1MSwgMC4wMDE1NTYsIDAuMDAxNTY0LCAwLjAwMTU2NiwgMC4wMDE1NjUsIDAuMDAxNTY2LCAwLjAwMTU2NiIsIFwKLSAgICAgICAgICAiMC4wMDE1NTEsIDAuMDAxNTU0LCAwLjAwMTU2MywgMC4wMDE1NjUsIDAuMDAxNTY2LCAwLjAwMTU2NiwgMC4wMDE1NjUiLCBcCi0gICAgICAgICAgIjAuMDAxNTUzLCAwLjAwMTU1NiwgMC4wMDE1NjMsIDAuMDAxNTY1LCAwLjAwMTU2NSwgMC4wMDE1NjUsIDAuMDAxNTY2IiwgXAotICAgICAgICAgICIwLjAwMTU2MywgMC4wMDE1NjMsIDAuMDAxNTYzLCAwLjAwMTU2NSwgMC4wMDE1NjYsIDAuMDAxNTY2LCAwLjAwMTU2NiIsIFwKLSAgICAgICAgICAiMC4wMDE1NzcsIDAuMDAxNTcxLCAwLjAwMTU2NiwgMC4wMDE1NjcsIDAuMDAxNTY3LCAwLjAwMTU2NywgMC4wMDE1NjYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDA1NTEsIDAuMDAwNTUzLCAwLjAwMDU1NiwgMC4wMDA1NTcsIDAuMDAwNTU3LCAwLjAwMDU1NywgMC4wMDA1NTciLCBcCi0gICAgICAgICAgIjAuMDAwNTI4LCAwLjAwMDUzNywgMC4wMDA1NSwgMC4wMDA1NTMsIDAuMDAwNTU1LCAwLjAwMDU1NiwgMC4wMDA1NTYiLCBcCi0gICAgICAgICAgIjAuMDAwNTA4LCAwLjAwMDUyMSwgMC4wMDA1NDMsIDAuMDAwNTQ4LCAwLjAwMDU1MiwgMC4wMDA1NTQsIDAuMDAwNTU1IiwgXAotICAgICAgICAgICIwLjAwMDQ5NSwgMC4wMDA1MSwgMC4wMDA1MzgsIDAuMDAwNTQ1LCAwLjAwMDU0OSwgMC4wMDA1NTIsIDAuMDAwNTUzIiwgXAotICAgICAgICAgICIwLjAwMDQ4NiwgMC4wMDA1MDEsIDAuMDAwNTMyLCAwLjAwMDU0MSwgMC4wMDA1NDYsIDAuMDAwNTUxLCAwLjAwMDU1MiIsIFwKLSAgICAgICAgICAiMC4wMDA0NzksIDAuMDAwNDkxLCAwLjAwMDUyNiwgMC4wMDA1MzUsIDAuMDAwNTQyLCAwLjAwMDU0OCwgMC4wMDA1NSIsIFwKLSAgICAgICAgICAiMC4wMDA0NzgsIDAuMDAwNDg4LCAwLjAwMDUyLCAwLjAwMDUzMiwgMC4wMDA1MzksIDAuMDAwNTQ2LCAwLjAwMDU0OCIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogT0FJMkJCMVg0ICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoT0FJMkJCMVg0KSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMzY5MTU5OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBME4pICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDgzOTE2MzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA4MzkxNjM7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwODM3MDM7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNDA5LCAwLjAwMDQwOSwgMC4wMDA0MDksIDAuMDAwNDA5LCAwLjAwMDQwOSwgMC4wMDA0MDksIDAuMDAwNDA5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNDIsIDAuMDAwNDEyLCAwLjAwMDQxMSwgMC4wMDA0MSwgMC4wMDA0MSwgMC4wMDA0MSwgMC4wMDA0MSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQTFOKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA4OTIxOTE7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwODkxODcxOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDg5MjE5MTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyMzgsIDAuMDAwMjM3LCAwLjAwMDIzNywgMC4wMDAyMzcsIDAuMDAwMjM3LCAwLjAwMDIzOCwgMC4wMDAyMzciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA0NjQsIDAuMDAwNDY1LCAwLjAwMDQ2NSwgMC4wMDA0NjUsIDAuMDAwNDY1LCAwLjAwMDQ2NCwgMC4wMDA0NjQiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDMzNDg0NjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDMzNDg0NjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDMzMzk4OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTYzNywgMC4wMDE2MzUsIDAuMDAxNjM1LCAwLjAwMTYzNCwgMC4wMDE2MzUsIDAuMDAxNjM0LCAwLjAwMTYzNCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTY4MSwgMC4wMDE2NDYsIDAuMDAxNjQ0LCAwLjAwMTY0MSwgMC4wMDE2NDEsIDAuMDAxNjQxLCAwLjAwMTY0MSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjU2MjE3ODsKLSAgICBmdW5jdGlvbiA6ICIoISgoIShBME4gQTFOKSkgQjApKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTBOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3MDQ4NiwgMC4xNDc2ODMsIDAuMjIwOTE3LCAwLjI3MzE3NCwgMC4zNTY3ODMsIDAuNDI5OTQ2LCAwLjUzNDQ2NCIsIFwKLSAgICAgICAgICAiMC4wNzkxODcsIDAuMTU2NjI4LCAwLjIyOTkwNiwgMC4yODIxNjgsIDAuMzY1Nzk1LCAwLjQzODk1MywgMC41NDM1MDYiLCBcCi0gICAgICAgICAgIjAuMDkwMDUxLCAwLjE2NzQ0NiwgMC4yNDA2ODUsIDAuMjkyOTc3LCAwLjM3NjY1MiwgMC40NDk3MzQsIDAuNTU0NDA0IiwgXAotICAgICAgICAgICIwLjEwMDQyMiwgMC4xNzc3NzgsIDAuMjUxMDI3LCAwLjMwMzI5LCAwLjM4Njk2NCwgMC40NjAwODUsIDAuNTY0NjI4IiwgXAotICAgICAgICAgICIwLjExMDQwNywgMC4xODgxNjgsIDAuMjYxMjE0LCAwLjMxMzQ3NywgMC4zOTcwOTQsIDAuNDcwMzU3LCAwLjU3NTA2MSIsIFwKLSAgICAgICAgICAiMC4xMjUwODMsIDAuMjAzMTE5LCAwLjI3NjMyOCwgMC4zMjg2MTQsIDAuNDEyMjY0LCAwLjQ4NTQxNywgMC41OTAxOTQiLCBcCi0gICAgICAgICAgIjAuMTM2NTYsIDAuMjE0ODE0LCAwLjI4ODAyMSwgMC4zNDAyNzQsIDAuNDIzODY2LCAwLjQ5NzAyOSwgMC42MDE2NzIiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDIzMTcsIDAuMTg2NTcsIDAuMzM1NzM1LCAwLjQ0MzEwNywgMC42MTU0NzYsIDAuNzY1OTcyLCAwLjk4MjIzOCIsIFwKLSAgICAgICAgICAiMC4wNDIzOTUsIDAuMTg2NTE2LCAwLjMzNTcsIDAuNDQzMDg3LCAwLjYxNTQ5NSwgMC43NjY0MzQsIDAuOTgyMjk0IiwgXAotICAgICAgICAgICIwLjA0MjMzMywgMC4xODY1LCAwLjMzNTc0NiwgMC40NDMyNSwgMC42MTQyMzgsIDAuNzY2NDE5LCAwLjk4MDM2NCIsIFwKLSAgICAgICAgICAiMC4wNDI4NjcsIDAuMTg2NTg1LCAwLjMzNTczNCwgMC40NDMwODcsIDAuNjE1NTg3LCAwLjc2NjMzLCAwLjk4MjI3MiIsIFwKLSAgICAgICAgICAiMC4wNDM0OSwgMC4xODY3MzcsIDAuMzM1MzExLCAwLjQ0MzA5LCAwLjYxNDU1OCwgMC43NjQ3MTYsIDAuOTgwMzYxIiwgXAotICAgICAgICAgICIwLjA0NDc2OSwgMC4xODcyNCwgMC4zMzU5NTQsIDAuNDQzMTU4LCAwLjYxNDM3NywgMC43NjYzNTQsIDAuOTgwMzU5IiwgXAotICAgICAgICAgICIwLjA0NTg2NiwgMC4xODc5MzUsIDAuMzM2MDU2LCAwLjQ0Mjg2OCwgMC42MTUzNzgsIDAuNzY2MzI1LCAwLjk3OTg5MiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2MDkyMiwgMC4xOTU5MDQsIDAuMzMwMTc3LCAwLjQyNjA2LCAwLjU3OTQ1LCAwLjcxMzY2NiwgMC45MDUzNzMiLCBcCi0gICAgICAgICAgIjAuMDcwODc2LCAwLjIwNTkxMywgMC4zNDAxOTgsIDAuNDM2MDg1LCAwLjU4OTQ3NCwgMC43MjM2OTEsIDAuOTE1NDIiLCBcCi0gICAgICAgICAgIjAuMDgzMDUyLCAwLjIxODE5OCwgMC4zNTI1MDcsIDAuNDQ4MzgxLCAwLjYwMTc4NSwgMC43MzU5NzYsIDAuOTI3NzEyIiwgXAotICAgICAgICAgICIwLjA5NDUyNywgMC4yMjk2MDQsIDAuMzYzOTMyLCAwLjQ1OTgzNSwgMC42MTMyMjgsIDAuNzQ3NDYxLCAwLjkzOTE5MiIsIFwKLSAgICAgICAgICAiMC4xMDQ0NDIsIDAuMjM5NTI2LCAwLjM3Mzg2NCwgMC40Njk3NTMsIDAuNjIzMTcsIDAuNzU3Mzg2LCAwLjk0OTExOCIsIFwKLSAgICAgICAgICAiMC4xMTc5ODEsIDAuMjUzMSwgMC4zODc0MjcsIDAuNDgzMzA5LCAwLjYzNjczMSwgMC43NzA5NDksIDAuOTYyNjc0IiwgXAotICAgICAgICAgICIwLjEyODM1MSwgMC4yNjM0OTksIDAuMzk3OCwgMC40OTM3LCAwLjY0NzE4LCAwLjc4MTM1OSwgMC45NzMwNjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTY4MTYsIDAuMzIxMDg5LCAwLjU4NzMxNCwgMC43NzY0MDYsIDEuMDgwMjQsIDEuMzQ1NzQsIDEuNzI2MDEiLCBcCi0gICAgICAgICAgIjAuMDU2ODg1LCAwLjMyMDU3MywgMC41ODczMzMsIDAuNzc2NDIxLCAxLjA4MTg2LCAxLjM0NjEsIDEuNzI1NjEiLCBcCi0gICAgICAgICAgIjAuMDU3MDMzLCAwLjMyMTE3LCAwLjU4NzI5OSwgMC43NzYzMzYsIDEuMDgwMzEsIDEuMzQ3OSwgMS43MjU4MSIsIFwKLSAgICAgICAgICAiMC4wNTc0ODUsIDAuMzIxMDk0LCAwLjU4NzIwOSwgMC43NzYyNDksIDEuMDgxNjMsIDEuMzQ2MDksIDEuNzI2MDciLCBcCi0gICAgICAgICAgIjAuMDU4MjgxLCAwLjMyMTEyNCwgMC41ODcyNDcsIDAuNzc3MzU1LCAxLjA4MTg3LCAxLjM0ODIyLCAxLjcyNTgyIiwgXAotICAgICAgICAgICIwLjA1OTgxNiwgMC4zMjA1NTksIDAuNTg1ODUzLCAwLjc3NzMyMSwgMS4wODE2OSwgMS4zNDYsIDEuNzI4MzgiLCBcCi0gICAgICAgICAgIjAuMDYwODMsIDAuMzIxNDIyLCAwLjU4NzIzOSwgMC43NzczNjksIDEuMDgyMDYsIDEuMzQ4MDQsIDEuNzI4MzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTFOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2ODE2LCAwLjE0NTUwOCwgMC4yMTg3NDMsIDAuMjcxMDA0LCAwLjM1NDczMiwgMC40Mjc3OTYsIDAuNTMyNTUiLCBcCi0gICAgICAgICAgIjAuMDc3MDY1LCAwLjE1NDQzOSwgMC4yMjc3NDksIDAuMjgwMDI2LCAwLjM2MzcxNywgMC40MzY3OTcsIDAuNTQxNDg0IiwgXAotICAgICAgICAgICIwLjA4OTA0OCwgMC4xNjY0MDQsIDAuMjM5NjY3LCAwLjI5MTk0NiwgMC4zNzU1NjMsIDAuNDQ4NzgzLCAwLjU1MzUxMiIsIFwKLSAgICAgICAgICAiMC4xMDA2MjIsIDAuMTc3NzksIDAuMjUxMDQsIDAuMzAzMzA4LCAwLjM4NjkyLCAwLjQ2MDI2LCAwLjU2NDcyIiwgXAotICAgICAgICAgICIwLjExMTc1MSwgMC4xODkyNTcsIDAuMjYyNDk1LCAwLjMxNDc2OSwgMC4zOTg0NjgsIDAuNDcxNTQ0LCAwLjU3NjIxNCIsIFwKLSAgICAgICAgICAiMC4xMjc1NTUsIDAuMjA1NzUyLCAwLjI3ODk5MSwgMC4zMzEyNzcsIDAuNDE0ODkxLCAwLjQ4ODA1NywgMC41OTI4MzQiLCBcCi0gICAgICAgICAgIjAuMTM5OTg2LCAwLjIxODI2NywgMC4yOTE1MTEsIDAuMzQzNzg2LCAwLjQyNzQ2MiwgMC41MDA2MzksIDAuNjA1MTIxIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQyMzc2LCAwLjE4NjUzOSwgMC4zMzU3NjUsIDAuNDQzMDk2LCAwLjYxNDI4OCwgMC43NjY0NzQsIDAuOTgwMzM2IiwgXAotICAgICAgICAgICIwLjA0MjM5OCwgMC4xODY0MjksIDAuMzM1NzQzLCAwLjQ0MzE4MiwgMC42MTQyMDMsIDAuNzY2NDI0LCAwLjk4MDM0MSIsIFwKLSAgICAgICAgICAiMC4wNDIzODksIDAuMTg2NDksIDAuMzM1ODI2LCAwLjQ0MjQ0LCAwLjYxNDU5NSwgMC43NjQ4NCwgMC45ODAzNjIiLCBcCi0gICAgICAgICAgIjAuMDQyNzE5LCAwLjE4NjY1MiwgMC4zMzU0MzEsIDAuNDQzMDYyLCAwLjYxNTM2LCAwLjc2NDk2MywgMC45ODA4MDgiLCBcCi0gICAgICAgICAgIjAuMDQzODA1LCAwLjE4NjgwNiwgMC4zMzU1MzgsIDAuNDQzMTUxLCAwLjYxNDIwNSwgMC43NjYzMDEsIDAuOTgwMzU4IiwgXAotICAgICAgICAgICIwLjA0NjMzNiwgMC4xODc1MTgsIDAuMzM1Nzg0LCAwLjQ0MzM4MiwgMC42MTQ2MTUsIDAuNzY2MzgsIDAuOTgwMzU3IiwgXAotICAgICAgICAgICIwLjA0ODAyLCAwLjE4ODQ4NCwgMC4zMzY1MjYsIDAuNDQyOTU0LCAwLjYxNDM4OCwgMC43NjQ4NjQsIDAuOTgwNzI1Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU5NTUxLCAwLjE5NDQ4MiwgMC4zMjg4MjUsIDAuNDI0Njc0LCAwLjU3ODAzNywgMC43MTI0NDgsIDAuOTA0NDA4IiwgXAotICAgICAgICAgICIwLjA2OTQ5MywgMC4yMDQ0NjMsIDAuMzM4NzgyLCAwLjQzNDc1NywgMC41ODgyMzgsIDAuNzIyMzg3LCAwLjkxNDE3NyIsIFwKLSAgICAgICAgICAiMC4wODE1NTEsIDAuMjE2NTM0LCAwLjM1MDg3MiwgMC40NDY4LCAwLjYwMDE5MywgMC43MzQ1MDYsIDAuOTI2MzE4IiwgXAotICAgICAgICAgICIwLjA5MjU4OCwgMC4yMjc2NzEsIDAuMzYyMDAzLCAwLjQ1Nzk2OSwgMC42MTEzNTIsIDAuNzQ2MDQ1LCAwLjkzNzQzMyIsIFwKLSAgICAgICAgICAiMC4xMDE5ODgsIDAuMjM3MTk5LCAwLjM3MTU3MSwgMC40Njc3MTcsIDAuNjIwOTMyLCAwLjc1NTI0NCwgMC45NDcwMjEiLCBcCi0gICAgICAgICAgIjAuMTE1MjkxLCAwLjI1MDMwMSwgMC4zODQ3MTcsIDAuNDgwNjI5LCAwLjYzNDI1MywgMC43Njg1MjksIDAuOTYwMTA2IiwgXAotICAgICAgICAgICIwLjEyNTg2MSwgMC4yNjA0NSwgMC4zOTQ3OTQsIDAuNDkxMjQ5LCAwLjY0NDI2MiwgMC43Nzg4MTMsIDAuOTcwMTYyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU2ODAzLCAwLjMyMTA4OCwgMC41ODc1ODYsIDAuNzc3MzY4LCAxLjA4MjA2LCAxLjM1MjEyLCAxLjcyNDciLCBcCi0gICAgICAgICAgIjAuMDU2NzkxLCAwLjMyMTExNiwgMC41ODc0OSwgMC43Nzk4NzYsIDEuMDg1MjgsIDEuMzQ4MTksIDEuNzM0MzgiLCBcCi0gICAgICAgICAgIjAuMDU3MTIxLCAwLjMyMTEzNCwgMC41ODc0OSwgMC43Nzk3ODgsIDEuMDgxOCwgMS4zNDgyMywgMS43MzUiLCBcCi0gICAgICAgICAgIjAuMDU3NjgxLCAwLjMyMTIwNywgMC41ODc0ODksIDAuNzc3NjM5LCAxLjA4MjI3LCAxLjM0NTU5LCAxLjczNDEzIiwgXAotICAgICAgICAgICIwLjA1ODY0MSwgMC4zMjEyMzcsIDAuNTg5MTAxLCAwLjc3NTQ1NiwgMS4wODUzNCwgMS4zNTMyNywgMS43MzQ4OCIsIFwKLSAgICAgICAgICAiMC4wNTk5NjgsIDAuMzIxMjIxLCAwLjU4ODk2MywgMC43ODAxODIsIDEuMDc5NDEsIDEuMzQ1MDUsIDEuNzI4ODciLCBcCi0gICAgICAgICAgIjAuMDYxMTI3LCAwLjMyMTQ2MSwgMC41ODg5MDIsIDAuNzc1NTk4LCAxLjA4NTUzLCAxLjM0ODY5LCAxLjcyOTM0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxOTE5NywgMC4wOTE1OTMsIDAuMTYzOTA2LCAwLjIxNTQzNSwgMC4yOTgwNjMsIDAuMzcwMjM4LCAwLjQ3MzU2OCIsIFwKLSAgICAgICAgICAiMC4wMjkyMDcsIDAuMTAxMzc1LCAwLjE3MzY1MywgMC4yMjUyOTcsIDAuMzA3Nzk5LCAwLjM3OTkwOCwgMC40ODMwMzciLCBcCi0gICAgICAgICAgIjAuMDQwODEzLCAwLjExMzg5LCAwLjE4NjE3OCwgMC4yMzc3MjUsIDAuMzIwMTg5LCAwLjM5MjQzMiwgMC40OTQ2NiIsIFwKLSAgICAgICAgICAiMC4wNTAwNzQsIDAuMTI2NDgsIDAuMTk4NzA3LCAwLjI1MDM1NywgMC4zMzI4NzUsIDAuNDA0Mjk3LCAwLjUwNzQxMyIsIFwKLSAgICAgICAgICAiMC4wNTc1NzMsIDAuMTM5MzM1LCAwLjIxMTA4NywgMC4yNjI4NDksIDAuMzQ1MjU5LCAwLjQxNzM0MiwgMC41MjA3MDIiLCBcCi0gICAgICAgICAgIjAuMDY3ODQ3LCAwLjE1OTc5OCwgMC4yMzExMDIsIDAuMjgyNzA0LCAwLjM2NTUsIDAuNDM3NjI4LCAwLjU0MDc0OSIsIFwKLSAgICAgICAgICAiMC4wNzU0OTYsIDAuMTc3Nzk0LCAwLjI0OTQ3OSwgMC4zMDAyMzMsIDAuMzgyNjUxLCAwLjQ1NTI5MiwgMC41NTgxMDEiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzEyOTEsIDAuMTc5OTU5LCAwLjMyODYxNiwgMC40MzQ3ODIsIDAuNjA0ODksIDAuNzUzNTk3LCAwLjk2NjIwMyIsIFwKLSAgICAgICAgICAiMC4wMzQzNjMsIDAuMTc5OTY0LCAwLjMyODU2NiwgMC40MzQ4NzUsIDAuNjA0Njc2LCAwLjc1MzMyMSwgMC45NjU3MTQiLCBcCi0gICAgICAgICAgIjAuMDQyNzc1LCAwLjE4MDc2NCwgMC4zMjg1NjksIDAuNDM0OTE4LCAwLjYwNDY3NiwgMC43NTM2NjQsIDAuOTY1ODcyIiwgXAotICAgICAgICAgICIwLjA1MjA4LCAwLjE4NDMzOSwgMC4zMjg5MDMsIDAuNDM0NzY1LCAwLjYwNDc4MywgMC43NTM2MTksIDAuOTY1OTQiLCBcCi0gICAgICAgICAgIjAuMDYxMTExLCAwLjE4OTM3NiwgMC4zMzExMywgMC40MzUzMTQsIDAuNjA0Nzk0LCAwLjc1MzQ0LCAwLjk2NjE1NyIsIFwKLSAgICAgICAgICAiMC4wNzQwNywgMC4xOTk2NjQsIDAuMzM3NTExLCAwLjQzOTE3NiwgMC42MDU2MjEsIDAuNzUzNDM3LCAwLjk2NjE0MyIsIFwKLSAgICAgICAgICAiMC4wODQ1NDcsIDAuMjEwMzM1LCAwLjM0NDMwMiwgMC40NDQ3NDIsIDAuNjA4NjA5LCAwLjc1NDUxNSwgMC45NjU2NTkiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzUxMDMsIDAuMTY5NzYsIDAuMzA0MTMxLCAwLjQwMDE0LCAwLjU1Mzc5NywgMC42ODc1NTgsIDAuODc5NzE0IiwgXAotICAgICAgICAgICIwLjA0MzM1NSwgMC4xNzgzNTIsIDAuMzEyODE5LCAwLjQwODc0OSwgMC41NjIyMjYsIDAuNjk2Mzk1LCAwLjg4ODA4MSIsIFwKLSAgICAgICAgICAiMC4wNTM3MTcsIDAuMTg5MDkzLCAwLjMyMzYzMywgMC40MTk0NiwgMC41NzI4ODMsIDAuNzA3MDU0LCAwLjg5OTA4NCIsIFwKLSAgICAgICAgICAiMC4wNjM1MjEsIDAuMTk5OTA2LCAwLjMzNDQ3NiwgMC40MzAzNzcsIDAuNTgzOTMyLCAwLjcxODE4OSwgMC45MTAwNjIiLCBcCi0gICAgICAgICAgIjAuMDcyMjk4LCAwLjIxMDgyMywgMC4zNDUyNzksIDAuNDQxNTQ0LCAwLjU5NTA1MywgMC43MjkyMDMsIDAuOTIxMDQ3IiwgXAotICAgICAgICAgICIwLjA4NDUwMSwgMC4yMjgxNjMsIDAuMzYyOTE1LCAwLjQ1ODczNSwgMC42MTI2MzUsIDAuNzQ2Nzc1LCAwLjkzODkxOSIsIFwKLSAgICAgICAgICAiMC4wOTM2NjcsIDAuMjQzNjA0LCAwLjM3ODI0LCAwLjQ3NDIwNiwgMC42Mjc4OTksIDAuNzYyMTg3LCAwLjk1NDExNiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1NDk4MywgMC4zMjE4NywgMC41ODgyMjIsIDAuNzc1NjM0LCAxLjA4MTYsIDEuMzUyMzksIDEuNzI1NjUiLCBcCi0gICAgICAgICAgIjAuMDU1MzAzLCAwLjMyMTAzLCAwLjU4ODM2LCAwLjc3NzAzNCwgMS4wODEwOCwgMS4zNTIwNSwgMS43MzQ1NiIsIFwKLSAgICAgICAgICAiMC4wNTg3MDIsIDAuMzIxMDYyLCAwLjU4NTg1OCwgMC43ODAyNDEsIDEuMDg0ODcsIDEuMzQ4NTksIDEuNzMyNjgiLCBcCi0gICAgICAgICAgIjAuMDYzOTY5LCAwLjMyMTI4LCAwLjU4OTIyNCwgMC43Nzk2MDEsIDEuMDg1NzUsIDEuMzUyNTIsIDEuNzI4NTQiLCBcCi0gICAgICAgICAgIjAuMDcwNDU5LCAwLjMyMjY4NCwgMC41ODc0MjgsIDAuNzc1NjEyLCAxLjA4NTU0LCAxLjM1MzA0LCAxLjczNTE2IiwgXAotICAgICAgICAgICIwLjA4MTI5NCwgMC4zMjYyNDQsIDAuNTg2NTU5LCAwLjc3Njc1MSwgMS4wNzkyOSwgMS4zNTEwNywgMS43MjgyNSIsIFwKLSAgICAgICAgICAiMC4wOTA0OCwgMC4zMzExMDUsIDAuNTkxNjM1LCAwLjc3NzUwNywgMS4wODAzMSwgMS4zNTIxMSwgMS43MjkyNCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEwTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDU2NDYsIDAuMDA1ODE1LCAwLjAwNTgzOSwgMC4wMDU4MzksIDAuMDA1ODQ1LCAwLjAwNTg0OCwgMC4wMDU4NTEiLCBcCi0gICAgICAgICAgIjAuMDA1NTg5LCAwLjAwNTc2NCwgMC4wMDU3ODYsIDAuMDA1Nzk2LCAwLjAwNTc5OSwgMC4wMDU4MDQsIDAuMDA1ODA1IiwgXAotICAgICAgICAgICIwLjAwNTU1NSwgMC4wMDU3MzMsIDAuMDA1NzU5LCAwLjAwNTc2MSwgMC4wMDU3NzEsIDAuMDA1Nzc5LCAwLjAwNTc3OCIsIFwKLSAgICAgICAgICAiMC4wMDU1MjMsIDAuMDA1NzE3LCAwLjAwNTc0LCAwLjAwNTc1NCwgMC4wMDU3NjIsIDAuMDA1NzY2LCAwLjAwNTc2OSIsIFwKLSAgICAgICAgICAiMC4wMDU1MTYsIDAuMDA1NzEzLCAwLjAwNTczOSwgMC4wMDU3NTMsIDAuMDA1NzYxLCAwLjAwNTc2NCwgMC4wMDU3NjgiLCBcCi0gICAgICAgICAgIjAuMDA1NTUsIDAuMDA1NzA1LCAwLjAwNTczOCwgMC4wMDU3NTIsIDAuMDA1NzYsIDAuMDA1NzYzLCAwLjAwNTc2OSIsIFwKLSAgICAgICAgICAiMC4wMDU1MDksIDAuMDA1NzA4LCAwLjAwNTc0MiwgMC4wMDU3NTUsIDAuMDA1NzYzLCAwLjAwNTc3MSwgMC4wMDU3NzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNzI4OSwgMC4wMDc0NzYsIDAuMDA3NSwgMC4wMDc1MDgsIDAuMDA3NTE0LCAwLjAwNzUxOCwgMC4wMDc1MjEiLCBcCi0gICAgICAgICAgIjAuMDA3MjMxLCAwLjAwNzQzOCwgMC4wMDc0NjgsIDAuMDA3NDc4LCAwLjAwNzQ4NiwgMC4wMDc0OSwgMC4wMDc0OTQiLCBcCi0gICAgICAgICAgIjAuMDA3MTksIDAuMDA3NDEsIDAuMDA3NDQ5LCAwLjAwNzQ2MiwgMC4wMDc0NzQsIDAuMDA3NDgsIDAuMDA3NDg1IiwgXAotICAgICAgICAgICIwLjAwNzE2MSwgMC4wMDczOSwgMC4wMDc0MzgsIDAuMDA3NDU0LCAwLjAwNzQ2OSwgMC4wMDc0NzYsIDAuMDA3NDgzIiwgXAotICAgICAgICAgICIwLjAwNzE1MSwgMC4wMDczOCwgMC4wMDc0MzQsIDAuMDA3NDUyLCAwLjAwNzQ2OSwgMC4wMDc0NzgsIDAuMDA3NDg2IiwgXAotICAgICAgICAgICIwLjAwNzE3LCAwLjAwNzM4MywgMC4wMDc0NDQsIDAuMDA3NDY1LCAwLjAwNzQ4NSwgMC4wMDc0OTYsIDAuMDA3NTA2IiwgXAotICAgICAgICAgICIwLjAwNzE4OSwgMC4wMDczOTYsIDAuMDA3NDU5LCAwLjAwNzQ4MywgMC4wMDc1MDUsIDAuMDA3NTE3LCAwLjAwNzUyOCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkExTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDU2NTEsIDAuMDA1ODE0LCAwLjAwNTgzNiwgMC4wMDU4NDMsIDAuMDA1ODUsIDAuMDA1ODYyLCAwLjAwNTg1NyIsIFwKLSAgICAgICAgICAiMC4wMDU1NzksIDAuMDA1NzU5LCAwLjAwNTc4NCwgMC4wMDU3ODksIDAuMDA1Nzk5LCAwLjAwNTgwMiwgMC4wMDU4MDgiLCBcCi0gICAgICAgICAgIjAuMDA1NTQ4LCAwLjAwNTczMiwgMC4wMDU3NTUsIDAuMDA1NzczLCAwLjAwNTc3OSwgMC4wMDU3ODQsIDAuMDA1Nzg3IiwgXAotICAgICAgICAgICIwLjAwNTU1LCAwLjAwNTcyNywgMC4wMDU3NTksIDAuMDA1Nzc2LCAwLjAwNTc3OSwgMC4wMDU3ODgsIDAuMDA1NzkzIiwgXAotICAgICAgICAgICIwLjAwNTU4NywgMC4wMDU3MzgsIDAuMDA1NzcyLCAwLjAwNTc4NiwgMC4wMDU3OTQsIDAuMDA1Nzk0LCAwLjAwNTgwMyIsIFwKLSAgICAgICAgICAiMC4wMDU2MSwgMC4wMDU3NTIsIDAuMDA1Nzk1LCAwLjAwNTgwOSwgMC4wMDU4MjIsIDAuMDA1ODI4LCAwLjAwNTgzNCIsIFwKLSAgICAgICAgICAiMC4wMDU1OTUsIDAuMDA1Nzc4LCAwLjAwNTgxOSwgMC4wMDU4MzQsIDAuMDA1ODQ5LCAwLjAwNTg1NSwgMC4wMDU4NjEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjg5NSwgMC4wMDcwNzcsIDAuMDA3MSwgMC4wMDcxMDcsIDAuMDA3MTEzLCAwLjAwNzExNiwgMC4wMDcxMTkiLCBcCi0gICAgICAgICAgIjAuMDA2ODMxLCAwLjAwNzAzMiwgMC4wMDcwNiwgMC4wMDcwNjksIDAuMDA3MDc3LCAwLjAwNzA4MSwgMC4wMDcwODQiLCBcCi0gICAgICAgICAgIjAuMDA2Nzc5LCAwLjAwNjk5NywgMC4wMDcwMzUsIDAuMDA3MDQ4LCAwLjAwNzA1OCwgMC4wMDcwNjQsIDAuMDA3MDY5IiwgXAotICAgICAgICAgICIwLjAwNjc0MiwgMC4wMDY5NzIsIDAuMDA3MDE5LCAwLjAwNzAzNCwgMC4wMDcwNDgsIDAuMDA3MDU1LCAwLjAwNzA2MiIsIFwKLSAgICAgICAgICAiMC4wMDY3NTgsIDAuMDA2OTY2LCAwLjAwNzAxNiwgMC4wMDcwMzMsIDAuMDA3MDQ4LCAwLjAwNzA1NiwgMC4wMDcwNjQiLCBcCi0gICAgICAgICAgIjAuMDA2NzUyLCAwLjAwNjk2NiwgMC4wMDcwMjQsIDAuMDA3MDQ0LCAwLjAwNzA2MywgMC4wMDcwNzQsIDAuMDA3MDgzIiwgXAotICAgICAgICAgICIwLjAwNjc1MSwgMC4wMDY5NTQsIDAuMDA3MDE0LCAwLjAwNzA0NCwgMC4wMDcwNTgsIDAuMDA3MDc0LCAwLjAwNzA3OSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNTkzNywgMC4wMDU5NTcsIDAuMDA1OTU5LCAwLjAwNTk1OSwgMC4wMDU5NiwgMC4wMDU5NiwgMC4wMDU5NiIsIFwKLSAgICAgICAgICAiMC4wMDU4MywgMC4wMDU5MTQsIDAuMDA1OTI3LCAwLjAwNTkzMSwgMC4wMDU5NCwgMC4wMDU5MzYsIDAuMDA1OTM3IiwgXAotICAgICAgICAgICIwLjAwNTgyLCAwLjAwNTkwMSwgMC4wMDU5MTksIDAuMDA1OTI1LCAwLjAwNTkyOSwgMC4wMDU5MzEsIDAuMDA1OTI4IiwgXAotICAgICAgICAgICIwLjAwNTgyMiwgMC4wMDU4ODUsIDAuMDA1OTA4LCAwLjAwNTkxNywgMC4wMDU5MjIsIDAuMDA1OTIyLCAwLjAwNTkyNiIsIFwKLSAgICAgICAgICAiMC4wMDU4ODksIDAuMDA1OSwgMC4wMDU5MTIsIDAuMDA1OTIxLCAwLjAwNTkyNCwgMC4wMDU5MjcsIDAuMDA1OTMiLCBcCi0gICAgICAgICAgIjAuMDA1OTk1LCAwLjAwNTkxOSwgMC4wMDU5MTcsIDAuMDA1OTIxLCAwLjAwNTkyOSwgMC4wMDU5MjgsIDAuMDA1OTMiLCBcCi0gICAgICAgICAgIjAuMDA2MTIsIDAuMDA1OTUsIDAuMDA1OTM4LCAwLjAwNTkzLCAwLjAwNTkzMSwgMC4wMDU5MzgsIDAuMDA1OTI5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDIxNDYsIDAuMDAyMjExLCAwLjAwMjIxNywgMC4wMDIyMTksIDAuMDAyMjIxLCAwLjAwMjIyMSwgMC4wMDIyMjIiLCBcCi0gICAgICAgICAgIjAuMDAxOTYsIDAuMDAyMTU4LCAwLjAwMjE4NywgMC4wMDIxOTYsIDAuMDAyMjA0LCAwLjAwMjIwOSwgMC4wMDIyMTMiLCBcCi0gICAgICAgICAgIjAuMDAxODY1LCAwLjAwMjEwMiwgMC4wMDIxNTIsIDAuMDAyMTY5LCAwLjAwMjE4NCwgMC4wMDIxOTIsIDAuMDAyMTk5IiwgXAotICAgICAgICAgICIwLjAwMTgyOCwgMC4wMDIwNTgsIDAuMDAyMTIyLCAwLjAwMjE0NCwgMC4wMDIxNjUsIDAuMDAyMTc2LCAwLjAwMjE4NyIsIFwKLSAgICAgICAgICAiMC4wMDE4MTcsIDAuMDAyMDI2LCAwLjAwMjA5OCwgMC4wMDIxMjQsIDAuMDAyMTQ5LCAwLjAwMjE2MywgMC4wMDIxNzYiLCBcCi0gICAgICAgICAgIjAuMDAxODMyLCAwLjAwMTk4NywgMC4wMDIwNjQsIDAuMDAyMDk4LCAwLjAwMjEyNSwgMC4wMDIxNDIsIDAuMDAyMTU5IiwgXAotICAgICAgICAgICIwLjAwMTg2NCwgMC4wMDE5NywgMC4wMDIwNDQsIDAuMDAyMDc2LCAwLjAwMjEwOSwgMC4wMDIxMjgsIDAuMDAyMTQ3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBPQUkyQkIyWDQgKgotICogLS0tLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChPQUkyQkIyWDQpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC42NTI1Mjc7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEwTikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwODk5MjU3OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDg5ODg3NTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA4OTkyNTc7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxNjE2LCAwLjAwMTU3MiwgMC4wMDE1NjYsIDAuMDAxNTYzLCAwLjAwMTU3NSwgMC4wMDE2LCAwLjAwMTYyOSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNDAyMiwgMC4wMDM5OTEsIDAuMDAzOTgyLCAwLjAwMzk4NCwgMC4wMDM5OTQsIDAuMDA0MDI0LCAwLjAwNDA1NyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQTFOKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA5MjQwOTM7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwOTIzNzg4OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDkyNDA5MzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDE2MTgsIDAuMDAxNTczLCAwLjAwMTU2OCwgMC4wMDE1NjIsIDAuMDAxNTc1LCAwLjAwMTYsIDAuMDAxNjMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDQwNTIsIDAuMDA0MDIsIDAuMDA0MDEsIDAuMDA0MDEzLCAwLjAwNDAyMiwgMC4wMDQwNTQsIDAuMDA0MDgzIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAzMjgyMjM7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAzMjU5Mzg7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAzMjgyMjM7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxNDc5LCAwLjAwMTU1NiwgMC4wMDE1NjgsIDAuMDAxNTc4LCAwLjAwMTU4MywgMC4wMDE1ODksIDAuMDAxNTk0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxNzIsIDAuMDAxNzIxLCAwLjAwMTcyMSwgMC4wMDE3MjIsIDAuMDAxNzIyLCAwLjAwMTcyMiwgMC4wMDE3MjIiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIxKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDMzMDkxNTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDMzMDg0NDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDMzMDkxNTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA0NDksIDAuMDAwNDQ5LCAwLjAwMDQ0OSwgMC4wMDA0NDksIDAuMDAwNDQ5LCAwLjAwMDQ0OSwgMC4wMDA0NDkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDE0OTksIDAuMDAxNDk5LCAwLjAwMTUsIDAuMDAxNDk5LCAwLjAwMTQ5OSwgMC4wMDE0OTksIDAuMDAxNDk4Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuNTQ3MjI5OwotICAgIGZ1bmN0aW9uIDogIighKChCMCtCMSkgKCEoQTBOIEExTikpKSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEwTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzUzOTQsIDAuMjE0MTE1LCAwLjM1MTU3NSwgMC40NDk2NTEsIDAuNjA3MTQyLCAwLjc0NDAwOCwgMC45Mzk5NjEiLCBcCi0gICAgICAgICAgIjAuMDg1NTU3LCAwLjIyNDMsIDAuMzYxOTMyLCAwLjQ2MDE0NSwgMC42MTcxNzUsIDAuNzU0NDQ2LCAwLjk1MDQ1MyIsIFwKLSAgICAgICAgICAiMC4wOTgyNjksIDAuMjM3MDIxLCAwLjM3NDY5NSwgMC40NzI1NjgsIDAuNjI5OTQ1LCAwLjc2Njk5LCAwLjk2MjgxOCIsIFwKLSAgICAgICAgICAiMC4xMDk2OTUsIDAuMjQ4NTIzLCAwLjM4NjI3OSwgMC40ODQzMywgMC42NDEzMTYsIDAuNzc4Njg0LCAwLjk3NDk2MiIsIFwKLSAgICAgICAgICAiMC4xMTk3NjcsIDAuMjU4NjE4LCAwLjM5NjIxOCwgMC40OTQ1MzksIDAuNjUxNDYzLCAwLjc4ODc5MywgMC45ODUzNzMiLCBcCi0gICAgICAgICAgIjAuMTMzNzExLCAwLjI3MjYzNCwgMC40MTAyNTYsIDAuNTA4NTU3LCAwLjY2NTQ4MiwgMC44MDI4OTEsIDAuOTk5MTEiLCBcCi0gICAgICAgICAgIjAuMTQ0NTMyLCAwLjI4MzUzNCwgMC40MjExNTEsIDAuNTE5MzI5LCAwLjY3NjYyMywgMC44MTM3MSwgMS4wMDk5OCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4NDQwNiwgMC4zNjIzMzMsIDAuNjQxNTY0LCAwLjg0MTQ2MywgMS4xNjAxNSwgMS40Mzk0NSwgMS44MzgyOSIsIFwKLSAgICAgICAgICAiMC4wODQ0MDcsIDAuMzYyMzU3LCAwLjY0MTc1OCwgMC44NDEzMjUsIDEuMTYwMjksIDEuNDM5MzgsIDEuODM4NzIiLCBcCi0gICAgICAgICAgIjAuMDg0NDM3LCAwLjM2MjMyOSwgMC42NDE5MDksIDAuODQxMTg4LCAxLjE2MDI3LCAxLjQzOTczLCAxLjgzODE5IiwgXAotICAgICAgICAgICIwLjA4NDYwMywgMC4zNjI0MDgsIDAuNjQxNzI3LCAwLjg0MTEwNiwgMS4xNjA0MSwgMS40MzkzMiwgMS44Mzg0MyIsIFwKLSAgICAgICAgICAiMC4wODQ5MzgsIDAuMzYyNDA0LCAwLjY0MTc1MSwgMC44NDExNTgsIDEuMTYwMTIsIDEuNDM5NDEsIDEuODM4MzciLCBcCi0gICAgICAgICAgIjAuMDg1NTY5LCAwLjM2MjQ3LCAwLjY0MTc2LCAwLjg0MTIwNywgMS4xNjAxNiwgMS40MzkzNSwgMS44Mzg0MyIsIFwKLSAgICAgICAgICAiMC4wODYyMDMsIDAuMzYyNTE2LCAwLjY0MTc3MywgMC44NDEyMzQsIDEuMTYwMjQsIDEuNDM5NzcsIDEuODM4NjciKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzk4MzUsIDAuMjE3OTc5LCAwLjM1NTI3NCwgMC40NTMyLCAwLjYwOTgzMywgMC43NDgzOTMsIDAuOTQ2MDgyIiwgXAotICAgICAgICAgICIwLjA4OTcxNSwgMC4yMjc4NzIsIDAuMzY1MjQ4LCAwLjQ2MzE4OCwgMC42MTk4MDYsIDAuNzU4NzA1LCAwLjk1NjAxMyIsIFwKLSAgICAgICAgICAiMC4xMDIwNjgsIDAuMjQwMjk5LCAwLjM3NzU5NywgMC40NzU1MzcsIDAuNjMyMjUzLCAwLjc3MDY3MSwgMC45Njg4MjYiLCBcCi0gICAgICAgICAgIjAuMTEzMDc3LCAwLjI1MTMyNiwgMC4zODg2MTUsIDAuNDg2NjA3LCAwLjY0MzI5NywgMC43ODE3MDMsIDAuOTc5MzQ5IiwgXAotICAgICAgICAgICIwLjEyMjYwMiwgMC4yNjA4NzcsIDAuMzk4MjgzLCAwLjQ5NjEyNywgMC42NTI4NjgsIDAuNzkxNzQ0LCAwLjk4OTA0OCIsIFwKLSAgICAgICAgICAiMC4xMzU1OTUsIDAuMjczOSwgMC40MTEyNzcsIDAuNTA5MTUsIDAuNjY1OTEzLCAwLjgwNDMwOSwgMS4wMDIxNCIsIFwKLSAgICAgICAgICAiMC4xNDYwODIsIDAuMjg0NDEzLCAwLjQyMTc1MiwgMC41MTk3ODgsIDAuNjc2MzQ0LCAwLjgxNDg0OSwgMS4wMTI1OSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3MTE3NiwgMC4zNDE1NzIsIDAuNjEzNTU5LCAwLjgwOTI3LCAxLjEyMjM5LCAxLjM5NjY5LCAxLjc4ODEiLCBcCi0gICAgICAgICAgIjAuMDcxMTY5LCAwLjM0MTc1NiwgMC42MTM1MDEsIDAuODA5MTkxLCAxLjEyMjIxLCAxLjM5Njk3LCAxLjc4ODA3IiwgXAotICAgICAgICAgICIwLjA3MTIzNywgMC4zNDE2MjksIDAuNjEzNjE5LCAwLjgwOTI0OSwgMS4xMjI4NywgMS4zOTcxOCwgMS43ODkwNyIsIFwKLSAgICAgICAgICAiMC4wNzEzNTEsIDAuMzQxNzYzLCAwLjYxMzc5MiwgMC44MDkyMTgsIDEuMTIyOSwgMS4zOTcxNSwgMS43ODgyNyIsIFwKLSAgICAgICAgICAiMC4wNzE1MzEsIDAuMzQxNTU3LCAwLjYxMzY5NiwgMC44MDkyMjgsIDEuMTIyMzUsIDEuMzk3MDgsIDEuNzg4MDkiLCBcCi0gICAgICAgICAgIjAuMDcxODg5LCAwLjM0MTY3MiwgMC42MTM0NzgsIDAuODA5NTI4LCAxLjEyMjM3LCAxLjM5NzE2LCAxLjc4ODE4IiwgXAotICAgICAgICAgICIwLjA3MjQyMSwgMC4zNDE3MywgMC42MTM1NjksIDAuODA5MjI1LCAxLjEyMjc2LCAxLjM5NjQsIDEuNzg4MDUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTFOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2OTYxLCAwLjIwODI1NSwgMC4zNDU4MTIsIDAuNDQ0MDU1LCAwLjYwMTA2NiwgMC43MzgzNzYsIDAuOTM0NzQ3IiwgXAotICAgICAgICAgICIwLjA3OTgwOSwgMC4yMTg1NTMsIDAuMzU2MTIzLCAwLjQ1NDQ3NCwgMC42MTEwMDEsIDAuNzQ4MjU5LCAwLjk0NTA5NiIsIFwKLSAgICAgICAgICAiMC4wOTIzMjUsIDAuMjMxMTMzLCAwLjM2ODg3LCAwLjQ2NzAxOSwgMC42MjM5NTksIDAuNzYxNzkxLCAwLjk1NzQyMSIsIFwKLSAgICAgICAgICAiMC4xMDM2OTQsIDAuMjQyNDc4LCAwLjM4MDE0OSwgMC40NzgyNjksIDAuNjM1MjMyLCAwLjc3MjkxNywgMC45NjkwMDUiLCBcCi0gICAgICAgICAgIjAuMTEzODgzLCAwLjI1MjY3MSwgMC4zOTAzMjEsIDAuNDg4NTEyLCAwLjY0NTQxOCwgMC43ODI4MTgsIDAuOTc5NTc0IiwgXAotICAgICAgICAgICIwLjEyNzc4NSwgMC4yNjY0MDYsIDAuNDAzOTU0LCAwLjUwMjI3OCwgMC42NTkxNjgsIDAuNzk2NTIxLCAwLjk5MjYyMiIsIFwKLSAgICAgICAgICAiMC4xMzg1MzEsIDAuMjc3MDY4LCAwLjQxNDYzNSwgMC41MTI4NTQsIDAuNjY5OTc3LCAwLjgwNzE4OSwgMS4wMDMzOSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4NDI5NiwgMC4zNjIyNzcsIDAuNjQxNjk2LCAwLjg0MTI5OSwgMS4xNjA0LCAxLjQzOTM0LCAxLjgzODI3IiwgXAotICAgICAgICAgICIwLjA4NDI5LCAwLjM2MjQ1MywgMC42NDE2MTgsIDAuODQxMjU4LCAxLjE2MDQsIDEuNDM5MywgMS44Mzg2MyIsIFwKLSAgICAgICAgICAiMC4wODQ0MjYsIDAuMzYyMzY3LCAwLjY0MTYwNywgMC44NDExNDIsIDEuMTYwNDYsIDEuNDM5MzYsIDEuODM4NjMiLCBcCi0gICAgICAgICAgIjAuMDg0ODU5LCAwLjM2MjM2NSwgMC42NDE3MzcsIDAuODQxMTI3LCAxLjE2MDUzLCAxLjQzOTMsIDEuODM4NDIiLCBcCi0gICAgICAgICAgIjAuMDg1NDIsIDAuMzYyMzksIDAuNjQxNzM4LCAwLjg0MTI1LCAxLjE2MDUzLCAxLjQzOTQyLCAxLjgzODQ3IiwgXAotICAgICAgICAgICIwLjA4NjY1NiwgMC4zNjI0MzksIDAuNjQxNjI5LCAwLjg0MTIxMiwgMS4xNjAxNywgMS40Mzk0MiwgMS44MzgxNiIsIFwKLSAgICAgICAgICAiMC4wODc5MjgsIDAuMzYyNTI1LCAwLjY0MTgxMiwgMC44NDEyNDEsIDEuMTYwMSwgMS40Mzk0MywgMS44Mzg2NiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3NTU0LCAwLjIxNTA5NywgMC4zNTM5OSwgMC40NTI5OTUsIDAuNjExMzcxLCAwLjc1MDEzNiwgMC45NDc4NDEiLCBcCi0gICAgICAgICAgIjAuMDg1NDEzLCAwLjIyNDk5OCwgMC4zNjM5MiwgMC40NjI5MDQsIDAuNjIxMjc4LCAwLjc2MDMyLCAwLjk1NzgyNSIsIFwKLSAgICAgICAgICAiMC4wOTc3MTIsIDAuMjM3NDA4LCAwLjM3NjE4NiwgMC40NzUyMzgsIDAuNjMzNjMxLCAwLjc3MjU2MywgMC45NzAyMzEiLCBcCi0gICAgICAgICAgIjAuMTA4Njg2LCAwLjI0ODQ2NywgMC4zODczMTQsIDAuNDg2MzUyLCAwLjY0NDcxMiwgMC43ODM2NjgsIDAuOTgxMzE5IiwgXAotICAgICAgICAgICIwLjExODE5NywgMC4yNTgwMDYsIDAuMzk2ODI4LCAwLjQ5NjAyMywgMC42NTQzMDIsIDAuNzkzMjQ4LCAwLjk5MDkzNCIsIFwKLSAgICAgICAgICAiMC4xMzExNzQsIDAuMjcxMDM4LCAwLjQwOTk2MSwgMC41MDg5ODYsIDAuNjY3NDgxLCAwLjgwNjA1MywgMS4wMDQwOSIsIFwKLSAgICAgICAgICAiMC4xNDE2NDIsIDAuMjgxNTcsIDAuNDIwNDgyLCAwLjUxOTQ1MiwgMC42NzgyMjQsIDAuODE2NjA1LCAxLjAxNDYzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY2NjEyLCAwLjM0MDM4OCwgMC42MTQ1MzIsIDAuODEwNDg1LCAxLjEyNzYzLCAxLjQwMDI5LCAxLjc5ODY5IiwgXAotICAgICAgICAgICIwLjA2NjYxMiwgMC4zNDAzOTEsIDAuNjE0NTIzLCAwLjgxMTI5NCwgMS4xMzE0NywgMS40MDA0OSwgMS43OTg4MiIsIFwKLSAgICAgICAgICAiMC4wNjY2NSwgMC4zNDAyMzgsIDAuNjE0NTQ2LCAwLjgxMDQ2LCAxLjEzMDY2LCAxLjQwMTMzLCAxLjgwNDUyIiwgXAotICAgICAgICAgICIwLjA2NjcwNCwgMC4zNDAyNTMsIDAuNjE0NTA4LCAwLjgxMDQyNiwgMS4xMzAzOCwgMS40MDEzNSwgMS44MDQ0NSIsIFwKLSAgICAgICAgICAiMC4wNjY5ODksIDAuMzQwMiwgMC42MTQ1MDYsIDAuODExMDQ0LCAxLjEzMDgsIDEuNDAxNDksIDEuODA0NTUiLCBcCi0gICAgICAgICAgIjAuMDY3MzU0LCAwLjM0MDQ0NywgMC42MTQ1MjMsIDAuODExMjkxLCAxLjEzMTMsIDEuNDA4OTUsIDEuODA1NzUiLCBcCi0gICAgICAgICAgIjAuMDY3Nzk2LCAwLjM0MDUwOSwgMC42MTUyOSwgMC44MTEyOTcsIDEuMTIzOTYsIDEuNDA4OTksIDEuODA1NzMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjAiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM2NjQ1LCAwLjE3NDMyOCwgMC4zMTE3MDUsIDAuNDA5OTEyLCAwLjU2Njk4OSwgMC43MDQ0OSwgMC45MDA4NDkiLCBcCi0gICAgICAgICAgIjAuMDQ1MzEsIDAuMTgzMjAyLCAwLjMyMDkzNywgMC40MTg4OTcsIDAuNTc1OTU5LCAwLjcxMzQ3MSwgMC45MDk3MTkiLCBcCi0gICAgICAgICAgIjAuMDU1MjI4LCAwLjE5MzM4LCAwLjMzMDg4NywgMC40MjkxMTEsIDAuNTg2MTMxLCAwLjcyMzc5NiwgMC45MTk5NTgiLCBcCi0gICAgICAgICAgIjAuMDY0NDk3LCAwLjIwMzM3OCwgMC4zNDA5OTUsIDAuNDM5MjU0LCAwLjU5NjQ2OSwgMC43MzM4MzcsIDAuOTMwMjM3IiwgXAotICAgICAgICAgICIwLjA3MjYxLCAwLjIxMzI2NywgMC4zNTA5ODcsIDAuNDQ5NTQyLCAwLjYwNjM0NywgMC43NDM4MTgsIDAuOTQwMjI2IiwgXAotICAgICAgICAgICIwLjA4MzkyMSwgMC4yMjkyMTMsIDAuMzY3MDg4LCAwLjQ2NDg4NiwgMC42MjI0ODksIDAuNzU5OTYxLCAwLjk1NjM3NSIsIFwKLSAgICAgICAgICAiMC4wOTI1NzgsIDAuMjQzNTE4LCAwLjM4MTIxNiwgMC40NzkzMzYsIDAuNjM2NTY2LCAwLjc3NDIxLCAwLjk3MDYxMiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3MDk4OSwgMC4zNDk2MiwgMC42Mjg3NjEsIDAuODI4MjAyLCAxLjE0NzQ5LCAxLjQyNjcxLCAxLjgyNjA1IiwgXAotICAgICAgICAgICIwLjA3MTM1OSwgMC4zNDk1MjgsIDAuNjI4OTIzLCAwLjgyODI0NywgMS4xNDc0LCAxLjQyNjc5LCAxLjgyNTgyIiwgXAotICAgICAgICAgICIwLjA3NDQxMywgMC4zNDk1OTIsIDAuNjI4Nzk2LCAwLjgyODIxLCAxLjE0NzQ1LCAxLjQyNjgzLCAxLjgyNTkyIiwgXAotICAgICAgICAgICIwLjA3OTIxOCwgMC4zNDk4MzcsIDAuNjI4NzI4LCAwLjgyODE3OSwgMS4xNDc0NiwgMS40MjY4NSwgMS44MjU4OSIsIFwKLSAgICAgICAgICAiMC4wODQ5MDUsIDAuMzUxMDg5LCAwLjYyODcyMiwgMC44MjgzOTUsIDEuMTQ3NCwgMS40MjY4OCwgMS44MjU3NiIsIFwKLSAgICAgICAgICAiMC4wOTUxODEsIDAuMzU0ODU0LCAwLjYyOTYwNiwgMC44MjgyNDYsIDEuMTQ3NDUsIDEuNDI2ODIsIDEuODI1NDkiLCBcCi0gICAgICAgICAgIjAuMTA0MDU5LCAwLjM2MDEwNCwgMC42MzE3NjgsIDAuODI4OTYzLCAxLjE0NzI1LCAxLjQyNjcyLCAxLjgyNTgzIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQyMzksIDAuMTgwNDg4LCAwLjMxNzY5MywgMC40MTU2NDIsIDAuNTczMzIzLCAwLjcxMTY0NCwgMC45MTAwNTUiLCBcCi0gICAgICAgICAgIjAuMDUxNTE5LCAwLjE4OTc2NSwgMC4zMjcsIDAuNDI1MDg1LCAwLjU4MjU2NywgMC43MjEsIDAuOTE5MTAyIiwgXAotICAgICAgICAgICIwLjA2MzI0NCwgMC4yMDEzNDMsIDAuMzM4NjcyLCAwLjQzNjUzMywgMC41OTM5ODMsIDAuNzMyNDU3LCAwLjkzMDUyNyIsIFwKLSAgICAgICAgICAiMC4wNzUzNjksIDAuMjEzMTExLCAwLjM1MDU2MywgMC40NDg1NjMsIDAuNjA2MTMyLCAwLjc0NDk2OCwgMC45NDI1ODEiLCBcCi0gICAgICAgICAgIjAuMDg2NjcxLCAwLjIyNDg1NywgMC4zNjIxMjUsIDAuNDYwMDY2LCAwLjYxNzY1OSwgMC43NTYwMTcsIDAuOTUzODUyIiwgXAotICAgICAgICAgICIwLjEwMjExNCwgMC4yNDM0NzgsIDAuMzgwNjI2LCAwLjQ3ODY3NywgMC42MzYxMTYsIDAuNzc0OTYyLCAwLjk3Mjc4IiwgXAotICAgICAgICAgICIwLjExMzg2NiwgMC4yNjAwNDIsIDAuMzk3MTY3LCAwLjQ5NTAxNywgMC42NTI3MTMsIDAuNzkxMjMsIDAuOTg5MzQ4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDcwMzM1LCAwLjM0MTUzOCwgMC42MTQ1MTYsIDAuODEwNjI2LCAxLjEyNDA5LCAxLjM5ODc2LCAxLjc5MDg0IiwgXAotICAgICAgICAgICIwLjA3MDM1NiwgMC4zNDE1MzYsIDAuNjE0NTQyLCAwLjgxMDQzOCwgMS4xMjM4OCwgMS4zOTg0NiwgMS43OTA0MiIsIFwKLSAgICAgICAgICAiMC4wNzQ1OTQsIDAuMzQxNTE3LCAwLjYxNDU2NywgMC44MTA0NjEsIDEuMTIzOTUsIDEuMzk4MjcsIDEuNzkwMjEiLCBcCi0gICAgICAgICAgIjAuMDgxMDE4LCAwLjM0MTQ4MiwgMC42MTQ1MDEsIDAuODEwNzcxLCAxLjEyMzg1LCAxLjM5ODg0LCAxLjc5MDMxIiwgXAotICAgICAgICAgICIwLjA4OTQyNiwgMC4zNDMwNjIsIDAuNjE0NDYxLCAwLjgxMDQxOSwgMS4xMjM4OSwgMS4zOTg1NiwgMS43OTAzNiIsIFwKLSAgICAgICAgICAiMC4xMDMzNjEsIDAuMzQ4NjcxLCAwLjYxNTA2MiwgMC44MTA0MDYsIDEuMTIzOTQsIDEuMzk4MzUsIDEuNzkwMTYiLCBcCi0gICAgICAgICAgIjAuMTE1Mjk0LCAwLjM1NTMxMiwgMC42MTc3MjcsIDAuODEwNzg3LCAxLjEyMzg2LCAxLjM5ODI0LCAxLjc5MDIzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIxIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzMzEwMiwgMC4xNzA3NzQsIDAuMzA4Mjc1LCAwLjQwNjM3MSwgMC41NjM1MDIsIDAuNzAwOTA1LCAwLjg5NzQ0NCIsIFwKLSAgICAgICAgICAiMC4wNDIwNTUsIDAuMTgwMTI0LCAwLjMxNzUzNiwgMC40MTU3MzEsIDAuNTcyODA0LCAwLjcxMDE4NSwgMC45MDY2ODgiLCBcCi0gICAgICAgICAgIjAuMDUzNTIxLCAwLjE5MTU1NSwgMC4zMjkwMzYsIDAuNDI3Mzk0LCAwLjU4NDMzNCwgMC43MjE4MjksIDAuOTE4MTU1IiwgXAotICAgICAgICAgICIwLjA2NDM4LCAwLjIwMjk0OSwgMC4zNDA0ODUsIDAuNDM4NjczLCAwLjU5NTgxOCwgMC43MzMyNzIsIDAuOTI5ODg1IiwgXAotICAgICAgICAgICIwLjA3MzQ5MiwgMC4yMTQ0MDQsIDAuMzUxODk5LCAwLjQ1MDE3MiwgMC42MDczMDYsIDAuNzQ0NzYyLCAwLjk0MTAxMSIsIFwKLSAgICAgICAgICAiMC4wODU1NCwgMC4yMzI2OCwgMC4zNzAxODIsIDAuNDY4NDIsIDAuNjI1NTQ0LCAwLjc2Mjk1NiwgMC45NTkzMzQiLCBcCi0gICAgICAgICAgIjAuMDk0ODEyLCAwLjI0OTAzOCwgMC4zODY2MzksIDAuNDg0ODExLCAwLjY0MTgxMywgMC43NzkzMDgsIDAuOTc1NzE0Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDcwOTc5LCAwLjM0OTUzNywgMC42Mjg2NzksIDAuODI4MTk5LCAxLjE0NzQ5LCAxLjQyNjgsIDEuODI1ODgiLCBcCi0gICAgICAgICAgIjAuMDcyMDY5LCAwLjM0OTU4NSwgMC42Mjg3NjYsIDAuODI4MjIsIDEuMTQ3MjMsIDEuNDI2NjQsIDEuODI1OTUiLCBcCi0gICAgICAgICAgIjAuMDc4MDc1LCAwLjM0OTU3NywgMC42Mjg2MjUsIDAuODI4MTQsIDEuMTQ3NDEsIDEuNDI2NywgMS44MjU2NiIsIFwKLSAgICAgICAgICAiMC4wODYyNjEsIDAuMzQ5OTMyLCAwLjYyODc1MSwgMC44MjgwOTIsIDEuMTQ3NDksIDEuNDI2ODQsIDEuODI1OSIsIFwKLSAgICAgICAgICAiMC4wOTUyNTksIDAuMzUxOTY3LCAwLjYyODYxNywgMC44MjgxNjgsIDEuMTQ3NDcsIDEuNDI2NywgMS44MjU3OCIsIFwKLSAgICAgICAgICAiMC4xMTA2MDgsIDAuMzU4MjMxLCAwLjYyOTU0NSwgMC44MjgyMjIsIDEuMTQ3NDcsIDEuNDI2ODIsIDEuODI1OSIsIFwKLSAgICAgICAgICAiMC4xMjIyNDEsIDAuMzY1MzU3LCAwLjYzMjU0MSwgMC44Mjg5MTIsIDEuMTQ3MzUsIDEuNDI2NjEsIDEuODI1ODkiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzgyMiwgMC4xNzc0NTksIDAuMzE1OTgzLCAwLjQxNDk2LCAwLjU3MzQ2LCAwLjcxMjEsIDAuOTA5NDQ0IiwgXAotICAgICAgICAgICIwLjA0NzQyNCwgMC4xODcwMDcsIDAuMzI1NjU1LCAwLjQyNDQ0NCwgMC41ODI2NjUsIDAuNzIxNjksIDAuOTE5MTQ5IiwgXAotICAgICAgICAgICIwLjA1OTA4LCAwLjE5ODc1MSwgMC4zMzc0MTQsIDAuNDM2MzMyLCAwLjU5NDc5MywgMC43MzMxMDEsIDAuOTMwOTE5IiwgXAotICAgICAgICAgICIwLjA3MTAwMiwgMC4yMTAzMTYsIDAuMzQ5MDU4LCAwLjQ0ODAwNywgMC42MDYyOTksIDAuNzQ0NzEsIDAuOTQyNDgyIiwgXAotICAgICAgICAgICIwLjA4MTc2NCwgMC4yMjIwNDIsIDAuMzYwNzgzLCAwLjQ1OTc5MiwgMC42MTgxMDksIDAuNzU2NTM3LCAwLjk1NDI3MSIsIFwKLSAgICAgICAgICAiMC4wOTU5NjUsIDAuMjQwODE5LCAwLjM3OTgxNiwgMC40Nzg3NzMsIDAuNjM2NzY2LCAwLjc3NTU4NSwgMC45NzM1MTQiLCBcCi0gICAgICAgICAgIjAuMTA3MDQ0LCAwLjI1NzU2MywgMC4zOTYxNTcsIDAuNDk1MTY5LCAwLjY1MzQ0MywgMC43OTIwODEsIDAuOTg5Nzk3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY1NDM0LCAwLjMzOTU0NywgMC42MTUzMiwgMC44MTExMDMsIDEuMTIzOSwgMS40MDA0LCAxLjc5MzY5IiwgXAotICAgICAgICAgICIwLjA2NTYwMiwgMC4zMzk1NDgsIDAuNjE1NjIyLCAwLjgxMTE5OCwgMS4xMzAwNSwgMS4zOTk1OCwgMS43OTg3OCIsIFwKLSAgICAgICAgICAiMC4wNzAyNjgsIDAuMzM5NDQxLCAwLjYxNTM0NCwgMC44MTExNDEsIDEuMTI0MzUsIDEuNDA4MzIsIDEuODAzNzMiLCBcCi0gICAgICAgICAgIjAuMDc3MzEzLCAwLjMzOTM5OCwgMC42MTM0OTYsIDAuODA5ODA0LCAxLjEzMDUyLCAxLjQwMzQ4LCAxLjc5ODY0IiwgXAotICAgICAgICAgICIwLjA4NTU5LCAwLjM0MTEzMSwgMC42MTM1ODEsIDAuODExMjA3LCAxLjEyNzU1LCAxLjQwMzkyLCAxLjc5ODg3IiwgXAotICAgICAgICAgICIwLjEwMDIxMiwgMC4zNDY0MDgsIDAuNjE0MDk3LCAwLjgwOTE2NCwgMS4xMjY5MSwgMS40MDM5MiwgMS43OTUxNiIsIFwKLSAgICAgICAgICAiMC4xMTE3OTksIDAuMzUyOTM3LCAwLjYxNjE2OSwgMC44MTE1NTgsIDEuMTI3MTYsIDEuNDAxMjEsIDEuNzk4ODMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBME4iOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE0ODIzLCAwLjAxNDg0LCAwLjAxNDg0MywgMC4wMTQ4NDEsIDAuMDE0ODM5LCAwLjAxNDgzOCwgMC4wMTQ4MzciLCBcCi0gICAgICAgICAgIjAuMDE0NzY4LCAwLjAxNDc5MiwgMC4wMTQ3OTYsIDAuMDE0Nzk2LCAwLjAxNDc5MSwgMC4wMTQ3OTEsIDAuMDE0NzkxIiwgXAotICAgICAgICAgICIwLjAxNDczMSwgMC4wMTQ3NjcsIDAuMDE0NzczLCAwLjAxNDc3NSwgMC4wMTQ3NzIsIDAuMDE0NzcyLCAwLjAxNDc2OSIsIFwKLSAgICAgICAgICAiMC4wMTQ3MzIsIDAuMDE0Nzc2LCAwLjAxNDc4LCAwLjAxNDc4MiwgMC4wMTQ3ODUsIDAuMDE0NzgxLCAwLjAxNDc3OSIsIFwKLSAgICAgICAgICAiMC4wMTQ3NDIsIDAuMDE0NzksIDAuMDE0Nzk5LCAwLjAxNDc5OCwgMC4wMTQ4LCAwLjAxNDc5OCwgMC4wMTQ3OTYiLCBcCi0gICAgICAgICAgIjAuMDE0NzYzLCAwLjAxNDgxOCwgMC4wMTQ4MjksIDAuMDE0ODMsIDAuMDE0ODMyLCAwLjAxNDgzLCAwLjAxNDgzMSIsIFwKLSAgICAgICAgICAiMC4wMTQ3OSwgMC4wMTQ4NDUsIDAuMDE0ODU1LCAwLjAxNDg2LCAwLjAxNDg1OSwgMC4wMTQ4NjEsIDAuMDE0ODYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwOTk4NSwgMC4wMTAwMjcsIDAuMDEwMDMxLCAwLjAxMDAzMSwgMC4wMTAwMzIsIDAuMDEwMDMyLCAwLjAxMDAzMSIsIFwKLSAgICAgICAgICAiMC4wMDk5MzksIDAuMDA5OTg5LCAwLjAwOTk5NSwgMC4wMDk5OTcsIDAuMDA5OTk4LCAwLjAwOTk5NywgMC4wMDk5OTgiLCBcCi0gICAgICAgICAgIjAuMDA5OTA4LCAwLjAwOTk3MywgMC4wMDk5ODQsIDAuMDA5OTg3LCAwLjAwOTk4OSwgMC4wMDk5ODksIDAuMDA5OTg4IiwgXAotICAgICAgICAgICIwLjAwOTg5MiwgMC4wMDk5NzIsIDAuMDA5OTg0LCAwLjAwOTk5LCAwLjAwOTk5MiwgMC4wMDk5OTMsIDAuMDA5OTkzIiwgXAotICAgICAgICAgICIwLjAwOTg4OSwgMC4wMDk5NzMsIDAuMDA5OTg5LCAwLjAwOTk5NSwgMC4wMDk5OTksIDAuMDA5OTk5LCAwLjAxMDAwMSIsIFwKLSAgICAgICAgICAiMC4wMDk5MDYsIDAuMDA5OTk0LCAwLjAxMDAxNCwgMC4wMTAwMiwgMC4wMTAwMjUsIDAuMDEwMDI2LCAwLjAxMDAyOSIsIFwKLSAgICAgICAgICAiMC4wMDk4OTgsIDAuMDA5OTk0LCAwLjAxMDAxNSwgMC4wMTAwMjEsIDAuMDEwMDI3LCAwLjAxMDAyOSwgMC4wMTAwMzMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMU4iOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEzNDM1LCAwLjAxMzQ3MSwgMC4wMTM0NzUsIDAuMDEzNDczLCAwLjAxMzQ3LCAwLjAxMzQ3MSwgMC4wMTM0NjciLCBcCi0gICAgICAgICAgIjAuMDEzMzY3LCAwLjAxMzQyMiwgMC4wMTM0MjYsIDAuMDEzNDI2LCAwLjAxMzQyOSwgMC4wMTM0MjQsIDAuMDEzNDIzIiwgXAotICAgICAgICAgICIwLjAxMzMxMywgMC4wMTMzOTMsIDAuMDEzNDA0LCAwLjAxMzQwNCwgMC4wMTM0MDksIDAuMDEzNDA1LCAwLjAxMzQwNiIsIFwKLSAgICAgICAgICAiMC4wMTMzMSwgMC4wMTMzOTMsIDAuMDEzNDA0LCAwLjAxMzQwOCwgMC4wMTM0MTIsIDAuMDEzNDExLCAwLjAxMzQxMiIsIFwKLSAgICAgICAgICAiMC4wMTMzMTgsIDAuMDEzNDAzLCAwLjAxMzQxNywgMC4wMTM0MjMsIDAuMDEzNDI1LCAwLjAxMzQyNCwgMC4wMTM0MjMiLCBcCi0gICAgICAgICAgIjAuMDEzMzQ5LCAwLjAxMzQzMiwgMC4wMTM0NTEsIDAuMDEzNDU1LCAwLjAxMzQ2LCAwLjAxMzQ2MSwgMC4wMTM0NiIsIFwKLSAgICAgICAgICAiMC4wMTMzOSwgMC4wMTM0NTcsIDAuMDEzNDc2LCAwLjAxMzQ4NiwgMC4wMTM0OSwgMC4wMTM0OTEsIDAuMDEzNDk1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDg4NTQsIDAuMDA4OTgzLCAwLjAwODk5OSwgMC4wMDkwMDUsIDAuMDA5MDA4LCAwLjAwOTAxLCAwLjAwOTAxMiIsIFwKLSAgICAgICAgICAiMC4wMDg3ODcsIDAuMDA4OTQsIDAuMDA4OTYyLCAwLjAwODk2OSwgMC4wMDg5NzMsIDAuMDA4OTc2LCAwLjAwODk3OSIsIFwKLSAgICAgICAgICAiMC4wMDg3MjksIDAuMDA4OTEzLCAwLjAwODk0MiwgMC4wMDg5NTEsIDAuMDA4OTU4LCAwLjAwODk2MywgMC4wMDg5NjUiLCBcCi0gICAgICAgICAgIjAuMDA4Njk1LCAwLjAwODkwNSwgMC4wMDg5NDEsIDAuMDA4OTU0LCAwLjAwODk2MywgMC4wMDg5NjksIDAuMDA4OTc0IiwgXAotICAgICAgICAgICIwLjAwODY3NSwgMC4wMDg5MDQsIDAuMDA4OTQ4LCAwLjAwODk2MywgMC4wMDg5NzYsIDAuMDA4OTgxLCAwLjAwODk4OCIsIFwKLSAgICAgICAgICAiMC4wMDg2NjksIDAuMDA4OTE0LCAwLjAwODk2NSwgMC4wMDg5ODIsIDAuMDA4OTk4LCAwLjAwOTAwNiwgMC4wMDkwMTQiLCBcCi0gICAgICAgICAgIjAuMDA4NjUzLCAwLjAwODkxLCAwLjAwODk2NSwgMC4wMDg5ODQsIDAuMDA5LCAwLjAwOTAwOSwgMC4wMDkwMTciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDkxOTgsIDAuMDA5MjM0LCAwLjAwOTIzOCwgMC4wMDkyMzgsIDAuMDA5MjQsIDAuMDA5MjQsIDAuMDA5MjQiLCBcCi0gICAgICAgICAgIjAuMDA5MTEyLCAwLjAwOTI0MiwgMC4wMDkyNiwgMC4wMDkyNjYsIDAuMDA5MjcsIDAuMDA5MjczLCAwLjAwOTI3NCIsIFwKLSAgICAgICAgICAiMC4wMDkwMzIsIDAuMDA5MjE0LCAwLjAwOTI0NiwgMC4wMDkyNTQsIDAuMDA5MjY1LCAwLjAwOTI2NCwgMC4wMDkyNzQiLCBcCi0gICAgICAgICAgIjAuMDA4OTkxLCAwLjAwOTE4NywgMC4wMDkyMjgsIDAuMDA5MjQxLCAwLjAwOTI1MiwgMC4wMDkyNjMsIDAuMDA5MjY4IiwgXAotICAgICAgICAgICIwLjAwODk3MiwgMC4wMDkxNjUsIDAuMDA5MjEzLCAwLjAwOTIyOCwgMC4wMDkyNDUsIDAuMDA5MjU0LCAwLjAwOTI2MiIsIFwKLSAgICAgICAgICAiMC4wMDg5NjksIDAuMDA5MTM2LCAwLjAwOTE5MywgMC4wMDkyMTMsIDAuMDA5MjMzLCAwLjAwOTI0NCwgMC4wMDkyNTMiLCBcCi0gICAgICAgICAgIjAuMDA4OTg0LCAwLjAwOTEyLCAwLjAwOTE3OCwgMC4wMDkyMDEsIDAuMDA5MjIzLCAwLjAwOTIzNCwgMC4wMDkyNDYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDIzMywgMC4wMDQyNDUsIDAuMDA0MjQ4LCAwLjAwNDI0NywgMC4wMDQyNDcsIDAuMDA0MjQ2LCAwLjAwNDI0NSIsIFwKLSAgICAgICAgICAiMC4wMDQwOTYsIDAuMDA0MTcsIDAuMDA0MTgzLCAwLjAwNDE4NywgMC4wMDQxOTMsIDAuMDA0MTg4LCAwLjAwNDE4OCIsIFwKLSAgICAgICAgICAiMC4wMDQwNjIsIDAuMDA0MTQ0LCAwLjAwNDE2MiwgMC4wMDQxNjgsIDAuMDA0MTcyLCAwLjAwNDE3NCwgMC4wMDQxNzUiLCBcCi0gICAgICAgICAgIjAuMDA0MDQ2LCAwLjAwNDEyOSwgMC4wMDQxNDgsIDAuMDA0MTU2LCAwLjAwNDE2NCwgMC4wMDQxNjcsIDAuMDA0MTY5IiwgXAotICAgICAgICAgICIwLjAwNDExMiwgMC4wMDQxMjMsIDAuMDA0MTQ3LCAwLjAwNDE1NCwgMC4wMDQxNiwgMC4wMDQxNjYsIDAuMDA0MTY5IiwgXAotICAgICAgICAgICIwLjAwNDE5MSwgMC4wMDQxNDQsIDAuMDA0MTU0LCAwLjAwNDE2LCAwLjAwNDE2MywgMC4wMDQxNjYsIDAuMDA0MTY4IiwgXAotICAgICAgICAgICIwLjAwNDI5MSwgMC4wMDQxNjUsIDAuMDA0MTY1LCAwLjAwNDE2NywgMC4wMDQxNjksIDAuMDA0MTcsIDAuMDA0MTciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDc4MTIsIDAuMDA3ODY4LCAwLjAwNzg3MywgMC4wMDc4NzUsIDAuMDA3ODc2LCAwLjAwNzg3NSwgMC4wMDc4NzgiLCBcCi0gICAgICAgICAgIjAuMDA3Njk2LCAwLjAwNzg2NCwgMC4wMDc4ODcsIDAuMDA3ODkyLCAwLjAwNzg5OSwgMC4wMDc5MDQsIDAuMDA3OTA1IiwgXAotICAgICAgICAgICIwLjAwNzYyOSwgMC4wMDc4MzIsIDAuMDA3ODY5LCAwLjAwNzg4LCAwLjAwNzg5MiwgMC4wMDc4OTUsIDAuMDA3OTAxIiwgXAotICAgICAgICAgICIwLjAwNzYwNywgMC4wMDc4LCAwLjAwNzg1LCAwLjAwNzg2NSwgMC4wMDc4ODEsIDAuMDA3ODg5LCAwLjAwNzg5OCIsIFwKLSAgICAgICAgICAiMC4wMDc2MzMsIDAuMDA3NzgyLCAwLjAwNzgzNiwgMC4wMDc4NTUsIDAuMDA3ODc0LCAwLjAwNzg4MiwgMC4wMDc4OTIiLCBcCi0gICAgICAgICAgIjAuMDA3NzMxLCAwLjAwNzc3NywgMC4wMDc4MjgsIDAuMDA3ODQ2LCAwLjAwNzg2NywgMC4wMDc4NzUsIDAuMDA3ODg4IiwgXAotICAgICAgICAgICIwLjAwNzgxMiwgMC4wMDc3NzQsIDAuMDA3ODIsIDAuMDA3ODM5LCAwLjAwNzg2LCAwLjAwNzg3LCAwLjAwNzg4MSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyNzk3LCAwLjAwMjg1NywgMC4wMDI4NjMsIDAuMDAyODY1LCAwLjAwMjg2NiwgMC4wMDI4NjgsIDAuMDAyODY3IiwgXAotICAgICAgICAgICIwLjAwMjY2NSwgMC4wMDI4NTcsIDAuMDAyODg0LCAwLjAwMjg5NSwgMC4wMDI5MDMsIDAuMDAyOTA1LCAwLjAwMjkwOCIsIFwKLSAgICAgICAgICAiMC4wMDI1OTgsIDAuMDAyODE2LCAwLjAwMjg2MiwgMC4wMDI4NzcsIDAuMDAyODksIDAuMDAyODk4LCAwLjAwMjkwMyIsIFwKLSAgICAgICAgICAiMC4wMDI1MjYsIDAuMDAyNzcxLCAwLjAwMjgzNSwgMC4wMDI4NTcsIDAuMDAyODc2LCAwLjAwMjg4NywgMC4wMDI4OTYiLCBcCi0gICAgICAgICAgIjAuMDAyNTUsIDAuMDAyNzQ0LCAwLjAwMjgxNSwgMC4wMDI4NCwgMC4wMDI4NjQsIDAuMDAyODc3LCAwLjAwMjg4OCIsIFwKLSAgICAgICAgICAiMC4wMDI2MTEsIDAuMDAyNzIzLCAwLjAwMjc5OSwgMC4wMDI4MjYsIDAuMDAyODUsIDAuMDAyODY2LCAwLjAwMjg3OSIsIFwKLSAgICAgICAgICAiMC4wMDI2NzgsIDAuMDAyNzEyLCAwLjAwMjc4MiwgMC4wMDI4MSwgMC4wMDI4MzksIDAuMDAyODU1LCAwLjAwMjg3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogT0FJMzFYNCAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChPQUkzMVg0KSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuNTU5NjU0OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAzNDgwMjY7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAzNDY2MDY7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAzNDgwMjY7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxNjM3LCAwLjAwMTYzNiwgMC4wMDE2MzQsIDAuMDAxNjM0LCAwLjAwMTYzNCwgMC4wMDE2MzQsIDAuMDAxNjM0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxNjQsIDAuMDAxNjQxLCAwLjAwMTY0LCAwLjAwMTY0LCAwLjAwMTY0MSwgMC4wMDE2NDEsIDAuMDAxNjQxIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihBMSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAzNDUyMjE7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAzNDQyNTY7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAzNDUyMjE7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxNjM3LCAwLjAwMTYzNywgMC4wMDE2MzYsIDAuMDAxNjM2LCAwLjAwMTYzNSwgMC4wMDE2MzUsIDAuMDAxNjM1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxNjM5LCAwLjAwMTYzOSwgMC4wMDE2MzksIDAuMDAxNjQsIDAuMDAxNjQsIDAuMDAxNjQsIDAuMDAxNjQxIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihBMikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAzMjM5ODg7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAzMjM5ODg7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAzMjI5MDY7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxNjM3LCAwLjAwMTYzNywgMC4wMDE2MzYsIDAuMDAxNjM2LCAwLjAwMTYzNiwgMC4wMDE2MzYsIDAuMDAxNjM2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxNjM5LCAwLjAwMTYzOSwgMC4wMDE2MzksIDAuMDAxNjM5LCAwLjAwMTYzOSwgMC4wMDE2NCwgMC4wMDE2NCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQjApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMzA5OTA4OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMzA5NzE5OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMzA5OTA4OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTcyOSwgMC4wMDE3MzMsIDAuMDAxNzMzLCAwLjAwMTczNCwgMC4wMDE3MzUsIDAuMDAxNzM1LCAwLjAwMTczNCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTg1NiwgMC4wMDE4NTgsIDAuMDAxODU4LCAwLjAwMTg1OCwgMC4wMDE4NjEsIDAuMDAxODYsIDAuMDAxODYiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4zNjE2NzQ7Ci0gICAgZnVuY3Rpb24gOiAiKCEoKChBMCtBMSkrQTIpIEIwKSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2NDMwNCwgMC4yNjg0MTYsIDAuNDcxNzI5LCAwLjYxNjYyOCwgMC44NDg1OTksIDEuMDUxMDEsIDEuMzQxNDgiLCBcCi0gICAgICAgICAgIjAuMDcyNjMsIDAuMjc2OTI2LCAwLjQ3OTg0MywgMC42MjUwMzcsIDAuODU3MTg0LCAxLjA1OTUxLCAxLjM0OTA5IiwgXAotICAgICAgICAgICIwLjA4MTM0NywgMC4yODU2NjgsIDAuNDg4Njg3LCAwLjYzMzY2OSwgMC44NjU2NDksIDEuMDY4MzgsIDEuMzU4NDIiLCBcCi0gICAgICAgICAgIjAuMDg5NDgzLCAwLjI5Mzk2OSwgMC40OTY5MTUsIDAuNjQyMjM2LCAwLjg3MzY4OCwgMS4wNzY3MiwgMS4zNjYzNCIsIFwKLSAgICAgICAgICAiMC4wOTcyOTYsIDAuMzAxODM1LCAwLjUwNTIwNCwgMC42NDk4ODQsIDAuODgxNzA1LCAxLjA4NDcsIDEuMzc0MTIiLCBcCi0gICAgICAgICAgIjAuMTA4NTQ4LCAwLjMxNDU0MiwgMC41MTc2NjIsIDAuNjYyNTE4LCAwLjg5NDMzLCAxLjA5NzY3LCAxLjM4NzQ5IiwgXAotICAgICAgICAgICIwLjExNzQxOSwgMC4zMjU0ODIsIDAuNTI4Njg4LCAwLjY3Mzg2OSwgMC45MDU0NTMsIDEuMTA4NzksIDEuMzk3OTQiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTkyMjcsIDAuNTA2NDI3LCAwLjkxMzUyNCwgMS4yMDQwMiwgMS42Njg5OCwgMi4wNzU0NiwgMi42NTc3NyIsIFwKLSAgICAgICAgICAiMC4wOTkxNTIsIDAuNTA2ODU3LCAwLjkxMzgzNiwgMS4yMDQyMiwgMS42NjkwMiwgMi4wNzU0NiwgMi42NTkzMSIsIFwKLSAgICAgICAgICAiMC4xMDAwMTUsIDAuNTA2NzU5LCAwLjkxMzIzMiwgMS4yMDQ2MywgMS42Njg3NiwgMi4wNzU0MywgMi42NTY5MyIsIFwKLSAgICAgICAgICAiMC4xMDE5MDIsIDAuNTA2NTAxLCAwLjkxMzIyOCwgMS4yMDQwMiwgMS42Njk2LCAyLjA3NTYyLCAyLjY1NzA4IiwgXAotICAgICAgICAgICIwLjEwNDYyNCwgMC41MDY5LCAwLjkxMzQ3NSwgMS4yMDM2LCAxLjY2OTYsIDIuMDc1NDksIDIuNjU3NjQiLCBcCi0gICAgICAgICAgIjAuMTEwNDk0LCAwLjUwODAwOCwgMC45MTM3LCAxLjIwNDM0LCAxLjY2OTc4LCAyLjA3NTc5LCAyLjY1Njk5IiwgXAotICAgICAgICAgICIwLjExNjczOCwgMC41MTAzODYsIDAuOTEzNjAyLCAxLjIwMzg4LCAxLjY2OTQyLCAyLjA3NTgxLCAyLjY1ODY1Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQ2NzYxLCAwLjE4NTI4NiwgMC4zMjI2NjQsIDAuNDIwNjYzLCAwLjU3NzI5MSwgMC43MTQ0NzUsIDAuOTEwMTU3IiwgXAotICAgICAgICAgICIwLjA1NjMxMiwgMC4xOTQ5NDQsIDAuMzMyMjU2LCAwLjQzMDA5OCwgMC41ODY4MDIsIDAuNzI0MTcyLCAwLjkxOTQ1MiIsIFwKLSAgICAgICAgICAiMC4wNjczNjYsIDAuMjA2MDg4LCAwLjM0MzMxOSwgMC40NDEzMDEsIDAuNTk4MDQ4LCAwLjczNDk5OCwgMC45MzEwMjIiLCBcCi0gICAgICAgICAgIjAuMDc4MTMsIDAuMjE2NTY1LCAwLjM1NDM2NiwgMC40NTIyNTksIDAuNjA5MTg4LCAwLjc0NjA4MiwgMC45NDE3MDgiLCBcCi0gICAgICAgICAgIjAuMDg4NDY4LCAwLjIyNzg0NSwgMC4zNjUzODYsIDAuNDYzMjY3LCAwLjYxOTk1NywgMC43NTczMTUsIDAuOTUyNzMxIiwgXAotICAgICAgICAgICIwLjEwMzAyMywgMC4yNDUxMjEsIDAuMzgyNjk5LCAwLjQ4MDU3OCwgMC42Mzc0NTUsIDAuNzc0Njc4LCAwLjk3MDM5MSIsIFwKLSAgICAgICAgICAiMC4xMTQ0MDUsIDAuMjYwNTA3LCAwLjM5NzgzOCwgMC40OTU4NjEsIDAuNjUyNjI0LCAwLjc4OTczMiwgMC45ODU4MDgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjY2OSwgMC4zMzg3MTcsIDAuNjEwMzYsIDAuODA0NjQzLCAxLjExNTE2LCAxLjM4NzM0LCAxLjc3NTE4IiwgXAotICAgICAgICAgICIwLjA2NjcwMiwgMC4zMzg0NjcsIDAuNjEwNDEyLCAwLjgwNDgyMSwgMS4xMTU1OSwgMS4zODY4NywgMS43NzQ3NyIsIFwKLSAgICAgICAgICAiMC4wNjgyODgsIDAuMzM4NTE5LCAwLjYxMDU3OCwgMC44MDQ0NzcsIDEuMTE1NDYsIDEuMzg2ODYsIDEuNzc1NDgiLCBcCi0gICAgICAgICAgIjAuMDcxNjc2LCAwLjMzODQ3OSwgMC42MTAzMzMsIDAuODA0NzgyLCAxLjExNTA3LCAxLjM4NzQ4LCAxLjc3NTAzIiwgXAotICAgICAgICAgICIwLjA3NjI1MywgMC4zMzk0NzYsIDAuNjEwMzk3LCAwLjgwNDQ2MiwgMS4xMTUxLCAxLjM4NzMyLCAxLjc3NTE1IiwgXAotICAgICAgICAgICIwLjA4NTM1OCwgMC4zNDIyLCAwLjYxMDY3OCwgMC44MDQ2NDgsIDEuMTE1NTgsIDEuMzg2ODIsIDEuNzc1MTQiLCBcCi0gICAgICAgICAgIjAuMDkzNTQ3LCAwLjM0NjY2MiwgMC42MTIwODksIDAuODA1MDg1LCAxLjExNTIyLCAxLjM4Njg0LCAxLjc3NTE1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkExIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2MTA3LCAwLjI2NTI3OCwgMC40NjgyOTEsIDAuNjEzMDYsIDAuODQ1NDQ4LCAxLjA0Nzc4LCAxLjMzNzM1IiwgXAotICAgICAgICAgICIwLjA2OTQzMywgMC4yNzM3NTcsIDAuNDc2ODIzLCAwLjYyMTc2MSwgMC44NTM5NDIsIDEuMDU2NDIsIDEuMzQ1NjEiLCBcCi0gICAgICAgICAgIjAuMDc5MjUxLCAwLjI4MzcyNiwgMC40ODY4MzMsIDAuNjMxODQsIDAuODYzNjg0LCAxLjA2Njc0LCAxLjM1NjU4IiwgXAotICAgICAgICAgICIwLjA4OTEsIDAuMjkzNTcxLCAwLjQ5NjU5NCwgMC42NDE5NSwgMC44NzM2MDUsIDEuMDc2MTUsIDEuMzY2MTUiLCBcCi0gICAgICAgICAgIjAuMDk4NzEsIDAuMzAzMTM3LCAwLjUwNjcyOCwgMC42NTE1MzQsIDAuODgzNDIzLCAxLjA4NjA3LCAxLjM3NjY1IiwgXAotICAgICAgICAgICIwLjExMjY2NiwgMC4zMTkzMzgsIDAuNTIyNDAxLCAwLjY2NzM5MywgMC44OTkzMTIsIDEuMTAyMDMsIDEuMzkyMzQiLCBcCi0gICAgICAgICAgIjAuMTIzNDgzLCAwLjMzMjkwMiwgMC41MzY1OTEsIDAuNjgxNTYxLCAwLjkxMzQyLCAxLjExNjExLCAxLjQwNjA3Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk5MjI3LCAwLjUwNjUxNiwgMC45MTMzMTEsIDEuMjAzNTksIDEuNjY5MDEsIDIuMDc1NDYsIDIuNjU3MDkiLCBcCi0gICAgICAgICAgIjAuMDk5MjcxLCAwLjUwNjY4NiwgMC45MTM2NTMsIDEuMjAzOSwgMS42NjkwNywgMi4wNzU2MiwgMi42NTc5OSIsIFwKLSAgICAgICAgICAiMC4xMDA3MTMsIDAuNTA2NTAzLCAwLjkxMzY2MiwgMS4yMDM4OSwgMS42Njg5MywgMi4wNzU3NiwgMi42NTcxNiIsIFwKLSAgICAgICAgICAiMC4xMDQxNjUsIDAuNTA2NzkzLCAwLjkxMzIxLCAxLjIwNDE1LCAxLjY2OTIxLCAyLjA3NjM5LCAyLjY1Njc4IiwgXAotICAgICAgICAgICIwLjEwODcxOSwgMC41MDY1NTcsIDAuOTEzMzgzLCAxLjIwNDYzLCAxLjY2OTI4LCAyLjA3NTYzLCAyLjY1NzQ3IiwgXAotICAgICAgICAgICIwLjExNzgyNCwgMC41MDg0MDMsIDAuOTEzMTg3LCAxLjIwMzYxLCAxLjY2ODU4LCAyLjA3NTUsIDIuNjU3NjYiLCBcCi0gICAgICAgICAgIjAuMTI3LCAwLjUxMTE4MSwgMC45MTMzOTgsIDEuMjAzNjYsIDEuNjY5MzcsIDIuMDc2NCwgMi42NTY4MiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0MzE0NywgMC4xODA3MTcsIDAuMzE3OTQsIDAuNDE1ODEzLCAwLjU3MjY1NCwgMC43MDk1NzEsIDAuOTA1MDkxIiwgXAotICAgICAgICAgICIwLjA1Mjc0NiwgMC4xOTA1ODIsIDAuMzI3ODUyLCAwLjQyNTczLCAwLjU4MjUyNSwgMC43MTkzNzMsIDAuOTE1NDcyIiwgXAotICAgICAgICAgICIwLjA2MzY5LCAwLjIwMTY3NCwgMC4zMzg4NTcsIDAuNDM2Njk1LCAwLjU5MzUwMywgMC43MzA1NzgsIDAuOTI2NDcxIiwgXAotICAgICAgICAgICIwLjA3NDI4NywgMC4yMTI1NjIsIDAuMzQ5ODE4LCAwLjQ0Nzg1NSwgMC42MDQzOSwgMC43NDE2MDEsIDAuOTM3MzI1IiwgXAotICAgICAgICAgICIwLjA4NDE2NCwgMC4yMjMzODUsIDAuMzYwODgyLCAwLjQ1ODkzNSwgMC42MTU1ODUsIDAuNzUyNTI0LCAwLjk0ODE3NSIsIFwKLSAgICAgICAgICAiMC4wOTc5OTQsIDAuMjQwNzA0LCAwLjM3ODE5OCwgMC40NzYxOTYsIDAuNjMyNzY2LCAwLjc3MDE0LCAwLjk2NTc5IiwgXAotICAgICAgICAgICIwLjEwODc0NSwgMC4yNTU5NTMsIDAuMzkzMTUzLCAwLjQ5MTIxNywgMC42NDc4ODYsIDAuNzg1MTE0LCAwLjk4MTIxNCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2MTM5LCAwLjMzMzM0NCwgMC42MDUzNzgsIDAuNzk5NDE0LCAxLjExMDM1LCAxLjM4MjQ5LCAxLjc3MDM5IiwgXAotICAgICAgICAgICIwLjA2MTQ0LCAwLjMzMzM1LCAwLjYwNTQxNywgMC43OTk0MzQsIDEuMTEwMjYsIDEuMzgyMTQsIDEuNzcwODciLCBcCi0gICAgICAgICAgIjAuMDYzMjM4LCAwLjMzMzMyMSwgMC42MDU0OSwgMC43OTk3NDksIDEuMTEwMTksIDEuMzgyMTEsIDEuNzcxMjYiLCBcCi0gICAgICAgICAgIjAuMDY2OTc2LCAwLjMzMzI4OCwgMC42MDU0OTcsIDAuNzk5MzUxLCAxLjExMDE1LCAxLjM4MjQ0LCAxLjc3MDY4IiwgXAotICAgICAgICAgICIwLjA3MTk2NCwgMC4zMzQxLCAwLjYwNTE3NiwgMC43OTk0MzUsIDEuMTEwMTQsIDEuMzgyNTUsIDEuNzcwNzEiLCBcCi0gICAgICAgICAgIjAuMDgxMTksIDAuMzM3NDQsIDAuNjA1NjE2LCAwLjc5OTM4MiwgMS4xMTAzNywgMS4zODIyNywgMS43NzA2MyIsIFwKLSAgICAgICAgICAiMC4wODk1NTcsIDAuMzQxNzIyLCAwLjYwNzA0NCwgMC43OTk4NzYsIDEuMTEwMzYsIDEuMzgyNTEsIDEuNzcxNDUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTIiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDUzODQzLCAwLjI1ODAzMywgMC40NjExNDYsIDAuNjA1ODk5LCAwLjgzODA5NCwgMS4wNDA1NywgMS4zMzExMyIsIFwKLSAgICAgICAgICAiMC4wNjIwMjMsIDAuMjY2NDc2LCAwLjQ2OTY5OSwgMC42MTQ2OTIsIDAuODQ2MzY3LCAxLjA0OTM1LCAxLjMzODU0IiwgXAotICAgICAgICAgICIwLjA3MjU3NCwgMC4yNzcxMDMsIDAuNDgwMDk2LCAwLjYyNDcwOCwgMC44NTY3NzUsIDEuMDU5OTMsIDEuMzQ5MiIsIFwKLSAgICAgICAgICAiMC4wODM2NjYsIDAuMjg4MDUxLCAwLjQ5MTI3OCwgMC42MzYxMTIsIDAuODY4MDY5LCAxLjA3MDc1LCAxLjM2MDU3IiwgXAotICAgICAgICAgICIwLjA5NDIsIDAuMjk4NTA3LCAwLjUwMTYwMiwgMC42NDY4MjUsIDAuODc4MDM0LCAxLjA4MTIzLCAxLjM3MDYzIiwgXAotICAgICAgICAgICIwLjEwOTk2OCwgMC4zMTU5MjUsIDAuNTE4OTI5LCAwLjY2Mzg1NywgMC44OTU2OTMsIDEuMDk4NTYsIDEuMzg4NTkiLCBcCi0gICAgICAgICAgIjAuMTIxNzQ2LCAwLjMzMDk3NiwgMC41MzQwOSwgMC42NzkwOSwgMC45MTA3MSwgMS4xMTQxLCAxLjQwMzYzIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk5MjM3LCAwLjUwNjg1MywgMC45MTM0MSwgMS4yMDM1NywgMS42Njg5NywgMi4wNzU0NSwgMi42NTczMSIsIFwKLSAgICAgICAgICAiMC4wOTg4MSwgMC41MDY4NTcsIDAuOTEzNTE2LCAxLjIwNDA4LCAxLjY2OTEzLCAyLjA3NTc3LCAyLjY1ODU5IiwgXAotICAgICAgICAgICIwLjEwMjE0OSwgMC41MDY0OTMsIDAuOTEzMTk0LCAxLjIwMzgzLCAxLjY2OTUzLCAyLjA3NTcsIDIuNjU2ODkiLCBcCi0gICAgICAgICAgIjAuMTA4MDM2LCAwLjUwNjc3NiwgMC45MTM0MDcsIDEuMjAzNTgsIDEuNjY4NzcsIDIuMDc1ODgsIDIuNjU2NzciLCBcCi0gICAgICAgICAgIjAuMTE1NzU1LCAwLjUwNjUyOCwgMC45MTMxNDcsIDEuMjAzOTUsIDEuNjY4MzIsIDIuMDc1ODYsIDIuNjU4NTEiLCBcCi0gICAgICAgICAgIjAuMTI4ODkyLCAwLjUwOTQ2LCAwLjkxMzU3MSwgMS4yMDM2LCAxLjY2ODM5LCAyLjA3NTQxLCAyLjY1Nzc0IiwgXAotICAgICAgICAgICIwLjE0MDk1OSwgMC41MTM3OTEsIDAuOTEzMzA1LCAxLjIwNDA0LCAxLjY2OTQzLCAyLjA3NTgyLCAyLjY1NzYzIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM4OTc3LCAwLjE3ODM3OSwgMC4zMTc1MiwgMC40MTcwOCwgMC41NzYxNzIsIDAuNzE1MzA4LCAwLjkxNDIxNiIsIFwKLSAgICAgICAgICAiMC4wNDg2MDEsIDAuMTg4MzU5LCAwLjMyNzYxNSwgMC40MjY5NDEsIDAuNTg2MzA2LCAwLjcyNTE1MSwgMC45MjQ3ODkiLCBcCi0gICAgICAgICAgIjAuMDU5NDQ2LCAwLjE5OTQ0NCwgMC4zMzg4NTYsIDAuNDM4MTU0LCAwLjU5NzMyNiwgMC43MzY0MSwgMC45MzU1NTMiLCBcCi0gICAgICAgICAgIjAuMDY5ODM5LCAwLjIxMDMxNSwgMC4zNDk3MDEsIDAuNDQ5MzIzLCAwLjYwODM1NywgMC43NDc0NCwgMC45NDY1OTQiLCBcCi0gICAgICAgICAgIjAuMDc5MDgzLCAwLjIyMTE5OCwgMC4zNjA3MjksIDAuNDYwMDk0LCAwLjYxOTQ5NywgMC43NTg3NjEsIDAuOTU3MjEiLCBcCi0gICAgICAgICAgIjAuMDkyMTA2LCAwLjIzODI3NCwgMC4zNzc5NTQsIDAuNDc3NTk5LCAwLjYzNjY3NSwgMC43NzYwNDMsIDAuOTc0ODYyIiwgXAotICAgICAgICAgICIwLjEwMjIzLCAwLjI1MzIwMiwgMC4zOTMxNjEsIDAuNDkyNTY1LCAwLjY1MjIwMiwgMC43OTExOTgsIDAuOTkwMzUyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU2ODQ1LCAwLjMzMzQxMSwgMC42MTA3NTUsIDAuODA2NTIxLCAxLjEyMzMxLCAxLjM5ODcyLCAxLjc5MzA1IiwgXAotICAgICAgICAgICIwLjA1NzAwMywgMC4zMzQ5OTUsIDAuNjEwOTEsIDAuODA4NzUxLCAxLjEyMjEyLCAxLjQwNjA5LCAxLjc5MzQ3IiwgXAotICAgICAgICAgICIwLjA1OTAwNCwgMC4zMzM4NzQsIDAuNjA5MjcyLCAwLjgwODc0LCAxLjEyMzI1LCAxLjQwNjI3LCAxLjc5MzgyIiwgXAotICAgICAgICAgICIwLjA2MzA2NiwgMC4zMzM4ODgsIDAuNjEwNzM3LCAwLjgwNjUwMSwgMS4xMjIyOCwgMS40MDE5MywgMS43OTMyIiwgXAotICAgICAgICAgICIwLjA2ODU2OCwgMC4zMzQ4NTgsIDAuNjA5MzA0LCAwLjgwODUxNSwgMS4xMjIxLCAxLjM5ODc4LCAxLjgwMzQ0IiwgXAotICAgICAgICAgICIwLjA3ODMzNywgMC4zMzc2NjksIDAuNjA5OTk2LCAwLjgwNjUzNSwgMS4xMjQ5NSwgMS4zOTg0OSwgMS44MDQ0MiIsIFwKLSAgICAgICAgICAiMC4wODY3LCAwLjM0MTgyNSwgMC42MTI2OTQsIDAuODA4NjY3LCAxLjEyMjM2LCAxLjQwMjM1LCAxLjc5MzM3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxODA1NSwgMC4wOTA0ODEsIDAuMTYyODE2LCAwLjIxNDQ4MiwgMC4yOTcwMDgsIDAuMzY5Mzc5LCAwLjQ3MjUzMSIsIFwKLSAgICAgICAgICAiMC4wMjgwMjgsIDAuMTAwMzk1LCAwLjE3MjcyOCwgMC4yMjQzMjEsIDAuMzA3MTAyLCAwLjM3OTI1LCAwLjQ4Mjc5MSIsIFwKLSAgICAgICAgICAiMC4wMzkyODMsIDAuMTEyNzU1LCAwLjE4NTEsIDAuMjM2Njg1LCAwLjMxOTI3MiwgMC4zOTA3MjIsIDAuNDkzOTMzIiwgXAotICAgICAgICAgICIwLjA0ODA0LCAwLjEyNTYyNiwgMC4xOTc2NDEsIDAuMjQ5NDE1LCAwLjMzMTgwNywgMC40MDQxMiwgMC41MDczODIiLCBcCi0gICAgICAgICAgIjAuMDU1MTc5LCAwLjEzODIyMSwgMC4yMTAwNCwgMC4yNjE5MjEsIDAuMzQ0NDA2LCAwLjQxNjU5OSwgMC41MTk5NDMiLCBcCi0gICAgICAgICAgIjAuMDY1MzExLCAwLjE1ODU3OSwgMC4yMzAwMDUsIDAuMjgxNjc2LCAwLjM2NDY5OCwgMC40MzY3MzEsIDAuNTM5ODMzIiwgXAotICAgICAgICAgICIwLjA3Mjc1OSwgMC4xNzYzMzIsIDAuMjQ4MzU5LCAwLjI5OTE4OCwgMC4zODE3MjcsIDAuNDU0NDEzLCAwLjU1NzQ5Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQxODQ0LCAwLjE4OTY2MywgMC4zMzgxODcsIDAuNDQ0NDA4LCAwLjYxNDI4MSwgMC43NjMwNDIsIDAuOTc1Mzc3IiwgXAotICAgICAgICAgICIwLjA0NTEzMSwgMC4xODk2NjIsIDAuMzM4MTQ1LCAwLjQ0NDMxOCwgMC42MTQyMiwgMC43NjI5OTksIDAuOTc1NTg4IiwgXAotICAgICAgICAgICIwLjA1Mzc5NSwgMC4xOTA1MzIsIDAuMzM4MTUxLCAwLjQ0NDMyNiwgMC42MTQyMjIsIDAuNzYyOTA0LCAwLjk3NTQyIiwgXAotICAgICAgICAgICIwLjA2MzA3NiwgMC4xOTM5MTksIDAuMzM4NTI4LCAwLjQ0NDMzNiwgMC42MTQxNywgMC43NjI5ODcsIDAuOTc1NDgxIiwgXAotICAgICAgICAgICIwLjA3MzM3MSwgMC4xOTkxNjUsIDAuMzQwNzksIDAuNDQ0ODU2LCAwLjYxNDI5NywgMC43NjI4NjgsIDAuOTc1NDc2IiwgXAotICAgICAgICAgICIwLjA4Njk0MiwgMC4yMDk2NDQsIDAuMzQ3MDc2LCAwLjQ0ODg3OCwgMC42MTUxNiwgMC43NjMwNjQsIDAuOTc1NDEiLCBcCi0gICAgICAgICAgIjAuMDk4NDk4LCAwLjIyMDAzOCwgMC4zNTQwMjEsIDAuNDU0MzU2LCAwLjYxODA1NiwgMC43NjQwNDEsIDAuOTc1NTQ2Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQwMTY2LCAwLjE3ODkyNywgMC4zMTYyODgsIDAuNDE0MjA4LCAwLjU3MDkwNywgMC43MDc4OTIsIDAuOTA3MjA3IiwgXAotICAgICAgICAgICIwLjA0OTIxNCwgMC4xODgxOTMsIDAuMzI1NTc4LCAwLjQyMzYxMiwgMC41ODAwNTYsIDAuNzE3MTgyLCAwLjkxNTg2NSIsIFwKLSAgICAgICAgICAiMC4wNjA5NTUsIDAuMTk5NzQ4LCAwLjMzNzIwNywgMC40MzUxNDUsIDAuNTkxODE3LCAwLjcyODk5NCwgMC45Mjc0NTUiLCBcCi0gICAgICAgICAgIjAuMDczMTEsIDAuMjExODM0LCAwLjM0OTI5OCwgMC40NDczNjYsIDAuNjAzOTgxLCAwLjc0MTA5MSwgMC45NDAyMjgiLCBcCi0gICAgICAgICAgIjAuMDg0MjY2LCAwLjIyMzExNCwgMC4zNjA0MzksIDAuNDU4NTEyLCAwLjYxNTQxNiwgMC43NTI0MjksIDAuOTUwOTM3IiwgXAotICAgICAgICAgICIwLjA5OTQxNiwgMC4yNDE5MjIsIDAuMzc5MjU5LCAwLjQ3NzMwMSwgMC42MzM5ODMsIDAuNzcxMzE5LCAwLjk2OTg2OSIsIFwKLSAgICAgICAgICAiMC4xMTA4MTQsIDAuMjU4NDQzLCAwLjM5NTc1OSwgMC40OTM2OTYsIDAuNjUwNTU2LCAwLjc4NzUzMywgMC45ODY0MTEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjY2NzYsIDAuMzM4NzI4LCAwLjYxMDM1NywgMC44MDY2ODksIDEuMTIyMzUsIDEuNDAyNDgsIDEuNzkyNjMiLCBcCi0gICAgICAgICAgIjAuMDY2NjUyLCAwLjMzODU2NywgMC42MTAzNzYsIDAuODA2NzEzLCAxLjEyNTE2LCAxLjQwNTg0LCAxLjc5MzA5IiwgXAotICAgICAgICAgICIwLjA3MTEsIDAuMzM4NDE3LCAwLjYxMDM1NSwgMC44MTE0MjUsIDEuMTI4NTIsIDEuMzk3NzMsIDEuNzk4MDciLCBcCi0gICAgICAgICAgIjAuMDc3NzA4LCAwLjMzODQyMywgMC42MTA2NSwgMC44MDczMjQsIDEuMTI4MDYsIDEuMzk5NiwgMS43OTI1NCIsIFwKLSAgICAgICAgICAiMC4wODU5MDMsIDAuMzQwMjk3LCAwLjYxMDU3NywgMC44MTEzNiwgMS4xMjIwNCwgMS40MDIyLCAxLjc5ODE4IiwgXAotICAgICAgICAgICIwLjA5OTk3OCwgMC4zNDU2OTcsIDAuNjEwODMxLCAwLjgwNjU1NiwgMS4xMjkxOSwgMS4zOTgyMiwgMS43OTMxOSIsIFwKLSAgICAgICAgICAiMC4xMTEzNCwgMC4zNTIwOTgsIDAuNjE0MDU5LCAwLjgwODk1NCwgMS4xMjIzMiwgMS40MDcwNSwgMS43OTMyMiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMjc5MywgMC4wMTI3OTUsIDAuMDEyNzkzLCAwLjAxMjc5MywgMC4wMTI3OTIsIDAuMDEyNzksIDAuMDEyNzg3IiwgXAotICAgICAgICAgICIwLjAxMjcxMSwgMC4wMTI3NSwgMC4wMTI3NTEsIDAuMDEyNzUxLCAwLjAxMjc1MywgMC4wMTI3NTEsIDAuMDEyNzQ3IiwgXAotICAgICAgICAgICIwLjAxMjY2NywgMC4wMTI3MjgsIDAuMDEyNzM4LCAwLjAxMjc0LCAwLjAxMjc0MiwgMC4wMTI3NCwgMC4wMTI3MzciLCBcCi0gICAgICAgICAgIjAuMDEyNjQsIDAuMDEyNzE0LCAwLjAxMjcyOSwgMC4wMTI3MzIsIDAuMDEyNzM0LCAwLjAxMjczNiwgMC4wMTI3MzQiLCBcCi0gICAgICAgICAgIjAuMDEyNjI2LCAwLjAxMjcwNSwgMC4wMTI3MjEsIDAuMDEyNzI0LCAwLjAxMjcyOSwgMC4wMTI3MzIsIDAuMDEyNzI3IiwgXAotICAgICAgICAgICIwLjAxMjYxNiwgMC4wMTI2OSwgMC4wMTI3MTMsIDAuMDEyNzE1LCAwLjAxMjcyMSwgMC4wMTI3MjYsIDAuMDEyNzI3IiwgXAotICAgICAgICAgICIwLjAxMjYxOCwgMC4wMTI2ODIsIDAuMDEyNzAyLCAwLjAxMjcxMiwgMC4wMTI3MTksIDAuMDEyNzIyLCAwLjAxMjcyMiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzNzgsIDAuMDAzNzgzLCAwLjAwMzc4LCAwLjAwMzc4MiwgMC4wMDM3ODgsIDAuMDAzNzgxLCAwLjAwMzc3OSIsIFwKLSAgICAgICAgICAiMC4wMDM2NTQsIDAuMDAzNjg1LCAwLjAwMzY4OSwgMC4wMDM2ODksIDAuMDAzNjg5LCAwLjAwMzY5LCAwLjAwMzY4NiIsIFwKLSAgICAgICAgICAiMC4wMDM1OTUsIDAuMDAzNjU1LCAwLjAwMzY2NCwgMC4wMDM2NjYsIDAuMDAzNjY5LCAwLjAwMzY3MSwgMC4wMDM2NyIsIFwKLSAgICAgICAgICAiMC4wMDM1NiwgMC4wMDM2MzEsIDAuMDAzNjUxLCAwLjAwMzY1NiwgMC4wMDM2NTgsIDAuMDAzNjYxLCAwLjAwMzY2MiIsIFwKLSAgICAgICAgICAiMC4wMDM1MzYsIDAuMDAzNjI0LCAwLjAwMzY0MSwgMC4wMDM2NDcsIDAuMDAzNjUzLCAwLjAwMzY1NCwgMC4wMDM2NTciLCBcCi0gICAgICAgICAgIjAuMDAzNTE2LCAwLjAwMzYwNywgMC4wMDM2MywgMC4wMDM2MzYsIDAuMDAzNjQ0LCAwLjAwMzY0NiwgMC4wMDM2NSIsIFwKLSAgICAgICAgICAiMC4wMDM1MTIsIDAuMDAzNTk5LCAwLjAwMzYyMywgMC4wMDM2MzEsIDAuMDAzNjM4LCAwLjAwMzY0MywgMC4wMDM2NDciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTE0NTQsIDAuMDExNDU2LCAwLjAxMTQ1NywgMC4wMTE0NTUsIDAuMDExNDUsIDAuMDExNDQ4LCAwLjAxMTQ0MiIsIFwKLSAgICAgICAgICAiMC4wMTEzNzMsIDAuMDExNDExLCAwLjAxMTQxMywgMC4wMTE0MTIsIDAuMDExNDEzLCAwLjAxMTQxMywgMC4wMTE0MDgiLCBcCi0gICAgICAgICAgIjAuMDExMzI4LCAwLjAxMTM5LCAwLjAxMTQsIDAuMDExNDAxLCAwLjAxMTQwNiwgMC4wMTE0MDIsIDAuMDExMzk5IiwgXAotICAgICAgICAgICIwLjAxMTI5OSwgMC4wMTEzNzgsIDAuMDExMzkyLCAwLjAxMTM5NCwgMC4wMTEzOTcsIDAuMDExMzk4LCAwLjAxMTM5NiIsIFwKLSAgICAgICAgICAiMC4wMTEyOTMsIDAuMDExMzYyLCAwLjAxMTM4MiwgMC4wMTEzODcsIDAuMDExMzkyLCAwLjAxMTM5MywgMC4wMTEzOTIiLCBcCi0gICAgICAgICAgIjAuMDExMjg3LCAwLjAxMTM1MywgMC4wMTEzNzUsIDAuMDExMzgyLCAwLjAxMTM4NSwgMC4wMTEzODcsIDAuMDExMzg4IiwgXAotICAgICAgICAgICIwLjAxMTMsIDAuMDExMzQ5LCAwLjAxMTM3MiwgMC4wMTEzNywgMC4wMTEzOCwgMC4wMTEzODUsIDAuMDExMzg1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI1MjksIDAuMDAyNTQzLCAwLjAwMjU0NCwgMC4wMDI1NDQsIDAuMDAyNTQ0LCAwLjAwMjU0NCwgMC4wMDI1NDMiLCBcCi0gICAgICAgICAgIjAuMDAyNDE5LCAwLjAwMjUxOCwgMC4wMDI1MywgMC4wMDI1MzQsIDAuMDAyNTM3LCAwLjAwMjUzNiwgMC4wMDI1MzkiLCBcCi0gICAgICAgICAgIjAuMDAyMzE0LCAwLjAwMjQ4NSwgMC4wMDI1MTEsIDAuMDAyNTE5LCAwLjAwMjUyNiwgMC4wMDI1MjksIDAuMDAyNTMyIiwgXAotICAgICAgICAgICIwLjAwMjI1LCAwLjAwMjQ1OCwgMC4wMDI0OTMsIDAuMDAyNTA1LCAwLjAwMjUxNiwgMC4wMDI1MjEsIDAuMDAyNTI1IiwgXAotICAgICAgICAgICIwLjAwMjIwNSwgMC4wMDI0MjgsIDAuMDAyNDc1LCAwLjAwMjQ5MSwgMC4wMDI1MDUsIDAuMDAyNTEzLCAwLjAwMjUxOSIsIFwKLSAgICAgICAgICAiMC4wMDIxNjYsIDAuMDAyMzkyLCAwLjAwMjQ1MSwgMC4wMDI0NzEsIDAuMDAyNDksIDAuMDAyNSwgMC4wMDI1MDkiLCBcCi0gICAgICAgICAgIjAuMDAyMTUzLCAwLjAwMjM2OCwgMC4wMDI0MzQsIDAuMDAyNDU3LCAwLjAwMjQ3OSwgMC4wMDI0OSwgMC4wMDI1MDIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTAwNjEsIDAuMDEwMDcyLCAwLjAxMDA3MywgMC4wMTAwNjksIDAuMDEwMDcsIDAuMDEwMDY4LCAwLjAxMDA2NSIsIFwKLSAgICAgICAgICAiMC4wMDk5MzUsIDAuMDEwMDEsIDAuMDEwMDIyLCAwLjAxMDAyMSwgMC4wMTAwMjIsIDAuMDEwMDIyLCAwLjAxMDAxOSIsIFwKLSAgICAgICAgICAiMC4wMDk4ODksIDAuMDA5OTg1LCAwLjAxMDAwMywgMC4wMTAwMDYsIDAuMDEwMDA5LCAwLjAxMDAwOSwgMC4wMTAwMDgiLCBcCi0gICAgICAgICAgIjAuMDA5ODY3LCAwLjAwOTk2NywgMC4wMDk5ODYsIDAuMDA5OTk0LCAwLjAxLCAwLjAxMDAwNCwgMC4wMTAwMDMiLCBcCi0gICAgICAgICAgIjAuMDA5OTEzLCAwLjAwOTk2OCwgMC4wMDk5ODUsIDAuMDA5OTkyLCAwLjAwOTk5NywgMC4wMDk5OTgsIDAuMDA5OTk3IiwgXAotICAgICAgICAgICIwLjAwOTk4OCwgMC4wMDk5NjcsIDAuMDA5OTgxLCAwLjAwOTk4NywgMC4wMDk5OTQsIDAuMDA5OTk5LCAwLjAwOTk5NyIsIFwKLSAgICAgICAgICAiMC4wMTAwNzYsIDAuMDA5OTgyLCAwLjAwOTk5MSwgMC4wMDk5OTMsIDAuMDA5OTk2LCAwLjAwOTk5NiwgMC4wMDk5OTciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTEwMywgMC4wMDExNjQsIDAuMDAxMTcsIDAuMDAxMTcyLCAwLjAwMTE3NCwgMC4wMDExNzQsIDAuMDAxMTc1IiwgXAotICAgICAgICAgICIwLjAwMDk5NiwgMC4wMDEyMDksIDAuMDAxMjM1LCAwLjAwMTI0MywgMC4wMDEyNSwgMC4wMDEyNTQsIDAuMDAxMjU3IiwgXAotICAgICAgICAgICIwLjAwMDg1NywgMC4wMDExNzQsIDAuMDAxMjIxLCAwLjAwMTIzNiwgMC4wMDEyNDksIDAuMDAxMjU1LCAwLjAwMTI2MiIsIFwKLSAgICAgICAgICAiMC4wMDA3NjgsIDAuMDAxMTM0LCAwLjAwMTE5OCwgMC4wMDEyMTksIDAuMDAxMjM4LCAwLjAwMTI0OCwgMC4wMDEyNTciLCBcCi0gICAgICAgICAgIjAuMDAwNzEyLCAwLjAwMTA5MywgMC4wMDExNzYsIDAuMDAxMjAxLCAwLjAwMTIyNSwgMC4wMDEyMzgsIDAuMDAxMjUiLCBcCi0gICAgICAgICAgIjAuMDAwNjY0LCAwLjAwMTAzOCwgMC4wMDExMzgsIDAuMDAxMTcyLCAwLjAwMTIwNCwgMC4wMDEyMiwgMC4wMDEyMzYiLCBcCi0gICAgICAgICAgIjAuMDAwNjQ2LCAwLjAwMSwgMC4wMDExMSwgMC4wMDExNDksIDAuMDAxMTg5LCAwLjAwMTIwNiwgMC4wMDEyMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDgzOTQsIDAuMDA4NDQ5LCAwLjAwODQ1NSwgMC4wMDg0NTgsIDAuMDA4NDU3LCAwLjAwODQ1NywgMC4wMDg0NTgiLCBcCi0gICAgICAgICAgIjAuMDA4MjczLCAwLjAwODQ0NSwgMC4wMDg0NjgsIDAuMDA4NDc2LCAwLjAwODQ4MywgMC4wMDg0ODYsIDAuMDA4NDkxIiwgXAotICAgICAgICAgICIwLjAwODIzMywgMC4wMDg0MTYsIDAuMDA4NDU1LCAwLjAwODQ2NywgMC4wMDg0NzcsIDAuMDA4NDg1LCAwLjAwODQ5IiwgXAotICAgICAgICAgICIwLjAwODIxNSwgMC4wMDgzOTEsIDAuMDA4NDM1LCAwLjAwODQ1NCwgMC4wMDg0NjYsIDAuMDA4NDczLCAwLjAwODQ4MSIsIFwKLSAgICAgICAgICAiMC4wMDgyOCwgMC4wMDgzODcsIDAuMDA4NDI5LCAwLjAwODQ0OCwgMC4wMDg0NjIsIDAuMDA4NDcsIDAuMDA4NDc4IiwgXAotICAgICAgICAgICIwLjAwODMxMywgMC4wMDgzOTIsIDAuMDA4NDIzLCAwLjAwODQzMiwgMC4wMDg0NiwgMC4wMDg0NjgsIDAuMDA4NDc0IiwgXAotICAgICAgICAgICIwLjAwODQxMywgMC4wMDgzOTgsIDAuMDA4NDM1LCAwLjAwODQ0MywgMC4wMDg0NTgsIDAuMDA4NDY4LCAwLjAwODQ2NiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzODY1LCAwLjAwMzkzMSwgMC4wMDM5MzgsIDAuMDAzOTQxLCAwLjAwMzk0MSwgMC4wMDM5NDIsIDAuMDAzOTQyIiwgXAotICAgICAgICAgICIwLjAwMzcwMSwgMC4wMDM4NzUsIDAuMDAzOTA2LCAwLjAwMzkxNSwgMC4wMDM5MjQsIDAuMDAzOTI5LCAwLjAwMzkzMSIsIFwKLSAgICAgICAgICAiMC4wMDM2NDQsIDAuMDAzODI0LCAwLjAwMzg3MiwgMC4wMDM4OSwgMC4wMDM5MDIsIDAuMDAzOTExLCAwLjAwMzkxOSIsIFwKLSAgICAgICAgICAiMC4wMDM2NCwgMC4wMDM3OTcsIDAuMDAzODUsIDAuMDAzODcsIDAuMDAzODksIDAuMDAzODk5LCAwLjAwMzkwOCIsIFwKLSAgICAgICAgICAiMC4wMDM2NzgsIDAuMDAzNzcsIDAuMDAzODI5LCAwLjAwMzg1MiwgMC4wMDM4NzQsIDAuMDAzODg3LCAwLjAwMzg5OCIsIFwKLSAgICAgICAgICAiMC4wMDM3NzEsIDAuMDAzNzY1LCAwLjAwMzgxNSwgMC4wMDM4MzgsIDAuMDAzODYxLCAwLjAwMzg3MywgMC4wMDM4ODYiLCBcCi0gICAgICAgICAgIjAuMDAzODc0LCAwLjAwMzc3OSwgMC4wMDM4MTQsIDAuMDAzODMzLCAwLjAwMzg1NiwgMC4wMDM4NjksIDAuMDAzODgyIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogT0FJMzJYNCAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChPQUkzMlg0KSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuNzA2MzU2OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAzNTA5MTg7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAzNDk1Nzk7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAzNTA5MTg7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxNjM3LCAwLjAwMTYzNSwgMC4wMDE2MzUsIDAuMDAxNjM0LCAwLjAwMTYzNCwgMC4wMDE2MzQsIDAuMDAxNjM0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxNjQsIDAuMDAxNjQxLCAwLjAwMTY0LCAwLjAwMTY0LCAwLjAwMTY0MSwgMC4wMDE2NDEsIDAuMDAxNjQxIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihBMSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAzNDUzMDM7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAzNDQzMjY7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAzNDUzMDM7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxNjM3LCAwLjAwMTYzNiwgMC4wMDE2MzYsIDAuMDAxNjM2LCAwLjAwMTYzNiwgMC4wMDE2MzYsIDAuMDAxNjM1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxNjM5LCAwLjAwMTYzOSwgMC4wMDE2MzksIDAuMDAxNjQsIDAuMDAxNjQsIDAuMDAxNjQsIDAuMDAxNjQiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEEyKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDMxODg3NjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDMxODg3NjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDMxNzcxOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTYzOCwgMC4wMDE2MzcsIDAuMDAxNjM3LCAwLjAwMTYzNiwgMC4wMDE2MzYsIDAuMDAxNjM2LCAwLjAwMTYzNiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTYzOSwgMC4wMDE2MzksIDAuMDAxNjM5LCAwLjAwMTYzOSwgMC4wMDE2MzksIDAuMDAxNjQsIDAuMDAxNjQiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDMzODI1OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMzM2MTExOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMzM4MjU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyMzU2LCAwLjAwMjM1NywgMC4wMDIzNTgsIDAuMDAyMzU5LCAwLjAwMjM1OCwgMC4wMDIzNTcsIDAuMDAyMzU3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxODU3LCAwLjAwMTg1OCwgMC4wMDE4NiwgMC4wMDE4NTksIDAuMDAxODU5LCAwLjAwMTg1OSwgMC4wMDE4NiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQjEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMzIyODcyOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMzIyODE3OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMzIyODcyOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjM1NSwgMC4wMDIzNTYsIDAuMDAyMzU2LCAwLjAwMjM1NywgMC4wMDIzNTYsIDAuMDAyMzU1LCAwLjAwMjM1NiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTg1NiwgMC4wMDE4NTcsIDAuMDAxODU3LCAwLjAwMTg1NywgMC4wMDE4NTcsIDAuMDAxODU4LCAwLjAwMTg1OCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjM3ODkxMjsKLSAgICBmdW5jdGlvbiA6ICIoISgoQjArQjEpICgoQTArQTEpK0EyKSkpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzA2MjUsIDAuMjc1MTYxLCAwLjQ3ODg3OSwgMC42MjQwMTcsIDAuODU2NTAxLCAxLjA1OTM4LCAxLjM1MDM0IiwgXAotICAgICAgICAgICIwLjA3ODkyNywgMC4yODM3NzYsIDAuNDg3NDQ0LCAwLjYzMjY4OCwgMC44NjQ3MzgsIDEuMDY4NTcsIDEuMzU4NDkiLCBcCi0gICAgICAgICAgIjAuMDg3NjY4LCAwLjI5MjQ5OCwgMC40OTU5MiwgMC42NDE1ODUsIDAuODczNTA1LCAxLjA3NzA5LCAxLjM2NzEiLCBcCi0gICAgICAgICAgIjAuMDk1OCwgMC4zMDA3MywgMC41MDQzNDIsIDAuNjQ5MzgzLCAwLjg4MTk0NSwgMS4wODUxMiwgMS4zNzU1MiIsIFwKLSAgICAgICAgICAiMC4xMDM3MDQsIDAuMzA4NjM3LCAwLjUxMjI2NywgMC42NTczOCwgMC44ODk4MjYsIDEuMDkyNjcsIDEuMzgzODEiLCBcCi0gICAgICAgICAgIjAuMTE1MzUsIDAuMzIxMjY5LCAwLjUyNTAyMiwgMC42NzAwODEsIDAuOTAyMzczLCAxLjEwNTY2LCAxLjM5NjQ0IiwgXAotICAgICAgICAgICIwLjEyNDU5LCAwLjMzMjIzNSwgMC41MzU2NzYsIDAuNjgxMzE1LCAwLjkxMzc0OCwgMS4xMTY2NCwgMS40MDY5MSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExODY2OCwgMC41MjcwNDMsIDAuOTM1NDE4LCAxLjIyNjk5LCAxLjY5MzY0LCAyLjEwMTc2LCAyLjY4NDYxIiwgXAotICAgICAgICAgICIwLjExODY2MywgMC41MjcxMDYsIDAuOTM1NDE2LCAxLjIyNjk3LCAxLjY5MzcyLCAyLjEwMTQzLCAyLjY4NDkxIiwgXAotICAgICAgICAgICIwLjExOTMzMSwgMC41MjcxMzEsIDAuOTM1NDg0LCAxLjIyNzAyLCAxLjY5MzUsIDIuMTAxNDcsIDIuNjg0ODYiLCBcCi0gICAgICAgICAgIjAuMTIxMTc0LCAwLjUyNzA1NSwgMC45MzU0ODksIDEuMjI3MDgsIDEuNjkzNTMsIDIuMTAxNTIsIDIuNjg0ODkiLCBcCi0gICAgICAgICAgIjAuMTIzNzkxLCAwLjUyNzE1OCwgMC45MzU0MDcsIDEuMjI3MDUsIDEuNjkzNDksIDIuMTAxNzYsIDIuNjg0NTciLCBcCi0gICAgICAgICAgIjAuMTI5MzU3LCAwLjUyODQ1NCwgMC45MzU0NTksIDEuMjI3MTEsIDEuNjkzNzEsIDIuMTAxNzMsIDIuNjg0ODYiLCBcCi0gICAgICAgICAgIjAuMTM1MjgyLCAwLjUzMDYsIDAuOTM1NzUsIDEuMjI2ODksIDEuNjkzNTcsIDIuMTAxNjMsIDIuNjg0OCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1MzgwMiwgMC4xOTI0MTUsIDAuMzI5NzMzLCAwLjQyNzY0MiwgMC41ODU0ODUsIDAuNzIzOTkzLCAwLjkyMTU0OCIsIFwKLSAgICAgICAgICAiMC4wNjM1NDYsIDAuMjAyMjM3LCAwLjMzOTQ3NSwgMC40MzczMTQsIDAuNTk1MzA2LCAwLjczMzQ1NywgMC45MzE2NjYiLCBcCi0gICAgICAgICAgIjAuMDc0NzUyLCAwLjIxMzQ5OCwgMC4zNTA3NzEsIDAuNDQ4NzA2LCAwLjYwNjQ1MSwgMC43NDQ2NzcsIDAuOTQyOTE4IiwgXAotICAgICAgICAgICIwLjA4NTY0NywgMC4yMjQ0ODYsIDAuMzYxNzk5LCAwLjQ1OTYyNiwgMC42MTcyMTYsIDAuNzU2MDEyLCAwLjk1MzQ1MiIsIFwKLSAgICAgICAgICAiMC4wOTYzMjYsIDAuMjM1Mzc0LCAwLjM3Mjc4NCwgMC40NzA2MzQsIDAuNjI4MzUzLCAwLjc2NzA1NiwgMC45NjQzNDIiLCBcCi0gICAgICAgICAgIjAuMTExOTIyLCAwLjI1Mjc5NSwgMC4zOTAxMzcsIDAuNDg4MDc3LCAwLjY0NTczNiwgMC43ODQxNTMsIDAuOTgxOTIiLCBcCi0gICAgICAgICAgIjAuMTIzOTgzLCAwLjI2NzgxLCAwLjQwNTIxMywgMC41MDMyODUsIDAuNjYwODI2LCAwLjc5OTE4NCwgMC45OTcxNzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzM5MjIsIDAuMzQ0ODk2LCAwLjYxNzk0NywgMC44MTMzMzgsIDEuMTI2NzIsIDEuNDAwMTYsIDEuNzkxNDkiLCBcCi0gICAgICAgICAgIjAuMDczOTE5LCAwLjM0NDc2MSwgMC42MTc4MzcsIDAuODEzMjg0LCAxLjEyNjM1LCAxLjQwMDcxLCAxLjc5MTc0IiwgXAotICAgICAgICAgICIwLjA3NDk2MiwgMC4zNDQ5MDQsIDAuNjE3NzAzLCAwLjgxMzYzOCwgMS4xMjY1NywgMS40MDAxMywgMS43OTE2NiIsIFwKLSAgICAgICAgICAiMC4wNzc4NCwgMC4zNDQ3NSwgMC42MTc5MjEsIDAuODEzMzc3LCAxLjEyNjM3LCAxLjQwMDEsIDEuNzkyMTkiLCBcCi0gICAgICAgICAgIjAuMDgxODM1LCAwLjM0NTMzNywgMC42MTc3MDMsIDAuODEzMzA1LCAxLjEyNjIyLCAxLjQwMDI4LCAxLjc5MTM0IiwgXAotICAgICAgICAgICIwLjA5MDE1NywgMC4zNDc4MjcsIDAuNjE3NzUsIDAuODEzMzEsIDEuMTI2NDgsIDEuNDAwMjMsIDEuNzkxNDQiLCBcCi0gICAgICAgICAgIjAuMDk4MTEzLCAwLjM1MTY4OSwgMC42MTkwNDUsIDAuODEzMzU3LCAxLjEyNjM4LCAxLjQwMDA4LCAxLjc5MTM4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkExIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2NzM0NywgMC4yNzIwMzQsIDAuNDc1NDQ5LCAwLjYyMDY3OSwgMC44NTI5MjUsIDEuMDU2MTYsIDEuMzQ3MDEiLCBcCi0gICAgICAgICAgIjAuMDc1NjcsIDAuMjgwNDY3LCAwLjQ4Mzk0MywgMC42MjkyNTEsIDAuODYxNTA5LCAxLjA2NDkzLCAxLjM1NTM4IiwgXAotICAgICAgICAgICIwLjA4NTUxMSwgMC4yOTAzNywgMC40OTQxOTksIDAuNjM5MDc4LCAwLjg3MTUzLCAxLjA3NDc5LCAxLjM2NTE1IiwgXAotICAgICAgICAgICIwLjA5NTI4NSwgMC4zMDAyNjcsIDAuNTAzODYxLCAwLjY0OTM0MywgMC44ODE0OTcsIDEuMDg0NDIsIDEuMzc1MTciLCBcCi0gICAgICAgICAgIjAuMTA1MTI5LCAwLjMwOTgxMSwgMC41MTM3NTksIDAuNjU4OTQxLCAwLjg5MTMyMSwgMS4wOTQzNCwgMS4zODU1NyIsIFwKLSAgICAgICAgICAiMC4xMTk3OTksIDAuMzI1ODgzLCAwLjUyOTYzNiwgMC42NzUxMzcsIDAuOTA3MTUzLCAxLjExMDM4LCAxLjQwMTA4IiwgXAotICAgICAgICAgICIwLjEzMTAxNSwgMC4zMzk2NDYsIDAuNTQzNjM2LCAwLjY4OTA2MywgMC45MjEwMzYsIDEuMTI0MzQsIDEuNDE0NjMiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTg2NTgsIDAuNTI3MDg5LCAwLjkzNTQzMiwgMS4yMjcwNywgMS42OTMzNSwgMi4xMDE3LCAyLjY4NDU2IiwgXAotICAgICAgICAgICIwLjExODY3LCAwLjUyNzEwMSwgMC45MzU0MzYsIDEuMjI3LCAxLjY5MzQ1LCAyLjEwMTQxLCAyLjY4NDU1IiwgXAotICAgICAgICAgICIwLjExOTk3NCwgMC41MjcxMDksIDAuOTM1MzI5LCAxLjIyNzA0LCAxLjY5MzQ4LCAyLjEwMTcsIDIuNjg0OTkiLCBcCi0gICAgICAgICAgIjAuMTIzMTQ2LCAwLjUyNjk4MywgMC45MzU0ODYsIDEuMjI3MSwgMS42OTM2MSwgMi4xMDE3MiwgMi42ODQ4MyIsIFwKLSAgICAgICAgICAiMC4xMjc2MDMsIDAuNTI3MTU5LCAwLjkzNTQ0MiwgMS4yMjcwNCwgMS42OTM2MiwgMi4xMDE4MSwgMi42ODQ0NiIsIFwKLSAgICAgICAgICAiMC4xMzYzOTksIDAuNTI4ODk5LCAwLjkzNTQ2NSwgMS4yMjY5OCwgMS42OTM2LCAyLjEwMTgyLCAyLjY4NDkyIiwgXAotICAgICAgICAgICIwLjE0NDk2NiwgMC41MzE2MzgsIDAuOTM1NjUzLCAxLjIyNzA4LCAxLjY5MzQ5LCAyLjEwMTM5LCAyLjY4NDU0Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDUwMDMsIDAuMTg3ODEzLCAwLjMyNDkzNiwgMC40MjI4MzMsIDAuNTc5MjM1LCAwLjcxNjM3OCwgMC45MTE3NTkiLCBcCi0gICAgICAgICAgIjAuMDU5Nzk2LCAwLjE5NzgyMiwgMC4zMzUwNDksIDAuNDMyODEzLCAwLjU4OTM2MiwgMC43MjU5OCwgMC45MjIxODciLCBcCi0gICAgICAgICAgIjAuMDcwOTc0LCAwLjIwOTE4NiwgMC4zNDYxODcsIDAuNDQ0MTc4LCAwLjYwMDkwMiwgMC43MzczOCwgMC45MzM1OTgiLCBcCi0gICAgICAgICAgIjAuMDgxNzgsIDAuMjIwMDQ0LCAwLjM1NzI0MSwgMC40NTUwMzMsIDAuNjExNTI4LCAwLjc0ODcxMiwgMC45NDQwNyIsIFwKLSAgICAgICAgICAiMC4wOTIwNTMsIDAuMjMwODM0LCAwLjM2ODE5NCwgMC40NjYwMSwgMC42MjI1MDgsIDAuNzU5NjY1LCAwLjk1NDk4MiIsIFwKLSAgICAgICAgICAiMC4xMDY5NCwgMC4yNDgyNjMsIDAuMzg1NDc0LCAwLjQ4MzQ1NiwgMC42NDAwOCwgMC43NzcxMjQsIDAuOTcyNjM5IiwgXAotICAgICAgICAgICIwLjExODU4OCwgMC4yNjMyNDQsIDAuNDAwNTYyLCAwLjQ5ODYxNSwgMC42NTUyOTksIDAuNzkyMTg4LCAwLjk4ODAxOSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2ODcwNiwgMC4zMzk0OTgsIDAuNjEwMjI5LCAwLjgwMzQ3NiwgMS4xMTQxMiwgMS4zODcwMSwgMS43NzU5MSIsIFwKLSAgICAgICAgICAiMC4wNjg2NzUsIDAuMzM5NTA3LCAwLjYxMDIzNCwgMC44MDM3NTcsIDEuMTE0MTYsIDEuMzg2NjIsIDEuNzc2MzUiLCBcCi0gICAgICAgICAgIjAuMDY5ODY4LCAwLjMzOTU5NiwgMC42MTAyNjUsIDAuODAzNDg4LCAxLjExNDQsIDEuMzg2NDMsIDEuNzc2MTgiLCBcCi0gICAgICAgICAgIjAuMDczMDI3LCAwLjMzOTYwNSwgMC42MTAyNDQsIDAuODAzNTQ5LCAxLjExNDIsIDEuMzg3LCAxLjc3NTM3IiwgXAotICAgICAgICAgICIwLjA3NzM4MywgMC4zNDAxNjYsIDAuNjEwMjUsIDAuODAzNzk3LCAxLjExNDE4LCAxLjM4NjgzLCAxLjc3NTYiLCBcCi0gICAgICAgICAgIjAuMDg2MDI1LCAwLjM0Mjg3NSwgMC42MTA0OTEsIDAuODAzNTI3LCAxLjExNDU5LCAxLjM4NjQxLCAxLjc3NTQ0IiwgXAotICAgICAgICAgICIwLjA5NDEwOSwgMC4zNDY3OCwgMC42MTE3NzksIDAuODAzODA0LCAxLjExNDYxLCAxLjM4NjgxLCAxLjc3NTYxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEyIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2MDE2OSwgMC4yNjQ4MDYsIDAuNDY4NDk3LCAwLjYxMzM1OCwgMC44NDYwMjEsIDEuMDQ4OTUsIDEuMzQwMDQiLCBcCi0gICAgICAgICAgIjAuMDY4MzU3LCAwLjI3MzMxOSwgMC40NzY5NTQsIDAuNjIyMTg4LCAwLjg1NDMyOSwgMS4wNTc3MiwgMS4zNDc1NiIsIFwKLSAgICAgICAgICAiMC4wNzg4MzcsIDAuMjgzODYzLCAwLjQ4NzI4OCwgMC42MzIxNTEsIDAuODY0NzE3LCAxLjA2ODI1LCAxLjM1ODEzIiwgXAotICAgICAgICAgICIwLjA4OTkzNywgMC4yOTQ4NDksIDAuNDk4MzczLCAwLjY0NDAwNywgMC44NzU0MzgsIDEuMDc5MTQsIDEuMzY5NTgiLCBcCi0gICAgICAgICAgIjAuMTAwNjY4LCAwLjMwNTIxOSwgMC41MDg4MDQsIDAuNjU0MzI5LCAwLjg4NTk0NCwgMS4wODk3NCwgMS4zNzk0OSIsIFwKLSAgICAgICAgICAiMC4xMTc0NzYsIDAuMzIyNjM0LCAwLjUyNjE4MiwgMC42NzEyOTksIDAuOTAzNjM5LCAxLjEwNjk1LCAxLjM5NzY5IiwgXAotICAgICAgICAgICIwLjEyOTg0MiwgMC4zMzc2ODIsIDAuNTQxMjkxLCAwLjY4NjUyOSwgMC45MTg2MzUsIDEuMTIyMjQsIDEuNDEyNjIiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTg2NjQsIDAuNTI3MTE2LCAwLjkzNTQyNywgMS4yMjcwOCwgMS42OTM1OSwgMi4xMDE3NiwgMi42ODQ1IiwgXAotICAgICAgICAgICIwLjExODI5MiwgMC41MjcxMjIsIDAuOTM1NDAzLCAxLjIyNzA4LCAxLjY5MzYxLCAyLjEwMTc1LCAyLjY4NDM4IiwgXAotICAgICAgICAgICIwLjEyMTE5OSwgMC41MjcwMDksIDAuOTM1NTEzLCAxLjIyNzEsIDEuNjkzNiwgMi4xMDE4NiwgMi42ODQ3OCIsIFwKLSAgICAgICAgICAiMC4xMjY3LCAwLjUyNzA2MywgMC45MzU1MDIsIDEuMjI2OTQsIDEuNjkzNDEsIDIuMTAxNjcsIDIuNjg1MDEiLCBcCi0gICAgICAgICAgIjAuMTM0MDc1LCAwLjUyNjk2MywgMC45MzUzNzQsIDEuMjI3MDcsIDEuNjkzNjIsIDIuMTAxNjYsIDIuNjg0OTQiLCBcCi0gICAgICAgICAgIjAuMTQ2Njg5LCAwLjUyOTU5OSwgMC45MzU0MTIsIDEuMjI3MDcsIDEuNjkzNjQsIDIuMTAxNywgMi42ODQ0NiIsIFwKLSAgICAgICAgICAiMC4xNTg2MzMsIDAuNTMzOCwgMC45MzU1MzYsIDEuMjI3MDcsIDEuNjkzNjYsIDIuMTAxNzMsIDIuNjg0NDUiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDU5NzUsIDAuMTg1NjczLCAwLjMyNDc0NCwgMC40MjQyOTQsIDAuNTgyOTIzLCAwLjcyMjQyMSwgMC45MjA3MzMiLCBcCi0gICAgICAgICAgIjAuMDU1ODIzLCAwLjE5NTc5NSwgMC4zMzQ5OTQsIDAuNDM0Mzk2LCAwLjU5MzM5NiwgMC43MzI0MDQsIDAuOTMwODY2IiwgXAotICAgICAgICAgICIwLjA2Njg2LCAwLjIwNzAwNSwgMC4zNDYyNzksIDAuNDQ1NTQsIDAuNjA0NjE5LCAwLjc0MzU1NywgMC45NDI1NDgiLCBcCi0gICAgICAgICAgIjAuMDc3NTc5LCAwLjIxODAxMywgMC4zNTc0MTksIDAuNDU2NjkyLCAwLjYxNTU3MSwgMC43NTQ1MywgMC45NTM2MzciLCBcCi0gICAgICAgICAgIjAuMDg3NjA0LCAwLjIyODcxOSwgMC4zNjgyNDEsIDAuNDY3NjY0LCAwLjYyNjY4MSwgMC43NjYxNDMsIDAuOTY0MjIzIiwgXAotICAgICAgICAgICIwLjEwMTgxMiwgMC4yNDYwOTcsIDAuMzg1NDc2LCAwLjQ4NDk2MywgMC42NDQzNzIsIDAuNzgzMTk3LCAwLjk4MTg2MSIsIFwKLSAgICAgICAgICAiMC4xMTI4NzEsIDAuMjYxMzAxLCAwLjQwMDU0NCwgMC41MDAxNTMsIDAuNjU5MzI3LCAwLjc5ODM2MywgMC45OTcxNjgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjQzNTMsIDAuMzM5MjA0LCAwLjYxMzkxMiwgMC44MTA1NSwgMS4xMjk0LCAxLjQwMzQsIDEuODAzOTkiLCBcCi0gICAgICAgICAgIjAuMDY0MzU1LCAwLjMzOTIyNCwgMC42MTM5MTYsIDAuODEwMjI2LCAxLjEyNzUyLCAxLjQwMzEyLCAxLjgwMDAxIiwgXAotICAgICAgICAgICIwLjA2NTc3LCAwLjMzOTA4NSwgMC42MTM5NTQsIDAuODEwOTU2LCAxLjEyNjM4LCAxLjQwNjgxLCAxLjc5ODQzIiwgXAotICAgICAgICAgICIwLjA2OTA1MSwgMC4zMzkxOTMsIDAuNjEzOTc4LCAwLjgxMDI2MywgMS4xMzM1NCwgMS40MDI3NCwgMS44MDMwOCIsIFwKLSAgICAgICAgICAiMC4wNzM2OSwgMC4zMzk3MTgsIDAuNjE2MzU5LCAwLjgxMjUzMSwgMS4xMjY0NSwgMS40MDM2NCwgMS44MDgxMyIsIFwKLSAgICAgICAgICAiMC4wODI5NDIsIDAuMzQyNDU0LCAwLjYxNDIxNCwgMC44MTQ1MjcsIDEuMTI2NjMsIDEuNDA3MjQsIDEuODA5OTMiLCBcCi0gICAgICAgICAgIjAuMDkxMDY1LCAwLjM0NjcxMywgMC42MTU4ODYsIDAuODEyNjc2LCAxLjEyNjI1LCAxLjQwNjQ5LCAxLjgwOTgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjAiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM1ODkyLCAwLjE3MzQ3NiwgMC4zMTA5MTUsIDAuNDA5MTc1LCAwLjU2NjIxMSwgMC43MDM2OTQsIDAuODk5OTUiLCBcCi0gICAgICAgICAgIjAuMDQ0NDExLCAwLjE4MjI5OCwgMC4zMTk3NjMsIDAuNDE3OTE0LCAwLjU3NTA5NiwgMC43MTI0NjYsIDAuOTA4ODg4IiwgXAotICAgICAgICAgICIwLjA1NDMxNiwgMC4xOTIzNjYsIDAuMzI5ODk5LCAwLjQyODA3LCAwLjU4NTE4OCwgMC43MjI3MDUsIDAuOTE4OTY5IiwgXAotICAgICAgICAgICIwLjA2MzQ2NSwgMC4yMDI0OTIsIDAuMzQwMDQ4LCAwLjQzODQ2MywgMC41OTUzNDIsIDAuNzMyODE4LCAwLjkyOTA4IiwgXAotICAgICAgICAgICIwLjA3MTQ4NiwgMC4yMTI1NDksIDAuMzUwMzQ4LCAwLjQ0ODM5OCwgMC42MDU0NzUsIDAuNzQyOTk0LCAwLjkzOTMzNSIsIFwKLSAgICAgICAgICAiMC4wODI2MzYsIDAuMjI4MzUsIDAuMzY2MjM2LCAwLjQ2NDM3NSwgMC42MjE2MTgsIDAuNzU5MDg4LCAwLjk1NTQ1IiwgXAotICAgICAgICAgICIwLjA5MTQsIDAuMjQyMjQ4LCAwLjM3OTk2NiwgMC40Nzg0OTgsIDAuNjM1NzQ2LCAwLjc3MzI0OSwgMC45Njk2NDQiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODE2OTMsIDAuMzU5MTQ4LCAwLjYzNzc4MywgMC44MzczNTUsIDEuMTU2MTIsIDEuNDM1NTMsIDEuODM0NDMiLCBcCi0gICAgICAgICAgIjAuMDgyMTM2LCAwLjM1OTE2LCAwLjYzNzk3MiwgMC44MzcyMDcsIDEuMTU2NCwgMS40MzUyMywgMS44MzQyNCIsIFwKLSAgICAgICAgICAiMC4wODU0MDQsIDAuMzU5MTE3LCAwLjYzNzg0NCwgMC44MzcyODgsIDEuMTU2MTUsIDEuNDM1MjgsIDEuODM0NDQiLCBcCi0gICAgICAgICAgIjAuMDkwMzI5LCAwLjM1OTQ5NiwgMC42Mzc5NDMsIDAuODM3MDM3LCAxLjE1NjMzLCAxLjQzNTIyLCAxLjgzNDIxIiwgXAotICAgICAgICAgICIwLjA5NjExOCwgMC4zNjA5MjQsIDAuNjM4MDE5LCAwLjgzNzA0NywgMS4xNTYxNCwgMS40MzUyMiwgMS44MzQzIiwgXAotICAgICAgICAgICIwLjEwNjU2NCwgMC4zNjQ4MzQsIDAuNjM4NzAzLCAwLjgzNzA2MywgMS4xNTYyMywgMS40MzUxOCwgMS44MzQyMyIsIFwKLSAgICAgICAgICAiMC4xMTU5MjYsIDAuMzY5NjIyLCAwLjY0MDc2LCAwLjgzNzgwMywgMS4xNTYyMSwgMS40MzUyMywgMS44MzQxOCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0NTY0NCwgMC4xODQzMzYsIDAuMzIxNTEyLCAwLjQxOTM2MSwgMC41NzU5NjIsIDAuNzEzMDc0LCAwLjkxMTQwNyIsIFwKLSAgICAgICAgICAiMC4wNTQ3OSwgMC4xOTM2NTgsIDAuMzMwOTA5LCAwLjQyODc3OSwgMC41ODUzMzEsIDAuNzIyMTcxLCAwLjkyMDc2MiIsIFwKLSAgICAgICAgICAiMC4wNjY3MTksIDAuMjA1NTUxLCAwLjM0MjQ0MiwgMC40NDA2MTgsIDAuNTk3MTEsIDAuNzM0MDczLCAwLjkzMjU5MiIsIFwKLSAgICAgICAgICAiMC4wNzg0NDIsIDAuMjE2OTQ1LCAwLjM1NDIxOCwgMC40NTIxMDQsIDAuNjA4MzI4LCAwLjc0NTU3MiwgMC45NDM5OTUiLCBcCi0gICAgICAgICAgIjAuMDkwMDQ2LCAwLjIyODM2OCwgMC4zNjU4NDYsIDAuNDYzNzg5LCAwLjYyMDU3NiwgMC43NTc1MTcsIDAuOTU1NzkyIiwgXAotICAgICAgICAgICIwLjEwNjM5OCwgMC4yNDczMTksIDAuMzg0NDMyLCAwLjQ4MjIxNSwgMC42Mzg4NDQsIDAuNzc1OTY2LCAwLjk3NDM2MiIsIFwKLSAgICAgICAgICAiMC4xMTkwODksIDAuMjYzODI0LCAwLjQwMDk4NCwgMC40OTg3NjYsIDAuNjU1MjM2LCAwLjc5MjI1MiwgMC45OTA4NDciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzM5MjEsIDAuMzQ0NzEsIDAuNjE1MjUyLCAwLjgxMDI3MiwgMS4xMjQ3LCAxLjM5OTE5LCAxLjc5MTk2IiwgXAotICAgICAgICAgICIwLjA3MzY1OSwgMC4zNDQ2NDUsIDAuNjE1MjcyLCAwLjgxMDI1OCwgMS4xMjQzLCAxLjM5OTMyLCAxLjc5MTkiLCBcCi0gICAgICAgICAgIjAuMDc3MjYxLCAwLjM0NDkwNCwgMC42MTU0NjgsIDAuODEwMjYzLCAxLjEyNDY4LCAxLjM5OTE1LCAxLjc5MTg5IiwgXAotICAgICAgICAgICIwLjA4MzU4OCwgMC4zNDQ3MzcsIDAuNjE1Mzg4LCAwLjgxMDUzNiwgMS4xMjQ5NCwgMS4zOTkxNCwgMS43OTIxNyIsIFwKLSAgICAgICAgICAiMC4wOTEzODEsIDAuMzQ2MTQxLCAwLjYxNTQ3MiwgMC44MTAyNiwgMS4xMjQzMiwgMS4zOTk1OSwgMS43OTE5MSIsIFwKLSAgICAgICAgICAiMC4xMDQ4NzcsIDAuMzUxNDM4LCAwLjYxNTk1NCwgMC44MTAyMDYsIDEuMTI0NzUsIDEuMzk5NzksIDEuNzkyMDYiLCBcCi0gICAgICAgICAgIjAuMTE2NzQsIDAuMzU3NzI0LCAwLjYxODEyNiwgMC44MTA2MTUsIDEuMTI0MjQsIDEuMzk5OTEsIDEuNzkxODIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDMyNzc1LCAwLjE3MDQyMiwgMC4zMDc5NDksIDAuNDA2MDY5LCAwLjU2MzEwNCwgMC43MDA2ODQsIDAuODk2OTEzIiwgXAotICAgICAgICAgICIwLjA0MTYyNSwgMC4xNzk2MiwgMC4zMTcwNTksIDAuNDE1MjgzLCAwLjU3MjQxNSwgMC43MDk4MDgsIDAuOTA2MTUiLCBcCi0gICAgICAgICAgIjAuMDUyOTk0LCAwLjE5MDg0MSwgMC4zMjg0MTIsIDAuNDI2NTczLCAwLjU4MzY4NywgMC43MjExMDcsIDAuOTE3NTQxIiwgXAotICAgICAgICAgICIwLjA2Mzk1NywgMC4yMDI0OTYsIDAuMzQwMDcxLCAwLjQzODI3OCwgMC41OTU0NDYsIDAuNzMyODY3LCAwLjkyOTIyMyIsIFwKLSAgICAgICAgICAiMC4wNzI5MTMsIDAuMjEzODQ1LCAwLjM1MTMxMSwgMC40NDk2MDcsIDAuNjA2NjUyLCAwLjc0NDE2NSwgMC45NDA0OTEiLCBcCi0gICAgICAgICAgIjAuMDg1MDEzLCAwLjIzMjE1LCAwLjM2OTcwOCwgMC40Njc5MjQsIDAuNjI1MDUyLCAwLjc2MjUxMSwgMC45NTg4MzYiLCBcCi0gICAgICAgICAgIjAuMDk0NjMzLCAwLjI0ODQzLCAwLjM4NTkxMSwgMC40ODM5NzcsIDAuNjQxMTA4LCAwLjc3ODU3MywgMC45NzQ4ODgiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODE2OSwgMC4zNTkxNDIsIDAuNjM3OTQyLCAwLjgzNzA2NywgMS4xNTYwNiwgMS40MzUyNCwgMS44MzQyOCIsIFwKLSAgICAgICAgICAiMC4wODI4NzQsIDAuMzU5MTU2LCAwLjYzNzk0MSwgMC44MzcyMjUsIDEuMTU2MTgsIDEuNDM1MjEsIDEuODM0MjQiLCBcCi0gICAgICAgICAgIjAuMDg5MTE1LCAwLjM1OTE1NSwgMC42Mzc4NjgsIDAuODM2OTk1LCAxLjE1NjEsIDEuNDM1MTcsIDEuODM0NTEiLCBcCi0gICAgICAgICAgIjAuMDk3MTQzLCAwLjM1OTQ0NSwgMC42Mzc5NSwgMC44MzcsIDEuMTU2MTMsIDEuNDM1MTksIDEuODM0NDciLCBcCi0gICAgICAgICAgIjAuMTA2MjcyLCAwLjM2MTY5MywgMC42Mzc5MzUsIDAuODM3MTc1LCAxLjE1NjMxLCAxLjQzNTIyLCAxLjgzNDAyIiwgXAotICAgICAgICAgICIwLjEyMTU0MywgMC4zNjc5LCAwLjYzODc0MiwgMC44MzY5OTEsIDEuMTU2MTQsIDEuNDM1MTcsIDEuODM0MzYiLCBcCi0gICAgICAgICAgIjAuMTMyOTE1LCAwLjM3NTM2NCwgMC42NDE5MDUsIDAuODM3OTM4LCAxLjE1NjI3LCAxLjQzNTE5LCAxLjgzNDM3Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQxODIsIDAuMTgxOTMsIDAuMzIwNjY2LCAwLjQxOTc0MSwgMC41Nzc3NzgsIDAuNzE2NjgxLCAwLjkxNDIyNSIsIFwKLSAgICAgICAgICAiMC4wNTA5NjcsIDAuMTkxNDIyLCAwLjMzMDE5MSwgMC40MjkxNywgMC41ODc0ODEsIDAuNzI1ODc4LCAwLjkyMzYxMiIsIFwKLSAgICAgICAgICAiMC4wNjI2ODEsIDAuMjAyOTA3LCAwLjM0MTc2MiwgMC40NDA2OTMsIDAuNTk4OTY2LCAwLjczNzU2NywgMC45MzUyMTUiLCBcCi0gICAgICAgICAgIjAuMDc0Nzg1LCAwLjIxNDYxOSwgMC4zNTM3MDIsIDAuNDUyNzg0LCAwLjYxMTA3NywgMC43NDk4ODksIDAuOTQ3MTc3IiwgXAotICAgICAgICAgICIwLjA4NTk4LCAwLjIyNjMsIDAuMzY1MDkyLCAwLjQ2NDIxNywgMC42MjIzODIsIDAuNzYxMjk1LCAwLjk1ODciLCBcCi0gICAgICAgICAgIjAuMTAxMzQxLCAwLjI0NDkwOCwgMC4zODM2MzksIDAuNDgyNzAzLCAwLjY0MDk3MiwgMC43Nzk2MTIsIDAuOTc3MjcyIiwgXAotICAgICAgICAgICIwLjExMjk3OSwgMC4yNjEzNzEsIDAuNDAwMTYsIDAuNDk5MDksIDAuNjU3NDI2LCAwLjc5NTkzMSwgMC45OTM4MDMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjk4NywgMC4zNDM5MjQsIDAuNjE3NzAzLCAwLjgxMzYyNiwgMS4xMjkzMSwgMS40MDI3NCwgMS43OTgxNyIsIFwKLSAgICAgICAgICAiMC4wNjk2OTQsIDAuMzQzNjc5LCAwLjYxNzY5LCAwLjgxNDgxMSwgMS4xMzMyMiwgMS40MDY0NCwgMS44MDg1MyIsIFwKLSAgICAgICAgICAiMC4wNzM3NDcsIDAuMzQzNjY0LCAwLjYxNzY5OSwgMC44MTQ5NjksIDEuMTMyNDQsIDEuNDAzMTMsIDEuODAyNzMiLCBcCi0gICAgICAgICAgIjAuMDgwMSwgMC4zNDM3MjgsIDAuNjE3OTc0LCAwLjgxMzM4MywgMS4xMjY0NCwgMS40MTE5NSwgMS44MDgwOCIsIFwKLSAgICAgICAgICAiMC4wODg0OTEsIDAuMzQ1MDU2LCAwLjYxNzksIDAuODE0NTgzLCAxLjEyNjU3LCAxLjQwNDgsIDEuODA4NzkiLCBcCi0gICAgICAgICAgIjAuMTAyNTI5LCAwLjM1MDU3MiwgMC42MTgyODEsIDAuODEzMzU1LCAxLjEzMzA4LCAxLjQwMjk5LCAxLjgwOTg1IiwgXAotICAgICAgICAgICIwLjExNDQxMSwgMC4zNTcxNDksIDAuNjIwMzkyLCAwLjgxMzM3NiwgMS4xMjY0NCwgMS40MTE2NSwgMS44MDk3NyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxNTk0MiwgMC4wMTU5NDMsIDAuMDE1OTQxLCAwLjAxNTk0MSwgMC4wMTU5MzgsIDAuMDE1OTM1LCAwLjAxNTkyOSIsIFwKLSAgICAgICAgICAiMC4wMTU4NjIsIDAuMDE1ODk1LCAwLjAxNTg5NywgMC4wMTU4OTcsIDAuMDE1ODk2LCAwLjAxNTg5NCwgMC4wMTU4ODkiLCBcCi0gICAgICAgICAgIjAuMDE1ODE3LCAwLjAxNTg3NSwgMC4wMTU4ODMsIDAuMDE1ODg0LCAwLjAxNTg4NCwgMC4wMTU4ODQsIDAuMDE1ODgxIiwgXAotICAgICAgICAgICIwLjAxNTc4OCwgMC4wMTU4NiwgMC4wMTU4NzMsIDAuMDE1ODc4LCAwLjAxNTg3NywgMC4wMTU4NzgsIDAuMDE1ODc2IiwgXAotICAgICAgICAgICIwLjAxNTc3NCwgMC4wMTU4NDksIDAuMDE1ODY1LCAwLjAxNTg2NiwgMC4wMTU4NzIsIDAuMDE1ODY4LCAwLjAxNTg3NCIsIFwKLSAgICAgICAgICAiMC4wMTU3NiwgMC4wMTU4MzMsIDAuMDE1ODU2LCAwLjAxNTg2NCwgMC4wMTU4NjgsIDAuMDE1ODczLCAwLjAxNTg3MiIsIFwKLSAgICAgICAgICAiMC4wMTU3NTgsIDAuMDE1ODI1LCAwLjAxNTg0OCwgMC4wMTU4NTUsIDAuMDE1ODY0LCAwLjAxNTg2NiwgMC4wMTU4NjMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDk0NiwgMC4wMDQ5NDYsIDAuMDA0OTQ0LCAwLjAwNDk0NywgMC4wMDQ5NDQsIDAuMDA0OTQzLCAwLjAwNDkzOSIsIFwKLSAgICAgICAgICAiMC4wMDQ4MjQsIDAuMDA0ODQ2LCAwLjAwNDg0OSwgMC4wMDQ4NTEsIDAuMDA0ODUzLCAwLjAwNDg0NywgMC4wMDQ4NDYiLCBcCi0gICAgICAgICAgIjAuMDA0NzY5LCAwLjAwNDgxOSwgMC4wMDQ4MjcsIDAuMDA0ODMsIDAuMDA0ODMsIDAuMDA0ODMyLCAwLjAwNDgzIiwgXAotICAgICAgICAgICIwLjAwNDczMywgMC4wMDQ4MDEsIDAuMDA0ODE0LCAwLjAwNDgxOCwgMC4wMDQ4MjIsIDAuMDA0ODIxLCAwLjAwNDgyMyIsIFwKLSAgICAgICAgICAiMC4wMDQ3MTEsIDAuMDA0Nzg2LCAwLjAwNDgwNCwgMC4wMDQ4MSwgMC4wMDQ4MTIsIDAuMDA0ODE0LCAwLjAwNDgxNyIsIFwKLSAgICAgICAgICAiMC4wMDQ2ODgsIDAuMDA0NzcsIDAuMDA0NzkyLCAwLjAwNDgsIDAuMDA0ODA0LCAwLjAwNDgwOCwgMC4wMDQ4MSIsIFwKLSAgICAgICAgICAiMC4wMDQ2NzgsIDAuMDA0NzYxLCAwLjAwNDc4NCwgMC4wMDQ3OTEsIDAuMDA0OCwgMC4wMDQ4MDQsIDAuMDA0ODA2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE0NjAyLCAwLjAxNDYwMiwgMC4wMTQ1OTksIDAuMDE0NTk5LCAwLjAxNDU5NCwgMC4wMTQ1OSwgMC4wMTQ1OSIsIFwKLSAgICAgICAgICAiMC4wMTQ1MTksIDAuMDE0NTUyLCAwLjAxNDU1NCwgMC4wMTQ1NTQsIDAuMDE0NTUzLCAwLjAxNDU0OSwgMC4wMTQ1NTIiLCBcCi0gICAgICAgICAgIjAuMDE0NDczLCAwLjAxNDUzMSwgMC4wMTQ1MzksIDAuMDE0NTQzLCAwLjAxNDU0LCAwLjAxNDU0MSwgMC4wMTQ1MzkiLCBcCi0gICAgICAgICAgIjAuMDE0NDQ5LCAwLjAxNDUxOSwgMC4wMTQ1MzEsIDAuMDE0NTM1LCAwLjAxNDUzNSwgMC4wMTQ1MzYsIDAuMDE0NTM2IiwgXAotICAgICAgICAgICIwLjAxNDQzMiwgMC4wMTQ1MDQsIDAuMDE0NTIyLCAwLjAxNDUyOCwgMC4wMTQ1MywgMC4wMTQ1MjgsIDAuMDE0NTI5IiwgXAotICAgICAgICAgICIwLjAxNDQyOCwgMC4wMTQ0OTQsIDAuMDE0NTE1LCAwLjAxNDUyMiwgMC4wMTQ1MjQsIDAuMDE0NTI0LCAwLjAxNDUyNCIsIFwKLSAgICAgICAgICAiMC4wMTQ0MzgsIDAuMDE0NDkxLCAwLjAxNDUwNywgMC4wMTQ1MTcsIDAuMDE0NTIsIDAuMDE0NTI1LCAwLjAxNDUyMSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzNjgyLCAwLjAwMzY5MiwgMC4wMDM2OSwgMC4wMDM2OTgsIDAuMDAzNjk5LCAwLjAwMzY5MiwgMC4wMDM2OTEiLCBcCi0gICAgICAgICAgIjAuMDAzNTg3LCAwLjAwMzY2OCwgMC4wMDM2NzksIDAuMDAzNjgyLCAwLjAwMzY4MywgMC4wMDM2ODYsIDAuMDAzNjg2IiwgXAotICAgICAgICAgICIwLjAwMzQ5MiwgMC4wMDM2MzcsIDAuMDAzNjYsIDAuMDAzNjY4LCAwLjAwMzY3NCwgMC4wMDM2NzcsIDAuMDAzNjgiLCBcCi0gICAgICAgICAgIjAuMDAzNDI4LCAwLjAwMzYwOSwgMC4wMDM2NDMsIDAuMDAzNjUzLCAwLjAwMzY2MywgMC4wMDM2NjksIDAuMDAzNjczIiwgXAotICAgICAgICAgICIwLjAwMzM4NSwgMC4wMDM1ODIsIDAuMDAzNjI3LCAwLjAwMzY0LCAwLjAwMzY1NCwgMC4wMDM2NjEsIDAuMDAzNjY2IiwgXAotICAgICAgICAgICIwLjAwMzMzNywgMC4wMDM1NDYsIDAuMDAzNjAxLCAwLjAwMzYyMSwgMC4wMDM2MzgsIDAuMDAzNjQ4LCAwLjAwMzY1NiIsIFwKLSAgICAgICAgICAiMC4wMDMzMTUsIDAuMDAzNTIxLCAwLjAwMzU4MywgMC4wMDM2MDUsIDAuMDAzNjI4LCAwLjAwMzYzNywgMC4wMDM2NDgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTMyMTMsIDAuMDEzMjIsIDAuMDEzMjE5LCAwLjAxMzIxOSwgMC4wMTMyMTYsIDAuMDEzMjE0LCAwLjAxMzIxMSIsIFwKLSAgICAgICAgICAiMC4wMTMwOTEsIDAuMDEzMTYsIDAuMDEzMTY3LCAwLjAxMzE3LCAwLjAxMzE2OCwgMC4wMTMxNjYsIDAuMDEzMTY2IiwgXAotICAgICAgICAgICIwLjAxMzA0MiwgMC4wMTMxMzIsIDAuMDEzMTQ4LCAwLjAxMzE1LCAwLjAxMzE1MiwgMC4wMTMxNTMsIDAuMDEzMTUzIiwgXAotICAgICAgICAgICIwLjAxMzAyMiwgMC4wMTMxMTMsIDAuMDEzMTMzLCAwLjAxMzEzOSwgMC4wMTMxNDMsIDAuMDEzMTQ4LCAwLjAxMzE0NSIsIFwKLSAgICAgICAgICAiMC4wMTMwNTQsIDAuMDEzMTExLCAwLjAxMzEyOSwgMC4wMTMxMzgsIDAuMDEzMTQzLCAwLjAxMzE0MSwgMC4wMTMxNDEiLCBcCi0gICAgICAgICAgIjAuMDEzMTIsIDAuMDEzMTEyLCAwLjAxMzEyNiwgMC4wMTMxMzQsIDAuMDEzMTM3LCAwLjAxMzEzOCwgMC4wMTMxMzgiLCBcCi0gICAgICAgICAgIjAuMDEzMjA4LCAwLjAxMzEyNiwgMC4wMTMxMzIsIDAuMDEzMTM3LCAwLjAxMzEzOSwgMC4wMTMxMzgsIDAuMDEzMTQxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDIyNzgsIDAuMDAyMzI3LCAwLjAwMjMzNCwgMC4wMDIzMzQsIDAuMDAyMzM1LCAwLjAwMjMzNiwgMC4wMDIzMzYiLCBcCi0gICAgICAgICAgIjAuMDAyMjAyLCAwLjAwMjM3NiwgMC4wMDI0LCAwLjAwMjQwNywgMC4wMDI0MTMsIDAuMDAyNDE4LCAwLjAwMjQxOSIsIFwKLSAgICAgICAgICAiMC4wMDIwNzgsIDAuMDAyMzQyLCAwLjAwMjM4NiwgMC4wMDI0LCAwLjAwMjQxMiwgMC4wMDI0MTgsIDAuMDAyNDI0IiwgXAotICAgICAgICAgICIwLjAwMTk4OSwgMC4wMDIzMDMsIDAuMDAyMzY0LCAwLjAwMjM4NSwgMC4wMDI0MDIsIDAuMDAyNDExLCAwLjAwMjQyIiwgXAotICAgICAgICAgICIwLjAwMTkyNywgMC4wMDIyNjYsIDAuMDAyMzQxLCAwLjAwMjM2NiwgMC4wMDIzODksIDAuMDAyNDAxLCAwLjAwMjQxMiIsIFwKLSAgICAgICAgICAiMC4wMDE4NjcsIDAuMDAyMjExLCAwLjAwMjMwNCwgMC4wMDIzMzcsIDAuMDAyMzY4LCAwLjAwMjM4MywgMC4wMDIzOTgiLCBcCi0gICAgICAgICAgIjAuMDAxODM2LCAwLjAwMjE3MSwgMC4wMDIyNzYsIDAuMDAyMzE0LCAwLjAwMjM1MiwgMC4wMDIzNjksIDAuMDAyMzg3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEwNzQ3LCAwLjAxMDc4NCwgMC4wMTA3ODksIDAuMDEwNzg5LCAwLjAxMDc5LCAwLjAxMDc5LCAwLjAxMDc5IiwgXAotICAgICAgICAgICIwLjAxMDY2MSwgMC4wMTA3OTEsIDAuMDEwODA5LCAwLjAxMDgxNCwgMC4wMTA4MTksIDAuMDEwODIyLCAwLjAxMDgyMyIsIFwKLSAgICAgICAgICAiMC4wMTA1OCwgMC4wMTA3NjMsIDAuMDEwNzk1LCAwLjAxMDgwNSwgMC4wMTA4MTQsIDAuMDEwODE5LCAwLjAxMDgyNyIsIFwKLSAgICAgICAgICAiMC4wMTA1MzQsIDAuMDEwNzM2LCAwLjAxMDc3OCwgMC4wMTA3OTMsIDAuMDEwODA0LCAwLjAxMDgxMSwgMC4wMTA4MTciLCBcCi0gICAgICAgICAgIjAuMDEwNTI3LCAwLjAxMDcxMywgMC4wMTA3NjMsIDAuMDEwNzgxLCAwLjAxMDc5NSwgMC4wMTA4MDQsIDAuMDEwODExIiwgXAotICAgICAgICAgICIwLjAxMDUyOSwgMC4wMTA2ODksIDAuMDEwNzQ1LCAwLjAxMDc2LCAwLjAxMDc4MywgMC4wMTA3OTMsIDAuMDEwODA0IiwgXAotICAgICAgICAgICIwLjAxMDU0MywgMC4wMTA2NzMsIDAuMDEwNzMxLCAwLjAxMDc1MSwgMC4wMTA3NzUsIDAuMDEwNzg4LCAwLjAxMDc5NyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0OTUxLCAwLjAwNDk2NiwgMC4wMDQ5NjgsIDAuMDA0OTY2LCAwLjAwNDk2NiwgMC4wMDQ5NjUsIDAuMDA0OTY0IiwgXAotICAgICAgICAgICIwLjAwNDgyNCwgMC4wMDQ4OTYsIDAuMDA0OTA3LCAwLjAwNDkwOCwgMC4wMDQ5MTQsIDAuMDA0OTEzLCAwLjAwNDkwOSIsIFwKLSAgICAgICAgICAiMC4wMDQ3OTksIDAuMDA0ODc2LCAwLjAwNDg4NSwgMC4wMDQ4OTgsIDAuMDA0OTAxLCAwLjAwNDkwMiwgMC4wMDQ5MDUiLCBcCi0gICAgICAgICAgIjAuMDA0ODEyLCAwLjAwNDg1NCwgMC4wMDQ4NzQsIDAuMDA0ODgyLCAwLjAwNDg5MiwgMC4wMDQ4OTMsIDAuMDA0ODk3IiwgXAotICAgICAgICAgICIwLjAwNDg0NSwgMC4wMDQ4NjMsIDAuMDA0ODcxLCAwLjAwNDg3OCwgMC4wMDQ4ODMsIDAuMDA0ODg2LCAwLjAwNDg5MSIsIFwKLSAgICAgICAgICAiMC4wMDQ5MTQsIDAuMDA0ODcxLCAwLjAwNDg4MSwgMC4wMDQ4ODMsIDAuMDA0ODg4LCAwLjAwNDg4OSwgMC4wMDQ4OTEiLCBcCi0gICAgICAgICAgIjAuMDA1MDA1LCAwLjAwNDg5LCAwLjAwNDg4OSwgMC4wMDQ4OTEsIDAuMDA0ODkzLCAwLjAwNDg5MywgMC4wMDQ4OTQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDkzODIsIDAuMDA5NDM1LCAwLjAwOTQ0LCAwLjAwOTQ0LCAwLjAwOTQ0MywgMC4wMDk0NDUsIDAuMDA5NDQ1IiwgXAotICAgICAgICAgICIwLjAwOTI1NiwgMC4wMDk0MzIsIDAuMDA5NDU2LCAwLjAwOTQ2MywgMC4wMDk0NywgMC4wMDk0NzMsIDAuMDA5NDc1IiwgXAotICAgICAgICAgICIwLjAwOTIwNSwgMC4wMDk0MDEsIDAuMDA5NDM2LCAwLjAwOTQ1MSwgMC4wMDk0NiwgMC4wMDk0NjgsIDAuMDA5NDcyIiwgXAotICAgICAgICAgICIwLjAwOTE3NiwgMC4wMDkzNywgMC4wMDk0MTksIDAuMDA5NDM1LCAwLjAwOTQ1LCAwLjAwOTQ1OCwgMC4wMDk0NjYiLCBcCi0gICAgICAgICAgIjAuMDA5MjIxLCAwLjAwOTM1NywgMC4wMDk0MDksIDAuMDA5NDI3LCAwLjAwOTQ0NCwgMC4wMDk0NTMsIDAuMDA5NDYyIiwgXAotICAgICAgICAgICIwLjAwOTMyOCwgMC4wMDkzNDgsIDAuMDA5Mzk4LCAwLjAwOTQxNiwgMC4wMDk0MzYsIDAuMDA5NDQ2LCAwLjAwOTQ1NSIsIFwKLSAgICAgICAgICAiMC4wMDkzNjksIDAuMDA5MzU3LCAwLjAwOTM5NywgMC4wMDk0MTUsIDAuMDA5NDM0LCAwLjAwOTQ0MywgMC4wMDk0NTMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzg1NSwgMC4wMDM5MTUsIDAuMDAzOTIyLCAwLjAwMzkyMiwgMC4wMDM5MjEsIDAuMDAzOTI0LCAwLjAwMzkyOCIsIFwKLSAgICAgICAgICAiMC4wMDM3MzMsIDAuMDAzOTA4LCAwLjAwMzkzNiwgMC4wMDM5NDMsIDAuMDAzOTUyLCAwLjAwMzk1MywgMC4wMDM5NTQiLCBcCi0gICAgICAgICAgIjAuMDAzNjQ4LCAwLjAwMzg2NywgMC4wMDM5MTMsIDAuMDAzOTI4LCAwLjAwMzk0MSwgMC4wMDM5NDksIDAuMDAzOTU0IiwgXAotICAgICAgICAgICIwLjAwMzYsIDAuMDAzODMsIDAuMDAzODg2LCAwLjAwMzkwNywgMC4wMDM5MjYsIDAuMDAzOTM0LCAwLjAwMzk0NCIsIFwKLSAgICAgICAgICAiMC4wMDM2NDgsIDAuMDAzODA3LCAwLjAwMzg3MSwgMC4wMDM4OTUsIDAuMDAzOTE3LCAwLjAwMzkyOCwgMC4wMDM5MzgiLCBcCi0gICAgICAgICAgIjAuMDAzNywgMC4wMDM3OTksIDAuMDAzODYxLCAwLjAwMzg4NSwgMC4wMDM5MDgsIDAuMDAzOTIsIDAuMDAzOTMyIiwgXAotICAgICAgICAgICIwLjAwMzc4MiwgMC4wMDM3OTYsIDAuMDAzODU0LCAwLjAwMzg3NywgMC4wMDM5MDEsIDAuMDAzOTE0LCAwLjAwMzkyNyIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBPUjJYNCAqCi0gKiAtLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoT1IyWDQpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4yNDUwOTg7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDkxMjQ5MTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA5MDc0Nzc7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwOTEyNDkxOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDM2NCwgMC4wMDAzODcsIDAuMDAwMzksIDAuMDAwMzkzLCAwLjAwMDM5NCwgMC4wMDAzOTYsIDAuMDAwMzk4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNDI5LCAwLjAwMDQzLCAwLjAwMDQzLCAwLjAwMDQzLCAwLjAwMDQzLCAwLjAwMDQzLCAwLjAwMDQyOCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwOTMzMzk4OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDkzMzM3NjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA5MzMzOTg7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMTA2LCAwLjAwMDEwNywgMC4wMDAxMDcsIDAuMDAwMTA3LCAwLjAwMDEwNywgMC4wMDAxMDcsIDAuMDAwMTA3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjk1LCAwLjAwMDI5NSwgMC4wMDAyOTUsIDAuMDAwMjk1LCAwLjAwMDI5NSwgMC4wMDAyOTUsIDAuMDAwMjk1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDEuMDM4Mzc7Ci0gICAgZnVuY3Rpb24gOiAiKEErQikiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQ1NzY0LCAwLjExODE3OCwgMC4xODk0MywgMC4yNDAyNzgsIDAuMzIxNjQsIDAuMzkyNzU5LCAwLjQ5NDQ2MSIsIFwKLSAgICAgICAgICAiMC4wNTU5NTksIDAuMTI4NDAxLCAwLjE5OTYzNSwgMC4yNTA0ODIsIDAuMzMxODIyLCAwLjQwMjk5OSwgMC41MDQ2ODEiLCBcCi0gICAgICAgICAgIjAuMDY4ODM3LCAwLjE0MTI4MiwgMC4yMTI1NDQsIDAuMjYzMzk3LCAwLjM0NDczLCAwLjQxNTkwMywgMC41MTc1NjYiLCBcCi0gICAgICAgICAgIjAuMDgwNjk4LCAwLjE1MzI2MiwgMC4yMjQ0OTUsIDAuMjc1MzY2LCAwLjM1NjY5MywgMC40Mjc4NzEsIDAuNTI5NTUiLCBcCi0gICAgICAgICAgIjAuMDkxMTgsIDAuMTYzOTQ4LCAwLjIzNTE3NCwgMC4yODYwNTgsIDAuMzY3MzY4LCAwLjQzODUyNiwgMC41NDAxOTIiLCBcCi0gICAgICAgICAgIjAuMTA1ODA2LCAwLjE3ODg4OCwgMC4yNTAxMzUsIDAuMzAwOTgxLCAwLjM4MjI5OCwgMC40NTM0NTIsIDAuNTU1MTAxIiwgXAotICAgICAgICAgICIwLjExNjg0MiwgMC4xOTAzMDEsIDAuMjYxNDM0LCAwLjMxMjI0NiwgMC4zOTM1NzcsIDAuNDY0NzI5LCAwLjU2NjM4MSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzMjIxNSwgMC4xNzUzMzksIDAuMzIwOTgyLCAwLjQyNjgzNSwgMC41OTI5NDYsIDAuNzQwNzU1LCAwLjk1MDQ0IiwgXAotICAgICAgICAgICIwLjAzMjE2NCwgMC4xNzUzNzgsIDAuMzIxNTMxLCAwLjQyNjgxMiwgMC41OTQ3MTgsIDAuNzQwNzgsIDAuOTQ4OTQzIiwgXAotICAgICAgICAgICIwLjAzMjM1NywgMC4xNzUzMzQsIDAuMzIxNDI1LCAwLjQyNjE2NiwgMC41OTQxMjcsIDAuNzQwNzcyLCAwLjk1MDU5OSIsIFwKLSAgICAgICAgICAiMC4wMzMyNTksIDAuMTc1MTY2LCAwLjMyMTg2NywgMC40MjY3NTUsIDAuNTk0NjE2LCAwLjc0MDg4MiwgMC45NTA0NTEiLCBcCi0gICAgICAgICAgIjAuMDM0ODA0LCAwLjE3NTYzNSwgMC4zMjE1MzgsIDAuNDI2ODI2LCAwLjU5NDYyOSwgMC43NDA2OTIsIDAuOTUwNDUiLCBcCi0gICAgICAgICAgIjAuMDM2OTYzLCAwLjE3NTg3NSwgMC4zMjE0NTQsIDAuNDI1OTgxLCAwLjU5Mzc5OCwgMC43NDE1NDYsIDAuOTUxNDUzIiwgXAotICAgICAgICAgICIwLjAzOTEzNSwgMC4xNzY1NDYsIDAuMzIyMTM5LCAwLjQyNjgzMSwgMC41OTQ2NDksIDAuNzQxNTI3LCAwLjk1MDQyMyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3MDA0MywgMC4xNDgyOTQsIDAuMjIxODI4LCAwLjI3NDI1OSwgMC4zNTgxMjYsIDAuNDMxNTcyLCAwLjUzNjMyMyIsIFwKLSAgICAgICAgICAiMC4wNzg1OSwgMC4xNTY3NjksIDAuMjMwMzIsIDAuMjgyNzQ4LCAwLjM2NjYyMiwgMC40NDAwNjMsIDAuNTQ0ODM4IiwgXAotICAgICAgICAgICIwLjA4ODU1MiwgMC4xNjY4MTQsIDAuMjQwMzIzLCAwLjI5Mjc2MywgMC4zNzY3MTMsIDAuNDUwMDQzLCAwLjU1NTA4NiIsIFwKLSAgICAgICAgICAiMC4wOTgyMDgsIDAuMTc2NDc4LCAwLjI1MDAwMSwgMC4zMDI0MzgsIDAuMzg2Mzk0LCAwLjQ1OTcyLCAwLjU2NDc3IiwgXAotICAgICAgICAgICIwLjEwNzI0MiwgMC4xODU1MTIsIDAuMjU5MDMsIDAuMzExNDY1LCAwLjM5NTM5MywgMC40Njg3NTYsIDAuNTczNzgxIiwgXAotICAgICAgICAgICIwLjEyMDI0LCAwLjE5ODkzMSwgMC4yNzI0NDEsIDAuMzI0OTEzLCAwLjQwODc2NSwgMC40ODIyNDgsIDAuNTg2OTgiLCBcCi0gICAgICAgICAgIjAuMTMwMjYsIDAuMjA5NTQxLCAwLjI4MzAzNywgMC4zMzU0NjQsIDAuNDE5MzE5LCAwLjQ5MjY5NiwgMC41OTc1NDMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzkzMjUsIDAuMTgxNjM0LCAwLjMyODY4OCwgMC40MzQ0ODQsIDAuNjAzMjQxLCAwLjc1MTE3NiwgMC45NjU4MyIsIFwKLSAgICAgICAgICAiMC4wMzkzMzMsIDAuMTgxNjA1LCAwLjMyODc0MiwgMC40MzQ0NjgsIDAuNjA0MDgxLCAwLjc1MjIxNiwgMC45NjU4NzQiLCBcCi0gICAgICAgICAgIjAuMDM5MjI2LCAwLjE4MTU0NCwgMC4zMjgyMTQsIDAuNDM0MjgzLCAwLjYwMjcyOSwgMC43NTMxNzUsIDAuOTYzNjAxIiwgXAotICAgICAgICAgICIwLjAzOTUyMiwgMC4xODE1NjksIDAuMzI4NzMsIDAuNDM0MzgzLCAwLjYwMjY5OCwgMC43NTMxNzIsIDAuOTYzNTg3IiwgXAotICAgICAgICAgICIwLjA0MDE3NSwgMC4xODE5ODgsIDAuMzI4ODIsIDAuNDM0NTM0LCAwLjYwMjgzNSwgMC43NTE5NjQsIDAuOTYzNjI3IiwgXAotICAgICAgICAgICIwLjA0MTYyNCwgMC4xODIzMjcsIDAuMzI5MDgyLCAwLjQzMzYyNCwgMC42MDM0NCwgMC43NTE1NjgsIDAuOTY1NTgyIiwgXAotICAgICAgICAgICIwLjA0MjcxLCAwLjE4Mjg4MywgMC4zMjkzNTksIDAuNDM0OTMzLCAwLjYwNDQ0MSwgMC43NTMxNjksIDAuOTY1NjAzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQzMzYsIDAuMTE1NzUzLCAwLjE4NzAwNSwgMC4yMzc4NTQsIDAuMzE5MTk4LCAwLjM5MDUyNiwgMC40OTE5NjQiLCBcCi0gICAgICAgICAgIjAuMDUzNTg0LCAwLjEyNTk0NiwgMC4xOTcxODMsIDAuMjQ4MDQsIDAuMzI5MzcxLCAwLjQwMDU0NywgMC41MDIyMzgiLCBcCi0gICAgICAgICAgIjAuMDY2MTkyLCAwLjEzODUxNCwgMC4yMDk3NjYsIDAuMjYwNjI5LCAwLjM0MTk5NiwgMC40MTMzNywgMC41MTQ4NDkiLCBcCi0gICAgICAgICAgIjAuMDc3NzcsIDAuMTUwMTkyLCAwLjIyMTQ1OCwgMC4yNzIzMDQsIDAuMzUzNjM0LCAwLjQyNTA2MiwgMC41MjY1MTgiLCBcCi0gICAgICAgICAgIjAuMDg3NjUxLCAwLjE2MDM3MywgMC4yMzE1ODIsIDAuMjgyNDg4LCAwLjM2MzgyNCwgMC40MzUyNTgsIDAuNTM2OTQ2IiwgXAotICAgICAgICAgICIwLjEwMTY0NywgMC4xNzQ3NzUsIDAuMjQ1OTQ2LCAwLjI5NjgxLCAwLjM3ODIyNSwgMC40NDk0MTQsIDAuNTUxMzM5IiwgXAotICAgICAgICAgICIwLjExMTk1NywgMC4xODU3ODEsIDAuMjU2OTY1LCAwLjMwNzc3LCAwLjM4OTExOSwgMC40NjAzNzYsIDAuNTYyMDIxIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDMxODQ5LCAwLjE3NTE1LCAwLjMyMTg1MywgMC40MjY4MzEsIDAuNTk0ODQzLCAwLjc0MDAwMiwgMC45NTE3NDgiLCBcCi0gICAgICAgICAgIjAuMDMxODI4LCAwLjE3NTExNCwgMC4zMjE4NjgsIDAuNDI2MjUzLCAwLjU5NDgyNCwgMC43NDE4NTYsIDAuOTUxOTM0IiwgXAotICAgICAgICAgICIwLjAzMjIwOSwgMC4xNzUxNDMsIDAuMzIxMTYxLCAwLjQyNTg2OCwgMC41OTQ0OTMsIDAuNzQwNDQzLCAwLjk0OTg1NiIsIFwKLSAgICAgICAgICAiMC4wMzMzNjcsIDAuMTc1MDcsIDAuMzIxMjc2LCAwLjQyNjAwOSwgMC41OTQ1MjksIDAuNzQwMzgsIDAuOTQ5ODU3IiwgXAotICAgICAgICAgICIwLjAzNTAxNiwgMC4xNzU1MzUsIDAuMzIxODQ3LCAwLjQyNTc4NywgMC41OTM1NTEsIDAuNzQwMzYxLCAwLjk1MDA4NiIsIFwKLSAgICAgICAgICAiMC4wMzc0OCwgMC4xNzU5MzUsIDAuMzIxNTcxLCAwLjQyNjkyNiwgMC41OTM3MDQsIDAuNzQwNDQsIDAuOTQ5OTk2IiwgXAotICAgICAgICAgICIwLjAzOTgxNSwgMC4xNzY1NTQsIDAuMzIyMjAzLCAwLjQyNjgzMSwgMC41OTQ3NjMsIDAuNzQwODE0LCAwLjk1MTI1OCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2NzAwNiwgMC4xNDUzNTcsIDAuMjE4ODk1LCAwLjI3MTMyOSwgMC4zNTUyMDEsIDAuNDI4NjU0LCAwLjUzMzQwNSIsIFwKLSAgICAgICAgICAiMC4wNzU4NDUsIDAuMTU0MTg4LCAwLjIyNzczMiwgMC4yODAxNzgsIDAuMzY0MTE0LCAwLjQzNzQ4NCwgMC41NDIzOTEiLCBcCi0gICAgICAgICAgIjAuMDg3NTk1LCAwLjE2NTg0NiwgMC4yMzkzNzMsIDAuMjkxODExLCAwLjM3NTc3NCwgMC40NDkxMDEsIDAuNTU0MTYzIiwgXAotICAgICAgICAgICIwLjA5ODg0OSwgMC4xNzcwMDcsIDAuMjUwNTM3LCAwLjMwMjk5MiwgMC4zODY4NjEsIDAuNDYwMzgxLCAwLjU2NTEwNCIsIFwKLSAgICAgICAgICAiMC4xMDkzNzQsIDAuMTg3NzA4LCAwLjI2MTIxOSwgMC4zMTM2NzMsIDAuMzk3NTM2LCAwLjQ3MTA0NSwgMC41NzU3OTMiLCBcCi0gICAgICAgICAgIjAuMTI0NDAzLCAwLjIwMjM2OCwgMC4yNzU4NjYsIDAuMzI4MjksIDAuNDEyMTQ4LCAwLjQ4NTU5NSwgMC41OTA0IiwgXAotICAgICAgICAgICIwLjEzNTg0MywgMC4yMTUwMTgsIDAuMjg3NzQxLCAwLjM0MDEzMSwgMC40MjM5OTYsIDAuNDk3MzY1LCAwLjYwMjE3OSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzOTQ0NiwgMC4xODE1NDMsIDAuMzI4Njg2LCAwLjQzNDQ1NiwgMC42MDM4MywgMC43NTExNzMsIDAuOTY1OCIsIFwKLSAgICAgICAgICAiMC4wMzkzMzUsIDAuMTgxNTg2LCAwLjMyODY5MSwgMC40MzQ0NzMsIDAuNjAzMDIzLCAwLjc1MzE2OSwgMC45NjQwMDciLCBcCi0gICAgICAgICAgIjAuMDM5MzE2LCAwLjE4MTUxMywgMC4zMjg3NDEsIDAuNDM0NDYzLCAwLjYwMzE0OCwgMC43NTMxODcsIDAuOTYzMTUiLCBcCi0gICAgICAgICAgIjAuMDM5NjU0LCAwLjE4MTczOSwgMC4zMjg3NzksIDAuNDMzNjM0LCAwLjYwMzgsIDAuNzUxMjU2LCAwLjk2NTU1NSIsIFwKLSAgICAgICAgICAiMC4wNDA3NTIsIDAuMTgxOTMyLCAwLjMyODQxNSwgMC40MzQ2NTMsIDAuNjA0MDYyLCAwLjc1MTYzMywgMC45NjU0NDQiLCBcCi0gICAgICAgICAgIjAuMDQyNDg3LCAwLjE4Mjk1NiwgMC4zMjkwNTgsIDAuNDM0MTcxLCAwLjYwMzM2NywgMC43NTExOTYsIDAuOTY1MjA2IiwgXAotICAgICAgICAgICIwLjA0NDA2NiwgMC4xODM2NTcsIDAuMzI5NjUyLCAwLjQzNTAyNCwgMC42MDQ2MDUsIDAuNzUyNzUxLCAwLjk2NTg4OSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0NTIxLCAwLjAwNDYzNiwgMC4wMDQ2NSwgMC4wMDQ2NjMsIDAuMDA0NjUxLCAwLjAwNDY1OSwgMC4wMDQ2NzMiLCBcCi0gICAgICAgICAgIjAuMDA0NDY0LCAwLjAwNDU5NywgMC4wMDQ2MTQsIDAuMDA0NjE5LCAwLjAwNDYyNCwgMC4wMDQ2MjYsIDAuMDA0NjI1IiwgXAotICAgICAgICAgICIwLjAwNDQzMSwgMC4wMDQ1NzQsIDAuMDA0NTk3LCAwLjAwNDYwNCwgMC4wMDQ2MSwgMC4wMDQ2MTMsIDAuMDA0NjE3IiwgXAotICAgICAgICAgICIwLjAwNDQzNCwgMC4wMDQ1NzYsIDAuMDA0NjA0LCAwLjAwNDYxMywgMC4wMDQ2MTksIDAuMDA0NjI0LCAwLjAwNDYyOSIsIFwKLSAgICAgICAgICAiMC4wMDQ0NTMsIDAuMDA0NTgsIDAuMDA0NjEsIDAuMDA0NjIsIDAuMDA0NjMsIDAuMDA0NjM3LCAwLjAwNDYzOCIsIFwKLSAgICAgICAgICAiMC4wMDQ0OSwgMC4wMDQ1OTgsIDAuMDA0NjI5LCAwLjAwNDY0MSwgMC4wMDQ2NTQsIDAuMDA0NjYxLCAwLjAwNDY2NSIsIFwKLSAgICAgICAgICAiMC4wMDQ1MzYsIDAuMDA0NjI1LCAwLjAwNDY1NywgMC4wMDQ2NywgMC4wMDQ2NzUsIDAuMDA0NjksIDAuMDA0NjkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjE5NywgMC4wMDYzNzgsIDAuMDA2NDA3LCAwLjAwNjQxNiwgMC4wMDY0MjQsIDAuMDA2NDI4LCAwLjAwNjQzMiIsIFwKLSAgICAgICAgICAiMC4wMDYxNDcsIDAuMDA2MzQ2LCAwLjAwNjM3OCwgMC4wMDYzODgsIDAuMDA2Mzk3LCAwLjAwNjQwMSwgMC4wMDY0MDUiLCBcCi0gICAgICAgICAgIjAuMDA2MTI3LCAwLjAwNjMzLCAwLjAwNjM2NCwgMC4wMDYzNzUsIDAuMDA2Mzg0LCAwLjAwNjM4OSwgMC4wMDYzOTMiLCBcCi0gICAgICAgICAgIjAuMDA2MTIxLCAwLjAwNjMxOCwgMC4wMDYzNTYsIDAuMDA2MzY4LCAwLjAwNjM3OCwgMC4wMDYzODQsIDAuMDA2Mzg5IiwgXAotICAgICAgICAgICIwLjAwNjExMSwgMC4wMDYzMDcsIDAuMDA2MzQ4LCAwLjAwNjM2MiwgMC4wMDYzNzQsIDAuMDA2MzgsIDAuMDA2Mzg2IiwgXAotICAgICAgICAgICIwLjAwNjE0OCwgMC4wMDYzMDcsIDAuMDA2MzU1LCAwLjAwNjM2MSwgMC4wMDYzNzQsIDAuMDA2MzgxLCAwLjAwNjM4NyIsIFwKLSAgICAgICAgICAiMC4wMDYxNjUsIDAuMDA2MzAzLCAwLjAwNjM0OCwgMC4wMDYzNjIsIDAuMDA2Mzc4LCAwLjAwNjM4NiwgMC4wMDYzOTMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDMwNSwgMC4wMDQ0NDcsIDAuMDA0NDYzLCAwLjAwNDQ2NywgMC4wMDQ0NzUsIDAuMDA0NDczLCAwLjAwNDQ3NSIsIFwKLSAgICAgICAgICAiMC4wMDQyMzMsIDAuMDA0Mzk1LCAwLjAwNDQxNywgMC4wMDQ0MiwgMC4wMDQ0MjcsIDAuMDA0NDI4LCAwLjAwNDQzMSIsIFwKLSAgICAgICAgICAiMC4wMDQxODgsIDAuMDA0MzU4LCAwLjAwNDM4NiwgMC4wMDQzOTUsIDAuMDA0NDAyLCAwLjAwNDQwNywgMC4wMDQ0MDkiLCBcCi0gICAgICAgICAgIjAuMDA0MTY0LCAwLjAwNDMzNCwgMC4wMDQzNjUsIDAuMDA0Mzc5LCAwLjAwNDM4OCwgMC4wMDQzOTIsIDAuMDA0Mzk1IiwgXAotICAgICAgICAgICIwLjAwNDE4MSwgMC4wMDQzNDIsIDAuMDA0MzczLCAwLjAwNDM4OSwgMC4wMDQ0MDEsIDAuMDA0NDA3LCAwLjAwNDQxMyIsIFwKLSAgICAgICAgICAiMC4wMDQxOTQsIDAuMDA0MzI4LCAwLjAwNDM3LCAwLjAwNDM4OCwgMC4wMDQ0LCAwLjAwNDQwNSwgMC4wMDQ0MTIiLCBcCi0gICAgICAgICAgIjAuMDA0MjI1LCAwLjAwNDM0OSwgMC4wMDQzOTIsIDAuMDA0NDA4LCAwLjAwNDQyNywgMC4wMDQ0MzEsIDAuMDA0NDM4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDU4NTYsIDAuMDA2MDQ4LCAwLjAwNjA4LCAwLjAwNjA5LCAwLjAwNjA5OCwgMC4wMDYxMDMsIDAuMDA2MTA3IiwgXAotICAgICAgICAgICIwLjAwNTc4NiwgMC4wMDYwMDEsIDAuMDA2MDM2LCAwLjAwNjA0OCwgMC4wMDYwNTgsIDAuMDA2MDYzLCAwLjAwNjA2OCIsIFwKLSAgICAgICAgICAiMC4wMDU3NzgsIDAuMDA1OTgyLCAwLjAwNjAyMiwgMC4wMDYwMzYsIDAuMDA2MDQ4LCAwLjAwNjA1NCwgMC4wMDYwNiIsIFwKLSAgICAgICAgICAiMC4wMDU3ODcsIDAuMDA1OTY3LCAwLjAwNjAxNCwgMC4wMDYwMjksIDAuMDA2MDQ0LCAwLjAwNjA1MSwgMC4wMDYwNTgiLCBcCi0gICAgICAgICAgIjAuMDA1Nzc0LCAwLjAwNTk4MiwgMC4wMDYwMjYsIDAuMDA2MDQxLCAwLjAwNjA1NiwgMC4wMDYwNjQsIDAuMDA2MDcxIiwgXAotICAgICAgICAgICIwLjAwNTgwMSwgMC4wMDU5NzMsIDAuMDA2MDI2LCAwLjAwNjA0OCwgMC4wMDYwNjcsIDAuMDA2MDc3LCAwLjAwNjA4NiIsIFwKLSAgICAgICAgICAiMC4wMDU4MzUsIDAuMDA1OTksIDAuMDA2MDQ1LCAwLjAwNjA2NiwgMC4wMDYwODcsIDAuMDA2MDk4LCAwLjAwNjEwOSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBPUjJYNiAqCi0gKiAtLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoT1IyWDYpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4zOTc4Mjg7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTc4MzA0OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTc3MjM4OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTc4MzA0OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDczMSwgMC4wMDA3NzUsIDAuMDAwNzgyLCAwLjAwMDc4NywgMC4wMDA3ODksIDAuMDAwNzkyLCAwLjAwMDc5NSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDg1OSwgMC4wMDA4NiwgMC4wMDA4NiwgMC4wMDA4NiwgMC4wMDA4NiwgMC4wMDA4NiwgMC4wMDA4NiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNjgxOTU7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNjgxNTM7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNjgxOTU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjE2LCAwLjAwMDIxNiwgMC4wMDAyMTYsIDAuMDAwMjE2LCAwLjAwMDIxNiwgMC4wMDAyMTYsIDAuMDAwMjE2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNjIzLCAwLjAwMDYyMywgMC4wMDA2MjMsIDAuMDAwNjIzLCAwLjAwMDYyMywgMC4wMDA2MjMsIDAuMDAwNjIyIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDEuNTA1OwotICAgIGZ1bmN0aW9uIDogIihBK0IpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzNjE0NywgMC4wODUyNDgsIDAuMTMzMzAyLCAwLjE2NzU3OSwgMC4yMjI0MTMsIDAuMjcwMzksIDAuMzM4OTMyIiwgXAotICAgICAgICAgICIwLjA0NjM0NSwgMC4wOTU0NjgsIDAuMTQzNTM1LCAwLjE3NzgyNSwgMC4yMzI2NTQsIDAuMjgwNjI4LCAwLjM0OTE2OCIsIFwKLSAgICAgICAgICAiMC4wNTg5MDQsIDAuMTA4MDk1LCAwLjE1NjE2NCwgMC4xOTA0NjUsIDAuMjQ1Mjk2LCAwLjI5MzI5NSwgMC4zNjE4MDIiLCBcCi0gICAgICAgICAgIjAuMDY5NjkxLCAwLjExODk3NSwgMC4xNjcwMzQsIDAuMjAxMzMzLCAwLjI1NjE3LCAwLjMwNDE3LCAwLjM3MjY2NCIsIFwKLSAgICAgICAgICAiMC4wNzkxMjEsIDAuMTI4NzA5LCAwLjE3Njc1OSwgMC4yMTEwMzYsIDAuMjY1ODc3LCAwLjMxMzg0NywgMC4zODIzOSIsIFwKLSAgICAgICAgICAiMC4wOTI0NjEsIDAuMTQyNjAxLCAwLjE5MDYwOCwgMC4yMjQ5MSwgMC4yNzk3MzcsIDAuMzI3NzQyLCAwLjM5NjIyIiwgXAotICAgICAgICAgICIwLjEwMjM5MiwgMC4xNTI5LCAwLjIwMDk0MywgMC4yMzUyMDEsIDAuMjkwMDI2LCAwLjMzNzk5NywgMC40MDY1MDYiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjM5NDQsIDAuMTIwMzEyLCAwLjIxODM3OCwgMC4yODkzOTIsIDAuNDAyNDYzLCAwLjUwMTU0NCwgMC42NDM2NjEiLCBcCi0gICAgICAgICAgIjAuMDIzOTAzLCAwLjEyMDIwNiwgMC4yMTg0NDYsIDAuMjg5NzYzLCAwLjQwMjk0NiwgMC41MDE0NzUsIDAuNjQyODQ0IiwgXAotICAgICAgICAgICIwLjAyNDM3MSwgMC4xMjAzNDIsIDAuMjE4NzY1LCAwLjI4OTcyNiwgMC40MDI1MDYsIDAuNTAyMDEyLCAwLjY0MjkxNyIsIFwKLSAgICAgICAgICAiMC4wMjU4NjQsIDAuMTIwNTY0LCAwLjIxOTA1OCwgMC4yODkyNjcsIDAuNDAyOTM3LCAwLjUwMjAxMSwgMC42NDM0OTQiLCBcCi0gICAgICAgICAgIjAuMDI3LCAwLjEyMDc1OCwgMC4yMTkxNzIsIDAuMjg5NzQsIDAuNDAyNTMyLCAwLjUwMTkyMSwgMC42NDM0OTkiLCBcCi0gICAgICAgICAgIjAuMDI5MDQ1LCAwLjEyMTI4NiwgMC4yMTkxNzYsIDAuMjg5NDg4LCAwLjQwMjUzNSwgMC41MDEyODYsIDAuNjQzNDUzIiwgXAotICAgICAgICAgICIwLjAzMDkwOSwgMC4xMjE5MzEsIDAuMjE5NDQzLCAwLjI4OTUzLCAwLjQwMjYyNiwgMC41MDE1MzUsIDAuNjQyOTA4Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU0OTQ5LCAwLjEwOTg4MiwgMC4xNjA5NjQsIDAuMTk3MzM1LCAwLjI1NTQ5NiwgMC4zMDYzOTcsIDAuMzc5MDg4IiwgXAotICAgICAgICAgICIwLjA2MzQ4OSwgMC4xMTgzNjMsIDAuMTY5NDA2LCAwLjIwNTc3MiwgMC4yNjM5NCwgMC4zMTQ4NjksIDAuMzg3NTA2IiwgXAotICAgICAgICAgICIwLjA3MzQwOSwgMC4xMjgyMzIsIDAuMTc5Mjg5LCAwLjIxNTY1OSwgMC4yNzM4MzcsIDAuMzI0NzQ1LCAwLjM5NzQyOCIsIFwKLSAgICAgICAgICAiMC4wODI2NDgsIDAuMTM3NjM5LCAwLjE4ODY4OCwgMC4yMjUwNjEsIDAuMjgzMjUyLCAwLjMzNDE2NSwgMC40MDY4ODIiLCBcCi0gICAgICAgICAgIjAuMDkwOTE2LCAwLjE0NjE1MSwgMC4xOTcyMDEsIDAuMjMzNTcxLCAwLjI5MTczOSwgMC4zNDI2ODMsIDAuNDE1MzE0IiwgXAotICAgICAgICAgICIwLjEwMjUwMSwgMC4xNTgzMDEsIDAuMjA5MzQ0LCAwLjI0NTcxMiwgMC4zMDM4NzksIDAuMzU0NzUzLCAwLjQyNzQ4IiwgXAotICAgICAgICAgICIwLjExMTM0OSwgMC4xNjczMTcsIDAuMjE4MzkyLCAwLjI1NDc0OSwgMC4zMTI5MTQsIDAuMzYzNzkzLCAwLjQzNjQ0NyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyOTc1MSwgMC4xMjc2MTUsIDAuMjI4NjI3LCAwLjMwMTQ3NCwgMC40MTgxMDgsIDAuNTE5NjM3LCAwLjY2NzQwNiIsIFwKLSAgICAgICAgICAiMC4wMjk1OTIsIDAuMTI3NTg5LCAwLjIyODQxNiwgMC4zMDE0NTMsIDAuNDE3NjUzLCAwLjUxOTQ1MiwgMC42NjczNzIiLCBcCi0gICAgICAgICAgIjAuMDI5NjQyLCAwLjEyNzU5NCwgMC4yMjg0NTEsIDAuMzAxMjg5LCAwLjQxNzg1MSwgMC41MjEwMjgsIDAuNjY2OTIxIiwgXAotICAgICAgICAgICIwLjAzMDE5MywgMC4xMjc3NjcsIDAuMjI4ODE5LCAwLjMwMTU1MywgMC40MTc1NzIsIDAuNTE5NDU4LCAwLjY2NTM3OCIsIFwKLSAgICAgICAgICAiMC4wMzExMjYsIDAuMTI4MTY5LCAwLjIyOTAxNSwgMC4zMDE2ODMsIDAuNDE3NzA4LCAwLjUxOTQyMywgMC42Njc0MjUiLCBcCi0gICAgICAgICAgIjAuMDMyMjQ2LCAwLjEyODg3NywgMC4yMjkyMywgMC4zMDE5MTksIDAuNDE3NjU4LCAwLjUyMDk1NSwgMC42NjU2MzIiLCBcCi0gICAgICAgICAgIjAuMDMzNDA1LCAwLjEyOTU5NywgMC4yMjk2NjMsIDAuMzAyMjQ3LCAwLjQxODg3LCAwLjUyMTE3MiwgMC42Njc0NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzNDMzMiwgMC4wODM0MDMsIDAuMTMxNDY4LCAwLjE2NTc1NiwgMC4yMjA1NzIsIDAuMjY4NDg5LCAwLjMzNzA4NyIsIFwKLSAgICAgICAgICAiMC4wNDQ0NzMsIDAuMDkzNDk1LCAwLjE0MTUzNiwgMC4xNzU4LCAwLjIzMDY2NiwgMC4yNzg2MjMsIDAuMzQ3MTY2IiwgXAotICAgICAgICAgICIwLjA1NjQ2NiwgMC4xMDU2MzQsIDAuMTUzNjYsIDAuMTg3OTQ2LCAwLjI0MjgwMiwgMC4yOTA3ODQsIDAuMzU5NDM4IiwgXAotICAgICAgICAgICIwLjA2NjgxMSwgMC4xMTYxNjgsIDAuMTY0MTc3LCAwLjE5ODUwMywgMC4yNTMzMTYsIDAuMzAxMzAxLCAwLjM2OTk0OCIsIFwKLSAgICAgICAgICAiMC4wNzU3OTcsIDAuMTI1NDQ0LCAwLjE3MzQ0NiwgMC4yMDc3MzUsIDAuMjYyNTUzLCAwLjMxMDU3OSwgMC4zNzkxMzgiLCBcCi0gICAgICAgICAgIjAuMDg3Nzc5LCAwLjEzODA0MSwgMC4xODU5NzUsIDAuMjIwMjY0LCAwLjI3NTExMSwgMC4zMjMwNzMsIDAuMzkxNzQ1IiwgXAotICAgICAgICAgICIwLjA5NzAyOCwgMC4xNDc0NywgMC4xOTU0MzEsIDAuMjI5NjU5LCAwLjI4NDQ3MiwgMC4zMzI0MTcsIDAuNDAwOTUzIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDIzNzcyLCAwLjEyMDE0NCwgMC4yMTg1NjMsIDAuMjg5NywgMC40MDIyNDQsIDAuNTAyMTY2LCAwLjY0Mjk0NiIsIFwKLSAgICAgICAgICAiMC4wMjM3OTQsIDAuMTIwMDk0LCAwLjIxODUzMywgMC4yODk2OTEsIDAuNDAyMTQxLCAwLjUwMTkxNywgMC42NDM0MTciLCBcCi0gICAgICAgICAgIjAuMDI0NzI1LCAwLjEyMDI4MywgMC4yMTg2NDMsIDAuMjg5NzExLCAwLjQwMjc0MywgMC41MDE4NDgsIDAuNjQyNTMiLCBcCi0gICAgICAgICAgIjAuMDI2MzQxLCAwLjEyMDU5MiwgMC4yMTg5NzMsIDAuMjg5MDgyLCAwLjQwMzAwNiwgMC41MDE4NzksIDAuNjQyOTQzIiwgXAotICAgICAgICAgICIwLjAyNzQyMiwgMC4xMjA5NjMsIDAuMjE5MTExLCAwLjI4OTgxOSwgMC40MDI5MjIsIDAuNTAxNDc0LCAwLjY0MzQzNCIsIFwKLSAgICAgICAgICAiMC4wMjk5MTYsIDAuMTIxNTQ3LCAwLjIxOTA5MiwgMC4yODk5MzIsIDAuNDAyMjY2LCAwLjUwMTQ0MywgMC42NDI1NjYiLCBcCi0gICAgICAgICAgIjAuMDMxNzQzLCAwLjEyMjUzMiwgMC4yMTk0MzUsIDAuMjg5OTI3LCAwLjQwMzA4LCAwLjUwMjA0LCAwLjY0MzY4NiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1MTg5MywgMC4xMDY3OTUsIDAuMTU3ODUsIDAuMTk0MjM5LCAwLjI1MjM3NiwgMC4zMDMyNzksIDAuMzc1OTY0IiwgXAotICAgICAgICAgICIwLjA2MDcyNCwgMC4xMTU1OTMsIDAuMTY2NjY0LCAwLjIwMzA0NywgMC4yNjEyMTYsIDAuMzEyMTE0LCAwLjM4NDgwOCIsIFwKLSAgICAgICAgICAiMC4wNzIwODcsIDAuMTI2OTM0LCAwLjE3OCwgMC4yMTQzNzEsIDAuMjcyNTU0LCAwLjMyMzQ2OSwgMC4zOTYxNTIiLCBcCi0gICAgICAgICAgIjAuMDgzMTI0LCAwLjEzODExMSwgMC4xODkxNzEsIDAuMjI1NTM2LCAwLjI4MzcxMSwgMC4zMzQ2NDUsIDAuNDA3Mzc0IiwgXAotICAgICAgICAgICIwLjA5MjQwOSwgMC4xNDcwMDcsIDAuMTk4MDQ2LCAwLjIzNDQxNSwgMC4yOTI1NzMsIDAuMzQzNTM5LCAwLjQxNjE2MyIsIFwKLSAgICAgICAgICAiMC4xMDU3NDUsIDAuMTYxNDg1LCAwLjIxMjQ1LCAwLjI0ODc0MiwgMC4zMDY4OTQsIDAuMzU3ODMxLCAwLjQzMDQ3MiIsIFwKLSAgICAgICAgICAiMC4xMTU1NDUsIDAuMTcxODU0LCAwLjIyMTgxLCAwLjI1ODA1OCwgMC4zMTYzODUsIDAuMzY3MDYsIDAuNDM5OTMxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDI5NTkxLCAwLjEyNzYzOSwgMC4yMjg3MSwgMC4zMDA2NTQsIDAuNDE4Mjg4LCAwLjUxOTM0OSwgMC42NjczNjIiLCBcCi0gICAgICAgICAgIjAuMDI5NTMxLCAwLjEyNzU4NCwgMC4yMjg0NzYsIDAuMzAxNjE2LCAwLjQxNzI5MSwgMC41MjA5OTIsIDAuNjY2MTI3IiwgXAotICAgICAgICAgICIwLjAyOTkwOSwgMC4xMjc2NSwgMC4yMjg0NjQsIDAuMzAxNTMxLCAwLjQxNzgyMywgMC41MjEwMzksIDAuNjY3MTA3IiwgXAotICAgICAgICAgICIwLjAzMDUxNywgMC4xMjc4NDUsIDAuMjI4OTA2LCAwLjMwMTU2NiwgMC40MTc3MywgMC41MTk0NDksIDAuNjY1MjkxIiwgXAotICAgICAgICAgICIwLjAzMTU1MywgMC4xMjg1NDksIDAuMjI4ODU3LCAwLjMwMTc2MywgMC40MTg0NTIsIDAuNTE5MzU3LCAwLjY2NzQ0MSIsIFwKLSAgICAgICAgICAiMC4wMzM1OSwgMC4xMjkxODksIDAuMjI5MjY1LCAwLjMwMTY3OCwgMC40MTg2MzIsIDAuNTE5Njg4LCAwLjY2NzU3OCIsIFwKLSAgICAgICAgICAiMC4wMzUxNDEsIDAuMTI5ODIyLCAwLjIyOTgzOSwgMC4zMDI1MTYsIDAuNDE4OTQyLCAwLjUyMTE2NCwgMC42Njc1MzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjkzNSwgMC4wMDcxNDEsIDAuMDA3MTY4LCAwLjAwNzE3NiwgMC4wMDcxODMsIDAuMDA3MTg4LCAwLjAwNzE5IiwgXAotICAgICAgICAgICIwLjAwNjgxOCwgMC4wMDcwNSwgMC4wMDcwODUsIDAuMDA3MDk3LCAwLjAwNzEwNywgMC4wMDcxMTIsIDAuMDA3MTE2IiwgXAotICAgICAgICAgICIwLjAwNjc2OCwgMC4wMDcwMDUsIDAuMDA3MDUzLCAwLjAwNzA2OCwgMC4wMDcwODMsIDAuMDA3MDksIDAuMDA3MDk3IiwgXAotICAgICAgICAgICIwLjAwNjc4NSwgMC4wMDcwMTQsIDAuMDA3MDY4LCAwLjAwNzA4NCwgMC4wMDcxMDIsIDAuMDA3MTIsIDAuMDA3MTIxIiwgXAotICAgICAgICAgICIwLjAwNjgyMiwgMC4wMDcwMjUsIDAuMDA3MDkyLCAwLjAwNzEwMiwgMC4wMDcxMjYsIDAuMDA3MTQ0LCAwLjAwNzE0NyIsIFwKLSAgICAgICAgICAiMC4wMDY4MjYsIDAuMDA3MDI5LCAwLjAwNzA5MiwgMC4wMDcxMTcsIDAuMDA3MTM4LCAwLjAwNzE1NCwgMC4wMDcxNjEiLCBcCi0gICAgICAgICAgIjAuMDA2OTIzLCAwLjAwNzA4LCAwLjAwNzE0LCAwLjAwNzE2MywgMC4wMDcxOSwgMC4wMDcyMDcsIDAuMDA3MjE4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDk2LCAwLjAwOTk0LCAwLjAwOTk5NiwgMC4wMTAwMTUsIDAuMDEwMDMxLCAwLjAxMDAzOSwgMC4wMTAwNDYiLCBcCi0gICAgICAgICAgIjAuMDA5NTE3LCAwLjAwOTg3MSwgMC4wMDk5MzMsIDAuMDA5OTUzLCAwLjAwOTk3LCAwLjAwOTk3OSwgMC4wMDk5ODciLCBcCi0gICAgICAgICAgIjAuMDA5NDg2LCAwLjAwOTgyOCwgMC4wMDk4OTcsIDAuMDA5OTE5LCAwLjAwOTkzOSwgMC4wMDk5NDksIDAuMDA5OTU4IiwgXAotICAgICAgICAgICIwLjAwOTQ4MSwgMC4wMDk4MDEsIDAuMDA5ODc1LCAwLjAwOTksIDAuMDA5OTIzLCAwLjAwOTkzNSwgMC4wMDk5NDYiLCBcCi0gICAgICAgICAgIjAuMDA5NDQ1LCAwLjAwOTc5MSwgMC4wMDk4NjQsIDAuMDA5ODk0LCAwLjAwOTkxOSwgMC4wMDk5MzEsIDAuMDA5OTQzIiwgXAotICAgICAgICAgICIwLjAwOTQzMSwgMC4wMDk3NTMsIDAuMDA5ODQ0LCAwLjAwOTg3NiwgMC4wMDk5MDYsIDAuMDA5OTIyLCAwLjAwOTkzNiIsIFwKLSAgICAgICAgICAiMC4wMDk0MjcsIDAuMDA5NzgsIDAuMDA5ODYsIDAuMDA5ODkzLCAwLjAwOTkyNCwgMC4wMDk5MzUsIDAuMDA5OTQ5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDY0MjMsIDAuMDA2NjQ3LCAwLjAwNjY2OSwgMC4wMDY2NzIsIDAuMDA2Njg3LCAwLjAwNjY5LCAwLjAwNjY5MyIsIFwKLSAgICAgICAgICAiMC4wMDYyNzIsIDAuMDA2NTI1LCAwLjAwNjU2MSwgMC4wMDY1NzIsIDAuMDA2NTgsIDAuMDA2NTg2LCAwLjAwNjU5NCIsIFwKLSAgICAgICAgICAiMC4wMDYxNzgsIDAuMDA2NDU3LCAwLjAwNjUxMSwgMC4wMDY1MjgsIDAuMDA2NTQ0LCAwLjAwNjU1MiwgMC4wMDY1NiIsIFwKLSAgICAgICAgICAiMC4wMDYxODgsIDAuMDA2NDMxLCAwLjAwNjQ5MiwgMC4wMDY1MTYsIDAuMDA2NTM1LCAwLjAwNjU1LCAwLjAwNjU1NSIsIFwKLSAgICAgICAgICAiMC4wMDYxOSwgMC4wMDY0MzcsIDAuMDA2NTA0LCAwLjAwNjUyNiwgMC4wMDY1NDEsIDAuMDA2NTU2LCAwLjAwNjU3MiIsIFwKLSAgICAgICAgICAiMC4wMDYyOTMsIDAuMDA2NDk0LCAwLjAwNjU2NSwgMC4wMDY1OTIsIDAuMDA2NjE5LCAwLjAwNjYzMywgMC4wMDY2NDYiLCBcCi0gICAgICAgICAgIjAuMDA2MjU1LCAwLjAwNjQ4NywgMC4wMDY1NjEsIDAuMDA2NTksIDAuMDA2NjE5LCAwLjAwNjYzOSwgMC4wMDY2NSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA4OTE5LCAwLjAwOTI1NCwgMC4wMDkzMTQsIDAuMDA5MzMyLCAwLjAwOTM0OSwgMC4wMDkzNTgsIDAuMDA5MzY2IiwgXAotICAgICAgICAgICIwLjAwODc5LCAwLjAwOTE0NiwgMC4wMDkyMTQsIDAuMDA5MjM2LCAwLjAwOTI1NiwgMC4wMDkyNjcsIDAuMDA5Mjc2IiwgXAotICAgICAgICAgICIwLjAwODc2NSwgMC4wMDkxLCAwLjAwOTE4MSwgMC4wMDkyMDgsIDAuMDA5MjM0LCAwLjAwOTI0NywgMC4wMDkyNTkiLCBcCi0gICAgICAgICAgIjAuMDA4ODM4LCAwLjAwOTEwMSwgMC4wMDkxOCwgMC4wMDkyMDksIDAuMDA5MjM1LCAwLjAwOTI1LCAwLjAwOTI2MyIsIFwKLSAgICAgICAgICAiMC4wMDg3OCwgMC4wMDkwOTIsIDAuMDA5MTg4LCAwLjAwOTIyMywgMC4wMDkyNTcsIDAuMDA5Mjc1LCAwLjAwOTI5MyIsIFwKLSAgICAgICAgICAiMC4wMDg5NCwgMC4wMDkxMzIsIDAuMDA5MjE3LCAwLjAwOTI1MSwgMC4wMDkyODUsIDAuMDA5MzAzLCAwLjAwOTMyMSIsIFwKLSAgICAgICAgICAiMC4wMDg4NDgsIDAuMDA5MTI3LCAwLjAwOTIwNywgMC4wMDkyNTEsIDAuMDA5Mjk0LCAwLjAwOTMxOCwgMC4wMDkzMzgiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogT1IyWDggKgotICogLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKE9SMlg4KSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuNDg1MjI3OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE3ODgwMjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE3Nzc1NjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE3ODgwMjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA3MzEsIDAuMDAwNzc1LCAwLjAwMDc4MiwgMC4wMDA3ODYsIDAuMDAwNzg5LCAwLjAwMDc5MiwgMC4wMDA3OTUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA4NTksIDAuMDAwODYsIDAuMDAwODYsIDAuMDAwODYsIDAuMDAwODYsIDAuMDAwODYsIDAuMDAwODYiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTY5MTkxOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTY5MTExOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTY5MTkxOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDIxNSwgMC4wMDAyMTYsIDAuMDAwMjE2LCAwLjAwMDIxNiwgMC4wMDAyMTYsIDAuMDAwMjE1LCAwLjAwMDIxNiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDYyLCAwLjAwMDYyLCAwLjAwMDYyLCAwLjAwMDYyLCAwLjAwMDYyLCAwLjAwMDYyLCAwLjAwMDYyIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDIuMDExMzsKLSAgICBmdW5jdGlvbiA6ICIoQStCKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzgwOTIsIDAuMDc2MjU3LCAwLjExMjQ5NCwgMC4xMzgzNDIsIDAuMTc5NzA4LCAwLjIxNTgyNywgMC4yNjc1MDkiLCBcCi0gICAgICAgICAgIjAuMDQ4MzA3LCAwLjA4NjQ5LCAwLjEyMjczNCwgMC4xNDg1NzksIDAuMTg5OTI1LCAwLjIyNjAyLCAwLjI3NzcwNiIsIFwKLSAgICAgICAgICAiMC4wNjExMjUsIDAuMDk5MzAxLCAwLjEzNTU3NSwgMC4xNjE0MTYsIDAuMjAyNzc5LCAwLjIzODkxNCwgMC4yOTA1NDIiLCBcCi0gICAgICAgICAgIjAuMDcyNjg4LCAwLjExMTA5NiwgMC4xNDczMDcsIDAuMTczMTc1LCAwLjIxNDUwMiwgMC4yNTA2NjksIDAuMzAyMjgzIiwgXAotICAgICAgICAgICIwLjA4MjcxNSwgMC4xMjE0OTksIDAuMTU3NjkxLCAwLjE4MzU0MiwgMC4yMjQ4NzQsIDAuMjYxMDI3LCAwLjMxMjY2OCIsIFwKLSAgICAgICAgICAiMC4wOTY1MTksIDAuMTM2MDI1LCAwLjE3MjMyMSwgMC4xOTgxNjUsIDAuMjM5NDk0LCAwLjI3NTYxMSwgMC4zMjcyMzkiLCBcCi0gICAgICAgICAgIjAuMTA2OTgsIDAuMTQ3MTM4LCAwLjE4MzM0NywgMC4yMDkxMjMsIDAuMjUwNDQ2LCAwLjI4NjU4MSwgMC4zMzgxOCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyMTk2OSwgMC4wOTMyOTgsIDAuMTY3MTQ5LCAwLjIyMDAxNCwgMC4zMDQ5MiwgMC4zNzk2MDEsIDAuNDg1OTAzIiwgXAotICAgICAgICAgICIwLjAyMTk0NCwgMC4wOTMzMTEsIDAuMTY2OTYyLCAwLjIyMDIzMywgMC4zMDUwNTgsIDAuMzc5ODUxLCAwLjQ4NjY5NiIsIFwKLSAgICAgICAgICAiMC4wMjIyMzksIDAuMDkzMzMsIDAuMTY3MjA1LCAwLjIyMDI1NiwgMC4zMDU0NjIsIDAuMzgwMDY5LCAwLjQ4NjA4OSIsIFwKLSAgICAgICAgICAiMC4wMjM1NzYsIDAuMDkzNjMzLCAwLjE2NzI2NCwgMC4yMjAzNTQsIDAuMzA1MDgzLCAwLjM4MDA0OSwgMC40ODY2MTQiLCBcCi0gICAgICAgICAgIjAuMDI1MTc0LCAwLjA5NDIzOCwgMC4xNjc1MDMsIDAuMjIwMzc5LCAwLjMwNTA1NSwgMC4zNzk1NDQsIDAuNDg2NzExIiwgXAotICAgICAgICAgICIwLjAyNzY3NCwgMC4wOTUxOTgsIDAuMTY3OTkzLCAwLjIyMDMzNywgMC4zMDUxNDUsIDAuMzgwMDksIDAuNDg2Njg5IiwgXAotICAgICAgICAgICIwLjAyOTc5LCAwLjA5NjQ2NCwgMC4xNjgzNjksIDAuMjIwODU4LCAwLjMwNTczNSwgMC4zODAxMDcsIDAuNDg2MjY0Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU5NjgzLCAwLjEwMzcyNCwgMC4xNDIzMzIsIDAuMTY5NjA3LCAwLjIxMzE0NCwgMC4yNTEyMDgsIDAuMzA1NTc1IiwgXAotICAgICAgICAgICIwLjA2ODIzNiwgMC4xMTIyMDYsIDAuMTUwODE3LCAwLjE3ODA5OSwgMC4yMjE2NDEsIDAuMjU5NzMsIDAuMzE0MTIiLCBcCi0gICAgICAgICAgIjAuMDc4MjQ1LCAwLjEyMjI1NywgMC4xNjA4NTMsIDAuMTg4MTE2LCAwLjIzMTY3MywgMC4yNjk3MjUsIDAuMzI0MTE2IiwgXAotICAgICAgICAgICIwLjA4Nzc4MiwgMC4xMzE4OCwgMC4xNzA0NjIsIDAuMTk3NzM1LCAwLjI0MTI3MywgMC4yNzkzNSwgMC4zMzM3MjUiLCBcCi0gICAgICAgICAgIjAuMDk2NjE2LCAwLjE0MDczNiwgMC4xNzkzNDUsIDAuMjA2NjA5LCAwLjI1MDE0MiwgMC4yODgyMjQsIDAuMzQyNjAyIiwgXAotICAgICAgICAgICIwLjEwODk0LCAwLjE1Mzc1LCAwLjE5MjQxOCwgMC4yMTk2NzEsIDAuMjYzMjE3LCAwLjMwMTI4OCwgMC4zNTU2NTYiLCBcCi0gICAgICAgICAgIjAuMTE4NDc3LCAwLjE2Mzk5OCwgMC4yMDI3MDMsIDAuMjI5OTY1LCAwLjI3MzQ4OSwgMC4zMTE1NDgsIDAuMzY1OTQ2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDI4MzkzLCAwLjEwMTc5NCwgMC4xNzY1ODIsIDAuMjMwNzAxLCAwLjMxODQ4MSwgMC4zOTUzNzQsIDAuNTA1MTYiLCBcCi0gICAgICAgICAgIjAuMDI4MzY4LCAwLjEwMTcwNiwgMC4xNzY1NjcsIDAuMjMwNjgsIDAuMzE4NTI2LCAwLjM5NTQ4OSwgMC41MDU2NDgiLCBcCi0gICAgICAgICAgIjAuMDI4MzIyLCAwLjEwMTY2NSwgMC4xNzY1MTUsIDAuMjMwNjI2LCAwLjMxODY0NSwgMC4zOTU0MDUsIDAuNTA0OTE0IiwgXAotICAgICAgICAgICIwLjAyODY2MSwgMC4xMDE4NDEsIDAuMTc2NTc2LCAwLjIzMDcyNywgMC4zMTg1NywgMC4zOTQ4MjksIDAuNTA1NTI0IiwgXAotICAgICAgICAgICIwLjAyOTQ0MywgMC4xMDIyNTEsIDAuMTc2ODQ1LCAwLjIzMTA1MywgMC4zMTg2NiwgMC4zOTU1MiwgMC41MDU2MSIsIFwKLSAgICAgICAgICAiMC4wMzA4MjEsIDAuMTAzNDcsIDAuMTc3NTMxLCAwLjIzMTczMiwgMC4zMTg5NDcsIDAuMzk1NjI5LCAwLjUwNDc3NCIsIFwKLSAgICAgICAgICAiMC4wMzIyMzgsIDAuMTAzOTE0LCAwLjE3ODAxNSwgMC4yMzE5NDMsIDAuMzE5MzAzLCAwLjM5NTg2NCwgMC41MDQ3OTYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzYzNiwgMC4wNzQ1NCwgMC4xMTA3NzIsIDAuMTM2NTQ3LCAwLjE3Nzg4OSwgMC4yMTQwMDMsIDAuMjY1NzIxIiwgXAotICAgICAgICAgICIwLjA0NjUzMSwgMC4wODQ2OTMsIDAuMTIwOTA3LCAwLjE0NjczOSwgMC4xODgwOSwgMC4yMjQyMTQsIDAuMjc1OTEyIiwgXAotICAgICAgICAgICIwLjA1OTAzMSwgMC4wOTcxNjIsIDAuMTMzMzgxLCAwLjE1OTIxNSwgMC4yMDA1NzgsIDAuMjM2Njk3LCAwLjI4ODQwMyIsIFwKLSAgICAgICAgICAiMC4wNzAyNDksIDAuMTA4Njk0LCAwLjE0NDgzMywgMC4xNzA2NjgsIDAuMjEyMDEsIDAuMjQ4MTcyLCAwLjI5OTc5NiIsIFwKLSAgICAgICAgICAiMC4wNzk2MjIsIDAuMTE4NTM2LCAwLjE1NDc5OCwgMC4xODA0ODUsIDAuMjIxNzcyLCAwLjI1ODAxOSwgMC4zMDk2NTMiLCBcCi0gICAgICAgICAgIjAuMDkyODA3LCAwLjEzMjYwMywgMC4xNjg4MzUsIDAuMTk0NjkxLCAwLjIzNTk4MywgMC4yNzIxMjksIDAuMzIzNzkyIiwgXAotICAgICAgICAgICIwLjEwMjc2LCAwLjE0MzExOCwgMC4xNzk1MTksIDAuMjA1MDg3LCAwLjI0NjM5NSwgMC4yODI1NTYsIDAuMzM0MTM1Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDIxOTA2LCAwLjA5MzE4NiwgMC4xNjcwMzMsIDAuMjIwMTQ4LCAwLjMwNDgxMywgMC4zODAwNzMsIDAuNDg1ODc3IiwgXAotICAgICAgICAgICIwLjAyMTg0OCwgMC4wOTMxOTgsIDAuMTY3MDQ1LCAwLjIxOTg5OSwgMC4zMDQ4MDgsIDAuMzc5ODczLCAwLjQ4NTYwNiIsIFwKLSAgICAgICAgICAiMC4wMjIzNTIsIDAuMDkzMzIxLCAwLjE2NzA4OCwgMC4yMjAxNjUsIDAuMzA0ODE2LCAwLjM3OTg4MiwgMC40ODU4ODUiLCBcCi0gICAgICAgICAgIjAuMDIzODcyLCAwLjA5MzY1OCwgMC4xNjcyMDYsIDAuMjIwMjUsIDAuMzA1NTA0LCAwLjM3OTMwNiwgMC40ODY3MjUiLCBcCi0gICAgICAgICAgIjAuMDI1NTgyLCAwLjA5NDQwNiwgMC4xNjcyNzEsIDAuMjIwNDQxLCAwLjMwNTAyNSwgMC4zNzk0MTgsIDAuNDg1ODgiLCBcCi0gICAgICAgICAgIjAuMDI4Mzg3LCAwLjA5NTU1LCAwLjE2Nzk1NCwgMC4yMjA3ODIsIDAuMzA1NjEyLCAwLjM3OTY0NCwgMC40ODU4MTYiLCBcCi0gICAgICAgICAgIjAuMDMwMTkzLCAwLjA5Njg0LCAwLjE2ODU1NSwgMC4yMjA5MzYsIDAuMzA1Njg1LCAwLjM3OTYxMiwgMC40ODY3OTQiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTY3LCAwLjEwMDY1NSwgMC4xMzkyODksIDAuMTY2NTYsIDAuMjEwMTI2LCAwLjI0ODE5MiwgMC4zMDI1OCIsIFwKLSAgICAgICAgICAiMC4wNjU1MDgsIDAuMTA5NTMzLCAwLjE0ODE1NCwgMC4xNzU0MjksIDAuMjE4OTY4LCAwLjI1NzA1MiwgMC4zMTE0NDMiLCBcCi0gICAgICAgICAgIjAuMDc3MDEsIDAuMTIxMDAxLCAwLjE1OTYwNSwgMC4xODY4NzMsIDAuMjMwNDEyLCAwLjI2ODUyMSwgMC4zMjI4NzgiLCBcCi0gICAgICAgICAgIjAuMDg4NTA4LCAwLjEzMjU1MSwgMC4xNzExNDMsIDAuMTk4NDIyLCAwLjI0MTk1OSwgMC4yODAwMjksIDAuMzM0NDI4IiwgXAotICAgICAgICAgICIwLjA5ODY1MiwgMC4xNDI2NDMsIDAuMTgxMjQxLCAwLjIwODQ5OCwgMC4yNTIwMzIsIDAuMjkwMTMxLCAwLjM0NDQ4NSIsIFwKLSAgICAgICAgICAiMC4xMTI4MTMsIDAuMTU3NzMyLCAwLjE5NjMxMSwgMC4yMjI2OTMsIDAuMjY2MTYzLCAwLjMwNDI0MiwgMC4zNTg1OTgiLCBcCi0gICAgICAgICAgIjAuMTIzNTM2LCAwLjE2ODk4NCwgMC4yMDc2NzgsIDAuMjMzOTQ5LCAwLjI3NzM0NSwgMC4zMTUzODgsIDAuMzY5NzExIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDI4MzEyLCAwLjEwMTc1MywgMC4xNzY1NTgsIDAuMjMwODYzLCAwLjMxODYyNSwgMC4zOTUzNzIsIDAuNTA0NzM0IiwgXAotICAgICAgICAgICIwLjAyODQwMiwgMC4xMDE2MzIsIDAuMTc2NTQsIDAuMjMwNjUxLCAwLjMxODU3MywgMC4zOTU0NjQsIDAuNTA1NjY0IiwgXAotICAgICAgICAgICIwLjAyODM5OSwgMC4xMDE2OTQsIDAuMTc2NTI3LCAwLjIzMDY3MywgMC4zMTgwNzMsIDAuMzk0NjU4LCAwLjUwNDgzNiIsIFwKLSAgICAgICAgICAiMC4wMjg3OTUsIDAuMTAxODY4LCAwLjE3NjYyNCwgMC4yMzA5MjMsIDAuMzE4NTc2LCAwLjM5NTQxNSwgMC41MDQ5NjgiLCBcCi0gICAgICAgICAgIjAuMDI5OTE3LCAwLjEwMjUzNiwgMC4xNzY5MjgsIDAuMjMxMTE0LCAwLjMxODcsIDAuMzk1NjM5LCAwLjUwNDc5IiwgXAotICAgICAgICAgICIwLjAzMjExMywgMC4xMDM0MTcsIDAuMTc3NjAzLCAwLjIzMjAzNCwgMC4zMTg2OCwgMC4zOTU4OTEsIDAuNTA1NzQ4IiwgXAotICAgICAgICAgICIwLjAzNDA4NCwgMC4xMDQzODQsIDAuMTc4Mzc5LCAwLjIzMjI0NCwgMC4zMTk1NDgsIDAuMzk2MjI2LCAwLjUwNTE1NiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA4Njk1LCAwLjAwOTAxMiwgMC4wMDkwNjMsIDAuMDA5MDc5LCAwLjAwOTA5MywgMC4wMDkxMDEsIDAuMDA5MTA3IiwgXAotICAgICAgICAgICIwLjAwODU4NCwgMC4wMDg5MTIsIDAuMDA4OTcyLCAwLjAwODk5NywgMC4wMDkwMTEsIDAuMDA5MDI0LCAwLjAwOTAzNSIsIFwKLSAgICAgICAgICAiMC4wMDg1MzgsIDAuMDA4ODQ5LCAwLjAwODkyOCwgMC4wMDg5NTUsIDAuMDA4OTgsIDAuMDA4OTksIDAuMDA5MDAzIiwgXAotICAgICAgICAgICIwLjAwODU0NiwgMC4wMDg4MzgsIDAuMDA4OTE4LCAwLjAwODk2NSwgMC4wMDg5ODQsIDAuMDA5MDA1LCAwLjAwOTAyMSIsIFwKLSAgICAgICAgICAiMC4wMDg1OTIsIDAuMDA4ODQxLCAwLjAwODkyNiwgMC4wMDg5NjgsIDAuMDA5MDA1LCAwLjAwOTAyMSwgMC4wMDkwMzkiLCBcCi0gICAgICAgICAgIjAuMDA4NjkzLCAwLjAwODg4MiwgMC4wMDg5NjksIDAuMDA5MDA3LCAwLjAwOTA0NSwgMC4wMDkwNjUsIDAuMDA5MDg2IiwgXAotICAgICAgICAgICIwLjAwODgwNCwgMC4wMDg5MywgMC4wMDkwMjEsIDAuMDA5MDU1LCAwLjAwOTA4OCwgMC4wMDkxMTksIDAuMDA5MTM3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTE1MzcsIDAuMDExOTY3LCAwLjAxMjA3NSwgMC4wMTIxMTEsIDAuMDEyMTQ0LCAwLjAxMjE2MiwgMC4wMTIxNzgiLCBcCi0gICAgICAgICAgIjAuMDExNDMsIDAuMDExODkxLCAwLjAxMjAwOCwgMC4wMTIwNDcsIDAuMDEyMDgzLCAwLjAxMjEwMiwgMC4wMTIxMTkiLCBcCi0gICAgICAgICAgIjAuMDExNDA0LCAwLjAxMTg0NywgMC4wMTE5NjcsIDAuMDEyMDA5LCAwLjAxMjA0OCwgMC4wMTIwNjgsIDAuMDEyMDg3IiwgXAotICAgICAgICAgICIwLjAxMTM5OSwgMC4wMTE4MDQsIDAuMDExOTM3LCAwLjAxMTk4MiwgMC4wMTIwMjUsIDAuMDEyMDQ4LCAwLjAxMjA2OSIsIFwKLSAgICAgICAgICAiMC4wMTE0MTMsIDAuMDExNzc0LCAwLjAxMTkxMSwgMC4wMTE5NTksIDAuMDEyMDA3LCAwLjAxMjAzMiwgMC4wMTIwNTYiLCBcCi0gICAgICAgICAgIjAuMDExMzc5LCAwLjAxMTcyOCwgMC4wMTE4NywgMC4wMTE5MywgMC4wMTE5NzgsIDAuMDEyMDA4LCAwLjAxMjA0MiIsIFwKLSAgICAgICAgICAiMC4wMTE0MDYsIDAuMDExNzk3LCAwLjAxMTkxLCAwLjAxMTk2NCwgMC4wMTIwMDYsIDAuMDEyMDMyLCAwLjAxMjA1OCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA4MTc5LCAwLjAwODUzMSwgMC4wMDg1ODMsIDAuMDA4NjE0LCAwLjAwODYxNSwgMC4wMDg2MiwgMC4wMDg2MjYiLCBcCi0gICAgICAgICAgIjAuMDA4MDQxLCAwLjAwODQwNywgMC4wMDg0NzMsIDAuMDA4NDkxLCAwLjAwODUxNiwgMC4wMDg1MjMsIDAuMDA4NTMiLCBcCi0gICAgICAgICAgIjAuMDA3OTgzLCAwLjAwODMxOCwgMC4wMDg0MDQsIDAuMDA4NDM1LCAwLjAwODQ2MSwgMC4wMDg0NzMsIDAuMDA4NDg5IiwgXAotICAgICAgICAgICIwLjAwNzk1LCAwLjAwODI2MiwgMC4wMDgzNjMsIDAuMDA4Mzk5LCAwLjAwODQyMywgMC4wMDg0NDQsIDAuMDA4NDY1IiwgXAotICAgICAgICAgICIwLjAwNzk4OSwgMC4wMDgyNjcsIDAuMDA4MzcyLCAwLjAwODQxLCAwLjAwODQ0OCwgMC4wMDg0NzEsIDAuMDA4NDkxIiwgXAotICAgICAgICAgICIwLjAwODA0NiwgMC4wMDgyNTcsIDAuMDA4MzU1LCAwLjAwODQwMywgMC4wMDg0MzMsIDAuMDA4NDY1LCAwLjAwODQ4MyIsIFwKLSAgICAgICAgICAiMC4wMDgwNDEsIDAuMDA4MjkzLCAwLjAwODM5MiwgMC4wMDg0MzEsIDAuMDA4NDgzLCAwLjAwODUsIDAuMDA4NTMzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTA4MjIsIDAuMDExMjc3LCAwLjAxMTM5LCAwLjAxMTQyOCwgMC4wMTE0NjMsIDAuMDExNDgxLCAwLjAxMTQ5OCIsIFwKLSAgICAgICAgICAiMC4wMTA3MTEsIDAuMDExMTcxLCAwLjAxMTI5MiwgMC4wMTEzMzMsIDAuMDExMzcyLCAwLjAxMTM5MiwgMC4wMTE0MTEiLCBcCi0gICAgICAgICAgIjAuMDEwNzE0LCAwLjAxMTExNSwgMC4wMTEyNDMsIDAuMDExMjksIDAuMDExMzM1LCAwLjAxMTM1OCwgMC4wMTEzODEiLCBcCi0gICAgICAgICAgIjAuMDEwNzgsIDAuMDExMTAyLCAwLjAxMTIyOCwgMC4wMTEyNzYsIDAuMDExMzIzLCAwLjAxMTM0OSwgMC4wMTEzNzQiLCBcCi0gICAgICAgICAgIjAuMDEwNzIxLCAwLjAxMTEwOSwgMC4wMTEyMzUsIDAuMDExMjg2LCAwLjAxMTMzNywgMC4wMTEzNjYsIDAuMDExMzk0IiwgXAotICAgICAgICAgICIwLjAxMDc5MiwgMC4wMTEwOSwgMC4wMTEyMzcsIDAuMDExMjcxLCAwLjAxMTMzNywgMC4wMTEzNzQsIDAuMDExNDA5IiwgXAotICAgICAgICAgICIwLjAxMDg2NSwgMC4wMTExMjUsIDAuMDExMjY0LCAwLjAxMTI5NSwgMC4wMTEzNjQsIDAuMDExNDA1LCAwLjAxMTQ0NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBPUjNYMSAqCi0gKiAtLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoT1IzWDEpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4xMTM0MDY7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY1MjgzODsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2NDk1MjU7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjUyODM4OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDE5NywgMC4wMDAyMDcsIDAuMDAwMjExLCAwLjAwMDIxMywgMC4wMDAyMTQsIDAuMDAwMjE0LCAwLjAwMDIxNCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDQwNCwgMC4wMDA0MDUsIDAuMDAwNDA0LCAwLjAwMDQwNSwgMC4wMDA0MDUsIDAuMDAwNDA1LCAwLjAwMDQwNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjQ2Mjc5OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDY0MzU0MjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2NDYyNzk7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMTk1LCAwLjAwMDIxMywgMC4wMDAyMTYsIDAuMDAwMjE3LCAwLjAwMDIxOSwgMC4wMDAyMiwgMC4wMDAyMiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDI0MSwgMC4wMDAyNDIsIDAuMDAwMjQyLCAwLjAwMDI0MiwgMC4wMDAyNDIsIDAuMDAwMjQyLCAwLjAwMDI0MiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQykgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjM3NjMxOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYzNzU4NjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2Mzc2MzE7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMDYxLCAwLjAwMDA2MSwgMC4wMDAwNjEsIDAuMDAwMDYxLCAwLjAwMDA2MSwgMC4wMDAwNjEsIDAuMDAwMDYxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjA5LCAwLjAwMDIwOSwgMC4wMDAyMDksIDAuMDAwMjA5LCAwLjAwMDIwOSwgMC4wMDAyMDksIDAuMDAwMjA5Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMjYwNjkxOwotICAgIGZ1bmN0aW9uIDogIigoQStCKStDKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc0ODA0LCAwLjA5OTQ2MSwgMC4yMzg3NDMsIDAuMzYxNDc3LCAwLjUyNTA5MywgMC44NTIyNDgsIDEuMDU2ODIiLCBcCi0gICAgICAgICAgIjAuMDg0OTYzLCAwLjEwOTY0NiwgMC4yNDg5NjIsIDAuMzcxNjY1LCAwLjUzNTMxMSwgMC44NjI0NTUsIDEuMDY2OSIsIFwKLSAgICAgICAgICAiMC4wOTc1OCwgMC4xMjIyNDEsIDAuMjYxNTIzLCAwLjM4NDI2NSwgMC41NDc5MTksIDAuODc1MDU4LCAxLjA3OTUiLCBcCi0gICAgICAgICAgIjAuMTA5MzQ3LCAwLjEzNDAwNCwgMC4yNzMyODUsIDAuMzk2MDIyLCAwLjU1OTcwMiwgMC44ODY4MTEsIDEuMDkxMjYiLCBcCi0gICAgICAgICAgIjAuMTE5Nzk3LCAwLjE0NDQ0NywgMC4yODM3MzEsIDAuNDA2NDUzLCAwLjU3MDA2LCAwLjg5NzIxOSwgMS4xMDE4OCIsIFwKLSAgICAgICAgICAiMC4xMzQyMDgsIDAuMTU4ODU3LCAwLjI5ODE3MywgMC40MjA4OTIsIDAuNTg0NDgzLCAwLjkxMTY0MiwgMS4xMTYxNiIsIFwKLSAgICAgICAgICAiMC4xNDU5MDYsIDAuMTcwNjA1LCAwLjMwOTg0MiwgMC40MzI1ODUsIDAuNTk2MTcyLCAwLjkyMzM0NywgMS4xMjc5MSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTIxMzYsIDAuMTQyMDIxLCAwLjQyODIyNywgMC42ODEwMTQsIDEuMDE4MDgsIDEuNjkyMzEsIDIuMTE0MTQiLCBcCi0gICAgICAgICAgIjAuMDkxOTEyLCAwLjE0MjA5NCwgMC40Mjc0NjMsIDAuNjgwOTY0LCAxLjAxNjU4LCAxLjY5MjI2LCAyLjExMzc0IiwgXAotICAgICAgICAgICIwLjA5MjE1NiwgMC4xNDE5MTksIDAuNDI3NjY2LCAwLjY4MDk1NywgMS4wMTgxOSwgMS42OTIzMywgMi4xMTM3NSIsIFwKLSAgICAgICAgICAiMC4wOTIzNDgsIDAuMTQyMTk2LCAwLjQyODExNiwgMC42ODA4NiwgMS4wMTgxMiwgMS42OTIxMywgMi4xMTM0OCIsIFwKLSAgICAgICAgICAiMC4wOTI3NzcsIDAuMTQyNDY2LCAwLjQyODE2MSwgMC42ODA4NzksIDEuMDE3OTQsIDEuNjkyMDgsIDIuMTEwNTgiLCBcCi0gICAgICAgICAgIjAuMDkzNTgzLCAwLjE0Mjc0NiwgMC40MjgxODksIDAuNjc5OTE3LCAxLjAxNzk1LCAxLjY5MjExLCAyLjExMzU5IiwgXAotICAgICAgICAgICIwLjA5NDMzNiwgMC4xNDMxMTEsIDAuNDI4MjIxLCAwLjY4MDk1NCwgMS4wMTc5NCwgMS42OTIxNCwgMi4xMTM3NyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMjIyNTIsIDAuMTQ4MTU4LCAwLjI4ODkzNiwgMC40MTI2MDksIDAuNTc3NjU0LCAwLjkwNzM4NywgMS4xMTM4MiIsIFwKLSAgICAgICAgICAiMC4xMzA0OTksIDAuMTU2NDE2LCAwLjI5NzIwNSwgMC40MjA4NjksIDAuNTg1ODAzLCAwLjkxNTY1NywgMS4xMjIyMiIsIFwKLSAgICAgICAgICAiMC4xMzkyMzksIDAuMTY1MTA2LCAwLjMwNTg3NCwgMC40Mjk1NTcsIDAuNTk0NDgxLCAwLjkyNDM2MiwgMS4xMzA5MSIsIFwKLSAgICAgICAgICAiMC4xNDcyOTcsIDAuMTczMTY5LCAwLjMxMzk2LCAwLjQzNzYyNiwgMC42MDI1NDgsIDAuOTMyMzczLCAxLjEzOTA2IiwgXAotICAgICAgICAgICIwLjE1NDc4OSwgMC4xODA2NzgsIDAuMzIxNDc1LCAwLjQ0NTE3NCwgMC42MTAwOTQsIDAuOTM5OTYsIDEuMTQ2NjciLCBcCi0gICAgICAgICAgIjAuMTY2MDc5LCAwLjE5MjA1MiwgMC4zMzI4ODcsIDAuNDU2NTU1LCAwLjYyMTQ5MywgMC45NTEzNDksIDEuMTU3OTQiLCBcCi0gICAgICAgICAgIjAuMTc0OTU5LCAwLjIwMDk5LCAwLjM0MTkxOCwgMC40NjU1ODQsIDAuNjMwNTI2LCAwLjk2MDM2NCwgMS4xNjcwMiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDA2MjMsIDAuMTQ3ODg4LCAwLjQyNTAyNCwgMC42NzI4MTksIDEuMDAyNzYsIDEuNjY5OSwgMi4wODE1NiIsIFwKLSAgICAgICAgICAiMC4xMDA1MjksIDAuMTQ3ODYxLCAwLjQyNDI5NywgMC42NzI5MjMsIDEuMDAzNywgMS42NjYxNiwgMi4wODEwNCIsIFwKLSAgICAgICAgICAiMC4xMDA0NDksIDAuMTQ3NzkyLCAwLjQyNDQwNywgMC42NzI1MjgsIDEuMDA1NTcsIDEuNjcwMjgsIDIuMDgxMDUiLCBcCi0gICAgICAgICAgIjAuMTAwNDQ0LCAwLjE0Nzc4OCwgMC40MjUxMzgsIDAuNjcyMDM1LCAxLjAwNTU1LCAxLjY3MDkzLCAyLjA4MDk0IiwgXAotICAgICAgICAgICIwLjEwMDcyNywgMC4xNDgsIDAuNDI1MDU5LCAwLjY3MzM2NCwgMS4wMDU2MSwgMS42NjYwNiwgMi4wODA2OSIsIFwKLSAgICAgICAgICAiMC4xMDE0MywgMC4xNDg0NDEsIDAuNDI1MjQ4LCAwLjY3MzAyMSwgMS4wMDU2MiwgMS42NzAzOSwgMi4wODEwNyIsIFwKLSAgICAgICAgICAiMC4xMDIyNTcsIDAuMTQ5MTc1LCAwLjQyNDY2MywgMC42NzM0MDEsIDEuMDA1NywgMS42NzEwNCwgMi4wODA5MSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzI0MTYsIDAuMDk2OTg0LCAwLjIzNjE0NSwgMC4zNTg4NDQsIDAuNTIyNDE3LCAwLjg0OTUzNywgMS4wNTQwMSIsIFwKLSAgICAgICAgICAiMC4wODI2NDcsIDAuMTA3MjczLCAwLjI0NjQzMywgMC4zNjkxMzgsIDAuNTMyNzExLCAwLjg1OTgyNywgMS4wNjQyOCIsIFwKLSAgICAgICAgICAiMC4wOTUxODQsIDAuMTE5ODExLCAwLjI1ODk4NiwgMC4zODE2ODksIDAuNTQ1Mjc3LCAwLjg3MjQ1NSwgMS4wNzY4NCIsIFwKLSAgICAgICAgICAiMC4xMDYzNTgsIDAuMTMwOTcsIDAuMjcwMTU5LCAwLjM5Mjg1NCwgMC41NTY0NjcsIDAuODgzNTU3LCAxLjA4ODAxIiwgXAotICAgICAgICAgICIwLjExNjQ5MiwgMC4xNDEwODgsIDAuMjgwMjg3LCAwLjQwMjk2LCAwLjU2NjUzNywgMC44OTM2NjksIDEuMDk4MTQiLCBcCi0gICAgICAgICAgIjAuMTMwMDI4LCAwLjE1NDY4OSwgMC4yOTM4NTcsIDAuNDE2NTgzLCAwLjU4MDE4MSwgMC45MDcyNjUsIDEuMTExNjkiLCBcCi0gICAgICAgICAgIjAuMTQwMzk0LCAwLjE2NTE1MywgMC4zMDQyMzYsIDAuNDI2OTc0LCAwLjU5MDQ5NiwgMC45MTc2NTEsIDEuMTIyMjYiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDkxNjQ2LCAwLjE0MTY4NiwgMC40Mjc0MzUsIDAuNjc4ODM4LCAxLjAxNzk4LCAxLjY5MDUsIDIuMTExMzEiLCBcCi0gICAgICAgICAgIjAuMDkxNDgxLCAwLjE0MTcwMSwgMC40Mjc0MTksIDAuNjgwMDAyLCAxLjAxNjg4LCAxLjY5MDE5LCAyLjExMTQ5IiwgXAotICAgICAgICAgICIwLjA5MTY1LCAwLjE0MTYwNiwgMC40MjczNzksIDAuNjgwMDEyLCAxLjAxNjc1LCAxLjY4OTczLCAyLjExMTE4IiwgXAotICAgICAgICAgICIwLjA5MjAyNSwgMC4xNDE3NDIsIDAuNDI3ODcyLCAwLjY4MDAzLCAxLjAxNjQsIDEuNjkwMTQsIDIuMTExMzIiLCBcCi0gICAgICAgICAgIjAuMDkyNDI5LCAwLjE0MjEyMSwgMC40Mjc5MDgsIDAuNjgwNjA2LCAxLjAxNzcxLCAxLjY5MDA0LCAyLjExMzQ5IiwgXAotICAgICAgICAgICIwLjA5MzI2MiwgMC4xNDI1MzMsIDAuNDI3ODY5LCAwLjY4MDY4NCwgMS4wMTY0OCwgMS42OTE5OSwgMi4xMTMyNyIsIFwKLSAgICAgICAgICAiMC4wOTQyMzMsIDAuMTQyODkyLCAwLjQyNzkxLCAwLjY4MDY3MSwgMS4wMTY1NywgMS42OTIsIDIuMTA5NzMiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTE4Mjk1LCAwLjE0NDIxMSwgMC4yODUwMjEsIDAuNDA4NzAzLCAwLjU3MzYwNCwgMC45MDM0NDUsIDEuMTA5NTkiLCBcCi0gICAgICAgICAgIjAuMTI2MzQ4LCAwLjE1MjI0OSwgMC4yOTMwNTUsIDAuNDE2NzQ1LCAwLjU4MTY5OCwgMC45MTE1OCwgMS4xMTc5NiIsIFwKLSAgICAgICAgICAiMC4xMzYwODEsIDAuMTYxOTk2LCAwLjMwMjc5NSwgMC40MjY0ODUsIDAuNTkxNDE1LCAwLjkyMTI3NywgMS4xMjc4NyIsIFwKLSAgICAgICAgICAiMC4xNDU1NzksIDAuMTcxNDUsIDAuMzEyMjU5LCAwLjQzNTk1NCwgMC42MDA4OTUsIDAuOTMwNzk5LCAxLjEzNzUyIiwgXAotICAgICAgICAgICIwLjE1NDYyMiwgMC4xODA1NTIsIDAuMzIxMzcyLCAwLjQ0NTA2NSwgMC42MTAwMTMsIDAuOTM5ODk5LCAxLjE0NjY5IiwgXAotICAgICAgICAgICIwLjE2ODEzMywgMC4xOTQwNTEsIDAuMzM0OTEyLCAwLjQ1ODU5MSwgMC42MjM1NDYsIDAuOTUzMzcxLCAxLjE2MDAyIiwgXAotICAgICAgICAgICIwLjE3ODY1LCAwLjIwNDM0NCwgMC4zNDUzMDYsIDAuNDY4OTkyLCAwLjYzMzk1NSwgMC45NjM3ODcsIDEuMTcwNDkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTAwNjAzLCAwLjE0Nzg2NywgMC40MjUwMDksIDAuNjcyNDk3LCAxLjAwNDk1LCAxLjY3MDkxLCAyLjA4NjExIiwgXAotICAgICAgICAgICIwLjEwMDYwMiwgMC4xNDc4ODQsIDAuNDI1MDM4LCAwLjY3MzMwNiwgMS4wMDU3MywgMS42Njc1LCAyLjA4MzcyIiwgXAotICAgICAgICAgICIwLjEwMDQxNywgMC4xNDc3NjgsIDAuNDI0Mzk3LCAwLjY3MjU5MiwgMS4wMDU1NiwgMS42NzA0MSwgMi4wODEwOCIsIFwKLSAgICAgICAgICAiMC4xMDA0NzUsIDAuMTQ3NzgsIDAuNDI1MDEsIDAuNjczMjc1LCAxLjAwNTYzLCAxLjY2OTk4LCAyLjA4MDU2IiwgXAotICAgICAgICAgICIwLjEwMDk0LCAwLjE0ODEyMiwgMC40MjUwNzUsIDAuNjcyMTQ1LCAxLjAwNTY2LCAxLjY2NTk5LCAyLjA4MDQxIiwgXAotICAgICAgICAgICIwLjEwMTY0MiwgMC4xNDg4MjYsIDAuNDI1MzE0LCAwLjY3MzMwMSwgMS4wMDU2NywgMS42NzA5NiwgMi4wODEwMyIsIFwKLSAgICAgICAgICAiMC4xMDI3OTUsIDAuMTQ5ODY3LCAwLjQyNTQ5NSwgMC42NzM0ODMsIDEuMDA1ODQsIDEuNjY2MTMsIDIuMDgwNzMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY5NDc2LCAwLjA5NDA3MywgMC4yMzMxOTEsIDAuMzU2MDU2LCAwLjUxOTQ4NSwgMC44NDY3MjIsIDEuMDUyMDIiLCBcCi0gICAgICAgICAgIjAuMDc5NzA2LCAwLjEwNDI3NywgMC4yNDM0MDksIDAuMzY2MjQxLCAwLjUyOTg2NSwgMC44NTY5NDIsIDEuMDYyMDgiLCBcCi0gICAgICAgICAgIjAuMDkxODk5LCAwLjExNjQ3OSwgMC4yNTU2MjIsIDAuMzc4MzUxLCAwLjU0MjAxMywgMC44Njk1ODQsIDEuMDczODIiLCBcCi0gICAgICAgICAgIjAuMTAyNTU1LCAwLjEyNzE2NiwgMC4yNjYzNjYsIDAuMzg5MTQ2LCAwLjU1MjgyNCwgMC44Nzk4MDksIDEuMDg0NTYiLCBcCi0gICAgICAgICAgIjAuMTExNzM5LCAwLjEzNjQxOSwgMC4yNzU1NTMsIDAuMzk4Mzk4LCAwLjU2MTk0NywgMC44ODk3MzIsIDEuMDkzNjQiLCBcCi0gICAgICAgICAgIjAuMTI0NDc5LCAwLjE0ODk5NiwgMC4yODgwNzYsIDAuNDEwNzk5LCAwLjU3NDQyLCAwLjkwMTcyMywgMS4xMDYyNiIsIFwKLSAgICAgICAgICAiMC4xMzM3OSwgMC4xNTg0NTcsIDAuMjk3NTgxLCAwLjQyMDMxOCwgMC41ODM5LCAwLjkxMTIzMiwgMS4xMTU4NiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTExOTQsIDAuMTQxNSwgMC40MjcwMDIsIDAuNjc5NTk1LCAxLjAxNjA1LCAxLjY4OTIsIDIuMTEiLCBcCi0gICAgICAgICAgIjAuMDkxMjgsIDAuMTQxNDc5LCAwLjQyNjk5OSwgMC42Nzk1NzQsIDEuMDE2MjIsIDEuNjg5MiwgMi4xMTAzMSIsIFwKLSAgICAgICAgICAiMC4wOTE1MDcsIDAuMTQxNTUxLCAwLjQyNjk5OCwgMC42Nzk0MzEsIDEuMDE1OCwgMS42OTA2NSwgMi4xMTE4OCIsIFwKLSAgICAgICAgICAiMC4wOTE4NywgMC4xNDE3NzIsIDAuNDI3MDgzLCAwLjY3OTU3NCwgMS4wMTcwNCwgMS42OTE4LCAyLjExMzQzIiwgXAotICAgICAgICAgICIwLjA5MjQ4NSwgMC4xNDIwODgsIDAuNDI2OTk3LCAwLjY3OTU3OCwgMS4wMTU3MywgMS42ODkyNSwgMi4xMTM3NSIsIFwKLSAgICAgICAgICAiMC4wOTM0NDcsIDAuMTQyNTEsIDAuNDI3MzcsIDAuNjgwOTMyLCAxLjAxNjAxLCAxLjY5MTk4LCAyLjEwOTQ1IiwgXAotICAgICAgICAgICIwLjA5NDY0OSwgMC4xNDMwODEsIDAuNDI3OTU4LCAwLjY3OTQ4MSwgMS4wMTc2MSwgMS42ODg4NiwgMi4xMTA0MyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTA3MzksIDAuMTM2NjYzLCAwLjI3NzQ5NiwgMC40MDExODYsIDAuNTY2MTM5LCAwLjg5NjM4NCwgMS4xMDI0NCIsIFwKLSAgICAgICAgICAiMC4xMTg5MzYsIDAuMTQ0ODUxLCAwLjI4NTczOCwgMC40MDk0MjEsIDAuNTc0MzY4LCAwLjkwNDIxOSwgMS4xMTA0NiIsIFwKLSAgICAgICAgICAiMC4xMjk0OTIsIDAuMTU1NDA2LCAwLjI5NjIxNCwgMC40MTk5MTUsIDAuNTg0ODQxLCAwLjkxNTEzLCAxLjEyMDk5IiwgXAotICAgICAgICAgICIwLjE0MDE5OSwgMC4xNjYwODQsIDAuMzA2OTQyLCAwLjQzMDYxNywgMC41OTU1NSwgMC45MjU0MzUsIDEuMTMyMSIsIFwKLSAgICAgICAgICAiMC4xNTA1NjEsIDAuMTc2NDkyLCAwLjMxNzMwOSwgMC40NDEwMDQsIDAuNjA1OTMyLCAwLjkzNTkyNiwgMS4xNDIxMSIsIFwKLSAgICAgICAgICAiMC4xNjQ3MjEsIDAuMTkwNzU1LCAwLjMzMTYxLCAwLjQ1NTI5MSwgMC42MjAzNzMsIDAuOTUwMDc3LCAxLjE1Njg1IiwgXAotICAgICAgICAgICIwLjE3NjQ0OSwgMC4yMDI1NzUsIDAuMzQzMDIzLCAwLjQ2NjcyNCwgMC42MzE2NSwgMC45NjE1MDUsIDEuMTY4MzQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTAwNjIzLCAwLjE0Nzg4OSwgMC40MjUwNDEsIDAuNjcyMTIxLCAxLjAwNTY3LCAxLjY2NzU1LCAyLjA4MTIxIiwgXAotICAgICAgICAgICIwLjEwMDQ4OCwgMC4xNDc3ODYsIDAuNDI0MDc0LCAwLjY3MjkyMiwgMS4wMDU2OCwgMS42NjYzMywgMi4wODI2OSIsIFwKLSAgICAgICAgICAiMC4xMDAzOTYsIDAuMTQ3NzQ1LCAwLjQyNTAwOCwgMC42NzIxNiwgMS4wMDU1NCwgMS42NjYyNiwgMi4wODEyNCIsIFwKLSAgICAgICAgICAiMC4xMDA3MjYsIDAuMTQ3OTYzLCAwLjQyNTIzNCwgMC42NzIwNTgsIDEuMDA1NTYsIDEuNjcwMjksIDIuMDgwODUiLCBcCi0gICAgICAgICAgIjAuMTAwOTMsIDAuMTQ4MDk5LCAwLjQyNTA3NiwgMC42NzIxMzEsIDEuMDAzNjMsIDEuNjY1NCwgMi4wODI4OCIsIFwKLSAgICAgICAgICAiMC4xMDI1NzIsIDAuMTQ5MjM2LCAwLjQyNDkyNywgMC42NzMzMjMsIDEuMDAzMjgsIDEuNjcwOTYsIDIuMDgwNjIiLCBcCi0gICAgICAgICAgIjAuMTAyNzY0LCAwLjE1MDE4MywgMC40MjQ4MDQsIDAuNjczNjAxLCAxLjAwMzg3LCAxLjY3MTA0LCAyLjA4MDQxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxNjMxLCAwLjAwMTYzNSwgMC4wMDE2MzgsIDAuMDAxNjM5LCAwLjAwMTY0LCAwLjAwMTY0LCAwLjAwMTY0IiwgXAotICAgICAgICAgICIwLjAwMTYxMSwgMC4wMDE2MTUsIDAuMDAxNjIsIDAuMDAxNjIxLCAwLjAwMTYyMSwgMC4wMDE2MiwgMC4wMDE2MiIsIFwKLSAgICAgICAgICAiMC4wMDE2MDUsIDAuMDAxNjEsIDAuMDAxNjE3LCAwLjAwMTYxOCwgMC4wMDE2MTgsIDAuMDAxNjIsIDAuMDAxNjIiLCBcCi0gICAgICAgICAgIjAuMDAxNjA2LCAwLjAwMTYxMSwgMC4wMDE2MTksIDAuMDAxNjIxLCAwLjAwMTYyMiwgMC4wMDE2MjIsIDAuMDAxNjI0IiwgXAotICAgICAgICAgICIwLjAwMTYxMywgMC4wMDE2MTgsIDAuMDAxNjI4LCAwLjAwMTYyOSwgMC4wMDE2MywgMC4wMDE2MywgMC4wMDE2MzEiLCBcCi0gICAgICAgICAgIjAuMDAxNjMsIDAuMDAxNjM1LCAwLjAwMTY0MywgMC4wMDE2NDYsIDAuMDAxNjQ3LCAwLjAwMTY0NywgMC4wMDE2NDgiLCBcCi0gICAgICAgICAgIjAuMDAxNjM0LCAwLjAwMTYzOCwgMC4wMDE2NDcsIDAuMDAxNjQ5LCAwLjAwMTY1LCAwLjAwMTY1MSwgMC4wMDE2NTMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDMwOTIsIDAuMDAzMDk5LCAwLjAwMzEwNSwgMC4wMDMxMDYsIDAuMDAzMTA3LCAwLjAwMzEwNywgMC4wMDMxMDciLCBcCi0gICAgICAgICAgIjAuMDAzMDc2LCAwLjAwMzA4MiwgMC4wMDMwOSwgMC4wMDMwOTEsIDAuMDAzMDkxLCAwLjAwMzA5MSwgMC4wMDMwOTIiLCBcCi0gICAgICAgICAgIjAuMDAzMDY2LCAwLjAwMzA3NCwgMC4wMDMwODIsIDAuMDAzMDg0LCAwLjAwMzA4NCwgMC4wMDMwODUsIDAuMDAzMDg1IiwgXAotICAgICAgICAgICIwLjAwMzA2NCwgMC4wMDMwNzIsIDAuMDAzMDgxLCAwLjAwMzA4MiwgMC4wMDMwODMsIDAuMDAzMDgzLCAwLjAwMzA4MyIsIFwKLSAgICAgICAgICAiMC4wMDMwNTksIDAuMDAzMDY4LCAwLjAwMzA3OSwgMC4wMDMwOCwgMC4wMDMwODEsIDAuMDAzMDgyLCAwLjAwMzA4MiIsIFwKLSAgICAgICAgICAiMC4wMDMwNTksIDAuMDAzMDY4LCAwLjAwMzA3OSwgMC4wMDMwODEsIDAuMDAzMDgyLCAwLjAwMzA4MywgMC4wMDMwODMiLCBcCi0gICAgICAgICAgIjAuMDAzMDU4LCAwLjAwMzA2NywgMC4wMDMwOCwgMC4wMDMwODIsIDAuMDAzMDgzLCAwLjAwMzA4NCwgMC4wMDMwODQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDE0MTksIDAuMDAxNDI0LCAwLjAwMTQzMSwgMC4wMDE0MzQsIDAuMDAxNDM0LCAwLjAwMTQzNCwgMC4wMDE0MzUiLCBcCi0gICAgICAgICAgIjAuMDAxMzk3LCAwLjAwMTQwNCwgMC4wMDE0MTQsIDAuMDAxNDE1LCAwLjAwMTQxNywgMC4wMDE0MTcsIDAuMDAxNDE3IiwgXAotICAgICAgICAgICIwLjAwMTM4MywgMC4wMDEzOTIsIDAuMDAxNDA1LCAwLjAwMTQwOCwgMC4wMDE0MSwgMC4wMDE0MTEsIDAuMDAxNDExIiwgXAotICAgICAgICAgICIwLjAwMTM4MywgMC4wMDEzOTIsIDAuMDAxNDA5LCAwLjAwMTQxMSwgMC4wMDE0MTQsIDAuMDAxNDE1LCAwLjAwMTQxNSIsIFwKLSAgICAgICAgICAiMC4wMDEzNzMsIDAuMDAxMzg0LCAwLjAwMTQwMiwgMC4wMDE0MDUsIDAuMDAxNDA3LCAwLjAwMTQxLCAwLjAwMTQxMSIsIFwKLSAgICAgICAgICAiMC4wMDEzOCwgMC4wMDEzOTEsIDAuMDAxNDExLCAwLjAwMTQxNSwgMC4wMDE0MTgsIDAuMDAxNDIxLCAwLjAwMTQyMiIsIFwKLSAgICAgICAgICAiMC4wMDEzOTMsIDAuMDAxNDA1LCAwLjAwMTQyNiwgMC4wMDE0MzIsIDAuMDAxNDM0LCAwLjAwMTQzNywgMC4wMDE0MzgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI4OTYsIDAuMDAyOTA1LCAwLjAwMjkxNywgMC4wMDI5MTksIDAuMDAyOTIsIDAuMDAyOTIxLCAwLjAwMjkyMiIsIFwKLSAgICAgICAgICAiMC4wMDI4NzgsIDAuMDAyODg3LCAwLjAwMjksIDAuMDAyOTAzLCAwLjAwMjkwNCwgMC4wMDI5MDUsIDAuMDAyOTA1IiwgXAotICAgICAgICAgICIwLjAwMjg3LCAwLjAwMjg3OSwgMC4wMDI4OTMsIDAuMDAyODk2LCAwLjAwMjg5NywgMC4wMDI4OTgsIDAuMDAyODk5IiwgXAotICAgICAgICAgICIwLjAwMjg2NSwgMC4wMDI4NzUsIDAuMDAyODksIDAuMDAyODkzLCAwLjAwMjg5NSwgMC4wMDI4OTYsIDAuMDAyODk2IiwgXAotICAgICAgICAgICIwLjAwMjg2MywgMC4wMDI4NzMsIDAuMDAyODg5LCAwLjAwMjg5MiwgMC4wMDI4OTQsIDAuMDAyODk2LCAwLjAwMjg5NiIsIFwKLSAgICAgICAgICAiMC4wMDI4NjMsIDAuMDAyODcxLCAwLjAwMjg4OSwgMC4wMDI4OTMsIDAuMDAyODk1LCAwLjAwMjg5NywgMC4wMDI4OTciLCBcCi0gICAgICAgICAgIjAuMDAyODY1LCAwLjAwMjg3NCwgMC4wMDI4OTIsIDAuMDAyODk3LCAwLjAwMjg5OSwgMC4wMDI5MDEsIDAuMDAyOTAyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxMTk5LCAwLjAwMTIwMywgMC4wMDEyMDksIDAuMDAxMjEsIDAuMDAxMjExLCAwLjAwMTIxMSwgMC4wMDEyMTEiLCBcCi0gICAgICAgICAgIjAuMDAxMTc3LCAwLjAwMTE4NCwgMC4wMDExOTIsIDAuMDAxMTkzLCAwLjAwMTE5NCwgMC4wMDExOTUsIDAuMDAxMTk1IiwgXAotICAgICAgICAgICIwLjAwMTE2LCAwLjAwMTE2OSwgMC4wMDExODEsIDAuMDAxMTgzLCAwLjAwMTE4NCwgMC4wMDExODYsIDAuMDAxMTg2IiwgXAotICAgICAgICAgICIwLjAwMTE1NSwgMC4wMDExNjMsIDAuMDAxMTc5LCAwLjAwMTE4MiwgMC4wMDExODUsIDAuMDAxMTg2LCAwLjAwMTE4NiIsIFwKLSAgICAgICAgICAiMC4wMDExNTgsIDAuMDAxMTY4LCAwLjAwMTE4NSwgMC4wMDExODgsIDAuMDAxMTksIDAuMDAxMTkyLCAwLjAwMTE5MyIsIFwKLSAgICAgICAgICAiMC4wMDExNTksIDAuMDAxMTY4LCAwLjAwMTE4NywgMC4wMDExOTIsIDAuMDAxMTk0LCAwLjAwMTE5NSwgMC4wMDExOTciLCBcCi0gICAgICAgICAgIjAuMDAxMTc0LCAwLjAwMTE4MywgMC4wMDEyMDMsIDAuMDAxMjA4LCAwLjAwMTIxLCAwLjAwMTIxNCwgMC4wMDEyMTQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI2OTcsIDAuMDAyNzA4LCAwLjAwMjcyNCwgMC4wMDI3MjgsIDAuMDAyNzMsIDAuMDAyNzMxLCAwLjAwMjczMiIsIFwKLSAgICAgICAgICAiMC4wMDI2NzUsIDAuMDAyNjg2LCAwLjAwMjcwMywgMC4wMDI3MDYsIDAuMDAyNzA5LCAwLjAwMjcxLCAwLjAwMjcxMSIsIFwKLSAgICAgICAgICAiMC4wMDI2NjcsIDAuMDAyNjc4LCAwLjAwMjY5NywgMC4wMDI3MDEsIDAuMDAyNzAzLCAwLjAwMjcwNSwgMC4wMDI3MDYiLCBcCi0gICAgICAgICAgIjAuMDAyNjY5LCAwLjAwMjY4MSwgMC4wMDI3MDEsIDAuMDAyNzA1LCAwLjAwMjcwOCwgMC4wMDI3MTEsIDAuMDAyNzExIiwgXAotICAgICAgICAgICIwLjAwMjY4MiwgMC4wMDI2OTIsIDAuMDAyNzEsIDAuMDAyNzE1LCAwLjAwMjcxOCwgMC4wMDI3MiwgMC4wMDI3MjEiLCBcCi0gICAgICAgICAgIjAuMDAyNjkzLCAwLjAwMjcwNCwgMC4wMDI3MjUsIDAuMDAyNzMsIDAuMDAyNzM0LCAwLjAwMjczNywgMC4wMDI3MzgiLCBcCi0gICAgICAgICAgIjAuMDAyNzExLCAwLjAwMjcyLCAwLjAwMjc0MSwgMC4wMDI3NDgsIDAuMDAyNzUyLCAwLjAwMjc1NSwgMC4wMDI3NTYiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogT1IzWDggKgotICogLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKE9SM1g4KSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuNTU1OTIyOwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE4ODgyMjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE4NzU3OTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE4ODgyMjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA3MDIsIDAuMDAwNzQzLCAwLjAwMDc1NywgMC4wMDA3NjYsIDAuMDAwNzcyLCAwLjAwMDc3MywgMC4wMDA3ODIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDE0ODUsIDAuMDAxNDg1LCAwLjAwMTQ4NSwgMC4wMDE0ODUsIDAuMDAxNDg1LCAwLjAwMTQ4NiwgMC4wMDE0ODUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTczNzE4OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTcyNzE5OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTczNzE4OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDY5OSwgMC4wMDA3NjksIDAuMDAwNzgsIDAuMDAwNzgyLCAwLjAwMDc4NCwgMC4wMDA3OTEsIDAuMDAwNzkzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwODYsIDAuMDAwODYxLCAwLjAwMDg2MSwgMC4wMDA4NjEsIDAuMDAwODYxLCAwLjAwMDg2MSwgMC4wMDA4NjEiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEMpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTU4MTM4OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTU4MTIxOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTU4MTM4OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDIxNiwgMC4wMDAyMTYsIDAuMDAwMjE2LCAwLjAwMDIxNiwgMC4wMDAyMTYsIDAuMDAwMjE2LCAwLjAwMDIxNiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDY1MiwgMC4wMDA2NTIsIDAuMDAwNjUyLCAwLjAwMDY1MiwgMC4wMDA2NTEsIDAuMDAwNjUxLCAwLjAwMDY1MSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAyLjA2MjU3OwotICAgIGZ1bmN0aW9uIDogIigoQStCKStDKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDIzOTUsIDAuMDgxMzA0LCAwLjExNzczMiwgMC4xNDM2ODEsIDAuMTg1MTc2LCAwLjIyMTQ4LCAwLjI3MzI2NSIsIFwKLSAgICAgICAgICAiMC4wNTI1NzgsIDAuMDkxNTExLCAwLjEyNzk0OCwgMC4xNTM4OTMsIDAuMTk1NDA5LCAwLjIzMTcwMiwgMC4yODM0NzciLCBcCi0gICAgICAgICAgIjAuMDY1NTA5LCAwLjEwNDM4NSwgMC4xNDA4MDYsIDAuMTY2NzY3LCAwLjIwODI3NCwgMC4yNDQ1NzQsIDAuMjk2MzY1IiwgXAotICAgICAgICAgICIwLjA3NzgyOCwgMC4xMTY3OTUsIDAuMTUzMjE2LCAwLjE3OTE3MSwgMC4yMjA2NjcsIDAuMjU2OTg2LCAwLjMwODc3MSIsIFwKLSAgICAgICAgICAiMC4wODg2MjksIDAuMTI3ODAyLCAwLjE2NDIyNCwgMC4xOTAxODcsIDAuMjMxNjg1LCAwLjI2Nzk2NCwgMC4zMTk3NzUiLCBcCi0gICAgICAgICAgIjAuMTAzNTgxLCAwLjE0MzYzMiwgMC4xODAwMjksIDAuMjA1OTg1LCAwLjI0NzQ1MSwgMC4yODM3NTIsIDAuMzM1NTQ0IiwgXAotICAgICAgICAgICIwLjExNTYyOCwgMC4xNTYyOTQsIDAuMTkyODM3LCAwLjIxODc1NSwgMC4yNjAyMzMsIDAuMjk2NDkyLCAwLjM0ODI4OSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyMzE1OSwgMC4wOTQyNjksIDAuMTY4MTUsIDAuMjIxMzI0LCAwLjMwNTk5NCwgMC4zODE1NzYsIDAuNDg4NDI0IiwgXAotICAgICAgICAgICIwLjAyMzA1LCAwLjA5NDI0NiwgMC4xNjgxODEsIDAuMjIxMzI2LCAwLjMwNjc1NCwgMC4zODA4NzQsIDAuNDg3ODEyIiwgXAotICAgICAgICAgICIwLjAyMzE1NSwgMC4wOTQyNTQsIDAuMTY4MDk5LCAwLjIyMTMwOCwgMC4zMDYzMTksIDAuMzgxNTMyLCAwLjQ4ODM4IiwgXAotICAgICAgICAgICIwLjAyNDE1MiwgMC4wOTQ0NzcsIDAuMTY4MTk5LCAwLjIyMTMzNSwgMC4zMDYzNTIsIDAuMzgwODYyLCAwLjQ4ODMzMyIsIFwKLSAgICAgICAgICAiMC4wMjU2MTMsIDAuMDk1MDI4LCAwLjE2ODM3MywgMC4yMjE0ODMsIDAuMzA2NzIxLCAwLjM4MDkzNywgMC40ODc2NDQiLCBcCi0gICAgICAgICAgIjAuMDI3OTMzLCAwLjA5NTg2MSwgMC4xNjg3MDEsIDAuMjIxNDQ1LCAwLjMwNjQ5MSwgMC4zODE1NTksIDAuNDg4MzYzIiwgXAotICAgICAgICAgICIwLjAyOTY3OSwgMC4wOTY3ODEsIDAuMTY5MjIxLCAwLjIyMTk1MSwgMC4zMDY5MzQsIDAuMzgxNTg2LCAwLjQ4ODM4Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg5NzgsIDAuMTM5NjkyLCAwLjE3OTkwMiwgMC4yMDc1NDksIDAuMjUxMzQ0LCAwLjI4OTQ5NSwgMC4zNDM5MTEiLCBcCi0gICAgICAgICAgIjAuMDk3OTEzLCAwLjE0NzkzMSwgMC4xODgwMDcsIDAuMjE1NjQ1LCAwLjI1OTQzMSwgMC4yOTc1NTMsIDAuMzUxOTc3IiwgXAotICAgICAgICAgICIwLjEwNjQ2MiwgMC4xNTY0ODEsIDAuMTk2NjMsIDAuMjI0MjYyLCAwLjI2ODAzOCwgMC4zMDYxNywgMC4zNjA2MTYiLCBcCi0gICAgICAgICAgIjAuMTE0NjQzLCAwLjE2NDY0NywgMC4yMDQ3NjgsIDAuMjMyMzg5LCAwLjI3NjE3OCwgMC4zMTQzMSwgMC4zNjg3NTMiLCBcCi0gICAgICAgICAgIjAuMTIyMzE0LCAwLjE3MjMyOSwgMC4yMTI0NTMsIDAuMjQwMDg1LCAwLjI4Mzg1LCAwLjMyMjAwMiwgMC4zNzY0MTkiLCBcCi0gICAgICAgICAgIjAuMTM0MDU2LCAwLjE4NDIzNiwgMC4yMjQ0NzIsIDAuMjUyMTE5LCAwLjI5NTg5NiwgMC4zMzQwMjYsIDAuMzg4NDU1IiwgXAotICAgICAgICAgICIwLjE0MzE2MSwgMC4xOTM5MjksIDAuMjM0MjI2LCAwLjI2MTkxNiwgMC4zMDU2OTcsIDAuMzQzODM1LCAwLjM5ODI2NyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzNjIyNCwgMC4xMTA4MzMsIDAuMTg0MDk5LCAwLjIzNzM0NiwgMC4zMjMzMzMsIDAuMzk5NDQ3LCAwLjUwOTE4NyIsIFwKLSAgICAgICAgICAiMC4wMzYyMDQsIDAuMTEwNjMzLCAwLjE4NDEyOCwgMC4yMzczMzUsIDAuMzIzNDEyLCAwLjM5OTU0LCAwLjUwODU5MiIsIFwKLSAgICAgICAgICAiMC4wMzYyNzksIDAuMTEwNjE1LCAwLjE4Mzk3OSwgMC4yMzcyNCwgMC4zMjMzMjgsIDAuMzk5NTg4LCAwLjUwOTQwMSIsIFwKLSAgICAgICAgICAiMC4wMzYwNzgsIDAuMTEwNDk4LCAwLjE4MzkzMiwgMC4yMzcxOTMsIDAuMzIzMzAzLCAwLjM5OTEzOCwgMC41MDgwMzgiLCBcCi0gICAgICAgICAgIjAuMDM2NzEsIDAuMTEwNzEsIDAuMTg0MDQxLCAwLjIzNzM0LCAwLjMyMzU3NSwgMC4zOTk3MDMsIDAuNTA5MjkiLCBcCi0gICAgICAgICAgIjAuMDM3MjUyLCAwLjExMTIxOCwgMC4xODQzOCwgMC4yMzc1MzcsIDAuMzIzNTU5LCAwLjM5OTcyNywgMC41MDg4MDQiLCBcCi0gICAgICAgICAgIjAuMDM4MjQ4LCAwLjExMTk0MSwgMC4xODQ5MDQsIDAuMjM3OTIzLCAwLjMyMzgxOSwgMC40MDAzLCAwLjUwOTU0MiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0MDQ4LCAwLjA3OTEwNCwgMC4xMTU0NjcsIDAuMTQxNDEzLCAwLjE4Mjg5NywgMC4yMTkxMjcsIDAuMjcwODk0IiwgXAotICAgICAgICAgICIwLjA1MDY2OSwgMC4wODkzMTYsIDAuMTI1NjgsIDAuMTUxNjA0LCAwLjE5MzA3NSwgMC4yMjkzNDksIDAuMjgxMTE2IiwgXAotICAgICAgICAgICIwLjA2MzUwOSwgMC4xMDIxNDEsIDAuMTM4NTEsIDAuMTY0NDY4LCAwLjIwNTkxNSwgMC4yNDIxNzMsIDAuMjkzOTk2IiwgXAotICAgICAgICAgICIwLjA3NTQxNiwgMC4xMTQyNDUsIDAuMTUwNjE5LCAwLjE3NjU1MSwgMC4yMTgwMjMsIDAuMjU0MjkyLCAwLjMwNjA3IiwgXAotICAgICAgICAgICIwLjA4NTc2NiwgMC4xMjQ5NzcsIDAuMTYxMzMxLCAwLjE4NzI0NywgMC4yMjg4LCAwLjI2NTA2NSwgMC4zMTY4NjIiLCBcCi0gICAgICAgICAgIjAuMTAwMzMxLCAwLjE0MDE5NSwgMC4xNzY2MDIsIDAuMjAyNDExLCAwLjI0Mzg3MiwgMC4yODAxNCwgMC4zMzE4ODQiLCBcCi0gICAgICAgICAgIjAuMTExMTk5LCAwLjE1MjAzOSwgMC4xODg0NDgsIDAuMjE0MzUsIDAuMjU1ODAzLCAwLjI5MjAyNCwgMC4zNDM4NDYiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjI2NjQsIDAuMDkzOTI0LCAwLjE2NzcwNCwgMC4yMjExMzIsIDAuMzA1OTE5LCAwLjM4MTMyNCwgMC40ODgyIiwgXAotICAgICAgICAgICIwLjAyMjYwMywgMC4wOTM4OTksIDAuMTY3Njc1LCAwLjIyMTAyOCwgMC4zMDYwNzIsIDAuMzgxMzE2LCAwLjQ4NzY1MSIsIFwKLSAgICAgICAgICAiMC4wMjI4MTUsIDAuMDkzOTQsIDAuMTY3ODI1LCAwLjIyMTEzNSwgMC4zMDYwNzYsIDAuMzgwODIsIDAuNDg4MjU0IiwgXAotICAgICAgICAgICIwLjAyMzk3NywgMC4wOTQyMTMsIDAuMTY3OTg5LCAwLjIyMDg4LCAwLjMwNjEwMSwgMC4zODA2NTIsIDAuNDg4MTciLCBcCi0gICAgICAgICAgIjAuMDI1NTU0LCAwLjA5NDc4NywgMC4xNjgxNDcsIDAuMjIxMDA2LCAwLjMwNjE1OSwgMC4zODEyMzQsIDAuNDg4MTQiLCBcCi0gICAgICAgICAgIjAuMDI4MDU0LCAwLjA5NTkzOCwgMC4xNjg1NDksIDAuMjIxNTU0LCAwLjMwNjY1OSwgMC4zODEzMzIsIDAuNDg4MTExIiwgXAotICAgICAgICAgICIwLjAyOTkzNSwgMC4wOTY5MzcsIDAuMTY4OTc3LCAwLjIyMTY1OSwgMC4zMDYzMTYsIDAuMzgxMDI3LCAwLjQ4NzQ0Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg2OTAzLCAwLjEzNjc0MSwgMC4xNzY4ODUsIDAuMjA0NTc4LCAwLjI0ODMzNSwgMC4yODY0ODQsIDAuMzQwODk5IiwgXAotICAgICAgICAgICIwLjA5NTA5NiwgMC4xNDUxMSwgMC4xODUyMTIsIDAuMjEyODQ4LCAwLjI1NjYzOSwgMC4yOTQ3NjQsIDAuMzQ5MjE2IiwgXAotICAgICAgICAgICIwLjEwNDg5MSwgMC4xNTQ4OSwgMC4xOTUwNjQsIDAuMjIyNjk5LCAwLjI2NjQ4MywgMC4zMDQ2MiwgMC4zNTkwMzgiLCBcCi0gICAgICAgICAgIjAuMTE0NzgxLCAwLjE2NDcyMiwgMC4yMDQ4NDEsIDAuMjMyNDcsIDAuMjc2MjUsIDAuMzE0Mzg2LCAwLjM2ODgyNCIsIFwKLSAgICAgICAgICAiMC4xMjQzMDQsIDAuMTc0MjI4LCAwLjIxNDM3LCAwLjI0MjAxOSwgMC4yODU3NzUsIDAuMzIzOTE4LCAwLjM3ODM0NyIsIFwKLSAgICAgICAgICAiMC4xMzg1MDgsIDAuMTg4Nzk4LCAwLjIyOTA2LCAwLjI1NjcxLCAwLjMwMDQ4MywgMC4zMzg2MjUsIDAuMzkzMDQ5IiwgXAotICAgICAgICAgICIwLjE0OTg5LCAwLjIwMDY2NCwgMC4yNDEwMjEsIDAuMjY4NzExLCAwLjMxMjQ5OSwgMC4zNTA2NDYsIDAuNDA1MDU4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM2MDkyLCAwLjExMDg3LCAwLjE4NDEwMSwgMC4yMzczOTQsIDAuMzIzNDEzLCAwLjM5OTY0NiwgMC41MDkzMjUiLCBcCi0gICAgICAgICAgIjAuMDM2MjgyLCAwLjExMDYzOSwgMC4xODQxMjUsIDAuMjM3MzM2LCAwLjMyMzQxMiwgMC4zOTk1MjgsIDAuNTA4MDMzIiwgXAotICAgICAgICAgICIwLjAzNjI3LCAwLjExMDU0MywgMC4xODM5NjYsIDAuMjM3MjIxLCAwLjMyMzM1MSwgMC4zOTk1NiwgMC41MDkyNjEiLCBcCi0gICAgICAgICAgIjAuMDM2MTI5LCAwLjExMDUyMSwgMC4xODM5MzYsIDAuMjM3MTg4LCAwLjMyMzMwNywgMC4zOTkxNDQsIDAuNTA5MzA4IiwgXAotICAgICAgICAgICIwLjAzNjUyNSwgMC4xMTA4MiwgMC4xODQwODgsIDAuMjM3NDIxLCAwLjMyMzM4NywgMC4zOTk5NzEsIDAuNTA5MjkxIiwgXAotICAgICAgICAgICIwLjAzNzcwNywgMC4xMTE3NDcsIDAuMTg0NjQ1LCAwLjIzNzc2OSwgMC4zMjM2NTEsIDAuNDAwMTY3LCAwLjUwOTM5OSIsIFwKLSAgICAgICAgICAiMC4wMzg2MDQsIDAuMTEyMTMsIDAuMTg1MDA0LCAwLjIzODAyLCAwLjMyMzksIDAuNDAwMjM5LCAwLjUwOTU2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM3OTY0LCAwLjA3NjU3LCAwLjExMjkyNCwgMC4xMzg4NjgsIDAuMTgwMjE3LCAwLjIxNjQ4OCwgMC4yNjgyNiIsIFwKLSAgICAgICAgICAiMC4wNDgyMjksIDAuMDg2ODMyLCAwLjEyMzE1NywgMC4xNDkwNzQsIDAuMTkwNTUxLCAwLjIyNjc2NywgMC4yNzg2NCIsIFwKLSAgICAgICAgICAiMC4wNjA5MjksIDAuMDk5NDI3LCAwLjEzNTc3OCwgMC4xNjE2ODMsIDAuMjAzMTM1LCAwLjIzOTQyNiwgMC4yOTEyODEiLCBcCi0gICAgICAgICAgIjAuMDcyMjQ3LCAwLjExMTA4OSwgMC4xNDc0NzEsIDAuMTczMzc4LCAwLjIxNDg0MiwgMC4yNTEwNzIsIDAuMzAyOTU2IiwgXAotICAgICAgICAgICIwLjA4MTk4NiwgMC4xMjEzMjYsIDAuMTU3NzEzLCAwLjE4MzYyMiwgMC4yMjUwNTYsIDAuMjYxMzc2LCAwLjMxMzEwNSIsIFwKLSAgICAgICAgICAiMC4wOTUzMywgMC4xMzU2MTgsIDAuMTcxOTQ5LCAwLjE5Nzg1LCAwLjIzOTI5LCAwLjI3NTUwOSwgMC4zMjcyODYiLCBcCi0gICAgICAgICAgIjAuMTA1NzM5LCAwLjE0Njg2MiwgMC4xODMzMjMsIDAuMjA5MTk1LCAwLjI1MDY4MiwgMC4yODY5MTIsIDAuMzM4Njc2Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDIyNDQxLCAwLjA5Mzc4NSwgMC4xNjc1ODQsIDAuMjIwNjE3LCAwLjMwNjM4OSwgMC4zODEyOTcsIDAuNDg4MDE0IiwgXAotICAgICAgICAgICIwLjAyMjM4MSwgMC4wOTM4MjIsIDAuMTY3NTgxLCAwLjIyMDk3LCAwLjMwNTc4OCwgMC4zODEyNTcsIDAuNDg3MzU1IiwgXAotICAgICAgICAgICIwLjAyMjc5MiwgMC4wOTM4OTEsIDAuMTY3ODA4LCAwLjIyMDkyNSwgMC4zMDYwMTksIDAuMzgwNDgyLCAwLjQ4NzMzIiwgXAotICAgICAgICAgICIwLjAyNDI1LCAwLjA5NDI4NywgMC4xNjc5NjcsIDAuMjIxMDYsIDAuMzA1OTM5LCAwLjM4MTE5NSwgMC40ODczNTciLCBcCi0gICAgICAgICAgIjAuMDI1OTMsIDAuMDk0OTY3LCAwLjE2ODE3NywgMC4yMjA4MTcsIDAuMzA2MDg2LCAwLjM4MDQwNCwgMC40ODc5ODYiLCBcCi0gICAgICAgICAgIjAuMDI4NjM2LCAwLjA5NjE5NSwgMC4xNjg2NzQsIDAuMjIxNiwgMC4zMDYxMDMsIDAuMzgxNDE2LCAwLjQ4NzU2OCIsIFwKLSAgICAgICAgICAiMC4wMzEwODYsIDAuMDk3NDQ3LCAwLjE2OTMwMSwgMC4yMjE4MDUsIDAuMzA2MzYsIDAuMzgxNTE1LCAwLjQ4NzYzNyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4MDA1NywgMC4xMjk4NTMsIDAuMTcwMDUyLCAwLjE5NzcxNCwgMC4yNDE1MDIsIDAuMjc5NjU2LCAwLjMzNDA3MyIsIFwKLSAgICAgICAgICAiMC4wODgwOTEsIDAuMTM4MTI5LCAwLjE3ODI4LCAwLjIwNTkxNSwgMC4yNDk2ODMsIDAuMjg3ODU1LCAwLjM0MjI5MyIsIFwKLSAgICAgICAgICAiMC4wOTg2OCwgMC4xNDg3MzQsIDAuMTg4ODYsIDAuMjE2NTIsIDAuMjYwMjk5LCAwLjI5ODQ1OSwgMC4zNTI5MTUiLCBcCi0gICAgICAgICAgIjAuMTA5ODc1LCAwLjE1OTc4MSwgMC4xOTk5MzIsIDAuMjI3NTg1LCAwLjI3MTM1LCAwLjMwOTUwMSwgMC4zNjM5MjMiLCBcCi0gICAgICAgICAgIjAuMTIwNjY5LCAwLjE3MDQxMSwgMC4yMTA1NzUsIDAuMjM4MjIyLCAwLjI4MTk4NCwgMC4zMjAxMzgsIDAuMzc0NTYxIiwgXAotICAgICAgICAgICIwLjEzNjk3MiwgMC4xODY5NjEsIDAuMjI3MTYxLCAwLjI1NDc4MywgMC4yOTg1MzUsIDAuMzM2NjgyLCAwLjM5MTEwNyIsIFwKLSAgICAgICAgICAiMC4xNDkyOTUsIDAuMjAwMDI3LCAwLjIzOTYwOCwgMC4yNjcyNzUsIDAuMzExMDE1LCAwLjM0OTE3NCwgMC40MDM1ODIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzYyMTIsIDAuMTEwODQzLCAwLjE4Mzk3NiwgMC4yMzczNDksIDAuMzIzMzY3LCAwLjM5OTQ4NCwgMC41MDkyMjQiLCBcCi0gICAgICAgICAgIjAuMDM2MjU5LCAwLjExMDYzNCwgMC4xODQsIDAuMjM3MjUzLCAwLjMyMzQ4NCwgMC4zOTkzNiwgMC41MDgyNCIsIFwKLSAgICAgICAgICAiMC4wMzYxMiwgMC4xMTA1MDIsIDAuMTgzOTA2LCAwLjIzNzI3NCwgMC4zMjM0MjMsIDAuMzk5NTUxLCAwLjUwOTM1NSIsIFwKLSAgICAgICAgICAiMC4wMzYxMzQsIDAuMTEwNTE4LCAwLjE4Mzk1NiwgMC4yMzcxNjksIDAuMzIzMzM0LCAwLjM5OTU3NSwgMC41MDkyNzIiLCBcCi0gICAgICAgICAgIjAuMDM2MzU0LCAwLjExMTA0NCwgMC4xODQyNjEsIDAuMjM3NTU3LCAwLjMyMzQ2MiwgMC4zOTk1NjQsIDAuNTA5MzAxIiwgXAotICAgICAgICAgICIwLjAzNzg5NywgMC4xMTE1OTIsIDAuMTg0NTk5LCAwLjIzNzcxNiwgMC4zMjM2NDQsIDAuMzk5ODMzLCAwLjUwOTQwMyIsIFwKLSAgICAgICAgICAiMC4wNDAyODcsIDAuMTEyNDY1LCAwLjE4NTY0NSwgMC4yMzg0NTYsIDAuMzI0MTMyLCAwLjQwMDQ2NywgMC41MDk2NTgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwOTQ2NSwgMC4wMDk3OTIsIDAuMDA5ODUxLCAwLjAwOTg3MSwgMC4wMDk4ODgsIDAuMDA5ODk3LCAwLjAwOTkxMiIsIFwKLSAgICAgICAgICAiMC4wMDkzNzgsIDAuMDA5NzAzLCAwLjAwOTc3MSwgMC4wMDk3ODksIDAuMDA5ODEzLCAwLjAwOTgyMiwgMC4wMDk4MzUiLCBcCi0gICAgICAgICAgIjAuMDA5MzQ0LCAwLjAwOTY0NiwgMC4wMDk3MjcsIDAuMDA5NzU1LCAwLjAwOTc4MiwgMC4wMDk3OTYsIDAuMDA5ODA5IiwgXAotICAgICAgICAgICIwLjAwOTM3NiwgMC4wMDk2MywgMC4wMDk3MTQsIDAuMDA5NzUxLCAwLjAwOTc3NSwgMC4wMDk3ODgsIDAuMDA5ODA3IiwgXAotICAgICAgICAgICIwLjAwOTM4NywgMC4wMDk2MTEsIDAuMDA5Njk5LCAwLjAwOTc0MSwgMC4wMDk3NzIsIDAuMDA5Nzk1LCAwLjAwOTgwOSIsIFwKLSAgICAgICAgICAiMC4wMDk0ODYsIDAuMDA5NjU5LCAwLjAwOTc0NSwgMC4wMDk3ODEsIDAuMDA5ODE5LCAwLjAwOTg0LCAwLjAwOTg1OSIsIFwKLSAgICAgICAgICAiMC4wMDk0ODgsIDAuMDA5NjQ2LCAwLjAwOTczMSwgMC4wMDk3NywgMC4wMDk4MDksIDAuMDA5ODMxLCAwLjAwOTg2NSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEyOTg0LCAwLjAxMzM2MiwgMC4wMTM0ODIsIDAuMDEzNTI1LCAwLjAxMzU2NSwgMC4wMTM1ODYsIDAuMDEzNjA2IiwgXAotICAgICAgICAgICIwLjAxMjk3NiwgMC4wMTMzMDYsIDAuMDEzNDE2LCAwLjAxMzQ2MiwgMC4wMTM1MDYsIDAuMDEzNTI5LCAwLjAxMzU1IiwgXAotICAgICAgICAgICIwLjAxMjg5NCwgMC4wMTMyNDgsIDAuMDEzMzgsIDAuMDEzNDI4LCAwLjAxMzQ3MywgMC4wMTM0OTcsIDAuMDEzNTE5IiwgXAotICAgICAgICAgICIwLjAxMjg4MiwgMC4wMTMyMjgsIDAuMDEzMzYsIDAuMDEzNDA5LCAwLjAxMzQ1NiwgMC4wMTM0ODEsIDAuMDEzNTA0IiwgXAotICAgICAgICAgICIwLjAxMjg5NiwgMC4wMTMyMTUsIDAuMDEzMzQ3LCAwLjAxMzM5NywgMC4wMTM0NDUsIDAuMDEzNDcxLCAwLjAxMzQ5NSIsIFwKLSAgICAgICAgICAiMC4wMTI5MjgsIDAuMDEzMTksIDAuMDEzMzI4LCAwLjAxMzM4MSwgMC4wMTM0MzIsIDAuMDEzNDYsIDAuMDEzNDg2IiwgXAotICAgICAgICAgICIwLjAxMjk3OSwgMC4wMTMxODQsIDAuMDEzMzIsIDAuMDEzMzcyLCAwLjAxMzQyMiwgMC4wMTM0NTIsIDAuMDEzNDgyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDg5NjEsIDAuMDA5MzI2LCAwLjAwOTM4OSwgMC4wMDk0MTQsIDAuMDA5NDI2LCAwLjAwOTQyNCwgMC4wMDk0NDQiLCBcCi0gICAgICAgICAgIjAuMDA4ODY5LCAwLjAwOTIzNywgMC4wMDkzMTIsIDAuMDA5MzM2LCAwLjAwOTM1OSwgMC4wMDkzNywgMC4wMDkzNzYiLCBcCi0gICAgICAgICAgIjAuMDA4ODA1LCAwLjAwOTE1NCwgMC4wMDkyNCwgMC4wMDkyNzUsIDAuMDA5MzA0LCAwLjAwOTMyNCwgMC4wMDkzMzMiLCBcCi0gICAgICAgICAgIjAuMDA4NzgyLCAwLjAwOTEwMywgMC4wMDkyMDUsIDAuMDA5MjM5LCAwLjAwOTI3OCwgMC4wMDkyOTcsIDAuMDA5MzE1IiwgXAotICAgICAgICAgICIwLjAwODc5LCAwLjAwOTA3NiwgMC4wMDkxODUsIDAuMDA5MjQ0LCAwLjAwOTI3MSwgMC4wMDkyODksIDAuMDA5MzExIiwgXAotICAgICAgICAgICIwLjAwODg4MywgMC4wMDkwNzUsIDAuMDA5MTgsIDAuMDA5MjIsIDAuMDA5MjYsIDAuMDA5Mjg3LCAwLjAwOTMxMSIsIFwKLSAgICAgICAgICAiMC4wMDg4NDYsIDAuMDA5MDc3LCAwLjAwOTE4NSwgMC4wMDkyMjUsIDAuMDA5MjgyLCAwLjAwOTMwOCwgMC4wMDkzMzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMjM1NywgMC4wMTI2ODMsIDAuMDEyODE3LCAwLjAxMjg2NSwgMC4wMTI5MSwgMC4wMTI5MzUsIDAuMDEyOTU4IiwgXAotICAgICAgICAgICIwLjAxMjMxNCwgMC4wMTI2NDYsIDAuMDEyNzYyLCAwLjAxMjgxMSwgMC4wMTI4NTcsIDAuMDEyODgyLCAwLjAxMjkwNSIsIFwKLSAgICAgICAgICAiMC4wMTIyMjgsIDAuMDEyNTg0LCAwLjAxMjcyMSwgMC4wMTI3NzIsIDAuMDEyODIxLCAwLjAxMjg0NywgMC4wMTI4NzEiLCBcCi0gICAgICAgICAgIjAuMDEyMjUyLCAwLjAxMjU2NSwgMC4wMTI2OTksIDAuMDEyNzUsIDAuMDEyOCwgMC4wMTI4MjcsIDAuMDEyODUyIiwgXAotICAgICAgICAgICIwLjAxMjI2OCwgMC4wMTI1NSwgMC4wMTI2ODQsIDAuMDEyNzM2LCAwLjAxMjc4OCwgMC4wMTI4MTcsIDAuMDEyODQ0IiwgXAotICAgICAgICAgICIwLjAxMjI1NywgMC4wMTI1MzYsIDAuMDEyNjYyLCAwLjAxMjcxNiwgMC4wMTI3NzEsIDAuMDEyODAyLCAwLjAxMjgzMiIsIFwKLSAgICAgICAgICAiMC4wMTIzMjcsIDAuMDEyNTIyLCAwLjAxMjY1MywgMC4wMTI3MDksIDAuMDEyNzY2LCAwLjAxMjc5OSwgMC4wMTI4MzEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwODMzOCwgMC4wMDg2OTgsIDAuMDA4NzYyLCAwLjAwODc2OCwgMC4wMDg3ODcsIDAuMDA4NzksIDAuMDA4Nzg5IiwgXAotICAgICAgICAgICIwLjAwODI0MiwgMC4wMDg2MTIsIDAuMDA4Njg0LCAwLjAwODcwMiwgMC4wMDg3MjEsIDAuMDA4NzMxLCAwLjAwODczOSIsIFwKLSAgICAgICAgICAiMC4wMDgxNjQsIDAuMDA4NTE2LCAwLjAwODYwNSwgMC4wMDg2NDUsIDAuMDA4NjYzLCAwLjAwODY3OSwgMC4wMDg2OSIsIFwKLSAgICAgICAgICAiMC4wMDgxMzYsIDAuMDA4NDY4LCAwLjAwODU3LCAwLjAwODYwNCwgMC4wMDg2MzksIDAuMDA4NjQ1LCAwLjAwODY3MSIsIFwKLSAgICAgICAgICAiMC4wMDgxNjIsIDAuMDA4NDQ4LCAwLjAwODU1OCwgMC4wMDg1OSwgMC4wMDg2MywgMC4wMDg2NSwgMC4wMDg2NjgiLCBcCi0gICAgICAgICAgIjAuMDA4MjQ1LCAwLjAwODQ2NCwgMC4wMDg1NTcsIDAuMDA4NjE0LCAwLjAwODY0MiwgMC4wMDg2NjYsIDAuMDA4Njg4IiwgXAotICAgICAgICAgICIwLjAwODI5LCAwLjAwODQ0OCwgMC4wMDg1NDIsIDAuMDA4NTg4LCAwLjAwODYyOSwgMC4wMDg2NTgsIDAuMDA4NjgyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTE2MjEsIDAuMDExOTg5LCAwLjAxMjEyNSwgMC4wMTIxNzUsIDAuMDEyMjIyLCAwLjAxMjI0OCwgMC4wMTIyNzEiLCBcCi0gICAgICAgICAgIjAuMDExNTQ1LCAwLjAxMTkwNiwgMC4wMTIwNDMsIDAuMDEyMDkzLCAwLjAxMjE0MiwgMC4wMTIxNjgsIDAuMDEyMTkzIiwgXAotICAgICAgICAgICIwLjAxMTUwOCwgMC4wMTE4NTcsIDAuMDExOTk3LCAwLjAxMjA1MSwgMC4wMTIxMDQsIDAuMDEyMTM0LCAwLjAxMjE2MSIsIFwKLSAgICAgICAgICAiMC4wMTE1NDYsIDAuMDExODMzLCAwLjAxMTk3MSwgMC4wMTIwMjcsIDAuMDEyMDgzLCAwLjAxMjExNCwgMC4wMTIxNDQiLCBcCi0gICAgICAgICAgIjAuMDExNjE2LCAwLjAxMTgzMiwgMC4wMTE5NzIsIDAuMDEyMDMsIDAuMDEyMDksIDAuMDEyMTI1LCAwLjAxMjE1OCIsIFwKLSAgICAgICAgICAiMC4wMTE2NjMsIDAuMDExOTI5LCAwLjAxMjAzNCwgMC4wMTIwODQsIDAuMDEyMTM5LCAwLjAxMjE3MSwgMC4wMTIyMDIiLCBcCi0gICAgICAgICAgIjAuMDExNzcsIDAuMDExOTIzLCAwLjAxMjA0NCwgMC4wMTIwOTgsIDAuMDEyMTUzLCAwLjAxMjE5MywgMC4wMTIyMjkiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogU0RGRkhRWDEgKgotICogLS0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKFNERkZIUVgxKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuNDMzMjU3OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIGZmIChOMzAsUUJJTlQpIHsKLSAgICBuZXh0X3N0YXRlIDogIigoU0UgU0kpICsgKCFTRSBEKSkiOwotICAgIGNsb2NrZWRfb24gOiAiQ0siOwotICB9Ci0gIHBpbihDSykgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjIyMTgyOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYyMTkzOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDYyMjE4MjsKLSAgICBjbG9jayA6IHRydWU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzMzk1LCAwLjAwMzM3LCAwLjAwMzM1NSwgMC4wMDMzNTgsIDAuMDAzMzY3LCAwLjAwMzM5MSwgMC4wMDM0MSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNzM4MiwgMC4wMDczNiwgMC4wMDczNTcsIDAuMDA3MzY4LCAwLjAwNzM5MSwgMC4wMDc0MzIsIDAuMDA3NDciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFEJiFTRSYhU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1NFX0VRXzBfQU5fU0lfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjE0Njk0OSwgMC4xNTcxNDUsIDAuMTY5OTgzLCAwLjE4MTk5OSwgMC4xOTI4NSwgMC4yMDc5MTksIDAuMjE5NjA5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wOTM5MTIsIDAuMTAzNjI1LCAwLjExNjE5MywgMC4xMjc3ODYsIDAuMTM4MDY0LCAwLjE1MTg5MywgMC4xNjI1MTYiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEQpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDg4NzU5NjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA4ODU0NTM7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwODg3NTk2OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzY2OCwgMC4wMDM2MzUsIDAuMDAzNjE4LCAwLjAwMzYxMSwgMC4wMDM2MDQsIDAuMDAzNjE2LCAwLjAwMzYxOCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNTg1OSwgMC4wMDU4NDEsIDAuMDA1ODMsIDAuMDA1ODI3LCAwLjAwNTgyNSwgMC4wMDU4MywgMC4wMDU4MzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIVNFIjsKLSAgICAgIHNkZl9jb25kIDogIlNFID09IDEnYjAiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjA0Mzc1LCAtMC4wMzg3NSwgLTAuMDI2MjUsIC0wLjAyLCAtMC4wMTM3NSwgLTAuMDEsIC0wLjAwMTI1IiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMTUsIC0wLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjA2MTI1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjAzNzUsIC0wLjAzNzUsIC0wLjAyNzUsIC0wLjAxODc1IiwgXAotICAgICAgICAgICItMC4wNzM3NSwgLTAuMDY4NzUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjA0LCAtMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDg2MjUsIC0wLjA3NSwgLTAuMDY4NzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNDYyNSwgLTAuMDQzNzUiLCBcCi0gICAgICAgICAgIi0wLjA5NjI1LCAtMC4wOTEyNSwgLTAuMDg1LCAtMC4wNzg3NSwgLTAuMDcyNSwgLTAuMDYyNSwgLTAuMDUzNzUiLCBcCi0gICAgICAgICAgIi0wLjExMTI1LCAtMC4xLCAtMC4wOTM3NSwgLTAuMDg3NSwgLTAuMDgxMjUsIC0wLjA3MTI1LCAtMC4wNjg3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAwNjI1LCAwLjAwNSwgMC4wMTc1LCAwLjAyMzc1LCAwLjAzNjI1LCAwLjA0NjI1LCAwLjA2MTI1IiwgXAotICAgICAgICAgICItMC4wMTEyNSwgLTAuMDA2MjUsIDAuMDA2MjUsIDAuMDE4NzUsIDAuMDI1LCAwLjA0MTI1LCAwLjA1IiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDEyNSwgMCwgMC4wMDYyNSwgMC4wMTg3NSwgMC4wMjg3NSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAyNSwgLTAuMDEyNSwgMCwgMC4wMDYyNSwgMC4wMjI1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLCAwLjAxNjI1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDUyNSwgLTAuMDQxMjUsIC0wLjAyODc1LCAtMC4wMTYyNSwgLTAuMDEsIDAsIDAuMDE1IiwgXAotICAgICAgICAgICItMC4wNjEyNSwgLTAuMDUsIC0wLjAzNzUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAwODc1LCAwLjAwNjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhU0UiOwotICAgICAgc2RmX2NvbmQgOiAiU0UgPT0gMSdiMCI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY4NzUsIDAuMDYzNzUsIDAuMDUxMjUsIDAuMDQ1LCAwLjAzODc1LCAwLjAyODc1LCAwLjAyIiwgXAotICAgICAgICAgICIwLjA4LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDUsIDAuMDQzNzUsIDAuMDQsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMDkyNSwgMC4wODEyNSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA0NjI1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjA5ODc1LCAwLjA5Mzc1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNTg3NSwgMC4wNSIsIFwKLSAgICAgICAgICAiMC4xMTEyNSwgMC4xLCAwLjA5Mzc1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNzEyNSwgMC4wNjI1IiwgXAotICAgICAgICAgICIwLjEyNzUsIDAuMTE2MjUsIDAuMTAzNzUsIDAuMDk3NSwgMC4wOTEyNSwgMC4wODEyNSwgMC4wNzg3NSIsIFwKLSAgICAgICAgICAiMC4xMzYyNSwgMC4xMzEyNSwgMC4xMTg3NSwgMC4xMTI1LCAwLjEwNjI1LCAwLjA5NjI1LCAwLjA4NzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDM3NSwgMC4wMzI1LCAwLjAyLCAwLjAwNzUsIDAuMDAxMjUsIC0wLjAxNSwgLTAuMDIzNzUiLCBcCi0gICAgICAgICAgIjAuMDU1LCAwLjA0Mzc1LCAwLjAzMTI1LCAwLjAxODc1LCAwLjAwNjI1LCAtMC4wMSwgLTAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMDYxMjUsIDAuMDUsIDAuMDM3NSwgMC4wMjUsIDAuMDE4NzUsIDAuMDAyNSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMDczNzUsIDAuMDYyNSwgMC4wNSwgMC4wMzc1LCAwLjAyNSwgMC4wMTUsIDAiLCBcCi0gICAgICAgICAgIjAuMDgsIDAuMDY4NzUsIDAuMDU2MjUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMjEyNSwgMC4wMTI1IiwgXAotICAgICAgICAgICIwLjA5NjI1LCAwLjA4NSwgMC4wNzI1LCAwLjA2LCAwLjA0NzUsIDAuMDM3NSwgMC4wMjI1IiwgXAotICAgICAgICAgICIwLjEwNSwgMC4wOTM3NSwgMC4wODEyNSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA0NjI1LCAwLjAzMTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihRKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMjYzMjQyOwotICAgIGZ1bmN0aW9uIDogIk4zMCI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3NlbnNlIDogbm9uX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiByaXNpbmdfZWRnZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTI4Mzk0LCAwLjE1Mjg1NSwgMC4yOTE2NSwgMC40MTQyMDYsIDAuNTc3NjksIDAuOTA0NzUsIDEuMTA5MTQiLCBcCi0gICAgICAgICAgIjAuMTM4NTc0LCAwLjE2MzAzNiwgMC4zMDE4MDgsIDAuNDI0MzgzLCAwLjU4NzgzNSwgMC45MTQ5MjEsIDEuMTE5MzQiLCBcCi0gICAgICAgICAgIjAuMTUxMzg5LCAwLjE3NTg1MiwgMC4zMTQ2MTIsIDAuNDM3MjA4LCAwLjYwMDcyNywgMC45Mjc3NDUsIDEuMTMyMTMiLCBcCi0gICAgICAgICAgIjAuMTYzMzY3LCAwLjE4NzgzNywgMC4zMjY2MDMsIDAuNDQ5MTg5LCAwLjYxMjYzNSwgMC45Mzk3MDgsIDEuMTQ0MTIiLCBcCi0gICAgICAgICAgIjAuMTczOTk2LCAwLjE5ODQ3MSwgMC4zMzcyNTEsIDAuNDU5ODI1LCAwLjYyMzI4NCwgMC45NTAzMzUsIDEuMTU0NzQiLCBcCi0gICAgICAgICAgIjAuMTg4OTg5LCAwLjIxMzQ3LCAwLjM1MjI3NSwgMC40NzQ4NzQsIDAuNjM4MzE3LCAwLjk2NTI3LCAxLjE2OTcxIiwgXAotICAgICAgICAgICIwLjIwMDM4NiwgMC4yMjQ4NjYsIDAuMzYzNjUsIDAuNDg2MjA5LCAwLjY0OTY5NCwgMC45NzY2NTUsIDEuMTgxMDYiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDkxNTY5LCAwLjE0MTU5NywgMC40Mjc4NzIsIDAuNjc5ODE4LCAxLjAxNzgyLCAxLjY4OTU0LCAyLjExMDI4IiwgXAotICAgICAgICAgICIwLjA5MTU2MywgMC4xNDE1ODUsIDAuNDI3ODI1LCAwLjY3OTc1NCwgMS4wMTc3NywgMS42ODkzOCwgMi4xMTAxOSIsIFwKLSAgICAgICAgICAiMC4wOTE1NjcsIDAuMTQxNTkyLCAwLjQyNzc2LCAwLjY3OTMxNiwgMS4wMTc5MywgMS42ODk0OCwgMi4xMTAyNCIsIFwKLSAgICAgICAgICAiMC4wOTE1NjYsIDAuMTQxNTkyLCAwLjQyNzc3NywgMC42Nzk3NjksIDEuMDE3NzUsIDEuNjg5NSwgMi4xMTAyNCIsIFwKLSAgICAgICAgICAiMC4wOTE1NjEsIDAuMTQxNTg4LCAwLjQyNzc5NSwgMC42Nzk3NTUsIDEuMDE3NzUsIDEuNjg5MzQsIDIuMTEwMTUiLCBcCi0gICAgICAgICAgIjAuMDkxNTY5LCAwLjE0MTU5MSwgMC40Mjc4MjQsIDAuNjgwNzUxLCAxLjAxNjE2LCAxLjY4OTg5LCAyLjExMDg0IiwgXAotICAgICAgICAgICIwLjA5MTQ3NiwgMC4xNDE1OTMsIDAuNDI3NzA5LCAwLjY4MDQ5MywgMS4wMTU4MSwgMS42OTE4MiwgMi4xMTExMiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNDY5NDksIDAuMTcxNzMsIDAuMzExOTksIDAuNDM1NjQ3LCAwLjYwMDQ5MSwgMC45MzAyMjMsIDEuMTM2MzEiLCBcCi0gICAgICAgICAgIjAuMTU3MTQ1LCAwLjE4MTkyOSwgMC4zMjIxNCwgMC40NDU4NDIsIDAuNjEwNzM2LCAwLjk0MDQxNiwgMS4xNDY0OSIsIFwKLSAgICAgICAgICAiMC4xNjk5ODQsIDAuMTk0NzY1LCAwLjMzNDk4LCAwLjQ1ODYyOSwgMC42MjM1NjcsIDAuOTUzMjEyLCAxLjE1OTMyIiwgXAotICAgICAgICAgICIwLjE4MTk5OSwgMC4yMDY3NzgsIDAuMzQ2OTkyLCAwLjQ3MDY0MiwgMC42MzU1NzcsIDAuOTY1MjIxLCAxLjE3MTM0IiwgXAotICAgICAgICAgICIwLjE5Mjg1MSwgMC4yMTc2MzcsIDAuMzU3ODYxLCAwLjQ4MTUyMSwgMC42NDYzNSwgMC45NzYxMTQsIDEuMTgyMiIsIFwKLSAgICAgICAgICAiMC4yMDc5MiwgMC4yMzI3MSwgMC4zNzI5MzksIDAuNDk2NjIzLCAwLjY2MTQxNCwgMC45OTExODMsIDEuMTk3MjciLCBcCi0gICAgICAgICAgIjAuMjE5NjExLCAwLjI0NDM5NiwgMC4zODQ2MDQsIDAuNTA4MjczLCAwLjY3MzEwMywgMS4wMDI4NywgMS4yMDg5NSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTAwODksIDAuMTM5NDU1LCAwLjQyMTIzNiwgMC42NzEzODIsIDEuMDAyMjcsIDEuNjY1NTQsIDIuMDgwMTkiLCBcCi0gICAgICAgICAgIjAuMDkwMjAxLCAwLjEzOTQxOSwgMC40MjE1MDIsIDAuNjcxMzc4LCAxLjAwMTg0LCAxLjY2NTEyLCAyLjA4NTY1IiwgXAotICAgICAgICAgICIwLjA5MDEwNSwgMC4xMzkzOTIsIDAuNDIxMTY5LCAwLjY3MTEzMiwgMS4wMDA5NCwgMS42Njk0NiwgMi4wODIxNSIsIFwKLSAgICAgICAgICAiMC4wOTAwOTIsIDAuMTM5MzgsIDAuNDIxMTQ4LCAwLjY3MTM4NiwgMS4wMDExNSwgMS42Njk0MSwgMi4wODIyOSIsIFwKLSAgICAgICAgICAiMC4wOTAwNjEsIDAuMTM5NjY4LCAwLjQyMTk1OSwgMC42NzAzODEsIDEuMDAzNzMsIDEuNjY0ODIsIDIuMDc5ODEiLCBcCi0gICAgICAgICAgIjAuMDkwMDczLCAwLjEzOTIwNCwgMC40MjE5MzgsIDAuNjY5NzU4LCAxLjAwNDAyLCAxLjY2NDgxLCAyLjA3OTYyIiwgXAotICAgICAgICAgICIwLjA5MDE0MSwgMC4xMzk2ODMsIDAuNDIxOTk4LCAwLjY3MDQ2MywgMS4wMDQwMSwgMS42NjQ4NywgMi4wNzk4MiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDcxNjQsIDAuMDA3MTUyLCAwLjAwNzEwNywgMC4wMDcwOTMsIDAuMDA3MDgzLCAwLjAwNzA3NCwgMC4wMDcwNzEiLCBcCi0gICAgICAgICAgIjAuMDA3MTM0LCAwLjAwNzEyMiwgMC4wMDcwNzcsIDAuMDA3MDYyLCAwLjAwNzA1MywgMC4wMDcwNDYsIDAuMDA3MDQxIiwgXAotICAgICAgICAgICIwLjAwNzExOCwgMC4wMDcxMDcsIDAuMDA3MDYzLCAwLjAwNzA0OCwgMC4wMDcwMzgsIDAuMDA3MDI4LCAwLjAwNzAyNiIsIFwKLSAgICAgICAgICAiMC4wMDcxMTMsIDAuMDA3MTAyLCAwLjAwNzA1OCwgMC4wMDcwNDMsIDAuMDA3MDMyLCAwLjAwNzAyMywgMC4wMDcwMiIsIFwKLSAgICAgICAgICAiMC4wMDcxMzIsIDAuMDA3MTIyLCAwLjAwNzA4LCAwLjAwNzA2NCwgMC4wMDcwNTMsIDAuMDA3MDQ1LCAwLjAwNzA0MSIsIFwKLSAgICAgICAgICAiMC4wMDcxNDksIDAuMDA3MTQsIDAuMDA3MTAxLCAwLjAwNzA4NCwgMC4wMDcwNzMsIDAuMDA3MDYzLCAwLjAwNzA1OSIsIFwKLSAgICAgICAgICAiMC4wMDcxODEsIDAuMDA3MTczLCAwLjAwNzEzMywgMC4wMDcxMTcsIDAuMDA3MTA2LCAwLjAwNzA5NSwgMC4wMDcwOTEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDc2NTgsIDAuMDA3NjY3LCAwLjAwNzY4LCAwLjAwNzY4MiwgMC4wMDc2ODQsIDAuMDA3Njg2LCAwLjAwNzY4NiIsIFwKLSAgICAgICAgICAiMC4wMDc2MjksIDAuMDA3NjM4LCAwLjAwNzY1MSwgMC4wMDc2NTQsIDAuMDA3NjU1LCAwLjAwNzY1NywgMC4wMDc2NTciLCBcCi0gICAgICAgICAgIjAuMDA3NjI1LCAwLjAwNzYzNCwgMC4wMDc2NDcsIDAuMDA3NjUsIDAuMDA3NjUyLCAwLjAwNzY1MywgMC4wMDc2NTQiLCBcCi0gICAgICAgICAgIjAuMDA3NjQ2LCAwLjAwNzY1NSwgMC4wMDc2NjcsIDAuMDA3NjcsIDAuMDA3NjcyLCAwLjAwNzY3NCwgMC4wMDc2NzQiLCBcCi0gICAgICAgICAgIjAuMDA3Njc5LCAwLjAwNzY4OCwgMC4wMDc3MDEsIDAuMDA3NzAzLCAwLjAwNzcwNSwgMC4wMDc3MDcsIDAuMDA3NzA3IiwgXAotICAgICAgICAgICIwLjAwNzcxMSwgMC4wMDc3MiwgMC4wMDc3MzIsIDAuMDA3NzM1LCAwLjAwNzczNiwgMC4wMDc3MzgsIDAuMDA3NzM4IiwgXAotICAgICAgICAgICIwLjAwNzc2OSwgMC4wMDc3NzcsIDAuMDA3NzksIDAuMDA3NzkyLCAwLjAwNzc5NCwgMC4wMDc3OTUsIDAuMDA3Nzk2Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTRSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNjE2MjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE2MTU1MzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE2MTYyOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNTUzNCwgMC4wMDU1MTMsIDAuMDA1NTA0LCAwLjAwNTUwMiwgMC4wMDU1MTQsIDAuMDA1NTMxLCAwLjAwNTU1MiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNjkxOCwgMC4wMDY4NjUsIDAuMDA2ODQ5LCAwLjAwNjg1NSwgMC4wMDY4NzYsIDAuMDA2OTIzLCAwLjAwNjk2MyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRCZTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fU0lfRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMzc1LCAtMC4wMjYyNSwgLTAuMDIsIC0wLjAxMzc1LCAtMC4wMDc1LCAwLjAwMjUsIDAuMDA1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAwODc1LCAwIiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAyMTI1LCAtMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wNjc1LCAtMC4wNjI1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzMzc1LCAtMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjA4LCAtMC4wNzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDQ2MjUsIC0wLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjA5NjI1LCAtMC4wODUsIC0wLjA3ODc1LCAtMC4wNzI1LCAtMC4wNjYyNSwgLTAuMDU2MjUsIC0wLjA1Mzc1IiwgXAotICAgICAgICAgICItMC4xMDUsIC0wLjEsIC0wLjA5Mzc1LCAtMC4wODEyNSwgLTAuMDgxMjUsIC0wLjA3MTI1LCAtMC4wNjI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMCwgMC4wMTEyNSwgMC4wMjM3NSwgMC4wMywgMC4wNDI1LCAwLjA1MjUsIDAuMDY3NSIsIFwKLSAgICAgICAgICAiLTAuMDA1LCAwLCAwLjAxMjUsIDAuMDI1LCAwLjAzMTI1LCAwLjA0NzUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIi0wLjAxNzUsIC0wLjAwNjI1LCAwLjAwNjI1LCAwLjAxMjUsIDAuMDI1LCAwLjAzNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAxODc1LCAtMC4wMDYyNSwgMC4wMDYyNSwgMC4wMTI1LCAwLjAyODc1LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMjUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLjAwNjI1LCAwLjAxNjI1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDQ2MjUsIC0wLjAzNSwgLTAuMDI4NzUsIC0wLjAxNjI1LCAtMC4wMSwgMC4wMDYyNSwgMC4wMTUiLCBcCi0gICAgICAgICAgIi0wLjA1NSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAwMjUsIDAuMDA2MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiRCYhU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8xX0FOX1NJX0VRXzAgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDE4NzUsIC0wLjAwNzUsIDAuMDA1LCAwLjAxNzUsIDAuMDIzNzUsIDAuMDQsIDAuMDQ4NzUiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAuMDA2MjUsIDAuMDEyNSwgMC4wMjg3NSwgMC4wMzc1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDMxMjUsIC0wLjAxODc1LCAtMC4wMDYyNSwgMC4wMDYyNSwgMC4wMTYyNSwgMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLjAxLCAwLjAxODc1IiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA0Mzc1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMTI1LCAtMC4wMDI1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wNjUsIC0wLjA1Mzc1LCAtMC4wNDc1LCAtMC4wMzUsIC0wLjAyMjUsIC0wLjAxMjUsIC0wLjAwMzc1IiwgXAotICAgICAgICAgICItMC4wNzM3NSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA0Mzc1LCAtMC4wMzEyNSwgLTAuMDIxMjUsIC0wLjAxMjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wNTYyNSwgLTAuMDQ1LCAtMC4wMzg3NSwgLTAuMDMyNSwgLTAuMDI2MjUsIC0wLjAxNjI1LCAtMC4wMTM3NSIsIFwKLSAgICAgICAgICAiLTAuMDY3NSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDI3NSwgLTAuMDI1IiwgXAotICAgICAgICAgICItMC4wNzM3NSwgLTAuMDY4NzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDQsIC0wLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wODYyNSwgLTAuMDc1LCAtMC4wNjg3NSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA0NjI1LCAtMC4wNDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDkyNSwgLTAuMDgxMjUsIC0wLjA3NSwgLTAuMDY4NzUsIC0wLjA2MjUsIC0wLjA1ODc1LCAtMC4wNSIsIFwKLSAgICAgICAgICAiLTAuMTAyNSwgLTAuMDkxMjUsIC0wLjA4NSwgLTAuMDc4NzUsIC0wLjA3MjUsIC0wLjA2MjUsIC0wLjA2IiwgXAotICAgICAgICAgICItMC4xMTEyNSwgLTAuMSwgLTAuMDkzNzUsIC0wLjA4NzUsIC0wLjA4MTI1LCAtMC4wNzEyNSwgLTAuMDY4NzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEJlNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9TSV9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2MjUsIDAuMDUxMjUsIDAuMDQ1LCAwLjAzODc1LCAwLjAzMjUsIDAuMDIyNSwgMC4wMTM3NSIsIFwKLSAgICAgICAgICAiMC4wNzM3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDMzNzUsIDAuMDI1IiwgXAotICAgICAgICAgICIwLjA4NjI1LCAwLjA3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1LCAwLjA0LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIjAuMDk4NzUsIDAuMDg3NSwgMC4wNzUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNTI1LCAwLjA1IiwgXAotICAgICAgICAgICIwLjEwNSwgMC4xLCAwLjA4NzUsIDAuMDgxMjUsIDAuMDc1LCAwLjA2NSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiMC4xMjEyNSwgMC4xMTYyNSwgMC4xMDM3NSwgMC4wOTc1LCAwLjA5MTI1LCAwLjA4MTI1LCAwLjA3MjUiLCBcCi0gICAgICAgICAgIjAuMTM2MjUsIDAuMTI1LCAwLjExODc1LCAwLjEwNjI1LCAwLjEsIDAuMDk2MjUsIDAuMDg3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzNzUsIDAuMDI2MjUsIDAuMDEzNzUsIDAuMDAxMjUsIC0wLjAwNSwgLTAuMDIxMjUsIC0wLjAzIiwgXAotICAgICAgICAgICIwLjA0ODc1LCAwLjAzNzUsIDAuMDI1LCAwLjAxMjUsIDAsIC0wLjAxLCAtMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMDYxMjUsIDAuMDUsIDAuMDM3NSwgMC4wMjUsIDAuMDEyNSwgLTAuMDAzNzUsIC0wLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMDY3NSwgMC4wNTYyNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAyNSwgMC4wMDg3NSwgMCIsIFwKLSAgICAgICAgICAiMC4wOCwgMC4wNjg3NSwgMC4wNTYyNSwgMC4wNDM3NSwgMC4wMzEyNSwgMC4wMjEyNSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiMC4wOTYyNSwgMC4wODUsIDAuMDcyNSwgMC4wNiwgMC4wNDc1LCAwLjAzMTI1LCAwLjAyMjUiLCBcCi0gICAgICAgICAgIjAuMTA1LCAwLjA5Mzc1LCAwLjA4MTI1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDQ2MjUsIDAuMDMxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIkQmIVNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMV9BTl9TSV9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1NjI1LCAwLjA0NSwgMC4wMzI1LCAwLjAyLCAwLjAxMzc1LCAtMC4wMDI1LCAtMC4wMTc1IiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDU2MjUsIDAuMDQzNzUsIDAuMDMxMjUsIDAuMDE4NzUsIDAuMDA4NzUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICIwLjA4LCAwLjA2ODc1LCAwLjA1NjI1LCAwLjA0Mzc1LCAwLjAzMTI1LCAwLjAxNSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiMC4wODYyNSwgMC4wNzUsIDAuMDYyNSwgMC4wNSwgMC4wNDM3NSwgMC4wMjc1LCAwLjAxODc1IiwgXAotICAgICAgICAgICIwLjA5MjUsIDAuMDg3NSwgMC4wNzUsIDAuMDYyNSwgMC4wNSwgMC4wMzM3NSwgMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMTA4NzUsIDAuMDk3NSwgMC4wODUsIDAuMDcyNSwgMC4wNiwgMC4wNDM3NSwgMC4wMzUiLCBcCi0gICAgICAgICAgIjAuMTE3NSwgMC4xMDYyNSwgMC4wOTM3NSwgMC4wODEyNSwgMC4wNjg3NSwgMC4wNTI1LCAwLjA0Mzc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDgxMjUsIDAuMDcsIDAuMDYzNzUsIDAuMDU3NSwgMC4wNTEyNSwgMC4wNDEyNSwgMC4wMzI1IiwgXAotICAgICAgICAgICIwLjA5MjUsIDAuMDgxMjUsIDAuMDc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDUyNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4xMDUsIDAuMDkzNzUsIDAuMDgxMjUsIDAuMDc1LCAwLjA2ODc1LCAwLjA1ODc1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICIwLjExMTI1LCAwLjEsIDAuMDkzNzUsIDAuMDg3NSwgMC4wODEyNSwgMC4wNzEyNSwgMC4wNjI1IiwgXAotICAgICAgICAgICIwLjExNzUsIDAuMTA2MjUsIDAuMSwgMC4wOTM3NSwgMC4wODc1LCAwLjA3NzUsIDAuMDY4NzUiLCBcCi0gICAgICAgICAgIjAuMTI3NSwgMC4xMTYyNSwgMC4xMSwgMC4xMDM3NSwgMC4wOTc1LCAwLjA4NzUsIDAuMDc4NzUiLCBcCi0gICAgICAgICAgIjAuMTM2MjUsIDAuMTI1LCAwLjExODc1LCAwLjEwNjI1LCAwLjEsIDAuMDk2MjUsIDAuMDg3NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oU0kpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDg5NTQ4MjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA4OTIwNjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA4OTU0ODI7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzNDM5LCAwLjAwMzQwNiwgMC4wMDMzODksIDAuMDAzMzgxLCAwLjAwMzM3NCwgMC4wMDMzODIsIDAuMDAzMzkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDYxLCAwLjAwNjA4MiwgMC4wMDYwNzIsIDAuMDA2MDY3LCAwLjAwNjA2NCwgMC4wMDYwNjksIDAuMDA2MDc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlNFIjsKLSAgICAgIHNkZl9jb25kIDogIlNFID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjA0Mzc1LCAtMC4wMzI1LCAtMC4wMjYyNSwgLTAuMDIsIC0wLjAxMzc1LCAtMC4wMDM3NSwgLTAuMDAxMjUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDE1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDYxMjUsIC0wLjA1NjI1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAyNzUsIC0wLjAxODc1IiwgXAotICAgICAgICAgICItMC4wNzM3NSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDMzNzUsIC0wLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wODYyNSwgLTAuMDc1LCAtMC4wNjg3NSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA0NjI1LCAtMC4wMzc1IiwgXAotICAgICAgICAgICItMC4wOTYyNSwgLTAuMDkxMjUsIC0wLjA4NSwgLTAuMDcyNSwgLTAuMDcyNSwgLTAuMDYyNSwgLTAuMDUzNzUiLCBcCi0gICAgICAgICAgIi0wLjExMTI1LCAtMC4xLCAtMC4wOTM3NSwgLTAuMDg3NSwgLTAuMDgxMjUsIC0wLjA3MTI1LCAtMC4wNjg3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAwNjI1LCAwLjAwNSwgMC4wMTc1LCAwLjAyMzc1LCAwLjAzNjI1LCAwLjA0NjI1LCAwLjA1NSIsIFwKLSAgICAgICAgICAiLTAuMDE3NSwgLTAuMDA2MjUsIDAuMDA2MjUsIDAuMDE4NzUsIDAuMDI1LCAwLjA0MTI1LCAwLjA1IiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDEyNSwgMCwgMC4wMDYyNSwgMC4wMTg3NSwgMC4wMjg3NSwgMC4wMzc1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDI1LCAtMC4wMTI1LCAwLCAwLjAwNjI1LCAwLjAyMjUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAsIDAuMDEsIDAuMDI1IiwgXAotICAgICAgICAgICItMC4wNTI1LCAtMC4wNDEyNSwgLTAuMDI4NzUsIC0wLjAyMjUsIC0wLjAxLCAwLCAwLjAwODc1IiwgXAotICAgICAgICAgICItMC4wNjEyNSwgLTAuMDUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgLTAuMDA4NzUsIDAiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlNFIjsKLSAgICAgIHNkZl9jb25kIDogIlNFID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2ODc1LCAwLjA1NzUsIDAuMDUxMjUsIDAuMDQ1LCAwLjAzODc1LCAwLjAyODc1LCAwLjAyIiwgXAotICAgICAgICAgICIwLjA4LCAwLjA2ODc1LCAwLjA1NjI1LCAwLjA1LCAwLjA0Mzc1LCAwLjAzMzc1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICIwLjA5MjUsIDAuMDgxMjUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNDYyNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4wOTg3NSwgMC4wODc1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNTg3NSwgMC4wNSIsIFwKLSAgICAgICAgICAiMC4xMTEyNSwgMC4xLCAwLjA5Mzc1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNzEyNSwgMC4wNjI1IiwgXAotICAgICAgICAgICIwLjEyNzUsIDAuMTE2MjUsIDAuMTAzNzUsIDAuMDk3NSwgMC4wOTEyNSwgMC4wODEyNSwgMC4wNzg3NSIsIFwKLSAgICAgICAgICAiMC4xMzYyNSwgMC4xMjUsIDAuMTE4NzUsIDAuMTEyNSwgMC4xMDYyNSwgMC4wOTYyNSwgMC4wODc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQzNzUsIDAuMDMyNSwgMC4wMiwgMC4wMTM3NSwgMC4wMDEyNSwgLTAuMDE1LCAtMC4wMjM3NSIsIFwKLSAgICAgICAgICAiMC4wNTUsIDAuMDQzNzUsIDAuMDMxMjUsIDAuMDE4NzUsIDAuMDA2MjUsIC0wLjAwMzc1LCAtMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4wNjEyNSwgMC4wNTYyNSwgMC4wNDM3NSwgMC4wMzEyNSwgMC4wMTg3NSwgMC4wMDI1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiMC4wNzM3NSwgMC4wNjI1LCAwLjA1LCAwLjAzNzUsIDAuMDI1LCAwLjAxNSwgMCIsIFwKLSAgICAgICAgICAiMC4wOCwgMC4wNzUsIDAuMDYyNSwgMC4wNSwgMC4wMzc1LCAwLjAyMTI1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMDk2MjUsIDAuMDg1LCAwLjA3MjUsIDAuMDYsIDAuMDQ3NSwgMC4wMzc1LCAwLjAyMjUiLCBcCi0gICAgICAgICAgIjAuMTA1LCAwLjA5Mzc1LCAwLjA4MTI1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDQ2MjUsIDAuMDM3NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBTREZGSFFYMiAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoU0RGRkhRWDIpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC40NzcyMDc7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgZmYgKE4zMCxRQklOVCkgewotICAgIG5leHRfc3RhdGUgOiAiKChTRSBTSSkgKyAoIVNFIEQpKSI7Ci0gICAgY2xvY2tlZF9vbiA6ICJDSyI7Ci0gIH0KLSAgcGluKENLKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2MjY0Mjg7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjI2NDI4OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDYyNjMyMzsKLSAgICBjbG9jayA6IHRydWU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzMzg5LCAwLjAwMzM2NCwgMC4wMDMzNDgsIDAuMDAzMzUsIDAuMDAzMzY0LCAwLjAwMzM4NSwgMC4wMDM0MDMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDc0MDksIDAuMDA3Mzg4LCAwLjAwNzM4NSwgMC4wMDczOTYsIDAuMDA3NDE4LCAwLjAwNzQ2LCAwLjAwNzQ5OSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQmIVNFJiFTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fU0VfRVFfMF9BTl9TSV9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMTMyMzg4LCAwLjE0MjYzOSwgMC4xNTU0MTgsIDAuMTY3NDI0LCAwLjE3ODI2MSwgMC4xOTMzMDksIDAuMjA0OTg1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wOTM1MTEsIDAuMTAzNDY1LCAwLjExNTc5NywgMC4xMjczOTMsIDAuMTM3Njc3LCAwLjE1MTQzMywgMC4xNjIxMjIiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEQpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDg3Mjg5OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDg2OTU3NzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA4NzI4OTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDM2MTYsIDAuMDAzNTgzLCAwLjAwMzU2NiwgMC4wMDM1NTgsIDAuMDAzNTUyLCAwLjAwMzU1NywgMC4wMDM1NjYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDU5LCAwLjAwNTg4MiwgMC4wMDU4NzEsIDAuMDA1ODY4LCAwLjAwNTg2NiwgMC4wMDU4NywgMC4wMDU4NzYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIVNFIjsKLSAgICAgIHNkZl9jb25kIDogIlNFID09IDEnYjAiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjA0Mzc1LCAtMC4wMzg3NSwgLTAuMDI2MjUsIC0wLjAyLCAtMC4wMTM3NSwgLTAuMDEsIC0wLjAwMTI1IiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMTUsIC0wLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjA2MTI1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMjc1LCAtMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDczNzUsIC0wLjA2ODc1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wNCwgLTAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjA4NjI1LCAtMC4wNzUsIC0wLjA2ODc1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDQ2MjUsIC0wLjA0Mzc1IiwgXAotICAgICAgICAgICItMC4wOTYyNSwgLTAuMDkxMjUsIC0wLjA4NSwgLTAuMDc4NzUsIC0wLjA3MjUsIC0wLjA2MjUsIC0wLjA1Mzc1IiwgXAotICAgICAgICAgICItMC4xMTEyNSwgLTAuMSwgLTAuMDkzNzUsIC0wLjA4NzUsIC0wLjA4MTI1LCAtMC4wNzEyNSwgLTAuMDY4NzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMDYyNSwgMC4wMDUsIDAuMDE3NSwgMC4wMywgMC4wMzYyNSwgMC4wNTI1LCAwLjA2MTI1IiwgXAotICAgICAgICAgICItMC4wMTEyNSwgMCwgMC4wMDYyNSwgMC4wMTg3NSwgMC4wMjUsIDAuMDQxMjUsIDAuMDUiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTI1LCAwLCAwLjAxMjUsIDAuMDE4NzUsIDAuMDI4NzUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMTg3NSwgLTAuMDEyNSwgMCwgMC4wMTI1LCAwLjAyMjUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLCAwLjAxNjI1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDUyNSwgLTAuMDQxMjUsIC0wLjAyODc1LCAtMC4wMTYyNSwgLTAuMDEsIDAsIDAuMDE1IiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMDg3NSwgMC4wMDYyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIVNFIjsKLSAgICAgIHNkZl9jb25kIDogIlNFID09IDEnYjAiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3NSwgMC4wNjM3NSwgMC4wNTEyNSwgMC4wNDUsIDAuMDM4NzUsIDAuMDI4NzUsIDAuMDI2MjUiLCBcCi0gICAgICAgICAgIjAuMDgsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNSwgMC4wNCwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4wOTI1LCAwLjA4MTI1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDQ2MjUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMTA1LCAwLjA5Mzc1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNTg3NSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiMC4xMTEyNSwgMC4xLCAwLjA5Mzc1LCAwLjA4NzUsIDAuMDgxMjUsIDAuMDcxMjUsIDAuMDYyNSIsIFwKLSAgICAgICAgICAiMC4xMjc1LCAwLjExNjI1LCAwLjExLCAwLjA5NzUsIDAuMDkxMjUsIDAuMDg3NSwgMC4wNzg3NSIsIFwKLSAgICAgICAgICAiMC4xNDI1LCAwLjEzMTI1LCAwLjExODc1LCAwLjExMjUsIDAuMTA2MjUsIDAuMDk2MjUsIDAuMDg3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0Mzc1LCAwLjAzMjUsIDAuMDIsIDAuMDA3NSwgMC4wMDEyNSwgLTAuMDE1LCAtMC4wMjM3NSIsIFwKLSAgICAgICAgICAiMC4wNTUsIDAuMDQzNzUsIDAuMDMxMjUsIDAuMDE4NzUsIDAuMDA2MjUsIC0wLjAwMzc1LCAtMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4wNjEyNSwgMC4wNTYyNSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAxODc1LCAwLjAwMjUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICIwLjA3Mzc1LCAwLjA2MjUsIDAuMDUsIDAuMDM3NSwgMC4wMjUsIDAuMDE1LCAwIiwgXAotICAgICAgICAgICIwLjA4LCAwLjA3NSwgMC4wNTYyNSwgMC4wNSwgMC4wMzc1LCAwLjAyMTI1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMDk2MjUsIDAuMDg1LCAwLjA3MjUsIDAuMDYsIDAuMDQ3NSwgMC4wMzc1LCAwLjAyMjUiLCBcCi0gICAgICAgICAgIjAuMTA1LCAwLjA5Mzc1LCAwLjA4MTI1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDQ2MjUsIDAuMDMxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFEpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC41MjA2NjY7Ci0gICAgZnVuY3Rpb24gOiAiTjMwIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBub25fdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJpc2luZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTM3NzMsIDAuMjE1NzE3LCAwLjI5NzA5MiwgMC4zOTg3MjcsIDAuNTAwNjE3LCAwLjYwMjI5MywgMC43MDQxMjIiLCBcCi0gICAgICAgICAgIjAuMTIzOTkzLCAwLjIyNTkzNCwgMC4zMDczMTQsIDAuNDA5MDY4LCAwLjUxMDg0NCwgMC42MTI1MTgsIDAuNzE0MzUiLCBcCi0gICAgICAgICAgIjAuMTM2NzQxLCAwLjIzODY5NSwgMC4zMjAwOCwgMC40MjE4NDksIDAuNTIzNTM3LCAwLjYyNTM2NSwgMC43MjcxMjEiLCBcCi0gICAgICAgICAgIjAuMTQ4NzIxLCAwLjI1MDY3NywgMC4zMzIwNTIsIDAuNDMzODUsIDAuNTM1NTc3LCAwLjYzNzI1MywgMC43MzkwODciLCBcCi0gICAgICAgICAgIjAuMTU5MjgsIDAuMjYxMjQyLCAwLjM0MjYxOCwgMC40NDQ0MTYsIDAuNTQ2MTQ0LCAwLjY0NzgxNiwgMC43NDk2NTkiLCBcCi0gICAgICAgICAgIjAuMTc0MzE4LCAwLjI3NjI4OCwgMC4zNTc2NTksIDAuNDU5NDEyLCAwLjU2MTExLCAwLjY2Mjk1LCAwLjc2NDcxOCIsIFwKLSAgICAgICAgICAiMC4xODU2OSwgMC4yODc2NzIsIDAuMzY5MDUsIDAuNDcwODAxLCAwLjU3MjQ5OSwgMC42NzQzNTEsIDAuNzc2MTE4Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1MTA0NywgMC4yNTc5ODYsIDAuNDI2MzU2LCAwLjYzNTQ3MSwgMC44NDY3MzMsIDEuMDU2NzcsIDEuMjY3MSIsIFwKLSAgICAgICAgICAiMC4wNTEwNjYsIDAuMjU3OTU4LCAwLjQyNjM1NywgMC42MzQ2MjksIDAuODQ2NzQzLCAxLjA1NTM5LCAxLjI2NzExIiwgXAotICAgICAgICAgICIwLjA1MTA1MiwgMC4yNTc5OCwgMC40MjYzNDgsIDAuNjM2NTIsIDAuODQ2NTksIDEuMDU2OTMsIDEuMjY3MTMiLCBcCi0gICAgICAgICAgIjAuMDUxMDQ2LCAwLjI1Nzk4NCwgMC40MjYzNDIsIDAuNjM1MDQ2LCAwLjg0NjcyMSwgMS4wNTUzOCwgMS4yNjcxMSIsIFwKLSAgICAgICAgICAiMC4wNTEwMzQsIDAuMjU3OTgxLCAwLjQyNjMzMSwgMC42MzUzMzIsIDAuODQ2NzI1LCAxLjA1NTQzLCAxLjI2NzEzIiwgXAotICAgICAgICAgICIwLjA1MTA2NSwgMC4yNTc5OTQsIDAuNDI2MzE1LCAwLjYzNjQ2MSwgMC44NDY1NjUsIDEuMDU2OTQsIDEuMjY3MTciLCBcCi0gICAgICAgICAgIjAuMDUxMDY2LCAwLjI1ODI2NSwgMC40MjYyNDQsIDAuNjM2MzU4LCAwLjg0NjE1MSwgMS4wNTQ5NSwgMS4yNjQ3MyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMzIzOTIsIDAuMjM2MjgsIDAuMzE5MDIzLCAwLjQyMjQ2NywgMC41MjU4MjksIDAuNjI5MjMyLCAwLjczMjU5NCIsIFwKLSAgICAgICAgICAiMC4xNDI2MzksIDAuMjQ2NTI2LCAwLjMyOTI2NSwgMC40MzI2OTUsIDAuNTM2MDY0LCAwLjYzOTQ4NSwgMC43NDI4NjYiLCBcCi0gICAgICAgICAgIjAuMTU1NDE4LCAwLjI1OTI5OSwgMC4zNDIwMzYsIDAuNDQ1NDQ2LCAwLjU0ODg3MSwgMC42NTIyMzQsIDAuNzU1NjgiLCBcCi0gICAgICAgICAgIjAuMTY3NDI2LCAwLjI3MTMwMywgMC4zNTQwNDMsIDAuNDU3NDQzLCAwLjU2MDkwNiwgMC42NjQyNDMsIDAuNzY3Njg1IiwgXAotICAgICAgICAgICIwLjE3ODI2MSwgMC4yODIxNSwgMC4zNjQ5MywgMC40NjgzMzUsIDAuNTcxNjk4LCAwLjY3NTEwMiwgMC43Nzg0NjkiLCBcCi0gICAgICAgICAgIjAuMTkzMzExLCAwLjI5NzIwNSwgMC4zNzk5NDcsIDAuNDgzMzg2LCAwLjU4Njc0OSwgMC42OTAxNTQsIDAuNzkzNTMzIiwgXAotICAgICAgICAgICIwLjIwNDk4NywgMC4zMDg4NjcsIDAuMzkxNjQsIDAuNDk1MDM0LCAwLjU5ODQwMSwgMC43MDE4MjYsIDAuODA1MjA4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1MDc0MSwgMC4yNTc5NzYsIDAuNDI1MDg5LCAwLjYzNDA1NywgMC44NDU2MjEsIDEuMDU1NTYsIDEuMjY1MzgiLCBcCi0gICAgICAgICAgIjAuMDUwNzQyLCAwLjI1Nzk4NiwgMC40MjQ5MywgMC42MzM4NTksIDAuODQ1NTUyLCAxLjA1NTU1LCAxLjI2NTYxIiwgXAotICAgICAgICAgICIwLjA1MDc0MiwgMC4yNTczNTQsIDAuNDI1NTI0LCAwLjYzNTYxMywgMC44NDU1MzIsIDEuMDU1NSwgMS4yNjE3MyIsIFwKLSAgICAgICAgICAiMC4wNTA3NDIsIDAuMjU3NDUzLCAwLjQyNTU0LCAwLjYzNTU0OCwgMC44NDM4OTYsIDEuMDU1NTEsIDEuMjYxNzciLCBcCi0gICAgICAgICAgIjAuMDUwNzM3LCAwLjI1Nzk2OCwgMC40MjUxMSwgMC42MzQyMzcsIDAuODQ1NjE0LCAxLjA1NTYsIDEuMjY1NDEiLCBcCi0gICAgICAgICAgIjAuMDUwNzQxLCAwLjI1Nzk5LCAwLjQyNTE0MywgMC42MzQyMzYsIDAuODQ1NjE5LCAxLjA1NTU4LCAxLjI2NTUxIiwgXAotICAgICAgICAgICIwLjA1MDc0NiwgMC4yNTc5NywgMC40MjQ0NDcsIDAuNjM1NjUzLCAwLjg0NTUxNCwgMS4wNTU1NiwgMS4yNjU2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwODA4MiwgMC4wMDgwNzYsIDAuMDA4MDYyLCAwLjAwODA0OSwgMC4wMDgwNDIsIDAuMDA4MDQsIDAuMDA4MDM1IiwgXAotICAgICAgICAgICIwLjAwODA1LCAwLjAwODA0MywgMC4wMDgwMjgsIDAuMDA4MDE3LCAwLjAwODAxMSwgMC4wMDgwMDYsIDAuMDA4MDAzIiwgXAotICAgICAgICAgICIwLjAwODAzNSwgMC4wMDgwMzEsIDAuMDA4MDE1LCAwLjAwODAwMywgMC4wMDc5OTcsIDAuMDA3OTkzLCAwLjAwNzk5IiwgXAotICAgICAgICAgICIwLjAwODAyOSwgMC4wMDgwMjcsIDAuMDA4MDEsIDAuMDA3OTk5LCAwLjAwNzk5MiwgMC4wMDc5ODgsIDAuMDA3OTg1IiwgXAotICAgICAgICAgICIwLjAwODA0NywgMC4wMDgwNDcsIDAuMDA4MDMxLCAwLjAwODAyLCAwLjAwODAxMiwgMC4wMDgwMDksIDAuMDA4MDA2IiwgXAotICAgICAgICAgICIwLjAwODA2MiwgMC4wMDgwNjYsIDAuMDA4MDUsIDAuMDA4MDM5LCAwLjAwODAzMiwgMC4wMDgwMjcsIDAuMDA4MDIzIiwgXAotICAgICAgICAgICIwLjAwODA5MSwgMC4wMDgxMDEsIDAuMDA4MDg3LCAwLjAwODA3NCwgMC4wMDgwNjcsIDAuMDA4MDYxLCAwLjAwODA1OCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwODY0NCwgMC4wMDg3MiwgMC4wMDg3MjksIDAuMDA4NzM0LCAwLjAwODczNywgMC4wMDg3MzksIDAuMDA4NzQiLCBcCi0gICAgICAgICAgIjAuMDA4NjEzLCAwLjAwODY4OSwgMC4wMDg2OTksIDAuMDA4NzA0LCAwLjAwODcwNywgMC4wMDg3MDgsIDAuMDA4NzEiLCBcCi0gICAgICAgICAgIjAuMDA4NjExLCAwLjAwODY4NywgMC4wMDg2OTcsIDAuMDA4NzAyLCAwLjAwODcwNSwgMC4wMDg3MDcsIDAuMDA4NzA4IiwgXAotICAgICAgICAgICIwLjAwODYzMiwgMC4wMDg3MDgsIDAuMDA4NzE3LCAwLjAwODcyMywgMC4wMDg3MjUsIDAuMDA4NzI3LCAwLjAwODcyOCIsIFwKLSAgICAgICAgICAiMC4wMDg2NjYsIDAuMDA4NzQyLCAwLjAwODc1MSwgMC4wMDg3NTYsIDAuMDA4NzU5LCAwLjAwODc2MSwgMC4wMDg3NjIiLCBcCi0gICAgICAgICAgIjAuMDA4Njk3LCAwLjAwODc3MiwgMC4wMDg3ODIsIDAuMDA4Nzg2LCAwLjAwODc4OSwgMC4wMDg3OTEsIDAuMDA4NzkyIiwgXAotICAgICAgICAgICIwLjAwODc1NiwgMC4wMDg4MzEsIDAuMDA4ODQsIDAuMDA4ODQ1LCAwLjAwODg0OCwgMC4wMDg4NDksIDAuMDA4ODUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFNFKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE2MzkyOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTYzODYxOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTYzOTI7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA1NjEsIDAuMDA1NTg5LCAwLjAwNTU3NiwgMC4wMDU1NzcsIDAuMDA1NTg5LCAwLjAwNTYwNSwgMC4wMDU2MjYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDY5ODcsIDAuMDA2OTM1LCAwLjAwNjkxOCwgMC4wMDY5MjQsIDAuMDA2OTQyLCAwLjAwNjk4NywgMC4wMDcwMzIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUQmU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1NJX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDM3NSwgLTAuMDI2MjUsIC0wLjAyLCAtMC4wMTM3NSwgLTAuMDA3NSwgMC4wMDI1LCAwLjAwNSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMDg3NSwgMCIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMjEyNSwgLTAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDY3NSwgLTAuMDYyNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzM3NSwgLTAuMDI1IiwgXAotICAgICAgICAgICItMC4wOCwgLTAuMDY4NzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDQsIC0wLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjA5NjI1LCAtMC4wODUsIC0wLjA3ODc1LCAtMC4wNzI1LCAtMC4wNjYyNSwgLTAuMDU2MjUsIC0wLjA1Mzc1IiwgXAotICAgICAgICAgICItMC4xMDUsIC0wLjEsIC0wLjA4NzUsIC0wLjA4MTI1LCAtMC4wNzUsIC0wLjA3MTI1LCAtMC4wNjI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMCwgMC4wMTEyNSwgMC4wMjM3NSwgMC4wMzYyNSwgMC4wNDI1LCAwLjA1ODc1LCAwLjA2NzUiLCBcCi0gICAgICAgICAgIi0wLjAwNSwgMCwgMC4wMTI1LCAwLjAyNSwgMC4wMzc1LCAwLjA0NzUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIi0wLjAxNzUsIC0wLjAwNjI1LCAwLjAwNjI1LCAwLjAxMjUsIDAuMDI1LCAwLjAzNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxODc1LCAtMC4wMDYyNSwgMC4wMDYyNSwgMC4wMTI1LCAwLjAyODc1LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMjUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLjAwNjI1LCAwLjAxNjI1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDQ2MjUsIC0wLjAzNSwgLTAuMDIyNSwgLTAuMDE2MjUsIC0wLjAwMzc1LCAwLjAwNjI1LCAwLjAxNSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjA0Mzc1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMTI1LCAtMC4wMDI1LCAwLjAwNjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIkQmIVNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMV9BTl9TSV9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAxODc1LCAtMC4wMDc1LCAwLjAwNSwgMC4wMTc1LCAwLjAyMzc1LCAwLjA0LCAwLjA0ODc1IiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLjAwNjI1LCAwLjAxMjUsIDAuMDI4NzUsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAsIDAuMDE2MjUsIDAuMDI1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDM3NSwgLTAuMDI1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMC4wMDM3NSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDI1LCAtMC4wMTI1LCAtMC4wMDI1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wNjUsIC0wLjA2LCAtMC4wNDc1LCAtMC4wMzUsIC0wLjAyMjUsIC0wLjAxMjUsIC0wLjAwMzc1IiwgXAotICAgICAgICAgICItMC4wNzM3NSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA0Mzc1LCAtMC4wMzEyNSwgLTAuMDIxMjUsIC0wLjAxMjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wNTYyNSwgLTAuMDUxMjUsIC0wLjAzODc1LCAtMC4wMzI1LCAtMC4wMjYyNSwgLTAuMDIyNSwgLTAuMDEzNzUiLCBcCi0gICAgICAgICAgIi0wLjA2NzUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAyNzUsIC0wLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDgsIC0wLjA2ODc1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjA0LCAtMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDg2MjUsIC0wLjA3NSwgLTAuMDY4NzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNDYyNSwgLTAuMDQzNzUiLCBcCi0gICAgICAgICAgIi0wLjA5MjUsIC0wLjA4NzUsIC0wLjA3NSwgLTAuMDY4NzUsIC0wLjA2MjUsIC0wLjA1ODc1LCAtMC4wNSIsIFwKLSAgICAgICAgICAiLTAuMTAyNSwgLTAuMDk3NSwgLTAuMDg1LCAtMC4wNzg3NSwgLTAuMDcyNSwgLTAuMDY4NzUsIC0wLjA2IiwgXAotICAgICAgICAgICItMC4xMTEyNSwgLTAuMSwgLTAuMDkzNzUsIC0wLjA4NzUsIC0wLjA4MTI1LCAtMC4wNzEyNSwgLTAuMDY4NzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEJlNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9TSV9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2MjUsIDAuMDU3NSwgMC4wNDUsIDAuMDM4NzUsIDAuMDMyNSwgMC4wMjI1LCAwLjAxMzc1IiwgXAotICAgICAgICAgICIwLjA3Mzc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzM3NSwgMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMDg2MjUsIDAuMDc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDUsIDAuMDQsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiMC4wOTg3NSwgMC4wODc1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1MjUsIDAuMDUiLCBcCi0gICAgICAgICAgIjAuMTExMjUsIDAuMSwgMC4wODc1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNjUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIjAuMTI3NSwgMC4xMTYyNSwgMC4xMDM3NSwgMC4wOTc1LCAwLjA5MTI1LCAwLjA4MTI1LCAwLjA3MjUiLCBcCi0gICAgICAgICAgIjAuMTM2MjUsIDAuMTI1LCAwLjExODc1LCAwLjEwNjI1LCAwLjEsIDAuMDk2MjUsIDAuMDg3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzNzUsIDAuMDI2MjUsIDAuMDEzNzUsIDAuMDAxMjUsIC0wLjAwNSwgLTAuMDIxMjUsIC0wLjAzIiwgXAotICAgICAgICAgICIwLjA0ODc1LCAwLjAzNzUsIDAuMDI1LCAwLjAxMjUsIDAsIC0wLjAxLCAtMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMDYxMjUsIDAuMDUsIDAuMDM3NSwgMC4wMjUsIDAuMDEyNSwgLTAuMDAzNzUsIC0wLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMDY3NSwgMC4wNjI1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDI1LCAwLjAwODc1LCAwIiwgXAotICAgICAgICAgICIwLjA4LCAwLjA2ODc1LCAwLjA1NjI1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDIxMjUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMDk2MjUsIDAuMDg1LCAwLjA3MjUsIDAuMDYsIDAuMDQ3NSwgMC4wMzEyNSwgMC4wMjI1IiwgXAotICAgICAgICAgICIwLjEwNSwgMC4xLCAwLjA4MTI1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDQ2MjUsIDAuMDM3NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiRCYhU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8xX0FOX1NJX0VRXzAgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU2MjUsIDAuMDQ1LCAwLjAzMjUsIDAuMDIsIDAuMDEzNzUsIC0wLjAwMjUsIC0wLjAxMTI1IiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDU2MjUsIDAuMDQzNzUsIDAuMDMxMjUsIDAuMDE4NzUsIDAuMDA4NzUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICIwLjA4LCAwLjA2ODc1LCAwLjA1NjI1LCAwLjA0Mzc1LCAwLjAzMTI1LCAwLjAyMTI1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICIwLjA4NjI1LCAwLjA3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA0Mzc1LCAwLjAyNzUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMDk4NzUsIDAuMDg3NSwgMC4wNzUsIDAuMDYyNSwgMC4wNSwgMC4wMzM3NSwgMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMTA4NzUsIDAuMDk3NSwgMC4wODUsIDAuMDcyNSwgMC4wNiwgMC4wNSwgMC4wMzUiLCBcCi0gICAgICAgICAgIjAuMTE3NSwgMC4xMDYyNSwgMC4wOTM3NSwgMC4wODEyNSwgMC4wNjg3NSwgMC4wNTg3NSwgMC4wNDM3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4NzUsIDAuMDc2MjUsIDAuMDYzNzUsIDAuMDU3NSwgMC4wNTEyNSwgMC4wNDEyNSwgMC4wMzI1IiwgXAotICAgICAgICAgICIwLjA5MjUsIDAuMDgxMjUsIDAuMDc1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDUyNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4xMDUsIDAuMDkzNzUsIDAuMDg3NSwgMC4wNzUsIDAuMDY4NzUsIDAuMDY1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICIwLjExNzUsIDAuMTA2MjUsIDAuMDkzNzUsIDAuMDg3NSwgMC4wODEyNSwgMC4wNzEyNSwgMC4wNjI1IiwgXAotICAgICAgICAgICIwLjEyMzc1LCAwLjExMjUsIDAuMSwgMC4wOTM3NSwgMC4wODc1LCAwLjA3NzUsIDAuMDc1IiwgXAotICAgICAgICAgICIwLjEzMzc1LCAwLjEyMjUsIDAuMTEsIDAuMTAzNzUsIDAuMDk3NSwgMC4wODc1LCAwLjA4NSIsIFwKLSAgICAgICAgICAiMC4xMzYyNSwgMC4xMzEyNSwgMC4xMTg3NSwgMC4xMTI1LCAwLjEwNjI1LCAwLjA5NjI1LCAwLjA4NzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFNJKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA4ODgzMzc7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwODg1OTMyOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDg4ODMzNzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDMzMzUsIDAuMDAzMzAzLCAwLjAwMzI4NiwgMC4wMDMyNzcsIDAuMDAzMjcyLCAwLjAwMzI4NywgMC4wMDMyODYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDYxNDksIDAuMDA2MTMxLCAwLjAwNjEyLCAwLjAwNjExNiwgMC4wMDYxMTQsIDAuMDA2MTE5LCAwLjAwNjEyMiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJTRSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wNDM3NSwgLTAuMDMyNSwgLTAuMDI2MjUsIC0wLjAyLCAtMC4wMTM3NSwgLTAuMDAzNzUsIC0wLjAwMTI1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAxNSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA2MTI1LCAtMC4wNTYyNSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMjc1LCAtMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDczNzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjAzMzc1LCAtMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDgsIC0wLjA3NSwgLTAuMDY4NzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNDYyNSwgLTAuMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDk2MjUsIC0wLjA5MTI1LCAtMC4wNzg3NSwgLTAuMDcyNSwgLTAuMDcyNSwgLTAuMDYyNSwgLTAuMDUzNzUiLCBcCi0gICAgICAgICAgIi0wLjExMTI1LCAtMC4xLCAtMC4wOTM3NSwgLTAuMDg3NSwgLTAuMDgxMjUsIC0wLjA3MTI1LCAtMC4wNjg3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAwNjI1LCAwLjAwNSwgMC4wMTc1LCAwLjAyMzc1LCAwLjAzNjI1LCAwLjA0NjI1LCAwLjA1NSIsIFwKLSAgICAgICAgICAiLTAuMDExMjUsIC0wLjAwNjI1LCAwLjAwNjI1LCAwLjAxODc1LCAwLjAyNSwgMC4wNDEyNSwgMC4wNSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxMjUsIDAsIDAuMDA2MjUsIDAuMDE4NzUsIDAuMDI4NzUsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAxODc1LCAtMC4wMTI1LCAwLCAwLjAwNjI1LCAwLjAyMjUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAsIDAuMDE2MjUsIDAuMDI1IiwgXAotICAgICAgICAgICItMC4wNTI1LCAtMC4wNDEyNSwgLTAuMDI4NzUsIC0wLjAxNjI1LCAtMC4wMSwgMCwgMC4wMTUiLCBcCi0gICAgICAgICAgIi0wLjA1NSwgLTAuMDUsIC0wLjAzNzUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAwODc1LCAwLjAwNjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJTRSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjg3NSwgMC4wNjM3NSwgMC4wNTEyNSwgMC4wNDUsIDAuMDM4NzUsIDAuMDI4NzUsIDAuMDIiLCBcCi0gICAgICAgICAgIjAuMDgsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNSwgMC4wNDM3NSwgMC4wNCwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4wOTI1LCAwLjA4MTI1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDQ2MjUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMDk4NzUsIDAuMDkzNzUsIDAuMDgxMjUsIDAuMDc1LCAwLjA2ODc1LCAwLjA1ODc1LCAwLjA1IiwgXAotICAgICAgICAgICIwLjExMTI1LCAwLjEsIDAuMDkzNzUsIDAuMDgxMjUsIDAuMDc1LCAwLjA3MTI1LCAwLjA2MjUiLCBcCi0gICAgICAgICAgIjAuMTI3NSwgMC4xMTYyNSwgMC4xMDM3NSwgMC4wOTc1LCAwLjA5MTI1LCAwLjA4MTI1LCAwLjA3ODc1IiwgXAotICAgICAgICAgICIwLjE0MjUsIDAuMTMxMjUsIDAuMTE4NzUsIDAuMTEyNSwgMC4xMDYyNSwgMC4wOTYyNSwgMC4wODc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQzNzUsIDAuMDM4NzUsIDAuMDIsIDAuMDEzNzUsIDAuMDAxMjUsIC0wLjAxNSwgLTAuMDIzNzUiLCBcCi0gICAgICAgICAgIjAuMDU1LCAwLjA0Mzc1LCAwLjAzMTI1LCAwLjAxODc1LCAwLjAwNjI1LCAtMC4wMDM3NSwgLTAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMDY3NSwgMC4wNTYyNSwgMC4wNDM3NSwgMC4wMzEyNSwgMC4wMTg3NSwgMC4wMDI1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiMC4wNzM3NSwgMC4wNjI1LCAwLjA1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDE1LCAwIiwgXAotICAgICAgICAgICIwLjA4NjI1LCAwLjA3NSwgMC4wNjI1LCAwLjA1LCAwLjAzNzUsIDAuMDIxMjUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4wOTYyNSwgMC4wODUsIDAuMDcyNSwgMC4wNiwgMC4wNDc1LCAwLjAzNzUsIDAuMDIyNSIsIFwKLSAgICAgICAgICAiMC4xMDUsIDAuMDkzNzUsIDAuMDgxMjUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNDYyNSwgMC4wMzc1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogU0RGRlFYNCAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChTREZGUVg0KSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuNDk0MDQzOwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIGZmIChOMzAsUUJJTlQpIHsKLSAgICBuZXh0X3N0YXRlIDogIigoU0UgU0kpICsgKCFTRSBEKSkiOwotICAgIGNsb2NrZWRfb24gOiAiQ0siOwotICB9Ci0gIHBpbihDSykgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNTk5NTk7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNTk5NTY4OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDU5OTU5OwotICAgIGNsb2NrIDogdHJ1ZTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDMwMjUsIDAuMDAyOTk5LCAwLjAwMjk4NCwgMC4wMDI5ODYsIDAuMDAyOTk5LCAwLjAwMzAxOCwgMC4wMDMwNCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNjUyNywgMC4wMDY1MDMsIDAuMDA2NDk4LCAwLjAwNjUxLCAwLjAwNjUzLCAwLjAwNjU2OSwgMC4wMDY1OTYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFEJiFTRSYhU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1NFX0VRXzBfQU5fU0lfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjEyMjkwMiwgMC4xMzMxMjUsIDAuMTQ1OTQ4LCAwLjE1ODA4LCAwLjE2ODg1OSwgMC4xODM5MDMsIDAuMTk1NjQ4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wOTY1NTQsIDAuMTA2NDQxLCAwLjExODgxNiwgMC4xMzAzMzYsIDAuMTQwNTMxLCAwLjE1NDIzNywgMC4xNjQ4OTEiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEQpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYzMDQ2MzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MjkxMTU7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjMwNDYzOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjY1MSwgMC4wMDI2MzUsIDAuMDAyNjI2LCAwLjAwMjYyMSwgMC4wMDI2MTksIDAuMDAyNjIsIDAuMDAyNjMxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA0NjUsIDAuMDA0NjQxLCAwLjAwNDYzNSwgMC4wMDQ2MzIsIDAuMDA0NjM0LCAwLjAwNDYzNSwgMC4wMDQ2NDMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIVNFIjsKLSAgICAgIHNkZl9jb25kIDogIlNFID09IDEnYjAiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjA1NjI1LCAtMC4wNDUsIC0wLjAzODc1LCAtMC4wMzI1LCAtMC4wMjYyNSwgLTAuMDE2MjUsIC0wLjAxMzc1IiwgXAotICAgICAgICAgICItMC4wNjEyNSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDI3NSwgLTAuMDI1IiwgXAotICAgICAgICAgICItMC4wNzM3NSwgLTAuMDY4NzUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjA0LCAtMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDg2MjUsIC0wLjA3NSwgLTAuMDY4NzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNTI1LCAtMC4wNDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDkyNSwgLTAuMDg3NSwgLTAuMDgxMjUsIC0wLjA3NSwgLTAuMDY4NzUsIC0wLjA1ODc1LCAtMC4wNTYyNSIsIFwKLSAgICAgICAgICAiLTAuMTA4NzUsIC0wLjEwMzc1LCAtMC4wOTc1LCAtMC4wOTEyNSwgLTAuMDg1LCAtMC4wNzUsIC0wLjA3MjUiLCBcCi0gICAgICAgICAgIi0wLjEyMzc1LCAtMC4xMTI1LCAtMC4xMDYyNSwgLTAuMSwgLTAuMDkzNzUsIC0wLjA5LCAtMC4wODEyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAxMjUsIC0wLjAwMTI1LCAwLjAwNSwgMC4wMTc1LCAwLjAyMzc1LCAwLjAzMzc1LCAwLjA0ODc1IiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDEyNSwgMCwgMC4wMDYyNSwgMC4wMTg3NSwgMC4wMjg3NSwgMC4wMzc1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDE4NzUsIC0wLjAxMjUsIDAsIDAuMDA2MjUsIDAuMDE2MjUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgMCwgMC4wMSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgMC4wMDM3NSwgMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wNTg3NSwgLTAuMDQ3NSwgLTAuMDQxMjUsIC0wLjAyODc1LCAtMC4wMjI1LCAtMC4wMTI1LCAtMC4wMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDY3NSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDIxMjUsIC0wLjAxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJTRSA9PSAxJ2IwIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTM3NSwgMC4wODI1LCAwLjA3LCAwLjA2Mzc1LCAwLjA1NzUsIDAuMDQ3NSwgMC4wMzg3NSIsIFwKLSAgICAgICAgICAiMC4wOTg3NSwgMC4wODc1LCAwLjA4MTI1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDUyNSwgMC4wNSIsIFwKLSAgICAgICAgICAiMC4xMTEyNSwgMC4xLCAwLjA4NzUsIDAuMDgxMjUsIDAuMDc1LCAwLjA2NSwgMC4wNjI1IiwgXAotICAgICAgICAgICIwLjEyMzc1LCAwLjExMjUsIDAuMSwgMC4wOTM3NSwgMC4wODc1LCAwLjA3NzUsIDAuMDY4NzUiLCBcCi0gICAgICAgICAgIjAuMTMsIDAuMTI1LCAwLjExMjUsIDAuMSwgMC4wOTM3NSwgMC4wOSwgMC4wODEyNSIsIFwKLSAgICAgICAgICAiMC4xNDYyNSwgMC4xNDEyNSwgMC4xMjg3NSwgMC4xMTYyNSwgMC4xMSwgMC4xMDYyNSwgMC4wOTc1IiwgXAotICAgICAgICAgICIwLjE2MTI1LCAwLjE1LCAwLjEzNzUsIDAuMTMxMjUsIDAuMTI1LCAwLjExNSwgMC4xMTI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY4NzUsIDAuMDU3NSwgMC4wNDUsIDAuMDMyNSwgMC4wMiwgMC4wMSwgLTAuMDA1IiwgXAotICAgICAgICAgICIwLjA4LCAwLjA2ODc1LCAwLjA1NjI1LCAwLjA0Mzc1LCAwLjAzMTI1LCAwLjAxNSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiMC4wODYyNSwgMC4wNzUsIDAuMDYyNSwgMC4wNSwgMC4wNDM3NSwgMC4wMjc1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMDk4NzUsIDAuMDg3NSwgMC4wNzUsIDAuMDYyNSwgMC4wNSwgMC4wMzM3NSwgMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMTA1LCAwLjA5Mzc1LCAwLjA4MTI1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDQ2MjUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMTIxMjUsIDAuMTEsIDAuMDk3NSwgMC4wODUsIDAuMDcyNSwgMC4wNjI1LCAwLjA0NzUiLCBcCi0gICAgICAgICAgIjAuMTMsIDAuMTE4NzUsIDAuMTA2MjUsIDAuMDkzNzUsIDAuMDg3NSwgMC4wNzEyNSwgMC4wNjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihRKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDEuMDI3MzM7Ci0gICAgZnVuY3Rpb24gOiAiTjMwIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBub25fdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJpc2luZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExMjQ3OCwgMC4xODQzMTQsIDAuMjU1NDIxLCAwLjMwNjE3OSwgMC4zODc1NDIsIDAuNDU4NjYxLCAwLjU2MDI4MSIsIFwKLSAgICAgICAgICAiMC4xMjI2NzMsIDAuMTk0NTEyLCAwLjI2NTYxNywgMC4zMTY0MjEsIDAuMzk3NzA0LCAwLjQ2ODg1OCwgMC41NzA0NyIsIFwKLSAgICAgICAgICAiMC4xMzU0MzUsIDAuMjA3Mjc2LCAwLjI3ODM4MiwgMC4zMjkxNCwgMC40MTA1MTcsIDAuNDgxNjk0LCAwLjU4MzE5IiwgXAotICAgICAgICAgICIwLjE0NzM2MSwgMC4yMTkyLCAwLjI5MDMwNywgMC4zNDExMzQsIDAuNDIyNDM1LCAwLjQ5MzU0OSwgMC41OTUxODkiLCBcCi0gICAgICAgICAgIjAuMTU4MDUzLCAwLjIyOTkwNiwgMC4zMDEwMDMsIDAuMzUxODA0LCAwLjQzMzE0NCwgMC41MDQyNTQsIDAuNjA1ODU2IiwgXAotICAgICAgICAgICIwLjE3MzAzOSwgMC4yNDQ4ODYsIDAuMzE1OTk0LCAwLjM2Njc5OCwgMC40NDgwNzgsIDAuNTE5MjQ1LCAwLjYyMDg0NCIsIFwKLSAgICAgICAgICAiMC4xODQ1NTcsIDAuMjU2NCwgMC4zMjc1MTIsIDAuMzc4MzE2LCAwLjQ1OTY0LCAwLjUzMDc1NSwgMC42MzIzNDciKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzEwOTcsIDAuMTc0Mjg0LCAwLjMyMTA4NywgMC40MjU0OTMsIDAuNTk0MTMzLCAwLjc0MTAwOCwgMC45NTA4NzciLCBcCi0gICAgICAgICAgIjAuMDMxMDg4LCAwLjE3NDMxMywgMC4zMjEwNTUsIDAuNDI1NTUyLCAwLjU5MzkzNiwgMC43NDAwNDEsIDAuOTUwODI3IiwgXAotICAgICAgICAgICIwLjAzMTA5MywgMC4xNzQyODcsIDAuMzIwNTQ3LCAwLjQyNTUwNywgMC41OTQxMjksIDAuNzM5NTc5LCAwLjk1MDgwOSIsIFwKLSAgICAgICAgICAiMC4wMzExMTQsIDAuMTc0Mjg3LCAwLjMyMTA3MiwgMC40MjUzMTYsIDAuNTk0MTE5LCAwLjc0MTAwMSwgMC45NTA4OSIsIFwKLSAgICAgICAgICAiMC4wMzEwOSwgMC4xNzQzMDEsIDAuMzIxMDUxLCAwLjQyNTYyOSwgMC41OTQxMjIsIDAuNzQwMDI4LCAwLjk1MDgxIiwgXAotICAgICAgICAgICIwLjAzMTEwMSwgMC4xNzQzMzksIDAuMzIxMDQ4LCAwLjQyNTU0NiwgMC41OTM4ODUsIDAuNzQwMDIzLCAwLjk1MDgwNSIsIFwKLSAgICAgICAgICAiMC4wMzEwOTQsIDAuMTc0MjcxLCAwLjMyMTA1NiwgMC40MjU1NDcsIDAuNTk0MDA1LCAwLjc0MDg3MSwgMC45NTA2NjMiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMjI5MDIsIDAuMTk3MTIxLCAwLjI3MDQ4NCwgMC4zMjI4OTEsIDAuNDA2Njg5LCAwLjQ4MDAyMSwgMC41ODQ3NzYiLCBcCi0gICAgICAgICAgIjAuMTMzMTI1LCAwLjIwNzM0MSwgMC4yODA2OTksIDAuMzMzMTIzLCAwLjQxNjk0LCAwLjQ5MDI4LCAwLjU5NDk5NSIsIFwKLSAgICAgICAgICAiMC4xNDU5NDgsIDAuMjIwMTYxLCAwLjI5MzUyLCAwLjM0NTk0LCAwLjQyOTc1NCwgMC41MDMwNTYsIDAuNjA3ODE4IiwgXAotICAgICAgICAgICIwLjE1ODA4LCAwLjIzMjI4NywgMC4zMDU2NDMsIDAuMzU4MDY5LCAwLjQ0MTg1NywgMC41MTUyMjUsIDAuNjIwMDEyIiwgXAotICAgICAgICAgICIwLjE2ODg1OSwgMC4yNDMwNzEsIDAuMzE2NDI5LCAwLjM2ODg1MiwgMC40NTI3MDQsIDAuNTI2MDE4LCAwLjYzMDcyNSIsIFwKLSAgICAgICAgICAiMC4xODM5MSwgMC4yNTgxMTcsIDAuMzMxNDc4LCAwLjM4Mzg4NywgMC40Njc2ODUsIDAuNTQxMDE3LCAwLjY0NTc4OSIsIFwKLSAgICAgICAgICAiMC4xOTU2NTEsIDAuMjY5ODY3LCAwLjM0MzIyMywgMC4zOTU2MzMsIDAuNDc5NDU2LCAwLjU1Mjc5MywgMC42NTc1NDIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzA4NTMsIDAuMTc2NDU4LCAwLjMyNTMzNSwgMC40MzE3NTIsIDAuNjAxODE3LCAwLjc1MDU2NywgMC45NjI1OCIsIFwKLSAgICAgICAgICAiMC4wMzA4NTUsIDAuMTc2NDc0LCAwLjMyNDgxOSwgMC40MzE4MTMsIDAuNjAwNDg3LCAwLjc0OTUxNCwgMC45NjI2NTQiLCBcCi0gICAgICAgICAgIjAuMDMwODU3LCAwLjE3NjQ3MywgMC4zMjQ4NDcsIDAuNDMxNzk5LCAwLjYwMDg1MiwgMC43NTA3MDUsIDAuOTYxNjA3IiwgXAotICAgICAgICAgICIwLjAzMDg1NywgMC4xNzY0NjksIDAuMzI0Nzg0LCAwLjQzMTYxOSwgMC42MDE4NTQsIDAuNzUwODI3LCAwLjk2MzU0OCIsIFwKLSAgICAgICAgICAiMC4wMzA4NTYsIDAuMTc2NDc1LCAwLjMyNDgyNSwgMC40MzE4MDYsIDAuNjAwNDksIDAuNzUwODU3LCAwLjk2MjQzOSIsIFwKLSAgICAgICAgICAiMC4wMzA4NzEsIDAuMTc2NDUzLCAwLjMyNTMxOSwgMC40MzE3NDUsIDAuNjAxODMsIDAuNzUwNTIsIDAuOTYyMTM5IiwgXAotICAgICAgICAgICIwLjAzMDg3LCAwLjE3NjUwNywgMC4zMjQ5MTEsIDAuNDMxNzY3LCAwLjYwMTg0MSwgMC43NTA4ODYsIDAuOTYyMjA2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEwMzExLCAwLjAxMDQxNywgMC4wMTA0MDgsIDAuMDEwNCwgMC4wMTAzOTEsIDAuMDEwMzg1LCAwLjAxMDM4IiwgXAotICAgICAgICAgICIwLjAxMDI3NSwgMC4wMTAzODYsIDAuMDEwMzc1LCAwLjAxMDM2OCwgMC4wMTAzNiwgMC4wMTAzNTUsIDAuMDEwMzUiLCBcCi0gICAgICAgICAgIjAuMDEwMjY0LCAwLjAxMDM3NCwgMC4wMTAzNjUsIDAuMDEwMzU2LCAwLjAxMDM0OCwgMC4wMTAzNDMsIDAuMDEwMzQiLCBcCi0gICAgICAgICAgIjAuMDEwMjYzLCAwLjAxMDM3MSwgMC4wMTAzNjEsIDAuMDEwMzU0LCAwLjAxMDM0OSwgMC4wMTAzNDEsIDAuMDEwMzM3IiwgXAotICAgICAgICAgICIwLjAxMDI3NiwgMC4wMTAzOSwgMC4wMTAzODEsIDAuMDEwMzczLCAwLjAxMDM2NSwgMC4wMTAzNTksIDAuMDEwMzU0IiwgXAotICAgICAgICAgICIwLjAxMDI4OCwgMC4wMTA0MDUsIDAuMDEwMzk4LCAwLjAxMDM5LCAwLjAxMDM4MSwgMC4wMTAzNzYsIDAuMDEwMzcyIiwgXAotICAgICAgICAgICIwLjAxMDMxOCwgMC4wMTA0MzUsIDAuMDEwNDI5LCAwLjAxMDQyMiwgMC4wMTA0MSwgMC4wMTA0MDcsIDAuMDEwNDA1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTAyMzcsIDAuMDEwNDQ0LCAwLjAxMDQ3MywgMC4wMTA0ODIsIDAuMDEwNDksIDAuMDEwNDk0LCAwLjAxMDQ5NyIsIFwKLSAgICAgICAgICAiMC4wMTAyMDgsIDAuMDEwNDE0LCAwLjAxMDQ0NCwgMC4wMTA0NTIsIDAuMDEwNDYxLCAwLjAxMDQ2NSwgMC4wMTA0NjkiLCBcCi0gICAgICAgICAgIjAuMDEwMjA0LCAwLjAxMDQwOSwgMC4wMTA0MzgsIDAuMDEwNDQ3LCAwLjAxMDQ1NSwgMC4wMTA0NiwgMC4wMTA0NjMiLCBcCi0gICAgICAgICAgIjAuMDEwMjI0LCAwLjAxMDQyNiwgMC4wMTA0NTUsIDAuMDEwNDY0LCAwLjAxMDQ3MiwgMC4wMTA0NzYsIDAuMDEwNDc5IiwgXAotICAgICAgICAgICIwLjAxMDI1NSwgMC4wMTA0NTksIDAuMDEwNDg4LCAwLjAxMDQ5NywgMC4wMTA1MDUsIDAuMDEwNTA5LCAwLjAxMDUxMyIsIFwKLSAgICAgICAgICAiMC4wMTAyNzYsIDAuMDEwNDc4LCAwLjAxMDUwNiwgMC4wMTA1MTUsIDAuMDEwNTIzLCAwLjAxMDUyNywgMC4wMTA1MzEiLCBcCi0gICAgICAgICAgIjAuMDEwMzMsIDAuMDEwNTM0LCAwLjAxMDU2MiwgMC4wMTA1NzEsIDAuMDEwNTc4LCAwLjAxMDU4MiwgMC4wMTA1ODYiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFNFKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDEzNTE1MzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDEzNTEzODsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDEzNTE1MzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDQzOTMsIDAuMDA0MzcyLCAwLjAwNDM3OCwgMC4wMDQzOCwgMC4wMDQzOTgsIDAuMDA0NDIsIDAuMDA0NDQ3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA1NzY3LCAwLjAwNTczMiwgMC4wMDU3MjYsIDAuMDA1NzM2LCAwLjAwNTc0OCwgMC4wMDU3ODgsIDAuMDA1ODI4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEJlNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9TSV9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjA1LCAtMC4wMzg3NSwgLTAuMDMyNSwgLTAuMDI2MjUsIC0wLjAyLCAtMC4wMSwgLTAuMDA3NSIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMjEyNSwgLTAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjA2NzUsIC0wLjA2MjUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDQzNzUsIC0wLjAzMzc1LCAtMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjA4LCAtMC4wNzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDQ2MjUsIC0wLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjA5MjUsIC0wLjA4MTI1LCAtMC4wNzUsIC0wLjA2ODc1LCAtMC4wNjI1LCAtMC4wNTg3NSwgLTAuMDUiLCBcCi0gICAgICAgICAgIi0wLjEwODc1LCAtMC4xMDM3NSwgLTAuMDkxMjUsIC0wLjA4NSwgLTAuMDc4NzUsIC0wLjA3NSwgLTAuMDY2MjUiLCBcCi0gICAgICAgICAgIi0wLjEyMzc1LCAtMC4xMTI1LCAtMC4xMDYyNSwgLTAuMSwgLTAuMDkzNzUsIC0wLjA5LCAtMC4wODEyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAwNjI1LCAwLjAwNSwgMC4wMTEyNSwgMC4wMjM3NSwgMC4wMywgMC4wNCwgMC4wNDg3NSIsIFwKLSAgICAgICAgICAiLTAuMDE3NSwgLTAuMDA2MjUsIDAuMDA2MjUsIDAuMDEyNSwgMC4wMjUsIDAuMDM1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLjAwNjI1LCAwLjAxMjUsIDAuMDIyNSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLCAwLjAxLCAwLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDM3NSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAuMDAzNzUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDUyNSwgLTAuMDQ3NSwgLTAuMDM1LCAtMC4wMjg3NSwgLTAuMDIyNSwgLTAuMDEyNSwgLTAuMDAzNzUiLCBcCi0gICAgICAgICAgIi0wLjA2MTI1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMjEyNSwgLTAuMDEyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJEJiFTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzFfQU5fU0lfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMTg3NSwgLTAuMDEzNzUsIC0wLjAwMTI1LCAwLjAxMTI1LCAwLjAxNzUsIDAuMDI3NSwgMC4wMzYyNSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAxODc1LCAtMC4wMTI1LCAwLCAwLjAwNjI1LCAwLjAyMjUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAuMDEsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wNDM3NSwgLTAuMDMxMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDI1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjA1NSwgLTAuMDUsIC0wLjAzNzUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAwODc1LCAwIiwgXAotICAgICAgICAgICItMC4wNjUsIC0wLjA2LCAtMC4wNDc1LCAtMC4wMzUsIC0wLjAyODc1LCAtMC4wMTg3NSwgLTAuMDEiLCBcCi0gICAgICAgICAgIi0wLjA3Mzc1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAyMTI1LCAtMC4wMTI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDYyNSwgLTAuMDU3NSwgLTAuMDQ1LCAtMC4wMzg3NSwgLTAuMDMyNSwgLTAuMDI4NzUsIC0wLjAyIiwgXAotICAgICAgICAgICItMC4wNzM3NSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDQsIC0wLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wOCwgLTAuMDc1LCAtMC4wNjg3NSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA0NjI1LCAtMC4wNDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDkyNSwgLTAuMDgxMjUsIC0wLjA3NSwgLTAuMDY4NzUsIC0wLjA2MjUsIC0wLjA1MjUsIC0wLjA1IiwgXAotICAgICAgICAgICItMC4wOTg3NSwgLTAuMDg3NSwgLTAuMDgxMjUsIC0wLjA3NSwgLTAuMDY4NzUsIC0wLjA1ODc1LCAtMC4wNTYyNSIsIFwKLSAgICAgICAgICAiLTAuMTAyNSwgLTAuMDk3NSwgLTAuMDkxMjUsIC0wLjA4NSwgLTAuMDc4NzUsIC0wLjA2ODc1LCAtMC4wNjYyNSIsIFwKLSAgICAgICAgICAiLTAuMTExMjUsIC0wLjEwNjI1LCAtMC4wOTM3NSwgLTAuMDg3NSwgLTAuMDgxMjUsIC0wLjA3NzUsIC0wLjA2ODc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRCZTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fU0lfRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODc1LCAwLjA3NjI1LCAwLjA2Mzc1LCAwLjA1NzUsIDAuMDUxMjUsIDAuMDQxMjUsIDAuMDMyNSIsIFwKLSAgICAgICAgICAiMC4wOTI1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA0NjI1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjEwNSwgMC4wOTM3NSwgMC4wODc1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNTg3NSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiMC4xMTc1LCAwLjEwNjI1LCAwLjA5Mzc1LCAwLjA4NzUsIDAuMDgxMjUsIDAuMDcxMjUsIDAuMDY4NzUiLCBcCi0gICAgICAgICAgIjAuMTMsIDAuMTE4NzUsIDAuMTA2MjUsIDAuMSwgMC4wOTM3NSwgMC4wODM3NSwgMC4wNzUiLCBcCi0gICAgICAgICAgIjAuMTQ2MjUsIDAuMTM1LCAwLjEyODc1LCAwLjExNjI1LCAwLjExLCAwLjEsIDAuMDk3NSIsIFwKLSAgICAgICAgICAiMC4xNjEyNSwgMC4xNSwgMC4xNDM3NSwgMC4xMzEyNSwgMC4xMjUsIDAuMTE1LCAwLjExMjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjI1LCAwLjA1MTI1LCAwLjAzODc1LCAwLjAyNjI1LCAwLjAxMzc1LCAwLjAwMzc1LCAtMC4wMTEyNSIsIFwKLSAgICAgICAgICAiMC4wNzM3NSwgMC4wNjI1LCAwLjA1LCAwLjAzNzUsIDAuMDI1LCAwLjAwODc1LCAwIiwgXAotICAgICAgICAgICIwLjA4LCAwLjA3NSwgMC4wNTYyNSwgMC4wNSwgMC4wMzc1LCAwLjAyMTI1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMDkyNSwgMC4wODEyNSwgMC4wNjg3NSwgMC4wNTYyNSwgMC4wNSwgMC4wMzM3NSwgMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMTA1LCAwLjA5Mzc1LCAwLjA4MTI1LCAwLjA2ODc1LCAwLjA1NjI1LCAwLjA0NjI1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICIwLjEyMTI1LCAwLjExLCAwLjA5NzUsIDAuMDg1LCAwLjA3ODc1LCAwLjA2MjUsIDAuMDQ3NSIsIFwKLSAgICAgICAgICAiMC4xMzYyNSwgMC4xMjUsIDAuMTEyNSwgMC4xLCAwLjA4NzUsIDAuMDcxMjUsIDAuMDYyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiRCYhU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8xX0FOX1NJX0VRXzAgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc1LCAwLjA2Mzc1LCAwLjA1MTI1LCAwLjAzODc1LCAwLjAzMjUsIDAuMDE2MjUsIDAuMDA3NSIsIFwKLSAgICAgICAgICAiMC4wODYyNSwgMC4wNzUsIDAuMDYyNSwgMC4wNSwgMC4wMzc1LCAwLjAyNzUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4wOTg3NSwgMC4wODc1LCAwLjA3NSwgMC4wNjI1LCAwLjA1LCAwLjAzMzc1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiMC4xMDUsIDAuMDkzNzUsIDAuMDgxMjUsIDAuMDY4NzUsIDAuMDU2MjUsIDAuMDQ2MjUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMTExMjUsIDAuMSwgMC4wODc1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNTI1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjEyMTI1LCAwLjExLCAwLjA5NzUsIDAuMDg1LCAwLjA3ODc1LCAwLjA2MjUsIDAuMDUzNzUiLCBcCi0gICAgICAgICAgIjAuMTMsIDAuMTE4NzUsIDAuMTA2MjUsIDAuMDkzNzUsIDAuMDgxMjUsIDAuMDcxMjUsIDAuMDU2MjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xLCAwLjA4ODc1LCAwLjA3NjI1LCAwLjA3LCAwLjA2Mzc1LCAwLjA1Mzc1LCAwLjA1MTI1IiwgXAotICAgICAgICAgICIwLjExMTI1LCAwLjEsIDAuMDg3NSwgMC4wODEyNSwgMC4wNzUsIDAuMDY1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICIwLjExNzUsIDAuMTEyNSwgMC4xLCAwLjA4NzUsIDAuMDgxMjUsIDAuMDc3NSwgMC4wNjg3NSIsIFwKLSAgICAgICAgICAiMC4xMywgMC4xMTg3NSwgMC4xMDYyNSwgMC4xLCAwLjA5Mzc1LCAwLjA4Mzc1LCAwLjA3NSIsIFwKLSAgICAgICAgICAiMC4xMzYyNSwgMC4xMjUsIDAuMTEyNSwgMC4xMDYyNSwgMC4xLCAwLjA5LCAwLjA4MTI1IiwgXAotICAgICAgICAgICIwLjE0LCAwLjEyODc1LCAwLjEyMjUsIDAuMTEsIDAuMTAzNzUsIDAuMSwgMC4wOTEyNSIsIFwKLSAgICAgICAgICAiMC4xNDg3NSwgMC4xMzc1LCAwLjEyNSwgMC4xMTg3NSwgMC4xMTI1LCAwLjEwMjUsIDAuMSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oU0kpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY3MzA1NzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2NzE0NDM7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjczMDU3OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjQ5NCwgMC4wMDI0NzgsIDAuMDAyNDY5LCAwLjAwMjQ2NSwgMC4wMDI0NjQsIDAuMDAyNDY2LCAwLjAwMjQ3NiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNDc2OSwgMC4wMDQ3NiwgMC4wMDQ3NTQsIDAuMDA0NzUyLCAwLjAwNDc1MywgMC4wMDQ3NTQsIDAuMDA0NzYxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlNFIjsKLSAgICAgIHNkZl9jb25kIDogIlNFID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjA1NjI1LCAtMC4wNDUsIC0wLjAzODc1LCAtMC4wMzI1LCAtMC4wMjYyNSwgLTAuMDE2MjUsIC0wLjAxMzc1IiwgXAotICAgICAgICAgICItMC4wNjEyNSwgLTAuMDU2MjUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzc1LCAtMC4wMjc1LCAtMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDczNzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjA0LCAtMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDg2MjUsIC0wLjA3NSwgLTAuMDY4NzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNDYyNSwgLTAuMDQzNzUiLCBcCi0gICAgICAgICAgIi0wLjA5MjUsIC0wLjA4NzUsIC0wLjA4MTI1LCAtMC4wNzUsIC0wLjA2ODc1LCAtMC4wNTg3NSwgLTAuMDU2MjUiLCBcCi0gICAgICAgICAgIi0wLjEwODc1LCAtMC4xMDM3NSwgLTAuMDkxMjUsIC0wLjA4NSwgLTAuMDg1LCAtMC4wNzUsIC0wLjA2NjI1IiwgXAotICAgICAgICAgICItMC4xMjM3NSwgLTAuMTEyNSwgLTAuMTA2MjUsIC0wLjEsIC0wLjA5Mzc1LCAtMC4wOSwgLTAuMDgxMjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMTI1LCAtMC4wMDEyNSwgMC4wMDUsIDAuMDE3NSwgMC4wMjM3NSwgMC4wMzM3NSwgMC4wNDg3NSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxMjUsIDAsIDAuMDA2MjUsIDAuMDE4NzUsIDAuMDI4NzUsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAxODc1LCAtMC4wMTI1LCAwLCAwLjAwNjI1LCAwLjAxNjI1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIDAsIDAuMDEsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIDAuMDAzNzUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDU4NzUsIC0wLjA0NzUsIC0wLjA0MTI1LCAtMC4wMjg3NSwgLTAuMDIyNSwgLTAuMDEyNSwgLTAuMDAzNzUiLCBcCi0gICAgICAgICAgIi0wLjA2NzUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAyMTI1LCAtMC4wMTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJTRSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTM3NSwgMC4wODI1LCAwLjA3LCAwLjA2Mzc1LCAwLjA1NzUsIDAuMDQ3NSwgMC4wMzg3NSIsIFwKLSAgICAgICAgICAiMC4wOTg3NSwgMC4wODc1LCAwLjA4MTI1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDUyNSwgMC4wNSIsIFwKLSAgICAgICAgICAiMC4xMTEyNSwgMC4xLCAwLjA4NzUsIDAuMDgxMjUsIDAuMDc1LCAwLjA2NSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiMC4xMjM3NSwgMC4xMTI1LCAwLjEsIDAuMDkzNzUsIDAuMDg3NSwgMC4wNzc1LCAwLjA2ODc1IiwgXAotICAgICAgICAgICIwLjEzLCAwLjExODc1LCAwLjExMjUsIDAuMSwgMC4wOTM3NSwgMC4wODM3NSwgMC4wODEyNSIsIFwKLSAgICAgICAgICAiMC4xNDYyNSwgMC4xMzUsIDAuMTI4NzUsIDAuMTE2MjUsIDAuMTEsIDAuMSwgMC4wOTc1IiwgXAotICAgICAgICAgICIwLjE2MTI1LCAwLjE1LCAwLjEzNzUsIDAuMTMxMjUsIDAuMTI1LCAwLjExNSwgMC4xMDYyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2ODc1LCAwLjA1NzUsIDAuMDQ1LCAwLjAzMjUsIDAuMDIsIDAuMDEsIC0wLjAwNSIsIFwKLSAgICAgICAgICAiMC4wOCwgMC4wNjg3NSwgMC4wNTYyNSwgMC4wNDM3NSwgMC4wMzEyNSwgMC4wMTUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMDg2MjUsIDAuMDc1LCAwLjA2MjUsIDAuMDUsIDAuMDQzNzUsIDAuMDI3NSwgMC4wMTI1IiwgXAotICAgICAgICAgICIwLjA5ODc1LCAwLjA4NzUsIDAuMDc1LCAwLjA2MjUsIDAuMDUsIDAuMDMzNzUsIDAuMDI1IiwgXAotICAgICAgICAgICIwLjEwNSwgMC4wOTM3NSwgMC4wODEyNSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA0NjI1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICIwLjEyMTI1LCAwLjExLCAwLjA5NzUsIDAuMDg1LCAwLjA3MjUsIDAuMDU2MjUsIDAuMDQ3NSIsIFwKLSAgICAgICAgICAiMC4xMywgMC4xMTg3NSwgMC4xMDYyNSwgMC4wOTM3NSwgMC4wODc1LCAwLjA3MTI1LCAwLjA1NjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogU0RGRlFYTCAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChTREZGUVhMKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMzA3OTc7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgZmYgKE4zMCxRQklOVCkgewotICAgIG5leHRfc3RhdGUgOiAiKChTRSBTSSkgKyAoIVNFIEQpKSI7Ci0gICAgY2xvY2tlZF9vbiA6ICJDSyI7Ci0gIH0KLSAgcGluKENLKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2NTQwNDU7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjUzNzkzOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDY1NDA0NTsKLSAgICBjbG9jayA6IHRydWU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyODEyLCAwLjAwMjc4NCwgMC4wMDI3NzMsIDAuMDAyNzczLCAwLjAwMjc4NCwgMC4wMDI4MDUsIDAuMDAyODI3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA1OTc3LCAwLjAwNTk1MywgMC4wMDU5NDgsIDAuMDA1OTU1LCAwLjAwNTk3NCwgMC4wMDYwMTEsIDAuMDA2MDU5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRCYhU0UmIVNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9TRV9FUV8wX0FOX1NJX0VRXzAgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4xNzAyNzIsIDAuMTgwNDgyLCAwLjE5MzIyOCwgMC4yMDUwMTIsIDAuMjE1NDkzLCAwLjIyOTg1OCwgMC4yNDA4NTMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjA5MDU2OCwgMC4xMDA0MTEsIDAuMTEyNzQ1LCAwLjEyNDA2NCwgMC4xMzM4MzQsIDAuMTQ3MDA3LCAwLjE1NzA5OSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjE1Njk1OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYxNDU2NTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2MTU2OTU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyNzA5LCAwLjAwMjY5MywgMC4wMDI2ODMsIDAuMDAyNjc5LCAwLjAwMjY3NiwgMC4wMDI2NzksIDAuMDAyNjkxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA0MTg0LCAwLjAwNDE3NSwgMC4wMDQxNjksIDAuMDA0MTY3LCAwLjAwNDE2NywgMC4wMDQxNjksIDAuMDA0MTc0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJTRSA9PSAxJ2IwIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wNSwgLTAuMDQ1LCAtMC4wMzg3NSwgLTAuMDMyNSwgLTAuMDI2MjUsIC0wLjAxNjI1LCAtMC4wMTM3NSIsIFwKLSAgICAgICAgICAiLTAuMDYxMjUsIC0wLjA1NjI1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAyNzUsIC0wLjAxODc1IiwgXAotICAgICAgICAgICItMC4wNzM3NSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDQsIC0wLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wOCwgLTAuMDc1LCAtMC4wNjg3NSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA0NjI1LCAtMC4wNDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDkyNSwgLTAuMDg3NSwgLTAuMDc1LCAtMC4wNjg3NSwgLTAuMDY4NzUsIC0wLjA1ODc1LCAtMC4wNSIsIFwKLSAgICAgICAgICAiLTAuMTA4NzUsIC0wLjA5NzUsIC0wLjA5MTI1LCAtMC4wODUsIC0wLjA4NSwgLTAuMDc1LCAtMC4wNjYyNSIsIFwKLSAgICAgICAgICAiLTAuMTE3NSwgLTAuMTEyNSwgLTAuMTA2MjUsIC0wLjEsIC0wLjA5Mzc1LCAtMC4wODM3NSwgLTAuMDgxMjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMTg3NSwgLTAuMDA3NSwgMC4wMDUsIDAuMDExMjUsIDAuMDIzNzUsIDAuMDMzNzUsIDAuMDQyNSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxODc1LCAtMC4wMDYyNSwgMC4wMDYyNSwgMC4wMTI1LCAwLjAyODc1LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMjUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLjAwNjI1LCAwLjAxNjI1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDM3NSwgLTAuMDI1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMC4wMSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNDM3NSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDEyNSwgLTAuMDAyNSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDY1LCAtMC4wNTM3NSwgLTAuMDQ3NSwgLTAuMDM1LCAtMC4wMjg3NSwgLTAuMDEyNSwgLTAuMDAzNzUiLCBcCi0gICAgICAgICAgIi0wLjA3Mzc1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAyMTI1LCAtMC4wMTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhU0UiOwotICAgICAgc2RmX2NvbmQgOiAiU0UgPT0gMSdiMCI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDgxMjUsIDAuMDcsIDAuMDYzNzUsIDAuMDUxMjUsIDAuMDQ1LCAwLjA0MTI1LCAwLjAzMjUiLCBcCi0gICAgICAgICAgIjAuMDkyNSwgMC4wODEyNSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA0NjI1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjA5ODc1LCAwLjA4NzUsIDAuMDgxMjUsIDAuMDc1LCAwLjA2ODc1LCAwLjA1ODc1LCAwLjA1IiwgXAotICAgICAgICAgICIwLjExMTI1LCAwLjEsIDAuMDkzNzUsIDAuMDg3NSwgMC4wODEyNSwgMC4wNzEyNSwgMC4wNjI1IiwgXAotICAgICAgICAgICIwLjEyMzc1LCAwLjExMjUsIDAuMSwgMC4wOTM3NSwgMC4wODc1LCAwLjA3NzUsIDAuMDc1IiwgXAotICAgICAgICAgICIwLjE0LCAwLjEyODc1LCAwLjExNjI1LCAwLjExLCAwLjEwMzc1LCAwLjA5Mzc1LCAwLjA5MTI1IiwgXAotICAgICAgICAgICIwLjE0ODc1LCAwLjE0Mzc1LCAwLjEzMTI1LCAwLjEyNSwgMC4xMTg3NSwgMC4xMDg3NSwgMC4xIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDYyNSwgMC4wNTEyNSwgMC4wMzg3NSwgMC4wMjYyNSwgMC4wMTM3NSwgMC4wMDM3NSwgLTAuMDA1IiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDU2MjUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMjUsIDAuMDA4NzUsIDAiLCBcCi0gICAgICAgICAgIjAuMDgsIDAuMDY4NzUsIDAuMDU2MjUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMjEyNSwgMC4wMTI1IiwgXAotICAgICAgICAgICIwLjA5MjUsIDAuMDgxMjUsIDAuMDY4NzUsIDAuMDU2MjUsIDAuMDQzNzUsIDAuMDI3NSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4wOTg3NSwgMC4wODc1LCAwLjA3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA0LCAwLjAzMTI1IiwgXAotICAgICAgICAgICIwLjExNSwgMC4xMDM3NSwgMC4wOTEyNSwgMC4wNzg3NSwgMC4wNjYyNSwgMC4wNTYyNSwgMC4wNDEyNSIsIFwKLSAgICAgICAgICAiMC4xMjM3NSwgMC4xMTI1LCAwLjEsIDAuMDg3NSwgMC4wODEyNSwgMC4wNjUsIDAuMDU2MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFEpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4xNDc5OTM7Ci0gICAgZnVuY3Rpb24gOiAiTjMwIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBub25fdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJpc2luZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNTcyNzUsIDAuMTcxMzYzLCAwLjI5ODI0MSwgMC41MDk5ODgsIDAuNzIxNzY1LCAxLjIxNTgzLCAxLjQ5ODExIiwgXAotICAgICAgICAgICIwLjE2NzQ2NSwgMC4xODE1NDUsIDAuMzA4NDI0LCAwLjUyMDEyNywgMC43MzE4MSwgMS4yMjU5NSwgMS41MDgzNSIsIFwKLSAgICAgICAgICAiMC4xODAxNDcsIDAuMTk0MjI4LCAwLjMyMTEwOCwgMC41MzI4MTEsIDAuNzQ0NDgyLCAxLjIzODYzLCAxLjUyMTAzIiwgXAotICAgICAgICAgICIwLjE5MTg2OSwgMC4yMDU5NTMsIDAuMzMyODcyLCAwLjU0NDYwNCwgMC43NTYyNzIsIDEuMjUwMzYsIDEuNTMyNzYiLCBcCi0gICAgICAgICAgIjAuMjAxOTEsIDAuMjE1OTkzLCAwLjM0Mjg4OCwgMC41NTQ2NDEsIDAuNzY2NDA5LCAxLjI2MDQzLCAxLjU0Mjg2IiwgXAotICAgICAgICAgICIwLjIxNjMxOSwgMC4yMzA0MTUsIDAuMzU3MzAxLCAwLjU2ODk5LCAwLjc4MDcyOCwgMS4yNzQ4MSwgMS41NTcxOCIsIFwKLSAgICAgICAgICAiMC4yMjcxNTQsIDAuMjQxMjU3LCAwLjM2ODEzMywgMC41Nzk4MDksIDAuNzkxNTQzLCAxLjI4NTYyLCAxLjU2Nzk5Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE1MzMyOSwgMC4xODE5NDYsIDAuNDQzMzQ1LCAwLjg3ODkyOCwgMS4zMTE1NSwgMi4zMjY3OCwgMi45MTEwNyIsIFwKLSAgICAgICAgICAiMC4xNTMzMywgMC4xODIyMTIsIDAuNDQzMzAxLCAwLjg3NzI2OSwgMS4zMTI0NiwgMi4zMjczMSwgMi45MDYwMSIsIFwKLSAgICAgICAgICAiMC4xNTMzMjksIDAuMTgyMjE0LCAwLjQ0MzI5OCwgMC44NzczNzQsIDEuMzE0MSwgMi4zMjczMSwgMi45MDYwNSIsIFwKLSAgICAgICAgICAiMC4xNTMzMjYsIDAuMTgyMjEzLCAwLjQ0MzM2NywgMC44NzcxNzcsIDEuMzEyMiwgMi4zMjU5OCwgMi45MDY1MyIsIFwKLSAgICAgICAgICAiMC4xNTMzMjcsIDAuMTgyMTg5LCAwLjQ0MzMxMiwgMC44NzczMDksIDEuMzExODYsIDIuMzI2NzQsIDIuOTExMjIiLCBcCi0gICAgICAgICAgIjAuMTUzMzQzLCAwLjE4MTk1NywgMC40NDMzMDUsIDAuODc3MzczLCAxLjMxMjE2LCAyLjMyNTk5LCAyLjkwNTcyIiwgXAotICAgICAgICAgICIwLjE1MzA2OSwgMC4xODIyMjYsIDAuNDQzMjI0LCAwLjg3NzE1MiwgMS4zMTIxNCwgMi4zMjcyNiwgMi45MDcyOCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNzAyNzIsIDAuMTg0MTExLCAwLjMwODU5NiwgMC41MTU5NjcsIDAuNzIzNDMzLCAxLjIwNzIxLCAxLjQ4Mzc0IiwgXAotICAgICAgICAgICIwLjE4MDQ4MiwgMC4xOTQzMjUsIDAuMzE4ODA2LCAwLjUyNjE3MiwgMC43MzM2NDgsIDEuMjE3NDYsIDEuNDkzOTUiLCBcCi0gICAgICAgICAgIjAuMTkzMjI5LCAwLjIwNzA2MSwgMC4zMzE1NjYsIDAuNTM4OTU0LCAwLjc0NjM4MiwgMS4yMzAyMSwgMS41MDY2NiIsIFwKLSAgICAgICAgICAiMC4yMDUwMTIsIDAuMjE4ODU0LCAwLjM0MzMzNywgMC41NTA3NTcsIDAuNzU4MDc2LCAxLjI0MTk3LCAxLjUxODUiLCBcCi0gICAgICAgICAgIjAuMjE1NDkzLCAwLjIyOTMzMiwgMC4zNTM4MTQsIDAuNTYxMjA5LCAwLjc2ODY1OSwgMS4yNTI0NCwgMS41Mjg5NyIsIFwKLSAgICAgICAgICAiMC4yMjk4NjEsIDAuMjQzNjk5LCAwLjM2ODE4OSwgMC41NzU1ODksIDAuNzgzMDAzLCAxLjI2Njg1LCAxLjU0MzQxIiwgXAotICAgICAgICAgICIwLjI0MDg1NywgMC4yNTQ2OTQsIDAuMzc5MTkxLCAwLjU4NjU3MywgMC43OTQsIDEuMjc3ODMsIDEuNTU0MzIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTQ2NjYsIDAuMTc0NTI4LCAwLjQyMzYyLCAwLjg0MDk5OSwgMS4yNTQ2MiwgMi4yMzE1OCwgMi43ODM2NiIsIFwKLSAgICAgICAgICAiMC4xNDY2NDMsIDAuMTc0NTQ5LCAwLjQyMzU5NywgMC44NDEzNSwgMS4yNTQyNCwgMi4yMzE3NiwgMi43ODM3IiwgXAotICAgICAgICAgICIwLjE0NjkzNiwgMC4xNzQyMTEsIDAuNDI0NTEsIDAuODQxNDY0LCAxLjI1ODUyLCAyLjIyNTgzLCAyLjc4NzU5IiwgXAotICAgICAgICAgICIwLjE0NjY2LCAwLjE3NDE5LCAwLjQyMzcyMSwgMC44NDEzNDUsIDEuMjU3MzcsIDIuMjI4NDcsIDIuNzc5NzYiLCBcCi0gICAgICAgICAgIjAuMTQ2NjQxLCAwLjE3NDI5OSwgMC40MjM2MDEsIDAuODQxNTMsIDEuMjU1NTUsIDIuMjI4MTgsIDIuNzgyMDMiLCBcCi0gICAgICAgICAgIjAuMTQ2ODc2LCAwLjE3NDIxNCwgMC40MjQyNTgsIDAuODQxNDgzLCAxLjI1ODU1LCAyLjIyNjQxLCAyLjc4ODM1IiwgXAotICAgICAgICAgICIwLjE0Njg4NCwgMC4xNzQ1NiwgMC40MjQ0NzUsIDAuODQxNTUyLCAxLjI1ODUxLCAyLjIyODU3LCAyLjc4NzYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1NjI5LCAwLjAwNTYyNSwgMC4wMDU2MDUsIDAuMDA1NTkzLCAwLjAwNTU4OSwgMC4wMDU1ODUsIDAuMDA1NTg1IiwgXAotICAgICAgICAgICIwLjAwNTU5NCwgMC4wMDU1OTEsIDAuMDA1NTcxLCAwLjAwNTU2LCAwLjAwNTU1NSwgMC4wMDU1NTEsIDAuMDA1NTUiLCBcCi0gICAgICAgICAgIjAuMDA1NTc5LCAwLjAwNTU3NiwgMC4wMDU1NTYsIDAuMDA1NTQ0LCAwLjAwNTUzOSwgMC4wMDU1MzUsIDAuMDA1NTM0IiwgXAotICAgICAgICAgICIwLjAwNTU4MiwgMC4wMDU1NzgsIDAuMDA1NTU5LCAwLjAwNTU0NywgMC4wMDU1NDIsIDAuMDA1NTM3LCAwLjAwNTUzNSIsIFwKLSAgICAgICAgICAiMC4wMDU2MDQsIDAuMDA1NjAxLCAwLjAwNTU4MSwgMC4wMDU1NjksIDAuMDA1NTY0LCAwLjAwNTU1OSwgMC4wMDU1NTgiLCBcCi0gICAgICAgICAgIjAuMDA1NjI0LCAwLjAwNTYyMSwgMC4wMDU2MDMsIDAuMDA1NTkxLCAwLjAwNTU4NSwgMC4wMDU1OCwgMC4wMDU1NzgiLCBcCi0gICAgICAgICAgIjAuMDA1NjQ3LCAwLjAwNTY0NCwgMC4wMDU2MjcsIDAuMDA1NjE0LCAwLjAwNTYwOCwgMC4wMDU2MDMsIDAuMDA1NjAxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1ODY3LCAwLjAwNTg2OCwgMC4wMDU4NzQsIDAuMDA1ODc2LCAwLjAwNTg3NiwgMC4wMDU4NzcsIDAuMDA1ODc3IiwgXAotICAgICAgICAgICIwLjAwNTgzOCwgMC4wMDU4MzksIDAuMDA1ODQ1LCAwLjAwNTg0NywgMC4wMDU4NDgsIDAuMDA1ODQ4LCAwLjAwNTg0OSIsIFwKLSAgICAgICAgICAiMC4wMDU4MzUsIDAuMDA1ODM2LCAwLjAwNTg0MSwgMC4wMDU4NDQsIDAuMDA1ODQ0LCAwLjAwNTg0NSwgMC4wMDU4NDUiLCBcCi0gICAgICAgICAgIjAuMDA1ODUxLCAwLjAwNTg1MiwgMC4wMDU4NTcsIDAuMDA1ODU5LCAwLjAwNTg2LCAwLjAwNTg2MSwgMC4wMDU4NjIiLCBcCi0gICAgICAgICAgIjAuMDA1ODgsIDAuMDA1ODgxLCAwLjAwNTg4NiwgMC4wMDU4ODgsIDAuMDA1ODg5LCAwLjAwNTg5LCAwLjAwNTg5IiwgXAotICAgICAgICAgICIwLjAwNTkyLCAwLjAwNTkyMSwgMC4wMDU5MjYsIDAuMDA1OTI4LCAwLjAwNTkyOSwgMC4wMDU5MywgMC4wMDU5MyIsIFwKLSAgICAgICAgICAiMC4wMDU5NjYsIDAuMDA1OTY3LCAwLjAwNTk3MiwgMC4wMDU5NzQsIDAuMDA1OTc1LCAwLjAwNTk3NiwgMC4wMDU5NzYiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFNFKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDEzMzE2NzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDEzMzE2NzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDEzMzE0MjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDM5MTUsIDAuMDAzODkyLCAwLjAwMzg5OSwgMC4wMDM5LCAwLjAwMzkxOCwgMC4wMDM5NDEsIDAuMDAzOTY2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA1MjUyLCAwLjAwNTIxNSwgMC4wMDUyMDgsIDAuMDA1MjIxLCAwLjAwNTIzMiwgMC4wMDUyNzMsIDAuMDA1MzE2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEJlNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9TSV9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjA0Mzc1LCAtMC4wMzg3NSwgLTAuMDMyNSwgLTAuMDI2MjUsIC0wLjAyLCAtMC4wMSwgLTAuMDA3NSIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDIxMjUsIC0wLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjA2NzUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzMzc1LCAtMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjA4LCAtMC4wNjg3NSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNDYyNSwgLTAuMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDg2MjUsIC0wLjA4MTI1LCAtMC4wNzUsIC0wLjA2ODc1LCAtMC4wNjI1LCAtMC4wNTI1LCAtMC4wNSIsIFwKLSAgICAgICAgICAiLTAuMTAyNSwgLTAuMDk3NSwgLTAuMDkxMjUsIC0wLjA4NSwgLTAuMDc4NzUsIC0wLjA2ODc1LCAtMC4wNjYyNSIsIFwKLSAgICAgICAgICAiLTAuMTE3NSwgLTAuMTEyNSwgLTAuMTA2MjUsIC0wLjEsIC0wLjA5Mzc1LCAtMC4wODM3NSwgLTAuMDgxMjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMTI1LCAtMC4wMDEyNSwgMC4wMTEyNSwgMC4wMTc1LCAwLjAzLCAwLjA0LCAwLjA0ODc1IiwgXAotICAgICAgICAgICItMC4wMTc1LCAtMC4wMTI1LCAwLCAwLjAxMjUsIDAuMDE4NzUsIDAuMDM1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDE4NzUsIC0wLjAxMjUsIDAsIDAuMDA2MjUsIDAuMDIyNSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDMxMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAwLCAwLjAxLCAwLjAxODc1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDQzNzUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDAyNSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDY1LCAtMC4wNTM3NSwgLTAuMDQxMjUsIC0wLjAzNSwgLTAuMDIyNSwgLTAuMDEyNSwgLTAuMDAzNzUiLCBcCi0gICAgICAgICAgIi0wLjA3Mzc1LCAtMC4wNjI1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAyMTI1LCAtMC4wMTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIkQmIVNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMV9BTl9TSV9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAyNSwgLTAuMDEzNzUsIC0wLjAwMTI1LCAwLjAwNSwgMC4wMTc1LCAwLjAyNzUsIDAuMDM2MjUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMjUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLjAwNjI1LCAwLjAxNjI1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDM3NSwgLTAuMDI1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMC4wMDM3NSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNDM3NSwgLTAuMDMxMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDI1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wNjEyNSwgLTAuMDUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgLTAuMDA4NzUsIDAiLCBcCi0gICAgICAgICAgIi0wLjA3MTI1LCAtMC4wNiwgLTAuMDQ3NSwgLTAuMDQxMjUsIC0wLjAyODc1LCAtMC4wMTg3NSwgLTAuMDEiLCBcCi0gICAgICAgICAgIi0wLjA3Mzc1LCAtMC4wNjg3NSwgLTAuMDU2MjUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMjc1LCAtMC4wMTg3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjA2MjUsIC0wLjA1MTI1LCAtMC4wNDUsIC0wLjAzODc1LCAtMC4wMzI1LCAtMC4wMjg3NSwgLTAuMDIiLCBcCi0gICAgICAgICAgIi0wLjA2NzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjAzMzc1LCAtMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDgsIC0wLjA3NSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNDYyNSwgLTAuMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDg2MjUsIC0wLjA4MTI1LCAtMC4wNzUsIC0wLjA2ODc1LCAtMC4wNjI1LCAtMC4wNTI1LCAtMC4wNDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDkyNSwgLTAuMDg3NSwgLTAuMDgxMjUsIC0wLjA3NSwgLTAuMDY4NzUsIC0wLjA1ODc1LCAtMC4wNTYyNSIsIFwKLSAgICAgICAgICAiLTAuMTAyNSwgLTAuMDkxMjUsIC0wLjA4NSwgLTAuMDc4NzUsIC0wLjA3MjUsIC0wLjA2ODc1LCAtMC4wNiIsIFwKLSAgICAgICAgICAiLTAuMTA1LCAtMC4xLCAtMC4wOTM3NSwgLTAuMDg3NSwgLTAuMDgxMjUsIC0wLjA3MTI1LCAtMC4wNjg3NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUQmU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1NJX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc1LCAwLjA2Mzc1LCAwLjA1MTI1LCAwLjA0NSwgMC4wMzg3NSwgMC4wMzUsIDAuMDI2MjUiLCBcCi0gICAgICAgICAgIjAuMDg2MjUsIDAuMDc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDUsIDAuMDQsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiMC4wOTI1LCAwLjA4NzUsIDAuMDc1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDUyNSwgMC4wNSIsIFwKLSAgICAgICAgICAiMC4xMDUsIDAuMDkzNzUsIDAuMDg3NSwgMC4wODEyNSwgMC4wNzUsIDAuMDY1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICIwLjExNzUsIDAuMTA2MjUsIDAuMSwgMC4wOTM3NSwgMC4wODc1LCAwLjA3NzUsIDAuMDY4NzUiLCBcCi0gICAgICAgICAgIjAuMTMzNzUsIDAuMTI4NzUsIDAuMTE2MjUsIDAuMTEsIDAuMTAzNzUsIDAuMDkzNzUsIDAuMDg1IiwgXAotICAgICAgICAgICIwLjE0ODc1LCAwLjEzNzUsIDAuMTMxMjUsIDAuMTI1LCAwLjExODc1LCAwLjEwODc1LCAwLjEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTYyNSwgMC4wNDUsIDAuMDMyNSwgMC4wMiwgMC4wMDc1LCAtMC4wMDI1LCAtMC4wMTc1IiwgXAotICAgICAgICAgICIwLjA2MTI1LCAwLjA1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDE4NzUsIDAuMDAyNSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMDczNzUsIDAuMDYyNSwgMC4wNSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAxNSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiMC4wODYyNSwgMC4wNzUsIDAuMDYyNSwgMC4wNSwgMC4wNDM3NSwgMC4wMjc1LCAwLjAxODc1IiwgXAotICAgICAgICAgICIwLjA5ODc1LCAwLjA4NzUsIDAuMDc1LCAwLjA2MjUsIDAuMDUsIDAuMDQsIDAuMDI1IiwgXAotICAgICAgICAgICIwLjExNSwgMC4xMDM3NSwgMC4wOTEyNSwgMC4wNzg3NSwgMC4wNjYyNSwgMC4wNTYyNSwgMC4wNDEyNSIsIFwKLSAgICAgICAgICAiMC4xMjM3NSwgMC4xMTg3NSwgMC4xMDYyNSwgMC4wOTM3NSwgMC4wODEyNSwgMC4wNjUsIDAuMDU2MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIkQmIVNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMV9BTl9TSV9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2ODc1LCAwLjA1NzUsIDAuMDQ1LCAwLjAzMjUsIDAuMDI2MjUsIDAuMDEsIDAuMDAxMjUiLCBcCi0gICAgICAgICAgIjAuMDgsIDAuMDY4NzUsIDAuMDU2MjUsIDAuMDQzNzUsIDAuMDMxMjUsIDAuMDIxMjUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMDg2MjUsIDAuMDgxMjUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNDM3NSwgMC4wMjc1LCAwLjAxODc1IiwgXAotICAgICAgICAgICIwLjA5ODc1LCAwLjA4NzUsIDAuMDc1LCAwLjA2MjUsIDAuMDUsIDAuMDQsIDAuMDI1IiwgXAotICAgICAgICAgICIwLjEwNSwgMC4wOTM3NSwgMC4wODEyNSwgMC4wNjg3NSwgMC4wNTYyNSwgMC4wNDYyNSwgMC4wMzc1IiwgXAotICAgICAgICAgICIwLjExNSwgMC4xMDM3NSwgMC4wOTEyNSwgMC4wNzg3NSwgMC4wNjYyNSwgMC4wNTYyNSwgMC4wNDEyNSIsIFwKLSAgICAgICAgICAiMC4xMjM3NSwgMC4xMTI1LCAwLjEsIDAuMDg3NSwgMC4wNzUsIDAuMDU4NzUsIDAuMDUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODc1LCAwLjA3NjI1LCAwLjA3LCAwLjA2Mzc1LCAwLjA1NzUsIDAuMDQ3NSwgMC4wMzg3NSIsIFwKLSAgICAgICAgICAiMC4wOTg3NSwgMC4wODc1LCAwLjA4MTI1LCAwLjA2ODc1LCAwLjA2ODc1LCAwLjA1ODc1LCAwLjA1IiwgXAotICAgICAgICAgICIwLjExMTI1LCAwLjEsIDAuMDg3NSwgMC4wODEyNSwgMC4wNzUsIDAuMDY1LCAwLjA2MjUiLCBcCi0gICAgICAgICAgIjAuMTE3NSwgMC4xMDYyNSwgMC4wOTM3NSwgMC4wODc1LCAwLjA4MTI1LCAwLjA3NzUsIDAuMDY4NzUiLCBcCi0gICAgICAgICAgIjAuMTIzNzUsIDAuMTEyNSwgMC4xLCAwLjA5Mzc1LCAwLjA4NzUsIDAuMDgzNzUsIDAuMDc1IiwgXAotICAgICAgICAgICIwLjEzMzc1LCAwLjEyMjUsIDAuMTEsIDAuMTAzNzUsIDAuMDk3NSwgMC4wODc1LCAwLjA4NSIsIFwKLSAgICAgICAgICAiMC4xMzYyNSwgMC4xMjUsIDAuMTE4NzUsIDAuMTEyNSwgMC4xMDYyNSwgMC4wOTYyNSwgMC4wODc1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTSSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjc4ODE1OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDY3NzY5NzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2Nzg4MTU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyNTI1LCAwLjAwMjUwOSwgMC4wMDI1LCAwLjAwMjQ5NiwgMC4wMDI0OTQsIDAuMDAyNDk4LCAwLjAwMjUwOCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNDI4OCwgMC4wMDQyNzksIDAuMDA0MjczLCAwLjAwNDI3MSwgMC4wMDQyNzIsIDAuMDA0MjczLCAwLjAwNDI4MSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJTRSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wNSwgLTAuMDQ1LCAtMC4wMzg3NSwgLTAuMDMyNSwgLTAuMDI2MjUsIC0wLjAxNjI1LCAtMC4wMDc1IiwgXAotICAgICAgICAgICItMC4wNjEyNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDI3NSwgLTAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjA2NzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjAzMzc1LCAtMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDgsIC0wLjA3NSwgLTAuMDY4NzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNDYyNSwgLTAuMDQzNzUiLCBcCi0gICAgICAgICAgIi0wLjA5MjUsIC0wLjA4MTI1LCAtMC4wNzUsIC0wLjA2ODc1LCAtMC4wNjI1LCAtMC4wNTg3NSwgLTAuMDUiLCBcCi0gICAgICAgICAgIi0wLjEwODc1LCAtMC4wOTc1LCAtMC4wOTEyNSwgLTAuMDg1LCAtMC4wNzg3NSwgLTAuMDc1LCAtMC4wNjYyNSIsIFwKLSAgICAgICAgICAiLTAuMTE3NSwgLTAuMTEyNSwgLTAuMTA2MjUsIC0wLjEsIC0wLjA5Mzc1LCAtMC4wODM3NSwgLTAuMDgxMjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMTg3NSwgLTAuMDA3NSwgMC4wMDUsIDAuMDExMjUsIDAuMDIzNzUsIDAuMDMzNzUsIDAuMDQyNSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLjAwNjI1LCAwLjAxMjUsIDAuMDI4NzUsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAyNSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAuMDA2MjUsIDAuMDE2MjUsIDAuMDI1IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLjAxLCAwLjAxODc1IiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA0Mzc1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwMjUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA2NSwgLTAuMDUzNzUsIC0wLjA0MTI1LCAtMC4wMzUsIC0wLjAyMjUsIC0wLjAxMjUsIC0wLjAwMzc1IiwgXAotICAgICAgICAgICItMC4wNzM3NSwgLTAuMDYyNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMjEyNSwgLTAuMDEyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiU0UiOwotICAgICAgc2RmX2NvbmQgOiAiU0UgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDgxMjUsIDAuMDcsIDAuMDU3NSwgMC4wNTEyNSwgMC4wNDUsIDAuMDQxMjUsIDAuMDMyNSIsIFwKLSAgICAgICAgICAiMC4wODYyNSwgMC4wODEyNSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA0NjI1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjA5ODc1LCAwLjA4NzUsIDAuMDgxMjUsIDAuMDc1LCAwLjA2ODc1LCAwLjA1ODc1LCAwLjA1IiwgXAotICAgICAgICAgICIwLjExMTI1LCAwLjEsIDAuMDg3NSwgMC4wODEyNSwgMC4wNzUsIDAuMDcxMjUsIDAuMDYyNSIsIFwKLSAgICAgICAgICAiMC4xMTc1LCAwLjExMjUsIDAuMSwgMC4wOTM3NSwgMC4wODc1LCAwLjA3NzUsIDAuMDc1IiwgXAotICAgICAgICAgICIwLjEzMzc1LCAwLjEyODc1LCAwLjExNjI1LCAwLjExLCAwLjEwMzc1LCAwLjA5Mzc1LCAwLjA5MTI1IiwgXAotICAgICAgICAgICIwLjE0ODc1LCAwLjEzNzUsIDAuMTMxMjUsIDAuMTE4NzUsIDAuMTE4NzUsIDAuMTA4NzUsIDAuMSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2MjUsIDAuMDUxMjUsIDAuMDM4NzUsIDAuMDI2MjUsIDAuMDEzNzUsIDAuMDAzNzUsIC0wLjAxMTI1IiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDU2MjUsIDAuMDQzNzUsIDAuMDMxMjUsIDAuMDI1LCAwLjAwODc1LCAwIiwgXAotICAgICAgICAgICIwLjA4LCAwLjA2ODc1LCAwLjA1NjI1LCAwLjA0Mzc1LCAwLjAzMTI1LCAwLjAyMTI1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMDg2MjUsIDAuMDc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDQzNzUsIDAuMDI3NSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4wOTg3NSwgMC4wODc1LCAwLjA3NSwgMC4wNjI1LCAwLjA1LCAwLjA0LCAwLjAzMTI1IiwgXAotICAgICAgICAgICIwLjExNSwgMC4xMDM3NSwgMC4wOTEyNSwgMC4wNzg3NSwgMC4wNjYyNSwgMC4wNSwgMC4wNDEyNSIsIFwKLSAgICAgICAgICAiMC4xMjM3NSwgMC4xMTI1LCAwLjEsIDAuMDg3NSwgMC4wNzUsIDAuMDY1LCAwLjA1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBTREZGUkhRWDggKgotICogLS0tLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChTREZGUkhRWDgpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC45MzcyNTQ7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgZmYgKE4zMCxRQklOVCkgewotICAgIG5leHRfc3RhdGUgOiAiKChTRSBTSSkgKyAoIVNFIEQpKSI7Ci0gICAgY2xvY2tlZF9vbiA6ICJDSyI7Ci0gICAgY2xlYXIgOiAiKCFSTikiOwotICB9Ci0gIHBpbihDSykgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNTkyNzE7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNTkyNjQ2OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDU5MjcxOwotICAgIGNsb2NrIDogdHJ1ZTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDMzMDksIDAuMDAzMjg2LCAwLjAwMzI3MSwgMC4wMDMyNzEsIDAuMDAzMjgsIDAuMDAzMzAzLCAwLjAwMzMyNCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwODI5NywgMC4wMDgyNzMsIDAuMDA4Mjc5LCAwLjAwODI5NCwgMC4wMDgyOTgsIDAuMDA4MzU5LCAwLjAwODM3OCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQmUk4mIVNFJiFTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fUk5fRVFfMV9BTl9TRV9FUV8wX0FOX1NJX0VRXzAgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4xMzY0NDQsIDAuMTQ2NjksIDAuMTU5NDcyLCAwLjE3MjA4MywgMC4xODM3MDMsIDAuMTk5ODE2LCAwLjIxMjU5OCIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDk4NjI3LCAwLjEwODYyNiwgMC4xMjEwMDMsIDAuMTMzMTAxLCAwLjE0NDA3NCwgMC4xNTg4OTcsIDAuMTcwNTY5Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihEKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA4NDg0MjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA4NDU0MTE7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwODQ4NDI7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzNjczLCAwLjAwMzY0LCAwLjAwMzYyMywgMC4wMDM2MTQsIDAuMDAzNjA4LCAwLjAwMzYyLCAwLjAwMzYyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA2MDA0LCAwLjAwNTk4NiwgMC4wMDU5NzUsIDAuMDA1OTcxLCAwLjAwNTk3LCAwLjAwNTk3OCwgMC4wMDU5NzkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiUk4mIVNFIjsKLSAgICAgIHNkZl9jb25kIDogIlJOX0VRXzFfQU5fU0VfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wNDM3NSwgLTAuMDMyNSwgLTAuMDI2MjUsIC0wLjAyLCAtMC4wMTM3NSwgLTAuMDAzNzUsIDAuMDA1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDQzNzUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMDg3NSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA2MTI1LCAtMC4wNTYyNSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMjEyNSwgLTAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDczNzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjAzMzc1LCAtMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjA4LCAtMC4wNzUsIC0wLjA2ODc1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjA0NjI1LCAtMC4wMzc1IiwgXAotICAgICAgICAgICItMC4wOTYyNSwgLTAuMDkxMjUsIC0wLjA3ODc1LCAtMC4wNzI1LCAtMC4wNjYyNSwgLTAuMDU2MjUsIC0wLjA1Mzc1IiwgXAotICAgICAgICAgICItMC4xMTEyNSwgLTAuMSwgLTAuMDkzNzUsIC0wLjA4NzUsIC0wLjA4MTI1LCAtMC4wNzEyNSwgLTAuMDYyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAsIDAuMDExMjUsIDAuMDIzNzUsIDAuMDM2MjUsIDAuMDQyNSwgMC4wNTg3NSwgMC4wNjc1IiwgXAotICAgICAgICAgICItMC4wMDUsIDAsIDAuMDEyNSwgMC4wMjUsIDAuMDM3NSwgMC4wNDc1LCAwLjA2MjUiLCBcCi0gICAgICAgICAgIi0wLjAxNzUsIC0wLjAwNjI1LCAwLjAwNjI1LCAwLjAxODc1LCAwLjAyNSwgMC4wNDEyNSwgMC4wNSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxMjUsIDAsIDAuMDA2MjUsIDAuMDE4NzUsIDAuMDI4NzUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMTg3NSwgLTAuMDEyNSwgMCwgMC4wMTI1LCAwLjAyMjUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjA0LCAtMC4wMjg3NSwgLTAuMDIyNSwgLTAuMDEsIC0wLjAwMzc1LCAwLjAxMjUsIDAuMDIxMjUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMDYyNSwgMC4wMDM3NSwgMC4wMTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJSTiYhU0UiOwotICAgICAgc2RmX2NvbmQgOiAiUk5fRVFfMV9BTl9TRV9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3NSwgMC4wNjM3NSwgMC4wNTc1LCAwLjA0NSwgMC4wMzg3NSwgMC4wMjg3NSwgMC4wMiIsIFwKLSAgICAgICAgICAiMC4wODYyNSwgMC4wNzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNSwgMC4wNCwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4wOTI1LCAwLjA4NzUsIDAuMDc1LCAwLjA2ODc1LCAwLjA1NjI1LCAwLjA1MjUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMTA1LCAwLjA5Mzc1LCAwLjA4NzUsIDAuMDc1LCAwLjA2ODc1LCAwLjA1ODc1LCAwLjA1IiwgXAotICAgICAgICAgICIwLjExNzUsIDAuMTA2MjUsIDAuMDkzNzUsIDAuMDg3NSwgMC4wODEyNSwgMC4wNzEyNSwgMC4wNjI1IiwgXAotICAgICAgICAgICIwLjEzMzc1LCAwLjEyMjUsIDAuMTEsIDAuMTAzNzUsIDAuMDk3NSwgMC4wODc1LCAwLjA3ODc1IiwgXAotICAgICAgICAgICIwLjE0MjUsIDAuMTMxMjUsIDAuMTI1LCAwLjExMjUsIDAuMTA2MjUsIDAuMDk2MjUsIDAuMDg3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0Mzc1LCAwLjAzMjUsIDAuMDIsIDAuMDA3NSwgLTAuMDA1LCAtMC4wMjEyNSwgLTAuMDMiLCBcCi0gICAgICAgICAgIjAuMDQ4NzUsIDAuMDQzNzUsIDAuMDMxMjUsIDAuMDE4NzUsIDAuMDA2MjUsIC0wLjAxLCAtMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMDYxMjUsIDAuMDUsIDAuMDM3NSwgMC4wMjUsIDAuMDEyNSwgLTAuMDAzNzUsIC0wLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMDczNzUsIDAuMDYyNSwgMC4wNSwgMC4wMzc1LCAwLjAyNSwgMC4wMDg3NSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMDgsIDAuMDY4NzUsIDAuMDU2MjUsIDAuMDQzNzUsIDAuMDMxMjUsIDAuMDE1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICIwLjA5NjI1LCAwLjA4NSwgMC4wNzI1LCAwLjA2LCAwLjA0NzUsIDAuMDMxMjUsIDAuMDE2MjUiLCBcCi0gICAgICAgICAgIjAuMTA1LCAwLjA5Mzc1LCAwLjA4MTI1LCAwLjA2ODc1LCAwLjA1NjI1LCAwLjA0LCAwLjAzMTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihRKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDIuMDEyNzsKLSAgICBmdW5jdGlvbiA6ICJOMzAiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5vbl91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcmlzaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTQyNTcyLCAwLjE4Mzc0LCAwLjIyMDAyLCAwLjI0NTczNiwgMC4yODY4MzYsIDAuMzIyNzgxLCAwLjM3NDExNiIsIFwKLSAgICAgICAgICAiMC4xNTI3ODQsIDAuMTkzOTYsIDAuMjMwMjQsIDAuMjU1OTU0LCAwLjI5NzA1NSwgMC4zMzMwMDEsIDAuMzg0MzQ3IiwgXAotICAgICAgICAgICIwLjE2NTUzMSwgMC4yMDY3MDUsIDAuMjQyOTg2LCAwLjI2ODcwMywgMC4zMDk4MDQsIDAuMzQ1NzQ5LCAwLjM5NzA4NSIsIFwKLSAgICAgICAgICAiMC4xNzgwNjcsIDAuMjE5MjM5LCAwLjI1NTUyLCAwLjI4MTIzNSwgMC4zMjIzMzcsIDAuMzU4Mjg2LCAwLjQwOTYyNCIsIFwKLSAgICAgICAgICAiMC4xODk0ODksIDAuMjMwNjU4LCAwLjI2NjkzNiwgMC4yOTI2NTEsIDAuMzMzNzUyLCAwLjM2OTcwOSwgMC40MjEwNDciLCBcCi0gICAgICAgICAgIjAuMjA1MTQ2LCAwLjI0NjMyMiwgMC4yODI1OTYsIDAuMzA4MzE4LCAwLjM0OTQxNCwgMC4zODUzNjMsIDAuNDM2NzExIiwgXAotICAgICAgICAgICIwLjIxNzk2MiwgMC4yNTkxNDQsIDAuMjk1NDE5LCAwLjMyMTE0OCwgMC4zNjIyNTcsIDAuMzk4MTksIDAuNDQ5NTI1Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDI2OTA2LCAwLjA5NjQ2NSwgMC4xNjgzNTcsIDAuMjIwNTY2LCAwLjMwNDgxNSwgMC4zNzg3MTcsIDAuNDg0NDMiLCBcCi0gICAgICAgICAgIjAuMDI2ODY2LCAwLjA5NjQ2MywgMC4xNjgzNjYsIDAuMjIwNTY4LCAwLjMwNDgxMiwgMC4zNzg3MDgsIDAuNDg0NTEyIiwgXAotICAgICAgICAgICIwLjAyNjg5MSwgMC4wOTY0NjEsIDAuMTY4NDAxLCAwLjIyMDU4NCwgMC4zMDQ4LCAwLjM3ODcwNiwgMC40ODQ0MzkiLCBcCi0gICAgICAgICAgIjAuMDI2ODkxLCAwLjA5NjQ2NCwgMC4xNjg0MjYsIDAuMjIwNzIzLCAwLjMwNDgxMiwgMC4zNzc4NzcsIDAuNDg0MDIxIiwgXAotICAgICAgICAgICIwLjAyNjg3NiwgMC4wOTY0NjEsIDAuMTY4MzU2LCAwLjIyMDU2MiwgMC4zMDQ4MTEsIDAuMzc4NzMsIDAuNDg0NTYyIiwgXAotICAgICAgICAgICIwLjAyNjg5NSwgMC4wOTY0NTQsIDAuMTY4NTE0LCAwLjIyMDcxNiwgMC4zMDQ4MTQsIDAuMzc4NzA3LCAwLjQ4NDU0NyIsIFwKLSAgICAgICAgICAiMC4wMjY5NDgsIDAuMDk2NDc1LCAwLjE2ODQxOSwgMC4yMjA3MDcsIDAuMzA0ODk2LCAwLjM3ODcxLCAwLjQ4NDQ1NSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEzNjQ0NCwgMC4xNzY2NTEsIDAuMjE0NzYsIDAuMjQxOTMyLCAwLjI4NTM3NSwgMC4zMjMzODgsIDAuMzc3NzI4IiwgXAotICAgICAgICAgICIwLjE0NjY5MSwgMC4xODY4OTUsIDAuMjI1MDA2LCAwLjI1MjE4OCwgMC4yOTU2MjIsIDAuMzMzNjMxLCAwLjM4Nzk3NCIsIFwKLSAgICAgICAgICAiMC4xNTk0NzIsIDAuMTk5Njc5LCAwLjIzNzc4OSwgMC4yNjQ5NTgsIDAuMzA4NDA0LCAwLjM0NjQxNSwgMC40MDA3MzMiLCBcCi0gICAgICAgICAgIjAuMTcyMDgzLCAwLjIxMjI4OCwgMC4yNTAzOTcsIDAuMjc3NTcsIDAuMzIxMDEyLCAwLjM1OTAyNSwgMC40MTMzNjIiLCBcCi0gICAgICAgICAgIjAuMTgzNzA1LCAwLjIyMzkwNiwgMC4yNjIwMTcsIDAuMjg5MTg1LCAwLjMzMjYyNywgMC4zNzA2MzksIDAuNDI0OTgxIiwgXAotICAgICAgICAgICIwLjE5OTgxOSwgMC4yNDAwMjcsIDAuMjc4MTM3LCAwLjMwNTMxNiwgMC4zNDg3NTMsIDAuMzg2NzY1LCAwLjQ0MTEwMyIsIFwKLSAgICAgICAgICAiMC4yMTI2MDcsIDAuMjUyODE0LCAwLjI5MDkyNCwgMC4zMTgxMDEsIDAuMzYxNTQsIDAuMzk5NTU0LCAwLjQ1Mzg5MiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyMjQxOSwgMC4wOTU5MzEsIDAuMTcyMTAzLCAwLjIyNjk3MSwgMC4zMTUzMDUsIDAuMzkxODYxLCAwLjUwMTU0NyIsIFwKLSAgICAgICAgICAiMC4wMjI0MjcsIDAuMDk1OTMyLCAwLjE3MTk5MSwgMC4yMjY5MiwgMC4zMTUwMDMsIDAuMzkyNDYsIDAuNTAxNDA0IiwgXAotICAgICAgICAgICIwLjAyMjQxOCwgMC4wOTU5MjgsIDAuMTcyMDk3LCAwLjIyNjgxNiwgMC4zMTUyODEsIDAuMzkxODA2LCAwLjUwMTgxOCIsIFwKLSAgICAgICAgICAiMC4wMjI0MjQsIDAuMDk1OTMsIDAuMTcyMTA2LCAwLjIyNjk2NCwgMC4zMTUyODksIDAuMzkxODY5LCAwLjUwMjk3NiIsIFwKLSAgICAgICAgICAiMC4wMjI0MjQsIDAuMDk1OTM1LCAwLjE3MjA2LCAwLjIyNzAzMiwgMC4zMTUyODEsIDAuMzkyNDc1LCAwLjUwMTc0IiwgXAotICAgICAgICAgICIwLjAyMjQxNywgMC4wOTU5MzEsIDAuMTcyMDI0LCAwLjIyNzAwNCwgMC4zMTUzMDMsIDAuMzkyNDg0LCAwLjUwMjk4NyIsIFwKLSAgICAgICAgICAiMC4wMjI0MzcsIDAuMDk1OTMzLCAwLjE3MjEsIDAuMjI3MDU3LCAwLjMxNTI5NywgMC4zOTE4ODgsIDAuNTAyOTc5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiBjbGVhcjsKLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzYxMTIsIDAuMDc2MjQsIDAuMTE0NTAyLCAwLjE0MTY3LCAwLjE4NTA4NywgMC4yMjMwNiwgMC4yNzczMTUiLCBcCi0gICAgICAgICAgIjAuMDQ2MDksIDAuMDg2MjI3LCAwLjEyNDQ5NywgMC4xNTE2NjUsIDAuMTk1MDY5LCAwLjIzMzA0OSwgMC4yODczMTIiLCBcCi0gICAgICAgICAgIjAuMDU4MjA5LCAwLjA5ODM5MiwgMC4xMzY2NzEsIDAuMTYzODQzLCAwLjIwNzI1NCwgMC4yNDUyMzksIDAuMjk5NTEzIiwgXAotICAgICAgICAgICIwLjA2ODYxNiwgMC4xMDkwMTgsIDAuMTQ3Mjg2LCAwLjE3NDQ2OSwgMC4yMTc4OTMsIDAuMjU1ODcyLCAwLjMxMDEzMSIsIFwKLSAgICAgICAgICAiMC4wNzczMTksIDAuMTE3OTgyLCAwLjE1NjMyNSwgMC4xODM1NCwgMC4yMjY5NjksIDAuMjY0OTM4LCAwLjMxOTIwMSIsIFwKLSAgICAgICAgICAiMC4wODkzNjIsIDAuMTMwNjI5LCAwLjE2ODkyMiwgMC4xOTYxMjUsIDAuMjM5NTM4LCAwLjI3NzUwOSwgMC4zMzE3NjgiLCBcCi0gICAgICAgICAgIjAuMDk4MzU5LCAwLjE0MDAzNCwgMC4xNzg0MjksIDAuMjA1NjE2LCAwLjI0OTAxNCwgMC4yODY5ODMsIDAuMzQxMjMyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDIxMTQ2LCAwLjA5NTc0MywgMC4xNzE4MDYsIDAuMjI2NDY5LCAwLjMxNDQzMiwgMC4zOTE3NzcsIDAuNTAxODQ5IiwgXAotICAgICAgICAgICIwLjAyMTE2NiwgMC4wOTU3MzYsIDAuMTcxODAzLCAwLjIyNjQ5NCwgMC4zMTQzMjYsIDAuMzkxNzQsIDAuNTAyMTEiLCBcCi0gICAgICAgICAgIjAuMDIxNTYyLCAwLjA5NTgwMSwgMC4xNzE4MTUsIDAuMjI2NDY2LCAwLjMxNDUxNCwgMC4zOTE3MTcsIDAuNTAxODIiLCBcCi0gICAgICAgICAgIjAuMDIyNzY1LCAwLjA5NjA4NywgMC4xNzE5MjIsIDAuMjI2NTQ0LCAwLjMxNDU3NywgMC4zOTE2OTYsIDAuNTAxODUxIiwgXAotICAgICAgICAgICIwLjAyMzk0NSwgMC4wOTY1NDksIDAuMTcyMTYzLCAwLjIyNjY3OCwgMC4zMTQ2MzYsIDAuMzkxNzIzLCAwLjUwMTc0NyIsIFwKLSAgICAgICAgICAiMC4wMjU3ODksIDAuMDk3Mjk2LCAwLjE3MjUzOSwgMC4yMjY5NDksIDAuMzE0NTM3LCAwLjM5MTc2NSwgMC41MDIwMzgiLCBcCi0gICAgICAgICAgIjAuMDI3MzMyLCAwLjA5ODA3NywgMC4xNzI4ODMsIDAuMjI3MTc5LCAwLjMxNDk2NiwgMC4zOTE4ODgsIDAuNTAyMjExIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE3MzAzLCAwLjAxNzYxNiwgMC4wMTc3MTIsIDAuMDE3NzM1LCAwLjAxNzc2MywgMC4wMTc3ODIsIDAuMDE3NzkxIiwgXAotICAgICAgICAgICIwLjAxNzI1OCwgMC4wMTc1ODMsIDAuMDE3NjczLCAwLjAxNzcwNCwgMC4wMTc3MzMsIDAuMDE3NzQ5LCAwLjAxNzc2MSIsIFwKLSAgICAgICAgICAiMC4wMTcyNTEsIDAuMDE3NTcyLCAwLjAxNzY2MSwgMC4wMTc2OTIsIDAuMDE3NzIsIDAuMDE3NzM1LCAwLjAxNzc1NCIsIFwKLSAgICAgICAgICAiMC4wMTcyNDksIDAuMDE3NTcsIDAuMDE3NjYyLCAwLjAxNzY5MSwgMC4wMTc3MTksIDAuMDE3NzM3LCAwLjAxNzc1MiIsIFwKLSAgICAgICAgICAiMC4wMTcyNTksIDAuMDE3NTc2LCAwLjAxNzY2NSwgMC4wMTc2OTYsIDAuMDE3NzI0LCAwLjAxNzczOSwgMC4wMTc3NTIiLCBcCi0gICAgICAgICAgIjAuMDE3Mjc1LCAwLjAxNzU5NywgMC4wMTc2ODcsIDAuMDE3NzE4LCAwLjAxNzc0NywgMC4wMTc3NjEsIDAuMDE3Nzc3IiwgXAotICAgICAgICAgICIwLjAxNzI4OSwgMC4wMTc2MSwgMC4wMTc3MDEsIDAuMDE3NzM2LCAwLjAxNzc2MiwgMC4wMTc3NzcsIDAuMDE3NzkxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTY5NzEsIDAuMDE3NDQsIDAuMDE3NTQ5LCAwLjAxNzU4NSwgMC4wMTc2MTgsIDAuMDE3NjM1LCAwLjAxNzY1IiwgXAotICAgICAgICAgICIwLjAxNjk0LCAwLjAxNzQxLCAwLjAxNzUyLCAwLjAxNzU1NiwgMC4wMTc1OSwgMC4wMTc2MDgsIDAuMDE3NjIyIiwgXAotICAgICAgICAgICIwLjAxNjk0NCwgMC4wMTc0MTEsIDAuMDE3NTIsIDAuMDE3NTU2LCAwLjAxNzU4OCwgMC4wMTc2MDUsIDAuMDE3NjIxIiwgXAotICAgICAgICAgICIwLjAxNjk1NSwgMC4wMTc0MjUsIDAuMDE3NTM1LCAwLjAxNzU3MSwgMC4wMTc2MDQsIDAuMDE3NjIxLCAwLjAxNzYzNiIsIFwKLSAgICAgICAgICAiMC4wMTY5ODgsIDAuMDE3NDQ4LCAwLjAxNzU1NCwgMC4wMTc1ODksIDAuMDE3NjIxLCAwLjAxNzYzOCwgMC4wMTc2NTMiLCBcCi0gICAgICAgICAgIjAuMDE3MDMyLCAwLjAxNzUwMiwgMC4wMTc2MTEsIDAuMDE3NjQ3LCAwLjAxNzY3OSwgMC4wMTc2OTcsIDAuMDE3NzEyIiwgXAotICAgICAgICAgICIwLjAxNzA1NCwgMC4wMTc1MjQsIDAuMDE3NjM1LCAwLjAxNzY3MSwgMC4wMTc3MDUsIDAuMDE3NzIzLCAwLjAxNzczOCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxOTY2OCwgMC4wMjAwODQsIDAuMDIwMTQ5LCAwLjAyMDE2OSwgMC4wMjAxODcsIDAuMDIwMTk2LCAwLjAyMDIwNCIsIFwKLSAgICAgICAgICAiMC4wMTk1MDEsIDAuMDE5OTMzLCAwLjAyMDAxNSwgMC4wMjAwNDIsIDAuMDIwMDY3LCAwLjAyMDA4LCAwLjAyMDA5MSIsIFwKLSAgICAgICAgICAiMC4wMTkzNjQsIDAuMDE5Nzk5LCAwLjAxOTkwNiwgMC4wMTk5NDMsIDAuMDE5OTc4LCAwLjAxOTk5NywgMC4wMjAwMTQiLCBcCi0gICAgICAgICAgIjAuMDE5Mjk4LCAwLjAxOTcxMSwgMC4wMTk4MzIsIDAuMDE5ODc2LCAwLjAxOTkxNywgMC4wMTk5MzksIDAuMDE5OTYiLCBcCi0gICAgICAgICAgIjAuMDE5Mjc0LCAwLjAxOTY2MywgMC4wMTk3OTQsIDAuMDE5ODQyLCAwLjAxOTg5OCwgMC4wMTk5MTYsIDAuMDE5OTQiLCBcCi0gICAgICAgICAgIjAuMDE5Mjg1LCAwLjAxOTY0MSwgMC4wMTk3NzcsIDAuMDE5ODMsIDAuMDE5ODg1LCAwLjAxOTkxNCwgMC4wMTk5NDMiLCBcCi0gICAgICAgICAgIjAuMDE5MzMyLCAwLjAxOTY1NywgMC4wMTk3OTcsIDAuMDE5ODUyLCAwLjAxOTkxMSwgMC4wMTk5NDMsIDAuMDE5OTc0Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3Bvd2VyKHNjYWxhcikgewotICAgICAgICB2YWx1ZXMoIjAiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFJOKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDM0NzYxNjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDMxNzI4OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMzQ3NjE2OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTU1NCwgMC4wMDE1NTMsIDAuMDAxNTUzLCAwLjAwMTU1MiwgMC4wMDE1NTIsIDAuMDAxNTUyLCAwLjAwMTU1MiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTU4NywgMC4wMDE1NiwgMC4wMDE1NTksIDAuMDAxNTU5LCAwLjAwMTU1OCwgMC4wMDE1NTksIDAuMDAxNTU2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRCYhU0UmIVNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9TRV9FUV8wX0FOX1NJX0VRXzAgPT0gMSdiMSI7Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wOTI3NzIsIDAuMTAxOTE2LCAwLjExMTkwOSwgMC4xMjEyMTEsIDAuMTI5ODExLCAwLjE0MjA2OCwgMC4xNTE1OTciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiByZWNvdmVyeV9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEJlNFJlNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9TRV9FUV8xX0FOX1NJX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQocmVjb3ZlcnlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAzNzUsIC0wLjA0ODc1LCAtMC4wNjEyNSwgLTAuMDczNzUsIC0wLjA4LCAtMC4wOTYyNSwgLTAuMTExMjUiLCBcCi0gICAgICAgICAgIi0wLjAzODc1LCAtMC4wNSwgLTAuMDYyNSwgLTAuMDc1LCAtMC4wODc1LCAtMC4xMDM3NSwgLTAuMTEyNSIsIFwKLSAgICAgICAgICAiLTAuMDM4NzUsIC0wLjA1LCAtMC4wNjI1LCAtMC4wNzUsIC0wLjA4NzUsIC0wLjEwMzc1LCAtMC4xMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDM4NzUsIC0wLjA1LCAtMC4wNjI1LCAtMC4wNzUsIC0wLjA4NzUsIC0wLjEwMzc1LCAtMC4xMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDMyNSwgLTAuMDQzNzUsIC0wLjA1NjI1LCAtMC4wNjg3NSwgLTAuMDgxMjUsIC0wLjA5NzUsIC0wLjExMjUiLCBcCi0gICAgICAgICAgIi0wLjAxLCAtMC4wMjc1LCAtMC4wNCwgLTAuMDUyNSwgLTAuMDY1LCAtMC4wODc1LCAtMC4wOTYyNSIsIFwKLSAgICAgICAgICAiMC4wMDUsIC0wLjAwNjI1LCAtMC4wMjUsIC0wLjAzNzUsIC0wLjA1LCAtMC4wNjYyNSwgLTAuMDgxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiByZW1vdmFsX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUQmU0UmU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1NFX0VRXzFfQU5fU0lfRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChyZW1vdmFsX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1NjI1LCAwLjA2NzUsIDAuMDgsIDAuMDkyNSwgMC4xMDUsIDAuMTIxMjUsIDAuMTMiLCBcCi0gICAgICAgICAgIjAuMDYzNzUsIDAuMDY4NzUsIDAuMDg3NSwgMC4xLCAwLjEwNjI1LCAwLjEyMjUsIDAuMTM3NSIsIFwKLSAgICAgICAgICAiMC4wNywgMC4wNzUsIDAuMDkzNzUsIDAuMSwgMC4xMTI1LCAwLjEyODc1LCAwLjE0Mzc1IiwgXAotICAgICAgICAgICIwLjA3NjI1LCAwLjA4MTI1LCAwLjA5Mzc1LCAwLjEwNjI1LCAwLjExODc1LCAwLjEzNSwgMC4xNDM3NSIsIFwKLSAgICAgICAgICAiMC4wNzYyNSwgMC4wODc1LCAwLjEsIDAuMTEyNSwgMC4xMjUsIDAuMTQxMjUsIDAuMTUiLCBcCi0gICAgICAgICAgIjAuMDg1LCAwLjA5NjI1LCAwLjEwODc1LCAwLjEyMTI1LCAwLjEyNzUsIDAuMTQzNzUsIDAuMTU4NzUiLCBcCi0gICAgICAgICAgIjAuMDg4NzUsIDAuMSwgMC4xMTI1LCAwLjEyNSwgMC4xMzc1LCAwLjE0NzUsIDAuMTYyNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oU0UpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTU5NTYyOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTU5NDM1OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTU5NTYyOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNTYzLCAwLjAwNTYwOCwgMC4wMDU1OTcsIDAuMDA1NjAxLCAwLjAwNTYxMiwgMC4wMDU2MjksIDAuMDA1NjQ5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA3MDI0LCAwLjAwNjk3MSwgMC4wMDY5NjEsIDAuMDA2OTYyLCAwLjAwNjk3NiwgMC4wMDcwMywgMC4wMDcwNjciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiUk4iOwotICAgICAgc2RmX2NvbmQgOiAiUk4gPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDA2MjUsIC0wLjAwMTI1LCAwLjAxMTI1LCAwLjAyMzc1LCAwLjAzNjI1LCAwLjA0NjI1LCAwLjA2MTI1IiwgXAotICAgICAgICAgICItMC4wMTc1LCAtMC4wMDYyNSwgMCwgMC4wMTI1LCAwLjAyNSwgMC4wMzUsIDAuMDUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAuMDA2MjUsIDAuMDEyNSwgMC4wMjg3NSwgMC4wMzc1IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLjAwNjI1LCAwLjAxNjI1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDM3NSwgLTAuMDI1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMC4wMSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDU4NzUsIC0wLjA0NzUsIC0wLjAzNSwgLTAuMDIyNSwgLTAuMDE2MjUsIDAsIDAuMDA4NzUiLCBcCi0gICAgICAgICAgIi0wLjA2NzUsIC0wLjA1NjI1LCAtMC4wNDM3NSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDA4NzUsIDAiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjI1LCAwLjAxNzUsIDAuMDMsIDAuMDQyNSwgMC4wNDg3NSwgMC4wNjUsIDAuMDczNzUiLCBcCi0gICAgICAgICAgIjAuMDAxMjUsIDAuMDA2MjUsIDAuMDE4NzUsIDAuMDMxMjUsIDAuMDQzNzUsIDAuMDUzNzUsIDAuMDY4NzUiLCBcCi0gICAgICAgICAgIi0wLjAxMTI1LCAwLCAwLjAxMjUsIDAuMDI1LCAwLjAzMTI1LCAwLjA0NzUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIi0wLjAxNzUsIC0wLjAxMjUsIDAsIDAuMDEyNSwgMC4wMjUsIDAuMDM1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLjAwNjI1LCAwLjAxMjUsIDAuMDI4NzUsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDMzNzUsIC0wLjAyMjUsIC0wLjAxNjI1LCAtMC4wMDM3NSwgMC4wMDI1LCAwLjAxODc1LCAwLjAyNzUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMC4wMSwgMC4wMTg3NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiUk4iOwotICAgICAgc2RmX2NvbmQgOiAiUk4gPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY4NzUsIDAuMDU3NSwgMC4wNDUsIDAuMDM4NzUsIDAuMDMyNSwgMC4wMjI1LCAwLjAxMzc1IiwgXAotICAgICAgICAgICIwLjA4LCAwLjA2ODc1LCAwLjA1NjI1LCAwLjA1LCAwLjA0Mzc1LCAwLjAzMzc1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiMC4wODYyNSwgMC4wODEyNSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1LCAwLjA0LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIjAuMDk4NzUsIDAuMDg3NSwgMC4wODEyNSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1MjUsIDAuMDUiLCBcCi0gICAgICAgICAgIjAuMTExMjUsIDAuMSwgMC4wOTM3NSwgMC4wODEyNSwgMC4wNzUsIDAuMDY1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICIwLjEyNzUsIDAuMTE2MjUsIDAuMTEsIDAuMDk3NSwgMC4wOTEyNSwgMC4wODEyNSwgMC4wNzI1IiwgXAotICAgICAgICAgICIwLjE0MjUsIDAuMTMxMjUsIDAuMTE4NzUsIDAuMTEyNSwgMC4xMDYyNSwgMC4wOTYyNSwgMC4wODc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg3NSwgMC4wNzYyNSwgMC4wNjM3NSwgMC4wNTc1LCAwLjA1MTI1LCAwLjA0MTI1LCAwLjAzMjUiLCBcCi0gICAgICAgICAgIjAuMDk4NzUsIDAuMDg3NSwgMC4wNzUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNTI1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjEwNSwgMC4xLCAwLjA4NzUsIDAuMDgxMjUsIDAuMDY4NzUsIDAuMDY1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICIwLjExNzUsIDAuMTA2MjUsIDAuMDkzNzUsIDAuMDg3NSwgMC4wODEyNSwgMC4wNzEyNSwgMC4wNjI1IiwgXAotICAgICAgICAgICIwLjEyMzc1LCAwLjExMjUsIDAuMSwgMC4wOTM3NSwgMC4wODc1LCAwLjA3NzUsIDAuMDY4NzUiLCBcCi0gICAgICAgICAgIjAuMTMzNzUsIDAuMTIyNSwgMC4xMSwgMC4xMDM3NSwgMC4wOTc1LCAwLjA4NzUsIDAuMDc4NzUiLCBcCi0gICAgICAgICAgIjAuMTQyNSwgMC4xMzEyNSwgMC4xMTg3NSwgMC4xMTI1LCAwLjEwNjI1LCAwLjA5NjI1LCAwLjA4NzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFNJKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA5MzE4ODU7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwOTI4ODY4OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDkzMTg4NTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDMzNDMsIDAuMDAzMzEyLCAwLjAwMzI5NSwgMC4wMDMyODcsIDAuMDAzMjgxLCAwLjAwMzI5NCwgMC4wMDMyOTgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDYyMjIsIDAuMDA2MjA1LCAwLjAwNjE5NCwgMC4wMDYxOTEsIDAuMDA2MTg3LCAwLjAwNjE5OCwgMC4wMDYyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlJOJlNFIjsKLSAgICAgIHNkZl9jb25kIDogIlJOX0VRXzFfQU5fU0VfRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wNDM3NSwgLTAuMDMyNSwgLTAuMDI2MjUsIC0wLjAxMzc1LCAtMC4wMDc1LCAtMC4wMDM3NSwgMC4wMDUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wNDM3NSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAwODc1LCAwIiwgXAotICAgICAgICAgICItMC4wNjEyNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDIxMjUsIC0wLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjA3Mzc1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzMzc1LCAtMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjA4LCAtMC4wNzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDQsIC0wLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wOTYyNSwgLTAuMDg1LCAtMC4wNzg3NSwgLTAuMDcyNSwgLTAuMDY2MjUsIC0wLjA1NjI1LCAtMC4wNDc1IiwgXAotICAgICAgICAgICItMC4xMDUsIC0wLjEsIC0wLjA4NzUsIC0wLjA4MTI1LCAtMC4wNzUsIC0wLjA3MTI1LCAtMC4wNjI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMCwgMC4wMTEyNSwgMC4wMjM3NSwgMC4wMzYyNSwgMC4wNDI1LCAwLjA1ODc1LCAwLjA2NzUiLCBcCi0gICAgICAgICAgIi0wLjAwNSwgMCwgMC4wMTI1LCAwLjAyNSwgMC4wMzc1LCAwLjA0NzUsIDAuMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDE3NSwgLTAuMDA2MjUsIDAuMDA2MjUsIDAuMDE4NzUsIDAuMDI1LCAwLjA0MTI1LCAwLjA1IiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDEyNSwgMCwgMC4wMDYyNSwgMC4wMTg3NSwgMC4wMjg3NSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAxODc1LCAtMC4wMTI1LCAwLCAwLjAxMjUsIDAuMDIyNSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDQsIC0wLjAyODc1LCAtMC4wMjI1LCAtMC4wMSwgMC4wMDI1LCAwLjAxMjUsIDAuMDIxMjUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMDYyNSwgMC4wMDM3NSwgMC4wMTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJSTiZTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJSTl9FUV8xX0FOX1NFX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc1LCAwLjA2Mzc1LCAwLjA1MTI1LCAwLjA0NSwgMC4wMzg3NSwgMC4wMjg3NSwgMC4wMiIsIFwKLSAgICAgICAgICAiMC4wOCwgMC4wNzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNDM3NSwgMC4wNCwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4wOTI1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA0NjI1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjEwNSwgMC4wOTM3NSwgMC4wODEyNSwgMC4wNzUsIDAuMDY4NzUsIDAuMDU4NzUsIDAuMDUiLCBcCi0gICAgICAgICAgIjAuMTE3NSwgMC4xMDYyNSwgMC4wOTM3NSwgMC4wODc1LCAwLjA4MTI1LCAwLjA3MTI1LCAwLjA2MjUiLCBcCi0gICAgICAgICAgIjAuMTMzNzUsIDAuMTIyNSwgMC4xMSwgMC4xMDM3NSwgMC4wOTEyNSwgMC4wODEyNSwgMC4wNzg3NSIsIFwKLSAgICAgICAgICAiMC4xNDI1LCAwLjEzMTI1LCAwLjExODc1LCAwLjExMjUsIDAuMTA2MjUsIDAuMDk2MjUsIDAuMDg3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0Mzc1LCAwLjAzMjUsIDAuMDIsIDAuMDA3NSwgLTAuMDA1LCAtMC4wMjEyNSwgLTAuMDMiLCBcCi0gICAgICAgICAgIjAuMDQ4NzUsIDAuMDQzNzUsIDAuMDMxMjUsIDAuMDE4NzUsIDAuMDA2MjUsIC0wLjAxLCAtMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMDYxMjUsIDAuMDUsIDAuMDM3NSwgMC4wMjUsIDAuMDEyNSwgLTAuMDAzNzUsIC0wLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMDczNzUsIDAuMDYyNSwgMC4wNSwgMC4wMzc1LCAwLjAyNSwgMC4wMDg3NSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMDgsIDAuMDY4NzUsIDAuMDU2MjUsIDAuMDQzNzUsIDAuMDMxMjUsIDAuMDE1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICIwLjA5NjI1LCAwLjA4NSwgMC4wNzI1LCAwLjA2LCAwLjA0NzUsIDAuMDMxMjUsIDAuMDE2MjUiLCBcCi0gICAgICAgICAgIjAuMTA1LCAwLjA5Mzc1LCAwLjA4MTI1LCAwLjA2ODc1LCAwLjA1NjI1LCAwLjA0LCAwLjAyNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IFNERkZSWDQgKgotICogLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoU0RGRlJYNCkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjc1NzkyNzsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBmZiAoTjMwLFFCSU5UKSB7Ci0gICAgbmV4dF9zdGF0ZSA6ICIoKFNFIFNJKSArICghU0UgRCkpIjsKLSAgICBjbG9ja2VkX29uIDogIkNLIjsKLSAgICBjbGVhciA6ICIoIVJOKSI7Ci0gIH0KLSAgcGluKENLKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2Njc3MTM7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjY3NjcyOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDY2NzcxMzsKLSAgICBjbG9jayA6IHRydWU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyNTQ0LCAwLjAwMjUxNywgMC4wMDI1MDksIDAuMDAyNTA2LCAwLjAwMjUxOCwgMC4wMDI1MzUsIDAuMDAyNTYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDY2NTUsIDAuMDA2NjMxLCAwLjAwNjYyNiwgMC4wMDY2MzUsIDAuMDA2NjYyLCAwLjAwNjcwMywgMC4wMDY3MzciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFEJlJOJiFTRSYhU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1JOX0VRXzFfQU5fU0VfRVFfMF9BTl9TSV9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMTU4NjMxLCAwLjE2ODc1MywgMC4xODE1OTgsIDAuMTkzNTkxLCAwLjIwNDM1OSwgMC4yMTkxNzIsIDAuMjMwNzMxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wOTM5MjEsIDAuMTAzODA3LCAwLjExNjA1OSwgMC4xMjc2ODEsIDAuMTM3Nzc4LCAwLjE1MTM0OSwgMC4xNjE3OTUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEQpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY5MzU2NTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2OTIwNzY7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjkzNTY1OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjkwNCwgMC4wMDI4ODksIDAuMDAyODc5LCAwLjAwMjg3NSwgMC4wMDI4NzMsIDAuMDAyODcyLCAwLjAwMjg4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA0NzY3LCAwLjAwNDc1OSwgMC4wMDQ3NTMsIDAuMDA0NzUsIDAuMDA0NzUyLCAwLjAwNDc1MywgMC4wMDQ3NjIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiUk4mIVNFIjsKLSAgICAgIHNkZl9jb25kIDogIlJOX0VRXzFfQU5fU0VfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wNTYyNSwgLTAuMDUxMjUsIC0wLjAzODc1LCAtMC4wMzI1LCAtMC4wMzI1LCAtMC4wMjI1LCAtMC4wMTM3NSIsIFwKLSAgICAgICAgICAiLTAuMDY3NSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDMzNzUsIC0wLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDczNzUsIC0wLjA2ODc1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjA0LCAtMC4wMzc1IiwgXAotICAgICAgICAgICItMC4wODYyNSwgLTAuMDgxMjUsIC0wLjA3NSwgLTAuMDY4NzUsIC0wLjA2MjUsIC0wLjA1MjUsIC0wLjA1IiwgXAotICAgICAgICAgICItMC4wOTg3NSwgLTAuMDg3NSwgLTAuMDgxMjUsIC0wLjA3NSwgLTAuMDY4NzUsIC0wLjA2NSwgLTAuMDU2MjUiLCBcCi0gICAgICAgICAgIi0wLjExNSwgLTAuMTAzNzUsIC0wLjA5NzUsIC0wLjA5MTI1LCAtMC4wODUsIC0wLjA4MTI1LCAtMC4wNzI1IiwgXAotICAgICAgICAgICItMC4xMjM3NSwgLTAuMTE4NzUsIC0wLjExMjUsIC0wLjEwNjI1LCAtMC4xLCAtMC4wOSwgLTAuMDg3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAxMjUsIC0wLjAwMTI1LCAwLjAwNSwgMC4wMTc1LCAwLjAyMzc1LCAwLjAzMzc1LCAwLjA0MjUiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTI1LCAwLCAwLjAwNjI1LCAwLjAxODc1LCAwLjAyODc1LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMTg3NSwgLTAuMDEyNSwgMCwgMC4wMDYyNSwgMC4wMTYyNSwgMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIDAsIDAuMDEsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzNzUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwMjUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA1MjUsIC0wLjA0NzUsIC0wLjAzNSwgLTAuMDI4NzUsIC0wLjAyMjUsIC0wLjAxMjUsIC0wLjAwMzc1IiwgXAotICAgICAgICAgICItMC4wNjEyNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDIxMjUsIC0wLjAxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlJOJiFTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJSTl9FUV8xX0FOX1NFX0VRXzAgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMSwgMC4wODg3NSwgMC4wNzYyNSwgMC4wNywgMC4wNjM3NSwgMC4wNTM3NSwgMC4wNDUiLCBcCi0gICAgICAgICAgIjAuMTA1LCAwLjA5Mzc1LCAwLjA4NzUsIDAuMDc1LCAwLjA2ODc1LCAwLjA1ODc1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICIwLjExNzUsIDAuMTA2MjUsIDAuMDkzNzUsIDAuMDg3NSwgMC4wODEyNSwgMC4wNzEyNSwgMC4wNjI1IiwgXAotICAgICAgICAgICIwLjEzLCAwLjExODc1LCAwLjEwNjI1LCAwLjEsIDAuMDkzNzUsIDAuMDgzNzUsIDAuMDc1IiwgXAotICAgICAgICAgICIwLjE0MjUsIDAuMTMxMjUsIDAuMTE4NzUsIDAuMTA2MjUsIDAuMSwgMC4wOSwgMC4wODc1IiwgXAotICAgICAgICAgICIwLjE1ODc1LCAwLjE0NzUsIDAuMTM1LCAwLjEyODc1LCAwLjExNjI1LCAwLjEwNjI1LCAwLjEwMzc1IiwgXAotICAgICAgICAgICIwLjE2NzUsIDAuMTU2MjUsIDAuMTUsIDAuMTM3NSwgMC4xMzEyNSwgMC4xMjEyNSwgMC4xMTg3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3NSwgMC4wNjM3NSwgMC4wNTEyNSwgMC4wMzg3NSwgMC4wMjYyNSwgMC4wMSwgMC4wMDEyNSIsIFwKLSAgICAgICAgICAiMC4wOCwgMC4wNjg3NSwgMC4wNTYyNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAyMTI1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICIwLjA5MjUsIDAuMDgxMjUsIDAuMDY4NzUsIDAuMDU2MjUsIDAuMDQzNzUsIDAuMDI3NSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4wOTg3NSwgMC4wODc1LCAwLjA3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA0LCAwLjAzMTI1IiwgXAotICAgICAgICAgICIwLjExMTI1LCAwLjEsIDAuMDg3NSwgMC4wNzUsIDAuMDYyNSwgMC4wNDYyNSwgMC4wMzc1IiwgXAotICAgICAgICAgICIwLjEyMTI1LCAwLjExNjI1LCAwLjA5NzUsIDAuMDkxMjUsIDAuMDc4NzUsIDAuMDYyNSwgMC4wNTM3NSIsIFwKLSAgICAgICAgICAiMC4xMzYyNSwgMC4xMjUsIDAuMTEyNSwgMC4xLCAwLjA4NzUsIDAuMDc3NSwgMC4wNjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihRKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDEuMDMyNTsKLSAgICBmdW5jdGlvbiA6ICJOMzAiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5vbl91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcmlzaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTQ1ODc4LCAwLjIyMzUyMiwgMC4yOTYzMDEsIDAuMzQ3ODUsIDAuNDMxMDc5LCAwLjUwMzE2MiwgMC42MDU2NDkiLCBcCi0gICAgICAgICAgIjAuMTU1OTc5LCAwLjIzMzYwOSwgMC4zMDY0NTIsIDAuMzU3OTQ4LCAwLjQ0MTE2NiwgMC41MTMyNywgMC42MTU3OTUiLCBcCi0gICAgICAgICAgIjAuMTY4NzI0LCAwLjI0NjM1MSwgMC4zMTkxOTIsIDAuMzcwNjg1LCAwLjQ1Mzg5MiwgMC41MjYxNzQsIDAuNjI5MTQ3IiwgXAotICAgICAgICAgICIwLjE4MDU2OSwgMC4yNTgxOTksIDAuMzMxMDQ0LCAwLjM4MjU1MywgMC40NjU3NTIsIDAuNTM3ODQ0LCAwLjY0MDM4NCIsIFwKLSAgICAgICAgICAiMC4xOTA5MzMsIDAuMjY4NTY3LCAwLjM0MTM0LCAwLjM5MjkzOSwgMC40NzU3MzksIDAuNTQ3NjYzLCAwLjY1MTU5NSIsIFwKLSAgICAgICAgICAiMC4yMDU4MTMsIDAuMjgzNDQ0LCAwLjM1NjE3OCwgMC40MDc3NjUsIDAuNDkwOTkyLCAwLjU2MzA5NywgMC42NjU2MDQiLCBcCi0gICAgICAgICAgIjAuMjE3MDk1LCAwLjI5NDcyMiwgMC4zNjc1MzgsIDAuNDE5MDUxLCAwLjUwMjI3NywgMC41NzQzODEsIDAuNjc3NDk1Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQwMDM1LCAwLjE4Mjg5NCwgMC4zMjg4NTIsIDAuNDM0MTU5LCAwLjYwMzQzLCAwLjc1MTU3NCwgMC45NjUyOTgiLCBcCi0gICAgICAgICAgIjAuMDQwMDA1LCAwLjE4MjgwNiwgMC4zMjg1MSwgMC40MzQxNTgsIDAuNjAyOTY0LCAwLjc1MTU5LCAwLjk2NTI5OSIsIFwKLSAgICAgICAgICAiMC4wNDAwMzgsIDAuMTgyNzk2LCAwLjMyODU3NSwgMC40MzQxNTIsIDAuNjAzNDIsIDAuNzUzNjEsIDAuOTY2NjgzIiwgXAotICAgICAgICAgICIwLjA0MDAwMSwgMC4xODI4MDQsIDAuMzI4NDkyLCAwLjQzNDE2LCAwLjYwMzE5LCAwLjc1MTY2OSwgMC45NjUyOTgiLCBcCi0gICAgICAgICAgIjAuMDQwMDQyLCAwLjE4MjgyNywgMC4zMjg1NjgsIDAuNDM0MTY0LCAwLjYwMzMsIDAuNzUzMDI1LCAwLjk2NjY3NCIsIFwKLSAgICAgICAgICAiMC4wNDAwMzEsIDAuMTgyOTQsIDAuMzI3NTgsIDAuNDM0MTU5LCAwLjYwMzMxNiwgMC43NTE1ODUsIDAuOTY1MjkiLCBcCi0gICAgICAgICAgIjAuMDQwMDAxLCAwLjE4Mjg1OCwgMC4zMjg2MDUsIDAuNDM0MTUzLCAwLjYwNDQ0NCwgMC43NTE2OTUsIDAuOTY2NjY2Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTMyNTkyLCAwLjIwODQxOSwgMC4yODI1OTIsIDAuMzM1MTEyLCAwLjQxOTUwOCwgMC40OTMxNTksIDAuNTk4NjE3IiwgXAotICAgICAgICAgICIwLjE0Mjc1MSwgMC4yMTg1NDMsIDAuMjkyNTg4LCAwLjM0NTI1MSwgMC40Mjk2NjcsIDAuNTAzMDkyLCAwLjYwODM4NSIsIFwKLSAgICAgICAgICAiMC4xNTU1NjQsIDAuMjMxMzg0LCAwLjMwNTMyOSwgMC4zNTgwNzUsIDAuNDQyNDQyLCAwLjUxNTkzNCwgMC42MjE1MzYiLCBcCi0gICAgICAgICAgIjAuMTY3NTk3LCAwLjI0MzQwOSwgMC4zMTc1MTcsIDAuMzcwMzk0LCAwLjQ1NDQ5LCAwLjUyODE1MSwgMC42MzMyNjEiLCBcCi0gICAgICAgICAgIjAuMTc4MzEsIDAuMjU0MDk2LCAwLjMyODI0MiwgMC4zODA5MiwgMC40NjUyMTUsIDAuNTM4NDQ4LCAwLjY0NDE0NyIsIFwKLSAgICAgICAgICAiMC4xOTMxNjcsIDAuMjY4OTk3LCAwLjM0MzA3MywgMC4zOTU3MzcsIDAuNDgwMDQ5LCAwLjU1MzU2MywgMC42NTg3MTIiLCBcCi0gICAgICAgICAgIjAuMjA0NzQ1LCAwLjI4MDU1OSwgMC4zNTQ2NywgMC40MDcxMTQsIDAuNDkxNDgxLCAwLjU2NDkzNiwgMC42NzAzNDkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzM3NTIsIDAuMTc5NDA2LCAwLjMyNzQ0NCwgMC40MzM1MTcsIDAuNjA0NywgMC43NTQyMTksIDAuOTY2Njg5IiwgXAotICAgICAgICAgICIwLjAzMzY0OSwgMC4xNzkyMzYsIDAuMzI3NDQsIDAuNDMzMTU0LCAwLjYwNDY5OCwgMC43NTM0OCwgMC45NjY3MzQiLCBcCi0gICAgICAgICAgIjAuMDMzNzQ1LCAwLjE3OTQwOCwgMC4zMjcyNzYsIDAuNDMzMjExLCAwLjYwNDY2NSwgMC43NTM2NDksIDAuOTY3OTI5IiwgXAotICAgICAgICAgICIwLjAzMzY1NywgMC4xNzk0MjMsIDAuMzI3NTAyLCAwLjQzMzA3NywgMC42MDQ2ODEsIDAuNzU0MjExLCAwLjk2Njg1MiIsIFwKLSAgICAgICAgICAiMC4wMzM3NjQsIDAuMTc4NDI1LCAwLjMyNzUxOCwgMC40MzI2NjksIDAuNjA0Njk2LCAwLjc1Mjc4OCwgMC45Njc3NTYiLCBcCi0gICAgICAgICAgIjAuMDMzNzI4LCAwLjE3OTM4MSwgMC4zMjc0OTUsIDAuNDMzNTMxLCAwLjYwNDY2NiwgMC43NTM3NTksIDAuOTY2MTU3IiwgXAotICAgICAgICAgICIwLjAzMzU5MSwgMC4xNzk0NDQsIDAuMzI3NTEzLCAwLjQzMzY2LCAwLjYwNDU2MSwgMC43NTI1ODIsIDAuOTY2MjMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUk4iOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGNsZWFyOwotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0NzU4NCwgMC4xMjM0ODIsIDAuMTk3Mjc1LCAwLjI1MDAwNiwgMC4zMzQyNjksIDAuNDA4MDE0LCAwLjUxMzA2OSIsIFwKLSAgICAgICAgICAiMC4wNTczOTYsIDAuMTMzMzM0LCAwLjIwNzEyNSwgMC4yNTk5NDYsIDAuMzQ0MjIyLCAwLjQxODAxOSwgMC41MjMyNjciLCBcCi0gICAgICAgICAgIjAuMDY5NzY3LCAwLjE0NTcwNiwgMC4yMTk0NywgMC4yNzIxOTgsIDAuMzU2Mzk5LCAwLjQzMDM0MSwgMC41MzU2NjQiLCBcCi0gICAgICAgICAgIjAuMDgxMTc4LCAwLjE1NzIwNCwgMC4yMzEwMDgsIDAuMjgzODE5LCAwLjM2ODA4NSwgMC40NDE4NDksIDAuNTQ3MDE4IiwgXAotICAgICAgICAgICIwLjA5MDk3MSwgMC4xNjcxOSwgMC4yNDA5MiwgMC4yOTM2MjgsIDAuMzc4MDE2LCAwLjQ1MTc2NSwgMC41NTcwNzciLCBcCi0gICAgICAgICAgIjAuMTA0MzI0LCAwLjE4MTA2NSwgMC4yNTQ4MDgsIDAuMzA3NDY3LCAwLjM5MTg1NSwgMC40NjU2MjcsIDAuNTcwODcxIiwgXAotICAgICAgICAgICIwLjExNDQ3NiwgMC4xOTE2MzIsIDAuMjY1MzcxLCAwLjMxODExNSwgMC40MDIzNzQsIDAuNDc2MTA0LCAwLjU4MTQ5OSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzMjkzNywgMC4xNzg1NTQsIDAuMzI2OTc0LCAwLjQzMzQyNiwgMC42MDQyMzgsIDAuNzUzNjY2LCAwLjk2NTkwNiIsIFwKLSAgICAgICAgICAiMC4wMzI5OTIsIDAuMTc5MzUyLCAwLjMyNjkyMSwgMC40MzM1MTMsIDAuNjA0MzQzLCAwLjc1MzY4NCwgMC45NjY0MTUiLCBcCi0gICAgICAgICAgIjAuMDMzMTc3LCAwLjE3ODg0LCAwLjMyNjkxNywgMC40MzM0OTEsIDAuNjA0MjMsIDAuNzUzNTk5LCAwLjk2NjgyMiIsIFwKLSAgICAgICAgICAiMC4wMzM4NjcsIDAuMTc5NDI5LCAwLjMyNjkyMSwgMC40MzM0NSwgMC42MDQyNDksIDAuNzUzNjkxLCAwLjk2Njc3IiwgXAotICAgICAgICAgICIwLjAzNTE2OSwgMC4xNzkyNzIsIDAuMzI3MDI0LCAwLjQzMzI5MywgMC42MDQxNTMsIDAuNzUzNjYzLCAwLjk2NjgxNCIsIFwKLSAgICAgICAgICAiMC4wMzcxNjgsIDAuMTc5OTI0LCAwLjMyNzA4OCwgMC40MzM1NzksIDAuNjA0MzE4LCAwLjc1MzYwOSwgMC45NjY4MTMiLCBcCi0gICAgICAgICAgIjAuMDM4NDc4LCAwLjE4MDUyNywgMC4zMjcxNiwgMC40MzM3NTEsIDAuNjA0MjgxLCAwLjc1MzYwNCwgMC45NjY2MTgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDgwNTQsIDAuMDA4MjIzLCAwLjAwODI0OSwgMC4wMDgyNTgsIDAuMDA4MjY1LCAwLjAwODI2OCwgMC4wMDgyNzEiLCBcCi0gICAgICAgICAgIjAuMDA4MDM0LCAwLjAwODIwNiwgMC4wMDgyMzMsIDAuMDA4MjQxLCAwLjAwODI0OCwgMC4wMDgyNTIsIDAuMDA4MjU2IiwgXAotICAgICAgICAgICIwLjAwODAzLCAwLjAwODE5OCwgMC4wMDgyMjUsIDAuMDA4MjM0LCAwLjAwODI0LCAwLjAwODI0NCwgMC4wMDgyNDYiLCBcCi0gICAgICAgICAgIjAuMDA4MDI2LCAwLjAwODE5NywgMC4wMDgyMjQsIDAuMDA4MjMyLCAwLjAwODIzOSwgMC4wMDgyNDMsIDAuMDA4MjQ3IiwgXAotICAgICAgICAgICIwLjAwODAzOSwgMC4wMDgyMDcsIDAuMDA4MjMzLCAwLjAwODI0MywgMC4wMDgyNDksIDAuMDA4MjUzLCAwLjAwODI1NSIsIFwKLSAgICAgICAgICAiMC4wMDgwNDYsIDAuMDA4MjE1LCAwLjAwODI0MiwgMC4wMDgyNSwgMC4wMDgyNTcsIDAuMDA4MjYsIDAuMDA4MjY0IiwgXAotICAgICAgICAgICIwLjAwODA1NSwgMC4wMDgyMjYsIDAuMDA4MjU0LCAwLjAwODI2MiwgMC4wMDgyNjksIDAuMDA4MjcyLCAwLjAwODI3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA4MTAyLCAwLjAwODI1NiwgMC4wMDgyNzYsIDAuMDA4MjgyLCAwLjAwODI4NywgMC4wMDgyODksIDAuMDA4MjkxIiwgXAotICAgICAgICAgICIwLjAwODA4NSwgMC4wMDgyNDEsIDAuMDA4MjYxLCAwLjAwODI2NywgMC4wMDgyNzIsIDAuMDA4Mjc1LCAwLjAwODI3NyIsIFwKLSAgICAgICAgICAiMC4wMDgwODEsIDAuMDA4MjM3LCAwLjAwODI1OCwgMC4wMDgyNjMsIDAuMDA4MjY4LCAwLjAwODI3MSwgMC4wMDgyNzMiLCBcCi0gICAgICAgICAgIjAuMDA4MDg5LCAwLjAwODI0NSwgMC4wMDgyNjYsIDAuMDA4MjcyLCAwLjAwODI3NywgMC4wMDgyNzksIDAuMDA4MjgxIiwgXAotICAgICAgICAgICIwLjAwODEwOCwgMC4wMDgyNjIsIDAuMDA4MjgyLCAwLjAwODI5LCAwLjAwODI5MywgMC4wMDgyOTcsIDAuMDA4MyIsIFwKLSAgICAgICAgICAiMC4wMDgxMTUsIDAuMDA4MjcsIDAuMDA4MjkxLCAwLjAwODI5NywgMC4wMDgzMDIsIDAuMDA4MzA1LCAwLjAwODMwNyIsIFwKLSAgICAgICAgICAiMC4wMDgxNDMsIDAuMDA4Mjk4LCAwLjAwODMyLCAwLjAwODMyNSwgMC4wMDgzMzIsIDAuMDA4MzMyLCAwLjAwODMzNyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwODkxMywgMC4wMDkwNTIsIDAuMDA5MDY5LCAwLjAwOTA3NiwgMC4wMDkwNzcsIDAuMDA5MDgyLCAwLjAwOTA4MSIsIFwKLSAgICAgICAgICAiMC4wMDg4NjksIDAuMDA5MDE1LCAwLjAwOTAzNCwgMC4wMDkwNDIsIDAuMDA5MDQ3LCAwLjAwOTA0NywgMC4wMDkwNDkiLCBcCi0gICAgICAgICAgIjAuMDA4ODI2LCAwLjAwODk4MSwgMC4wMDkwMDcsIDAuMDA5MDEyLCAwLjAwOTAxOCwgMC4wMDkwMjUsIDAuMDA5MDI3IiwgXAotICAgICAgICAgICIwLjAwODc5OSwgMC4wMDg5NTgsIDAuMDA4OTg1LCAwLjAwODk5NCwgMC4wMDkwMDIsIDAuMDA5MDA2LCAwLjAwOTAxIiwgXAotICAgICAgICAgICIwLjAwODc4NSwgMC4wMDg5NDUsIDAuMDA4OTc2LCAwLjAwODk4NiwgMC4wMDg5OTUsIDAuMDA5LCAwLjAwOTAwNSIsIFwKLSAgICAgICAgICAiMC4wMDg3OSwgMC4wMDg5MzYsIDAuMDA4OTcyLCAwLjAwODk4NCwgMC4wMDg5OTQsIDAuMDA4OTk5LCAwLjAwOTAwNCIsIFwKLSAgICAgICAgICAiMC4wMDg3OTMsIDAuMDA4OTQyLCAwLjAwODk3NywgMC4wMDg5OTEsIDAuMDA5MDAyLCAwLjAwOTAwOSwgMC4wMDkwMTQiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfcG93ZXIoc2NhbGFyKSB7Ci0gICAgICAgIHZhbHVlcygiMCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUU4pICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMS4wNDE5NjsKLSAgICBmdW5jdGlvbiA6ICJRQklOVCI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3NlbnNlIDogbm9uX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiByaXNpbmdfZWRnZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNTg2MzEsIDAuMjMxMTA3LCAwLjMwMzQ0NywgMC4zNTUxMTMsIDAuNDM3ODAzLCAwLjUxMDE1LCAwLjYxMzYxOCIsIFwKLSAgICAgICAgICAiMC4xNjg3NTMsIDAuMjQxMjY3LCAwLjMxMzU3OCwgMC4zNjUyNzYsIDAuNDQ3OTU4LCAwLjUyMDMwMywgMC42MjM2NTgiLCBcCi0gICAgICAgICAgIjAuMTgxNTk4LCAwLjI1NDA3NSwgMC4zMjY0MDMsIDAuMzc4MDk4LCAwLjQ2MDc2NiwgMC41MzMxMjQsIDAuNjM2NTU3IiwgXAotICAgICAgICAgICIwLjE5MzU5MSwgMC4yNjYwNDksIDAuMzM4Mzg0LCAwLjM5MDEsIDAuNDcyNzQ1LCAwLjU0NTA4NywgMC42NDg0NSIsIFwKLSAgICAgICAgICAiMC4yMDQzNTksIDAuMjc2Nzc1LCAwLjM0OTExLCAwLjQwMDgwNiwgMC40ODM0NzQsIDAuNTU1NjY3LCAwLjY1OTE4NSIsIFwKLSAgICAgICAgICAiMC4yMTkxNzIsIDAuMjkxNjc4LCAwLjM2NDAxMiwgMC40MTU2NzEsIDAuNDk4MzY4LCAwLjU3MDcyMywgMC42NzQxMzIiLCBcCi0gICAgICAgICAgIjAuMjMwNzMyLCAwLjMwMzI4MywgMC4zNzU2MiwgMC40MjcyMzYsIDAuNTA5OTIzLCAwLjU4MjE4OCwgMC42ODU2ODkiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzI0ODUsIDAuMTc3OTg1LCAwLjMyNzE3LCAwLjQzMzg0NSwgMC42MDQ2OTgsIDAuNzU0MDk0LCAwLjk2NzAzMiIsIFwKLSAgICAgICAgICAiMC4wMzI0NzksIDAuMTc4MDM5LCAwLjMyNzE2NywgMC40MzI5MzUsIDAuNjA0Njk2LCAwLjc1MzU5LCAwLjk2NzAzMiIsIFwKLSAgICAgICAgICAiMC4wMzI0NywgMC4xNzc5MTEsIDAuMzI2NzE0LCAwLjQzMjk0MywgMC42MDQ2NjUsIDAuNzUzNjIsIDAuOTY3NjQ5IiwgXAotICAgICAgICAgICIwLjAzMjQ4NSwgMC4xNzc5NDksIDAuMzI3MjAyLCAwLjQzMjg1MiwgMC42MDQ2ODEsIDAuNzU0MDg4LCAwLjk2NzA1MyIsIFwKLSAgICAgICAgICAiMC4wMzI1MTYsIDAuMTc3NzMxLCAwLjMyNzIwNywgMC40MzMwNjcsIDAuNjA0Njk2LCAwLjc1Mjg3NCwgMC45Njc1OTEiLCBcCi0gICAgICAgICAgIjAuMDMyNDgsIDAuMTc3OTM3LCAwLjMyNzE5MywgMC40MzM4NjcsIDAuNjA0NjY2LCAwLjc1MzY0MywgMC45NjYyMjgiLCBcCi0gICAgICAgICAgIjAuMDMyNDcsIDAuMTc3OTQ3LCAwLjMyNzIwNiwgMC40MzM2MzIsIDAuNjA0NTAxLCAwLjc1Mjc2NiwgMC45NjYxMTkiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNzQyNDUsIDAuMjQ3OTg0LCAwLjMyMTcwMSwgMC4zNzQzNzksIDAuNDU4NzI4LCAwLjUzMjQ1NSwgMC42Mzc4NTkiLCBcCi0gICAgICAgICAgIjAuMTg0MzQ2LCAwLjI1ODA3OCwgMC4zMzE3NjYsIDAuMzg0NDIsIDAuNDY4ODEzLCAwLjU0MjU0NiwgMC42NDc5NDMiLCBcCi0gICAgICAgICAgIjAuMTk3MDkzLCAwLjI3MDgzLCAwLjM0NDU2MSwgMC4zOTcyMTUsIDAuNDgxNTg5LCAwLjU1NTM1NiwgMC42NjA3MDMiLCBcCi0gICAgICAgICAgIjAuMjA4OTMzLCAwLjI4MjY2NiwgMC4zNTYzNTUsIDAuNDA5MDEsIDAuNDkzNCwgMC41NjcxMzIsIDAuNjcyNTMiLCBcCi0gICAgICAgICAgIjAuMjE5Mjk2LCAwLjI5Mjk3MiwgMC4zNjY2OTQsIDAuNDE5MzcsIDAuNTAzNzE3LCAwLjU3NzQ3MywgMC42ODI4ODMiLCBcCi0gICAgICAgICAgIjAuMjM0MTgzLCAwLjMwNzkxNywgMC4zODE1ODQsIDAuNDM0MjUxLCAwLjUxODY0NSwgMC41OTIzNzgsIDAuNjk3NzciLCBcCi0gICAgICAgICAgIjAuMjQ1NDY0LCAwLjMxOTIwMiwgMC4zOTI5MzksIDAuNDQ1NTk0LCAwLjUyOTkyNywgMC42MDM3MjEsIDAuNzA5MDc2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDMyODMsIDAuMTc4MTI1LCAwLjMyNjk5NCwgMC40MzQwNTIsIDAuNjA0MDUsIDAuNzUzMjc3LCAwLjk2NzI3OCIsIFwKLSAgICAgICAgICAiMC4wMzI4MDcsIDAuMTc4MDM2LCAwLjMyNjc5NiwgMC40MzQwMDksIDAuNjA0MDE0LCAwLjc1MzI3MSwgMC45NjcyNjkiLCBcCi0gICAgICAgICAgIjAuMDMyODEzLCAwLjE3ODEzNSwgMC4zMjY4MDgsIDAuNDM0MDIsIDAuNjA0MDQxLCAwLjc1NDYwNywgMC45NjgyNTYiLCBcCi0gICAgICAgICAgIjAuMDMyODE0LCAwLjE3ODAzNSwgMC4zMjY3OTUsIDAuNDM0MDE3LCAwLjYwMzc2MywgMC43NTMyNjIsIDAuOTY3MjgyIiwgXAotICAgICAgICAgICIwLjAzMjgyNywgMC4xNzgwMzYsIDAuMzI2ODQ2LCAwLjQzNDAzNCwgMC42MDQxMywgMC43NTQxODQsIDAuOTY4MjQzIiwgXAotICAgICAgICAgICIwLjAzMjgxMywgMC4xNzgwMiwgMC4zMjY2OSwgMC40MzQwMTQsIDAuNjA0MDEyLCAwLjc1MzI3MiwgMC45NjcxOTgiLCBcCi0gICAgICAgICAgIjAuMDMyODE5LCAwLjE3ODAzNCwgMC4zMjY4MDQsIDAuNDM0MDAyLCAwLjYwNDk0NCwgMC43NTMyNjksIDAuOTY4MjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiBwcmVzZXQ7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDczNTIsIDAuMTQ2MDczLCAwLjIxODM3MywgMC4yNzAwMzksIDAuMzUyNzE2LCAwLjQyNTEwMywgMC41Mjg0NDMiLCBcCi0gICAgICAgICAgIjAuMDgzMzgyLCAwLjE1NTk2NCwgMC4yMjgyNjIsIDAuMjc5OTM5LCAwLjM2MjYyNiwgMC40MzQ5ODgsIDAuNTM4MyIsIFwKLSAgICAgICAgICAiMC4wOTU2OSwgMC4xNjgyNjEsIDAuMjQwNTU1LCAwLjI5MjIxLCAwLjM3NDg5LCAwLjQ0NzI2OCwgMC41NTA2NTkiLCBcCi0gICAgICAgICAgIjAuMTA3MjQ5LCAwLjE3OTgwNSwgMC4yNTIxMDMsIDAuMzAzNzc3LCAwLjM4NjQ0MywgMC40NTg4MjUsIDAuNTYyMTY2IiwgXAotICAgICAgICAgICIwLjExNzA4OCwgMC4xODk0NDcsIDAuMjYxNzI5LCAwLjMxMzM4MywgMC4zOTYwODEsIDAuNDY4NDMzLCAwLjU3MTc5OSIsIFwKLSAgICAgICAgICAiMC4xMzA4MDIsIDAuMjAzMDYyLCAwLjI3NTMyMywgMC4zMjY5NzcsIDAuNDA5NjU2LCAwLjQ4MjA3MywgMC41ODUzOTciLCBcCi0gICAgICAgICAgIjAuMTQxMTk5LCAwLjIxMzM2OCwgMC4yODU2MTIsIDAuMzM3MjY4LCAwLjQxOTk1NCwgMC40OTIzMjcsIDAuNTk1NjYxIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDMyNDc0LCAwLjE3NzY4NCwgMC4zMjY2MTEsIDAuNDMzNjY2LCAwLjYwNDM1NywgMC43NTM4MTksIDAuOTY2MTkiLCBcCi0gICAgICAgICAgIjAuMDMyNDc1LCAwLjE3NzY2OSwgMC4zMjY4NjksIDAuNDMzNzE1LCAwLjYwNDQ1MywgMC43NTM4MzUsIDAuOTY2OTI1IiwgXAotICAgICAgICAgICIwLjAzMjQ2MiwgMC4xNzc2NTcsIDAuMzI2NjAzLCAwLjQzMzcwNywgMC42MDQzODMsIDAuNzUzNzc4LCAwLjk2NzE0OSIsIFwKLSAgICAgICAgICAiMC4wMzI0NzcsIDAuMTc3NjU0LCAwLjMyNjg0NCwgMC40MzM2ODEsIDAuNjA0MzI4LCAwLjc1Mzg0MywgMC45NjcxMTkiLCBcCi0gICAgICAgICAgIjAuMDMyNjY1LCAwLjE3NzY3MiwgMC4zMjY5MDgsIDAuNDMzMTg0LCAwLjYwNDMwMiwgMC43NTM4MzQsIDAuOTY3MTM1IiwgXAotICAgICAgICAgICIwLjAzMjkyNiwgMC4xNzc2ODksIDAuMzI2NjUxLCAwLjQzMzYzMywgMC42MDQ0MzIsIDAuNzUzODA2LCAwLjk2NzE0NyIsIFwKLSAgICAgICAgICAiMC4wMzI5MTQsIDAuMTc3NzE2LCAwLjMyNjkxMSwgMC40MzM1NjEsIDAuNjA0MjUzLCAwLjc1MzgsIDAuOTY3MDI2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA4MTAyLCAwLjAwODI1NiwgMC4wMDgyNzYsIDAuMDA4MjgyLCAwLjAwODI4NywgMC4wMDgyODksIDAuMDA4MjkxIiwgXAotICAgICAgICAgICIwLjAwODA4NSwgMC4wMDgyNDEsIDAuMDA4MjYxLCAwLjAwODI2NywgMC4wMDgyNzIsIDAuMDA4Mjc1LCAwLjAwODI3NyIsIFwKLSAgICAgICAgICAiMC4wMDgwODEsIDAuMDA4MjM3LCAwLjAwODI1OCwgMC4wMDgyNjMsIDAuMDA4MjY4LCAwLjAwODI3MSwgMC4wMDgyNzMiLCBcCi0gICAgICAgICAgIjAuMDA4MDg5LCAwLjAwODI0NSwgMC4wMDgyNjYsIDAuMDA4MjcyLCAwLjAwODI3NywgMC4wMDgyNzksIDAuMDA4MjgxIiwgXAotICAgICAgICAgICIwLjAwODEwOCwgMC4wMDgyNjIsIDAuMDA4MjgyLCAwLjAwODI5LCAwLjAwODI5MywgMC4wMDgyOTcsIDAuMDA4MyIsIFwKLSAgICAgICAgICAiMC4wMDgxMTUsIDAuMDA4MjcsIDAuMDA4MjkxLCAwLjAwODI5NywgMC4wMDgzMDIsIDAuMDA4MzA1LCAwLjAwODMwNyIsIFwKLSAgICAgICAgICAiMC4wMDgxNDMsIDAuMDA4Mjk4LCAwLjAwODMyLCAwLjAwODMyNSwgMC4wMDgzMzIsIDAuMDA4MzMyLCAwLjAwODMzNyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA4MDU0LCAwLjAwODIyMywgMC4wMDgyNDksIDAuMDA4MjU4LCAwLjAwODI2NSwgMC4wMDgyNjgsIDAuMDA4MjcxIiwgXAotICAgICAgICAgICIwLjAwODAzNCwgMC4wMDgyMDYsIDAuMDA4MjMzLCAwLjAwODI0MSwgMC4wMDgyNDgsIDAuMDA4MjUyLCAwLjAwODI1NiIsIFwKLSAgICAgICAgICAiMC4wMDgwMywgMC4wMDgxOTgsIDAuMDA4MjI1LCAwLjAwODIzNCwgMC4wMDgyNCwgMC4wMDgyNDQsIDAuMDA4MjQ2IiwgXAotICAgICAgICAgICIwLjAwODAyNiwgMC4wMDgxOTcsIDAuMDA4MjI0LCAwLjAwODIzMiwgMC4wMDgyMzksIDAuMDA4MjQzLCAwLjAwODI0NyIsIFwKLSAgICAgICAgICAiMC4wMDgwMzksIDAuMDA4MjA3LCAwLjAwODIzMywgMC4wMDgyNDMsIDAuMDA4MjQ5LCAwLjAwODI1MywgMC4wMDgyNTUiLCBcCi0gICAgICAgICAgIjAuMDA4MDQ2LCAwLjAwODIxNSwgMC4wMDgyNDIsIDAuMDA4MjUsIDAuMDA4MjU3LCAwLjAwODI2LCAwLjAwODI2NCIsIFwKLSAgICAgICAgICAiMC4wMDgwNTUsIDAuMDA4MjI2LCAwLjAwODI1NCwgMC4wMDgyNjIsIDAuMDA4MjY5LCAwLjAwODI3MiwgMC4wMDgyNzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDg5MTMsIDAuMDA5MDUyLCAwLjAwOTA2OSwgMC4wMDkwNzYsIDAuMDA5MDc3LCAwLjAwOTA4MiwgMC4wMDkwODEiLCBcCi0gICAgICAgICAgIjAuMDA4ODY5LCAwLjAwOTAxNSwgMC4wMDkwMzQsIDAuMDA5MDQyLCAwLjAwOTA0NywgMC4wMDkwNDcsIDAuMDA5MDQ5IiwgXAotICAgICAgICAgICIwLjAwODgyNiwgMC4wMDg5ODEsIDAuMDA5MDA3LCAwLjAwOTAxMiwgMC4wMDkwMTgsIDAuMDA5MDI1LCAwLjAwOTAyNyIsIFwKLSAgICAgICAgICAiMC4wMDg3OTksIDAuMDA4OTU4LCAwLjAwODk4NSwgMC4wMDg5OTQsIDAuMDA5MDAyLCAwLjAwOTAwNiwgMC4wMDkwMSIsIFwKLSAgICAgICAgICAiMC4wMDg3ODUsIDAuMDA4OTQ1LCAwLjAwODk3NiwgMC4wMDg5ODYsIDAuMDA4OTk1LCAwLjAwOSwgMC4wMDkwMDUiLCBcCi0gICAgICAgICAgIjAuMDA4NzksIDAuMDA4OTM2LCAwLjAwODk3MiwgMC4wMDg5ODQsIDAuMDA4OTk0LCAwLjAwODk5OSwgMC4wMDkwMDQiLCBcCi0gICAgICAgICAgIjAuMDA4NzkzLCAwLjAwODk0MiwgMC4wMDg5NzcsIDAuMDA4OTkxLCAwLjAwOTAwMiwgMC4wMDkwMDksIDAuMDA5MDE0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHNjYWxhcikgewotICAgICAgICB2YWx1ZXMoIjAiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFJOKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDIzMjAwNTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDIxNTAwNzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDIzMjAwNTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA4NzksIDAuMDAwODc5LCAwLjAwMDg3OCwgMC4wMDA4NzgsIDAuMDAwODc4LCAwLjAwMDg3OCwgMC4wMDA4NzgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA4OTIsIDAuMDAwODgyLCAwLjAwMDg4MSwgMC4wMDA4ODEsIDAuMDAwODgxLCAwLjAwMDg4MSwgMC4wMDA4ODEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUk4iOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFEJiFTRSYhU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1NFX0VRXzBfQU5fU0lfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjA5MjU5NywgMC4xMDE4OSwgMC4xMTIyMTUsIDAuMTIxNzY0LCAwLjEzMDU4NCwgMC4xNDMxMjMsIDAuMTUyODIyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogcmVjb3ZlcnlfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRCZTRSZTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fU0VfRVFfMV9BTl9TSV9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHJlY292ZXJ5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMzEyNSwgLTAuMDQyNSwgLTAuMDU1LCAtMC4wNjc1LCAtMC4wOCwgLTAuMDk2MjUsIC0wLjEwNSIsIFwKLSAgICAgICAgICAiLTAuMDM4NzUsIC0wLjA1LCAtMC4wNjI1LCAtMC4wNzUsIC0wLjA4MTI1LCAtMC4wOTc1LCAtMC4xMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDM4NzUsIC0wLjA1LCAtMC4wNjI1LCAtMC4wNzUsIC0wLjA4MTI1LCAtMC4wOTc1LCAtMC4xMTI1IiwgXAotICAgICAgICAgICItMC4wMzI1LCAtMC4wNDM3NSwgLTAuMDU2MjUsIC0wLjA2ODc1LCAtMC4wODEyNSwgLTAuMDk3NSwgLTAuMTA2MjUiLCBcCi0gICAgICAgICAgIi0wLjAyLCAtMC4wMzc1LCAtMC4wNSwgLTAuMDYyNSwgLTAuMDc1LCAtMC4wOTEyNSwgLTAuMSIsIFwKLSAgICAgICAgICAiMC4wMDI1LCAtMC4wMTUsIC0wLjAyNzUsIC0wLjA0LCAtMC4wNTI1LCAtMC4wNjg3NSwgLTAuMDgzNzUiLCBcCi0gICAgICAgICAgIjAuMDIzNzUsIDAuMDA2MjUsIC0wLjAwNjI1LCAtMC4wMTg3NSwgLTAuMDMxMjUsIC0wLjA0NzUsIC0wLjA2MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiByZW1vdmFsX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUQmU0UmU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1NFX0VRXzFfQU5fU0lfRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChyZW1vdmFsX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1LCAwLjA2MTI1LCAwLjA3Mzc1LCAwLjA4NjI1LCAwLjA5ODc1LCAwLjExNSwgMC4xMjM3NSIsIFwKLSAgICAgICAgICAiMC4wNTc1LCAwLjA2ODc1LCAwLjA4MTI1LCAwLjA5Mzc1LCAwLjEwNjI1LCAwLjExNjI1LCAwLjEzMTI1IiwgXAotICAgICAgICAgICIwLjA2Mzc1LCAwLjA3NSwgMC4wODc1LCAwLjEsIDAuMTEyNSwgMC4xMjI1LCAwLjEzNzUiLCBcCi0gICAgICAgICAgIjAuMDcsIDAuMDgxMjUsIDAuMDkzNzUsIDAuMTA2MjUsIDAuMTEyNSwgMC4xMjg3NSwgMC4xMzc1IiwgXAotICAgICAgICAgICIwLjA3NjI1LCAwLjA4NzUsIDAuMSwgMC4xMDYyNSwgMC4xMTg3NSwgMC4xMzUsIDAuMTQzNzUiLCBcCi0gICAgICAgICAgIjAuMDg1LCAwLjA5LCAwLjEwMjUsIDAuMTE1LCAwLjEyNzUsIDAuMTM3NSwgMC4xNTI1IiwgXAotICAgICAgICAgICIwLjA4ODc1LCAwLjEsIDAuMTEyNSwgMC4xMTg3NSwgMC4xMzEyNSwgMC4xNDc1LCAwLjE1NjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTRSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNjA0NjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE2MDQ2OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTYwNDQ1OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNDQ5NywgMC4wMDQ0NzQsIDAuMDA0NDgzLCAwLjAwNDQ4NiwgMC4wMDQ1MDIsIDAuMDA0NTI2LCAwLjAwNDU1MSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNTg5LCAwLjAwNTg1NSwgMC4wMDU4NTksIDAuMDA1ODU4LCAwLjAwNTg2OSwgMC4wMDU5MDcsIDAuMDA1OTQ5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlJOIjsKLSAgICAgIHNkZl9jb25kIDogIlJOID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAxODc1LCAtMC4wMTM3NSwgLTAuMDAxMjUsIDAuMDExMjUsIDAuMDE3NSwgMC4wMjc1LCAwLjAzNjI1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDE4NzUsIC0wLjAxMjUsIDAsIDAuMDA2MjUsIDAuMDE2MjUsIDAuMDI1IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLjAxLCAwLjAxODc1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDI1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMDg3NSwgMCIsIFwKLSAgICAgICAgICAiLTAuMDY1LCAtMC4wNiwgLTAuMDQ3NSwgLTAuMDM1LCAtMC4wMjg3NSwgLTAuMDE4NzUsIC0wLjAxIiwgXAotICAgICAgICAgICItMC4wNzM3NSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMjc1LCAtMC4wMTg3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAwNjI1LCAwLjAwNSwgMC4wMTEyNSwgMC4wMjM3NSwgMC4wMywgMC4wNCwgMC4wNDg3NSIsIFwKLSAgICAgICAgICAiLTAuMDE3NSwgLTAuMDA2MjUsIDAuMDA2MjUsIDAuMDEyNSwgMC4wMTg3NSwgMC4wMzUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAuMDA2MjUsIDAuMDEyNSwgMC4wMjI1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAsIDAuMDEsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMC4wMDM3NSwgMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wNDYyNSwgLTAuMDQxMjUsIC0wLjAzNSwgLTAuMDI4NzUsIC0wLjAyMjUsIC0wLjAxMjUsIC0wLjAwMzc1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMzEyNSwgLTAuMDIxMjUsIC0wLjAxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlJOIjsKLSAgICAgIHNkZl9jb25kIDogIlJOID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5Mzc1LCAwLjA4MjUsIDAuMDcsIDAuMDYzNzUsIDAuMDU3NSwgMC4wNDc1LCAwLjAzODc1IiwgXAotICAgICAgICAgICIwLjA5ODc1LCAwLjA4NzUsIDAuMDgxMjUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNTI1LCAwLjA1IiwgXAotICAgICAgICAgICIwLjExMTI1LCAwLjEsIDAuMDkzNzUsIDAuMDgxMjUsIDAuMDc1LCAwLjA2NSwgMC4wNjI1IiwgXAotICAgICAgICAgICIwLjEyMzc1LCAwLjExMjUsIDAuMSwgMC4wOTM3NSwgMC4wODc1LCAwLjA3NzUsIDAuMDY4NzUiLCBcCi0gICAgICAgICAgIjAuMTM2MjUsIDAuMTI1LCAwLjExMjUsIDAuMTA2MjUsIDAuMSwgMC4wOSwgMC4wODEyNSIsIFwKLSAgICAgICAgICAiMC4xNTI1LCAwLjE0MTI1LCAwLjEzNSwgMC4xMjI1LCAwLjExNjI1LCAwLjEwNjI1LCAwLjEwMzc1IiwgXAotICAgICAgICAgICIwLjE2NzUsIDAuMTU2MjUsIDAuMTUsIDAuMTM3NSwgMC4xMzEyNSwgMC4xMjEyNSwgMC4xMTg3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwNjI1LCAwLjA5NSwgMC4wODI1LCAwLjA3NjI1LCAwLjA3LCAwLjA2LCAwLjA1MTI1IiwgXAotICAgICAgICAgICIwLjExNzUsIDAuMTA2MjUsIDAuMDkzNzUsIDAuMDg3NSwgMC4wODEyNSwgMC4wNzEyNSwgMC4wNjI1IiwgXAotICAgICAgICAgICIwLjEyMzc1LCAwLjExODc1LCAwLjEwNjI1LCAwLjA5Mzc1LCAwLjA4NzUsIDAuMDc3NSwgMC4wNzUiLCBcCi0gICAgICAgICAgIjAuMTM2MjUsIDAuMTI1LCAwLjExMjUsIDAuMTA2MjUsIDAuMSwgMC4wOSwgMC4wODEyNSIsIFwKLSAgICAgICAgICAiMC4xNDI1LCAwLjEzMTI1LCAwLjExODc1LCAwLjExMjUsIDAuMTA2MjUsIDAuMDk2MjUsIDAuMDg3NSIsIFwKLSAgICAgICAgICAiMC4xNDYyNSwgMC4xNDEyNSwgMC4xMjg3NSwgMC4xMTYyNSwgMC4xMSwgMC4xLCAwLjA5NzUiLCBcCi0gICAgICAgICAgIjAuMTU1LCAwLjE0Mzc1LCAwLjEzMTI1LCAwLjEyNSwgMC4xMTg3NSwgMC4xMDg3NSwgMC4xIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTSSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjUzMTM5OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDY1MTUyNTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2NTMxMzk7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyNzc0LCAwLjAwMjc1OCwgMC4wMDI3NDksIDAuMDAyNzQ1LCAwLjAwMjc0NCwgMC4wMDI3NDQsIDAuMDAyNzU2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA0ODc5LCAwLjAwNDg3LCAwLjAwNDg2NCwgMC4wMDQ4NjIsIDAuMDA0ODYzLCAwLjAwNDg2NCwgMC4wMDQ4NzMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiUk4mU0UiOwotICAgICAgc2RmX2NvbmQgOiAiUk5fRVFfMV9BTl9TRV9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjA1NjI1LCAtMC4wNTEyNSwgLTAuMDM4NzUsIC0wLjAzMjUsIC0wLjAzMjUsIC0wLjAyMjUsIC0wLjAxMzc1IiwgXAotICAgICAgICAgICItMC4wNjc1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzM3NSwgLTAuMDI1IiwgXAotICAgICAgICAgICItMC4wNzM3NSwgLTAuMDY4NzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDQsIC0wLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjA4NjI1LCAtMC4wODEyNSwgLTAuMDY4NzUsIC0wLjA2ODc1LCAtMC4wNjI1LCAtMC4wNTI1LCAtMC4wNSIsIFwKLSAgICAgICAgICAiLTAuMDk4NzUsIC0wLjA4NzUsIC0wLjA4MTI1LCAtMC4wNzUsIC0wLjA2ODc1LCAtMC4wNjUsIC0wLjA1NjI1IiwgXAotICAgICAgICAgICItMC4xMTUsIC0wLjEwMzc1LCAtMC4wOTc1LCAtMC4wOTEyNSwgLTAuMDg1LCAtMC4wODEyNSwgLTAuMDcyNSIsIFwKLSAgICAgICAgICAiLTAuMTIzNzUsIC0wLjExODc1LCAtMC4xMTI1LCAtMC4xMDYyNSwgLTAuMSwgLTAuMDksIC0wLjA4NzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMTI1LCAtMC4wMDEyNSwgMC4wMDUsIDAuMDE3NSwgMC4wMjM3NSwgMC4wMzM3NSwgMC4wNDI1IiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDEyNSwgMCwgMC4wMDYyNSwgMC4wMTg3NSwgMC4wMjg3NSwgMC4wMzc1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDE4NzUsIC0wLjAxMjUsIDAsIDAuMDA2MjUsIDAuMDE2MjUsIDAuMDI1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDMxMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAwLCAwLjAxLCAwLjAxODc1IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDI1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wNTI1LCAtMC4wNDc1LCAtMC4wMzUsIC0wLjAyODc1LCAtMC4wMjI1LCAtMC4wMTI1LCAtMC4wMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDYxMjUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAyMTI1LCAtMC4wMTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJSTiZTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJSTl9FUV8xX0FOX1NFX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMSwgMC4wODg3NSwgMC4wNzYyNSwgMC4wNywgMC4wNTc1LCAwLjA1Mzc1LCAwLjA0NSIsIFwKLSAgICAgICAgICAiMC4xMDUsIDAuMDkzNzUsIDAuMDg3NSwgMC4wNzUsIDAuMDY4NzUsIDAuMDU4NzUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIjAuMTE3NSwgMC4xMDYyNSwgMC4wOTM3NSwgMC4wODc1LCAwLjA4MTI1LCAwLjA3MTI1LCAwLjA2MjUiLCBcCi0gICAgICAgICAgIjAuMTMsIDAuMTE4NzUsIDAuMTA2MjUsIDAuMSwgMC4wOTM3NSwgMC4wODM3NSwgMC4wNzUiLCBcCi0gICAgICAgICAgIjAuMTM2MjUsIDAuMTI1LCAwLjExODc1LCAwLjEwNjI1LCAwLjEsIDAuMDksIDAuMDg3NSIsIFwKLSAgICAgICAgICAiMC4xNTI1LCAwLjE0MTI1LCAwLjEzNSwgMC4xMjI1LCAwLjExNjI1LCAwLjEwNjI1LCAwLjEwMzc1IiwgXAotICAgICAgICAgICIwLjE2NzUsIDAuMTU2MjUsIDAuMTUsIDAuMTM3NSwgMC4xMzEyNSwgMC4xMjEyNSwgMC4xMTI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc1LCAwLjA2Mzc1LCAwLjA1MTI1LCAwLjAzODc1LCAwLjAyNjI1LCAwLjAxLCAwLjAwMTI1IiwgXAotICAgICAgICAgICIwLjA4LCAwLjA2ODc1LCAwLjA1NjI1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDIxMjUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMDkyNSwgMC4wODEyNSwgMC4wNjg3NSwgMC4wNTYyNSwgMC4wNDM3NSwgMC4wMjc1LCAwLjAxODc1IiwgXAotICAgICAgICAgICIwLjA5ODc1LCAwLjA4NzUsIDAuMDc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDQsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMTExMjUsIDAuMSwgMC4wODc1LCAwLjA3NSwgMC4wNjI1LCAwLjA0NjI1LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIjAuMTIxMjUsIDAuMTE2MjUsIDAuMDk3NSwgMC4wOTEyNSwgMC4wNzg3NSwgMC4wNjI1LCAwLjA1Mzc1IiwgXAotICAgICAgICAgICIwLjEzNjI1LCAwLjEyNSwgMC4xMTI1LCAwLjEsIDAuMDg3NSwgMC4wNzc1LCAwLjA2MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IFNERkZTSFFYMiAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKFNERkZTSFFYMikgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjUyMzc4NjsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBmZiAoTjMwLFFCSU5UKSB7Ci0gICAgbmV4dF9zdGF0ZSA6ICIoKFNFIFNJKSArICghU0UgRCkpIjsKLSAgICBjbG9ja2VkX29uIDogIkNLIjsKLSAgICBwcmVzZXQgOiAiKCFTTikiOwotICB9Ci0gIHBpbihDSykgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjE5NDk1OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYxOTI4OTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2MTk0OTU7Ci0gICAgY2xvY2sgOiB0cnVlOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzE5NywgMC4wMDMxNzQsIDAuMDAzMTYxLCAwLjAwMzE2MSwgMC4wMDMxNzIsIDAuMDAzMTk2LCAwLjAwMzIxNiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwODAyOSwgMC4wMDgwMDcsIDAuMDA4MDA0LCAwLjAwODAxNSwgMC4wMDgwMjksIDAuMDA4MDc0LCAwLjAwODExMiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQmIVNFJiFTSSZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fU0VfRVFfMF9BTl9TSV9FUV8wX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4xNDQ0NDIsIDAuMTU0NzEsIDAuMTY3NDY5LCAwLjE4MDA5NiwgMC4xOTE1NzgsIDAuMjA3NTI3LCAwLjIyMDQ1MyIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMTEwMjA1LCAwLjEyMDAyNiwgMC4xMzI0NTgsIDAuMTQ0NTkyLCAwLjE1NTY2OCwgMC4xNzA2ODgsIDAuMTgyMyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwOTQyMTcxOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDkzOTMwOTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA5NDIxNzE7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA0MTI1LCAwLjAwNDA5MiwgMC4wMDQwNzUsIDAuMDA0MDY2LCAwLjAwNDA2MiwgMC4wMDQwNjUsIDAuMDA0MDc0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA2MTI0LCAwLjAwNjEwNiwgMC4wMDYwOTUsIDAuMDA2MDg5LCAwLjAwNjA4OSwgMC4wMDYwOTEsIDAuMDA2MDk5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFTRSZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJTRV9FUV8wX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDQzNzUsIC0wLjAzMjUsIC0wLjAyNjI1LCAtMC4wMiwgLTAuMDEzNzUsIC0wLjAwMzc1LCAwLjAwNSIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDA4NzUsIDAiLCBcCi0gICAgICAgICAgIi0wLjA2MTI1LCAtMC4wNTYyNSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMjEyNSwgLTAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDczNzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjAzMzc1LCAtMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjA4NjI1LCAtMC4wNzUsIC0wLjA2ODc1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjA0LCAtMC4wMzc1IiwgXAotICAgICAgICAgICItMC4wOTYyNSwgLTAuMDkxMjUsIC0wLjA3ODc1LCAtMC4wNzI1LCAtMC4wNjYyNSwgLTAuMDU2MjUsIC0wLjA0NzUiLCBcCi0gICAgICAgICAgIi0wLjExMTI1LCAtMC4xLCAtMC4wOTM3NSwgLTAuMDg3NSwgLTAuMDgxMjUsIC0wLjA3MTI1LCAtMC4wNjI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDA2MjUsIDAuMDA1LCAwLjAxNzUsIDAuMDMsIDAuMDM2MjUsIDAuMDUyNSwgMC4wNjEyNSIsIFwKLSAgICAgICAgICAiLTAuMDExMjUsIDAsIDAuMDA2MjUsIDAuMDE4NzUsIDAuMDMxMjUsIDAuMDQxMjUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTI1LCAwLCAwLjAxMjUsIDAuMDE4NzUsIDAuMDM1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDE4NzUsIC0wLjAxMjUsIDAsIDAuMDEyNSwgMC4wMjI1LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAsIDAuMDE2MjUsIDAuMDI1IiwgXAotICAgICAgICAgICItMC4wNTI1LCAtMC4wNDEyNSwgLTAuMDI4NzUsIC0wLjAxNjI1LCAtMC4wMSwgMC4wMDYyNSwgMC4wMTUiLCBcCi0gICAgICAgICAgIi0wLjA2MTI1LCAtMC4wNSwgLTAuMDM3NSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDAyNSwgMC4wMDYyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIVNFJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIlNFX0VRXzBfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzUsIDAuMDYzNzUsIDAuMDUxMjUsIDAuMDQ1LCAwLjAzODc1LCAwLjAyODc1LCAwLjAyIiwgXAotICAgICAgICAgICIwLjA4LCAwLjA3NSwgMC4wNjI1LCAwLjA1LCAwLjA0Mzc1LCAwLjAzMzc1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiMC4wOTI1LCAwLjA4MTI1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDQ2MjUsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiMC4xMDUsIDAuMDkzNzUsIDAuMDgxMjUsIDAuMDc1LCAwLjA2ODc1LCAwLjA1ODc1LCAwLjA1IiwgXAotICAgICAgICAgICIwLjExMTI1LCAwLjEwNjI1LCAwLjA5Mzc1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNjUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIjAuMTI3NSwgMC4xMjI1LCAwLjExLCAwLjA5NzUsIDAuMDkxMjUsIDAuMDgxMjUsIDAuMDcyNSIsIFwKLSAgICAgICAgICAiMC4xNDI1LCAwLjEzMTI1LCAwLjExODc1LCAwLjExMjUsIDAuMTA2MjUsIDAuMDk2MjUsIDAuMDg3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2MjUsIDAuMDUxMjUsIDAuMDM4NzUsIDAuMDI2MjUsIDAuMDEzNzUsIC0wLjAwMjUsIC0wLjAxMTI1IiwgXAotICAgICAgICAgICIwLjA3Mzc1LCAwLjA2MjUsIDAuMDUsIDAuMDM3NSwgMC4wMjUsIDAuMDA4NzUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICIwLjA4LCAwLjA2ODc1LCAwLjA1NjI1LCAwLjA0Mzc1LCAwLjAzMTI1LCAwLjAxNSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiMC4wOTI1LCAwLjA4MTI1LCAwLjA2ODc1LCAwLjA1NjI1LCAwLjA0Mzc1LCAwLjAyNzUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4wOTg3NSwgMC4wODc1LCAwLjA3NSwgMC4wNjI1LCAwLjA1LCAwLjAzMzc1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiMC4xMTUsIDAuMTAzNzUsIDAuMDkxMjUsIDAuMDc4NzUsIDAuMDY2MjUsIDAuMDUsIDAuMDM1IiwgXAotICAgICAgICAgICIwLjEyMzc1LCAwLjExMjUsIDAuMSwgMC4wODc1LCAwLjA3NSwgMC4wNTg3NSwgMC4wNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjUyMjUzOwotICAgIGZ1bmN0aW9uIDogIk4zMCI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3NlbnNlIDogbm9uX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiByaXNpbmdfZWRnZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTE5MTM4LCAwLjIyMDUyMSwgMC4zMDEzODksIDAuNDAyNDcyLCAwLjUwMzU2OCwgMC42MDQ2MjcsIDAuNzA1NzAyIiwgXAotICAgICAgICAgICIwLjEyOTI1NCwgMC4yMzA2NjEsIDAuMzExNTMsIDAuNDEyNTk3LCAwLjUxMzcxMSwgMC42MTQ2NzIsIDAuNzE1ODI4IiwgXAotICAgICAgICAgICIwLjE0MjAzMywgMC4yNDM0MTMsIDAuMzI0Mjg2LCAwLjQyNTM1MiwgMC41MjY0NDMsIDAuNjI3NTExLCAwLjcyODU1MSIsIFwKLSAgICAgICAgICAiMC4xNTQ1MjMsIDAuMjU1ODk5LCAwLjMzNjc2OCwgMC40Mzc4MzYsIDAuNTM4OTQ4LCAwLjYzOTkxMSwgMC43NDEwNzQiLCBcCi0gICAgICAgICAgIjAuMTY2MDI5LCAwLjI2NzQwOCwgMC4zNDgyOCwgMC40NDkzNDcsIDAuNTUwNDQzLCAwLjY1MTUxMywgMC43NTI1MzIiLCBcCi0gICAgICAgICAgIjAuMTgxODMyLCAwLjI4MzIwOSwgMC4zNjQwMDQsIDAuNDY1MDQ0LCAwLjU2NjIxNCwgMC42NjcyNDgsIDAuNzY4Mzk5IiwgXAotICAgICAgICAgICIwLjE5NDM4NCwgMC4yOTU3NjQsIDAuMzc2NjUsIDAuNDc3Njg1LCAwLjU3ODc2OCwgMC42Nzk4ODQsIDAuNzgwODciKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDUwOTExLCAwLjI1NjU3OCwgMC40MjM0MjYsIDAuNjMxMjE1LCAwLjg0MDg5NSwgMS4wNDk1OCwgMS4yNTgzMyIsIFwKLSAgICAgICAgICAiMC4wNTA5MzIsIDAuMjU2NTY3LCAwLjQyMzQyMSwgMC42MzEyNjUsIDAuODQwODc3LCAxLjA0OTM2LCAxLjI1ODI5IiwgXAotICAgICAgICAgICIwLjA1MDkyOSwgMC4yNTY1NywgMC40MjM0MjMsIDAuNjMwODc0LCAwLjg0MDgzOSwgMS4wNDk1NCwgMS4yNTgyMyIsIFwKLSAgICAgICAgICAiMC4wNTA5MzEsIDAuMjU2NTc1LCAwLjQyMzQxMywgMC42MzA4NDcsIDAuODQwODc0LCAxLjA0ODkyLCAxLjI1ODMyIiwgXAotICAgICAgICAgICIwLjA1MDkyOSwgMC4yNTY1NjUsIDAuNDIzNDE1LCAwLjYzMDExMiwgMC44NDA4NTIsIDEuMDQ5NTYsIDEuMjU2MjIiLCBcCi0gICAgICAgICAgIjAuMDUwOTExLCAwLjI1NjU2OCwgMC40MjIwNTcsIDAuNjMxNiwgMC44MzkzMjgsIDEuMDQ5MzksIDEuMjU4MDMiLCBcCi0gICAgICAgICAgIjAuMDUwOTQyLCAwLjI1NjU5LCAwLjQyMzQyMiwgMC42MzEzMDYsIDAuODM5NDUyLCAxLjA0NzQ5LCAxLjI1ODAzIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE0NDQ0MiwgMC4yNDgzMjcsIDAuMzMxMDY4LCAwLjQzNDQ1NSwgMC41Mzc4NTYsIDAuNjQxMjU0LCAwLjc0NDY0IiwgXAotICAgICAgICAgICIwLjE1NDcxLCAwLjI1ODU5OSwgMC4zNDEzMjksIDAuNDQ0NzMyLCAwLjU0ODEzOCwgMC42NTE1MTgsIDAuNzU0OTMzIiwgXAotICAgICAgICAgICIwLjE2NzQ2OSwgMC4yNzEzNTUsIDAuMzU0MDk0LCAwLjQ1NzQ4NCwgMC41NjA4ODUsIDAuNjY0Mjg0LCAwLjc2NzY2NiIsIFwKLSAgICAgICAgICAiMC4xODAwOTYsIDAuMjgzOTg4LCAwLjM2NjcxMiwgMC40NzAxMjEsIDAuNTczNTE4LCAwLjY3NjkwNSwgMC43ODAzMjIiLCBcCi0gICAgICAgICAgIjAuMTkxNTc4LCAwLjI5NTQ2NiwgMC4zNzgyMjMsIDAuNDgxNTk4LCAwLjU4NDk5NywgMC42ODgzOTYsIDAuNzkxNzg3IiwgXAotICAgICAgICAgICIwLjIwNzUyNywgMC4zMTE0MjIsIDAuMzk0MTQsIDAuNDk3NTQ4LCAwLjYwMDk0MiwgMC43MDQzMzgsIDAuODA3NzE0IiwgXAotICAgICAgICAgICIwLjIyMDQ1MywgMC4zMjQzMzgsIDAuNDA3MDc5LCAwLjUxMDQ2NiwgMC42MTM4NywgMC43MTcyNjksIDAuODIwNjYyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1MTIwNCwgMC4yNTc1NDEsIDAuNDI0ODk5LCAwLjYzNTUyMywgMC44NDQ2NTQsIDEuMDUzNjcsIDEuMjYzMDgiLCBcCi0gICAgICAgICAgIjAuMDUxMTk4LCAwLjI1ODAyMywgMC40MjUwNDYsIDAuNjM0MzksIDAuODQ0MDY1LCAxLjA1MzQ0LCAxLjI2MzE1IiwgXAotICAgICAgICAgICIwLjA1MTIwOSwgMC4yNTc1MywgMC40MjQ3NTcsIDAuNjM1NTE2LCAwLjg0MzgxMiwgMS4wNTM2OCwgMS4yNjI5NiIsIFwKLSAgICAgICAgICAiMC4wNTExOTgsIDAuMjU3OTc1LCAwLjQyNDk1LCAwLjYzNTU1NiwgMC44NDU0NywgMS4wNTM0OCwgMS4yNjIwNSIsIFwKLSAgICAgICAgICAiMC4wNTExOTgsIDAuMjU3ODY1LCAwLjQyNDUzMywgMC42MzU1MzIsIDAuODQ0NzIyLCAxLjA1MzY2LCAxLjI2NTI3IiwgXAotICAgICAgICAgICIwLjA1MTIwNiwgMC4yNTc5MjMsIDAuNDI1NjQ2LCAwLjYzNTUzNywgMC44NDUxNzQsIDEuMDUzNTUsIDEuMjY0OCIsIFwKLSAgICAgICAgICAiMC4wNTEyMSwgMC4yNTc3MjMsIDAuNDI0ODE4LCAwLjYzNTUxMywgMC44NDM5MDcsIDEuMDUzNzYsIDEuMjY1MzEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiU04iOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHByZXNldDsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTAxNDQ4LCAwLjIwMjgzLCAwLjI4MzY4NCwgMC4zODQ3NzMsIDAuNDg1NzkyLCAwLjU4Njk1MiwgMC42ODc5MzUiLCBcCi0gICAgICAgICAgIjAuMTExMTY0LCAwLjIxMjUxNywgMC4yOTMzODUsIDAuMzk0MzQzLCAwLjQ5NTQ4NCwgMC41OTY2MjQsIDAuNjk3NjQ4IiwgXAotICAgICAgICAgICIwLjEyMzQ3NCwgMC4yMjQ4NDYsIDAuMzA1NzI0LCAwLjQwNjc4OSwgMC41MDc5MDMsIDAuNjA4OTA4LCAwLjcwOTk3OCIsIFwKLSAgICAgICAgICAiMC4xMzUwMjMsIDAuMjM2MzkzLCAwLjMxNzI3NSwgMC40MTgzMjYsIDAuNTE5NCwgMC42MjA0NTgsIDAuNzIxNTIxIiwgXAotICAgICAgICAgICIwLjE0NTY2NCwgMC4yNDcwMTQsIDAuMzI3ODg5LCAwLjQyODk1NCwgMC41MzAwMjQsIDAuNjMxMDgzLCAwLjczMjIzNCIsIFwKLSAgICAgICAgICAiMC4xNjA0MSwgMC4yNjE4ODEsIDAuMzQyNzM5LCAwLjQ0MzgwOSwgMC41NDQ4MzYsIDAuNjQ1OTkzLCAwLjc0Njk2NSIsIFwKLSAgICAgICAgICAiMC4xNzIwNDgsIDAuMjczNDU3LCAwLjM1NDMxMSwgMC40NTUzODksIDAuNTU2NDU1LCAwLjY1NzUwNSwgMC43NTg1NjQiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDUwNzczLCAwLjI1NjYyMywgMC40MjM0MDksIDAuNjMyMTE0LCAwLjg0MDczNSwgMS4wNDk2NCwgMS4yNTgxNSIsIFwKLSAgICAgICAgICAiMC4wNTA3NjQsIDAuMjU2NTQ5LCAwLjQyMzQxNCwgMC42MzEzMDksIDAuODQwNzI2LCAxLjA0OTYzLCAxLjI1Nzc0IiwgXAotICAgICAgICAgICIwLjA1MDcwOCwgMC4yNTY1MzUsIDAuNDIzNDExLCAwLjYzMTg5NywgMC44Mzk2ODksIDEuMDQ4MjIsIDEuMjU4MDgiLCBcCi0gICAgICAgICAgIjAuMDUwNzU4LCAwLjI1NjU4NiwgMC40MjM0MTQsIDAuNjMxODk3LCAwLjgzOTc0OSwgMS4wNDgyMywgMS4yNTgxMiIsIFwKLSAgICAgICAgICAiMC4wNTA3NTksIDAuMjU2NDkxLCAwLjQyMzM5OCwgMC42MzE5MDUsIDAuODQwNzYxLCAxLjA0OTIzLCAxLjI1NjczIiwgXAotICAgICAgICAgICIwLjA1MDkwMywgMC4yNTY2MzMsIDAuNDIzNDEsIDAuNjMyMDcsIDAuODM5ODEzLCAxLjA0ODI0LCAxLjI1NzY2IiwgXAotICAgICAgICAgICIwLjA1MTAxOSwgMC4yNTY1NjQsIDAuNDIzNDE3LCAwLjYzMTk1NCwgMC44NDA2MjUsIDEuMDQ4MDcsIDEuMjU2NSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDgzNDQsIDAuMDA4MzgzLCAwLjAwODM4NywgMC4wMDgzOSwgMC4wMDgzOSwgMC4wMDgzOTEsIDAuMDA4MzkiLCBcCi0gICAgICAgICAgIjAuMDA4MzE1LCAwLjAwODM1NSwgMC4wMDgzNTksIDAuMDA4MzYyLCAwLjAwODM2MywgMC4wMDgzNjMsIDAuMDA4MzYzIiwgXAotICAgICAgICAgICIwLjAwODMwMSwgMC4wMDgzNDIsIDAuMDA4MzQ4LCAwLjAwODM0OSwgMC4wMDgzNDksIDAuMDA4MzQ5LCAwLjAwODM1MiIsIFwKLSAgICAgICAgICAiMC4wMDgyOTYsIDAuMDA4MzM3LCAwLjAwODM0LCAwLjAwODM0MiwgMC4wMDgzNDMsIDAuMDA4MzQ0LCAwLjAwODM0NCIsIFwKLSAgICAgICAgICAiMC4wMDgzMDMsIDAuMDA4MzQzLCAwLjAwODM0NywgMC4wMDgzNTIsIDAuMDA4MzUsIDAuMDA4MzUxLCAwLjAwODM1MSIsIFwKLSAgICAgICAgICAiMC4wMDgzMzIsIDAuMDA4MzczLCAwLjAwODM3NywgMC4wMDgzODIsIDAuMDA4MzgxLCAwLjAwODM4NCwgMC4wMDgzODIiLCBcCi0gICAgICAgICAgIjAuMDA4MzM2LCAwLjAwODM3NiwgMC4wMDgzOCwgMC4wMDgzODQsIDAuMDA4Mzg0LCAwLjAwODM4NSwgMC4wMDgzODYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDgyMDIsIDAuMDA4Mjc1LCAwLjAwODI4NCwgMC4wMDgyODgsIDAuMDA4MjkxLCAwLjAwODI5MiwgMC4wMDgyOTMiLCBcCi0gICAgICAgICAgIjAuMDA4MTc2LCAwLjAwODI0OSwgMC4wMDgyNTcsIDAuMDA4MjYyLCAwLjAwODI2NSwgMC4wMDgyNjYsIDAuMDA4MjY3IiwgXAotICAgICAgICAgICIwLjAwODE3NCwgMC4wMDgyNDYsIDAuMDA4MjU1LCAwLjAwODI2LCAwLjAwODI2MiwgMC4wMDgyNjQsIDAuMDA4MjY0IiwgXAotICAgICAgICAgICIwLjAwODE5LCAwLjAwODI2MywgMC4wMDgyNzIsIDAuMDA4Mjc3LCAwLjAwODI3OSwgMC4wMDgyODEsIDAuMDA4MjgyIiwgXAotICAgICAgICAgICIwLjAwODIwMywgMC4wMDgyNzYsIDAuMDA4Mjg1LCAwLjAwODI4OSwgMC4wMDgyOTIsIDAuMDA4MjkzLCAwLjAwODI5NCIsIFwKLSAgICAgICAgICAiMC4wMDgyNTksIDAuMDA4MzMxLCAwLjAwODM0LCAwLjAwODM0NSwgMC4wMDgzNDcsIDAuMDA4MzQ5LCAwLjAwODM0OSIsIFwKLSAgICAgICAgICAiMC4wMDgyODksIDAuMDA4MzYzLCAwLjAwODM3MiwgMC4wMDgzNzcsIDAuMDA4Mzc5LCAwLjAwODM4MSwgMC4wMDgzODIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA5MjUyLCAwLjAwOTI5MywgMC4wMDkyOTcsIDAuMDA5MywgMC4wMDkzMDEsIDAuMDA5MzAyLCAwLjAwOTMwMiIsIFwKLSAgICAgICAgICAiMC4wMDkyMDMsIDAuMDA5MjQ1LCAwLjAwOTI1LCAwLjAwOTI1NCwgMC4wMDkyNTMsIDAuMDA5MjU2LCAwLjAwOTI1NCIsIFwKLSAgICAgICAgICAiMC4wMDkxNjgsIDAuMDA5MjEsIDAuMDA5MjE0LCAwLjAwOTIxNywgMC4wMDkyMTksIDAuMDA5MjIyLCAwLjAwOTIxOSIsIFwKLSAgICAgICAgICAiMC4wMDkxNDMsIDAuMDA5MTg1LCAwLjAwOTE5LCAwLjAwOTE5NiwgMC4wMDkxOTQsIDAuMDA5MTk4LCAwLjAwOTE5NSIsIFwKLSAgICAgICAgICAiMC4wMDkxMzEsIDAuMDA5MTc2LCAwLjAwOTE4LCAwLjAwOTE4NCwgMC4wMDkxODYsIDAuMDA5MTg3LCAwLjAwOTE4NiIsIFwKLSAgICAgICAgICAiMC4wMDkxMzksIDAuMDA5MTgzLCAwLjAwOTE4OCwgMC4wMDkxOTEsIDAuMDA5MTkyLCAwLjAwOTE5MywgMC4wMDkxOTQiLCBcCi0gICAgICAgICAgIjAuMDA5MTQxLCAwLjAwOTE4NSwgMC4wMDkxODcsIDAuMDA5MTg5LCAwLjAwOTE5MywgMC4wMDkxOTIsIDAuMDA5MTkyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHNjYWxhcikgewotICAgICAgICB2YWx1ZXMoIjAiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFNFKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE1MTc4NDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE1MTc4NDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE1MTczNzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDU4MzgsIDAuMDA1ODE4LCAwLjAwNTgxNSwgMC4wMDU4MDgsIDAuMDA1ODE3LCAwLjAwNTgzNSwgMC4wMDU4NTQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDc0NzgsIDAuMDA3NDIzLCAwLjAwNzQyMiwgMC4wMDc0MSwgMC4wMDc0MywgMC4wMDc0NjksIDAuMDA3NTE2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlNOIjsKLSAgICAgIHNkZl9jb25kIDogIlNOID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAxODc1LCAtMC4wMDc1LCAwLjAwNSwgMC4wMTc1LCAwLjAyMzc1LCAwLjA0LCAwLjA0ODc1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLjAwNjI1LCAwLjAxMjUsIDAuMDI4NzUsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDMxMjUsIC0wLjAxODc1LCAtMC4wMDYyNSwgMCwgMC4wMTYyNSwgMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLjAwMzc1LCAwLjAxODc1IiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAxMjUsIC0wLjAwMjUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA3MTI1LCAtMC4wNiwgLTAuMDQ3NSwgLTAuMDM1LCAtMC4wMjg3NSwgLTAuMDEyNSwgLTAuMDAzNzUiLCBcCi0gICAgICAgICAgIi0wLjA4LCAtMC4wNjg3NSwgLTAuMDU2MjUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMjEyNSwgLTAuMDEyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAsIDAuMDExMjUsIDAuMDIzNzUsIDAuMDM2MjUsIDAuMDQyNSwgMC4wNTg3NSwgMC4wNjc1IiwgXAotICAgICAgICAgICItMC4wMDUsIDAuMDA2MjUsIDAuMDEyNSwgMC4wMjUsIDAuMDM3NSwgMC4wNDc1LCAwLjA2MjUiLCBcCi0gICAgICAgICAgIi0wLjAxNzUsIC0wLjAwNjI1LCAwLjAwNjI1LCAwLjAxODc1LCAwLjAyNSwgMC4wNDEyNSwgMC4wNSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAxODc1LCAtMC4wMDYyNSwgMC4wMDYyNSwgMC4wMTI1LCAwLjAyODc1LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMjUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLjAwNjI1LCAwLjAyMjUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjA0NjI1LCAtMC4wMzUsIC0wLjAyODc1LCAtMC4wMTYyNSwgLTAuMDAzNzUsIDAuMDA2MjUsIDAuMDE1IiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAxMjUsIC0wLjAwMjUsIDAuMDA2MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlNOIjsKLSAgICAgIHNkZl9jb25kIDogIlNOID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3NSwgMC4wNywgMC4wNTEyNSwgMC4wMzg3NSwgMC4wMjYyNSwgMC4wMTYyNSwgMC4wMTM3NSIsIFwKLSAgICAgICAgICAiMC4wODYyNSwgMC4wNzUsIDAuMDYyNSwgMC4wNSwgMC4wMzc1LCAwLjAyNzUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMDk4NzUsIDAuMDg3NSwgMC4wNzUsIDAuMDYyNSwgMC4wNSwgMC4wNCwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4xMTEyNSwgMC4xLCAwLjA4NzUsIDAuMDc1LCAwLjA2MjUsIDAuMDUyNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4xMTc1LCAwLjEwNjI1LCAwLjA5Mzc1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNjUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIjAuMTI3NSwgMC4xMTYyNSwgMC4xMDM3NSwgMC4wOTc1LCAwLjA5MTI1LCAwLjA4MTI1LCAwLjA3MjUiLCBcCi0gICAgICAgICAgIjAuMTM2MjUsIDAuMTMxMjUsIDAuMTE4NzUsIDAuMTA2MjUsIDAuMSwgMC4wOSwgMC4wODEyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4NzUsIDAuMDc2MjUsIDAuMDYzNzUsIDAuMDU3NSwgMC4wNTEyNSwgMC4wNDEyNSwgMC4wMzI1IiwgXAotICAgICAgICAgICIwLjA5ODc1LCAwLjA4NzUsIDAuMDc1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDUyNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4xMTEyNSwgMC4xLCAwLjA4NzUsIDAuMDgxMjUsIDAuMDc1LCAwLjA2NSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiMC4xMTc1LCAwLjEwNjI1LCAwLjEsIDAuMDg3NSwgMC4wODEyNSwgMC4wNzEyNSwgMC4wNjI1IiwgXAotICAgICAgICAgICIwLjEyMzc1LCAwLjExODc1LCAwLjEwNjI1LCAwLjA5Mzc1LCAwLjA4NzUsIDAuMDc3NSwgMC4wNjg3NSIsIFwKLSAgICAgICAgICAiMC4xMzM3NSwgMC4xMjg3NSwgMC4xMTYyNSwgMC4xMDM3NSwgMC4wOTc1LCAwLjA4NzUsIDAuMDg1IiwgXAotICAgICAgICAgICIwLjE0MjUsIDAuMTMxMjUsIDAuMTI1LCAwLjExMjUsIDAuMTA2MjUsIDAuMDk2MjUsIDAuMDg3NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oU0kpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDkxODE5OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDkxNTQyODsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA5MTgxOTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDM3NDEsIDAuMDAzNzEsIDAuMDAzNjkyLCAwLjAwMzY4MywgMC4wMDM2NzUsIDAuMDAzNjgyLCAwLjAwMzY4OCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNjQ2MSwgMC4wMDY0NDMsIDAuMDA2NDMzLCAwLjAwNjQyOSwgMC4wMDY0MjcsIDAuMDA2NDMsIDAuMDA2NDQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiU0UmU04iOwotICAgICAgc2RmX2NvbmQgOiAiU0VfRVFfMV9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjA0Mzc1LCAtMC4wMzI1LCAtMC4wMjYyNSwgLTAuMDIsIC0wLjAxMzc1LCAtMC4wMDM3NSwgMC4wMDUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wNDM3NSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAwODc1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDYxMjUsIC0wLjA1NjI1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAyMTI1LCAtMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wNzM3NSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDMzNzUsIC0wLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDgsIC0wLjA3NSwgLTAuMDY4NzUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDQsIC0wLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjA5NjI1LCAtMC4wOTEyNSwgLTAuMDc4NzUsIC0wLjA3MjUsIC0wLjA2NjI1LCAtMC4wNTYyNSwgLTAuMDQ3NSIsIFwKLSAgICAgICAgICAiLTAuMTExMjUsIC0wLjEsIC0wLjA5Mzc1LCAtMC4wODc1LCAtMC4wODEyNSwgLTAuMDcxMjUsIC0wLjA2MjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMDYyNSwgMC4wMDUsIDAuMDE3NSwgMC4wMywgMC4wMzYyNSwgMC4wNTI1LCAwLjA2MTI1IiwgXAotICAgICAgICAgICItMC4wMTEyNSwgLTAuMDA2MjUsIDAuMDA2MjUsIDAuMDE4NzUsIDAuMDMxMjUsIDAuMDQxMjUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTI1LCAwLCAwLjAxMjUsIDAuMDE4NzUsIDAuMDM1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDE4NzUsIC0wLjAxMjUsIDAsIDAuMDEyNSwgMC4wMjI1LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAsIDAuMDE2MjUsIDAuMDI1IiwgXAotICAgICAgICAgICItMC4wNTI1LCAtMC4wNDEyNSwgLTAuMDI4NzUsIC0wLjAxNjI1LCAtMC4wMSwgMC4wMDYyNSwgMC4wMTUiLCBcCi0gICAgICAgICAgIi0wLjA2MTI1LCAtMC4wNSwgLTAuMDM3NSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDAyNSwgMC4wMDYyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiU0UmU04iOwotICAgICAgc2RmX2NvbmQgOiAiU0VfRVFfMV9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3NSwgMC4wNjM3NSwgMC4wNTEyNSwgMC4wNDUsIDAuMDMyNSwgMC4wMjg3NSwgMC4wMiIsIFwKLSAgICAgICAgICAiMC4wOCwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1LCAwLjA0Mzc1LCAwLjAzMzc1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiMC4wOTI1LCAwLjA4MTI1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDQ2MjUsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiMC4xMDUsIDAuMDkzNzUsIDAuMDgxMjUsIDAuMDc1LCAwLjA2ODc1LCAwLjA1ODc1LCAwLjA1IiwgXAotICAgICAgICAgICIwLjExMTI1LCAwLjEsIDAuMDkzNzUsIDAuMDgxMjUsIDAuMDc1LCAwLjA2NSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiMC4xMjc1LCAwLjExNjI1LCAwLjExLCAwLjA5NzUsIDAuMDkxMjUsIDAuMDgxMjUsIDAuMDcyNSIsIFwKLSAgICAgICAgICAiMC4xNDI1LCAwLjEzMTI1LCAwLjExODc1LCAwLjExMjUsIDAuMTA2MjUsIDAuMDk2MjUsIDAuMDg3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2MjUsIDAuMDUxMjUsIDAuMDM4NzUsIDAuMDI2MjUsIDAuMDEzNzUsIC0wLjAwMjUsIC0wLjAxMTI1IiwgXAotICAgICAgICAgICIwLjA3Mzc1LCAwLjA2MjUsIDAuMDUsIDAuMDM3NSwgMC4wMjUsIDAuMDA4NzUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICIwLjA4LCAwLjA3NSwgMC4wNTYyNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAyMTI1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICIwLjA5MjUsIDAuMDgxMjUsIDAuMDY4NzUsIDAuMDU2MjUsIDAuMDQzNzUsIDAuMDI3NSwgMC4wMTI1IiwgXAotICAgICAgICAgICIwLjEwNSwgMC4wOTM3NSwgMC4wNzUsIDAuMDYyNSwgMC4wNSwgMC4wNCwgMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMTE1LCAwLjEwMzc1LCAwLjA5MTI1LCAwLjA3ODc1LCAwLjA2NjI1LCAwLjA1LCAwLjAzNSIsIFwKLSAgICAgICAgICAiMC4xMjM3NSwgMC4xMTI1LCAwLjEsIDAuMDg3NSwgMC4wNzUsIDAuMDU4NzUsIDAuMDUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFNOKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE3MDcxMTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE1NzkzNTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE3MDcxMTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA2NTMsIDAuMDAwNjUyLCAwLjAwMDY1MiwgMC4wMDA2NTIsIDAuMDAwNjUyLCAwLjAwMDY1MSwgMC4wMDA2NTEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA2NjQsIDAuMDAwNjU2LCAwLjAwMDY1NCwgMC4wMDA2NTQsIDAuMDAwNjU0LCAwLjAwMDY1NCwgMC4wMDA2NTQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiU04iOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFEJiFTRSYhU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1NFX0VRXzBfQU5fU0lfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjEwMTQ0OCwgMC4xMTExNjQsIDAuMTIzNDczLCAwLjEzNTAyMywgMC4xNDU2NjQsIDAuMTYwNDEsIDAuMTcyMDQ4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogcmVjb3ZlcnlfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRCYhU0UmIVNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9TRV9FUV8wX0FOX1NJX0VRXzAgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQocmVjb3ZlcnlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAwNjI1LCAtMC4wMTc1LCAtMC4wMywgLTAuMDQyNSwgLTAuMDU1LCAtMC4wNzEyNSwgLTAuMDg2MjUiLCBcCi0gICAgICAgICAgIjAuMDA1LCAtMC4wMDYyNSwgLTAuMDE4NzUsIC0wLjAzNzUsIC0wLjA1LCAtMC4wNjYyNSwgLTAuMDgxMjUiLCBcCi0gICAgICAgICAgIjAuMDExMjUsIDAsIC0wLjAxMjUsIC0wLjAyNSwgLTAuMDM3NSwgLTAuMDUzNzUsIC0wLjA2ODc1IiwgXAotICAgICAgICAgICIwLjAyMzc1LCAwLjAxMjUsIDAsIC0wLjAxMjUsIC0wLjAyNSwgLTAuMDQ3NSwgLTAuMDU2MjUiLCBcCi0gICAgICAgICAgIjAuMDM2MjUsIDAuMDI1LCAwLjAwNjI1LCAtMC4wMDYyNSwgLTAuMDE4NzUsIC0wLjAzNSwgLTAuMDUiLCBcCi0gICAgICAgICAgIjAuMDUyNSwgMC4wNDEyNSwgMC4wMjI1LCAwLjAxLCAtMC4wMDI1LCAtMC4wMTg3NSwgLTAuMDMzNzUiLCBcCi0gICAgICAgICAgIjAuMDYxMjUsIDAuMDUsIDAuMDM3NSwgMC4wMjUsIDAuMDEyNSwgLTAuMDAzNzUsIC0wLjAxODc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogcmVtb3ZhbF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEJiFTRSYhU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1NFX0VRXzBfQU5fU0lfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChyZW1vdmFsX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0Mzc1LCAwLjA1NSwgMC4wNjc1LCAwLjA4LCAwLjA5MjUsIDAuMTA4NzUsIDAuMTIzNzUiLCBcCi0gICAgICAgICAgIjAuMDM4NzUsIDAuMDUsIDAuMDYyNSwgMC4wNzUsIDAuMDgxMjUsIDAuMDk3NSwgMC4xMTI1IiwgXAotICAgICAgICAgICIwLjAyNjI1LCAwLjAzNzUsIDAuMDUsIDAuMDYyNSwgMC4wNzUsIDAuMDkxMjUsIDAuMSIsIFwKLSAgICAgICAgICAiMC4wMiwgMC4wMjUsIDAuMDM3NSwgMC4wNSwgMC4wNjI1LCAwLjA3ODc1LCAwLjA5Mzc1IiwgXAotICAgICAgICAgICIwLjAwNzUsIDAuMDE4NzUsIDAuMDMxMjUsIDAuMDQzNzUsIDAuMDU2MjUsIDAuMDcyNSwgMC4wODEyNSIsIFwKLSAgICAgICAgICAiLTAuMDAyNSwgMC4wMDI1LCAwLjAxNSwgMC4wMjc1LCAwLjA0LCAwLjA1NjI1LCAwLjA3MTI1IiwgXAotICAgICAgICAgICItMC4wMTc1LCAtMC4wMDYyNSwgMC4wMDYyNSwgMC4wMTg3NSwgMC4wMzEyNSwgMC4wNDc1LCAwLjA2MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogU0RGRlNSWDIgKgotICogLS0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKFNERkZTUlgyKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuNTY2ODg4OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIGZmIChOMzUsUUJJTlQpIHsKLSAgICBuZXh0X3N0YXRlIDogIigoU0UgU0kpICsgKCFTRSBEKSkiOwotICAgIGNsb2NrZWRfb24gOiAiQ0siOwotICAgIGNsZWFyIDogIighUk4pIjsKLSAgICBwcmVzZXQgOiAiKCFTTikiOwotICAgIGNsZWFyX3ByZXNldF92YXIxIDogSDsKLSAgICBjbGVhcl9wcmVzZXRfdmFyMiA6IEw7Ci0gIH0KLSAgcGluKENLKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2MzA2Mzk7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjMwNDMzOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDYzMDYzOTsKLSAgICBjbG9jayA6IHRydWU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzMDc0LCAwLjAwMzA0OSwgMC4wMDMwMzksIDAuMDAzMDM1LCAwLjAwMzA0MywgMC4wMDMwNjYsIDAuMDAzMDg4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA3NjQ3LCAwLjAwNzYyMSwgMC4wMDc2MTMsIDAuMDA3NjMsIDAuMDA3NjM5LCAwLjAwNzY3NCwgMC4wMDc3MTIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFEJlJOJiFTRSYhU0kmU04iOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1JOX0VRXzFfQU5fU0VfRVFfMF9BTl9TSV9FUV8wX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4xNzg1NTcsIDAuMTg4Njg0LCAwLjIwMTQwMiwgMC4yMTM3MjEsIDAuMjI0OTExLCAwLjI0MDMwOCwgMC4yNTIzNzkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjEyMDQ3NywgMC4xMzAzODUsIDAuMTQyNzExLCAwLjE1NDQ1OSwgMC4xNjUwOTEsIDAuMTc5NDIyLCAwLjE5MDM2OCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjIzNTI3OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYyMjA4MjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2MjM1Mjc7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzMzksIDAuMDAzMzc0LCAwLjAwMzM2NSwgMC4wMDMzNTksIDAuMDAzMzU3LCAwLjAwMzM1NSwgMC4wMDMzNiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNTExOSwgMC4wMDUxMSwgMC4wMDUxMDQsIDAuMDA1MTAxLCAwLjAwNTA5OSwgMC4wMDUwOTksIDAuMDA1MTAzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlJOJiFTRSZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJSTl9FUV8xX0FOX1NFX0VRXzBfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wNTYyNSwgLTAuMDUxMjUsIC0wLjA0NSwgLTAuMDM4NzUsIC0wLjAzMjUsIC0wLjAyMjUsIC0wLjAxMzc1IiwgXAotICAgICAgICAgICItMC4wNjc1LCAtMC4wNjI1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzMzc1LCAtMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjA4LCAtMC4wNjg3NSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNCwgLTAuMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDg2MjUsIC0wLjA4MTI1LCAtMC4wNzUsIC0wLjA2ODc1LCAtMC4wNjI1LCAtMC4wNTI1LCAtMC4wNSIsIFwKLSAgICAgICAgICAiLTAuMDk4NzUsIC0wLjA5Mzc1LCAtMC4wODc1LCAtMC4wNzUsIC0wLjA3NSwgLTAuMDY1LCAtMC4wNTYyNSIsIFwKLSAgICAgICAgICAiLTAuMTE1LCAtMC4xMSwgLTAuMTAzNzUsIC0wLjA5MTI1LCAtMC4wOTEyNSwgLTAuMDgxMjUsIC0wLjA3MjUiLCBcCi0gICAgICAgICAgIi0wLjEzLCAtMC4xMTg3NSwgLTAuMTEyNSwgLTAuMTA2MjUsIC0wLjEsIC0wLjA5LCAtMC4wODc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDE4NzUsIC0wLjAwNzUsIC0wLjAwMTI1LCAwLjAxMTI1LCAwLjAyMzc1LCAwLjAzMzc1LCAwLjA0MjUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAuMDA2MjUsIDAuMDEyNSwgMC4wMjI1LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMDYyNSwgMCwgMC4wMTYyNSwgMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLjAwMzc1LCAwLjAxODc1IiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMDI1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wNjUsIC0wLjA2LCAtMC4wNDc1LCAtMC4wMzUsIC0wLjAyODc1LCAtMC4wMTg3NSwgLTAuMDAzNzUiLCBcCi0gICAgICAgICAgIi0wLjA3Mzc1LCAtMC4wNjg3NSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wMzc1LCAtMC4wMjc1LCAtMC4wMTg3NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiUk4mIVNFJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIlJOX0VRXzFfQU5fU0VfRVFfMF9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEzMTI1LCAwLjExMzc1LCAwLjEwMTI1LCAwLjA4ODc1LCAwLjA4MjUsIDAuMDY2MjUsIDAuMDU3NSIsIFwKLSAgICAgICAgICAiMC4xMzYyNSwgMC4xMjUsIDAuMTEyNSwgMC4xLCAwLjA4NzUsIDAuMDc3NSwgMC4wNjg3NSIsIFwKLSAgICAgICAgICAiMC4xNDg3NSwgMC4xMzc1LCAwLjEyNSwgMC4xMTI1LCAwLjEsIDAuMDgzNzUsIDAuMDc1IiwgXAotICAgICAgICAgICIwLjE2MTI1LCAwLjE1LCAwLjEzMTI1LCAwLjExODc1LCAwLjExMjUsIDAuMDk2MjUsIDAuMDg3NSIsIFwKLSAgICAgICAgICAiMC4xNjc1LCAwLjE1NjI1LCAwLjE0Mzc1LCAwLjEzMTI1LCAwLjExODc1LCAwLjEwODc1LCAwLjEiLCBcCi0gICAgICAgICAgIjAuMTgzNzUsIDAuMTcyNSwgMC4xNiwgMC4xNDc1LCAwLjEzNSwgMC4xMjUsIDAuMTE2MjUiLCBcCi0gICAgICAgICAgIjAuMTk4NzUsIDAuMTg3NSwgMC4xNzUsIDAuMTYyNSwgMC4xNSwgMC4xNCwgMC4xMzEyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEsIDAuMDg4NzUsIDAuMDc2MjUsIDAuMDYzNzUsIDAuMDUxMjUsIDAuMDM1LCAwLjAyNjI1IiwgXAotICAgICAgICAgICIwLjExMTI1LCAwLjEsIDAuMDg3NSwgMC4wNzUsIDAuMDYyNSwgMC4wNDYyNSwgMC4wMzc1IiwgXAotICAgICAgICAgICIwLjExNzUsIDAuMTA2MjUsIDAuMDkzNzUsIDAuMDgxMjUsIDAuMDY4NzUsIDAuMDU4NzUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMTMsIDAuMTE4NzUsIDAuMTA2MjUsIDAuMDkzNzUsIDAuMDgxMjUsIDAuMDY1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICIwLjE0MjUsIDAuMTMxMjUsIDAuMTEyNSwgMC4xLCAwLjA4NzUsIDAuMDc3NSwgMC4wNjI1IiwgXAotICAgICAgICAgICIwLjE1MjUsIDAuMTQxMjUsIDAuMTI4NzUsIDAuMTE2MjUsIDAuMTAzNzUsIDAuMDg3NSwgMC4wNzg3NSIsIFwKLSAgICAgICAgICAiMC4xNjc1LCAwLjE1NjI1LCAwLjE0Mzc1LCAwLjEyNSwgMC4xMTg3NSwgMC4xMDI1LCAwLjA4NzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFEpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC41MjQxMzk7Ci0gICAgZnVuY3Rpb24gOiAiTjM1IjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBub25fdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJpc2luZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNDUxNDQsIDAuMjQ4MTM5LCAwLjMzMDIyNiwgMC40MzE4MjQsIDAuNTM0NTU2LCAwLjYzNjQ4MywgMC43Mzg2OTYiLCBcCi0gICAgICAgICAgIjAuMTU1MjIsIDAuMjU4MjEsIDAuMzQwMzQ1LCAwLjQ0MTYwMiwgMC41NDM4MDMsIDAuNjQ2NTUsIDAuNzQ4ODE1IiwgXAotICAgICAgICAgICIwLjE2Nzc3NCwgMC4yNzA3NiwgMC4zNTI5MTMsIDAuNDU0NzE4LCAwLjU1NjMzMywgMC42NTg4NjcsIDAuNzYxMzgyIiwgXAotICAgICAgICAgICIwLjE3OTkyNywgMC4yODI5MTYsIDAuMzY1MDYsIDAuNDY2ODYxLCAwLjU2ODQ4NCwgMC42NzExMDMsIDAuNzczNTEiLCBcCi0gICAgICAgICAgIjAuMTkxMDA2LCAwLjI5NDA4OCwgMC4zNzYxNywgMC40Nzc5NywgMC41Nzk2NzEsIDAuNjgyMDE2LCAwLjc4MzYzMyIsIFwKLSAgICAgICAgICAiMC4yMDYzNjMsIDAuMzA5NSwgMC4zOTEyMTgsIDAuNDkzMzQ1LCAwLjU5NDgyMSwgMC42OTcwNjcsIDAuNzk5OTM4IiwgXAotICAgICAgICAgICIwLjIxODMzOCwgMC4zMjEzMTYsIDAuNDAzNTIsIDAuNTA1MjczLCAwLjYwNjkxLCAwLjcwOTE2MiwgMC44MTE1NzMiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU0NzM2LCAwLjI1OTQ5MiwgMC40MjcyNjcsIDAuNjM3NDQxLCAwLjg0NjI2MiwgMS4wNTg5NSwgMS4yNjYzOSIsIFwKLSAgICAgICAgICAiMC4wNTQ3OTIsIDAuMjU5NTU4LCAwLjQyNzI3OSwgMC42MzYyMzIsIDAuODQ2OTI3LCAxLjA1ODkyLCAxLjI2NjgiLCBcCi0gICAgICAgICAgIjAuMDU0NzUzLCAwLjI2MDE4OSwgMC40MjcyODEsIDAuNjM3ODY5LCAwLjg0NzAyOSwgMS4wNTg5MywgMS4yNjY5MSIsIFwKLSAgICAgICAgICAiMC4wNTQ3NzUsIDAuMjU5NTczLCAwLjQyNzI3OSwgMC42Mzc4NjcsIDAuODQ3MDYyLCAxLjA1ODkxLCAxLjI2Njc3IiwgXAotICAgICAgICAgICIwLjA1NDc1NCwgMC4yNjA0MzQsIDAuNDI3Mjg2LCAwLjYzNzkwMywgMC44NDY2MTEsIDEuMDU3MDIsIDEuMjY3NCIsIFwKLSAgICAgICAgICAiMC4wNTQ3ODYsIDAuMjYwNDI1LCAwLjQyNjc5MiwgMC42Mzc5MzcsIDAuODQ2NzU5LCAxLjA1NjYxLCAxLjI2NjgyIiwgXAotICAgICAgICAgICIwLjA1NDcxNiwgMC4yNjAyNDksIDAuNDI2NTg4LCAwLjYzNzg0NSwgMC44NDcwMDQsIDEuMDU2OSwgMS4yNjkxMiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNTY2NTIsIDAuMjYxNzM1LCAwLjM0NDQ0NiwgMC40NDgyNTMsIDAuNTUyMTYyLCAwLjY1NjE2NiwgMC43NTk2MjUiLCBcCi0gICAgICAgICAgIjAuMTY2NzgzLCAwLjI3MTg3NiwgMC4zNTQ2OTksIDAuNDU4NzU2LCAwLjU2MjY1MSwgMC42NjYyNjYsIDAuNzY5ODc3IiwgXAotICAgICAgICAgICIwLjE3OTUwMSwgMC4yODQ2NywgMC4zNjc0MDcsIDAuNDcxNTk5LCAwLjU3NTMyMiwgMC42NzkwMjIsIDAuNzgyNzA2IiwgXAotICAgICAgICAgICIwLjE5MTgyNiwgMC4yOTY4NTIsIDAuMzc5NzY3LCAwLjQ4Mzg2NywgMC41ODc4MDEsIDAuNjkxMzA1LCAwLjc5NDgzNCIsIFwKLSAgICAgICAgICAiMC4yMDMwMDksIDAuMzA4MDE5LCAwLjM5MDkzNiwgMC40OTQ1NzMsIDAuNTk4ODQ5LCAwLjcwMjQ5NCwgMC44MDYxMTQiLCBcCi0gICAgICAgICAgIjAuMjE4NDA4LCAwLjMyMzQ3LCAwLjQwNjMyLCAwLjUxMDM1MiwgMC42MTQyMTksIDAuNzE3ODg5LCAwLjgyMTQyNSIsIFwKLSAgICAgICAgICAiMC4yMzA0ODEsIDAuMzM1NTA0LCAwLjQxODI5MywgMC41MjIyMzcsIDAuNjI2MzIxLCAwLjcyOTk3NSwgMC44MzM2MjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU0MzE1LCAwLjI1OTU4MywgMC40MjU2MTMsIDAuNjM2NzUxLCAwLjg0Njg3OSwgMS4wNTg1MywgMS4yNjcyOCIsIFwKLSAgICAgICAgICAiMC4wNTQxNzYsIDAuMjU5OTI4LCAwLjQyNjgwNywgMC42Mzc3NzQsIDAuODQ2Mjc5LCAxLjA1ODQ1LCAxLjI2ODI3IiwgXAotICAgICAgICAgICIwLjA1NDE0OSwgMC4yNTk3MjUsIDAuNDI2ODAxLCAwLjYzNjMxNywgMC44NDgzMTMsIDEuMDU4NTgsIDEuMjY4NzIiLCBcCi0gICAgICAgICAgIjAuMDU0MzU3LCAwLjI1OTk3OCwgMC40MjY4NTYsIDAuNjM3ODQzLCAwLjg0Njc2LCAxLjA1ODQ4LCAxLjI2Nzg4IiwgXAotICAgICAgICAgICIwLjA1NDI1MiwgMC4yNTkzNDcsIDAuNDI2ODMxLCAwLjYzNjkwOSwgMC44NDYzODQsIDEuMDU4NDksIDEuMjY4MzciLCBcCi0gICAgICAgICAgIjAuMDU0MTY1LCAwLjI1OTkyMywgMC40MjY3OTksIDAuNjM3NzQzLCAwLjg0ODI2NywgMS4wNTg0NSwgMS4yNjc4IiwgXAotICAgICAgICAgICIwLjA1NDAzOCwgMC4yNTk5NjcsIDAuNDI2MzU0LCAwLjYzNzM1NCwgMC44NDgzMzIsIDEuMDU4NDksIDEuMjY4NDMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUk4iOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGNsZWFyOwotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xOTY3NTMsIDAuMzAxNzU2LCAwLjM4NDczNSwgMC40ODg1NTEsIDAuNTkyNDA0LCAwLjY5NjA5MywgMC43OTk3MjYiLCBcCi0gICAgICAgICAgIjAuMjA2Njk5LCAwLjMxMTU4NywgMC4zOTQ0MzQsIDAuNDk4NjY4LCAwLjYwMjI1NywgMC43MDU5MzMsIDAuODA5NDc2IiwgXAotICAgICAgICAgICIwLjIxODgyOSwgMC4zMjM4NSwgMC40MDY4MTEsIDAuNTEwNzg5LCAwLjYxNDQxNSwgMC43MTc4MzcsIDAuODIxNzQzIiwgXAotICAgICAgICAgICIwLjIzMDA0MywgMC4zMzUwNDUsIDAuNDE4MDAxLCAwLjUyMTk3MSwgMC42MjU2MDcsIDAuNzI5MjkzLCAwLjgzMjk4OCIsIFwKLSAgICAgICAgICAiMC4yMzk3NjYsIDAuMzQ0NjU4LCAwLjQyNzYzOCwgMC41MzE3NDksIDAuNjM1MzI1LCAwLjczOTAwNiwgMC44NDI3NzciLCBcCi0gICAgICAgICAgIjAuMjUzMTEzLCAwLjM1ODA3NywgMC40NDA4MiwgMC41NDUwODgsIDAuNjQ4Njc2LCAwLjc1MjM1LCAwLjg1NTg2NiIsIFwKLSAgICAgICAgICAiMC4yNjMxNzUsIDAuMzY4MTgyLCAwLjQ1MTE3OSwgMC41NTUxMDYsIDAuNjU4NzQ1LCAwLjc2MjQyOSwgMC44NjYxMjEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU0MTk1LCAwLjI1OTU0OSwgMC40MjcyOTksIDAuNjM3OTUsIDAuODQ4MjksIDEuMDU4NTYsIDEuMjY4NzUiLCBcCi0gICAgICAgICAgIjAuMDU0Mzc1LCAwLjI1OTk4LCAwLjQyNzQ5OSwgMC42Mzc5NjYsIDAuODQ4MjkxLCAxLjA1ODU2LCAxLjI2ODc2IiwgXAotICAgICAgICAgICIwLjA1NDM0MiwgMC4yNTk3NTUsIDAuNDI3Mjk3LCAwLjYzNzk0OSwgMC44NDgyODcsIDEuMDU4NTUsIDEuMjY4NzUiLCBcCi0gICAgICAgICAgIjAuMDU0MjQ4LCAwLjI1OTUxMiwgMC40MjcyOTksIDAuNjM3OTQ1LCAwLjg0ODI3NywgMS4wNTg1NiwgMS4yNjg3NSIsIFwKLSAgICAgICAgICAiMC4wNTQ0MSwgMC4yNTk3NTYsIDAuNDI3MzI5LCAwLjYzNzkyLCAwLjg0ODI4NCwgMS4wNTg1NSwgMS4yNjg3NiIsIFwKLSAgICAgICAgICAiMC4wNTQxNDgsIDAuMjU5OTk5LCAwLjQyNzI5OCwgMC42Mzc5NDIsIDAuODQ4Mjc4LCAxLjA1ODU0LCAxLjI2ODc0IiwgXAotICAgICAgICAgICIwLjA1NDQxNSwgMC4yNTk2NzIsIDAuNDI3NDkyLCAwLjYzNzkxNSwgMC44NDgyNzMsIDEuMDU4NTIsIDEuMjY4NzEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiU04iOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHByZXNldDsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTMzODk0LCAwLjIzNjgwMSwgMC4zMTg0NTYsIDAuNDIxMDM3LCAwLjUyMjg3OCwgMC42MjQ4NzMsIDAuNzI2OTAyIiwgXAotICAgICAgICAgICIwLjE0MzUzMywgMC4yNDY2ODIsIDAuMzI3OTkyLCAwLjQzMDY2NywgMC41MzI1MTMsIDAuNjM0NTIyLCAwLjczNjU0OCIsIFwKLSAgICAgICAgICAiMC4xNTQ0ODYsIDAuMjU3NzIxLCAwLjMzOTE3OCwgMC40NDE2NDMsIDAuNTQzNTA3LCAwLjY0NTQxNSwgMC43NDc0NDQiLCBcCi0gICAgICAgICAgIjAuMTY0NDQ2LCAwLjI2NzU5OCwgMC4zNDg4NjIsIDAuNDUxNTc5LCAwLjU1MzQzNiwgMC42NTU0NDQsIDAuNzU3NDkiLCBcCi0gICAgICAgICAgIjAuMTc0MzczLCAwLjI3NzM1MiwgMC4zNTg3NjYsIDAuNDYxNTY2LCAwLjU2MzM4MywgMC42NjUzMjEsIDAuNzY3MjcyIiwgXAotICAgICAgICAgICIwLjE5MTM0LCAwLjI5NDM5MSwgMC4zNzYwMDIsIDAuNDc4MzAzLCAwLjU4MDIzLCAwLjY4MjI1NiwgMC43ODQyMTEiLCBcCi0gICAgICAgICAgIjAuMjA0NTk1LCAwLjMwNzcwOSwgMC4zODg5MjgsIDAuNDkxNTYyLCAwLjU5MzM5NiwgMC42OTU0NjUsIDAuNzk3NTE0Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1NDAxNSwgMC4yNjA0MjEsIDAuNDI3NDczLCAwLjYzNzkxLCAwLjg0ODQwMiwgMS4wNTg3OSwgMS4yNjkxNyIsIFwKLSAgICAgICAgICAiMC4wNTQxMjksIDAuMjYwMzQ3LCAwLjQyNzMzMSwgMC42Mzc5MzksIDAuODQ4Mzk3LCAxLjA1ODc5LCAxLjI2OTE4IiwgXAotICAgICAgICAgICIwLjA1NDA2LCAwLjI2MDM0MSwgMC40MjcxNjgsIDAuNjM3OTM5LCAwLjg0ODQwOCwgMS4wNTg4MywgMS4yNjkiLCBcCi0gICAgICAgICAgIjAuMDU0MTI4LCAwLjI2MDI5OCwgMC40MjczMTIsIDAuNjM3OTM5LCAwLjg0ODM5LCAxLjA1ODc3LCAxLjI2OTE1IiwgXAotICAgICAgICAgICIwLjA1NDA1NiwgMC4yNjAzNDQsIDAuNDI3MjQxLCAwLjYzNzkxMywgMC44NDg0MjMsIDEuMDU4NzcsIDEuMjY5MTUiLCBcCi0gICAgICAgICAgIjAuMDU0MDk1LCAwLjI2MDI3LCAwLjQyNzE4NSwgMC42Mzc4OTcsIDAuODQ4NDEyLCAxLjA1ODc2LCAxLjI2OTE1IiwgXAotICAgICAgICAgICIwLjA1NDExOSwgMC4yNjAzMzMsIDAuNDI3Mjc1LCAwLjYzNzkwNiwgMC44NDgzOTgsIDEuMDU4NzksIDEuMjY5MTEiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTczNDcxLCAwLjI3ODQ1MSwgMC4zNjE1NzQsIDAuNDY1NTcsIDAuNTY5MTg5LCAwLjY3Mjg5OSwgMC43NzY2MTYiLCBcCi0gICAgICAgICAgIjAuMTgyODA1LCAwLjI4Nzc3OSwgMC4zNzA4MzEsIDAuNDc0OTE5LCAwLjU3ODUzMiwgMC42ODIyMjgsIDAuNzg1ODc0IiwgXAotICAgICAgICAgICIwLjE5MzEyNSwgMC4yOTgxNTQsIDAuMzgxMTA0LCAwLjQ4NTI0LCAwLjU4ODg1NiwgMC42OTI1NDgsIDAuNzk2MjAzIiwgXAotICAgICAgICAgICIwLjIwMjc1MywgMC4zMDc3NywgMC4zOTA4MTcsIDAuNDk0ODczLCAwLjU5ODQ4NiwgMC43MDIxNzYsIDAuODA1ODUyIiwgXAotICAgICAgICAgICIwLjIxMjc3MywgMC4zMTc1MzIsIDAuNDAwNjczLCAwLjUwNDgxNCwgMC42MDg0OTksIDAuNzExOTI4LCAwLjgxNTg1NiIsIFwKLSAgICAgICAgICAiMC4yMjk0NDMsIDAuMzM0NTQ1LCAwLjQxNzI5MSwgMC41MjE0NjEsIDAuNjI1MTQsIDAuNzI4ODU0LCAwLjgzMjU1OCIsIFwKLSAgICAgICAgICAiMC4yNDM0MjksIDAuMzQ4MTk0LCAwLjQzMTM0LCAwLjUzNTQ4NCwgMC42MzkxNjgsIDAuNzQyNjEsIDAuODQ2NTIyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1NDE5MiwgMC4yNTk2NCwgMC40MjcyNzcsIDAuNjM3OTIsIDAuODQ4MzExLCAxLjA1ODU2LCAxLjI2ODczIiwgXAotICAgICAgICAgICIwLjA1NDIwNywgMC4yNTk2NCwgMC40Mjc0NjgsIDAuNjM3OTcxLCAwLjg0ODMzOCwgMS4wNTgzMiwgMS4yNjg3NCIsIFwKLSAgICAgICAgICAiMC4wNTQyODksIDAuMjU5OTg2LCAwLjQyNzI5NywgMC42Mzc5NiwgMC44NDgyODcsIDEuMDU4MzEsIDEuMjY4NzgiLCBcCi0gICAgICAgICAgIjAuMDU0NDg1LCAwLjI1OTk4OCwgMC40MjcyNTEsIDAuNjM3OTE0LCAwLjg0ODI2OSwgMS4wNTg1MiwgMS4yNjg3MSIsIFwKLSAgICAgICAgICAiMC4wNTQzNDIsIDAuMjU5NDczLCAwLjQyNzQ1NCwgMC42MzYzNjQsIDAuODQ4MzM1LCAxLjA1ODMxLCAxLjI2ODciLCBcCi0gICAgICAgICAgIjAuMDU0MzgsIDAuMjYwMDAxLCAwLjQyNzM3LCAwLjYzNzk0MSwgMC44NDgyNjQsIDEuMDU4NTgsIDEuMjY4NzkiLCBcCi0gICAgICAgICAgIjAuMDU0MjA3LCAwLjI1OTQ3NCwgMC40Mjc0NSwgMC42MzYzMjksIDAuODQ4MzM3LCAxLjA1ODA3LCAxLjI2ODciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1Njg0LCAwLjAwNTc0NSwgMC4wMDU3NTIsIDAuMDA1NzU2LCAwLjAwNTc1NywgMC4wMDU3NjEsIDAuMDA1NzU5IiwgXAotICAgICAgICAgICIwLjAwNTY3LCAwLjAwNTczLCAwLjAwNTczNywgMC4wMDU3NDIsIDAuMDA1NzQzLCAwLjAwNTc0NCwgMC4wMDU3NDUiLCBcCi0gICAgICAgICAgIjAuMDA1NjYyLCAwLjAwNTcyMiwgMC4wMDU3MjksIDAuMDA1NzMzLCAwLjAwNTczNSwgMC4wMDU3MzYsIDAuMDA1NzM3IiwgXAotICAgICAgICAgICIwLjAwNTY2MiwgMC4wMDU3MjIsIDAuMDA1NzI5LCAwLjAwNTczMywgMC4wMDU3MzUsIDAuMDA1NzM2LCAwLjAwNTczNyIsIFwKLSAgICAgICAgICAiMC4wMDU2NjksIDAuMDA1NzI5LCAwLjAwNTczNywgMC4wMDU3NCwgMC4wMDU3NDMsIDAuMDA1NzQzLCAwLjAwNTc0NSIsIFwKLSAgICAgICAgICAiMC4wMDU2NzUsIDAuMDA1NzM3LCAwLjAwNTc0NSwgMC4wMDU3NDgsIDAuMDA1NzQ4LCAwLjAwNTc0OSwgMC4wMDU3NSIsIFwKLSAgICAgICAgICAiMC4wMDU2ODcsIDAuMDA1NzQ3LCAwLjAwNTc1NSwgMC4wMDU3NiwgMC4wMDU3NjEsIDAuMDA1NzYyLCAwLjAwNTc2MiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNTU2MywgMC4wMDU2MTYsIDAuMDA1NjI0LCAwLjAwNTYyNywgMC4wMDU2MjksIDAuMDA1NjMsIDAuMDA1NjMiLCBcCi0gICAgICAgICAgIjAuMDA1NTQ5LCAwLjAwNTYwMywgMC4wMDU2MSwgMC4wMDU2MTIsIDAuMDA1NjE0LCAwLjAwNTYxNywgMC4wMDU2MTYiLCBcCi0gICAgICAgICAgIjAuMDA1NTQ2LCAwLjAwNTYsIDAuMDA1NjA2LCAwLjAwNTYxLCAwLjAwNTYxMSwgMC4wMDU2MTIsIDAuMDA1NjEzIiwgXAotICAgICAgICAgICIwLjAwNTU1MiwgMC4wMDU2MDYsIDAuMDA1NjEzLCAwLjAwNTYxNiwgMC4wMDU2MTgsIDAuMDA1NjIsIDAuMDA1NjIiLCBcCi0gICAgICAgICAgIjAuMDA1NTY0LCAwLjAwNTYxNywgMC4wMDU2MjQsIDAuMDA1NjI3LCAwLjAwNTYyOCwgMC4wMDU2MjksIDAuMDA1NjMiLCBcCi0gICAgICAgICAgIjAuMDA1NTc0LCAwLjAwNTYyOCwgMC4wMDU2MzUsIDAuMDA1NjM5LCAwLjAwNTY0LCAwLjAwNTY0LCAwLjAwNTY0MiIsIFwKLSAgICAgICAgICAiMC4wMDU1OTUsIDAuMDA1NjQ5LCAwLjAwNTY1NywgMC4wMDU2NiwgMC4wMDU2NjEsIDAuMDA1NjYyLCAwLjAwNTY2MiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDcxNTUsIDAuMDA3MTk5LCAwLjAwNzE5OCwgMC4wMDcxOTMsIDAuMDA3MTksIDAuMDA3MTg3LCAwLjAwNzE4NiIsIFwKLSAgICAgICAgICAiMC4wMDcxNDQsIDAuMDA3MTg5LCAwLjAwNzE4NiwgMC4wMDcxODIsIDAuMDA3MTc5LCAwLjAwNzE3NiwgMC4wMDcxNzUiLCBcCi0gICAgICAgICAgIjAuMDA3MTQxLCAwLjAwNzE4NywgMC4wMDcxODIsIDAuMDA3MTc5LCAwLjAwNzE3NiwgMC4wMDcxNzMsIDAuMDA3MTcyIiwgXAotICAgICAgICAgICIwLjAwNzE0NCwgMC4wMDcxODgsIDAuMDA3MTg3LCAwLjAwNzE4MiwgMC4wMDcxNzksIDAuMDA3MTc2LCAwLjAwNzE3NSIsIFwKLSAgICAgICAgICAiMC4wMDcxNDYsIDAuMDA3MTkxLCAwLjAwNzE5LCAwLjAwNzE4NiwgMC4wMDcxODIsIDAuMDA3MTc5LCAwLjAwNzE3OCIsIFwKLSAgICAgICAgICAiMC4wMDcxNTMsIDAuMDA3MTk4LCAwLjAwNzE5NywgMC4wMDcxOTMsIDAuMDA3MTg5LCAwLjAwNzE4NiwgMC4wMDcxODIiLCBcCi0gICAgICAgICAgIjAuMDA3MTU4LCAwLjAwNzIwNCwgMC4wMDcyMDMsIDAuMDA3MTk4LCAwLjAwNzE5NCwgMC4wMDcxOTEsIDAuMDA3MTg4Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3Bvd2VyKHNjYWxhcikgewotICAgICAgICB2YWx1ZXMoIjAiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2NDcyLCAwLjAwNjUyNywgMC4wMDY1MzMsIDAuMDA2NTM2LCAwLjAwNjUzNywgMC4wMDY1MzgsIDAuMDA2NTM4IiwgXAotICAgICAgICAgICIwLjAwNjQ1NywgMC4wMDY1MTMsIDAuMDA2NTE5LCAwLjAwNjUyMiwgMC4wMDY1MjQsIDAuMDA2NTI0LCAwLjAwNjUyNyIsIFwKLSAgICAgICAgICAiMC4wMDY0NTMsIDAuMDA2NTA5LCAwLjAwNjUxNSwgMC4wMDY1MTcsIDAuMDA2NTIsIDAuMDA2NTE5LCAwLjAwNjUyIiwgXAotICAgICAgICAgICIwLjAwNjQ0OSwgMC4wMDY1MDYsIDAuMDA2NTExLCAwLjAwNjUxNCwgMC4wMDY1MTUsIDAuMDA2NTE2LCAwLjAwNjUxOSIsIFwKLSAgICAgICAgICAiMC4wMDY0NDgsIDAuMDA2NTA0LCAwLjAwNjUxLCAwLjAwNjUxMiwgMC4wMDY1MTQsIDAuMDA2NTE1LCAwLjAwNjUxNiIsIFwKLSAgICAgICAgICAiMC4wMDY0NDksIDAuMDA2NTA2LCAwLjAwNjUxMywgMC4wMDY1MTYsIDAuMDA2NTE3LCAwLjAwNjUxNywgMC4wMDY1MTkiLCBcCi0gICAgICAgICAgIjAuMDA2NDU0LCAwLjAwNjUxMSwgMC4wMDY1MTgsIDAuMDA2NTIsIDAuMDA2NTIxLCAwLjAwNjUyMywgMC4wMDY1MjMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDUzODYsIDAuMDA1NDQsIDAuMDA1NDQ3LCAwLjAwNTQ1LCAwLjAwNTQ1MiwgMC4wMDU0NTIsIDAuMDA1NDUzIiwgXAotICAgICAgICAgICIwLjAwNTM3MSwgMC4wMDU0MjYsIDAuMDA1NDM1LCAwLjAwNTQzNiwgMC4wMDU0MzgsIDAuMDA1NDM4LCAwLjAwNTQ0IiwgXAotICAgICAgICAgICIwLjAwNTM2MiwgMC4wMDU0MTcsIDAuMDA1NDIzLCAwLjAwNTQyOCwgMC4wMDU0MywgMC4wMDU0MjksIDAuMDA1NDMzIiwgXAotICAgICAgICAgICIwLjAwNTM1NywgMC4wMDU0MTEsIDAuMDA1NDE5LCAwLjAwNTQyMiwgMC4wMDU0MjMsIDAuMDA1NDI0LCAwLjAwNTQyNSIsIFwKLSAgICAgICAgICAiMC4wMDUzNTIsIDAuMDA1NDA3LCAwLjAwNTQxMywgMC4wMDU0MTcsIDAuMDA1NDE5LCAwLjAwNTQyLCAwLjAwNTQyMSIsIFwKLSAgICAgICAgICAiMC4wMDUzNDUsIDAuMDA1NDAyLCAwLjAwNTQwNywgMC4wMDU0MTIsIDAuMDA1NDE0LCAwLjAwNTQxNSwgMC4wMDU0MTciLCBcCi0gICAgICAgICAgIjAuMDA1MzQxLCAwLjAwNTM5NiwgMC4wMDU0MDMsIDAuMDA1NDA2LCAwLjAwNTQwOSwgMC4wMDU0MSwgMC4wMDU0MDkiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFFOKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuNTI0MTgxOwotICAgIGZ1bmN0aW9uIDogIlFCSU5UIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBub25fdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJpc2luZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNzg1NTcsIDAuMjgwMjg5LCAwLjM2MTc1NiwgMC40NjM2OTYsIDAuNTY1NzU5LCAwLjY2Nzc4NywgMC43Njk3MTYiLCBcCi0gICAgICAgICAgIjAuMTg4Njg0LCAwLjI5MDQyLCAwLjM3MTk0OSwgMC40NzM5MjEsIDAuNTc1OTY5LCAwLjY3NzkwMSwgMC43Nzk4MTgiLCBcCi0gICAgICAgICAgIjAuMjAxNDAyLCAwLjMwMzEyOCwgMC4zODQ2NDksIDAuNDg2NjY2LCAwLjU4ODY0NiwgMC42OTA2MjgsIDAuNzkyNiIsIFwKLSAgICAgICAgICAiMC4yMTM3MjIsIDAuMzE1NDQ2LCAwLjM5Njk4MSwgMC40OTg5NzcsIDAuNjAxMDcxLCAwLjcwMjkzMSwgMC44MDQ4NTgiLCBcCi0gICAgICAgICAgIjAuMjI0OTEyLCAwLjMyNjYzNiwgMC40MDgxNzUsIDAuNTEwMDYxLCAwLjYxMjE3OCwgMC43MTQxMjgsIDAuODE2MDUxIiwgXAotICAgICAgICAgICIwLjI0MDMwOSwgMC4zNDIwNDEsIDAuNDIzNTczLCAwLjUyNTUzNCwgMC42Mjc1NjQsIDAuNzI5NTIzLCAwLjgzMTQ1IiwgXAotICAgICAgICAgICIwLjI1MjM3OSwgMC4zNTQxMDYsIDAuNDM1NTc4LCAwLjUzNzUzMiwgMC42Mzk2NDIsIDAuNzQxNTk3LCAwLjg0MzU0Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1MTM2LCAwLjI1ODc5NSwgMC40MjY1ODksIDAuNjM3NTQ4LCAwLjg0Nzk1LCAxLjA1OTc1LCAxLjI2ODcyIiwgXAotICAgICAgICAgICIwLjA1MTM2MiwgMC4yNTk1OCwgMC40MjczNTQsIDAuNjM4NTYzLCAwLjg0NzM5OCwgMS4wNTk3MSwgMS4yNzAwNyIsIFwKLSAgICAgICAgICAiMC4wNTEzNjIsIDAuMjU5MTMsIDAuNDI3MzU1LCAwLjYzNzI0NCwgMC44NDkyNDcsIDEuMDU5NzgsIDEuMjcwMyIsIFwKLSAgICAgICAgICAiMC4wNTEzNTEsIDAuMjU5NTczLCAwLjQyNzMxNCwgMC42Mzg2MjEsIDAuODQ3Njg2LCAxLjA1OTczLCAxLjI2OTQ5IiwgXAotICAgICAgICAgICIwLjA1MTMzNCwgMC4yNTkwNywgMC40MjczMzYsIDAuNjM3NTYzLCAwLjg0NzM5NiwgMS4wNTk3NCwgMS4yNzAxMiIsIFwKLSAgICAgICAgICAiMC4wNTEzNjMsIDAuMjU5NTcxLCAwLjQyNzM1OSwgMC42Mzg1MzcsIDAuODQ5MjA2LCAxLjA1OTcxLCAxLjI2OTQzIiwgXAotICAgICAgICAgICIwLjA1MTMyMywgMC4yNTk1NjksIDAuNDI2Njc0LCAwLjYzODA4MSwgMC44NDkyNjUsIDEuMDU5NzMsIDEuMjcwMTUiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTY5Njg3LCAwLjI3MzM1OCwgMC4zNTYzOTMsIDAuNDYwMDg3LCAwLjU2Mzk5OSwgMC42Njc3NywgMC43NzE2MTUiLCBcCi0gICAgICAgICAgIjAuMTc5NzY1LCAwLjI4MzQzNywgMC4zNjY0NzUsIDAuNDcwMTQ1LCAwLjU3Mzk5NiwgMC42Nzc4NDMsIDAuNzgxNzA2IiwgXAotICAgICAgICAgICIwLjE5MjMxOSwgMC4yOTU5OTEsIDAuMzc5MDMsIDAuNDgyNzY5LCAwLjU4NjU1MiwgMC42OTAzNDQsIDAuNzk0MjY1IiwgXAotICAgICAgICAgICIwLjIwNDQ3MywgMC4zMDgxNDYsIDAuMzkxMTg1LCAwLjQ5NDkxNCwgMC41OTg3MDgsIDAuNzAyNTIxLCAwLjgwNjQxMSIsIFwKLSAgICAgICAgICAiMC4yMTU1MjgsIDAuMzE5MjMyLCAwLjQwMjI2NSwgMC41MDYwMDQsIDAuNjA5Nzc4LCAwLjcxMzY0NiwgMC44MTczNjciLCBcCi0gICAgICAgICAgIjAuMjMwOTA0LCAwLjMzNDU5MiwgMC40MTc1OTUsIDAuNTIxMzYyLCAwLjYyNTAzOSwgMC43Mjg5ODYsIDAuODMyODQ0IiwgXAotICAgICAgICAgICIwLjI0Mjg4NCwgMC4zNDY1NjMsIDAuNDI5NjA3LCAwLjUzMzMzOSwgMC42MzcxMjQsIDAuNzQwOTcxLCAwLjg0NDczNiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTEzNzgsIDAuMjU4OTksIDAuNDI3NDM0LCAwLjYzNzQzNSwgMC44NDY3NzEsIDEuMDU4ODIsIDEuMjY2OTQiLCBcCi0gICAgICAgICAgIjAuMDUxNCwgMC4yNTg5ODksIDAuNDI3NDQ0LCAwLjYzNjI3LCAwLjg0NzM0MSwgMS4wNTg3OCwgMS4yNjcwMiIsIFwKLSAgICAgICAgICAiMC4wNTE0MDIsIDAuMjU5MTQ2LCAwLjQyNzQ1MywgMC42Mzc3MjcsIDAuODQ3MzY1LCAxLjA1ODYzLCAxLjI2NjkyIiwgXAotICAgICAgICAgICIwLjA1MTQwMiwgMC4yNTg5ODksIDAuNDI3NDUyLCAwLjYzNzcyNSwgMC44NDczNzEsIDEuMDU4NjcsIDEuMjY3MDMiLCBcCi0gICAgICAgICAgIjAuMDUxMzk2LCAwLjI1OTIxLCAwLjQyNzQ1NSwgMC42Mzc3NDksIDAuODQ3MjY4LCAxLjA1NzA4LCAxLjI2NzY2IiwgXAotICAgICAgICAgICIwLjA1MTM4NiwgMC4yNTkyMjQsIDAuNDI2NzAzLCAwLjYzNzc5MywgMC44NDcyMzMsIDEuMDU3MTUsIDEuMjY2OTYiLCBcCi0gICAgICAgICAgIjAuMDUxNCwgMC4yNTkxNTcsIDAuNDI2NjIxLCAwLjYzNzcsIDAuODQ3MzQ2LCAxLjA1Njk5LCAxLjI2OTA1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiBwcmVzZXQ7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIxODYzMSwgMC4zMjAzNDcsIDAuNDAxODY5LCAwLjUwMzg0MSwgMC42MDU4NzEsIDAuNzA3OTIyLCAwLjgwOTg1NyIsIFwKLSAgICAgICAgICAiMC4yMjg1NzcsIDAuMzMwMjk0LCAwLjQxMTc4MSwgMC41MTM4NjYsIDAuNjE1Nzk2LCAwLjcxNzc2MSwgMC44MTk2ODgiLCBcCi0gICAgICAgICAgIjAuMjQwNzI3LCAwLjM0MjQ0MiwgMC40MjM5NjIsIDAuNTI1OTkyLCAwLjYyNzk0MSwgMC43Mjk4NzUsIDAuODMxODU3IiwgXAotICAgICAgICAgICIwLjI1MTkxMSwgMC4zNTM2NTIsIDAuNDM1MTU5LCAwLjUzNzE4OCwgMC42MzkxMzgsIDAuNzQxMTA5LCAwLjg0MzA4NyIsIFwKLSAgICAgICAgICAiMC4yNjE2MzMsIDAuMzYzMzY3LCAwLjQ0NDg2MywgMC41NDY5MzUsIDAuNjQ4ODU5LCAwLjc1MDgyNiwgMC44NTI4NTQiLCBcCi0gICAgICAgICAgIjAuMjc0OTk1LCAwLjM3NjcyLCAwLjQ1ODE5MSwgMC41NjAyNzksIDAuNjYyMjA5LCAwLjc2NDE3MywgMC44NjYxMDUiLCBcCi0gICAgICAgICAgIjAuMjg1MDQ1LCAwLjM4Njc4NSwgMC40NjgzMDEsIDAuNTcwMzE5LCAwLjY3MjI3MSwgMC43NzQyNDEsIDAuODc2MjE3Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1MTM5NywgMC4yNTkxMDksIDAuNDI3OTIxLCAwLjYzODY5MSwgMC44NDkxODcsIDEuMDU5NzIsIDEuMjcwMjgiLCBcCi0gICAgICAgICAgIjAuMDUxMzk2LCAwLjI1OTU2MiwgMC40Mjc3NDIsIDAuNjM4NzA1LCAwLjg0OTE5MSwgMS4wNTk3MiwgMS4yNzAyOCIsIFwKLSAgICAgICAgICAiMC4wNTEzNzgsIDAuMjU5MDAzLCAwLjQyNzkyNCwgMC42Mzg2OSwgMC44NDkxODUsIDEuMDU5NzIsIDEuMjcwMjgiLCBcCi0gICAgICAgICAgIjAuMDUxMzk1LCAwLjI1ODg3MSwgMC40Mjc5MTYsIDAuNjM4Njg3LCAwLjg0OTE4MSwgMS4wNTk3MiwgMS4yNzAyOCIsIFwKLSAgICAgICAgICAiMC4wNTE0MDcsIDAuMjU5MjI4LCAwLjQyNzkxMiwgMC42Mzg2NjgsIDAuODQ5MTgzLCAxLjA1OTcyLCAxLjI3MDI4IiwgXAotICAgICAgICAgICIwLjA1MTM5NywgMC4yNTk1ODUsIDAuNDI3OTA4LCAwLjYzODY4NCwgMC44NDkxODIsIDEuMDU5NzEsIDEuMjcwMzEiLCBcCi0gICAgICAgICAgIjAuMDUxNDA5LCAwLjI1OTExOSwgMC40Mjc5MjIsIDAuNjM4NjU4LCAwLjg0OTE3OSwgMS4wNTk3LCAxLjI3MDI5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiBjbGVhcjsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTk1MzM3LCAwLjI5NzA3OCwgMC4zNzg2MSwgMC40ODA2MzIsIDAuNTgyNTYxLCAwLjY4NDUzMywgMC43ODY1MTYiLCBcCi0gICAgICAgICAgIjAuMjA0NjgzLCAwLjMwNjQxMiwgMC4zODc5MTQsIDAuNDg5OTczLCAwLjU5MTkwMSwgMC42OTM4NjYsIDAuNzk1Nzk2IiwgXAotICAgICAgICAgICIwLjIxNTAwNiwgMC4zMTY3MzcsIDAuMzk4MjA2LCAwLjUwMDI5NCwgMC42MDIyMjMsIDAuNzA0MTg2LCAwLjgwNjEyMyIsIFwKLSAgICAgICAgICAiMC4yMjQ2MzQsIDAuMzI2MzY0LCAwLjQwNzgzNSwgMC41MDk5MjQsIDAuNjExODUyLCAwLjcxMzgxMywgMC44MTU3NjgiLCBcCi0gICAgICAgICAgIjAuMjM0NjY5LCAwLjMzNjM0NSwgMC40MTc5MTcsIDAuNTE5OTM1LCAwLjYyMTg5OCwgMC43MjM4MzQsIDAuODI1ODE3IiwgXAotICAgICAgICAgICIwLjI1MTMyLCAwLjM1MzA3MSwgMC40MzQ1MzksIDAuNTM2NTk3LCAwLjYzODU1NSwgMC43NDA1MzMsIDAuODQyNTA4IiwgXAotICAgICAgICAgICIwLjI2NTMxOCwgMC4zNjY5OTgsIDAuNDQ4NTY5LCAwLjU1MDU5LCAwLjY1MjU1MywgMC43NTQ0NzgsIDAuODU2NDcxIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1MTM3MSwgMC4yNTkxMTcsIDAuNDI3OTI4LCAwLjYzODY2OSwgMC44NDkyMSwgMS4wNTk3MywgMS4yNzAyNyIsIFwKLSAgICAgICAgICAiMC4wNTE0MDUsIDAuMjU5MDgzLCAwLjQyNzkwNSwgMC42Mzg2OTMsIDAuODQ5MjE1LCAxLjA1OTYsIDEuMjcwMjciLCBcCi0gICAgICAgICAgIjAuMDUxMzc0LCAwLjI1OTU4NiwgMC40Mjc5MTcsIDAuNjM4Njg2LCAwLjg0OTE4NiwgMS4wNTk1OSwgMS4yNzAzIiwgXAotICAgICAgICAgICIwLjA1MTM5OSwgMC4yNTk1ODQsIDAuNDI3OTI2LCAwLjYzODY2LCAwLjg0OTE4LCAxLjA1OTcsIDEuMjcwMyIsIFwKLSAgICAgICAgICAiMC4wNTE0MSwgMC4yNTg4MzIsIDAuNDI3NzM5LCAwLjYzNzI1OCwgMC44NDkyMSwgMS4wNTk2LCAxLjI3MDI1IiwgXAotICAgICAgICAgICIwLjA1MTM4NSwgMC4yNTk1ODMsIDAuNDI3NjYsIDAuNjM4Njc2LCAwLjg0OTE3NCwgMS4wNTk3NCwgMS4yNzAzIiwgXAotICAgICAgICAgICIwLjA1MTQsIDAuMjU4ODMyLCAwLjQyNzkwOSwgMC42MzcyNTYsIDAuODQ5MjEsIDEuMDU5NDYsIDEuMjcwMjgiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTU4NTAxLCAwLjI2MjIyMywgMC4zNDUxOTEsIDAuNDQ5MDUsIDAuNTUyNzk4LCAwLjY1NjU3NSwgMC43NjAzNjEiLCBcCi0gICAgICAgICAgIjAuMTY4MTM1LCAwLjI3MTg2NCwgMC4zNTQ4MjUsIDAuNDU4Njg3LCAwLjU2MjQzNSwgMC42NjYyMTYsIDAuNzcwMDA0IiwgXAotICAgICAgICAgICIwLjE3OTA5MSwgMC4yODI4MjYsIDAuMzY1ODAxLCAwLjQ2OTYxMiwgMC41NzMzNzksIDAuNjc3MTU3LCAwLjc4MDkzMiIsIFwKLSAgICAgICAgICAiMC4xODkwNTEsIDAuMjkyNzg0LCAwLjM3NTczNiwgMC40Nzk2MDMsIDAuNTgzMzU0LCAwLjY4NzEzNiwgMC43OTA5MjgiLCBcCi0gICAgICAgICAgIjAuMTk4OTk4LCAwLjMwMjY5NSwgMC4zODU2NzEsIDAuNDg5NTM0LCAwLjU5MzI3NywgMC42OTcwNDMsIDAuODAwODA5IiwgXAotICAgICAgICAgICIwLjIxNTk3MSwgMC4zMTk2NjYsIDAuNDAyNjcyLCAwLjUwNjQ4MywgMC42MTAyNDQsIDAuNzE0MDI5LCAwLjgxNzc5NyIsIFwKLSAgICAgICAgICAiMC4yMjkyMSwgMC4zMzI5MDMsIDAuNDE1OTA0LCAwLjUxOTcxLCAwLjYyMzQ1NCwgMC43MjcyNDMsIDAuODMxMDM1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1MTM0NSwgMC4yNTkyNjcsIDAuNDI3MzE4LCAwLjYzNzk2LCAwLjg0ODMxMSwgMS4wNTg3MSwgMS4yNjkxNSIsIFwKLSAgICAgICAgICAiMC4wNTEzNDQsIDAuMjU5Mjg2LCAwLjQyNzUxMywgMC42Mzc5ODIsIDAuODQ4MzEsIDEuMDU4NzEsIDEuMjY5MTYiLCBcCi0gICAgICAgICAgIjAuMDUxMzU5LCAwLjI1OTI1OSwgMC40Mjc0ODksIDAuNjM3OTgzLCAwLjg0ODM0MSwgMS4wNTg2NSwgMS4yNjkwNyIsIFwKLSAgICAgICAgICAiMC4wNTEzNDMsIDAuMjU5MjI1LCAwLjQyNzEwOCwgMC42Mzc5ODEsIDAuODQ4MzAxLCAxLjA1ODY5LCAxLjI2OTE3IiwgXAotICAgICAgICAgICIwLjA1MTM1NywgMC4yNTkyNjcsIDAuNDI3NDkyLCAwLjYzNzk1MiwgMC44NDgzODMsIDEuMDU4NjUsIDEuMjY5MDIiLCBcCi0gICAgICAgICAgIjAuMDUxMzUxLCAwLjI1OTIxNCwgMC40Mjc0NSwgMC42Mzc5MDYsIDAuODQ4MzE4LCAxLjA1ODczLCAxLjI2OTA2IiwgXAotICAgICAgICAgICIwLjA1MTM0NSwgMC4yNTkyNDIsIDAuNDI3NDE0LCAwLjYzNzk0LCAwLjg0ODMxMywgMS4wNTg2OSwgMS4yNjkxMyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDU1NjMsIDAuMDA1NjE2LCAwLjAwNTYyNCwgMC4wMDU2MjcsIDAuMDA1NjI5LCAwLjAwNTYzLCAwLjAwNTYzIiwgXAotICAgICAgICAgICIwLjAwNTU0OSwgMC4wMDU2MDMsIDAuMDA1NjEsIDAuMDA1NjEyLCAwLjAwNTYxNCwgMC4wMDU2MTcsIDAuMDA1NjE2IiwgXAotICAgICAgICAgICIwLjAwNTU0NiwgMC4wMDU2LCAwLjAwNTYwNiwgMC4wMDU2MSwgMC4wMDU2MTEsIDAuMDA1NjEyLCAwLjAwNTYxMyIsIFwKLSAgICAgICAgICAiMC4wMDU1NTIsIDAuMDA1NjA2LCAwLjAwNTYxMywgMC4wMDU2MTYsIDAuMDA1NjE4LCAwLjAwNTYyLCAwLjAwNTYyIiwgXAotICAgICAgICAgICIwLjAwNTU2NCwgMC4wMDU2MTcsIDAuMDA1NjI0LCAwLjAwNTYyNywgMC4wMDU2MjgsIDAuMDA1NjI5LCAwLjAwNTYzIiwgXAotICAgICAgICAgICIwLjAwNTU3NCwgMC4wMDU2MjgsIDAuMDA1NjM1LCAwLjAwNTYzOSwgMC4wMDU2NCwgMC4wMDU2NCwgMC4wMDU2NDIiLCBcCi0gICAgICAgICAgIjAuMDA1NTk1LCAwLjAwNTY0OSwgMC4wMDU2NTcsIDAuMDA1NjYsIDAuMDA1NjYxLCAwLjAwNTY2MiwgMC4wMDU2NjIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDU2ODQsIDAuMDA1NzQ1LCAwLjAwNTc1MiwgMC4wMDU3NTYsIDAuMDA1NzU3LCAwLjAwNTc2MSwgMC4wMDU3NTkiLCBcCi0gICAgICAgICAgIjAuMDA1NjcsIDAuMDA1NzMsIDAuMDA1NzM3LCAwLjAwNTc0MiwgMC4wMDU3NDMsIDAuMDA1NzQ0LCAwLjAwNTc0NSIsIFwKLSAgICAgICAgICAiMC4wMDU2NjIsIDAuMDA1NzIyLCAwLjAwNTcyOSwgMC4wMDU3MzMsIDAuMDA1NzM1LCAwLjAwNTczNiwgMC4wMDU3MzciLCBcCi0gICAgICAgICAgIjAuMDA1NjYyLCAwLjAwNTcyMiwgMC4wMDU3MjksIDAuMDA1NzMzLCAwLjAwNTczNSwgMC4wMDU3MzYsIDAuMDA1NzM3IiwgXAotICAgICAgICAgICIwLjAwNTY2OSwgMC4wMDU3MjksIDAuMDA1NzM3LCAwLjAwNTc0LCAwLjAwNTc0MywgMC4wMDU3NDMsIDAuMDA1NzQ1IiwgXAotICAgICAgICAgICIwLjAwNTY3NSwgMC4wMDU3MzcsIDAuMDA1NzQ1LCAwLjAwNTc0OCwgMC4wMDU3NDgsIDAuMDA1NzQ5LCAwLjAwNTc1IiwgXAotICAgICAgICAgICIwLjAwNTY4NywgMC4wMDU3NDcsIDAuMDA1NzU1LCAwLjAwNTc2LCAwLjAwNTc2MSwgMC4wMDU3NjIsIDAuMDA1NzYyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUk4iOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNzE1NSwgMC4wMDcxOTksIDAuMDA3MTk4LCAwLjAwNzE5MywgMC4wMDcxOSwgMC4wMDcxODcsIDAuMDA3MTg2IiwgXAotICAgICAgICAgICIwLjAwNzE0NCwgMC4wMDcxODksIDAuMDA3MTg2LCAwLjAwNzE4MiwgMC4wMDcxNzksIDAuMDA3MTc2LCAwLjAwNzE3NSIsIFwKLSAgICAgICAgICAiMC4wMDcxNDEsIDAuMDA3MTg3LCAwLjAwNzE4MiwgMC4wMDcxNzksIDAuMDA3MTc2LCAwLjAwNzE3MywgMC4wMDcxNzIiLCBcCi0gICAgICAgICAgIjAuMDA3MTQ0LCAwLjAwNzE4OCwgMC4wMDcxODcsIDAuMDA3MTgyLCAwLjAwNzE3OSwgMC4wMDcxNzYsIDAuMDA3MTc1IiwgXAotICAgICAgICAgICIwLjAwNzE0NiwgMC4wMDcxOTEsIDAuMDA3MTksIDAuMDA3MTg2LCAwLjAwNzE4MiwgMC4wMDcxNzksIDAuMDA3MTc4IiwgXAotICAgICAgICAgICIwLjAwNzE1MywgMC4wMDcxOTgsIDAuMDA3MTk3LCAwLjAwNzE5MywgMC4wMDcxODksIDAuMDA3MTg2LCAwLjAwNzE4MiIsIFwKLSAgICAgICAgICAiMC4wMDcxNTgsIDAuMDA3MjA0LCAwLjAwNzIwMywgMC4wMDcxOTgsIDAuMDA3MTk0LCAwLjAwNzE5MSwgMC4wMDcxODgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoc2NhbGFyKSB7Ci0gICAgICAgIHZhbHVlcygiMCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDUzODYsIDAuMDA1NDQsIDAuMDA1NDQ3LCAwLjAwNTQ1LCAwLjAwNTQ1MiwgMC4wMDU0NTIsIDAuMDA1NDUzIiwgXAotICAgICAgICAgICIwLjAwNTM3MSwgMC4wMDU0MjYsIDAuMDA1NDM1LCAwLjAwNTQzNiwgMC4wMDU0MzgsIDAuMDA1NDM4LCAwLjAwNTQ0IiwgXAotICAgICAgICAgICIwLjAwNTM2MiwgMC4wMDU0MTcsIDAuMDA1NDIzLCAwLjAwNTQyOCwgMC4wMDU0MywgMC4wMDU0MjksIDAuMDA1NDMzIiwgXAotICAgICAgICAgICIwLjAwNTM1NywgMC4wMDU0MTEsIDAuMDA1NDE5LCAwLjAwNTQyMiwgMC4wMDU0MjMsIDAuMDA1NDI0LCAwLjAwNTQyNSIsIFwKLSAgICAgICAgICAiMC4wMDUzNTIsIDAuMDA1NDA3LCAwLjAwNTQxMywgMC4wMDU0MTcsIDAuMDA1NDE5LCAwLjAwNTQyLCAwLjAwNTQyMSIsIFwKLSAgICAgICAgICAiMC4wMDUzNDUsIDAuMDA1NDAyLCAwLjAwNTQwNywgMC4wMDU0MTIsIDAuMDA1NDE0LCAwLjAwNTQxNSwgMC4wMDU0MTciLCBcCi0gICAgICAgICAgIjAuMDA1MzQxLCAwLjAwNTM5NiwgMC4wMDU0MDMsIDAuMDA1NDA2LCAwLjAwNTQwOSwgMC4wMDU0MSwgMC4wMDU0MDkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDY0NzIsIDAuMDA2NTI3LCAwLjAwNjUzMywgMC4wMDY1MzYsIDAuMDA2NTM3LCAwLjAwNjUzOCwgMC4wMDY1MzgiLCBcCi0gICAgICAgICAgIjAuMDA2NDU3LCAwLjAwNjUxMywgMC4wMDY1MTksIDAuMDA2NTIyLCAwLjAwNjUyNCwgMC4wMDY1MjQsIDAuMDA2NTI3IiwgXAotICAgICAgICAgICIwLjAwNjQ1MywgMC4wMDY1MDksIDAuMDA2NTE1LCAwLjAwNjUxNywgMC4wMDY1MiwgMC4wMDY1MTksIDAuMDA2NTIiLCBcCi0gICAgICAgICAgIjAuMDA2NDQ5LCAwLjAwNjUwNiwgMC4wMDY1MTEsIDAuMDA2NTE0LCAwLjAwNjUxNSwgMC4wMDY1MTYsIDAuMDA2NTE5IiwgXAotICAgICAgICAgICIwLjAwNjQ0OCwgMC4wMDY1MDQsIDAuMDA2NTEsIDAuMDA2NTEyLCAwLjAwNjUxNCwgMC4wMDY1MTUsIDAuMDA2NTE2IiwgXAotICAgICAgICAgICIwLjAwNjQ0OSwgMC4wMDY1MDYsIDAuMDA2NTEzLCAwLjAwNjUxNiwgMC4wMDY1MTcsIDAuMDA2NTE3LCAwLjAwNjUxOSIsIFwKLSAgICAgICAgICAiMC4wMDY0NTQsIDAuMDA2NTExLCAwLjAwNjUxOCwgMC4wMDY1MiwgMC4wMDY1MjEsIDAuMDA2NTIzLCAwLjAwNjUyMyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUk4pICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYyMTY5NjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MjE0NDE7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjIxNjk2OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDUxMywgMC4wMDA0OSwgMC4wMDA0ODEsIDAuMDAwNDg1LCAwLjAwMDQ5NSwgMC4wMDA1MTUsIDAuMDAwNTMyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzMjY2LCAwLjAwMzI0OSwgMC4wMDMyNDIsIDAuMDAzMjQ4LCAwLjAwMzI1NywgMC4wMDMyNzgsIDAuMDAzMjk0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRCYhU0UmIVNJJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9TRV9FUV8wX0FOX1NJX0VRXzBfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjIxODM1NiwgMC4yMjgxNSwgMC4yNDAzODMsIDAuMjUxNTksIDAuMjYxMzY1LCAwLjI3NDU5NiwgMC4yODQ3MDkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiByZWNvdmVyeV9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlNOIjsKLSAgICAgIHNkZl9jb25kIDogIlNOID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHJlY292ZXJ5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2ODc1LCAwLjA1NzUsIDAuMDQ1LCAwLjAzMjUsIDAuMDIsIDAuMDEsIC0wLjAwNSIsIFwKLSAgICAgICAgICAiMC4wOCwgMC4wNjg3NSwgMC4wNTYyNSwgMC4wNDM3NSwgMC4wMzEyNSwgMC4wMTUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMDkyNSwgMC4wODEyNSwgMC4wNjg3NSwgMC4wNTYyNSwgMC4wNDM3NSwgMC4wMjc1LCAwLjAxODc1IiwgXAotICAgICAgICAgICIwLjEwNSwgMC4wOTM3NSwgMC4wODEyNSwgMC4wNjg3NSwgMC4wNTYyNSwgMC4wNCwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4xMTc1LCAwLjEwNjI1LCAwLjA5Mzc1LCAwLjA4MTI1LCAwLjA2ODc1LCAwLjA1MjUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMTMzNzUsIDAuMTIyNSwgMC4xMDM3NSwgMC4wOTEyNSwgMC4wODUsIDAuMDY4NzUsIDAuMDUzNzUiLCBcCi0gICAgICAgICAgIjAuMTQyNSwgMC4xMzEyNSwgMC4xMTg3NSwgMC4xMDYyNSwgMC4wOTM3NSwgMC4wNzc1LCAwLjA2ODc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIHRpbWluZ190eXBlIDogcmVjb3ZlcnlfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRCYhU0UmIVNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9TRV9FUV8wX0FOX1NJX0VRXzAgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQocmVjb3ZlcnlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg3NSwgMC4wOTg3NSwgMC4xMTEyNSwgMC4xMTc1LCAwLjEzLCAwLjE0NjI1LCAwLjE1NSIsIFwKLSAgICAgICAgICAiMC4wODI1LCAwLjA4NzUsIDAuMSwgMC4xMTI1LCAwLjExODc1LCAwLjEzNSwgMC4xNDM3NSIsIFwKLSAgICAgICAgICAiMC4wNywgMC4wODEyNSwgMC4wOTM3NSwgMC4xLCAwLjExMjUsIDAuMTIyNSwgMC4xMzc1IiwgXAotICAgICAgICAgICIwLjA2Mzc1LCAwLjA3NSwgMC4wODc1LCAwLjA5Mzc1LCAwLjEwNjI1LCAwLjExNjI1LCAwLjEzMTI1IiwgXAotICAgICAgICAgICIwLjA1NzUsIDAuMDY4NzUsIDAuMDgxMjUsIDAuMDg3NSwgMC4xLCAwLjExLCAwLjEyNSIsIFwKLSAgICAgICAgICAiMC4wNTM3NSwgMC4wNTg3NSwgMC4wNzEyNSwgMC4wODM3NSwgMC4wOSwgMC4xMDYyNSwgMC4xMTUiLCBcCi0gICAgICAgICAgIjAuMDQ1LCAwLjA1NjI1LCAwLjA2ODc1LCAwLjA3NSwgMC4wODc1LCAwLjA5NzUsIDAuMTEyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJlbW92YWxfcmlzaW5nOwotICAgICAgd2hlbiA6ICJTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJTTiA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChyZW1vdmFsX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMTg3NSwgLTAuMDA3NSwgMC4wMDUsIDAuMDE3NSwgMC4wMywgMC4wNCwgMC4wNDg3NSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAxODc1LCAtMC4wMDYyNSwgMC4wMDYyNSwgMC4wMTg3NSwgMC4wMjg3NSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDMxMjUsIC0wLjAxODc1LCAtMC4wMDYyNSwgMC4wMDYyNSwgMC4wMTYyNSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjA0Mzc1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLjAwMzc1LCAwLjAxODc1IiwgXAotICAgICAgICAgICItMC4wNjEyNSwgLTAuMDUsIC0wLjAzNzUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAwMjUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA3NzUsIC0wLjA2NjI1LCAtMC4wNTM3NSwgLTAuMDQxMjUsIC0wLjAyODc1LCAtMC4wMTg3NSwgLTAuMDEiLCBcCi0gICAgICAgICAgIi0wLjA4NjI1LCAtMC4wNzUsIC0wLjA2MjUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDI3NSwgLTAuMDE4NzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFNFKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE1NTkzNDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE1NTkwNjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE1NTkzNDsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDQ4ODUsIDAuMDA0ODYyLCAwLjAwNDg3LCAwLjAwNDg3MywgMC4wMDQ4ODksIDAuMDA0OTE0LCAwLjAwNDkzOCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNjMxNSwgMC4wMDYyODEsIDAuMDA2MjgzLCAwLjAwNjI4LCAwLjAwNjI4OSwgMC4wMDYzMjYsIDAuMDA2MzYzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlJOJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIlJOX0VRXzFfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMjUsIC0wLjAyLCAtMC4wMDc1LCAwLjAwNSwgMC4wMTEyNSwgMC4wMjc1LCAwLjAzNjI1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAsIDAuMDE2MjUsIDAuMDI1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDM3NSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAuMDAzNzUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNSwgLTAuMDM3NSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDAyNSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDYxMjUsIC0wLjA1NjI1LCAtMC4wNDM3NSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDA4NzUsIDAiLCBcCi0gICAgICAgICAgIi0wLjA3MTI1LCAtMC4wNjYyNSwgLTAuMDUzNzUsIC0wLjA0MTI1LCAtMC4wMzUsIC0wLjAxODc1LCAtMC4wMSIsIFwKLSAgICAgICAgICAiLTAuMDgsIC0wLjA3NSwgLTAuMDYyNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wMjc1LCAtMC4wMTg3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAxMjUsIC0wLjAwMTI1LCAwLjAxMTI1LCAwLjAxNzUsIDAuMDMsIDAuMDQsIDAuMDQ4NzUiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTI1LCAwLCAwLjAxMjUsIDAuMDE4NzUsIDAuMDI4NzUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMjUsIC0wLjAxMjUsIDAsIDAuMDA2MjUsIDAuMDIyNSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAuMDEsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjA1NSwgLTAuMDQzNzUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAxMjUsIC0wLjAwMjUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA2NSwgLTAuMDUzNzUsIC0wLjA0NzUsIC0wLjAzNSwgLTAuMDI4NzUsIC0wLjAxODc1LCAtMC4wMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDczNzUsIC0wLjA2ODc1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjAzNzUsIC0wLjAyNzUsIC0wLjAxODc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJSTiZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJSTl9FUV8xX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTE4NzUsIDAuMTA3NSwgMC4wOTUsIDAuMDgyNSwgMC4wNywgMC4wNiwgMC4wNTEyNSIsIFwKLSAgICAgICAgICAiMC4xMywgMC4xMTg3NSwgMC4xMDYyNSwgMC4wOTM3NSwgMC4wODEyNSwgMC4wNzEyNSwgMC4wNjI1IiwgXAotICAgICAgICAgICIwLjE0MjUsIDAuMTMxMjUsIDAuMTE4NzUsIDAuMTA2MjUsIDAuMDkzNzUsIDAuMDgzNzUsIDAuMDY4NzUiLCBcCi0gICAgICAgICAgIjAuMTU1LCAwLjE0Mzc1LCAwLjEzMTI1LCAwLjExODc1LCAwLjEwNjI1LCAwLjA5LCAwLjA4MTI1IiwgXAotICAgICAgICAgICIwLjE2NzUsIDAuMTU2MjUsIDAuMTM3NSwgMC4xMjUsIDAuMTE4NzUsIDAuMTAyNSwgMC4wOTM3NSIsIFwKLSAgICAgICAgICAiMC4xODM3NSwgMC4xNzI1LCAwLjE2LCAwLjE0NzUsIDAuMTM1LCAwLjEyNSwgMC4xMTYyNSIsIFwKLSAgICAgICAgICAiMC4xOTg3NSwgMC4xODc1LCAwLjE3NSwgMC4xNjI1LCAwLjE1LCAwLjE0LCAwLjEzMTI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTM3NSwgMC4xMjYyNSwgMC4xMTM3NSwgMC4xMDEyNSwgMC4wODg3NSwgMC4wNzg3NSwgMC4wNjM3NSIsIFwKLSAgICAgICAgICAiMC4xNDg3NSwgMC4xMzc1LCAwLjExODc1LCAwLjEwNjI1LCAwLjEsIDAuMDgzNzUsIDAuMDc1IiwgXAotICAgICAgICAgICIwLjE1NSwgMC4xNDM3NSwgMC4xMzEyNSwgMC4xMTg3NSwgMC4xMDYyNSwgMC4wOTYyNSwgMC4wODc1IiwgXAotICAgICAgICAgICIwLjE2NzUsIDAuMTUsIDAuMTM3NSwgMC4xMjUsIDAuMTE4NzUsIDAuMTAyNSwgMC4wOTM3NSIsIFwKLSAgICAgICAgICAiMC4xNzM3NSwgMC4xNjI1LCAwLjE0Mzc1LCAwLjEzMTI1LCAwLjEyNSwgMC4xMDg3NSwgMC4xIiwgXAotICAgICAgICAgICIwLjE3NzUsIDAuMTY2MjUsIDAuMTUzNzUsIDAuMTQxMjUsIDAuMTI4NzUsIDAuMTE4NzUsIDAuMTEiLCBcCi0gICAgICAgICAgIjAuMTg2MjUsIDAuMTc1LCAwLjE2MjUsIDAuMTUsIDAuMTM3NSwgMC4xMjc1LCAwLjExODc1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTSSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjIzNTQ1OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYyMTc4MzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2MjM1NDU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzMjQ5LCAwLjAwMzIzMywgMC4wMDMyMjQsIDAuMDAzMjE5LCAwLjAwMzIxNiwgMC4wMDMyMTUsIDAuMDAzMjIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDUyNzMsIDAuMDA1MjYzLCAwLjAwNTI1OCwgMC4wMDUyNTQsIDAuMDA1MjU0LCAwLjAwNTI1MiwgMC4wMDUyNTYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiUk4mU0UmU04iOwotICAgICAgc2RmX2NvbmQgOiAiUk5fRVFfMV9BTl9TRV9FUV8xX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDU2MjUsIC0wLjA1MTI1LCAtMC4wNDUsIC0wLjAzODc1LCAtMC4wMzI1LCAtMC4wMjI1LCAtMC4wMiIsIFwKLSAgICAgICAgICAiLTAuMDY3NSwgLTAuMDYyNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzM3NSwgLTAuMDI1IiwgXAotICAgICAgICAgICItMC4wOCwgLTAuMDY4NzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDQsIC0wLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjA4NjI1LCAtMC4wODEyNSwgLTAuMDc1LCAtMC4wNjg3NSwgLTAuMDYyNSwgLTAuMDUyNSwgLTAuMDUiLCBcCi0gICAgICAgICAgIi0wLjA5ODc1LCAtMC4wOTM3NSwgLTAuMDg3NSwgLTAuMDc1LCAtMC4wNzUsIC0wLjA2NSwgLTAuMDU2MjUiLCBcCi0gICAgICAgICAgIi0wLjExNSwgLTAuMTEsIC0wLjA5NzUsIC0wLjA5MTI1LCAtMC4wOTEyNSwgLTAuMDgxMjUsIC0wLjA3MjUiLCBcCi0gICAgICAgICAgIi0wLjEzLCAtMC4xMTg3NSwgLTAuMTEyNSwgLTAuMTA2MjUsIC0wLjEsIC0wLjA5NjI1LCAtMC4wODc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDE4NzUsIC0wLjAwNzUsIC0wLjAwMTI1LCAwLjAxMTI1LCAwLjAxNzUsIDAuMDMzNzUsIDAuMDQyNSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAxODc1LCAtMC4wMDYyNSwgMC4wMDYyNSwgMC4wMTI1LCAwLjAyMjUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLCAwLjAxNjI1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjAzNzUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLjAwMzc1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjA1NSwgLTAuMDUsIC0wLjAzNzUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAwMjUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA2NSwgLTAuMDYsIC0wLjA0NzUsIC0wLjAzNSwgLTAuMDI4NzUsIC0wLjAxODc1LCAtMC4wMSIsIFwKLSAgICAgICAgICAiLTAuMDczNzUsIC0wLjA2ODc1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjAzNzUsIC0wLjAyNzUsIC0wLjAxODc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJSTiZTRSZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJSTl9FUV8xX0FOX1NFX0VRXzFfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMjUsIDAuMTEzNzUsIDAuMTAxMjUsIDAuMDg4NzUsIDAuMDc2MjUsIDAuMDY2MjUsIDAuMDU3NSIsIFwKLSAgICAgICAgICAiMC4xMzYyNSwgMC4xMjUsIDAuMTEyNSwgMC4xLCAwLjA4NzUsIDAuMDc3NSwgMC4wNjg3NSIsIFwKLSAgICAgICAgICAiMC4xNDg3NSwgMC4xMzc1LCAwLjExODc1LCAwLjExMjUsIDAuMSwgMC4wODM3NSwgMC4wNzUiLCBcCi0gICAgICAgICAgIjAuMTYxMjUsIDAuMTQzNzUsIDAuMTMxMjUsIDAuMTE4NzUsIDAuMTEyNSwgMC4wOTYyNSwgMC4wODc1IiwgXAotICAgICAgICAgICIwLjE2NzUsIDAuMTU2MjUsIDAuMTQzNzUsIDAuMTMxMjUsIDAuMTE4NzUsIDAuMTA4NzUsIDAuMSIsIFwKLSAgICAgICAgICAiMC4xODM3NSwgMC4xNzI1LCAwLjE2LCAwLjE0NzUsIDAuMTM1LCAwLjEyNSwgMC4xMTYyNSIsIFwKLSAgICAgICAgICAiMC4xOTg3NSwgMC4xODc1LCAwLjE3NSwgMC4xNjI1LCAwLjE1LCAwLjE0LCAwLjEyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEsIDAuMDg4NzUsIDAuMDc2MjUsIDAuMDYzNzUsIDAuMDUxMjUsIDAuMDM1LCAwLjAyNjI1IiwgXAotICAgICAgICAgICIwLjExMTI1LCAwLjEsIDAuMDg3NSwgMC4wNzUsIDAuMDYyNSwgMC4wNDYyNSwgMC4wMzc1IiwgXAotICAgICAgICAgICIwLjEyMzc1LCAwLjExMjUsIDAuMDkzNzUsIDAuMDgxMjUsIDAuMDY4NzUsIDAuMDU4NzUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMTMsIDAuMTE4NzUsIDAuMTA2MjUsIDAuMDkzNzUsIDAuMDgxMjUsIDAuMDY1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICIwLjE0MjUsIDAuMTMxMjUsIDAuMTEyNSwgMC4xLCAwLjA5Mzc1LCAwLjA3NzUsIDAuMDYyNSIsIFwKLSAgICAgICAgICAiMC4xNTI1LCAwLjE0MTI1LCAwLjEyODc1LCAwLjExNjI1LCAwLjEwMzc1LCAwLjA4NzUsIDAuMDc4NzUiLCBcCi0gICAgICAgICAgIjAuMTY3NSwgMC4xNTYyNSwgMC4xNDM3NSwgMC4xMzEyNSwgMC4xMTg3NSwgMC4xMDI1LCAwLjA4NzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFNOKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE4NDk3NDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE4NDk3NDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE4NDk1MzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA0NTMsIDAuMDAwNDUzLCAwLjAwMDQ1MywgMC4wMDA0NTMsIDAuMDAwNDUyLCAwLjAwMDQ1MiwgMC4wMDA0NTIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA0NTMsIDAuMDAwNDU0LCAwLjAwMDQ1NCwgMC4wMDA0NTQsIDAuMDAwNDU0LCAwLjAwMDQ1NCwgMC4wMDA0NTQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiU04iOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFEJiFSTiYhU0UmIVNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9STl9FUV8wX0FOX1NFX0VRXzBfQU5fU0lfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjE1ODQ5NCwgMC4xNjgxMzUsIDAuMTc5MDc3LCAwLjE4OTA1LCAwLjE5ODk3MiwgMC4yMTU5NzEsIDAuMjI5MjEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiByZWNvdmVyeV9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlJOIjsKLSAgICAgIHNkZl9jb25kIDogIlJOID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHJlY292ZXJ5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxODc1LCAwLjAwNzUsIC0wLjAxMTI1LCAtMC4wMjM3NSwgLTAuMDM2MjUsIC0wLjA1MjUsIC0wLjA2MTI1IiwgXAotICAgICAgICAgICIwLjAyMzc1LCAwLjAxMjUsIDAsIC0wLjAxMjUsIC0wLjAyNSwgLTAuMDQxMjUsIC0wLjA1NjI1IiwgXAotICAgICAgICAgICIwLjAzNjI1LCAwLjAyNSwgMC4wMTI1LCAwLCAtMC4wMTI1LCAtMC4wMjg3NSwgLTAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMDQ4NzUsIDAuMDM3NSwgMC4wMTg3NSwgMC4wMDYyNSwgLTAuMDA2MjUsIC0wLjAyMjUsIC0wLjAzMTI1IiwgXAotICAgICAgICAgICIwLjA1NSwgMC4wNDM3NSwgMC4wMzEyNSwgMC4wMTg3NSwgMC4wMDYyNSwgLTAuMDEsIC0wLjAyNSIsIFwKLSAgICAgICAgICAiMC4wNzEyNSwgMC4wNiwgMC4wNDc1LCAwLjAzNSwgMC4wMjI1LCAwLjAwNjI1LCAtMC4wMDI1IiwgXAotICAgICAgICAgICIwLjA4NjI1LCAwLjA3NSwgMC4wNjI1LCAwLjA1LCAwLjAzNzUsIDAuMDIxMjUsIDAuMDA2MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiByZW1vdmFsX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiUk4iOwotICAgICAgc2RmX2NvbmQgOiAiUk4gPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQocmVtb3ZhbF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzEyNSwgMC4wNDI1LCAwLjA1NSwgMC4wNjc1LCAwLjA3Mzc1LCAwLjA5LCAwLjEwNSIsIFwKLSAgICAgICAgICAiMC4wMiwgMC4wMzEyNSwgMC4wNDM3NSwgMC4wNTYyNSwgMC4wNjg3NSwgMC4wODUsIDAuMDkzNzUiLCBcCi0gICAgICAgICAgIjAuMDA3NSwgMC4wMTg3NSwgMC4wMzEyNSwgMC4wNDM3NSwgMC4wNTYyNSwgMC4wNzI1LCAwLjA4MTI1IiwgXAotICAgICAgICAgICIwLjAwMTI1LCAwLjAwNjI1LCAwLjAxODc1LCAwLjAzMTI1LCAwLjA0Mzc1LCAwLjA2LCAwLjA3NSIsIFwKLSAgICAgICAgICAiLTAuMDExMjUsIDAsIDAuMDEyNSwgMC4wMjUsIDAuMDM3NSwgMC4wNDc1LCAwLjA2MjUiLCBcCi0gICAgICAgICAgIi0wLjAyNzUsIC0wLjAxNjI1LCAtMC4wMDM3NSwgMC4wMDg3NSwgMC4wMjEyNSwgMC4wMzc1LCAwLjA0NjI1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDI1LCAtMC4wMTI1LCAwLCAwLjAwNjI1LCAwLjAyMjUsIDAuMDM3NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IFNERkZTWDIgKgotICogLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoU0RGRlNYMikgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjUxMDQ5NTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBmZiAoTjM1LFFCSU5UKSB7Ci0gICAgbmV4dF9zdGF0ZSA6ICIoKFNFIFNJKSArICghU0UgRCkpIjsKLSAgICBjbG9ja2VkX29uIDogIkNLIjsKLSAgICBwcmVzZXQgOiAiKCFTTikiOwotICB9Ci0gIHBpbihDSykgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjY0ODI4OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDY2NDUzOTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2NjQ4Mjg7Ci0gICAgY2xvY2sgOiB0cnVlOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjY2NywgMC4wMDI2NDEsIDAuMDAyNjMsIDAuMDAyNjI4LCAwLjAwMjY0MywgMC4wMDI2NTUsIDAuMDAyNjc4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA2OTY1LCAwLjAwNjk0MiwgMC4wMDY5MzUsIDAuMDA2OTQ1LCAwLjAwNjk2OSwgMC4wMDcwMTUsIDAuMDA3MDQ3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRCYhU0UmIVNJJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9TRV9FUV8wX0FOX1NJX0VRXzBfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjE2NzM3NywgMC4xNzc1OTIsIDAuMTkwMzkyLCAwLjIwMjQ4NywgMC4yMTM2MDIsIDAuMjI4NzgxLCAwLjI0MDcyOSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMTE2MDUyLCAwLjEyNTk4NCwgMC4xMzgyNjYsIDAuMTUwMDE5LCAwLjE2MDQ5NiwgMC4xNzQ1ODEsIDAuMTg1MzgxIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihEKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA1ODc0OTM7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNTg2NDQ1OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDU4NzQ5MzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDMzOTQsIDAuMDAzMzc4LCAwLjAwMzM2OSwgMC4wMDMzNjMsIDAuMDAzMzYsIDAuMDAzMzU3LCAwLjAwMzM2NyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNDgxNCwgMC4wMDQ4MDQsIDAuMDA0Nzk5LCAwLjAwNDc5NSwgMC4wMDQ3OTYsIDAuMDA0Nzk3LCAwLjAwNDc5OSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhU0UmU04iOwotICAgICAgc2RmX2NvbmQgOiAiU0VfRVFfMF9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjA1NjI1LCAtMC4wNDUsIC0wLjAzODc1LCAtMC4wMzI1LCAtMC4wMjYyNSwgLTAuMDE2MjUsIC0wLjAxMzc1IiwgXAotICAgICAgICAgICItMC4wNjEyNSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDI3NSwgLTAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjA3Mzc1LCAtMC4wNjg3NSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDQsIC0wLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wODYyNSwgLTAuMDc1LCAtMC4wNjg3NSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA0NjI1LCAtMC4wNDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDk4NzUsIC0wLjA4NzUsIC0wLjA4MTI1LCAtMC4wNzUsIC0wLjA2ODc1LCAtMC4wNTg3NSwgLTAuMDUiLCBcCi0gICAgICAgICAgIi0wLjEwODc1LCAtMC4xMDM3NSwgLTAuMDk3NSwgLTAuMDkxMjUsIC0wLjA4NSwgLTAuMDc1LCAtMC4wNjYyNSIsIFwKLSAgICAgICAgICAiLTAuMTIzNzUsIC0wLjExODc1LCAtMC4xMDYyNSwgLTAuMSwgLTAuMDkzNzUsIC0wLjA5LCAtMC4wODEyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAxODc1LCAtMC4wMDc1LCAwLjAwNSwgMC4wMTEyNSwgMC4wMjM3NSwgMC4wMzM3NSwgMC4wNDI1IiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLjAwNjI1LCAwLjAxMjUsIDAuMDIyNSwgMC4wMzc1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDI1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMC4wMDYyNSwgMC4wMTYyNSwgMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLjAwMzc1LCAwLjAxODc1IiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA0Mzc1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMTI1LCAtMC4wMDI1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wNjUsIC0wLjA2LCAtMC4wNDc1LCAtMC4wMzUsIC0wLjAyODc1LCAtMC4wMTg3NSwgLTAuMDAzNzUiLCBcCi0gICAgICAgICAgIi0wLjA3Mzc1LCAtMC4wNjg3NSwgLTAuMDU2MjUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMjc1LCAtMC4wMTg3NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIVNFJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIlNFX0VRXzBfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xLCAwLjA4ODc1LCAwLjA3NjI1LCAwLjA2Mzc1LCAwLjA1NzUsIDAuMDQ3NSwgMC4wMzg3NSIsIFwKLSAgICAgICAgICAiMC4xMDUsIDAuMDkzNzUsIDAuMDgxMjUsIDAuMDc1LCAwLjA2ODc1LCAwLjA1ODc1LCAwLjA1IiwgXAotICAgICAgICAgICIwLjExNzUsIDAuMTA2MjUsIDAuMDkzNzUsIDAuMDg3NSwgMC4wNzUsIDAuMDY1LCAwLjA2MjUiLCBcCi0gICAgICAgICAgIjAuMTMsIDAuMTE4NzUsIDAuMTA2MjUsIDAuMDkzNzUsIDAuMDg3NSwgMC4wNzc1LCAwLjA3NSIsIFwKLSAgICAgICAgICAiMC4xMzYyNSwgMC4xMjUsIDAuMTEyNSwgMC4xMDYyNSwgMC4xLCAwLjA5LCAwLjA4MTI1IiwgXAotICAgICAgICAgICIwLjE1MjUsIDAuMTQxMjUsIDAuMTI4NzUsIDAuMTIyNSwgMC4xMTYyNSwgMC4xMDYyNSwgMC4wOTc1IiwgXAotICAgICAgICAgICIwLjE2NzUsIDAuMTU2MjUsIDAuMTQzNzUsIDAuMTM3NSwgMC4xMjUsIDAuMTIxMjUsIDAuMTEyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEsIDAuMDg4NzUsIDAuMDc2MjUsIDAuMDYzNzUsIDAuMDUxMjUsIDAuMDM1LCAwLjAyIiwgXAotICAgICAgICAgICIwLjEwNSwgMC4wOTM3NSwgMC4wODEyNSwgMC4wNjg3NSwgMC4wNTYyNSwgMC4wNDYyNSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4xMTc1LCAwLjEwNjI1LCAwLjA5Mzc1LCAwLjA4MTI1LCAwLjA2ODc1LCAwLjA1MjUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMTIzNzUsIDAuMTEyNSwgMC4xLCAwLjA4NzUsIDAuMDc1LCAwLjA2NSwgMC4wNSIsIFwKLSAgICAgICAgICAiMC4xMzYyNSwgMC4xMjUsIDAuMTEyNSwgMC4xLCAwLjA4NzUsIDAuMDcxMjUsIDAuMDYyNSIsIFwKLSAgICAgICAgICAiMC4xNTI1LCAwLjE0MTI1LCAwLjEyMjUsIDAuMTEsIDAuMTAzNzUsIDAuMDg3NSwgMC4wNzI1IiwgXAotICAgICAgICAgICIwLjE2MTI1LCAwLjE1LCAwLjEzNzUsIDAuMTI1LCAwLjExMjUsIDAuMDk2MjUsIDAuMDg3NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjUxNDE2NjsKLSAgICBmdW5jdGlvbiA6ICJOMzUiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5vbl91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcmlzaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEyMjg4NCwgMC4yMjYxODgsIDAuMzA4MjY0LCAwLjQxMDYzNSwgMC41MTI2NDMsIDAuNjE1NDYxLCAwLjcxNzc5NyIsIFwKLSAgICAgICAgICAiMC4xMzMwMDksIDAuMjM2MzI5LCAwLjMxODI3MSwgMC40MjA0NSwgMC41MjI3OTYsIDAuNjI2MDg5LCAwLjcyNzkwOSIsIFwKLSAgICAgICAgICAiMC4xNDU4MjMsIDAuMjQ5MTI0LCAwLjMzMTMzMSwgMC40MzM1ODMsIDAuNTM1NjM5LCAwLjYzNzk5MSwgMC43NDA3NzQiLCBcCi0gICAgICAgICAgIjAuMTU3NzUxLCAwLjI2MTA3OSwgMC4zNDMxNDEsIDAuNDQ1MTk1LCAwLjU0NzU0MywgMC42NTA4NzQsIDAuNzUyNjYiLCBcCi0gICAgICAgICAgIjAuMTY4ODA3LCAwLjI3MjAzOCwgMC4zNTQ0OTMsIDAuNDU2OTMzLCAwLjU1OTQ0NiwgMC42NjA5NDEsIDAuNzYzODQiLCBcCi0gICAgICAgICAgIjAuMTg0MTIxLCAwLjI4NzQyNywgMC4zNjg5MjQsIDAuNDcxODczLCAwLjU3Mzk2MiwgMC42NzYxNDQsIDAuNzc5MDgzIiwgXAotICAgICAgICAgICIwLjE5NTY5MSwgMC4yOTg5NjEsIDAuMzgxNDIsIDAuNDgzNDYsIDAuNTg1ODc3LCAwLjY4ODU0MSwgMC43OTA3MjUiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDUyNjI2LCAwLjI2MDA5MSwgMC40Mjg5MDMsIDAuNjQwMzMyLCAwLjg1MDEyOSwgMS4wNjMzLCAxLjI3NDU4IiwgXAotICAgICAgICAgICIwLjA1MjQ4OSwgMC4yNTk0ODEsIDAuNDI4ODA3LCAwLjYzOTQ4LCAwLjg1MDE3NCwgMS4wNjA1LCAxLjI3NDUyIiwgXAotICAgICAgICAgICIwLjA1MjUyLCAwLjI1OTc4OCwgMC40Mjg4MTcsIDAuNjQwMzI5LCAwLjg1MDIyNiwgMS4wNjExMywgMS4yNzQ2OCIsIFwKLSAgICAgICAgICAiMC4wNTI1MzYsIDAuMjU5MzQ4LCAwLjQyODg5NCwgMC42Mzk0NzcsIDAuODUwMTgzLCAxLjA2MTMsIDEuMjc0NTUiLCBcCi0gICAgICAgICAgIjAuMDUyNjU5LCAwLjI2MTA4NywgMC40Mjc5NTEsIDAuNjQwMzMyLCAwLjg1MTg0MywgMS4wNjExLCAxLjI3NDY0IiwgXAotICAgICAgICAgICIwLjA1MjUzNSwgMC4yNTk3NTEsIDAuNDI4NTE0LCAwLjY0MDMzMSwgMC44NTAyNjgsIDEuMDYxNjIsIDEuMjc0NjUiLCBcCi0gICAgICAgICAgIjAuMDUyNjE5LCAwLjI2MDA5NiwgMC40Mjc5MDUsIDAuNjQwMjQyLCAwLjg1MTcwNiwgMS4wNjMwNywgMS4yNzQ0MiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNDUzMzcsIDAuMjQ5OTI3LCAwLjMzMjMyOSwgMC40MzYyNjEsIDAuNTM5NzgyLCAwLjY0MzIzOSwgMC43NDYxMTkiLCBcCi0gICAgICAgICAgIjAuMTU1NTUyLCAwLjI2MDE1NiwgMC4zNDI2MDYsIDAuNDQ2NjQ5LCAwLjU1MDA5NSwgMC42NTM1ODUsIDAuNzU2ODQ3IiwgXAotICAgICAgICAgICIwLjE2ODM1OCwgMC4yNzI5MzgsIDAuMzU1MzY0LCAwLjQ1OTE0MSwgMC41NjI0MzEsIDAuNjY2MjcsIDAuNzY5NjUzIiwgXAotICAgICAgICAgICIwLjE4MDQ1OSwgMC4yODUwNzksIDAuMzY3NDk1LCAwLjQ3MTUxOSwgMC41NzQ5NjksIDAuNjc3ODM5LCAwLjc4MTc3OSIsIFwKLSAgICAgICAgICAiMC4xOTE1NjQsIDAuMjk2MTU3LCAwLjM3ODU4LCAwLjQ4MjQ3NiwgMC41ODU5OTMsIDAuNjg5NDUyLCAwLjc5MjM0NyIsIFwKLSAgICAgICAgICAiMC4yMDY3MzksIDAuMzExMzQ1LCAwLjM5Mzc2NSwgMC40OTc4MzgsIDAuNjAxMjkxLCAwLjcwNDY3LCAwLjgwODAyNSIsIFwKLSAgICAgICAgICAiMC4yMTg2ODMsIDAuMzIzMTM2LCAwLjQwNTY1OSwgMC41MDk3NDQsIDAuNjEzMTE1LCAwLjcxNjU2NywgMC44MjAwNzkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDUyMzg2LCAwLjI1OTA2NSwgMC40MjU3NjMsIDAuNjM1NTMyLCAwLjg0NTcxNiwgMS4wNTU3NCwgMS4yNjE4OSIsIFwKLSAgICAgICAgICAiMC4wNTIzODUsIDAuMjU4NTg3LCAwLjQyNTg5NiwgMC42MzQxODgsIDAuODQ1ODE4LCAxLjA1Mjk2LCAxLjI2NTYxIiwgXAotICAgICAgICAgICIwLjA1MjQxLCAwLjI1OTA2OCwgMC40MjU3NTYsIDAuNjM0NDY4LCAwLjg0NTM3NCwgMS4wNTU3NSwgMS4yNjU2IiwgXAotICAgICAgICAgICIwLjA1MjM4LCAwLjI1ODQ5NSwgMC40MjU5NDIsIDAuNjM1NTk5LCAwLjg0NTc3OSwgMS4wNTQwMiwgMS4yNjU2MyIsIFwKLSAgICAgICAgICAiMC4wNTIzODIsIDAuMjU5MDY3LCAwLjQyNTc2NiwgMC42MzU1MiwgMC44NDU2OTgsIDEuMDU1NywgMS4yNjE5MSIsIFwKLSAgICAgICAgICAiMC4wNTI1OCwgMC4yNTg1ODgsIDAuNDI1OTYxLCAwLjYzNDQxNywgMC44NDU4MjcsIDEuMDU1NzUsIDEuMjY1NTkiLCBcCi0gICAgICAgICAgIjAuMDUyNTc2LCAwLjI1OTA1NiwgMC40MjU3NjIsIDAuNjM1NTkyLCAwLjg0NTY3MiwgMS4wNTU3MSwgMS4yNjU3NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcHJlc2V0OwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTQwNjksIDAuMjE3Mjg2LCAwLjI5OTU4LCAwLjQwMTgwNCwgMC41MDQxNCwgMC42MDY2ODYsIDAuNzA5MDQiLCBcCi0gICAgICAgICAgIjAuMTIzNzkzLCAwLjIyNjk4OCwgMC4zMDk0OTcsIDAuNDEwOTg5LCAwLjUxMzI4MiwgMC42MTYyOTQsIDAuNzE4ODU4IiwgXAotICAgICAgICAgICIwLjEzNjEzLCAwLjIzOTIzNCwgMC4zMjA5NTIsIDAuNDIzODY1LCAwLjUyNjE5MSwgMC42Mjg3MjQsIDAuNzMxMjk5IiwgXAotICAgICAgICAgICIwLjE0ODA4NywgMC4yNTEzMDIsIDAuMzMzNzk2LCAwLjQzNTY3MywgMC41MzgwMjYsIDAuNjQwNiwgMC43NDMxNTYiLCBcCi0gICAgICAgICAgIjAuMTU5MzEsIDAuMjYyNTU2LCAwLjM0NDczNCwgMC40NDY5NzQsIDAuNTQ5Mzg0LCAwLjY1MTgyNiwgMC43NTQzOTkiLCBcCi0gICAgICAgICAgIjAuMTc1NjkzLCAwLjI3ODk3MiwgMC4zNjEwNzQsIDAuNDYzNTQ0LCAwLjU2NTg4NywgMC42NjgyMDksIDAuNzcwNzc3IiwgXAotICAgICAgICAgICIwLjE4ODA0MywgMC4yOTExMDIsIDAuMzczMzQzLCAwLjQ3NTc4OCwgMC41NzgxMTcsIDAuNjgwNjc0LCAwLjc4MzA0MyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTI1ODQsIDAuMjYxMDY1LCAwLjQyODEzMiwgMC42NDAyODUsIDAuODUxODQ1LCAxLjA2MzI3LCAxLjI3NDY3IiwgXAotICAgICAgICAgICIwLjA1MjQ1MiwgMC4yNjEwNDksIDAuNDI4OTQ4LCAwLjYzOTM1MiwgMC44NTE3NzcsIDEuMDYzMywgMS4yNzQ2MyIsIFwKLSAgICAgICAgICAiMC4wNTI1NTIsIDAuMjU5ODUsIDAuNDI4NTQ5LCAwLjY0MDI4LCAwLjg1MTg0NSwgMS4wNjMyNSwgMS4yNzQ1NCIsIFwKLSAgICAgICAgICAiMC4wNTI1NzksIDAuMjYxMDUxLCAwLjQyODk2MywgMC42NDAyNTUsIDAuODUxNzg2LCAxLjA2MzI4LCAxLjI3NDYyIiwgXAotICAgICAgICAgICIwLjA1MjYxNCwgMC4yNjA0MDEsIDAuNDI4ODU1LCAwLjY0MDI2OSwgMC44NTE3OTMsIDEuMDYzMjcsIDEuMjc0NiIsIFwKLSAgICAgICAgICAiMC4wNTI2MzMsIDAuMjYxMDYyLCAwLjQyODYzMSwgMC42NDAyOTQsIDAuODUxNzc5LCAxLjA2MzI2LCAxLjI3NDYiLCBcCi0gICAgICAgICAgIjAuMDUyNzYyLCAwLjI2MTA2MywgMC40Mjg4NjYsIDAuNjQwMjczLCAwLjg1MTgyNiwgMS4wNjMyMiwgMS4yNzQ2MSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDUwODYsIDAuMDA1MTQzLCAwLjAwNTE1LCAwLjAwNTE1NSwgMC4wMDUxNTYsIDAuMDA1MTU3LCAwLjAwNTE1NiIsIFwKLSAgICAgICAgICAiMC4wMDUwNzEsIDAuMDA1MTI4LCAwLjAwNTEzNSwgMC4wMDUxMzgsIDAuMDA1MTM5LCAwLjAwNTE0LCAwLjAwNTE0MiIsIFwKLSAgICAgICAgICAiMC4wMDUwNjMsIDAuMDA1MTIsIDAuMDA1MTI2LCAwLjAwNTEyOSwgMC4wMDUxMzEsIDAuMDA1MTMyLCAwLjAwNTEzMyIsIFwKLSAgICAgICAgICAiMC4wMDUwNjIsIDAuMDA1MTE5LCAwLjAwNTEyNSwgMC4wMDUxMjgsIDAuMDA1MTMsIDAuMDA1MTMxLCAwLjAwNTEzMiIsIFwKLSAgICAgICAgICAiMC4wMDUwNzIsIDAuMDA1MTI4LCAwLjAwNTEzNSwgMC4wMDUxMzgsIDAuMDA1MTQsIDAuMDA1MTQxLCAwLjAwNTE0MSIsIFwKLSAgICAgICAgICAiMC4wMDUwNzgsIDAuMDA1MTM2LCAwLjAwNTE0MywgMC4wMDUxNDYsIDAuMDA1MTQ3LCAwLjAwNTE0OCwgMC4wMDUxNSIsIFwKLSAgICAgICAgICAiMC4wMDUwOTIsIDAuMDA1MTUsIDAuMDA1MTU2LCAwLjAwNTE1OSwgMC4wMDUxNjEsIDAuMDA1MTY0LCAwLjAwNTE2MyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDk0MSwgMC4wMDUwMDMsIDAuMDA1MDEsIDAuMDA1MDE0LCAwLjAwNTAxNiwgMC4wMDUwMTgsIDAuMDA1MDE4IiwgXAotICAgICAgICAgICIwLjAwNDkyOCwgMC4wMDQ5OSwgMC4wMDQ5OTgsIDAuMDA1MDAyLCAwLjAwNTAwMywgMC4wMDUwMDQsIDAuMDA1MDA1IiwgXAotICAgICAgICAgICIwLjAwNDkyNCwgMC4wMDQ5ODYsIDAuMDA0OTk0LCAwLjAwNDk5OCwgMC4wMDUsIDAuMDA1LCAwLjAwNTAwMSIsIFwKLSAgICAgICAgICAiMC4wMDQ5MzIsIDAuMDA0OTk0LCAwLjAwNTAwMiwgMC4wMDUwMDUsIDAuMDA1MDA3LCAwLjAwNTAwOSwgMC4wMDUwMDkiLCBcCi0gICAgICAgICAgIjAuMDA0OTQ3LCAwLjAwNTAwOSwgMC4wMDUwMTcsIDAuMDA1MDIsIDAuMDA1MDIyLCAwLjAwNTAyNCwgMC4wMDUwMjQiLCBcCi0gICAgICAgICAgIjAuMDA0OTU2LCAwLjAwNTAxOSwgMC4wMDUwMjcsIDAuMDA1MDMsIDAuMDA1MDMyLCAwLjAwNTAzMywgMC4wMDUwMzQiLCBcCi0gICAgICAgICAgIjAuMDA0OTgyLCAwLjAwNTA0NSwgMC4wMDUwNTIsIDAuMDA1MDU2LCAwLjAwNTA1OCwgMC4wMDUwNTksIDAuMDA1MDYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1NDEsIDAuMDA1NDY3LCAwLjAwNTQ3NCwgMC4wMDU0NzcsIDAuMDA1NDc5LCAwLjAwNTQ4LCAwLjAwNTQ4IiwgXAotICAgICAgICAgICIwLjAwNTM5NSwgMC4wMDU0NTIsIDAuMDA1NDU5LCAwLjAwNTQ2MiwgMC4wMDU0NjQsIDAuMDA1NDY2LCAwLjAwNTQ2NiIsIFwKLSAgICAgICAgICAiMC4wMDUzODQsIDAuMDA1NDQyLCAwLjAwNTQ0OCwgMC4wMDU0NTEsIDAuMDA1NDU2LCAwLjAwNTQ1NywgMC4wMDU0NTciLCBcCi0gICAgICAgICAgIjAuMDA1Mzc2LCAwLjAwNTQzNCwgMC4wMDU0NDEsIDAuMDA1NDQ0LCAwLjAwNTQ0NSwgMC4wMDU0NDcsIDAuMDA1NDQ3IiwgXAotICAgICAgICAgICIwLjAwNTM3MiwgMC4wMDU0MjksIDAuMDA1NDM2LCAwLjAwNTQ0LCAwLjAwNTQ0MSwgMC4wMDU0NDIsIDAuMDA1NDQzIiwgXAotICAgICAgICAgICIwLjAwNTM3MiwgMC4wMDU0MywgMC4wMDU0MzcsIDAuMDA1NDQsIDAuMDA1NDQyLCAwLjAwNTQ0MywgMC4wMDU0NDQiLCBcCi0gICAgICAgICAgIjAuMDA1MzcyLCAwLjAwNTQzMiwgMC4wMDU0MzksIDAuMDA1NDQyLCAwLjAwNTQ0NCwgMC4wMDU0NDUsIDAuMDA1NDQ2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHNjYWxhcikgewotICAgICAgICB2YWx1ZXMoIjAiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFFOKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuNTIwODkyOwotICAgIGZ1bmN0aW9uIDogIlFCSU5UIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBub25fdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJpc2luZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNjczNzcsIDAuMjcwODI5LCAwLjM1MzY0MywgMC40NTcyMzksIDAuNTYwODM4LCAwLjY2NDQyNywgMC43Njc5OTQiLCBcCi0gICAgICAgICAgIjAuMTc3NTkyLCAwLjI4MTA5LCAwLjM2Mzg5OCwgMC40Njc1NDQsIDAuNTcxMTI3LCAwLjY3NDc0MSwgMC43NzgyNDgiLCBcCi0gICAgICAgICAgIjAuMTkwMzkzLCAwLjI5Mzg5MSwgMC4zNzY3MDUsIDAuNDgwMzA5LCAwLjU4Mzg2OCwgMC42ODc0OTQsIDAuNzkxMDUxIiwgXAotICAgICAgICAgICIwLjIwMjQ4NywgMC4zMDU5OTIsIDAuMzg4OCwgMC40OTI0MzEsIDAuNTk2MDE0LCAwLjY5OTU2NSwgMC44MDMxNTgiLCBcCi0gICAgICAgICAgIjAuMjEzNjAyLCAwLjMxNzA1NiwgMC4zOTk4NzEsIDAuNTAzNDYzLCAwLjYwNzA2MSwgMC43MTA2NDgsIDAuODE0MjIiLCBcCi0gICAgICAgICAgIjAuMjI4NzgxLCAwLjMzMjI3NiwgMC40MTUwODUsIDAuNTE4NzI5LCAwLjYyMjMxNSwgMC43MjU4ODEsIDAuODI5NDI3IiwgXAotICAgICAgICAgICIwLjI0MDcyOSwgMC4zNDQyMjEsIDAuNDI3MDUsIDAuNTMwNjgsIDAuNjM0MjM3LCAwLjczNzgyNiwgMC44NDE0MzgiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDUwODAzLCAwLjI2MTQ4NCwgMC40MzEwMjksIDAuNjQ0NDQ4LCAwLjg1NzIxNiwgMS4wNjk5NiwgMS4yOCIsIFwKLSAgICAgICAgICAiMC4wNTA4MDMsIDAuMjYwOTE5LCAwLjQzMTM4OCwgMC42NDMwMzYsIDAuODU3MjgsIDEuMDY3NjksIDEuMjgyNjIiLCBcCi0gICAgICAgICAgIjAuMDUwNzkyLCAwLjI2MTQ4LCAwLjQzMTAyOSwgMC42NDMyMTcsIDAuODU2NjI3LCAxLjA2OTk4LCAxLjI4MjYiLCBcCi0gICAgICAgICAgIjAuMDUwNzkyLCAwLjI2MDkyMSwgMC40MzEzOTQsIDAuNjQ0NTM2LCAwLjg1NzI2OCwgMS4wNjgyMiwgMS4yODI2NCIsIFwKLSAgICAgICAgICAiMC4wNTA4MDMsIDAuMjYxNDgyLCAwLjQzMTA0MywgMC42NDQ0MzQsIDAuODU3MjA0LCAxLjA2OTk0LCAxLjI3OTk3IiwgXAotICAgICAgICAgICIwLjA1MDc2NiwgMC4yNjA5MTgsIDAuNDMxMzk0LCAwLjY0MzAzLCAwLjg1NzI4NCwgMS4wNjk5OSwgMS4yODI2IiwgXAotICAgICAgICAgICIwLjA1MDgwMiwgMC4yNjE0NDgsIDAuNDMxMDE4LCAwLjY0NDUzNywgMC44NTcyMjIsIDEuMDY5OTMsIDEuMjgyNzQiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTQ3MzEzLCAwLjI1MjQ1MSwgMC4zMzY1MjgsIDAuNDQxNiwgMC41NDY2OTEsIDAuNjUxNzY5LCAwLjc1NjgzOCIsIFwKLSAgICAgICAgICAiMC4xNTc0NjEsIDAuMjYyNTg1LCAwLjM0NjY0MiwgMC40NTE3MzksIDAuNTU2ODIxLCAwLjY2MjAwNSwgMC43NjY5NjYiLCBcCi0gICAgICAgICAgIjAuMTcwMjgxLCAwLjI3NTQwNiwgMC4zNTk1MDMsIDAuNDY0NTU0LCAwLjU2OTY0NCwgMC42NzQ3MjksIDAuNzc5Nzk3IiwgXAotICAgICAgICAgICIwLjE4MjIsIDAuMjg3MzI0LCAwLjM3MTM5NywgMC40NzY0NzcsIDAuNTgxNTU5LCAwLjY4Njc1NCwgMC43OTE3MDYiLCBcCi0gICAgICAgICAgIjAuMTkzMjU1LCAwLjI5ODM4NCwgMC4zODI1MDYsIDAuNDg3NjA1LCAwLjU5MjcxNCwgMC42OTc3MDQsIDAuODAyODEzIiwgXAotICAgICAgICAgICIwLjIwODU3OCwgMC4zMTM3MDMsIDAuMzk3NzIxLCAwLjUwMjg1LCAwLjYwNzkzNiwgMC43MTMwMzIsIDAuODE4MDk1IiwgXAotICAgICAgICAgICIwLjIyMDEyMywgMC4zMjUyNTQsIDAuNDA5MzgsIDAuNTE0NDA3LCAwLjYxOTQ5MSwgMC43MjQ2MjcsIDAuODI5NjY1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1MDcyNiwgMC4yNjAzMjksIDAuNDMwMzYxLCAwLjY0MjQ1MSwgMC44NTM2ODEsIDEuMDY2NjksIDEuMjc4NzUiLCBcCi0gICAgICAgICAgIjAuMDUwNzA4LCAwLjI2MDMyOCwgMC40MzAyOTQsIDAuNjQxNzM2LCAwLjg1MzY2NSwgMS4wNjUxMywgMS4yNzg3MSIsIFwKLSAgICAgICAgICAiMC4wNTA3MTEsIDAuMjYwMzI2LCAwLjQyOTc3OSwgMC42NDI0MzQsIDAuODUzNjc2LCAxLjA2NTYyLCAxLjI3ODc4IiwgXAotICAgICAgICAgICIwLjA1MDY4NywgMC4yNjAzMjgsIDAuNDMwMzU1LCAwLjY0MTczMywgMC44NTM2NiwgMS4wNjUwNiwgMS4yNzg3MyIsIFwKLSAgICAgICAgICAiMC4wNTA3MDEsIDAuMjYwNjg5LCAwLjQyOTQ5NCwgMC42NDI0NDMsIDAuODU0NTQ0LCAxLjA2NTYsIDEuMjc4OCIsIFwKLSAgICAgICAgICAiMC4wNTA2OCwgMC4yNjAzMjYsIDAuNDI5ODI0LCAwLjY0MjQ0NCwgMC44NTM2NDksIDEuMDY1NzMsIDEuMjc4OCIsIFwKLSAgICAgICAgICAiMC4wNTA3MTksIDAuMjYwMzIyLCAwLjQyOTQ0NywgMC42NDIzNDEsIDAuODU0NDA2LCAxLjA2NjY3LCAxLjI3ODYzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiBjbGVhcjsKLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTM4NTIsIDAuMjQzNjIsIDAuMzI3NzMzLCAwLjQzMjc4OSwgMC41Mzc4NTYsIDAuNjQyOTYzLCAwLjc0ODAzNSIsIFwKLSAgICAgICAgICAiMC4xNDgyNDYsIDAuMjUzMzQ1LCAwLjMzNzQ3NiwgMC40NDI1MDUsIDAuNTQ3NTkyLCAwLjY1MjY1MywgMC43NTc3NzEiLCBcCi0gICAgICAgICAgIjAuMTYwNTY3LCAwLjI2NTcxMSwgMC4zNDk4MDEsIDAuNDU0ODg4LCAwLjU1OTk1NSwgMC42NjUwNTksIDAuNzcwMTg1IiwgXAotICAgICAgICAgICIwLjE3MjUyMSwgMC4yNzc2NDcsIDAuMzYxNzc3LCAwLjQ2NjgxOSwgMC41NzE5MTEsIDAuNjc2OTU1LCAwLjc4MjA3MiIsIFwKLSAgICAgICAgICAiMC4xODM3NTksIDAuMjg4ODY2LCAwLjM3Mjk1OSwgMC40NzgwMTEsIDAuNTgzMDg5LCAwLjY4ODE3NiwgMC43OTMyOTYiLCBcCi0gICAgICAgICAgIjAuMjAwMTIzLCAwLjMwNTI3MSwgMC4zODkzNTYsIDAuNDk0NDM4LCAwLjU5OTUxMSwgMC43MDQ1NzcsIDAuODA5Njk2IiwgXAotICAgICAgICAgICIwLjIxMjUwOCwgMC4zMTc2MjMsIDAuNDAxNzA0LCAwLjUwNjc4OCwgMC42MTE4NTUsIDAuNzE2OTY0LCAwLjgyMjAzOSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTA3NCwgMC4yNjA2OTcsIDAuNDI5NjU3LCAwLjY0MjQ0NiwgMC44NTQ1NDgsIDEuMDY2ODMsIDEuMjc4OTEiLCBcCi0gICAgICAgICAgIjAuMDUwNzQyLCAwLjI2MDcwNCwgMC40Mjk5MTcsIDAuNjQxODc4LCAwLjg1NDY3MSwgMS4wNjY4NCwgMS4yNzkwNSIsIFwKLSAgICAgICAgICAiMC4wNTA3MzIsIDAuMjYwNDUxLCAwLjQyOTg4MSwgMC42NDI0MzcsIDAuODU0NjYyLCAxLjA2NjgsIDEuMjc5MDIiLCBcCi0gICAgICAgICAgIjAuMDUwNzM1LCAwLjI2MDcwMywgMC40MzAzNDgsIDAuNjQyNDgxLCAwLjg1NDYyMSwgMS4wNjY4NSwgMS4yNzkwNiIsIFwKLSAgICAgICAgICAiMC4wNTA3NDEsIDAuMjYwNDg4LCAwLjQyOTg5MywgMC42NDI1MDMsIDAuODU0NTAxLCAxLjA2NjgyLCAxLjI3ODkzIiwgXAotICAgICAgICAgICIwLjA1MDczOSwgMC4yNjA3MjIsIDAuNDI5ODM0LCAwLjY0MjQ4MiwgMC44NTQ2MDcsIDEuMDY2ODcsIDEuMjc5MDYiLCBcCi0gICAgICAgICAgIjAuMDUwNzM4LCAwLjI2MDcyNCwgMC40MzAzMjEsIDAuNjQyNDEyLCAwLjg1NDYxOCwgMS4wNjY3NSwgMS4yNzg5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDk0MSwgMC4wMDUwMDMsIDAuMDA1MDEsIDAuMDA1MDE0LCAwLjAwNTAxNiwgMC4wMDUwMTgsIDAuMDA1MDE4IiwgXAotICAgICAgICAgICIwLjAwNDkyOCwgMC4wMDQ5OSwgMC4wMDQ5OTgsIDAuMDA1MDAyLCAwLjAwNTAwMywgMC4wMDUwMDQsIDAuMDA1MDA1IiwgXAotICAgICAgICAgICIwLjAwNDkyNCwgMC4wMDQ5ODYsIDAuMDA0OTk0LCAwLjAwNDk5OCwgMC4wMDUsIDAuMDA1LCAwLjAwNTAwMSIsIFwKLSAgICAgICAgICAiMC4wMDQ5MzIsIDAuMDA0OTk0LCAwLjAwNTAwMiwgMC4wMDUwMDUsIDAuMDA1MDA3LCAwLjAwNTAwOSwgMC4wMDUwMDkiLCBcCi0gICAgICAgICAgIjAuMDA0OTQ3LCAwLjAwNTAwOSwgMC4wMDUwMTcsIDAuMDA1MDIsIDAuMDA1MDIyLCAwLjAwNTAyNCwgMC4wMDUwMjQiLCBcCi0gICAgICAgICAgIjAuMDA0OTU2LCAwLjAwNTAxOSwgMC4wMDUwMjcsIDAuMDA1MDMsIDAuMDA1MDMyLCAwLjAwNTAzMywgMC4wMDUwMzQiLCBcCi0gICAgICAgICAgIjAuMDA0OTgyLCAwLjAwNTA0NSwgMC4wMDUwNTIsIDAuMDA1MDU2LCAwLjAwNTA1OCwgMC4wMDUwNTksIDAuMDA1MDYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDUwODYsIDAuMDA1MTQzLCAwLjAwNTE1LCAwLjAwNTE1NSwgMC4wMDUxNTYsIDAuMDA1MTU3LCAwLjAwNTE1NiIsIFwKLSAgICAgICAgICAiMC4wMDUwNzEsIDAuMDA1MTI4LCAwLjAwNTEzNSwgMC4wMDUxMzgsIDAuMDA1MTM5LCAwLjAwNTE0LCAwLjAwNTE0MiIsIFwKLSAgICAgICAgICAiMC4wMDUwNjMsIDAuMDA1MTIsIDAuMDA1MTI2LCAwLjAwNTEyOSwgMC4wMDUxMzEsIDAuMDA1MTMyLCAwLjAwNTEzMyIsIFwKLSAgICAgICAgICAiMC4wMDUwNjIsIDAuMDA1MTE5LCAwLjAwNTEyNSwgMC4wMDUxMjgsIDAuMDA1MTMsIDAuMDA1MTMxLCAwLjAwNTEzMiIsIFwKLSAgICAgICAgICAiMC4wMDUwNzIsIDAuMDA1MTI4LCAwLjAwNTEzNSwgMC4wMDUxMzgsIDAuMDA1MTQsIDAuMDA1MTQxLCAwLjAwNTE0MSIsIFwKLSAgICAgICAgICAiMC4wMDUwNzgsIDAuMDA1MTM2LCAwLjAwNTE0MywgMC4wMDUxNDYsIDAuMDA1MTQ3LCAwLjAwNTE0OCwgMC4wMDUxNSIsIFwKLSAgICAgICAgICAiMC4wMDUwOTIsIDAuMDA1MTUsIDAuMDA1MTU2LCAwLjAwNTE1OSwgMC4wMDUxNjEsIDAuMDA1MTY0LCAwLjAwNTE2MyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDU0MSwgMC4wMDU0NjcsIDAuMDA1NDc0LCAwLjAwNTQ3NywgMC4wMDU0NzksIDAuMDA1NDgsIDAuMDA1NDgiLCBcCi0gICAgICAgICAgIjAuMDA1Mzk1LCAwLjAwNTQ1MiwgMC4wMDU0NTksIDAuMDA1NDYyLCAwLjAwNTQ2NCwgMC4wMDU0NjYsIDAuMDA1NDY2IiwgXAotICAgICAgICAgICIwLjAwNTM4NCwgMC4wMDU0NDIsIDAuMDA1NDQ4LCAwLjAwNTQ1MSwgMC4wMDU0NTYsIDAuMDA1NDU3LCAwLjAwNTQ1NyIsIFwKLSAgICAgICAgICAiMC4wMDUzNzYsIDAuMDA1NDM0LCAwLjAwNTQ0MSwgMC4wMDU0NDQsIDAuMDA1NDQ1LCAwLjAwNTQ0NywgMC4wMDU0NDciLCBcCi0gICAgICAgICAgIjAuMDA1MzcyLCAwLjAwNTQyOSwgMC4wMDU0MzYsIDAuMDA1NDQsIDAuMDA1NDQxLCAwLjAwNTQ0MiwgMC4wMDU0NDMiLCBcCi0gICAgICAgICAgIjAuMDA1MzcyLCAwLjAwNTQzLCAwLjAwNTQzNywgMC4wMDU0NCwgMC4wMDU0NDIsIDAuMDA1NDQzLCAwLjAwNTQ0NCIsIFwKLSAgICAgICAgICAiMC4wMDUzNzIsIDAuMDA1NDMyLCAwLjAwNTQzOSwgMC4wMDU0NDIsIDAuMDA1NDQ0LCAwLjAwNTQ0NSwgMC4wMDU0NDYiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfcG93ZXIoc2NhbGFyKSB7Ci0gICAgICAgIHZhbHVlcygiMCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oU0UpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTMzNjQ0OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTMzNTgyOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTMzNjQ0OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNDUwMywgMC4wMDQ0OCwgMC4wMDQ0ODYsIDAuMDA0NDg4LCAwLjAwNDUwNSwgMC4wMDQ1MjcsIDAuMDA0NTUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDYwMDksIDAuMDA1OTczLCAwLjAwNTk3NywgMC4wMDU5NzUsIDAuMDA1OTg2LCAwLjAwNjAyNSwgMC4wMDYwNjIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiU04iOwotICAgICAgc2RmX2NvbmQgOiAiU04gPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDI1LCAtMC4wMTM3NSwgLTAuMDA3NSwgMC4wMDUsIDAuMDE3NSwgMC4wMjc1LCAwLjAzNjI1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDI1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMC4wMDYyNSwgMC4wMTYyNSwgMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLjAwMzc1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjA1NSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAyNSwgLTAuMDEyNSwgLTAuMDAyNSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDYxMjUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDA4NzUsIDAiLCBcCi0gICAgICAgICAgIi0wLjA3MTI1LCAtMC4wNjYyNSwgLTAuMDUzNzUsIC0wLjA0MTI1LCAtMC4wMzUsIC0wLjAxODc1LCAtMC4wMSIsIFwKLSAgICAgICAgICAiLTAuMDgsIC0wLjA2ODc1LCAtMC4wNjI1LCAtMC4wNSwgLTAuMDM3NSwgLTAuMDI3NSwgLTAuMDE4NzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMTI1LCAtMC4wMDEyNSwgMC4wMTEyNSwgMC4wMTc1LCAwLjAzLCAwLjA0LCAwLjA0ODc1IiwgXAotICAgICAgICAgICItMC4wMTc1LCAtMC4wMTI1LCAwLCAwLjAxMjUsIDAuMDE4NzUsIDAuMDM1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDE4NzUsIC0wLjAxMjUsIDAsIDAuMDA2MjUsIDAuMDIyNSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDMxMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAwLCAwLjAxLCAwLjAxODc1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDQzNzUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDAyNSwgMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wNjUsIC0wLjA1Mzc1LCAtMC4wNDc1LCAtMC4wMzUsIC0wLjAyODc1LCAtMC4wMTI1LCAtMC4wMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDczNzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDI3NSwgLTAuMDE4NzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlNOIjsKLSAgICAgIHNkZl9jb25kIDogIlNOID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwNjI1LCAwLjA5NSwgMC4wODI1LCAwLjA3LCAwLjA1NzUsIDAuMDQxMjUsIDAuMDMyNSIsIFwKLSAgICAgICAgICAiMC4xMTc1LCAwLjEwNjI1LCAwLjA5Mzc1LCAwLjA4MTI1LCAwLjA2ODc1LCAwLjA1MjUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMTIzNzUsIDAuMTEyNSwgMC4xLCAwLjA4NzUsIDAuMDgxMjUsIDAuMDY1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICIwLjEzNjI1LCAwLjEyNSwgMC4xMTI1LCAwLjEsIDAuMDg3NSwgMC4wNzEyNSwgMC4wNjg3NSIsIFwKLSAgICAgICAgICAiMC4xNDI1LCAwLjEzMTI1LCAwLjExODc1LCAwLjEwNjI1LCAwLjA5Mzc1LCAwLjA4Mzc1LCAwLjA3NSIsIFwKLSAgICAgICAgICAiMC4xNTI1LCAwLjE0MTI1LCAwLjEyODc1LCAwLjExNjI1LCAwLjExLCAwLjEsIDAuMDk3NSIsIFwKLSAgICAgICAgICAiMC4xNjc1LCAwLjE1NjI1LCAwLjE0Mzc1LCAwLjEzMTI1LCAwLjEyNSwgMC4xMTUsIDAuMTEyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwNjI1LCAwLjA5NSwgMC4wODI1LCAwLjA3NjI1LCAwLjA2Mzc1LCAwLjA2LCAwLjA1MTI1IiwgXAotICAgICAgICAgICIwLjExNzUsIDAuMTA2MjUsIDAuMDkzNzUsIDAuMDgxMjUsIDAuMDc1LCAwLjA2NSwgMC4wNjI1IiwgXAotICAgICAgICAgICIwLjEyMzc1LCAwLjExMjUsIDAuMSwgMC4wOTM3NSwgMC4wODc1LCAwLjA3NzUsIDAuMDY4NzUiLCBcCi0gICAgICAgICAgIjAuMTM2MjUsIDAuMTI1LCAwLjExMjUsIDAuMSwgMC4wOTM3NSwgMC4wODM3NSwgMC4wNzUiLCBcCi0gICAgICAgICAgIjAuMTQyNSwgMC4xMzEyNSwgMC4xMTg3NSwgMC4xMDYyNSwgMC4xLCAwLjA5LCAwLjA4NzUiLCBcCi0gICAgICAgICAgIjAuMTUyNSwgMC4xNDEyNSwgMC4xMjg3NSwgMC4xMTYyNSwgMC4xMSwgMC4xLCAwLjA5MTI1IiwgXAotICAgICAgICAgICIwLjE2MTI1LCAwLjE1LCAwLjEzNzUsIDAuMTI1LCAwLjExODc1LCAwLjEwODc1LCAwLjEiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFNJKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA3MDk4MDU7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNzA4MDk0OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDcwOTgwNTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDMxNTgsIDAuMDAzMTQyLCAwLjAwMzEzMiwgMC4wMDMxMjgsIDAuMDAzMTI2LCAwLjAwMzEyNSwgMC4wMDMxMzIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDQ4NzEsIDAuMDA0ODYyLCAwLjAwNDg1NywgMC4wMDQ4NTQsIDAuMDA0ODU1LCAwLjAwNDg1NSwgMC4wMDQ4NiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJTRSZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJTRV9FUV8xX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDUsIC0wLjA0NSwgLTAuMDM4NzUsIC0wLjAzMjUsIC0wLjAyNjI1LCAtMC4wMTYyNSwgLTAuMDA3NSIsIFwKLSAgICAgICAgICAiLTAuMDYxMjUsIC0wLjA1NjI1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAyNzUsIC0wLjAxODc1IiwgXAotICAgICAgICAgICItMC4wNzM3NSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDMzNzUsIC0wLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wOCwgLTAuMDc1LCAtMC4wNjg3NSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA0NjI1LCAtMC4wNDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDkyNSwgLTAuMDg3NSwgLTAuMDc1LCAtMC4wNjg3NSwgLTAuMDYyNSwgLTAuMDU4NzUsIC0wLjA1IiwgXAotICAgICAgICAgICItMC4xMDg3NSwgLTAuMTAzNzUsIC0wLjA5MTI1LCAtMC4wODUsIC0wLjA3ODc1LCAtMC4wNzUsIC0wLjA2NjI1IiwgXAotICAgICAgICAgICItMC4xMjM3NSwgLTAuMTEyNSwgLTAuMTA2MjUsIC0wLjEsIC0wLjA5Mzc1LCAtMC4wODM3NSwgLTAuMDgxMjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMTg3NSwgLTAuMDA3NSwgMC4wMDUsIDAuMDE3NSwgMC4wMjM3NSwgMC4wMzM3NSwgMC4wNDI1IiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAuMDA2MjUsIDAuMDEyNSwgMC4wMjg3NSwgMC4wMzc1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDI1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMC4wMDYyNSwgMC4wMTYyNSwgMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLjAxLCAwLjAxODc1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDQzNzUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDAyNSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDY1LCAtMC4wNTM3NSwgLTAuMDQxMjUsIC0wLjAzNSwgLTAuMDIyNSwgLTAuMDEyNSwgLTAuMDAzNzUiLCBcCi0gICAgICAgICAgIi0wLjA3Mzc1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAyMTI1LCAtMC4wMTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJTRSZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJTRV9FUV8xX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDkzNzUsIDAuMDgyNSwgMC4wNywgMC4wNjM3NSwgMC4wNTc1LCAwLjA0NzUsIDAuMDM4NzUiLCBcCi0gICAgICAgICAgIjAuMTA1LCAwLjA5Mzc1LCAwLjA4MTI1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDUyNSwgMC4wNSIsIFwKLSAgICAgICAgICAiMC4xMTEyNSwgMC4xLCAwLjA5Mzc1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNjUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIjAuMTIzNzUsIDAuMTEyNSwgMC4xLCAwLjA5Mzc1LCAwLjA4NzUsIDAuMDc3NSwgMC4wNjg3NSIsIFwKLSAgICAgICAgICAiMC4xMzYyNSwgMC4xMjUsIDAuMTEyNSwgMC4xMDYyNSwgMC4wOTM3NSwgMC4wODM3NSwgMC4wODEyNSIsIFwKLSAgICAgICAgICAiMC4xNTI1LCAwLjE0MTI1LCAwLjEyODc1LCAwLjEyMjUsIDAuMTEsIDAuMSwgMC4wOTc1IiwgXAotICAgICAgICAgICIwLjE2NzUsIDAuMTU2MjUsIDAuMTQzNzUsIDAuMTMxMjUsIDAuMTI1LCAwLjExNSwgMC4xMDYyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5Mzc1LCAwLjA4MjUsIDAuMDcsIDAuMDU3NSwgMC4wNTEyNSwgMC4wMzUsIDAuMDIiLCBcCi0gICAgICAgICAgIjAuMTA1LCAwLjA5Mzc1LCAwLjA4MTI1LCAwLjA2ODc1LCAwLjA1NjI1LCAwLjA0LCAwLjAzMTI1IiwgXAotICAgICAgICAgICIwLjExNzUsIDAuMTA2MjUsIDAuMDg3NSwgMC4wNzUsIDAuMDY4NzUsIDAuMDUyNSwgMC4wMzc1IiwgXAotICAgICAgICAgICIwLjEyMzc1LCAwLjExMjUsIDAuMSwgMC4wODc1LCAwLjA3NSwgMC4wNTg3NSwgMC4wNSIsIFwKLSAgICAgICAgICAiMC4xMzYyNSwgMC4xMjUsIDAuMTA2MjUsIDAuMDkzNzUsIDAuMDg3NSwgMC4wNzEyNSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiMC4xNDYyNSwgMC4xMzUsIDAuMTIyNSwgMC4xMSwgMC4wOTc1LCAwLjA4MTI1LCAwLjA3MjUiLCBcCi0gICAgICAgICAgIjAuMTYxMjUsIDAuMTUsIDAuMTMxMjUsIDAuMTI1LCAwLjExMjUsIDAuMDk2MjUsIDAuMDgxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFNOKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE1NDEwNDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE0NTE3MzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE1NDEwNDsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA0NTMsIDAuMDAwNDUyLCAwLjAwMDQ1MiwgMC4wMDA0NTIsIDAuMDAwNDUyLCAwLjAwMDQ1MiwgMC4wMDA0NTIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA0NTgsIDAuMDAwNDU0LCAwLjAwMDQ1NCwgMC4wMDA0NTQsIDAuMDAwNDU0LCAwLjAwMDQ1NCwgMC4wMDA0NTQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiU04iOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFEJiFTRSYhU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1NFX0VRXzBfQU5fU0lfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjEzODUyLCAwLjE0ODI0NiwgMC4xNjA1NjcsIDAuMTcyNTIxLCAwLjE4Mzc1OSwgMC4yMDAxMjMsIDAuMjEyNTA4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogcmVjb3ZlcnlfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRCYhU0UmIVNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9TRV9FUV8wX0FOX1NJX0VRXzAgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQocmVjb3ZlcnlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEyNSwgMC4wMDEyNSwgLTAuMDExMjUsIC0wLjAyMzc1LCAtMC4wMzYyNSwgLTAuMDUyNSwgLTAuMDY3NSIsIFwKLSAgICAgICAgICAiMC4wMTc1LCAwLjAwNjI1LCAtMC4wMDYyNSwgLTAuMDE4NzUsIC0wLjAzMTI1LCAtMC4wNDc1LCAtMC4wNTYyNSIsIFwKLSAgICAgICAgICAiMC4wMywgMC4wMTg3NSwgMC4wMDYyNSwgLTAuMDA2MjUsIC0wLjAxODc1LCAtMC4wMzUsIC0wLjA1IiwgXAotICAgICAgICAgICIwLjA0MjUsIDAuMDMxMjUsIDAuMDEyNSwgMCwgLTAuMDEyNSwgLTAuMDI4NzUsIC0wLjAzNzUiLCBcCi0gICAgICAgICAgIjAuMDQ4NzUsIDAuMDM3NSwgMC4wMjUsIDAuMDEyNSwgMCwgLTAuMDE2MjUsIC0wLjAyNSIsIFwKLSAgICAgICAgICAiMC4wNjUsIDAuMDUzNzUsIDAuMDQxMjUsIDAuMDI4NzUsIDAuMDE2MjUsIDAsIC0wLjAwODc1IiwgXAotICAgICAgICAgICIwLjA4LCAwLjA2ODc1LCAwLjA1NjI1LCAwLjA0Mzc1LCAwLjAzMTI1LCAwLjAxNSwgMCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJlbW92YWxfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRCYhU0UmIVNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9TRV9FUV8wX0FOX1NJX0VRXzAgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQocmVtb3ZhbF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzEyNSwgMC4wNDI1LCAwLjA1NSwgMC4wNjc1LCAwLjA4LCAwLjA5NjI1LCAwLjEwNSIsIFwKLSAgICAgICAgICAiMC4wMjYyNSwgMC4wMzc1LCAwLjA1LCAwLjA2MjUsIDAuMDY4NzUsIDAuMDg1LCAwLjEiLCBcCi0gICAgICAgICAgIjAuMDEzNzUsIDAuMDI1LCAwLjAzNzUsIDAuMDUsIDAuMDYyNSwgMC4wNzI1LCAwLjA4NzUiLCBcCi0gICAgICAgICAgIjAuMDAxMjUsIDAuMDEyNSwgMC4wMjUsIDAuMDM3NSwgMC4wNSwgMC4wNjYyNSwgMC4wNzUiLCBcCi0gICAgICAgICAgIi0wLjAwNSwgMC4wMDYyNSwgMC4wMTg3NSwgMC4wMzEyNSwgMC4wMzc1LCAwLjA1Mzc1LCAwLjA2ODc1IiwgXAotICAgICAgICAgICItMC4wMjEyNSwgLTAuMDEsIDAuMDAyNSwgMC4wMTUsIDAuMDI3NSwgMC4wNDM3NSwgMC4wNTI1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLjAwNjI1LCAwLjAxMjUsIDAuMDI4NzUsIDAuMDQzNzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IFNERkZYMiAqCi0gKiAtLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKFNERkZYMikgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjQ3ODEzNzsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBmZiAoTjMwLFFCSU5UKSB7Ci0gICAgbmV4dF9zdGF0ZSA6ICIoKFNFIFNJKSArICghU0UgRCkpIjsKLSAgICBjbG9ja2VkX29uIDogIkNLIjsKLSAgfQotICBwaW4oQ0spICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYxOTY2MjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MTkyNzU7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjE5NjYyOwotICAgIGNsb2NrIDogdHJ1ZTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDMwNDEsIDAuMDAzMDE1LCAwLjAwMzAwMSwgMC4wMDMwMDIsIDAuMDAzMDE3LCAwLjAwMzAzNywgMC4wMDMwNTYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDU5NCwgMC4wMDU5MTYsIDAuMDA1OTEyLCAwLjAwNTkyLCAwLjAwNTk0NCwgMC4wMDU5OCwgMC4wMDYwMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFEJiFTRSYhU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1NFX0VRXzBfQU5fU0lfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjE1NjMwOCwgMC4xNjY1NDIsIDAuMTc5MTc5LCAwLjE5MDg1NiwgMC4yMDExNzIsIDAuMjE1Mjc2LCAwLjIyNjEyNiIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDkwODMzLCAwLjEwMDc5NywgMC4xMTMwMTIsIDAuMTI0MDI3LCAwLjEzMzY1NywgMC4xNDY1MTUsIDAuMTU2Mzg4Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihEKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2NTM2MzQ7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjUxOTU2OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDY1MzYzNDsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDI2NzYsIDAuMDAyNjU5LCAwLjAwMjY1LCAwLjAwMjY0NiwgMC4wMDI2NDQsIDAuMDAyNjQ3LCAwLjAwMjY1NSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNDI4MSwgMC4wMDQyNzIsIDAuMDA0MjY2LCAwLjAwNDI2NCwgMC4wMDQyNjUsIDAuMDA0MjY2LCAwLjAwNDI3NCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhU0UiOwotICAgICAgc2RmX2NvbmQgOiAiU0UgPT0gMSdiMCI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDUsIC0wLjA0NSwgLTAuMDM4NzUsIC0wLjAzMjUsIC0wLjAyNjI1LCAtMC4wMjI1LCAtMC4wMTM3NSIsIFwKLSAgICAgICAgICAiLTAuMDYxMjUsIC0wLjA1NjI1LCAtMC4wNDM3NSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAyNzUsIC0wLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDczNzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjA0LCAtMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDgsIC0wLjA3NSwgLTAuMDY4NzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNTI1LCAtMC4wNDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDkyNSwgLTAuMDg3NSwgLTAuMDgxMjUsIC0wLjA3NSwgLTAuMDY4NzUsIC0wLjA1ODc1LCAtMC4wNTYyNSIsIFwKLSAgICAgICAgICAiLTAuMTA4NzUsIC0wLjEwMzc1LCAtMC4wOTEyNSwgLTAuMDkxMjUsIC0wLjA4NSwgLTAuMDc1LCAtMC4wNzI1IiwgXAotICAgICAgICAgICItMC4xMTc1LCAtMC4xMTI1LCAtMC4xMDYyNSwgLTAuMSwgLTAuMDkzNzUsIC0wLjA5LCAtMC4wODEyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAxMjUsIC0wLjAwNzUsIDAuMDA1LCAwLjAxNzUsIDAuMDIzNzUsIDAuMDMzNzUsIDAuMDQyNSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxMjUsIDAsIDAuMDA2MjUsIDAuMDEyNSwgMC4wMjg3NSwgMC4wMzc1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDI1LCAtMC4wMTI1LCAwLCAwLjAwNjI1LCAwLjAxNjI1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDMxMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMC4wMSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDAyNSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDU4NzUsIC0wLjA1Mzc1LCAtMC4wNDEyNSwgLTAuMDM1LCAtMC4wMjI1LCAtMC4wMTI1LCAtMC4wMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDY3NSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDMxMjUsIC0wLjAyMTI1LCAtMC4wMTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhU0UiOwotICAgICAgc2RmX2NvbmQgOiAiU0UgPT0gMSdiMCI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg3NSwgMC4wNzYyNSwgMC4wNjM3NSwgMC4wNTc1LCAwLjA1MTI1LCAwLjA0MTI1LCAwLjAzODc1IiwgXAotICAgICAgICAgICIwLjA5MjUsIDAuMDg3NSwgMC4wNzUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNTI1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjEwNSwgMC4wOTM3NSwgMC4wODc1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIjAuMTE3NSwgMC4xMDYyNSwgMC4wOTM3NSwgMC4wODc1LCAwLjA4MTI1LCAwLjA3MTI1LCAwLjA2ODc1IiwgXAotICAgICAgICAgICIwLjEzLCAwLjExODc1LCAwLjEwNjI1LCAwLjEsIDAuMDkzNzUsIDAuMDgzNzUsIDAuMDgxMjUiLCBcCi0gICAgICAgICAgIjAuMTQsIDAuMTM1LCAwLjEyMjUsIDAuMTE2MjUsIDAuMTEsIDAuMSwgMC4wOTEyNSIsIFwKLSAgICAgICAgICAiMC4xNTUsIDAuMTQzNzUsIDAuMTM3NSwgMC4xMjUsIDAuMTE4NzUsIDAuMTE1LCAwLjEwNjI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDYyNSwgMC4wNTEyNSwgMC4wMzg3NSwgMC4wMjYyNSwgMC4wMiwgMC4wMDM3NSwgLTAuMDA1IiwgXAotICAgICAgICAgICIwLjA3Mzc1LCAwLjA2MjUsIDAuMDUsIDAuMDM3NSwgMC4wMjUsIDAuMDE1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICIwLjA4LCAwLjA3NSwgMC4wNTYyNSwgMC4wNSwgMC4wMzc1LCAwLjAyMTI1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMDkyNSwgMC4wODEyNSwgMC4wNjg3NSwgMC4wNTYyNSwgMC4wNSwgMC4wMzM3NSwgMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMDk4NzUsIDAuMDkzNzUsIDAuMDgxMjUsIDAuMDY4NzUsIDAuMDU2MjUsIDAuMDQsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMTE1LCAwLjEwMzc1LCAwLjA5MTI1LCAwLjA3ODc1LCAwLjA3MjUsIDAuMDU2MjUsIDAuMDQ3NSIsIFwKLSAgICAgICAgICAiMC4xMywgMC4xMTg3NSwgMC4xMDYyNSwgMC4wOTM3NSwgMC4wODEyNSwgMC4wNjUsIDAuMDU2MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFEpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC41MzI2OwotICAgIGZ1bmN0aW9uIDogIk4zMCI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3NlbnNlIDogbm9uX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiByaXNpbmdfZWRnZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTE5MDIsIDAuMjIxMDk5LCAwLjMwMjU3OSwgMC40MDM2MTEsIDAuNTA0NzExLCAwLjYwNDg3OSwgMC43MDY1NTYiLCBcCi0gICAgICAgICAgIjAuMTI5MjA1LCAwLjIzMTIzNywgMC4zMTI0MTMsIDAuNDEyODk1LCAwLjUxNDExOCwgMC42MTUwODEsIDAuNzE2NzUzIiwgXAotICAgICAgICAgICIwLjE0MTgsIDAuMjQzOTA2LCAwLjMyNTM5NiwgMC40MjYwNzUsIDAuNTI2NzMyLCAwLjYyNzY0NCwgMC43MjkzNTEiLCBcCi0gICAgICAgICAgIjAuMTUzMzIyLCAwLjI1NTM3OCwgMC4zMzY5NDQsIDAuNDM3MDY2LCAwLjUzODA1NywgMC42MzkyMTUsIDAuNzQwODkiLCBcCi0gICAgICAgICAgIjAuMTYzMzcxLCAwLjI2NTQ3OCwgMC4zNDY5NzEsIDAuNDQ3MzYyLCAwLjU0ODY3NiwgMC42NDkzMSwgMC43NTA5MzIiLCBcCi0gICAgICAgICAgIjAuMTc3NDA4LCAwLjI3OTUzNCwgMC4zNjEwMzYsIDAuNDYxMDQ1LCAwLjU2MjcxOSwgMC42NjM0OTcsIDAuNzY0OTg1IiwgXAotICAgICAgICAgICIwLjE4ODAxNywgMC4yODk5OTksIDAuMzcwOTI4LCAwLjQ3MjI1NSwgMC41NzI5NTEsIDAuNjc0NTAzLCAwLjc3NTIwNSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTI3MDMsIDAuMjU3MDY5LCAwLjQyMzc4NywgMC42MzEyOTUsIDAuODM5NjYyLCAxLjA0ODQ1LCAxLjI1ODk0IiwgXAotICAgICAgICAgICIwLjA1Mjc4NCwgMC4yNTc3NiwgMC40MjM2MTUsIDAuNjMxODg3LCAwLjgzOTY2OSwgMS4wNDgzOCwgMS4yNTg5MyIsIFwKLSAgICAgICAgICAiMC4wNTI3ODEsIDAuMjU2NzM2LCAwLjQyMzAyNiwgMC42MzI0OTQsIDAuODM5OTUxLCAxLjA0ODQ4LCAxLjI1ODkyIiwgXAotICAgICAgICAgICIwLjA1Mjc1LCAwLjI1NzY0NCwgMC40MjI4MTIsIDAuNjMxODk2LCAwLjg0MDE0MywgMS4wNDgzNSwgMS4yNTg5MiIsIFwKLSAgICAgICAgICAiMC4wNTI3NjgsIDAuMjU3ODczLCAwLjQyMzgyOCwgMC42MzIzOTEsIDAuODQxMzc5LCAxLjA0ODEsIDEuMjU4OSIsIFwKLSAgICAgICAgICAiMC4wNTI3MzQsIDAuMjU3NTM5LCAwLjQyMjk1MSwgMC42MzE3MzgsIDAuODQxMzYsIDEuMDQ3OTQsIDEuMjU4ODgiLCBcCi0gICAgICAgICAgIjAuMDUyNjkzLCAwLjI1Nzg2NSwgMC40MjQwNTUsIDAuNjMyNDgzLCAwLjgzOTkwMSwgMS4wNTAxMiwgMS4yNTYwNyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMzQ0ODcsIDAuMjM5Mzg0LCAwLjMyMjQ5NCwgMC40MjU2ODQsIDAuNTI5NDAxLCAwLjYzMjgxNiwgMC43MzY1MDgiLCBcCi0gICAgICAgICAgIjAuMTQ0NzE4LCAwLjI0OTYyMywgMC4zMzI3NTQsIDAuNDM1OTM3LCAwLjUzOTUyMSwgMC42NDM0MjQsIDAuNzQ2NzM3IiwgXAotICAgICAgICAgICIwLjE1NzM2NCwgMC4yNjIyMzcsIDAuMzQ1MjYsIDAuNDQ4OTYzLCAwLjU1MjA1OSwgMC42NTU2NzksIDAuNzU5NCIsIFwKLSAgICAgICAgICAiMC4xNjkwNDQsIDAuMjczOTEyLCAwLjM1Njk0LCAwLjQ2MDI1LCAwLjU2MzgwOCwgMC42NjczNjQsIDAuNzcxMjQ2IiwgXAotICAgICAgICAgICIwLjE3OTM1OCwgMC4yODQyMjEsIDAuMzY3MjQsIDAuNDcwNSwgMC41NzQzMjIsIDAuNjc3Njg4LCAwLjc4MTIyNCIsIFwKLSAgICAgICAgICAiMC4xOTM0NDksIDAuMjk4MzYsIDAuMzgxNDksIDAuNDg0NjU3LCAwLjU4ODI1OSwgMC42OTIxNzIsIDAuNzk1NDczIiwgXAotICAgICAgICAgICIwLjIwNDI5NSwgMC4zMDkyNjMsIDAuMzkyMTMzLCAwLjQ5NTQ5LCAwLjU5OTA0NywgMC43MDI3NzEsIDAuODA2MjA4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1Mjc5NSwgMC4yNTg3MjQsIDAuNDI2MDk1LCAwLjYzNjY3NiwgMC44NDcwMTYsIDEuMDU1NTYsIDEuMjY2ODkiLCBcCi0gICAgICAgICAgIjAuMDUyOTE4LCAwLjI1ODY4NywgMC40MjYwMDEsIDAuNjM2NzUsIDAuODQ2Mzk3LCAxLjA1NDk4LCAxLjI2Njg4IiwgXAotICAgICAgICAgICIwLjA1Mjc5NSwgMC4yNTg5NDcsIDAuNDI2MTQ0LCAwLjYzNTI3MywgMC44NDU4NzIsIDEuMDU1NjgsIDEuMjY2ODQiLCBcCi0gICAgICAgICAgIjAuMDUyNzk0LCAwLjI1ODk5MywgMC40MjYxNDMsIDAuNjM1NzY5LCAwLjg0NTc1NiwgMS4wNTU2NSwgMS4yNjcxNyIsIFwKLSAgICAgICAgICAiMC4wNTI3ODYsIDAuMjU5MDI5LCAwLjQyNjA2OSwgMC42MzU4MTEsIDAuODQ3MDQxLCAxLjA1NTYsIDEuMjY1MTMiLCBcCi0gICAgICAgICAgIjAuMDUyNzA5LCAwLjI1ODY3MywgMC40MjU5OTIsIDAuNjM2NzEzLCAwLjg0NjM4OSwgMS4wNTUyOCwgMS4yNjY5IiwgXAotICAgICAgICAgICIwLjA1Mjg1NSwgMC4yNTg4ODksIDAuNDI2NzAyLCAwLjYzNjcwMiwgMC44NDYxNjcsIDEuMDU3LCAxLjI2NjM1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNTE1MiwgMC4wMDUxODEsIDAuMDA1MTc3LCAwLjAwNTE3MywgMC4wMDUxNzEsIDAuMDA1MTY5LCAwLjAwNTE2OCIsIFwKLSAgICAgICAgICAiMC4wMDUxMzQsIDAuMDA1MTY0LCAwLjAwNTE2LCAwLjAwNTE1NiwgMC4wMDUxNTQsIDAuMDA1MTUzLCAwLjAwNTE1MSIsIFwKLSAgICAgICAgICAiMC4wMDUxMjgsIDAuMDA1MTU3LCAwLjAwNTE1MiwgMC4wMDUxNDksIDAuMDA1MTQ3LCAwLjAwNTE0NiwgMC4wMDUxNDQiLCBcCi0gICAgICAgICAgIjAuMDA1MTI3LCAwLjAwNTE1OCwgMC4wMDUxNTQsIDAuMDA1MTUxLCAwLjAwNTE0OCwgMC4wMDUxNDcsIDAuMDA1MTQ2IiwgXAotICAgICAgICAgICIwLjAwNTEzMywgMC4wMDUxNjUsIDAuMDA1MTYsIDAuMDA1MTU3LCAwLjAwNTE1NCwgMC4wMDUxNTIsIDAuMDA1MTUxIiwgXAotICAgICAgICAgICIwLjAwNTE0NCwgMC4wMDUxNzgsIDAuMDA1MTc0LCAwLjAwNTE3LCAwLjAwNTE2NywgMC4wMDUxNjYsIDAuMDA1MTY0IiwgXAotICAgICAgICAgICIwLjAwNTE1OSwgMC4wMDUxOTQsIDAuMDA1MTksIDAuMDA1MTg4LCAwLjAwNTE4NCwgMC4wMDUxODMsIDAuMDA1MTgyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1NDc5LCAwLjAwNTUyOCwgMC4wMDU1MzQsIDAuMDA1NTM2LCAwLjAwNTUzNywgMC4wMDU1MzgsIDAuMDA1NTM5IiwgXAotICAgICAgICAgICIwLjAwNTQ2NCwgMC4wMDU1MTMsIDAuMDA1NTE4LCAwLjAwNTUyMSwgMC4wMDU1MjIsIDAuMDA1NTIzLCAwLjAwNTUyMyIsIFwKLSAgICAgICAgICAiMC4wMDU0NjMsIDAuMDA1NTEyLCAwLjAwNTUxOCwgMC4wMDU1MiwgMC4wMDU1MjEsIDAuMDA1NTIyLCAwLjAwNTUyMyIsIFwKLSAgICAgICAgICAiMC4wMDU0NzEsIDAuMDA1NTIsIDAuMDA1NTI2LCAwLjAwNTUyOCwgMC4wMDU1MywgMC4wMDU1MywgMC4wMDU1MzEiLCBcCi0gICAgICAgICAgIjAuMDA1NDg1LCAwLjAwNTUzNSwgMC4wMDU1NCwgMC4wMDU1NDMsIDAuMDA1NTQ0LCAwLjAwNTU0NSwgMC4wMDU1NDUiLCBcCi0gICAgICAgICAgIjAuMDA1NTA0LCAwLjAwNTU1NSwgMC4wMDU1NiwgMC4wMDU1NjMsIDAuMDA1NTY0LCAwLjAwNTU2NCwgMC4wMDU1NjUiLCBcCi0gICAgICAgICAgIjAuMDA1NTI2LCAwLjAwNTU3NSwgMC4wMDU1ODEsIDAuMDA1NTgzLCAwLjAwNTU4NSwgMC4wMDU1ODYsIDAuMDA1NTg1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihRTikgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjUxOTg2OTsKLSAgICBmdW5jdGlvbiA6ICJRQklOVCI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3NlbnNlIDogbm9uX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiByaXNpbmdfZWRnZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTU2MzExLCAwLjI1Nzk2MiwgMC4zMzk0NTEsIDAuNDQxMiwgMC41NDMwMDYsIDAuNjQ0ODI3LCAwLjc0NjY0OSIsIFwKLSAgICAgICAgICAiMC4xNjY1NDUsIDAuMjY4MTk1LCAwLjM0OTY5MiwgMC40NTE0MjgsIDAuNTUzMjQyLCAwLjY1NTIsIDAuNzU2ODc5IiwgXAotICAgICAgICAgICIwLjE3OTE4MSwgMC4yODA4ODQsIDAuMzYyMzQ0LCAwLjQ2NDIxNywgMC41NjU5NzIsIDAuNjY3NzU5LCAwLjc2OTU4MiIsIFwKLSAgICAgICAgICAiMC4xOTA4NTksIDAuMjkyNTYyLCAwLjM3NDAyMiwgMC40NzU4NTcsIDAuNTc3NjI4LCAwLjY3OTQzNiwgMC43ODEzNzYiLCBcCi0gICAgICAgICAgIjAuMjAxMTcyLCAwLjMwMjg3NiwgMC4zODQzMzMsIDAuNDg2MTMxLCAwLjU4Nzk0NSwgMC42ODk3NDksIDAuNzkxNjQ3IiwgXAotICAgICAgICAgICIwLjIxNTI3NiwgMC4zMTY5MjUsIDAuMzk4NDIzLCAwLjUwMDE2MSwgMC42MDE5NzIsIDAuNzAzOTQ0LCAwLjgwNTYwOSIsIFwKLSAgICAgICAgICAiMC4yMjYxMjYsIDAuMzI3ODU2LCAwLjQwOTI4MywgMC41MTEwNzksIDAuNjEyODk3LCAwLjcxNDcxLCAwLjgxNjUyIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1MDkxMSwgMC4yNTg0MjIsIDAuNDI2Mzk0LCAwLjYzNzE1MiwgMC44NDc3NDksIDEuMDU2NSwgMS4yNjgzIiwgXAotICAgICAgICAgICIwLjA1MDk1MSwgMC4yNTg0MTYsIDAuNDI2MzgyLCAwLjYzNzE3LCAwLjg0NzM1OCwgMS4wNTU5MywgMS4yNjgzIiwgXAotICAgICAgICAgICIwLjA1MDkzNiwgMC4yNTg0MzcsIDAuNDI2MjU2LCAwLjYzNTk3MSwgMC44NDY1ODEsIDEuMDU2NjUsIDEuMjY4MjciLCBcCi0gICAgICAgICAgIjAuMDUwOTM2LCAwLjI1ODQzNywgMC40MjYyNTgsIDAuNjM2MzgsIDAuODQ2NTc4LCAxLjA1NjYxLCAxLjI2ODQ3IiwgXAotICAgICAgICAgICIwLjA1MDkzNiwgMC4yNTg0MzYsIDAuNDI2MjY1LCAwLjYzNjU5MSwgMC44NDc3NDgsIDEuMDU2NTQsIDEuMjY2MjUiLCBcCi0gICAgICAgICAgIjAuMDUwOTMsIDAuMjU4NDEzLCAwLjQyNjM4MSwgMC42MzcxNjcsIDAuODQ3MzU1LCAxLjA1NjI5LCAxLjI2ODMxIiwgXAotICAgICAgICAgICIwLjA1MDk2NywgMC4yNTg1MjcsIDAuNDI3MjM4LCAwLjYzNzE2NSwgMC44NDczNTMsIDEuMDU4MDMsIDEuMjY3NzQiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTQzNzE1LCAwLjI0NzM0NiwgMC4zMzAzMjMsIDAuNDMzOTQ3LCAwLjUzNzU3LCAwLjY0MTEzNSwgMC43NDQ3NDEiLCBcCi0gICAgICAgICAgIjAuMTUzOTE1LCAwLjI1NzU0NywgMC4zNDA0OTQsIDAuNDQ0MDk0LCAwLjU0Nzc0NSwgMC42NTEzNDgsIDAuNzU0OTU3IiwgXAotICAgICAgICAgICIwLjE2NjUwNiwgMC4yNzAxNDYsIDAuMzUzMTMsIDAuNDU2Njc5LCAwLjU2MDI5NywgMC42NjM5MzEsIDAuNzY3NTQzIiwgXAotICAgICAgICAgICIwLjE3ODA0MywgMC4yODE2NzIsIDAuMzY0NjcyLCAwLjQ2ODIxNSwgMC41NzE4NjEsIDAuNjc1NDY5LCAwLjc3OTA4MiIsIFwKLSAgICAgICAgICAiMC4xODgwNzgsIDAuMjkxNjk1LCAwLjM3NDY3NiwgMC40NzgxNDksIDAuNTgxODM4LCAwLjY4NTQ3MiwgMC43ODkwOSIsIFwKLSAgICAgICAgICAiMC4yMDIwOTksIDAuMzA1NzM0LCAwLjM4ODcxOCwgMC40OTIxNTUsIDAuNTk1ODc0LCAwLjY5OTUwOCwgMC44MDMxMjgiLCBcCi0gICAgICAgICAgIjAuMjEyNzI2LCAwLjMxNjMwMSwgMC4zOTkyMzYsIDAuNTAyODQ3LCAwLjYwNjQ2OCwgMC43MTAwOTksIDAuODEzNzEyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1MDkyNywgMC4yNTgzMDUsIDAuNDI2MDQ0LCAwLjYzNTUxNywgMC44NDU1MDEsIDEuMDU1OTEsIDEuMjY2OTUiLCBcCi0gICAgICAgICAgIjAuMDUwOTQ0LCAwLjI1ODM0LCAwLjQyNjEyOSwgMC42MzYwODYsIDAuODQ1MzMxLCAxLjA1NTksIDEuMjY2OTQiLCBcCi0gICAgICAgICAgIjAuMDUwOTQyLCAwLjI1ODMyNSwgMC40MjU5ODMsIDAuNjM2Nzg4LCAwLjg0NTg2MiwgMS4wNTU5MSwgMS4yNjY5NSIsIFwKLSAgICAgICAgICAiMC4wNTA5MTksIDAuMjU4MTkxLCAwLjQyNTgyMSwgMC42MzYwNiwgMC44NDU4MjcsIDEuMDU1ODgsIDEuMjY2OTQiLCBcCi0gICAgICAgICAgIjAuMDUwOTM4LCAwLjI1ODMwOCwgMC40MjYwNDksIDAuNjM2NTcxLCAwLjg0Njc3LCAxLjA1NTgzLCAxLjI2NjkzIiwgXAotICAgICAgICAgICIwLjA1MDkxMSwgMC4yNTgzMTcsIDAuNDI1OTE3LCAwLjYzNTkyOCwgMC44NDY3NDUsIDEuMDU1NywgMS4yNjY5MiIsIFwKLSAgICAgICAgICAiMC4wNTA5NTMsIDAuMjU4Mzk4LCAwLjQyNjI3NSwgMC42MzY3NCwgMC44NDU4NjYsIDEuMDU2ODQsIDEuMjY1NTQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1NDc5LCAwLjAwNTUyOCwgMC4wMDU1MzQsIDAuMDA1NTM2LCAwLjAwNTUzNywgMC4wMDU1MzgsIDAuMDA1NTM5IiwgXAotICAgICAgICAgICIwLjAwNTQ2NCwgMC4wMDU1MTMsIDAuMDA1NTE4LCAwLjAwNTUyMSwgMC4wMDU1MjIsIDAuMDA1NTIzLCAwLjAwNTUyMyIsIFwKLSAgICAgICAgICAiMC4wMDU0NjMsIDAuMDA1NTEyLCAwLjAwNTUxOCwgMC4wMDU1MiwgMC4wMDU1MjEsIDAuMDA1NTIyLCAwLjAwNTUyMyIsIFwKLSAgICAgICAgICAiMC4wMDU0NzEsIDAuMDA1NTIsIDAuMDA1NTI2LCAwLjAwNTUyOCwgMC4wMDU1MywgMC4wMDU1MywgMC4wMDU1MzEiLCBcCi0gICAgICAgICAgIjAuMDA1NDg1LCAwLjAwNTUzNSwgMC4wMDU1NCwgMC4wMDU1NDMsIDAuMDA1NTQ0LCAwLjAwNTU0NSwgMC4wMDU1NDUiLCBcCi0gICAgICAgICAgIjAuMDA1NTA0LCAwLjAwNTU1NSwgMC4wMDU1NiwgMC4wMDU1NjMsIDAuMDA1NTY0LCAwLjAwNTU2NCwgMC4wMDU1NjUiLCBcCi0gICAgICAgICAgIjAuMDA1NTI2LCAwLjAwNTU3NSwgMC4wMDU1ODEsIDAuMDA1NTgzLCAwLjAwNTU4NSwgMC4wMDU1ODYsIDAuMDA1NTg1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1MTUyLCAwLjAwNTE4MSwgMC4wMDUxNzcsIDAuMDA1MTczLCAwLjAwNTE3MSwgMC4wMDUxNjksIDAuMDA1MTY4IiwgXAotICAgICAgICAgICIwLjAwNTEzNCwgMC4wMDUxNjQsIDAuMDA1MTYsIDAuMDA1MTU2LCAwLjAwNTE1NCwgMC4wMDUxNTMsIDAuMDA1MTUxIiwgXAotICAgICAgICAgICIwLjAwNTEyOCwgMC4wMDUxNTcsIDAuMDA1MTUyLCAwLjAwNTE0OSwgMC4wMDUxNDcsIDAuMDA1MTQ2LCAwLjAwNTE0NCIsIFwKLSAgICAgICAgICAiMC4wMDUxMjcsIDAuMDA1MTU4LCAwLjAwNTE1NCwgMC4wMDUxNTEsIDAuMDA1MTQ4LCAwLjAwNTE0NywgMC4wMDUxNDYiLCBcCi0gICAgICAgICAgIjAuMDA1MTMzLCAwLjAwNTE2NSwgMC4wMDUxNiwgMC4wMDUxNTcsIDAuMDA1MTU0LCAwLjAwNTE1MiwgMC4wMDUxNTEiLCBcCi0gICAgICAgICAgIjAuMDA1MTQ0LCAwLjAwNTE3OCwgMC4wMDUxNzQsIDAuMDA1MTcsIDAuMDA1MTY3LCAwLjAwNTE2NiwgMC4wMDUxNjQiLCBcCi0gICAgICAgICAgIjAuMDA1MTU5LCAwLjAwNTE5NCwgMC4wMDUxOSwgMC4wMDUxODgsIDAuMDA1MTg0LCAwLjAwNTE4MywgMC4wMDUxODIiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFNFKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDExOTAyOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTE5MDE7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxMTkwMjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDQxMjksIDAuMDA0MTEsIDAuMDA0MTA2LCAwLjAwNDExMSwgMC4wMDQxMjQsIDAuMDA0MTQ3LCAwLjAwNDE3NCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNTgxMywgMC4wMDU3NzksIDAuMDA1NzY4LCAwLjAwNTc3MiwgMC4wMDU3ODcsIDAuMDA1ODMsIDAuMDA1ODY2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEJlNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9TSV9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjA0Mzc1LCAtMC4wMzg3NSwgLTAuMDMyNSwgLTAuMDI2MjUsIC0wLjAyLCAtMC4wMTYyNSwgLTAuMDA3NSIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMjEyNSwgLTAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjA2NzUsIC0wLjA2MjUsIC0wLjA1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjAzMzc1LCAtMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDgsIC0wLjA2ODc1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDU2MjUsIC0wLjA0NjI1LCAtMC4wMzc1IiwgXAotICAgICAgICAgICItMC4wOTI1LCAtMC4wODEyNSwgLTAuMDc1LCAtMC4wNjg3NSwgLTAuMDYyNSwgLTAuMDU4NzUsIC0wLjA1IiwgXAotICAgICAgICAgICItMC4xMDg3NSwgLTAuMDk3NSwgLTAuMDkxMjUsIC0wLjA4NSwgLTAuMDc4NzUsIC0wLjA3NSwgLTAuMDY2MjUiLCBcCi0gICAgICAgICAgIi0wLjExNzUsIC0wLjExMjUsIC0wLjEwNjI1LCAtMC4xLCAtMC4wOTM3NSwgLTAuMDksIC0wLjA4MTI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDA2MjUsIC0wLjAwMTI1LCAwLjAxMTI1LCAwLjAyMzc1LCAwLjAzLCAwLjA0LCAwLjA0ODc1IiwgXAotICAgICAgICAgICItMC4wMTc1LCAtMC4wMDYyNSwgMC4wMDYyNSwgMC4wMTI1LCAwLjAxODc1LCAwLjAzNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAxODc1LCAtMC4wMDYyNSwgMCwgMC4wMTI1LCAwLjAyMjUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLCAwLjAxLCAwLjAxODc1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDM3NSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgMC4wMDM3NSwgMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wNTI1LCAtMC4wNDc1LCAtMC4wNDEyNSwgLTAuMDI4NzUsIC0wLjAyMjUsIC0wLjAxMjUsIC0wLjAwMzc1IiwgXAotICAgICAgICAgICItMC4wNjEyNSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDIxMjUsIC0wLjAxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiRCYhU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8xX0FOX1NJX0VRXzAgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDI1LCAtMC4wMTM3NSwgLTAuMDA3NSwgMC4wMDUsIDAuMDExMjUsIDAuMDIxMjUsIDAuMDMiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMDYyNSwgMCwgMC4wMTYyNSwgMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAwLjAwMzc1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjA1NSwgLTAuMDUsIC0wLjAzNzUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAwODc1LCAwIiwgXAotICAgICAgICAgICItMC4wNjc1LCAtMC4wNTYyNSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAyNSwgLTAuMDE1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDc3NSwgLTAuMDY2MjUsIC0wLjA1Mzc1LCAtMC4wNDc1LCAtMC4wNDEyNSwgLTAuMDI1LCAtMC4wMTYyNSIsIFwKLSAgICAgICAgICAiLTAuMDg2MjUsIC0wLjA3NSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA0Mzc1LCAtMC4wMzM3NSwgLTAuMDI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDYyNSwgLTAuMDU3NSwgLTAuMDUxMjUsIC0wLjA0NSwgLTAuMDM4NzUsIC0wLjAzNSwgLTAuMDI2MjUiLCBcCi0gICAgICAgICAgIi0wLjA3Mzc1LCAtMC4wNjg3NSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNCwgLTAuMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDg2MjUsIC0wLjA4MTI1LCAtMC4wNjg3NSwgLTAuMDY4NzUsIC0wLjA2MjUsIC0wLjA1MjUsIC0wLjA1IiwgXAotICAgICAgICAgICItMC4wOTI1LCAtMC4wODc1LCAtMC4wODEyNSwgLTAuMDc1LCAtMC4wNjg3NSwgLTAuMDY1LCAtMC4wNTYyNSIsIFwKLSAgICAgICAgICAiLTAuMTA1LCAtMC4wOTM3NSwgLTAuMDg3NSwgLTAuMDgxMjUsIC0wLjA3NSwgLTAuMDcxMjUsIC0wLjA2MjUiLCBcCi0gICAgICAgICAgIi0wLjEwODc1LCAtMC4xMDM3NSwgLTAuMDk3NSwgLTAuMDkxMjUsIC0wLjA4NSwgLTAuMDgxMjUsIC0wLjA3MjUiLCBcCi0gICAgICAgICAgIi0wLjExNzUsIC0wLjExMjUsIC0wLjEwNjI1LCAtMC4xLCAtMC4wOTM3NSwgLTAuMDgzNzUsIC0wLjA4MTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRCZTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fU0lfRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODEyNSwgMC4wNywgMC4wNTc1LCAwLjA1MTI1LCAwLjA0NSwgMC4wMzUsIDAuMDMyNSIsIFwKLSAgICAgICAgICAiMC4wOTI1LCAwLjA4MTI1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDQ2MjUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMDk4NzUsIDAuMDkzNzUsIDAuMDgxMjUsIDAuMDc1LCAwLjA2ODc1LCAwLjA1ODc1LCAwLjA1IiwgXAotICAgICAgICAgICIwLjExMTI1LCAwLjEsIDAuMDkzNzUsIDAuMDg3NSwgMC4wODEyNSwgMC4wNzEyNSwgMC4wNjI1IiwgXAotICAgICAgICAgICIwLjEyMzc1LCAwLjExMjUsIDAuMTA2MjUsIDAuMDkzNzUsIDAuMDg3NSwgMC4wODM3NSwgMC4wNzUiLCBcCi0gICAgICAgICAgIjAuMTQsIDAuMTM1LCAwLjEyMjUsIDAuMTE2MjUsIDAuMTEsIDAuMSwgMC4wOTEyNSIsIFwKLSAgICAgICAgICAiMC4xNTUsIDAuMTQzNzUsIDAuMTM3NSwgMC4xMjUsIDAuMTE4NzUsIDAuMTE1LCAwLjEwNjI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU2MjUsIDAuMDQ1LCAwLjAzMjUsIDAuMDIsIDAuMDEzNzUsIC0wLjAwMjUsIC0wLjAxMTI1IiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDU2MjUsIDAuMDQzNzUsIDAuMDMxMjUsIDAuMDE4NzUsIDAuMDA4NzUsIDAiLCBcCi0gICAgICAgICAgIjAuMDgsIDAuMDY4NzUsIDAuMDU2MjUsIDAuMDQzNzUsIDAuMDMxMjUsIDAuMDIxMjUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMDkyNSwgMC4wODEyNSwgMC4wNjg3NSwgMC4wNTYyNSwgMC4wNDM3NSwgMC4wMjc1LCAwLjAxODc1IiwgXAotICAgICAgICAgICIwLjA5ODc1LCAwLjA4NzUsIDAuMDc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDQsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMTE1LCAwLjEwMzc1LCAwLjA5MTI1LCAwLjA4NSwgMC4wNzI1LCAwLjA1NjI1LCAwLjA0NzUiLCBcCi0gICAgICAgICAgIjAuMTMsIDAuMTE4NzUsIDAuMTA2MjUsIDAuMDkzNzUsIDAuMDgxMjUsIDAuMDcxMjUsIDAuMDYyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiRCYhU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8xX0FOX1NJX0VRXzAgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc1LCAwLjA2Mzc1LCAwLjA1MTI1LCAwLjAzODc1LCAwLjAzMjUsIDAuMDE2MjUsIDAuMDA3NSIsIFwKLSAgICAgICAgICAiMC4wODYyNSwgMC4wNzUsIDAuMDYyNSwgMC4wNSwgMC4wNDM3NSwgMC4wMjc1LCAwLjAxODc1IiwgXAotICAgICAgICAgICIwLjA5ODc1LCAwLjA4NzUsIDAuMDc1LCAwLjA2MjUsIDAuMDUsIDAuMDQsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMTA1LCAwLjEsIDAuMDgxMjUsIDAuMDc1LCAwLjA2MjUsIDAuMDQ2MjUsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiMC4xMTc1LCAwLjEwNjI1LCAwLjA5Mzc1LCAwLjA4MTI1LCAwLjA2ODc1LCAwLjA1ODc1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjEyNzUsIDAuMTE2MjUsIDAuMTAzNzUsIDAuMDkxMjUsIDAuMDc4NzUsIDAuMDY4NzUsIDAuMDYiLCBcCi0gICAgICAgICAgIjAuMTM2MjUsIDAuMTI1LCAwLjExMjUsIDAuMSwgMC4wODc1LCAwLjA3NzUsIDAuMDYyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEsIDAuMDg4NzUsIDAuMDc2MjUsIDAuMDcsIDAuMDYzNzUsIDAuMDUzNzUsIDAuMDUxMjUiLCBcCi0gICAgICAgICAgIjAuMTExMjUsIDAuMSwgMC4wODc1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNjUsIDAuMDYyNSIsIFwKLSAgICAgICAgICAiMC4xMTc1LCAwLjExMjUsIDAuMSwgMC4wOTM3NSwgMC4wODc1LCAwLjA3NzUsIDAuMDY4NzUiLCBcCi0gICAgICAgICAgIjAuMTMsIDAuMTE4NzUsIDAuMTA2MjUsIDAuMSwgMC4wOTM3NSwgMC4wODM3NSwgMC4wODEyNSIsIFwKLSAgICAgICAgICAiMC4xMzYyNSwgMC4xMjUsIDAuMTEyNSwgMC4xMDYyNSwgMC4xLCAwLjA5NjI1LCAwLjA4NzUiLCBcCi0gICAgICAgICAgIjAuMTQ2MjUsIDAuMTM1LCAwLjEyMjUsIDAuMTE2MjUsIDAuMTEsIDAuMTA2MjUsIDAuMDk3NSIsIFwKLSAgICAgICAgICAiMC4xNTUsIDAuMTQzNzUsIDAuMTMxMjUsIDAuMTI1LCAwLjExODc1LCAwLjEwODc1LCAwLjEwNjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTSSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjA1NjQxOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYwNDAyOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDYwNTY0MTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDI1NDUsIDAuMDAyNTI4LCAwLjAwMjUxOSwgMC4wMDI1MTQsIDAuMDAyNTExLCAwLjAwMjUxNSwgMC4wMDI1MjEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDQ0OTUsIDAuMDA0NDg2LCAwLjAwNDQ4LCAwLjAwNDQ3NywgMC4wMDQ0NzgsIDAuMDA0NDc5LCAwLjAwNDQ4MiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJTRSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wNSwgLTAuMDQ1LCAtMC4wMzg3NSwgLTAuMDMyNSwgLTAuMDI2MjUsIC0wLjAyMjUsIC0wLjAxMzc1IiwgXAotICAgICAgICAgICItMC4wNjEyNSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDI3NSwgLTAuMDI1IiwgXAotICAgICAgICAgICItMC4wNzM3NSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNSwgLTAuMDQsIC0wLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjA4NjI1LCAtMC4wNzUsIC0wLjA2ODc1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDUyNSwgLTAuMDQzNzUiLCBcCi0gICAgICAgICAgIi0wLjA5MjUsIC0wLjA4NzUsIC0wLjA4MTI1LCAtMC4wNzUsIC0wLjA2ODc1LCAtMC4wNTg3NSwgLTAuMDU2MjUiLCBcCi0gICAgICAgICAgIi0wLjEwODc1LCAtMC4xMDM3NSwgLTAuMDk3NSwgLTAuMDkxMjUsIC0wLjA4NSwgLTAuMDc1LCAtMC4wNzI1IiwgXAotICAgICAgICAgICItMC4xMjM3NSwgLTAuMTEyNSwgLTAuMTA2MjUsIC0wLjEsIC0wLjA5Mzc1LCAtMC4wOSwgLTAuMDgxMjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMTI1LCAtMC4wMDc1LCAwLjAwNSwgMC4wMTEyNSwgMC4wMjM3NSwgMC4wMzM3NSwgMC4wNDI1IiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAuMDA2MjUsIDAuMDEyNSwgMC4wMjI1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDI1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMC4wMDYyNSwgMC4wMTYyNSwgMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLjAwMzc1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wNDM3NSwgLTAuMDMxMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDI1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wNTg3NSwgLTAuMDUzNzUsIC0wLjA0MTI1LCAtMC4wMzUsIC0wLjAyODc1LCAtMC4wMTI1LCAtMC4wMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDY3NSwgLTAuMDYyNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMjEyNSwgLTAuMDEyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiU0UiOwotICAgICAgc2RmX2NvbmQgOiAiU0UgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg3NSwgMC4wNzYyNSwgMC4wNjM3NSwgMC4wNTc1LCAwLjA1MTI1LCAwLjA0MTI1LCAwLjAzODc1IiwgXAotICAgICAgICAgICIwLjA5ODc1LCAwLjA4NzUsIDAuMDc1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDUyNSwgMC4wNSIsIFwKLSAgICAgICAgICAiMC4xMDUsIDAuMDkzNzUsIDAuMDg3NSwgMC4wODEyNSwgMC4wNzUsIDAuMDY1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICIwLjExNzUsIDAuMTA2MjUsIDAuMDkzNzUsIDAuMDg3NSwgMC4wODEyNSwgMC4wNzc1LCAwLjA2ODc1IiwgXAotICAgICAgICAgICIwLjEzLCAwLjExODc1LCAwLjEwNjI1LCAwLjEsIDAuMDkzNzUsIDAuMDgzNzUsIDAuMDgxMjUiLCBcCi0gICAgICAgICAgIjAuMTQ2MjUsIDAuMTM1LCAwLjEyMjUsIDAuMTE2MjUsIDAuMTEsIDAuMSwgMC4wOTc1IiwgXAotICAgICAgICAgICIwLjE1NSwgMC4xNSwgMC4xMzc1LCAwLjEzMTI1LCAwLjEyNSwgMC4xMTUsIDAuMTA2MjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjg3NSwgMC4wNTc1LCAwLjA0NSwgMC4wMzI1LCAwLjAyLCAwLjAxLCAtMC4wMDUiLCBcCi0gICAgICAgICAgIjAuMDczNzUsIDAuMDYyNSwgMC4wNSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAxNSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiMC4wODYyNSwgMC4wNzUsIDAuMDYyNSwgMC4wNSwgMC4wMzc1LCAwLjAyNzUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4wOTI1LCAwLjA4MTI1LCAwLjA2ODc1LCAwLjA1NjI1LCAwLjA1LCAwLjAzMzc1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiMC4xMDUsIDAuMDkzNzUsIDAuMDgxMjUsIDAuMDY4NzUsIDAuMDU2MjUsIDAuMDQ2MjUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMTE1LCAwLjEwMzc1LCAwLjA5MTI1LCAwLjA4NSwgMC4wNzI1LCAwLjA1NjI1LCAwLjA0NzUiLCBcCi0gICAgICAgICAgIjAuMTMsIDAuMTE4NzUsIDAuMTA2MjUsIDAuMDkzNzUsIDAuMDgxMjUsIDAuMDcxMjUsIDAuMDU2MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IFNERkZYNCAqCi0gKiAtLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKFNERkZYNCkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjY4ODcxMzsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBmZiAoTjMwLFFCSU5UKSB7Ci0gICAgbmV4dF9zdGF0ZSA6ICIoKFNFIFNJKSArICghU0UgRCkpIjsKLSAgICBjbG9ja2VkX29uIDogIkNLIjsKLSAgfQotICBwaW4oQ0spICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYxMzc1NjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MTM1NTQ7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjEzNzU2OwotICAgIGNsb2NrIDogdHJ1ZTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDMxNjMsIDAuMDAzMTM0LCAwLjAwMzEyNiwgMC4wMDMxMjcsIDAuMDAzMTM4LCAwLjAwMzE1MiwgMC4wMDMxNzIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDU2NTMsIDAuMDA1NjI5LCAwLjAwNTYyNywgMC4wMDU2MzEsIDAuMDA1NjU5LCAwLjAwNTcwMSwgMC4wMDU3MzkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFEJiFTRSYhU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1NFX0VRXzBfQU5fU0lfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjE1MDUxNSwgMC4xNjA2NzMsIDAuMTczMjgzLCAwLjE4NDYyLCAwLjE5NDY0MSwgMC4yMDg2ODksIDAuMjE4ODE4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wODkzMTgsIDAuMDk5MTU1LCAwLjExMTMxNiwgMC4xMjIxNTUsIDAuMTMxNDA0LCAwLjE0MzgyLCAwLjE1MzI2NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjQ4NTM1OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDY0NjU1ODsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2NDg1MzU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyNjgyLCAwLjAwMjY2NiwgMC4wMDI2NTcsIDAuMDAyNjUzLCAwLjAwMjY1MiwgMC4wMDI2NTMsIDAuMDAyNjYzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA0NTMxLCAwLjAwNDUyMSwgMC4wMDQ1MTYsIDAuMDA0NTE0LCAwLjAwNDUxNCwgMC4wMDQ1MTUsIDAuMDA0NTIzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJTRSA9PSAxJ2IwIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wNTYyNSwgLTAuMDQ1LCAtMC4wMzg3NSwgLTAuMDM4NzUsIC0wLjAzMjUsIC0wLjAyMjUsIC0wLjAyIiwgXAotICAgICAgICAgICItMC4wNjEyNSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDMzNzUsIC0wLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wNzM3NSwgLTAuMDY4NzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDQ2MjUsIC0wLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjA4NjI1LCAtMC4wNzUsIC0wLjA2ODc1LCAtMC4wNjg3NSwgLTAuMDYyNSwgLTAuMDUyNSwgLTAuMDUiLCBcCi0gICAgICAgICAgIi0wLjA5MjUsIC0wLjA4NzUsIC0wLjA4MTI1LCAtMC4wNzUsIC0wLjA3NSwgLTAuMDY1LCAtMC4wNjI1IiwgXAotICAgICAgICAgICItMC4xMDg3NSwgLTAuMTAzNzUsIC0wLjA5NzUsIC0wLjA5MTI1LCAtMC4wODUsIC0wLjA4MTI1LCAtMC4wNzg3NSIsIFwKLSAgICAgICAgICAiLTAuMTIzNzUsIC0wLjExODc1LCAtMC4xMTI1LCAtMC4xMDYyNSwgLTAuMSwgLTAuMDk2MjUsIC0wLjA4NzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMTg3NSwgLTAuMDA3NSwgMC4wMDUsIDAuMDExMjUsIDAuMDE3NSwgMC4wMjc1LCAwLjAzNjI1IiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAuMDA2MjUsIDAuMDEyNSwgMC4wMjI1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDI1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMCwgMC4wMSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAuMDAzNzUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjA0Mzc1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDAyNSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDU4NzUsIC0wLjA1Mzc1LCAtMC4wNDEyNSwgLTAuMDM1LCAtMC4wMjg3NSwgLTAuMDE4NzUsIC0wLjAxIiwgXAotICAgICAgICAgICItMC4wNjc1LCAtMC4wNjI1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAyNzUsIC0wLjAxODc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhU0UiOwotICAgICAgc2RmX2NvbmQgOiAiU0UgPT0gMSdiMCI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDkzNzUsIDAuMDgyNSwgMC4wNywgMC4wNjM3NSwgMC4wNTc1LCAwLjA0NzUsIDAuMDQ1IiwgXAotICAgICAgICAgICIwLjA5ODc1LCAwLjA4NzUsIDAuMDgxMjUsIDAuMDc1LCAwLjA2ODc1LCAwLjA1ODc1LCAwLjA1IiwgXAotICAgICAgICAgICIwLjExMTI1LCAwLjEsIDAuMDg3NSwgMC4wODEyNSwgMC4wNzUsIDAuMDcxMjUsIDAuMDYyNSIsIFwKLSAgICAgICAgICAiMC4xMjM3NSwgMC4xMTI1LCAwLjEsIDAuMDkzNzUsIDAuMDg3NSwgMC4wNzc1LCAwLjA3NSIsIFwKLSAgICAgICAgICAiMC4xMywgMC4xMjUsIDAuMTEyNSwgMC4xMDYyNSwgMC4xLCAwLjA5LCAwLjA4NzUiLCBcCi0gICAgICAgICAgIjAuMTQ2MjUsIDAuMTM1LCAwLjEyODc1LCAwLjEyMjUsIDAuMTE2MjUsIDAuMTA2MjUsIDAuMTAzNzUiLCBcCi0gICAgICAgICAgIjAuMTYxMjUsIDAuMTUsIDAuMTQzNzUsIDAuMTMxMjUsIDAuMTI1LCAwLjEyMTI1LCAwLjExMjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjg3NSwgMC4wNTc1LCAwLjA0NSwgMC4wMzg3NSwgMC4wMjYyNSwgMC4wMSwgMC4wMDEyNSIsIFwKLSAgICAgICAgICAiMC4wOCwgMC4wNjg3NSwgMC4wNTYyNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAyMTI1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMDkyNSwgMC4wODEyNSwgMC4wNjg3NSwgMC4wNTYyNSwgMC4wNDM3NSwgMC4wMzM3NSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4wOTg3NSwgMC4wODc1LCAwLjA3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA0LCAwLjAzMTI1IiwgXAotICAgICAgICAgICIwLjExMTI1LCAwLjEsIDAuMDg3NSwgMC4wNzUsIDAuMDYyNSwgMC4wNTI1LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIjAuMTIxMjUsIDAuMTEsIDAuMDk3NSwgMC4wOTEyNSwgMC4wNzg3NSwgMC4wNjI1LCAwLjA1Mzc1IiwgXAotICAgICAgICAgICIwLjEzNjI1LCAwLjEyNSwgMC4xMTI1LCAwLjEsIDAuMDg3NSwgMC4wNzc1LCAwLjA2ODc1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihRKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDEuMDEyNzk7Ci0gICAgZnVuY3Rpb24gOiAiTjMwIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBub25fdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJpc2luZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExNDk0NSwgMC4xODg2MTgsIDAuMjYxMzQ5LCAwLjMxMjg2MywgMC4zOTYxMDYsIDAuNDY4MTI0LCAwLjU3MTI3OCIsIFwKLSAgICAgICAgICAiMC4xMjUwMywgMC4xOTg3MjgsIDAuMjcxMTc0LCAwLjMyMjk0MSwgMC40MDYxMzksIDAuNDc4MTg0LCAwLjU4MTM5IiwgXAotICAgICAgICAgICIwLjEzNzUzOSwgMC4yMTEyMywgMC4yODM2ODEsIDAuMzM1NDI0LCAwLjQxODU5OCwgMC40OTA2NzMsIDAuNTkzODkyIiwgXAotICAgICAgICAgICIwLjE0ODc1NCwgMC4yMjI0NDYsIDAuMjk1MTAzLCAwLjM0NjY2LCAwLjQyOTg1OSwgMC41MDE5MDMsIDAuNjA1MTEzIiwgXAotICAgICAgICAgICIwLjE1ODU5NywgMC4yMzIyNzcsIDAuMzA0ODc4LCAwLjM1NjE2MiwgMC40Mzk2NjgsIDAuNTExNzMyLCAwLjYxNDkzOCIsIFwKLSAgICAgICAgICAiMC4xNzIxMjQsIDAuMjQ1ODA5LCAwLjMxODQwMiwgMC4zNzAwMSwgMC40NTMxNzQsIDAuNTI1MjUsIDAuNjI4NDgyIiwgXAotICAgICAgICAgICIwLjE4MjQ5NywgMC4yNTYxOTUsIDAuMzI4ODc0LCAwLjM4MDg5OCwgMC40NjM1MjUsIDAuNTM1NjU4LCAwLjYzODg5NSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzMjk1MSwgMC4xNzkxNSwgMC4zMjYzNzksIDAuNDMyNjQyLCAwLjYwMjExMiwgMC43NTI2NzMsIDAuOTY1ODg5IiwgXAotICAgICAgICAgICIwLjAzMzAwNSwgMC4xNzkxNTEsIDAuMzI2MDU1LCAwLjQzMjYxNywgMC42MDIxODEsIDAuNzUyNjYzLCAwLjk2NTg1OSIsIFwKLSAgICAgICAgICAiMC4wMzI5NzUsIDAuMTc5MTQ4LCAwLjMyNzAxLCAwLjQzMjYxMSwgMC42MDIzMjIsIDAuNzUyNjU4LCAwLjk2NTg1MyIsIFwKLSAgICAgICAgICAiMC4wMzMwMDgsIDAuMTc5MTQ4LCAwLjMyNzA1NywgMC40MzI2MTIsIDAuNjAyMzIxLCAwLjc1MjY2MywgMC45NjU4NTIiLCBcCi0gICAgICAgICAgIjAuMDMzMTEsIDAuMTc5MTQyLCAwLjMyNzAzNywgMC40MzI1MTYsIDAuNjAyMjc4LCAwLjc1MjY1OSwgMC45NjU4MzciLCBcCi0gICAgICAgICAgIjAuMDMzMDIsIDAuMTc5MTQ1LCAwLjMyNzAwMiwgMC40MzIzNzIsIDAuNjAyMzI3LCAwLjc1MjY1NywgMC45NjU4MTYiLCBcCi0gICAgICAgICAgIjAuMDMzMTI4LCAwLjE3OTE1NiwgMC4zMjcwMTgsIDAuNDMyNTg1LCAwLjYwMjM5OSwgMC43NTI2NSwgMC45NjU3OTQiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMjU0MTUsIDAuMjAwNjQ1LCAwLjI3NDcxNSwgMC4zMjcwOTksIDAuNDExNjAyLCAwLjQ4NTE3NiwgMC41OTAzNDYiLCBcCi0gICAgICAgICAgIjAuMTM1NTcsIDAuMjEwNzk1LCAwLjI4NTA2NSwgMC4zMzcyNTQsIDAuNDIxNzU3LCAwLjQ5NTMxNywgMC42MDAzODMiLCBcCi0gICAgICAgICAgIjAuMTQ4MTcyLCAwLjIyMzQyOSwgMC4yOTczNSwgMC4zNTAwNTQsIDAuNDM0MDA0LCAwLjUwNzc2MSwgMC42MTI5NjMiLCBcCi0gICAgICAgICAgIjAuMTU5NTQ0LCAwLjIzNDc2MywgMC4zMDg3NjksIDAuMzYxMDYsIDAuNDQ1NDMyLCAwLjUxOTQxLCAwLjYyNDMzNCIsIFwKLSAgICAgICAgICAiMC4xNjk1MzcsIDAuMjQ0ODA5LCAwLjMxODczMSwgMC4zNzEzOTUsIDAuNDU1Mzk0LCAwLjUyOTE0MSwgMC42MzQzNDMiLCBcCi0gICAgICAgICAgIjAuMTgzNTg1LCAwLjI1ODgzNywgMC4zMzI3ODksIDAuMzg1NzkzLCAwLjQ2OTc3LCAwLjU0MjkzNSwgMC42NDgzOTkiLCBcCi0gICAgICAgICAgIjAuMTkzNzM5LCAwLjI2ODk1NCwgMC4zNDMyLCAwLjM5NTk0NywgMC40Nzk5MTksIDAuNTUzMzE1LCAwLjY1ODU1MSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzMjQ5NSwgMC4xNzg3OCwgMC4zMjY3ODQsIDAuNDMxNjI5LCAwLjYwNDIxMiwgMC43NTM2MDksIDAuOTY2OTI5IiwgXAotICAgICAgICAgICIwLjAzMjUyNywgMC4xNzg3NzksIDAuMzI2NjMyLCAwLjQzMTgyMSwgMC42MDQyMTYsIDAuNzUzNTk2LCAwLjk2NjE0NCIsIFwKLSAgICAgICAgICAiMC4wMzI1NDUsIDAuMTc3MzkxLCAwLjMyNjk0NiwgMC40MzI4OTcsIDAuNjAyOTI4LCAwLjc1MzE1LCAwLjk2NjAxMiIsIFwKLSAgICAgICAgICAiMC4wMzI0OTgsIDAuMTc4NzgsIDAuMzI2OTg4LCAwLjQzMjg4NCwgMC42MDI4MDQsIDAuNzUzNzUsIDAuOTY2MDA3IiwgXAotICAgICAgICAgICIwLjAzMjUwMywgMC4xNzcyNjQsIDAuMzI2OTQ2LCAwLjQzMjgzOSwgMC42MDI4NzgsIDAuNzUzMTQ2LCAwLjk2NjAxNyIsIFwKLSAgICAgICAgICAiMC4wMzI1MjcsIDAuMTc4NTIyLCAwLjMyNjk2NCwgMC40MzI2OTIsIDAuNjA0MjA2LCAwLjc1MDgyMSwgMC45NjYxMjkiLCBcCi0gICAgICAgICAgIjAuMDMyNTUsIDAuMTc4NjA2LCAwLjMyNjk1MywgMC40MzI2MSwgMC42MDQyMTIsIDAuNzUzMDg4LCAwLjk2NjExNSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNzg5MSwgMC4wMDgwNTIsIDAuMDA4MDcyLCAwLjAwODA3OCwgMC4wMDgwODMsIDAuMDA4MDg2LCAwLjAwODA4OSIsIFwKLSAgICAgICAgICAiMC4wMDc4NzMsIDAuMDA4MDM0LCAwLjAwODA1NiwgMC4wMDgwNiwgMC4wMDgwNjUsIDAuMDA4MDY5LCAwLjAwODA3MSIsIFwKLSAgICAgICAgICAiMC4wMDc4NjcsIDAuMDA4MDI3LCAwLjAwODA0NywgMC4wMDgwNTMsIDAuMDA4MDU4LCAwLjAwODA2MiwgMC4wMDgwNjUiLCBcCi0gICAgICAgICAgIjAuMDA3ODcsIDAuMDA4MDMsIDAuMDA4MDUsIDAuMDA4MDU2LCAwLjAwODA2MSwgMC4wMDgwNjUsIDAuMDA4MDY3IiwgXAotICAgICAgICAgICIwLjAwNzg3NCwgMC4wMDgwMzQsIDAuMDA4MDU1LCAwLjAwODA2MiwgMC4wMDgwNjUsIDAuMDA4MDY4LCAwLjAwODA3IiwgXAotICAgICAgICAgICIwLjAwNzg4MywgMC4wMDgwNDUsIDAuMDA4MDY1LCAwLjAwODA3MywgMC4wMDgwNzcsIDAuMDA4MDgsIDAuMDA4MDgxIiwgXAotICAgICAgICAgICIwLjAwNzg5NywgMC4wMDgwNTcsIDAuMDA4MDc3LCAwLjAwODA4MywgMC4wMDgwODgsIDAuMDA4MDkyLCAwLjAwODA5NCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA4MTY5LCAwLjAwODMxNiwgMC4wMDgzMzUsIDAuMDA4MzM5LCAwLjAwODM0NCwgMC4wMDgzNDYsIDAuMDA4MzUiLCBcCi0gICAgICAgICAgIjAuMDA4MTUzLCAwLjAwODMsIDAuMDA4MzE4LCAwLjAwODMyNSwgMC4wMDgzMjgsIDAuMDA4MzMxLCAwLjAwODMzNSIsIFwKLSAgICAgICAgICAiMC4wMDgxNTQsIDAuMDA4MzAxLCAwLjAwODMxOSwgMC4wMDgzMjUsIDAuMDA4MzI5LCAwLjAwODMzMiwgMC4wMDgzMzQiLCBcCi0gICAgICAgICAgIjAuMDA4MTU5LCAwLjAwODMwOCwgMC4wMDgzMjcsIDAuMDA4MzMzLCAwLjAwODMzNiwgMC4wMDgzNCwgMC4wMDgzNCIsIFwKLSAgICAgICAgICAiMC4wMDgxNzMsIDAuMDA4MzIzLCAwLjAwODM0MiwgMC4wMDgzNDcsIDAuMDA4MzUyLCAwLjAwODM1NSwgMC4wMDgzNTciLCBcCi0gICAgICAgICAgIjAuMDA4MTc3LCAwLjAwODMyNywgMC4wMDgzNDYsIDAuMDA4MzUyLCAwLjAwODM1NywgMC4wMDgzNTksIDAuMDA4MzYzIiwgXAotICAgICAgICAgICIwLjAwODIxNSwgMC4wMDgzNjUsIDAuMDA4Mzg1LCAwLjAwODM5LCAwLjAwODM5NSwgMC4wMDgzOTcsIDAuMDA4NCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUU4pICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMS4wMzY3NzsKLSAgICBmdW5jdGlvbiA6ICJRQklOVCI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3NlbnNlIDogbm9uX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiByaXNpbmdfZWRnZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNTA1MTUsIDAuMjIzMDI0LCAwLjI5NTMxNywgMC4zNDY5NDcsIDAuNDI5NTc0LCAwLjUwMTg0MywgMC42MDUxMTkiLCBcCi0gICAgICAgICAgIjAuMTYwNjczLCAwLjIzMzE3NCwgMC4zMDU1MDMsIDAuMzU3MDk5LCAwLjQzOTcyNiwgMC41MTE5OSwgMC42MTUyNyIsIFwKLSAgICAgICAgICAiMC4xNzMyODMsIDAuMjQ1NzY4LCAwLjMxODAzNiwgMC4zNjk3MDQsIDAuNDUyMzE1LCAwLjUyNDU4NywgMC42Mjc4NiIsIFwKLSAgICAgICAgICAiMC4xODQ2MiwgMC4yNTcxMzksIDAuMzI5NDIyLCAwLjM4MTA1OCwgMC40NjM3MjMsIDAuNTM2MDA5LCAwLjYzOTIzNyIsIFwKLSAgICAgICAgICAiMC4xOTQ2NDEsIDAuMjY3MTQxLCAwLjMzOTQxLCAwLjM5MTA3MywgMC40NzM2ODgsIDAuNTQ1OTYsIDAuNjQ5MjMzIiwgXAotICAgICAgICAgICIwLjIwODY4OSwgMC4yODExOTIsIDAuMzUzNDY2LCAwLjQwNTE3OSwgMC40ODc3MzQsIDAuNTU5OTI4LCAwLjY2MzI3OCIsIFwKLSAgICAgICAgICAiMC4yMTg4MzQsIDAuMjkxMzUxLCAwLjM2MzY2NywgMC40MTUzMzYsIDAuNDk3ODg5LCAwLjU3MDE3LCAwLjY3MzQ0MiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzMjI3MiwgMC4xNzc3NjcsIDAuMzI2NDQsIDAuNDMyMTUzLCAwLjYwNDIyOCwgMC43NTM0NzcsIDAuOTY2NzM2IiwgXAotICAgICAgICAgICIwLjAzMjI1NywgMC4xNzc3NjcsIDAuMzI2MjkxLCAwLjQzMjM1NywgMC42MDQyMzIsIDAuNzUzNDY3LCAwLjk2NjI5OSIsIFwKLSAgICAgICAgICAiMC4wMzIyNjEsIDAuMTc3NjEsIDAuMzI2ODkxLCAwLjQzMjczNiwgMC42MDMzMSwgMC43NTMwNDcsIDAuOTY2Mjc0IiwgXAotICAgICAgICAgICIwLjAzMjI0NCwgMC4xNzc3NjksIDAuMzI2OTEyLCAwLjQzMjkzNiwgMC42MDI5OCwgMC43NTM1NzUsIDAuOTY2MjY3IiwgXAotICAgICAgICAgICIwLjAzMjI1NCwgMC4xNzc2MDMsIDAuMzI2ODkyLCAwLjQzMjY1MywgMC42MDMyODgsIDAuNzUzMDQ1LCAwLjk2NjI4MiIsIFwKLSAgICAgICAgICAiMC4wMzIyNTEsIDAuMTc3NTgsIDAuMzI2ODk5LCAwLjQzMjUzNCwgMC42MDQyMjMsIDAuNzUwOTE2LCAwLjk2NjI5NyIsIFwKLSAgICAgICAgICAiMC4wMzIyNTMsIDAuMTc3ODcyLCAwLjMyNjg5OCwgMC40MzI1MTQsIDAuNjA0MjI3LCAwLjc1MzA0OCwgMC45NjYyOTUiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNDE2ODQsIDAuMjE1NzQ0LCAwLjI4OTQ2NywgMC4zNDIwOTQsIDAuNDI2NDI1LCAwLjUwMDA5MSwgMC42MDUzNzMiLCBcCi0gICAgICAgICAgIjAuMTUxNzY5LCAwLjIyNTgzMywgMC4yOTk1MzEsIDAuMzUyMTgsIDAuNDM2NSwgMC41MTAxNzEsIDAuNjE1NDY1IiwgXAotICAgICAgICAgICIwLjE2NDI3MiwgMC4yMzgzNDMsIDAuMzEyMDQ1LCAwLjM2NDY5NiwgMC40NDkwMDIsIDAuNTIyNjgsIDAuNjI3OTc2IiwgXAotICAgICAgICAgICIwLjE3NTQ5MSwgMC4yNDk1NTgsIDAuMzIzMjY3LCAwLjM3NTkwNCwgMC40NjAyMjQsIDAuNTMzODk1LCAwLjYzOTE4OSIsIFwKLSAgICAgICAgICAiMC4xODUzNDEsIDAuMjU5MzY0LCAwLjMzMzA3MiwgMC4zODU3MTMsIDAuNDcwMDIxLCAwLjU0MzY5NiwgMC42NDg5OSIsIFwKLSAgICAgICAgICAiMC4xOTg4NiwgMC4yNzI5MjcsIDAuMzQ2NjIsIDAuMzk5MjY4LCAwLjQ4MzU4LCAwLjU1NzI1NywgMC42NjI1NTUiLCBcCi0gICAgICAgICAgIjAuMjA5MjMsIDAuMjgzMywgMC4zNTcwMSwgMC40MDk3MTQsIDAuNDkzOTU2LCAwLjU2NzY0NSwgMC42NzI5NDUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzE5MzUsIDAuMTc3NzQ3LCAwLjMyNjUyLCAwLjQzMzY1MiwgMC42MDMzNjgsIDAuNzU0MDM2LCAwLjk2NzQ0MiIsIFwKLSAgICAgICAgICAiMC4wMzE5NTQsIDAuMTc3NzQ0LCAwLjMyNjY3NiwgMC40MzM2MzksIDAuNjAzNDcxLCAwLjc1Mzk5OSwgMC45Njc0MTkiLCBcCi0gICAgICAgICAgIjAuMDMxOTI4LCAwLjE3Nzc0NCwgMC4zMjY5NDgsIDAuNDMzNjM1LCAwLjYwMzUzNSwgMC43NTM5ODksIDAuOTY3NDEiLCBcCi0gICAgICAgICAgIjAuMDMxOTUyLCAwLjE3Nzc1MSwgMC4zMjcwMDUsIDAuNDMzNjM2LCAwLjYwMzUzNCwgMC43NTQwMDIsIDAuOTY3NDE1IiwgXAotICAgICAgICAgICIwLjAzMTk2OCwgMC4xNzc3NDcsIDAuMzI2OTg3LCAwLjQzMzIzNCwgMC42MDM1MTMsIDAuNzUzOTgzLCAwLjk2NzM4MyIsIFwKLSAgICAgICAgICAiMC4wMzE5MjgsIDAuMTc3NzUyLCAwLjMyNjkzOCwgMC40MzMwNjYsIDAuNjAzNTM2LCAwLjc1Mzk4NywgMC45NjczOTkiLCBcCi0gICAgICAgICAgIjAuMDMxOTUzLCAwLjE3Nzc0NiwgMC4zMjY5NDgsIDAuNDMzMjQ1LCAwLjYwMzU0NywgMC43NTM5OTEsIDAuOTY3Mzk5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA4MTY5LCAwLjAwODMxNiwgMC4wMDgzMzUsIDAuMDA4MzM5LCAwLjAwODM0NCwgMC4wMDgzNDYsIDAuMDA4MzUiLCBcCi0gICAgICAgICAgIjAuMDA4MTUzLCAwLjAwODMsIDAuMDA4MzE4LCAwLjAwODMyNSwgMC4wMDgzMjgsIDAuMDA4MzMxLCAwLjAwODMzNSIsIFwKLSAgICAgICAgICAiMC4wMDgxNTQsIDAuMDA4MzAxLCAwLjAwODMxOSwgMC4wMDgzMjUsIDAuMDA4MzI5LCAwLjAwODMzMiwgMC4wMDgzMzQiLCBcCi0gICAgICAgICAgIjAuMDA4MTU5LCAwLjAwODMwOCwgMC4wMDgzMjcsIDAuMDA4MzMzLCAwLjAwODMzNiwgMC4wMDgzNCwgMC4wMDgzNCIsIFwKLSAgICAgICAgICAiMC4wMDgxNzMsIDAuMDA4MzIzLCAwLjAwODM0MiwgMC4wMDgzNDcsIDAuMDA4MzUyLCAwLjAwODM1NSwgMC4wMDgzNTciLCBcCi0gICAgICAgICAgIjAuMDA4MTc3LCAwLjAwODMyNywgMC4wMDgzNDYsIDAuMDA4MzUyLCAwLjAwODM1NywgMC4wMDgzNTksIDAuMDA4MzYzIiwgXAotICAgICAgICAgICIwLjAwODIxNSwgMC4wMDgzNjUsIDAuMDA4Mzg1LCAwLjAwODM5LCAwLjAwODM5NSwgMC4wMDgzOTcsIDAuMDA4NCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA3ODkxLCAwLjAwODA1MiwgMC4wMDgwNzIsIDAuMDA4MDc4LCAwLjAwODA4MywgMC4wMDgwODYsIDAuMDA4MDg5IiwgXAotICAgICAgICAgICIwLjAwNzg3MywgMC4wMDgwMzQsIDAuMDA4MDU2LCAwLjAwODA2LCAwLjAwODA2NSwgMC4wMDgwNjksIDAuMDA4MDcxIiwgXAotICAgICAgICAgICIwLjAwNzg2NywgMC4wMDgwMjcsIDAuMDA4MDQ3LCAwLjAwODA1MywgMC4wMDgwNTgsIDAuMDA4MDYyLCAwLjAwODA2NSIsIFwKLSAgICAgICAgICAiMC4wMDc4NywgMC4wMDgwMywgMC4wMDgwNSwgMC4wMDgwNTYsIDAuMDA4MDYxLCAwLjAwODA2NSwgMC4wMDgwNjciLCBcCi0gICAgICAgICAgIjAuMDA3ODc0LCAwLjAwODAzNCwgMC4wMDgwNTUsIDAuMDA4MDYyLCAwLjAwODA2NSwgMC4wMDgwNjgsIDAuMDA4MDciLCBcCi0gICAgICAgICAgIjAuMDA3ODgzLCAwLjAwODA0NSwgMC4wMDgwNjUsIDAuMDA4MDczLCAwLjAwODA3NywgMC4wMDgwOCwgMC4wMDgwODEiLCBcCi0gICAgICAgICAgIjAuMDA3ODk3LCAwLjAwODA1NywgMC4wMDgwNzcsIDAuMDA4MDgzLCAwLjAwODA4OCwgMC4wMDgwOTIsIDAuMDA4MDk0Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTRSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxMjQ2NjY7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxMjQ2NjY7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxMjQ2MzQ7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA0MzgxLCAwLjAwNDM2LCAwLjAwNDM2NCwgMC4wMDQzNjUsIDAuMDA0Mzc0LCAwLjAwNDQsIDAuMDA0NDI5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA2MDk5LCAwLjAwNjA2NiwgMC4wMDYwNTUsIDAuMDA2MDU5LCAwLjAwNjA3MywgMC4wMDYxMTMsIDAuMDA2MTUzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEJlNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9TSV9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjA1LCAtMC4wMzg3NSwgLTAuMDMyNSwgLTAuMDI2MjUsIC0wLjAyNjI1LCAtMC4wMTYyNSwgLTAuMDEzNzUiLCBcCi0gICAgICAgICAgIi0wLjA1NSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDI3NSwgLTAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjA2NzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjA0LCAtMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDgsIC0wLjA3NSwgLTAuMDY4NzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNTI1LCAtMC4wNDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDkyNSwgLTAuMDg3NSwgLTAuMDgxMjUsIC0wLjA3NSwgLTAuMDY4NzUsIC0wLjA1ODc1LCAtMC4wNTYyNSIsIFwKLSAgICAgICAgICAiLTAuMTA4NzUsIC0wLjEwMzc1LCAtMC4wOTc1LCAtMC4wOTEyNSwgLTAuMDg1LCAtMC4wODEyNSwgLTAuMDcyNSIsIFwKLSAgICAgICAgICAiLTAuMTIzNzUsIC0wLjExMjUsIC0wLjEwNjI1LCAtMC4xMDYyNSwgLTAuMSwgLTAuMDksIC0wLjA4NzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMTI1LCAtMC4wMDEyNSwgMC4wMTEyNSwgMC4wMTc1LCAwLjAyMzc1LCAwLjAzMzc1LCAwLjA0MjUiLCBcCi0gICAgICAgICAgIi0wLjAxNzUsIC0wLjAxMjUsIDAsIDAuMDEyNSwgMC4wMTg3NSwgMC4wMjg3NSwgMC4wMzc1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDE4NzUsIC0wLjAxMjUsIDAsIDAuMDA2MjUsIDAuMDE2MjUsIDAuMDI1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDMxMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMC4wMDM3NSwgMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDI1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wNTI1LCAtMC4wNDc1LCAtMC4wNDEyNSwgLTAuMDM1LCAtMC4wMjg3NSwgLTAuMDE4NzUsIC0wLjAxIiwgXAotICAgICAgICAgICItMC4wNjEyNSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDI3NSwgLTAuMDE4NzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiRCYhU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8xX0FOX1NJX0VRXzAgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDI1LCAtMC4wMiwgLTAuMDA3NSwgLTAuMDAxMjUsIDAuMDA1LCAwLjAyMTI1LCAwLjAzIiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDMxMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAwLCAwLjAxLCAwLjAxODc1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDQzNzUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAxMjUsIC0wLjAwMjUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA2MTI1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAxNSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA2NzUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAyMTI1LCAtMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wNzc1LCAtMC4wNzI1LCAtMC4wNiwgLTAuMDUzNzUsIC0wLjA0MTI1LCAtMC4wMzEyNSwgLTAuMDIyNSIsIFwKLSAgICAgICAgICAiLTAuMDg2MjUsIC0wLjA4MTI1LCAtMC4wNjg3NSwgLTAuMDYyNSwgLTAuMDUsIC0wLjA0LCAtMC4wMzEyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjA2ODc1LCAtMC4wNTc1LCAtMC4wNTEyNSwgLTAuMDUxMjUsIC0wLjA0NSwgLTAuMDM1LCAtMC4wMzI1IiwgXAotICAgICAgICAgICItMC4wOCwgLTAuMDY4NzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNTYyNSwgLTAuMDQ2MjUsIC0wLjA0Mzc1IiwgXAotICAgICAgICAgICItMC4wODYyNSwgLTAuMDgxMjUsIC0wLjA3NSwgLTAuMDY4NzUsIC0wLjA2MjUsIC0wLjA1ODc1LCAtMC4wNSIsIFwKLSAgICAgICAgICAiLTAuMDk4NzUsIC0wLjA4NzUsIC0wLjA4MTI1LCAtMC4wODEyNSwgLTAuMDc1LCAtMC4wNjUsIC0wLjA2MjUiLCBcCi0gICAgICAgICAgIi0wLjEwNSwgLTAuMSwgLTAuMDkzNzUsIC0wLjA4NzUsIC0wLjA4MTI1LCAtMC4wNzEyNSwgLTAuMDY4NzUiLCBcCi0gICAgICAgICAgIi0wLjExNSwgLTAuMTEsIC0wLjA5NzUsIC0wLjA5NzUsIC0wLjA5MTI1LCAtMC4wODEyNSwgLTAuMDc4NzUiLCBcCi0gICAgICAgICAgIi0wLjEyMzc1LCAtMC4xMTI1LCAtMC4xMDYyNSwgLTAuMSwgLTAuMSwgLTAuMDksIC0wLjA4NzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEJlNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9TSV9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4NzUsIDAuMDc2MjUsIDAuMDYzNzUsIDAuMDU3NSwgMC4wNTEyNSwgMC4wNDEyNSwgMC4wMzg3NSIsIFwKLSAgICAgICAgICAiMC4wOTI1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1MjUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMTA1LCAwLjA5Mzc1LCAwLjA4NzUsIDAuMDc1LCAwLjA2ODc1LCAwLjA2NSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiMC4xMTc1LCAwLjEwNjI1LCAwLjEsIDAuMDg3NSwgMC4wODEyNSwgMC4wNzc1LCAwLjA2ODc1IiwgXAotICAgICAgICAgICIwLjEzLCAwLjExODc1LCAwLjEwNjI1LCAwLjEsIDAuMDkzNzUsIDAuMDksIDAuMDgxMjUiLCBcCi0gICAgICAgICAgIjAuMTQ2MjUsIDAuMTM1LCAwLjEyODc1LCAwLjEyMjUsIDAuMTE2MjUsIDAuMTA2MjUsIDAuMDk3NSIsIFwKLSAgICAgICAgICAiMC4xNjEyNSwgMC4xNSwgMC4xNDM3NSwgMC4xMzEyNSwgMC4xMjUsIDAuMTIxMjUsIDAuMTEyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2MjUsIDAuMDUxMjUsIDAuMDM4NzUsIDAuMDMyNSwgMC4wMiwgMC4wMDM3NSwgLTAuMDA1IiwgXAotICAgICAgICAgICIwLjA3Mzc1LCAwLjA2MjUsIDAuMDUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMTUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMDg2MjUsIDAuMDc1LCAwLjA2MjUsIDAuMDUsIDAuMDM3NSwgMC4wMjc1LCAwLjAxODc1IiwgXAotICAgICAgICAgICIwLjA5ODc1LCAwLjA4NzUsIDAuMDc1LCAwLjA2MjUsIDAuMDUsIDAuMDQsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMTA1LCAwLjEsIDAuMDg3NSwgMC4wNzUsIDAuMDYyNSwgMC4wNTI1LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIjAuMTIxMjUsIDAuMTE2MjUsIDAuMTAzNzUsIDAuMDkxMjUsIDAuMDc4NzUsIDAuMDY4NzUsIDAuMDUzNzUiLCBcCi0gICAgICAgICAgIjAuMTM2MjUsIDAuMTI1LCAwLjExMjUsIDAuMSwgMC4wOTM3NSwgMC4wNzc1LCAwLjA2ODc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJEJiFTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzFfQU5fU0lfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODEyNSwgMC4wNywgMC4wNTc1LCAwLjA1MTI1LCAwLjAzODc1LCAwLjAyODc1LCAwLjAxMzc1IiwgXAotICAgICAgICAgICIwLjA5MjUsIDAuMDgxMjUsIDAuMDY4NzUsIDAuMDU2MjUsIDAuMDUsIDAuMDMzNzUsIDAuMDI1IiwgXAotICAgICAgICAgICIwLjEwNSwgMC4wOTM3NSwgMC4wODEyNSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA0NjI1LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIjAuMTE3NSwgMC4xMDYyNSwgMC4wOTM3NSwgMC4wODEyNSwgMC4wNjg3NSwgMC4wNTg3NSwgMC4wNSIsIFwKLSAgICAgICAgICAiMC4xMjM3NSwgMC4xMTI1LCAwLjEsIDAuMDg3NSwgMC4wODEyNSwgMC4wNjUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIjAuMTMzNzUsIDAuMTIyNSwgMC4xMSwgMC4wOTc1LCAwLjA5MTI1LCAwLjA3NSwgMC4wNjYyNSIsIFwKLSAgICAgICAgICAiMC4xNDI1LCAwLjEzMTI1LCAwLjExODc1LCAwLjEwNjI1LCAwLjEsIDAuMDgzNzUsIDAuMDc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTA2MjUsIDAuMDk1LCAwLjA4MjUsIDAuMDc2MjUsIDAuMDcsIDAuMDYsIDAuMDU3NSIsIFwKLSAgICAgICAgICAiMC4xMTc1LCAwLjEwNjI1LCAwLjA5Mzc1LCAwLjA4NzUsIDAuMDgxMjUsIDAuMDcxMjUsIDAuMDY4NzUiLCBcCi0gICAgICAgICAgIjAuMTIzNzUsIDAuMTEyNSwgMC4xMDYyNSwgMC4xLCAwLjA5Mzc1LCAwLjA4Mzc1LCAwLjA3NSIsIFwKLSAgICAgICAgICAiMC4xMzYyNSwgMC4xMjUsIDAuMTEyNSwgMC4xMDYyNSwgMC4xLCAwLjA5LCAwLjA4NzUiLCBcCi0gICAgICAgICAgIjAuMTQyNSwgMC4xMzEyNSwgMC4xMTg3NSwgMC4xMTI1LCAwLjEwNjI1LCAwLjEwMjUsIDAuMDkzNzUiLCBcCi0gICAgICAgICAgIjAuMTUyNSwgMC4xNDEyNSwgMC4xMjg3NSwgMC4xMjI1LCAwLjExNjI1LCAwLjExMjUsIDAuMTAzNzUiLCBcCi0gICAgICAgICAgIjAuMTYxMjUsIDAuMTUsIDAuMTM3NSwgMC4xMzEyNSwgMC4xMjUsIDAuMTE1LCAwLjExMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFNJKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2MjMyMzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MjE4NTU7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjIzMjM7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyNTIyLCAwLjAwMjUwNiwgMC4wMDI0OTcsIDAuMDAyNDkyLCAwLjAwMjQ5LCAwLjAwMjQ5LCAwLjAwMjUwMSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNDc1MiwgMC4wMDQ3NDMsIDAuMDA0NzM3LCAwLjAwNDczNCwgMC4wMDQ3MzUsIDAuMDA0NzM3LCAwLjAwNDc0MyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJTRSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wNTYyNSwgLTAuMDQ1LCAtMC4wMzg3NSwgLTAuMDM4NzUsIC0wLjAzMjUsIC0wLjAyMjUsIC0wLjAyIiwgXAotICAgICAgICAgICItMC4wNjEyNSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDMzNzUsIC0wLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDczNzUsIC0wLjA2ODc1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjA0NjI1LCAtMC4wMzc1IiwgXAotICAgICAgICAgICItMC4wODYyNSwgLTAuMDgxMjUsIC0wLjA2ODc1LCAtMC4wNjg3NSwgLTAuMDYyNSwgLTAuMDUyNSwgLTAuMDUiLCBcCi0gICAgICAgICAgIi0wLjA5ODc1LCAtMC4wODc1LCAtMC4wODEyNSwgLTAuMDc1LCAtMC4wNzUsIC0wLjA2NSwgLTAuMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMTA4NzUsIC0wLjEwMzc1LCAtMC4wOTc1LCAtMC4wOTEyNSwgLTAuMDg1LCAtMC4wODEyNSwgLTAuMDc4NzUiLCBcCi0gICAgICAgICAgIi0wLjEyMzc1LCAtMC4xMTg3NSwgLTAuMTEyNSwgLTAuMTA2MjUsIC0wLjEsIC0wLjA5NjI1LCAtMC4wODc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDE4NzUsIC0wLjAwNzUsIDAuMDA1LCAwLjAxMTI1LCAwLjAxNzUsIDAuMDI3NSwgMC4wMzYyNSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxODc1LCAtMC4wMDYyNSwgMCwgMC4wMTI1LCAwLjAyMjUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMDYyNSwgMCwgMC4wMSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDM3NSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAuMDAzNzUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjA0Mzc1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDA4NzUsIDAiLCBcCi0gICAgICAgICAgIi0wLjA1ODc1LCAtMC4wNTM3NSwgLTAuMDQ3NSwgLTAuMDM1LCAtMC4wMjg3NSwgLTAuMDE4NzUsIC0wLjAxIiwgXAotICAgICAgICAgICItMC4wNjc1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAyNzUsIC0wLjAxODc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJTRSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTM3NSwgMC4wODI1LCAwLjA3LCAwLjA2Mzc1LCAwLjA1NzUsIDAuMDQ3NSwgMC4wNDUiLCBcCi0gICAgICAgICAgIjAuMDk4NzUsIDAuMDg3NSwgMC4wODEyNSwgMC4wNzUsIDAuMDY4NzUsIDAuMDU4NzUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIjAuMTExMjUsIDAuMSwgMC4wOTM3NSwgMC4wODEyNSwgMC4wNzUsIDAuMDcxMjUsIDAuMDYyNSIsIFwKLSAgICAgICAgICAiMC4xMjM3NSwgMC4xMTI1LCAwLjEsIDAuMDkzNzUsIDAuMDg3NSwgMC4wNzc1LCAwLjA3NSIsIFwKLSAgICAgICAgICAiMC4xMzYyNSwgMC4xMjUsIDAuMTEyNSwgMC4xMDYyNSwgMC4xLCAwLjA5LCAwLjA4NzUiLCBcCi0gICAgICAgICAgIjAuMTUyNSwgMC4xNDEyNSwgMC4xMjg3NSwgMC4xMjI1LCAwLjExNjI1LCAwLjEwNjI1LCAwLjEwMzc1IiwgXAotICAgICAgICAgICIwLjE2MTI1LCAwLjE1LCAwLjE0Mzc1LCAwLjEzNzUsIDAuMTMxMjUsIDAuMTIxMjUsIDAuMTEyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3NSwgMC4wNjM3NSwgMC4wNTEyNSwgMC4wMzg3NSwgMC4wMjYyNSwgMC4wMTYyNSwgMC4wMDEyNSIsIFwKLSAgICAgICAgICAiMC4wOCwgMC4wNjg3NSwgMC4wNTYyNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAyMTI1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMDkyNSwgMC4wODEyNSwgMC4wNjg3NSwgMC4wNTYyNSwgMC4wNDM3NSwgMC4wMzM3NSwgMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMDk4NzUsIDAuMDg3NSwgMC4wNzUsIDAuMDY4NzUsIDAuMDU2MjUsIDAuMDQsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMTExMjUsIDAuMSwgMC4wODc1LCAwLjA3NSwgMC4wNjI1LCAwLjA1MjUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMTIxMjUsIDAuMTE2MjUsIDAuMTAzNzUsIDAuMDkxMjUsIDAuMDc4NzUsIDAuMDY4NzUsIDAuMDUzNzUiLCBcCi0gICAgICAgICAgIjAuMTM2MjUsIDAuMTI1LCAwLjExMjUsIDAuMSwgMC4wOTM3NSwgMC4wNzc1LCAwLjA2ODc1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBTREZGWEwgKgotICogLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChTREZGWEwpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4zNTUyNTg7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgZmYgKE4zMCxRQklOVCkgewotICAgIG5leHRfc3RhdGUgOiAiKChTRSBTSSkgKyAoIVNFIEQpKSI7Ci0gICAgY2xvY2tlZF9vbiA6ICJDSyI7Ci0gIH0KLSAgcGluKENLKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2MDcxMzg7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjA3MDIzOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDYwNzEzODsKLSAgICBjbG9jayA6IHRydWU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyODQzLCAwLjAwMjgxOCwgMC4wMDI4MDIsIDAuMDAyODA0LCAwLjAwMjgyMSwgMC4wMDI4NCwgMC4wMDI4NiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNjAzMSwgMC4wMDYwMDYsIDAuMDA2MDAyLCAwLjAwNjAwOCwgMC4wMDYwMzMsIDAuMDA2MDY5LCAwLjAwNjExNCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQmIVNFJiFTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fU0VfRVFfMF9BTl9TSV9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMTkwMzM2LCAwLjIwMDU3MywgMC4yMTMyODQsIDAuMjI1MTEzLCAwLjIzNTU4NiwgMC4yNDk5ODYsIDAuMjYwOTk5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wOTI0NTksIDAuMTAyMzA3LCAwLjExNDYxLCAwLjEyNTgwNSwgMC4xMzU2ODUsIDAuMTQ4ODUxLCAwLjE1ODk5MiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjI0MjMzOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYyMjc1MTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2MjQyMzM7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyNzg0LCAwLjAwMjc2NywgMC4wMDI3NTgsIDAuMDAyNzUzLCAwLjAwMjc1MiwgMC4wMDI3NTQsIDAuMDAyNzYzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA0MjY1LCAwLjAwNDI1NiwgMC4wMDQyNSwgMC4wMDQyNDgsIDAuMDA0MjQ5LCAwLjAwNDI1LCAwLjAwNDI1OSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhU0UiOwotICAgICAgc2RmX2NvbmQgOiAiU0UgPT0gMSdiMCI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDUsIC0wLjA0NSwgLTAuMDM4NzUsIC0wLjAzMjUsIC0wLjAyNjI1LCAtMC4wMTYyNSwgLTAuMDEzNzUiLCBcCi0gICAgICAgICAgIi0wLjA2MTI1LCAtMC4wNTYyNSwgLTAuMDQzNzUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMjc1LCAtMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDczNzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjA0LCAtMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDg2MjUsIC0wLjA3NSwgLTAuMDY4NzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNTI1LCAtMC4wNDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDkyNSwgLTAuMDg3NSwgLTAuMDgxMjUsIC0wLjA3NSwgLTAuMDY4NzUsIC0wLjA1ODc1LCAtMC4wNTYyNSIsIFwKLSAgICAgICAgICAiLTAuMTA4NzUsIC0wLjEwMzc1LCAtMC4wOTc1LCAtMC4wODUsIC0wLjA4NSwgLTAuMDc1LCAtMC4wNjYyNSIsIFwKLSAgICAgICAgICAiLTAuMTIzNzUsIC0wLjExMjUsIC0wLjEwNjI1LCAtMC4xLCAtMC4wOTM3NSwgLTAuMDksIC0wLjA4MTI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDE4NzUsIC0wLjAwNzUsIDAuMDA1LCAwLjAxMTI1LCAwLjAyMzc1LCAwLjAzMzc1LCAwLjA0MjUiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAuMDA2MjUsIDAuMDEyNSwgMC4wMjI1LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMjUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLjAwNjI1LCAwLjAxNjI1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDM3NSwgLTAuMDI1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMC4wMDM3NSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNDM3NSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDEyNSwgLTAuMDAyNSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDY1LCAtMC4wNTM3NSwgLTAuMDQ3NSwgLTAuMDM1LCAtMC4wMjg3NSwgLTAuMDEyNSwgLTAuMDAzNzUiLCBcCi0gICAgICAgICAgIi0wLjA3Mzc1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAyMTI1LCAtMC4wMTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhU0UiOwotICAgICAgc2RmX2NvbmQgOiAiU0UgPT0gMSdiMCI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDgxMjUsIDAuMDcsIDAuMDYzNzUsIDAuMDU3NSwgMC4wNTEyNSwgMC4wNDEyNSwgMC4wMzI1IiwgXAotICAgICAgICAgICIwLjA5MjUsIDAuMDgxMjUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNTI1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjEwNSwgMC4wOTM3NSwgMC4wODEyNSwgMC4wNzUsIDAuMDY4NzUsIDAuMDU4NzUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIjAuMTExMjUsIDAuMSwgMC4wOTM3NSwgMC4wODc1LCAwLjA4MTI1LCAwLjA3MTI1LCAwLjA2ODc1IiwgXAotICAgICAgICAgICIwLjEyMzc1LCAwLjExMjUsIDAuMTA2MjUsIDAuMDkzNzUsIDAuMDg3NSwgMC4wODM3NSwgMC4wNzUiLCBcCi0gICAgICAgICAgIjAuMTQsIDAuMTI4NzUsIDAuMTIyNSwgMC4xMSwgMC4xMDM3NSwgMC4xLCAwLjA5MTI1IiwgXAotICAgICAgICAgICIwLjE1NSwgMC4xNDM3NSwgMC4xMzEyNSwgMC4xMjUsIDAuMTE4NzUsIDAuMTA4NzUsIDAuMTA2MjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjI1LCAwLjA1MTI1LCAwLjAzODc1LCAwLjAyNjI1LCAwLjAyLCAwLjAwMzc1LCAtMC4wMDUiLCBcCi0gICAgICAgICAgIjAuMDczNzUsIDAuMDYyNSwgMC4wNSwgMC4wMzc1LCAwLjAyNSwgMC4wMTUsIDAiLCBcCi0gICAgICAgICAgIjAuMDgsIDAuMDY4NzUsIDAuMDU2MjUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMjEyNSwgMC4wMTI1IiwgXAotICAgICAgICAgICIwLjA5MjUsIDAuMDgxMjUsIDAuMDY4NzUsIDAuMDU2MjUsIDAuMDQzNzUsIDAuMDMzNzUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMDk4NzUsIDAuMDg3NSwgMC4wNzUsIDAuMDY4NzUsIDAuMDU2MjUsIDAuMDQsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMTE1LCAwLjEwMzc1LCAwLjA5MTI1LCAwLjA3ODc1LCAwLjA3MjUsIDAuMDU2MjUsIDAuMDQ3NSIsIFwKLSAgICAgICAgICAiMC4xMjM3NSwgMC4xMTI1LCAwLjEsIDAuMDkzNzUsIDAuMDgxMjUsIDAuMDY1LCAwLjA1NjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihRKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMTQ4NjA4OwotICAgIGZ1bmN0aW9uIDogIk4zMCI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3NlbnNlIDogbm9uX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiByaXNpbmdfZWRnZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTY3MDExLCAwLjE4MTI5NywgMC4zMDgyMDIsIDAuNTE5NzQxLCAwLjczMTU5NCwgMS4yMjU5MywgMS41MDk0NSIsIFwKLSAgICAgICAgICAiMC4xNzczMzMsIDAuMTkxNDc2LCAwLjMxODQ1NCwgMC41Mjk5MTksIDAuNzQxODA3LCAxLjIzNjc4LCAxLjUxOTU5IiwgXAotICAgICAgICAgICIwLjE4OTkyMSwgMC4yMDQxMjQsIDAuMzMxMDQ0LCAwLjU0MjU2OSwgMC43NTQ0MjMsIDEuMjQ4NzEsIDEuNTMxMDYiLCBcCi0gICAgICAgICAgIjAuMjAxNjg3LCAwLjIxNTgxNCwgMC4zNDI3NjIsIDAuNTU0Mjg0LCAwLjc2NjAyNywgMS4yNjExMSwgMS41NDI4MyIsIFwKLSAgICAgICAgICAiMC4yMTE3NDksIDAuMjI1ODg3LCAwLjM1Mjg0OCwgMC41NjQzMjcsIDAuNzc2MTEzLCAxLjI3MTIsIDEuNTU0IiwgXAotICAgICAgICAgICIwLjIyNjI4MSwgMC4yNDA0MjIsIDAuMzY3MzkzLCAwLjU3ODg2MywgMC43OTA3NjIsIDEuMjg1NzQsIDEuNTY4NTQiLCBcCi0gICAgICAgICAgIjAuMjM3MTQ4LCAwLjI1MTE5NywgMC4zNzgxNjMsIDAuNTg5Njk4LCAwLjgwMTU2MSwgMS4yOTU4MiwgMS41NzgxNiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNTQ1MTksIDAuMTgzNTE1LCAwLjQ0NDQyOSwgMC44ODAyODMsIDEuMzE2MTcsIDIuMzMwMjksIDIuOTE1MDgiLCBcCi0gICAgICAgICAgIjAuMTU0NDY5LCAwLjE4MzUwNywgMC40NDM4MjEsIDAuODc4OTQ1LCAxLjMxNjIxLCAyLjMzMzU4LCAyLjkxNDg2IiwgXAotICAgICAgICAgICIwLjE1NDczOCwgMC4xODM1MjEsIDAuNDQ0NDM2LCAwLjg4MDI3NCwgMS4zMTYxNiwgMi4zMzA1LCAyLjkwNjczIiwgXAotICAgICAgICAgICIwLjE1NDUzOCwgMC4xODM1MDIsIDAuNDQ0NDQzLCAwLjg4MDI3MywgMS4zMTQ3NywgMi4zMzM1NiwgMi45MTE0MiIsIFwKLSAgICAgICAgICAiMC4xNTQ1MDUsIDAuMTgzNTAyLCAwLjQ0MzQ3OCwgMC44Nzk3MzIsIDEuMzE0MTcsIDIuMzMzNjMsIDIuOTE0OTIiLCBcCi0gICAgICAgICAgIjAuMTU0NDg4LCAwLjE4MzUwNiwgMC40NDM0NjEsIDAuODc4OTY5LCAxLjMxNjIyLCAyLjMzMzcxLCAyLjkxNDk4IiwgXAotICAgICAgICAgICIwLjE1NDUxMSwgMC4xODM0OTgsIDAuNDQ0NDE4LCAwLjg4MDI2MSwgMS4zMTYxOSwgMi4zMzA0NywgMi45MDkyMyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNzk3NjQsIDAuMTkzNjU1LCAwLjMxODEyNywgMC41MjU4MTEsIDAuNzMzMzc5LCAxLjIxNzk3LCAxLjQ5NDY5IiwgXAotICAgICAgICAgICIwLjE4OTk3NSwgMC4yMDM5MjQsIDAuMzI4NTg3LCAwLjUzNjAyNywgMC43NDM1NjEsIDEuMjI3MzgsIDEuNTA1MDIiLCBcCi0gICAgICAgICAgIjAuMjAyNzEyLCAwLjIxNjYwMiwgMC4zNDEwNzcsIDAuNTQ4NzU5LCAwLjc1NjMyOSwgMS4yNDA5MiwgMS41MTc2NCIsIFwKLSAgICAgICAgICAiMC4yMTQ0NTksIDAuMjI4MzkyLCAwLjM1MzExNywgMC41NjA1NTQsIDAuNzY4MTExLCAxLjI1MTY4LCAxLjUyODIiLCBcCi0gICAgICAgICAgIjAuMjI1MDE3LCAwLjIzODg4MywgMC4zNjM2MTUsIDAuNTcwODc1LCAwLjc3ODY0MSwgMS4yNjMxMywgMS41Mzk4OCIsIFwKLSAgICAgICAgICAiMC4yMzkzNDksIDAuMjUzMzU0LCAwLjM3Nzk5MSwgMC41ODU0MjQsIDAuNzkyOTgyLCAxLjI3NjYsIDEuNTUzMDciLCBcCi0gICAgICAgICAgIjAuMjUwNDU3LCAwLjI2NDM3MSwgMC4zODkwNjgsIDAuNTk2NDk4LCAwLjgwNDA2OCwgMS4yODgxNiwgMS41NjUzOSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNDg0ODQsIDAuMTc2MzMxLCAwLjQyNTMwOCwgMC44NDE4MjEsIDEuMjU5LCAyLjIyNzQ0LCAyLjc4OTI1IiwgXAotICAgICAgICAgICIwLjE0ODgzMSwgMC4xNzYzNCwgMC40MjUyOTUsIDAuODQxNzcxLCAxLjI1ODg0LCAyLjIzMjcsIDIuNzgyOTEiLCBcCi0gICAgICAgICAgIjAuMTQ4NDc5LCAwLjE3NjMzLCAwLjQyNTI4OCwgMC44NDE4MiwgMS4yNTksIDIuMjI4NzIsIDIuNzg5MjYiLCBcCi0gICAgICAgICAgIjAuMTQ4NzQ0LCAwLjE3NjMxOCwgMC40MjUyODYsIDAuODQxNzM0LCAxLjI1ODgyLCAyLjIyOTAzLCAyLjc4MzYyIiwgXAotICAgICAgICAgICIwLjE0ODI5NiwgMC4xNzYzMjYsIDAuNDI1MzQyLCAwLjg0MjM1NywgMS4yNTkwMiwgMi4yMzI4MSwgMi43ODkwNSIsIFwKLSAgICAgICAgICAiMC4xNDg3ODQsIDAuMTc2MzIsIDAuNDI1Mjg5LCAwLjg0MTczMiwgMS4yNTg4MiwgMi4yMjkyMywgMi43ODQ5MiIsIFwKLSAgICAgICAgICAiMC4xNDg1NDUsIDAuMTc2MzM0LCAwLjQyNTMzMSwgMC44NDE3OTgsIDEuMjU5LCAyLjIzMTg2LCAyLjc4OTMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzNzA0LCAwLjAwMzcwMywgMC4wMDM2OTQsIDAuMDAzNjg4LCAwLjAwMzY4NiwgMC4wMDM2ODQsIDAuMDAzNjgzIiwgXAotICAgICAgICAgICIwLjAwMzY4NywgMC4wMDM2ODYsIDAuMDAzNjc3LCAwLjAwMzY3MSwgMC4wMDM2NjksIDAuMDAzNjY3LCAwLjAwMzY2NiIsIFwKLSAgICAgICAgICAiMC4wMDM2NzksIDAuMDAzNjc4LCAwLjAwMzY2OSwgMC4wMDM2NjQsIDAuMDAzNjYxLCAwLjAwMzY1OSwgMC4wMDM2NTgiLCBcCi0gICAgICAgICAgIjAuMDAzNjgxLCAwLjAwMzY4LCAwLjAwMzY3MSwgMC4wMDM2NjUsIDAuMDAzNjYyLCAwLjAwMzY2LCAwLjAwMzY1OSIsIFwKLSAgICAgICAgICAiMC4wMDM2OTEsIDAuMDAzNjksIDAuMDAzNjgxLCAwLjAwMzY3NSwgMC4wMDM2NzMsIDAuMDAzNjcsIDAuMDAzNjY5IiwgXAotICAgICAgICAgICIwLjAwMzcsIDAuMDAzNjk5LCAwLjAwMzY5MSwgMC4wMDM2ODUsIDAuMDAzNjgyLCAwLjAwMzY3OSwgMC4wMDM2NzgiLCBcCi0gICAgICAgICAgIjAuMDAzNzEzLCAwLjAwMzcxMiwgMC4wMDM3MDQsIDAuMDAzNjk4LCAwLjAwMzY5NSwgMC4wMDM2OTIsIDAuMDAzNjkxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzNjg5LCAwLjAwMzY5LCAwLjAwMzY5NCwgMC4wMDM2OTUsIDAuMDAzNjk2LCAwLjAwMzY5NiwgMC4wMDM2OTYiLCBcCi0gICAgICAgICAgIjAuMDAzNjczLCAwLjAwMzY3NCwgMC4wMDM2NzgsIDAuMDAzNjc5LCAwLjAwMzY4LCAwLjAwMzY4LCAwLjAwMzY4IiwgXAotICAgICAgICAgICIwLjAwMzY3MiwgMC4wMDM2NzMsIDAuMDAzNjc3LCAwLjAwMzY3OCwgMC4wMDM2NzksIDAuMDAzNjc5LCAwLjAwMzY3OSIsIFwKLSAgICAgICAgICAiMC4wMDM2OCwgMC4wMDM2ODEsIDAuMDAzNjg1LCAwLjAwMzY4NiwgMC4wMDM2ODcsIDAuMDAzNjg3LCAwLjAwMzY4OCIsIFwKLSAgICAgICAgICAiMC4wMDM2OTUsIDAuMDAzNjk2LCAwLjAwMzcsIDAuMDAzNzAxLCAwLjAwMzcwMiwgMC4wMDM3MDIsIDAuMDAzNzAyIiwgXAotICAgICAgICAgICIwLjAwMzcxMywgMC4wMDM3MTQsIDAuMDAzNzE4LCAwLjAwMzcyLCAwLjAwMzcyMSwgMC4wMDM3MjEsIDAuMDAzNzIxIiwgXAotICAgICAgICAgICIwLjAwMzczNSwgMC4wMDM3MzYsIDAuMDAzNzQsIDAuMDAzNzQxLCAwLjAwMzc0MiwgMC4wMDM3NDIsIDAuMDAzNzQyIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihRTikgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjE1MTYzNDsKLSAgICBmdW5jdGlvbiA6ICJRQklOVCI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3NlbnNlIDogbm9uX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiByaXNpbmdfZWRnZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTkwMzM2LCAwLjIwNDQ2MiwgMC4zMzE1NTgsIDAuNTQzMzM3LCAwLjc1NTE1MSwgMS4yNDk1NCwgMS41MzE5NSIsIFwKLSAgICAgICAgICAiMC4yMDA1NzMsIDAuMjE0NzA0LCAwLjM0MTgwOCwgMC41NTM1NjYsIDAuNzY1MzYxLCAxLjI1OTUxLCAxLjU0MjI1IiwgXAotICAgICAgICAgICIwLjIxMzI4NCwgMC4yMjc0MSwgMC4zNTQ1MDksIDAuNTY2Mjg1LCAwLjc3ODA5OSwgMS4yNzI0OSwgMS41NTQ5IiwgXAotICAgICAgICAgICIwLjIyNTExMywgMC4yMzkyNCwgMC4zNjYzNSwgMC41NzgxMDcsIDAuNzg5OTEyLCAxLjI4NDE0LCAxLjU2NjYxIiwgXAotICAgICAgICAgICIwLjIzNTU4NiwgMC4yNDk3MDgsIDAuMzc2ODI5LCAwLjU4ODU5NSwgMC44MDA0MSwgMS4yOTQ3NCwgMS41NzcxNyIsIFwKLSAgICAgICAgICAiMC4yNDk5ODYsIDAuMjY0MTI0LCAwLjM5MTIyNCwgMC42MDI5NzcsIDAuODE0NzgyLCAxLjMwOTAxLCAxLjU5MTUiLCBcCi0gICAgICAgICAgIjAuMjYxMDAxLCAwLjI3NTEyOSwgMC40MDIyNDQsIDAuNjE0MDAxLCAwLjgyNTgxNCwgMS4zMTk5NSwgMS42MDI2MiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNTIxNDcsIDAuMTgxMzk1LCAwLjQ0MjQ4NSwgMC44NzgyNTQsIDEuMzEzODEsIDIuMzI1NiwgMi45MTE0IiwgXAotICAgICAgICAgICIwLjE1MjM1NywgMC4xODE0MDcsIDAuNDQyODEyLCAwLjg3ODI0OSwgMS4zMTM3OSwgMi4zMjkwNSwgMi45MDU2OSIsIFwKLSAgICAgICAgICAiMC4xNTIxNDgsIDAuMTgxMzkzLCAwLjQ0MjQ4NiwgMC44NzgyNTUsIDEuMzEzODEsIDIuMzI1NTksIDIuOTExNCIsIFwKLSAgICAgICAgICAiMC4xNTIzMDMsIDAuMTgxMzg0LCAwLjQ0MjgwNiwgMC44NzgyNTUsIDEuMzEzOCwgMi4zMjU2MiwgMi45MDYxOCIsIFwKLSAgICAgICAgICAiMC4xNTIwNzIsIDAuMTgxMzg4LCAwLjQ0MjgzMSwgMC44Nzc4MSwgMS4zMTM4NSwgMi4zMzA0OSwgMi45MTEzIiwgXAotICAgICAgICAgICIwLjE1MjMxOSwgMC4xODEzODYsIDAuNDQyODA4LCAwLjg3ODI1NSwgMS4zMTM4LCAyLjMyNjk0LCAyLjkwNjQ4IiwgXAotICAgICAgICAgICIwLjE1MjEyMywgMC4xODE0MDMsIDAuNDQyODI4LCAwLjg3ODI1NiwgMS4zMTM4MiwgMi4zMzAwMSwgMi45MTE0MyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNzYxNzUsIDAuMTkwMDE2LCAwLjMxNDQ3MiwgMC41MjE4NCwgMC43MjkyMjIsIDEuMjEzMSwgMS40ODk4MiIsIFwKLSAgICAgICAgICAiMC4xODYzNzQsIDAuMjAwMjA3LCAwLjMyNDY4OSwgMC41MzIwNDksIDAuNzM5NDMxLCAxLjIyMzQxLCAxLjQ5OTk1IiwgXAotICAgICAgICAgICIwLjE5ODk5OCwgMC4yMTI4MzgsIDAuMzM3Mjk4LCAwLjU0NDY2LCAwLjc1MjA0MywgMS4yMzU5MywgMS41MTI2NSIsIFwKLSAgICAgICAgICAiMC4yMTA2OTYsIDAuMjI0NTI4LCAwLjM0ODk5MiwgMC41NTYzNTgsIDAuNzYzNzU4LCAxLjI0NzczLCAxLjUyNDE1IiwgXAotICAgICAgICAgICIwLjIyMDc2MSwgMC4yMzQ1OTMsIDAuMzU5MDYxLCAwLjU2NjQyMiwgMC43NzM4NDYsIDEuMjU3ODEsIDEuNTM0MzUiLCBcCi0gICAgICAgICAgIjAuMjM1Mjg5LCAwLjI0OTEyMSwgMC4zNzM1OTEsIDAuNTgwOTQ4LCAwLjc4ODM1LCAxLjI3MjM2LCAxLjU0ODg5IiwgXAotICAgICAgICAgICIwLjI0NjA3NywgMC4yNTk4OTcsIDAuMzg0MzU2LCAwLjU5MTcyNSwgMC43OTkxMTksIDEuMjgyOTksIDEuNTU5NTYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTQ1NDg4LCAwLjE3MzQxNiwgMC40MjM0MjUsIDAuODM5OTU3LCAxLjI1NjYxLCAyLjIyNTg5LCAyLjc4NTQ1IiwgXAotICAgICAgICAgICIwLjE0NTQ0NCwgMC4xNzM0LCAwLjQyMjUwOSwgMC44Mzg5NCwgMS4yNTY2NCwgMi4yMjkzOCwgMi43ODUwNCIsIFwKLSAgICAgICAgICAiMC4xNDU2MDMsIDAuMTczNDEsIDAuNDIzNDM0LCAwLjgzOTkzNSwgMS4yNTY1OCwgMi4yMjU5OCwgMi43Nzc4MyIsIFwKLSAgICAgICAgICAiMC4xNDU0MzgsIDAuMTczMzk3LCAwLjQyMzQ0MSwgMC44Mzk5MzUsIDEuMjU0OTQsIDIuMjI5MzEsIDIuNzgwNTgiLCBcCi0gICAgICAgICAgIjAuMTQ1NDU2LCAwLjE3MzM5OCwgMC40MjI0OTMsIDAuODM5NDgzLCAxLjI1NDU0LCAyLjIyOTQsIDIuNzg1MDkiLCBcCi0gICAgICAgICAgIjAuMTQ1NDQ4LCAwLjE3MzQsIDAuNDIyNDkyLCAwLjgzODgzOSwgMS4yNTY2NSwgMi4yMjk1LCAyLjc4NTE1IiwgXAotICAgICAgICAgICIwLjE0NTQxNywgMC4xNzMzNzksIDAuNDIzMzk3LCAwLjgzOTkxNiwgMS4yNTY2MSwgMi4yMjU5NSwgMi43Nzk1OSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDM2ODksIDAuMDAzNjksIDAuMDAzNjk0LCAwLjAwMzY5NSwgMC4wMDM2OTYsIDAuMDAzNjk2LCAwLjAwMzY5NiIsIFwKLSAgICAgICAgICAiMC4wMDM2NzMsIDAuMDAzNjc0LCAwLjAwMzY3OCwgMC4wMDM2NzksIDAuMDAzNjgsIDAuMDAzNjgsIDAuMDAzNjgiLCBcCi0gICAgICAgICAgIjAuMDAzNjcyLCAwLjAwMzY3MywgMC4wMDM2NzcsIDAuMDAzNjc4LCAwLjAwMzY3OSwgMC4wMDM2NzksIDAuMDAzNjc5IiwgXAotICAgICAgICAgICIwLjAwMzY4LCAwLjAwMzY4MSwgMC4wMDM2ODUsIDAuMDAzNjg2LCAwLjAwMzY4NywgMC4wMDM2ODcsIDAuMDAzNjg4IiwgXAotICAgICAgICAgICIwLjAwMzY5NSwgMC4wMDM2OTYsIDAuMDAzNywgMC4wMDM3MDEsIDAuMDAzNzAyLCAwLjAwMzcwMiwgMC4wMDM3MDIiLCBcCi0gICAgICAgICAgIjAuMDAzNzEzLCAwLjAwMzcxNCwgMC4wMDM3MTgsIDAuMDAzNzIsIDAuMDAzNzIxLCAwLjAwMzcyMSwgMC4wMDM3MjEiLCBcCi0gICAgICAgICAgIjAuMDAzNzM1LCAwLjAwMzczNiwgMC4wMDM3NCwgMC4wMDM3NDEsIDAuMDAzNzQyLCAwLjAwMzc0MiwgMC4wMDM3NDIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDM3MDQsIDAuMDAzNzAzLCAwLjAwMzY5NCwgMC4wMDM2ODgsIDAuMDAzNjg2LCAwLjAwMzY4NCwgMC4wMDM2ODMiLCBcCi0gICAgICAgICAgIjAuMDAzNjg3LCAwLjAwMzY4NiwgMC4wMDM2NzcsIDAuMDAzNjcxLCAwLjAwMzY2OSwgMC4wMDM2NjcsIDAuMDAzNjY2IiwgXAotICAgICAgICAgICIwLjAwMzY3OSwgMC4wMDM2NzgsIDAuMDAzNjY5LCAwLjAwMzY2NCwgMC4wMDM2NjEsIDAuMDAzNjU5LCAwLjAwMzY1OCIsIFwKLSAgICAgICAgICAiMC4wMDM2ODEsIDAuMDAzNjgsIDAuMDAzNjcxLCAwLjAwMzY2NSwgMC4wMDM2NjIsIDAuMDAzNjYsIDAuMDAzNjU5IiwgXAotICAgICAgICAgICIwLjAwMzY5MSwgMC4wMDM2OSwgMC4wMDM2ODEsIDAuMDAzNjc1LCAwLjAwMzY3MywgMC4wMDM2NywgMC4wMDM2NjkiLCBcCi0gICAgICAgICAgIjAuMDAzNywgMC4wMDM2OTksIDAuMDAzNjkxLCAwLjAwMzY4NSwgMC4wMDM2ODIsIDAuMDAzNjc5LCAwLjAwMzY3OCIsIFwKLSAgICAgICAgICAiMC4wMDM3MTMsIDAuMDAzNzEyLCAwLjAwMzcwNCwgMC4wMDM2OTgsIDAuMDAzNjk1LCAwLjAwMzY5MiwgMC4wMDM2OTEiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFNFKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDEzNTM2OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTM1MzUyOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTM1MzY7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA0MDE3LCAwLjAwMzk5NSwgMC4wMDQwMDEsIDAuMDA0MDAyLCAwLjAwNDAyLCAwLjAwNDA0MSwgMC4wMDQwNjgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDUzNywgMC4wMDUzMzQsIDAuMDA1MzM3LCAwLjAwNTMzOCwgMC4wMDUzNSwgMC4wMDUzOSwgMC4wMDU0MzEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUQmU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1NJX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDQzNzUsIC0wLjAzODc1LCAtMC4wMzI1LCAtMC4wMjYyNSwgLTAuMDIsIC0wLjAxLCAtMC4wMDc1IiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDMxMjUsIC0wLjAyMTI1LCAtMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wNjc1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzM3NSwgLTAuMDI1IiwgXAotICAgICAgICAgICItMC4wOCwgLTAuMDY4NzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDQ2MjUsIC0wLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjA5MjUsIC0wLjA4MTI1LCAtMC4wNzUsIC0wLjA2ODc1LCAtMC4wNjI1LCAtMC4wNTg3NSwgLTAuMDUiLCBcCi0gICAgICAgICAgIi0wLjEwODc1LCAtMC4wOTc1LCAtMC4wOTEyNSwgLTAuMDg1LCAtMC4wNzg3NSwgLTAuMDc1LCAtMC4wNjYyNSIsIFwKLSAgICAgICAgICAiLTAuMTE3NSwgLTAuMTEyNSwgLTAuMTA2MjUsIC0wLjEsIC0wLjA5Mzc1LCAtMC4wODM3NSwgLTAuMDgxMjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMTI1LCAtMC4wMDEyNSwgMC4wMTEyNSwgMC4wMTc1LCAwLjAzLCAwLjA0LCAwLjA0ODc1IiwgXAotICAgICAgICAgICItMC4wMTc1LCAtMC4wMTI1LCAwLCAwLjAxMjUsIDAuMDE4NzUsIDAuMDI4NzUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMTg3NSwgLTAuMDEyNSwgMCwgMC4wMDYyNSwgMC4wMjI1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIDAsIDAuMDEsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wNDM3NSwgLTAuMDMxMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDI1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wNjUsIC0wLjA1Mzc1LCAtMC4wNDEyNSwgLTAuMDM1LCAtMC4wMjg3NSwgLTAuMDEyNSwgLTAuMDAzNzUiLCBcCi0gICAgICAgICAgIi0wLjA2NzUsIC0wLjA2MjUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDI3NSwgLTAuMDEyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJEJiFTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzFfQU5fU0lfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMjUsIC0wLjAxMzc1LCAtMC4wMDEyNSwgMC4wMDUsIDAuMDE3NSwgMC4wMjc1LCAwLjAzNjI1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDI1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMC4wMDYyNSwgMC4wMTYyNSwgMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzNzUsIC0wLjAyNSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAuMDAzNzUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNDM3NSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDEyNSwgLTAuMDAyNSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDYxMjUsIC0wLjA1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMDg3NSwgMCIsIFwKLSAgICAgICAgICAiLTAuMDcxMjUsIC0wLjA2LCAtMC4wNDc1LCAtMC4wNDEyNSwgLTAuMDI4NzUsIC0wLjAxODc1LCAtMC4wMSIsIFwKLSAgICAgICAgICAiLTAuMDgsIC0wLjA2ODc1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjAzNzUsIC0wLjAyNzUsIC0wLjAxODc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDYyNSwgLTAuMDUxMjUsIC0wLjA0NSwgLTAuMDM4NzUsIC0wLjAzMjUsIC0wLjAyODc1LCAtMC4wMiIsIFwKLSAgICAgICAgICAiLTAuMDczNzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjA0LCAtMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDgsIC0wLjA3NSwgLTAuMDY4NzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNDYyNSwgLTAuMDQzNzUiLCBcCi0gICAgICAgICAgIi0wLjA4NjI1LCAtMC4wODEyNSwgLTAuMDc1LCAtMC4wNjg3NSwgLTAuMDYyNSwgLTAuMDUyNSwgLTAuMDUiLCBcCi0gICAgICAgICAgIi0wLjA5MjUsIC0wLjA4NzUsIC0wLjA4MTI1LCAtMC4wNzUsIC0wLjA2ODc1LCAtMC4wNTg3NSwgLTAuMDU2MjUiLCBcCi0gICAgICAgICAgIi0wLjEwMjUsIC0wLjA5NzUsIC0wLjA5MTI1LCAtMC4wODUsIC0wLjA3ODc1LCAtMC4wNjg3NSwgLTAuMDY2MjUiLCBcCi0gICAgICAgICAgIi0wLjExMTI1LCAtMC4xLCAtMC4wOTM3NSwgLTAuMDg3NSwgLTAuMDgxMjUsIC0wLjA3NzUsIC0wLjA2ODc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRCZTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fU0lfRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzUsIDAuMDYzNzUsIDAuMDU3NSwgMC4wNTEyNSwgMC4wNDUsIDAuMDM1LCAwLjAyNjI1IiwgXAotICAgICAgICAgICIwLjA4NjI1LCAwLjA3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1LCAwLjA0NjI1LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIjAuMDk4NzUsIDAuMDg3NSwgMC4wNzUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNTI1LCAwLjA1IiwgXAotICAgICAgICAgICIwLjExMTI1LCAwLjEsIDAuMDg3NSwgMC4wODEyNSwgMC4wNzUsIDAuMDY1LCAwLjA2MjUiLCBcCi0gICAgICAgICAgIjAuMTE3NSwgMC4xMTI1LCAwLjEsIDAuMDkzNzUsIDAuMDg3NSwgMC4wNzc1LCAwLjA3NSIsIFwKLSAgICAgICAgICAiMC4xNCwgMC4xMjg3NSwgMC4xMTYyNSwgMC4xMSwgMC4xMDM3NSwgMC4wOTM3NSwgMC4wOTEyNSIsIFwKLSAgICAgICAgICAiMC4xNTUsIDAuMTQzNzUsIDAuMTMxMjUsIDAuMTI1LCAwLjExODc1LCAwLjEwODc1LCAwLjEwNjI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU2MjUsIDAuMDQ1LCAwLjAzMjUsIDAuMDIsIDAuMDEzNzUsIC0wLjAwMjUsIC0wLjAxMTI1IiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDU2MjUsIDAuMDQzNzUsIDAuMDMxMjUsIDAuMDE4NzUsIDAuMDA4NzUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICIwLjA4LCAwLjA2ODc1LCAwLjA1NjI1LCAwLjA0Mzc1LCAwLjAzMTI1LCAwLjAxNSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiMC4wODYyNSwgMC4wNzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNDM3NSwgMC4wMjc1LCAwLjAxODc1IiwgXAotICAgICAgICAgICIwLjA5ODc1LCAwLjA4NzUsIDAuMDc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDQsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMTE1LCAwLjEwMzc1LCAwLjA5MTI1LCAwLjA3ODc1LCAwLjA3MjUsIDAuMDU2MjUsIDAuMDQ3NSIsIFwKLSAgICAgICAgICAiMC4xMywgMC4xMTg3NSwgMC4xMDYyNSwgMC4wOTM3NSwgMC4wODEyNSwgMC4wNzEyNSwgMC4wNTYyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiRCYhU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8xX0FOX1NJX0VRXzAgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY4NzUsIDAuMDU3NSwgMC4wNDUsIDAuMDM4NzUsIDAuMDI2MjUsIDAuMDEsIDAuMDAxMjUiLCBcCi0gICAgICAgICAgIjAuMDgsIDAuMDY4NzUsIDAuMDU2MjUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMjEyNSwgMC4wMTI1IiwgXAotICAgICAgICAgICIwLjA5MjUsIDAuMDgxMjUsIDAuMDY4NzUsIDAuMDU2MjUsIDAuMDQzNzUsIDAuMDMzNzUsIDAuMDI1IiwgXAotICAgICAgICAgICIwLjA5ODc1LCAwLjA4NzUsIDAuMDc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDQsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMTA1LCAwLjA5Mzc1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNjI1LCAwLjA0NjI1LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIjAuMTE1LCAwLjEwMzc1LCAwLjA5MTI1LCAwLjA3ODc1LCAwLjA3MjUsIDAuMDU2MjUsIDAuMDQ3NSIsIFwKLSAgICAgICAgICAiMC4xMjM3NSwgMC4xMTI1LCAwLjEsIDAuMDg3NSwgMC4wODEyNSwgMC4wNjUsIDAuMDU2MjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTM3NSwgMC4wODI1LCAwLjA3LCAwLjA2Mzc1LCAwLjA1NzUsIDAuMDQ3NSwgMC4wNDUiLCBcCi0gICAgICAgICAgIjAuMDk4NzUsIDAuMDkzNzUsIDAuMDgxMjUsIDAuMDc1LCAwLjA2ODc1LCAwLjA1ODc1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICIwLjExMTI1LCAwLjEsIDAuMDkzNzUsIDAuMDgxMjUsIDAuMDc1LCAwLjA3MTI1LCAwLjA2MjUiLCBcCi0gICAgICAgICAgIjAuMTE3NSwgMC4xMDYyNSwgMC4xLCAwLjA5Mzc1LCAwLjA4NzUsIDAuMDc3NSwgMC4wNjg3NSIsIFwKLSAgICAgICAgICAiMC4xMjM3NSwgMC4xMTI1LCAwLjEwNjI1LCAwLjEsIDAuMDkzNzUsIDAuMDgzNzUsIDAuMDc1IiwgXAotICAgICAgICAgICIwLjEzMzc1LCAwLjEyMjUsIDAuMTEsIDAuMTAzNzUsIDAuMDk3NSwgMC4wOTM3NSwgMC4wODUiLCBcCi0gICAgICAgICAgIjAuMTQyNSwgMC4xMzEyNSwgMC4xMTg3NSwgMC4xMTI1LCAwLjEwNjI1LCAwLjA5NjI1LCAwLjA5Mzc1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTSSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjk1NTQzOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDY5MzgwMTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2OTU1NDM7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyNjAzLCAwLjAwMjU4NiwgMC4wMDI1NzcsIDAuMDAyNTczLCAwLjAwMjU3MSwgMC4wMDI1NzQsIDAuMDAyNTgyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA0MzgsIDAuMDA0MzcxLCAwLjAwNDM2NiwgMC4wMDQzNjQsIDAuMDA0MzY0LCAwLjAwNDM2NSwgMC4wMDQzNzQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiU0UiOwotICAgICAgc2RmX2NvbmQgOiAiU0UgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDUsIC0wLjA0NSwgLTAuMDM4NzUsIC0wLjAzMjUsIC0wLjAyNjI1LCAtMC4wMTYyNSwgLTAuMDEzNzUiLCBcCi0gICAgICAgICAgIi0wLjA2MTI1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMjc1LCAtMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDczNzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjA0LCAtMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDgsIC0wLjA3NSwgLTAuMDY4NzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNDYyNSwgLTAuMDQzNzUiLCBcCi0gICAgICAgICAgIi0wLjA5MjUsIC0wLjA4NzUsIC0wLjA3NSwgLTAuMDY4NzUsIC0wLjA2ODc1LCAtMC4wNTg3NSwgLTAuMDUiLCBcCi0gICAgICAgICAgIi0wLjEwODc1LCAtMC4wOTc1LCAtMC4wOTEyNSwgLTAuMDg1LCAtMC4wNzg3NSwgLTAuMDc1LCAtMC4wNjYyNSIsIFwKLSAgICAgICAgICAiLTAuMTE3NSwgLTAuMTEyNSwgLTAuMTA2MjUsIC0wLjEsIC0wLjA5Mzc1LCAtMC4wODM3NSwgLTAuMDgxMjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMTg3NSwgLTAuMDA3NSwgMC4wMDUsIDAuMDExMjUsIDAuMDIzNzUsIDAuMDMzNzUsIDAuMDQyNSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLjAwNjI1LCAwLjAxMjUsIDAuMDIyNSwgMC4wMzc1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDI1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMC4wMDYyNSwgMC4wMTYyNSwgMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzNzUsIC0wLjAyNSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAuMDAzNzUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjA1NSwgLTAuMDQzNzUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAxMjUsIC0wLjAwMjUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA2NSwgLTAuMDUzNzUsIC0wLjA0MTI1LCAtMC4wMzUsIC0wLjAyODc1LCAtMC4wMTI1LCAtMC4wMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDczNzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDIxMjUsIC0wLjAxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlNFIjsKLSAgICAgIHNkZl9jb25kIDogIlNFID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4MTI1LCAwLjA3LCAwLjA2Mzc1LCAwLjA1NzUsIDAuMDUxMjUsIDAuMDQxMjUsIDAuMDMyNSIsIFwKLSAgICAgICAgICAiMC4wOTI1LCAwLjA4MTI1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDQ2MjUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMDk4NzUsIDAuMDkzNzUsIDAuMDgxMjUsIDAuMDc1LCAwLjA2ODc1LCAwLjA1ODc1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICIwLjExMTI1LCAwLjEsIDAuMDkzNzUsIDAuMDg3NSwgMC4wODEyNSwgMC4wNzEyNSwgMC4wNjI1IiwgXAotICAgICAgICAgICIwLjEyMzc1LCAwLjExMjUsIDAuMSwgMC4wOTM3NSwgMC4wODc1LCAwLjA4Mzc1LCAwLjA3NSIsIFwKLSAgICAgICAgICAiMC4xNCwgMC4xMjg3NSwgMC4xMTYyNSwgMC4xMSwgMC4xMDM3NSwgMC4wOTM3NSwgMC4wOTEyNSIsIFwKLSAgICAgICAgICAiMC4xNDg3NSwgMC4xNDM3NSwgMC4xMzEyNSwgMC4xMjUsIDAuMTE4NzUsIDAuMTA4NzUsIDAuMTA2MjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjI1LCAwLjA1MTI1LCAwLjAzODc1LCAwLjAyNjI1LCAwLjAyLCAwLjAwMzc1LCAtMC4wMDUiLCBcCi0gICAgICAgICAgIjAuMDczNzUsIDAuMDYyNSwgMC4wNSwgMC4wMzc1LCAwLjAyNSwgMC4wMTUsIDAiLCBcCi0gICAgICAgICAgIjAuMDgsIDAuMDY4NzUsIDAuMDU2MjUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMjEyNSwgMC4wMTI1IiwgXAotICAgICAgICAgICIwLjA5MjUsIDAuMDgxMjUsIDAuMDY4NzUsIDAuMDU2MjUsIDAuMDQzNzUsIDAuMDMzNzUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMDk4NzUsIDAuMDg3NSwgMC4wNzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNCwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4xMTUsIDAuMTAzNzUsIDAuMDkxMjUsIDAuMDc4NzUsIDAuMDY2MjUsIDAuMDU2MjUsIDAuMDQxMjUiLCBcCi0gICAgICAgICAgIjAuMTIzNzUsIDAuMTEyNSwgMC4xLCAwLjA4NzUsIDAuMDgxMjUsIDAuMDY1LCAwLjA1NjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogVEJVRlgxMiAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChUQlVGWDEyKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuOTAzNzgxOwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDU2Mzg4NDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDU2Mjk4OTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDU2Mzg4NDsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDIzOCwgMC4wMDI0MjgsIDAuMDAyNDMzLCAwLjAwMjQzNiwgMC4wMDI0MzYsIDAuMDAyNDM4LCAwLjAwMjQzOCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjUzMiwgMC4wMDI1MSwgMC4wMDI1MDgsIDAuMDAyNTA4LCAwLjAwMjUwOCwgMC4wMDI1MDgsIDAuMDAyNTA4Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihPRSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAzNDMzMjI7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAzNDMwOTE7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAzNDMzMjI7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHNjYWxhcikgewotICAgICAgICB2YWx1ZXMoIjAiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMTE5NzIsIDAuMDExODMsIDAuMDExNzY4LCAwLjAxMTcyMiwgMC4wMTE3NDksIDAuMDExODAzLCAwLjAxMjAyMiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDY2NjkzOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwNjY2OTM7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDA2NjY3Mjc7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMy4xNjc5NDsKLSAgICBmdW5jdGlvbiA6ICJBIjsKLSAgICB0aHJlZV9zdGF0ZSA6ICIoIU9FKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMTY2NjkzLCAwLjAyMjY2OTMsIDAuMDU2NjY5MywgMC4wODY2NjkzLCAwLjEyNjY2OSwgMC4yMDY2NjksIDAuMjU2NjY5Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDY3MDksIDAuMDQ5OTg2LCAwLjA2NDg4NywgMC4wNzYxNiwgMC4wOTA0LCAwLjExODAzOCwgMC4xMzUxODciLCBcCi0gICAgICAgICAgIjAuMDU1MzA1LCAwLjA1ODU5OCwgMC4wNzM0OTgsIDAuMDg0OCwgMC4wOTkwMjIsIDAuMTI2NjcsIDAuMTQzODIiLCBcCi0gICAgICAgICAgIjAuMDY1Nzc4LCAwLjA2OTA5NywgMC4wODQwNDQsIDAuMDk1MzUzLCAwLjEwOTU4MywgMC4xMzcyNDksIDAuMTU0MzkiLCBcCi0gICAgICAgICAgIjAuMDc1NTE3LCAwLjA3ODg2NSwgMC4wOTM5NDYsIDAuMTA1MzEsIDAuMTE5NTcxLCAwLjE0NzI0MywgMC4xNjQzODQiLCBcCi0gICAgICAgICAgIjAuMDg0MTYxLCAwLjA4NzYzOSwgMC4xMDMwMzcsIDAuMTE0NDc2LCAwLjEyODc5LCAwLjE1NjQ5LCAwLjE3MzYzNiIsIFwKLSAgICAgICAgICAiMC4wOTYzNTcsIDAuMDk5OTcxLCAwLjExNTg0NiwgMC4xMjc1MDcsIDAuMTQxOTcsIDAuMTY5NzE4LCAwLjE4Njg4NSIsIFwKLSAgICAgICAgICAiMC4xMDU2NjgsIDAuMTA5Mzg1LCAwLjEyNTgzMSwgMC4xMzc2MTcsIDAuMTUyMTk3LCAwLjE4MDA0MywgMC4xOTcyMDkiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMTY2NjkzLCAwLjAyMjY2OTMsIDAuMDU2NjY5MywgMC4wODY2NjkzLCAwLjEyNjY2OSwgMC4yMDY2NjksIDAuMjU2NjY5Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjE3OCwgMC4wMjYxNzksIDAuMDQ5MzM0LCAwLjA2OTM2NiwgMC4wOTYzNTEsIDAuMTUxMTEyLCAwLjE4NTYwOCIsIFwKLSAgICAgICAgICAiMC4wMjE4NjQsIDAuMDI2MjA5LCAwLjA0OTM2NSwgMC4wNjkzODgsIDAuMDk2MzY0LCAwLjE1MTExNCwgMC4xODU4ODQiLCBcCi0gICAgICAgICAgIjAuMDIyMDczLCAwLjAyNjM5OCwgMC4wNDk0NjQsIDAuMDY5NDI4LCAwLjA5NjM4NywgMC4xNTExMiwgMC4xODU2OTMiLCBcCi0gICAgICAgICAgIjAuMDIyODYyLCAwLjAyNzE1OSwgMC4wNDk5MDUsIDAuMDY5NzcxLCAwLjA5NjYyOSwgMC4xNTEyNjUsIDAuMTg1ODM5IiwgXAotICAgICAgICAgICIwLjAyNDAzOSwgMC4wMjgzNDEsIDAuMDUwNzQ0LCAwLjA3MDQ2OSwgMC4wOTcwODIsIDAuMTUxNTc1LCAwLjE4NjA2NCIsIFwKLSAgICAgICAgICAiMC4wMjU3MDYsIDAuMDI5ODc1LCAwLjA1MjMxLCAwLjA3MTcxOSwgMC4wOTgwNTUsIDAuMTUyMjk3LCAwLjE4NjYzMSIsIFwKLSAgICAgICAgICAiMC4wMjcyNjYsIDAuMDMxNjk0LCAwLjA1MzUxNSwgMC4wNzI5MjgsIDAuMDk5MTU1LCAwLjE1Mjk0OCwgMC4xODcyNDkiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMTY2NjczLCAwLjAyMjY2NzMsIDAuMDU2NjY3MywgMC4wODY2NjczLCAwLjEyNjY2NywgMC4yMDY2NjcsIDAuMjU2NjY3Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDEwMiwgMC4wNDQxMzksIDAuMDU4NjgsIDAuMDcwMDU5LCAwLjA4NDYyMiwgMC4xMTMyNDIsIDAuMTMxMDI5IiwgXAotICAgICAgICAgICIwLjA0OTAxMSwgMC4wNTIxMjIsIDAuMDY2NjY2LCAwLjA3ODA0NywgMC4wOTI2MTksIDAuMTIxMjQ2LCAwLjEzOTAzOSIsIFwKLSAgICAgICAgICAiMC4wNTc5MTMsIDAuMDYxMDM2LCAwLjA3NTYyMiwgMC4wODcwMjMsIDAuMTAxNjIsIDAuMTMwMjU2LCAwLjE0ODA1NyIsIFwKLSAgICAgICAgICAiMC4wNjU2NSwgMC4wNjg4NDIsIDAuMDgzNzA1LCAwLjA5NTE5MywgMC4xMDk4MDksIDAuMTM4NDU3LCAwLjE1NjI1OCIsIFwKLSAgICAgICAgICAiMC4wNzIzMTYsIDAuMDc1NTk1LCAwLjA5MDcsIDAuMTAyMjY4LCAwLjExNjk1MiwgMC4xNDU2MjUsIDAuMTYzNDI3IiwgXAotICAgICAgICAgICIwLjA4MTU1NCwgMC4wODQ5NDYsIDAuMTAwNDQyLCAwLjExMjEzOCwgMC4xMjY5NDEsIDAuMTU1NjY2LCAwLjE3MzQ4MSIsIFwKLSAgICAgICAgICAiMC4wODg1NjIsIDAuMDkxOTg2LCAwLjEwNzc2NiwgMC4xMTk2MTQsIDAuMTM0NDUyLCAwLjE2MzI5OCwgMC4xODExNzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMTY2NjczLCAwLjAyMjY2NzMsIDAuMDU2NjY3MywgMC4wODY2NjczLCAwLjEyNjY2NywgMC4yMDY2NjcsIDAuMjU2NjY3Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTk0OTMsIDAuMDIzODc4LCAwLjA0NzMxNywgMC4wNjc5ODQsIDAuMDk1ODE5LCAwLjE1MjIyNywgMC4xODc4NzciLCBcCi0gICAgICAgICAgIjAuMDE5NTk3LCAwLjAyMzk0MywgMC4wNDczNjYsIDAuMDY4MDAxLCAwLjA5NTgyOCwgMC4xNTIyMzMsIDAuMTg3ODc5IiwgXAotICAgICAgICAgICIwLjAyMDEwMiwgMC4wMjQzODYsIDAuMDQ3NjM2LCAwLjA2ODE4LCAwLjA5NTk0MiwgMC4xNTIzNSwgMC4xODgxMiIsIFwKLSAgICAgICAgICAiMC4wMjEyMjYsIDAuMDI1Mzk3LCAwLjA0ODQwOCwgMC4wNjg2OTEsIDAuMDk2MzY3LCAwLjE1MjQxNiwgMC4xODgwNjMiLCBcCi0gICAgICAgICAgIjAuMDIxOTU4LCAwLjAyNjMyNiwgMC4wNDkyMDgsIDAuMDY5NDY1LCAwLjA5Njk0MiwgMC4xNTI5MjcsIDAuMTg4NjA1IiwgXAotICAgICAgICAgICIwLjAyMzM3OCwgMC4wMjc2ODMsIDAuMDUwNTc3LCAwLjA3MDY5OCwgMC4wOTc3NDQsIDAuMTUzNTk4LCAwLjE4ODgyMiIsIFwKLSAgICAgICAgICAiMC4wMjQzMjcsIDAuMDI4ODQ2LCAwLjA1MTU1NywgMC4wNzE1MjMsIDAuMDk4NzY1LCAwLjE1MzkzNSwgMC4xODkzMTYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiT0UiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHRocmVlX3N0YXRlX2VuYWJsZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMTY2NjkzLCAwLjAyMjY2OTMsIDAuMDU2NjY5MywgMC4wODY2NjkzLCAwLjEyNjY2OSwgMC4yMDY2NjksIDAuMjU2NjY5Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDM5MiwgMC4wNDcyMTEsIDAuMDYyMDg4LCAwLjA3MzM0NywgMC4wODc1NzYsIDAuMTE1MjE3LCAwLjEzMjM1MyIsIFwKLSAgICAgICAgICAiMC4wNTI5MTgsIDAuMDU2MjE5LCAwLjA3MTA3NywgMC4wODIzNTIsIDAuMDk2NTgsIDAuMTI0MjIyLCAwLjE0MTM0NyIsIFwKLSAgICAgICAgICAiMC4wNjQ1MjcsIDAuMDY3ODIzLCAwLjA4MjcyLCAwLjA5NDAxLCAwLjEwODIzNSwgMC4xMzU4NzcsIDAuMTUzMDA1IiwgXAotICAgICAgICAgICIwLjA3NTYxNywgMC4wNzg5NTMsIDAuMDkzOTQzLCAwLjEwNTI5OSwgMC4xMTk1MzQsIDAuMTQ3MTgsIDAuMTY0MzA2IiwgXAotICAgICAgICAgICIwLjA4NDkyNSwgMC4wODg0NCwgMC4xMDM4OTUsIDAuMTE1MzI4LCAwLjEyOTU2OSwgMC4xNTcyMzIsIDAuMTc0MzU4IiwgXAotICAgICAgICAgICIwLjA5NzQ3MiwgMC4xMDEzMiwgMC4xMTc0NDUsIDAuMTI5MDk5LCAwLjE0MzU1LCAwLjE3MTI3NywgMC4xODg0MTQiLCBcCi0gICAgICAgICAgIjAuMTA3NTgyLCAwLjExMTU1OSwgMC4xMjgyODEsIDAuMTQwMDY5LCAwLjE1NDYyLCAwLjE4MjQ4LCAwLjE5OTYwNiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxNjY2OTMsIDAuMDIyNjY5MywgMC4wNTY2NjkzLCAwLjA4NjY2OTMsIDAuMTI2NjY5LCAwLjIwNjY2OSwgMC4yNTY2NjkiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyMjUzNCwgMC4wMjY5NjIsIDAuMDQ5ODQ5LCAwLjA2OTc1LCAwLjA5NjU4NCwgMC4xNTEyODcsIDAuMTg1OTk3IiwgXAotICAgICAgICAgICIwLjAyMjQ5NywgMC4wMjY4NTMsIDAuMDQ5NzYyLCAwLjA2OTcyOSwgMC4wOTY1NDUsIDAuMTUxMjcxLCAwLjE4NTg1OCIsIFwKLSAgICAgICAgICAiMC4wMjI4MzQsIDAuMDI3MTQzLCAwLjA0OTkzLCAwLjA2OTgxNiwgMC4wOTY2NTcsIDAuMTUxMjc0LCAwLjE4NTg2OSIsIFwKLSAgICAgICAgICAiMC4wMjM4NjcsIDAuMDI4MTYxLCAwLjA1MDcyLCAwLjA3MDM2LCAwLjA5NzA1MSwgMC4xNTE0MzksIDAuMTg2MTQ3IiwgXAotICAgICAgICAgICIwLjAyNTY5MSwgMC4wMjk4NzEsIDAuMDUxNzQ5LCAwLjA3MTIyLCAwLjA5NzcwNywgMC4xNTE4ODYsIDAuMTg2MjY0IiwgXAotICAgICAgICAgICIwLjAyODcwMiwgMC4wMzI2NDMsIDAuMDU0MTI4LCAwLjA3Mjk4NCwgMC4wOTkwNjYsIDAuMTUyODYxLCAwLjE4NzA3NiIsIFwKLSAgICAgICAgICAiMC4wMzAyMzYsIDAuMDM0NDA5LCAwLjA1NTU5NiwgMC4wNzQzOTUsIDAuMTAwMjMxLCAwLjE1MzU1MywgMC4xODc3MzgiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMTY2NjczLCAwLjAyMjY2NzMsIDAuMDU2NjY3MywgMC4wODY2NjczLCAwLjEyNjY2NywgMC4yMDY2NjcsIDAuMjU2NjY3Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTk1ODUsIDAuMDYyNzI2LCAwLjA3NzIxOCwgMC4wODg1ODQsIDAuMTAzMTMsIDAuMTMxNzA4LCAwLjE0OTQ4MyIsIFwKLSAgICAgICAgICAiMC4wNjk3OTYsIDAuMDcyOTA0LCAwLjA4NzM5NywgMC4wOTg3MzgsIDAuMTEzMzA0LCAwLjE0MTg4MSwgMC4xNTk2NTgiLCBcCi0gICAgICAgICAgIjAuMDgyMTk5LCAwLjA4NTM0MSwgMC4wOTk4MzQsIDAuMTExMTk5LCAwLjEyNTc0MywgMC4xNTQzMjEsIDAuMTcyMSIsIFwKLSAgICAgICAgICAiMC4wOTM1NzQsIDAuMDk2NjUxLCAwLjExMTE4NywgMC4xMjI1MjQsIDAuMTM3MDY1LCAwLjE2NTY0NiwgMC4xODM0MjciLCBcCi0gICAgICAgICAgIjAuMTAzMTMyLCAwLjEwNjIyLCAwLjEyMDc4MiwgMC4xMzIxNTEsIDAuMTQ2NzA2LCAwLjE3NTI4NSwgMC4xOTMwNTYiLCBcCi0gICAgICAgICAgIjAuMTE2NTE1LCAwLjExOTY0MywgMC4xMzQyMzgsIDAuMTQ1NjA5LCAwLjE2MDE2OSwgMC4xODg3NjIsIDAuMjA2NTQxIiwgXAotICAgICAgICAgICIwLjEyNzAyNCwgMC4xMzAxNywgMC4xNDQ3ODYsIDAuMTU2MTg4LCAwLjE3MDc1NCwgMC4xOTkzMzMsIDAuMjE3MTIzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDE2NjY3MywgMC4wMjI2NjczLCAwLjA1NjY2NzMsIDAuMDg2NjY3MywgMC4xMjY2NjcsIDAuMjA2NjY3LCAwLjI1NjY2NyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDIwMzU0LCAwLjAyNDcwMywgMC4wNDc5MzksIDAuMDY4NDMxLCAwLjA5NjE2NiwgMC4xNTIzMzMsIDAuMTg4MjAzIiwgXAotICAgICAgICAgICIwLjAyMDM4MiwgMC4wMjQ2OTgsIDAuMDQ3OTM5LCAwLjA2ODQwNiwgMC4wOTYxNjMsIDAuMTUyNDMyLCAwLjE4Nzk4NCIsIFwKLSAgICAgICAgICAiMC4wMjAzNSwgMC4wMjQ3MTEsIDAuMDQ3OTQxLCAwLjA2ODQzNCwgMC4wOTYxNjEsIDAuMTUyNDQ5LCAwLjE4Nzk3MSIsIFwKLSAgICAgICAgICAiMC4wMjA0MzgsIDAuMDI0NzAxLCAwLjA0Nzk1OCwgMC4wNjg0NTksIDAuMDk2MTY1LCAwLjE1MjQxNCwgMC4xODc5NzQiLCBcCi0gICAgICAgICAgIjAuMDIwNDk5LCAwLjAyNDc4MSwgMC4wNDgsIDAuMDY4NTMxLCAwLjA5NjIzLCAwLjE1MjQ2OSwgMC4xODgwMTIiLCBcCi0gICAgICAgICAgIjAuMDIwODA5LCAwLjAyNTA5NCwgMC4wNDgxMzgsIDAuMDY4NTc4LCAwLjA5NjI4LCAwLjE1MjM5OCwgMC4xODgwODgiLCBcCi0gICAgICAgICAgIjAuMDIwOTM4LCAwLjAyNTE5MiwgMC4wNDgyNzQsIDAuMDY4NzE1LCAwLjA5NjIzOCwgMC4xNTI0NzcsIDAuMTg4MDk0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIk9FIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiB0aHJlZV9zdGF0ZV9kaXNhYmxlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDQ1MDQ3LCAwLjA1NDk5NiwgMC4wNjcyNTIsIDAuMDc4MDIsIDAuMDg3MzEyLCAwLjEwMDI4NCwgMC4xMDk4NDYiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihzY2FsYXIpIHsKLSAgICAgICAgdmFsdWVzKCIwIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMjQ4NjIsIDAuMDM0NzUxLCAwLjA0Njg1OSwgMC4wNTcxNzYsIDAuMDY1NTIsIDAuMDc3MjQ1LCAwLjA4NTk0MSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKHNjYWxhcikgewotICAgICAgICB2YWx1ZXMoIjAiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxNjY2OTMsIDAuMDIyNjY5MywgMC4wNTY2NjkzLCAwLjA4NjY2OTMsIDAuMTI2NjY5LCAwLjIwNjY2OSwgMC4yNTY2NjkiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxNDk4LCAwLjAxNTA3NCwgMC4wMTUyOTksIDAuMDE1MzY3LCAwLjAxNTQwOSwgMC4wMTU0NDUsIDAuMDE1NDU3IiwgXAotICAgICAgICAgICIwLjAxNDYwMiwgMC4wMTQ2ODgsIDAuMDE0OTM2LCAwLjAxNTAyNSwgMC4wMTUwODcsIDAuMDE1MTQ0LCAwLjAxNTE2MiIsIFwKLSAgICAgICAgICAiMC4wMTQzNjMsIDAuMDE0NDQ3LCAwLjAxNDcxMiwgMC4wMTQ4MjMsIDAuMDE0OTA2LCAwLjAxNDk4OSwgMC4wMTUwMjMiLCBcCi0gICAgICAgICAgIjAuMDE0MjkxLCAwLjAxNDM2NSwgMC4wMTQ2MjgsIDAuMDE0NzUxLCAwLjAxNDg0NCwgMC4wMTQ5NDQsIDAuMDE0OTgiLCBcCi0gICAgICAgICAgIjAuMDE0Mjg3LCAwLjAxNDM2OSwgMC4wMTQ2MTcsIDAuMDE0NzM3LCAwLjAxNDgzOCwgMC4wMTQ5NDYsIDAuMDE0OTg2IiwgXAotICAgICAgICAgICIwLjAxNDM0NiwgMC4wMTQ0MTQsIDAuMDE0NjY4LCAwLjAxNDc4NiwgMC4wMTQ4OTUsIDAuMDE1MDEyLCAwLjAxNTA1NiIsIFwKLSAgICAgICAgICAiMC4wMTQ0NjgsIDAuMDE0NTIzLCAwLjAxNDc0OCwgMC4wMTQ4NjksIDAuMDE0OTc3LCAwLjAxNTEwMywgMC4wMTUxNjIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxNjY2NzMsIDAuMDIyNjY3MywgMC4wNTY2NjczLCAwLjA4NjY2NzMsIDAuMTI2NjY3LCAwLjIwNjY2NywgMC4yNTY2NjciKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyNDQyOSwgMC4wMjQ1NzEsIDAuMDI0OTY1LCAwLjAyNTEwMSwgMC4wMjUxOTQsIDAuMDI1Mjc4LCAwLjAyNTMwNiIsIFwKLSAgICAgICAgICAiMC4wMjQxNzcsIDAuMDI0MzAxLCAwLjAyNDY4NSwgMC4wMjQ4MzcsIDAuMDI0OTQ4LCAwLjAyNTA1MywgMC4wMjUwODkiLCBcCi0gICAgICAgICAgIjAuMDI0MDg1LCAwLjAyNDE3MiwgMC4wMjQ1MDcsIDAuMDI0NjY4LCAwLjAyNDc5NSwgMC4wMjQ5MjgsIDAuMDI0OTc0IiwgXAotICAgICAgICAgICIwLjAyNDE0MywgMC4wMjQxOTksIDAuMDI0NDU4LCAwLjAyNDYwNiwgMC4wMjQ3MTksIDAuMDI0ODYsIDAuMDI0OTE0IiwgXAotICAgICAgICAgICIwLjAyNDM0MiwgMC4wMjQzMjgsIDAuMDI0NDk0LCAwLjAyNDYyOSwgMC4wMjQ3NDUsIDAuMDI0ODgxLCAwLjAyNDkzNiIsIFwKLSAgICAgICAgICAiMC4wMjQ3MywgMC4wMjQ2NzgsIDAuMDI0NjM0LCAwLjAyNDczNCwgMC4wMjQ4NjUsIDAuMDI0OTU3LCAwLjAyNTAxNyIsIFwKLSAgICAgICAgICAiMC4wMjQ5ODgsIDAuMDI0OTEzLCAwLjAyNDg1NywgMC4wMjQ4ODMsIDAuMDI0OTY2LCAwLjAyNTA3MywgMC4wMjUxMTciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJPRSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMTY2NjkzLCAwLjAyMjY2OTMsIDAuMDU2NjY5MywgMC4wODY2NjkzLCAwLjEyNjY2OSwgMC4yMDY2NjksIDAuMjU2NjY5Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTQwOTcsIDAuMDE0MDk0LCAwLjAxNDA5MiwgMC4wMTQwODgsIDAuMDE0MDg4LCAwLjAxNDA4NSwgMC4wMTQwODEiLCBcCi0gICAgICAgICAgIjAuMDEzODk0LCAwLjAxMzg5LCAwLjAxMzg4OSwgMC4wMTM4ODYsIDAuMDEzODg1LCAwLjAxMzg3OCwgMC4wMTM4NzYiLCBcCi0gICAgICAgICAgIjAuMDEzODY5LCAwLjAxMzg2OSwgMC4wMTM4NzEsIDAuMDEzODY5LCAwLjAxMzg2OCwgMC4wMTM4NjQsIDAuMDEzODYiLCBcCi0gICAgICAgICAgIjAuMDEzOTEzLCAwLjAxMzkwNiwgMC4wMTM5MDYsIDAuMDEzOTA3LCAwLjAxMzkwNCwgMC4wMTM4OTksIDAuMDEzODk2IiwgXAotICAgICAgICAgICIwLjAxMzk3MywgMC4wMTM5NjYsIDAuMDEzOTU0LCAwLjAxMzk1MSwgMC4wMTM5NTEsIDAuMDEzOTQ1LCAwLjAxMzk0MyIsIFwKLSAgICAgICAgICAiMC4wMTQxMTMsIDAuMDE0MTE0LCAwLjAxNDExMiwgMC4wMTQxMDgsIDAuMDE0MTA1LCAwLjAxNDA5OSwgMC4wMTQwOTciLCBcCi0gICAgICAgICAgIjAuMDE0Mjg0LCAwLjAxNDI4NywgMC4wMTQyODcsIDAuMDE0MjgyLCAwLjAxNDI4NSwgMC4wMTQyNzUsIDAuMDE0MjY5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMTY2NjczLCAwLjAyMjY2NzMsIDAuMDU2NjY3MywgMC4wODY2NjczLCAwLjEyNjY2NywgMC4yMDY2NjcsIDAuMjU2NjY3Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTMwMTUsIDAuMDEzMDE1LCAwLjAxMzAxNiwgMC4wMTMwMTYsIDAuMDEzMDE2LCAwLjAxMzAxNSwgMC4wMTMwMTUiLCBcCi0gICAgICAgICAgIjAuMDEyOTUzLCAwLjAxMjk1MywgMC4wMTI5NTQsIDAuMDEyOTUzLCAwLjAxMjk1MiwgMC4wMTI5NTMsIDAuMDEyOTUzIiwgXAotICAgICAgICAgICIwLjAxMjkzNCwgMC4wMTI5MzQsIDAuMDEyOTM1LCAwLjAxMjkzNSwgMC4wMTI5MzUsIDAuMDEyOTM1LCAwLjAxMjkzNCIsIFwKLSAgICAgICAgICAiMC4wMTI5MjIsIDAuMDEyOTIzLCAwLjAxMjkyNywgMC4wMTI5MjcsIDAuMDEyOTI3LCAwLjAxMjkyNywgMC4wMTI5MjciLCBcCi0gICAgICAgICAgIjAuMDEyOTY0LCAwLjAxMjk2NCwgMC4wMTI5NjYsIDAuMDEyOTYzLCAwLjAxMjk2NSwgMC4wMTI5NjYsIDAuMDEyOTY3IiwgXAotICAgICAgICAgICIwLjAxMjk4OSwgMC4wMTI5OTcsIDAuMDEyOTg2LCAwLjAxMjk4MywgMC4wMTI5ODMsIDAuMDEyOTgzLCAwLjAxMjk4NCIsIFwKLSAgICAgICAgICAiMC4wMTMwNTcsIDAuMDEzMDU2LCAwLjAxMzA2NCwgMC4wMTMwNTgsIDAuMDEzMDU4LCAwLjAxMzA1NywgMC4wMTMwNTQiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBUQlVGWDIwICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKFRCVUZYMjApIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMS41MDgzNjsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDA5MDQ4NjU7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDA5MDMzMzY7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDA5MDQ4NjU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzOTYxLCAwLjAwNDA0LCAwLjAwNDA1LCAwLjAwNDA1MiwgMC4wMDQwNSwgMC4wMDQwNTcsIDAuMDA0MDU3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA0MjE5LCAwLjAwNDE3OCwgMC4wMDQxNzQsIDAuMDA0MTc1LCAwLjAwNDE3NCwgMC4wMDQxNzUsIDAuMDA0MTc1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihPRSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDA1NjI5MTI7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDA1NjI1OTM7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDA1NjI5MTI7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHNjYWxhcikgewotICAgICAgICB2YWx1ZXMoIjAiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMTc2ODQsIDAuMDE3NDU0LCAwLjAxNzM2OSwgMC4wMTczODMsIDAuMDE3MzUyLCAwLjAxNzUyOSwgMC4wMTc5NDQiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDEwNzkzMzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMTA3OTMzOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAxMDc4OTk7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogNS4yNTA0NzsKLSAgICBmdW5jdGlvbiA6ICJBIjsKLSAgICB0aHJlZV9zdGF0ZSA6ICIoIU9FKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMjA3OTMzLCAwLjA3MDc5MzMsIDAuMTEwNzkzLCAwLjE2MDc5MywgMC4yMTA3OTMsIDAuMjYwNzkzLCAwLjMxMDc5MyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQzNTE0LCAwLjA1ODkyOSwgMC4wNjg4MjYsIDAuMDgwMjYxLCAwLjA5MTI1NSwgMC4xMDIwOSwgMC4xMTI4MDEiLCBcCi0gICAgICAgICAgIjAuMDUyMDg2LCAwLjA2NzUxNSwgMC4wNzc0MTUsIDAuMDg4ODU0LCAwLjA5OTg3LCAwLjExMDY4OSwgMC4xMjE0MjciLCBcCi0gICAgICAgICAgIjAuMDYyNDgxLCAwLjA3Nzk4NSwgMC4wODc4OTYsIDAuMDk5MzQ1LCAwLjExMDM3NiwgMC4xMjEyMDYsIDAuMTMxOTQ0IiwgXAotICAgICAgICAgICIwLjA3MTk1OCwgMC4wODc2OTEsIDAuMDk3NjYxLCAwLjEwOTE2LCAwLjEyMDIwNiwgMC4xMzEwMzYsIDAuMTQxNzgxIiwgXAotICAgICAgICAgICIwLjA4MDI3OSwgMC4wOTY0NywgMC4xMDY1MzYsIDAuMTE4MDg5LCAwLjEyOTE3NSwgMC4xNDAwMjMsIDAuMTUwNzc1IiwgXAotICAgICAgICAgICIwLjA5MjAxNSwgMC4xMDg3OTgsIDAuMTE5MTA4LCAwLjEzMDg0NiwgMC4xNDE5ODEsIDAuMTUyODgsIDAuMTYzNjM2IiwgXAotICAgICAgICAgICIwLjEwMDk4NywgMC4xMTgzNzMsIDAuMTI4ODQ4LCAwLjE0MDY5MiwgMC4xNTE5MDcsIDAuMTYyODUxLCAwLjE3MzY2Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDIwNzkzMywgMC4wNzA3OTMzLCAwLjExMDc5MywgMC4xNjA3OTMsIDAuMjEwNzkzLCAwLjI2MDc5MywgMC4zMTA3OTMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxOTA4NSwgMC4wNDEzNDgsIDAuMDU4MTQ2LCAwLjA3OTAyMywgMC4xMDAyMDMsIDAuMTIxNDc0LCAwLjE0Mjg2MiIsIFwKLSAgICAgICAgICAiMC4wMTkxMjQsIDAuMDQxMzgzLCAwLjA1ODE1NywgMC4wNzkxMDMsIDAuMTAwMjA2LCAwLjEyMTQ3OSwgMC4xNDI4OTYiLCBcCi0gICAgICAgICAgIjAuMDE5NTE3LCAwLjA0MTU1LCAwLjA1ODIzMSwgMC4wNzkxNjIsIDAuMTAwMjQ2LCAwLjEyMTQ5NywgMC4xNDI4NzYiLCBcCi0gICAgICAgICAgIjAuMDIwMzUsIDAuMDQyMTI4LCAwLjA1ODY4NSwgMC4wNzk1NDEsIDAuMTAwNTE3LCAwLjEyMTcxNCwgMC4xNDMwNTkiLCBcCi0gICAgICAgICAgIjAuMDIxNTA1LCAwLjA0Mjk4MywgMC4wNTk0NTcsIDAuMDgwMTE5LCAwLjEwMDk1MSwgMC4xMjIxMzIsIDAuMTQzNDIiLCBcCi0gICAgICAgICAgIjAuMDIzMTQ2LCAwLjA0NDQ5OSwgMC4wNjA5MjksIDAuMDgxMjEzLCAwLjEwMTg4MywgMC4xMjI5MjEsIDAuMTQ0MTYzIiwgXAotICAgICAgICAgICIwLjAyNDc3OSwgMC4wNDU4NjcsIDAuMDYxOTgxLCAwLjA4MjQ3OSwgMC4xMDI4MzUsIDAuMTIzNjc5LCAwLjE0NDc3OSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAyMDc4OTksIDAuMDcwNzg5OSwgMC4xMTA3OSwgMC4xNjA3OSwgMC4yMTA3OSwgMC4yNjA3OSwgMC4zMTA3OSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM4OTQ1LCAwLjA1MzU5LCAwLjA2MzI1NywgMC4wNzQ2MjUsIDAuMDg1NjY0LCAwLjA5NjU3MSwgMC4xMDc0MjgiLCBcCi0gICAgICAgICAgIjAuMDQ2OTgzLCAwLjA2MTYxMywgMC4wNzEyODYsIDAuMDgyNjYzLCAwLjA5MzcwNSwgMC4xMDQ2MjYsIDAuMTE1NDgzIiwgXAotICAgICAgICAgICIwLjA1NTk0OCwgMC4wNzA2NjUsIDAuMDgwMzU0LCAwLjA5MTczMSwgMC4xMDI3OTgsIDAuMTEzNzIzLCAwLjEyNDU3OSIsIFwKLSAgICAgICAgICAiMC4wNjM2MzUsIDAuMDc4NjY1LCAwLjA4ODQ0MSwgMC4wOTk4ODEsIDAuMTEwOTU2LCAwLjEyMTg4OCwgMC4xMzI3NTEiLCBcCi0gICAgICAgICAgIjAuMDcwMjEsIDAuMDg1NTk2LCAwLjA5NTQ4LCAwLjEwNywgMC4xMTgxMjEsIDAuMTI5MDc0LCAwLjEzOTkzOSIsIFwKLSAgICAgICAgICAiMC4wNzk0NTMsIDAuMDk1MiwgMC4xMDUyNjYsIDAuMTE2ODY0LCAwLjEyODA5LCAwLjEzOTA4MSwgMC4xNDk5OTIiLCBcCi0gICAgICAgICAgIjAuMDg2MzE3LCAwLjEwMjQwNiwgMC4xMTI1ODksIDAuMTI0MzU5LCAwLjEzNTYwNiwgMC4xNDY2MjksIDAuMTU3NTY1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDIwNzg5OSwgMC4wNzA3ODk5LCAwLjExMDc5LCAwLjE2MDc5LCAwLjIxMDc5LCAwLjI2MDc5LCAwLjMxMDc5Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTY3NTksIDAuMDM4NDI3LCAwLjA1NTE1LCAwLjA3NjE1NywgMC4wOTczNzYsIDAuMTE4NzA0LCAwLjE0MDE2MyIsIFwKLSAgICAgICAgICAiMC4wMTY4NjEsIDAuMDM4NDg0LCAwLjA1NTE5MSwgMC4wNzYxODEsIDAuMDk3Mzc1LCAwLjExODcxNywgMC4xNDAxNzkiLCBcCi0gICAgICAgICAgIjAuMDE3Mzk0LCAwLjAzODgzNCwgMC4wNTU0MzQsIDAuMDc2MzQ3LCAwLjA5NzQ3NywgMC4xMTg3OCwgMC4xNDAyODgiLCBcCi0gICAgICAgICAgIjAuMDE4NDAxLCAwLjAzOTY0MiwgMC4wNTYxMDMsIDAuMDc2ODg0LCAwLjA5NzkwNiwgMC4xMTkyMTUsIDAuMTQwNTA3IiwgXAotICAgICAgICAgICIwLjAxOTI2OSwgMC4wNDA2MTksIDAuMDU2ODE0LCAwLjA3NzQ5MiwgMC4wOTg0ODMsIDAuMTE5NjI1LCAwLjE0MDk3OSIsIFwKLSAgICAgICAgICAiMC4wMjA1MiwgMC4wNDE5LCAwLjA1ODA3OCwgMC4wNzg1NzMsIDAuMDk5MjU3LCAwLjEyMDM3NywgMC4xNDE2MTciLCBcCi0gICAgICAgICAgIjAuMDIxNDk1LCAwLjA0MzA2MSwgMC4wNTkxMzYsIDAuMDc5NDI0LCAwLjEwMDIxMywgMC4xMjA5MzgsIDAuMTQyMDI2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIk9FIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiB0aHJlZV9zdGF0ZV9lbmFibGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDIwNzkzMywgMC4wNzA3OTMzLCAwLjExMDc5MywgMC4xNjA3OTMsIDAuMjEwNzkzLCAwLjI2MDc5MywgMC4zMTA3OTMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0MDgwNiwgMC4wNTYxOTksIDAuMDY2MDA0LCAwLjA3NzQ5MiwgMC4wODg1MDYsIDAuMDk5MzE0LCAwLjExMDA0MyIsIFwKLSAgICAgICAgICAiMC4wNDk4MTksIDAuMDY1MTk1LCAwLjA3NTA2NywgMC4wODY0OTEsIDAuMDk3NTAzLCAwLjEwODMxMywgMC4xMTkwMjkiLCBcCi0gICAgICAgICAgIjAuMDYxNDI1LCAwLjA3Njg2MiwgMC4wODY3NSwgMC4wOTgxODMsIDAuMTA5MTk4LCAwLjEyMDAxMiwgMC4xMzA3MzYiLCBcCi0gICAgICAgICAgIjAuMDcxOTIzLCAwLjA4NzY5NSwgMC4wOTc2NDgsIDAuMTA5MTIxLCAwLjEyMDEzOCwgMC4xMzA5NjQsIDAuMTQxNjkyIiwgXAotICAgICAgICAgICIwLjA4MDg3NCwgMC4wOTcxOTksIDAuMTA3MjU2LCAwLjExODc5NywgMC4xMjk4NDksIDAuMTQwNzAzLCAwLjE1MTQyIiwgXAotICAgICAgICAgICIwLjA5Mjk2OCwgMC4xMTAyMDksIDAuMTIwNTE0LCAwLjEzMjI2MywgMC4xNDM0MDIsIDAuMTU0MjgsIDAuMTY1MDQzIiwgXAotICAgICAgICAgICIwLjEwMjM2NiwgMC4xMjAzNTksIDAuMTMwOTIzLCAwLjE0MjczMywgMC4xNTM5NjUsIDAuMTY0ODc3LCAwLjE3NTg2MyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAyMDc5MzMsIDAuMDcwNzkzMywgMC4xMTA3OTMsIDAuMTYwNzkzLCAwLjIxMDc5MywgMC4yNjA3OTMsIDAuMzEwNzkzIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTk4MTEsIDAuMDQxODgzLCAwLjA1ODUxMywgMC4wNzk0LCAwLjEwMDQ0NywgMC4xMjE2NzgsIDAuMTQzMDIiLCBcCi0gICAgICAgICAgIjAuMDE5NzYsIDAuMDQxODYzLCAwLjA1ODQ3NiwgMC4wNzkzOTMsIDAuMTAwNDQ1LCAwLjEyMTYsIDAuMTQzMDEiLCBcCi0gICAgICAgICAgIjAuMDIwMjIxLCAwLjA0MjA1MywgMC4wNTg2NTYsIDAuMDc5NDc3LCAwLjEwMDQxOCwgMC4xMjE3MTMsIDAuMTQzMDU4IiwgXAotICAgICAgICAgICIwLjAyMTQ1OCwgMC4wNDI4NzIsIDAuMDU5MjA5LCAwLjA3OTkxNiwgMC4xMDA4NTksIDAuMTIxOTc0LCAwLjE0MzI1IiwgXAotICAgICAgICAgICIwLjAyMzA4NiwgMC4wNDQwNzIsIDAuMDYwMjQyLCAwLjA4MDc0OCwgMC4xMDE1MTMsIDAuMTIyNTM1LCAwLjE0MzY4NiIsIFwKLSAgICAgICAgICAiMC4wMjU3MTgsIDAuMDQ2MTY2LCAwLjA2MjIwMywgMC4wODIyMTQsIDAuMTAyNzMzLCAwLjEyMzU1MSwgMC4xNDQ2OTUiLCBcCi0gICAgICAgICAgIjAuMDI3NTcyLCAwLjA0Nzk2MiwgMC4wNjM2MTMsIDAuMDgzNjcxLCAwLjEwMzg2MiwgMC4xMjQ0NTEsIDAuMTQ1NTk1Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDIwNzg5OSwgMC4wNzA3ODk5LCAwLjExMDc5LCAwLjE2MDc5LCAwLjIxMDc5LCAwLjI2MDc5LCAwLjMxMDc5Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTE5NCwgMC4wNjY1MDMsIDAuMDc2MTQ5LCAwLjA4NzQ4NSwgMC4wOTg1MTksIDAuMTA5NDE1LCAwLjEyMDI1NyIsIFwKLSAgICAgICAgICAiMC4wNjE5NjUsIDAuMDc2NTg0LCAwLjA4NjIsIDAuMDk3NTM2LCAwLjEwODU1OSwgMC4xMTk0NTgsIDAuMTMwMjk3IiwgXAotICAgICAgICAgICIwLjA3Mzc2NywgMC4wODgzNTMsIDAuMDk3OTgyLCAwLjEwOTMyNCwgMC4xMjAzNTUsIDAuMTMxMjQ0LCAwLjE0MjA4NyIsIFwKLSAgICAgICAgICAiMC4wODM0NzYsIDAuMDk4MDk3LCAwLjEwNzczOSwgMC4xMTkwNywgMC4xMzAwOSwgMC4xNDA5ODcsIDAuMTUxODI4IiwgXAotICAgICAgICAgICIwLjA5MTgxOCwgMC4xMDY0NDQsIDAuMTE2MDg0LCAwLjEyNzQ1MiwgMC4xMzg0NzYsIDAuMTQ5Mzc5LCAwLjE2MDIxNCIsIFwKLSAgICAgICAgICAiMC4xMDM0NDgsIDAuMTE4MTQyLCAwLjEyNzc5NSwgMC4xMzkxNDYsIDAuMTUwMTc1LCAwLjE2MTA3NCwgMC4xNzE5MSIsIFwKLSAgICAgICAgICAiMC4xMTIyNDMsIDAuMTI3MDA4LCAwLjEzNjY4MSwgMC4xNDgwMTMsIDAuMTU5MDU5LCAwLjE2OTk1OSwgMC4xODA4MDkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMjA3ODk5LCAwLjA3MDc4OTksIDAuMTEwNzksIDAuMTYwNzksIDAuMjEwNzksIDAuMjYwNzksIDAuMzEwNzkiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxNzU5LCAwLjAzOTEwMSwgMC4wNTU2ODgsIDAuMDc2NTQ4LCAwLjA5NzY4NywgMC4xMTg5MzEsIDAuMTQwMzYyIiwgXAotICAgICAgICAgICIwLjAxNzU2NCwgMC4wMzkxMTEsIDAuMDU1Njg1LCAwLjA3NjU0OSwgMC4wOTc2NTIsIDAuMTE4OTM2LCAwLjE0MDQwOSIsIFwKLSAgICAgICAgICAiMC4wMTc1NzYsIDAuMDM5MTIyLCAwLjA1NTY4MiwgMC4wNzY1NTMsIDAuMDk3NjE0LCAwLjExODk0NCwgMC4xNDAzNTUiLCBcCi0gICAgICAgICAgIjAuMDE3NjMyLCAwLjAzOTIwMSwgMC4wNTU3NTQsIDAuMDc2NjIzLCAwLjA5NzczNCwgMC4xMTg5ODQsIDAuMTQwMzc0IiwgXAotICAgICAgICAgICIwLjAxNzc3MywgMC4wMzkyMzYsIDAuMDU1NzQ4LCAwLjA3NjYyNCwgMC4wOTc3MywgMC4xMTkwNDYsIDAuMTQwNDUiLCBcCi0gICAgICAgICAgIjAuMDE3OTc2LCAwLjAzOTM1LCAwLjA1NTg0LCAwLjA3NjYzMSwgMC4wOTc3MTMsIDAuMTE5MDgxLCAwLjE0MDQ1NiIsIFwKLSAgICAgICAgICAiMC4wMTgwOTQsIDAuMDM5NDAyLCAwLjA1NTkyOSwgMC4wNzY4MzUsIDAuMDk3NzE1LCAwLjExODk2NiwgMC4xNDAzOTYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiT0UiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHRocmVlX3N0YXRlX2Rpc2FibGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMzk4OTcsIDAuMDQ5NjUsIDAuMDYxMTQ3LCAwLjA3MDU3MSwgMC4wNzg1NDEsIDAuMDg5NzE2LCAwLjA5NzkwMiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKHNjYWxhcikgewotICAgICAgICB2YWx1ZXMoIjAiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAyNTczLCAwLjAzNTM2MiwgMC4wNDcyNTIsIDAuMDU3MDgzLCAwLjA2NTQ1MiwgMC4wNzY3NzksIDAuMDg1Mjc2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oc2NhbGFyKSB7Ci0gICAgICAgIHZhbHVlcygiMCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDIwNzkzMywgMC4wNzA3OTMzLCAwLjExMDc5MywgMC4xNjA3OTMsIDAuMjEwNzkzLCAwLjI2MDc5MywgMC4zMTA3OTMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyMzgyLCAwLjAyNDQwMiwgMC4wMjQ1NDUsIDAuMDI0NjMxLCAwLjAyNDY3OCwgMC4wMjQ3MTQsIDAuMDI0NzI3IiwgXAotICAgICAgICAgICIwLjAyMzIxMSwgMC4wMjM3ODksIDAuMDIzOTY5LCAwLjAyNDA4NywgMC4wMjQxNTcsIDAuMDI0MjAyLCAwLjAyNDIxOSIsIFwKLSAgICAgICAgICAiMC4wMjI4NSwgMC4wMjM0MjUsIDAuMDIzNjMzLCAwLjAyMzc4NiwgMC4wMjM4OCwgMC4wMjM5NDUsIDAuMDIzOTkiLCBcCi0gICAgICAgICAgIjAuMDIyNzQsIDAuMDIzMjg1LCAwLjAyMzQ5NSwgMC4wMjM2NzYsIDAuMDIzNzc1LCAwLjAyMzg1MiwgMC4wMjM4OTciLCBcCi0gICAgICAgICAgIjAuMDIyNzU5LCAwLjAyMzI3LCAwLjAyMzQ4NSwgMC4wMjM2NTgsIDAuMDIzNzc3LCAwLjAyMzg1OSwgMC4wMjM5MjIiLCBcCi0gICAgICAgICAgIjAuMDIyODUyLCAwLjAyMzMzOCwgMC4wMjM1NDgsIDAuMDIzNzIyLCAwLjAyMzg1NCwgMC4wMjM5NDIsIDAuMDI0MDExIiwgXAotICAgICAgICAgICIwLjAyMzA2NiwgMC4wMjM1MTcsIDAuMDIzNzI2LCAwLjAyMzkwNCwgMC4wMjQwMjUsIDAuMDI0MTE2LCAwLjAyNDE4OSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDIwNzg5OSwgMC4wNzA3ODk5LCAwLjExMDc5LCAwLjE2MDc5LCAwLjIxMDc5LCAwLjI2MDc5LCAwLjMxMDc5Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzkwNDcsIDAuMDM5OTcxLCAwLjA0MDI0NCwgMC4wNDA0MjEsIDAuMDQwNTIyLCAwLjA0MDU4NywgMC4wNDA2MzMiLCBcCi0gICAgICAgICAgIjAuMDM4NjUxLCAwLjAzOTQ5NSwgMC4wMzk3ODksIDAuMDM5OTk0LCAwLjA0MDExNywgMC4wNDAyLCAwLjA0MDI1OCIsIFwKLSAgICAgICAgICAiMC4wMzg1NzIsIDAuMDM5MjE0LCAwLjAzOTUwNSwgMC4wMzk3MzIsIDAuMDM5ODUsIDAuMDM5OTUzLCAwLjA0MDAzMSIsIFwKLSAgICAgICAgICAiMC4wMzg3NTYsIDAuMDM5MTY3LCAwLjAzOTQxMywgMC4wMzk2MzcsIDAuMDM5Nzg5LCAwLjAzOTg5NywgMC4wMzk5NTkiLCBcCi0gICAgICAgICAgIjAuMDM5MDM0LCAwLjAzOTI0OSwgMC4wMzk0NTYsIDAuMDM5NjU0LCAwLjAzOTc5NiwgMC4wMzk5MDYsIDAuMDM5OTg5IiwgXAotICAgICAgICAgICIwLjAzOTc0NSwgMC4wMzk1NzIsIDAuMDM5NjYzLCAwLjAzOTgyMywgMC4wMzk5MjQsIDAuMDQwMDI3LCAwLjA0MDEwNSIsIFwKLSAgICAgICAgICAiMC4wNDAxOCwgMC4wMzk5MjQsIDAuMDM5OTU1LCAwLjA0MDA2OSwgMC4wNDAxNjMsIDAuMDQwMjQzLCAwLjA0MDMxMyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIk9FIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAyMDc5MzMsIDAuMDcwNzkzMywgMC4xMTA3OTMsIDAuMTYwNzkzLCAwLjIxMDc5MywgMC4yNjA3OTMsIDAuMzEwNzkzIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjI2NzMsIDAuMDIyNjcxLCAwLjAyMjY2OCwgMC4wMjI2NjksIDAuMDIyNjY2LCAwLjAyMjY2NSwgMC4wMjI2NjIiLCBcCi0gICAgICAgICAgIjAuMDIyMzM4LCAwLjAyMjMzNSwgMC4wMjIzMzYsIDAuMDIyMzMsIDAuMDIyMzMxLCAwLjAyMjMzLCAwLjAyMjMyNyIsIFwKLSAgICAgICAgICAiMC4wMjIzMTQsIDAuMDIyMzIxLCAwLjAyMjMxOSwgMC4wMjIzMiwgMC4wMjIzMTcsIDAuMDIyMzIsIDAuMDIyMzE2IiwgXAotICAgICAgICAgICIwLjAyMjM4MywgMC4wMjIzNzYsIDAuMDIyMzc0LCAwLjAyMjM3MywgMC4wMjIzNzQsIDAuMDIyMzcxLCAwLjAyMjM3MiIsIFwKLSAgICAgICAgICAiMC4wMjI1MDcsIDAuMDIyNDk2LCAwLjAyMjQ5MSwgMC4wMjI0OTEsIDAuMDIyNDksIDAuMDIyNDg3LCAwLjAyMjQ4NSIsIFwKLSAgICAgICAgICAiMC4wMjI3ODMsIDAuMDIyNzksIDAuMDIyNzg1LCAwLjAyMjc3NCwgMC4wMjI3NzEsIDAuMDIyNzY5LCAwLjAyMjc2NSIsIFwKLSAgICAgICAgICAiMC4wMjI5NDgsIDAuMDIyOTQ0LCAwLjAyMjk0NiwgMC4wMjI5NDUsIDAuMDIyOTM5LCAwLjAyMjkzNSwgMC4wMjI5NjYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAyMDc4OTksIDAuMDcwNzg5OSwgMC4xMTA3OSwgMC4xNjA3OSwgMC4yMTA3OSwgMC4yNjA3OSwgMC4zMTA3OSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDIxMzMyLCAwLjAyMTMzNCwgMC4wMjEzMzMsIDAuMDIxMzMyLCAwLjAyMTMzMywgMC4wMjEzMzIsIDAuMDIxMzMyIiwgXAotICAgICAgICAgICIwLjAyMTE4NywgMC4wMjExODUsIDAuMDIxMTg0LCAwLjAyMTE4NSwgMC4wMjExODQsIDAuMDIxMTg2LCAwLjAyMTE4NyIsIFwKLSAgICAgICAgICAiMC4wMjExNDIsIDAuMDIxMTQyLCAwLjAyMTE0MSwgMC4wMjExNDEsIDAuMDIxMTQyLCAwLjAyMTE0MywgMC4wMjExNDIiLCBcCi0gICAgICAgICAgIjAuMDIxMTYsIDAuMDIxMTcyLCAwLjAyMTE3MywgMC4wMjExNzUsIDAuMDIxMTc2LCAwLjAyMTE3NiwgMC4wMjExNzYiLCBcCi0gICAgICAgICAgIjAuMDIxMjE0LCAwLjAyMTIxNywgMC4wMjEyMTQsIDAuMDIxMjEzLCAwLjAyMTIxNiwgMC4wMjEyMzQsIDAuMDIxMjE2IiwgXAotICAgICAgICAgICIwLjAyMTI2NywgMC4wMjEyNzMsIDAuMDIxMjY3LCAwLjAyMTI2NCwgMC4wMjEyNjMsIDAuMDIxMjYyLCAwLjAyMTI2MiIsIFwKLSAgICAgICAgICAiMC4wMjEzNTIsIDAuMDIxMzU0LCAwLjAyMTM1NiwgMC4wMjEzNTcsIDAuMDIxMzUsIDAuMDIxMzUyLCAwLjAyMTM0OSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogVEJVRlg0ICoKLSAqIC0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoVEJVRlg0KSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMzA4Mjc0OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE5ODc4OTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE5ODUyNTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE5ODc4OTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA3ODgsIDAuMDAwODA1LCAwLjAwMDgwNywgMC4wMDA4MDgsIDAuMDAwODA4LCAwLjAwMDgwOSwgMC4wMDA4MDkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA4NDEsIDAuMDAwODMyLCAwLjAwMDgzMSwgMC4wMDA4MzEsIDAuMDAwODMxLCAwLjAwMDgzMSwgMC4wMDA4MzEiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKE9FKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDEzOTk2OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTM5OTEzOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTM5OTY7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHNjYWxhcikgewotICAgICAgICB2YWx1ZXMoIjAiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDQ0MywgMC4wMDQzNzIsIDAuMDA0MzM1LCAwLjAwNDMyNSwgMC4wMDQzMzcsIDAuMDA0MzczLCAwLjAwNDQyMSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDIxODE3NTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDIxODE3NTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDIxODExOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDEuMDQxMDk7Ci0gICAgZnVuY3Rpb24gOiAiQSI7Ci0gICAgdGhyZWVfc3RhdGUgOiAiKCFPRSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEyMTgxNywgMC4wODIxODE3LCAwLjE1MjE4MiwgMC4yMDIxODIsIDAuMjgyMTgyLCAwLjM1MjE4MiwgMC40NTIxODIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1NTkzNywgMC4xMzEwNTMsIDAuMjAzMTQzLCAwLjI1NDYzNSwgMC4zMzY5OTUsIDAuNDA5MDA4LCAwLjUxMTk1MSIsIFwKLSAgICAgICAgICAiMC4wNjQ1MDIsIDAuMTM5Njg5LCAwLjIxMTc3MiwgMC4yNjMyNjYsIDAuMzQ1NjI1LCAwLjQxNzY0MSwgMC41MjA1OTQiLCBcCi0gICAgICAgICAgIjAuMDc1MTI1LCAwLjE1MDM1OCwgMC4yMjI0NjQsIDAuMjczOTM0LCAwLjM1NjMwMSwgMC40MjgzMiwgMC41MzEyNzIiLCBcCi0gICAgICAgICAgIjAuMDg1MDc5LCAwLjE2MDQ0NSwgMC4yMzI1NjksIDAuMjg0MDMyLCAwLjM2NjQyLCAwLjQzODQyNCwgMC41NDEzNTkiLCBcCi0gICAgICAgICAgIjAuMDk0MTMsIDAuMTY5Nzc3LCAwLjI0MTg3NSwgMC4yOTMzNTUsIDAuMzc1NzUyLCAwLjQ0Nzc1MSwgMC41NTA2NDkiLCBcCi0gICAgICAgICAgIjAuMTA2OTExLCAwLjE4MzE3NSwgMC4yNTUyNzEsIDAuMzA2ODAyLCAwLjM4OTExMSwgMC40NjExODksIDAuNTY0MDM1IiwgXAotICAgICAgICAgICIwLjExNjgzMiwgMC4xOTM2OTIsIDAuMjY1NzU5LCAwLjMxNzIyNCwgMC4zOTk2LCAwLjQ3MTU4NywgMC41NzQ1MiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxMjE4MTcsIDAuMDgyMTgxNywgMC4xNTIxODIsIDAuMjAyMTgyLCAwLjI4MjE4MiwgMC4zNTIxODIsIDAuNDUyMTgyIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzU1NTYsIDAuMTc5MjA0LCAwLjMyNjc3MywgMC40MzIzNjcsIDAuNjAzMDgyLCAwLjc1MTU3LCAwLjk2Mjc5OCIsIFwKLSAgICAgICAgICAiMC4wMzU2MjksIDAuMTc5MTgzLCAwLjMyNjc2MywgMC40MzIzNTQsIDAuNjAzMDU0LCAwLjc1MTUwOCwgMC45NjMyMDYiLCBcCi0gICAgICAgICAgIjAuMDM1NzU1LCAwLjE3OTIwMiwgMC4zMjY4NTMsIDAuNDMyODgsIDAuNjAyOTQxLCAwLjc1MDc5OCwgMC45NjMxNzciLCBcCi0gICAgICAgICAgIjAuMDM2MzUyLCAwLjE3OTA5OCwgMC4zMjY5MDYsIDAuNDMyODk2LCAwLjYwMjkyMywgMC43NTE3MzIsIDAuOTYzMzY1IiwgXAotICAgICAgICAgICIwLjAzNzMzOSwgMC4xNzkzMzEsIDAuMzI2NTUzLCAwLjQzMjM4MiwgMC42MDI5NDIsIDAuNzUxNzE3LCAwLjk2MzQyNSIsIFwKLSAgICAgICAgICAiMC4wMzg5MzIsIDAuMTc5OTYxLCAwLjMyNzA1NCwgMC40MzIzMjQsIDAuNjAyODgyLCAwLjc1MTc4OSwgMC45NjQ0IiwgXAotICAgICAgICAgICIwLjA0MDQ0LCAwLjE4MDU3NywgMC4zMjcwNTksIDAuNDMyNzMsIDAuNjAyOTg2LCAwLjc1MTY0NSwgMC45NjI5NzIiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMTIxODExLCAwLjA4MjE4MTEsIDAuMTUyMTgxLCAwLjIwMjE4MSwgMC4yODIxODEsIDAuMzUyMTgxLCAwLjQ1MjE4MSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQ5MDc1LCAwLjEyNDczOSwgMC4xOTgxOTcsIDAuMjUwNjc2LCAwLjMzNDU1NSwgMC40MDc5NTIsIDAuNTEyODIzIiwgXAotICAgICAgICAgICIwLjA1NzIwMiwgMC4xMzI5MDYsIDAuMjA2MzY4LCAwLjI1ODg1LCAwLjM0MjczMSwgMC40MTYxMiwgMC41MjA5OTYiLCBcCi0gICAgICAgICAgIjAuMDY2NTQxLCAwLjE0MjI5LCAwLjIxNTc1OSwgMC4yNjgyNDgsIDAuMzUyMTM0LCAwLjQyNTUyNiwgMC41MzAzOTEiLCBcCi0gICAgICAgICAgIjAuMDc0NzgzLCAwLjE1MDc1MiwgMC4yMjQyMjYsIDAuMjc2Njg3LCAwLjM2MDYwNiwgMC40MzM5OTksIDAuNTM4ODU1IiwgXAotICAgICAgICAgICIwLjA4MTk4LCAwLjE1ODI3LCAwLjIzMTczOCwgMC4yODQxOTYsIDAuMzY4MTM1LCAwLjQ0MTU1MSwgMC41NDYzODUiLCBcCi0gICAgICAgICAgIjAuMDkxODg5LCAwLjE2ODc2OSwgMC4yNDIyMzMsIDAuMjk0NjgyLCAwLjM3ODU5MSwgMC40NTE5ODksIDAuNTU2OTE4IiwgXAotICAgICAgICAgICIwLjA5OTM5NywgMC4xNzY2OTcsIDAuMjUwMTYyLCAwLjMwMjU5MiwgMC4zODY1MDEsIDAuNDU5ODk0LCAwLjU2NDc0NSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxMjE4MTEsIDAuMDgyMTgxMSwgMC4xNTIxODEsIDAuMjAyMTgxLCAwLjI4MjE4MSwgMC4zNTIxODEsIDAuNDUyMTgxIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzI4MTYsIDAuMTc3MzA0LCAwLjMyNTM1NiwgMC40MzIxNDIsIDAuNjAyMzEyLCAwLjc1MDg2NCwgMC45NjI2MDUiLCBcCi0gICAgICAgICAgIjAuMDMyODYyLCAwLjE3NzQ2OSwgMC4zMjUzNTgsIDAuNDMyMDg4LCAwLjYwMjMwMiwgMC43NTExNzYsIDAuOTYyNjI3IiwgXAotICAgICAgICAgICIwLjAzMzIyNywgMC4xNzc3NDQsIDAuMzI1MzQ0LCAwLjQzMDk1NiwgMC42MDIyMjcsIDAuNzUxMjEyLCAwLjk2MzMyMyIsIFwKLSAgICAgICAgICAiMC4wMzQxNjIsIDAuMTc3NjcsIDAuMzI1ODI5LCAwLjQzMTQwNywgMC42MDIxNTcsIDAuNzUxMjA3LCAwLjk2NDAxNiIsIFwKLSAgICAgICAgICAiMC4wMzUxOCwgMC4xNzc5OTEsIDAuMzI1OTM1LCAwLjQzMjAxNiwgMC42MDIwMjQsIDAuNzUxMDM3LCAwLjk2MjUxNSIsIFwKLSAgICAgICAgICAiMC4wMzY1MzcsIDAuMTc4NDMsIDAuMzI1NzQ1LCAwLjQzMTU5OSwgMC42MDE2ODcsIDAuNzUwNjQ5LCAwLjk2Mzc4MyIsIFwKLSAgICAgICAgICAiMC4wMzc3NDEsIDAuMTc4ODY5LCAwLjMyNjAyNSwgMC40MzE4NTEsIDAuNjAxNzMxLCAwLjc1MDg3OSwgMC45NjMzOTQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiT0UiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHRocmVlX3N0YXRlX2VuYWJsZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMTIxODE3LCAwLjA4MjE4MTcsIDAuMTUyMTgyLCAwLjIwMjE4MiwgMC4yODIxODIsIDAuMzUyMTgyLCAwLjQ1MjE4MiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDUzNDgxLCAwLjEyODU3NywgMC4yMDA2NjMsIDAuMjUyMTQsIDAuMzM0NDkyLCAwLjQwNjU0NSwgMC41MDk0OTUiLCBcCi0gICAgICAgICAgIjAuMDYyNDE0LCAwLjEzNzUxLCAwLjIwOTYsIDAuMjYxMDc1LCAwLjM0MzQwOCwgMC40MTU0NTMsIDAuNTE4NDAxIiwgXAotICAgICAgICAgICIwLjA3NDE4NSwgMC4xNDkzMjIsIDAuMjIxMzkxLCAwLjI3Mjg3MywgMC4zNTUyNDYsIDAuNDI3MjUxLCAwLjUzMDE1OSIsIFwKLSAgICAgICAgICAiMC4wODU0NywgMC4xNjA3MzcsIDAuMjMyNzk5LCAwLjI4NDI2OCwgMC4zNjY2NjIsIDAuNDM4NjYxLCAwLjU0MTU1NSIsIFwKLSAgICAgICAgICAiMC4wOTU0MzUsIDAuMTcwOTU3LCAwLjI0MzAxNywgMC4yOTQ1MDksIDAuMzc2ODgyLCAwLjQ0ODg3LCAwLjU1MTc3MyIsIFwKLSAgICAgICAgICAiMC4xMDkwNzMsIDAuMTg1MzQ0LCAwLjI1NzM2NSwgMC4zMDg4MywgMC4zOTExNjQsIDAuNDYzMjQ0LCAwLjU2NjA4NyIsIFwKLSAgICAgICAgICAiMC4xMTk2LCAwLjE5NjQ5MSwgMC4yNjg1NCwgMC4zMjAwMzksIDAuNDAyMzM5LCAwLjQ3NDM2MiwgMC41NzczIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEyMTgxNywgMC4wODIxODE3LCAwLjE1MjE4MiwgMC4yMDIxODIsIDAuMjgyMTgyLCAwLjM1MjE4MiwgMC40NTIxODIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzNjA3NiwgMC4xNzkwMTMsIDAuMzI2ODc4LCAwLjQzMjUxNCwgMC42MDIyMzMsIDAuNzUwNDc5LCAwLjk2NDkzNyIsIFwKLSAgICAgICAgICAiMC4wMzYxNDEsIDAuMTc5MTI1LCAwLjMyNjg3LCAwLjQzMjQ5NiwgMC42MDMwMzksIDAuNzUxNjUyLCAwLjk2MzI4NiIsIFwKLSAgICAgICAgICAiMC4wMzYyNjUsIDAuMTc5MzI2LCAwLjMyNjgzNiwgMC40MzI1MjYsIDAuNjAzMDE0LCAwLjc1MTg1NCwgMC45NjM2MjgiLCBcCi0gICAgICAgICAgIjAuMDM3MDgxLCAwLjE3OTIzLCAwLjMyNjg5MiwgMC40MzI0NTksIDAuNjAzMDQ1LCAwLjc1MTg0NiwgMC45NjM0ODkiLCBcCi0gICAgICAgICAgIjAuMDM4NDcsIDAuMTc5NTEyLCAwLjMyNjcxNSwgMC40MzMwNjIsIDAuNjAzMTg0LCAwLjc1MTg2NSwgMC45NjM2ODUiLCBcCi0gICAgICAgICAgIjAuMDQwODM1LCAwLjE4MDM4NSwgMC4zMjcyNCwgMC40MzMyMDIsIDAuNjAzMDgyLCAwLjc1MTk2NSwgMC45NjQ2MDYiLCBcCi0gICAgICAgICAgIjAuMDQyOTA3LCAwLjE4MTEzMSwgMC4zMjc2NjQsIDAuNDMyNjYxLCAwLjYwMzIyMiwgMC43NTE2NTQsIDAuOTY0NjkzIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEyMTgxMSwgMC4wODIxODExLCAwLjE1MjE4MSwgMC4yMDIxODEsIDAuMjgyMTgxLCAwLjM1MjE4MSwgMC40NTIxODEiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1OTg0NywgMC4xMzU0MTgsIDAuMjA4ODQ1LCAwLjI2MTMzOSwgMC4zNDUyMiwgMC40MTg2NTcsIDAuNTIzNTM1IiwgXAotICAgICAgICAgICIwLjA2OTc3OSwgMC4xNDUzNTIsIDAuMjE4Nzc3LCAwLjI3MTIzNSwgMC4zNTUxMzYsIDAuNDI4NTY2LCAwLjUzMzQ4NiIsIFwKLSAgICAgICAgICAiMC4wODEwOTksIDAuMTU2NjAxLCAwLjIzMDAyOCwgMC4yODI1MzgsIDAuMzY2NDQsIDAuNDM5ODU3LCAwLjU0NDcwNiIsIFwKLSAgICAgICAgICAiMC4wOTAxNjgsIDAuMTY1NzA0LCAwLjIzOTE0MSwgMC4yOTE2MjYsIDAuMzc1NDkzLCAwLjQ0ODg4LCAwLjU1Mzc1OSIsIFwKLSAgICAgICAgICAiMC4wOTc3OTksIDAuMTczMzY2LCAwLjI0Njc5NiwgMC4yOTkyNDEsIDAuMzgzMTcxLCAwLjQ1NjU1MywgMC41NjE0MDMiLCBcCi0gICAgICAgICAgIjAuMTA4MjY2LCAwLjE4Mzg1NiwgMC4yNTcyOCwgMC4zMDk3MTcsIDAuMzkzNjIsIDAuNDY3MDIxLCAwLjU3MTg3MiIsIFwKLSAgICAgICAgICAiMC4xMTY2NDIsIDAuMTkyMjY0LCAwLjI2NTY3NywgMC4zMTgxMDUsIDAuNDAyMDEzLCAwLjQ3NTQxMSwgMC41ODAyODciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMTIxODExLCAwLjA4MjE4MTEsIDAuMTUyMTgxLCAwLjIwMjE4MSwgMC4yODIxODEsIDAuMzUyMTgxLCAwLjQ1MjE4MSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDMzNDcyLCAwLjE3Nzc5NywgMC4zMjU4ODIsIDAuNDMxMDY0LCAwLjYwMjMwOSwgMC43NDk4MDMsIDAuOTY0NzE5IiwgXAotICAgICAgICAgICIwLjAzMzQ3MiwgMC4xNzc1NzIsIDAuMzI1ODY3LCAwLjQzMTQ5MSwgMC42MDI0MTksIDAuNzUwNDcsIDAuOTY0ODEyIiwgXAotICAgICAgICAgICIwLjAzMzUwNSwgMC4xNzc1ODEsIDAuMzI1ODM4LCAwLjQzMTA0NiwgMC42MDA4NjgsIDAuNzQ5NTQ1LCAwLjk2NDYwNCIsIFwKLSAgICAgICAgICAiMC4wMzM0NzgsIDAuMTc3NjM4LCAwLjMyNTg5NywgMC40MzEyMTIsIDAuNjAyNDM1LCAwLjc1MTMzMSwgMC45NjI4MzkiLCBcCi0gICAgICAgICAgIjAuMDMzNTQxLCAwLjE3NzU0MSwgMC4zMjU0MDcsIDAuNDMxNjIzLCAwLjYwMjA4NCwgMC43NTEzMjcsIDAuOTY0MjciLCBcCi0gICAgICAgICAgIjAuMDMzNjg4LCAwLjE3NzU1MywgMC4zMjUzNTUsIDAuNDMxNTYyLCAwLjYwMDk2NiwgMC43NTA3ODgsIDAuOTY0MDk4IiwgXAotICAgICAgICAgICIwLjAzMzgyOCwgMC4xNzc0ODQsIDAuMzI1NDIxLCAwLjQzMTI0NSwgMC42MDExODIsIDAuNzUwMzc3LCAwLjk2MzI3NiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJPRSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogdGhyZWVfc3RhdGVfZGlzYWJsZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAzNTIzLCAwLjA0NDgyMiwgMC4wNTU1MzQsIDAuMDY0MjkzLCAwLjA3MTU0NSwgMC4wODEzMTcsIDAuMDg4Njg4Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oc2NhbGFyKSB7Ci0gICAgICAgIHZhbHVlcygiMCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDIzNDkxLCAwLjAzMzQ2LCAwLjA0NTk0NywgMC4wNTYxNzcsIDAuMDY0ODk3LCAwLjA3NjczNywgMC4wODU1ODMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihzY2FsYXIpIHsKLSAgICAgICAgdmFsdWVzKCIwIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMTIxODE3LCAwLjA4MjE4MTcsIDAuMTUyMTgyLCAwLjIwMjE4MiwgMC4yODIxODIsIDAuMzUyMTgyLCAwLjQ1MjE4MiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0NjEyLCAwLjAwNDY4NCwgMC4wMDQ2OSwgMC4wMDQ2OTIsIDAuMDA0NjkzLCAwLjAwNDY5NCwgMC4wMDQ2OTQiLCBcCi0gICAgICAgICAgIjAuMDA0NDg2LCAwLjAwNDU4NywgMC4wMDQ1OTUsIDAuMDA0NiwgMC4wMDQ2MDIsIDAuMDA0NjAzLCAwLjAwNDYwNCIsIFwKLSAgICAgICAgICAiMC4wMDQ0MTIsIDAuMDA0NTM5LCAwLjAwNDU1NiwgMC4wMDQ1NjEsIDAuMDA0NTY2LCAwLjAwNDU3MSwgMC4wMDQ1NjciLCBcCi0gICAgICAgICAgIjAuMDA0MzgxLCAwLjAwNDUyNSwgMC4wMDQ1NDUsIDAuMDA0NTQ4LCAwLjAwNDU1NiwgMC4wMDQ1NjIsIDAuMDA0NTY1IiwgXAotICAgICAgICAgICIwLjAwNDM3MywgMC4wMDQ1MjQsIDAuMDA0NTUzLCAwLjAwNDU1NiwgMC4wMDQ1NjUsIDAuMDA0NTY5LCAwLjAwNDU3IiwgXAotICAgICAgICAgICIwLjAwNDM5MiwgMC4wMDQ1NDgsIDAuMDA0NTc1LCAwLjAwNDU5MSwgMC4wMDQ1OTksIDAuMDA0NjA3LCAwLjAwNDYwOCIsIFwKLSAgICAgICAgICAiMC4wMDQ0MjEsIDAuMDA0NTgxLCAwLjAwNDYxMiwgMC4wMDQ2MjUsIDAuMDA0NjMyLCAwLjAwNDY0MywgMC4wMDQ2NDYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxMjE4MTEsIDAuMDgyMTgxMSwgMC4xNTIxODEsIDAuMjAyMTgxLCAwLjI4MjE4MSwgMC4zNTIxODEsIDAuNDUyMTgxIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDg1OTMsIDAuMDA4NzY1LCAwLjAwODc4NCwgMC4wMDg3ODksIDAuMDA4Nzk0LCAwLjAwODc5NiwgMC4wMDg3OTkiLCBcCi0gICAgICAgICAgIjAuMDA4NDk1LCAwLjAwODY5LCAwLjAwODcxNCwgMC4wMDg3MjIsIDAuMDA4NzI4LCAwLjAwODczMiwgMC4wMDg3MzQiLCBcCi0gICAgICAgICAgIjAuMDA4NDMxLCAwLjAwODY0OSwgMC4wMDg2ODIsIDAuMDA4NjkyLCAwLjAwODcwMiwgMC4wMDg3MDcsIDAuMDA4NzExIiwgXAotICAgICAgICAgICIwLjAwODQzLCAwLjAwODYzMiwgMC4wMDg2NzEsIDAuMDA4NjgzLCAwLjAwODY5NSwgMC4wMDg3LCAwLjAwODcwNSIsIFwKLSAgICAgICAgICAiMC4wMDg0NSwgMC4wMDg2MzEsIDAuMDA4NjY5LCAwLjAwODY4MywgMC4wMDg2OTYsIDAuMDA4NzAyLCAwLjAwODcwOCIsIFwKLSAgICAgICAgICAiMC4wMDg1MDUsIDAuMDA4NjQ4LCAwLjAwODY5MywgMC4wMDg3MDgsIDAuMDA4NzIyLCAwLjAwODczLCAwLjAwODczNyIsIFwKLSAgICAgICAgICAiMC4wMDg1OTksIDAuMDA4NjgzLCAwLjAwODcyNSwgMC4wMDg3NDEsIDAuMDA4NzU1LCAwLjAwODc2MywgMC4wMDg3NyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIk9FIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxMjE4MTcsIDAuMDgyMTgxNywgMC4xNTIxODIsIDAuMjAyMTgyLCAwLjI4MjE4MiwgMC4zNTIxODIsIDAuNDUyMTgyIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQzNCwgMC4wMDQzMzMsIDAuMDA0MzI2LCAwLjAwNDMwNywgMC4wMDQzMDMsIDAuMDA0MjY3LCAwLjAwNDI1NCIsIFwKLSAgICAgICAgICAiMC4wMDQyNTQsIDAuMDA0MjUsIDAuMDA0MjE5LCAwLjAwNDIzMiwgMC4wMDQyMTUsIDAuMDA0MTg3LCAwLjAwNDE2NiIsIFwKLSAgICAgICAgICAiMC4wMDQyMzUsIDAuMDA0MjMsIDAuMDA0MjAzLCAwLjAwNDIxOCwgMC4wMDQxOTcsIDAuMDA0MTg0LCAwLjAwNDE2NSIsIFwKLSAgICAgICAgICAiMC4wMDQyNSwgMC4wMDQyMzYsIDAuMDA0MjM3LCAwLjAwNDIyNCwgMC4wMDQyMSwgMC4wMDQxOTcsIDAuMDA0MTY5IiwgXAotICAgICAgICAgICIwLjAwNDI3LCAwLjAwNDI1OCwgMC4wMDQyMzksIDAuMDA0MjQzLCAwLjAwNDIzLCAwLjAwNDIxNiwgMC4wMDQyMDEiLCBcCi0gICAgICAgICAgIjAuMDA0MzI0LCAwLjAwNDMxNSwgMC4wMDQyOTcsIDAuMDA0Mjk2LCAwLjAwNDI3OSwgMC4wMDQyNjcsIDAuMDA0MjQ2IiwgXAotICAgICAgICAgICIwLjAwNDM3MSwgMC4wMDQzNTMsIDAuMDA0MzMzLCAwLjAwNDMzOSwgMC4wMDQzMjYsIDAuMDA0Mjk3LCAwLjAwNDI5NCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEyMTgxMSwgMC4wODIxODExLCAwLjE1MjE4MSwgMC4yMDIxODEsIDAuMjgyMTgxLCAwLjM1MjE4MSwgMC40NTIxODEiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDUzMywgMC4wMDQ1MzMsIDAuMDA0NTMzLCAwLjAwNDUzMywgMC4wMDQ1MzMsIDAuMDA0NTMzLCAwLjAwNDUzMiIsIFwKLSAgICAgICAgICAiMC4wMDQ0OTEsIDAuMDA0NDkxLCAwLjAwNDQ5MSwgMC4wMDQ0OTEsIDAuMDA0NDkxLCAwLjAwNDQ5MSwgMC4wMDQ0OTEiLCBcCi0gICAgICAgICAgIjAuMDA0NDgyLCAwLjAwNDQ4MiwgMC4wMDQ0ODIsIDAuMDA0NDgyLCAwLjAwNDQ4MiwgMC4wMDQ0ODIsIDAuMDA0NDgyIiwgXAotICAgICAgICAgICIwLjAwNDQ4NywgMC4wMDQ0ODgsIDAuMDA0NDg4LCAwLjAwNDQ4OSwgMC4wMDQ0ODksIDAuMDA0NDg4LCAwLjAwNDQ4OSIsIFwKLSAgICAgICAgICAiMC4wMDQ1MDIsIDAuMDA0NTAyLCAwLjAwNDUwMiwgMC4wMDQ1MDEsIDAuMDA0NTAyLCAwLjAwNDUwMSwgMC4wMDQ1MDIiLCBcCi0gICAgICAgICAgIjAuMDA0NTI2LCAwLjAwNDUyNCwgMC4wMDQ1MjQsIDAuMDA0NTI0LCAwLjAwNDUyNCwgMC4wMDQ1MjQsIDAuMDA0NTI0IiwgXAotICAgICAgICAgICIwLjAwNDU1MiwgMC4wMDQ1NTIsIDAuMDA0NTUyLCAwLjAwNDU0MiwgMC4wMDQ1NTIsIDAuMDA0NTUzLCAwLjAwNDU1MiIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IFRMQVROQ0FYMTYgKgotICogLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoVExBVE5DQVgxNikgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAxLjE0NzI4OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIGNsb2NrX2dhdGluZ19pbnRlZ3JhdGVkX2NlbGwgOiAibGF0Y2hfcG9zZWRnZSI7Ci0gIHN0YXRldGFibGUoIiBDSyAgRSAiLCAiIEVJTlQgIikgewotICAgICB0YWJsZSA6ICIgIEwgIEwgOiAtIDogTCAsIFwKLSAgICAgICAgICAgICAgICBMICBIIDogLSA6IEggLCBcCi0gICAgICAgICAgICAgICAgSCAgLSA6IC0gOiBOICI7Ci0gIH0KLSAgcGluKEVJTlQpIHsKLSAgICBkaXJlY3Rpb24gOiBpbnRlcm5hbDsKLSAgICBpbnRlcm5hbF9ub2RlIDogIkVJTlQiOwotICB9Ci0gIHBpbihDSykgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNTgwMzMzOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDU4MDE0MTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA1ODAzMzM7Ci0gICAgY2xvY2tfZ2F0ZV9jbG9ja19waW4gOiB0cnVlOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNDczMywgMC4wMDQ3MDksIDAuMDA0NjkzLCAwLjAwNDY5MywgMC4wMDQ3LCAwLjAwNDcyLCAwLjAwNDc0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA2MzU2LCAwLjAwNjMzNiwgMC4wMDYzMjgsIDAuMDA2MzMxLCAwLjAwNjMzNSwgMC4wMDYzNjQsIDAuMDA2Mzc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRSI7Ci0gICAgICBzZGZfY29uZCA6ICJFID09IDEnYjAiOwotICAgICAgZmFsbF9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMTUyNzY0LCAwLjE2MjYwNiwgMC4xNzQ5NjIsIDAuMTg2ODM3LCAwLjE5NzUzNiwgMC4yMTIyMTQsIDAuMjIzNjEzIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihFKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA1NzcxNzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA1NzU2Mzk7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNTc3MTc7Ci0gICAgY2xvY2tfZ2F0ZV9lbmFibGVfcGluIDogdHJ1ZTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDU0NTEsIDAuMDA1NDI5LCAwLjAwNTQxNiwgMC4wMDU0MDYsIDAuMDA1NDA2LCAwLjAwNTQxNiwgMC4wMDU0MTYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDUyNDUsIDAuMDA1MjMyLCAwLjAwNTIyMiwgMC4wMDUyMTgsIDAuMDA1MjE4LCAwLjAwNTIxNywgMC4wMDUyMTYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMzEyNSwgLTAuMDI2MjUsIC0wLjAxMzc1LCAtMC4wMDc1LCAtMC4wMDEyNSwgMC4wMDI1LCAwLjAxMTI1IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDAyNSwgMCIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDE1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDYxMjUsIC0wLjA1NjI1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAyNzUsIC0wLjAxODc1IiwgXAotICAgICAgICAgICItMC4wNzM3NSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDMzNzUsIC0wLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDksIC0wLjA3ODc1LCAtMC4wNzI1LCAtMC4wNiwgLTAuMDUzNzUsIC0wLjA1LCAtMC4wNDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDk4NzUsIC0wLjA4NzUsIC0wLjA4MTI1LCAtMC4wNzUsIC0wLjA2ODc1LCAtMC4wNTg3NSwgLTAuMDUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjI1LCAwLjAxNzUsIDAuMDMsIDAuMDQyNSwgMC4wNTUsIDAuMDcxMjUsIDAuMDgiLCBcCi0gICAgICAgICAgIi0wLjAwNSwgMC4wMDYyNSwgMC4wMTg3NSwgMC4wMzEyNSwgMC4wNDM3NSwgMC4wNiwgMC4wNjg3NSIsIFwKLSAgICAgICAgICAiLTAuMDExMjUsIDAsIDAuMDEyNSwgMC4wMjUsIDAuMDMxMjUsIDAuMDQ3NSwgMC4wNjI1IiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDEyNSwgMCwgMC4wMTI1LCAwLjAyNSwgMC4wNDEyNSwgMC4wNSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAxODc1LCAtMC4wMDYyNSwgMC4wMDYyNSwgMC4wMTg3NSwgMC4wMjg3NSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDQsIC0wLjAzNSwgLTAuMDIyNSwgLTAuMDEsIDAuMDAyNSwgMC4wMTg3NSwgMC4wMzM3NSIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNDM3NSwgLTAuMDMxMjUsIC0wLjAxODc1LCAtMC4wMDYyNSwgMC4wMSwgMC4wMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM3NSwgMC4wMzI1LCAwLjAyLCAwLjAxMzc1LCAwLjAwNzUsIDAuMDAzNzUsIC0wLjAwNSIsIFwKLSAgICAgICAgICAiMC4wNDg3NSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMTg3NSwgMC4wMDg3NSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiMC4wNjEyNSwgMC4wNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyMTI1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMDY3NSwgMC4wNjI1LCAwLjA1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDMzNzUsIDAuMDI1IiwgXAotICAgICAgICAgICIwLjA4LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDUsIDAuMDQsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMDk2MjUsIDAuMDg1LCAwLjA3ODc1LCAwLjA2NjI1LCAwLjA2LCAwLjA1NjI1LCAwLjA0NzUiLCBcCi0gICAgICAgICAgIjAuMTA1LCAwLjA5Mzc1LCAwLjA4NzUsIDAuMDgxMjUsIDAuMDc1LCAwLjA2NSwgMC4wNTYyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLCAtMC4wMTEyNSwgLTAuMDIzNzUsIC0wLjAzNjI1LCAtMC4wNDg3NSwgLTAuMDY1LCAtMC4wNzM3NSIsIFwKLSAgICAgICAgICAiMC4wMTEyNSwgMCwgLTAuMDEyNSwgLTAuMDI1LCAtMC4wMzc1LCAtMC4wNTM3NSwgLTAuMDYyNSIsIFwKLSAgICAgICAgICAiMC4wMTc1LCAwLjAwNjI1LCAtMC4wMDYyNSwgLTAuMDE4NzUsIC0wLjAyNSwgLTAuMDQxMjUsIC0wLjA1NjI1IiwgXAotICAgICAgICAgICIwLjAzLCAwLjAxODc1LCAwLjAwNjI1LCAtMC4wMDYyNSwgLTAuMDE4NzUsIC0wLjAzNSwgLTAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMDM2MjUsIDAuMDI1LCAwLjAxMjUsIDAsIC0wLjAxMjUsIC0wLjAyMjUsIC0wLjAzNzUiLCBcCi0gICAgICAgICAgIjAuMDQ2MjUsIDAuMDQxMjUsIDAuMDI4NzUsIDAuMDE2MjUsIDAuMDAzNzUsIC0wLjAxMjUsIC0wLjAyNzUiLCBcCi0gICAgICAgICAgIjAuMDYxMjUsIDAuMDUsIDAuMDM3NSwgMC4wMjUsIDAuMDEyNSwgLTAuMDAzNzUsIC0wLjAxODc1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihFQ0spICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogNC4yNDk2MzsKLSAgICBjbG9ja19nYXRlX291dF9waW4gOiB0cnVlOwotICAgIHN0YXRlX2Z1bmN0aW9uIDogIihDSyBFSU5UKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEzNDg4NSwgMC4xMzc4NzQsIDAuMTUxMDM1LCAwLjE2MDYxNiwgMC4xNzIzNTgsIDAuMTk0NDQ3LCAwLjIwNzkwOCIsIFwKLSAgICAgICAgICAiMC4xNDUwNywgMC4xNDgwNzQsIDAuMTYxMTk2LCAwLjE3MDg3NSwgMC4xODI1MywgMC4yMDQ2MywgMC4yMTgwOTEiLCBcCi0gICAgICAgICAgIjAuMTU3ODg2LCAwLjE2MDgyNiwgMC4xNzQwMiwgMC4xODM1NTYsIDAuMTk1MjkyLCAwLjIxNzM5NCwgMC4yMzA4NTciLCBcCi0gICAgICAgICAgIjAuMTcwNDU5LCAwLjE3MzQxNiwgMC4xODY1OCwgMC4xOTYxNjYsIDAuMjA3OTA2LCAwLjIyOTk3NywgMC4yNDM0NDUiLCBcCi0gICAgICAgICAgIjAuMTgxOTU5LCAwLjE4NDg4MywgMC4xOTgwNzksIDAuMjA3NjE0LCAwLjIxOTM1LCAwLjI0MTQ1MSwgMC4yNTQ5MTQiLCBcCi0gICAgICAgICAgIjAuMTk3NjQ3LCAwLjIwMDYzNSwgMC4yMTM3ODQsIDAuMjIzMzgyLCAwLjIzNTEwOSwgMC4yNTcyMTMsIDAuMjcwNjc1IiwgXAotICAgICAgICAgICIwLjIxMDU4NiwgMC4yMTM1NzMsIDAuMjI2NzM0LCAwLjIzNjI1NywgMC4yNDgwMDcsIDAuMjcwMTA5LCAwLjI4MzU5Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyMzIzNywgMC4wMjY3NDcsIDAuMDQ0ODI2LCAwLjA2MDM3LCAwLjA4MTE5MSwgMC4xMjM0MTYsIDAuMTUwMTczIiwgXAotICAgICAgICAgICIwLjAyMzIzNywgMC4wMjY2NjcsIDAuMDQ0ODQ5LCAwLjA2MDM1NSwgMC4wODExNDYsIDAuMTIzNDE4LCAwLjE1MDE3NiIsIFwKLSAgICAgICAgICAiMC4wMjMwNjEsIDAuMDI2NjgyLCAwLjA0NDg2NywgMC4wNjAzNzcsIDAuMDgxMTQ5LCAwLjEyMzQyMywgMC4xNTAwODYiLCBcCi0gICAgICAgICAgIjAuMDIzMDg5LCAwLjAyNjY4OSwgMC4wNDQ4NCwgMC4wNjAzNzYsIDAuMDgxMTc3LCAwLjEyMzM2NCwgMC4xNTAxODgiLCBcCi0gICAgICAgICAgIjAuMDIzMDUzLCAwLjAyNjY4NSwgMC4wNDQ4NTcsIDAuMDYwMzcsIDAuMDgxMTQzLCAwLjEyMzQxOSwgMC4xNTAxMzgiLCBcCi0gICAgICAgICAgIjAuMDIzMjU5LCAwLjAyNjcyOSwgMC4wNDQ4NTUsIDAuMDYwMzM5LCAwLjA4MTE3MiwgMC4xMjM0MjMsIDAuMTUwMTgxIiwgXAotICAgICAgICAgICIwLjAyMzA1NCwgMC4wMjY1NjEsIDAuMDQ0ODk2LCAwLjA2MDM0LCAwLjA4MTE1LCAwLjEyMzQyLCAwLjE1MDE1OCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMjE1NTYsIDAuMTI0MDczLCAwLjEzNTU5MywgMC4xNDQ1LCAwLjE1NTg4NywgMC4xNzgwMjYsIDAuMTkxNjYyIiwgXAotICAgICAgICAgICIwLjEzMTM5MSwgMC4xMzM4NiwgMC4xNDU0MzEsIDAuMTU0MzQ4LCAwLjE2NTcyOCwgMC4xODc4NTksIDAuMjAxNDkyIiwgXAotICAgICAgICAgICIwLjE0MzcxNywgMC4xNDYyMDUsIDAuMTU3NzIyLCAwLjE2NjY1NiwgMC4xNzgwNDEsIDAuMjAwMTM0LCAwLjIxMzc2OSIsIFwKLSAgICAgICAgICAiMC4xNTU2MTIsIDAuMTU4MDk0LCAwLjE2OTYwMSwgMC4xNzg1MzcsIDAuMTg5OTI0LCAwLjIxMjAxMSwgMC4yMjU2NDgiLCBcCi0gICAgICAgICAgIjAuMTY2Mjc1LCAwLjE2ODc2NSwgMC4xODAzMzMsIDAuMTg5Mjc4LCAwLjIwMDY0OCwgMC4yMjI3NzcsIDAuMjM2NDE1IiwgXAotICAgICAgICAgICIwLjE4MTAxMSwgMC4xODM1MSwgMC4xOTUwMTQsIDAuMjAzOTQ3LCAwLjIxNTMzMiwgMC4yMzc0OCwgMC4yNTEwNjYiLCBcCi0gICAgICAgICAgIjAuMTkyNDUsIDAuMTk0OTE1LCAwLjIwNjQ3LCAwLjIxNTM2MiwgMC4yMjY3NDUsIDAuMjQ4ODYyLCAwLjI2MjQ5MyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTgyMjQsIDAuMDIxNDU5LCAwLjAzOTIxMiwgMC4wNTQ3NjQsIDAuMDc1ODExLCAwLjExODksIDAuMTQ2MTYiLCBcCi0gICAgICAgICAgIjAuMDE4Mjg4LCAwLjAyMTQ3LCAwLjAzOTIxNiwgMC4wNTQ3NSwgMC4wNzU4LCAwLjExODgyNiwgMC4xNDYxNDgiLCBcCi0gICAgICAgICAgIjAuMDE4MTc0LCAwLjAyMTQxMiwgMC4wMzkxNzksIDAuMDU0NzYzLCAwLjA3NTgxOSwgMC4xMTg5MTEsIDAuMTQ2IiwgXAotICAgICAgICAgICIwLjAxODE3MSwgMC4wMjE0MjUsIDAuMDM5MTUzLCAwLjA1NDc2LCAwLjA3NTgxOCwgMC4xMTg5MDksIDAuMTQ2MjI0IiwgXAotICAgICAgICAgICIwLjAxODI5NCwgMC4wMjE0ODcsIDAuMDM5MTcsIDAuMDU0NzY4LCAwLjA3NTgsIDAuMTE4ODI4LCAwLjE0NjE1MSIsIFwKLSAgICAgICAgICAiMC4wMTgxODIsIDAuMDIxMzkyLCAwLjAzOTE4MiwgMC4wNTQ3NjksIDAuMDc1ODE4LCAwLjExODkwNywgMC4xNDYxNTciLCBcCi0gICAgICAgICAgIjAuMDE4MzQyLCAwLjAyMTUxNiwgMC4wMzkxNzIsIDAuMDU0NzY0LCAwLjA3NTgzMSwgMC4xMTg4OTUsIDAuMTQ2MTY0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyMjA5MywgMC4wMjIxMzUsIDAuMDIyMzkzLCAwLjAyMjU1OSwgMC4wMjI3MDcsIDAuMDIyODY4LCAwLjAyMjkyMyIsIFwKLSAgICAgICAgICAiMC4wMjIwNjYsIDAuMDIyMTA5LCAwLjAyMjM2NywgMC4wMjI1MzMsIDAuMDIyNjgsIDAuMDIyODQyLCAwLjAyMjkwMyIsIFwKLSAgICAgICAgICAiMC4wMjIwNjUsIDAuMDIyMDk0LCAwLjAyMjM1NiwgMC4wMjI1MjEsIDAuMDIyNjY4LCAwLjAyMjgzLCAwLjAyMjg4NiIsIFwKLSAgICAgICAgICAiMC4wMjIwNzIsIDAuMDIyMDkxLCAwLjAyMjM1NywgMC4wMjI1MjIsIDAuMDIyNjY5LCAwLjAyMjgyNiwgMC4wMjI4ODciLCBcCi0gICAgICAgICAgIjAuMDIyMDY0LCAwLjAyMjA5MywgMC4wMjIzNTYsIDAuMDIyNTIxLCAwLjAyMjY2OSwgMC4wMjI4MzIsIDAuMDIyODg4IiwgXAotICAgICAgICAgICIwLjAyMjA2MSwgMC4wMjIxMDcsIDAuMDIyMzY1LCAwLjAyMjUyOCwgMC4wMjI2ODYsIDAuMDIyODQsIDAuMDIyODk1IiwgXAotICAgICAgICAgICIwLjAyMjA0MSwgMC4wMjIwOSwgMC4wMjIzNiwgMC4wMjI1MywgMC4wMjI2NzksIDAuMDIyODUsIDAuMDIyOTEzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDI4NjUxLCAwLjAyODc0OCwgMC4wMjkxNiwgMC4wMjkzOSwgMC4wMjk1NzYsIDAuMDI5NzcsIDAuMDI5ODM2IiwgXAotICAgICAgICAgICIwLjAyODYxNSwgMC4wMjg3MTQsIDAuMDI5MTQxLCAwLjAyOTM3MSwgMC4wMjk1NTYsIDAuMDI5NzUxLCAwLjAyOTgxNiIsIFwKLSAgICAgICAgICAiMC4wMjg2MjUsIDAuMDI4NzIxLCAwLjAyOTEyOSwgMC4wMjkzNTcsIDAuMDI5NTQ1LCAwLjAyOTczOSwgMC4wMjk4MDUiLCBcCi0gICAgICAgICAgIjAuMDI4NjI5LCAwLjAyODcyMywgMC4wMjkxMywgMC4wMjkzNTksIDAuMDI5NTQ3LCAwLjAyOTc0MiwgMC4wMjk4MDciLCBcCi0gICAgICAgICAgIjAuMDI4NTg2LCAwLjAyODY4OSwgMC4wMjkxMjUsIDAuMDI5MzU0LCAwLjAyOTU0MywgMC4wMjk3MzcsIDAuMDI5ODA0IiwgXAotICAgICAgICAgICIwLjAyODU5NywgMC4wMjg2OTQsIDAuMDI5MDk4LCAwLjAyOTMyNiwgMC4wMjk1MTQsIDAuMDI5NzE0LCAwLjAyOTc4IiwgXAotICAgICAgICAgICIwLjAyODU5MiwgMC4wMjg3LCAwLjAyOTE1LCAwLjAyOTM4LCAwLjAyOTU2OSwgMC4wMjk3NjYsIDAuMDI5ODM0Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBUTEFUTlNSWDIgKgotICogLS0tLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChUTEFUTlNSWDIpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC40NjIyNjU7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgbGF0Y2ggKFFJTlQsTjUpIHsKLSAgICBkYXRhX2luIDogIkQiOwotICAgIGVuYWJsZSA6ICIoKCFHTikgUk4pIjsKLSAgICBwcmVzZXQgOiAiKCFTTikiOwotICB9Ci0gIHBpbihEKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2MTAwNTM7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjA4NjI7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjEwMDUzOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDIxNiwgMC4wMDAyMTksIDAuMDAwMjIsIDAuMDAwMjIxLCAwLjAwMDIyMSwgMC4wMDAyMjEsIDAuMDAwMjIxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjMsIDAuMDAwMjI3LCAwLjAwMDIyNywgMC4wMDAyMjcsIDAuMDAwMjI3LCAwLjAwMDIyNywgMC4wMDAyMjciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiR04iOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiUk4mU04iOwotICAgICAgc2RmX2NvbmQgOiAiUk5fRVFfMV9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAsIDAuMDExMjUsIDAuMDIzNzUsIDAuMDMsIDAuMDQyNSwgMC4wNTI1LCAwLjA2MTI1IiwgXAotICAgICAgICAgICItMC4wMTEyNSwgMCwgMC4wMTI1LCAwLjAyNSwgMC4wMzEyNSwgMC4wNDEyNSwgMC4wNSIsIFwKLSAgICAgICAgICAiLTAuMDE3NSwgLTAuMDA2MjUsIDAsIDAuMDEyNSwgMC4wMTg3NSwgMC4wMzUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAsIDAuMDEyNSwgMC4wMjI1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLCAwLjAxLCAwLjAxODc1IiwgXAotICAgICAgICAgICItMC4wNTI1LCAtMC4wNDc1LCAtMC4wMzUsIC0wLjAyMjUsIC0wLjAxNjI1LCAwLCAwLjAwODc1IiwgXAotICAgICAgICAgICItMC4wNjc1LCAtMC4wNTYyNSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAyNSwgLTAuMDE1LCAtMC4wMDYyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAyNSwgLTAuMDEzNzUsIC0wLjAwMTI1LCAwLjAwNSwgMC4wMTc1LCAwLjAyNzUsIDAuMDM2MjUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMjUsIC0wLjAxMjUsIDAsIDAuMDA2MjUsIDAuMDE2MjUsIDAuMDI1IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIDAsIDAuMDEsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wNDM3NSwgLTAuMDMxMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDI1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wNjEyNSwgLTAuMDUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgLTAuMDA4NzUsIDAiLCBcCi0gICAgICAgICAgIi0wLjA3MTI1LCAtMC4wNiwgLTAuMDUzNzUsIC0wLjA0MTI1LCAtMC4wMzUsIC0wLjAyNSwgLTAuMDE2MjUiLCBcCi0gICAgICAgICAgIi0wLjA4LCAtMC4wNzUsIC0wLjA2MjUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDMzNzUsIC0wLjAyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJHTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiUk4mU04iOwotICAgICAgc2RmX2NvbmQgOiAiUk5fRVFfMV9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxODc1LCAwLjAwNzUsIC0wLjAwNSwgLTAuMDExMjUsIC0wLjAyMzc1LCAtMC4wMzM3NSwgLTAuMDQyNSIsIFwKLSAgICAgICAgICAiMC4wMywgMC4wMTg3NSwgMC4wMDYyNSwgLTAuMDA2MjUsIC0wLjAxMjUsIC0wLjAyMjUsIC0wLjAzMTI1IiwgXAotICAgICAgICAgICIwLjAzNjI1LCAwLjAyNSwgMC4wMTg3NSwgMC4wMDYyNSwgMCwgLTAuMDE2MjUsIC0wLjAyNSIsIFwKLSAgICAgICAgICAiMC4wNDg3NSwgMC4wMzc1LCAwLjAyNSwgMC4wMTg3NSwgMC4wMDYyNSwgLTAuMDAzNzUsIC0wLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMDYxMjUsIDAuMDUsIDAuMDM3NSwgMC4wMjUsIDAuMDE4NzUsIDAuMDAyNSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMDcxMjUsIDAuMDYsIDAuMDQ3NSwgMC4wNDEyNSwgMC4wMjg3NSwgMC4wMTg3NSwgMC4wMSIsIFwKLSAgICAgICAgICAiMC4wODYyNSwgMC4wNzUsIDAuMDYyNSwgMC4wNSwgMC4wNDM3NSwgMC4wMzM3NSwgMC4wMjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDM3NSwgMC4wMzI1LCAwLjAyNjI1LCAwLjAxMzc1LCAwLjAwNzUsIC0wLjAwODc1LCAtMC4wMTEyNSIsIFwKLSAgICAgICAgICAiMC4wNTUsIDAuMDQzNzUsIDAuMDMxMjUsIDAuMDE4NzUsIDAuMDEyNSwgMC4wMDI1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiMC4wNjEyNSwgMC4wNSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMDg3NSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiMC4wNzM3NSwgMC4wNjI1LCAwLjA1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDIxMjUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4wOCwgMC4wNjg3NSwgMC4wNTYyNSwgMC4wNSwgMC4wMzc1LCAwLjAyNzUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMDksIDAuMDg1LCAwLjA3MjUsIDAuMDYsIDAuMDUzNzUsIDAuMDQzNzUsIDAuMDM1IiwgXAotICAgICAgICAgICIwLjA5ODc1LCAwLjA5Mzc1LCAwLjA4MTI1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDUyNSwgMC4wNDM3NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oR04pICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDU5NzM2NjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA1OTczNjM7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNTk3MzY2OwotICAgIGNsb2NrIDogdHJ1ZTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAzMTYsIDAuMDAwMjkxLCAwLjAwMDI4NiwgMC4wMDAyOTIsIDAuMDAwMzAzLCAwLjAwMDMzLCAwLjAwMDM1NCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNDM3MywgMC4wMDQzNDYsIDAuMDA0MzM1LCAwLjAwNDMzOCwgMC4wMDQzNDgsIDAuMDA0Mzc4LCAwLjAwNDM5MSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJHTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQmU04iOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4yMDcwNTcsIDAuMjE2Nzk5LCAwLjIyNzY5MywgMC4yMzY5OTMsIDAuMjQ0MzA1LCAwLjI1NDYxNywgMC4yNjIzMDgiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFEpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC41MDg3NTI7Ci0gICAgZnVuY3Rpb24gOiAiUUlOVCI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTIyOTU4LCAwLjIyNjczMywgMC4zMDk4OTYsIDAuNDE0MDAxLCAwLjUxNzU3MiwgMC42MjE4MDMsIDAuNzI1MjU5IiwgXAotICAgICAgICAgICIwLjEzMTgwOSwgMC4yMzU2NDMsIDAuMzE4NzExLCAwLjQyMjUwOCwgMC41MjYzOTcsIDAuNjMwNjI1LCAwLjczNDA5NCIsIFwKLSAgICAgICAgICAiMC4xNDI1NjYsIDAuMjQ2NDA4LCAwLjMyOTU1NCwgMC40MzM2OCwgMC41MzcyNDEsIDAuNjQxNDYyLCAwLjc0NTMyNCIsIFwKLSAgICAgICAgICAiMC4xNTI5MTQsIDAuMjU2Njk1LCAwLjMzOTg0LCAwLjQ0Mzk2NywgMC41NDc1MjMsIDAuNjUxNzQ4LCAwLjc1NTA5IiwgXAotICAgICAgICAgICIwLjE2Mjc3NSwgMC4yNjY2MDUsIDAuMzQ5NzQyLCAwLjQ1Mzg2OCwgMC41NTc0NDksIDAuNjYxNjMsIDAuNzY1NTA2IiwgXAotICAgICAgICAgICIwLjE3NzE4NCwgMC4yODA5NTIsIDAuMzY0MzYyLCAwLjQ2ODEzNCwgMC41NzE4MDUsIDAuNjc1OTk5LCAwLjc3OTg0NCIsIFwKLSAgICAgICAgICAiMC4xODg2MzIsIDAuMjkyMzQzLCAwLjM3NTUyNiwgMC40Nzk2NTksIDAuNTgzNTM5LCAwLjY4NzA3MiwgMC43OTEyMyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDkwNTIsIDAuMjYzNDY0LCAwLjQzNTY5MiwgMC42NTIzMjYsIDAuODY1MzM2LCAxLjA4MzU2LCAxLjI5NzY5IiwgXAotICAgICAgICAgICIwLjA0OTA2NiwgMC4yNjM0MTgsIDAuNDM1NjcsIDAuNjUxMDgzLCAwLjg2NjMyNywgMS4wODM0NywgMS4yOTYxOCIsIFwKLSAgICAgICAgICAiMC4wNDkwNCwgMC4yNjM5OTksIDAuNDM2MTEyLCAwLjY1MjYwNCwgMC44NjY3NDUsIDEuMDgzOTUsIDEuMjk5NTQiLCBcCi0gICAgICAgICAgIjAuMDQ5MTM2LCAwLjI2MzQ0NywgMC40MzU0ODUsIDAuNjUyMzE2LCAwLjg2NTM0OCwgMS4wODM1MiwgMS4yOTY5NSIsIFwKLSAgICAgICAgICAiMC4wNDkyMTIsIDAuMjY0NDUzLCAwLjQzNTUzNywgMC42NTI2MDcsIDAuODY2ODgsIDEuMDgzODcsIDEuMjk5NTQiLCBcCi0gICAgICAgICAgIjAuMDQ5MjMxLCAwLjI2Mzc0NiwgMC40MzY4OTYsIDAuNjUxOTk1LCAwLjg2NjI4LCAxLjA4Mzc5LCAxLjI5OTQiLCBcCi0gICAgICAgICAgIjAuMDQ5MjE2LCAwLjI2Mzk0MywgMC40MzYwNzcsIDAuNjUyNTk1LCAwLjg2ODIzNywgMS4wODIzOCwgMS4yOTkzNSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNDc1NzgsIDAuMjUxODA5LCAwLjMzNTMyNSwgMC40Mzk4MjgsIDAuNTQ0MjMxLCAwLjY0ODY5NSwgMC43NTMwNTkiLCBcCi0gICAgICAgICAgIjAuMTU2MTY2LCAwLjI2MDM5MSwgMC4zNDM5MDEsIDAuNDQ4NDEsIDAuNTUyNzk0LCAwLjY1NzUyNCwgMC43NjE3OTUiLCBcCi0gICAgICAgICAgIjAuMTY1ODkzLCAwLjI3MDA2MSwgMC4zNTM1NywgMC40NTgwODEsIDAuNTYyNDA3LCAwLjY2NzE5NCwgMC43NzE0MzgiLCBcCi0gICAgICAgICAgIjAuMTc1MTMsIDAuMjc5MzU3LCAwLjM2Mjg2OCwgMC40NjczNzgsIDAuNTcxNzY4LCAwLjY3NjQ5MiwgMC43ODA3MzQiLCBcCi0gICAgICAgICAgIjAuMTgzODI0LCAwLjI4ODA0OCwgMC4zNzE1NTgsIDAuNDc2MDY4LCAwLjU4MDQ2NCwgMC42ODUxODIsIDAuNzg5NDIiLCBcCi0gICAgICAgICAgIjAuMTk2NDY2LCAwLjMwMDU5OCwgMC4zODQwOTUsIDAuNDg4NjExLCAwLjU5MzA1OCwgMC42OTc3MjgsIDAuODAxOTYxIiwgXAotICAgICAgICAgICIwLjIwNjAwMiwgMC4zMTAzNywgMC4zOTM4NDUsIDAuNDk4MzgzLCAwLjYwMjc5LCAwLjcwNzQ2NiwgMC44MTE2OTYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQ4NTc4LCAwLjI1ODM3LCAwLjQyNzc5NCwgMC42Mzg5NDIsIDAuODQ4MjU0LCAxLjA1ODk5LCAxLjI2OSIsIFwKLSAgICAgICAgICAiMC4wNDg2NDIsIDAuMjU4MzY1LCAwLjQyNzgxMSwgMC42Mzg5NjIsIDAuODQ3NTY1LCAxLjA2MTc1LCAxLjI3MTc0IiwgXAotICAgICAgICAgICIwLjA0ODUzNiwgMC4yNTg1MywgMC40Mjc3NzIsIDAuNjM4OTU3LCAwLjg0ODUzNCwgMS4wNjE3NCwgMS4yNjkwOCIsIFwKLSAgICAgICAgICAiMC4wNDg2MiwgMC4yNTg0MjQsIDAuNDI3ODMzLCAwLjYzODk2MiwgMC44NDc1MzEsIDEuMDYxNzQsIDEuMjY5ODgiLCBcCi0gICAgICAgICAgIjAuMDQ4NjIyLCAwLjI1ODQ1MSwgMC40Mjc4MTksIDAuNjM4OTYzLCAwLjg0NzY4MSwgMS4wNjE3NCwgMS4yNjkwNyIsIFwKLSAgICAgICAgICAiMC4wNDg1NzgsIDAuMjU4NDYsIDAuNDI3NTkxLCAwLjYzODk0MiwgMC44NDg3LCAxLjA2MTc0LCAxLjI3MDM3IiwgXAotICAgICAgICAgICIwLjA0ODUzOSwgMC4yNTg2MDUsIDAuNDI3NjczLCAwLjYzOTE1MiwgMC44NDg4MDksIDEuMDYxNjgsIDEuMjcxODIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiR04iOwotICAgICAgdGltaW5nX3NlbnNlIDogbm9uX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiBmYWxsaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE5NjkzNCwgMC4zMDA3MTYsIDAuMzgzODY5LCAwLjQ4ODAxOCwgMC41OTE4ODIsIDAuNjk1NzU0LCAwLjc5OTYwMSIsIFwKLSAgICAgICAgICAiMC4yMDY2NjYsIDAuMzEwMzkzLCAwLjM5MzU3MSwgMC40OTc2OTksIDAuNjAxMjc3LCAwLjcwNTQ0NywgMC44MDkyOTYiLCBcCi0gICAgICAgICAgIjAuMjE3NTU5LCAwLjMyMTM0OCwgMC40MDQ1MTksIDAuNTA4NjUyLCAwLjYxMjIyNSwgMC43MTYzOTcsIDAuODIwMjUzIiwgXAotICAgICAgICAgICIwLjIyNjkyOSwgMC4zMzA3MSwgMC40MTM4NTQsIDAuNTE3NzM3LCAwLjYyMTY3MywgMC43MjU3MjEsIDAuODI5NTkzIiwgXAotICAgICAgICAgICIwLjIzNDM5MywgMC4zMzgwOSwgMC40MjEzMDgsIDAuNTI1NDk3LCAwLjYyOTA3NywgMC43MzMxMzMsIDAuODM2NjciLCBcCi0gICAgICAgICAgIjAuMjQ0NTY4LCAwLjM0ODI4NCwgMC40MzE1ODEsIDAuNTM1NjAxLCAwLjYzOTA3OSwgMC43NDMzNDYsIDAuODQ3MTIzIiwgXAotICAgICAgICAgICIwLjI1MTk5NSwgMC4zNTU4MDQsIDAuNDM4OTA2LCAwLjU0MzA3OSwgMC42NDY2MjQsIDAuNzUwNTg4LCAwLjg1NDY1MiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDkyMDMsIDAuMjYzNzg2LCAwLjQzNjExNiwgMC42NTI2MiwgMC44NjgyNzQsIDEuMDgzODYsIDEuMjk5NDYiLCBcCi0gICAgICAgICAgIjAuMDQ5MTkzLCAwLjI2MzczNywgMC40MzU1ODUsIDAuNjUyNTk2LCAwLjg2NjU0NiwgMS4wODM4NiwgMS4yOTk0MiIsIFwKLSAgICAgICAgICAiMC4wNDkxNzgsIDAuMjYzODMsIDAuNDM2MDk0LCAwLjY1MjU5NiwgMC44NjYzNzEsIDEuMDgzODUsIDEuMjk5NDQiLCBcCi0gICAgICAgICAgIjAuMDQ5MTc3LCAwLjI2MzkxMywgMC40MzYxNTUsIDAuNjUxMjE3LCAwLjg2Nzc0MSwgMS4wODM4LCAxLjI5OTQ2IiwgXAotICAgICAgICAgICIwLjA0OTE1MywgMC4yNjM5NjQsIDAuNDM2MTk5LCAwLjY1MjY3LCAwLjg2Njc2NywgMS4wODM4NywgMS4yOTc4MyIsIFwKLSAgICAgICAgICAiMC4wNDkxOTIsIDAuMjYzNjQ1LCAwLjQzNjgxMSwgMC42NTI1OTUsIDAuODY2NzQ4LCAxLjA4Mzg1LCAxLjI5OTQ0IiwgXAotICAgICAgICAgICIwLjA0OTEyMiwgMC4yNjM3ODEsIDAuNDM2MjAxLCAwLjY1MjY0NiwgMC44NjYzMDcsIDEuMDgzMjMsIDEuMjk5NDUiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjA3MDU3LCAwLjMxMTI5NSwgMC4zOTQ3ODgsIDAuNDk5MjQzLCAwLjYwMzY0MiwgMC43MDgzMzYsIDAuODEyNTg2IiwgXAotICAgICAgICAgICIwLjIxNjc5OSwgMC4zMjA5OTUsIDAuNDA0NDg0LCAwLjUwODk0NiwgMC42MTMzNDUsIDAuNzE3NzcxLCAwLjgyMjI5NyIsIFwKLSAgICAgICAgICAiMC4yMjc2OTMsIDAuMzMxOTM3LCAwLjQxNTQyNSwgMC41MTk4ODUsIDAuNjI0NDI5LCAwLjcyODc4MiwgMC44MzMyMzUiLCBcCi0gICAgICAgICAgIjAuMjM2OTkzLCAwLjM0MTIzMywgMC40MjQ3MjcsIDAuNTI5MTg0LCAwLjYzMzU4MywgMC43MzgyNzgsIDAuODQyNTMxIiwgXAotICAgICAgICAgICIwLjI0NDMwNSwgMC4zNDg1MDIsIDAuNDMxOTgxLCAwLjUzNjQzOCwgMC42NDA4MzksIDAuNzQ1MjI2LCAwLjg0OTY0OSIsIFwKLSAgICAgICAgICAiMC4yNTQ2MTcsIDAuMzU4OCwgMC40NDIyNzYsIDAuNTQ2NzM3LCAwLjY1MTIwNSwgMC43NTU4NDQsIDAuODYwMTgiLCBcCi0gICAgICAgICAgIjAuMjYyMzA4LCAwLjM2NjU0OCwgMC40NTAwNTgsIDAuNTU0NDk4LCAwLjY1ODg5NCwgMC43NjM1ODgsIDAuODY3ODQ3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0ODU4MiwgMC4yNTg1NzQsIDAuNDI3ODcyLCAwLjYzOTAwOCwgMC44NDkwNDQsIDEuMDYxODMsIDEuMjcxODEiLCBcCi0gICAgICAgICAgIjAuMDQ4NTc2LCAwLjI1ODU5MiwgMC40Mjc4NDYsIDAuNjM5MDU0LCAwLjg0OTY5NSwgMS4wNTk5NCwgMS4yNzE3OSIsIFwKLSAgICAgICAgICAiMC4wNDg1ODgsIDAuMjU4NjYsIDAuNDI3ODM3LCAwLjYzOTAzMSwgMC44NTA0NTcsIDEuMDYwNzYsIDEuMjcxNzgiLCBcCi0gICAgICAgICAgIjAuMDQ4NTgzLCAwLjI1ODU1NSwgMC40Mjc4NjEsIDAuNjM5MDEyLCAwLjg0OTA0NSwgMS4wNjE4MSwgMS4yNzE3OSIsIFwKLSAgICAgICAgICAiMC4wNDg1MjIsIDAuMjU4NTE3LCAwLjQyNjY5NiwgMC42Mzg4NTUsIDAuODQ3ODUyLCAxLjA1OTk2LCAxLjI2ODgzIiwgXAotICAgICAgICAgICIwLjA0ODU4MSwgMC4yNTgzOTYsIDAuNDI3NTg1LCAwLjYzODE1MiwgMC44NDg3ODQsIDEuMDYxNzMsIDEuMjcxODQiLCBcCi0gICAgICAgICAgIjAuMDQ4NTc4LCAwLjI1ODU1NywgMC40Mjc4NjUsIDAuNjM4OTgzLCAwLjg0OTA5MywgMS4wNjE4LCAxLjI3MTgyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiByaXNpbmdfZWRnZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTgxMDgyLCAwLjI4NDg4LCAwLjM2ODAyLCAwLjQ3MTg3MiwgMC41NzU4MTcsIDAuNjc5ODgzLCAwLjc4Mzc1NiIsIFwKLSAgICAgICAgICAiMC4xODk4NjksIDAuMjkzNjM2LCAwLjM3NzAwMiwgMC40ODA5MTgsIDAuNTg0NDk1LCAwLjY4ODY5NCwgMC43OTI1MzQiLCBcCi0gICAgICAgICAgIjAuMjAwNjUsIDAuMzA0Mzk4LCAwLjM4NzgwNSwgMC40OTE3MDEsIDAuNTk1MjI2LCAwLjY5OTIxOCwgMC44MDMyNzgiLCBcCi0gICAgICAgICAgIjAuMjExMDY5LCAwLjMxNDgsIDAuMzk4LCAwLjUwMjEwOCwgMC42MDYwMiwgMC43MDk4NjEsIDAuODEzNjk2IiwgXAotICAgICAgICAgICIwLjIyMDU0NCwgMC4zMjQyOTEsIDAuNDA3Njk1LCAwLjUxMTU5MywgMC42MTU0OTUsIDAuNzE5LCAwLjgyMzE3MiIsIFwKLSAgICAgICAgICAiMC4yMzQ0MjgsIDAuMzM4MTkyLCAwLjQyMTYzMSwgMC41MjU0OTgsIDAuNjI5MzkyLCAwLjczMzI1MSwgMC44MzcwODQiLCBcCi0gICAgICAgICAgIjAuMjQ1MDk5LCAwLjM0ODgxMiwgMC40MzIyMTksIDAuNTM1OTk0LCAwLjYzOTY3MiwgMC43NDM4NywgMC44NDc3MTciKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQ5MTk4LCAwLjI2MzkyMywgMC40MzYxNjMsIDAuNjUxMjUyLCAwLjg2Nzg0OCwgMS4wODM4MSwgMS4yOTk0NSIsIFwKLSAgICAgICAgICAiMC4wNDkxNzgsIDAuMjYzNzc5LCAwLjQzNjgyMiwgMC42NTI1NjQsIDAuODY2Nzc2LCAxLjA4Mzg2LCAxLjI5OTQzIiwgXAotICAgICAgICAgICIwLjA0OTMwOSwgMC4yNjM5MywgMC40MzY5MDgsIDAuNjUyNjE1LCAwLjg2NjkzLCAxLjA4MzMyLCAxLjI5OTQ1IiwgXAotICAgICAgICAgICIwLjA0OTI3MywgMC4yNjM3NiwgMC40MzYxNDksIDAuNjUyNjA1LCAwLjg2ODM0LCAxLjA4Mzg3LCAxLjI5OTQ0IiwgXAotICAgICAgICAgICIwLjA0OTI5MSwgMC4yNjM4OTUsIDAuNDM2OTAyLCAwLjY1MjYxNiwgMC44NjgzMjQsIDEuMDgyMTIsIDEuMjk5NDUiLCBcCi0gICAgICAgICAgIjAuMDQ5MjExLCAwLjI2MzQ3NiwgMC40MzY3ODgsIDAuNjUyNjAyLCAwLjg2ODMxMywgMS4wODM4OCwgMS4yOTk0MiIsIFwKLSAgICAgICAgICAiMC4wNDkyMzQsIDAuMjYzNDI1LCAwLjQzNjg4OCwgMC42NTIwNDEsIDAuODY2NzQyLCAxLjA4MzgzLCAxLjI5OTQzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiBmYWxsaW5nX2VkZ2U7Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE4OTA1OSwgMC4yOTMxNjksIDAuMzc2NjY3LCAwLjQ4MTE4MywgMC41ODU1NzMsIDAuNjkwMjQzLCAwLjc5NDcxMiIsIFwKLSAgICAgICAgICAiMC4xOTg1NjIsIDAuMzAyNzk1LCAwLjM4NjI5MiwgMC40OTA4MDEsIDAuNTk1MzM1LCAwLjY5OTgxOSwgMC44MDQzMyIsIFwKLSAgICAgICAgICAiMC4yMTA3MjksIDAuMzE0ODQxLCAwLjM5ODMzNywgMC41MDI4NTYsIDAuNjA3MjQ2LCAwLjcxMTkxNiwgMC44MTYzODQiLCBcCi0gICAgICAgICAgIjAuMjIyMDczLCAwLjMyNjE4NCwgMC40MDk2OCwgMC41MTQxOTksIDAuNjE4NTksIDAuNzIzMjU5LCAwLjgyNzcyNyIsIFwKLSAgICAgICAgICAiMC4yMzE4NzcsIDAuMzM2MDYyLCAwLjQxOTU2MiwgMC41MjQwNzgsIDAuNjI4NDY5LCAwLjczMzEzOSwgMC44Mzc2MDciLCBcCi0gICAgICAgICAgIjAuMjQ2MDI0LCAwLjM1MDIxOCwgMC40MzM3MzMsIDAuNTM4MjI0LCAwLjY0MjU3MSwgMC43NDY5ODksIDAuODUxNzg2IiwgXAotICAgICAgICAgICIwLjI1ODY2NCwgMC4zNjI4MTksIDAuNDQ2MzI2LCAwLjU1MDc0NCwgMC42NTUyMTUsIDAuNzU5ODg3LCAwLjg2NDM2NyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDg1NDYsIDAuMjU4NTM5LCAwLjQyNzg1NSwgMC42Mzg5ODUsIDAuODQ5MTk4LCAxLjA2MTY0LCAxLjI3MjY5IiwgXAotICAgICAgICAgICIwLjA0ODYyNiwgMC4yNTg1NzQsIDAuNDI3ODUzLCAwLjYzOTEyMSwgMC44NTAzNjksIDEuMDYxNTgsIDEuMjcyNzgiLCBcCi0gICAgICAgICAgIjAuMDQ4NTY0LCAwLjI1ODQ4MywgMC40Mjc3NSwgMC42Mzg5NDMsIDAuODQ5MjMzLCAxLjA2MTY0LCAxLjI3MjYxIiwgXAotICAgICAgICAgICIwLjA0ODU3NiwgMC4yNTgzNTUsIDAuNDI3NzMyLCAwLjYzODk0NCwgMC44NDkyMzgsIDEuMDYxNjUsIDEuMjcyOCIsIFwKLSAgICAgICAgICAiMC4wNDg2MTksIDAuMjU4NDU5LCAwLjQyNzczMiwgMC42Mzg5NDMsIDAuODQ5MjM1LCAxLjA2MTY1LCAxLjI3MjgiLCBcCi0gICAgICAgICAgIjAuMDQ4NTc1LCAwLjI1ODYyMSwgMC40Mjc3NDUsIDAuNjM4OTU3LCAwLjg0OTIwNCwgMS4wNjE2MSwgMS4yNzI3OSIsIFwKLSAgICAgICAgICAiMC4wNDg1MTMsIDAuMjU4NTQ2LCAwLjQyNzgxNSwgMC42Mzg5NjcsIDAuODQ3NzAzLCAxLjA2MTYyLCAxLjI3MjY5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiBwcmVzZXQ7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3MzcyOCwgMC4xNzc0NTUsIDAuMjYwNjMyLCAwLjM2NDY5OSwgMC40Njg1MywgMC41NzIxMjIsIDAuNjc2MTYxIiwgXAotICAgICAgICAgICIwLjA4MzYyOSwgMC4xODczOTMsIDAuMjcwNTI4LCAwLjM3NDYxNywgMC40NzgyNjQsIDAuNTgyMDQsIDAuNjg1OTMiLCBcCi0gICAgICAgICAgIjAuMDk2MDksIDAuMTk5ODcyLCAwLjI4Mjk3OSwgMC4zODY5OCwgMC40OTA5MTQsIDAuNTk0NjMyLCAwLjY5ODUzNyIsIFwKLSAgICAgICAgICAiMC4xMDgxNjYsIDAuMjExOTQ3LCAwLjI5NTA1NCwgMC4zOTkxNTQsIDAuNTAyOTAzLCAwLjYwNjg3OCwgMC43MTA2MDQiLCBcCi0gICAgICAgICAgIjAuMTE4OTgyLCAwLjIyMjczNywgMC4zMDU4NjcsIDAuNDA5OTA5LCAwLjUxMzc3NSwgMC42MTc0ODQsIDAuNzIxMTgxIiwgXAotICAgICAgICAgICIwLjEzMzY4LCAwLjIzNzQ2MSwgMC4zMjA0MTUsIDAuNDI0MzQ2LCAwLjUyODI2LCAwLjYzMjEzNiwgMC43MzU4MjMiLCBcCi0gICAgICAgICAgIjAuMTQ0ODIzLCAwLjI0ODQ1MywgMC4zMzE1NSwgMC40MzU0MTEsIDAuNTM5MzE1LCAwLjY0MzE1OSwgMC43NDcwNTgiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQ5MjYzLCAwLjI2Mzg5NiwgMC40MzYzMSwgMC42NTI1MDksIDAuODY4LCAxLjA4MjM2LCAxLjI5ODQ4IiwgXAotICAgICAgICAgICIwLjA0OTI1NSwgMC4yNjM5ODUsIDAuNDM2MzA2LCAwLjY1MjE1MywgMC44NjY4MTUsIDEuMDgyMywgMS4yOTcxIiwgXAotICAgICAgICAgICIwLjA0OTIzNywgMC4yNjM4NDYsIDAuNDM2MTI4LCAwLjY1MTk4MywgMC44Njc2MzUsIDEuMDgyNzcsIDEuMjk4NTQiLCBcCi0gICAgICAgICAgIjAuMDQ5MTg3LCAwLjI2MzUxNiwgMC40MzYzMDMsIDAuNjUyNTA1LCAwLjg2NzM5NiwgMS4wODM1OCwgMS4yOTg1NSIsIFwKLSAgICAgICAgICAiMC4wNDkzMDIsIDAuMjYzOTA4LCAwLjQzNjMwNiwgMC42NTI0NSwgMC44NjgwMTMsIDEuMDgyOTEsIDEuMjk3NDYiLCBcCi0gICAgICAgICAgIjAuMDQ5NDQ1LCAwLjI2NDI0MSwgMC40MzYzNTYsIDAuNjUxOTc2LCAwLjg2NzY5MiwgMS4wODI5MywgMS4yOTc2NCIsIFwKLSAgICAgICAgICAiMC4wNDkzNzEsIDAuMjY0MTI4LCAwLjQzNjQ5OSwgMC42NTIwMDMsIDAuODY3NjE2LCAxLjA4MzE1LCAxLjI5ODgiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk4ODI0LCAwLjIwMzAzNSwgMC4yODY1NjIsIDAuMzkxMDc0LCAwLjQ5NTQ4MiwgMC41OTk4NjQsIDAuNzA0NTU2IiwgXAotICAgICAgICAgICIwLjEwNzM1NywgMC4yMTE2MjcsIDAuMjk1MTMxLCAwLjM5OTY0NCwgMC41MDQyMzgsIDAuNjA4NTg3LCAwLjcxMzEzIiwgXAotICAgICAgICAgICIwLjExNzk1OCwgMC4yMjIyMSwgMC4zMDU3MzEsIDAuNDEwMjQzLCAwLjUxNDY2MSwgMC42MTkzNTcsIDAuNzIzNDciLCBcCi0gICAgICAgICAgIjAuMTI4NDkzLCAwLjIzMjcyLCAwLjMxNjMsIDAuNDIwODAyLCAwLjUyNTMzLCAwLjYyOTc1OSwgMC43MzQxODUiLCBcCi0gICAgICAgICAgIjAuMTM4ODA2LCAwLjI0MzA4OSwgMC4zMjY1NzIsIDAuNDMxMDk4LCAwLjUzNTUzLCAwLjY0MDIxOSwgMC43NDQ1MzYiLCBcCi0gICAgICAgICAgIjAuMTUzOTA2LCAwLjI1ODAwNCwgMC4zNDE1MywgMC40NDU5NzUsIDAuNTUwNDI5LCAwLjY1NDg4LCAwLjc1OTUxIiwgXAotICAgICAgICAgICIwLjE2NTg1MywgMC4yNzAxNDUsIDAuMzUzNjY0LCAwLjQ1ODA1MSwgMC41NjI1NDgsIDAuNjY3MTgyLCAwLjc3MTY3NyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDg2MDMsIDAuMjU4NDg4LCAwLjQyNzgzNywgMC42MzkwMTQsIDAuODQ4ODM2LCAxLjA2MTc3LCAxLjI3MSIsIFwKLSAgICAgICAgICAiMC4wNDg1NDIsIDAuMjU4NjE1LCAwLjQyNzgzNywgMC42MzkyNzQsIDAuODUwNTk1LCAxLjA2MTcxLCAxLjI3MTI4IiwgXAotICAgICAgICAgICIwLjA0ODUzNywgMC4yNTg1NDUsIDAuNDI3ODEsIDAuNjM4OTY2LCAwLjg0OTA4NSwgMS4wNjE3NiwgMS4yNzEyIiwgXAotICAgICAgICAgICIwLjA0ODYyOSwgMC4yNTg2MDgsIDAuNDI3Nzk0LCAwLjYzOTMxNiwgMC44NTAyMjYsIDEuMDYwMSwgMS4yNzEzMyIsIFwKLSAgICAgICAgICAiMC4wNDg1MzEsIDAuMjU4NjIsIDAuNDI3NTk3LCAwLjYzODkzOCwgMC44NDg3NTEsIDEuMDYxNzMsIDEuMjcxMDkiLCBcCi0gICAgICAgICAgIjAuMDQ4Njc1LCAwLjI1ODU4NSwgMC40Mjc4MTksIDAuNjM5MTgyLCAwLjg1MDI4MiwgMS4wNjA3MywgMS4yNzEyOCIsIFwKLSAgICAgICAgICAiMC4wNDg5ODksIDAuMjU4NjgxLCAwLjQyNzY4OCwgMC42MzkwNTgsIDAuODQ5MDksIDEuMDYxNzMsIDEuMjcxMjQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJEIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQyMTIsIDAuMDA0MjcxLCAwLjAwNDI3OCwgMC4wMDQyODUsIDAuMDA0MjgsIDAuMDA0Mjg0LCAwLjAwNDI4NSIsIFwKLSAgICAgICAgICAiMC4wMDQyMDMsIDAuMDA0MjYyLCAwLjAwNDI2OSwgMC4wMDQyNzIsIDAuMDA0Mjc1LCAwLjAwNDI3NSwgMC4wMDQyNzYiLCBcCi0gICAgICAgICAgIjAuMDA0MTk0LCAwLjAwNDI1NCwgMC4wMDQyNjEsIDAuMDA0MjY0LCAwLjAwNDI2NiwgMC4wMDQyNjgsIDAuMDA0MjY2IiwgXAotICAgICAgICAgICIwLjAwNDE5MSwgMC4wMDQyNDksIDAuMDA0MjU2LCAwLjAwNDI1OSwgMC4wMDQyNjEsIDAuMDA0MjYyLCAwLjAwNDI2NSIsIFwKLSAgICAgICAgICAiMC4wMDQxODIsIDAuMDA0MjQzLCAwLjAwNDI1MywgMC4wMDQyNTIsIDAuMDA0MjU2LCAwLjAwNDI2MSwgMC4wMDQyNTkiLCBcCi0gICAgICAgICAgIjAuMDA0MTgsIDAuMDA0MjQyLCAwLjAwNDI1LCAwLjAwNDI1NCwgMC4wMDQyNTYsIDAuMDA0MjU3LCAwLjAwNDI1OCIsIFwKLSAgICAgICAgICAiMC4wMDQxODcsIDAuMDA0MjQ5LCAwLjAwNDI1OCwgMC4wMDQyNjEsIDAuMDA0MjYzLCAwLjAwNDI2NSwgMC4wMDQyNjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQ3NCwgMC4wMDQ3OTMsIDAuMDA0OCwgMC4wMDQ4MDMsIDAuMDA0ODA3LCAwLjAwNDgwNiwgMC4wMDQ4MDMiLCBcCi0gICAgICAgICAgIjAuMDA0NzM1LCAwLjAwNDc4OCwgMC4wMDQ3OTQsIDAuMDA0Nzk3LCAwLjAwNDc5OSwgMC4wMDQ4LCAwLjAwNDgiLCBcCi0gICAgICAgICAgIjAuMDA0NzMxLCAwLjAwNDc4MiwgMC4wMDQ3ODksIDAuMDA0NzkyLCAwLjAwNDc5NCwgMC4wMDQ3OTUsIDAuMDA0NzkzIiwgXAotICAgICAgICAgICIwLjAwNDcyNywgMC4wMDQ3OCwgMC4wMDQ3ODYsIDAuMDA0NzksIDAuMDA0NzkxLCAwLjAwNDc5MiwgMC4wMDQ3OTQiLCBcCi0gICAgICAgICAgIjAuMDA0NzI1LCAwLjAwNDc3OCwgMC4wMDQ3ODUsIDAuMDA0Nzg5LCAwLjAwNDc5LCAwLjAwNDc5MSwgMC4wMDQ3OTIiLCBcCi0gICAgICAgICAgIjAuMDA0NzIyLCAwLjAwNDc3NSwgMC4wMDQ3ODEsIDAuMDA0Nzg4LCAwLjAwNDc4NiwgMC4wMDQ3ODgsIDAuMDA0Nzk0IiwgXAotICAgICAgICAgICIwLjAwNDcyNSwgMC4wMDQ3NzgsIDAuMDA0Nzg1LCAwLjAwNDc4OSwgMC4wMDQ3OSwgMC4wMDQ3OTEsIDAuMDA0NzkyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiR04iOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjM3LCAwLjAwNjQyOSwgMC4wMDY0MzcsIDAuMDA2NDQsIDAuMDA2NDQxLCAwLjAwNjQ0MywgMC4wMDY0NDMiLCBcCi0gICAgICAgICAgIjAuMDA2MzU5LCAwLjAwNjQxOCwgMC4wMDY0MjQsIDAuMDA2NDI4LCAwLjAwNjQzLCAwLjAwNjQzMSwgMC4wMDY0MzEiLCBcCi0gICAgICAgICAgIjAuMDA2MzU1LCAwLjAwNjQxNCwgMC4wMDY0MjEsIDAuMDA2NDI0LCAwLjAwNjQyNywgMC4wMDY0MjksIDAuMDA2NDI4IiwgXAotICAgICAgICAgICIwLjAwNjM1NCwgMC4wMDY0MTQsIDAuMDA2NDIxLCAwLjAwNjQyMywgMC4wMDY0MjYsIDAuMDA2NDI3LCAwLjAwNjQyOCIsIFwKLSAgICAgICAgICAiMC4wMDYzNTcsIDAuMDA2NDE3LCAwLjAwNjQyMywgMC4wMDY0MjcsIDAuMDA2NDI5LCAwLjAwNjQzLCAwLjAwNjQzMiIsIFwKLSAgICAgICAgICAiMC4wMDYzNjksIDAuMDA2NDI3LCAwLjAwNjQzNywgMC4wMDY0MzcsIDAuMDA2NDQxLCAwLjAwNjQ0MSwgMC4wMDY0NDUiLCBcCi0gICAgICAgICAgIjAuMDA2MzczLCAwLjAwNjQzMSwgMC4wMDY0MzksIDAuMDA2NDQyLCAwLjAwNjQ0MywgMC4wMDY0NDUsIDAuMDA2NDQ2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2NzY5LCAwLjAwNjgxNiwgMC4wMDY4MTgsIDAuMDA2ODE4LCAwLjAwNjgxNCwgMC4wMDY4MTYsIDAuMDA2ODEyIiwgXAotICAgICAgICAgICIwLjAwNjc1NCwgMC4wMDY4MDIsIDAuMDA2ODAxLCAwLjAwNjgwMiwgMC4wMDY4LCAwLjAwNjc5OCwgMC4wMDY3OTciLCBcCi0gICAgICAgICAgIjAuMDA2NzUzLCAwLjAwNjgsIDAuMDA2ODAyLCAwLjAwNjc5OCwgMC4wMDY3OTcsIDAuMDA2Nzk3LCAwLjAwNjc5NiIsIFwKLSAgICAgICAgICAiMC4wMDY3NTIsIDAuMDA2OCwgMC4wMDY4MDEsIDAuMDA2ODAyLCAwLjAwNjc5NCwgMC4wMDY4LCAwLjAwNjc5NSIsIFwKLSAgICAgICAgICAiMC4wMDY3NTcsIDAuMDA2ODA0LCAwLjAwNjgwNSwgMC4wMDY4MDQsIDAuMDA2ODAxLCAwLjAwNjgsIDAuMDA2Nzk5IiwgXAotICAgICAgICAgICIwLjAwNjc2NywgMC4wMDY4MTUsIDAuMDA2ODE2LCAwLjAwNjgxNCwgMC4wMDY4MTIsIDAuMDA2ODExLCAwLjAwNjgwNyIsIFwKLSAgICAgICAgICAiMC4wMDY3NzYsIDAuMDA2ODI0LCAwLjAwNjgyNywgMC4wMDY4MjcsIDAuMDA2ODIyLCAwLjAwNjgyLCAwLjAwNjgxOCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDUyNDgsIDAuMDA1MzA4LCAwLjAwNTMxNSwgMC4wMDUzMTgsIDAuMDA1MzIsIDAuMDA1MzIxLCAwLjAwNTMyMSIsIFwKLSAgICAgICAgICAiMC4wMDUyMzQsIDAuMDA1MjkzLCAwLjAwNTMsIDAuMDA1MzA0LCAwLjAwNTMwNSwgMC4wMDUzMDYsIDAuMDA1MzA3IiwgXAotICAgICAgICAgICIwLjAwNTIzLCAwLjAwNTI4OSwgMC4wMDUyOTUsIDAuMDA1Mjk5LCAwLjAwNTMsIDAuMDA1MzAyLCAwLjAwNTMwMiIsIFwKLSAgICAgICAgICAiMC4wMDUyMjksIDAuMDA1Mjg4LCAwLjAwNTI5NSwgMC4wMDUyOTgsIDAuMDA1MywgMC4wMDUzMDEsIDAuMDA1MzAyIiwgXAotICAgICAgICAgICIwLjAwNTIyNiwgMC4wMDUyODUsIDAuMDA1MjkyLCAwLjAwNTI5NSwgMC4wMDUyOTYsIDAuMDA1Mjk4LCAwLjAwNTI5OCIsIFwKLSAgICAgICAgICAiMC4wMDUyMjksIDAuMDA1Mjg4LCAwLjAwNTI5NCwgMC4wMDUyOTgsIDAuMDA1Mjk5LCAwLjAwNTMsIDAuMDA1MzAxIiwgXAotICAgICAgICAgICIwLjAwNTIyNiwgMC4wMDUyODUsIDAuMDA1MjkyLCAwLjAwNTI5NiwgMC4wMDUyOTgsIDAuMDA1Mjk5LCAwLjAwNTI5OSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjI4NCwgMC4wMDYzMzQsIDAuMDA2MzQsIDAuMDA2MzQ2LCAwLjAwNjM0NSwgMC4wMDYzNDQsIDAuMDA2MzQ3IiwgXAotICAgICAgICAgICIwLjAwNjI3LCAwLjAwNjMyMiwgMC4wMDYzMjgsIDAuMDA2MzI5LCAwLjAwNjMzMywgMC4wMDYzMzQsIDAuMDA2MzM1IiwgXAotICAgICAgICAgICIwLjAwNjI2OSwgMC4wMDYzMTksIDAuMDA2MzI1LCAwLjAwNjMzMiwgMC4wMDYzMjgsIDAuMDA2MzMyLCAwLjAwNjMzIiwgXAotICAgICAgICAgICIwLjAwNjI2NiwgMC4wMDYzMTcsIDAuMDA2MzIzLCAwLjAwNjMyNiwgMC4wMDYzMjgsIDAuMDA2MzI2LCAwLjAwNjMyNyIsIFwKLSAgICAgICAgICAiMC4wMDYyNjgsIDAuMDA2MzE5LCAwLjAwNjMyNiwgMC4wMDYzMzIsIDAuMDA2MzI4LCAwLjAwNjMzMiwgMC4wMDYzMzMiLCBcCi0gICAgICAgICAgIjAuMDA2MjgsIDAuMDA2MzMzLCAwLjAwNjMzOSwgMC4wMDYzNDIsIDAuMDA2MzQzLCAwLjAwNjM0NCwgMC4wMDYzNDUiLCBcCi0gICAgICAgICAgIjAuMDA2Mjg1LCAwLjAwNjMzNiwgMC4wMDYzNDMsIDAuMDA2MzQ3LCAwLjAwNjM0NywgMC4wMDYzNDcsIDAuMDA2MzUxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiU04iOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDY5OCwgMC4wMDQ3NCwgMC4wMDQ3NDYsIDAuMDA0NzQ3LCAwLjAwNDc0OSwgMC4wMDQ3NDksIDAuMDA0NzQ5IiwgXAotICAgICAgICAgICIwLjAwNDY4LCAwLjAwNDcyNSwgMC4wMDQ3MzIsIDAuMDA0NzMzLCAwLjAwNDczNywgMC4wMDQ3MzIsIDAuMDA0NzM5IiwgXAotICAgICAgICAgICIwLjAwNDY2MSwgMC4wMDQ3MTEsIDAuMDA0NzE3LCAwLjAwNDcyMSwgMC4wMDQ3MjIsIDAuMDA0NzI0LCAwLjAwNDcyMiIsIFwKLSAgICAgICAgICAiMC4wMDQ2NDUsIDAuMDA0NywgMC4wMDQ3MDcsIDAuMDA0NzExLCAwLjAwNDcxMywgMC4wMDQ3MTUsIDAuMDA0NzE1IiwgXAotICAgICAgICAgICIwLjAwNDY0MywgMC4wMDQ3MDIsIDAuMDA0NzEsIDAuMDA0NzE1LCAwLjAwNDcxNywgMC4wMDQ3MTgsIDAuMDA0NzE5IiwgXAotICAgICAgICAgICIwLjAwNDY0MSwgMC4wMDQ2OTgsIDAuMDA0NzA4LCAwLjAwNDcxMywgMC4wMDQ3MTYsIDAuMDA0NzE4LCAwLjAwNDcxOSIsIFwKLSAgICAgICAgICAiMC4wMDQ2NDksIDAuMDA0NzA2LCAwLjAwNDcxNywgMC4wMDQ3MjMsIDAuMDA0NzI2LCAwLjAwNDcyOCwgMC4wMDQ3MjkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDMzODEsIDAuMDAzNDI1LCAwLjAwMzQzLCAwLjAwMzQzMywgMC4wMDM0MzYsIDAuMDAzNDM1LCAwLjAwMzQzNSIsIFwKLSAgICAgICAgICAiMC4wMDMzNTksIDAuMDAzNDA4LCAwLjAwMzQxMywgMC4wMDM0MTYsIDAuMDAzNDE3LCAwLjAwMzQxOCwgMC4wMDM0MTgiLCBcCi0gICAgICAgICAgIjAuMDAzMzQ3LCAwLjAwMzM5NywgMC4wMDM0MDMsIDAuMDAzNDA2LCAwLjAwMzQwNywgMC4wMDM0MDgsIDAuMDAzNDA4IiwgXAotICAgICAgICAgICIwLjAwMzM0OSwgMC4wMDMzOTgsIDAuMDAzNDA2LCAwLjAwMzQwOCwgMC4wMDM0MDksIDAuMDAzNDEsIDAuMDAzNDExIiwgXAotICAgICAgICAgICIwLjAwMzM1NCwgMC4wMDM0MDIsIDAuMDAzNDA5LCAwLjAwMzQxNCwgMC4wMDM0MTQsIDAuMDAzNDE4LCAwLjAwMzQxNiIsIFwKLSAgICAgICAgICAiMC4wMDMzNDQsIDAuMDAzMzk3LCAwLjAwMzQwNiwgMC4wMDM0MDcsIDAuMDAzNDEsIDAuMDAzNDExLCAwLjAwMzQxMSIsIFwKLSAgICAgICAgICAiMC4wMDMzNDgsIDAuMDAzNCwgMC4wMDM0MTEsIDAuMDAzNDE0LCAwLjAwMzQxNywgMC4wMDM0MTgsIDAuMDAzNDE5Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihRTikgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjUxMTEzNTsKLSAgICBmdW5jdGlvbiA6ICJONSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTQ1NDQ2LCAwLjI1MjkxNCwgMC4zMzUyMjQsIDAuNDM4MDQxLCAwLjU0MDg2OSwgMC42NDM2NzEsIDAuNzQ2NTExIiwgXAotICAgICAgICAgICIwLjE1NDAyLCAwLjI2MTQ4MSwgMC4zNDM3ODksIDAuNDQ2NjA3LCAwLjU0OTQ3NCwgMC42NTIzMDEsIDAuNzU1MDg3IiwgXAotICAgICAgICAgICIwLjE2MzY3OSwgMC4yNzExNSwgMC4zNTM0NTIsIDAuNDU2MjczLCAwLjU1OTAzMywgMC42NjE5NjcsIDAuNzY0NzgyIiwgXAotICAgICAgICAgICIwLjE3Mjk3NCwgMC4yODA0MzUsIDAuMzYyNzQxLCAwLjQ2NTU2LCAwLjU2ODQ1MywgMC42NzEyNTQsIDAuNzc0MDY4IiwgXAotICAgICAgICAgICIwLjE4MTY3MywgMC4yODkxMzcsIDAuMzcxNDQzLCAwLjQ3NDI2MywgMC41NzcxNywgMC42Nzk5NTgsIDAuNzgyNzcxIiwgXAotICAgICAgICAgICIwLjE5NDI4MywgMC4zMDE3NywgMC4zODQwNTMsIDAuNDg2ODksIDAuNTg5ODk3LCAwLjY5MjU4OCwgMC43OTUzOTQiLCBcCi0gICAgICAgICAgIjAuMjAzOTgzLCAwLjMxMTQ5NiwgMC4zOTM3ODYsIDAuNDk2NjMsIDAuNTk5NiwgMC43MDIyOTcsIDAuODA1MTA5Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2NDY3NCwgMC4yNjcxNTIsIDAuNDM2MzQsIDAuNjQ5MTYxLCAwLjg2MDcyLCAxLjA3NDEzLCAxLjI4NzMzIiwgXAotICAgICAgICAgICIwLjA2NDY1MywgMC4yNjcwOTIsIDAuNDM2MzUyLCAwLjY0OTE5MywgMC44NjA3MjcsIDEuMDc2ODksIDEuMjg4OTYiLCBcCi0gICAgICAgICAgIjAuMDY0NjA0LCAwLjI2NzIwMiwgMC40MzYzMjYsIDAuNjQ5MTg4LCAwLjg2MDgyMywgMS4wNzY4OSwgMS4yODc1NiIsIFwKLSAgICAgICAgICAiMC4wNjQ2MjUsIDAuMjY3MTczLCAwLjQzNjM3MywgMC42NDkxOTIsIDAuODYwNjM4LCAxLjA3Njg5LCAxLjI4NzU4IiwgXAotICAgICAgICAgICIwLjA2NDYzNiwgMC4yNjcxODQsIDAuNDM2MzYyLCAwLjY0OTE5MiwgMC44NjA2NjcsIDEuMDc2ODksIDEuMjg3NTQiLCBcCi0gICAgICAgICAgIjAuMDY0Njk3LCAwLjI2NzE5LCAwLjQzNjIwNiwgMC42NDkxNzEsIDAuODYxMDExLCAxLjA3Njg5LCAxLjI4ODA4IiwgXAotICAgICAgICAgICIwLjA2NDcwNywgMC4yNjczNTgsIDAuNDM2MjcyLCAwLjY0OTMzMiwgMC44NjEwNDEsIDEuMDc2ODYsIDEuMjg5MjYiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTE3NTMyLCAwLjIyMjM2NywgMC4zMDUyMTMsIDAuNDA4NzY3LCAwLjUxMjMyNSwgMC42MTU4NjYsIDAuNzE5NDMiLCBcCi0gICAgICAgICAgIjAuMTI2Mzk2LCAwLjIzMTIxMiwgMC4zMTQwODYsIDAuNDE3NjYyLCAwLjUyMTIyMywgMC42MjQ2OTksIDAuNzI4MTQ3IiwgXAotICAgICAgICAgICIwLjEzNzE3NywgMC4yNDIwMTEsIDAuMzI0ODYyLCAwLjQyODQwOCwgMC41MzE5NzYsIDAuNjM1NDk1LCAwLjczOTAxIiwgXAotICAgICAgICAgICIwLjE0NzQ3MSwgMC4yNTIzMDYsIDAuMzM1MTU3LCAwLjQzODcwMywgMC41NDIyNzUsIDAuNjQ1NzkxLCAwLjc0OTA3OSIsIFwKLSAgICAgICAgICAiMC4xNTczNjgsIDAuMjYyMjA1LCAwLjM0NTA1OCwgMC40NDg2MDUsIDAuNTUyMjQ2LCAwLjY1NTY4MiwgMC43NTkyMTEiLCBcCi0gICAgICAgICAgIjAuMTcxODIsIDAuMjc2NjcxLCAwLjM1OTUyMSwgMC40NjMwNzcsIDAuNTY2NjM0LCAwLjY3MDE0MiwgMC43NzM2MzEiLCBcCi0gICAgICAgICAgIjAuMTgzMjQzLCAwLjI4ODEwOCwgMC4zNzA5NTcsIDAuNDc0NTA4LCAwLjU3ODA3NSwgMC42ODE1NTgsIDAuNzg1MDU5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1NDUxOCwgMC4yNTc3NTgsIDAuNDI0ODczLCAwLjYzNTYyNiwgMC44NDI1MzQsIDEuMDU1NzMsIDEuMjYzMDEiLCBcCi0gICAgICAgICAgIjAuMDU0NTIzLCAwLjI1Nzc3NSwgMC40MjQ3NjUsIDAuNjM0Mzc2LCAwLjg0Mzg2LCAxLjA1NTYsIDEuMjYyMDQiLCBcCi0gICAgICAgICAgIjAuMDU0NTE2LCAwLjI1ODI5LCAwLjQyNTI5NSwgMC42MzU2NDgsIDAuODQzODc4LCAxLjA1NTYxLCAxLjI2NTUzIiwgXAotICAgICAgICAgICIwLjA1NDU5NCwgMC4yNTc3NzMsIDAuNDI0NDM1LCAwLjYzNTYxMSwgMC44NDI0ODQsIDEuMDU1NjgsIDEuMjYzNTQiLCBcCi0gICAgICAgICAgIjAuMDU0NjA0LCAwLjI1Nzk2MywgMC40MjQ0MzcsIDAuNjM1NjYyLCAwLjg0Mzg2OSwgMS4wNTU1MiwgMS4yNjU1OSIsIFwKLSAgICAgICAgICAiMC4wNTQ3MjksIDAuMjU4MTc5LCAwLjQyNTgzOSwgMC42MzUzNzcsIDAuODQ0MDIzLCAxLjA1NTQ3LCAxLjI2NTM1IiwgXAotICAgICAgICAgICIwLjA1NDc0MywgMC4yNTgyNDgsIDAuNDI1MjgzLCAwLjYzNTY1LCAwLjg0NTY2NSwgMS4wNTM5NSwgMS4yNjUzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkdOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5vbl91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogZmFsbGluZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMDUwODIsIDAuMzEyNjE5LCAwLjM5NDkyNywgMC40OTc3MzksIDAuNjAwNjI1LCAwLjcwMzQ0NiwgMC44MDYyMzgiLCBcCi0gICAgICAgICAgIjAuMjE0ODA5LCAwLjMyMjM0NywgMC40MDQ2NTEsIDAuNTA3NDcyLCAwLjYxMDMxNywgMC43MTMyNjksIDAuODE1OTY1IiwgXAotICAgICAgICAgICIwLjIyNTc2LCAwLjMzMzI4NSwgMC40MTU1OTMsIDAuNTE4NDEzLCAwLjYyMTI2NSwgMC43MjQxMTYsIDAuODI2OTA2IiwgXAotICAgICAgICAgICIwLjIzNTAyMSwgMC4zNDI1NTcsIDAuNDI0ODY1LCAwLjUyNzY3OCwgMC42MzA1NjMsIDAuNzMzMzg2LCAwLjgzNjE3MiIsIFwKLSAgICAgICAgICAiMC4yNDIyODYsIDAuMzQ5ODI2LCAwLjQzMjEyMSwgMC41MzQ5NDYsIDAuNjM3NzU5LCAwLjc0MDY4NSwgMC44NDM0MTkiLCBcCi0gICAgICAgICAgIjAuMjUyNjI4LCAwLjM2MDE3MywgMC40NDI0NTIsIDAuNTQ1MzY3LCAwLjY0ODI4NCwgMC43NTA5NzcsIDAuODUzODU0IiwgXAotICAgICAgICAgICIwLjI2MDMyLCAwLjM2Nzg1NCwgMC40NTAxNzgsIDAuNTUyOTc0LCAwLjY1NTg2LCAwLjc1ODY3OCwgMC44NjE0ODgiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY1MDIzLCAwLjI2NzI5MSwgMC40MzY0MDgsIDAuNjQ5MjA3LCAwLjg2MTIwMiwgMS4wNzY5MiwgMS4yODkxMSIsIFwKLSAgICAgICAgICAiMC4wNjQ5NiwgMC4yNjczNTksIDAuNDM2MzksIDAuNjQ5MjM3LCAwLjg2MTk0NCwgMS4wNzQ2MiwgMS4yODkwNCIsIFwKLSAgICAgICAgICAiMC4wNjUwMTEsIDAuMjY3NDA3LCAwLjQzNjM4NCwgMC42NDkyMzEsIDAuODYyOTc3LCAxLjA3NTQ4LCAxLjI4OTA1IiwgXAotICAgICAgICAgICIwLjA2NTAyMiwgMC4yNjcyODYsIDAuNDM2NDAzLCAwLjY0OTIxNCwgMC44NjExOTQsIDEuMDc2OTIsIDEuMjg5MDYiLCBcCi0gICAgICAgICAgIjAuMDY0OTgzLCAwLjI2NzI1OCwgMC40MzUzMjUsIDAuNjQ5MDk0LCAwLjg2MDY1OSwgMS4wNzQ3NiwgMS4yODc1NyIsIFwKLSAgICAgICAgICAiMC4wNjQ5NDcsIDAuMjY3MjQxLCAwLjQzNjIyNCwgMC42NDgxMDMsIDAuODYxMDQsIDEuMDc2ODgsIDEuMjg5MjIiLCBcCi0gICAgICAgICAgIjAuMDY0OTQ4LCAwLjI2NzI4MSwgMC40MzY0MDIsIDAuNjQ5MTk2LCAwLjg2MTIzMywgMS4wNzY5MSwgMS4yODkxNSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xOTE1NDEsIDAuMjk2Mzc5LCAwLjM3OTIyNywgMC40ODI3NzgsIDAuNTg2MjkzLCAwLjY4OTgzMywgMC43OTMzMjUiLCBcCi0gICAgICAgICAgIjAuMjAxMjMxLCAwLjMwNjA2OSwgMC4zODg5MTcsIDAuNDkyNDU5LCAwLjU5NjA5NSwgMC42OTk1MjYsIDAuODAzMDIxIiwgXAotICAgICAgICAgICIwLjIxMjE4OSwgMC4zMTcwMjksIDAuMzk5ODc3LCAwLjUwMzQxOCwgMC42MDcwNSwgMC43MTA0ODMsIDAuODEzOTgzIiwgXAotICAgICAgICAgICIwLjIyMTUzMiwgMC4zMjYzNywgMC40MDkyMTksIDAuNTEyODc5LCAwLjYxNjI5MywgMC43MTk4MDMsIDAuODIzMzE5IiwgXAotICAgICAgICAgICIwLjIyODk5MywgMC4zMzM3NDcsIDAuNDE2NjgxLCAwLjUyMDI1MSwgMC42MjM3NjIsIDAuNzI3MjA5LCAwLjgzMDcyNCIsIFwKLSAgICAgICAgICAiMC4yMzkxMjksIDAuMzQzOTcyLCAwLjQyNjc0LCAwLjUzMDM2NCwgMC42MzM4ODIsIDAuNzM3NDMsIDAuODQwODUzIiwgXAotICAgICAgICAgICIwLjI0NjU5MiwgMC4zNTE0ODYsIDAuNDM0Mjg0LCAwLjUzNzg0MywgMC42NDE0NjksIDAuNzQ0ODY3LCAwLjg0ODM4NiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTQ2NjIsIDAuMjU4MTM3LCAwLjQyNTMyMywgMC42MzU2NzgsIDAuODQ1NTQzLCAxLjA1NTQ5LCAxLjI2NTM2IiwgXAotICAgICAgICAgICIwLjA1NDY1NSwgMC4yNTgyMDMsIDAuNDI0NDM2LCAwLjYzNTYzMiwgMC44NDM5MzYsIDEuMDU1NTMsIDEuMjY1MzMiLCBcCi0gICAgICAgICAgIjAuMDU0NzA0LCAwLjI1ODE5NiwgMC40MjUzMTUsIDAuNjM1NjM1LCAwLjg0NDA4NywgMS4wNTU1MSwgMS4yNjUzNiIsIFwKLSAgICAgICAgICAiMC4wNTQ2NTksIDAuMjU4MzA0LCAwLjQyNTMzMywgMC42MzQ2MTksIDAuODQ1MTU2LCAxLjA1NTM3LCAxLjI2NTM3IiwgXAotICAgICAgICAgICIwLjA1NDY1OCwgMC4yNTgzLCAwLjQyNTMyOSwgMC42MzU3NDksIDAuODQ0NDM1LCAxLjA1NTUyLCAxLjI2MzgyIiwgXAotICAgICAgICAgICIwLjA1NDY0LCAwLjI1Nzc1OSwgMC40MjU3NjMsIDAuNjM1NjMsIDAuODQ0MjE2LCAxLjA1NTUxLCAxLjI2NTMzIiwgXAotICAgICAgICAgICIwLjA1NDY1MywgMC4yNTgxNzksIDAuNDI1MzI4LCAwLjYzNTcwNiwgMC44NDM4NTUsIDEuMDU0OTMsIDEuMjY1MzYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUk4iOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJpc2luZ19lZGdlOwotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNzU3MDEsIDAuMjgwNTQyLCAwLjM2MzM5MywgMC40NjcwMjcsIDAuNTcwNDcsIDAuNjczOTc1LCAwLjc3NzQ5NSIsIFwKLSAgICAgICAgICAiMC4xODQ0ODcsIDAuMjg5MzI5LCAwLjM3MjE2NCwgMC40NzU2OTgsIDAuNTc5MzA0LCAwLjY4Mjc5MywgMC43ODYyNzgiLCBcCi0gICAgICAgICAgIjAuMTk1MjMxLCAwLjMwMDA2OCwgMC4zODI5MTcsIDAuNDg2NDY2LCAwLjU5MDA2MSwgMC42OTM1MDYsIDAuNzk3MDEyIiwgXAotICAgICAgICAgICIwLjIwNTY0NiwgMC4zMTA0ODcsIDAuMzkzMzI4LCAwLjQ5Njg4MSwgMC42MDA0NDMsIDAuNzAzOTU3LCAwLjgwNzQzOCIsIFwKLSAgICAgICAgICAiMC4yMTUxMjIsIDAuMzE5OTU5LCAwLjQwMjgwNywgMC41MDYzNTgsIDAuNjA5OTEzLCAwLjcxMzQzNiwgMC44MTY5MDUiLCBcCi0gICAgICAgICAgIjAuMjI5MDM0LCAwLjMzMzg3NCwgMC40MTY3NDIsIDAuNTIwMjY4LCAwLjYyMzgxNSwgMC43MjczNDQsIDAuODMwODI1IiwgXAotICAgICAgICAgICIwLjIzOTY3MSwgMC4zNDQ1MjIsIDAuNDI3MzU0LCAwLjUzMDkyOCwgMC42MzQ0OTcsIDAuNzM3OTg0LCAwLjg0MTQ3OCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTQ2NzUsIDAuMjU4MzA0LCAwLjQyNTMzNSwgMC42MzQ1MzksIDAuODQ1MTM2LCAxLjA1NTM4LCAxLjI2NTM3IiwgXAotICAgICAgICAgICIwLjA1NDY2OSwgMC4yNTgyMDcsIDAuNDI1NzcyLCAwLjYzNTU5MSwgMC44NDQxNDcsIDEuMDU1NTMsIDEuMjY1MzMiLCBcCi0gICAgICAgICAgIjAuMDU0NjY2LCAwLjI1ODE4OSwgMC40MjU4NzIsIDAuNjM1NjcyLCAwLjg0Mzg2MiwgMS4wNTUsIDEuMjY1MzQiLCBcCi0gICAgICAgICAgIjAuMDU0NjQ4LCAwLjI1ODIxMiwgMC40MjUyNjIsIDAuNjM1NjQ5LCAwLjg0NTY4NCwgMS4wNTU1NiwgMS4yNjUzNCIsIFwKLSAgICAgICAgICAiMC4wNTQ2NjQsIDAuMjU4MTc5LCAwLjQyNTg2LCAwLjYzNTY3MywgMC44NDU2NzIsIDEuMDU0MDMsIDEuMjY1MzUiLCBcCi0gICAgICAgICAgIjAuMDU0NjgzLCAwLjI1Nzc4LCAwLjQyNTk1MywgMC42MzU2NDMsIDAuODQ1NjM0LCAxLjA1NTU3LCAxLjI2NTMyIiwgXAotICAgICAgICAgICIwLjA1NDY1LCAwLjI1NzczNCwgMC40MjU4MzksIDAuNjM1NDAxLCAwLjg0NDEzMSwgMS4wNTU1LCAxLjI2NTM3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiBmYWxsaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE4Njg0MywgMC4yOTQzMjIsIDAuMzc2NjA3LCAwLjQ3OTQ0NiwgMC41ODIyOTYsIDAuNjg1MTUxLCAwLjc4Nzg5NSIsIFwKLSAgICAgICAgICAiMC4xOTY0MzEsIDAuMzAzODk4LCAwLjM4NjIxMSwgMC40ODkwMzUsIDAuNTkxODkxLCAwLjY5NDY4NCwgMC43OTc0OTYiLCBcCi0gICAgICAgICAgIjAuMjA4NTE3LCAwLjMxNTk5NCwgMC4zOTgyNzYsIDAuNTAxMTE4LCAwLjYwMzk2NSwgMC43MDY4MjYsIDAuODA5NTY5IiwgXAotICAgICAgICAgICIwLjIxOTg2LCAwLjMyNzMzNiwgMC40MDk2MTgsIDAuNTEyNDYxLCAwLjYxNTMwOSwgMC43MTgxNywgMC44MjA5MTIiLCBcCi0gICAgICAgICAgIjAuMjI5NzMxLCAwLjMzNzIwMiwgMC40MTk0ODcsIDAuNTIyMzI2LCAwLjYyNTE3NCwgMC43MjgwMzUsIDAuODMwNzc2IiwgXAotICAgICAgICAgICIwLjI0MzgzMSwgMC4zNTEzMjYsIDAuNDMzNjQsIDAuNTM2NDU4LCAwLjYzOTI3MywgMC43NDIwNzMsIDAuODQ0OTQ1IiwgXAotICAgICAgICAgICIwLjI1NjQ1NSwgMC4zNjM5MzgsIDAuNDQ2MjUxLCAwLjU0OTA3LCAwLjY1MTkyLCAwLjc1NDc3MSwgMC44NTc1MzkiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY0NjY4LCAwLjI2NzIxOCwgMC40MzY0MDIsIDAuNjQ5MjEzLCAwLjg2MTcxOCwgMS4wNzY2NCwgMS4yOTA0IiwgXAotICAgICAgICAgICIwLjA2NDY5OCwgMC4yNjczMzEsIDAuNDM2NDAyLCAwLjY0OTI3OCwgMC44NjI4NDcsIDEuMDc2NjEsIDEuMjkwNDgiLCBcCi0gICAgICAgICAgIjAuMDY0NjMzLCAwLjI2NzIxOSwgMC40MzYzMjQsIDAuNjQ5MTg2LCAwLjg2MTc0LCAxLjA3NjY0LCAxLjI5MDM3IiwgXAotICAgICAgICAgICIwLjA2NDYzMiwgMC4yNjcxNSwgMC40MzYzMjQsIDAuNjQ5MTg2LCAwLjg2MTc0MSwgMS4wNzY2NCwgMS4yOTA0OSIsIFwKLSAgICAgICAgICAiMC4wNjQ2NDUsIDAuMjY3MjEsIDAuNDM2MzI1LCAwLjY0OTE4NiwgMC44NjE3NDEsIDEuMDc2NjQsIDEuMjkwNDgiLCBcCi0gICAgICAgICAgIjAuMDY0NjM1LCAwLjI2NzM2LCAwLjQzNjMzMywgMC42NDkxOTQsIDAuODYxNzE1LCAxLjA3NjYyLCAxLjI5MDQ4IiwgXAotICAgICAgICAgICIwLjA2NDY3NiwgMC4yNjcyMzIsIDAuNDM2Mzc3LCAwLjY0OTIwOSwgMC44NjA3NDUsIDEuMDc2NjIsIDEuMjkwNDEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiU04iOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGNsZWFyOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTY1NjgsIDAuMjAzOTU0LCAwLjI4NjI1MSwgMC4zODkwNzEsIDAuNDkyMDUxLCAwLjU5NDU2MSwgMC42OTc5OTQiLCBcCi0gICAgICAgICAgIjAuMTA1MTMsIDAuMjEyNTM5LCAwLjI5NDgyOSwgMC4zOTc2NSwgMC41MDA1MzcsIDAuNjAzMzQzLCAwLjcwNjU3OCIsIFwKLSAgICAgICAgICAiMC4xMTU3MjIsIDAuMjIzMTM1LCAwLjMwNTQyOSwgMC40MDgyNDgsIDAuNTExMjM2LCAwLjYxMzkzNywgMC43MTY2MTUiLCBcCi0gICAgICAgICAgIjAuMTI2MjYxLCAwLjIzMzY4MSwgMC4zMTU5OSwgMC40MTg4MDksIDAuNTIxNjI3LCAwLjYyNDc4MSwgMC43Mjc1MDEiLCBcCi0gICAgICAgICAgIjAuMTM2NTY0LCAwLjI0NDAxNywgMC4zMjYyODYsIDAuNDI5MTI1LCAwLjUzMjEzMSwgMC42MzQ4MjIsIDAuNzM3OTkyIiwgXAotICAgICAgICAgICIwLjE1MjE3NywgMC4yNTk4MDQsIDAuMzQyMTExLCAwLjQ0NDkzMywgMC41NDc3NTMsIDAuNjUwNzYsIDAuNzUzODUyIiwgXAotICAgICAgICAgICIwLjE2NDg1NSwgMC4yNzI3NDgsIDAuMzU1MDM2LCAwLjQ1Nzg3NSwgMC41NjA3NzcsIDAuNjYzNTkxLCAwLjc2NjgzIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2NDQ0NCwgMC4yNjcxODgsIDAuNDM2MzY4LCAwLjY0OTIxMywgMC44NjEwNDMsIDEuMDc2OTEsIDEuMjg4MzMiLCBcCi0gICAgICAgICAgIjAuMDY0Mzg4LCAwLjI2NzI5MywgMC40MzYzNjgsIDAuNjQ5Mzg5LCAwLjg2MzAzNiwgMS4wNzY4OCwgMS4yODg2NiIsIFwKLSAgICAgICAgICAiMC4wNjQzODMsIDAuMjY3MTczLCAwLjQzNjMzMSwgMC42NDkxODQsIDAuODYxMzg2LCAxLjA3NjksIDEuMjg4NjIiLCBcCi0gICAgICAgICAgIjAuMDY0NjIzLCAwLjI2NzI5OCwgMC40MzYzNDYsIDAuNjQ5NDA0LCAwLjg2Mjg0MSwgMS4wNzQ5OCwgMS4yODg2IiwgXAotICAgICAgICAgICIwLjA2NDc2OCwgMC4yNjczNTMsIDAuNDM2MTg3LCAwLjY0OTE3OCwgMC44NjEwMTksIDEuMDc2ODksIDEuMjg4NiIsIFwKLSAgICAgICAgICAiMC4wNjU3OTcsIDAuMjY3NTA5LCAwLjQzNjM4MSwgMC42NDkyOTcsIDAuODYyODQzLCAxLjA3NTYsIDEuMjg4NjYiLCBcCi0gICAgICAgICAgIjAuMDY2OTY2LCAwLjI2Nzg0NCwgMC40MzY0MDMsIDAuNjQ5MjU2LCAwLjg2MTMwNywgMS4wNzY3NywgMS4yODg3NiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjgxNywgMC4xNzMzNTcsIDAuMjU2MTI0LCAwLjM1OTYsIDAuNDYzMTI4LCAwLjU2NjYxMiwgMC42NzAxMTYiLCBcCi0gICAgICAgICAgIjAuMDc4MDcsIDAuMTgzMjY4LCAwLjI2NjAzOCwgMC4zNjk1MiwgMC40NzMwMTYsIDAuNTc2NTI5LCAwLjY4MDAyOSIsIFwKLSAgICAgICAgICAiMC4wOTA0OTEsIDAuMTk1NzE0LCAwLjI3ODQ4OSwgMC4zODE5NjYsIDAuNDg1NDc2LCAwLjU4ODk5LCAwLjY5MjQ5NyIsIFwKLSAgICAgICAgICAiMC4xMDI2NDIsIDAuMjA3ODgzLCAwLjI5MDY2MywgMC4zOTQxNDMsIDAuNDk3Njk0LCAwLjYwMTE3NSwgMC43MDQ2NzciLCBcCi0gICAgICAgICAgIjAuMTEzODcxLCAwLjIxOTEzNiwgMC4zMDE5MTgsIDAuNDA1NDAyLCAwLjUwODkzNCwgMC42MTI0MjQsIDAuNzE1OTI4IiwgXAotICAgICAgICAgICIwLjEyOTQ5NCwgMC4yMzQ5NTgsIDAuMzE3NzMxLCAwLjQyMTIxNSwgMC41MjQ3NTEsIDAuNjI4MjcxLCAwLjczMTc0NCIsIFwKLSAgICAgICAgICAiMC4xNDE0MTgsIDAuMjQ3MTM3LCAwLjMyOTkwMywgMC40MzMzOTQsIDAuNTM2OTM3LCAwLjY0MDQzLCAwLjc0Mzk3MSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTQ2MzQsIDAuMjU4Mjk2LCAwLjQyNTM4NSwgMC42MzU3NDUsIDAuODQ1NDUsIDEuMDU0MTMsIDEuMjY0NDEiLCBcCi0gICAgICAgICAgIjAuMDU0NjQ1LCAwLjI1ODM1MiwgMC40MjU0MTYsIDAuNjM1Njc2LCAwLjg0NDQzNywgMS4wNTM3LCAxLjI2MzIzIiwgXAotICAgICAgICAgICIwLjA1NDY2LCAwLjI1ODMyNywgMC40MjUzNzEsIDAuNjM1NTI1LCAwLjg0NTQ0MywgMS4wNTQ4LCAxLjI2NDUyIiwgXAotICAgICAgICAgICIwLjA1NDk2MSwgMC4yNTgxMTMsIDAuNDI1NDQsIDAuNjM1NzcxLCAwLjg0NDUwOCwgMS4wNTU1NCwgMS4yNjQ1MyIsIFwKLSAgICAgICAgICAiMC4wNTU3NzcsIDAuMjU4NDc3LCAwLjQyNTM4NiwgMC42MzU3NjcsIDAuODQ1NzAzLCAxLjA1NDQzLCAxLjI2MzgzIiwgXAotICAgICAgICAgICIwLjA1NzU4MiwgMC4yNTkxMTIsIDAuNDI1NTIzLCAwLjYzNTQ2NSwgMC44NDUzMDQsIDEuMDU0MjUsIDEuMjYzNzUiLCBcCi0gICAgICAgICAgIjAuMDU5MjU1LCAwLjI1OTQ2MSwgMC40MjYxNzUsIDAuNjM1NDc1LCAwLjg0NTU4LCAxLjA1NTE0LCAxLjI2NTI4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0NzQsIDAuMDA0NzkzLCAwLjAwNDgsIDAuMDA0ODAzLCAwLjAwNDgwNywgMC4wMDQ4MDYsIDAuMDA0ODAzIiwgXAotICAgICAgICAgICIwLjAwNDczNSwgMC4wMDQ3ODgsIDAuMDA0Nzk0LCAwLjAwNDc5NywgMC4wMDQ3OTksIDAuMDA0OCwgMC4wMDQ4IiwgXAotICAgICAgICAgICIwLjAwNDczMSwgMC4wMDQ3ODIsIDAuMDA0Nzg5LCAwLjAwNDc5MiwgMC4wMDQ3OTQsIDAuMDA0Nzk1LCAwLjAwNDc5MyIsIFwKLSAgICAgICAgICAiMC4wMDQ3MjcsIDAuMDA0NzgsIDAuMDA0Nzg2LCAwLjAwNDc5LCAwLjAwNDc5MSwgMC4wMDQ3OTIsIDAuMDA0Nzk0IiwgXAotICAgICAgICAgICIwLjAwNDcyNSwgMC4wMDQ3NzgsIDAuMDA0Nzg1LCAwLjAwNDc4OSwgMC4wMDQ3OSwgMC4wMDQ3OTEsIDAuMDA0NzkyIiwgXAotICAgICAgICAgICIwLjAwNDcyMiwgMC4wMDQ3NzUsIDAuMDA0NzgxLCAwLjAwNDc4OCwgMC4wMDQ3ODYsIDAuMDA0Nzg4LCAwLjAwNDc5NCIsIFwKLSAgICAgICAgICAiMC4wMDQ3MjUsIDAuMDA0Nzc4LCAwLjAwNDc4NSwgMC4wMDQ3ODksIDAuMDA0NzksIDAuMDA0NzkxLCAwLjAwNDc5MiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDIxMiwgMC4wMDQyNzEsIDAuMDA0Mjc4LCAwLjAwNDI4NSwgMC4wMDQyOCwgMC4wMDQyODQsIDAuMDA0Mjg1IiwgXAotICAgICAgICAgICIwLjAwNDIwMywgMC4wMDQyNjIsIDAuMDA0MjY5LCAwLjAwNDI3MiwgMC4wMDQyNzUsIDAuMDA0Mjc1LCAwLjAwNDI3NiIsIFwKLSAgICAgICAgICAiMC4wMDQxOTQsIDAuMDA0MjU0LCAwLjAwNDI2MSwgMC4wMDQyNjQsIDAuMDA0MjY2LCAwLjAwNDI2OCwgMC4wMDQyNjYiLCBcCi0gICAgICAgICAgIjAuMDA0MTkxLCAwLjAwNDI0OSwgMC4wMDQyNTYsIDAuMDA0MjU5LCAwLjAwNDI2MSwgMC4wMDQyNjIsIDAuMDA0MjY1IiwgXAotICAgICAgICAgICIwLjAwNDE4MiwgMC4wMDQyNDMsIDAuMDA0MjUzLCAwLjAwNDI1MiwgMC4wMDQyNTYsIDAuMDA0MjYxLCAwLjAwNDI1OSIsIFwKLSAgICAgICAgICAiMC4wMDQxOCwgMC4wMDQyNDIsIDAuMDA0MjUsIDAuMDA0MjU0LCAwLjAwNDI1NiwgMC4wMDQyNTcsIDAuMDA0MjU4IiwgXAotICAgICAgICAgICIwLjAwNDE4NywgMC4wMDQyNDksIDAuMDA0MjU4LCAwLjAwNDI2MSwgMC4wMDQyNjMsIDAuMDA0MjY1LCAwLjAwNDI2NSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkdOIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDY3NjksIDAuMDA2ODE2LCAwLjAwNjgxOCwgMC4wMDY4MTgsIDAuMDA2ODE0LCAwLjAwNjgxNiwgMC4wMDY4MTIiLCBcCi0gICAgICAgICAgIjAuMDA2NzU0LCAwLjAwNjgwMiwgMC4wMDY4MDEsIDAuMDA2ODAyLCAwLjAwNjgsIDAuMDA2Nzk4LCAwLjAwNjc5NyIsIFwKLSAgICAgICAgICAiMC4wMDY3NTMsIDAuMDA2OCwgMC4wMDY4MDIsIDAuMDA2Nzk4LCAwLjAwNjc5NywgMC4wMDY3OTcsIDAuMDA2Nzk2IiwgXAotICAgICAgICAgICIwLjAwNjc1MiwgMC4wMDY4LCAwLjAwNjgwMSwgMC4wMDY4MDIsIDAuMDA2Nzk0LCAwLjAwNjgsIDAuMDA2Nzk1IiwgXAotICAgICAgICAgICIwLjAwNjc1NywgMC4wMDY4MDQsIDAuMDA2ODA1LCAwLjAwNjgwNCwgMC4wMDY4MDEsIDAuMDA2OCwgMC4wMDY3OTkiLCBcCi0gICAgICAgICAgIjAuMDA2NzY3LCAwLjAwNjgxNSwgMC4wMDY4MTYsIDAuMDA2ODE0LCAwLjAwNjgxMiwgMC4wMDY4MTEsIDAuMDA2ODA3IiwgXAotICAgICAgICAgICIwLjAwNjc3NiwgMC4wMDY4MjQsIDAuMDA2ODI3LCAwLjAwNjgyNywgMC4wMDY4MjIsIDAuMDA2ODIsIDAuMDA2ODE4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2MzcsIDAuMDA2NDI5LCAwLjAwNjQzNywgMC4wMDY0NCwgMC4wMDY0NDEsIDAuMDA2NDQzLCAwLjAwNjQ0MyIsIFwKLSAgICAgICAgICAiMC4wMDYzNTksIDAuMDA2NDE4LCAwLjAwNjQyNCwgMC4wMDY0MjgsIDAuMDA2NDMsIDAuMDA2NDMxLCAwLjAwNjQzMSIsIFwKLSAgICAgICAgICAiMC4wMDYzNTUsIDAuMDA2NDE0LCAwLjAwNjQyMSwgMC4wMDY0MjQsIDAuMDA2NDI3LCAwLjAwNjQyOSwgMC4wMDY0MjgiLCBcCi0gICAgICAgICAgIjAuMDA2MzU0LCAwLjAwNjQxNCwgMC4wMDY0MjEsIDAuMDA2NDIzLCAwLjAwNjQyNiwgMC4wMDY0MjcsIDAuMDA2NDI4IiwgXAotICAgICAgICAgICIwLjAwNjM1NywgMC4wMDY0MTcsIDAuMDA2NDIzLCAwLjAwNjQyNywgMC4wMDY0MjksIDAuMDA2NDMsIDAuMDA2NDMyIiwgXAotICAgICAgICAgICIwLjAwNjM2OSwgMC4wMDY0MjcsIDAuMDA2NDM3LCAwLjAwNjQzNywgMC4wMDY0NDEsIDAuMDA2NDQxLCAwLjAwNjQ0NSIsIFwKLSAgICAgICAgICAiMC4wMDYzNzMsIDAuMDA2NDMxLCAwLjAwNjQzOSwgMC4wMDY0NDIsIDAuMDA2NDQzLCAwLjAwNjQ0NSwgMC4wMDY0NDYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2Mjg0LCAwLjAwNjMzNCwgMC4wMDYzNCwgMC4wMDYzNDYsIDAuMDA2MzQ1LCAwLjAwNjM0NCwgMC4wMDYzNDciLCBcCi0gICAgICAgICAgIjAuMDA2MjcsIDAuMDA2MzIyLCAwLjAwNjMyOCwgMC4wMDYzMjksIDAuMDA2MzMzLCAwLjAwNjMzNCwgMC4wMDYzMzUiLCBcCi0gICAgICAgICAgIjAuMDA2MjY5LCAwLjAwNjMxOSwgMC4wMDYzMjUsIDAuMDA2MzMyLCAwLjAwNjMyOCwgMC4wMDYzMzIsIDAuMDA2MzMiLCBcCi0gICAgICAgICAgIjAuMDA2MjY2LCAwLjAwNjMxNywgMC4wMDYzMjMsIDAuMDA2MzI2LCAwLjAwNjMyOCwgMC4wMDYzMjYsIDAuMDA2MzI3IiwgXAotICAgICAgICAgICIwLjAwNjI2OCwgMC4wMDYzMTksIDAuMDA2MzI2LCAwLjAwNjMzMiwgMC4wMDYzMjgsIDAuMDA2MzMyLCAwLjAwNjMzMyIsIFwKLSAgICAgICAgICAiMC4wMDYyOCwgMC4wMDYzMzMsIDAuMDA2MzM5LCAwLjAwNjM0MiwgMC4wMDYzNDMsIDAuMDA2MzQ0LCAwLjAwNjM0NSIsIFwKLSAgICAgICAgICAiMC4wMDYyODUsIDAuMDA2MzM2LCAwLjAwNjM0MywgMC4wMDYzNDcsIDAuMDA2MzQ3LCAwLjAwNjM0NywgMC4wMDYzNTEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDUyNDgsIDAuMDA1MzA4LCAwLjAwNTMxNSwgMC4wMDUzMTgsIDAuMDA1MzIsIDAuMDA1MzIxLCAwLjAwNTMyMSIsIFwKLSAgICAgICAgICAiMC4wMDUyMzQsIDAuMDA1MjkzLCAwLjAwNTMsIDAuMDA1MzA0LCAwLjAwNTMwNSwgMC4wMDUzMDYsIDAuMDA1MzA3IiwgXAotICAgICAgICAgICIwLjAwNTIzLCAwLjAwNTI4OSwgMC4wMDUyOTUsIDAuMDA1Mjk5LCAwLjAwNTMsIDAuMDA1MzAyLCAwLjAwNTMwMiIsIFwKLSAgICAgICAgICAiMC4wMDUyMjksIDAuMDA1Mjg4LCAwLjAwNTI5NSwgMC4wMDUyOTgsIDAuMDA1MywgMC4wMDUzMDEsIDAuMDA1MzAyIiwgXAotICAgICAgICAgICIwLjAwNTIyNiwgMC4wMDUyODUsIDAuMDA1MjkyLCAwLjAwNTI5NSwgMC4wMDUyOTYsIDAuMDA1Mjk4LCAwLjAwNTI5OCIsIFwKLSAgICAgICAgICAiMC4wMDUyMjksIDAuMDA1Mjg4LCAwLjAwNTI5NCwgMC4wMDUyOTgsIDAuMDA1Mjk5LCAwLjAwNTMsIDAuMDA1MzAxIiwgXAotICAgICAgICAgICIwLjAwNTIyNiwgMC4wMDUyODUsIDAuMDA1MjkyLCAwLjAwNTI5NiwgMC4wMDUyOTgsIDAuMDA1Mjk5LCAwLjAwNTI5OSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDMzODEsIDAuMDAzNDI1LCAwLjAwMzQzLCAwLjAwMzQzMywgMC4wMDM0MzYsIDAuMDAzNDM1LCAwLjAwMzQzNSIsIFwKLSAgICAgICAgICAiMC4wMDMzNTksIDAuMDAzNDA4LCAwLjAwMzQxMywgMC4wMDM0MTYsIDAuMDAzNDE3LCAwLjAwMzQxOCwgMC4wMDM0MTgiLCBcCi0gICAgICAgICAgIjAuMDAzMzQ3LCAwLjAwMzM5NywgMC4wMDM0MDMsIDAuMDAzNDA2LCAwLjAwMzQwNywgMC4wMDM0MDgsIDAuMDAzNDA4IiwgXAotICAgICAgICAgICIwLjAwMzM0OSwgMC4wMDMzOTgsIDAuMDAzNDA2LCAwLjAwMzQwOCwgMC4wMDM0MDksIDAuMDAzNDEsIDAuMDAzNDExIiwgXAotICAgICAgICAgICIwLjAwMzM1NCwgMC4wMDM0MDIsIDAuMDAzNDA5LCAwLjAwMzQxNCwgMC4wMDM0MTQsIDAuMDAzNDE4LCAwLjAwMzQxNiIsIFwKLSAgICAgICAgICAiMC4wMDMzNDQsIDAuMDAzMzk3LCAwLjAwMzQwNiwgMC4wMDM0MDcsIDAuMDAzNDEsIDAuMDAzNDExLCAwLjAwMzQxMSIsIFwKLSAgICAgICAgICAiMC4wMDMzNDgsIDAuMDAzNCwgMC4wMDM0MTEsIDAuMDAzNDE0LCAwLjAwMzQxNywgMC4wMDM0MTgsIDAuMDAzNDE5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0Njk4LCAwLjAwNDc0LCAwLjAwNDc0NiwgMC4wMDQ3NDcsIDAuMDA0NzQ5LCAwLjAwNDc0OSwgMC4wMDQ3NDkiLCBcCi0gICAgICAgICAgIjAuMDA0NjgsIDAuMDA0NzI1LCAwLjAwNDczMiwgMC4wMDQ3MzMsIDAuMDA0NzM3LCAwLjAwNDczMiwgMC4wMDQ3MzkiLCBcCi0gICAgICAgICAgIjAuMDA0NjYxLCAwLjAwNDcxMSwgMC4wMDQ3MTcsIDAuMDA0NzIxLCAwLjAwNDcyMiwgMC4wMDQ3MjQsIDAuMDA0NzIyIiwgXAotICAgICAgICAgICIwLjAwNDY0NSwgMC4wMDQ3LCAwLjAwNDcwNywgMC4wMDQ3MTEsIDAuMDA0NzEzLCAwLjAwNDcxNSwgMC4wMDQ3MTUiLCBcCi0gICAgICAgICAgIjAuMDA0NjQzLCAwLjAwNDcwMiwgMC4wMDQ3MSwgMC4wMDQ3MTUsIDAuMDA0NzE3LCAwLjAwNDcxOCwgMC4wMDQ3MTkiLCBcCi0gICAgICAgICAgIjAuMDA0NjQxLCAwLjAwNDY5OCwgMC4wMDQ3MDgsIDAuMDA0NzEzLCAwLjAwNDcxNiwgMC4wMDQ3MTgsIDAuMDA0NzE5IiwgXAotICAgICAgICAgICIwLjAwNDY0OSwgMC4wMDQ3MDYsIDAuMDA0NzE3LCAwLjAwNDcyMywgMC4wMDQ3MjYsIDAuMDA0NzI4LCAwLjAwNDcyOSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUk4pICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTAwMzU3OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTAwMzU3OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDk5MzU0OwotICAgIGNsb2NrIDogdHJ1ZTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDI2MTcsIDAuMDAyNTgsIDAuMDAyNTg1LCAwLjAwMjYwOCwgMC4wMDI2MzMsIDAuMDAyNjY5LCAwLjAwMjcwMyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDQ1OSwgMC4wMDA0NTQsIDAuMDAwNDU0LCAwLjAwMDQ1NCwgMC4wMDA0NTQsIDAuMDAwNDU0LCAwLjAwMDQ1NCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJHTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJEJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMV9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjA2MjUsIC0wLjA1MTI1LCAtMC4wNDUsIC0wLjAzMjUsIC0wLjAzMjUsIC0wLjAyMjUsIC0wLjAyIiwgXAotICAgICAgICAgICItMC4wNzM3NSwgLTAuMDYyNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzM3NSwgLTAuMDI1IiwgXAotICAgICAgICAgICItMC4wODYyNSwgLTAuMDc1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjA0LCAtMC4wMzc1IiwgXAotICAgICAgICAgICItMC4wOTI1LCAtMC4wODEyNSwgLTAuMDc1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDUyNSwgLTAuMDQzNzUiLCBcCi0gICAgICAgICAgIi0wLjEwNSwgLTAuMDkzNzUsIC0wLjA4MTI1LCAtMC4wNzUsIC0wLjA2ODc1LCAtMC4wNTg3NSwgLTAuMDU2MjUiLCBcCi0gICAgICAgICAgIi0wLjExNSwgLTAuMTEsIC0wLjA5NzUsIC0wLjA5MTI1LCAtMC4wODUsIC0wLjA3NSwgLTAuMDY2MjUiLCBcCi0gICAgICAgICAgIi0wLjEzLCAtMC4xMTg3NSwgLTAuMTA2MjUsIC0wLjEsIC0wLjA5Mzc1LCAtMC4wODM3NSwgLTAuMDgxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUk4iOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFEJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgZmFsbF9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMTU2MDA3LCAwLjE2NTIzNSwgMC4xNzU2MjksIDAuMTg1Mjk2LCAwLjE5NDUyOCwgMC4yMDgyMDQsIDAuMjE4Nzc2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkdOIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJEJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMV9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4MTI1LCAwLjA3LCAwLjA1NzUsIDAuMDUxMjUsIDAuMDQ1LCAwLjAzNSwgMC4wMzI1IiwgXAotICAgICAgICAgICIwLjA5MjUsIDAuMDgxMjUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNDYyNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4wOTg3NSwgMC4wODc1LCAwLjA4MTI1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDU4NzUsIDAuMDUiLCBcCi0gICAgICAgICAgIjAuMTExMjUsIDAuMSwgMC4wODc1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNjUsIDAuMDYyNSIsIFwKLSAgICAgICAgICAiMC4xMTc1LCAwLjExMjUsIDAuMSwgMC4wODc1LCAwLjA4MTI1LCAwLjA3NzUsIDAuMDY4NzUiLCBcCi0gICAgICAgICAgIjAuMTMzNzUsIDAuMTIyNSwgMC4xMSwgMC4xMDM3NSwgMC4wOTc1LCAwLjA4NzUsIDAuMDg1IiwgXAotICAgICAgICAgICIwLjE0MjUsIDAuMTMxMjUsIDAuMTI1LCAwLjExMjUsIDAuMTA2MjUsIDAuMDk2MjUsIDAuMDkzNzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFNOKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA3NTA3MzE7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNzUwNzMxOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDc0OTQzNDsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAzMjYsIDAuMDAwMzI2LCAwLjAwMDMyNiwgMC4wMDAzMjYsIDAuMDAwMzI2LCAwLjAwMDMyNiwgMC4wMDAzMjYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAzMzYsIDAuMDAwMzI4LCAwLjAwMDMyNywgMC4wMDAzMjcsIDAuMDAwMzI3LCAwLjAwMDMyNywgMC4wMDAzMjciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiU04iOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFEIjsKLSAgICAgIHNkZl9jb25kIDogIkQgPT0gMSdiMCI7Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wOTYzODEsIDAuMTA2MTM3LCAwLjExODE4NywgMC4xMjk4NzgsIDAuMTQwNjE0LCAwLjE1NTU3LCAwLjE2NzAzOSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJHTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJlY292ZXJ5X3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUQmUk4iOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1JOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQocmVjb3ZlcnlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAwNjI1LCAtMC4wMTc1LCAtMC4wMywgLTAuMDQyNSwgLTAuMDQ4NzUsIC0wLjA1ODc1LCAtMC4wNjc1IiwgXAotICAgICAgICAgICItMC4wMDEyNSwgLTAuMDEyNSwgLTAuMDI1LCAtMC4wMzEyNSwgLTAuMDM3NSwgLTAuMDUzNzUsIC0wLjA2MjUiLCBcCi0gICAgICAgICAgIjAuMDExMjUsIDAsIC0wLjAxMjUsIC0wLjAyNSwgLTAuMDMxMjUsIC0wLjA0MTI1LCAtMC4wNSIsIFwKLSAgICAgICAgICAiMC4wMTc1LCAwLjAwNjI1LCAtMC4wMDYyNSwgLTAuMDEyNSwgLTAuMDI1LCAtMC4wMzUsIC0wLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjAyMzc1LCAwLjAxODc1LCAwLjAwNjI1LCAtMC4wMDYyNSwgLTAuMDEyNSwgLTAuMDI4NzUsIC0wLjAzNzUiLCBcCi0gICAgICAgICAgIjAuMDQsIDAuMDI4NzUsIDAuMDE2MjUsIDAuMDAzNzUsIC0wLjAwMjUsIC0wLjAxMjUsIC0wLjAyMTI1IiwgXAotICAgICAgICAgICIwLjA0MjUsIDAuMDM3NSwgMC4wMjUsIDAuMDEyNSwgMC4wMDYyNSwgLTAuMDAzNzUsIC0wLjAxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUk4iOwotICAgICAgdGltaW5nX3R5cGUgOiByZWNvdmVyeV9yaXNpbmc7Ci0gICAgICB3aGVuIDogIkdOIjsKLSAgICAgIHNkZl9jb25kIDogIkdOID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHJlY292ZXJ5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMjUsIDAuMDA3NSwgMC4wMDEyNSwgLTAuMDA1LCAtMC4wMDUsIC0wLjAwODc1LCAtMC4wMTEyNSIsIFwKLSAgICAgICAgICAiMC4wMjM3NSwgMC4wMTg3NSwgMC4wMTI1LCAwLjAwNjI1LCAwLCAtMC4wMDM3NSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMDMsIDAuMDI1LCAwLjAxODc1LCAwLjAxMjUsIDAuMDEyNSwgMC4wMDg3NSwgMCIsIFwKLSAgICAgICAgICAiMC4wNDI1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMTg3NSwgMC4wMTg3NSwgMC4wMTUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4wNDg3NSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMjUsIDAuMDIxMjUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4wNTI1LCAwLjA0NzUsIDAuMDQxMjUsIDAuMDM1LCAwLjAzNSwgMC4wMjUsIDAuMDIyNSIsIFwKLSAgICAgICAgICAiMC4wNjEyNSwgMC4wNTYyNSwgMC4wNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzMzc1LCAwLjAzMTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkdOIjsKLSAgICAgIHRpbWluZ190eXBlIDogcmVtb3ZhbF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEJlJOIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9STl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHJlbW92YWxfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM3NSwgMC4wNDg3NSwgMC4wNjEyNSwgMC4wNjc1LCAwLjA4LCAwLjA5LCAwLjA5ODc1IiwgXAotICAgICAgICAgICIwLjAzMjUsIDAuMDM3NSwgMC4wNSwgMC4wNjI1LCAwLjA2ODc1LCAwLjA3ODc1LCAwLjA4NzUiLCBcCi0gICAgICAgICAgIjAuMDIsIDAuMDMxMjUsIDAuMDQzNzUsIDAuMDUsIDAuMDYyNSwgMC4wNzI1LCAwLjA4MTI1IiwgXAotICAgICAgICAgICIwLjAxMzc1LCAwLjAyNSwgMC4wMzc1LCAwLjA0Mzc1LCAwLjA1NjI1LCAwLjA2NjI1LCAwLjA3NSIsIFwKLSAgICAgICAgICAiMC4wMDc1LCAwLjAxODc1LCAwLjAyNSwgMC4wMzc1LCAwLjA0Mzc1LCAwLjA2LCAwLjA2ODc1IiwgXAotICAgICAgICAgICItMC4wMDI1LCAwLjAwODc1LCAwLjAxNSwgMC4wMjc1LCAwLjAzMzc1LCAwLjA1LCAwLjA1ODc1IiwgXAotICAgICAgICAgICItMC4wMTEyNSwgMCwgMC4wMTI1LCAwLjAxODc1LCAwLjAzMTI1LCAwLjA0MTI1LCAwLjA1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIHRpbWluZ190eXBlIDogcmVtb3ZhbF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIkdOIjsKLSAgICAgIHNkZl9jb25kIDogIkdOID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHJlbW92YWxfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2MjUsIDAuMDE3NSwgMC4wMjM3NSwgMC4wMywgMC4wNDI1LCAwLjA0NjI1LCAwLjA1NSIsIFwKLSAgICAgICAgICAiMC4wMDEyNSwgMC4wMDYyNSwgMC4wMTg3NSwgMC4wMjUsIDAuMDMxMjUsIDAuMDQxMjUsIDAuMDUiLCBcCi0gICAgICAgICAgIi0wLjAwNSwgMCwgMC4wMDYyNSwgMC4wMTg3NSwgMC4wMjUsIDAuMDM1LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjAxNzUsIC0wLjAwNjI1LCAwLCAwLjAwNjI1LCAwLjAxMjUsIDAuMDIyNSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLCAwLjAwNjI1LCAwLjAxNjI1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDI3NSwgLTAuMDIyNSwgLTAuMDE2MjUsIC0wLjAxLCAwLjAwMjUsIDAuMDA2MjUsIDAuMDE1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDMxMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMC4wMDM3NSwgMC4wMDYyNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogVExBVE5UU0NBWDEyICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoVExBVE5UU0NBWDEyKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuOTA5MjY3OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIGNsb2NrX2dhdGluZ19pbnRlZ3JhdGVkX2NlbGwgOiAibGF0Y2hfcG9zZWRnZV9wcmVjb250cm9sIjsKLSAgc3RhdGV0YWJsZSgiIENLICBFIFNFICIsICIgRUlOVCAiKSB7Ci0gICAgIHRhYmxlIDogIiAgTCAgTCAgTCA6IC0gOiBMICwgXAotICAgICAgICAgICAgICAgIEwgIEggIEwgOiAtIDogSCAsIFwKLSAgICAgICAgICAgICAgICBMICBMICBIIDogLSA6IEggLCBcCi0gICAgICAgICAgICAgICAgTCAgSCAgSCA6IC0gOiBIICwgXAotICAgICAgICAgICAgICAgIEggIC0gIC0gOiAtIDogTiAiOwotICB9Ci0gIHBpbihFSU5UKSB7Ci0gICAgZGlyZWN0aW9uIDogaW50ZXJuYWw7Ci0gICAgaW50ZXJuYWxfbm9kZSA6ICJFSU5UIjsKLSAgfQotICBwaW4oQ0spICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY2MzIxOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDY2MzAyODsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2NjMyMTsKLSAgICBjbG9ja19nYXRlX2Nsb2NrX3BpbiA6IHRydWU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA0MzMxLCAwLjAwNDI5OSwgMC4wMDQyOTUsIDAuMDA0MjkzLCAwLjAwNDI5OSwgMC4wMDQzMTksIDAuMDA0MzQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDQyMTcsIDAuMDA0MTkzLCAwLjAwNDE4MiwgMC4wMDQxODEsIDAuMDA0MTkxLCAwLjAwNDIxNCwgMC4wMDQyMzQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFFJiFTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJFX0VRXzBfQU5fU0VfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjEyMTczLCAwLjEzMTU0MSwgMC4xNDMzOTUsIDAuMTUzNDExLCAwLjE2MjIzNywgMC4xNzQxMTEsIDAuMTgzMjUyIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihFKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA3MDUxMzM7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNzA0NzYyOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDcwNTEzMzsKLSAgICBjbG9ja19nYXRlX2VuYWJsZV9waW4gOiB0cnVlOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNDQ3OCwgMC4wMDQ0NiwgMC4wMDQ0NSwgMC4wMDQ0MzksIDAuMDA0NDQzLCAwLjAwNDQ1MywgMC4wMDQ0NzMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDU1ODYsIDAuMDA1NTcsIDAuMDA1NTY1LCAwLjAwNTU2NSwgMC4wMDU1NzUsIDAuMDA1NTkxLCAwLjAwNTYxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJTRSA9PSAxJ2IwIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMzc1LCAtMC4wMzI1LCAtMC4wMjYyNSwgLTAuMDIsIC0wLjAxMzc1LCAtMC4wMSwgLTAuMDAxMjUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wNDM3NSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDI1LCAtMC4wMTUsIC0wLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjA2MTI1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzNzUsIC0wLjAyNzUsIC0wLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDczNzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDUsIC0wLjA0LCAtMC4wMzc1IiwgXAotICAgICAgICAgICItMC4wODYyNSwgLTAuMDc1LCAtMC4wNjg3NSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA1MjUsIC0wLjA1IiwgXAotICAgICAgICAgICItMC4xMDI1LCAtMC4wOTEyNSwgLTAuMDg1LCAtMC4wNzg3NSwgLTAuMDcyNSwgLTAuMDY4NzUsIC0wLjA2IiwgXAotICAgICAgICAgICItMC4xMTEyNSwgLTAuMTA2MjUsIC0wLjEsIC0wLjA5Mzc1LCAtMC4wODc1LCAtMC4wNzc1LCAtMC4wNzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMzc1LCAtMC4wMzI1LCAtMC4wMiwgLTAuMDA3NSwgLTAuMDAxMjUsIDAuMDE1LCAwLjAyMzc1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDM3NSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAuMDAzNzUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDYxMjUsIC0wLjA1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMDg3NSwgMCIsIFwKLSAgICAgICAgICAiLTAuMDczNzUsIC0wLjA2MjUsIC0wLjA1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDE1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDgsIC0wLjA3NSwgLTAuMDYyNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wMjc1LCAtMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDk2MjUsIC0wLjA5MTI1LCAtMC4wNzg3NSwgLTAuMDY2MjUsIC0wLjA2LCAtMC4wNDM3NSwgLTAuMDM1IiwgXAotICAgICAgICAgICItMC4xMTEyNSwgLTAuMSwgLTAuMDg3NSwgLTAuMDgxMjUsIC0wLjA2ODc1LCAtMC4wNTg3NSwgLTAuMDUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJTRSA9PSAxJ2IwIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDM3NSwgMC4wMzg3NSwgMC4wMzI1LCAwLjAyNjI1LCAwLjAyLCAwLjAxNjI1LCAwLjAwNzUiLCBcCi0gICAgICAgICAgIjAuMDU1LCAwLjA1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDMxMjUsIDAuMDIxMjUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMDY3NSwgMC4wNTYyNSwgMC4wNSwgMC4wNDM3NSwgMC4wNDM3NSwgMC4wMzM3NSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4wOCwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1NjI1LCAwLjA0NjI1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjA5MjUsIDAuMDgxMjUsIDAuMDc1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDU4NzUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIjAuMTA4NzUsIDAuMDk3NSwgMC4wOTEyNSwgMC4wODUsIDAuMDc4NzUsIDAuMDc1LCAwLjA2NjI1IiwgXAotICAgICAgICAgICIwLjExNzUsIDAuMTEyNSwgMC4xMDYyNSwgMC4xLCAwLjA5Mzc1LCAwLjA4Mzc1LCAwLjA4MTI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQzNzUsIDAuMDM4NzUsIDAuMDI2MjUsIDAuMDEzNzUsIDAuMDA3NSwgLTAuMDA4NzUsIC0wLjAxNzUiLCBcCi0gICAgICAgICAgIjAuMDU1LCAwLjA0Mzc1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMTI1LCAwLjAwMjUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDU2MjUsIDAuMDQzNzUsIDAuMDMxMjUsIDAuMDI1LCAwLjAxNSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiMC4wOCwgMC4wNjg3NSwgMC4wNTYyNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAyMTI1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMDg2MjUsIDAuMDgxMjUsIDAuMDY4NzUsIDAuMDU2MjUsIDAuMDUsIDAuMDMzNzUsIDAuMDI1IiwgXAotICAgICAgICAgICIwLjEwMjUsIDAuMDk3NSwgMC4wODUsIDAuMDcyNSwgMC4wNjYyNSwgMC4wNSwgMC4wNDEyNSIsIFwKLSAgICAgICAgICAiMC4xMTc1LCAwLjEwNjI1LCAwLjA5Mzc1LCAwLjA4NzUsIDAuMDc1LCAwLjA2NSwgMC4wNTYyNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRUNLKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDMuMTUyNzg7Ci0gICAgY2xvY2tfZ2F0ZV9vdXRfcGluIDogdHJ1ZTsKLSAgICBzdGF0ZV9mdW5jdGlvbiA6ICIoQ0sgRUlOVCkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMjEzOSwgMC4xMjQ5OCwgMC4xNDA4NTcsIDAuMTUyNjQ1LCAwLjE2NzMwMywgMC4xOTUzNjYsIDAuMjEyNjY3IiwgXAotICAgICAgICAgICIwLjEzMTY1NCwgMC4xMzUxOTgsIDAuMTUxMTIzLCAwLjE2MjkwOCwgMC4xNzc1NywgMC4yMDU2MjUsIDAuMjIyOTI3IiwgXAotICAgICAgICAgICIwLjE0NDA4LCAwLjE0NzY1MiwgMC4xNjM2MTcsIDAuMTc1MzIxLCAwLjE4OTk5MSwgMC4yMTgwOTYsIDAuMjM1MzgxIiwgXAotICAgICAgICAgICIwLjE1NDg3NywgMC4xNTg0NjEsIDAuMTc0MzQyLCAwLjE4NjE0NSwgMC4yMDA3OTIsIDAuMjI4OTA2LCAwLjI0NjE5OSIsIFwKLSAgICAgICAgICAiMC4xNjQyNTEsIDAuMTY3Nzk5LCAwLjE4MzcxMywgMC4xOTU1MDcsIDAuMjEwMTI4LCAwLjIzODIyMywgMC4yNTU1MDgiLCBcCi0gICAgICAgICAgIjAuMTc3NjAxLCAwLjE4MTE3LCAwLjE5NzA1MywgMC4yMDg4MzYsIDAuMjIzNTEzLCAwLjI1MTYyLCAwLjI2ODkwNiIsIFwKLSAgICAgICAgICAiMC4xODc2NjUsIDAuMTkxMjE0LCAwLjIwNzA0MiwgMC4yMTg4MTQsIDAuMjMzNDIsIDAuMjYxNDU1LCAwLjI3ODc1NyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjU4OTQsIDAuMDMwMzU3LCAwLjA1MzE1NSwgMC4wNzMwNDcsIDAuMDk5ODExLCAwLjE1NDQ1NCwgMC4xODg5OTQiLCBcCi0gICAgICAgICAgIjAuMDI1ODU3LCAwLjAzMDMwOCwgMC4wNTMxNjEsIDAuMDczMDQ5LCAwLjA5OTc5NiwgMC4xNTQ0MzcsIDAuMTg4OTg2IiwgXAotICAgICAgICAgICIwLjAyNTk2NywgMC4wMzAyOTIsIDAuMDUzMTY4LCAwLjA3MzAwNCwgMC4wOTk4MTQsIDAuMTU0NDEzLCAwLjE4ODk0OSIsIFwKLSAgICAgICAgICAiMC4wMjU5NjIsIDAuMDMwMjg5LCAwLjA1MzE1MywgMC4wNzI5OTUsIDAuMDk5ODIzLCAwLjE1NDMxOSwgMC4xODkwMDQiLCBcCi0gICAgICAgICAgIjAuMDI1ODIyLCAwLjAzMDMwOSwgMC4wNTMxNjMsIDAuMDczMDQxLCAwLjA5OTgxMiwgMC4xNTQ0MzEsIDAuMTg4OTU0IiwgXAotICAgICAgICAgICIwLjAyNTg0NSwgMC4wMzAxNzMsIDAuMDUzMDk5LCAwLjA3Mjk4MywgMC4wOTk4MDQsIDAuMTU0NDE3LCAwLjE4OTAyOCIsIFwKLSAgICAgICAgICAiMC4wMjU5MTIsIDAuMDMwMjg3LCAwLjA1MzMyMiwgMC4wNzMxNDgsIDAuMDk5OTE1LCAwLjE1NDQ3LCAwLjE4OTAyNiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDYwNTgsIDAuMTA5MDc4LCAwLjEyMzM1NSwgMC4xMzQ1NjgsIDAuMTQ5MDY1LCAwLjE3NzY0LCAwLjE5NTQ3NyIsIFwKLSAgICAgICAgICAiMC4xMTU5MDMsIDAuMTE4ODcxLCAwLjEzMzE1MiwgMC4xNDQzNjYsIDAuMTU4ODY1LCAwLjE4NzQ0NSwgMC4yMDUyOCIsIFwKLSAgICAgICAgICAiMC4xMjc2ODEsIDAuMTMwNzIsIDAuMTQ0OTQ2LCAwLjE1NjE4OCwgMC4xNzA2NjIsIDAuMTk5MjY1LCAwLjIxNzA5IiwgXAotICAgICAgICAgICIwLjEzNzU2NiwgMC4xNDA1OTYsIDAuMTU0ODcsIDAuMTY2MDg2LCAwLjE4MDU4NCwgMC4yMDkxNTgsIDAuMjI2OTg0IiwgXAotICAgICAgICAgICIwLjE0NjExMiwgMC4xNDkxMzcsIDAuMTYzNDE4LCAwLjE3NDY0MiwgMC4xODkxNDQsIDAuMjE3NzIsIDAuMjM1NTU4IiwgXAotICAgICAgICAgICIwLjE1ODA2MywgMC4xNjA5NzIsIDAuMTc1MTgxLCAwLjE4NjM5OCwgMC4yMDA4OTMsIDAuMjI5NjAzLCAwLjI0NzQ2NyIsIFwKLSAgICAgICAgICAiMC4xNjY5MzksIDAuMTY5OTA1LCAwLjE4NDE3MywgMC4xOTU0MTIsIDAuMjA5OTAzLCAwLjIzODQ5NSwgMC4yNTYzNDQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDIwNDk4LCAwLjAyNDU4NiwgMC4wNDcyNDIsIDAuMDY3NzU0LCAwLjA5NTU3NywgMC4xNTIxMTgsIDAuMTg3OTEyIiwgXAotICAgICAgICAgICIwLjAyMDQxNywgMC4wMjQ2MjksIDAuMDQ3MjU2LCAwLjA2Nzc2OSwgMC4wOTU1NjMsIDAuMTUyMDkzLCAwLjE4NzkyMSIsIFwKLSAgICAgICAgICAiMC4wMjA0NDcsIDAuMDI0NjA3LCAwLjA0NzI1NywgMC4wNjc3NjcsIDAuMDk1NTYsIDAuMTUyMSwgMC4xODc5MjUiLCBcCi0gICAgICAgICAgIjAuMDIwNDg0LCAwLjAyNDYwMSwgMC4wNDcyNTcsIDAuMDY3NzQ5LCAwLjA5NTYyMiwgMC4xNTIwOTIsIDAuMTg3OTM1IiwgXAotICAgICAgICAgICIwLjAyMDUxNSwgMC4wMjQ2MjIsIDAuMDQ3MjM5LCAwLjA2NzcyMiwgMC4wOTU1NDcsIDAuMTUyMjc0LCAwLjE4Nzg5NCIsIFwKLSAgICAgICAgICAiMC4wMjA1NjYsIDAuMDI0NjM1LCAwLjA0NzIwOSwgMC4wNjc3NDksIDAuMDk1NTgsIDAuMTUyMTYyLCAwLjE4NzkyNyIsIFwKLSAgICAgICAgICAiMC4wMjA0MTUsIDAuMDI0NjI1LCAwLjA0NzI1NiwgMC4wNjc3NzMsIDAuMDk1NTc0LCAwLjE1MjI3LCAwLjE4ODAxOCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTkxOTIsIDAuMDE5MjMxLCAwLjAxOTQ3LCAwLjAxOTYwNCwgMC4wMTk3MTcsIDAuMDE5ODQsIDAuMDE5ODgyIiwgXAotICAgICAgICAgICIwLjAxOTE2NCwgMC4wMTkxOTgsIDAuMDE5NDQsIDAuMDE5NTc0LCAwLjAxOTY4OSwgMC4wMTk4MTIsIDAuMDE5ODUyIiwgXAotICAgICAgICAgICIwLjAxOTEzNCwgMC4wMTkxODUsIDAuMDE5NDI2LCAwLjAxOTU1OSwgMC4wMTk2NzUsIDAuMDE5Nzk1LCAwLjAxOTgzOCIsIFwKLSAgICAgICAgICAiMC4wMTkxNCwgMC4wMTkxOTEsIDAuMDE5NDMsIDAuMDE5NTY1LCAwLjAxOTY3OCwgMC4wMTk4LCAwLjAxOTg0MyIsIFwKLSAgICAgICAgICAiMC4wMTkxNywgMC4wMTkyMDQsIDAuMDE5NDQ1LCAwLjAxOTU3OCwgMC4wMTk2OSwgMC4wMTk4MTIsIDAuMDE5ODYiLCBcCi0gICAgICAgICAgIjAuMDE5MTM5LCAwLjAxOTE4OSwgMC4wMTk0MzcsIDAuMDE5NTc1LCAwLjAxOTY5NSwgMC4wMTk4MTYsIDAuMDE5ODYxIiwgXAotICAgICAgICAgICIwLjAxOTE5MywgMC4wMTkyMzEsIDAuMDE5NDUyLCAwLjAxOTU5MywgMC4wMTk3MTEsIDAuMDE5ODM4LCAwLjAxOTg4NyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyMjk0NSwgMC4wMjMwMzksIDAuMDIzMzksIDAuMDIzNTUyLCAwLjAyMzY3NywgMC4wMjM4MDIsIDAuMDIzODQ1IiwgXAotICAgICAgICAgICIwLjAyMjkyOSwgMC4wMjMwMDcsIDAuMDIzMzYxLCAwLjAyMzUyNCwgMC4wMjM2NSwgMC4wMjM3NzUsIDAuMDIzODE4IiwgXAotICAgICAgICAgICIwLjAyMjkzNCwgMC4wMjMwMjgsIDAuMDIzMzcyLCAwLjAyMzUzNCwgMC4wMjM2NTksIDAuMDIzNzg0LCAwLjAyMzgyNyIsIFwKLSAgICAgICAgICAiMC4wMjI5MzYsIDAuMDIzMDI5LCAwLjAyMzM4LCAwLjAyMzU0MiwgMC4wMjM2NjcsIDAuMDIzNzkyLCAwLjAyMzgzNSIsIFwKLSAgICAgICAgICAiMC4wMjI5MywgMC4wMjMwMjYsIDAuMDIzMzgsIDAuMDIzNTQ0LCAwLjAyMzY3LCAwLjAyMzc5NiwgMC4wMjM4MzkiLCBcCi0gICAgICAgICAgIjAuMDIyOTc3LCAwLjAyMzA3NCwgMC4wMjM0MzEsIDAuMDIzNTk0LCAwLjAyMzcxOSwgMC4wMjM4NDUsIDAuMDIzODg4IiwgXAotICAgICAgICAgICIwLjAyMzAwNywgMC4wMjMwOTksIDAuMDIzNDQxLCAwLjAyMzYxOCwgMC4wMjM3NDUsIDAuMDIzODUzLCAwLjAyMzkxNCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oU0UpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDcyMzgwMzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA3MjE1Njg7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNzIzODAzOwotICAgIGNsb2NrX2dhdGVfdGVzdF9waW4gOiB0cnVlOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNDYzNCwgMC4wMDQ2MTcsIDAuMDA0NjExLCAwLjAwNDYwNCwgMC4wMDQ2MDksIDAuMDA0NjI4LCAwLjAwNDY0MyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNTc4MSwgMC4wMDU3NjksIDAuMDA1NzYsIDAuMDA1NzU4LCAwLjAwNTc1OCwgMC4wMDU3NjEsIDAuMDA1NzY4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFFIjsKLSAgICAgIHNkZl9jb25kIDogIkUgPT0gMSdiMCI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDQzNzUsIC0wLjAzMjUsIC0wLjAyNjI1LCAtMC4wMiwgLTAuMDEzNzUsIC0wLjAxLCAtMC4wMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMjEyNSwgLTAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDYxMjUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzMzc1LCAtMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjA3Mzc1LCAtMC4wNjg3NSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNDYyNSwgLTAuMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDg2MjUsIC0wLjA4MTI1LCAtMC4wNzUsIC0wLjA2ODc1LCAtMC4wNjI1LCAtMC4wNTI1LCAtMC4wNSIsIFwKLSAgICAgICAgICAiLTAuMTAyNSwgLTAuMDk3NSwgLTAuMDkxMjUsIC0wLjA4NSwgLTAuMDc4NzUsIC0wLjA2ODc1LCAtMC4wNjYyNSIsIFwKLSAgICAgICAgICAiLTAuMTE3NSwgLTAuMTA2MjUsIC0wLjEsIC0wLjA5Mzc1LCAtMC4wODc1LCAtMC4wODM3NSwgLTAuMDgxMjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wNDM3NSwgLTAuMDMyNSwgLTAuMDIsIC0wLjAwNzUsIC0wLjAwMTI1LCAwLjAwODc1LCAwLjAxNzUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wNDM3NSwgLTAuMDMxMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAwLjAwMzc1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjA2MTI1LCAtMC4wNSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAxODc1LCAtMC4wMDg3NSwgMCIsIFwKLSAgICAgICAgICAiLTAuMDY3NSwgLTAuMDYyNSwgLTAuMDUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMTUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wOCwgLTAuMDY4NzUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDM3NSwgLTAuMDI3NSwgLTAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjA5NjI1LCAtMC4wODUsIC0wLjA3MjUsIC0wLjA2LCAtMC4wNTM3NSwgLTAuMDM3NSwgLTAuMDI4NzUiLCBcCi0gICAgICAgICAgIi0wLjEwNSwgLTAuMDkzNzUsIC0wLjA4MTI1LCAtMC4wNjg3NSwgLTAuMDYyNSwgLTAuMDUyNSwgLTAuMDQzNzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFFIjsKLSAgICAgIHNkZl9jb25kIDogIkUgPT0gMSdiMCI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDUsIDAuMDM4NzUsIDAuMDMyNSwgMC4wMjYyNSwgMC4wMiwgMC4wMTYyNSwgMC4wMDc1IiwgXAotICAgICAgICAgICIwLjA1NSwgMC4wNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyNzUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMDY3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1LCAwLjA0Mzc1LCAwLjA0LCAwLjAzMTI1IiwgXAotICAgICAgICAgICIwLjA4LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1MjUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMDkyNSwgMC4wODc1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNTg3NSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiMC4xMDg3NSwgMC4xMDM3NSwgMC4wOTc1LCAwLjA5MTI1LCAwLjA4NSwgMC4wNzUsIDAuMDcyNSIsIFwKLSAgICAgICAgICAiMC4xMjM3NSwgMC4xMTI1LCAwLjEwNjI1LCAwLjEsIDAuMDkzNzUsIDAuMDksIDAuMDg3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1LCAwLjAzODc1LCAwLjAyNjI1LCAwLjAxMzc1LCAwLjAwNzUsIC0wLjAwMjUsIC0wLjAxMTI1IiwgXAotICAgICAgICAgICIwLjA1NSwgMC4wNSwgMC4wMzc1LCAwLjAyNSwgMC4wMTg3NSwgMC4wMDI1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiMC4wNjc1LCAwLjA1NjI1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDI1LCAwLjAxNSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiMC4wNzM3NSwgMC4wNjg3NSwgMC4wNTYyNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAyMTI1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMDg2MjUsIDAuMDc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDQzNzUsIDAuMDMzNzUsIDAuMDI1IiwgXAotICAgICAgICAgICIwLjEwMjUsIDAuMDkxMjUsIDAuMDc4NzUsIDAuMDY2MjUsIDAuMDYsIDAuMDQzNzUsIDAuMDM1IiwgXAotICAgICAgICAgICIwLjExMTI1LCAwLjEsIDAuMDg3NSwgMC4wNzUsIDAuMDY4NzUsIDAuMDU4NzUsIDAuMDUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogVExBVE5UU0NBWDIgKgotICogLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKFRMQVROVFNDQVgyKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMjc4MTY3OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIGNsb2NrX2dhdGluZ19pbnRlZ3JhdGVkX2NlbGwgOiAibGF0Y2hfcG9zZWRnZV9wcmVjb250cm9sIjsKLSAgc3RhdGV0YWJsZSgiIENLICBFIFNFICIsICIgRUlOVCAiKSB7Ci0gICAgIHRhYmxlIDogIiAgTCAgTCAgTCA6IC0gOiBMICwgXAotICAgICAgICAgICAgICAgIEwgIEggIEwgOiAtIDogSCAsIFwKLSAgICAgICAgICAgICAgICBMICBMICBIIDogLSA6IEggLCBcCi0gICAgICAgICAgICAgICAgTCAgSCAgSCA6IC0gOiBIICwgXAotICAgICAgICAgICAgICAgIEggIC0gIC0gOiAtIDogTiAiOwotICB9Ci0gIHBpbihFSU5UKSB7Ci0gICAgZGlyZWN0aW9uIDogaW50ZXJuYWw7Ci0gICAgaW50ZXJuYWxfbm9kZSA6ICJFSU5UIjsKLSAgfQotICBwaW4oQ0spICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY3MjY4OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDY3MjY4OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDY3MjU4NzsKLSAgICBjbG9ja19nYXRlX2Nsb2NrX3BpbiA6IHRydWU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyNzAyLCAwLjAwMjY3MSwgMC4wMDI2NTksIDAuMDAyNjYyLCAwLjAwMjY3MSwgMC4wMDI2OTIsIDAuMDAyNzExIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzMzI0LCAwLjAwMzMsIDAuMDAzMjg5LCAwLjAwMzI5MywgMC4wMDMzMDEsIDAuMDAzMzI2LCAwLjAwMzM0OCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUUmIVNFIjsKLSAgICAgIHNkZl9jb25kIDogIkVfRVFfMF9BTl9TRV9FUV8wID09IDEnYjEiOwotICAgICAgZmFsbF9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMTAyNjQ3LCAwLjExMjU2MSwgMC4xMjQ1MTUsIDAuMTM0ODA4LCAwLjE0MzY2MiwgMC4xNTYwMjcsIDAuMTY1MTM2Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihFKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2ODkwNTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2ODg5MTY7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjg5MDU7Ci0gICAgY2xvY2tfZ2F0ZV9lbmFibGVfcGluIDogdHJ1ZTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDI1MTQsIDAuMDAyNDk2LCAwLjAwMjQ5LCAwLjAwMjQ4LCAwLjAwMjQ4NSwgMC4wMDI0OTksIDAuMDAyNTEzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA0MjgyLCAwLjAwNDI2NSwgMC4wMDQyNTksIDAuMDA0MjYxLCAwLjAwNDI3MSwgMC4wMDQyOSwgMC4wMDQzMTIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIVNFIjsKLSAgICAgIHNkZl9jb25kIDogIlNFID09IDEnYjAiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAzMTI1LCAtMC4wMjYyNSwgLTAuMDIsIC0wLjAxMzc1LCAtMC4wMDc1LCAwLjAwMjUsIDAuMDA1IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTg3NSwgLTAuMDA4NzUsIDAiLCBcCi0gICAgICAgICAgIi0wLjA1NSwgLTAuMDUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMzEyNSwgLTAuMDIxMjUsIC0wLjAxODc1IiwgXAotICAgICAgICAgICItMC4wNjc1LCAtMC4wNjI1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjA0Mzc1LCAtMC4wMzM3NSwgLTAuMDI1IiwgXAotICAgICAgICAgICItMC4wOCwgLTAuMDY4NzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDQ2MjUsIC0wLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjA5NjI1LCAtMC4wODUsIC0wLjA3ODc1LCAtMC4wNzI1LCAtMC4wNjYyNSwgLTAuMDU2MjUsIC0wLjA1Mzc1IiwgXAotICAgICAgICAgICItMC4xMDUsIC0wLjEsIC0wLjA4NzUsIC0wLjA4MTI1LCAtMC4wODEyNSwgLTAuMDcxMjUsIC0wLjA2MjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMzc1LCAtMC4wMjYyNSwgLTAuMDEzNzUsIC0wLjAwNzUsIDAuMDA1LCAwLjAxNSwgMC4wMjM3NSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjAzNzUsIC0wLjAyNSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAuMDAzNzUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDYxMjUsIC0wLjA1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMDg3NSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDY3NSwgLTAuMDYyNSwgLTAuMDUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMTUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wOCwgLTAuMDY4NzUsIC0wLjA2MjUsIC0wLjA1LCAtMC4wMzc1LCAtMC4wMjc1LCAtMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDk2MjUsIC0wLjA4NSwgLTAuMDc4NzUsIC0wLjA2NjI1LCAtMC4wNTM3NSwgLTAuMDQzNzUsIC0wLjAzNSIsIFwKLSAgICAgICAgICAiLTAuMTExMjUsIC0wLjEsIC0wLjA4NzUsIC0wLjA3NSwgLTAuMDY4NzUsIC0wLjA1ODc1LCAtMC4wNDM3NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIVNFIjsKLSAgICAgIHNkZl9jb25kIDogIlNFID09IDEnYjAiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzNzUsIDAuMDMyNSwgMC4wMjYyNSwgMC4wMiwgMC4wMTM3NSwgMC4wMDM3NSwgMC4wMDEyNSIsIFwKLSAgICAgICAgICAiMC4wNDg3NSwgMC4wNDM3NSwgMC4wMzEyNSwgMC4wMjUsIDAuMDI1LCAwLjAxNSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiMC4wNjEyNSwgMC4wNTYyNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzNzUsIDAuMDI3NSwgMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMDczNzUsIDAuMDY4NzUsIDAuMDU2MjUsIDAuMDUsIDAuMDUsIDAuMDQsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMDg2MjUsIDAuMDc1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDUyNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4xMDI1LCAwLjA5MTI1LCAwLjA4NSwgMC4wNzg3NSwgMC4wNzI1LCAwLjA2MjUsIDAuMDYiLCBcCi0gICAgICAgICAgIjAuMTExMjUsIDAuMTA2MjUsIDAuMDkzNzUsIDAuMDg3NSwgMC4wODc1LCAwLjA3NzUsIDAuMDY4NzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDM3NSwgMC4wMzI1LCAwLjAyLCAwLjAxMzc1LCAwLjAwMTI1LCAtMC4wMDg3NSwgLTAuMDE3NSIsIFwKLSAgICAgICAgICAiMC4wNTUsIDAuMDQzNzUsIDAuMDMxMjUsIDAuMDE4NzUsIDAuMDEyNSwgMC4wMDI1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiMC4wNjc1LCAwLjA1NjI1LCAwLjA0Mzc1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMTUsIDAiLCBcCi0gICAgICAgICAgIjAuMDczNzUsIDAuMDY4NzUsIDAuMDU2MjUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMjEyNSwgMC4wMTI1IiwgXAotICAgICAgICAgICIwLjA4NjI1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNTYyNSwgMC4wNDM3NSwgMC4wMzM3NSwgMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMTAyNSwgMC4wOTEyNSwgMC4wODUsIDAuMDcyNSwgMC4wNiwgMC4wNSwgMC4wNDEyNSIsIFwKLSAgICAgICAgICAiMC4xMTc1LCAwLjEwNjI1LCAwLjA5Mzc1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNjUsIDAuMDUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEVDSykgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjUyMTQ1NjsKLSAgICBjbG9ja19nYXRlX291dF9waW4gOiB0cnVlOwotICAgIHN0YXRlX2Z1bmN0aW9uIDogIihDSyBFSU5UKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExODM2MSwgMC4yMjE3LCAwLjMwMzEsIDAuNDA0ODM2LCAwLjUwNjU4LCAwLjYwODI2NiwgMC43MDk5IiwgXAotICAgICAgICAgICIwLjEyODQ3NCwgMC4yMzE4MDgsIDAuMzEzMjA2LCAwLjQxNDk2NiwgMC41MTY2ODksIDAuNjE4MzkyLCAwLjcyMDExNCIsIFwKLSAgICAgICAgICAiMC4xNDEwODIsIDAuMjQ0NCwgMC4zMjU4MDQsIDAuNDI3NTQ0LCAwLjUyOTI2OCwgMC42MzA5OTMsIDAuNzMyNjQ0IiwgXAotICAgICAgICAgICIwLjE1MjE5OSwgMC4yNTU1NDIsIDAuMzM2OTM4LCAwLjQzODY3NiwgMC41NDA0MTEsIDAuNjQyMTA1LCAwLjc0Mzc1OSIsIFwKLSAgICAgICAgICAiMC4xNjE5MDUsIDAuMjY1MjQ3LCAwLjM0NjY1MiwgMC40NDgzOSwgMC41NTAwODEsIDAuNjUxODI0LCAwLjc1MzQ5NyIsIFwKLSAgICAgICAgICAiMC4xNzUwMzQsIDAuMjc4MzE1LCAwLjM1OTcxMSwgMC40NjE0NDUsIDAuNTYzMTgzLCAwLjY2NDg4NSwgMC43NjYzMDIiLCBcCi0gICAgICAgICAgIjAuMTg1MTczLCAwLjI4ODU1MywgMC4zNjk5NTIsIDAuNDcxNjgzLCAwLjU3MzQwOCwgMC42NzUxMjQsIDAuNzc2NzM1Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1NjI3NCwgMC4yNjA2MzQsIDAuNDI3MzQxLCAwLjYzNzc4LCAwLjg0NjIxNSwgMS4wNTc4LCAxLjI2Nzc0IiwgXAotICAgICAgICAgICIwLjA1NjI1NSwgMC4yNjA1NDksIDAuNDI3MzM0LCAwLjYzNjk4LCAwLjg0NjIxMiwgMS4wNTc4MSwgMS4yNjc5MyIsIFwKLSAgICAgICAgICAiMC4wNTYyMzcsIDAuMjYwNTczLCAwLjQyNzI4OSwgMC42Mzc3NzQsIDAuODQ2NTMzLCAxLjA1NzgxLCAxLjI2Nzc1IiwgXAotICAgICAgICAgICIwLjA1NjI2OCwgMC4yNjA1NTMsIDAuNDI3MzI2LCAwLjYzNzc3LCAwLjg0NjA1OSwgMS4wNTc3NiwgMS4yNjcwOCIsIFwKLSAgICAgICAgICAiMC4wNTYyMzQsIDAuMjYwNTYsIDAuNDI3MzkzLCAwLjYzNzc4NSwgMC44NDc3MDMsIDEuMDU3NzYsIDEuMjY3NzYiLCBcCi0gICAgICAgICAgIjAuMDU2MzM1LCAwLjI2MDYxOSwgMC40MjczMzgsIDAuNjM3NzU4LCAwLjg0NjIzMiwgMS4wNTc3NSwgMS4yNjYwNCIsIFwKLSAgICAgICAgICAiMC4wNTYyNTEsIDAuMjYwNjExLCAwLjQyNzM4MSwgMC42Mzc2NjgsIDAuODQ2NTQ0LCAxLjA1NzU3LCAxLjI2NzQ3Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwMjY0NywgMC4yMDYzOCwgMC4yODkxNDIsIDAuMzkyNjExLCAwLjQ5NjA4MywgMC41OTk3MjgsIDAuNzAzMzA0IiwgXAotICAgICAgICAgICIwLjExMjU2MSwgMC4yMTYyODksIDAuMjk5MDQ4LCAwLjQwMjUxNywgMC41MDU5ODksIDAuNjA5NTk1LCAwLjcxMzIwOSIsIFwKLSAgICAgICAgICAiMC4xMjQ1MTUsIDAuMjI4MjQ1LCAwLjMxMTAwNCwgMC40MTQ0NzQsIDAuNTE4MDI0LCAwLjYyMTQ4LCAwLjcyNTEzIiwgXAotICAgICAgICAgICIwLjEzNDgwOCwgMC4yMzg1MzgsIDAuMzIxMjk0LCAwLjQyNDc2NSwgMC41Mjg0MTUsIDAuNjMxNzE5LCAwLjczNTI3OCIsIFwKLSAgICAgICAgICAiMC4xNDM2NjIsIDAuMjQ3Mzg2LCAwLjMzMDE0NiwgMC40MzM2MjEsIDAuNTM3MjA5LCAwLjY0MDcwNSwgMC43NDQyODIiLCBcCi0gICAgICAgICAgIjAuMTU2MDI3LCAwLjI1OTc1MSwgMC4zNDI1NDUsIDAuNDQ2MTAxLCAwLjU0OTc1NiwgMC42NTMzMDQsIDAuNzU2NjUyIiwgXAotICAgICAgICAgICIwLjE2NTEzNiwgMC4yNjg4NzgsIDAuMzUxNzIyLCAwLjQ1NTI3MiwgMC41NTg4NzcsIDAuNjYyMjY1LCAwLjc2NTgxNCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTA4ODgsIDAuMjU4MTE5LCAwLjQyNjM1OSwgMC42MzY2NTYsIDAuODQ1NDI1LCAxLjA1NDg2LCAxLjI2MzI4IiwgXAotICAgICAgICAgICIwLjA1MDg4OCwgMC4yNTgxMTYsIDAuNDI2MzY3LCAwLjYzNjY1LCAwLjg0NTQ1MywgMS4wNTQzNiwgMS4yNjMzMiIsIFwKLSAgICAgICAgICAiMC4wNTA4OTksIDAuMjU4NjMyLCAwLjQyNTM2MiwgMC42MzY2MjEsIDAuODQ1NjgzLCAxLjA1NjA1LCAxLjI2NDQ2IiwgXAotICAgICAgICAgICIwLjA1MDg5NSwgMC4yNTgxNSwgMC40MjYyNCwgMC42MzU2NTQsIDAuODQ1MDc0LCAxLjA1NTg0LCAxLjI2MzkxIiwgXAotICAgICAgICAgICIwLjA1MDg1NSwgMC4yNTgxMjYsIDAuNDI2MTg4LCAwLjYzNTczNiwgMC44NDU2MTcsIDEuMDUzNjUsIDEuMjY0MjIiLCBcCi0gICAgICAgICAgIjAuMDUwOTExLCAwLjI1ODU1MywgMC40MjU5OTMsIDAuNjM1MzQ1LCAwLjg0NTIxNCwgMS4wNTY2LCAxLjI2NDIxIiwgXAotICAgICAgICAgICIwLjA1MDkyNywgMC4yNTg0NjEsIDAuNDI1NjQzLCAwLjYzNTgzNCwgMC44NDUxNDYsIDEuMDU1OTMsIDEuMjY0NjgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1MzMyLCAwLjAwNTM5NywgMC4wMDU0MDUsIDAuMDA1NDA5LCAwLjAwNTQxMiwgMC4wMDU0MTQsIDAuMDA1NDE0IiwgXAotICAgICAgICAgICIwLjAwNTMwMiwgMC4wMDUzNjcsIDAuMDA1Mzc3LCAwLjAwNTM4MSwgMC4wMDUzODIsIDAuMDA1Mzg0LCAwLjAwNTM4NCIsIFwKLSAgICAgICAgICAiMC4wMDUyOTIsIDAuMDA1MzU4LCAwLjAwNTM2NSwgMC4wMDUzNywgMC4wMDUzNzEsIDAuMDA1MzczLCAwLjAwNTM3NCIsIFwKLSAgICAgICAgICAiMC4wMDUzLCAwLjAwNTM2NSwgMC4wMDUzNzMsIDAuMDA1Mzc4LCAwLjAwNTM4LCAwLjAwNTM4LCAwLjAwNTM4MiIsIFwKLSAgICAgICAgICAiMC4wMDUzMTIsIDAuMDA1Mzc3LCAwLjAwNTM4NSwgMC4wMDUzODksIDAuMDA1MzkyLCAwLjAwNTM5NCwgMC4wMDUzOTQiLCBcCi0gICAgICAgICAgIjAuMDA1MzM2LCAwLjAwNTQwNCwgMC4wMDU0MTIsIDAuMDA1NDE3LCAwLjAwNTQxOCwgMC4wMDU0MiwgMC4wMDU0MjEiLCBcCi0gICAgICAgICAgIjAuMDA1MzU5LCAwLjAwNTQyNSwgMC4wMDU0MzMsIDAuMDA1NDM4LCAwLjAwNTQ0LCAwLjAwNTQ0MSwgMC4wMDU0NDMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDg2NTksIDAuMDA4NzE3LCAwLjAwODcyMywgMC4wMDg3MjYsIDAuMDA4NzI3LCAwLjAwODcyOCwgMC4wMDg3MjkiLCBcCi0gICAgICAgICAgIjAuMDA4NjMzLCAwLjAwODY5LCAwLjAwODY5NywgMC4wMDg3LCAwLjAwODcwMSwgMC4wMDg3MDIsIDAuMDA4NzAzIiwgXAotICAgICAgICAgICIwLjAwODY0MSwgMC4wMDg2OTksIDAuMDA4NzA1LCAwLjAwODcwOCwgMC4wMDg3MSwgMC4wMDg3MTEsIDAuMDA4NzExIiwgXAotICAgICAgICAgICIwLjAwODY1NSwgMC4wMDg3MTIsIDAuMDA4NzE4LCAwLjAwODcyMiwgMC4wMDg3MjMsIDAuMDA4NzI0LCAwLjAwODcyNSIsIFwKLSAgICAgICAgICAiMC4wMDg2NjEsIDAuMDA4NzIsIDAuMDA4NzI2LCAwLjAwODcyOSwgMC4wMDg3MzEsIDAuMDA4NzMyLCAwLjAwODczMyIsIFwKLSAgICAgICAgICAiMC4wMDg3MDksIDAuMDA4NzY4LCAwLjAwODc3NSwgMC4wMDg3NzgsIDAuMDA4Nzc5LCAwLjAwODc4LCAwLjAwODc4MSIsIFwKLSAgICAgICAgICAiMC4wMDg3MTYsIDAuMDA4Nzc1LCAwLjAwODc4MiwgMC4wMDg3ODYsIDAuMDA4Nzg3LCAwLjAwODc4OCwgMC4wMDg3ODkiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFNFKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA3MjIwNjM7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNzE5NzA1OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDcyMjA2MzsKLSAgICBjbG9ja19nYXRlX3Rlc3RfcGluIDogdHJ1ZTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDI2NzMsIDAuMDAyNjU2LCAwLjAwMjY1NywgMC4wMDI2NDcsIDAuMDAyNjU4LCAwLjAwMjY3NCwgMC4wMDI2ODQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDQ0NzYsIDAuMDA0NDYzLCAwLjAwNDQ1NiwgMC4wMDQ0NTMsIDAuMDA0NDU0LCAwLjAwNDQ1NywgMC4wMDQ0NjIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUUiOwotICAgICAgc2RmX2NvbmQgOiAiRSA9PSAxJ2IwIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMzc1LCAtMC4wMjYyNSwgLTAuMDIsIC0wLjAxMzc1LCAtMC4wMDc1LCAwLjAwMjUsIDAuMDA1IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDA4NzUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAyMTI1LCAtMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDY3NSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDMzNzUsIC0wLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wOCwgLTAuMDc1LCAtMC4wNjg3NSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA0NjI1LCAtMC4wNDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDk2MjUsIC0wLjA5MTI1LCAtMC4wNzg3NSwgLTAuMDcyNSwgLTAuMDcyNSwgLTAuMDYyNSwgLTAuMDYiLCBcCi0gICAgICAgICAgIi0wLjExMTI1LCAtMC4xLCAtMC4wOTM3NSwgLTAuMDg3NSwgLTAuMDgxMjUsIC0wLjA3NzUsIC0wLjA2ODc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDQzNzUsIC0wLjAzMjUsIC0wLjAyLCAtMC4wMDc1LCAtMC4wMDEyNSwgMC4wMDg3NSwgMC4wMjM3NSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjAzNzUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLjAwMzc1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjA2MTI1LCAtMC4wNSwgLTAuMDM3NSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDA4NzUsIDAiLCBcCi0gICAgICAgICAgIi0wLjA2NzUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDM3NSwgLTAuMDI1LCAtMC4wMTUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wOCwgLTAuMDY4NzUsIC0wLjA1NjI1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDI3NSwgLTAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjA5LCAtMC4wNzg3NSwgLTAuMDcyNSwgLTAuMDYsIC0wLjA1Mzc1LCAtMC4wMzc1LCAtMC4wMjg3NSIsIFwKLSAgICAgICAgICAiLTAuMTA1LCAtMC4wOTM3NSwgLTAuMDgxMjUsIC0wLjA2ODc1LCAtMC4wNjI1LCAtMC4wNDYyNSwgLTAuMDM3NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUUiOwotICAgICAgc2RmX2NvbmQgOiAiRSA9PSAxJ2IwIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDM3NSwgMC4wMzI1LCAwLjAyNjI1LCAwLjAyLCAwLjAxMzc1LCAwLjAwMzc1LCAwLjAwMTI1IiwgXAotICAgICAgICAgICIwLjA0ODc1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDI1LCAwLjAxNSwgMC4wMTI1IiwgXAotICAgICAgICAgICIwLjA2MTI1LCAwLjA1NjI1LCAwLjA1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDI3NSwgMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMDczNzUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNSwgMC4wNCwgMC4wMzc1IiwgXAotICAgICAgICAgICIwLjA4NjI1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1MjUsIDAuMDUiLCBcCi0gICAgICAgICAgIjAuMTAyNSwgMC4wOTc1LCAwLjA4NSwgMC4wNzg3NSwgMC4wNzg3NSwgMC4wNjg3NSwgMC4wNjYyNSIsIFwKLSAgICAgICAgICAiMC4xMTc1LCAwLjEwNjI1LCAwLjEsIDAuMDkzNzUsIDAuMDg3NSwgMC4wODM3NSwgMC4wNzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNSwgMC4wMzg3NSwgMC4wMjYyNSwgMC4wMTM3NSwgMC4wMDc1LCAtMC4wMDI1LCAtMC4wMTc1IiwgXAotICAgICAgICAgICIwLjA1NSwgMC4wNDM3NSwgMC4wMzEyNSwgMC4wMjUsIDAuMDEyNSwgMC4wMDI1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiMC4wNjc1LCAwLjA1NjI1LCAwLjA0Mzc1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMTUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMDczNzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNDM3NSwgMC4wMzEyNSwgMC4wMjEyNSwgMC4wMTI1IiwgXAotICAgICAgICAgICIwLjA4NjI1LCAwLjA3NSwgMC4wNjI1LCAwLjA1LCAwLjA0Mzc1LCAwLjAzMzc1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiMC4wOTYyNSwgMC4wODUsIDAuMDc4NzUsIDAuMDY2MjUsIDAuMDYsIDAuMDQzNzUsIDAuMDM1IiwgXAotICAgICAgICAgICIwLjExMTI1LCAwLjEsIDAuMDg3NSwgMC4wNzUsIDAuMDY4NzUsIDAuMDUyNSwgMC4wNDM3NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogVExBVE5UU0NBWDIwICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoVExBVE5UU0NBWDIwKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDEuNDM3NzQ7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgY2xvY2tfZ2F0aW5nX2ludGVncmF0ZWRfY2VsbCA6ICJsYXRjaF9wb3NlZGdlX3ByZWNvbnRyb2wiOwotICBzdGF0ZXRhYmxlKCIgQ0sgIEUgU0UgIiwgIiBFSU5UICIpIHsKLSAgICAgdGFibGUgOiAiICBMICBMICBMIDogLSA6IEwgLCBcCi0gICAgICAgICAgICAgICAgTCAgSCAgTCA6IC0gOiBIICwgXAotICAgICAgICAgICAgICAgIEwgIEwgIEggOiAtIDogSCAsIFwKLSAgICAgICAgICAgICAgICBMICBIICBIIDogLSA6IEggLCBcCi0gICAgICAgICAgICAgICAgSCAgLSAgLSA6IC0gOiBOICI7Ci0gIH0KLSAgcGluKEVJTlQpIHsKLSAgICBkaXJlY3Rpb24gOiBpbnRlcm5hbDsKLSAgICBpbnRlcm5hbF9ub2RlIDogIkVJTlQiOwotICB9Ci0gIHBpbihDSykgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjAyNzc0OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYwMjUyMTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2MDI3NzQ7Ci0gICAgY2xvY2tfZ2F0ZV9jbG9ja19waW4gOiB0cnVlOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNTY5MSwgMC4wMDU2NjMsIDAuMDA1NjQ5LCAwLjAwNTY1MSwgMC4wMDU2NTksIDAuMDA1Njg0LCAwLjAwNTcwNSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNTI3NCwgMC4wMDUyNSwgMC4wMDUyNDEsIDAuMDA1MjQyLCAwLjAwNTI1LCAwLjAwNTI3MiwgMC4wMDUyOTMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFFJiFTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJFX0VRXzBfQU5fU0VfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjE0NDAxNCwgMC4xNTM4OTcsIDAuMTY1ODU2LCAwLjE3NjA3NCwgMC4xODQ5ODksIDAuMTk3NjM4LCAwLjIwNjczNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjMxOTMzOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYzMTkzMzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2MzE5MTU7Ci0gICAgY2xvY2tfZ2F0ZV9lbmFibGVfcGluIDogdHJ1ZTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDY1NDYsIDAuMDA2NTMxLCAwLjAwNjUyMSwgMC4wMDY1MTEsIDAuMDA2NTA2LCAwLjAwNjUxOSwgMC4wMDY1NDciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDczODcsIDAuMDA3Mzc0LCAwLjAwNzM2OCwgMC4wMDczNywgMC4wMDczNzgsIDAuMDA3Mzk4LCAwLjAwNzQyNCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhU0UiOwotICAgICAgc2RmX2NvbmQgOiAiU0UgPT0gMSdiMCI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDQzNzUsIC0wLjAzODc1LCAtMC4wMzI1LCAtMC4wMjYyNSwgLTAuMDIsIC0wLjAxNjI1LCAtMC4wMDc1IiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA1LCAtMC4wMzc1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDIxMjUsIC0wLjAxODc1IiwgXAotICAgICAgICAgICItMC4wNjc1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDMzNzUsIC0wLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wOCwgLTAuMDY4NzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNTYyNSwgLTAuMDQ2MjUsIC0wLjA0Mzc1IiwgXAotICAgICAgICAgICItMC4wOTI1LCAtMC4wODEyNSwgLTAuMDc1LCAtMC4wNjg3NSwgLTAuMDY4NzUsIC0wLjA1ODc1LCAtMC4wNTYyNSIsIFwKLSAgICAgICAgICAiLTAuMTA4NzUsIC0wLjA5NzUsIC0wLjA5MTI1LCAtMC4wODUsIC0wLjA4NSwgLTAuMDc1LCAtMC4wNzI1IiwgXAotICAgICAgICAgICItMC4xMjM3NSwgLTAuMTEyNSwgLTAuMTA2MjUsIC0wLjEsIC0wLjA5Mzc1LCAtMC4wOSwgLTAuMDgxMjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wNDM3NSwgLTAuMDMyNSwgLTAuMDIsIC0wLjAxMzc1LCAtMC4wMDEyNSwgMC4wMDg3NSwgMC4wMTc1IiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA0Mzc1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIDAuMDAzNzUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDYxMjUsIC0wLjA1NjI1LCAtMC4wNDM3NSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDA4NzUsIDAiLCBcCi0gICAgICAgICAgIi0wLjA3Mzc1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDQzNzUsIC0wLjAzMTI1LCAtMC4wMjEyNSwgLTAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDg2MjUsIC0wLjA3NSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA0Mzc1LCAtMC4wMzM3NSwgLTAuMDI1IiwgXAotICAgICAgICAgICItMC4xMDI1LCAtMC4wOTEyNSwgLTAuMDc4NzUsIC0wLjA3MjUsIC0wLjA2LCAtMC4wNSwgLTAuMDQxMjUiLCBcCi0gICAgICAgICAgIi0wLjExNzUsIC0wLjEwNjI1LCAtMC4wOTM3NSwgLTAuMDgxMjUsIC0wLjA3NSwgLTAuMDY1LCAtMC4wNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIVNFIjsKLSAgICAgIHNkZl9jb25kIDogIlNFID09IDEnYjAiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1LCAwLjA0NSwgMC4wMzg3NSwgMC4wMzI1LCAwLjAyNjI1LCAwLjAyMjUsIDAuMDEzNzUiLCBcCi0gICAgICAgICAgIjAuMDYxMjUsIDAuMDU2MjUsIDAuMDQzNzUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMjc1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiMC4wNzM3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1NjI1LCAwLjA1LCAwLjA0LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIjAuMDg2MjUsIDAuMDc1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDYyNSwgMC4wNTI1LCAwLjA1IiwgXAotICAgICAgICAgICIwLjA5ODc1LCAwLjA4NzUsIDAuMDgxMjUsIDAuMDc1LCAwLjA3NSwgMC4wNjUsIDAuMDYyNSIsIFwKLSAgICAgICAgICAiMC4xMTUsIDAuMTAzNzUsIDAuMDk3NSwgMC4wOTEyNSwgMC4wOTEyNSwgMC4wODEyNSwgMC4wNzg3NSIsIFwKLSAgICAgICAgICAiMC4xMywgMC4xMTg3NSwgMC4xMTI1LCAwLjEwNjI1LCAwLjEsIDAuMDk2MjUsIDAuMDg3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1LCAwLjAzODc1LCAwLjAyNjI1LCAwLjAyLCAwLjAwNzUsIC0wLjAwMjUsIC0wLjAxMTI1IiwgXAotICAgICAgICAgICIwLjA2MTI1LCAwLjA1LCAwLjAzNzUsIDAuMDI1LCAwLjAxODc1LCAwLjAwMjUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDYyNSwgMC4wNSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAxNSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiMC4wOCwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1LCAwLjAzNzUsIDAuMDI3NSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4wOTI1LCAwLjA4MTI1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDUsIDAuMDQsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMTA4NzUsIDAuMDk3NSwgMC4wODUsIDAuMDc4NzUsIDAuMDY2MjUsIDAuMDU2MjUsIDAuMDQ3NSIsIFwKLSAgICAgICAgICAiMC4xMjM3NSwgMC4xMTI1LCAwLjEsIDAuMDg3NSwgMC4wODEyNSwgMC4wNzEyNSwgMC4wNTYyNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRUNLKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDUuNDcxNTg7Ci0gICAgY2xvY2tfZ2F0ZV9vdXRfcGluIDogdHJ1ZTsKLSAgICBzdGF0ZV9mdW5jdGlvbiA6ICIoQ0sgRUlOVCkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMzk2NjgsIDAuMTU2NTUzLCAwLjE2Njk5OSwgMC4xNzg3NTMsIDAuMTg5OTQzLCAwLjIwMDc5LCAwLjIxMTQ4NiIsIFwKLSAgICAgICAgICAiMC4xNDk5NDUsIDAuMTY2NzcyLCAwLjE3NzI5NywgMC4xODkwNjMsIDAuMjAwMjQ3LCAwLjIxMTA5LCAwLjIyMTc0NSIsIFwKLSAgICAgICAgICAiMC4xNjI0OTMsIDAuMTc5Mjc3LCAwLjE4OTc0NiwgMC4yMDE1NzcsIDAuMjEyNzU0LCAwLjIyMzU5OCwgMC4yMzQyNTUiLCBcCi0gICAgICAgICAgIjAuMTczNTMsIDAuMTkwNDQyLCAwLjIwMDg4OCwgMC4yMTI2NDUsIDAuMjIzNzg3LCAwLjIzNDY5MSwgMC4yNDUzNDQiLCBcCi0gICAgICAgICAgIjAuMTgzMjMxLCAwLjIwMDA1NiwgMC4yMTA0OTYsIDAuMjIyMjgsIDAuMjMzNDQyLCAwLjI0NDI5OSwgMC4yNTQ5ODgiLCBcCi0gICAgICAgICAgIjAuMTk2MjU5LCAwLjIxMzA1MywgMC4yMjM1MjksIDAuMjM1MzQ0LCAwLjI0NjUyMSwgMC4yNTczNDEsIDAuMjY4MDMiLCBcCi0gICAgICAgICAgIjAuMjA2NSwgMC4yMjMyOTYsIDAuMjMzNzI4LCAwLjI0NTU0NSwgMC4yNTY3MjUsIDAuMjY3NTc1LCAwLjI3ODIzNCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjQ1NzIsIDAuMDQ2MTA3LCAwLjA2MjIwMSwgMC4wODIzNTYsIDAuMTAyNjYyLCAwLjEyMzI0NiwgMC4xNDM5MzQiLCBcCi0gICAgICAgICAgIjAuMDI0NTAyLCAwLjA0NjAwMSwgMC4wNjIxODYsIDAuMDgyMzE5LCAwLjEwMjY3LCAwLjEyMzI0LCAwLjE0MzkzIiwgXAotICAgICAgICAgICIwLjAyNDUwNywgMC4wNDU5OTYsIDAuMDYyMTkxLCAwLjA4MjMyLCAwLjEwMjY3NSwgMC4xMjMyMzYsIDAuMTQzOTI3IiwgXAotICAgICAgICAgICIwLjAyNDU1NSwgMC4wNDYwOTUsIDAuMDYyMTY5LCAwLjA4MjM1OSwgMC4xMDI2NzEsIDAuMTIzMjQzLCAwLjE0MzkzMyIsIFwKLSAgICAgICAgICAiMC4wMjQ1NTgsIDAuMDQ2MDU3LCAwLjA2MjE2OCwgMC4wODIzNDIsIDAuMTAyNjk3LCAwLjEyMzI0NSwgMC4xNDM5NCIsIFwKLSAgICAgICAgICAiMC4wMjQzNjYsIDAuMDQ1OTkxLCAwLjA2MjE5MywgMC4wODIzNzUsIDAuMTAyNjkyLCAwLjEyMzIxMSwgMC4xNDM5MzQiLCBcCi0gICAgICAgICAgIjAuMDI0Mjc1LCAwLjA0NTgzNiwgMC4wNjIwODMsIDAuMDgyMzAyLCAwLjEwMjY0OCwgMC4xMjMyMDQsIDAuMTQzOTA2Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEyNDE5NCwgMC4xMzg5NDcsIDAuMTQ4NjE0LCAwLjE1OTk0OSwgMC4xNzA5NDYsIDAuMTgxNzg4LCAwLjE5MjU4MyIsIFwKLSAgICAgICAgICAiMC4xMzQwNzcsIDAuMTQ4Nzc1LCAwLjE1ODQ3MiwgMC4xNjk4MTcsIDAuMTgwNzk4LCAwLjE5MTY1NywgMC4yMDI0NTUiLCBcCi0gICAgICAgICAgIjAuMTQ1OTc2LCAwLjE2MDY3OCwgMC4xNzAzNzksIDAuMTgxNjk3LCAwLjE5MjY5NiwgMC4yMDM1NTgsIDAuMjE0MzM2IiwgXAotICAgICAgICAgICIwLjE1NjEwNiwgMC4xNzA3NzksIDAuMTgwNDgxLCAwLjE5MTgyMywgMC4yMDI4MDcsIDAuMjEzNjY4LCAwLjIyNDQ1NiIsIFwKLSAgICAgICAgICAiMC4xNjQ5NTMsIDAuMTc5NjU0LCAwLjE4OTM1NCwgMC4yMDA2NzMsIDAuMjExNjc3LCAwLjIyMjUxNSwgMC4yMzMzMTUiLCBcCi0gICAgICAgICAgIjAuMTc3MjA2LCAwLjE5MTkwMywgMC4yMDE1NjMsIDAuMjEyOTI5LCAwLjIyMzkzOCwgMC4yMzQ3NzYsIDAuMjQ1NTc0IiwgXAotICAgICAgICAgICIwLjE4NjIwNSwgMC4yMDA4NDgsIDAuMjEwNTI0LCAwLjIyMTg3NiwgMC4yMzI4NDksIDAuMjQzNzEyLCAwLjI1NDUxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxOTQ5OSwgMC4wNDAxODQsIDAuMDU2MzExLCAwLjA3NjkzMSwgMC4wOTc4MjEsIDAuMTE4ODk3LCAwLjEzOTk3OSIsIFwKLSAgICAgICAgICAiMC4wMTk0MjYsIDAuMDQwMTQsIDAuMDU2MzIyLCAwLjA3NjkzMSwgMC4wOTc4MTksIDAuMTE4ODkzLCAwLjE0MDExMyIsIFwKLSAgICAgICAgICAiMC4wMTkzNzYsIDAuMDQwMTQ5LCAwLjA1NjMyNCwgMC4wNzY5MjksIDAuMDk3ODE4LCAwLjExODg5MiwgMC4xNDAwMjciLCBcCi0gICAgICAgICAgIjAuMDE5NDU3LCAwLjA0MDE0LCAwLjA1NjMxMSwgMC4wNzY5MywgMC4wOTc4MjEsIDAuMTE4ODk3LCAwLjEzOTk3IiwgXAotICAgICAgICAgICIwLjAxOTM5NiwgMC4wNDAxNTksIDAuMDU2Mjc1LCAwLjA3NjkyNiwgMC4wOTc3MzQsIDAuMTE4OSwgMC4xNDAwNzUiLCBcCi0gICAgICAgICAgIjAuMDE5NDIsIDAuMDQwMTYyLCAwLjA1NjI5MSwgMC4wNzY5MjUsIDAuMDk3NzgxLCAwLjExODkxMSwgMC4xNDAwNjciLCBcCi0gICAgICAgICAgIjAuMDE5NDQ2LCAwLjA0MDIyMSwgMC4wNTY0MzUsIDAuMDc3MDM5LCAwLjA5Nzg3NCwgMC4xMTg5NDgsIDAuMTQwMTQxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzMDU3NSwgMC4wMzA4NDksIDAuMDMxMDUsIDAuMDMxMjI5LCAwLjAzMTM1OCwgMC4wMzE0NTEsIDAuMDMxNTIyIiwgXAotICAgICAgICAgICIwLjAzMDU1NSwgMC4wMzA4MiwgMC4wMzEwMjIsIDAuMDMxMjAzLCAwLjAzMTMzLCAwLjAzMTQyMywgMC4wMzE0OTQiLCBcCi0gICAgICAgICAgIjAuMDMwNTUyLCAwLjAzMDgxMSwgMC4wMzEwMTQsIDAuMDMxMjA3LCAwLjAzMTMyMiwgMC4wMzE0MTUsIDAuMDMxNDg1IiwgXAotICAgICAgICAgICIwLjAzMDU0MiwgMC4wMzA4MTUsIDAuMDMxMDE1LCAwLjAzMTE5NiwgMC4wMzEzMjQsIDAuMDMxNDE4LCAwLjAzMTQ4OCIsIFwKLSAgICAgICAgICAiMC4wMzA1NTEsIDAuMDMwODI2LCAwLjAzMTAyNiwgMC4wMzEyMTEsIDAuMDMxMzQxLCAwLjAzMTQzMiwgMC4wMzE1MDkiLCBcCi0gICAgICAgICAgIjAuMDMwNTk3LCAwLjAzMDg0MSwgMC4wMzEwNDIsIDAuMDMxMjIsIDAuMDMxMzQ4LCAwLjAzMTQ0MSwgMC4wMzE1MTIiLCBcCi0gICAgICAgICAgIjAuMDMwNTE2LCAwLjAzMDgzMSwgMC4wMzEwNCwgMC4wMzEyMjUsIDAuMDMxMzU3LCAwLjAzMTQ1NCwgMC4wMzE1MjYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzU2NDUsIDAuMDM2MTczLCAwLjAzNjQ1NSwgMC4wMzY2ODUsIDAuMDM2ODM5LCAwLjAzNjk0NSwgMC4wMzcwMjQiLCBcCi0gICAgICAgICAgIjAuMDM1NjM1LCAwLjAzNjEzOSwgMC4wMzY0MjUsIDAuMDM2NjU2LCAwLjAzNjgwOSwgMC4wMzY5MTYsIDAuMDM2OTk2IiwgXAotICAgICAgICAgICIwLjAzNTYyNCwgMC4wMzYxNSwgMC4wMzY0MzIsIDAuMDM2NjY0LCAwLjAzNjgxNiwgMC4wMzY5MjMsIDAuMDM3MDAyIiwgXAotICAgICAgICAgICIwLjAzNTY1MywgMC4wMzYxNTksIDAuMDM2NDQ0LCAwLjAzNjY3NSwgMC4wMzY4MjcsIDAuMDM2OTM1LCAwLjAzNzAxNCIsIFwKLSAgICAgICAgICAiMC4wMzU2NDQsIDAuMDM2MTgsIDAuMDM2NDYyLCAwLjAzNjY5NCwgMC4wMzY4NDYsIDAuMDM2OTUzLCAwLjAzNzAzMiIsIFwKLSAgICAgICAgICAiMC4wMzU2MDMsIDAuMDM2MTUsIDAuMDM2NDM2LCAwLjAzNjY3MSwgMC4wMzY4MjcsIDAuMDM2OTM2LCAwLjAzNzAxNyIsIFwKLSAgICAgICAgICAiMC4wMzU3MDYsIDAuMDM2MjExLCAwLjAzNjUsIDAuMDM2NzM1LCAwLjAzNjg4OSwgMC4wMzY5OTgsIDAuMDM3MDc4Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTRSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNTk0OTYzOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDU5MjE1NjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA1OTQ5NjM7Ci0gICAgY2xvY2tfZ2F0ZV90ZXN0X3BpbiA6IHRydWU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA2NzA3LCAwLjAwNjY5MSwgMC4wMDY2ODQsIDAuMDA2NjgxLCAwLjAwNjY3NSwgMC4wMDY2ODksIDAuMDA2NzEyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA3NTgxLCAwLjAwNzU3MiwgMC4wMDc1NjUsIDAuMDA3NTYxLCAwLjAwNzU2MSwgMC4wMDc1NjUsIDAuMDA3NTc4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFFIjsKLSAgICAgIHNkZl9jb25kIDogIkUgPT0gMSdiMCI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDUsIC0wLjAzODc1LCAtMC4wMzI1LCAtMC4wMjYyNSwgLTAuMDIsIC0wLjAxNjI1LCAtMC4wMDc1IiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAyNzUsIC0wLjAxODc1IiwgXAotICAgICAgICAgICItMC4wNjc1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wNCwgLTAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjA4LCAtMC4wNzUsIC0wLjA2ODc1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDUyNSwgLTAuMDQzNzUiLCBcCi0gICAgICAgICAgIi0wLjA5MjUsIC0wLjA4NzUsIC0wLjA4MTI1LCAtMC4wNzUsIC0wLjA2ODc1LCAtMC4wNTg3NSwgLTAuMDU2MjUiLCBcCi0gICAgICAgICAgIi0wLjEwODc1LCAtMC4xMDM3NSwgLTAuMDk3NSwgLTAuMDkxMjUsIC0wLjA4NSwgLTAuMDgxMjUsIC0wLjA3MjUiLCBcCi0gICAgICAgICAgIi0wLjEyMzc1LCAtMC4xMTg3NSwgLTAuMTEyNSwgLTAuMTA2MjUsIC0wLjEsIC0wLjA5LCAtMC4wODc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDQzNzUsIC0wLjAzODc1LCAtMC4wMjYyNSwgLTAuMDEzNzUsIC0wLjAwNzUsIDAuMDA4NzUsIDAuMDE3NSIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNDM3NSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDEyNSwgLTAuMDAyNSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDY3NSwgLTAuMDU2MjUsIC0wLjA0Mzc1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMDg3NSwgMCIsIFwKLSAgICAgICAgICAiLTAuMDczNzUsIC0wLjA2MjUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDMxMjUsIC0wLjAyMTI1LCAtMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wODYyNSwgLTAuMDc1LCAtMC4wNjI1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjAyNzUsIC0wLjAxODc1IiwgXAotICAgICAgICAgICItMC4wOTYyNSwgLTAuMDg1LCAtMC4wNzg3NSwgLTAuMDY2MjUsIC0wLjA1Mzc1LCAtMC4wNDM3NSwgLTAuMDM1IiwgXAotICAgICAgICAgICItMC4xMTEyNSwgLTAuMSwgLTAuMDg3NSwgLTAuMDc1LCAtMC4wNjg3NSwgLTAuMDUyNSwgLTAuMDQzNzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFFIjsKLSAgICAgIHNkZl9jb25kIDogIkUgPT0gMSdiMCI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU2MjUsIDAuMDQ1LCAwLjAzODc1LCAwLjAzMjUsIDAuMDI2MjUsIDAuMDIyNSwgMC4wMTM3NSIsIFwKLSAgICAgICAgICAiMC4wNjEyNSwgMC4wNTYyNSwgMC4wNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzMzc1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiMC4wNzM3NSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1LCAwLjA0NjI1LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIjAuMDg2MjUsIDAuMDgxMjUsIDAuMDc1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDU4NzUsIDAuMDUiLCBcCi0gICAgICAgICAgIjAuMDk4NzUsIDAuMDkzNzUsIDAuMDg3NSwgMC4wODEyNSwgMC4wNzUsIDAuMDY1LCAwLjA2MjUiLCBcCi0gICAgICAgICAgIjAuMTE1LCAwLjExLCAwLjEwMzc1LCAwLjA5NzUsIDAuMDkxMjUsIDAuMDg3NSwgMC4wNzg3NSIsIFwKLSAgICAgICAgICAiMC4xMywgMC4xMjUsIDAuMTE4NzUsIDAuMTEyNSwgMC4xMDYyNSwgMC4wOTYyNSwgMC4wOTM3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1LCAwLjA0NSwgMC4wMzI1LCAwLjAyLCAwLjAxMzc1LCAtMC4wMDI1LCAtMC4wMTEyNSIsIFwKLSAgICAgICAgICAiMC4wNjEyNSwgMC4wNSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAxODc1LCAwLjAwODc1LCAwIiwgXAotICAgICAgICAgICIwLjA3Mzc1LCAwLjA2MjUsIDAuMDUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMTUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMDgsIDAuMDY4NzUsIDAuMDU2MjUsIDAuMDUsIDAuMDM3NSwgMC4wMjc1LCAwLjAxODc1IiwgXAotICAgICAgICAgICIwLjA5MjUsIDAuMDgxMjUsIDAuMDY4NzUsIDAuMDU2MjUsIDAuMDUsIDAuMDMzNzUsIDAuMDI1IiwgXAotICAgICAgICAgICIwLjEwMjUsIDAuMDkxMjUsIDAuMDg1LCAwLjA3MjUsIDAuMDYsIDAuMDUsIDAuMDQxMjUiLCBcCi0gICAgICAgICAgIjAuMTE3NSwgMC4xMDYyNSwgMC4wOTM3NSwgMC4wODEyNSwgMC4wNzUsIDAuMDU4NzUsIDAuMDUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogVExBVE5UU0NBWDYgKgotICogLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKFRMQVROVFNDQVg2KSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuNTMzMjI4OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIGNsb2NrX2dhdGluZ19pbnRlZ3JhdGVkX2NlbGwgOiAibGF0Y2hfcG9zZWRnZV9wcmVjb250cm9sIjsKLSAgc3RhdGV0YWJsZSgiIENLICBFIFNFICIsICIgRUlOVCAiKSB7Ci0gICAgIHRhYmxlIDogIiAgTCAgTCAgTCA6IC0gOiBMICwgXAotICAgICAgICAgICAgICAgIEwgIEggIEwgOiAtIDogSCAsIFwKLSAgICAgICAgICAgICAgICBMICBMICBIIDogLSA6IEggLCBcCi0gICAgICAgICAgICAgICAgTCAgSCAgSCA6IC0gOiBIICwgXAotICAgICAgICAgICAgICAgIEggIC0gIC0gOiAtIDogTiAiOwotICB9Ci0gIHBpbihFSU5UKSB7Ci0gICAgZGlyZWN0aW9uIDogaW50ZXJuYWw7Ci0gICAgaW50ZXJuYWxfbm9kZSA6ICJFSU5UIjsKLSAgfQotICBwaW4oQ0spICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY2MjYzMjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2NjIzOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDY2MjYzMjsKLSAgICBjbG9ja19nYXRlX2Nsb2NrX3BpbiA6IHRydWU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzMjkyLCAwLjAwMzI2LCAwLjAwMzI1NiwgMC4wMDMyNTMsIDAuMDAzMjYxLCAwLjAwMzI4MSwgMC4wMDMzMDEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDM2NzcsIDAuMDAzNjUyLCAwLjAwMzY0MiwgMC4wMDM2NDIsIDAuMDAzNjU0LCAwLjAwMzY3NiwgMC4wMDM2OTgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFFJiFTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJFX0VRXzBfQU5fU0VfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjEwOTEyNiwgMC4xMTg5NjIsIDAuMTMwNzY0LCAwLjE0MDYyOSwgMC4xNDk2MjgsIDAuMTYxMDE5LCAwLjE3MDA5NiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjk0MjE0OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDY5NDA0OTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2OTQyMTQ7Ci0gICAgY2xvY2tfZ2F0ZV9lbmFibGVfcGluIDogdHJ1ZTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDM2NzQsIDAuMDAzNjU3LCAwLjAwMzY0OCwgMC4wMDM2MzcsIDAuMDAzNjQxLCAwLjAwMzY2MiwgMC4wMDM2NzEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDUwNDMsIDAuMDA1MDI2LCAwLjAwNTAyMSwgMC4wMDUwMjEsIDAuMDA1MDMxLCAwLjAwNTA0OCwgMC4wMDUwNjkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIVNFIjsKLSAgICAgIHNkZl9jb25kIDogIlNFID09IDEnYjAiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAzNzUsIC0wLjAyNjI1LCAtMC4wMiwgLTAuMDEzNzUsIC0wLjAxMzc1LCAtMC4wMDM3NSwgLTAuMDAxMjUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMjUsIC0wLjAxNSwgLTAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDYxMjUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDM3NSwgLTAuMDI3NSwgLTAuMDI1IiwgXAotICAgICAgICAgICItMC4wNzM3NSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDQsIC0wLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjA4LCAtMC4wNzUsIC0wLjA2ODc1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDUyNSwgLTAuMDQzNzUiLCBcCi0gICAgICAgICAgIi0wLjA5NjI1LCAtMC4wOTEyNSwgLTAuMDg1LCAtMC4wNzg3NSwgLTAuMDcyNSwgLTAuMDY4NzUsIC0wLjA2IiwgXAotICAgICAgICAgICItMC4xMTEyNSwgLTAuMSwgLTAuMDkzNzUsIC0wLjA4NzUsIC0wLjA4NzUsIC0wLjA3NzUsIC0wLjA3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjA0Mzc1LCAtMC4wMzI1LCAtMC4wMiwgLTAuMDA3NSwgLTAuMDAxMjUsIDAuMDA4NzUsIDAuMDE3NSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgMC4wMDM3NSwgMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wNjEyNSwgLTAuMDUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgLTAuMDA4NzUsIDAiLCBcCi0gICAgICAgICAgIi0wLjA3Mzc1LCAtMC4wNjI1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjAzMTI1LCAtMC4wMjEyNSwgLTAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDg2MjUsIC0wLjA3NSwgLTAuMDYyNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wMzM3NSwgLTAuMDI1IiwgXAotICAgICAgICAgICItMC4xMDI1LCAtMC4wOTEyNSwgLTAuMDc4NzUsIC0wLjA2NjI1LCAtMC4wNiwgLTAuMDUsIC0wLjA0MTI1IiwgXAotICAgICAgICAgICItMC4xMTEyNSwgLTAuMTA2MjUsIC0wLjA5Mzc1LCAtMC4wODEyNSwgLTAuMDc1LCAtMC4wNTg3NSwgLTAuMDUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJTRSA9PSAxJ2IwIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDM3NSwgMC4wMzI1LCAwLjAyNjI1LCAwLjAyLCAwLjAyLCAwLjAxLCAwLjAwNzUiLCBcCi0gICAgICAgICAgIjAuMDU1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDMxMjUsIDAuMDIxMjUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMDY3NSwgMC4wNTYyNSwgMC4wNSwgMC4wNDM3NSwgMC4wNDM3NSwgMC4wMzM3NSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4wOCwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1LCAwLjA0NjI1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjA4NjI1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1ODc1LCAwLjA1IiwgXAotICAgICAgICAgICIwLjEwMjUsIDAuMDk3NSwgMC4wOTEyNSwgMC4wODUsIDAuMDc4NzUsIDAuMDc1LCAwLjA2NjI1IiwgXAotICAgICAgICAgICIwLjExNzUsIDAuMTA2MjUsIDAuMSwgMC4wOTM3NSwgMC4wOTM3NSwgMC4wODM3NSwgMC4wODEyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1LCAwLjAzODc1LCAwLjAyNjI1LCAwLjAxMzc1LCAwLjAwNzUsIC0wLjAwMjUsIC0wLjAxMTI1IiwgXAotICAgICAgICAgICIwLjA1NSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAyNSwgMC4wMTg3NSwgMC4wMDI1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiMC4wNjc1LCAwLjA1NjI1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDI1LCAwLjAxNSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiMC4wOCwgMC4wNjg3NSwgMC4wNTYyNSwgMC4wNSwgMC4wMzc1LCAwLjAyNzUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMDkyNSwgMC4wODEyNSwgMC4wNjg3NSwgMC4wNTYyNSwgMC4wNSwgMC4wNCwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4xMDg3NSwgMC4wOTc1LCAwLjA4NSwgMC4wNzI1LCAwLjA2NjI1LCAwLjA1NjI1LCAwLjA0NzUiLCBcCi0gICAgICAgICAgIjAuMTE3NSwgMC4xMTI1LCAwLjEsIDAuMDg3NSwgMC4wODEyNSwgMC4wNjUsIDAuMDU2MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEVDSykgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAxLjUyNjQ3OwotICAgIGNsb2NrX2dhdGVfb3V0X3BpbiA6IHRydWU7Ci0gICAgc3RhdGVfZnVuY3Rpb24gOiAiKENLIEVJTlQpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDU2ODYsIDAuMTU3NzQ3LCAwLjIwNTgzMiwgMC4yNDAwOTQsIDAuMjk0OSwgMC4zNDI5MDYsIDAuNDExMzMyIiwgXAotICAgICAgICAgICIwLjExNTg0MywgMC4xNjc5MDYsIDAuMjE1OTksIDAuMjUwMjQ4LCAwLjMwNTA1LCAwLjM1MzA0NiwgMC40MjE0ODciLCBcCi0gICAgICAgICAgIjAuMTI4MjM5LCAwLjE4MDIzOCwgMC4yMjgzMzIsIDAuMjYyNjEyLCAwLjMxNzM5OCwgMC4zNjUzNjIsIDAuNDMzODQyIiwgXAotICAgICAgICAgICIwLjEzOTAxMSwgMC4xOTEwNTMsIDAuMjM5MTQsIDAuMjczMzk5LCAwLjMyODE5NSwgMC4zNzYyMTMsIDAuNDQ0NjM2IiwgXAotICAgICAgICAgICIwLjE0ODEzNSwgMC4yMDAxODQsIDAuMjQ4MjYzLCAwLjI4MjUyNiwgMC4zMzczMjUsIDAuMzg1MzQzLCAwLjQ1Mzg4OCIsIFwKLSAgICAgICAgICAiMC4xNjEyMjgsIDAuMjEzMTgsIDAuMjYxMjQ5LCAwLjI5NTUzLCAwLjM1MDMxNSwgMC4zOTgyNjMsIDAuNDY2Nzg5IiwgXAotICAgICAgICAgICIwLjE3MTEyOSwgMC4yMjMxMzUsIDAuMjcxMjA3LCAwLjMwNTQ2MSwgMC4zNjAyNjUsIDAuNDA4MjY0LCAwLjQ3NjcwMSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyOTYxNywgMC4xMjM2NDUsIDAuMjIwODIzLCAwLjI5MTE2MSwgMC40MDQwNDMsIDAuNTAxODMzLCAwLjY0NDMyMiIsIFwKLSAgICAgICAgICAiMC4wMjk2MjEsIDAuMTIzNjQyLCAwLjIyMDg0NCwgMC4yOTExNjMsIDAuNDAzNDk2LCAwLjUwMTg5LCAwLjY0Mzk3IiwgXAotICAgICAgICAgICIwLjAyOTY5MywgMC4xMjM2NDYsIDAuMjIwODQ1LCAwLjI5MTI5OCwgMC40MDM1MjEsIDAuNTAxMzgzLCAwLjY0Mzk3MyIsIFwKLSAgICAgICAgICAiMC4wMjk2MjgsIDAuMTIzNjY2LCAwLjIyMTAxNCwgMC4yOTExNjksIDAuNDAzNzU0LCAwLjUwMTgxNywgMC42NDQzMjIiLCBcCi0gICAgICAgICAgIjAuMDI5NjYyLCAwLjEyMzY0NywgMC4yMjA3ODYsIDAuMjkxMTU0LCAwLjQwMzk3NSwgMC41MDE4MTcsIDAuNjQzMTkxIiwgXAotICAgICAgICAgICIwLjAyOTc0MSwgMC4xMjM2NzYsIDAuMjIwODQzLCAwLjI5MTI5MywgMC40MDM5ODIsIDAuNTAyODk1LCAwLjY0Mzk0IiwgXAotICAgICAgICAgICIwLjAyOTcyNSwgMC4xMjM2MzgsIDAuMjIxMDMzLCAwLjI5MTE0MSwgMC40MDM0OTQsIDAuNTAxODk0LCAwLjY0MzkwNyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5Mjc3MSwgMC4xNDQzLCAwLjE5NDAzOSwgMC4yMjk1NzMsIDAuMjg2NDQyLCAwLjMzNjE5NSwgMC40MDcyODgiLCBcCi0gICAgICAgICAgIjAuMTAyNjEzLCAwLjE1NDExNCwgMC4yMDM4NTYsIDAuMjM5Mzg4LCAwLjI5NjI1MiwgMC4zNDYwMTEsIDAuNDE3MTEzIiwgXAotICAgICAgICAgICIwLjExNDI4OSwgMC4xNjU4MjcsIDAuMjE1NTY4LCAwLjI1MTEwNCwgMC4zMDc5NywgMC4zNTc3NDEsIDAuNDI4ODI2IiwgXAotICAgICAgICAgICIwLjEyNDA2MywgMC4xNzU1NjYsIDAuMjI1MzAzLCAwLjI2MDg0MSwgMC4zMTc3MDQsIDAuMzY3NDc2LCAwLjQzODU1MiIsIFwKLSAgICAgICAgICAiMC4xMzI4NzcsIDAuMTg0Mzc3LCAwLjIzNDExOSwgMC4yNjk2NTQsIDAuMzI2NTIyLCAwLjM3NjI3OSwgMC40NDczOSIsIFwKLSAgICAgICAgICAiMC4xNDQxNTMsIDAuMTk1NTEsIDAuMjQ1MzExLCAwLjI4MDkwMywgMC4zMzc4MDEsIDAuMzg3NjQyLCAwLjQ1ODc2MSIsIFwKLSAgICAgICAgICAiMC4xNTI5NTcsIDAuMjA0NDcyLCAwLjI1NDIxNiwgMC4yODk3NDksIDAuMzQ2NjE5LCAwLjM5NjM2NSwgMC40Njc0NjkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjQ5NjEsIDAuMTIxODQ3LCAwLjIyMTc2LCAwLjI5MzM4NiwgMC40MDgwMywgMC41MDc1OTksIDAuNjUxOTQzIiwgXAotICAgICAgICAgICIwLjAyNDk3OCwgMC4xMjIwMjgsIDAuMjIxODg3LCAwLjI5MzQ1OCwgMC40MDczMTgsIDAuNTA2OTEyLCAwLjY1MTQwOCIsIFwKLSAgICAgICAgICAiMC4wMjQ5NTIsIDAuMTIxODYzLCAwLjIyMTQzMSwgMC4yOTM0NzMsIDAuNDA3MTA1LCAwLjUwNzM5NiwgMC42NTE2NDMiLCBcCi0gICAgICAgICAgIjAuMDI0OTc3LCAwLjEyMTg5NCwgMC4yMjE4MjIsIDAuMjkzNDM0LCAwLjQwODAxOCwgMC41MDgxNTgsIDAuNjUxNTE3IiwgXAotICAgICAgICAgICIwLjAyNDk2OCwgMC4xMjE4NjcsIDAuMjIxNDE2LCAwLjI5Mjg0MiwgMC40MDczMDMsIDAuNTA3NjU3LCAwLjY1MTEzNyIsIFwKLSAgICAgICAgICAiMC4wMjQ5OSwgMC4xMjIwOTgsIDAuMjIxNTg4LCAwLjI5MzQ5MywgMC40MDc4NTcsIDAuNTA2OTc5LCAwLjY1MTU2MyIsIFwKLSAgICAgICAgICAiMC4wMjQ5NzUsIDAuMTIyMDU5LCAwLjIyMTg4MiwgMC4yOTMyNzcsIDAuNDA4MDcyLCAwLjUwNzQ2NiwgMC42NTA2MTUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTEyNTgsIDAuMDExNTA2LCAwLjAxMTU1MywgMC4wMTE1NjgsIDAuMDExNTg0LCAwLjAxMTU5LCAwLjAxMTU5NCIsIFwKLSAgICAgICAgICAiMC4wMTEyMjUsIDAuMDExNDc0LCAwLjAxMTUyMywgMC4wMTE1MzYsIDAuMDExNTUyLCAwLjAxMTU1NiwgMC4wMTE1NjciLCBcCi0gICAgICAgICAgIjAuMDExMjEyLCAwLjAxMTQ2MiwgMC4wMTE1MTEsIDAuMDExNTIzLCAwLjAxMTU0LCAwLjAxMTU0MywgMC4wMTE1NDkiLCBcCi0gICAgICAgICAgIjAuMDExMjIxLCAwLjAxMTQ3LCAwLjAxMTUxNywgMC4wMTE1MzIsIDAuMDExNTQ1LCAwLjAxMTU1MywgMC4wMTE1NTciLCBcCi0gICAgICAgICAgIjAuMDExMjMxLCAwLjAxMTQ3OCwgMC4wMTE1MjksIDAuMDExNTM3LCAwLjAxMTU1NCwgMC4wMTE1NjIsIDAuMDExNTY5IiwgXAotICAgICAgICAgICIwLjAxMTIzNSwgMC4wMTE0ODgsIDAuMDExNTM2LCAwLjAxMTU1MSwgMC4wMTE1NjUsIDAuMDExNTcyLCAwLjAxMTU4MSIsIFwKLSAgICAgICAgICAiMC4wMTEyNzIsIDAuMDExNTE3LCAwLjAxMTU2OCwgMC4wMTE1NzgsIDAuMDExNTkzLCAwLjAxMTYsIDAuMDExNjA2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTUwNDMsIDAuMDE1Mzc3LCAwLjAxNTQzLCAwLjAxNTQ0NywgMC4wMTU0NjEsIDAuMDE1NDY5LCAwLjAxNTQ3NiIsIFwKLSAgICAgICAgICAiMC4wMTUwMTcsIDAuMDE1MzUsIDAuMDE1NDA0LCAwLjAxNTQyLCAwLjAxNTQzNSwgMC4wMTU0NDIsIDAuMDE1NDQ5IiwgXAotICAgICAgICAgICIwLjAxNTAyNCwgMC4wMTUzNTgsIDAuMDE1NDEyLCAwLjAxNTQyOCwgMC4wMTU0NDMsIDAuMDE1NDUsIDAuMDE1NDU3IiwgXAotICAgICAgICAgICIwLjAxNTAzNSwgMC4wMTUzNjksIDAuMDE1NDIyLCAwLjAxNTQzOSwgMC4wMTU0NTMsIDAuMDE1NDYxLCAwLjAxNTQ2NyIsIFwKLSAgICAgICAgICAiMC4wMTUwMjgsIDAuMDE1MzY3LCAwLjAxNTQyMSwgMC4wMTU0MzgsIDAuMDE1NDUzLCAwLjAxNTQ2MSwgMC4wMTU0NjgiLCBcCi0gICAgICAgICAgIjAuMDE1MDgxLCAwLjAxNTQxMSwgMC4wMTU0NjcsIDAuMDE1NDg0LCAwLjAxNTQ5OSwgMC4wMTU1MDcsIDAuMDE1NTE0IiwgXAotICAgICAgICAgICIwLjAxNTA5MywgMC4wMTU0MjgsIDAuMDE1NDgyLCAwLjAxNTQ5OSwgMC4wMTU1MTQsIDAuMDE1NTIsIDAuMDE1NTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTRSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNzI5NDMzOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDcyNjk3OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDcyOTQzMzsKLSAgICBjbG9ja19nYXRlX3Rlc3RfcGluIDogdHJ1ZTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDM4MzEsIDAuMDAzODE0LCAwLjAwMzgxMywgMC4wMDM4MDMsIDAuMDAzODExLCAwLjAwMzgzMiwgMC4wMDM4NDEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDUyMzcsIDAuMDA1MjI0LCAwLjAwNTIxOCwgMC4wMDUyMTQsIDAuMDA1MjE0LCAwLjAwNTIxNywgMC4wMDUyMjYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUUiOwotICAgICAgc2RmX2NvbmQgOiAiRSA9PSAxJ2IwIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMzc1LCAtMC4wMzI1LCAtMC4wMjYyNSwgLTAuMDIsIC0wLjAxMzc1LCAtMC4wMSwgLTAuMDAxMjUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDE1LCAtMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wNjEyNSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDI3NSwgLTAuMDI1IiwgXAotICAgICAgICAgICItMC4wNzM3NSwgLTAuMDY4NzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDQsIC0wLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjA4NjI1LCAtMC4wNzUsIC0wLjA2ODc1LCAtMC4wNjg3NSwgLTAuMDYyNSwgLTAuMDUyNSwgLTAuMDUiLCBcCi0gICAgICAgICAgIi0wLjEwMjUsIC0wLjA5MTI1LCAtMC4wODUsIC0wLjA3ODc1LCAtMC4wNzg3NSwgLTAuMDY4NzUsIC0wLjA2NjI1IiwgXAotICAgICAgICAgICItMC4xMTc1LCAtMC4xMDYyNSwgLTAuMSwgLTAuMDkzNzUsIC0wLjA4NzUsIC0wLjA4Mzc1LCAtMC4wNzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wNDM3NSwgLTAuMDMyNSwgLTAuMDIsIC0wLjAxMzc1LCAtMC4wMDEyNSwgMC4wMDg3NSwgMC4wMTc1IiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA0Mzc1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwMjUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA2MTI1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAwODc1LCAwIiwgXAotICAgICAgICAgICItMC4wNzM3NSwgLTAuMDYyNSwgLTAuMDUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMjEyNSwgLTAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDgsIC0wLjA2ODc1LCAtMC4wNjI1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjAyNzUsIC0wLjAxODc1IiwgXAotICAgICAgICAgICItMC4wOTYyNSwgLTAuMDg1LCAtMC4wNzI1LCAtMC4wNjYyNSwgLTAuMDUzNzUsIC0wLjA0Mzc1LCAtMC4wMzUiLCBcCi0gICAgICAgICAgIi0wLjEwNSwgLTAuMDkzNzUsIC0wLjA4MTI1LCAtMC4wNzUsIC0wLjA2MjUsIC0wLjA1MjUsIC0wLjA0Mzc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRSI7Ci0gICAgICBzZGZfY29uZCA6ICJFID09IDEnYjAiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0Mzc1LCAwLjAzODc1LCAwLjAzMjUsIDAuMDI2MjUsIDAuMDIsIDAuMDE2MjUsIDAuMDA3NSIsIFwKLSAgICAgICAgICAiMC4wNTUsIDAuMDUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMjEyNSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4wNjc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDUsIDAuMDQzNzUsIDAuMDMzNzUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMDgsIDAuMDc1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDQ2MjUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMDkyNSwgMC4wODEyNSwgMC4wNzUsIDAuMDc1LCAwLjA2ODc1LCAwLjA1ODc1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICIwLjEwODc1LCAwLjA5NzUsIDAuMDkxMjUsIDAuMDg1LCAwLjA4NSwgMC4wNzUsIDAuMDcyNSIsIFwKLSAgICAgICAgICAiMC4xMjM3NSwgMC4xMTI1LCAwLjEwNjI1LCAwLjEsIDAuMDkzNzUsIDAuMDksIDAuMDgxMjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNSwgMC4wMzg3NSwgMC4wMjYyNSwgMC4wMiwgMC4wMDc1LCAtMC4wMDI1LCAtMC4wMTEyNSIsIFwKLSAgICAgICAgICAiMC4wNjEyNSwgMC4wNSwgMC4wMzc1LCAwLjAyNSwgMC4wMTg3NSwgMC4wMDg3NSwgMCIsIFwKLSAgICAgICAgICAiMC4wNjc1LCAwLjA1NjI1LCAwLjA1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDE1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICIwLjA4LCAwLjA2ODc1LCAwLjA1NjI1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDI3NSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4wODYyNSwgMC4wNzUsIDAuMDY4NzUsIDAuMDU2MjUsIDAuMDUsIDAuMDMzNzUsIDAuMDI1IiwgXAotICAgICAgICAgICIwLjEwMjUsIDAuMDkxMjUsIDAuMDc4NzUsIDAuMDcyNSwgMC4wNiwgMC4wNSwgMC4wNDEyNSIsIFwKLSAgICAgICAgICAiMC4xMTEyNSwgMC4xLCAwLjA4NzUsIDAuMDgxMjUsIDAuMDY4NzUsIDAuMDU4NzUsIDAuMDUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBUTEFUTlg0ICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKFRMQVROWDQpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC42NzMyNzU7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgbGF0Y2ggKFFJTlQsTjApIHsKLSAgICBkYXRhX2luIDogIkQiOwotICAgIGVuYWJsZSA6ICIoIUdOKSI7Ci0gIH0KLSAgcGluKEQpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY3NDcxNjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2NzM0MDg7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjc0NzE2OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDIxOCwgMC4wMDAyMiwgMC4wMDAyMjEsIDAuMDAwMjIxLCAwLjAwMDIyMiwgMC4wMDAyMjIsIDAuMDAwMjIyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjMsIDAuMDAwMjI4LCAwLjAwMDIyNywgMC4wMDAyMjcsIDAuMDAwMjI3LCAwLjAwMDIyNywgMC4wMDAyMjciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiR04iOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMzc1LCAtMC4wMjYyNSwgLTAuMDIsIC0wLjAxMzc1LCAtMC4wMDc1LCAtMC4wMDM3NSwgMC4wMDUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDA4NzUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMjEyNSwgLTAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDY3NSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDMzNzUsIC0wLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDgsIC0wLjA2ODc1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjA0LCAtMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDksIC0wLjA4NSwgLTAuMDcyNSwgLTAuMDY2MjUsIC0wLjA2LCAtMC4wNSwgLTAuMDQ3NSIsIFwKLSAgICAgICAgICAiLTAuMTA1LCAtMC4wOTM3NSwgLTAuMDgxMjUsIC0wLjA3NSwgLTAuMDY4NzUsIC0wLjA2NSwgLTAuMDU2MjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMTg3NSwgLTAuMDA3NSwgMC4wMDUsIDAuMDE3NSwgMC4wMywgMC4wNCwgMC4wNTUiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTI1LCAwLCAwLjAxMjUsIDAuMDE4NzUsIDAuMDM1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDI1LCAtMC4wMTI1LCAwLCAwLjAxMjUsIDAuMDIyNSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDMxMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAwLCAwLjAxNjI1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNDM3NSwgLTAuMDMxMjUsIC0wLjAxODc1LCAtMC4wMDYyNSwgMC4wMDM3NSwgMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wNjUsIC0wLjA1Mzc1LCAtMC4wNDEyNSwgLTAuMDI4NzUsIC0wLjAyMjUsIC0wLjAwNjI1LCAwLjAwMjUiLCBcCi0gICAgICAgICAgIi0wLjA3Mzc1LCAtMC4wNjg3NSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wMzEyNSwgLTAuMDE1LCAtMC4wMDYyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJHTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTYyNSwgMC4wNDUsIDAuMDM4NzUsIDAuMDMyNSwgMC4wMzI1LCAwLjAyODc1LCAwLjAyNjI1IiwgXAotICAgICAgICAgICIwLjA2MTI1LCAwLjA1NjI1LCAwLjA0Mzc1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDMzNzUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMDczNzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNSwgMC4wNSwgMC4wNDYyNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4wOCwgMC4wNzUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNTI1LCAwLjA1IiwgXAotICAgICAgICAgICIwLjA5MjUsIDAuMDgxMjUsIDAuMDc1LCAwLjA2ODc1LCAwLjA2ODc1LCAwLjA2NSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiMC4xMDg3NSwgMC4wOTc1LCAwLjA5MTI1LCAwLjA4NSwgMC4wNzg3NSwgMC4wNzUsIDAuMDcyNSIsIFwKLSAgICAgICAgICAiMC4xMTc1LCAwLjEwNjI1LCAwLjEsIDAuMDkzNzUsIDAuMDg3NSwgMC4wODM3NSwgMC4wODEyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzNzUsIDAuMDI2MjUsIDAuMDEzNzUsIDAuMDAxMjUsIC0wLjAxMTI1LCAtMC4wMjc1LCAtMC4wMzYyNSIsIFwKLSAgICAgICAgICAiMC4wNDI1LCAwLjAzMTI1LCAwLjAxODc1LCAwLjAwNjI1LCAwLCAtMC4wMTYyNSwgLTAuMDI1IiwgXAotICAgICAgICAgICIwLjA1NSwgMC4wNDM3NSwgMC4wMzEyNSwgMC4wMTg3NSwgMC4wMDYyNSwgLTAuMDEsIC0wLjAxODc1IiwgXAotICAgICAgICAgICIwLjA2MTI1LCAwLjA1LCAwLjAzNzUsIDAuMDI1LCAwLjAxODc1LCAwLjAwMjUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICIwLjA3Mzc1LCAwLjA2MjUsIDAuMDUsIDAuMDM3NSwgMC4wMjUsIDAuMDA4NzUsIDAiLCBcCi0gICAgICAgICAgIjAuMDgzNzUsIDAuMDcyNSwgMC4wNiwgMC4wNDc1LCAwLjAzNSwgMC4wMjUsIDAuMDEiLCBcCi0gICAgICAgICAgIjAuMDkyNSwgMC4wODEyNSwgMC4wNjg3NSwgMC4wNTYyNSwgMC4wNSwgMC4wMzM3NSwgMC4wMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEdOKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2MDg1NDY7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjA4MzcxOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDYwODU0NjsKLSAgICBjbG9jayA6IHRydWU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxOTE0LCAwLjAwMTg4OCwgMC4wMDE4NzQsIDAuMDAxODc4LCAwLjAwMTg5MSwgMC4wMDE5MSwgMC4wMDE5MzciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDM3NjMsIDAuMDAzNzQyLCAwLjAwMzczMywgMC4wMDM3MzYsIDAuMDAzNzQ4LCAwLjAwMzc3LCAwLjAwMzc5OCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJHTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQiOwotICAgICAgc2RmX2NvbmQgOiAiRCA9PSAxJ2IwIjsKLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjE1MzM2LCAwLjE2MzE5MywgMC4xNzU1MDQsIDAuMTg2NTAzLCAwLjE5NjA4NiwgMC4yMDg4MzMsIDAuMjE4NTk5Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihRKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDEuMDMwMDY7Ci0gICAgZnVuY3Rpb24gOiAiUUlOVCI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTA5NywgMC4xODMzNDMsIDAuMjU1NTY0LCAwLjMwNzExNywgMC4zODk4MzksIDAuNDYyMDI2LCAwLjU2NTM3NyIsIFwKLSAgICAgICAgICAiMC4xMTk4MzMsIDAuMTkyMjA4LCAwLjI2NDU5OSwgMC4zMTU5OTYsIDAuMzk4NzA0LCAwLjQ3MDkwMiwgMC41NzQyMjgiLCBcCi0gICAgICAgICAgIjAuMTMwNjAzLCAwLjIwMjk4OSwgMC4yNzUxMTQsIDAuMzI2NzM3LCAwLjQwOTM3MiwgMC40ODE1OTEsIDAuNTg1MDE1IiwgXAotICAgICAgICAgICIwLjE0MDkyMSwgMC4yMTMyOTIsIDAuMjg1Njg0LCAwLjMzNzA3MywgMC40MTk3ODcsIDAuNDkxOTg1LCAwLjU5NTMxNiIsIFwKLSAgICAgICAgICAiMC4xNTA5NjYsIDAuMjIzMTM1LCAwLjI5NTcwNSwgMC4zNDcwOTksIDAuNDI5ODI5LCAwLjUwMTgzOSwgMC42MDUzNDciLCBcCi0gICAgICAgICAgIjAuMTY1NTQ3LCAwLjIzNzkwNSwgMC4zMDk5NjcsIDAuMzYxNjY2LCAwLjQ0NDE1MywgMC41MTY1NTUsIDAuNjE5ODg1IiwgXAotICAgICAgICAgICIwLjE3NzAxNywgMC4yNDkxNTksIDAuMzIxNzQ1LCAwLjM3MzI5NywgMC40NTU4NDEsIDAuNTI4MDEsIDAuNjMxMzkiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjg2ODIsIDAuMTc1OTk2LCAwLjMyNTQyOCwgMC40MzA4OCwgMC42MDI1OTEsIDAuNzQ5ODk5LCAwLjk2NDgzOCIsIFwKLSAgICAgICAgICAiMC4wMjg2MzQsIDAuMTc1OTk2LCAwLjMyNTUxLCAwLjQzMDczMywgMC42MDI1ODUsIDAuNzUwNjE5LCAwLjk2NDgxOSIsIFwKLSAgICAgICAgICAiMC4wMjg1NTUsIDAuMTc1OTEyLCAwLjMyNDk2LCAwLjQzMDcyNywgMC42MDE2MjUsIDAuNzUxNjQ3LCAwLjk2MjY3NiIsIFwKLSAgICAgICAgICAiMC4wMjg2NzIsIDAuMTc1ODk0LCAwLjMyNTUxNSwgMC40MzA4NzcsIDAuNjAyNTg2LCAwLjc0OTUzNSwgMC45NjQ3OTUiLCBcCi0gICAgICAgICAgIjAuMDI4NzAxLCAwLjE3NjUzNCwgMC4zMjU0OTcsIDAuNDMwODc3LCAwLjYwMjYwNywgMC43NDkzMjYsIDAuOTY0NzkiLCBcCi0gICAgICAgICAgIjAuMDI4NDMxLCAwLjE3NjI4NSwgMC4zMjQzOTEsIDAuNDMwNzU0LCAwLjYwMDkxNCwgMC43NTEzOTcsIDAuOTY0NzU4IiwgXAotICAgICAgICAgICIwLjAyODY5NywgMC4xNzYwNzYsIDAuMzI1NTA5LCAwLjQzMjAyMiwgMC42MDI1NTMsIDAuNzUwNjE5LCAwLjk2NDc2NSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExMzc0OCwgMC4xODczMjQsIDAuMjYxMzA5LCAwLjMxMzg1OSwgMC4zOTgxMDksIDAuNDcxMTQ3LCAwLjU3NTg3MiIsIFwKLSAgICAgICAgICAiMC4xMjIwNzUsIDAuMTk1NjU1LCAwLjI2OTY2MiwgMC4zMjIyMTYsIDAuNDA2NDY1LCAwLjQ3OTUwMiwgMC41ODQyMjUiLCBcCi0gICAgICAgICAgIjAuMTMxODc0LCAwLjIwNTU2MiwgMC4yNzg4NDQsIDAuMzMxNTU1LCAwLjQxNjIwOSwgMC40ODkyOTYsIDAuNTkzOTYzIiwgXAotICAgICAgICAgICIwLjE0MTIyNCwgMC4yMTQ3MzcsIDAuMjg4ODA2LCAwLjM0MTA4NSwgMC40MjQ4MjcsIDAuNDk4NDcsIDAuNjAzMzU5IiwgXAotICAgICAgICAgICIwLjE1MDE5OSwgMC4yMjM5NjgsIDAuMjk3Nzg3LCAwLjM1MDMyMywgMC40MzQxNzMsIDAuNTA3NTk5LCAwLjYxMjYzMiIsIFwKLSAgICAgICAgICAiMC4xNjI5OTIsIDAuMjM2NDksIDAuMzEwMDk1LCAwLjM2MzA3NCwgMC40NDczMDcsIDAuNTIwNDM2LCAwLjYyNTYzNyIsIFwKLSAgICAgICAgICAiMC4xNzMwMzEsIDAuMjQ2NzY1LCAwLjMyMDUyOCwgMC4zNzI1MTIsIDAuNDU2NTQsIDAuNTMwODksIDAuNjM1MjMzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDI4NTE0LCAwLjE3NTkyNCwgMC4zMjUxNTksIDAuNDMxNTM0LCAwLjYwMTk5OCwgMC43NTAwNDgsIDAuOTYyNDY4IiwgXAotICAgICAgICAgICIwLjAyODQzNCwgMC4xNzU5NTQsIDAuMzI1MTY0LCAwLjQzMTUzMywgMC42MDIwMDMsIDAuNzUwMDUyLCAwLjk2MjYxMSIsIFwKLSAgICAgICAgICAiMC4wMjgzNDgsIDAuMTc2MDY5LCAwLjMyNDUxNSwgMC40MzEwMDEsIDAuNjAyMDMyLCAwLjc1MDAxMSwgMC45NjIzNjgiLCBcCi0gICAgICAgICAgIjAuMDI4NDA3LCAwLjE3NTc1NiwgMC4zMjUxNTMsIDAuNDMxNTk4LCAwLjU5OTgxNCwgMC43NTAwMywgMC45NjIzMDkiLCBcCi0gICAgICAgICAgIjAuMDI4NTU0LCAwLjE3NTk4OSwgMC4zMjUxMjcsIDAuNDMxNTQ0LCAwLjYwMTg5MywgMC43NTAwNTgsIDAuOTYwNjc5IiwgXAotICAgICAgICAgICIwLjAyODE5NywgMC4xNzU5MDIsIDAuMzI0NjU5LCAwLjQzMTUzMSwgMC42MDIwNTIsIDAuNzUwMDA3LCAwLjk2MzcxMyIsIFwKLSAgICAgICAgICAiMC4wMjg1NDUsIDAuMTc2MDAxLCAwLjMyNTExLCAwLjQzMDcyNywgMC42MDA3ODMsIDAuNzUwODYzLCAwLjk2MjkwOCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJHTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBub25fdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGZhbGxpbmdfZWRnZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMzU3MjIsIDAuMjA3OTA1LCAwLjI4MDQ5NCwgMC4zMzE4NzQsIDAuNDE0NTU4LCAwLjQ4NjgyNSwgMC41OTAwOCIsIFwKLSAgICAgICAgICAiMC4xNDU0OTksIDAuMjE3OTAyLCAwLjI5MDAzOCwgMC4zNDE2NTksIDAuNDI0MzksIDAuNDk2NTk3LCAwLjU5OTg5MiIsIFwKLSAgICAgICAgICAiMC4xNTc2MzQsIDAuMjMwMDI0LCAwLjMwMjE4MSwgMC4zNTM4MDksIDAuNDM2NTQ2LCAwLjUwODc2OSwgMC42MTIwMTYiLCBcCi0gICAgICAgICAgIjAuMTY4NzQyLCAwLjI0MTE1MSwgMC4zMTMyNjksIDAuMzY0OTAxLCAwLjQ0NzY1LCAwLjUxOTg4NSwgMC42MjMwOTkiLCBcCi0gICAgICAgICAgIjAuMTc4NjM1LCAwLjI1MTA1NSwgMC4zMjM0MjgsIDAuMzc0Nzk4LCAwLjQ1NzUyOCwgMC41Mjk3NTMsIDAuNjMzMDUxIiwgXAotICAgICAgICAgICIwLjE5MTk3MSwgMC4yNjQxNDEsIDAuMzM2NTE0LCAwLjM4ODE0NiwgMC40NzA4NjgsIDAuNTQzMDYxLCAwLjY0NjM5OCIsIFwKLSAgICAgICAgICAiMC4yMDI2NTYsIDAuMjc1MDQyLCAwLjM0NzE3NSwgMC4zOTg3OTYsIDAuNDgxNTIsIDAuNTUzNzE3LCAwLjY1NzA1MSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyODYzMSwgMC4xNzU3OSwgMC4zMjU0OTYsIDAuNDMxNTkzLCAwLjYwMTUzNSwgMC43NTAwMzksIDAuOTY0NzM1IiwgXAotICAgICAgICAgICIwLjAyODYyNywgMC4xNzYzMTIsIDAuMzI1MDU0LCAwLjQzMDk4NCwgMC42MDI1OTQsIDAuNzUxNzc0LCAwLjk2MzAzNSIsIFwKLSAgICAgICAgICAiMC4wMjg2MzUsIDAuMTc2MzUsIDAuMzI0OTk3LCAwLjQzMTUyOCwgMC42MDI2MDUsIDAuNzUxODA0LCAwLjk2MzM3NyIsIFwKLSAgICAgICAgICAiMC4wMjg2MjIsIDAuMTc2MzExLCAwLjMyNTAyNiwgMC40MzEzODYsIDAuNjAyNjE1LCAwLjc1MTgzMSwgMC45NjM0NzUiLCBcCi0gICAgICAgICAgIjAuMDI4NjMsIDAuMTc2MzUxLCAwLjMyNTQ5MiwgMC40MzExMSwgMC42MDI1NTksIDAuNzUwMjU0LCAwLjk2NDc4OCIsIFwKLSAgICAgICAgICAiMC4wMjg2MzEsIDAuMTc1Nzg5LCAwLjMyNTAwOCwgMC40MzE0MTgsIDAuNjAyNTc3LCAwLjc1MDYwNCwgMC45NjQ4MTgiLCBcCi0gICAgICAgICAgIjAuMDI4NjM0LCAwLjE3NjM0NiwgMC4zMjUwMjIsIDAuNDMwNjA0LCAwLjYwMjU3NSwgMC43NTA2MjIsIDAuOTY0ODIiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNTMzNiwgMC4yMjY4NTIsIDAuMzAwOTI5LCAwLjM1MzQ1NCwgMC40Mzc3MDIsIDAuNTEwNzIzLCAwLjYxNTQ1NyIsIFwKLSAgICAgICAgICAiMC4xNjMxOTMsIDAuMjM2OTUxLCAwLjMxMDc1NSwgMC4zNjI2OTcsIDAuNDQ3NTM0LCAwLjUyMDU3NSwgMC42MjUyNzkiLCBcCi0gICAgICAgICAgIjAuMTc1NTA0LCAwLjI0OTI0NSwgMC4zMjMwNjQsIDAuMzc1NzEzLCAwLjQ1OTg1LCAwLjUzMjkzOCwgMC42Mzc1ODgiLCBcCi0gICAgICAgICAgIjAuMTg2NTAzLCAwLjI1OTk4LCAwLjMzMzUzMSwgMC4zODY1OCwgMC40NzAxNTMsIDAuNTQ0NDM1LCAwLjY0ODQ2OSIsIFwKLSAgICAgICAgICAiMC4xOTYwODYsIDAuMjY5ODA5LCAwLjM0MzYzLCAwLjM5NjE2MSwgMC40ODA0MzIsIDAuNTUzODc2LCAwLjY1ODI5NCIsIFwKLSAgICAgICAgICAiMC4yMDg4MzMsIDAuMjgyNTkzLCAwLjM1NjQxNCwgMC40MDgzNTcsIDAuNDkzMTkyLCAwLjU2NjIzNiwgMC42NzA5MjMiLCBcCi0gICAgICAgICAgIjAuMjE4NTk5LCAwLjI5MjM0MiwgMC4zNjYxNjIsIDAuNDE4Nzk4LCAwLjUwMjk0MiwgMC41NzYwMTgsIDAuNjgwNjgyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDI4MjMsIDAuMTc1Nzk4LCAwLjMyNTEzOSwgMC40MzE1NDEsIDAuNjAyMDA0LCAwLjc1MDA3MiwgMC45NjI1ODUiLCBcCi0gICAgICAgICAgIjAuMDI4MzE4LCAwLjE3NjAxOSwgMC4zMjUxNDIsIDAuNDMwOTIzLCAwLjYwMjAxLCAwLjc1MDA0OSwgMC45NjIxMzYiLCBcCi0gICAgICAgICAgIjAuMDI4Mjk5LCAwLjE3NjAzOSwgMC4zMjUxNjIsIDAuNDMxNjY0LCAwLjYwMjAzMSwgMC43NTAwMSwgMC45NjIxMyIsIFwKLSAgICAgICAgICAiMC4wMjgzMTEsIDAuMTc1ODIsIDAuMzI0NTUxLCAwLjQzMTUzNywgMC42MDA2ODQsIDAuNzUxMDk4LCAwLjk2MTkzNCIsIFwKLSAgICAgICAgICAiMC4wMjgzMTgsIDAuMTc2MDQ5LCAwLjMyNTA3MiwgMC40MzE1MzksIDAuNjAyMDk0LCAwLjc1MDg3MywgMC45NjI2NzkiLCBcCi0gICAgICAgICAgIjAuMDI4MzE4LCAwLjE3NjAyOCwgMC4zMjUxNDksIDAuNDMwNzU4LCAwLjYwMjAwOCwgMC43NTAwMzYsIDAuOTYyMTI5IiwgXAotICAgICAgICAgICIwLjAyODI3OSwgMC4xNzYwMzMsIDAuMzI1MTQ0LCAwLjQzMTYwNSwgMC42MDIwMTEsIDAuNzUwMDEzLCAwLjk2MjEyNiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkQiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA3NjAxLCAwLjAwNzc2NywgMC4wMDc3OSwgMC4wMDc3OTMsIDAuMDA3ODAzLCAwLjAwNzgxMSwgMC4wMDc4MDkiLCBcCi0gICAgICAgICAgIjAuMDA3NTkxLCAwLjAwNzc1NywgMC4wMDc3NzksIDAuMDA3Nzg4LCAwLjAwNzc5MywgMC4wMDc3OTksIDAuMDA3Nzk5IiwgXAotICAgICAgICAgICIwLjAwNzU4MywgMC4wMDc3NDgsIDAuMDA3NzcxLCAwLjAwNzc3OCwgMC4wMDc3ODQsIDAuMDA3Nzg3LCAwLjAwNzc5IiwgXAotICAgICAgICAgICIwLjAwNzU3MiwgMC4wMDc3NCwgMC4wMDc3NjMsIDAuMDA3NzcsIDAuMDA3NzgzLCAwLjAwNzc3LCAwLjAwNzc4MiIsIFwKLSAgICAgICAgICAiMC4wMDc1NjQsIDAuMDA3NzMxLCAwLjAwNzc1NSwgMC4wMDc3NjIsIDAuMDA3NzY4LCAwLjAwNzc3MiwgMC4wMDc3NzUiLCBcCi0gICAgICAgICAgIjAuMDA3NTY0LCAwLjAwNzczMywgMC4wMDc3NTgsIDAuMDA3NzY1LCAwLjAwNzc3MSwgMC4wMDc3NzQsIDAuMDA3Nzc4IiwgXAotICAgICAgICAgICIwLjAwNzU3NywgMC4wMDc3MzcsIDAuMDA3NzY1LCAwLjAwNzc3MywgMC4wMDc3NzksIDAuMDA3Nzg0LCAwLjAwNzc4NiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA3OTkzLCAwLjAwODE0OSwgMC4wMDgxNzMsIDAuMDA4MTc0LCAwLjAwODE4MSwgMC4wMDgxODUsIDAuMDA4MTg1IiwgXAotICAgICAgICAgICIwLjAwNzk4MywgMC4wMDgxNDIsIDAuMDA4MTYyLCAwLjAwODE2OCwgMC4wMDgxNzMsIDAuMDA4MTc2LCAwLjAwODE3OCIsIFwKLSAgICAgICAgICAiMC4wMDc5NzgsIDAuMDA4MTM1LCAwLjAwODE1NiwgMC4wMDgxNjMsIDAuMDA4MTY5LCAwLjAwODE2OCwgMC4wMDgxNzIiLCBcCi0gICAgICAgICAgIjAuMDA3OTc0LCAwLjAwODEzLCAwLjAwODE1LCAwLjAwODE1NywgMC4wMDgxNjIsIDAuMDA4MTY2LCAwLjAwODE2NyIsIFwKLSAgICAgICAgICAiMC4wMDc5NjQsIDAuMDA4MTI1LCAwLjAwODE0NiwgMC4wMDgxNTIsIDAuMDA4MTU3LCAwLjAwODE2LCAwLjAwODE2MyIsIFwKLSAgICAgICAgICAiMC4wMDc5NjgsIDAuMDA4MTI3LCAwLjAwODE0OCwgMC4wMDgxNTksIDAuMDA4MTU2LCAwLjAwODE2MywgMC4wMDgxNjEiLCBcCi0gICAgICAgICAgIjAuMDA3OTc0LCAwLjAwODEzMiwgMC4wMDgxNDcsIDAuMDA4MTU2LCAwLjAwODE2MiwgMC4wMDgxNjUsIDAuMDA4MTY4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiR04iOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA5NDA3LCAwLjAwOTU3NiwgMC4wMDk1OTksIDAuMDA5NjA1LCAwLjAwOTYxMSwgMC4wMDk2MTUsIDAuMDA5NjE3IiwgXAotICAgICAgICAgICIwLjAwOTM5MywgMC4wMDk1NjIsIDAuMDA5NTg0LCAwLjAwOTU5MSwgMC4wMDk1OTcsIDAuMDA5NiwgMC4wMDk2MDIiLCBcCi0gICAgICAgICAgIjAuMDA5Mzg3LCAwLjAwOTU1NiwgMC4wMDk1NzcsIDAuMDA5NTg2LCAwLjAwOTU5NCwgMC4wMDk1OTUsIDAuMDA5NTk1IiwgXAotICAgICAgICAgICIwLjAwOTM5NSwgMC4wMDk1NjIsIDAuMDA5NTg1LCAwLjAwOTU4NywgMC4wMDk1OTcsIDAuMDA5NjAzLCAwLjAwOTYwNiIsIFwKLSAgICAgICAgICAiMC4wMDkzODksIDAuMDA5NTU3LCAwLjAwOTU3OSwgMC4wMDk1ODcsIDAuMDA5NTkyLCAwLjAwOTU5NSwgMC4wMDk1OTkiLCBcCi0gICAgICAgICAgIjAuMDA5Mzg4LCAwLjAwOTU1NywgMC4wMDk1OCwgMC4wMDk1ODcsIDAuMDA5NTk0LCAwLjAwOTU5NywgMC4wMDk1OTkiLCBcCi0gICAgICAgICAgIjAuMDA5Mzk1LCAwLjAwOTU2NCwgMC4wMDk1ODcsIDAuMDA5NTkzLCAwLjAwOTYsIDAuMDA5NjAyLCAwLjAwOTYwNSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA5NjI0LCAwLjAwOTc3NywgMC4wMDk3OTMsIDAuMDA5Nzk3LCAwLjAwOTgsIDAuMDA5ODAxLCAwLjAwOTgwMiIsIFwKLSAgICAgICAgICAiMC4wMDk2MDcsIDAuMDA5NzYyLCAwLjAwOTc3OCwgMC4wMDk3ODIsIDAuMDA5Nzg3LCAwLjAwOTc4NiwgMC4wMDk3ODYiLCBcCi0gICAgICAgICAgIjAuMDA5NjA5LCAwLjAwOTc2MywgMC4wMDk3NzksIDAuMDA5NzgzLCAwLjAwOTc4NiwgMC4wMDk3ODcsIDAuMDA5Nzg4IiwgXAotICAgICAgICAgICIwLjAwOTYwOSwgMC4wMDk3NjMsIDAuMDA5NzgsIDAuMDA5NzgzLCAwLjAwOTc4NiwgMC4wMDk3ODcsIDAuMDA5Nzg4IiwgXAotICAgICAgICAgICIwLjAwOTYxNCwgMC4wMDk3NjgsIDAuMDA5Nzg1LCAwLjAwOTc4OSwgMC4wMDk3OTEsIDAuMDA5NzkzLCAwLjAwOTc5MyIsIFwKLSAgICAgICAgICAiMC4wMDk2MjIsIDAuMDA5Nzc2LCAwLjAwOTc5MSwgMC4wMDk3OTYsIDAuMDA5Nzk5LCAwLjAwOTgwMSwgMC4wMDk4IiwgXAotICAgICAgICAgICIwLjAwOTYyOCwgMC4wMDk3ODUsIDAuMDA5ODAxLCAwLjAwOTgwNSwgMC4wMDk4MDcsIDAuMDA5ODEsIDAuMDA5ODEiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFFOKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDEuMDI4NTk7Ci0gICAgZnVuY3Rpb24gOiAiTjAiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkQiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTAzODIyLCAwLjE3ODQ5MywgMC4yNTA2MDUsIDAuMzAyMDUyLCAwLjM4NDQ0MiwgMC40NTY0OTgsIDAuNTU5NTQ3IiwgXAotICAgICAgICAgICIwLjExMjE2LCAwLjE4Njg0OSwgMC4yNTg5NjIsIDAuMzEwNDA4LCAwLjM5Mjc5OSwgMC40NjQ4NTUsIDAuNTY3OSIsIFwKLSAgICAgICAgICAiMC4xMjE5MzIsIDAuMTk2NjE0LCAwLjI2ODcyMywgMC4zMjAxNjksIDAuNDAyNTYxLCAwLjQ3NDYwNywgMC41Nzc2NTMiLCBcCi0gICAgICAgICAgIjAuMTMxMzA4LCAwLjIwNTk4NiwgMC4yNzgwOTUsIDAuMzI5NTQzLCAwLjQxMTg0MywgMC40ODM5MDUsIDAuNTg3MDM2IiwgXAotICAgICAgICAgICIwLjE0MDI5LCAwLjIxNDk4MywgMC4yODcwODUsIDAuMzM4NTQzLCAwLjQyMDkxMywgMC40OTI5ODUsIDAuNTk1OTIxIiwgXAotICAgICAgICAgICIwLjE1MzA2OCwgMC4yMjc3OTIsIDAuMjk5ODc4LCAwLjM1MTM0NywgMC40MzM3NTUsIDAuNTA1Nzg3LCAwLjYwODcxNSIsIFwKLSAgICAgICAgICAiMC4xNjMxMzYsIDAuMjM3ODY2LCAwLjMwOTk3MiwgMC4zNjE0NjksIDAuNDQzODUxLCAwLjUxNTg0OCwgMC42MTg4MTIiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzU0NDYsIDAuMTc4MDYzLCAwLjMyNjE1MSwgMC40MzIzLCAwLjYwMjgxMSwgMC43NTA5MDIsIDAuOTYzMTc3IiwgXAotICAgICAgICAgICIwLjAzNTUwOSwgMC4xNzgwNCwgMC4zMjYxNTIsIDAuNDMyMywgMC42MDI4MTQsIDAuNzUwOTA3LCAwLjk2MzI1IiwgXAotICAgICAgICAgICIwLjAzNTQ5OSwgMC4xNzgyMTcsIDAuMzI1NTA3LCAwLjQzMTg4NiwgMC42MDI4MzQsIDAuNzUwODMyLCAwLjk2Mjc3NyIsIFwKLSAgICAgICAgICAiMC4wMzU1MTEsIDAuMTc3OTMyLCAwLjMyNjE1NSwgMC40MzIxNTcsIDAuNjAwODUsIDAuNzUwODY1LCAwLjk2MzEwNCIsIFwKLSAgICAgICAgICAiMC4wMzU0NjQsIDAuMTc4MTU3LCAwLjMyNjE1MiwgMC40MzIzMjMsIDAuNjAyNDE0LCAwLjc1MDg5MywgMC45NjIzNTUiLCBcCi0gICAgICAgICAgIjAuMDM1Njk3LCAwLjE3Nzk5LCAwLjMyNTY5MiwgMC40MzIyOTQsIDAuNjAyNzk1LCAwLjc1MDgxNCwgMC45NjQzNzUiLCBcCi0gICAgICAgICAgIjAuMDM1OCwgMC4xNzgyMDUsIDAuMzI2MDkxLCAwLjQzMTU3OSwgMC42MDE1ODIsIDAuNzUxNzA2LCAwLjk2MzU1OSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwMTk1LCAwLjE3Nzk4OSwgMC4yNTE0NjksIDAuMzAzOTkxLCAwLjM4Nzk2MywgMC40NjE0NTMsIDAuNTY2NDI0IiwgXAotICAgICAgICAgICIwLjExMDgwNSwgMC4xODY4NDgsIDAuMjYwMzYxLCAwLjMxMjg0NSwgMC4zOTY4MiwgMC40NzAzMjEsIDAuNTc1MjcxIiwgXAotICAgICAgICAgICIwLjEyMTU3OSwgMC4xOTc2MSwgMC4yNzEwODcsIDAuMzIzNjE5LCAwLjQwNzU5NywgMC40ODA5OTksIDAuNTg2MDYxIiwgXAotICAgICAgICAgICIwLjEzMTkyNiwgMC4yMDc5NywgMC4yODE0ODQsIDAuMzMzOTczLCAwLjQxNzk0MiwgMC40OTE0NDIsIDAuNTk2Mzk1IiwgXAotICAgICAgICAgICIwLjE0MTk1MywgMC4yMTc5OTMsIDAuMjkxNTEsIDAuMzQ0MDAzLCAwLjQyNzk4NiwgMC41MDEzMjcsIDAuNjA2NDMiLCBcCi0gICAgICAgICAgIjAuMTU2NTI5LCAwLjIzMjU5MywgMC4zMDYwNywgMC4zNTg2MDMsIDAuNDQyNDcxLCAwLjUxNjAzNywgMC42MjA5OTciLCBcCi0gICAgICAgICAgIjAuMTY4MDE5LCAwLjI0NDA5NywgMC4zMTc2MTgsIDAuMzcwMDkyLCAwLjQ1NDA3NiwgMC41Mjc1NDYsIDAuNjMyNTM2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM0Nzc3LCAwLjE3NzQ5NSwgMC4zMjU2NjQsIDAuNDMwNTc5LCAwLjYwMjM0MiwgMC43NDk1MTIsIDAuOTY0MzgyIiwgXAotICAgICAgICAgICIwLjAzNDc2OCwgMC4xNzc0OTYsIDAuMzI1ODc0LCAwLjQzMDYwNywgMC42MDIzMzEsIDAuNzUwMjc1LCAwLjk2NDMzOSIsIFwKLSAgICAgICAgICAiMC4wMzQ3MzUsIDAuMTc3NDcsIDAuMzI1MzU1LCAwLjQzMDYzNSwgMC42MDE0OSwgMC43NTExNzIsIDAuOTYyMzA0IiwgXAotICAgICAgICAgICIwLjAzNDgwMSwgMC4xNzc0NzEsIDAuMzI1ODg1LCAwLjQzMDU4MiwgMC42MDIzMzcsIDAuNzQ4NzI1LCAwLjk2NDMxMyIsIFwKLSAgICAgICAgICAiMC4wMzQ3NDksIDAuMTc3MzYzLCAwLjMyNTg0NywgMC40MzA1ODEsIDAuNjAyMzQ4LCAwLjc0ODg3NSwgMC45NjQzMTciLCBcCi0gICAgICAgICAgIjAuMDM0ODQ2LCAwLjE3Nzk2NiwgMC4zMjQ2OCwgMC40MzA1NTUsIDAuNjAwODMyLCAwLjc1MDk1OSwgMC45NjQyNTQiLCBcCi0gICAgICAgICAgIjAuMDM0OTk5LCAwLjE3NzY5MywgMC4zMjU4OTEsIDAuNDMyMDEzLCAwLjYwMjMwMSwgMC43NTAzMDcsIDAuOTY0Mzc4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkdOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5vbl91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogZmFsbGluZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE0MzQxLCAwLjIxODA5MSwgMC4yOTAxOTEsIDAuMzQxNjQzLCAwLjQyNDAzMiwgMC40OTYwOTIsIDAuNTk5MTM4IiwgXAotICAgICAgICAgICIwLjE1MzI1MiwgMC4yMjc5MzUsIDAuMzAwMDM2LCAwLjM1MTU0MiwgMC40MzM4NzgsIDAuNTA1OTM0LCAwLjYwODk3NiIsIFwKLSAgICAgICAgICAiMC4xNjU1NTksIDAuMjQwMjQ0LCAwLjMxMjM0OSwgMC4zNjM4MzgsIDAuNDQ2MTkyLCAwLjUxODIzNywgMC42MjEyNzkiLCBcCi0gICAgICAgICAgIjAuMTc2NTYxLCAwLjI1MTIzOSwgMC4zMjMzMzIsIDAuMzc0NzkzLCAwLjQ1NzE4NywgMC41MjkyNTcsIDAuNjMyMDM5IiwgXAotICAgICAgICAgICIwLjE4NjE0NCwgMC4yNjA4MjksIDAuMzMyOTA3LCAwLjM4NDM3NiwgMC40NjY3OTQsIDAuNTM4NzUzLCAwLjY0MTc5MiIsIFwKLSAgICAgICAgICAiMC4xOTg5MDEsIDAuMjczNTg0LCAwLjM0NTY4OSwgMC4zOTcxODcsIDAuNDc5NTMsIDAuNTUxNTgyLCAwLjY1NDYxMSIsIFwKLSAgICAgICAgICAiMC4yMDg2NTksIDAuMjgzMzQzLCAwLjM1NTQ0NywgMC40MDY5MjMsIDAuNDg5Mjg4LCAwLjU2MTMzNywgMC42NjQzNzkiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzU1MDQsIDAuMTc3OTUsIDAuMzI2MTUzLCAwLjQzMjMwMSwgMC42MDI4MTQsIDAuNzUwOTMxLCAwLjk2MzIzMSIsIFwKLSAgICAgICAgICAiMC4wMzU0NzIsIDAuMTc4MTg2LCAwLjMyNjE0OSwgMC40MzE2MDgsIDAuNjAyODE4LCAwLjc1MDg5OCwgMC45NjMwNjYiLCBcCi0gICAgICAgICAgIjAuMDM1NDcsIDAuMTc4MTk5LCAwLjMyNjE1OSwgMC40MzI1MDEsIDAuNjAyODMyLCAwLjc1MDgyOCwgMC45NjMwNyIsIFwKLSAgICAgICAgICAiMC4wMzU0NywgMC4xNzc5MTIsIDAuMzI1NTA0LCAwLjQzMjI5LCAwLjYwMTQzMiwgMC43NTE5MSwgMC45NjIyNSIsIFwKLSAgICAgICAgICAiMC4wMzU0NjcsIDAuMTc4MjA1LCAwLjMyNjA5MywgMC40MzIyOTgsIDAuNjAyODc0LCAwLjc1MTY1OCwgMC45NjI5ODUiLCBcCi0gICAgICAgICAgIjAuMDM1NDg1LCAwLjE3ODE4NSwgMC4zMjYxNTYsIDAuNDMxNTg2LCAwLjYwMjgxOCwgMC43NTA4ODgsIDAuOTYzMDciLCBcCi0gICAgICAgICAgIjAuMDM1NDUzLCAwLjE3ODE5MSwgMC4zMjYxNTEsIDAuNDMyNDYxLCAwLjYwMjgxOSwgMC43NTA4NDQsIDAuOTYzMDY0Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTI2NjksIDAuMjAyNzM1LCAwLjI3NjI0NywgMC4zMjg3NDcsIDAuNDEyNzkyLCAwLjQ4NjIyOSwgMC41OTExMjUiLCBcCi0gICAgICAgICAgIjAuMTM2NDY1LCAwLjIxMjUxMSwgMC4yODYwMTcsIDAuMzM4NTE5LCAwLjQyMjQ4NiwgMC40OTU5NTksIDAuNjAwOTQ3IiwgXAotICAgICAgICAgICIwLjE0ODYwNywgMC4yMjQ2NjIsIDAuMjk4MTY5LCAwLjM1MDY3LCAwLjQzNDY0MiwgMC41MDgxMjUsIDAuNjEzMDc2IiwgXAotICAgICAgICAgICIwLjE1OTcwOCwgMC4yMzU3NTEsIDAuMzA5MjYsIDAuMzYxNzYyLCAwLjQ0NTczNiwgMC41MTkyMjksIDAuNjI0MTUyIiwgXAotICAgICAgICAgICIwLjE2OTYxMywgMC4yNDU2NiwgMC4zMTkxNywgMC4zNzE2OTUsIDAuNDU1NjI1LCAwLjUyOTE0OCwgMC42MzQwNzciLCBcCi0gICAgICAgICAgIjAuMTgyOTQzLCAwLjI1ODk5NSwgMC4zMzI1MTcsIDAuMzg1MDQzLCAwLjQ2OTAwOSwgMC41NDI1MDUsIDAuNjQ3NDYzIiwgXAotICAgICAgICAgICIwLjE5MzYzNSwgMC4yNjk2ODUsIDAuMzQzMTkyLCAwLjM5NTY5NSwgMC40Nzk2NTgsIDAuNTUzMTU2LCAwLjY1ODExMiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzNDcwNiwgMC4xNzczMTgsIDAuMzI1ODQ5LCAwLjQzMTUzOSwgMC42MDEyOTYsIDAuNzQ5ODEsIDAuOTY0MTk0IiwgXAotICAgICAgICAgICIwLjAzNDcwNSwgMC4xNzc5NTEsIDAuMzI1NDA2LCAwLjQzMTExMSwgMC42MDIzMjcsIDAuNzUxMzcyLCAwLjk2MjY0MSIsIFwKLSAgICAgICAgICAiMC4wMzQ3MDgsIDAuMTc3OTc5LCAwLjMyNTM5MywgMC40MzE1MTUsIDAuNjAyMzQ1LCAwLjc1MTQyOSwgMC45NjI5MTciLCBcCi0gICAgICAgICAgIjAuMDM0NzA3LCAwLjE3Nzk0MywgMC4zMjUzOTgsIDAuNDMxMjE5LCAwLjYwMjM2LCAwLjc1MTQ3OSwgMC45NjMwNDgiLCBcCi0gICAgICAgICAgIjAuMDM0NzA1LCAwLjE3Nzk3NCwgMC4zMjU4NDMsIDAuNDMxMTg3LCAwLjYwMjI4NywgMC43NDk5MSwgMC45NjQyOTciLCBcCi0gICAgICAgICAgIjAuMDM0NzI4LCAwLjE3NzMxMSwgMC4zMjUzOTUsIDAuNDMxMzY0LCAwLjYwMjMxNCwgMC43NTAyNjIsIDAuOTY0MzQ1IiwgXAotICAgICAgICAgICIwLjAzNDcyNiwgMC4xNzc5NzYsIDAuMzI1MzkyLCAwLjQzMDUxOCwgMC42MDIzMDksIDAuNzUwMjkzLCAwLjk2NDM0NiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkQiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA3OTkzLCAwLjAwODE0OSwgMC4wMDgxNzMsIDAuMDA4MTc0LCAwLjAwODE4MSwgMC4wMDgxODUsIDAuMDA4MTg1IiwgXAotICAgICAgICAgICIwLjAwNzk4MywgMC4wMDgxNDIsIDAuMDA4MTYyLCAwLjAwODE2OCwgMC4wMDgxNzMsIDAuMDA4MTc2LCAwLjAwODE3OCIsIFwKLSAgICAgICAgICAiMC4wMDc5NzgsIDAuMDA4MTM1LCAwLjAwODE1NiwgMC4wMDgxNjMsIDAuMDA4MTY5LCAwLjAwODE2OCwgMC4wMDgxNzIiLCBcCi0gICAgICAgICAgIjAuMDA3OTc0LCAwLjAwODEzLCAwLjAwODE1LCAwLjAwODE1NywgMC4wMDgxNjIsIDAuMDA4MTY2LCAwLjAwODE2NyIsIFwKLSAgICAgICAgICAiMC4wMDc5NjQsIDAuMDA4MTI1LCAwLjAwODE0NiwgMC4wMDgxNTIsIDAuMDA4MTU3LCAwLjAwODE2LCAwLjAwODE2MyIsIFwKLSAgICAgICAgICAiMC4wMDc5NjgsIDAuMDA4MTI3LCAwLjAwODE0OCwgMC4wMDgxNTksIDAuMDA4MTU2LCAwLjAwODE2MywgMC4wMDgxNjEiLCBcCi0gICAgICAgICAgIjAuMDA3OTc0LCAwLjAwODEzMiwgMC4wMDgxNDcsIDAuMDA4MTU2LCAwLjAwODE2MiwgMC4wMDgxNjUsIDAuMDA4MTY4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDc2MDEsIDAuMDA3NzY3LCAwLjAwNzc5LCAwLjAwNzc5MywgMC4wMDc4MDMsIDAuMDA3ODExLCAwLjAwNzgwOSIsIFwKLSAgICAgICAgICAiMC4wMDc1OTEsIDAuMDA3NzU3LCAwLjAwNzc3OSwgMC4wMDc3ODgsIDAuMDA3NzkzLCAwLjAwNzc5OSwgMC4wMDc3OTkiLCBcCi0gICAgICAgICAgIjAuMDA3NTgzLCAwLjAwNzc0OCwgMC4wMDc3NzEsIDAuMDA3Nzc4LCAwLjAwNzc4NCwgMC4wMDc3ODcsIDAuMDA3NzkiLCBcCi0gICAgICAgICAgIjAuMDA3NTcyLCAwLjAwNzc0LCAwLjAwNzc2MywgMC4wMDc3NywgMC4wMDc3ODMsIDAuMDA3NzcsIDAuMDA3NzgyIiwgXAotICAgICAgICAgICIwLjAwNzU2NCwgMC4wMDc3MzEsIDAuMDA3NzU1LCAwLjAwNzc2MiwgMC4wMDc3NjgsIDAuMDA3NzcyLCAwLjAwNzc3NSIsIFwKLSAgICAgICAgICAiMC4wMDc1NjQsIDAuMDA3NzMzLCAwLjAwNzc1OCwgMC4wMDc3NjUsIDAuMDA3NzcxLCAwLjAwNzc3NCwgMC4wMDc3NzgiLCBcCi0gICAgICAgICAgIjAuMDA3NTc3LCAwLjAwNzczNywgMC4wMDc3NjUsIDAuMDA3NzczLCAwLjAwNzc3OSwgMC4wMDc3ODQsIDAuMDA3Nzg2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiR04iOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA5NjI0LCAwLjAwOTc3NywgMC4wMDk3OTMsIDAuMDA5Nzk3LCAwLjAwOTgsIDAuMDA5ODAxLCAwLjAwOTgwMiIsIFwKLSAgICAgICAgICAiMC4wMDk2MDcsIDAuMDA5NzYyLCAwLjAwOTc3OCwgMC4wMDk3ODIsIDAuMDA5Nzg3LCAwLjAwOTc4NiwgMC4wMDk3ODYiLCBcCi0gICAgICAgICAgIjAuMDA5NjA5LCAwLjAwOTc2MywgMC4wMDk3NzksIDAuMDA5NzgzLCAwLjAwOTc4NiwgMC4wMDk3ODcsIDAuMDA5Nzg4IiwgXAotICAgICAgICAgICIwLjAwOTYwOSwgMC4wMDk3NjMsIDAuMDA5NzgsIDAuMDA5NzgzLCAwLjAwOTc4NiwgMC4wMDk3ODcsIDAuMDA5Nzg4IiwgXAotICAgICAgICAgICIwLjAwOTYxNCwgMC4wMDk3NjgsIDAuMDA5Nzg1LCAwLjAwOTc4OSwgMC4wMDk3OTEsIDAuMDA5NzkzLCAwLjAwOTc5MyIsIFwKLSAgICAgICAgICAiMC4wMDk2MjIsIDAuMDA5Nzc2LCAwLjAwOTc5MSwgMC4wMDk3OTYsIDAuMDA5Nzk5LCAwLjAwOTgwMSwgMC4wMDk4IiwgXAotICAgICAgICAgICIwLjAwOTYyOCwgMC4wMDk3ODUsIDAuMDA5ODAxLCAwLjAwOTgwNSwgMC4wMDk4MDcsIDAuMDA5ODEsIDAuMDA5ODEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwOTQwNywgMC4wMDk1NzYsIDAuMDA5NTk5LCAwLjAwOTYwNSwgMC4wMDk2MTEsIDAuMDA5NjE1LCAwLjAwOTYxNyIsIFwKLSAgICAgICAgICAiMC4wMDkzOTMsIDAuMDA5NTYyLCAwLjAwOTU4NCwgMC4wMDk1OTEsIDAuMDA5NTk3LCAwLjAwOTYsIDAuMDA5NjAyIiwgXAotICAgICAgICAgICIwLjAwOTM4NywgMC4wMDk1NTYsIDAuMDA5NTc3LCAwLjAwOTU4NiwgMC4wMDk1OTQsIDAuMDA5NTk1LCAwLjAwOTU5NSIsIFwKLSAgICAgICAgICAiMC4wMDkzOTUsIDAuMDA5NTYyLCAwLjAwOTU4NSwgMC4wMDk1ODcsIDAuMDA5NTk3LCAwLjAwOTYwMywgMC4wMDk2MDYiLCBcCi0gICAgICAgICAgIjAuMDA5Mzg5LCAwLjAwOTU1NywgMC4wMDk1NzksIDAuMDA5NTg3LCAwLjAwOTU5MiwgMC4wMDk1OTUsIDAuMDA5NTk5IiwgXAotICAgICAgICAgICIwLjAwOTM4OCwgMC4wMDk1NTcsIDAuMDA5NTgsIDAuMDA5NTg3LCAwLjAwOTU5NCwgMC4wMDk1OTcsIDAuMDA5NTk5IiwgXAotICAgICAgICAgICIwLjAwOTM5NSwgMC4wMDk1NjQsIDAuMDA5NTg3LCAwLjAwOTU5MywgMC4wMDk2LCAwLjAwOTYwMiwgMC4wMDk2MDUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogVExBVFNSWDEgKgotICogLS0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKFRMQVRTUlgxKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMzA2NjQ5OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIGxhdGNoIChRSU5ULE41KSB7Ci0gICAgZGF0YV9pbiA6ICJEIjsKLSAgICBlbmFibGUgOiAiKEcgUk4pIjsKLSAgICBwcmVzZXQgOiAiKCFTTikiOwotICB9Ci0gIHBpbihEKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2MTA3Njk7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjA5MzI4OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDYxMDc2OTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyMTgsIDAuMDAwMjIxLCAwLjAwMDIyMSwgMC4wMDAyMjIsIDAuMDAwMjIyLCAwLjAwMDIyMiwgMC4wMDAyMjIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyMzIsIDAuMDAwMjI4LCAwLjAwMDIyNywgMC4wMDAyMjcsIDAuMDAwMjI3LCAwLjAwMDIyNywgMC4wMDAyMjciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfZmFsbGluZzsKLSAgICAgIHdoZW4gOiAiUk4mU04iOwotICAgICAgc2RmX2NvbmQgOiAiUk5fRVFfMV9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAxODc1LCAtMC4wMDc1LCAwLjAwNSwgMC4wMTc1LCAwLjAyMzc1LCAwLjA0LCAwLjA0ODc1IiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDEyNSwgMCwgMC4wMDYyNSwgMC4wMTg3NSwgMC4wMjg3NSwgMC4wMzc1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDI1LCAtMC4wMTI1LCAwLCAwLjAwNjI1LCAwLjAxNjI1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjAzNzUsIC0wLjAyNSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAuMDEsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjA1NSwgLTAuMDQzNzUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAxMjUsIC0wLjAwMjUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA3MTI1LCAtMC4wNiwgLTAuMDQ3NSwgLTAuMDM1LCAtMC4wMjg3NSwgLTAuMDEyNSwgLTAuMDAzNzUiLCBcCi0gICAgICAgICAgIi0wLjA4LCAtMC4wNjg3NSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wMzc1LCAtMC4wMjc1LCAtMC4wMTg3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAzNzUsIC0wLjAyNjI1LCAtMC4wMiwgLTAuMDEzNzUsIC0wLjAxMzc1LCAtMC4wMDM3NSwgLTAuMDAxMjUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTUsIC0wLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjA1NSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMzEyNSwgLTAuMDIxMjUsIC0wLjAxODc1IiwgXAotICAgICAgICAgICItMC4wNjEyNSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDMzNzUsIC0wLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wNzM3NSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDQsIC0wLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjA4Mzc1LCAtMC4wNzg3NSwgLTAuMDY2MjUsIC0wLjA2LCAtMC4wNiwgLTAuMDUsIC0wLjA0NzUiLCBcCi0gICAgICAgICAgIi0wLjA5MjUsIC0wLjA4NzUsIC0wLjA3NSwgLTAuMDY4NzUsIC0wLjA2ODc1LCAtMC4wNTg3NSwgLTAuMDU2MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX2ZhbGxpbmc7Ci0gICAgICB3aGVuIDogIlJOJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIlJOX0VRXzFfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzc1LCAwLjAyNjI1LCAwLjAxMzc1LCAwLjAwMTI1LCAtMC4wMTEyNSwgLTAuMDIxMjUsIC0wLjAzIiwgXAotICAgICAgICAgICIwLjA0MjUsIDAuMDMxMjUsIDAuMDE4NzUsIDAuMDA2MjUsIDAsIC0wLjAxNjI1LCAtMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMDU1LCAwLjA0Mzc1LCAwLjAzMTI1LCAwLjAxODc1LCAwLjAwNjI1LCAtMC4wMDM3NSwgLTAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4wNjEyNSwgMC4wNSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAxODc1LCAwLjAwODc1LCAwIiwgXAotICAgICAgICAgICIwLjA3Mzc1LCAwLjA2MjUsIDAuMDUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMTUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMDgzNzUsIDAuMDc4NzUsIDAuMDY2MjUsIDAuMDUzNzUsIDAuMDQxMjUsIDAuMDMxMjUsIDAuMDIyNSIsIFwKLSAgICAgICAgICAiMC4wOTg3NSwgMC4wODc1LCAwLjA3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA0LCAwLjAzMTI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU2MjUsIDAuMDQ1LCAwLjAzODc1LCAwLjAzMjUsIDAuMDMyNSwgMC4wMjg3NSwgMC4wMjYyNSIsIFwKLSAgICAgICAgICAiMC4wNjc1LCAwLjA1NjI1LCAwLjA1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDMzNzUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMDczNzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNSwgMC4wNSwgMC4wNDYyNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4wOCwgMC4wNzUsIDAuMDYyNSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1MjUsIDAuMDUiLCBcCi0gICAgICAgICAgIjAuMDkyNSwgMC4wODEyNSwgMC4wNzUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNTg3NSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiMC4xMDI1LCAwLjA5MTI1LCAwLjA4NSwgMC4wNzg3NSwgMC4wNzI1LCAwLjA2ODc1LCAwLjA2NjI1IiwgXAotICAgICAgICAgICIwLjExMTI1LCAwLjEsIDAuMDkzNzUsIDAuMDg3NSwgMC4wODEyNSwgMC4wNzc1LCAwLjA3NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRykgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjM1Mjc4OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYzNTI3ODsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA1MzAyNTk7Ci0gICAgY2xvY2sgOiB0cnVlOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTg3NSwgMC4wMDE4NDcsIDAuMDAxODQxLCAwLjAwMTg0LCAwLjAwMTg1MiwgMC4wMDE4NzMsIDAuMDAxODk5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjU3LCAwLjAwMDI1NywgMC4wMDAyNTcsIDAuMDAwMjU3LCAwLjAwMDI1NywgMC4wMDAyNTcsIDAuMDAwMjU3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkciOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFEJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMjAyNjk5LCAwLjIxMTgyNCwgMC4yMjM0NTcsIDAuMjM0OTcyLCAwLjI0NTk1NCwgMC4yNjEyNDEsIDAuMjczMTk0Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihRKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMjYxNDY7Ci0gICAgZnVuY3Rpb24gOiAiUUlOVCI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTM4NTgzLCAwLjE2Mjc3MywgMC4yOTk3ODcsIDAuNDIwNzYzLCAwLjU4MjEzLCAwLjkwNDIwOSwgMS4xMDU5IiwgXAotICAgICAgICAgICIwLjE0NzMxOSwgMC4xNzE0MywgMC4zMDg0NjgsIDAuNDI5NDQ4LCAwLjU5MDc0LCAwLjkxMzczMywgMS4xMTUyMyIsIFwKLSAgICAgICAgICAiMC4xNTc5NTEsIDAuMTgyMDM2LCAwLjMxOTEzMywgMC40NDAxMDIsIDAuNjAxNTkyLCAwLjkyMzY2NCwgMS4xMjU5IiwgXAotICAgICAgICAgICIwLjE2ODE2NSwgMC4xOTIzODgsIDAuMzI5NDEsIDAuNDUwNDA2LCAwLjYxMTYwNCwgMC45MzQ0MjIsIDEuMTM2MjEiLCBcCi0gICAgICAgICAgIjAuMTc3NzIyLCAwLjIwMTk3MiwgMC4zMzg5NjYsIDAuNDU5OTM3LCAwLjYyMTQ2NSwgMC45NDM5ODcsIDEuMTQ1NzYiLCBcCi0gICAgICAgICAgIjAuMTkxMzc5LCAwLjIxNTU3NywgMC4zNTI2MzUsIDAuNDczNTk1LCAwLjYzNDczLCAwLjk1NzI3NywgMS4xNTkzOSIsIFwKLSAgICAgICAgICAiMC4yMDIzMDYsIDAuMjI2NTE3LCAwLjM2MzYwNiwgMC40ODQ1MzUsIDAuNjQ1OTU4LCAwLjk2ODY3NiwgMS4xNzAyMiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODkyOTcsIDAuMTM4OTE0LCAwLjQyMDMwNiwgMC42NzA2MTYsIDEuMDAzMzMsIDEuNjYyNTcsIDIuMDc2ODUiLCBcCi0gICAgICAgICAgIjAuMDg5MTMxLCAwLjEzODY5NCwgMC40MjAzMTYsIDAuNjY5ODA4LCAxLjAwMDc1LCAxLjY2NDUxLCAyLjA4MzM1IiwgXAotICAgICAgICAgICIwLjA4OTI3OSwgMC4xMzg3MjgsIDAuNDIwNTY4LCAwLjY3MDk0NSwgMS4wMDExNiwgMS42NjI2MSwgMi4wODMxMyIsIFwKLSAgICAgICAgICAiMC4wODkzMDcsIDAuMTM4ODk3LCAwLjQyMDkzNCwgMC42NzEwMDgsIDEuMDAyNzcsIDEuNjY3OTEsIDIuMDgzMzQiLCBcCi0gICAgICAgICAgIjAuMDg5MzY1LCAwLjEzODkzNiwgMC40MjAzMDYsIDAuNjY5NzksIDEuMDAxMTQsIDEuNjY3OSwgMi4wODMyOSIsIFwKLSAgICAgICAgICAiMC4wODkxNjUsIDAuMTM5MDM1LCAwLjQyMDM0MywgMC42Njk5NDYsIDEuMDAxNDYsIDEuNjYyNzQsIDIuMDgzMjgiLCBcCi0gICAgICAgICAgIjAuMDg5Mzc3LCAwLjEzODkzLCAwLjQyMTYxMywgMC42NzA5MywgMS4wMDMwOSwgMS42Njc2LCAyLjA4Mjg3Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE2MzI1NywgMC4xODgxMTgsIDAuMzI4MjIyLCAwLjQ1MTkzNywgMC42MTY5MzIsIDAuOTQ2MzYxLCAxLjE1MjQ1IiwgXAotICAgICAgICAgICIwLjE3MTc4MywgMC4xOTY2MzUsIDAuMzM2NzQyLCAwLjQ2MDQ1NCwgMC42MjUyMSwgMC45NTQ4NTIsIDEuMTYwOTgiLCBcCi0gICAgICAgICAgIjAuMTgxMzgzLCAwLjIwNjE2MiwgMC4zNDYzMDYsIDAuNDY5OTIxLCAwLjYzNDg0MywgMC45NjQzNzgsIDEuMTcwMzYiLCBcCi0gICAgICAgICAgIjAuMTkwNTA5LCAwLjIxNTI4MywgMC4zNTU0NDQsIDAuNDc5MDM2LCAwLjY0NDE0MiwgMC45NzM0OTYsIDEuMTc5NTIiLCBcCi0gICAgICAgICAgIjAuMTk4ODI0LCAwLjIyMzU3MSwgMC4zNjM3NTksIDAuNDg3NDc4LCAwLjY1MjQ0MywgMC45ODE5ODMsIDEuMTg4NDkiLCBcCi0gICAgICAgICAgIjAuMjEwNzc3LCAwLjIzNTU0NiwgMC4zNzU3MTcsIDAuNDk5NDA2LCAwLjY2NDQxOSwgMC45OTQwNTcsIDEuMjAwMTYiLCBcCi0gICAgICAgICAgIjAuMjE5OTQsIDAuMjQ0Njg0LCAwLjM4NDgzNSwgMC41MDg0OTMsIDAuNjczNTY1LCAxLjAwMzQ2LCAxLjIwOTYyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4OTM1LCAwLjEzODgyMiwgMC40MjEzNTcsIDAuNjcwNzQ0LCAxLjAwMzM4LCAxLjY2MjE2LCAyLjA3NjM1IiwgXAotICAgICAgICAgICIwLjA4OTM0OSwgMC4xMzg4NzYsIDAuNDIxMzU1LCAwLjY3MDcyOCwgMS4wMDE3NSwgMS42NjIsIDIuMDc2MjMiLCBcCi0gICAgICAgICAgIjAuMDg5MjQ2LCAwLjEzODc5MywgMC40MjEzNTEsIDAuNjY5NDE0LCAwLjk5OTIxNCwgMS42NjIxLCAyLjA3NjA2IiwgXAotICAgICAgICAgICIwLjA4OTI0MSwgMC4xMzg4MzcsIDAuNDIxMzUyLCAwLjY2ODUyNiwgMS4wMDMzNCwgMS42NjMzNiwgMi4wNzU4IiwgXAotICAgICAgICAgICIwLjA4OTM3OCwgMC4xMzg4NDgsIDAuNDIxMzI2LCAwLjY3MDc0MSwgMS4wMDMyNiwgMS42NjMwOSwgMi4wODM1OSIsIFwKLSAgICAgICAgICAiMC4wODkzMzcsIDAuMTM4ODYxLCAwLjQyMTI5NCwgMC42NzA0OTUsIDEuMDAzMzIsIDEuNjYxNjMsIDIuMDc1MSIsIFwKLSAgICAgICAgICAiMC4wODkzNDksIDAuMTM4ODc4LCAwLjQyMTIyLCAwLjY3MDA3NCwgMS4wMDM0LCAxLjY2NzksIDIuMDgzMjIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBub25fdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJpc2luZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xOTEzMjQsIDAuMjE1NTA5LCAwLjM1MjQ0NywgMC40NzM0MTksIDAuNjM0ODIzLCAwLjk1NzU0OCwgMS4xNTkxNyIsIFwKLSAgICAgICAgICAiMC4yMDAzMzksIDAuMjI0MzgsIDAuMzYxNDY1LCAwLjQ4MjQzNiwgMC42NDM4NDIsIDAuOTY2NTQ2LCAxLjE2ODIiLCBcCi0gICAgICAgICAgIjAuMjEyMTI4LCAwLjIzNjMxLCAwLjM3MzMyOSwgMC40OTQyMjEsIDAuNjU1NjI0LCAwLjk3ODMyNywgMS4xNzk3MSIsIFwKLSAgICAgICAgICAiMC4yMjM3NDEsIDAuMjQ3Nzc3LCAwLjM4NDg1OSwgMC41MDU4MzQsIDAuNjY3MjM5LCAwLjk4OTkzOCwgMS4xOTE1NyIsIFwKLSAgICAgICAgICAiMC4yMzQyNDQsIDAuMjU4NDI1LCAwLjM5NTM2OSwgMC41MTYzMzksIDAuNjc3NzQ1LCAxLjAwMDQ1LCAxLjIwMjEzIiwgXAotICAgICAgICAgICIwLjI0OTE5NywgMC4yNzMzODEsIDAuNDEwMzE5LCAwLjUzMTI5LCAwLjY5MjcsIDEuMDE1NDMsIDEuMjE3MDUiLCBcCi0gICAgICAgICAgIjAuMjYwMjYsIDAuMjg0NTkzLCAwLjQyMTUzMSwgMC41NDI1LCAwLjcwMzgwNCwgMS4wMjYzOSwgMS4yMjgyOSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODkzODcsIDAuMTM4OTgyLCAwLjQyMDk3NSwgMC42NzA2MzcsIDEuMDAzMjgsIDEuNjY3OTMsIDIuMDgzMzMiLCBcCi0gICAgICAgICAgIjAuMDg5Mzg3LCAwLjEzODg4MSwgMC40MjA5ODgsIDAuNjcwNjM1LCAxLjAwMzI5LCAxLjY2NzkzLCAyLjA4MzM1IiwgXAotICAgICAgICAgICIwLjA4OTM4OCwgMC4xMzg5ODEsIDAuNDIxNjM2LCAwLjY3MDYzMiwgMS4wMDMyNywgMS42Njc5MSwgMi4wODA3NCIsIFwKLSAgICAgICAgICAiMC4wODkzODksIDAuMTM4OTY5LCAwLjQyMDk1NSwgMC42NzA2MzMsIDEuMDAzMjcsIDEuNjY3ODksIDIuMDgzMzEiLCBcCi0gICAgICAgICAgIjAuMDg5Mzg3LCAwLjEzOTAwNCwgMC40MjA5OTEsIDAuNjcwNjM1LCAxLjAwMzI3LCAxLjY2NzkyLCAyLjA4MzIzIiwgXAotICAgICAgICAgICIwLjA4OTM4NSwgMC4xMzg5ODUsIDAuNDIwOTgxLCAwLjY3MDYzMiwgMS4wMDMyNywgMS42Njc5MSwgMi4wODMzIiwgXAotICAgICAgICAgICIwLjA4OTM0NiwgMC4xMzg5OTQsIDAuNDIwOTY2LCAwLjY3MDYyLCAxLjAwMjcxLCAxLjY2NTU4LCAyLjA4MzI5Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIwMjY5OSwgMC4yMjc0NDIsIDAuMzY3NTk2LCAwLjQ5MTMwMywgMC42NTYzMTcsIDAuOTg2MjQzLCAxLjE5MjM1IiwgXAotICAgICAgICAgICIwLjIxMTgyNCwgMC4yMzY0ODgsIDAuMzc2NjQ4LCAwLjUwMDM2MiwgMC42NjUyNDksIDAuOTk1MDYyLCAxLjIwMTQ3IiwgXAotICAgICAgICAgICIwLjIyMzQ1NywgMC4yNDgxMjEsIDAuMzg4MjgzLCAwLjUxMjAwNCwgMC42NzcsIDEuMDA2ODMsIDEuMjEyNzciLCBcCi0gICAgICAgICAgIjAuMjM0OTcyLCAwLjI1OTc0MywgMC4zOTk4NjUsIDAuNTIzNTk4LCAwLjY4ODYxLCAxLjAxODUyLCAxLjIyNDY2IiwgXAotICAgICAgICAgICIwLjI0NTk1NCwgMC4yNzA2NDQsIDAuNDEwNzg3LCAwLjUzNDUwMSwgMC42OTk1MzEsIDEuMDI5NDMsIDEuMjM1NTUiLCBcCi0gICAgICAgICAgIjAuMjYxMjQxLCAwLjI4NTkwNywgMC40MjYwNiwgMC41NDk3NDgsIDAuNzE0NzQxLCAxLjA0NDY3LCAxLjI1MDc4IiwgXAotICAgICAgICAgICIwLjI3MzE5NCwgMC4yOTc5NDUsIDAuNDM4MDk2LCAwLjU2MTgwNSwgMC43MjY4MTgsIDEuMDU2NzQsIDEuMjYyODUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg5MzY1LCAwLjEzODg4NiwgMC40MjEyMDUsIDAuNjcwNTk1LCAxLjAwMzM5LCAxLjY2ODM1LCAyLjA4MzU2IiwgXAotICAgICAgICAgICIwLjA4OTM1NiwgMC4xMzg4ODQsIDAuNDIxMzQsIDAuNjcwNzI3LCAxLjAwMTY1LCAxLjY2NjY5LCAyLjA4MzgyIiwgXAotICAgICAgICAgICIwLjA4OTM1OCwgMC4xMzg4ODUsIDAuNDIxMzQ0LCAwLjY3MDc3MiwgMS4wMDMzOSwgMS42Njc5MywgMi4wODA2IiwgXAotICAgICAgICAgICIwLjA4OTM2NywgMC4xMzg4NzcsIDAuNDIwNjMyLCAwLjY3MDU2LCAxLjAwMzM1LCAxLjY2ODE5LCAyLjA4MzUzIiwgXAotICAgICAgICAgICIwLjA4OTM2MywgMC4xMzg4OTQsIDAuNDIwNzI4LCAwLjY3MDU2NCwgMS4wMDMzNSwgMS42NjgyMiwgMi4wODM0OSIsIFwKLSAgICAgICAgICAiMC4wODkzNTUsIDAuMTM4ODg0LCAwLjQyMTMxOSwgMC42NzA0OTQsIDEuMDAzMjMsIDEuNjY4MTQsIDIuMDgzMzYiLCBcCi0gICAgICAgICAgIjAuMDg5MzU4LCAwLjEzODg4NywgMC40MjExNzEsIDAuNjcwNTc4LCAxLjAwMzM2LCAxLjY2ODI3LCAyLjA4MzQ4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiByaXNpbmdfZWRnZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTk0MjMxLCAwLjIxODI2LCAwLjM1NTQxNywgMC40NzYzMjQsIDAuNjM3NzI4LCAwLjk2MDQyOCwgMS4xNjE3OSIsIFwKLSAgICAgICAgICAiMC4yMDI5NjEsIDAuMjI3MDc5LCAwLjM2NDA4NywgMC40ODUwNTksIDAuNjQ2NDY3LCAwLjk2OTE3NSwgMS4xNzA4MSIsIFwKLSAgICAgICAgICAiMC4yMTM4MDYsIDAuMjM3OTIzLCAwLjM3NDkzMiwgMC40OTU5MDMsIDAuNjU3MzEyLCAwLjk4MDAyMSwgMS4xODE2NiIsIFwKLSAgICAgICAgICAiMC4yMjQyNTgsIDAuMjQ4NDQsIDAuMzg1Mzg0LCAwLjUwNjM1MywgMC42Njc3NjEsIDAuOTkwNDY0LCAxLjE5MjE5IiwgXAotICAgICAgICAgICIwLjIzMzU3NywgMC4yNTc4MDUsIDAuMzk0ODM5LCAwLjUxNTY2NywgMC42NzcyMDgsIDAuOTk5NzkxLCAxLjIwMTU2IiwgXAotICAgICAgICAgICIwLjI0NzU3NywgMC4yNzE2MjEsIDAuNDA4Njk3LCAwLjUyOTY2NCwgMC42OTEwNjYsIDEuMDEzNjksIDEuMjE1NDEiLCBcCi0gICAgICAgICAgIjAuMjU4MjMzLCAwLjI4MjI2NSwgMC40MTkzOTQsIDAuNTQwMzMsIDAuNzAxNzQyLCAxLjAyNDQzLCAxLjIyNjE4Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4OTM4OCwgMC4xMzg5NTQsIDAuNDIxNjA0LCAwLjY3MDYzMiwgMS4wMDMyNywgMS42Njc5MSwgMi4wNzkzNSIsIFwKLSAgICAgICAgICAiMC4wODkzODcsIDAuMTM4OTY1LCAwLjQyMDk5MSwgMC42NzA2MzUsIDEuMDAzMjksIDEuNjY3OTMsIDIuMDgzMzQiLCBcCi0gICAgICAgICAgIjAuMDg5Mzg3LCAwLjEzODk2NCwgMC40MjA5OTMsIDAuNjcwNjMzLCAxLjAwMzI5LCAxLjY2NzkzLCAyLjA4MzM0IiwgXAotICAgICAgICAgICIwLjA4OTM4NywgMC4xMzkwMDgsIDAuNDIwOTk0LCAwLjY3MDYzMywgMS4wMDMyOCwgMS42Njc5MiwgMi4wODMyNCIsIFwKLSAgICAgICAgICAiMC4wODkzODYsIDAuMTM4OTY2LCAwLjQyMDk3NSwgMC42NzA2MzUsIDEuMDAzMjcsIDEuNjY3OTEsIDIuMDgzMzIiLCBcCi0gICAgICAgICAgIjAuMDg5Mzg3LCAwLjEzODgzNSwgMC40MjEwNDUsIDAuNjcwNjQzLCAxLjAwMzI3LCAxLjY2Nzg0LCAyLjA4MzMiLCBcCi0gICAgICAgICAgIjAuMDg5Mzg2LCAwLjEzODk3MywgMC40MjE1MDksIDAuNjY5OTU3LCAxLjAwMzI3LCAxLjY2Nzg5LCAyLjA4MzI0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiBmYWxsaW5nX2VkZ2U7Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIwMzI0MiwgMC4yMjc4OCwgMC4zNjgwNjEsIDAuNDkxNjksIDAuNjU2NzM5LCAwLjk4NjYyNSwgMS4xOTI0NyIsIFwKLSAgICAgICAgICAiMC4yMTI4NTksIDAuMjM3NTAxLCAwLjM3NzY4MSwgMC41MDEzNjYsIDAuNjY2MzYxLCAwLjk5NTk2LCAxLjIwMjA5IiwgXAotICAgICAgICAgICIwLjIyNDk3NSwgMC4yNDk3MzIsIDAuMzg5OTEzLCAwLjUxMzYzNywgMC42Nzg1OTksIDEuMDA4MjYsIDEuMjE0NTgiLCBcCi0gICAgICAgICAgIjAuMjM1OTQxLCAwLjI2MDcwOSwgMC40MDA4NDgsIDAuNTI0NTgyLCAwLjY4OTU2NSwgMS4wMTkyMiwgMS4yMjUzMSIsIFwKLSAgICAgICAgICAiMC4yNDU5LCAwLjI3MDU0NCwgMC40MTA3MjUsIDAuNTM0NDEsIDAuNjk5NDA0LCAxLjAyOSwgMS4yMzUxNCIsIFwKLSAgICAgICAgICAiMC4yNTk5NjgsIDAuMjg0NjA5LCAwLjQyNDc5NywgMC41NDg0ODIsIDAuNzEzNDY0LCAxLjA0MzExLCAxLjI0OTIxIiwgXAotICAgICAgICAgICIwLjI3MjIyNiwgMC4yOTcwNzcsIDAuNDM3MTgxLCAwLjU2MDgyNCwgMC43MjU4MDgsIDEuMDU1MjksIDEuMjYxNDMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg5MzgxLCAwLjEzODg3MywgMC40MjEzNjMsIDAuNjcwNjY3LCAxLjAwMzI1LCAxLjY2ODA3LCAyLjA4MjkiLCBcCi0gICAgICAgICAgIjAuMDg5MzY0LCAwLjEzODg1OSwgMC40MjEzNjEsIDAuNjcwNTM1LCAxLjAwMzIxLCAxLjY2NDc4LCAyLjA4MTE2IiwgXAotICAgICAgICAgICIwLjA4OTM1OSwgMC4xMzg4ODEsIDAuNDIxMzU5LCAwLjY3MDc2MiwgMS4wMDMyNSwgMS42NjY2MywgMi4wODMxIiwgXAotICAgICAgICAgICIwLjA4OTM3NCwgMC4xMzg4OCwgMC40MjEzNzYsIDAuNjcwNjQsIDEuMDAzMTksIDEuNjY3NDQsIDIuMDgzMTYiLCBcCi0gICAgICAgICAgIjAuMDg5MzY0LCAwLjEzODg4LCAwLjQyMTMzOCwgMC42NzA2MjIsIDEuMDAzMjMsIDEuNjY1MjMsIDIuMDgxMTUiLCBcCi0gICAgICAgICAgIjAuMDg5Mzc2LCAwLjEzODg4LCAwLjQyMTM0NSwgMC42NzA1MTksIDEuMDAzMTIsIDEuNjY1OTQsIDIuMDgxMTIiLCBcCi0gICAgICAgICAgIjAuMDg5MzMzLCAwLjEzODg3OCwgMC40MjEzMzksIDAuNjcwMTQyLCAxLjAwMjk0LCAxLjY2NiwgMi4wODA5OCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcHJlc2V0OwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTQ5MTIsIDAuMTE5MDAzLCAwLjI1NjA0MiwgMC4zNzcwMTEsIDAuNTM4MjUxLCAwLjg2MDk0NSwgMS4wNjIzNiIsIFwKLSAgICAgICAgICAiMC4xMDQ4ODEsIDAuMTI4OTc1LCAwLjI2NjAxMSwgMC4zODY5OTEsIDAuNTQ4MjIsIDAuODcwOTE0LCAxLjA3MjM1IiwgXAotICAgICAgICAgICIwLjExNzEwMywgMC4xNDEyNzIsIDAuMjc4MzE2LCAwLjM5OTMwMywgMC41NjA1NDcsIDAuODgzMTI5LCAxLjA4NDcyIiwgXAotICAgICAgICAgICIwLjEyOTEwMSwgMC4xNTMyODgsIDAuMjkwNDA2LCAwLjQxMTI3NSwgMC41NzI2NjksIDAuODk1MjU2LCAxLjA5NjkzIiwgXAotICAgICAgICAgICIwLjEzOTk5NiwgMC4xNjQxMzMsIDAuMzAxMTM3LCAwLjQyMjA4NCwgMC41ODMzNjYsIDAuOTA1OTY2LCAxLjEwNzQ5IiwgXAotICAgICAgICAgICIwLjE1NDYzOSwgMC4xNzg3NjcsIDAuMzE1NzY1LCAwLjQzNjgyMSwgMC41OTgxNDgsIDAuOTIwNjA5LCAxLjEyMjM2IiwgXAotICAgICAgICAgICIwLjE2NTc0MiwgMC4xODk5MTMsIDAuMzI2OTA1LCAwLjQ0Nzk2NCwgMC42MDkyNzQsIDAuOTMxNzE3LCAxLjEzMzUyIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4OTQxMSwgMC4xMzg5NjYsIDAuNDIxNTE4LCAwLjY3MDc4MSwgMS4wMDI5OCwgMS42Njc2NCwgMi4wODI3MyIsIFwKLSAgICAgICAgICAiMC4wODkxNzksIDAuMTM4NzYzLCAwLjQyMDgzNCwgMC42NzA3NTMsIDEuMDAzMTMsIDEuNjY3NjksIDIuMDgwMzMiLCBcCi0gICAgICAgICAgIjAuMDg5MTk5LCAwLjEzODk3OCwgMC40MjE1MiwgMC42NzA3NjQsIDEuMDAzMDksIDEuNjY3NTUsIDIuMDgwMzEiLCBcCi0gICAgICAgICAgIjAuMDg5NDAyLCAwLjEzOTAwMSwgMC40MjE1NjQsIDAuNjcwNzA4LCAxLjAwMzA2LCAxLjY2NzYsIDIuMDgyNzciLCBcCi0gICAgICAgICAgIjAuMDg5MzUxLCAwLjEzOTAxMSwgMC40MjA4NTYsIDAuNjcwNjc0LCAxLjAwMjk3LCAxLjY2NzM5LCAyLjA4MjciLCBcCi0gICAgICAgICAgIjAuMDg5MzU0LCAwLjEzOTAzOCwgMC40MjEzNiwgMC42NzA2NDksIDEuMDAyOTYsIDEuNjY3NDksIDIuMDgyNzUiLCBcCi0gICAgICAgICAgIjAuMDg5MzAzLCAwLjEzODk2LCAwLjQyMTQ3NywgMC42NzA1MDEsIDEuMDAyMzksIDEuNjY3MDksIDIuMDgyNDUiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTIwMTMsIDAuMTQ0ODI5LCAwLjI4NTAxMywgMC40MDg2NjQsIDAuNTczNTYzLCAwLjkwMzY3NSwgMS4xMDk4NiIsIFwKLSAgICAgICAgICAiMC4xMjg2OTgsIDAuMTUzNTE1LCAwLjI5MzYxNywgMC40MTczNzEsIDAuNTgyMzg4LCAwLjkxMjM2NywgMS4xMTc5IiwgXAotICAgICAgICAgICIwLjEzOTM0MywgMC4xNjQxMDksIDAuMzA0MywgMC40Mjc5ODQsIDAuNTkyOTk5LCAwLjkyMjkzMiwgMS4xMjkwNCIsIFwKLSAgICAgICAgICAiMC4xNDk5NTEsIDAuMTc0NjAxLCAwLjMxNDc3MiwgMC40Mzg1MDksIDAuNjAzNDgxLCAwLjkzMzI1MiwgMS4xMzk0IiwgXAotICAgICAgICAgICIwLjE2MDMyNCwgMC4xODUwNDMsIDAuMzI1MjA1LCAwLjQ0ODg2MSwgMC42MTM3ODgsIDAuOTQzODgxLCAxLjE1MDMzIiwgXAotICAgICAgICAgICIwLjE3NTUyNywgMC4yMDAxNjEsIDAuMzQwMzY2LCAwLjQ2NDA1NywgMC42MjkwNjcsIDAuOTU5MTI1LCAxLjE2NTA4IiwgXAotICAgICAgICAgICIwLjE4NzI1NSwgMC4yMTIwNTUsIDAuMzUyMTc4LCAwLjQ3NTgxNSwgMC42NDA4MjcsIDAuOTcwODA1LCAxLjE3NzAxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4OTM3MiwgMC4xMzg4NTEsIDAuNDIxMzI2LCAwLjY3MDQ4NCwgMS4wMDMzMywgMS42Njg2LCAyLjA4NDI2IiwgXAotICAgICAgICAgICIwLjA4OTM3NCwgMC4xMzg4NzUsIDAuNDIxMjE3LCAwLjY3MDUyNywgMS4wMDMzMywgMS42Njg1NCwgMi4wODA3NCIsIFwKLSAgICAgICAgICAiMC4wODkzNzMsIDAuMTM4ODc1LCAwLjQyMTM0OSwgMC42NzA1MDYsIDEuMDAzMzIsIDEuNjY4NTEsIDIuMDgwNzYiLCBcCi0gICAgICAgICAgIjAuMDg5Mzc0LCAwLjEzODg3MywgMC40MjEzNSwgMC42NzA4NSwgMS4wMDMzNiwgMS42NjQ5MiwgMi4wODMxMyIsIFwKLSAgICAgICAgICAiMC4wODkzNDksIDAuMTM4ODc1LCAwLjQyMTI1OCwgMC42NzAxMjgsIDEuMDAxMjgsIDEuNjY1ODMsIDIuMDc5ODEiLCBcCi0gICAgICAgICAgIjAuMDg5MzY2LCAwLjEzODg4NiwgMC40MjEzMTcsIDAuNjcwNTM3LCAxLjAwMzM1LCAxLjY2NTQ4LCAyLjA3OTk0IiwgXAotICAgICAgICAgICIwLjA4OTQ2NSwgMC4xMzg4NzcsIDAuNDIxMzQ5LCAwLjY3MDU2MiwgMS4wMDM0MywgMS42NjYwOCwgMi4wODAxNSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkQiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjksIDAuMDAyOTA3LCAwLjAwMjkxOCwgMC4wMDI5MTksIDAuMDAyOTIsIDAuMDAyOTIzLCAwLjAwMjkxOSIsIFwKLSAgICAgICAgICAiMC4wMDI4OSwgMC4wMDI4OTcsIDAuMDAyOTA3LCAwLjAwMjkwOSwgMC4wMDI5MSwgMC4wMDI5MTEsIDAuMDAyOTExIiwgXAotICAgICAgICAgICIwLjAwMjg4MywgMC4wMDI4OTEsIDAuMDAyOTAxLCAwLjAwMjkwMywgMC4wMDI5MDQsIDAuMDAyOTA0LCAwLjAwMjkwNSIsIFwKLSAgICAgICAgICAiMC4wMDI4NzgsIDAuMDAyODg2LCAwLjAwMjg5NiwgMC4wMDI4OTgsIDAuMDAyODk5LCAwLjAwMjg5OSwgMC4wMDI5IiwgXAotICAgICAgICAgICIwLjAwMjg3NSwgMC4wMDI4ODMsIDAuMDAyODkzLCAwLjAwMjg5NSwgMC4wMDI4OTYsIDAuMDAyODk3LCAwLjAwMjg5OCIsIFwKLSAgICAgICAgICAiMC4wMDI4NzgsIDAuMDAyODg1LCAwLjAwMjg5NiwgMC4wMDI5MDEsIDAuMDAyOSwgMC4wMDI4OTksIDAuMDAyOTAxIiwgXAotICAgICAgICAgICIwLjAwMjg4MiwgMC4wMDI4OSwgMC4wMDI5MDEsIDAuMDAyOTAzLCAwLjAwMjkwNCwgMC4wMDI5MDUsIDAuMDAyOTA2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzMjIxLCAwLjAwMzIyNywgMC4wMDMyMzYsIDAuMDAzMjM3LCAwLjAwMzIzNywgMC4wMDMyMzksIDAuMDAzMjQxIiwgXAotICAgICAgICAgICIwLjAwMzIxNSwgMC4wMDMyMjEsIDAuMDAzMjI5LCAwLjAwMzIzMSwgMC4wMDMyMzIsIDAuMDAzMjMzLCAwLjAwMzIzMyIsIFwKLSAgICAgICAgICAiMC4wMDMyMTEsIDAuMDAzMjE3LCAwLjAwMzIyNSwgMC4wMDMyMjcsIDAuMDAzMjI4LCAwLjAwMzIyOSwgMC4wMDMyMjkiLCBcCi0gICAgICAgICAgIjAuMDAzMjA5LCAwLjAwMzIxNSwgMC4wMDMyMjQsIDAuMDAzMjI2LCAwLjAwMzIyNywgMC4wMDMyMjcsIDAuMDAzMjI3IiwgXAotICAgICAgICAgICIwLjAwMzIwNiwgMC4wMDMyMTIsIDAuMDAzMjIxLCAwLjAwMzIyMywgMC4wMDMyMjQsIDAuMDAzMjI0LCAwLjAwMzIyNCIsIFwKLSAgICAgICAgICAiMC4wMDMyMDQsIDAuMDAzMjEsIDAuMDAzMjE5LCAwLjAwMzIyLCAwLjAwMzIyMSwgMC4wMDMyMjEsIDAuMDAzMjIyIiwgXAotICAgICAgICAgICIwLjAwMzIwOSwgMC4wMDMyMTYsIDAuMDAzMjI1LCAwLjAwMzIyNiwgMC4wMDMyMjksIDAuMDAzMjI5LCAwLjAwMzIzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzODM0LCAwLjAwMzg0MSwgMC4wMDM4NSwgMC4wMDM4NTIsIDAuMDAzODUzLCAwLjAwMzg1NCwgMC4wMDM4NTUiLCBcCi0gICAgICAgICAgIjAuMDAzODIsIDAuMDAzODI3LCAwLjAwMzgzOCwgMC4wMDM4MzgsIDAuMDAzODQsIDAuMDAzODQxLCAwLjAwMzg0MiIsIFwKLSAgICAgICAgICAiMC4wMDM4MTcsIDAuMDAzODI0LCAwLjAwMzgzNCwgMC4wMDM4MzUsIDAuMDAzODM3LCAwLjAwMzgzOCwgMC4wMDM4MzgiLCBcCi0gICAgICAgICAgIjAuMDAzODI0LCAwLjAwMzgzMSwgMC4wMDM4NDEsIDAuMDAzODQyLCAwLjAwMzg0MywgMC4wMDM4NDQsIDAuMDAzODQ1IiwgXAotICAgICAgICAgICIwLjAwMzgyNCwgMC4wMDM4MzIsIDAuMDAzODQxLCAwLjAwMzg0MywgMC4wMDM4NDQsIDAuMDAzODQ2LCAwLjAwMzg0NSIsIFwKLSAgICAgICAgICAiMC4wMDM4MzcsIDAuMDAzODQ1LCAwLjAwMzg1NCwgMC4wMDM4NTYsIDAuMDAzODU3LCAwLjAwMzg1OCwgMC4wMDM4NTgiLCBcCi0gICAgICAgICAgIjAuMDAzODQ1LCAwLjAwMzg1MiwgMC4wMDM4NjIsIDAuMDAzODY0LCAwLjAwMzg2NSwgMC4wMDM4NjYsIDAuMDAzODY2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0MDQ1LCAwLjAwNDA1MSwgMC4wMDQwNTksIDAuMDA0MDYxLCAwLjAwNDA2MiwgMC4wMDQwNjMsIDAuMDA0MDYzIiwgXAotICAgICAgICAgICIwLjAwNDAzMSwgMC4wMDQwMzcsIDAuMDA0MDQ1LCAwLjAwNDA0NywgMC4wMDQwNDcsIDAuMDA0MDQ5LCAwLjAwNDA0OCIsIFwKLSAgICAgICAgICAiMC4wMDQwMjcsIDAuMDA0MDMzLCAwLjAwNDA0MiwgMC4wMDQwNDUsIDAuMDA0MDQ0LCAwLjAwNDA0MywgMC4wMDQwNDUiLCBcCi0gICAgICAgICAgIjAuMDA0MDMyLCAwLjAwNDAzOSwgMC4wMDQwNDgsIDAuMDA0MDQ5LCAwLjAwNDA1LCAwLjAwNDA1LCAwLjAwNDA1MSIsIFwKLSAgICAgICAgICAiMC4wMDQwMzMsIDAuMDA0MDM5LCAwLjAwNDA0NywgMC4wMDQwNDksIDAuMDA0MDUsIDAuMDA0MDUxLCAwLjAwNDA1MSIsIFwKLSAgICAgICAgICAiMC4wMDQwNDMsIDAuMDA0MDQ5LCAwLjAwNDA1OCwgMC4wMDQwNjEsIDAuMDA0MDYxLCAwLjAwNDA2MywgMC4wMDQwNjIiLCBcCi0gICAgICAgICAgIjAuMDA0MDUyLCAwLjAwNDA1OCwgMC4wMDQwNjcsIDAuMDA0MDY5LCAwLjAwNDA3LCAwLjAwNDA3MSwgMC4wMDQwNzEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzNzIyLCAwLjAwMzcyOSwgMC4wMDM3MzksIDAuMDAzNzQsIDAuMDAzNzQyLCAwLjAwMzc0MiwgMC4wMDM3NDQiLCBcCi0gICAgICAgICAgIjAuMDAzNzA5LCAwLjAwMzcxNiwgMC4wMDM3MjYsIDAuMDAzNzI4LCAwLjAwMzcyOSwgMC4wMDM3MjksIDAuMDAzNzMiLCBcCi0gICAgICAgICAgIjAuMDAzNzAzLCAwLjAwMzcxLCAwLjAwMzcyLCAwLjAwMzcyMiwgMC4wMDM3MjMsIDAuMDAzNzI0LCAwLjAwMzcyNCIsIFwKLSAgICAgICAgICAiMC4wMDM3MDQsIDAuMDAzNzExLCAwLjAwMzcyMSwgMC4wMDM3MjIsIDAuMDAzNzI0LCAwLjAwMzcyNSwgMC4wMDM3MjUiLCBcCi0gICAgICAgICAgIjAuMDAzNywgMC4wMDM3MDcsIDAuMDAzNzE3LCAwLjAwMzcxOSwgMC4wMDM3MiwgMC4wMDM3MiwgMC4wMDM3MjEiLCBcCi0gICAgICAgICAgIjAuMDAzNzA3LCAwLjAwMzcxNCwgMC4wMDM3MjQsIDAuMDAzNzI1LCAwLjAwMzcyNywgMC4wMDM3MjcsIDAuMDAzNzI4IiwgXAotICAgICAgICAgICIwLjAwMzcwNCwgMC4wMDM3MTIsIDAuMDAzNzIyLCAwLjAwMzcyNCwgMC4wMDM3MjQsIDAuMDAzNzI2LCAwLjAwMzcyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDg3NiwgMC4wMDQ4ODIsIDAuMDA0ODksIDAuMDA0ODkyLCAwLjAwNDg5MiwgMC4wMDQ4OTQsIDAuMDA0ODk0IiwgXAotICAgICAgICAgICIwLjAwNDg2MywgMC4wMDQ4NjksIDAuMDA0ODc3LCAwLjAwNDg3OSwgMC4wMDQ4NzksIDAuMDA0ODc5LCAwLjAwNDg4MSIsIFwKLSAgICAgICAgICAiMC4wMDQ4NTksIDAuMDA0ODY1LCAwLjAwNDg3MywgMC4wMDQ4NzUsIDAuMDA0ODc2LCAwLjAwNDg3NywgMC4wMDQ4NzYiLCBcCi0gICAgICAgICAgIjAuMDA0ODU5LCAwLjAwNDg2NSwgMC4wMDQ4NzQsIDAuMDA0ODc1LCAwLjAwNDg3NiwgMC4wMDQ4NzcsIDAuMDA0ODc3IiwgXAotICAgICAgICAgICIwLjAwNDg2MiwgMC4wMDQ4NjgsIDAuMDA0ODc2LCAwLjAwNDg3NywgMC4wMDQ4NzgsIDAuMDA0ODc5LCAwLjAwNDg4IiwgXAotICAgICAgICAgICIwLjAwNDg3NSwgMC4wMDQ4ODEsIDAuMDA0ODg5LCAwLjAwNDg5LCAwLjAwNDg5MiwgMC4wMDQ4OTMsIDAuMDA0ODkyIiwgXAotICAgICAgICAgICIwLjAwNDg3NSwgMC4wMDQ4ODEsIDAuMDA0ODkxLCAwLjAwNDg5MywgMC4wMDQ4OTMsIDAuMDA0ODkyLCAwLjAwNDg5MiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDMyODksIDAuMDAzMjkzLCAwLjAwMzI5OSwgMC4wMDMzLCAwLjAwMzMsIDAuMDAzMzAxLCAwLjAwMzMwMSIsIFwKLSAgICAgICAgICAiMC4wMDMyNzksIDAuMDAzMjg0LCAwLjAwMzI5LCAwLjAwMzI5MSwgMC4wMDMyOTIsIDAuMDAzMjkyLCAwLjAwMzI5MiIsIFwKLSAgICAgICAgICAiMC4wMDMyNjgsIDAuMDAzMjczLCAwLjAwMzI4MSwgMC4wMDMyODMsIDAuMDAzMjgzLCAwLjAwMzI4NCwgMC4wMDMyODQiLCBcCi0gICAgICAgICAgIjAuMDAzMjU5LCAwLjAwMzI2NSwgMC4wMDMyNzQsIDAuMDAzMjc2LCAwLjAwMzI3NywgMC4wMDMyNzgsIDAuMDAzMjc4IiwgXAotICAgICAgICAgICIwLjAwMzI1NywgMC4wMDMyNjIsIDAuMDAzMjc0LCAwLjAwMzI3NiwgMC4wMDMyNzcsIDAuMDAzMjc5LCAwLjAwMzI3OCIsIFwKLSAgICAgICAgICAiMC4wMDMyNTgsIDAuMDAzMjY1LCAwLjAwMzI3NiwgMC4wMDMyNzksIDAuMDAzMjgsIDAuMDAzMjgxLCAwLjAwMzI4MSIsIFwKLSAgICAgICAgICAiMC4wMDMyNjQsIDAuMDAzMjcxLCAwLjAwMzI4MiwgMC4wMDMyODUsIDAuMDAzMjg3LCAwLjAwMzI4OCwgMC4wMDMyODkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDIwMDksIDAuMDAyMDE0LCAwLjAwMjAyLCAwLjAwMjAyMywgMC4wMDIwMjIsIDAuMDAyMDIxLCAwLjAwMjAyNCIsIFwKLSAgICAgICAgICAiMC4wMDE5OTQsIDAuMDAyLCAwLjAwMjAwNiwgMC4wMDIwMDcsIDAuMDAyMDA4LCAwLjAwMjAwOSwgMC4wMDIwMDkiLCBcCi0gICAgICAgICAgIjAuMDAxOTg2LCAwLjAwMTk5MSwgMC4wMDE5OTgsIDAuMDAyLCAwLjAwMjAwMSwgMC4wMDIwMDEsIDAuMDAyMDAxIiwgXAotICAgICAgICAgICIwLjAwMTk4NCwgMC4wMDE5OSwgMC4wMDE5OTcsIDAuMDAxOTk5LCAwLjAwMTk5OSwgMC4wMDIsIDAuMDAyIiwgXAotICAgICAgICAgICIwLjAwMTk4NiwgMC4wMDE5OTIsIDAuMDAyLCAwLjAwMjAwMiwgMC4wMDIwMDMsIDAuMDAyMDAzLCAwLjAwMjAwMyIsIFwKLSAgICAgICAgICAiMC4wMDE5OTEsIDAuMDAxOTk3LCAwLjAwMjAwNywgMC4wMDIwMDgsIDAuMDAyMDA5LCAwLjAwMjAxLCAwLjAwMjAxIiwgXAotICAgICAgICAgICIwLjAwMTk4OSwgMC4wMDE5OTUsIDAuMDAyMDA1LCAwLjAwMjAwNywgMC4wMDIwMDcsIDAuMDAyMDA4LCAwLjAwMjAwOSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUU4pICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4yNTkxMDI7Ci0gICAgZnVuY3Rpb24gOiAiTjUiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkQiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE2MTkwNCwgMC4xODc1MDYsIDAuMzI3MjA2LCAwLjQ1MDEyMSwgMC42MTQwNSwgMC45NDE1NzMsIDEuMTQ2MzIiLCBcCi0gICAgICAgICAgIjAuMTcwMzgxLCAwLjE5NTk5MywgMC4zMzU2ODMsIDAuNDU4NTk0LCAwLjYyMjM1OSwgMC45NTAwMjksIDEuMTU0NzQiLCBcCi0gICAgICAgICAgIjAuMTc5OTUyLCAwLjIwNTU1MywgMC4zNDUyNTYsIDAuNDY4MTY5LCAwLjYzMjA4MywgMC45NTk0ODgsIDEuMTY0MjYiLCBcCi0gICAgICAgICAgIjAuMTg5MDY4LCAwLjIxNDY3LCAwLjM1NDM3MSwgMC40NzcyNjQsIDAuNjQxMjAyLCAwLjk2ODYxOCwgMS4xNzMzOCIsIFwKLSAgICAgICAgICAiMC4xOTc0NDcsIDAuMjIzMDQ3LCAwLjM2Mjc1LCAwLjQ4NTY2NSwgMC42NDk1NiwgMC45NzcxNDksIDEuMTgyMDkiLCBcCi0gICAgICAgICAgIjAuMjA5NDE3LCAwLjIzNTAxMiwgMC4zNzQ3MjUsIDAuNDk3NjIsIDAuNjYxNTU1LCAwLjk4OTM1MywgMS4xOTQxOCIsIFwKLSAgICAgICAgICAiMC4yMTg2NDIsIDAuMjQ0MjY3LCAwLjM4Mzk1MiwgMC41MDY4NTUsIDAuNjcwODIyLCAwLjk5ODYwNiwgMS4yMDM0MiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDI0ODksIDAuMTUwMjIsIDAuNDMyNDU4LCAwLjY4NTcwNCwgMS4wMjQ2MSwgMS42OTc2NiwgMi4xMjAxMiIsIFwKLSAgICAgICAgICAiMC4xMDI0OTMsIDAuMTUwMjkzLCAwLjQzMjQ1NiwgMC42ODU2OTYsIDEuMDIyODgsIDEuNjk3NTcsIDIuMTIwMjkiLCBcCi0gICAgICAgICAgIjAuMTAyNDE3LCAwLjE1MDE5MywgMC40MzI0NDcsIDAuNjg0MzQzLCAxLjAyMTgxLCAxLjY5NzQ1LCAyLjEyMDUiLCBcCi0gICAgICAgICAgIjAuMTAyNDE2LCAwLjE1MDIxNCwgMC40MzI0NDEsIDAuNjgzNzM5LCAxLjAyNDU5LCAxLjY5ODI1LCAyLjExOTgyIiwgXAotICAgICAgICAgICIwLjEwMjU2OCwgMC4xNTAyMzksIDAuNDMyNDMxLCAwLjY4NTcwMiwgMS4wMjQ1MywgMS42OTgyMywgMi4xMjY3IiwgXAotICAgICAgICAgICIwLjEwMjUzLCAwLjE1MDMyMywgMC40MzI0MTIsIDAuNjg1NTA5LCAxLjAyNDU4LCAxLjY5NzM5LCAyLjEyMDM0IiwgXAotICAgICAgICAgICIwLjEwMjU3OSwgMC4xNTAzNTEsIDAuNDMyMzU4LCAwLjY4NTI1MiwgMS4wMjQ1OSwgMS43MDI0NywgMi4xMjYyNyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMzMzODMsIDAuMTU4MzE5LCAwLjI5ODU4LCAwLjQyMjI5NSwgMC41ODcyMjEsIDAuOTE2NzA3LCAxLjEyMjg4IiwgXAotICAgICAgICAgICIwLjE0MjA3MSwgMC4xNjY5OTUsIDAuMzA3MjczLCAwLjQzMDk5NCwgMC41OTU4OTUsIDAuOTI1NzUxLCAxLjEzMTc3IiwgXAotICAgICAgICAgICIwLjE1Mjc2NywgMC4xNzc2OSwgMC4zMTc5NzIsIDAuNDQxNjU4LCAwLjYwNjYzNCwgMC45MzYwOTYsIDEuMTQyNDYiLCBcCi0gICAgICAgICAgIjAuMTYzMDA0LCAwLjE4Nzk0MiwgMC4zMjgyMjEsIDAuNDUxOTI5LCAwLjYxNjcxNiwgMC45NDY1ODIsIDEuMTUyNzQiLCBcCi0gICAgICAgICAgIjAuMTcyNTY3LCAwLjE5NzUwNywgMC4zMzc3OTEsIDAuNDYxNTA0LCAwLjYyNjQ3NSwgMC45NTYxNTQsIDEuMTYyMyIsIFwKLSAgICAgICAgICAiMC4xODYzMDQsIDAuMjExMjY0LCAwLjM1MTU0MiwgMC40NzUyMzIsIDAuNjM5OTgzLCAwLjk2OTgyMiwgMS4xNzYwMiIsIFwKLSAgICAgICAgICAiMC4xOTcxOTMsIDAuMjIyMTQ1LCAwLjM2MjQxMywgMC40ODYxMjEsIDAuNjUxMDUzLCAwLjk4MDgzLCAxLjE4Njg3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5MzEzMSwgMC4xNDE1MTgsIDAuNDIwMzIzLCAwLjY3MDUxMiwgMS4wMDMyNSwgMS42NjIxMSwgMi4wNzYzMyIsIFwKLSAgICAgICAgICAiMC4wOTMxMzYsIDAuMTQxMzAxLCAwLjQyMDMzMSwgMC42Njk5NiwgMS4wMDA4MSwgMS42NjQ1NSwgMi4wODMxNyIsIFwKLSAgICAgICAgICAiMC4wOTMyOTUsIDAuMTQxMzI1LCAwLjQyMDcxMiwgMC42NzA4NTUsIDEuMDAxMjIsIDEuNjYxOTMsIDIuMDgyNjciLCBcCi0gICAgICAgICAgIjAuMDkzMzEyLCAwLjE0MTQ5NSwgMC40MjEyMzgsIDAuNjcwOTYxLCAxLjAwMjY2LCAxLjY2NzYxLCAyLjA4MzIiLCBcCi0gICAgICAgICAgIjAuMDkzMzA3LCAwLjE0MTQ4NSwgMC40MjAzMjUsIDAuNjY5OTI1LCAxLjAwMTE0LCAxLjY2NzYzLCAyLjA4MzEyIiwgXAotICAgICAgICAgICIwLjA5MzI4MiwgMC4xNDEyMzgsIDAuNDIwMjczLCAwLjY2OTkwMiwgMS4wMDE1OCwgMS42NjI2NywgMi4wODMxIiwgXAotICAgICAgICAgICIwLjA5MzM3OCwgMC4xNDE1NTIsIDAuNDIxODIsIDAuNjcwODg5LCAxLjAwMzExLCAxLjY2NzU5LCAyLjA4MjYxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkciOwotICAgICAgdGltaW5nX3NlbnNlIDogbm9uX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiByaXNpbmdfZWRnZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjAxNTU2LCAwLjIyNzE3NiwgMC4zNjY4NjEsIDAuNDg5NzczLCAwLjY1MzcxMSwgMC45ODE1MTgsIDEuMTg2MjUiLCBcCi0gICAgICAgICAgIjAuMjEwNjA1LCAwLjIzNjIzNiwgMC4zNzU5MzUsIDAuNDk4ODQ5LCAwLjY2MjgzLCAwLjk5MDQ2LCAxLjE5NTQ0IiwgXAotICAgICAgICAgICIwLjIyMjI1MSwgMC4yNDc4ODMsIDAuMzg3NTgyLCAwLjUxMDUwNCwgMC42NzQ0MzEsIDEuMDAyMTEsIDEuMjA2OTkiLCBcCi0gICAgICAgICAgIjAuMjMzODE5LCAwLjI1OTQzMSwgMC4zOTkxMzQsIDAuNTIyMDQxLCAwLjY4NTk3NywgMS4wMTM3NywgMS4yMTg1MyIsIFwKLSAgICAgICAgICAiMC4yNDQ3MiwgMC4yNzAzNDIsIDAuNDEwMDU4LCAwLjUzMjk0NywgMC42OTY4OTksIDEuMDI0NjgsIDEuMjI5NDIiLCBcCi0gICAgICAgICAgIjAuMjYwMDI3LCAwLjI4NTY2LCAwLjQyNTM1NCwgMC41NDgyNDksIDAuNzEyMTY0LCAxLjAzOTk3LCAxLjI0NDcyIiwgXAotICAgICAgICAgICIwLjI3MjA0MywgMC4yOTc2ODEsIDAuNDM3MzYzLCAwLjU2MDI3NywgMC43MjQyMTYsIDEuMDUyMDMsIDEuMjU2NzUiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTAyOTM1LCAwLjE1MDU2MywgMC40MzIzNzUsIDAuNjg1NTcxLCAxLjAyNDYxLCAxLjcwMjgzLCAyLjEyNjY1IiwgXAotICAgICAgICAgICIwLjEwMjkwOSwgMC4xNTA1NDcsIDAuNDMyNDc4LCAwLjY4NTY5OCwgMS4wMjI4NCwgMS43MDE3NiwgMi4xMjY3MyIsIFwKLSAgICAgICAgICAiMC4xMDI5MywgMC4xNTA1NiwgMC40MzI0OCwgMC42ODU3MjMsIDEuMDI0NjEsIDEuNzAyNjUsIDIuMTIzNzEiLCBcCi0gICAgICAgICAgIjAuMTAyOTAxLCAwLjE1MDU0MiwgMC40MzE3MzUsIDAuNjg1NTU1LCAxLjAyNDU5LCAxLjcwMjc0LCAyLjEyNjYzIiwgXAotICAgICAgICAgICIwLjEwMjkwMSwgMC4xNTA1MzIsIDAuNDMxNzQ1LCAwLjY4NTU1OCwgMS4wMjQ1OSwgMS43MDI3NiwgMi4xMjY2MSIsIFwKLSAgICAgICAgICAiMC4xMDI5MTEsIDAuMTUwNTQ5LCAwLjQzMjQ2OCwgMC42ODU1MTcsIDEuMDI0NTIsIDEuNzAyNzIsIDIuMTI2NSIsIFwKLSAgICAgICAgICAiMC4xMDI5MDQsIDAuMTUwNTUxLCAwLjQzMjM1NCwgMC42ODU1NjYsIDEuMDI0NTksIDEuNzAyNzksIDIuMTI2NjEiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTg2MDYsIDAuMjExMDAyLCAwLjM1MTI2OCwgMC40NzQ5NzUsIDAuNjM5ODgyLCAwLjk2OTY2NiwgMS4xNzU3NCIsIFwKLSAgICAgICAgICAiMC4xOTUwNzcsIDAuMjIwMDIxLCAwLjM2MDI4NCwgMC40ODM5OTEsIDAuNjQ4OSwgMC45Nzg2NzIsIDEuMTg0NzYiLCBcCi0gICAgICAgICAgIjAuMjA2ODcsIDAuMjMxODEyLCAwLjM3MjA4MywgMC40OTU3ODUsIDAuNjYwNjkzLCAwLjk5MDQ2NSwgMS4xOTY1NyIsIFwKLSAgICAgICAgICAiMC4yMTg0OCwgMC4yNDM0MjQsIDAuMzgzNjc3LCAwLjUwNzM5MywgMC42NzIzMDIsIDEuMDAyMDcsIDEuMjA4MTUiLCBcCi0gICAgICAgICAgIjAuMjI4OTkzLCAwLjI1Mzk0LCAwLjM5NDIwMSwgMC41MTc5MDcsIDAuNjgyODE2LCAxLjAxMjYxLCAxLjIxODY5IiwgXAotICAgICAgICAgICIwLjI0MzkzNCwgMC4yNjg4NzgsIDAuNDA5MTQxLCAwLjUzMjg0NywgMC42OTc3NTksIDEuMDI3NTQsIDEuMjMzNjEiLCBcCi0gICAgICAgICAgIjAuMjU1MTY4LCAwLjI4MDExMSwgMC40MjAzNzMsIDAuNTQ0MDc5LCAwLjcwODk2NiwgMS4wMzg3NCwgMS4yNDQ4NiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTMzNDcsIDAuMTQxNTE2LCAwLjQyMTIzMSwgMC42NzA1MzEsIDEuMDAzMTksIDEuNjY3OCwgMi4wODMwNCIsIFwKLSAgICAgICAgICAiMC4wOTMzNDYsIDAuMTQxNDc1LCAwLjQyMTI1MiwgMC42NzA1NDYsIDEuMDAzMTksIDEuNjY3NzYsIDIuMDgzMDciLCBcCi0gICAgICAgICAgIjAuMDkzMzM5LCAwLjE0MTUxMiwgMC40MjE4MzksIDAuNjcwNTQ4LCAxLjAwMzE3LCAxLjY2Nzc2LCAyLjA4MDU4IiwgXAotICAgICAgICAgICIwLjA5MzM0NiwgMC4xNDE1MjgsIDAuNDIxMjQ4LCAwLjY3MDU1MSwgMS4wMDMxNywgMS42Njc3MiwgMi4wODMiLCBcCi0gICAgICAgICAgIjAuMDkzMzM5LCAwLjE0MTUyMiwgMC40MjEyNTYsIDAuNjcwNTUyLCAxLjAwMzE3LCAxLjY2NzY2LCAyLjA4MzA3IiwgXAotICAgICAgICAgICIwLjA5MzM0OCwgMC4xNDE1MTksIDAuNDIxMjQzLCAwLjY3MDUzNiwgMS4wMDMxOCwgMS42Njc3OCwgMi4wODMwMSIsIFwKLSAgICAgICAgICAiMC4wOTMyNzksIDAuMTQxNTI0LCAwLjQyMTIxLCAwLjY3MDUwMSwgMS4wMDI1OSwgMS42NjU2OSwgMi4wODMwOCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcmlzaW5nX2VkZ2U7Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE4ODk3NiwgMC4yMTM5MjEsIDAuMzU0MTc5LCAwLjQ3Nzg5MSwgMC42NDI4LCAwLjk3MjU3LCAxLjE3ODczIiwgXAotICAgICAgICAgICIwLjE5NzcwMSwgMC4yMjI2NDIsIDAuMzYyOTA3LCAwLjQ4NjYxNSwgMC42NTE1MjUsIDAuOTgxMywgMS4xODczOCIsIFwKLSAgICAgICAgICAiMC4yMDg1NDYsIDAuMjMzNDg3LCAwLjM3Mzc1MiwgMC40OTc0NTksIDAuNjYyMzcsIDAuOTkyMTQ1LCAxLjE5ODIzIiwgXAotICAgICAgICAgICIwLjIxODk5OSwgMC4yNDM5NDcsIDAuMzg0MjA2LCAwLjUwNzkxMSwgMC42NzI4MjIsIDEuMDAyNTksIDEuMjA4NzIiLCBcCi0gICAgICAgICAgIjAuMjI4MzE2LCAwLjI1MzQsIDAuMzkzNjcsIDAuNTE3MjM0LCAwLjY4MjI3OCwgMS4wMTE5MiwgMS4yMTgxNCIsIFwKLSAgICAgICAgICAiMC4yNDIzMiwgMC4yNjcyNjYsIDAuNDA3NTM2LCAwLjUzMTIzNiwgMC42OTYxNDEsIDEuMDI1ODcsIDEuMjMxOTkiLCBcCi0gICAgICAgICAgIjAuMjUyOTk4LCAwLjI3Nzk0MywgMC40MTgxOTIsIDAuNTQxOTI0LCAwLjcwNjgzLCAxLjAzNjU5LCAxLjI0MjczIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5MzM0LCAwLjE0MTUwMiwgMC40MjE3ODMsIDAuNjcwNTQ5LCAxLjAwMzE3LCAxLjY2Nzc1LCAyLjA3OTc2IiwgXAotICAgICAgICAgICIwLjA5MzM0OCwgMC4xNDE1NDgsIDAuNDIxMjU3LCAwLjY3MDU0MiwgMS4wMDMyLCAxLjY2Nzc4LCAyLjA4MzA2IiwgXAotICAgICAgICAgICIwLjA5MzM0OCwgMC4xNDE1NDksIDAuNDIxMjYsIDAuNjcwNTQ1LCAxLjAwMzIsIDEuNjY3NzgsIDIuMDgzMDYiLCBcCi0gICAgICAgICAgIjAuMDkzMzQ3LCAwLjE0MTUyOCwgMC40MjEyNjIsIDAuNjcwNTU1LCAxLjAwMzE4LCAxLjY2Nzc0LCAyLjA4MzE2IiwgXAotICAgICAgICAgICIwLjA5MzMzOSwgMC4xNDE1MzcsIDAuNDIxMjIxLCAwLjY3MDUyMiwgMS4wMDMxNiwgMS42Njc3NywgMi4wODMwMyIsIFwKLSAgICAgICAgICAiMC4wOTMzNDQsIDAuMTQxNDI2LCAwLjQyMTI1NSwgMC42NzA1MDcsIDEuMDAzMTcsIDEuNjY3NTUsIDIuMDgzIiwgXAotICAgICAgICAgICIwLjA5MzM0NiwgMC4xNDE1MTUsIDAuNDIxNjg5LCAwLjY3MDAxMSwgMS4wMDMyLCAxLjY2NzcyLCAyLjA4MzE1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiBmYWxsaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIwMTczMywgMC4yMjczNDEsIDAuMzY3MDUxLCAwLjQ4OTk2MSwgMC42NTM5MTIsIDAuOTgxNjg1LCAxLjE4NjM0IiwgXAotICAgICAgICAgICIwLjIxMTM1MiwgMC4yMzY5NjIsIDAuMzc2NjY1LCAwLjQ5OTU2NCwgMC42NjM1MzEsIDAuOTkxMTk3LCAxLjE5NTk2IiwgXAotICAgICAgICAgICIwLjIyMzU3NywgMC4yNDkxODksIDAuMzg4ODkzLCAwLjUxMTg0NCwgMC42NzU3NjUsIDEuMDAzMzcsIDEuMjA4MjciLCBcCi0gICAgICAgICAgIjAuMjM0NTQ5LCAwLjI2MDE2MSwgMC4zOTk4NDQsIDAuNTIyNzYzLCAwLjY4NjcxLCAxLjAxNDMzLCAxLjIxOTE2IiwgXAotICAgICAgICAgICIwLjI0NDM5NSwgMC4yNzAwMDUsIDAuNDA5NzA5LCAwLjUzMjYwOCwgMC42OTY1NzUsIDEuMDI0MjcsIDEuMjI5MDEiLCBcCi0gICAgICAgICAgIjAuMjU4NDY1LCAwLjI4NDA3NiwgMC40MjM3NzksIDAuNTQ2Njc4LCAwLjcxMDYyMywgMS4wMzgyNSwgMS4yNDMwNyIsIFwKLSAgICAgICAgICAiMC4yNzA4NjgsIDAuMjk2NDg4LCAwLjQzNjE4NywgMC41NTkwOSwgMC43MjI5NzMsIDEuMDUwNTMsIDEuMjU1NCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDI1NDksIDAuMTUwMzE0LCAwLjQzMjQ4OCwgMC42ODU2MzIsIDEuMDI0NDksIDEuNzAyNjksIDIuMTI2MTgiLCBcCi0gICAgICAgICAgIjAuMTAyNTQ3LCAwLjE1MDI2NywgMC40MzI0NzYsIDAuNjg1NTU2LCAxLjAyNDQ3LCAxLjY5OTYyLCAyLjEyNDA2IiwgXAotICAgICAgICAgICIwLjEwMjU3NywgMC4xNTAzMywgMC40MzI0ODYsIDAuNjg1NjgyLCAxLjAyNDQ5LCAxLjcwMTY5LCAyLjEyNjI5IiwgXAotICAgICAgICAgICIwLjEwMjU0NCwgMC4xNTAzMTEsIDAuNDMyNDg3LCAwLjY4NTYwOSwgMS4wMjQ0NSwgMS43MDIyOSwgMi4xMjYzMiIsIFwKLSAgICAgICAgICAiMC4xMDI1NSwgMC4xNTAzMzEsIDAuNDMyNDY3LCAwLjY4NTYwNywgMS4wMjQ0OCwgMS42OTk3OSwgMi4xMjQwNCIsIFwKLSAgICAgICAgICAiMC4xMDI1NDksIDAuMTUwMzEyLCAwLjQzMjQ3MywgMC42ODU1NDUsIDEuMDI0NDEsIDEuNzAwMzgsIDIuMTIzOTkiLCBcCi0gICAgICAgICAgIjAuMTAyNjIzLCAwLjE1MDM1OSwgMC40MzI0NjIsIDAuNjg1MzA1LCAxLjAyNDI5LCAxLjcwMDQ4LCAyLjEyMzc4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiBjbGVhcjsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTE4NTQ1LCAwLjE0NDEzNCwgMC4yODM3OTYsIDAuNDA2Njk0LCAwLjU3MDY4OSwgMC44OTg0MTksIDEuMTAzMjYiLCBcCi0gICAgICAgICAgIjAuMTI3MTc2LCAwLjE1Mjc1MywgMC4yOTI0MTEsIDAuNDE1MzE1LCAwLjU3OTI0NywgMC45MDcwNzQsIDEuMTExNDMiLCBcCi0gICAgICAgICAgIjAuMTM3ODI0LCAwLjE2MzQxOCwgMC4zMDMxMDIsIDAuNDI1OTg3LCAwLjU4OTkxOSwgMC45MTc5NTIsIDEuMTIyOTkiLCBcCi0gICAgICAgICAgIjAuMTQ4MzczLCAwLjE3Mzk0OSwgMC4zMTM2NDYsIDAuNDM2NTgyLCAwLjYwMDQ4MSwgMC45Mjg1MDcsIDEuMTMyOTEiLCBcCi0gICAgICAgICAgIjAuMTU4NzM5LCAwLjE4NDMzOCwgMC4zMjQwMTUsIDAuNDQ2OTE1LCAwLjYxMDk0NywgMC45Mzg5NzQsIDEuMTQ0MzciLCBcCi0gICAgICAgICAgIjAuMTc0NTM0LCAwLjIwMDE0NSwgMC4zMzk4NjcsIDAuNDYyNzU3LCAwLjYyNjY5NCwgMC45NTUwMTYsIDEuMTU5NzIiLCBcCi0gICAgICAgICAgIjAuMTg3MjM1LCAwLjIxMjk0NiwgMC4zNTI2NjcsIDAuNDc1NTYxLCAwLjYzOTUwMiwgMC45Njc0ODcsIDEuMTcyNiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDI0NTQsIDAuMTUwMTkyLCAwLjQzMjQzNCwgMC42ODU1MDIsIDEuMDI0NTksIDEuNzAzMDksIDIuMTI3MTMiLCBcCi0gICAgICAgICAgIjAuMTAyNDM2LCAwLjE1MDIxMiwgMC40MzIzNDEsIDAuNjg1NTI5LCAxLjAyNDU5LCAxLjcwMzA2LCAyLjEyMzQ4IiwgXAotICAgICAgICAgICIwLjEwMjM4MSwgMC4xNTAyMjQsIDAuNDMyNDI3LCAwLjY4NTUxNiwgMS4wMjQ1OCwgMS43MDMwNSwgMi4xMjM1MSIsIFwKLSAgICAgICAgICAiMC4xMDI1NzMsIDAuMTUwMzA2LCAwLjQzMjQ1NywgMC42ODU3NjQsIDEuMDI0NiwgMS42OTk3OSwgMi4xMjYzNSIsIFwKLSAgICAgICAgICAiMC4xMDI2MzcsIDAuMTUwMzUzLCAwLjQzMjM5NCwgMC42ODUyNywgMS4wMjI0OCwgMS43MDA4MiwgMi4xMjMwMyIsIFwKLSAgICAgICAgICAiMC4xMDMyOTEsIDAuMTUwNzU3LCAwLjQzMjQ3MiwgMC42ODU1MzcsIDEuMDI0NTgsIDEuNzAwMiwgMi4xMjMwMiIsIFwKLSAgICAgICAgICAiMC4xMDQyNywgMC4xNTE0OTksIDAuNDMyNjE4LCAwLjY4NTU3LCAxLjAyNDYxLCAxLjcwMDY1LCAyLjEyMzA1Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4OTY2OSwgMC4xMTQ3NjcsIDAuMjU1MDYxLCAwLjM3ODcxNywgMC41NDM1ODUsIDAuODczMzEsIDEuMDc5NDciLCBcCi0gICAgICAgICAgIjAuMDk5NjM4LCAwLjEyNDc0MSwgMC4yNjUwMzksIDAuMzg4NzAzLCAwLjU1MzU2NSwgMC44ODMyOTEsIDEuMDg5NDQiLCBcCi0gICAgICAgICAgIjAuMTExOTQ1LCAwLjEzNzA1MSwgMC4yNzczNjIsIDAuNDAxMDMzLCAwLjU2NTg4NSwgMC44OTU2MzIsIDEuMTAxNzIiLCBcCi0gICAgICAgICAgIjAuMTI0MDU5LCAwLjE0OTE3LCAwLjI4OTQ4OCwgMC40MTMxMzEsIDAuNTc4MDQyLCAwLjkwNzc1OCwgMS4xMTM4NiIsIFwKLSAgICAgICAgICAiMC4xMzUyNzEsIDAuMTYwMzc4LCAwLjMwMDY4OSwgMC40MjQzMzUsIDAuNTg5MjMsIDAuOTE4OTY5LCAxLjEyNTEiLCBcCi0gICAgICAgICAgIjAuMTUwOTU2LCAwLjE3NjA3NywgMC4zMTYzNjMsIDAuNDQwMDQyLCAwLjYwNDkxOCwgMC45MzQ2NDYsIDEuMTQwNzIiLCBcCi0gICAgICAgICAgIjAuMTYyOTcxLCAwLjE4ODEzOCwgMC4zMjg0MDYsIDAuNDUyMDgzLCAwLjYxNjk1LCAwLjk0NjY4NywgMS4xNTI3NiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTM2MiwgMC4xNDE3MDcsIDAuNDIxNzIyLCAwLjY3MDg1NCwgMS4wMDI4NiwgMS42Njc0OSwgMi4wODI1IiwgXAotICAgICAgICAgICIwLjA5MzYyMiwgMC4xNDE3MDUsIDAuNDIxMzMsIDAuNjcwODExLCAxLjAwMzEyLCAxLjY2NzQsIDIuMDgwNDYiLCBcCi0gICAgICAgICAgIjAuMDkzNjEsIDAuMTQxNzA2LCAwLjQyMTczOSwgMC42NzA4MjgsIDEuMDAzMDIsIDEuNjY3MzQsIDIuMDgwMTUiLCBcCi0gICAgICAgICAgIjAuMDkzNzUzLCAwLjE0MTc2NSwgMC40MjE4ODcsIDAuNjcwNjg4LCAxLjAwMjkzLCAxLjY2NzQ1LCAyLjA4MjYiLCBcCi0gICAgICAgICAgIjAuMDk0MjA0LCAwLjE0MTk4MSwgMC40MjEzMDYsIDAuNjcwODAyLCAxLjAwMjg0LCAxLjY2NzI2LCAyLjA4MjQ2IiwgXAotICAgICAgICAgICIwLjA5NTM0MywgMC4xNDI3MTQsIDAuNDIxNzA2LCAwLjY3MDgzNywgMS4wMDI5LCAxLjY2NzQ1LCAyLjA4MjUxIiwgXAotICAgICAgICAgICIwLjA5NjQ0MywgMC4xNDM0NzQsIDAuNDIyMTc0LCAwLjY3MDY2OCwgMS4wMDIxOCwgMS42NjY5OCwgMi4wODIzMiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkQiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzIyMSwgMC4wMDMyMjcsIDAuMDAzMjM2LCAwLjAwMzIzNywgMC4wMDMyMzcsIDAuMDAzMjM5LCAwLjAwMzI0MSIsIFwKLSAgICAgICAgICAiMC4wMDMyMTUsIDAuMDAzMjIxLCAwLjAwMzIyOSwgMC4wMDMyMzEsIDAuMDAzMjMyLCAwLjAwMzIzMywgMC4wMDMyMzMiLCBcCi0gICAgICAgICAgIjAuMDAzMjExLCAwLjAwMzIxNywgMC4wMDMyMjUsIDAuMDAzMjI3LCAwLjAwMzIyOCwgMC4wMDMyMjksIDAuMDAzMjI5IiwgXAotICAgICAgICAgICIwLjAwMzIwOSwgMC4wMDMyMTUsIDAuMDAzMjI0LCAwLjAwMzIyNiwgMC4wMDMyMjcsIDAuMDAzMjI3LCAwLjAwMzIyNyIsIFwKLSAgICAgICAgICAiMC4wMDMyMDYsIDAuMDAzMjEyLCAwLjAwMzIyMSwgMC4wMDMyMjMsIDAuMDAzMjI0LCAwLjAwMzIyNCwgMC4wMDMyMjQiLCBcCi0gICAgICAgICAgIjAuMDAzMjA0LCAwLjAwMzIxLCAwLjAwMzIxOSwgMC4wMDMyMiwgMC4wMDMyMjEsIDAuMDAzMjIxLCAwLjAwMzIyMiIsIFwKLSAgICAgICAgICAiMC4wMDMyMDksIDAuMDAzMjE2LCAwLjAwMzIyNSwgMC4wMDMyMjYsIDAuMDAzMjI5LCAwLjAwMzIyOSwgMC4wMDMyMyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjksIDAuMDAyOTA3LCAwLjAwMjkxOCwgMC4wMDI5MTksIDAuMDAyOTIsIDAuMDAyOTIzLCAwLjAwMjkxOSIsIFwKLSAgICAgICAgICAiMC4wMDI4OSwgMC4wMDI4OTcsIDAuMDAyOTA3LCAwLjAwMjkwOSwgMC4wMDI5MSwgMC4wMDI5MTEsIDAuMDAyOTExIiwgXAotICAgICAgICAgICIwLjAwMjg4MywgMC4wMDI4OTEsIDAuMDAyOTAxLCAwLjAwMjkwMywgMC4wMDI5MDQsIDAuMDAyOTA0LCAwLjAwMjkwNSIsIFwKLSAgICAgICAgICAiMC4wMDI4NzgsIDAuMDAyODg2LCAwLjAwMjg5NiwgMC4wMDI4OTgsIDAuMDAyODk5LCAwLjAwMjg5OSwgMC4wMDI5IiwgXAotICAgICAgICAgICIwLjAwMjg3NSwgMC4wMDI4ODMsIDAuMDAyODkzLCAwLjAwMjg5NSwgMC4wMDI4OTYsIDAuMDAyODk3LCAwLjAwMjg5OCIsIFwKLSAgICAgICAgICAiMC4wMDI4NzgsIDAuMDAyODg1LCAwLjAwMjg5NiwgMC4wMDI5MDEsIDAuMDAyOSwgMC4wMDI4OTksIDAuMDAyOTAxIiwgXAotICAgICAgICAgICIwLjAwMjg4MiwgMC4wMDI4OSwgMC4wMDI5MDEsIDAuMDAyOTAzLCAwLjAwMjkwNCwgMC4wMDI5MDUsIDAuMDAyOTA2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0MDQ1LCAwLjAwNDA1MSwgMC4wMDQwNTksIDAuMDA0MDYxLCAwLjAwNDA2MiwgMC4wMDQwNjMsIDAuMDA0MDYzIiwgXAotICAgICAgICAgICIwLjAwNDAzMSwgMC4wMDQwMzcsIDAuMDA0MDQ1LCAwLjAwNDA0NywgMC4wMDQwNDcsIDAuMDA0MDQ5LCAwLjAwNDA0OCIsIFwKLSAgICAgICAgICAiMC4wMDQwMjcsIDAuMDA0MDMzLCAwLjAwNDA0MiwgMC4wMDQwNDUsIDAuMDA0MDQ0LCAwLjAwNDA0MywgMC4wMDQwNDUiLCBcCi0gICAgICAgICAgIjAuMDA0MDMyLCAwLjAwNDAzOSwgMC4wMDQwNDgsIDAuMDA0MDQ5LCAwLjAwNDA1LCAwLjAwNDA1LCAwLjAwNDA1MSIsIFwKLSAgICAgICAgICAiMC4wMDQwMzMsIDAuMDA0MDM5LCAwLjAwNDA0NywgMC4wMDQwNDksIDAuMDA0MDUsIDAuMDA0MDUxLCAwLjAwNDA1MSIsIFwKLSAgICAgICAgICAiMC4wMDQwNDMsIDAuMDA0MDQ5LCAwLjAwNDA1OCwgMC4wMDQwNjEsIDAuMDA0MDYxLCAwLjAwNDA2MywgMC4wMDQwNjIiLCBcCi0gICAgICAgICAgIjAuMDA0MDUyLCAwLjAwNDA1OCwgMC4wMDQwNjcsIDAuMDA0MDY5LCAwLjAwNDA3LCAwLjAwNDA3MSwgMC4wMDQwNzEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDM4MzQsIDAuMDAzODQxLCAwLjAwMzg1LCAwLjAwMzg1MiwgMC4wMDM4NTMsIDAuMDAzODU0LCAwLjAwMzg1NSIsIFwKLSAgICAgICAgICAiMC4wMDM4MiwgMC4wMDM4MjcsIDAuMDAzODM4LCAwLjAwMzgzOCwgMC4wMDM4NCwgMC4wMDM4NDEsIDAuMDAzODQyIiwgXAotICAgICAgICAgICIwLjAwMzgxNywgMC4wMDM4MjQsIDAuMDAzODM0LCAwLjAwMzgzNSwgMC4wMDM4MzcsIDAuMDAzODM4LCAwLjAwMzgzOCIsIFwKLSAgICAgICAgICAiMC4wMDM4MjQsIDAuMDAzODMxLCAwLjAwMzg0MSwgMC4wMDM4NDIsIDAuMDAzODQzLCAwLjAwMzg0NCwgMC4wMDM4NDUiLCBcCi0gICAgICAgICAgIjAuMDAzODI0LCAwLjAwMzgzMiwgMC4wMDM4NDEsIDAuMDAzODQzLCAwLjAwMzg0NCwgMC4wMDM4NDYsIDAuMDAzODQ1IiwgXAotICAgICAgICAgICIwLjAwMzgzNywgMC4wMDM4NDUsIDAuMDAzODU0LCAwLjAwMzg1NiwgMC4wMDM4NTcsIDAuMDAzODU4LCAwLjAwMzg1OCIsIFwKLSAgICAgICAgICAiMC4wMDM4NDUsIDAuMDAzODUyLCAwLjAwMzg2MiwgMC4wMDM4NjQsIDAuMDAzODY1LCAwLjAwMzg2NiwgMC4wMDM4NjYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0ODc2LCAwLjAwNDg4MiwgMC4wMDQ4OSwgMC4wMDQ4OTIsIDAuMDA0ODkyLCAwLjAwNDg5NCwgMC4wMDQ4OTQiLCBcCi0gICAgICAgICAgIjAuMDA0ODYzLCAwLjAwNDg2OSwgMC4wMDQ4NzcsIDAuMDA0ODc5LCAwLjAwNDg3OSwgMC4wMDQ4NzksIDAuMDA0ODgxIiwgXAotICAgICAgICAgICIwLjAwNDg1OSwgMC4wMDQ4NjUsIDAuMDA0ODczLCAwLjAwNDg3NSwgMC4wMDQ4NzYsIDAuMDA0ODc3LCAwLjAwNDg3NiIsIFwKLSAgICAgICAgICAiMC4wMDQ4NTksIDAuMDA0ODY1LCAwLjAwNDg3NCwgMC4wMDQ4NzUsIDAuMDA0ODc2LCAwLjAwNDg3NywgMC4wMDQ4NzciLCBcCi0gICAgICAgICAgIjAuMDA0ODYyLCAwLjAwNDg2OCwgMC4wMDQ4NzYsIDAuMDA0ODc3LCAwLjAwNDg3OCwgMC4wMDQ4NzksIDAuMDA0ODgiLCBcCi0gICAgICAgICAgIjAuMDA0ODc1LCAwLjAwNDg4MSwgMC4wMDQ4ODksIDAuMDA0ODksIDAuMDA0ODkyLCAwLjAwNDg5MywgMC4wMDQ4OTIiLCBcCi0gICAgICAgICAgIjAuMDA0ODc1LCAwLjAwNDg4MSwgMC4wMDQ4OTEsIDAuMDA0ODkzLCAwLjAwNDg5MywgMC4wMDQ4OTIsIDAuMDA0ODkyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzNzIyLCAwLjAwMzcyOSwgMC4wMDM3MzksIDAuMDAzNzQsIDAuMDAzNzQyLCAwLjAwMzc0MiwgMC4wMDM3NDQiLCBcCi0gICAgICAgICAgIjAuMDAzNzA5LCAwLjAwMzcxNiwgMC4wMDM3MjYsIDAuMDAzNzI4LCAwLjAwMzcyOSwgMC4wMDM3MjksIDAuMDAzNzMiLCBcCi0gICAgICAgICAgIjAuMDAzNzAzLCAwLjAwMzcxLCAwLjAwMzcyLCAwLjAwMzcyMiwgMC4wMDM3MjMsIDAuMDAzNzI0LCAwLjAwMzcyNCIsIFwKLSAgICAgICAgICAiMC4wMDM3MDQsIDAuMDAzNzExLCAwLjAwMzcyMSwgMC4wMDM3MjIsIDAuMDAzNzI0LCAwLjAwMzcyNSwgMC4wMDM3MjUiLCBcCi0gICAgICAgICAgIjAuMDAzNywgMC4wMDM3MDcsIDAuMDAzNzE3LCAwLjAwMzcxOSwgMC4wMDM3MiwgMC4wMDM3MiwgMC4wMDM3MjEiLCBcCi0gICAgICAgICAgIjAuMDAzNzA3LCAwLjAwMzcxNCwgMC4wMDM3MjQsIDAuMDAzNzI1LCAwLjAwMzcyNywgMC4wMDM3MjcsIDAuMDAzNzI4IiwgXAotICAgICAgICAgICIwLjAwMzcwNCwgMC4wMDM3MTIsIDAuMDAzNzIyLCAwLjAwMzcyNCwgMC4wMDM3MjQsIDAuMDAzNzI2LCAwLjAwMzcyNSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDIwMDksIDAuMDAyMDE0LCAwLjAwMjAyLCAwLjAwMjAyMywgMC4wMDIwMjIsIDAuMDAyMDIxLCAwLjAwMjAyNCIsIFwKLSAgICAgICAgICAiMC4wMDE5OTQsIDAuMDAyLCAwLjAwMjAwNiwgMC4wMDIwMDcsIDAuMDAyMDA4LCAwLjAwMjAwOSwgMC4wMDIwMDkiLCBcCi0gICAgICAgICAgIjAuMDAxOTg2LCAwLjAwMTk5MSwgMC4wMDE5OTgsIDAuMDAyLCAwLjAwMjAwMSwgMC4wMDIwMDEsIDAuMDAyMDAxIiwgXAotICAgICAgICAgICIwLjAwMTk4NCwgMC4wMDE5OSwgMC4wMDE5OTcsIDAuMDAxOTk5LCAwLjAwMTk5OSwgMC4wMDIsIDAuMDAyIiwgXAotICAgICAgICAgICIwLjAwMTk4NiwgMC4wMDE5OTIsIDAuMDAyLCAwLjAwMjAwMiwgMC4wMDIwMDMsIDAuMDAyMDAzLCAwLjAwMjAwMyIsIFwKLSAgICAgICAgICAiMC4wMDE5OTEsIDAuMDAxOTk3LCAwLjAwMjAwNywgMC4wMDIwMDgsIDAuMDAyMDA5LCAwLjAwMjAxLCAwLjAwMjAxIiwgXAotICAgICAgICAgICIwLjAwMTk4OSwgMC4wMDE5OTUsIDAuMDAyMDA1LCAwLjAwMjAwNywgMC4wMDIwMDcsIDAuMDAyMDA4LCAwLjAwMjAwOSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzI4OSwgMC4wMDMyOTMsIDAuMDAzMjk5LCAwLjAwMzMsIDAuMDAzMywgMC4wMDMzMDEsIDAuMDAzMzAxIiwgXAotICAgICAgICAgICIwLjAwMzI3OSwgMC4wMDMyODQsIDAuMDAzMjksIDAuMDAzMjkxLCAwLjAwMzI5MiwgMC4wMDMyOTIsIDAuMDAzMjkyIiwgXAotICAgICAgICAgICIwLjAwMzI2OCwgMC4wMDMyNzMsIDAuMDAzMjgxLCAwLjAwMzI4MywgMC4wMDMyODMsIDAuMDAzMjg0LCAwLjAwMzI4NCIsIFwKLSAgICAgICAgICAiMC4wMDMyNTksIDAuMDAzMjY1LCAwLjAwMzI3NCwgMC4wMDMyNzYsIDAuMDAzMjc3LCAwLjAwMzI3OCwgMC4wMDMyNzgiLCBcCi0gICAgICAgICAgIjAuMDAzMjU3LCAwLjAwMzI2MiwgMC4wMDMyNzQsIDAuMDAzMjc2LCAwLjAwMzI3NywgMC4wMDMyNzksIDAuMDAzMjc4IiwgXAotICAgICAgICAgICIwLjAwMzI1OCwgMC4wMDMyNjUsIDAuMDAzMjc2LCAwLjAwMzI3OSwgMC4wMDMyOCwgMC4wMDMyODEsIDAuMDAzMjgxIiwgXAotICAgICAgICAgICIwLjAwMzI2NCwgMC4wMDMyNzEsIDAuMDAzMjgyLCAwLjAwMzI4NSwgMC4wMDMyODcsIDAuMDAzMjg4LCAwLjAwMzI4OSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUk4pICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTAwNDY2OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDk5NTQ0OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTAwNDY2OwotICAgIGNsb2NrIDogdHJ1ZTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA0NTMsIDAuMDAwNDUzLCAwLjAwMDQ1MiwgMC4wMDA0NTIsIDAuMDAwNDUyLCAwLjAwMDQ1MiwgMC4wMDA0NTIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA0NTcsIDAuMDAwNDU0LCAwLjAwMDQ1NCwgMC4wMDA0NTQsIDAuMDAwNDU0LCAwLjAwMDQ1NCwgMC4wMDA0NTQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfZmFsbGluZzsKLSAgICAgIHdoZW4gOiAiRCZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzFfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wNzUsIC0wLjA3LCAtMC4wNywgLTAuMDc2MjUsIC0wLjA4ODc1LCAtMC4xMDM3NSwgLTAuMTEzNzUiLCBcCi0gICAgICAgICAgIi0wLjA4NjI1LCAtMC4wNzUsIC0wLjA4MTI1LCAtMC4wODc1LCAtMC4xLCAtMC4xMDg3NSwgLTAuMTI1IiwgXAotICAgICAgICAgICItMC4wOTg3NSwgLTAuMDg3NSwgLTAuMDg3NSwgLTAuMSwgLTAuMTA2MjUsIC0wLjEyMTI1LCAtMC4xMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMTA1LCAtMC4xLCAtMC4xLCAtMC4xMDYyNSwgLTAuMTE4NzUsIC0wLjEyNzUsIC0wLjEzNzUiLCBcCi0gICAgICAgICAgIi0wLjExNzUsIC0wLjEwNjI1LCAtMC4xMTI1LCAtMC4xMTg3NSwgLTAuMTI1LCAtMC4xNCwgLTAuMTUiLCBcCi0gICAgICAgICAgIi0wLjEyNzUsIC0wLjEyMjUsIC0wLjEyMjUsIC0wLjEyODc1LCAtMC4xMzUsIC0wLjE1LCAtMC4xNiIsIFwKLSAgICAgICAgICAiLTAuMTQyNSwgLTAuMTMxMjUsIC0wLjEzMTI1LCAtMC4xMzc1LCAtMC4xNDM3NSwgLTAuMTU4NzUsIC0wLjE2ODc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRCZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjE3MjI4NiwgMC4xODE1NzUsIDAuMTkxNzg5LCAwLjIwMTM3OCwgMC4yMTA1NywgMC4yMjM4NDcsIDAuMjM0MTc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkciOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9mYWxsaW5nOwotICAgICAgd2hlbiA6ICJEJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMV9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5Mzc1LCAwLjA4MjUsIDAuMDgyNSwgMC4wOTUsIDAuMTEzNzUsIDAuMTQxMjUsIDAuMTciLCBcCi0gICAgICAgICAgIjAuMTA1LCAwLjA5Mzc1LCAwLjA5Mzc1LCAwLjEsIDAuMTE4NzUsIDAuMTUyNSwgMC4xNzUiLCBcCi0gICAgICAgICAgIjAuMTExMjUsIDAuMSwgMC4xLCAwLjExMjUsIDAuMTMxMjUsIDAuMTU4NzUsIDAuMTg3NSIsIFwKLSAgICAgICAgICAiMC4xMjM3NSwgMC4xMTI1LCAwLjExMjUsIDAuMTE4NzUsIDAuMTM3NSwgMC4xNjUsIDAuMTkzNzUiLCBcCi0gICAgICAgICAgIjAuMTMsIDAuMTI1LCAwLjExODc1LCAwLjEzMTI1LCAwLjE0Mzc1LCAwLjE3MTI1LCAwLjIiLCBcCi0gICAgICAgICAgIjAuMTQ2MjUsIDAuMTM1LCAwLjEzNSwgMC4xNDEyNSwgMC4xNTM3NSwgMC4xODEyNSwgMC4yMDM3NSIsIFwKLSAgICAgICAgICAiMC4xNTUsIDAuMTQzNzUsIDAuMTQzNzUsIDAuMTUsIDAuMTYyNSwgMC4xOSwgMC4yMTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTTikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjQwNzc4OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDY0MDc3ODsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2Mzk1OTU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjI2LCAwLjAwMDIyNiwgMC4wMDAyMjYsIDAuMDAwMjI2LCAwLjAwMDIyNiwgMC4wMDAyMjYsIDAuMDAwMjI2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjMzLCAwLjAwMDIyOCwgMC4wMDAyMjcsIDAuMDAwMjI3LCAwLjAwMDIyNywgMC4wMDAyMjcsIDAuMDAwMjI3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRCI7Ci0gICAgICBzZGZfY29uZCA6ICJEID09IDEnYjAiOwotICAgICAgZmFsbF9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDk0OTEyLCAwLjEwNDg4MSwgMC4xMTcxMDMsIDAuMTI5MTAxLCAwLjEzOTk5NiwgMC4xNTQ2MzksIDAuMTY1NzQyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkciOwotICAgICAgdGltaW5nX3R5cGUgOiByZWNvdmVyeV9mYWxsaW5nOwotICAgICAgd2hlbiA6ICIhRCZSTiI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fUk5fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChyZWNvdmVyeV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDYyNSwgMC4wMDEyNSwgLTAuMDExMjUsIC0wLjAxNzUsIC0wLjAzLCAtMC4wNCwgLTAuMDQyNSIsIFwKLSAgICAgICAgICAiMC4wMTc1LCAwLjAwNjI1LCAtMC4wMDYyNSwgLTAuMDEyNSwgLTAuMDE4NzUsIC0wLjAyODc1LCAtMC4wMzc1IiwgXAotICAgICAgICAgICIwLjAzLCAwLjAxODc1LCAwLjAwNjI1LCAwLCAtMC4wMTI1LCAtMC4wMjI1LCAtMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMDM2MjUsIDAuMDI1LCAwLjAxMjUsIDAuMDA2MjUsIDAsIC0wLjAxLCAtMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4wNDI1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMTI1LCAwLjAwNjI1LCAtMC4wMDM3NSwgLTAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4wNTI1LCAwLjA0NzUsIDAuMDM1LCAwLjAyMjUsIDAuMDE2MjUsIDAuMDA2MjUsIC0wLjAwMjUiLCBcCi0gICAgICAgICAgIjAuMDYxMjUsIDAuMDUsIDAuMDQzNzUsIDAuMDMxMjUsIDAuMDI1LCAwLjAxNSwgMC4wMDYyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJlY292ZXJ5X3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUciOwotICAgICAgc2RmX2NvbmQgOiAiRyA9PSAxJ2IwIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChyZWNvdmVyeV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTI1LCAwLjAwNzUsIDAuMDAxMjUsIC0wLjAwNSwgLTAuMDA1LCAtMC4wMTUsIC0wLjAxNzUiLCBcCi0gICAgICAgICAgIjAuMDIzNzUsIDAuMDEyNSwgMC4wMDYyNSwgMC4wMDYyNSwgMCwgLTAuMDAzNzUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICIwLjAzLCAwLjAyNSwgMC4wMTg3NSwgMC4wMTI1LCAwLjAwNjI1LCAwLjAwMjUsIDAiLCBcCi0gICAgICAgICAgIjAuMDM2MjUsIDAuMDMxMjUsIDAuMDI1LCAwLjAxODc1LCAwLjAxODc1LCAwLjAwODc1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICIwLjA0MjUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMjUsIDAuMDI1LCAwLjAxNSwgMC4wMTI1IiwgXAotICAgICAgICAgICIwLjA1MjUsIDAuMDQ3NSwgMC4wNDEyNSwgMC4wMzUsIDAuMDI4NzUsIDAuMDI1LCAwLjAyMjUiLCBcCi0gICAgICAgICAgIjAuMDYxMjUsIDAuMDU2MjUsIDAuMDUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzM3NSwgMC4wMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJlbW92YWxfZmFsbGluZzsKLSAgICAgIHdoZW4gOiAiIUQmUk4iOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1JOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQocmVtb3ZhbF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTg3NSwgMC4wMywgMC4wMzYyNSwgMC4wNDg3NSwgMC4wNTUsIDAuMDcxMjUsIDAuMDgiLCBcCi0gICAgICAgICAgIjAuMDA3NSwgMC4wMTg3NSwgMC4wMzEyNSwgMC4wNDM3NSwgMC4wNSwgMC4wNiwgMC4wNjg3NSIsIFwKLSAgICAgICAgICAiMC4wMDEyNSwgMC4wMTI1LCAwLjAxODc1LCAwLjAzMTI1LCAwLjAzNzUsIDAuMDUzNzUsIDAuMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDA1LCAwLCAwLjAxMjUsIDAuMDI1LCAwLjAzMTI1LCAwLjA0MTI1LCAwLjA1IiwgXAotICAgICAgICAgICItMC4wMTc1LCAtMC4wMDYyNSwgMC4wMDYyNSwgMC4wMTg3NSwgMC4wMjUsIDAuMDM1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICItMC4wMjc1LCAtMC4wMTYyNSwgLTAuMDAzNzUsIDAuMDA4NzUsIDAuMDE1LCAwLjAyNSwgMC4wMzM3NSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAyNSwgLTAuMDEyNSwgMCwgMC4wMDYyNSwgMC4wMTYyNSwgMC4wMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUk4iOwotICAgICAgdGltaW5nX3R5cGUgOiByZW1vdmFsX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUciOwotICAgICAgc2RmX2NvbmQgOiAiRyA9PSAxJ2IwIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChyZW1vdmFsX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjI1LCAwLjAxNzUsIDAuMDIzNzUsIDAuMDMsIDAuMDM2MjUsIDAuMDQ2MjUsIDAuMDU1IiwgXAotICAgICAgICAgICIwLjAwMTI1LCAwLjAwNjI1LCAwLjAxODc1LCAwLjAyNSwgMC4wMzEyNSwgMC4wNDEyNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDExMjUsIDAsIDAuMDA2MjUsIDAuMDEyNSwgMC4wMTg3NSwgMC4wMjg3NSwgMC4wMzc1IiwgXAotICAgICAgICAgICItMC4wMTc1LCAtMC4wMDYyNSwgMCwgMC4wMDYyNSwgMC4wMTI1LCAwLjAyMjUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMCwgMC4wMDYyNSwgMC4wMTYyNSwgMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjAzMzc1LCAtMC4wMjI1LCAtMC4wMTYyNSwgLTAuMDEsIC0wLjAwMzc1LCAwLjAwNjI1LCAwLjAxNSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAxMjUsIC0wLjAwNjI1LCAtMC4wMDI1LCAwLjAwNjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IFRMQVRTUlhMICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChUTEFUU1JYTCkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjI1NjgxMTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBsYXRjaCAoUUlOVCxONSkgewotICAgIGRhdGFfaW4gOiAiRCI7Ci0gICAgZW5hYmxlIDogIihHIFJOKSI7Ci0gICAgcHJlc2V0IDogIighU04pIjsKLSAgfQotICBwaW4oRCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNTk3Njc3OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDU5NjEzMTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA1OTc2Nzc7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjE4LCAwLjAwMDIyMSwgMC4wMDAyMjEsIDAuMDAwMjIyLCAwLjAwMDIyMiwgMC4wMDAyMjIsIDAuMDAwMjIyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjMyLCAwLjAwMDIyOCwgMC4wMDAyMjcsIDAuMDAwMjI3LCAwLjAwMDIyNywgMC4wMDAyMjcsIDAuMDAwMjI3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkciOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX2ZhbGxpbmc7Ci0gICAgICB3aGVuIDogIlJOJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIlJOX0VRXzFfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMTI1LCAtMC4wMDEyNSwgMC4wMTEyNSwgMC4wMjM3NSwgMC4wMywgMC4wNCwgMC4wNDg3NSIsIFwKLSAgICAgICAgICAiLTAuMDE3NSwgLTAuMDEyNSwgMCwgMC4wMTI1LCAwLjAxODc1LCAwLjAzNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAxODc1LCAtMC4wMDYyNSwgMCwgMC4wMTI1LCAwLjAyMjUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAsIDAuMDEsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wNDM3NSwgLTAuMDMxMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAwLjAwMzc1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjA2NSwgLTAuMDUzNzUsIC0wLjA0MTI1LCAtMC4wMzUsIC0wLjAyMjUsIC0wLjAxMjUsIC0wLjAwMzc1IiwgXAotICAgICAgICAgICItMC4wNzM3NSwgLTAuMDY4NzUsIC0wLjA1NjI1LCAtMC4wNDM3NSwgLTAuMDMxMjUsIC0wLjAyMTI1LCAtMC4wMTI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDMxMjUsIC0wLjAyNjI1LCAtMC4wMiwgLTAuMDEzNzUsIC0wLjAwNzUsIC0wLjAwMzc1LCAtMC4wMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxODc1LCAtMC4wMDg3NSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDIxMjUsIC0wLjAxODc1IiwgXAotICAgICAgICAgICItMC4wNjEyNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzc1LCAtMC4wMjc1LCAtMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjA2NzUsIC0wLjA2MjUsIC0wLjA1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjAzMzc1LCAtMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDc3NSwgLTAuMDcyNSwgLTAuMDY2MjUsIC0wLjA2LCAtMC4wNTM3NSwgLTAuMDQzNzUsIC0wLjA0MTI1IiwgXAotICAgICAgICAgICItMC4wOTI1LCAtMC4wODEyNSwgLTAuMDc1LCAtMC4wNjg3NSwgLTAuMDYyNSwgLTAuMDUyNSwgLTAuMDUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX2ZhbGxpbmc7Ci0gICAgICB3aGVuIDogIlJOJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIlJOX0VRXzFfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjUsIDAuMDEzNzUsIDAuMDAxMjUsIC0wLjAwNSwgLTAuMDE3NSwgLTAuMDI3NSwgLTAuMDM2MjUiLCBcCi0gICAgICAgICAgIjAuMDM2MjUsIDAuMDI1LCAwLjAxMjUsIDAsIC0wLjAwNjI1LCAtMC4wMjI1LCAtMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4wNDg3NSwgMC4wMzc1LCAwLjAyNSwgMC4wMTI1LCAwLCAtMC4wMSwgLTAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMDU1LCAwLjA0Mzc1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMTI1LCAwLjAwMjUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDU2MjUsIDAuMDQzNzUsIDAuMDMxMjUsIDAuMDI1LCAwLjAwODc1LCAwIiwgXAotICAgICAgICAgICIwLjA3NzUsIDAuMDcyNSwgMC4wNTM3NSwgMC4wNDc1LCAwLjAzNSwgMC4wMjUsIDAuMDE2MjUiLCBcCi0gICAgICAgICAgIjAuMDkyNSwgMC4wODEyNSwgMC4wNjg3NSwgMC4wNTYyNSwgMC4wNDM3NSwgMC4wMzM3NSwgMC4wMjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNSwgMC4wMzg3NSwgMC4wMzI1LCAwLjAyNjI1LCAwLjAyNjI1LCAwLjAyMjUsIDAuMDIiLCBcCi0gICAgICAgICAgIjAuMDYxMjUsIDAuMDUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMjc1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiMC4wNjc1LCAwLjA1NjI1LCAwLjA1LCAwLjA0Mzc1LCAwLjA0Mzc1LCAwLjA0LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIjAuMDczNzUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNSwgMC4wNDYyNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4wODYyNSwgMC4wNzUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNTI1LCAwLjA1IiwgXAotICAgICAgICAgICIwLjA5NjI1LCAwLjA4NSwgMC4wNzg3NSwgMC4wNzI1LCAwLjA3MjUsIDAuMDYyNSwgMC4wNiIsIFwKLSAgICAgICAgICAiMC4xMDUsIDAuMDkzNzUsIDAuMDg3NSwgMC4wODEyNSwgMC4wNzUsIDAuMDcxMjUsIDAuMDY4NzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEcpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY2NDg1MzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2NjQ4NTM7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNTU5OTY1OwotICAgIGNsb2NrIDogdHJ1ZTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDE4NzUsIDAuMDAxODQ5LCAwLjAwMTg0MiwgMC4wMDE4NDEsIDAuMDAxODUzLCAwLjAwMTg3NCwgMC4wMDE4OTkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyNTcsIDAuMDAwMjU3LCAwLjAwMDI1NywgMC4wMDAyNTcsIDAuMDAwMjU3LCAwLjAwMDI1NywgMC4wMDAyNTciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQmU04iOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4yMjU0NjcsIDAuMjM0MzU1LCAwLjI0NjIyOSwgMC4yNTc3NjcsIDAuMjY4NzQxLCAwLjI4NDI4MSwgMC4yOTY0MjIiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFEpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4xNDc4ODY7Ci0gICAgZnVuY3Rpb24gOiAiUUlOVCI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTY0NzE3LCAwLjE3ODYzMiwgMC4zMDY1NDEsIDAuNTE4NzEsIDAuNzMwNzc4LCAxLjIyNTYsIDEuNTA4NDgiLCBcCi0gICAgICAgICAgIjAuMTczMzk0LCAwLjE4NzM3OSwgMC4zMTQ2MjUsIDAuNTI2MjI3LCAwLjczOTQ0OSwgMS4yMzQzMSwgMS41MTcxNCIsIFwKLSAgICAgICAgICAiMC4xODM4MjIsIDAuMTk4MjQxLCAwLjMyNTA0NCwgMC41Mzc5OTUsIDAuNzUwMDYxLCAxLjI0NSwgMS41Mjc3NSIsIFwKLSAgICAgICAgICAiMC4xOTQwNTksIDAuMjA4NDU0LCAwLjMzNjAxNSwgMC41NDcwNjcsIDAuNzYwMjgxLCAxLjI1NTA5LCAxLjUzNzk3IiwgXAotICAgICAgICAgICIwLjIwMzUxNCwgMC4yMTc5NjgsIDAuMzQ0Nzg5LCAwLjU1NzcwNSwgMC43Njg2NjksIDEuMjY0NzIsIDEuNTQ3NDgiLCBcCi0gICAgICAgICAgIjAuMjE3MDk4LCAwLjIzMDk4NCwgMC4zNTgxMDIsIDAuNTcwNDY1LCAwLjc4MzA4NywgMS4yNzc5NSwgMS41NjA4IiwgXAotICAgICAgICAgICIwLjIyNzg2NywgMC4yNDE4NzcsIDAuMzY5MTAzLCAwLjU4MDc1MywgMC43OTM3OTQsIDEuMjg2NzIsIDEuNTY5MTciKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTUyMTM0LCAwLjE4MDY3NSwgMC40NDMyMTYsIDAuODc5MDUxLCAxLjMxNDE4LCAyLjMzMTQ1LCAyLjkxMjEzIiwgXAotICAgICAgICAgICIwLjE1MjEwOSwgMC4xODA2ODksIDAuNDQyMjksIDAuODc3MTg5LCAxLjMxNDA2LCAyLjMzMTc2LCAyLjkxMjIiLCBcCi0gICAgICAgICAgIjAuMTUxNzE4LCAwLjE4MTI2NCwgMC40NDI1MDUsIDAuODc4OTM0LCAxLjMxNDEsIDIuMzMwOTYsIDIuOTEyMjMiLCBcCi0gICAgICAgICAgIjAuMTUyMDc1LCAwLjE4MTI2LCAwLjQ0MzA3OCwgMC44NzY2MDMsIDEuMzE0MDUsIDIuMzMxODUsIDIuOTEyMjYiLCBcCi0gICAgICAgICAgIjAuMTUxNzEzLCAwLjE4MTMwMywgMC40NDI1MzQsIDAuODc4NTkzLCAxLjMxMjA3LCAyLjMzMDczLCAyLjkxMTc2IiwgXAotICAgICAgICAgICIwLjE1MjM2MSwgMC4xODE0ODgsIDAuNDQyNTA5LCAwLjg3OTE3LCAxLjMxNDA4LCAyLjMzMTQyLCAyLjkxMjg5IiwgXAotICAgICAgICAgICIwLjE1MjE4LCAwLjE4MTcwMiwgMC40NDIzMDQsIDAuODc3MjU4LCAxLjMxNDM1LCAyLjMyNzMyLCAyLjkwODk1Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE4NDk0NSwgMC4xOTg4MDcsIDAuMzIzMjY3LCAwLjUzMDc1OSwgMC43MzgzNTIsIDEuMjIyNTYsIDEuNDk5MiIsIFwKLSAgICAgICAgICAiMC4xOTM0NzUsIDAuMjA3MjcxLCAwLjMzMTczNCwgMC41MzkyMzQsIDAuNzQ2ODc2LCAxLjIzMDk3LCAxLjUwNzc4IiwgXAotICAgICAgICAgICIwLjIwMzAyNSwgMC4yMTY4NjUsIDAuMzQxMzMzLCAwLjU0ODgyMywgMC43NTYzODQsIDEuMjQwNjMsIDEuNTE3MjYiLCBcCi0gICAgICAgICAgIjAuMjExOTk1LCAwLjIyNTg0OCwgMC4zNTAzMDksIDAuNTU3ODA0LCAwLjc2NTM0OSwgMS4yNDk2MSwgMS41MjYyNSIsIFwKLSAgICAgICAgICAiMC4yMjA0MDQsIDAuMjM0MjEyLCAwLjM1ODY2NCwgMC41NjYxNjgsIDAuNzczODIxLCAxLjI1NzksIDEuNTM0NzQiLCBcCi0gICAgICAgICAgIjAuMjMyMDc3LCAwLjI0NTk1MSwgMC4zNzAzMzYsIDAuNTc3ODQsIDAuNzg1NTAxLCAxLjI2OTY2LCAxLjU0NTg4IiwgXAotICAgICAgICAgICIwLjI0MTAzOSwgMC4yNTQ4NywgMC4zNzkyNDgsIDAuNTg2NzQ3LCAwLjc5NDI4OCwgMS4yNzg2OCwgMS41NTUzOSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNDU0NTIsIDAuMTczMTY5LCAwLjQyMzU2NywgMC44NDA2MzcsIDEuMjU3ODYsIDIuMjMwODQsIDIuNzg2NjUiLCBcCi0gICAgICAgICAgIjAuMTQ1NDM4LCAwLjE3MzAzMSwgMC40MjM1NTksIDAuODQwNjQ3LCAxLjI1ODA0LCAyLjIzMDY4LCAyLjc4NzA2IiwgXAotICAgICAgICAgICIwLjE0NTQ1NCwgMC4xNzMxMDgsIDAuNDIzNTQ4LCAwLjg0MDYwMSwgMS4yNTc3NiwgMi4yMzA4NiwgMi43ODY2MyIsIFwKLSAgICAgICAgICAiMC4xNDU0NTIsIDAuMTczMTU2LCAwLjQyMzU1NywgMC44NDA2MDcsIDEuMjU3NzIsIDIuMjMwODUsIDIuNzg2NjciLCBcCi0gICAgICAgICAgIjAuMTQ1NDM3LCAwLjE3MzEwMSwgMC40MjM1NiwgMC44NDA2NDUsIDEuMjUzOTEsIDIuMjMwNjYsIDIuNzg3MTUiLCBcCi0gICAgICAgICAgIjAuMTQ1MzkzLCAwLjE3MzE1NiwgMC40MjM1NSwgMC44NDA2MzYsIDEuMjUzODEsIDIuMjMwOTgsIDIuNzgxMzEiLCBcCi0gICAgICAgICAgIjAuMTQ1NDY5LCAwLjE3MzE1NiwgMC40MjM1NSwgMC44NDA1OTksIDEuMjU3NzMsIDIuMjMxMywgMi43ODcyNCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJHIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5vbl91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcmlzaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIxODI1OSwgMC4yMzIyLCAwLjM1OTI3MywgMC41NzIyMDYsIDAuNzg0MjksIDEuMjc5MjIsIDEuNTYxOTgiLCBcCi0gICAgICAgICAgIjAuMjI3MTIzLCAwLjI0MTA1MSwgMC4zNjgxNDksIDAuNTgxMDcyLCAwLjc5MzE1MywgMS4yODgwOCwgMS41NzA4NSIsIFwKLSAgICAgICAgICAiMC4yMzkwODYsIDAuMjUzMDMzLCAwLjM4MDkwNywgMC41OTE5MDgsIDAuODA1MTE3LCAxLjI5OTk0LCAxLjU4MjgiLCBcCi0gICAgICAgICAgIjAuMjUwNzI0LCAwLjI2NDY3MiwgMC4zOTI1NDEsIDAuNjAzNTQ2LCAwLjgxNjc1OCwgMS4zMTE2MiwgMS41OTQ0NCIsIFwKLSAgICAgICAgICAiMC4yNjExNjIsIDAuMjc1NTkzLCAwLjQwMjQwNCwgMC42MTQ0NDgsIDAuODI3NDM1LCAxLjMyMjI5LCAxLjYwNTEzIiwgXAotICAgICAgICAgICIwLjI3NjQ4OCwgMC4yOTA3MTEsIDAuNDE3NzIsIDAuNjI5MzEzLCAwLjg0MjUxMywgMS4zMzU2NSwgMS42MjAxOSIsIFwKLSAgICAgICAgICAiMC4yODc4NTcsIDAuMzAxNzU2LCAwLjQyODg5MywgMC42NDA5NCwgMC44NTM5MDcsIDEuMzQ4NzYsIDEuNjMxNjIiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTUyMTk5LCAwLjE4MTI2OCwgMC40NDI1MzYsIDAuODc4ODU4LCAxLjMxNDEsIDIuMzMxMDgsIDIuOTEyMzEiLCBcCi0gICAgICAgICAgIjAuMTUyMjA2LCAwLjE4MTE4OCwgMC40NDI1MDgsIDAuODc4ODU3LCAxLjMxNDE0LCAyLjMzMTA2LCAyLjkxMjMzIiwgXAotICAgICAgICAgICIwLjE1MjIsIDAuMTgxMzQsIDAuNDQzMTUzLCAwLjg3NzA3NywgMS4zMTQwOCwgMi4zMzEyMSwgMi45MTIzMiIsIFwKLSAgICAgICAgICAiMC4xNTIyLCAwLjE4MTM0LCAwLjQ0MzE2OCwgMC44NzcwNTIsIDEuMzE0MDcsIDIuMzMwOTQsIDIuOTEyMzIiLCBcCi0gICAgICAgICAgIjAuMTUyMzM0LCAwLjE4MTM0OCwgMC40NDI0ODgsIDAuODc3ODM0LCAxLjMxNCwgMi4zMzExNiwgMi45MTIzMiIsIFwKLSAgICAgICAgICAiMC4xNTIyMDEsIDAuMTgxNjIyLCAwLjQ0MjI5OSwgMC44NzY3MDMsIDEuMzE0MDgsIDIuMzI5OTMsIDIuOTEyMzgiLCBcCi0gICAgICAgICAgIjAuMTUyMTg0LCAwLjE4MTQyNywgMC40NDI0OTIsIDAuODc3ODg0LCAxLjMxNCwgMi4zMzEyNCwgMi45MTI3Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIyNTQ2NywgMC4yMzkxOSwgMC4zNjM2NjcsIDAuNTcxMiwgMC43Nzg4NTQsIDEuMjYyODksIDEuNTM5NzEiLCBcCi0gICAgICAgICAgIjAuMjM0MzU1LCAwLjI0ODE4LCAwLjM3MjU1NywgMC41ODAwOSwgMC43ODc3NDMsIDEuMjcxNzksIDEuNTQ4NjIiLCBcCi0gICAgICAgICAgIjAuMjQ2MjI5LCAwLjI2MDA1NCwgMC4zODQ0MywgMC41OTE5NjIsIDAuNzk5NjA4LCAxLjI4MzY2LCAxLjU2MDQ4IiwgXAotICAgICAgICAgICIwLjI1Nzc2NywgMC4yNzE2NTYsIDAuMzk2MDMyLCAwLjYwMzU2MywgMC44MTEyMDcsIDEuMjk1MjcsIDEuNTcyMSIsIFwKLSAgICAgICAgICAiMC4yNjg3NDEsIDAuMjgyNjExLCAwLjQwNjk4OCwgMC42MTQ1MDQsIDAuODIyMTIsIDEuMzA2MzIsIDEuNTgyOTMiLCBcCi0gICAgICAgICAgIjAuMjg0MjgxLCAwLjI5ODAxOCwgMC40MjI0NzEsIDAuNjI5OTk5LCAwLjgzNzYzOSwgMS4zMjE3NSwgMS41OTc5NiIsIFwKLSAgICAgICAgICAiMC4yOTY0MjIsIDAuMzEwMTU2LCAwLjQzNDYyNCwgMC42NDIxNTgsIDAuODQ5ODE1LCAxLjMzMzg0LCAxLjYxMDY2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE0NTQ4NCwgMC4xNzMxMTcsIDAuNDIzNTc0LCAwLjg0MDY3MywgMS4yNTM4MywgMi4yMzA1OSwgMi43ODY5NyIsIFwKLSAgICAgICAgICAiMC4xNDU0ODUsIDAuMTczMTU2LCAwLjQyMzU1NCwgMC44NDA2NTYsIDEuMjUzODIsIDIuMjMwNTksIDIuNzg3MDEiLCBcCi0gICAgICAgICAgIjAuMTQ1NDg1LCAwLjE3MzE1NSwgMC40MjM1NTMsIDAuODQwNjU1LCAxLjI1Mzk4LCAyLjIzMDU2LCAyLjc4Njk3IiwgXAotICAgICAgICAgICIwLjE0NTQ0NiwgMC4xNzMxNTgsIDAuNDIzNTUxLCAwLjg0MDY1MiwgMS4yNTQwNCwgMi4yMzA1OSwgMi43ODcwMyIsIFwKLSAgICAgICAgICAiMC4xNDU0NzIsIDAuMTczMTY5LCAwLjQyMzU4MywgMC44NDA2MjgsIDEuMjU3OTQsIDIuMjMwOSwgMi43ODY2MSIsIFwKLSAgICAgICAgICAiMC4xNDU0NzgsIDAuMTczMDc0LCAwLjQyMzU1NywgMC44NDA2NDIsIDEuMjU4MDMsIDIuMjMwNywgMi43ODIzMyIsIFwKLSAgICAgICAgICAiMC4xNDU0ODMsIDAuMTczMTIxLCAwLjQyMzU3MiwgMC44NDA2NiwgMS4yNTM2OCwgMi4yMzA1MSwgMi43ODY5MyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcmlzaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIyMTA1MSwgMC4yMzUyOTUsIDAuMzYyMzAzLCAwLjU3NTIyNSwgMC43ODczMTEsIDEuMjgyMjQsIDEuNTY1IiwgXAotICAgICAgICAgICIwLjIzMDA0NSwgMC4yNDM5ODIsIDAuMzcxMDMzLCAwLjU4Mzk5MywgMC43OTYwNzgsIDEuMjkxLCAxLjU3Mzc3IiwgXAotICAgICAgICAgICIwLjI0MDY4LCAwLjI1NTA5LCAwLjM4MTg2OCwgMC41OTM4NjksIDAuODA2OTA2LCAxLjMwMDQsIDEuNTg0NTkiLCBcCi0gICAgICAgICAgIjAuMjUxMzEyLCAwLjI2NTIzOCwgMC4zOTIzMzksIDAuNjA1MjY0LCAwLjgxNjM1MywgMS4zMTIyNywgMS41OTUwMyIsIFwKLSAgICAgICAgICAiMC4yNjA5MDIsIDAuMjc0ODE2LCAwLjQwMTkyNywgMC42MTQ4NTQsIDAuODI2MDUxLCAxLjMyMTg2LCAxLjYwNDYyIiwgXAotICAgICAgICAgICIwLjI3NDkwOSwgMC4yODg4MiwgMC40MTU5MzEsIDAuNjI4ODQ4LCAwLjg0MDkyOCwgMS4zMzU4NiwgMS42MTg2MiIsIFwKLSAgICAgICAgICAiMC4yODU3MywgMC4yOTk4ODgsIDAuNDI3NTI2LCAwLjYzOTYzNiwgMC44NTE3NTMsIDEuMzQ0ODEsIDEuNjI5NDUiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTUyNDU4LCAwLjE4MTcwNCwgMC40NDI1MTksIDAuODc4ODM4LCAxLjMxNDEzLCAyLjMzMTA1LCAyLjkxMjMyIiwgXAotICAgICAgICAgICIwLjE1MjIwNiwgMC4xODEwODksIDAuNDQxODY4LCAwLjg3ODkxMywgMS4zMTQxLCAyLjMzMTA4LCAyLjkxMjMiLCBcCi0gICAgICAgICAgIjAuMTUyNTQ4LCAwLjE4MTYxMywgMC40NDIzNjcsIDAuODc3NzY5LCAxLjMxNDA2LCAyLjMyODI2LCAyLjkxMjMzIiwgXAotICAgICAgICAgICIwLjE1MjIwMywgMC4xODEyNTEsIDAuNDQyNTE5LCAwLjg3ODgyNSwgMS4zMTMsIDIuMzMxMDMsIDIuOTEyMzkiLCBcCi0gICAgICAgICAgIjAuMTUyMjA0LCAwLjE4MTM2OCwgMC40NDI1MjUsIDAuODc4ODIzLCAxLjMxMjQzLCAyLjMzMTAxLCAyLjkxMjM5IiwgXAotICAgICAgICAgICIwLjE1MjE5MSwgMC4xODEzNjMsIDAuNDQyNTIsIDAuODc4ODA2LCAxLjMxNDE4LCAyLjMzMTA2LCAyLjkxMjM4IiwgXAotICAgICAgICAgICIwLjE1MjMxOCwgMC4xODE0NSwgMC40NDMxNCwgMC44Nzg2MTIsIDEuMzE0MDMsIDIuMzI2NzcsIDIuOTEyNTgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUk4iOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGZhbGxpbmdfZWRnZTsKLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjI1MzQ0LCAwLjIzOTEyLCAwLjM2MzU0NywgMC41NzEwNjcsIDAuNzc4NDAxLCAxLjI2MjM5LCAxLjUzODciLCBcCi0gICAgICAgICAgIjAuMjM0OTU1LCAwLjI0ODczNSwgMC4zNzMxNTgsIDAuNTgwNjc5LCAwLjc4ODAxNCwgMS4yNzIwMSwgMS41NDgzNiIsIFwKLSAgICAgICAgICAiMC4yNDcxODIsIDAuMjYxMDMzLCAwLjM4NTQ5NiwgMC41OTMwMDEsIDAuODAwNTMyLCAxLjI4NDM2LCAxLjU2MDg3IiwgXAotICAgICAgICAgICIwLjI1ODI3MiwgMC4yNzIxNywgMC4zOTY1NDksIDAuNjA0MDU3LCAwLjgxMTUyNywgMS4yOTU0MSwgMS41NzIyNyIsIFwKLSAgICAgICAgICAiMC4yNjgwNjYsIDAuMjgxOTM0LCAwLjQwNjM5MywgMC42MTM3OCwgMC44MjE0MSwgMS4zMDU2MywgMS41ODE4NiIsIFwKLSAgICAgICAgICAiMC4yODI2NDQsIDAuMjk2NTA4LCAwLjQyMDk3LCAwLjYyODM1OSwgMC44MzU5ODgsIDEuMzIwMjIsIDEuNTk2NDQiLCBcCi0gICAgICAgICAgIjAuMjk0NzA2LCAwLjMwODUxOSwgMC40MzI5OSwgMC42NDA1MDQsIDAuODQ4MDU4LCAxLjMzMTg2LCAxLjYwOTE5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE0NTQ3OSwgMC4xNzMxODksIDAuNDIzNTgxLCAwLjg0MDkwMywgMS4yNTgwNiwgMi4yMzExNywgMi43ODA0IiwgXAotICAgICAgICAgICIwLjE0NTQ3OSwgMC4xNzMxOSwgMC40MjM1NiwgMC44NDA5MTIsIDEuMjU3NzIsIDIuMjI1NTEsIDIuNzg2OTQiLCBcCi0gICAgICAgICAgIjAuMTQ1NDQyLCAwLjE3MzExOSwgMC40MjM1NzEsIDAuODQwODQ5LCAxLjI1Nzk1LCAyLjIzMDc1LCAyLjc4MTU4IiwgXAotICAgICAgICAgICIwLjE0NTQ1OCwgMC4xNzMxNjYsIDAuNDIzNTMxLCAwLjg0MDgxOSwgMS4yNTc2NSwgMi4yMjU0MSwgMi43ODYyMyIsIFwKLSAgICAgICAgICAiMC4xNDU0NDcsIDAuMTczMTU5LCAwLjQyMzU5NCwgMC44NDA4MDcsIDEuMjU3ODksIDIuMjMwOTYsIDIuNzg0IiwgXAotICAgICAgICAgICIwLjE0NTQ2MSwgMC4xNzMxNjIsIDAuNDIzNTc4LCAwLjg0MDg0NywgMS4yNTc4OCwgMi4yMzA5NywgMi43ODEyNyIsIFwKLSAgICAgICAgICAiMC4xNDU0ODgsIDAuMTczMTEsIDAuNDIzNTQzLCAwLjg0MDgyLCAxLjI1ODA1LCAyLjIyNTgxLCAyLjc4MTE2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiBwcmVzZXQ7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEyMjgxNSwgMC4xMzcxMjMsIDAuMjY0MjM3LCAwLjQ3NjU2NCwgMC42ODg2MjEsIDEuMTgzMzQsIDEuNDY2MzEiLCBcCi0gICAgICAgICAgIjAuMTMyODQ0LCAwLjE0NzA0OSwgMC4yNzM5OTksIDAuNDg2NjMxLCAwLjY5ODU0NywgMS4xOTIyOCwgMS40NzYyMSIsIFwKLSAgICAgICAgICAiMC4xNDUxODksIDAuMTU5MTQsIDAuMjg2NDkxLCAwLjQ5ODc3NSwgMC43MTA4NSwgMS4yMDU1NCwgMS40ODg3NSIsIFwKLSAgICAgICAgICAiMC4xNTY4MTksIDAuMTcwNzQ5LCAwLjI5ODUzMywgMC41MTAxMDgsIDAuNzIyNDQyLCAxLjIxNzQ5LCAxLjQ5ODc0IiwgXAotICAgICAgICAgICIwLjE2NjgyMSwgMC4xODA5NjMsIDAuMzA4MjUyLCAwLjUyMDU3MSwgMC43MzI4LCAxLjIyNjU1LCAxLjUxMDI3IiwgXAotICAgICAgICAgICIwLjE4MDU4MSwgMC4xOTQ3OTQsIDAuMzIxOTk3LCAwLjUzNDMxNiwgMC43NDYzNiwgMS4yNDEyOCwgMS41MjM5NyIsIFwKLSAgICAgICAgICAiMC4xOTA5MTMsIDAuMjA1MDc3LCAwLjMzMjUxOSwgMC41NDQ2MDUsIDAuNzU2NzE0LCAxLjI1MTA0LCAxLjUzNDMxIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE1MjE5MSwgMC4xODE1ODQsIDAuNDQyNTg2LCAwLjg3ODY4OCwgMS4zMTQ3MywgMi4zMzAwMSwgMi45MTMzMiIsIFwKLSAgICAgICAgICAiMC4xNTIyMTEsIDAuMTgxNTgzLCAwLjQ0MzAwMSwgMC44Nzg2ODYsIDEuMzE0NzUsIDIuMzMwODksIDIuOTEzMSIsIFwKLSAgICAgICAgICAiMC4xNTI1MzIsIDAuMTgxMDgyLCAwLjQ0MzAxNywgMC44Nzg2ODYsIDEuMzE0NzUsIDIuMzMxODQsIDIuOTEyOTUiLCBcCi0gICAgICAgICAgIjAuMTUyMzc5LCAwLjE4MTE1MiwgMC40NDMwMTUsIDAuODc5MTQ3LCAxLjMxNDc1LCAyLjMzMTEsIDIuOTA5MjIiLCBcCi0gICAgICAgICAgIjAuMTUyNDQ0LCAwLjE4MTU5NCwgMC40NDI0OTQsIDAuODc5MDQyLCAxLjMxNDczLCAyLjMzMTY3LCAyLjkxMjM1IiwgXAotICAgICAgICAgICIwLjE1MjUzMSwgMC4xODE1MjMsIDAuNDQyOTksIDAuODc4NjQzLCAxLjMxNDY4LCAyLjMzMTE0LCAyLjkxMzE3IiwgXAotICAgICAgICAgICIwLjE1MjE3NiwgMC4xODE1MjgsIDAuNDQyOTI5LCAwLjg3ODk0LCAxLjMxNDY4LCAyLjMzMDgyLCAyLjkxMzE3Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE0NDAyMSwgMC4xNTc3NjYsIDAuMjgyMjI5LCAwLjQ4OTcxMiwgMC42OTczMjYsIDEuMTgxOSwgMS40NTc4IiwgXAotICAgICAgICAgICIwLjE1MjYzNiwgMC4xNjY1MzQsIDAuMjkwOTI3LCAwLjQ5ODQwNCwgMC43MDYzNiwgMS4xOTA5NCwgMS40NjY4OSIsIFwKLSAgICAgICAgICAiMC4xNjMzMTksIDAuMTc3MDgsIDAuMzAxNTMzLCAwLjUwOTAxNywgMC43MTY1NTcsIDEuMjAwNjYsIDEuNDc4ODYiLCBcCi0gICAgICAgICAgIjAuMTczNzcyLCAwLjE4NzU0NSwgMC4zMTE5ODYsIDAuNTE5NDc5LCAwLjcyNzA5NSwgMS4yMTA2NywgMS40ODcwNCIsIFwKLSAgICAgICAgICAiMC4xODM3MjcsIDAuMTk3NDgsIDAuMzIxOTUyLCAwLjUyOTUwMSwgMC43Mzc0NzgsIDEuMjIxOTQsIDEuNDk4MjUiLCBcCi0gICAgICAgICAgIjAuMTk4Mzk2LCAwLjIxMjIyOSwgMC4zMzY1OTcsIDAuNTQ0MTcxLCAwLjc1MTc4MywgMS4yMzYxNSwgMS41MTMyOSIsIFwKLSAgICAgICAgICAiMC4yMDk1MzksIDAuMjIzNDIsIDAuMzQ3Nzk2LCAwLjU1NTQwOSwgMC43NjMyMjYsIDEuMjQ3ODUsIDEuNTI0MzkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTQ1NDczLCAwLjE3MzEzNSwgMC40MjM1NjUsIDAuODQwNjY4LCAxLjI1NzgyLCAyLjIyNjQxLCAyLjc4MTA2IiwgXAotICAgICAgICAgICIwLjE0NTQ1NywgMC4xNzMxNTksIDAuNDIzNTM2LCAwLjg0MDYxMiwgMS4yNTc2NywgMi4yMjY4NywgMi43ODcwOCIsIFwKLSAgICAgICAgICAiMC4xNDU0NzEsIDAuMTczMTUxLCAwLjQyMzU1MiwgMC44NDA2NDQsIDEuMjU3NjYsIDIuMjI5OTIsIDIuNzkyNjkiLCBcCi0gICAgICAgICAgIjAuMTQ1NDczLCAwLjE3MzE4MSwgMC40MjM1NjIsIDAuODQwNjUyLCAxLjI1NzgsIDIuMjI2NSwgMi43NzY4OSIsIFwKLSAgICAgICAgICAiMC4xNDU0NzMsIDAuMTczMTY3LCAwLjQyMzU2NCwgMC44NDA3MiwgMS4yNTQ4OCwgMi4yMjYzOCwgMi43ODIwNSIsIFwKLSAgICAgICAgICAiMC4xNDU0ODgsIDAuMTczMTk1LCAwLjQyMzU3MywgMC44NDA2MzEsIDEuMjU3NzQsIDIuMjMwNDYsIDIuNzgzODYiLCBcCi0gICAgICAgICAgIjAuMTQ1NTI3LCAwLjE3MzEyOCwgMC40MjM0MTYsIDAuODQwNjA1LCAxLjI1NTY5LCAyLjIyNjc0LCAyLjc4MTUyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyMzYyLCAwLjAwMjM2MywgMC4wMDIzNjcsIDAuMDAyMzY3LCAwLjAwMjM2NywgMC4wMDIzNjksIDAuMDAyMzY5IiwgXAotICAgICAgICAgICIwLjAwMjM1MSwgMC4wMDIzNTIsIDAuMDAyMzU2LCAwLjAwMjM1NywgMC4wMDIzNTgsIDAuMDAyMzU3LCAwLjAwMjM1NyIsIFwKLSAgICAgICAgICAiMC4wMDIzNDQsIDAuMDAyMzQ2LCAwLjAwMjM0OSwgMC4wMDIzNTEsIDAuMDAyMzUxLCAwLjAwMjM1LCAwLjAwMjM1MiIsIFwKLSAgICAgICAgICAiMC4wMDIzNCwgMC4wMDIzNDEsIDAuMDAyMzQ1LCAwLjAwMjM0NiwgMC4wMDIzNDcsIDAuMDAyMzQ3LCAwLjAwMjM0OCIsIFwKLSAgICAgICAgICAiMC4wMDIzMzksIDAuMDAyMzQsIDAuMDAyMzQ0LCAwLjAwMjM0NSwgMC4wMDIzNDYsIDAuMDAyMzQ2LCAwLjAwMjM0NiIsIFwKLSAgICAgICAgICAiMC4wMDIzNCwgMC4wMDIzNDEsIDAuMDAyMzQ1LCAwLjAwMjM0NywgMC4wMDIzNDcsIDAuMDAyMzQ3LCAwLjAwMjM0OCIsIFwKLSAgICAgICAgICAiMC4wMDIzNDEsIDAuMDAyMzQzLCAwLjAwMjM0NywgMC4wMDIzNDgsIDAuMDAyMzQ5LCAwLjAwMjM0OSwgMC4wMDIzNDkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI2ODEsIDAuMDAyNjgxLCAwLjAwMjY4NSwgMC4wMDI2ODYsIDAuMDAyNjg2LCAwLjAwMjY4NywgMC4wMDI2ODciLCBcCi0gICAgICAgICAgIjAuMDAyNjc1LCAwLjAwMjY3NiwgMC4wMDI2NzksIDAuMDAyNjc5LCAwLjAwMjY4MSwgMC4wMDI2ODEsIDAuMDAyNjgxIiwgXAotICAgICAgICAgICIwLjAwMjY3MSwgMC4wMDI2NzEsIDAuMDAyNjc1LCAwLjAwMjY3NiwgMC4wMDI2NzYsIDAuMDAyNjc3LCAwLjAwMjY3NyIsIFwKLSAgICAgICAgICAiMC4wMDI2NjgsIDAuMDAyNjY5LCAwLjAwMjY3MiwgMC4wMDI2NzQsIDAuMDAyNjc0LCAwLjAwMjY3NCwgMC4wMDI2NzQiLCBcCi0gICAgICAgICAgIjAuMDAyNjY3LCAwLjAwMjY2OCwgMC4wMDI2NzEsIDAuMDAyNjcxLCAwLjAwMjY3MiwgMC4wMDI2NzMsIDAuMDAyNjczIiwgXAotICAgICAgICAgICIwLjAwMjY2NSwgMC4wMDI2NjYsIDAuMDAyNjY5LCAwLjAwMjY3LCAwLjAwMjY3MSwgMC4wMDI2NzEsIDAuMDAyNjcxIiwgXAotICAgICAgICAgICIwLjAwMjY2OSwgMC4wMDI2NjksIDAuMDAyNjczLCAwLjAwMjY3NSwgMC4wMDI2NzUsIDAuMDAyNjc1LCAwLjAwMjY3NSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkciOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzI5NSwgMC4wMDMyOTYsIDAuMDAzMywgMC4wMDMzMDEsIDAuMDAzMzAyLCAwLjAwMzMwMiwgMC4wMDMzMDIiLCBcCi0gICAgICAgICAgIjAuMDAzMjgxLCAwLjAwMzI4MiwgMC4wMDMyODYsIDAuMDAzMjg4LCAwLjAwMzI4OCwgMC4wMDMyODgsIDAuMDAzMjg4IiwgXAotICAgICAgICAgICIwLjAwMzI4LCAwLjAwMzI4MSwgMC4wMDMyODUsIDAuMDAzMjg2LCAwLjAwMzI4NiwgMC4wMDMyODcsIDAuMDAzMjg3IiwgXAotICAgICAgICAgICIwLjAwMzI4NSwgMC4wMDMyODYsIDAuMDAzMjksIDAuMDAzMjkxLCAwLjAwMzI5MiwgMC4wMDMyOTIsIDAuMDAzMjkyIiwgXAotICAgICAgICAgICIwLjAwMzI4NywgMC4wMDMyODgsIDAuMDAzMjkyLCAwLjAwMzI5MywgMC4wMDMyOTMsIDAuMDAzMjk0LCAwLjAwMzI5NCIsIFwKLSAgICAgICAgICAiMC4wMDMyOTksIDAuMDAzMywgMC4wMDMzMDMsIDAuMDAzMzA1LCAwLjAwMzMwNSwgMC4wMDMzMDYsIDAuMDAzMzA2IiwgXAotICAgICAgICAgICIwLjAwMzMwOSwgMC4wMDMzMSwgMC4wMDMzMTQsIDAuMDAzMzE1LCAwLjAwMzMxNiwgMC4wMDMzMTYsIDAuMDAzMzE2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzNDk0LCAwLjAwMzQ5NSwgMC4wMDM0OTgsIDAuMDAzNDk5LCAwLjAwMzQ5OSwgMC4wMDM0OTksIDAuMDAzNSIsIFwKLSAgICAgICAgICAiMC4wMDM0OCwgMC4wMDM0ODEsIDAuMDAzNDg0LCAwLjAwMzQ4NSwgMC4wMDM0ODUsIDAuMDAzNDg2LCAwLjAwMzQ4NiIsIFwKLSAgICAgICAgICAiMC4wMDM0NzcsIDAuMDAzNDc3LCAwLjAwMzQ4MSwgMC4wMDM0ODIsIDAuMDAzNDgyLCAwLjAwMzQ4MiwgMC4wMDM0ODIiLCBcCi0gICAgICAgICAgIjAuMDAzNDgxLCAwLjAwMzQ4MiwgMC4wMDM0ODUsIDAuMDAzNDg2LCAwLjAwMzQ4NiwgMC4wMDM0ODcsIDAuMDAzNDg3IiwgXAotICAgICAgICAgICIwLjAwMzQ4MiwgMC4wMDM0ODMsIDAuMDAzNDg3LCAwLjAwMzQ4NywgMC4wMDM0ODgsIDAuMDAzNDg4LCAwLjAwMzQ4OCIsIFwKLSAgICAgICAgICAiMC4wMDM0OTQsIDAuMDAzNDk0LCAwLjAwMzQ5NywgMC4wMDM0OTgsIDAuMDAzNDk5LCAwLjAwMzQ5OSwgMC4wMDM0OTkiLCBcCi0gICAgICAgICAgIjAuMDAzNTAyLCAwLjAwMzUwMywgMC4wMDM1MDYsIDAuMDAzNTA3LCAwLjAwMzUwNywgMC4wMDM1MDgsIDAuMDAzNTA4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUk4iOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzE4NywgMC4wMDMxODgsIDAuMDAzMTkyLCAwLjAwMzE5MywgMC4wMDMxOTQsIDAuMDAzMTk0LCAwLjAwMzE5NCIsIFwKLSAgICAgICAgICAiMC4wMDMxNzEsIDAuMDAzMTcyLCAwLjAwMzE3NiwgMC4wMDMxNzcsIDAuMDAzMTc4LCAwLjAwMzE3OCwgMC4wMDMxNzgiLCBcCi0gICAgICAgICAgIjAuMDAzMTY1LCAwLjAwMzE2NiwgMC4wMDMxNywgMC4wMDMxNzEsIDAuMDAzMTcyLCAwLjAwMzE3MiwgMC4wMDMxNzIiLCBcCi0gICAgICAgICAgIjAuMDAzMTY0LCAwLjAwMzE2NSwgMC4wMDMxNjksIDAuMDAzMTcsIDAuMDAzMTcsIDAuMDAzMTcsIDAuMDAzMTcxIiwgXAotICAgICAgICAgICIwLjAwMzE2MiwgMC4wMDMxNjMsIDAuMDAzMTY3LCAwLjAwMzE2OCwgMC4wMDMxNjksIDAuMDAzMTY5LCAwLjAwMzE2OSIsIFwKLSAgICAgICAgICAiMC4wMDMxNjQsIDAuMDAzMTY2LCAwLjAwMzE2OSwgMC4wMDMxNzEsIDAuMDAzMTcxLCAwLjAwMzE3MSwgMC4wMDMxNzEiLCBcCi0gICAgICAgICAgIjAuMDAzMTY3LCAwLjAwMzE2OCwgMC4wMDMxNzEsIDAuMDAzMTczLCAwLjAwMzE3MywgMC4wMDMxNzMsIDAuMDAzMTczIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0MzczLCAwLjAwNDM3NCwgMC4wMDQzNzcsIDAuMDA0Mzc3LCAwLjAwNDM3NywgMC4wMDQzNzgsIDAuMDA0Mzc4IiwgXAotICAgICAgICAgICIwLjAwNDM2LCAwLjAwNDM2MSwgMC4wMDQzNjQsIDAuMDA0MzY1LCAwLjAwNDM2NSwgMC4wMDQzNjUsIDAuMDA0MzY1IiwgXAotICAgICAgICAgICIwLjAwNDM1NSwgMC4wMDQzNTYsIDAuMDA0MzU5LCAwLjAwNDM2LCAwLjAwNDM2LCAwLjAwNDM2LCAwLjAwNDM2IiwgXAotICAgICAgICAgICIwLjAwNDM1NSwgMC4wMDQzNTYsIDAuMDA0MzU5LCAwLjAwNDM2LCAwLjAwNDM2LCAwLjAwNDM2MSwgMC4wMDQzNjEiLCBcCi0gICAgICAgICAgIjAuMDA0MzU2LCAwLjAwNDM1NywgMC4wMDQzNiwgMC4wMDQzNjEsIDAuMDA0MzYxLCAwLjAwNDM2MSwgMC4wMDQzNjIiLCBcCi0gICAgICAgICAgIjAuMDA0MzcsIDAuMDA0MzcxLCAwLjAwNDM3NCwgMC4wMDQzNzUsIDAuMDA0Mzc1LCAwLjAwNDM3NSwgMC4wMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMDA0MzcxLCAwLjAwNDM3MiwgMC4wMDQzNzUsIDAuMDA0Mzc2LCAwLjAwNDM3NiwgMC4wMDQzNzcsIDAuMDA0Mzc3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiU04iOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjc3MSwgMC4wMDI3NzIsIDAuMDAyNzc0LCAwLjAwMjc3NSwgMC4wMDI3NzUsIDAuMDAyNzc2LCAwLjAwMjc3NiIsIFwKLSAgICAgICAgICAiMC4wMDI3NiwgMC4wMDI3NjEsIDAuMDAyNzYzLCAwLjAwMjc2NSwgMC4wMDI3NjQsIDAuMDAyNzY1LCAwLjAwMjc2NSIsIFwKLSAgICAgICAgICAiMC4wMDI3NSwgMC4wMDI3NTEsIDAuMDAyNzU1LCAwLjAwMjc1NiwgMC4wMDI3NTYsIDAuMDAyNzU2LCAwLjAwMjc1NyIsIFwKLSAgICAgICAgICAiMC4wMDI3NDMsIDAuMDAyNzQ0LCAwLjAwMjc0OCwgMC4wMDI3NSwgMC4wMDI3NSwgMC4wMDI3NTEsIDAuMDAyNzUxIiwgXAotICAgICAgICAgICIwLjAwMjc0MiwgMC4wMDI3NDMsIDAuMDAyNzQ2LCAwLjAwMjc0NywgMC4wMDI3NDgsIDAuMDAyNzQ5LCAwLjAwMjc0OSIsIFwKLSAgICAgICAgICAiMC4wMDI3NDQsIDAuMDAyNzQ1LCAwLjAwMjc1LCAwLjAwMjc1MiwgMC4wMDI3NTMsIDAuMDAyNzU0LCAwLjAwMjc1NCIsIFwKLSAgICAgICAgICAiMC4wMDI3NSwgMC4wMDI3NTIsIDAuMDAyNzU3LCAwLjAwMjc1OCwgMC4wMDI3NTksIDAuMDAyNzU5LCAwLjAwMjc1OSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTUxOSwgMC4wMDE1MTksIDAuMDAxNTIxLCAwLjAwMTUyMiwgMC4wMDE1MjMsIDAuMDAxNTIyLCAwLjAwMTUyMiIsIFwKLSAgICAgICAgICAiMC4wMDE1MDYsIDAuMDAxNTA3LCAwLjAwMTUwOSwgMC4wMDE1MSwgMC4wMDE1MSwgMC4wMDE1MSwgMC4wMDE1MSIsIFwKLSAgICAgICAgICAiMC4wMDE0OTksIDAuMDAxNSwgMC4wMDE1MDIsIDAuMDAxNTAzLCAwLjAwMTUwMywgMC4wMDE1MDMsIDAuMDAxNTA0IiwgXAotICAgICAgICAgICIwLjAwMTQ5NywgMC4wMDE0OTgsIDAuMDAxNSwgMC4wMDE1MDEsIDAuMDAxNTAxLCAwLjAwMTUwMiwgMC4wMDE1MDIiLCBcCi0gICAgICAgICAgIjAuMDAxNDk1LCAwLjAwMTQ5NywgMC4wMDE1LCAwLjAwMTUwMSwgMC4wMDE1MDEsIDAuMDAxNTAxLCAwLjAwMTUwMSIsIFwKLSAgICAgICAgICAiMC4wMDE1MDYsIDAuMDAxNTA2LCAwLjAwMTUwOSwgMC4wMDE1MSwgMC4wMDE1MTEsIDAuMDAxNTExLCAwLjAwMTUxMSIsIFwKLSAgICAgICAgICAiMC4wMDE1MDEsIDAuMDAxNTAyLCAwLjAwMTUwNSwgMC4wMDE1MDYsIDAuMDAxNTA3LCAwLjAwMTUwNywgMC4wMDE1MDciKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFFOKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMTUzMTY0OwotICAgIGZ1bmN0aW9uIDogIk41IjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJEIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xODEwODcsIDAuMTk1Mjg2LCAwLjMyMjQ1NiwgMC41MzQzMDQsIDAuNzQ2MTY0LCAxLjI0MDM2LCAxLjUyMjcyIiwgXAotICAgICAgICAgICIwLjE4OTU2OCwgMC4yMDM3NjgsIDAuMzMwOTMsIDAuNTQyNzg2LCAwLjc1NDY4NCwgMS4yNDg4LCAxLjUzMTI4IiwgXAotICAgICAgICAgICIwLjE5OTE1NiwgMC4yMTMzNTYsIDAuMzQwNTIsIDAuNTUyMzY4LCAwLjc2NDIwMywgMS4yNTg0MywgMS41NDA3OSIsIFwKLSAgICAgICAgICAiMC4yMDgxNiwgMC4yMjIzNTksIDAuMzQ5NTI4LCAwLjU2MTM3NiwgMC43NzMxOTgsIDEuMjY3NDMsIDEuNTQ5OCIsIFwKLSAgICAgICAgICAiMC4yMTY1MTYsIDAuMjMwNzE1LCAwLjM1Nzg4MSwgMC41Njk3MzksIDAuNzgxNjQ3LCAxLjI3NTc0LCAxLjU1ODI0IiwgXAotICAgICAgICAgICIwLjIyODE5NCwgMC4yNDIzOSwgMC4zNjk1NTYsIDAuNTgxNDEzLCAwLjc5MzMyNywgMS4yODc0OCwgMS41Njk3MyIsIFwKLSAgICAgICAgICAiMC4yMzcxNzQsIDAuMjUxMzc1LCAwLjM3ODU0MiwgMC41OTAzODgsIDAuODAyMjA5LCAxLjI5NjUzLCAxLjU3ODk0Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE1ODgyMSwgMC4xODY4OTIsIDAuNDQ1MDI0LCAwLjg3OTgzNiwgMS4zMTUzLCAyLjMzMTU1LCAyLjkxMjIyIiwgXAotICAgICAgICAgICIwLjE1ODgxMSwgMC4xODY3NzQsIDAuNDQ1MDEyLCAwLjg3OTg0MiwgMS4zMTU0LCAyLjMzMTQ4LCAyLjkxMjM0IiwgXAotICAgICAgICAgICIwLjE1ODgwNywgMC4xODY4NjMsIDAuNDQ1MDA5LCAwLjg3OTgxNiwgMS4zMTUyNCwgMi4zMzE1NCwgMi45MTIyIiwgXAotICAgICAgICAgICIwLjE1ODgyMywgMC4xODY4ODksIDAuNDQ1MDE4LCAwLjg3OTgyMiwgMS4zMTUyMiwgMi4zMzE1MywgMi45MTIyIiwgXAotICAgICAgICAgICIwLjE1ODgxNywgMC4xODY4NywgMC40NDUwMTMsIDAuODc5ODQxLCAxLjMxMjY1LCAyLjMzMTQ2LCAyLjkxMjMyIiwgXAotICAgICAgICAgICIwLjE1ODg1MiwgMC4xODY5MTgsIDAuNDQ1MDE0LCAwLjg3OTgzNiwgMS4zMTI2NSwgMi4zMzE1MSwgMi45MDgyMyIsIFwKLSAgICAgICAgICAiMC4xNTg4NjIsIDAuMTg2OTI3LCAwLjQ0NTAyNCwgMC44Nzk3NjUsIDEuMzE1MDgsIDIuMzMxNTksIDIuOTEyMzUiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTU0MzkxLCAwLjE2ODIzNCwgMC4yOTI3NCwgMC41MDAyMzksIDAuNzA3NjE1LCAxLjE5MTY1LCAxLjQ2ODE2IiwgXAotICAgICAgICAgICIwLjE2MzA2MywgMC4xNzY5MDQsIDAuMzAxNDExLCAwLjUwODkxMiwgMC43MTYyODQsIDEuMjAwMzksIDEuNDc2ODMiLCBcCi0gICAgICAgICAgIjAuMTczNzE5LCAwLjE4NzU2NCwgMC4zMTIxMjUsIDAuNTE5NTYzLCAwLjcyNjk0NywgMS4yMTA5MiwgMS40ODc0OSIsIFwKLSAgICAgICAgICAiMC4xODM5MSwgMC4xOTc3NTQsIDAuMzIyMjUyLCAwLjUyOTc3NSwgMC43MzcxMzIsIDEuMjIxMjQsIDEuNDk3NjkiLCBcCi0gICAgICAgICAgIjAuMTkzNDM5LCAwLjIwNzI4NywgMC4zMzE4NDMsIDAuNTM5Mjc5LCAwLjc0NjQ2NywgMS4yMzA2NiwgMS41MDcyMyIsIFwKLSAgICAgICAgICAiMC4yMDY5MDIsIDAuMjIwNzUxLCAwLjM0NTMxMiwgMC41NTI2OTksIDAuNzYwMTI0LCAxLjI0NDE3LCAxLjUyMDgyIiwgXAotICAgICAgICAgICIwLjIxNzU3MSwgMC4yMzE0MTQsIDAuMzU1OTI0LCAwLjU2MzM4MiwgMC43NzA4MiwgMS4yNTQ4OSwgMS41MzE0OSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNDgyNzcsIDAuMTc1MDc1LCAwLjQyNDc0MSwgMC44NDE2NTgsIDEuMjU4MjEsIDIuMjMwOTgsIDIuNzg2NDgiLCBcCi0gICAgICAgICAgIjAuMTQ4MjQ1LCAwLjE3NTExLCAwLjQyNDA0OSwgMC44Mzk0NzQsIDEuMjU4MTMsIDIuMjMxMzUsIDIuNzg2MzkiLCBcCi0gICAgICAgICAgIjAuMTQ3ODA3LCAwLjE3NTc2OCwgMC40MjM1OTIsIDAuODQxNjE3LCAxLjI1ODE3LCAyLjIzMDYsIDIuNzg2NDQiLCBcCi0gICAgICAgICAgIjAuMTQ4MTkyLCAwLjE3NTc2NCwgMC40MjQ2NDIsIDAuODM5NDk2LCAxLjI1ODEsIDIuMjMxMzMsIDIuNzg2NDMiLCBcCi0gICAgICAgICAgIjAuMTQ3Nzc2LCAwLjE3NTgxLCAwLjQyMzY0NSwgMC44NDE2MDksIDEuMjU2MDUsIDIuMjMwNzIsIDIuNzg2NjYiLCBcCi0gICAgICAgICAgIjAuMTQ4Mzg4LCAwLjE3NTQyMywgMC40MjM2MjMsIDAuODQwODY2LCAxLjI1ODA5LCAyLjIzMDk4LCAyLjc4NzI2IiwgXAotICAgICAgICAgICIwLjE0ODI3MywgMC4xNzU1NTgsIDAuNDIzOTc4LCAwLjgzOTUyMSwgMS4yNTgzMSwgMi4yMjU2NCwgMi43ODEwMyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJHIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5vbl91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcmlzaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIyMTc2MSwgMC4yMzU5NywgMC4zNjMxMzEsIDAuNTc0OTksIDAuNzg2ODk3LCAxLjI4MDk2LCAxLjU2MzQ1IiwgXAotICAgICAgICAgICIwLjIzMDY2NSwgMC4yNDQ4NSwgMC4zNzIwMiwgMC41ODM4NzksIDAuNzk1Nzg1LCAxLjI4OTg2LCAxLjU3MjM1IiwgXAotICAgICAgICAgICIwLjI0MjUyOSwgMC4yNTY3MTYsIDAuMzgzODg2LCAwLjU5NTc0NSwgMC44MDc2NDYsIDEuMzAxNzIsIDEuNTg0MjEiLCBcCi0gICAgICAgICAgIjAuMjU0MTIxLCAwLjI2ODMxOSwgMC4zOTU0ODgsIDAuNjA3MzQ2LCAwLjgxOTI0NSwgMS4zMTMzMywgMS41OTU4MiIsIFwKLSAgICAgICAgICAiMC4yNjUwNzMsIDAuMjc5MjgzLCAwLjQwNjQ0NCwgMC42MTgyODgsIDAuODMwMTY3LCAxLjMyNDM1LCAxLjYwNjY5IiwgXAotICAgICAgICAgICIwLjI4MDU2NCwgMC4yOTQ3NzEsIDAuNDIxOTMzLCAwLjYzMzc5LCAwLjg0NTY4NSwgMS4zMzk4MSwgMS42MjIxNyIsIFwKLSAgICAgICAgICAiMC4yOTI3MjEsIDAuMzA2OTI0LCAwLjQzNDA5MywgMC42NDU5NTMsIDAuODU3ODYzLCAxLjM1MTkyLCAxLjYzNDQxIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE1OTA0NSwgMC4xODcwMTksIDAuNDQ1MDU0LCAwLjg3OTg2OCwgMS4zMTI2NiwgMi4zMzE0NywgMi45MTIzNiIsIFwKLSAgICAgICAgICAiMC4xNTkwNDUsIDAuMTg3MDYxLCAwLjQ0NTA0NCwgMC44Nzk4NTYsIDEuMzEyNjUsIDIuMzMxNDYsIDIuOTEyMyIsIFwKLSAgICAgICAgICAiMC4xNTkwMzMsIDAuMTg3MDUyLCAwLjQ0NTA0MiwgMC44Nzk4NTUsIDEuMzEyNjUsIDIuMzMxNDMsIDIuOTEyMjkiLCBcCi0gICAgICAgICAgIjAuMTU5MDMsIDAuMTg3MDU0LCAwLjQ0NTA0MSwgMC44Nzk4NTMsIDEuMzEyNjUsIDIuMzMxNDMsIDIuOTEyMjkiLCBcCi0gICAgICAgICAgIjAuMTU5MDQxLCAwLjE4NzA3NiwgMC40NDUwNjMsIDAuODc5ODM2LCAxLjMxNTM0LCAyLjMzMTU2LCAyLjkxMjIxIiwgXAotICAgICAgICAgICIwLjE1OTAzOCwgMC4xODY5ODEsIDAuNDQ1MDQ0LCAwLjg3OTg0NiwgMS4zMTU0LCAyLjMzMTQ5LCAyLjkwODIyIiwgXAotICAgICAgICAgICIwLjE1OTAzLCAwLjE4NzAxOSwgMC40NDUwNTEsIDAuODc5ODU5LCAxLjMxMjY1LCAyLjMzMTQxLCAyLjkxMjI4Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIwNzk0LCAwLjIyMTc4MiwgMC4zNDYzMzcsIDAuNTUzNzg3LCAwLjc2MTE2MywgMS4yNDUxNiwgMS41MjE3MiIsIFwKLSAgICAgICAgICAiMC4yMTY4MDcsIDAuMjMwNjQ5LCAwLjM1NTIxMSwgMC41NjI2NDYsIDAuNzcwMDM5LCAxLjI1NDAyLCAxLjUzMDU5IiwgXAotICAgICAgICAgICIwLjIyODc2NSwgMC4yNDI2MDYsIDAuMzY3MTEsIDAuNTc0NjE2LCAwLjc4MTk4NSwgMS4yNjU5NSwgMS41NDI1NSIsIFwKLSAgICAgICAgICAiMC4yNDA0MDEsIDAuMjU0MjQzLCAwLjM3ODc0MywgMC41ODYyNTMsIDAuNzkzNjIyLCAxLjI3NzU0LCAxLjU1NDE5IiwgXAotICAgICAgICAgICIwLjI1MTA4OCwgMC4yNjQ5MjksIDAuMzg5NDYsIDAuNTk2ODY0LCAwLjgwNDI0OSwgMS4yODgyNywgMS41NjQ4OCIsIFwKLSAgICAgICAgICAiMC4yNjYxNjUsIDAuMjgwMDA2LCAwLjQwNDUxNCwgMC42MTIwMjIsIDAuODE5MzgzLCAxLjMwMzM3LCAxLjU3OTk2IiwgXAotICAgICAgICAgICIwLjI3NzU1MiwgMC4yOTEzOTYsIDAuNDE1OTYxLCAwLjYyMzM2MSwgMC44MzA3NTYsIDEuMzE0NzgsIDEuNTkxNDMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTQ4Mjc4LCAwLjE3NTU2LCAwLjQyMzY0NSwgMC44NDE2NjEsIDEuMjU4MTksIDIuMjMwNzcsIDIuNzg2NTYiLCBcCi0gICAgICAgICAgIjAuMTQ4MjcyLCAwLjE3NTU2MiwgMC40MjM1OTYsIDAuODQxNjAzLCAxLjI1ODIzLCAyLjIzMDcxLCAyLjc4NjU5IiwgXAotICAgICAgICAgICIwLjE0ODI3NSwgMC4xNzU1NTgsIDAuNDI0NzA3LCAwLjgzOTQ2MywgMS4yNTgxNywgMi4yMzA1NywgMi43ODY1NyIsIFwKLSAgICAgICAgICAiMC4xNDgyNzUsIDAuMTc1NTU4LCAwLjQyNDY4MSwgMC44Mzk0NjEsIDEuMjU4MTYsIDIuMjMwMywgMi43ODY1NiIsIFwKLSAgICAgICAgICAiMC4xNDgyNDQsIDAuMTc1NzczLCAwLjQyMzU3MywgMC44NDAxMzIsIDEuMjU4MDIsIDIuMjMwNzEsIDIuNzg2NTQiLCBcCi0gICAgICAgICAgIjAuMTQ4Mjc0LCAwLjE3NTc4OCwgMC40MjQwNDEsIDAuODM5NDQsIDEuMjU4MTQsIDIuMjI3NDgsIDIuNzg2NjIiLCBcCi0gICAgICAgICAgIjAuMTQ4Mjg0LCAwLjE3NTU2LCAwLjQyMzU3OCwgMC44NDAxMjcsIDEuMjU4MDUsIDIuMjMwNzksIDIuNzg3MDciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUk4iOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJpc2luZ19lZGdlOwotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMTA5NjMsIDAuMjI0ODA0LCAwLjM0OTM2NCwgMC41NTY4LCAwLjc2NDE5MywgMS4yNDgxNywgMS41MjQ3NSIsIFwKLSAgICAgICAgICAiMC4yMTk3MjcsIDAuMjMzNTY5LCAwLjM1ODEwNiwgMC41NjU1NzUsIDAuNzcyOTUxLCAxLjI1Njk0LCAxLjUzMzUxIiwgXAotICAgICAgICAgICIwLjIzMDU1MywgMC4yNDQzOTYsIDAuMzY4OTMsIDAuNTc2Mzc2LCAwLjc4Mzc2OSwgMS4yNjc3MiwgMS41NDQzNCIsIFwKLSAgICAgICAgICAiMC4yNDEsIDAuMjU0ODQzLCAwLjM3OTQwMSwgMC41ODY4MzIsIDAuNzk0MjEzLCAxLjI3ODIsIDEuNTU0NzkiLCBcCi0gICAgICAgICAgIjAuMjUwNTksIDAuMjY0NDMyLCAwLjM4ODk4OSwgMC41OTY0MiwgMC44MDM3OTUsIDEuMjg3NzksIDEuNTY0MzkiLCBcCi0gICAgICAgICAgIjAuMjY0NTk1LCAwLjI3ODQzNywgMC40MDI5OTUsIDAuNjEwNDI4LCAwLjgxNzgzMiwgMS4zMDE4LCAxLjU3ODM5IiwgXAotICAgICAgICAgICIwLjI3NTQwMywgMC4yODkyNTUsIDAuNDEzNzQ1LCAwLjYyMTIwNCwgMC44Mjg2MTMsIDEuMzEyNiwgMS41ODkyNSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNDgyNTQsIDAuMTc1NTQzLCAwLjQyMzYxMywgMC44NDE1ODYsIDEuMjU4MTksIDIuMjMwNywgMi43ODY1NiIsIFwKLSAgICAgICAgICAiMC4xNDgyNzIsIDAuMTc1NTYxLCAwLjQyMzcxOCwgMC44NDE2NTYsIDEuMjU4MTksIDIuMjMwNzYsIDIuNzg2NTUiLCBcCi0gICAgICAgICAgIjAuMTQ4MTQxLCAwLjE3NTgwNCwgMC40MjM5MTMsIDAuODQwMTgyLCAxLjI1ODE0LCAyLjIyNzMyLCAyLjc4NjU4IiwgXAotICAgICAgICAgICIwLjE0ODI4NiwgMC4xNzU1NjUsIDAuNDIzNjE0LCAwLjg0MTU2NSwgMS4yNTYzMywgMi4yMzA2NiwgMi43ODY2NSIsIFwKLSAgICAgICAgICAiMC4xNDgyODQsIDAuMTc1NTY2LCAwLjQyMzYyNSwgMC44NDE1NTUsIDEuMjU2MjEsIDIuMjMwNjMsIDIuNzg2NjIiLCBcCi0gICAgICAgICAgIjAuMTQ4Mjc3LCAwLjE3NTU2NiwgMC40MjM2MTUsIDAuODQxNTc4LCAxLjI1ODI0LCAyLjIzMDY5LCAyLjc4NjYxIiwgXAotICAgICAgICAgICIwLjE0ODM2NiwgMC4xNzU4NDgsIDAuNDI0NjYsIDAuODQxMzY3LCAxLjI1ODA3LCAyLjIyNTUsIDIuNzg2ODgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUk4iOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGZhbGxpbmdfZWRnZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjIxMzk2LCAwLjIzNTU5MywgMC4zNjI3NjIsIDAuNTc0NjM1LCAwLjc4NjM0MSwgMS4yODA1NCwgMS41NjI1NCIsIFwKLSAgICAgICAgICAiMC4yMzEwMDYsIDAuMjQ1MjAyLCAwLjM3MjM3MSwgMC41ODQyNDUsIDAuNzk1OTQ5LCAxLjI5MDE0LCAxLjU3MjE3IiwgXAotICAgICAgICAgICIwLjI0MzI4MiwgMC4yNTc0ODQsIDAuMzg0NjUyLCAwLjU5NjUxNiwgMC44MDgzMjQsIDEuMzAyNDEsIDEuNTg0OSIsIFwKLSAgICAgICAgICAiMC4yNTQzNDQsIDAuMjY4NTUxLCAwLjM5NTcxMiwgMC42MDc1NzksIDAuODE5MzQzLCAxLjMxMzQ3LCAxLjU5NTg1IiwgXAotICAgICAgICAgICIwLjI2NDI0NywgMC4yNzg0NDgsIDAuNDA1NjI1LCAwLjYxNzQ0NywgMC44MjkyNzYsIDEuMzIzNDksIDEuNjA1NzYiLCBcCi0gICAgICAgICAgIjAuMjc4ODYsIDAuMjkzMDYsIDAuNDIwMjM3LCAwLjYzMjA1NiwgMC44NDM4ODYsIDEuMzM4MSwgMS42MjAzOCIsIFwKLSAgICAgICAgICAiMC4yOTA4NjEsIDAuMzA1MDY0LCAwLjQzMjIzNCwgMC42NDQwOTksIDAuODU1OTI2LCAxLjM0OTk5LCAxLjYzMjciKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTU4ODUsIDAuMTg2OTI1LCAwLjQ0NTAwNiwgMC44Nzk3MjEsIDEuMzE1MTYsIDIuMzMxMzgsIDIuOTA4NTQiLCBcCi0gICAgICAgICAgIjAuMTU4ODM2LCAwLjE4NjkyNSwgMC40NDQ5OSwgMC44Nzk3MjQsIDEuMzE1MDIsIDIuMzI4NSwgMi45MTE5NyIsIFwKLSAgICAgICAgICAiMC4xNTg4NCwgMC4xODY5MDUsIDAuNDQ1LCAwLjg3OTY5MiwgMS4zMTUxMSwgMi4zMzEyMiwgMi45MDg0OSIsIFwKLSAgICAgICAgICAiMC4xNTg4NTEsIDAuMTg2OTE5LCAwLjQ0NDk4NiwgMC44Nzk2OCwgMS4zMTQ5OCwgMi4zMjg1MiwgMi45MTE2NCIsIFwKLSAgICAgICAgICAiMC4xNTg4NTIsIDAuMTg2OTE1LCAwLjQ0NTAxMSwgMC44Nzk2NzMsIDEuMzE1MDgsIDIuMzMxMjgsIDIuOTA4NDciLCBcCi0gICAgICAgICAgIjAuMTU4ODUyLCAwLjE4NjkyMiwgMC40NDUwMDQsIDAuODc5Njg5LCAxLjMxNTA2LCAyLjMzMTI5LCAyLjkwODQ5IiwgXAotICAgICAgICAgICIwLjE1ODkzLCAwLjE4NjkyNywgMC40NDQ5ODksIDAuODc5NjgyLCAxLjMxNTE3LCAyLjMyODc2LCAyLjkwODU1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiBjbGVhcjsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTM5OTAyLCAwLjE1NDA5NywgMC4yODEyMzgsIDAuNDkzMDg2LCAwLjcwNDk2MywgMS4xOTk0NiwgMS40ODE0OCIsIFwKLSAgICAgICAgICAiMC4xNDg1OTgsIDAuMTYyNzk5LCAwLjI4OTkzNSwgMC41MDE3NzcsIDAuNzEzOTY5LCAxLjIwODQ1LCAxLjQ5MDUiLCBcCi0gICAgICAgICAgIjAuMTU5MjEzLCAwLjE3MzQwNiwgMC4zMDA1NTUsIDAuNTEyNDA1LCAwLjcyNDIwNywgMS4yMTgxMiwgMS41MDE4MyIsIFwKLSAgICAgICAgICAiMC4xNjk3MjcsIDAuMTgzOTIsIDAuMzExMDc0LCAwLjUyMjkyNiwgMC43MzQ4MDUsIDEuMjI4NTUsIDEuNTEwNzkiLCBcCi0gICAgICAgICAgIjAuMTc5Nzc3LCAwLjE5Mzk3NCwgMC4zMjExMzMsIDAuNTMzMDI3LCAwLjc0NTI0MywgMS4yMzk2LCAxLjUyMjEzIiwgXAotICAgICAgICAgICIwLjE5NTA3MywgMC4yMDkyNzIsIDAuMzM2NDI5LCAwLjU0ODI4MiwgMC43NjAxNTQsIDEuMjU0NiwgMS41MzcyMyIsIFwKLSAgICAgICAgICAiMC4yMDcyMzksIDAuMjIxNDUzLCAwLjM0ODU5NiwgMC41NjA0NzksIDAuNzcyNTI1LCAxLjI2NzA1LCAxLjU0OTMxIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE1ODc1NiwgMC4xODY4MjgsIDAuNDQ1MDA1LCAwLjg3OTg1NCwgMS4zMTU1NCwgMi4zMjc2NSwgMi45MDk1NyIsIFwKLSAgICAgICAgICAiMC4xNTg3NDMsIDAuMTg2ODMxLCAwLjQ0NDk5LCAwLjg3OTgxOSwgMS4zMTQ4MywgMi4zMjc2MiwgMi45MTE0MiIsIFwKLSAgICAgICAgICAiMC4xNTg3MzksIDAuMTg2ODIzLCAwLjQ0NDk5NSwgMC44Nzk4MzYsIDEuMzE1NCwgMi4zMjk3OCwgMi45MjA1NCIsIFwKLSAgICAgICAgICAiMC4xNTg3ODUsIDAuMTg2ODc3LCAwLjQ0NTAwNywgMC44Nzk4NDIsIDEuMzE1NTMsIDIuMzI3NzksIDIuOTAzMiIsIFwKLSAgICAgICAgICAiMC4xNTg5MzYsIDAuMTg2OTQxLCAwLjQ0NTAzNSwgMC44Nzk4OTgsIDEuMzEzLCAyLjMyNzQ5LCAyLjkwOTciLCBcCi0gICAgICAgICAgIjAuMTU5NDksIDAuMTg3NDIzLCAwLjQ0NTEyNywgMC44Nzk4NDYsIDEuMzE1NSwgMi4zMzE0MSwgMi45MDkxNCIsIFwKLSAgICAgICAgICAiMC4xNjAwOTUsIDAuMTg3OTQ4LCAwLjQ0NDk3NiwgMC44Nzk4NjQsIDEuMzEzMDEsIDIuMzI3NTksIDIuOTA3NDciKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTEyOTQsIDAuMTI2ODQ4LCAwLjI1MTM0NSwgMC40NTg3NTcsIDAuNjY2MTY3LCAxLjE1MDA2LCAxLjQyNjc4IiwgXAotICAgICAgICAgICIwLjEyMjg2MywgMC4xMzY3NzIsIDAuMjYxMjY4LCAwLjQ2ODY4MywgMC42NzYwODgsIDEuMTYwMDEsIDEuNDM2NjUiLCBcCi0gICAgICAgICAgIjAuMTM1MTk3LCAwLjE0OTEwOCwgMC4yNzM2MDksIDAuNDgxMDQ1LCAwLjY4ODQzNSwgMS4xNzIzOCwgMS40NDg5NyIsIFwKLSAgICAgICAgICAiMC4xNDY5NTQsIDAuMTYwODY0LCAwLjI4NTM3NSwgMC40OTI3OTMsIDAuNzAwMTk4LCAxLjE4NDExLCAxLjQ2MDY1IiwgXAotICAgICAgICAgICIwLjE1NzUxOCwgMC4xNzE0MjcsIDAuMjk1OTQxLCAwLjUwMzM0NSwgMC43MTA3NiwgMS4xOTQ2OCwgMS40NzEyIiwgXAotICAgICAgICAgICIwLjE3MjEsIDAuMTg2LCAwLjMxMDQ5OCwgMC41MTc5MTMsIDAuNzI1MzMzLCAxLjIwOTI1LCAxLjQ4NTkzIiwgXAotICAgICAgICAgICIwLjE4MzIyNCwgMC4xOTcxMjMsIDAuMzIxNjAxLCAwLjUyOTAwNywgMC43MzY0MjIsIDEuMjIwMzYsIDEuNDk3MDMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTQ4NDMyLCAwLjE3NTkzOSwgMC40MjQ1MTIsIDAuODQwMjk4LCAxLjI1ODI1LCAyLjIyOTc1LCAyLjc4NjAzIiwgXAotICAgICAgICAgICIwLjE0ODQzMywgMC4xNzU2NjksIDAuNDI0NTM1LCAwLjg0MTUwOSwgMS4yNTgxNSwgMi4yMjg1NiwgMi43ODYwNCIsIFwKLSAgICAgICAgICAiMC4xNDg0MTYsIDAuMTc1Njc0LCAwLjQyNDUyMSwgMC44NDEyNjksIDEuMjU4NDMsIDIuMjMwOTEsIDIuNzg1OTIiLCBcCi0gICAgICAgICAgIjAuMTQ4NTIzLCAwLjE3NTc1MiwgMC40MjQ4MzMsIDAuODQwOTYxLCAxLjI1ODQyLCAyLjIzMDA2LCAyLjc4MTg5IiwgXAotICAgICAgICAgICIwLjE0ODc3MiwgMC4xNzU5MDksIDAuNDI0MzEzLCAwLjg0MDkzMSwgMS4yNTc5MSwgMi4yMjkwMywgMi43ODQ5MyIsIFwKLSAgICAgICAgICAiMC4xNDk0MSwgMC4xNzY2ODYsIDAuNDI0NTc0LCAwLjg0MTQ4LCAxLjI1ODMxLCAyLjIyOTkyLCAyLjc4NTk1IiwgXAotICAgICAgICAgICIwLjE1MDAxOSwgMC4xNzcwMDEsIDAuNDI0ODUsIDAuODQwODk2LCAxLjI1NzcsIDIuMjI5NjIsIDIuNzg1OTciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJEIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI2ODEsIDAuMDAyNjgxLCAwLjAwMjY4NSwgMC4wMDI2ODYsIDAuMDAyNjg2LCAwLjAwMjY4NywgMC4wMDI2ODciLCBcCi0gICAgICAgICAgIjAuMDAyNjc1LCAwLjAwMjY3NiwgMC4wMDI2NzksIDAuMDAyNjc5LCAwLjAwMjY4MSwgMC4wMDI2ODEsIDAuMDAyNjgxIiwgXAotICAgICAgICAgICIwLjAwMjY3MSwgMC4wMDI2NzEsIDAuMDAyNjc1LCAwLjAwMjY3NiwgMC4wMDI2NzYsIDAuMDAyNjc3LCAwLjAwMjY3NyIsIFwKLSAgICAgICAgICAiMC4wMDI2NjgsIDAuMDAyNjY5LCAwLjAwMjY3MiwgMC4wMDI2NzQsIDAuMDAyNjc0LCAwLjAwMjY3NCwgMC4wMDI2NzQiLCBcCi0gICAgICAgICAgIjAuMDAyNjY3LCAwLjAwMjY2OCwgMC4wMDI2NzEsIDAuMDAyNjcxLCAwLjAwMjY3MiwgMC4wMDI2NzMsIDAuMDAyNjczIiwgXAotICAgICAgICAgICIwLjAwMjY2NSwgMC4wMDI2NjYsIDAuMDAyNjY5LCAwLjAwMjY3LCAwLjAwMjY3MSwgMC4wMDI2NzEsIDAuMDAyNjcxIiwgXAotICAgICAgICAgICIwLjAwMjY2OSwgMC4wMDI2NjksIDAuMDAyNjczLCAwLjAwMjY3NSwgMC4wMDI2NzUsIDAuMDAyNjc1LCAwLjAwMjY3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjM2MiwgMC4wMDIzNjMsIDAuMDAyMzY3LCAwLjAwMjM2NywgMC4wMDIzNjcsIDAuMDAyMzY5LCAwLjAwMjM2OSIsIFwKLSAgICAgICAgICAiMC4wMDIzNTEsIDAuMDAyMzUyLCAwLjAwMjM1NiwgMC4wMDIzNTcsIDAuMDAyMzU4LCAwLjAwMjM1NywgMC4wMDIzNTciLCBcCi0gICAgICAgICAgIjAuMDAyMzQ0LCAwLjAwMjM0NiwgMC4wMDIzNDksIDAuMDAyMzUxLCAwLjAwMjM1MSwgMC4wMDIzNSwgMC4wMDIzNTIiLCBcCi0gICAgICAgICAgIjAuMDAyMzQsIDAuMDAyMzQxLCAwLjAwMjM0NSwgMC4wMDIzNDYsIDAuMDAyMzQ3LCAwLjAwMjM0NywgMC4wMDIzNDgiLCBcCi0gICAgICAgICAgIjAuMDAyMzM5LCAwLjAwMjM0LCAwLjAwMjM0NCwgMC4wMDIzNDUsIDAuMDAyMzQ2LCAwLjAwMjM0NiwgMC4wMDIzNDYiLCBcCi0gICAgICAgICAgIjAuMDAyMzQsIDAuMDAyMzQxLCAwLjAwMjM0NSwgMC4wMDIzNDcsIDAuMDAyMzQ3LCAwLjAwMjM0NywgMC4wMDIzNDgiLCBcCi0gICAgICAgICAgIjAuMDAyMzQxLCAwLjAwMjM0MywgMC4wMDIzNDcsIDAuMDAyMzQ4LCAwLjAwMjM0OSwgMC4wMDIzNDksIDAuMDAyMzQ5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzNDk0LCAwLjAwMzQ5NSwgMC4wMDM0OTgsIDAuMDAzNDk5LCAwLjAwMzQ5OSwgMC4wMDM0OTksIDAuMDAzNSIsIFwKLSAgICAgICAgICAiMC4wMDM0OCwgMC4wMDM0ODEsIDAuMDAzNDg0LCAwLjAwMzQ4NSwgMC4wMDM0ODUsIDAuMDAzNDg2LCAwLjAwMzQ4NiIsIFwKLSAgICAgICAgICAiMC4wMDM0NzcsIDAuMDAzNDc3LCAwLjAwMzQ4MSwgMC4wMDM0ODIsIDAuMDAzNDgyLCAwLjAwMzQ4MiwgMC4wMDM0ODIiLCBcCi0gICAgICAgICAgIjAuMDAzNDgxLCAwLjAwMzQ4MiwgMC4wMDM0ODUsIDAuMDAzNDg2LCAwLjAwMzQ4NiwgMC4wMDM0ODcsIDAuMDAzNDg3IiwgXAotICAgICAgICAgICIwLjAwMzQ4MiwgMC4wMDM0ODMsIDAuMDAzNDg3LCAwLjAwMzQ4NywgMC4wMDM0ODgsIDAuMDAzNDg4LCAwLjAwMzQ4OCIsIFwKLSAgICAgICAgICAiMC4wMDM0OTQsIDAuMDAzNDk0LCAwLjAwMzQ5NywgMC4wMDM0OTgsIDAuMDAzNDk5LCAwLjAwMzQ5OSwgMC4wMDM0OTkiLCBcCi0gICAgICAgICAgIjAuMDAzNTAyLCAwLjAwMzUwMywgMC4wMDM1MDYsIDAuMDAzNTA3LCAwLjAwMzUwNywgMC4wMDM1MDgsIDAuMDAzNTA4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzMjk1LCAwLjAwMzI5NiwgMC4wMDMzLCAwLjAwMzMwMSwgMC4wMDMzMDIsIDAuMDAzMzAyLCAwLjAwMzMwMiIsIFwKLSAgICAgICAgICAiMC4wMDMyODEsIDAuMDAzMjgyLCAwLjAwMzI4NiwgMC4wMDMyODgsIDAuMDAzMjg4LCAwLjAwMzI4OCwgMC4wMDMyODgiLCBcCi0gICAgICAgICAgIjAuMDAzMjgsIDAuMDAzMjgxLCAwLjAwMzI4NSwgMC4wMDMyODYsIDAuMDAzMjg2LCAwLjAwMzI4NywgMC4wMDMyODciLCBcCi0gICAgICAgICAgIjAuMDAzMjg1LCAwLjAwMzI4NiwgMC4wMDMyOSwgMC4wMDMyOTEsIDAuMDAzMjkyLCAwLjAwMzI5MiwgMC4wMDMyOTIiLCBcCi0gICAgICAgICAgIjAuMDAzMjg3LCAwLjAwMzI4OCwgMC4wMDMyOTIsIDAuMDAzMjkzLCAwLjAwMzI5MywgMC4wMDMyOTQsIDAuMDAzMjk0IiwgXAotICAgICAgICAgICIwLjAwMzI5OSwgMC4wMDMzLCAwLjAwMzMwMywgMC4wMDMzMDUsIDAuMDAzMzA1LCAwLjAwMzMwNiwgMC4wMDMzMDYiLCBcCi0gICAgICAgICAgIjAuMDAzMzA5LCAwLjAwMzMxLCAwLjAwMzMxNCwgMC4wMDMzMTUsIDAuMDAzMzE2LCAwLjAwMzMxNiwgMC4wMDMzMTYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0MzczLCAwLjAwNDM3NCwgMC4wMDQzNzcsIDAuMDA0Mzc3LCAwLjAwNDM3NywgMC4wMDQzNzgsIDAuMDA0Mzc4IiwgXAotICAgICAgICAgICIwLjAwNDM2LCAwLjAwNDM2MSwgMC4wMDQzNjQsIDAuMDA0MzY1LCAwLjAwNDM2NSwgMC4wMDQzNjUsIDAuMDA0MzY1IiwgXAotICAgICAgICAgICIwLjAwNDM1NSwgMC4wMDQzNTYsIDAuMDA0MzU5LCAwLjAwNDM2LCAwLjAwNDM2LCAwLjAwNDM2LCAwLjAwNDM2IiwgXAotICAgICAgICAgICIwLjAwNDM1NSwgMC4wMDQzNTYsIDAuMDA0MzU5LCAwLjAwNDM2LCAwLjAwNDM2LCAwLjAwNDM2MSwgMC4wMDQzNjEiLCBcCi0gICAgICAgICAgIjAuMDA0MzU2LCAwLjAwNDM1NywgMC4wMDQzNiwgMC4wMDQzNjEsIDAuMDA0MzYxLCAwLjAwNDM2MSwgMC4wMDQzNjIiLCBcCi0gICAgICAgICAgIjAuMDA0MzcsIDAuMDA0MzcxLCAwLjAwNDM3NCwgMC4wMDQzNzUsIDAuMDA0Mzc1LCAwLjAwNDM3NSwgMC4wMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMDA0MzcxLCAwLjAwNDM3MiwgMC4wMDQzNzUsIDAuMDA0Mzc2LCAwLjAwNDM3NiwgMC4wMDQzNzcsIDAuMDA0Mzc3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzMTg3LCAwLjAwMzE4OCwgMC4wMDMxOTIsIDAuMDAzMTkzLCAwLjAwMzE5NCwgMC4wMDMxOTQsIDAuMDAzMTk0IiwgXAotICAgICAgICAgICIwLjAwMzE3MSwgMC4wMDMxNzIsIDAuMDAzMTc2LCAwLjAwMzE3NywgMC4wMDMxNzgsIDAuMDAzMTc4LCAwLjAwMzE3OCIsIFwKLSAgICAgICAgICAiMC4wMDMxNjUsIDAuMDAzMTY2LCAwLjAwMzE3LCAwLjAwMzE3MSwgMC4wMDMxNzIsIDAuMDAzMTcyLCAwLjAwMzE3MiIsIFwKLSAgICAgICAgICAiMC4wMDMxNjQsIDAuMDAzMTY1LCAwLjAwMzE2OSwgMC4wMDMxNywgMC4wMDMxNywgMC4wMDMxNywgMC4wMDMxNzEiLCBcCi0gICAgICAgICAgIjAuMDAzMTYyLCAwLjAwMzE2MywgMC4wMDMxNjcsIDAuMDAzMTY4LCAwLjAwMzE2OSwgMC4wMDMxNjksIDAuMDAzMTY5IiwgXAotICAgICAgICAgICIwLjAwMzE2NCwgMC4wMDMxNjYsIDAuMDAzMTY5LCAwLjAwMzE3MSwgMC4wMDMxNzEsIDAuMDAzMTcxLCAwLjAwMzE3MSIsIFwKLSAgICAgICAgICAiMC4wMDMxNjcsIDAuMDAzMTY4LCAwLjAwMzE3MSwgMC4wMDMxNzMsIDAuMDAzMTczLCAwLjAwMzE3MywgMC4wMDMxNzMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxNTE5LCAwLjAwMTUxOSwgMC4wMDE1MjEsIDAuMDAxNTIyLCAwLjAwMTUyMywgMC4wMDE1MjIsIDAuMDAxNTIyIiwgXAotICAgICAgICAgICIwLjAwMTUwNiwgMC4wMDE1MDcsIDAuMDAxNTA5LCAwLjAwMTUxLCAwLjAwMTUxLCAwLjAwMTUxLCAwLjAwMTUxIiwgXAotICAgICAgICAgICIwLjAwMTQ5OSwgMC4wMDE1LCAwLjAwMTUwMiwgMC4wMDE1MDMsIDAuMDAxNTAzLCAwLjAwMTUwMywgMC4wMDE1MDQiLCBcCi0gICAgICAgICAgIjAuMDAxNDk3LCAwLjAwMTQ5OCwgMC4wMDE1LCAwLjAwMTUwMSwgMC4wMDE1MDEsIDAuMDAxNTAyLCAwLjAwMTUwMiIsIFwKLSAgICAgICAgICAiMC4wMDE0OTUsIDAuMDAxNDk3LCAwLjAwMTUsIDAuMDAxNTAxLCAwLjAwMTUwMSwgMC4wMDE1MDEsIDAuMDAxNTAxIiwgXAotICAgICAgICAgICIwLjAwMTUwNiwgMC4wMDE1MDYsIDAuMDAxNTA5LCAwLjAwMTUxLCAwLjAwMTUxMSwgMC4wMDE1MTEsIDAuMDAxNTExIiwgXAotICAgICAgICAgICIwLjAwMTUwMSwgMC4wMDE1MDIsIDAuMDAxNTA1LCAwLjAwMTUwNiwgMC4wMDE1MDcsIDAuMDAxNTA3LCAwLjAwMTUwNyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjc3MSwgMC4wMDI3NzIsIDAuMDAyNzc0LCAwLjAwMjc3NSwgMC4wMDI3NzUsIDAuMDAyNzc2LCAwLjAwMjc3NiIsIFwKLSAgICAgICAgICAiMC4wMDI3NiwgMC4wMDI3NjEsIDAuMDAyNzYzLCAwLjAwMjc2NSwgMC4wMDI3NjQsIDAuMDAyNzY1LCAwLjAwMjc2NSIsIFwKLSAgICAgICAgICAiMC4wMDI3NSwgMC4wMDI3NTEsIDAuMDAyNzU1LCAwLjAwMjc1NiwgMC4wMDI3NTYsIDAuMDAyNzU2LCAwLjAwMjc1NyIsIFwKLSAgICAgICAgICAiMC4wMDI3NDMsIDAuMDAyNzQ0LCAwLjAwMjc0OCwgMC4wMDI3NSwgMC4wMDI3NSwgMC4wMDI3NTEsIDAuMDAyNzUxIiwgXAotICAgICAgICAgICIwLjAwMjc0MiwgMC4wMDI3NDMsIDAuMDAyNzQ2LCAwLjAwMjc0NywgMC4wMDI3NDgsIDAuMDAyNzQ5LCAwLjAwMjc0OSIsIFwKLSAgICAgICAgICAiMC4wMDI3NDQsIDAuMDAyNzQ1LCAwLjAwMjc1LCAwLjAwMjc1MiwgMC4wMDI3NTMsIDAuMDAyNzU0LCAwLjAwMjc1NCIsIFwKLSAgICAgICAgICAiMC4wMDI3NSwgMC4wMDI3NTIsIDAuMDAyNzU3LCAwLjAwMjc1OCwgMC4wMDI3NTksIDAuMDAyNzU5LCAwLjAwMjc1OSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUk4pICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDk5OTMyNDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA5OTA5MTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA5OTkzMjQ7Ci0gICAgY2xvY2sgOiB0cnVlOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDQ1MywgMC4wMDA0NTMsIDAuMDAwNDUyLCAwLjAwMDQ1MiwgMC4wMDA0NTIsIDAuMDAwNDUyLCAwLjAwMDQ1MiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDQ1NywgMC4wMDA0NTQsIDAuMDAwNDU0LCAwLjAwMDQ1NCwgMC4wMDA0NTQsIDAuMDAwNDU0LCAwLjAwMDQ1NCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJHIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9mYWxsaW5nOwotICAgICAgd2hlbiA6ICJEJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMV9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjA3NSwgLTAuMDcsIC0wLjA3LCAtMC4wODI1LCAtMC4wODg3NSwgLTAuMTAzNzUsIC0wLjExMzc1IiwgXAotICAgICAgICAgICItMC4wOCwgLTAuMDc1LCAtMC4wODEyNSwgLTAuMDg3NSwgLTAuMSwgLTAuMTE1LCAtMC4xMjUiLCBcCi0gICAgICAgICAgIi0wLjA5MjUsIC0wLjA4NzUsIC0wLjA4NzUsIC0wLjEsIC0wLjEwNjI1LCAtMC4xMjEyNSwgLTAuMTMxMjUiLCBcCi0gICAgICAgICAgIi0wLjEwNSwgLTAuMSwgLTAuMSwgLTAuMTA2MjUsIC0wLjExODc1LCAtMC4xMjc1LCAtMC4xNDM3NSIsIFwKLSAgICAgICAgICAiLTAuMTExMjUsIC0wLjEwNjI1LCAtMC4xMTI1LCAtMC4xMTg3NSwgLTAuMTI1LCAtMC4xNCwgLTAuMTUiLCBcCi0gICAgICAgICAgIi0wLjEyNzUsIC0wLjEyMjUsIC0wLjEyMjUsIC0wLjEyODc1LCAtMC4xMzUsIC0wLjE1LCAtMC4xNiIsIFwKLSAgICAgICAgICAiLTAuMTM2MjUsIC0wLjEzMTI1LCAtMC4xMzEyNSwgLTAuMTM3NSwgLTAuMTUsIC0wLjE1ODc1LCAtMC4xNjg3NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQmU04iOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4xOTM0NTUsIDAuMjAyOTEyLCAwLjIxMzEsIDAuMjIyNTQ1LCAwLjIzMTY1OSwgMC4yNDQ3MzEsIDAuMjU0NTYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX2ZhbGxpbmc7Ci0gICAgICB3aGVuIDogIkQmU04iOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8xX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg3NSwgMC4wODI1LCAwLjA4MjUsIDAuMDk1LCAwLjExMzc1LCAwLjE0MTI1LCAwLjE3IiwgXAotICAgICAgICAgICIwLjA5ODc1LCAwLjA4NzUsIDAuMDg3NSwgMC4xLCAwLjExODc1LCAwLjE1MjUsIDAuMTc1IiwgXAotICAgICAgICAgICIwLjEwNSwgMC4xLCAwLjEsIDAuMTEyNSwgMC4xMzEyNSwgMC4xNTg3NSwgMC4xODEyNSIsIFwKLSAgICAgICAgICAiMC4xMTc1LCAwLjEwNjI1LCAwLjExMjUsIDAuMTE4NzUsIDAuMTM3NSwgMC4xNjUsIDAuMTg3NSIsIFwKLSAgICAgICAgICAiMC4xMywgMC4xMTg3NSwgMC4xMTg3NSwgMC4xMzEyNSwgMC4xNDM3NSwgMC4xNzEyNSwgMC4xOTM3NSIsIFwKLSAgICAgICAgICAiMC4xNCwgMC4xMzUsIDAuMTM1LCAwLjE0MTI1LCAwLjE1Mzc1LCAwLjE4MTI1LCAwLjIwMzc1IiwgXAotICAgICAgICAgICIwLjE0ODc1LCAwLjE0Mzc1LCAwLjE0Mzc1LCAwLjE1LCAwLjE2MjUsIDAuMTksIDAuMjEyNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oU04pICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDU4NDk4OTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA1ODQ5ODk7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNTgzODc0OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDIyNiwgMC4wMDAyMjYsIDAuMDAwMjI2LCAwLjAwMDIyNiwgMC4wMDAyMjYsIDAuMDAwMjI2LCAwLjAwMDIyNiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDIzMSwgMC4wMDAyMjcsIDAuMDAwMjI3LCAwLjAwMDIyNywgMC4wMDAyMjcsIDAuMDAwMjI3LCAwLjAwMDIyNyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQiOwotICAgICAgc2RmX2NvbmQgOiAiRCA9PSAxJ2IwIjsKLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjEyMjgxNCwgMC4xMzI4NDQsIDAuMTQ1MTg5LCAwLjE1NjgxOSwgMC4xNjY4MjEsIDAuMTgwNTgxLCAwLjE5MDkxMyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJHIjsKLSAgICAgIHRpbWluZ190eXBlIDogcmVjb3ZlcnlfZmFsbGluZzsKLSAgICAgIHdoZW4gOiAiIUQmUk4iOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1JOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQocmVjb3ZlcnlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAsIC0wLjAwNSwgLTAuMDE3NSwgLTAuMDIzNzUsIC0wLjAzNjI1LCAtMC4wNDYyNSwgLTAuMDQ4NzUiLCBcCi0gICAgICAgICAgIjAuMDExMjUsIDAsIC0wLjAwNjI1LCAtMC4wMTg3NSwgLTAuMDI1LCAtMC4wMzUsIC0wLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjAyMzc1LCAwLjAxMjUsIDAsIC0wLjAwNjI1LCAtMC4wMTg3NSwgLTAuMDI4NzUsIC0wLjAzMTI1IiwgXAotICAgICAgICAgICIwLjAzLCAwLjAxODc1LCAwLjAwNjI1LCAwLCAtMC4wMDYyNSwgLTAuMDE2MjUsIC0wLjAyNSIsIFwKLSAgICAgICAgICAiMC4wMzYyNSwgMC4wMjUsIDAuMDE4NzUsIDAuMDA2MjUsIDAsIC0wLjAxLCAtMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4wNDYyNSwgMC4wMzUsIDAuMDI4NzUsIDAuMDE2MjUsIDAuMDEsIDAsIC0wLjAwODc1IiwgXAotICAgICAgICAgICIwLjA1NSwgMC4wNDM3NSwgMC4wMzEyNSwgMC4wMjUsIDAuMDE4NzUsIDAuMDAyNSwgMCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJlY292ZXJ5X3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUciOwotICAgICAgc2RmX2NvbmQgOiAiRyA9PSAxJ2IwIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChyZWNvdmVyeV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDYyNSwgMC4wMDEyNSwgLTAuMDA1LCAtMC4wMTEyNSwgLTAuMDExMjUsIC0wLjAxNSwgLTAuMDE3NSIsIFwKLSAgICAgICAgICAiMC4wMTc1LCAwLjAxMjUsIDAuMDA2MjUsIDAsIC0wLjAwNjI1LCAtMC4wMSwgLTAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4wMjM3NSwgMC4wMTg3NSwgMC4wMTI1LCAwLjAwNjI1LCAwLjAwNjI1LCAtMC4wMDM3NSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMDM2MjUsIDAuMDI1LCAwLjAxODc1LCAwLjAxMjUsIDAuMDEyNSwgMC4wMDI1LCAwIiwgXAotICAgICAgICAgICIwLjA0MjUsIDAuMDMxMjUsIDAuMDI1LCAwLjAxODc1LCAwLjAxODc1LCAwLjAwODc1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICIwLjA0NjI1LCAwLjA0MTI1LCAwLjAzNSwgMC4wMjg3NSwgMC4wMjI1LCAwLjAxODc1LCAwLjAxNjI1IiwgXAotICAgICAgICAgICIwLjA1NSwgMC4wNSwgMC4wMzc1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDIxMjUsIDAuMDE4NzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJlbW92YWxfZmFsbGluZzsKLSAgICAgIHdoZW4gOiAiIUQmUk4iOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1JOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQocmVtb3ZhbF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTg3NSwgMC4wMywgMC4wNDI1LCAwLjA0ODc1LCAwLjA2MTI1LCAwLjA3MTI1LCAwLjA4IiwgXAotICAgICAgICAgICIwLjAxMzc1LCAwLjAxODc1LCAwLjAzMTI1LCAwLjA0Mzc1LCAwLjA1LCAwLjA2LCAwLjA2ODc1IiwgXAotICAgICAgICAgICIwLjAwMTI1LCAwLjAxMjUsIDAuMDI1LCAwLjAzNzUsIDAuMDQzNzUsIDAuMDUzNzUsIDAuMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDA1LCAwLjAwNjI1LCAwLjAxODc1LCAwLjAyNSwgMC4wMzc1LCAwLjA0NzUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIi0wLjAxMTI1LCAwLCAwLjAxMjUsIDAuMDE4NzUsIDAuMDMxMjUsIDAuMDQxMjUsIDAuMDUiLCBcCi0gICAgICAgICAgIi0wLjAyMTI1LCAtMC4wMSwgMC4wMDI1LCAwLjAwODc1LCAwLjAyMTI1LCAwLjAzMTI1LCAwLjA0IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLCAwLjAxMjUsIDAuMDIyNSwgMC4wMzEyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJlbW92YWxfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRyI7Ci0gICAgICBzZGZfY29uZCA6ICJHID09IDEnYjAiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHJlbW92YWxfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEyNSwgMC4wMTc1LCAwLjAyMzc1LCAwLjAzLCAwLjAzNjI1LCAwLjA0NjI1LCAwLjA1NSIsIFwKLSAgICAgICAgICAiMC4wMDEyNSwgMC4wMTI1LCAwLjAxODc1LCAwLjAyNSwgMC4wMzEyNSwgMC4wNDEyNSwgMC4wNSIsIFwKLSAgICAgICAgICAiLTAuMDA1LCAwLCAwLjAxMjUsIDAuMDE4NzUsIDAuMDI1LCAwLjAzNSwgMC4wMzc1IiwgXAotICAgICAgICAgICItMC4wMTEyNSwgLTAuMDA2MjUsIDAsIDAuMDEyNSwgMC4wMTg3NSwgMC4wMjI1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wMTc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMC4wMDYyNSwgMC4wMTI1LCAwLjAxNjI1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDI3NSwgLTAuMDIyNSwgLTAuMDEsIC0wLjAwMzc1LCAwLjAwMjUsIDAuMDEyNSwgMC4wMTUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMC4wMDM3NSwgMC4wMTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBUTEFUWDEgKgotICogLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChUTEFUWDEpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4yNjA1MDE7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgbGF0Y2ggKFFJTlQsTjApIHsKLSAgICBkYXRhX2luIDogIkQiOwotICAgIGVuYWJsZSA6ICJHIjsKLSAgfQotICBwaW4oRCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjE1MzE1OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYxNDA5MzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2MTUzMTU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjE4LCAwLjAwMDIyLCAwLjAwMDIyMSwgMC4wMDAyMjEsIDAuMDAwMjIyLCAwLjAwMDIyMiwgMC4wMDAyMjIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyMjgsIDAuMDAwMjI3LCAwLjAwMDIyNywgMC4wMDAyMjcsIDAuMDAwMjI3LCAwLjAwMDIyNywgMC4wMDAyMjciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfZmFsbGluZzsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMDYyNSwgLTAuMDAxMjUsIDAuMDExMjUsIDAuMDIzNzUsIDAuMDMsIDAuMDQ2MjUsIDAuMDU1IiwgXAotICAgICAgICAgICItMC4wMTc1LCAtMC4wMDYyNSwgMC4wMDYyNSwgMC4wMTI1LCAwLjAyNSwgMC4wMzUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAuMDA2MjUsIDAuMDEyNSwgMC4wMjI1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDMxMjUsIC0wLjAxODc1LCAtMC4wMDYyNSwgMCwgMC4wMTYyNSwgMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLjAwMzc1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjA2NSwgLTAuMDUzNzUsIC0wLjA0MTI1LCAtMC4wMjg3NSwgLTAuMDIyNSwgLTAuMDA2MjUsIDAuMDAyNSIsIFwKLSAgICAgICAgICAiLTAuMDczNzUsIC0wLjA2MjUsIC0wLjA1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDE1LCAtMC4wMDYyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAzMTI1LCAtMC4wMiwgLTAuMDEzNzUsIC0wLjAwNzUsIC0wLjAwNzUsIDAuMDAyNSwgMC4wMDUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA4NzUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDI1LCAtMC4wMTUsIC0wLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjA1NSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDI3NSwgLTAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjA2MTI1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzM3NSwgLTAuMDI1IiwgXAotICAgICAgICAgICItMC4wNzc1LCAtMC4wNjYyNSwgLTAuMDYsIC0wLjA1Mzc1LCAtMC4wNDc1LCAtMC4wNDM3NSwgLTAuMDM1IiwgXAotICAgICAgICAgICItMC4wODYyNSwgLTAuMDc1LCAtMC4wNjg3NSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA1MjUsIC0wLjA0Mzc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkciOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9mYWxsaW5nOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyNSwgMC4wMTM3NSwgMC4wMDEyNSwgLTAuMDExMjUsIC0wLjAxNzUsIC0wLjAzMzc1LCAtMC4wNDI1IiwgXAotICAgICAgICAgICIwLjAzLCAwLjAxODc1LCAwLjAwNjI1LCAwLCAtMC4wMTI1LCAtMC4wMjI1LCAtMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4wNDI1LCAwLjAzMTI1LCAwLjAxODc1LCAwLjAwNjI1LCAwLCAtMC4wMSwgLTAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMDU1LCAwLjA0Mzc1LCAwLjAzMTI1LCAwLjAxODc1LCAwLjAxMjUsIC0wLjAwMzc1LCAtMC4wMTI1IiwgXAotICAgICAgICAgICIwLjA2MTI1LCAwLjA1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDE4NzUsIDAuMDA4NzUsIDAiLCBcCi0gICAgICAgICAgIjAuMDc3NSwgMC4wNjYyNSwgMC4wNTM3NSwgMC4wNDEyNSwgMC4wMzUsIDAuMDE4NzUsIDAuMDEiLCBcCi0gICAgICAgICAgIjAuMDg2MjUsIDAuMDc1LCAwLjA2MjUsIDAuMDUsIDAuMDQzNzUsIDAuMDI3NSwgMC4wMTg3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0Mzc1LCAwLjAzMjUsIDAuMDI2MjUsIDAuMDI2MjUsIDAuMDI2MjUsIDAuMDIyNSwgMC4wMiIsIFwKLSAgICAgICAgICAiMC4wNDg3NSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAzMTI1LCAwLjAyNzUsIDAuMDI1IiwgXAotICAgICAgICAgICIwLjA2MTI1LCAwLjA1LCAwLjA0Mzc1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDMzNzUsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiMC4wNjc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDUsIDAuMDUsIDAuMDQ2MjUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMDgsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNTYyNSwgMC4wNTI1LCAwLjA1IiwgXAotICAgICAgICAgICIwLjA5LCAwLjA3ODc1LCAwLjA3MjUsIDAuMDY2MjUsIDAuMDY2MjUsIDAuMDYyNSwgMC4wNiIsIFwKLSAgICAgICAgICAiMC4wOTg3NSwgMC4wODc1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNzUsIDAuMDcxMjUsIDAuMDYyNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRykgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjEwODI2OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYxMDgyNjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2MTA3NzY7Ci0gICAgY2xvY2sgOiB0cnVlOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTg3OSwgMC4wMDE4NTIsIDAuMDAxODM5LCAwLjAwMTg0NywgMC4wMDE4NTksIDAuMDAxODgzLCAwLjAwMTg5OSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzI2MiwgMC4wMDMyMzksIDAuMDAzMjI4LCAwLjAwMzIzNSwgMC4wMDMyNDYsIDAuMDAzMjY5LCAwLjAwMzI5NyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJHIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRCI7Ci0gICAgICBzZGZfY29uZCA6ICJEID09IDEnYjAiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMTUyNjQ1LCAwLjE2Mjc5MSwgMC4xNzUzMzgsIDAuMTg2NjA0LCAwLjE5NjU0NiwgMC4yMTAxNSwgMC4yMjA2NzQiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFEpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4yNjQ0MzY7Ci0gICAgZnVuY3Rpb24gOiAiUUlOVCI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTMxNDc2LCAwLjE1NTY4MywgMC4yOTI4MzcsIDAuNDEzODU0LCAwLjU3NTI2MywgMC44OTgwNzUsIDEuMDk5OTgiLCBcCi0gICAgICAgICAgIjAuMTQwNDEzLCAwLjE2NDYyLCAwLjMwMTc3NCwgMC40MjI3OTEsIDAuNTg0MjM1LCAwLjkwNzAxNiwgMS4xMDg5MiIsIFwKLSAgICAgICAgICAiMC4xNTEwODUsIDAuMTc1MjksIDAuMzEyNDM2LCAwLjQzMzQ3MywgMC41OTQ4NTYsIDAuOTE3NjgxLCAxLjExOTU5IiwgXAotICAgICAgICAgICIwLjE2MTI1OSwgMC4xODU1MjEsIDAuMzIyNjAxLCAwLjQ0MzU5MywgMC42MDUxNiwgMC45Mjc3ODYsIDEuMTI5NzIiLCBcCi0gICAgICAgICAgIjAuMTcwNjMzLCAwLjE5NDc5MywgMC4zMzE4OTIsIDAuNDUyOTM3LCAwLjYxNDQ1OSwgMC45MzczMywgMS4xMzg1NSIsIFwKLSAgICAgICAgICAiMC4xODM3OTUsIDAuMjA4MTY0LCAwLjM0NTE3MywgMC40NjYxNSwgMC42Mjc2NTIsIDAuOTUwNTI5LCAxLjE1MjA3IiwgXAotICAgICAgICAgICIwLjE5NDEyNSwgMC4yMTg1MzIsIDAuMzU1Njc0LCAwLjQ3NjUyMiwgMC42MzgwMDQsIDAuOTYwOTczLCAxLjE2MjgzIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4OTExNSwgMC4xMzg3MTgsIDAuNDIwODg3LCAwLjY2OTg1MSwgMS4wMDM3OSwgMS42Njg1NiwgMi4wODQzOSIsIFwKLSAgICAgICAgICAiMC4wODkxMTMsIDAuMTM4NzE5LCAwLjQyMDg3NCwgMC42Njk4ODEsIDEuMDAzODMsIDEuNjY4NiwgMi4wODQzOCIsIFwKLSAgICAgICAgICAiMC4wODkxMSwgMC4xMzg3MzMsIDAuNDIwOTM5LCAwLjY2OTgwMywgMS4wMDM3OCwgMS42Njg1NSwgMi4wODQzNiIsIFwKLSAgICAgICAgICAiMC4wODg5ODYsIDAuMTM4NTc1LCAwLjQyMDg2LCAwLjY2OTQxMywgMS4wMDE1MiwgMS42Njg2MywgMi4wODQyNiIsIFwKLSAgICAgICAgICAiMC4wODkwNzgsIDAuMTM4NjU3LCAwLjQyMDI3OCwgMC42NzExNTYsIDEuMDAzNzUsIDEuNjY4NzYsIDIuMDc3NjYiLCBcCi0gICAgICAgICAgIjAuMDg5Mjc3LCAwLjEzODk5OSwgMC40MjA4OCwgMC42NzA5MTksIDEuMDAzNzIsIDEuNjY4NzIsIDIuMDgxMDkiLCBcCi0gICAgICAgICAgIjAuMDg5MzUzLCAwLjEzODg1NywgMC40MjE3MywgMC42Njk4ODEsIDEuMDAzNjksIDEuNjY4NzYsIDIuMDg0NDYiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTMzMzczLCAwLjE1ODI1OSwgMC4yOTgzNjYsIDAuNDIyMTYsIDAuNTg3Nzg2LCAwLjkxNzkwNCwgMS4xMjQyNSIsIFwKLSAgICAgICAgICAiMC4xNDE3ODQsIDAuMTY2NjcyLCAwLjMwNjc3NiwgMC40MzA1ODEsIDAuNTk2MTkzLCAwLjkyNjMyMSwgMS4xMzI2NiIsIFwKLSAgICAgICAgICAiMC4xNTE0MSwgMC4xNzYyOTUsIDAuMzE2NDAyLCAwLjQ0MDIsIDAuNjA1ODIxLCAwLjkzNTk0MSwgMS4xNDIyOCIsIFwKLSAgICAgICAgICAiMC4xNjA1MTcsIDAuMTg1Mzk4LCAwLjMyNTUzMywgMC40NDkzNDUsIDAuNjE0NDE3LCAwLjk0NDE0OSwgMS4xNTAxNCIsIFwKLSAgICAgICAgICAiMC4xNjg2NzgsIDAuMTkzNDM2LCAwLjMzMzc4MSwgMC40NTgwNjUsIDAuNjIzMDc3LCAwLjk1MjQ1NiwgMS4xNTg0MSIsIFwKLSAgICAgICAgICAiMC4xODAzMTgsIDAuMjA1MTg0LCAwLjM0NTI5LCAwLjQ2OTE4OSwgMC42MzQ2ODgsIDAuOTY0ODA2LCAxLjE3MTE2IiwgXAotICAgICAgICAgICIwLjE4OTA5MywgMC4yMTQwNTQsIDAuMzU0MTYyLCAwLjQ3ODA0NiwgMC42NDM0OCwgMC45NzI4MDEsIDEuMTc5MDgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg5MTM1LCAwLjEzODgyMywgMC40MjA1NTYsIDAuNjY5NjE3LCAxLjAwMzM3LCAxLjY2ODIsIDIuMDg0MjciLCBcCi0gICAgICAgICAgIjAuMDg5MTM1LCAwLjEzODgyMywgMC40MjA1NzYsIDAuNjY5NTkyLCAxLjAwMzI3LCAxLjY2ODIyLCAyLjA4NDI2IiwgXAotICAgICAgICAgICIwLjA4OTEzNiwgMC4xMzg4MjQsIDAuNDIwNTUyLCAwLjY2OTYsIDEuMDAzMzcsIDEuNjY4MiwgMi4wODQyOCIsIFwKLSAgICAgICAgICAiMC4wODkwOSwgMC4xMzg4MjYsIDAuNDE5OTA2LCAwLjY2ODI3MiwgMS4wMDA3NCwgMS42NjIxOSwgMi4wNzg1OCIsIFwKLSAgICAgICAgICAiMC4wODkxNDEsIDAuMTM4NjYzLCAwLjQyMDQzNywgMC42NzA4MzgsIDEuMDAzNDMsIDEuNjYyMTgsIDIuMDc2MzciLCBcCi0gICAgICAgICAgIjAuMDg5MDg2LCAwLjEzODcyNCwgMC40MjA1NjgsIDAuNjY5ODY0LCAxLjAwMzM3LCAxLjY2ODY3LCAyLjA4NDMiLCBcCi0gICAgICAgICAgIjAuMDg5MDE4LCAwLjEzODc5OCwgMC40MjA4NTUsIDAuNjY5ODM3LCAxLjAwMzIzLCAxLjY2NTYsIDIuMDgwNjciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBub25fdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJpc2luZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNjU2NCwgMC4xODk4NDgsIDAuMzI3MDQ0LCAwLjQ0ODA0NSwgMC42MDk1MSwgMC45MzIzNDIsIDEuMTMzOSIsIFwKLSAgICAgICAgICAiMC4xNzU5NjIsIDAuMjAwMDY3LCAwLjMzNzI0LCAwLjQ1ODI3NiwgMC42MTk2MzIsIDAuOTQyMzk4LCAxLjE0NDM4IiwgXAotICAgICAgICAgICIwLjE4ODU5NSwgMC4yMTI3MDIsIDAuMzQ5ODczLCAwLjQ3MDkwOSwgMC42MzIyNjUsIDAuOTU1MDI5LCAxLjE1NzAxIiwgXAotICAgICAgICAgICIwLjE5OTU4OCwgMC4yMjM5MzksIDAuMzYwOTUsIDAuNDgxOTQ0LCAwLjY0MzQxLCAwLjk2NjI1MSwgMS4xNjc4MSIsIFwKLSAgICAgICAgICAiMC4yMDkzMjQsIDAuMjMzNTU2LCAwLjM3MDcyNSwgMC40OTE4MywgMC42NTMxMDcsIDAuOTc1OTk2LCAxLjE3Nzg5IiwgXAotICAgICAgICAgICIwLjIyMjQ0MSwgMC4yNDY2OCwgMC4zODM4MzcsIDAuNTA0ODY1LCAwLjY2NjIyNywgMC45ODkxMDEsIDEuMTkxIiwgXAotICAgICAgICAgICIwLjIzMjQxNCwgMC4yNTY4MTgsIDAuMzkzOTc3LCAwLjUxNDgyNCwgMC42NzYyODYsIDAuOTk5MTU4LCAxLjIwMTA3Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4OTE3MSwgMC4xMzg4NzUsIDAuNDIwMzQ3LCAwLjY3MDE1NiwgMS4wMDM4LCAxLjY2ODgyLCAyLjA4MDYxIiwgXAotICAgICAgICAgICIwLjA4OTM5OSwgMC4xMzg3MjksIDAuNDIwOTc1LCAwLjY3MDAzNiwgMS4wMDIyNiwgMS42NjU0NywgMi4wODQ0MiIsIFwKLSAgICAgICAgICAiMC4wODkzOTksIDAuMTM4NzM0LCAwLjQyMDk3NywgMC42NzAwNiwgMS4wMDIyNywgMS42NjUwNCwgMi4wODQ0MSIsIFwKLSAgICAgICAgICAiMC4wODkzNTUsIDAuMTM4ODgxLCAwLjQyMDkwNywgMC42NzA5OTEsIDEuMDAzNzcsIDEuNjY4NzksIDIuMDc5ODIiLCBcCi0gICAgICAgICAgIjAuMDg5MjU4LCAwLjEzODY4OCwgMC40MjA4OTUsIDAuNjY5NzI5LCAxLjAwMjEzLCAxLjY2ODgxLCAyLjA4NDQxIiwgXAotICAgICAgICAgICIwLjA4OTMxNCwgMC4xMzg3MzgsIDAuNDIwODcxLCAwLjY2OTk0NywgMS4wMDA3MywgMS42Njg4MSwgMi4wODQ0MSIsIFwKLSAgICAgICAgICAiMC4wODkxMDcsIDAuMTM4ODg1LCAwLjQyMTcxMiwgMC42NzA5NDUsIDEuMDAzNzYsIDEuNjY4NzksIDIuMDg0NDIiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTUyNjQ1LCAwLjE3NzU2NCwgMC4zMTc2NDMsIDAuNDQxNTMsIDAuNjA3MDg3LCAwLjkzNzIsIDEuMTQzNTUiLCBcCi0gICAgICAgICAgIjAuMTYyNzkxLCAwLjE4NzcxLCAwLjMyNzgxNSwgMC40NTE3MzcsIDAuNjE3MjM3LCAwLjk0NjgwMiwgMS4xNTM3MSIsIFwKLSAgICAgICAgICAiMC4xNzUzMzgsIDAuMjAwMjMxLCAwLjM0MDMzMywgMC40NjQzNzcsIDAuNjI5NzUxLCAwLjk1OTg3NywgMS4xNjYyMyIsIFwKLSAgICAgICAgICAiMC4xODY2MDQsIDAuMjExNDg0LCAwLjM1MTU4NCwgMC40NzU0OTcsIDAuNjQxMDE4LCAwLjk3MDczNiwgMS4xNzc0OSIsIFwKLSAgICAgICAgICAiMC4xOTY1NDYsIDAuMjIxNDQzLCAwLjM2MTUyNCwgMC40ODUzODEsIDAuNjUwOTU3LCAwLjk4MTA5MiwgMS4xODc0MiIsIFwKLSAgICAgICAgICAiMC4yMTAxNSwgMC4yMzQ5NjcsIDAuMzc1MTc4LCAwLjQ5OTA3NywgMC42NjQ2MDksIDAuOTk0NzE0LCAxLjIwMTA3IiwgXAotICAgICAgICAgICIwLjIyMDY3NCwgMC4yNDU1NDYsIDAuMzg1NjIxLCAwLjUxMDAxNSwgMC42NzUwNywgMS4wMDUxOSwgMS4yMTE0OCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODkwODQsIDAuMTM4ODA1LCAwLjQyMDc4LCAwLjY2OTg3NSwgMS4wMDMzNiwgMS42Njg3NywgMi4wODQyMSIsIFwKLSAgICAgICAgICAiMC4wODkxMzgsIDAuMTM4ODE2LCAwLjQyMDU3NSwgMC42Njk5MzEsIDEuMDAzMywgMS42NjYzMSwgMi4wODQyNSIsIFwKLSAgICAgICAgICAiMC4wODkxNjEsIDAuMTM4ODEyLCAwLjQyMDY4NCwgMC42NzA0MjMsIDEuMDAzMjUsIDEuNjY4NTcsIDIuMDg0MzMiLCBcCi0gICAgICAgICAgIjAuMDg5MTMxLCAwLjEzODgxNCwgMC40MjA3NSwgMC42Njk4OTQsIDEuMDAzMjcsIDEuNjY3NjcsIDIuMDg0MjMiLCBcCi0gICAgICAgICAgIjAuMDg5MTM4LCAwLjEzODgwOSwgMC40MjA1ODIsIDAuNjY5OTIyLCAxLjAwMzM5LCAxLjY2ODMsIDIuMDg0MjIiLCBcCi0gICAgICAgICAgIjAuMDg5MDg1LCAwLjEzODcyNSwgMC40MjA3NDksIDAuNjY5ODY5LCAxLjAwMzI4LCAxLjY2ODEsIDIuMDg0MiIsIFwKLSAgICAgICAgICAiMC4wODkxNSwgMC4xMzg3MzMsIDAuNDIwNTgyLCAwLjY3MDc0NSwgMS4wMDMyOSwgMS42Njg0NSwgMi4wODM1OCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkQiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjc1NiwgMC4wMDI3NjMsIDAuMDAyNzcyLCAwLjAwMjc3NSwgMC4wMDI3NzUsIDAuMDAyNzc2LCAwLjAwMjc3NyIsIFwKLSAgICAgICAgICAiMC4wMDI3NDUsIDAuMDAyNzUyLCAwLjAwMjc2MSwgMC4wMDI3NjMsIDAuMDAyNzY0LCAwLjAwMjc2NSwgMC4wMDI3NjUiLCBcCi0gICAgICAgICAgIjAuMDAyNzM4LCAwLjAwMjc0NSwgMC4wMDI3NTQsIDAuMDAyNzU2LCAwLjAwMjc1NywgMC4wMDI3NTgsIDAuMDAyNzU5IiwgXAotICAgICAgICAgICIwLjAwMjczNCwgMC4wMDI3NDEsIDAuMDAyNzUsIDAuMDAyNzUyLCAwLjAwMjc1MywgMC4wMDI3NTQsIDAuMDAyNzU0IiwgXAotICAgICAgICAgICIwLjAwMjczMywgMC4wMDI3NCwgMC4wMDI3NDksIDAuMDAyNzUyLCAwLjAwMjc1MywgMC4wMDI3NTMsIDAuMDAyNzU0IiwgXAotICAgICAgICAgICIwLjAwMjczMSwgMC4wMDI3MzksIDAuMDAyNzQ5LCAwLjAwMjc1MSwgMC4wMDI3NTMsIDAuMDAyNzUzLCAwLjAwMjc1NCIsIFwKLSAgICAgICAgICAiMC4wMDI3MzIsIDAuMDAyNzM5LCAwLjAwMjc1LCAwLjAwMjc1MiwgMC4wMDI3NTMsIDAuMDAyNzU0LCAwLjAwMjc1NCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzA5NiwgMC4wMDMxMDMsIDAuMDAzMTEyLCAwLjAwMzExMywgMC4wMDMxMTUsIDAuMDAzMTE2LCAwLjAwMzExNSIsIFwKLSAgICAgICAgICAiMC4wMDMwODksIDAuMDAzMDk2LCAwLjAwMzEwNSwgMC4wMDMxMDYsIDAuMDAzMTA4LCAwLjAwMzEwOCwgMC4wMDMxMDciLCBcCi0gICAgICAgICAgIjAuMDAzMDg1LCAwLjAwMzA5MSwgMC4wMDMxLCAwLjAwMzEwMywgMC4wMDMxMDMsIDAuMDAzMTAzLCAwLjAwMzEwNCIsIFwKLSAgICAgICAgICAiMC4wMDMwODMsIDAuMDAzMDksIDAuMDAzMDk4LCAwLjAwMzEsIDAuMDAzMTAxLCAwLjAwMzEwMSwgMC4wMDMxMDIiLCBcCi0gICAgICAgICAgIjAuMDAzMDc5LCAwLjAwMzA4NiwgMC4wMDMwOTUsIDAuMDAzMDk2LCAwLjAwMzA5NywgMC4wMDMwOTgsIDAuMDAzMDk4IiwgXAotICAgICAgICAgICIwLjAwMzA4NCwgMC4wMDMwOTEsIDAuMDAzMDk5LCAwLjAwMzEwMSwgMC4wMDMxMDIsIDAuMDAzMTAzLCAwLjAwMzEwMyIsIFwKLSAgICAgICAgICAiMC4wMDMwODIsIDAuMDAzMDksIDAuMDAzMDk4LCAwLjAwMzEwMiwgMC4wMDMxMDIsIDAuMDAzMTAzLCAwLjAwMzEwMyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkciOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzY0OSwgMC4wMDM2NTYsIDAuMDAzNjY1LCAwLjAwMzY2NywgMC4wMDM2NjgsIDAuMDAzNjY5LCAwLjAwMzY2OSIsIFwKLSAgICAgICAgICAiMC4wMDM2MzQsIDAuMDAzNjQxLCAwLjAwMzY1MSwgMC4wMDM2NTMsIDAuMDAzNjUzLCAwLjAwMzY1NSwgMC4wMDM2NTYiLCBcCi0gICAgICAgICAgIjAuMDAzNjMxLCAwLjAwMzYzOCwgMC4wMDM2NDgsIDAuMDAzNjUsIDAuMDAzNjUsIDAuMDAzNjUzLCAwLjAwMzY1MiIsIFwKLSAgICAgICAgICAiMC4wMDM2MzgsIDAuMDAzNjQ0LCAwLjAwMzY1NCwgMC4wMDM2NTYsIDAuMDAzNjU3LCAwLjAwMzY1OCwgMC4wMDM2NTgiLCBcCi0gICAgICAgICAgIjAuMDAzNjQxLCAwLjAwMzY0OCwgMC4wMDM2NTcsIDAuMDAzNjU5LCAwLjAwMzY2LCAwLjAwMzY2MiwgMC4wMDM2NjIiLCBcCi0gICAgICAgICAgIjAuMDAzNjU1LCAwLjAwMzY2MiwgMC4wMDM2NzEsIDAuMDAzNjczLCAwLjAwMzY3NCwgMC4wMDM2NzUsIDAuMDAzNjc1IiwgXAotICAgICAgICAgICIwLjAwMzY2OCwgMC4wMDM2NzUsIDAuMDAzNjg0LCAwLjAwMzY4NiwgMC4wMDM2ODYsIDAuMDAzNjg3LCAwLjAwMzY4OSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzY5NCwgMC4wMDM2OTQsIDAuMDAzNjc5LCAwLjAwMzY3MywgMC4wMDM2NjksIDAuMDAzNjY1LCAwLjAwMzY2NCIsIFwKLSAgICAgICAgICAiMC4wMDM2NzYsIDAuMDAzNjc2LCAwLjAwMzY2MiwgMC4wMDM2NTYsIDAuMDAzNjUxLCAwLjAwMzY0OCwgMC4wMDM2NDYiLCBcCi0gICAgICAgICAgIjAuMDAzNjcsIDAuMDAzNjcsIDAuMDAzNjU3LCAwLjAwMzY1MSwgMC4wMDM2NDQsIDAuMDAzNjQzLCAwLjAwMzYzOSIsIFwKLSAgICAgICAgICAiMC4wMDM2NzUsIDAuMDAzNjc2LCAwLjAwMzY2MiwgMC4wMDM2NTYsIDAuMDAzNjUyLCAwLjAwMzY0NywgMC4wMDM2NDYiLCBcCi0gICAgICAgICAgIjAuMDAzNjc4LCAwLjAwMzY3OCwgMC4wMDM2NjUsIDAuMDAzNjU5LCAwLjAwMzY1NCwgMC4wMDM2NDksIDAuMDAzNjQ3IiwgXAotICAgICAgICAgICIwLjAwMzY5MywgMC4wMDM2OTQsIDAuMDAzNjgyLCAwLjAwMzY3NSwgMC4wMDM2NywgMC4wMDM2NjYsIDAuMDAzNjY0IiwgXAotICAgICAgICAgICIwLjAwMzcwOCwgMC4wMDM3MDksIDAuMDAzNjk4LCAwLjAwMzY5MSwgMC4wMDM2ODYsIDAuMDAzNjgxLCAwLjAwMzY4Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihRTikgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjI2NTE5NzsKLSAgICBmdW5jdGlvbiA6ICJOMCI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTI0ODMsIDAuMTQ5NDcyLCAwLjI4ODY3OSwgMC40MTEzNzIsIDAuNTc0OTc1LCAwLjkwMjE3MSwgMS4xMDY3OCIsIFwKLSAgICAgICAgICAiMC4xMzMyNDUsIDAuMTU3ODg3LCAwLjI5NzA4OSwgMC40MTk3ODUsIDAuNTgzMzYzLCAwLjkxMDU4OSwgMS4xMTUxOSIsIFwKLSAgICAgICAgICAiMC4xNDI4NzEsIDAuMTY3NTEzLCAwLjMwNjcyLCAwLjQyOTQxMSwgMC41OTMwMTYsIDAuOTIwMjEzLCAxLjEyNDgyIiwgXAotICAgICAgICAgICIwLjE1MTk4LCAwLjE3NjYyMywgMC4zMTU3NzUsIDAuNDM4NDk5LCAwLjYwMjA5MiwgMC45MjkwODEsIDEuMTMzNTMiLCBcCi0gICAgICAgICAgIjAuMTYwMTg1LCAwLjE4NDgyMSwgMC4zMjM5NjMsIDAuNDQ2Njk3LCAwLjYxMDM0MywgMC45MzcyNDUsIDEuMTQxNzkiLCBcCi0gICAgICAgICAgIjAuMTcxODM5LCAwLjE5NjQ4NSwgMC4zMzU2ODcsIDAuNDU4MzUyLCAwLjYyMjAwMiwgMC45NDkyODcsIDEuMTUzODEiLCBcCi0gICAgICAgICAgIjAuMTgwNjc3LCAwLjIwNTMyMSwgMC4zNDQ0NjYsIDAuNDY3MTY4LCAwLjYzMDgzMSwgMC45NTgwMzMsIDEuMTYyNTQiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk0MjM3LCAwLjE0MzQ5MSwgMC40Mjc1NDcsIDAuNjgwMTgsIDEuMDE4NzQsIDEuNjkzMjgsIDIuMTE1MTQiLCBcCi0gICAgICAgICAgIjAuMDk0MjM3LCAwLjE0MzQ5MSwgMC40Mjc1NjYsIDAuNjgwMTU1LCAxLjAxODY4LCAxLjY5MzI5LCAyLjExNTEzIiwgXAotICAgICAgICAgICIwLjA5NDIzOSwgMC4xNDM0OTIsIDAuNDI3NTQ1LCAwLjY4MDE3NCwgMS4wMTg3NCwgMS42OTMyOCwgMi4xMTUxNSIsIFwKLSAgICAgICAgICAiMC4wOTQyMzksIDAuMTQzNDkzLCAwLjQyNzE4MywgMC42NzkzODEsIDEuMDE2MDQsIDEuNjg4MTEsIDIuMTA5NDQiLCBcCi0gICAgICAgICAgIjAuMDk0MjYyLCAwLjE0MzMyMiwgMC40Mjc0MjgsIDAuNjgxNDksIDEuMDE4NzgsIDEuNjg4MTcsIDIuMTA4NCIsIFwKLSAgICAgICAgICAiMC4wOTQyNzQsIDAuMTQzNDA4LCAwLjQyNzU3MiwgMC42ODA1MjcsIDEuMDE4NzMsIDEuNjkzNDcsIDIuMTE1MTUiLCBcCi0gICAgICAgICAgIjAuMDk0MzE1LCAwLjE0MzU3MywgMC40Mjc5MzgsIDAuNjgwNTE4LCAxLjAxODU3LCAxLjY5MDUyLCAyLjExMTM2Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEyNTE5NiwgMC4xNTAwODMsIDAuMjkwNDI5LCAwLjQxNDE1MiwgMC41NzkwNTMsIDAuOTA4ODg4LCAxLjExNTExIiwgXAotICAgICAgICAgICIwLjEzNDEzMywgMC4xNTkwMiwgMC4yOTkzNjcsIDAuNDIzMDkxLCAwLjU4ODAxMiwgMC45MTc4MjcsIDEuMTI0MDQiLCBcCi0gICAgICAgICAgIjAuMTQ0OCwgMC4xNjk2ODgsIDAuMzEwMDI3LCAwLjQzMzc2NiwgMC41OTg2NSwgMC45Mjg0OTEsIDEuMTM0NzEiLCBcCi0gICAgICAgICAgIjAuMTU0OTc0LCAwLjE3OTg1NywgMC4zMjAyMjEsIDAuNDQzOTI2LCAwLjYwODkzLCAwLjkzODYyMSwgMS4xNDQ4OSIsIFwKLSAgICAgICAgICAiMC4xNjQzNTYsIDAuMTg5MjQ0LCAwLjMyOTUwNSwgMC40NTMyNTEsIDAuNjE4MjUsIDAuOTQ4MTA5LCAxLjE1NDEiLCBcCi0gICAgICAgICAgIjAuMTc3NjQxLCAwLjIwMjUyOCwgMC4zNDI4NTcsIDAuNDY2NTYzLCAwLjYzMTUzMywgMC45NjEzOTUsIDEuMTY3NTMiLCBcCi0gICAgICAgICAgIjAuMTg3OTU2LCAwLjIxMjg1LCAwLjM1MzE1LCAwLjQ3NjksIDAuNjQxODQ5LCAwLjk3MTc1NCwgMS4xNzc5NCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTI4MDEsIDAuMTQxMTMsIDAuNDIxMzUxLCAwLjY3MDE1NCwgMS4wMDM5NCwgMS42Njg0NiwgMi4wODQxMyIsIFwKLSAgICAgICAgICAiMC4wOTI4MDEsIDAuMTQxMTMxLCAwLjQyMTMzNiwgMC42NzAxOTgsIDEuMDA0MDQsIDEuNjY4NSwgMi4wODQxMyIsIFwKLSAgICAgICAgICAiMC4wOTI4LCAwLjE0MTI3MiwgMC40MjEzOTIsIDAuNjcwMzI0LCAxLjAwMzksIDEuNjY4NDYsIDIuMDg0MTMiLCBcCi0gICAgICAgICAgIjAuMDkyODIzLCAwLjE0MTE1OSwgMC40MjEzNCwgMC42Njk2NzgsIDEuMDAxOTgsIDEuNjY4NTIsIDIuMDgzODgiLCBcCi0gICAgICAgICAgIjAuMDkyNzg5LCAwLjE0MTI2NCwgMC40MjA3NTYsIDAuNjcxNDM0LCAxLjAwMzk3LCAxLjY2ODczLCAyLjA3NzExIiwgXAotICAgICAgICAgICIwLjA5MzA2NywgMC4xNDE1NDksIDAuNDIxNTY0LCAwLjY3MTIxMywgMS4wMDQsIDEuNjY4NzUsIDIuMDgxNDkiLCBcCi0gICAgICAgICAgIjAuMDkzMTE5LCAwLjE0MTQ0NywgMC40MjIzNTUsIDAuNjcwMTY4LCAxLjAwNDAxLCAxLjY2ODk5LCAyLjA4NDYxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkciOwotICAgICAgdGltaW5nX3NlbnNlIDogbm9uX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiByaXNpbmdfZWRnZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTQ0MDc4LCAwLjE2ODYzOCwgMC4zMDc2MDIsIDAuNDMwMTg0LCAwLjU5Mzc1NSwgMC45MjEwMDMsIDEuMTI1NDciLCBcCi0gICAgICAgICAgIjAuMTU0MjQ3LCAwLjE3ODgxLCAwLjMxNzc5MSwgMC40NDAzNTIsIDAuNjAzOTIsIDAuOTMxMDM3LCAxLjEzNTY3IiwgXAotICAgICAgICAgICIwLjE2Njc2MSwgMC4xOTEzMjcsIDAuMzMwMzE1LCAwLjQ1Mjg2MSwgMC42MTY0MjksIDAuOTQzNjY1LCAxLjE0ODIiLCBcCi0gICAgICAgICAgIjAuMTc4MDI0LCAwLjIwMjU5NCwgMC4zNDE1NzksIDAuNDY0MTQ5LCAwLjYyNzcxMiwgMC45NTQ4MTYsIDEuMTU5NDUiLCBcCi0gICAgICAgICAgIjAuMTg3OTc3LCAwLjIxMjU0NywgMC4zNTE1MjEsIDAuNDc0MTA5LCAwLjYzNzY4NSwgMC45NjQ4MzIsIDEuMTY5NCIsIFwKLSAgICAgICAgICAiMC4yMDE2MjQsIDAuMjI2MiwgMC4zNjUxODcsIDAuNDg3NzU3LCAwLjY1MTMxOCwgMC45Nzg0NCwgMS4xODMwNCIsIFwKLSAgICAgICAgICAiMC4yMTIxMzUsIDAuMjM2NzA5LCAwLjM3NTY2NiwgMC40OTgyNTksIDAuNjYxODI4LCAwLjk4OTAzMSwgMS4xOTM0MSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTQyNzIsIDAuMTQzNTQ4LCAwLjQyNzgyMywgMC42ODA0OTMsIDEuMDE4NzUsIDEuNjkzNTUsIDIuMTE1MTEiLCBcCi0gICAgICAgICAgIjAuMDk0MzE3LCAwLjE0MzU0MiwgMC40Mjc2NTIsIDAuNjgwNjE5LCAxLjAxODcsIDEuNjkxMTgsIDIuMTE1MTMiLCBcCi0gICAgICAgICAgIjAuMDk0MzIxLCAwLjE0MzU0MywgMC40Mjc3NDcsIDAuNjgxMDg2LCAxLjAxODY5LCAxLjY5MzQ1LCAyLjExNTE5IiwgXAotICAgICAgICAgICIwLjA5NDMzNCwgMC4xNDM1NSwgMC40Mjc3OTksIDAuNjgwNTc0LCAxLjAxODY5LCAxLjY5MjUzLCAyLjExNTEyIiwgXAotICAgICAgICAgICIwLjA5NDMyMSwgMC4xNDM1NDQsIDAuNDI3NTUxLCAwLjY4MDUsIDEuMDE4NzUsIDEuNjkzMzIsIDIuMTE1MTEiLCBcCi0gICAgICAgICAgIjAuMDk0MzI0LCAwLjE0MzQ2OSwgMC40Mjc3OTksIDAuNjgwNTI5LCAxLjAxODcsIDEuNjkzMTgsIDIuMTE1MSIsIFwKLSAgICAgICAgICAiMC4wOTQzMjgsIDAuMTQzNDMyLCAwLjQyNzY3MywgMC42ODE0MDQsIDEuMDE4NywgMS42OTMzOSwgMi4xMTQ3MiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNTkzOTIsIDAuMTg0MjgxLCAwLjMyNDYwOCwgMC40NDgzMzgsIDAuNjEzMjgxLCAwLjk0MzEyMSwgMS4xNDkzOCIsIFwKLSAgICAgICAgICAiMC4xNjk1OTIsIDAuMTk0NDc3LCAwLjMzNDgyMSwgMC40NTg1NjQsIDAuNjIzNDg5LCAwLjk1MzM5OSwgMS4xNTk1MSIsIFwKLSAgICAgICAgICAiMC4xODIyMjUsIDAuMjA3MTEsIDAuMzQ3NDUzLCAwLjQ3MTE5NywgMC42MzYxMjIsIDAuOTY2MDE5LCAxLjE3MjE0IiwgXAotICAgICAgICAgICIwLjE5MzI5OCwgMC4yMTgxODksIDAuMzU4NTEzLCAwLjQ4MjIzOSwgMC42NDcxODUsIDAuOTc3MDMxLCAxLjE4MzI3IiwgXAotICAgICAgICAgICIwLjIwMzA3MywgMC4yMjc5NiwgMC4zNjgzMDgsIDAuNDkyMTAxLCAwLjY1Njk1NCwgMC45ODY3OTMsIDEuMTkzMDEiLCBcCi0gICAgICAgICAgIjAuMjE2MTg0LCAwLjI0MTA2LCAwLjM4MTQyMywgMC41MDUxNTksIDAuNjcwMDk2LCAwLjk5OTkwMiwgMS4yMDYxMiIsIFwKLSAgICAgICAgICAiMC4yMjYxNzMsIDAuMjUxMDY3LCAwLjM5MTM1MywgMC41MTUxMDYsIDAuNjgwMDUsIDEuMDA5OTEsIDEuMjE2MTMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDkyODY4LCAwLjE0MTQxNiwgMC40MjA4MDQsIDAuNjcwNjMzLCAxLjAwNDAyLCAxLjY2ODcxLCAyLjA4MDg0IiwgXAotICAgICAgICAgICIwLjA5MzAyMSwgMC4xNDEyMDMsIDAuNDIxNDA5LCAwLjY3MDMxNCwgMS4wMDI0NywgMS42NjU4OCwgMi4wODQyMiIsIFwKLSAgICAgICAgICAiMC4wOTMwMjEsIDAuMTQxMiwgMC40MjE0MSwgMC42NzAzMjYsIDEuMDAyNDcsIDEuNjY1MzIsIDIuMDg0MjIiLCBcCi0gICAgICAgICAgIjAuMDkzMDYsIDAuMTQxNDM5LCAwLjQyMTU1MSwgMC42NzExNjYsIDEuMDAzOTgsIDEuNjY4NjgsIDIuMDgwMzUiLCBcCi0gICAgICAgICAgIjAuMDkzMDQsIDAuMTQxMTYzLCAwLjQyMTM1OCwgMC42NzAyMDUsIDEuMDAyNTgsIDEuNjY4NjgsIDIuMDg0MjUiLCBcCi0gICAgICAgICAgIjAuMDkzMDI3LCAwLjE0MTI1OCwgMC40MjEzMzMsIDAuNjcwNDA5LCAxLjAwMDksIDEuNjY4NjcsIDIuMDg0MjUiLCBcCi0gICAgICAgICAgIjAuMDkyODIyLCAwLjE0MTQ0LCAwLjQyMjMwMSwgMC42NzEyMDgsIDEuMDAzOTYsIDEuNjY4NzIsIDIuMDg0NDEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJEIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDMwOTYsIDAuMDAzMTAzLCAwLjAwMzExMiwgMC4wMDMxMTMsIDAuMDAzMTE1LCAwLjAwMzExNiwgMC4wMDMxMTUiLCBcCi0gICAgICAgICAgIjAuMDAzMDg5LCAwLjAwMzA5NiwgMC4wMDMxMDUsIDAuMDAzMTA2LCAwLjAwMzEwOCwgMC4wMDMxMDgsIDAuMDAzMTA3IiwgXAotICAgICAgICAgICIwLjAwMzA4NSwgMC4wMDMwOTEsIDAuMDAzMSwgMC4wMDMxMDMsIDAuMDAzMTAzLCAwLjAwMzEwMywgMC4wMDMxMDQiLCBcCi0gICAgICAgICAgIjAuMDAzMDgzLCAwLjAwMzA5LCAwLjAwMzA5OCwgMC4wMDMxLCAwLjAwMzEwMSwgMC4wMDMxMDEsIDAuMDAzMTAyIiwgXAotICAgICAgICAgICIwLjAwMzA3OSwgMC4wMDMwODYsIDAuMDAzMDk1LCAwLjAwMzA5NiwgMC4wMDMwOTcsIDAuMDAzMDk4LCAwLjAwMzA5OCIsIFwKLSAgICAgICAgICAiMC4wMDMwODQsIDAuMDAzMDkxLCAwLjAwMzA5OSwgMC4wMDMxMDEsIDAuMDAzMTAyLCAwLjAwMzEwMywgMC4wMDMxMDMiLCBcCi0gICAgICAgICAgIjAuMDAzMDgyLCAwLjAwMzA5LCAwLjAwMzA5OCwgMC4wMDMxMDIsIDAuMDAzMTAyLCAwLjAwMzEwMywgMC4wMDMxMDMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI3NTYsIDAuMDAyNzYzLCAwLjAwMjc3MiwgMC4wMDI3NzUsIDAuMDAyNzc1LCAwLjAwMjc3NiwgMC4wMDI3NzciLCBcCi0gICAgICAgICAgIjAuMDAyNzQ1LCAwLjAwMjc1MiwgMC4wMDI3NjEsIDAuMDAyNzYzLCAwLjAwMjc2NCwgMC4wMDI3NjUsIDAuMDAyNzY1IiwgXAotICAgICAgICAgICIwLjAwMjczOCwgMC4wMDI3NDUsIDAuMDAyNzU0LCAwLjAwMjc1NiwgMC4wMDI3NTcsIDAuMDAyNzU4LCAwLjAwMjc1OSIsIFwKLSAgICAgICAgICAiMC4wMDI3MzQsIDAuMDAyNzQxLCAwLjAwMjc1LCAwLjAwMjc1MiwgMC4wMDI3NTMsIDAuMDAyNzU0LCAwLjAwMjc1NCIsIFwKLSAgICAgICAgICAiMC4wMDI3MzMsIDAuMDAyNzQsIDAuMDAyNzQ5LCAwLjAwMjc1MiwgMC4wMDI3NTMsIDAuMDAyNzUzLCAwLjAwMjc1NCIsIFwKLSAgICAgICAgICAiMC4wMDI3MzEsIDAuMDAyNzM5LCAwLjAwMjc0OSwgMC4wMDI3NTEsIDAuMDAyNzUzLCAwLjAwMjc1MywgMC4wMDI3NTQiLCBcCi0gICAgICAgICAgIjAuMDAyNzMyLCAwLjAwMjczOSwgMC4wMDI3NSwgMC4wMDI3NTIsIDAuMDAyNzUzLCAwLjAwMjc1NCwgMC4wMDI3NTQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJHIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDM2OTQsIDAuMDAzNjk0LCAwLjAwMzY3OSwgMC4wMDM2NzMsIDAuMDAzNjY5LCAwLjAwMzY2NSwgMC4wMDM2NjQiLCBcCi0gICAgICAgICAgIjAuMDAzNjc2LCAwLjAwMzY3NiwgMC4wMDM2NjIsIDAuMDAzNjU2LCAwLjAwMzY1MSwgMC4wMDM2NDgsIDAuMDAzNjQ2IiwgXAotICAgICAgICAgICIwLjAwMzY3LCAwLjAwMzY3LCAwLjAwMzY1NywgMC4wMDM2NTEsIDAuMDAzNjQ0LCAwLjAwMzY0MywgMC4wMDM2MzkiLCBcCi0gICAgICAgICAgIjAuMDAzNjc1LCAwLjAwMzY3NiwgMC4wMDM2NjIsIDAuMDAzNjU2LCAwLjAwMzY1MiwgMC4wMDM2NDcsIDAuMDAzNjQ2IiwgXAotICAgICAgICAgICIwLjAwMzY3OCwgMC4wMDM2NzgsIDAuMDAzNjY1LCAwLjAwMzY1OSwgMC4wMDM2NTQsIDAuMDAzNjQ5LCAwLjAwMzY0NyIsIFwKLSAgICAgICAgICAiMC4wMDM2OTMsIDAuMDAzNjk0LCAwLjAwMzY4MiwgMC4wMDM2NzUsIDAuMDAzNjcsIDAuMDAzNjY2LCAwLjAwMzY2NCIsIFwKLSAgICAgICAgICAiMC4wMDM3MDgsIDAuMDAzNzA5LCAwLjAwMzY5OCwgMC4wMDM2OTEsIDAuMDAzNjg2LCAwLjAwMzY4MSwgMC4wMDM2OCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzY0OSwgMC4wMDM2NTYsIDAuMDAzNjY1LCAwLjAwMzY2NywgMC4wMDM2NjgsIDAuMDAzNjY5LCAwLjAwMzY2OSIsIFwKLSAgICAgICAgICAiMC4wMDM2MzQsIDAuMDAzNjQxLCAwLjAwMzY1MSwgMC4wMDM2NTMsIDAuMDAzNjUzLCAwLjAwMzY1NSwgMC4wMDM2NTYiLCBcCi0gICAgICAgICAgIjAuMDAzNjMxLCAwLjAwMzYzOCwgMC4wMDM2NDgsIDAuMDAzNjUsIDAuMDAzNjUsIDAuMDAzNjUzLCAwLjAwMzY1MiIsIFwKLSAgICAgICAgICAiMC4wMDM2MzgsIDAuMDAzNjQ0LCAwLjAwMzY1NCwgMC4wMDM2NTYsIDAuMDAzNjU3LCAwLjAwMzY1OCwgMC4wMDM2NTgiLCBcCi0gICAgICAgICAgIjAuMDAzNjQxLCAwLjAwMzY0OCwgMC4wMDM2NTcsIDAuMDAzNjU5LCAwLjAwMzY2LCAwLjAwMzY2MiwgMC4wMDM2NjIiLCBcCi0gICAgICAgICAgIjAuMDAzNjU1LCAwLjAwMzY2MiwgMC4wMDM2NzEsIDAuMDAzNjczLCAwLjAwMzY3NCwgMC4wMDM2NzUsIDAuMDAzNjc1IiwgXAotICAgICAgICAgICIwLjAwMzY2OCwgMC4wMDM2NzUsIDAuMDAzNjg0LCAwLjAwMzY4NiwgMC4wMDM2ODYsIDAuMDAzNjg3LCAwLjAwMzY4OSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IFhOT1IzWDEgKgotICogLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoWE5PUjNYMSkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjMyMTk0NjsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwODA3NDM3OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDgwNjQ4MzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA4MDc0Mzc7Ci0gIH0KLSAgcGluKEIpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTk1NDMxOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTk1MzM4OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTk1NDMxOwotICB9Ci0gIHBpbihDKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE0MzIxODsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE0MzE0NDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE0MzIxODsKLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjIwNTE1MzsKLSAgICBmdW5jdGlvbiA6ICIoISgoQV5CKV5DKSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE0ODc4NSwgMC4xNzQ2MjgsIDAuMzEyNzU2LCAwLjQzMzYzLCAwLjU5NDksIDAuOTE3NDYzLCAxLjExODYxIiwgXAotICAgICAgICAgICIwLjE1ODc0OCwgMC4xODQ1OTMsIDAuMzIyNzI3LCAwLjQ0MzU5NSwgMC42MDQ4ODYsIDAuOTI3MjAyLCAxLjEyODU3IiwgXAotICAgICAgICAgICIwLjE3MTM5NiwgMC4xOTcyNTYsIDAuMzM1MzkxLCAwLjQ1NjI3NSwgMC42MTc1NDEsIDAuOTQwMTAxLCAxLjE0MTI3IiwgXAotICAgICAgICAgICIwLjE4MzgzNCwgMC4yMDk2OCwgMC4zNDc4MjQsIDAuNDY4NzA5LCAwLjYyOTk5OCwgMC45NTI0NjIsIDEuMTUzNjkiLCBcCi0gICAgICAgICAgIjAuMTk2MTc1LCAwLjIyMjA2MywgMC4zNjAyMjUsIDAuNDgxMDgxLCAwLjY0MjM0NiwgMC45NjQ4NzcsIDEuMTY2MTUiLCBcCi0gICAgICAgICAgIjAuMjE0OTQ1LCAwLjI0MDgxMywgMC4zNzg5NjksIDAuNDk5ODYsIDAuNjYxMTY0LCAwLjk4MzczOSwgMS4xODQ4NiIsIFwKLSAgICAgICAgICAiMC4yMzAxODMsIDAuMjU2MDksIDAuMzk0Mjc2LCAwLjUxNTEzNiwgMC42NzYzMTYsIDAuOTk4Nzk3LCAxLjIwMDQ5Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwMjUwOSwgMC4xNTAwMDgsIDAuNDI2MzU2LCAwLjY3NDk0LCAxLjAwNTU0LCAxLjY3MDk0LCAyLjA4OTk5IiwgXAotICAgICAgICAgICIwLjEwMjUxMSwgMC4xNTAwMSwgMC40MjYxNDUsIDAuNjc0NzgyLCAxLjAwNTQzLCAxLjY3MDY0LCAyLjA5MDk5IiwgXAotICAgICAgICAgICIwLjEwMjQ2MSwgMC4xNTAwMjEsIDAuNDI2NjcsIDAuNjc0NzgsIDEuMDA2MTcsIDEuNjcwOTMsIDIuMDg5ODciLCBcCi0gICAgICAgICAgIjAuMTAyNTQzLCAwLjE1MDAzNywgMC40MjYzMjQsIDAuNjc0ODExLCAxLjAwNTM5LCAxLjY3MTE2LCAyLjA4OTcxIiwgXAotICAgICAgICAgICIwLjEwMjU1OCwgMC4xNTAwNTUsIDAuNDI2NzM2LCAwLjY3NDg5LCAxLjAwNTU4LCAxLjY3MDk4LCAyLjA4OTc3IiwgXAotICAgICAgICAgICIwLjEwMjYxMSwgMC4xNTAxNiwgMC40MjYzNCwgMC42NzQ4MTgsIDEuMDA2LCAxLjY3MDk4LCAyLjA4ODEiLCBcCi0gICAgICAgICAgIjAuMTAzMDMyLCAwLjE1MDQzNCwgMC40MjY4MTQsIDAuNjc0ODk0LCAxLjAwNzQ2LCAxLjY3MTc3LCAyLjA4ODEzIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE0NzM2NCwgMC4xNzg1NTYsIDAuMzQ5MjIyLCAwLjQ5OTI0MiwgMC42OTkyODEsIDEuMDk5NTUsIDEuMzQ5OTMiLCBcCi0gICAgICAgICAgIjAuMTU3MDM5LCAwLjE4ODIyMiwgMC4zNTg5LCAwLjUwODkyNSwgMC43MDg5NjEsIDEuMTA5MjYsIDEuMzU5ODQiLCBcCi0gICAgICAgICAgIjAuMTY5MTI5LCAwLjIwMDMyMywgMC4zNzA5OTYsIDAuNTIxMDM3LCAwLjcyMTA3OSwgMS4xMjEzNiwgMS4zNzE0MSIsIFwKLSAgICAgICAgICAiMC4xODA4NDgsIDAuMjEyMDQxLCAwLjM4Mjc1OCwgMC41MzI4MSwgMC43MzI4NDgsIDEuMTMzMDEsIDEuMzgzNTIiLCBcCi0gICAgICAgICAgIjAuMTkxODI3LCAwLjIyMzAyLCAwLjM5MzcxMiwgMC41NDM3NjMsIDAuNzQzODE1LCAxLjE0NDA4LCAxLjM5NDYxIiwgXAotICAgICAgICAgICIwLjIwODE3NywgMC4yMzkzNzcsIDAuNDEwMDg5LCAwLjU2MDEzNywgMC43NjAyMDEsIDEuMTYwNDcsIDEuNDEwNTkiLCBcCi0gICAgICAgICAgIjAuMjIxMTQ3LCAwLjI1MjM4NCwgMC40MjMxMTQsIDAuNTczMTU5LCAwLjc3MzIzMSwgMS4xNzM0NiwgMS40MjM4NyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTg0MTgsIDAuMTc2MjcxLCAwLjUxMjIzLCAwLjgxMzc4MiwgMS4yMTYxOSwgMi4wMjA0LCAyLjUxOTI1IiwgXAotICAgICAgICAgICIwLjExODQ0MiwgMC4xNzYxNjksIDAuNTEyMjY0LCAwLjgxMzc5MiwgMS4yMTYxOSwgMi4wMjAwNiwgMi41MTk0OCIsIFwKLSAgICAgICAgICAiMC4xMTg0NzEsIDAuMTc2MTY0LCAwLjUxMjgyOSwgMC44MTM4MzEsIDEuMjE2MiwgMi4wMTkzLCAyLjUxODM3IiwgXAotICAgICAgICAgICIwLjExODQ4OCwgMC4xNzYzMDgsIDAuNTEyOTA0LCAwLjgxMzc5LCAxLjIxNjIsIDIuMDIxMjEsIDIuNTE4OTciLCBcCi0gICAgICAgICAgIjAuMTE4NTI3LCAwLjE3NjI5NiwgMC41MTMwMzEsIDAuODEzODA4LCAxLjIxNjE5LCAyLjAyMDE2LCAyLjUxOTMxIiwgXAotICAgICAgICAgICIwLjExODgyMSwgMC4xNzY1MjIsIDAuNTEzMTEyLCAwLjgxMzgxOCwgMS4yMTYyMSwgMi4wMjA5NSwgMi41MTg5MyIsIFwKLSAgICAgICAgICAiMC4xMTkyOTUsIDAuMTc2ODcsIDAuNTEyOTc2LCAwLjgxMzgyOSwgMS4yMTYyMiwgMi4wMjA4MiwgMi41MjIzOCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xODA5MDUsIDAuMjA2NzAxLCAwLjM0NDc3NywgMC40NjU2MzIsIDAuNjI2OTA5LCAwLjk0OTM4MSwgMS4xNTA3NSIsIFwKLSAgICAgICAgICAiMC4xOTA4NzUsIDAuMjE2NjcyLCAwLjM1NDc0NywgMC40NzU2MDUsIDAuNjM2ODc3LCAwLjk1OTM0NCwgMS4xNjA3NSIsIFwKLSAgICAgICAgICAiMC4yMDMzNjQsIDAuMjI5MjIyLCAwLjM2NzI5NiwgMC40ODgxNjYsIDAuNjQ5NDMsIDAuOTcxOTAxLCAxLjE3MzI4IiwgXAotICAgICAgICAgICIwLjIxNDg0LCAwLjI0MDY4MiwgMC4zNzg3NjMsIDAuNDk5NjU5LCAwLjY2MDkwNywgMC45ODM0MTksIDEuMTg0NjgiLCBcCi0gICAgICAgICAgIjAuMjI1Mjg3LCAwLjI1MTE0NSwgMC4zODkyMTYsIDAuNTEwMTI4LCAwLjY3MTM2LCAwLjk5Mzg2NiwgMS4xOTUxNCIsIFwKLSAgICAgICAgICAiMC4yMzk2ODcsIDAuMjY1NTMsIDAuNDAzNjE3LCAwLjUyNDQ5NSwgMC42ODU3NzIsIDEuMDA4MzEsIDEuMjA5NDgiLCBcCi0gICAgICAgICAgIjAuMjUxMTI0LCAwLjI3Njk0NiwgMC40MTUwNDksIDAuNTM1OTM2LCAwLjY5NzIwMSwgMS4wMTk3NCwgMS4yMjA5MSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDI2MDcsIDAuMTUwMDI2LCAwLjQyNjI2NiwgMC42NzQ2MjcsIDEuMDA1NTgsIDEuNjcxMDQsIDIuMDg4MTEiLCBcCi0gICAgICAgICAgIjAuMTAyNjA3LCAwLjE1MDAyNiwgMC40MjYyNjYsIDAuNjc0NzM1LCAxLjAwNTU2LCAxLjY3MTA4LCAyLjA4ODExIiwgXAotICAgICAgICAgICIwLjEwMjU4NiwgMC4xNTAwMjYsIDAuNDI2MjYzLCAwLjY3NDg4NSwgMS4wMDYxOSwgMS42NzEyNCwgMi4wODgwMSIsIFwKLSAgICAgICAgICAiMC4xMDI1NzgsIDAuMTUwMDE3LCAwLjQyNjI2OSwgMC42NzUwNjIsIDEuMDA1NTQsIDEuNjc0MTksIDIuMDg5NzciLCBcCi0gICAgICAgICAgIjAuMTAyNTgzLCAwLjE1MDAyLCAwLjQyNjI2NCwgMC42NzUxMDEsIDEuMDA1OTMsIDEuNjcxLCAyLjA4OTc3IiwgXAotICAgICAgICAgICIwLjEwMjU3NSwgMC4xNTAwMzIsIDAuNDI2Mjk3LCAwLjY3NDk0OSwgMS4wMDU0OCwgMS42NzA5NiwgMi4wODk5IiwgXAotICAgICAgICAgICIwLjEwMjY1LCAwLjE1MDA1NiwgMC40MjYxODEsIDAuNjc1MDM3LCAxLjAwNTUsIDEuNjcwOTYsIDIuMDg5OTIiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTk4NTAxLCAwLjIzMDEzMiwgMC40MDExNDIsIDAuNTUxMTcyLCAwLjc1MTI3MywgMS4xNTE0MywgMS40MDE4OSIsIFwKLSAgICAgICAgICAiMC4yMDg1NzYsIDAuMjQwMjIxLCAwLjQxMTIyMywgMC41NjEyNTcsIDAuNzYxMzYsIDEuMTYxNTIsIDEuNDExOTQiLCBcCi0gICAgICAgICAgIjAuMjIxNDM5LCAwLjI1MzA1NSwgMC40MjQwNzgsIDAuNTc0MTE2LCAwLjc3NDIxOSwgMS4xNzQzOSwgMS40MjQ3NyIsIFwKLSAgICAgICAgICAiMC4yMzQyNDEsIDAuMjY1ODI5LCAwLjQzNjgyNCwgMC41ODY4NjEsIDAuNzg2OTU4LCAxLjE4NzExLCAxLjQzNzUyIiwgXAotICAgICAgICAgICIwLjI0NjE5MywgMC4yNzc4MDMsIDAuNDQ4Nzk3LCAwLjU5ODgzNiwgMC43OTg5MTQsIDEuMTk5MDQsIDEuNDQ5ODMiLCBcCi0gICAgICAgICAgIjAuMjYzMjQzLCAwLjI5NDg5OCwgMC40NjU4OTUsIDAuNjE1OTI4LCAwLjgxNjAzOSwgMS4yMTYyMSwgMS40NjY1OSIsIFwKLSAgICAgICAgICAiMC4yNzY5MDEsIDAuMzA4NDk3LCAwLjQ3OTUwMSwgMC42Mjk1NzcsIDAuODI5NjMzLCAxLjIyOTc4LCAxLjQ4MDY0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEyMTA5NCwgMC4xNzg1OTgsIDAuNTEzNTA2LCAwLjgxNDM5LCAxLjIxNjc5LCAyLjAxOTU5LCAyLjUxODk2IiwgXAotICAgICAgICAgICIwLjEyMTA5LCAwLjE3ODU1NywgMC41MTM3MTcsIDAuODE0MzY2LCAxLjIxNjc3LCAyLjAxNzUzLCAyLjUyMzQyIiwgXAotICAgICAgICAgICIwLjEyMTA5NCwgMC4xNzg1MTYsIDAuNTEzNDQsIDAuODEzMTUxLCAxLjIxNjc4LCAyLjAxNzY5LCAyLjUyMjEyIiwgXAotICAgICAgICAgICIwLjEyMTA3NiwgMC4xNzg1NjgsIDAuNTEzNDU1LCAwLjgxNDM4MywgMS4yMTY3NCwgMi4wMjA0NywgMi41MjIwNyIsIFwKLSAgICAgICAgICAiMC4xMjEwMzQsIDAuMTc4NTc1LCAwLjUxMzUzNCwgMC44MTMxMSwgMS4yMTY2NCwgMi4wMjIyMiwgMi41MTk1OCIsIFwKLSAgICAgICAgICAiMC4xMjExMDEsIDAuMTc4NTQzLCAwLjUxMzQ0NCwgMC44MTQzNTEsIDEuMjE2NzgsIDIuMDE2MDIsIDIuNTIxODgiLCBcCi0gICAgICAgICAgIjAuMTIxMDYzLCAwLjE3ODU5LCAwLjUxMzQ1OSwgMC44MTQ2MTgsIDEuMjE2NywgMi4wMTkwNiwgMi41MTk4MyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMzU5MjcsIDAuMTYxNzQyLCAwLjI5OTgyMywgMC40MjA2NzEsIDAuNTgxOTc3LCAwLjkwNDAwNywgMS4xMDU3NyIsIFwKLSAgICAgICAgICAiMC4xNDUzOTEsIDAuMTcxMjA2LCAwLjMwOTI5LCAwLjQzMDEzNSwgMC41OTE0NTQsIDAuOTEzODYzLCAxLjExNTExIiwgXAotICAgICAgICAgICIwLjE1NjgwNiwgMC4xODI2NDgsIDAuMzIwNzM4LCAwLjQ0MTYyMSwgMC42MDI4ODksIDAuOTI1NDE4LCAxLjEyNjYxIiwgXAotICAgICAgICAgICIwLjE2ODI0MiwgMC4xOTQwNjMsIDAuMzMyMTQ3LCAwLjQ1MzAwOSwgMC42MTQxNjQsIDAuOTM2NzQ4LCAxLjEzODE0IiwgXAotICAgICAgICAgICIwLjE3OTQ0NiwgMC4yMDUyOTIsIDAuMzQzMzg2LCAwLjQ2NDI2NSwgMC42MjU1NDIsIDAuOTQ4MDcsIDEuMTQ5MjYiLCBcCi0gICAgICAgICAgIjAuMTk2Nzk3LCAwLjIyMjY2NiwgMC4zNjA3NzYsIDAuNDgxNjMxLCAwLjY0Mjk2LCAwLjk2NTI2NSwgMS4xNjY2MyIsIFwKLSAgICAgICAgICAiMC4yMTEyODUsIDAuMjM3MjM1LCAwLjM3NTM0OSwgMC40OTYyMjksIDAuNjU3NTQsIDAuOTgwMDg0LCAxLjE4MTE5Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwMjc0NywgMC4xNTAxMjksIDAuNDI2MzA4LCAwLjY3NDA3OSwgMS4wMDc1OSwgMS42NzI5NiwgMi4wODgxNCIsIFwKLSAgICAgICAgICAiMC4xMDI3NjIsIDAuMTUwMTQxLCAwLjQyNjM0NSwgMC42NzQ3MzYsIDEuMDA3MzcsIDEuNjcxMDgsIDIuMDkxMDMiLCBcCi0gICAgICAgICAgIjAuMTAyNzEyLCAwLjE1MDE1OCwgMC40MjYzMTgsIDAuNjc1MDQzLCAxLjAwNjEyLCAxLjY3MzE0LCAyLjA4OTg3IiwgXAotICAgICAgICAgICIwLjEwMjc4MywgMC4xNTAxNiwgMC40MjYzOTMsIDAuNjc0NzMxLCAxLjAwNjczLCAxLjY3MTA0LCAyLjA4Njg3IiwgXAotICAgICAgICAgICIwLjEwMjcxNywgMC4xNTAxNCwgMC40MjYzMDksIDAuNjc0OTczLCAxLjAwNzU0LCAxLjY3MDk2LCAyLjA4OTgxIiwgXAotICAgICAgICAgICIwLjEwMjk2NCwgMC4xNTAyODYsIDAuNDI2Mzg2LCAwLjY3NDcyNSwgMS4wMDU0LCAxLjY3MzAzLCAyLjA5MDY0IiwgXAotICAgICAgICAgICIwLjEwMzQ0NSwgMC4xNTA2MTEsIDAuNDI2NDIyLCAwLjY3NDk1NywgMS4wMDU5MywgMS42NzA5OCwgMi4wOTA2MSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNDA1OTksIDAuMTcyMDQyLCAwLjM0Mjg5NSwgMC40OTI5MzcsIDAuNjkyOTg5LCAxLjA5MzEsIDEuMzQzMzciLCBcCi0gICAgICAgICAgIjAuMTQ5NzU5LCAwLjE4MTI1NCwgMC4zNTIxMDEsIDAuNTAyMTM1LCAwLjcwMjIxMywgMS4xMDIzLCAxLjM1MzIyIiwgXAotICAgICAgICAgICIwLjE2MDc5MSwgMC4xOTIyODIsIDAuMzYzMTQ2LCAwLjUxMzE4NCwgMC43MTMyNTgsIDEuMTEzNCwgMS4zNjQyIiwgXAotICAgICAgICAgICIwLjE3MTgxOSwgMC4yMDMzMTIsIDAuMzc0MTg5LCAwLjUyNDIzLCAwLjcyNDMwOCwgMS4xMjQ0NSwgMS4zNzUyNiIsIFwKLSAgICAgICAgICAiMC4xODI0MDEsIDAuMjEzODc2LCAwLjM4NDc2OCwgMC41MzQ4MTMsIDAuNzM0ODc4LCAxLjEzNTE5LCAxLjM4NTM2IiwgXAotICAgICAgICAgICIwLjE5ODA0LCAwLjIyOTUzNCwgMC40MDA0MjgsIDAuNTUwNDc1LCAwLjc1MDcsIDEuMTUwNjcsIDEuNDAxMTciLCBcCi0gICAgICAgICAgIjAuMjEwNzI1LCAwLjI0MjMsIDAuNDEzMjUzLCAwLjU2MzMwMSwgMC43NjM0MjQsIDEuMTYzNywgMS40MTQwMSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMjA2NzksIDAuMTc4MTEyLCAwLjUxMzE1OCwgMC44MTQzNDgsIDEuMjE2NTYsIDIuMDIyMjMsIDIuNTIxNzMiLCBcCi0gICAgICAgICAgIjAuMTIwNzIxLCAwLjE3ODEyMSwgMC41MTMxMTUsIDAuODEzMDYzLCAxLjIxNjY1LCAyLjAyMjE4LCAyLjUyMDI1IiwgXAotICAgICAgICAgICIwLjEyMDc2NywgMC4xNzgxNiwgMC41MTMxMzcsIDAuODE0MjksIDEuMjE2NjEsIDIuMDIwNTksIDIuNTE4MTMiLCBcCi0gICAgICAgICAgIjAuMTIwNzU2LCAwLjE3ODE1MywgMC41MTMxMzQsIDAuODE0Mjc4LCAxLjIxNjYsIDIuMDE2MTEsIDIuNTIxMzYiLCBcCi0gICAgICAgICAgIjAuMTIwNzE1LCAwLjE3ODE2NiwgMC41MTM3OTcsIDAuODEyOTQyLCAxLjIxNjE0LCAyLjAxNzc3LCAyLjUyMTU4IiwgXAotICAgICAgICAgICIwLjEyMTA1NywgMC4xNzgzODgsIDAuNTEzMjgyLCAwLjgxMjkyNSwgMS4yMTYxNSwgMi4wMjIxNCwgMi41MTg5MyIsIFwKLSAgICAgICAgICAiMC4xMjE1OTYsIDAuMTc4ODUzLCAwLjUxMzMwOSwgMC44MTQzMTQsIDEuMjE2NzksIDIuMDE4MTQsIDIuNTE4NTUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTMzMzQsIDAuMTU4OTMxLCAwLjI5Njc1OCwgMC40MTc2MTIsIDAuNTc4ODE2LCAwLjkwMTE4MywgMS4xMDI3MiIsIFwKLSAgICAgICAgICAiMC4xNDMyOTgsIDAuMTY4ODg4LCAwLjMwNjcxOCwgMC40Mjc1NzMsIDAuNTg4OTA0LCAwLjkxMTIzMywgMS4xMTI2NSIsIFwKLSAgICAgICAgICAiMC4xNTUyMTYsIDAuMTgwODI5LCAwLjMxODY0OCwgMC40Mzk1MDYsIDAuNjAwNzc3LCAwLjkyMzQ0NiwgMS4xMjQ1OSIsIFwKLSAgICAgICAgICAiMC4xNjYwNDgsIDAuMTkxNjY1LCAwLjMyOTY4NiwgMC40NTA1NjYsIDAuNjExODMxLCAwLjkzNDM0LCAxLjEzNTYiLCBcCi0gICAgICAgICAgIjAuMTc1MDUyLCAwLjIwMDg0NywgMC4zMzg5NTYsIDAuNDU5ODE0LCAwLjYyMTEyNSwgMC45NDM3NDQsIDEuMTQ0ODEiLCBcCi0gICAgICAgICAgIjAuMTg2NzgsIDAuMjEyNjA4LCAwLjM1MDY2NywgMC40NzE1MjUsIDAuNjMyNzkzLCAwLjk1NTI2LCAxLjE1NjY1IiwgXAotICAgICAgICAgICIwLjE5NTgyNSwgMC4yMjE2MTcsIDAuMzU5NzM0LCAwLjQ4MDYwMSwgMC42NDE3MzcsIDAuOTY0NTc0LCAxLjE2NjE5Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwMjI3NiwgMC4xNDk4NzksIDAuNDI2MzAxLCAwLjY3NDA0OCwgMS4wMDYwMSwgMS42NzE2MiwgMi4wOTA5NyIsIFwKLSAgICAgICAgICAiMC4xMDIzMzksIDAuMTQ5ODU5LCAwLjQyNjIzNiwgMC42NzQ5NTcsIDEuMDA1NTMsIDEuNjcyMDgsIDIuMDg5NzMiLCBcCi0gICAgICAgICAgIjAuMTAyMzUzLCAwLjE0OTg3LCAwLjQyNjI1NywgMC42NzQ5MTksIDEuMDA1NDgsIDEuNjcwOTksIDIuMDg5ODYiLCBcCi0gICAgICAgICAgIjAuMTAyMjQ2LCAwLjE0OTg2NiwgMC40MjYyMzksIDAuNjc0OTkxLCAxLjAwNTUyLCAxLjY3MDk3LCAyLjA4OTY5IiwgXAotICAgICAgICAgICIwLjEwMjMxMSwgMC4xNDk4MjYsIDAuNDI2MjcxLCAwLjY3NDAxMywgMS4wMDczNywgMS42NzExNywgMi4wODgwOSIsIFwKLSAgICAgICAgICAiMC4xMDIxMjIsIDAuMTQ5ODE4LCAwLjQyNjIyNCwgMC42NzQ2ODQsIDEuMDA1OTgsIDEuNjcxMDIsIDIuMDg3NzkiLCBcCi0gICAgICAgICAgIjAuMTAyMDg2LCAwLjE0OTYzMSwgMC40MjY0OSwgMC42NzQwNiwgMS4wMDczOSwgMS42NzEwNCwgMi4wODcwNiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNTEyNDUsIDAuMTgyODQxLCAwLjM1MzgzNywgMC41MDM4NzMsIDAuNzAzOTM2LCAxLjEwNDA2LCAxLjM1NDQ5IiwgXAotICAgICAgICAgICIwLjE2MTY4NiwgMC4xOTMyNzQsIDAuMzY0MjY3LCAwLjUxNDM0LCAwLjcxNDM4MywgMS4xMTQ1MywgMS4zNjUzNiIsIFwKLSAgICAgICAgICAiMC4xNzQ0NDIsIDAuMjA2MDI5LCAwLjM3NzAyMiwgMC41MjcwOSwgMC43MjcxNDQsIDEuMTI3MjksIDEuMzc4MTQiLCBcCi0gICAgICAgICAgIjAuMTg2MTc5LCAwLjIxNzc5NCwgMC4zODg3ODksIDAuNTM4ODI3LCAwLjczODg4MywgMS4xMzkzMywgMS4zODkxOCIsIFwKLSAgICAgICAgICAiMC4xOTYyMzMsIDAuMjI3ODI5LCAwLjM5ODgzNSwgMC41NDg4NzEsIDAuNzQ5MDgxLCAxLjE0OTA3LCAxLjM5OTQ5IiwgXAotICAgICAgICAgICIwLjIwOTUwOCwgMC4yNDExMDUsIDAuNDEyMDk4LCAwLjU2MjE2LCAwLjc2MjIzNSwgMS4xNjIzOSwgMS40MTMyNSIsIFwKLSAgICAgICAgICAiMC4yMTk1OTUsIDAuMjUxMjYsIDAuNDIyMjQ2LCAwLjU3MjI4NywgMC43NzIzOTQsIDEuMTcyNywgMS40MjI5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEyMTAzMSwgMC4xNzg2MjYsIDAuNTEzNjcyLCAwLjgxMzA0MiwgMS4yMTY3MywgMi4wMjI0MSwgMi41MjE4MiIsIFwKLSAgICAgICAgICAiMC4xMjExMTUsIDAuMTc4NTk5LCAwLjUxMzU4NiwgMC44MTQ2ODMsIDEuMjE2NzQsIDIuMDE2NDUsIDIuNTE5MzYiLCBcCi0gICAgICAgICAgIjAuMTIxMDkyLCAwLjE3ODU5LCAwLjUxMzU0OCwgMC44MTQ2MTYsIDEuMjE2NzIsIDIuMDE5MjUsIDIuNTE5NjIiLCBcCi0gICAgICAgICAgIjAuMTIxMTM2LCAwLjE3ODU3NiwgMC41MTQwNDYsIDAuODEzMjI1LCAxLjIxNjUyLCAyLjAxODUzLCAyLjUxOTMiLCBcCi0gICAgICAgICAgIjAuMTIxMDUsIDAuMTc4NTU1LCAwLjUxNDA3NSwgMC44MTMwNTMsIDEuMjE1MzIsIDIuMDIyMjQsIDIuNTE5MzUiLCBcCi0gICAgICAgICAgIjAuMTIxMTQ4LCAwLjE3ODYxLCAwLjUxMzQ2MSwgMC44MTQ1MjEsIDEuMjE2NzIsIDIuMDE3NTMsIDIuNTIwMTQiLCBcCi0gICAgICAgICAgIjAuMTIwOTM1LCAwLjE3ODQzOSwgMC41MTM0MTIsIDAuODEzMDAzLCAxLjIxNjc3LCAyLjAxODM3LCAyLjUyMTY4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4OTMyOSwgMC4xMTUwNCwgMC4yNTI5OTUsIDAuMzczODk5LCAwLjUzNTA2MiwgMC44NTc1MTMsIDEuMDU4ODMiLCBcCi0gICAgICAgICAgIjAuMDk4NTQ5LCAwLjEyNDI2OCwgMC4yNjIyMTksIDAuMzgzMTE1LCAwLjU0NDI5NCwgMC44NjY3MzgsIDEuMDY4MyIsIFwKLSAgICAgICAgICAiMC4xMTAyNTMsIDAuMTM1OTQsIDAuMjczODgzLCAwLjM5NDc1NCwgMC41NTU5NTYsIDAuODc4NDA0LCAxLjA3OTk0IiwgXAotICAgICAgICAgICIwLjEyMTQ0MiwgMC4xNDcwNjMsIDAuMjg1MDE4LCAwLjQwNTg1MSwgMC41NjcwODEsIDAuODg5NSwgMS4wOTExNSIsIFwKLSAgICAgICAgICAiMC4xMzEyODcsIDAuMTU2OTUsIDAuMjk0ODg3LCAwLjQxNTc0NCwgMC41NzY5NzksIDAuODk5NDY0LCAxLjEwMDc5IiwgXAotICAgICAgICAgICIwLjE0NTA5MiwgMC4xNzA3ODYsIDAuMzA4ODMyLCAwLjQyOTY3LCAwLjU5MDkyNywgMC45MTM0NjgsIDEuMTE0NjYiLCBcCi0gICAgICAgICAgIjAuMTU1NjI0LCAwLjE4MTQ2LCAwLjMxOTU2LCAwLjQ0MDQxMSwgMC42MDE1NjQsIDAuOTI0MTYxLCAxLjEyNTc2Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwMTIzOSwgMC4xNDkxMDksIDAuNDI1ODgzLCAwLjY3NTAzNiwgMS4wMDc3NSwgMS42NzExNiwgMi4wODk4NSIsIFwKLSAgICAgICAgICAiMC4xMDEwMzIsIDAuMTQ4OTYyLCAwLjQyNTkyNCwgMC42NzUwMjMsIDEuMDA3NjgsIDEuNjcwMTQsIDIuMDg4NDUiLCBcCi0gICAgICAgICAgIjAuMTAwNjQsIDAuMTQ4NjcxLCAwLjQyNTgxMSwgMC42NzQ5MjEsIDEuMDA3NjksIDEuNjcwMTUsIDIuMDg4NTEiLCBcCi0gICAgICAgICAgIjAuMTAwNDM4LCAwLjE0ODUwMSwgMC40MjU3NTQsIDAuNjc0NDg3LCAxLjAwNzQ5LCAxLjY3MDQxLCAyLjA4ODEyIiwgXAotICAgICAgICAgICIwLjEwMDU5OCwgMC4xNDg1NDEsIDAuNDI1ODg1LCAwLjY3MzkxMywgMS4wMDc0NywgMS42NzEwNSwgMi4wODk1OSIsIFwKLSAgICAgICAgICAiMC4xMDEyMiwgMC4xNDg5NjQsIDAuNDI2NDUsIDAuNjc0NjY5LCAxLjAwNTU1LCAxLjY3MDk4LCAyLjA4OTciLCBcCi0gICAgICAgICAgIjAuMTAxOTM3LCAwLjE0OTM5MSwgMC40MjY1OTYsIDAuNjc0MTUzLCAxLjAwNzQ1LCAxLjY3MTAyLCAyLjA4Nzk5Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwMzA4NCwgMC4xMzQ0NDQsIDAuMzA1MTY4LCAwLjQ1NTE4NCwgMC42NTUyMTgsIDEuMDU1MywgMS4zMDU5NyIsIFwKLSAgICAgICAgICAiMC4xMTE5MywgMC4xNDMyOTIsIDAuMzE0MDI3LCAwLjQ2NDA1NCwgMC42NjQwOTUsIDEuMDY0ODEsIDEuMzE1MDYiLCBcCi0gICAgICAgICAgIjAuMTIzMDk4LCAwLjE1NDQ2NywgMC4zMjUyMjYsIDAuNDc1MjY0LCAwLjY3NTMsIDEuMDc1NDgsIDEuMzI2MjQiLCBcCi0gICAgICAgICAgIjAuMTMzNDgzLCAwLjE2NDgwNSwgMC4zMzU1NzcsIDAuNDg1NTk3LCAwLjY4NTc1NywgMS4wODU3NiwgMS4zMzU4NyIsIFwKLSAgICAgICAgICAiMC4xNDI0MTEsIDAuMTczODMxLCAwLjM0NDU5LCAwLjQ5NDYzNSwgMC42OTQ2NjYsIDEuMDk0OCwgMS4zNDU0NCIsIFwKLSAgICAgICAgICAiMC4xNTQ5NzUsIDAuMTg2Mzc1LCAwLjM1NzI2OSwgMC41MDcyOTQsIDAuNzA3MzMyLCAxLjEwNzQ3LCAxLjM1ODIzIiwgXAotICAgICAgICAgICIwLjE2NDMxOCwgMC4xOTU4ODIsIDAuMzY2ODgsIDAuNTE2OTExLCAwLjcxNjk3NiwgMS4xMTcxNSwgMS4zNjc1NyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTk1MTEsIDAuMTc3MzM1LCAwLjUxMzE0NSwgMC44MTI5NDMsIDEuMjE2NDksIDIuMDIyMDksIDIuNTE4NTgiLCBcCi0gICAgICAgICAgIjAuMTE5MzY5LCAwLjE3NzIzMywgMC41MTMwMDcsIDAuODE0MDA5LCAxLjIxNjU0LCAyLjAxOTYzLCAyLjUxOTk0IiwgXAotICAgICAgICAgICIwLjExOTAyNywgMC4xNzcwMDMsIDAuNTEzMDYsIDAuODE0MDA1LCAxLjIxNjUxLCAyLjAxNjQ2LCAyLjUxODAyIiwgXAotICAgICAgICAgICIwLjExODkwMywgMC4xNzY5MTcsIDAuNTEzMDEyLCAwLjgxMjc5LCAxLjIxNDE2LCAyLjAyMjE2LCAyLjUyNDA4IiwgXAotICAgICAgICAgICIwLjExOTA0OSwgMC4xNzcsIDAuNTEzMTU3LCAwLjgxNDA5NywgMS4yMTY0NywgMi4wMjIwOSwgMi41MTg0OCIsIFwKLSAgICAgICAgICAiMC4xMTk1NjcsIDAuMTc3Mzk4LCAwLjUxMzAzMSwgMC44MTQyMzksIDEuMjE2NTMsIDIuMDIyMTUsIDIuNTE4MDIiLCBcCi0gICAgICAgICAgIjAuMTE5OTQxLCAwLjE3Nzg1OSwgMC41MTMyOTIsIDAuODEyOTU0LCAxLjIxNjcsIDIuMDE4ODYsIDIuNTIxMzciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk2MDM0LCAwLjEyMTU2NSwgMC4yNTkzMTksIDAuMzgwMTc2LCAwLjU0MTM4MywgMC44NjM2NzQsIDEuMDY0OTYiLCBcCi0gICAgICAgICAgIjAuMTA2MDAyLCAwLjEzMTUxNCwgMC4yNjkyNjYsIDAuMzkwMTE5LCAwLjU1MTM0NywgMC44NzM3NSwgMS4wNzU0MyIsIFwKLSAgICAgICAgICAiMC4xMTY5OTcsIDAuMTQyNTE5LCAwLjI4MDI3MywgMC40MDExMjksIDAuNTYyMzM3LCAwLjg4NDY5MywgMS4wODY1MiIsIFwKLSAgICAgICAgICAiMC4xMjUxNzYsIDAuMTUwNjU3LCAwLjI4ODQzNiwgMC40MDkzMDUsIDAuNTcwNDk4LCAwLjg5Mjg1MiwgMS4wOTQzMSIsIFwKLSAgICAgICAgICAiMC4xMzE1OCwgMC4xNTcwODYsIDAuMjk0ODMsIDAuNDE1NjkyLCAwLjU3Njg0LCAwLjg5OTI1MywgMS4xMDA3MiIsIFwKLSAgICAgICAgICAiMC4xNDA2MTcsIDAuMTY1ODU5LCAwLjMwMzcxMiwgMC40MjQ2MTMsIDAuNTg1NzIzLCAwLjkwODU2NywgMS4xMDk2MiIsIFwKLSAgICAgICAgICAiMC4xNDcwNTcsIDAuMTcyMzA2LCAwLjMwOTkxMSwgMC40MzA5MTcsIDAuNTkxOTk5LCAwLjkxNDI4LCAxLjExNjYxIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwMDQ0NCwgMC4xNDgyMiwgMC40MjU1NTYsIDAuNjc0NTE5LCAxLjAwNzUyLCAxLjY2OTM3LCAyLjA5MDg5IiwgXAotICAgICAgICAgICIwLjEwMDQsIDAuMTQ4MjMzLCAwLjQyNTUzNSwgMC42NzM4MzUsIDEuMDA3NTUsIDEuNjcwMzcsIDIuMDg4MSIsIFwKLSAgICAgICAgICAiMC4xMDAyNjUsIDAuMTQ4MTMsIDAuNDI1NTA0LCAwLjY3Mzc3NCwgMS4wMDc1MiwgMS42NzIsIDIuMDg4MzEiLCBcCi0gICAgICAgICAgIjAuMTAwMTEzLCAwLjE0ODAxMSwgMC40MjU4NTIsIDAuNjc0NDkyLCAxLjAwNzM0LCAxLjY3MzI1LCAyLjA4OTY5IiwgXAotICAgICAgICAgICIwLjA5OTg0OSwgMC4xNDc4MTgsIDAuNDI1MjM2LCAwLjY3Mzc2MywgMS4wMDc0OSwgMS42NzA2MiwgMi4wODgwNSIsIFwKLSAgICAgICAgICAiMC4wOTk4NzEsIDAuMTQ3NDY5LCAwLjQyNTY1NiwgMC42NzQ0OCwgMS4wMDc0MSwgMS42NzA5MSwgMi4wODY3NSIsIFwKLSAgICAgICAgICAiMC4wOTk2ODIsIDAuMTQ3Mzg3LCAwLjQyNTYxNCwgMC42NzQ0MTYsIDEuMDA1NjUsIDEuNjczODksIDIuMDg2NzciKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTA5ODUyLCAwLjE0MTM1OSwgMC4zMTIyMzIsIDAuNDYyMjcxLCAwLjY2MjMxNCwgMS4wNjI0OSwgMS4zMTI2NSIsIFwKLSAgICAgICAgICAiMC4xMjAzMzQsIDAuMTUxODYzLCAwLjMyMjc0OSwgMC40NzI3NywgMC42NzI4MTYsIDEuMDcyOTMsIDEuMzIzNzEiLCBcCi0gICAgICAgICAgIjAuMTMyMDE3LCAwLjE2MzUzOSwgMC4zMzQ0MjcsIDAuNDg0NDQ5LCAwLjY4NDUwMiwgMS4wODQ2MiwgMS4zMzQ5NSIsIFwKLSAgICAgICAgICAiMC4xNDExNTMsIDAuMTcyNjI2LCAwLjM0MzUyMiwgMC40OTM1NTgsIDAuNjkzNTg4LCAxLjA5MzkzLCAxLjM0NDE2IiwgXAotICAgICAgICAgICIwLjE0ODY0OCwgMC4xODAxNDcsIDAuMzUxMDIsIDAuNTAxMDU5LCAwLjcwMTE2NSwgMS4xMDEyMiwgMS4zNTE1OSIsIFwKLSAgICAgICAgICAiMC4xNTg3NjQsIDAuMTkwMTk3LCAwLjM2MTEzMSwgMC41MTExNTIsIDAuNzExMTk5LCAxLjExMTMyLCAxLjM2MjA0IiwgXAotICAgICAgICAgICIwLjE2NjU1NywgMC4xOTc5MDEsIDAuMzY4Nzc5LCAwLjUxODgzMiwgMC43MTg4NSwgMS4xMTkyNSwgMS4zNjk1MiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMjAwNzUsIDAuMTc3ODc0LCAwLjUxMzkzNCwgMC44MTI1ODcsIDEuMjE2NywgMi4wMjE5MSwgMi41MjU4IiwgXAotICAgICAgICAgICIwLjEyMDAxOSwgMC4xNzc4NjcsIDAuNTEzMTI4LCAwLjgxNDAwNiwgMS4yMTY1OSwgMi4wMjIyNCwgMi41MTk0NyIsIFwKLSAgICAgICAgICAiMC4xMTk4NzksIDAuMTc3NzcxLCAwLjUxMjYzLCAwLjgxMzAyNiwgMS4yMTY1NiwgMi4wMjIyMSwgMi41MjE3IiwgXAotICAgICAgICAgICIwLjExOTc0MSwgMC4xNzc2NDQsIDAuNTEzMzgzLCAwLjgxMzM4OCwgMS4yMTY0NiwgMi4wMjA2NywgMi41MTkyNiIsIFwKLSAgICAgICAgICAiMC4xMTk1ODMsIDAuMTc3NTM2LCAwLjUxMzIyNiwgMC44MTMzNzgsIDEuMjE1NDcsIDIuMDIyMTcsIDIuNTIxMTYiLCBcCi0gICAgICAgICAgIjAuMTE5MzUyLCAwLjE3NzI2LCAwLjUxMzkwNywgMC44MTM2OTEsIDEuMjE2NTMsIDIuMDIyMTcsIDIuNTE5NzEiLCBcCi0gICAgICAgICAgIjAuMTE5MTMzLCAwLjE3NzE4NiwgMC41MTM3NzksIDAuODE0NDkxLCAxLjIxNjUsIDIuMDE5MTIsIDIuNTE4NzciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDk1MTUsIDAuMDA5NTI1LCAwLjAwOTU0MywgMC4wMDk1NDcsIDAuMDA5NTUsIDAuMDA5NTUxLCAwLjAwOTU1MiIsIFwKLSAgICAgICAgICAiMC4wMDk0OSwgMC4wMDk1LCAwLjAwOTUxOCwgMC4wMDk1MjIsIDAuMDA5NTI0LCAwLjAwOTUyNywgMC4wMDk1MjYiLCBcCi0gICAgICAgICAgIjAuMDA5NDc5LCAwLjAwOTQ4OSwgMC4wMDk1MDYsIDAuMDA5NTExLCAwLjAwOTUxMywgMC4wMDk1MTUsIDAuMDA5NTE2IiwgXAotICAgICAgICAgICIwLjAwOTQ4MiwgMC4wMDk0OTIsIDAuMDA5NTEsIDAuMDA5NTE1LCAwLjAwOTUxNywgMC4wMDk1MTksIDAuMDA5NTIiLCBcCi0gICAgICAgICAgIjAuMDA5NDg1LCAwLjAwOTQ5NSwgMC4wMDk1MTMsIDAuMDA5NTE4LCAwLjAwOTUyLCAwLjAwOTUyMiwgMC4wMDk1MjMiLCBcCi0gICAgICAgICAgIjAuMDA5NTA2LCAwLjAwOTUxNiwgMC4wMDk1MzMsIDAuMDA5NTM5LCAwLjAwOTU0MiwgMC4wMDk1NDQsIDAuMDA5NTQ1IiwgXAotICAgICAgICAgICIwLjAwOTUyOCwgMC4wMDk1MzgsIDAuMDA5NTU3LCAwLjAwOTU2MSwgMC4wMDk1NjQsIDAuMDA5NTY2LCAwLjAwOTU2NyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwOTIyOSwgMC4wMDkyNDQsIDAuMDA5MjczLCAwLjAwOTI4LCAwLjAwOTI4NCwgMC4wMDkyODgsIDAuMDA5Mjg5IiwgXAotICAgICAgICAgICIwLjAwOTE5LCAwLjAwOTIwNSwgMC4wMDkyMzQsIDAuMDA5MjQxLCAwLjAwOTI0NiwgMC4wMDkyNDksIDAuMDA5MjUiLCBcCi0gICAgICAgICAgIjAuMDA5MTcyLCAwLjAwOTE4NywgMC4wMDkyMTYsIDAuMDA5MjIzLCAwLjAwOTIyOCwgMC4wMDkyMzIsIDAuMDA5MjMzIiwgXAotICAgICAgICAgICIwLjAwOTE3NCwgMC4wMDkxODksIDAuMDA5MjE4LCAwLjAwOTIyNSwgMC4wMDkyMjksIDAuMDA5MjMzLCAwLjAwOTIzNCIsIFwKLSAgICAgICAgICAiMC4wMDkxODMsIDAuMDA5MTk3LCAwLjAwOTIyNiwgMC4wMDkyMzQsIDAuMDA5MjM4LCAwLjAwOTI0MiwgMC4wMDkyNDMiLCBcCi0gICAgICAgICAgIjAuMDA5MjEyLCAwLjAwOTIyNywgMC4wMDkyNTYsIDAuMDA5MjY0LCAwLjAwOTI2OSwgMC4wMDkyNzMsIDAuMDA5Mjc0IiwgXAotICAgICAgICAgICIwLjAwOTIzLCAwLjAwOTI0NSwgMC4wMDkyNzUsIDAuMDA5MjgyLCAwLjAwOTI4NywgMC4wMDkyOTEsIDAuMDA5MjkyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1MTIzLCAwLjAwNTEzMiwgMC4wMDUxNDUsIDAuMDA1MTQ4LCAwLjAwNTE1MSwgMC4wMDUxNTEsIDAuMDA1MTUxIiwgXAotICAgICAgICAgICIwLjAwNTEzOSwgMC4wMDUxNDgsIDAuMDA1MTYyLCAwLjAwNTE2NSwgMC4wMDUxNjcsIDAuMDA1MTY4LCAwLjAwNTE2OCIsIFwKLSAgICAgICAgICAiMC4wMDUxOTUsIDAuMDA1MjA0LCAwLjAwNTIxOSwgMC4wMDUyMjMsIDAuMDA1MjI1LCAwLjAwNTIyNiwgMC4wMDUyMjciLCBcCi0gICAgICAgICAgIjAuMDA1MjY3LCAwLjAwNTI3NiwgMC4wMDUyOTMsIDAuMDA1Mjk3LCAwLjAwNTMsIDAuMDA1MzAxLCAwLjAwNTMwMiIsIFwKLSAgICAgICAgICAiMC4wMDUzMTcsIDAuMDA1MzI2LCAwLjAwNTM0NCwgMC4wMDUzNDksIDAuMDA1MzUxLCAwLjAwNTM1NCwgMC4wMDUzNTQiLCBcCi0gICAgICAgICAgIjAuMDA1NDIyLCAwLjAwNTQyNywgMC4wMDU0NDYsIDAuMDA1NDUyLCAwLjAwNTQ1NCwgMC4wMDU0NTcsIDAuMDA1NDU3IiwgXAotICAgICAgICAgICIwLjAwNTQ3NiwgMC4wMDU0ODYsIDAuMDA1NTA1LCAwLjAwNTUxMSwgMC4wMDU1MTMsIDAuMDA1NTE3LCAwLjAwNTUxOCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjAyMywgMC4wMDYwMzksIDAuMDA2MDY3LCAwLjAwNjA3MywgMC4wMDYwNzcsIDAuMDA2MDgxLCAwLjAwNjA4MiIsIFwKLSAgICAgICAgICAiMC4wMDYwMDEsIDAuMDA2MDE2LCAwLjAwNjA0NCwgMC4wMDYwNTEsIDAuMDA2MDU1LCAwLjAwNjA1OCwgMC4wMDYwNTkiLCBcCi0gICAgICAgICAgIjAuMDA2MDQ4LCAwLjAwNjA2MywgMC4wMDYwOTEsIDAuMDA2MDk4LCAwLjAwNjEwMiwgMC4wMDYxMDYsIDAuMDA2MTA3IiwgXAotICAgICAgICAgICIwLjAwNjEyMywgMC4wMDYxMzcsIDAuMDA2MTY1LCAwLjAwNjE3MiwgMC4wMDYxNzcsIDAuMDA2MTgxLCAwLjAwNjE4MiIsIFwKLSAgICAgICAgICAiMC4wMDYxNzcsIDAuMDA2MTkxLCAwLjAwNjIxOSwgMC4wMDYyMjcsIDAuMDA2MjMxLCAwLjAwNjIzNiwgMC4wMDYyMzciLCBcCi0gICAgICAgICAgIjAuMDA2MjkzLCAwLjAwNjMwNywgMC4wMDYzMzUsIDAuMDA2MzQzLCAwLjAwNjM0OCwgMC4wMDYzNTIsIDAuMDA2MzU0IiwgXAotICAgICAgICAgICIwLjAwNjM2MSwgMC4wMDYzNzQsIDAuMDA2NDAzLCAwLjAwNjQxMSwgMC4wMDY0MTYsIDAuMDA2NDIsIDAuMDA2NDIyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzNzA2LCAwLjAwMzcxMywgMC4wMDM3MjMsIDAuMDAzNzI1LCAwLjAwMzcyNiwgMC4wMDM3MjgsIDAuMDAzNzI5IiwgXAotICAgICAgICAgICIwLjAwMzcxNSwgMC4wMDM3MjIsIDAuMDAzNzMxLCAwLjAwMzczNiwgMC4wMDM3MzUsIDAuMDAzNzM3LCAwLjAwMzczOSIsIFwKLSAgICAgICAgICAiMC4wMDM3NiwgMC4wMDM3NjcsIDAuMDAzNzc5LCAwLjAwMzc4LCAwLjAwMzc4MywgMC4wMDM3ODUsIDAuMDAzNzg2IiwgXAotICAgICAgICAgICIwLjAwMzgwMiwgMC4wMDM4MSwgMC4wMDM4MiwgMC4wMDM4MjIsIDAuMDAzODI1LCAwLjAwMzgyNiwgMC4wMDM4MjgiLCBcCi0gICAgICAgICAgIjAuMDAzODU4LCAwLjAwMzg2NiwgMC4wMDM4NzgsIDAuMDAzODgxLCAwLjAwMzg4NCwgMC4wMDM4ODUsIDAuMDAzODg1IiwgXAotICAgICAgICAgICIwLjAwMzkyOCwgMC4wMDM5MywgMC4wMDM5NSwgMC4wMDM5NTMsIDAuMDAzOTU0LCAwLjAwMzk0OSwgMC4wMDM5NDkiLCBcCi0gICAgICAgICAgIjAuMDA0LCAwLjAwMzk5MSwgMC4wMDQwMDQsIDAuMDA0MDIyLCAwLjAwNDAwOSwgMC4wMDQwMTEsIDAuMDA0MDI3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyOTE5LCAwLjAwMjkzLCAwLjAwMjk0NiwgMC4wMDI5NDksIDAuMDAyOTUxLCAwLjAwMjk1MywgMC4wMDI5NTMiLCBcCi0gICAgICAgICAgIjAuMDAyOTI4LCAwLjAwMjkzOCwgMC4wMDI5NTUsIDAuMDAyOTU5LCAwLjAwMjk2MSwgMC4wMDI5NjMsIDAuMDAyOTYzIiwgXAotICAgICAgICAgICIwLjAwMjk4OCwgMC4wMDI5OTksIDAuMDAzMDE4LCAwLjAwMzAyMiwgMC4wMDMwMjQsIDAuMDAzMDI2LCAwLjAwMzAyNyIsIFwKLSAgICAgICAgICAiMC4wMDMwMjksIDAuMDAzMDQsIDAuMDAzMDU5LCAwLjAwMzA2MywgMC4wMDMwNjYsIDAuMDAzMDY4LCAwLjAwMzA2OSIsIFwKLSAgICAgICAgICAiMC4wMDMwNzgsIDAuMDAzMDg5LCAwLjAwMzEwOCwgMC4wMDMxMTMsIDAuMDAzMTE2LCAwLjAwMzExOCwgMC4wMDMxMTkiLCBcCi0gICAgICAgICAgIjAuMDAzMTY1LCAwLjAwMzE3NiwgMC4wMDMxOTYsIDAuMDAzMjAxLCAwLjAwMzIwNCwgMC4wMDMyMDcsIDAuMDAzMjA3IiwgXAotICAgICAgICAgICIwLjAwMzIyNywgMC4wMDMyMzgsIDAuMDAzMjU3LCAwLjAwMzI2MiwgMC4wMDMyNjYsIDAuMDAzMjY4LCAwLjAwMzI2OSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IFhOT1IzWEwgKgotICogLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoWE5PUjNYTCkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjMwNTI4MzsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNzM1NDAyOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDczNTEyNTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA3MzU0MDI7Ci0gIH0KLSAgcGluKEIpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTkwMDExOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTg5OTc1OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTkwMDExOwotICB9Ci0gIHBpbihDKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE0MzE0ODsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE0MzA3OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTQzMTQ4OwotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMTQzMTQ3OwotICAgIGZ1bmN0aW9uIDogIighKChBXkIpXkMpKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTgyMjkyLCAwLjE5NzIwNSwgMC4zMjkxMDYsIDAuNTQ4MjQ3LCAwLjc2NzMxNywgMS4yNzkyNCwgMS41NzA5NyIsIFwKLSAgICAgICAgICAiMC4xOTIyNDIsIDAuMjA3MTYzLCAwLjMzOTA1NCwgMC41NTgxNzksIDAuNzc3MjU1LCAxLjI4OTMxLCAxLjU4MDgiLCBcCi0gICAgICAgICAgIjAuMjA0NzkyLCAwLjIxOTY5OCwgMC4zNTE2MSwgMC41NzA3NDUsIDAuNzg5ODE4LCAxLjMwMTc2LCAxLjU5MzUzIiwgXAotICAgICAgICAgICIwLjIxNzE5NywgMC4yMzIxMDgsIDAuMzY0MDI1LCAwLjU4MzI0NCwgMC44MDIyMTQsIDEuMzE0MDcsIDEuNjA2MjQiLCBcCi0gICAgICAgICAgIjAuMjI5NCwgMC4yNDQzMDgsIDAuMzc2MjM1LCAwLjU5NTM3OSwgMC44MTQ0NTksIDEuMzI2MzUsIDEuNjE4MjQiLCBcCi0gICAgICAgICAgIjAuMjQ3ODMzLCAwLjI2Mjc0NiwgMC4zOTQ2NTUsIDAuNjEzODQ3LCAwLjgzMjg4MiwgMS4zNDQwNCwgMS42MzY0MiIsIFwKLSAgICAgICAgICAiMC4yNjI4MjMsIDAuMjc3NzI3LCAwLjQwOTY0MSwgMC42Mjg3NywgMC44NDc4OCwgMS4zNTkxMywgMS42NTE0MiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNjc2MTMsIDAuMTk2NDYsIDAuNDYxNTY5LCAwLjkwODA1OSwgMS4zNTczOSwgMi40MDQ0NSwgMy4wMDMyMiIsIFwKLSAgICAgICAgICAiMC4xNjc2MTcsIDAuMTk2NDc4LCAwLjQ2MTU3MiwgMC45MDgxMjksIDEuMzU3MjcsIDIuNDA5MDYsIDMuMDAyNCIsIFwKLSAgICAgICAgICAiMC4xNjc2MzIsIDAuMTk2NDcsIDAuNDYxNTYzLCAwLjkwODE1NSwgMS4zNTczMiwgMi40MDQ1LCAzLjAwMzE0IiwgXAotICAgICAgICAgICIwLjE2NzYwMiwgMC4xOTY0OTcsIDAuNDYxNTgzLCAwLjkwODE1MSwgMS4zNTkyMiwgMi40MDQzOSwgMy4wMDMyNSIsIFwKLSAgICAgICAgICAiMC4xNjc2MDMsIDAuMTk2NTQxLCAwLjQ2MTU5NiwgMC45MDgxMzQsIDEuMzU3MzUsIDIuNDA0NDMsIDMuMDAyOTkiLCBcCi0gICAgICAgICAgIjAuMTY3NjksIDAuMTk2NTY5LCAwLjQ2MTE0MiwgMC45MDk4MjMsIDEuMzU4MzQsIDIuNDA5MDYsIDMuMDAyMTUiLCBcCi0gICAgICAgICAgIjAuMTY3OTU5LCAwLjE5NjgxMiwgMC40NjE1NjMsIDAuOTA5MzY5LCAxLjM1ODI5LCAyLjQwNDM4LCAzLjAwMzY0Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE1ODY0MSwgMC4xNjkzODksIDAuMjYxMjE3LCAwLjQxMTMxNiwgMC41NjEzMjEsIDAuOTExNDcyLCAxLjExMTU1IiwgXAotICAgICAgICAgICIwLjE2ODI3MSwgMC4xNzkwMTEsIDAuMjcwODU3LCAwLjQyMDk0OCwgMC41NzA5NDcsIDAuOTIwOTk1LCAxLjEyMTE2IiwgXAotICAgICAgICAgICIwLjE4MDQzNiwgMC4xOTExODUsIDAuMjgzMDIzLCAwLjQzMzEzMSwgMC41ODMxMzQsIDAuOTMzMjg4LCAxLjEzMzM2IiwgXAotICAgICAgICAgICIwLjE5MjM4MSwgMC4yMDMxMzIsIDAuMjk0OTc0LCAwLjQ0NTA4OSwgMC41OTUwODYsIDAuOTQ1MjUzLCAxLjE0NTMiLCBcCi0gICAgICAgICAgIjAuMjAzODI3LCAwLjIxNDU4MiwgMC4zMDY0MjgsIDAuNDU2NTQ5LCAwLjYwNjU0NiwgMC45NTY3MSwgMS4xNTY3NyIsIFwKLSAgICAgICAgICAiMC4yMjA4NjcsIDAuMjMxNjM0LCAwLjMyMzQ5NCwgMC40NzM2MjYsIDAuNjIzNjE5LCAwLjk3Mzc2MywgMS4xNzM5MiIsIFwKLSAgICAgICAgICAiMC4yMzQ1MywgMC4yNDUyOTIsIDAuMzM3MTg5LCAwLjQ4NzMyNSwgMC42MzczMTksIDAuOTg3NDY1LCAxLjE4NzU5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEyMDI4OCwgMC4xMzkzNzEsIDAuMzE0MjcxLCAwLjYxMjg5MSwgMC45MTM2NjQsIDEuNjE0OTQsIDIuMDIwOTkiLCBcCi0gICAgICAgICAgIjAuMTIwMjQ3LCAwLjEzOTM3NiwgMC4zMTQxMzgsIDAuNjEyODkxLCAwLjkxMjU3NCwgMS42MTc4LCAyLjAxOTYzIiwgXAotICAgICAgICAgICIwLjEyMDI5MiwgMC4xMzkzOTUsIDAuMzE0MTEzLCAwLjYxMjkwNywgMC45MTMzMDUsIDEuNjE3ODMsIDIuMDE0NjEiLCBcCi0gICAgICAgICAgIjAuMTIwMzMsIDAuMTM5NDE0LCAwLjMxNDMxNiwgMC42MTI5MDYsIDAuOTEyOTMzLCAxLjYxNzk0LCAyLjAxNDc4IiwgXAotICAgICAgICAgICIwLjEyMDM2LCAwLjEzOTQzMiwgMC4zMTQzNzUsIDAuNjEyOTI4LCAwLjkxMzI4MywgMS42MTQ5OCwgMi4wMTQ3MyIsIFwKLSAgICAgICAgICAiMC4xMjA1NCwgMC4xMzk1OTMsIDAuMzE0NDEsIDAuNjEzMDA2LCAwLjkxMzMxLCAxLjYxNzkzLCAyLjAxNTQ0IiwgXAotICAgICAgICAgICIwLjEyMDk5NCwgMC4xMzk5OTcsIDAuMzE0NTUxLCAwLjYxMzA0OSwgMC45MTMzNDksIDEuNjE0MzUsIDIuMDE3ODYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjE5OTYyLCAwLjIzNDgzLCAwLjM2NjY2LCAwLjU4NTg3OCwgMC44MDUwNTIsIDEuMzE2NzcsIDEuNjA4NDEiLCBcCi0gICAgICAgICAgIjAuMjI5ODE1LCAwLjI0NDY4MywgMC4zNzY1MjEsIDAuNTk1NzM1LCAwLjgxNDkzNiwgMS4zMjY1OSwgMS42MTgyMiIsIFwKLSAgICAgICAgICAiMC4yNDIyMzcsIDAuMjU3MTA1LCAwLjM4ODkzNCwgMC42MDgxNTUsIDAuODI3Mjg4LCAxLjMzODksIDEuNjMwNTMiLCBcCi0gICAgICAgICAgIjAuMjU0MjkzLCAwLjI2OTE4MSwgMC40MDEwMTUsIDAuNjIwMDgxLCAwLjgzOTI1LCAxLjM1MDg2LCAxLjY0Mjc0IiwgXAotICAgICAgICAgICIwLjI2NTIyLCAwLjI4MDA3OSwgMC40MTE5MTksIDAuNjMwOTg5LCAwLjg1MDE1OCwgMS4zNjE3MiwgMS42NTM1OSIsIFwKLSAgICAgICAgICAiMC4yODA5MTgsIDAuMjk1Nzg2LCAwLjQyNzYxNiwgMC42NDY4MzcsIDAuODY2MTI1LCAxLjM3NzY0LCAxLjY2OTQyIiwgXAotICAgICAgICAgICIwLjI5Mjk0NSwgMC4zMDc4MTgsIDAuNDM5Njc3LCAwLjY1ODksIDAuODc3ODE2LCAxLjM4OTcxLCAxLjY4MTY5Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE2NzM0NCwgMC4xOTYwOTYsIDAuNDYxMzA5LCAwLjkwNzczNiwgMS4zNTY1NywgMi40MDQ0NywgMy4wMDIwNSIsIFwKLSAgICAgICAgICAiMC4xNjczNDEsIDAuMTk2MDc5LCAwLjQ2MTMzOCwgMC45MDc3MzUsIDEuMzU2NzQsIDIuNDA0NDUsIDMuMDAyIiwgXAotICAgICAgICAgICIwLjE2NzM0NSwgMC4xOTYwOTUsIDAuNDYxMzAxLCAwLjkwNzczMSwgMS4zNTY1OCwgMi40MDQzNiwgMy4wMDI0MiIsIFwKLSAgICAgICAgICAiMC4xNjczMTQsIDAuMTk2MTE0LCAwLjQ2MDk2NiwgMC45MDkzNzEsIDEuMzU3MjgsIDIuNDA0MjksIDMuMDAyMDEiLCBcCi0gICAgICAgICAgIjAuMTY3MzQ2LCAwLjE5NjExNCwgMC40NjA5ODcsIDAuOTA4MTQsIDEuMzU3MzQsIDIuNDA0MywgMy4wMDIxNiIsIFwKLSAgICAgICAgICAiMC4xNjczNTksIDAuMTk2MTI4LCAwLjQ2MTMwNywgMC45MDk1NTUsIDEuMzU2NjEsIDIuNDA0NCwgMy4wMDgzNiIsIFwKLSAgICAgICAgICAiMC4xNjczNjEsIDAuMTk2MjA3LCAwLjQ2MTM5MiwgMC45MDc3NzksIDEuMzU5MTksIDIuNDA0NDIsIDMuMDAzMDYiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTkyMjgxLCAwLjIwMjk3MywgMC4yOTQ1NDgsIDAuNDQ0NjEyLCAwLjU5NDY0OCwgMC45NDQ4MjMsIDEuMTQ0ODUiLCBcCi0gICAgICAgICAgIjAuMjAyNDIzLCAwLjIxMzA3OSwgMC4zMDQ2NDcsIDAuNDU0NzEsIDAuNjA0NzQ1LCAwLjk1NTE1NCwgMS4xNTQ5IiwgXAotICAgICAgICAgICIwLjIxNTIxNywgMC4yMjU4NzQsIDAuMzE3NDQxLCAwLjQ2NzUwNSwgMC42MTc1MzgsIDAuOTY3ODgzLCAxLjE2NzciLCBcCi0gICAgICAgICAgIjAuMjI4MDAxLCAwLjIzODY5LCAwLjMzMDI3NSwgMC40ODAzMzcsIDAuNjMwMzY2LCAwLjk4MDU4NSwgMS4xODEwNiIsIFwKLSAgICAgICAgICAiMC4yMzk3NzgsIDAuMjUwNDYyLCAwLjM0MjAzOSwgMC40OTIxMDIsIDAuNjQyMTQ4LCAwLjk5MjU0NSwgMS4xOTIyOCIsIFwKLSAgICAgICAgICAiMC4yNTY1MzMsIDAuMjY3MTkzLCAwLjM1ODc3LCAwLjUwODg0NSwgMC42NTg4NzQsIDEuMDA5MTMsIDEuMjA5MDYiLCBcCi0gICAgICAgICAgIjAuMjY5OTAzLCAwLjI4MDU2NSwgMC4zNzIxNDEsIDAuNTIyMjI2LCAwLjY3MjI0MywgMS4wMjI0OSwgMS4yMjI0MiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTk0NTcsIDAuMTM4NTM0LCAwLjMxMzUsIDAuNjExNTU3LCAwLjkxMzQ1NSwgMS42MTU0NywgMi4wMTU5OCIsIFwKLSAgICAgICAgICAiMC4xMTkzOTUsIDAuMTM4NTM3LCAwLjMxMzUwNCwgMC42MTE1NjgsIDAuOTEyMzc1LCAxLjYxNDI4LCAyLjAxNDk5IiwgXAotICAgICAgICAgICIwLjExOTM5MiwgMC4xMzg1MzgsIDAuMzEzNTA1LCAwLjYxMTUwOCwgMC45MTIyNDcsIDEuNjE0MiwgMi4wMTk5NCIsIFwKLSAgICAgICAgICAiMC4xMTk0NTMsIDAuMTM4NTMyLCAwLjMxMzUsIDAuNjExNDkyLCAwLjkxMjE1NSwgMS42MTc5NCwgMi4wMTQ5MyIsIFwKLSAgICAgICAgICAiMC4xMTk0NTMsIDAuMTM4NTMsIDAuMzEzNDk4LCAwLjYxMTg2MiwgMC45MTIxNjMsIDEuNjE0MjEsIDIuMDIwODciLCBcCi0gICAgICAgICAgIjAuMTE5NDU2LCAwLjEzODUzOSwgMC4zMTM1MDksIDAuNjEyNTA0LCAwLjkxMjMxNywgMS42MTUwNSwgMi4wMTQ5MSIsIFwKLSAgICAgICAgICAiMC4xMTk0NzMsIDAuMTM4NTU1LCAwLjMxMzUxNiwgMC42MTI2MDksIDAuOTEyMzcyLCAxLjYxNjkyLCAyLjAxODY2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE2ODUyOCwgMC4xODM0MjIsIDAuMzE1MjU4LCAwLjUzNDQ0OSwgMC43NTMzODcsIDEuMjY1MzEsIDEuNTU3NDkiLCBcCi0gICAgICAgICAgIjAuMTc4MDc3LCAwLjE5Mjk2NSwgMC4zMjQ3ODQsIDAuNTQzODU2LCAwLjc2MzAwNywgMS4yNzQ5OCwgMS41NjY0NiIsIFwKLSAgICAgICAgICAiMC4xODk0NzMsIDAuMjA0MzQ0LCAwLjMzNjE3NSwgMC41NTUyNDgsIDAuNzc0NDA2LCAxLjI4NTc2LCAxLjU3NzgyIiwgXAotICAgICAgICAgICIwLjIwMDgyNSwgMC4yMTU3MTcsIDAuMzQ3NTU0LCAwLjU2Njc3OSwgMC43ODU4MDEsIDEuMjk3NTMsIDEuNTg5OCIsIFwKLSAgICAgICAgICAiMC4yMTIwNywgMC4yMjY5NTYsIDAuMzU4NzkzLCAwLjU3Nzk0OSwgMC43OTcwNSwgMS4zMDg5NywgMS42MDA1NyIsIFwKLSAgICAgICAgICAiMC4yMjkyNTMsIDAuMjQ0MTQ0LCAwLjM3NTk4LCAwLjU5NTIxNSwgMC44MTQyMDQsIDEuMzI2MjYsIDEuNjE3OTIiLCBcCi0gICAgICAgICAgIjAuMjQzNDk2LCAwLjI1ODQwNiwgMC4zOTAyNDgsIDAuNjA5MzgyLCAwLjgyODQ5OCwgMS4zNDAyMywgMS42MzE5NSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNjc1MDEsIDAuMTk2Mjk2LCAwLjQ2MDY5MywgMC45MDk2NjcsIDEuMzU4NDEsIDIuNDA0NDYsIDMuMDAzMTkiLCBcCi0gICAgICAgICAgIjAuMTY3NTExLCAwLjE5NjMxNCwgMC40NjEwMTQsIDAuOTA5NTI5LCAxLjM1NzMyLCAyLjQwNDM3LCAzLjAwMjA4IiwgXAotICAgICAgICAgICIwLjE2NzUyOSwgMC4xOTYzMTgsIDAuNDYxMDA0LCAwLjkwODI3NCwgMS4zNTczNiwgMi40MDQzNSwgMy4wMDMyIiwgXAotICAgICAgICAgICIwLjE2NzU0OSwgMC4xOTYzMjUsIDAuNDYwOTg1LCAwLjkwNzgxOSwgMS4zNjE1NywgMi40MDQzNywgMy4wMDMxNiIsIFwKLSAgICAgICAgICAiMC4xNjc1MjEsIDAuMTk2MzQ5LCAwLjQ2MTA2NSwgMC45MDgxNDEsIDEuMzU3NDcsIDIuNDA0NSwgMy4wMDIyMSIsIFwKLSAgICAgICAgICAiMC4xNjc2NTMsIDAuMTk2NDUzLCAwLjQ2MTMyNywgMC45MDc2MDcsIDEuMzU5MDEsIDIuNDA0MzgsIDMuMDA0NzciLCBcCi0gICAgICAgICAgIjAuMTY3OTc0LCAwLjE5Njc2NSwgMC40NjExNDQsIDAuOTA5NDgyLCAxLjM1NzE2LCAyLjQwNDM5LCAzLjAwMjE5Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEzODA3LCAwLjE0ODc4MSwgMC4yNDA1MzgsIDAuMzkwNjE1LCAwLjU0MDYzNiwgMC44OTA3OTEsIDEuMDkwODciLCBcCi0gICAgICAgICAgIjAuMTQ3NTUzLCAwLjE1ODI3MiwgMC4yNTAwNDEsIDAuNDAwMTE5LCAwLjU1MDIxNCwgMC45MDAzMzIsIDEuMTAwNDgiLCBcCi0gICAgICAgICAgIjAuMTU5MDk2LCAwLjE2OTg0MywgMC4yNjE2MTEsIDAuNDExNjkzLCAwLjU2MTcxLCAwLjkxMTkxMywgMS4xMTIxMyIsIFwKLSAgICAgICAgICAiMC4xNzA3MjEsIDAuMTgxNDcxLCAwLjI3MzI0MywgMC40MjMzMjksIDAuNTczMzQ5LCAwLjkyMzU0MSwgMS4xMjM3NiIsIFwKLSAgICAgICAgICAiMC4xODE4MzQsIDAuMTkyNTY2LCAwLjI4NDM0OCwgMC40MzQ0MzcsIDAuNTg0NDUzLCAwLjkzNDY1NSwgMS4xMzQ4NSIsIFwKLSAgICAgICAgICAiMC4xOTgwNjYsIDAuMjA4ODMyLCAwLjMwMDYyMSwgMC40NTA3MTMsIDAuNjAwNzMzLCAwLjk1MDg0MywgMS4xNTA5NSIsIFwKLSAgICAgICAgICAiMC4yMTEzMDYsIDAuMjIyMDY0LCAwLjMxMzk3NiwgMC40NjQwNywgMC42MTQwOSwgMC45NjQ0NDIsIDEuMTY0MzciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTIwMDY5LCAwLjEzOTE1OSwgMC4zMTM5OTYsIDAuNjEyNDA2LCAwLjkxMjI0NywgMS42MTQ5LCAyLjAxNDk1IiwgXAotICAgICAgICAgICIwLjEyMDA4MywgMC4xMzkxNTEsIDAuMzEzOTgyLCAwLjYxMTc1MywgMC45MTEzMTIsIDEuNjE1ODQsIDIuMDE2MTYiLCBcCi0gICAgICAgICAgIjAuMTIwMDY5LCAwLjEzOTE1NSwgMC4zMTM5ODksIDAuNjEyMjM1LCAwLjkxMzI2NSwgMS42MTQwNCwgMi4wMjAwOCIsIFwKLSAgICAgICAgICAiMC4xMjAwNTgsIDAuMTM5MTQ3LCAwLjMxMzk4MiwgMC42MTIyNDIsIDAuOTEyNjI5LCAxLjYxMzk4LCAyLjAyMDAxIiwgXAotICAgICAgICAgICIwLjEyMDEyLCAwLjEzOTE3LCAwLjMxMzk0MiwgMC42MTE3NjMsIDAuOTEyMjI3LCAxLjYxNTcyLCAyLjAxNjM0IiwgXAotICAgICAgICAgICIwLjEyMDQ3MSwgMC4xMzk1MywgMC4zMTQwNzEsIDAuNjEyNzE2LCAwLjkxMzU1MiwgMS42MTgwMywgMi4wMjAwNiIsIFwKLSAgICAgICAgICAiMC4xMjExMTksIDAuMTQwMDY1LCAwLjMxNDUxNywgMC42MTI4NTEsIDAuOTEzNzE2LCAxLjYxNDMsIDIuMDE0MTIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTY2MzI3LCAwLjE4MTIyLCAwLjMxMzA4NywgMC41MzIzLCAwLjc1MTIyMiwgMS4yNjI2OSwgMS41NTQ4OCIsIFwKLSAgICAgICAgICAiMC4xNzY3OSwgMC4xOTE2NzQsIDAuMzIzNTY3LCAwLjU0Mjc2OCwgMC43NjE3MjMsIDEuMjczNjMsIDEuNTY1NzciLCBcCi0gICAgICAgICAgIjAuMTg5NTExLCAwLjIwNDM5NCwgMC4zMzYyNjMsIDAuNTU1NDc1LCAwLjc3NDQ4OCwgMS4yODYyNiwgMS41Nzg0OCIsIFwKLSAgICAgICAgICAiMC4yMDA4NTQsIDAuMjE1NzQyLCAwLjM0NzYwNCwgMC41NjY2NjQsIDAuNzg1Nzk3LCAxLjI5NzM1LCAxLjU4OTI3IiwgXAotICAgICAgICAgICIwLjIxMDA3MiwgMC4yMjQ5NjcsIDAuMzU2ODI3LCAwLjU3NTk4MSwgMC43OTUwNjYsIDEuMzA3LCAxLjU5ODciLCBcCi0gICAgICAgICAgIjAuMjIxODQ5LCAwLjIzNjc0OCwgMC4zNjg1OTgsIDAuNTg3ODE4LCAwLjgwNzA4NywgMS4zMTg2MywgMS42MTAzMiIsIFwKLSAgICAgICAgICAiMC4yMzA2OTMsIDAuMjQ1NTg5LCAwLjM3NzQ2OCwgMC41OTY2NzEsIDAuODE1NjY5LCAxLjMyNzE2LCAxLjYxODkzIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE2NzQ5OCwgMC4xOTYzMzcsIDAuNDYxNTA0LCAwLjkwNzc5OCwgMS4zNTkxMywgMi40MDU0MywgMy4wMDI3MiIsIFwKLSAgICAgICAgICAiMC4xNjc0OTYsIDAuMTk2MzQzLCAwLjQ2MTUyMywgMC45MDc4LCAxLjM1OTE5LCAyLjQwNDQ3LCAzLjAwMzE5IiwgXAotICAgICAgICAgICIwLjE2NzUwNCwgMC4xOTYyNDcsIDAuNDYwODc3LCAwLjkwNzgyOSwgMS4zNTkzMSwgMi40MDQ0LCAzLjAwMzE0IiwgXAotICAgICAgICAgICIwLjE2NzMxNCwgMC4xOTYyNTIsIDAuNDYxMDkzLCAwLjkwOTM0NCwgMS4zNTkyNSwgMi40MDQzNiwgMy4wMDUwNCIsIFwKLSAgICAgICAgICAiMC4xNjc0NjEsIDAuMTk2MzE3LCAwLjQ2MTEzNiwgMC45MDc5OTUsIDEuMzU3MzIsIDIuNDA0NSwgMy4wMDMyMSIsIFwKLSAgICAgICAgICAiMC4xNjczNTMsIDAuMTk2MjQzLCAwLjQ2MTA5MSwgMC45MDc3NzQsIDEuMzU4MzMsIDIuNDA0NCwgMy4wMDIzOSIsIFwKLSAgICAgICAgICAiMC4xNjczMDcsIDAuMTk2MjAyLCAwLjQ2MTQxOCwgMC45MDc3NzMsIDEuMzU4MjYsIDIuNDA1NTUsIDMuMDA4NDkiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTQ2ODI2LCAwLjE1NzUxNywgMC4yNDkwOTksIDAuMzk5MTYxLCAwLjU0OTIwNywgMC44OTk0NTgsIDEuMDk5MzciLCBcCi0gICAgICAgICAgIjAuMTU3MjgzLCAwLjE2Nzk1MywgMC4yNTk1MDgsIDAuNDA5NjA1LCAwLjU1OTYyNSwgMC45MTAwNjEsIDEuMTA5NzYiLCBcCi0gICAgICAgICAgIjAuMTcwMDU0LCAwLjE4MDczOSwgMC4yNzIzMDgsIDAuNDIyMzczLCAwLjU3MjM4NiwgMC45MjI4MSwgMS4xMjI3MiIsIFwKLSAgICAgICAgICAiMC4xODE3NjMsIDAuMTkyNDUsIDAuMjg0MDMsIDAuNDM0MDk2LCAwLjU4NDEyOCwgMC45MzQ0NDIsIDEuMTM0MyIsIFwKLSAgICAgICAgICAiMC4xOTE3NjQsIDAuMjAyNDMxLCAwLjI5NDAwNCwgMC40NDQwNjYsIDAuNTk0MDcyLCAwLjk0NDUzMiwgMS4xNDQyNCIsIFwKLSAgICAgICAgICAiMC4yMDQ5MTcsIDAuMjE1NTk0LCAwLjMwNzE2MiwgMC40NTcyMjUsIDAuNjA3MjI2LCAwLjk1NzcwMywgMS4xNTc0IiwgXAotICAgICAgICAgICIwLjIxNDk1NiwgMC4yMjU2MzEsIDAuMzE3MjExLCAwLjQ2NzI5MSwgMC42MTczMjIsIDAuOTY3NTgzLCAxLjE2NzQ3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExOTUxNCwgMC4xMzg1ODUsIDAuMzEzNTE4LCAwLjYxMTU4NiwgMC45MTM0MTksIDEuNjE0MiwgMi4wMTUxMyIsIFwKLSAgICAgICAgICAiMC4xMTk0NTEsIDAuMTM4NTUxLCAwLjMxMzY2OSwgMC42MTI2OTgsIDAuOTExNjg0LCAxLjYxNDUsIDIuMDIxIiwgXAotICAgICAgICAgICIwLjExOTQ4OCwgMC4xMzg1NjMsIDAuMzEzNTA1LCAwLjYxMTQ2NywgMC45MTE5MzYsIDEuNjEzNzksIDIuMDIwOTQiLCBcCi0gICAgICAgICAgIjAuMTE5NDkxLCAwLjEzODU2NCwgMC4zMTM1MTIsIDAuNjExNTExLCAwLjkxMzQxMywgMS42MTQ0LCAyLjAyMDgzIiwgXAotICAgICAgICAgICIwLjExOTQ2MiwgMC4xMzg1MzEsIDAuMzEzNDQ3LCAwLjYxMjQ0MywgMC45MTMzNTksIDEuNjEzODMsIDIuMDIwODciLCBcCi0gICAgICAgICAgIjAuMTE5NDk1LCAwLjEzODU3LCAwLjMxMzQ2MiwgMC42MTI0NCwgMC45MTMzMDksIDEuNjE0MjYsIDIuMDIwODYiLCBcCi0gICAgICAgICAgIjAuMTE5MzA4LCAwLjEzODQxOSwgMC4zMTM3MTEsIDAuNjEyNTA1LCAwLjkxMjE1MywgMS42MTM4MSwgMi4wMjA4OSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMjI1MTYsIDAuMTM3MzQ1LCAwLjI2OTA1OSwgMC40ODgwOTcsIDAuNzA3MzIzLCAxLjIxODM1LCAxLjUxMDYxIiwgXAotICAgICAgICAgICIwLjEzMTc2MywgMC4xNDY2MjEsIDAuMjc4MzUzLCAwLjQ5NzQ2MiwgMC43MTY3MjEsIDEuMjI4MjksIDEuNTIwOCIsIFwKLSAgICAgICAgICAiMC4xNDM0MjgsIDAuMTU4MjY3LCAwLjI5MDAwOCwgMC41MDkxMzksIDAuNzI4MTA2LCAxLjIzOTksIDEuNTMyMjgiLCBcCi0gICAgICAgICAgIjAuMTU0MzcyLCAwLjE2OTIyNCwgMC4zMDA5NzIsIDAuNTIwMDg3LCAwLjczOTI3OSwgMS4yNTEsIDEuNTQyNTciLCBcCi0gICAgICAgICAgIjAuMTYzOTQ5LCAwLjE3ODc5OSwgMC4zMTA1NzIsIDAuNTI5NjgxLCAwLjc0ODg3NywgMS4yNjA1MywgMS41NTIxOCIsIFwKLSAgICAgICAgICAiMC4xNzc0NTIsIDAuMTkyMzI0LCAwLjMyNDEyNywgMC41NDMxNjUsIDAuNzYyMzU5LCAxLjI3NDIxLCAxLjU2NTc0IiwgXAotICAgICAgICAgICIwLjE4Nzg3NSwgMC4yMDI3NTYsIDAuMzM0NjMzLCAwLjU1MzY4MiwgMC43NzI3OSwgMS4yODQ3LCAxLjU3NjU3Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE2NjU2OSwgMC4xOTU1NjIsIDAuNDYwODQ4LCAwLjkwODM4MywgMS4zNTc0LCAyLjQwNzcyLCAzLjAwMjIiLCBcCi0gICAgICAgICAgIjAuMTY2NDE5LCAwLjE5NTQ1MSwgMC40NjEyOTIsIDAuOTA5NzYxLCAxLjM1NjY4LCAyLjQwNDQ0LCAzLjAwMzE5IiwgXAotICAgICAgICAgICIwLjE2NjE1NSwgMC4xOTUxNDIsIDAuNDYwNjcyLCAwLjkwOTczMiwgMS4zNTg5MywgMi40MDQ0MSwgMy4wMDMyNiIsIFwKLSAgICAgICAgICAiMC4xNjYwNDEsIDAuMTk1MTI2LCAwLjQ2MDcyOSwgMC45MDk1MiwgMS4zNTcyNiwgMi40MDQ0NiwgMy4wMDQ2OCIsIFwKLSAgICAgICAgICAiMC4xNjYxMDksIDAuMTk1MjE0LCAwLjQ2MDY4NywgMC45MDgyMjgsIDEuMzU3MjEsIDIuNDA1NzUsIDMuMDAyMTQiLCBcCi0gICAgICAgICAgIjAuMTY2NDQ3LCAwLjE5NTUyNSwgMC40NjEyMzMsIDAuOTA5NDI5LCAxLjM1NzM3LCAyLjQwNzM0LCAzLjAwMjExIiwgXAotICAgICAgICAgICIwLjE2NjgxMSwgMC4xOTU4MzIsIDAuNDYxNDEyLCAwLjkwOTU2MywgMS4zNTgxOSwgMi40MDQ1LCAzLjAxNTA5Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5ODkyMSwgMC4xMDk0NzUsIDAuMjAwNzI1LCAwLjM1MDc1MSwgMC41MDA3NTIsIDAuODUxMDkyLCAxLjA1MDkzIiwgXAotICAgICAgICAgICIwLjEwNzc2NCwgMC4xMTgzNDUsIDAuMjA5NTgxLCAwLjM1OTYyMywgMC41MDk3MiwgMC44NjAwMDEsIDEuMDU5OCIsIFwKLSAgICAgICAgICAiMC4xMTg5NDgsIDAuMTI5NTIsIDAuMjIwNzM3LCAwLjM3MDc5NSwgMC41MjA4ODIsIDAuODcxMTY5LCAxLjA3MDkzIiwgXAotICAgICAgICAgICIwLjEyOTA1MSwgMC4xMzk1OCwgMC4yMzA4NDQsIDAuMzgwODg0LCAwLjUzMDg3NiwgMC44ODExNDMsIDEuMDgxMTgiLCBcCi0gICAgICAgICAgIjAuMTM3NzI4LCAwLjE0ODMzLCAwLjIzOTU5NSwgMC4zODk2NDYsIDAuNTM5Njk3LCAwLjg4OTk3NCwgMS4wODk4MSIsIFwKLSAgICAgICAgICAiMC4xNDk2OTIsIDAuMTYwMzI2LCAwLjI1MTc5NSwgMC40MDE4NDcsIDAuNTUxODcyLCAwLjkwMjI0MiwgMS4xMDIwMSIsIFwKLSAgICAgICAgICAiMC4xNTg2OTUsIDAuMTY5NDE4LCAwLjI2MTAwNywgMC40MTEwNTksIDAuNTYxMDcsIDAuOTExMjkxLCAxLjExMTE4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExNzk2MSwgMC4xMzcxODIsIDAuMzEyODgzLCAwLjYxMTMyLCAwLjkxMjgxLCAxLjYxNDI2LCAyLjAyMDc3IiwgXAotICAgICAgICAgICIwLjExNzczOSwgMC4xMzcwMDYsIDAuMzEyODA0LCAwLjYxMTQ4NywgMC45MTA4MzYsIDEuNjE0LCAyLjAyMDgzIiwgXAotICAgICAgICAgICIwLjExNzM4LCAwLjEzNjY4NSwgMC4zMTI4MzcsIDAuNjEyMjY3LCAwLjkxMDkzMSwgMS42MTQxMywgMi4wMjA4NCIsIFwKLSAgICAgICAgICAiMC4xMTcyNjcsIDAuMTM2NTcxLCAwLjMxMjYzMiwgMC42MTEzMjMsIDAuOTEzMTQ0LCAxLjYxNDE3LCAyLjAyMDAyIiwgXAotICAgICAgICAgICIwLjExNzQ5NywgMC4xMzY3ODYsIDAuMzEyNzU2LCAwLjYxMjI0NCwgMC45MTE2OTIsIDEuNjE0NTMsIDIuMDE5OTEiLCBcCi0gICAgICAgICAgIjAuMTE3OTEzLCAwLjEzNzI0NiwgMC4zMTMwOTMsIDAuNjExNzg5LCAwLjkxMzMwMiwgMS42MTM5MywgMi4wMjAwMiIsIFwKLSAgICAgICAgICAiMC4xMTgzMDQsIDAuMTM3NTQzLCAwLjMxMzIzMywgMC42MTI3MDMsIDAuOTEzNTkzLCAxLjYxNTcsIDIuMDIwODgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTI5MDMsIDAuMTQzODI3LCAwLjI3NTQ5NSwgMC40OTQ2NDUsIDAuNzEzNjM0LCAxLjIyNDY2LCAxLjUxNjc1IiwgXAotICAgICAgICAgICIwLjEzODk0NiwgMC4xNTM3NTEsIDAuMjg1NDM4LCAwLjUwNDU2LCAwLjcyMzU0MSwgMS4yMzU0LCAxLjUyNzIxIiwgXAotICAgICAgICAgICIwLjE0OTgzMiwgMC4xNjQ2MjUsIDAuMjk2MzM0LCAwLjUxNTQzNywgMC43MzQ2NTUsIDEuMjQ2NDUsIDEuNTM4MTMiLCBcCi0gICAgICAgICAgIjAuMTU3ODkyLCAwLjE3MjY2OSwgMC4zMDQzNiwgMC41MjM0MSwgMC43NDI4ODksIDEuMjU0MzcsIDEuNTQ1OTIiLCBcCi0gICAgICAgICAgIjAuMTY0MTgzLCAwLjE3ODk2OSwgMC4zMTA2NywgMC41Mjk3ODksIDAuNzQ5MSwgMS4yNjA3LCAxLjU1MjU3IiwgXAotICAgICAgICAgICIwLjE3MjkyLCAwLjE4NzcwMiwgMC4zMTk0MTMsIDAuNTM4NTIxLCAwLjc1NzkxNiwgMS4yNjg5LCAxLjU2MDg3IiwgXAotICAgICAgICAgICIwLjE3OTI5MSwgMC4xOTQwMTksIDAuMzI1NjkyLCAwLjU0NDg5OCwgMC43NjQxNDIsIDEuMjc1MDcsIDEuNTY3MTEiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTY1NjY3LCAwLjE5NDg2OCwgMC40NjA0NDUsIDAuOTA3NTcsIDEuMzU1NDIsIDIuNDA4OCwgMy4wMDg4IiwgXAotICAgICAgICAgICIwLjE2NTc3LCAwLjE5NDg0NCwgMC40NjA5MzksIDAuOTA5NTg4LCAxLjM1OTA3LCAyLjQwNDM2LCAzLjAwMzA4IiwgXAotICAgICAgICAgICIwLjE2NTU3NiwgMC4xOTQ3NzYsIDAuNDYwMzM1LCAwLjkwOTU1MSwgMS4zNTgyOCwgMi40MDQ0NywgMy4wMDI5OCIsIFwKLSAgICAgICAgICAiMC4xNjU1OTUsIDAuMTk0NzEsIDAuNDYwNDI4LCAwLjkwOTI0MiwgMS4zNTY1NywgMi40MDQ0LCAzLjAwODE4IiwgXAotICAgICAgICAgICIwLjE2NTI5NSwgMC4xOTQ1MTMsIDAuNDYwMjEsIDAuOTA5NTE0LCAxLjM1ODIyLCAyLjQwNDQzLCAzLjAwNDYiLCBcCi0gICAgICAgICAgIjAuMTY1MTM4LCAwLjE5NDI5NSwgMC40NjAxNDMsIDAuOTA5NDc1LCAxLjM1NjU1LCAyLjQwNzc5LCAzLjAwMjQyIiwgXAotICAgICAgICAgICIwLjE2NTAzNiwgMC4xOTQyMTIsIDAuNDYwNjY5LCAwLjkwOTExLCAxLjM1ODQ0LCAyLjQwODcxLCAzLjAwNjk1Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwNjEyMywgMC4xMTY4MTksIDAuMjA4NDQ0LCAwLjM1ODUyMiwgMC41MDg1NTUsIDAuODU4ODUzLCAxLjA1ODY5IiwgXAotICAgICAgICAgICIwLjExNjY1NCwgMC4xMjczMjcsIDAuMjE4OTU5LCAwLjM2OTAzMywgMC41MTkwMjgsIDAuODY5Mjg1LCAxLjA2OTIiLCBcCi0gICAgICAgICAgIjAuMTI4MjQxLCAwLjEzODkyNCwgMC4yMzA1NDIsIDAuMzgwNjIxLCAwLjUzMDY0NiwgMC44ODA4OTQsIDEuMDgxMDYiLCBcCi0gICAgICAgICAgIjAuMTM3MjA1LCAwLjE0Nzg4NSwgMC4yMzk1LCAwLjM4OTU4MSwgMC41Mzk2MjYsIDAuODg5ODIyLCAxLjA4OTc4IiwgXAotICAgICAgICAgICIwLjE0NDYxLCAwLjE1NTI3MSwgMC4yNDY4NzMsIDAuMzk2OTU4LCAwLjU0Njk2NywgMC44OTczODcsIDEuMDk3MTMiLCBcCi0gICAgICAgICAgIjAuMTU0NjEyLCAwLjE2NTI1OCwgMC4yNTY4NDUsIDAuNDA2OTM5LCAwLjU1Njk5OSwgMC45MDcyMDEsIDEuMTA3MSIsIFwKLSAgICAgICAgICAiMC4xNjIzMDYsIDAuMTcyOTY3LCAwLjI2NDMzLCAwLjQxNDQ5NywgMC41NjQ1MDksIDAuOTE0ODczLCAxLjExNDk2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExODc5OSwgMC4xMzgwNTgsIDAuMzEzNTMzLCAwLjYxMTY0LCAwLjkxMTQ4NywgMS42MTQ2NCwgMi4wMjA3NiIsIFwKLSAgICAgICAgICAiMC4xMTg4MDgsIDAuMTM4MDMxLCAwLjMxMzUyNSwgMC42MTE3MzUsIDAuOTEyOTk5LCAxLjYxMzg5LCAyLjAyMDk4IiwgXAotICAgICAgICAgICIwLjExODYwNywgMC4xMzc4ODQsIDAuMzEzNDIxLCAwLjYxMTc1NywgMC45MTM2MDcsIDEuNjE0NTcsIDIuMDIwODUiLCBcCi0gICAgICAgICAgIjAuMTE4NDU3LCAwLjEzNzc0MywgMC4zMTMzNywgMC42MTIzNTksIDAuOTExNTEzLCAxLjYxNTYzLCAyLjAxNDk5IiwgXAotICAgICAgICAgICIwLjExODI0MSwgMC4xMzc1NDIsIDAuMzEzMjk4LCAwLjYxMTcwOCwgMC45MTM0NzEsIDEuNjE0MTcsIDIuMDIwODkiLCBcCi0gICAgICAgICAgIjAuMTE4MDM4LCAwLjEzNzM0LCAwLjMxMzI5MSwgMC42MTI0MjEsIDAuOTEzODI0LCAxLjYxMzc3LCAyLjAyMDkxIiwgXAotICAgICAgICAgICIwLjExNzc1OSwgMC4xMzcwODQsIDAuMzEyOTcyLCAwLjYxMjQ0NiwgMC45MTMyMTMsIDEuNjE0MTEsIDIuMDE4MSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwOTAxMiwgMC4wMDkwMTUsIDAuMDA5MDMsIDAuMDA5MDM3LCAwLjAwOTAzOSwgMC4wMDkwNDEsIDAuMDA5MDQzIiwgXAotICAgICAgICAgICIwLjAwODk5LCAwLjAwODk5MywgMC4wMDkwMDcsIDAuMDA5MDE0LCAwLjAwOTAxNywgMC4wMDkwMTksIDAuMDA5MDIiLCBcCi0gICAgICAgICAgIjAuMDA4OTc5LCAwLjAwODk4MiwgMC4wMDg5OTcsIDAuMDA5MDA0LCAwLjAwOTAwNiwgMC4wMDkwMDksIDAuMDA5MDA5IiwgXAotICAgICAgICAgICIwLjAwODk3OCwgMC4wMDg5ODEsIDAuMDA4OTk1LCAwLjAwOTAwMiwgMC4wMDkwMDUsIDAuMDA5MDA3LCAwLjAwOTAwOCIsIFwKLSAgICAgICAgICAiMC4wMDg5ODUsIDAuMDA4OTg4LCAwLjAwOTAwMywgMC4wMDkwMSwgMC4wMDkwMTIsIDAuMDA5MDE1LCAwLjAwOTAxNiIsIFwKLSAgICAgICAgICAiMC4wMDkwMDUsIDAuMDA5MDA4LCAwLjAwOTAyMywgMC4wMDkwMywgMC4wMDkwMzMsIDAuMDA5MDM1LCAwLjAwOTAzNiIsIFwKLSAgICAgICAgICAiMC4wMDkwMjYsIDAuMDA5MDI5LCAwLjAwOTA0NCwgMC4wMDkwNTEsIDAuMDA5MDU0LCAwLjAwOTA1NywgMC4wMDkwNTciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDg4OTYsIDAuMDA4ODk5LCAwLjAwODkxMSwgMC4wMDg5MTYsIDAuMDA4OTE4LCAwLjAwODkyLCAwLjAwODkyIiwgXAotICAgICAgICAgICIwLjAwODg2NywgMC4wMDg4NywgMC4wMDg4ODEsIDAuMDA4ODg2LCAwLjAwODg4OCwgMC4wMDg4OSwgMC4wMDg4OSIsIFwKLSAgICAgICAgICAiMC4wMDg4NTMsIDAuMDA4ODU2LCAwLjAwODg2OCwgMC4wMDg4NzMsIDAuMDA4ODc1LCAwLjAwODg3NiwgMC4wMDg4NzciLCBcCi0gICAgICAgICAgIjAuMDA4ODU0LCAwLjAwODg1NywgMC4wMDg4NjksIDAuMDA4ODc0LCAwLjAwODg3NiwgMC4wMDg4NzcsIDAuMDA4ODc4IiwgXAotICAgICAgICAgICIwLjAwODg2MiwgMC4wMDg4NjUsIDAuMDA4ODc2LCAwLjAwODg4MiwgMC4wMDg4ODQsIDAuMDA4ODg1LCAwLjAwODg4NiIsIFwKLSAgICAgICAgICAiMC4wMDg4ODgsIDAuMDA4ODkxLCAwLjAwODkwMywgMC4wMDg5MDksIDAuMDA4OTExLCAwLjAwODkxMywgMC4wMDg5MTMiLCBcCi0gICAgICAgICAgIjAuMDA4OTA3LCAwLjAwODkxLCAwLjAwODkyMiwgMC4wMDg5MjcsIDAuMDA4OTI5LCAwLjAwODkzMSwgMC4wMDg5MzIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQ3OTQsIDAuMDA0Nzk3LCAwLjAwNDgwOCwgMC4wMDQ4MTMsIDAuMDA0ODE1LCAwLjAwNDgxNiwgMC4wMDQ4MTciLCBcCi0gICAgICAgICAgIjAuMDA0ODA1LCAwLjAwNDgwOCwgMC4wMDQ4MiwgMC4wMDQ4MjUsIDAuMDA0ODI3LCAwLjAwNDgyOCwgMC4wMDQ4MjkiLCBcCi0gICAgICAgICAgIjAuMDA0ODU4LCAwLjAwNDg2MSwgMC4wMDQ4NzQsIDAuMDA0ODgsIDAuMDA0ODgyLCAwLjAwNDg4MywgMC4wMDQ4ODQiLCBcCi0gICAgICAgICAgIjAuMDA0OTMsIDAuMDA0OTMyLCAwLjAwNDk0NiwgMC4wMDQ5NTMsIDAuMDA0OTU1LCAwLjAwNDk1NywgMC4wMDQ5NTgiLCBcCi0gICAgICAgICAgIjAuMDA0OTc2LCAwLjAwNDk3OSwgMC4wMDQ5OTMsIDAuMDA1MDAxLCAwLjAwNTAwMywgMC4wMDUwMDYsIDAuMDA1MDA2IiwgXAotICAgICAgICAgICIwLjAwNTA3OSwgMC4wMDUwODIsIDAuMDA1MDk2LCAwLjAwNTEwNCwgMC4wMDUxMDgsIDAuMDA1MTExLCAwLjAwNTExMSIsIFwKLSAgICAgICAgICAiMC4wMDUxMzcsIDAuMDA1MTQsIDAuMDA1MTU1LCAwLjAwNTE2MywgMC4wMDUxNjYsIDAuMDA1MTcsIDAuMDA1MTcxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1NzIyLCAwLjAwNTcyNSwgMC4wMDU3MzYsIDAuMDA1NzQxLCAwLjAwNTc0MiwgMC4wMDU3NDQsIDAuMDA1NzQ0IiwgXAotICAgICAgICAgICIwLjAwNTY5NywgMC4wMDU3LCAwLjAwNTcxMSwgMC4wMDU3MTYsIDAuMDA1NzE3LCAwLjAwNTcxOSwgMC4wMDU3MTkiLCBcCi0gICAgICAgICAgIjAuMDA1NzQyLCAwLjAwNTc0NCwgMC4wMDU3NTYsIDAuMDA1NzYxLCAwLjAwNTc2MywgMC4wMDU3NjUsIDAuMDA1NzY1IiwgXAotICAgICAgICAgICIwLjAwNTgxNSwgMC4wMDU4MTgsIDAuMDA1ODMsIDAuMDA1ODM1LCAwLjAwNTgzNywgMC4wMDU4MzksIDAuMDA1ODQiLCBcCi0gICAgICAgICAgIjAuMDA1ODY4LCAwLjAwNTg3MSwgMC4wMDU4ODMsIDAuMDA1ODg4LCAwLjAwNTg5LCAwLjAwNTg5MiwgMC4wMDU4OTMiLCBcCi0gICAgICAgICAgIjAuMDA1OTg0LCAwLjAwNTk4NywgMC4wMDU5OTgsIDAuMDA2MDA0LCAwLjAwNjAwNywgMC4wMDYwMDksIDAuMDA2MDA5IiwgXAotICAgICAgICAgICIwLjAwNjA1MSwgMC4wMDYwNTQsIDAuMDA2MDY1LCAwLjAwNjA3MSwgMC4wMDYwNzQsIDAuMDA2MDc2LCAwLjAwNjA3NyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzQ3MiwgMC4wMDM0NzUsIDAuMDAzNDgzLCAwLjAwMzQ4NiwgMC4wMDM0ODcsIDAuMDAzNDg5LCAwLjAwMzQ4OCIsIFwKLSAgICAgICAgICAiMC4wMDM0NzksIDAuMDAzNDgxLCAwLjAwMzQ5LCAwLjAwMzQ5NCwgMC4wMDM0OTUsIDAuMDAzNDk2LCAwLjAwMzQ5NyIsIFwKLSAgICAgICAgICAiMC4wMDM1MjEsIDAuMDAzNTIzLCAwLjAwMzUzMywgMC4wMDM1MzcsIDAuMDAzNTQsIDAuMDAzNTQsIDAuMDAzNTQiLCBcCi0gICAgICAgICAgIjAuMDAzNTYyLCAwLjAwMzU2NSwgMC4wMDM1NzQsIDAuMDAzNTc5LCAwLjAwMzU4MSwgMC4wMDM1ODIsIDAuMDAzNTg0IiwgXAotICAgICAgICAgICIwLjAwMzYxNywgMC4wMDM2MTksIDAuMDAzNjI5LCAwLjAwMzYzMywgMC4wMDM2MzYsIDAuMDAzNjM3LCAwLjAwMzYzOSIsIFwKLSAgICAgICAgICAiMC4wMDM2ODcsIDAuMDAzNjg5LCAwLjAwMzY5OCwgMC4wMDM3MDQsIDAuMDAzNzA2LCAwLjAwMzcwOCwgMC4wMDM2OTkiLCBcCi0gICAgICAgICAgIjAuMDAzNzU0LCAwLjAwMzc1NiwgMC4wMDM3NjcsIDAuMDAzNzcxLCAwLjAwMzc1OCwgMC4wMDM3NzUsIDAuMDAzNzc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyNjk5LCAwLjAwMjcwMSwgMC4wMDI3MDcsIDAuMDAyNzEsIDAuMDAyNzEsIDAuMDAyNzExLCAwLjAwMjcxMSIsIFwKLSAgICAgICAgICAiMC4wMDI3MDgsIDAuMDAyNzEsIDAuMDAyNzE2LCAwLjAwMjcxOSwgMC4wMDI3MiwgMC4wMDI3MjEsIDAuMDAyNzIxIiwgXAotICAgICAgICAgICIwLjAwMjc2OSwgMC4wMDI3NzEsIDAuMDAyNzc5LCAwLjAwMjc4MiwgMC4wMDI3ODMsIDAuMDAyNzg0LCAwLjAwMjc4NCIsIFwKLSAgICAgICAgICAiMC4wMDI4MSwgMC4wMDI4MTIsIDAuMDAyODIsIDAuMDAyODIzLCAwLjAwMjgyNCwgMC4wMDI4MjYsIDAuMDAyODI2IiwgXAotICAgICAgICAgICIwLjAwMjg2LCAwLjAwMjg2MiwgMC4wMDI4NywgMC4wMDI4NzMsIDAuMDAyODc1LCAwLjAwMjg3NiwgMC4wMDI4NzYiLCBcCi0gICAgICAgICAgIjAuMDAyOTQ3LCAwLjAwMjk1LCAwLjAwMjk1OCwgMC4wMDI5NjEsIDAuMDAyOTYzLCAwLjAwMjk2NCwgMC4wMDI5NjQiLCBcCi0gICAgICAgICAgIjAuMDAzMDA4LCAwLjAwMzAxLCAwLjAwMzAxNCwgMC4wMDMwMjIsIDAuMDAzMDI0LCAwLjAwMzAyNSwgMC4wMDMwMjYiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IEFORDJYMSAqCi0gKiAtLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKEFORDJYMSkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjA3NjE5MjsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjQ5OTM3OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDY0OTkzNzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2NDg4Nzk7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjI2LCAwLjAwMDIyNiwgMC4wMDAyMjYsIDAuMDAwMjI2LCAwLjAwMDIyNiwgMC4wMDAyMjYsIDAuMDAwMjI2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjMzLCAwLjAwMDIyOCwgMC4wMDAyMjcsIDAuMDAwMjI3LCAwLjAwMDIyNywgMC4wMDAyMjcsIDAuMDAwMjI3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2NTA5ODE7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjUwNzEyOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDY1MDk4MTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxMTksIDAuMDAwMTE5LCAwLjAwMDExOSwgMC4wMDAxMTksIDAuMDAwMTE5LCAwLjAwMDExOSwgMC4wMDAxMTkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyNTcsIDAuMDAwMjU3LCAwLjAwMDI1NywgMC4wMDAyNTcsIDAuMDAwMjU3LCAwLjAwMDI1NywgMC4wMDAyNTciKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4yNjMxMjY7Ci0gICAgZnVuY3Rpb24gOiAiKEEgQikiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4NTE5OCwgMC4xMDk4NCwgMC4yNDg5NzMsIDAuMzcxNzM3LCAwLjUzNTM2MiwgMC44NjI2MDYsIDEuMDY3MDEiLCBcCi0gICAgICAgICAgIjAuMDkzOTgzLCAwLjExODYzOCwgMC4yNTc4MjQsIDAuMzgwNTc3LCAwLjU0NDQ1NSwgMC44NzEzNzksIDEuMDc1ODQiLCBcCi0gICAgICAgICAgIjAuMTA0NDY5LCAwLjEyOTExNCwgMC4yNjgyMzMsIDAuMzkxMDU2LCAwLjU1NDgzOSwgMC44ODEzOTUsIDEuMDg2MzIiLCBcCi0gICAgICAgICAgIjAuMTE0NTYzLCAwLjEzOTIwOCwgMC4yNzgzNDYsIDAuNDAxMDg2LCAwLjU2NDc5LCAwLjg5MTkzOSwgMS4wOTYzMiIsIFwKLSAgICAgICAgICAiMC4xMjM2MTgsIDAuMTQ4MjU5LCAwLjI4NzQxNywgMC40MTAxNzgsIDAuNTczNzA4LCAwLjkwMDk0NCwgMS4xMDU0OCIsIFwKLSAgICAgICAgICAiMC4xMzYzMTIsIDAuMTYwOTA4LCAwLjMwMDAwMSwgMC40MjI3MTksIDAuNTg2NDI5LCAwLjkxMzQwMSwgMS4xMTgwMyIsIFwKLSAgICAgICAgICAiMC4xNDYwNDIsIDAuMTcwODAzLCAwLjMwOTg2OSwgMC40MzI2ODQsIDAuNTk2MTgxLCAwLjkyMzYyNiwgMS4xMjc4NSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTQwMDEsIDAuMTQzMjgzLCAwLjQyNzgyNywgMC42ODAzMjgsIDEuMDE2OTcsIDEuNjkyODQsIDIuMTEwMjIiLCBcCi0gICAgICAgICAgIjAuMDk0MDc1LCAwLjE0MzE1NywgMC40Mjc4MjcsIDAuNjgwMzMzLCAxLjAxNjgzLCAxLjY4OTUyLCAyLjExMDI4IiwgXAotICAgICAgICAgICIwLjA5NDEzNywgMC4xNDM1NTUsIDAuNDI3OTk2LCAwLjY4MDM0NiwgMS4wMTY5MywgMS42OTIxNiwgMi4xMTQ2MiIsIFwKLSAgICAgICAgICAiMC4wOTQzNiwgMC4xNDM2MDQsIDAuNDI3NzksIDAuNjgwMzI5LCAxLjAxNjkzLCAxLjY5Mjc1LCAyLjExMDE3IiwgXAotICAgICAgICAgICIwLjA5NDg3MSwgMC4xNDM4NywgMC40Mjc3NzcsIDAuNjgwMjkyLCAxLjAxNjY2LCAxLjY5MjYzLCAyLjExMDAyIiwgXAotICAgICAgICAgICIwLjA5NTcyNCwgMC4xNDQ1MjgsIDAuNDI4ODE0LCAwLjY4MDE1MywgMS4wMTY5MSwgMS42OTMxNiwgMi4xMTAzNiIsIFwKLSAgICAgICAgICAiMC4wOTY3OTYsIDAuMTQ1MDgsIDAuNDI4OTEzLCAwLjY4MDM2NiwgMS4wMTgyMywgMS42OTAxMiwgMi4xMTA0OCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzAzMTcsIDAuMDk1MTE1LCAwLjIzNTM0NywgMC4zNTkwMTksIDAuNTIzOSwgMC44NTM2ODYsIDEuMDU5NzEiLCBcCi0gICAgICAgICAgIjAuMDgwMjAxLCAwLjEwNTAwNiwgMC4yNDUyNTYsIDAuMzY4OTMzLCAwLjUzMzgxMywgMC44NjM1ODUsIDEuMDY5NjciLCBcCi0gICAgICAgICAgIjAuMDkxODIxLCAwLjExNjYzNiwgMC4yNTY4OTgsIDAuMzgwNTczLCAwLjU0NTQ2NCwgMC44NzUzMDUsIDEuMDgxMjgiLCBcCi0gICAgICAgICAgIjAuMTAxNjkyLCAwLjEyNjUwOCwgMC4yNjY3ODMsIDAuMzkwNDUzLCAwLjU1NTMyOSwgMC44ODUxMTEsIDEuMDkxMyIsIFwKLSAgICAgICAgICAiMC4xMTAwODYsIDAuMTM0ODE0LCAwLjI3NTA4OCwgMC4zOTg3NzEsIDAuNTYzNjUsIDAuODkzNDQ1LCAxLjA5OTQ3IiwgXAotICAgICAgICAgICIwLjEyMTc0MywgMC4xNDY1NTgsIDAuMjg2ODI1LCAwLjQxMDQ5NSwgMC41NzU0MDcsIDAuOTA1MTM1LCAxLjExMTIxIiwgXAotICAgICAgICAgICIwLjEzMDMyMiwgMC4xNTUxNTksIDAuMjk1NDM2LCAwLjQxOTEwNSwgMC41ODM5NzMsIDAuOTEzNzU5LCAxLjExOTgzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5MDMwNiwgMC4xMzk4NDksIDAuNDIyMTAxLCAwLjY3MDk5LCAxLjAwMjI1LCAxLjY2OTQ5LCAyLjA4NDc4IiwgXAotICAgICAgICAgICIwLjA5MDM2NywgMC4xMzk2MzQsIDAuNDIyMTAxLCAwLjY3MDkxNCwgMS4wMDMxMywgMS42Njk0NSwgMi4wODE5NiIsIFwKLSAgICAgICAgICAiMC4wOTA0MDcsIDAuMTM5OTIxLCAwLjQyMjExLCAwLjY3MTQ3NiwgMS4wMDIyNywgMS42NjkyNywgMi4wODQ4NiIsIFwKLSAgICAgICAgICAiMC4wOTA3ODgsIDAuMTQwMDkzLCAwLjQyMTk0MiwgMC42NzE1MTQsIDEuMDA0MDIsIDEuNjY5NCwgMi4wODUwNiIsIFwKLSAgICAgICAgICAiMC4wOTExMjgsIDAuMTQwMTUzLCAwLjQyMTU4NSwgMC42NzEzMTYsIDEuMDA0MTEsIDEuNjY5MzYsIDIuMDg0OTIiLCBcCi0gICAgICAgICAgIjAuMDkxNzkzLCAwLjE0MDUxOSwgMC40MjE2ODgsIDAuNjcxMSwgMS4wMDM0NSwgMS42NjkzOCwgMi4wODUwMiIsIFwKLSAgICAgICAgICAiMC4wOTI3NDEsIDAuMTQwNzUzLCAwLjQyMTczNSwgMC42NzEwMDMsIDEuMDAzNzYsIDEuNjY5MDIsIDIuMDg1MTciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDgyODQ0LCAwLjEwNzUwNiwgMC4yNDY2MzQsIDAuMzY5Mzg4LCAwLjUzMjkxMSwgMC44NjAxODIsIDEuMDY0NzIiLCBcCi0gICAgICAgICAgIjAuMDkxOTQxLCAwLjExNjU5NSwgMC4yNTU3ODgsIDAuMzc4NTI2LCAwLjU0MjAzOCwgMC44NjkzMzIsIDEuMDczNzQiLCBcCi0gICAgICAgICAgIjAuMTAzNDY5LCAwLjEyODExNiwgMC4yNjcyNSwgMC4zODk5ODMsIDAuNTUzNjA3LCAwLjg4MDc4NywgMS4wODUzIiwgXAotICAgICAgICAgICIwLjExNDUyNiwgMC4xMzkxOTMsIDAuMjc4MzUyLCAwLjQwMTEsIDAuNTY0OTI2LCAwLjg5MTg2LCAxLjA5NjM2IiwgXAotICAgICAgICAgICIwLjEyNDE4LCAwLjE0ODg2NCwgMC4yODc5OTYsIDAuNDEwODUyLCAwLjU3NDY0MSwgMC45MDE1NTcsIDEuMTA2MSIsIFwKLSAgICAgICAgICAiMC4xMzgyMzksIDAuMTYzMTQzLCAwLjMwMTY0MiwgMC40MjQzNTMsIDAuNTg3OTY0LCAwLjkxNTI2MSwgMS4xMTk4NiIsIFwKLSAgICAgICAgICAiMC4xNDg1NzUsIDAuMTczNTYxLCAwLjMxMjM2MSwgMC40MzUwNTYsIDAuNTk4NzMzLCAwLjkyNjI5NiwgMS4xMzA0MSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTM5NzUsIDAuMTQzNDE1LCAwLjQyNzgzLCAwLjY4MDM0MSwgMS4wMTgzOSwgMS42OTI4NywgMi4xMTAwMiIsIFwKLSAgICAgICAgICAiMC4wOTQwNjQsIDAuMTQzMzIsIDAuNDI3ODI2LCAwLjY4MDAzMSwgMS4wMTg4OSwgMS42ODk2NSwgMi4xMTA0OCIsIFwKLSAgICAgICAgICAiMC4wOTQyMTksIDAuMTQzNTgzLCAwLjQyNzgyOSwgMC42ODAwNywgMS4wMTY1MiwgMS42OTMxOCwgMi4xMTM5NCIsIFwKLSAgICAgICAgICAiMC4wOTQ1MjIsIDAuMTQzNjUyLCAwLjQyNzc3MSwgMC42ODAzMTYsIDEuMDE2OTMsIDEuNjkwOTIsIDIuMTEwNCIsIFwKLSAgICAgICAgICAiMC4wOTUyMjIsIDAuMTQ0MDIsIDAuNDI3OTg3LCAwLjY4MDI5MiwgMS4wMTY4NCwgMS42OTA5NSwgMi4xMTM5NSIsIFwKLSAgICAgICAgICAiMC4wOTYxNDgsIDAuMTQ0Nzc5LCAwLjQyODI1NCwgMC42ODE0OTksIDEuMDE4MzcsIDEuNjg5NDgsIDIuMTExMDIiLCBcCi0gICAgICAgICAgIjAuMDk3Mjc5LCAwLjE0NTQ0NywgMC40Mjg0ODIsIDAuNjgwNjY5LCAxLjAxNzU1LCAxLjY5MDIyLCAyLjExNDM4Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2ODY4MywgMC4wOTM0NjcsIDAuMjMzNjYsIDAuMzU3MzU0LCAwLjUyMjI5NiwgMC44NTIwMzgsIDEuMDU4MSIsIFwKLSAgICAgICAgICAiMC4wNzg0ODMsIDAuMTAzMjY3LCAwLjI0MzUyMiwgMC4zNjczNDUsIDAuNTMyMTMsIDAuODYyMTYxLCAxLjA2ODA2IiwgXAotICAgICAgICAgICIwLjA4OTY2MiwgMC4xMTQ0NCwgMC4yNTQ3MTgsIDAuMzc4NDg4LCAwLjU0MzQyMiwgMC44NzM1MzUsIDEuMDc5NDMiLCBcCi0gICAgICAgICAgIjAuMDk5Mjg5LCAwLjEyNDA4LCAwLjI2NDQzOSwgMC4zODgxNzksIDAuNTUyOTQxLCAwLjg4MzExNywgMS4wODg5MiIsIFwKLSAgICAgICAgICAiMC4xMDcwNCwgMC4xMzE4MzUsIDAuMjcyMDY3LCAwLjM5NTc3LCAwLjU2MDg0NywgMC44OTA1OTEsIDEuMDk2ODQiLCBcCi0gICAgICAgICAgIjAuMTE3OTkxLCAwLjE0MjY3OCwgMC4yODI4OTYsIDAuNDA2NjIxLCAwLjU3MTMyNCwgMC45MDE1OTEsIDEuMTA3OSIsIFwKLSAgICAgICAgICAiMC4xMjU2MSwgMC4xNTA3NzgsIDAuMjkwNzI5LCAwLjQxNDQ0MSwgMC41Nzk1OTEsIDAuOTA5NjA5LCAxLjExNTQ0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4OTk5NiwgMC4xMzk2MzcsIDAuNDIxMjM1LCAwLjY3MTYwNSwgMS4wMDEzMSwgMS42NjMzNCwgMi4wODUzNCIsIFwKLSAgICAgICAgICAiMC4wOTAxNzMsIDAuMTM5NDUzLCAwLjQyMDkxNiwgMC42Njk4OTgsIDEuMDAxNTMsIDEuNjY2OTUsIDIuMDc5OCIsIFwKLSAgICAgICAgICAiMC4wOTAzNjcsIDAuMTM5NzUyLCAwLjQyMDgzMywgMC42NzAwODksIDEuMDAzOTIsIDEuNjY1MTQsIDIuMDg0OTUiLCBcCi0gICAgICAgICAgIjAuMDkwNjY0LCAwLjEzOTk3NSwgMC40MjEwMTIsIDAuNjY5ODQ5LCAxLjAwMTUsIDEuNjY3MjgsIDIuMDg1MDIiLCBcCi0gICAgICAgICAgIjAuMDkxMjE3LCAwLjE0MDI0NywgMC40MjIyMjQsIDAuNjcxNDYzLCAxLjAwMTc1LCAxLjY2OTQxLCAyLjA4MDk1IiwgXAotICAgICAgICAgICIwLjA5MTkxNCwgMC4xNDAzNDMsIDAuNDIyMTY0LCAwLjY3MTc1NywgMS4wMDE1MSwgMS42NjU2NywgMi4wNzk5OSIsIFwKLSAgICAgICAgICAiMC4wOTI5OTksIDAuMTQwNzE1LCAwLjQyMjIwMywgMC42NzA3MTQsIDEuMDAyNDUsIDEuNjY1MDIsIDIuMDgxNjEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDEzOTYsIDAuMDAxMzk5LCAwLjAwMTQwMSwgMC4wMDE0MDEsIDAuMDAxNDAyLCAwLjAwMTQwNCwgMC4wMDE0MDIiLCBcCi0gICAgICAgICAgIjAuMDAxMzY3LCAwLjAwMTM3LCAwLjAwMTM3NCwgMC4wMDEzNzUsIDAuMDAxMzc1LCAwLjAwMTM3NiwgMC4wMDEzNzYiLCBcCi0gICAgICAgICAgIjAuMDAxMzU0LCAwLjAwMTM1OCwgMC4wMDEzNjQsIDAuMDAxMzY2LCAwLjAwMTM2NiwgMC4wMDEzNjcsIDAuMDAxMzY3IiwgXAotICAgICAgICAgICIwLjAwMTM1MywgMC4wMDEzNTcsIDAuMDAxMzYzLCAwLjAwMTM2NCwgMC4wMDEzNjMsIDAuMDAxMzY0LCAwLjAwMTM2NCIsIFwKLSAgICAgICAgICAiMC4wMDEzNDgsIDAuMDAxMzU1LCAwLjAwMTM2MiwgMC4wMDEzNjQsIDAuMDAxMzY1LCAwLjAwMTM2NSwgMC4wMDEzNjUiLCBcCi0gICAgICAgICAgIjAuMDAxMzUyLCAwLjAwMTM1OCwgMC4wMDEzNjcsIDAuMDAxMzcsIDAuMDAxMzcxLCAwLjAwMTM3MSwgMC4wMDEzNzEiLCBcCi0gICAgICAgICAgIjAuMDAxMzYxLCAwLjAwMTM2NiwgMC4wMDEzNzYsIDAuMDAxMzc3LCAwLjAwMTM3OCwgMC4wMDEzNzksIDAuMDAxMzgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI0NjEsIDAuMDAyNDY1LCAwLjAwMjQ3MSwgMC4wMDI0NzIsIDAuMDAyNDczLCAwLjAwMjQ3MywgMC4wMDI0NzMiLCBcCi0gICAgICAgICAgIjAuMDAyNDQyLCAwLjAwMjQ0OCwgMC4wMDI0NTcsIDAuMDAyNDU4LCAwLjAwMjQ1OSwgMC4wMDI0NiwgMC4wMDI0NiIsIFwKLSAgICAgICAgICAiMC4wMDI0MzUsIDAuMDAyNDQzLCAwLjAwMjQ1NiwgMC4wMDI0NTgsIDAuMDAyNDYsIDAuMDAyNDYxLCAwLjAwMjQ2MSIsIFwKLSAgICAgICAgICAiMC4wMDI0MzUsIDAuMDAyNDQ0LCAwLjAwMjQ2LCAwLjAwMjQ2MywgMC4wMDI0NjUsIDAuMDAyNDY2LCAwLjAwMjQ2NyIsIFwKLSAgICAgICAgICAiMC4wMDI0NDEsIDAuMDAyNDUxLCAwLjAwMjQ2OCwgMC4wMDI0NzEsIDAuMDAyNDczLCAwLjAwMjQ3NSwgMC4wMDI0NzYiLCBcCi0gICAgICAgICAgIjAuMDAyNDQ3LCAwLjAwMjQ1OCwgMC4wMDI0NzYsIDAuMDAyNDgsIDAuMDAyNDgzLCAwLjAwMjQ4NSwgMC4wMDI0ODYiLCBcCi0gICAgICAgICAgIjAuMDAyNDYxLCAwLjAwMjQ3MiwgMC4wMDI0OTMsIDAuMDAyNDk2LCAwLjAwMjUwMSwgMC4wMDI1MDIsIDAuMDAyNTA0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxMzk3LCAwLjAwMTQwMSwgMC4wMDE0MDcsIDAuMDAxNDA4LCAwLjAwMTQwOSwgMC4wMDE0MDksIDAuMDAxNDA5IiwgXAotICAgICAgICAgICIwLjAwMTM2NywgMC4wMDEzNzMsIDAuMDAxMzgsIDAuMDAxMzgyLCAwLjAwMTM4MiwgMC4wMDEzODMsIDAuMDAxMzgzIiwgXAotICAgICAgICAgICIwLjAwMTM2MiwgMC4wMDEzNjgsIDAuMDAxMzc4LCAwLjAwMTM3OSwgMC4wMDEzODEsIDAuMDAxMzgyLCAwLjAwMTM4MiIsIFwKLSAgICAgICAgICAiMC4wMDEzNywgMC4wMDEzNzYsIDAuMDAxMzg2LCAwLjAwMTM4OCwgMC4wMDEzOSwgMC4wMDEzOTEsIDAuMDAxMzkxIiwgXAotICAgICAgICAgICIwLjAwMTM4MSwgMC4wMDEzODcsIDAuMDAxMzk4LCAwLjAwMTQwMiwgMC4wMDE0MDMsIDAuMDAxNDA0LCAwLjAwMTQwNSIsIFwKLSAgICAgICAgICAiMC4wMDEzOTMsIDAuMDAxNCwgMC4wMDE0MDksIDAuMDAxNDEyLCAwLjAwMTQxNCwgMC4wMDE0MTYsIDAuMDAxNDE2IiwgXAotICAgICAgICAgICIwLjAwMTQxNiwgMC4wMDE0MiwgMC4wMDE0MzIsIDAuMDAxNDM1LCAwLjAwMTQzNywgMC4wMDE0MzksIDAuMDAxNDM5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyMjQxLCAwLjAwMjI0NywgMC4wMDIyNTQsIDAuMDAyMjU1LCAwLjAwMjI1NiwgMC4wMDIyNTcsIDAuMDAyMjU3IiwgXAotICAgICAgICAgICIwLjAwMjIxMywgMC4wMDIyMjEsIDAuMDAyMjMxLCAwLjAwMjIzMywgMC4wMDIyMzUsIDAuMDAyMjM2LCAwLjAwMjIzNiIsIFwKLSAgICAgICAgICAiMC4wMDIyLCAwLjAwMjIxLCAwLjAwMjIyNSwgMC4wMDIyMjgsIDAuMDAyMjI5LCAwLjAwMjIzMSwgMC4wMDIyMzEiLCBcCi0gICAgICAgICAgIjAuMDAyMTkzLCAwLjAwMjIwNSwgMC4wMDIyMjIsIDAuMDAyMjI2LCAwLjAwMjIyOCwgMC4wMDIyMywgMC4wMDIyMzEiLCBcCi0gICAgICAgICAgIjAuMDAyMTk2LCAwLjAwMjIwNywgMC4wMDIyMjcsIDAuMDAyMjMxLCAwLjAwMjIzNCwgMC4wMDIyMzYsIDAuMDAyMjM3IiwgXAotICAgICAgICAgICIwLjAwMjIxLCAwLjAwMjIyMSwgMC4wMDIyNDMsIDAuMDAyMjQ5LCAwLjAwMjI0OSwgMC4wMDIyNTQsIDAuMDAyMjU1IiwgXAotICAgICAgICAgICIwLjAwMjIyNCwgMC4wMDIyMzMsIDAuMDAyMjYyLCAwLjAwMjI2OCwgMC4wMDIyNjYsIDAuMDAyMjc0LCAwLjAwMjI3NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogQU8yMVg0ICoKLSAqIC0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoQU8yMVg0KSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMjY0NDc7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA4NzczMjU7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwODc0MzU5OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDg3NzMyNTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA0MDksIDAuMDAwNDA5LCAwLjAwMDQwOSwgMC4wMDA0MDksIDAuMDAwNDA5LCAwLjAwMDQwOSwgMC4wMDA0MDkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA0MjEsIDAuMDAwNDExLCAwLjAwMDQxLCAwLjAwMDQxLCAwLjAwMDQxLCAwLjAwMDQxLCAwLjAwMDQxIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihBMSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwOTI1Nzg0OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDkxOTgwODsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA5MjU3ODQ7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjQzLCAwLjAwMDI0MiwgMC4wMDAyNDMsIDAuMDAwMjQyLCAwLjAwMDI0MiwgMC4wMDAyNDIsIDAuMDAwMjQyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNDY0LCAwLjAwMDQ2NCwgMC4wMDA0NjUsIDAuMDAwNDY1LCAwLjAwMDQ2NCwgMC4wMDA0NjQsIDAuMDAwNDY0Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwOTQyOTM1OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDk0Mjc4MTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA5NDI5MzU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMDg2LCAwLjAwMDA4NiwgMC4wMDAwODYsIDAuMDAwMDg2LCAwLjAwMDA4NiwgMC4wMDAwODYsIDAuMDAwMDg2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNSwgMC4wMDA1LCAwLjAwMDUsIDAuMDAwNSwgMC4wMDA1LCAwLjAwMDUsIDAuMDAwNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAxLjAxMDExOwotICAgIGZ1bmN0aW9uIDogIigoQTAgQTEpK0IwKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTAiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc0MDk3LCAwLjE1MDM2OSwgMC4yMjE3NzEsIDAuMjcyNzUsIDAuMzU0MjM4LCAwLjQyNTQ3MywgMC41MjcxOCIsIFwKLSAgICAgICAgICAiMC4wODI4NzEsIDAuMTU5MTk4LCAwLjIzMDY3NiwgMC4yODE2ODEsIDAuMzYzMTM3LCAwLjQzNDM4MiwgMC41MzYwODgiLCBcCi0gICAgICAgICAgIjAuMDkzODYxLCAwLjE3MDA3OCwgMC4yNDE1ODUsIDAuMjkyNTI5LCAwLjM3NDAwNSwgMC40NDUyNDQsIDAuNTQ2ODYyIiwgXAotICAgICAgICAgICIwLjEwNDYzMiwgMC4xODA3ODUsIDAuMjUyMjg1LCAwLjMwMzI0LCAwLjM4NDc1NSwgMC40NTU5OTIsIDAuNTU3NzM2IiwgXAotICAgICAgICAgICIwLjExNDczOCwgMC4xOTEwNDIsIDAuMjYyNTM3LCAwLjMxMzUxNywgMC4zOTUwMTIsIDAuNDY2MjU5LCAwLjU2Nzk2OSIsIFwKLSAgICAgICAgICAiMC4xMzAyNCwgMC4yMDY2NzEsIDAuMjc4MTcsIDAuMzI5MTMyLCAwLjQxMDU4MywgMC40ODE4MjksIDAuNTgzNjE5IiwgXAotICAgICAgICAgICIwLjE0MjI4MywgMC4yMTkyNTgsIDAuMjkwNzU0LCAwLjM0MTcwNywgMC40MjMxNjMsIDAuNDk0NDc0LCAwLjU5NjE4NyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzOTY0NCwgMC4xNzk3MSwgMC4zMjQ5MzEsIDAuNDI5NTQ4LCAwLjU5NjIwMywgMC43NDQwNDEsIDAuOTUzODY1IiwgXAotICAgICAgICAgICIwLjAzOTUxMiwgMC4xNzk3MDUsIDAuMzI0OTI1LCAwLjQyODY2LCAwLjU5NjEwMSwgMC43NDQwMTEsIDAuOTUzODM4IiwgXAotICAgICAgICAgICIwLjAzOTQzNywgMC4xNzk3MDEsIDAuMzI1MDEyLCAwLjQyOTQwOSwgMC41OTcxMjQsIDAuNzQzOTM3LCAwLjk1MTQ4MSIsIFwKLSAgICAgICAgICAiMC4wMzk1ODksIDAuMTc5NzE2LCAwLjMyNDkxOSwgMC40MjkzOSwgMC41OTcxNzYsIDAuNzQzOTkyLCAwLjk1MjczNCIsIFwKLSAgICAgICAgICAiMC4wNDAwOTcsIDAuMTc5ODIxLCAwLjMyNDkyOCwgMC40Mjk0NzUsIDAuNTk2MTk0LCAwLjc0Mzg5NiwgMC45NTM3MDgiLCBcCi0gICAgICAgICAgIjAuMDQxMTgyLCAwLjE4MDEwNiwgMC4zMjUxNTYsIDAuNDI4ODc0LCAwLjU5NjgyMiwgMC43NDI5OTYsIDAuOTUzNzY4IiwgXAotICAgICAgICAgICIwLjA0MjM4MywgMC4xODA2MDEsIDAuMzI1MzEyLCAwLjQyODk4LCAwLjU5NzA5MywgMC43NDM5OTYsIDAuOTUzNzUyIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc3Mzc2LCAwLjE1NjM0OCwgMC4yMjk5NzYsIDAuMjgyNDYsIDAuMzY2MzU3LCAwLjQzOTc2NiwgMC41NDQ2MTUiLCBcCi0gICAgICAgICAgIjAuMDg2Njc3LCAwLjE2NTcyNywgMC4yMzkzNjMsIDAuMjkxODI1LCAwLjM3NTc2MiwgMC40NDkxNjksIDAuNTUzOTc4IiwgXAotICAgICAgICAgICIwLjA5NjkyMSwgMC4xNzU5MjUsIDAuMjQ5NTYzLCAwLjMwMjAzOSwgMC4zODU5NzEsIDAuNDU5NDI2LCAwLjU2NDIyMiIsIFwKLSAgICAgICAgICAiMC4xMDY5MTQsIDAuMTg1OTMxLCAwLjI1OTU2NCwgMC4zMTIwNTgsIDAuMzk1OTg2LCAwLjQ2OTQwOCwgMC41NzQyMTEiLCBcCi0gICAgICAgICAgIjAuMTE2MzYyLCAwLjE5NTQ0OSwgMC4yNjkwODIsIDAuMzIxNTU2LCAwLjQwNTUwNCwgMC40Nzg5MjcsIDAuNTgzNzMxIiwgXAotICAgICAgICAgICIwLjEzMDE1NiwgMC4yMDk1OTgsIDAuMjgzMjUxLCAwLjMzNTcyMywgMC40MTk2NjgsIDAuNDkzMDcyLCAwLjU5NzkyNSIsIFwKLSAgICAgICAgICAiMC4xNDA5MywgMC4yMjA4OTUsIDAuMjk0NTI4LCAwLjM0NzAwMiwgMC40MzA5MjksIDAuNTA0MzEzLCAwLjYwOTE1OSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0MDIzLCAwLjE4MjQyOCwgMC4zMjg3NDUsIDAuNDM1MTksIDAuNjA0Nzg4LCAwLjc1MzYxNCwgMC45NjUxODYiLCBcCi0gICAgICAgICAgIjAuMDQwMTQ2LCAwLjE4MjQyNiwgMC4zMjk0NDgsIDAuNDM1MTAzLCAwLjYwNDk0MywgMC43NTIwMDgsIDAuOTY2MjI5IiwgXAotICAgICAgICAgICIwLjA0MDEwNywgMC4xODI0MjMsIDAuMzI5NCwgMC40MzUwNjYsIDAuNjAzOTAyLCAwLjc1MTU0NSwgMC45NjYzNDIiLCBcCi0gICAgICAgICAgIjAuMDQwMjE1LCAwLjE4MjQyMywgMC4zMjg5NTMsIDAuNDM1MTc3LCAwLjYwMzk2MiwgMC43NTM2MDksIDAuOTY2MjQ3IiwgXAotICAgICAgICAgICIwLjA0MDYyNSwgMC4xODI1NDEsIDAuMzI4OTkyLCAwLjQzNTEwNCwgMC42MDQyMzEsIDAuNzUzNTc4LCAwLjk2NjI1OSIsIFwKLSAgICAgICAgICAiMC4wNDE4NCwgMC4xODMwMzYsIDAuMzI5NjEsIDAuNDM1MTk5LCAwLjYwMzU3NCwgMC43NTE5NSwgMC45NjYyOSIsIFwKLSAgICAgICAgICAiMC4wNDMyMjksIDAuMTgzNjA5LCAwLjMyOTg5MSwgMC40MzQ5NTMsIDAuNjA0OTAyLCAwLjc1MzE2OSwgMC45NjYyNjIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTEiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDcxODA5LCAwLjE0ODExOSwgMC4yMTk1MTgsIDAuMjcwNDc4LCAwLjM1MTk3NiwgMC40MjMyMTUsIDAuNTI0OTI2IiwgXAotICAgICAgICAgICIwLjA4MDgzNSwgMC4xNTcwODcsIDAuMjI4NTc0LCAwLjI3OTUyNiwgMC4zNjEwMzQsIDAuNDMyMjg0LCAwLjUzMzk5NiIsIFwKLSAgICAgICAgICAiMC4wOTI3MTYsIDAuMTY4OTYzLCAwLjI0MDQ4OCwgMC4yOTE0NDMsIDAuMzcyOTQ0LCAwLjQ0NDIxLCAwLjU0NTkyIiwgXAotICAgICAgICAgICIwLjEwNDQ3OCwgMC4xODA2NiwgMC4yNTIxNTIsIDAuMzAzMTYyLCAwLjM4NDYzMSwgMC40NTU4NzQsIDAuNTU3NTg4IiwgXAotICAgICAgICAgICIwLjExNTk3OSwgMC4xOTIyNDIsIDAuMjYzNzQ1LCAwLjMxNDcwMywgMC4zOTYyMDcsIDAuNDY3NDc3LCAwLjU2OTE5MSIsIFwKLSAgICAgICAgICAiMC4xMzMwNTgsIDAuMjA5NzIyLCAwLjI4MTA4NiwgMC4zMzIwMzEsIDAuNDEzNTI0LCAwLjQ4NDgwOSwgMC41ODY1MSIsIFwKLSAgICAgICAgICAiMC4xNDYxLCAwLjIyMzE1MSwgMC4yOTQ2MTQsIDAuMzQ1NTY3LCAwLjQyNzA0LCAwLjQ5ODM1NSwgMC42MDAwNTIiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzk2NTEsIDAuMTc5NjAzLCAwLjMyNDY4MywgMC40Mjg5NDIsIDAuNTk2MTkzLCAwLjc0Mjc2NiwgMC45NTM4NjMiLCBcCi0gICAgICAgICAgIjAuMDM5NDgsIDAuMTc5NywgMC4zMjQ5MTUsIDAuNDI5Mzc2LCAwLjU5NjExNywgMC43NDQwMTksIDAuOTUzODE2IiwgXAotICAgICAgICAgICIwLjAzOTQxLCAwLjE3OTcxNSwgMC4zMjQ5MjIsIDAuNDI5Mzc2LCAwLjU5NTQ2OCwgMC43NDQwMzQsIDAuOTUzODE3IiwgXAotICAgICAgICAgICIwLjAzOTQ5NywgMC4xNzk3MDMsIDAuMzI0OTE0LCAwLjQyOTQ5OCwgMC41OTYxNjIsIDAuNzQ0LCAwLjk1MzgwOCIsIFwKLSAgICAgICAgICAiMC4wNDAxNDMsIDAuMTc5ODMyLCAwLjMyNDkyNywgMC40MjkzNjUsIDAuNTk2MzMsIDAuNzQzOTEzLCAwLjk1MzcxNyIsIFwKLSAgICAgICAgICAiMC4wNDE5NDEsIDAuMTgwMjA2LCAwLjMyNTExOCwgMC40Mjk0NTEsIDAuNTk2MzQ5LCAwLjc0Mzk1LCAwLjk1MzcxNSIsIFwKLSAgICAgICAgICAiMC4wNDM5MzcsIDAuMTgwODE0LCAwLjMyNTM3NSwgMC40Mjg4NTcsIDAuNTk2NTEsIDAuNzQyNjYsIDAuOTUzNzU0Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDczNTgyLCAwLjE1MjM2MiwgMC4yMjU5NSwgMC4yNzg0MDksIDAuMzYyMjc1LCAwLjQzNTc0MywgMC41NDA1MDEiLCBcCi0gICAgICAgICAgIjAuMDgyOTU3LCAwLjE2MTU4MywgMC4yMzUxNTMsIDAuMjg3NTg4LCAwLjM3MTQ3MywgMC40NDQ5MzgsIDAuNTQ5ODgyIiwgXAotICAgICAgICAgICIwLjA5MzEyLCAwLjE3MTc4OCwgMC4yNDUzNDUsIDAuMjk3Nzg5LCAwLjM4MTcwOCwgMC40NTUxMDcsIDAuNTYwMDA5IiwgXAotICAgICAgICAgICIwLjEwMzAyOSwgMC4xODE2NywgMC4yNTUyMzIsIDAuMzA3Njc1LCAwLjM5MTYxMiwgMC40NjQ5OTcsIDAuNTY5OSIsIFwKLSAgICAgICAgICAiMC4xMTIzNDcsIDAuMTkxMTUsIDAuMjY0Njk4LCAwLjMxNzE2NCwgMC40MDEwNzQsIDAuNDc0NDU5LCAwLjU3OTM4MyIsIFwKLSAgICAgICAgICAiMC4xMjU4NTEsIDAuMjA0OTk4LCAwLjI3ODU2NiwgMC4zMzEwMDksIDAuNDE0OTI5LCAwLjQ4ODM2NCwgMC41OTMyNTEiLCBcCi0gICAgICAgICAgIjAuMTM2Mzk0LCAwLjIxNjAwMSwgMC4yODk1NjMsIDAuMzQxOTkxLCAwLjQyNTg5NCwgMC40OTkzMTYsIDAuNjA0MTIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzk3NDksIDAuMTgyMDI1LCAwLjMyODk1MSwgMC40MzM2ODgsIDAuNjA0MDE0LCAwLjc1MTM3OSwgMC45NjYwNTkiLCBcCi0gICAgICAgICAgIjAuMDM5NjI5LCAwLjE4MjAwMywgMC4zMjg5NzEsIDAuNDM0NzQyLCAwLjYwNDQ2MiwgMC43NTEzODIsIDAuOTY0MDU0IiwgXAotICAgICAgICAgICIwLjAzOTYyMSwgMC4xODE5NTYsIDAuMzI5MDExLCAwLjQzNDcyMywgMC42MDM3NDMsIDAuNzUzNDgxLCAwLjk2NDY3NyIsIFwKLSAgICAgICAgICAiMC4wMzk4MjYsIDAuMTgxOTkyLCAwLjMyOTAxMSwgMC40MzQ3NDksIDAuNjA0NzIzLCAwLjc1MzQ4NCwgMC45NjQ2NDYiLCBcCi0gICAgICAgICAgIjAuMDQwMzgzLCAwLjE4MjE2MSwgMC4zMjkwOTIsIDAuNDM0ODU5LCAwLjYwMzI4LCAwLjc1MzQzNCwgMC45NjUwNDUiLCBcCi0gICAgICAgICAgIjAuMDQxNzAyLCAwLjE4MjcwMywgMC4zMjkzMTUsIDAuNDM0OTE4LCAwLjYwNDc1MSwgMC43NTEzODIsIDAuOTYzOTQzIiwgXAotICAgICAgICAgICIwLjA0Mjk0OSwgMC4xODMyNzIsIDAuMzI5NjIzLCAwLjQzNTA4NywgMC42MDM5MjksIDAuNzUyNjA3LCAwLjk2NTg1NiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDQ4MzIsIDAuMTE3NDMsIDAuMTg4NjUsIDAuMjM5NTY2LCAwLjMyMDkwMiwgMC4zOTIyMzQsIDAuNDk0MDQ5IiwgXAotICAgICAgICAgICIwLjA1NTAyNiwgMC4xMjc2NTQsIDAuMTk4ODgsIDAuMjQ5NzM0LCAwLjMzMTIwOCwgMC40MDIzMzksIDAuNTA0MDQ1IiwgXAotICAgICAgICAgICIwLjA2Nzc2MywgMC4xNDA0MjYsIDAuMjExNjUyLCAwLjI2MjUwOSwgMC4zNDM5NDksIDAuNDE1MjA0LCAwLjUxNjg5NCIsIFwKLSAgICAgICAgICAiMC4wNzk0MDMsIDAuMTUyMTQ3LCAwLjIyMzM3LCAwLjI3NDI0NywgMC4zNTU2MjEsIDAuNDI2ODM1LCAwLjUyODY4NSIsIFwKLSAgICAgICAgICAiMC4wODk2MjcsIDAuMTYyNjYxLCAwLjIzMzg4NCwgMC4yODQ3OCwgMC4zNjYxMywgMC40MzczMjcsIDAuNTM5MTcxIiwgXAotICAgICAgICAgICIwLjEwMzU3MywgMC4xNzcyMzEsIDAuMjQ4MzU4LCAwLjI5OTIxOCwgMC4zODA1NzYsIDAuNDUxODc3LCAwLjU1MzUxNiIsIFwKLSAgICAgICAgICAiMC4xMTQ3MTYsIDAuMTg5MDAyLCAwLjI2MDA4NCwgMC4zMTA5MjcsIDAuMzkyMzY0LCAwLjQ2MzQ4NywgMC41NjU0NzQiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzMwOTIsIDAuMTc1NTMzLCAwLjMyMTU1NiwgMC40MjY5NTcsIDAuNTk1MDY3LCAwLjc0MTA1NCwgMC45NTAzOTYiLCBcCi0gICAgICAgICAgIjAuMDMzMTA4LCAwLjE3NTUzNCwgMC4zMjE5OSwgMC40MjY5NzgsIDAuNTk0MjYyLCAwLjc0MTcwNiwgMC45NTAxNTMiLCBcCi0gICAgICAgICAgIjAuMDMzNDI5LCAwLjE3NTU1OSwgMC4zMjIwMzcsIDAuNDI2OTcxLCAwLjU5MzkwMywgMC43NDEwOTUsIDAuOTUwMTA0IiwgXAotICAgICAgICAgICIwLjAzNDY3MiwgMC4xNzU1MDgsIDAuMzIxOTksIDAuNDI2OTI4LCAwLjU5NDk0MSwgMC43NDE2MzMsIDAuOTUwMzYxIiwgXAotICAgICAgICAgICIwLjAzNjQ5MywgMC4xNzU5MzUsIDAuMzIxNjIyLCAwLjQyNjkwNywgMC41OTUwNTQsIDAuNzQwNjA4LCAwLjk1MDM1MiIsIFwKLSAgICAgICAgICAiMC4wMzkyMiwgMC4xNzY2NjMsIDAuMzIyMTgxLCAwLjQyNjk5OCwgMC41OTQ5NDIsIDAuNzQwNjkyLCAwLjk1MTU2NiIsIFwKLSAgICAgICAgICAiMC4wNDE0MTIsIDAuMTc3MDksIDAuMzIyMDgzLCAwLjQyNzAyMywgMC41OTQ5NTYsIDAuNzQxOTgzLCAwLjk1MTU2MSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3MDQ0LCAwLjE0OTQ2OCwgMC4yMjMxMDQsIDAuMjc1NTY1LCAwLjM1OTQ4MSwgMC40MzI4ODIsIDAuNTM3Nzg5IiwgXAotICAgICAgICAgICIwLjA3OTI4MSwgMC4xNTgzMjEsIDAuMjMxOTIyLCAwLjI4NDM5OSwgMC4zNjgzMzMsIDAuNDQxNzE4LCAwLjU0NjU4OCIsIFwKLSAgICAgICAgICAiMC4wOTA5NTYsIDAuMTY5OTA0LCAwLjI0MzU0MSwgMC4yOTYwMjksIDAuMzc5OTMzLCAwLjQ1MzM0LCAwLjU1ODIwNyIsIFwKLSAgICAgICAgICAiMC4xMDI0MDUsIDAuMTgxMzgxLCAwLjI1NTAyOSwgMC4zMDc1MDcsIDAuMzkxNDUyLCAwLjQ2NDg5NSwgMC41Njk2OTciLCBcCi0gICAgICAgICAgIjAuMTEzMzIyLCAwLjE5MjM5NCwgMC4yNjYwNCwgMC4zMTg1MjQsIDAuNDAyNDU2LCAwLjQ3NTg4OSwgMC41ODA2OTkiLCBcCi0gICAgICAgICAgIjAuMTI4ODg2LCAwLjIwODI5MywgMC4yODE5MjQsIDAuMzM0Mzg1LCAwLjQxODMxNSwgMC40OTE3MzMsIDAuNTk2NTcxIiwgXAotICAgICAgICAgICIwLjE0MDgwMiwgMC4yMjA3NTYsIDAuMjk0MzU2LCAwLjM0NjgyNywgMC40MzA3NTYsIDAuNTA0MjAxLCAwLjYwODk4OCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0MDE4MSwgMC4xODI0MjQsIDAuMzI5NDU4LCAwLjQzNDkzNywgMC42MDQ2MjQsIDAuNzUzMzI2LCAwLjk2NjMyNiIsIFwKLSAgICAgICAgICAiMC4wNDAxNjgsIDAuMTgyNDIxLCAwLjMyOTQyMywgMC40MzQ3MzIsIDAuNjAzNTMzLCAwLjc1MzM0NCwgMC45NjY0MyIsIFwKLSAgICAgICAgICAiMC4wNDAxNTcsIDAuMTgyNDEyLCAwLjMyODk1NywgMC40MzUxNTQsIDAuNjA0Nzg3LCAwLjc1MzUzOSwgMC45NjQxMDciLCBcCi0gICAgICAgICAgIjAuMDQwMzU1LCAwLjE4MjQ2OCwgMC4zMjkwOTYsIDAuNDM1MDk3LCAwLjYwNDUxNCwgMC43NTM1ODcsIDAuOTY2MzQ1IiwgXAotICAgICAgICAgICIwLjA0MTI0LCAwLjE4MjU5MywgMC4zMjk0NDUsIDAuNDM1MTA4LCAwLjYwNDg0NCwgMC43NTM2NzQsIDAuOTY2MTQzIiwgXAotICAgICAgICAgICIwLjA0MjY4NiwgMC4xODMyOSwgMC4zMjk3MzUsIDAuNDM1MjIzLCAwLjYwNDg3MywgMC43NTM2NjIsIDAuOTY1NzgxIiwgXAotICAgICAgICAgICIwLjA0NDMzMiwgMC4xODQwMzQsIDAuMzI5OTkyLCAwLjQzNTMyNiwgMC42MDUwMjEsIDAuNzUzODczLCAwLjk2NjI0MyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDc4OSwgMC4wMDQ5NzMsIDAuMDA1MDA1LCAwLjAwNTAxNSwgMC4wMDUwMjQsIDAuMDA1MDMxLCAwLjAwNTAzMyIsIFwKLSAgICAgICAgICAiMC4wMDQ3NTEsIDAuMDA0OTM4LCAwLjAwNDk3MSwgMC4wMDQ5ODEsIDAuMDA0OTg3LCAwLjAwNDk5NywgMC4wMDUwMDIiLCBcCi0gICAgICAgICAgIjAuMDA0NzIzLCAwLjAwNDkwOSwgMC4wMDQ5NDMsIDAuMDA0OTU2LCAwLjAwNDk2NywgMC4wMDQ5NzIsIDAuMDA0OTgiLCBcCi0gICAgICAgICAgIjAuMDA0NzEsIDAuMDA0ODg4LCAwLjAwNDkyOSwgMC4wMDQ5NDQsIDAuMDA0OTU0LCAwLjAwNDk2LCAwLjAwNDk2NiIsIFwKLSAgICAgICAgICAiMC4wMDQ3MSwgMC4wMDQ4NzUsIDAuMDA0OTE4LCAwLjAwNDkzMiwgMC4wMDQ5NDYsIDAuMDA0OTQ4LCAwLjAwNDk1OSIsIFwKLSAgICAgICAgICAiMC4wMDQ3NDEsIDAuMDA0ODY4LCAwLjAwNDkxMiwgMC4wMDQ5MjYsIDAuMDA0OTQyLCAwLjAwNDk1MiwgMC4wMDQ5NjEiLCBcCi0gICAgICAgICAgIjAuMDA0NzEyLCAwLjAwNDg1OCwgMC4wMDQ5MDIsIDAuMDA0OTI0LCAwLjAwNDkzOSwgMC4wMDQ5NTEsIDAuMDA0OTU2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDY5NzUsIDAuMDA3MjEzLCAwLjAwNzI1NCwgMC4wMDcyNjcsIDAuMDA3Mjc4LCAwLjAwNzI4NCwgMC4wMDcyODkiLCBcCi0gICAgICAgICAgIjAuMDA2OTU1LCAwLjAwNzE5NCwgMC4wMDcyMzUsIDAuMDA3MjQ4LCAwLjAwNzI2LCAwLjAwNzI2NiwgMC4wMDcyNzEiLCBcCi0gICAgICAgICAgIjAuMDA2OTMxLCAwLjAwNzE3NCwgMC4wMDcyMTksIDAuMDA3MjMzLCAwLjAwNzI0NiwgMC4wMDcyNTMsIDAuMDA3MjU5IiwgXAotICAgICAgICAgICIwLjAwNjkyNywgMC4wMDcxNjEsIDAuMDA3MjA5LCAwLjAwNzIyNCwgMC4wMDcyMzgsIDAuMDA3MjQ1LCAwLjAwNzI1MSIsIFwKLSAgICAgICAgICAiMC4wMDY5MTksIDAuMDA3MTQ5LCAwLjAwNzIsIDAuMDA3MjE3LCAwLjAwNzIzMiwgMC4wMDcyNCwgMC4wMDcyNDciLCBcCi0gICAgICAgICAgIjAuMDA2OTA3LCAwLjAwNzEzLCAwLjAwNzE4MywgMC4wMDcyMDIsIDAuMDA3MjIsIDAuMDA3MjI5LCAwLjAwNzIzOCIsIFwKLSAgICAgICAgICAiMC4wMDY5MjQsIDAuMDA3MTI1LCAwLjAwNzE4MiwgMC4wMDcyMDEsIDAuMDA3MjIxLCAwLjAwNzIzLCAwLjAwNzIzOSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkExIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDc5NCwgMC4wMDQ5NzQsIDAuMDA1MDA0LCAwLjAwNTAxNCwgMC4wMDUwMjIsIDAuMDA1MDI5LCAwLjAwNTAzNyIsIFwKLSAgICAgICAgICAiMC4wMDQ3NDMsIDAuMDA0OTI2LCAwLjAwNDk1OSwgMC4wMDQ5NzIsIDAuMDA0OTc5LCAwLjAwNDk4NSwgMC4wMDQ5OTIiLCBcCi0gICAgICAgICAgIjAuMDA0NzE4LCAwLjAwNDg5OCwgMC4wMDQ5MzcsIDAuMDA0OTUsIDAuMDA0OTY1LCAwLjAwNDk2NywgMC4wMDQ5NzMiLCBcCi0gICAgICAgICAgIjAuMDA0NzE2LCAwLjAwNDg4NiwgMC4wMDQ5MjksIDAuMDA0OTQ1LCAwLjAwNDk1OSwgMC4wMDQ5NjUsIDAuMDA0OTcyIiwgXAotICAgICAgICAgICIwLjAwNDcxOSwgMC4wMDQ4ODEsIDAuMDA0OTI4LCAwLjAwNDk0NywgMC4wMDQ5NjEsIDAuMDA0OTY5LCAwLjAwNDk3NyIsIFwKLSAgICAgICAgICAiMC4wMDQ3NTUsIDAuMDA0ODksIDAuMDA0OTM5LCAwLjAwNDk1OCwgMC4wMDQ5NzUsIDAuMDA0OTc5LCAwLjAwNDk5OCIsIFwKLSAgICAgICAgICAiMC4wMDQ3ODMsIDAuMDA0OTA5LCAwLjAwNDk1OSwgMC4wMDQ5NzgsIDAuMDA0OTk5LCAwLjAwNTAwOCwgMC4wMDUwMTgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjU5NCwgMC4wMDY4MjYsIDAuMDA2ODYzLCAwLjAwNjg3NSwgMC4wMDY4ODUsIDAuMDA2ODksIDAuMDA2ODk2IiwgXAotICAgICAgICAgICIwLjAwNjU2MiwgMC4wMDY3OTYsIDAuMDA2ODM1LCAwLjAwNjg0NywgMC4wMDY4NTgsIDAuMDA2ODYzLCAwLjAwNjg2OCIsIFwKLSAgICAgICAgICAiMC4wMDY1MjUsIDAuMDA2NzY5LCAwLjAwNjgxLCAwLjAwNjgyMywgMC4wMDY4MzUsIDAuMDA2ODQxLCAwLjAwNjg0NiIsIFwKLSAgICAgICAgICAiMC4wMDY1MTUsIDAuMDA2NzQ5LCAwLjAwNjc5NCwgMC4wMDY4MDgsIDAuMDA2ODIxLCAwLjAwNjgyNywgMC4wMDY4MzMiLCBcCi0gICAgICAgICAgIjAuMDA2NTAyLCAwLjAwNjczMSwgMC4wMDY3OCwgMC4wMDY3OTYsIDAuMDA2ODEsIDAuMDA2ODE4LCAwLjAwNjgyNSIsIFwKLSAgICAgICAgICAiMC4wMDY0OTQsIDAuMDA2NzE0LCAwLjAwNjc2NiwgMC4wMDY3ODQsIDAuMDA2OCwgMC4wMDY4MDgsIDAuMDA2ODE2IiwgXAotICAgICAgICAgICIwLjAwNjUyLCAwLjAwNjcwMiwgMC4wMDY3NjEsIDAuMDA2NzgsIDAuMDA2Nzk3LCAwLjAwNjgwNywgMC4wMDY4MTUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQzNjUsIDAuMDA0NDc0LCAwLjAwNDQ4NCwgMC4wMDQ0ODgsIDAuMDA0NDksIDAuMDA0NDkyLCAwLjAwNDQ5MyIsIFwKLSAgICAgICAgICAiMC4wMDQzMDIsIDAuMDA0NDMzLCAwLjAwNDQ0OCwgMC4wMDQ0NTMsIDAuMDA0NDU3LCAwLjAwNDQ1OSwgMC4wMDQ0NiIsIFwKLSAgICAgICAgICAiMC4wMDQyNTMsIDAuMDA0Mzk4LCAwLjAwNDQxOSwgMC4wMDQ0MjUsIDAuMDA0NDMxLCAwLjAwNDQzNCwgMC4wMDQ0MzYiLCBcCi0gICAgICAgICAgIjAuMDA0MjM3LCAwLjAwNDM4NiwgMC4wMDQ0MTQsIDAuMDA0NDIyLCAwLjAwNDQzNCwgMC4wMDQ0MzcsIDAuMDA0NDM4IiwgXAotICAgICAgICAgICIwLjAwNDI1MywgMC4wMDQzODgsIDAuMDA0NDE3LCAwLjAwNDQyNywgMC4wMDQ0MzUsIDAuMDA0NDQsIDAuMDA0NDQ1IiwgXAotICAgICAgICAgICIwLjAwNDMsIDAuMDA0NDE1LCAwLjAwNDQ0NiwgMC4wMDQ0NTIsIDAuMDA0NDY1LCAwLjAwNDQ3MSwgMC4wMDQ0NzciLCBcCi0gICAgICAgICAgIjAuMDA0MzA3LCAwLjAwNDQwNSwgMC4wMDQ0MzgsIDAuMDA0NDUsIDAuMDA0NDY3LCAwLjAwNDQ2OSwgMC4wMDQ0NzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjE4NCwgMC4wMDY0MjEsIDAuMDA2NDYxLCAwLjAwNjQ3NCwgMC4wMDY0ODUsIDAuMDA2NDkxLCAwLjAwNjQ5NiIsIFwKLSAgICAgICAgICAiMC4wMDYxMzcsIDAuMDA2Mzc2LCAwLjAwNjQyLCAwLjAwNjQzNCwgMC4wMDY0NDYsIDAuMDA2NDUzLCAwLjAwNjQ1OCIsIFwKLSAgICAgICAgICAiMC4wMDYxMTcsIDAuMDA2MzQ4LCAwLjAwNjM5NywgMC4wMDY0MTMsIDAuMDA2NDI3LCAwLjAwNjQzNSwgMC4wMDY0NDIiLCBcCi0gICAgICAgICAgIjAuMDA2MTE5LCAwLjAwNjMzNSwgMC4wMDYzODksIDAuMDA2NDA3LCAwLjAwNjQyNSwgMC4wMDY0MzQsIDAuMDA2NDQyIiwgXAotICAgICAgICAgICIwLjAwNjEwOSwgMC4wMDYzMjUsIDAuMDA2Mzg1LCAwLjAwNjQwNywgMC4wMDY0MjcsIDAuMDA2NDM3LCAwLjAwNjQ0NyIsIFwKLSAgICAgICAgICAiMC4wMDYxMzUsIDAuMDA2MzMxLCAwLjAwNjM5NSwgMC4wMDY0MTksIDAuMDA2NDQyLCAwLjAwNjQ1NCwgMC4wMDY0NjYiLCBcCi0gICAgICAgICAgIjAuMDA2MTcyLCAwLjAwNjM0NSwgMC4wMDY0MSwgMC4wMDY0MzUsIDAuMDA2NDYsIDAuMDA2NDczLCAwLjAwNjQ4NiIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBBT0kyMTFYMSAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoQU9JMjExWDEpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4xNTkwMDg7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA5MDcwMzI7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwOTAzNDE2OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDkwNzAzMjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA0MDksIDAuMDAwNDA5LCAwLjAwMDQwOSwgMC4wMDA0MDksIDAuMDAwNDA5LCAwLjAwMDQwOSwgMC4wMDA0MDkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA0MjIsIDAuMDAwNDEyLCAwLjAwMDQxMSwgMC4wMDA0MSwgMC4wMDA0MSwgMC4wMDA0MSwgMC4wMDA0MSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQTEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDk0MDE0MjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA5MzM2MjU7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwOTQwMTQyOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDI1NSwgMC4wMDAyNTUsIDAuMDAwMjU1LCAwLjAwMDI1NSwgMC4wMDAyNTUsIDAuMDAwMjU1LCAwLjAwMDI1NSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDQ2NCwgMC4wMDA0NjQsIDAuMDAwNDY1LCAwLjAwMDQ2NSwgMC4wMDA0NjUsIDAuMDAwNDY1LCAwLjAwMDQ2NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQjApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDkwMDI4OTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA4OTUxMzI7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwOTAwMjg5OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDM1NywgMC4wMDAzODYsIDAuMDAwMzksIDAuMDAwMzkxLCAwLjAwMDM5NSwgMC4wMDAzOTYsIDAuMDAwMzk3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNDMsIDAuMDAwNDMsIDAuMDAwNDMsIDAuMDAwNDMsIDAuMDAwNDMsIDAuMDAwNDMsIDAuMDAwNDMiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEMwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA5MTI0ODI7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwOTEyNDgyOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDkxMjM2MzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxMDgsIDAuMDAwMTA4LCAwLjAwMDEwOCwgMC4wMDAxMDgsIDAuMDAwMTA4LCAwLjAwMDEwOCwgMC4wMDAxMDgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAzMjEsIDAuMDAwMzIxLCAwLjAwMDMyMSwgMC4wMDAzMjEsIDAuMDAwMzIxLCAwLjAwMDMyMSwgMC4wMDAzMjEiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4wOTUyMDU7Ci0gICAgZnVuY3Rpb24gOiAiKCEoKChBMCBBMSkrQjApK0MwKSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNTA5MTIsIDAuMjIwNjgsIDAuNjE2NDQ0LCAwLjk2NTMzOCwgMS40MzA2MiwgMi4zNjE2MywgMi45NDE2OCIsIFwKLSAgICAgICAgICAiMC4xNjAxMTUsIDAuMjMwMTQ0LCAwLjYyNTQ3NiwgMC45NzQ2NzUsIDEuNDQwNjEsIDIuMzY5OTksIDIuOTUxMDUiLCBcCi0gICAgICAgICAgIjAuMTY5NzcsIDAuMjM5NjU5LCAwLjYzNTQ2MywgMC45ODQ2MDksIDEuNDQ5OTMsIDIuMzc5MzIsIDIuOTYwNzMiLCBcCi0gICAgICAgICAgIjAuMTc4MzksIDAuMjQ4Mzk1LCAwLjY0MzkwMiwgMC45OTMwNjYsIDEuNDU4MDUsIDIuMzg3OTYsIDIuOTY5NDEiLCBcCi0gICAgICAgICAgIjAuMTg2NTc3LCAwLjI1NjU3NSwgMC42NTIxNTMsIDEuMDAxNjcsIDEuNDY3MjgsIDIuMzk4MDcsIDIuOTc4NTkiLCBcCi0gICAgICAgICAgIjAuMTk5MzMxLCAwLjI2OTI2NywgMC42NjQ5MzksIDEuMDEzODYsIDEuNDc5MDQsIDIuNDA5MzUsIDIuOTkwNDkiLCBcCi0gICAgICAgICAgIjAuMjEwMywgMC4yODAyODUsIDAuNjc2MDE4LCAxLjAyNTUsIDEuNDkwMjEsIDIuNDIxNTcsIDMuMDAyMjYiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjcwNjg5LCAwLjQxMDUzMiwgMS4yMDMwMywgMS45MDEyNywgMi44MzI3MywgNC42OTY3LCA1Ljg1ODYyIiwgXAotICAgICAgICAgICIwLjI3MDc0MSwgMC40MTA2NDQsIDEuMjAyNzUsIDEuOTAxMjMsIDIuODMzODgsIDQuNjk2MTMsIDUuODYxMDIiLCBcCi0gICAgICAgICAgIjAuMjcwNzQ0LCAwLjQxMDQ4OCwgMS4yMDI4NywgMS45MDE5MiwgMi44MzMwNywgNC42OTUyOCwgNS44NjE2MiIsIFwKLSAgICAgICAgICAiMC4yNzEwMzYsIDAuNDEwNTY2LCAxLjIwMjgsIDEuOTAxNjMsIDIuODMzNTQsIDQuNjk4MzksIDUuODYxOTgiLCBcCi0gICAgICAgICAgIjAuMjcyMTI5LCAwLjQxMDkxOSwgMS4yMDI3OSwgMS45MDE1MiwgMi44MzI4MiwgNC42OTY2MSwgNS44NTk2NCIsIFwKLSAgICAgICAgICAiMC4yNzUwMTksIDAuNDEyNjg4LCAxLjIwMjY5LCAxLjkwMTczLCAyLjgzMjI1LCA0LjY5NTQ0LCA1Ljg2MTkzIiwgXAotICAgICAgICAgICIwLjI3ODQzOSwgMC40MTQ5ODMsIDEuMjAyNjksIDEuOTAxNjEsIDIuODMyMzIsIDQuNjk2MywgNS44NjAyMSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDM1NTgsIDAuMTQ5NjU2LCAwLjQwODkxNCwgMC42MzcyNDEsIDAuOTQxNDIsIDEuNTQ5NTYsIDEuOTI5NDQiLCBcCi0gICAgICAgICAgIjAuMTEyMzk1LCAwLjE1ODQ5NywgMC40MTc4NjQsIDAuNjQ1ODc2LCAwLjk1MDQ4OSwgMS41NTg4MywgMS45Mzc3NCIsIFwKLSAgICAgICAgICAiMC4xMjMzNzQsIDAuMTY5NTEsIDAuNDI4ODk0LCAwLjY1NzA3LCAwLjk2MTE4NywgMS41NjkyMSwgMS45NDk5OSIsIFwKLSAgICAgICAgICAiMC4xMzQzNjIsIDAuMTgwNDkxLCAwLjQ0MDAzMywgMC42NjgyNTEsIDAuOTcyNjQ2LCAxLjU4MDk0LCAxLjk2MTQ4IiwgXAotICAgICAgICAgICIwLjE0NTM2LCAwLjE5MTc0NSwgMC40NTEyMjksIDAuNjc5MjU4LCAwLjk4MzUxNiwgMS41OTIwMSwgMS45NzEzNSIsIFwKLSAgICAgICAgICAiMC4xNjI5ODYsIDAuMjA4OTAzLCAwLjQ2ODYwNiwgMC42OTY4NDMsIDEuMDAxMzQsIDEuNjA5MTEsIDEuOTg4OTgiLCBcCi0gICAgICAgICAgIjAuMTc3ODM4LCAwLjIyNDMxMSwgMC40ODQyNTcsIDAuNzEyNjk2LCAxLjAxNzAyLCAxLjYyNDc2LCAyLjAwNDM3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE4MTk0NywgMC4yNzE1ODcsIDAuNzgwNzE1LCAxLjIyOTg5LCAxLjgyODQ3LCAzLjAyNTc4LCAzLjc3Mzk2IiwgXAotICAgICAgICAgICIwLjE4MTcxNywgMC4yNzE1ODYsIDAuNzgwODA2LCAxLjIyOTQzLCAxLjgyODQ2LCAzLjAyNjEsIDMuNzc0MTQiLCBcCi0gICAgICAgICAgIjAuMTgyMDczLCAwLjI3MTU3NSwgMC43ODA3MSwgMS4yMjk3NCwgMS44MjkxNywgMy4wMjU2OCwgMy43NzQzOSIsIFwKLSAgICAgICAgICAiMC4xODM4MTQsIDAuMjcyMDgzLCAwLjc4MDY5NiwgMS4yMjk3OSwgMS44Mjg0MSwgMy4wMjU1MiwgMy43NzQwNSIsIFwKLSAgICAgICAgICAiMC4xODY5MjgsIDAuMjczOTg3LCAwLjc4MDY3NiwgMS4yMzAwMSwgMS44Mjg0OCwgMy4wMjY1NSwgMy43NzM3IiwgXAotICAgICAgICAgICIwLjE5Mzc1NywgMC4yNzg3MjYsIDAuNzgwNDM2LCAxLjIyOTQ2LCAxLjgyODU4LCAzLjAyNjUxLCAzLjc3MzkyIiwgXAotICAgICAgICAgICIwLjIwMDQyLCAwLjI4NDQyLCAwLjc4MTE5MywgMS4yMjk2NywgMS44Mjg0MywgMy4wMjU2NywgMy43NzM2OCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTQ1NTU1LCAwLjIxNDc5OCwgMC42MDczMzksIDAuOTUzMTUzLCAxLjQxNTM5LCAyLjMzOTQ4LCAyLjkxNTI1IiwgXAotICAgICAgICAgICIwLjE1NDk1NiwgMC4yMjQzNDksIDAuNjE2OTQsIDAuOTYzMjg1LCAxLjQyNTcyLCAyLjM0OTM5LCAyLjkyNTgxIiwgXAotICAgICAgICAgICIwLjE2NDM5NiwgMC4yMzM3OSwgMC42MjY3NDcsIDAuOTcyOTg4LCAxLjQzNDY2LCAyLjM1ODI2LCAyLjkzNDM3IiwgXAotICAgICAgICAgICIwLjE3Mjk1NCwgMC4yNDI0MzIsIDAuNjM1NjcsIDAuOTgxOTQ4LCAxLjQ0NDU5LCAyLjM2NzYxLCAyLjk0NDIxIiwgXAotICAgICAgICAgICIwLjE4MTEyMiwgMC4yNTA1ODcsIDAuNjQzNTE1LCAwLjk5MDQ2MSwgMS40NTExOCwgMi4zNzUzMSwgMi45NTE0OSIsIFwKLSAgICAgICAgICAiMC4xOTM4NjQsIDAuMjYzMzA1LCAwLjY1NjIxOSwgMS4wMDI1OSwgMS40NjQzNiwgMi4zODc5MiwgMi45NjQ0NCIsIFwKLSAgICAgICAgICAiMC4yMDQ4NSwgMC4yNzQzMjksIDAuNjY3MzY2LCAxLjAxNDUzLCAxLjQ3NTUsIDIuMzk5ODgsIDIuOTc2NjMiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjYzODI0LCAwLjQwMjUyNCwgMS4xODg3OCwgMS44ODM3LCAyLjgxMjgxLCA0LjY2NzI3LCA1LjgxNDA5IiwgXAotICAgICAgICAgICIwLjI2NDI1MSwgMC40MDI0OTMsIDEuMTg4MTksIDEuODg2MjMsIDIuODA2NDIsIDQuNjU1MjIsIDUuODA5MzkiLCBcCi0gICAgICAgICAgIjAuMjY0MjMyLCAwLjQwMjUxNCwgMS4xODk3LCAxLjg4MjI4LCAyLjgxMywgNC42NjY4LCA1LjgxMzYzIiwgXAotICAgICAgICAgICIwLjI2NDEwNCwgMC40MDMyNTIsIDEuMTg4MzUsIDEuODgzOTcsIDIuODA2OTYsIDQuNjU1NzYsIDUuODA5MzUiLCBcCi0gICAgICAgICAgIjAuMjY1MTQyLCAwLjQwMjg1MiwgMS4xODgxOCwgMS44ODE0NywgMi44MDgwMywgNC42NjY3OCwgNS44MTQxNSIsIFwKLSAgICAgICAgICAiMC4yNjgyMDMsIDAuNDA0NTE0LCAxLjE5MDE4LCAxLjg4NTksIDIuODEyNjUsIDQuNjY2MywgNS44MTM5OSIsIFwKLSAgICAgICAgICAiMC4yNzE2MzgsIDAuNDA3MjkxLCAxLjE5MDkxLCAxLjg4MTU1LCAyLjgxMjY1LCA0LjY1NTg2LCA1LjgxNjkzIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwMTQzNCwgMC4xNDc1MjYsIDAuNDA2NzQsIDAuNjM0OTY2LCAwLjkzOTMyLCAxLjU0NzQzLCAxLjkyNzkiLCBcCi0gICAgICAgICAgIjAuMTEwMzk3LCAwLjE1NjQ5NiwgMC40MTU3NzIsIDAuNjQzOTU3LCAwLjk0ODAyNiwgMS41NTYzMywgMS45MzY1MiIsIFwKLSAgICAgICAgICAiMC4xMjE4NTYsIDAuMTY3OTc2LCAwLjQyNzM2OSwgMC42NTU2MjUsIDAuOTU5ODQ3LCAxLjU2Nzk0LCAxLjk0ODIiLCBcCi0gICAgICAgICAgIjAuMTMzNTUsIDAuMTc5Nzc3LCAwLjQzODk3OSwgMC42NjcwMjYsIDAuOTcxMTI3LCAxLjU3OTk4LCAxLjk1OTU0IiwgXAotICAgICAgICAgICIwLjE0NTQyNSwgMC4xOTEzMzUsIDAuNDUwNjg0LCAwLjY3ODk5NiwgMC45ODM0MzgsIDEuNTkxMzIsIDEuOTcxMzYiLCBcCi0gICAgICAgICAgIjAuMTY0NzgsIDAuMjEwMDgzLCAwLjQ2OTMwMiwgMC42OTczNzksIDEuMDAyMDUsIDEuNjEwMjEsIDEuOTkwMDUiLCBcCi0gICAgICAgICAgIjAuMTgxNjM4LCAwLjIyNzI4MiwgMC40ODU2NDMsIDAuNzEzOTA5LCAxLjAxODE3LCAxLjYyNTg3LCAyLjAwNjQ2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE4MTk2OCwgMC4yNzE2MDUsIDAuNzgwNjM4LCAxLjIyOTc1LCAxLjgyODQ5LCAzLjAyNTc4LCAzLjc3NTA0IiwgXAotICAgICAgICAgICIwLjE4MTkyMiwgMC4yNzE1NzIsIDAuNzgwNjgxLCAxLjIyOTczLCAxLjgyODg0LCAzLjAyNTY3LCAzLjc3NTAyIiwgXAotICAgICAgICAgICIwLjE4MjI0OCwgMC4yNzE1NzgsIDAuNzgxMDY2LCAxLjIyOTk4LCAxLjgyODMxLCAzLjAyNTc4LCAzLjc3NTE1IiwgXAotICAgICAgICAgICIwLjE4NTE4NCwgMC4yNzI1NzEsIDAuNzgwNjkyLCAxLjIyOTQ0LCAxLjgyODg1LCAzLjAyNTYsIDMuNzczOTQiLCBcCi0gICAgICAgICAgIjAuMTg5NzA3LCAwLjI3NTI5LCAwLjc4MDc0OSwgMS4yMzAxNCwgMS44Mjg0MSwgMy4wMjU3LCAzLjc3NDkyIiwgXAotICAgICAgICAgICIwLjE5OTA1NSwgMC4yODIxOTUsIDAuNzgwNjMxLCAxLjIzMDE1LCAxLjgyODkzLCAzLjAyNTU4LCAzLjc3NDgxIiwgXAotICAgICAgICAgICIwLjIwOTA0NSwgMC4yOTAxMjcsIDAuNzgxMjU3LCAxLjIyOTc5LCAxLjgyODM1LCAzLjAyNTU0LCAzLjc3NDE2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNDQ1NjEsIDAuMjE0NDEyLCAwLjYxMDI2NywgMC45NTkwMDYsIDEuNDI0MjQsIDIuMzU0ODksIDIuOTM2MDgiLCBcCi0gICAgICAgICAgIjAuMTUyOTY2LCAwLjIyMjkyMiwgMC42MTgzOTUsIDAuOTY3MjcyLCAxLjQzMjI3LCAyLjM2MjM3LCAyLjk0MzM0IiwgXAotICAgICAgICAgICIwLjE2Mjg0OCwgMC4yMzI5MDksIDAuNjI4Nzg5LCAwLjk3Nzc0OCwgMS40NDI1LCAyLjM3MzM0LCAyLjk1NDcyIiwgXAotICAgICAgICAgICIwLjE3MjU2LCAwLjI0MjU3OCwgMC42Mzg3MDksIDAuOTg3MTc2LCAxLjQ1MzE1LCAyLjM4NDQsIDIuOTY0ODEiLCBcCi0gICAgICAgICAgIjAuMTgyMzMsIDAuMjUyNDI1LCAwLjY0ODM4NiwgMC45OTczMzIsIDEuNDYyMzgsIDIuMzkzNDEsIDIuOTczOTIiLCBcCi0gICAgICAgICAgIjAuMTk4MzEyLCAwLjI2ODE0OCwgMC42NjQ0MTYsIDEuMDEzMjcsIDEuNDc4MzUsIDIuNDA5LCAyLjk5MDM2IiwgXAotICAgICAgICAgICIwLjIxMTkyOSwgMC4yODE3NzksIDAuNjc3OTcyLCAxLjAyNzI0LCAxLjQ5MzQ5LCAyLjQyMzY2LCAzLjAwMzg2Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI3MDc0MSwgMC40MTA3OTEsIDEuMjAzMDksIDEuOTAxNTYsIDIuODMyNywgNC42OTYyNiwgNS44NjA0IiwgXAotICAgICAgICAgICIwLjI3MDgxNCwgMC40MTA0NTksIDEuMjAyNzQsIDEuOTAxNjksIDIuODMyMTYsIDQuNjk1ODYsIDUuODU4ODkiLCBcCi0gICAgICAgICAgIjAuMjcwNzU3LCAwLjQxMDYxNSwgMS4yMDMzOCwgMS45MDE0NiwgMi44MzIyNiwgNC42OTYwMSwgNS44NjA0MyIsIFwKLSAgICAgICAgICAiMC4yNzE2MjQsIDAuNDEwNTI0LCAxLjIwMjkyLCAxLjkwMjAyLCAyLjgzMzA2LCA0LjY5NjIzLCA1Ljg1OTY0IiwgXAotICAgICAgICAgICIwLjI3MzUwMiwgMC40MTEzNTUsIDEuMjAyNzgsIDEuOTAwNzYsIDIuODMzNDksIDQuNjk2MDMsIDUuODYzMiIsIFwKLSAgICAgICAgICAiMC4yNzg4ODksIDAuNDE0MjIzLCAxLjIwMjg3LCAxLjkwMDg2LCAyLjgzMjI4LCA0LjY5NzcxLCA1Ljg1OTg5IiwgXAotICAgICAgICAgICIwLjI4NDY3NCwgMC40MTgwMjgsIDEuMjAyNjQsIDEuOTAwOCwgMi44MzM4LCA0LjY5NjQ0LCA1Ljg1OTI3Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1MjQzOSwgMC4wNzcyNzIsIDAuMjE3NjM1LCAwLjM0MTQxMSwgMC41MDY0NDIsIDAuODM2MzYxLCAxLjA0MjU1IiwgXAotICAgICAgICAgICIwLjA2MjYwNCwgMC4wODc1MDgsIDAuMjI3NTM5LCAwLjM1MTMxMiwgMC41MTYzMzYsIDAuODQ2MjE4LCAxLjA1MjQxIiwgXAotICAgICAgICAgICIwLjA3NTc0MywgMC4xMDA1NTYsIDAuMjQwNjI0LCAwLjM2NDM5MywgMC41Mjk3NDcsIDAuODU5NjA0LCAxLjA2NTg3IiwgXAotICAgICAgICAgICIwLjA4ODY5MiwgMC4xMTMxMjEsIDAuMjUzMjI4LCAwLjM3NzQ0NCwgMC41NDIzMjgsIDAuODcyNTA0LCAxLjA3ODc4IiwgXAotICAgICAgICAgICIwLjEwMTUxMSwgMC4xMjYxNzUsIDAuMjY2MTY2LCAwLjM4OTczOCwgMC41NTQ2NCwgMC44ODQ0ODMsIDEuMDg5NzMiLCBcCi0gICAgICAgICAgIjAuMTIxMDc2LCAwLjE0NzAyOSwgMC4yODc1NTgsIDAuNDEwMzY2LCAwLjU3NTA4MSwgMC45MDQ5NzIsIDEuMTExMDIiLCBcCi0gICAgICAgICAgIjAuMTM2MDIzLCAwLjE2NTA1OSwgMC4zMDQxOTQsIDAuNDI4NDU4LCAwLjU5MzE1MSwgMC45MjI3OTYsIDEuMTI4OTQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk4MDI0LCAwLjE0NzY5NywgMC40MjkyOTksIDAuNjc3NzQsIDEuMDA4OTksIDEuNjcxNzYsIDIuMDg2MSIsIFwKLSAgICAgICAgICAiMC4wOTgxNDQsIDAuMTQ3Njk1LCAwLjQyOTM2NCwgMC42Nzc4MjksIDEuMDA5MDksIDEuNjcxNjEsIDIuMDg1NzgiLCBcCi0gICAgICAgICAgIjAuMTAxMzM4LCAwLjE0ODk0NiwgMC40Mjk0MDMsIDAuNjc3NzM5LCAxLjAwOTAxLCAxLjY3MTU2LCAyLjA4NTU2IiwgXAotICAgICAgICAgICIwLjEwNzAzOSwgMC4xNTMzNTEsIDAuNDI5MjU5LCAwLjY3Nzg2NiwgMS4wMDkwMywgMS42NzE3MywgMi4wODU2MSIsIFwKLSAgICAgICAgICAiMC4xMTQ1NzMsIDAuMTU4NzY2LCAwLjQyOTc1OCwgMC42Nzc3MywgMS4wMDkwNCwgMS42NzE0OSwgMi4wODU5MyIsIFwKLSAgICAgICAgICAiMC4xMjc5ODQsIDAuMTY5NzQ1LCAwLjQzMjc1LCAwLjY3NzkzLCAxLjAwOTEyLCAxLjY3MTUyLCAyLjA4NTg1IiwgXAotICAgICAgICAgICIwLjE0MTE1NywgMC4xODA5NDgsIDAuNDM4MzAxLCAwLjY3OTQ1OCwgMS4wMDkxNSwgMS42NzE4NiwgMi4wODYzOCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTM3NjY4LCAwLjIwNzU3MSwgMC42MDI4MzcsIDAuOTUxODI1LCAxLjQxNzU4LCAyLjM0NzM5LCAyLjkyODQ5IiwgXAotICAgICAgICAgICIwLjE0NjA0OCwgMC4yMTU5OTIsIDAuNjEyMDMzLCAwLjk2MDc1NCwgMS40MjY4MiwgMi4zNTY0MiwgMi45Mzc1MiIsIFwKLSAgICAgICAgICAiMC4xNTYzMzgsIDAuMjI2NTYxLCAwLjYyMjc2NCwgMC45NzE3MTMsIDEuNDM3MDksIDIuMzY3NywgMi45NDgzNiIsIFwKLSAgICAgICAgICAiMC4xNjcyNywgMC4yMzY5MjYsIDAuNjMzMTQ5LCAwLjk4MTkxNSwgMS40NDc4MSwgMi4zNzczLCAyLjk1ODYxIiwgXAotICAgICAgICAgICIwLjE3ODA2MiwgMC4yNDc5OTMsIDAuNjQ0MTI0LCAwLjk5MjcyMiwgMS40NTc5MSwgMi4zODg4MSwgMi45Njk2NyIsIFwKLSAgICAgICAgICAiMC4xOTU1MTQsIDAuMjY1MjY3LCAwLjY2MTA3MSwgMS4wMTA0LCAxLjQ3NTIsIDIuNDA1NzMsIDIuOTg3MTEiLCBcCi0gICAgICAgICAgIjAuMjEwODQ2LCAwLjI4MDU1OSwgMC42NzYyMTksIDEuMDI1NDEsIDEuNDkxNDgsIDIuNDIwNywgMy4wMDE3MyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yNzA3MzksIDAuNDEwNDQ2LCAxLjIwMjczLCAxLjkwMTY5LCAyLjgzMjkxLCA0LjY5NTU5LCA1Ljg2MjA3IiwgXAotICAgICAgICAgICIwLjI3MDc3NSwgMC40MTA1MTYsIDEuMjAyOTksIDEuOTAxMTYsIDIuODMyNzQsIDQuNjk2MDIsIDUuODYwMDMiLCBcCi0gICAgICAgICAgIjAuMjcwNTA4LCAwLjQxMDYsIDEuMjAzMDQsIDEuOTAxOTEsIDIuODMzMTMsIDQuNjk2NDMsIDUuODYwMTEiLCBcCi0gICAgICAgICAgIjAuMjcxOTc0LCAwLjQxMDI5NiwgMS4yMDI5MywgMS45MDE2MywgMi44MzMwNCwgNC42OTUzNCwgNS44NjIzNCIsIFwKLSAgICAgICAgICAiMC4yNzUxNywgMC40MTEzNDMsIDEuMjAyOTcsIDEuOTAxOCwgMi44MzI4OCwgNC42OTYwOSwgNS44NTk3OCIsIFwKLSAgICAgICAgICAiMC4yODMxMzcsIDAuNDE1OTM2LCAxLjIwMjc0LCAxLjkwMTE3LCAyLjgzMjI2LCA0LjY5NjcyLCA1Ljg1OTkiLCBcCi0gICAgICAgICAgIjAuMjkxNzU4LCAwLjQyMjAxOSwgMS4yMDI4NSwgMS45MDEwOSwgMi44MzM4NCwgNC42OTc5MSwgNS44NTkzMSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTAwMDUsIDAuMDc0NzgyLCAwLjIxNTAxNiwgMC4zMzg3NTYsIDAuNTAzNjYxLCAwLjgzMzYyMSwgMS4wMzk3MSIsIFwKLSAgICAgICAgICAiMC4wNjAyMzIsIDAuMDg1MDg2LCAwLjIyNTA1MSwgMC4zNDg3NTYsIDAuNTEzNzM0LCAwLjg0MzU5MywgMS4wNDk3OSIsIFwKLSAgICAgICAgICAiMC4wNzMzMzQsIDAuMDk4MTE3LCAwLjIzODMwNywgMC4zNjE4NjksIDAuNTI2ODkxLCAwLjg1NzEwOSwgMS4wNjMxNyIsIFwKLSAgICAgICAgICAiMC4wODYxMjIsIDAuMTEwNzM4LCAwLjI1MDc4MiwgMC4zNzQ0MTgsIDAuNTM5Mzk1LCAwLjg2ODU2NywgMS4wNzM1NSIsIFwKLSAgICAgICAgICAiMC4wOTkxMjYsIDAuMTIzNzk2LCAwLjI2MzcwNiwgMC4zODcyNDUsIDAuNTUyMTEzLCAwLjg4MTk3MywgMS4wODc0NiIsIFwKLSAgICAgICAgICAiMC4xMTgyMjcsIDAuMTQ0NzA1LCAwLjI4NDgwOCwgMC40MDc5NTEsIDAuNTcyNjI4LCAwLjkwMjQyOSwgMS4xMDg1OSIsIFwKLSAgICAgICAgICAiMC4xMzI4MTgsIDAuMTYyNTQ1LCAwLjMwMTgyNCwgMC40MjYwNDIsIDAuNTkwNzIzLCAwLjkyMDMsIDEuMTI2NDQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk1MzE2LCAwLjE0NDk1NiwgMC40MjY1NiwgMC42NzUxNTYsIDEuMDA3NDEsIDEuNjcwMzYsIDIuMDg1NDEiLCBcCi0gICAgICAgICAgIjAuMDk1NDgxLCAwLjE0NDk1MiwgMC40MjY0NzYsIDAuNjc1MTE5LCAxLjAwNzU5LCAxLjY3MTc0LCAyLjA4OTAyIiwgXAotICAgICAgICAgICIwLjA5ODg2MiwgMC4xNDYyNzgsIDAuNDI2NTY5LCAwLjY3NDk2LCAxLjAwNzEzLCAxLjY3MDAxLCAyLjA4NDkyIiwgXAotICAgICAgICAgICIwLjEwNTAyOCwgMC4xNTA4MjEsIDAuNDI2NTA5LCAwLjY3NDk5MywgMS4wMDY2MSwgMS42NzAzNywgMi4wODM3OCIsIFwKLSAgICAgICAgICAiMC4xMTIzODcsIDAuMTU2MywgMC40MjY4MjMsIDAuNjc1MTI5LCAxLjAwNjYxLCAxLjY3MjQyLCAyLjA4NzU3IiwgXAotICAgICAgICAgICIwLjEyNTk1OSwgMC4xNjc0NCwgMC40MzA0MjUsIDAuNjc1MDIxLCAxLjAwNzMsIDEuNjY5MDcsIDIuMDg0NjkiLCBcCi0gICAgICAgICAgIjAuMTM5MDUyLCAwLjE3ODcsIDAuNDM1NzMxLCAwLjY3Njg3OCwgMS4wMDYzMiwgMS42Njk4MiwgMi4wODUyOSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDM0MzUsIDAuMDAzNDM2LCAwLjAwMzQzNiwgMC4wMDM0MzYsIDAuMDAzNDM3LCAwLjAwMzQzNSwgMC4wMDM0MzQiLCBcCi0gICAgICAgICAgIjAuMDAzNDI2LCAwLjAwMzQyOCwgMC4wMDM0MzEsIDAuMDAzNDMxLCAwLjAwMzQyOSwgMC4wMDM0MjksIDAuMDAzNDI4IiwgXAotICAgICAgICAgICIwLjAwMzQxOSwgMC4wMDM0MjIsIDAuMDAzNDI4LCAwLjAwMzQyOSwgMC4wMDM0MjksIDAuMDAzNDI3LCAwLjAwMzQzIiwgXAotICAgICAgICAgICIwLjAwMzQxNCwgMC4wMDM0MTksIDAuMDAzNDI4LCAwLjAwMzQyNywgMC4wMDM0MjgsIDAuMDAzNDI5LCAwLjAwMzQzIiwgXAotICAgICAgICAgICIwLjAwMzQxLCAwLjAwMzQxNSwgMC4wMDM0MjUsIDAuMDAzNDI4LCAwLjAwMzQyNywgMC4wMDM0MjksIDAuMDAzNDI4IiwgXAotICAgICAgICAgICIwLjAwMzQwNiwgMC4wMDM0MTIsIDAuMDAzNDIzLCAwLjAwMzQyNiwgMC4wMDM0MjgsIDAuMDAzNDI4LCAwLjAwMzQyNyIsIFwKLSAgICAgICAgICAiMC4wMDM0MDMsIDAuMDAzNDA5LCAwLjAwMzQyMSwgMC4wMDM0MjQsIDAuMDAzNDI3LCAwLjAwMzQyNywgMC4wMDM0MjciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDA3OTQsIDAuMDAwNzk0LCAwLjAwMDc5NCwgMC4wMDA3OTQsIDAuMDAwNzk0LCAwLjAwMDc5MywgMC4wMDA3OTIiLCBcCi0gICAgICAgICAgIjAuMDAwNzY0LCAwLjAwMDc2NSwgMC4wMDA3NjYsIDAuMDAwNzY2LCAwLjAwMDc2NiwgMC4wMDA3NjUsIDAuMDAwNzY0IiwgXAotICAgICAgICAgICIwLjAwMDc1MywgMC4wMDA3NTYsIDAuMDAwNzU5LCAwLjAwMDc1OSwgMC4wMDA3NTksIDAuMDAwNzYsIDAuMDAwNzU4IiwgXAotICAgICAgICAgICIwLjAwMDc0NywgMC4wMDA3NSwgMC4wMDA3NTYsIDAuMDAwNzU3LCAwLjAwMDc1NywgMC4wMDA3NTcsIDAuMDAwNzU2IiwgXAotICAgICAgICAgICIwLjAwMDc0MywgMC4wMDA3NDcsIDAuMDAwNzU0LCAwLjAwMDc1NSwgMC4wMDA3NTYsIDAuMDAwNzU1LCAwLjAwMDc1NSIsIFwKLSAgICAgICAgICAiMC4wMDA3MzksIDAuMDAwNzQ0LCAwLjAwMDc1MiwgMC4wMDA3NTMsIDAuMDAwNzU0LCAwLjAwMDc1NCwgMC4wMDA3NTQiLCBcCi0gICAgICAgICAgIjAuMDAwNzQsIDAuMDAwNzQzLCAwLjAwMDc1MSwgMC4wMDA3NTIsIDAuMDAwNzUzLCAwLjAwMDc1MywgMC4wMDA3NTMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzMDU5LCAwLjAwMzA2MSwgMC4wMDMwNjIsIDAuMDAzMDYyLCAwLjAwMzA2MywgMC4wMDMwNjMsIDAuMDAzMDYzIiwgXAotICAgICAgICAgICIwLjAwMzA1LCAwLjAwMzA1NiwgMC4wMDMwNjMsIDAuMDAzMDY1LCAwLjAwMzA2NywgMC4wMDMwNjcsIDAuMDAzMDY3IiwgXAotICAgICAgICAgICIwLjAwMzAzNiwgMC4wMDMwNDUsIDAuMDAzMDYsIDAuMDAzMDY0LCAwLjAwMzA2NSwgMC4wMDMwNjYsIDAuMDAzMDY3IiwgXAotICAgICAgICAgICIwLjAwMzAyNSwgMC4wMDMwMzcsIDAuMDAzMDU2LCAwLjAwMzA2LCAwLjAwMzA2MywgMC4wMDMwNjYsIDAuMDAzMDY2IiwgXAotICAgICAgICAgICIwLjAwMzAxNywgMC4wMDMwMjksIDAuMDAzMDUyLCAwLjAwMzA1NywgMC4wMDMwNjEsIDAuMDAzMDY0LCAwLjAwMzA2NSIsIFwKLSAgICAgICAgICAiMC4wMDMwMDcsIDAuMDAzMDIsIDAuMDAzMDQ3LCAwLjAwMzA1NSwgMC4wMDMwNTgsIDAuMDAzMDYzLCAwLjAwMzA2NCIsIFwKLSAgICAgICAgICAiMC4wMDMwMDEsIDAuMDAzMDE0LCAwLjAwMzA0MywgMC4wMDMwNTEsIDAuMDAzMDU3LCAwLjAwMzA2MSwgMC4wMDMwNjMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDA3OTUsIDAuMDAwNzk1LCAwLjAwMDc5NCwgMC4wMDA3OTMsIDAuMDAwNzk0LCAwLjAwMDc5LCAwLjAwMDc5MyIsIFwKLSAgICAgICAgICAiMC4wMDA3NjIsIDAuMDAwNzY0LCAwLjAwMDc2NiwgMC4wMDA3NjUsIDAuMDAwNzY1LCAwLjAwMDc2NSwgMC4wMDA3NjQiLCBcCi0gICAgICAgICAgIjAuMDAwNzUyLCAwLjAwMDc1NSwgMC4wMDA3NTgsIDAuMDAwNzU5LCAwLjAwMDc1OCwgMC4wMDA3NTksIDAuMDAwNzU4IiwgXAotICAgICAgICAgICIwLjAwMDc0OSwgMC4wMDA3NSwgMC4wMDA3NTYsIDAuMDAwNzU2LCAwLjAwMDc1NiwgMC4wMDA3NTYsIDAuMDAwNzU2IiwgXAotICAgICAgICAgICIwLjAwMDc0NywgMC4wMDA3NTEsIDAuMDAwNzU0LCAwLjAwMDc1NSwgMC4wMDA3NTUsIDAuMDAwNzU1LCAwLjAwMDc1NSIsIFwKLSAgICAgICAgICAiMC4wMDA3NTgsIDAuMDAwNzU0LCAwLjAwMDc1NSwgMC4wMDA3NTUsIDAuMDAwNzU1LCAwLjAwMDc1NCwgMC4wMDA3NTMiLCBcCi0gICAgICAgICAgIjAuMDAwNzY5LCAwLjAwMDc2NCwgMC4wMDA3NTcsIDAuMDAwNzU2LCAwLjAwMDc1NSwgMC4wMDA3NTQsIDAuMDAwNzUzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjY3OSwgMC4wMDI2OCwgMC4wMDI2ODEsIDAuMDAyNjgxLCAwLjAwMjY4MiwgMC4wMDI2OCwgMC4wMDI2OCIsIFwKLSAgICAgICAgICAiMC4wMDI2NjUsIDAuMDAyNjcxLCAwLjAwMjY3OCwgMC4wMDI2NzcsIDAuMDAyNjc5LCAwLjAwMjY3OSwgMC4wMDI2NzkiLCBcCi0gICAgICAgICAgIjAuMDAyNjUzLCAwLjAwMjY2MSwgMC4wMDI2NzQsIDAuMDAyNjc2LCAwLjAwMjY3OCwgMC4wMDI2NzgsIDAuMDAyNjc4IiwgXAotICAgICAgICAgICIwLjAwMjY0NSwgMC4wMDI2NTQsIDAuMDAyNjcsIDAuMDAyNjc0LCAwLjAwMjY3NSwgMC4wMDI2NzcsIDAuMDAyNjc3IiwgXAotICAgICAgICAgICIwLjAwMjY0LCAwLjAwMjY0OCwgMC4wMDI2NjcsIDAuMDAyNjcxLCAwLjAwMjY3NCwgMC4wMDI2NzYsIDAuMDAyNjc2IiwgXAotICAgICAgICAgICIwLjAwMjYzNSwgMC4wMDI2NDMsIDAuMDAyNjYzLCAwLjAwMjY2OCwgMC4wMDI2NzIsIDAuMDAyNjc1LCAwLjAwMjY3NSIsIFwKLSAgICAgICAgICAiMC4wMDI2MzQsIDAuMDAyNjQxLCAwLjAwMjY2LCAwLjAwMjY2NiwgMC4wMDI2NywgMC4wMDI2NzMsIDAuMDAyNjc0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwMzMzLCAwLjAwMDMzMywgMC4wMDAzMzQsIDAuMDAwMzM1LCAwLjAwMDMzNSwgMC4wMDAzMzUsIDAuMDAwMzM0IiwgXAotICAgICAgICAgICIwLjAwMDMyNiwgMC4wMDAzMzEsIDAuMDAwMzM3LCAwLjAwMDMzOCwgMC4wMDAzMzksIDAuMDAwMzM5LCAwLjAwMDMzOSIsIFwKLSAgICAgICAgICAiMC4wMDAzMTcsIDAuMDAwMzI1LCAwLjAwMDMzNSwgMC4wMDAzMzgsIDAuMDAwMzM5LCAwLjAwMDM0LCAwLjAwMDM0IiwgXAotICAgICAgICAgICIwLjAwMDMxNywgMC4wMDAzMjQsIDAuMDAwMzM1LCAwLjAwMDMzOCwgMC4wMDAzMzksIDAuMDAwMzQsIDAuMDAwMzQiLCBcCi0gICAgICAgICAgIjAuMDAwMzE5LCAwLjAwMDMyNCwgMC4wMDAzMzUsIDAuMDAwMzM3LCAwLjAwMDMzOSwgMC4wMDAzNCwgMC4wMDAzNCIsIFwKLSAgICAgICAgICAiMC4wMDAzMjYsIDAuMDAwMzI5LCAwLjAwMDMzNCwgMC4wMDAzMzgsIDAuMDAwMzM5LCAwLjAwMDM0LCAwLjAwMDM0IiwgXAotICAgICAgICAgICIwLjAwMDM0LCAwLjAwMDMzOCwgMC4wMDAzMzgsIDAuMDAwMzQsIDAuMDAwMzQsIDAuMDAwMzQxLCAwLjAwMDM0MSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDIzMzUsIDAuMDAyMzM3LCAwLjAwMjMzOSwgMC4wMDIzNCwgMC4wMDIzNCwgMC4wMDIzMzksIDAuMDAyMzM4IiwgXAotICAgICAgICAgICIwLjAwMjMxNSwgMC4wMDIzMjIsIDAuMDAyMzMzLCAwLjAwMjMzNiwgMC4wMDIzMzcsIDAuMDAyMzM3LCAwLjAwMjMzNyIsIFwKLSAgICAgICAgICAiMC4wMDIzLCAwLjAwMjMxMSwgMC4wMDIzMjksIDAuMDAyMzMxLCAwLjAwMjMzNCwgMC4wMDIzMzUsIDAuMDAyMzM1IiwgXAotICAgICAgICAgICIwLjAwMjI5NCwgMC4wMDIzMDIsIDAuMDAyMzI0LCAwLjAwMjMyOSwgMC4wMDIzMzIsIDAuMDAyMzM0LCAwLjAwMjMzNCIsIFwKLSAgICAgICAgICAiMC4wMDIyOTIsIDAuMDAyMywgMC4wMDIzMiwgMC4wMDIzMjYsIDAuMDAyMzMsIDAuMDAyMzMzLCAwLjAwMjMzMyIsIFwKLSAgICAgICAgICAiMC4wMDIyOTcsIDAuMDAyMywgMC4wMDIzMTcsIDAuMDAyMzI0LCAwLjAwMjMyOCwgMC4wMDIzMywgMC4wMDIzMzIiLCBcCi0gICAgICAgICAgIjAuMDAyMzA3LCAwLjAwMjMwNiwgMC4wMDIzMTcsIDAuMDAyMzIyLCAwLjAwMjMyNywgMC4wMDIzMywgMC4wMDIzMzEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDAwMywgMC4wMDAwMzIsIDAuMDAwMDM2LCAwLjAwMDAzNiwgMC4wMDAwMzcsIDAuMDAwMDM3LCAwLjAwMDAzNyIsIFwKLSAgICAgICAgICAiMC4wMDAwMzEsIDAuMDAwMDQsIDAuMDAwMDU1LCAwLjAwMDA1OCwgMC4wMDAwNTksIDAuMDAwMDYsIDAuMDAwMDYxIiwgXAotICAgICAgICAgICIwLjAwMDAxOCwgMC4wMDAwMzIsIDAuMDAwMDUzLCAwLjAwMDA1NywgMC4wMDAwNjIsIDAuMDAwMDYsIDAuMDAwMDYiLCBcCi0gICAgICAgICAgIjAuMDAwMDEzLCAwLjAwMDAyNiwgMC4wMDAwNTEsIDAuMDAwMDU2LCAwLjAwMDA1OSwgMC4wMDAwNjMsIDAuMDAwMDY3IiwgXAotICAgICAgICAgICIwLjAwMDAwOSwgMC4wMDAwMjQsIDAuMDAwMDQ5LCAwLjAwMDA1NSwgMC4wMDAwNTksIDAuMDAwMDYyLCAwLjAwMDA2NCIsIFwKLSAgICAgICAgICAiMC4wMDAwMSwgMC4wMDAwMjIsIDAuMDAwMDQ3LCAwLjAwMDA1NCwgMC4wMDAwNTgsIDAuMDAwMDYyLCAwLjAwMDA2MyIsIFwKLSAgICAgICAgICAiMC4wMDAwMTcsIDAuMDAwMDI2LCAwLjAwMDA0NiwgMC4wMDAwNTQsIDAuMDAwMDU4LCAwLjAwMDA2MiwgMC4wMDAwNjMiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBBT0kyMVgyICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKEFPSTIxWDIpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4yMzAzODsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQTApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTY4NDcxOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTY3ODI2OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTY4NDcxOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDgxOCwgMC4wMDA4MTgsIDAuMDAwODE4LCAwLjAwMDgxNywgMC4wMDA4MTcsIDAuMDAwODE3LCAwLjAwMDgxNyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDg0NCwgMC4wMDA4MjQsIDAuMDAwODIxLCAwLjAwMDgyMSwgMC4wMDA4MjEsIDAuMDAwODIxLCAwLjAwMDgyMSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQTEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTYxNTg4OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTYwMzczOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTYxNTg4OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDUxNCwgMC4wMDA1MTQsIDAuMDAwNTEzLCAwLjAwMDUxMywgMC4wMDA1MTMsIDAuMDAwNTEzLCAwLjAwMDUxMyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDkyOCwgMC4wMDA5MjksIDAuMDAwOTI5LCAwLjAwMDkzLCAwLjAwMDkzLCAwLjAwMDkyOSwgMC4wMDA5MjkiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE1NzY3ODsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE1NzYyNzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE1NzY3ODsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxNzQsIDAuMDAwMTc0LCAwLjAwMDE3NCwgMC4wMDAxNzQsIDAuMDAwMTc0LCAwLjAwMDE3NCwgMC4wMDAxNzQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDEwMzYsIDAuMDAxMDM2LCAwLjAwMTAzNiwgMC4wMDEwMzYsIDAuMDAxMDM2LCAwLjAwMTAzNiwgMC4wMDEwMzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4yNzU5MDE7Ci0gICAgZnVuY3Rpb24gOiAiKCEoKEEwIEExKStCMCkpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU4Mzg5LCAwLjI1NDIyOCwgMC40MTA3MDEsIDAuNjA2NDExLCAwLjgwMTk3OSwgMC45OTcwNTIsIDEuMTkzMDYiLCBcCi0gICAgICAgICAgIjAuMDY3NzY4LCAwLjI2MzY1NSwgMC40MjAxNDksIDAuNjE1ODcxLCAwLjgxMTEyNiwgMS4wMDc0LCAxLjIwMjU3IiwgXAotICAgICAgICAgICIwLjA3ODE0NiwgMC4yNzQyMywgMC40MzA2MjcsIDAuNjI2NDYsIDAuODIxNTY5LCAxLjAxNzY4LCAxLjIxMzQyIiwgXAotICAgICAgICAgICIwLjA4ODIzLCAwLjI4NDMxLCAwLjQ0MDc4NywgMC42MzYzMjQsIDAuODMyMTk4LCAxLjAyNzMzLCAxLjIyMzczIiwgXAotICAgICAgICAgICIwLjA5ODA1NSwgMC4yOTQzNzIsIDAuNDUxMDI1LCAwLjY0NjM5MSwgMC44NDI0NzEsIDEuMDM3NDMsIDEuMjMzNzgiLCBcCi0gICAgICAgICAgIjAuMTEyMjU5LCAwLjMxMDI5NiwgMC40NjY5MSwgMC42NjI0NTYsIDAuODU4Mjg2LCAxLjA1MzQzLCAxLjI0OTExIiwgXAotICAgICAgICAgICIwLjEyMzI4NSwgMC4zMjQyMzIsIDAuNDgwOTMsIDAuNjc2NDgsIDAuODcyMTM5LCAxLjA2NzcxLCAxLjI2MzQ1Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5NzgyNiwgMC40OTYyMDIsIDAuODE0OTQ3LCAxLjIxMzM1LCAxLjYxMSwgMi4wMDkzMSwgMi40MDcyNyIsIFwKLSAgICAgICAgICAiMC4wOTc4MzQsIDAuNDk2MTM0LCAwLjgxNDY2MSwgMS4yMTMxMywgMS42MTEyLCAyLjAwOTA5LCAyLjQwNjcxIiwgXAotICAgICAgICAgICIwLjA5OTExNCwgMC40OTYxNjEsIDAuODE0NzczLCAxLjIxMzI1LCAxLjYxMTIxLCAyLjAwOTE3LCAyLjQwNzYxIiwgXAotICAgICAgICAgICIwLjEwMjE3OCwgMC40OTYwNDcsIDAuODE0NjQ5LCAxLjIxMzAyLCAxLjYxMDk0LCAyLjAwOTQzLCAyLjQwNzM3IiwgXAotICAgICAgICAgICIwLjEwNjI3MywgMC40OTYwOTQsIDAuODE1MDQ0LCAxLjIxMjk3LCAxLjYxMTA4LCAyLjAwOTUzLCAyLjQwNzI4IiwgXAotICAgICAgICAgICIwLjExNDU0NiwgMC40OTc5MzMsIDAuODE0NjE2LCAxLjIxMjkzLCAxLjYxMDkzLCAyLjAwOTI1LCAyLjQwNjc0IiwgXAotICAgICAgICAgICIwLjEyMjksIDAuNTAwNjExLCAwLjgxNTIzNSwgMS4yMTI5LCAxLjYxMTIsIDIuMDA5NCwgMi40MDY4NCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTg0NDYsIDAuMjQ5NTczLCAwLjQwMjA4NiwgMC41OTI2OTUsIDAuNzgyNjQ0LCAwLjk3MzQzMSwgMS4xNjMzOSIsIFwKLSAgICAgICAgICAiMC4wNjcyNjksIDAuMjU4NTQ0LCAwLjQxMDg0NywgMC42MDExNDksIDAuNzkxNzk5LCAwLjk4MTYxNywgMS4xNzIzMiIsIFwKLSAgICAgICAgICAiMC4wNzgxNDYsIDAuMjY5NTU1LCAwLjQyMjIwMiwgMC42MTI1NjEsIDAuODAyNTI4LCAwLjk5MzM1LCAxLjE4MzMzIiwgXAotICAgICAgICAgICIwLjA4OTA5NCwgMC4yODA2OTQsIDAuNDMzMTc1LCAwLjYyMzU5NywgMC44MTQwODQsIDEuMDAzOTQsIDEuMTk0OTkiLCBcCi0gICAgICAgICAgIjAuMDk5ODUsIDAuMjkxODIsIDAuNDQ0NDMxLCAwLjYzNDgwNiwgMC44MjQ2NzYsIDEuMDE0OTUsIDEuMjA1NjUiLCBcCi0gICAgICAgICAgIjAuMTE1ODIsIDAuMzA5MjQ3LCAwLjQ2MTc4NywgMC42NTIzNDcsIDAuODQyODYxLCAxLjAzMzA5LCAxLjIyMzAzIiwgXAotICAgICAgICAgICIwLjEyODQ1NSwgMC4zMjQ2NjIsIDAuNDc3MjI2LCAwLjY2ODAxMSwgMC44NTgyMzYsIDEuMDQ4OTgsIDEuMjM5MDkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk2Nzk5LCAwLjQ3MzEwMSwgMC43NzQyNiwgMS4xNTA3MSwgMS41MjY3MiwgMS45MDM2NSwgMi4yNzk0MSIsIFwKLSAgICAgICAgICAiMC4wOTY3ODcsIDAuNDczMjMyLCAwLjc3NDIyNCwgMS4xNTA0NSwgMS41MjY4MSwgMS45MDM0MSwgMi4yODAwMSIsIFwKLSAgICAgICAgICAiMC4wOTg1NTIsIDAuNDczNDU0LCAwLjc3NDM4MSwgMS4xNTA5LCAxLjUyNjczLCAxLjkwMzM0LCAyLjI3OTA4IiwgXAotICAgICAgICAgICIwLjEwMjMyNSwgMC40NzM0NzksIDAuNzc0MTczLCAxLjE1MDM2LCAxLjUyNzEzLCAxLjkwMjk1LCAyLjI3OTY2IiwgXAotICAgICAgICAgICIwLjEwNzA5MSwgMC40NzMzMzMsIDAuNzc0MiwgMS4xNTA3NiwgMS41MjY2MiwgMS45MDI5NCwgMi4yNzk0MSIsIFwKLSAgICAgICAgICAiMC4xMTY0OTcsIDAuNDc1NDUyLCAwLjc3NDAxOSwgMS4xNTA0NywgMS41MjY1OCwgMS45MDI4OSwgMi4yNzkxMiIsIFwKLSAgICAgICAgICAiMC4xMjU2NzUsIDAuNDc4MDMyLCAwLjc3NDg2NCwgMS4xNTA0NCwgMS41MjY2LCAxLjkwMjg1LCAyLjI4MDA5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkExIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTYwODksIDAuMjUzMzE2LCAwLjQxMTE2MywgMC42MDg2MzEsIDAuODA2NjYzLCAxLjAwMzQ5LCAxLjIwMTAyIiwgXAotICAgICAgICAgICIwLjA2NTM1MSwgMC4yNjMwMjQsIDAuNDIwOTM0LCAwLjYxODMwMSwgMC44MTU4MzUsIDEuMDEzMjgsIDEuMjEwMzEiLCBcCi0gICAgICAgICAgIjAuMDc1NjQyLCAwLjI3MzQ2MywgMC40MzEzMTMsIDAuNjI5MTg1LCAwLjgyNjI0OSwgMS4wMjMyOSwgMS4yMjE2OCIsIFwKLSAgICAgICAgICAiMC4wODU2MTMsIDAuMjgzNTY0LCAwLjQ0MTQ3MiwgMC42Mzg3NTUsIDAuODM2NTY3LCAxLjAzMzMzLCAxLjIzMTgyIiwgXAotICAgICAgICAgICIwLjA5NTI3NywgMC4yOTM1MzgsIDAuNDUxNjU2LCAwLjY0ODczLCAwLjg0Njc5LCAxLjA0MzM1LCAxLjI0MTc0IiwgXAotICAgICAgICAgICIwLjEwOTAwNiwgMC4zMDkzMDIsIDAuNDY3MzE2LCAwLjY2NDcxMSwgMC44NjI0NTQsIDEuMDU5MjYsIDEuMjU2NzMiLCBcCi0gICAgICAgICAgIjAuMTE5NzMxLCAwLjMyMzEyMSwgMC40ODExMzQsIDAuNjc4NjE0LCAwLjg3NjAyOCwgMS4wNzM0OCwgMS4yNzA5NCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTU1NDUsIDAuNDk3NzU1LCAwLjgyMDYxMSwgMS4yMjM4MiwgMS42MjM3LCAyLjAyNTM3LCAyLjQyODkyIiwgXAotICAgICAgICAgICIwLjA5NTY5OSwgMC40OTc3MzYsIDAuODE5NDAyLCAxLjIyMTQxLCAxLjYyMzgzLCAyLjAyNTE5LCAyLjQzMzEiLCBcCi0gICAgICAgICAgIjAuMDk2ODUsIDAuNDk3NzA2LCAwLjgxOTgzMSwgMS4yMjExNiwgMS42MjM1MSwgMi4wMjY4NywgMi40MjgxNSIsIFwKLSAgICAgICAgICAiMC4xMDAwMSwgMC40OTc1MjksIDAuODE5MjgzLCAxLjIyMzk0LCAxLjYyMzAyLCAyLjAyODM5LCAyLjQyODE5IiwgXAotICAgICAgICAgICIwLjEwNDE4OSwgMC40OTc2NTQsIDAuODE5MDcyLCAxLjIyMzc2LCAxLjYyMzE4LCAyLjAyOTM2LCAyLjQyNzIxIiwgXAotICAgICAgICAgICIwLjExMjYzOSwgMC40OTk2NTYsIDAuODE5NzAyLCAxLjIyNDEzLCAxLjYyMzM1LCAyLjAyODI4LCAyLjQzMjU3IiwgXAotICAgICAgICAgICIwLjEyMTMwOSwgMC41MDMxNzQsIDAuODIwMjI3LCAxLjIyNDA4LCAxLjYyNzIxLCAyLjAyODM1LCAyLjQzMjgzIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1NjMxMywgMC4yNDc0NSwgMC4zOTk5NDgsIDAuNTkwNTIyLCAwLjc4MDcwNiwgMC45NzEzNDIsIDEuMTYxMTkiLCBcCi0gICAgICAgICAgIjAuMDY1MzI1LCAwLjI1NjY1NSwgMC40MDg5MjIsIDAuNTk5MjI1LCAwLjc4OTYwMSwgMC45Nzk2OCwgMS4xNzAxIiwgXAotICAgICAgICAgICIwLjA3NzE1NCwgMC4yNjg0MzgsIDAuNDIwNzgsIDAuNjExNTQxLCAwLjgwMTQ4MiwgMC45OTIwNzksIDEuMTgxODgiLCBcCi0gICAgICAgICAgIjAuMDg4ODY5LCAwLjI3OTgyLCAwLjQzMjE3NSwgMC42MjI1NTgsIDAuODEyNjUzLCAxLjAwMzQ0LCAxLjE5MzYxIiwgXAotICAgICAgICAgICIwLjEwMDgyOCwgMC4yOTEzOTQsIDAuNDQzNzU1LCAwLjYzNDA1NiwgMC44MjQzMzQsIDEuMDE0OTgsIDEuMjA0ODYiLCBcCi0gICAgICAgICAgIjAuMTE4NzQ2LCAwLjMxMDE5NiwgMC40NjI1NTgsIDAuNjUyNzU5LCAwLjg0MzI5OSwgMS4wMzM0MiwgMS4yMjM1NSIsIFwKLSAgICAgICAgICAiMC4xMzE5OTIsIDAuMzI2NTksIDAuNDc4ODU3LCAwLjY2OTI4LCAwLjg1OTc1NCwgMS4wNTAwMywgMS4yNDAzNCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTY3MjYsIDAuNDczMTAzLCAwLjc3NDI0NCwgMS4xNTA2NSwgMS41MjY3MSwgMS45MDMzNCwgMi4yNzkwOCIsIFwKLSAgICAgICAgICAiMC4wOTY4MTYsIDAuNDczMjE2LCAwLjc3NDI0MywgMS4xNTA0NywgMS41MjY4MiwgMS45MDMzNywgMi4yNzk3MSIsIFwKLSAgICAgICAgICAiMC4wOTk3MTgsIDAuNDczMDkyLCAwLjc3NDE5NywgMS4xNTA2LCAxLjUyNzQyLCAxLjkwMjk4LCAyLjI3OTYzIiwgXAotICAgICAgICAgICIwLjEwNTYwMywgMC40NzMzMzIsIDAuNzc0MjAxLCAxLjE1MTA3LCAxLjUyNjczLCAxLjkwMzA4LCAyLjI3OTI1IiwgXAotICAgICAgICAgICIwLjExMjYwNiwgMC40NzM1OTksIDAuNzc0NjI1LCAxLjE1MDUyLCAxLjUyNjc1LCAxLjkwMjk3LCAyLjI3OTc5IiwgXAotICAgICAgICAgICIwLjEyNTg1NSwgMC40NzYwMSwgMC43NzQyNjMsIDEuMTUwNDQsIDEuNTI2NTcsIDEuOTAzNCwgMi4yODAwOSIsIFwKLSAgICAgICAgICAiMC4xMzg1NDIsIDAuNDgwNzc0LCAwLjc3NDk1MSwgMS4xNTA2OSwgMS41MjcwNywgMS45MDI4NywgMi4yNzk5NyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDUxNDg3LCAwLjI0NzMwNCwgMC40MDQ0MDksIDAuNjAxNTE5LCAwLjc5OTU2MywgMC45OTYzMDMsIDEuMTkzMSIsIFwKLSAgICAgICAgICAiMC4wNjA0LCAwLjI1NjQ1OSwgMC40MTMyOCwgMC42MTA1OTQsIDAuODA4MTQ2LCAxLjAwNTk0LCAxLjIwMzczIiwgXAotICAgICAgICAgICIwLjA3MTY0NywgMC4yNjc4MjUsIDAuNDI0NTEsIDAuNjIxODU1LCAwLjgxOTEwNywgMS4wMTY4NCwgMS4yMTQxOSIsIFwKLSAgICAgICAgICAiMC4wODMzMTUsIDAuMjc5NDI1LCAwLjQzNjE4OCwgMC42MzM1NDgsIDAuODMxNTU4LCAxLjAyODEsIDEuMjI2ODEiLCBcCi0gICAgICAgICAgIjAuMDk1MTQzLCAwLjI5MDY4NSwgMC40NDc4MDIsIDAuNjQ1MDU3LCAwLjg0MjE5NSwgMS4wMzk1MiwgMS4yMzgwNSIsIFwKLSAgICAgICAgICAiMC4xMTE0NSwgMC4zMDkwODQsIDAuNDY1MTczLCAwLjY2MzIzLCAwLjg2MDY0MSwgMS4wNTgwNywgMS4yNTUyNCIsIFwKLSAgICAgICAgICAiMC4xMjM3NjEsIDAuMzI1MjMsIDAuNDgyMDcsIDAuNjc5NDIsIDAuODc2NzM0LCAxLjA3NDEsIDEuMjcxNTEiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk3NzgxLCAwLjQ5NzcsIDAuODE5MTE0LCAxLjIyMTI3LCAxLjYyNDIsIDIuMDI1NzYsIDIuNDI5MDEiLCBcCi0gICAgICAgICAgIjAuMDk3NzcxLCAwLjQ5ODI2OSwgMC44MTk4NywgMS4yMjIxMywgMS42MjM1NywgMi4wMjUxMSwgMi40Mjg0IiwgXAotICAgICAgICAgICIwLjEwMTcyNiwgMC40OTc3MjUsIDAuODIwOTkxLCAxLjIyMjE0LCAxLjYyNjY0LCAyLjAyNTc4LCAyLjQyNzkxIiwgXAotICAgICAgICAgICIwLjEwNzk3MSwgMC40OTc0NzgsIDAuODIwOTQxLCAxLjIyMjE0LCAxLjYyMzIsIDIuMDI5NDQsIDIuNDI4NTIiLCBcCi0gICAgICAgICAgIjAuMTE1NDcyLCAwLjQ5ODc5MywgMC44MTkwNzgsIDEuMjIxNTcsIDEuNjI2MDgsIDIuMDI5NjgsIDIuNDI4MTkiLCBcCi0gICAgICAgICAgIjAuMTI5NDkyLCAwLjUwMDg3NywgMC44MjEwMTIsIDEuMjI0MSwgMS42MjQ0NCwgMi4wMzY0NSwgMi40MzI1MyIsIFwKLSAgICAgICAgICAiMC4xNDIxODQsIDAuNTA2NDE5LCAwLjgxOTgwNiwgMS4yMjM2OCwgMS42MjQ0NywgMi4wMjY4MSwgMi40MzI3NiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjc4MzEsIDAuMTMxMzg4LCAwLjIxNDEzNywgMC4zMTc2MDQsIDAuNDIxMjE4LCAwLjUyNDU0OCwgMC42MjgwNjkiLCBcCi0gICAgICAgICAgIjAuMDM4MDU5LCAwLjE0MTM5NSwgMC4yMjQxNzcsIDAuMzI3NjU1LCAwLjQzMTEwNCwgMC41MzQ2MjQsIDAuNjM4MDUyIiwgXAotICAgICAgICAgICIwLjA1MDk3OSwgMC4xNTQzNTUsIDAuMjM3MDUzLCAwLjM0MDUxOCwgMC40NDMxNDgsIDAuNTQ2NTYzLCAwLjY0OTkyOSIsIFwKLSAgICAgICAgICAiMC4wNjI4NzQsIDAuMTY3MDU5LCAwLjI0OTg2NSwgMC4zNTM0MzEsIDAuNDU2MTA5LCAwLjU1OTU2NywgMC42NjMwMTIiLCBcCi0gICAgICAgICAgIjAuMDcyOTc5LCAwLjE3OTc0NCwgMC4yNjI4NDcsIDAuMzY2MTU4LCAwLjQ2OTU4MiwgMC41NzI5NDMsIDAuNjc2NDE4IiwgXAotICAgICAgICAgICIwLjA4Njk0NSwgMC4yMDA5MjcsIDAuMjgyOTQyLCAwLjM4Njg1MiwgMC40OTAxODQsIDAuNTkzNTA0LCAwLjY5Njg3IiwgXAotICAgICAgICAgICIwLjA5NzU3LCAwLjIxOTI4MSwgMC4zMDA4ODYsIDAuNDA0MjY2LCAwLjUwNzM1NywgMC42MTE1ODYsIDAuNzE0ODU3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1MTE2OSwgMC4yNjAwNywgMC40MjczNDksIDAuNjM2NTY1LCAwLjg0NTk3NSwgMS4wNTUwOCwgMS4yNjQ0MyIsIFwKLSAgICAgICAgICAiMC4wNTI2NDcsIDAuMjYwMTAzLCAwLjQyNzI4NSwgMC42MzY2MiwgMC44NDYxLCAxLjA1NTE1LCAxLjI2NjA3IiwgXAotICAgICAgICAgICIwLjA1OTE0MiwgMC4yNjAwNDgsIDAuNDI3MzYzLCAwLjYzNjQ5NiwgMC44NDYwNzgsIDEuMDU1MDksIDEuMjY0MzQiLCBcCi0gICAgICAgICAgIjAuMDY3NDA2LCAwLjI2MTMyOCwgMC40MjczNjcsIDAuNjM2NDkzLCAwLjg0NjAxOSwgMS4wNTUxNywgMS4yNjQ1MyIsIFwKLSAgICAgICAgICAiMC4wNzY4OTgsIDAuMjY0NTM4LCAwLjQyNzc1MiwgMC42MzY0MDYsIDAuODQ2MDUsIDEuMDU0ODksIDEuMjY0ODEiLCBcCi0gICAgICAgICAgIjAuMDkyMzgyLCAwLjI3MTcwMywgMC40MzEzNTcsIDAuNjM2OTQ3LCAwLjg0NTg2NCwgMS4wNTU3NCwgMS4yNjQ1OCIsIFwKLSAgICAgICAgICAiMC4xMDUxMTMsIDAuMjc5OTMxLCAwLjQzNjY5OCwgMC42Mzg5MTYsIDAuODQ2MDE5LCAxLjA1NTEsIDEuMjY0NTMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1MDI3LCAwLjAwNTAzLCAwLjAwNTAzLCAwLjAwNTAyOSwgMC4wMDUwMjksIDAuMDA1MDI5LCAwLjAwNTAyOSIsIFwKLSAgICAgICAgICAiMC4wMDQ5OTksIDAuMDA1MDE3LCAwLjAwNTAxOCwgMC4wMDUwMTksIDAuMDA1MDE5LCAwLjAwNTAyLCAwLjAwNTAxOSIsIFwKLSAgICAgICAgICAiMC4wMDQ5ODEsIDAuMDA1MDEsIDAuMDA1MDIsIDAuMDA1MDE2LCAwLjAwNTAxNywgMC4wMDUwMjMsIDAuMDA1MDE0IiwgXAotICAgICAgICAgICIwLjAwNDk3LCAwLjAwNTAwNSwgMC4wMDUwMTEsIDAuMDA1MDE0LCAwLjAwNTAxNywgMC4wMDUwMTQsIDAuMDA1MDE4IiwgXAotICAgICAgICAgICIwLjAwNDk2MiwgMC4wMDUwMDEsIDAuMDA1MDA4LCAwLjAwNTAxMiwgMC4wMDUwMTMsIDAuMDA1MDE0LCAwLjAwNTAxNSIsIFwKLSAgICAgICAgICAiMC4wMDQ5NTgsIDAuMDA0OTk2LCAwLjAwNTAwNCwgMC4wMDUwMDksIDAuMDA1MDEzLCAwLjAwNTAxMywgMC4wMDUwMTQiLCBcCi0gICAgICAgICAgIjAuMDA0OTU5LCAwLjAwNDk5MywgMC4wMDQ5OTgsIDAuMDA1MDA3LCAwLjAwNTAxLCAwLjAwNTAxMiwgMC4wMDUwMTMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDEwNDQsIDAuMDAxMDQ2LCAwLjAwMTA0NiwgMC4wMDEwNDYsIDAuMDAxMDQ2LCAwLjAwMTA0NSwgMC4wMDEwNDUiLCBcCi0gICAgICAgICAgIjAuMDAwOTg3LCAwLjAwMTAwNiwgMC4wMDEwMDksIDAuMDAxMDA4LCAwLjAwMTAxLCAwLjAwMTAxLCAwLjAwMTAxIiwgXAotICAgICAgICAgICIwLjAwMDk1NCwgMC4wMDA5OTMsIDAuMDAwOTk4LCAwLjAwMSwgMC4wMDEwMDEsIDAuMDAxMDAyLCAwLjAwMTAwMSIsIFwKLSAgICAgICAgICAiMC4wMDA5MzUsIDAuMDAwOTg0LCAwLjAwMDk5MSwgMC4wMDA5OTUsIDAuMDAwOTk3LCAwLjAwMDk5OCwgMC4wMDA5OTgiLCBcCi0gICAgICAgICAgIjAuMDAwOTI0LCAwLjAwMDk3NywgMC4wMDA5ODYsIDAuMDAwOTkyLCAwLjAwMDk5NCwgMC4wMDA5OTYsIDAuMDAwOTk2IiwgXAotICAgICAgICAgICIwLjAwMDkyLCAwLjAwMDk3LCAwLjAwMDk4MiwgMC4wMDA5ODcsIDAuMDAwOTksIDAuMDAwOTkyLCAwLjAwMDk5NCIsIFwKLSAgICAgICAgICAiMC4wMDA5MjQsIDAuMDAwOTY2LCAwLjAwMDk3NywgMC4wMDA5ODQsIDAuMDAwOTg4LCAwLjAwMDk5LCAwLjAwMDk5MSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkExIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQyNzEsIDAuMDA0MjgzLCAwLjAwNDI4MiwgMC4wMDQyODQsIDAuMDA0Mjg0LCAwLjAwNDI4NSwgMC4wMDQyODUiLCBcCi0gICAgICAgICAgIjAuMDA0MjM0LCAwLjAwNDI4MSwgMC4wMDQyODYsIDAuMDA0MjksIDAuMDA0MjkxLCAwLjAwNDI5MiwgMC4wMDQyOTIiLCBcCi0gICAgICAgICAgIjAuMDA0MTk2LCAwLjAwNDI2OSwgMC4wMDQyNzksIDAuMDA0Mjg0LCAwLjAwNDI4NywgMC4wMDQyODksIDAuMDA0MjkiLCBcCi0gICAgICAgICAgIjAuMDA0MTcyLCAwLjAwNDI1OCwgMC4wMDQyNzMsIDAuMDA0MjgyLCAwLjAwNDI4MywgMC4wMDQyODYsIDAuMDA0Mjg4IiwgXAotICAgICAgICAgICIwLjAwNDE1NiwgMC4wMDQyNDksIDAuMDA0MjY2LCAwLjAwNDI3NSwgMC4wMDQyOCwgMC4wMDQyODUsIDAuMDA0Mjg1IiwgXAotICAgICAgICAgICIwLjAwNDE0NCwgMC4wMDQyMzUsIDAuMDA0MjU1LCAwLjAwNDI2OCwgMC4wMDQyNzUsIDAuMDA0Mjc4LCAwLjAwNDI4IiwgXAotICAgICAgICAgICIwLjAwNDE0MiwgMC4wMDQyMjYsIDAuMDA0MjQ5LCAwLjAwNDI2LCAwLjAwNDI3MSwgMC4wMDQyNzYsIDAuMDA0MjgxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxMDQxLCAwLjAwMTA0NSwgMC4wMDEwNDQsIDAuMDAxMDQ0LCAwLjAwMTA0NCwgMC4wMDEwNDQsIDAuMDAxMDQ3IiwgXAotICAgICAgICAgICIwLjAwMDk3NSwgMC4wMDEwMDEsIDAuMDAxMDA1LCAwLjAwMTAwNCwgMC4wMDEwMDYsIDAuMDAxMDA2LCAwLjAwMTAwNiIsIFwKLSAgICAgICAgICAiMC4wMDA5NTMsIDAuMDAwOTksIDAuMDAwOTk2LCAwLjAwMDk5OSwgMC4wMDEsIDAuMDAxLCAwLjAwMTAwMSIsIFwKLSAgICAgICAgICAiMC4wMDA5NDksIDAuMDAwOTgyLCAwLjAwMDk4OSwgMC4wMDA5OTIsIDAuMDAwOTk0LCAwLjAwMDk5NSwgMC4wMDA5OTUiLCBcCi0gICAgICAgICAgIjAuMDAwOTU3LCAwLjAwMDk4LCAwLjAwMDk4NiwgMC4wMDA5OSwgMC4wMDA5OTIsIDAuMDAwOTkzLCAwLjAwMDk5NCIsIFwKLSAgICAgICAgICAiMC4wMDA5ODcsIDAuMDAwOTgyLCAwLjAwMDk4NywgMC4wMDA5OSwgMC4wMDA5OTEsIDAuMDAwOTkyLCAwLjAwMDk5MyIsIFwKLSAgICAgICAgICAiMC4wMDEwMjUsIDAuMDAwOTg5LCAwLjAwMDk5MSwgMC4wMDA5OTQsIDAuMDAwOTkzLCAwLjAwMDk5MywgMC4wMDA5OTQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzNDYsIDAuMDAzNDc3LCAwLjAwMzQ3OCwgMC4wMDM0NzksIDAuMDAzNDc4LCAwLjAwMzQ3OCwgMC4wMDM0NzgiLCBcCi0gICAgICAgICAgIjAuMDAzNCwgMC4wMDM0NiwgMC4wMDM0NjcsIDAuMDAzNDcxLCAwLjAwMzQ3MywgMC4wMDM0NzMsIDAuMDAzNDc0IiwgXAotICAgICAgICAgICIwLjAwMzM3NiwgMC4wMDM0NDUsIDAuMDAzNDU3LCAwLjAwMzQ2MywgMC4wMDM0NjcsIDAuMDAzNDY5LCAwLjAwMzQ3IiwgXAotICAgICAgICAgICIwLjAwMzM2NiwgMC4wMDM0MzMsIDAuMDAzNDQ3LCAwLjAwMzQ1NiwgMC4wMDM0NjEsIDAuMDAzNDY0LCAwLjAwMzQ2NiIsIFwKLSAgICAgICAgICAiMC4wMDMzODIsIDAuMDAzNDI3LCAwLjAwMzQ0MiwgMC4wMDM0NTIsIDAuMDAzNDU4LCAwLjAwMzQ2MSwgMC4wMDM0NjMiLCBcCi0gICAgICAgICAgIjAuMDAzNDE4LCAwLjAwMzQyNCwgMC4wMDM0MywgMC4wMDM0NDgsIDAuMDAzNDU0LCAwLjAwMzQ1OCwgMC4wMDM0NjEiLCBcCi0gICAgICAgICAgIjAuMDAzNDYsIDAuMDAzNDI3LCAwLjAwMzQzOCwgMC4wMDM0NDcsIDAuMDAzNDUyLCAwLjAwMzQ1NiwgMC4wMDM0NTkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDAwNTgsIDAuMDAwMDc5LCAwLjAwMDA4MSwgMC4wMDAwODIsIDAuMDAwMDgzLCAwLjAwMDA4MywgMC4wMDAwODQiLCBcCi0gICAgICAgICAgIjAuMDAwMDIxLCAwLjAwMDA5NywgMC4wMDAxMDcsIDAuMDAwMTEyLCAwLjAwMDExNSwgMC4wMDAxMTYsIDAuMDAwMTE4IiwgXAotICAgICAgICAgICIwLjAwMDA2MSwgMC4wMDAwODUsIDAuMDAwMSwgMC4wMDAxMDksIDAuMDAwMTE2LCAwLjAwMDExOSwgMC4wMDAxMjEiLCBcCi0gICAgICAgICAgIjAuMDAwMDc4LCAwLjAwMDA2OSwgMC4wMDAwOSwgMC4wMDAxMDMsIDAuMDAwMTEsIDAuMDAwMTE0LCAwLjAwMDExNyIsIFwKLSAgICAgICAgICAiMC4wMDAwNjMsIDAuMDAwMDY1LCAwLjAwMDA4OCwgMC4wMDAxLCAwLjAwMDEwNywgMC4wMDAxMTIsIDAuMDAwMTE0IiwgXAotICAgICAgICAgICIwLjAwMDAyMywgMC4wMDAwNjIsIDAuMDAwMDgyLCAwLjAwMDA5NywgMC4wMDAxMDQsIDAuMDAwMTA5LCAwLjAwMDExMiIsIFwKLSAgICAgICAgICAiMC4wMDAwNCwgMC4wMDAwNjUsIDAuMDAwMDgsIDAuMDAwMDk0LCAwLjAwMDEwMywgMC4wMDAxMDgsIDAuMDAwMTEyIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IEFPSTIyMVgyICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChBT0kyMjFYMikgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjM3MzAwNTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQTApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTcyMTc3OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTcxMzQ2OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTcyMTc3OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDgxOCwgMC4wMDA4MTgsIDAuMDAwODE3LCAwLjAwMDgxOCwgMC4wMDA4MTcsIDAuMDAwODE3LCAwLjAwMDgxNyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDg0MiwgMC4wMDA4MjMsIDAuMDAwODIxLCAwLjAwMDgyMSwgMC4wMDA4MiwgMC4wMDA4MjEsIDAuMDAwODIxIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihBMSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNTkwNzY7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNTc2OTQ7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNTkwNzY7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNDg3LCAwLjAwMDQ4NSwgMC4wMDA0ODUsIDAuMDAwNDg2LCAwLjAwMDQ4NiwgMC4wMDA0ODYsIDAuMDAwNDg1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwOTI4LCAwLjAwMDkyOSwgMC4wMDA5MjksIDAuMDAwOTI5LCAwLjAwMDkyOSwgMC4wMDA5MjksIDAuMDAwOTI5Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNzI5ODc7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNzI0MDc7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNzI5ODc7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwODE5LCAwLjAwMDgxOCwgMC4wMDA4MTgsIDAuMDAwODE4LCAwLjAwMDgxOCwgMC4wMDA4MTgsIDAuMDAwODE4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwODQxLCAwLjAwMDgyMiwgMC4wMDA4MiwgMC4wMDA4MiwgMC4wMDA4MiwgMC4wMDA4MiwgMC4wMDA4MiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQjEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTY1ODM5OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTY0NjczOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTY1ODM5OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDQ3MywgMC4wMDA0NzMsIDAuMDAwNDczLCAwLjAwMDQ3MywgMC4wMDA0NzMsIDAuMDAwNDcyLCAwLjAwMDQ3MyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDkyOCwgMC4wMDA5MjgsIDAuMDAwOTI4LCAwLjAwMDkyOSwgMC4wMDA5MjksIDAuMDAwOTI5LCAwLjAwMDkyOSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQzApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTYwNjg5OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTYwNjYyOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTYwNjg5OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDE3OCwgMC4wMDAxNzksIDAuMDAwMTc5LCAwLjAwMDE3OSwgMC4wMDAxNzksIDAuMDAwMTc5LCAwLjAwMDE3OSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTAxNCwgMC4wMDEwMTUsIDAuMDAxMDE1LCAwLjAwMTAxNSwgMC4wMDEwMTUsIDAuMDAxMDE0LCAwLjAwMTAxNCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjE4NDQ2MjsKLSAgICBmdW5jdGlvbiA6ICIoISgoKEEwIEExKSsoQjAgQjEpKStDMCkpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTAzNzUzLCAwLjM5NjYyOSwgMC42MzI0ODIsIDAuOTI4MDAxLCAxLjIyMzczLCAxLjUxODgxLCAxLjgxNjM3IiwgXAotICAgICAgICAgICIwLjExMzA5OSwgMC40MDYzNDEsIDAuNjQxMjg2LCAwLjkzNzI4MSwgMS4yMzM2LCAxLjUyODc1LCAxLjgyNDI5IiwgXAotICAgICAgICAgICIwLjEyMzIwNCwgMC40MTY0NzcsIDAuNjUxNzksIDAuOTQ3NjI0LCAxLjI0MzYxLCAxLjUzOTI4LCAxLjgzNDYyIiwgXAotICAgICAgICAgICIwLjEzMjIwMSwgMC40MjU1NzEsIDAuNjYwNzE2LCAwLjk1NjQwNywgMS4yNTI0NCwgMS41NDc5MywgMS44NDQ5MSIsIFwKLSAgICAgICAgICAiMC4xNDA3MDksIDAuNDM0MjAzLCAwLjY2OTQ5OSwgMC45NjU2NzcsIDEuMjYwNzIsIDEuNTU3MSwgMS44NTE4NCIsIFwKLSAgICAgICAgICAiMC4xNTM4NzYsIDAuNDQ3MzMsIDAuNjgyNDI3LCAwLjk3ODE5NiwgMS4yNzM3OSwgMS41NzAyMSwgMS44NjQ5OSIsIFwKLSAgICAgICAgICAiMC4xNjQ2NTYsIDAuNDU4NDMyLCAwLjY5Mzc3NywgMC45ODk0OTMsIDEuMjg1MjksIDEuNTgwNzksIDEuODc1OTgiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTYzMjQ5LCAwLjc1NjI0LCAxLjIzMzQ5LCAxLjgyOTU2LCAyLjQyNTI0LCAzLjAyMDg3LCAzLjYxNzk0IiwgXAotICAgICAgICAgICIwLjE2MzI1MiwgMC43NTY0NTQsIDEuMjMzMTcsIDEuODI5MzksIDIuNDI1MjcsIDMuMDIxNCwgMy42MTc0NyIsIFwKLSAgICAgICAgICAiMC4xNjMyNjYsIDAuNzU2NDMxLCAxLjIzMzQ0LCAxLjgyOSwgMi40MjU3MywgMy4wMjE1OCwgMy42MTc1NyIsIFwKLSAgICAgICAgICAiMC4xNjM5MTIsIDAuNzU2NTYyLCAxLjIzMzI3LCAxLjgyOTYyLCAyLjQyNTIzLCAzLjAyMTcxLCAzLjYxNzU1IiwgXAotICAgICAgICAgICIwLjE2NTI4MSwgMC43NTYxNjQsIDEuMjMzMzgsIDEuODI5OTIsIDIuNDI2NzEsIDMuMDIxODUsIDMuNjE3MTIiLCBcCi0gICAgICAgICAgIjAuMTY4NTE0LCAwLjc1NjEzNywgMS4yMzMzNSwgMS44Mjk4NSwgMi40MjQ5MywgMy4wMjE3OCwgMy42MTc4NiIsIFwKLSAgICAgICAgICAiMC4xNzIyNjUsIDAuNzU2ODUyLCAxLjIzMzQ5LCAxLjgyOTI2LCAyLjQyNTE3LCAzLjAyMTY1LCAzLjYxODMiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY5OTM1LCAwLjI2MzM0OCwgMC40MTYxMTMsIDAuNjA2NzM2LCAwLjc5NzUwNywgMC45ODc4MzQsIDEuMTc4MzMiLCBcCi0gICAgICAgICAgIjAuMDc4NzgxLCAwLjI3MjI1NiwgMC40MjUxMDcsIDAuNjE1NjM2LCAwLjgwNjIyLCAwLjk5NjQwMywgMS4xODcyNSIsIFwKLSAgICAgICAgICAiMC4wODk3MSwgMC4yODMzMjQsIDAuNDM2MTE2LCAwLjYyNjgyNCwgMC44MTc0NDcsIDEuMDA3NzcsIDEuMTk4NTEiLCBcCi0gICAgICAgICAgIjAuMTAwNzIxLCAwLjI5NDM2NSwgMC40NDcxNDcsIDAuNjM3Nzk1LCAwLjgyODE1MSwgMS4wMTg2MiwgMS4yMDg4OSIsIFwKLSAgICAgICAgICAiMC4xMTE1NzMsIDAuMzA1MTQyLCAwLjQ1ODM2NSwgMC42NDkwMjUsIDAuODM5NTkxLCAxLjAyOTc0LCAxLjIyMDQxIiwgXAotICAgICAgICAgICIwLjEyODYwOCwgMC4zMjI5OTMsIDAuNDc1ODk4LCAwLjY2NjU2NCwgMC44NTY5MTgsIDEuMDQ3NjUsIDEuMjM3ODYiLCBcCi0gICAgICAgICAgIjAuMTQyNjMxLCAwLjMzODA3NywgMC40OTEyNzUsIDAuNjgyMTYyLCAwLjg3MjQ1LCAxLjA2MzIzLCAxLjI1MzYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTE4MzM3LCAwLjQ5NDI2NywgMC43OTUyNSwgMS4xNzE0OCwgMS41NDc5OSwgMS45MjM5OSwgMi4yOTk2NiIsIFwKLSAgICAgICAgICAiMC4xMTgxNTgsIDAuNDk0MjU0LCAwLjc5NTM5NSwgMS4xNzE1MiwgMS41NDc5NSwgMS45MjM5NSwgMi4yOTk2IiwgXAotICAgICAgICAgICIwLjExOTE5NSwgMC40OTQyODgsIDAuNzk1MzUzLCAxLjE3MTc2LCAxLjU0NzQ5LCAxLjkyNDAyLCAyLjMwMDE1IiwgXAotICAgICAgICAgICIwLjEyMjE3NywgMC40OTQzNTUsIDAuNzk1MzIsIDEuMTcxOCwgMS41NDc5NCwgMS45MjQxNCwgMi4zMDAxNCIsIFwKLSAgICAgICAgICAiMC4xMjY0MjksIDAuNDk0NDQ1LCAwLjc5NTI1OCwgMS4xNzE3NiwgMS41NDc0NCwgMS45MjQwNSwgMi4yOTk4MiIsIFwKLSAgICAgICAgICAiMC4xMzQ5NSwgMC40OTU5NTgsIDAuNzk1MzI1LCAxLjE3MTc4LCAxLjU0Nzk0LCAxLjkyNDAxLCAyLjI5OTQ3IiwgXAotICAgICAgICAgICIwLjE0MzMyMSwgMC40OTgzNTcsIDAuNzk1Njk5LCAxLjE3MTc2LCAxLjU0Nzg4LCAxLjkyMzk5LCAyLjMwMDA5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkExIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDA2NzIsIDAuMzk2OTI2LCAwLjYzNTIwMSwgMC45MzQ5MTQsIDEuMjMzMjQsIDEuNTMyNSwgMS44MzI2MSIsIFwKLSAgICAgICAgICAiMC4xMTAwMywgMC40MDY3ODksIDAuNjQ0NTMxLCAwLjk0Mzc0OCwgMS4yNDM4MiwgMS41NDIwNiwgMS44NDA4OCIsIFwKLSAgICAgICAgICAiMC4xMjAwMDIsIDAuNDE2ODYzLCAwLjY1NDcyOCwgMC45NTM3MjEsIDEuMjUzODIsIDEuNTUyMjIsIDEuODUxNjUiLCBcCi0gICAgICAgICAgIjAuMTI4ODk3LCAwLjQyNTk3NCwgMC42NjM3OTgsIDAuOTYzMDIxLCAxLjI2Mjc1LCAxLjU2MTE1LCAxLjg2MjE0IiwgXAotICAgICAgICAgICIwLjEzNzM0OSwgMC40MzQ0OTEsIDAuNjcyNDc4LCAwLjk3MTk2OCwgMS4yNzA3NSwgMS41NzAwMywgMS44NjkyMSIsIFwKLSAgICAgICAgICAiMC4xNTA0NjgsIDAuNDQ3NjYsIDAuNjg1Mzg4LCAwLjk4NDcwMywgMS4yODM1NiwgMS41ODMzMiwgMS44ODE3MiIsIFwKLSAgICAgICAgICAiMC4xNjExMjIsIDAuNDU4NjE0LCAwLjY5Njc0MSwgMC45OTYyMjMsIDEuMjk0OTMsIDEuNTk1MTksIDEuODk0MzgiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTYwMDEyLCAwLjc1ODk5LCAxLjI0MTY3LCAxLjg0NDk5LCAyLjQ1MzY0LCAzLjA1ODIzLCAzLjY1NDE3IiwgXAotICAgICAgICAgICIwLjE1OTk2OCwgMC43NTk2MDEsIDEuMjQyMzgsIDEuODQ5MTQsIDIuNDQ4MDQsIDMuMDU4MTQsIDMuNjYwMjQiLCBcCi0gICAgICAgICAgIjAuMTYwMDQ4LCAwLjc2MDY3NywgMS4yNDIzNywgMS44NDc4NiwgMi40NDgwNSwgMy4wNTgwMywgMy42NjI4MSIsIFwKLSAgICAgICAgICAiMC4xNjA2NjksIDAuNzYwNjc2LCAxLjI0Mzg5LCAxLjg0NTIsIDIuNDQ3NzUsIDMuMDU2MDMsIDMuNjU0NCIsIFwKLSAgICAgICAgICAiMC4xNjIxNjksIDAuNzU5ODU5LCAxLjI0NDY5LCAxLjg0NzA4LCAyLjQ0ODg3LCAzLjA1ODE1LCAzLjY2MjYxIiwgXAotICAgICAgICAgICIwLjE2NTQ0NywgMC43NjA2OTYsIDEuMjQyMjIsIDEuODQ1NTgsIDIuNDUxODYsIDMuMDU4MzksIDMuNjU2MDkiLCBcCi0gICAgICAgICAgIjAuMTY5MzE2LCAwLjc2MDEzNiwgMS4yNDQ4NywgMS44NDQ4NSwgMi40NTM1LCAzLjA1MTA5LCAzLjY1NDIiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY3NzM5LCAwLjI2MTIsIDAuNDE0MDczLCAwLjYwNDUxLCAwLjc5NTE1NSwgMC45ODU3ODEsIDEuMTc1NjIiLCBcCi0gICAgICAgICAgIjAuMDc2NzM3LCAwLjI3MDI1NCwgMC40MjMwMTcsIDAuNjEzNjIyLCAwLjgwNDAyNSwgMC45OTQzNzMsIDEuMTg0NTkiLCBcCi0gICAgICAgICAgIjAuMDg4MjE1LCAwLjI4MTc0OCwgMC40MzQ1NDMsIDAuNjI1MjUsIDAuODE1ODIzLCAxLjAwNjE5LCAxLjE5NjM2IiwgXAotICAgICAgICAgICIwLjEwMDIxNywgMC4yOTM2NzksIDAuNDQ2NDk3LCAwLjYzNzAzMywgMC44Mjc2NjEsIDEuMDE4MywgMS4yMDg4IiwgXAotICAgICAgICAgICIwLjExMjIzNywgMC4zMDQ2MDYsIDAuNDU3ODgxLCAwLjY0ODY1LCAwLjgzOTEwNSwgMS4wMjkzMywgMS4yMTk4NiIsIFwKLSAgICAgICAgICAiMC4xMzA5ODYsIDAuMzIzODIyLCAwLjQ3NjU5NywgMC42NjczNDYsIDAuODU3ODQ1LCAxLjA0ODE3LCAxLjIzODUyIiwgXAotICAgICAgICAgICIwLjE0NjcxNSwgMC4zNDAyNjgsIDAuNDkzMDQ4LCAwLjY4MzUzLCAwLjg3NDM2LCAxLjA2NDcyLCAxLjI1NTQ1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExODQwOSwgMC40OTQyODUsIDAuNzk1MjYyLCAxLjE3MTc3LCAxLjU0Nzc3LCAxLjkyMzc1LCAyLjMwMDE4IiwgXAotICAgICAgICAgICIwLjExODAzMiwgMC40OTQyNjIsIDAuNzk1NDg2LCAxLjE3MTQ4LCAxLjU0NzY1LCAxLjkyMzUyLCAyLjMwMDA4IiwgXAotICAgICAgICAgICIwLjEyMDAxMiwgMC40OTQyNTYsIDAuNzk1MjgzLCAxLjE3MTcyLCAxLjU0NzkyLCAxLjkyNDAzLCAyLjI5OTU0IiwgXAotICAgICAgICAgICIwLjEyNDc0NCwgMC40OTQyNjEsIDAuNzk1MzU5LCAxLjE3MTQ3LCAxLjU0NzksIDEuOTI0MTQsIDIuMzAwMDgiLCBcCi0gICAgICAgICAgIjAuMTMwODk0LCAwLjQ5NDI4LCAwLjc5NTM2NCwgMS4xNzE0NSwgMS41NDc5MiwgMS45MjQxLCAyLjMwMDA0IiwgXAotICAgICAgICAgICIwLjE0Mjg4MiwgMC40OTY0NDUsIDAuNzk1NDQ5LCAxLjE3MTU5LCAxLjU0Nzk2LCAxLjkyNDA1LCAyLjI5OTY4IiwgXAotICAgICAgICAgICIwLjE1NDU2MywgMC41MDA1MzksIDAuNzk1NzY4LCAxLjE3MTcxLCAxLjU0Nzk0LCAxLjkyNDA0LCAyLjI5OTUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjAiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5NTQ4OSwgMC4zODg0MDIsIDAuNjI0OTMyLCAwLjkyMTI3LCAxLjIxNjc5LCAxLjUxMzk4LCAxLjgwOTQzIiwgXAotICAgICAgICAgICIwLjEwNDMzMiwgMC4zOTc2NDQsIDAuNjMzOTU5LCAwLjkzMDEyNywgMS4yMjYzOSwgMS41MjIwNCwgMS44MTg5NyIsIFwKLSAgICAgICAgICAiMC4xMTQ1MzYsIDAuNDA3ODQsIDAuNjQ0NDM1LCAwLjk0MDIxLCAxLjIzNjQyLCAxLjUzMywgMS44Mjk4MyIsIFwKLSAgICAgICAgICAiMC4xMjQ0ODgsIDAuNDE3OTI4LCAwLjY1NDA5NSwgMC45NTA2NjIsIDEuMjQ2ODcsIDEuNTQyMDMsIDEuODM5MzEiLCBcCi0gICAgICAgICAgIjAuMTM0MzI2LCAwLjQyNzk5NCwgMC42NjQxMDksIDAuOTYwNzgxLCAxLjI1NjE2LCAxLjU1Mjk3LCAxLjg0ODExIiwgXAotICAgICAgICAgICIwLjE0OTkxNywgMC40NDI1NiwgMC42Nzk5NDEsIDAuOTc2MDc2LCAxLjI3MjA4LCAxLjU2ODk0LCAxLjg2NTAxIiwgXAotICAgICAgICAgICIwLjE2MzE2LCAwLjQ1NzM1OCwgMC42OTM2OSwgMC45ODk2MjQsIDEuMjg1OTQsIDEuNTgxODMsIDEuODc3ODgiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTYzMjM0LCAwLjc1NTg1OCwgMS4yMzMwNSwgMS44Mjg5OCwgMi40MjM2LCAzLjAyMDk1LCAzLjYxNTg0IiwgXAotICAgICAgICAgICIwLjE2MzIzNSwgMC43NTU5OTksIDEuMjMzMzMsIDEuODI4OSwgMi40MjQyNSwgMy4wMTk2NiwgMy42MTc1NCIsIFwKLSAgICAgICAgICAiMC4xNjM0MzEsIDAuNzU2NDA1LCAxLjIzMzE5LCAxLjgyODkzLCAyLjQyMzk2LCAzLjAyMDIsIDMuNjE1NzkiLCBcCi0gICAgICAgICAgIjAuMTY1MDExLCAwLjc1NTkwNiwgMS4yMzI3OSwgMS44MjksIDIuNDI0MzEsIDMuMDE5MjgsIDMuNjE2NjciLCBcCi0gICAgICAgICAgIjAuMTY3Nzg0LCAwLjc1NTk5NCwgMS4yMzI4NywgMS44MjkwOSwgMi40MjQyMywgMy4wMjAwOCwgMy42MTUwMyIsIFwKLSAgICAgICAgICAiMC4xNzQxNjQsIDAuNzU2MTU2LCAxLjIzMjc2LCAxLjgyOTA2LCAyLjQyMzUxLCAzLjAyMDA4LCAzLjYxNjAzIiwgXAotICAgICAgICAgICIwLjE4MTMxNSwgMC43NTY5MzUsIDEuMjMyNjUsIDEuODI4NjgsIDIuNDI0NDIsIDMuMDE5MzksIDMuNjE1MDMiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDYxMjcsIDAuMjUyNzI5LCAwLjQwNDk2MiwgMC41OTU0NywgMC43ODU4NDUsIDAuOTc2MzA1LCAxLjE2NjM3IiwgXAotICAgICAgICAgICIwLjA3MDI5NiwgMC4yNjE3MDMsIDAuNDE0MTUsIDAuNjA0NjUxLCAwLjc5NTAyMiwgMC45ODUzNzYsIDEuMTc1NTciLCBcCi0gICAgICAgICAgIjAuMDgxMTkzLCAwLjI3Mjc2NSwgMC40MjUyNTUsIDAuNjE1ODAyLCAwLjgwNjIxLCAwLjk5NjY4OCwgMS4xODY4NSIsIFwKLSAgICAgICAgICAiMC4wOTIwMzYsIDAuMjgzODE1LCAwLjQzNjM2LCAwLjYyNjg1NywgMC44MTcyNDksIDEuMDA3NjIsIDEuMTk3ODkiLCBcCi0gICAgICAgICAgIjAuMTAyOSwgMC4yOTQ4NjUsIDAuNDQ3NDU4LCAwLjYzODE0MiwgMC44Mjg1NjcsIDEuMDE4OTMsIDEuMjA4ODgiLCBcCi0gICAgICAgICAgIjAuMTE5MjA0LCAwLjMxMjM3OCwgMC40NjUzMDMsIDAuNjU1NzY3LCAwLjg0NjE3LCAxLjAzNjQ2LCAxLjIyNjY2IiwgXAotICAgICAgICAgICIwLjEzMTgzNSwgMC4zMjc0OTIsIDAuNDgwNDE0LCAwLjY3MDk1MiwgMC44NjE1MzIsIDEuMDUxODMsIDEuMjQyMDgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTA3MjU1LCAwLjQ4MzU2OCwgMC43ODQ0NCwgMS4xNjA1NiwgMS41MzYzMiwgMS45MTI5NCwgMi4yODg4OSIsIFwKLSAgICAgICAgICAiMC4xMDcyNDUsIDAuNDgzNDc1LCAwLjc4NDI4OSwgMS4xNjA1NCwgMS41MzYzLCAxLjkxMjczLCAyLjI4ODgxIiwgXAotICAgICAgICAgICIwLjEwODc5NiwgMC40ODMzMjcsIDAuNzg0MjU0LCAxLjE2MDI2LCAxLjUzNjI2LCAxLjkxMjgyLCAyLjI4ODgxIiwgXAotICAgICAgICAgICIwLjExMjMwNiwgMC40ODMzOTYsIDAuNzg0Mzg2LCAxLjE2MDU5LCAxLjUzNjUsIDEuOTEyOCwgMi4yODg3NiIsIFwKLSAgICAgICAgICAiMC4xMTcxMzIsIDAuNDgzNTIsIDAuNzg0MTc1LCAxLjE2MDI1LCAxLjUzNjY4LCAxLjkxMjMxLCAyLjI4ODQ1IiwgXAotICAgICAgICAgICIwLjEyNjMwMywgMC40ODUyMjksIDAuNzg0MjkxLCAxLjE2MDI0LCAxLjUzNjU5LCAxLjkxMjY4LCAyLjI4ODQyIiwgXAotICAgICAgICAgICIwLjEzNTEzNSwgMC40ODc5NzUsIDAuNzg0OTczLCAxLjE2MDI0LCAxLjUzNjY2LCAxLjkxMjYsIDIuMjg4NyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDkxOTc2LCAwLjM4NzkxMSwgMC42MjY0NDIsIDAuOTI1NjM2LCAxLjIyNTcsIDEuNTIzOTMsIDEuODIzMDQiLCBcCi0gICAgICAgICAgIjAuMTAwNzY3LCAwLjM5NzI1OSwgMC42MzU5NTMsIDAuOTM0ODMzLCAxLjIzMzkyLCAxLjUzMjQsIDEuODMzNDEiLCBcCi0gICAgICAgICAgIjAuMTEwNzIzLCAwLjQwNzE3MiwgMC42NDU1NzgsIDAuOTQ0ODg3LCAxLjI0NDgxLCAxLjU0MjkxLCAxLjg0MTg0IiwgXAotICAgICAgICAgICIwLjEyMDUxNCwgMC40MTcxNzYsIDAuNjU1NjIzLCAwLjk1NTIxMywgMS4yNTM5MywgMS41NTM2MywgMS44NTIzNSIsIFwKLSAgICAgICAgICAiMC4xMzAyMTEsIDAuNDI3MDksIDAuNjY1NTY4LCAwLjk2NDYxNiwgMS4yNjQxNiwgMS41NjI5NSwgMS44NjI5OSIsIFwKLSAgICAgICAgICAiMC4xNDU3MDYsIDAuNDQxNTE2LCAwLjY4MTIyLCAwLjk4MDUwMywgMS4yNzk1MSwgMS41Nzg1OCwgMS44Nzg2IiwgXAotICAgICAgICAgICIwLjE1ODQyNiwgMC40NTYwNzUsIDAuNjk0OTQzLCAwLjk5NDI5NiwgMS4yOTMzMiwgMS41OTMyMiwgMS44OTEyMiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNTk3MjEsIDAuNzYwMjc5LCAxLjI0MjM2LCAxLjg0OTE0LCAyLjQ0ODA0LCAzLjA1ODE1LCAzLjY2MjUiLCBcCi0gICAgICAgICAgIjAuMTU5Nzg3LCAwLjc1OTQ1NywgMS4yNDE5LCAxLjg0NTEzLCAyLjQ1MzcxLCAzLjA1MjY0LCAzLjY1NDE2IiwgXAotICAgICAgICAgICIwLjE1OTk4OSwgMC43NjExMDQsIDEuMjQzODgsIDEuODQ5MDYsIDIuNDQ3OTcsIDMuMDU2MDgsIDMuNjU1NDEiLCBcCi0gICAgICAgICAgIjAuMTYxNzE3LCAwLjc2MDY0OCwgMS4yNDM4OSwgMS44NDcwMywgMi40NDg4NCwgMy4wNTg2LCAzLjY2MjU3IiwgXAotICAgICAgICAgICIwLjE2NDY3LCAwLjc1OTUyOSwgMS4yNDIzNiwgMS44NDc4OCwgMi40NTM4LCAzLjA1MjE5LCAzLjY1MzYyIiwgXAotICAgICAgICAgICIwLjE3MTIyOSwgMC43NjA2NzIsIDEuMjQyMjcsIDEuODQ4MDYsIDIuNDUxOTIsIDMuMDUyNDUsIDMuNjU4MTgiLCBcCi0gICAgICAgICAgIjAuMTc4MjQ4LCAwLjc2MTQ5MSwgMS4yNDE5NSwgMS44NDkzOCwgMi40NDg2NCwgMy4wNTA1MiwgMy42NTc1NCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTg5OTgsIDAuMjUwMjU5LCAwLjQwMjc1LCAwLjU5MzE5NiwgMC43ODM1NDUsIDAuOTczODUxLCAxLjE2NDI3IiwgXAotICAgICAgICAgICIwLjA2ODA5NiwgMC4yNTk1NywgMC40MTIwODgsIDAuNjAyNTQ4LCAwLjc5MjkxNiwgMC45ODMxNTEsIDEuMTczNDEiLCBcCi0gICAgICAgICAgIjAuMDc5Njc1LCAwLjI3MTEzLCAwLjQyMzYxNywgMC42MTQwNDgsIDAuODA0NDksIDAuOTk0NzgyLCAxLjE4NTAxIiwgXAotICAgICAgICAgICIwLjA5MTU4NCwgMC4yODI4MzgsIDAuNDM1Mzg3LCAwLjYyNTgyOCwgMC44MTYxNDksIDEuMDA2NTksIDEuMTk2OCIsIFwKLSAgICAgICAgICAiMC4xMDM2NTUsIDAuMjk0MjA0LCAwLjQ0NjY2NCwgMC42MzcxMzYsIDAuODI3NTAzLCAxLjAxNzg2LCAxLjIwODEyIiwgXAotICAgICAgICAgICIwLjEyMTc0LCAwLjMxMzAzNywgMC40NjU0NjMsIDAuNjU1OTM3LCAwLjg0NjMxMiwgMS4wMzY2MywgMS4yMjY5NyIsIFwKLSAgICAgICAgICAiMC4xMzUzOTIsIDAuMzI5MzQ2LCAwLjQ4MTczOSwgMC42NzIyMTUsIDAuODYyNTYyLCAxLjA1Mjg3LCAxLjI0MzEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTA3MjQ5LCAwLjQ4MzMwOSwgMC43ODQ0MTQsIDEuMTYwMjgsIDEuNTM2NjIsIDEuOTEyNywgMi4yODg4IiwgXAotICAgICAgICAgICIwLjEwNzI1MiwgMC40ODM0NDcsIDAuNzg0MjIsIDEuMTYwNSwgMS41MzYyNiwgMS45MTIyLCAyLjI4ODEyIiwgXAotICAgICAgICAgICIwLjExMDA1MSwgMC40ODM0MzgsIDAuNzg0MjgxLCAxLjE2MDUyLCAxLjUzNjY1LCAxLjkxMjM0LCAyLjI4ODY0IiwgXAotICAgICAgICAgICIwLjExNTQ1MSwgMC40ODMzOTIsIDAuNzg0NDI3LCAxLjE2MDQxLCAxLjUzNjYxLCAxLjkxMjY5LCAyLjI4ODM5IiwgXAotICAgICAgICAgICIwLjEyMjMyNywgMC40ODM1MiwgMC43ODQ0MywgMS4xNjA1NCwgMS41MzYyOCwgMS45MTIzNSwgMi4yODg1MSIsIFwKLSAgICAgICAgICAiMC4xMzU0NTcsIDAuNDg2MTQxLCAwLjc4NDI3OSwgMS4xNjA1NCwgMS41MzY2LCAxLjkxMjcsIDIuMjg4NTEiLCBcCi0gICAgICAgICAgIjAuMTQ3NzkzLCAwLjQ5MDQ0LCAwLjc4NTEzLCAxLjE2MDI0LCAxLjUzNjI0LCAxLjkxMjY1LCAyLjI4ODUzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODIzNzYsIDAuMzc1NjI5LCAwLjYxMjM2OCwgMC45MTIxODcsIDEuMjExMjEsIDEuNTA5MzUsIDEuODEwNDIiLCBcCi0gICAgICAgICAgIjAuMDkwNzI1LCAwLjM4NDI2LCAwLjYyMTM2OCwgMC45MjA3MDksIDEuMjE5NjEsIDEuNTE4NSwgMS44MTg3NyIsIFwKLSAgICAgICAgICAiMC4xMDE0NTgsIDAuMzk1MTM4LCAwLjYzMTkyMiwgMC45MzE5NjQsIDEuMjMwNjUsIDEuNTI5MjcsIDEuODI5ODUiLCBcCi0gICAgICAgICAgIjAuMTEyMTY4LCAwLjQwNTc4MiwgMC42NDI2MzcsIDAuOTQyNDkyLCAxLjI0MTA2LCAxLjU0MDM4LCAxLjgzOTE0IiwgXAotICAgICAgICAgICIwLjEyMzA3NiwgMC40MTY2MjIsIDAuNjUzODIxLCAwLjk1MzU4NSwgMS4yNTE3OCwgMS41NTA5LCAxLjg0OTkxIiwgXAotICAgICAgICAgICIwLjE0MDkxNywgMC40MzM3NzYsIDAuNjcwNzU1LCAwLjk2OTk2NiwgMS4yNjkwMywgMS41Njg5NywgMS44NjY5NSIsIFwKLSAgICAgICAgICAiMC4xNTYyNDEsIDAuNDQ4OTYsIDAuNjg1OTY3LCAwLjk4NDk0MSwgMS4yODQxNCwgMS41ODMzNCwgMS44ODI4OSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNjI4OTksIDAuNzYxMDgyLCAxLjI0MjU5LCAxLjg0NDgyLCAyLjQ0NzUzLCAzLjA1MTk4LCAzLjY1NDE3IiwgXAotICAgICAgICAgICIwLjE2MjMxLCAwLjc2MDY3NSwgMS4yNDQ4MiwgMS44NDQ1OSwgMi40NTM3LCAzLjA1MjEyLCAzLjY1NDI0IiwgXAotICAgICAgICAgICIwLjE2MzEwOCwgMC43NjExNjYsIDEuMjQzODQsIDEuODQ0OTYsIDIuNDUzODksIDMuMDUyMjgsIDMuNjU0MTciLCBcCi0gICAgICAgICAgIjAuMTY3MDA3LCAwLjc2MDY3NCwgMS4yNDMxNCwgMS44NDUsIDIuNDQ4ODIsIDMuMDU4MTUsIDMuNjU1NjIiLCBcCi0gICAgICAgICAgIjAuMTcyNzE2LCAwLjc2MTI0MywgMS4yNDE2NCwgMS44NDUwOCwgMi40NDg5OCwgMy4wNTE0MiwgMy42NTU2MiIsIFwKLSAgICAgICAgICAiMC4xODM3MTcsIDAuNzYwMzMxLCAxLjI0Mzg3LCAxLjg0Nzk3LCAyLjQ1MTk4LCAzLjA1MDU3LCAzLjY1NzkzIiwgXAotICAgICAgICAgICIwLjE5NDQzNCwgMC43NjE3MjcsIDEuMjQzOTIsIDEuODQ1OTcsIDIuNDUxOSwgMy4wNTYwNSwgMy42NTQ3OCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjkzNjYsIDAuMTMzMDQ3LCAwLjIxNTkwNywgMC4zMTk1MjcsIDAuNDIzMTI1LCAwLjUyNjY4OSwgMC42MzAxNzkiLCBcCi0gICAgICAgICAgIjAuMDM5NjY3LCAwLjE0MzExOCwgMC4yMjU5OTUsIDAuMzI5NTk0LCAwLjQzMzE4MywgMC41MzY3ODUsIDAuNjQwMjc0IiwgXAotICAgICAgICAgICIwLjA1MjUwOCwgMC4xNTYxMDIsIDAuMjM4ODkxLCAwLjM0MjQ4OCwgMC40NDUyMzYsIDAuNTQ4NzYzLCAwLjY1MjI1NiIsIFwKLSAgICAgICAgICAiMC4wNjQ4MTUsIDAuMTY4ODU2LCAwLjI1MTY5NCwgMC4zNTUzMzQsIDAuNDU4OTAzLCAwLjU2MTcxNSwgMC42NjQ4MDQiLCBcCi0gICAgICAgICAgIjAuMDc1MjA5LCAwLjE4MTUzMSwgMC4yNjQ3MTYsIDAuMzY4MjE1LCAwLjQ3MTcsIDAuNTc1MjI1LCAwLjY3ODcxMSIsIFwKLSAgICAgICAgICAiMC4wODk2NDYsIDAuMjAyODM4LCAwLjI4NTkxOSwgMC4zODg4MDYsIDAuNDkyMjYzLCAwLjU5NTY5OSwgMC42OTkxNDgiLCBcCi0gICAgICAgICAgIjAuMTAwNjMzLCAwLjIyMTAxMSwgMC4zMDI3MzEsIDAuNDA2MjEyLCAwLjUwOTQxNSwgMC42MTM3MzcsIDAuNzE3MTM4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1NzYxLCAwLjI2NjUxMywgMC40MzM5MywgMC42NDMwNTYsIDAuODUyMzM4LCAxLjA2MjAxLCAxLjI3MTE4IiwgXAotICAgICAgICAgICIwLjA1ODg5NywgMC4yNjY1MjQsIDAuNDMzODM0LCAwLjY0MzAxOSwgMC44NTI1NTQsIDEuMDYxODIsIDEuMjcwOTkiLCBcCi0gICAgICAgICAgIjAuMDY0OTgzLCAwLjI2NjUyMSwgMC40MzM4NiwgMC42NDMxLCAwLjg1MjYxNiwgMS4wNjIxOCwgMS4yNzE1MyIsIFwKLSAgICAgICAgICAiMC4wNzMwNjcsIDAuMjY3NzM1LCAwLjQzMzg3MSwgMC42NDMwMiwgMC44NTI0NCwgMS4wNjE4NywgMS4yNzA5IiwgXAotICAgICAgICAgICIwLjA4MjI4NiwgMC4yNzA4MDIsIDAuNDM0MzUxLCAwLjY0MzA5NCwgMC44NTIzOTYsIDEuMDYyMTgsIDEuMjcxMSIsIFwKLSAgICAgICAgICAiMC4wOTgwODIsIDAuMjc3OTA5LCAwLjQzNzM4OSwgMC42NDMzNjYsIDAuODUyNzU1LCAxLjA2MjIyLCAxLjI3MTUzIiwgXAotICAgICAgICAgICIwLjExMTQzOCwgMC4yODYwMDUsIDAuNDQyOTY5LCAwLjY0NTQ2MiwgMC44NTI0MiwgMS4wNjIxMywgMS4yNzE1NSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDg1OCwgMC4wMDg1ODIsIDAuMDA4NTg0LCAwLjAwODU3OSwgMC4wMDg1ODIsIDAuMDA4NTc5LCAwLjAwODU4IiwgXAotICAgICAgICAgICIwLjAwODU1NCwgMC4wMDg1NjksIDAuMDA4NTcsIDAuMDA4NTczLCAwLjAwODU2OSwgMC4wMDg1NzEsIDAuMDA4NTY1IiwgXAotICAgICAgICAgICIwLjAwODUzNiwgMC4wMDg1NjEsIDAuMDA4NTY1LCAwLjAwODU2NSwgMC4wMDg1NjUsIDAuMDA4NTY1LCAwLjAwODU2NCIsIFwKLSAgICAgICAgICAiMC4wMDg1MjUsIDAuMDA4NTU3LCAwLjAwODU1OSwgMC4wMDg1NjcsIDAuMDA4NTY0LCAwLjAwODU2NCwgMC4wMDg1NjMiLCBcCi0gICAgICAgICAgIjAuMDA4NTE2LCAwLjAwODU1MiwgMC4wMDg1NTYsIDAuMDA4NTYzLCAwLjAwODU2NCwgMC4wMDg1NjIsIDAuMDA4NTYyIiwgXAotICAgICAgICAgICIwLjAwODUwNiwgMC4wMDg1NDYsIDAuMDA4NTU0LCAwLjAwODU1OSwgMC4wMDg1NjMsIDAuMDA4NTYxLCAwLjAwODU2MSIsIFwKLSAgICAgICAgICAiMC4wMDg1MDIsIDAuMDA4NTQxLCAwLjAwODU1LCAwLjAwODU1NywgMC4wMDg1NTgsIDAuMDA4NTU5LCAwLjAwODU2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyMzQ4LCAwLjAwMjM0NywgMC4wMDIzNDcsIDAuMDAyMzQ3LCAwLjAwMjM0NiwgMC4wMDIzNDQsIDAuMDAyMzQzIiwgXAotICAgICAgICAgICIwLjAwMjI4OCwgMC4wMDIyOTQsIDAuMDAyMjk1LCAwLjAwMjI5MywgMC4wMDIyOTUsIDAuMDAyMjk1LCAwLjAwMjI5MyIsIFwKLSAgICAgICAgICAiMC4wMDIyNTcsIDAuMDAyMjc1LCAwLjAwMjI3OCwgMC4wMDIyNzksIDAuMDAyMjc5LCAwLjAwMjI3OSwgMC4wMDIyNzgiLCBcCi0gICAgICAgICAgIjAuMDAyMjQsIDAuMDAyMjY2LCAwLjAwMjI3MSwgMC4wMDIyNzIsIDAuMDAyMjczLCAwLjAwMjI3MiwgMC4wMDIyNzMiLCBcCi0gICAgICAgICAgIjAuMDAyMjI5LCAwLjAwMjI1NywgMC4wMDIyNjYsIDAuMDAyMjY4LCAwLjAwMjI2OCwgMC4wMDIyNjksIDAuMDAyMjY4IiwgXAotICAgICAgICAgICIwLjAwMjIxOSwgMC4wMDIyNTIsIDAuMDAyMjU5LCAwLjAwMjI2MiwgMC4wMDIyNjQsIDAuMDAyMjY0LCAwLjAwMjI2NCIsIFwKLSAgICAgICAgICAiMC4wMDIyMTksIDAuMDAyMjQ5LCAwLjAwMjI1NSwgMC4wMDIyNTksIDAuMDAyMjYyLCAwLjAwMjI2MywgMC4wMDIyNjIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA3NzkzLCAwLjAwNzgwMywgMC4wMDc4MDQsIDAuMDA3ODAzLCAwLjAwNzgwMywgMC4wMDc4MDQsIDAuMDA3ODAyIiwgXAotICAgICAgICAgICIwLjAwNzc2MSwgMC4wMDc4MDIsIDAuMDA3ODA3LCAwLjAwNzgwOSwgMC4wMDc4MDgsIDAuMDA3ODEsIDAuMDA3ODEiLCBcCi0gICAgICAgICAgIjAuMDA3NzI3LCAwLjAwNzc5MiwgMC4wMDc3OTksIDAuMDA3ODA1LCAwLjAwNzgwNywgMC4wMDc4MDgsIDAuMDA3ODA3IiwgXAotICAgICAgICAgICIwLjAwNzcwMSwgMC4wMDc3NzksIDAuMDA3NzkyLCAwLjAwNzc5OSwgMC4wMDc4MDMsIDAuMDA3ODA0LCAwLjAwNzgwNSIsIFwKLSAgICAgICAgICAiMC4wMDc2ODQsIDAuMDA3NzY5LCAwLjAwNzc4NCwgMC4wMDc3OTUsIDAuMDA3Nzk5LCAwLjAwNzgwNSwgMC4wMDc4MDUiLCBcCi0gICAgICAgICAgIjAuMDA3NjY0LCAwLjAwNzc1NSwgMC4wMDc3NzYsIDAuMDA3Nzg3LCAwLjAwNzc5NCwgMC4wMDc3OTYsIDAuMDA3ODAxIiwgXAotICAgICAgICAgICIwLjAwNzY1MiwgMC4wMDc3NDQsIDAuMDA3NzY3LCAwLjAwNzc4LCAwLjAwNzc4OCwgMC4wMDc3OSwgMC4wMDc3OTUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDIzNTMsIDAuMDAyMzUzLCAwLjAwMjM1MiwgMC4wMDIzNTIsIDAuMDAyMzUyLCAwLjAwMjM1LCAwLjAwMjM0OCIsIFwKLSAgICAgICAgICAiMC4wMDIyODYsIDAuMDAyMjk1LCAwLjAwMjI5OCwgMC4wMDIyOTYsIDAuMDAyMjk2LCAwLjAwMjI5NywgMC4wMDIyOTYiLCBcCi0gICAgICAgICAgIjAuMDAyMjU4LCAwLjAwMjI3OCwgMC4wMDIyOCwgMC4wMDIyODEsIDAuMDAyMjgxLCAwLjAwMjI4MiwgMC4wMDIyOCIsIFwKLSAgICAgICAgICAiMC4wMDIyMzksIDAuMDAyMjY3LCAwLjAwMjI3MiwgMC4wMDIyNzMsIDAuMDAyMjczLCAwLjAwMjI3NSwgMC4wMDIyNzUiLCBcCi0gICAgICAgICAgIjAuMDAyMjQ4LCAwLjAwMjI2MiwgMC4wMDIyNjksIDAuMDAyMjcsIDAuMDAyMjcxLCAwLjAwMjI3MiwgMC4wMDIyNzEiLCBcCi0gICAgICAgICAgIjAuMDAyMjY3LCAwLjAwMjI2NCwgMC4wMDIyNjYsIDAuMDAyMjY4LCAwLjAwMjI3LCAwLjAwMjI3LCAwLjAwMjI2OSIsIFwKLSAgICAgICAgICAiMC4wMDIyOTMsIDAuMDAyMjcsIDAuMDAyMjcxLCAwLjAwMjI3MSwgMC4wMDIyNywgMC4wMDIyNywgMC4wMDIyNjgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2ODM1LCAwLjAwNjgzNywgMC4wMDY4MzYsIDAuMDA2ODM4LCAwLjAwNjgzNSwgMC4wMDY4MzQsIDAuMDA2ODMyIiwgXAotICAgICAgICAgICIwLjAwNjgwOSwgMC4wMDY4MjMsIDAuMDA2ODI0LCAwLjAwNjgyNSwgMC4wMDY4MjUsIDAuMDA2ODI0LCAwLjAwNjgyMyIsIFwKLSAgICAgICAgICAiMC4wMDY3OTEsIDAuMDA2ODE3LCAwLjAwNjgyLCAwLjAwNjgyMiwgMC4wMDY4MiwgMC4wMDY4MjEsIDAuMDA2ODIiLCBcCi0gICAgICAgICAgIjAuMDA2Nzc5LCAwLjAwNjgxMiwgMC4wMDY4MTYsIDAuMDA2ODE4LCAwLjAwNjgxOSwgMC4wMDY4MTksIDAuMDA2ODIiLCBcCi0gICAgICAgICAgIjAuMDA2NzcyLCAwLjAwNjgwOCwgMC4wMDY4MTQsIDAuMDA2ODE2LCAwLjAwNjgxOCwgMC4wMDY4MTgsIDAuMDA2ODE4IiwgXAotICAgICAgICAgICIwLjAwNjc2NCwgMC4wMDY3ODQsIDAuMDA2ODEsIDAuMDA2ODE0LCAwLjAwNjgxNiwgMC4wMDY4MTcsIDAuMDA2ODE2IiwgXAotICAgICAgICAgICIwLjAwNjc2MywgMC4wMDY3OTgsIDAuMDA2ODA3LCAwLjAwNjgxMiwgMC4wMDY4MTMsIDAuMDA2ODE1LCAwLjAwNjgxNiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTA1MiwgMC4wMDEwNTQsIDAuMDAxMDU0LCAwLjAwMTA1NCwgMC4wMDEwNTQsIDAuMDAxMDUzLCAwLjAwMTA1MyIsIFwKLSAgICAgICAgICAiMC4wMDEwMjUsIDAuMDAxMDUxLCAwLjAwMTA1NCwgMC4wMDEwNTQsIDAuMDAxMDU2LCAwLjAwMTA1NiwgMC4wMDEwNTYiLCBcCi0gICAgICAgICAgIjAuMDAwOTg5LCAwLjAwMTA0MiwgMC4wMDEwNDksIDAuMDAxMDUyLCAwLjAwMTA1NCwgMC4wMDEwNTUsIDAuMDAxMDU2IiwgXAotICAgICAgICAgICIwLjAwMDk2MSwgMC4wMDEwMzIsIDAuMDAxMDQzLCAwLjAwMTA0OCwgMC4wMDEwNTEsIDAuMDAxMDUyLCAwLjAwMTA1MyIsIFwKLSAgICAgICAgICAiMC4wMDA5NDIsIDAuMDAxMDI0LCAwLjAwMTAzNywgMC4wMDEwNDQsIDAuMDAxMDQ4LCAwLjAwMTA1LCAwLjAwMTA1MSIsIFwKLSAgICAgICAgICAiMC4wMDA5MjUsIDAuMDAxMDEzLCAwLjAwMTAyOSwgMC4wMDEwMzksIDAuMDAxMDQzLCAwLjAwMTA0NiwgMC4wMDEwNDgiLCBcCi0gICAgICAgICAgIjAuMDAwOTIyLCAwLjAwMTAwNSwgMC4wMDEwMjQsIDAuMDAxMDM1LCAwLjAwMTA0LCAwLjAwMTA0NCwgMC4wMDEwNDYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2MDM0LCAwLjAwNjA0NCwgMC4wMDYwNDUsIDAuMDA2MDQ1LCAwLjAwNjA0MywgMC4wMDYwNDUsIDAuMDA2MDQzIiwgXAotICAgICAgICAgICIwLjAwNjAwMiwgMC4wMDYwNDMsIDAuMDA2MDQ4LCAwLjAwNjA1LCAwLjAwNjA1MSwgMC4wMDYwNTEsIDAuMDA2MDUzIiwgXAotICAgICAgICAgICIwLjAwNTk2NiwgMC4wMDYwMzEsIDAuMDA2MDQsIDAuMDA2MDQ0LCAwLjAwNjA0OCwgMC4wMDYwNDksIDAuMDA2MDQ5IiwgXAotICAgICAgICAgICIwLjAwNTk0MiwgMC4wMDYwMiwgMC4wMDYwMzMsIDAuMDA2MDM5LCAwLjAwNjA0NCwgMC4wMDYwNDQsIDAuMDA2MDQ1IiwgXAotICAgICAgICAgICIwLjAwNTkyNSwgMC4wMDYwMSwgMC4wMDYwMjYsIDAuMDA2MDMzLCAwLjAwNjAzOSwgMC4wMDYwNDEsIDAuMDA2MDQzIiwgXAotICAgICAgICAgICIwLjAwNTkwOSwgMC4wMDU5OCwgMC4wMDYwMTYsIDAuMDA2MDI4LCAwLjAwNjAzMywgMC4wMDYwMzYsIDAuMDA2MDQiLCBcCi0gICAgICAgICAgIjAuMDA1OTAxLCAwLjAwNTk4NiwgMC4wMDYwMDksIDAuMDA2MDIxLCAwLjAwNjAyOSwgMC4wMDYwMzMsIDAuMDA2MDM3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxMDQ3LCAwLjAwMTA1LCAwLjAwMTA1LCAwLjAwMTA1LCAwLjAwMTA1LCAwLjAwMTA0OSwgMC4wMDEwNSIsIFwKLSAgICAgICAgICAiMC4wMDEwMTQsIDAuMDAxMDQ1LCAwLjAwMTA1LCAwLjAwMTA1LCAwLjAwMTA1MywgMC4wMDEwNTIsIDAuMDAxMDUyIiwgXAotICAgICAgICAgICIwLjAwMDk4OCwgMC4wMDEwMzgsIDAuMDAxMDQ1LCAwLjAwMTA0OCwgMC4wMDEwNSwgMC4wMDEwNSwgMC4wMDEwNTEiLCBcCi0gICAgICAgICAgIjAuMDAwOTYzLCAwLjAwMTAyOSwgMC4wMDEwNCwgMC4wMDEwNDUsIDAuMDAxMDQ3LCAwLjAwMTA0OSwgMC4wMDEwNSIsIFwKLSAgICAgICAgICAiMC4wMDA5ODIsIDAuMDAxMDMxLCAwLjAwMTAzOSwgMC4wMDEwNDUsIDAuMDAxMDQ3LCAwLjAwMTA0OSwgMC4wMDEwNDkiLCBcCi0gICAgICAgICAgIjAuMDAwOTk0LCAwLjAwMTAyOSwgMC4wMDEwMzgsIDAuMDAxMDQzLCAwLjAwMTA0NSwgMC4wMDEwNDcsIDAuMDAxMDQ5IiwgXAotICAgICAgICAgICIwLjAwMTAyNSwgMC4wMDEwMzIsIDAuMDAxMDQsIDAuMDAxMDQ1LCAwLjAwMTA0NywgMC4wMDEwNDgsIDAuMDAxMDQ5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQzAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNTQwNiwgMC4wMDU0MjEsIDAuMDA1NDIyLCAwLjAwNTQyMSwgMC4wMDU0MiwgMC4wMDU0MjEsIDAuMDA1NDE5IiwgXAotICAgICAgICAgICIwLjAwNTM1MiwgMC4wMDU0MDMsIDAuMDA1NDExLCAwLjAwNTQxNSwgMC4wMDU0MTQsIDAuMDA1NDE1LCAwLjAwNTQxNSIsIFwKLSAgICAgICAgICAiMC4wMDUzMjgsIDAuMDA1MzksIDAuMDA1NCwgMC4wMDU0MDYsIDAuMDA1NDA4LCAwLjAwNTQxMSwgMC4wMDU0MTIiLCBcCi0gICAgICAgICAgIjAuMDA1MzE0LCAwLjAwNTM3NywgMC4wMDUzOTEsIDAuMDA1NCwgMC4wMDU0MDMsIDAuMDA1NDA2LCAwLjAwNTQwNSIsIFwKLSAgICAgICAgICAiMC4wMDUzMTgsIDAuMDA1MzY5LCAwLjAwNTM4NCwgMC4wMDUzOTQsIDAuMDA1Mzk5LCAwLjAwNTQwMiwgMC4wMDU0MDMiLCBcCi0gICAgICAgICAgIjAuMDA1MzQ0LCAwLjAwNTM2NSwgMC4wMDUzNzksIDAuMDA1Mzg5LCAwLjAwNTM5NCwgMC4wMDUzOTcsIDAuMDA1NCIsIFwKLSAgICAgICAgICAiMC4wMDUzNzYsIDAuMDA1MzY2LCAwLjAwNTM3OSwgMC4wMDUzODYsIDAuMDA1MzkzLCAwLjAwNTM5NSwgMC4wMDUzOTciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDAwNTEsIDAuMDAwMDcxLCAwLjAwMDA3MywgMC4wMDAwNzQsIDAuMDAwMDc0LCAwLjAwMDA3NCwgMC4wMDAwNzUiLCBcCi0gICAgICAgICAgIjAuMDAwMDM5LCAwLjAwMDExNSwgMC4wMDAxMjQsIDAuMDAwMTI5LCAwLjAwMDEzMSwgMC4wMDAxMzMsIDAuMDAwMTM0IiwgXAotICAgICAgICAgICIwLjAwMDAzMiwgMC4wMDAxMTIsIDAuMDAwMTI1LCAwLjAwMDEzMywgMC4wMDAxNDIsIDAuMDAwMTQ1LCAwLjAwMDE0NyIsIFwKLSAgICAgICAgICAiMC4wMDAwNTcsIDAuMDAwMTAzLCAwLjAwMDEyMSwgMC4wMDAxMzIsIDAuMDAwMTM3LCAwLjAwMDE0NSwgMC4wMDAxNDciLCBcCi0gICAgICAgICAgIjAuMDAwMDUyLCAwLjAwMDEsIDAuMDAwMTIsIDAuMDAwMTMxLCAwLjAwMDEzNywgMC4wMDAxNCwgMC4wMDAxNDMiLCBcCi0gICAgICAgICAgIjAuMDAwMDIzLCAwLjAwMDA5OCwgMC4wMDAxMTcsIDAuMDAwMTI5LCAwLjAwMDEzNiwgMC4wMDAxNCwgMC4wMDAxNDMiLCBcCi0gICAgICAgICAgIjAuMDAwMDQ3LCAwLjAwMDEwMiwgMC4wMDAxMTcsIDAuMDAwMTI5LCAwLjAwMDEzNiwgMC4wMDAxNCwgMC4wMDAxNDMiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogQU9JMjIyWDEgKgotICogLS0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKEFPSTIyMlgxKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMjEzNTkzOwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwOTA0OTk0OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDkwMTE4OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDkwNDk5NDsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA0MDksIDAuMDAwNDA5LCAwLjAwMDQwOSwgMC4wMDA0MDksIDAuMDAwNDA5LCAwLjAwMDQwOSwgMC4wMDA0MDkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA0MiwgMC4wMDA0MTEsIDAuMDAwNDEsIDAuMDAwNDEsIDAuMDAwNDEsIDAuMDAwNDEsIDAuMDAwNDEiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEExKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA5MDc2NjQ7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwOTAxMDMzOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDkwNzY2NDsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyMzUsIDAuMDAwMjM1LCAwLjAwMDIzNSwgMC4wMDAyMzUsIDAuMDAwMjM1LCAwLjAwMDIzNSwgMC4wMDAyMzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA0NjQsIDAuMDAwNDY1LCAwLjAwMDQ2NSwgMC4wMDA0NjUsIDAuMDAwNDY1LCAwLjAwMDQ2NSwgMC4wMDA0NjQiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA5MjY1OTc7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwOTIzNDE5OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDkyNjU5NzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA0MDksIDAuMDAwNDA5LCAwLjAwMDQwOSwgMC4wMDA0MDksIDAuMDAwNDA5LCAwLjAwMDQwOSwgMC4wMDA0MDkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA0MTksIDAuMDAwNDExLCAwLjAwMDQxLCAwLjAwMDQxLCAwLjAwMDQxLCAwLjAwMDQxLCAwLjAwMDQxIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCMSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwOTQ3NjEzOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDk0MTY5OTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA5NDc2MTM7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjE4LCAwLjAwMDIxOCwgMC4wMDAyMTgsIDAuMDAwMjE4LCAwLjAwMDIxOCwgMC4wMDAyMTgsIDAuMDAwMjE4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNDY0LCAwLjAwMDQ2NCwgMC4wMDA0NjQsIDAuMDAwNDY0LCAwLjAwMDQ2NCwgMC4wMDA0NjQsIDAuMDAwNDY0Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihDMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwOTIxMzc2OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDkyMTM3NjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA5MTkxNDk7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNDA5LCAwLjAwMDQwOSwgMC4wMDA0MDksIDAuMDAwNDA5LCAwLjAwMDQwOSwgMC4wMDA0MDksIDAuMDAwNDA5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNDIxLCAwLjAwMDQxMSwgMC4wMDA0MSwgMC4wMDA0MSwgMC4wMDA0MSwgMC4wMDA0MSwgMC4wMDA0MSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQzEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDk0OTg4MTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA5NDk2MDc7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwOTQ5ODgxOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDI1MSwgMC4wMDAyNTEsIDAuMDAwMjUxLCAwLjAwMDI1MSwgMC4wMDAyNTEsIDAuMDAwMjUxLCAwLjAwMDI1MSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDQ2NCwgMC4wMDA0NjQsIDAuMDAwNDY0LCAwLjAwMDQ2NCwgMC4wMDA0NjQsIDAuMDAwNDY0LCAwLjAwMDQ2NCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjA5MzMxNTg7Ci0gICAgZnVuY3Rpb24gOiAiKCEoKChDMCBDMSkrKEEwIEExKSkrKEIwIEIxKSkpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTczMDI4LCAwLjI0Mjc5NCwgMC42MzkxMTQsIDAuOTkxMzgzLCAxLjQ2MDY5LCAyLjM5OTMxLCAyLjk4NDc2IiwgXAotICAgICAgICAgICIwLjE4MjQzMiwgMC4yNTIyNTksIDAuNjQ4NjU4LCAxLjAwMDQzLCAxLjQ3MDE4LCAyLjQwOTY1LCAyLjk5NTEzIiwgXAotICAgICAgICAgICIwLjE5MjUzMywgMC4yNjI0NDcsIDAuNjU5MDYxLCAxLjAxMTEsIDEuNDgwNjEsIDIuNDE5NjMsIDMuMDA1NDUiLCBcCi0gICAgICAgICAgIjAuMjAxNzQ0LCAwLjI3MTY4MywgMC42NjgwNTIsIDEuMDIwMDksIDEuNDg5MTYsIDIuNDI4MDcsIDMuMDEzNzUiLCBcCi0gICAgICAgICAgIjAuMjEwMzc1LCAwLjI4MDI4NywgMC42NzY4LCAxLjAyODYxLCAxLjQ5ODE3LCAyLjQzNzA5LCAzLjAyMjI3IiwgXAotICAgICAgICAgICIwLjIyMzY5NiwgMC4yOTM2MzcsIDAuNjkwNDQ5LCAxLjA0MjExLCAxLjUxMTU0LCAyLjQ1MDQ1LCAzLjAzNTgzIiwgXAotICAgICAgICAgICIwLjIzNDkzMiwgMC4zMDQ4NTIsIDAuNzAxNDAyLCAxLjA1MzU5LCAxLjUyMjM3LCAyLjQ2MTgyLCAzLjA0ODAxIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI5MjkyOSwgMC40MzMwNDQsIDEuMjM0OTMsIDEuOTQyMjcsIDIuODg1MjYsIDQuNzcyLCA1Ljk1MTEyIiwgXAotICAgICAgICAgICIwLjI5Mjg5NiwgMC40MzI3NjQsIDEuMjM1MDQsIDEuOTQyNTUsIDIuODg1MjgsIDQuNzcxMjMsIDUuOTUwNTYiLCBcCi0gICAgICAgICAgIjAuMjkyOTg0LCAwLjQzMjc3MSwgMS4yMzUwNCwgMS45NDMwNSwgMi44ODU0NiwgNC43NzEzOCwgNS45NTA1NSIsIFwKLSAgICAgICAgICAiMC4yOTI4OTEsIDAuNDMyODQ2LCAxLjIzNDkxLCAxLjk0MjY1LCAyLjg4NDgzLCA0Ljc3MTY0LCA1Ljk1MjY5IiwgXAotICAgICAgICAgICIwLjI5MzU0MSwgMC40MzMwNzksIDEuMjM1MDMsIDEuOTQyNTIsIDIuODg1MTIsIDQuNzcyMDQsIDUuOTUxNTMiLCBcCi0gICAgICAgICAgIjAuMjk1NDEyLCAwLjQzMzg0MSwgMS4yMzUxLCAxLjk0MjIzLCAyLjg4NTAzLCA0Ljc3MTk0LCA1Ljk0OTk4IiwgXAotICAgICAgICAgICIwLjI5ODAwOCwgMC40MzU3ODMsIDEuMjM1MDYsIDEuOTQxOTksIDIuODg0NjcsIDQuNzcxNzQsIDUuOTUwNDIiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTE2ODQ2LCAwLjE2MzE5LCAwLjQyMzA2MSwgMC42NTE0NjQsIDAuOTU1OTg0LCAxLjU2NDY4LCAxLjk0NDAzIiwgXAotICAgICAgICAgICIwLjEyNTc4NywgMC4xNzIxMTgsIDAuNDMxOTc2LCAwLjY2MDQxNywgMC45NjQ1MTQsIDEuNTcyNTgsIDEuOTUyMzMiLCBcCi0gICAgICAgICAgIjAuMTM2Nzc3LCAwLjE4MzE3MSwgMC40NDMwMTEsIDAuNjcxMzYxLCAwLjk3NTgyMiwgMS41ODQxNSwgMS45NjQxMSIsIFwKLSAgICAgICAgICAiMC4xNDc4MjcsIDAuMTk0MTkzLCAwLjQ1NDA4LCAwLjY4MjQ0MSwgMC45ODczNDYsIDEuNTk2LCAxLjk3NTI2IiwgXAotICAgICAgICAgICIwLjE1ODcwMywgMC4yMDUzNCwgMC40NjUzMDgsIDAuNjkzOTExLCAwLjk5Nzk1MywgMS42MDY3NywgMS45ODYwNSIsIFwKLSAgICAgICAgICAiMC4xNzY1MDUsIDAuMjIyNTAzLCAwLjQ4MjY3MSwgMC43MTEzOTIsIDEuMDE1ODQsIDEuNjIzNzksIDIuMDAzNjQiLCBcCi0gICAgICAgICAgIjAuMTkxNzkyLCAwLjIzNzkwNywgMC40OTg1MDUsIDAuNzI3MjA1LCAxLjAzMTcxLCAxLjYzOTYyLCAyLjAxOTM4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIwNTQwOCwgMC4yOTUxMzMsIDAuODA0MjY4LCAxLjI1MzEyLCAxLjg1MTc2LCAzLjA0ODczLCAzLjc5Njc3IiwgXAotICAgICAgICAgICIwLjIwNTM0OSwgMC4yOTUwNTQsIDAuODA0MTYxLCAxLjI1Mjk4LCAxLjg1MTgyLCAzLjA0ODI4LCAzLjc5NzM5IiwgXAotICAgICAgICAgICIwLjIwNTMzOCwgMC4yOTUwMjQsIDAuODA0MzE5LCAxLjI1MzM5LCAxLjg1MjA4LCAzLjA0ODczLCAzLjc5NzEiLCBcCi0gICAgICAgICAgIjAuMjA2NjgyLCAwLjI5NTM0NSwgMC44MDQyNjgsIDEuMjUzMzgsIDEuODUxNDYsIDMuMDQ4NTQsIDMuNzk3MTEiLCBcCi0gICAgICAgICAgIjAuMjA5MjM4LCAwLjI5NjcyMiwgMC44MDQyMjUsIDEuMjUzMDYsIDEuODUyMDUsIDMuMDQ4MzUsIDMuNzk3MTQiLCBcCi0gICAgICAgICAgIjAuMjE1NDcyLCAwLjMwMTA4MiwgMC44MDQxNjYsIDEuMjUyOTEsIDEuODUxOTMsIDMuMDQ4NDcsIDMuNzk3NDMiLCBcCi0gICAgICAgICAgIjAuMjIxODcsIDAuMzA2NDcsIDAuODA0NDQ4LCAxLjI1MzM1LCAxLjg1MTY1LCAzLjA0ODYzLCAzLjc5NjU3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkExIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNjk1NzUsIDAuMjM5NzcsIDAuNjM4MjAzLCAwLjk5MjU5NywgMS40NjQ1OSwgMi40MDg2NCwgMi45OTcyNyIsIFwKLSAgICAgICAgICAiMC4xNzkwNTksIDAuMjQ5Mjc0LCAwLjY0Nzk5NCwgMS4wMDIsIDEuNDc0MDcsIDIuNDE4NDUsIDMuMDA3NDQiLCBcCi0gICAgICAgICAgIjAuMTg5MDU3LCAwLjI1OTQwOSwgMC42NTgwNjEsIDEuMDEyMDMsIDEuNDg0NDcsIDIuNDI5MjYsIDMuMDE4MjYiLCBcCi0gICAgICAgICAgIjAuMTk4MjAxLCAwLjI2ODU4OCwgMC42NjcyNTUsIDEuMDIxMzYsIDEuNDkzMjcsIDIuNDM3ODUsIDMuMDI2NDUiLCBcCi0gICAgICAgICAgIjAuMjA2NzY5LCAwLjI3NzE0MywgMC42NzYwMTMsIDEuMDMwNDUsIDEuNTAyMDYsIDIuNDQ2NDUsIDMuMDM2MTkiLCBcCi0gICAgICAgICAgIjAuMjE5OTk3LCAwLjI5MDQwMiwgMC42ODk1NjIsIDEuMDQzMzUsIDEuNTE1NTIsIDIuNDYwNDIsIDMuMDQ4NjIiLCBcCi0gICAgICAgICAgIjAuMjMxMTk1LCAwLjMwMTU4NiwgMC43MDA0OTksIDEuMDU0NzgsIDEuNTI2MzcsIDIuNDcxMjgsIDMuMDYwOSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yODkyNzQsIDAuNDMwMTY0LCAxLjIzNjI3LCAxLjk0NzY0LCAyLjg5Nzc3LCA0Ljc5OTgsIDUuOTc5ODkiLCBcCi0gICAgICAgICAgIjAuMjg5Mjg3LCAwLjQyOTg4OCwgMS4yMzY0OCwgMS45NDgzLCAyLjg5NzU4LCA0Ljc5OTk5LCA1Ljk3ODYxIiwgXAotICAgICAgICAgICIwLjI4OTM0OSwgMC40Mjk5MjQsIDEuMjM2MzMsIDEuOTQ4MDMsIDIuODk3ODEsIDQuNzkzMzYsIDUuOTc5MzIiLCBcCi0gICAgICAgICAgIjAuMjg5MjYzLCAwLjQyOTksIDEuMjM2MjcsIDEuOTQ3OTYsIDIuODk3NzcsIDQuODAwMzgsIDUuOTgwODYiLCBcCi0gICAgICAgICAgIjAuMjg5OTIyLCAwLjQzMDE2NywgMS4yMzY0NiwgMS45NDc2NSwgMi44OTU3NSwgNC44MDAzMiwgNS45Nzg3MSIsIFwKLSAgICAgICAgICAiMC4yOTE4MzMsIDAuNDMwOTU5LCAxLjIzNjQ2LCAxLjk0ODE4LCAyLjg5NTg1LCA0LjgwMDMyLCA1Ljk3OTQ2IiwgXAotICAgICAgICAgICIwLjI5NDUwOCwgMC40MzI5NTUsIDEuMjM2NDIsIDEuOTQ3MywgMi44OTYwMiwgNC43OTMxOCwgNS45Nzk0Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExNDU1NSwgMC4xNjA4OTgsIDAuNDIwNTU3LCAwLjY0OTI0NywgMC45NTM1MTMsIDEuNTYxODEsIDEuOTQxOCIsIFwKLSAgICAgICAgICAiMC4xMjM2NTMsIDAuMTY5OTc3LCAwLjQyOTc1NywgMC42NTgxMSwgMC45NjIzMjUsIDEuNTcwMzksIDEuOTUwODIiLCBcCi0gICAgICAgICAgIjAuMTM1MTIzLCAwLjE4MTUwMSwgMC40NDEzNDQsIDAuNjY5Nzk1LCAwLjk3NDI0NCwgMS41ODI2LCAxLjk2MTgzIiwgXAotICAgICAgICAgICIwLjE0NzA0OSwgMC4xOTMzNTIsIDAuNDUzMjA1LCAwLjY4MTU1NCwgMC45ODYzNjcsIDEuNTk0OTIsIDEuOTc0MzMiLCBcCi0gICAgICAgICAgIjAuMTU4NTQ5LCAwLjIwNDkyNSwgMC40NjQ3NDEsIDAuNjkzMTMsIDAuOTk3NjkxLCAxLjYwNTgxLCAxLjk4NjAzIiwgXAotICAgICAgICAgICIwLjE3Nzk0NywgMC4yMjM2NjQsIDAuNDgzMzIxLCAwLjcxMTg5NSwgMS4wMTYxOSwgMS42MjQyNywgMi4wMDQ3NSIsIFwKLSAgICAgICAgICAiMC4xOTQ2ODIsIDAuMjQwMzA5LCAwLjQ5OTg2NCwgMC43MjgxNjgsIDEuMDMyODEsIDEuNjQwNDUsIDIuMDIxMTkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjA1Mzk3LCAwLjI5NTA3NSwgMC44MDQwNjksIDEuMjUzMzIsIDEuODUyMDgsIDMuMDQ4ODcsIDMuNzk2NjUiLCBcCi0gICAgICAgICAgIjAuMjA1MzMzLCAwLjI5NTA1LCAwLjgwNDExNCwgMS4yNTMwMSwgMS44NTE5OCwgMy4wNDg2LCAzLjc5NjQ0IiwgXAotICAgICAgICAgICIwLjIwNTMzLCAwLjI5NTAyNywgMC44MDQyMTgsIDEuMjUzMzIsIDEuODUxNTgsIDMuMDQ4ODcsIDMuNzk2NTgiLCBcCi0gICAgICAgICAgIjAuMjA3NTg4LCAwLjI5NTQ2MSwgMC44MDQzMiwgMS4yNTMyMiwgMS44NTE4MiwgMy4wNDg2NywgMy43OTcxOCIsIFwKLSAgICAgICAgICAiMC4yMTE3NDYsIDAuMjk3NzY1LCAwLjgwNDEwMywgMS4yNTMwMSwgMS44NTE1MiwgMy4wNDg5NSwgMy43OTcxMiIsIFwKLSAgICAgICAgICAiMC4yMjA0MTMsIDAuMzA0MzE1LCAwLjgwNDI5OCwgMS4yNTMzNywgMS44NTE2OCwgMy4wNDg3NywgMy43OTcxMiIsIFwKLSAgICAgICAgICAiMC4yMjk2NjMsIDAuMzEyMDMzLCAwLjgwNDQ3NCwgMS4yNTMzNiwgMS44NTIwNSwgMy4wNDgzNSwgMy43OTczOSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTY0ODgsIDAuMjM0NzE3LCAwLjYzMTAwMSwgMC45ODM1MDIsIDEuNDU2MzIsIDIuMzk5OTgsIDIuOTg5MTUiLCBcCi0gICAgICAgICAgIjAuMTczODg3LCAwLjI0MzcyNSwgMC42NDAxMTgsIDAuOTkyNzQ1LCAxLjQ2NTE2LCAyLjQwODg2LCAyLjk5ODYiLCBcCi0gICAgICAgICAgIjAuMTg0NTQ4LCAwLjI1NDQwOSwgMC42NTEwMjksIDEuMDAzMjcsIDEuNDc1NDgsIDIuNDE5OTksIDMuMDA5MTgiLCBcCi0gICAgICAgICAgIjAuMTk0NDQ4LCAwLjI2NDQyNCwgMC42NjEwNjgsIDEuMDEzMzYsIDEuNDg1MDEsIDIuNDI4NDIsIDMuMDE4MTUiLCBcCi0gICAgICAgICAgIjAuMjA0MzQ4LCAwLjI3NDI4LCAwLjY3MDY0MSwgMS4wMjM2NywgMS40OTUwOCwgMi40Mzk0MSwgMy4wMjg4MyIsIFwKLSAgICAgICAgICAiMC4yMjAyMDEsIDAuMjkwMTY1LCAwLjY4NjY5MiwgMS4wMzg3OSwgMS41MTA1OCwgMi40NTUzNSwgMy4wNDUwNCIsIFwKLSAgICAgICAgICAiMC4yMzM5ODcsIDAuMzA0MDc4LCAwLjcwMDQzNiwgMS4wNTMyLCAxLjUyNDcyLCAyLjQ2ODU0LCAzLjA1ODQ3Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI5Mjg3OSwgMC40MzMxMTMsIDEuMjM2MjQsIDEuOTQ3MywgMi44OTU5NSwgNC43OTM1NywgNS45NzczIiwgXAotICAgICAgICAgICIwLjI5Mjg4LCAwLjQzMzIwMiwgMS4yMzYzNCwgMS45NDc1NiwgMi44OTU5MywgNC43OTMyMywgNS45NzcxMyIsIFwKLSAgICAgICAgICAiMC4yOTI5MzUsIDAuNDMyODIxLCAxLjIzNjQ1LCAxLjk0ODAxLCAyLjg5NjEsIDQuNzkyOTQsIDUuOTc4NzciLCBcCi0gICAgICAgICAgIjAuMjkzMDQ0LCAwLjQzMjg4LCAxLjIzNjQyLCAxLjk0NzUsIDIuODk2NTcsIDQuNzkyMjEsIDUuOTc4NiIsIFwKLSAgICAgICAgICAiMC4yOTQwNjgsIDAuNDMzMDc2LCAxLjIzNjMyLCAxLjk0ODQ1LCAyLjg5NjI3LCA0Ljc5Mjk2LCA1Ljk3ODAyIiwgXAotICAgICAgICAgICIwLjI5NzcyOSwgMC40MzQ5MzYsIDEuMjM2MzksIDEuOTQ4MiwgMi44OTUzNSwgNC43OTMxOSwgNS45Nzg3NyIsIFwKLSAgICAgICAgICAiMC4zMDIxMjcsIDAuNDM3ODk0LCAxLjIzNjMzLCAxLjk0ODEsIDIuODk1NDYsIDQuNzk0ODEsIDUuOTc3NzciKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTA2NzM4LCAwLjE1MjY2MiwgMC40MTE2ODIsIDAuNjM5OTk2LCAwLjk0NDI5OCwgMS41NTIxMiwgMS45MzIwOSIsIFwKLSAgICAgICAgICAiMC4xMTU5ODcsIDAuMTYxODUsIDAuNDIwOTczLCAwLjY0OTI4MSwgMC45NTM0OTYsIDEuNTYxNDYsIDEuOTQxNDEiLCBcCi0gICAgICAgICAgIjAuMTI2ODc4LCAwLjE3Mjg3NiwgMC40MzIxNDUsIDAuNjYwNDIsIDAuOTY0NzI3LCAxLjU3Mjc0LCAxLjk1MjQ3IiwgXAotICAgICAgICAgICIwLjEzNzc5NCwgMC4xODM4OSwgMC40NDMyMzEsIDAuNjcxNTg4LCAwLjk3NTY2MywgMS41ODM1NiwgMS45NjM5OSIsIFwKLSAgICAgICAgICAiMC4xNDg3NDgsIDAuMTk0NzExLCAwLjQ1NDM2OSwgMC42ODI2ODQsIDAuOTg2ODQzLCAxLjU5NDcxLCAxLjk3NDQ1IiwgXAotICAgICAgICAgICIwLjE2NjM2NSwgMC4yMTIxNTcsIDAuNDcyMTIzLCAwLjcwMDI0MywgMS4wMDQ0NCwgMS42MTIzMywgMS45OTIxMiIsIFwKLSAgICAgICAgICAiMC4xODExNjMsIDAuMjI3ODU4LCAwLjQ4NzQ4NCwgMC43MTYxMTcsIDEuMDIwMzQsIDEuNjI4MDYsIDIuMDA3NzIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTk0MzMzLCAwLjI4NDE0NiwgMC43OTMwNjQsIDEuMjQyMDgsIDEuODQwMywgMy4wMzc0MywgMy43ODczNSIsIFwKLSAgICAgICAgICAiMC4xOTQzMiwgMC4yODQxMTYsIDAuNzkzMTUsIDEuMjQyMDMsIDEuODQwNTQsIDMuMDM3MzIsIDMuNzg1OTEiLCBcCi0gICAgICAgICAgIjAuMTk0NDc0LCAwLjI4NDEzNSwgMC43OTMxMjQsIDEuMjQxNzQsIDEuODQwMzIsIDMuMDM3NTMsIDMuNzg1NzkiLCBcCi0gICAgICAgICAgIjAuMTk2MTI2LCAwLjI4NDYxNywgMC43OTI5NDIsIDEuMjQyMDYsIDEuODQwNDUsIDMuMDM3MjMsIDMuNzg1MjUiLCBcCi0gICAgICAgICAgIjAuMTk5MDY1LCAwLjI4NjE5NSwgMC43OTMxNzMsIDEuMjQyMDIsIDEuODQwMTQsIDMuMDM4MzQsIDMuNzg2NCIsIFwKLSAgICAgICAgICAiMC4yMDU5MzUsIDAuMjkwOTg1LCAwLjc5MzE1NSwgMS4yNDE4MSwgMS44NDA0MywgMy4wMzcyNCwgMy43ODUyOCIsIFwKLSAgICAgICAgICAiMC4yMTI4NjMsIDAuMjk2MzA0LCAwLjc5MzUyNSwgMS4yNDIwNCwgMS44NDA1LCAzLjAzNzc3LCAzLjc4NzE3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIxIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNjE4MjYsIDAuMjMyMzYsIDAuNjMxNTgxLCAwLjk4MzgxLCAxLjQ1NjUsIDIuNDAwMTgsIDIuOTg5MTQiLCBcCi0gICAgICAgICAgIjAuMTcwODQ5LCAwLjI0MTQwMSwgMC42NDA0NjcsIDAuOTkyOTExLCAxLjQ2NTI3LCAyLjQwOTc3LCAyLjk5NzgzIiwgXAotICAgICAgICAgICIwLjE4MTE4NSwgMC4yNTE4MjgsIDAuNjUxMDA4LCAxLjAwMzY2LCAxLjQ3NTU4LCAyLjQyMDIxLCAzLjAwOTM3IiwgXAotICAgICAgICAgICIwLjE5MTA5OCwgMC4yNjE4NDMsIDAuNjYxMDg2LCAxLjAxMzY5LCAxLjQ4NjIzLCAyLjQzMDIzLCAzLjAxOTY1IiwgXAotICAgICAgICAgICIwLjIwMDg1MywgMC4yNzE1ODMsIDAuNjcwOTU5LCAxLjAyNDAyLCAxLjQ5NTUxLCAyLjQzOTk0LCAzLjAyODU0IiwgXAotICAgICAgICAgICIwLjIxNjQ5OCwgMC4yODcxOTEsIDAuNjg3MDc2LCAxLjAzODk4LCAxLjUxMTA0LCAyLjQ1NTY2LCAzLjA0NTUyIiwgXAotICAgICAgICAgICIwLjIzMDIxMywgMC4zMDA5NywgMC43MDA4ODIsIDEuMDUzNDgsIDEuNTI1OTQsIDIuNDY5NTIsIDMuMDU4MzIiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjkwNzQ1LCAwLjQzMjI0MSwgMS4yMzYwMiwgMS45NDY5MywgMi44OTY1NywgNC43OTI4OCwgNS45Nzc1MyIsIFwKLSAgICAgICAgICAiMC4yOTA3MjksIDAuNDMyMjUyLCAxLjIzNTg3LCAxLjk0NjcyLCAyLjg5NTc0LCA0LjgwMDQyLCA1Ljk3ODMyIiwgXAotICAgICAgICAgICIwLjI5MDcxMSwgMC40MzIyNzksIDEuMjM1OTEsIDEuOTQ3NTgsIDIuODk3NjQsIDQuODAwMywgNS45NzkyMSIsIFwKLSAgICAgICAgICAiMC4yOTA5ODEsIDAuNDMyMjQ5LCAxLjIzNTkyLCAxLjk0NzQ2LCAyLjg5NTUyLCA0Ljc5NTg2LCA1Ljk3OTM4IiwgXAotICAgICAgICAgICIwLjI5MjA2NSwgMC40MzI1MDcsIDEuMjM1OTMsIDEuOTQ4MDYsIDIuODk2MDYsIDQuNzk5OTksIDUuOTc4MzciLCBcCi0gICAgICAgICAgIjAuMjk1NjM4LCAwLjQzNDQyLCAxLjIzNTksIDEuOTQ3NDQsIDIuODk2ODMsIDQuNzkyNTIsIDUuOTc5NDgiLCBcCi0gICAgICAgICAgIjAuMzAwMjYyLCAwLjQzNzQxNCwgMS4yMzU4NSwgMS45NDc2NiwgMi44OTU2LCA0Ljc5OTY0LCA1Ljk3OTg4Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwNDI3MiwgMC4xNTAxNzYsIDAuNDA5MjUsIDAuNjM3NTYyLCAwLjk0MTY0NywgMS41NDk2MywgMS45Mjk1NiIsIFwKLSAgICAgICAgICAiMC4xMTM2MDgsIDAuMTU5NTI3LCAwLjQxODY5MywgMC42NDY5NjYsIDAuOTUxMDIyLCAxLjU1ODg5LCAxLjkzODcxIiwgXAotICAgICAgICAgICIwLjEyNTM4NiwgMC4xNzEzMjIsIDAuNDMwNTA1LCAwLjY1ODc4LCAwLjk2MzAyNywgMS41NzA5MywgMS45NTA1NiIsIFwKLSAgICAgICAgICAiMC4xMzY1OSwgMC4xODI1OTYsIDAuNDQxNzQ3LCAwLjY3MDAzMywgMC45NzQxOTMsIDEuNTgyMTcsIDEuOTYyMTYiLCBcCi0gICAgICAgICAgIjAuMTQ4MjY4LCAwLjE5NDIyMSwgMC40NTM0NDQsIDAuNjgxNzIsIDAuOTg1OTE2LCAxLjU5NDAyLCAxLjk3MzUxIiwgXAotICAgICAgICAgICIwLjE2NzY4OCwgMC4yMTMwMDcsIDAuNDcyMTcsIDAuNzAwNDc2LCAxLjAwNDYyLCAxLjYxMjYxLCAxLjk5MjU0IiwgXAotICAgICAgICAgICIwLjE4NDQ0MiwgMC4yMzAxMywgMC40ODg0MjIsIDAuNzE2Nzg3LCAxLjAyMDk2LCAxLjYyODk1LCAyLjAwODg0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE5NDI5OSwgMC4yODQxMzUsIDAuNzkyOTgxLCAxLjI0MTkxLCAxLjg0MDIyLCAzLjAzNjk5LCAzLjc4NjkyIiwgXAotICAgICAgICAgICIwLjE5NDI5NiwgMC4yODQwOSwgMC43OTI5OTcsIDEuMjQxODEsIDEuODQwMjgsIDMuMDM3MDksIDMuNzg1NzciLCBcCi0gICAgICAgICAgIjAuMTk0NjE5LCAwLjI4NDEwMywgMC43OTMxMjMsIDEuMjQxNjksIDEuODQwMTMsIDMuMDM3NDgsIDMuNzg2MzIiLCBcCi0gICAgICAgICAgIjAuMTk3NTM5LCAwLjI4NDkyNSwgMC43OTMxMSwgMS4yNDIwNiwgMS44NDAwOSwgMy4wMzczOCwgMy43ODQ4OSIsIFwKLSAgICAgICAgICAiMC4yMDIxOTYsIDAuMjg3NTkzLCAwLjc5MzE3NCwgMS4yNDIwNiwgMS44NDAxNSwgMy4wMzcxNCwgMy43ODY1NyIsIFwKLSAgICAgICAgICAiMC4yMTE0MDIsIDAuMjk0NjQ2LCAwLjc5MzExLCAxLjI0MjAyLCAxLjg0MDUzLCAzLjAzODI5LCAzLjc4NTI2IiwgXAotICAgICAgICAgICIwLjIyMTMwOSwgMC4zMDIyNzMsIDAuNzkzNjczLCAxLjI0MjAzLCAxLjg0MDE0LCAzLjAzNzA4LCAzLjc4NjgxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNDc0MiwgMC4yMTczMDIsIDAuNjEzNjE1LCAwLjk2NTc0NywgMS40MzcyNiwgMi4zODExMSwgMi45NzExMyIsIFwKLSAgICAgICAgICAiMC4xNTYwMDEsIDAuMjI1OTIyLCAwLjYyMTg4NywgMC45NzQ0LCAxLjQ0NjkxLCAyLjM5MDY1LCAyLjk4MDI0IiwgXAotICAgICAgICAgICIwLjE2NjYxNiwgMC4yMzY1MTQsIDAuNjMyODE5LCAwLjk4NDcxOSwgMS40NTc2NywgMi40MDA4NywgMi45ODk4MyIsIFwKLSAgICAgICAgICAiMC4xNzc0OTMsIDAuMjQ3MDMsIDAuNjQzNDAzLCAwLjk5NTU3NSwgMS40Njc0NSwgMi40MTE4NCwgMy4wMDA2OSIsIFwKLSAgICAgICAgICAiMC4xODg0MDYsIDAuMjU4MjUxLCAwLjY1NDY4NSwgMS4wMDYzOCwgMS40Nzg0MSwgMi40MjMyMSwgMy4wMTE2NCIsIFwKLSAgICAgICAgICAiMC4yMDYwMDIsIDAuMjc1NjUzLCAwLjY3MTk4MiwgMS4wMjQyLCAxLjQ5NjcyLCAyLjQzOTQ1LCAzLjAyOTA1IiwgXAotICAgICAgICAgICIwLjIyMTMyNSwgMC4yOTEwMDcsIDAuNjg3MTMsIDEuMDM5MjIsIDEuNTExMzIsIDIuNDU0NywgMy4wNDQ4Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI5MjgzOCwgMC40MzI5MiwgMS4yMzYxMywgMS45NDc3MywgMi44OTU2MiwgNC43OTMwNywgNS45NzY0MiIsIFwKLSAgICAgICAgICAiMC4yOTI3MywgMC40MzI4MjcsIDEuMjM1OTIsIDEuOTQ3MTUsIDIuODk2NTYsIDQuNzkyOTgsIDUuOTc3MDkiLCBcCi0gICAgICAgICAgIjAuMjkxODY2LCAwLjQzMjg5MSwgMS4yMzYxOCwgMS45NDc3NywgMi44OTU0NCwgNC43OTI1MywgNS45NzkwNyIsIFwKLSAgICAgICAgICAiMC4yOTI2NjcsIDAuNDMyMjY2LCAxLjIzNTg2LCAxLjk0NzI1LCAyLjg5NTQ0LCA0Ljc5MjYsIDUuOTgxNCIsIFwKLSAgICAgICAgICAiMC4yOTUzMTIsIDAuNDMyNzE3LCAxLjIzNjAyLCAxLjk0NzM2LCAyLjg5NTA0LCA0Ljc5MzE2LCA1Ljk4MDY0IiwgXAotICAgICAgICAgICIwLjMwMjM2NywgMC40MzY0MzUsIDEuMjM2MDQsIDEuOTQ3NTEsIDIuODk1OTYsIDQuNzkxNzQsIDUuOTgxMDgiLCBcCi0gICAgICAgICAgIjAuMzEwMTcxLCAwLjQ0MTg5NiwgMS4yMzU3OSwgMS45NDcxMSwgMi44OTUzMywgNC43OTE3NiwgNS45Nzc1MyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTQ0MjUsIDAuMTQwMDgyLCAwLjM5OTAzMiwgMC42MjczMDcsIDAuOTMxNzcyLCAxLjU0MDE2LCAxLjkxOTciLCBcCi0gICAgICAgICAgIjAuMTAzNTkxLCAwLjE0OTM3MSwgMC40MDg0MDgsIDAuNjM2ODA0LCAwLjk0MTIyNywgMS41NDk0MiwgMS45MjkxMSIsIFwKLSAgICAgICAgICAiMC4xMTQ1NjgsIDAuMTYwNDMxLCAwLjQxOTYyOSwgMC42NDgwNDcsIDAuOTUyMzg1LCAxLjU2MDQ5LCAxLjk0MDQxIiwgXAotICAgICAgICAgICIwLjEyNTM5NiwgMC4xNzEzOTEsIDAuNDMwNjEyLCAwLjY1OTE0LCAwLjk2MzUzOCwgMS41NzE2NCwgMS45NTE2MiIsIFwKLSAgICAgICAgICAiMC4xMzY0MTksIDAuMTgyMjI5LCAwLjQ0MTc5LCAwLjY3MDE2LCAwLjk3NDYxOCwgMS41ODI3MiwgMS45NjI3IiwgXAotICAgICAgICAgICIwLjE1MzY0NywgMC4xOTk5MDgsIDAuNDU4ODI3LCAwLjY4Nzg5NiwgMC45OTIyNywgMS42MDA1LCAxLjk4MDM1IiwgXAotICAgICAgICAgICIwLjE2ODcxMSwgMC4yMTUwNzMsIDAuNDc0ODg5LCAwLjcwNDAwMSwgMS4wMDgxNywgMS42MTY1NCwgMS45OTYxOSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xODM0NTQsIDAuMjczMDk4LCAwLjc4MTYwNCwgMS4yMzAwNSwgMS44MjkyOSwgMy4wMjc1LCAzLjc3ODciLCBcCi0gICAgICAgICAgIjAuMTgzNDEsIDAuMjczMDE5LCAwLjc4MTYxNSwgMS4yMzAyNywgMS44MjkwMSwgMy4wMjY1NiwgMy43NzczNCIsIFwKLSAgICAgICAgICAiMC4xODM3OTUsIDAuMjczMDI2LCAwLjc4MTU1MywgMS4yMzA1NSwgMS44MzAxLCAzLjAyNjg2LCAzLjc3NjQ0IiwgXAotICAgICAgICAgICIwLjE4NTgzMiwgMC4yNzM3MjcsIDAuNzgxNTc1LCAxLjIzMDUsIDEuODI5MjMsIDMuMDI2NzYsIDMuNzczOTgiLCBcCi0gICAgICAgICAgIjAuMTg5NDI0LCAwLjI3NTc2OSwgMC43ODE2MywgMS4yMzA0NiwgMS44MzA0NSwgMy4wMjY2MywgMy43NzgwOCIsIFwKLSAgICAgICAgICAiMC4xOTY1MywgMC4yODA5NTQsIDAuNzgxMzYsIDEuMjMwNTEsIDEuODMwNDQsIDMuMDI2OCwgMy43NzczNiIsIFwKLSAgICAgICAgICAiMC4yMDQxNzIsIDAuMjg2NTMsIDAuNzgyMTU5LCAxLjIzMDIxLCAxLjgzMDYyLCAzLjAyNjUxLCAzLjc3NzE0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMxIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNDQ3MzksIDAuMjE1MzEsIDAuNjE0NTU3LCAwLjk2Njk0OCwgMS40MzkwMSwgMi4zODI3NCwgMi45NzIxNSIsIFwKLSAgICAgICAgICAiMC4xNTMzMjUsIDAuMjI0MDY3LCAwLjYyMzA5MywgMC45NzU4OTQsIDEuNDQ3MzksIDIuMzkxMzYsIDIuOTgwNzMiLCBcCi0gICAgICAgICAgIjAuMTYzOTIsIDAuMjM0NTc2LCAwLjYzMzg3MSwgMC45ODU4MDUsIDEuNDU3OTYsIDIuNDAxNDQsIDIuOTkxMiIsIFwKLSAgICAgICAgICAiMC4xNzQ3MzYsIDAuMjQ1MDU5LCAwLjY0NDY2MiwgMC45OTY4OTcsIDEuNDY4NzcsIDIuNDEyNDEsIDMuMDAyMDQiLCBcCi0gICAgICAgICAgIjAuMTg1NjExLCAwLjI1NjIzOCwgMC42NTU3ODYsIDEuMDA3OTMsIDEuNDc5NywgMi40MjMxNywgMy4wMTI5OSIsIFwKLSAgICAgICAgICAiMC4yMDMxNDYsIDAuMjczNTgsIDAuNjczMTI3LCAxLjAyNTEzLCAxLjQ5NzM1LCAyLjQ0MDYyLCAzLjAzMDM5IiwgXAotICAgICAgICAgICIwLjIxODM5LCAwLjI4ODkzMSwgMC42ODg0OCwgMS4wNDA1NSwgMS41MTI1MywgMi40NTYwNCwgMy4wNDYyIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI5MTA3NywgMC40MzI3ODQsIDEuMjM2NzcsIDEuOTQ4MiwgMi44OTU5NywgNC43OTI4NiwgNS45Nzc5NCIsIFwKLSAgICAgICAgICAiMC4yOTEwMzQsIDAuNDMyNjYzLCAxLjIzNjgzLCAxLjk0ODI4LCAyLjg5NjIzLCA0Ljc5MjkxLCA1Ljk3NzUyIiwgXAotICAgICAgICAgICIwLjI5MDA5MSwgMC40MzI3MTEsIDEuMjM2MywgMS45NDc3MywgMi44OTcwOCwgNC43OTUxOSwgNS45Nzg2OCIsIFwKLSAgICAgICAgICAiMC4yOTA5MjUsIDAuNDMxODk5LCAxLjIzNjIyLCAxLjk0ODE0LCAyLjg5NzE2LCA0Ljc5NTk2LCA1Ljk4MDkxIiwgXAotICAgICAgICAgICIwLjI5MzY2NiwgMC40MzI1MSwgMS4yMzYzOSwgMS45NDcxNSwgMi44OTYyNSwgNC43OTU4LCA1Ljk3OTk1IiwgXAotICAgICAgICAgICIwLjMwMDg5NCwgMC40MzYzNzgsIDEuMjM2NCwgMS45NDgwMywgMi44OTc1NywgNC43OTYwNSwgNS45Nzk4OSIsIFwKLSAgICAgICAgICAiMC4zMDg4ODUsIDAuNDQxOTM0LCAxLjIzNjU2LCAxLjk0ODMxLCAyLjg5NzQ0LCA0Ljc5NDM4LCA1Ljk3ODEyIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5MjEyOSwgMC4xMzc4NTIsIDAuMzk2NzcyLCAwLjYyNTA5LCAwLjkyOTQ2OSwgMS41Mzc4NywgMS45MTc0OSIsIFwKLSAgICAgICAgICAiMC4xMDE1ODEsIDAuMTQ3MzYzLCAwLjQwNjQwMSwgMC42MzQ4MjYsIDAuOTM5MjAzLCAxLjU0NzUxLCAxLjkyNzE5IiwgXAotICAgICAgICAgICIwLjExMzM5NiwgMC4xNTkyMzQsIDAuNDE4MzUzLCAwLjY0Njc2OCwgMC45NTExNTcsIDEuNTU5NTQsIDEuOTM5MSIsIFwKLSAgICAgICAgICAiMC4xMjQ3NzMsIDAuMTcwNTMxLCAwLjQyOTY2MywgMC42NTgwNzEsIDAuOTYyNDg4LCAxLjU3MDc5LCAxLjk1MDQ2IiwgXAotICAgICAgICAgICIwLjEzNjU2MiwgMC4xODIyODEsIDAuNDQxNDQ3LCAwLjY2OTg4MSwgMC45NzQyNDYsIDEuNTgyNTYsIDEuOTYyMTciLCBcCi0gICAgICAgICAgIjAuMTU1ODU2LCAwLjIwMTEyNiwgMC40NjAxMzUsIDAuNjg4NTUxLCAwLjk5MjkxOSwgMS42MDExMywgMS45ODA4OCIsIFwKLSAgICAgICAgICAiMC4xNzI2MDYsIDAuMjE4MjIzLCAwLjQ3NjQ4NCwgMC43MDQ5MzYsIDEuMDA5MjIsIDEuNjE3NjQsIDEuOTk3NDYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTgzNDA2LCAwLjI3MzAzNCwgMC43ODE2MDQsIDEuMjMsIDEuODI5MTUsIDMuMDM2MTksIDMuNzc1MzYiLCBcCi0gICAgICAgICAgIjAuMTgzMzk3LCAwLjI3MzAyNSwgMC43ODE1NjksIDEuMjMwNCwgMS44MjkxNSwgMy4wMjYzLCAzLjc3NzE3IiwgXAotICAgICAgICAgICIwLjE4NDAzNiwgMC4yNzMwMzMsIDAuNzgxNjQ4LCAxLjIzMDI1LCAxLjgyOTM3LCAzLjAyNjksIDMuNzc4NjEiLCBcCi0gICAgICAgICAgIjAuMTg3NTM5LCAwLjI3NDIyOCwgMC43ODE1ODksIDEuMjMwNTgsIDEuODI5MzIsIDMuMDI3MDEsIDMuNzc4NDQiLCBcCi0gICAgICAgICAgIjAuMTkyNzAzLCAwLjI3NzI4NywgMC43ODE2MTIsIDEuMjMwNCwgMS44MjkxOSwgMy4wMjYzNiwgMy43Nzc1MiIsIFwKLSAgICAgICAgICAiMC4yMDI2MDksIDAuMjg0OTQ3LCAwLjc4MTU4NiwgMS4yMzA0NywgMS44Mjg4NSwgMy4wMzU5LCAzLjc3NzUiLCBcCi0gICAgICAgICAgIjAuMjEzMTQ1LCAwLjI5MjkwNCwgMC43ODIzMjUsIDEuMjMwNTYsIDEuODI4ODUsIDMuMDM0MzEsIDMuNzczNzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1MTksIDAuMDA1MTksIDAuMDA1MTksIDAuMDA1MTksIDAuMDA1MTg4LCAwLjAwNTE4NiwgMC4wMDUxODQiLCBcCi0gICAgICAgICAgIjAuMDA1MTgsIDAuMDA1MTgyLCAwLjAwNTE4NCwgMC4wMDUxODQsIDAuMDA1MTgyLCAwLjAwNTE4LCAwLjAwNTE4IiwgXAotICAgICAgICAgICIwLjAwNTE3NSwgMC4wMDUxNzgsIDAuMDA1MTgyLCAwLjAwNTE4MiwgMC4wMDUxODIsIDAuMDA1MTgxLCAwLjAwNTE3OCIsIFwKLSAgICAgICAgICAiMC4wMDUxNjksIDAuMDA1MTczLCAwLjAwNTE4LCAwLjAwNTE4MSwgMC4wMDUxODEsIDAuMDA1MTc5LCAwLjAwNTE3NyIsIFwKLSAgICAgICAgICAiMC4wMDUxNjYsIDAuMDA1MTcxLCAwLjAwNTE4LCAwLjAwNTE4LCAwLjAwNTE4LCAwLjAwNTE3OCwgMC4wMDUxNzciLCBcCi0gICAgICAgICAgIjAuMDA1MTYsIDAuMDA1MTY2LCAwLjAwNTE3NiwgMC4wMDUxNzgsIDAuMDA1MTc5LCAwLjAwNTE3NywgMC4wMDUxNzYiLCBcCi0gICAgICAgICAgIjAuMDA1MTU4LCAwLjAwNTE2MywgMC4wMDUxNzQsIDAuMDA1MTc3LCAwLjAwNTE3OCwgMC4wMDUxNzgsIDAuMDA1MTc2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxNTksIDAuMDAxNTksIDAuMDAxNTg5LCAwLjAwMTU4OSwgMC4wMDE1ODgsIDAuMDAxNTg2LCAwLjAwMTU4NyIsIFwKLSAgICAgICAgICAiMC4wMDE1NjYsIDAuMDAxNTY3LCAwLjAwMTU2OSwgMC4wMDE1NjksIDAuMDAxNTY4LCAwLjAwMTU2NywgMC4wMDE1NjYiLCBcCi0gICAgICAgICAgIjAuMDAxNTU0LCAwLjAwMTU1NywgMC4wMDE1NjIsIDAuMDAxNTYzLCAwLjAwMTU2MywgMC4wMDE1NjEsIDAuMDAxNTYxIiwgXAotICAgICAgICAgICIwLjAwMTU0NiwgMC4wMDE1NSwgMC4wMDE1NTksIDAuMDAxNTYsIDAuMDAxNTYsIDAuMDAxNTYsIDAuMDAxNTU5IiwgXAotICAgICAgICAgICIwLjAwMTU0MSwgMC4wMDE1NDYsIDAuMDAxNTU2LCAwLjAwMTU1OCwgMC4wMDE1NTksIDAuMDAxNTU4LCAwLjAwMTU1OCIsIFwKLSAgICAgICAgICAiMC4wMDE1MzUsIDAuMDAxNTQxLCAwLjAwMTU1MiwgMC4wMDE1NTUsIDAuMDAxNTU2LCAwLjAwMTU1NiwgMC4wMDE1NTYiLCBcCi0gICAgICAgICAgIjAuMDAxNTM0LCAwLjAwMTUzOSwgMC4wMDE1NTEsIDAuMDAxNTU0LCAwLjAwMTU1NiwgMC4wMDE1NTUsIDAuMDAxNTU1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDc5MSwgMC4wMDQ3OTIsIDAuMDA0Nzk0LCAwLjAwNDc5NCwgMC4wMDQ3OTIsIDAuMDA0NzksIDAuMDA0NzkiLCBcCi0gICAgICAgICAgIjAuMDA0Nzg0LCAwLjAwNDc4OCwgMC4wMDQ3OTUsIDAuMDA0Nzk2LCAwLjAwNDc5NiwgMC4wMDQ3OTUsIDAuMDA0Nzk0IiwgXAotICAgICAgICAgICIwLjAwNDc3MSwgMC4wMDQ3NzksIDAuMDA0NzkyLCAwLjAwNDc5MywgMC4wMDQ3OTUsIDAuMDA0Nzk1LCAwLjAwNDc5NCIsIFwKLSAgICAgICAgICAiMC4wMDQ3NiwgMC4wMDQ3NzEsIDAuMDA0Nzg4LCAwLjAwNDc5MSwgMC4wMDQ3OTMsIDAuMDA0Nzk1LCAwLjAwNDc5MSIsIFwKLSAgICAgICAgICAiMC4wMDQ3NTIsIDAuMDA0NzY0LCAwLjAwNDc4NCwgMC4wMDQ3ODksIDAuMDA0NzkxLCAwLjAwNDc5MiwgMC4wMDQ3OTMiLCBcCi0gICAgICAgICAgIjAuMDA0NzQxLCAwLjAwNDc1NCwgMC4wMDQ3NzksIDAuMDA0Nzg1LCAwLjAwNDc4OCwgMC4wMDQ3OSwgMC4wMDQ3OTEiLCBcCi0gICAgICAgICAgIjAuMDA0NzM1LCAwLjAwNDc0NywgMC4wMDQ3NzQsIDAuMDA0NzgyLCAwLjAwNDc4NiwgMC4wMDQ3OSwgMC4wMDQ3ODkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDE1OSwgMC4wMDE1OSwgMC4wMDE1OSwgMC4wMDE1OSwgMC4wMDE1ODgsIDAuMDAxNTg4LCAwLjAwMTU4OSIsIFwKLSAgICAgICAgICAiMC4wMDE1NjUsIDAuMDAxNTY2LCAwLjAwMTU2OSwgMC4wMDE1NjgsIDAuMDAxNTcsIDAuMDAxNTY1LCAwLjAwMTU2NiIsIFwKLSAgICAgICAgICAiMC4wMDE1NTQsIDAuMDAxNTU3LCAwLjAwMTU2MiwgMC4wMDE1NjMsIDAuMDAxNTYzLCAwLjAwMTU2MiwgMC4wMDE1NjMiLCBcCi0gICAgICAgICAgIjAuMDAxNTQ2LCAwLjAwMTU1LCAwLjAwMTU1OSwgMC4wMDE1NTksIDAuMDAxNTYsIDAuMDAxNTYsIDAuMDAxNTYxIiwgXAotICAgICAgICAgICIwLjAwMTU0NSwgMC4wMDE1NDksIDAuMDAxNTU3LCAwLjAwMTU1OCwgMC4wMDE1NTksIDAuMDAxNTU5LCAwLjAwMTU1OCIsIFwKLSAgICAgICAgICAiMC4wMDE1NTEsIDAuMDAxNTUsIDAuMDAxNTU2LCAwLjAwMTU1OCwgMC4wMDE1NTgsIDAuMDAxNTU4LCAwLjAwMTU1OCIsIFwKLSAgICAgICAgICAiMC4wMDE1NiwgMC4wMDE1NTUsIDAuMDAxNTU4LCAwLjAwMTU1OCwgMC4wMDE1NTksIDAuMDAxNTU4LCAwLjAwMTU1OCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQzMTgsIDAuMDA0MzE4LCAwLjAwNDMxNywgMC4wMDQzMTYsIDAuMDA0MzE0LCAwLjAwNDMxMiwgMC4wMDQzMTIiLCBcCi0gICAgICAgICAgIjAuMDA0MzA4LCAwLjAwNDMwOSwgMC4wMDQzMTIsIDAuMDA0MzExLCAwLjAwNDMxLCAwLjAwNDMwOCwgMC4wMDQzMDgiLCBcCi0gICAgICAgICAgIjAuMDA0MzAxLCAwLjAwNDMwNSwgMC4wMDQzMDksIDAuMDA0MzA5LCAwLjAwNDMwOCwgMC4wMDQzMDYsIDAuMDA0MzA1IiwgXAotICAgICAgICAgICIwLjAwNDI5NSwgMC4wMDQzMDEsIDAuMDA0MzA3LCAwLjAwNDMwNywgMC4wMDQzMDgsIDAuMDA0MzA1LCAwLjAwNDMwNCIsIFwKLSAgICAgICAgICAiMC4wMDQyOTMsIDAuMDA0Mjk4LCAwLjAwNDMwNSwgMC4wMDQzMDcsIDAuMDA0MzA4LCAwLjAwNDMwNiwgMC4wMDQzMDUiLCBcCi0gICAgICAgICAgIjAuMDA0Mjg4LCAwLjAwNDI5MywgMC4wMDQzMDMsIDAuMDA0MzA1LCAwLjAwNDMwNSwgMC4wMDQzMDQsIDAuMDA0MzAyIiwgXAotICAgICAgICAgICIwLjAwNDI4NiwgMC4wMDQyOTEsIDAuMDA0MzAyLCAwLjAwNDMwNCwgMC4wMDQzMDUsIDAuMDA0MzA1LCAwLjAwNDMwMyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDk1MSwgMC4wMDA5NTIsIDAuMDAwOTUyLCAwLjAwMDk1MiwgMC4wMDA5NTEsIDAuMDAwOTUxLCAwLjAwMDk1IiwgXAotICAgICAgICAgICIwLjAwMDk0OCwgMC4wMDA5NTMsIDAuMDAwOTU5LCAwLjAwMDk2LCAwLjAwMDk2LCAwLjAwMDk2LCAwLjAwMDk2IiwgXAotICAgICAgICAgICIwLjAwMDkzNSwgMC4wMDA5NDMsIDAuMDAwOTU2LCAwLjAwMDk1OCwgMC4wMDA5NiwgMC4wMDA5NjEsIDAuMDAwOTYxIiwgXAotICAgICAgICAgICIwLjAwMDkyMywgMC4wMDA5MzQsIDAuMDAwOTUzLCAwLjAwMDk1NywgMC4wMDA5NTksIDAuMDAwOTYsIDAuMDAwOTYiLCBcCi0gICAgICAgICAgIjAuMDAwOTEzLCAwLjAwMDkyNiwgMC4wMDA5NDksIDAuMDAwOTU0LCAwLjAwMDk1NywgMC4wMDA5NTksIDAuMDAwOTYiLCBcCi0gICAgICAgICAgIjAuMDAwOTAyLCAwLjAwMDkxNiwgMC4wMDA5NDQsIDAuMDAwOTUxLCAwLjAwMDk1NSwgMC4wMDA5NTgsIDAuMDAwOTU4IiwgXAotICAgICAgICAgICIwLjAwMDg5OCwgMC4wMDA5MTEsIDAuMDAwOTQsIDAuMDAwOTQ4LCAwLjAwMDk1MywgMC4wMDA5NTcsIDAuMDAwOTU4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzg5OSwgMC4wMDM5LCAwLjAwMzkwMSwgMC4wMDM5LCAwLjAwMzg5OCwgMC4wMDM4OTgsIDAuMDAzODk4IiwgXAotICAgICAgICAgICIwLjAwMzg5MSwgMC4wMDM4OTYsIDAuMDAzOTAyLCAwLjAwMzkwNCwgMC4wMDM5MDIsIDAuMDAzOTA1LCAwLjAwMzkwNCIsIFwKLSAgICAgICAgICAiMC4wMDM4NzgsIDAuMDAzODg2LCAwLjAwMzg5OSwgMC4wMDM5MDEsIDAuMDAzOTAyLCAwLjAwMzkwMywgMC4wMDM5MDIiLCBcCi0gICAgICAgICAgIjAuMDAzODY3LCAwLjAwMzg3OCwgMC4wMDM4OTUsIDAuMDAzODk5LCAwLjAwMzksIDAuMDAzOSwgMC4wMDM5MDEiLCBcCi0gICAgICAgICAgIjAuMDAzODU5LCAwLjAwMzg3MSwgMC4wMDM4OTEsIDAuMDAzODk3LCAwLjAwMzg5OCwgMC4wMDM5LCAwLjAwMzg5OSIsIFwKLSAgICAgICAgICAiMC4wMDM4NSwgMC4wMDM4NjIsIDAuMDAzODg2LCAwLjAwMzg5MiwgMC4wMDM4OTYsIDAuMDAzODk3LCAwLjAwMzg5NyIsIFwKLSAgICAgICAgICAiMC4wMDM4NDMsIDAuMDAzODU1LCAwLjAwMzg4MiwgMC4wMDM4OSwgMC4wMDM4OTQsIDAuMDAzODk3LCAwLjAwMzg5NiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDk1LCAwLjAwMDk1LCAwLjAwMDk1MSwgMC4wMDA5NTEsIDAuMDAwOTUsIDAuMDAwOTUsIDAuMDAwOTQ5IiwgXAotICAgICAgICAgICIwLjAwMDk0NiwgMC4wMDA5NSwgMC4wMDA5NTcsIDAuMDAwOTU4LCAwLjAwMDk1OSwgMC4wMDA5NTksIDAuMDAwOTU4IiwgXAotICAgICAgICAgICIwLjAwMDkzNiwgMC4wMDA5NDMsIDAuMDAwOTU1LCAwLjAwMDk1OCwgMC4wMDA5NTksIDAuMDAwOTU5LCAwLjAwMDk1OSIsIFwKLSAgICAgICAgICAiMC4wMDA5MjcsIDAuMDAwOTM3LCAwLjAwMDk1MywgMC4wMDA5NTcsIDAuMDAwOTU5LCAwLjAwMDk2LCAwLjAwMDk2IiwgXAotICAgICAgICAgICIwLjAwMDkyMiwgMC4wMDA5MzIsIDAuMDAwOTUxLCAwLjAwMDk1NSwgMC4wMDA5NTgsIDAuMDAwOTU5LCAwLjAwMDk1OSIsIFwKLSAgICAgICAgICAiMC4wMDA5MjQsIDAuMDAwOTI5LCAwLjAwMDk0OCwgMC4wMDA5NTMsIDAuMDAwOTU2LCAwLjAwMDk1OSwgMC4wMDA5NTkiLCBcCi0gICAgICAgICAgIjAuMDAwOTMyLCAwLjAwMDkzNiwgMC4wMDA5NDksIDAuMDAwOTU0LCAwLjAwMDk1NiwgMC4wMDA5NTgsIDAuMDAwOTU5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQzAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzM5NSwgMC4wMDMzOTUsIDAuMDAzMzk1LCAwLjAwMzM5NywgMC4wMDMzOTQsIDAuMDAzMzkzLCAwLjAwMzM5IiwgXAotICAgICAgICAgICIwLjAwMzM4LCAwLjAwMzM4NCwgMC4wMDMzODcsIDAuMDAzMzg4LCAwLjAwMzM4NiwgMC4wMDMzODQsIDAuMDAzMzg3IiwgXAotICAgICAgICAgICIwLjAwMzM3NCwgMC4wMDMzNzcsIDAuMDAzMzg0LCAwLjAwMzM4NSwgMC4wMDMzODUsIDAuMDAzMzg0LCAwLjAwMzM4MiIsIFwKLSAgICAgICAgICAiMC4wMDMzNjksIDAuMDAzMzcyLCAwLjAwMzM4MiwgMC4wMDMzODQsIDAuMDAzMzg0LCAwLjAwMzM4MywgMC4wMDMzODIiLCBcCi0gICAgICAgICAgIjAuMDAzMzY5LCAwLjAwMzM3MiwgMC4wMDMzODEsIDAuMDAzMzgzLCAwLjAwMzM4NCwgMC4wMDMzODIsIDAuMDAzMzgxIiwgXAotICAgICAgICAgICIwLjAwMzM3MywgMC4wMDMzNzQsIDAuMDAzMzgsIDAuMDAzMzgyLCAwLjAwMzM4MiwgMC4wMDMzODEsIDAuMDAzMzgiLCBcCi0gICAgICAgICAgIjAuMDAzMzgsIDAuMDAzMzc5LCAwLjAwMzM4MSwgMC4wMDMzODIsIDAuMDAzMzgzLCAwLjAwMzM4MSwgMC4wMDMzOCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDI1MywgMC4wMDAyNTUsIDAuMDAwMjU4LCAwLjAwMDI1OCwgMC4wMDAyNTgsIDAuMDAwMjU5LCAwLjAwMDI1OSIsIFwKLSAgICAgICAgICAiMC4wMDAyNjIsIDAuMDAwMjcsIDAuMDAwMjgyLCAwLjAwMDI4NCwgMC4wMDAyODYsIDAuMDAwMjg3LCAwLjAwMDI4NyIsIFwKLSAgICAgICAgICAiMC4wMDAyNDksIDAuMDAwMjYzLCAwLjAwMDI4NCwgMC4wMDAyODgsIDAuMDAwMjkxLCAwLjAwMDI5MywgMC4wMDAyOTMiLCBcCi0gICAgICAgICAgIjAuMDAwMjM2LCAwLjAwMDI1MywgMC4wMDAyODEsIDAuMDAwMjg3LCAwLjAwMDI5MSwgMC4wMDAyOTQsIDAuMDAwMjk1IiwgXAotICAgICAgICAgICIwLjAwMDIyNSwgMC4wMDAyNDUsIDAuMDAwMjc4LCAwLjAwMDI4NiwgMC4wMDAyOSwgMC4wMDAyOTQsIDAuMDAwMjk1IiwgXAotICAgICAgICAgICIwLjAwMDIxMSwgMC4wMDAyMzMsIDAuMDAwMjczLCAwLjAwMDI4MiwgMC4wMDAyODgsIDAuMDAwMjkzLCAwLjAwMDI5NSIsIFwKLSAgICAgICAgICAiMC4wMDAyMDUsIDAuMDAwMjI1LCAwLjAwMDI2OCwgMC4wMDAyNzksIDAuMDAwMjg2LCAwLjAwMDI5MiwgMC4wMDAyOTQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDMSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzMDEzLCAwLjAwMzAxNSwgMC4wMDMwMTYsIDAuMDAzMDE4LCAwLjAwMzAxNiwgMC4wMDMwMTMsIDAuMDAzMDEyIiwgXAotICAgICAgICAgICIwLjAwMzAwMSwgMC4wMDMwMDcsIDAuMDAzMDE2LCAwLjAwMzAxNywgMC4wMDMwMTgsIDAuMDAzMDE3LCAwLjAwMzAxNiIsIFwKLSAgICAgICAgICAiMC4wMDI5ODgsIDAuMDAyOTk3LCAwLjAwMzAxMiwgMC4wMDMwMTUsIDAuMDAzMDE2LCAwLjAwMzAxNiwgMC4wMDMwMTYiLCBcCi0gICAgICAgICAgIjAuMDAyOTc4LCAwLjAwMjk4OCwgMC4wMDMwMDgsIDAuMDAzMDEyLCAwLjAwMzAxNCwgMC4wMDMwMTUsIDAuMDAzMDE1IiwgXAotICAgICAgICAgICIwLjAwMjk3MywgMC4wMDI5ODMsIDAuMDAzMDA1LCAwLjAwMzAxLCAwLjAwMzAxMywgMC4wMDMwMTMsIDAuMDAzMDEzIiwgXAotICAgICAgICAgICIwLjAwMjk3MiwgMC4wMDI5OCwgMC4wMDMwMDEsIDAuMDAzMDA3LCAwLjAwMzAxLCAwLjAwMzAxMywgMC4wMDMwMTEiLCBcCi0gICAgICAgICAgIjAuMDAyOTc2LCAwLjAwMjk4MiwgMC4wMDMsIDAuMDAzMDA2LCAwLjAwMzAwOSwgMC4wMDMwMTEsIDAuMDAzMDExIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwMjUzLCAwLjAwMDI1NSwgMC4wMDAyNTgsIDAuMDAwMjU5LCAwLjAwMDI2LCAwLjAwMDI2LCAwLjAwMDI2IiwgXAotICAgICAgICAgICIwLjAwMDI2LCAwLjAwMDI2OSwgMC4wMDAyODIsIDAuMDAwMjg1LCAwLjAwMDI4NiwgMC4wMDAyODgsIDAuMDAwMjg4IiwgXAotICAgICAgICAgICIwLjAwMDI1MSwgMC4wMDAyNjQsIDAuMDAwMjg0LCAwLjAwMDI4OCwgMC4wMDAyOSwgMC4wMDAyOTIsIDAuMDAwMjkzIiwgXAotICAgICAgICAgICIwLjAwMDI0MSwgMC4wMDAyNTcsIDAuMDAwMjgzLCAwLjAwMDI4OSwgMC4wMDAyOTMsIDAuMDAwMjk1LCAwLjAwMDI5NiIsIFwKLSAgICAgICAgICAiMC4wMDAyMzUsIDAuMDAwMjUyLCAwLjAwMDI4MSwgMC4wMDAyODgsIDAuMDAwMjkyLCAwLjAwMDI5NiwgMC4wMDAyOTciLCBcCi0gICAgICAgICAgIjAuMDAwMjM2LCAwLjAwMDI0NywgMC4wMDAyNzksIDAuMDAwMjg3LCAwLjAwMDI5MiwgMC4wMDAyOTYsIDAuMDAwMjk3IiwgXAotICAgICAgICAgICIwLjAwMDI0MSwgMC4wMDAyNTEsIDAuMDAwMjc4LCAwLjAwMDI4NiwgMC4wMDAyOTEsIDAuMDAwMjk2LCAwLjAwMDI5NyIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBBT0kyMjJYNCAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoQU9JMjIyWDQpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC44NTUzMDg7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDM0MzQ2NDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDM0MTg2NDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDM0MzQ2NDsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDE2MzcsIDAuMDAxNjM2LCAwLjAwMTYzNiwgMC4wMDE2MzUsIDAuMDAxNjM1LCAwLjAwMTYzNCwgMC4wMDE2MzQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDE2ODcsIDAuMDAxNjQ2LCAwLjAwMTY0NCwgMC4wMDE2NDEsIDAuMDAxNjQxLCAwLjAwMTY0MSwgMC4wMDE2NDEiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEExKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDMyNzUwOTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDMyNDg0MTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDMyNzUwOTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDEwMDQsIDAuMDAxMDAyLCAwLjAwMTAwMywgMC4wMDEwMDMsIDAuMDAxMDAxLCAwLjAwMTAwMiwgMC4wMDEwMDIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDE4NTYsIDAuMDAxODU4LCAwLjAwMTg1NywgMC4wMDE4NTksIDAuMDAxODU5LCAwLjAwMTg1OCwgMC4wMDE4NTgiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDMzMTcxNzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDMzMDQ5NjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDMzMTcxNzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDE2MzcsIDAuMDAxNjM3LCAwLjAwMTYzNywgMC4wMDE2MzcsIDAuMDAxNjM2LCAwLjAwMTYzNiwgMC4wMDE2MzYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDE2NzcsIDAuMDAxNjQzLCAwLjAwMTY0MiwgMC4wMDE2NCwgMC4wMDE2MzksIDAuMDAxNjM5LCAwLjAwMTY0Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCMSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAzMTM3Mjc7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAzMTEzNDg7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAzMTM3Mjc7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwODY1LCAwLjAwMDg2NCwgMC4wMDA4NjQsIDAuMDAwODYzLCAwLjAwMDg2NCwgMC4wMDA4NjQsIDAuMDAwODY0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxODU2LCAwLjAwMTg1NywgMC4wMDE4NTcsIDAuMDAxODU3LCAwLjAwMTg1NywgMC4wMDE4NTcsIDAuMDAxODU4Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihDMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAzNDIyODQ7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAzNDIyODQ7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAzNDEzMjU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxNjM4LCAwLjAwMTYzNywgMC4wMDE2MzcsIDAuMDAxNjM3LCAwLjAwMTYzNywgMC4wMDE2MzcsIDAuMDAxNjM3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxNjg5LCAwLjAwMTY0NiwgMC4wMDE2NDMsIDAuMDAxNjQsIDAuMDAxNjQsIDAuMDAxNjM5LCAwLjAwMTYzOCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQzEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMzI3NjczOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMzI3NTU2OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMzI3NjczOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTAyOCwgMC4wMDEwMjcsIDAuMDAxMDI3LCAwLjAwMTAyNywgMC4wMDEwMjcsIDAuMDAxMDI2LCAwLjAwMTAyNyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTg1NiwgMC4wMDE4NTcsIDAuMDAxODU2LCAwLjAwMTg1NywgMC4wMDE4NTcsIDAuMDAxODU3LCAwLjAwMTg1OCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjM2NTc1NzsKLSAgICBmdW5jdGlvbiA6ICIoISgoKEMwIEMxKSsoQTAgQTEpKSsoQjAgQjEpKSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4NTc4LCAwLjI5NDA0MiwgMC41MDE3MzEsIDAuNjQ5NjEsIDAuODg2ODYsIDEuMDk1NTMsIDEuMzkzNjIiLCBcCi0gICAgICAgICAgIjAuMDk1MjA5LCAwLjMwMzU4OSwgMC41MTEzNTMsIDAuNjU5MTg3LCAwLjg5NjUyOSwgMS4xMDUxOCwgMS40MDM2MSIsIFwKLSAgICAgICAgICAiMC4xMDUzNDQsIDAuMzEzODM0LCAwLjUyMTI4OCwgMC42Njk4MTUsIDAuOTA2OTQzLCAxLjExNSwgMS40MTQwNSIsIFwKLSAgICAgICAgICAiMC4xMTQ1MjIsIDAuMzIzMDE5LCAwLjUzMDU0NCwgMC42Nzg2ODEsIDAuOTE1OTkyLCAxLjEyNDM3LCAxLjQyMjk4IiwgXAotICAgICAgICAgICIwLjEyMzA1MSwgMC4zMzE4NjQsIDAuNTM5MjYyLCAwLjY4NzUyNiwgMC45MjUwNjcsIDEuMTMzMDMsIDEuNDMxODUiLCBcCi0gICAgICAgICAgIjAuMTM2MTM3LCAwLjM0NDk1MSwgMC41NTI1NSwgMC43MDA4ODcsIDAuOTM3NjYyLCAxLjE0NjM2LCAxLjQ0NTA3IiwgXAotICAgICAgICAgICIwLjE0NjM0OSwgMC4zNTYwMTksIDAuNTYzNzA1LCAwLjcxMTgyNCwgMC45NDkwNjQsIDEuMTU3NSwgMS40NTU0OCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExOTQzMywgMC41MzcwODIsIDAuOTU1NDM3LCAxLjI1NTU0LCAxLjczNTg1LCAyLjE1NTM0LCAyLjc1NjkzIiwgXAotICAgICAgICAgICIwLjExOTQwOSwgMC41MzY3NjksIDAuOTU1NTI0LCAxLjI1NTQ5LCAxLjczNDkxLCAyLjE1NTI0LCAyLjc1Njk1IiwgXAotICAgICAgICAgICIwLjExOTUxNCwgMC41MzcxMDIsIDAuOTU1NjU5LCAxLjI1NTY4LCAxLjczNTEsIDIuMTU1OCwgMi43NTc5MyIsIFwKLSAgICAgICAgICAiMC4xMjAzMDgsIDAuNTM3MDQzLCAwLjk1NTY5LCAxLjI1NTUxLCAxLjczNTg2LCAyLjE1NTksIDIuNzU3MDYiLCBcCi0gICAgICAgICAgIjAuMTIxODA2LCAwLjUzNjc3OSwgMC45NTYwNDYsIDEuMjU1NTMsIDEuNzM1NzksIDIuMTU1NTUsIDIuNzU2OTciLCBcCi0gICAgICAgICAgIjAuMTI1MjMyLCAwLjUzNzI5NiwgMC45NTU5NzEsIDEuMjU1NTQsIDEuNzM1NDIsIDIuMTU0OTcsIDIuNzU2NzciLCBcCi0gICAgICAgICAgIjAuMTI5Mzg4LCAwLjUzODY4OSwgMC45NTU0ODUsIDEuMjU1NiwgMS43MzUzMiwgMi4xNTU0MiwgMi43NTY1Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU3NjM5LCAwLjE5NTI4NiwgMC4zMzAyOTYsIDAuNDI2NDYsIDAuNTgwNDM1LCAwLjcxNDkwMSwgMC45MDcwNDUiLCBcCi0gICAgICAgICAgIjAuMDY2NDkyLCAwLjIwNDE4OSwgMC4zMzkyMjgsIDAuNDM1NDkyLCAwLjU4OTEwNSwgMC43MjM2MTYsIDAuOTE1NjQiLCBcCi0gICAgICAgICAgIjAuMDc3NDAyLCAwLjIxNTIxNiwgMC4zNTAzMTUsIDAuNDQ2NTIxLCAwLjYwMDI4OCwgMC43MzQ4NzUsIDAuOTI2NjUyIiwgXAotICAgICAgICAgICIwLjA4ODM3MiwgMC4yMjYyMzUsIDAuMzYxMzc4LCAwLjQ1NzU1OCwgMC42MTEyNSwgMC43NDU3NzEsIDAuOTM4MjIxIiwgXAotICAgICAgICAgICIwLjA5OTEzNiwgMC4yMzcxNDYsIDAuMzcyMzkyLCAwLjQ2ODU2MSwgMC42MjI0MjEsIDAuNzU2ODk4LCAwLjk0OTQ2NCIsIFwKLSAgICAgICAgICAiMC4xMTU1NjIsIDAuMjU0Njc2LCAwLjM4OTkyNCwgMC40ODYyMjIsIDAuNjQwMjM3LCAwLjc3NDQ4NSwgMC45NjY2ODYiLCBcCi0gICAgICAgICAgIjAuMTI3ODE0LCAwLjI2OTkxNCwgMC40MDU0NywgMC41MDE2NDgsIDAuNjU1NTgzLCAwLjc5MDMwMywgMC45ODE5NTIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTQxOTMsIDAuMzU5MTM4LCAwLjYyNDc2NywgMC44MTQ0MDksIDEuMTE4MjcsIDEuMzgzODMsIDEuNzYzMTkiLCBcCi0gICAgICAgICAgIjAuMDkzOTQ1LCAwLjM1OTE3MiwgMC42MjQ4NDQsIDAuODE0NjM3LCAxLjExODE3LCAxLjM4MzgsIDEuNzYyOTkiLCBcCi0gICAgICAgICAgIjAuMDk1NzU4LCAwLjM1OTI0LCAwLjYyNDg1OCwgMC44MTQ2NCwgMS4xMTgyNywgMS4zODM0MywgMS43NjMxNCIsIFwKLSAgICAgICAgICAiMC4wOTk0NjUsIDAuMzU5MjE3LCAwLjYyNDg5MiwgMC44MTQ1NCwgMS4xMTgxMiwgMS4zODM3NywgMS43NjMxMiIsIFwKLSAgICAgICAgICAiMC4xMDQxOTQsIDAuMzU5OTUzLCAwLjYyNDg0MywgMC44MTQ2MjMsIDEuMTE3OSwgMS4zODMzNiwgMS43NjMxNiIsIFwKLSAgICAgICAgICAiMC4xMTM2MzIsIDAuMzYzMjMzLCAwLjYyNTE3MywgMC44MTQ1NzksIDEuMTE4MiwgMS4zODM4LCAxLjc2MzA5IiwgXAotICAgICAgICAgICIwLjEyMjU2NywgMC4zNjc2NDksIDAuNjI2NzYsIDAuODE0OTUsIDEuMTE4MDUsIDEuMzgzNzYsIDEuNzYyNjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDgyMDE1LCAwLjI5MTM3OCwgMC40OTk4OTEsIDAuNjQ5MjA0LCAwLjg4NzI4MiwgMS4wOTgwMSwgMS4zOTcxMSIsIFwKLSAgICAgICAgICAiMC4wOTEzNSwgMC4zMDA5NzgsIDAuNTA5OTA4LCAwLjY1ODU5NiwgMC44OTczOTgsIDEuMTA2OTgsIDEuNDA3NTYiLCBcCi0gICAgICAgICAgIjAuMTAxMzMzLCAwLjMxMTEzNCwgMC41MjAwMDgsIDAuNjY4ODQ2LCAwLjkwNzc1OSwgMS4xMTcyOCwgMS40MTc5IiwgXAotICAgICAgICAgICIwLjExMDM5MSwgMC4zMjAyNTMsIDAuNTI5MTIsIDAuNjc4MTg2LCAwLjkxNzA4OCwgMS4xMjYyOCwgMS40MjY4NCIsIFwKLSAgICAgICAgICAiMC4xMTg5MjMsIDAuMzI4OTc1LCAwLjUzNzc2LCAwLjY4NjkzOCwgMC45MjUzNTIsIDEuMTM1NTUsIDEuNDM1MTkiLCBcCi0gICAgICAgICAgIjAuMTMxODMyLCAwLjM0MjEyMSwgMC41NTA5NTMsIDAuNzAwMzEzLCAwLjkzODY0MSwgMS4xNDkxLCAxLjQ0ODg2IiwgXAotICAgICAgICAgICIwLjE0MTg2OSwgMC4zNTMxNTcsIDAuNTYyMDY4LCAwLjcxMTEyLCAwLjk1MDA0MSwgMS4xNTk0OSwgMS40NTkxOCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExNTA3NCwgMC41MzQ3NTksIDAuOTU1Mzg1LCAxLjI1Nzc0LCAxLjc0MDA0LCAyLjE2MjcsIDIuNzc0MjIiLCBcCi0gICAgICAgICAgIjAuMTE1MDgxLCAwLjUzNDQ5NywgMC45NTU1ODUsIDEuMjU3MSwgMS43NDEwNCwgMi4xNjc2NiwgMi43Njc4NSIsIFwKLSAgICAgICAgICAiMC4xMTUyMTQsIDAuNTM0NTQsIDAuOTU1NDAxLCAxLjI1Nzg3LCAxLjc0MDA2LCAyLjE2MzI4LCAyLjc2Nzg3IiwgXAotICAgICAgICAgICIwLjExNjA0LCAwLjUzNDc0OCwgMC45NTU4NzQsIDEuMjU3MjUsIDEuNzQwMDksIDIuMTY0NDIsIDIuNzcwOTUiLCBcCi0gICAgICAgICAgIjAuMTE3NjE0LCAwLjUzNDY3NiwgMC45NTYwNjgsIDEuMjU3MjEsIDEuNzQwMDMsIDIuMTYyNTUsIDIuNzY4NjQiLCBcCi0gICAgICAgICAgIjAuMTIxMTcsIDAuNTM1MDE2LCAwLjk1NTM2NSwgMS4yNTc0MSwgMS43NDMyLCAyLjE2MjcsIDIuNzY3NjgiLCBcCi0gICAgICAgICAgIjAuMTI1NTAzLCAwLjUzNjQ2OSwgMC45NTU0NjQsIDEuMjU3ODYsIDEuNzQyOTgsIDIuMTY3NjUsIDIuNzcyMjYiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTU1MjcsIDAuMTkzMDQ3LCAwLjMyODE2OSwgMC40MjQyOTQsIDAuNTc3OTg2LCAwLjcxMjUzNywgMC45MDUwMjIiLCBcCi0gICAgICAgICAgIjAuMDY0NTQyLCAwLjIwMjE2NywgMC4zMzcyNjUsIDAuNDMzNDU5LCAwLjU4NzEzMywgMC43MjE1NDMsIDAuOTEzNTgxIiwgXAotICAgICAgICAgICIwLjA3NjAzNSwgMC4yMTM3MTksIDAuMzQ4ODI2LCAwLjQ0NTA2NCwgMC41OTg4MzgsIDAuNzMzMTM1LCAwLjkyNTE4MSIsIFwKLSAgICAgICAgICAiMC4wODgyMDgsIDAuMjI0OTg5LCAwLjM2MDg0OSwgMC40NTcxMSwgMC42MTExMTgsIDAuNzQ1NTIzLCAwLjkzNzg0MyIsIFwKLSAgICAgICAgICAiMC4xMDAwNSwgMC4yMzY5ODUsIDAuMzcyMDQsIDAuNDY4NDEyLCAwLjYyMjEzNSwgMC43NTY1NTUsIDAuOTQ4OTU5IiwgXAotICAgICAgICAgICIwLjExODIxMywgMC4yNTU3NDQsIDAuMzkwODE1LCAwLjQ4NjkyNywgMC42NDA3NiwgMC43NzUyNjIsIDAuOTY3NDM4IiwgXAotICAgICAgICAgICIwLjEzMTkyNCwgMC4yNzIxOTksIDAuNDA3MTM5LCAwLjUwMzMwMiwgMC42NTcwNzIsIDAuNzkxNjkyLCAwLjk4Mzg3MSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5NDI5NiwgMC4zNTkyMDYsIDAuNjI0ODc0LCAwLjgxNDY1LCAxLjExODMsIDEuMzgzODYsIDEuNzYzMjEiLCBcCi0gICAgICAgICAgIjAuMDkzODQ3LCAwLjM1OTEyLCAwLjYyNDg0NiwgMC44MTQ2MTksIDEuMTE4MTYsIDEuMzgzNTUsIDEuNzYzMDgiLCBcCi0gICAgICAgICAgIjAuMDk3MDQ2LCAwLjM1OTEwOSwgMC42MjQ3NDUsIDAuODE0NTQ2LCAxLjExODA5LCAxLjM4Mzc3LCAxLjc2MjYzIiwgXAotICAgICAgICAgICIwLjEwMjU1OSwgMC4zNTkwOTUsIDAuNjI0ODMzLCAwLjgxNDY3MywgMS4xMTgxMiwgMS4zODM0LCAxLjc2MzExIiwgXAotICAgICAgICAgICIwLjEwOTc4NSwgMC4zNjAzOSwgMC42MjQ4MzYsIDAuODE0NTc4LCAxLjExODI3LCAxLjM4MzgzLCAxLjc2Mjc0IiwgXAotICAgICAgICAgICIwLjEyMjc4MywgMC4zNjUzOTQsIDAuNjI1MjgzLCAwLjgxNDQ2OCwgMS4xMTgyNCwgMS4zODM4LCAxLjc2MjY1IiwgXAotICAgICAgICAgICIwLjEzNTIwOCwgMC4zNzE3NzMsIDAuNjI3NTg5LCAwLjgxNDg3OCwgMS4xMTc5OSwgMS4zODM3OSwgMS43NjI4NiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzcxODYsIDAuMjg1Mzk3LCAwLjQ5MjgxNywgMC42NDEyMzEsIDAuODc4NDk4LCAxLjA4ODEsIDEuMzg4MTUiLCBcCi0gICAgICAgICAgIjAuMDg2MTQsIDAuMjk0NTM1LCAwLjUwMjEyOSwgMC42NTAwMzMsIDAuODg3NTkzLCAxLjA5NjY3LCAxLjM5NzMzIiwgXAotICAgICAgICAgICIwLjA5NjQ4LCAwLjMwNDk1NiwgMC41MTI0NjEsIDAuNjYwNTQ2LCAwLjg5Nzk1NSwgMS4xMDc2LCAxLjQwNzc1IiwgXAotICAgICAgICAgICIwLjEwNjMyOCwgMC4zMTQ4ODUsIDAuNTIyNTAxLCAwLjY3MDUxMiwgMC45MDc1NTQsIDEuMTE3NzMsIDEuNDE3MzEiLCBcCi0gICAgICAgICAgIjAuMTE2MTcsIDAuMzI0NjkxLCAwLjUzMjI5NSwgMC42ODA0MTcsIDAuOTE3NDI5LCAxLjEyNzY1LCAxLjQyNjc0IiwgXAotICAgICAgICAgICIwLjEzMTE1LCAwLjM0MDMyNCwgMC41NDgwODIsIDAuNjk2NTUxLCAwLjkzMzE3MSwgMS4xNDI4OSwgMS40NDMyOSIsIFwKLSAgICAgICAgICAiMC4xNDM0MDcsIDAuMzU0MTczLCAwLjU2MDM2MiwgMC43MTAzOTEsIDAuOTQ3MjU4LCAxLjE1Njg0LCAxLjQ1NjI4Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTE5NDI1LCAwLjUzNjY3LCAwLjk1NTg3NCwgMS4yNTcxNywgMS43Mzk5MSwgMi4xNjE2MSwgMi43NjU4NiIsIFwKLSAgICAgICAgICAiMC4xMTk0MjEsIDAuNTM2Nzc3LCAwLjk1NTcxNSwgMS4yNTcwOCwgMS43Mzk5OSwgMi4xNjI0MywgMi43NjYwOCIsIFwKLSAgICAgICAgICAiMC4xMTk3NDksIDAuNTM2NzU2LCAwLjk1NjAwOSwgMS4yNTczNywgMS43MzkyOSwgMi4xNjE1NSwgMi43NjUxOCIsIFwKLSAgICAgICAgICAiMC4xMjE1OTIsIDAuNTM2OTUzLCAwLjk1NTQ0OSwgMS4yNTcyNSwgMS43Mzk4MiwgMi4xNjE4LCAyLjc2NDgzIiwgXAotICAgICAgICAgICIwLjEyNDc5OSwgMC41MzcwMzcsIDAuOTU2MTQ5LCAxLjI1NzE3LCAxLjczOTk4LCAyLjE2MTg5LCAyLjc2NjAyIiwgXAotICAgICAgICAgICIwLjEzMTY3OSwgMC41Mzc4ODYsIDAuOTU1Mzk5LCAxLjI1NzMxLCAxLjczOTkyLCAyLjE2MTMyLCAyLjc2NTg5IiwgXAotICAgICAgICAgICIwLjEzODg1NywgMC41Mzk4NjMsIDAuOTU1NDkzLCAxLjI1NzA3LCAxLjc0MDAzLCAyLjE2MTMzLCAyLjc2NTI5Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQ4Njk1LCAwLjE4NDI3LCAwLjMxODk0NywgMC40MTUwOTksIDAuNTY4Nzk4LCAwLjcwMzMzMiwgMC44OTUyNjIiLCBcCi0gICAgICAgICAgIjAuMDU3NzI3LCAwLjE5MzUzNiwgMC4zMjgyNDYsIDAuNDI0Mzg0LCAwLjU3ODA3MSwgMC43MTI1NTQsIDAuOTA0NTM2IiwgXAotICAgICAgICAgICIwLjA2ODUwNiwgMC4yMDQ1ODIsIDAuMzM5Mzk3LCAwLjQzNTUzMiwgMC41ODkyODUsIDAuNzIzNzM0LCAwLjkxNTc5NiIsIFwKLSAgICAgICAgICAiMC4wNzkzNDUsIDAuMjE1NTc1LCAwLjM1MDQxMSwgMC40NDY2MzcsIDAuNjAwMzIzLCAwLjczNDczOSwgMC45MjY5NDQiLCBcCi0gICAgICAgICAgIjAuMDg5NjUyLCAwLjIyNjQ0MywgMC4zNjEzNjQsIDAuNDU3NjIzLCAwLjYxMTM5OSwgMC43NDYwMTcsIDAuOTM3OTM3IiwgXAotICAgICAgICAgICIwLjEwNDQ1MywgMC4yNDM5ODksIDAuMzc4OTk1LCAwLjQ3NTUwOSwgMC42MjkzNDYsIDAuNzYzODMyLCAwLjk1NTgyOCIsIFwKLSAgICAgICAgICAiMC4xMTYzMjUsIDAuMjU5NDI0LCAwLjM5NDU5OCwgMC40OTA4NzUsIDAuNjQ0Njg0LCAwLjc3OTI5NSwgMC45NzEyNjEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODIyODYsIDAuMzQ3NjgyLCAwLjYxMzQ2MiwgMC44MDMyMjQsIDEuMTA2NzYsIDEuMzcyNTksIDEuNzUxOTkiLCBcCi0gICAgICAgICAgIjAuMDgyMzQ2LCAwLjM0NzY5OSwgMC42MTMyODMsIDAuODAyOTg1LCAxLjEwNjY5LCAxLjM3MjQ0LCAxLjc1MTQ5IiwgXAotICAgICAgICAgICIwLjA4NDYwOSwgMC4zNDc2OTYsIDAuNjEzMzQxLCAwLjgwMzIyOSwgMS4xMDY2LCAxLjM3MjIsIDEuNzUxOTIiLCBcCi0gICAgICAgICAgIjAuMDg4OTA3LCAwLjM0NzgwNiwgMC42MTMyNTMsIDAuODAzMjg1LCAxLjEwNjUzLCAxLjM3MjI0LCAxLjc1MTk0IiwgXAotICAgICAgICAgICIwLjA5NDQzOCwgMC4zNDg3NzUsIDAuNjEzMjQ5LCAwLjgwMzI0MiwgMS4xMDY2LCAxLjM3MjUyLCAxLjc1MTk5IiwgXAotICAgICAgICAgICIwLjEwNDQyOSwgMC4zNTIzNjcsIDAuNjEzOTMzLCAwLjgwMzI3NCwgMS4xMDY1NywgMS4zNzIxMSwgMS43NTE4OCIsIFwKLSAgICAgICAgICAiMC4xMTM4NzgsIDAuMzU3MSwgMC42MTU0MjIsIDAuODAzNjQxLCAxLjEwNjYxLCAxLjM3MjE0LCAxLjc1MTYxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIxIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3Mjg3MywgMC4yODE5MjYsIDAuNDkwMTg5LCAwLjYzOTg0LCAwLjg3Nzk1OSwgMS4wODc2NSwgMS4zODY2MyIsIFwKLSAgICAgICAgICAiMC4wODE3MDQsIDAuMjkxMTUyLCAwLjQ5OTcyNywgMC42NDg2NjcsIDAuODg3MTY5LCAxLjA5NjQ0LCAxLjM5NTk0IiwgXAotICAgICAgICAgICIwLjA5MTg2LCAwLjMwMTUzNywgMC41MTA0MDcsIDAuNjU5MjY2LCAwLjg5NzUyNiwgMS4xMDcxMiwgMS40MDcwNyIsIFwKLSAgICAgICAgICAiMC4xMDE2NDMsIDAuMzExNDA5LCAwLjUyMDI0MiwgMC42Njg5NTYsIDAuOTA3MDg2LCAxLjExNzI1LCAxLjQxNyIsIFwKLSAgICAgICAgICAiMC4xMTEyMzIsIDAuMzIxMDQ0LCAwLjUyOTc3MSwgMC42Nzg2ODQsIDAuOTE2ODg1LCAxLjEyNjkzLCAxLjQyNTc5IiwgXAotICAgICAgICAgICIwLjEyNTk0LCAwLjMzNjUxLCAwLjU0NTQ5MSwgMC42OTQ3MTEsIDAuOTMyNTgsIDEuMTQyMTYsIDEuNDQyNTUiLCBcCi0gICAgICAgICAgIjAuMTM3NTc3LCAwLjM1MDI1MiwgMC41NTc5MDcsIDAuNzA4NDY3LCAwLjk0NjYwNCwgMS4xNTYwOSwgMS40NTUyOSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExNDU0OCwgMC41MzQyMTQsIDAuOTUzNTU3LCAxLjI1NTU5LCAxLjc0MzMsIDIuMTYyNzIsIDIuNzc0MTUiLCBcCi0gICAgICAgICAgIjAuMTE0NTUxLCAwLjUzNDExNywgMC45NTM5ODIsIDEuMjU2OTgsIDEuNzM4OCwgMi4xNjYyNywgMi43Njc3IiwgXAotICAgICAgICAgICIwLjExNDk0MiwgMC41MzQwNzEsIDAuOTU0MDkyLCAxLjI1NTY1LCAxLjc0MzIzLCAyLjE2MjYyLCAyLjc2NzgzIiwgXAotICAgICAgICAgICIwLjExNjk5OCwgMC41MzQyODEsIDAuOTU0MzU5LCAxLjI1NTY3LCAxLjc0MDk5LCAyLjE2MjcyLCAyLjc3MjE4IiwgXAotICAgICAgICAgICIwLjEyMDIzLCAwLjUzNDQyNCwgMC45NTQ0NjMsIDEuMjU2OTgsIDEuNzQxODQsIDIuMTY1MTUsIDIuNzY5MTEiLCBcCi0gICAgICAgICAgIjAuMTI3NDkyLCAwLjUzNTIzMywgMC45NTQwMDksIDEuMjU1NDgsIDEuNzQxODEsIDIuMTY2MiwgMi43Njc4NyIsIFwKLSAgICAgICAgICAiMC4xMzUwODIsIDAuNTM3Mjc3LCAwLjk1NDY1LCAxLjI1NjkzLCAxLjc0MTg4LCAyLjE2NjE5LCAyLjc2OTI0Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQ2MTk2LCAwLjE4MTgwOCwgMC4zMTY0OTksIDAuNDEyNTk3LCAwLjU2NjM4LCAwLjcwMDc2MiwgMC44OTI4NzMiLCBcCi0gICAgICAgICAgIjAuMDU1MzU2LCAwLjE5MTE1OCwgMC4zMjU4ODUsIDAuNDIxOTgxLCAwLjU3NTc3LCAwLjcxMDIxMSwgMC45MDIxNTQiLCBcCi0gICAgICAgICAgIjAuMDY2Nzg5LCAwLjIwMjY2MywgMC4zMzc0MjMsIDAuNDMzNTgsIDAuNTg3MjczLCAwLjcyMTc4NiwgMC45MTM2OSIsIFwKLSAgICAgICAgICAiMC4wNzg4ODgsIDAuMjE0NTkzLCAwLjM0OTM1MiwgMC40NDUzMjksIDAuNTk5MjMsIDAuNzMzNzMxLCAwLjkyNTczNSIsIFwKLSAgICAgICAgICAiMC4wOTAyNTEsIDAuMjI1Nzk5LCAwLjM2MDU1NSwgMC40NTY3NTIsIDAuNjEwNDkzLCAwLjc0NDk2MSwgMC45MzY5MjIiLCBcCi0gICAgICAgICAgIjAuMTA2Mjk4LCAwLjI0NDY0NSwgMC4zNzkyODgsIDAuNDc1NDcsIDAuNjI5MjM0LCAwLjc2MzYzOSwgMC45NTU1OTEiLCBcCi0gICAgICAgICAgIjAuMTE4MzY5LCAwLjI2MDkyMSwgMC4zOTU2NTMsIDAuNDkxNzI1LCAwLjY0NTQzNywgMC43Nzk5NjMsIDAuOTcxOTA5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDgyMjkyLCAwLjM0NzcyOCwgMC42MTMyODksIDAuODAzMDM2LCAxLjEwNjY4LCAxLjM3MjUxLCAxLjc1MTk4IiwgXAotICAgICAgICAgICIwLjA4MjQ3NSwgMC4zNDc2OTEsIDAuNjEzMzE5LCAwLjgwMzA4MiwgMS4xMDY4MiwgMS4zNzIxMywgMS43NTE3MSIsIFwKLSAgICAgICAgICAiMC4wODY3MjUsIDAuMzQ3NjY4LCAwLjYxMzI1OSwgMC44MDI5OTUsIDEuMTA2NzYsIDEuMzcyMTIsIDEuNzUxNCIsIFwKLSAgICAgICAgICAiMC4wOTI5NjMsIDAuMzQ3ODM1LCAwLjYxMzI5MywgMC44MDMxMTksIDEuMTA2NzksIDEuMzcyMywgMS43NTE5NiIsIFwKLSAgICAgICAgICAiMC4xMDEyMzEsIDAuMzQ5NTI0LCAwLjYxMzM5OSwgMC44MDMyNDMsIDEuMTA2NjYsIDEuMzcyMjcsIDEuNzUxODQiLCBcCi0gICAgICAgICAgIjAuMTE1MTY0LCAwLjM1NTAxNiwgMC42MTM5NTksIDAuODAzMDQxLCAxLjEwNjUyLCAxLjM3MjQsIDEuNzUxOTEiLCBcCi0gICAgICAgICAgIjAuMTI4Mjc5LCAwLjM2MTg0NywgMC42MTY2MzQsIDAuODAzNzk1LCAxLjEwNjU2LCAxLjM3MjExLCAxLjc1MTkyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2MDUxMSwgMC4yNjg5NDUsIDAuNDc2MzE5LCAwLjYyNDA2NCwgMC44NjE2NywgMS4wNjk4OCwgMS4zNjg2OCIsIFwKLSAgICAgICAgICAiMC4wNjkwNDksIDAuMjc3NjM1LCAwLjQ4NDc1OCwgMC42MzMyNDgsIDAuODcwMDAzLCAxLjA3ODIxLCAxLjM3NzcyIiwgXAotICAgICAgICAgICIwLjA3OTg3NywgMC4yODg0MjYsIDAuNDk1OTU5LCAwLjY0NDA2MSwgMC44ODEwMDcsIDEuMDg5MjcsIDEuMzg4NCIsIFwKLSAgICAgICAgICAiMC4wOTA2MDMsIDAuMjk5MDE0LCAwLjUwNjUwMywgMC42NTQ2OCwgMC44OTIwMzQsIDEuMDk5ODQsIDEuMzk5NjciLCBcCi0gICAgICAgICAgIjAuMTAxODY4LCAwLjMwOTg3OSwgMC41MTc0NjcsIDAuNjY1NzI3LCAwLjkwMjg0NCwgMS4xMTA4LCAxLjQxMDI2IiwgXAotICAgICAgICAgICIwLjExOTQzNiwgMC4zMjc0NzIsIDAuNTM0OTYxLCAwLjY4MzAwMSwgMC45MjAzNDksIDEuMTI4NjgsIDEuNDI4NzEiLCBcCi0gICAgICAgICAgIjAuMTMyNTQ2LCAwLjM0MjU3NSwgMC41NTAwNjksIDAuNjk4NDA4LCAwLjkzNTI2MSwgMS4xNDQwOSwgMS40NDI5NyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExODM0NywgMC41MzY3NzMsIDAuOTU0ODk1LCAxLjI1NDkzLCAxLjczNzY4LCAyLjE1Nzg5LCAyLjc2MDkxIiwgXAotICAgICAgICAgICIwLjExNzI5NSwgMC41MzY5NDQsIDAuOTUzODM1LCAxLjI1NTU0LCAxLjczNzUsIDIuMTU5MjIsIDIuNzYxMTkiLCBcCi0gICAgICAgICAgIjAuMTE5Njc3LCAwLjUzNjg5MiwgMC45NTQ3OTcsIDEuMjU1NDUsIDEuNzM3NzMsIDIuMTYwMjIsIDIuNzYyMjkiLCBcCi0gICAgICAgICAgIjAuMTI1MDIyLCAwLjUzNjc3MiwgMC45NTQ1MSwgMS4yNTUyMywgMS43MzcxLCAyLjE1ODQ2LCAyLjc2MTYiLCBcCi0gICAgICAgICAgIjAuMTMxNzIsIDAuNTM2Mzc2LCAwLjk1NDc3MSwgMS4yNTU0MSwgMS43Mzc2NiwgMi4xNTg0OCwgMi43NjExMyIsIFwKLSAgICAgICAgICAiMC4xNDM4OTMsIDAuNTM4MTE2LCAwLjk1NDExNSwgMS4yNTU0MywgMS43Mzc2NywgMi4xNTg5MiwgMi43NjE0MyIsIFwKLSAgICAgICAgICAiMC4xNTUzOTYsIDAuNTQyMDU4LCAwLjk1NDEwOSwgMS4yNTU0MSwgMS43Mzc3MSwgMi4xNTk3OSwgMi43NjEyNiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzNzMxMywgMC4xNzIyMjYsIDAuMzA2OTU3LCAwLjQwMzE4OCwgMC41NTcwOTcsIDAuNjkxNzcxLCAwLjg4NDExNiIsIFwKLSAgICAgICAgICAiMC4wNDYyNTIsIDAuMTgxNTUyLCAwLjMxNjMxNCwgMC40MTI1MjUsIDAuNTY2NTI2LCAwLjcwMTE0MSwgMC44OTM0NjciLCBcCi0gICAgICAgICAgIjAuMDU3MDEyLCAwLjE5MjY5MiwgMC4zMjc1MDcsIDAuNDIzNzY2LCAwLjU3NzcyLCAwLjcxMjQwNiwgMC45MDQ3MzUiLCBcCi0gICAgICAgICAgIjAuMDY3MzY3LCAwLjIwMzY5NywgMC4zMzg2NTEsIDAuNDM0OTMzLCAwLjU4ODg5MiwgMC43MjM1OCwgMC45MTU4NTIiLCBcCi0gICAgICAgICAgIjAuMDc2NTE3LCAwLjIxNDU5OSwgMC4zNDk0NjgsIDAuNDQ1ODUxLCAwLjU5OTg2NiwgMC43MzQ1NiwgMC45MjY4NzMiLCBcCi0gICAgICAgICAgIjAuMDg5NzAyLCAwLjIzMTg5OSwgMC4zNjcxNDksIDAuNDYzNTA1LCAwLjYxNzU1OCwgMC43NTIyNzcsIDAuOTQ0NTYiLCBcCi0gICAgICAgICAgIjAuMDk5ODc5LCAwLjI0NzQ3MSwgMC4zODI1NjYsIDAuNDc5MjI3LCAwLjYzMzEzNSwgMC43Njc3ODIsIDAuOTYwMDYyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDcyMDg0LCAwLjMzNzM2MiwgMC42MDMxMjQsIDAuNzkyODU1LCAxLjA5Njc4LCAxLjM2Mjc2LCAxLjc0NDYiLCBcCi0gICAgICAgICAgIjAuMDcyNDM2LCAwLjMzNzQwNCwgMC42MDMwMjQsIDAuNzkyOTUxLCAxLjA5NjY5LCAxLjM2MjU0LCAxLjc0MjM1IiwgXAotICAgICAgICAgICIwLjA3NTczOSwgMC4zMzc0MSwgMC42MDMxMDksIDAuNzkyNzY1LCAxLjA5NjU0LCAxLjM2MjYyLCAxLjc0MjU1IiwgXAotICAgICAgICAgICIwLjA4MDkwNSwgMC4zMzc1NzgsIDAuNjAzMTQ4LCAwLjc5Mjg2MywgMS4wOTY3MywgMS4zNjI3OCwgMS43NDMyIiwgXAotICAgICAgICAgICIwLjA4NzExMSwgMC4zMzg4OTYsIDAuNjAzMTM2LCAwLjc5Mjc1NSwgMS4wOTY4NSwgMS4zNjI2NSwgMS43NDM1MSIsIFwKLSAgICAgICAgICAiMC4wOTg0NSwgMC4zNDI2NDQsIDAuNjAzNzEsIDAuNzkyOTk3LCAxLjA5NjcsIDEuMzYyNjQsIDEuNzQyNjMiLCBcCi0gICAgICAgICAgIjAuMTA4MzgsIDAuMzQ3Nzc5LCAwLjYwNTM3OCwgMC43OTMzNjgsIDEuMDk2NzMsIDEuMzYyNjksIDEuNzQyNTgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQzEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU2NzMxLCAwLjI2NjIxNCwgMC40NzQ4NDQsIDAuNjIzODA0LCAwLjg2MjYxMywgMS4wNzIyOSwgMS4zNzIzOCIsIFwKLSAgICAgICAgICAiMC4wNjUxMzYsIDAuMjc1MDE5LCAwLjQ4MzczNywgMC42MzI4MTMsIDAuODcxMDI5LCAxLjA4MDQzLCAxLjM3OTk4IiwgXAotICAgICAgICAgICIwLjA3NTk1NSwgMC4yODU5MzgsIDAuNDk0NzUzLCAwLjY0MzY3MSwgMC44ODIwMjcsIDEuMDkyMDIsIDEuMzkyMTgiLCBcCi0gICAgICAgICAgIjAuMDg2NTYxLCAwLjI5NjMxMiwgMC41MDUxMDMsIDAuNjU0MzY1LCAwLjg5MjQxNSwgMS4xMDIwNCwgMS40MDE5MiIsIFwKLSAgICAgICAgICAiMC4wOTc5NzMsIDAuMzA3MTQ5LCAwLjUxNjA2NywgMC42NjUyNTksIDAuOTAzOTE5LCAxLjExMywgMS40MTM0IiwgXAotICAgICAgICAgICIwLjExNDg2MywgMC4zMjQ2ODQsIDAuNTMzNDI4LCAwLjY4MjU5OCwgMC45MjEyOTYsIDEuMTMwODYsIDEuNDMxMDEiLCBcCi0gICAgICAgICAgIjAuMTI3Mjk0LCAwLjMzOTc2LCAwLjU0ODYxMywgMC42OTc4NzUsIDAuOTM2MjM3LCAxLjE0NjI2LCAxLjQ0NTM3Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTEzOTU1LCAwLjUzNTEwMiwgMC45NTU4OCwgMS4yNTcyNSwgMS43NDEwMywgMi4xNjI3MiwgMi43Njc4OCIsIFwKLSAgICAgICAgICAiMC4xMTI5MjMsIDAuNTM1MDkyLCAwLjk1NjAxNiwgMS4yNTc3NiwgMS43NDE4LCAyLjE2NDI2LCAyLjc2OTAxIiwgXAotICAgICAgICAgICIwLjExNTY2MywgMC41MzUxMjYsIDAuOTU1NDgzLCAxLjI1NzQyLCAxLjc0MTAzLCAyLjE2MjgsIDIuNzcyMjkiLCBcCi0gICAgICAgICAgIjAuMTIxMjk0LCAwLjUzNTEzOSwgMC45NTU1NDYsIDEuMjU3MiwgMS43NDE4OSwgMi4xNjUsIDIuNzc0MTgiLCBcCi0gICAgICAgICAgIjAuMTI4MjY1LCAwLjUzNDcwNiwgMC45NTU5MjcsIDEuMjU3ODMsIDEuNzM5ODYsIDIuMTY2MiwgMi43NjczOCIsIFwKLSAgICAgICAgICAiMC4xNDA4NjUsIDAuNTM2NTY4LCAwLjk1NTI2MSwgMS4yNTcxNCwgMS43NDMzLCAyLjE2NzgxLCAyLjc2NzkxIiwgXAotICAgICAgICAgICIwLjE1MjYwMywgMC41NDA1NjMsIDAuOTU1MDM4LCAxLjI1Nzg5LCAxLjc0MTg0LCAyLjE2MjY0LCAyLjc3MjI4Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM1MTE1LCAwLjE3MDE1MiwgMC4zMDQ3OTksIDAuNDAxMDAyLCAwLjU1NDk0MSwgMC42ODk1NTQsIDAuODgxODk1IiwgXAotICAgICAgICAgICIwLjA0NDI2MiwgMC4xNzk1OSwgMC4zMTQzNTEsIDAuNDEwNjQ0LCAwLjU2NDU3NSwgMC42OTkxNzIsIDAuODkxNTQiLCBcCi0gICAgICAgICAgIjAuMDU1OTYyLCAwLjE5MTE3MSwgMC4zMjU5ODMsIDAuNDIyMjY0LCAwLjU3NjE3OCwgMC43MTA4ODEsIDAuOTAzMDg5IiwgXAotICAgICAgICAgICIwLjA2NzY2OCwgMC4yMDMxNzEsIDAuMzM4MDY2LCAwLjQzNDMxMywgMC41ODgyMDUsIDAuNzIyOTAzLCAwLjkxNTI2NCIsIFwKLSAgICAgICAgICAiMC4wNzczODgsIDAuMjE0NDU4LCAwLjM0OTI0LCAwLjQ0NTYzMiwgMC41OTk1MjUsIDAuNzM0MjEyLCAwLjkyNjQ5NyIsIFwKLSAgICAgICAgICAiMC4wOTA3OTksIDAuMjMzMTgyLCAwLjM2Nzk3OCwgMC40NjQyNzQsIDAuNjE4MjIzLCAwLjc1Mjg4MSwgMC45NDUxOTciLCBcCi0gICAgICAgICAgIjAuMTAxMTMyLCAwLjI0OTcxNSwgMC4zODQ0MDksIDAuNDgwNTY3LCAwLjYzNDUxNywgMC43NjkyMTQsIDAuOTYxNDg0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDcyMDg0LCAwLjMzNzQzNiwgMC42MDMxNzYsIDAuNzkzMDExLCAxLjA5Njc3LCAxLjM2MjU2LCAxLjc0Mjc3IiwgXAotICAgICAgICAgICIwLjA3Mjg3MywgMC4zMzc0MDEsIDAuNjAzMTE1LCAwLjc5MjkxMSwgMS4wOTY3OCwgMS4zNjI1NiwgMS43NDIwMiIsIFwKLSAgICAgICAgICAiMC4wNzgyNzksIDAuMzM3MzQsIDAuNjAyOTQ3LCAwLjc5Mjg0OSwgMS4wOTY3MSwgMS4zNjIyOSwgMS43NDI0MiIsIFwKLSAgICAgICAgICAiMC4wODU3NTMsIDAuMzM3NTYxLCAwLjYwMzE0OCwgMC43OTMwMjcsIDEuMDk2NzMsIDEuMzYyNjUsIDEuNzQyMTIiLCBcCi0gICAgICAgICAgIjAuMDk0NzgzLCAwLjMzOTYwMSwgMC42MDMxMjEsIDAuNzkyODAxLCAxLjA5NjY5LCAxLjM2Mjc5LCAxLjc0MjY3IiwgXAotICAgICAgICAgICIwLjExMDE0MiwgMC4zNDU0NTQsIDAuNjAzOTYzLCAwLjc5Mjc5NCwgMS4wOTY3NiwgMS4zNjIzNCwgMS43NDI2NyIsIFwKLSAgICAgICAgICAiMC4xMjMyMiwgMC4zNTI2OTIsIDAuNjA2ODYzLCAwLjc5MzQ5MSwgMS4wOTY4NywgMS4zNjI3NiwgMS43NDMwNyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyMDIzMywgMC4wMjAyMzgsIDAuMDIwMjM2LCAwLjAyMDIzNiwgMC4wMjAyMzQsIDAuMDIwMjMxLCAwLjAyMDIyNyIsIFwKLSAgICAgICAgICAiMC4wMjAxNzEsIDAuMDIwMjA3LCAwLjAyMDIxMiwgMC4wMjAyMTEsIDAuMDIwMjEyLCAwLjAyMDIxMywgMC4wMjAyMDciLCBcCi0gICAgICAgICAgIjAuMDIwMTMyLCAwLjAyMDE5LCAwLjAyMDE5OSwgMC4wMjAyMDYsIDAuMDIwMjA1LCAwLjAyMDIwNSwgMC4wMjAyIiwgXAotICAgICAgICAgICIwLjAyMDEwNiwgMC4wMjAxNzgsIDAuMDIwMTkyLCAwLjAyMDE5NiwgMC4wMjAxOTMsIDAuMDIwMiwgMC4wMjAxOTgiLCBcCi0gICAgICAgICAgIjAuMDIwMDkxLCAwLjAyMDE2NywgMC4wMjAxODUsIDAuMDIwMTg5LCAwLjAyMDE5OCwgMC4wMjAyMDUsIDAuMDIwMTk2IiwgXAotICAgICAgICAgICIwLjAyMDA3MiwgMC4wMjAxNTMsIDAuMDIwMTc0LCAwLjAyMDE4LCAwLjAyMDE4NCwgMC4wMjAxODksIDAuMDIwMTk0IiwgXAotICAgICAgICAgICIwLjAyMDA2MSwgMC4wMjAxMzcsIDAuMDIwMTY1LCAwLjAyMDE3MywgMC4wMjAxODIsIDAuMDIwMTg1LCAwLjAyMDE4NiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2NDU2LCAwLjAwNjQ1NSwgMC4wMDY0NTUsIDAuMDA2NDU1LCAwLjAwNjQ1NCwgMC4wMDY0NTQsIDAuMDA2NDQ5IiwgXAotICAgICAgICAgICIwLjAwNjM0MiwgMC4wMDYzNjUsIDAuMDA2MzY5LCAwLjAwNjM2OCwgMC4wMDYzNjksIDAuMDA2MzcxLCAwLjAwNjM2NyIsIFwKLSAgICAgICAgICAiMC4wMDYyNywgMC4wMDYzMjgsIDAuMDA2MzQsIDAuMDA2MzQ0LCAwLjAwNjM0MywgMC4wMDYzNDUsIDAuMDA2MzQ3IiwgXAotICAgICAgICAgICIwLjAwNjIyOCwgMC4wMDYzMDQsIDAuMDA2MzIyLCAwLjAwNjMyNywgMC4wMDYzMzIsIDAuMDA2MzMyLCAwLjAwNjMzNCIsIFwKLSAgICAgICAgICAiMC4wMDYyMDMsIDAuMDA2Mjg2LCAwLjAwNjMwOSwgMC4wMDYzMTYsIDAuMDA2MzIzLCAwLjAwNjMyNSwgMC4wMDYzMjgiLCBcCi0gICAgICAgICAgIjAuMDA2MTg1LCAwLjAwNjI2NiwgMC4wMDYyOTQsIDAuMDA2MzAzLCAwLjAwNjMxMywgMC4wMDYzMTUsIDAuMDA2MzE4IiwgXAotICAgICAgICAgICIwLjAwNjE5MiwgMC4wMDYyNTYsIDAuMDA2Mjg0LCAwLjAwNjI5NCwgMC4wMDYzMDUsIDAuMDA2MzA4LCAwLjAwNjMxMyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkExIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxODY4NiwgMC4wMTg3MTEsIDAuMDE4NzE0LCAwLjAxODcxNCwgMC4wMTg3MTQsIDAuMDE4NzEzLCAwLjAxODcwOSIsIFwKLSAgICAgICAgICAiMC4wMTg2MDIsIDAuMDE4NzAyLCAwLjAxODcxNSwgMC4wMTg3MiwgMC4wMTg3MjQsIDAuMDE4NzI2LCAwLjAxODcyMyIsIFwKLSAgICAgICAgICAiMC4wMTg1MjQsIDAuMDE4NjcyLCAwLjAxODY5OSwgMC4wMTg3MDcsIDAuMDE4NzE2LCAwLjAxODcyLCAwLjAxODcxOSIsIFwKLSAgICAgICAgICAiMC4wMTg0NzQsIDAuMDE4NjQyLCAwLjAxODY4LCAwLjAxODY5MiwgMC4wMTg2OTksIDAuMDE4NzA3LCAwLjAxODcyIiwgXAotICAgICAgICAgICIwLjAxODQ0MywgMC4wMTg2MTcsIDAuMDE4NjYyLCAwLjAxODY4NCwgMC4wMTg2OTIsIDAuMDE4Njk3LCAwLjAxODcwNSIsIFwKLSAgICAgICAgICAiMC4wMTg0MSwgMC4wMTg1ODMsIDAuMDE4NjM3LCAwLjAxODY1NiwgMC4wMTg2NzcsIDAuMDE4Njg3LCAwLjAxODY5OSIsIFwKLSAgICAgICAgICAiMC4wMTgzOTcsIDAuMDE4NTU1LCAwLjAxODYxNiwgMC4wMTg2NCwgMC4wMTg2NjIsIDAuMDE4Njc2LCAwLjAxODY4NiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2NDYsIDAuMDA2NDYyLCAwLjAwNjQ2LCAwLjAwNjQ2LCAwLjAwNjQ1OSwgMC4wMDY0NTcsIDAuMDA2NDU0IiwgXAotICAgICAgICAgICIwLjAwNjMyNiwgMC4wMDYzNjMsIDAuMDA2MzcxLCAwLjAwNjM2OCwgMC4wMDYzNywgMC4wMDYzNjgsIDAuMDA2MzY5IiwgXAotICAgICAgICAgICIwLjAwNjI2MiwgMC4wMDYzMjYsIDAuMDA2MzM3LCAwLjAwNjM0NCwgMC4wMDYzNDQsIDAuMDA2MzQ1LCAwLjAwNjM0NiIsIFwKLSAgICAgICAgICAiMC4wMDYyNDUsIDAuMDA2Mjk4LCAwLjAwNjMyNywgMC4wMDYzMzQsIDAuMDA2MzM4LCAwLjAwNjM0LCAwLjAwNjMzOCIsIFwKLSAgICAgICAgICAiMC4wMDYyNTQsIDAuMDA2Mjk3LCAwLjAwNjMxNiwgMC4wMDYzMTksIDAuMDA2MzI1LCAwLjAwNjMyOCwgMC4wMDYzMyIsIFwKLSAgICAgICAgICAiMC4wMDYzMDMsIDAuMDA2Mjk3LCAwLjAwNjMxMSwgMC4wMDYzMTgsIDAuMDA2MzIzLCAwLjAwNjMyNSwgMC4wMDYzMjciLCBcCi0gICAgICAgICAgIjAuMDA2MzcxLCAwLjAwNjMxMiwgMC4wMDYzMiwgMC4wMDYzMjIsIDAuMDA2MzI1LCAwLjAwNjMyNywgMC4wMDYzMjYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTY2MTYsIDAuMDE2NjIxLCAwLjAxNjYyMSwgMC4wMTY2MTgsIDAuMDE2NjE5LCAwLjAxNjYxNywgMC4wMTY2MTQiLCBcCi0gICAgICAgICAgIjAuMDE2NTUzLCAwLjAxNjU5MiwgMC4wMTY1OTYsIDAuMDE2NTk2LCAwLjAxNjU5OSwgMC4wMTY1OTUsIDAuMDE2NTkzIiwgXAotICAgICAgICAgICIwLjAxNjUxMywgMC4wMTY1NzMsIDAuMDE2NTgzLCAwLjAxNjU4NywgMC4wMTY1ODksIDAuMDE2NTg3LCAwLjAxNjU4NyIsIFwKLSAgICAgICAgICAiMC4wMTY0ODksIDAuMDE2NTYxLCAwLjAxNjU3NCwgMC4wMTY1OCwgMC4wMTY1ODMsIDAuMDE2NTg2LCAwLjAxNjU4MyIsIFwKLSAgICAgICAgICAiMC4wMTY0NzIsIDAuMDE2NTUxLCAwLjAxNjU2OSwgMC4wMTY1NzMsIDAuMDE2NTc3LCAwLjAxNjU4LCAwLjAxNjU3OSIsIFwKLSAgICAgICAgICAiMC4wMTY0NTcsIDAuMDE2NTM1LCAwLjAxNjU1OCwgMC4wMTY1NjYsIDAuMDE2NTc1LCAwLjAxNjU3MywgMC4wMTY1NzYiLCBcCi0gICAgICAgICAgIjAuMDE2NDQ5LCAwLjAxNjUyNywgMC4wMTY1MDgsIDAuMDE2NTU5LCAwLjAxNjU2NiwgMC4wMTY1NywgMC4wMTY1NzEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzg0MiwgMC4wMDM4NTEsIDAuMDAzODUxLCAwLjAwMzg1MSwgMC4wMDM4NTEsIDAuMDAzODUsIDAuMDAzODUiLCBcCi0gICAgICAgICAgIjAuMDAzNzc4LCAwLjAwMzg2NCwgMC4wMDM4NzgsIDAuMDAzODgxLCAwLjAwMzg4NCwgMC4wMDM4ODgsIDAuMDAzODg2IiwgXAotICAgICAgICAgICIwLjAwMzY4LCAwLjAwMzgzNiwgMC4wMDM4NjMsIDAuMDAzODczLCAwLjAwMzg3OSwgMC4wMDM4ODMsIDAuMDAzODg3IiwgXAotICAgICAgICAgICIwLjAwMzYxMSwgMC4wMDM4MDQsIDAuMDAzODQ1LCAwLjAwMzg1NywgMC4wMDM4NzEsIDAuMDAzODc3LCAwLjAwMzg4MSIsIFwKLSAgICAgICAgICAiMC4wMDM1NywgMC4wMDM3NzYsIDAuMDAzODI4LCAwLjAwMzg0NSwgMC4wMDM4NiwgMC4wMDM4NjgsIDAuMDAzODc0IiwgXAotICAgICAgICAgICIwLjAwMzUzNCwgMC4wMDM3NDIsIDAuMDAzODAzLCAwLjAwMzgyNSwgMC4wMDM4NDYsIDAuMDAzODU2LCAwLjAwMzg2NSIsIFwKLSAgICAgICAgICAiMC4wMDM1MzUsIDAuMDAzNzIsIDAuMDAzNzg2LCAwLjAwMzgxLCAwLjAwMzgzNCwgMC4wMDM4NDcsIDAuMDAzODU4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE0OTEzLCAwLjAxNDk0LCAwLjAxNDk0MiwgMC4wMTQ5MzksIDAuMDE0OTM4LCAwLjAxNDk0NywgMC4wMTQ5NDIiLCBcCi0gICAgICAgICAgIjAuMDE0ODMsIDAuMDE0OTMsIDAuMDE0OTQ1LCAwLjAxNDk0OSwgMC4wMTQ5NTUsIDAuMDE0OTU0LCAwLjAxNDk1MyIsIFwKLSAgICAgICAgICAiMC4wMTQ3NDksIDAuMDE0ODk4LCAwLjAxNDkyNiwgMC4wMTQ5MzQsIDAuMDE0OTQzLCAwLjAxNDk0NSwgMC4wMTQ5NDciLCBcCi0gICAgICAgICAgIjAuMDE0NzAyLCAwLjAxNDg3LCAwLjAxNDkwNywgMC4wMTQ5MTksIDAuMDE0OTMxLCAwLjAxNDkzNiwgMC4wMTQ5NCIsIFwKLSAgICAgICAgICAiMC4wMTQ2NywgMC4wMTQ4NDUsIDAuMDE0ODksIDAuMDE0OTA1LCAwLjAxNDkyLCAwLjAxNDkyNywgMC4wMTQ5MzMiLCBcCi0gICAgICAgICAgIjAuMDE0NjQzLCAwLjAxNDgxLCAwLjAxNDg2NywgMC4wMTQ4ODYsIDAuMDE0OTA1LCAwLjAxNDkxMywgMC4wMTQ5MjIiLCBcCi0gICAgICAgICAgIjAuMDE0NjMyLCAwLjAxNDc4OCwgMC4wMTQ4MTEsIDAuMDE0ODcxLCAwLjAxNDg5MiwgMC4wMTQ5MDYsIDAuMDE0OTE3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDM4MzMsIDAuMDAzODQ2LCAwLjAwMzg0NiwgMC4wMDM4NDcsIDAuMDAzODQ2LCAwLjAwMzg0NiwgMC4wMDM4NDQiLCBcCi0gICAgICAgICAgIjAuMDAzNzYsIDAuMDAzODU3LCAwLjAwMzg3MywgMC4wMDM4NzYsIDAuMDAzODgsIDAuMDAzODgyLCAwLjAwMzg4MyIsIFwKLSAgICAgICAgICAiMC4wMDM2ODUsIDAuMDAzODMzLCAwLjAwMzg2LCAwLjAwMzg3LCAwLjAwMzg3NiwgMC4wMDM4ODEsIDAuMDAzODgzIiwgXAotICAgICAgICAgICIwLjAwMzYzOSwgMC4wMDM4MDgsIDAuMDAzODQyLCAwLjAwMzg1NSwgMC4wMDM4NjksIDAuMDAzODc0LCAwLjAwMzg3OCIsIFwKLSAgICAgICAgICAiMC4wMDM2NjEsIDAuMDAzOCwgMC4wMDM4MzksIDAuMDAzODUzLCAwLjAwMzg2NiwgMC4wMDM4NzIsIDAuMDAzODc5IiwgXAotICAgICAgICAgICIwLjAwMzcsIDAuMDAzNzg5LCAwLjAwMzgzLCAwLjAwMzg0MywgMC4wMDM4NTksIDAuMDAzODY3LCAwLjAwMzg3NCIsIFwKLSAgICAgICAgICAiMC4wMDM3OCwgMC4wMDM3OTksIDAuMDAzODMzLCAwLjAwMzg0OCwgMC4wMDM4NTksIDAuMDAzODY3LCAwLjAwMzg3NCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMzMxNywgMC4wMTMzMzEsIDAuMDEzMzMxLCAwLjAxMzMzLCAwLjAxMzMyNywgMC4wMTMzMjYsIDAuMDEzMzIzIiwgXAotICAgICAgICAgICIwLjAxMzIyMiwgMC4wMTMyODksIDAuMDEzMjk5LCAwLjAxMzMwNSwgMC4wMTMzMDIsIDAuMDEzMzAzLCAwLjAxMzI5OSIsIFwKLSAgICAgICAgICAiMC4wMTMxOTYsIDAuMDEzMjcyLCAwLjAxMzI4OCwgMC4wMTMyOSwgMC4wMTMyOTMsIDAuMDEzMjk0LCAwLjAxMzI5NCIsIFwKLSAgICAgICAgICAiMC4wMTMxODUsIDAuMDEzMjU4LCAwLjAxMzI3NCwgMC4wMTMyODMsIDAuMDEzMjg5LCAwLjAxMzI4NCwgMC4wMTMyODUiLCBcCi0gICAgICAgICAgIjAuMDEzMiwgMC4wMTMyNSwgMC4wMTMyNjgsIDAuMDEzMjc0LCAwLjAxMzI3OSwgMC4wMTMyODIsIDAuMDEzMjgxIiwgXAotICAgICAgICAgICIwLjAxMzI2NSwgMC4wMTMyNTEsIDAuMDEzMjY1LCAwLjAxMzI3MSwgMC4wMTMyNzcsIDAuMDEzMjc5LCAwLjAxMzI4IiwgXAotICAgICAgICAgICIwLjAxMzM0NSwgMC4wMTMyNjYsIDAuMDEzMjcyLCAwLjAxMzI3NiwgMC4wMTMyNzgsIDAuMDEzMjc5LCAwLjAxMzI4MSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwOTk0LCAwLjAwMTA0OCwgMC4wMDEwNTQsIDAuMDAxMDU2LCAwLjAwMTA1NywgMC4wMDEwNTgsIDAuMDAxMDU5IiwgXAotICAgICAgICAgICIwLjAwMDkyNCwgMC4wMDExMTgsIDAuMDAxMTQzLCAwLjAwMTE1MSwgMC4wMDExNTksIDAuMDAxMTYyLCAwLjAwMTE2NSIsIFwKLSAgICAgICAgICAiMC4wMDA4MTUsIDAuMDAxMDk4LCAwLjAwMTE0NCwgMC4wMDExNTksIDAuMDAxMTcyLCAwLjAwMTE3OCwgMC4wMDExODQiLCBcCi0gICAgICAgICAgIjAuMDAwNzQyLCAwLjAwMTA2NiwgMC4wMDExMjgsIDAuMDAxMTQ5LCAwLjAwMTE2NywgMC4wMDExNzcsIDAuMDAxMTg1IiwgXAotICAgICAgICAgICIwLjAwMDcsIDAuMDAxMDM2LCAwLjAwMTExLCAwLjAwMTEzNSwgMC4wMDExNTgsIDAuMDAxMTcsIDAuMDAxMTgxIiwgXAotICAgICAgICAgICIwLjAwMDY3MywgMC4wMDA5OTMsIDAuMDAxMDgzLCAwLjAwMTExNCwgMC4wMDExNDMsIDAuMDAxMTU5LCAwLjAwMTE3MyIsIFwKLSAgICAgICAgICAiMC4wMDA2ODEsIDAuMDAwOTY1LCAwLjAwMTA2MiwgMC4wMDEwOTcsIDAuMDAxMTMsIDAuMDAxMTQ4LCAwLjAwMTE2NSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMxIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMTc5NCwgMC4wMTE4MzIsIDAuMDExODM1LCAwLjAxMTgzNSwgMC4wMTE4MzcsIDAuMDExODM1LCAwLjAxMTgzNCIsIFwKLSAgICAgICAgICAiMC4wMTE2NzYsIDAuMDExODExLCAwLjAxMTgzLCAwLjAxMTgzOSwgMC4wMTE4NDEsIDAuMDExODQzLCAwLjAxMTg0MyIsIFwKLSAgICAgICAgICAiMC4wMTE2MTUsIDAuMDExNzc3LCAwLjAxMTgxLCAwLjAxMTgxOSwgMC4wMTE4MjcsIDAuMDExODMsIDAuMDExODM1IiwgXAotICAgICAgICAgICIwLjAxMTU4NiwgMC4wMTE3NTIsIDAuMDExNzksIDAuMDExODA2LCAwLjAxMTgxNiwgMC4wMTE4MjIsIDAuMDExODI3IiwgXAotICAgICAgICAgICIwLjAxMTU4NywgMC4wMTE3MywgMC4wMTE3NzUsIDAuMDExNzkxLCAwLjAxMTgwOCwgMC4wMTE4MTcsIDAuMDExODIyIiwgXAotICAgICAgICAgICIwLjAxMTY0OSwgMC4wMTE3MTMsIDAuMDExNzYsIDAuMDExNzc3LCAwLjAxMTc5MywgMC4wMTE4MDQsIDAuMDExODEiLCBcCi0gICAgICAgICAgIjAuMDExNzI0LCAwLjAxMTcxNSwgMC4wMTE3NTUsIDAuMDExNzcyLCAwLjAxMTc4OSwgMC4wMTE3OTksIDAuMDExODA2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDA5ODYsIDAuMDAxMDUsIDAuMDAxMDU3LCAwLjAwMTA1OSwgMC4wMDEwNjEsIDAuMDAxMDYyLCAwLjAwMTA2MiIsIFwKLSAgICAgICAgICAiMC4wMDA5MDksIDAuMDAxMTE3LCAwLjAwMTE0NiwgMC4wMDExNTUsIDAuMDAxMTYzLCAwLjAwMTE2NywgMC4wMDExNyIsIFwKLSAgICAgICAgICAiMC4wMDA4NDYsIDAuMDAxMTAzLCAwLjAwMTE0OSwgMC4wMDExNjQsIDAuMDAxMTc3LCAwLjAwMTE4MywgMC4wMDExOSIsIFwKLSAgICAgICAgICAiMC4wMDA4MDMsIDAuMDAxMDc4LCAwLjAwMTEzNiwgMC4wMDExNTUsIDAuMDAxMTcyLCAwLjAwMTE4MSwgMC4wMDExODkiLCBcCi0gICAgICAgICAgIjAuMDAwODIyLCAwLjAwMTA2MiwgMC4wMDExMjgsIDAuMDAxMTQ5LCAwLjAwMTE3MSwgMC4wMDExODIsIDAuMDAxMTkyIiwgXAotICAgICAgICAgICIwLjAwMDg4NCwgMC4wMDEwNDQsIDAuMDAxMTE1LCAwLjAwMTE0LCAwLjAwMTE2NCwgMC4wMDExNzcsIDAuMDAxMTg4IiwgXAotICAgICAgICAgICIwLjAwMDk2NSwgMC4wMDEwNDQsIDAuMDAxMTEyLCAwLjAwMTEzNywgMC4wMDExNjIsIDAuMDAxMTc1LCAwLjAwMTE4NyIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogQU9JMkJCMVgxICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoQU9JMkJCMVgxKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMTIwODI1OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBME4pICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY4ODMwOTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2ODU1NTg7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjg4MzA5OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDQ4MywgMC4wMDA0NjMsIDAuMDAwNDU3LCAwLjAwMDQ2MywgMC4wMDA0NjksIDAuMDAwNDg4LCAwLjAwMDUwOSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjE3MiwgMC4wMDIxNTUsIDAuMDAyMTQ5LCAwLjAwMjE0NywgMC4wMDIxNDgsIDAuMDAyMTUyLCAwLjAwMjE1OCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQTFOKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2NTIzMzE7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjUyMDczOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDY1MjMzMTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyOTIsIDAuMDAwMjYzLCAwLjAwMDI1OSwgMC4wMDAyNjQsIDAuMDAwMjc4LCAwLjAwMDI4MywgMC4wMDAzMDciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDE5NzcsIDAuMDAxOTU2LCAwLjAwMTk1MywgMC4wMDE5NiwgMC4wMDE5NjksIDAuMDAxOTkxLCAwLjAwMjAxMiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQjApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDk1NTMzNDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA5NTAxMTY7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwOTU1MzM0OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDM3OCwgMC4wMDAzOTcsIDAuMDAwMzk5LCAwLjAwMDQsIDAuMDAwNDAxLCAwLjAwMDQwMiwgMC4wMDA0MDMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA0MiwgMC4wMDA0MiwgMC4wMDA0MiwgMC4wMDA0MiwgMC4wMDA0MiwgMC4wMDA0MjEsIDAuMDAwNDIxIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMTMxMjc4OwotICAgIGZ1bmN0aW9uIDogIighKCghKEEwTitBMU4pKStCMCkpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBME4iOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwOTk4MiwgMC4xNTY2OCwgMC40MjExNDUsIDAuNjU0NDM1LCAwLjk2NTQyNiwgMS41ODczOCwgMS45NzYyNiIsIFwKLSAgICAgICAgICAiMC4xMjAxNywgMC4xNjY5MDQsIDAuNDMxMzg5LCAwLjY2NDY1NywgMC45NzU2NTMsIDEuNTk3NjgsIDEuOTg2NDkiLCBcCi0gICAgICAgICAgIjAuMTMyMjgzLCAwLjE3OTA1LCAwLjQ0MzU2NSwgMC42NzY4OTMsIDAuOTg3ODcsIDEuNjEwMTIsIDEuOTk4NjIiLCBcCi0gICAgICAgICAgIjAuMTQyNjkzLCAwLjE4OTQ4MiwgMC40NTM4NDEsIDAuNjg3MTU3LCAwLjk5ODE0NSwgMS42MjAxNywgMi4wMDg4NyIsIFwKLSAgICAgICAgICAiMC4xNTE0NjYsIDAuMTk4MjYzLCAwLjQ2Mjc2MSwgMC42OTYxMDMsIDEuMDA3MDYsIDEuNjI5MTMsIDIuMDE3NzkiLCBcCi0gICAgICAgICAgIjAuMTY0MDE4LCAwLjIxMDc5MiwgMC40NzUzNDIsIDAuNzA4NjQyLCAxLjAxOTY0LCAxLjY0MTYxLCAyLjAzMDQiLCBcCi0gICAgICAgICAgIjAuMTczOTI5LCAwLjIyMDY1MiwgMC40ODUyMzEsIDAuNzE4NDgzLCAxLjAyOTU1LCAxLjY1MTQ4LCAyLjA0MDQ0Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE3NDE2OCwgMC4yNjkwOTcsIDAuODAzNDg3LCAxLjI3ODMsIDEuOTA2MDQsIDMuMTY2NjQsIDMuOTUwODMiLCBcCi0gICAgICAgICAgIjAuMTc0MjYzLCAwLjI2OTA5MSwgMC44MDQwNjUsIDEuMjc2NzMsIDEuOTA4ODQsIDMuMTY1NjYsIDMuOTUwNTUiLCBcCi0gICAgICAgICAgIjAuMTc0Mzc3LCAwLjI2OTA5MiwgMC44MDQxMDYsIDEuMjc4MTMsIDEuOTA1OTgsIDMuMTcwNDUsIDMuOTUzNDYiLCBcCi0gICAgICAgICAgIjAuMTc0NjUzLCAwLjI2OTExNywgMC44MDQwNzksIDEuMjc4MTIsIDEuOTA2NSwgMy4xNzA2MSwgMy45NTM1MiIsIFwKLSAgICAgICAgICAiMC4xNzQ1NjQsIDAuMjY4Njc1LCAwLjgwNDkyOCwgMS4yNzYwNSwgMS45MDYzNCwgMy4xNzA0OCwgMy45NTM0MyIsIFwKLSAgICAgICAgICAiMC4xNzQ4MTIsIDAuMjY5MjA5LCAwLjgwNDk4MywgMS4yNzgwMiwgMS45MDg4LCAzLjE2NiwgMy45NTkxIiwgXAotICAgICAgICAgICIwLjE3NDg3MywgMC4yNjkwMDMsIDAuODA0OTAzLCAxLjI3NjQ3LCAxLjkwODY5LCAzLjE2OTYyLCAzLjk1ODcyIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5MDU4MiwgMC4xMTU1MywgMC4yNTU4MTYsIDAuMzc5NjIsIDAuNTQ0NDE0LCAwLjg3NDQ2LCAxLjA4MDc3IiwgXAotICAgICAgICAgICIwLjA5ODk4NiwgMC4xMjM5MjksIDAuMjY0MjAyLCAwLjM4NzkxOSwgMC41NTI5ODEsIDAuODgyNjQ4LCAxLjA4ODc3IiwgXAotICAgICAgICAgICIwLjEwODYxNiwgMC4xMzM1NTgsIDAuMjczODA1LCAwLjM5NzU1LCAwLjU2MjU1MywgMC44OTI0NTQsIDEuMDk4ODEiLCBcCi0gICAgICAgICAgIjAuMTE3NjAxLCAwLjE0MjU1NSwgMC4yODI4MjgsIDAuNDA2NTUsIDAuNTcxNTgxLCAwLjkwMTQ5NSwgMS4xMDc5NCIsIFwKLSAgICAgICAgICAiMC4xMjU3ODQsIDAuMTUwNzQ4LCAwLjI5MTAxMSwgMC40MTQ3MDksIDAuNTc5NjQsIDAuOTA5NDY3LCAxLjExNTYxIiwgXAotICAgICAgICAgICIwLjEzNzIyNiwgMC4xNjIxODgsIDAuMzAyNDMzLCAwLjQyNjIyOCwgMC41OTEwNTgsIDAuOTIxMTc3LCAxLjEyNzE3IiwgXAotICAgICAgICAgICIwLjE0NTg2MSwgMC4xNzA2MTEsIDAuMzEwOTI2LCAwLjQzNDY0NywgMC41OTk1MTYsIDAuOTI5NTIsIDEuMTM1NjciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk1MjA0LCAwLjE0Mzc5NiwgMC40MjQ3MDUsIDAuNjcyNjQyLCAxLjAwNjkxLCAxLjY2NzkyLCAyLjA4MjI1IiwgXAotICAgICAgICAgICIwLjA5NTIyMiwgMC4xNDM3MTgsIDAuNDI0MDIxLCAwLjY3MzE1MiwgMS4wMDQwOSwgMS42NjY4OSwgMi4wODE0MiIsIFwKLSAgICAgICAgICAiMC4wOTUyNTEsIDAuMTQzNzI5LCAwLjQyNDY5MywgMC42NzI5MzUsIDEuMDA1MjQsIDEuNjY4MDMsIDIuMDg1MTciLCBcCi0gICAgICAgICAgIjAuMDk1NTcxLCAwLjE0Mzk2NCwgMC40MjQyMzksIDAuNjcyOTE3LCAxLjAwNTQ1LCAxLjY2Nzc5LCAyLjA4MzA0IiwgXAotICAgICAgICAgICIwLjA5NjExNiwgMC4xNDQyOTIsIDAuNDI0MTc1LCAwLjY3MzYwNCwgMS4wMDYzNiwgMS42NjY5OSwgMi4wODE0MSIsIFwKLSAgICAgICAgICAiMC4wOTY4MTksIDAuMTQ0ODQzLCAwLjQyNDg3LCAwLjY3MjcyNSwgMS4wMDM5MywgMS42Njc1NiwgMi4wODMxOSIsIFwKLSAgICAgICAgICAiMC4wOTc1OTIsIDAuMTQ1NTIyLCAwLjQyNTE1OSwgMC42NzIxOTcsIDEuMDA2ODcsIDEuNjY4MiwgMi4wODMxNyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMU4iOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwNzM5MiwgMC4xNTQxMDcsIDAuNDE4NTQ3LCAwLjY1MjA2NywgMC45NjM3NDksIDEuNTg2MDgsIDEuOTc0MDIiLCBcCi0gICAgICAgICAgIjAuMTE3NDY3LCAwLjE2NDI0NSwgMC40Mjg3MywgMC42NjE5OTYsIDAuOTczNjc2LCAxLjU5NTk4LCAxLjk4NTE2IiwgXAotICAgICAgICAgICIwLjEyOTIwNiwgMC4xNzU5MTIsIDAuNDQwNTE0LCAwLjY3Mzg1MSwgMC45ODUwOTQsIDEuNjA3OTcsIDEuOTk2NzciLCBcCi0gICAgICAgICAgIjAuMTM4NzYxLCAwLjE4NTUwOCwgMC40NTAzMzEsIDAuNjgzNDgzLCAwLjk5NTA0NywgMS42MTY3MiwgMi4wMDc3OCIsIFwKLSAgICAgICAgICAiMC4xNDcwNzksIDAuMTkzODI3LCAwLjQ1ODQzLCAwLjY5MTg0MywgMS4wMDI5MiwgMS42MjU1MiwgMi4wMTUwNCIsIFwKLSAgICAgICAgICAiMC4xNTgyMzgsIDAuMjA0OTcyLCAwLjQ2OTU5NSwgMC43MDM0MDMsIDEuMDE0MjEsIDEuNjM3MzcsIDIuMDI2NjIiLCBcCi0gICAgICAgICAgIjAuMTY2NzEzLCAwLjIxMzQzMiwgMC40Nzc5ODQsIDAuNzExNDM4LCAxLjAyMzAxLCAxLjY0NjIxLCAyLjAzMzYxIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE3NDQ5MiwgMC4yNjg2NTcsIDAuODAzNTAzLCAxLjI3OTA4LCAxLjkwNDgzLCAzLjE2NDI2LCAzLjk1NzUyIiwgXAotICAgICAgICAgICIwLjE3NDUzMywgMC4yNjg1LCAwLjgwNTQyOCwgMS4yNzc1NywgMS45MDUyMiwgMy4xNjQ4LCAzLjk1MTM1IiwgXAotICAgICAgICAgICIwLjE3NDAzNywgMC4yNjg4MzksIDAuODA1Mzk5LCAxLjI3Nzg1LCAxLjkwNjYyLCAzLjE2NSwgMy45NTE3NSIsIFwKLSAgICAgICAgICAiMC4xNzQzMzUsIDAuMjY4NjM2LCAwLjgwMzU2MiwgMS4yNzg1NywgMS45MDUyOSwgMy4xNjg3NiwgMy45NTI0IiwgXAotICAgICAgICAgICIwLjE3NDY0MywgMC4yNjkxNjQsIDAuODA0MDY2LCAxLjI3ODU5LCAxLjkwODczLCAzLjE2NjkzLCAzLjk1MTIyIiwgXAotICAgICAgICAgICIwLjE3NDgwMiwgMC4yNjkyNzgsIDAuODA1MzQ5LCAxLjI3NTUxLCAxLjkwNjYxLCAzLjE2MzgyLCAzLjk1MDM5IiwgXAotICAgICAgICAgICIwLjE3NDk3NiwgMC4yNjg4MTgsIDAuODA1NDg2LCAxLjI3ODU0LCAxLjkwNTI1LCAzLjE2MzgyLCAzLjk2MTA1Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4NzIwMSwgMC4xMTIxNzIsIDAuMjUyNDYsIDAuMzc2MDk1LCAwLjU0MTAyMiwgMC44NzEyNDQsIDEuMDc2ODkiLCBcCi0gICAgICAgICAgIjAuMDk1OTE4LCAwLjEyMDg2NiwgMC4yNjExNTUsIDAuMzg0ODM1LCAwLjU0OTc2OSwgMC44Nzk1OTksIDEuMDg1NzMiLCBcCi0gICAgICAgICAgIjAuMTA3MTc1LCAwLjEzMjEyNywgMC4yNzI0NTUsIDAuMzk2MTY0LCAwLjU2MTE0MywgMC44OTA4OTQsIDEuMDk3MDQiLCBcCi0gICAgICAgICAgIjAuMTE3NTQ0LCAwLjE0MjQ4OSwgMC4yODI3NjUsIDAuNDA2NDg3LCAwLjU3MTUzMywgMC45MDE1NjQsIDEuMTA3NSIsIFwKLSAgICAgICAgICAiMC4xMjY4NDksIDAuMTUxMjU3LCAwLjI5MTQ4MiwgMC40MTUxNzgsIDAuNTgwMTYzLCAwLjkxMDEwMywgMS4xMTYyOSIsIFwKLSAgICAgICAgICAiMC4xMzkzMjYsIDAuMTY0MjQ1LCAwLjMwMzU0LCAwLjQyNzMyNSwgMC41OTIyMTcsIDAuOTIyMDY4LCAxLjEyODIzIiwgXAotICAgICAgICAgICIwLjE0OTIzNCwgMC4xNzQ1MiwgMC4zMTMxODYsIDAuNDM2ODQzLCAwLjYwMjg2MywgMC45MzE1ODMsIDEuMTM4ODkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk1MjgyLCAwLjE0MzczOCwgMC40MjQ5MDMsIDAuNjczOTk5LCAxLjAwNjgsIDEuNjY4NjUsIDIuMDgzODUiLCBcCi0gICAgICAgICAgIjAuMDk1MjA1LCAwLjE0MzcxMSwgMC40MjM1NTksIDAuNjczNTE5LCAxLjAwNjI4LCAxLjY2Njg1LCAyLjA4NzQzIiwgXAotICAgICAgICAgICIwLjA5NTM4NiwgMC4xNDM4MDYsIDAuNDIzNzI0LCAwLjY3MzE3NiwgMS4wMDUxNiwgMS42NzE4OSwgMi4wODEyMSIsIFwKLSAgICAgICAgICAiMC4wOTU3NTMsIDAuMTQ0MTY1LCAwLjQyNDE4LCAwLjY3Mjg5NCwgMS4wMDU0NywgMS42Njc0NSwgMi4wODcwOCIsIFwKLSAgICAgICAgICAiMC4wOTYyNTYsIDAuMTQ0NjUsIDAuNDI0MzA2LCAwLjY3MzgyNSwgMS4wMDYxOCwgMS42NjgxMywgMi4wODU5MSIsIFwKLSAgICAgICAgICAiMC4wOTcxNjYsIDAuMTQ1MDczLCAwLjQyNTAzOCwgMC42NzI2NzUsIDEuMDAzNDgsIDEuNjY2NTQsIDIuMDgyNjgiLCBcCi0gICAgICAgICAgIjAuMDk3OTQ2LCAwLjE0NTY0NywgMC40MjUzNDUsIDAuNjc0MTksIDEuMDA2NzgsIDEuNjY3MiwgMi4wODEyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDkyODI3LCAwLjEzOTYxLCAwLjQwNDM1MywgMC42Mzc4MjIsIDAuOTQ4ODg0LCAxLjU3MTg0LCAxLjk2MTE3IiwgXAotICAgICAgICAgICIwLjEwMTI1OCwgMC4xNDc5OTEsIDAuNDEyNTIsIDAuNjQ1ODE2LCAwLjk1NzIxMiwgMS41Nzk5OCwgMS45NjgxOCIsIFwKLSAgICAgICAgICAiMC4xMTExMjIsIDAuMTU3OTMsIDAuNDIyNTI0LCAwLjY1NTkxOCwgMC45NjcxMzQsIDEuNTg5ODUsIDEuOTgwNDIiLCBcCi0gICAgICAgICAgIjAuMTIxMDM4LCAwLjE2Nzg2NCwgMC40MzI1OTMsIDAuNjY1OTIzLCAwLjk3NzQ0OSwgMS41OTk4NCwgMS45ODkyNiIsIFwKLSAgICAgICAgICAiMC4xMzA4ODksIDAuMTc3NzY4LCAwLjQ0MjY4MSwgMC42NzYyODksIDAuOTg3MjMsIDEuNjA5NTMsIDEuOTk5OCIsIFwKLSAgICAgICAgICAiMC4xNDY5MDEsIDAuMTkzNzgzLCAwLjQ1ODM3NiwgMC42OTIyLCAxLjAwMzUxLCAxLjYyNzA1LCAyLjAxNjE2IiwgXAotICAgICAgICAgICIwLjE2MDM4NSwgMC4yMDc3NzMsIDAuNDcyODg4LCAwLjcwNjI2NiwgMS4wMTc4OSwgMS42Mzk4OSwgMi4wMjkyMiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNzQ0NiwgMC4yNjg1MDEsIDAuODA0NzUzLCAxLjI3ODY4LCAxLjkwNTU5LCAzLjE4NTM1LCAzLjk2MjE0IiwgXAotICAgICAgICAgICIwLjE3NDUwOCwgMC4yNjg2NzIsIDAuODA3NDYyLCAxLjI3ODkyLCAxLjkwOTg3LCAzLjE3MjE2LCAzLjk1NDU1IiwgXAotICAgICAgICAgICIwLjE3NTA3MywgMC4yNjkxNTIsIDAuODA1NTg4LCAxLjI3ODU5LCAxLjkxMDA2LCAzLjE3MjMyLCAzLjk1NjMyIiwgXAotICAgICAgICAgICIwLjE3NzAzMSwgMC4yNzAwOTksIDAuODA1NDE3LCAxLjI3ODkzLCAxLjkwNjY2LCAzLjE3MjM4LCAzLjk1MzQzIiwgXAotICAgICAgICAgICIwLjE4MDQ2OCwgMC4yNzIxMTcsIDAuODA1NDU2LCAxLjI3NTkxLCAxLjkwOTU4LCAzLjE2ODY2LCAzLjk1MDMxIiwgXAotICAgICAgICAgICIwLjE4NzY2MSwgMC4yNzY5NywgMC44MDU2MjUsIDEuMjc4ODYsIDEuOTA5NTMsIDMuMTYzNjksIDMuOTUwMzEiLCBcCi0gICAgICAgICAgIjAuMTk1MDQ1LCAwLjI4MjgwOCwgMC44MDQ4NDgsIDEuMjc4ODIsIDEuOTA1MTcsIDMuMTY5NCwgMy45NTEyNSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTExMDMsIDAuMDc1OTE1LCAwLjIxNjI4NiwgMC4zNDAwNTksIDAuNTA0OTcsIDAuODM1MDM4LCAxLjA0MTMiLCBcCi0gICAgICAgICAgIjAuMDYxMTksIDAuMDg2MDYzLCAwLjIyNjM1NywgMC4zNTAwMDYsIDAuNTE0OTU3LCAwLjg0NDc0NywgMS4wNTA4NiIsIFwKLSAgICAgICAgICAiMC4wNzQyOTIsIDAuMDk4Nzg5LCAwLjIzOTE0MywgMC4zNjI4NCwgMC41Mjc3MjcsIDAuODU3ODMyLCAxLjA2NDI1IiwgXAotICAgICAgICAgICIwLjA4NzEyMSwgMC4xMTEzOTcsIDAuMjUxODIyLCAwLjM3NTM4NywgMC41NDAyNzgsIDAuODY5NzQ1LCAxLjA3NDU1IiwgXAotICAgICAgICAgICIwLjEwMDE4NiwgMC4xMjQ4MjYsIDAuMjY0NzYxLCAwLjM4ODI3NCwgMC41NTMyMDMsIDAuODgyOTU1LCAxLjA4ODA1IiwgXAotICAgICAgICAgICIwLjExOTU4MSwgMC4xNDU4ODQsIDAuMjg0ODc4LCAwLjQwODk1MSwgMC41NzM2MTIsIDAuOTAzMzQ4LCAxLjEwOTU3IiwgXAotICAgICAgICAgICIwLjEzNDQzNSwgMC4xNjM3MjUsIDAuMzAyODk3LCAwLjQyNzEzLCAwLjU5MTg3NSwgMC45MjEyNzksIDEuMTI3NDMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDkyOTUzLCAwLjE0MjY2NCwgMC40MjQ0ODksIDAuNjczMDE3LCAxLjAwNDcyLCAxLjY2Nzc0LCAyLjA4MzA1IiwgXAotICAgICAgICAgICIwLjA5MzEwMywgMC4xNDI2MzMsIDAuNDI0MzQzLCAwLjY3MjkyNCwgMS4wMDQzNiwgMS42Njc0MiwgMi4wODE2NCIsIFwKLSAgICAgICAgICAiMC4wOTY2MTgsIDAuMTQ0MTQ4LCAwLjQyNDQyOSwgMC42NzI5NjgsIDEuMDA0NTMsIDEuNjY3OTgsIDIuMDgyNTUiLCBcCi0gICAgICAgICAgIjAuMTAyNzMyLCAwLjE0ODU0OCwgMC40MjQ0MDgsIDAuNjcyODc1LCAxLjAwNDUyLCAxLjY2ODEsIDIuMDgyMyIsIFwKLSAgICAgICAgICAiMC4xMDk5OTQsIDAuMTU0MDczLCAwLjQyNDczMSwgMC42NzI4NjcsIDEuMDA0NzIsIDEuNjY3MzEsIDIuMDgxNjMiLCBcCi0gICAgICAgICAgIjAuMTIzNDUsIDAuMTY1MjI3LCAwLjQyODQwMiwgMC42NzMyMTgsIDEuMDA0NTQsIDEuNjY3MjksIDIuMDgxODEiLCBcCi0gICAgICAgICAgIjAuMTM2NDE4LCAwLjE3NjIzOSwgMC40MzM2MTUsIDAuNjc0NjkyLCAxLjAwNDU2LCAxLjY2NzQsIDIuMDgyMDIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBME4iOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTc2LCAwLjAwMTc2NSwgMC4wMDE3NzIsIDAuMDAxNzczLCAwLjAwMTc3NCwgMC4wMDE3NzQsIDAuMDAxNzc0IiwgXAotICAgICAgICAgICIwLjAwMTczNSwgMC4wMDE3NDIsIDAuMDAxNzUyLCAwLjAwMTc1NCwgMC4wMDE3NTIsIDAuMDAxNzU0LCAwLjAwMTc1NCIsIFwKLSAgICAgICAgICAiMC4wMDE3MjYsIDAuMDAxNzM1LCAwLjAwMTc0OCwgMC4wMDE3NSwgMC4wMDE3NTIsIDAuMDAxNzUzLCAwLjAwMTc1MyIsIFwKLSAgICAgICAgICAiMC4wMDE3MjksIDAuMDAxNzM5LCAwLjAwMTc1MywgMC4wMDE3NTcsIDAuMDAxNzU5LCAwLjAwMTc2MSwgMC4wMDE3NjEiLCBcCi0gICAgICAgICAgIjAuMDAxNzM3LCAwLjAwMTc0NiwgMC4wMDE3NjQsIDAuMDAxNzY4LCAwLjAwMTc3LCAwLjAwMTc3MiwgMC4wMDE3NzMiLCBcCi0gICAgICAgICAgIjAuMDAxNzU0LCAwLjAwMTc2NCwgMC4wMDE3ODMsIDAuMDAxNzg4LCAwLjAwMTc5MSwgMC4wMDE3OTQsIDAuMDAxNzk1IiwgXAotICAgICAgICAgICIwLjAwMTc1NiwgMC4wMDE3NjYsIDAuMDAxNzg2LCAwLjAwMTc5MiwgMC4wMDE3OTUsIDAuMDAxNzk4LCAwLjAwMTc5OSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjU5NywgMC4wMDI2MDUsIDAuMDAyNjE1LCAwLjAwMjYxNywgMC4wMDI2MTgsIDAuMDAyNjE4LCAwLjAwMjYxOSIsIFwKLSAgICAgICAgICAiMC4wMDI1NzgsIDAuMDAyNTg2LCAwLjAwMjU5NywgMC4wMDI1OTksIDAuMDAyNiwgMC4wMDI2MDEsIDAuMDAyNjAxIiwgXAotICAgICAgICAgICIwLjAwMjU2OSwgMC4wMDI1NzgsIDAuMDAyNTksIDAuMDAyNTkyLCAwLjAwMjU5NCwgMC4wMDI1OTUsIDAuMDAyNTk1IiwgXAotICAgICAgICAgICIwLjAwMjU2MywgMC4wMDI1NzQsIDAuMDAyNTg5LCAwLjAwMjU5MSwgMC4wMDI1OTMsIDAuMDAyNTk0LCAwLjAwMjU5NSIsIFwKLSAgICAgICAgICAiMC4wMDI1NjMsIDAuMDAyNTczLCAwLjAwMjU4OCwgMC4wMDI1OTEsIDAuMDAyNTkzLCAwLjAwMjU5NSwgMC4wMDI1OTUiLCBcCi0gICAgICAgICAgIjAuMDAyNTYsIDAuMDAyNTcyLCAwLjAwMjU5LCAwLjAwMjU5NCwgMC4wMDI1OTYsIDAuMDAyNTk4LCAwLjAwMjU5OCIsIFwKLSAgICAgICAgICAiMC4wMDI1NjEsIDAuMDAyNTc1LCAwLjAwMjU5NSwgMC4wMDI1OTksIDAuMDAyNjAyLCAwLjAwMjYwNCwgMC4wMDI2MDUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMU4iOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTU3MiwgMC4wMDE1NzYsIDAuMDAxNTgxLCAwLjAwMTU4NCwgMC4wMDE1ODIsIDAuMDAxNTgzLCAwLjAwMTU4MiIsIFwKLSAgICAgICAgICAiMC4wMDE1NCwgMC4wMDE1NDYsIDAuMDAxNTUzLCAwLjAwMTU1NSwgMC4wMDE1NTUsIDAuMDAxNTU2LCAwLjAwMTU1NiIsIFwKLSAgICAgICAgICAiMC4wMDE1MjUsIDAuMDAxNTMzLCAwLjAwMTU0NSwgMC4wMDE1NDcsIDAuMDAxNTQ5LCAwLjAwMTU1LCAwLjAwMTU1IiwgXAotICAgICAgICAgICIwLjAwMTUyNSwgMC4wMDE1MzMsIDAuMDAxNTQ4LCAwLjAwMTU1MSwgMC4wMDE1NTMsIDAuMDAxNTU0LCAwLjAwMTU1NSIsIFwKLSAgICAgICAgICAiMC4wMDE1MzIsIDAuMDAxNTQyLCAwLjAwMTU1NywgMC4wMDE1NjEsIDAuMDAxNTYzLCAwLjAwMTU2NSwgMC4wMDE1NjUiLCBcCi0gICAgICAgICAgIjAuMDAxNTM3LCAwLjAwMTU0NywgMC4wMDE1NjUsIDAuMDAxNTcsIDAuMDAxNTcyLCAwLjAwMTU3NSwgMC4wMDE1NzUiLCBcCi0gICAgICAgICAgIjAuMDAxNTU0LCAwLjAwMTU2NiwgMC4wMDE1ODYsIDAuMDAxNTkxLCAwLjAwMTU5NCwgMC4wMDE1OTcsIDAuMDAxNTk4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyNDA2LCAwLjAwMjQxNCwgMC4wMDI0MjYsIDAuMDAyNDI4LCAwLjAwMjQyOSwgMC4wMDI0MywgMC4wMDI0MyIsIFwKLSAgICAgICAgICAiMC4wMDIzOCwgMC4wMDIzODksIDAuMDAyNDAyLCAwLjAwMjQwNSwgMC4wMDI0MDYsIDAuMDAyNDA3LCAwLjAwMjQwOCIsIFwKLSAgICAgICAgICAiMC4wMDIzNzIsIDAuMDAyMzg0LCAwLjAwMjQsIDAuMDAyNDA0LCAwLjAwMjQwNiwgMC4wMDI0MDcsIDAuMDAyNDA4IiwgXAotICAgICAgICAgICIwLjAwMjM3OCwgMC4wMDIzOSwgMC4wMDI0MDcsIDAuMDAyNDExLCAwLjAwMjQxMywgMC4wMDI0MTUsIDAuMDAyNDE2IiwgXAotICAgICAgICAgICIwLjAwMjM4MSwgMC4wMDIzOTYsIDAuMDAyNDE3LCAwLjAwMjQyMiwgMC4wMDI0MjUsIDAuMDAyNDI3LCAwLjAwMjQyOCIsIFwKLSAgICAgICAgICAiMC4wMDIzOTUsIDAuMDAyNDExLCAwLjAwMjQzNiwgMC4wMDI0NDIsIDAuMDAyNDQ2LCAwLjAwMjQ0OSwgMC4wMDI0NSIsIFwKLSAgICAgICAgICAiMC4wMDI0LCAwLjAwMjQxNCwgMC4wMDI0NDIsIDAuMDAyNDQ4LCAwLjAwMjQ1MiwgMC4wMDI0NTUsIDAuMDAyNDU2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTkyMSwgMC4wMDE5MjMsIDAuMDAxOTI1LCAwLjAwMTkyNSwgMC4wMDE5MjUsIDAuMDAxOTI1LCAwLjAwMTkyNSIsIFwKLSAgICAgICAgICAiMC4wMDE5MDcsIDAuMDAxOTEzLCAwLjAwMTkyMywgMC4wMDE5MjMsIDAuMDAxOTI0LCAwLjAwMTkyNCwgMC4wMDE5MjUiLCBcCi0gICAgICAgICAgIjAuMDAxODk2LCAwLjAwMTkwNSwgMC4wMDE5MTYsIDAuMDAxOTIsIDAuMDAxOTI0LCAwLjAwMTkyNSwgMC4wMDE5MjQiLCBcCi0gICAgICAgICAgIjAuMDAxODg4LCAwLjAwMTg5OCwgMC4wMDE5MTUsIDAuMDAxOTE5LCAwLjAwMTkyLCAwLjAwMTkyMiwgMC4wMDE5MjQiLCBcCi0gICAgICAgICAgIjAuMDAxODgzLCAwLjAwMTg5MiwgMC4wMDE5MTIsIDAuMDAxOTE2LCAwLjAwMTkyLCAwLjAwMTkyMywgMC4wMDE5MjIiLCBcCi0gICAgICAgICAgIjAuMDAxODgsIDAuMDAxODg4LCAwLjAwMTkwOCwgMC4wMDE5MTMsIDAuMDAxOTE2LCAwLjAwMTkyLCAwLjAwMTkyMSIsIFwKLSAgICAgICAgICAiMC4wMDE4OCwgMC4wMDE4ODYsIDAuMDAxOTA0LCAwLjAwMTkxMSwgMC4wMDE5MTUsIDAuMDAxOTE5LCAwLjAwMTkyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwMjU0LCAwLjAwMDI1NSwgMC4wMDAyNTYsIDAuMDAwMjU2LCAwLjAwMDI1NiwgMC4wMDAyNTYsIDAuMDAwMjU2IiwgXAotICAgICAgICAgICIwLjAwMDIzMiwgMC4wMDAyMzcsIDAuMDAwMjQyLCAwLjAwMDI0MywgMC4wMDAyNDQsIDAuMDAwMjQ0LCAwLjAwMDI0NCIsIFwKLSAgICAgICAgICAiMC4wMDAyMjQsIDAuMDAwMjI5LCAwLjAwMDIzOCwgMC4wMDAyNCwgMC4wMDAyNDEsIDAuMDAwMjQyLCAwLjAwMDI0MiIsIFwKLSAgICAgICAgICAiMC4wMDAyMjgsIDAuMDAwMjMsIDAuMDAwMjM4LCAwLjAwMDI0LCAwLjAwMDI0MSwgMC4wMDAyNDEsIDAuMDAwMjM5IiwgXAotICAgICAgICAgICIwLjAwMDIzNCwgMC4wMDAyMzMsIDAuMDAwMjM5LCAwLjAwMDI0LCAwLjAwMDI0LCAwLjAwMDI0MSwgMC4wMDAyNDEiLCBcCi0gICAgICAgICAgIjAuMDAwMjQyLCAwLjAwMDI0LCAwLjAwMDIzOSwgMC4wMDAyNDEsIDAuMDAwMjQxLCAwLjAwMDI0MSwgMC4wMDAyNDEiLCBcCi0gICAgICAgICAgIjAuMDAwMjU2LCAwLjAwMDI0OSwgMC4wMDAyNDEsIDAuMDAwMjQzLCAwLjAwMDI0MiwgMC4wMDAyNDIsIDAuMDAwMjQyIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogQU9JMzFYTCAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChBT0kzMVhMKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMDgxNDI3MzsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQTApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDU1MzY2MjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA1NTE5NTE7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNTUzNjYyOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDIyNiwgMC4wMDAyMjYsIDAuMDAwMjI2LCAwLjAwMDIyNiwgMC4wMDAyMjYsIDAuMDAwMjI2LCAwLjAwMDIyNiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDIyNywgMC4wMDAyMjcsIDAuMDAwMjI3LCAwLjAwMDIyNywgMC4wMDAyMjcsIDAuMDAwMjI3LCAwLjAwMDIyNyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQTEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDU2NzY4NjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA1NjU4Njg7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNTY3Njg2OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDIyNiwgMC4wMDAyMjYsIDAuMDAwMjI2LCAwLjAwMDIyNiwgMC4wMDAyMjYsIDAuMDAwMjI2LCAwLjAwMDIyNiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDIyNywgMC4wMDAyMjcsIDAuMDAwMjI3LCAwLjAwMDIyNywgMC4wMDAyMjcsIDAuMDAwMjI3LCAwLjAwMDIyNyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQTIpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDU4NzAwNDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA1ODMzNjg7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNTg3MDA0OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDExNywgMC4wMDAxMTcsIDAuMDAwMTE3LCAwLjAwMDExNiwgMC4wMDAxMTYsIDAuMDAwMTE2LCAwLjAwMDExNyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDI1NywgMC4wMDAyNTcsIDAuMDAwMjU3LCAwLjAwMDI1NywgMC4wMDAyNTcsIDAuMDAwMjU3LCAwLjAwMDI1NyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQjApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYwMDQxOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYwMDIwODsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2MDA0MTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAwNTQsIDAuMDAwMDU0LCAwLjAwMDA1NCwgMC4wMDAwNTQsIDAuMDAwMDU0LCAwLjAwMDA1NCwgMC4wMDAwNTQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA1NTEsIDAuMDAwNTUxLCAwLjAwMDU1MSwgMC4wMDA1NTEsIDAuMDAwNTUxLCAwLjAwMDU1MSwgMC4wMDA1NTEiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4wNTgwMzQzOwotICAgIGZ1bmN0aW9uIDogIighKCgoQTAgQTEpIEEyKStCMCkpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTYzMjg5LCAwLjE5MDI2NiwgMC40MzIzMzksIDAuODM1NTM2LCAxLjIzNzc3LCAyLjE3ODAzLCAyLjcxNDg1IiwgXAotICAgICAgICAgICIwLjE3Mjk3MywgMC4xOTk5MTcsIDAuNDQxODc5LCAwLjg0NDc3NywgMS4yNDc3NSwgMi4xODc4MiwgMi43MjQwMyIsIFwKLSAgICAgICAgICAiMC4xODM2MjIsIDAuMjEwNTg2LCAwLjQ1MjUzLCAwLjg1NTU1OCwgMS4yNTgyOSwgMi4xOTgxNCwgMi43MzUwOSIsIFwKLSAgICAgICAgICAiMC4xOTM2MzQsIDAuMjIwNTYyLCAwLjQ2MjQ0LCAwLjg2NTg2MSwgMS4yNjg0MiwgMi4yMDkwOSwgMi43NDYwMiIsIFwKLSAgICAgICAgICAiMC4yMDM1MjUsIDAuMjMwNDU5LCAwLjQ3MjQ3OSwgMC44NzU3NjEsIDEuMjc4NzIsIDIuMjE4NzEsIDIuNzU1NSIsIFwKLSAgICAgICAgICAiMC4yMTkzNjIsIDAuMjQ2MjEzLCAwLjQ4ODI1NywgMC44OTEzMDYsIDEuMjk0MjEsIDIuMjM0NTcsIDIuNzcxMDgiLCBcCi0gICAgICAgICAgIjAuMjMyODY0LCAwLjI1OTg3OCwgMC41MDIwMDMsIDAuOTA1MzYyLCAxLjMwODA3LCAyLjI0NzU1LCAyLjc4NTI1Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMwMjA3NiwgMC4zNTY3MTEsIDAuODQ3Mjc0LCAxLjY2NTI1LCAyLjQ4MjksIDQuMzg5NjQsIDUuNDc5NDgiLCBcCi0gICAgICAgICAgIjAuMzAyMTc5LCAwLjM1Njc5NCwgMC44NDczNTQsIDEuNjY1MDksIDIuNDg1MjMsIDQuMzg5MzcsIDUuNDc4OTkiLCBcCi0gICAgICAgICAgIjAuMzAyMTU5LCAwLjM1NjcyMSwgMC44NDczODEsIDEuNjY1NTgsIDIuNDgzMjgsIDQuMzg5NTYsIDUuNDc5OTIiLCBcCi0gICAgICAgICAgIjAuMzAyMzk5LCAwLjM1NjYzMSwgMC44NDcxMTYsIDEuNjY1NDUsIDIuNDgzMTMsIDQuMzkwNDQsIDUuNDgwMTMiLCBcCi0gICAgICAgICAgIjAuMzAzNTgxLCAwLjM1NzM2NiwgMC44NDc0NDgsIDEuNjY1NTIsIDIuNDg0MTIsIDQuMzkwMTQsIDUuNDc5NzMiLCBcCi0gICAgICAgICAgIjAuMzA3MzQxLCAwLjM2MDE2NCwgMC44NDcyNTUsIDEuNjY1LCAyLjQ4MzExLCA0LjM5MDE5LCA1LjQ3OTg1IiwgXAotICAgICAgICAgICIwLjMxMTY4OCwgMC4zNjQzMjQsIDAuODQ3NDksIDEuNjY1MDgsIDIuNDgzMywgNC4zODk4LCA1LjQ4MDI0Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIyNjg2MywgMC4yNjQwNjQsIDAuNTk4MTIzLCAxLjE1Mzk0LCAxLjcwOTg5LCAzLjAwNTMxLCAzLjc0NTIxIiwgXAotICAgICAgICAgICIwLjIzNTMzNiwgMC4yNzI1ODEsIDAuNjA2NTQ0LCAxLjE2MjM1LCAxLjcxODI2LCAzLjAxMzczLCAzLjc1MzY1IiwgXAotICAgICAgICAgICIwLjI0NDU4LCAwLjI4MTgyNiwgMC42MTU5MDksIDEuMTcyMywgMS43Mjc4NCwgMy4wMjMwNywgMy43NjI5IiwgXAotICAgICAgICAgICIwLjI1MzUzMywgMC4yOTA3NjIsIDAuNjI0ODQ3LCAxLjE4MTQsIDEuNzM2NywgMy4wMzIxNCwgMy43NzE5NCIsIFwKLSAgICAgICAgICAiMC4yNjI0NjQsIDAuMjk5NzUzLCAwLjYzNDAwNywgMS4xODk4MiwgMS43NDU2NSwgMy4wNDExLCAzLjc4MSIsIFwKLSAgICAgICAgICAiMC4yNzY2ODEsIDAuMzEzOTQ0LCAwLjY0ODE0MiwgMS4yMDQsIDEuNzU5NjYsIDMuMDU1NDQsIDMuNzk1NDgiLCBcCi0gICAgICAgICAgIjAuMjg5MzMzLCAwLjMyNjM4OCwgMC42NjA4MDQsIDEuMjE2NDEsIDEuNzcyMDcsIDMuMDY3OTYsIDMuODA4MDYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuNDA4OTI2LCAwLjQ4MTE4NywgMS4xMzM4MiwgMi4yMjA4MywgMy4zMDc3NywgNS44NDQ3MSwgNy4yOTMxNSIsIFwKLSAgICAgICAgICAiMC40MDg5MDcsIDAuNDgxNTAzLCAxLjEzMzgxLCAyLjIyMDgzLCAzLjMwNzgyLCA1Ljg0NDQsIDcuMjkyODYiLCBcCi0gICAgICAgICAgIjAuNDA4NjY5LCAwLjQ4MTE5LCAxLjEzNDQ0LCAyLjIyMDgyLCAzLjMwNzc2LCA1Ljg0NTI0LCA3LjI5MzU1IiwgXAotICAgICAgICAgICIwLjQwODkxOCwgMC40ODE0NjksIDEuMTMzNzEsIDIuMjIwODUsIDMuMzA4NjksIDUuODQ1MTYsIDcuMjkzNDUiLCBcCi0gICAgICAgICAgIjAuNDA4OTk4LCAwLjQ4MTMwNCwgMS4xMzQyOCwgMi4yMjE5MywgMy4zMDc4LCA1Ljg0NDMyLCA3LjI5MzQ5IiwgXAotICAgICAgICAgICIwLjQxMTI5OCwgMC40ODI1OTksIDEuMTMzNDgsIDIuMjIwNzUsIDMuMzA5MjEsIDUuODQ0MTMsIDcuMjkyNzciLCBcCi0gICAgICAgICAgIjAuNDEzOTA1LCAwLjQ4NDk1OCwgMS4xMzM4NiwgMi4yMjI0MiwgMy4zMDk2OSwgNS44NDQ0NSwgNy4yOTM3NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTYwMTYyLCAwLjE4NzA0NywgMC40Mjg4ODIsIDAuODMyMzIxLCAxLjIzNDc0LCAyLjE3NDksIDIuNzExNDEiLCBcCi0gICAgICAgICAgIjAuMTY5OTY5LCAwLjE5NjgxLCAwLjQzODc2NSwgMC44NDE2MzQsIDEuMjQ0NDUsIDIuMTg0NTEsIDIuNzIwOCIsIFwKLSAgICAgICAgICAiMC4xODA1NzgsIDAuMjA3NTU3LCAwLjQ0OTM0NiwgMC44NTIyNzIsIDEuMjU0OTMsIDIuMTk0OCwgMi43MzE3NiIsIFwKLSAgICAgICAgICAiMC4xOTA3MjIsIDAuMjE3NTg0LCAwLjQ1OTQwMiwgMC44NjI2OTgsIDEuMjY1MjQsIDIuMjA1OTEsIDIuNzQyODUiLCBcCi0gICAgICAgICAgIjAuMjAwNTU2LCAwLjIyNzQ1MiwgMC40NjkzMTgsIDAuODcyMjE2LCAxLjI3NTcxLCAyLjIxNTc1LCAyLjc1MTMyIiwgXAotICAgICAgICAgICIwLjIxNjEyNSwgMC4yNDMxNDUsIDAuNDg1MDk0LCAwLjg4ODAyMywgMS4yOTA2NiwgMi4yMzI0NywgMi43NjcwNSIsIFwKLSAgICAgICAgICAiMC4yMjk4NCwgMC4yNTY3MTEsIDAuNDk4NzksIDAuOTAxNzkzLCAxLjMwNDc0LCAyLjI0NTA5LCAyLjc4MTMxIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI5ODM0LCAwLjM1MzAyOSwgMC44NDM3MTUsIDEuNjYxNDYsIDIuNDc4MjYsIDQuMzg1MzMsIDUuNDc1NyIsIFwKLSAgICAgICAgICAiMC4yOTg1MTgsIDAuMzUyOTM5LCAwLjg0Mzk2MywgMS42NjExNiwgMi40Nzg0OCwgNC4zODU1MSwgNS40NzQ3MiIsIFwKLSAgICAgICAgICAiMC4yOTg1MTUsIDAuMzUzMDIyLCAwLjg0MzY4OCwgMS42NjE2NywgMi40Nzg1LCA0LjM4NTc1LCA1LjQ3NjUzIiwgXAotICAgICAgICAgICIwLjI5ODc2MSwgMC4zNTMxNTgsIDAuODQ0MDkyLCAxLjY2MTgsIDIuNDc4OTcsIDQuMzg2NDgsIDUuNDc0OTMiLCBcCi0gICAgICAgICAgIjAuMjk5OTIsIDAuMzUzODUsIDAuODQ0MDc1LCAxLjY2MTU0LCAyLjQ3ODc0LCA0LjM4NTI0LCA1LjQ3NDMiLCBcCi0gICAgICAgICAgIjAuMzAzNTkyLCAwLjM1NjgzMiwgMC44NDQyNTQsIDEuNjYxNTksIDIuNDc4MDQsIDQuMzg2OSwgNS40NzQyMiIsIFwKLSAgICAgICAgICAiMC4zMDgxNTYsIDAuMzYwNzI1LCAwLjg0MzkzOCwgMS42NjEzNiwgMi40NzkxMywgNC4zODUzMiwgNS40NzczOCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMjQ1MDYsIDAuMjYxNjI3LCAwLjU5NTcyNSwgMS4xNTE1LCAxLjcwNzQ0LCAzLjAwMjg2LCAzLjc0Mjc4IiwgXAotICAgICAgICAgICIwLjIzMzA0OSwgMC4yNzAyMzEsIDAuNjA0MzE3LCAxLjE2MDY3LCAxLjcxNTgsIDMuMDEyMTEsIDMuNzUxMTMiLCBcCi0gICAgICAgICAgIjAuMjQzNzAzLCAwLjI4MDkyNywgMC42MTUwNDMsIDEuMTcwNywgMS43MjY2MywgMy4wMjIzMiwgMy43NjIxMyIsIFwKLSAgICAgICAgICAiMC4yNTQxNiwgMC4yOTE0NjEsIDAuNjI1NDc5LCAxLjE4MTU0LCAxLjczNjY0LCAzLjAzMjc5LCAzLjc3MjU5IiwgXAotICAgICAgICAgICIwLjI2NDgzOCwgMC4zMDE3NDksIDAuNjM2NDkyLCAxLjE5Mjc5LCAxLjc0ODI4LCAzLjA0MzUyLCAzLjc4MzU0IiwgXAotICAgICAgICAgICIwLjI4MTY1MywgMC4zMTg5ODQsIDAuNjUzMzE4LCAxLjIwOTE2LCAxLjc2NTE2LCAzLjA2MDI2LCAzLjgwMDYxIiwgXAotICAgICAgICAgICIwLjI5NjQxMSwgMC4zMzM2NzksIDAuNjY4MzQ4LCAxLjIyNDU2LCAxLjc3OTgzLCAzLjA3NTY1LCAzLjgxNTciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuNDA4NjcxLCAwLjQ4MTUwNSwgMS4xMzM4OCwgMi4yMjA4MywgMy4zMDc3OCwgNS44NDQ0OCwgNy4yOTMiLCBcCi0gICAgICAgICAgIjAuNDA4NjY0LCAwLjQ4MTE4NywgMS4xMzM4OSwgMi4yMjA5OCwgMy4zMDg3MSwgNS44NDU2OCwgNy4yOTMwNyIsIFwKLSAgICAgICAgICAiMC40MDg5NDcsIDAuNDgxNTU4LCAxLjEzMzg4LCAyLjIyMDcyLCAzLjMwNzg3LCA1Ljg0NTIzLCA3LjI5MjU4IiwgXAotICAgICAgICAgICIwLjQwODkxNSwgMC40ODExODMsIDEuMTMzNDgsIDIuMjIxODEsIDMuMzA5OTYsIDUuODQ0MTMsIDcuMjkzNDEiLCBcCi0gICAgICAgICAgIjAuNDA5MzEsIDAuNDgxNTQzLCAxLjEzMzg4LCAyLjIyMDc4LCAzLjMwOTEyLCA1Ljg0NDcsIDcuMjkyNDgiLCBcCi0gICAgICAgICAgIjAuNDExNTQsIDAuNDgyNzcsIDEuMTMzNzksIDIuMjIwNzQsIDMuMzA3ODcsIDUuODQ0MDksIDcuMjkzNzQiLCBcCi0gICAgICAgICAgIjAuNDE1NTE5LCAwLjQ4NTY5MSwgMS4xMzM3NiwgMi4yMjA3NywgMy4zMTAwOCwgNS44NDQyMSwgNy4yOTI2NCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTU1MzE1LCAwLjE4MTcsIDAuNDIwOTc2LCAwLjgyMDQ2NCwgMS4yMTgzLCAyLjE0ODk2LCAyLjY4MDQ1IiwgXAotICAgICAgICAgICIwLjE2NDk3NiwgMC4xOTE1NTgsIDAuNDMxMDE1LCAwLjgzMDM1MSwgMS4yMjg2OSwgMi4xNTg1MiwgMi42ODk2NyIsIFwKLSAgICAgICAgICAiMC4xNzU2NzUsIDAuMjAyMjI4LCAwLjQ0MTUwOCwgMC44NDA1NzgsIDEuMjQwMTUsIDIuMTY4NzcsIDIuNzAwNjIiLCBcCi0gICAgICAgICAgIjAuMTg1NjI2LCAwLjIxMjIxOSwgMC40NTE1NzgsIDAuODUwNjMxLCAxLjI0OTA4LCAyLjE4MDA5LCAyLjcxMTYzIiwgXAotICAgICAgICAgICIwLjE5NTUwNSwgMC4yMjIxNjYsIDAuNDYxNTI3LCAwLjg2MDI2NSwgMS4yNTkxNywgMi4xODk1NCwgMi43MjA1MSIsIFwKLSAgICAgICAgICAiMC4yMTE0MjIsIDAuMjM3OTY1LCAwLjQ3NzU4NSwgMC44NzYxNzQsIDEuMjc0OTUsIDIuMjA1MDYsIDIuNzM2NzYiLCBcCi0gICAgICAgICAgIjAuMjI1MDc3LCAwLjI1MTY4OCwgMC40OTE0MDksIDAuODkwMDA0LCAxLjI4ODc5LCAyLjIxOTI3LCAyLjc1MDQzIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI5MTAwMywgMC4zNDUxMjMsIDAuODMxMDE5LCAxLjYzODYsIDIuNDQ4NTYsIDQuMzMyNDksIDUuNDExMDEiLCBcCi0gICAgICAgICAgIjAuMjkxNjg0LCAwLjM0NTY2MSwgMC44Mjk3MTgsIDEuNjM4MDEsIDIuNDQ1ODQsIDQuMzQzNTMsIDUuNDE4NzUiLCBcCi0gICAgICAgICAgIjAuMjkxMTA2LCAwLjM0NTYyMiwgMC44MzE2NjMsIDEuNjM3ODYsIDIuNDQ2MTgsIDQuMzQyNDQsIDUuNDEzODEiLCBcCi0gICAgICAgICAgIjAuMjkxNDY0LCAwLjM0NTQ4NiwgMC44MzEyNjUsIDEuNjM4MjcsIDIuNDQ4MiwgNC4zMzMzNywgNS40MDk1OSIsIFwKLSAgICAgICAgICAiMC4yOTMxODcsIDAuMzQ2NjEyLCAwLjgzMDM0LCAxLjY0MTYxLCAyLjQ0ODQzLCA0LjMzMTg3LCA1LjQxMzI2IiwgXAotICAgICAgICAgICIwLjI5NjY3LCAwLjM0OTYxNCwgMC44MzA0NDIsIDEuNjM4OTUsIDIuNDQ4MzIsIDQuMzM1MTcsIDUuNDE0MjgiLCBcCi0gICAgICAgICAgIjAuMzAxMTYzLCAwLjM1MzE5LCAwLjgzMjMyNywgMS42NDE5NSwgMi40NDc3MSwgNC4zMzE5NiwgNS40MTI5MiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMTkzMjYsIDAuMjU2NjA0LCAwLjU5MDczNSwgMS4xNDYxNSwgMS43MDI1LCAyLjk5NzgzLCAzLjczNzgiLCBcCi0gICAgICAgICAgIjAuMjI3ODc2LCAwLjI2NTE0NywgMC41OTkxOTQsIDEuMTU1MzksIDEuNzEwNjQsIDMuMDA2MDcsIDMuNzQ2MDkiLCBcCi0gICAgICAgICAgIjAuMjM4NTQ2LCAwLjI3NTcyOCwgMC42MDk3ODksIDEuMTY2MDMsIDEuNzIxMjUsIDMuMDE3NiwgMy43NTY5NCIsIFwKLSAgICAgICAgICAiMC4yNDgyNzgsIDAuMjg2NzMyLCAwLjYyMDYzNCwgMS4xNzY3OCwgMS43MzIzNSwgMy4wMjc4OCwgMy43Njc4IiwgXAotICAgICAgICAgICIwLjI2MDQ1MSwgMC4yOTc2NjYsIDAuNjMxODI2LCAxLjE4Nzk5LCAxLjc0NDA4LCAzLjAzOTAzLCAzLjc3ODk0IiwgXAotICAgICAgICAgICIwLjI3ODAzNCwgMC4zMTUyOTEsIDAuNjQ5MjM2LCAxLjIwNDkyLCAxLjc2MTE2LCAzLjA1NzIzLCAzLjc5NjUzIiwgXAotICAgICAgICAgICIwLjI5MzQ2NiwgMC4zMzA2MSwgMC42NjQ2NTcsIDEuMjIwNjUsIDEuNzc1ODgsIDMuMDcxNjgsIDMuODExNzMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuNDA4NjUsIDAuNDgxMzExLCAxLjEzMzk3LCAyLjIyMTE0LCAzLjMwNzczLCA1Ljg0NTEzLCA3LjI5MTg5IiwgXAotICAgICAgICAgICIwLjQwODY2OCwgMC40ODE1MTUsIDEuMTMzOTUsIDIuMjIwODEsIDMuMzA3NzcsIDUuODQ0MTUsIDcuMjkzNSIsIFwKLSAgICAgICAgICAiMC40MDg2NDksIDAuNDgxNDk5LCAxLjEzNDMzLCAyLjIyMTU5LCAzLjMwNzc1LCA1Ljg0NTUxLCA3LjI5MzY4IiwgXAotICAgICAgICAgICIwLjQwODU1NCwgMC40ODExODgsIDEuMTMzNDksIDIuMjIxMjUsIDMuMzA3NzYsIDUuODQ0MjIsIDcuMjkzNSIsIFwKLSAgICAgICAgICAiMC40MDk0MjcsIDAuNDgxMjY2LCAxLjEzMzg1LCAyLjIyMDc5LCAzLjMwNzc2LCA1Ljg0NDM0LCA3LjI5Mjc1IiwgXAotICAgICAgICAgICIwLjQxMzAxNywgMC40ODQwNiwgMS4xMzM0NywgMi4yMjA3NSwgMy4zMDc3NywgNS44NDU3NywgNy4yOTM4OCIsIFwKLSAgICAgICAgICAiMC40MTg0MDUsIDAuNDg3OTc0LCAxLjEzMzgsIDIuMjIwNzcsIDMuMzA5OTgsIDUuODQ0MTMsIDcuMjkyNDgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjAiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE1MjkxMSwgMC4xNzk4MTQsIDAuNDIxNjQ0LCAwLjgyNDc1OSwgMS4yMjgzMSwgMi4xNjg3OSwgMi43MDUiLCBcCi0gICAgICAgICAgIjAuMTYxOTc1LCAwLjE4ODg4MiwgMC40MzA4MTMsIDAuODM0Mjk0LCAxLjIzNjk5LCAyLjE3NTk5LCAyLjcxMzYiLCBcCi0gICAgICAgICAgIjAuMTczMTQxLCAwLjIwMDA5MywgMC40NDIwODEsIDAuODQ1NjMyLCAxLjI0ODExLCAyLjE4ODc1LCAyLjcyNTY1IiwgXAotICAgICAgICAgICIwLjE4NDQzLCAwLjIxMTQyMSwgMC40NTM1LCAwLjg1NjM0LCAxLjI1OTIzLCAyLjE5OTk1LCAyLjczNjIxIiwgXAotICAgICAgICAgICIwLjE5NTc3LCAwLjIyMjc2LCAwLjQ2NDc2NiwgMC44Njc3NTQsIDEuMjcxMTUsIDIuMjEwNjksIDIuNzQ4MDQiLCBcCi0gICAgICAgICAgIjAuMjE0MDc4LCAwLjI0MDk3NywgMC40ODI5MTMsIDAuODg2MjE5LCAxLjI4ODk3LCAyLjIyOTE4LCAyLjc2NTg4IiwgXAotICAgICAgICAgICIwLjIzMDE4NCwgMC4yNTcxMDQsIDAuNDk4ODQsIDAuOTAxODc3LCAxLjMwNDY0LCAyLjI0NTU3LCAyLjc4MjU4Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMwMjIsIDAuMzU2NzEyLCAwLjg0NzU3LCAxLjY2NTE1LCAyLjQ4MzMxLCA0LjM5MDYsIDUuNDc5MDciLCBcCi0gICAgICAgICAgIjAuMzAyMzQ5LCAwLjM1NjU4NSwgMC44NDc1NjEsIDEuNjY1MjgsIDIuNDgyNzUsIDQuMzg5NjYsIDUuNDc5NDEiLCBcCi0gICAgICAgICAgIjAuMzAxOTQ3LCAwLjM1Njg3MSwgMC44NDcyNDYsIDEuNjY1MzksIDIuNDgzMjYsIDQuMzkwNDksIDUuNDc5OTEiLCBcCi0gICAgICAgICAgIjAuMzAyODUsIDAuMzU2NjY2LCAwLjg0NzQ3MiwgMS42NjQ5OSwgMi40ODI5NSwgNC4zOTIzNywgNS40Nzk2MiIsIFwKLSAgICAgICAgICAiMC4zMDU1MywgMC4zNTg2NDgsIDAuODQ3MjQ2LCAxLjY2NSwgMi40ODI3NCwgNC4zOTA1MywgNS40ODE3MSIsIFwKLSAgICAgICAgICAiMC4zMTIzNCwgMC4zNjQzNDksIDAuODQ3MDk4LCAxLjY2NTEsIDIuNDgyODQsIDQuMzkwMDYsIDUuNDc4ODYiLCBcCi0gICAgICAgICAgIjAuMzIwNTE3LCAwLjM3MTM4NiwgMC44NDc3NjYsIDEuNjY0OTgsIDIuNDg0NTIsIDQuMzkwMjgsIDUuNDc4OTEiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc3Njk5LCAwLjA5MTUzOCwgMC4yMTYxMDEsIDAuNDIzNzE4LCAwLjYzMTI4NSwgMS4xMTU1MiwgMS4zOTE5NyIsIFwKLSAgICAgICAgICAiMC4wODc4NzcsIDAuMTAxNzE0LCAwLjIyNjMzMiwgMC40MzM4OTcsIDAuNjQxNDQyLCAxLjEyNTcsIDEuNDAyNDYiLCBcCi0gICAgICAgICAgIjAuMTAwNTYzLCAwLjExNDU3MywgMC4yMzkwMDksIDAuNDQ1NjY4LCAwLjY1MzIwMSwgMS4xMzczMywgMS40MTQzMiIsIFwKLSAgICAgICAgICAiMC4xMTM2OTUsIDAuMTI3MTY4LCAwLjI1MTg3OCwgMC40NTkzNjYsIDAuNjY1ODA4LCAxLjE0OTg5LCAxLjQyNjYiLCBcCi0gICAgICAgICAgIjAuMTI2NzA3LCAwLjE0MDQ1LCAwLjI2NDgyNiwgMC40NzIxMTMsIDAuNjc4MjEzLCAxLjE2MjQxLCAxLjQzODkxIiwgXAotICAgICAgICAgICIwLjE0NzQ5NCwgMC4xNjEzNjUsIDAuMjg0ODkxLCAwLjQ5MjY5NywgMC43MDAwNDUsIDEuMTgyMTYsIDEuNDU4NzYiLCBcCi0gICAgICAgICAgIjAuMTY1NTk5LCAwLjE3OTU3LCAwLjMwMjg1MywgMC41MTA3NjgsIDAuNzE3OTQzLCAxLjE5OTYzLCAxLjQ3NjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTU0NTU5LCAwLjE4MjE3MywgMC40MzEwMTEsIDAuODQ2MjM3LCAxLjI2MTYzLCAyLjIzNDAxLCAyLjc5MDI5IiwgXAotICAgICAgICAgICIwLjE1NDU1NiwgMC4xODIxNzQsIDAuNDMxMDc3LCAwLjg0NjI1OCwgMS4yNjE5MiwgMi4yMzQwNywgMi43ODY2NSIsIFwKLSAgICAgICAgICAiMC4xNTU5MTMsIDAuMTgyODAxLCAwLjQzMTA3NiwgMC44NDYyNiwgMS4yNjE5OSwgMi4yMzE4OSwgMi43ODU5MSIsIFwKLSAgICAgICAgICAiMC4xNTk5MDMsIDAuMTg2MTk4LCAwLjQzMTAwNCwgMC44NDYyNDEsIDEuMjYyMDYsIDIuMjMyMzIsIDIuNzg2NzgiLCBcCi0gICAgICAgICAgIjAuMTY1NTE2LCAwLjE5MDg1NiwgMC40MzEzOTksIDAuODQ2MTY5LCAxLjI2MTk5LCAyLjIzMTk1LCAyLjc4ODQ3IiwgXAotICAgICAgICAgICIwLjE3NjUyNiwgMC4yMDA5MzIsIDAuNDM0OTU4LCAwLjg0NjE4NywgMS4yNjE0OSwgMi4yMzIwMSwgMi43ODkyNyIsIFwKLSAgICAgICAgICAiMC4xODc3NSwgMC4yMTExNDUsIDAuNDQwMjI5LCAwLjg0NjQwNCwgMS4yNjE0NiwgMi4yMzIxMiwgMi43ODQ4MyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDIxMzMsIDAuMDAyMTMzLCAwLjAwMjEzMywgMC4wMDIxMzMsIDAuMDAyMTMyLCAwLjAwMjEzMSwgMC4wMDIxMyIsIFwKLSAgICAgICAgICAiMC4wMDIxMjcsIDAuMDAyMTI3LCAwLjAwMjEyOCwgMC4wMDIxMjgsIDAuMDAyMTI4LCAwLjAwMjEyNiwgMC4wMDIxMjUiLCBcCi0gICAgICAgICAgIjAuMDAyMTI1LCAwLjAwMjEyNSwgMC4wMDIxMjYsIDAuMDAyMTI2LCAwLjAwMjEyNiwgMC4wMDIxMjUsIDAuMDAyMTI0IiwgXAotICAgICAgICAgICIwLjAwMjEyMywgMC4wMDIxMjMsIDAuMDAyMTI1LCAwLjAwMjEyNSwgMC4wMDIxMjUsIDAuMDAyMTI1LCAwLjAwMjEyNCIsIFwKLSAgICAgICAgICAiMC4wMDIxMjIsIDAuMDAyMTIzLCAwLjAwMjEyNSwgMC4wMDIxMjUsIDAuMDAyMTI1LCAwLjAwMjEyNCwgMC4wMDIxMjQiLCBcCi0gICAgICAgICAgIjAuMDAyMTIxLCAwLjAwMjEyMSwgMC4wMDIxMjQsIDAuMDAyMTI1LCAwLjAwMjEyNSwgMC4wMDIxMjQsIDAuMDAyMTI0IiwgXAotICAgICAgICAgICIwLjAwMjEyLCAwLjAwMjEyMSwgMC4wMDIxMjMsIDAuMDAyMTI1LCAwLjAwMjEyNSwgMC4wMDIxMjQsIDAuMDAyMTI0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwNjA5LCAwLjAwMDYxLCAwLjAwMDYxLCAwLjAwMDYwNywgMC4wMDA2MSwgMC4wMDA2MDcsIDAuMDAwNjA2IiwgXAotICAgICAgICAgICIwLjAwMDU5NiwgMC4wMDA1OTcsIDAuMDAwNTk4LCAwLjAwMDU5NywgMC4wMDA1OTgsIDAuMDAwNTk2LCAwLjAwMDU5NSIsIFwKLSAgICAgICAgICAiMC4wMDA1OTEsIDAuMDAwNTkxLCAwLjAwMDU5NCwgMC4wMDA1OTUsIDAuMDAwNTk0LCAwLjAwMDU5MywgMC4wMDA1OTIiLCBcCi0gICAgICAgICAgIjAuMDAwNTg3LCAwLjAwMDU4OCwgMC4wMDA1OTIsIDAuMDAwNTkzLCAwLjAwMDU5MywgMC4wMDA1OTIsIDAuMDAwNTkxIiwgXAotICAgICAgICAgICIwLjAwMDU4NCwgMC4wMDA1ODUsIDAuMDAwNTksIDAuMDAwNTkyLCAwLjAwMDU5MywgMC4wMDA1OTIsIDAuMDAwNTkxIiwgXAotICAgICAgICAgICIwLjAwMDU4LCAwLjAwMDU4MiwgMC4wMDA1ODgsIDAuMDAwNTkxLCAwLjAwMDU5MSwgMC4wMDA1OTEsIDAuMDAwNTkiLCBcCi0gICAgICAgICAgIjAuMDAwNTc4LCAwLjAwMDU4LCAwLjAwMDU4NywgMC4wMDA1OSwgMC4wMDA1OTEsIDAuMDAwNTksIDAuMDAwNTkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxODgyLCAwLjAwMTg4MiwgMC4wMDE4ODIsIDAuMDAxODgyLCAwLjAwMTg4MiwgMC4wMDE4ODEsIDAuMDAxODgxIiwgXAotICAgICAgICAgICIwLjAwMTg3OSwgMC4wMDE4OCwgMC4wMDE4ODEsIDAuMDAxODgyLCAwLjAwMTg4MSwgMC4wMDE4ODEsIDAuMDAxODgxIiwgXAotICAgICAgICAgICIwLjAwMTg3NiwgMC4wMDE4NzcsIDAuMDAxODgsIDAuMDAxODgsIDAuMDAxODgxLCAwLjAwMTg4MSwgMC4wMDE4OCIsIFwKLSAgICAgICAgICAiMC4wMDE4NzMsIDAuMDAxODc0LCAwLjAwMTg3OCwgMC4wMDE4OCwgMC4wMDE4ODEsIDAuMDAxODgxLCAwLjAwMTg4IiwgXAotICAgICAgICAgICIwLjAwMTg3LCAwLjAwMTg3MiwgMC4wMDE4NzcsIDAuMDAxODc5LCAwLjAwMTg4LCAwLjAwMTg4LCAwLjAwMTg4IiwgXAotICAgICAgICAgICIwLjAwMTg2NywgMC4wMDE4NjksIDAuMDAxODc2LCAwLjAwMTg3OCwgMC4wMDE4NzksIDAuMDAxODgsIDAuMDAxODgiLCBcCi0gICAgICAgICAgIjAuMDAxODY1LCAwLjAwMTg2NywgMC4wMDE4NzQsIDAuMDAxODc4LCAwLjAwMTg3OSwgMC4wMDE4OCwgMC4wMDE4NzkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDA2MDksIDAuMDAwNjEsIDAuMDAwNjEsIDAuMDAwNjA4LCAwLjAwMDYxLCAwLjAwMDYwNywgMC4wMDA2MDYiLCBcCi0gICAgICAgICAgIjAuMDAwNTk2LCAwLjAwMDU5NywgMC4wMDA1OTgsIDAuMDAwNTk3LCAwLjAwMDU5NywgMC4wMDA1OTYsIDAuMDAwNTk0IiwgXAotICAgICAgICAgICIwLjAwMDU5MSwgMC4wMDA1OTEsIDAuMDAwNTk0LCAwLjAwMDU5NCwgMC4wMDA1OTQsIDAuMDAwNTkzLCAwLjAwMDU5MiIsIFwKLSAgICAgICAgICAiMC4wMDA1ODcsIDAuMDAwNTg4LCAwLjAwMDU5MiwgMC4wMDA1OTMsIDAuMDAwNTkzLCAwLjAwMDU5MiwgMC4wMDA1OTEiLCBcCi0gICAgICAgICAgIjAuMDAwNTg0LCAwLjAwMDU4NSwgMC4wMDA1OTEsIDAuMDAwNTkyLCAwLjAwMDU5MiwgMC4wMDA1OTIsIDAuMDAwNTkxIiwgXAotICAgICAgICAgICIwLjAwMDU4MSwgMC4wMDA1ODMsIDAuMDAwNTg5LCAwLjAwMDU5MSwgMC4wMDA1OTEsIDAuMDAwNTkxLCAwLjAwMDU5IiwgXAotICAgICAgICAgICIwLjAwMDU4LCAwLjAwMDU4MSwgMC4wMDA1ODgsIDAuMDAwNTksIDAuMDAwNTkxLCAwLjAwMDU5LCAwLjAwMDU5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTIiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTYsIDAuMDAxNjAxLCAwLjAwMTYwMSwgMC4wMDE2MDEsIDAuMDAxNjAxLCAwLjAwMTYwMSwgMC4wMDE2MDEiLCBcCi0gICAgICAgICAgIjAuMDAxNjAxLCAwLjAwMTYwMiwgMC4wMDE2MDUsIDAuMDAxNjA2LCAwLjAwMTYwNywgMC4wMDE2MDcsIDAuMDAxNjA3IiwgXAotICAgICAgICAgICIwLjAwMTU5NywgMC4wMDE1OTksIDAuMDAxNjA0LCAwLjAwMTYwNiwgMC4wMDE2MDcsIDAuMDAxNjA3LCAwLjAwMTYwNyIsIFwKLSAgICAgICAgICAiMC4wMDE1OTMsIDAuMDAxNTk0LCAwLjAwMTYwMiwgMC4wMDE2MDYsIDAuMDAxNjA2LCAwLjAwMTYwNywgMC4wMDE2MDgiLCBcCi0gICAgICAgICAgIjAuMDAxNTg5LCAwLjAwMTU5MiwgMC4wMDE2MDEsIDAuMDAxNjA1LCAwLjAwMTYwNSwgMC4wMDE2MDcsIDAuMDAxNjA3IiwgXAotICAgICAgICAgICIwLjAwMTU4NCwgMC4wMDE1ODcsIDAuMDAxNTk4LCAwLjAwMTYwMywgMC4wMDE2MDUsIDAuMDAxNjA3LCAwLjAwMTYwNyIsIFwKLSAgICAgICAgICAiMC4wMDE1OCwgMC4wMDE1ODMsIDAuMDAxNTk2LCAwLjAwMTYwMiwgMC4wMDE2MDQsIDAuMDAxNjA2LCAwLjAwMTYwNyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDYwOSwgMC4wMDA2MSwgMC4wMDA2MSwgMC4wMDA2MDksIDAuMDAwNjEsIDAuMDAwNjA3LCAwLjAwMDYwOCIsIFwKLSAgICAgICAgICAiMC4wMDA1OTYsIDAuMDAwNTk3LCAwLjAwMDU5OCwgMC4wMDA1OTcsIDAuMDAwNTk2LCAwLjAwMDU5NiwgMC4wMDA1OTUiLCBcCi0gICAgICAgICAgIjAuMDAwNTkxLCAwLjAwMDU5MSwgMC4wMDA1OTQsIDAuMDAwNTk0LCAwLjAwMDU5NSwgMC4wMDA1OTMsIDAuMDAwNTkyIiwgXAotICAgICAgICAgICIwLjAwMDU4NSwgMC4wMDA1ODksIDAuMDAwNTkyLCAwLjAwMDU5MywgMC4wMDA1OTQsIDAuMDAwNTkzLCAwLjAwMDU5MSIsIFwKLSAgICAgICAgICAiMC4wMDA1ODcsIDAuMDAwNTg4LCAwLjAwMDU5MiwgMC4wMDA1OTMsIDAuMDAwNTkzLCAwLjAwMDU5MiwgMC4wMDA1OTEiLCBcCi0gICAgICAgICAgIjAuMDAwNTg4LCAwLjAwMDU4OSwgMC4wMDA1OTEsIDAuMDAwNTkzLCAwLjAwMDU5MiwgMC4wMDA1OTIsIDAuMDAwNTkxIiwgXAotICAgICAgICAgICIwLjAwMDU5MiwgMC4wMDA1OTIsIDAuMDAwNTkzLCAwLjAwMDU5MywgMC4wMDA1OTMsIDAuMDAwNTkxLCAwLjAwMDU5MSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDE2MDUsIDAuMDAxNjA1LCAwLjAwMTYwNiwgMC4wMDE2MDYsIDAuMDAxNjA2LCAwLjAwMTYwNSwgMC4wMDE2MDQiLCBcCi0gICAgICAgICAgIjAuMDAxNTk4LCAwLjAwMTU5OSwgMC4wMDE2MDMsIDAuMDAxNjA0LCAwLjAwMTYwNSwgMC4wMDE2MDQsIDAuMDAxNjA0IiwgXAotICAgICAgICAgICIwLjAwMTU5MiwgMC4wMDE1OTMsIDAuMDAxNiwgMC4wMDE2MDMsIDAuMDAxNjAzLCAwLjAwMTYwMywgMC4wMDE2MDIiLCBcCi0gICAgICAgICAgIjAuMDAxNTg4LCAwLjAwMTU5LCAwLjAwMTU5OCwgMC4wMDE2MDEsIDAuMDAxNjAyLCAwLjAwMTYwMywgMC4wMDE2MDIiLCBcCi0gICAgICAgICAgIjAuMDAxNTg3LCAwLjAwMTU4OSwgMC4wMDE1OTcsIDAuMDAxNjAxLCAwLjAwMTYwMiwgMC4wMDE2MDIsIDAuMDAxNjAyIiwgXAotICAgICAgICAgICIwLjAwMTU4OSwgMC4wMDE1OSwgMC4wMDE1OTYsIDAuMDAxNiwgMC4wMDE2MDEsIDAuMDAxNjAyLCAwLjAwMTYwMiIsIFwKLSAgICAgICAgICAiMC4wMDE1OTQsIDAuMDAxNTk0LCAwLjAwMTU5NiwgMC4wMDE1OTksIDAuMDAxNjAxLCAwLjAwMTYwMiwgMC4wMDE2MDEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDAwNjQsIDAuMDAwMDY1LCAwLjAwMDA2NiwgMC4wMDAwNjYsIDAuMDAwMDY3LCAwLjAwMDA2NywgMC4wMDAwNjciLCBcCi0gICAgICAgICAgIjAuMDAwMDY2LCAwLjAwMDA2OCwgMC4wMDAwNzQsIDAuMDAwMDc2LCAwLjAwMDA3NiwgMC4wMDAwNzcsIDAuMDAwMDc3IiwgXAotICAgICAgICAgICIwLjAwMDA2MSwgMC4wMDAwNjQsIDAuMDAwMDczLCAwLjAwMDA3NywgMC4wMDAwNzksIDAuMDAwMDgsIDAuMDAwMDgiLCBcCi0gICAgICAgICAgIjAuMDAwMDU3LCAwLjAwMDA1OSwgMC4wMDAwNzEsIDAuMDAwMDc2LCAwLjAwMDA3OCwgMC4wMDAwOCwgMC4wMDAwOCIsIFwKLSAgICAgICAgICAiMC4wMDAwNTUsIDAuMDAwMDU4LCAwLjAwMDA3LCAwLjAwMDA3NSwgMC4wMDAwNzgsIDAuMDAwMDc5LCAwLjAwMDA4IiwgXAotICAgICAgICAgICIwLjAwMDA1NywgMC4wMDAwNTksIDAuMDAwMDY4LCAwLjAwMDA3NCwgMC4wMDAwNzcsIDAuMDAwMDc5LCAwLjAwMDA4IiwgXAotICAgICAgICAgICIwLjAwMDA2MSwgMC4wMDAwNjIsIDAuMDAwMDY5LCAwLjAwMDA3NSwgMC4wMDAwNzcsIDAuMDAwMDc5LCAwLjAwMDA4Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogQU9JMzNYTCAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChBT0kzM1hMKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMTE4MDE3OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNTg0MjU0OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDU4MjMxNTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA1ODQyNTQ7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjI2LCAwLjAwMDIyNiwgMC4wMDAyMjYsIDAuMDAwMjI2LCAwLjAwMDIyNiwgMC4wMDAyMjYsIDAuMDAwMjI2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjI3LCAwLjAwMDIyNywgMC4wMDAyMjcsIDAuMDAwMjI3LCAwLjAwMDIyNywgMC4wMDAyMjcsIDAuMDAwMjI3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihBMSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjI0MzAyOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYyMjUyODsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2MjQzMDI7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjI2LCAwLjAwMDIyNiwgMC4wMDAyMjYsIDAuMDAwMjI2LCAwLjAwMDIyNiwgMC4wMDAyMjYsIDAuMDAwMjI2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjI3LCAwLjAwMDIyNywgMC4wMDAyMjcsIDAuMDAwMjI3LCAwLjAwMDIyNywgMC4wMDAyMjcsIDAuMDAwMjI3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihBMikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjM2NTg1OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYzMjgwNTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2MzY1ODU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMTM1LCAwLjAwMDEzNSwgMC4wMDAxMzUsIDAuMDAwMTM1LCAwLjAwMDEzNSwgMC4wMDAxMzUsIDAuMDAwMTM1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjU3LCAwLjAwMDI1NywgMC4wMDAyNTcsIDAuMDAwMjU3LCAwLjAwMDI1NywgMC4wMDAyNTksIDAuMDAwMjU3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjkzODE1OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDY5MzgxNTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2OTIzODI7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjI2LCAwLjAwMDIyNiwgMC4wMDAyMjYsIDAuMDAwMjI2LCAwLjAwMDIyNiwgMC4wMDAyMjYsIDAuMDAwMjI2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjI3LCAwLjAwMDIyNywgMC4wMDAyMjcsIDAuMDAwMjI3LCAwLjAwMDIyNywgMC4wMDAyMjcsIDAuMDAwMjI3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCMSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjg5MjI0OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDY4OTIyNDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2ODgwODY7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjI2LCAwLjAwMDIyNiwgMC4wMDAyMjYsIDAuMDAwMjI2LCAwLjAwMDIyNiwgMC4wMDAyMjYsIDAuMDAwMjI2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjI3LCAwLjAwMDIyNywgMC4wMDAyMjcsIDAuMDAwMjI3LCAwLjAwMDIyNywgMC4wMDAyMjcsIDAuMDAwMjI3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCMikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjQ3Nzg3OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDY0NzQ3MzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2NDc3ODc7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMTI5LCAwLjAwMDEyOCwgMC4wMDAxMjgsIDAuMDAwMTI4LCAwLjAwMDEyOCwgMC4wMDAxMjgsIDAuMDAwMTI4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjU3LCAwLjAwMDI1NywgMC4wMDAyNTcsIDAuMDAwMjU3LCAwLjAwMDI1NywgMC4wMDAyNTcsIDAuMDAwMjU3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMDUxNjg2NjsKLSAgICBmdW5jdGlvbiA6ICIoISgoKEIwIEIxKSBCMikrKChBMCBBMSkgQTIpKSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNzk2NCwgMC4yMDY1NjksIDAuNDQ4Njc3LCAwLjg1MTg2LCAxLjI1NTQ4LCAyLjE5NjA3LCAyLjczMjM3IiwgXAotICAgICAgICAgICIwLjE4OTQ3OCwgMC4yMTY0NjQsIDAuNDU4NDgyLCAwLjg2MTc2MiwgMS4yNjQzNiwgMi4yMDQxMiwgMi43NDEzMyIsIFwKLSAgICAgICAgICAiMC4yMDA2MjEsIDAuMjI3NTYxLCAwLjQ2OTc3MywgMC44NzI4NTYsIDEuMjc2MjIsIDIuMjE2ODEsIDIuNzUzIiwgXAotICAgICAgICAgICIwLjIxMDk4MSwgMC4yMzc5NDEsIDAuNDgwMjQ0LCAwLjg4MzQxOCwgMS4yODY3NCwgMi4yMjcwMSwgMi43NjMzNiIsIFwKLSAgICAgICAgICAiMC4yMjEwMSwgMC4yNDgsIDAuNDkwMjI3LCAwLjg5MzA0OSwgMS4yOTY0OCwgMi4yMzY0NSwgMi43NzM2NiIsIFwKLSAgICAgICAgICAiMC4yMzY3OTEsIDAuMjYzNzQsIDAuNTA1OTYyLCAwLjkwOTEyNiwgMS4zMTE3NywgMi4yNTE3OCwgMi43ODkyNiIsIFwKLSAgICAgICAgICAiMC4yNTA0NzYsIDAuMjc3NTcyLCAwLjUxOTg3MywgMC45MjMzODEsIDEuMzI1NywgMi4yNjY1MiwgMi44MDI4OCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMjM5ODUsIDAuMzc4NDI5LCAwLjg2OTg1NiwgMS42ODc0OCwgMi41MDUzMiwgNC40MTMyOSwgNS41MDI0OCIsIFwKLSAgICAgICAgICAiMC4zMjM5NTUsIDAuMzc4NjEsIDAuODY5MzIzLCAxLjY4ODAzLCAyLjUwNTQ1LCA0LjQxMTg4LCA1LjUwMjM2IiwgXAotICAgICAgICAgICIwLjMyMzg4MSwgMC4zNzg2NzIsIDAuODY5NzU0LCAxLjY4NzQxLCAyLjUwNTA5LCA0LjQxMzA4LCA1LjUwMjQ0IiwgXAotICAgICAgICAgICIwLjMyMzkxNywgMC4zNzg0MzUsIDAuODY5NDMxLCAxLjY4NzQzLCAyLjUwNTE0LCA0LjQxMjk0LCA1LjUwMjUiLCBcCi0gICAgICAgICAgIjAuMzI0Njg2LCAwLjM3ODgzMywgMC44Njk0NTgsIDEuNjg3OTEsIDIuNTA1MDMsIDQuNDExOTgsIDUuNTAyMDUiLCBcCi0gICAgICAgICAgIjAuMzI3MzcxLCAwLjM4MDkxMiwgMC44NjkxOTUsIDEuNjg3MzEsIDIuNTA2NTcsIDQuNDE0NDgsIDUuNTAyMzEiLCBcCi0gICAgICAgICAgIjAuMzMxMzYsIDAuMzg0NDk1LCAwLjg2OTYyNCwgMS42ODc0LCAyLjUwNjM5LCA0LjQxMjc0LCA1LjUwMTM2Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI0ODIzNCwgMC4yODU0MjQsIDAuNjE5NDU1LCAxLjE3NTU0LCAxLjczMDksIDMuMDI3MTEsIDMuNzY2MiIsIFwKLSAgICAgICAgICAiMC4yNTY1MTUsIDAuMjkzODMzLCAwLjYyNzg1OSwgMS4xODM3MiwgMS43NDAwMywgMy4wMzQ3OSwgMy43NzQ3NCIsIFwKLSAgICAgICAgICAiMC4yNjU3NzYsIDAuMzAzMDIxLCAwLjYzNzM2OSwgMS4xOTMxMywgMS43NDkzOSwgMy4wNDQwMSwgMy43ODQwMiIsIFwKLSAgICAgICAgICAiMC4yNzQ3MjMsIDAuMzExOTA4LCAwLjY0NjM3NywgMS4yMDE2NSwgMS43NTgxLCAzLjA1MzMzLCAzLjc5MzE4IiwgXAotICAgICAgICAgICIwLjI4MzYxLCAwLjMyMDg5LCAwLjY1NTE3OSwgMS4yMTEzMiwgMS43NjY2NywgMy4wNjI2OSwgMy44MDIwNCIsIFwKLSAgICAgICAgICAiMC4yOTc3MDUsIDAuMzM1MDYsIDAuNjY5NDQzLCAxLjIyNTcxLCAxLjc4MTMzLCAzLjA3NjU3LCAzLjgxNjU0IiwgXAotICAgICAgICAgICIwLjMxMDE1MywgMC4zNDc0MTMsIDAuNjgxODM1LCAxLjIzNzgyLCAxLjc5MzM3LCAzLjA4OTI0LCAzLjgyOTIyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjQ0OTcwMywgMC41MjIyMTgsIDEuMTc0NDYsIDIuMjYxLCAzLjM0NzEsIDUuODgzMDksIDcuMzMxOTIiLCBcCi0gICAgICAgICAgIjAuNDQ5NjE5LCAwLjUyMjE2OCwgMS4xNzQyNCwgMi4yNjEwNSwgMy4zNDczOCwgNS44ODIzOCwgNy4zMzE5MyIsIFwKLSAgICAgICAgICAiMC40NDk2MDUsIDAuNTIyMTI1LCAxLjE3NDE4LCAyLjI2MDgyLCAzLjM0NjkzLCA1Ljg4MTczLCA3LjMzMTI2IiwgXAotICAgICAgICAgICIwLjQ0OTcyNywgMC41MjIxODYsIDEuMTc0MTksIDIuMjYwNzksIDMuMzQ3MTgsIDUuODgxNzYsIDcuMzMxOTEiLCBcCi0gICAgICAgICAgIjAuNDQ5ODg3LCAwLjUyMjE1NCwgMS4xNzQxOSwgMi4yNjA4MiwgMy4zNDcyOCwgNS44ODMwOSwgNy4zMzA5NSIsIFwKLSAgICAgICAgICAiMC40NTE2MDcsIDAuNTIzNDMyLCAxLjE3NDQzLCAyLjI2MDg0LCAzLjM0Njg2LCA1Ljg4Mjc4LCA3LjMyOTQ2IiwgXAotICAgICAgICAgICIwLjQ1NDEyMSwgMC41MjU0NjgsIDEuMTc0MTgsIDIuMjYwNTQsIDMuMzQ3MzcsIDUuODgyNzksIDcuMzMxNDUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE3NjcwOCwgMC4yMDM3NjEsIDAuNDQ1ODI2LCAwLjg0ODQ1NSwgMS4yNTI0LCAyLjE5Mjk2LCAyLjcyOTMiLCBcCi0gICAgICAgICAgIjAuMTg2NjM3LCAwLjIxMzU4NywgMC40NTU1MDEsIDAuODU4MTk4LCAxLjI2MTkyLCAyLjIwMjEyLCAyLjczNzYzIiwgXAotICAgICAgICAgICIwLjE5Nzg3NiwgMC4yMjQ4MzIsIDAuNDY2OTQ3LCAwLjg2OTg3OSwgMS4yNzMxNywgMi4yMTM4LCAyLjc1MDAxIiwgXAotICAgICAgICAgICIwLjIwODEyNCwgMC4yMzUwOTQsIDAuNDc3MjM2LCAwLjg4MDI0NywgMS4yODI5OSwgMi4yMjMyMSwgMi43NjAyMSIsIFwKLSAgICAgICAgICAiMC4yMTgxMTcsIDAuMjQ1MDQ2LCAwLjQ4NzQyNSwgMC44OTAxNDYsIDEuMjkyOTcsIDIuMjMzOTUsIDIuNzcwNTciLCBcCi0gICAgICAgICAgIjAuMjM0MDU0LCAwLjI2MTAwNiwgMC41MDMyMDYsIDAuOTA2MjgsIDEuMzA4OTgsIDIuMjUwMzgsIDIuNzg1NDkiLCBcCi0gICAgICAgICAgIjAuMjQ3Nzc3LCAwLjI3NDY5MiwgMC41MTcxMDEsIDAuOTE5OTk1LCAxLjMyMjg4LCAyLjI2MzUxLCAyLjc5OTY2Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMyMDU0MiwgMC4zNzUxNywgMC44NjYyMTQsIDEuNjg0MzUsIDIuNTAxNzQsIDQuNDA5NjQsIDUuNDk4MTciLCBcCi0gICAgICAgICAgIjAuMzIwNTYxLCAwLjM3NTE3NywgMC44NjYxNzcsIDEuNjgzOTksIDIuNTAxNzEsIDQuNDA4ODEsIDUuNDk3ODEiLCBcCi0gICAgICAgICAgIjAuMzIwNTMxLCAwLjM3NTIwNiwgMC44NjYyMTMsIDEuNjgzOTIsIDIuNTAxNSwgNC40MDkzMiwgNS40OTkwNCIsIFwKLSAgICAgICAgICAiMC4zMjA2MDcsIDAuMzc1MDI3LCAwLjg2NTkyOSwgMS42ODQyLCAyLjUwMTk5LCA0LjQwODI4LCA1LjQ5ODY1IiwgXAotICAgICAgICAgICIwLjMyMTM1NywgMC4zNzU1NzksIDAuODY1OTMzLCAxLjY4NDMyLCAyLjUwMjQ2LCA0LjQwOTU0LCA1LjQ5ODI0IiwgXAotICAgICAgICAgICIwLjMyNDA0OCwgMC4zNzc2MzksIDAuODY2MTMzLCAxLjY4Mzc3LCAyLjUwMjg3LCA0LjQwOTM0LCA1LjQ5Nzg3IiwgXAotICAgICAgICAgICIwLjMyODAyMywgMC4zODA3NzksIDAuODY2MDE5LCAxLjY4NDAxLCAyLjUwMjU0LCA0LjQwODIyLCA1LjUwMDYzIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI0NjA4MywgMC4yODM0MjcsIDAuNjE3NTMyLCAxLjE3MzU1LCAxLjcyODUsIDMuMDI0OSwgMy43NjQxNSIsIFwKLSAgICAgICAgICAiMC4yNTQ3MzgsIDAuMjkyMDM3LCAwLjYyNTkxMiwgMS4xODIyMywgMS43MzcxMiwgMy4wMzI5LCAzLjc3Mjg4IiwgXAotICAgICAgICAgICIwLjI2NTI5LCAwLjMwMjQ3MywgMC42MzY5MzcsIDEuMTkyNjcsIDEuNzQ5MDcsIDMuMDQzNTksIDMuNzgzNTciLCBcCi0gICAgICAgICAgIjAuMjc1OTA0LCAwLjMxMzEyNywgMC42NDcyNzEsIDEuMjAzMzQsIDEuNzU4NjUsIDMuMDU1MDcsIDMuNzk0MzkiLCBcCi0gICAgICAgICAgIjAuMjg2NDA5LCAwLjMyMzc2LCAwLjY1ODA3MSwgMS4yMTQyNiwgMS43NzA0OCwgMy4wNjUwOCwgMy44MDUwNyIsIFwKLSAgICAgICAgICAiMC4zMDM0MDksIDAuMzQwNTI0LCAwLjY3NDk0NSwgMS4yMzA2NiwgMS43ODcxLCAzLjA4MjAyLCAzLjgyMjI4IiwgXAotICAgICAgICAgICIwLjMxODI0NCwgMC4zNTUyODYsIDAuNjg5ODI5LCAxLjI0NTcxLCAxLjgwMTM3LCAzLjA5NzEzLCAzLjgzNzE3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjQ0OTczNiwgMC41MjIxMDUsIDEuMTc0MjcsIDIuMjYwNDQsIDMuMzQ3NTIsIDUuODgyODQsIDcuMzMxMjgiLCBcCi0gICAgICAgICAgIjAuNDQ5NzI1LCAwLjUyMjE2NywgMS4xNzQyLCAyLjI2MDg5LCAzLjM0NzAyLCA1Ljg4MTk0LCA3LjMzMTE4IiwgXAotICAgICAgICAgICIwLjQ0OTYwNSwgMC41MjIxMDQsIDEuMTc0MTcsIDIuMjYwODEsIDMuMzQ3MywgNS44ODE4NSwgNy4zMzIyMSIsIFwKLSAgICAgICAgICAiMC40NDk2MDYsIDAuNTIyMDk1LCAxLjE3NDE3LCAyLjI2MDgxLCAzLjM0NzIxLCA1Ljg4MjgzLCA3LjMzMDk3IiwgXAotICAgICAgICAgICIwLjQ0OTgzOCwgMC41MjIxMTMsIDEuMTc0MTksIDIuMjYwODUsIDMuMzQ3MSwgNS44ODI4OSwgNy4zMjk4OCIsIFwKLSAgICAgICAgICAiMC40NTIwOTEsIDAuNTIzMzY5LCAxLjE3NDQxLCAyLjI2MDc5LCAzLjM0NzM4LCA1Ljg4MTY4LCA3LjMzMTE4IiwgXAotICAgICAgICAgICIwLjQ1NTMwOSwgMC41MjYwMTUsIDEuMTc0MzgsIDIuMjYwODgsIDMuMzQ3MDYsIDUuODgyMDYsIDcuMzI5MzkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTIiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE3MzM1MSwgMC4yMDAzNDMsIDAuNDQyMjI0LCAwLjg0NTY2NCwgMS4yNDg0MiwgMi4xODgyNSwgMi43MjQ5IiwgXAotICAgICAgICAgICIwLjE4MzM2NywgMC4yMTAyOSwgMC40NTIxNDcsIDAuODU1MzYyLCAxLjI1ODEzLCAyLjE5ODMzLCAyLjczNTQ0IiwgXAotICAgICAgICAgICIwLjE5NDU1MSwgMC4yMjE1MSwgMC40NjM3NjEsIDAuODY2Nzk1LCAxLjI2OTUyLCAyLjIwOTU4LCAyLjc0NTgiLCBcCi0gICAgICAgICAgIjAuMjA0ODY1LCAwLjIzMTgxMywgMC40NzM5OTEsIDAuODc3MDk5LCAxLjI4MDM5LCAyLjIyMDYzLCAyLjc1Njk3IiwgXAotICAgICAgICAgICIwLjIxNDg1MiwgMC4yNDE3ODQsIDAuNDg0MDgsIDAuODg2NzgyLCAxLjI5MDEzLCAyLjIzMDA3LCAyLjc2NzE4IiwgXAotICAgICAgICAgICIwLjIzMDU5MywgMC4yNTc0OTIsIDAuNDk5NjU4LCAwLjkwMjg3MywgMS4zMDU0MywgMi4yNDUzOSwgMi43ODI4NyIsIFwKLSAgICAgICAgICAiMC4yNDQyMSwgMC4yNzEzMTEsIDAuNTEzNTc0LCAwLjkxNjU0NSwgMS4zMTk0NywgMi4yNTkxNiwgMi43OTciKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzE2NjA3LCAwLjM3MTEzNCwgMC44NjE3MzgsIDEuNjc5NzEsIDIuNDk4MDUsIDQuNDA1MTQsIDUuNDk0MTciLCBcCi0gICAgICAgICAgIjAuMzE2NjUzLCAwLjM3MTE4NCwgMC44NjIxMTIsIDEuNjc5NiwgMi40OTc4NywgNC40MDQxOSwgNS40OTM2MiIsIFwKLSAgICAgICAgICAiMC4zMTY1NSwgMC4zNzExNjcsIDAuODYxODM3LCAxLjY3OTU5LCAyLjQ5NjY4LCA0LjQwMzg3LCA1LjQ5NTM4IiwgXAotICAgICAgICAgICIwLjMxNjcsIDAuMzcxMTU5LCAwLjg2MTc0NCwgMS42Nzk2NCwgMi40OTcyOSwgNC40MDQ4NiwgNS40OTQzNCIsIFwKLSAgICAgICAgICAiMC4zMTc0MDYsIDAuMzcxNzIyLCAwLjg2MTcxLCAxLjY3OTQ2LCAyLjQ5NzExLCA0LjQwMzg1LCA1LjQ5NDI1IiwgXAotICAgICAgICAgICIwLjMyMDU2MywgMC4zNzM5NzYsIDAuODYxNTkyLCAxLjY3OTYyLCAyLjQ5ODkyLCA0LjQwNjQ3LCA1LjQ5NDA2IiwgXAotICAgICAgICAgICIwLjMyNDQ5MywgMC4zNzcyODMsIDAuODYxOTk2LCAxLjY3OTQ5LCAyLjQ5NzI1LCA0LjQwNDQsIDUuNDk0NzQiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjQxNDk4LCAwLjI3ODcyNCwgMC42MTI1NDksIDEuMTY4NDUsIDEuNzI0MjQsIDMuMDIwMzEsIDMuNzU5MjEiLCBcCi0gICAgICAgICAgIjAuMjUwMDU5LCAwLjI4NzM2NSwgMC42MjE0MDQsIDEuMTc3NDIsIDEuNzMyNzYsIDMuMDI4MzIsIDMuNzY4MyIsIFwKLSAgICAgICAgICAiMC4yNjA4NjYsIDAuMjk4MDU0LCAwLjYzMjM1MSwgMS4xODgzOSwgMS43NDM5MywgMy4wMzk4OCwgMy43NzkyMyIsIFwKLSAgICAgICAgICAiMC4yNzE3MzgsIDAuMzA5MDA2LCAwLjY0Mjk4MSwgMS4xOTkxMiwgMS43NTUxNCwgMy4wNTAwMywgMy43OTAwNiIsIFwKLSAgICAgICAgICAiMC4yODI1NjMsIDAuMzE5Mzg0LCAwLjY1NDE4MiwgMS4yMTAxNywgMS43NjYyOSwgMy4wNjExNywgMy44MDEwOCIsIFwKLSAgICAgICAgICAiMC4zMDAyMzgsIDAuMzM3MjkzLCAwLjY3MTUyMSwgMS4yMjcwNiwgMS43ODM1MiwgMy4wNzkzOSwgMy44MTg3MiIsIFwKLSAgICAgICAgICAiMC4zMTU2MzMsIDAuMzUyNzYsIDAuNjg3MDM4LCAxLjI0MjgzLCAxLjc5ODEyLCAzLjA5MzksIDMuODMzOTMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuNDQ5NjUsIDAuNTIyMTc0LCAxLjE3NDIxLCAyLjI2MDk1LCAzLjM0NjYyLCA1Ljg4MzAyLCA3LjMzMTI3IiwgXAotICAgICAgICAgICIwLjQ0OTYyLCAwLjUyMjEzMywgMS4xNzQyMSwgMi4yNjA3OCwgMy4zNDY2NSwgNS44ODI4OSwgNy4zMjk2MyIsIFwKLSAgICAgICAgICAiMC40NDk3MTksIDAuNTIyMTMzLCAxLjE3NDE4LCAyLjI2MDg0LCAzLjM0NzA3LCA1Ljg4MjgxLCA3LjMzMTUxIiwgXAotICAgICAgICAgICIwLjQ0OTczLCAwLjUyMjA5NywgMS4xNzQxOCwgMi4yNjA4MSwgMy4zNDY5OSwgNS44ODE0OCwgNy4zMzIyOCIsIFwKLSAgICAgICAgICAiMC40NDk4NzEsIDAuNTIyMDgsIDEuMTc0MTgsIDIuMjYwODUsIDMuMzQ3MjMsIDUuODgyNSwgNy4zMzIxMyIsIFwKLSAgICAgICAgICAiMC40NTMyMDcsIDAuNTI0MDEzLCAxLjE3NDEsIDIuMjYwNzYsIDMuMzQ3MywgNS44ODI3OCwgNy4zMzExNyIsIFwKLSAgICAgICAgICAiMC40NTc5MjUsIDAuNTI3ODM1LCAxLjE3NDM3LCAyLjI2MDk5LCAzLjM0NzA0LCA1Ljg4Mjc4LCA3LjMzMTYxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNjQ0OTQsIDAuMTkxNTAzLCAwLjQzMzUzMiwgMC44MzYyODcsIDEuMjM5OTcsIDIuMTgwMjUsIDIuNzE2MzMiLCBcCi0gICAgICAgICAgIjAuMTczNDkyLCAwLjIwMDQ0MiwgMC40NDI0OSwgMC44NDYxOTcsIDEuMjQ4NjQsIDIuMTg4MzMsIDIuNzI0OTMiLCBcCi0gICAgICAgICAgIjAuMTg0NzQ3LCAwLjIxMTcwMSwgMC40NTQwOTksIDAuODU3MjMyLCAxLjI2MDU3LCAyLjIwMDMsIDIuNzM2NjkiLCBcCi0gICAgICAgICAgIjAuMTk2MTA0LCAwLjIyMzA3NCwgMC40NjUyNjksIDAuODY4MzU3LCAxLjI3MTIxLCAyLjIxMjUzLCAyLjc0ODU0IiwgXAotICAgICAgICAgICIwLjIwNzUzNCwgMC4yMzQ1NTMsIDAuNDc2NzYsIDAuODc5NjAyLCAxLjI4MzA3LCAyLjIyMzE2LCAyLjc1ODg3IiwgXAotICAgICAgICAgICIwLjIyNTkyNywgMC4yNTI4OCwgMC40OTQ5LCAwLjg5Nzk0NCwgMS4zMDA3NywgMi4yNDE5NiwgMi43Nzc3MSIsIFwKLSAgICAgICAgICAiMC4yNDIxMDUsIDAuMjY4OTMxLCAwLjUxMDg2MywgMC45MTM5MjcsIDEuMzE2NjYsIDIuMjU2OTMsIDIuNzkzNDkiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzIzODgxLCAwLjM3ODQ5MiwgMC44NjkzMTMsIDEuNjg3NCwgMi41MDU1MiwgNC40MTI5OCwgNS41MDEzNiIsIFwKLSAgICAgICAgICAiMC4zMjM5NTcsIDAuMzc4MzgyLCAwLjg2OTE5NSwgMS42ODc4OSwgMi41MDUzNiwgNC40MTIwMSwgNS41MDQxNSIsIFwKLSAgICAgICAgICAiMC4zMjM3MDcsIDAuMzc4Mzc0LCAwLjg2OTU5OCwgMS42ODc0NiwgMi41MDUyLCA0LjQxNDE2LCA1LjUwMjI3IiwgXAotICAgICAgICAgICIwLjMyNDEwMiwgMC4zNzgyMzcsIDAuODY5NDkyLCAxLjY4NzYzLCAyLjUwNTQyLCA0LjQxMzIsIDUuNTAyNTciLCBcCi0gICAgICAgICAgIjAuMzI2MjcxLCAwLjM3OTQ0OSwgMC44Njk0NjYsIDEuNjg3ODQsIDIuNTA2MTksIDQuNDEyNzIsIDUuNTAxNDYiLCBcCi0gICAgICAgICAgIjAuMzMyNjI4LCAwLjM4NDQ4NSwgMC44Njk1MywgMS42ODc0MiwgMi41MDcxMSwgNC40MTMwNiwgNS41MDE5MiIsIFwKLSAgICAgICAgICAiMC4zNDAyMjEsIDAuMzkxMDA0LCAwLjg2OTYyLCAxLjY4NzI4LCAyLjUwNjk0LCA0LjQxMjI1LCA1LjUwNDYxIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIxOTEwNiwgMC4yNTYyNTksIDAuNTkwMTMxLCAxLjE0NjA4LCAxLjcwMTkyLCAyLjk5ODAyLCAzLjczODM0IiwgXAotICAgICAgICAgICIwLjIyNzg2NSwgMC4yNjUwMDYsIDAuNTk5MDE0LCAxLjE1NDg3LCAxLjcxMDk2LCAzLjAwNzM2LCAzLjc0NzE2IiwgXAotICAgICAgICAgICIwLjIzNzA4MiwgMC4yNzQyNDQsIDAuNjA4Mjg4LCAxLjE2NDM0LCAxLjcyMDI4LCAzLjAxNjI2LCAzLjc1Njc1IiwgXAotICAgICAgICAgICIwLjI0NTk5MywgMC4yODMxOTcsIDAuNjE3Mjk3LCAxLjE3MzU2LCAxLjcyOTIxLCAzLjAyNTM2LCAzLjc2NTkzIiwgXAotICAgICAgICAgICIwLjI1NDc4OSwgMC4yOTIwNDgsIDAuNjI2MjgxLCAxLjE4MjI5LCAxLjczODA3LCAzLjAzNDQsIDMuNzc0NzgiLCBcCi0gICAgICAgICAgIjAuMjY5MDI0LCAwLjMwNjI0NywgMC42NDA1NzYsIDEuMTk2ODgsIDEuNzUyNTcsIDMuMDQ4ODMsIDMuNzg5NDciLCBcCi0gICAgICAgICAgIjAuMjgxNjAxLCAwLjMxODU4OCwgMC42NTMyMDksIDEuMjA5NDEsIDEuNzY1MTQsIDMuMDYxNSwgMy44MDIxOCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC40MjIxODgsIDAuNDk0NTUyLCAxLjE0NTU1LCAyLjIzMTU5LCAzLjMxNzg1LCA1Ljg1MjQ1LCA3LjMwMDU1IiwgXAotICAgICAgICAgICIwLjQyMjE4OCwgMC40OTQ0NjcsIDEuMTQ1NTcsIDIuMjMxNjUsIDMuMzE3ODMsIDUuODUyNzIsIDcuMzAwMTQiLCBcCi0gICAgICAgICAgIjAuNDIyMjMzLCAwLjQ5NDQ1NiwgMS4xNDU1LCAyLjIzMTU3LCAzLjMxNzg3LCA1Ljg1MjQ5LCA3LjMwMDQxIiwgXAotICAgICAgICAgICIwLjQyMjI2MiwgMC40OTQ0OCwgMS4xNDU1MSwgMi4yMzE4MiwgMy4zMTc5MiwgNS44NTIxOCwgNy4yOTk5NiIsIFwKLSAgICAgICAgICAiMC40MjI3NCwgMC40OTQ2MzcsIDEuMTQ1NTQsIDIuMjMxNSwgMy4zMTc1NSwgNS44NTI2MywgNy4zMDAyIiwgXAotICAgICAgICAgICIwLjQyNDg0MSwgMC40OTYyMjgsIDEuMTQ1NzQsIDIuMjMxNjYsIDMuMzE3ODMsIDUuODUyMTgsIDcuMzAwMzIiLCBcCi0gICAgICAgICAgIjAuNDI3OTA3LCAwLjQ5ODY0LCAxLjE0NTUyLCAyLjIzMTY4LCAzLjMxNzcsIDUuODUyNDMsIDcuMzAwNjMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE2MTYxMSwgMC4xODg0ODgsIDAuNDMwODA2LCAwLjgzMzI0NSwgMS4yMzY0NSwgMi4xNzY4MywgMi43MTMzMyIsIFwKLSAgICAgICAgICAiMC4xNzA2NzksIDAuMTk3NjE2LCAwLjQzOTcxNywgMC44NDI3OTUsIDEuMjQ1NTcsIDIuMTg1NjMsIDIuNzIyMTEiLCBcCi0gICAgICAgICAgIjAuMTgxODY3LCAwLjIwODc3MiwgMC40NTA4OTEsIDAuODU0MzkyLCAxLjI1Njc2LCAyLjE5NzY4LCAyLjczNDIxIiwgXAotICAgICAgICAgICIwLjE5MzExLCAwLjIyMDA2MSwgMC40NjIxMzUsIDAuODY1Mjg1LCAxLjI2ODI5LCAyLjIwODkzLCAyLjc0NTIxIiwgXAotICAgICAgICAgICIwLjIwNDQ3LCAwLjIzMTQ1NywgMC40NzM0NSwgMC44NzYzMzgsIDEuMjc5OTQsIDIuMjIwMDksIDIuNzU1ODciLCBcCi0gICAgICAgICAgIjAuMjIyNzYzLCAwLjI0OTc2NCwgMC40OTE2OTMsIDAuODk0NjMxLCAxLjI5NzQ3LCAyLjIzODQyLCAyLjc3Mzg4IiwgXAotICAgICAgICAgICIwLjIzOTAwNCwgMC4yNjU3MjUsIDAuNTA3NjE0LCAwLjkxMDYzOCwgMS4zMTMzNCwgMi4yNTM3OCwgMi43OTAxNCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMjA1NywgMC4zNzUwMzUsIDAuODY1ODI3LCAxLjY4NDMxLCAyLjUwMTM4LCA0LjQwNzkzLCA1LjQ5ODUiLCBcCi0gICAgICAgICAgIjAuMzIwNDAxLCAwLjM3NDg1OCwgMC44NjYwMDUsIDEuNjgzNjUsIDIuNTAxMjYsIDQuNDA4ODEsIDUuNDk4ODYiLCBcCi0gICAgICAgICAgIjAuMzIwMTYyLCAwLjM3NDk2NSwgMC44NjU4NDcsIDEuNjgzNzgsIDIuNTAxNjQsIDQuNDA5OSwgNS40OTgiLCBcCi0gICAgICAgICAgIjAuMzIwNDUyLCAwLjM3NDcxLCAwLjg2NTk1LCAxLjY4MzkyLCAyLjUwMTE2LCA0LjQwOSwgNS40OTg3MyIsIFwKLSAgICAgICAgICAiMC4zMjI4MjUsIDAuMzc2MDYsIDAuODY1NzE4LCAxLjY4NDEyLCAyLjUwMTkxLCA0LjQwODEzLCA1LjQ5ODg1IiwgXAotICAgICAgICAgICIwLjMyOTMyMiwgMC4zODEyMzEsIDAuODY1Nzg5LCAxLjY4Mzg0LCAyLjUwMzQzLCA0LjQwODg3LCA1LjQ5Nzc5IiwgXAotICAgICAgICAgICIwLjMzNzA2OCwgMC4zODc4ODMsIDAuODY1OTQyLCAxLjY4MzU2LCAyLjUwMzAzLCA0LjQwODIsIDUuNTAwNTUiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjE2ODUzLCAwLjI1Mzk3NiwgMC41ODc4MjgsIDEuMTQzNzgsIDEuNjk5NDQsIDIuOTk1NzcsIDMuNzM2MTEiLCBcCi0gICAgICAgICAgIjAuMjI1ODUxLCAwLjI2Mjk3MiwgMC41OTY4OTIsIDEuMTUyOTMsIDEuNzA4NjMsIDMuMDA0OTEsIDMuNzQ1NTIiLCBcCi0gICAgICAgICAgIjAuMjM2NDE4LCAwLjI3MzYzNSwgMC42MDc1OTUsIDEuMTYzNiwgMS43MTkzMSwgMy4wMTU2NiwgMy43NTYiLCBcCi0gICAgICAgICAgIjAuMjQ2OTE4LCAwLjI4NDE2NCwgMC42MTgzNjIsIDEuMTc0NDIsIDEuNzMwMDksIDMuMDI2MzcsIDMuNzY2OCIsIFwKLSAgICAgICAgICAiMC4yNTc0MDYsIDAuMjk0NjY1LCAwLjYyODkwNiwgMS4xODQ5NSwgMS43NDEwOSwgMy4wMzc1NSwgMy43NzcxNiIsIFwKLSAgICAgICAgICAiMC4yNzQzODEsIDAuMzExNjAyLCAwLjY0NTk1MywgMS4yMDIwNSwgMS43NTc5NCwgMy4wNTQxLCAzLjc5NDU3IiwgXAotICAgICAgICAgICIwLjI4OTEzOCwgMC4zMjYzMjYsIDAuNjYwODg3LCAxLjIxNzIyLCAxLjc3Mjg4LCAzLjA2OTM3LCAzLjgwOTUzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjQyMjIxNiwgMC40OTQ1NCwgMS4xNDU1NSwgMi4yMzE2MSwgMy4zMTczNiwgNS44NTI0NCwgNy4zMDA0NCIsIFwKLSAgICAgICAgICAiMC40MjIyNjEsIDAuNDk0NDU4LCAxLjE0NTUyLCAyLjIzMTQ1LCAzLjMxNzI2LCA1Ljg1MjIyLCA3LjMwMDk2IiwgXAotICAgICAgICAgICIwLjQyMjIxOSwgMC40OTQ0ODQsIDEuMTQ1NTYsIDIuMjMxNDgsIDMuMzE3MzUsIDUuODUyMzIsIDcuMzAwMzIiLCBcCi0gICAgICAgICAgIjAuNDIyMjQ0LCAwLjQ5NDU2NiwgMS4xNDU1LCAyLjIzMTc2LCAzLjMxNzY3LCA1Ljg1MjM2LCA3LjI5OTY4IiwgXAotICAgICAgICAgICIwLjQyMjczLCAwLjQ5NDU3MSwgMS4xNDU1NCwgMi4yMzE1NCwgMy4zMTgwMywgNS44NTI5NCwgNy4yOTk0OSIsIFwKLSAgICAgICAgICAiMC40MjU0ODMsIDAuNDk2NDcxLCAxLjE0NTcxLCAyLjIzMTY1LCAzLjMxNzc1LCA1Ljg1MjU3LCA3LjMwMDYzIiwgXAotICAgICAgICAgICIwLjQyOTY4MywgMC40OTk1OTcsIDEuMTQ1NDYsIDIuMjMxNjYsIDMuMzE3MzIsIDUuODUxOTUsIDcuMzAwNjIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjIiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE1ODE2NCwgMC4xODUwNzEsIDAuNDI2NjUzLCAwLjgyOTc4LCAxLjIzMjkxLCAyLjE3MzMyLCAyLjcwODc2IiwgXAotICAgICAgICAgICIwLjE2NzQ3NSwgMC4xOTQ0MTMsIDAuNDM2Mjg4LCAwLjgzOTI0MSwgMS4yNDE4OSwgMi4xODI2NiwgMi43MTkyOSIsIFwKLSAgICAgICAgICAiMC4xNzg1NiwgMC4yMDU0NDcsIDAuNDQ3NjkyLCAwLjg1MDY1MSwgMS4yNTMwOSwgMi4xOTM0OSwgMi43MzAyOSIsIFwKLSAgICAgICAgICAiMC4xODk4NTcsIDAuMjE2ODE0LCAwLjQ1ODgyNywgMC44NjE5NDUsIDEuMjY0OTIsIDIuMjA1NTgsIDIuNzQxODIiLCBcCi0gICAgICAgICAgIjAuMjAxMjUzLCAwLjIyODIyOSwgMC40NzAzMTQsIDAuODczMDg4LCAxLjI3NjY2LCAyLjIxNjgsIDIuNzUyNSIsIFwKLSAgICAgICAgICAiMC4yMTk1MTMsIDAuMjQ2NDg0LCAwLjQ4ODUzNCwgMC44OTE1MTQsIDEuMjk0MTUsIDIuMjM1MTgsIDIuNzcwNjciLCBcCi0gICAgICAgICAgIjAuMjM1NzE2LCAwLjI2MjUxMiwgMC41MDQzMzcsIDAuOTA3Mzc2LCAxLjMxMDA2LCAyLjI0OTg3LCAyLjc4NjgyIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMxNjU0NCwgMC4zNzA4NTEsIDAuODYxMjc5LCAxLjY4LCAyLjQ5NzA4LCA0LjQwMzQ5LCA1LjQ5Mjc0IiwgXAotICAgICAgICAgICIwLjMxNjQyMSwgMC4zNzEwNzksIDAuODYxNDA0LCAxLjY3OTM4LCAyLjQ5NjgyLCA0LjQwNDI4LCA1LjQ5MzkzIiwgXAotICAgICAgICAgICIwLjMxNjA3NCwgMC4zNzA2NjUsIDAuODYxNDg0LCAxLjY3OTU1LCAyLjQ5Njg5LCA0LjQwMzE3LCA1LjQ5MzQzIiwgXAotICAgICAgICAgICIwLjMxNjM0NSwgMC4zNzA1NDIsIDAuODYxNTc4LCAxLjY3OTgsIDIuNDk3NjQsIDQuNDA0NSwgNS40OTM5NCIsIFwKLSAgICAgICAgICAiMC4zMTg5ODMsIDAuMzcxOTc5LCAwLjg2MTQ3MywgMS42Nzk3LCAyLjQ5NzU0LCA0LjQwNDIxLCA1LjQ5NDYiLCBcCi0gICAgICAgICAgIjAuMzI1NTg5LCAwLjM3NzUzNCwgMC44NjE0ODQsIDEuNjc5MjUsIDIuNDk4ODIsIDQuNDA0NDQsIDUuNDkyOTUiLCBcCi0gICAgICAgICAgIjAuMzMzMjQsIDAuMzg0MjM4LCAwLjg2MTcxNSwgMS42NzkxNiwgMi40OTg3MSwgNC40MDM0LCA1LjQ5NTg5Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIxMjA4LCAwLjI0OTE5OSwgMC41ODMwNzIsIDEuMTM5MDgsIDEuNjk0OSwgMi45OTEzNiwgMy43MzExMiIsIFwKLSAgICAgICAgICAiMC4yMjA4OTMsIDAuMjU4MDEsIDAuNTkxOTgzLCAxLjE0ODA2LCAxLjcwMzcsIDIuOTk5OTcsIDMuNzQwNTYiLCBcCi0gICAgICAgICAgIjAuMjMxNzM0LCAwLjI2ODg4NCwgMC42MDI5MjcsIDEuMTU4OSwgMS43MTQ2MSwgMy4wMTA5NCwgMy43NTEwOCIsIFwKLSAgICAgICAgICAiMC4yNDIzOCwgMC4yNzk3MjIsIDAuNjEzODI0LCAxLjE2OTgzLCAxLjcyNTY4LCAzLjAyMTg5LCAzLjc2MjMiLCBcCi0gICAgICAgICAgIjAuMjUzNDQxLCAwLjI5MDY2OSwgMC42MjQ3ODEsIDEuMTgwOSwgMS43MzY2NiwgMy4wMzMwMywgMy43NzM2MSIsIFwKLSAgICAgICAgICAiMC4yNzA5NDgsIDAuMzA4MjE3LCAwLjY0MjMyOCwgMS4xOTgzOCwgMS43NTQyNywgMy4wNTA0MSwgMy43OTA2OSIsIFwKLSAgICAgICAgICAiMC4yODY0MzgsIDAuMzIzNTEzLCAwLjY1NzU5NywgMS4yMTM3NCwgMS43Njk0NSwgMy4wNjU3NiwgMy44MDY0MyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC40MjIyNTksIDAuNDk0NDg3LCAxLjE0NTUxLCAyLjIzMTYxLCAzLjMxNzQ0LCA1Ljg1MjU1LCA3LjI5OTg4IiwgXAotICAgICAgICAgICIwLjQyMjI1OSwgMC40OTQ0ODMsIDEuMTQ1NjcsIDIuMjMxNDUsIDMuMzE3NiwgNS44NTIyOSwgNy4zMDA1MSIsIFwKLSAgICAgICAgICAiMC40MjIyNTgsIDAuNDk0NDY3LCAxLjE0NTY2LCAyLjIzMTY2LCAzLjMxNzY3LCA1Ljg1MjMyLCA3LjI5OTc5IiwgXAotICAgICAgICAgICIwLjQyMjE2OCwgMC40OTQ0NjcsIDEuMTQ1NTMsIDIuMjMxMzQsIDMuMzE3NTMsIDUuODUyNjEsIDcuMjk5ODYiLCBcCi0gICAgICAgICAgIjAuNDIyOTQzLCAwLjQ5NDU3NiwgMS4xNDU3MywgMi4yMzE2LCAzLjMxNzQ3LCA1Ljg1MjQ0LCA3LjMwMTA4IiwgXAotICAgICAgICAgICIwLjQyNzA0NSwgMC40OTc0NjcsIDEuMTQ1NTcsIDIuMjMxNTgsIDMuMzMwNjksIDUuODUyNDIsIDcuMjk5ODEiLCBcCi0gICAgICAgICAgIjAuNDMyNzM5LCAwLjUwMTc3NiwgMS4xNDU1MywgMi4yMzE1NywgMy4zMTc3MSwgNS44NTI2OSwgNy4zMDA0MyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDMzMjYsIDAuMDAzMzI2LCAwLjAwMzMyNSwgMC4wMDMzMjQsIDAuMDAzMzI0LCAwLjAwMzMyMiwgMC4wMDMzMiIsIFwKLSAgICAgICAgICAiMC4wMDMzMiwgMC4wMDMzMiwgMC4wMDMzMiwgMC4wMDMzMiwgMC4wMDMzMTksIDAuMDAzMzE3LCAwLjAwMzMxOCIsIFwKLSAgICAgICAgICAiMC4wMDMzMTgsIDAuMDAzMzE4LCAwLjAwMzMxOSwgMC4wMDMzMTksIDAuMDAzMzE4LCAwLjAwMzMxNiwgMC4wMDMzMTUiLCBcCi0gICAgICAgICAgIjAuMDAzMzE2LCAwLjAwMzMxNywgMC4wMDMzMTgsIDAuMDAzMzE4LCAwLjAwMzMxOCwgMC4wMDMzMTYsIDAuMDAzMzE1IiwgXAotICAgICAgICAgICIwLjAwMzMxNSwgMC4wMDMzMTYsIDAuMDAzMzE4LCAwLjAwMzMxNywgMC4wMDMzMTcsIDAuMDAzMzE2LCAwLjAwMzMxNCIsIFwKLSAgICAgICAgICAiMC4wMDMzMTQsIDAuMDAzMzE1LCAwLjAwMzMxNywgMC4wMDMzMTcsIDAuMDAzMzE3LCAwLjAwMzMxNSwgMC4wMDMzMTQiLCBcCi0gICAgICAgICAgIjAuMDAzMzEzLCAwLjAwMzMxNCwgMC4wMDMzMTYsIDAuMDAzMzE3LCAwLjAwMzMxNiwgMC4wMDMzMTUsIDAuMDAzMzE0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxMDgxLCAwLjAwMTA4MSwgMC4wMDEwODEsIDAuMDAxMDgxLCAwLjAwMTA4LCAwLjAwMTA3OCwgMC4wMDEwNzYiLCBcCi0gICAgICAgICAgIjAuMDAxMDczLCAwLjAwMTA3MywgMC4wMDEwNzUsIDAuMDAxMDc1LCAwLjAwMTA3NiwgMC4wMDEwNzMsIDAuMDAxMDcyIiwgXAotICAgICAgICAgICIwLjAwMTA2NywgMC4wMDEwNjgsIDAuMDAxMDcyLCAwLjAwMTA3MywgMC4wMDEwNzMsIDAuMDAxMDcyLCAwLjAwMTA3IiwgXAotICAgICAgICAgICIwLjAwMTA2MiwgMC4wMDEwNjMsIDAuMDAxMDY5LCAwLjAwMTA3MSwgMC4wMDEwNzIsIDAuMDAxMDcxLCAwLjAwMTA3IiwgXAotICAgICAgICAgICIwLjAwMTA1OCwgMC4wMDEwNiwgMC4wMDEwNjcsIDAuMDAxMDcsIDAuMDAxMDcxLCAwLjAwMTA3LCAwLjAwMTA3IiwgXAotICAgICAgICAgICIwLjAwMTA1MywgMC4wMDEwNTUsIDAuMDAxMDY0LCAwLjAwMTA2OCwgMC4wMDEwNjksIDAuMDAxMDY5LCAwLjAwMTA2OSIsIFwKLSAgICAgICAgICAiMC4wMDEwNSwgMC4wMDEwNTIsIDAuMDAxMDYyLCAwLjAwMTA2NywgMC4wMDEwNjksIDAuMDAxMDY5LCAwLjAwMTA2OCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkExIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDMxLCAwLjAwMzEsIDAuMDAzMSwgMC4wMDMwOTksIDAuMDAzMDk5LCAwLjAwMzA5NywgMC4wMDMwOTYiLCBcCi0gICAgICAgICAgIjAuMDAzMDk4LCAwLjAwMzA5OSwgMC4wMDMwOTksIDAuMDAzMTAxLCAwLjAwMzA5OSwgMC4wMDMwOTYsIDAuMDAzMDk2IiwgXAotICAgICAgICAgICIwLjAwMzA5NCwgMC4wMDMwOTUsIDAuMDAzMDk4LCAwLjAwMzA5OCwgMC4wMDMwOTksIDAuMDAzMDk2LCAwLjAwMzA5NiIsIFwKLSAgICAgICAgICAiMC4wMDMwOTIsIDAuMDAzMDkzLCAwLjAwMzA5NywgMC4wMDMwOTgsIDAuMDAzMDk4LCAwLjAwMzA5NywgMC4wMDMwOTYiLCBcCi0gICAgICAgICAgIjAuMDAzMDg4LCAwLjAwMzA5MSwgMC4wMDMwOTYsIDAuMDAzMDk4LCAwLjAwMzA5NywgMC4wMDMwOTYsIDAuMDAzMDk1IiwgXAotICAgICAgICAgICIwLjAwMzA4NiwgMC4wMDMwODcsIDAuMDAzMDkzLCAwLjAwMzA5NiwgMC4wMDMwOTYsIDAuMDAzMDk2LCAwLjAwMzA5NiIsIFwKLSAgICAgICAgICAiMC4wMDMwODQsIDAuMDAzMDg1LCAwLjAwMzA5MiwgMC4wMDMwOTUsIDAuMDAzMDk2LCAwLjAwMzA5NiwgMC4wMDMwOTQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDEwODEsIDAuMDAxMDgxLCAwLjAwMTA4MSwgMC4wMDEwODEsIDAuMDAxMDc5LCAwLjAwMTA3NywgMC4wMDEwNzYiLCBcCi0gICAgICAgICAgIjAuMDAxMDczLCAwLjAwMTA3MywgMC4wMDEwNzUsIDAuMDAxMDc0LCAwLjAwMTA3NSwgMC4wMDEwNzMsIDAuMDAxMDcyIiwgXAotICAgICAgICAgICIwLjAwMTA2NiwgMC4wMDEwNjgsIDAuMDAxMDcyLCAwLjAwMTA3MywgMC4wMDEwNzQsIDAuMDAxMDcyLCAwLjAwMTA3MSIsIFwKLSAgICAgICAgICAiMC4wMDEwNjIsIDAuMDAxMDYzLCAwLjAwMTA2OSwgMC4wMDEwNzIsIDAuMDAxMDcyLCAwLjAwMTA3MSwgMC4wMDEwNyIsIFwKLSAgICAgICAgICAiMC4wMDEwNTgsIDAuMDAxMDYsIDAuMDAxMDY3LCAwLjAwMTA3LCAwLjAwMTA3MSwgMC4wMDEwNywgMC4wMDEwNyIsIFwKLSAgICAgICAgICAiMC4wMDEwNTQsIDAuMDAxMDU2LCAwLjAwMTA2NCwgMC4wMDEwNjgsIDAuMDAxMDcsIDAuMDAxMDcsIDAuMDAxMDY4IiwgXAotICAgICAgICAgICIwLjAwMTA1MiwgMC4wMDEwNTQsIDAuMDAxMDYzLCAwLjAwMTA2NywgMC4wMDEwNjksIDAuMDAxMDY5LCAwLjAwMTA2OCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEyIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI4NDQsIDAuMDAyODQ0LCAwLjAwMjg0NCwgMC4wMDI4NDQsIDAuMDAyODQ0LCAwLjAwMjg0MSwgMC4wMDI4NDIiLCBcCi0gICAgICAgICAgIjAuMDAyODQ1LCAwLjAwMjg0NiwgMC4wMDI4NDgsIDAuMDAyODQ5LCAwLjAwMjg0OSwgMC4wMDI4NDgsIDAuMDAyODQ4IiwgXAotICAgICAgICAgICIwLjAwMjg0LCAwLjAwMjg0MiwgMC4wMDI4NDcsIDAuMDAyODQ4LCAwLjAwMjg0OSwgMC4wMDI4NDgsIDAuMDAyODQ4IiwgXAotICAgICAgICAgICIwLjAwMjgzNiwgMC4wMDI4MzgsIDAuMDAyODQ1LCAwLjAwMjg0NywgMC4wMDI4NDgsIDAuMDAyODQ4LCAwLjAwMjg0NyIsIFwKLSAgICAgICAgICAiMC4wMDI4MzMsIDAuMDAyODM1LCAwLjAwMjg0MywgMC4wMDI4NDYsIDAuMDAyODQ3LCAwLjAwMjg0OCwgMC4wMDI4NDciLCBcCi0gICAgICAgICAgIjAuMDAyODI4LCAwLjAwMjgzLCAwLjAwMjg0LCAwLjAwMjg0NSwgMC4wMDI4NDYsIDAuMDAyODQ2LCAwLjAwMjg0NyIsIFwKLSAgICAgICAgICAiMC4wMDI4MjQsIDAuMDAyODI3LCAwLjAwMjgzOCwgMC4wMDI4NDQsIDAuMDAyODQ2LCAwLjAwMjg0NywgMC4wMDI4NDYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDEwODEsIDAuMDAxMDgxLCAwLjAwMTA4MSwgMC4wMDEwODMsIDAuMDAxMDgsIDAuMDAxMDg0LCAwLjAwMTA3NyIsIFwKLSAgICAgICAgICAiMC4wMDEwNzIsIDAuMDAxMDczLCAwLjAwMTA3NSwgMC4wMDEwNzUsIDAuMDAxMDc1LCAwLjAwMTA3MywgMC4wMDEwNzIiLCBcCi0gICAgICAgICAgIjAuMDAxMDY2LCAwLjAwMTA2NywgMC4wMDEwNzEsIDAuMDAxMDczLCAwLjAwMTA3MywgMC4wMDEwNzIsIDAuMDAxMDcxIiwgXAotICAgICAgICAgICIwLjAwMTA2MiwgMC4wMDEwNjMsIDAuMDAxMDcsIDAuMDAxMDcyLCAwLjAwMTA3MiwgMC4wMDEwNzEsIDAuMDAxMDciLCBcCi0gICAgICAgICAgIjAuMDAxMDYsIDAuMDAxMDYxLCAwLjAwMTA2OCwgMC4wMDEwNzEsIDAuMDAxMDcxLCAwLjAwMTA3MSwgMC4wMDEwNyIsIFwKLSAgICAgICAgICAiMC4wMDEwNjEsIDAuMDAxMDYyLCAwLjAwMTA2NywgMC4wMDEwNywgMC4wMDEwNywgMC4wMDEwNywgMC4wMDEwNjkiLCBcCi0gICAgICAgICAgIjAuMDAxMDYzLCAwLjAwMTA2NCwgMC4wMDEwNjcsIDAuMDAxMDcsIDAuMDAxMDcsIDAuMDAxMDcsIDAuMDAxMDY5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjUyOSwgMC4wMDI1MjksIDAuMDAyNTI4LCAwLjAwMjUyNywgMC4wMDI1MjcsIDAuMDAyNTI1LCAwLjAwMjUyNCIsIFwKLSAgICAgICAgICAiMC4wMDI1MjEsIDAuMDAyNTIxLCAwLjAwMjUyMiwgMC4wMDI1MjEsIDAuMDAyNTIxLCAwLjAwMjUxOSwgMC4wMDI1MTgiLCBcCi0gICAgICAgICAgIjAuMDAyNTE5LCAwLjAwMjUxOSwgMC4wMDI1MiwgMC4wMDI1MiwgMC4wMDI1MTksIDAuMDAyNTE3LCAwLjAwMjUxNiIsIFwKLSAgICAgICAgICAiMC4wMDI1MTgsIDAuMDAyNTE5LCAwLjAwMjUyLCAwLjAwMjUyLCAwLjAwMjUxOSwgMC4wMDI1MTcsIDAuMDAyNTE2IiwgXAotICAgICAgICAgICIwLjAwMjUxOCwgMC4wMDI1MTksIDAuMDAyNTIsIDAuMDAyNTIsIDAuMDAyNTE5LCAwLjAwMjUxNywgMC4wMDI1MTYiLCBcCi0gICAgICAgICAgIjAuMDAyNTIsIDAuMDAyNTIxLCAwLjAwMjUyLCAwLjAwMjUyLCAwLjAwMjUxOSwgMC4wMDI1MTcsIDAuMDAyNTE2IiwgXAotICAgICAgICAgICIwLjAwMjUyNCwgMC4wMDI1MjQsIDAuMDAyNTIyLCAwLjAwMjUyLCAwLjAwMjUxOSwgMC4wMDI1MTcsIDAuMDAyNTE1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwMzIyLCAwLjAwMDMyMywgMC4wMDAzMjQsIDAuMDAwMzI0LCAwLjAwMDMyNCwgMC4wMDAzMjQsIDAuMDAwMzI0IiwgXAotICAgICAgICAgICIwLjAwMDMyNiwgMC4wMDAzMjcsIDAuMDAwMzMyLCAwLjAwMDMzNCwgMC4wMDAzMzUsIDAuMDAwMzM2LCAwLjAwMDMzNiIsIFwKLSAgICAgICAgICAiMC4wMDAzMiwgMC4wMDAzMjMsIDAuMDAwMzMyLCAwLjAwMDMzNSwgMC4wMDAzMzYsIDAuMDAwMzM3LCAwLjAwMDMzOCIsIFwKLSAgICAgICAgICAiMC4wMDAzMTQsIDAuMDAwMzE3LCAwLjAwMDMyOSwgMC4wMDAzMzQsIDAuMDAwMzM2LCAwLjAwMDMzOCwgMC4wMDAzMzgiLCBcCi0gICAgICAgICAgIjAuMDAwMzA4LCAwLjAwMDMxMiwgMC4wMDAzMjYsIDAuMDAwMzMzLCAwLjAwMDMzNSwgMC4wMDAzMzcsIDAuMDAwMzM4IiwgXAotICAgICAgICAgICIwLjAwMDMsIDAuMDAwMzA0LCAwLjAwMDMyMiwgMC4wMDAzMzEsIDAuMDAwMzM0LCAwLjAwMDMzNywgMC4wMDAzMzgiLCBcCi0gICAgICAgICAgIjAuMDAwMjk1LCAwLjAwMDI5OSwgMC4wMDAzMTksIDAuMDAwMzI5LCAwLjAwMDMzMywgMC4wMDAzMzYsIDAuMDAwMzM3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjI5MiwgMC4wMDIyOTIsIDAuMDAyMjkyLCAwLjAwMjI5MSwgMC4wMDIyOTIsIDAuMDAyMjg5LCAwLjAwMjI4OSIsIFwKLSAgICAgICAgICAiMC4wMDIyODgsIDAuMDAyMjg5LCAwLjAwMjI5MSwgMC4wMDIyOSwgMC4wMDIyOTEsIDAuMDAyMjg5LCAwLjAwMjI4OCIsIFwKLSAgICAgICAgICAiMC4wMDIyODUsIDAuMDAyMjg2LCAwLjAwMjI4OSwgMC4wMDIyOSwgMC4wMDIyOSwgMC4wMDIyODksIDAuMDAyMjg3IiwgXAotICAgICAgICAgICIwLjAwMjI4NCwgMC4wMDIyODUsIDAuMDAyMjg4LCAwLjAwMjI4OSwgMC4wMDIyODksIDAuMDAyMjg4LCAwLjAwMjI4NyIsIFwKLSAgICAgICAgICAiMC4wMDIyODQsIDAuMDAyMjg1LCAwLjAwMjI4OCwgMC4wMDIyODksIDAuMDAyMjg5LCAwLjAwMjI4OCwgMC4wMDIyODciLCBcCi0gICAgICAgICAgIjAuMDAyMjg0LCAwLjAwMjI4NSwgMC4wMDIyODgsIDAuMDAyMjg5LCAwLjAwMjI4OSwgMC4wMDIyODgsIDAuMDAyMjg3IiwgXAotICAgICAgICAgICIwLjAwMjI4NywgMC4wMDIyODcsIDAuMDAyMjg5LCAwLjAwMjI4OSwgMC4wMDIyODksIDAuMDAyMjg4LCAwLjAwMjI4NyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDMyMiwgMC4wMDAzMjMsIDAuMDAwMzI0LCAwLjAwMDMyNCwgMC4wMDAzMjQsIDAuMDAwMzI0LCAwLjAwMDMyNCIsIFwKLSAgICAgICAgICAiMC4wMDAzMjYsIDAuMDAwMzI4LCAwLjAwMDMzMiwgMC4wMDAzMzQsIDAuMDAwMzM1LCAwLjAwMDMzNiwgMC4wMDAzMzYiLCBcCi0gICAgICAgICAgIjAuMDAwMzIsIDAuMDAwMzIzLCAwLjAwMDMzMiwgMC4wMDAzMzUsIDAuMDAwMzM2LCAwLjAwMDMzNywgMC4wMDAzMzgiLCBcCi0gICAgICAgICAgIjAuMDAwMzE0LCAwLjAwMDMxNywgMC4wMDAzMjksIDAuMDAwMzM0LCAwLjAwMDMzNiwgMC4wMDAzMzgsIDAuMDAwMzM4IiwgXAotICAgICAgICAgICIwLjAwMDMwOCwgMC4wMDAzMTIsIDAuMDAwMzI3LCAwLjAwMDMzMywgMC4wMDAzMzUsIDAuMDAwMzM3LCAwLjAwMDMzOCIsIFwKLSAgICAgICAgICAiMC4wMDAzMDEsIDAuMDAwMzA1LCAwLjAwMDMyMywgMC4wMDAzMzEsIDAuMDAwMzM0LCAwLjAwMDMzNywgMC4wMDAzMzgiLCBcCi0gICAgICAgICAgIjAuMDAwMjk3LCAwLjAwMDMwMiwgMC4wMDAzMiwgMC4wMDAzMjksIDAuMDAwMzMzLCAwLjAwMDMzNiwgMC4wMDAzMzciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyMDI2LCAwLjAwMjAyNywgMC4wMDIwMjcsIDAuMDAyMDI3LCAwLjAwMjAyOCwgMC4wMDIwMjUsIDAuMDAyMDI1IiwgXAotICAgICAgICAgICIwLjAwMjAyNiwgMC4wMDIwMjcsIDAuMDAyMDMxLCAwLjAwMjAzMSwgMC4wMDIwMzEsIDAuMDAyMDMsIDAuMDAyMDMiLCBcCi0gICAgICAgICAgIjAuMDAyMDIzLCAwLjAwMjAyNCwgMC4wMDIwMjksIDAuMDAyMDMxLCAwLjAwMjAzMSwgMC4wMDIwMzEsIDAuMDAyMDMxIiwgXAotICAgICAgICAgICIwLjAwMjAyLCAwLjAwMjAyMSwgMC4wMDIwMjgsIDAuMDAyMDMsIDAuMDAyMDMxLCAwLjAwMjAzMSwgMC4wMDIwMyIsIFwKLSAgICAgICAgICAiMC4wMDIwMTgsIDAuMDAyMDE5LCAwLjAwMjAyNywgMC4wMDIwMywgMC4wMDIwMywgMC4wMDIwMzEsIDAuMDAyMDMiLCBcCi0gICAgICAgICAgIjAuMDAyMDE3LCAwLjAwMjAxOSwgMC4wMDIwMjYsIDAuMDAyMDI5LCAwLjAwMjAzLCAwLjAwMjAzLCAwLjAwMjAzIiwgXAotICAgICAgICAgICIwLjAwMjAxOCwgMC4wMDIwMiwgMC4wMDIwMjYsIDAuMDAyMDI5LCAwLjAwMjAyOSwgMC4wMDIwMywgMC4wMDIwMyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDMyMiwgMC4wMDAzMjIsIDAuMDAwMzI0LCAwLjAwMDMyNCwgMC4wMDAzMjQsIDAuMDAwMzI2LCAwLjAwMDMyNCIsIFwKLSAgICAgICAgICAiMC4wMDAzMjYsIDAuMDAwMzI3LCAwLjAwMDMzMiwgMC4wMDAzMzQsIDAuMDAwMzM1LCAwLjAwMDMzNiwgMC4wMDAzMzYiLCBcCi0gICAgICAgICAgIjAuMDAwMzIsIDAuMDAwMzIzLCAwLjAwMDMzMiwgMC4wMDAzMzUsIDAuMDAwMzM3LCAwLjAwMDMzOCwgMC4wMDAzMzgiLCBcCi0gICAgICAgICAgIjAuMDAwMzE1LCAwLjAwMDMxOSwgMC4wMDAzMywgMC4wMDAzMzUsIDAuMDAwMzM3LCAwLjAwMDMzOCwgMC4wMDAzMzkiLCBcCi0gICAgICAgICAgIjAuMDAwMzEyLCAwLjAwMDMxNiwgMC4wMDAzMjgsIDAuMDAwMzM0LCAwLjAwMDMzNiwgMC4wMDAzMzgsIDAuMDAwMzM5IiwgXAotICAgICAgICAgICIwLjAwMDMxMSwgMC4wMDAzMTMsIDAuMDAwMzI2LCAwLjAwMDMzMywgMC4wMDAzMzUsIDAuMDAwMzM4LCAwLjAwMDMzOCIsIFwKLSAgICAgICAgICAiMC4wMDAzMTIsIDAuMDAwMzE0LCAwLjAwMDMyNiwgMC4wMDAzMzIsIDAuMDAwMzM1LCAwLjAwMDMzOCwgMC4wMDAzMzgiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IEJNWElYNCAqCi0gKiAtLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKEJNWElYNCkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjQxMDU5NDsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwOTkyNzY7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwOTg5MzYzOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDk5Mjc2OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDQzNSwgMC4wMDA0NDEsIDAuMDAwNDQyLCAwLjAwMDQ0MywgMC4wMDA0NDMsIDAuMDAwNDQ0LCAwLjAwMDQ0NCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDQ2MSwgMC4wMDA0NTUsIDAuMDAwNDU1LCAwLjAwMDQ1NCwgMC4wMDA0NTUsIDAuMDAwNDU0LCAwLjAwMDQ1NCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oTTApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTI1MjI1OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTI1MTM4OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTI1MjI1OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDI4NiwgMC4wMDAyNTcsIDAuMDAwMjYxLCAwLjAwMDI2NCwgMC4wMDAyNzQsIDAuMDAwMzAxLCAwLjAwMDMyNyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjEwNSwgMC4wMDIwODQsIDAuMDAyMDgxLCAwLjAwMjA4OSwgMC4wMDIwOTksIDAuMDAyMTI0LCAwLjAwMjE0NiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oTTEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTQwODY5OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTQwODI0OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTQwODY5OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDMxLCAwLjAwMDI4MywgMC4wMDAyODcsIDAuMDAwMjkzLCAwLjAwMDMwNCwgMC4wMDAzMzEsIDAuMDAwMzU2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxNzQ2LCAwLjAwMTcyNiwgMC4wMDE3MjQsIDAuMDAxNzMyLCAwLjAwMTc0NSwgMC4wMDE3NzIsIDAuMDAxNzk0Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihQUE4pICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMS4wOTIzNzsKLSAgICBmdW5jdGlvbiA6ICIoKFgyICgoTTAgQSkgKyAoIU0wIFMpKSkgKyAoIVgyICgoTTEgQSkgKyAoIU0xIFMpKSkpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE1NzE0OCwgMC4yNTA1NjIsIDAuMzI0OTgyLCAwLjM3NjQ3NywgMC40NTgyOTgsIDAuNTI5NzMxLCAwLjYzMTY4MSIsIFwKLSAgICAgICAgICAiMC4xNjYyNTQsIDAuMjU5NTAyLCAwLjMzMzk5OSwgMC4zODU1MjIsIDAuNDY3MzU3LCAwLjUzODczMiwgMC42NDA3MTciLCBcCi0gICAgICAgICAgIjAuMTc3MTAxLCAwLjI3MDQ5MiwgMC4zNDQ5MjIsIDAuMzk2NDE3LCAwLjQ3ODIzNCwgMC41NDk2NywgMC42NTE2MjIiLCBcCi0gICAgICAgICAgIjAuMTg3OTg2LCAwLjI4MTM2OCwgMC4zNTU4MDQsIDAuNDA3MywgMC40ODkxMjIsIDAuNTYwNTUzLCAwLjY2MjUwNSIsIFwKLSAgICAgICAgICAiMC4xOTg2NDUsIDAuMjkyMDQxLCAwLjM2NjQ0LCAwLjQxNzk2MSwgMC40OTk3OTgsIDAuNTcxMTk0LCAwLjY3MzE2MSIsIFwKLSAgICAgICAgICAiMC4yMTU2OTUsIDAuMzA5MTE5LCAwLjM4MzU0MywgMC40MzUwNTQsIDAuNTE2ODcxLCAwLjU4ODMwNCwgMC42OTAyNDkiLCBcCi0gICAgICAgICAgIjAuMjMwMzU0LCAwLjMyMzcwNCwgMC4zOTgxMDgsIDAuNDQ5NjM3LCAwLjUzMTQ4OCwgMC42MDI5MDksIDAuNzA0ODc0Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU5MTIsIDAuMjAwODk2LCAwLjM0MDkxOCwgMC40NDI2ODQsIDAuNjA3NzgsIDAuNzUyMzg4LCAwLjk2MTY2NyIsIFwKLSAgICAgICAgICAiMC4wNTkwMTYsIDAuMjAwODc4LCAwLjM0MDkzNSwgMC40NDI2ODcsIDAuNjA3NjI0LCAwLjc1MjM5MSwgMC45NjEzNTgiLCBcCi0gICAgICAgICAgIjAuMDU5MTIsIDAuMjAwODUzLCAwLjM0MDkzNywgMC40NDI2NTIsIDAuNjA3NywgMC43NTIzMTgsIDAuOTYxMzUiLCBcCi0gICAgICAgICAgIjAuMDU4OTk3LCAwLjIwMDg1NiwgMC4zNDA5LCAwLjQ0MjU4OSwgMC42MDc2NjcsIDAuNzUyOTU0LCAwLjk2MTM3NSIsIFwKLSAgICAgICAgICAiMC4wNTkwMjEsIDAuMjAwODYxLCAwLjM0MDk0NywgMC40NDI3MjIsIDAuNjA3NjYsIDAuNzUyMjcyLCAwLjk2MTM4OSIsIFwKLSAgICAgICAgICAiMC4wNTg5OTgsIDAuMjAwODcyLCAwLjM0MDkwNCwgMC40NDI2NjUsIDAuNjA3NjE2LCAwLjc1MjkwMywgMC45NjEzNDMiLCBcCi0gICAgICAgICAgIjAuMDU5MDY2LCAwLjIwMDkwMSwgMC4zNDA5MzksIDAuNDQyNjM3LCAwLjYwNzY5OCwgMC43NTMwNjYsIDAuOTYxNzUyIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTY2NTE4LCAwLjI2NDc0OSwgMC4zNDIzNjQsIDAuMzk1NzQzLCAwLjQ4MDI5OSwgMC41NTM5NTYsIDAuNjU5MDk2IiwgXAotICAgICAgICAgICIwLjE3NTE3NSwgMC4yNzM0MzEsIDAuMzUxMDU4LCAwLjQwNDQzNywgMC40ODkwMDgsIDAuNTYyNjYzLCAwLjY2NzgxNSIsIFwKLSAgICAgICAgICAiMC4xODUxMjUsIDAuMjgzMjYsIDAuMzYwOTY0LCAwLjQxNDM4MSwgMC40OTg4ODgsIDAuNTcyNTU3LCAwLjY3NzY3NCIsIFwKLSAgICAgICAgICAiMC4xOTQ4NjYsIDAuMjkzMTExLCAwLjM3MDczOCwgMC40MjQxMTcsIDAuNTA4Njg4LCAwLjU4MjM0NCwgMC42ODc0NTciLCBcCi0gICAgICAgICAgIjAuMjA0NDg5LCAwLjMwMjc2NCwgMC4zODA0MDEsIDAuNDMzNzgyLCAwLjUxODM1NiwgMC41OTIwMTIsIDAuNjk3MTUzIiwgXAotICAgICAgICAgICIwLjIxOTc4NSwgMC4zMTgwMTUsIDAuMzk1NjAyLCAwLjQ0ODk3MSwgMC41MzM1NSwgMC42MDcyMDcsIDAuNzEyMzU2IiwgXAotICAgICAgICAgICIwLjIzMjk5NSwgMC4zMzEyNzYsIDAuNDA4ODkxLCAwLjQ2MjI2LCAwLjU0NjgzOCwgMC42MjA0OTMsIDAuNzI1NjM0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDYyNTQ1LCAwLjIwNzQxNCwgMC4zNDg4OCwgMC40NTE2NjgsIDAuNjE3NTk2LCAwLjc2NTI0MSwgMC45NzYyMzciLCBcCi0gICAgICAgICAgIjAuMDYyNTQ5LCAwLjIwNzM5NSwgMC4zNDg4OSwgMC40NTE2NTUsIDAuNjE3OTU5LCAwLjc2NTI3NiwgMC45NzY0MzIiLCBcCi0gICAgICAgICAgIjAuMDYyNTU3LCAwLjIwNzM5LCAwLjM0ODg4MywgMC40NTE2NTQsIDAuNjE3NjEzLCAwLjc2NDY5MywgMC45NzY1NzQiLCBcCi0gICAgICAgICAgIjAuMDYyNTU4LCAwLjIwNzQwMSwgMC4zNDg4ODIsIDAuNDUxNjUyLCAwLjYxNzU3OSwgMC43NjUyMDYsIDAuOTc2MjQ0IiwgXAotICAgICAgICAgICIwLjA2MjUxLCAwLjIwNzQwNSwgMC4zNDg4NzMsIDAuNDUxNjQzLCAwLjYxNzU1OSwgMC43NjQwMTgsIDAuOTc2NTExIiwgXAotICAgICAgICAgICIwLjA2MjQ5OCwgMC4yMDc0MDIsIDAuMzQ4ODc0LCAwLjQ1MTc3NywgMC42MTc2MDksIDAuNzY0NDk0LCAwLjk3NjIyIiwgXAotICAgICAgICAgICIwLjA2MjQ2NiwgMC4yMDc0MzYsIDAuMzQ4ODY4LCAwLjQ1MTUzOSwgMC42MTc2MiwgMC43NjUyNjUsIDAuOTc2MjE3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIk0wIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE0ODk2MiwgMC4yNDIzNDEsIDAuMzE2NzM2LCAwLjM2ODIyLCAwLjQ1MDAzNSwgMC41MjE0NjYsIDAuNjIzNDA3IiwgXAotICAgICAgICAgICIwLjE1ODMxOSwgMC4yNTE2MzgsIDAuMzI2MDEyLCAwLjM3NzUyNiwgMC40NTkzNDIsIDAuNTMwNzM5LCAwLjYzMjY4NyIsIFwKLSAgICAgICAgICAiMC4xNjk5NSwgMC4yNjMzMTksIDAuMzM3NzQzLCAwLjM4OTIzMywgMC40NzExMDEsIDAuNTQyNDY3LCAwLjY0NDQ3MSIsIFwKLSAgICAgICAgICAiMC4xODE4MDksIDAuMjc1MTY5LCAwLjM0OTU4MywgMC40MDEwNywgMC40ODI4NzUsIDAuNTU0MzA0LCAwLjY1NjI1MSIsIFwKLSAgICAgICAgICAiMC4xOTM2MzEsIDAuMjg2OTg0LCAwLjM2MTQwNiwgMC40MTI4OTQsIDAuNDk0NzA4LCAwLjU2NjEzLCAwLjY2ODA3NyIsIFwKLSAgICAgICAgICAiMC4yMTI2NTQsIDAuMzA1OTgzLCAwLjM4MDQyMywgMC40MzE5MiwgMC41MTM3ODUsIDAuNTg1MTU1LCAwLjY4NzExNCIsIFwKLSAgICAgICAgICAiMC4yMjkyMjEsIDAuMzIyNTU0LCAwLjM5NjkzLCAwLjQ0ODQ0OCwgMC41MzAyOCwgMC42MDE2OSwgMC43MDM2MzUiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTg4NywgMC4yMDA3OSwgMC4zNDA4MiwgMC40NDI1MDgsIDAuNjA2ODQ1LCAwLjc1MjE0NCwgMC45NjEyNzgiLCBcCi0gICAgICAgICAgIjAuMDU4OTg0LCAwLjIwMDc4OSwgMC4zNDA4NDksIDAuNDQyNTQsIDAuNjA3NTIzLCAwLjc1MTgwMSwgMC45NjEyMzciLCBcCi0gICAgICAgICAgIjAuMDU4OTY4LCAwLjIwMDc4MSwgMC4zNDA4MDQsIDAuNDQyNDkxLCAwLjYwNzQ3LCAwLjc1MjEzNSwgMC45NjE1MDYiLCBcCi0gICAgICAgICAgIjAuMDU4ODgzLCAwLjIwMDc4MSwgMC4zNDA4MDUsIDAuNDQyNDg0LCAwLjYwNjcwMywgMC43NTIxOTksIDAuOTYxMTUxIiwgXAotICAgICAgICAgICIwLjA1ODkzMSwgMC4yMDA3OTQsIDAuMzQwODE0LCAwLjQ0MjQ5MiwgMC42MDc0OCwgMC43NTIyMTcsIDAuOTYxMjM5IiwgXAotICAgICAgICAgICIwLjA1ODg2NCwgMC4yMDA2MzUsIDAuMzQwODI2LCAwLjQ0MjQ4MiwgMC42MDc0NzYsIDAuNzUyMTkxLCAwLjk2MDI5NyIsIFwKLSAgICAgICAgICAiMC4wNTkwOCwgMC4yMDA4NDksIDAuMzQwODc4LCAwLjQ0MjU5OSwgMC42MDcwMywgMC43NTI4MjksIDAuOTYxMjQ0Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTU4NDM3LCAwLjI1NjY2LCAwLjMzNDIyNywgMC4zODc2MDIsIDAuNDcyMTYsIDAuNTQ1ODEsIDAuNjUwOTI4IiwgXAotICAgICAgICAgICIwLjE2NzQyMiwgMC4yNjU2MjYsIDAuMzQzMjM3LCAwLjM5NjYxMywgMC40ODExNzUsIDAuNTU0ODI1LCAwLjY1OTk5NSIsIFwKLSAgICAgICAgICAiMC4xNzg4MzUsIDAuMjc3MDQ2LCAwLjM1NDYyNiwgMC40MDc5OSwgMC40OTI1NjEsIDAuNTY2MjEyLCAwLjY3MTM0IiwgXAotICAgICAgICAgICIwLjE5MDIyNiwgMC4yODg0MzksIDAuMzY2MDcsIDAuNDE5NDM1LCAwLjUwMzk2OCwgMC41Nzc2NTgsIDAuNjgyNzYyIiwgXAotICAgICAgICAgICIwLjIwMTcxOCwgMC4yOTk5MDMsIDAuMzc3NDk0LCAwLjQzMDkyOCwgMC41MTU0MzMsIDAuNTg5MTE1LCAwLjY5NDIxMSIsIFwKLSAgICAgICAgICAiMC4yMjAxNywgMC4zMTgzMjEsIDAuMzk1OTIzLCAwLjQ0OTMyMSwgMC41MzM4MzYsIDAuNjA3NTA3LCAwLjcxMjYyIiwgXAotICAgICAgICAgICIwLjIzNTc5NywgMC4zMzQwMDIsIDAuNDExNjMxLCAwLjQ2NTAwMSwgMC41NDk2MDEsIDAuNjIzMjM0LCAwLjcyODM5NyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2MjQwOCwgMC4yMDczNTMsIDAuMzQ4ODQ2LCAwLjQ1MTYxNSwgMC42MTc1MzUsIDAuNzYzOTY1LCAwLjk3NDc0OSIsIFwKLSAgICAgICAgICAiMC4wNjI0MDMsIDAuMjA3MzQ5LCAwLjM0ODg1MiwgMC40NTE2MiwgMC42MTc1MjksIDAuNzYzOTU1LCAwLjk3MzY1MSIsIFwKLSAgICAgICAgICAiMC4wNjI0MiwgMC4yMDcxOTIsIDAuMzQ4ODUxLCAwLjQ1MTUxMSwgMC42MTc1NDUsIDAuNzYzOTU3LCAwLjk3NjIwMyIsIFwKLSAgICAgICAgICAiMC4wNjIyNDksIDAuMjA3MzY1LCAwLjM0ODg1LCAwLjQ1MTUsIDAuNjE3ODI0LCAwLjc2MzkxMSwgMC45NzQ3MTQiLCBcCi0gICAgICAgICAgIjAuMDYyNDc3LCAwLjIwNzM0NiwgMC4zNDg4ODcsIDAuNDUxNTAxLCAwLjYxNzU4NSwgMC43NjQ2MDIsIDAuOTc2MTM0IiwgXAotICAgICAgICAgICIwLjA2MjQxNCwgMC4yMDczNDMsIDAuMzQ4ODE5LCAwLjQ1MTQyMSwgMC42MTc1NTUsIDAuNzY1MjQxLCAwLjk3NjEyIiwgXAotICAgICAgICAgICIwLjA2MjMzLCAwLjIwNzQxNCwgMC4zNDg4MjksIDAuNDUxNTE4LCAwLjYxNzUzOSwgMC43NjM4NzYsIDAuOTc0Njk3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIk0wIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE3MDAyNSwgMC4yNjM0NDcsIDAuMzM3ODg3LCAwLjM4OTM3NywgMC40NzEyMTQsIDAuNTQyNjM1LCAwLjY0NDY0MyIsIFwKLSAgICAgICAgICAiMC4xNzk5MDYsIDAuMjczMzIxLCAwLjM0NzY2OCwgMC4zOTkyNTIsIDAuNDgxMDg0LCAwLjU1MjQ3OSwgMC42NTQ0NTEiLCBcCi0gICAgICAgICAgIjAuMTkwOTY1LCAwLjI4NDQyNywgMC4zNTg4MTksIDAuNDEwMzU0LCAwLjQ5MjE4OCwgMC41NjM1ODksIDAuNjY1NTU1IiwgXAotICAgICAgICAgICIwLjIwMDIyLCAwLjI5MzY3MiwgMC4zNjgwNjUsIDAuNDE5NTkxLCAwLjUwMTQyOCwgMC41NzI4MzcsIDAuNjc0Nzk0IiwgXAotICAgICAgICAgICIwLjIwNzYzMiwgMC4zMDEwMywgMC4zNzU2NzMsIDAuNDI3MTY0LCAwLjUwODk4NSwgMC41ODA0MjQsIDAuNjgyNCIsIFwKLSAgICAgICAgICAiMC4yMTc5MTMsIDAuMzExMDM5LCAwLjM4NTc5NywgMC40MzcyOTIsIDAuNTE5MjgzLCAwLjU5MDU1NywgMC42OTI2MjgiLCBcCi0gICAgICAgICAgIjAuMjI1NzA4LCAwLjMxODk5NCwgMC4zOTM1NTksIDAuNDQ1MDYxLCAwLjUyNjk3OSwgMC41OTgzMjMsIDAuNzAwMzQ3Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU5MDM3LCAwLjIwMDkwMSwgMC4zNDA5MTksIDAuNDQyNjIzLCAwLjYwNzYwOSwgMC43NTIzNTYsIDAuOTYxNjU0IiwgXAotICAgICAgICAgICIwLjA1OTA5OSwgMC4yMDA5MTgsIDAuMzQwODg5LCAwLjQ0MjY1NCwgMC42MDc2MzgsIDAuNzUyMjYsIDAuOTYxMzU1IiwgXAotICAgICAgICAgICIwLjA1OTA5MSwgMC4yMDA5MTIsIDAuMzQwOTIzLCAwLjQ0MjY0OSwgMC42MDc2MDksIDAuNzUyODQ3LCAwLjk2MTMzNSIsIFwKLSAgICAgICAgICAiMC4wNTkwMjcsIDAuMjAwOTAyLCAwLjM0MDk1NSwgMC40NDI2NjIsIDAuNjA3NTk4LCAwLjc1MjkwMiwgMC45NjEzMzYiLCBcCi0gICAgICAgICAgIjAuMDU4ODk4LCAwLjIwMDg4MiwgMC4zNDA5MDQsIDAuNDQyNTg3LCAwLjYwNzU3MiwgMC43NTIyMzYsIDAuOTYxNzI5IiwgXAotICAgICAgICAgICIwLjA1OTAxNSwgMC4yMDA4ODUsIDAuMzQwOTE3LCAwLjQ0MjU5MywgMC42MDcxMSwgMC43NTIzNTksIDAuOTYxMzM4IiwgXAotICAgICAgICAgICIwLjA1OTE2OSwgMC4yMDA5NzgsIDAuMzQwOTA1LCAwLjQ0MjY3NiwgMC42MDc2MzIsIDAuNzUyMzYxLCAwLjk2MTM1OCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE3NzUzOCwgMC4yNzU3NSwgMC4zNTMzMzEsIDAuNDA2NzA4LCAwLjQ5MTI3LCAwLjU2NDkzLCAwLjY3MDA0NCIsIFwKLSAgICAgICAgICAiMC4xODc3NTUsIDAuMjg1OTU2LCAwLjM2MzU2MiwgMC40MTY5MzgsIDAuNTAxNTA1LCAwLjU3NTE1OSwgMC42ODAzMjYiLCBcCi0gICAgICAgICAgIjAuMTk5NDc3LCAwLjI5NzY3MSwgMC4zNzUyOCwgMC40Mjg2NTQsIDAuNTEzMjIyLCAwLjU4Njg3NCwgMC42OTIwMzciLCBcCi0gICAgICAgICAgIjAuMjA5MTM2LCAwLjMwNzMwOCwgMC4zODQ5MDYsIDAuNDM4Mjk0LCAwLjUyMjgzOCwgMC41OTY0OTIsIDAuNzAxNjY2IiwgXAotICAgICAgICAgICIwLjIxNzYyNCwgMC4zMTU4NzksIDAuMzkzNDczLCAwLjQ0NjgzLCAwLjUzMTM4OCwgMC42MDUwMTgsIDAuNzEwMTciLCBcCi0gICAgICAgICAgIjAuMjI5MTA5LCAwLjMyNzI5MywgMC40MDQ4ODIsIDAuNDU4Mjg4LCAwLjU0Mjc5MiwgMC42MTY0NTcsIDAuNzIxNTc0IiwgXAotICAgICAgICAgICIwLjIzNzY0NywgMC4zMzU5NzksIDAuNDEzNTI4LCAwLjQ2NzAyOSwgMC41NTE1MzEsIDAuNjI1MjE4LCAwLjczMDMyMyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2MjQ5NSwgMC4yMDczNzQsIDAuMzQ4ODY3LCAwLjQ1MTY2MywgMC42MTc1NDQsIDAuNzY0MjM2LCAwLjk3NjIyMyIsIFwKLSAgICAgICAgICAiMC4wNjI0OTQsIDAuMjA3MzY2LCAwLjM0ODg2NiwgMC40NTE2NTIsIDAuNjE3NTQxLCAwLjc2NDA4NCwgMC45NzY1NjUiLCBcCi0gICAgICAgICAgIjAuMDYyNDc4LCAwLjIwNzM2MywgMC4zNDg4NjQsIDAuNDUxNjQ1LCAwLjYxNzU0MiwgMC43NjM5NTcsIDAuOTc2NTQzIiwgXAotICAgICAgICAgICIwLjA2MjQzOSwgMC4yMDcyNywgMC4zNDg4NDksIDAuNDUxNDYyLCAwLjYxNzU1OCwgMC43NjM5MjUsIDAuOTc2NDk4IiwgXAotICAgICAgICAgICIwLjA2MjUwNCwgMC4yMDczMjYsIDAuMzQ4ODIsIDAuNDUxNDk1LCAwLjYxNzU5OCwgMC43NjQ2OTQsIDAuOTc2MjE4IiwgXAotICAgICAgICAgICIwLjA2MjQ5LCAwLjIwNzMxMiwgMC4zNDg4MDcsIDAuNDUxNDcsIDAuNjE3NTY5LCAwLjc2NTI1NywgMC45NzYxNDEiLCBcCi0gICAgICAgICAgIjAuMDYyMzQxLCAwLjIwNzMzOCwgMC4zNDg4MzMsIDAuNDUxNDM3LCAwLjYxNzU3OSwgMC43NjUxOTUsIDAuOTc2MTk4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIk0xIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE0OTk1MSwgMC4yNDMzNjcsIDAuMzE3NzU2LCAwLjM2OTI3NCwgMC40NTExMDEsIDAuNTIyNDkzLCAwLjYyNDQ2MSIsIFwKLSAgICAgICAgICAiMC4xNTkzNzIsIDAuMjUyNzA5LCAwLjMyNzA5NSwgMC4zNzg2MTYsIDAuNDYwNDQ5LCAwLjUzMTg2MiwgMC42MzM4MDkiLCBcCi0gICAgICAgICAgIjAuMTcwOTczLCAwLjI2NDM1NywgMC4zMzg3ODQsIDAuMzkwMjc5LCAwLjQ3MjA5NiwgMC41NDM1MywgMC42NDU0ODQiLCBcCi0gICAgICAgICAgIjAuMTgyNzk2LCAwLjI3NjEzNywgMC4zNTA1ODcsIDAuNDAyMDgxLCAwLjQ4Mzk2MSwgMC41NTUzMzYsIDAuNjU3MzM4IiwgXAotICAgICAgICAgICIwLjE5NDYzOCwgMC4yODc5NjgsIDAuMzYyNDIyLCAwLjQxMzkxLCAwLjQ5NTc5NCwgMC41NjcxNjcsIDAuNjY5MTk2IiwgXAotICAgICAgICAgICIwLjIxMzc5OSwgMC4zMDcwNjYsIDAuMzgxNDI1LCAwLjQzMjk5NywgMC41MTQ4MzYsIDAuNTg2MzMyLCAwLjY4ODI4MiIsIFwKLSAgICAgICAgICAiMC4yMzAyMTEsIDAuMzIzNDg5LCAwLjM5Nzk0MiwgMC40NDk0NzIsIDAuNTMxMzE3LCAwLjYwMjY5NCwgMC43MDQ3OTciKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTg5MTgsIDAuMjAwODQ3LCAwLjM0MDk0LCAwLjQ0MjY0OCwgMC42MDc2NjQsIDAuNzUyMjY1LCAwLjk2MTM4NSIsIFwKLSAgICAgICAgICAiMC4wNTg4MzgsIDAuMjAwODQ1LCAwLjM0MDkzLCAwLjQ0MjY1NywgMC42MDc2MDgsIDAuNzUyOTM1LCAwLjk2MTM0OSIsIFwKLSAgICAgICAgICAiMC4wNTg5MTYsIDAuMjAwODQzLCAwLjM0MDg5MywgMC40NDI1OCwgMC42MDY4ODQsIDAuNzUyMzEsIDAuOTYxMzQyIiwgXAotICAgICAgICAgICIwLjA1ODkxMywgMC4yMDA3NjMsIDAuMzQwOTI1LCAwLjQ0MjYyOCwgMC42MDcxMDQsIDAuNzUyMjc4LCAwLjk1OTcwOCIsIFwKLSAgICAgICAgICAiMC4wNTg5LCAwLjIwMDc1OSwgMC4zNDA5MzEsIDAuNDQyNjMsIDAuNjA3MTA1LCAwLjc1MjMwOSwgMC45NjE3MTkiLCBcCi0gICAgICAgICAgIjAuMDU5MDM5LCAwLjIwMDg2MywgMC4zNDA4NTcsIDAuNDQyNjM2LCAwLjYwNzU2OCwgMC43NTI4MywgMC45NjEyNTQiLCBcCi0gICAgICAgICAgIjAuMDU5MDYsIDAuMjAwNzY2LCAwLjM0MDk2NSwgMC40NDI3MjgsIDAuNjA3MTI5LCAwLjc1MjM5OCwgMC45NjEyNTciKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNTg3MDQsIDAuMjU2OTIsIDAuMzM0NTI5LCAwLjM4NzkwOCwgMC40NzI0OCwgMC41NDYxMzcsIDAuNjUxMjU0IiwgXAotICAgICAgICAgICIwLjE2NzYzNSwgMC4yNjU4OTksIDAuMzQzNTE5LCAwLjM5NjkyMiwgMC40ODE0NDUsIDAuNTU1MTAyLCAwLjY2MDI0MiIsIFwKLSAgICAgICAgICAiMC4xNzkwNzQsIDAuMjc3Mjk2LCAwLjM1NDg3OCwgMC40MDgzMTYsIDAuNDkyODI4LCAwLjU2NjUxMywgMC42NzE2MjgiLCBcCi0gICAgICAgICAgIjAuMTkwNTEzLCAwLjI4ODcwMiwgMC4zNjYzMTcsIDAuNDE5Njg1LCAwLjUwNDI2OSwgMC41Nzc5MjcsIDAuNjgzMDUxIiwgXAotICAgICAgICAgICIwLjIwMTk5MywgMC4zMDAyMzUsIDAuMzc3ODY5LCAwLjQzMTI1MSwgMC41MTU3OTEsIDAuNTg5NDgxLCAwLjY5NDYyNyIsIFwKLSAgICAgICAgICAiMC4yMjA0MzcsIDAuMzE4NjAxLCAwLjM5NjIwMiwgMC40NDk2MjUsIDAuNTM0MTI3LCAwLjYwNzg2MSwgMC43MTMwMiIsIFwKLSAgICAgICAgICAiMC4yMzYyMjksIDAuMzM0Mzg4LCAwLjQxMTk5NywgMC40NjU0MDUsIDAuNTQ5OTc5LCAwLjYyMzY0OSwgMC43Mjg3NzQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjI0NzksIDAuMjA3MzQ4LCAwLjM0ODg0OSwgMC40NTE2MjUsIDAuNjE3NTQsIDAuNzY0MDA3LCAwLjk3NjIyIiwgXAotICAgICAgICAgICIwLjA2MjM4NSwgMC4yMDcyOTMsIDAuMzQ4ODUzLCAwLjQ1MTUzNiwgMC42MTc1NjMsIDAuNzY0NTk2LCAwLjk3NjIwMSIsIFwKLSAgICAgICAgICAiMC4wNjI1NDQsIDAuMjA3MzQzLCAwLjM0ODg1OCwgMC40NTE1MjUsIDAuNjE3NTk4LCAwLjc2NDQwNSwgMC45NzQ3MzUiLCBcCi0gICAgICAgICAgIjAuMDYyNDc1LCAwLjIwNzM1NiwgMC4zNDg4NSwgMC40NTE1MDksIDAuNjE3NTQyLCAwLjc2MzkzNywgMC45NzYyMjIiLCBcCi0gICAgICAgICAgIjAuMDYyMzEyLCAwLjIwNzM2MywgMC4zNDg4NDQsIDAuNDUxNjE2LCAwLjYxNzkxOSwgMC43NjM5ODEsIDAuOTc2MzE4IiwgXAotICAgICAgICAgICIwLjA2MjQ4LCAwLjIwNzMzOCwgMC4zNDg4MTUsIDAuNDUxNjI0LCAwLjYxNzU2MiwgMC43NjM5OTEsIDAuOTc2MTU4IiwgXAotICAgICAgICAgICIwLjA2MjQ2NywgMC4yMDc0LCAwLjM0ODgxMywgMC40NTE1NjMsIDAuNjE3NjA0LCAwLjc2Mzg5NywgMC45NzQ1OSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJNMSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNjU4MzMsIDAuMjU5MjMyLCAwLjMzMzY1MywgMC4zODUxNTEsIDAuNDY2OTY1LCAwLjUzODM5MSwgMC42NDAzNCIsIFwKLSAgICAgICAgICAiMC4xNzU1NzYsIDAuMjY4OTU2LCAwLjM0MzM1NCwgMC4zOTQ4ODMsIDAuNDc2NzEyLCAwLjU0ODExNiwgMC42NTAwNjIiLCBcCi0gICAgICAgICAgIjAuMTg1NzE3LCAwLjI3OTEzOSwgMC4zNTM1MjksIDAuNDA1MDUxLCAwLjQ4Njg3OSwgMC41NTgyOTUsIDAuNjYwMjMzIiwgXAotICAgICAgICAgICIwLjE5NDA1NSwgMC4yODc0MjUsIDAuMzYxODc2LCAwLjQxMzM1MSwgMC40OTUyNSwgMC41NjY2MjIsIDAuNjY4NTgiLCBcCi0gICAgICAgICAgIjAuMjAwNDk5LCAwLjI5Mzg5MywgMC4zNjg1ODEsIDAuNDIwMTE2LCAwLjUwMTkzMiwgMC41NzMzNjQsIDAuNjc1MzEyIiwgXAotICAgICAgICAgICIwLjIwOTkxOCwgMC4zMDMyMywgMC4zNzc3OTMsIDAuNDI5MzA0LCAwLjUxMTE2OCwgMC41ODI1MzksIDAuNjg0MjA2IiwgXAotICAgICAgICAgICIwLjIxNjM4NSwgMC4zMTAwNjIsIDAuMzg0MzQsIDAuNDM1ODMyLCAwLjUxNzgyMSwgMC41ODkyNTYsIDAuNjkxMjA2Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU4ODY0LCAwLjIwMDg4OSwgMC4zNDA5MjUsIDAuNDQyNzM0LCAwLjYwNjk1NiwgMC43NTIzNDEsIDAuOTYxMzQ2IiwgXAotICAgICAgICAgICIwLjA1ODgyNCwgMC4yMDA4OTEsIDAuMzQwOTAzLCAwLjQ0MjY1LCAwLjYwNzEyNSwgMC43NTI4ODcsIDAuOTYxMzQ0IiwgXAotICAgICAgICAgICIwLjA1ODk2MiwgMC4yMDA4OTIsIDAuMzQwOTU0LCAwLjQ0MjY1OSwgMC42MDc1OTgsIDAuNzUyOTQsIDAuOTYxMzI5IiwgXAotICAgICAgICAgICIwLjA1OTA1NiwgMC4yMDA4LCAwLjM0MDkyMiwgMC40NDI1NTMsIDAuNjA3NTksIDAuNzUyMzAyLCAwLjk2MTI1NCIsIFwKLSAgICAgICAgICAiMC4wNTkwNiwgMC4yMDA4ODEsIDAuMzQwOTQzLCAwLjQ0MjcwNywgMC42MDcxMDksIDAuNzUyMzcxLCAwLjk2MTMzIiwgXAotICAgICAgICAgICIwLjA1ODg3NSwgMC4yMDA3MjksIDAuMzQwOTE0LCAwLjQ0MjQ2NSwgMC42MDc1NCwgMC43NTIyNjYsIDAuOTYxMTgyIiwgXAotICAgICAgICAgICIwLjA1OTI4LCAwLjIwMDk3NCwgMC4zNDA5ODYsIDAuNDQyNjc3LCAwLjYwNzAzOSwgMC43NTIzNzcsIDAuOTYxMzUzIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTczNTEsIDAuMjcxNzU4LCAwLjM0OTM1NCwgMC40MDI3NzUsIDAuNDg3Mjc1LCAwLjU2MDk0MSwgMC42NjYwNzQiLCBcCi0gICAgICAgICAgIjAuMTgzNTc4LCAwLjI4MTg2MiwgMC4zNTk0OSwgMC40MTI5MTIsIDAuNDk3NDE0LCAwLjU3MTA3NCwgMC42NzYyMDYiLCBcCi0gICAgICAgICAgIjAuMTk0NTUsIDAuMjkyODE4LCAwLjM3MDM5NywgMC40MjM3NzYsIDAuNTA4MzQzLCAwLjU4MjAwMSwgMC42ODcxNjYiLCBcCi0gICAgICAgICAgIjAuMjAzNDU1LCAwLjMwMTY3LCAwLjM3OTI4OCwgMC40MzI2NiwgMC41MTcyMTksIDAuNTkwODc1LCAwLjY5NjAwOCIsIFwKLSAgICAgICAgICAiMC4yMTA4NjMsIDAuMzA5MTMxLCAwLjM4NjY5OSwgMC40NDAwNzgsIDAuNTI0Njc4LCAwLjU5ODMwMSwgMC43MDM1MDUiLCBcCi0gICAgICAgICAgIjAuMjIxMTE3LCAwLjMxOTM1MywgMC4zOTY5ODYsIDAuNDUwMzgyLCAwLjUzNDg5MywgMC42MDg1NzUsIDAuNzEzNjgzIiwgXAotICAgICAgICAgICIwLjIyODkzNSwgMC4zMjcxOTEsIDAuNDA0ODQyLCAwLjQ1ODIyMywgMC41NDI3NTMsIDAuNjE2NDU0LCAwLjcyMTU2MSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2MjUyMiwgMC4yMDczNTYsIDAuMzQ4ODksIDAuNDUxMjM4LCAwLjYxNzU2MiwgMC43NjUzNTUsIDAuOTc0NzkyIiwgXAotICAgICAgICAgICIwLjA2MjQwMywgMC4yMDczMTksIDAuMzQ4ODgxLCAwLjQ1MTQ3MiwgMC42MTc1NjksIDAuNzY1MzAyLCAwLjk3NjIxMSIsIFwKLSAgICAgICAgICAiMC4wNjI1MjQsIDAuMjA3NDAxLCAwLjM0ODg3OCwgMC40NTE2NSwgMC42MTc1NTMsIDAuNzY0MDE4LCAwLjk3NjUyNiIsIFwKLSAgICAgICAgICAiMC4wNjI0OTEsIDAuMjA3MzA4LCAwLjM0ODg3LCAwLjQ1MTYyMSwgMC42MTc1NjEsIDAuNzYzODY3LCAwLjk3NTA4NyIsIFwKLSAgICAgICAgICAiMC4wNjI1MDUsIDAuMjA3Mzg0LCAwLjM0ODg2MSwgMC40NTE2MzQsIDAuNjE3NTM2LCAwLjc2NDAwMiwgMC45NzYzMjgiLCBcCi0gICAgICAgICAgIjAuMDYyNTI0LCAwLjIwNzM1NSwgMC4zNDg4NSwgMC40NTE1MDQsIDAuNjE3NjA0LCAwLjc2NDU0NCwgMC45NzYxNTEiLCBcCi0gICAgICAgICAgIjAuMDYyNTM1LCAwLjIwNzQxMiwgMC4zNDg4NTgsIDAuNDUxNTksIDAuNjE3ODA1LCAwLjc2NTE2OCwgMC45NzQ3ODQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNTY5NTksIDAuMjUwNDA2LCAwLjMyNDgyNSwgMC4zNzYzMzIsIDAuNDU4MTYyLCAwLjUyOTU3NCwgMC42MzE1MTMiLCBcCi0gICAgICAgICAgIjAuMTY1OTgxLCAwLjI1OTM2LCAwLjMzMzc4OCwgMC4zODUyODIsIDAuNDY3MTQ3LCAwLjUzODUyOCwgMC42NDA1MTMiLCBcCi0gICAgICAgICAgIjAuMTc2ODUsIDAuMjcwMjczLCAwLjM0NDY1MywgMC4zOTYxOTQsIDAuNDc4MDIxLCAwLjU0OTQ0MSwgMC42NTEzNzUiLCBcCi0gICAgICAgICAgIjAuMTg3NzIyLCAwLjI4MTA3LCAwLjM1NTQ4MSwgMC40MDY5ODYsIDAuNDg4ODUsIDAuNTYwMjE4LCAwLjY2MjIxNiIsIFwKLSAgICAgICAgICAiMC4xOTg0NSwgMC4yOTE4MzQsIDAuMzY2MjcyLCAwLjQxNzgwMywgMC40OTk2MjUsIDAuNTcxMDA0LCAwLjY3MzAwMSIsIFwKLSAgICAgICAgICAiMC4yMTU4MzcsIDAuMzA5MTg5LCAwLjM4MzYzOSwgMC40MzUxMzYsIDAuNTE3MDA2LCAwLjU4ODM4NywgMC42OTA0MTQiLCBcCi0gICAgICAgICAgIjAuMjMwNzIsIDAuMzI0MDc4LCAwLjM5ODUyMiwgMC40NTAwNzEsIDAuNTMxOTA2LCAwLjYwMzI4NiwgMC43MDUzMDIiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTkyMjgsIDAuMjAwOTE4LCAwLjM0MDk1MywgMC40NDI2OSwgMC42MDc3NzYsIDAuNzUzMTQ3LCAwLjk2MTM3OCIsIFwKLSAgICAgICAgICAiMC4wNTkxMTIsIDAuMjAwODk2LCAwLjM0MDkyNiwgMC40NDI2ODIsIDAuNjA3Njc0LCAwLjc1MjI2MywgMC45NjE4MDMiLCBcCi0gICAgICAgICAgIjAuMDU4OTk0LCAwLjIwMDg3MiwgMC4zNDA5NTMsIDAuNDQyNjg3LCAwLjYwNzY4OCwgMC43NTI5MiwgMC45NjEzODIiLCBcCi0gICAgICAgICAgIjAuMDU5MDc5LCAwLjIwMDg5NSwgMC4zNDA5NTYsIDAuNDQyNzQ2LCAwLjYwNzY2MywgMC43NTI4NCwgMC45NjE3MDMiLCBcCi0gICAgICAgICAgIjAuMDU5MTU2LCAwLjIwMDkwNiwgMC4zNDA5NjIsIDAuNDQyNzI2LCAwLjYwNzY2OCwgMC43NTI5NTcsIDAuOTYxMzc2IiwgXAotICAgICAgICAgICIwLjA1OTA3OSwgMC4yMDA5MTQsIDAuMzQwOTUsIDAuNDQyNzE5LCAwLjYwNzY5OSwgMC43NTIzMzgsIDAuOTYxNzY1IiwgXAotICAgICAgICAgICIwLjA1OTA4OSwgMC4yMDA5NDMsIDAuMzQwOTc5LCAwLjQ0MjcyOSwgMC42MDc2OCwgMC43NTI5NTMsIDAuOTYxNzQ1Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTY1ODI5LCAwLjI2NDA0MywgMC4zNDE2NiwgMC4zOTUwNTcsIDAuNDc5NTYyLCAwLjU1MzIzNSwgMC42NTgzMzgiLCBcCi0gICAgICAgICAgIjAuMTc0Njg5LCAwLjI3Mjg3NywgMC4zNTA0ODksIDAuNDAzODcxLCAwLjQ4ODQyLCAwLjU2MjA2NCwgMC42NjcyMzIiLCBcCi0gICAgICAgICAgIjAuMTg0Njc1LCAwLjI4Mjg3OCwgMC4zNjA1MDMsIDAuNDEzODk0LCAwLjQ5ODQwOCwgMC41NzIwODgsIDAuNjc3MTkxIiwgXAotICAgICAgICAgICIwLjE5NDUyNywgMC4yOTI3MTksIDAuMzcwMzEzLCAwLjQyMzY4OSwgMC41MDgyNTEsIDAuNTgxOSwgMC42ODcwMjgiLCBcCi0gICAgICAgICAgIjAuMjA0MjQ3LCAwLjMwMjQzOSwgMC4zODAwOTEsIDAuNDMzNTA0LCAwLjUxODAwNSwgMC41OTE2OTIsIDAuNjk2Nzg1IiwgXAotICAgICAgICAgICIwLjIxOTg5OSwgMC4zMTgwNywgMC4zOTU2NzMsIDAuNDQ5MDc1LCAwLjUzMzU4MiwgMC42MDcyNzEsIDAuNzEyMzYiLCBcCi0gICAgICAgICAgIjAuMjMyOTgsIDAuMzMxMTU1LCAwLjQwODc1MiwgMC40NjIxNjIsIDAuNTQ2NjcxLCAwLjYyMDMzNywgMC43MjU0NTEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjI2MDksIDAuMjA3MzQ3LCAwLjM0ODg2NywgMC40NTE1MjIsIDAuNjE3NjA0LCAwLjc2NTI3LCAwLjk3NjI0NSIsIFwKLSAgICAgICAgICAiMC4wNjI1MSwgMC4yMDczNjQsIDAuMzQ4ODczLCAwLjQ1MTY2NSwgMC42MTc1NzUsIDAuNzY1MzQyLCAwLjk3NjUzOSIsIFwKLSAgICAgICAgICAiMC4wNjI1MTgsIDAuMjA3Mzc4LCAwLjM0ODg1OSwgMC40NTE2MzQsIDAuNjE4MDc0LCAwLjc2NDY5MSwgMC45NzYxODMiLCBcCi0gICAgICAgICAgIjAuMDYyNDI1LCAwLjIwNzM0OCwgMC4zNDg4NjQsIDAuNDUxOCwgMC42MTc2MSwgMC43NjM5NTgsIDAuOTc2NTE2IiwgXAotICAgICAgICAgICIwLjA2MjU0MSwgMC4yMDczNTUsIDAuMzQ4ODYxLCAwLjQ1MTYyMSwgMC42MTc1OTIsIDAuNzY1MTY2LCAwLjk3NjM3IiwgXAotICAgICAgICAgICIwLjA2MjQ2MiwgMC4yMDczNzMsIDAuMzQ4ODU3LCAwLjQ1MTc2NiwgMC42MTc1OTYsIDAuNzY1MjE3LCAwLjk3NjQwMSIsIFwKLSAgICAgICAgICAiMC4wNjI0OTQsIDAuMjA3NDI5LCAwLjM0ODg5OCwgMC40NTE3NjEsIDAuNjE3NTk5LCAwLjc2NTEzOCwgMC45NzYxOTciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiWDIiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTAwMTY5LCAwLjE5MzMwOSwgMC4yNjc2MTUsIDAuMzE5MDk1LCAwLjQwMDg2MiwgMC40NzIxOTksIDAuNTc0MTE0IiwgXAotICAgICAgICAgICIwLjEwOTEwNiwgMC4yMDIyNjUsIDAuMjc2NTQ1LCAwLjMyNzk3NCwgMC40MDk3MjQsIDAuNDgxMTIsIDAuNTgzMDI3IiwgXAotICAgICAgICAgICIwLjExOTEzNSwgMC4yMTIzMTIsIDAuMjg2NTk2LCAwLjMzODAzLCAwLjQxOTc5NCwgMC40OTExNzUsIDAuNTkzMDgyIiwgXAotICAgICAgICAgICIwLjEyODkwNSwgMC4yMjE5NDEsIDAuMjk2Mjc3LCAwLjM0NzcyNiwgMC40Mjk1MTEsIDAuNTAwODQ2LCAwLjYwMjc4OSIsIFwKLSAgICAgICAgICAiMC4xMzg4MTcsIDAuMjMxNzQsIDAuMzA2MDA0LCAwLjM1NzQ3MiwgMC40MzkyMzcsIDAuNTEwNjAxLCAwLjYxMjUxOSIsIFwKLSAgICAgICAgICAiMC4xNTQ4NDYsIDAuMjQ3NTA5LCAwLjMyMTc4NSwgMC4zNzMyMTcsIDAuNDU0OTc5LCAwLjUyNjM3MiwgMC42MjgyODQiLCBcCi0gICAgICAgICAgIjAuMTY3OTg5LCAwLjI2MDUzMywgMC4zMzQ4MTUsIDAuMzg2MjU1LCAwLjQ2ODAxNywgMC41Mzk0MDcsIDAuNjQxMzEzIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU4MjI4LCAwLjIwMDMxOSwgMC4zNDA0ODIsIDAuNDQyMjg1LCAwLjYwNzE5LCAwLjc1MTg4LCAwLjk2MTA4NiIsIFwKLSAgICAgICAgICAiMC4wNTgyNzYsIDAuMjAwMzYsIDAuMzQwNDU4LCAwLjQ0MjE3NSwgMC42MDcxNTMsIDAuNzUxODUsIDAuOTYxMjg2IiwgXAotICAgICAgICAgICIwLjA1ODEzNywgMC4yMDAzMTgsIDAuMzQwNDI3LCAwLjQ0MjEzMSwgMC42MDcxNjEsIDAuNzUxOTA2LCAwLjk2MDk0NCIsIFwKLSAgICAgICAgICAiMC4wNTc3MTYsIDAuMjAwMTgsIDAuMzQwMzk3LCAwLjQ0MjA2NSwgMC42MDcxNDEsIDAuNzUxOTQ0LCAwLjk2MTA5NiIsIFwKLSAgICAgICAgICAiMC4wNTcyNjUsIDAuMTk5OTc1LCAwLjM0MDMzNSwgMC40NDIwOTcsIDAuNjA3MTQyLCAwLjc1MTMwNiwgMC45NjA5MTEiLCBcCi0gICAgICAgICAgIjAuMDU3MzEsIDAuMTk5OTQ1LCAwLjM0MDI3MywgMC40NDIwMTcsIDAuNjA2NTAxLCAwLjc1MTc4NCwgMC45NjA4MTciLCBcCi0gICAgICAgICAgIjAuMDU4NzksIDAuMjAwMTY0LCAwLjM0MDM0MSwgMC40NDIxMjgsIDAuNjA2NTI0LCAwLjc1MTg2NSwgMC45NjA4NDYiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTAzODIsIDAuMjA4NDQzLCAwLjI4NTkzMiwgMC4zMzkyNjQsIDAuNDIzNzMyLCAwLjQ5NzM3MSwgMC42MDI0NCIsIFwKLSAgICAgICAgICAiMC4xMTg5MiwgMC4yMTY5NywgMC4yOTQ0NywgMC4zNDc3OTQsIDAuNDMyMjY5LCAwLjUwNTkxMywgMC42MTA5ODUiLCBcCi0gICAgICAgICAgIjAuMTI4NzQzLCAwLjIyNjc4OSwgMC4zMDQzMTUsIDAuMzU3NjE3LCAwLjQ0MjEyNSwgMC41MTU3NDQsIDAuNjIwODU0IiwgXAotICAgICAgICAgICIwLjEzNzk3OCwgMC4yMzU5MjEsIDAuMzEzNDgyLCAwLjM2Njg0NywgMC40NTEyOTEsIDAuNTI0OTE3LCAwLjYzMDAxMyIsIFwKLSAgICAgICAgICAiMC4xNDczNDMsIDAuMjQ1MjQ3LCAwLjMyMjczMywgMC4zNzYwNzksIDAuNDYwNTcyLCAwLjUzNDE5NiwgMC42MzkzMTkiLCBcCi0gICAgICAgICAgIjAuMTYyNDgxLCAwLjI2MDIzNiwgMC4zMzc2NSwgMC4zOTEwMywgMC40NzU0ODgsIDAuNTQ5MTIzLCAwLjY1NDIxNiIsIFwKLSAgICAgICAgICAiMC4xNzQ5NzgsIDAuMjcyNDQxLCAwLjM1MDExNywgMC40MDM0MzMsIDAuNDg3ODIsIDAuNTYxNTQ5LCAwLjY2NjY0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDYyMDA3LCAwLjIwNjk3OSwgMC4zNDg1MTEsIDAuNDUxMzY3LCAwLjYxNzMwNiwgMC43NjQwMDEsIDAuOTc1ODcyIiwgXAotICAgICAgICAgICIwLjA2MTk0MSwgMC4yMDY5NzEsIDAuMzQ4NTE5LCAwLjQ1MTMwNCwgMC42MTc1MDQsIDAuNzYzNjA1LCAwLjk3NDQ0MyIsIFwKLSAgICAgICAgICAiMC4wNjE4NTUsIDAuMjA2OTUsIDAuMzQ4NDkyLCAwLjQ1MTI5NCwgMC42MTcyMzQsIDAuNzYzNTIzLCAwLjk3NTgyMyIsIFwKLSAgICAgICAgICAiMC4wNjE2NDUsIDAuMjA2ODI2LCAwLjM0ODQ2NywgMC40NTEwNzcsIDAuNjE3MjI1LCAwLjc2NDk0MSwgMC45NzU4NTYiLCBcCi0gICAgICAgICAgIjAuMDYxMjE0LCAwLjIwNjY3OSwgMC4zNDg0MTYsIDAuNDUxMTg5LCAwLjYxNzE3NywgMC43NjM1ODIsIDAuOTc2MDU3IiwgXAotICAgICAgICAgICIwLjA2MDczMSwgMC4yMDY2NTMsIDAuMzQ4MzYyLCAwLjQ1MTA1NiwgMC42MTcxNDcsIDAuNzY0ODc3LCAwLjk3NTA3MSIsIFwKLSAgICAgICAgICAiMC4wNjE2NjYsIDAuMjA2NTkyLCAwLjM0ODQwNiwgMC40NTEyOCwgMC42MTcyNDEsIDAuNzYzNTk0LCAwLjk3NTg1OSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJYMiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDU0MTYsIDAuMTk4NTE1LCAwLjI3MjgxLCAwLjMyNDI1LCAwLjQwNjAwNiwgMC40NzczOTksIDAuNTc5MzE0IiwgXAotICAgICAgICAgICIwLjExNDg3NywgMC4yMDgwMTUsIDAuMjgyMzEsIDAuMzMzNzQ4LCAwLjQxNTQ5NywgMC40ODY5LCAwLjU4ODgxMyIsIFwKLSAgICAgICAgICAiMC4xMjU1OTQsIDAuMjE4NzIzLCAwLjI5MzAxMiwgMC4zNDQ0NTMsIDAuNDI2MjM1LCAwLjQ5NzYwNSwgMC41OTk1MiIsIFwKLSAgICAgICAgICAiMC4xMzUxOCwgMC4yMjgzNDMsIDAuMzAyNjM5LCAwLjM1NDA3OCwgMC40MzU4MzgsIDAuNTA3MjMzLCAwLjYwOTE1IiwgXAotICAgICAgICAgICIwLjE0MzE3MywgMC4yMzYxODYsIDAuMzEwNTA5LCAwLjM2MTk5NiwgMC40NDM3NzYsIDAuNTE1MTM0LCAwLjYxNzA1OCIsIFwKLSAgICAgICAgICAiMC4xNTM0OTMsIDAuMjQ2NDc4LCAwLjMyMDc3NiwgMC4zNzIyMDQsIDAuNDUzODI4LCAwLjUyNTM5LCAwLjYyNzE0MiIsIFwKLSAgICAgICAgICAiMC4xNjEwOSwgMC4yNTM2NCwgMC4zMjc5ODMsIDAuMzc5NDIzLCAwLjQ2MTIyMywgMC41MzI2MTUsIDAuNjM0NTM3Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU4NDM3LCAwLjIwMDQ0MSwgMC4zNDA1MjUsIDAuNDQyMjMzLCAwLjYwNjM4MSwgMC43NTE5NzIsIDAuOTYxMDE0IiwgXAotICAgICAgICAgICIwLjA1ODQ2NiwgMC4yMDA0NTcsIDAuMzQwNTMsIDAuNDQyMjQsIDAuNjA3MTkxLCAwLjc1MTk4NSwgMC45NjEwMTIiLCBcCi0gICAgICAgICAgIjAuMDU4MzQ0LCAwLjIwMDQxNiwgMC4zNDA1MTIsIDAuNDQyMjI2LCAwLjYwNzE4NiwgMC43NTE5ODgsIDAuOTYwOTg1IiwgXAotICAgICAgICAgICIwLjA1ODA5OSwgMC4yMDAzNiwgMC4zNDA0OCwgMC40NDIxOTksIDAuNjA2NzczLCAwLjc1MTk1OSwgMC45NjA5NzQiLCBcCi0gICAgICAgICAgIjAuMDU3OTc1LCAwLjIwMDA5MywgMC4zNDAzMTQsIDAuNDQyMjE0LCAwLjYwNzE5MywgMC43NTE4NjYsIDAuOTYwOTY1IiwgXAotICAgICAgICAgICIwLjA1NzMwNywgMC4yMDAxNDksIDAuMzQwMzg2LCAwLjQ0MjExMSwgMC42MDcxMTgsIDAuNzUxOTA1LCAwLjk2MDk1NSIsIFwKLSAgICAgICAgICAiMC4wNTcxODMsIDAuMTk5NzU1LCAwLjM0MDE4OSwgMC40NDIwNjYsIDAuNjA2Njk2LCAwLjc1MTc4MiwgMC45NjA5MzEiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTQxMDQsIDAuMjEyMjU3LCAwLjI4OTgwMiwgMC4zNDMxODUsIDAuNDI3NjM0LCAwLjUwMTI3MywgMC42MDYzNjciLCBcCi0gICAgICAgICAgIjAuMTI0MzM3LCAwLjIyMjQ5NiwgMC4zMDAwMzQsIDAuMzUzMzcsIDAuNDM3ODc5LCAwLjUxMTUxNCwgMC42MTY2MTYiLCBcCi0gICAgICAgICAgIjAuMTM1ODYsIDAuMjMzOTI2LCAwLjMxMTQxMiwgMC4zNjQ4MDYsIDAuNDQ5MjcsIDAuNTIyOTIxLCAwLjYyNzk4NiIsIFwKLSAgICAgICAgICAiMC4xNDU5NTIsIDAuMjQ0MTA0LCAwLjMyMTY0MywgMC4zNzQ5NjgsIDAuNDU5NTA5LCAwLjUzMzEyNSwgMC42MzgyMzMiLCBcCi0gICAgICAgICAgIjAuMTU0NTE2LCAwLjI1MjUxMywgMC4zMzAwNDIsIDAuMzgzMzgzLCAwLjQ2Nzg2MywgMC41NDE1MjUsIDAuNjQ2NiIsIFwKLSAgICAgICAgICAiMC4xNjU2NDUsIDAuMjYzNzEsIDAuMzQxMTg3LCAwLjM5NDU3MywgMC40NzkwMzcsIDAuNTUyNjczLCAwLjY1Nzc3NSIsIFwKLSAgICAgICAgICAiMC4xNzQzMDQsIDAuMjcxODgsIDAuMzQ5NDEyLCAwLjQwMjkyLCAwLjQ4NzQ0MywgMC41NjEwNTUsIDAuNjY1OTYyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDYyMDk1LCAwLjIwNjk2LCAwLjM0ODYwOSwgMC40NTEzNjcsIDAuNjE3MzA3LCAwLjc2MzYyMywgMC45NzQ1MzkiLCBcCi0gICAgICAgICAgIjAuMDYxOTY3LCAwLjIwNzA3NywgMC4zNDg1OTQsIDAuNDUxMzc3LCAwLjYxNzMyNywgMC43NjM3NjcsIDAuOTc2MDg0IiwgXAotICAgICAgICAgICIwLjA2MjAwNSwgMC4yMDcwMDMsIDAuMzQ4NTc3LCAwLjQ1MTE3NCwgMC42MTczMjEsIDAuNzYzNzkzLCAwLjk3NTczNiIsIFwKLSAgICAgICAgICAiMC4wNjE3NzksIDAuMjA2OTk2LCAwLjM0ODUwNSwgMC40NTEyMTksIDAuNjE3NjI4LCAwLjc2MzY5NywgMC45NzYwMzYiLCBcCi0gICAgICAgICAgIjAuMDYxNjU4LCAwLjIwNjkxMywgMC4zNDg0NTEsIDAuNDUxMjY5LCAwLjYxNzIyMiwgMC43NjM1OTIsIDAuOTc0NDcyIiwgXAotICAgICAgICAgICIwLjA2MTI2NSwgMC4yMDY5NDUsIDAuMzQ4NDYzLCAwLjQ1MTAzMywgMC42MTcyNTgsIDAuNzY0OTg3LCAwLjk3NTkwNCIsIFwKLSAgICAgICAgICAiMC4wNjEwNTgsIDAuMjA2NjA1LCAwLjM0ODM3MiwgMC40NTExOTYsIDAuNjE3MjU2LCAwLjc2MzU5MywgMC45NzQ0OTMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjMwNSwgMC4wMDYzODcsIDAuMDA2NDM5LCAwLjAwNjQ1OSwgMC4wMDY0NzcsIDAuMDA2NDg4LCAwLjAwNjQ5OCIsIFwKLSAgICAgICAgICAiMC4wMDYyNzMsIDAuMDA2MzU0LCAwLjAwNjQwOCwgMC4wMDY0MjcsIDAuMDA2NDQ3LCAwLjAwNjQ1NiwgMC4wMDY0NjYiLCBcCi0gICAgICAgICAgIjAuMDA2MjU2LCAwLjAwNjMzNywgMC4wMDYzODksIDAuMDA2NDEyLCAwLjAwNjQyOCwgMC4wMDY0MzksIDAuMDA2NDQ5IiwgXAotICAgICAgICAgICIwLjAwNjI0NywgMC4wMDYzMjQsIDAuMDA2Mzc5LCAwLjAwNjM5OCwgMC4wMDY0MTksIDAuMDA2NDI3LCAwLjAwNjQzOSIsIFwKLSAgICAgICAgICAiMC4wMDYyNDQsIDAuMDA2MzE3LCAwLjAwNjM3MSwgMC4wMDYzOSwgMC4wMDY0MTIsIDAuMDA2NDIyLCAwLjAwNjQzMyIsIFwKLSAgICAgICAgICAiMC4wMDYyNDcsIDAuMDA2MzA4LCAwLjAwNjM2MywgMC4wMDYzODMsIDAuMDA2NDA1LCAwLjAwNjQxNywgMC4wMDY0MjkiLCBcCi0gICAgICAgICAgIjAuMDA2MjU5LCAwLjAwNjMwOSwgMC4wMDYzNjEsIDAuMDA2MzgzLCAwLjAwNjQwNiwgMC4wMDY0MTksIDAuMDA2NDMxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTE4NTcsIDAuMDExOTYyLCAwLjAxMjAzMSwgMC4wMTIwNTksIDAuMDEyMDg1LCAwLjAxMjA5OSwgMC4wMTIxMTMiLCBcCi0gICAgICAgICAgIjAuMDExODM3LCAwLjAxMTk0MywgMC4wMTIwMTMsIDAuMDEyMDQsIDAuMDEyMDY3LCAwLjAxMjA4MSwgMC4wMTIwOTUiLCBcCi0gICAgICAgICAgIjAuMDExODI5LCAwLjAxMTkzMiwgMC4wMTIwMDIsIDAuMDEyMDI5LCAwLjAxMjA1NiwgMC4wMTIwNzEsIDAuMDEyMDg1IiwgXAotICAgICAgICAgICIwLjAxMTgyMywgMC4wMTE5MjMsIDAuMDExOTk0LCAwLjAxMjAyMSwgMC4wMTIwNDgsIDAuMDEyMDYzLCAwLjAxMjA3OCIsIFwKLSAgICAgICAgICAiMC4wMTE4MjIsIDAuMDExOTE3LCAwLjAxMTk4NywgMC4wMTIwMTYsIDAuMDEyMDQ0LCAwLjAxMjA1OSwgMC4wMTIwNzQiLCBcCi0gICAgICAgICAgIjAuMDExODI1LCAwLjAxMTkwOCwgMC4wMTE5NzksIDAuMDEyMDA4LCAwLjAxMjAzOCwgMC4wMTIwNTQsIDAuMDEyMDciLCBcCi0gICAgICAgICAgIjAuMDExODM5LCAwLjAxMTkwNiwgMC4wMTE5NzYsIDAuMDEyMDA2LCAwLjAxMjAzNywgMC4wMTIwNTQsIDAuMDEyMDcxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiTTAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA3NTY1LCAwLjAwNzY0NCwgMC4wMDc2OTcsIDAuMDA3NzE3LCAwLjAwNzczNywgMC4wMDc3NDgsIDAuMDA3NzU4IiwgXAotICAgICAgICAgICIwLjAwNzU0OSwgMC4wMDc2MjcsIDAuMDA3Njc5LCAwLjAwNzcwMiwgMC4wMDc3MiwgMC4wMDc3MzIsIDAuMDA3NzQzIiwgXAotICAgICAgICAgICIwLjAwNzU1NSwgMC4wMDc2MzIsIDAuMDA3Njg2LCAwLjAwNzcwNiwgMC4wMDc3MjgsIDAuMDA3NzM3LCAwLjAwNzc0OCIsIFwKLSAgICAgICAgICAiMC4wMDc1NTgsIDAuMDA3NjM4LCAwLjAwNzY5MSwgMC4wMDc3MTIsIDAuMDA3NzMzLCAwLjAwNzc0MywgMC4wMDc3NTMiLCBcCi0gICAgICAgICAgIjAuMDA3NTY3LCAwLjAwNzY0OCwgMC4wMDc3MDIsIDAuMDA3NzIxLCAwLjAwNzc0LCAwLjAwNzc1LCAwLjAwNzc2IiwgXAotICAgICAgICAgICIwLjAwNzU4NSwgMC4wMDc2NywgMC4wMDc3MjYsIDAuMDA3NzQ1LCAwLjAwNzc2NSwgMC4wMDc3NzcsIDAuMDA3Nzg4IiwgXAotICAgICAgICAgICIwLjAwNzYxNywgMC4wMDc2OTcsIDAuMDA3NzQ3LCAwLjAwNzc2NiwgMC4wMDc3ODcsIDAuMDA3Nzk2LCAwLjAwNzgwOSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA4NTQ4LCAwLjAwODY1MSwgMC4wMDg3MjEsIDAuMDA4NzQ4LCAwLjAwODc3NSwgMC4wMDg3ODksIDAuMDA4ODAzIiwgXAotICAgICAgICAgICIwLjAwODUyNiwgMC4wMDg2MjksIDAuMDA4Njk5LCAwLjAwODcyNiwgMC4wMDg3NTMsIDAuMDA4NzY3LCAwLjAwODc4MSIsIFwKLSAgICAgICAgICAiMC4wMDg1MzEsIDAuMDA4NjM0LCAwLjAwODcwMywgMC4wMDg3MywgMC4wMDg3NTcsIDAuMDA4NzcyLCAwLjAwODc4NSIsIFwKLSAgICAgICAgICAiMC4wMDg1NDUsIDAuMDA4NjQ3LCAwLjAwODcxNiwgMC4wMDg3NDQsIDAuMDA4NzcsIDAuMDA4Nzg1LCAwLjAwODc5OSIsIFwKLSAgICAgICAgICAiMC4wMDg1NDIsIDAuMDA4NjQ4LCAwLjAwODcxOCwgMC4wMDg3NDQsIDAuMDA4NzcyLCAwLjAwODc4NiwgMC4wMDg4MDEiLCBcCi0gICAgICAgICAgIjAuMDA4NTY5LCAwLjAwODY3NCwgMC4wMDg3NDQsIDAuMDA4NzcxLCAwLjAwODc5OCwgMC4wMDg4MTMsIDAuMDA4ODI3IiwgXAotICAgICAgICAgICIwLjAwODU5NiwgMC4wMDg3LCAwLjAwODc2OSwgMC4wMDg3OTYsIDAuMDA4ODIzLCAwLjAwODgzMywgMC4wMDg4NTEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJNMSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDczNjksIDAuMDA3NDQ0LCAwLjAwNzQ5NSwgMC4wMDc1MTUsIDAuMDA3NTM2LCAwLjAwNzU0NCwgMC4wMDc1NTQiLCBcCi0gICAgICAgICAgIjAuMDA3MzUzLCAwLjAwNzQyOCwgMC4wMDc0ODEsIDAuMDA3NSwgMC4wMDc1MTgsIDAuMDA3NTI4LCAwLjAwNzUzOCIsIFwKLSAgICAgICAgICAiMC4wMDczNjEsIDAuMDA3NDM2LCAwLjAwNzQ4OCwgMC4wMDc1MDcsIDAuMDA3NTI2LCAwLjAwNzUzNiwgMC4wMDc1NDYiLCBcCi0gICAgICAgICAgIjAuMDA3MzYzLCAwLjAwNzQ0MywgMC4wMDc0OTMsIDAuMDA3NTEzLCAwLjAwNzUzMiwgMC4wMDc1NDIsIDAuMDA3NTUyIiwgXAotICAgICAgICAgICIwLjAwNzM3MiwgMC4wMDc0NTQsIDAuMDA3NTA2LCAwLjAwNzUyNSwgMC4wMDc1NDUsIDAuMDA3NTU1LCAwLjAwNzU2NiIsIFwKLSAgICAgICAgICAiMC4wMDczOTgsIDAuMDA3NDgyLCAwLjAwNzUzMSwgMC4wMDc1NSwgMC4wMDc1NzEsIDAuMDA3NTgsIDAuMDA3NTkyIiwgXAotICAgICAgICAgICIwLjAwNzQyMSwgMC4wMDc1MDcsIDAuMDA3NTU0LCAwLjAwNzU3NCwgMC4wMDc1OTgsIDAuMDA3NjA3LCAwLjAwNzYxNyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA4MjU4LCAwLjAwODM2MywgMC4wMDg0MzMsIDAuMDA4NDYsIDAuMDA4NDg3LCAwLjAwODUwMSwgMC4wMDg1MTUiLCBcCi0gICAgICAgICAgIjAuMDA4MjM1LCAwLjAwODM0MiwgMC4wMDg0MTIsIDAuMDA4NDM5LCAwLjAwODQ2NiwgMC4wMDg0OCwgMC4wMDg0OTQiLCBcCi0gICAgICAgICAgIjAuMDA4MjQ1LCAwLjAwODM1LCAwLjAwODQyLCAwLjAwODQ0NywgMC4wMDg0NzQsIDAuMDA4NDg4LCAwLjAwODUwMiIsIFwKLSAgICAgICAgICAiMC4wMDgyNDksIDAuMDA4MzU0LCAwLjAwODQyNCwgMC4wMDg0NTEsIDAuMDA4NDc4LCAwLjAwODQ5MywgMC4wMDg1MDciLCBcCi0gICAgICAgICAgIjAuMDA4MjU3LCAwLjAwODM2NiwgMC4wMDg0MzUsIDAuMDA4NDYzLCAwLjAwODQ5MSwgMC4wMDg1MDUsIDAuMDA4NTIiLCBcCi0gICAgICAgICAgIjAuMDA4Mjg5LCAwLjAwODM5NiwgMC4wMDg0NjYsIDAuMDA4NDk0LCAwLjAwODUyMSwgMC4wMDg1MzUsIDAuMDA4NTQ5IiwgXAotICAgICAgICAgICIwLjAwODMxOSwgMC4wMDg0MjIsIDAuMDA4NDkyLCAwLjAwODUyLCAwLjAwODU0NywgMC4wMDg1NjEsIDAuMDA4NTc2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDY3MjMsIDAuMDA2ODA2LCAwLjAwNjg1OSwgMC4wMDY4NzcsIDAuMDA2ODk2LCAwLjAwNjkwNiwgMC4wMDY5MTYiLCBcCi0gICAgICAgICAgIjAuMDA2NjksIDAuMDA2NzczLCAwLjAwNjgyNSwgMC4wMDY4NDQsIDAuMDA2ODYzLCAwLjAwNjg3NCwgMC4wMDY4ODMiLCBcCi0gICAgICAgICAgIjAuMDA2Njc3LCAwLjAwNjc1NiwgMC4wMDY4MDgsIDAuMDA2ODI4LCAwLjAwNjg0NywgMC4wMDY4NTcsIDAuMDA2ODY3IiwgXAotICAgICAgICAgICIwLjAwNjY2NiwgMC4wMDY3NDQsIDAuMDA2Nzk3LCAwLjAwNjgxNSwgMC4wMDY4MzUsIDAuMDA2ODQ2LCAwLjAwNjg1NiIsIFwKLSAgICAgICAgICAiMC4wMDY2NjIsIDAuMDA2NzM1LCAwLjAwNjc4OSwgMC4wMDY4MDgsIDAuMDA2ODMsIDAuMDA2ODM4LCAwLjAwNjg1MSIsIFwKLSAgICAgICAgICAiMC4wMDY2NjUsIDAuMDA2NzI3LCAwLjAwNjc4MSwgMC4wMDY4MDIsIDAuMDA2ODIyLCAwLjAwNjgzNiwgMC4wMDY4NDgiLCBcCi0gICAgICAgICAgIjAuMDA2Njc3LCAwLjAwNjcyNiwgMC4wMDY3NzksIDAuMDA2ODAyLCAwLjAwNjgyNCwgMC4wMDY4MzcsIDAuMDA2ODQ5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTE0OTMsIDAuMDExNiwgMC4wMTE2NjksIDAuMDExNjk2LCAwLjAxMTcyMiwgMC4wMTE3MzcsIDAuMDExNzUiLCBcCi0gICAgICAgICAgIjAuMDExNDc0LCAwLjAxMTU4MSwgMC4wMTE2NTEsIDAuMDExNjc3LCAwLjAxMTcwNCwgMC4wMTE3MTgsIDAuMDExNzMyIiwgXAotICAgICAgICAgICIwLjAxMTQ2NSwgMC4wMTE1NywgMC4wMTE2NCwgMC4wMTE2NjcsIDAuMDExNjk0LCAwLjAxMTcwOCwgMC4wMTE3MjIiLCBcCi0gICAgICAgICAgIjAuMDExNDYxLCAwLjAxMTU2MSwgMC4wMTE2MzIsIDAuMDExNjU5LCAwLjAxMTY4NiwgMC4wMTE3MDEsIDAuMDExNzE2IiwgXAotICAgICAgICAgICIwLjAxMTQ1NywgMC4wMTE1NTUsIDAuMDExNjI2LCAwLjAxMTY1NCwgMC4wMTE2ODIsIDAuMDExNjk3LCAwLjAxMTcxMiIsIFwKLSAgICAgICAgICAiMC4wMTE0NiwgMC4wMTE1NDYsIDAuMDExNjE3LCAwLjAxMTY0NywgMC4wMTE2NzYsIDAuMDExNjkyLCAwLjAxMTcwOCIsIFwKLSAgICAgICAgICAiMC4wMTE0NzMsIDAuMDExNTQ0LCAwLjAxMTYxNCwgMC4wMTE2NDQsIDAuMDExNjc0LCAwLjAxMTY5MSwgMC4wMTE3MDgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJYMiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDY2NDksIDAuMDA2Nzg4LCAwLjAwNjgyOSwgMC4wMDY4NDUsIDAuMDA2ODU4LCAwLjAwNjg2NywgMC4wMDY4NzMiLCBcCi0gICAgICAgICAgIjAuMDA2NjU5LCAwLjAwNjc5NSwgMC4wMDY4MzgsIDAuMDA2ODUzLCAwLjAwNjg2NiwgMC4wMDY4NzMsIDAuMDA2ODgiLCBcCi0gICAgICAgICAgIjAuMDA2NzIxLCAwLjAwNjg1MiwgMC4wMDY4OTYsIDAuMDA2OTExLCAwLjAwNjkyNywgMC4wMDY5MzMsIDAuMDA2OTQiLCBcCi0gICAgICAgICAgIjAuMDA2NzU3LCAwLjAwNjg4NywgMC4wMDY5MzEsIDAuMDA2OTQ3LCAwLjAwNjk2MywgMC4wMDY5NywgMC4wMDY5NzkiLCBcCi0gICAgICAgICAgIjAuMDA2Nzk0LCAwLjAwNjkyMiwgMC4wMDY5NjYsIDAuMDA2OTgzLCAwLjAwNjk5OSwgMC4wMDcwMDgsIDAuMDA3MDE1IiwgXAotICAgICAgICAgICIwLjAwNjg3MywgMC4wMDY5OTgsIDAuMDA3MDQ1LCAwLjAwNzA2MSwgMC4wMDcwNjIsIDAuMDA3MDg1LCAwLjAwNzA4IiwgXAotICAgICAgICAgICIwLjAwNjkzNiwgMC4wMDcwNTEsIDAuMDA3MTAyLCAwLjAwNzExLCAwLjAwNzEzMywgMC4wMDcxNDQsIDAuMDA3MTUzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDYwMDcsIDAuMDA2MTgzLCAwLjAwNjI0MiwgMC4wMDYyNjMsIDAuMDA2MjgyLCAwLjAwNjI5MiwgMC4wMDYzMDEiLCBcCi0gICAgICAgICAgIjAuMDA2MDI0LCAwLjAwNjE5NywgMC4wMDYyNTcsIDAuMDA2Mjc4LCAwLjAwNjI5OCwgMC4wMDYzMDksIDAuMDA2MzE4IiwgXAotICAgICAgICAgICIwLjAwNjA5NCwgMC4wMDYyNjIsIDAuMDA2MzIyLCAwLjAwNjM0MywgMC4wMDYzNjQsIDAuMDA2Mzc1LCAwLjAwNjM4NSIsIFwKLSAgICAgICAgICAiMC4wMDYxNDgsIDAuMDA2MzE0LCAwLjAwNjM3NCwgMC4wMDYzOTYsIDAuMDA2NDE4LCAwLjAwNjQyOSwgMC4wMDY0NCIsIFwKLSAgICAgICAgICAiMC4wMDYxODksIDAuMDA2MzUxLCAwLjAwNjQxMSwgMC4wMDY0MzQsIDAuMDA2NDU2LCAwLjAwNjQ2OCwgMC4wMDY0NzkiLCBcCi0gICAgICAgICAgIjAuMDA2MjY5LCAwLjAwNjQzMiwgMC4wMDY0OTMsIDAuMDA2NTE3LCAwLjAwNjUzOSwgMC4wMDY1NTIsIDAuMDA2NTY0IiwgXAotICAgICAgICAgICIwLjAwNjMzNCwgMC4wMDY0OTUsIDAuMDA2NTU1LCAwLjAwNjU3OCwgMC4wMDY1OTksIDAuMDA2NjEzLCAwLjAwNjYyNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUykgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNDc0MDQ7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNDcwMzM7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNDc0MDQ7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNzgxLCAwLjAwMDc1NywgMC4wMDA3NDYsIDAuMDAwNzQsIDAuMDAwNzM5LCAwLjAwMDc0LCAwLjAwMDc0NSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjk0MiwgMC4wMDI5MjksIDAuMDAyOTIzLCAwLjAwMjkxOSwgMC4wMDI5MjEsIDAuMDAyOTIxLCAwLjAwMjkyNCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWDIpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTU5Njc0OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTU5NjM7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNTk2NzQ7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMDQsIDAuMDAwMDEsIDAuMDAwMDEsIDAuMDAwMDM0LCAwLjAwMDAzNCwgMC4wMDAwNywgMC4wMDAwOTciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDE2NzcsIDAuMDAxNjU1LCAwLjAwMTY1NywgMC4wMDE2NjQsIDAuMDAxNjc5LCAwLjAwMTY5OCwgMC4wMDE3MjIiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogQlVGWDYgKgotICogLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKEJVRlg2KSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMzA3NzEzOwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE2NDI0MTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE2NDE1ODsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE2NDI0MTsKLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAxLjUyMzUxOwotICAgIGZ1bmN0aW9uIDogIkEiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDMyNDEzLCAwLjA4MTI4LCAwLjEyOTIwOCwgMC4xNjM0MywgMC4yMTgzNDMsIDAuMjY2MjEsIDAuMzM0Njk0IiwgXAotICAgICAgICAgICIwLjA0MjYwNiwgMC4wOTE0NSwgMC4xMzk0MSwgMC4xNzM2NzcsIDAuMjI4NDY4LCAwLjI3NjU3OCwgMC4zNDQ4MiIsIFwKLSAgICAgICAgICAiMC4wNTQ1NzQsIDAuMTAzMzk5LCAwLjE1MTM4MiwgMC4xODU2MjgsIDAuMjQwNDM5LCAwLjI4ODQ4OCwgMC4zNTY5MTgiLCBcCi0gICAgICAgICAgIjAuMDY0NTQzLCAwLjExMzYxNiwgMC4xNjE1NDMsIDAuMTk1Nzg5LCAwLjI1MDY5OCwgMC4yOTg1MjcsIDAuMzY3MTQ2IiwgXAotICAgICAgICAgICIwLjA3Mjg5MSwgMC4xMjIyNzIsIDAuMTcwMjMyLCAwLjIwNDQ3OCwgMC4yNTkyOTMsIDAuMzA3MjAzLCAwLjM3NTcyNyIsIFwKLSAgICAgICAgICAiMC4wODQ3NTEsIDAuMTM0NzY4LCAwLjE4MjczMywgMC4yMTY5NDcsIDAuMjcxNzMsIDAuMzE5NjcyLCAwLjM4ODEyOCIsIFwKLSAgICAgICAgICAiMC4wOTM3MTcsIDAuMTQ0MDEzLCAwLjE5MTg0MSwgMC4yMjYwNDQsIDAuMjgwNzg3LCAwLjMyODcwMiwgMC4zOTcxNTEiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjM0MzIsIDAuMTE5NjY5LCAwLjIxODQwMiwgMC4yODg1MTMsIDAuNDAxOTExLCAwLjUwMTczOSwgMC42NDE3NDUiLCBcCi0gICAgICAgICAgIjAuMDIzNDMxLCAwLjExOTgzNiwgMC4yMTg0NDUsIDAuMjg5NDk4LCAwLjQwMjY5MSwgMC41MDA3MjMsIDAuNjQzMTQ0IiwgXAotICAgICAgICAgICIwLjAyNDMxNSwgMC4xMjAxMzcsIDAuMjE4MzI5LCAwLjI4OTQyNCwgMC40MDE4MTEsIDAuNTAwNzY0LCAwLjY0MjMyIiwgXAotICAgICAgICAgICIwLjAyNTc5MSwgMC4xMjA0MDYsIDAuMjE4NDU1LCAwLjI4OTA4LCAwLjQwMTkxNCwgMC41MDE3MzQsIDAuNjQxOTk1IiwgXAotICAgICAgICAgICIwLjAyNzUyNywgMC4xMjA2ODksIDAuMjE4OTYzLCAwLjI4ODk2LCAwLjQwMTc4MSwgMC41MDE2NDMsIDAuNjQyODc5IiwgXAotICAgICAgICAgICIwLjAyOTY4LCAwLjEyMTMzMywgMC4yMTkxMDksIDAuMjg5MzIsIDAuNDAyNjc4LCAwLjUwMTY4NiwgMC42NDMxMDciLCBcCi0gICAgICAgICAgIjAuMDMxMjU2LCAwLjEyMjA3NiwgMC4yMTkxMzQsIDAuMjg5NjY1LCAwLjQwMjA2LCAwLjUwMTcsIDAuNjQzMTIyIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDMzNzQ4LCAwLjA4NTQ5NywgMC4xMzYzNiwgMC4xNzI3MDIsIDAuMjMwNzY1LCAwLjI4MTYxOCwgMC4zNTQyMzIiLCBcCi0gICAgICAgICAgIjAuMDQzNjYsIDAuMDk1NDgyLCAwLjE0NjM3MiwgMC4xODI2OTQsIDAuMjQwODEsIDAuMjkxNzE4LCAwLjM2NDQwOSIsIFwKLSAgICAgICAgICAiMC4wNTUwNzksIDAuMTA2ODkyLCAwLjE1NzgxLCAwLjE5NDA5OCwgMC4yNTIyMTcsIDAuMzAzMTA5LCAwLjM3NTgzOSIsIFwKLSAgICAgICAgICAiMC4wNjQ1MjQsIDAuMTE2NTUyLCAwLjE2NzQ0NiwgMC4yMDM4MTcsIDAuMjYxOTUzLCAwLjMxMjczOCwgMC4zODU1NTUiLCBcCi0gICAgICAgICAgIjAuMDcyNTk0LCAwLjEyNDc5MiwgMC4xNzU2MjksIDAuMjExOTg0LCAwLjI3MDA1NiwgMC4zMjA5MDQsIDAuMzkzNTIiLCBcCi0gICAgICAgICAgIjAuMDgzMzYzLCAwLjEzNTc0MywgMC4xODY1OSwgMC4yMjI4OTIsIDAuMjgwOTksIDAuMzMxODk4LCAwLjQwNDQ4NiIsIFwKLSAgICAgICAgICAiMC4wOTE2MDgsIDAuMTQ0MzE1LCAwLjE5NDQ2OSwgMC4yMzA3MTgsIDAuMjg4NzcyLCAwLjMzOTU5MiwgMC40MTIyMzQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjM3ODMsIDAuMTI0MDQ2LCAwLjIyNTg4MSwgMC4yOTg3MTcsIDAuNDE2Mzk3LCAwLjUxNzIyOSwgMC42NjU3MTMiLCBcCi0gICAgICAgICAgIjAuMDIzODEyLCAwLjEyMzkyMywgMC4yMjU5MzEsIDAuMjk5MTg2LCAwLjQxNjgwMiwgMC41MTc5MDgsIDAuNjY0MDk2IiwgXAotICAgICAgICAgICIwLjAyNDUyNiwgMC4xMjQyMDksIDAuMjI1NzM4LCAwLjI5OTYxLCAwLjQxNTU3NywgMC41MTg1NDMsIDAuNjY0MDQiLCBcCi0gICAgICAgICAgIjAuMDI1ODg0LCAwLjEyNDM0NywgMC4yMjYzOTgsIDAuMjk4ODM0LCAwLjQxNTg0NSwgMC41MTkzNjUsIDAuNjYzOTYyIiwgXAotICAgICAgICAgICIwLjAyNzAwNCwgMC4xMjQ3MTIsIDAuMjI2NTQ0LCAwLjI5ODkzNCwgMC40MTY1NzUsIDAuNTE5MTEyLCAwLjY2NTg5MSIsIFwKLSAgICAgICAgICAiMC4wMjg2MjYsIDAuMTI1MDk1LCAwLjIyNjczLCAwLjI5OTA0NSwgMC40MTYzNTIsIDAuNTE4MjU2LCAwLjY2Mzc4NSIsIFwKLSAgICAgICAgICAiMC4wMzAyMzYsIDAuMTI1NDc2LCAwLjIyNjc2OSwgMC4yOTk2NDIsIDAuNDE2NDU1LCAwLjUxOTQzMywgMC42NjQwMTQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjQ2OCwgMC4wMDY2NTQsIDAuMDA2NjcyLCAwLjAwNjY2NSwgMC4wMDY2OCwgMC4wMDY2OTYsIDAuMDA2Njg1IiwgXAotICAgICAgICAgICIwLjAwNjI5NiwgMC4wMDY1MjQsIDAuMDA2NTU4LCAwLjAwNjU2NywgMC4wMDY1NzcsIDAuMDA2NTgxLCAwLjAwNjU4NSIsIFwKLSAgICAgICAgICAiMC4wMDYyNDcsIDAuMDA2NDc4LCAwLjAwNjUzMiwgMC4wMDY1NDYsIDAuMDA2NTYsIDAuMDA2NTY3LCAwLjAwNjU3NCIsIFwKLSAgICAgICAgICAiMC4wMDYyNjcsIDAuMDA2NDk1LCAwLjAwNjU1NSwgMC4wMDY1NzMsIDAuMDA2NTg4LCAwLjAwNjU5OSwgMC4wMDY2MDgiLCBcCi0gICAgICAgICAgIjAuMDA2Mjg4LCAwLjAwNjQ5OSwgMC4wMDY1NjEsIDAuMDA2NTc4LCAwLjAwNjYwMSwgMC4wMDY2MTgsIDAuMDA2NjIxIiwgXAotICAgICAgICAgICIwLjAwNjM1LCAwLjAwNjU0LCAwLjAwNjU5MywgMC4wMDY2MjQsIDAuMDA2NjQzLCAwLjAwNjY1NSwgMC4wMDY2NjIiLCBcCi0gICAgICAgICAgIjAuMDA2Mzg5LCAwLjAwNjU5OCwgMC4wMDY2NiwgMC4wMDY2ODMsIDAuMDA2NzA4LCAwLjAwNjcyNSwgMC4wMDY3MzMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwODQzNSwgMC4wMDg2OTEsIDAuMDA4NzIzLCAwLjAwODczMywgMC4wMDg3NDEsIDAuMDA4NzYxLCAwLjAwODc1IiwgXAotICAgICAgICAgICIwLjAwODI2OSwgMC4wMDg1NzgsIDAuMDA4NjI2LCAwLjAwODY0LCAwLjAwODY1NCwgMC4wMDg2NiwgMC4wMDg2NjYiLCBcCi0gICAgICAgICAgIjAuMDA4MjA2LCAwLjAwODUyNSwgMC4wMDg1OTMsIDAuMDA4NjE2LCAwLjAwODYzNiwgMC4wMDg2NDcsIDAuMDA4NjU2IiwgXAotICAgICAgICAgICIwLjAwODIxNiwgMC4wMDg1MTYsIDAuMDA4NTgzLCAwLjAwODYxLCAwLjAwODYzNCwgMC4wMDg2NDYsIDAuMDA4NjU3IiwgXAotICAgICAgICAgICIwLjAwODIyNCwgMC4wMDg1MTMsIDAuMDA4NTk0LCAwLjAwODYyMiwgMC4wMDg2NDksIDAuMDA4NjYzLCAwLjAwODY3NiIsIFwKLSAgICAgICAgICAiMC4wMDgyMjYsIDAuMDA4NTQxLCAwLjAwODYzMSwgMC4wMDg2NjQsIDAuMDA4Njk1LCAwLjAwODcwOCwgMC4wMDg3MjQiLCBcCi0gICAgICAgICAgIjAuMDA4MjgsIDAuMDA4NTcyLCAwLjAwODY1NSwgMC4wMDg2OTQsIDAuMDA4NzMzLCAwLjAwODc1NCwgMC4wMDg3NzMiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IENMS0FORDJYOCAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKENMS0FORDJYOCkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjUzMDE1ODsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAyNTI2Nzc7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAyNTI2Nzc7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAyNTE0MjI7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwODIxLCAwLjAwMDgyMSwgMC4wMDA4MjEsIDAuMDAwODIsIDAuMDAwODIsIDAuMDAwODIsIDAuMDAwODIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA4NjgsIDAuMDAwODMsIDAuMDAwODI2LCAwLjAwMDgyNCwgMC4wMDA4MjQsIDAuMDAwODI0LCAwLjAwMDgyNCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAyNDMxNzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDI0MzE3OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMjQyOTk7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMTU1LCAwLjAwMDE1NCwgMC4wMDAxNTQsIDAuMDAwMTU1LCAwLjAwMDE1NSwgMC4wMDAxNTQsIDAuMDAwMTU0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxMDQsIDAuMDAxMDQxLCAwLjAwMTA0MSwgMC4wMDEwNDEsIDAuMDAxMDQxLCAwLjAwMTA0MSwgMC4wMDEwNDEiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMS45ODc4ODsKLSAgICBmdW5jdGlvbiA6ICIoQSBCKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzk3NDIsIDAuMDc4NTA0LCAwLjExNDg2MSwgMC4xNDA3NzksIDAuMTgyMjMyLCAwLjIxODUyMywgMC4yNzAzMSIsIFwKLSAgICAgICAgICAiMC4wNDg2NCwgMC4wODc0NzksIDAuMTIzODMsIDAuMTQ5NzQ2LCAwLjE5MTIxMSwgMC4yMjc0ODgsIDAuMjc5MjgzIiwgXAotICAgICAgICAgICIwLjA1OTExNSwgMC4wOTc5MzUsIDAuMTM0MjksIDAuMTYwMjA3LCAwLjIwMTY3MywgMC4yMzc5NTIsIDAuMjg5Nzc3IiwgXAotICAgICAgICAgICIwLjA2ODMxMywgMC4xMDc0MzYsIDAuMTQzODM1LCAwLjE2OTc1NywgMC4yMTEyMDYsIDAuMjQ3NTA5LCAwLjI5OTI5MSIsIFwKLSAgICAgICAgICAiMC4wNzYzNzUsIDAuMTE1NzY4LCAwLjE1MjE2NCwgMC4xNzgwNzQsIDAuMjE5NTIyLCAwLjI1NTgzOSwgMC4zMDc2MDciLCBcCi0gICAgICAgICAgIjAuMDg3NTY2LCAwLjEyNzIsIDAuMTYzNjUyLCAwLjE4OTU0NSwgMC4yMzA5OTMsIDAuMjY3MjU0LCAwLjMxOTAzNCIsIFwKLSAgICAgICAgICAiMC4wOTU5NDEsIDAuMTM2NzE0LCAwLjE3MzAzNywgMC4xOTg5NDQsIDAuMjQwMzUyLCAwLjI3NjYwNiwgMC4zMjg0MDciKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjIyODEsIDAuMDkzOTUyLCAwLjE2NzM4MiwgMC4yMjEwNTcsIDAuMzA2NDM3LCAwLjM4MDQ4NCwgMC40ODc1MTUiLCBcCi0gICAgICAgICAgIjAuMDIyMjYzLCAwLjA5MzkyOCwgMC4xNjc3ODksIDAuMjIwOTQ3LCAwLjMwNTk0MiwgMC4zODEzMDQsIDAuNDg3NTY0IiwgXAotICAgICAgICAgICIwLjAyMjYxMiwgMC4wOTQwNDYsIDAuMTY3ODE0LCAwLjIyMDk1NiwgMC4zMDU5NjIsIDAuMzgxMjk4LCAwLjQ4NzYyOSIsIFwKLSAgICAgICAgICAiMC4wMjM2NDIsIDAuMDk0Mzk1LCAwLjE2Nzk4MSwgMC4yMjExMTksIDAuMzA2MDU1LCAwLjM4MDUwMSwgMC40ODc5NCIsIFwKLSAgICAgICAgICAiMC4wMjQzOTIsIDAuMDk0OTYyLCAwLjE2ODEwMywgMC4yMjEwMjgsIDAuMzA2NDA0LCAwLjM4MDUzMSwgMC40ODgyMDUiLCBcCi0gICAgICAgICAgIjAuMDI2MDI1LCAwLjA5NTgzNCwgMC4xNjg1NCwgMC4yMjE1LCAwLjMwNjY4OCwgMC4zODA2MjEsIDAuNDg4MjQiLCBcCi0gICAgICAgICAgIjAuMDI3NDgsIDAuMDk2NTc0LCAwLjE2ODgyOSwgMC4yMjE2MTksIDAuMzA2NjUxLCAwLjM4MTI5NiwgMC40ODgzMTQiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDI5NDQsIDAuMDgzNjMsIDAuMTIxODY5LCAwLjE0OTEwNiwgMC4xOTI2ODksIDAuMjMwNzkyLCAwLjI4NTE3NiIsIFwKLSAgICAgICAgICAiMC4wNTI2NzgsIDAuMDkzMjk3LCAwLjEzMTU1MSwgMC4xNTg4LCAwLjIwMjM4LCAwLjI0MDQ5MSwgMC4yOTQ4ODciLCBcCi0gICAgICAgICAgIjAuMDY1MDcsIDAuMTA1NjkyLCAwLjE0Mzk2MSwgMC4xNzEyMjUsIDAuMjE0ODI5LCAwLjI1MjkxMywgMC4zMDczMTIiLCBcCi0gICAgICAgICAgIjAuMDc2Mjk0LCAwLjExNzA2MywgMC4xNTUzMTYsIDAuMTgyNTczLCAwLjIyNjE1OSwgMC4yNjQyODEsIDAuMzE4NjgiLCBcCi0gICAgICAgICAgIjAuMDg2MTksIDAuMTI3MzQxLCAwLjE2NTU4OCwgMC4xOTI4NDIsIDAuMjM2NDI3LCAwLjI3NDU0LCAwLjMyODk2NSIsIFwKLSAgICAgICAgICAiMC4wOTk1ODcsIDAuMTQxNDE2LCAwLjE3OTYxNSwgMC4yMDY4NTksIDAuMjUwNDQxLCAwLjI4ODU1LCAwLjM0Mjk2NCIsIFwKLSAgICAgICAgICAiMC4xMDk4NjgsIDAuMTUyMTYsIDAuMTkwNTQ0LCAwLjIxNzc1NiwgMC4yNjEzMTksIDAuMjk5NDIxLCAwLjM1MzgyMyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyMjg0NiwgMC4wOTY3ODUsIDAuMTczMjk1LCAwLjIyODIxNCwgMC4zMTY0NTksIDAuMzkzNjU5LCAwLjUwNDIxMiIsIFwKLSAgICAgICAgICAiMC4wMjI4MTksIDAuMDk2ODEzLCAwLjE3MzIzOCwgMC4yMjgxOTUsIDAuMzE1ODkxLCAwLjM5MzY0MywgMC41MDQyMzkiLCBcCi0gICAgICAgICAgIjAuMDIzMDI5LCAwLjA5NjgxNSwgMC4xNzMwMjUsIDAuMjI3ODY0LCAwLjMxNTgwNiwgMC4zOTM2OCwgMC41MDQxNzYiLCBcCi0gICAgICAgICAgIjAuMDIzOTY1LCAwLjA5NzA0NywgMC4xNzMzNzUsIDAuMjI4MjcsIDAuMzE2MDQ3LCAwLjM5MzYzOSwgMC41MDQyMzciLCBcCi0gICAgICAgICAgIjAuMDI1MzUyLCAwLjA5NzU1NywgMC4xNzM2MTMsIDAuMjI3ODExLCAwLjMxNjAzMywgMC4zOTI5NDcsIDAuNTA0MDg2IiwgXAotICAgICAgICAgICIwLjAyNzQ3NSwgMC4wOTgzOTksIDAuMTc0MDA1LCAwLjIyODY1OCwgMC4zMTYzNDUsIDAuMzkzMjkyLCAwLjUwNDAyMSIsIFwKLSAgICAgICAgICAiMC4wMjg5MjgsIDAuMDk5MDc5LCAwLjE3NDE2NCwgMC4yMjg4NjYsIDAuMzE2NTU1LCAwLjM5MzMxNywgMC41MDM5MjciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzczOTQsIDAuMDc2MjY3LCAwLjExMjY0NSwgMC4xMzg1NTcsIDAuMTc5OTg3LCAwLjIxNjIzOSwgMC4yNjgwMyIsIFwKLSAgICAgICAgICAiMC4wNDY2NjUsIDAuMDg1NTA3LCAwLjEyMTg2NywgMC4xNDc3ODIsIDAuMTg5MjQ3LCAwLjIyNTUyNywgMC4yNzczMzciLCBcCi0gICAgICAgICAgIjAuMDU3OTI5LCAwLjA5NjgyNSwgMC4xMzMxOTMsIDAuMTU5MTA0LCAwLjIwMDU2LCAwLjIzNjgyNiwgMC4yODg2NTUiLCBcCi0gICAgICAgICAgIjAuMDY3ODAyLCAwLjEwNzAzNCwgMC4xNDM0MDYsIDAuMTY5MzMsIDAuMjEwNzc1LCAwLjI0NzEwNiwgMC4yOTg5MTgiLCBcCi0gICAgICAgICAgIjAuMDc2MTkzLCAwLjExNTgwMywgMC4xNTIwNSwgMC4xNzc5NTcsIDAuMjE5NjI0LCAwLjI1NTg4NSwgMC4zMDc3NDUiLCBcCi0gICAgICAgICAgIjAuMDg3NTAxLCAwLjEyNzMwNywgMC4xNjQxMDUsIDAuMTg5OTQ2LCAwLjIzMTM2OSwgMC4yNjc2MjQsIDAuMzE5NDI2IiwgXAotICAgICAgICAgICIwLjA5NTc3NiwgMC4xMzYyMDQsIDAuMTcyODksIDAuMTk4OTA4LCAwLjI0MDI0LCAwLjI3NjQ5NSwgMC4zMjgzMTQiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjIzNTIsIDAuMDkzOTM2LCAwLjE2NzY2NywgMC4yMjA5NjMsIDAuMzA2MjAyLCAwLjM4MDE2NywgMC40ODc5NjEiLCBcCi0gICAgICAgICAgIjAuMDIyMjY3LCAwLjA5Mzk1MiwgMC4xNjc3ODcsIDAuMjIwOTQ3LCAwLjMwNjM4MSwgMC4zODEyMzUsIDAuNDg3NjI5IiwgXAotICAgICAgICAgICIwLjAyMjk1OSwgMC4wOTQwODQsIDAuMTY3ODgxLCAwLjIyMDc1NiwgMC4zMDYzNjksIDAuMzgxMTg5LCAwLjQ4ODIwOCIsIFwKLSAgICAgICAgICAiMC4wMjQ0NDYsIDAuMDk0NTMxLCAwLjE2ODAzMiwgMC4yMjExNTcsIDAuMzA2MzYyLCAwLjM4MDQzLCAwLjQ4NzE1OCIsIFwKLSAgICAgICAgICAiMC4wMjU3NjQsIDAuMDk1MjE5LCAwLjE2ODM3MiwgMC4yMjExMTcsIDAuMzA2NTA2LCAwLjM4MTI1NiwgMC40ODczNjciLCBcCi0gICAgICAgICAgIjAuMDI3NjU2LCAwLjA5NjIwOCwgMC4xNjg3MzcsIDAuMjIxNzQxLCAwLjMwNjY1MSwgMC4zODEzMzYsIDAuNDg4MzAyIiwgXAotICAgICAgICAgICIwLjAyOTgwMiwgMC4wOTc1NjUsIDAuMTY5MzQ2LCAwLjIyMTc0OCwgMC4zMDY1NTUsIDAuMzgxNDUzLCAwLjQ4ODQ3OCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0MDA3NSwgMC4wODA0NDUsIDAuMTE4NjMxLCAwLjE0NTg2MywgMC4xODk0MDgsIDAuMjI3NDU4LCAwLjI4MTgyMSIsIFwKLSAgICAgICAgICAiMC4wNDk2NDUsIDAuMDkwMDgzLCAwLjEyODI2OSwgMC4xNTU0OSwgMC4xOTkwNjMsIDAuMjM3MTE5LCAwLjI5MTYzNSIsIFwKLSAgICAgICAgICAiMC4wNjE2ODQsIDAuMTAyMDM5LCAwLjE0MDIzMywgMC4xNjc0NTcsIDAuMjExMDE4LCAwLjI0OTA5OSwgMC4zMDM1NjMiLCBcCi0gICAgICAgICAgIjAuMDcyNTkyLCAwLjExMzE3OCwgMC4xNTEyNTcsIDAuMTc4NDc2LCAwLjIyMjAxMiwgMC4yNjAxMzQsIDAuMzE0NTM2IiwgXAotICAgICAgICAgICIwLjA4MTc2NiwgMC4xMjI3NzYsIDAuMTYwOTY5LCAwLjE4ODE5MSwgMC4yMzE3NDgsIDAuMjY5ODY5LCAwLjMyNDIzNiIsIFwKLSAgICAgICAgICAiMC4wOTQ0MTksIDAuMTM2MTY4LCAwLjE3NDE5MiwgMC4yMDE0MDUsIDAuMjQ0OTE2LCAwLjI4MzAwOSwgMC4zMzczOTEiLCBcCi0gICAgICAgICAgIjAuMTA0MDg1LCAwLjE0NjMzLCAwLjE4NDU4OCwgMC4yMTE2ODIsIDAuMjU1MDk5LCAwLjI5MzIyLCAwLjM0NzU4MSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyMjQ5MiwgMC4wOTY1MTUsIDAuMTcyOTgxLCAwLjIyNzYzNywgMC4zMTU2NzMsIDAuMzkyNTIzLCAwLjUwNDAwNSIsIFwKLSAgICAgICAgICAiMC4wMjI0ODcsIDAuMDk2NDgzLCAwLjE3Mjc1NCwgMC4yMjc2MTEsIDAuMzE1Mzk2LCAwLjM5MzU1MiwgMC41MDI2NjkiLCBcCi0gICAgICAgICAgIjAuMDIyOTEzLCAwLjA5NjY1NywgMC4xNzMwNjEsIDAuMjI3OTk4LCAwLjMxNTU4NSwgMC4zOTM1NzgsIDAuNTAyOTAyIiwgXAotICAgICAgICAgICIwLjAyNDA5NiwgMC4wOTcwMjQsIDAuMTczMjA2LCAwLjIyODA4MSwgMC4zMTYyMjksIDAuMzkyNTM2LCAwLjUwNDE1IiwgXAotICAgICAgICAgICIwLjAyNTcwMywgMC4wOTc2MDUsIDAuMTczNDg2LCAwLjIyODIyNCwgMC4zMTYzOSwgMC4zOTI0NzMsIDAuNTAzOTY4IiwgXAotICAgICAgICAgICIwLjAyNzY0MSwgMC4wOTg1MzEsIDAuMTczODksIDAuMjI4Mzc2LCAwLjMxNjAyMiwgMC4zOTM3NjksIDAuNTA0MTI1IiwgXAotICAgICAgICAgICIwLjAyOTMzNywgMC4wOTk0NTEsIDAuMTc0MTI0LCAwLjIyODU5OCwgMC4zMTYyMzYsIDAuMzkzNzc0LCAwLjUwNDMyOCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA5MjYsIDAuMDA5NTgxLCAwLjAwOTYzLCAwLjAwOTY0NCwgMC4wMDk2NTYsIDAuMDA5NjY1LCAwLjAwOTY2OSIsIFwKLSAgICAgICAgICAiMC4wMDkxMzQsIDAuMDA5NDcyLCAwLjAwOTUzMSwgMC4wMDk1NDgsIDAuMDA5NTU4LCAwLjAwOTU3MSwgMC4wMDk1NzgiLCBcCi0gICAgICAgICAgIjAuMDA5MDU0LCAwLjAwOTQwMSwgMC4wMDk0NzIsIDAuMDA5NSwgMC4wMDk1MDUsIDAuMDA5NTE5LCAwLjAwOTUyOCIsIFwKLSAgICAgICAgICAiMC4wMDkwNzksIDAuMDA5MzQ3LCAwLjAwOTQzNiwgMC4wMDk0NzIsIDAuMDA5NDkyLCAwLjAwOTUwMSwgMC4wMDk1MDkiLCBcCi0gICAgICAgICAgIjAuMDA4OTk1LCAwLjAwOTMzLCAwLjAwOTQwOCwgMC4wMDk0NDcsIDAuMDA5NDY1LCAwLjAwOTQ4OCwgMC4wMDk0OTYiLCBcCi0gICAgICAgICAgIjAuMDA5MDA1LCAwLjAwOTI5NiwgMC4wMDk0MDMsIDAuMDA5NDMsIDAuMDA5NDY5LCAwLjAwOTQ4OCwgMC4wMDk1MDgiLCBcCi0gICAgICAgICAgIjAuMDA5MTEzLCAwLjAwOTMzMiwgMC4wMDk0MjMsIDAuMDA5NDYxLCAwLjAwOTUsIDAuMDA5NTEzLCAwLjAwOTUzMiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEzMzE4LCAwLjAxMzc2MywgMC4wMTM4NDUsIDAuMDEzODcxLCAwLjAxMzg5NSwgMC4wMTM5MDcsIDAuMDEzOTE4IiwgXAotICAgICAgICAgICIwLjAxMzE2MiwgMC4wMTM2MTIsIDAuMDEzNzExLCAwLjAxMzc0NCwgMC4wMTM3NzMsIDAuMDEzNzg4LCAwLjAxMzgwMyIsIFwKLSAgICAgICAgICAiMC4wMTMxMDQsIDAuMDEzNTM0LCAwLjAxMzY1LCAwLjAxMzY5MSwgMC4wMTM3MjksIDAuMDEzNzQ5LCAwLjAxMzc2OCIsIFwKLSAgICAgICAgICAiMC4wMTMxMjIsIDAuMDEzNTIsIDAuMDEzNjUyLCAwLjAxMzcsIDAuMDEzNzQ3LCAwLjAxMzc3MiwgMC4wMTM3OTYiLCBcCi0gICAgICAgICAgIjAuMDEzMTU3LCAwLjAxMzUyOCwgMC4wMTM2NjEsIDAuMDEzNzA5LCAwLjAxMzc2NiwgMC4wMTM3OTQsIDAuMDEzODIyIiwgXAotICAgICAgICAgICIwLjAxMzI2NiwgMC4wMTM1ODUsIDAuMDEzNzI1LCAwLjAxMzc4NCwgMC4wMTM4MzksIDAuMDEzODcyLCAwLjAxMzkwMSIsIFwKLSAgICAgICAgICAiMC4wMTMzNTEsIDAuMDEzNjU4LCAwLjAxMzc5NywgMC4wMTM4NTUsIDAuMDEzOTE3LCAwLjAxMzk1LCAwLjAxMzk4OSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA5MjQ0LCAwLjAwOTU3OSwgMC4wMDk2MjMsIDAuMDA5NjUzLCAwLjAwOTY3MywgMC4wMDk2NjUsIDAuMDA5Njc0IiwgXAotICAgICAgICAgICIwLjAwOTA5LCAwLjAwOTQzNiwgMC4wMDk1MDMsIDAuMDA5NTMxLCAwLjAwOTU0MywgMC4wMDk1NDcsIDAuMDA5NTY3IiwgXAotICAgICAgICAgICIwLjAwOTEwMiwgMC4wMDkzOTEsIDAuMDA5NDY4LCAwLjAwOTQ5NSwgMC4wMDk1MTQsIDAuMDA5NTM0LCAwLjAwOTU1MyIsIFwKLSAgICAgICAgICAiMC4wMDkxMTEsIDAuMDA5MzU5LCAwLjAwOTQ2LCAwLjAwOTQ4OSwgMC4wMDk1MTMsIDAuMDA5NTM3LCAwLjAwOTU1IiwgXAotICAgICAgICAgICIwLjAwOTE1MSwgMC4wMDkzNzcsIDAuMDA5NDc3LCAwLjAwOTUwNiwgMC4wMDk1NDgsIDAuMDA5NTY3LCAwLjAwOTU4NyIsIFwKLSAgICAgICAgICAiMC4wMDkxNjMsIDAuMDA5NDQsIDAuMDA5NTQsIDAuMDA5NTc4LCAwLjAwOTYwOSwgMC4wMDk2NDMsIDAuMDA5NjYiLCBcCi0gICAgICAgICAgIjAuMDA5Mjc1LCAwLjAwOTUxMiwgMC4wMDk2MTUsIDAuMDA5NjU3LCAwLjAwOTY5OSwgMC4wMDk3MjQsIDAuMDA5NzQ3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTE3NTMsIDAuMDEyMjAxLCAwLjAxMjI4LCAwLjAxMjMwNSwgMC4wMTIzMjgsIDAuMDEyMzM5LCAwLjAxMjM0OSIsIFwKLSAgICAgICAgICAiMC4wMTE1MywgMC4wMTIwMDQsIDAuMDEyMDk4LCAwLjAxMjEyOSwgMC4wMTIxNTYsIDAuMDEyMTcxLCAwLjAxMjE4MyIsIFwKLSAgICAgICAgICAiMC4wMTE1MTksIDAuMDExOTIxLCAwLjAxMjAzNCwgMC4wMTIwNzQsIDAuMDEyMTEsIDAuMDEyMTMsIDAuMDEyMTQ3IiwgXAotICAgICAgICAgICIwLjAxMTQ2OCwgMC4wMTE4NDYsIDAuMDExOTc5LCAwLjAxMjAyOCwgMC4wMTIwNzQsIDAuMDEyMDk4LCAwLjAxMjEyMiIsIFwKLSAgICAgICAgICAiMC4wMTE2MzIsIDAuMDExOTUxLCAwLjAxMjA2OCwgMC4wMTIxMTUsIDAuMDEyMTY0LCAwLjAxMjE4OSwgMC4wMTIyMTMiLCBcCi0gICAgICAgICAgIjAuMDExNTU2LCAwLjAxMTkyNiwgMC4wMTIwNSwgMC4wMTIxMDUsIDAuMDEyMTU4LCAwLjAxMjE4NywgMC4wMTIyMTUiLCBcCi0gICAgICAgICAgIjAuMDExNjMzLCAwLjAxMTk3OSwgMC4wMTIxMDcsIDAuMDEyMTY1LCAwLjAxMjIxNCwgMC4wMTIyNDksIDAuMDEyMjc2Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IENMS01YMlgyICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChDTEtNWDJYMikgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjE2NTUwNDsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjc4NTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2NzY3MjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2Nzg1OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDIxLCAwLjAwMDIxNSwgMC4wMDAyMTcsIDAuMDAwMjE3LCAwLjAwMDIxOCwgMC4wMDAyMTgsIDAuMDAwMjE4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjM0LCAwLjAwMDIyOCwgMC4wMDAyMjgsIDAuMDAwMjI4LCAwLjAwMDIyNywgMC4wMDAyMjcsIDAuMDAwMjI3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2ODEyNDU7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjc5ODgzOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDY4MTI0NTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyMTgsIDAuMDAwMjIsIDAuMDAwMjIxLCAwLjAwMDIyMSwgMC4wMDAyMjIsIDAuMDAwMjIyLCAwLjAwMDIyMiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDIzLCAwLjAwMDIyOCwgMC4wMDAyMjcsIDAuMDAwMjI3LCAwLjAwMDIyNywgMC4wMDAyMjcsIDAuMDAwMjI3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxMzAwOTg7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxMzAwMjI7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxMzAwOTg7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMTgyLCAwLjAwMDE1NCwgMC4wMDAxNTcsIDAuMDAwMTYxLCAwLjAwMDE3NSwgMC4wMDAyMDMsIDAuMDAwMjMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDIwMDIsIDAuMDAxOTgxLCAwLjAwMTk4MSwgMC4wMDE5ODgsIDAuMDAxOTk4LCAwLjAwMjAyNCwgMC4wMDIwNDciKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC41Mjc1ODc7Ci0gICAgZnVuY3Rpb24gOiAiKChTMCBCKSArICghUzAgQSkpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODU3NjgsIDAuMTkwMDY5LCAwLjI3MTQ5MywgMC4zNzMyNCwgMC40NzQ4NzksIDAuNTc2NjEyLCAwLjY3ODE3MiIsIFwKLSAgICAgICAgICAiMC4wOTQ0NzMsIDAuMTk4NzY1LCAwLjI4MDE3NCwgMC4zODE5MjIsIDAuNDgzNTg2LCAwLjU4NTIyMywgMC42ODY4NTMiLCBcCi0gICAgICAgICAgIjAuMTA1MjcsIDAuMjA5NTcxLCAwLjI5MTAwNywgMC4zOTI4MDIsIDAuNDk0NDExLCAwLjU5NjA0MSwgMC42OTc3MDEiLCBcCi0gICAgICAgICAgIjAuMTE1ODQ1LCAwLjIyMDIwMywgMC4zMDE2MjQsIDAuNDAzMzc4LCAwLjUwNTA0NywgMC42MDY2ODgsIDAuNzA4MzE0IiwgXAotICAgICAgICAgICIwLjEyNTk5MywgMC4yMzAzMjEsIDAuMzExNzg0LCAwLjQxMzUwOSwgMC41MTUxNDksIDAuNjE2ODAyLCAwLjcxODQ0OSIsIFwKLSAgICAgICAgICAiMC4xNDEwNTEsIDAuMjQ1NTE1LCAwLjMyNjk2MiwgMC40Mjg2ODQsIDAuNTMwMzQ0LCAwLjYzMjAwMywgMC43MzM2MjciLCBcCi0gICAgICAgICAgIjAuMTUzMDUyLCAwLjI1Nzg4NSwgMC4zMzkzMjcsIDAuNDQxMDMxLCAwLjU0Mjc2NiwgMC42NDQ0MzEsIDAuNzQ2MDA1Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1ODczOSwgMC4yNjEyMzUsIDAuNDI4Mzk2LCAwLjYzNjgsIDAuODQ3NTI4LCAxLjA1NzU3LCAxLjI2NTg1IiwgXAotICAgICAgICAgICIwLjA1ODY4OSwgMC4yNjE2MzQsIDAuNDI4MjgsIDAuNjM2NzQ4LCAwLjg0NjQ3NywgMS4wNTYyNSwgMS4yNjU3NiIsIFwKLSAgICAgICAgICAiMC4wNTg2MjUsIDAuMjYxNDA4LCAwLjQyODI4OSwgMC42MzY2OTksIDAuODQ3NTMyLCAxLjA1NTk3LCAxLjI2NzIiLCBcCi0gICAgICAgICAgIjAuMDU4NzY2LCAwLjI2MTM1OCwgMC40MjgyNzksIDAuNjM2NzAzLCAwLjg0NjAyNiwgMS4wNTYxNSwgMS4yNjU3MyIsIFwKLSAgICAgICAgICAiMC4wNTg5OTEsIDAuMjYxNDI3LCAwLjQyODM4NSwgMC42MzY4MDgsIDAuODQ3MDg1LCAxLjA1NzE2LCAxLjI2NTc5IiwgXAotICAgICAgICAgICIwLjA2MDEyNiwgMC4yNjE0OTYsIDAuNDI4NDQ2LCAwLjYzNzAxMiwgMC44NDY1MDgsIDEuMDU2MTgsIDEuMjY2OTIiLCBcCi0gICAgICAgICAgIjAuMDYxNTM0LCAwLjI2MjE5NiwgMC40Mjg1NDksIDAuNjM3NzIsIDAuODQ3NDk3LCAxLjA1NzI5LCAxLjI2Njk2Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4OTQ3MSwgMC4xOTYyNzQsIDAuMjc5MTM2LCAwLjM4MjY0MywgMC40ODYxMjIsIDAuNTg5NTcyLCAwLjY5Mjk5MiIsIFwKLSAgICAgICAgICAiMC4wOTgwMTksIDAuMjA0ODY5LCAwLjI4NzczNSwgMC4zOTEyNjIsIDAuNDk0NzQ1LCAwLjU5ODE2MSwgMC43MDE2NjciLCBcCi0gICAgICAgICAgIjAuMTA3OTk5LCAwLjIxNDc5LCAwLjI5NzY1OCwgMC40MDExOSwgMC41MDQ2OCwgMC42MDgxMDQsIDAuNzExNTE3IiwgXAotICAgICAgICAgICIwLjExNzU4NywgMC4yMjQzODEsIDAuMzA3MjUzLCAwLjQxMDc2NSwgMC41MTQyNjYsIDAuNjE3Njg2LCAwLjcyMTExOCIsIFwKLSAgICAgICAgICAiMC4xMjY3NjQsIDAuMjMzNjM4LCAwLjMxNjQ5OSwgMC40MjAwMzMsIDAuNTIzNDkxLCAwLjYyNjk1NywgMC43MzAzNjQiLCBcCi0gICAgICAgICAgIjAuMTQwMjgxLCAwLjI0NzI1MywgMC4zMzAxMzksIDAuNDMzNzA3LCAwLjUzNzEyMiwgMC42NDA1ODEsIDAuNzQ0MDIiLCBcCi0gICAgICAgICAgIjAuMTUwNzc4LCAwLjI1ODE0NSwgMC4zNDEwMTYsIDAuNDQ0NTc0LCAwLjU0ODAxOCwgMC42NTE0NzUsIDAuNzU0ODg1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1OTcyOCwgMC4yNjIzNzgsIDAuNDI4NzkxLCAwLjYzNzg2MSwgMC44NDY1NCwgMS4wNTYxMiwgMS4yNjc0NiIsIFwKLSAgICAgICAgICAiMC4wNTk2NjUsIDAuMjYyMDYsIDAuNDI4ODIsIDAuNjM3MzcxLCAwLjg0Nzg0NiwgMS4wNTc2MSwgMS4yNjc3NiIsIFwKLSAgICAgICAgICAiMC4wNTk2NDgsIDAuMjYxODg5LCAwLjQyODc4NCwgMC42MzcyMzcsIDAuODQ3ODI0LCAxLjA1NjA3LCAxLjI2NzQyIiwgXAotICAgICAgICAgICIwLjA1OTc5OSwgMC4yNjE5NTMsIDAuNDI4ODE0LCAwLjYzODA4NCwgMC44NDc4MTIsIDEuMDU3NiwgMS4yNjc0MSIsIFwKLSAgICAgICAgICAiMC4wNjAwODIsIDAuMjYyMDU2LCAwLjQyODgzNCwgMC42MzcyNjksIDAuODQ3ODAxLCAxLjA1NzczLCAxLjI2NzM4IiwgXAotICAgICAgICAgICIwLjA2MTIyMiwgMC4yNjI2MDEsIDAuNDI4OTc0LCAwLjYzNjk4MywgMC44NDYzNjQsIDEuMDU2MjQsIDEuMjY3NTQiLCBcCi0gICAgICAgICAgIjAuMDYyMzg4LCAwLjI2Mjg0MiwgMC40MjkxNDEsIDAuNjM3MDI5LCAwLjg0NjQ3OCwgMS4wNTc1NiwgMS4yNjc1MiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODU3MDgsIDAuMTg5ODQ3LCAwLjI3MTI2NCwgMC4zNzI5OCwgMC40NzQ2MzMsIDAuNTc2MzA4LCAwLjY3NzkwOCIsIFwKLSAgICAgICAgICAiMC4wOTQ2NDksIDAuMTk4OTI2LCAwLjI4MDM0NSwgMC4zODIwNjUsIDAuNDgzNzMsIDAuNTg1MzQyLCAwLjY4Njk5MyIsIFwKLSAgICAgICAgICAiMC4xMDU1NjgsIDAuMjA5ODA5LCAwLjI5MTIyOCwgMC4zOTMwMTYsIDAuNDk0NjE2LCAwLjU5NjI0MSwgMC42OTc4OTEiLCBcCi0gICAgICAgICAgIjAuMTE2MjY2LCAwLjIyMDQxOSwgMC4zMDE4MjQsIDAuNDAzNTY0LCAwLjUwNTI5LCAwLjYwNjkwMSwgMC43MDg0ODYiLCBcCi0gICAgICAgICAgIjAuMTI2NDQsIDAuMjMwNywgMC4zMTIxMjMsIDAuNDEzODY1LCAwLjUxNTUxNywgMC42MTcxMjcsIDAuNzE4Nzg5IiwgXAotICAgICAgICAgICIwLjE0MTY0MSwgMC4yNDYwNSwgMC4zMjc0NzQsIDAuNDI5MTgzLCAwLjUzMDg4OSwgMC42MzI0OTEsIDAuNzM0MTE1IiwgXAotICAgICAgICAgICIwLjE1MzYwNywgMC4yNTgzOTgsIDAuMzM5ODEsIDAuNDQxNTA1LCAwLjU0MzIyMiwgMC42NDQ4MjYsIDAuNzQ2NDMxIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1ODc1NSwgMC4yNjEzODEsIDAuNDI4NDQxLCAwLjYzNTkwOSwgMC44NDc1NDUsIDEuMDU3NDIsIDEuMjY1ODEiLCBcCi0gICAgICAgICAgIjAuMDU4NzMyLCAwLjI2MTM2OCwgMC40Mjc2NTIsIDAuNjM2NzExLCAwLjg0NzUzMywgMS4wNTczMiwgMS4yNjU4MiIsIFwKLSAgICAgICAgICAiMC4wNTg1OTgsIDAuMjYxNDEsIDAuNDI4Mjc0LCAwLjYzNjY3MSwgMC44NDc1MjIsIDEuMDU1OTUsIDEuMjY3MTciLCBcCi0gICAgICAgICAgIjAuMDU4NzcsIDAuMjYxNjM4LCAwLjQyODI4NiwgMC42MzY1OTUsIDAuODQ2MTAxLCAxLjA1NTczLCAxLjI2NTciLCBcCi0gICAgICAgICAgIjAuMDU5MDM1LCAwLjI2MTQyMSwgMC40MjgyNzgsIDAuNjM2NzM2LCAwLjg0NzM4OSwgMS4wNTcxLCAxLjI2NTcyIiwgXAotICAgICAgICAgICIwLjA2MDEyMSwgMC4yNjE4NTQsIDAuNDI3Njg3LCAwLjYzNjk1NSwgMC44NDc0NTEsIDEuMDU3MTUsIDEuMjY1NTYiLCBcCi0gICAgICAgICAgIjAuMDYxNTU2LCAwLjI2MjIwOCwgMC40Mjg1MjMsIDAuNjM3NzMxLCAwLjg0NzQ3OSwgMS4wNTcxNSwgMS4yNjY4OSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTA2MjcsIDAuMTk3NDQ2LCAwLjI4MDMyOSwgMC4zODM4NzMsIDAuNDg3MzYzLCAwLjU5MDgyOSwgMC42OTQyNzYiLCBcCi0gICAgICAgICAgIjAuMDk5MDQxLCAwLjIwNTg5NiwgMC4yODg3NjUsIDAuMzkyMzAyLCAwLjQ5NTgyNSwgMC41OTkyMzksIDAuNzAyNjUxIiwgXAotICAgICAgICAgICIwLjEwODg5OSwgMC4yMTU3MTMsIDAuMjk4NiwgMC40MDIxMjcsIDAuNTA1NjMsIDAuNjA5MDgzLCAwLjcxMjUyMyIsIFwKLSAgICAgICAgICAiMC4xMTg0NjgsIDAuMjI1MjY5LCAwLjMwODE1MywgMC40MTE2OTMsIDAuNTE1MTksIDAuNjE4NjEyLCAwLjcyMjA3NCIsIFwKLSAgICAgICAgICAiMC4xMjc1ODMsIDAuMjM0NDY5LCAwLjMxNzM2MSwgMC40MjA4OSwgMC41MjQ0MDEsIDAuNjI3ODIsIDAuNzMxMjQ5IiwgXAotICAgICAgICAgICIwLjE0MTEyMiwgMC4yNDgxOTUsIDAuMzMxMDgyLCAwLjQzNDYwOCwgMC41MzgxMDgsIDAuNjQxNTYxLCAwLjc0NDk3MSIsIFwKLSAgICAgICAgICAiMC4xNTE2MTksIDAuMjU5MDQzLCAwLjM0MTksIDAuNDQ1NDY5LCAwLjU0ODkyNSwgMC42NTIzNzgsIDAuNzU1ODE2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1OTkyNiwgMC4yNjIwNDUsIDAuNDI4OTI5LCAwLjYzODI4OSwgMC44NDc3OTgsIDEuMDU3NjcsIDEuMjY3NTkiLCBcCi0gICAgICAgICAgIjAuMDU5ODg2LCAwLjI2MjA4MiwgMC40Mjg5MTIsIDAuNjM3MjY3LCAwLjg0NzcyLCAxLjA1NzgsIDEuMjY3NTIiLCBcCi0gICAgICAgICAgIjAuMDU5ODU1LCAwLjI2MjA2MywgMC40Mjg5MTcsIDAuNjM4MjE0LCAwLjg0Nzg0LCAxLjA1Nzg0LCAxLjI2NzY4IiwgXAotICAgICAgICAgICIwLjA1OTk1NiwgMC4yNjIyMDIsIDAuNDI4OTI3LCAwLjYzNzUyMSwgMC44NDc3NzIsIDEuMDU3NzIsIDEuMjY3NzEiLCBcCi0gICAgICAgICAgIjAuMDYwMjMxLCAwLjI2MjI0NywgMC40Mjg1NzEsIDAuNjM3NDc2LCAwLjg0Nzc0MywgMS4wNTc3NywgMS4yNjcxMyIsIFwKLSAgICAgICAgICAiMC4wNjE0MDUsIDAuMjYyNzcyLCAwLjQyOTA5OCwgMC42MzcxODEsIDAuODQ2NDA3LCAxLjA1NzY5LCAxLjI2NzU0IiwgXAotICAgICAgICAgICIwLjA2MjU5NywgMC4yNjI4MjQsIDAuNDI5MiwgMC42MzgyMDcsIDAuODQ2MzI0LCAxLjA1NzY2LCAxLjI2NjIzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlMwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzkxMDMsIDAuMTgzMjYsIDAuMjY0NjcyLCAwLjM2NjQ1NCwgMC40NjgwNjMsIDAuNTY5Njg3LCAwLjY3MTM1NCIsIFwKLSAgICAgICAgICAiMC4wODgxOTQsIDAuMTkyMzY1LCAwLjI3Mzc4LCAwLjM3NTU2NywgMC40NzcxNzMsIDAuNTc4Nzk0LCAwLjY4MDQ1NyIsIFwKLSAgICAgICAgICAiMC4wOTk4ODcsIDAuMjA0MDc2LCAwLjI4NTUyMSwgMC4zODcyNDMsIDAuNDg4ODY4LCAwLjU5MDUxMywgMC42OTIxNzIiLCBcCi0gICAgICAgICAgIjAuMTExNjI4LCAwLjIxNTg2MywgMC4yOTczMDksIDAuMzk5MDg0LCAwLjUwMDY5MiwgMC42MDIzMTUsIDAuNzAzOTc1IiwgXAotICAgICAgICAgICIwLjEyMjk3OSwgMC4yMjcyODUsIDAuMzA4NzIxLCAwLjQxMDQ2NCwgMC41MTIxMTcsIDAuNjEzNzM4LCAwLjcxNTM5OCIsIFwKLSAgICAgICAgICAiMC4xMzk0MzQsIDAuMjQzODQsIDAuMzI1Mjc5LCAwLjQyNzAwOCwgMC41Mjg2NzUsIDAuNjMwMjg5LCAwLjczMTk3NCIsIFwKLSAgICAgICAgICAiMC4xNTE5NzYsIDAuMjU2NzExLCAwLjMzODExMSwgMC40Mzk4MjQsIDAuNTQxNDk5LCAwLjY0MzEzNiwgMC43NDQ3NzMiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU4NjAzLCAwLjI2MTE5NSwgMC40Mjc4ODYsIDAuNjM2NDU4LCAwLjg0NzU0NSwgMS4wNTY5MiwgMS4yNjU2NCIsIFwKLSAgICAgICAgICAiMC4wNTg2MTQsIDAuMjYxMzQ4LCAwLjQyODI5LCAwLjYzNjY3MSwgMC44NDc1MTgsIDEuMDU2ODksIDEuMjY1NjMiLCBcCi0gICAgICAgICAgIjAuMDU4NjEyLCAwLjI2MTM0NiwgMC40MjgzNTEsIDAuNjM2NzczLCAwLjg0NzQyOSwgMS4wNTcyNiwgMS4yNjU3IiwgXAotICAgICAgICAgICIwLjA1ODc4NiwgMC4yNjEzNjMsIDAuNDI3NjYzLCAwLjYzNjYyMiwgMC44NDc0OTQsIDEuMDU2OSwgMS4yNjU2MyIsIFwKLSAgICAgICAgICAiMC4wNTkzMDgsIDAuMjYxNDU5LCAwLjQyODM3NCwgMC42MzY3MzgsIDAuODQ3Mzk4LCAxLjA1NjgsIDEuMjY1NTciLCBcCi0gICAgICAgICAgIjAuMDYxMTA5LCAwLjI2MTg4LCAwLjQyODQ3NywgMC42Mzc3NzUsIDAuODQ3NDMyLCAxLjA1Njc5LCAxLjI2NDc3IiwgXAotICAgICAgICAgICIwLjA2Mjk3NywgMC4yNjI0MSwgMC40Mjg1NzcsIDAuNjM3ODExLCAwLjg0NjQwMywgMS4wNTcxNywgMS4yNjU4MiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODMxMzQsIDAuMTg5ODcyLCAwLjI3MjczNiwgMC4zNzYyNjIsIDAuNDc5NzQyLCAwLjU4MzE1NywgMC42ODY2MTYiLCBcCi0gICAgICAgICAgIjAuMDkxOTM1LCAwLjE5ODY4MywgMC4yODE1NDcsIDAuMzg1MDc5LCAwLjQ4ODU1MSwgMC41OTE5NjgsIDAuNjk1NDkzIiwgXAotICAgICAgICAgICIwLjEwMzMxNSwgMC4yMTAwODEsIDAuMjkyOTg0LCAwLjM5NjQ4NywgMC40OTk5NjgsIDAuNjAzMzg2LCAwLjcwNjgxNyIsIFwKLSAgICAgICAgICAiMC4xMTQ2MywgMC4yMjE0MzksIDAuMzA0MzE2LCAwLjQwNzg1NSwgMC41MTEzMDUsIDAuNjE0Nzc4LCAwLjcxODE5MSIsIFwKLSAgICAgICAgICAiMC4xMjU0OTIsIDAuMjMyMzQsIDAuMzE1MjIyLCAwLjQxODc1NCwgMC41MjIyNDYsIDAuNjI1NzAxLCAwLjcyOTE2NSIsIFwKLSAgICAgICAgICAiMC4xNDEwNTcsIDAuMjQ4MDM2LCAwLjMzMDk4NywgMC40MzQ0OTYsIDAuNTM3OTU5LCAwLjY0MTQxOCwgMC43NDQ4NDUiLCBcCi0gICAgICAgICAgIjAuMTUyNzg0LCAwLjI2MDE1OSwgMC4zNDMwNDgsIDAuNDQ2NTU4LCAwLjU1MDAyNSwgMC42NTM0MjUsIDAuNzU2ODQ3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1OTYwNiwgMC4yNjIwOTcsIDAuNDI4Nzg3LCAwLjYzNjU5MywgMC44NDc4MDIsIDEuMDU3NjIsIDEuMjY3NiIsIFwKLSAgICAgICAgICAiMC4wNTk1OTUsIDAuMjYxODI4LCAwLjQyODc4NywgMC42MzY3MzEsIDAuODQ3ODExLCAxLjA1NzYsIDEuMjY3NjUiLCBcCi0gICAgICAgICAgIjAuMDU5NjU1LCAwLjI2MjExNCwgMC40Mjc5NTIsIDAuNjM2NjQyLCAwLjg0Nzc5OCwgMS4wNTc2MiwgMS4yNjcwMSIsIFwKLSAgICAgICAgICAiMC4wNTk3ODQsIDAuMjYyMDg3LCAwLjQyODc4OSwgMC42MzcyMzUsIDAuODQ3NzQsIDEuMDU3NjksIDEuMjY3NCIsIFwKLSAgICAgICAgICAiMC4wNjAyNzQsIDAuMjYyMDQsIDAuNDI4ODMsIDAuNjM4MTUyLCAwLjg0NzgwNywgMS4wNTc3OCwgMS4yNjc3NyIsIFwKLSAgICAgICAgICAiMC4wNjE4MjQsIDAuMjYyNjksIDAuNDI5MTExLCAwLjYzNzEyMywgMC44NDc4MSwgMS4wNTc2NywgMS4yNjcwNiIsIFwKLSAgICAgICAgICAiMC4wNjM0NjUsIDAuMjYzMDQyLCAwLjQyODA0NiwgMC42MzgzNjIsIDAuODQ2MDAxLCAxLjA1Nzc2LCAxLjI2NTMyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlMwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTc4OTUsIDAuMjAyMjAzLCAwLjI4MzY0MSwgMC4zODUzNywgMC40ODcwMjQsIDAuNTg4NzIsIDAuNjkwMzA3IiwgXAotICAgICAgICAgICIwLjEwNzcyOSwgMC4yMTIwMywgMC4yOTM0NjMsIDAuMzk1MjUxLCAwLjQ5Njg2NSwgMC41OTg1LCAwLjcwMDE0NiIsIFwKLSAgICAgICAgICAiMC4xMTgzNzUsIDAuMjIyNjgxLCAwLjMwNDExNywgMC40MDU4MzYsIDAuNTA3NTE3LCAwLjYwOTE1MywgMC43MTA4MTQiLCBcCi0gICAgICAgICAgIjAuMTI3MDE1LCAwLjIzMTMwNSwgMC4zMTI3MzksIDAuNDE0NDYyLCAwLjUxNjEzOSwgMC42MTc3NzcsIDAuNzE5NTI3IiwgXAotICAgICAgICAgICIwLjEzMzk0NSwgMC4yMzgyMjIsIDAuMzE5NjUyLCAwLjQyMTM5NiwgMC41MjMwODEsIDAuNjI0NzI0LCAwLjcyNjMzIiwgXAotICAgICAgICAgICIwLjE0MzMwOCwgMC4yNDc3NDksIDAuMzI5MTA1LCAwLjQzMDgyMSwgMC41MzI2MjMsIDAuNjM0MTUzLCAwLjczNTg1MyIsIFwKLSAgICAgICAgICAiMC4xNTAzLCAwLjI1NDkzOSwgMC4zMzYzOTgsIDAuNDM4MDU5LCAwLjUzOTc2MiwgMC42NDE0MjEsIDAuNzQzMSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTg2NjksIDAuMjYxMTQ1LCAwLjQyODQxOSwgMC42MzY2ODQsIDAuODQ3NSwgMS4wNTc0MSwgMS4yNjU3OCIsIFwKLSAgICAgICAgICAiMC4wNTg1NDIsIDAuMjYxMzc2LCAwLjQyODI5NiwgMC42MzY0OSwgMC44NDc1MTgsIDEuMDU2MDMsIDEuMjY1OTIiLCBcCi0gICAgICAgICAgIjAuMDU4NjUxLCAwLjI2MTQyMiwgMC40MjgyNzgsIDAuNjM3NzkxLCAwLjg0NzUxMiwgMS4wNTYwMSwgMS4yNjU3NiIsIFwKLSAgICAgICAgICAiMC4wNTg1ODUsIDAuMjYxNDE1LCAwLjQyODI2OSwgMC42MzcwMjcsIDAuODQ3NTA1LCAxLjA1NjA3LCAxLjI2NzQiLCBcCi0gICAgICAgICAgIjAuMDU4ODEsIDAuMjYxNTgzLCAwLjQyODI1NCwgMC42MzY1NDQsIDAuODQ2MTc3LCAxLjA1NTMxLCAxLjI2NTUiLCBcCi0gICAgICAgICAgIjAuMDU4ODE2LCAwLjI2MTgzLCAwLjQyNzk1NywgMC42MzcwMzMsIDAuODQ3NTE3LCAxLjA1NzE2LCAxLjI2Njk3IiwgXAotICAgICAgICAgICIwLjA1ODg4NywgMC4yNjE2MzEsIDAuNDI3OTQ5LCAwLjYzNzcyMSwgMC44NDczMTgsIDEuMDU2MjYsIDEuMjY1MyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDEwOTksIDAuMjA3OTIxLCAwLjI5MDgwNiwgMC4zOTQzNTEsIDAuNDk3ODQ2LCAwLjYwMTI2OSwgMC43MDQ3NyIsIFwKLSAgICAgICAgICAiMC4xMTEyNTUsIDAuMjE4MTE1LCAwLjMwMTAwMywgMC40MDQ1NTgsIDAuNTA4MDI2LCAwLjYxMTQ5OCwgMC43MTQ5MDYiLCBcCi0gICAgICAgICAgIjAuMTIyNjA0LCAwLjIyOTQyMSwgMC4zMTIzMDgsIDAuNDE1ODQ3LCAwLjUxOTM1MSwgMC42MjI3NzIsIDAuNzI2MTk1IiwgXAotICAgICAgICAgICIwLjEzMTk4OSwgMC4yMzg4MiwgMC4zMjE3MDYsIDAuNDI1MjgzLCAwLjUyODc0NSwgMC42MzIyMzksIDAuNzM1NjExIiwgXAotICAgICAgICAgICIwLjEzOTcyNywgMC4yNDY2MTMsIDAuMzI5NSwgMC40MzMwMzksIDAuNTM2NTM0LCAwLjYzOTk1NywgMC43NDM0MzciLCBcCi0gICAgICAgICAgIjAuMTUwMjMxLCAwLjI1NzIwMywgMC4zNDAwOTQsIDAuNDQzNjk4LCAwLjU0NzExNSwgMC42NTA1ODIsIDAuNzUzOTk5IiwgXAotICAgICAgICAgICIwLjE1ODI5LCAwLjI2NTMxOCwgMC4zNDgyMjYsIDAuNDUxNzQzLCAwLjU1NTIzOSwgMC42NTg3MDksIDAuNzYyMjIxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1OTg3MywgMC4yNjE5NywgMC40Mjg5NzMsIDAuNjM2NTk0LCAwLjg0Nzg3OSwgMS4wNTc4MywgMS4yNjc3NiIsIFwKLSAgICAgICAgICAiMC4wNTk4NzEsIDAuMjYyMjEyLCAwLjQyODkxOSwgMC42MzcxNTksIDAuODQ1ODM0LCAxLjA1NTc4LCAxLjI2NzYxIiwgXAotICAgICAgICAgICIwLjA1OTg4MiwgMC4yNjIxNjUsIDAuNDI4OTM1LCAwLjYzNzQ0OSwgMC44NDc4MDcsIDEuMDU3NzQsIDEuMjY3NTIiLCBcCi0gICAgICAgICAgIjAuMDU5ODQ3LCAwLjI2MjAyNSwgMC40Mjg5MTQsIDAuNjM4MjgsIDAuODQ2NDEzLCAxLjA1NzY0LCAxLjI2NzU1IiwgXAotICAgICAgICAgICIwLjA1OTk1OCwgMC4yNjE5NzYsIDAuNDI4OTMxLCAwLjYzNzI3NiwgMC44NDc3NDgsIDEuMDU3NzIsIDEuMjY1MDIiLCBcCi0gICAgICAgICAgIjAuMDU5OTkyLCAwLjI2MjM3LCAwLjQyODcwMiwgMC42MzcxNzYsIDAuODQ2MDksIDEuMDU3NDksIDEuMjY3NTkiLCBcCi0gICAgICAgICAgIjAuMDYwMDAyLCAwLjI2MjUyNiwgMC40Mjg3MDcsIDAuNjM3ODA3LCAwLjg0NjU5LCAxLjA1NjQ5LCAxLjI2Njc2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyNzI5LCAwLjAwMjc5OCwgMC4wMDI4MDgsIDAuMDAyODEzLCAwLjAwMjgxNSwgMC4wMDI4MTcsIDAuMDAyODE5IiwgXAotICAgICAgICAgICIwLjAwMjcwOCwgMC4wMDI3OCwgMC4wMDI3ODksIDAuMDAyNzk0LCAwLjAwMjc5NywgMC4wMDI3OTksIDAuMDAyOCIsIFwKLSAgICAgICAgICAiMC4wMDI2OTIsIDAuMDAyNzY2LCAwLjAwMjc3OSwgMC4wMDI3ODQsIDAuMDAyNzg4LCAwLjAwMjc4OSwgMC4wMDI3OSIsIFwKLSAgICAgICAgICAiMC4wMDI2ODEsIDAuMDAyNzU4LCAwLjAwMjc3MSwgMC4wMDI3NzgsIDAuMDAyNzgxLCAwLjAwMjc4MywgMC4wMDI3ODYiLCBcCi0gICAgICAgICAgIjAuMDAyNjc1LCAwLjAwMjc1MywgMC4wMDI3NjgsIDAuMDAyNzc1LCAwLjAwMjc3OCwgMC4wMDI3ODEsIDAuMDAyNzgyIiwgXAotICAgICAgICAgICIwLjAwMjY3MiwgMC4wMDI3NDgsIDAuMDAyNzY1LCAwLjAwMjc3MywgMC4wMDI3NzcsIDAuMDAyNzgxLCAwLjAwMjc4NCIsIFwKLSAgICAgICAgICAiMC4wMDI2NzksIDAuMDAyNzQ5LCAwLjAwMjc2NywgMC4wMDI3NzUsIDAuMDAyNzgyLCAwLjAwMjc4MywgMC4wMDI3ODciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDM3MDYsIDAuMDAzNzk3LCAwLjAwMzgxLCAwLjAwMzgxNywgMC4wMDM4MiwgMC4wMDM4MjIsIDAuMDAzODI0IiwgXAotICAgICAgICAgICIwLjAwMzY5MiwgMC4wMDM3ODYsIDAuMDAzOCwgMC4wMDM4MDcsIDAuMDAzODEsIDAuMDAzODEzLCAwLjAwMzgxNCIsIFwKLSAgICAgICAgICAiMC4wMDM2NzksIDAuMDAzNzc3LCAwLjAwMzc5MSwgMC4wMDM3OTksIDAuMDAzODA0LCAwLjAwMzgwNiwgMC4wMDM4MDgiLCBcCi0gICAgICAgICAgIjAuMDAzNjc0LCAwLjAwMzc3MSwgMC4wMDM3ODYsIDAuMDAzNzk1LCAwLjAwMzgsIDAuMDAzODAyLCAwLjAwMzgwNCIsIFwKLSAgICAgICAgICAiMC4wMDM2NjUsIDAuMDAzNzY1LCAwLjAwMzc4MywgMC4wMDM3OTIsIDAuMDAzNzk3LCAwLjAwMzgwMSwgMC4wMDM4MDMiLCBcCi0gICAgICAgICAgIjAuMDAzNjU1LCAwLjAwMzc2MSwgMC4wMDM3NzgsIDAuMDAzNzksIDAuMDAzNzk2LCAwLjAwMzc5OSwgMC4wMDM4MDIiLCBcCi0gICAgICAgICAgIjAuMDAzNjU5LCAwLjAwMzc1NywgMC4wMDM3NzgsIDAuMDAzNzksIDAuMDAzNzk3LCAwLjAwMzgwMSwgMC4wMDM4MDQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI1MTgsIDAuMDAyNTYxLCAwLjAwMjU2NywgMC4wMDI1NywgMC4wMDI1NzEsIDAuMDAyNTcyLCAwLjAwMjU3MyIsIFwKLSAgICAgICAgICAiMC4wMDI0OTksIDAuMDAyNTQ1LCAwLjAwMjU1LCAwLjAwMjU1MywgMC4wMDI1NTUsIDAuMDAyNTU0LCAwLjAwMjU1NiIsIFwKLSAgICAgICAgICAiMC4wMDI0ODUsIDAuMDAyNTM1LCAwLjAwMjU0MywgMC4wMDI1NDQsIDAuMDAyNTQ2LCAwLjAwMjU0NywgMC4wMDI1NDYiLCBcCi0gICAgICAgICAgIjAuMDAyNDc5LCAwLjAwMjUzLCAwLjAwMjUzNywgMC4wMDI1NCwgMC4wMDI1NDMsIDAuMDAyNTQ0LCAwLjAwMjU0NCIsIFwKLSAgICAgICAgICAiMC4wMDI0NywgMC4wMDI1MjUsIDAuMDAyNTM1LCAwLjAwMjUzOCwgMC4wMDI1NCwgMC4wMDI1NDEsIDAuMDAyNTQyIiwgXAotICAgICAgICAgICIwLjAwMjQ2OCwgMC4wMDI1MjMsIDAuMDAyNTMzLCAwLjAwMjUzOCwgMC4wMDI1NDMsIDAuMDAyNTQyLCAwLjAwMjU0NCIsIFwKLSAgICAgICAgICAiMC4wMDI0NzYsIDAuMDAyNTI0LCAwLjAwMjUzNiwgMC4wMDI1MzksIDAuMDAyNTQ1LCAwLjAwMjU0NSwgMC4wMDI1NDgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDM5MiwgMC4wMDM5OTEsIDAuMDA0MDAxLCAwLjAwNDAwNiwgMC4wMDQwMDksIDAuMDA0MDEsIDAuMDA0MDExIiwgXAotICAgICAgICAgICIwLjAwMzkwNywgMC4wMDM5ODEsIDAuMDAzOTkxLCAwLjAwMzk5NiwgMC4wMDM5OTksIDAuMDA0MDAxLCAwLjAwNDAwMiIsIFwKLSAgICAgICAgICAiMC4wMDM4OTUsIDAuMDAzOTczLCAwLjAwMzk4NSwgMC4wMDM5OSwgMC4wMDM5OTMsIDAuMDAzOTk1LCAwLjAwMzk5NiIsIFwKLSAgICAgICAgICAiMC4wMDM4OTQsIDAuMDAzOTcsIDAuMDAzOTgyLCAwLjAwMzk4OCwgMC4wMDM5OTIsIDAuMDAzOTkzLCAwLjAwMzk5NSIsIFwKLSAgICAgICAgICAiMC4wMDM4OTMsIDAuMDAzOTY4LCAwLjAwMzk4MSwgMC4wMDM5ODgsIDAuMDAzOTkyLCAwLjAwMzk5NCwgMC4wMDM5OTUiLCBcCi0gICAgICAgICAgIjAuMDAzODgzLCAwLjAwMzk2MiwgMC4wMDM5NzksIDAuMDAzOTg3LCAwLjAwMzk5MSwgMC4wMDM5OTQsIDAuMDAzOTk2IiwgXAotICAgICAgICAgICIwLjAwMzg4OCwgMC4wMDM5NjMsIDAuMDAzOTc2LCAwLjAwMzk4NywgMC4wMDM5OTIsIDAuMDAzOTk1LCAwLjAwMzk5NyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlMwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQ3MTMsIDAuMDA0Nzg2LCAwLjAwNDc5NCwgMC4wMDQ4MDQsIDAuMDA0ODA2LCAwLjAwNDgwOCwgMC4wMDQ4MTEiLCBcCi0gICAgICAgICAgIjAuMDA0Njk5LCAwLjAwNDc3MSwgMC4wMDQ3ODEsIDAuMDA0Nzg4LCAwLjAwNDc5MSwgMC4wMDQ3OTMsIDAuMDA0Nzk0IiwgXAotICAgICAgICAgICIwLjAwNDcwNCwgMC4wMDQ3NzYsIDAuMDA0Nzg4LCAwLjAwNDc5MywgMC4wMDQ3OTYsIDAuMDA0Nzk4LCAwLjAwNDc5OCIsIFwKLSAgICAgICAgICAiMC4wMDQ3MDQsIDAuMDA0Nzc2LCAwLjAwNDc4NiwgMC4wMDQ3OTIsIDAuMDA0Nzk2LCAwLjAwNDc5OCwgMC4wMDQ3OTkiLCBcCi0gICAgICAgICAgIjAuMDA0NzE0LCAwLjAwNDc4NiwgMC4wMDQ3OTgsIDAuMDA0ODAzLCAwLjAwNDgwNywgMC4wMDQ4MDgsIDAuMDA0ODA5IiwgXAotICAgICAgICAgICIwLjAwNDczMSwgMC4wMDQ4MDIsIDAuMDA0ODE4LCAwLjAwNDgyNCwgMC4wMDQ4MjQsIDAuMDA0ODI3LCAwLjAwNDgyNyIsIFwKLSAgICAgICAgICAiMC4wMDQ3NTIsIDAuMDA0ODI1LCAwLjAwNDgzNywgMC4wMDQ4MzksIDAuMDA0ODQ2LCAwLjAwNDg0NywgMC4wMDQ4NDkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDM1NTIsIDAuMDAzNjM0LCAwLjAwMzY0NywgMC4wMDM2NTMsIDAuMDAzNjU3LCAwLjAwMzY1OSwgMC4wMDM2NjEiLCBcCi0gICAgICAgICAgIjAuMDAzNTM0LCAwLjAwMzYxNiwgMC4wMDM2MjgsIDAuMDAzNjM1LCAwLjAwMzYzOCwgMC4wMDM2NDEsIDAuMDAzNjQyIiwgXAotICAgICAgICAgICIwLjAwMzUzNiwgMC4wMDM2MTgsIDAuMDAzNjMsIDAuMDAzNjM3LCAwLjAwMzY0LCAwLjAwMzY0MiwgMC4wMDM2NDQiLCBcCi0gICAgICAgICAgIjAuMDAzNTM3LCAwLjAwMzYxOSwgMC4wMDM2MzIsIDAuMDAzNjM5LCAwLjAwMzY0MiwgMC4wMDM2NDUsIDAuMDAzNjQ2IiwgXAotICAgICAgICAgICIwLjAwMzU0NiwgMC4wMDM2MjgsIDAuMDAzNjQsIDAuMDAzNjQ3LCAwLjAwMzY1MSwgMC4wMDM2NTMsIDAuMDAzNjU0IiwgXAotICAgICAgICAgICIwLjAwMzU3LCAwLjAwMzY1LCAwLjAwMzY2MywgMC4wMDM2NzEsIDAuMDAzNjczLCAwLjAwMzY3NSwgMC4wMDM2NzciLCBcCi0gICAgICAgICAgIjAuMDAzNTk0LCAwLjAwMzY2OSwgMC4wMDM2ODEsIDAuMDAzNjg4LCAwLjAwMzY5NywgMC4wMDM2OTksIDAuMDAzNzAxIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IENMS01YMlgzICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChDTEtNWDJYMykgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjI1MjczNDsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwODg4MTkyOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDg4NTI1NzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA4ODgxOTI7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzc5LCAwLjAwMDM4OCwgMC4wMDAzOTEsIDAuMDAwMzkyLCAwLjAwMDM5MywgMC4wMDAzOTQsIDAuMDAwMzk0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNDIxLCAwLjAwMDQxMiwgMC4wMDA0MTEsIDAuMDAwNDExLCAwLjAwMDQxMSwgMC4wMDA0MTEsIDAuMDAwNDExIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA4NjI1OTI7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwODU5Njg3OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDg2MjU5MjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAzOTMsIDAuMDAwMzk3LCAwLjAwMDM5OSwgMC4wMDAzOTksIDAuMDAwNCwgMC4wMDA0LCAwLjAwMDQwMSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDQxNiwgMC4wMDA0MTEsIDAuMDAwNDExLCAwLjAwMDQxMSwgMC4wMDA0MTEsIDAuMDAwNDExLCAwLjAwMDQxMSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUzApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTUzNTkxOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTUzNTAxOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTUzNTkxOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDM5MywgMC4wMDAzNjMsIDAuMDAwMzY2LCAwLjAwMDM4LCAwLjAwMDM5NywgMC4wMDA0MDcsIDAuMDAwNDMxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyMjk2LCAwLjAwMjI3NiwgMC4wMDIyNzgsIDAuMDAyMjc5LCAwLjAwMjI4OSwgMC4wMDIzMTMsIDAuMDAyMzM2Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuNzc0ODg4OwotICAgIGZ1bmN0aW9uIDogIigoUzAgQikgKyAoIVMwIEEpKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDcxOTQxLCAwLjE0MzIxMSwgMC4xOTc5NDUsIDAuMjY2Mjg0LCAwLjMzNDYxMywgMC40MDI4OTYsIDAuNDcxMTIyIiwgXAotICAgICAgICAgICIwLjA4MDU1NSwgMC4xNTE4NTUsIDAuMjA2NTk0LCAwLjI3NDk1OSwgMC4zNDMyNDcsIDAuNDExNTYxLCAwLjQ3OTgyNCIsIFwKLSAgICAgICAgICAiMC4wOTEzMjksIDAuMTYyNTYzLCAwLjIxNzMwMiwgMC4yODU2NDIsIDAuMzUzOTQ2LCAwLjQyMjIzLCAwLjQ5MDQ5NSIsIFwKLSAgICAgICAgICAiMC4xMDE2ODUsIDAuMTcyOTIzLCAwLjIyNzY2OCwgMC4yOTYwNDksIDAuMzY0MzI1LCAwLjQzMjY1MywgMC41MDA5MTEiLCBcCi0gICAgICAgICAgIjAuMTExNzEsIDAuMTgzMDg2LCAwLjIzNzgzMiwgMC4zMDYxNzIsIDAuMzc0NTA5LCAwLjQ0Mjc5OCwgMC41MTEwMyIsIFwKLSAgICAgICAgICAiMC4xMjYxODIsIDAuMTk3ODgzLCAwLjI1MjU2NiwgMC4zMjA5MDUsIDAuMzg5MjE2LCAwLjQ1NzUzNiwgMC41MjU3NjUiLCBcCi0gICAgICAgICAgIjAuMTM3NjMyLCAwLjIwOTY5MiwgMC4yNjQ0MjQsIDAuMzMyNzU3LCAwLjQwMTA3NSwgMC40NjkzNDIsIDAuNTM3NjU5Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0NDA5MiwgMC4xNzkwNDksIDAuMjkwNTQyLCAwLjQzMDcsIDAuNTcwODM3LCAwLjcxMTE4MywgMC44NTMwODMiLCBcCi0gICAgICAgICAgIjAuMDQ0MDMyLCAwLjE3OTAyNSwgMC4yOTA1MjcsIDAuNDMwOTMsIDAuNTcwNzQ5LCAwLjcxMjM1MywgMC44NTMxMjkiLCBcCi0gICAgICAgICAgIjAuMDQzOTU5LCAwLjE3OTA0MSwgMC4yOTA1MzgsIDAuNDMwODIzLCAwLjU3MTIzNSwgMC43MTE0NzQsIDAuODUzMDU1IiwgXAotICAgICAgICAgICIwLjA0NDI4NCwgMC4xNzkyMjksIDAuMjkwNTUxLCAwLjQzMDk0NiwgMC41NzA3NzUsIDAuNzEyMzYsIDAuODUzMTIzIiwgXAotICAgICAgICAgICIwLjA0NDcxNSwgMC4xNzkyMDYsIDAuMjkwNTg1LCAwLjQzMDc2MywgMC41NzA1MTMsIDAuNzEyMTg1LCAwLjg1MjkyNSIsIFwKLSAgICAgICAgICAiMC4wNDYwNDYsIDAuMTc5NTgyLCAwLjI5MDM0MSwgMC40MzA5MSwgMC41NzA3NzYsIDAuNzEyMjM5LCAwLjg1MjkzMiIsIFwKLSAgICAgICAgICAiMC4wNDcxMzcsIDAuMTgwMDU5LCAwLjI5MDg0MSwgMC40MzA5NzMsIDAuNTcxNDg0LCAwLjcxMjEzMSwgMC44NTMwMTkiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDczNTY1LCAwLjE0NzIwNSwgMC4yMDM0NTYsIDAuMjczNjQxLCAwLjM0MzgzMiwgMC40MTM5NjUsIDAuNDg0MTA0IiwgXAotICAgICAgICAgICIwLjA4MjI4NiwgMC4xNTU5NjMsIDAuMjEyMjE2LCAwLjI4MjQxLCAwLjM1MjU5OCwgMC40MjI3NTgsIDAuNDkyODU4IiwgXAotICAgICAgICAgICIwLjA5MjM2MywgMC4xNjU5NjUsIDAuMjIyMjI0LCAwLjI5MjQyNywgMC4zNjI2MiwgMC40MzI3NTksIDAuNTAyODYiLCBcCi0gICAgICAgICAgIjAuMTAyMDEsIDAuMTc1NjgsIDAuMjMxOTU2LCAwLjMwMjE0NywgMC4zNzIzMTIsIDAuNDQyNDUsIDAuNTEyNTkiLCBcCi0gICAgICAgICAgIjAuMTExMDI2LCAwLjE4NDgwMiwgMC4yNDEwNTYsIDAuMzExMjU3LCAwLjM4MTQ0MSwgMC40NTE2MDQsIDAuNTIxNzAyIiwgXAotICAgICAgICAgICIwLjEyNDA4NywgMC4xOTgyMjMsIDAuMjU0NDk5LCAwLjMyNDc0MSwgMC4zOTQ5MTcsIDAuNDY1MDYzLCAwLjUzNTE4NSIsIFwKLSAgICAgICAgICAiMC4xMzQyMzIsIDAuMjA4NzU0LCAwLjI2NTAzOCwgMC4zMzUyMzYsIDAuNDA1Mzk4LCAwLjQ3NTU0MywgMC41NDU2OTYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQ0Nzc0LCAwLjE4MDkxNSwgMC4yOTMzMDMsIDAuNDM0NTc2LCAwLjU3NTAyMywgMC43MTcyMDksIDAuODYwMzMzIiwgXAotICAgICAgICAgICIwLjA0NDczNSwgMC4xODA5MTIsIDAuMjkyODY2LCAwLjQzNDUzOSwgMC41NzU2NiwgMC43MTgyNzMsIDAuODYwMjYyIiwgXAotICAgICAgICAgICIwLjA0NDcyOSwgMC4xODA5MDgsIDAuMjkyOTEzLCAwLjQzMzg0NiwgMC41NzUyODIsIDAuNzE4MjksIDAuODYwMTk2IiwgXAotICAgICAgICAgICIwLjA0NDkwMSwgMC4xODEwNjQsIDAuMjkzNDIzLCAwLjQzNDYwOSwgMC41NzUzMzQsIDAuNzE4MjM2LCAwLjg2MDI3IiwgXAotICAgICAgICAgICIwLjA0NTU1NCwgMC4xODExMzQsIDAuMjkzMDA4LCAwLjQzNDQ2NSwgMC41NzU3MTgsIDAuNzE4MjE0LCAwLjg2MDIzNyIsIFwKLSAgICAgICAgICAiMC4wNDY3ODIsIDAuMTgxNjU2LCAwLjI5MzYzNSwgMC40MzQ4MDksIDAuNTc2MzQ5LCAwLjcxODExNSwgMC44NjAxNiIsIFwKLSAgICAgICAgICAiMC4wNDc3NzEsIDAuMTgyMTI1LCAwLjI5Mzg4MiwgMC40MzQ3OTQsIDAuNTc2MzI0LCAwLjcxODEyMiwgMC44NjAwNjQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDcxMjcyLCAwLjE0MjM1NiwgMC4xOTcwNzYsIDAuMjY1Mzk1LCAwLjMzMzcwNywgMC40MDE5NzksIDAuNDcwMjI5IiwgXAotICAgICAgICAgICIwLjA4MDE5NiwgMC4xNTEzMjYsIDAuMjA2MDUyLCAwLjI3NDM3NiwgMC4zNDI2OTcsIDAuNDEwOTc1LCAwLjQ3OTIwMyIsIFwKLSAgICAgICAgICAiMC4wOTExMDMsIDAuMTYyMjUsIDAuMjE2OTcyLCAwLjI4NTI5NywgMC4zNTM2NDksIDAuNDIxODgxLCAwLjQ5MDE2MiIsIFwKLSAgICAgICAgICAiMC4xMDE2MjQsIDAuMTcyNzc4LCAwLjIyNzUwMiwgMC4yOTU4NjgsIDAuMzY0MTQ1LCAwLjQzMjQ1MywgMC41MDA2OTciLCBcCi0gICAgICAgICAgIjAuMTExNzI1LCAwLjE4MzAwNiwgMC4yMzc3MzksIDAuMzA2MDY5LCAwLjM3NDQwNSwgMC40NDI2NzEsIDAuNTEwOTAxIiwgXAotICAgICAgICAgICIwLjEyNjM0NSwgMC4xOTc5NTEsIDAuMjUyNjg0LCAwLjMyMTAxNywgMC4zODkzMjMsIDAuNDU3NjMzLCAwLjUyNTg1NyIsIFwKLSAgICAgICAgICAiMC4xMzc3MzUsIDAuMjA5Njk3LCAwLjI2NDQ3MiwgMC4zMzI3OTMsIDAuNDAxMTE5LCAwLjQ2OTM0NCwgMC41Mzc2MzMiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQ0MTAzLCAwLjE3ODk5NCwgMC4yOTA1MzMsIDAuNDMwNzY3LCAwLjU3MDg1OSwgMC43MTE0NzksIDAuODUzMDg5IiwgXAotICAgICAgICAgICIwLjA0Mzk1NSwgMC4xNzg5MjMsIDAuMjkwNTA5LCAwLjQzMDYzNywgMC41NzE1MjQsIDAuNzEyMjgzLCAwLjg1MzA1OCIsIFwKLSAgICAgICAgICAiMC4wNDM5NDQsIDAuMTc5MTQ5LCAwLjI5MDQ5NywgMC40MzAzMDEsIDAuNTcxNTkxLCAwLjcxMjI3MiwgMC44NTMwNzEiLCBcCi0gICAgICAgICAgIjAuMDQ0MjQxLCAwLjE3OTE5NSwgMC4yOTA1MiwgMC40MzA5MTgsIDAuNTcwNzEzLCAwLjcxMjMyNCwgMC44NTMwNjIiLCBcCi0gICAgICAgICAgIjAuMDQ0NTczLCAwLjE3OTE4NCwgMC4yOTA1NTEsIDAuNDMwNjIzLCAwLjU3MDU0MSwgMC43MTIxNiwgMC44NTI5MSIsIFwKLSAgICAgICAgICAiMC4wNDU4NywgMC4xNzk1NzEsIDAuMjkwNDAyLCAwLjQzMDg5NSwgMC41NzA3NTQsIDAuNzEyMjE3LCAwLjg1MjkxNyIsIFwKLSAgICAgICAgICAiMC4wNDcxNTksIDAuMTgwMDY2LCAwLjI5MTA0NiwgMC40MzA5NzEsIDAuNTcxNTM3LCAwLjcxMTQ2NSwgMC44NTI5MjkiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc0ODU5LCAwLjE0ODU0NCwgMC4yMDQ3OTYsIDAuMjc1MDA1LCAwLjM0NTE2NywgMC40MTUzMSwgMC40ODU0NTUiLCBcCi0gICAgICAgICAgIjAuMDgzMjY5LCAwLjE1Njk4NSwgMC4yMTMyNDUsIDAuMjgzNDQ2LCAwLjM1MzYzMSwgMC40MjM4MDQsIDAuNDkzOTA0IiwgXAotICAgICAgICAgICIwLjA5MzE5OSwgMC4xNjY4MiwgMC4yMjMwODMsIDAuMjkzMjc4LCAwLjM2MzQ3MSwgMC40MzM2MTgsIDAuNTAzNzYiLCBcCi0gICAgICAgICAgIjAuMTAyNzEyLCAwLjE3NjQzLCAwLjIzMjcwNywgMC4zMDI5MTIsIDAuMzczMSwgMC40NDMyNjIsIDAuNTEzMzYzIiwgXAotICAgICAgICAgICIwLjExMTY5NSwgMC4xODU0OTMsIDAuMjQxNzU4LCAwLjMxMTk2LCAwLjM4MjE0NSwgMC40NTIzMjMsIDAuNTIyNDIyIiwgXAotICAgICAgICAgICIwLjEyNDcwNCwgMC4xOTg4OCwgMC4yNTUxNjMsIDAuMzI1Mzg4LCAwLjM5NTU0LCAwLjQ2NTc0LCAwLjUzNTgzOCIsIFwKLSAgICAgICAgICAiMC4xMzQ4NzUsIDAuMjA5MzU4LCAwLjI2NTcxNCwgMC4zMzU4OTUsIDAuNDA2MDY4LCAwLjQ3NjIxNCwgMC41NDYzMzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQ0OTMyLCAwLjE4MTA1MiwgMC4yOTMzODIsIDAuNDM0Njg0LCAwLjU3NTQyNSwgMC43MTcxNjksIDAuODYwMzMiLCBcCi0gICAgICAgICAgIjAuMDQ0OTI5LCAwLjE4MTA2MSwgMC4yOTM0MSwgMC40MzQ2MSwgMC41NzU2MjUsIDAuNzE4MjE1LCAwLjg2MDMwNiIsIFwKLSAgICAgICAgICAiMC4wNDQ5MjIsIDAuMTgxMDI3LCAwLjI5MzQzNCwgMC40MzM5MzUsIDAuNTc1MjQ2LCAwLjcxODIzOSwgMC44NjAyMDMiLCBcCi0gICAgICAgICAgIjAuMDQ1MDk0LCAwLjE4MTA3OSwgMC4yOTI5OTcsIDAuNDM0NSwgMC41NzU2MTYsIDAuNzE4MjA0LCAwLjg2MDI3MyIsIFwKLSAgICAgICAgICAiMC4wNDU2OTEsIDAuMTgxMjUxLCAwLjI5MzEsIDAuNDM0NjY3LCAwLjU3NTYzOCwgMC43MTgxNywgMC44NjAzMSIsIFwKLSAgICAgICAgICAiMC4wNDY4OTUsIDAuMTgxNjkzLCAwLjI5Mzc0NiwgMC40MzQ4ODUsIDAuNTc1NTI4LCAwLjcxNjcwNSwgMC44NjAxNjEiLCBcCi0gICAgICAgICAgIjAuMDQ3ODc3LCAwLjE4MjIwMiwgMC4yOTM5OTMsIDAuNDM0NjMsIDAuNTc1NjUzLCAwLjcxODIwOSwgMC44NjAyNDIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUzAiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2NDQxNiwgMC4xMzU1MywgMC4xOTAyNTEsIDAuMjU4NTgyLCAwLjMyNjkzNCwgMC4zOTUxNzQsIDAuNDYzNDExIiwgXAotICAgICAgICAgICIwLjA3MzQ0MSwgMC4xNDQ1NzQsIDAuMTk5MywgMC4yNjc2MzIsIDAuMzM1OTY4LCAwLjQwNDIwNywgMC40NzI0NTgiLCBcCi0gICAgICAgICAgIjAuMDg1MDY1LCAwLjE1NjI0MywgMC4yMTA5NywgMC4yNzkzMSwgMC4zNDc2NzMsIDAuNDE1OTA0LCAwLjQ4NDE0NSIsIFwKLSAgICAgICAgICAiMC4wOTY2MjEsIDAuMTY3ODI4LCAwLjIyMjU2NSwgMC4yOTA5MDksIDAuMzU5MjA4LCAwLjQyNzU1NCwgMC40OTU3NzQiLCBcCi0gICAgICAgICAgIjAuMTA3MzQ1LCAwLjE3ODcwMiwgMC4yMzM0MjYsIDAuMzAxNzU1LCAwLjM3MDA5MywgMC40MzgzNjUsIDAuNTA2NTk1IiwgXAotICAgICAgICAgICIwLjEyMjQ4NiwgMC4xOTQyNDgsIDAuMjQ4OTY1LCAwLjMxNzI5OCwgMC4zODU2MDEsIDAuNDUzODkxLCAwLjUyMjE1MyIsIFwKLSAgICAgICAgICAiMC4xMzQxMjMsIDAuMjA2MjQ5LCAwLjI2MDkzMiwgMC4zMjkyMzIsIDAuMzk3NTM1LCAwLjQ2NTgsIDAuNTM0MDk1Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0MzkwMywgMC4xNzkwMjgsIDAuMjkwNTE4LCAwLjQzMDMsIDAuNTcxNjIsIDAuNzEyMjk2LCAwLjg1Mjc1IiwgXAotICAgICAgICAgICIwLjA0MzkzNSwgMC4xNzkxNzQsIDAuMjkwNTA5LCAwLjQzMDg2NywgMC41NzE1NzgsIDAuNzEyMjU0LCAwLjg1MzAyMiIsIFwKLSAgICAgICAgICAiMC4wNDQwMTMsIDAuMTc5MDIzLCAwLjI5MDUyMiwgMC40MzAyOTgsIDAuNTcwNDIsIDAuNzEyMjQ4LCAwLjg1MjcxIiwgXAotICAgICAgICAgICIwLjA0NDM4MywgMC4xNzkyNTMsIDAuMjkwNTUxLCAwLjQzMDI5NCwgMC41NzA4NTQsIDAuNzExMDM1LCAwLjg1MTU1NiIsIFwKLSAgICAgICAgICAiMC4wNDU0OTMsIDAuMTc5MzIyLCAwLjI5MDM4OSwgMC40MzA4MTEsIDAuNTcwNjA0LCAwLjcxMjE4MSwgMC44NTI5MDUiLCBcCi0gICAgICAgICAgIjAuMDQ3ODAyLCAwLjE4MDAwNywgMC4yOTA2OTksIDAuNDMwNDQ0LCAwLjU3MTQ4NiwgMC43MTIxOCwgMC44NTI5MzkiLCBcCi0gICAgICAgICAgIjAuMDQ5NTkxLCAwLjE4MDYwNiwgMC4yOTA4MDQsIDAuNDMwNjIsIDAuNTcwOTczLCAwLjcxMjIxMiwgMC44NTE1MzgiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY3MTc2LCAwLjE0MDgyMiwgMC4xOTcwODMsIDAuMjY3MjY0LCAwLjMzNzQ4LCAwLjQwNzU4NCwgMC40Nzc2OTciLCBcCi0gICAgICAgICAgIjAuMDc2MDE0LCAwLjE0OTY1LCAwLjIwNTkwNSwgMC4yNzYxMDQsIDAuMzQ2Mjg4LCAwLjQxNjQzNCwgMC40ODY1MzUiLCBcCi0gICAgICAgICAgIjAuMDg3MzczLCAwLjE2MTA1MiwgMC4yMTczMywgMC4yODc1MTgsIDAuMzU3NzA4LCAwLjQyNzg0OCwgMC40OTc5NzciLCBcCi0gICAgICAgICAgIjAuMDk4Nzg0LCAwLjE3MjQ4OSwgMC4yMjg3NTksIDAuMjk4OTU4LCAwLjM2OTE1LCAwLjQzOTMsIDAuNTA5NDI3IiwgXAotICAgICAgICAgICIwLjEwOTExMywgMC4xODI5MjEsIDAuMjM5MTkxLCAwLjMwOTM5NywgMC4zNzk1ODIsIDAuNDQ5NzQyLCAwLjUxOTg2MyIsIFwKLSAgICAgICAgICAiMC4xMjM0MjEsIDAuMTk3NjcyLCAwLjI1MzkzOCwgMC4zMjQxNSwgMC4zOTQ0MTYsIDAuNDY0NTM4LCAwLjUzNDY3MSIsIFwKLSAgICAgICAgICAiMC4xMzQ0MjMsIDAuMjA4OTM3LCAwLjI2NTI2NiwgMC4zMzU0NTEsIDAuNDA1NTU4LCAwLjQ3NTc0MiwgMC41NDU5MzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQ0NjUyLCAwLjE4MDkwOSwgMC4yOTMzOTMsIDAuNDMzODk5LCAwLjU3NTEwOCwgMC43MTgyNTIsIDAuODYwMjE2IiwgXAotICAgICAgICAgICIwLjA0NDcyMywgMC4xODA5MzMsIDAuMjkyOTI1LCAwLjQzMzg0NywgMC41NzUwOTcsIDAuNzE4MjA5LCAwLjg2MDE5NyIsIFwKLSAgICAgICAgICAiMC4wNDQ3NjcsIDAuMTgwOTMsIDAuMjkzNDIsIDAuNDM0NTgzLCAwLjU3NTQ3MywgMC43MTY4NDksIDAuODU4MjYiLCBcCi0gICAgICAgICAgIjAuMDQ1MDk5LCAwLjE4MDk4MiwgMC4yOTMzNjMsIDAuNDMzODU5LCAwLjU3NTExOCwgMC43MTgyMTEsIDAuODYwMjk2IiwgXAotICAgICAgICAgICIwLjA0NTk5OSwgMC4xODEyMDIsIDAuMjkzNDI1LCAwLjQzNDYwMiwgMC41NzY0MTEsIDAuNzE4MjUzLCAwLjg2MDI4OSIsIFwKLSAgICAgICAgICAiMC4wNDc4MjIsIDAuMTgxOTc5LCAwLjI5Mzg2MSwgMC40MzM5NzMsIDAuNTc0OTA1LCAwLjcxNjkxNywgMC44NjAxOTkiLCBcCi0gICAgICAgICAgIjAuMDQ5MjY4LCAwLjE4MjUwNiwgMC4yOTQyMiwgMC40MzUwNTksIDAuNTc2NjY1LCAwLjcxNjQ3NiwgMC44NjAyNTciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUzAiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4NjczLCAwLjE1Nzk5NSwgMC4yMTI3MzcsIDAuMjgxMDczLCAwLjM0OTQzLCAwLjQxNzY2OCwgMC40ODU5NTMiLCBcCi0gICAgICAgICAgIjAuMDk2NTg4LCAwLjE2Nzg2OSwgMC4yMjI2MTgsIDAuMjkwOTQ2LCAwLjM1OTMwOCwgMC40Mjc1NDQsIDAuNDk1ODMiLCBcCi0gICAgICAgICAgIjAuMTA3Njc3LCAwLjE3ODk1MiwgMC4yMzM2OSwgMC4zMDIwMjgsIDAuMzcwMzg3LCAwLjQzODYyNCwgMC41MDY4ODkiLCBcCi0gICAgICAgICAgIjAuMTE3MjU0LCAwLjE4ODUwOSwgMC4yNDMyNDMsIDAuMzExNTgzLCAwLjM3OTk0NiwgMC40NDgxODIsIDAuNTE2NDIxIiwgXAotICAgICAgICAgICIwLjEyNDc3NSwgMC4xOTU5OTksIDAuMjUwNzQsIDAuMzE5MDgyLCAwLjM4NzQxNiwgMC40NTU2OTMsIDAuNTIzOTI4IiwgXAotICAgICAgICAgICIwLjEzNTE0LCAwLjIwNjU5MiwgMC4yNjEyNTgsIDAuMzI5NTk0LCAwLjM5ODAwMywgMC40NjYzMjIsIDAuNTM0NTMxIiwgXAotICAgICAgICAgICIwLjE0MjkwOSwgMC4yMTQzODMsIDAuMjY5MTg5LCAwLjMzNzU0MSwgMC40MDU4NTUsIDAuNDc0MTM5LCAwLjU0MjM4MyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDM5ODksIDAuMTc5MDQyLCAwLjI5MDU3OCwgMC40MzAzNTUsIDAuNTcxNjEyLCAwLjcxMjI3MywgMC44NTMwOTIiLCBcCi0gICAgICAgICAgIjAuMDQ0MDU1LCAwLjE3OTA0MiwgMC4yOTA2MjQsIDAuNDMwMzM2LCAwLjU3MTYxOSwgMC43MTIyODEsIDAuODUzMDk1IiwgXAotICAgICAgICAgICIwLjA0NDAwOCwgMC4xNzkwNDEsIDAuMjkwNTU4LCAwLjQzMDM0OSwgMC41NzE2MTMsIDAuNzEyMjc3LCAwLjg1MzA1IiwgXAotICAgICAgICAgICIwLjA0MzkzNywgMC4xNzkwMzcsIDAuMjkwNTIsIDAuNDMwMzI3LCAwLjU3MDQzNiwgMC43MTIyNjYsIDAuODUyOTk0IiwgXAotICAgICAgICAgICIwLjA0NDE4MSwgMC4xNzkxMDEsIDAuMjkwNTU5LCAwLjQzMDY2MywgMC41NzA2MDQsIDAuNzEyMTg4LCAwLjg1MzAwMyIsIFwKLSAgICAgICAgICAiMC4wNDQxMywgMC4xNzkyNjQsIDAuMjkwNzI5LCAwLjQzMDQ5NSwgMC41NzA4MzUsIDAuNzEyMjQyLCAwLjg1MjAzNSIsIFwKLSAgICAgICAgICAiMC4wNDQxMjcsIDAuMTc5MzI0LCAwLjI5MDU4LCAwLjQzMDg3MiwgMC41NzA3NjUsIDAuNzEyMTcyLCAwLjg1Mjg0OCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODc4NDIsIDAuMTYxNTk4LCAwLjIxNzg1OCwgMC4yODgwNjMsIDAuMzU4MjU5LCAwLjQyODQwNywgMC40OTg1MSIsIFwKLSAgICAgICAgICAiMC4wOTgxNjUsIDAuMTcxODcsIDAuMjI4MDksIDAuMjk4Mjk4LCAwLjM2ODQ4OSwgMC40Mzg2NDQsIDAuNTA4Nzc2IiwgXAotICAgICAgICAgICIwLjEwOTk4NiwgMC4xODM2ODgsIDAuMjM5OTUsIDAuMzEwMTY2LCAwLjM4MDMzMiwgMC40NTA0NzIsIDAuNTIwNjIzIiwgXAotICAgICAgICAgICIwLjExOTg0NywgMC4xOTM1NTIsIDAuMjQ5ODEzLCAwLjMyMDAxOCwgMC4zOTAyMDEsIDAuNDYwMzg0LCAwLjUzMDQ4NSIsIFwKLSAgICAgICAgICAiMC4xMjg0ODYsIDAuMjAyMTg2LCAwLjI1ODQ1NSwgMC4zMjg2NTgsIDAuMzk4ODY2LCAwLjQ2OTAzNiwgMC41MzkxMzUiLCBcCi0gICAgICAgICAgIjAuMTM5ODc1LCAwLjIxMzkwOSwgMC4yNjk5NjksIDAuMzQwNDA3LCAwLjQxMDU3NiwgMC40ODA3MzMsIDAuNTUwODcxIiwgXAotICAgICAgICAgICIwLjE0ODksIDAuMjIyNjM0LCAwLjI3ODkzOSwgMC4zNDkyNjcsIDAuNDE5NDQ0LCAwLjQ4OTU2MSwgMC41NTk1OSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDQ5MDgsIDAuMTgxMDQ0LCAwLjI5MzAyMywgMC40MzM5MjYsIDAuNTc1Mjc1LCAwLjcxODMyNCwgMC44NTg3MzIiLCBcCi0gICAgICAgICAgIjAuMDQ0OTYxLCAwLjE4MTA0NCwgMC4yOTMwMTksIDAuNDMzOTI3LCAwLjU3NTE1LCAwLjcxODMwNiwgMC44NjAyMzciLCBcCi0gICAgICAgICAgIjAuMDQ0OTU0LCAwLjE4MTA0MSwgMC4yOTMzNjQsIDAuNDM0Njg3LCAwLjU3NTQxMywgMC43MTcwODIsIDAuODYwMjcyIiwgXAotICAgICAgICAgICIwLjA0NDg5NiwgMC4xODEwNDEsIDAuMjkzNDAzLCAwLjQzNDYxNywgMC41NzY0MzEsIDAuNzE4MjE0LCAwLjg2MDMyOCIsIFwKLSAgICAgICAgICAiMC4wNDUwNTcsIDAuMTgxMDgyLCAwLjI5MzAxNSwgMC40MzQ2MzksIDAuNTc1OCwgMC43MTgxMzgsIDAuODYwMzE4IiwgXAotICAgICAgICAgICIwLjA0NTAwMSwgMC4xODExNzUsIDAuMjkzNTUxLCAwLjQzNDA5NCwgMC41NzU1NjUsIDAuNzE2ODU5LCAwLjg2MDA3MSIsIFwKLSAgICAgICAgICAiMC4wNDUwMzQsIDAuMTgxMzcyLCAwLjI5MzA2LCAwLjQzNDE0OSwgMC41NzU4NDcsIDAuNzE3OTkxLCAwLjg1ODgyNiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDEyLCAwLjAwNDIzOSwgMC4wMDQyNTUsIDAuMDA0MjY1LCAwLjAwNDI3LCAwLjAwNDI3MywgMC4wMDQyNzYiLCBcCi0gICAgICAgICAgIjAuMDA0MDgsIDAuMDA0MjAxLCAwLjAwNDIyLCAwLjAwNDIyNiwgMC4wMDQyNCwgMC4wMDQyNDIsIDAuMDA0MjQxIiwgXAotICAgICAgICAgICIwLjAwNDA1NiwgMC4wMDQxNzYsIDAuMDA0MTk3LCAwLjAwNDIwOSwgMC4wMDQyMTUsIDAuMDA0MjIyLCAwLjAwNDIyMiIsIFwKLSAgICAgICAgICAiMC4wMDQwMzUsIDAuMDA0MTU4LCAwLjAwNDE4MiwgMC4wMDQxOTYsIDAuMDA0MjA0LCAwLjAwNDIwNywgMC4wMDQyMTEiLCBcCi0gICAgICAgICAgIjAuMDA0MDMyLCAwLjAwNDE0OCwgMC4wMDQxNzQsIDAuMDA0MTkxLCAwLjAwNDE5NywgMC4wMDQyMDIsIDAuMDA0MjA4IiwgXAotICAgICAgICAgICIwLjAwNDAyNSwgMC4wMDQxMzgsIDAuMDA0MTY4LCAwLjAwNDE4NiwgMC4wMDQxOTIsIDAuMDA0MiwgMC4wMDQyMDciLCBcCi0gICAgICAgICAgIjAuMDA0MDMxLCAwLjAwNDEzNywgMC4wMDQxNjksIDAuMDA0MTg2LCAwLjAwNDE5NiwgMC4wMDQyMDMsIDAuMDA0MjEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDU0ODYsIDAuMDA1NjM3LCAwLjAwNTY2LCAwLjAwNTY3MywgMC4wMDU2OCwgMC4wMDU2ODQsIDAuMDA1Njg3IiwgXAotICAgICAgICAgICIwLjAwNTQ2LCAwLjAwNTYxNSwgMC4wMDU2MzksIDAuMDA1NjUzLCAwLjAwNTY2LCAwLjAwNTY2NSwgMC4wMDU2NjgiLCBcCi0gICAgICAgICAgIjAuMDA1NDQxLCAwLjAwNTU5NywgMC4wMDU2MjQsIDAuMDA1NjM5LCAwLjAwNTY0NywgMC4wMDU2NTIsIDAuMDA1NjU2IiwgXAotICAgICAgICAgICIwLjAwNTQyOCwgMC4wMDU1ODIsIDAuMDA1NjEzLCAwLjAwNTYzLCAwLjAwNTYzOSwgMC4wMDU2NDQsIDAuMDA1NjQ4IiwgXAotICAgICAgICAgICIwLjAwNTQyLCAwLjAwNTU3NSwgMC4wMDU2MDYsIDAuMDA1NjI1LCAwLjAwNTYzNSwgMC4wMDU2NDEsIDAuMDA1NjQ1IiwgXAotICAgICAgICAgICIwLjAwNTQwOCwgMC4wMDU1NjEsIDAuMDA1NTk3LCAwLjAwNTYxOCwgMC4wMDU2MywgMC4wMDU2MzcsIDAuMDA1NjQyIiwgXAotICAgICAgICAgICIwLjAwNTQxNCwgMC4wMDU1NTgsIDAuMDA1NTk2LCAwLjAwNTYxOSwgMC4wMDU2MzEsIDAuMDA1NjM5LCAwLjAwNTY0NSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzc1MiwgMC4wMDM4MjgsIDAuMDAzODQsIDAuMDAzODQ2LCAwLjAwMzg0NywgMC4wMDM4NDcsIDAuMDAzODUxIiwgXAotICAgICAgICAgICIwLjAwMzcxNCwgMC4wMDM3OTUsIDAuMDAzODA4LCAwLjAwMzgxNSwgMC4wMDM4MTEsIDAuMDAzODE2LCAwLjAwMzgxNyIsIFwKLSAgICAgICAgICAiMC4wMDM2ODcsIDAuMDAzNzc1LCAwLjAwMzc4NywgMC4wMDM3OTQsIDAuMDAzNzk4LCAwLjAwMzc5OSwgMC4wMDM4IiwgXAotICAgICAgICAgICIwLjAwMzY3MywgMC4wMDM3NjIsIDAuMDAzNzc2LCAwLjAwMzc4MywgMC4wMDM3ODksIDAuMDAzNzkyLCAwLjAwMzc5MiIsIFwKLSAgICAgICAgICAiMC4wMDM2NjUsIDAuMDAzNzUzLCAwLjAwMzc3LCAwLjAwMzc3OSwgMC4wMDM3ODUsIDAuMDAzNzg3LCAwLjAwMzc4OSIsIFwKLSAgICAgICAgICAiMC4wMDM2NjEsIDAuMDAzNzQ5LCAwLjAwMzc2NywgMC4wMDM3NzcsIDAuMDAzNzgzLCAwLjAwMzc4NiwgMC4wMDM3OTEiLCBcCi0gICAgICAgICAgIjAuMDAzNjczLCAwLjAwMzc1MSwgMC4wMDM3NywgMC4wMDM3ODUsIDAuMDAzNzkxLCAwLjAwMzc5NCwgMC4wMDM3OTgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDU4NDQsIDAuMDA1OTYxLCAwLjAwNTk3OSwgMC4wMDU5ODgsIDAuMDA1OTkzLCAwLjAwNTk5NiwgMC4wMDU5OTgiLCBcCi0gICAgICAgICAgIjAuMDA1ODE5LCAwLjAwNTk0MiwgMC4wMDU5NiwgMC4wMDU5NywgMC4wMDU5NzUsIDAuMDA1OTc4LCAwLjAwNTk4IiwgXAotICAgICAgICAgICIwLjAwNTgwMSwgMC4wMDU5MjYsIDAuMDA1OTQ3LCAwLjAwNTk1OCwgMC4wMDU5NjQsIDAuMDA1OTY4LCAwLjAwNTk3IiwgXAotICAgICAgICAgICIwLjAwNTc5MSwgMC4wMDU5MTksIDAuMDA1OTQxLCAwLjAwNTk1NCwgMC4wMDU5NiwgMC4wMDU5NjQsIDAuMDA1OTY3IiwgXAotICAgICAgICAgICIwLjAwNTc4NiwgMC4wMDU5MTIsIDAuMDA1OTM3LCAwLjAwNTk1LCAwLjAwNTk1OCwgMC4wMDU5NjIsIDAuMDA1OTY1IiwgXAotICAgICAgICAgICIwLjAwNTc3NSwgMC4wMDU5MDIsIDAuMDA1OTMsIDAuMDA1OTQ2LCAwLjAwNTk1NSwgMC4wMDU5NiwgMC4wMDU5NjQiLCBcCi0gICAgICAgICAgIjAuMDA1Nzg2LCAwLjAwNTkwNSwgMC4wMDU5MzMsIDAuMDA1OTQ5LCAwLjAwNTk1OCwgMC4wMDU5NjUsIDAuMDA1OTY5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUzAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjQxMywgMC4wMDY1MjksIDAuMDA2NTUxLCAwLjAwNjU2NCwgMC4wMDY1NywgMC4wMDY1NzMsIDAuMDA2NTc2IiwgXAotICAgICAgICAgICIwLjAwNjQsIDAuMDA2NTE3LCAwLjAwNjU0LCAwLjAwNjU1LCAwLjAwNjU1NywgMC4wMDY1NiwgMC4wMDY1NjQiLCBcCi0gICAgICAgICAgIjAuMDA2Mzk0LCAwLjAwNjUxMiwgMC4wMDY1MzMsIDAuMDA2NTQ0LCAwLjAwNjU1MSwgMC4wMDY1NTUsIDAuMDA2NTU4IiwgXAotICAgICAgICAgICIwLjAwNjM5LCAwLjAwNjUwOCwgMC4wMDY1MjksIDAuMDA2NTQxLCAwLjAwNjU0NywgMC4wMDY1NTEsIDAuMDA2NTU0IiwgXAotICAgICAgICAgICIwLjAwNjM5NCwgMC4wMDY1MTQsIDAuMDA2NTM0LCAwLjAwNjU0NiwgMC4wMDY1NTMsIDAuMDA2NTU3LCAwLjAwNjU1OSIsIFwKLSAgICAgICAgICAiMC4wMDY0MDQsIDAuMDA2NTE5LCAwLjAwNjU0NSwgMC4wMDY1NTksIDAuMDA2NTU3LCAwLjAwNjU2MSwgMC4wMDY1NjQiLCBcCi0gICAgICAgICAgIjAuMDA2NDE4LCAwLjAwNjUzMywgMC4wMDY1NTMsIDAuMDA2NTY2LCAwLjAwNjU3NCwgMC4wMDY1NzgsIDAuMDA2NTgxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1MzExLCAwLjAwNTQ0MSwgMC4wMDU0NjUsIDAuMDA1NDc4LCAwLjAwNTQ4NSwgMC4wMDU0OSwgMC4wMDU0OTMiLCBcCi0gICAgICAgICAgIjAuMDA1Mjk1LCAwLjAwNTQyNiwgMC4wMDU0NDksIDAuMDA1NDYyLCAwLjAwNTQ2OSwgMC4wMDU0NzQsIDAuMDA1NDc3IiwgXAotICAgICAgICAgICIwLjAwNTI4NywgMC4wMDU0MTksIDAuMDA1NDQxLCAwLjAwNTQ1NSwgMC4wMDU0NjIsIDAuMDA1NDY2LCAwLjAwNTQ2OSIsIFwKLSAgICAgICAgICAiMC4wMDUyOSwgMC4wMDU0MjQsIDAuMDA1NDQ3LCAwLjAwNTQ2LCAwLjAwNTQ2NywgMC4wMDU0NzEsIDAuMDA1NDc0IiwgXAotICAgICAgICAgICIwLjAwNTI4NSwgMC4wMDU0MjEsIDAuMDA1NDQ0LCAwLjAwNTQ1NywgMC4wMDU0NjMsIDAuMDA1NDY4LCAwLjAwNTQ3MSIsIFwKLSAgICAgICAgICAiMC4wMDUzMDEsIDAuMDA1NDM4LCAwLjAwNTQ1NSwgMC4wMDU0NzQsIDAuMDA1NDgxLCAwLjAwNTQ4NSwgMC4wMDU0ODgiLCBcCi0gICAgICAgICAgIjAuMDA1MzI2LCAwLjAwNTQ0OCwgMC4wMDU0NzEsIDAuMDA1NDkyLCAwLjAwNTUsIDAuMDA1NTA1LCAwLjAwNTQ5OSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBDTEtNWDJYNCAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoQ0xLTVgyWDQpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4yNjc2NzE7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDc4NzczMjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA3ODU0OTY7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNzg3NzMyOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDMwMiwgMC4wMDAzMDksIDAuMDAwMzExLCAwLjAwMDMxMiwgMC4wMDAzMTMsIDAuMDAwMzE0LCAwLjAwMDMxNCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDMzNCwgMC4wMDAzMjgsIDAuMDAwMzI4LCAwLjAwMDMyOCwgMC4wMDAzMjgsIDAuMDAwMzI4LCAwLjAwMDMyOCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNzk5ODg3OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDc5NzUwNTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA3OTk4ODc7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzEzLCAwLjAwMDMxNywgMC4wMDAzMTgsIDAuMDAwMzE5LCAwLjAwMDMxOSwgMC4wMDAzMTksIDAuMDAwMzIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAzMzUsIDAuMDAwMzI4LCAwLjAwMDMyOCwgMC4wMDAzMjgsIDAuMDAwMzI3LCAwLjAwMDMyOCwgMC4wMDAzMjgiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFMwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE1MDk4NTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE1MDk1ODsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE1MDk4NTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxOTgsIDAuMDAwMTY4LCAwLjAwMDE3MiwgMC4wMDAxOTEsIDAuMDAwMTksIDAuMDAwMjE4LCAwLjAwMDI0NSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjE1MywgMC4wMDIxMzIsIDAuMDAyMTM2LCAwLjAwMjEzOCwgMC4wMDIxNDgsIDAuMDAyMTc0LCAwLjAwMjE5NiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAxLjA0MjE7Ci0gICAgZnVuY3Rpb24gOiAiKChTMCBCKSArICghUzAgQSkpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODIwOTcsIDAuMTM5NjM1LCAwLjE4MDc4MSwgMC4yMzE4MTEsIDAuMjgyNzg5LCAwLjMzMzcyLCAwLjM4NDY2IiwgXAotICAgICAgICAgICIwLjA5MDg1LCAwLjE0ODM5LCAwLjE4OTU1NywgMC4yNDA1ODUsIDAuMjkxNTY0LCAwLjM0MjQ5NSwgMC4zOTM0MjciLCBcCi0gICAgICAgICAgIjAuMTAxNzEzLCAwLjE1OTE4OCwgMC4yMDAzOTYsIDAuMjUxMzg5LCAwLjMwMjM0OSwgMC4zNTMzNTMsIDAuNDA0MjMzIiwgXAotICAgICAgICAgICIwLjExMjQ0NCwgMC4xNjk4ODYsIDAuMjExMDcxLCAwLjI2MjExMywgMC4zMTMwNzYsIDAuMzY0MDMxLCAwLjQxNDk2MSIsIFwKLSAgICAgICAgICAiMC4xMjI3NzcsIDAuMTgwMjM4LCAwLjIyMTQxNiwgMC4yNzI0NTEsIDAuMzIzNDM0LCAwLjM3NDM2NywgMC40MjUzMDQiLCBcCi0gICAgICAgICAgIjAuMTM4NDM2LCAwLjE5NjA4OCwgMC4yMzcyNjIsIDAuMjg4MzAyLCAwLjMzOTI2NywgMC4zOTAyMTMsIDAuNDQxMTQzIiwgXAotICAgICAgICAgICIwLjE1MTAwNSwgMC4yMDkwMTksIDAuMjUwMjI1LCAwLjMwMTI2MSwgMC4zNTIyMjcsIDAuNDAzMTU3LCAwLjQ1NDA3OSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDI2NiwgMC4xNDEzMzMsIDAuMjIyNzI0LCAwLjMyNjI3NiwgMC40MzA0ODMsIDAuNTM1MDg0LCAwLjYzOTI2IiwgXAotICAgICAgICAgICIwLjA0MjY1OCwgMC4xNDEzNTEsIDAuMjIyNzI0LCAwLjMyNjI0OSwgMC40MzA0NTcsIDAuNTM1MDU5LCAwLjYzOTk1MyIsIFwKLSAgICAgICAgICAiMC4wNDI0NDMsIDAuMTQxMzI3LCAwLjIyMjcwOSwgMC4zMjYwMDMsIDAuNDMwNDQ5LCAwLjUzNDE0MywgMC42MzkyNCIsIFwKLSAgICAgICAgICAiMC4wNDI1MDYsIDAuMTQxMzAyLCAwLjIyMjY3MSwgMC4zMjYwMiwgMC40MzA0NiwgMC41MzUxNTgsIDAuNjM5MjE3IiwgXAotICAgICAgICAgICIwLjA0MzEyOSwgMC4xNDE1MjgsIDAuMjIyNzg0LCAwLjMyNjA0MiwgMC40MzA1NTgsIDAuNTM1MDMzLCAwLjYzOTIxIiwgXAotICAgICAgICAgICIwLjA0NDA2OSwgMC4xNDE4MDgsIDAuMjIzLCAwLjMyNjQzMSwgMC40MzAxOSwgMC41MzUwOSwgMC42MzkxNTYiLCBcCi0gICAgICAgICAgIjAuMDQ1MTM3LCAwLjE0MjU3NSwgMC4yMjM1MDksIDAuMzI2MjcxLCAwLjQzMDgzNCwgMC41MzUyNDgsIDAuNjM5MTk5Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4NTc1NywgMC4xNDU0ODYsIDAuMTg4MDI4LCAwLjI0MDY3MiwgMC4yOTMxNzEsIDAuMzQ1NjM5LCAwLjM5ODEwMSIsIFwKLSAgICAgICAgICAiMC4wOTQzNiwgMC4xNTQwODYsIDAuMTk2NjMsIDAuMjQ5MjU2LCAwLjMwMTc1NSwgMC4zNTQyNzksIDAuNDA2NzAzIiwgXAotICAgICAgICAgICIwLjEwNDM2NywgMC4xNjQwMzIsIDAuMjA2NjEyLCAwLjI1OTI0MywgMC4zMTE3NTEsIDAuMzY0MjI2LCAwLjQxNjc1OCIsIFwKLSAgICAgICAgICAiMC4xMTQxMzMsIDAuMTczOCwgMC4yMTYzODIsIDAuMjY5MDE2LCAwLjMyMTUzMywgMC4zNzQwMDUsIDAuNDI2NDc1IiwgXAotICAgICAgICAgICIwLjEyMzQ0OSwgMC4xODMxOTksIDAuMjI1ODE0LCAwLjI3ODQ2LCAwLjMzMDk2NSwgMC4zODM0MzgsIDAuNDM1OTIiLCBcCi0gICAgICAgICAgIjAuMTM3NzY1LCAwLjE5NzY5NywgMC4yNDAyOTYsIDAuMjkyOTMsIDAuMzQ1NDM5LCAwLjM5NzkxNCwgMC40NTAzOTMiLCBcCi0gICAgICAgICAgIjAuMTQ4ODM2LCAwLjIwOTI3MiwgMC4yNTE5MjgsIDAuMzA0NTM2LCAwLjM1NzA1MSwgMC40MDk1MzgsIDAuNDYxOTk1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0MzcxMSwgMC4xNDQwMzEsIDAuMjI2MzAxLCAwLjMzMTA4OSwgMC40MzY1NjYsIDAuNTQyMzM3LCAwLjY0ODI3MyIsIFwKLSAgICAgICAgICAiMC4wNDM2MTksIDAuMTQ0LCAwLjIyNjI3MiwgMC4zMzA4ODIsIDAuNDM2NTM5LCAwLjU0MjU4MSwgMC42NDczMjkiLCBcCi0gICAgICAgICAgIjAuMDQzNDgyLCAwLjE0Mzk5NywgMC4yMjYyNzUsIDAuMzMxMTQxLCAwLjQzNjU1LCAwLjU0MjMyNiwgMC42NDczMDEiLCBcCi0gICAgICAgICAgIjAuMDQzNTE0LCAwLjE0Mzk5NCwgMC4yMjYyNjUsIDAuMzMwOTI5LCAwLjQzNjA5MiwgMC41NDIzNTYsIDAuNjQ3NDE2IiwgXAotICAgICAgICAgICIwLjA0Mzk3NSwgMC4xNDQxNjUsIDAuMjI2MzA5LCAwLjMzMDkwMywgMC40MzY1NiwgMC41NDIzNCwgMC42NDc1NDQiLCBcCi0gICAgICAgICAgIjAuMDQ0ODM2LCAwLjE0NDQ3MywgMC4yMjY1OTIsIDAuMzMwOTUxLCAwLjQzNjY1MSwgMC41NDI0MiwgMC42NDg1MTMiLCBcCi0gICAgICAgICAgIjAuMDQ2MjMxLCAwLjE0NTIxOCwgMC4yMjcwNTUsIDAuMzMxNTY4LCAwLjQzNjkzNCwgMC41NDI1NTIsIDAuNjQ4Mjg4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4MTQ3NCwgMC4xMzg5MTMsIDAuMTc5OTkzLCAwLjIzMTAyMSwgMC4yODE5OTEsIDAuMzMyOTIyLCAwLjM4Mzg2MSIsIFwKLSAgICAgICAgICAiMC4wOTAzMjksIDAuMTQ3Nzg5LCAwLjE4ODk3MSwgMC4yNDAwMDMsIDAuMjkwOTgyLCAwLjM0MTkwNSwgMC4zOTI4MzciLCBcCi0gICAgICAgICAgIjAuMTAxMjg4LCAwLjE1ODY5LCAwLjE5OTg3OCwgMC4yNTA4NjIsIDAuMzAxODIsIDAuMzUyNzc5LCAwLjQwMzciLCBcCi0gICAgICAgICAgIjAuMTEyMDQ4LCAwLjE2OTQwOCwgMC4yMTA1ODIsIDAuMjYxNjE2LCAwLjMxMjU3NSwgMC4zNjM1NzgsIDAuNDE0NDU5IiwgXAotICAgICAgICAgICIwLjEyMjU4MywgMC4xNzk5NjUsIDAuMjIxMTM2LCAwLjI3MjE5LCAwLjMyMzE0OSwgMC4zNzQwODMsIDAuNDI1MTE3IiwgXAotICAgICAgICAgICIwLjEzODIzOCwgMC4xOTU5MTksIDAuMjM3MTc1LCAwLjI4ODIyNywgMC4zMzkxODksIDAuMzkwMTU2LCAwLjQ0MTA2MiIsIFwKLSAgICAgICAgICAiMC4xNTA4MDEsIDAuMjA4ODg3LCAwLjI1MDEzMywgMC4zMDEyNTcsIDAuMzUyMjExLCAwLjQwMzE4MiwgMC40NTQwODIiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQyNzQ3LCAwLjE0MTM0OSwgMC4yMjI3MjksIDAuMzI2MjY3LCAwLjQzMDQ5OSwgMC41MzUwOTksIDAuNjQwMDcyIiwgXAotICAgICAgICAgICIwLjA0MjU0OCwgMC4xNDEzMjQsIDAuMjIyNjk1LCAwLjMyNjAzOSwgMC40Mjk2NywgMC41MzUwODcsIDAuNjM5MjM0IiwgXAotICAgICAgICAgICIwLjA0MjM3OSwgMC4xNDEzMDgsIDAuMjIyNjk2LCAwLjMyNjAxNywgMC40MzA0NTMsIDAuNTM0NDY4LCAwLjYzOTE4MiIsIFwKLSAgICAgICAgICAiMC4wNDI0ODMsIDAuMTQxMjg1LCAwLjIyMjY2MSwgMC4zMjYwMTcsIDAuNDMwNDY0LCAwLjUzNTI4NCwgMC42MzkyMzciLCBcCi0gICAgICAgICAgIjAuMDQyNzM1LCAwLjE0MTM4MywgMC4yMjI1OTQsIDAuMzI2MDM0LCAwLjQzMDQzLCAwLjUzNTA2OSwgMC42Mzg4MTciLCBcCi0gICAgICAgICAgIjAuMDQzODMsIDAuMTQxNzY2LCAwLjIyMjk3MiwgMC4zMjYxNjUsIDAuNDMwNTIzLCAwLjUzNTIxMywgMC42Mzk2NjMiLCBcCi0gICAgICAgICAgIjAuMDQ1MTgzLCAwLjE0MjQ2NSwgMC4yMjMzODYsIDAuMzI2NjE4LCAwLjQzMDY4NSwgMC41MzUyOTYsIDAuNjM5MTYyIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4NjIwNywgMC4xNDU5MSwgMC4xODg1MDUsIDAuMjQxMTI2LCAwLjI5MzYyMSwgMC4zNDYwOSwgMC4zOTg1NzYiLCBcCi0gICAgICAgICAgIjAuMDk0NTc5LCAwLjE1NDMzMiwgMC4xOTY4OTYsIDAuMjQ5NTE2LCAwLjMwMjAyNiwgMC4zNTQ0OTksIDAuNDA2OTUiLCBcCi0gICAgICAgICAgIjAuMTA0NTQyLCAwLjE2NDE3LCAwLjIwNjcyNywgMC4yNTkzNjYsIDAuMzExODY0LCAwLjM2NDMzNSwgMC40MTY4MTEiLCBcCi0gICAgICAgICAgIjAuMTE0MjU4LCAwLjE3Mzg5MiwgMC4yMTY0NjMsIDAuMjY5MDg3LCAwLjMyMTYsIDAuMzc0MDY4LCAwLjQyNjUzNSIsIFwKLSAgICAgICAgICAiMC4xMjM2NDgsIDAuMTgzMzE1LCAwLjIyNTkwNiwgMC4yNzg1MzMsIDAuMzMxMDM1LCAwLjM4MzU0NywgMC40MzU5NzkiLCBcCi0gICAgICAgICAgIjAuMTM3NTY3LCAwLjE5NzUyMSwgMC4yNDAxMTIsIDAuMjkyNzMzLCAwLjM0NTIzNywgMC4zOTc3MjMsIDAuNDUwMTc2IiwgXAotICAgICAgICAgICIwLjE0ODY1OCwgMC4yMDkxNjUsIDAuMjUxODI2LCAwLjMwNDQyOCwgMC4zNTY5NDMsIDAuNDA5NDE2LCAwLjQ2MTg2NCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDM2NDUsIDAuMTQzOTg1LCAwLjIyNjI0NSwgMC4zMzA4NDEsIDAuNDM2NDg2LCAwLjU0MjMwNCwgMC42NDg1MjYiLCBcCi0gICAgICAgICAgIjAuMDQzNTMxLCAwLjE0Mzk4OCwgMC4yMjYyNDYsIDAuMzMwODQ4LCAwLjQzNjU2NywgMC41NDIzNjQsIDAuNjQ3MzAyIiwgXAotICAgICAgICAgICIwLjA0MzUwMywgMC4xNDM5NzQsIDAuMjI2MjYzLCAwLjMzMTEwOCwgMC40MzY1MDcsIDAuNTQyMjgyLCAwLjY0ODQ0NSIsIFwKLSAgICAgICAgICAiMC4wNDM1MTMsIDAuMTQzOTY4LCAwLjIyNjIzMiwgMC4zMzA4NjcsIDAuNDM2MDU5LCAwLjU0MjMxLCAwLjY0NzM1NCIsIFwKLSAgICAgICAgICAiMC4wNDM2MjYsIDAuMTQ0MDY1LCAwLjIyNjI3NywgMC4zMzA4NDUsIDAuNDM2NDk5LCAwLjU0MjUwOSwgMC42NDc4NjYiLCBcCi0gICAgICAgICAgIjAuMDQ1MjYsIDAuMTQ0NTY2LCAwLjIyNjYwNywgMC4zMzEzMTIsIDAuNDM2NjM4LCAwLjU0MTg0LCAwLjY0ODIyIiwgXAotICAgICAgICAgICIwLjA0NjMwOCwgMC4xNDUxOTMsIDAuMjI3MTAzLCAwLjMzMTUyOSwgMC40MzY5MTMsIDAuNTQyNTE3LCAwLjY0ODQ1NyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc1MzA2LCAwLjEzMjcxMiwgMC4xNzM4NzEsIDAuMjI0OTAxLCAwLjI3NTg3NiwgMC4zMjY4MDUsIDAuMzc3NzYiLCBcCi0gICAgICAgICAgIjAuMDg0NDczLCAwLjE0MTgyNCwgMC4xODI5OSwgMC4yMzQwMjIsIDAuMjg1MDA3LCAwLjMzNTkyOSwgMC4zODY4ODEiLCBcCi0gICAgICAgICAgIjAuMDk2MDg4LCAwLjE1MzQ3OSwgMC4xOTQ2NTEsIDAuMjQ1Njg2LCAwLjI5NjY0NiwgMC4zNDc2MjcsIDAuMzk4NTM0IiwgXAotICAgICAgICAgICIwLjEwNzgzNywgMC4xNjUyMjksIDAuMjA2NDAzLCAwLjI1NzQzOSwgMC4zMDg0MTQsIDAuMzU5MzU2LCAwLjQxMDMwMyIsIFwKLSAgICAgICAgICAiMC4xMTk2MDcsIDAuMTc3MDI1LCAwLjIxODIwMiwgMC4yNjkyNjQsIDAuMzIwMjI3LCAwLjM3MTE2NCwgMC40MjIxMjYiLCBcCi0gICAgICAgICAgIjAuMTM2OTYsIDAuMTk0NjcxLCAwLjIzNTg5MiwgMC4yODY5MTksIDAuMzM3ODgyLCAwLjM4ODgxNywgMC40Mzk4MSIsIFwKLSAgICAgICAgICAiMC4xNTAzNDMsIDAuMjA4Njg1LCAwLjI0OTkwMiwgMC4zMDA5MTgsIDAuMzUxODczLCAwLjQwMjg1MiwgMC40NTM3OTkiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQyMzIyLCAwLjE0MTI3NywgMC4yMjI2NjMsIDAuMzI2MDMxLCAwLjQzMDQ5LCAwLjUzNTA1NCwgMC42MzkxNDQiLCBcCi0gICAgICAgICAgIjAuMDQyNDIzLCAwLjE0MTI1MywgMC4yMjI2NjUsIDAuMzI1OTk3LCAwLjQzMDUzMSwgMC41MzUwNSwgMC42MzkxNDkiLCBcCi0gICAgICAgICAgIjAuMDQyMzk5LCAwLjE0MTI1MSwgMC4yMjI2MzcsIDAuMzI1OTY4LCAwLjQzMDQwMiwgMC41MzUxNzYsIDAuNjM5MTkzIiwgXAotICAgICAgICAgICIwLjA0MjQ5NywgMC4xNDEyOTEsIDAuMjIyNjU1LCAwLjMyNTk5MiwgMC40MzAwMTIsIDAuNTM1MDUxLCAwLjYzOTIyMiIsIFwKLSAgICAgICAgICAiMC4wNDI5NDQsIDAuMTQxNDA2LCAwLjIyMjcyMiwgMC4zMjYwNDIsIDAuNDMwNDY3LCAwLjUzNTAxNSwgMC42MzkxNSIsIFwKLSAgICAgICAgICAiMC4wNDUwNTcsIDAuMTQyMDYyLCAwLjIyMzExNCwgMC4zMjY0NDIsIDAuNDMwNTY3LCAwLjUzNTEwNSwgMC42NDAxNDUiLCBcCi0gICAgICAgICAgIjAuMDQ3NDU5LCAwLjE0MzAxNSwgMC4yMjM3MTIsIDAuMzI2NzY0LCAwLjQzMDgwMywgMC41MzU0MDUsIDAuNjQwMjMiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc5Njg3LCAwLjEzOTQ2NCwgMC4xODIwMjYsIDAuMjM0NjUsIDAuMjg3MTQ5LCAwLjMzOTYzOSwgMC4zOTIwOTUiLCBcCi0gICAgICAgICAgIjAuMDg4NjM4LCAwLjE0ODMzNCwgMC4xOTA5LCAwLjI0MzUyNywgMC4yOTYwMjcsIDAuMzQ4NTMxLCAwLjQwMDk3NiIsIFwKLSAgICAgICAgICAiMC4wOTk5MTgsIDAuMTU5NTksIDAuMjAyMTY2LCAwLjI1NDgxMiwgMC4zMDczMiwgMC4zNTk3OTMsIDAuNDEyMjY1IiwgXAotICAgICAgICAgICIwLjExMTUyNywgMC4xNzEyNDQsIDAuMjEzODE1LCAwLjI2NjQ0OSwgMC4zMTg5NTcsIDAuMzcxNDU1LCAwLjQyMzkxMiIsIFwKLSAgICAgICAgICAiMC4xMjI4MDksIDAuMTgyNTYxLCAwLjIyNTEzNiwgMC4yNzc3NzcsIDAuMzMwMjg4LCAwLjM4Mjc2OCwgMC40MzUyNDciLCBcCi0gICAgICAgICAgIjAuMTM5NTE5LCAwLjE5OTUxOCwgMC4yNDIwNTYsIDAuMjk0Njk2LCAwLjM0NzIwMywgMC4zOTk3NjMsIDAuNDUyMjAyIiwgXAotICAgICAgICAgICIwLjE1MjMyMSwgMC4yMTI3NDQsIDAuMjU1MzU5LCAwLjMwNzkzNCwgMC4zNjA0MzcsIDAuNDEyOTcxLCAwLjQ2NTQxNSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDMzNzcsIDAuMTQzOTczLCAwLjIyNjIzNSwgMC4zMzA4NzksIDAuNDM2NTM2LCAwLjU0MjM5MiwgMC42NDc5MiIsIFwKLSAgICAgICAgICAiMC4wNDM0NjMsIDAuMTQzOTc4LCAwLjIyNjI0LCAwLjMzMDg5NywgMC40MzY1MzUsIDAuNTQyNDc1LCAwLjY0NzMyNSIsIFwKLSAgICAgICAgICAiMC4wNDM0ODQsIDAuMTQzOTczLCAwLjIyNjI3MSwgMC4zMzA1MTQsIDAuNDM2NTIxLCAwLjU0MjMzNCwgMC42NDg0MyIsIFwKLSAgICAgICAgICAiMC4wNDM0MywgMC4xNDM5OTgsIDAuMjI2MjQ0LCAwLjMzMDg0NiwgMC40MzY1MywgMC41NDI0MTEsIDAuNjQ3OTk3IiwgXAotICAgICAgICAgICIwLjA0Mzg0NywgMC4xNDQxMywgMC4yMjYzMjIsIDAuMzMwODczLCAwLjQzNjU0LCAwLjU0MjM0NCwgMC42NDgwNzUiLCBcCi0gICAgICAgICAgIjAuMDQ1NTk2LCAwLjE0NDY2NywgMC4yMjY2NDYsIDAuMzMwOTgxLCAwLjQzNjY1MywgMC41NDI1NTQsIDAuNjQ4NDI1IiwgXAotICAgICAgICAgICIwLjA0NzQ5NiwgMC4xNDU1NTMsIDAuMjI3MjMsIDAuMzMxNDUyLCAwLjQzNjI4OSwgMC41NDI2NzEsIDAuNjQ4NTMxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlMwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTQ2NjQsIDAuMTUyMTY4LCAwLjE5MzI5OSwgMC4yNDQzMzQsIDAuMjk1MzA1LCAwLjM0NjI0MiwgMC4zOTcxOCIsIFwKLSAgICAgICAgICAiMC4xMDQ0ODksIDAuMTYxOTgxLCAwLjIwMzE1MSwgMC4yNTQxOTMsIDAuMzA1MTUzLCAwLjM1NjA5MywgMC40MDcwMzMiLCBcCi0gICAgICAgICAgIjAuMTE1MjU1LCAwLjE3MjcxMywgMC4yMTM4NiwgMC4yNjQ4OTYsIDAuMzE1ODU1LCAwLjM2NjgyNCwgMC40MTc3NDEiLCBcCi0gICAgICAgICAgIjAuMTI0NDUyLCAwLjE4MTg5MSwgMC4yMjMwNjQsIDAuMjc0MTA3LCAwLjMyNTA2NywgMC4zNzYwMDUsIDAuNDI2OTQ2IiwgXAotICAgICAgICAgICIwLjEzMTcyNSwgMC4xODkwMzEsIDAuMjMwMjEyLCAwLjI4MTI1LCAwLjMzMjM3OSwgMC4zODMzOTYsIDAuNDM0MzMzIiwgXAotICAgICAgICAgICIwLjE0MTM4OSwgMC4xOTg4OTgsIDAuMjQwMTE1LCAwLjI5MTEzNywgMC4zNDIyNzMsIDAuMzkzMTc1LCAwLjQ0NDEwOSIsIFwKLSAgICAgICAgICAiMC4xNDg3NzEsIDAuMjA2MzU5LCAwLjI0NzYwMywgMC4yOTg2NDMsIDAuMzQ5NjQ4LCAwLjQwMDU2NiwgMC40NTE0NzUiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQyNTg0LCAwLjE0MTMyNywgMC4yMjI3MDIsIDAuMzI2MDQ2LCAwLjQyOTk5OSwgMC41MzUwNjksIDAuNjM5MjU2IiwgXAotICAgICAgICAgICIwLjA0MjQ5MSwgMC4xNDEzMzIsIDAuMjIyNjk4LCAwLjMyNjAxOCwgMC40MzA0NjQsIDAuNTM0NDI4LCAwLjYzOTIwMSIsIFwKLSAgICAgICAgICAiMC4wNDI1ODMsIDAuMTQxMzI5LCAwLjIyMjY5NiwgMC4zMjYwMTQsIDAuNDMwNDUsIDAuNTM1MjE3LCAwLjYzOTI1IiwgXAotICAgICAgICAgICIwLjA0MjUyNSwgMC4xNDEzMjIsIDAuMjIyNjkyLCAwLjMyNjAyMSwgMC40MzA0NTMsIDAuNTM1MDExLCAwLjYzOTE5MyIsIFwKLSAgICAgICAgICAiMC4wNDI1MTYsIDAuMTQxMzMsIDAuMjIyNzAyLCAwLjMyNjA0NiwgMC40MzA0MjMsIDAuNTM1MDE3LCAwLjYzOTIxNCIsIFwKLSAgICAgICAgICAiMC4wNDI1MTgsIDAuMTQxNTA4LCAwLjIyMjg3MSwgMC4zMjYzNDksIDAuNDI5OTM2LCAwLjUzNTA1MywgMC42MzkyNTEiLCBcCi0gICAgICAgICAgIjAuMDQyNDgsIDAuMTQxNTI4LCAwLjIyMjksIDAuMzI1OTczLCAwLjQzMDE4MywgMC41MzUxNTcsIDAuNjM5ODU4Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5NzE1MiwgMC4xNTY5MjYsIDAuMTk5NTI1LCAwLjI1MjA4OSwgMC4zMDQ2MTUsIDAuMzU3MDY1LCAwLjQwOTUzMiIsIFwKLSAgICAgICAgICAiMC4xMDczNTksIDAuMTY3MTExLCAwLjIwOTcxMywgMC4yNjIzMjksIDAuMzE0ODI4LCAwLjM2NzI5OCwgMC40MTk3NzciLCBcCi0gICAgICAgICAgIjAuMTE4OTc4LCAwLjE3ODcwOSwgMC4yMjEyOTcsIDAuMjczODc2LCAwLjMyNjM3MywgMC4zNzg4NjksIDAuNDMxMzIiLCBcCi0gICAgICAgICAgIjAuMTI4NzI5LCAwLjE4ODQwMiwgMC4yMzA5NzksIDAuMjgzNjAxLCAwLjMzNjEwNiwgMC4zODg1ODIsIDAuNDQxMDQiLCBcCi0gICAgICAgICAgIjAuMTM2NzgsIDAuMTk2NDgsIDAuMjM5MDM2LCAwLjI5MTY1NSwgMC4zNDQxNTIsIDAuMzk2NTgyLCAwLjQ0OTA5OSIsIFwKLSAgICAgICAgICAiMC4xNDc2NjcsIDAuMjA3NDQ4LCAwLjI0OTg0MywgMC4zMDI2NDIsIDAuMzU1MTM4LCAwLjQwNzYzLCAwLjQ2MDA4NSIsIFwKLSAgICAgICAgICAiMC4xNTYxMSwgMC4yMTU3OTcsIDAuMjU4NDAxLCAwLjMxMDk1LCAwLjM2MzQ4NSwgMC40MTYwNiwgMC40Njg0MTgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQzNTE2LCAwLjE0Mzk3NCwgMC4yMjYyMTMsIDAuMzMwODI0LCAwLjQzNjY4MywgMC41NDIzNDIsIDAuNjQ3MzY3IiwgXAotICAgICAgICAgICIwLjA0MzUxOSwgMC4xNDM5ODMsIDAuMjI2MjI1LCAwLjMzMDc4NiwgMC40MzY1MTgsIDAuNTQyMzA5LCAwLjY0ODQ2NyIsIFwKLSAgICAgICAgICAiMC4wNDM1MjYsIDAuMTQzOTczLCAwLjIyNjIzOSwgMC4zMzA4MzgsIDAuNDM2NTAyLCAwLjU0MjM4NywgMC42NDc4MyIsIFwKLSAgICAgICAgICAiMC4wNDM1MjMsIDAuMTQzOTU3LCAwLjIyNjIzLCAwLjMzMDg0MSwgMC40MzY0NzQsIDAuNTQyMzE1LCAwLjY0NzQiLCBcCi0gICAgICAgICAgIjAuMDQzNDY2LCAwLjE0MzkzMywgMC4yMjYyMDksIDAuMzMwODE1LCAwLjQzNjQ4OSwgMC41NDIyOCwgMC42NDc3NzciLCBcCi0gICAgICAgICAgIjAuMDQzNDg3LCAwLjE0NDEwOSwgMC4yMjYzNTIsIDAuMzMwNTA5LCAwLjQzNjU1OCwgMC41NDE3NjEsIDAuNjQ3ODIyIiwgXAotICAgICAgICAgICIwLjA0MzcxNCwgMC4xNDQwNjMsIDAuMjI2Mzc2LCAwLjMzMTAwOCwgMC40MzYzODIsIDAuNTQyMTAzLCAwLjY0ODE4NiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDc5OCwgMC4wMDQ5NTgsIDAuMDA0OTkzLCAwLjAwNTAxMywgMC4wMDUwMjQsIDAuMDA1MDMxLCAwLjAwNTAzNyIsIFwKLSAgICAgICAgICAiMC4wMDQ3NzgsIDAuMDA0OTM0LCAwLjAwNDk2OSwgMC4wMDQ5ODksIDAuMDA1LCAwLjAwNTAwNywgMC4wMDUwMTIiLCBcCi0gICAgICAgICAgIjAuMDA0NzQ2LCAwLjAwNDkwOCwgMC4wMDQ5NDcsIDAuMDA0OTY5LCAwLjAwNDk4MiwgMC4wMDQ5OSwgMC4wMDQ5OTUiLCBcCi0gICAgICAgICAgIjAuMDA0NzQyLCAwLjAwNDg5MiwgMC4wMDQ5MzIsIDAuMDA0OTU3LCAwLjAwNDk3LCAwLjAwNDk3OSwgMC4wMDQ5ODUiLCBcCi0gICAgICAgICAgIjAuMDA0NzUyLCAwLjAwNDg4MywgMC4wMDQ5MjQsIDAuMDA0OTUsIDAuMDA0OTY0LCAwLjAwNDk3MiwgMC4wMDQ5NzkiLCBcCi0gICAgICAgICAgIjAuMDA0NzQyLCAwLjAwNDg2NSwgMC4wMDQ5MTEsIDAuMDA0OTM4LCAwLjAwNDk1MywgMC4wMDQ5NjksIDAuMDA0OTc1IiwgXAotICAgICAgICAgICIwLjAwNDc0NCwgMC4wMDQ4OCwgMC4wMDQ5MTcsIDAuMDA0OTQ0LCAwLjAwNDk2LCAwLjAwNDk3MywgMC4wMDQ5NzgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDYxNDcsIDAuMDA2MzUzLCAwLjAwNjM5OSwgMC4wMDY0MjYsIDAuMDA2NDQxLCAwLjAwNjQ1LCAwLjAwNjQ1NyIsIFwKLSAgICAgICAgICAiMC4wMDYxMjYsIDAuMDA2MzM0LCAwLjAwNjM4MywgMC4wMDY0MTEsIDAuMDA2NDI2LCAwLjAwNjQzNiwgMC4wMDY0NDIiLCBcCi0gICAgICAgICAgIjAuMDA2MTA2LCAwLjAwNjMxNCwgMC4wMDYzNjUsIDAuMDA2Mzk2LCAwLjAwNjQxMywgMC4wMDY0MjQsIDAuMDA2NDMxIiwgXAotICAgICAgICAgICIwLjAwNjExNCwgMC4wMDYzMDUsIDAuMDA2MzU3LCAwLjAwNjM4OCwgMC4wMDY0MDYsIDAuMDA2NDE3LCAwLjAwNjQyNSIsIFwKLSAgICAgICAgICAiMC4wMDYxMTIsIDAuMDA2MjkzLCAwLjAwNjM0NiwgMC4wMDYzOCwgMC4wMDYzOTksIDAuMDA2NDExLCAwLjAwNjQyIiwgXAotICAgICAgICAgICIwLjAwNjExMiwgMC4wMDYyNzksIDAuMDA2MzM2LCAwLjAwNjM3MiwgMC4wMDYzOTMsIDAuMDA2NDA3LCAwLjAwNjQxNiIsIFwKLSAgICAgICAgICAiMC4wMDYxMzEsIDAuMDA2Mjc5LCAwLjAwNjMzMywgMC4wMDYzNywgMC4wMDYzOTEsIDAuMDA2NDA1LCAwLjAwNjQxNSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDU1NywgMC4wMDQ2NzcsIDAuMDA0NzAzLCAwLjAwNDcxNSwgMC4wMDQ3MjIsIDAuMDA0NzI3LCAwLjAwNDczMSIsIFwKLSAgICAgICAgICAiMC4wMDQ1MzEsIDAuMDA0NjUyLCAwLjAwNDY3NywgMC4wMDQ2OTIsIDAuMDA0NywgMC4wMDQ3MDQsIDAuMDA0NzA3IiwgXAotICAgICAgICAgICIwLjAwNDUwNCwgMC4wMDQ2MzEsIDAuMDA0NjYsIDAuMDA0Njc2LCAwLjAwNDY4NCwgMC4wMDQ2ODksIDAuMDA0Njk0IiwgXAotICAgICAgICAgICIwLjAwNDUsIDAuMDA0NjE4LCAwLjAwNDY0OCwgMC4wMDQ2NjgsIDAuMDA0Njc2LCAwLjAwNDY4MiwgMC4wMDQ2ODYiLCBcCi0gICAgICAgICAgIjAuMDA0NTAyLCAwLjAwNDYxMiwgMC4wMDQ2NDMsIDAuMDA0NjY0LCAwLjAwNDY3NCwgMC4wMDQ2OCwgMC4wMDQ2ODYiLCBcCi0gICAgICAgICAgIjAuMDA0NTEzLCAwLjAwNDYwNywgMC4wMDQ2MzgsIDAuMDA0NjYxLCAwLjAwNDY3LCAwLjAwNDY4MSwgMC4wMDQ2ODQiLCBcCi0gICAgICAgICAgIjAuMDA0NTExLCAwLjAwNDU5NiwgMC4wMDQ2MzEsIDAuMDA0NjUzLCAwLjAwNDY2OSwgMC4wMDQ2NzYsIDAuMDA0Njg0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2MzYyLCAwLjAwNjU1MiwgMC4wMDY1OTQsIDAuMDA2NjE5LCAwLjAwNjYzMiwgMC4wMDY2NCwgMC4wMDY2NDYiLCBcCi0gICAgICAgICAgIjAuMDA2MzQ3LCAwLjAwNjUzNywgMC4wMDY1ODEsIDAuMDA2NjA2LCAwLjAwNjYxOSwgMC4wMDY2MjgsIDAuMDA2NjM0IiwgXAotICAgICAgICAgICIwLjAwNjMyNiwgMC4wMDY1MTgsIDAuMDA2NTY0LCAwLjAwNjU5MiwgMC4wMDY2MDcsIDAuMDA2NjE3LCAwLjAwNjYyMyIsIFwKLSAgICAgICAgICAiMC4wMDYzMzMsIDAuMDA2NTEsIDAuMDA2NTU3LCAwLjAwNjU4NiwgMC4wMDY2MDIsIDAuMDA2NjExLCAwLjAwNjYxOCIsIFwKLSAgICAgICAgICAiMC4wMDYzMywgMC4wMDY1LCAwLjAwNjU0OSwgMC4wMDY1NzksIDAuMDA2NTk2LCAwLjAwNjYwNywgMC4wMDY2MTQiLCBcCi0gICAgICAgICAgIjAuMDA2MzM4LCAwLjAwNjQ4OSwgMC4wMDY1NCwgMC4wMDY1NzIsIDAuMDA2NTkxLCAwLjAwNjYwMywgMC4wMDY2MTIiLCBcCi0gICAgICAgICAgIjAuMDA2MzM0LCAwLjAwNjQ4NSwgMC4wMDY1MzcsIDAuMDA2NTcsIDAuMDA2NTg5LCAwLjAwNjYwMiwgMC4wMDY2MTEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTMCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2OSwgMC4wMDcwNTcsIDAuMDA3MDk2LCAwLjAwNzExNywgMC4wMDcxMjcsIDAuMDA3MTQsIDAuMDA3MTQ0IiwgXAotICAgICAgICAgICIwLjAwNjg4OSwgMC4wMDcwNDYsIDAuMDA3MDgzLCAwLjAwNzEwNywgMC4wMDcxMTksIDAuMDA3MTI2LCAwLjAwNzEzMiIsIFwKLSAgICAgICAgICAiMC4wMDY4OTMsIDAuMDA3MDUyLCAwLjAwNzA4OSwgMC4wMDcxMTEsIDAuMDA3MTIyLCAwLjAwNzEzMSwgMC4wMDcxMzYiLCBcCi0gICAgICAgICAgIjAuMDA2ODk0LCAwLjAwNzA1NCwgMC4wMDcwOTEsIDAuMDA3MTE1LCAwLjAwNzEyNSwgMC4wMDcxMzMsIDAuMDA3MTQiLCBcCi0gICAgICAgICAgIjAuMDA2OTAxLCAwLjAwNzA2NCwgMC4wMDcxLCAwLjAwNzEyMiwgMC4wMDcxMzEsIDAuMDA3MTQyLCAwLjAwNzE0OSIsIFwKLSAgICAgICAgICAiMC4wMDY5MjYsIDAuMDA3MDg0LCAwLjAwNzEyLCAwLjAwNzE0MiwgMC4wMDcxNSwgMC4wMDcxNTcsIDAuMDA3MTY0IiwgXAotICAgICAgICAgICIwLjAwNjk0NSwgMC4wMDcwOTksIDAuMDA3MTM4LCAwLjAwNzE1NSwgMC4wMDcxNywgMC4wMDcxNzUsIDAuMDA3MTc3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1ODQ0LCAwLjAwNjAzNiwgMC4wMDYwODMsIDAuMDA2MTExLCAwLjAwNjEyNiwgMC4wMDYxMzYsIDAuMDA2MTQzIiwgXAotICAgICAgICAgICIwLjAwNTgyNywgMC4wMDYwMjEsIDAuMDA2MDY3LCAwLjAwNjA5NSwgMC4wMDYxMSwgMC4wMDYxMiwgMC4wMDYxMjciLCBcCi0gICAgICAgICAgIjAuMDA1ODMzLCAwLjAwNjAyNywgMC4wMDYwNzMsIDAuMDA2MTAxLCAwLjAwNjExNiwgMC4wMDYxMjYsIDAuMDA2MTMyIiwgXAotICAgICAgICAgICIwLjAwNTgyOCwgMC4wMDYwMjYsIDAuMDA2MDcyLCAwLjAwNjEsIDAuMDA2MTE1LCAwLjAwNjEyNSwgMC4wMDYxMzEiLCBcCi0gICAgICAgICAgIjAuMDA1ODQyLCAwLjAwNjAzNywgMC4wMDYwODMsIDAuMDA2MTEsIDAuMDA2MTI2LCAwLjAwNjEzNCwgMC4wMDYxNDIiLCBcCi0gICAgICAgICAgIjAuMDA1ODY0LCAwLjAwNjA1OSwgMC4wMDYxMDMsIDAuMDA2MTMzLCAwLjAwNjE0OSwgMC4wMDYxNTksIDAuMDA2MTY1IiwgXAotICAgICAgICAgICIwLjAwNTg5MywgMC4wMDYwNzgsIDAuMDA2MTI1LCAwLjAwNjE0NywgMC4wMDYxNjMsIDAuMDA2MTc5LCAwLjAwNjE4Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBERkZRWEwgKgotICogLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChERkZRWEwpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4yNDUzNTE7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgZmYgKE4zMCxRQklOVCkgewotICAgIG5leHRfc3RhdGUgOiAiRCI7Ci0gICAgY2xvY2tlZF9vbiA6ICJDSyI7Ci0gIH0KLSAgcGluKENLKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2MjAyOTM7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjIwMDQ3OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDYyMDI5MzsKLSAgICBjbG9jayA6IHRydWU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzMDQzLCAwLjAwMzAxOSwgMC4wMDMwMDQsIDAuMDAzMDA1LCAwLjAwMzAxNCwgMC4wMDMwMzUsIDAuMDAzMDU5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA2NjQ0LCAwLjAwNjYyMiwgMC4wMDY2MTIsIDAuMDA2NjE0LCAwLjAwNjYxOCwgMC4wMDY2NDEsIDAuMDA2NjU2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRCI7Ci0gICAgICBzZGZfY29uZCA6ICJEID09IDEnYjAiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMTc5MjMxLCAwLjE4OTQ3MiwgMC4yMDIxNTIsIDAuMjE0NDg4LCAwLjIyNTY3MiwgMC4yNDEwNTksIDAuMjUzMDEzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4xMDcyMSwgMC4xMTcwNjUsIDAuMTI5NTEsIDAuMTQxMTY3LCAwLjE1MTM3MiwgMC4xNjU0NTksIDAuMTc2MTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihEKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2OTM3NDM7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjkyMTY0OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDY5Mzc0MzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDIyMTEsIDAuMDAyMTg5LCAwLjAwMjE3OSwgMC4wMDIxNzEsIDAuMDAyMTc2LCAwLjAwMjE3NiwgMC4wMDIxODUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDI4MiwgMC4wMDI4MDYsIDAuMDAyNzk5LCAwLjAwMjc5NiwgMC4wMDI3OTcsIDAuMDAyNzk4LCAwLjAwMjc5OSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAxODc1LCAtMC4wMDc1LCAtMC4wMDEyNSwgMC4wMDUsIDAuMDExMjUsIDAuMDIxMjUsIDAuMDIzNzUiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAsIDAsIDAuMDEsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMC4wMDM3NSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAxODc1LCAtMC4wMTg3NSwgLTAuMDA4NzUsIDAiLCBcCi0gICAgICAgICAgIi0wLjA1NSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAxNSwgLTAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDY1LCAtMC4wNTM3NSwgLTAuMDQ3NSwgLTAuMDQxMjUsIC0wLjAzNSwgLTAuMDI1LCAtMC4wMjI1IiwgXAotICAgICAgICAgICItMC4wNzM3NSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDMzNzUsIC0wLjAzMTI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjUsIDAuMDMsIDAuMDQyNSwgMC4wNTUsIDAuMDY3NSwgMC4wNzc1LCAwLjA5MjUiLCBcCi0gICAgICAgICAgIjAuMDEzNzUsIDAuMDI1LCAwLjAzNzUsIDAuMDUsIDAuMDU2MjUsIDAuMDcyNSwgMC4wODEyNSIsIFwKLSAgICAgICAgICAiMC4wMDc1LCAwLjAxMjUsIDAuMDI1LCAwLjAzNzUsIDAuMDUsIDAuMDY2MjUsIDAuMDc1IiwgXAotICAgICAgICAgICIwLjAwMTI1LCAwLjAwNjI1LCAwLjAxODc1LCAwLjAzMTI1LCAwLjA0Mzc1LCAwLjA1Mzc1LCAwLjA2ODc1IiwgXAotICAgICAgICAgICItMC4wMDUsIDAsIDAuMDEyNSwgMC4wMjUsIDAuMDM3NSwgMC4wNDc1LCAwLjA2MjUiLCBcCi0gICAgICAgICAgIi0wLjAxNSwgLTAuMDAzNzUsIDAuMDA4NzUsIDAuMDIxMjUsIDAuMDI3NSwgMC4wNDM3NSwgMC4wNTI1IiwgXAotICAgICAgICAgICItMC4wMTc1LCAtMC4wMTI1LCAwLCAwLjAxMjUsIDAuMDI1LCAwLjAzNSwgMC4wNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzc1LCAwLjAzMjUsIDAuMDIsIDAuMDEzNzUsIDAuMDA3NSwgLTAuMDAyNSwgLTAuMDA1IiwgXAotICAgICAgICAgICIwLjA0ODc1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDE4NzUsIDAuMDEyNSwgMC4wMDg3NSwgMCIsIFwKLSAgICAgICAgICAiMC4wNjEyNSwgMC4wNSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMTUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4wNjc1LCAwLjA1NjI1LCAwLjA1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDI3NSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4wOCwgMC4wNjg3NSwgMC4wNTYyNSwgMC4wNSwgMC4wNDM3NSwgMC4wMzM3NSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4wOSwgMC4wNzg3NSwgMC4wNzI1LCAwLjA2NjI1LCAwLjA1Mzc1LCAwLjA1LCAwLjA0MTI1IiwgXAotICAgICAgICAgICIwLjEwNSwgMC4wOTM3NSwgMC4wODEyNSwgMC4wNzUsIDAuMDY4NzUsIDAuMDU4NzUsIDAuMDUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTI1LCAwLjAwNzUsIC0wLjAxMTI1LCAtMC4wMjM3NSwgLTAuMDM2MjUsIC0wLjA0NjI1LCAtMC4wNjEyNSIsIFwKLSAgICAgICAgICAiMC4wMjM3NSwgMC4wMTI1LCAwLCAtMC4wMTI1LCAtMC4wMjUsIC0wLjA0MTI1LCAtMC4wNSIsIFwKLSAgICAgICAgICAiMC4wMzYyNSwgMC4wMjUsIDAuMDA2MjUsIC0wLjAwNjI1LCAtMC4wMTI1LCAtMC4wMjg3NSwgLTAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMDQyNSwgMC4wMzEyNSwgMC4wMTg3NSwgMC4wMDYyNSwgLTAuMDA2MjUsIC0wLjAyMjUsIC0wLjAzMTI1IiwgXAotICAgICAgICAgICIwLjA0ODc1LCAwLjAzNzUsIDAuMDI1LCAwLjAxMjUsIDAsIC0wLjAxLCAtMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMDY1LCAwLjA1Mzc1LCAwLjA0MTI1LCAwLjAyMjUsIDAuMDE2MjUsIDAsIC0wLjAxNSIsIFwKLSAgICAgICAgICAiMC4wNzM3NSwgMC4wNjI1LCAwLjA1LCAwLjAzNzUsIDAuMDI1LCAwLjAwODc1LCAtMC4wMDYyNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjE0NzA1NDsKLSAgICBmdW5jdGlvbiA6ICJOMzAiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5vbl91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcmlzaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE2NDkwMywgMC4xNzg5ODEsIDAuMzA1ODI5LCAwLjUxNzUxOCwgMC43MjkyOTksIDEuMjIzMzUsIDEuNTA1NjUiLCBcCi0gICAgICAgICAgIjAuMTc1MTM0LCAwLjE4OTIxLCAwLjMxNjA4NiwgMC41Mjc3NDIsIDAuNzM5NDA3LCAxLjIzMzU1LCAxLjUxNTk1IiwgXAotICAgICAgICAgICIwLjE4NzcwNSwgMC4yMDE3ODMsIDAuMzI4NjcyLCAwLjU0MDMyMiwgMC43NTIwMDksIDEuMjQ2MTIsIDEuNTI4NTIiLCBcCi0gICAgICAgICAgIjAuMTk5OTU5LCAwLjIxNDA0NCwgMC4zNDA5MDEsIDAuNTUyNjE4LCAwLjc2NDMwMywgMS4yNTg0MiwgMS41NDA2MSIsIFwKLSAgICAgICAgICAiMC4yMTA5NCwgMC4yMjUwMjEsIDAuMzUxOTEsIDAuNTYzNTUxLCAwLjc3NTIyOSwgMS4yNjkzNCwgMS41NTE3MyIsIFwKLSAgICAgICAgICAiMC4yMjYzMzMsIDAuMjQwNDE3LCAwLjM2NzMzNSwgMC41Nzg5NTIsIDAuNzkwNjk4LCAxLjI4NDcyLCAxLjU2NzExIiwgXAotICAgICAgICAgICIwLjIzNzgxNiwgMC4yNTE5MTMsIDAuMzc4Nzg1LCAwLjU5MDQ0NSwgMC44MDIxMzQsIDEuMjk2MjEsIDEuNTc4NTgiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTUzMTQyLCAwLjE4MTk5MiwgMC40NDMwNTksIDAuODc3MDg2LCAxLjMxNDE3LCAyLjMyNjQ0LCAyLjkwNyIsIFwKLSAgICAgICAgICAiMC4xNTMxMzYsIDAuMTgxOTkzLCAwLjQ0MzA4MiwgMC44NzcxNTMsIDEuMzEzODgsIDIuMzI3MTQsIDIuOTA2MSIsIFwKLSAgICAgICAgICAiMC4xNTMxMzcsIDAuMTgxOTk5LCAwLjQ0MzA5NCwgMC44NzcwNjYsIDEuMzEzOTMsIDIuMzI3MjEsIDIuOTA2MjkiLCBcCi0gICAgICAgICAgIjAuMTUzMTM5LCAwLjE4MTc0MiwgMC40NDMwNTYsIDAuODc4NjI2LCAxLjMxMTg2LCAyLjMyNjM1LCAyLjkxMDMzIiwgXAotICAgICAgICAgICIwLjE1MzEzMSwgMC4xODE5ODgsIDAuNDQzMDc4LCAwLjg3NzEzNCwgMS4zMTM5LCAyLjMyNzAzLCAyLjkwNTY3IiwgXAotICAgICAgICAgICIwLjE1MzEzNywgMC4xODE5OTYsIDAuNDQyMTg2LCAwLjg3NzA5LCAxLjMxNDAzLCAyLjMyNzA2LCAyLjkwNTMiLCBcCi0gICAgICAgICAgIjAuMTUzMTA1LCAwLjE4MTk5MSwgMC40NDI5NTMsIDAuODc3MDI4LCAxLjMxMjE5LCAyLjMyNjkyLCAyLjkwNjkzIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE3OTIzMSwgMC4xOTMwNjIsIDAuMzE3NTYyLCAwLjUyNDk4NiwgMC43MzI0MDUsIDEuMjE2MywgMS40OTI4MSIsIFwKLSAgICAgICAgICAiMC4xODk0NzIsIDAuMjAzMzE3LCAwLjMyNzgxLCAwLjUzNTIxOSwgMC43NDI1ODEsIDEuMjI2NTEsIDEuNTAzMDYiLCBcCi0gICAgICAgICAgIjAuMjAyMTUyLCAwLjIxNTk5MywgMC4zNDA0OTEsIDAuNTQ3OTIxLCAwLjc1NTMwMSwgMS4yMzkyMSwgMS41MTU3NSIsIFwKLSAgICAgICAgICAiMC4yMTQ0ODgsIDAuMjI4MzI1LCAwLjM1MjgxOSwgMC41NjAyNTEsIDAuNzY3NjU4LCAxLjI1MTQ4LCAxLjUyODExIiwgXAotICAgICAgICAgICIwLjIyNTY3MiwgMC4yMzk1MDksIDAuMzY0MDAxLCAwLjU3MTQzMSwgMC43Nzg4NDQsIDEuMjYyNzUsIDEuNTM5MTciLCBcCi0gICAgICAgICAgIjAuMjQxMDU5LCAwLjI1NDg5MywgMC4zNzkzOTksIDAuNTg2ODA2LCAwLjc5NDI0MywgMS4yNzgxMywgMS41NTQ1OSIsIFwKLSAgICAgICAgICAiMC4yNTMwMTMsIDAuMjY2ODU0LCAwLjM5MTM0NSwgMC41OTg3NzcsIDAuODA2MTk5LCAxLjI5MDA5LCAxLjU2NjU3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE0NjI2NywgMC4xNzQwMTksIDAuNDIzMzQ1LCAwLjg0MTI2LCAxLjI1ODQxLCAyLjIyNzI3LCAyLjc4MDExIiwgXAotICAgICAgICAgICIwLjE0NjUzMiwgMC4xNzQzNjcsIDAuNDIzMzQ3LCAwLjg0MDEzNiwgMS4yNTU2OCwgMi4yMjg2NiwgMi43ODAyNyIsIFwKLSAgICAgICAgICAiMC4xNDY1MDcsIDAuMTc0MDA2LCAwLjQyMzM1NSwgMC44NDEyNjEsIDEuMjU4NCwgMi4yMjUxNywgMi43ODEwMiIsIFwKLSAgICAgICAgICAiMC4xNDY0ODMsIDAuMTc0MDM0LCAwLjQyNDAwOSwgMC44NDEyNTUsIDEuMjU4NDUsIDIuMjI2OTYsIDIuNzgyMTQiLCBcCi0gICAgICAgICAgIjAuMTQ2NDk0LCAwLjE3NDA0NiwgMC40MjQwMTQsIDAuODQxMjY1LCAxLjI1ODQyLCAyLjIyNzI3LCAyLjc4NjIxIiwgXAotICAgICAgICAgICIwLjE0Njc1NCwgMC4xNzQwMjYsIDAuNDIzNjI2LCAwLjg0MTIzNiwgMS4yNTgzNywgMi4yMjY2NSwgMi43ODc1NSIsIFwKLSAgICAgICAgICAiMC4xNDY1MTIsIDAuMTc0MzM4LCAwLjQyMzI2OSwgMC44NDEyMzcsIDEuMjU4MzYsIDIuMjI3MDgsIDIuNzgzNDMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1ODgzLCAwLjAwNTg3OSwgMC4wMDU4NTUsIDAuMDA1ODQxLCAwLjAwNTgzNSwgMC4wMDU4MywgMC4wMDU4MjgiLCBcCi0gICAgICAgICAgIjAuMDA1ODU0LCAwLjAwNTg0OSwgMC4wMDU4MjYsIDAuMDA1ODEyLCAwLjAwNTgwNiwgMC4wMDU4MDEsIDAuMDA1Nzk5IiwgXAotICAgICAgICAgICIwLjAwNTgzNywgMC4wMDU4MzMsIDAuMDA1ODEsIDAuMDA1Nzk2LCAwLjAwNTc5LCAwLjAwNTc4NCwgMC4wMDU3ODIiLCBcCi0gICAgICAgICAgIjAuMDA1ODM2LCAwLjAwNTgzMiwgMC4wMDU4MDksIDAuMDA1Nzk0LCAwLjAwNTc4OCwgMC4wMDU3ODIsIDAuMDA1NzgxIiwgXAotICAgICAgICAgICIwLjAwNTg1NSwgMC4wMDU4NTIsIDAuMDA1ODI5LCAwLjAwNTgxNCwgMC4wMDU4MDgsIDAuMDA1ODAyLCAwLjAwNTgiLCBcCi0gICAgICAgICAgIjAuMDA1ODczLCAwLjAwNTg3LCAwLjAwNTg0OCwgMC4wMDU4MzMsIDAuMDA1ODI2LCAwLjAwNTgyLCAwLjAwNTgxOCIsIFwKLSAgICAgICAgICAiMC4wMDU4OTksIDAuMDA1ODk2LCAwLjAwNTg3NSwgMC4wMDU4NiwgMC4wMDU4NTMsIDAuMDA1ODQ2LCAwLjAwNTg0NCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjMzOCwgMC4wMDYzNCwgMC4wMDYzNDUsIDAuMDA2MzQ4LCAwLjAwNjM0OCwgMC4wMDYzNDksIDAuMDA2MzQ5IiwgXAotICAgICAgICAgICIwLjAwNjMxMSwgMC4wMDYzMTMsIDAuMDA2MzE4LCAwLjAwNjMyMSwgMC4wMDYzMjEsIDAuMDA2MzIyLCAwLjAwNjMyMiIsIFwKLSAgICAgICAgICAiMC4wMDYzMDcsIDAuMDA2MzA4LCAwLjAwNjMxNCwgMC4wMDYzMTYsIDAuMDA2MzE3LCAwLjAwNjMxOCwgMC4wMDYzMTgiLCBcCi0gICAgICAgICAgIjAuMDA2MzIsIDAuMDA2MzIyLCAwLjAwNjMyNywgMC4wMDYzMywgMC4wMDYzMzEsIDAuMDA2MzMxLCAwLjAwNjMzMiIsIFwKLSAgICAgICAgICAiMC4wMDYzNDUsIDAuMDA2MzQ2LCAwLjAwNjM1MiwgMC4wMDYzNTQsIDAuMDA2MzU1LCAwLjAwNjM1NiwgMC4wMDYzNTYiLCBcCi0gICAgICAgICAgIjAuMDA2MzcxLCAwLjAwNjM3MiwgMC4wMDYzNzgsIDAuMDA2MzgsIDAuMDA2MzgxLCAwLjAwNjM4MiwgMC4wMDYzODIiLCBcCi0gICAgICAgICAgIjAuMDA2NDIzLCAwLjAwNjQyNSwgMC4wMDY0MywgMC4wMDY0MzIsIDAuMDA2NDMzLCAwLjAwNjQzNCwgMC4wMDY0MzQiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogREZGUkhRWDggKgotICogLS0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKERGRlJIUVg4KSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuODM0NTY7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgZmYgKE4zMCxRQklOVCkgewotICAgIG5leHRfc3RhdGUgOiAiRCI7Ci0gICAgY2xvY2tlZF9vbiA6ICJDSyI7Ci0gICAgY2xlYXIgOiAiKCFSTikiOwotICB9Ci0gIHBpbihDSykgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjI2ODUzOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYyNjU4NzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2MjY4NTM7Ci0gICAgY2xvY2sgOiB0cnVlOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzgzLCAwLjAwMzgwNCwgMC4wMDM3OTQsIDAuMDAzNzksIDAuMDAzNzk2LCAwLjAwMzgyMiwgMC4wMDM4NCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwODE1NCwgMC4wMDgxMzQsIDAuMDA4MTI1LCAwLjAwODEyNCwgMC4wMDgxMzEsIDAuMDA4MTQyLCAwLjAwODE2NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQmUk4iOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1JOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4xMzg0NywgMC4xNDg2NDYsIDAuMTYxNTA0LCAwLjE3MzgxMiwgMC4xODUxMTEsIDAuMjAxMTEsIDAuMjEzMTExIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4xMTMyNSwgMC4xMjMxMjcsIDAuMTM1NDg1LCAwLjE0NzM2OSwgMC4xNTc4OTIsIDAuMTcyMjQxLCAwLjE4MzA1MiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNzg4OTQ3OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDc4NzE7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNzg4OTQ3OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjc0MiwgMC4wMDI3MDksIDAuMDAyNjkzLCAwLjAwMjY4NCwgMC4wMDI2ODcsIDAuMDAyNjg2LCAwLjAwMjY5MiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzc1MiwgMC4wMDM3MzIsIDAuMDAzNzIyLCAwLjAwMzcxNywgMC4wMDM3MTMsIDAuMDAzNzE1LCAwLjAwMzczIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlJOIjsKLSAgICAgIHNkZl9jb25kIDogIlJOID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAxODc1LCAtMC4wMDc1LCAtMC4wMDEyNSwgMC4wMDUsIDAuMDExMjUsIDAuMDIxMjUsIDAuMDIzNzUiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAsIDAuMDA2MjUsIDAuMDEsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMC4wMDM3NSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDM3NSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA4NzUsIDAiLCBcCi0gICAgICAgICAgIi0wLjA1NSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAxNSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA2NSwgLTAuMDUzNzUsIC0wLjA0NzUsIC0wLjA0MTI1LCAtMC4wMzUsIC0wLjAyNSwgLTAuMDE2MjUiLCBcCi0gICAgICAgICAgIi0wLjA3Mzc1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wMzM3NSwgLTAuMDI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzc1LCAwLjA0MjUsIDAuMDU1LCAwLjA2NzUsIDAuMDgsIDAuMDk2MjUsIDAuMTA1IiwgXAotICAgICAgICAgICIwLjAyNjI1LCAwLjAzNzUsIDAuMDUsIDAuMDYyNSwgMC4wNjg3NSwgMC4wODUsIDAuMDkzNzUiLCBcCi0gICAgICAgICAgIjAuMDIsIDAuMDMxMjUsIDAuMDQzNzUsIDAuMDU2MjUsIDAuMDYyNSwgMC4wNzg3NSwgMC4wODc1IiwgXAotICAgICAgICAgICIwLjAxMzc1LCAwLjAyNSwgMC4wMzc1LCAwLjA1LCAwLjA2MjUsIDAuMDcyNSwgMC4wODc1IiwgXAotICAgICAgICAgICIwLjAxMzc1LCAwLjAxODc1LCAwLjAzMTI1LCAwLjA0Mzc1LCAwLjA1NjI1LCAwLjA3MjUsIDAuMDgxMjUiLCBcCi0gICAgICAgICAgIjAuMDEsIDAuMDE1LCAwLjAyNzUsIDAuMDQsIDAuMDUyNSwgMC4wNjI1LCAwLjA3NzUiLCBcCi0gICAgICAgICAgIjAuMDAxMjUsIDAuMDEyNSwgMC4wMjUsIDAuMDM3NSwgMC4wNDM3NSwgMC4wNiwgMC4wNjg3NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiUk4iOwotICAgICAgc2RmX2NvbmQgOiAiUk4gPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQzNzUsIDAuMDMyNSwgMC4wMjYyNSwgMC4wMTM3NSwgMC4wMDc1LCAwLjAwMzc1LCAtMC4wMDUiLCBcCi0gICAgICAgICAgIjAuMDQ4NzUsIDAuMDQzNzUsIDAuMDMxMjUsIDAuMDI1LCAwLjAxODc1LCAwLjAwODc1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICIwLjA2MTI1LCAwLjA1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDIxMjUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4wNzM3NSwgMC4wNjI1LCAwLjA1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDI3NSwgMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMDgsIDAuMDc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDUsIDAuMDQsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMDk2MjUsIDAuMDg1LCAwLjA3MjUsIDAuMDY2MjUsIDAuMDYsIDAuMDUsIDAuMDQxMjUiLCBcCi0gICAgICAgICAgIjAuMTA1LCAwLjA5Mzc1LCAwLjA4NzUsIDAuMDc1LCAwLjA2ODc1LCAwLjA1ODc1LCAwLjA1NjI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2MjUsIC0wLjAwNSwgLTAuMDE3NSwgLTAuMDMsIC0wLjA0MjUsIC0wLjA1ODc1LCAtMC4wNjc1IiwgXAotICAgICAgICAgICIwLjAxNzUsIDAuMDA2MjUsIC0wLjAwNjI1LCAtMC4wMTg3NSwgLTAuMDMxMjUsIC0wLjA0NzUsIC0wLjA2MjUiLCBcCi0gICAgICAgICAgIjAuMDIzNzUsIDAuMDE4NzUsIDAsIC0wLjAxMjUsIC0wLjAyNSwgLTAuMDQxMjUsIC0wLjA1IiwgXAotICAgICAgICAgICIwLjAzNjI1LCAwLjAyNSwgMC4wMTI1LCAwLCAtMC4wMTI1LCAtMC4wMjg3NSwgLTAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMDQyNSwgMC4wMzEyNSwgMC4wMTg3NSwgMC4wMDYyNSwgLTAuMDA2MjUsIC0wLjAyMjUsIC0wLjAzMTI1IiwgXAotICAgICAgICAgICIwLjA1MjUsIDAuMDQxMjUsIDAuMDI4NzUsIDAuMDE2MjUsIDAuMDAzNzUsIC0wLjAxMjUsIC0wLjAyMTI1IiwgXAotICAgICAgICAgICIwLjA2MTI1LCAwLjA1LCAwLjAzNzUsIDAuMDI1LCAwLjAxMjUsIC0wLjAwMzc1LCAtMC4wMTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihRKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDIuMDEwODU7Ci0gICAgZnVuY3Rpb24gOiAiTjMwIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBub25fdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJpc2luZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE0MTMwOSwgMC4xODI0MDIsIDAuMjE4NjE3LCAwLjI0NDI4MSwgMC4yODUzMDgsIDAuMzIxMiwgMC4zNzI0NDMiLCBcCi0gICAgICAgICAgIjAuMTUxNjM4LCAwLjE5MjczMSwgMC4yMjg5NDcsIDAuMjU0NjE2LCAwLjI5NTYzOSwgMC4zMzE1MTgsIDAuMzgyNzU3IiwgXAotICAgICAgICAgICIwLjE2NDM1MSwgMC4yMDU0NTEsIDAuMjQxNjYxLCAwLjI2NzMyOSwgMC4zMDgzNTMsIDAuMzQ0MjMxLCAwLjM5NTQ3MSIsIFwKLSAgICAgICAgICAiMC4xNzY2MjcsIDAuMjE3NzE5LCAwLjI1MzkzNywgMC4yNzk2MDYsIDAuMzIwNjI5LCAwLjM1NjUwNywgMC40MDc3NDciLCBcCi0gICAgICAgICAgIjAuMTg3NzE1LCAwLjIyODc5NiwgMC4yNjUwMTMsIDAuMjkwNjgsIDAuMzMxNzA2LCAwLjM2NzU5NywgMC40MTg4NDciLCBcCi0gICAgICAgICAgIjAuMjAyNjgzLCAwLjI0Mzc5MywgMC4yODAwMDksIDAuMzA1Njc4LCAwLjM0NjcwMSwgMC4zODI1OCwgMC40MzM4MTkiLCBcCi0gICAgICAgICAgIjAuMjE1MTA4LCAwLjI1NjIwNywgMC4yOTI0MjQsIDAuMzE4MDg1LCAwLjM1OTEyMiwgMC4zOTQ5OTcsIDAuNDQ2MjM2Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDI2OTE2LCAwLjA5NjMzNSwgMC4xNjgxMDYsIDAuMjIwMzQ1LCAwLjMwNDI4NywgMC4zNzgwNzEsIDAuNDgzNzI5IiwgXAotICAgICAgICAgICIwLjAyNjg5MSwgMC4wOTYzMzQsIDAuMTY4MDk3LCAwLjIyMDIwNiwgMC4zMDQyODQsIDAuMzc4MDM5LCAwLjQ4MzU1NyIsIFwKLSAgICAgICAgICAiMC4wMjY5NTksIDAuMDk2MzQ1LCAwLjE2ODExNSwgMC4yMjAyMiwgMC4zMDQyODUsIDAuMzc4MDM2LCAwLjQ4MzU3MyIsIFwKLSAgICAgICAgICAiMC4wMjY5MzIsIDAuMDk2MzM2LCAwLjE2ODEwNSwgMC4yMjAyMDksIDAuMzA0MjgyLCAwLjM3ODAzNywgMC40ODM1NiIsIFwKLSAgICAgICAgICAiMC4wMjY5NDYsIDAuMDk2MzQxLCAwLjE2ODA1NiwgMC4yMjAzNTUsIDAuMzA0Mjg0LCAwLjM3NzQ5NiwgMC40ODI1MzQiLCBcCi0gICAgICAgICAgIjAuMDI2OTQyLCAwLjA5NjMzNywgMC4xNjgxMDIsIDAuMjIwMjEyLCAwLjMwNDI4MywgMC4zNzgwMzUsIDAuNDgzNTYiLCBcCi0gICAgICAgICAgIjAuMDI2OTQ3LCAwLjA5NjM0LCAwLjE2ODEzOCwgMC4yMjAzNDYsIDAuMzA0MywgMC4zNzgwMjgsIDAuNDgzNTY2Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTM4NDcsIDAuMTc4Njc0LCAwLjIxNjc3MywgMC4yNDM5MzUsIDAuMjg3MzY5LCAwLjMyNTM2NiwgMC4zNzk2OCIsIFwKLSAgICAgICAgICAiMC4xNDg2NDYsIDAuMTg4ODQ4LCAwLjIyNjk1MiwgMC4yNTQxMTcsIDAuMjk3NTU4LCAwLjMzNTU1NiwgMC4zODk4NTEiLCBcCi0gICAgICAgICAgIjAuMTYxNTA0LCAwLjIwMTcwNSwgMC4yMzk4MDMsIDAuMjY2OTY0LCAwLjMxMDM5OSwgMC4zNDgzOTgsIDAuNDAyNyIsIFwKLSAgICAgICAgICAiMC4xNzM4MTIsIDAuMjE0MDExLCAwLjI1MjEyLCAwLjI3OTI4MywgMC4zMjI3MjksIDAuMzYwNzEyLCAwLjQxNTAzOSIsIFwKLSAgICAgICAgICAiMC4xODUxMTEsIDAuMjI1MzE1LCAwLjI2MzQyMiwgMC4yOTA1ODQsIDAuMzM0MDE5LCAwLjM3MjAzMiwgMC40MjYzMDIiLCBcCi0gICAgICAgICAgIjAuMjAxMTEsIDAuMjQxMzExLCAwLjI3OTQwOCwgMC4zMDY1NywgMC4zNTAwMDQsIDAuMzg4MDA0LCAwLjQ0MjMwNyIsIFwKLSAgICAgICAgICAiMC4yMTMxMTEsIDAuMjUzMzE5LCAwLjI5MTQxOCwgMC4zMTg1NzksIDAuMzYyMDE4LCAwLjQwMDAyNCwgMC40NTQyOTIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjI0ODIsIDAuMDk1OTc0LCAwLjE3MjEwMywgMC4yMjY4MDcsIDAuMzE1MjQ3LCAwLjM5MjQxMywgMC41MDI4MjYiLCBcCi0gICAgICAgICAgIjAuMDIyNTA3LCAwLjA5NTk1NSwgMC4xNzIxMDMsIDAuMjI2ODc0LCAwLjMxNTMxLCAwLjM5MTQzMywgMC41MDI3NzMiLCBcCi0gICAgICAgICAgIjAuMDIyNDk3LCAwLjA5NTk3NywgMC4xNzIxMSwgMC4yMjY4MDcsIDAuMzE1MjQ2LCAwLjM5MTc0MiwgMC41MDE2NzQiLCBcCi0gICAgICAgICAgIjAuMDIyNTA1LCAwLjA5NjA3LCAwLjE3MTk5OSwgMC4yMjY5ODMsIDAuMzE1MzgxLCAwLjM5MjM5NywgMC41MDEyOTUiLCBcCi0gICAgICAgICAgIjAuMDIyNTAzLCAwLjA5NTk3LCAwLjE3MjEyMiwgMC4yMjY3NDEsIDAuMzE1MjksIDAuMzkyNTA0LCAwLjUwMjcxNCIsIFwKLSAgICAgICAgICAiMC4wMjI0OTQsIDAuMDk1OTc2LCAwLjE3MjExLCAwLjIyNjgxLCAwLjMxNTI0NSwgMC4zOTE3NSwgMC41MDE3NCIsIFwKLSAgICAgICAgICAiMC4wMjI1NDMsIDAuMDk1OTI3LCAwLjE3MjA5MiwgMC4yMjY5OTQsIDAuMzE0OTYyLCAwLjM5MTgyNCwgMC41MDI2NjkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUk4iOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGNsZWFyOwotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzNjA4NCwgMC4wNzYxNzMsIDAuMTE0NDM2LCAwLjE0MTYwOCwgMC4xODUwMTcsIDAuMjIyOTc2LCAwLjI3NzIxOCIsIFwKLSAgICAgICAgICAiMC4wNDYwNzMsIDAuMDg2MTU2LCAwLjEyNDQyMywgMC4xNTE2MDUsIDAuMTk1MDE5LCAwLjIzMjk4MSwgMC4yODcyMTkiLCBcCi0gICAgICAgICAgIjAuMDU4MTYsIDAuMDk4MzI2LCAwLjEzNjYwMiwgMC4xNjM3NzEsIDAuMjA3MTcxLCAwLjI0NTE0NiwgMC4yOTk0MDciLCBcCi0gICAgICAgICAgIjAuMDY4NTYyLCAwLjEwODkzNSwgMC4xNDcyLCAwLjE3NDM3LCAwLjIxNzc4NywgMC4yNTU3NTQsIDAuMzEwMDA4IiwgXAotICAgICAgICAgICIwLjA3NzI4MywgMC4xMTc4NTUsIDAuMTU2MiwgMC4xODM0MTYsIDAuMjI2ODMyLCAwLjI2NDc5OCwgMC4zMTkwNDIiLCBcCi0gICAgICAgICAgIjAuMDg5Mjg1LCAwLjEzMDQxLCAwLjE2ODc5LCAwLjE5NTk4NiwgMC4yMzkzOTEsIDAuMjc3MzUzLCAwLjMzMTYiLCBcCi0gICAgICAgICAgIjAuMDk4MTYyLCAwLjEzOTg4LCAwLjE3ODIyOCwgMC4yMDU0MDYsIDAuMjQ4ODAzLCAwLjI4Njc2MiwgMC4zNDA5OTciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjExNjQsIDAuMDk1NzYxLCAwLjE3MTgxMywgMC4yMjY0NiwgMC4zMTQ0NTEsIDAuMzkxNzE1LCAwLjUwMTg0MSIsIFwKLSAgICAgICAgICAiMC4wMjExNjMsIDAuMDk1NzUyLCAwLjE3MTgwOCwgMC4yMjY0NCwgMC4zMTQ0NDUsIDAuMzkxNywgMC41MDE0ODYiLCBcCi0gICAgICAgICAgIjAuMDIxNTg1LCAwLjA5NTgxOSwgMC4xNzE4MTgsIDAuMjI2NDc2LCAwLjMxNDM2MSwgMC4zOTE2OTQsIDAuNTAxNzQzIiwgXAotICAgICAgICAgICIwLjAyMjc4NSwgMC4wOTYwOTQsIDAuMTcxOTE4LCAwLjIyNjUyOSwgMC4zMTQzODIsIDAuMzkxNjY4LCAwLjUwMTciLCBcCi0gICAgICAgICAgIjAuMDIzOTU5LCAwLjA5NjU2OCwgMC4xNzIxNDMsIDAuMjI2NjUzLCAwLjMxNDM4MSwgMC4zOTE0MjgsIDAuNTAyMDQ4IiwgXAotICAgICAgICAgICIwLjAyNTgxNywgMC4wOTczMjYsIDAuMTcyNTI5LCAwLjIyNjkxOSwgMC4zMTQ2LCAwLjM5MTc2NywgMC41MDE3ODEiLCBcCi0gICAgICAgICAgIjAuMDI3Mzg1LCAwLjA5ODA4NSwgMC4xNzI5MDIsIDAuMjI3MTc0LCAwLjMxNDg5NSwgMC4zOTE4LCAwLjUwMTc5NyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxODAyNCwgMC4wMTgzNDgsIDAuMDE4NDM4LCAwLjAxODQ3MywgMC4wMTg0OTksIDAuMDE4NTE0LCAwLjAxODUyOCIsIFwKLSAgICAgICAgICAiMC4wMTc5OTEsIDAuMDE4MzE1LCAwLjAxODQwNywgMC4wMTg0MzcsIDAuMDE4NDY2LCAwLjAxODQ4NSwgMC4wMTg0OTciLCBcCi0gICAgICAgICAgIjAuMDE3OTksIDAuMDE4MywgMC4wMTgzODksIDAuMDE4NDIsIDAuMDE4NDQ3LCAwLjAxODQ2OCwgMC4wMTg0NzciLCBcCi0gICAgICAgICAgIjAuMDE3OTY3LCAwLjAxODI5NCwgMC4wMTgzODUsIDAuMDE4NDE3LCAwLjAxODQ0NiwgMC4wMTg0NjEsIDAuMDE4NDc3IiwgXAotICAgICAgICAgICIwLjAxNzk5NCwgMC4wMTgzMDUsIDAuMDE4Mzk1LCAwLjAxODQyNSwgMC4wMTg0NTQsIDAuMDE4NDY5LCAwLjAxODQ4MyIsIFwKLSAgICAgICAgICAiMC4wMTc5OTMsIDAuMDE4MzE4LCAwLjAxODQwOSwgMC4wMTg0MzksIDAuMDE4NDcsIDAuMDE4NDg3LCAwLjAxODQ5OSIsIFwKLSAgICAgICAgICAiMC4wMTgwMTEsIDAuMDE4MzM2LCAwLjAxODQyOSwgMC4wMTg0NjEsIDAuMDE4NDksIDAuMDE4NTA2LCAwLjAxODUxOSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE3NDMzLCAwLjAxNzg5OSwgMC4wMTgwMDgsIDAuMDE4MDQ1LCAwLjAxODA3OCwgMC4wMTgwOTYsIDAuMDE4MTExIiwgXAotICAgICAgICAgICIwLjAxNzM5NywgMC4wMTc4NjUsIDAuMDE3OTc2LCAwLjAxODAxMywgMC4wMTgwNDcsIDAuMDE4MDY1LCAwLjAxODA4IiwgXAotICAgICAgICAgICIwLjAxNzQwNiwgMC4wMTc4NjgsIDAuMDE3OTc2LCAwLjAxODAxMiwgMC4wMTgwNDUsIDAuMDE4MDYyLCAwLjAxODA3OCIsIFwKLSAgICAgICAgICAiMC4wMTc0MTMsIDAuMDE3ODgyLCAwLjAxNzk5MywgMC4wMTgwMywgMC4wMTgwNjMsIDAuMDE4MDgxLCAwLjAxODA5NiIsIFwKLSAgICAgICAgICAiMC4wMTc0MzUsIDAuMDE3OTAzLCAwLjAxODAxNCwgMC4wMTgwNTEsIDAuMDE4MDg1LCAwLjAxODEwMiwgMC4wMTgxMTgiLCBcCi0gICAgICAgICAgIjAuMDE3NDk4LCAwLjAxNzk2LCAwLjAxODA2OCwgMC4wMTgxMDQsIDAuMDE4MTM2LCAwLjAxODE1NCwgMC4wMTgxNjkiLCBcCi0gICAgICAgICAgIjAuMDE3NTE5LCAwLjAxNzk3NiwgMC4wMTgwODYsIDAuMDE4MTIzLCAwLjAxODE1NiwgMC4wMTgxNzMsIDAuMDE4MTg5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUk4iOwotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE5NjM5LCAwLjAyMDA2OCwgMC4wMjAxMzUsIDAuMDIwMTU2LCAwLjAyMDE3NSwgMC4wMjAxODUsIDAuMDIwMTk0IiwgXAotICAgICAgICAgICIwLjAxOTQ2OSwgMC4wMTk5MTMsIDAuMDIsIDAuMDIwMDI3LCAwLjAyMDA1MywgMC4wMjAwNjYsIDAuMDIwMDc3IiwgXAotICAgICAgICAgICIwLjAxOTMyOCwgMC4wMTk3NzMsIDAuMDE5ODg2LCAwLjAxOTkyNCwgMC4wMTk5NiwgMC4wMTk5NzksIDAuMDE5OTk3IiwgXAotICAgICAgICAgICIwLjAxOTI2NSwgMC4wMTk2ODYsIDAuMDE5ODEyLCAwLjAxOTg1NywgMC4wMTk5MDEsIDAuMDE5OTI0LCAwLjAxOTk0NSIsIFwKLSAgICAgICAgICAiMC4wMTkyMzcsIDAuMDE5NjM2LCAwLjAxOTc2OSwgMC4wMTk4MjEsIDAuMDE5ODY3LCAwLjAxOTg5NiwgMC4wMTk5MjEiLCBcCi0gICAgICAgICAgIjAuMDE5MjUsIDAuMDE5NjEyLCAwLjAxOTc1MywgMC4wMTk4MDksIDAuMDE5ODY1LCAwLjAxOTg5NiwgMC4wMTk5MjUiLCBcCi0gICAgICAgICAgIjAuMDE5Mjk4LCAwLjAxOTYyOSwgMC4wMTk3NywgMC4wMTk4MjgsIDAuMDE5ODg3LCAwLjAxOTkyMSwgMC4wMTk5NDQiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfcG93ZXIoc2NhbGFyKSB7Ci0gICAgICAgIHZhbHVlcygiMCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUk4pICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMzQ2NjAyOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMzE2Mjg0OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMzQ2NjAyOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTU1NCwgMC4wMDE1NTMsIDAuMDAxNTUzLCAwLjAwMTU1MiwgMC4wMDE1NTIsIDAuMDAxNTUyLCAwLjAwMTU1MiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTU4NSwgMC4wMDE1NTksIDAuMDAxNTU5LCAwLjAwMTU1OSwgMC4wMDE1NTgsIDAuMDAxNTU5LCAwLjAwMTU2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRCI7Ci0gICAgICBzZGZfY29uZCA6ICJEID09IDEnYjAiOwotICAgICAgZmFsbF9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDkzNzc5LCAwLjEwMzAyMSwgMC4xMTI5NzUsIDAuMTIyMzA5LCAwLjEzMDg5OSwgMC4xNDMyMSwgMC4xNTI3MzIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiByZWNvdmVyeV9yaXNpbmc7Ci0gICAgICB3aGVuIDogIkQiOwotICAgICAgc2RmX2NvbmQgOiAiRCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChyZWNvdmVyeV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDMxMjUsIC0wLjA0MjUsIC0wLjA1NSwgLTAuMDY3NSwgLTAuMDgsIC0wLjA5LCAtMC4xMDUiLCBcCi0gICAgICAgICAgIi0wLjAzODc1LCAtMC4wNSwgLTAuMDYyNSwgLTAuMDc1LCAtMC4wODEyNSwgLTAuMDk3NSwgLTAuMTEyNSIsIFwKLSAgICAgICAgICAiLTAuMDM4NzUsIC0wLjA1LCAtMC4wNjI1LCAtMC4wNzUsIC0wLjA4NzUsIC0wLjA5NzUsIC0wLjExMjUiLCBcCi0gICAgICAgICAgIi0wLjAzODc1LCAtMC4wNSwgLTAuMDYyNSwgLTAuMDc1LCAtMC4wODc1LCAtMC4wOTc1LCAtMC4xMTI1IiwgXAotICAgICAgICAgICItMC4wMzI1LCAtMC4wNDM3NSwgLTAuMDU2MjUsIC0wLjA2ODc1LCAtMC4wODEyNSwgLTAuMDk3NSwgLTAuMTA2MjUiLCBcCi0gICAgICAgICAgIi0wLjAxLCAtMC4wMjEyNSwgLTAuMDQsIC0wLjA1MjUsIC0wLjA2NSwgLTAuMDgxMjUsIC0wLjA5NjI1IiwgXAotICAgICAgICAgICIwLjAwNSwgLTAuMDA2MjUsIC0wLjAyNSwgLTAuMDMxMjUsIC0wLjA1LCAtMC4wNjYyNSwgLTAuMDgxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiByZW1vdmFsX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiRCI7Ci0gICAgICBzZGZfY29uZCA6ICJEID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHJlbW92YWxfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU2MjUsIDAuMDYxMjUsIDAuMDczNzUsIDAuMDg2MjUsIDAuMDk4NzUsIDAuMTE1LCAwLjEyMzc1IiwgXAotICAgICAgICAgICIwLjA1NzUsIDAuMDY4NzUsIDAuMDgxMjUsIDAuMDkzNzUsIDAuMTA2MjUsIDAuMTIyNSwgMC4xMzEyNSIsIFwKLSAgICAgICAgICAiMC4wNjM3NSwgMC4wNzUsIDAuMDg3NSwgMC4xLCAwLjExMjUsIDAuMTI4NzUsIDAuMTM3NSIsIFwKLSAgICAgICAgICAiMC4wNywgMC4wODEyNSwgMC4wOTM3NSwgMC4xMDYyNSwgMC4xMTg3NSwgMC4xMjg3NSwgMC4xNDM3NSIsIFwKLSAgICAgICAgICAiMC4wNzYyNSwgMC4wODc1LCAwLjEsIDAuMTEyNSwgMC4xMTg3NSwgMC4xMzUsIDAuMTQzNzUiLCBcCi0gICAgICAgICAgIjAuMDg1LCAwLjA5LCAwLjEwMjUsIDAuMTE1LCAwLjEyNzUsIDAuMTQzNzUsIDAuMTUyNSIsIFwKLSAgICAgICAgICAiMC4wODg3NSwgMC4xLCAwLjExMjUsIDAuMTE4NzUsIDAuMTMxMjUsIDAuMTQ3NSwgMC4xNTYyNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IERGRlNSWDQgKgotICogLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoREZGU1JYNCkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjcxMjIyMzsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBmZiAoTjM1LFFCSU5UKSB7Ci0gICAgbmV4dF9zdGF0ZSA6ICJEIjsKLSAgICBjbG9ja2VkX29uIDogIkNLIjsKLSAgICBjbGVhciA6ICIoIVJOKSI7Ci0gICAgcHJlc2V0IDogIighU04pIjsKLSAgICBjbGVhcl9wcmVzZXRfdmFyMSA6IEg7Ci0gICAgY2xlYXJfcHJlc2V0X3ZhcjIgOiBMOwotICB9Ci0gIHBpbihDSykgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjM3OTc0OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYzNzc1OTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2Mzc5NzQ7Ci0gICAgY2xvY2sgOiB0cnVlOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzM0OSwgMC4wMDMzMjMsIDAuMDAzMzEsIDAuMDAzMzA5LCAwLjAwMzMxNywgMC4wMDMzMzgsIDAuMDAzMzYxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA4MDk2LCAwLjAwODA2OSwgMC4wMDgwNTIsIDAuMDA4MDQ5LCAwLjAwODA1NywgMC4wMDgwNzQsIDAuMDA4MDkyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRCZSTiZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fUk5fRVFfMV9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMTc0Mjk1LCAwLjE4NDUzNiwgMC4xOTcyNjgsIDAuMjA5Njc4LCAwLjIyMDk1OCwgMC4yMzY3OTksIDAuMjQ4NzU0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4xMzg0MjgsIDAuMTQ4MjI0LCAwLjE2MDQ0NiwgMC4xNzI1OSwgMC4xODMwNTQsIDAuMTk3NDgyLCAwLjIwODI5MiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNTkzMzM7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNTkxNzE5OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDU5MzMzOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzU1MiwgMC4wMDM1MywgMC4wMDM1MTcsIDAuMDAzNTA4LCAwLjAwMzUwNiwgMC4wMDM1MDYsIDAuMDAzNTExIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzMzk0LCAwLjAwMzM4MiwgMC4wMDMzNzMsIDAuMDAzMzY4LCAwLjAwMzM2MywgMC4wMDMzNjEsIDAuMDAzMzYzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlJOJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIlJOX0VRXzFfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMTg3NSwgLTAuMDEzNzUsIC0wLjAwMTI1LCAwLjAwNSwgMC4wMDUsIDAuMDE1LCAwLjAxNzUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAsIDAuMDAzNzUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDI1LCAwIiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDQzNzUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDMxMjUsIC0wLjAzMTI1LCAtMC4wMjEyNSwgLTAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDcxMjUsIC0wLjA2LCAtMC4wNTM3NSwgLTAuMDQ3NSwgLTAuMDQxMjUsIC0wLjAzMTI1LCAtMC4wMjg3NSIsIFwKLSAgICAgICAgICAiLTAuMDgsIC0wLjA2ODc1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjA0LCAtMC4wMzc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjUsIDAuMDM2MjUsIDAuMDQ4NzUsIDAuMDU1LCAwLjA2NzUsIDAuMDgzNzUsIDAuMDkyNSIsIFwKLSAgICAgICAgICAiMC4wMTM3NSwgMC4wMjUsIDAuMDM3NSwgMC4wNSwgMC4wNTYyNSwgMC4wNzI1LCAwLjA4MTI1IiwgXAotICAgICAgICAgICIwLjAwNzUsIDAuMDE4NzUsIDAuMDMxMjUsIDAuMDM3NSwgMC4wNSwgMC4wNjYyNSwgMC4wNzUiLCBcCi0gICAgICAgICAgIjAuMDAxMjUsIDAuMDA2MjUsIDAuMDE4NzUsIDAuMDMxMjUsIDAuMDQzNzUsIDAuMDUzNzUsIDAuMDY4NzUiLCBcCi0gICAgICAgICAgIi0wLjAwNSwgMC4wMDYyNSwgMC4wMTI1LCAwLjAyNSwgMC4wMzc1LCAwLjA1Mzc1LCAwLjA2MjUiLCBcCi0gICAgICAgICAgIi0wLjAxNSwgLTAuMDAzNzUsIDAuMDA4NzUsIDAuMDIxMjUsIDAuMDI3NSwgMC4wNDM3NSwgMC4wNTI1IiwgXAotICAgICAgICAgICItMC4wMTc1LCAtMC4wMTI1LCAwLCAwLjAxMjUsIDAuMDI1LCAwLjAzNSwgMC4wNDM3NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiUk4mU04iOwotICAgICAgc2RmX2NvbmQgOiAiUk5fRVFfMV9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEsIDAuMDg4NzUsIDAuMDc2MjUsIDAuMDYzNzUsIDAuMDUxMjUsIDAuMDM1LCAwLjAyNjI1IiwgXAotICAgICAgICAgICIwLjExMTI1LCAwLjEsIDAuMDgxMjUsIDAuMDY4NzUsIDAuMDU2MjUsIDAuMDQ2MjUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMTIzNzUsIDAuMTA2MjUsIDAuMDkzNzUsIDAuMDgxMjUsIDAuMDY4NzUsIDAuMDUyNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4xMywgMC4xMTg3NSwgMC4xMDYyNSwgMC4wOTM3NSwgMC4wODEyNSwgMC4wNjUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIjAuMTQyNSwgMC4xMzEyNSwgMC4xMTI1LCAwLjEsIDAuMDg3NSwgMC4wNzEyNSwgMC4wNjI1IiwgXAotICAgICAgICAgICIwLjE1MjUsIDAuMTQxMjUsIDAuMTI4NzUsIDAuMTE2MjUsIDAuMTAzNzUsIDAuMDg3NSwgMC4wNzg3NSIsIFwKLSAgICAgICAgICAiMC4xNjc1LCAwLjE1NjI1LCAwLjEzNzUsIDAuMTI1LCAwLjExMjUsIDAuMDk2MjUsIDAuMDg3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2ODc1LCAwLjA1NzUsIDAuMDQ1LCAwLjAzMjUsIDAuMDIsIDAuMDAzNzUsIC0wLjAxMTI1IiwgXAotICAgICAgICAgICIwLjA4LCAwLjA2MjUsIDAuMDUsIDAuMDM3NSwgMC4wMjUsIDAuMDA4NzUsIDAiLCBcCi0gICAgICAgICAgIjAuMDg2MjUsIDAuMDc1LCAwLjA2MjUsIDAuMDUsIDAuMDM3NSwgMC4wMjEyNSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiMC4wOTg3NSwgMC4wODc1LCAwLjA2ODc1LCAwLjA1NjI1LCAwLjA0Mzc1LCAwLjAyNzUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMTA1LCAwLjA5Mzc1LCAwLjA4MTI1LCAwLjA2ODc1LCAwLjA1NjI1LCAwLjA0LCAwLjAyNSIsIFwKLSAgICAgICAgICAiMC4xMTUsIDAuMTAzNzUsIDAuMDkxMjUsIDAuMDc4NzUsIDAuMDY2MjUsIDAuMDUsIDAuMDM1IiwgXAotICAgICAgICAgICIwLjEyMzc1LCAwLjExMjUsIDAuMSwgMC4wODc1LCAwLjA3NSwgMC4wNTg3NSwgMC4wNDM3NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAxLjAzMTI2OwotICAgIGZ1bmN0aW9uIDogIk4zNSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3NlbnNlIDogbm9uX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiByaXNpbmdfZWRnZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMzg2ODUsIDAuMjEyOTk1LCAwLjI4NTU5MiwgMC4zMzcyNCwgMC40MjAwNTgsIDAuNDkyMzUzLCAwLjU5NTc2NSIsIFwKLSAgICAgICAgICAiMC4xNDg3NjcsIDAuMjIzMDgzLCAwLjI5NTY5OCwgMC4zNDczMzMsIDAuNDMwMDc3LCAwLjUwMjQ0NSwgMC42MDU4NTYiLCBcCi0gICAgICAgICAgIjAuMTYxMzg3LCAwLjIzNTY4NywgMC4zMDgyODUsIDAuMzU5OTM3LCAwLjQ0MjY4NSwgMC41MTUwOCwgMC42MTg1NTciLCBcCi0gICAgICAgICAgIjAuMTczNzM0LCAwLjI0Nzk4LCAwLjMyMDUxMSwgMC4zNzIyMzEsIDAuNDU0OTc0LCAwLjUyNzM3NSwgMC42MzA4NTIiLCBcCi0gICAgICAgICAgIjAuMTg0ODQ3LCAwLjI1OTE0OSwgMC4zMzE3NDgsIDAuMzgzMzk5LCAwLjQ2NjE1MiwgMC41Mzg1MTEsIDAuNjQxOTQ4IiwgXAotICAgICAgICAgICIwLjIwMDM5MSwgMC4yNzQ3MDIsIDAuMzQ3MzIsIDAuMzk4OTUzLCAwLjQ4MTQyNywgMC41NTQwNTcsIDAuNjU3NDY3IiwgXAotICAgICAgICAgICIwLjIxMjU4OCwgMC4yODY4NDUsIDAuMzU5NTYzLCAwLjQxMTE3OSwgMC40OTM4ODMsIDAuNTY2MzE2LCAwLjY2OTY3NyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzNTI2NywgMC4xNzkzMDQsIDAuMzI2NTIzLCAwLjQzMjg2NywgMC42MDM2NjcsIDAuNzUzMDg5LCAwLjk2NjQyMyIsIFwKLSAgICAgICAgICAiMC4wMzU0MTcsIDAuMTc5MzA0LCAwLjMyNjQ5MSwgMC40MzI3NjEsIDAuNjAzNjUzLCAwLjc1MzA5NywgMC45NjY0MzIiLCBcCi0gICAgICAgICAgIjAuMDM1NDg5LCAwLjE3OTc4NSwgMC4zMjcwNzgsIDAuNDMyNzEsIDAuNjAzNjYxLCAwLjc1MzA2NywgMC45NjY2MTQiLCBcCi0gICAgICAgICAgIjAuMDM1MjYsIDAuMTc5NzgyLCAwLjMyNjc1OCwgMC40MzI3MSwgMC42MDM2NjIsIDAuNzUzMDY4LCAwLjk2NjYxNiIsIFwKLSAgICAgICAgICAiMC4wMzUzOCwgMC4xNzk4NDcsIDAuMzI2NTE3LCAwLjQzMjc2MSwgMC42MDM2NjIsIDAuNzUzMDcsIDAuOTY2NDg0IiwgXAotICAgICAgICAgICIwLjAzNTI0OSwgMC4xNzkzNDQsIDAuMzI2NTE2LCAwLjQzMjg3LCAwLjYwMzA0NCwgMC43NTMwODYsIDAuOTY2NDEyIiwgXAotICAgICAgICAgICIwLjAzNDkwMywgMC4xNzk3NSwgMC4zMjY1LCAwLjQzMjg3OSwgMC42MDI2MSwgMC43NTMyMiwgMC45NjY0NTEiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNDkxNDIsIDAuMjI0ODI4LCAwLjI5ODg2MiwgMC4zNTE0OTMsIDAuNDM1NzcxLCAwLjUwOTQ4MSwgMC42MTQ3MDciLCBcCi0gICAgICAgICAgIjAuMTU5Mzc4LCAwLjIzNDk4OSwgMC4zMDkwNzMsIDAuMzYxNzI4LCAwLjQ0NjAwNSwgMC41MTk3MTYsIDAuNjI0OTQzIiwgXAotICAgICAgICAgICIwLjE3MjExNCwgMC4yNDc3NCwgMC4zMjE3OTUsIDAuMzc0NDYyLCAwLjQ1ODc0LCAwLjUzMjQ1MSwgMC42Mzc2OCIsIFwKLSAgICAgICAgICAiMC4xODQ1MTQsIDAuMjYwMjAxLCAwLjMzNDI3OSwgMC4zODY4NjcsIDAuNDcxMTE3LCAwLjU0NDg2NiwgMC42NTAxODkiLCBcCi0gICAgICAgICAgIjAuMTk1NzU4LCAwLjI3MTQ0OSwgMC4zNDU1MDMsIDAuMzk4MTQ2LCAwLjQ4MjQyMiwgMC41NTYxMzMsIDAuNjYxMzU2IiwgXAotICAgICAgICAgICIwLjIxMTU5OCwgMC4yODcyODMsIDAuMzYxMjU2LCAwLjQxNDExNCwgMC40OTgyMDIsIDAuNTcxOTU2LCAwLjY3NzI4MSIsIFwKLSAgICAgICAgICAiMC4yMjM2MDIsIDAuMjk5Mjk0LCAwLjM3MzMzNCwgMC40MjU5NjMsIDAuNTEwMjM4LCAwLjU4Mzk0NywgMC42ODkxNjMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzQxNCwgMC4xNzkzMTYsIDAuMzI2ODMyLCAwLjQzMzgwNCwgMC42MDQ2MTQsIDAuNzU0MDA0LCAwLjk2Njc5MSIsIFwKLSAgICAgICAgICAiMC4wMzQxMzIsIDAuMTc5MjE1LCAwLjMyNzA1NSwgMC40MzM3ODIsIDAuNjA0NjA3LCAwLjc1Mzk4LCAwLjk2Njc5MiIsIFwKLSAgICAgICAgICAiMC4wMzQxNTksIDAuMTc5MjI2LCAwLjMyNjk1MSwgMC40MzM4MDEsIDAuNjA0NjA5LCAwLjc1NDAwNCwgMC45NjY3OCIsIFwKLSAgICAgICAgICAiMC4wMzQxMzYsIDAuMTc5Mjk3LCAwLjMyNjg1NSwgMC40MzM3NzgsIDAuNjA0NTkzLCAwLjc1NDAyMSwgMC45Njc0OTkiLCBcCi0gICAgICAgICAgIjAuMDM0Mjk3LCAwLjE3OTIyMiwgMC4zMjcxMTksIDAuNDMzNzc3LCAwLjYwNDYwNiwgMC43NTM5NzYsIDAuOTY2ODA4IiwgXAotICAgICAgICAgICIwLjAzNDI5OCwgMC4xNzkzMjgsIDAuMzI2ODM1LCAwLjQzMzAxNiwgMC42MDQ1OTQsIDAuNzU0MDM5LCAwLjk2NzU0MiIsIFwKLSAgICAgICAgICAiMC4wMzQxNDUsIDAuMTc5Mjk3LCAwLjMyNjgzOCwgMC40MzM3ODYsIDAuNjA0NjA5LCAwLjc1Mzk4MywgMC45NjY4MTgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUk4iOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGNsZWFyOwotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE5MTY5NywgMC4yNjczMDUsIDAuMzQxMzQxLCAwLjM5Mzk4LCAwLjQ3ODI0MywgMC41NTE3OTEsIDAuNjU3MTAzIiwgXAotICAgICAgICAgICIwLjIwMTU2NCwgMC4yNzcyMTMsIDAuMzUxMjE4LCAwLjQwMzg1MiwgMC40ODgxMTQsIDAuNTYxNjY2LCAwLjY2Njk2OSIsIFwKLSAgICAgICAgICAiMC4yMTM1MjksIDAuMjg5MjAyLCAwLjM2Mjg5OSwgMC40MTU0OSwgMC40OTk5MjIsIDAuNTczNjU1LCAwLjY3ODk1OSIsIFwKLSAgICAgICAgICAiMC4yMjQwNjgsIDAuMjk5NzAyLCAwLjM3MzcyNywgMC40MjYzNTgsIDAuNTEwNjIsIDAuNTg0MTc0LCAwLjY4OTQ3MyIsIFwKLSAgICAgICAgICAiMC4yMzI3NzQsIDAuMzA4Mzg2LCAwLjM4MjQyMiwgMC40MzUwNjEsIDAuNTE5MzI0LCAwLjU5Mjg3NCwgMC42OTgxODYiLCBcCi0gICAgICAgICAgIjAuMjQ1NDk5LCAwLjMyMTE3NywgMC4zOTUyNDEsIDAuNDQ3ODI2LCAwLjUzMjI2NiwgMC42MDU5MDUsIDAuNzEwOTM0IiwgXAotICAgICAgICAgICIwLjI1NTI0OCwgMC4zMzA5MDUsIDAuNDA0NTMyLCAwLjQ1NzU0MiwgMC41NDE4MDIsIDAuNjE1MzU2LCAwLjcyMDY1NiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzNDU3MSwgMC4xNzkyOTIsIDAuMzI3MDY5LCAwLjQzMzcwNiwgMC42MDQ3MzksIDAuNzU0MTEsIDAuOTY2MjA2IiwgXAotICAgICAgICAgICIwLjAzNDQ4OCwgMC4xNzkyOTksIDAuMzI2ODYsIDAuNDMzNzE1LCAwLjYwNDc0MSwgMC43NTMyMzYsIDAuOTY2MDAyIiwgXAotICAgICAgICAgICIwLjAzNDUwNCwgMC4xNzc5NzUsIDAuMzI3MjE2LCAwLjQzMzYzNSwgMC42MDQ1NjQsIDAuNzU0MjkzLCAwLjk2NjQ3NyIsIFwKLSAgICAgICAgICAiMC4wMzQ2MDcsIDAuMTc5MjU0LCAwLjMyNzA3NSwgMC40MzM3MTksIDAuNjA0NzM3LCAwLjc1MzIwNSwgMC45Njc3MTQiLCBcCi0gICAgICAgICAgIjAuMDM0NzI4LCAwLjE3OTI0LCAwLjMyNjg3NywgMC40MzM3MDcsIDAuNjA0NzMzLCAwLjc1NDM0NywgMC45NjYzNTciLCBcCi0gICAgICAgICAgIjAuMDM0NDYyLCAwLjE3Nzk3NCwgMC4zMjcwMTMsIDAuNDMzNzc5LCAwLjYwNDc4OCwgMC43NTQzMDQsIDAuOTY3NjM0IiwgXAotICAgICAgICAgICIwLjAzNDY4OCwgMC4xNzkyODYsIDAuMzI2OTksIDAuNDMzNzY2LCAwLjYwNDczOSwgMC43NTMxODQsIDAuOTY3NjciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiU04iOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHByZXNldDsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMjQ2NjksIDAuMTk4NTcyLCAwLjI3MTAxNCwgMC4zMjI5NDUsIDAuNDA1MzIzLCAwLjQ3ODE0NywgMC41ODE4OSIsIFwKLSAgICAgICAgICAiMC4xMzQ0MTgsIDAuMjA4Mjk4LCAwLjI4MDk5NywgMC4zMzI2MzYsIDAuNDE0OTQ5LCAwLjQ4ODM1NCwgMC41OTE0NzYiLCBcCi0gICAgICAgICAgIjAuMTQ2NjQyLCAwLjIyMDUyNywgMC4yOTMwNDcsIDAuMzQ0ODAzLCAwLjQyNzIxLCAwLjUwMDU4OCwgMC42MDM5MTciLCBcCi0gICAgICAgICAgIjAuMTU5MTA4LCAwLjIzMjk5NywgMC4zMDU2NywgMC4zNTcyNjcsIDAuNDM5NjUsIDAuNTEzMDQzLCAwLjYxNjM3IiwgXAotICAgICAgICAgICIwLjE3MTA1NiwgMC4yNDQ5OTIsIDAuMzE3NjMsIDAuMzY5MjIsIDAuNDUxNTgyLCAwLjUyNDk2MiwgMC42MjgyOTIiLCBcCi0gICAgICAgICAgIjAuMTg5MTE4LCAwLjI2MzA2MiwgMC4zMzU2OTYsIDAuMzg3MzAyLCAwLjQ2OTY4NCwgMC41NDMwNTMsIDAuNjQ2MzkyIiwgXAotICAgICAgICAgICIwLjIwNDE3NywgMC4yNzgxMDUsIDAuMzUwODEzLCAwLjQwMjQzNiwgMC40ODQ3OTgsIDAuNTU3NDMsIDAuNjYxMTczIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM0MjgxLCAwLjE3OTQ5MSwgMC4zMjczNzMsIDAuNDMzMTcsIDAuNjAzODEsIDAuNzUzMjQxLCAwLjk2NjY1NCIsIFwKLSAgICAgICAgICAiMC4wMzQzMzMsIDAuMTc5NTA3LCAwLjMyNzQwNCwgMC40MzMxMjEsIDAuNjAzODAxLCAwLjc1MzMwNiwgMC45NjY2MzQiLCBcCi0gICAgICAgICAgIjAuMDM0MDQsIDAuMTc5NDU1LCAwLjMyNzM3NywgMC40MzMxNDEsIDAuNjAzMDIzLCAwLjc1MzIsIDAuOTY2NjI1IiwgXAotICAgICAgICAgICIwLjAzNDI3MywgMC4xNzk0ODksIDAuMzI3Mzc2LCAwLjQzMzI2MywgMC42MDM3OTcsIDAuNzUzMTksIDAuOTY2NjM2IiwgXAotICAgICAgICAgICIwLjAzNDEyMSwgMC4xNzk0NzIsIDAuMzI3MDE1LCAwLjQzMzIzOSwgMC42MDM3OTgsIDAuNzUzMjM3LCAwLjk2NjYxNSIsIFwKLSAgICAgICAgICAiMC4wMzQwNjIsIDAuMTc5NDYxLCAwLjMyNzM2NiwgMC40MzMxMzUsIDAuNjAzMDY4LCAwLjc1MzI5NiwgMC45NjY2NTgiLCBcCi0gICAgICAgICAgIjAuMDM0MjU4LCAwLjE3OTU0MywgMC4zMjcyNzksIDAuNDMzMjUyLCAwLjYwMzgxOCwgMC43NTMyNCwgMC45NjY2NTEiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNzQxMTksIDAuMjQ5NzI4LCAwLjMyMzc2MiwgMC4zNzY0MDUsIDAuNDYwNjY4LCAwLjUzNDIxNCwgMC42Mzk1MzEiLCBcCi0gICAgICAgICAgIjAuMTgzNzkyLCAwLjI1OTQzNSwgMC4zMzM0OTcsIDAuMzg2MDgzLCAwLjQ3MDMzLCAwLjU0MzkxOSwgMC42NDkyMTkiLCBcCi0gICAgICAgICAgIjAuMTk0ODI0LCAwLjI3MDUwMSwgMC4zNDQ1MjEsIDAuMzk3MTUzLCAwLjQ4MTU2MiwgMC41NTUxODIsIDAuNjYwMjYyIiwgXAotICAgICAgICAgICIwLjIwNTYzMSwgMC4yODEyMDIsIDAuMzU1MTA2LCAwLjQwODA4OSwgMC40OTIxNjYsIDAuNTY1NzczLCAwLjY3MTI3MyIsIFwKLSAgICAgICAgICAiMC4yMTYyNDYsIDAuMjkxOTI2LCAwLjM2NTkzNSwgMC40MTg1NjUsIDAuNTAyOTQ0LCAwLjU3NjU4NSwgMC42ODE2ODYiLCBcCi0gICAgICAgICAgIjAuMjMzMTU3LCAwLjMwODgwOCwgMC4zODI2MDQsIDAuNDM1NDU1LCAwLjUxOTY5NSwgMC41OTMyOTUsIDAuNjk4NTkyIiwgXAotICAgICAgICAgICIwLjI0NzU2MSwgMC4zMjMyMzgsIDAuMzk3MDMyLCAwLjQ0OTUyOCwgMC41MzQxMTUsIDAuNjA3NywgMC43MTMwMDMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzQ3MTYsIDAuMTc5MjU3LCAwLjMyNjkzMSwgMC40MzM3NDEsIDAuNjA0NzUyLCAwLjc1MzE2MSwgMC45NjY3MDUiLCBcCi0gICAgICAgICAgIjAuMDM0NTQxLCAwLjE3OTI5NywgMC4zMjY1NjMsIDAuNDMzNzEzLCAwLjYwNDc0MSwgMC43NTMxMzQsIDAuOTY2NTQ5IiwgXAotICAgICAgICAgICIwLjAzNDUzLCAwLjE3OTI1NywgMC4zMjY4MTMsIDAuNDMzNzgzLCAwLjYwNDgwNywgMC43NTQzMTQsIDAuOTY3NzY1IiwgXAotICAgICAgICAgICIwLjAzNDY4NCwgMC4xNzkyOTgsIDAuMzI2OTk4LCAwLjQzMzY3NiwgMC42MDQ3MzEsIDAuNzUzNzIzLCAwLjk2NzkxNCIsIFwKLSAgICAgICAgICAiMC4wMzQ0OTQsIDAuMTc5MjU4LCAwLjMyNzE2MiwgMC40MzM3MTMsIDAuNjA0Nzc0LCAwLjc1NDI4NCwgMC45NjY1MDUiLCBcCi0gICAgICAgICAgIjAuMDM0NjksIDAuMTc5MjQ3LCAwLjMyNjcxNywgMC40MzM3MjMsIDAuNjA0NzI4LCAwLjc1MzY4NCwgMC45NjY1NzMiLCBcCi0gICAgICAgICAgIjAuMDM0NTQ3LCAwLjE3ODY2OSwgMC4zMjcyMTgsIDAuNDMzNzY3LCAwLjYwNDcxOSwgMC43NTMxNDgsIDAuOTY3NTU0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA4MjM3LCAwLjAwODQsIDAuMDA4NDI2LCAwLjAwODQzMSwgMC4wMDg0MzUsIDAuMDA4NDQsIDAuMDA4NDQ1IiwgXAotICAgICAgICAgICIwLjAwODIyLCAwLjAwODM4NCwgMC4wMDg0MDgsIDAuMDA4NDE1LCAwLjAwODQyMiwgMC4wMDg0MjUsIDAuMDA4NDI5IiwgXAotICAgICAgICAgICIwLjAwODIxMiwgMC4wMDgzNzYsIDAuMDA4NCwgMC4wMDg0MDYsIDAuMDA4NDE0LCAwLjAwODQxNSwgMC4wMDg0MiIsIFwKLSAgICAgICAgICAiMC4wMDgyMTMsIDAuMDA4Mzc2LCAwLjAwODQsIDAuMDA4NDA2LCAwLjAwODQxNSwgMC4wMDg0MTUsIDAuMDA4NDE5IiwgXAotICAgICAgICAgICIwLjAwODIxOSwgMC4wMDgzODIsIDAuMDA4NDAyLCAwLjAwODQxMiwgMC4wMDg0MTYsIDAuMDA4NDI0LCAwLjAwODQyNSIsIFwKLSAgICAgICAgICAiMC4wMDgyMjYsIDAuMDA4Mzg5LCAwLjAwODQxNCwgMC4wMDg0MTgsIDAuMDA4NDI1LCAwLjAwODQyOSwgMC4wMDg0MzEiLCBcCi0gICAgICAgICAgIjAuMDA4MjM1LCAwLjAwODQwMSwgMC4wMDg0MjUsIDAuMDA4NDMyLCAwLjAwODQzOCwgMC4wMDg0NDEsIDAuMDA4NDQ0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDgyODQsIDAuMDA4NDM3LCAwLjAwODQ1OSwgMC4wMDg0NjUsIDAuMDA4NDcxLCAwLjAwODQ3NCwgMC4wMDg0NzYiLCBcCi0gICAgICAgICAgIjAuMDA4MjY5LCAwLjAwODQyMiwgMC4wMDg0NDQsIDAuMDA4NDUxLCAwLjAwODQ1NywgMC4wMDg0NTksIDAuMDA4NDYzIiwgXAotICAgICAgICAgICIwLjAwODI2NywgMC4wMDg0MiwgMC4wMDg0NDIsIDAuMDA4NDQ4LCAwLjAwODQ1MywgMC4wMDg0NTcsIDAuMDA4NDU4IiwgXAotICAgICAgICAgICIwLjAwODI3MiwgMC4wMDg0MjUsIDAuMDA4NDQ3LCAwLjAwODQ1NCwgMC4wMDg0NTksIDAuMDA4NDYzLCAwLjAwODQ2NiIsIFwKLSAgICAgICAgICAiMC4wMDgyNzksIDAuMDA4NDMzLCAwLjAwODQ1NSwgMC4wMDg0NjIsIDAuMDA4NDY2LCAwLjAwODQ3MSwgMC4wMDg0NzQiLCBcCi0gICAgICAgICAgIjAuMDA4MzAxLCAwLjAwODQ1NCwgMC4wMDg0NzYsIDAuMDA4NDgzLCAwLjAwODQ4OSwgMC4wMDg0OTIsIDAuMDA4NDk0IiwgXAotICAgICAgICAgICIwLjAwODMwOCwgMC4wMDg0NjQsIDAuMDA4NDg2LCAwLjAwODQ5MywgMC4wMDg0OTksIDAuMDA4NTAxLCAwLjAwODUwNCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwOTUwNiwgMC4wMDk2NTksIDAuMDA5Njg1LCAwLjAwOTY5MywgMC4wMDk2OTgsIDAuMDA5Njk4LCAwLjAwOTcwMSIsIFwKLSAgICAgICAgICAiMC4wMDk0OTUsIDAuMDA5NjQ3LCAwLjAwOTY3MSwgMC4wMDk2ODMsIDAuMDA5Njg5LCAwLjAwOTY4NywgMC4wMDk2ODkiLCBcCi0gICAgICAgICAgIjAuMDA5NDkxLCAwLjAwOTY0NCwgMC4wMDk2NjgsIDAuMDA5Njc1LCAwLjAwOTY4LCAwLjAwOTY4MywgMC4wMDk2ODYiLCBcCi0gICAgICAgICAgIjAuMDA5NDkyLCAwLjAwOTY0NCwgMC4wMDk2NzQsIDAuMDA5Njc1LCAwLjAwOTY4NiwgMC4wMDk2NzcsIDAuMDA5Njg2IiwgXAotICAgICAgICAgICIwLjAwOTQ5NiwgMC4wMDk2NDksIDAuMDA5Njc2LCAwLjAwOTY4NCwgMC4wMDk2ODksIDAuMDA5NjkxLCAwLjAwOTY5MSIsIFwKLSAgICAgICAgICAiMC4wMDk0OTYsIDAuMDA5NjUsIDAuMDA5Njc3LCAwLjAwOTY4NCwgMC4wMDk2ODcsIDAuMDA5NjksIDAuMDA5NjkyIiwgXAotICAgICAgICAgICIwLjAwOTUxMiwgMC4wMDk2NjMsIDAuMDA5Njg4LCAwLjAwOTY5MywgMC4wMDk2OTksIDAuMDA5NzAyLCAwLjAwOTcxIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3Bvd2VyKHNjYWxhcikgewotICAgICAgICB2YWx1ZXMoIjAiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDkxOTUsIDAuMDA5MzUxLCAwLjAwOTM3LCAwLjAwOTM3NiwgMC4wMDkzOCwgMC4wMDkzODIsIDAuMDA5Mzg0IiwgXAotICAgICAgICAgICIwLjAwOTE4NCwgMC4wMDkzMzksIDAuMDA5MzU4LCAwLjAwOTM2MSwgMC4wMDkzNjUsIDAuMDA5MzcsIDAuMDA5Mzc1IiwgXAotICAgICAgICAgICIwLjAwOTE3OCwgMC4wMDkzMzMsIDAuMDA5MzUyLCAwLjAwOTM1NywgMC4wMDkzNTcsIDAuMDA5MzY0LCAwLjAwOTM3IiwgXAotICAgICAgICAgICIwLjAwOTE3MiwgMC4wMDkzMjgsIDAuMDA5MzQ3LCAwLjAwOTM1MywgMC4wMDkzNTcsIDAuMDA5MzU5LCAwLjAwOTM2MSIsIFwKLSAgICAgICAgICAiMC4wMDkxNzEsIDAuMDA5MzI4LCAwLjAwOTM0NywgMC4wMDkzNTIsIDAuMDA5MzU3LCAwLjAwOTM1OSwgMC4wMDkzNjQiLCBcCi0gICAgICAgICAgIjAuMDA5MTY5LCAwLjAwOTMyOSwgMC4wMDkzNDksIDAuMDA5MzU1LCAwLjAwOTM1OSwgMC4wMDkzNjIsIDAuMDA5MzY0IiwgXAotICAgICAgICAgICIwLjAwOTE3NCwgMC4wMDkzMzQsIDAuMDA5MzU1LCAwLjAwOTM2MSwgMC4wMDkzNjksIDAuMDA5MzY4LCAwLjAwOTM3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDgwOTksIDAuMDA4MjUxLCAwLjAwODI3OSwgMC4wMDgyODIsIDAuMDA4MjkyLCAwLjAwODI5MSwgMC4wMDgyOTQiLCBcCi0gICAgICAgICAgIjAuMDA4MDgyLCAwLjAwODIzNSwgMC4wMDgyNiwgMC4wMDgyNjYsIDAuMDA4Mjc4LCAwLjAwODI3NSwgMC4wMDgyODYiLCBcCi0gICAgICAgICAgIjAuMDA4MDcsIDAuMDA4MjI0LCAwLjAwODI1MiwgMC4wMDgyNiwgMC4wMDgyNjcsIDAuMDA4MjY0LCAwLjAwODI2NyIsIFwKLSAgICAgICAgICAiMC4wMDgwNjcsIDAuMDA4MjE5LCAwLjAwODI0MywgMC4wMDgyNSwgMC4wMDgyNjIsIDAuMDA4MjY3LCAwLjAwODI2MiIsIFwKLSAgICAgICAgICAiMC4wMDgwNjEsIDAuMDA4MjE1LCAwLjAwODIzOSwgMC4wMDgyNDcsIDAuMDA4MjUyLCAwLjAwODI1NSwgMC4wMDgyNTciLCBcCi0gICAgICAgICAgIjAuMDA4MDU3LCAwLjAwODIwOSwgMC4wMDgyMzQsIDAuMDA4MjQ3LCAwLjAwODI1MywgMC4wMDgyNTksIDAuMDA4MjU5IiwgXAotICAgICAgICAgICIwLjAwODA1MSwgMC4wMDgyMDQsIDAuMDA4MjI4LCAwLjAwODIzNSwgMC4wMDgyNDIsIDAuMDA4MjQ0LCAwLjAwODI0NiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUU4pICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMS4wMzg1OwotICAgIGZ1bmN0aW9uIDogIlFCSU5UIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBub25fdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJpc2luZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE3NDI5NSwgMC4yNDY3MjksIDAuMzE5MDYzLCAwLjM3MDcyLCAwLjQ1MzQwNCwgMC41MjU3NTYsIDAuNjI5MTUiLCBcCi0gICAgICAgICAgIjAuMTg0NTM2LCAwLjI1Njk4LCAwLjMyOTI5NSwgMC4zODA5NTksIDAuNDYzNjQyLCAwLjUzNTk5NSwgMC42MzkzOSIsIFwKLSAgICAgICAgICAiMC4xOTcyNjgsIDAuMjY5NzExLCAwLjM0MjAyNiwgMC4zOTM2OTIsIDAuNDc2Mzc1LCAwLjU0ODcyOCwgMC42NTIxMjIiLCBcCi0gICAgICAgICAgIjAuMjA5Njc4LCAwLjI4MjEwNCwgMC4zNTQ0NDcsIDAuNDA2MDk3LCAwLjQ4ODc3NSwgMC41NjExMzcsIDAuNjY0NTIxIiwgXAotICAgICAgICAgICIwLjIyMDk1OCwgMC4yOTMzOTMsIDAuMzY1NzE1LCAwLjQxNzM3OCwgMC41MDAwNjEsIDAuNTcyNDEzLCAwLjY3NTgxIiwgXAotICAgICAgICAgICIwLjIzNjc5OSwgMC4zMDkxODcsIDAuMzgxNTEzLCAwLjQzMzIxMSwgMC41MTU4NTgsIDAuNTg4MjIzLCAwLjY5MTYwOCIsIFwKLSAgICAgICAgICAiMC4yNDg3NTQsIDAuMzIxMTg3LCAwLjM5MzUyMSwgMC40NDUxNzgsIDAuNTI3ODYxLCAwLjYwMDIxMywgMC43MDM2MDkiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzIzNDksIDAuMTc3OTUxLCAwLjMyNjk1NiwgMC40MzM3MjMsIDAuNjA0NDkyLCAwLjc1Mzg0MSwgMC45NjcwNzkiLCBcCi0gICAgICAgICAgIjAuMDMyMzU4LCAwLjE3ODAxNiwgMC4zMjY1NjYsIDAuNDMzNzE1LCAwLjYwNDQ3NSwgMC43NTM4MTksIDAuOTY3MDciLCBcCi0gICAgICAgICAgIjAuMDMyMzIxLCAwLjE3ODAxMSwgMC4zMjY1MjgsIDAuNDMzNzI0LCAwLjYwNDQ4MSwgMC43NTM4MzgsIDAuOTY3MDciLCBcCi0gICAgICAgICAgIjAuMDMyMzQyLCAwLjE3Nzk2LCAwLjMyNjk0NCwgMC40MzM3MTcsIDAuNjA0NDI3LCAwLjc1Mzg2OCwgMC45Njc0MiIsIFwKLSAgICAgICAgICAiMC4wMzIzNDksIDAuMTc4MDExLCAwLjMyNjU4MSwgMC40MzM3MTYsIDAuNjA0NDcyLCAwLjc1MzgxNSwgMC45NjcwNzEiLCBcCi0gICAgICAgICAgIjAuMDMyMzU5LCAwLjE3Nzk0MywgMC4zMjcwMTUsIDAuNDMzMDUsIDAuNjA0NDI3LCAwLjc1Mzg5LCAwLjk2NzQ2MSIsIFwKLSAgICAgICAgICAiMC4wMzIzMjUsIDAuMTc3OTY1LCAwLjMyNjk2OCwgMC40MzM3MiwgMC42MDQ0ODUsIDAuNzUzODIzLCAwLjk2NzA3MSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE2NTY0LCAwLjIzOTYxMywgMC4zMTMzNzUsIDAuMzY2MDUzLCAwLjQ1MDM2OCwgMC41MjQxMywgMC42Mjk1MjciLCBcCi0gICAgICAgICAgIjAuMTc1NzE5LCAwLjI0OTY5MSwgMC4zMjM0NTUsIDAuMzc2MTMyLCAwLjQ2MDQzOCwgMC41MzQyMDgsIDAuNjM5NjA2IiwgXAotICAgICAgICAgICIwLjE4ODM2OCwgMC4yNjIzMjgsIDAuMzM2MDgyLCAwLjM4ODc3MSwgMC40NzMwNzYsIDAuNTQ2ODUsIDAuNjUyMjU5IiwgXAotICAgICAgICAgICIwLjIwMDcyMiwgMC4yNzQ2MjMsIDAuMzQ4Mzc2LCAwLjQwMTA2NiwgMC40ODUzNzEsIDAuNTU5MTQ1LCAwLjY2NDU1NSIsIFwKLSAgICAgICAgICAiMC4yMTE4MjQsIDAuMjg1NzcsIDAuMzU5NTM2LCAwLjQxMjIxNCwgMC40OTY1MjEsIDAuNTcwMjksIDAuNjc1NjkyIiwgXAotICAgICAgICAgICIwLjIyNzMzNywgMC4zMDEzMTQsIDAuMzc1MDgsIDAuNDI3NzU3LCAwLjUxMjAxOSwgMC41ODU4MzQsIDAuNjkxMjMxIiwgXAotICAgICAgICAgICIwLjIzOTUzMSwgMC4zMTM0OTYsIDAuMzg3Mjc0LCAwLjQzOTk1MiwgMC41MjQyNTcsIDAuNTk4MDM0LCAwLjcwMzQyNCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzMjA2OCwgMC4xNzgwNDYsIDAuMzI3MTQ3LCAwLjQzMzg0NSwgMC42MDQ3NTEsIDAuNzU0MjgxLCAwLjk2NzkzNSIsIFwKLSAgICAgICAgICAiMC4wMzIwNiwgMC4xNzgwNDcsIDAuMzI3MTQ0LCAwLjQzMzUzNCwgMC42MDQ3MDgsIDAuNzU0Mjc5LCAwLjk2NzkyOSIsIFwKLSAgICAgICAgICAiMC4wMzIwODgsIDAuMTc3ODk0LCAwLjMyNjk2NiwgMC40MzM1MjQsIDAuNjA0NzAzLCAwLjc1NDI0OSwgMC45NjgwMzEiLCBcCi0gICAgICAgICAgIjAuMDMyMDc2LCAwLjE3Nzg5NCwgMC4zMjY5NCwgMC40MzM1MjMsIDAuNjA0NzAxLCAwLjc1NDI1LCAwLjk2ODAzMiIsIFwKLSAgICAgICAgICAiMC4wMzIwODMsIDAuMTc3ODk0LCAwLjMyNzEzOSwgMC40MzM1MzMsIDAuNjA0NzE0LCAwLjc1NDI0LCAwLjk2Nzk2MiIsIFwKLSAgICAgICAgICAiMC4wMzIwNTQsIDAuMTc4MDMyLCAwLjMyNzE0OSwgMC40MzM4NDMsIDAuNjA0MTkxLCAwLjc1NDI3LCAwLjk2NzkxNSIsIFwKLSAgICAgICAgICAiMC4wMzIwNTUsIDAuMTc3OTAyLCAwLjMyNzE1NCwgMC40MzM4NTQsIDAuNjA0MTA0LCAwLjc1NDM0MiwgMC45Njc5MjEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUk4iOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHByZXNldDsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMTY3ODQsIDAuMjg5MjI2LCAwLjM2MTU1NSwgMC40MTMyMTIsIDAuNDk1ODkyLCAwLjU2ODI2OCwgMC42NzE3MDUiLCBcCi0gICAgICAgICAgIjAuMjI2NjI4LCAwLjI5OTA5NSwgMC4zNzE0MjYsIDAuNDIzMDgzLCAwLjUwNTc2MiwgMC41NzgxMzYsIDAuNjgxNTc2IiwgXAotICAgICAgICAgICIwLjIzODU3LCAwLjMxMTA2LCAwLjM4MzM3LCAwLjQzNDk4MiwgMC41MTc2NjgsIDAuNTkwMDk5LCAwLjY5MzUzMiIsIFwKLSAgICAgICAgICAiMC4yNDkxNjEsIDAuMzIxNjA0LCAwLjM5MzkzMiwgMC40NDU1ODgsIDAuNTI4MjY4LCAwLjYwMDY0LCAwLjcwNDA4IiwgXAotICAgICAgICAgICIwLjI1Nzg4MywgMC4zMzAzMDYsIDAuNDAyNjM0LCAwLjQ1NDI5MSwgMC41MzY5NzEsIDAuNjA5MzQ3LCAwLjcxMjc4MiIsIFwKLSAgICAgICAgICAiMC4yNzA1OSwgMC4zNDMwMywgMC40MTU0MjgsIDAuNDY3MDI1LCAwLjU0OTgsIDAuNjIyMTM4LCAwLjcyNTUwOSIsIFwKLSAgICAgICAgICAiMC4yODAzNTcsIDAuMzUyNzk0LCAwLjQyNTA3MSwgMC40NzY3ODQsIDAuNTU5NDYzLCAwLjYzMTgzNCwgMC43MzUyNzQiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzI0MzIsIDAuMTc3OTgxLCAwLjMyNzE4NywgMC40MzM4NTIsIDAuNjA0NTk2LCAwLjc1Mzk2NCwgMC45NjYyOTYiLCBcCi0gICAgICAgICAgIjAuMDMyNDE4LCAwLjE3NzkzNiwgMC4zMjcxOCwgMC40MzM4OTMsIDAuNjA0NzIzLCAwLjc1MzExNiwgMC45NjU3ODQiLCBcCi0gICAgICAgICAgIjAuMDMyNDMxLCAwLjE3NzgxNywgMC4zMjcwNjMsIDAuNDMzNjYxLCAwLjYwNDQ2NSwgMC43NTQxNywgMC45NjYzMjIiLCBcCi0gICAgICAgICAgIjAuMDMyNDI0LCAwLjE3NzkwOCwgMC4zMjcxNzQsIDAuNDMzODg2LCAwLjYwNDYwOSwgMC43NTMwOTQsIDAuOTY3NTc0IiwgXAotICAgICAgICAgICIwLjAzMjQzNywgMC4xNzc5ODYsIDAuMzI3MTgzLCAwLjQzMzg4MywgMC42MDQ3MSwgMC43NTQxNjcsIDAuOTY2MzUzIiwgXAotICAgICAgICAgICIwLjAzMjQ1MywgMC4xNzc4MjEsIDAuMzI3MTg2LCAwLjQzMzg1NCwgMC42MDQ3OTEsIDAuNzU0MTU3LCAwLjk2NzUzNyIsIFwKLSAgICAgICAgICAiMC4wMzI0NDQsIDAuMTc3OTQxLCAwLjMyNjU4MywgMC40MzM4NTYsIDAuNjA0NzA4LCAwLjc1MzA5NCwgMC45Njc1NTciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiU04iOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGNsZWFyOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE5OTIyNSwgMC4yNzE2NSwgMC4zNDM5NzgsIDAuMzk1NjM1LCAwLjQ3ODMxMywgMC41NTA2OTEsIDAuNjU0MTI5IiwgXAotICAgICAgICAgICIwLjIwODg2MiwgMC4yODEzMzQsIDAuMzUzNjYxLCAwLjQwNTMyMiwgMC40ODc5OTcsIDAuNTYwMzY5LCAwLjY2MzgwMiIsIFwKLSAgICAgICAgICAiMC4yMTk5NjcsIDAuMjkyMzYsIDAuMzY0Njk3LCAwLjQxNjM1MywgMC40OTkwNzIsIDAuNTcxNDA1LCAwLjY3NDgzNyIsIFwKLSAgICAgICAgICAiMC4yMzA3MzUsIDAuMzAzMTg0LCAwLjM3NTQ2NSwgMC40MjcxOSwgMC41MDk4MzIsIDAuNTgyMjAzLCAwLjY4NTU5NCIsIFwKLSAgICAgICAgICAiMC4yNDEzMzMsIDAuMzEzNzc3LCAwLjM4NjExNSwgMC40Mzc3NzEsIDAuNTIwNDgyLCAwLjU5MjgxOCwgMC42OTYyNTQiLCBcCi0gICAgICAgICAgIjAuMjU4MjY1LCAwLjMzMDY5NCwgMC40MDI5ODYsIDAuNDU0Njg2LCAwLjUzNzM1OSwgMC42MDk3MywgMC43MTMxNiIsIFwKLSAgICAgICAgICAiMC4yNzI2NDUsIDAuMzQ1MDkxLCAwLjQxNzQwMiwgMC40NjkwMTIsIDAuNTUxNzUzLCAwLjYyNDEyNiwgMC43Mjc1NTgiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzI0MzIsIDAuMTc3OTc1LCAwLjMyNzE5NCwgMC40MzM4NTcsIDAuNjA0NiwgMC43NTMxODMsIDAuOTY3MDM3IiwgXAotICAgICAgICAgICIwLjAzMjQwOCwgMC4xNzc5MzksIDAuMzI2NjQ1LCAwLjQzMzg1MiwgMC42MDQ1NzUsIDAuNzUzMTQyLCAwLjk2NjM0MiIsIFwKLSAgICAgICAgICAiMC4wMzI0OCwgMC4xNzc4OTEsIDAuMzI3MTc2LCAwLjQzMzg1NiwgMC42MDQ4MDcsIDAuNzU0MTc2LCAwLjk2NzU5NyIsIFwKLSAgICAgICAgICAiMC4wMzI0MTQsIDAuMTc3OTM5LCAwLjMyNzEwOSwgMC40MzM3NzksIDAuNjA0NTU4LCAwLjc1Mzg0NSwgMC45Njc3MzEiLCBcCi0gICAgICAgICAgIjAuMDMyNDU2LCAwLjE3Nzk2MiwgMC4zMjcxOCwgMC40MzM4NTEsIDAuNjA0Nzc3LCAwLjc1NDExMSwgMC45NjYzNyIsIFwKLSAgICAgICAgICAiMC4wMzI0MzUsIDAuMTc3OTgxLCAwLjMyNjU3MSwgMC40MzM4NTksIDAuNjA0NTYxLCAwLjc1Mzg0MiwgMC45NjYzMyIsIFwKLSAgICAgICAgICAiMC4wMzI0NTcsIDAuMTc3ODEyLCAwLjMyNjc0LCAwLjQzMzcyNSwgMC42MDQ1NTcsIDAuNzUzMDM3LCAwLjk2NzQ3MSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE1MTM4OCwgMC4yMjU0NDQsIDAuMjk5MiwgMC4zNTE5MDUsIDAuNDM2MjA5LCAwLjUxMDA0NSwgMC42MTU0NzkiLCBcCi0gICAgICAgICAgIjAuMTYxMTI1LCAwLjIzNTE2MiwgMC4zMDg5NDUsIDAuMzYxNjI0LCAwLjQ0NTkzNywgMC41MTk4MTQsIDAuNjI1MTc0IiwgXAotICAgICAgICAgICIwLjE3MzM1NCwgMC4yNDczODQsIDAuMzIxMTQyLCAwLjM3MzgzNCwgMC40NTgxNTYsIDAuNTMyMDMxLCAwLjYzNzQzMSIsIFwKLSAgICAgICAgICAiMC4xODU4MTgsIDAuMjU5ODUyLCAwLjMzMzYxNSwgMC4zODYzMDEsIDAuNDcwNjIzLCAwLjU0NDQ5NiwgMC42NDk4OTUiLCBcCi0gICAgICAgICAgIjAuMTk3NzYyLCAwLjI3MTgwNywgMC4zNDU1NjcsIDAuMzk4MjUzLCAwLjQ4MjU3MywgMC41NTY0NCwgMC42NjE4NDEiLCBcCi0gICAgICAgICAgIjAuMjE1ODMzLCAwLjI4OTg3LCAwLjM2MzYyOCwgMC40MTYzMTYsIDAuNTAwNjM0LCAwLjU3NDUwNSwgMC42Nzk5MDciLCBcCi0gICAgICAgICAgIjAuMjMwODgxLCAwLjMwNDkzMiwgMC4zNzg3MDMsIDAuNDMxMzkzLCAwLjUxNTcwNCwgMC41ODk1MTksIDAuNjk0OTIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzIwMjMsIDAuMTc3ODk5LCAwLjMyNzI2OSwgMC40MzQwMjYsIDAuNjA0OTc2LCAwLjc1NDU0MSwgMC45NjgzNjciLCBcCi0gICAgICAgICAgIjAuMDMyMDM5LCAwLjE3Nzk3MywgMC4zMjcyNzEsIDAuNDM0MDI0LCAwLjYwNTA2NSwgMC43NTQ2OTksIDAuOTY4Mzc3IiwgXAotICAgICAgICAgICIwLjAzMjA0MiwgMC4xNzc4OTMsIDAuMzI3Mjc3LCAwLjQzMzk3NiwgMC42MDQzNzIsIDAuNzU0NDYyLCAwLjk2ODM1NCIsIFwKLSAgICAgICAgICAiMC4wMzIwMzYsIDAuMTc3ODk3LCAwLjMyNzI3OSwgMC40MzQxMjQsIDAuNjA0OTc2LCAwLjc1NDQ0LCAwLjk2ODM4MSIsIFwKLSAgICAgICAgICAiMC4wMzIwMzUsIDAuMTc4MDQyLCAwLjMyNjc1NSwgMC40MzQwMDMsIDAuNjA0OTc0LCAwLjc1NDQ4OSwgMC45NjgzMzQiLCBcCi0gICAgICAgICAgIjAuMDMyMDM0LCAwLjE3ODAyMSwgMC4zMjcyNywgMC40MzM5NTUsIDAuNjA0MzQyLCAwLjc1NDY2NywgMC45NjgzNCIsIFwKLSAgICAgICAgICAiMC4wMzIwMzUsIDAuMTc3OTYzLCAwLjMyNzI2MSwgMC40MzQwNTksIDAuNjA1MDE5LCAwLjc1NDUxNywgMC45NjgzNTMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDgyODQsIDAuMDA4NDM3LCAwLjAwODQ1OSwgMC4wMDg0NjUsIDAuMDA4NDcxLCAwLjAwODQ3NCwgMC4wMDg0NzYiLCBcCi0gICAgICAgICAgIjAuMDA4MjY5LCAwLjAwODQyMiwgMC4wMDg0NDQsIDAuMDA4NDUxLCAwLjAwODQ1NywgMC4wMDg0NTksIDAuMDA4NDYzIiwgXAotICAgICAgICAgICIwLjAwODI2NywgMC4wMDg0MiwgMC4wMDg0NDIsIDAuMDA4NDQ4LCAwLjAwODQ1MywgMC4wMDg0NTcsIDAuMDA4NDU4IiwgXAotICAgICAgICAgICIwLjAwODI3MiwgMC4wMDg0MjUsIDAuMDA4NDQ3LCAwLjAwODQ1NCwgMC4wMDg0NTksIDAuMDA4NDYzLCAwLjAwODQ2NiIsIFwKLSAgICAgICAgICAiMC4wMDgyNzksIDAuMDA4NDMzLCAwLjAwODQ1NSwgMC4wMDg0NjIsIDAuMDA4NDY2LCAwLjAwODQ3MSwgMC4wMDg0NzQiLCBcCi0gICAgICAgICAgIjAuMDA4MzAxLCAwLjAwODQ1NCwgMC4wMDg0NzYsIDAuMDA4NDgzLCAwLjAwODQ4OSwgMC4wMDg0OTIsIDAuMDA4NDk0IiwgXAotICAgICAgICAgICIwLjAwODMwOCwgMC4wMDg0NjQsIDAuMDA4NDg2LCAwLjAwODQ5MywgMC4wMDg0OTksIDAuMDA4NTAxLCAwLjAwODUwNCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA4MjM3LCAwLjAwODQsIDAuMDA4NDI2LCAwLjAwODQzMSwgMC4wMDg0MzUsIDAuMDA4NDQsIDAuMDA4NDQ1IiwgXAotICAgICAgICAgICIwLjAwODIyLCAwLjAwODM4NCwgMC4wMDg0MDgsIDAuMDA4NDE1LCAwLjAwODQyMiwgMC4wMDg0MjUsIDAuMDA4NDI5IiwgXAotICAgICAgICAgICIwLjAwODIxMiwgMC4wMDgzNzYsIDAuMDA4NCwgMC4wMDg0MDYsIDAuMDA4NDE0LCAwLjAwODQxNSwgMC4wMDg0MiIsIFwKLSAgICAgICAgICAiMC4wMDgyMTMsIDAuMDA4Mzc2LCAwLjAwODQsIDAuMDA4NDA2LCAwLjAwODQxNSwgMC4wMDg0MTUsIDAuMDA4NDE5IiwgXAotICAgICAgICAgICIwLjAwODIxOSwgMC4wMDgzODIsIDAuMDA4NDAyLCAwLjAwODQxMiwgMC4wMDg0MTYsIDAuMDA4NDI0LCAwLjAwODQyNSIsIFwKLSAgICAgICAgICAiMC4wMDgyMjYsIDAuMDA4Mzg5LCAwLjAwODQxNCwgMC4wMDg0MTgsIDAuMDA4NDI1LCAwLjAwODQyOSwgMC4wMDg0MzEiLCBcCi0gICAgICAgICAgIjAuMDA4MjM1LCAwLjAwODQwMSwgMC4wMDg0MjUsIDAuMDA4NDMyLCAwLjAwODQzOCwgMC4wMDg0NDEsIDAuMDA4NDQ0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUk4iOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA5NTA2LCAwLjAwOTY1OSwgMC4wMDk2ODUsIDAuMDA5NjkzLCAwLjAwOTY5OCwgMC4wMDk2OTgsIDAuMDA5NzAxIiwgXAotICAgICAgICAgICIwLjAwOTQ5NSwgMC4wMDk2NDcsIDAuMDA5NjcxLCAwLjAwOTY4MywgMC4wMDk2ODksIDAuMDA5Njg3LCAwLjAwOTY4OSIsIFwKLSAgICAgICAgICAiMC4wMDk0OTEsIDAuMDA5NjQ0LCAwLjAwOTY2OCwgMC4wMDk2NzUsIDAuMDA5NjgsIDAuMDA5NjgzLCAwLjAwOTY4NiIsIFwKLSAgICAgICAgICAiMC4wMDk0OTIsIDAuMDA5NjQ0LCAwLjAwOTY3NCwgMC4wMDk2NzUsIDAuMDA5Njg2LCAwLjAwOTY3NywgMC4wMDk2ODYiLCBcCi0gICAgICAgICAgIjAuMDA5NDk2LCAwLjAwOTY0OSwgMC4wMDk2NzYsIDAuMDA5Njg0LCAwLjAwOTY4OSwgMC4wMDk2OTEsIDAuMDA5NjkxIiwgXAotICAgICAgICAgICIwLjAwOTQ5NiwgMC4wMDk2NSwgMC4wMDk2NzcsIDAuMDA5Njg0LCAwLjAwOTY4NywgMC4wMDk2OSwgMC4wMDk2OTIiLCBcCi0gICAgICAgICAgIjAuMDA5NTEyLCAwLjAwOTY2MywgMC4wMDk2ODgsIDAuMDA5NjkzLCAwLjAwOTY5OSwgMC4wMDk3MDIsIDAuMDA5NzEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoc2NhbGFyKSB7Ci0gICAgICAgIHZhbHVlcygiMCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwODA5OSwgMC4wMDgyNTEsIDAuMDA4Mjc5LCAwLjAwODI4MiwgMC4wMDgyOTIsIDAuMDA4MjkxLCAwLjAwODI5NCIsIFwKLSAgICAgICAgICAiMC4wMDgwODIsIDAuMDA4MjM1LCAwLjAwODI2LCAwLjAwODI2NiwgMC4wMDgyNzgsIDAuMDA4Mjc1LCAwLjAwODI4NiIsIFwKLSAgICAgICAgICAiMC4wMDgwNywgMC4wMDgyMjQsIDAuMDA4MjUyLCAwLjAwODI2LCAwLjAwODI2NywgMC4wMDgyNjQsIDAuMDA4MjY3IiwgXAotICAgICAgICAgICIwLjAwODA2NywgMC4wMDgyMTksIDAuMDA4MjQzLCAwLjAwODI1LCAwLjAwODI2MiwgMC4wMDgyNjcsIDAuMDA4MjYyIiwgXAotICAgICAgICAgICIwLjAwODA2MSwgMC4wMDgyMTUsIDAuMDA4MjM5LCAwLjAwODI0NywgMC4wMDgyNTIsIDAuMDA4MjU1LCAwLjAwODI1NyIsIFwKLSAgICAgICAgICAiMC4wMDgwNTcsIDAuMDA4MjA5LCAwLjAwODIzNCwgMC4wMDgyNDcsIDAuMDA4MjUzLCAwLjAwODI1OSwgMC4wMDgyNTkiLCBcCi0gICAgICAgICAgIjAuMDA4MDUxLCAwLjAwODIwNCwgMC4wMDgyMjgsIDAuMDA4MjM1LCAwLjAwODI0MiwgMC4wMDgyNDQsIDAuMDA4MjQ2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDkxOTUsIDAuMDA5MzUxLCAwLjAwOTM3LCAwLjAwOTM3NiwgMC4wMDkzOCwgMC4wMDkzODIsIDAuMDA5Mzg0IiwgXAotICAgICAgICAgICIwLjAwOTE4NCwgMC4wMDkzMzksIDAuMDA5MzU4LCAwLjAwOTM2MSwgMC4wMDkzNjUsIDAuMDA5MzcsIDAuMDA5Mzc1IiwgXAotICAgICAgICAgICIwLjAwOTE3OCwgMC4wMDkzMzMsIDAuMDA5MzUyLCAwLjAwOTM1NywgMC4wMDkzNTcsIDAuMDA5MzY0LCAwLjAwOTM3IiwgXAotICAgICAgICAgICIwLjAwOTE3MiwgMC4wMDkzMjgsIDAuMDA5MzQ3LCAwLjAwOTM1MywgMC4wMDkzNTcsIDAuMDA5MzU5LCAwLjAwOTM2MSIsIFwKLSAgICAgICAgICAiMC4wMDkxNzEsIDAuMDA5MzI4LCAwLjAwOTM0NywgMC4wMDkzNTIsIDAuMDA5MzU3LCAwLjAwOTM1OSwgMC4wMDkzNjQiLCBcCi0gICAgICAgICAgIjAuMDA5MTY5LCAwLjAwOTMyOSwgMC4wMDkzNDksIDAuMDA5MzU1LCAwLjAwOTM1OSwgMC4wMDkzNjIsIDAuMDA5MzY0IiwgXAotICAgICAgICAgICIwLjAwOTE3NCwgMC4wMDkzMzQsIDAuMDA5MzU1LCAwLjAwOTM2MSwgMC4wMDkzNjksIDAuMDA5MzY4LCAwLjAwOTM3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihSTikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjAzNTA0OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYwMzI4MTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2MDM1MDQ7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNTkxLCAwLjAwMDU2OCwgMC4wMDA1NTgsIDAuMDAwNTYzLCAwLjAwMDU3MiwgMC4wMDA1OTUsIDAuMDAwNjE3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyNTQxLCAwLjAwMjUyMiwgMC4wMDI1MTcsIDAuMDAyNTIyLCAwLjAwMjUzMiwgMC4wMDI1NTUsIDAuMDAyNTcxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRCZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjIxNjc4NCwgMC4yMjY2MjgsIDAuMjM4NTcsIDAuMjQ5MTYxLCAwLjI1Nzg4MywgMC4yNzA1OSwgMC4yODAzNTciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiByZWNvdmVyeV9yaXNpbmc7Ci0gICAgICB3aGVuIDogIkQmU04iOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8xX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQocmVjb3ZlcnlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg3NSwgMC4wNzYyNSwgMC4wNjM3NSwgMC4wNDUsIDAuMDMyNSwgMC4wMjI1LCAwLjAwNzUiLCBcCi0gICAgICAgICAgIjAuMDk4NzUsIDAuMDgxMjUsIDAuMDY4NzUsIDAuMDU2MjUsIDAuMDQzNzUsIDAuMDMzNzUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMTExMjUsIDAuMDkzNzUsIDAuMDgxMjUsIDAuMDY4NzUsIDAuMDU2MjUsIDAuMDQ2MjUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMTE3NSwgMC4xMDYyNSwgMC4wOTM3NSwgMC4wODEyNSwgMC4wNjg3NSwgMC4wNTI1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjEzLCAwLjExODc1LCAwLjEwNjI1LCAwLjA5Mzc1LCAwLjA4MTI1LCAwLjA2NSwgMC4wNSIsIFwKLSAgICAgICAgICAiMC4xNCwgMC4xMjg3NSwgMC4xMTYyNSwgMC4xMDM3NSwgMC4wOTEyNSwgMC4wODEyNSwgMC4wNjYyNSIsIFwKLSAgICAgICAgICAiMC4xNTUsIDAuMTQzNzUsIDAuMTI1LCAwLjExMjUsIDAuMSwgMC4wOSwgMC4wNzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiU04iOwotICAgICAgdGltaW5nX3R5cGUgOiByZWNvdmVyeV9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEIjsKLSAgICAgIHNkZl9jb25kIDogIkQgPT0gMSdiMCI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQocmVjb3ZlcnlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg3NSwgMC4wOTg3NSwgMC4xMTEyNSwgMC4xMjM3NSwgMC4xMywgMC4xNTI1LCAwLjE2MTI1IiwgXAotICAgICAgICAgICIwLjA4MjUsIDAuMDkzNzUsIDAuMSwgMC4xMTI1LCAwLjEyNSwgMC4xNDEyNSwgMC4xNTYyNSIsIFwKLSAgICAgICAgICAiMC4wNywgMC4wODEyNSwgMC4wOTM3NSwgMC4xMDYyNSwgMC4xMTI1LCAwLjEyODc1LCAwLjE0Mzc1IiwgXAotICAgICAgICAgICIwLjA2Mzc1LCAwLjA3NSwgMC4wODc1LCAwLjEsIDAuMTA2MjUsIDAuMTIyNSwgMC4xMzc1IiwgXAotICAgICAgICAgICIwLjA2Mzc1LCAwLjA2ODc1LCAwLjA4MTI1LCAwLjA5Mzc1LCAwLjEwNjI1LCAwLjEyMjUsIDAuMTM3NSIsIFwKLSAgICAgICAgICAiMC4wNTM3NSwgMC4wNjUsIDAuMDc3NSwgMC4wODM3NSwgMC4wOTYyNSwgMC4xMTI1LCAwLjEyNzUiLCBcCi0gICAgICAgICAgIjAuMDUxMjUsIDAuMDYyNSwgMC4wNzUsIDAuMDgxMjUsIDAuMDkzNzUsIDAuMTEsIDAuMTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogcmVtb3ZhbF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIkQmU04iOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8xX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQocmVtb3ZhbF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDE4NzUsIC0wLjAwNzUsIDAuMDA1LCAwLjAxNzUsIDAuMDMsIDAuMDQsIDAuMDQ4NzUiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAuMDA2MjUsIDAuMDE4NzUsIDAuMDI4NzUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAuMDA2MjUsIDAuMDE2MjUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMDYyNSwgMC4wMSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDYxMjUsIC0wLjA1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMDI1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wNzEyNSwgLTAuMDY2MjUsIC0wLjA0NzUsIC0wLjA0MTI1LCAtMC4wMjg3NSwgLTAuMDEyNSwgLTAuMDAzNzUiLCBcCi0gICAgICAgICAgIi0wLjA4NjI1LCAtMC4wNzUsIC0wLjA2MjUsIC0wLjA1LCAtMC4wMzc1LCAtMC4wMjc1LCAtMC4wMTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTTikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNDcwNDg7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNDcwNDg7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNDY5Nzg7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNDUzLCAwLjAwMDQ1MywgMC4wMDA0NTMsIDAuMDAwNDUyLCAwLjAwMDQ1MiwgMC4wMDA0NTIsIDAuMDAwNDUyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNDUzLCAwLjAwMDQ1NCwgMC4wMDA0NTMsIDAuMDAwNDU0LCAwLjAwMDQ1NCwgMC4wMDA0NTQsIDAuMDAwNDU0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRCYhUk4iOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1JOX0VRXzAgPT0gMSdiMSI7Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4xNTEzODgsIDAuMTYxMTI1LCAwLjE3MzM1NCwgMC4xODU4MTgsIDAuMTk3NzYyLCAwLjIxNTgzMywgMC4yMzA4OCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJlY292ZXJ5X3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUQmUk4iOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1JOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQocmVjb3ZlcnlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDMxMjUsIDAuMDIsIDAuMDAxMjUsIC0wLjAxMTI1LCAtMC4wMjM3NSwgLTAuMDQsIC0wLjA0ODc1IiwgXAotICAgICAgICAgICIwLjAzNjI1LCAwLjAyNSwgMC4wMTI1LCAwLCAtMC4wMTI1LCAtMC4wMjg3NSwgLTAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMDQ4NzUsIDAuMDM3NSwgMC4wMjUsIDAuMDEyNSwgMCwgLTAuMDE2MjUsIC0wLjAzMTI1IiwgXAotICAgICAgICAgICIwLjA2MTI1LCAwLjA1LCAwLjAzNzUsIDAuMDI1LCAwLjAwNjI1LCAtMC4wMSwgLTAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMDczNzUsIDAuMDYyNSwgMC4wNDM3NSwgMC4wMzEyNSwgMC4wMTg3NSwgMC4wMDI1LCAtMC4wMTI1IiwgXAotICAgICAgICAgICIwLjA5LCAwLjA3ODc1LCAwLjA2LCAwLjA0NzUsIDAuMDM1LCAwLjAxODc1LCAwLjAwMzc1IiwgXAotICAgICAgICAgICIwLjEwNSwgMC4wOTM3NSwgMC4wNzUsIDAuMDYyNSwgMC4wNSwgMC4wMzM3NSwgMC4wMTg3NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJlbW92YWxfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRCZSTiI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fUk5fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChyZW1vdmFsX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyNSwgMC4wMzYyNSwgMC4wNDg3NSwgMC4wNjEyNSwgMC4wNzM3NSwgMC4wOSwgMC4wOTg3NSIsIFwKLSAgICAgICAgICAiMC4wMiwgMC4wMzEyNSwgMC4wNDM3NSwgMC4wNTYyNSwgMC4wNjI1LCAwLjA3ODc1LCAwLjA5Mzc1IiwgXAotICAgICAgICAgICIwLjAwNzUsIDAuMDE4NzUsIDAuMDMxMjUsIDAuMDQzNzUsIDAuMDU2MjUsIDAuMDY2MjUsIDAuMDgxMjUiLCBcCi0gICAgICAgICAgIi0wLjAwNSwgMC4wMDYyNSwgMC4wMTg3NSwgMC4wMzEyNSwgMC4wNDM3NSwgMC4wNiwgMC4wNjg3NSIsIFwKLSAgICAgICAgICAiLTAuMDE3NSwgLTAuMDA2MjUsIDAuMDA2MjUsIDAuMDE4NzUsIDAuMDMxMjUsIDAuMDQ3NSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiLTAuMDI3NSwgLTAuMDIyNSwgLTAuMDEsIDAuMDAyNSwgMC4wMTUsIDAuMDMxMjUsIDAuMDQ2MjUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAuMDA2MjUsIDAuMDE2MjUsIDAuMDMxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IERGRlNYMSAqCi0gKiAtLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKERGRlNYMSkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjM1OTQ2MzsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBmZiAoTjM1LFFCSU5UKSB7Ci0gICAgbmV4dF9zdGF0ZSA6ICJEIjsKLSAgICBjbG9ja2VkX29uIDogIkNLIjsKLSAgICBwcmVzZXQgOiAiKCFTTikiOwotICB9Ci0gIHBpbihDSykgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjI3OTE3OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYyNzc3NTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2Mjc5MTc7Ci0gICAgY2xvY2sgOiB0cnVlOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjQ1MywgMC4wMDI0MjYsIDAuMDAyNDEzLCAwLjAwMjQxNiwgMC4wMDI0MzEsIDAuMDAyNDQ3LCAwLjAwMjQ3MSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNzM0NSwgMC4wMDczMjMsIDAuMDA3MzE1LCAwLjAwNzMxOCwgMC4wMDczMjYsIDAuMDA3MzQ5LCAwLjAwNzM2NiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQmU04iOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4xNzc2MjYsIDAuMTg3ODgsIDAuMjAwNjc2LCAwLjIxMjU2NywgMC4yMjMxNDMsIDAuMjM3NzI3LCAwLjI0OTE0NCIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMTIwOTM1LCAwLjEzMDgyNSwgMC4xNDMxNiwgMC4xNTQ1NjcsIDAuMTY0Mjg1LCAwLjE3NzYxMywgMC4xODc4MjYiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEQpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYzOTAxMjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MzczNjc7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjM5MDEyOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjg4MywgMC4wMDI4NjIsIDAuMDAyODUsIDAuMDAyODQzLCAwLjAwMjg0MSwgMC4wMDI4NDQsIDAuMDAyODQ1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzMjY1LCAwLjAwMzI1MiwgMC4wMDMyNDUsIDAuMDAzMjQsIDAuMDAzMjM4LCAwLjAwMzI0MiwgMC4wMDMyNDUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiU04iOwotICAgICAgc2RmX2NvbmQgOiAiU04gPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDE4NzUsIC0wLjAwNzUsIC0wLjAwMTI1LCAwLjAwNSwgMC4wMDUsIDAuMDE1LCAwLjAxNzUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAsIDAuMDAzNzUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDEyNSwgLTAuMDAyNSwgMCIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMjEyNSwgLTAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDY1LCAtMC4wNiwgLTAuMDQ3NSwgLTAuMDQxMjUsIC0wLjA0MTI1LCAtMC4wMzEyNSwgLTAuMDI4NzUiLCBcCi0gICAgICAgICAgIi0wLjA3Mzc1LCAtMC4wNjg3NSwgLTAuMDU2MjUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDQsIC0wLjAzMTI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTg3NSwgMC4wMywgMC4wNDI1LCAwLjA0ODc1LCAwLjA2MTI1LCAwLjA3MTI1LCAwLjA4IiwgXAotICAgICAgICAgICIwLjAwNzUsIDAuMDE4NzUsIDAuMDMxMjUsIDAuMDQzNzUsIDAuMDUsIDAuMDY2MjUsIDAuMDc1IiwgXAotICAgICAgICAgICIwLjAwMTI1LCAwLjAxMjUsIDAuMDI1LCAwLjAzMTI1LCAwLjA0Mzc1LCAwLjA1Mzc1LCAwLjA2MjUiLCBcCi0gICAgICAgICAgIi0wLjAwNSwgMC4wMDYyNSwgMC4wMTg3NSwgMC4wMjUsIDAuMDM3NSwgMC4wNDc1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICItMC4wMTEyNSwgMCwgMC4wMTI1LCAwLjAxODc1LCAwLjAzMTI1LCAwLjA0MTI1LCAwLjA1IiwgXAotICAgICAgICAgICItMC4wMjEyNSwgLTAuMDEsIDAuMDAyNSwgMC4wMTUsIDAuMDIxMjUsIDAuMDM3NSwgMC4wNDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLjAwNjI1LCAwLjAxODc1LCAwLjAyODc1LCAwLjAzNzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlNOIjsKLSAgICAgIHNkZl9jb25kIDogIlNOID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1NjI1LCAwLjA0NSwgMC4wMzI1LCAwLjAyNjI1LCAwLjAyLCAwLjAxLCAwLjAwMTI1IiwgXAotICAgICAgICAgICIwLjA2MTI1LCAwLjA1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDI1LCAwLjAxNSwgMC4wMTI1IiwgXAotICAgICAgICAgICIwLjA3Mzc1LCAwLjA2MjUsIDAuMDUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMjc1LCAwLjAxODc1IiwgXAotICAgICAgICAgICIwLjA4LCAwLjA3NSwgMC4wNjI1LCAwLjA1LCAwLjA0Mzc1LCAwLjA0LCAwLjAzMTI1IiwgXAotICAgICAgICAgICIwLjA5MjUsIDAuMDgxMjUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNDYyNSwgMC4wMzc1IiwgXAotICAgICAgICAgICIwLjEwODc1LCAwLjA5NzUsIDAuMDg1LCAwLjA3ODc1LCAwLjA2NjI1LCAwLjA2MjUsIDAuMDUzNzUiLCBcCi0gICAgICAgICAgIjAuMTE3NSwgMC4xMDYyNSwgMC4wOTM3NSwgMC4wODc1LCAwLjA4MTI1LCAwLjA3MTI1LCAwLjA2MjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTYyNSwgMC4wNDUsIDAuMDMyNSwgMC4wMiwgMC4wMTM3NSwgLTAuMDAyNSwgLTAuMDE3NSIsIFwKLSAgICAgICAgICAiMC4wNjc1LCAwLjA1NjI1LCAwLjA0Mzc1LCAwLjAzMTI1LCAwLjAxODc1LCAwLjAwMjUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICIwLjA3Mzc1LCAwLjA2MjUsIDAuMDUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMTUsIDAiLCBcCi0gICAgICAgICAgIjAuMDg2MjUsIDAuMDc1LCAwLjA2MjUsIDAuMDUsIDAuMDM3NSwgMC4wMjEyNSwgMC4wMTI1IiwgXAotICAgICAgICAgICIwLjA5MjUsIDAuMDgxMjUsIDAuMDY4NzUsIDAuMDU2MjUsIDAuMDQzNzUsIDAuMDMzNzUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMTA4NzUsIDAuMDk3NSwgMC4wNzg3NSwgMC4wNjYyNSwgMC4wNiwgMC4wNDM3NSwgMC4wMjg3NSIsIFwKLSAgICAgICAgICAiMC4xMTc1LCAwLjEwNjI1LCAwLjA5Mzc1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNTI1LCAwLjAzNzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFEpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4yNTMzNjk7Ci0gICAgZnVuY3Rpb24gOiAiTjM1IjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBub25fdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJpc2luZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNDM1NTIsIDAuMTY4MjMyLCAwLjMwNzI2NCwgMC40MzAxNTYsIDAuNTkzNTk4LCAwLjkyMTE4OCwgMS4xMjU3MSIsIFwKLSAgICAgICAgICAiMC4xNTM3MywgMC4xNzg0MSwgMC4zMTc5MjIsIDAuNDQwNTAxLCAwLjYwNDA4OSwgMC45MzEyODEsIDEuMTM1OTIiLCBcCi0gICAgICAgICAgIjAuMTY2NDI5LCAwLjE5MTExNSwgMC4zMzA0MjgsIDAuNDUzMTY5LCAwLjYxNjgsIDAuOTQ0MDksIDEuMTQ4NjYiLCBcCi0gICAgICAgICAgIjAuMTc4MzIsIDAuMjAzMDA1LCAwLjM0MjI4OSwgMC40NjUwNjQsIDAuNjI4Njk2LCAwLjk1NTk4MSwgMS4xNjA1NyIsIFwKLSAgICAgICAgICAiMC4xODg2NjksIDAuMjEzMzUsIDAuMzUyNzc5LCAwLjQ3NTQzMSwgMC42MzkxMzcsIDAuOTY2MzIxLCAxLjE3MDQ4IiwgXAotICAgICAgICAgICIwLjIwMzYzNiwgMC4yMjgzMTMsIDAuMzY3MzUsIDAuNDkwMzgzLCAwLjY1NDAxMywgMC45ODA4MjMsIDEuMTg1OTMiLCBcCi0gICAgICAgICAgIjAuMjE0NzI1LCAwLjIzOTM4LCAwLjM3ODgwMywgMC41MDEyNTMsIDAuNjY1MTA3LCAwLjk5MjM3NCwgMS4xOTcwNyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTQxNzQsIDAuMTQzMjk1LCAwLjQyNzgwNiwgMC42ODAyNjYsIDEuMDE3MjYsIDEuNjkzMzUsIDIuMTE0OTkiLCBcCi0gICAgICAgICAgIjAuMDk0NTg5LCAwLjE0MzM1MSwgMC40Mjc2MTcsIDAuNjgxNTIxLCAxLjAxODYxLCAxLjY5MzI3LCAyLjExNTAxIiwgXAotICAgICAgICAgICIwLjA5NDQ5NSwgMC4xNDM0MzYsIDAuNDI4NzQ5LCAwLjY4MTUwNCwgMS4wMTg2MSwgMS42OTMzMywgMi4xMTUwMyIsIFwKLSAgICAgICAgICAiMC4wOTQ0OTgsIDAuMTQzNDE4LCAwLjQyODczMywgMC42ODE1MDYsIDEuMDE4NiwgMS42OTMzMiwgMi4xMTUwNCIsIFwKLSAgICAgICAgICAiMC4wOTQyMDMsIDAuMTQzMzI5LCAwLjQyODc5NywgMC42ODE1MTMsIDEuMDE4NjEsIDEuNjkzMzEsIDIuMTE0MjQiLCBcCi0gICAgICAgICAgIjAuMDk0MTQ1LCAwLjE0MzUyLCAwLjQyNzU5NCwgMC42ODE0ODgsIDEuMDE4NiwgMS42OTA0LCAyLjExNTA4IiwgXAotICAgICAgICAgICIwLjA5NDA1MiwgMC4xNDM3ODEsIDAuNDI4NzgyLCAwLjY4MDQ1OSwgMS4wMTg1OCwgMS42OTMzLCAyLjExNTEzIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE2NDg3MywgMC4xODk3MzYsIDAuMzMwMDI2LCAwLjQ1MzY2OCwgMC42MTg1NDksIDAuOTQ4MDg0LCAxLjE1NDQiLCBcCi0gICAgICAgICAgIjAuMTc1MTU2LCAwLjIwMDA2LCAwLjM0MDUwMSwgMC40NjM5MjUsIDAuNjI4ODI1LCAwLjk1ODc4NywgMS4xNjQ2NCIsIFwKLSAgICAgICAgICAiMC4xODc5MjMsIDAuMjEyNzk5LCAwLjM1MzA3NSwgMC40NzY3MjYsIDAuNjQxNiwgMC45NzExNzksIDEuMTc3NDgiLCBcCi0gICAgICAgICAgIjAuMTk5ODMxLCAwLjIyNDcyNywgMC4zNjUwNDUsIDAuNDg4NjA0LCAwLjY1MzQ5MywgMC45ODM0NDEsIDEuMTg5MzQiLCBcCi0gICAgICAgICAgIjAuMjEwNDA3LCAwLjIzNTM0NywgMC4zNzU1NSwgMC40OTkxODMsIDAuNjY0MDcxLCAwLjk5NDAyMSwgMS4xOTk5MSIsIFwKLSAgICAgICAgICAiMC4yMjUwMTEsIDAuMjQ5OTIsIDAuMzkwMjgzLCAwLjUxMzc4LCAwLjY3ODY4MSwgMS4wMDg2MywgMS4yMTQ1NCIsIFwKLSAgICAgICAgICAiMC4yMzYzOTIsIDAuMjYxMzE0LCAwLjQwMTUzMywgMC41MjUxNTEsIDAuNjkwNDEzLCAxLjAxOTg1LCAxLjIyNjEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDkyNzAyLCAwLjE0MTE5NiwgMC40MjI2NTEsIDAuNjcwOTQxLCAwLjk5OTk2NywgMS42NjQzNCwgMi4wNzc2MyIsIFwKLSAgICAgICAgICAiMC4wOTI5MSwgMC4xNDE1NTYsIDAuNDIyODY0LCAwLjY3MDk1OCwgMS4wMDI5LCAxLjY2OTY0LCAyLjA4MzA5IiwgXAotICAgICAgICAgICIwLjA5MjcxNiwgMC4xNDIxNjQsIDAuNDIyNjUsIDAuNjcwODc2LCAxLjAwMDg0LCAxLjY2NzU0LCAyLjA3NjQ4IiwgXAotICAgICAgICAgICIwLjA5MzE0LCAwLjE0MjE1OCwgMC40MjI2NjMsIDAuNjcwOTgyLCAxLjAwMjYxLCAxLjY2OTUyLCAyLjA4MTM5IiwgXAotICAgICAgICAgICIwLjA5MzYxNiwgMC4xNDIxNTMsIDAuNDIyNjU4LCAwLjY3MDk4MiwgMS4wMDI2NCwgMS42Njk1MiwgMi4wODE5NyIsIFwKLSAgICAgICAgICAiMC4wOTM1NDcsIDAuMTQxNTYyLCAwLjQyMjYzOSwgMC42NzA5NTksIDEuMDAyMzcsIDEuNjY5NTYsIDIuMDg0NDUiLCBcCi0gICAgICAgICAgIjAuMDkzMDA1LCAwLjE0MjE1NCwgMC40MjE5MTQsIDAuNjcwMDksIDEuMDAyNTIsIDEuNjY5MjYsIDIuMDg1MTMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiU04iOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHByZXNldDsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTM5NzgyLCAwLjE2NDM4NCwgMC4zMDM2MjksIDAuNDI2NTc0LCAwLjU5MDE1OSwgMC45MTcxNjQsIDEuMTIyMjQiLCBcCi0gICAgICAgICAgIjAuMTQ5MTQzLCAwLjE3Mzc0NSwgMC4zMTI5MDksIDAuNDM1OTM3LCAwLjU5OTUxOCwgMC45MjY0MDEsIDEuMTMxNTkiLCBcCi0gICAgICAgICAgIjAuMTYxMDk0LCAwLjE4NTc1NiwgMC4zMjUzMiwgMC40NDc4MjQsIDAuNjExNTI2LCAwLjkzODk3NiwgMS4xNDM1NCIsIFwKLSAgICAgICAgICAiMC4xNzMxMjMsIDAuMTk3NzA5LCAwLjMzNzM1NCwgMC40NTk5NTUsIDAuNjIzNTY1LCAwLjk1MTAwMiwgMS4xNTU1OCIsIFwKLSAgICAgICAgICAiMC4xODQ1MjQsIDAuMjA5MTkzLCAwLjM0ODc1NywgMC40NzEyMjIsIDAuNjM0OTU4LCAwLjk2MjQxNiwgMS4xNjY5NyIsIFwKLSAgICAgICAgICAiMC4yMDEzMDIsIDAuMjI1OTQ5LCAwLjM2NTI0NiwgMC40ODgxMDIsIDAuNjUxNzE1LCAwLjk3ODgxOCwgMS4xODM3OSIsIFwKLSAgICAgICAgICAiMC4yMTQwNTIsIDAuMjM4NjU2LCAwLjM3ODExMiwgMC41MDA4MzgsIDAuNjY0MDM1LCAwLjk5MTg5MywgMS4xOTU0NCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTM5MTksIDAuMTQzNDIzLCAwLjQyODM0OSwgMC42ODE0NDgsIDEuMDE4NjEsIDEuNjkzNDEsIDIuMTE1MyIsIFwKLSAgICAgICAgICAiMC4wOTQ0NDQsIDAuMTQzNjMzLCAwLjQyNzg2LCAwLjY4MTQ1MywgMS4wMTg2MiwgMS42OTM0NSwgMi4xMTEyMiIsIFwKLSAgICAgICAgICAiMC4wOTM3LCAwLjE0MzQ1MSwgMC40Mjc4NTIsIDAuNjgxNDYxLCAxLjAxODYsIDEuNjkzNTUsIDIuMTE1MzMiLCBcCi0gICAgICAgICAgIjAuMDk0MzU3LCAwLjE0MzU2OSwgMC40Mjg4MSwgMC42ODEzOTksIDEuMDE4NiwgMS42OTM1NCwgMi4xMTUxNyIsIFwKLSAgICAgICAgICAiMC4wOTQzODcsIDAuMTQzNiwgMC40Mjg3NzMsIDAuNjgxNDU3LCAxLjAxODYsIDEuNjkzNDksIDIuMTE1MjgiLCBcCi0gICAgICAgICAgIjAuMDk0NDU4LCAwLjE0MzU2NCwgMC40Mjg3OTEsIDAuNjgxMzU5LCAxLjAxODY4LCAxLjY5MzM4LCAyLjExMTMzIiwgXAotICAgICAgICAgICIwLjA5NDU0MiwgMC4xNDM2OTUsIDAuNDI4ODEzLCAwLjY4MTQyMiwgMS4wMTg1NywgMS42OTM0NiwgMi4xMTUyNiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQyNSwgMC4wMDQyNTUsIDAuMDA0MjYxLCAwLjAwNDI2MywgMC4wMDQyNjMsIDAuMDA0MjY0LCAwLjAwNDI2MyIsIFwKLSAgICAgICAgICAiMC4wMDQyMzUsIDAuMDA0MjQsIDAuMDA0MjQ3LCAwLjAwNDI0OCwgMC4wMDQyNDksIDAuMDA0MjQ5LCAwLjAwNDI0OSIsIFwKLSAgICAgICAgICAiMC4wMDQyMjcsIDAuMDA0MjMyLCAwLjAwNDIzOSwgMC4wMDQyNCwgMC4wMDQyNDEsIDAuMDA0MjQxLCAwLjAwNDI0MSIsIFwKLSAgICAgICAgICAiMC4wMDQyMjcsIDAuMDA0MjMyLCAwLjAwNDIzOSwgMC4wMDQyMzksIDAuMDA0MjQxLCAwLjAwNDI0MiwgMC4wMDQyNDEiLCBcCi0gICAgICAgICAgIjAuMDA0MjM3LCAwLjAwNDI0MiwgMC4wMDQyNDksIDAuMDA0MjUsIDAuMDA0MjUxLCAwLjAwNDI1MSwgMC4wMDQyNTEiLCBcCi0gICAgICAgICAgIjAuMDA0MjQ0LCAwLjAwNDI1LCAwLjAwNDI1NiwgMC4wMDQyNTcsIDAuMDA0MjU3LCAwLjAwNDI1OSwgMC4wMDQyNTkiLCBcCi0gICAgICAgICAgIjAuMDA0MjU4LCAwLjAwNDI2NCwgMC4wMDQyNywgMC4wMDQyNzIsIDAuMDA0MjcyLCAwLjAwNDI3MywgMC4wMDQyNzMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDM3NDMsIDAuMDAzNzQ5LCAwLjAwMzc1NywgMC4wMDM3NTcsIDAuMDAzNzYxLCAwLjAwMzc2LCAwLjAwMzc1OSIsIFwKLSAgICAgICAgICAiMC4wMDM3MjgsIDAuMDAzNzM0LCAwLjAwMzc0MiwgMC4wMDM3NDQsIDAuMDAzNzQ1LCAwLjAwMzc0NiwgMC4wMDM3NDYiLCBcCi0gICAgICAgICAgIjAuMDAzNzI3LCAwLjAwMzczMywgMC4wMDM3NDEsIDAuMDAzNzQzLCAwLjAwMzc0MSwgMC4wMDM3NDYsIDAuMDAzNzQ1IiwgXAotICAgICAgICAgICIwLjAwMzczNCwgMC4wMDM3NCwgMC4wMDM3NDgsIDAuMDAzNzQ5LCAwLjAwMzc0OSwgMC4wMDM3NTEsIDAuMDAzNzUzIiwgXAotICAgICAgICAgICIwLjAwMzc0OSwgMC4wMDM3NTUsIDAuMDAzNzY2LCAwLjAwMzc2NSwgMC4wMDM3NjYsIDAuMDAzNzY1LCAwLjAwMzc2NyIsIFwKLSAgICAgICAgICAiMC4wMDM3NjMsIDAuMDAzNzY5LCAwLjAwMzc3OCwgMC4wMDM3OCwgMC4wMDM3ODEsIDAuMDAzNzgsIDAuMDAzNzgyIiwgXAotICAgICAgICAgICIwLjAwMzc4OCwgMC4wMDM3OTQsIDAuMDAzODAyLCAwLjAwMzgwNSwgMC4wMDM4MDQsIDAuMDAzODAzLCAwLjAwMzgwNSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQ5MTIsIDAuMDA0OTE3LCAwLjAwNDkyMywgMC4wMDQ5MjQsIDAuMDA0OTI1LCAwLjAwNDkyNiwgMC4wMDQ5MjUiLCBcCi0gICAgICAgICAgIjAuMDA0ODk5LCAwLjAwNDkwNCwgMC4wMDQ5MTEsIDAuMDA0OTEyLCAwLjAwNDkxMiwgMC4wMDQ5MTEsIDAuMDA0OTEzIiwgXAotICAgICAgICAgICIwLjAwNDg5MywgMC4wMDQ4OTgsIDAuMDA0OTA1LCAwLjAwNDkwNiwgMC4wMDQ5MDYsIDAuMDA0OTA3LCAwLjAwNDkwNyIsIFwKLSAgICAgICAgICAiMC4wMDQ4OTIsIDAuMDA0ODk3LCAwLjAwNDkwMywgMC4wMDQ5MDUsIDAuMDA0OTA1LCAwLjAwNDkwNiwgMC4wMDQ5MDkiLCBcCi0gICAgICAgICAgIjAuMDA0ODkxLCAwLjAwNDg5NiwgMC4wMDQ5MDMsIDAuMDA0OTA0LCAwLjAwNDkwNCwgMC4wMDQ5MDUsIDAuMDA0OTA2IiwgXAotICAgICAgICAgICIwLjAwNDg5MiwgMC4wMDQ4OTcsIDAuMDA0OTA0LCAwLjAwNDkwNSwgMC4wMDQ5MDYsIDAuMDA0OTA3LCAwLjAwNDkwNyIsIFwKLSAgICAgICAgICAiMC4wMDQ5MDIsIDAuMDA0OTA3LCAwLjAwNDkxNCwgMC4wMDQ5MTYsIDAuMDA0OTE2LCAwLjAwNDkxNywgMC4wMDQ5MTciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoc2NhbGFyKSB7Ci0gICAgICAgIHZhbHVlcygiMCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUU4pICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4yNTE1MTk7Ci0gICAgZnVuY3Rpb24gOiAiUUJJTlQiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5vbl91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcmlzaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE3NzYyNiwgMC4yMDIxMjIsIDAuMzQxMTAyLCAwLjQ2Mzc2MSwgMC42MjczODEsIDAuOTU0MTY4LCAxLjE1ODg4IiwgXAotICAgICAgICAgICIwLjE4Nzg4LCAwLjIxMjM4NywgMC4zNTEzOTcsIDAuNDc0MDIzLCAwLjYzNzYxOSwgMC45NjQ3ODUsIDEuMTY5MDciLCBcCi0gICAgICAgICAgIjAuMjAwNjc2LCAwLjIyNTE4MSwgMC4zNjQxNTMsIDAuNDg2ODA5LCAwLjY1MDQyNywgMC45NzcyMjcsIDEuMTgxOTkiLCBcCi0gICAgICAgICAgIjAuMjEyNTY3LCAwLjIzNzA3OCwgMC4zNzYwNDIsIDAuNDk4NzA3LCAwLjY2MjMyMiwgMC45ODk0NDksIDEuMTkzODIiLCBcCi0gICAgICAgICAgIjAuMjIzMTQzLCAwLjI0NzY2MSwgMC4zODY2MjQsIDAuNTA5Mjg2LCAwLjY3MjkwMSwgMS4wMDAwMywgMS4yMDQzOCIsIFwKLSAgICAgICAgICAiMC4yMzc3MjcsIDAuMjYyMjM1LCAwLjQwMTIwNywgMC41MjM4NzcsIDAuNjg3NDc1LCAxLjAxNDYyLCAxLjIxODkyIiwgXAotICAgICAgICAgICIwLjI0OTE0NCwgMC4yNzM2NjQsIDAuNDEyNjMyLCAwLjUzNTI2LCAwLjY5ODk4NiwgMS4wMjU4NywgMS4yMzA1MSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTA5NzYsIDAuMTQxMTYyLCAwLjQyNzc1MywgMC42ODAwNzYsIDEuMDE0OTUsIDEuNjg4MTEsIDIuMTA3NzYiLCBcCi0gICAgICAgICAgIjAuMDkxMDk5LCAwLjE0MTI5OSwgMC40MjgwMDcsIDAuNjc5OTI1LCAxLjAxNjgsIDEuNjkyNzQsIDIuMTEzMDgiLCBcCi0gICAgICAgICAgIjAuMDkwOTk4LCAwLjE0MTQ5MywgMC40Mjc3NTQsIDAuNjgwMDMzLCAxLjAxNTExLCAxLjY5MTUxLCAyLjEwNzU1IiwgXAotICAgICAgICAgICIwLjA5MTA2MywgMC4xNDE0ODksIDAuNDI3ODUsIDAuNjc5OTgyLCAxLjAxNjI0LCAxLjY5MjY3LCAyLjExMTEyIiwgXAotICAgICAgICAgICIwLjA5MTA3MSwgMC4xNDE0OTUsIDAuNDI3NzU3LCAwLjY4MDAwMywgMS4wMTYyNiwgMS42OTI2NywgMi4xMTExOSIsIFwKLSAgICAgICAgICAiMC4wOTA5NywgMC4xNDEyOTksIDAuNDI3OTk4LCAwLjY3OTg1MSwgMS4wMTYzNiwgMS42OTI3LCAyLjExMzkiLCBcCi0gICAgICAgICAgIjAuMDkwOTg0LCAwLjE0MTQ5MiwgMC40MjczNjgsIDAuNjc5MTA1LCAxLjAxNjIxLCAxLjY5MjYxLCAyLjExNDI5Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE1ODc0MiwgMC4xODM0NjgsIDAuMzIzNTQ4LCAwLjQ0NzMwNiwgMC42MTIxNDEsIDAuOTQxODQ0LCAxLjE0NzkyIiwgXAotICAgICAgICAgICIwLjE2ODkxNSwgMC4xOTM2MzYsIDAuMzMzODE4LCAwLjQ1NzQzMSwgMC42MjIyOCwgMC45NTE5NzgsIDEuMTU4MSIsIFwKLSAgICAgICAgICAiMC4xODE2MDksIDAuMjA2MzM0LCAwLjM0NjQ3NywgMC40NzAxMiwgMC42MzQ5ODIsIDAuOTY0NzIxLCAxLjE3MDgxIiwgXAotICAgICAgICAgICIwLjE5MzUwMiwgMC4yMTgyMjcsIDAuMzU4MzY0LCAwLjQ4MjAxNCwgMC42NDY4NzYsIDAuOTc2NjEzLCAxLjE4MjcxIiwgXAotICAgICAgICAgICIwLjIwMzg2MiwgMC4yMjg1ODcsIDAuMzY4NzQ5LCAwLjQ5MjM3OCwgMC42NTcyNjksIDAuOTg2OTY4LCAxLjE5Mjg2IiwgXAotICAgICAgICAgICIwLjIxODgxMywgMC4yNDM1MzksIDAuMzgzNjgxLCAwLjUwNzMyNywgMC42NzIxODcsIDEuMDAxOTMsIDEuMjA4MDQiLCBcCi0gICAgICAgICAgIjAuMjI5OTEyLCAwLjI1NDY0NiwgMC4zOTQ3OTQsIDAuNTE4NDMsIDAuNjgzMjg4LCAxLjAxMzAyLCAxLjIxOTE2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4OTc2OCwgMC4xMzkyMjksIDAuNDIwOTg0LCAwLjY2OTcyNSwgMS4wMDE3MywgMS42Njc1OCwgMi4wODI5IiwgXAotICAgICAgICAgICIwLjA4OTc1OSwgMC4xMzkyMjksIDAuNDIwNzk5LCAwLjY3MDgwNCwgMS4wMDI5NiwgMS42NjczOCwgMi4wODI5NSIsIFwKLSAgICAgICAgICAiMC4wODk3MjksIDAuMTM5MjMzLCAwLjQyMTU1NywgMC42NzA3NjQsIDEuMDAyOTcsIDEuNjY3NTUsIDIuMDgzIiwgXAotICAgICAgICAgICIwLjA4OTcyNCwgMC4xMzkyMzIsIDAuNDIxNTMsIDAuNjcwNzY3LCAxLjAwMjk3LCAxLjY2NzU1LCAyLjA4MzAzIiwgXAotICAgICAgICAgICIwLjA4OTc2NiwgMC4xMzkyMjgsIDAuNDIxNjQxLCAwLjY3MDc4NSwgMS4wMDMwOCwgMS42Njc1MywgMi4wODIwNyIsIFwKLSAgICAgICAgICAiMC4wODk3NjksIDAuMTM5MTA0LCAwLjQyMDIwOSwgMC42NzA3NjIsIDEuMDAyOTgsIDEuNjY0NzMsIDIuMDgzMTUiLCBcCi0gICAgICAgICAgIjAuMDg5NzY0LCAwLjEzOTMyNCwgMC40MjE2MTQsIDAuNjY5OTI3LCAxLjAwMjk1LCAxLjY2NzU1LCAyLjA4MzI0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiBjbGVhcjsKLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTU1MDk5LCAwLjE3OTgyMSwgMC4zMTk5MTgsIDAuNDQzNjIxLCAwLjYwODQ2NiwgMC45Mzc5NzUsIDEuMTQ0MzkiLCBcCi0gICAgICAgICAgIjAuMTY0NDYyLCAwLjE4OTE4NCwgMC4zMjkyNzUsIDAuNDUyOTg1LCAwLjYxNzgyOSwgMC45NDczNCwgMS4xNTM3NSIsIFwKLSAgICAgICAgICAiMC4xNzY0MjQsIDAuMjAxMTQ3LCAwLjM0MTMzNywgMC40NjQ5MjksIDAuNjI5ODEsIDAuOTU5NjA3LCAxLjE2NTcxIiwgXAotICAgICAgICAgICIwLjE4ODQ1NCwgMC4yMTMxODMsIDAuMzUzMzY3LCAwLjQ3Njk4NSwgMC42NDE4NDIsIDAuOTcxNjM1LCAxLjE3Nzc0IiwgXAotICAgICAgICAgICIwLjE5OTg0OSwgMC4yMjQ1NzIsIDAuMzY0NzYzLCAwLjQ4ODM0NiwgMC42NTMyMzQsIDAuOTgzMDM3LCAxLjE4OTEzIiwgXAotICAgICAgICAgICIwLjIxNjYxNiwgMC4yNDEzNTEsIDAuMzgxNTAzLCAwLjUwNTE0MywgMC42Njk5OTYsIDAuOTk5NjYsIDEuMjA1OTMiLCBcCi0gICAgICAgICAgIjAuMjI5MjY3LCAwLjI1Mzk4NywgMC4zOTQxMzMsIDAuNTE3NzcyLCAwLjY4MjUzMSwgMS4wMTI0MiwgMS4yMTgxMyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODk3OTcsIDAuMTM5MjY3LCAwLjQyMTM4OCwgMC42NzA4NDgsIDEuMDAzMDksIDEuNjY3OTEsIDIuMDgzNjEiLCBcCi0gICAgICAgICAgIjAuMDg5NzkxLCAwLjEzOTMzMSwgMC40MjA4NTYsIDAuNjcwODUxLCAxLjAwMzEsIDEuNjY3OTYsIDIuMDc5MjYiLCBcCi0gICAgICAgICAgIjAuMDg5ODAyLCAwLjEzOTI3LCAwLjQyMDg0NSwgMC42NzA4ODUsIDEuMDAzMDgsIDEuNjY4MTQsIDIuMDgzNjgiLCBcCi0gICAgICAgICAgIjAuMDg5Nzg5LCAwLjEzOTMxMiwgMC40MjE2NjgsIDAuNjcwODMxLCAxLjAwMzA5LCAxLjY2ODExLCAyLjA4MzM5IiwgXAotICAgICAgICAgICIwLjA4OTc4OCwgMC4xMzkzMzMsIDAuNDIxNiwgMC42NzA4NzQsIDEuMDAzMTcsIDEuNjY4MDQsIDIuMDgzNjEiLCBcCi0gICAgICAgICAgIjAuMDg5NzgyLCAwLjEzOTMyMywgMC40MjE2MjksIDAuNjcwNzY3LCAxLjAwMzI1LCAxLjY2Nzg0LCAyLjA3OTUyIiwgXAotICAgICAgICAgICIwLjA4OTgxMywgMC4xMzkzMzgsIDAuNDIxNjY4LCAwLjY3MDc4LCAxLjAwMjk2LCAxLjY2Nzk5LCAyLjA4MzU1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzc0MywgMC4wMDM3NDksIDAuMDAzNzU3LCAwLjAwMzc1NywgMC4wMDM3NjEsIDAuMDAzNzYsIDAuMDAzNzU5IiwgXAotICAgICAgICAgICIwLjAwMzcyOCwgMC4wMDM3MzQsIDAuMDAzNzQyLCAwLjAwMzc0NCwgMC4wMDM3NDUsIDAuMDAzNzQ2LCAwLjAwMzc0NiIsIFwKLSAgICAgICAgICAiMC4wMDM3MjcsIDAuMDAzNzMzLCAwLjAwMzc0MSwgMC4wMDM3NDMsIDAuMDAzNzQxLCAwLjAwMzc0NiwgMC4wMDM3NDUiLCBcCi0gICAgICAgICAgIjAuMDAzNzM0LCAwLjAwMzc0LCAwLjAwMzc0OCwgMC4wMDM3NDksIDAuMDAzNzQ5LCAwLjAwMzc1MSwgMC4wMDM3NTMiLCBcCi0gICAgICAgICAgIjAuMDAzNzQ5LCAwLjAwMzc1NSwgMC4wMDM3NjYsIDAuMDAzNzY1LCAwLjAwMzc2NiwgMC4wMDM3NjUsIDAuMDAzNzY3IiwgXAotICAgICAgICAgICIwLjAwMzc2MywgMC4wMDM3NjksIDAuMDAzNzc4LCAwLjAwMzc4LCAwLjAwMzc4MSwgMC4wMDM3OCwgMC4wMDM3ODIiLCBcCi0gICAgICAgICAgIjAuMDAzNzg4LCAwLjAwMzc5NCwgMC4wMDM4MDIsIDAuMDAzODA1LCAwLjAwMzgwNCwgMC4wMDM4MDMsIDAuMDAzODA1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0MjUsIDAuMDA0MjU1LCAwLjAwNDI2MSwgMC4wMDQyNjMsIDAuMDA0MjYzLCAwLjAwNDI2NCwgMC4wMDQyNjMiLCBcCi0gICAgICAgICAgIjAuMDA0MjM1LCAwLjAwNDI0LCAwLjAwNDI0NywgMC4wMDQyNDgsIDAuMDA0MjQ5LCAwLjAwNDI0OSwgMC4wMDQyNDkiLCBcCi0gICAgICAgICAgIjAuMDA0MjI3LCAwLjAwNDIzMiwgMC4wMDQyMzksIDAuMDA0MjQsIDAuMDA0MjQxLCAwLjAwNDI0MSwgMC4wMDQyNDEiLCBcCi0gICAgICAgICAgIjAuMDA0MjI3LCAwLjAwNDIzMiwgMC4wMDQyMzksIDAuMDA0MjM5LCAwLjAwNDI0MSwgMC4wMDQyNDIsIDAuMDA0MjQxIiwgXAotICAgICAgICAgICIwLjAwNDIzNywgMC4wMDQyNDIsIDAuMDA0MjQ5LCAwLjAwNDI1LCAwLjAwNDI1MSwgMC4wMDQyNTEsIDAuMDA0MjUxIiwgXAotICAgICAgICAgICIwLjAwNDI0NCwgMC4wMDQyNSwgMC4wMDQyNTYsIDAuMDA0MjU3LCAwLjAwNDI1NywgMC4wMDQyNTksIDAuMDA0MjU5IiwgXAotICAgICAgICAgICIwLjAwNDI1OCwgMC4wMDQyNjQsIDAuMDA0MjcsIDAuMDA0MjcyLCAwLjAwNDI3MiwgMC4wMDQyNzMsIDAuMDA0MjczIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiU04iOwotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDkxMiwgMC4wMDQ5MTcsIDAuMDA0OTIzLCAwLjAwNDkyNCwgMC4wMDQ5MjUsIDAuMDA0OTI2LCAwLjAwNDkyNSIsIFwKLSAgICAgICAgICAiMC4wMDQ4OTksIDAuMDA0OTA0LCAwLjAwNDkxMSwgMC4wMDQ5MTIsIDAuMDA0OTEyLCAwLjAwNDkxMSwgMC4wMDQ5MTMiLCBcCi0gICAgICAgICAgIjAuMDA0ODkzLCAwLjAwNDg5OCwgMC4wMDQ5MDUsIDAuMDA0OTA2LCAwLjAwNDkwNiwgMC4wMDQ5MDcsIDAuMDA0OTA3IiwgXAotICAgICAgICAgICIwLjAwNDg5MiwgMC4wMDQ4OTcsIDAuMDA0OTAzLCAwLjAwNDkwNSwgMC4wMDQ5MDUsIDAuMDA0OTA2LCAwLjAwNDkwOSIsIFwKLSAgICAgICAgICAiMC4wMDQ4OTEsIDAuMDA0ODk2LCAwLjAwNDkwMywgMC4wMDQ5MDQsIDAuMDA0OTA0LCAwLjAwNDkwNSwgMC4wMDQ5MDYiLCBcCi0gICAgICAgICAgIjAuMDA0ODkyLCAwLjAwNDg5NywgMC4wMDQ5MDQsIDAuMDA0OTA1LCAwLjAwNDkwNiwgMC4wMDQ5MDcsIDAuMDA0OTA3IiwgXAotICAgICAgICAgICIwLjAwNDkwMiwgMC4wMDQ5MDcsIDAuMDA0OTE0LCAwLjAwNDkxNiwgMC4wMDQ5MTYsIDAuMDA0OTE3LCAwLjAwNDkxNyIpOwotICAgICAgfQotICAgICAgcmlzZV9wb3dlcihzY2FsYXIpIHsKLSAgICAgICAgdmFsdWVzKCIwIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTTikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxMDIxNTQ7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwOTMyNDIyOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTAyMTU0OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDQ1MywgMC4wMDA0NTMsIDAuMDAwNDUyLCAwLjAwMDQ1MSwgMC4wMDA0NTIsIDAuMDAwNDUyLCAwLjAwMDQ1MiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDQ1NSwgMC4wMDA0NTQsIDAuMDAwNDU0LCAwLjAwMDQ1NCwgMC4wMDA0NTQsIDAuMDAwNDU0LCAwLjAwMDQ1NCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQiOwotICAgICAgc2RmX2NvbmQgOiAiRCA9PSAxJ2IwIjsKLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjE1NTA5OSwgMC4xNjQ0NjIsIDAuMTc2NDI0LCAwLjE4ODQ1NCwgMC4xOTk4NDksIDAuMjE2NjE2LCAwLjIyOTI2NyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJlY292ZXJ5X3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUQiOwotICAgICAgc2RmX2NvbmQgOiAiRCA9PSAxJ2IwIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChyZWNvdmVyeV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTg3NSwgMC4wMDc1LCAtMC4wMDUsIC0wLjAxNzUsIC0wLjAzLCAtMC4wNDYyNSwgLTAuMDYxMjUiLCBcCi0gICAgICAgICAgIjAuMDIzNzUsIDAuMDEyNSwgMCwgLTAuMDEyNSwgLTAuMDI1LCAtMC4wNDEyNSwgLTAuMDUiLCBcCi0gICAgICAgICAgIjAuMDM2MjUsIDAuMDI1LCAwLjAxMjUsIDAsIC0wLjAxMjUsIC0wLjAyODc1LCAtMC4wMzc1IiwgXAotICAgICAgICAgICIwLjA0ODc1LCAwLjAzNzUsIDAuMDI1LCAwLjAxMjUsIDAsIC0wLjAxNjI1LCAtMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4wNTUsIDAuMDQzNzUsIDAuMDMxMjUsIDAuMDE4NzUsIDAuMDA2MjUsIC0wLjAxLCAtMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4wNzEyNSwgMC4wNiwgMC4wNDc1LCAwLjAzNSwgMC4wMjI1LCAwLjAwNjI1LCAtMC4wMDI1IiwgXAotICAgICAgICAgICIwLjA4NjI1LCAwLjA3NSwgMC4wNjI1LCAwLjA1LCAwLjAzNzUsIDAuMDIxMjUsIDAuMDEyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJlbW92YWxfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRCI7Ci0gICAgICBzZGZfY29uZCA6ICJEID09IDEnYjAiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHJlbW92YWxfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDMxMjUsIDAuMDM2MjUsIDAuMDQ4NzUsIDAuMDYxMjUsIDAuMDczNzUsIDAuMDksIDAuMDk4NzUiLCBcCi0gICAgICAgICAgIjAuMDIsIDAuMDMxMjUsIDAuMDQzNzUsIDAuMDU2MjUsIDAuMDYyNSwgMC4wNzg3NSwgMC4wOTM3NSIsIFwKLSAgICAgICAgICAiMC4wMDc1LCAwLjAxODc1LCAwLjAzMTI1LCAwLjA0Mzc1LCAwLjA1NjI1LCAwLjA3MjUsIDAuMDgxMjUiLCBcCi0gICAgICAgICAgIjAuMDAxMjUsIDAuMDEyNSwgMC4wMjUsIDAuMDMxMjUsIDAuMDQzNzUsIDAuMDYsIDAuMDY4NzUiLCBcCi0gICAgICAgICAgIi0wLjAxMTI1LCAwLCAwLjAxMjUsIDAuMDI1LCAwLjAzNzUsIDAuMDQ3NSwgMC4wNjI1IiwgXAotICAgICAgICAgICItMC4wMjEyNSwgLTAuMDE2MjUsIC0wLjAwMzc1LCAwLjAwODc1LCAwLjAyMTI1LCAwLjAzNzUsIDAuMDQ2MjUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMjUsIC0wLjAxMjUsIDAsIDAuMDEyNSwgMC4wMjI1LCAwLjAzNzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBERkZUUlhMICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKERGRlRSWEwpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4zMDg1ODQ7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgZmYgKE4zMCxRQklOVCkgewotICAgIG5leHRfc3RhdGUgOiAiKEQgUk4pIjsKLSAgICBjbG9ja2VkX29uIDogIkNLIjsKLSAgfQotICBwaW4oQ0spICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYxMTkzNzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MTE2ODg7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjExOTM3OwotICAgIGNsb2NrIDogdHJ1ZTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDI5NTYsIDAuMDAyOTI5LCAwLjAwMjkxNCwgMC4wMDI5MTgsIDAuMDAyOTM0LCAwLjAwMjk1MiwgMC4wMDI5NzIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDU5NCwgMC4wMDU5MTUsIDAuMDA1OTExLCAwLjAwNTkyNSwgMC4wMDU5NDIsIDAuMDA1OTc3LCAwLjAwNjAyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQmIVJOIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9STl9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMTg4NTkzLCAwLjE5ODgxMSwgMC4yMTE0NzYsIDAuMjIzMTczLCAwLjIzMzUwOSwgMC4yNDc1OTksIDAuMjU4MzgzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wODM3MjIsIDAuMDkzNjYxLCAwLjEwNTc4NiwgMC4xMTcwOTEsIDAuMTI2Njg2LCAwLjEzOTc0MSwgMC4xNDk1OTgiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEQpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDU5NTU2NDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA1OTQ3OTg7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNTk1NTY0OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjMzOCwgMC4wMDIzMTYsIDAuMDAyMzA3LCAwLjAwMjMwOSwgMC4wMDIzMTcsIDAuMDAyMzQ2LCAwLjAwMjM2NCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzYwOSwgMC4wMDM1OTQsIDAuMDAzNTgzLCAwLjAwMzU4MSwgMC4wMDM1ODksIDAuMDAzNjA1LCAwLjAwMzYxOSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJSTiI7Ci0gICAgICBzZGZfY29uZCA6ICJSTiA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMzc1LCAtMC4wMzI1LCAtMC4wMjYyNSwgLTAuMDIsIC0wLjAxMzc1LCAtMC4wMDM3NSwgLTAuMDAxMjUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wNDM3NSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDI1LCAtMC4wMTUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wNjEyNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDI3NSwgLTAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjA3Mzc1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wNCwgLTAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjA4NjI1LCAtMC4wNzUsIC0wLjA2ODc1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDQ2MjUsIC0wLjA0Mzc1IiwgXAotICAgICAgICAgICItMC4xMDI1LCAtMC4wOTEyNSwgLTAuMDg1LCAtMC4wNzg3NSwgLTAuMDcyNSwgLTAuMDYyNSwgLTAuMDYiLCBcCi0gICAgICAgICAgIi0wLjExMTI1LCAtMC4xMDYyNSwgLTAuMDkzNzUsIC0wLjA4NzUsIC0wLjA4NzUsIC0wLjA3NzUsIC0wLjA2ODc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDYyNSwgMC4wMTc1LCAwLjAzLCAwLjA0MjUsIDAuMDQ4NzUsIDAuMDU4NzUsIDAuMDczNzUiLCBcCi0gICAgICAgICAgIjAuMDAxMjUsIDAuMDA2MjUsIDAuMDE4NzUsIDAuMDMxMjUsIDAuMDM3NSwgMC4wNTM3NSwgMC4wNjI1IiwgXAotICAgICAgICAgICItMC4wMTEyNSwgMCwgMC4wMDYyNSwgMC4wMTg3NSwgMC4wMzEyNSwgMC4wNDEyNSwgMC4wNSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxMjUsIDAsIDAuMDEyNSwgMC4wMTg3NSwgMC4wMjg3NSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAxODc1LCAtMC4wMDYyNSwgMCwgMC4wMTI1LCAwLjAyMjUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjA0LCAtMC4wMjg3NSwgLTAuMDE2MjUsIC0wLjAxLCAwLjAwMjUsIDAuMDEyNSwgMC4wMjEyNSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjAzNzUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLjAwMzc1LCAwLjAxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlJOIjsKLSAgICAgIHNkZl9jb25kIDogIlJOID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2ODc1LCAwLjA1NzUsIDAuMDUxMjUsIDAuMDM4NzUsIDAuMDMyNSwgMC4wMjg3NSwgMC4wMiIsIFwKLSAgICAgICAgICAiMC4wOCwgMC4wNjg3NSwgMC4wNTYyNSwgMC4wNSwgMC4wNDM3NSwgMC4wMzM3NSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4wODYyNSwgMC4wODEyNSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA0NjI1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjA5ODc1LCAwLjA5Mzc1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNTg3NSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiMC4xMTEyNSwgMC4xLCAwLjA5Mzc1LCAwLjA4NzUsIDAuMDgxMjUsIDAuMDcxMjUsIDAuMDYyNSIsIFwKLSAgICAgICAgICAiMC4xMjc1LCAwLjEyMjUsIDAuMTEsIDAuMTAzNzUsIDAuMDk3NSwgMC4wODc1LCAwLjA3ODc1IiwgXAotICAgICAgICAgICIwLjE0MjUsIDAuMTMxMjUsIDAuMTI1LCAwLjExMjUsIDAuMTA2MjUsIDAuMTAyNSwgMC4wOTM3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyNSwgMC4wMTM3NSwgMC4wMDEyNSwgLTAuMDExMjUsIC0wLjAyMzc1LCAtMC4wMzM3NSwgLTAuMDQyNSIsIFwKLSAgICAgICAgICAiMC4wMywgMC4wMjUsIDAuMDEyNSwgMCwgLTAuMDEyNSwgLTAuMDIyNSwgLTAuMDM3NSIsIFwKLSAgICAgICAgICAiMC4wNDI1LCAwLjAzNzUsIDAuMDE4NzUsIDAuMDEyNSwgMCwgLTAuMDE2MjUsIC0wLjAyNSIsIFwKLSAgICAgICAgICAiMC4wNTUsIDAuMDQzNzUsIDAuMDMxMjUsIDAuMDE4NzUsIDAuMDEyNSwgLTAuMDAzNzUsIC0wLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMDY3NSwgMC4wNTYyNSwgMC4wNDM3NSwgMC4wMzEyNSwgMC4wMTg3NSwgMC4wMDg3NSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMDc3NSwgMC4wNjYyNSwgMC4wNTM3NSwgMC4wNDc1LCAwLjAzNSwgMC4wMTg3NSwgMC4wMSIsIFwKLSAgICAgICAgICAiMC4wOTI1LCAwLjA4MTI1LCAwLjA2ODc1LCAwLjA1NjI1LCAwLjA0Mzc1LCAwLjAzMzc1LCAwLjAxODc1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihRKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMTQ1OTE3OwotICAgIGZ1bmN0aW9uIDogIk4zMCI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3NlbnNlIDogbm9uX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiByaXNpbmdfZWRnZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTY0MDY1LCAwLjE3ODE4MiwgMC4zMDUxMjQsIDAuNTE2NzEsIDAuNzI4MzkzLCAxLjIyMzQzLCAxLjUwNTM3IiwgXAotICAgICAgICAgICIwLjE3NDIxOCwgMC4xODgzNDksIDAuMzE1MzY0LCAwLjUyNjc5NywgMC43Mzg2MzMsIDEuMjMyODQsIDEuNTE2NDIiLCBcCi0gICAgICAgICAgIjAuMTg2ODI4LCAwLjIwMDk1LCAwLjMyNzg5NywgMC41Mzk0NTksIDAuNzUxMTU2LCAxLjI0NjIsIDEuNTI4MDgiLCBcCi0gICAgICAgICAgIjAuMTk4NDI2LCAwLjIxMjQ4MywgMC4zMzk0NzUsIDAuNTUwOTk4LCAwLjc2Mjg0MSwgMS4yNTc3OCwgMS41Mzk0MSIsIFwKLSAgICAgICAgICAiMC4yMDg0NzMsIDAuMjIyNiwgMC4zNDk1NDEsIDAuNTYxMTI3LCAwLjc3MjgwNiwgMS4yNjc4NCwgMS41NDk3NSIsIFwKLSAgICAgICAgICAiMC4yMjI0MzIsIDAuMjM2NjI3LCAwLjM2MzUzNiwgMC41NzUwNzEsIDAuNzg2ODk4LCAxLjI4MTc2LCAxLjU2MzUxIiwgXAotICAgICAgICAgICIwLjIzMzEsIDAuMjQ3Mjc2LCAwLjM3NDA0LCAwLjU4NTcyLCAwLjc5NzU1NywgMS4yOTI0MiwgMS41NzQxNCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNTQ4MjQsIDAuMTgzODAxLCAwLjQ0NDcyOCwgMC44ODA2MzMsIDEuMzE1NDIsIDIuMzMzNjksIDIuOTEwNTQiLCBcCi0gICAgICAgICAgIjAuMTU1MDkxLCAwLjE4MzgwOCwgMC40NDM5MjcsIDAuODgwNTQ1LCAxLjMxNjQyLCAyLjMzMDIyLCAyLjkxNTE0IiwgXAotICAgICAgICAgICIwLjE1NDgwOSwgMC4xODM4MDEsIDAuNDQ0NzI2LCAwLjg4MDU4NiwgMS4zMTQ1OCwgMi4zMzM3LCAyLjkxMDk5IiwgXAotICAgICAgICAgICIwLjE1NDgxOSwgMC4xODM3NjgsIDAuNDQ0NzE1LCAwLjg4MDUyNywgMS4zMTY0MiwgMi4zMzM3NiwgMi45MTA2NCIsIFwKLSAgICAgICAgICAiMC4xNTQ4MywgMC4xODM4MDIsIDAuNDQ0NzIxLCAwLjg4MDYzNiwgMS4zMTUxNSwgMi4zMzM3NiwgMi45MTA2NSIsIFwKLSAgICAgICAgICAiMC4xNTUwNzQsIDAuMTgzODEsIDAuNDQ0NzA4LCAwLjg4MDUzMywgMS4zMTY0MSwgMi4zMzM0NiwgMi45MDg1MSIsIFwKLSAgICAgICAgICAiMC4xNTQ3NjgsIDAuMTgzNzg4LCAwLjQ0NDIyMywgMC44ODA0MywgMS4zMTYyOSwgMi4zMzM0MywgMi45MDkyNyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNzc5MDEsIDAuMTkxODI4LCAwLjMxNjQ3LCAwLjUyMzkyMSwgMC43MzEyMDYsIDEuMjE1OTQsIDEuNDkyMjUiLCBcCi0gICAgICAgICAgIjAuMTg4MDM3LCAwLjIwMjAzOSwgMC4zMjY2ODIsIDAuNTM0MTIxLCAwLjc0MTY3NSwgMS4yMjUzMiwgMS41MDMxMyIsIFwKLSAgICAgICAgICAiMC4yMDA3MiwgMC4yMTQ3MDEsIDAuMzM5MzExLCAwLjU0Njc5MywgMC43NTQzMzcsIDEuMjM4MDIsIDEuNTE1OCIsIFwKLSAgICAgICAgICAiMC4yMTI0NzIsIDAuMjI2MzY1LCAwLjM1MDc3NCwgMC41NTg1MTUsIDAuNzY2MDg1LCAxLjI1MDY3LCAxLjUyNzM4IiwgXAotICAgICAgICAgICIwLjIyMjgxNywgMC4yMzY2NzUsIDAuMzYxMTc3LCAwLjU2ODUxMSwgMC43NzY0MywgMS4yNjA5NCwgMS41Mzc2NiIsIFwKLSAgICAgICAgICAiMC4yMzY4OTksIDAuMjUwNzkzLCAwLjM3NTMzOCwgMC41ODI5NDQsIDAuNzkwNTA5LCAxLjI3NTA4LCAxLjU1MTc5IiwgXAotICAgICAgICAgICIwLjI0NzcyNywgMC4yNjE2MTcsIDAuMzg2MzEzLCAwLjU5MzUyOSwgMC44MDEzNDQsIDEuMjg1ODIsIDEuNTYyNTciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTQ4ODA5LCAwLjE3NjM1MSwgMC40MjU2NCwgMC44NDIxNjYsIDEuMjU5ODUsIDIuMjMzMDgsIDIuNzg5MDkiLCBcCi0gICAgICAgICAgIjAuMTQ5MDg5LCAwLjE3NjY0OSwgMC40MjU2MTYsIDAuODQyMDU4LCAxLjI1OTE4LCAyLjIyODYzLCAyLjc4NTE1IiwgXAotICAgICAgICAgICIwLjE0OTEyMiwgMC4xNzY2NTEsIDAuNDI1NTMyLCAwLjg0MjA4LCAxLjI1OTE3LCAyLjIyODU3LCAyLjc4MDY3IiwgXAotICAgICAgICAgICIwLjE0ODc2LCAwLjE3NjYzNywgMC40MjU1NDcsIDAuODQyMTA2LCAxLjI1OTMzLCAyLjIyOSwgMi43ODk1MyIsIFwKLSAgICAgICAgICAiMC4xNDgwOTUsIDAuMTc2NjMyLCAwLjQyNTYyMywgMC44NDE2MzgsIDEuMjU5MzMsIDIuMjMzMTgsIDIuNzg5MzciLCBcCi0gICAgICAgICAgIjAuMTQ4MTcyLCAwLjE3NjYzNiwgMC40MjUyNzcsIDAuODQyMTI0LCAxLjI1OTMxLCAyLjIzMzMsIDIuNzg5NSIsIFwKLSAgICAgICAgICAiMC4xNDgzMjksIDAuMTc2NjUsIDAuNDI1NjgsIDAuODQxOSwgMS4yNTkzOCwgMi4yMzMyMywgMi43ODk0NyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDM3MDksIDAuMDAzNzA3LCAwLjAwMzY5OSwgMC4wMDM2OTQsIDAuMDAzNjkxLCAwLjAwMzY5LCAwLjAwMzY4OSIsIFwKLSAgICAgICAgICAiMC4wMDM2OTEsIDAuMDAzNjksIDAuMDAzNjgyLCAwLjAwMzY3NywgMC4wMDM2NzUsIDAuMDAzNjcyLCAwLjAwMzY3MiIsIFwKLSAgICAgICAgICAiMC4wMDM2ODUsIDAuMDAzNjg0LCAwLjAwMzY3NSwgMC4wMDM2NywgMC4wMDM2NjcsIDAuMDAzNjY2LCAwLjAwMzY2NSIsIFwKLSAgICAgICAgICAiMC4wMDM2ODYsIDAuMDAzNjg0LCAwLjAwMzY3NiwgMC4wMDM2NzEsIDAuMDAzNjY4LCAwLjAwMzY2NiwgMC4wMDM2NjUiLCBcCi0gICAgICAgICAgIjAuMDAzNjkyLCAwLjAwMzY5MSwgMC4wMDM2ODMsIDAuMDAzNjc4LCAwLjAwMzY3NiwgMC4wMDM2NzIsIDAuMDAzNjczIiwgXAotICAgICAgICAgICIwLjAwMzcwNSwgMC4wMDM3MDQsIDAuMDAzNjk2LCAwLjAwMzY5MSwgMC4wMDM2ODgsIDAuMDAzNjg2LCAwLjAwMzY4NSIsIFwKLSAgICAgICAgICAiMC4wMDM3MTgsIDAuMDAzNzE4LCAwLjAwMzcxLCAwLjAwMzcwNCwgMC4wMDM3MDIsIDAuMDAzNjk5LCAwLjAwMzY5OCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzc1OCwgMC4wMDM3NTksIDAuMDAzNzYzLCAwLjAwMzc2NCwgMC4wMDM3NjUsIDAuMDAzNzY1LCAwLjAwMzc2NiIsIFwKLSAgICAgICAgICAiMC4wMDM3NDIsIDAuMDAzNzQzLCAwLjAwMzc0NywgMC4wMDM3NDksIDAuMDAzNzUsIDAuMDAzNzUsIDAuMDAzNzUiLCBcCi0gICAgICAgICAgIjAuMDAzNzQyLCAwLjAwMzc0MywgMC4wMDM3NDYsIDAuMDAzNzQ4LCAwLjAwMzc0OSwgMC4wMDM3NDksIDAuMDAzNzQ5IiwgXAotICAgICAgICAgICIwLjAwMzc0OSwgMC4wMDM3NTEsIDAuMDAzNzU0LCAwLjAwMzc1NiwgMC4wMDM3NTYsIDAuMDAzNzU3LCAwLjAwMzc1NyIsIFwKLSAgICAgICAgICAiMC4wMDM3NjQsIDAuMDAzNzY2LCAwLjAwMzc2OSwgMC4wMDM3NywgMC4wMDM3NzEsIDAuMDAzNzcyLCAwLjAwMzc3MiIsIFwKLSAgICAgICAgICAiMC4wMDM3ODUsIDAuMDAzNzg2LCAwLjAwMzc5LCAwLjAwMzc5MSwgMC4wMDM3OTEsIDAuMDAzNzkyLCAwLjAwMzc5MiIsIFwKLSAgICAgICAgICAiMC4wMDM4MDYsIDAuMDAzODA3LCAwLjAwMzgxLCAwLjAwMzgxMSwgMC4wMDM4MTMsIDAuMDAzODEyLCAwLjAwMzgxMyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUU4pICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4xNTE0MTU7Ci0gICAgZnVuY3Rpb24gOiAiUUJJTlQiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5vbl91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcmlzaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE4ODU5MywgMC4yMDI3MjIsIDAuMzI5ODIyLCAwLjU0MTU5OCwgMC43NTMzNjQsIDEuMjQ3NjksIDEuNTI5ODkiLCBcCi0gICAgICAgICAgIjAuMTk4ODExLCAwLjIxMjk0OCwgMC4zNDAwNDMsIDAuNTUxNzk1LCAwLjc2MzU5MywgMS4yNTc3NywgMS41NDA0NyIsIFwKLSAgICAgICAgICAiMC4yMTE0NzYsIDAuMjI1NjExLCAwLjM1MjY4MSwgMC41NjQ0NjEsIDAuNzc2MjU2LCAxLjI3MDQyLCAxLjU1MzE0IiwgXAotICAgICAgICAgICIwLjIyMzE3MywgMC4yMzcyOTksIDAuMzY0Mzg5LCAwLjU3NjE2NSwgMC43ODc5NzQsIDEuMjgyMzUsIDEuNTY0NzUiLCBcCi0gICAgICAgICAgIjAuMjMzNTA5LCAwLjI0NzYzLCAwLjM3NDcyMiwgMC41ODY1MjUsIDAuNzk4MzE0LCAxLjI5MjY0LCAxLjU3NTA1IiwgXAotICAgICAgICAgICIwLjI0NzU5OSwgMC4yNjE3MjUsIDAuMzg4Nzc2LCAwLjYwMDU5NCwgMC44MTI0MDEsIDEuMzA2NzcsIDEuNTg5MTciLCBcCi0gICAgICAgICAgIjAuMjU4NDQsIDAuMjcyNTY0LCAwLjM5OTYxOSwgMC42MTE0MzIsIDAuODIzMjQzLCAxLjMxNzU2LCAxLjU5OTk4Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE1MjI2OSwgMC4xODEyMzMsIDAuNDQyOTg5LCAwLjg3ODM4MywgMS4zMTMzNiwgMi4zMzA1OSwgMi45MTA5NSIsIFwKLSAgICAgICAgICAiMC4xNTI0OTksIDAuMTgxNTksIDAuNDQyOTc5LCAwLjg3ODQyMiwgMS4zMTM5NywgMi4zMjcyMSwgMi45MDY1OCIsIFwKLSAgICAgICAgICAiMC4xNTI1MjIsIDAuMTgxNTg5LCAwLjQ0MjkzNSwgMC44Nzg0MTgsIDEuMzEzOTcsIDIuMzI3NTQsIDIuOTA1NSIsIFwKLSAgICAgICAgICAiMC4xNTIzMywgMC4xODE1OCwgMC40NDIyOTgsIDAuODc4NDE3LCAxLjMxMzk5LCAyLjMyNTU0LCAyLjkxMTU0IiwgXAotICAgICAgICAgICIwLjE1MjA3MSwgMC4xODE1NjYsIDAuNDQyNjkxLCAwLjg3NzI3OCwgMS4zMTM5OCwgMi4zMzA2NywgMi45MTE0NiIsIFwKLSAgICAgICAgICAiMC4xNTIyMjQsIDAuMTgxNTgxLCAwLjQ0Mjg1LCAwLjg3ODQxOCwgMS4zMTM5OCwgMi4zMzA3NSwgMi45MTE1MyIsIFwKLSAgICAgICAgICAiMC4xNTIyMzQsIDAuMTgxNTc5LCAwLjQ0MzAwOSwgMC44NzczODIsIDEuMzE0MDEsIDIuMzMwNjksIDIuOTExNSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNzMyNjYsIDAuMTg3MDk3LCAwLjMxMTU2LCAwLjUxODk2NCwgMC43MjYzMDgsIDEuMjEwMjksIDEuNDg2NjkiLCBcCi0gICAgICAgICAgIjAuMTgzNDA0LCAwLjE5NzIzNywgMC4zMjE3MzgsIDAuNTI5MDYxLCAwLjczNjQ1MiwgMS4yMjA1MiwgMS40OTcwMiIsIFwKLSAgICAgICAgICAiMC4xOTYwMjEsIDAuMjA5ODUyLCAwLjMzNDMxNiwgMC41NDE3MDYsIDAuNzQ5MDY2LCAxLjIzMzA1LCAxLjUwOTQ1IiwgXAotICAgICAgICAgICIwLjIwNzYwMywgMC4yMjE0MjYsIDAuMzQ1ODkzLCAwLjU1MzI1NSwgMC43NjA2NTIsIDEuMjQ0NjQsIDEuNTIxMTQiLCBcCi0gICAgICAgICAgIjAuMjE3NjQzLCAwLjIzMTQ3NSwgMC4zNTU5MzQsIDAuNTYzMzQzLCAwLjc3MDY3NiwgMS4yNTQ2OCwgMS41MzEwNiIsIFwKLSAgICAgICAgICAiMC4yMzE2MzcsIDAuMjQ1NDc1LCAwLjM2OTkyNywgMC41NzcyOTgsIDAuNzg0Njg3LCAxLjI2ODYsIDEuNTQ1MzEiLCBcCi0gICAgICAgICAgIjAuMjQyMjY5LCAwLjI1NjEwNiwgMC4zODA1NzQsIDAuNTg3OTI5LCAwLjc5NTMyOSwgMS4yNzkyOSwgMS41NTU5MyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNDU2MiwgMC4xNzM1NzMsIDAuNDIzNjAzLCAwLjg0MDI5NCwgMS4yNTYxMSwgMi4yMjk1LCAyLjc4MDc2IiwgXAotICAgICAgICAgICIwLjE0NTgzNSwgMC4xNzM1ODYsIDAuNDIyODIxLCAwLjg0MDEwOSwgMS4yNTY3OSwgMi4yMjUwNSwgMi43ODU0NSIsIFwKLSAgICAgICAgICAiMC4xNDU2MjcsIDAuMTczNTcxLCAwLjQyMzU5NiwgMC44NDAyMDIsIDEuMjU1MTIsIDIuMjI5NDQsIDIuNzgwODkiLCBcCi0gICAgICAgICAgIjAuMTQ1NjEzLCAwLjE3MzUyNywgMC40MjM1OCwgMC44NDAwNzYsIDEuMjU2OCwgMi4yMjk1MSwgMi43ODAwMiIsIFwKLSAgICAgICAgICAiMC4xNDU2MTcsIDAuMTczNTcxLCAwLjQyMzU4NSwgMC44NDAyOTIsIDEuMjU2MDYsIDIuMjI5NTEsIDIuNzgwNzYiLCBcCi0gICAgICAgICAgIjAuMTQ1ODA0LCAwLjE3MzU4NCwgMC40MjM1NjMsIDAuODQwMDkxLCAxLjI1Njc2LCAyLjIyODk4LCAyLjc3OTEyIiwgXAotICAgICAgICAgICIwLjE0NTYxMywgMC4xNzM1NjMsIDAuNDIyNzgxLCAwLjgzOTk2OSwgMS4yNTY2MSwgMi4yMjg5MiwgMi43NzkyNiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDM3NTgsIDAuMDAzNzU5LCAwLjAwMzc2MywgMC4wMDM3NjQsIDAuMDAzNzY1LCAwLjAwMzc2NSwgMC4wMDM3NjYiLCBcCi0gICAgICAgICAgIjAuMDAzNzQyLCAwLjAwMzc0MywgMC4wMDM3NDcsIDAuMDAzNzQ5LCAwLjAwMzc1LCAwLjAwMzc1LCAwLjAwMzc1IiwgXAotICAgICAgICAgICIwLjAwMzc0MiwgMC4wMDM3NDMsIDAuMDAzNzQ2LCAwLjAwMzc0OCwgMC4wMDM3NDksIDAuMDAzNzQ5LCAwLjAwMzc0OSIsIFwKLSAgICAgICAgICAiMC4wMDM3NDksIDAuMDAzNzUxLCAwLjAwMzc1NCwgMC4wMDM3NTYsIDAuMDAzNzU2LCAwLjAwMzc1NywgMC4wMDM3NTciLCBcCi0gICAgICAgICAgIjAuMDAzNzY0LCAwLjAwMzc2NiwgMC4wMDM3NjksIDAuMDAzNzcsIDAuMDAzNzcxLCAwLjAwMzc3MiwgMC4wMDM3NzIiLCBcCi0gICAgICAgICAgIjAuMDAzNzg1LCAwLjAwMzc4NiwgMC4wMDM3OSwgMC4wMDM3OTEsIDAuMDAzNzkxLCAwLjAwMzc5MiwgMC4wMDM3OTIiLCBcCi0gICAgICAgICAgIjAuMDAzODA2LCAwLjAwMzgwNywgMC4wMDM4MSwgMC4wMDM4MTEsIDAuMDAzODEzLCAwLjAwMzgxMiwgMC4wMDM4MTMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDM3MDksIDAuMDAzNzA3LCAwLjAwMzY5OSwgMC4wMDM2OTQsIDAuMDAzNjkxLCAwLjAwMzY5LCAwLjAwMzY4OSIsIFwKLSAgICAgICAgICAiMC4wMDM2OTEsIDAuMDAzNjksIDAuMDAzNjgyLCAwLjAwMzY3NywgMC4wMDM2NzUsIDAuMDAzNjcyLCAwLjAwMzY3MiIsIFwKLSAgICAgICAgICAiMC4wMDM2ODUsIDAuMDAzNjg0LCAwLjAwMzY3NSwgMC4wMDM2NywgMC4wMDM2NjcsIDAuMDAzNjY2LCAwLjAwMzY2NSIsIFwKLSAgICAgICAgICAiMC4wMDM2ODYsIDAuMDAzNjg0LCAwLjAwMzY3NiwgMC4wMDM2NzEsIDAuMDAzNjY4LCAwLjAwMzY2NiwgMC4wMDM2NjUiLCBcCi0gICAgICAgICAgIjAuMDAzNjkyLCAwLjAwMzY5MSwgMC4wMDM2ODMsIDAuMDAzNjc4LCAwLjAwMzY3NiwgMC4wMDM2NzIsIDAuMDAzNjczIiwgXAotICAgICAgICAgICIwLjAwMzcwNSwgMC4wMDM3MDQsIDAuMDAzNjk2LCAwLjAwMzY5MSwgMC4wMDM2ODgsIDAuMDAzNjg2LCAwLjAwMzY4NSIsIFwKLSAgICAgICAgICAiMC4wMDM3MTgsIDAuMDAzNzE4LCAwLjAwMzcxLCAwLjAwMzcwNCwgMC4wMDM3MDIsIDAuMDAzNjk5LCAwLjAwMzY5OCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUk4pICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDU4NTM5OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDU4NTM5OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDU4Mzg3MTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDIzNCwgMC4wMDIzMTgsIDAuMDAyMzA2LCAwLjAwMjMwMSwgMC4wMDIyOTgsIDAuMDAyMzA3LCAwLjAwMjMxNSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzg4OSwgMC4wMDM4NzcsIDAuMDAzODY4LCAwLjAwMzg2OSwgMC4wMDM4NzcsIDAuMDAzODk4LCAwLjAwMzkxNiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJEIjsKLSAgICAgIHNkZl9jb25kIDogIkQgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDQzNzUsIC0wLjAzMjUsIC0wLjAyNjI1LCAtMC4wMiwgLTAuMDEzNzUsIC0wLjAxLCAtMC4wMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMTUsIC0wLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjA2MTI1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMjc1LCAtMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjA3Mzc1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wNCwgLTAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjA4LCAtMC4wNzUsIC0wLjA2ODc1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDQ2MjUsIC0wLjA0Mzc1IiwgXAotICAgICAgICAgICItMC4wOTYyNSwgLTAuMDkxMjUsIC0wLjA4NSwgLTAuMDc4NzUsIC0wLjA3MjUsIC0wLjA2MjUsIC0wLjA2IiwgXAotICAgICAgICAgICItMC4xMDUsIC0wLjEsIC0wLjA5Mzc1LCAtMC4wODc1LCAtMC4wODEyNSwgLTAuMDc3NSwgLTAuMDY4NzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjI1LCAwLjAxNzUsIDAuMDMsIDAuMDM2MjUsIDAuMDQ4NzUsIDAuMDU4NzUsIDAuMDY3NSIsIFwKLSAgICAgICAgICAiLTAuMDA1LCAwLjAwNjI1LCAwLjAxODc1LCAwLjAzMTI1LCAwLjAzNzUsIDAuMDUzNzUsIDAuMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDExMjUsIC0wLjAwNjI1LCAwLjAwNjI1LCAwLjAxODc1LCAwLjAyNSwgMC4wNDEyNSwgMC4wNSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxMjUsIDAsIDAuMDA2MjUsIDAuMDE4NzUsIDAuMDI4NzUsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAyNSwgLTAuMDEyNSwgMCwgMC4wMDYyNSwgMC4wMjI1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wNCwgLTAuMDM1LCAtMC4wMjI1LCAtMC4wMSwgLTAuMDAzNzUsIDAuMDA2MjUsIDAuMDE1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDQzNzUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDAyNSwgMC4wMDYyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiRCI7Ci0gICAgICBzZGZfY29uZCA6ICJEID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2ODc1LCAwLjA2Mzc1LCAwLjA1MTI1LCAwLjA0NSwgMC4wMzg3NSwgMC4wMjg3NSwgMC4wMjYyNSIsIFwKLSAgICAgICAgICAiMC4wOCwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1LCAwLjA1LCAwLjA0LCAwLjAzMTI1IiwgXAotICAgICAgICAgICIwLjA5MjUsIDAuMDgxMjUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNTI1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjA5ODc1LCAwLjA5Mzc1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNTg3NSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiMC4xMTEyNSwgMC4xLCAwLjA5Mzc1LCAwLjA4NzUsIDAuMDgxMjUsIDAuMDcxMjUsIDAuMDYyNSIsIFwKLSAgICAgICAgICAiMC4xMjc1LCAwLjExNjI1LCAwLjEwMzc1LCAwLjA5NzUsIDAuMDkxMjUsIDAuMDg3NSwgMC4wNzg3NSIsIFwKLSAgICAgICAgICAiMC4xMzYyNSwgMC4xMzEyNSwgMC4xMTg3NSwgMC4xMTI1LCAwLjEwNjI1LCAwLjA5NjI1LCAwLjA5Mzc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDI1LCAwLjAxMzc1LCAwLjAwMTI1LCAtMC4wMTEyNSwgLTAuMDE3NSwgLTAuMDMzNzUsIC0wLjA0MjUiLCBcCi0gICAgICAgICAgIjAuMDM2MjUsIDAuMDI1LCAwLjAxMjUsIDAsIC0wLjAwNjI1LCAtMC4wMjI1LCAtMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4wNDg3NSwgMC4wMzc1LCAwLjAyNSwgMC4wMTI1LCAwLCAtMC4wMSwgLTAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMDYxMjUsIDAuMDUsIDAuMDM3NSwgMC4wMjUsIDAuMDEyNSwgMC4wMDI1LCAtMC4wMTI1IiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDU2MjUsIDAuMDQzNzUsIDAuMDMxMjUsIDAuMDI1LCAwLjAwODc1LCAwIiwgXAotICAgICAgICAgICIwLjA4Mzc1LCAwLjA3MjUsIDAuMDYsIDAuMDQ3NSwgMC4wMzUsIDAuMDI1LCAwLjAxNjI1IiwgXAotICAgICAgICAgICIwLjA5MjUsIDAuMDgxMjUsIDAuMDY4NzUsIDAuMDU2MjUsIDAuMDUsIDAuMDMzNzUsIDAuMDI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IERGRlhMICoKLSAqIC0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChERkZYTCkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjI5MzAyMjsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBmZiAoTjMwLFFCSU5UKSB7Ci0gICAgbmV4dF9zdGF0ZSA6ICJEIjsKLSAgICBjbG9ja2VkX29uIDogIkNLIjsKLSAgfQotICBwaW4oQ0spICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDU3MjYyNTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA1NzIzNzI7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNTcyNjI1OwotICAgIGNsb2NrIDogdHJ1ZTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDMwMSwgMC4wMDI5ODUsIDAuMDAyOTcxLCAwLjAwMjk3MywgMC4wMDI5ODUsIDAuMDAzMDA1LCAwLjAwMzAyNiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNjcwOCwgMC4wMDY2ODcsIDAuMDA2Njc5LCAwLjAwNjY3OSwgMC4wMDY2ODYsIDAuMDA2NzEyLCAwLjAwNjcyMSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQiOwotICAgICAgc2RmX2NvbmQgOiAiRCA9PSAxJ2IwIjsKLSAgICAgIHJpc2VfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjE5Njk2OCwgMC4yMDcxNzksIDAuMjE5OTMzLCAwLjIzMjI4LCAwLjI0MzUxNCwgMC4yNTg5NzIsIDAuMjcxMDE5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4xMDcwMjIsIDAuMTE2OTIsIDAuMTI5MzMzLCAwLjE0MDk4MywgMC4xNTEyNzYsIDAuMTY1NDM1LCAwLjE3NjE1NCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjk2NjEyOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDY5NTE0MzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2OTY2MTI7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyMjI1LCAwLjAwMjIwMywgMC4wMDIxOTIsIDAuMDAyMTg1LCAwLjAwMjE5LCAwLjAwMjE4OSwgMC4wMDIxOTkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDI3OTIsIDAuMDAyNzc4LCAwLjAwMjc3MSwgMC4wMDI3NjcsIDAuMDAyNzY0LCAwLjAwMjc2NywgMC4wMDI3NyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAxODc1LCAtMC4wMDc1LCAtMC4wMDEyNSwgMC4wMDUsIDAuMDExMjUsIDAuMDIxMjUsIDAuMDIzNzUiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAsIDAuMDA2MjUsIDAuMDEsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMC4wMDM3NSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDM3NSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA4NzUsIDAiLCBcCi0gICAgICAgICAgIi0wLjA1NSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAxNSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA2NSwgLTAuMDUzNzUsIC0wLjA0NzUsIC0wLjA0MTI1LCAtMC4wMzUsIC0wLjAyNSwgLTAuMDIyNSIsIFwKLSAgICAgICAgICAiLTAuMDczNzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjAzMzc1LCAtMC4wMjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyNSwgMC4wMywgMC4wNDI1LCAwLjA1NSwgMC4wNjc1LCAwLjA4Mzc1LCAwLjA5MjUiLCBcCi0gICAgICAgICAgIjAuMDEzNzUsIDAuMDI1LCAwLjAzNzUsIDAuMDUsIDAuMDU2MjUsIDAuMDcyNSwgMC4wODEyNSIsIFwKLSAgICAgICAgICAiMC4wMDc1LCAwLjAxMjUsIDAuMDI1LCAwLjAzNzUsIDAuMDUsIDAuMDYsIDAuMDc1IiwgXAotICAgICAgICAgICIwLjAwMTI1LCAwLjAwNjI1LCAwLjAxODc1LCAwLjAzMTI1LCAwLjA0Mzc1LCAwLjA1Mzc1LCAwLjA2ODc1IiwgXAotICAgICAgICAgICItMC4wMDUsIDAuMDA2MjUsIDAuMDEyNSwgMC4wMjUsIDAuMDM3NSwgMC4wNTM3NSwgMC4wNjI1IiwgXAotICAgICAgICAgICItMC4wMTUsIC0wLjAwMzc1LCAwLjAwODc1LCAwLjAyMTI1LCAwLjAyNzUsIDAuMDQzNzUsIDAuMDUyNSIsIFwKLSAgICAgICAgICAiLTAuMDE3NSwgLTAuMDA2MjUsIDAsIDAuMDEyNSwgMC4wMjUsIDAuMDM1LCAwLjA1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzNzUsIDAuMDI2MjUsIDAuMDIsIDAuMDEzNzUsIDAuMDA3NSwgLTAuMDAyNSwgLTAuMDA1IiwgXAotICAgICAgICAgICIwLjA0ODc1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDE4NzUsIDAuMDEyNSwgMC4wMDg3NSwgMCIsIFwKLSAgICAgICAgICAiMC4wNjEyNSwgMC4wNSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMTUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4wNjc1LCAwLjA1NjI1LCAwLjA1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDI3NSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4wOCwgMC4wNjg3NSwgMC4wNTYyNSwgMC4wNSwgMC4wNDM3NSwgMC4wMzM3NSwgMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMDksIDAuMDc4NzUsIDAuMDcyNSwgMC4wNiwgMC4wNTM3NSwgMC4wNDM3NSwgMC4wNDEyNSIsIFwKLSAgICAgICAgICAiMC4wOTg3NSwgMC4wOTM3NSwgMC4wODEyNSwgMC4wNzUsIDAuMDYyNSwgMC4wNTg3NSwgMC4wNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMjUsIDAuMDAxMjUsIC0wLjAxMTI1LCAtMC4wMjM3NSwgLTAuMDM2MjUsIC0wLjA0NjI1LCAtMC4wNjEyNSIsIFwKLSAgICAgICAgICAiMC4wMjM3NSwgMC4wMTI1LCAwLCAtMC4wMTI1LCAtMC4wMjUsIC0wLjA0MTI1LCAtMC4wNSIsIFwKLSAgICAgICAgICAiMC4wMywgMC4wMTg3NSwgMC4wMDYyNSwgLTAuMDA2MjUsIC0wLjAxMjUsIC0wLjAyODc1LCAtMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4wNDI1LCAwLjAzMTI1LCAwLjAxODc1LCAwLjAwNjI1LCAtMC4wMDYyNSwgLTAuMDIyNSwgLTAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMDQ4NzUsIDAuMDM3NSwgMC4wMjUsIDAuMDEyNSwgMCwgLTAuMDE2MjUsIC0wLjAyNSIsIFwKLSAgICAgICAgICAiMC4wNTg3NSwgMC4wNTM3NSwgMC4wMzUsIDAuMDIyNSwgMC4wMTYyNSwgMCwgLTAuMDE1IiwgXAotICAgICAgICAgICIwLjA3Mzc1LCAwLjA2MjUsIDAuMDQzNzUsIDAuMDMxMjUsIDAuMDI1LCAwLjAwODc1LCAtMC4wMDYyNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjE1MjY1MTsKLSAgICBmdW5jdGlvbiA6ICJOMzAiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5vbl91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcmlzaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE3MjYzMiwgMC4xODY3OCwgMC4zMTM2OTgsIDAuNTI1MTg4LCAwLjczNjk0NSwgMS4yMzIwMiwgMS41MTQ4NSIsIFwKLSAgICAgICAgICAiMC4xODI2NzcsIDAuMTk2OTU5LCAwLjMyMzYwNSwgMC41MzUzNTksIDAuNzQ3MjEyLCAxLjI0MjA5LCAxLjUyNTA1IiwgXAotICAgICAgICAgICIwLjE5NTQzMywgMC4yMDk1NzgsIDAuMzM2NDk5LCAwLjU0Nzk4LCAwLjc1OTc0OCwgMS4yNTQ4MywgMS41Mzc2NCIsIFwKLSAgICAgICAgICAiMC4yMDc3NiwgMC4yMjE5MDgsIDAuMzQ4ODMzLCAwLjU2MDMwNCwgMC43NzIwNzIsIDEuMjY3MTUsIDEuNTQ5OTciLCBcCi0gICAgICAgICAgIjAuMjE4NzM1LCAwLjIzMjg4MiwgMC4zNTk4MDgsIDAuNTcxMzAxLCAwLjc4MzAzOCwgMS4yNzgxMywgMS41NjA5NCIsIFwKLSAgICAgICAgICAiMC4yMzQxODYsIDAuMjQ4MTc5LCAwLjM3NTI0OSwgMC41ODY3NDUsIDAuNzk4NTAyLCAxLjI5MzU3LCAxLjU3NTM5IiwgXAotICAgICAgICAgICIwLjI0NTg1LCAwLjI2MDA3NiwgMC4zODY5NjcsIDAuNTk4NSwgMC44MTAzNDksIDEuMzA0NDUsIDEuNTg2OTMiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTU0NzEyLCAwLjE4Mzc2OCwgMC40NDM2NzcsIDAuODgwNTA0LCAxLjMxNDU3LCAyLjMzMzgyLCAyLjkxNTE1IiwgXAotICAgICAgICAgICIwLjE1NDc5MywgMC4xODM3NzQsIDAuNDQzOTEsIDAuODgwNTA3LCAxLjMxNjQxLCAyLjMzMzQ1LCAyLjkxNTI4IiwgXAotICAgICAgICAgICIwLjE1NDcyMywgMC4xODM3NjcsIDAuNDQzNjkyLCAwLjg4MDQ4NSwgMS4zMTQxNywgMi4zMzM4MiwgMi45MTUxNSIsIFwKLSAgICAgICAgICAiMC4xNTQ3MjcsIDAuMTgzNzY2LCAwLjQ0MzY3MiwgMC44ODA0NzcsIDEuMzE0MjEsIDIuMzMzODMsIDIuOTE1MTUiLCBcCi0gICAgICAgICAgIjAuMTU0NzIsIDAuMTgzNzY4LCAwLjQ0MzcwNywgMC44ODA0OTgsIDEuMzE0OTQsIDIuMzMzODYsIDIuOTE1MiIsIFwKLSAgICAgICAgICAiMC4xNTQ3NjcsIDAuMTgzNTI4LCAwLjQ0NDY4MSwgMC44Nzg5OTQsIDEuMzE1NDMsIDIuMzMzODksIDIuOTExMzIiLCBcCi0gICAgICAgICAgIjAuMTU0ODU3LCAwLjE4Mzc5MywgMC40NDQ2ODIsIDAuODgwNTc2LCAxLjMxNjQ3LCAyLjMyNTUxLCAyLjkwNzAyIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE4NjU3NCwgMC4yMDA0OTgsIDAuMzI1MTI3LCAwLjUzMjYzNCwgMC43NDAxOTgsIDEuMjI0NCwgMS41MDE1MSIsIFwKLSAgICAgICAgICAiMC4xOTY3OTUsIDAuMjEwNzA1LCAwLjMzNTU0MiwgMC41NDI4NTEsIDAuNzUwNDE2LCAxLjIzNDg0LCAxLjUxMTE3IiwgXAotICAgICAgICAgICIwLjIwOTU0MywgMC4yMjM0NiwgMC4zNDc5MzIsIDAuNTU1ODU0LCAwLjc2MzE3NCwgMS4yNDc3MSwgMS41MjQ0MyIsIFwKLSAgICAgICAgICAiMC4yMjE4ODUsIDAuMjM1ODA1LCAwLjM2MDYzMywgMC41Njc5NTcsIDAuNzc1NTEyLCAxLjI2MDA3LCAxLjUzNjc5IiwgXAotICAgICAgICAgICIwLjIzMzExNCwgMC4yNDcwNjMsIDAuMzcxNzI3LCAwLjU3OTE1NCwgMC43ODY2ODksIDEuMjcwNDQsIDEuNTQ4MTUiLCBcCi0gICAgICAgICAgIjAuMjQ4NTgsIDAuMjYyNDg3LCAwLjM4NzIwNywgMC41OTQ0MzQsIDAuODAyMjExLCAxLjI4NjcsIDEuNTYzNDMiLCBcCi0gICAgICAgICAgIjAuMjYwNjI5LCAwLjI3NDU0NiwgMC4zOTkxNzMsIDAuNjA2Njg5LCAwLjgxNDI0NSwgMS4yOTg4LCAxLjU3NTUyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE0ODc5NiwgMC4xNzY1NDcsIDAuNDI1MzcyLCAwLjg0MjA1OCwgMS4yNTkyNywgMi4yMzI0NiwgMi43ODk1OSIsIFwKLSAgICAgICAgICAiMC4xNDg3NDIsIDAuMTc2NTQ2LCAwLjQyNDU1MSwgMC44NDIwMzksIDEuMjU5MjIsIDIuMjMyOSwgMi43ODc5OCIsIFwKLSAgICAgICAgICAiMC4xNDg3MjEsIDAuMTc2NTQ1LCAwLjQyNTQ5MiwgMC44NDAyNjUsIDEuMjU5MjksIDIuMjMzMjEsIDIuNzg5NDciLCBcCi0gICAgICAgICAgIjAuMTQ4NzU1LCAwLjE3NjU0NiwgMC40MjQ1NDksIDAuODQyMDczLCAxLjI1OTI3LCAyLjIzMzE4LCAyLjc4OTUiLCBcCi0gICAgICAgICAgIjAuMTQ5MDQ5LCAwLjE3NjU1NywgMC40MjU0NzcsIDAuODQyMDAyLCAxLjI1OTA1LCAyLjIyOTE0LCAyLjc4MzEyIiwgXAotICAgICAgICAgICIwLjE0ODY0OCwgMC4xNzY1NDcsIDAuNDI1MDUyLCAwLjg0MjY4LCAxLjI1OTMxLCAyLjIzMzA4LCAyLjc4OTMyIiwgXAotICAgICAgICAgICIwLjE0ODcxOSwgMC4xNzY1NDQsIDAuNDI1MzgsIDAuODQyMDY3LCAxLjI1OTIzLCAyLjIzMzE5LCAyLjc4OTQyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzc5MywgMC4wMDM3OTEsIDAuMDAzNzgxLCAwLjAwMzc3NCwgMC4wMDM3NzEsIDAuMDAzNzY5LCAwLjAwMzc2NyIsIFwKLSAgICAgICAgICAiMC4wMDM3NzgsIDAuMDAzNzc2LCAwLjAwMzc2NiwgMC4wMDM3NTksIDAuMDAzNzU2LCAwLjAwMzc1MywgMC4wMDM3NTMiLCBcCi0gICAgICAgICAgIjAuMDAzNzcsIDAuMDAzNzY5LCAwLjAwMzc1OCwgMC4wMDM3NTEsIDAuMDAzNzQ4LCAwLjAwMzc0NSwgMC4wMDM3NDUiLCBcCi0gICAgICAgICAgIjAuMDAzNzcyLCAwLjAwMzc3LCAwLjAwMzc2LCAwLjAwMzc1MywgMC4wMDM3NSwgMC4wMDM3NDcsIDAuMDAzNzQ2IiwgXAotICAgICAgICAgICIwLjAwMzc3OSwgMC4wMDM3NzgsIDAuMDAzNzY3LCAwLjAwMzc2LCAwLjAwMzc1NywgMC4wMDM3NTQsIDAuMDAzNzUzIiwgXAotICAgICAgICAgICIwLjAwMzc4NSwgMC4wMDM3ODQsIDAuMDAzNzc0LCAwLjAwMzc2NywgMC4wMDM3NjMsIDAuMDAzNzYsIDAuMDAzNzU5IiwgXAotICAgICAgICAgICIwLjAwMzgwMiwgMC4wMDM4MDEsIDAuMDAzNzkxLCAwLjAwMzc4NCwgMC4wMDM3ODEsIDAuMDAzNzc4LCAwLjAwMzc3NiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzgwMiwgMC4wMDM4MDQsIDAuMDAzODA3LCAwLjAwMzgwOSwgMC4wMDM4MDksIDAuMDAzODEsIDAuMDAzODEiLCBcCi0gICAgICAgICAgIjAuMDAzNzg5LCAwLjAwMzc5LCAwLjAwMzc5MywgMC4wMDM3OTUsIDAuMDAzNzk2LCAwLjAwMzc5NiwgMC4wMDM3OTYiLCBcCi0gICAgICAgICAgIjAuMDAzNzg2LCAwLjAwMzc4NywgMC4wMDM3OTEsIDAuMDAzNzkzLCAwLjAwMzc5MywgMC4wMDM3OTQsIDAuMDAzNzk0IiwgXAotICAgICAgICAgICIwLjAwMzc5NCwgMC4wMDM3OTUsIDAuMDAzNzk5LCAwLjAwMzgsIDAuMDAzOCwgMC4wMDM4MDEsIDAuMDAzODAxIiwgXAotICAgICAgICAgICIwLjAwMzgwNSwgMC4wMDM4MDYsIDAuMDAzODEsIDAuMDAzODEyLCAwLjAwMzgxMiwgMC4wMDM4MTIsIDAuMDAzODEyIiwgXAotICAgICAgICAgICIwLjAwMzgxOCwgMC4wMDM4MTksIDAuMDAzODIyLCAwLjAwMzgyNCwgMC4wMDM4MjUsIDAuMDAzODI1LCAwLjAwMzgyNSIsIFwKLSAgICAgICAgICAiMC4wMDM4NDQsIDAuMDAzODQ1LCAwLjAwMzg0OSwgMC4wMDM4NSwgMC4wMDM4NSwgMC4wMDM4NTEsIDAuMDAzODUxIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihRTikgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjE1MjAwOTsKLSAgICBmdW5jdGlvbiA6ICJRQklOVCI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3NlbnNlIDogbm9uX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiByaXNpbmdfZWRnZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTk2OTY4LCAwLjIxMTA5OCwgMC4zMzgxODgsIDAuNTQ5OTczLCAwLjc2MTc4NSwgMS4yNTU5OCwgMS41Mzg1OSIsIFwKLSAgICAgICAgICAiMC4yMDcxNzksIDAuMjIxMzA3LCAwLjM0ODQ3MSwgMC41NjAxODMsIDAuNzcxOTk1LCAxLjI2NjMsIDEuNTQ4NTEiLCBcCi0gICAgICAgICAgIjAuMjE5OTMzLCAwLjIzNDA2MywgMC4zNjExNTYsIDAuNTczMDUyLCAwLjc4NDc1NSwgMS4yNzkxMiwgMS41NjE1MyIsIFwKLSAgICAgICAgICAiMC4yMzIyOCwgMC4yNDY0MDksIDAuMzczNTc2LCAwLjU4NTI5MSwgMC43OTcxLCAxLjI5MTQ3LCAxLjU3Mzg4IiwgXAotICAgICAgICAgICIwLjI0MzUxNCwgMC4yNTc2NDUsIDAuMzg0NzUxLCAwLjU5NjUwNSwgMC44MDgzMDEsIDEuMzAyNDcsIDEuNTg1MiIsIFwKLSAgICAgICAgICAiMC4yNTg5NzIsIDAuMjczMSwgMC40MDAyMiwgMC42MTE5NjgsIDAuODIzNzk2LCAxLjMxODEzLCAxLjYwMDU1IiwgXAotICAgICAgICAgICIwLjI3MTAxOSwgMC4yODUxNDksIDAuNDEyMjM5LCAwLjYyNDAyOSwgMC44MzU4MzksIDEuMzMwMjEsIDEuNjEyNjIiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTUxODUyLCAwLjE4MTExOSwgMC40NDI0OSwgMC44Nzc5OCwgMS4zMTM1NSwgMi4zMjk4NiwgMi45MTExOCIsIFwKLSAgICAgICAgICAiMC4xNTE4NTUsIDAuMTgxMTE0LCAwLjQ0MTY4MSwgMC44Nzc5NjksIDEuMzEzNTQsIDIuMzMwMTIsIDIuOTEwNDkiLCBcCi0gICAgICAgICAgIjAuMTUxODU2LCAwLjE4MTExOCwgMC40NDIyMzQsIDAuODc2MzYxLCAxLjMxMzU2LCAyLjMzMDMxLCAyLjkxMTEyIiwgXAotICAgICAgICAgICIwLjE1MTg1MSwgMC4xODExMTksIDAuNDQxNjgsIDAuODc3OTc0LCAxLjMxMzU2LCAyLjMzMDMxLCAyLjkxMTE0IiwgXAotICAgICAgICAgICIwLjE1MjA2MiwgMC4xODExMjIsIDAuNDQyNTMzLCAwLjg3Nzk3NCwgMS4zMTM1MSwgMi4zMjY4OCwgMi45MDU0MSIsIFwKLSAgICAgICAgICAiMC4xNTE4NTcsIDAuMTgxMTE2LCAwLjQ0MTUzNiwgMC44Nzc1ODgsIDEuMzEzNTcsIDIuMzMwMjMsIDIuOTExMDYiLCBcCi0gICAgICAgICAgIjAuMTUxODU2LCAwLjE4MTExNywgMC40NDI0OTEsIDAuODc3OTczLCAxLjMxMzU0LCAyLjMzMDMxLCAyLjkxMTExIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE4MTU0MSwgMC4xOTUzNzYsIDAuMzE5ODU1LCAwLjUyNzIyNSwgMC43MzQ2NTcsIDEuMjE4NjUsIDEuNDk1MjEiLCBcCi0gICAgICAgICAgIjAuMTkxNjk4LCAwLjIwNTUzOSwgMC4zMjk5MiwgMC41MzczODgsIDAuNzQ0Nzg1LCAxLjIyODcsIDEuNTA1NDEiLCBcCi0gICAgICAgICAgIjAuMjA0MzI5LCAwLjIxODE2MywgMC4zNDI2NDEsIDAuNTUwMDA0LCAwLjc1NzQ0NywgMS4yNDE0NCwgMS41MTgiLCBcCi0gICAgICAgICAgIjAuMjE2NjQ5LCAwLjIzMDQ4NCwgMC4zNTQ5NjIsIDAuNTYyMzIyLCAwLjc2OTc2NiwgMS4yNTM3NiwgMS41MzAzMiIsIFwKLSAgICAgICAgICAiMC4yMjc2MiwgMC4yNDE0NTUsIDAuMzY1OTMsIDAuNTczMzA0LCAwLjc4MDcxOCwgMS4yNjQ3MywgMS41NDEzIiwgXAotICAgICAgICAgICIwLjI0MzA1MiwgMC4yNTY4NzksIDAuMzgxMzU3LCAwLjU4ODc2NywgMC43OTYxMTQsIDEuMjgwMTcsIDEuNTU2NTYiLCBcCi0gICAgICAgICAgIjAuMjU0NjY2LCAwLjI2ODUwNywgMC4zOTI5NjksIDAuNjAwMzYzLCAwLjgwNzc2MSwgMS4yOTE3MywgMS41NjgzOCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNDUxNjQsIDAuMTczMTQ4LCAwLjQyMjI0OSwgMC44Mzk3MjUsIDEuMjU0MjcsIDIuMjI5MjcsIDIuNzg1MDUiLCBcCi0gICAgICAgICAgIjAuMTQ1MjI4LCAwLjE3MzE1NywgMC40MjI0OTEsIDAuODM5NzIzLCAxLjI1NjQxLCAyLjIyODU5LCAyLjc4NTE5IiwgXAotICAgICAgICAgICIwLjE0NTE3NiwgMC4xNzMxNDcsIDAuNDIyMjQ4LCAwLjgzOTY3OCwgMS4yNTQzMiwgMi4yMjkyMiwgMi43ODQ5OCIsIFwKLSAgICAgICAgICAiMC4xNDUxNzgsIDAuMTczMTQ1LCAwLjQyMjI0NywgMC44Mzk2NiwgMS4yNTQzNCwgMi4yMjkyMywgMi43ODUiLCBcCi0gICAgICAgICAgIjAuMTQ1MTc0LCAwLjE3MzE0MywgMC40MjIyNDksIDAuODM5NzEsIDEuMjU0ODEsIDIuMjI5MjUsIDIuNzg1MDUiLCBcCi0gICAgICAgICAgIjAuMTQ1MTkzLCAwLjE3MjkzLCAwLjQyMzE5NiwgMC44MzgzOCwgMS4yNTU3OCwgMi4yMjkyNywgMi43ODA3MSIsIFwKLSAgICAgICAgICAiMC4xNDUyMjQsIDAuMTczMTY4LCAwLjQyMzE5LCAwLjgzOTg1LCAxLjI1NjQ5LCAyLjIxOTc3LCAyLjc3Nzc4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzgwMiwgMC4wMDM4MDQsIDAuMDAzODA3LCAwLjAwMzgwOSwgMC4wMDM4MDksIDAuMDAzODEsIDAuMDAzODEiLCBcCi0gICAgICAgICAgIjAuMDAzNzg5LCAwLjAwMzc5LCAwLjAwMzc5MywgMC4wMDM3OTUsIDAuMDAzNzk2LCAwLjAwMzc5NiwgMC4wMDM3OTYiLCBcCi0gICAgICAgICAgIjAuMDAzNzg2LCAwLjAwMzc4NywgMC4wMDM3OTEsIDAuMDAzNzkzLCAwLjAwMzc5MywgMC4wMDM3OTQsIDAuMDAzNzk0IiwgXAotICAgICAgICAgICIwLjAwMzc5NCwgMC4wMDM3OTUsIDAuMDAzNzk5LCAwLjAwMzgsIDAuMDAzOCwgMC4wMDM4MDEsIDAuMDAzODAxIiwgXAotICAgICAgICAgICIwLjAwMzgwNSwgMC4wMDM4MDYsIDAuMDAzODEsIDAuMDAzODEyLCAwLjAwMzgxMiwgMC4wMDM4MTIsIDAuMDAzODEyIiwgXAotICAgICAgICAgICIwLjAwMzgxOCwgMC4wMDM4MTksIDAuMDAzODIyLCAwLjAwMzgyNCwgMC4wMDM4MjUsIDAuMDAzODI1LCAwLjAwMzgyNSIsIFwKLSAgICAgICAgICAiMC4wMDM4NDQsIDAuMDAzODQ1LCAwLjAwMzg0OSwgMC4wMDM4NSwgMC4wMDM4NSwgMC4wMDM4NTEsIDAuMDAzODUxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzNzkzLCAwLjAwMzc5MSwgMC4wMDM3ODEsIDAuMDAzNzc0LCAwLjAwMzc3MSwgMC4wMDM3NjksIDAuMDAzNzY3IiwgXAotICAgICAgICAgICIwLjAwMzc3OCwgMC4wMDM3NzYsIDAuMDAzNzY2LCAwLjAwMzc1OSwgMC4wMDM3NTYsIDAuMDAzNzUzLCAwLjAwMzc1MyIsIFwKLSAgICAgICAgICAiMC4wMDM3NywgMC4wMDM3NjksIDAuMDAzNzU4LCAwLjAwMzc1MSwgMC4wMDM3NDgsIDAuMDAzNzQ1LCAwLjAwMzc0NSIsIFwKLSAgICAgICAgICAiMC4wMDM3NzIsIDAuMDAzNzcsIDAuMDAzNzYsIDAuMDAzNzUzLCAwLjAwMzc1LCAwLjAwMzc0NywgMC4wMDM3NDYiLCBcCi0gICAgICAgICAgIjAuMDAzNzc5LCAwLjAwMzc3OCwgMC4wMDM3NjcsIDAuMDAzNzYsIDAuMDAzNzU3LCAwLjAwMzc1NCwgMC4wMDM3NTMiLCBcCi0gICAgICAgICAgIjAuMDAzNzg1LCAwLjAwMzc4NCwgMC4wMDM3NzQsIDAuMDAzNzY3LCAwLjAwMzc2MywgMC4wMDM3NiwgMC4wMDM3NTkiLCBcCi0gICAgICAgICAgIjAuMDAzODAyLCAwLjAwMzgwMSwgMC4wMDM3OTEsIDAuMDAzNzg0LCAwLjAwMzc4MSwgMC4wMDM3NzgsIDAuMDAzNzc2Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBETFkyWDEgKgotICogLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChETFkyWDEpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4yMDE0NjE7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDU4NzMwNDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA1ODcyNDQ7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNTg3MzA0OwotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMjY3MTA3OwotICAgIGZ1bmN0aW9uIDogIkEiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE5MDg5MiwgMC4yMTU0NywgMC4zNTQ1MzcsIDAuNDc3MzQyLCAwLjY0MDk3LCAwLjk2ODI5OCwgMS4xNzI3IiwgXAotICAgICAgICAgICIwLjIwMTAxNywgMC4yMjU1OTMsIDAuMzY0NzM1LCAwLjQ4NzQ3MiwgMC42NTEwODgsIDAuOTc4NDA3LCAxLjE4MjkxIiwgXAotICAgICAgICAgICIwLjIxMjEyMiwgMC4yMzY3MDMsIDAuMzc1ODYxLCAwLjQ5ODU3LCAwLjY2MjIyLCAwLjk4OTU1MSwgMS4xOTQxIiwgXAotICAgICAgICAgICIwLjIyMTE2NCwgMC4yNDU3NDEsIDAuMzg0ODksIDAuNTA3NjE0LCAwLjY3MTI0NCwgMC45OTg1NzMsIDEuMjAyOTYiLCBcCi0gICAgICAgICAgIjAuMjI4NzM1LCAwLjI1MzMxMSwgMC4zOTI0NjEsIDAuNTE1MTksIDAuNjc4NzcyLCAxLjAwNjEyLCAxLjIxMDU4IiwgXAotICAgICAgICAgICIwLjIzOTA1OCwgMC4yNjM2MzksIDAuNDAyNzk2LCAwLjUyNTUwNCwgMC42ODkxNTYsIDEuMDE2NDksIDEuMjIxMDQiLCBcCi0gICAgICAgICAgIjAuMjQ3MDg5LCAwLjI3MTQ2OSwgMC40MTA2MiwgMC41MzM1MzksIDAuNjk3MTkxLCAxLjAyNDMxLCAxLjIyODg3Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5MjUyNCwgMC4xNDI1OTEsIDAuNDI3ODI1LCAwLjY4MjQ3OCwgMS4wMjAxNiwgMS42OTU3NSwgMi4xMTMzNyIsIFwKLSAgICAgICAgICAiMC4wOTI1MTMsIDAuMTQyNTg4LCAwLjQyOTA1NCwgMC42ODI0NzYsIDEuMDIwMDksIDEuNjk1NjcsIDIuMTE3NjYiLCBcCi0gICAgICAgICAgIjAuMDkyNDExLCAwLjE0MjU5MiwgMC40MjgyNjEsIDAuNjgyNDM1LCAxLjAyMDE2LCAxLjY5MjQ3LCAyLjExMzcxIiwgXAotICAgICAgICAgICIwLjA5MjUxOSwgMC4xNDI1OSwgMC40MjgxMzcsIDAuNjgyNDYxLCAxLjAyMDE1LCAxLjY5MjA4LCAyLjExMzE4IiwgXAotICAgICAgICAgICIwLjA5MjUxMiwgMC4xNDI1ODYsIDAuNDI4NzIyLCAwLjY4MjQ3OCwgMS4wMTg3NSwgMS42OTU2NywgMi4xMTc1NCIsIFwKLSAgICAgICAgICAiMC4wOTI0MDcsIDAuMTQyNTkyLCAwLjQyODI1MywgMC42ODI0MjksIDEuMDIwMTYsIDEuNjkyNDUsIDIuMTEzNzIiLCBcCi0gICAgICAgICAgIjAuMDkyNTAxLCAwLjE0MjQ0NywgMC40MjgyMTYsIDAuNjgyNDYzLCAxLjAyMDE5LCAxLjY5MjYxLCAyLjExMzU1Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE5MTkzOCwgMC4yMTY3MjMsIDAuMzU2OTU3LCAwLjQ4MDY0MywgMC42NDU0OTYsIDAuOTc1MiwgMS4xODE0NSIsIFwKLSAgICAgICAgICAiMC4yMDE2NTIsIDAuMjI2NDI5LCAwLjM2NjY1MywgMC40OTAzNDgsIDAuNjU1MjEyLCAwLjk4NTAwMywgMS4xOTExMSIsIFwKLSAgICAgICAgICAiMC4yMTE5ODksIDAuMjM2Nzc0LCAwLjM3NzAwNiwgMC41MDA2OSwgMC42NjU1NTEsIDAuOTk1MzUzLCAxLjIwMTQyIiwgXAotICAgICAgICAgICIwLjIyMDMyOCwgMC4yNDUxMSwgMC4zODUzNDQsIDAuNTA5MDIxLCAwLjY3Mzk0NSwgMS4wMDM2OSwgMS4yMDk3NSIsIFwKLSAgICAgICAgICAiMC4yMjcyNjEsIDAuMjUyMDQ1LCAwLjM5MjIwMywgMC41MTU5NjIsIDAuNjgwODU3LCAxLjAxMDYyLCAxLjIxNjYxIiwgXAotICAgICAgICAgICIwLjIzNjUyNiwgMC4yNjEyMzEsIDAuNDAxNTYxLCAwLjUyNTIwNiwgMC42OTAwOTcsIDEuMDE5ODIsIDEuMjI2MDEiLCBcCi0gICAgICAgICAgIjAuMjQzNDQyLCAwLjI2ODExOSwgMC40MDg0NzEsIDAuNTMyMTI5LCAwLjY5NzAxLCAxLjAyNjcsIDEuMjMyNzkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDkxMSwgMC4xNDA1MjYsIDAuNDIyNDIzLCAwLjY3MjM5LCAxLjAwNDg4LCAxLjY2ODM5LCAyLjA3OTkyIiwgXAotICAgICAgICAgICIwLjA5MTE0NSwgMC4xNDA1MzUsIDAuNDIyNzQ2LCAwLjY3MjM2NywgMS4wMDQ5MywgMS42NzA3OCwgMi4wODY2NiIsIFwKLSAgICAgICAgICAiMC4wOTExLCAwLjE0MDUyNSwgMC40MjI0NDUsIDAuNjcyMzU2LCAxLjAwNDg4LCAxLjY3MDY2LCAyLjA3OTU1IiwgXAotICAgICAgICAgICIwLjA5MTA5NiwgMC4xNDA1MjQsIDAuNDIyNDIsIDAuNjcyMzA5LCAxLjAwMjI3LCAxLjY3MDY0LCAyLjA4MDciLCBcCi0gICAgICAgICAgIjAuMDkxMDk4LCAwLjE0MDUxNSwgMC40MjI0NDYsIDAuNjcyMzE4LCAxLjAwNTA2LCAxLjY3MDYxLCAyLjA3OTQ0IiwgXAotICAgICAgICAgICIwLjA5MTEwNiwgMC4xNDA1MTYsIDAuNDIyMjcyLCAwLjY3MTUsIDEuMDA0OSwgMS42NzA2OSwgMi4wODY2NCIsIFwKLSAgICAgICAgICAiMC4wOTExNDMsIDAuMTQwNTcyLCAwLjQyMjg1NywgMC42NzIzMzksIDEuMDA0OTQsIDEuNjcwNzIsIDIuMDgyMjQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDU4OTgsIDAuMDA1OTA1LCAwLjAwNTkxNSwgMC4wMDU5MTUsIDAuMDA1OTE4LCAwLjAwNTkxOSwgMC4wMDU5MjIiLCBcCi0gICAgICAgICAgIjAuMDA1ODY2LCAwLjAwNTg3MywgMC4wMDU4ODMsIDAuMDA1ODg1LCAwLjAwNTg4NiwgMC4wMDU4ODgsIDAuMDA1ODg3IiwgXAotICAgICAgICAgICIwLjAwNTg2NywgMC4wMDU4NzMsIDAuMDA1ODgzLCAwLjAwNTg4OCwgMC4wMDU4ODcsIDAuMDA1ODg4LCAwLjAwNTg5IiwgXAotICAgICAgICAgICIwLjAwNTg2OSwgMC4wMDU4NzYsIDAuMDA1ODg2LCAwLjAwNTg4OCwgMC4wMDU4ODksIDAuMDA1ODkxLCAwLjAwNTg5MyIsIFwKLSAgICAgICAgICAiMC4wMDU4NzksIDAuMDA1ODg2LCAwLjAwNTg5NiwgMC4wMDU4OTgsIDAuMDA1OSwgMC4wMDU5LCAwLjAwNTkwMSIsIFwKLSAgICAgICAgICAiMC4wMDU5MDEsIDAuMDA1OTA4LCAwLjAwNTkxOCwgMC4wMDU5MjMsIDAuMDA1OTIyLCAwLjAwNTkyNCwgMC4wMDU5MjMiLCBcCi0gICAgICAgICAgIjAuMDA1OTI1LCAwLjAwNTkzLCAwLjAwNTkzOSwgMC4wMDU5NDQsIDAuMDA1OTQ1LCAwLjAwNTk0NSwgMC4wMDU5NDUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDc3NTksIDAuMDA3NzY3LCAwLjAwNzc4LCAwLjAwNzc4MywgMC4wMDc3ODUsIDAuMDA3Nzg2LCAwLjAwNzc4NiIsIFwKLSAgICAgICAgICAiMC4wMDc3MzMsIDAuMDA3NzQxLCAwLjAwNzc1NCwgMC4wMDc3NTcsIDAuMDA3NzU5LCAwLjAwNzc2LCAwLjAwNzc2MSIsIFwKLSAgICAgICAgICAiMC4wMDc3MywgMC4wMDc3MzksIDAuMDA3NzUxLCAwLjAwNzc1NCwgMC4wMDc3NTYsIDAuMDA3NzU3LCAwLjAwNzc1OCIsIFwKLSAgICAgICAgICAiMC4wMDc3MjgsIDAuMDA3NzM3LCAwLjAwNzc0OSwgMC4wMDc3NTIsIDAuMDA3NzU0LCAwLjAwNzc1NiwgMC4wMDc3NTYiLCBcCi0gICAgICAgICAgIjAuMDA3NzM4LCAwLjAwNzc0NywgMC4wMDc3NTgsIDAuMDA3NzYzLCAwLjAwNzc2NCwgMC4wMDc3NjYsIDAuMDA3NzY1IiwgXAotICAgICAgICAgICIwLjAwNzc1OCwgMC4wMDc3NjQsIDAuMDA3Nzc5LCAwLjAwNzc4MiwgMC4wMDc3ODQsIDAuMDA3Nzg0LCAwLjAwNzc4NiIsIFwKLSAgICAgICAgICAiMC4wMDc3NzksIDAuMDA3NzgzLCAwLjAwNzgwMSwgMC4wMDc4MDQsIDAuMDA3ODA2LCAwLjAwNzgwMywgMC4wMDc4MDgiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IERMWTNYMSAqCi0gKiAtLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKERMWTNYMSkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjI4MDA2OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2NTQwMzI7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjUzOTg3OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDY1NDAzMjsKLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjI1ODk3NzsKLSAgICBmdW5jdGlvbiA6ICJBIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yNTkzOTgsIDAuMjgzOTIsIDAuNDIyODM1LCAwLjU0NTUwNCwgMC43MDkwNzYsIDEuMDM2MzEsIDEuMjQwNzMiLCBcCi0gICAgICAgICAgIjAuMjY5NTQ1LCAwLjI5NDA1NiwgMC40MzI5NzEsIDAuNTU1NjM5LCAwLjcxOTIzOSwgMS4wNDYzOSwgMS4yNTA5OSIsIFwKLSAgICAgICAgICAiMC4yODA3MjYsIDAuMzA1MjI5LCAwLjQ0NDEzNSwgMC41NjY4MTcsIDAuNzMwMzU2LCAxLjA1NzU3LCAxLjI2MjA4IiwgXAotICAgICAgICAgICIwLjI4OTg0MSwgMC4zMTQzNTYsIDAuNDUzMjY2LCAwLjU3NTkzMywgMC43Mzk1MzIsIDEuMDY2NjgsIDEuMjcxMTMiLCBcCi0gICAgICAgICAgIjAuMjk3NDc2LCAwLjMyMTk4NiwgMC40NjA4OTUsIDAuNTgzNTc1LCAwLjc0NzExMSwgMS4wNzQzMywgMS4yNzg4MyIsIFwKLSAgICAgICAgICAiMC4zMDc5LCAwLjMzMjQwNiwgMC40NzEzMTYsIDAuNTkzOTk1LCAwLjc1NzUzNSwgMS4wODQ3NSwgMS4yODkyNSIsIFwKLSAgICAgICAgICAiMC4zMTU5NjgsIDAuMzQwNDc2LCAwLjQ3OTI1MiwgMC42MDE5MTcsIDAuNzY1NjQxLCAxLjA5MjY1LCAxLjI5NzI3Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5MTg3MSwgMC4xNDIxMjgsIDAuNDI3MzExLCAwLjY4MTY5MiwgMS4wMTkwNCwgMS42OTM4MSwgMi4xMTEyMiIsIFwKLSAgICAgICAgICAiMC4wOTE4MiwgMC4xNDE3ODEsIDAuNDI3NTIxLCAwLjY4MTY0NiwgMS4wMTkwNywgMS42OTA2NiwgMi4xMTU0OCIsIFwKLSAgICAgICAgICAiMC4wOTE3NDUsIDAuMTQxNzgxLCAwLjQyODYxNywgMC42ODE2NjUsIDEuMDE4ODgsIDEuNjkwODgsIDIuMTExNTgiLCBcCi0gICAgICAgICAgIjAuMDkxNjkxLCAwLjE0MTk0NCwgMC40Mjc1MzIsIDAuNjgxNjQ2LCAxLjAxOTA3LCAxLjY5MDY3LCAyLjExMjQ0IiwgXAotICAgICAgICAgICIwLjA5MTg4MSwgMC4xNDE3OCwgMC40Mjg2MjMsIDAuNjgxNjY5LCAxLjAxODg3LCAxLjY5MDg3LCAyLjExMTU4IiwgXAotICAgICAgICAgICIwLjA5MTcyNSwgMC4xNDE3OCwgMC40Mjg2MjQsIDAuNjgxNjY3LCAxLjAxODg4LCAxLjY5MDg3LCAyLjExMTU5IiwgXAotICAgICAgICAgICIwLjA5MTgwOCwgMC4xNDE5MzUsIDAuNDI4MDM2LCAwLjY4MTY1MSwgMS4wMTkwMywgMS42OTA4NCwgMi4xMTI0NSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yNjA1ODIsIDAuMjg1MzksIDAuNDI1NTE2LCAwLjU0OTE2NywgMC43MTQwODQsIDEuMDQzOSwgMS4yNTAxIiwgXAotICAgICAgICAgICIwLjI3MDMzLCAwLjI5NTA2NSwgMC40MzUxOTYsIDAuNTU4ODQ3LCAwLjcyMzc2MSwgMS4wNTM1NywgMS4yNTk3OCIsIFwKLSAgICAgICAgICAiMC4yODA4MjIsIDAuMzA1NTU0LCAwLjQ0NTY5LCAwLjU2OTMzOCwgMC43MzQyNzIsIDEuMDY0MTcsIDEuMjcwMjIiLCBcCi0gICAgICAgICAgIjAuMjg5MTk5LCAwLjMxMzkzMSwgMC40NTQwNjcsIDAuNTc3NzE2LCAwLjc0MjYzNCwgMS4wNzI1NCwgMS4yNzg2MiIsIFwKLSAgICAgICAgICAiMC4yOTYxMTEsIDAuMzIwODQ5LCAwLjQ2MTAzOSwgMC41ODQ3MDYsIDAuNzQ5NTgyLCAxLjA3OTUzLCAxLjI4NTU4IiwgXAotICAgICAgICAgICIwLjMwNTY0MSwgMC4zMzAzNzMsIDAuNDcwNTA3LCAwLjU5NDA3MSwgMC43NTg5ODQsIDEuMDg4OTEsIDEuMjk1MDYiLCBcCi0gICAgICAgICAgIjAuMzEyNTk2LCAwLjMzNzI5MiwgMC40Nzc0MDcsIDAuNjAxMTE0LCAwLjc2NjA1MiwgMS4wOTU5MSwgMS4zMDIwMyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTA1NzksIDAuMTM5OTUxLCAwLjQyMjgzMSwgMC42NzIzOTIsIDEuMDA1MjIsIDEuNjY3NzQsIDIuMDgxMjkiLCBcCi0gICAgICAgICAgIjAuMDkwNTU0LCAwLjE0MDE3OCwgMC40MjE4NzMsIDAuNjcyMzcxLCAxLjAwNTI1LCAxLjY2Nzc3LCAyLjA4MTI0IiwgXAotICAgICAgICAgICIwLjA5MDU2NiwgMC4xNDAxODMsIDAuNDIyODcxLCAwLjY3MjM5NSwgMS4wMDUzMSwgMS42NzEyMiwgMi4wODI2MSIsIFwKLSAgICAgICAgICAiMC4wOTA1NjMsIDAuMTQwMTgzLCAwLjQyMjg2LCAwLjY3MjM5NywgMS4wMDUyNywgMS42NzEyMywgMi4wODM2MiIsIFwKLSAgICAgICAgICAiMC4wOTA3MDcsIDAuMTQwMjU0LCAwLjQyMjc5MiwgMC42NzI0MTEsIDEuMDAzMDUsIDEuNjcxMTksIDIuMDg2NDgiLCBcCi0gICAgICAgICAgIjAuMDkwNTY5LCAwLjE0MDE4NSwgMC40MjI4NTEsIDAuNjcyMzg5LCAxLjAwMzg0LCAxLjY3MTE4LCAyLjA4MzQxIiwgXAotICAgICAgICAgICIwLjA5MDU2LCAwLjE0MDE2NiwgMC40MjI0OTIsIDAuNjcyNDI4LCAxLjAwMTgyLCAxLjY3MTE5LCAyLjA4MzQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDg0OTgsIDAuMDA4NDkyLCAwLjAwODQ2LCAwLjAwODQ0OCwgMC4wMDg0MzksIDAuMDA4NDMsIDAuMDA4NDMiLCBcCi0gICAgICAgICAgIjAuMDA4NDY2LCAwLjAwODQ2LCAwLjAwODQyOCwgMC4wMDg0MTYsIDAuMDA4NDA3LCAwLjAwODQsIDAuMDA4Mzk3IiwgXAotICAgICAgICAgICIwLjAwODQ2NywgMC4wMDg0NiwgMC4wMDg0MjgsIDAuMDA4NDE2LCAwLjAwODQwOCwgMC4wMDgzOTcsIDAuMDA4Mzk4IiwgXAotICAgICAgICAgICIwLjAwODQ2OSwgMC4wMDg0NjMsIDAuMDA4NDMxLCAwLjAwODQxOSwgMC4wMDg0MSwgMC4wMDg0MDMsIDAuMDA4Mzk4IiwgXAotICAgICAgICAgICIwLjAwODQ4LCAwLjAwODQ3MywgMC4wMDg0NDEsIDAuMDA4NDI5LCAwLjAwODQyMSwgMC4wMDg0MTMsIDAuMDA4NDExIiwgXAotICAgICAgICAgICIwLjAwODUwMiwgMC4wMDg0OTUsIDAuMDA4NDYzLCAwLjAwODQ1MSwgMC4wMDg0NDEsIDAuMDA4NDM1LCAwLjAwODQzMyIsIFwKLSAgICAgICAgICAiMC4wMDg1MjUsIDAuMDA4NTE5LCAwLjAwODQ4MywgMC4wMDg0NzEsIDAuMDA4NDY2LCAwLjAwODQ1NSwgMC4wMDg0NTYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTAwMjgsIDAuMDEwMDI2LCAwLjAxMDAwNywgMC4wMDk5OTksIDAuMDA5OTk0LCAwLjAwOTk4OSwgMC4wMDk5ODgiLCBcCi0gICAgICAgICAgIjAuMDEwMDAzLCAwLjAxMDAwMSwgMC4wMDk5ODIsIDAuMDA5OTc0LCAwLjAwOTk2OCwgMC4wMDk5NjQsIDAuMDA5OTYyIiwgXAotICAgICAgICAgICIwLjAxLCAwLjAwOTk5OCwgMC4wMDk5NzgsIDAuMDA5OTcxLCAwLjAwOTk2NiwgMC4wMDk5NjEsIDAuMDA5OTU5IiwgXAotICAgICAgICAgICIwLjAwOTk5OCwgMC4wMDk5OTYsIDAuMDA5OTc2LCAwLjAwOTk2OSwgMC4wMDk5NjQsIDAuMDA5OTU5LCAwLjAwOTk1OCIsIFwKLSAgICAgICAgICAiMC4wMTAwMDgsIDAuMDEwMDA2LCAwLjAwOTk4NiwgMC4wMDk5NzksIDAuMDA5OTc0LCAwLjAwOTk2OSwgMC4wMDk5NjgiLCBcCi0gICAgICAgICAgIjAuMDEwMDI4LCAwLjAxMDAyNiwgMC4wMTAwMDYsIDAuMDA5OTk3LCAwLjAwOTk5MiwgMC4wMDk5ODcsIDAuMDA5OTg4IiwgXAotICAgICAgICAgICIwLjAxMDA0OSwgMC4wMTAwNDQsIDAuMDEwMDI2LCAwLjAxMDAyLCAwLjAxMDAxMiwgMC4wMTAwMDgsIDAuMDEwMDA4Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBETFk0WDQgKgotICogLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChETFk0WDQpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC40ODkxOwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2MDQyMTE7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjAzODA2OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDYwNDIxMTsKLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAxLjAyOTU4OwotICAgIGZ1bmN0aW9uIDogIkEiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzExMDEyLCAwLjM4NDcxNCwgMC40NTc0LCAwLjUwOTM1MywgMC41OTIzNDksIDAuNjY1MDQxLCAwLjc2ODY0MyIsIFwKLSAgICAgICAgICAiMC4zMjA5MjYsIDAuMzk0NjI2LCAwLjQ2NzMwNCwgMC41MTkyMDEsIDAuNjAyMjU3LCAwLjY3NDk2OCwgMC43Nzg3ODciLCBcCi0gICAgICAgICAgIjAuMzMxNDAxLCAwLjQwNTEsIDAuNDc3Nzg0LCAwLjUyOTcyMywgMC42MTI3MzQsIDAuNjg1NDMxLCAwLjc4OTEyOSIsIFwKLSAgICAgICAgICAiMC4zMzk1OTgsIDAuNDEzMjk4LCAwLjQ4NTk4MiwgMC41Mzc5MjYsIDAuNjIwOTMxLCAwLjY5MzYzLCAwLjc5NzQwNiIsIFwKLSAgICAgICAgICAiMC4zNDY1MDMsIDAuNDIwMjAyLCAwLjQ5Mjg4NiwgMC41NDQ4MjUsIDAuNjI3ODM1LCAwLjcwMDUzMywgMC44MDQyOTgiLCBcCi0gICAgICAgICAgIjAuMzU1OTA2LCAwLjQyOTYwMSwgMC41MDIyNywgMC41NTQyMDksIDAuNjM3MjM4LCAwLjcwOTkzMSwgMC44MTM1NjgiLCBcCi0gICAgICAgICAgIjAuMzYzMTU3LCAwLjQzNjg1NiwgMC41MDk0NSwgMC41NjEzNTQsIDAuNjQ0MzkxLCAwLjcxNzEwOSwgMC44MjA4NDMiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzIxMTYsIDAuMTc5NTM0LCAwLjMyOTk0MywgMC40Mzc2OTgsIDAuNjA5NTUxLCAwLjc2MTIxOSwgMC45NzgxNzMiLCBcCi0gICAgICAgICAgIjAuMDMyMTI0LCAwLjE3OTA1OSwgMC4zMjk1OTEsIDAuNDM4NDQsIDAuNjEwNjE5LCAwLjc2MTIyMSwgMC45NzY5NzYiLCBcCi0gICAgICAgICAgIjAuMDMyMTE2LCAwLjE3OTUyOSwgMC4zMjk5NjYsIDAuNDM3NjgsIDAuNjEwMzg1LCAwLjc2MTIzNSwgMC45Nzg2NDMiLCBcCi0gICAgICAgICAgIjAuMDMyMTE1LCAwLjE3OTUzLCAwLjMyOTk3NCwgMC40Mzc2NTIsIDAuNjEwMzcsIDAuNzYxMjM1LCAwLjk3NjkxMyIsIFwKLSAgICAgICAgICAiMC4wMzIxMjEsIDAuMTc5NTI5LCAwLjMyOTk2NCwgMC40Mzc2OCwgMC42MTAzODIsIDAuNzYxMjM1LCAwLjk3ODY5OSIsIFwKLSAgICAgICAgICAiMC4wMzIxNSwgMC4xNzk1MjcsIDAuMzMwMDQ3LCAwLjQzODU3OSwgMC42MDk0ODgsIDAuNzYxMjM2LCAwLjk3ODYwOCIsIFwKLSAgICAgICAgICAiMC4wMzIxMzUsIDAuMTc5NTE0LCAwLjMyOTgwMiwgMC40Mzg1MzMsIDAuNjEwNTY5LCAwLjc2MTIzMSwgMC45Nzg2NjYiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMDk0OTUsIDAuMzg0MDEsIDAuNDU3NDMsIDAuNTA5ODkzLCAwLjU5MzY5MiwgMC42NjY5OTIsIDAuNzcxODE4IiwgXAotICAgICAgICAgICIwLjMxOTEzNCwgMC4zOTM2NywgMC40NjcwODQsIDAuNTE5NDg4LCAwLjYwMzM4MywgMC42NzY3MDQsIDAuNzgxNDg1IiwgXAotICAgICAgICAgICIwLjMyODc2NSwgMC40MDMzMjQsIDAuNDc2Njk4LCAwLjUyOTA5MywgMC42MTI5NjEsIDAuNjg2MjY0LCAwLjc5MTA1IiwgXAotICAgICAgICAgICIwLjMzNjA5NSwgMC40MTA2MjMsIDAuNDg0MDQsIDAuNTM2NDM1LCAwLjYyMDI5NiwgMC42OTM2NCwgMC43OTg0MjEiLCBcCi0gICAgICAgICAgIjAuMzQyMzE4LCAwLjQxNjk0MiwgMC40OTAzNywgMC41NDI2NjUsIDAuNjI2NTIsIDAuNjk5OTQyLCAwLjgwNDYyMiIsIFwKLSAgICAgICAgICAiMC4zNTA2MSwgMC40MjUxNjIsIDAuNDk4NTgxLCAwLjU1MTA1LCAwLjYzNDgxNywgMC43MDgyNjksIDAuODEzMDI0IiwgXAotICAgICAgICAgICIwLjM1Njg0NSwgMC40MzEzMjksIDAuNTA0NzUyLCAwLjU1NzEyOCwgMC42NDEwOTQsIDAuNzE0NDIzLCAwLjgxOTExOCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzMTQwNCwgMC4xNzY4NDcsIDAuMzI1NDYxLCAwLjQzMDUyMywgMC42MDA0MDEsIDAuNzUwNzM0LCAwLjk2MTU5NyIsIFwKLSAgICAgICAgICAiMC4wMzEzODgsIDAuMTc2ODIzLCAwLjMyNDM1OSwgMC40MzA5MzgsIDAuNjAwMzU2LCAwLjc1MDk4NywgMC45NjM3MjIiLCBcCi0gICAgICAgICAgIjAuMDMxNDEsIDAuMTc2ODI5LCAwLjMyNDU5MiwgMC40MzE3NDEsIDAuNjAwMzQ1LCAwLjc0OTQwOCwgMC45NjM1NjYiLCBcCi0gICAgICAgICAgIjAuMDMxMzk1LCAwLjE3NjgxNiwgMC4zMjQ0MjYsIDAuNDMxNjgzLCAwLjYwMDUxOCwgMC43NTA4MzQsIDAuOTYxMDQ1IiwgXAotICAgICAgICAgICIwLjAzMTM4NywgMC4xNzY4NCwgMC4zMjQ2NCwgMC40MzE2NzIsIDAuNjAxOTE3LCAwLjc0OTMyNSwgMC45NjM0MjgiLCBcCi0gICAgICAgICAgIjAuMDMxMzg4LCAwLjE3Njg3OSwgMC4zMjQ1NDEsIDAuNDMxNjQxLCAwLjYwMTkzOSwgMC43NTA4NzksIDAuOTYzNDI4IiwgXAotICAgICAgICAgICIwLjAzMTQwOCwgMC4xNzY4NjIsIDAuMzI0NzYsIDAuNDMxNjc0LCAwLjYwMDM0MywgMC43NTA5MTMsIDAuOTYxMjM2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTQ4OTksIDAuMDE1MDQsIDAuMDE1MDU3LCAwLjAxNTA2MiwgMC4wMTUwNjcsIDAuMDE1MDY5LCAwLjAxNTA3MSIsIFwKLSAgICAgICAgICAiMC4wMTQ4NzEsIDAuMDE1MDExLCAwLjAxNTAzMiwgMC4wMTUwMzksIDAuMDE1MDQyLCAwLjAxNTA0LCAwLjAxNTA0MiIsIFwKLSAgICAgICAgICAiMC4wMTQ4NzQsIDAuMDE1MDE1LCAwLjAxNTAzMiwgMC4wMTUwMzcsIDAuMDE1MDQxLCAwLjAxNTA0NCwgMC4wMTUwNDQiLCBcCi0gICAgICAgICAgIjAuMDE0ODc3LCAwLjAxNTAxNywgMC4wMTUwMzQsIDAuMDE1MDM5LCAwLjAxNTA0MywgMC4wMTUwNDUsIDAuMDE1MDQ4IiwgXAotICAgICAgICAgICIwLjAxNDg5LCAwLjAxNTAzMSwgMC4wMTUwNDksIDAuMDE1MDUzLCAwLjAxNTA1OCwgMC4wMTUwNiwgMC4wMTUwNjEiLCBcCi0gICAgICAgICAgIjAuMDE0OTE3LCAwLjAxNTA1NywgMC4wMTUwNzUsIDAuMDE1MDgsIDAuMDE1MDg1LCAwLjAxNTA4NiwgMC4wMTUwODgiLCBcCi0gICAgICAgICAgIjAuMDE0OTQxLCAwLjAxNTA4MiwgMC4wMTUwOTcsIDAuMDE1MTEzLCAwLjAxNTEwNiwgMC4wMTUxMDgsIDAuMDE1MTIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxNDUyMSwgMC4wMTQ3MSwgMC4wMTQ3MzUsIDAuMDE0NzQyLCAwLjAxNDc0OCwgMC4wMTQ3NTEsIDAuMDE0NzU1IiwgXAotICAgICAgICAgICIwLjAxNDQ5NSwgMC4wMTQ2ODQsIDAuMDE0NzA5LCAwLjAxNDcxNiwgMC4wMTQ3MjIsIDAuMDE0NzI2LCAwLjAxNDcyOCIsIFwKLSAgICAgICAgICAiMC4wMTQ0OSwgMC4wMTQ2NzgsIDAuMDE0NzAzLCAwLjAxNDcxLCAwLjAxNDcxNywgMC4wMTQ3MjEsIDAuMDE0NzIzIiwgXAotICAgICAgICAgICIwLjAxNDQ5NywgMC4wMTQ2ODUsIDAuMDE0NzEsIDAuMDE0NzE3LCAwLjAxNDcyNCwgMC4wMTQ3MjcsIDAuMDE0NzI5IiwgXAotICAgICAgICAgICIwLjAxNDUwNSwgMC4wMTQ2OTYsIDAuMDE0NzIsIDAuMDE0NzI2LCAwLjAxNDczMiwgMC4wMTQ3MzcsIDAuMDE0NzM5IiwgXAotICAgICAgICAgICIwLjAxNDUzLCAwLjAxNDcxOCwgMC4wMTQ3NDIsIDAuMDE0NzUzLCAwLjAxNDc1NiwgMC4wMTQ3NjIsIDAuMDE0NzY1IiwgXAotICAgICAgICAgICIwLjAxNDU1NCwgMC4wMTQ3NCwgMC4wMTQ3NjQsIDAuMDE0NzcyLCAwLjAxNDc4MSwgMC4wMTQ3ODMsIDAuMDE0Nzg0Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IEVERkZIUVg4ICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChFREZGSFFYOCkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjc5NTg3ODsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBmZiAoTjMwLFFCSU5UKSB7Ci0gICAgbmV4dF9zdGF0ZSA6ICIoKEUgRCkgKyAoIUUgKCEoIU4zMCkpKSkiOwotICAgIGNsb2NrZWRfb24gOiAiQ0siOwotICB9Ci0gIHBpbihDSykgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjc4MzEyOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDY3ODExODsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2NzgzMTI7Ci0gICAgY2xvY2sgOiB0cnVlOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzUzLCAwLjAwMzUwNCwgMC4wMDM0OTUsIDAuMDAzNDk2LCAwLjAwMzUwNiwgMC4wMDM1MjgsIDAuMDAzNTQ5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA2OTQxLCAwLjAwNjkyLCAwLjAwNjkyLCAwLjAwNjkyOSwgMC4wMDY5NjYsIDAuMDA3MDEyLCAwLjAwNzA1NiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQmRSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fRV9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMTI0MDU5LCAwLjEzNDI0OCwgMC4xNDY5NTQsIDAuMTU4NzM1LCAwLjE2OTE1LCAwLjE4MzU0MiwgMC4xOTQ2OTQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjA4OTE5NiwgMC4wOTkwMTYsIDAuMTExMjc2LCAwLjEyMjYzMiwgMC4xMzIzMjIsIDAuMTQ1NDIyLCAwLjE1NTM4OSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwOTM0NzM5OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDkzMTkwOTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA5MzQ3Mzk7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzMjgzLCAwLjAwMzI1MywgMC4wMDMyMzcsIDAuMDAzMjI4LCAwLjAwMzIyNSwgMC4wMDMyMjksIDAuMDAzMjQyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA3Mjg3LCAwLjAwNzI3LCAwLjAwNzI2LCAwLjAwNzI1NSwgMC4wMDcyNTYsIDAuMDA3MjU2LCAwLjAwNzI2OCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJFIjsKLSAgICAgIHNkZl9jb25kIDogIkUgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDUsIC0wLjA0NSwgLTAuMDM4NzUsIC0wLjAzMjUsIC0wLjAyNjI1LCAtMC4wMTYyNSwgLTAuMDEzNzUiLCBcCi0gICAgICAgICAgIi0wLjA2MTI1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzNzUsIC0wLjAyNzUsIC0wLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDY3NSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDQsIC0wLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wOCwgLTAuMDc1LCAtMC4wNjg3NSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA1MjUsIC0wLjA0Mzc1IiwgXAotICAgICAgICAgICItMC4wOTI1LCAtMC4wODc1LCAtMC4wNzUsIC0wLjA3NSwgLTAuMDY4NzUsIC0wLjA1ODc1LCAtMC4wNTYyNSIsIFwKLSAgICAgICAgICAiLTAuMTA4NzUsIC0wLjA5NzUsIC0wLjA5MTI1LCAtMC4wODUsIC0wLjA4NSwgLTAuMDc1LCAtMC4wNzI1IiwgXAotICAgICAgICAgICItMC4xMTc1LCAtMC4xMTI1LCAtMC4xMDYyNSwgLTAuMSwgLTAuMDkzNzUsIC0wLjA5LCAtMC4wODEyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAxMjUsIC0wLjAwMTI1LCAwLjAwNSwgMC4wMTc1LCAwLjAyMzc1LCAwLjA0LCAwLjA0ODc1IiwgXAotICAgICAgICAgICItMC4wMTc1LCAtMC4wMTI1LCAwLCAwLjAwNjI1LCAwLjAxODc1LCAwLjAyODc1LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMTg3NSwgLTAuMDEyNSwgMCwgMC4wMDYyNSwgMC4wMjI1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDMxMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAwLCAwLjAxLCAwLjAxODc1IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAwLjAwMzc1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjA1MjUsIC0wLjA0NzUsIC0wLjA0MTI1LCAtMC4wMjg3NSwgLTAuMDIyNSwgLTAuMDEyNSwgLTAuMDAzNzUiLCBcCi0gICAgICAgICAgIi0wLjA2MTI1LCAtMC4wNTYyNSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMjEyNSwgLTAuMDEyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiRSI7Ci0gICAgICBzZGZfY29uZCA6ICJFID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4NzUsIDAuMDc2MjUsIDAuMDYzNzUsIDAuMDU3NSwgMC4wNTEyNSwgMC4wNDEyNSwgMC4wMzg3NSIsIFwKLSAgICAgICAgICAiMC4wOTI1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1MjUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMTA1LCAwLjA5Mzc1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIjAuMTE3NSwgMC4xMDYyNSwgMC4wOTM3NSwgMC4wODc1LCAwLjA4MTI1LCAwLjA3MTI1LCAwLjA2ODc1IiwgXAotICAgICAgICAgICIwLjEyMzc1LCAwLjExMjUsIDAuMTA2MjUsIDAuMSwgMC4wOTM3NSwgMC4wODM3NSwgMC4wODEyNSIsIFwKLSAgICAgICAgICAiMC4xNCwgMC4xMjg3NSwgMC4xMjI1LCAwLjExNjI1LCAwLjExLCAwLjEsIDAuMDk3NSIsIFwKLSAgICAgICAgICAiMC4xNTUsIDAuMTQzNzUsIDAuMTM3NSwgMC4xMjUsIDAuMTE4NzUsIDAuMTE1LCAwLjEwNjI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDYyNSwgMC4wNTEyNSwgMC4wMzg3NSwgMC4wMjYyNSwgMC4wMTM3NSwgMC4wMDM3NSwgLTAuMDA1IiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDYyNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAyNSwgMC4wMDg3NSwgMCIsIFwKLSAgICAgICAgICAiMC4wOCwgMC4wNjg3NSwgMC4wNTYyNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAyMTI1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMDkyNSwgMC4wODEyNSwgMC4wNjg3NSwgMC4wNTYyNSwgMC4wNDM3NSwgMC4wMzM3NSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4wOTg3NSwgMC4wODc1LCAwLjA3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA0LCAwLjAzMTI1IiwgXAotICAgICAgICAgICIwLjExNSwgMC4xMDM3NSwgMC4wOTEyNSwgMC4wNzg3NSwgMC4wNjYyNSwgMC4wNTYyNSwgMC4wNDEyNSIsIFwKLSAgICAgICAgICAiMC4xMjM3NSwgMC4xMTI1LCAwLjEsIDAuMDg3NSwgMC4wODEyNSwgMC4wNjUsIDAuMDU2MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEUpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTc1ODc7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNzU3MDI7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNzU4NzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDY3NTYsIDAuMDA2NzM1LCAwLjAwNjcyMiwgMC4wMDY3MjQsIDAuMDA2NzMsIDAuMDA2NzUxLCAwLjAwNjc3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNzgyMywgMC4wMDc3NzMsIDAuMDA3NzU0LCAwLjAwNzc1NSwgMC4wMDc3NywgMC4wMDc4MTUsIDAuMDA3ODYyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEIjsKLSAgICAgIHNkZl9jb25kIDogIkQgPT0gMSdiMCI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDU2MjUsIC0wLjA0NSwgLTAuMDMyNSwgLTAuMDIsIC0wLjAxMzc1LCAwLjAwMjUsIDAuMDExMjUiLCBcCi0gICAgICAgICAgIi0wLjA2NzUsIC0wLjA1NjI1LCAtMC4wNDM3NSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDA4NzUsIDAiLCBcCi0gICAgICAgICAgIi0wLjA4LCAtMC4wNjg3NSwgLTAuMDU2MjUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMjEyNSwgLTAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDg2MjUsIC0wLjA3NSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA0Mzc1LCAtMC4wMjc1LCAtMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDkyNSwgLTAuMDg3NSwgLTAuMDc1LCAtMC4wNjI1LCAtMC4wNSwgLTAuMDQsIC0wLjAzMTI1IiwgXAotICAgICAgICAgICItMC4xMDg3NSwgLTAuMDk3NSwgLTAuMDg1LCAtMC4wNzI1LCAtMC4wNiwgLTAuMDUsIC0wLjA0MTI1IiwgXAotICAgICAgICAgICItMC4xMTc1LCAtMC4xMDYyNSwgLTAuMDkzNzUsIC0wLjA4MTI1LCAtMC4wNjg3NSwgLTAuMDU4NzUsIC0wLjA1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDMxMjUsIC0wLjAyNjI1LCAtMC4wMiwgLTAuMDEzNzUsIC0wLjAwNzUsIC0wLjAwMzc1LCAwLjAwNSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAwODc1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMjEyNSwgLTAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjA2NzUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjA0Mzc1LCAtMC4wMzM3NSwgLTAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjA3Mzc1LCAtMC4wNjg3NSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNCwgLTAuMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDgzNzUsIC0wLjA3ODc1LCAtMC4wNzI1LCAtMC4wNjYyNSwgLTAuMDYsIC0wLjA1NjI1LCAtMC4wNDc1IiwgXAotICAgICAgICAgICItMC4wOTI1LCAtMC4wODc1LCAtMC4wODEyNSwgLTAuMDc1LCAtMC4wNjg3NSwgLTAuMDU4NzUsIC0wLjA1NjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIkQiOwotICAgICAgc2RmX2NvbmQgOiAiRCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wNTYyNSwgLTAuMDQ1LCAtMC4wMzg3NSwgLTAuMDMyNSwgLTAuMDI2MjUsIC0wLjAyMjUsIC0wLjAxMzc1IiwgXAotICAgICAgICAgICItMC4wNjEyNSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDI3NSwgLTAuMDI1IiwgXAotICAgICAgICAgICItMC4wNzM3NSwgLTAuMDY4NzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDQsIC0wLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjA4NjI1LCAtMC4wODEyNSwgLTAuMDc1LCAtMC4wNjg3NSwgLTAuMDYyNSwgLTAuMDUyNSwgLTAuMDUiLCBcCi0gICAgICAgICAgIi0wLjA5ODc1LCAtMC4wOTM3NSwgLTAuMDgxMjUsIC0wLjA3NSwgLTAuMDc1LCAtMC4wNjUsIC0wLjA1NjI1IiwgXAotICAgICAgICAgICItMC4xMTUsIC0wLjExLCAtMC4xMDM3NSwgLTAuMDk3NSwgLTAuMDkxMjUsIC0wLjA4MTI1LCAtMC4wNzg3NSIsIFwKLSAgICAgICAgICAiLTAuMTMsIC0wLjEyNSwgLTAuMTEyNSwgLTAuMTA2MjUsIC0wLjEwNjI1LCAtMC4wOTYyNSwgLTAuMDg3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEyNSwgMC4wMTc1LCAwLjAzLCAwLjA0MjUsIDAuMDQ4NzUsIDAuMDY1LCAwLjA3Mzc1IiwgXAotICAgICAgICAgICIwLjAwMTI1LCAwLjAxMjUsIDAuMDI1LCAwLjAzMTI1LCAwLjAzNzUsIDAuMDUzNzUsIDAuMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDA1LCAwLCAwLjAxMjUsIDAuMDE4NzUsIDAuMDMxMjUsIDAuMDQxMjUsIDAuMDUiLCBcCi0gICAgICAgICAgIi0wLjAxMTI1LCAtMC4wMDYyNSwgMCwgMC4wMTI1LCAwLjAxODc1LCAwLjAyODc1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICItMC4wMTc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMC4wMDYyNSwgMC4wMTI1LCAwLjAyMjUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjAyNzUsIC0wLjAyMjUsIC0wLjAxLCAtMC4wMDM3NSwgMC4wMDI1LCAwLjAxMjUsIDAuMDIxMjUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMC4wMDM3NSwgMC4wMTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRCI7Ci0gICAgICBzZGZfY29uZCA6ICJEID09IDEnYjAiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3NSwgMC4wNjM3NSwgMC4wNTEyNSwgMC4wMzg3NSwgMC4wMjYyNSwgMC4wMTYyNSwgMC4wMDEyNSIsIFwKLSAgICAgICAgICAiMC4wOCwgMC4wNzUsIDAuMDYyNSwgMC4wNSwgMC4wMzc1LCAwLjAyMTI1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMDkyNSwgMC4wODEyNSwgMC4wNjg3NSwgMC4wNTYyNSwgMC4wNSwgMC4wMzM3NSwgMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMTA1LCAwLjA5Mzc1LCAwLjA4MTI1LCAwLjA2ODc1LCAwLjA1NjI1LCAwLjA0NjI1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICIwLjExMTI1LCAwLjEsIDAuMDg3NSwgMC4wNzUsIDAuMDY4NzUsIDAuMDUyNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4xMjEyNSwgMC4xMSwgMC4wOTc1LCAwLjA4NSwgMC4wNzg3NSwgMC4wNjI1LCAwLjA1Mzc1IiwgXAotICAgICAgICAgICIwLjEzLCAwLjExODc1LCAwLjEwNjI1LCAwLjA5Mzc1LCAwLjA4NzUsIDAuMDcxMjUsIDAuMDYyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0Mzc1LCAwLjAzODc1LCAwLjAyNjI1LCAwLjAyLCAwLjAyLCAwLjAxLCAwLjAwMTI1IiwgXAotICAgICAgICAgICIwLjA1NSwgMC4wNSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMjEyNSwgMC4wMTI1IiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDYyNSwgMC4wNSwgMC4wNDM3NSwgMC4wNDM3NSwgMC4wMzM3NSwgMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMDgsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNSwgMC4wNDYyNSwgMC4wMzc1IiwgXAotICAgICAgICAgICIwLjA4NjI1LCAwLjA4MTI1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDYyNSwgMC4wNTI1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjA5NjI1LCAwLjA5MTI1LCAwLjA4NSwgMC4wNzg3NSwgMC4wNzI1LCAwLjA2MjUsIDAuMDYiLCBcCi0gICAgICAgICAgIjAuMTA1LCAwLjEsIDAuMDkzNzUsIDAuMDg3NSwgMC4wODEyNSwgMC4wNzEyNSwgMC4wNjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJEIjsKLSAgICAgIHNkZl9jb25kIDogIkQgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDgxMjUsIDAuMDcsIDAuMDU3NSwgMC4wNTEyNSwgMC4wNDUsIDAuMDM1LCAwLjAzMjUiLCBcCi0gICAgICAgICAgIjAuMDg2MjUsIDAuMDc1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDQ2MjUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMDk4NzUsIDAuMDg3NSwgMC4wODEyNSwgMC4wNzUsIDAuMDY4NzUsIDAuMDU4NzUsIDAuMDUiLCBcCi0gICAgICAgICAgIjAuMTExMjUsIDAuMSwgMC4wOTM3NSwgMC4wODEyNSwgMC4wNzUsIDAuMDcxMjUsIDAuMDYyNSIsIFwKLSAgICAgICAgICAiMC4xMjM3NSwgMC4xMTI1LCAwLjEsIDAuMDkzNzUsIDAuMDg3NSwgMC4wODM3NSwgMC4wNzUiLCBcCi0gICAgICAgICAgIjAuMTQsIDAuMTI4NzUsIDAuMTIyNSwgMC4xMTYyNSwgMC4xMSwgMC4xLCAwLjA5MTI1IiwgXAotICAgICAgICAgICIwLjE1NSwgMC4xNDM3NSwgMC4xMzc1LCAwLjEyNSwgMC4xMTg3NSwgMC4xMTUsIDAuMTA2MjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTI1LCAwLjAwMTI1LCAtMC4wMTEyNSwgLTAuMDE3NSwgLTAuMDMsIC0wLjA0LCAtMC4wNDg3NSIsIFwKLSAgICAgICAgICAiMC4wMjM3NSwgMC4wMTI1LCAwLCAtMC4wMTI1LCAtMC4wMTg3NSwgLTAuMDM1LCAtMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4wMzYyNSwgMC4wMjUsIDAuMDEyNSwgMCwgLTAuMDA2MjUsIC0wLjAyMjUsIC0wLjAzMTI1IiwgXAotICAgICAgICAgICIwLjA0MjUsIDAuMDM3NSwgMC4wMjUsIDAuMDEyNSwgMCwgLTAuMDEsIC0wLjAxODc1IiwgXAotICAgICAgICAgICIwLjA1NSwgMC4wNDM3NSwgMC4wMzEyNSwgMC4wMjUsIDAuMDEyNSwgMC4wMDI1LCAtMC4wMTI1IiwgXAotICAgICAgICAgICIwLjA3MTI1LCAwLjA2LCAwLjA0NzUsIDAuMDM1LCAwLjAyODc1LCAwLjAxMjUsIDAuMDAzNzUiLCBcCi0gICAgICAgICAgIjAuMDgsIDAuMDY4NzUsIDAuMDU2MjUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMjEyNSwgMC4wMTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihRKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDIuMDEwODY7Ci0gICAgZnVuY3Rpb24gOiAiTjMwIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBub25fdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJpc2luZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExNDIxNiwgMC4xNTMxOTUsIDAuMTkwNDI4LCAwLjIxNjk5MSwgMC4yNTk0NywgMC4yOTY2MzEsIDAuMzQ5NzUyIiwgXAotICAgICAgICAgICIwLjEyNDQ3NiwgMC4xNjM0NDQsIDAuMjAwNjc0LCAwLjIyNzIzMSwgMC4yNjk3MTUsIDAuMzA2ODc2LCAwLjM1OTk3OSIsIFwKLSAgICAgICAgICAiMC4xMzcxMjEsIDAuMTc2MDk2LCAwLjIxMzMzNSwgMC4yMzk4OTYsIDAuMjgyMzc3LCAwLjMxOTUzOCwgMC4zNzI2MzkiLCBcCi0gICAgICAgICAgIjAuMTQ4Nzg2LCAwLjE4Nzc1NiwgMC4yMjQ5ODUsIDAuMjUxNTQ4LCAwLjI5NDAyOSwgMC4zMzExOSwgMC4zODQyOTIiLCBcCi0gICAgICAgICAgIjAuMTU4ODk4LCAwLjE5Nzg3OSwgMC4yMzUxMTMsIDAuMjYxNjc2LCAwLjMwNDE1OCwgMC4zNDEzMjYsIDAuMzk0NDE0IiwgXAotICAgICAgICAgICIwLjE3MzMxNSwgMC4yMTIyOSwgMC4yNDk1MjcsIDAuMjc2MDg4LCAwLjMxODU3LCAwLjM1NTczMiwgMC40MDg4MzIiLCBcCi0gICAgICAgICAgIjAuMTg0MzI1LCAwLjIyMzMwNSwgMC4yNjA1NDYsIDAuMjg3MTA3LCAwLjMyOTU4MSwgMC4zNjY3NDMsIDAuNDE5ODQ2Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDIyMzYzLCAwLjA5NTg1MiwgMC4xNzIzMDMsIDAuMjI3MzIzLCAwLjMxNTQyOSwgMC4zOTI5NjIsIDAuNTA0MTIyIiwgXAotICAgICAgICAgICIwLjAyMjM3NiwgMC4wOTU4NTksIDAuMTcyMzA2LCAwLjIyNzMxNSwgMC4zMTU4NjgsIDAuMzkzMTksIDAuNTAyOTM3IiwgXAotICAgICAgICAgICIwLjAyMjM2MiwgMC4wOTU4NTIsIDAuMTcyMzA4LCAwLjIyNzMyNiwgMC4zMTU4NiwgMC4zOTMyMTIsIDAuNTAzNTA1IiwgXAotICAgICAgICAgICIwLjAyMjM3MywgMC4wOTU4NTUsIDAuMTcyMzQ3LCAwLjIyNzE4MiwgMC4zMTUxOSwgMC4zOTMxOTEsIDAuNTAyOTQ0IiwgXAotICAgICAgICAgICIwLjAyMjM0NCwgMC4wOTU4NSwgMC4xNzIzMDQsIDAuMjI3MzExLCAwLjMxNTg3LCAwLjM5MzMwMSwgMC41MDM1MDQiLCBcCi0gICAgICAgICAgIjAuMDIyMzg3LCAwLjA5NTg1MywgMC4xNzIzMDksIDAuMjI3MzI2LCAwLjMxNTg2LCAwLjM5MzIxOSwgMC41MDM1MTgiLCBcCi0gICAgICAgICAgIjAuMDIyMzcxLCAwLjA5NTg1MywgMC4xNzIzMTMsIDAuMjI3MzI1LCAwLjMxNTg1NCwgMC4zOTMxODgsIDAuNTAzNDUxIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTI0MDU5LCAwLjE2NDAyNCwgMC4yMDIyMjgsIDAuMjI5NDY3LCAwLjI3MzAzNCwgMC4zMTExNSwgMC4zNjU2MjMiLCBcCi0gICAgICAgICAgIjAuMTM0MjQ4LCAwLjE3NDIxOCwgMC4yMTI0MjIsIDAuMjM5NjYyLCAwLjI4MzIzLCAwLjMyMTM0NSwgMC4zNzU4MTUiLCBcCi0gICAgICAgICAgIjAuMTQ2OTU0LCAwLjE4NjkyMywgMC4yMjUxMywgMC4yNTIzNywgMC4yOTU5MzYsIDAuMzM0MDU1LCAwLjM4ODU1MyIsIFwKLSAgICAgICAgICAiMC4xNTg3MzUsIDAuMTk4NzA0LCAwLjIzNjkxNiwgMC4yNjQxNjUsIDAuMzA3NzE5LCAwLjM0NTgzNywgMC40MDAzMDciLCBcCi0gICAgICAgICAgIjAuMTY5MTUsIDAuMjA5MTIyLCAwLjI0NzMyOCwgMC4yNzQ1NjksIDAuMzE4MTM0LCAwLjM1NjI1MywgMC40MTA3NTIiLCBcCi0gICAgICAgICAgIjAuMTgzNTQyLCAwLjIyMzUxNCwgMC4yNjE3MTksIDAuMjg4OTU5LCAwLjMzMjUyNSwgMC4zNzA2NDMsIDAuNDI1MTQzIiwgXAotICAgICAgICAgICIwLjE5NDY5NCwgMC4yMzQ2NjgsIDAuMjcyODcsIDAuMzAwMTA5LCAwLjM0MzY3NywgMC4zODE3OTMsIDAuNDM2MjY2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDIxNjU5LCAwLjA5NTcyNCwgMC4xNzIyNjEsIDAuMjI3NDQsIDAuMzE1OTc2LCAwLjM5MjczOSwgMC41MDMwNDMiLCBcCi0gICAgICAgICAgIjAuMDIxNjQyLCAwLjA5NTc0NywgMC4xNzIyMzcsIDAuMjI3NDIzLCAwLjMxNTk4NiwgMC4zOTMwMzEsIDAuNTAyODk2IiwgXAotICAgICAgICAgICIwLjAyMTY1NCwgMC4wOTU3MTQsIDAuMTcyMjcxLCAwLjIyNzIxMiwgMC4zMTU5OTMsIDAuMzkyNzg5LCAwLjUwMzAwOCIsIFwKLSAgICAgICAgICAiMC4wMjE2NTgsIDAuMDk1Njg5LCAwLjE3MjE2LCAwLjIyNjk5NiwgMC4zMTU0MzcsIDAuMzkyODE2LCAwLjUwMjk4NSIsIFwKLSAgICAgICAgICAiMC4wMjE2NjEsIDAuMDk1NzQ3LCAwLjE3MjI3LCAwLjIyNzIxNSwgMC4zMTYwMDIsIDAuMzkyNzg3LCAwLjUwMjk5MSIsIFwKLSAgICAgICAgICAiMC4wMjE2NTksIDAuMDk1NzE0LCAwLjE3MjI2MywgMC4yMjcyMTEsIDAuMzE2MDA3LCAwLjM5Mjc4MSwgMC41MDI4NzkiLCBcCi0gICAgICAgICAgIjAuMDIxNjU0LCAwLjA5NTY0MywgMC4xNzIyNiwgMC4yMjc0NDYsIDAuMzE1OTkyLCAwLjM5MjcyNSwgMC41MDMwMjMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTY0NDksIDAuMDE2ODE1LCAwLjAxNjg5NCwgMC4wMTY5MiwgMC4wMTY5NDQsIDAuMDE2OTU0LCAwLjAxNjk3IiwgXAotICAgICAgICAgICIwLjAxNjQzOSwgMC4wMTY3ODksIDAuMDE2ODY2LCAwLjAxNjg5MSwgMC4wMTY5MTQsIDAuMDE2OTM0LCAwLjAxNjkzNiIsIFwKLSAgICAgICAgICAiMC4wMTYzOTksIDAuMDE2NzY1LCAwLjAxNjg0NCwgMC4wMTY4NjksIDAuMDE2ODkzLCAwLjAxNjkwNiwgMC4wMTY5MTkiLCBcCi0gICAgICAgICAgIjAuMDE2NDEzLCAwLjAxNjc3LCAwLjAxNjg0NywgMC4wMTY4NzIsIDAuMDE2OTAxLCAwLjAxNjkwMywgMC4wMTY5MTkiLCBcCi0gICAgICAgICAgIjAuMDE2NDEzLCAwLjAxNjc4LCAwLjAxNjg1OSwgMC4wMTY4ODEsIDAuMDE2OTA4LCAwLjAxNjkyMSwgMC4wMTY5MzIiLCBcCi0gICAgICAgICAgIjAuMDE2NDIxLCAwLjAxNjc4NywgMC4wMTY4NjgsIDAuMDE2ODk0LCAwLjAxNjkxOSwgMC4wMTY5MzEsIDAuMDE2OTQzIiwgXAotICAgICAgICAgICIwLjAxNjQ1NiwgMC4wMTY4MjQsIDAuMDE2OTAzLCAwLjAxNjkzLCAwLjAxNjk1NiwgMC4wMTY5NjUsIDAuMDE2OTc3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTU4OTksIDAuMDE2MzUsIDAuMDE2NDQ2LCAwLjAxNjQ3NywgMC4wMTY1MDQsIDAuMDE2NTE5LCAwLjAxNjUzMiIsIFwKLSAgICAgICAgICAiMC4wMTU4NTksIDAuMDE2MzE4LCAwLjAxNjQxNiwgMC4wMTY0NDgsIDAuMDE2NDc2LCAwLjAxNjQ5MSwgMC4wMTY1MDQiLCBcCi0gICAgICAgICAgIjAuMDE1ODU0LCAwLjAxNjMxOCwgMC4wMTY0MTgsIDAuMDE2NDUsIDAuMDE2NDc4LCAwLjAxNjQ5MywgMC4wMTY1MDYiLCBcCi0gICAgICAgICAgIjAuMDE1ODc1LCAwLjAxNjMzOSwgMC4wMTY0MzksIDAuMDE2NDcxLCAwLjAxNjQ5OSwgMC4wMTY1MTQsIDAuMDE2NTI4IiwgXAotICAgICAgICAgICIwLjAxNTkxLCAwLjAxNjM3NSwgMC4wMTY0NzQsIDAuMDE2NTA2LCAwLjAxNjUzNiwgMC4wMTY1NSwgMC4wMTY1NjMiLCBcCi0gICAgICAgICAgIjAuMDE1OTY3LCAwLjAxNjQyNSwgMC4wMTY1MjIsIDAuMDE2NTU0LCAwLjAxNjU4MiwgMC4wMTY1OTYsIDAuMDE2NjA5IiwgXAotICAgICAgICAgICIwLjAxNjAxMiwgMC4wMTY0NzQsIDAuMDE2NTcyLCAwLjAxNjYwMywgMC4wMTY2MzIsIDAuMDE2NjQ2LCAwLjAxNjY1OCIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBJTlZYNiAqCi0gKiAtLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoSU5WWDYpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4yMjA0ODQ7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwNDQ3Njk5OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwNDQ3NDk2OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwNDQ3Njk5OwotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDEuNTIxNDE7Ci0gICAgZnVuY3Rpb24gOiAiKCFBKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTMwOCwgMC4wNjIxMDMsIDAuMTExMDMyLCAwLjE0NjAwMiwgMC4yMDE5MTksIDAuMjUwOTA5LCAwLjMyMDYzMSIsIFwKLSAgICAgICAgICAiMC4wMjI5NTksIDAuMDcyMTYyLCAwLjEyMTEyNywgMC4xNTYwNzcsIDAuMjExOTU1LCAwLjI2MDgyMywgMC4zMzA3NDIiLCBcCi0gICAgICAgICAgIjAuMDMyMjE2LCAwLjA4NDcyMiwgMC4xMzM0NCwgMC4xNjg0MSwgMC4yMjQzNDcsIDAuMjczMzA1LCAwLjM0MzEyOSIsIFwKLSAgICAgICAgICAiMC4wMzkxMiwgMC4wOTc0MDIsIDAuMTQ1ODk1LCAwLjE4MDg1NiwgMC4yMzY4NDgsIDAuMjg1ODU4LCAwLjM1NTU3NSIsIFwKLSAgICAgICAgICAiMC4wNDUyOTIsIDAuMTA5OTk1LCAwLjE1ODMzNiwgMC4xOTMyMjgsIDAuMjQ5MTg3LCAwLjI5ODIyOCwgMC4zNjc5MTIiLCBcCi0gICAgICAgICAgIjAuMDUyODY4LCAwLjEzMDIwNywgMC4xNzk0NTIsIDAuMjE0MzQsIDAuMjcwMTg5LCAwLjMxOTA0MiwgMC4zODg5MDUiLCBcCi0gICAgICAgICAgIjAuMDU4OTIzLCAwLjE0NTgwOCwgMC4xOTcyLCAwLjIzMTk1NywgMC4yODY4NjIsIDAuMzM1NzUxLCAwLjQwNTUzNCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxOTYyLCAwLjEyMDY2NCwgMC4yMjEzNjMsIDAuMjkzNDI1LCAwLjQwODY4OCwgMC41MDk3NjYsIDAuNjUzNjg2IiwgXAotICAgICAgICAgICIwLjAyNDMyNSwgMC4xMjA0MzYsIDAuMjIxNjUyLCAwLjI5MzI5NywgMC40MDg2MDIsIDAuNTEwMjksIDAuNjUzNjc4IiwgXAotICAgICAgICAgICIwLjAzMzgwNSwgMC4xMjMzMzksIDAuMjIxODQyLCAwLjI5MzI2NSwgMC40MDg2ODUsIDAuNTA5NTk2LCAwLjY1MzY1NSIsIFwKLSAgICAgICAgICAiMC4wNDI1MiwgMC4xMjg2MzgsIDAuMjI0NDIsIDAuMjk0MjEyLCAwLjQwODQwNCwgMC41MDk1MDgsIDAuNjU0MDY1IiwgXAotICAgICAgICAgICIwLjA0OTIyLCAwLjEzNTQ5NCwgMC4yMjg3OTYsIDAuMjk3NTMxLCAwLjQwOTYyNiwgMC41MDk1NjIsIDAuNjU0NTgxIiwgXAotICAgICAgICAgICIwLjA2MDY0NSwgMC4xNDc5NDksIDAuMjM2OTgsIDAuMzA0MjI5LCAwLjQxNDQ2NiwgMC41MTI2OTMsIDAuNjU0Mjg1IiwgXAotICAgICAgICAgICIwLjA2ODkwMiwgMC4xNjA1MDQsIDAuMjQ2NzA1LCAwLjMxMjE3NywgMC40MjA2MzEsIDAuNTE3MjE1LCAwLjY1NzE1OCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMzY4OCwgMC4wNjQ0NDEsIDAuMTE1MTY3LCAwLjE1MTM0NSwgMC4yMDkzNzYsIDAuMjU5OTQ3LCAwLjMzMjMzNiIsIFwKLSAgICAgICAgICAiMC4wMjM4MzIsIDAuMDc0ODE1LCAwLjEyNTU0MiwgMC4xNjE3MTIsIDAuMjE5NjgsIDAuMjcwNDE2LCAwLjM0MjY2NSIsIFwKLSAgICAgICAgICAiMC4wMzM4MzksIDAuMDg3NjY5LCAwLjEzODEwOSwgMC4xNzQzMTMsIDAuMjMyMjE5LCAwLjI4MjkxNCwgMC4zNTUzNCIsIFwKLSAgICAgICAgICAiMC4wNDE2NjEsIDAuMTAwNjgzLCAwLjE1MDg4NiwgMC4xODcwNjYsIDAuMjQ1MjYsIDAuMjk1Nzk4LCAwLjM2ODE3NyIsIFwKLSAgICAgICAgICAiMC4wNDg1NzgsIDAuMTEzNjk5LCAwLjE2MzY2NSwgMC4xOTk4MzcsIDAuMjU3ODA3LCAwLjMwODY0MywgMC4zODA5MzgiLCBcCi0gICAgICAgICAgIjAuMDU3NDg0LCAwLjEzNDU3LCAwLjE4NDg3OSwgMC4yMjAyMDMsIDAuMjc4MDk5LCAwLjMyODc2LCAwLjQwMTQ5NiIsIFwKLSAgICAgICAgICAiMC4wNjQyODQsIDAuMTUxNDU1LCAwLjIwMzY3MywgMC4yMzk2ODksIDAuMjk3Mjg0LCAwLjM0NzAyNSwgMC40MTk0MTQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTk2MzEsIDAuMTIxNzksIDAuMjIzNTk0LCAwLjI5NjQxNywgMC40MTMxOTEsIDAuNTE0OTI4LCAwLjY2MDUwNSIsIFwKLSAgICAgICAgICAiMC4wMjM4NSwgMC4xMjE4OSwgMC4yMjM1OTksIDAuMjk2OTU1LCAwLjQxMjk3NywgMC41MTUwMywgMC42NjA4MzciLCBcCi0gICAgICAgICAgIjAuMDMzMjAyLCAwLjEyMzg5OSwgMC4yMjM3MDksIDAuMjk2MjY5LCAwLjQxMzg1OCwgMC41MTQ2NTcsIDAuNjU5OTU0IiwgXAotICAgICAgICAgICIwLjA0MjEyMywgMC4xMjg2NTcsIDAuMjI2MTk0LCAwLjI5NzU0OSwgMC40MTMxOTUsIDAuNTE2MDk2LCAwLjY2MDU2NSIsIFwKLSAgICAgICAgICAiMC4wNDkzMzYsIDAuMTM1MTcsIDAuMjI5NzEsIDAuMzAwMDI2LCAwLjQxMzE5NSwgMC41MTQ5NTIsIDAuNjYyMDgiLCBcCi0gICAgICAgICAgIjAuMDYxMDE3LCAwLjE0NzIxNywgMC4yMzgyODMsIDAuMzA2MDk5LCAwLjQxNzQ2MSwgMC41MTY0MzQsIDAuNjYxODA2IiwgXAotICAgICAgICAgICIwLjA3MDk0OCwgMC4xNTg3NjksIDAuMjQ2NTEyLCAwLjMxMjY1NiwgMC40MjIzMDEsIDAuNTIxNTQxLCAwLjY2MjgxNyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2NDQxLCAwLjAwNjU3NiwgMC4wMDY1OSwgMC4wMDY1OTEsIDAuMDA2NTk2LCAwLjAwNjU5OCwgMC4wMDY1OTciLCBcCi0gICAgICAgICAgIjAuMDA2MjAzLCAwLjAwNjQ3MywgMC4wMDY1MzUsIDAuMDA2NTUxLCAwLjAwNjU2NywgMC4wMDY1NzMsIDAuMDA2NTc4IiwgXAotICAgICAgICAgICIwLjAwNjE3NCwgMC4wMDY0MDIsIDAuMDA2NDc1LCAwLjAwNjUwMSwgMC4wMDY1MywgMC4wMDY1NDEsIDAuMDA2NTU3IiwgXAotICAgICAgICAgICIwLjAwNjI2MywgMC4wMDYzNywgMC4wMDY0MzYsIDAuMDA2NDc3LCAwLjAwNjQ5NiwgMC4wMDY1MjQsIDAuMDA2NTQxIiwgXAotICAgICAgICAgICIwLjAwNjI5OCwgMC4wMDYzODcsIDAuMDA2NDQ2LCAwLjAwNjQ3MywgMC4wMDY1LCAwLjAwNjUxNywgMC4wMDY1MzEiLCBcCi0gICAgICAgICAgIjAuMDA2NjAyLCAwLjAwNjQsIDAuMDA2NDQsIDAuMDA2NDU1LCAwLjAwNjQ4MywgMC4wMDY1MDQsIDAuMDA2NTIyIiwgXAotICAgICAgICAgICIwLjAwNjY1NSwgMC4wMDY0NjYsIDAuMDA2NDUsIDAuMDA2NDY5LCAwLjAwNjQ3NywgMC4wMDY1MSwgMC4wMDY1MSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwMTU0LCAwLjAwMDAxMSwgMC4wMDAwMjksIDAuMDAwMDM1LCAwLjAwMDAzOSwgMC4wMDAwNDIsIDAuMDAwMDQ0IiwgXAotICAgICAgICAgICIwLjAwMDQ3LCAwLjAwMDEwOCwgMC4wMDAwNDEsIDAuMDAwMDIsIDAuMDAwMDAxLCAwLjAwMDAxLCAwLjAwMDAxOSIsIFwKLSAgICAgICAgICAiMC4wMDA1MjYsIDAuMDAwMjE4LCAwLjAwMDEyMSwgMC4wMDAwODQsIDAuMDAwMDQ5LCAwLjAwMDAzLCAwLjAwMDAxMyIsIFwKLSAgICAgICAgICAiMC4wMDA0NDksIDAuMDAwMjY4LCAwLjAwMDE3LCAwLjAwMDEyNiwgMC4wMDAwODEsIDAuMDAwMDU4LCAwLjAwMDAzNyIsIFwKLSAgICAgICAgICAiMC4wMDAzNzgsIDAuMDAwMjc1LCAwLjAwMDE5NCwgMC4wMDAxNDksIDAuMDAwMTAzLCAwLjAwMDA3MiwgMC4wMDAwNTEiLCBcCi0gICAgICAgICAgIjAuMDAwMTY0LCAwLjAwMDE5MiwgMC4wMDAxNTYsIDAuMDAwMTM2LCAwLjAwMDA5OSwgMC4wMDAwNzgsIDAuMDAwMDUyIiwgXAotICAgICAgICAgICIwLjAwMDEzMiwgMC4wMDAyMTUsIDAuMDAwMTkxLCAwLjAwMDE2NCwgMC4wMDAxMzIsIDAuMDAwMTE3LCAwLjAwMDA4OSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBNWDNYTCAqCi0gKiAtLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoTVgzWEwpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4xOTM3Mjc7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYzODE5NzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MzcwMTY7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjM4MTk3OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDc0NSwgMC4wMDA3MjUsIDAuMDAwNzE1LCAwLjAwMDcxMSwgMC4wMDA3MSwgMC4wMDA3MTIsIDAuMDAwNzE4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyMjk4LCAwLjAwMjI4NywgMC4wMDIyODEsIDAuMDAyMjc5LCAwLjAwMjI3OSwgMC4wMDIyNzksIDAuMDAyMjg1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2NjExMTc7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjU5MTk5OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDY2MTExNzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyMTcsIDAuMDAwMjIsIDAuMDAwMjIxLCAwLjAwMDIyMSwgMC4wMDAyMjEsIDAuMDAwMjIyLCAwLjAwMDIyMiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDIzMSwgMC4wMDAyMjgsIDAuMDAwMjI3LCAwLjAwMDIyNywgMC4wMDAyMjcsIDAuMDAwMjI3LCAwLjAwMDIyNyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQykgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjgwNjg1OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDY3OTIwNDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2ODA2ODU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjE4LCAwLjAwMDIyLCAwLjAwMDIyMSwgMC4wMDAyMjEsIDAuMDAwMjIyLCAwLjAwMDIyMiwgMC4wMDAyMjIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyMzIsIDAuMDAwMjI4LCAwLjAwMDIyNywgMC4wMDAyMjYsIDAuMDAwMjI3LCAwLjAwMDIyNywgMC4wMDAyMjciKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFMwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDEyNDI4NzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDEyNDI0NjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDEyNDI4NzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxNzYsIDAuMDAwMTQ4LCAwLjAwMDE1MiwgMC4wMDAxNTUsIDAuMDAwMTcyLCAwLjAwMDE5NSwgMC4wMDAyMjEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDE5MzksIDAuMDAxOTE5LCAwLjAwMTkxNywgMC4wMDE5MjUsIDAuMDAxOTM3LCAwLjAwMTk2MywgMC4wMDE5ODYiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFMxKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDEyMjIyNDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDEyMjE4MTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDEyMjIyNDsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxNzgsIDAuMDAwMTQ5LCAwLjAwMDE0OSwgMC4wMDAxNzIsIDAuMDAwMTY3LCAwLjAwMDE5NywgMC4wMDAyMjMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDE4NzksIDAuMDAxODU4LCAwLjAwMTg2MywgMC4wMDE4NjcsIDAuMDAxODc1LCAwLjAwMTg5OSwgMC4wMDE5MjEiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4xNDg4ODE7Ci0gICAgZnVuY3Rpb24gOiAiKChTMSBDKSArICghUzEgKChTMCBCKSArICghUzAgQSkpKSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE2NjYzNSwgMC4xODA5OCwgMC4zMDg0NDEsIDAuNTIwNDg0LCAwLjczMjIxNywgMS4yMjY2NCwgMS41MDkxMyIsIFwKLSAgICAgICAgICAiMC4xNzU0MjQsIDAuMTg5NzU0LCAwLjMxNzIxNCwgMC41MjkyMzUsIDAuNzQxMDczLCAxLjIzNTI5LCAxLjUxNzY0IiwgXAotICAgICAgICAgICIwLjE4NjE5NSwgMC4yMDA1MjgsIDAuMzI4MDI3LCAwLjU0MDAyNiwgMC43NTE4NDMsIDEuMjQ2MSwgMS41MjgzOSIsIFwKLSAgICAgICAgICAiMC4xOTY5MjIsIDAuMjExMjQxLCAwLjMzODcxNywgMC41NTA2NTMsIDAuNzYyNDk4LCAxLjI1Njg0LCAxLjUzOTM4IiwgXAotICAgICAgICAgICIwLjIwNzM1MiwgMC4yMjE2NzEsIDAuMzQ5MTUxLCAwLjU2MTEwMywgMC43NzI5MzYsIDEuMjY3MjIsIDEuNTQ5ODMiLCBcCi0gICAgICAgICAgIjAuMjIzMjY1LCAwLjIzNzU5MywgMC4zNjUwODMsIDAuNTc3MTczLCAwLjc4ODg2NSwgMS4yODMxOCwgMS41NjU3OSIsIFwKLSAgICAgICAgICAiMC4yMzY0OCwgMC4yNTA4NjMsIDAuMzc4Mzc1LCAwLjU5MDQzNywgMC44MDIxNywgMS4yOTY0MiwgMS41Nzg4NSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNjAyNywgMC4xODgyNjcsIDAuNDQ1MTU0LCAwLjg3ODA4NCwgMS4zMTMyMiwgMi4zMzE1NCwgMi45MDUzIiwgXAotICAgICAgICAgICIwLjE2MDI3LCAwLjE4ODE3OSwgMC40NDU0NjcsIDAuODc5OTEsIDEuMzE1MDYsIDIuMzI3MTcsIDIuOTExNjEiLCBcCi0gICAgICAgICAgIjAuMTYwMjgsIDAuMTg4MTc3LCAwLjQ0NTYzNSwgMC44NzgwNzksIDEuMzE1MDQsIDIuMzI3NDIsIDIuOTExNjEiLCBcCi0gICAgICAgICAgIjAuMTYwMjc5LCAwLjE4ODMwNCwgMC40NDU0NzUsIDAuODc5NzkzLCAxLjMxNDksIDIuMzMxMTQsIDIuOTEyMTgiLCBcCi0gICAgICAgICAgIjAuMTYwMjg3LCAwLjE4ODI5OCwgMC40NDU0NjgsIDAuODc4NjM4LCAxLjMxNDg4LCAyLjMzMTAzLCAyLjkxMjE4IiwgXAotICAgICAgICAgICIwLjE2MDQ5OCwgMC4xODg0OTEsIDAuNDQ1NDgzLCAwLjg3ODExNywgMS4zMTQ3MiwgMi4zMjc0NSwgMi45MDU1NCIsIFwKLSAgICAgICAgICAiMC4xNjA3ODMsIDAuMTg4NzE5LCAwLjQ0NTU2LCAwLjg3ODI4OCwgMS4zMTQ3MSwgMi4zMjc5MiwgMi45MDc4OSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNzAwNzIsIDAuMTg0MzIyLCAwLjMwOTQ4LCAwLjUxNzAwMSwgMC43MjQ0ODMsIDEuMjA4MzgsIDEuNDg0OTciLCBcCi0gICAgICAgICAgIjAuMTc4NjkxLCAwLjE5Mjk0OCwgMC4zMTgxLCAwLjUyNTYxNSwgMC43MzMwODQsIDEuMjE3MDEsIDEuNDkzNTIiLCBcCi0gICAgICAgICAgIjAuMTg4NTQxLCAwLjIwMjc4NCwgMC4zMjc5MzUsIDAuNTM1NDQ1LCAwLjc0MjkyNSwgMS4yMjcwMiwgMS41MDMzOSIsIFwKLSAgICAgICAgICAiMC4xOTgyNDQsIDAuMjEyNDg2LCAwLjMzNzY4NCwgMC41NDUxOTUsIDAuNzUyNjU3LCAxLjIzNjU5LCAxLjUxMzE2IiwgXAotICAgICAgICAgICIwLjIwNzY2MiwgMC4yMjE5MjYsIDAuMzQ3MTA0LCAwLjU1NDYyNSwgMC43NjIwNDQsIDEuMjQ2MDIsIDEuNTIyNjQiLCBcCi0gICAgICAgICAgIjAuMjIxOTA0LCAwLjIzNjE2MiwgMC4zNjEzMjQsIDAuNTY4ODUzLCAwLjc3NjM3OCwgMS4yNjAyNiwgMS41MzY3OSIsIFwKLSAgICAgICAgICAiMC4yMzM0NTMsIDAuMjQ3NzM1LCAwLjM3Mjk0MiwgMC41ODA0NywgMC43ODc5MjksIDEuMjcxODcsIDEuNTQ4MzkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTU2NDM5LCAwLjE4MzAyMiwgMC40Mjc2MzIsIDAuODQxNTg1LCAxLjI1OTM4LCAyLjIzMTgzLCAyLjc3OTkiLCBcCi0gICAgICAgICAgIjAuMTU2NDM3LCAwLjE4Mjk4NSwgMC40MjY5ODksIDAuODQxNTc1LCAxLjI1OTMyLCAyLjIyODc3LCAyLjc4NzY4IiwgXAotICAgICAgICAgICIwLjE1NjQ1LCAwLjE4MzA1OCwgMC40Mjc2MDksIDAuODQyNzE3LCAxLjI1OTM0LCAyLjIyODI1LCAyLjc4NDMxIiwgXAotICAgICAgICAgICIwLjE1NjQ1MiwgMC4xODI5OTIsIDAuNDI4MDUzLCAwLjg0MTU4NCwgMS4yNTc1NywgMi4yMjg4MiwgMi43ODgiLCBcCi0gICAgICAgICAgIjAuMTU2NDQ1LCAwLjE4MzA2MywgMC40MjczMjcsIDAuODQxNjg0LCAxLjI1OTAzLCAyLjIyODYxLCAyLjc4ODM0IiwgXAotICAgICAgICAgICIwLjE1Njc3OCwgMC4xODMzNSwgMC40Mjc3NDgsIDAuODQxNDc2LCAxLjI1OTIsIDIuMjI4NzksIDIuNzg0MTQiLCBcCi0gICAgICAgICAgIjAuMTU3MTIyLCAwLjE4MzYzMiwgMC40MjgxNzgsIDAuODQxMzcyLCAxLjI1NzExLCAyLjIyODA0LCAyLjc4MyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNjYwNzEsIDAuMTgwNDA5LCAwLjMwNzg4NCwgMC41MTk4OTIsIDAuNzMxNjc1LCAxLjIyNjExLCAxLjUwODU1IiwgXAotICAgICAgICAgICIwLjE3NDk1NiwgMC4xODkyOTksIDAuMzE2NzUxLCAwLjUyODc2NiwgMC43NDA1MjIsIDEuMjM0OTcsIDEuNTE3MjQiLCBcCi0gICAgICAgICAgIjAuMTg1ODM1LCAwLjIwMDE3NiwgMC4zMjc2MjYsIDAuNTM5NjgxLCAwLjc1MTM5OSwgMS4yNDU4MiwgMS41MjgzMiIsIFwKLSAgICAgICAgICAiMC4xOTY3NSwgMC4yMTEwNzcsIDAuMzM4NTcxLCAwLjU1MDYwMiwgMC43NjI0MTksIDEuMjU2OCwgMS41Mzg5MyIsIFwKLSAgICAgICAgICAiMC4yMDcxNzYsIDAuMjIxNTEyLCAwLjM0OTAyNiwgMC41NjEwNCwgMC43NzI3NzUsIDEuMjY3MjEsIDEuNTQ5NTEiLCBcCi0gICAgICAgICAgIjAuMjIzMTEsIDAuMjM3NDM3LCAwLjM2NDkxOCwgMC41NzY4NDcsIDAuNzg4NjkzLCAxLjI4MzE1LCAxLjU2NTU3IiwgXAotICAgICAgICAgICIwLjIzNjE2MywgMC4yNTA1NDYsIDAuMzc4MDQ4LCAwLjU5MDExOCwgMC44MDE4NzMsIDEuMjk2MTIsIDEuNTc4NCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNjAyNDEsIDAuMTg4MjM4LCAwLjQ0NTQ1OSwgMC44Nzk5NTUsIDEuMzEzNDEsIDIuMzI1OSwgMi45MTIzNSIsIFwKLSAgICAgICAgICAiMC4xNjAxNTgsIDAuMTg4MTYzLCAwLjQ0NTQ0MSwgMC44Nzk4OTksIDEuMzEzMTgsIDIuMzI2OTIsIDIuOTA2ODciLCBcCi0gICAgICAgICAgIjAuMTYwMjMsIDAuMTg4MjM1LCAwLjQ0NTQ0OSwgMC44NzgwNjYsIDEuMzE0MzMsIDIuMzMxMzgsIDIuOTA2NTUiLCBcCi0gICAgICAgICAgIjAuMTYwMjQ3LCAwLjE4ODIzMSwgMC40NDUwNiwgMC44NzgwNjIsIDEuMzE1MDQsIDIuMzI3MDQsIDIuOTExNjMiLCBcCi0gICAgICAgICAgIjAuMTYwMjYsIDAuMTg4MjU5LCAwLjQ0NTU0OCwgMC44NzgwNjQsIDEuMzEzMjIsIDIuMzMxNDEsIDIuOTA2OTYiLCBcCi0gICAgICAgICAgIjAuMTYwNDYsIDAuMTg4NDU2LCAwLjQ0NTQ1NywgMC44Nzk1NCwgMS4zMTQ3MSwgMi4zMzA5NywgMi45MTE2NiIsIFwKLSAgICAgICAgICAiMC4xNjA3NjMsIDAuMTg4NzA0LCAwLjQ0NTU4LCAwLjg3ODEyNCwgMS4zMTQ3NCwgMi4zMjcwNiwgMi45MTA5OSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNzA2NjcsIDAuMTg0OTI4LCAwLjMxMDA3NCwgMC41MTc1OTMsIDAuNzI1MDczLCAxLjIwOTE1LCAxLjQ4NTU4IiwgXAotICAgICAgICAgICIwLjE3OTEyOCwgMC4xOTMzNzcsIDAuMzE4NTMxLCAwLjUyNjA0NywgMC43MzM1MTgsIDEuMjE3NDQsIDEuNDk0MDMiLCBcCi0gICAgICAgICAgIjAuMTg4ODkyLCAwLjIwMzEzOCwgMC4zMjgzMTgsIDAuNTM1ODQxLCAwLjc0MzI2NiwgMS4yMjcyNCwgMS41MDM4OSIsIFwKLSAgICAgICAgICAiMC4xOTg1NSwgMC4yMTI4MTcsIDAuMzM3OTg2LCAwLjU0NTUxMywgMC43NTI5NzksIDEuMjM2OTIsIDEuNTEzNDMiLCBcCi0gICAgICAgICAgIjAuMjA3ODg4LCAwLjIyMjEyOCwgMC4zNDczNCwgMC41NTQ4NDksIDAuNzYyMzUxLCAxLjI0NjMyLCAxLjUyMjgyIiwgXAotICAgICAgICAgICIwLjIyMjA0MSwgMC4yMzYzMDQsIDAuMzYxNDc1LCAwLjU2OTAxNCwgMC43NzY0NTYsIDEuMjYwNDMsIDEuNTM2OTUiLCBcCi0gICAgICAgICAgIjAuMjMzNTE5LCAwLjI0Nzc5OCwgMC4zNzMwMTMsIDAuNTgwNTQ3LCAwLjc4Nzk5NCwgMS4yNzE5NSwgMS41NDg0NyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNTY0NiwgMC4xODMwNTMsIDAuNDI3NjM4LCAwLjg0MTU3OCwgMS4yNTk0MSwgMi4yMjUxNywgMi43ODA1OCIsIFwKLSAgICAgICAgICAiMC4xNTY0NDQsIDAuMTgzMDg2LCAwLjQyNzY5NiwgMC44NDEzNjYsIDEuMjU5MzQsIDIuMjI4MTMsIDIuNzgxMzQiLCBcCi0gICAgICAgICAgIjAuMTU2NDY3LCAwLjE4MzAyNiwgMC40MjczNDMsIDAuODQxNjYyLCAxLjI1OTEsIDIuMjI4NjIsIDIuNzg4NjEiLCBcCi0gICAgICAgICAgIjAuMTU2NDc1LCAwLjE4Mjk2LCAwLjQyOCwgMC44NDE1NDksIDEuMjU5MjgsIDIuMjI4NzksIDIuNzg3NjIiLCBcCi0gICAgICAgICAgIjAuMTU2NDg2LCAwLjE4MzA3OCwgMC40Mjc1NjEsIDAuODQyNjU1LCAxLjI1OTM3LCAyLjIzMjE2LCAyLjc4NzkxIiwgXAotICAgICAgICAgICIwLjE1Njc2NywgMC4xODMzNjUsIDAuNDI3NzQ0LCAwLjg0MTU1NSwgMS4yNTY5NywgMi4yMjg3MywgMi43ODM3MSIsIFwKLSAgICAgICAgICAiMC4xNTcxMzgsIDAuMTgzNTU1LCAwLjQyODE5NCwgMC44NDE0MDcsIDEuMjU5MTEsIDIuMjI3OTMsIDIuNzgyNzMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTE4MTg0LCAwLjEzMjMyLCAwLjI1OTU2NCwgMC40NzEzODksIDAuNjgzMjUxLCAxLjE3NzQ1LCAxLjQ1OTkiLCBcCi0gICAgICAgICAgIjAuMTI3MDQxLCAwLjE0MTE4NSwgMC4yNjg0MjgsIDAuNDgwMjY0LCAwLjY5MjE3NywgMS4xODYyNywgMS40Njg2OSIsIFwKLSAgICAgICAgICAiMC4xMzc3MTksIDAuMTUxODc1LCAwLjI3OTEzLCAwLjQ5MDk1MywgMC43MDI4NjMsIDEuMTk2OTUsIDEuNDc5MzgiLCBcCi0gICAgICAgICAgIjAuMTQ3OTU5LCAwLjE2MjExMywgMC4yODkzNDUsIDAuNTAxMjcsIDAuNzEzMDAyLCAxLjIwNzMyLCAxLjQ4OTU3IiwgXAotICAgICAgICAgICIwLjE1NzI5MywgMC4xNzE0MzgsIDAuMjk4NjU0LCAwLjUxMDUwMiwgMC43MjIzMTcsIDEuMjE2NiwgMS40OTg4OSIsIFwKLSAgICAgICAgICAiMC4xNzA2MzEsIDAuMTg0Nzg3LCAwLjMxMjA0NCwgMC41MjM4OCwgMC43MzU2NzUsIDEuMjI5ODcsIDEuNTEyMzIiLCBcCi0gICAgICAgICAgIjAuMTgxMDU4LCAwLjE5NTIyNiwgMC4zMjI0NjIsIDAuNTM0Mzc0LCAwLjc0NjE0LCAxLjI0MDI4LCAxLjUyMjY0Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE1NDM3MywgMC4xODMxMDMsIDAuNDQzNzYsIDAuODc3OTI1LCAxLjMxMjQzLCAyLjMyNjIyLCAyLjkxMTU5IiwgXAotICAgICAgICAgICIwLjE1NDU0NSwgMC4xODMwOTgsIDAuNDQzNzM0LCAwLjg3Nzk1MSwgMS4zMTQ3MSwgMi4zMjc2MiwgMi45MDc1MiIsIFwKLSAgICAgICAgICAiMC4xNTQ0MTEsIDAuMTgzMDkyLCAwLjQ0MzczNywgMC44Nzc5MDYsIDEuMzE0NjcsIDIuMzI4MDYsIDIuOTA3NSIsIFwKLSAgICAgICAgICAiMC4xNTQ1MTIsIDAuMTgzMjYyLCAwLjQ0MzYxNCwgMC44NzkwMjIsIDEuMzEyODUsIDIuMzMwNCwgMi45MDc4NSIsIFwKLSAgICAgICAgICAiMC4xNTQ3OSwgMC4xODM0NTQsIDAuNDQzNTkzLCAwLjg3ODUzNywgMS4zMTI4NywgMi4zMjY4NywgMi45MDc2MiIsIFwKLSAgICAgICAgICAiMC4xNTUxMzUsIDAuMTgzNzgzLCAwLjQ0MzY1MSwgMC44Nzg4MDksIDEuMzE0MDgsIDIuMzI3NDgsIDIuOTA3MzciLCBcCi0gICAgICAgICAgIjAuMTU1NTY2LCAwLjE4MzkzNSwgMC40NDM3MiwgMC44Nzc1ODYsIDEuMzE0MjEsIDIuMzMsIDIuOTEwMzMiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTE5ODQ1LCAwLjEzMzcxMSwgMC4yNTgyOTUsIDAuNDY1NzYzLCAwLjY3MzE2MiwgMS4xNTcwOSwgMS40MzM2MSIsIFwKLSAgICAgICAgICAiMC4xMjgxODMsIDAuMTQyMDU1LCAwLjI2NjY1LCAwLjQ3NDA4OCwgMC42ODE1MTcsIDEuMTY1NDIsIDEuNDQxOTYiLCBcCi0gICAgICAgICAgIjAuMTM3ODIzLCAwLjE1MTY5NiwgMC4yNzYzLCAwLjQ4Mzc0NCwgMC42OTEyMDYsIDEuMTc1MDgsIDEuNDUxNjEiLCBcCi0gICAgICAgICAgIjAuMTQ2ODgxLCAwLjE2MDc1NiwgMC4yODUzNDIsIDAuNDkyODA3LCAwLjcwMDIxNiwgMS4xODQxOSwgMS40NjA2NiIsIFwKLSAgICAgICAgICAiMC4xNTUxNzMsIDAuMTY5MDM4LCAwLjI5MzY1NCwgMC41MDExMDYsIDAuNzA4NTA2LCAxLjE5MjQ0LCAxLjQ2ODk3IiwgXAotICAgICAgICAgICIwLjE2Njg0NywgMC4xODA3MjEsIDAuMzA1MzM3LCAwLjUxMjgzLCAwLjcyMDIwMywgMS4yMDQxLCAxLjQ4MDY5IiwgXAotICAgICAgICAgICIwLjE3NjAzNCwgMC4xODk3MjEsIDAuMzE0MzUxLCAwLjUyMTgzOCwgMC43MjkyNDUsIDEuMjEzMTQsIDEuNDg5NjQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTQ4NTgyLCAwLjE3NTg2MywgMC40MjQ5MzUsIDAuODQwMzk3LCAxLjI1NjIzLCAyLjIyNzQ1LCAyLjc4NzAyIiwgXAotICAgICAgICAgICIwLjE0ODU5MiwgMC4xNzU4NSwgMC40MjQwOTMsIDAuODQxNDY5LCAxLjI1NjQyLCAyLjIzMDExLCAyLjc4MjI2IiwgXAotICAgICAgICAgICIwLjE0ODU5MywgMC4xNzU4ODQsIDAuNDI0MTY1LCAwLjg0MDk1MywgMS4yNTYxNSwgMi4yMjksIDIuNzgyNDgiLCBcCi0gICAgICAgICAgIjAuMTQ4NzI5LCAwLjE3NTg4MiwgMC40MjQ5MTksIDAuODQxNTUzLCAxLjI1NzM3LCAyLjIzMTQ2LCAyLjc4NTc1IiwgXAotICAgICAgICAgICIwLjE0OTAwOSwgMC4xNzYyNjksIDAuNDI0NDUzLCAwLjg0MTU0LCAxLjI1ODI5LCAyLjIzMDA2LCAyLjc4MjA2IiwgXAotICAgICAgICAgICIwLjE0OTQ3NywgMC4xNzY3MzUsIDAuNDI0Nzc1LCAwLjg0MTA2NiwgMS4yNTgzNywgMi4yMzA5NiwgMi43ODczIiwgXAotICAgICAgICAgICIwLjE1MDIwMiwgMC4xNzY5NDIsIDAuNDI0NzE1LCAwLjg0MDk3LCAxLjI1ODI0LCAyLjIzMTE0LCAyLjc4Njg4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlMwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNTk2NjIsIDAuMTczOTgsIDAuMzAxNDMsIDAuNTEzMzc3LCAwLjcyNTE4OCwgMS4yMTk1LCAxLjUwMjAyIiwgXAotICAgICAgICAgICIwLjE2ODg0NCwgMC4xODMxODEsIDAuMzEwNjIzLCAwLjUyMjY4NiwgMC43MzQzOTEsIDEuMjI4ODMsIDEuNTExMjkiLCBcCi0gICAgICAgICAgIjAuMTgwNTEsIDAuMTk0ODQxLCAwLjMyMjI5MSwgMC41MzQzNDIsIDAuNzQ2MDU3LCAxLjI0MDU1LCAxLjUyMjkiLCBcCi0gICAgICAgICAgIjAuMTkyMjQ3LCAwLjIwNjU5LCAwLjMzNDA1OSwgMC41NDYwOTYsIDAuNzU3OTI2LCAxLjI1MjMsIDEuNTM0NDQiLCBcCi0gICAgICAgICAgIjAuMjAzOTUsIDAuMjE4MjgzLCAwLjM0NTc1OCwgMC41NTc3ODksIDAuNzY5NjcyLCAxLjI2NDAxLCAxLjU0NjIyIiwgXAotICAgICAgICAgICIwLjIyMTYzNSwgMC4yMzU5NjYsIDAuMzYzNDY1LCAwLjU3NTUxNCwgMC43ODcyMzksIDEuMjgxNjUsIDEuNTY0MTYiLCBcCi0gICAgICAgICAgIjAuMjM1ODk4LCAwLjI1MDI2OSwgMC4zNzc3NjEsIDAuNTg5NzE4LCAwLjgwMTY5MywgMS4yOTYwMywgMS41NzgxNyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNjAyMiwgMC4xODgyNDMsIDAuNDQ1NDYxLCAwLjg3ODcxNiwgMS4zMTQ5OSwgMi4zMzEyMiwgMi45MTIyNyIsIFwKLSAgICAgICAgICAiMC4xNjAyMjcsIDAuMTg4MjE1LCAwLjQ0NTQ0MywgMC44NzgwNTIsIDEuMzE0MzQsIDIuMzMxNDYsIDIuOTA2MzEiLCBcCi0gICAgICAgICAgIjAuMTYwMjM1LCAwLjE4ODI2MiwgMC40NDU0NDgsIDAuODc4MDU5LCAxLjMxNDkxLCAyLjMyNzM0LCAyLjkxMjA5IiwgXAotICAgICAgICAgICIwLjE2MDEzOCwgMC4xODgxNTIsIDAuNDQ1MDYxLCAwLjg3ODA2NSwgMS4zMTUwNywgMi4zMjY5NSwgMi45MTE2NiIsIFwKLSAgICAgICAgICAiMC4xNjAyODEsIDAuMTg4MTc1LCAwLjQ0NTQ0OCwgMC44NzgwNTksIDEuMzE1MTYsIDIuMzI2ODMsIDIuOTExNyIsIFwKLSAgICAgICAgICAiMC4xNjA1NTcsIDAuMTg4NDQzLCAwLjQ0NTU5OCwgMC44NzgwNzMsIDEuMzEzMSwgMi4zMzA5NywgMi45MDY1NyIsIFwKLSAgICAgICAgICAiMC4xNjEwMDcsIDAuMTg4ODg5LCAwLjQ0NTU4NywgMC44Nzg2MzgsIDEuMzE0OTUsIDIuMzI2NzgsIDIuOTA3ODciKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTYzNTY0LCAwLjE3Nzc5NywgMC4zMDI5NjcsIDAuNTEwNDg0LCAwLjcxNzk1OCwgMS4yMDE4NywgMS40Nzg1NiIsIFwKLSAgICAgICAgICAiMC4xNzI0MjIsIDAuMTg2Njc3LCAwLjMxMTgxMywgMC41MTkzNDUsIDAuNzI2ODE0LCAxLjIxMDcxLCAxLjQ4NzI2IiwgXAotICAgICAgICAgICIwLjE4Mzc4LCAwLjE5ODAxNywgMC4zMjMyLCAwLjUzMDcxOSwgMC43MzgxNDIsIDEuMjIyMTIsIDEuNDk4NzYiLCBcCi0gICAgICAgICAgIjAuMTk1MTQyLCAwLjIwOTM4OSwgMC4zMzQ1NTIsIDAuNTQyMDkyLCAwLjc0OTU1LCAxLjIzMzQ4LCAxLjUxMDA0IiwgXAotICAgICAgICAgICIwLjIwNjM3OCwgMC4yMjA2MzQsIDAuMzQ1NzY5LCAwLjU1MzM2LCAwLjc2MDg0MiwgMS4yNDQ3NCwgMS41MjEyNyIsIFwKLSAgICAgICAgICAiMC4yMjMwNTIsIDAuMjM3Mjc2LCAwLjM2MjQ4OCwgMC41NzAwMTYsIDAuNzc3NTI0LCAxLjI2MTQ0LCAxLjUzNzk0IiwgXAotICAgICAgICAgICIwLjIzNjM5NiwgMC4yNTA2NCwgMC4zNzU4NTYsIDAuNTgzMzY3LCAwLjc5MDg3OSwgMS4yNzQ3NywgMS41NTE0MSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNTY0MzgsIDAuMTgyOTkxLCAwLjQyNzQxLCAwLjg0MTY1OCwgMS4yNTkzNywgMi4yMjg4LCAyLjc4ODU4IiwgXAotICAgICAgICAgICIwLjE1NjQ0NCwgMC4xODMwNDksIDAuNDI3OTQyLCAwLjg0MTc1LCAxLjI1OTM3LCAyLjIzMTc2LCAyLjc4MzM2IiwgXAotICAgICAgICAgICIwLjE1NjQ0OCwgMC4xODI5OTgsIDAuNDI3MzcyLCAwLjg0MTYzNCwgMS4yNTkwNywgMi4yMjg4NCwgMi43ODg1OSIsIFwKLSAgICAgICAgICAiMC4xNTY0NjksIDAuMTgzMDcyLCAwLjQyNzYzNywgMC44NDA2NSwgMS4yNTkzMiwgMi4yMzE4OSwgMi43ODI0OCIsIFwKLSAgICAgICAgICAiMC4xNTY0NjYsIDAuMTgzMDM0LCAwLjQyNzk0OCwgMC44NDE3MDQsIDEuMjU5MzcsIDIuMjMxNywgMi43ODQyNyIsIFwKLSAgICAgICAgICAiMC4xNTY4NjgsIDAuMTgzMzk2LCAwLjQyODA3MywgMC44NDE1NzIsIDEuMjU5MzUsIDIuMjI4OTksIDIuNzg3NjUiLCBcCi0gICAgICAgICAgIjAuMTU3MzE4LCAwLjE4MzgwMiwgMC40MjgyNywgMC44NDEzNiwgMS4yNTk0MywgMi4yMjg5NCwgMi43ODgzMSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTc3NTU2LCAwLjE5MTg4NSwgMC4zMTkzNTEsIDAuNTMxMzg2LCAwLjc0MzIxNywgMS4yMzc0NiwgMS41MTk4MyIsIFwKLSAgICAgICAgICAiMC4xODc0MDMsIDAuMjAxNzQyLCAwLjMyOTIwNCwgMC41NDEyNjEsIDAuNzUyOTg2LCAxLjI0NzQyLCAxLjUyOTcyIiwgXAotICAgICAgICAgICIwLjE5NzgyNSwgMC4yMTIxNDQsIDAuMzM5NjEyLCAwLjU1MTU1MSwgMC43NjMzODUsIDEuMjU3ODQsIDEuNTQwMjUiLCBcCi0gICAgICAgICAgIjAuMjA2Mjk5LCAwLjIyMDYzNywgMC4zNDgxMDcsIDAuNTYwMTQ1LCAwLjc3MTkxOSwgMS4yNjYzNSwgMS41NDg1OSIsIFwKLSAgICAgICAgICAiMC4yMTMxMjksIDAuMjI3NDc4LCAwLjM1NDk0NiwgMC41NjcyMjQsIDAuNzc4OTU0LCAxLjI3MzQzLCAxLjU1NTY2IiwgXAotICAgICAgICAgICIwLjIyMjQ4MywgMC4yMzY4NDgsIDAuMzY0MjksIDAuNTc2MjcyLCAwLjc4ODA2OCwgMS4yODIzNCwgMS41NjQ4NiIsIFwKLSAgICAgICAgICAiMC4yMjk0NzIsIDAuMjQzODc5LCAwLjM3MTM4NiwgMC41ODMzMSwgMC43OTUwMjYsIDEuMjg5NCwgMS41NzE1OCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNjAyNzgsIDAuMTg4MTYxLCAwLjQ0NTQ3MSwgMC44NzgwODIsIDEuMzEyOTUsIDIuMzI2MDksIDIuOTExNzciLCBcCi0gICAgICAgICAgIjAuMTYwMjc0LCAwLjE4ODI2NCwgMC40NDU0NzYsIDAuODc4MDg5LCAxLjMxNDM1LCAyLjMzMTQ1LCAyLjkwNzE0IiwgXAotICAgICAgICAgICIwLjE2MDI3MSwgMC4xODgzMDIsIDAuNDQ1NDYzLCAwLjg3OTc4OCwgMS4zMTQ4OSwgMi4zMzE0LCAyLjkxMjEyIiwgXAotICAgICAgICAgICIwLjE2MDI2OSwgMC4xODgyNiwgMC40NDU0NywgMC44NzgwODIsIDEuMzE0OTcsIDIuMzI2ODQsIDIuOTA3MjIiLCBcCi0gICAgICAgICAgIjAuMTYwMjYxLCAwLjE4ODI5OSwgMC40NDU0ODIsIDAuODc4MDg3LCAxLjMxNDMzLCAyLjMyNjgsIDIuOTA3MjEiLCBcCi0gICAgICAgICAgIjAuMTYwNDY0LCAwLjE4ODQ0OSwgMC40NDU1MDgsIDAuODc4NzE4LCAxLjMxNDcsIDIuMzMwNjQsIDIuOTA3ODMiLCBcCi0gICAgICAgICAgIjAuMTYwNTEzLCAwLjE4ODU2NiwgMC40NDU2MzcsIDAuODc5NTAyLCAxLjMxNDY3LCAyLjMyODA0LCAyLjkwNzc2Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE4MDI0LCAwLjE5NDQ4OSwgMC4zMTk2NTIsIDAuNTI3MTYxLCAwLjczNDY0MywgMS4yMTg1OSwgMS40OTUxNCIsIFwKLSAgICAgICAgICAiMC4xOTA0NzEsIDAuMjA0NzI1LCAwLjMyOTg4NSwgMC41Mzc0MDYsIDAuNzQ0ODcsIDEuMjI4ODIsIDEuNTA1MzciLCBcCi0gICAgICAgICAgIjAuMjAxNTc5LCAwLjIxNTgwMSwgMC4zNDA5NTQsIDAuNTQ4NDcyLCAwLjc1NTk0NSwgMS4yMzk4NywgMS41MTY0NyIsIFwKLSAgICAgICAgICAiMC4yMTA3NzQsIDAuMjI1MDIxLCAwLjM1MDE5NSwgMC41NTc3MTgsIDAuNzY1MTk4LCAxLjI0OTEyLCAxLjUyNTgiLCBcCi0gICAgICAgICAgIjAuMjE4NTEyLCAwLjIzMjc4MiwgMC4zNTc5NDEsIDAuNTY1NDYxLCAwLjc3Mjk4MSwgMS4yNTY4NiwgMS41MzM0MSIsIFwKLSAgICAgICAgICAiMC4yMjg4OTQsIDAuMjQzMTUyLCAwLjM2ODM0MiwgMC41NzU2OTksIDAuNzgzMjg5LCAxLjI2NzIyLCAxLjU0MzU5IiwgXAotICAgICAgICAgICIwLjIzNjc3MywgMC4yNTA5OCwgMC4zNzYxOTgsIDAuNTgzNzMsIDAuNzkxMTY1LCAxLjI3NTA2LCAxLjU1MTY1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE1NjQ3MywgMC4xODMwODMsIDAuNDI3NzQxLCAwLjg0MjgsIDEuMjU5NDgsIDIuMjI4NjQsIDIuNzgwNDIiLCBcCi0gICAgICAgICAgIjAuMTU2NDIxLCAwLjE4MzA5MSwgMC40Mjc1NTEsIDAuODQxNDcsIDEuMjU5MzQsIDIuMjI4NzQsIDIuNzgyNTIiLCBcCi0gICAgICAgICAgIjAuMTU2NDY1LCAwLjE4MzA4OCwgMC40Mjc2ODgsIDAuODQxMzY2LCAxLjI1OTM0LCAyLjIyODExLCAyLjc4MTU2IiwgXAotICAgICAgICAgICIwLjE1NjQ2NCwgMC4xODMwMjgsIDAuNDI3NTI2LCAwLjg0MTY5MiwgMS4yNTkzOCwgMi4yMjg2OSwgMi43ODg2MSIsIFwKLSAgICAgICAgICAiMC4xNTY0NzMsIDAuMTgzMDQxLCAwLjQyODA0NiwgMC44NDE1OTcsIDEuMjU5MzQsIDIuMjMxNzEsIDIuNzg3OTYiLCBcCi0gICAgICAgICAgIjAuMTU2NjM4LCAwLjE4MzIyNCwgMC40MjgxNjcsIDAuODQyNjYxLCAxLjI1OTE0LCAyLjIyNzkzLCAyLjc4NzM2IiwgXAotICAgICAgICAgICIwLjE1NjY0MSwgMC4xODMyNjksIDAuNDI3Njc5LCAwLjg0MTQxLCAxLjI1OTExLCAyLjIzMTQyLCAyLjc4NzIyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlMxIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTE2OTIsIDAuMTI1ODQ2LCAwLjI1MzEwMiwgMC40NjQ5MjcsIDAuNjc2NzMyLCAxLjE3MDk0LCAxLjQ1MzM2IiwgXAotICAgICAgICAgICIwLjEyMDkyOSwgMC4xMzUwNjYsIDAuMjYyMzA2LCAwLjQ3NDE4LCAwLjY4NTk3NiwgMS4xODAxMywgMS40NjI3MiIsIFwKLSAgICAgICAgICAiMC4xMzI1MDgsIDAuMTQ2NjU0LCAwLjI3MzkyNSwgMC40ODU3NjksIDAuNjk3NTg2LCAxLjE5MTc4LCAxLjQ3NDMzIiwgXAotICAgICAgICAgICIwLjE0MzQyNywgMC4xNTc1ODQsIDAuMjg0ODMxLCAwLjQ5NjY2OSwgMC43MDg0OTQsIDEuMjAyNjgsIDEuNDg1MjIiLCBcCi0gICAgICAgICAgIjAuMTUyOTY2LCAwLjE2NzEyOSwgMC4yOTQzNjIsIDAuNTA2MjA5LCAwLjcxODA4NCwgMS4yMTIyMywgMS40OTQ2MiIsIFwKLSAgICAgICAgICAiMC4xNjYwNTIsIDAuMTgwMjI2LCAwLjMwNzQzNywgMC41MTkyOTMsIDAuNzMxMTY2LCAxLjIyNTMxLCAxLjUwNzY4IiwgXAotICAgICAgICAgICIwLjE3NjE5MywgMC4xOTAzNywgMC4zMTc1ODYsIDAuNTI5NDQzLCAwLjc0MTI1MiwgMS4yMzU0NywgMS41MTc4NiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNTQ0MjQsIDAuMTgzMTIzLCAwLjQ0Mzc1OSwgMC44Nzc5NDQsIDEuMzE0NCwgMi4zMjgxNiwgMi45MDc2MSIsIFwKLSAgICAgICAgICAiMC4xNTQzODMsIDAuMTgzMTM1LCAwLjQ0MzEwNSwgMC44Nzc2MzgsIDEuMzEyOSwgMi4zMzAzNiwgMi45MTE1MSIsIFwKLSAgICAgICAgICAiMC4xNTQzODYsIDAuMTgzMTY5LCAwLjQ0MzY3MywgMC44Nzg5NzYsIDEuMzEyODIsIDIuMzI3NzUsIDIuOTExNTQiLCBcCi0gICAgICAgICAgIjAuMTU0Nzg3LCAwLjE4MzM5OCwgMC40NDM2MTYsIDAuODc4ODAzLCAxLjMxMjk5LCAyLjMzMDI2LCAyLjkwNjc0IiwgXAotICAgICAgICAgICIwLjE1NTE0NSwgMC4xODM2OTEsIDAuNDQzMTY3LCAwLjg3Nzg0MywgMS4zMTQzLCAyLjMyNzk4LCAyLjkwOCIsIFwKLSAgICAgICAgICAiMC4xNTU2NjMsIDAuMTg0MDg2LCAwLjQ0MzM0NiwgMC44Nzg4NTEsIDEuMzE0MzEsIDIuMzMwMjIsIDIuOTA3ODIiLCBcCi0gICAgICAgICAgIjAuMTU2MjEsIDAuMTg0NTc1LCAwLjQ0MzUwMiwgMC44Nzg4MzgsIDEuMzEzNzUsIDIuMzI3OTIsIDIuOTA3NTMiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTI0NzI0LCAwLjEzODkxNSwgMC4yNjM4OSwgMC40NzEyOTEsIDAuNjc4NzIzLCAxLjE2Mjg5LCAxLjQzOTczIiwgXAotICAgICAgICAgICIwLjEzMzI3NCwgMC4xNDc0NzIsIDAuMjcyNDUsIDAuNDc5ODc4LCAwLjY4NzI4LCAxLjE3MTcyLCAxLjQ0ODMzIiwgXAotICAgICAgICAgICIwLjE0NDIzLCAwLjE1ODQxNSwgMC4yODM0MTYsIDAuNDkwODcxLCAwLjY5ODMzNSwgMS4xODMwOSwgMS40NTkwNyIsIFwKLSAgICAgICAgICAiMC4xNTQ3MDUsIDAuMTY4ODg5LCAwLjI5Mzg5OCwgMC41MDEzNDksIDAuNzA4NzU4LCAxLjE5MzYxLCAxLjQ2OTg1IiwgXAotICAgICAgICAgICIwLjE2NDA1MSwgMC4xNzgyMSwgMC4zMDMyOTEsIDAuNTEwNzA0LCAwLjcxODE1NiwgMS4yMDI2MywgMS40Nzg5MyIsIFwKLSAgICAgICAgICAiMC4xNzY5MTgsIDAuMTkxMTU4LCAwLjMxNjIzMywgMC41MjM2ODUsIDAuNzMxMTAyLCAxLjIxNTI3LCAxLjQ5MjIiLCBcCi0gICAgICAgICAgIjAuMTg2NzIyLCAwLjIwMDk4OCwgMC4zMjYxNDIsIDAuNTMzNjM5LCAwLjc0MTAwNSwgMS4yMjU0MiwgMS41MDE5MiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNTU3NCwgMC4xODI0MDIsIDAuNDI3MzEsIDAuODQyNDE1LCAxLjI1OSwgMi4yMzA5LCAyLjc4MjI2IiwgXAotICAgICAgICAgICIwLjE1NTYxOCwgMC4xODIzMzIsIDAuNDI2NzI4LCAwLjg0MTM0MiwgMS4yNTg5NiwgMi4yMjk0LCAyLjc4MTkxIiwgXAotICAgICAgICAgICIwLjE1NTQxNywgMC4xODIxMzksIDAuNDI2NzA3LCAwLjg0MDUxNSwgMS4yNTc1NywgMi4yMjcxMSwgMi43ODE4OSIsIFwKLSAgICAgICAgICAiMC4xNTUzMTcsIDAuMTgyMDksIDAuNDI3NTU3LCAwLjg0MDgwMiwgMS4yNTkwMiwgMi4yMjc3NCwgMi43ODg1MiIsIFwKLSAgICAgICAgICAiMC4xNTU0NjYsIDAuMTgyMjAyLCAwLjQyNzI0NCwgMC44NDIzMSwgMS4yNTkwMywgMi4yMzExNywgMi43ODg1OCIsIFwKLSAgICAgICAgICAiMC4xNTU5MDMsIDAuMTgyNjQ0LCAwLjQyNzg1MiwgMC44NDI2NTMsIDEuMjU5MDgsIDIuMjI3NzYsIDIuNzg3MDQiLCBcCi0gICAgICAgICAgIjAuMTU2MzA1LCAwLjE4MzA1NywgMC40MjgxMDQsIDAuODQyOTY4LCAxLjI1OTEyLCAyLjIyODkzLCAyLjc4MTk4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlMxIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMzAwMDksIDAuMTQ0MzA2LCAwLjI3MTYxLCAwLjQ4MzUyMiwgMC42OTUyOTksIDEuMTkwMjMsIDEuNDcyNzUiLCBcCi0gICAgICAgICAgIjAuMTQwMDgyLCAwLjE1NDM3OCwgMC4yODE2ODEsIDAuNDkzNjEyLCAwLjcwNTcwMywgMS4yMDAxMywgMS40ODI5MyIsIFwKLSAgICAgICAgICAiMC4xNTIxMzMsIDAuMTY2NDI1LCAwLjI5Mzc2MSwgMC41MDU2NiwgMC43MTc3MTgsIDEuMjEyMTgsIDEuNDk0ODgiLCBcCi0gICAgICAgICAgIjAuMTYxNTkyLCAwLjE3NTg4NiwgMC4zMDMxOTcsIDAuNTE1MTQzLCAwLjcyNzE5NSwgMS4yMjE2LCAxLjUwNDAxIiwgXAotICAgICAgICAgICIwLjE2OTI2NiwgMC4xODM1NjEsIDAuMzEwODc4LCAwLjUyMjc4MiwgMC43MzQ4OTYsIDEuMjI5MjEsIDEuNTExNTUiLCBcCi0gICAgICAgICAgIjAuMTc5NjIsIDAuMTkzOTE3LCAwLjMyMTIzMiwgMC41MzMyMjQsIDAuNzQ1MjYyLCAxLjIzOTI3LCAxLjUyMTk1IiwgXAotICAgICAgICAgICIwLjE4NzIxMiwgMC4yMDE0ODgsIDAuMzI4ODAyLCAwLjU0MDcxLCAwLjc1MjU1OCwgMS4yNDcwMSwgMS41Mjk1OCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNTk1NzQsIDAuMTg3NTU1LCAwLjQ0NTIwNSwgMC44Nzk2OTIsIDEuMzE1MDIsIDIuMzI3MTIsIDIuOTA2OCIsIFwKLSAgICAgICAgICAiMC4xNTk1ODEsIDAuMTg3NjgxLCAwLjQ0NDc0NSwgMC44Nzk0ODQsIDEuMzEyNiwgMi4zMzE2OCwgMi45MTg1IiwgXAotICAgICAgICAgICIwLjE1OTUzNSwgMC4xODc2LCAwLjQ0NTIyNywgMC44Nzk2OTksIDEuMzEyNTYsIDIuMzI3MSwgMi45MDY3OSIsIFwKLSAgICAgICAgICAiMC4xNTk0NzMsIDAuMTg3NTg5LCAwLjQ0NDcwOCwgMC44Nzc3NTIsIDEuMzEyNTYsIDIuMzI3MTQsIDIuOTA1NiIsIFwKLSAgICAgICAgICAiMC4xNTkzNDgsIDAuMTg3NDg1LCAwLjQ0NDcyMywgMC44Nzk1LCAxLjMxMjUyLCAyLjMyODczLCAyLjkwNjIxIiwgXAotICAgICAgICAgICIwLjE1OTE2LCAwLjE4NzI4OCwgMC40NDUxMDgsIDAuODc3NjI4LCAxLjMxMjUyLCAyLjMzMTIyLCAyLjkxMTIyIiwgXAotICAgICAgICAgICIwLjE1OTAyOSwgMC4xODcyNDIsIDAuNDQ0OTA3LCAwLjg3OTY0MSwgMS4zMTQ4NiwgMi4zMzAwOSwgMi45MDY5OCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMzA3NTksIDAuMTQ0NjM4LCAwLjI2OTI1MywgMC40NzY3MjgsIDAuNjg0MTI4LCAxLjE2ODA3LCAxLjQ0NDYzIiwgXAotICAgICAgICAgICIwLjE0MDg5MywgMC4xNTQ3NjksIDAuMjc5MzgxLCAwLjQ4NjgyOCwgMC42OTQyNTcsIDEuMTc4MTgsIDEuNDU0NyIsIFwKLSAgICAgICAgICAiMC4xNTIxNjcsIDAuMTY2MDQyLCAwLjI5MDY2LCAwLjQ5ODEwOSwgMC43MDU1NDYsIDEuMTg5NDUsIDEuNDY1OTkiLCBcCi0gICAgICAgICAgIjAuMTYxMzYzLCAwLjE3NTI0LCAwLjI5OTg1NSwgMC41MDcyOTgsIDAuNzE0NzIxLCAxLjE5ODY2LCAxLjQ3NTE4IiwgXAotICAgICAgICAgICIwLjE2OTQwNywgMC4xODMyODIsIDAuMzA3ODgzLCAwLjUxNTM0NSwgMC43MjI3NjEsIDEuMjA2NjksIDEuNDgzMjgiLCBcCi0gICAgICAgICAgIjAuMTc5OTk1LCAwLjE5Mzg4NCwgMC4zMTg1MTEsIDAuNTI1OTg5LCAwLjczMzQ2MywgMS4yMTcyLCAxLjQ5Mzg2IiwgXAotICAgICAgICAgICIwLjE4ODAyNiwgMC4yMDE5MzMsIDAuMzI2NjA5LCAwLjUzNDA4NCwgMC43NDE1MTYsIDEuMjI1NTksIDEuNTAxOTYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTQ4NTg1LCAwLjE3NTc3NSwgMC40MjQxMzcsIDAuODQwMDY5LCAxLjI1NjU0LCAyLjIyNzc5LCAyLjc4NzczIiwgXAotICAgICAgICAgICIwLjE0ODU4NSwgMC4xNzU4NywgMC40MjQxNzYsIDAuODQxNDk0LCAxLjI1NzUxLCAyLjIyOTE2LCAyLjc4MjMyIiwgXAotICAgICAgICAgICIwLjE0ODU4MiwgMC4xNzU4NzUsIDAuNDIzOTE2LCAwLjg0MDg4MSwgMS4yNTg1OSwgMi4yMjkxNiwgMi43ODI1MSIsIFwKLSAgICAgICAgICAiMC4xNDg1ODQsIDAuMTc1OTMyLCAwLjQyMzg3MywgMC44NDE0OTQsIDEuMjU2MTIsIDIuMjI3MjMsIDIuNzgyNSIsIFwKLSAgICAgICAgICAiMC4xNDg2OTMsIDAuMTc1OTcsIDAuNDI0NTUxLCAwLjg0MTU2OSwgMS4yNTgzLCAyLjIzMTU2LCAyLjc4NzUyIiwgXAotICAgICAgICAgICIwLjE0ODc0NCwgMC4xNzYwMywgMC40MjQ1NTUsIDAuODQwMzY2LCAxLjI1NzYsIDIuMjMxMjksIDIuNzg3MDciLCBcCi0gICAgICAgICAgIjAuMTQ4NzE2LCAwLjE3NjAyNSwgMC40MjQ0MjYsIDAuODQwMjMxLCAxLjI1NzQ1LCAyLjIyNTM4LCAyLjc4MjkxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyMDQ4LCAwLjAwMjA1LCAwLjAwMjA1OCwgMC4wMDIwNjIsIDAuMDAyMDY0LCAwLjAwMjA2NCwgMC4wMDIwNjQiLCBcCi0gICAgICAgICAgIjAuMDAyMDMxLCAwLjAwMjAzNCwgMC4wMDIwNDIsIDAuMDAyMDQ1LCAwLjAwMjA0NywgMC4wMDIwNDgsIDAuMDAyMDQ4IiwgXAotICAgICAgICAgICIwLjAwMjAyMiwgMC4wMDIwMjQsIDAuMDAyMDMzLCAwLjAwMjAzNywgMC4wMDIwMzksIDAuMDAyMDQsIDAuMDAyMDQiLCBcCi0gICAgICAgICAgIjAuMDAyMDE2LCAwLjAwMjAxOSwgMC4wMDIwMjgsIDAuMDAyMDMyLCAwLjAwMjAzNCwgMC4wMDIwMzUsIDAuMDAyMDM2IiwgXAotICAgICAgICAgICIwLjAwMjAxNCwgMC4wMDIwMTYsIDAuMDAyMDI2LCAwLjAwMjAzLCAwLjAwMjAzMiwgMC4wMDIwMzMsIDAuMDAyMDM0IiwgXAotICAgICAgICAgICIwLjAwMjAxMywgMC4wMDIwMTYsIDAuMDAyMDI2LCAwLjAwMjAzMSwgMC4wMDIwMzMsIDAuMDAyMDM1LCAwLjAwMjAzNSIsIFwKLSAgICAgICAgICAiMC4wMDIwMTYsIDAuMDAyMDE4LCAwLjAwMjAyOCwgMC4wMDIwMzQsIDAuMDAyMDM1LCAwLjAwMjAzNywgMC4wMDIwMzgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQwMzIsIDAuMDA0MDM0LCAwLjAwNDA0NSwgMC4wMDQwNDksIDAuMDA0MDUxLCAwLjAwNDA1MiwgMC4wMDQwNTMiLCBcCi0gICAgICAgICAgIjAuMDA0MDIzLCAwLjAwNDAyNSwgMC4wMDQwMzYsIDAuMDA0MDQxLCAwLjAwNDA0MiwgMC4wMDQwNDQsIDAuMDA0MDQ0IiwgXAotICAgICAgICAgICIwLjAwNDAxNiwgMC4wMDQwMTksIDAuMDA0MDMsIDAuMDA0MDM0LCAwLjAwNDAzNiwgMC4wMDQwMzgsIDAuMDA0MDM4IiwgXAotICAgICAgICAgICIwLjAwNDAxMywgMC4wMDQwMTYsIDAuMDA0MDI4LCAwLjAwNDAzMywgMC4wMDQwMzQsIDAuMDA0MDM2LCAwLjAwNDAzNyIsIFwKLSAgICAgICAgICAiMC4wMDQwMTEsIDAuMDA0MDE0LCAwLjAwNDAyNiwgMC4wMDQwMzEsIDAuMDA0MDMzLCAwLjAwNDAzNSwgMC4wMDQwMzYiLCBcCi0gICAgICAgICAgIjAuMDA0MDExLCAwLjAwNDAxNCwgMC4wMDQwMjcsIDAuMDA0MDMyLCAwLjAwNDAzNCwgMC4wMDQwMzYsIDAuMDA0MDM3IiwgXAotICAgICAgICAgICIwLjAwNDAxMywgMC4wMDQwMTQsIDAuMDA0MDI5LCAwLjAwNDAzNiwgMC4wMDQwMzgsIDAuMDA0MDQsIDAuMDA0MDQxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxODU5LCAwLjAwMTg2MSwgMC4wMDE4NjksIDAuMDAxODczLCAwLjAwMTg3NCwgMC4wMDE4NzUsIDAuMDAxODc2IiwgXAotICAgICAgICAgICIwLjAwMTg0MiwgMC4wMDE4NDUsIDAuMDAxODUzLCAwLjAwMTg1NywgMC4wMDE4NTgsIDAuMDAxODU5LCAwLjAwMTg2IiwgXAotICAgICAgICAgICIwLjAwMTgzMywgMC4wMDE4MzYsIDAuMDAxODQ0LCAwLjAwMTg0OCwgMC4wMDE4NSwgMC4wMDE4NTEsIDAuMDAxODUxIiwgXAotICAgICAgICAgICIwLjAwMTgyOCwgMC4wMDE4MywgMC4wMDE4NCwgMC4wMDE4NDQsIDAuMDAxODQ1LCAwLjAwMTg0NiwgMC4wMDE4NDciLCBcCi0gICAgICAgICAgIjAuMDAxODI1LCAwLjAwMTgyNywgMC4wMDE4MzcsIDAuMDAxODQxLCAwLjAwMTg0MywgMC4wMDE4NDQsIDAuMDAxODQ0IiwgXAotICAgICAgICAgICIwLjAwMTgyNCwgMC4wMDE4MjYsIDAuMDAxODM3LCAwLjAwMTg0MiwgMC4wMDE4NDMsIDAuMDAxODQ1LCAwLjAwMTg0NiIsIFwKLSAgICAgICAgICAiMC4wMDE4MjcsIDAuMDAxODI5LCAwLjAwMTgzOSwgMC4wMDE4NDQsIDAuMDAxODQ2LCAwLjAwMTg0OCwgMC4wMDE4NSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDIxNiwgMC4wMDQyMTksIDAuMDA0MjI5LCAwLjAwNDIzNCwgMC4wMDQyMzYsIDAuMDA0MjM3LCAwLjAwNDIzNyIsIFwKLSAgICAgICAgICAiMC4wMDQyMDcsIDAuMDA0MjEsIDAuMDA0MjIsIDAuMDA0MjI1LCAwLjAwNDIyNywgMC4wMDQyMjgsIDAuMDA0MjI4IiwgXAotICAgICAgICAgICIwLjAwNDIwMSwgMC4wMDQyMDQsIDAuMDA0MjE1LCAwLjAwNDIyLCAwLjAwNDIyMiwgMC4wMDQyMjMsIDAuMDA0MjIzIiwgXAotICAgICAgICAgICIwLjAwNDE5NywgMC4wMDQyLCAwLjAwNDIxMiwgMC4wMDQyMTcsIDAuMDA0MjE5LCAwLjAwNDIyMSwgMC4wMDQyMjEiLCBcCi0gICAgICAgICAgIjAuMDA0MTk1LCAwLjAwNDE5OCwgMC4wMDQyMSwgMC4wMDQyMTYsIDAuMDA0MjE4LCAwLjAwNDIxOSwgMC4wMDQyMiIsIFwKLSAgICAgICAgICAiMC4wMDQxOTUsIDAuMDA0MTk4LCAwLjAwNDIxMSwgMC4wMDQyMTcsIDAuMDA0MjE5LCAwLjAwNDIyMSwgMC4wMDQyMjIiLCBcCi0gICAgICAgICAgIjAuMDA0MTk3LCAwLjAwNDIsIDAuMDA0MjEzLCAwLjAwNDIxOSwgMC4wMDQyMjIsIDAuMDA0MjI0LCAwLjAwNDIyNSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTE2NiwgMC4wMDExNjcsIDAuMDAxMTY4LCAwLjAwMTE2OCwgMC4wMDExNjgsIDAuMDAxMTY4LCAwLjAwMTE2OCIsIFwKLSAgICAgICAgICAiMC4wMDExNDYsIDAuMDAxMTQ3LCAwLjAwMTE0OCwgMC4wMDExNDgsIDAuMDAxMTQ4LCAwLjAwMTE0OSwgMC4wMDExNDkiLCBcCi0gICAgICAgICAgIjAuMDAxMTM3LCAwLjAwMTEzOCwgMC4wMDExMzksIDAuMDAxMTQsIDAuMDAxMTQsIDAuMDAxMTQsIDAuMDAxMTQiLCBcCi0gICAgICAgICAgIjAuMDAxMTMzLCAwLjAwMTEzNCwgMC4wMDExMzYsIDAuMDAxMTM3LCAwLjAwMTEzNywgMC4wMDExMzcsIDAuMDAxMTM3IiwgXAotICAgICAgICAgICIwLjAwMTEzMSwgMC4wMDExMzIsIDAuMDAxMTM1LCAwLjAwMTEzNiwgMC4wMDExMzYsIDAuMDAxMTM2LCAwLjAwMTEzNiIsIFwKLSAgICAgICAgICAiMC4wMDExMzQsIDAuMDAxMTM2LCAwLjAwMTEzOSwgMC4wMDExNCwgMC4wMDExNCwgMC4wMDExNDEsIDAuMDAxMTQxIiwgXAotICAgICAgICAgICIwLjAwMTE0LCAwLjAwMTE0MSwgMC4wMDExNDUsIDAuMDAxMTQ2LCAwLjAwMTE0NiwgMC4wMDExNDYsIDAuMDAxMTQ3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyNDk0LCAwLjAwMjQ5NSwgMC4wMDI0OTgsIDAuMDAyNDk5LCAwLjAwMjQ5OSwgMC4wMDI1LCAwLjAwMjUiLCBcCi0gICAgICAgICAgIjAuMDAyNDgyLCAwLjAwMjQ4NCwgMC4wMDI0ODcsIDAuMDAyNDg3LCAwLjAwMjQ4OCwgMC4wMDI0ODgsIDAuMDAyNDg4IiwgXAotICAgICAgICAgICIwLjAwMjQ3NiwgMC4wMDI0NzgsIDAuMDAyNDgxLCAwLjAwMjQ4MywgMC4wMDI0ODMsIDAuMDAyNDgzLCAwLjAwMjQ4MyIsIFwKLSAgICAgICAgICAiMC4wMDI0NzQsIDAuMDAyNDc2LCAwLjAwMjQ4LCAwLjAwMjQ4MiwgMC4wMDI0ODIsIDAuMDAyNDgyLCAwLjAwMjQ4MyIsIFwKLSAgICAgICAgICAiMC4wMDI0NzMsIDAuMDAyNDc0LCAwLjAwMjQ3OSwgMC4wMDI0ODEsIDAuMDAyNDgyLCAwLjAwMjQ4MiwgMC4wMDI0ODMiLCBcCi0gICAgICAgICAgIjAuMDAyNDc1LCAwLjAwMjQ3NywgMC4wMDI0ODIsIDAuMDAyNDg0LCAwLjAwMjQ4NSwgMC4wMDI0ODYsIDAuMDAyNDg2IiwgXAotICAgICAgICAgICIwLjAwMjQ4LCAwLjAwMjQ4LCAwLjAwMjQ4NywgMC4wMDI0ODksIDAuMDAyNDksIDAuMDAyNDkxLCAwLjAwMjQ5MSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlMwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDM5MzksIDAuMDAzOTQxLCAwLjAwMzk1LCAwLjAwMzk1NCwgMC4wMDM5NTUsIDAuMDAzOTU4LCAwLjAwMzk1OCIsIFwKLSAgICAgICAgICAiMC4wMDM5MjQsIDAuMDAzOTI2LCAwLjAwMzkzNSwgMC4wMDM5MzksIDAuMDAzOTQyLCAwLjAwMzk0MSwgMC4wMDM5NDIiLCBcCi0gICAgICAgICAgIjAuMDAzOTMsIDAuMDAzOTMyLCAwLjAwMzk0LCAwLjAwMzk0NCwgMC4wMDM5NDUsIDAuMDAzOTQ3LCAwLjAwMzk0NyIsIFwKLSAgICAgICAgICAiMC4wMDM5MzIsIDAuMDAzOTM0LCAwLjAwMzk0MywgMC4wMDM5NDYsIDAuMDAzOTQ4LCAwLjAwMzk0OSwgMC4wMDM5NSIsIFwKLSAgICAgICAgICAiMC4wMDM5NDMsIDAuMDAzOTQ1LCAwLjAwMzk1NCwgMC4wMDM5NTcsIDAuMDAzOTU5LCAwLjAwMzk2LCAwLjAwMzk2MSIsIFwKLSAgICAgICAgICAiMC4wMDM5NjYsIDAuMDAzOTY4LCAwLjAwMzk3NiwgMC4wMDM5NzYsIDAuMDAzOTgyLCAwLjAwMzk4MywgMC4wMDM5ODMiLCBcCi0gICAgICAgICAgIjAuMDAzOTg3LCAwLjAwMzk4OSwgMC4wMDM5OTksIDAuMDA0MDAyLCAwLjAwNCwgMC4wMDQwMDUsIDAuMDA0MDAxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzODU0LCAwLjAwMzg1NywgMC4wMDM4NjgsIDAuMDAzODczLCAwLjAwMzg3NSwgMC4wMDM4NzYsIDAuMDAzODc2IiwgXAotICAgICAgICAgICIwLjAwMzgzMSwgMC4wMDM4MzQsIDAuMDAzODQ1LCAwLjAwMzg1LCAwLjAwMzg1MiwgMC4wMDM4NTMsIDAuMDAzODU0IiwgXAotICAgICAgICAgICIwLjAwMzgzNywgMC4wMDM4NCwgMC4wMDM4NTEsIDAuMDAzODU2LCAwLjAwMzg1NywgMC4wMDM4NTksIDAuMDAzODU5IiwgXAotICAgICAgICAgICIwLjAwMzg0MSwgMC4wMDM4NDQsIDAuMDAzODU1LCAwLjAwMzg2LCAwLjAwMzg2MSwgMC4wMDM4NjMsIDAuMDAzODYzIiwgXAotICAgICAgICAgICIwLjAwMzg1MSwgMC4wMDM4NTQsIDAuMDAzODY1LCAwLjAwMzg2OSwgMC4wMDM4NzEsIDAuMDAzODczLCAwLjAwMzg3MyIsIFwKLSAgICAgICAgICAiMC4wMDM4NzYsIDAuMDAzODc5LCAwLjAwMzg5LCAwLjAwMzg5MiwgMC4wMDM4OTYsIDAuMDAzODk4LCAwLjAwMzg5NiIsIFwKLSAgICAgICAgICAiMC4wMDM5MDEsIDAuMDAzOTA0LCAwLjAwMzkxNCwgMC4wMDM5MTksIDAuMDAzOTIxLCAwLjAwMzkyMiwgMC4wMDM5MjMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTMSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzMjg5LCAwLjAwMzI5MSwgMC4wMDMyOTcsIDAuMDAzMjk5LCAwLjAwMzMsIDAuMDAzMzAxLCAwLjAwMzMwMSIsIFwKLSAgICAgICAgICAiMC4wMDMzMDgsIDAuMDAzMzEsIDAuMDAzMzE2LCAwLjAwMzMxOCwgMC4wMDMzMTksIDAuMDAzMzIsIDAuMDAzMzIiLCBcCi0gICAgICAgICAgIjAuMDAzMzU5LCAwLjAwMzM2MSwgMC4wMDMzNjgsIDAuMDAzMzcxLCAwLjAwMzM3MiwgMC4wMDMzNzIsIDAuMDAzMzczIiwgXAotICAgICAgICAgICIwLjAwMzQwNywgMC4wMDM0MDksIDAuMDAzNDE2LCAwLjAwMzQxOSwgMC4wMDM0MiwgMC4wMDM0MjEsIDAuMDAzNDIxIiwgXAotICAgICAgICAgICIwLjAwMzQzOCwgMC4wMDM0NCwgMC4wMDM0NDcsIDAuMDAzNDUsIDAuMDAzNDUxLCAwLjAwMzQ1MywgMC4wMDM0NTMiLCBcCi0gICAgICAgICAgIjAuMDAzNTAxLCAwLjAwMzUsIDAuMDAzNTA4LCAwLjAwMzUxNCwgMC4wMDM1MTUsIDAuMDAzNTE2LCAwLjAwMzUxNCIsIFwKLSAgICAgICAgICAiMC4wMDM1NjQsIDAuMDAzNTY2LCAwLjAwMzU3NCwgMC4wMDM1NzcsIDAuMDAzNTc4LCAwLjAwMzU4LCAwLjAwMzU4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyMTc0LCAwLjAwMjE3NiwgMC4wMDIxODEsIDAuMDAyMTgzLCAwLjAwMjE4NCwgMC4wMDIxODUsIDAuMDAyMTg1IiwgXAotICAgICAgICAgICIwLjAwMjE0OSwgMC4wMDIxNTEsIDAuMDAyMTU2LCAwLjAwMjE1OCwgMC4wMDIxNTksIDAuMDAyMTU5LCAwLjAwMjE1OSIsIFwKLSAgICAgICAgICAiMC4wMDIxNTMsIDAuMDAyMTU1LCAwLjAwMjE2LCAwLjAwMjE2MiwgMC4wMDIxNjIsIDAuMDAyMTYzLCAwLjAwMjE2MyIsIFwKLSAgICAgICAgICAiMC4wMDIxNTksIDAuMDAyMTYsIDAuMDAyMTY1LCAwLjAwMjE2NywgMC4wMDIxNjgsIDAuMDAyMTY5LCAwLjAwMjE2OSIsIFwKLSAgICAgICAgICAiMC4wMDIxNjcsIDAuMDAyMTY4LCAwLjAwMjE3MywgMC4wMDIxNzUsIDAuMDAyMTc2LCAwLjAwMjE3NiwgMC4wMDIxNzYiLCBcCi0gICAgICAgICAgIjAuMDAyMTkxLCAwLjAwMjE5MiwgMC4wMDIxOTcsIDAuMDAyMTk5LCAwLjAwMjIsIDAuMDAyMTk4LCAwLjAwMjIwMSIsIFwKLSAgICAgICAgICAiMC4wMDIyMTQsIDAuMDAyMjE2LCAwLjAwMjIyMSwgMC4wMDIyMjMsIDAuMDAyMjI0LCAwLjAwMjIyNCwgMC4wMDIyMjQiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBOQU5EMlgyICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKE5BTkQyWDIpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4xNDkxNjc7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTc3MTI0OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTc3MTI0OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTc2NzE1OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDgxOCwgMC4wMDA4MTgsIDAuMDAwODE3LCAwLjAwMDgxNywgMC4wMDA4MTcsIDAuMDAwODE3LCAwLjAwMDgxNyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDg0NSwgMC4wMDA4MjQsIDAuMDAwODIxLCAwLjAwMDgyMSwgMC4wMDA4MjEsIDAuMDAwODIxLCAwLjAwMDgyMSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNjQ1NDg7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNjQ0MDk7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNjQ1NDg7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNTE3LCAwLjAwMDUxNywgMC4wMDA1MTYsIDAuMDAwNTE2LCAwLjAwMDUxNiwgMC4wMDA1MTUsIDAuMDAwNTE2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwOTI4LCAwLjAwMDkyOSwgMC4wMDA5MjksIDAuMDAwOTMsIDAuMDAwOTMsIDAuMDAwOTI5LCAwLjAwMDkzIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMjY5OTU3OwotICAgIGZ1bmN0aW9uIDogIighKEEgQikpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjkxMTgsIDAuMTMwODE1LCAwLjIxMjA4OSwgMC4zMTM3OTksIDAuNDE1MTg3LCAwLjUxNjk5OSwgMC42MTg0NjciLCBcCi0gICAgICAgICAgIjAuMDM5MTQyLCAwLjE0MDc3LCAwLjIyMjExNCwgMC4zMjM1NzYsIDAuNDI1MjczLCAwLjUyNjc1OCwgMC42MjgzNjQiLCBcCi0gICAgICAgICAgIjAuMDUxNzI5LCAwLjE1MzEyMSwgMC4yMzQ0MTQsIDAuMzM1OTIxLCAwLjQzNzA4MywgMC41Mzc5NDMsIDAuNjM5ODgxIiwgXAotICAgICAgICAgICIwLjA2MzQ2NSwgMC4xNjU4NDUsIDAuMjQ2OTY2LCAwLjM0ODQyLCAwLjQ0OTk1MywgMC41NTE1MjEsIDAuNjUyMDY5IiwgXAotICAgICAgICAgICIwLjA3MzM0OSwgMC4xNzgxNzMsIDAuMjU5NjAyLCAwLjM2MTA4MSwgMC40NjI0ODcsIDAuNTY0MDIzLCAwLjY2NDMwNyIsIFwKLSAgICAgICAgICAiMC4wODY4NDgsIDAuMTk4ODY2LCAwLjI3OTM4MywgMC4zODEyMzUsIDAuNDgyNjcyLCAwLjU4NDE3NywgMC42ODU3NzciLCBcCi0gICAgICAgICAgIjAuMDk3MDM3LCAwLjIxNjczNywgMC4yOTY5NzMsIDAuMzk4NDYsIDAuNTAwNDE5LCAwLjYwMTgyOCwgMC43MDMxMjciKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDUxNjIyLCAwLjI2MDU5OCwgMC40Mjc1NTksIDAuNjM2NTU4LCAwLjg0NTAwNywgMS4wNTQ4NiwgMS4yNjMzMyIsIFwKLSAgICAgICAgICAiMC4wNTMyMTgsIDAuMjYwNDIzLCAwLjQyNzYzNSwgMC42MzY1MTIsIDAuODQ1NTE3LCAxLjA1NDA5LCAxLjI2MzMyIiwgXAotICAgICAgICAgICIwLjA1OTc3NywgMC4yNjA0MjYsIDAuNDI3NDkzLCAwLjYzNjQ4NiwgMC44NDUyNjYsIDEuMDUzNjUsIDEuMjYzMTciLCBcCi0gICAgICAgICAgIjAuMDY4MjU0LCAwLjI2MTk2NywgMC40Mjc1NTIsIDAuNjM2NTI0LCAwLjg0NTM5NiwgMS4wNTQxOSwgMS4yNjMyMyIsIFwKLSAgICAgICAgICAiMC4wNzc2OTIsIDAuMjY1NDU0LCAwLjQyODE2NywgMC42MzY2NDcsIDAuODQ0OTgsIDEuMDUzODMsIDEuMjYzMzUiLCBcCi0gICAgICAgICAgIjAuMDkyNjQyLCAwLjI3MzExMSwgMC40MzIyMjcsIDAuNjM2ODk4LCAwLjg0NDk4MSwgMS4wNTQ0NSwgMS4yNjMzNSIsIFwKLSAgICAgICAgICAiMC4xMDQ4NDQsIDAuMjgxNjE0LCAwLjQzNzgxOSwgMC42Mzk0NTIsIDAuODQ1Mjc3LCAxLjA1Mzg3LCAxLjI2Mjk5Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1MjIyOCwgMC4yNDI1NSwgMC4zOTQ3NDgsIDAuNTg1MzA4LCAwLjc3NTIyNCwgMC45NjU5MzEsIDEuMTU2MyIsIFwKLSAgICAgICAgICAiMC4wNjA5NzYsIDAuMjUxNTQzLCAwLjQwMzY5LCAwLjU5MzkwMSwgMC43ODQzMTksIDAuOTc0MjUxLCAxLjE2NDkzIiwgXAotICAgICAgICAgICIwLjA3MTc1LCAwLjI2MjU1NywgMC40MTQ4MjEsIDAuNjA1MDIsIDAuNzk1NzE5LCAwLjk4NTc4MywgMS4xNzU5NiIsIFwKLSAgICAgICAgICAiMC4wODI2NjksIDAuMjczNywgMC40MjU4MDUsIDAuNjE2MDczLCAwLjgwNjkwNywgMC45OTY1ODgsIDEuMTg3NTUiLCBcCi0gICAgICAgICAgIjAuMDkzMjYxLCAwLjI4NDQ0MywgMC40MzY4NDMsIDAuNjI3MDg5LCAwLjgxNzM0NSwgMS4wMDc1NiwgMS4xOTc5OSIsIFwKLSAgICAgICAgICAiMC4xMDgzNjcsIDAuMzAyMjA0LCAwLjQ1Mzc3MSwgMC42NDUxMDEsIDAuODM1NTg5LCAxLjAyNjA1LCAxLjIxNTgzIiwgXAotICAgICAgICAgICIwLjEyMDQwOCwgMC4zMTcwNjEsIDAuNDY5OTc3LCAwLjY2MDMzMiwgMC44NTA2MDcsIDEuMDQxNDcsIDEuMjMxMTkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDkwNTA1LCAwLjQ2NjkyNSwgMC43NzMwNDgsIDEuMTQ0NiwgMS41MzA2OCwgMS44OTc3NiwgMi4yNzM4OSIsIFwKLSAgICAgICAgICAiMC4wOTA4MjQsIDAuNDY5NTY3LCAwLjc3MDEzMSwgMS4xNDc2MSwgMS41MjAyLCAxLjkwMjQ3LCAyLjI3NDE5IiwgXAotICAgICAgICAgICIwLjA5MzAxNywgMC40Njk1MjQsIDAuNzcyMTA0LCAxLjE0NzEsIDEuNTIxNiwgMS44OTcxNywgMi4yNzk2MSIsIFwKLSAgICAgICAgICAiMC4wOTcxOTIsIDAuNDY2ODI2LCAwLjc3MDA3LCAxLjE0NzU2LCAxLjUyMDI4LCAxLjkwMTg5LCAyLjI3Mjc5IiwgXAotICAgICAgICAgICIwLjEwMjU1LCAwLjQ2ODI2NCwgMC43NzIwMjYsIDEuMTQ3MTEsIDEuNTI4OTUsIDEuOTA3MDMsIDIuMjc1MzgiLCBcCi0gICAgICAgICAgIjAuMTEyNjAyLCAwLjQ2OTQzNiwgMC43NzIxNTgsIDEuMTQ0MzksIDEuNTIwNTIsIDEuODk3MDgsIDIuMjg1MjciLCBcCi0gICAgICAgICAgIjAuMTIyNTc0LCAwLjQ3MzIyLCAwLjc3MDkxNiwgMS4xNDU0OSwgMS41MjQ5MSwgMS44OTY3NSwgMi4yODcyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjg1OTMsIDAuMTMzMDUsIDAuMjE2NjY3LCAwLjMyMTMyNywgMC40MjU1NTcsIDAuNTMwNDQ0LCAwLjYzNDc0OCIsIFwKLSAgICAgICAgICAiMC4wMzg1MTksIDAuMTQzMDYxLCAwLjIyNjUyOCwgMC4zMzExNTMsIDAuNDM1NDgyLCAwLjU0MDE0LCAwLjY0NDY0IiwgXAotICAgICAgICAgICIwLjA1MTI1MywgMC4xNTU3NCwgMC4yMzkyNzIsIDAuMzQzNzkxLCAwLjQ0ODEwMiwgMC41NTI5OTksIDAuNjU3MjQ3IiwgXAotICAgICAgICAgICIwLjA2MjUwOCwgMC4xNjc5MTksIDAuMjUxMzg0LCAwLjM1NTcyNSwgMC40NjAyMjMsIDAuNTY0NjIxLCAwLjY2Nzg3NCIsIFwKLSAgICAgICAgICAiMC4wNzE5NywgMC4xODAyMjMsIDAuMjYzOTc0LCAwLjM2ODI0MiwgMC40NzI4MjcsIDAuNTc3MDYzLCAwLjY3OTk5MSIsIFwKLSAgICAgICAgICAiMC4wODUzMTksIDAuMjAwODksIDAuMjgzNzU1LCAwLjM4ODUxMiwgMC40OTI4MiwgMC41OTcxNjMsIDAuNzAxNTU1IiwgXAotICAgICAgICAgICIwLjA5NDY5OSwgMC4yMTg3MTEsIDAuMzAxMzE0LCAwLjQwNjI0OSwgMC41MTA1MjUsIDAuNjE0Njk2LCAwLjcxOTEyIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1MTQ0NCwgMC4yNjYzNzUsIDAuNDM4NDE5LCAwLjY1MzY2OSwgMC44Njg0MiwgMS4wODM3MywgMS4yOTgyMyIsIFwKLSAgICAgICAgICAiMC4wNTMxMzYsIDAuMjY2NDIsIDAuNDM4MzI4LCAwLjY1MzQxNiwgMC44Njk2OTUsIDEuMDgzMzcsIDEuMjk4MzMiLCBcCi0gICAgICAgICAgIjAuMDU5NjA2LCAwLjI2NjQzLCAwLjQzODMyNSwgMC42NTM0MzIsIDAuODY4MDcxLCAxLjA4MzgyLCAxLjI5ODQ0IiwgXAotICAgICAgICAgICIwLjA2ODM3MiwgMC4yNjgyNjksIDAuNDM4NzE3LCAwLjY1MzI3MSwgMC44Njg0MjgsIDEuMDgyODksIDEuMjk5MjUiLCBcCi0gICAgICAgICAgIjAuMDc4MDU5LCAwLjI3MTU4NCwgMC40Mzk3NDQsIDAuNjU0NDQ0LCAwLjg2ODQyMywgMS4wODMxNiwgMS4yOTc4OCIsIFwKLSAgICAgICAgICAiMC4wOTM0NjMsIDAuMjc4NzY1LCAwLjQ0MzQ4OCwgMC42NTM2MzYsIDAuODY4MDAzLCAxLjA4MzM3LCAxLjI5OTE0IiwgXAotICAgICAgICAgICIwLjEwNTkwOCwgMC4yODcxMzcsIDAuNDQ4OTk0LCAwLjY1NjE0NCwgMC44Njg5ODcsIDEuMDgzMTUsIDEuMjk4NDYiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDUwMTEsIDAuMjQwNDgsIDAuMzkyODQ0LCAwLjU4Mjk2NiwgMC43NzM0MTIsIDAuOTYzMzY3LCAxLjE1NDA5IiwgXAotICAgICAgICAgICIwLjA1OTAzOSwgMC4yNDk3MzEsIDAuNDAxODM3LCAwLjU5MjA0NSwgMC43ODIxNiwgMC45NzIzOTUsIDEuMTYyNzgiLCBcCi0gICAgICAgICAgIjAuMDcwODM4LCAwLjI2MTQ2NywgMC40MTM2NTUsIDAuNjA0MzksIDAuNzk0MTUsIDAuOTg0ODU1LCAxLjE3NTEzIiwgXAotICAgICAgICAgICIwLjA4MjYwMiwgMC4yNzI3OSwgMC40MjUyMzksIDAuNjE1NDA4LCAwLjgwNTU0MywgMC45OTY0NDYsIDEuMTg2NjciLCBcCi0gICAgICAgICAgIjAuMDk0Mzk4LCAwLjI4NDQ5MywgMC40MzY4MDEsIDAuNjI2OTk3LCAwLjgxNzI0MiwgMS4wMDc5OSwgMS4xOTc2OCIsIFwKLSAgICAgICAgICAiMC4xMTExMDEsIDAuMzAzMTg2LCAwLjQ1MzAxNiwgMC42NDU2NTYsIDAuODM2MjQ3LCAxLjAyNjMsIDEuMjE2MzUiLCBcCi0gICAgICAgICAgIjAuMTIzMDg2LCAwLjMxOTYsIDAuNDcxNzg5LCAwLjY2MjE3MSwgMC44NTI1MTEsIDEuMDQzMDIsIDEuMjMyOTgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDkwNzQxLCAwLjQ2Njg4OCwgMC43Njc3NTUsIDEuMTQ0NiwgMS41MjA0MiwgMS45MDg3MiwgMi4yNzI4MSIsIFwKLSAgICAgICAgICAiMC4wOTA5MTksIDAuNDY2OTAzLCAwLjc3MjA3LCAxLjE1MDQsIDEuNTI0OTIsIDEuOTAyNDYsIDIuMjc1ODMiLCBcCi0gICAgICAgICAgIjAuMDk0NzE0LCAwLjQ2ODA0OCwgMC43Njk4MDQsIDEuMTQ0NTksIDEuNTI0NTQsIDEuODk2ODgsIDIuMjczMiIsIFwKLSAgICAgICAgICAiMC4xMDA4NTgsIDAuNDY4MTQzLCAwLjc2Nzk1NiwgMS4xNDc0NiwgMS41Mjk0NCwgMS44OTY1NCwgMi4yNzQyOCIsIFwKLSAgICAgICAgICAiMC4xMDg2MDEsIDAuNDY3MDY5LCAwLjc3MjM1MywgMS4xNTEwMSwgMS41Mjk5MywgMS44OTY2OSwgMi4yNzkxOCIsIFwKLSAgICAgICAgICAiMC4xMjMwNzksIDAuNDcxMjc5LCAwLjc3MjE2MiwgMS4xNDc1OCwgMS41MjA2LCAxLjg5ODg5LCAyLjI4NzEzIiwgXAotICAgICAgICAgICIwLjEzNjEyMywgMC40NzU3NjgsIDAuNzcwODc3LCAxLjE0NTIyLCAxLjUyMjI0LCAxLjg5Njg3LCAyLjI3OTk0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzNjEzLCAwLjAwMzYyLCAwLjAwMzYyMSwgMC4wMDM2MjEsIDAuMDAzNjIxLCAwLjAwMzYyMSwgMC4wMDM2MjEiLCBcCi0gICAgICAgICAgIjAuMDAzNTc2LCAwLjAwMzYwNCwgMC4wMDM2MDcsIDAuMDAzNjA5LCAwLjAwMzYxLCAwLjAwMzYwOSwgMC4wMDM2MTEiLCBcCi0gICAgICAgICAgIjAuMDAzNTY3LCAwLjAwMzU5NCwgMC4wMDM2MDQsIDAuMDAzNjA2LCAwLjAwMzYwNywgMC4wMDM2MDUsIDAuMDAzNjA2IiwgXAotICAgICAgICAgICIwLjAwMzU2OCwgMC4wMDM1OTYsIDAuMDAzNiwgMC4wMDM2MDQsIDAuMDAzNjA2LCAwLjAwMzYwNywgMC4wMDM2MDUiLCBcCi0gICAgICAgICAgIjAuMDAzNTc5LCAwLjAwMzU5MywgMC4wMDM2MDEsIDAuMDAzNjAyLCAwLjAwMzYwNSwgMC4wMDM2MDYsIDAuMDAzNjA1IiwgXAotICAgICAgICAgICIwLjAwMzYxOCwgMC4wMDM2MDIsIDAuMDAzNjAxLCAwLjAwMzYwNiwgMC4wMDM2MDcsIDAuMDAzNjA3LCAwLjAwMzYwOCIsIFwKLSAgICAgICAgICAiMC4wMDM2NjIsIDAuMDAzNjEzLCAwLjAwMzYwNywgMC4wMDM2MDcsIDAuMDAzNjEsIDAuMDAzNjA5LCAwLjAwMzYwOSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDQ0MSwgMC4wMDA0NiwgMC4wMDA0NjIsIDAuMDAwNDYzLCAwLjAwMDQ2MywgMC4wMDA0NjQsIDAuMDAwNDY0IiwgXAotICAgICAgICAgICIwLjAwMDM3MSwgMC4wMDA0NDEsIDAuMDAwNDUsIDAuMDAwNDU1LCAwLjAwMDQ1OCwgMC4wMDA0NTksIDAuMDAwNDYiLCBcCi0gICAgICAgICAgIjAuMDAwMzIyLCAwLjAwMDQyLCAwLjAwMDQzNiwgMC4wMDA0NDUsIDAuMDAwNDUxLCAwLjAwMDQ1MywgMC4wMDA0NTUiLCBcCi0gICAgICAgICAgIjAuMDAwMjk4LCAwLjAwMDQwNCwgMC4wMDA0MjUsIDAuMDAwNDM3LCAwLjAwMDQ0MywgMC4wMDA0NDgsIDAuMDAwNDUiLCBcCi0gICAgICAgICAgIjAuMDAwMjg2LCAwLjAwMDM5LCAwLjAwMDQxNCwgMC4wMDA0MjksIDAuMDAwNDM3LCAwLjAwMDQ0MiwgMC4wMDA0NDYiLCBcCi0gICAgICAgICAgIjAuMDAwMjgzLCAwLjAwMDM3MiwgMC4wMDA0LCAwLjAwMDQxOCwgMC4wMDA0MjgsIDAuMDAwNDM1LCAwLjAwMDQzOSIsIFwKLSAgICAgICAgICAiMC4wMDAyOTMsIDAuMDAwMzYyLCAwLjAwMDM5MSwgMC4wMDA0MSwgMC4wMDA0MjIsIDAuMDAwNDI5LCAwLjAwMDQzNSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjg2MiwgMC4wMDI4NzgsIDAuMDAyODc5LCAwLjAwMjg3OSwgMC4wMDI4OCwgMC4wMDI4OCwgMC4wMDI4ODEiLCBcCi0gICAgICAgICAgIjAuMDAyODEzLCAwLjAwMjg3MywgMC4wMDI4NzksIDAuMDAyODgzLCAwLjAwMjg4NSwgMC4wMDI4ODcsIDAuMDAyODg4IiwgXAotICAgICAgICAgICIwLjAwMjc4MSwgMC4wMDI4NTcsIDAuMDAyODcyLCAwLjAwMjg3OSwgMC4wMDI4ODIsIDAuMDAyODg0LCAwLjAwMjg4NSIsIFwKLSAgICAgICAgICAiMC4wMDI3OCwgMC4wMDI4NTMsIDAuMDAyODY4LCAwLjAwMjg3NywgMC4wMDI4OCwgMC4wMDI4ODIsIDAuMDAyODg3IiwgXAotICAgICAgICAgICIwLjAwMjc4MywgMC4wMDI4NDcsIDAuMDAyODYyLCAwLjAwMjg3MiwgMC4wMDI4NzgsIDAuMDAyODgsIDAuMDAyODgyIiwgXAotICAgICAgICAgICIwLjAwMjgxOCwgMC4wMDI4NDYsIDAuMDAyODU5LCAwLjAwMjg3LCAwLjAwMjg3NSwgMC4wMDI4NzgsIDAuMDAyODgiLCBcCi0gICAgICAgICAgIjAuMDAyODU3LCAwLjAwMjg1LCAwLjAwMjg2LCAwLjAwMjg3MSwgMC4wMDI4NzQsIDAuMDAyODc4LCAwLjAwMjg4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwNDQyLCAwLjAwMDQ2NSwgMC4wMDA0NjcsIDAuMDAwNDY4LCAwLjAwMDQ2OSwgMC4wMDA0NjksIDAuMDAwNDciLCBcCi0gICAgICAgICAgIjAuMDAwMzYxLCAwLjAwMDQ0MywgMC4wMDA0NTQsIDAuMDAwNDU5LCAwLjAwMDQ2MiwgMC4wMDA0NjQsIDAuMDAwNDY1IiwgXAotICAgICAgICAgICIwLjAwMDMzMSwgMC4wMDA0MjUsIDAuMDAwNDQyLCAwLjAwMDQ1MSwgMC4wMDA0NTYsIDAuMDAwNDU5LCAwLjAwMDQ2MSIsIFwKLSAgICAgICAgICAiMC4wMDAzMTgsIDAuMDAwNDA4LCAwLjAwMDQyOSwgMC4wMDA0NDIsIDAuMDAwNDQ5LCAwLjAwMDQ1MywgMC4wMDA0NTYiLCBcCi0gICAgICAgICAgIjAuMDAwMzI5LCAwLjAwMDM5OCwgMC4wMDA0MjEsIDAuMDAwNDM2LCAwLjAwMDQ0NCwgMC4wMDA0NDksIDAuMDAwNDUyIiwgXAotICAgICAgICAgICIwLjAwMDM3LCAwLjAwMDM5MiwgMC4wMDA0MTEsIDAuMDAwNDI5LCAwLjAwMDQzOCwgMC4wMDA0NDQsIDAuMDAwNDQ4IiwgXAotICAgICAgICAgICIwLjAwMDQxNiwgMC4wMDAzOTMsIDAuMDAwNDEyLCAwLjAwMDQyNiwgMC4wMDA0MzUsIDAuMDAwNDQxLCAwLjAwMDQ0NiIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IE5BTkQyWDggKgotICogLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoTkFORDJYOCkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjU4NTk2NDsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDA2MzcwNzc7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDA2MzcwNzc7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDA2MzUzNjg7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzMjY0LCAwLjAwMzI2MSwgMC4wMDMyNTksIDAuMDAzMjU5LCAwLjAwMzI1OSwgMC4wMDMyNTgsIDAuMDAzMjU4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzMzU1LCAwLjAwMzI4MSwgMC4wMDMyNzcsIDAuMDAzMjcyLCAwLjAwMzI3MSwgMC4wMDMyNzEsIDAuMDAzMjcxIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDY0NDg1MTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDY0NDMwNzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDY0NDg1MTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDE5MjcsIDAuMDAxOTI1LCAwLjAwMTkyMSwgMC4wMDE5MjEsIDAuMDAxOTIxLCAwLjAwMTkyLCAwLjAwMTkyMSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzY5OSwgMC4wMDM3MDIsIDAuMDAzNzAyLCAwLjAwMzcwMSwgMC4wMDM3MDYsIDAuMDAzNzA1LCAwLjAwMzcwNiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAxLjEyNTE4OwotICAgIGZ1bmN0aW9uIDogIighKEEgQikpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxNDE2LCAwLjA1MTI1OCwgMC4wODgxNTQsIDAuMTE0NTE0LCAwLjE1NjYyMSwgMC4xOTMzOTIsIDAuMjQ2MTc4IiwgXAotICAgICAgICAgICIwLjAyNDE0LCAwLjA2MTE1OCwgMC4wOTgwODksIDAuMTI0NDA0LCAwLjE2NjU0NCwgMC4yMDM0NjEsIDAuMjU1OTcyIiwgXAotICAgICAgICAgICIwLjAzMzk4LCAwLjA3MzgzNywgMC4xMTA0NzQsIDAuMTM2ODEsIDAuMTc4OTg4LCAwLjIxNTg2LCAwLjI2ODUxNiIsIFwKLSAgICAgICAgICAiMC4wNDE1OTUsIDAuMDg2NzQyLCAwLjEyMzU1LCAwLjE0OTg3NiwgMC4xOTE5NywgMC4yMjg0MDQsIDAuMjgxNDIzIiwgXAotICAgICAgICAgICIwLjA0Nzk2OCwgMC4wOTkyMjcsIDAuMTM1OTY3LCAwLjE2MTc4NSwgMC4yMDM4OTIsIDAuMjQxMDQ1LCAwLjI5MzQ4OSIsIFwKLSAgICAgICAgICAiMC4wNTY1NjUsIDAuMTE3NzgsIDAuMTU2NDI1LCAwLjE4MjYxMSwgMC4yMjQsIDAuMjYwODEsIDAuMzEzNDgxIiwgXAotICAgICAgICAgICIwLjA2MjczNiwgMC4xMzE4NzUsIDAuMTc0MzE0LCAwLjIwMDQ5MywgMC4yNDI0NiwgMC4yNzgzOTQsIDAuMzMwOTY1Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDIwNzk4LCAwLjA5NjczOSwgMC4xNzI1MzksIDAuMjI2NzU5LCAwLjMxMzQyOSwgMC4zODkxNzgsIDAuNDk3NjUxIiwgXAotICAgICAgICAgICIwLjAyNTAxMSwgMC4wOTY4NjksIDAuMTcyNTY3LCAwLjIyNjc2OCwgMC4zMTMzNjYsIDAuMzg5Mjg5LCAwLjQ5NzUyMSIsIFwKLSAgICAgICAgICAiMC4wMzQyNDgsIDAuMTAwNjUsIDAuMTczNTYyLCAwLjIyNjgzOSwgMC4zMTM0MjgsIDAuMzg5MywgMC40OTc2MDEiLCBcCi0gICAgICAgICAgIjAuMDQyMzUsIDAuMTA2Njc2LCAwLjE3Njk4OSwgMC4yMjg5MiwgMC4zMTM3OSwgMC4zODkzMTMsIDAuNDk3NTA2IiwgXAotICAgICAgICAgICIwLjA0OTgxOCwgMC4xMTQ0MzQsIDAuMTgyNDMzLCAwLjIzMzM3NSwgMC4zMTYzMzIsIDAuMzkwMzQyLCAwLjQ5NzYyMiIsIFwKLSAgICAgICAgICAiMC4wNjA0ODYsIDAuMTI4MTgyLCAwLjE5MjkzNiwgMC4yNDE4OTEsIDAuMzIzMDQ1LCAwLjM5NTI5MywgMC41MDAxNzIiLCBcCi0gICAgICAgICAgIjAuMDY5NTcsIDAuMTQxMjA0LCAwLjIwMzYwNCwgMC4yNTEwNzMsIDAuMzMwMDQ0LCAwLjQwMTU0NywgMC41MDQ3NzUiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjQyMjUsIDAuMDkzNzYyLCAwLjE2MzIwOCwgMC4yMTI1OTIsIDAuMjkxOTg3LCAwLjM2MTEyOSwgMC40NjAyMjgiLCBcCi0gICAgICAgICAgIjAuMDMyODQ3LCAwLjEwMjczLCAwLjE3MjE1MiwgMC4yMjE2NDMsIDAuMzAwODYsIDAuMzcwMDUsIDAuNDY5MDY0IiwgXAotICAgICAgICAgICIwLjA0MzE1OSwgMC4xMTM2MSwgMC4xODMwODUsIDAuMjMyNjM5LCAwLjMxMTk2NywgMC4zODEzMjMsIDAuNDgwMTU4IiwgXAotICAgICAgICAgICIwLjA1MTgzNiwgMC4xMjQ1MDQsIDAuMTk0MDIsIDAuMjQzNzQ4LCAwLjMyMzA0OCwgMC4zOTIyOTIsIDAuNDkxNDk4IiwgXAotICAgICAgICAgICIwLjA1OTE4MSwgMC4xMzU1NDQsIDAuMjA1MDY4LCAwLjI1NDU3NCwgMC4zMzM5OSwgMC40MDMzMDYsIDAuNTAyMzYyIiwgXAotICAgICAgICAgICIwLjA2OTY4OCwgMC4xNTI5NDEsIDAuMjIyNTI2LCAwLjI3MjQ2NCwgMC4zNTE2MjksIDAuNDIwODAzLCAwLjUyMDEwOSIsIFwKLSAgICAgICAgICAiMC4wNzcxNjQsIDAuMTY4MDU1LCAwLjIzNzY3OCwgMC4yODcyOTYsIDAuMzY3MzU3LCAwLjQzNjYyNiwgMC41MzUyNiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzNDk0OSwgMC4xNzI0MiwgMC4zMDkxODMsIDAuNDA5NjMzLCAwLjU2Mzg3LCAwLjcwMDg1MiwgMC44OTY3OTQiLCBcCi0gICAgICAgICAgIjAuMDM1OTc3LCAwLjE3MTg3LCAwLjMwOTA4OCwgMC40MDkzMTMsIDAuNTY2ODM3LCAwLjcwMjM2LCAwLjg5OTE1NSIsIFwKLSAgICAgICAgICAiMC4wNDA3MDYsIDAuMTcyODYzLCAwLjMxMDY4MSwgMC40MDkzMjYsIDAuNTYzNzc1LCAwLjcwMDgyMiwgMC45MDE0MDkiLCBcCi0gICAgICAgICAgIjAuMDQ3MjM2LCAwLjE3NDk1OSwgMC4zMTAxMjIsIDAuNDA3MDA2LCAwLjU2Mzc2LCAwLjcwMTQxMywgMC44OTY1ODUiLCBcCi0gICAgICAgICAgIjAuMDUzNzM1LCAwLjE3ODE1OCwgMC4zMTE2NzEsIDAuNDA4NDk4LCAwLjU2NjczNCwgMC43MDI0ODksIDAuOTAxNzUiLCBcCi0gICAgICAgICAgIjAuMDYzNjQxLCAwLjE4NTU0NSwgMC4zMTQ5OTgsIDAuNDExNTU4LCAwLjU2NDYzNSwgMC43MDA5MjIsIDAuODk5MDczIiwgXAotICAgICAgICAgICIwLjA3MTk3OCwgMC4xOTMyMDgsIDAuMzIwODM3LCAwLjQxNDc5MiwgMC41NjY5MDEsIDAuNzAzNzM1LCAwLjkwMTg0MyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMjgyLCAwLjA0OTg1MywgMC4wODY3ODgsIDAuMTEzMTU3LCAwLjE1NTQxMSwgMC4xOTIzMTMsIDAuMjQ1MTQ5IiwgXAotICAgICAgICAgICIwLjAyMjYyNSwgMC4wNTk5MjUsIDAuMDk2OTA5LCAwLjEyMzMwNywgMC4xNjU1MTYsIDAuMjAyNTY5LCAwLjI1NTE1OCIsIFwKLSAgICAgICAgICAiMC4wMzE2MjcsIDAuMDcyNDcyLCAwLjEwOTE5MywgMC4xMzU2MDIsIDAuMTc3ODQ5LCAwLjIxNDcyOCwgMC4yNjcxOTIiLCBcCi0gICAgICAgICAgIjAuMDM4NTg2LCAwLjA4NTA3NCwgMC4xMjE1NzQsIDAuMTQ3OTQzLCAwLjE5MDIyMywgMC4yMjcyMjYsIDAuMjc5OTc0IiwgXAotICAgICAgICAgICIwLjA0NDM2NCwgMC4wOTc5MTMsIDAuMTM0OTA5LCAwLjE2MTIyMSwgMC4yMDMzODQsIDAuMjQwMzE2LCAwLjI5MjU2OSIsIFwKLSAgICAgICAgICAiMC4wNTE2MTgsIDAuMTE2MDczLCAwLjE1NTAwNSwgMC4xODEyNjMsIDAuMjIyNzY2LCAwLjI1OTY3LCAwLjMxMjQzMSIsIFwKLSAgICAgICAgICAiMC4wNTczMywgMC4xMjk5MjYsIDAuMTczMTE3LCAwLjE5OTMzMiwgMC4yNDEzNTgsIDAuMjc4MjMzLCAwLjMzMDE0NiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxOTA2LCAwLjA5NTA3MywgMC4xNzE0MzEsIDAuMjI1NDc4LCAwLjMxMjQ2NywgMC4zODkwODIsIDAuNDk3MjM1IiwgXAotICAgICAgICAgICIwLjAyMzc1NiwgMC4wOTUzMDIsIDAuMTcxMTg2LCAwLjIyNTY0NywgMC4zMTI0NjIsIDAuMzg4Njg1LCAwLjQ5NzEwNSIsIFwKLSAgICAgICAgICAiMC4wMzMzNiwgMC4wOTkzMDgsIDAuMTcyNTIxLCAwLjIyNTczMSwgMC4zMTIzOTYsIDAuMzg4NDUzLCAwLjQ5NzE0OCIsIFwKLSAgICAgICAgICAiMC4wNDE1NjksIDAuMTA1Njc2LCAwLjE3NjM0OSwgMC4yMjgzNDEsIDAuMzEzMDI2LCAwLjM4ODc4LCAwLjQ5NzE5NyIsIFwKLSAgICAgICAgICAiMC4wNDkxMTYsIDAuMTEzMDcxLCAwLjE4MTAyNCwgMC4yMzIxOTcsIDAuMzE1Nzg5LCAwLjM5MDI3NSwgMC40OTgyNjciLCBcCi0gICAgICAgICAgIjAuMDYwMTY4LCAwLjEyNzI5NywgMC4xOTE4NzEsIDAuMjQwNzkxLCAwLjMyMjU3MiwgMC4zOTUyNjYsIDAuNTAwMTEyIiwgXAotICAgICAgICAgICIwLjA2ODU2NywgMC4xNDAxMDMsIDAuMjAyNDY5LCAwLjI0OTkyNCwgMC4zMjkxNzcsIDAuNDAxMDIxLCAwLjUwNTI4NSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyMTc1NywgMC4wOTE0MSwgMC4xNjA3MTUsIDAuMjEwMjM4LCAwLjI4OTQxOCwgMC4zNTg3MDEsIDAuNDU3OTM1IiwgXAotICAgICAgICAgICIwLjAzMDcwNSwgMC4xMDA1NCwgMC4xNjk5MjIsIDAuMjE5NTIsIDAuMjk4NjgzLCAwLjM2ODA5NiwgMC40NjY5MSIsIFwKLSAgICAgICAgICAiMC4wNDE4NDUsIDAuMTExOTYzLCAwLjE4MTQ0MSwgMC4yMzEwNDUsIDAuMzEwMjE1LCAwLjM3OTUwMiwgMC40Nzg0ODYiLCBcCi0gICAgICAgICAgIjAuMDUwNjE3LCAwLjEyMzUzMSwgMC4xOTI5NDUsIDAuMjQyNjcyLCAwLjMyMTczNCwgMC4zOTEwNzgsIDAuNDkwMDc1IiwgXAotICAgICAgICAgICIwLjA1ODI2LCAwLjEzNTEzMSwgMC4yMDQzODEsIDAuMjUzOTUxLCAwLjMzMzI2MywgMC40MDI2NDcsIDAuNTAxNTA3IiwgXAotICAgICAgICAgICIwLjA2NzcwOSwgMC4xNTQ4MzgsIDAuMjIzNjI1LCAwLjI3MzI0MSwgMC4zNTIzNjIsIDAuNDIxMTIsIDAuNTIwNzA0IiwgXAotICAgICAgICAgICIwLjA3NTk1MywgMC4xNzEzLCAwLjIzOTc5MywgMC4yODkwNDQsIDAuMzY4MzE3LCAwLjQzNzY3OCwgMC41MzU2OTIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzQ5MzYsIDAuMTcyMDA0LCAwLjMwOTA3NywgMC40MDY5NTIsIDAuNTYzNzg1LCAwLjcwMDg3NCwgMC44OTY4MjgiLCBcCi0gICAgICAgICAgIjAuMDM3Mjc1LCAwLjE3MjA5NywgMC4zMDk4NDYsIDAuNDA3MDE2LCAwLjU2NzA0NiwgMC43MDA3OTIsIDAuODk5MTc5IiwgXAotICAgICAgICAgICIwLjA0NDk5OSwgMC4xNzMxNjEsIDAuMzA5ODg3LCAwLjQwOTA4NCwgMC41NjUyMjMsIDAuNzAyNzA1LCAwLjg5OTEzNiIsIFwKLSAgICAgICAgICAiMC4wNTQ0MTgsIDAuMTc2NjgzLCAwLjMwOTg1NSwgMC40MDY4ODcsIDAuNTY1MTc2LCAwLjcwMjc2LCAwLjg5ODg4IiwgXAotICAgICAgICAgICIwLjA2MjUzLCAwLjE4MTc0OSwgMC4zMTIyMDYsIDAuNDA5OTU5LCAwLjU2NjczLCAwLjcwMDg1MSwgMC45MDE1ODUiLCBcCi0gICAgICAgICAgIjAuMDc1NTM4LCAwLjE5MTYyNCwgMC4zMTg5MzgsIDAuNDEyOTYyLCAwLjU2NjMzNywgMC43MDQ3MjYsIDAuODk5MDU0IiwgXAotICAgICAgICAgICIwLjA4NDQ3OCwgMC4yMDI4NzEsIDAuMzI2ODQ3LCAwLjQxNzY1OSwgMC41Njk4NjksIDAuNzAyNDcyLCAwLjg5OTE4NyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE0MTA0LCAwLjAxNDE2MSwgMC4wMTQxNjgsIDAuMDE0MTc1LCAwLjAxNDE3NCwgMC4wMTQxNzUsIDAuMDE0MTczIiwgXAotICAgICAgICAgICIwLjAxMzgzOSwgMC4wMTQwMzgsIDAuMDE0MDc5LCAwLjAxNDA5MywgMC4wMTQxMDMsIDAuMDE0MTEsIDAuMDE0MTE2IiwgXAotICAgICAgICAgICIwLjAxMzgyMSwgMC4wMTM5OTEsIDAuMDE0MDM4LCAwLjAxNDA1NywgMC4wMTQwNzcsIDAuMDE0MDg3LCAwLjAxNDA5NiIsIFwKLSAgICAgICAgICAiMC4wMTM5MDEsIDAuMDEzOTgzLCAwLjAxNDAzMywgMC4wMTQwNTQsIDAuMDE0MDcyLCAwLjAxNDA2MywgMC4wMTQwOTEiLCBcCi0gICAgICAgICAgIjAuMDEzOTIsIDAuMDEzOTkxLCAwLjAxNDA0LCAwLjAxNDA0NiwgMC4wMTQwNzMsIDAuMDE0MDgsIDAuMDE0MDg4IiwgXAotICAgICAgICAgICIwLjAxNDEyOSwgMC4wMTQwNzIsIDAuMDE0MDc0LCAwLjAxNDA3NywgMC4wMTQwNywgMC4wMTQwOCwgMC4wMTQwODciLCBcCi0gICAgICAgICAgIjAuMDE0MzMzLCAwLjAxNDE2OSwgMC4wMTQxMjksIDAuMDE0MTI2LCAwLjAxNDExNSwgMC4wMTQwOTgsIDAuMDE0MTAzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDE2MzMsIDAuMDAxODA4LCAwLjAwMTgzMSwgMC4wMDE4MzksIDAuMDAxODQ1LCAwLjAwMTg0OCwgMC4wMDE4NTEiLCBcCi0gICAgICAgICAgIjAuMDAxMjAyLCAwLjAwMTYyNSwgMC4wMDE3MiwgMC4wMDE3NTEsIDAuMDAxNzgxLCAwLjAwMTc5NiwgMC4wMDE4MSIsIFwKLSAgICAgICAgICAiMC4wMDEwMzgsIDAuMDAxNDYxLCAwLjAwMTYwNCwgMC4wMDE2NTcsIDAuMDAxNzA3LCAwLjAwMTczNSwgMC4wMDE3NjEiLCBcCi0gICAgICAgICAgIjAuMDAwOTg3LCAwLjAwMTM1MSwgMC4wMDE1MTIsIDAuMDAxNTc4LCAwLjAwMTY0NCwgMC4wMDE2ODUsIDAuMDAxNzE3IiwgXAotICAgICAgICAgICIwLjAwMDk3OSwgMC4wMDEyNzgsIDAuMDAxNDQxLCAwLjAwMTUxMywgMC4wMDE1ODksIDAuMDAxNjMzLCAwLjAwMTY3NiIsIFwKLSAgICAgICAgICAiMC4wMDEwMzEsIDAuMDAxMjE4LCAwLjAwMTM2NiwgMC4wMDE0MzksIDAuMDAxNTIxLCAwLjAwMTU3MiwgMC4wMDE2MjMiLCBcCi0gICAgICAgICAgIjAuMDAxMTIzLCAwLjAwMTIwNiwgMC4wMDEzMjksIDAuMDAxMzk3LCAwLjAwMTQ3OSwgMC4wMDE1MzEsIDAuMDAxNTgzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTA4NzQsIDAuMDExMDMsIDAuMDExMDQ5LCAwLjAxMTA1MywgMC4wMTEwNiwgMC4wMTEwNjUsIDAuMDExMDY1IiwgXAotICAgICAgICAgICIwLjAxMDUzNywgMC4wMTA5MzIsIDAuMDExMDA2LCAwLjAxMTAzNiwgMC4wMTEwNTIsIDAuMDExMDY0LCAwLjAxMTA3MiIsIFwKLSAgICAgICAgICAiMC4wMTA0NTIsIDAuMDEwODIyLCAwLjAxMDkyNCwgMC4wMTA5NywgMC4wMTEwMDksIDAuMDExMDM0LCAwLjAxMTA0OSIsIFwKLSAgICAgICAgICAiMC4wMTA0NTUsIDAuMDEwNzkzLCAwLjAxMDkwMSwgMC4wMTA5MjcsIDAuMDEwOTg1LCAwLjAxMTAwMywgMC4wMTEwMzIiLCBcCi0gICAgICAgICAgIjAuMDEwNjU3LCAwLjAxMDc1OCwgMC4wMTA4NjgsIDAuMDEwOTI5LCAwLjAxMDk2MywgMC4wMTA5ODksIDAuMDExMDA4IiwgXAotICAgICAgICAgICIwLjAxMDc2OCwgMC4wMTA4MDgsIDAuMDEwODc4LCAwLjAxMDkxMywgMC4wMTA5MzUsIDAuMDEwOTYzLCAwLjAxMDk5MyIsIFwKLSAgICAgICAgICAiMC4wMTEwMjMsIDAuMDEwODM0LCAwLjAxMDg3MywgMC4wMTA4OTcsIDAuMDEwOTM4LCAwLjAxMDk2MywgMC4wMTA5OCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxNTgyLCAwLjAwMTc5OSwgMC4wMDE4MjcsIDAuMDAxODM2LCAwLjAwMTg0NCwgMC4wMDE4NDgsIDAuMDAxODUyIiwgXAotICAgICAgICAgICIwLjAwMTE1NiwgMC4wMDE2MDEsIDAuMDAxNzA2LCAwLjAwMTc0MiwgMC4wMDE3NzQsIDAuMDAxNzkxLCAwLjAwMTgwNiIsIFwKLSAgICAgICAgICAiMC4wMDEwNzIsIDAuMDAxNDI5LCAwLjAwMTU3OSwgMC4wMDE2MzcsIDAuMDAxNjkzLCAwLjAwMTcyMywgMC4wMDE3NTIiLCBcCi0gICAgICAgICAgIjAuMDAxMTksIDAuMDAxMzYxLCAwLjAwMTUxLCAwLjAwMTU3MiwgMC4wMDE2MzgsIDAuMDAxNjc2LCAwLjAwMTcxMiIsIFwKLSAgICAgICAgICAiMC4wMDEyNDIsIDAuMDAxMzgsIDAuMDAxNDk0LCAwLjAwMTU1MywgMC4wMDE2MTUsIDAuMDAxNjUzLCAwLjAwMTY5MiIsIFwKLSAgICAgICAgICAiMC4wMDE1ODMsIDAuMDAxMzczLCAwLjAwMTQzMiwgMC4wMDE0ODUsIDAuMDAxNTU1LCAwLjAwMTU5MiwgMC4wMDE2NCIsIFwKLSAgICAgICAgICAiMC4wMDE3NzIsIDAuMDAxNTY0LCAwLjAwMTUyOSwgMC4wMDE1NSwgMC4wMDE1OSwgMC4wMDE2MTksIDAuMDAxNjU2Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IE5BTkQzQlgxICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChOQU5EM0JYMSkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjEzNjY4MzsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQU4pICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYyMjAzMjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MjE5MDM7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjIyMDMyOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDQ1LCAwLjAwMDQyNCwgMC4wMDA0MjEsIDAuMDAwNDI5LCAwLjAwMDQ0LCAwLjAwMDQ2NiwgMC4wMDA0OTEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDE0NjcsIDAuMDAxNDQ4LCAwLjAwMTQ0NSwgMC4wMDE0NTIsIDAuMDAxNDY1LCAwLjAwMTQ5MywgMC4wMDE1MTQiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDkwMDM3NjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA5MDAzNzY7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwODk4NzI1OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDQwOSwgMC4wMDA0MDksIDAuMDAwNDA5LCAwLjAwMDQwOSwgMC4wMDA0MDksIDAuMDAwNDA5LCAwLjAwMDQwOSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDQzLCAwLjAwMDQxMiwgMC4wMDA0MTEsIDAuMDAwNDExLCAwLjAwMDQxLCAwLjAwMDQxLCAwLjAwMDQxIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihDKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA5MTE0MDU7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwOTEwNjE2OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDkxMTQwNTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyNTQsIDAuMDAwMjU0LCAwLjAwMDI1NCwgMC4wMDAyNTQsIDAuMDAwMjU0LCAwLjAwMDI1NCwgMC4wMDAyNTQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA0NjQsIDAuMDAwNDY1LCAwLjAwMDQ2NCwgMC4wMDA0NjUsIDAuMDAwNDY1LCAwLjAwMDQ2NSwgMC4wMDA0NjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4wOTU5MzEzOwotICAgIGZ1bmN0aW9uIDogIighKCgoIUFOKSBCKSBDKSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkFOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjkyMywgMC4wOTM5MDIsIDAuMjMzMjQxLCAwLjM1NjEwMiwgMC41MTk4MzcsIDAuODQ3MTAxLCAxLjA1MTY4IiwgXAotICAgICAgICAgICIwLjA3OTM3MSwgMC4xMDQwNDUsIDAuMjQzMzg2LCAwLjM2NjI0NCwgMC41MzAxNzIsIDAuODU3ODMyLCAxLjA2MTg0IiwgXAotICAgICAgICAgICIwLjA5MDcyMiwgMC4xMTUzOSwgMC4yNTQ3MDUsIDAuMzc3NTUyLCAwLjU0MTQzMSwgMC44NjkyNDYsIDEuMDczNDUiLCBcCi0gICAgICAgICAgIjAuMTAwMjUsIDAuMTI0OTE0LCAwLjI2NDIzNiwgMC4zODcxNjEsIDAuNTUwNzY4LCAwLjg3ODU5OSwgMS4wODM0NiIsIFwKLSAgICAgICAgICAiMC4xMDgyNTksIDAuMTMyOTUsIDAuMjcyMzEzLCAwLjM5NTE0MywgMC41NTg4ODcsIDAuODg2MTUzLCAxLjA5MTIxIiwgXAotICAgICAgICAgICIwLjExOTEyMiwgMC4xNDM2NDMsIDAuMjgyODc3LCAwLjQwNTc2NiwgMC41Njk0OTksIDAuODk2NzA4LCAxLjEwMTQ1IiwgXAotICAgICAgICAgICIwLjEyNzMyOSwgMC4xNTIxOCwgMC4yOTE2OTQsIDAuNDEzOTcyLCAwLjU3NzgwMiwgMC45MDUyNDIsIDEuMTEwMjYiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTAwMDM1LCAwLjE1MDM4NiwgMC40MzY5MzgsIDAuNjg5NTk4LCAxLjAyNjMsIDEuNzAwNDEsIDIuMTIyNSIsIFwKLSAgICAgICAgICAiMC4xMDAwMzQsIDAuMTUwMzc4LCAwLjQzNjY1NiwgMC42ODk4MiwgMS4wMjY4LCAxLjcwMDk5LCAyLjEyMTkxIiwgXAotICAgICAgICAgICIwLjEwMDE4MywgMC4xNTA0NjEsIDAuNDM2OTA5LCAwLjY4OTM4MiwgMS4wMjY2OSwgMS43MDEwNSwgMi4xMjI0MyIsIFwKLSAgICAgICAgICAiMC4xMDA0OTksIDAuMTUwNjE5LCAwLjQzNjY2OCwgMC42ODk1MjYsIDEuMDI2MzcsIDEuNzAwODcsIDIuMTIyNTIiLCBcCi0gICAgICAgICAgIjAuMTAwODI1LCAwLjE1MDgyOSwgMC40MzY4MTMsIDAuNjg5NTcyLCAxLjAyNjcsIDEuNzAwNDYsIDIuMTIyNDEiLCBcCi0gICAgICAgICAgIjAuMTAxNTg0LCAwLjE1MTIwMiwgMC40MzY4MTcsIDAuNjg5NTExLCAxLjAyNjQsIDEuNzAwNjUsIDIuMTIyMTgiLCBcCi0gICAgICAgICAgIjAuMTAyNDk3LCAwLjE1MTU0NCwgMC40MzcwMjEsIDAuNjg5NTY1LCAxLjAyNjM5LCAxLjcwMDcyLCAyLjEyMjA3Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE1Mjc3NywgMC4yMTkyOTEsIDAuNTk2MTc3LCAwLjkyODYwMiwgMS4zNzI1NSwgMi4yNTkwNSwgMi44MTIxMSIsIFwKLSAgICAgICAgICAiMC4xNjI1MDksIDAuMjI5MTQxLCAwLjYwNjAyNiwgMC45Mzg0NzMsIDEuMzgyNDIsIDIuMjY4ODQsIDIuODIxODQiLCBcCi0gICAgICAgICAgIjAuMTcyOTAxLCAwLjIzOTUzNSwgMC42MTYyMzUsIDAuOTQ5Mzk5LCAxLjM5MTg4LCAyLjI3ODQ5LCAyLjgzMjEzIiwgXAotICAgICAgICAgICIwLjE4MTE5NSwgMC4yNDc3NzMsIDAuNjI0NjE2LCAwLjk1NzAzLCAxLjQwMDUsIDIuMjg3MjksIDIuODQwNjEiLCBcCi0gICAgICAgICAgIjAuMTg3OTU4LCAwLjI1NDU2NiwgMC42MzEzOSwgMC45NjM2OTgsIDEuNDA3MjcsIDIuMjk0NTksIDIuODQ3NjQiLCBcCi0gICAgICAgICAgIjAuMTk3MjEzLCAwLjI2MzgxMiwgMC42NDA2NTQsIDAuOTczMzA1LCAxLjQxNjU5LCAyLjMwMjg2LCAyLjg1NjQiLCBcCi0gICAgICAgICAgIjAuMjAzOTg4LCAwLjI3MDU1MiwgMC42NDc4LCAwLjk4MDE3NCwgMS40MjQxNCwgMi4zMTA4NywgMi44NjMxNSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yNDg1MjEsIDAuMzc4MzEsIDEuMTE2MTYsIDEuNzY2OTcsIDIuNjI2NCwgNC4zNTYzMSwgNS40MzY3NCIsIFwKLSAgICAgICAgICAiMC4yNDg0ODksIDAuMzgwMzU0LCAxLjExNjIxLCAxLjc2NjkzLCAyLjYyNjIsIDQuMzU1OTksIDUuNDM3MTkiLCBcCi0gICAgICAgICAgIjAuMjQ4NTE3LCAwLjM4MDM1NiwgMS4xMTU2MiwgMS43NjExMSwgMi42MzM2MywgNC4zNjk1NiwgNS40MzU2NyIsIFwKLSAgICAgICAgICAiMC4yNDc4NjMsIDAuMzc4NjIyLCAxLjExNTYyLCAxLjc2NjExLCAyLjYzNDEyLCA0LjM3MDI0LCA1LjQ0NjgzIiwgXAotICAgICAgICAgICIwLjI0ODQxMywgMC4zNzc4ODMsIDEuMTE1NzgsIDEuNzY2MTYsIDIuNjMzODcsIDQuMzU2NiwgNS40NDcwMSIsIFwKLSAgICAgICAgICAiMC4yNDgwNTYsIDAuMzc4NTM2LCAxLjExMzU4LCAxLjc2MTY5LCAyLjYyODIyLCA0LjM1NjMzLCA1LjQ0MDY2IiwgXAotICAgICAgICAgICIwLjI0Nzg2NCwgMC4zNzc2MiwgMS4xMjEyNiwgMS43NjE2NiwgMi42MjY0LCA0LjM1NjM4LCA1LjQ0MDgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDUxNTYsIDAuMDc2MTM0LCAwLjIxNTMxMywgMC4zMzgyMTUsIDAuNTAxODIsIDAuODI5MDI5LCAxLjAzNDM1IiwgXAotICAgICAgICAgICIwLjA2MTM4OSwgMC4wODYwMTQsIDAuMjI1MjM0LCAwLjM0Nzk4OCwgMC41MTE2NDcsIDAuODM5NTI1LCAxLjA0MzkxIiwgXAotICAgICAgICAgICIwLjA3Mzc2OCwgMC4wOTgzNTgsIDAuMjM3NjQyLCAwLjM2MDQwNywgMC41MjMxNTcsIDAuODUwMzU4LCAxLjA1NTI5IiwgXAotICAgICAgICAgICIwLjA4NjYzNSwgMC4xMTA3OTUsIDAuMjUwMDg3LCAwLjM3Mjc2NCwgMC41MzY0NjQsIDAuODYyMTc1LCAxLjA2NzE0IiwgXAotICAgICAgICAgICIwLjA5OTMxNCwgMC4xMjM3NzIsIDAuMjYyNTg4LCAwLjM4NTI0MSwgMC41NDg5MzUsIDAuODc1OTkzLCAxLjA3ODY1IiwgXAotICAgICAgICAgICIwLjExNzgyLCAwLjE0NDE3MywgMC4yODI0MDgsIDAuNDA1NDgxLCAwLjU2ODgwNCwgMC44OTYzMjEsIDEuMDk4MzIiLCBcCi0gICAgICAgICAgIjAuMTMxODE4LCAwLjE2MTM4NywgMC4yOTk5ODMsIDAuNDIzMTA5LCAwLjU4NjQ3MiwgMC45MTM3OTcsIDEuMTE4MjEiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk3NTA2LCAwLjE0ODAwOCwgMC40MzQ2MzMsIDAuNjg3NDA5LCAxLjAyNDI2LCAxLjY5NzcyLCAyLjEyMDI2IiwgXAotICAgICAgICAgICIwLjA5NzY4LCAwLjE0ODExNSwgMC40MzQ0OTgsIDAuNjg3NTAzLCAxLjAyNDIxLCAxLjY5OTA3LCAyLjExOTM2IiwgXAotICAgICAgICAgICIwLjEwMTU4MywgMC4xNDk3MTMsIDAuNDM0NTY4LCAwLjY4NzM5NiwgMS4wMjQ2NSwgMS42OTg0MSwgMi4xMTk3OSIsIFwKLSAgICAgICAgICAiMC4xMDc3MzcsIDAuMTU0Mzg5LCAwLjQzNDUzNCwgMC42ODczMDYsIDEuMDI0MjQsIDEuNjk4NCwgMi4xMTkyNCIsIFwKLSAgICAgICAgICAiMC4xMTUyOTgsIDAuMTYwMDk3LCAwLjQzNTA5NiwgMC42ODc0MTcsIDEuMDI0MTcsIDEuNjk4ODksIDIuMTE5MDQiLCBcCi0gICAgICAgICAgIjAuMTI5MTA3LCAwLjE3MTU2NywgMC40Mzg5ODcsIDAuNjg3NTk4LCAxLjAyNDI5LCAxLjY5ODUyLCAyLjExOTUiLCBcCi0gICAgICAgICAgIjAuMTQyMjE5LCAwLjE4MzA4NiwgMC40NDQ0ODQsIDAuNjg5MTUsIDEuMDI0MjQsIDEuNjk4NTMsIDIuMTE5NjMiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTM1MTg4LCAwLjIwMTY2NywgMC41Nzg0MzIsIDAuOTExMjQsIDEuMzUzNjgsIDIuMjQwMzUsIDIuNzkzODUiLCBcCi0gICAgICAgICAgIjAuMTQzNjI5LCAwLjIxMDIzOCwgMC41ODY5NzcsIDAuOTE5NDE3LCAxLjM2MzIyLCAyLjI1MDE4LCAyLjgwMzA2IiwgXAotICAgICAgICAgICIwLjE1NDExMiwgMC4yMjA3ODYsIDAuNTk3NzIzLCAwLjkzMDM0OCwgMS4zNzQwNCwgMi4yNjExLCAyLjgxNDA2IiwgXAotICAgICAgICAgICIwLjE2NDYyNywgMC4yMzEzNDEsIDAuNjA4NDg0LCAwLjk0MDk2MiwgMS4zODQyLCAyLjI3MDczLCAyLjgyNDI3IiwgXAotICAgICAgICAgICIwLjE3NTI4LCAwLjI0MTk0MiwgMC42MTkyMSwgMC45NTE2NDYsIDEuMzk0ODUsIDIuMjgxNDcsIDIuODM1NDciLCBcCi0gICAgICAgICAgIjAuMTkyNDE4LCAwLjI1ODg3LCAwLjYzNjQxNiwgMC45NjkyMTQsIDEuNDEyMTIsIDIuMjk4NjgsIDIuODUyOTUiLCBcCi0gICAgICAgICAgIjAuMjA3MTg3LCAwLjI3MzgxMiwgMC42NTE1NzgsIDAuOTg0MDU1LCAxLjQyNzEzLCAyLjMxMzgyLCAyLjg2NzM4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI0OTY5MSwgMC4zNzg2OCwgMS4xMTYsIDEuNzYxNTYsIDIuNjMzMjksIDQuMzY5ODEsIDUuNDQyNTQiLCBcCi0gICAgICAgICAgIjAuMjQ4NTI5LCAwLjM3ODU1MSwgMS4xMTU3NiwgMS43NjYwNCwgMi42MzUyNSwgNC4zNTQ4NSwgNS40MzY1OCIsIFwKLSAgICAgICAgICAiMC4yNDg0NjUsIDAuMzc4MzM4LCAxLjExNTYsIDEuNzY2MzksIDIuNjI2NDYsIDQuMzU2OTIsIDUuNDQ3MjciLCBcCi0gICAgICAgICAgIjAuMjQ5NDUyLCAwLjM3NzI5LCAxLjExNTY3LCAxLjc2NDk4LCAyLjYzMzQ4LCA0LjM2OTIxLCA1LjQ0MDkyIiwgXAotICAgICAgICAgICIwLjI1MTg2MiwgMC4zNzk0NDIsIDEuMTE1NjUsIDEuNzY2MDcsIDIuNjMxNjgsIDQuMzY5MzIsIDUuNDM1MDgiLCBcCi0gICAgICAgICAgIjAuMjU3MDk4LCAwLjM4MjUxNiwgMS4xMTU2NywgMS43NjY2NiwgMi42MzM0NCwgNC4zNTkyNCwgNS40MzU5MyIsIFwKLSAgICAgICAgICAiMC4yNjM2NDEsIDAuMzg2OTgsIDEuMTIxMTgsIDEuNzYyOTIsIDIuNjMzMywgNC4zNjg4LCA1LjQ0MTI2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1MDAzNiwgMC4wNzQ2MDYsIDAuMjEzNzY0LCAwLjMzNjU1OSwgMC41MDA0MywgMC44Mjc2ODcsIDEuMDMyNTkiLCBcCi0gICAgICAgICAgIjAuMDU5OTA0LCAwLjA4NDUsIDAuMjIzNjY0LCAwLjM0NjQyNCwgMC41MTAxMjQsIDAuODM3ODk4LCAxLjA0MTg4IiwgXAotICAgICAgICAgICIwLjA3MjI5NywgMC4wOTY4NzQsIDAuMjM2MDk1LCAwLjM1ODkzMSwgMC41MjE0MTYsIDAuODQ4ODU2LCAxLjA1MzgzIiwgXAotICAgICAgICAgICIwLjA4NTIwMywgMC4xMDkzNTIsIDAuMjQ4NTM3LCAwLjM3MTI2NCwgMC41MzQ5NTksIDAuODYwNjg5LCAxLjA2NjIyIiwgXAotICAgICAgICAgICIwLjA5Nzg2NCwgMC4xMjIzNDcsIDAuMjYxMTY5LCAwLjM4MzgxNiwgMC41NDc0NzEsIDAuODczMDcxLCAxLjA3NzYyIiwgXAotICAgICAgICAgICIwLjExNjIxOSwgMC4xNDI5MTcsIDAuMjgwOTg4LCAwLjQwNDIyMywgMC41Njc0MywgMC44OTI5ODQsIDEuMDk3NjgiLCBcCi0gICAgICAgICAgIjAuMTI5MzczLCAwLjE1OTc5OSwgMC4yOTg1NDYsIDAuNDIxNzQzLCAwLjU4NTA4OSwgMC45MTAzMDMsIDEuMTE0NyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTU4NzUsIDAuMTQ2NDU1LCAwLjQzMzEyLCAwLjY4NjE2OSwgMS4wMjI3MSwgMS42OTY5NSwgMi4xMTgyNiIsIFwKLSAgICAgICAgICAiMC4wOTYxOTksIDAuMTQ2NjIyLCAwLjQzMjY2NywgMC42ODYwNjEsIDEuMDI0MzIsIDEuNjk2ODEsIDIuMTE3ODUiLCBcCi0gICAgICAgICAgIjAuMTAwMTU5LCAwLjE0ODM4OSwgMC40MzI5MzEsIDAuNjg1NzMsIDEuMDIyNDUsIDEuNjk5NDksIDIuMTE4NCIsIFwKLSAgICAgICAgICAiMC4xMDYyODgsIDAuMTUyOTM1LCAwLjQzMzQ5OSwgMC42ODYwNTEsIDEuMDIyODQsIDEuNjk5OTIsIDIuMTE5MTUiLCBcCi0gICAgICAgICAgIjAuMTEzOTI2LCAwLjE1ODQ2MiwgMC40MzQyNTcsIDAuNjg2MTY1LCAxLjAyMjgsIDEuNjk3MDMsIDIuMTIxNTkiLCBcCi0gICAgICAgICAgIjAuMTI3ODMxLCAwLjE3MDIwNiwgMC40MzgwOTYsIDAuNjg1OTExLCAxLjAyMjU2LCAxLjY5OTU1LCAyLjEyMTU4IiwgXAotICAgICAgICAgICIwLjE0MTkzMSwgMC4xODE1NzMsIDAuNDQzNjcsIDAuNjg3NTg2LCAxLjAyNDE0LCAxLjY5NzczLCAyLjExNzgzIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEzMDkzMywgMC4xOTc0NjcsIDAuNTc0MjA1LCAwLjkwNjcyNSwgMS4zNTA2NywgMi4yMzU3LCAyLjc4OTgxIiwgXAotICAgICAgICAgICIwLjEzOTI5OCwgMC4yMDU5MTksIDAuNTgyNzI3LCAwLjkxNDk5NCwgMS4zNTg3NSwgMi4yNDUzNSwgMi43OTc5OSIsIFwKLSAgICAgICAgICAiMC4xNDk4OTQsIDAuMjE2Nzk5LCAwLjU5MzczMiwgMC45MjY0MjMsIDEuMzcwMjgsIDIuMjU3MDcsIDIuODEwMiIsIFwKLSAgICAgICAgICAiMC4xNjA5MTYsIDAuMjI3MjUsIDAuNjA1MTEzLCAwLjkzNzM1MywgMS4zODA5MiwgMi4yNjgwNSwgMi44MjA4NCIsIFwKLSAgICAgICAgICAiMC4xNzE4NjgsIDAuMjM4NDM3LCAwLjYxNTYyNCwgMC45NDc5OTcsIDEuMzkxMjIsIDIuMjc3ODIsIDIuODMxMzQiLCBcCi0gICAgICAgICAgIjAuMTg5NzQ3LCAwLjI1NjA4MiwgMC42MzMwMzcsIDAuOTY1ODM3LCAxLjQwODY4LCAyLjI5NTEyLCAyLjg0OTI0IiwgXAotICAgICAgICAgICIwLjIwNTM5MywgMC4yNzE2NjQsIDAuNjQ4NjI0LCAwLjk4MTEsIDEuNDI0MTYsIDIuMzExNDksIDIuODY0NjgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjQ5NDQ5LCAwLjM3Nzc1MSwgMS4xMTU5NywgMS43NjcwMiwgMi42MjY0MywgNC4zNTkzMiwgNS40Mzk5MSIsIFwKLSAgICAgICAgICAiMC4yNDg1MTcsIDAuMzc4NjQ1LCAxLjExNTg3LCAxLjc2NjI0LCAyLjYzNDgxLCA0LjM3MDUyLCA1LjQ0NjI1IiwgXAotICAgICAgICAgICIwLjI0ODQ1MSwgMC4zNzk4NzMsIDEuMTE1ODgsIDEuNzY2NDgsIDIuNjI2NDksIDQuMzU1OSwgNS40NDczNiIsIFwKLSAgICAgICAgICAiMC4yNDk2MTMsIDAuMzc3NjIsIDEuMTEzMDEsIDEuNzY2ODIsIDIuNjI2NDYsIDQuMzU1MzcsIDUuNDQ2OTMiLCBcCi0gICAgICAgICAgIjAuMjUzMjg1LCAwLjM3ODc4MiwgMS4xMTI3OCwgMS43NjYwNiwgMi42MzMzMiwgNC4zNjkzMiwgNS40NDA4IiwgXAotICAgICAgICAgICIwLjI2MTA2MSwgMC4zODQ2MDQsIDEuMTE0ODksIDEuNzY2OTYsIDIuNjMzMTIsIDQuMzY1NjMsIDUuNDM3OCIsIFwKLSAgICAgICAgICAiMC4yNjk3NTksIDAuMzkwNzAyLCAxLjExNjE3LCAxLjc2MTg1LCAyLjYzMTk1LCA0LjM3MDU5LCA1LjQzNTkzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQU4iOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjU2MiwgMC4wMDI1NjIsIDAuMDAyNTYyLCAwLjAwMjU2MiwgMC4wMDI1NjIsIDAuMDAyNTYyLCAwLjAwMjU2MSIsIFwKLSAgICAgICAgICAiMC4wMDI1MzIsIDAuMDAyNTMzLCAwLjAwMjUzNCwgMC4wMDI1MzQsIDAuMDAyNTM0LCAwLjAwMjUzMywgMC4wMDI1MzMiLCBcCi0gICAgICAgICAgIjAuMDAyNTM1LCAwLjAwMjUzNSwgMC4wMDI1MzcsIDAuMDAyNTM3LCAwLjAwMjUzNywgMC4wMDI1MzcsIDAuMDAyNTM3IiwgXAotICAgICAgICAgICIwLjAwMjUzNSwgMC4wMDI1MzgsIDAuMDAyNTQxLCAwLjAwMjU0MSwgMC4wMDI1NDEsIDAuMDAyNTQsIDAuMDAyNTQxIiwgXAotICAgICAgICAgICIwLjAwMjU0NywgMC4wMDI1NDksIDAuMDAyNTUyLCAwLjAwMjU1MywgMC4wMDI1NTMsIDAuMDAyNTUzLCAwLjAwMjU1MiIsIFwKLSAgICAgICAgICAiMC4wMDI1NzIsIDAuMDAyNTc0LCAwLjAwMjU3OCwgMC4wMDI1NzgsIDAuMDAyNTc4LCAwLjAwMjU3OCwgMC4wMDI1NzgiLCBcCi0gICAgICAgICAgIjAuMDAyNTk1LCAwLjAwMjU5MiwgMC4wMDI2LCAwLjAwMjU5NSwgMC4wMDI1OTUsIDAuMDAyNTk1LCAwLjAwMjYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI0NTQsIDAuMDAyNDU3LCAwLjAwMjQ2LCAwLjAwMjQ2MSwgMC4wMDI0NjEsIDAuMDAyNDYxLCAwLjAwMjQ2MSIsIFwKLSAgICAgICAgICAiMC4wMDI0MzEsIDAuMDAyNDM1LCAwLjAwMjQ0MSwgMC4wMDI0NDIsIDAuMDAyNDQyLCAwLjAwMjQ0MywgMC4wMDI0NDMiLCBcCi0gICAgICAgICAgIjAuMDAyNDI3LCAwLjAwMjQzNCwgMC4wMDI0NDIsIDAuMDAyNDQ0LCAwLjAwMjQ0NSwgMC4wMDI0NDYsIDAuMDAyNDQ2IiwgXAotICAgICAgICAgICIwLjAwMjQyNSwgMC4wMDI0MzMsIDAuMDAyNDQ0LCAwLjAwMjQ0NywgMC4wMDI0NDgsIDAuMDAyNDQ5LCAwLjAwMjQ0OSIsIFwKLSAgICAgICAgICAiMC4wMDI0MzMsIDAuMDAyNDQxLCAwLjAwMjQ1NSwgMC4wMDI0NTgsIDAuMDAyNDU5LCAwLjAwMjQ2MSwgMC4wMDI0NjEiLCBcCi0gICAgICAgICAgIjAuMDAyNDUxLCAwLjAwMjQ2LCAwLjAwMjQ3NCwgMC4wMDI0NzksIDAuMDAyNDc5LCAwLjAwMjQ4MywgMC4wMDI0ODMiLCBcCi0gICAgICAgICAgIjAuMDAyNDcxLCAwLjAwMjQ3OSwgMC4wMDI0OTcsIDAuMDAyNTAxLCAwLjAwMjUwMiwgMC4wMDI1MDYsIDAuMDAyNTA0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyMDYsIDAuMDAyMDYxLCAwLjAwMjA2MiwgMC4wMDIwNjIsIDAuMDAyMDYyLCAwLjAwMjA2MiwgMC4wMDIwNjIiLCBcCi0gICAgICAgICAgIjAuMDAyMDUxLCAwLjAwMjA1NSwgMC4wMDIwNiwgMC4wMDIwNjIsIDAuMDAyMDYxLCAwLjAwMjA2MSwgMC4wMDIwNjEiLCBcCi0gICAgICAgICAgIjAuMDAyMDQ0LCAwLjAwMjA1LCAwLjAwMjA1OCwgMC4wMDIwNiwgMC4wMDIwNiwgMC4wMDIwNiwgMC4wMDIwNiIsIFwKLSAgICAgICAgICAiMC4wMDIwNDQsIDAuMDAyMDQ4LCAwLjAwMjA1NywgMC4wMDIwNiwgMC4wMDIwNiwgMC4wMDIwNjEsIDAuMDAyMDYxIiwgXAotICAgICAgICAgICIwLjAwMjA0NSwgMC4wMDIwNSwgMC4wMDIwNTgsIDAuMDAyMDU5LCAwLjAwMjA2LCAwLjAwMjA2MSwgMC4wMDIwNjEiLCBcCi0gICAgICAgICAgIjAuMDAyMDUxLCAwLjAwMjA1MywgMC4wMDIwNTcsIDAuMDAyMDU5LCAwLjAwMjA2LCAwLjAwMjA2MSwgMC4wMDIwNjEiLCBcCi0gICAgICAgICAgIjAuMDAyMDYyLCAwLjAwMjA2LCAwLjAwMjA1OCwgMC4wMDIwNjEsIDAuMDAyMDYxLCAwLjAwMjA2MiwgMC4wMDIwNjIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDA1NTgsIDAuMDAwNTYsIDAuMDAwNTYzLCAwLjAwMDU2NCwgMC4wMDA1NjQsIDAuMDAwNTY0LCAwLjAwMDU2NCIsIFwKLSAgICAgICAgICAiMC4wMDA1MzYsIDAuMDAwNTQ0LCAwLjAwMDU1NywgMC4wMDA1NiwgMC4wMDA1NjEsIDAuMDAwNTYzLCAwLjAwMDU2NCIsIFwKLSAgICAgICAgICAiMC4wMDA1MTYsIDAuMDAwNTI5LCAwLjAwMDU1MSwgMC4wMDA1NTUsIDAuMDAwNTU4LCAwLjAwMDU2MiwgMC4wMDA1NjIiLCBcCi0gICAgICAgICAgIjAuMDAwNTAyLCAwLjAwMDUxOCwgMC4wMDA1NDUsIDAuMDAwNTUxLCAwLjAwMDU1NiwgMC4wMDA1NTksIDAuMDAwNTYiLCBcCi0gICAgICAgICAgIjAuMDAwNDk0LCAwLjAwMDUwOCwgMC4wMDA1MzksIDAuMDAwNTQ4LCAwLjAwMDU1MywgMC4wMDA1NTcsIDAuMDAwNTU5IiwgXAotICAgICAgICAgICIwLjAwMDQ4NSwgMC4wMDA0OTgsIDAuMDAwNTMxLCAwLjAwMDU0MiwgMC4wMDA1NDksIDAuMDAwNTU1LCAwLjAwMDU1NiIsIFwKLSAgICAgICAgICAiMC4wMDA0ODMsIDAuMDAwNDk0LCAwLjAwMDUyNywgMC4wMDA1MzgsIDAuMDAwNTQ2LCAwLjAwMDU1MywgMC4wMDA1NTUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDE2NjcsIDAuMDAxNjY5LCAwLjAwMTY3MSwgMC4wMDE2NzEsIDAuMDAxNjcxLCAwLjAwMTY3MiwgMC4wMDE2NzIiLCBcCi0gICAgICAgICAgIjAuMDAxNjYyLCAwLjAwMTY2OCwgMC4wMDE2NzcsIDAuMDAxNjc5LCAwLjAwMTY3OSwgMC4wMDE2OCwgMC4wMDE2ODEiLCBcCi0gICAgICAgICAgIjAuMDAxNjUyLCAwLjAwMTY2MSwgMC4wMDE2NzYsIDAuMDAxNjc5LCAwLjAwMTY4MSwgMC4wMDE2ODMsIDAuMDAxNjg0IiwgXAotICAgICAgICAgICIwLjAwMTY0NywgMC4wMDE2NTYsIDAuMDAxNjczLCAwLjAwMTY3OCwgMC4wMDE2NzksIDAuMDAxNjgzLCAwLjAwMTY4NCIsIFwKLSAgICAgICAgICAiMC4wMDE2NDQsIDAuMDAxNjU0LCAwLjAwMTY3MiwgMC4wMDE2NzYsIDAuMDAxNjc4LCAwLjAwMTY4MiwgMC4wMDE2ODMiLCBcCi0gICAgICAgICAgIjAuMDAxNjQ3LCAwLjAwMTY1NCwgMC4wMDE2NjcsIDAuMDAxNjc1LCAwLjAwMTY3OCwgMC4wMDE2ODEsIDAuMDAxNjgxIiwgXAotICAgICAgICAgICIwLjAwMTY1NSwgMC4wMDE2NTgsIDAuMDAxNjcsIDAuMDAxNjc1LCAwLjAwMTY3OCwgMC4wMDE2ODEsIDAuMDAxNjgyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwNTU2LCAwLjAwMDU1OSwgMC4wMDA1NjMsIDAuMDAwNTYzLCAwLjAwMDU2NCwgMC4wMDA1NjQsIDAuMDAwNTY0IiwgXAotICAgICAgICAgICIwLjAwMDUzMiwgMC4wMDA1NDIsIDAuMDAwNTU2LCAwLjAwMDU1OSwgMC4wMDA1NjEsIDAuMDAwNTYyLCAwLjAwMDU2MyIsIFwKLSAgICAgICAgICAiMC4wMDA1MTEsIDAuMDAwNTI1LCAwLjAwMDU0OSwgMC4wMDA1NTQsIDAuMDAwNTU4LCAwLjAwMDU2LCAwLjAwMDU2MSIsIFwKLSAgICAgICAgICAiMC4wMDA1MDMsIDAuMDAwNTE2LCAwLjAwMDU0NCwgMC4wMDA1NTEsIDAuMDAwNTU1LCAwLjAwMDU1OSwgMC4wMDA1NiIsIFwKLSAgICAgICAgICAiMC4wMDA1LCAwLjAwMDUxMSwgMC4wMDA1MzksIDAuMDAwNTQ4LCAwLjAwMDU1MywgMC4wMDA1NTcsIDAuMDAwNTU5IiwgXAotICAgICAgICAgICIwLjAwMDUwNSwgMC4wMDA1MTEsIDAuMDAwNTM1LCAwLjAwMDU0NCwgMC4wMDA1NSwgMC4wMDA1NTUsIDAuMDAwNTU3IiwgXAotICAgICAgICAgICIwLjAwMDUxNiwgMC4wMDA1MTYsIDAuMDAwNTM0LCAwLjAwMDU0MiwgMC4wMDA1NDgsIDAuMDAwNTU0LCAwLjAwMDU1NiIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IE5BTkQzWDggKgotICogLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoTkFORDNYOCkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjg3MjY2NTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDA2NjY0MjY7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDA2NjY0MjY7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDA2NjQzOTQ7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzMjY0LCAwLjAwMzI2MSwgMC4wMDMyNTksIDAuMDAzMjU4LCAwLjAwMzI1OCwgMC4wMDMyNTcsIDAuMDAzMjU3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzMjY3LCAwLjAwMzI2OSwgMC4wMDMyNzIsIDAuMDAzMjY3LCAwLjAwMzI2OSwgMC4wMDMyNywgMC4wMDMyNyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDA2ODcxNjc7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDA2ODcxNjc7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDA2ODU1NTM7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzMjY0LCAwLjAwMzI2MSwgMC4wMDMyNiwgMC4wMDMyNiwgMC4wMDMyNTgsIDAuMDAzMjU4LCAwLjAwMzI1MiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzI2NywgMC4wMDMyNzEsIDAuMDAzMjczLCAwLjAwMzI3MiwgMC4wMDMyNzIsIDAuMDAzMjczLCAwLjAwMzI3NCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQykgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDA2NjcwMTE7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDA2NjY0ODM7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDA2NjcwMTE7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyMTQxLCAwLjAwMjEzOCwgMC4wMDIxMzcsIDAuMDAyMTM1LCAwLjAwMjEzNiwgMC4wMDIxMzQsIDAuMDAyMTM0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzNjk5LCAwLjAwMzcwMywgMC4wMDM3MDIsIDAuMDAzNzA1LCAwLjAwMzcwNCwgMC4wMDM3MDMsIDAuMDAzNzAzIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuNzY5MDU5OwotICAgIGZ1bmN0aW9uIDogIighKChBIEIpIEMpKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTY0NzYsIDAuMDU0MDI4LCAwLjA5MTA3NSwgMC4xMTc1MTcsIDAuMTU5NzU4LCAwLjE5NjY1MywgMC4yNDk0NTYiLCBcCi0gICAgICAgICAgIjAuMDI2NTM4LCAwLjA2MzkyLCAwLjEwMDk4NywgMC4xMjc0MjIsIDAuMTY5NjU0LCAwLjIwNjYxOCwgMC4yNTkyODYiLCBcCi0gICAgICAgICAgIjAuMDM3NTQzLCAwLjA3NjYwMSwgMC4xMTM0MTksIDAuMTM5ODMyLCAwLjE4MjEyLCAwLjIxODk3MywgMC4yNzExMjMiLCBcCi0gICAgICAgICAgIjAuMDQ2MTE2LCAwLjA4OTQ5MywgMC4xMjY0NDMsIDAuMTUyODU0LCAwLjE5NTA4MywgMC4yMzE2MDMsIDAuMjg0NzExIiwgXAotICAgICAgICAgICIwLjA1MjkzNSwgMC4xMDE5NTksIDAuMTM4ODIyLCAwLjE2NDczOCwgMC4yMDY5MzYsIDAuMjQ0MTIyLCAwLjI5Njc1IiwgXAotICAgICAgICAgICIwLjA2MjQ5LCAwLjEyMTA1LCAwLjE1OTM0NCwgMC4xODU1MzMsIDAuMjI3MDcxLCAwLjI2Mzk1NiwgMC4zMTY3MjYiLCBcCi0gICAgICAgICAgIjAuMDcwMjg2LCAwLjEzNTQ1NiwgMC4xNzcyMDMsIDAuMjAzNTMsIDAuMjQ1NTE2LCAwLjI4MTU0NywgMC4zMzQyMzIiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjUzMywgMC4xMDE1MjQsIDAuMTc3NjUzLCAwLjIzMjE4LCAwLjMxOTA4OSwgMC4zOTUzODksIDAuNTA0MDQxIiwgXAotICAgICAgICAgICIwLjAyODcyMywgMC4xMDE1NjMsIDAuMTc3NjQzLCAwLjIzMjEzNSwgMC4zMTkwNzEsIDAuMzk1MjMsIDAuNTAzODMyIiwgXAotICAgICAgICAgICIwLjAzNzMxMiwgMC4xMDUwNTIsIDAuMTc4NDQyLCAwLjIzMjA2NywgMC4zMTkyLCAwLjM5NTEwOCwgMC41MDM4NzgiLCBcCi0gICAgICAgICAgIjAuMDQ2MTA3LCAwLjExMDgxMiwgMC4xODE3OTMsIDAuMjM0MDc4LCAwLjMxOTQxMiwgMC4zOTUzMDYsIDAuNTA0MDg0IiwgXAotICAgICAgICAgICIwLjA1NDcwOSwgMC4xMTg0MDEsIDAuMTg3MDY3LCAwLjIzODI4NSwgMC4zMjE5OTUsIDAuMzk2MTgyLCAwLjUwMzk1NSIsIFwKLSAgICAgICAgICAiMC4wNjY0NDEsIDAuMTMxNzI0LCAwLjE5NzM5NSwgMC4yNDY2OSwgMC4zMjgyNTEsIDAuNDAxMDk2LCAwLjUwNjQ3MiIsIFwKLSAgICAgICAgICAiMC4wNzQyOTYsIDAuMTQ0NjU0LCAwLjIwNzgxNCwgMC4yNTU4MzIsIDAuMzM1MjE1LCAwLjQwNzIyNSwgMC41MTA5NTQiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDAzMzYsIDAuMTQxMjQ2LCAwLjI0MTg0NSwgMC4zMTM3MDIsIDAuNDI4NTQ1LCAwLjUyOTMyOSwgMC42NzI4MDIiLCBcCi0gICAgICAgICAgIjAuMDQ4MjUyLCAwLjE0OTYwMiwgMC4yNTA0OTUsIDAuMzIyMjYxLCAwLjQzNzI5LCAwLjUzNzc0NCwgMC42ODE3OTMiLCBcCi0gICAgICAgICAgIjAuMDU3NCwgMC4xNTg3NSwgMC4yNTk1NTIsIDAuMzMxNTEsIDAuNDQ2NTI2LCAwLjU0NzE2NywgMC42OTA3MDQiLCBcCi0gICAgICAgICAgIjAuMDY1OTUzLCAwLjE2NzcxOSwgMC4yNjg1NzYsIDAuMzQwNTEyLCAwLjQ1NTU2NywgMC41NTYyMzQsIDAuNjk5ODgyIiwgXAotICAgICAgICAgICIwLjA3MzYwOCwgMC4xNzY2MTQsIDAuMjc3NTYyLCAwLjM0OTU5NiwgMC40NjQ1NzksIDAuNTY1MjU2LCAwLjcwODk0OSIsIFwKLSAgICAgICAgICAiMC4wODQ1MjYsIDAuMTkwOTI5LCAwLjI5MTg2MSwgMC4zNjM4NCwgMC40NzkxNTEsIDAuNTc5NzcxLCAwLjcyMzM0MiIsIFwKLSAgICAgICAgICAiMC4wOTMwNjcsIDAuMjAzNjA4LCAwLjMwNDQ1NCwgMC4zNzY0NjksIDAuNDkxNTQyLCAwLjU5MjUyLCAwLjczNjIxMyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1ODE5LCAwLjI1NjU2MiwgMC40NTIxNjYsIDAuNTkzOTI5LCAwLjgxOTE5MSwgMS4wMTcyMiwgMS4yOTg1MSIsIFwKLSAgICAgICAgICAiMC4wNTgxOTIsIDAuMjU1NDQxLCAwLjQ1MTY3NCwgMC41OTIzNCwgMC44MTk0NjYsIDEuMDE0OTEsIDEuMjk1MDYiLCBcCi0gICAgICAgICAgIjAuMDYwMTI2LCAwLjI1NDk1OCwgMC40NTI3OCwgMC41OTM2ODQsIDAuODE5MjAxLCAxLjAxNTAyLCAxLjI5ODYiLCBcCi0gICAgICAgICAgIjAuMDYzNDQ2LCAwLjI1NjEyNywgMC40NTI3ODMsIDAuNTkzNzM5LCAwLjgxOTA5NCwgMS4wMTY0OCwgMS4yOTgxOSIsIFwKLSAgICAgICAgICAiMC4wNjc5MjcsIDAuMjU3NjAyLCAwLjQ1MjE5LCAwLjU5MjIxNiwgMC44MTkyMzQsIDEuMDE2MzksIDEuMjk3NzciLCBcCi0gICAgICAgICAgIjAuMDc2MTMsIDAuMjYwOTI5LCAwLjQ1NDcyOSwgMC41OTQzODgsIDAuODE5NDAzLCAxLjAxNjYxLCAxLjI5ODQiLCBcCi0gICAgICAgICAgIjAuMDgzNDYxLCAwLjI2NTQxLCAwLjQ1NjQ3OSwgMC41OTQyMzksIDAuODE5NTU0LCAxLjAxMzYzLCAxLjI5ODY2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE1MjExLCAwLjA1MTY5LCAwLjA4Nzk3OSwgMC4xMTM5MjksIDAuMTU1MzU5LCAwLjE5MTYwOSwgMC4yNDMzNjciLCBcCi0gICAgICAgICAgIjAuMDI1MjExLCAwLjA2MTYxNiwgMC4wOTc5MzYsIDAuMTIzODUzLCAwLjE2NTI2MiwgMC4yMDE2MSwgMC4yNTMyODQiLCBcCi0gICAgICAgICAgIjAuMDM1NjI2LCAwLjA3NDM5OCwgMC4xMTA0NDgsIDAuMTM2MzU5LCAwLjE3Nzc4NywgMC4yMTQxMzksIDAuMjY1OTM4IiwgXAotICAgICAgICAgICIwLjA0MzU3MiwgMC4wODY4OTMsIDAuMTIyNzQyLCAwLjE0ODYzNSwgMC4xOTAyMDcsIDAuMjI2NDI1LCAwLjI3ODIxMSIsIFwKLSAgICAgICAgICAiMC4wNTAxNzcsIDAuMDk5NjAxLCAwLjEzNTczLCAwLjE2MTE1LCAwLjIwMjU1NSwgMC4yMzkwMzYsIDAuMjkwNzgxIiwgXAotICAgICAgICAgICIwLjA1OTA0NSwgMC4xMTgyMTEsIDAuMTU2MTI4LCAwLjE4MTk0NCwgMC4yMjI2MzQsIDAuMjU4ODY0LCAwLjMxMDYyNSIsIFwKLSAgICAgICAgICAiMC4wNjU3ODksIDAuMTMyMywgMC4xNzQwMzMsIDAuMTk5ODg4LCAwLjI0MTA3NiwgMC4yNzY0NDEsIDAuMzI4MTY4Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDIzMDE4LCAwLjA5Nzc3NSwgMC4xNzI1MzQsIDAuMjI2MDMsIDAuMzExNDc2LCAwLjM4NjIzLCAwLjQ5Mjk0OSIsIFwKLSAgICAgICAgICAiMC4wMjY4NDUsIDAuMDk3OTc0LCAwLjE3MjUzMywgMC4yMjU5OTgsIDAuMzExNTEyLCAwLjM4NjI5NywgMC40OTI5MTgiLCBcCi0gICAgICAgICAgIjAuMDM1NzQ2LCAwLjEwMTU4MiwgMC4xNzM0NjQsIDAuMjI2MTY0LCAwLjMxMTM4MSwgMC4zODYyNjksIDAuNDkzMDk5IiwgXAotICAgICAgICAgICIwLjA0NDM1MiwgMC4xMDc5NiwgMC4xNzczMjksIDAuMjI4NDYzLCAwLjMxMTk1NCwgMC4zODYxMjcsIDAuNDkyOTg4IiwgXAotICAgICAgICAgICIwLjA1MjIwNywgMC4xMTU0ODcsIDAuMTgyNjQ0LCAwLjIzMjY4MywgMC4zMTQ0ODMsIDAuMzg3MzkxLCAwLjQ5MzE2OSIsIFwKLSAgICAgICAgICAiMC4wNjM3NzUsIDAuMTI5Mjc0LCAwLjE5MzA4OCwgMC4yNDE0MzUsIDAuMzIxMjYyLCAwLjM5MjM4NywgMC40OTU4NzMiLCBcCi0gICAgICAgICAgIjAuMDcyNjAxLCAwLjE0MjM3MiwgMC4yMDM3NzQsIDAuMjUwNywgMC4zMjg0NjQsIDAuMzk4NTg3LCAwLjUwMDMwMiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzNzgxMSwgMC4xMzg3NTgsIDAuMjM5MjM4LCAwLjMxMTM0MSwgMC40MjYwNjksIDAuNTI2OTk4LCAwLjY3MDM2OCIsIFwKLSAgICAgICAgICAiMC4wNDU5MjksIDAuMTQ3MjQ5LCAwLjI0NzkyNSwgMC4zMTk3OTUsIDAuNDM0NzI4LCAwLjUzNTMyNywgMC42NzkxMDciLCBcCi0gICAgICAgICAgIjAuMDU2MzY0LCAwLjE1Nzc1OSwgMC4yNTg2MTQsIDAuMzMwNTAyLCAwLjQ0NTQ5NywgMC41NDYzOTIsIDAuNjg5NzYiLCBcCi0gICAgICAgICAgIjAuMDY2MjQ5LCAwLjE2ODIzOSwgMC4yNjkxNiwgMC4zNDEzNDEsIDAuNDU2MjMxLCAwLjU1Njk0NiwgMC43MDA0OTgiLCBcCi0gICAgICAgICAgIjAuMDc0OTIsIDAuMTc4Nzc2LCAwLjI3OTgyNCwgMC4zNTE4NTgsIDAuNDY3MDI5LCAwLjU2NzYwNywgMC43MTEzMTUiLCBcCi0gICAgICAgICAgIjAuMDg2OTg5LCAwLjE5NjAzNCwgMC4yOTY5MTgsIDAuMzY4ODU0LCAwLjQ4MzkwNiwgMC41ODQ4NDQsIDAuNzI4MzUyIiwgXAotICAgICAgICAgICIwLjA5NjUwOCwgMC4yMTA4NTQsIDAuMzExNzQ2LCAwLjM4Mzg0NywgMC40OTg4NjYsIDAuNTk5NjEsIDAuNzQzNjUyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU4MTksIDAuMjU2NjY0LCAwLjQ1Mjg2NCwgMC41OTIxOTgsIDAuODE5Mjk0LCAxLjAxMzkxLCAxLjI5ODc3IiwgXAotICAgICAgICAgICIwLjA1ODU1LCAwLjI1NTQ1NSwgMC40NTI4NTYsIDAuNTkzODA4LCAwLjgxOTMyNSwgMS4wMTU3NywgMS4yOTg2OSIsIFwKLSAgICAgICAgICAiMC4wNjE5MDgsIDAuMjU0ODk1LCAwLjQ1Mjc2MywgMC41OTM2MTgsIDAuODE5MTQ2LCAxLjAxMzY0LCAxLjI5NzUzIiwgXAotICAgICAgICAgICIwLjA2NzMsIDAuMjU2MzMzLCAwLjQ1MTk0MiwgMC41OTIwNDcsIDAuODE5MjAyLCAxLjAxNDk4LCAxLjI5ODIzIiwgXAotICAgICAgICAgICIwLjA3NDA0NSwgMC4yNTg0MzUsIDAuNDUyOTcsIDAuNTkzNzU2LCAwLjgxNzE1NSwgMS4wMTY0OSwgMS4yOTgxNyIsIFwKLSAgICAgICAgICAiMC4wODUwNjUsIDAuMjYzODAyLCAwLjQ1NDE4MiwgMC41OTQ1MywgMC44MTc4MDksIDEuMDE2NzMsIDEuMjk4NDIiLCBcCi0gICAgICAgICAgIjAuMDk0MTMyLCAwLjI3MDA2NiwgMC40NTc4NzQsIDAuNTk1NDM5LCAwLjgxODI2MSwgMS4wMTY0MywgMS4yOTg2MiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMzg1MywgMC4wNTAzMDUsIDAuMDg2NjkzLCAwLjExMjY5MiwgMC4xNTQyOCwgMC4xOTA1NzUsIDAuMjQyNjM3IiwgXAotICAgICAgICAgICIwLjAyMzgxLCAwLjA2MDI3NCwgMC4wOTY3MDMsIDAuMTIyNzA3LCAwLjE2NDIxNywgMC4yMDA2MTEsIDAuMjUyNTQzIiwgXAotICAgICAgICAgICIwLjAzMzI4NCwgMC4wNzI5MDIsIDAuMTA5MDU3LCAwLjEzNTA1NCwgMC4xNzY2NDEsIDAuMjEyNjYsIDAuMjY0NTQ1IiwgXAotICAgICAgICAgICIwLjA0MDQ2OSwgMC4wODU3NjYsIDAuMTIyMDA0LCAwLjE0NzY0NSwgMC4xODkyNDMsIDAuMjI1Njc5LCAwLjI3NzY5OCIsIFwKLSAgICAgICAgICAiMC4wNDY3NjUsIDAuMDk4MjY2LCAwLjEzNDUzMiwgMC4xNTk5ODUsIDAuMjAxNTg1LCAwLjIzNzg5LCAwLjI5MDA1OCIsIFwKLSAgICAgICAgICAiMC4wNTQ5NCwgMC4xMTY1NCwgMC4xNTUwMDYsIDAuMTgwODc4LCAwLjIyMjI2OCwgMC4yNTc5NywgMC4zMDk5MzQiLCBcCi0gICAgICAgICAgIjAuMDYwNTA2LCAwLjEzMDQzNywgMC4xNzI4NzQsIDAuMTk4NjY1LCAwLjI0MDEyOSwgMC4yNzYzNDksIDAuMzI3NTA0Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDIxNDc3LCAwLjA5NzA4MiwgMC4xNzI1NzQsIDAuMjI2NjksIDAuMzEzMjY2LCAwLjM4ODU2MywgMC40OTY3MTEiLCBcCi0gICAgICAgICAgIjAuMDI1NzQyLCAwLjA5NzI1NSwgMC4xNzI2NjUsIDAuMjI2Njc4LCAwLjMxMzAxMywgMC4zODkxNjksIDAuNDk2NDk3IiwgXAotICAgICAgICAgICIwLjAzNTQxNiwgMC4xMDExNzIsIDAuMTczOTQ2LCAwLjIyNjc1NywgMC4zMTMwNTcsIDAuMzg4OTU3LCAwLjQ5NzA0NSIsIFwKLSAgICAgICAgICAiMC4wNDM5NzUsIDAuMTA3MjE2LCAwLjE3NzQsIDAuMjI5NTIsIDAuMzEzNTI2LCAwLjM4ODcwNywgMC40OTY2MzkiLCBcCi0gICAgICAgICAgIjAuMDUxNTU3LCAwLjExNTA0NywgMC4xODI5MzIsIDAuMjMzNjk2LCAwLjMxNjE1NiwgMC4zOTA2NCwgMC40OTY5NzkiLCBcCi0gICAgICAgICAgIjAuMDYyODEsIDAuMTI4Njc0LCAwLjE5MzI3OSwgMC4yNDIxMDUsIDAuMzIzMDkzLCAwLjM5NTQzLCAwLjQ5OTY3IiwgXAotICAgICAgICAgICIwLjA3MjI1MSwgMC4xNDE5NDQsIDAuMjA0MTY4LCAwLjI1MTM2NCwgMC4zMzA0NDYsIDAuNDAxMjgyLCAwLjUwMzk1OSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzMzExOSwgMC4xMzQwMzEsIDAuMjM0NjcyLCAwLjMwNjUyMSwgMC40MjE3MzcsIDAuNTIyMDM2LCAwLjY2NTg5OSIsIFwKLSAgICAgICAgICAiMC4wNDExNDEsIDAuMTQyNDksIDAuMjQzMjcsIDAuMzE1MTg2LCAwLjQzMDE2OCwgMC41MzA1OSwgMC42NzQzMiIsIFwKLSAgICAgICAgICAiMC4wNTIwNDEsIDAuMTUyOTk1LCAwLjI1NDAxNSwgMC4zMjYwMzcsIDAuNDQwOTEsIDAuNTQxNjI4LCAwLjY4NTE1NiIsIFwKLSAgICAgICAgICAiMC4wNjI3OTQsIDAuMTY0MjUyLCAwLjI2NDk3OSwgMC4zMzY5ODIsIDAuNDUyMTc4LCAwLjU1MjU3NSwgMC42OTYyNDEiLCBcCi0gICAgICAgICAgIjAuMDcxNjc4LCAwLjE3NTE1NCwgMC4yNzU4OSwgMC4zNDc5MDMsIDAuNDYyODg0LCAwLjU2MzYxMywgMC43MDcyMzciLCBcCi0gICAgICAgICAgIjAuMDgzMTgsIDAuMTkyODI1LCAwLjI5MzM2NiwgMC4zNjUxMzgsIDAuNDgwNDQzLCAwLjU4MTAyNiwgMC43MjQ0OTQiLCBcCi0gICAgICAgICAgIjAuMDkyMjA2LCAwLjIwODQ1NSwgMC4zMDg3ODIsIDAuMzgwNjg3LCAwLjQ5NTU0MywgMC41OTYyMiwgMC43NDAxNjEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTgxNywgMC4yNTU0NzQsIDAuNDUyMDc0LCAwLjU5Mzg3NywgMC44MTcwMTcsIDEuMDE2NzEsIDEuMjk0NjkiLCBcCi0gICAgICAgICAgIjAuMDU4ODQ3LCAwLjI1NTUwMiwgMC40NTQ1MzgsIDAuNTkzODcsIDAuODIyNTE0LCAxLjAxNjY2LCAxLjI5ODI1IiwgXAotICAgICAgICAgICIwLjA2NDcwNCwgMC4yNTYzOTMsIDAuNDUyODMzLCAwLjU5MjA2LCAwLjgxOTEwNSwgMS4wMjEwNiwgMS4yOTczNiIsIFwKLSAgICAgICAgICAiMC4wNzIzMzgsIDAuMjU2Nzk5LCAwLjQ1Mjc3OSwgMC41OTM2ODUsIDAuODE2ODg0LCAxLjAxNTc0LCAxLjI5ODIxIiwgXAotICAgICAgICAgICIwLjA4MTI3OCwgMC4yNjAwNTMsIDAuNDUyMTkzLCAwLjU5MzgxLCAwLjgxOTA1OSwgMS4wMTY2NSwgMS4yOTgyMSIsIFwKLSAgICAgICAgICAiMC4wOTUwNzQsIDAuMjY3NTY0LCAwLjQ1NTMzLCAwLjU5MzU4LCAwLjgxNjgwNiwgMS4wMTY5MywgMS4yOTgxNSIsIFwKLSAgICAgICAgICAiMC4xMDUzNDgsIDAuMjc2MDkxLCAwLjQ2MTEwMywgMC41OTY3NDcsIDAuODE4MTE0LCAxLjAxNDUyLCAxLjMwNDU3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTkxMzEsIDAuMDE5MTQ2LCAwLjAxOTE1LCAwLjAxOTE1LCAwLjAxOTE1MywgMC4wMTkxNSwgMC4wMTkxNSIsIFwKLSAgICAgICAgICAiMC4wMTg4OTgsIDAuMDE5MDExLCAwLjAxOTAzNCwgMC4wMTkwNDIsIDAuMDE5MDQ4LCAwLjAxOTA0OSwgMC4wMTkwNTMiLCBcCi0gICAgICAgICAgIjAuMDE4ODU3LCAwLjAxODk3NSwgMC4wMTg5OTksIDAuMDE5MDEsIDAuMDE5MDIzLCAwLjAxOTAyOSwgMC4wMTkwMjIiLCBcCi0gICAgICAgICAgIjAuMDE4OTIzLCAwLjAxODk4LCAwLjAxOTAwNywgMC4wMTkwMTYsIDAuMDE5MDI2LCAwLjAxOTAxNiwgMC4wMTkwMzQiLCBcCi0gICAgICAgICAgIjAuMDE5MDI5LCAwLjAxOTAxMiwgMC4wMTkwMjIsIDAuMDE5MDE0LCAwLjAxOTAyNCwgMC4wMTkwMzEsIDAuMDE5MDMiLCBcCi0gICAgICAgICAgIjAuMDE5MjIsIDAuMDE5MDY2LCAwLjAxOTA1OSwgMC4wMTkwNTEsIDAuMDE5MDMzLCAwLjAxOTAzNiwgMC4wMTkwMzciLCBcCi0gICAgICAgICAgIjAuMDE5MzAyLCAwLjAxOTE1NiwgMC4wMTkxMDcsIDAuMDE5MDk3LCAwLjAxOTA4MSwgMC4wMTkwNTUsIDAuMDE5MDQ5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDM1MiwgMC4wMDM2NjYsIDAuMDAzNjg4LCAwLjAwMzY5NSwgMC4wMDM3MDEsIDAuMDAzNzA0LCAwLjAwMzcwNyIsIFwKLSAgICAgICAgICAiMC4wMDMxMDIsIDAuMDAzNDksIDAuMDAzNTc5LCAwLjAwMzYxLCAwLjAwMzYzOCwgMC4wMDM2NTIsIDAuMDAzNjY2IiwgXAotICAgICAgICAgICIwLjAwMjkyLCAwLjAwMzMyOCwgMC4wMDM0NjUsIDAuMDAzNTE2LCAwLjAwMzU2NiwgMC4wMDM1OTgsIDAuMDAzNjE4IiwgXAotICAgICAgICAgICIwLjAwMjg0MiwgMC4wMDMyMTIsIDAuMDAzMzcxLCAwLjAwMzQzNiwgMC4wMDM1MDEsIDAuMDAzNTM3LCAwLjAwMzU3MyIsIFwKLSAgICAgICAgICAiMC4wMDI4MDMsIDAuMDAzMTI5LCAwLjAwMzI5NSwgMC4wMDMzNjcsIDAuMDAzNDQzLCAwLjAwMzQ4NywgMC4wMDM1MyIsIFwKLSAgICAgICAgICAiMC4wMDI3ODUsIDAuMDAzMDQ1LCAwLjAwMzIwNSwgMC4wMDMyODIsIDAuMDAzMzY4LCAwLjAwMzQyLCAwLjAwMzQ3MiIsIFwKLSAgICAgICAgICAiMC4wMDI4LCAwLjAwMzAwNCwgMC4wMDMxNSwgMC4wMDMyMjUsIDAuMDAzMzE0LCAwLjAwMzM3NCwgMC4wMDM0MjciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxNTg0MywgMC4wMTU4OTQsIDAuMDE1OSwgMC4wMTU5MDMsIDAuMDE1OTA0LCAwLjAxNTkwOCwgMC4wMTU5MDQiLCBcCi0gICAgICAgICAgIjAuMDE1NTkyLCAwLjAxNTgxMiwgMC4wMTU4NTMsIDAuMDE1ODY2LCAwLjAxNTg3NywgMC4wMTU4ODUsIDAuMDE1ODg5IiwgXAotICAgICAgICAgICIwLjAxNTQ5LCAwLjAxNTc0MywgMC4wMTU4MDIsIDAuMDE1ODI2LCAwLjAxNTg0OSwgMC4wMTU4NTksIDAuMDE1ODcyIiwgXAotICAgICAgICAgICIwLjAxNTQ3OSwgMC4wMTU3NjYsIDAuMDE1ODA3LCAwLjAxNTgzMSwgMC4wMTU4NTUsIDAuMDE1ODYyLCAwLjAxNTg3NSIsIFwKLSAgICAgICAgICAiMC4wMTU1MzksIDAuMDE1Nzc1LCAwLjAxNTgxNiwgMC4wMTU4MywgMC4wMTU4NDgsIDAuMDE1ODU2LCAwLjAxNTg3NCIsIFwKLSAgICAgICAgICAiMC4wMTU3MjEsIDAuMDE1ODIsIDAuMDE1ODQyLCAwLjAxNTg1MywgMC4wMTU4NTIsIDAuMDE1ODYxLCAwLjAxNTg3MSIsIFwKLSAgICAgICAgICAiMC4wMTU5MDQsIDAuMDE1ODk5LCAwLjAxNTg4MywgMC4wMTU4ODksIDAuMDE1ODg2LCAwLjAxNTg3NSwgMC4wMTU4ODEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzUwNSwgMC4wMDM2NTEsIDAuMDAzNjczLCAwLjAwMzY4LCAwLjAwMzY4NiwgMC4wMDM2ODksIDAuMDAzNjkyIiwgXAotICAgICAgICAgICIwLjAwMzA5NywgMC4wMDM0NzYsIDAuMDAzNTY1LCAwLjAwMzU5NSwgMC4wMDM2MjMsIDAuMDAzNjM4LCAwLjAwMzY1MSIsIFwKLSAgICAgICAgICAiMC4wMDI5MiwgMC4wMDMzMTYsIDAuMDAzNDUxLCAwLjAwMzUwMiwgMC4wMDM1NTEsIDAuMDAzNTc3LCAwLjAwMzYwMyIsIFwKLSAgICAgICAgICAiMC4wMDI4NTQsIDAuMDAzMjA3LCAwLjAwMzM2MiwgMC4wMDM0MjUsIDAuMDAzNDg5LCAwLjAwMzUyNSwgMC4wMDM1NiIsIFwKLSAgICAgICAgICAiMC4wMDI4MzUsIDAuMDAzMTM1LCAwLjAwMzI5NSwgMC4wMDMzNjUsIDAuMDAzNDM3LCAwLjAwMzQ4LCAwLjAwMzUyMiIsIFwKLSAgICAgICAgICAiMC4wMDI4NywgMC4wMDMwNjUsIDAuMDAzMjExLCAwLjAwMzI4MywgMC4wMDMzNjQsIDAuMDAzNDE0LCAwLjAwMzQ2NSIsIFwKLSAgICAgICAgICAiMC4wMDI5MjgsIDAuMDAzMDQ0LCAwLjAwMzE3LCAwLjAwMzIzOCwgMC4wMDMzMiwgMC4wMDMzNzEsIDAuMDAzNDI2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTI0ODIsIDAuMDEyNjExLCAwLjAxMjYzMSwgMC4wMTI2MzMsIDAuMDEyNjMyLCAwLjAxMjY0MSwgMC4wMTI2NDIiLCBcCi0gICAgICAgICAgIjAuMDEyMjEyLCAwLjAxMjU3MiwgMC4wMTI2MzgsIDAuMDEyNjU4LCAwLjAxMjY4NywgMC4wMTI2OTMsIDAuMDEyNzA0IiwgXAotICAgICAgICAgICIwLjAxMjEzNSwgMC4wMTI1MDMsIDAuMDEyNTkzLCAwLjAxMjYyOCwgMC4wMTI2NTksIDAuMDEyNjgsIDAuMDEyNjk2IiwgXAotICAgICAgICAgICIwLjAxMjEwMywgMC4wMTI0MjcsIDAuMDEyNTQyLCAwLjAxMjU3NSwgMC4wMTI2MjQsIDAuMDEyNjQ3LCAwLjAxMjY3IiwgXAotICAgICAgICAgICIwLjAxMjEzLCAwLjAxMjQ1MiwgMC4wMTI1NiwgMC4wMTI1ODQsIDAuMDEyNjI4LCAwLjAxMjY0NiwgMC4wMTI2NzciLCBcCi0gICAgICAgICAgIjAuMDEyMzExLCAwLjAxMjQ1OSwgMC4wMTI1MzgsIDAuMDEyNTc3LCAwLjAxMjYyLCAwLjAxMjYzOSwgMC4wMTI2NTUiLCBcCi0gICAgICAgICAgIjAuMDEyNDk2LCAwLjAxMjUyMywgMC4wMTI1NjksIDAuMDEyNTg5LCAwLjAxMjYxMSwgMC4wMTI2NDYsIDAuMDEyNjU1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDM0NDcsIDAuMDAzNjIsIDAuMDAzNjQ1LCAwLjAwMzY1MywgMC4wMDM2NiwgMC4wMDM2NjQsIDAuMDAzNjY3IiwgXAotICAgICAgICAgICIwLjAwMzAxNiwgMC4wMDM0MjcsIDAuMDAzNTI2LCAwLjAwMzU1OSwgMC4wMDM1OTEsIDAuMDAzNjA3LCAwLjAwMzYyMiIsIFwKLSAgICAgICAgICAiMC4wMDI5MjcsIDAuMDAzMjgxLCAwLjAwMzQxNiwgMC4wMDM0NjksIDAuMDAzNTIsIDAuMDAzNTQ4LCAwLjAwMzU3NCIsIFwKLSAgICAgICAgICAiMC4wMDMwNDgsIDAuMDAzMjM5LCAwLjAwMzM2OSwgMC4wMDM0MjUsIDAuMDAzNDgyLCAwLjAwMzUxNSwgMC4wMDM1NDciLCBcCi0gICAgICAgICAgIjAuMDAzMDk0LCAwLjAwMzE2NCwgMC4wMDMyOTMsIDAuMDAzMzU0LCAwLjAwMzQyMiwgMC4wMDM0NjIsIDAuMDAzNTAyIiwgXAotICAgICAgICAgICIwLjAwMzQ1NiwgMC4wMDMyMTYsIDAuMDAzMjg4LCAwLjAwMzMzNywgMC4wMDMzOTYsIDAuMDAzNDM1LCAwLjAwMzQ3NiIsIFwKLSAgICAgICAgICAiMC4wMDM3MzgsIDAuMDAzMjkxLCAwLjAwMzMxLCAwLjAwMzM0MiwgMC4wMDMzODksIDAuMDAzNDI1LCAwLjAwMzQ2MiIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBOQU5ENEJYMiAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoTkFORDRCWDIpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4zMjA0Njc7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEFOKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA1MzY4MDQ7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNTM2NDM7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNTM2ODA0OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDg0NCwgMC4wMDA4MiwgMC4wMDA4MTIsIDAuMDAwODE4LCAwLjAwMDgyOCwgMC4wMDA4NTIsIDAuMDAwODc0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxODE0LCAwLjAwMTc5NCwgMC4wMDE3OSwgMC4wMDE3OTgsIDAuMDAxODA5LCAwLjAwMTgzMywgMC4wMDE4NTIiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTYwNzE1OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTYwNzE1OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTYwMTkyOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDgxOSwgMC4wMDA4MTgsIDAuMDAwODE3LCAwLjAwMDgxNywgMC4wMDA4MTcsIDAuMDAwODE3LCAwLjAwMDgxNyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDgxOSwgMC4wMDA4MiwgMC4wMDA4MjEsIDAuMDAwODE5LCAwLjAwMDgyLCAwLjAwMDgyLCAwLjAwMDgyIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihDKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE2MzkyNjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE2MzkyNjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE2MzQ1MjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA4MTksIDAuMDAwODE4LCAwLjAwMDgxOCwgMC4wMDA4MTgsIDAuMDAwODE3LCAwLjAwMDgxNywgMC4wMDA4MTciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA4MTksIDAuMDAwODIsIDAuMDAwODIxLCAwLjAwMDgyLCAwLjAwMDgyLCAwLjAwMDgyMSwgMC4wMDA4MjEiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEQpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTYyNzM2OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTYyNjA4OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTYyNzM2OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDI0NSwgMC4wMDAyNDQsIDAuMDAwMjQzLCAwLjAwMDI0MywgMC4wMDAyNDMsIDAuMDAwMjQzLCAwLjAwMDI0NCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDkyOCwgMC4wMDA5MjksIDAuMDAwOTMsIDAuMDAwOTI5LCAwLjAwMDkyOSwgMC4wMDA5MjksIDAuMDAwOTI5Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMTQzNzY5OwotICAgIGZ1bmN0aW9uIDogIighKCgoKCFBTikgQikgQykgRCkpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU4MzU5LCAwLjE2MjM1NiwgMC4yNDQ2MjYsIDAuMzQ3MDUyLCAwLjQ0OTcxNywgMC41NTIzMDIsIDAuNjU0ODQ0IiwgXAotICAgICAgICAgICIwLjA2ODU3OSwgMC4xNzI1MTEsIDAuMjU0Nzc0LCAwLjM1NzQ1NywgMC40NTk5NzIsIDAuNTYyNjk3LCAwLjY2NTA3NiIsIFwKLSAgICAgICAgICAiMC4wODA4NjYsIDAuMTg0Nzc3LCAwLjI2NzA0NywgMC4zNjk3NSwgMC40NzIzMzYsIDAuNTc0ODQ0LCAwLjY3NzIzOSIsIFwKLSAgICAgICAgICAiMC4wOTE3MTEsIDAuMTk1NTU1LCAwLjI3NzgxOSwgMC4zODA1MTIsIDAuNDgzMTAzLCAwLjU4NTU4NCwgMC42ODgxNTQiLCBcCi0gICAgICAgICAgIjAuMTAwOTgyLCAwLjIwNDgxOSwgMC4yODcwNzEsIDAuMzg5NzIzLCAwLjQ5MjM0NCwgMC41OTQ4OTMsIDAuNjk3Mzk3IiwgXAotICAgICAgICAgICIwLjExNDAzNywgMC4yMTgwMjIsIDAuMzAwMjQsIDAuNDAyODg3LCAwLjUwNTUyLCAwLjYwODA5NSwgMC43MTA1MTIiLCBcCi0gICAgICAgICAgIjAuMTIzODM4LCAwLjIyNzkyMSwgMC4zMTAxMjIsIDAuNDEyNzQ3LCAwLjUxNTMwNCwgMC42MTc4MzMsIDAuNzIwNTE0Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2NjE0NCwgMC4yNzY2NzksIDAuNDQ1ODY2LCAwLjY1Nzg4LCAwLjg2OTA3LCAxLjA4MDY2LCAxLjI5MjQzIiwgXAotICAgICAgICAgICIwLjA2NjE1NywgMC4yNzY2NjYsIDAuNDQ1ODY0LCAwLjY1NzY2MywgMC44Njg5NTYsIDEuMDgwODYsIDEuMjkyMDYiLCBcCi0gICAgICAgICAgIjAuMDY2MzUsIDAuMjc2NjgyLCAwLjQ0NTg3NSwgMC42NTc1OTMsIDAuODY5NjA3LCAxLjA4MDUxLCAxLjI5MjE5IiwgXAotICAgICAgICAgICIwLjA2NjkyOCwgMC4yNzY2NjksIDAuNDQ1OTgzLCAwLjY1NzYzMywgMC44NjkwMjMsIDEuMDgwNDgsIDEuMjkyNzgiLCBcCi0gICAgICAgICAgIjAuMDY3NzQyLCAwLjI3Njg1MiwgMC40NDU4ODYsIDAuNjU3ODcxLCAwLjg2OTI1NywgMS4wODExNCwgMS4yOTIxIiwgXAotICAgICAgICAgICIwLjA2OTA0NSwgMC4yNzY5NzIsIDAuNDQ1OTU5LCAwLjY1Nzg1NiwgMC44NjkwOTEsIDEuMDgwNjUsIDEuMjkyMDMiLCBcCi0gICAgICAgICAgIjAuMDcwMjMxLCAwLjI3NzIzNywgMC40NDU5NzQsIDAuNjU3NjksIDAuODY4OTk1LCAxLjA4MDQ4LCAxLjI5MjUxIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE0Nzg2OSwgMC41MzA0MTgsIDAuODM2MjM3LCAxLjIxODM4LCAxLjYwMDc0LCAxLjk4MjgsIDIuMzY0NSIsIFwKLSAgICAgICAgICAiMC4xNTc1NTMsIDAuNTQwMTY1LCAwLjg0NTgxOCwgMS4yMjgxNSwgMS42MTA2NCwgMS45OTI1NSwgMi4zNzQzMiIsIFwKLSAgICAgICAgICAiMC4xNjkxMzEsIDAuNTUyMTQ3LCAwLjg1NzU4NCwgMS4yMzk4NiwgMS42MjI5NCwgMi4wMDQxMSwgMi4zODU0OCIsIFwKLSAgICAgICAgICAiMC4xNzg2MzYsIDAuNTYxNTM4LCAwLjg2NzUxNywgMS4yNDk3LCAxLjYzMTY2LCAyLjAxNDQ0LCAyLjM5NTg2IiwgXAotICAgICAgICAgICIwLjE4NjY4MSwgMC41Njk3NTIsIDAuODc1NTc4LCAxLjI1Nzk4LCAxLjY0MDE0LCAyLjAyMjc0LCAyLjQwNDAxIiwgXAotICAgICAgICAgICIwLjE5ODEzNCwgMC41ODEwNTQsIDAuODg2ODkzLCAxLjI2OTk2LCAxLjY1MTQxLCAyLjAzNDY0LCAyLjQxNTE4IiwgXAotICAgICAgICAgICIwLjIwNjM5NSwgMC41ODkzNjYsIDAuODk1MTk4LCAxLjI3ODE1LCAxLjY1OTQ1LCAyLjA0MTg0LCAyLjQyNDU2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIwNTgyLCAwLjk1MjEzMiwgMS41NTA0NiwgMi4yOTczMiwgMy4wMzg2NSwgMy43OTUyNCwgNC41NDIxNCIsIFwKLSAgICAgICAgICAiMC4yMDU4NjYsIDAuOTUyMDYzLCAxLjU0ODY1LCAyLjI5NTQyLCAzLjAzODM1LCAzLjc5NTEyLCA0LjU0MjEyIiwgXAotICAgICAgICAgICIwLjIwNjM5MSwgMC45NTA5NzksIDEuNTQ4OTksIDIuMjk1MzgsIDMuMDQ2MDYsIDMuNzk0OCwgNC41NDEwMiIsIFwKLSAgICAgICAgICAiMC4yMDYzMTIsIDAuOTUxNTU5LCAxLjU1MDUzLCAyLjI5NzM2LCAzLjA0MTM1LCAzLjc5NTc1LCA0LjU0MjI5IiwgXAotICAgICAgICAgICIwLjIwNjM4MiwgMC45NTEzMjIsIDEuNTUwNTIsIDIuMjk3OTQsIDMuMDQ0NDcsIDMuNzk2LCA0LjU0MjM0IiwgXAotICAgICAgICAgICIwLjIwNjE3OSwgMC45NTIwMTcsIDEuNTQ4OTUsIDIuMjkyNywgMy4wNDEwMSwgMy43ODMxMiwgNC41MzI0NyIsIFwKLSAgICAgICAgICAiMC4yMDU4NTcsIDAuOTUzNzAxLCAxLjU0OTM0LCAyLjI5ODQ5LCAzLjA0MDg5LCAzLjc4NDE1LCA0LjUyODgxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzNDU3MiwgMC4xMzc3NDcsIDAuMjE5OTEsIDAuMzIyNDg2LCAwLjQyNDkxMSwgMC41Mjc2OTYsIDAuNjMwMDYiLCBcCi0gICAgICAgICAgIjAuMDQ0NTQ4LCAwLjE0NzY0OCwgMC4yMjk3NTEsIDAuMzMyMjU4LCAwLjQzNDk2MSwgMC41MzczMzUsIDAuNjM5OTU3IiwgXAotICAgICAgICAgICIwLjA1NzA5MywgMC4xNjAwNTMsIDAuMjQyMTUyLCAwLjM0Mzg5NCwgMC40NDYzNTUsIDAuNTQ4ODIsIDAuNjUxMjQ4IiwgXAotICAgICAgICAgICIwLjA2OTY5NiwgMC4xNzI1OCwgMC4yNTQ3MjUsIDAuMzU3MjYyLCAwLjQ1OTc2LCAwLjU2MjE0MSwgMC42NjQ2NTciLCBcCi0gICAgICAgICAgIjAuMDgwNDU3LCAwLjE4NDc4MSwgMC4yNjcwNTEsIDAuMzY5NDY0LCAwLjQ3MTk5OCwgMC41NzQ0MTMsIDAuNjc2ODYyIiwgXAotICAgICAgICAgICIwLjA5NTE4NywgMC4yMDQ4LCAwLjI4Njc4NywgMC4zODk1NTcsIDAuNDkyMDIsIDAuNTk0NDI2LCAwLjY5Njg1NCIsIFwKLSAgICAgICAgICAiMC4xMDYzMzIsIDAuMjIzMDg0LCAwLjMwNDI4NCwgMC40MDY3NjksIDAuNTA5NjMsIDAuNjExODA0LCAwLjcxNDE0MyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjE1NDEsIDAuMjczMzUyLCAwLjQ0MjU4NSwgMC42NTQyMzUsIDAuODY1NDQ1LCAxLjA3NzM5LCAxLjI4ODc2IiwgXAotICAgICAgICAgICIwLjA2MjQzMSwgMC4yNzMzNTksIDAuNDQyNjg5LCAwLjY1NDIwNCwgMC44NjU3NCwgMS4wNzcwMSwgMS4yODkwNyIsIFwKLSAgICAgICAgICAiMC4wNjc5NjIsIDAuMjczMDk0LCAwLjQ0MjU0MiwgMC42NTQxODEsIDAuODY1NDUsIDEuMDc3NTEsIDEuMjg4NjMiLCBcCi0gICAgICAgICAgIjAuMDc1NDQyLCAwLjI3NDM2NywgMC40NDI1LCAwLjY1NDI0NCwgMC44NjU0MzksIDEuMDc3MDUsIDEuMjg4NjUiLCBcCi0gICAgICAgICAgIjAuMDg0OCwgMC4yNzc2MDQsIDAuNDQyODYxLCAwLjY1NDMwOCwgMC44NjU3NCwgMS4wNzY5NywgMS4yODg1MiIsIFwKLSAgICAgICAgICAiMC4xMDAwNjgsIDAuMjg1MzMsIDAuNDQ2NjEyLCAwLjY1NDMwMiwgMC44NjU2MDEsIDEuMDc3MTIsIDEuMjg5MDkiLCBcCi0gICAgICAgICAgIjAuMTEzMTIzLCAwLjI5MzM4OSwgMC40NTE5NjUsIDAuNjU2NjUyLCAwLjg2NTczOCwgMS4wNzY5NiwgMS4yODg1OCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMjI0OTMsIDAuNTA0OCwgMC44MTA0MzEsIDEuMTkyODgsIDEuNTc0MTgsIDEuOTU3NzcsIDIuMzM5MjMiLCBcCi0gICAgICAgICAgIjAuMTMwNjU4LCAwLjUxMzQ1MSwgMC44MTkyNDIsIDEuMjAxOTksIDEuNTgzNDYsIDEuOTY1ODEsIDIuMzQ4NTYiLCBcCi0gICAgICAgICAgIjAuMTM5OTM2LCAwLjUyMzIyNywgMC44Mjg5NjUsIDEuMjExNzQsIDEuNTkzMTUsIDEuOTc2NiwgMi4zNTgzIiwgXAotICAgICAgICAgICIwLjE0ODc2NywgMC41MzE5MTMsIDAuODM3NjY1LCAxLjIxOTcxLCAxLjYwMjc4LCAxLjk4MzcsIDIuMzY2NSIsIFwKLSAgICAgICAgICAiMC4xNTc0OTYsIDAuNTQwOTExLCAwLjg0NzE0OCwgMS4yMjk2LCAxLjYxMTM1LCAxLjk5NDM0LCAyLjM3NTQ3IiwgXAotICAgICAgICAgICIwLjE3MTQ5LCAwLjU1NTAxMiwgMC44NjA4MzYsIDEuMjQyOTksIDEuNjI2MTUsIDIuMDA3MjgsIDIuMzkwMTMiLCBcCi0gICAgICAgICAgIjAuMTgzODQxLCAwLjU2Njk3OCwgMC44NzM0NzQsIDEuMjU1NSwgMS42MzczNSwgMi4wMjEzMSwgMi40MDIyMiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMDYzMjYsIDAuOTUzMDU2LCAxLjU0OTA4LCAyLjI5Nzk4LCAzLjA0MTU5LCAzLjc5NjI3LCA0LjU0MzAxIiwgXAotICAgICAgICAgICIwLjIwNTk5MywgMC45NTIxNDIsIDEuNTQ5MSwgMi4yOTg1OCwgMy4wNDEzNSwgMy43ODMyNywgNC41MjgwMiIsIFwKLSAgICAgICAgICAiMC4yMDU5NzYsIDAuOTUzMzk5LCAxLjU1MDUsIDIuMjk4NjUsIDMuMDQxMjksIDMuNzgzMTYsIDQuNTQzNjYiLCBcCi0gICAgICAgICAgIjAuMjA2OTEzLCAwLjk1MjA4MSwgMS41NDk0NCwgMi4yOTg5MiwgMy4wNDUyNCwgMy43OTM1MSwgNC41MzM0MSIsIFwKLSAgICAgICAgICAiMC4yMDg1NjcsIDAuOTUzMTA5LCAxLjU1MTI4LCAyLjI5ODUsIDMuMDM3ODYsIDMuNzk2MjQsIDQuNTQyNCIsIFwKLSAgICAgICAgICAiMC4yMTIyOTMsIDAuOTUzMDE4LCAxLjU0ODY4LCAyLjI5NDg3LCAzLjA0NTc1LCAzLjc4NjU2LCA0LjUzMDAxIiwgXAotICAgICAgICAgICIwLjIxNjkzOCwgMC45NTIzMjEsIDEuNTUwNzcsIDIuMjk1MiwgMy4wNDYzNiwgMy43ODMzLCA0LjU0MjU3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzMjkzNSwgMC4xMzU2NjYsIDAuMjE3Njc4LCAwLjMyMDI3NSwgMC40MjI3NTIsIDAuNTI1NDIxLCAwLjYyNzg1MSIsIFwKLSAgICAgICAgICAiMC4wNDI5NzMsIDAuMTQ1NjYyLCAwLjIyNzY3NywgMC4zMzAxODQsIDAuNDMyOTYzLCAwLjUzNTEzOSwgMC42Mzc4NjciLCBcCi0gICAgICAgICAgIjAuMDU1NTI1LCAwLjE1ODA0MiwgMC4yNDAwNjIsIDAuMzQxOTczLCAwLjQ0NDIyLCAwLjU0NjYzNiwgMC42NDkwMDMiLCBcCi0gICAgICAgICAgIjAuMDY3ODc5LCAwLjE3MDU4MiwgMC4yNTI2NjUsIDAuMzU0NzUzLCAwLjQ1NzE1NSwgMC41NTk4MDUsIDAuNjYyNDE3IiwgXAotICAgICAgICAgICIwLjA3ODE5NiwgMC4xODI4MjYsIDAuMjY0OTk4LCAwLjM2NzMzOCwgMC40Njk3ODksIDAuNTcyMjksIDAuNjc0ODczIiwgXAotICAgICAgICAgICIwLjA5MjQ4NiwgMC4yMDI4MjksIDAuMjg0NzM0LCAwLjM4NzQ1OSwgMC40ODk3NjcsIDAuNTkyMzE1LCAwLjY5NDcxMiIsIFwKLSAgICAgICAgICAiMC4xMDMyMjUsIDAuMjIxMDcxLCAwLjMwMjIzMywgMC40MDQ2MzIsIDAuNTA3NDM3LCAwLjYwOTY0OCwgMC43MTIwNjIiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU5MDU3LCAwLjI3MDcxNSwgMC40NDAyNTIsIDAuNjUxODk1LCAwLjg2MzMxOCwgMS4wNzU0OCwgMS4yODcxNCIsIFwKLSAgICAgICAgICAiMC4wNjAxNzcsIDAuMjcwNzQ3LCAwLjQzOTk5LCAwLjY1MTYxOCwgMC44NjM2MywgMS4wNzUwNiwgMS4yODcwMyIsIFwKLSAgICAgICAgICAiMC4wNjYwNjgsIDAuMjcwNzI3LCAwLjQ0MDE5MiwgMC42NTE4MzQsIDAuODYzNzA1LCAxLjA3NTI5LCAxLjI4Njg5IiwgXAotICAgICAgICAgICIwLjA3Mzc5OSwgMC4yNzIwNDgsIDAuNDQwMDQ0LCAwLjY1MTgxMiwgMC44NjM3MzcsIDEuMDc1MTksIDEuMjg3MDkiLCBcCi0gICAgICAgICAgIjAuMDgzMjg0LCAwLjI3NTI5NSwgMC40NDA1NDcsIDAuNjUxNjQ2LCAwLjg2MzU0NiwgMS4wNzQ5OSwgMS4yODY0IiwgXAotICAgICAgICAgICIwLjA5ODc1MywgMC4yODMyOTMsIDAuNDQ0MzQ0LCAwLjY1MjA1OCwgMC44NjMyNDUsIDEuMDc1MTksIDEuMjg2ODgiLCBcCi0gICAgICAgICAgIjAuMTExNzQxLCAwLjI5MTIxMywgMC40NDk4NzQsIDAuNjU0NTYyLCAwLjg2MzY1LCAxLjA3NTE1LCAxLjI4NjE5Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExNTgwNSwgMC40OTgxMTcsIDAuODAzODc1LCAxLjE4NjYsIDEuNTY4MDMsIDEuOTQ5NjEsIDIuMzMzMDUiLCBcCi0gICAgICAgICAgIjAuMTIzODU5LCAwLjUwNjg5OSwgMC44MTI0NywgMS4xOTQyNCwgMS41NzcxNiwgMS45NTg4MSwgMi4zNDA4MiIsIFwKLSAgICAgICAgICAiMC4xMzM5LCAwLjUxNjg0OCwgMC44MjI1ODIsIDEuMjA1MzUsIDEuNTg2ODYsIDEuOTY5NjcsIDIuMzUwODEiLCBcCi0gICAgICAgICAgIjAuMTQzOTYzLCAwLjUyNzE1OSwgMC44MzMxMTUsIDEuMjE1NTgsIDEuNTk3NzksIDEuOTc5NzIsIDIuMzYyNDIiLCBcCi0gICAgICAgICAgIjAuMTU0MjMxLCAwLjUzNzYxLCAwLjg0MzgyMSwgMS4yMjYxNCwgMS42MDc4NiwgMS45OTA2NCwgMi4zNzIxOCIsIFwKLSAgICAgICAgICAiMC4xNzA0ODIsIDAuNTU0MDYzLCAwLjg1OTk1NSwgMS4yNDMxMywgMS42MjQ0OSwgMi4wMDYyMiwgMi4zODg4MSIsIFwKLSAgICAgICAgICAiMC4xODUwMjksIDAuNTY4MzM2LCAwLjg3NDc1NSwgMS4yNTcsIDEuNjM5NjcsIDIuMDIwODYsIDIuNDA0MSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMDU5MzUsIDAuOTUyOTMyLCAxLjU1MDUsIDIuMjk4NzYsIDMuMDQxNjQsIDMuNzkzODQsIDQuNTI4NTYiLCBcCi0gICAgICAgICAgIjAuMjA2MzAxLCAwLjk1MDk5MywgMS41NDc4OSwgMi4yOTQ2OCwgMy4wNDUsIDMuNzk0NzgsIDQuNTQyMTYiLCBcCi0gICAgICAgICAgIjAuMjA1OTQ1LCAwLjk1MzY0NCwgMS41NDg4MywgMi4yOTc5NiwgMy4wNDA1NCwgMy43OTUzNCwgNC41MzIwMiIsIFwKLSAgICAgICAgICAiMC4yMDcxODksIDAuOTUyMDEsIDEuNTQ4NjQsIDIuMjk3NDYsIDMuMDQ0NiwgMy43OTQ4LCA0LjUyOTA2IiwgXAotICAgICAgICAgICIwLjIxMDI0OCwgMC45NTI5NTYsIDEuNTUxMTMsIDIuMjk3OTMsIDMuMDQwNzYsIDMuNzk1NjIsIDQuNTQyMjkiLCBcCi0gICAgICAgICAgIjAuMjE2MzExLCAwLjk1MjAwMywgMS41NTE2OSwgMi4yOTg5NSwgMy4wNDA2OCwgMy43ODcwMiwgNC41MzI4NSIsIFwKLSAgICAgICAgICAiMC4yMjM2NzUsIDAuOTUxOTA2LCAxLjU0OTE3LCAyLjI5NTE5LCAzLjAzNzcyLCAzLjc5Mzg3LCA0LjU0MzE2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkQiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzMDY4OCwgMC4xMzI3MDcsIDAuMjE0MjU4LCAwLjMxNjIwOCwgMC40MTgxNTIsIDAuNTIwNjcyLCAwLjYyMjI4NyIsIFwKLSAgICAgICAgICAiMC4wNDA3MzEsIDAuMTQyNTIyLCAwLjIyNDEyNSwgMC4zMjYxMzEsIDAuNDI3ODg3LCAwLjUyOTkxLCAwLjYzMTczMyIsIFwKLSAgICAgICAgICAiMC4wNTM0MzcsIDAuMTU1MTc0LCAwLjIzNzAyNSwgMC4zMzkwNjIsIDAuNDQwOTU2LCAwLjU0MzQxNSwgMC42NDQ4NDYiLCBcCi0gICAgICAgICAgIjAuMDY1MjU3LCAwLjE2NzQ5OCwgMC4yNDkxNSwgMC4zNTEwMjcsIDAuNDUyOTk5LCAwLjU1NDk0NywgMC42NTU4NTkiLCBcCi0gICAgICAgICAgIjAuMDc1MjEsIDAuMTc5OTgzLCAwLjI2MTc3MiwgMC4zNjM1ODQsIDAuNDY1NTc2LCAwLjU2NzQ0NCwgMC42NjkzOSIsIFwKLSAgICAgICAgICAiMC4wODkwNjYsIDAuMjAwNjYyLCAwLjI4MTYyNywgMC4zODM4MzQsIDAuNDg1NjM4LCAwLjU4NzY5MSwgMC42ODk2MjUiLCBcCi0gICAgICAgICAgIjAuMDk5Mzg4LCAwLjIxODQ1MSwgMC4yOTkxMzIsIDAuNDAxMDUxLCAwLjUwMzUxMywgMC42MDUxNTQsIDAuNzA2OTIxIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1NjI5NCwgMC4yNjY4ODUsIDAuNDM1MTg4LCAwLjY0NTc1MSwgMC44NTc2NjMsIDEuMDY3NSwgMS4yNzc4NCIsIFwKLSAgICAgICAgICAiMC4wNTc2NDYsIDAuMjY2ODkzLCAwLjQzNTM4MSwgMC42NDYwMDMsIDAuODU4MTg4LCAxLjA2Njk5LCAxLjI4MDE1IiwgXAotICAgICAgICAgICIwLjA2MzY1NSwgMC4yNjczNywgMC40MzUyOTEsIDAuNjQ1OTcsIDAuODU2MjM4LCAxLjA2NzYzLCAxLjI3NzQxIiwgXAotICAgICAgICAgICIwLjA3MjA2OCwgMC4yNjg3NTgsIDAuNDM1Mjg1LCAwLjY0NTg1NiwgMC44NTYzNDEsIDEuMDY5MDQsIDEuMjc3OTUiLCBcCi0gICAgICAgICAgIjAuMDgxODQ3LCAwLjI3MjAzMiwgMC40MzY3MTUsIDAuNjQ2ODE1LCAwLjg1NjU2NCwgMS4wNjY3OSwgMS4yNzczMSIsIFwKLSAgICAgICAgICAiMC4wOTcwMTIsIDAuMjc5Mzg1LCAwLjQzOTYzOCwgMC42NDc2NDQsIDAuODU2NDIsIDEuMDY3MjQsIDEuMjc3ODUiLCBcCi0gICAgICAgICAgIjAuMTA5ODk2LCAwLjI4Nzc1NiwgMC40NDYwOTYsIDAuNjQ5MDIsIDAuODU2ODU1LCAxLjA2Njc5LCAxLjI3NzU1Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwNTIzOSwgMC40ODc1MDYsIDAuNzkzMzE3LCAxLjE3NTcxLCAxLjU1NzE1LCAxLjk0MDYxLCAyLjMyMTc1IiwgXAotICAgICAgICAgICIwLjExMzA3LCAwLjQ5NTg5LCAwLjgwMTYxNiwgMS4xODM1OSwgMS41NjU3OSwgMS45NDc1LCAyLjMyOTQ5IiwgXAotICAgICAgICAgICIwLjEyMzAzOSwgMC41MDYxNjksIDAuODExNzkxLCAxLjE5Mzg2LCAxLjU3NjY0LCAxLjk1Nzk3LCAyLjM0MTQyIiwgXAotICAgICAgICAgICIwLjEzMzYwNywgMC41MTY2NjIsIDAuODIyNTM5LCAxLjIwNDk3LCAxLjU4NzIsIDEuOTY5MjYsIDIuMzUwNTciLCBcCi0gICAgICAgICAgIjAuMTQ0MDgsIDAuNTI2ODIxLCAwLjgzMjgyMywgMS4yMTQ5LCAxLjU5NzcsIDEuOTc5MTMsIDIuMzYyMDYiLCBcCi0gICAgICAgICAgIjAuMTYxMTI3LCAwLjU0MzM5NCwgMC44NDkxOTksIDEuMjMxNTIsIDEuNjE0MTgsIDEuOTk1NzMsIDIuMzc4NzMiLCBcCi0gICAgICAgICAgIjAuMTc1Mjg5LCAwLjU1ODI0MiwgMC44NjM5MzksIDEuMjQ2MDYsIDEuNjI4MTcsIDIuMDExMTEsIDIuMzkyMjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjA2MzAxLCAwLjk1MTg4MiwgMS41NDkyLCAyLjI5Nzg3LCAzLjA0MDY4LCAzLjc5NjI0LCA0LjU0MjQ4IiwgXAotICAgICAgICAgICIwLjIwNjEzOCwgMC45NTIwMzcsIDEuNTQ4OTMsIDIuMjk0ODUsIDMuMDQwNjksIDMuNzkzNTMsIDQuNTQwOTEiLCBcCi0gICAgICAgICAgIjAuMjA1ODI1LCAwLjk1MjE2OCwgMS41NTE1OCwgMi4yOTg5NiwgMy4wNDQ1OSwgMy43ODc1LCA0LjUyODg0IiwgXAotICAgICAgICAgICIwLjIwNzc3NywgMC45NTIwMSwgMS41NDg5MywgMi4yOTcyOSwgMy4wMzk2MSwgMy43OTQ5NCwgNC41NDEwMyIsIFwKLSAgICAgICAgICAiMC4yMTI0NzMsIDAuOTUxOTk2LCAxLjU1MDMsIDIuMjk0NjUsIDMuMDQ1MTcsIDMuNzg2NjYsIDQuNTI5MDMiLCBcCi0gICAgICAgICAgIjAuMjIxNjUsIDAuOTUxOTA2LCAxLjU0ODc0LCAyLjI5NTA0LCAzLjA0NDQ3LCAzLjc4NjgsIDQuNTQzMzIiLCBcCi0gICAgICAgICAgIjAuMjMwMTY0LCAwLjk1MDc2MSwgMS41NDg5LCAyLjI5NDg4LCAzLjA0MDk3LCAzLjc5NTU0LCA0LjUzNTM4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQU4iOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNzQ3NCwgMC4wMDc0NzYsIDAuMDA3NDc2LCAwLjAwNzQ3NSwgMC4wMDc0NzQsIDAuMDA3NDc0LCAwLjAwNzQ2NyIsIFwKLSAgICAgICAgICAiMC4wMDc0NDEsIDAuMDA3NDQ3LCAwLjAwNzQ0NiwgMC4wMDc0NDYsIDAuMDA3NDQ2LCAwLjAwNzQ0NywgMC4wMDc0NDMiLCBcCi0gICAgICAgICAgIjAuMDA3NDI2LCAwLjAwNzQzNiwgMC4wMDc0MzcsIDAuMDA3NDM3LCAwLjAwNzQzNiwgMC4wMDc0MzYsIDAuMDA3NDM0IiwgXAotICAgICAgICAgICIwLjAwNzQzMSwgMC4wMDc0NDEsIDAuMDA3NDQzLCAwLjAwNzQ0NCwgMC4wMDc0NDMsIDAuMDA3NDQzLCAwLjAwNzQ0MyIsIFwKLSAgICAgICAgICAiMC4wMDc0NDMsIDAuMDA3NDU2LCAwLjAwNzQ1NywgMC4wMDc0NTcsIDAuMDA3NDU5LCAwLjAwNzQ1OCwgMC4wMDc0NTciLCBcCi0gICAgICAgICAgIjAuMDA3NDUsIDAuMDA3NDYzLCAwLjAwNzQ2NCwgMC4wMDc0NjUsIDAuMDA3NDY1LCAwLjAwNzQ2NCwgMC4wMDc0NjUiLCBcCi0gICAgICAgICAgIjAuMDA3NDcxLCAwLjAwNzQ4NCwgMC4wMDc0ODUsIDAuMDA3NDg2LCAwLjAwNzQ4OCwgMC4wMDc0ODUsIDAuMDA3NDg2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0MjMzLCAwLjAwNDI3LCAwLjAwNDI3NSwgMC4wMDQyNzcsIDAuMDA0Mjc4LCAwLjAwNDI3OSwgMC4wMDQyNzkiLCBcCi0gICAgICAgICAgIjAuMDA0MTk3LCAwLjAwNDI0NSwgMC4wMDQyNTIsIDAuMDA0MjU1LCAwLjAwNDI1NywgMC4wMDQyNTgsIDAuMDA0MjU4IiwgXAotICAgICAgICAgICIwLjAwNDE3NCwgMC4wMDQyMzcsIDAuMDA0MjQ2LCAwLjAwNDI1MSwgMC4wMDQyNTQsIDAuMDA0MjU1LCAwLjAwNDI1NiIsIFwKLSAgICAgICAgICAiMC4wMDQxNjYsIDAuMDA0MjM3LCAwLjAwNDI0OSwgMC4wMDQyNTUsIDAuMDA0MjU5LCAwLjAwNDI2MSwgMC4wMDQyNjIiLCBcCi0gICAgICAgICAgIjAuMDA0MTY3LCAwLjAwNDI0NCwgMC4wMDQyNTcsIDAuMDA0MjY1LCAwLjAwNDI2OSwgMC4wMDQyNzIsIDAuMDA0MjczIiwgXAotICAgICAgICAgICIwLjAwNDE2NSwgMC4wMDQyNDUsIDAuMDA0MjYxLCAwLjAwNDI2OSwgMC4wMDQyNzYsIDAuMDA0Mjc3LCAwLjAwNDI4MSIsIFwKLSAgICAgICAgICAiMC4wMDQxNzUsIDAuMDA0MjYyLCAwLjAwNDI3OSwgMC4wMDQyODksIDAuMDA0Mjk0LCAwLjAwNDI5NywgMC4wMDQzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2MTQ1LCAwLjAwNjE0NSwgMC4wMDYxNDYsIDAuMDA2MTQ2LCAwLjAwNjE0NCwgMC4wMDYxNDQsIDAuMDA2MTQzIiwgXAotICAgICAgICAgICIwLjAwNjExMSwgMC4wMDYxMjUsIDAuMDA2MTI2LCAwLjAwNjEyNywgMC4wMDYxMjYsIDAuMDA2MTI3LCAwLjAwNjEyNiIsIFwKLSAgICAgICAgICAiMC4wMDYwOTYsIDAuMDA2MTE3LCAwLjAwNjEyMSwgMC4wMDYxMjEsIDAuMDA2MTIsIDAuMDA2MTIsIDAuMDA2MTIiLCBcCi0gICAgICAgICAgIjAuMDA2MDg0LCAwLjAwNjExMSwgMC4wMDYxMTYsIDAuMDA2MTE5LCAwLjAwNjExOSwgMC4wMDYxMiwgMC4wMDYxMTkiLCBcCi0gICAgICAgICAgIjAuMDA2MTA5LCAwLjAwNjExNywgMC4wMDYxMjEsIDAuMDA2MTIyLCAwLjAwNjEyMSwgMC4wMDYxMjIsIDAuMDA2MTIxIiwgXAotICAgICAgICAgICIwLjAwNjEzNSwgMC4wMDYxMjMsIDAuMDA2MTI0LCAwLjAwNjEyNCwgMC4wMDYxMjIsIDAuMDA2MTI0LCAwLjAwNjEyNCIsIFwKLSAgICAgICAgICAiMC4wMDYxNjksIDAuMDA2MTQsIDAuMDA2MTMxLCAwLjAwNjEyOCwgMC4wMDYxMjgsIDAuMDA2MTI1LCAwLjAwNjEyNyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTU0MiwgMC4wMDE1NTgsIDAuMDAxNTYsIDAuMDAxNTYxLCAwLjAwMTU2MSwgMC4wMDE1NjEsIDAuMDAxNTYyIiwgXAotICAgICAgICAgICIwLjAwMTQ3OCwgMC4wMDE1NCwgMC4wMDE1NDksIDAuMDAxNTUzLCAwLjAwMTU1NiwgMC4wMDE1NTcsIDAuMDAxNTU3IiwgXAotICAgICAgICAgICIwLjAwMTQzLCAwLjAwMTUyMSwgMC4wMDE1MzYsIDAuMDAxNTQ1LCAwLjAwMTU0OSwgMC4wMDE1NTIsIDAuMDAxNTU0IiwgXAotICAgICAgICAgICIwLjAwMTQwMSwgMC4wMDE1MDIsIDAuMDAxNTIzLCAwLjAwMTUzNSwgMC4wMDE1NDEsIDAuMDAxNTQ2LCAwLjAwMTU0OCIsIFwKLSAgICAgICAgICAiMC4wMDEzODIsIDAuMDAxNDg4LCAwLjAwMTUxMiwgMC4wMDE1MjcsIDAuMDAxNTM1LCAwLjAwMTU0LCAwLjAwMTU0NCIsIFwKLSAgICAgICAgICAiMC4wMDEzNjQsIDAuMDAxNDY3LCAwLjAwMTQ5NiwgMC4wMDE1MTUsIDAuMDAxNTI1LCAwLjAwMTUzMiwgMC4wMDE1MzciLCBcCi0gICAgICAgICAgIjAuMDAxMzU1LCAwLjAwMTQ1NCwgMC4wMDE0ODQsIDAuMDAxNTA1LCAwLjAwMTUxNywgMC4wMDE1MjUsIDAuMDAxNTMxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0OTk1LCAwLjAwNSwgMC4wMDUsIDAuMDA1LCAwLjAwNSwgMC4wMDUsIDAuMDA0OTk5IiwgXAotICAgICAgICAgICIwLjAwNDk4MiwgMC4wMDUwMDksIDAuMDA1MDEyLCAwLjAwNTAxNCwgMC4wMDUwMTQsIDAuMDA1MDE1LCAwLjAwNTAxNiIsIFwKLSAgICAgICAgICAiMC4wMDQ5NjUsIDAuMDA1MDA3LCAwLjAwNTAxMiwgMC4wMDUwMTYsIDAuMDA1MDE0LCAwLjAwNTAxOCwgMC4wMDUwMTkiLCBcCi0gICAgICAgICAgIjAuMDA0OTUzLCAwLjAwNSwgMC4wMDUwMDgsIDAuMDA1MDEzLCAwLjAwNTAxNSwgMC4wMDUwMTcsIDAuMDA1MDE5IiwgXAotICAgICAgICAgICIwLjAwNDk3NSwgMC4wMDUwMDUsIDAuMDA1MDEyLCAwLjAwNTAxNiwgMC4wMDUwMTcsIDAuMDA1MDE3LCAwLjAwNTAxNyIsIFwKLSAgICAgICAgICAiMC4wMDQ5OTgsIDAuMDA1MDA5LCAwLjAwNTAxNCwgMC4wMDUwMTgsIDAuMDA1MDE4LCAwLjAwNTAyLCAwLjAwNTAyIiwgXAotICAgICAgICAgICIwLjAwNTAzMSwgMC4wMDUwMjIsIDAuMDA1MDIsIDAuMDA1MDIyLCAwLjAwNTAyLCAwLjAwNTAyLCAwLjAwNTAyMiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTU0MiwgMC4wMDE1NTgsIDAuMDAxNTYsIDAuMDAxNTYxLCAwLjAwMTU2MSwgMC4wMDE1NjIsIDAuMDAxNTUiLCBcCi0gICAgICAgICAgIjAuMDAxNDc4LCAwLjAwMTU0LCAwLjAwMTU0OSwgMC4wMDE1NTMsIDAuMDAxNTU2LCAwLjAwMTU1NywgMC4wMDE1NTgiLCBcCi0gICAgICAgICAgIjAuMDAxNDMsIDAuMDAxNTIsIDAuMDAxNTM1LCAwLjAwMTU0NCwgMC4wMDE1NDgsIDAuMDAxNTUxLCAwLjAwMTU1MyIsIFwKLSAgICAgICAgICAiMC4wMDE0MDIsIDAuMDAxNTAzLCAwLjAwMTUyNCwgMC4wMDE1MzUsIDAuMDAxNTQyLCAwLjAwMTU0NiwgMC4wMDE1NDkiLCBcCi0gICAgICAgICAgIjAuMDAxMzg0LCAwLjAwMTQ4OCwgMC4wMDE1MTIsIDAuMDAxNTI3LCAwLjAwMTUzNSwgMC4wMDE1NCwgMC4wMDE1NDQiLCBcCi0gICAgICAgICAgIjAuMDAxMzY5LCAwLjAwMTQ2OCwgMC4wMDE0OTcsIDAuMDAxNTE1LCAwLjAwMTUyNiwgMC4wMDE1MzIsIDAuMDAxNTM3IiwgXAotICAgICAgICAgICIwLjAwMTM2NywgMC4wMDE0NTcsIDAuMDAxNDg2LCAwLjAwMTUwNiwgMC4wMDE1MTgsIDAuMDAxNTI2LCAwLjAwMTUzMiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkQiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzc3OSwgMC4wMDM3OTIsIDAuMDAzNzk0LCAwLjAwMzc5NCwgMC4wMDM3OTUsIDAuMDAzNzk1LCAwLjAwMzc5NSIsIFwKLSAgICAgICAgICAiMC4wMDM3NzEsIDAuMDAzODE4LCAwLjAwMzgyNCwgMC4wMDM4MjcsIDAuMDAzODI0LCAwLjAwMzgzLCAwLjAwMzgyNSIsIFwKLSAgICAgICAgICAiMC4wMDM3NTMsIDAuMDAzODA5LCAwLjAwMzgyMiwgMC4wMDM4MjYsIDAuMDAzODI5LCAwLjAwMzgzLCAwLjAwMzgzMSIsIFwKLSAgICAgICAgICAiMC4wMDM3NDYsIDAuMDAzODEyLCAwLjAwMzgyMywgMC4wMDM4MjksIDAuMDAzODMxLCAwLjAwMzgzNSwgMC4wMDM4NCIsIFwKLSAgICAgICAgICAiMC4wMDM3NDYsIDAuMDAzODA5LCAwLjAwMzgyLCAwLjAwMzgyNiwgMC4wMDM4MzEsIDAuMDAzODMzLCAwLjAwMzgzNCIsIFwKLSAgICAgICAgICAiMC4wMDM3NjQsIDAuMDAzODEsIDAuMDAzODE5LCAwLjAwMzgyNywgMC4wMDM4MjksIDAuMDAzODMzLCAwLjAwMzgzNCIsIFwKLSAgICAgICAgICAiMC4wMDM3OSwgMC4wMDM4MTQsIDAuMDAzODIxLCAwLjAwMzgyOCwgMC4wMDM4MzIsIDAuMDAzODM0LCAwLjAwMzgzNSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTUzNywgMC4wMDE1NTYsIDAuMDAxNTU4LCAwLjAwMTU1OSwgMC4wMDE1NiwgMC4wMDE1NiwgMC4wMDE1NiIsIFwKLSAgICAgICAgICAiMC4wMDE0NjQsIDAuMDAxNTM1LCAwLjAwMTU0NSwgMC4wMDE1NTEsIDAuMDAxNTUzLCAwLjAwMTU1NSwgMC4wMDE1NTYiLCBcCi0gICAgICAgICAgIjAuMDAxNDI2LCAwLjAwMTUxNiwgMC4wMDE1MzIsIDAuMDAxNTQxLCAwLjAwMTU0NiwgMC4wMDE1NDksIDAuMDAxNTQ4IiwgXAotICAgICAgICAgICIwLjAwMTQwNiwgMC4wMDE0OTgsIDAuMDAxNTIsIDAuMDAxNTMyLCAwLjAwMTUzOSwgMC4wMDE1NDMsIDAuMDAxNTQ2IiwgXAotICAgICAgICAgICIwLjAwMTQxMywgMC4wMDE0ODksIDAuMDAxNTEyLCAwLjAwMTUyNiwgMC4wMDE1MzQsIDAuMDAxNTM5LCAwLjAwMTU0MyIsIFwKLSAgICAgICAgICAiMC4wMDE0MzgsIDAuMDAxNDgsIDAuMDAxNTAzLCAwLjAwMTUxOSwgMC4wMDE1MjgsIDAuMDAxNTM0LCAwLjAwMTUzOCIsIFwKLSAgICAgICAgICAiMC4wMDE0NjgsIDAuMDAxNDc5LCAwLjAwMTQ5OSwgMC4wMDE1MTQsIDAuMDAxNTI0LCAwLjAwMTUzLCAwLjAwMTUzNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBOQU5ENEJYTCAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoTkFORDRCWEwpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4xMTMyMzc7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEFOKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2MjU5NTQ7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjI1NzY3OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDYyNTk1NDsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyODIsIDAuMDAwMjU2LCAwLjAwMDI2MywgMC4wMDAyNjYsIDAuMDAwMjc4LCAwLjAwMDMwNCwgMC4wMDAzMyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTMxOCwgMC4wMDEyOTgsIDAuMDAxMjk4LCAwLjAwMTMwNiwgMC4wMDEzMTksIDAuMDAxMzQ2LCAwLjAwMTM3MSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjQ2NDAxOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDY0NjQwMTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2NDUxNTU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjI2LCAwLjAwMDIyNiwgMC4wMDAyMjYsIDAuMDAwMjI2LCAwLjAwMDIyNiwgMC4wMDAyMjYsIDAuMDAwMjI2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjI3LCAwLjAwMDIyNywgMC4wMDAyMjcsIDAuMDAwMjI3LCAwLjAwMDIyNywgMC4wMDAyMjcsIDAuMDAwMjI3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihDKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2NjIzNTI7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjYyMzUyOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDY2MTQ0MjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyMjYsIDAuMDAwMjI2LCAwLjAwMDIyNiwgMC4wMDAyMjYsIDAuMDAwMjI2LCAwLjAwMDIyNiwgMC4wMDAyMjYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyMjcsIDAuMDAwMjI3LCAwLjAwMDIyNywgMC4wMDAyMjcsIDAuMDAwMjI3LCAwLjAwMDIyNywgMC4wMDAyMjciKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEQpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY2NjAwODsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2NjU2NjY7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjY2MDA4OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDE0OCwgMC4wMDAxNDgsIDAuMDAwMTQ4LCAwLjAwMDE0OCwgMC4wMDAxNDgsIDAuMDAwMTQ4LCAwLjAwMDE0OCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDI1NywgMC4wMDAyNTcsIDAuMDAwMjU3LCAwLjAwMDI1NywgMC4wMDAyNTcsIDAuMDAwMjU3LCAwLjAwMDI1NyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjA0NTY4NDQ7Ci0gICAgZnVuY3Rpb24gOiAiKCEoKCgoIUFOKSBCKSBDKSBEKSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkFOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDA1MjYsIDAuMTE0NzMsIDAuMjQyMjA2LCAwLjQ1NDIxNCwgMC42NjYxMiwgMS4xNjEwOSwgMS40NDM5NiIsIFwKLSAgICAgICAgICAiMC4xMTA1OTUsIDAuMTI0Nzk0LCAwLjI1MjI1NCwgMC40NjQzNzQsIDAuNjc2MzE0LCAxLjE3MTA3LCAxLjQ1MzcyIiwgXAotICAgICAgICAgICIwLjEyMTM0OCwgMC4xMzU1NjEsIDAuMjYzMDMsIDAuNDc1MDQ1LCAwLjY4NzI0NSwgMS4xODE2OSwgMS40NjQ1IiwgXAotICAgICAgICAgICIwLjEzMDAxMiwgMC4xNDQyLCAwLjI3MTY1LCAwLjQ4Mzc3NiwgMC42OTU2NDEsIDEuMTkwMzEsIDEuNDczMDkiLCBcCi0gICAgICAgICAgIjAuMTM3MDQsIDAuMTUxMjMxLCAwLjI3ODY0OCwgMC40OTA3MjUsIDAuNzAyNzE0LCAxLjE5NzkzLCAxLjQ3OTY5IiwgXAotICAgICAgICAgICIwLjE0Njg4OSwgMC4xNjEwODUsIDAuMjg4NDg2LCAwLjUwMDUxNiwgMC43MTI2MzksIDEuMjA3MTIsIDEuNDg5NCIsIFwKLSAgICAgICAgICAiMC4xNTQ3MTIsIDAuMTY4OTA3LCAwLjI5NjI0MywgMC41MDgyODMsIDAuNzIwMDc1LCAxLjIxNTAzLCAxLjQ5ODIyIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE2NzgxNiwgMC4xOTY5MTIsIDAuNDU3NTMzLCAwLjg5MjIwOSwgMS4zMjczLCAyLjM0MTY2LCAyLjkyMTY5IiwgXAotICAgICAgICAgICIwLjE2Nzc4OSwgMC4xOTY5MjEsIDAuNDU3NTE3LCAwLjg5Mjc4NywgMS4zMjc0NiwgMi4zNDIwNiwgMi45MjE1NiIsIFwKLSAgICAgICAgICAiMC4xNjc5MjksIDAuMTk2NzUzLCAwLjQ1NzY4MiwgMC44OTI1OTMsIDEuMzI3MjUsIDIuMzQxNjIsIDIuOTIxNDEiLCBcCi0gICAgICAgICAgIjAuMTY3OTM2LCAwLjE5NjkxMSwgMC40NTc1MTgsIDAuODkyMjY1LCAxLjMyNjg2LCAyLjM0MTgxLCAyLjkyMTU1IiwgXAotICAgICAgICAgICIwLjE2ODA5NSwgMC4xOTY5NDEsIDAuNDU3NTksIDAuODkyNTg5LCAxLjMyNjg2LCAyLjM0MTg5LCAyLjkyMDQ3IiwgXAotICAgICAgICAgICIwLjE2ODMyLCAwLjE5NzE0MywgMC40NTc1NzUsIDAuODkyNTQzLCAxLjMyNjk2LCAyLjM0MTg4LCAyLjkyMTI0IiwgXAotICAgICAgICAgICIwLjE2ODUwNCwgMC4xOTczMTgsIDAuNDU3ODkzLCAwLjg5MjI2LCAxLjMyNjg3LCAyLjM0MTU0LCAyLjkyMTg0Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMwMjc1NSwgMC4zNTEyNjYsIDAuNzg5NTIxLCAxLjUxOTU3LCAyLjI1MDgyLCAzLjk1MTk2LCA0LjkyNDQ4IiwgXAotICAgICAgICAgICIwLjMxMjIwMSwgMC4zNjA4OTUsIDAuNzk5MDA2LCAxLjUyOSwgMi4yNTk1NSwgMy45NjE1NywgNC45MzQ0NiIsIFwKLSAgICAgICAgICAiMC4zMjE4OSwgMC4zNzA2MTQsIDAuODA4ODY3LCAxLjUzOTkxLCAyLjI2ODUzLCAzLjk3MTMzLCA0Ljk0NDA2IiwgXAotICAgICAgICAgICIwLjMyOTIwOCwgMC4zNzc4ODIsIDAuODE2MzMxLCAxLjU0NjMxLCAyLjI3NTk1LCAzLjk3ODc0LCA0Ljk1MTI3IiwgXAotICAgICAgICAgICIwLjMzNTIzOCwgMC4zODQyNTEsIDAuODIyMTQ1LCAxLjU1MzA5LCAyLjI4MzM5LCAzLjk4NTA0LCA0Ljk1NzUzIiwgXAotICAgICAgICAgICIwLjM0MzQ2MywgMC4zOTIxODcsIDAuODMwNDQyLCAxLjU2MTI2LCAyLjI5MjAyLCAzLjk5MzExLCA0Ljk2NTgyIiwgXAotICAgICAgICAgICIwLjM0OTQzNywgMC4zOTgxNDMsIDAuODM2ODQ1LCAxLjU2Nzc4LCAyLjI5NzY0LCAzLjk5OTEsIDQuOTcxOSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC41MzQxNTcsIDAuNjMwMTcyLCAxLjQ4NTA4LCAyLjkwNjc4LCA0LjMzOTQyLCA3LjY0Mjg1LCA5LjUzMjAyIiwgXAotICAgICAgICAgICIwLjUzNDY4NiwgMC42Mjk2OTEsIDEuNDgzMDMsIDIuOTA1NzYsIDQuMzM3OTIsIDcuNjQyNjksIDkuNTMwODkiLCBcCi0gICAgICAgICAgIjAuNTM0NTE0LCAwLjYyOTQyNCwgMS40ODMyNSwgMi45MTEwMiwgNC4zMjkzMywgNy42NDIxMywgOS41MzEyNSIsIFwKLSAgICAgICAgICAiMC41MzQ3MjYsIDAuNjI5NjQzLCAxLjQ4NSwgMi45MDQwOSwgNC4zMzY2MywgNy42NDE3NywgOS41MzI3NCIsIFwKLSAgICAgICAgICAiMC41MzU1OTIsIDAuNjI4ODk2LCAxLjQ4MzI0LCAyLjkxMDIsIDQuMzI1NiwgNy42NDI4NiwgOS41MzIzNyIsIFwKLSAgICAgICAgICAiMC41MzQ2NTIsIDAuNjI5NTExLCAxLjQ4MzMsIDIuOTEwMTMsIDQuMzI1MDQsIDcuNjQyMjQsIDkuNTMwOTEiLCBcCi0gICAgICAgICAgIjAuNTM0MDk4LCAwLjYzMDE0NSwgMS40ODUyNCwgMi45MDMzOCwgNC4zMzg3MywgNy42NDIwOSwgOS41MzE5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4NTQ1NiwgMC4wOTk2MDUsIDAuMjI2ODQ5LCAwLjQzODg4OSwgMC42NTA5NzksIDEuMTQ1NzMsIDEuNDI3OTUiLCBcCi0gICAgICAgICAgIjAuMDk1MjA3LCAwLjEwOTM2NCwgMC4yMzY3MDksIDAuNDQ4NjY5LCAwLjY2MDY2MywgMS4xNTUxMywgMS40MzcxOCIsIFwKLSAgICAgICAgICAiMC4xMDczNjIsIDAuMTIxNTk1LCAwLjI0ODc4NiwgMC40NTk4NTEsIDAuNjcxODQsIDEuMTY2MjEsIDEuNDQ4OTgiLCBcCi0gICAgICAgICAgIjAuMTE5NjQ4LCAwLjEzMzgxMSwgMC4yNjEwNzksIDAuNDcyOTE5LCAwLjY4MzY4MywgMS4xNzc3NiwgMS40NjA5NiIsIFwKLSAgICAgICAgICAiMC4xMzIzNDcsIDAuMTQ2MTIzLCAwLjI3MzQyNywgMC40ODUyMDIsIDAuNjk3MTcsIDEuMTg5ODksIDEuNDcyNTEiLCBcCi0gICAgICAgICAgIjAuMTUyNTAyLCAwLjE2NjU2LCAwLjI5MzA0MywgMC41MDQ5NDYsIDAuNzE2Nzg1LCAxLjIwODc3LCAxLjQ5MTY4IiwgXAotICAgICAgICAgICIwLjE2OTg5OSwgMC4xODQwODEsIDAuMzEwMjgyLCAwLjUyMjI5NCwgMC43MzM5NjEsIDEuMjI1NzQsIDEuNTA4MjUiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTY1NTkxLCAwLjE5NDU4LCAwLjQ1NTU5OSwgMC44OTAwOCwgMS4zMjUxMywgMi4zMzk3NiwgMi45MTg4NyIsIFwKLSAgICAgICAgICAiMC4xNjU2MDYsIDAuMTk0NTg3LCAwLjQ1NTUwOSwgMC44OTAwNTYsIDEuMzI1MDUsIDIuMzM5MTYsIDIuOTIwMDMiLCBcCi0gICAgICAgICAgIjAuMTY2ODU5LCAwLjE5NTEzNiwgMC40NTU2MzQsIDAuODkwMDcyLCAxLjMyNTEsIDIuMzM5MDgsIDIuOTE5NDIiLCBcCi0gICAgICAgICAgIjAuMTcwOTgyLCAwLjE5ODQ2MywgMC40NTUzNTgsIDAuODkwMDI1LCAxLjMyNTM1LCAyLjMzODg0LCAyLjkxOTYzIiwgXAotICAgICAgICAgICIwLjE3NjQxNSwgMC4yMDM1NTksIDAuNDU1NzcyLCAwLjg5MDMsIDEuMzI1MDIsIDIuMzM5NjksIDIuOTE4ODEiLCBcCi0gICAgICAgICAgIjAuMTg3MzQzLCAwLjIxMzI3OCwgMC40NTkzMDgsIDAuODkwMzA5LCAxLjMyNTIsIDIuMzM5MDksIDIuOTE4MjYiLCBcCi0gICAgICAgICAgIjAuMTk4Mzg3LCAwLjIyMzM2OSwgMC40NjQ2NzQsIDAuODkwMzk2LCAxLjMyNDk3LCAyLjMzODc0LCAyLjkxODkzIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI4NzM0NSwgMC4zMzU5NDUsIDAuNzc0NTMyLCAxLjUwNTAxLCAyLjIzNDI5LCAzLjkzNjUzLCA0LjkwOTA0IiwgXAotICAgICAgICAgICIwLjI5NTQsIDAuMzQ0MzQ2LCAwLjc4MjMzMywgMS41MTMwNCwgMi4yNDI0OSwgMy45NDUxNCwgNC45MTc2NiIsIFwKLSAgICAgICAgICAiMC4zMDQ0NywgMC4zNTMyNDQsIDAuNzkxOTE1LCAxLjUyMjk4LCAyLjI1MjA4LCAzLjk1NDMsIDQuOTI2ODgiLCBcCi0gICAgICAgICAgIjAuMzEzMzE4LCAwLjM2MjE0LCAwLjgwMDg1NiwgMS41MzA3MywgMi4yNjEzOCwgMy45NjMzMSwgNC45MzYyMSIsIFwKLSAgICAgICAgICAiMC4zMjIxODIsIDAuMzcxMTIsIDAuODEwMDUzLCAxLjUzOTg0LCAyLjI2OTksIDMuOTcyNCwgNC45NDQ5NiIsIFwKLSAgICAgICAgICAiMC4zMzYyNzcsIDAuMzg1MjE5LCAwLjgyMzc4NywgMS41NTQ0MSwgMi4yODQ1LCAzLjk4NzAzLCA0Ljk1OTQ5IiwgXAotICAgICAgICAgICIwLjM0ODY4OCwgMC4zOTc2MjQsIDAuODM2MjM5LCAxLjU2NjU1LCAyLjI5NzU5LCAzLjk5OTYyLCA0Ljk3MjAzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjUzNTQzNSwgMC42MzAxMzgsIDEuNDg1NzcsIDIuOTEwODIsIDQuMzM3NTYsIDcuNjQyNDksIDkuNTMyOTYiLCBcCi0gICAgICAgICAgIjAuNTM0NjAxLCAwLjYyODkzMiwgMS40ODMxNiwgMi45MDk5LCA0LjMyODc2LCA3LjY0Mjg2LCA5LjUzMTczIiwgXAotICAgICAgICAgICIwLjUzNDU3MiwgMC42Mjk1NDYsIDEuNDg1MjUsIDIuOTAzNDksIDQuMzM3NjQsIDcuNjQyNTksIDkuNTMyMzUiLCBcCi0gICAgICAgICAgIjAuNTM0NTkzLCAwLjYyOTM5OSwgMS40ODUzMSwgMi45MDYyNiwgNC4zMzgxNywgNy42NDIxNSwgOS41MzEyNSIsIFwKLSAgICAgICAgICAiMC41MzU1NTQsIDAuNjI4ODQ1LCAxLjQ4MTgyLCAyLjkwNTg4LCA0LjMyODU3LCA3LjY0MTc1LCA5LjUzMjY2IiwgXAotICAgICAgICAgICIwLjUzNjY3OCwgMC42MjkyODYsIDEuNDgzMjgsIDIuOTA2MTEsIDQuMzI4ODgsIDcuNjQyMzgsIDkuNTMxNDMiLCBcCi0gICAgICAgICAgIjAuNTM3MTMxLCAwLjYzMTQ3NSwgMS40ODU4NCwgMi45MDU2OCwgNC4zMzg0NSwgNy42MzgxNywgOS41MzI0NyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODM5MzIsIDAuMDk4MTA2LCAwLjIyNTMxNSwgMC40MzcxNjYsIDAuNjQ5MjQ2LCAxLjE0Mzk4LCAxLjQyNjEyIiwgXAotICAgICAgICAgICIwLjA5Mzk1MywgMC4xMDgwNjEsIDAuMjM1MjIxLCAwLjQ0NzEwMSwgMC42NTg5MzIsIDEuMTUzNDIsIDEuNDM2NDQiLCBcCi0gICAgICAgICAgIjAuMTA1OTE5LCAwLjEyMDEzNywgMC4yNDcyMzcsIDAuNDU4MjA0LCAwLjY3MDM0MSwgMS4xNjQ2OSwgMS40NDcxNCIsIFwKLSAgICAgICAgICAiMC4xMTgyMDIsIDAuMTMyMzM3LCAwLjI1OTQ4OSwgMC40NzEzMjEsIDAuNjgyMDUyLCAxLjE3NjA5LCAxLjQ1OTI3IiwgXAotICAgICAgICAgICIwLjEzMDkwMSwgMC4xNDQ2MzQsIDAuMjcxODU5LCAwLjQ4MzcxMywgMC42OTU1NTYsIDEuMTg4MiwgMS40NzA4MiIsIFwKLSAgICAgICAgICAiMC4xNTA5NjMsIDAuMTY1MDc1LCAwLjI5MTM5NywgMC41MDMyODgsIDAuNzE1MTE1LCAxLjIwNzg2LCAxLjQ4OTU1IiwgXAotICAgICAgICAgICIwLjE2ODM3MiwgMC4xODI1OTMsIDAuMzA4NjksIDAuNTIwNjcsIDAuNzMyMjg4LCAxLjIyNDIsIDEuNTA3MjMiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTYzODEzLCAwLjE5MjgyNSwgMC40NTM3NSwgMC44ODgzNywgMS4zMjI5OSwgMi4zMzY5MSwgMi45MTYzOCIsIFwKLSAgICAgICAgICAiMC4xNjM4NjQsIDAuMTkyODg4LCAwLjQ1MzU2NiwgMC44ODgzNTYsIDEuMzIzMTYsIDIuMzM3MjMsIDIuOTE2OTIiLCBcCi0gICAgICAgICAgIjAuMTY1MDU3LCAwLjE5MzQzNiwgMC40NTM3MSwgMC44ODg1NjksIDEuMzIzMjEsIDIuMzM3MjYsIDIuOTE2NDMiLCBcCi0gICAgICAgICAgIjAuMTY5MjIyLCAwLjE5NjczNiwgMC40NTM1NjcsIDAuODg4MzQ4LCAxLjMyMzIzLCAyLjMzNjI1LCAyLjkxNjczIiwgXAotICAgICAgICAgICIwLjE3NDgxNiwgMC4yMDE4MzUsIDAuNDU0MDk1LCAwLjg4ODcwNSwgMS4zMjI4MywgMi4zMzc0OSwgMi45MTY1OSIsIFwKLSAgICAgICAgICAiMC4xODU4MSwgMC4yMTE3NzgsIDAuNDU3Njg2LCAwLjg4ODQzNCwgMS4zMjMxNywgMi4zMzc3NCwgMi45MTU1NyIsIFwKLSAgICAgICAgICAiMC4xOTcwNTEsIDAuMjIyMDA2LCAwLjQ2Mjk5OSwgMC44ODgzODEsIDEuMzIzMDksIDIuMzM2NjEsIDIuOTE2NzUiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjgzMDM1LCAwLjMzMTg4NCwgMC43Njk4MjUsIDEuNDk5OTUsIDIuMjMxMDEsIDMuOTMyMzcsIDQuOTA0OTgiLCBcCi0gICAgICAgICAgIjAuMjkxMzIsIDAuMzM5OTg4LCAwLjc3ODQyMSwgMS41MDg1NSwgMi4yMzk4MSwgMy45NDA5NywgNC45MTM0MyIsIFwKLSAgICAgICAgICAiMC4zMDEzNDQsIDAuMzUwMTA0LCAwLjc4ODU5OCwgMS41MTk2MywgMi4yNDg0NSwgMy45NTEyMSwgNC45MjM3NSIsIFwKLSAgICAgICAgICAiMC4zMTE0ODUsIDAuMzYwMzQsIDAuNzk4NjkyLCAxLjUyOTI2LCAyLjI2MDQ5LCAzLjk2MTY0LCA0LjkzNDI2IiwgXAotICAgICAgICAgICIwLjMyMTU3MSwgMC4zNzA0NTMsIDAuODA5MTM0LCAxLjUzOTIyLCAyLjI2OTAxLCAzLjk3MTkyLCA0Ljk0NDUiLCBcCi0gICAgICAgICAgIjAuMzM3ODMzLCAwLjM4NjgwOSwgMC44MjU1ODIsIDEuNTU1NjIsIDIuMjg1NzksIDMuOTg4NzQsIDQuOTYxMTUiLCBcCi0gICAgICAgICAgIjAuMzUyMjQsIDAuNDAxMzQ0LCAwLjgzOTkxNSwgMS41NzA4MiwgMi4zMDE4NCwgNC4wMDMwMiwgNC45NzU2OCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC41MzQ2MywgMC42MzA1NzgsIDEuNDgzNSwgMi45MDY2MSwgNC4zMzkwNSwgNy42NDI3OSwgOS41MzE5NiIsIFwKLSAgICAgICAgICAiMC41MzUyNjcsIDAuNjI5MTAxLCAxLjQ4NSwgMi45MDkxNSwgNC4zMjQ3OSwgNy42NDI4OCwgOS41MzI2OCIsIFwKLSAgICAgICAgICAiMC41MzQ2NTMsIDAuNjI5NTk3LCAxLjQ4MzMsIDIuOTEwODQsIDQuMzI5MTMsIDcuNjQxNzgsIDkuNTMyNzQiLCBcCi0gICAgICAgICAgIjAuNTM1NTcsIDAuNjI4OTYsIDEuNDgzMjksIDIuOTA5MzEsIDQuMzI0ODcsIDcuNjQyMjgsIDkuNTMxODkiLCBcCi0gICAgICAgICAgIjAuNTM1NTU1LCAwLjYyODk2MiwgMS40ODMzMiwgMi45MDY5NSwgNC4zMzY0NywgNy42NDIyMywgOS41MzI0NCIsIFwKLSAgICAgICAgICAiMC41MzY4MzcsIDAuNjMxMjMsIDEuNDg2MjksIDIuOTExNDEsIDQuMzI5NDcsIDcuNjQyOTMsIDkuNTMxNDQiLCBcCi0gICAgICAgICAgIjAuNTM4MDYxLCAwLjYzMTQ1OSwgMS40ODMzMSwgMi45MDQyNywgNC4zMzkxNCwgNy42NDE5NiwgOS41MzI2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkQiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4MjI4MiwgMC4wOTY0MzMsIDAuMjIzNjI2LCAwLjQzNTQ1NCwgMC42NDcyMTUsIDEuMTQxNzksIDEuNDI1NTciLCBcCi0gICAgICAgICAgIjAuMDkyMTcxLCAwLjEwNjA4MSwgMC4yMzM0MzgsIDAuNDQ1MjkyLCAwLjY1NzExMiwgMS4xNTE0NSwgMS40MzQ3MiIsIFwKLSAgICAgICAgICAiMC4xMDQzOTUsIDAuMTE4NTM0LCAwLjI0NTY1MSwgMC40NTY2ODEsIDAuNjY4Njg5LCAxLjE2MjY4LCAxLjQ0NjgxIiwgXAotICAgICAgICAgICIwLjExNjcxMywgMC4xMzA4MzksIDAuMjU4MDYxLCAwLjQ2OTgwNSwgMC42ODA2OTYsIDEuMTc1MTUsIDEuNDU3NDUiLCBcCi0gICAgICAgICAgIjAuMTI5NTM5LCAwLjE0MzYwMywgMC4yNzA0NTYsIDAuNDgyMDk0LCAwLjY5Mjc1NSwgMS4xODY5NiwgMS40Njk1MyIsIFwKLSAgICAgICAgICAiMC4xNDk1OTQsIDAuMTYzNzQzLCAwLjI5MDAzNCwgMC41MDIwMjEsIDAuNzEzODcxLCAxLjIwNzY0LCAxLjQ4OTAyIiwgXAotICAgICAgICAgICIwLjE2NjkyNiwgMC4xODEyNjYsIDAuMzA3MzYyLCAwLjUxOTQyNSwgMC43MzA5NjcsIDEuMjIzNzIsIDEuNTA3MzIiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTYyMjc4LCAwLjE5MTAzMywgMC40NTIyMDEsIDAuODg4MDY0LCAxLjMyNDE1LCAyLjMzNjE2LCAyLjkxNzEzIiwgXAotICAgICAgICAgICIwLjE2MjE0NywgMC4xOTExMzgsIDAuNDUyNjY4LCAwLjg4NjU3NywgMS4zMjEyOCwgMi4zMzU2MiwgMi45MTY3MSIsIFwKLSAgICAgICAgICAiMC4xNjMzNzIsIDAuMTkxNjY0LCAwLjQ1MjYzMywgMC44ODcyNDEsIDEuMzIxNTgsIDIuMzM5NDIsIDIuOTE2OTMiLCBcCi0gICAgICAgICAgIjAuMTY3Nzg4LCAwLjE5NTAxNSwgMC40NTE5MzgsIDAuODg2NTcsIDEuMzIyNDMsIDIuMzM2MTUsIDIuOTIwMTYiLCBcCi0gICAgICAgICAgIjAuMTczMDgzLCAwLjE5OTc4MywgMC40NTMxOTQsIDAuODg4MzQsIDEuMzIxNTgsIDIuMzM1MjUsIDIuOTE5OTYiLCBcCi0gICAgICAgICAgIjAuMTg0MDc1LCAwLjIxMDAxNSwgMC40NTY3MzQsIDAuODg3MTMyLCAxLjMyMTYsIDIuMzM3MTIsIDIuOTE1MjYiLCBcCi0gICAgICAgICAgIjAuMTk1MzQsIDAuMjIwMTQyLCAwLjQ2MjEwMywgMC44ODc5MzMsIDEuMzIzMzIsIDIuMzM2MTgsIDIuOTE3MTEiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjc2NTIyLCAwLjMyNTQwOCwgMC43NjMzNDMsIDEuNDk0NDIsIDIuMjIzMDEsIDMuOTI1NTYsIDQuODk4NDQiLCBcCi0gICAgICAgICAgIjAuMjg0NzM5LCAwLjMzMzM0NiwgMC43NzE1MzEsIDEuNTAyMzMsIDIuMjMxOTEsIDMuOTM0NDEsIDQuOTA2OTciLCBcCi0gICAgICAgICAgIjAuMjk1MDA4LCAwLjM0MzY5NSwgMC43ODIyNzcsIDEuNTEyNTYsIDIuMjQyOTQsIDMuOTQ0OCwgNC45MTc2MyIsIFwKLSAgICAgICAgICAiMC4zMDUxNDIsIDAuMzUzODIxLCAwLjc5MjgwNCwgMS41MjIzMywgMi4yNTMwNCwgMy45NTQ5NywgNC45Mjc0NyIsIFwKLSAgICAgICAgICAiMC4zMTUzODEsIDAuMzY0MTc0LCAwLjgwMjY3MSwgMS41MzI4OSwgMi4yNjQwNywgMy45NjU2LCA0LjkzNzk5IiwgXAotICAgICAgICAgICIwLjMzMjAzMiwgMC4zODA2NDQsIDAuODE5MTg4LCAxLjU1MDU3LCAyLjI3OTg5LCAzLjk4MjE2LCA0Ljk1NDc0IiwgXAotICAgICAgICAgICIwLjM0NjU1NSwgMC4zOTU0MzgsIDAuODMzNjUzLCAxLjU2MzgzLCAyLjI5Mzc1LCAzLjk5NjM4LCA0Ljk2OTE0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjUzNTU5LCAwLjYzMDQ3NSwgMS40ODMxNywgMi45MDMyLCA0LjMzNjM3LCA3LjY0MjM5LCA5LjUzMjk4IiwgXAotICAgICAgICAgICIwLjUzNTIyNywgMC42MzA2MDMsIDEuNDgzMTcsIDIuOTA5ODksIDQuMzI4NTksIDcuNjQyODQsIDkuNTMyMDIiLCBcCi0gICAgICAgICAgIjAuNTM0MTkxLCAwLjYyOTUyMiwgMS40ODQ5NCwgMi45MDkwNCwgNC4zMzgzLCA3LjY0MjIyLCA5LjUzMDk5IiwgXAotICAgICAgICAgICIwLjUzNTE2MywgMC42Mjk1MTEsIDEuNDg1NzgsIDIuOTA2MDksIDQuMzM4MDksIDcuNjQyMTIsIDkuNTMyMzYiLCBcCi0gICAgICAgICAgIjAuNTM0MTU4LCAwLjYzMDEwNSwgMS40ODMwOSwgMi45MDU5NCwgNC4zMzksIDcuNjQyODYsIDkuNTMyNjUiLCBcCi0gICAgICAgICAgIjAuNTM3MzczLCAwLjYzMTA4OCwgMS40ODM0NSwgMi45MDMyOSwgNC4zMjg4NCwgNy42NDI4MywgOS41MzIxMSIsIFwKLSAgICAgICAgICAiMC41NDAzNywgMC42MzM0MywgMS40ODMyMSwgMi45MDYxMSwgNC4zMzY2MywgNy42NDE1NywgOS41MzI0NiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkFOIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDIwNDksIDAuMDAyMDQ5LCAwLjAwMjA0OSwgMC4wMDIwNDksIDAuMDAyMDQ5LCAwLjAwMjA0OCwgMC4wMDIwNDciLCBcCi0gICAgICAgICAgIjAuMDAyMDIxLCAwLjAwMjAyMSwgMC4wMDIwMjEsIDAuMDAyMDIxLCAwLjAwMjAyMSwgMC4wMDIwMiwgMC4wMDIwMTkiLCBcCi0gICAgICAgICAgIjAuMDAyMDI2LCAwLjAwMjAyNiwgMC4wMDIwMjcsIDAuMDAyMDI3LCAwLjAwMjAyNywgMC4wMDIwMjYsIDAuMDAyMDI1IiwgXAotICAgICAgICAgICIwLjAwMjAyOSwgMC4wMDIwMjksIDAuMDAyMDMsIDAuMDAyMDMsIDAuMDAyMDMsIDAuMDAyMDI5LCAwLjAwMjAyOSIsIFwKLSAgICAgICAgICAiMC4wMDIwNDMsIDAuMDAyMDQ0LCAwLjAwMjA0NSwgMC4wMDIwNDQsIDAuMDAyMDQ0LCAwLjAwMjA0MywgMC4wMDIwNDMiLCBcCi0gICAgICAgICAgIjAuMDAyMDcxLCAwLjAwMjA3MSwgMC4wMDIwNzIsIDAuMDAyMDcxLCAwLjAwMjA3MSwgMC4wMDIwNzEsIDAuMDAyMDciLCBcCi0gICAgICAgICAgIjAuMDAyMDk1LCAwLjAwMjA5NiwgMC4wMDIwOTYsIDAuMDAyMDk0LCAwLjAwMjA5MywgMC4wMDIwOTUsIDAuMDAyMDk1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyMTgzLCAwLjAwMjE4MywgMC4wMDIxODQsIDAuMDAyMTg1LCAwLjAwMjE4NSwgMC4wMDIxODUsIDAuMDAyMTg1IiwgXAotICAgICAgICAgICIwLjAwMjE2MywgMC4wMDIxNjQsIDAuMDAyMTY2LCAwLjAwMjE2NywgMC4wMDIxNjcsIDAuMDAyMTY3LCAwLjAwMjE2NiIsIFwKLSAgICAgICAgICAiMC4wMDIxNiwgMC4wMDIxNjEsIDAuMDAyMTY1LCAwLjAwMjE2NiwgMC4wMDIxNjYsIDAuMDAyMTY3LCAwLjAwMjE2NiIsIFwKLSAgICAgICAgICAiMC4wMDIxNjksIDAuMDAyMTcsIDAuMDAyMTc0LCAwLjAwMjE3NiwgMC4wMDIxNzYsIDAuMDAyMTc3LCAwLjAwMjE3NyIsIFwKLSAgICAgICAgICAiMC4wMDIxNzgsIDAuMDAyMTgxLCAwLjAwMjE4NCwgMC4wMDIxODgsIDAuMDAyMTg5LCAwLjAwMjE4NywgMC4wMDIxODkiLCBcCi0gICAgICAgICAgIjAuMDAyMjAzLCAwLjAwMjIwNSwgMC4wMDIyMTEsIDAuMDAyMjEzLCAwLjAwMjIxMiwgMC4wMDIyMTIsIDAuMDAyMjEzIiwgXAotICAgICAgICAgICIwLjAwMjIyNywgMC4wMDIyMjksIDAuMDAyMjM1LCAwLjAwMjIzNSwgMC4wMDIyMzksIDAuMDAyMjQsIDAuMDAyMjM3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxNzAzLCAwLjAwMTcwMywgMC4wMDE3MDMsIDAuMDAxNzAzLCAwLjAwMTcwMywgMC4wMDE3MDIsIDAuMDAxNzAyIiwgXAotICAgICAgICAgICIwLjAwMTY5NywgMC4wMDE2OTcsIDAuMDAxNjk5LCAwLjAwMTY5OSwgMC4wMDE2OTksIDAuMDAxNjk5LCAwLjAwMTY5OCIsIFwKLSAgICAgICAgICAiMC4wMDE2OTYsIDAuMDAxNjk2LCAwLjAwMTY5OCwgMC4wMDE2OTcsIDAuMDAxNjk3LCAwLjAwMTY5OCwgMC4wMDE2OTgiLCBcCi0gICAgICAgICAgIjAuMDAxNjk2LCAwLjAwMTY5NiwgMC4wMDE2OTgsIDAuMDAxNjk4LCAwLjAwMTY5OCwgMC4wMDE2OTcsIDAuMDAxNjk3IiwgXAotICAgICAgICAgICIwLjAwMTY5OCwgMC4wMDE2OTYsIDAuMDAxNjk4LCAwLjAwMTY5OCwgMC4wMDE2OTksIDAuMDAxNjk3LCAwLjAwMTY5NyIsIFwKLSAgICAgICAgICAiMC4wMDE3MDIsIDAuMDAxNzAyLCAwLjAwMTcsIDAuMDAxNjk5LCAwLjAwMTY5OSwgMC4wMDE2OTcsIDAuMDAxNjk3IiwgXAotICAgICAgICAgICIwLjAwMTcwOSwgMC4wMDE3MDcsIDAuMDAxNzAyLCAwLjAwMTcsIDAuMDAxNjk5LCAwLjAwMTY5OCwgMC4wMDE2OTgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDA2MjcsIDAuMDAwNjI3LCAwLjAwMDYyOCwgMC4wMDA2MjgsIDAuMDAwNjI4LCAwLjAwMDYyOCwgMC4wMDA2MjgiLCBcCi0gICAgICAgICAgIjAuMDAwNjE4LCAwLjAwMDYyLCAwLjAwMDYyNSwgMC4wMDA2MjcsIDAuMDAwNjI3LCAwLjAwMDYyOCwgMC4wMDA2MjgiLCBcCi0gICAgICAgICAgIjAuMDAwNjEsIDAuMDAwNjEyLCAwLjAwMDYyMSwgMC4wMDA2MjUsIDAuMDAwNjI2LCAwLjAwMDYyNywgMC4wMDA2MjciLCBcCi0gICAgICAgICAgIjAuMDAwNjA0LCAwLjAwMDYwNywgMC4wMDA2MTgsIDAuMDAwNjIzLCAwLjAwMDYyNSwgMC4wMDA2MjYsIDAuMDAwNjI3IiwgXAotICAgICAgICAgICIwLjAwMDU5OSwgMC4wMDA2MDIsIDAuMDAwNjE1LCAwLjAwMDYyMSwgMC4wMDA2MjMsIDAuMDAwNjI2LCAwLjAwMDYyNiIsIFwKLSAgICAgICAgICAiMC4wMDA1OTIsIDAuMDAwNTk1LCAwLjAwMDYxLCAwLjAwMDYxOCwgMC4wMDA2MjEsIDAuMDAwNjI0LCAwLjAwMDYyNSIsIFwKLSAgICAgICAgICAiMC4wMDA1ODksIDAuMDAwNTkyLCAwLjAwMDYwNywgMC4wMDA2MTYsIDAuMDAwNjIsIDAuMDAwNjIzLCAwLjAwMDYyNCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTQ2NCwgMC4wMDE0NjQsIDAuMDAxNDY0LCAwLjAwMTQ2NCwgMC4wMDE0NjQsIDAuMDAxNDY0LCAwLjAwMTQ2NCIsIFwKLSAgICAgICAgICAiMC4wMDE0NjQsIDAuMDAxNDY1LCAwLjAwMTQ2NywgMC4wMDE0NjgsIDAuMDAxNDY4LCAwLjAwMTQ2OCwgMC4wMDE0NjkiLCBcCi0gICAgICAgICAgIjAuMDAxNDYzLCAwLjAwMTQ2NCwgMC4wMDE0NjcsIDAuMDAxNDY4LCAwLjAwMTQ2OCwgMC4wMDE0NjksIDAuMDAxNDY5IiwgXAotICAgICAgICAgICIwLjAwMTQ2MywgMC4wMDE0NjQsIDAuMDAxNDY3LCAwLjAwMTQ2OCwgMC4wMDE0NjksIDAuMDAxNDY5LCAwLjAwMTQ2OSIsIFwKLSAgICAgICAgICAiMC4wMDE0NjQsIDAuMDAxNDY0LCAwLjAwMTQ2NywgMC4wMDE0NjgsIDAuMDAxNDY4LCAwLjAwMTQ2OSwgMC4wMDE0NjkiLCBcCi0gICAgICAgICAgIjAuMDAxNDY4LCAwLjAwMTQ2OCwgMC4wMDE0NjgsIDAuMDAxNDY5LCAwLjAwMTQ2OSwgMC4wMDE0NjksIDAuMDAxNDY5IiwgXAotICAgICAgICAgICIwLjAwMTQ3MywgMC4wMDE0NzMsIDAuMDAxNDcsIDAuMDAxNDcsIDAuMDAxNDcsIDAuMDAxNDcsIDAuMDAxNDciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDA2MjcsIDAuMDAwNjI3LCAwLjAwMDYyOCwgMC4wMDA2MjgsIDAuMDAwNjI4LCAwLjAwMDYyOCwgMC4wMDA2MjgiLCBcCi0gICAgICAgICAgIjAuMDAwNjE4LCAwLjAwMDYyLCAwLjAwMDYyNSwgMC4wMDA2MjcsIDAuMDAwNjI4LCAwLjAwMDYyOCwgMC4wMDA2MjgiLCBcCi0gICAgICAgICAgIjAuMDAwNjEsIDAuMDAwNjEzLCAwLjAwMDYyMSwgMC4wMDA2MjUsIDAuMDAwNjI2LCAwLjAwMDYyNywgMC4wMDA2MjciLCBcCi0gICAgICAgICAgIjAuMDAwNjA0LCAwLjAwMDYwNywgMC4wMDA2MTgsIDAuMDAwNjIzLCAwLjAwMDYyNSwgMC4wMDA2MjYsIDAuMDAwNjI3IiwgXAotICAgICAgICAgICIwLjAwMDU5OSwgMC4wMDA2MDIsIDAuMDAwNjE1LCAwLjAwMDYyMSwgMC4wMDA2MjQsIDAuMDAwNjI2LCAwLjAwMDYyNiIsIFwKLSAgICAgICAgICAiMC4wMDA1OTQsIDAuMDAwNTk3LCAwLjAwMDYxMSwgMC4wMDA2MTksIDAuMDAwNjIyLCAwLjAwMDYyNSwgMC4wMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMDAwNTkxLCAwLjAwMDU5NCwgMC4wMDA2MDgsIDAuMDAwNjE3LCAwLjAwMDYyLCAwLjAwMDYyNCwgMC4wMDA2MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJEIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDEyMjIsIDAuMDAxMjIyLCAwLjAwMTIyMiwgMC4wMDEyMjMsIDAuMDAxMjIzLCAwLjAwMTIyMywgMC4wMDEyMjMiLCBcCi0gICAgICAgICAgIjAuMDAxMjI0LCAwLjAwMTIyNiwgMC4wMDEyMjksIDAuMDAxMjI5LCAwLjAwMTIzLCAwLjAwMTIzLCAwLjAwMTIzIiwgXAotICAgICAgICAgICIwLjAwMTIyMiwgMC4wMDEyMjQsIDAuMDAxMjI4LCAwLjAwMTIzMiwgMC4wMDEyMzIsIDAuMDAxMjMzLCAwLjAwMTIzMyIsIFwKLSAgICAgICAgICAiMC4wMDEyMiwgMC4wMDEyMjMsIDAuMDAxMjI4LCAwLjAwMTIzLCAwLjAwMTIzMiwgMC4wMDEyMzMsIDAuMDAxMjMzIiwgXAotICAgICAgICAgICIwLjAwMTIyLCAwLjAwMTIyMiwgMC4wMDEyMjgsIDAuMDAxMjMsIDAuMDAxMjMxLCAwLjAwMTIzMiwgMC4wMDEyMzMiLCBcCi0gICAgICAgICAgIjAuMDAxMjIyLCAwLjAwMTIyMiwgMC4wMDEyMjcsIDAuMDAxMjMsIDAuMDAxMjMxLCAwLjAwMTIzMywgMC4wMDEyMzMiLCBcCi0gICAgICAgICAgIjAuMDAxMjI1LCAwLjAwMTIyNiwgMC4wMDEyMjgsIDAuMDAxMjMxLCAwLjAwMTIzMiwgMC4wMDEyMzMsIDAuMDAxMjMzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwNjI2LCAwLjAwMDYyNiwgMC4wMDA2MjgsIDAuMDAwNjI4LCAwLjAwMDYyOCwgMC4wMDA2MjgsIDAuMDAwNjI4IiwgXAotICAgICAgICAgICIwLjAwMDYxNywgMC4wMDA2MTksIDAuMDAwNjI0LCAwLjAwMDYyNiwgMC4wMDA2MjcsIDAuMDAwNjI4LCAwLjAwMDYyOCIsIFwKLSAgICAgICAgICAiMC4wMDA2MDksIDAuMDAwNjExLCAwLjAwMDYyLCAwLjAwMDYyNCwgMC4wMDA2MjYsIDAuMDAwNjI3LCAwLjAwMDYyNyIsIFwKLSAgICAgICAgICAiMC4wMDA2MDQsIDAuMDAwNjA3LCAwLjAwMDYxOCwgMC4wMDA2MjMsIDAuMDAwNjI1LCAwLjAwMDYyNiwgMC4wMDA2MjciLCBcCi0gICAgICAgICAgIjAuMDAwNjAyLCAwLjAwMDYwNCwgMC4wMDA2MTYsIDAuMDAwNjIxLCAwLjAwMDYyNCwgMC4wMDA2MjYsIDAuMDAwNjI2IiwgXAotICAgICAgICAgICIwLjAwMDYwMiwgMC4wMDA2MDMsIDAuMDAwNjE0LCAwLjAwMDYyLCAwLjAwMDYyMiwgMC4wMDA2MjUsIDAuMDAwNjI2IiwgXAotICAgICAgICAgICIwLjAwMDYwNSwgMC4wMDA2MDUsIDAuMDAwNjEzLCAwLjAwMDYxOSwgMC4wMDA2MjIsIDAuMDAwNjI1LCAwLjAwMDYyNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IE5BTkQ0WDEgKgotICogLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoTkFORDRYMSkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjE0NzYzNzsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwODcyNjk1OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDg3MjY5NTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA4NzAxNzg7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNDA5LCAwLjAwMDQwOSwgMC4wMDA0MDksIDAuMDAwNDA5LCAwLjAwMDQwOSwgMC4wMDA0MDksIDAuMDAwNDA5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNDEsIDAuMDAwNDEsIDAuMDAwNDEsIDAuMDAwNDEsIDAuMDAwNDEsIDAuMDAwNDEsIDAuMDAwNDEiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDg5NTQyNzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA4OTU0Mjc7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwODkzMjMzOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDQwOSwgMC4wMDA0MDksIDAuMDAwNDA5LCAwLjAwMDQwOSwgMC4wMDA0MDksIDAuMDAwNDA5LCAwLjAwMDQwOCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDQxLCAwLjAwMDQxLCAwLjAwMDQxLCAwLjAwMDQxLCAwLjAwMDQxLCAwLjAwMDQxLCAwLjAwMDQxIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihDKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA5MDI1NzU7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwOTAyNTc1OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDkwMDc3NjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA0MDksIDAuMDAwNDA5LCAwLjAwMDQwOSwgMC4wMDA0MDksIDAuMDAwNDA5LCAwLjAwMDQwOCwgMC4wMDA0MDgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA0MSwgMC4wMDA0MSwgMC4wMDA0MSwgMC4wMDA0MSwgMC4wMDA0MSwgMC4wMDA0MTEsIDAuMDAwNDExIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihEKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA4ODEwNzk7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwODgwNDU1OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDg4MTA3OTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyODcsIDAuMDAwMjg2LCAwLjAwMDI4NiwgMC4wMDAyODYsIDAuMDAwMjg2LCAwLjAwMDI4NiwgMC4wMDAyODYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA0NjQsIDAuMDAwNDY0LCAwLjAwMDQ2NSwgMC4wMDA0NjQsIDAuMDAwNDY0LCAwLjAwMDQ2NCwgMC4wMDA0NjQiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4wNzUxNDk2OwotICAgIGZ1bmN0aW9uIDogIighKCgoQSBCKSBDKSBEKSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1NDQ5NSwgMC4wNzkwMDMsIDAuMjE3MDY1LCAwLjMzODU2OSwgMC41MDA1NjEsIDAuODI1MTQ2LCAxLjAyNzM0IiwgXAotICAgICAgICAgICIwLjA2NDM1MywgMC4wODg4MDMsIDAuMjI2ODc0LCAwLjM0ODQ2MSwgMC41MTA0ODEsIDAuODM0NiwgMS4wMzcxNyIsIFwKLSAgICAgICAgICAiMC4wNzY3NDQsIDAuMTAxMjE2LCAwLjIzOTI1NCwgMC4zNjA4NDQsIDAuNTIyNDU3LCAwLjg0NTg3NywgMS4wNDg0MyIsIFwKLSAgICAgICAgICAiMC4wODk2MjIsIDAuMTEzNzA3LCAwLjI1MTc5MSwgMC4zNzMzMjksIDAuNTM1MzI4LCAwLjg1Nzg5MSwgMS4wNjAwNSIsIFwKLSAgICAgICAgICAiMC4xMDIzOTMsIDAuMTI2NzA5LCAwLjI2NDQzMSwgMC4zODU4OTQsIDAuNTQ3ODM3LCAwLjg3MDAwOCwgMS4wNzMxMyIsIFwKLSAgICAgICAgICAiMC4xMjE2LCAwLjE0NzIxNiwgMC4yODQyNzgsIDAuNDA2MTY1LCAwLjU2NzgzOSwgMC44ODk5NjMsIDEuMDkyNTMiLCBcCi0gICAgICAgICAgIjAuMTM2MDc3LCAwLjE2NDc5NCwgMC4zMDE4MjgsIDAuNDIzODQsIDAuNTg1NTQ1LCAwLjkwNzI3NiwgMS4xMDk2Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwMjAxOSwgMC4xNTIwODksIDAuNDM1NTk3LCAwLjY4NTMzLCAxLjAxODYsIDEuNjg1NzgsIDIuMTAyMDciLCBcCi0gICAgICAgICAgIjAuMTAyMDgxLCAwLjE1MTk1MiwgMC40MzUyNzQsIDAuNjg1NzA1LCAxLjAxOTA0LCAxLjY4NTYzLCAyLjEwMjAzIiwgXAotICAgICAgICAgICIwLjEwNTY0MSwgMC4xNTM0MDksIDAuNDM1NTY0LCAwLjY4NTI0MiwgMS4wMTg1MiwgMS42ODU5LCAyLjEwMjAxIiwgXAotICAgICAgICAgICIwLjExMTM0MywgMC4xNTc3MjcsIDAuNDM1NTY5LCAwLjY4NTQ4NiwgMS4wMTg1NywgMS42ODU3LCAyLjEwMjQiLCBcCi0gICAgICAgICAgIjAuMTE4NTk3LCAwLjE2MzMzOCwgMC40MzYwNjQsIDAuNjg1NTEsIDEuMDE4NTksIDEuNjg1NzksIDIuMTAyMzUiLCBcCi0gICAgICAgICAgIjAuMTMxODI1LCAwLjE3NDQ1OCwgMC40Mzk1OTYsIDAuNjg1NjA5LCAxLjAxODUsIDEuNjg1MiwgMi4xMDI2MSIsIFwKLSAgICAgICAgICAiMC4xNDQ3NDIsIDAuMTg1NjU5LCAwLjQ0NTA4MiwgMC42ODcxODcsIDEuMDE4OTYsIDEuNjg1NzcsIDIuMTAxNzciKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTg2ODgxLCAwLjI3NDQxLCAwLjc2OTg1MiwgMS4yMDcxMywgMS43OTA5NSwgMi45NTU1MywgMy42ODMwMSIsIFwKLSAgICAgICAgICAiMC4xOTQ5MDYsIDAuMjgyNTMsIDAuNzc4MDI1LCAxLjIxNTUzLCAxLjc5OTM3LCAyLjk2MzU4LCAzLjY5MTQ2IiwgXAotICAgICAgICAgICIwLjIwMzM1MywgMC4yOTEwMjMsIDAuNzg2NzM5LCAxLjIyNDIzLCAxLjgwODA5LCAyLjk3Mjg0LCAzLjcwMDMiLCBcCi0gICAgICAgICAgIjAuMjExMTUsIDAuMjk4ODc1LCAwLjc5NTA5NCwgMS4yMzI1MiwgMS44MTYzOSwgMi45ODA2NiwgMy43MDgzMiIsIFwKLSAgICAgICAgICAiMC4yMTg4MzUsIDAuMzA2NTU5LCAwLjgwMjU5NSwgMS4yMzk4OSwgMS44MjMzMywgMi45ODg5NCwgMy43MTY0NCIsIFwKLSAgICAgICAgICAiMC4yMzA5NzcsIDAuMzE4NzIyLCAwLjgxNTI0NCwgMS4yNTI0MiwgMS44MzUzNiwgMy4wMDA2NywgMy43Mjg3MyIsIFwKLSAgICAgICAgICAiMC4yNDE2ODQsIDAuMzI5MzMzLCAwLjgyNTU0LCAxLjI2Mjk3LCAxLjg0NTg4LCAzLjAxMTQ1LCAzLjczOTU4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMzMzI1NSwgMC41MDM3NTMsIDEuNDY2NjUsIDIuMzE2OCwgMy40NTI0NCwgNS43MDIxMSwgNy4xMjA2IiwgXAotICAgICAgICAgICIwLjMzMzI2NiwgMC41MDI5NzksIDEuNDY3NjgsIDIuMzE2NzYsIDMuNDQyMjIsIDUuNzA4NzgsIDcuMTIwNTciLCBcCi0gICAgICAgICAgIjAuMzMzMTUsIDAuNTAzNTQ2LCAxLjQ2NTA2LCAyLjMxNjYxLCAzLjQ1MjQsIDUuNzAyMTUsIDcuMTIwNTYiLCBcCi0gICAgICAgICAgIjAuMzMzODczLCAwLjUwMzk0MSwgMS40NjcxMywgMi4zMTcyMywgMy40NDIzOCwgNS43MDMwNSwgNy4xMjA1MyIsIFwKLSAgICAgICAgICAiMC4zMzM4MTMsIDAuNTAzOTc3LCAxLjQ2NTEyLCAyLjMxMzg3LCAzLjQ1MDM1LCA1LjcxMDUxLCA3LjExNjAyIiwgXAotICAgICAgICAgICIwLjMzNjIyNSwgMC41MDM4MywgMS40NjcyMywgMi4zMTM2MSwgMy40NDU2NSwgNS43MDg3MiwgNy4xMTgzNSIsIFwKLSAgICAgICAgICAiMC4zMzkwOCwgMC41MDU4OTUsIDEuNDY0OTcsIDIuMzE2MDYsIDMuNDQ2MzksIDUuNzA4NjcsIDcuMTE4NDMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDUzOTgxLCAwLjA3ODY0LCAwLjIxNzkyOSwgMC4zNDA5NzMsIDAuNTA0NzI5LCAwLjgzMjE4OCwgMS4wMzcwOSIsIFwKLSAgICAgICAgICAiMC4wNjM4NzIsIDAuMDg4NDk5LCAwLjIyNzc4NiwgMC4zNTA2ODQsIDAuNTE0NDgzLCAwLjg0MjEzNCwgMS4wNDY1MiIsIFwKLSAgICAgICAgICAiMC4wNzY2NTMsIDAuMTAxMzE1LCAwLjI0MDY4MywgMC4zNjM0NTQsIDAuNTI3MTc5LCAwLjg1NDcxOSwgMS4wNTk1NSIsIFwKLSAgICAgICAgICAiMC4wODkwNDcsIDAuMTEzMjk3LCAwLjI1MjY4OCwgMC4zNzU0NzEsIDAuNTM5MTM3LCAwLjg2NDk2NCwgMS4wNjk4MyIsIFwKLSAgICAgICAgICAiMC4xMDE3ODgsIDAuMTI2MjM3LCAwLjI2NTE3NSwgMC4zODc3NjIsIDAuNTUxNTU5LCAwLjg3ODcxMiwgMS4wODEzNCIsIFwKLSAgICAgICAgICAiMC4xMjA2MDMsIDAuMTQ2NTUzLCAwLjI4NDk0MywgMC40MDgwMzYsIDAuNTcxMzg5LCAwLjg5OTEwNywgMS4xMDA4NiIsIFwKLSAgICAgICAgICAiMC4xMzQ5MywgMC4xNjM4NjcsIDAuMzAyNDY0LCAwLjQyNTYxMiwgMC41ODkwMjcsIDAuOTE2NDM0LCAxLjEyMDkyIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwMTQ4MSwgMC4xNTIxNTQsIDAuNDM4NDc3LCAwLjY5MTQ0MiwgMS4wMjg1NiwgMS43MDI1NSwgMi4xMjQyNCIsIFwKLSAgICAgICAgICAiMC4xMDE1ODgsIDAuMTUyMTU2LCAwLjQzODY2NiwgMC42OTE1MTcsIDEuMDI4MjIsIDEuNzAyNjEsIDIuMTI0MzIiLCBcCi0gICAgICAgICAgIjAuMTA0OTEyLCAwLjE1MzM2OSwgMC40Mzg1NDUsIDAuNjkxMTU1LCAxLjAyODU5LCAxLjcwMjY2LCAyLjEyNDE0IiwgXAotICAgICAgICAgICIwLjExMTE2NSwgMC4xNTc5NDEsIDAuNDM4NTA4LCAwLjY5MTMxMSwgMS4wMjgxMywgMS43MDI3OCwgMi4xMjQxMSIsIFwKLSAgICAgICAgICAiMC4xMTg2MjEsIDAuMTYzNjkzLCAwLjQzOTE4NiwgMC42OTEzNzYsIDEuMDI4MTQsIDEuNzAyNzgsIDIuMTIzMzgiLCBcCi0gICAgICAgICAgIjAuMTMyMTQsIDAuMTc0OTY0LCAwLjQ0Mjc5LCAwLjY5MTQwMywgMS4wMjgxNywgMS43MDIzOCwgMi4xMjM5NyIsIFwKLSAgICAgICAgICAiMC4xNDUzNDYsIDAuMTg2NTMxLCAwLjQ0ODMwNywgMC42OTMxMDcsIDEuMDI4MjksIDEuNzAyNzksIDIuMTI0MDgiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTg1MDAxLCAwLjI3MjU4NSwgMC43Njg0MTIsIDEuMjA1MDYsIDEuNzg4NDcsIDIuOTUzMjIsIDMuNjgxMTkiLCBcCi0gICAgICAgICAgIjAuMTkzMDIsIDAuMjgwNjA4LCAwLjc3NjMzOSwgMS4yMTMzOSwgMS43OTY2NSwgMi45NjIyNiwgMy42ODk2NyIsIFwKLSAgICAgICAgICAiMC4yMDIwNDYsIDAuMjg5ODA3LCAwLjc4NTQ4NywgMS4yMjI5MywgMS44MDYyNiwgMi45NzExMiwgMy42OTkxMiIsIFwKLSAgICAgICAgICAiMC4yMTA4ODYsIDAuMjk4NjE5LCAwLjc5NDg2NywgMS4yMzIyNiwgMS44MTYxNCwgMi45ODA2NiwgMy43MDgxNSIsIFwKLSAgICAgICAgICAiMC4yMTk3NDgsIDAuMzA3NTQzLCAwLjgwMzg0NSwgMS4yNDEyNiwgMS44MjQ2MSwgMi45ODkzOCwgMy43MTc0MSIsIFwKLSAgICAgICAgICAiMC4yMzQwNTEsIDAuMzIxOTk2LCAwLjgxODA3OCwgMS4yNTUzMywgMS44MzgzNCwgMy4wMDQ1NywgMy43MzIwMSIsIFwKLSAgICAgICAgICAiMC4yNDY4OSwgMC4zMzQxOTgsIDAuODMwNzk1LCAxLjI2ODMsIDEuODUxMDYsIDMuMDE2NzUsIDMuNzQ0ODYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzMzODUsIDAuNTAyNTY1LCAxLjQ2MzcsIDIuMzE2MzksIDMuNDUxMjUsIDUuNzA3NzEsIDcuMTE4MzkiLCBcCi0gICAgICAgICAgIjAuMzMzMjM1LCAwLjUwMjk5LCAxLjQ2NTEzLCAyLjMxMzY0LCAzLjQ1MDMzLCA1LjcwMjMyLCA3LjEyMDciLCBcCi0gICAgICAgICAgIjAuMzMzMjE0LCAwLjUwMzcxLCAxLjQ2NTA4LCAyLjMxNjU0LCAzLjQ1MTA4LCA1LjcwNzcxLCA3LjExODQ0IiwgXAotICAgICAgICAgICIwLjMzMzMwMywgMC41MDMwNCwgMS40NjcyLCAyLjMxNzIzLCAzLjQ0MjM2LCA1LjcwMjM3LCA3LjEyMDU0IiwgXAotICAgICAgICAgICIwLjMzNDkxOCwgMC41MDI5OCwgMS40NjM5MSwgMi4zMTcyNiwgMy40NTEzNSwgNS43MDgxNywgNy4xMTg1MyIsIFwKLSAgICAgICAgICAiMC4zMzcyNjYsIDAuNTA1Mjg2LCAxLjQ2NTEyLCAyLjMxNDA0LCAzLjQ0ODk4LCA1LjcxMDU0LCA3LjEyMDc2IiwgXAotICAgICAgICAgICIwLjM0MTEzNSwgMC41MDYxNDYsIDEuNDY1MDQsIDIuMzE2MjcsIDMuNDQ1NywgNS43MDg0OSwgNy4xMTg1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1MjYwNywgMC4wNzcyMTYsIDAuMjE2NDg2LCAwLjMzOTMyNCwgMC41MDMwNzQsIDAuODMwNjEzLCAxLjAzNTQxIiwgXAotICAgICAgICAgICIwLjA2MjUwNCwgMC4wODcxMjYsIDAuMjI2MzA4LCAwLjM0OTE4MywgMC41MTI4NDEsIDAuODQwNDYsIDEuMDQ0NjkiLCBcCi0gICAgICAgICAgIjAuMDc1MzE5LCAwLjA5OTkyMywgMC4yMzkyMjcsIDAuMzYxOTM3LCAwLjUyNTU4NiwgMC44NTMwOTksIDEuMDU4MSIsIFwKLSAgICAgICAgICAiMC4wODc3NCwgMC4xMTE5MjMsIDAuMjUxMTczLCAwLjM3MzkxNywgMC41Mzc2MTQsIDAuODYzMzYxLCAxLjA2ODIyIiwgXAotICAgICAgICAgICIwLjEwMDM5NCwgMC4xMjQ4NjQsIDAuMjYzNjY4LCAwLjM4NjQwMiwgMC41NTAwNDQsIDAuODc3MTA5LCAxLjA3OTgxIiwgXAotICAgICAgICAgICIwLjExODk5MSwgMC4xNDUzMiwgMC4yODM0NDIsIDAuNDA2NTE3LCAwLjU2OTg0OCwgMC44OTc0MzQsIDEuMDk5MjkiLCBcCi0gICAgICAgICAgIjAuMTMzMTA3LCAwLjE2MjM4MiwgMC4zMDA5NTQsIDAuNDI0MDM3LCAwLjU4NzQwMSwgMC45MTQ4MTMsIDEuMTE2NjkiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk5Nzc0LCAwLjE1MDM1MiwgMC40MzY4ODYsIDAuNjg5NzI5LCAxLjAyNzExLCAxLjcwMDk0LCAyLjEyMjYzIiwgXAotICAgICAgICAgICIwLjA5OTk1LCAwLjE1MDI5MywgMC40MzY3MjIsIDAuNjg5NjcyLCAxLjAyNjY5LCAxLjcwMTA3LCAyLjEyMjE4IiwgXAotICAgICAgICAgICIwLjEwMzQwMSwgMC4xNTE3MzgsIDAuNDM2ODYxLCAwLjY4OTY2NSwgMS4wMjYyMSwgMS43MDA3OCwgMi4xMjIwOCIsIFwKLSAgICAgICAgICAiMC4xMDk3MjcsIDAuMTU2NTI5LCAwLjQzNjg1MiwgMC42ODk2MzcsIDEuMDI2NTYsIDEuNzAwNzksIDIuMTIxODQiLCBcCi0gICAgICAgICAgIjAuMTE3MjEyLCAwLjE2MjIsIDAuNDM3MzQ2LCAwLjY4OTc0NSwgMS4wMjY1MywgMS43MDEyNywgMi4xMjE1IiwgXAotICAgICAgICAgICIwLjEzMTAyOCwgMC4xNzM3NjMsIDAuNDQxMTgsIDAuNjg5ODM0LCAxLjAyNjYyLCAxLjcwMDkxLCAyLjEyMTkzIiwgXAotICAgICAgICAgICIwLjE0NDI3MSwgMC4xODUyNjEsIDAuNDQ2NjcxLCAwLjY5MTQ1NSwgMS4wMjYxOCwgMS43MDA5NiwgMi4xMjIzMyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xODA4MTUsIDAuMjY4NDEsIDAuNzY0MTEsIDEuMjAwOTMsIDEuNzg0NjEsIDIuOTQ5MTIsIDMuNjc2ODQiLCBcCi0gICAgICAgICAgIjAuMTg4ODQ3LCAwLjI3NjU0NSwgMC43NzIyNzksIDEuMjEwMDIsIDEuNzkxOTcsIDIuOTU4MTgsIDMuNjg1NTIiLCBcCi0gICAgICAgICAgIjAuMTk4OTc4LCAwLjI4NjY1MywgMC43ODI2NjUsIDEuMjE5NzUsIDEuODAyODcsIDIuOTY4MjEsIDMuNjk2MTQiLCBcCi0gICAgICAgICAgIjAuMjA5MTA2LCAwLjI5Njg4OCwgMC43OTI4MzYsIDEuMjMwMjksIDEuODEzMzksIDIuOTc5MDIsIDMuNzA2NDUiLCBcCi0gICAgICAgICAgIjAuMjE5Mjc1LCAwLjMwNjk1NiwgMC44MDMzMzMsIDEuMjQwNTYsIDEuODIzODQsIDIuOTg5MTcsIDMuNzE2NjYiLCBcCi0gICAgICAgICAgIjAuMjM1NjY5LCAwLjMyMzQ4NSwgMC44MjAxMDUsIDEuMjU3LCAxLjg0MDAxLCAzLjAwNTU2LCAzLjczMzUxIiwgXAotICAgICAgICAgICIwLjI1MDI1OSwgMC4zMzc5NjEsIDAuODM0MjE4LCAxLjI3MTc3LCAxLjg1NDUsIDMuMDIwMjEsIDMuNzQ4MTkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzMzODQ1LCAwLjUwMjU1OSwgMS40NjM1OCwgMi4zMTY1NywgMy40NTIsIDUuNzA0NDUsIDcuMTIwNTUiLCBcCi0gICAgICAgICAgIjAuMzMzMjY0LCAwLjUwMzczMiwgMS40NjY5NywgMi4zMTgxMiwgMy40NDUyNiwgNS43MTA3OSwgNy4xMjA3MSIsIFwKLSAgICAgICAgICAiMC4zMzMyNjMsIDAuNTAyOTUyLCAxLjQ2NTIzLCAyLjMxMzYxLCAzLjQ0OTgyLCA1LjcwNywgNy4xMTg4OSIsIFwKLSAgICAgICAgICAiMC4zMzM5ODQsIDAuNTAzMDQxLCAxLjQ2NTA2LCAyLjMxMzczLCAzLjQ0Mjk1LCA1LjcxMDQyLCA3LjEyMDY1IiwgXAotICAgICAgICAgICIwLjMzNTIzMywgMC41MDM5MjMsIDEuNDY2OTcsIDIuMzEyLCAzLjQ1MDY5LCA1LjcwMzUsIDcuMTIwNSIsIFwKLSAgICAgICAgICAiMC4zMzg2MzgsIDAuNTA1NDc2LCAxLjQ2NzIzLCAyLjMxMzk3LCAzLjQ0NTkyLCA1LjcwODM4LCA3LjEyMDU3IiwgXAotICAgICAgICAgICIwLjM0Mzg5NywgMC41MDc4ODQsIDEuNDY0ODEsIDIuMzE2MTUsIDMuNDUyMzQsIDUuNzA4NzEsIDcuMTIwNTUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDUwOTUyLCAwLjA3NTU0MywgMC4yMTQ3NDQsIDAuMzM3NzAzLCAwLjUwMTUzLCAwLjgyOTE4NiwgMS4wMzQyNCIsIFwKLSAgICAgICAgICAiMC4wNjA5MzUsIDAuMDg1NTEzLCAwLjIyNDcwNiwgMC4zNDc0NjYsIDAuNTExMTksIDAuODM4NzYsIDEuMDQzNTciLCBcCi0gICAgICAgICAgIjAuMDczMzUxLCAwLjA5NzkyLCAwLjIzNzA5OCwgMC4zNTk4OTUsIDAuNTIyNTIsIDAuODUwMDAzLCAxLjA1NDg0IiwgXAotICAgICAgICAgICIwLjA4NjI1OCwgMC4xMTAzOCwgMC4yNDk2MTYsIDAuMzcyMzU0LCAwLjUzNjA1OSwgMC44NjIwMDQsIDEuMDY2NDciLCBcCi0gICAgICAgICAgIjAuMDk5LCAwLjEyMzQ0NCwgMC4yNjIyMjIsIDAuMzg0OTQ4LCAwLjU0ODU1NiwgMC44NzQxODUsIDEuMDc4NzkiLCBcCi0gICAgICAgICAgIjAuMTE3MzE3LCAwLjE0Mzk2MSwgMC4yODIwNDMsIDAuNDA1MzA4LCAwLjU2ODUxOSwgMC44OTQxMTYsIDEuMDk4ODMiLCBcCi0gICAgICAgICAgIjAuMTMwODcyLCAwLjE2MDkzMywgMC4yOTk2LCAwLjQyMjgzOSwgMC41ODYxODQsIDAuOTExNDAyLCAxLjExNTgxIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5ODE1NywgMC4xNDg4MSwgMC40MzU3NzgsIDAuNjg3OTA4LCAxLjAyNDk1LCAxLjcwMDA5LCAyLjEyMTUyIiwgXAotICAgICAgICAgICIwLjA5ODE1OSwgMC4xNDg2MjEsIDAuNDM1MTQ4LCAwLjY4NzcxNywgMS4wMjUxNywgMS42OTk4OCwgMi4xMjIyOCIsIFwKLSAgICAgICAgICAiMC4xMDIyMTgsIDAuMTUwNDk1LCAwLjQzNDk2MiwgMC42ODc2NDYsIDEuMDI0OCwgMS43MDE5LCAyLjEyMDg2IiwgXAotICAgICAgICAgICIwLjEwODE5MywgMC4xNTQ5NDMsIDAuNDM1Mzc2LCAwLjY4ODQ0LCAxLjAyNTIsIDEuNzAxOTUsIDIuMTIwMjEiLCBcCi0gICAgICAgICAgIjAuMTE1NzQ0LCAwLjE2MDUyMywgMC40MzYyNTEsIDAuNjg4MTY3LCAxLjAyNTE2LCAxLjY5ODg1LCAyLjEyNDE5IiwgXAotICAgICAgICAgICIwLjEyOTMzOCwgMC4xNzIwMjQsIDAuNDQwMjYxLCAwLjY4ODI0LCAxLjAyNDkxLCAxLjcwMTgzLCAyLjEyNDA5IiwgXAotICAgICAgICAgICIwLjE0MzU0MywgMC4xODMzNjYsIDAuNDQ1OCwgMC42ODk2NzcsIDEuMDI2NDQsIDEuNzAwMjQsIDIuMTIwMzYiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTc0MDI3LCAwLjI2MTQ4NywgMC43NTcxNzUsIDEuMTk0MjYsIDEuNzc3NiwgMi45NDIzNywgMy42NzAzNSIsIFwKLSAgICAgICAgICAiMC4xODIwMjEsIDAuMjY5NTg5LCAwLjc2NTIyMSwgMS4yMDIzNCwgMS43ODU2NywgMi45NTEzNywgMy42Nzg0OCIsIFwKLSAgICAgICAgICAiMC4xOTIwNjksIDAuMjc5ODcsIDAuNzc1ODkxLCAxLjIxMzQsIDEuNzk2NDEsIDIuOTYxMDEsIDMuNjg5MDciLCBcCi0gICAgICAgICAgIjAuMjAyMzA0LCAwLjI5MDEyNywgMC43ODY1MzMsIDEuMjIzODYsIDEuODA2NjgsIDIuOTcyMDMsIDMuNjk5NTIiLCBcCi0gICAgICAgICAgIjAuMjEyNzQ4LCAwLjMwMDMwNiwgMC43OTY0NSwgMS4yMzMzOCwgMS44MTcwNiwgMi45ODIyNywgMy43MDk5NiIsIFwKLSAgICAgICAgICAiMC4yMjk0NzUsIDAuMzE3MDQ3LCAwLjgxMjk4NiwgMS4yNTAwOCwgMS44MzMyOSwgMi45OTgzLCAzLjcyNjY3IiwgXAotICAgICAgICAgICIwLjI0NDU5OSwgMC4zMzE2MDYsIDAuODI3NTA1LCAxLjI2NDgyLCAxLjg0Nzc3LCAzLjAxMzIyLCAzLjc0MTMyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMzMzU2OCwgMC41MDMwNTksIDEuNDY3MDMsIDIuMzE2NjYsIDMuNDUxMTksIDUuNzA3NzMsIDcuMTE4NTIiLCBcCi0gICAgICAgICAgIjAuMzMzNzE3LCAwLjUwMjYxNSwgMS40NjQ5MSwgMi4zMTM3OCwgMy40NTAzNiwgNS43MDI2MSwgNy4xMjA0OSIsIFwKLSAgICAgICAgICAiMC4zMzMyMjEsIDAuNTAzNzMxLCAxLjQ2NzE2LCAyLjMxNzY4LCAzLjQ0MzE5LCA1LjcxMDAzLCA3LjEyMDYxIiwgXAotICAgICAgICAgICIwLjMzMzIyOCwgMC41MDI1MTksIDEuNDYzNjUsIDIuMzE3OTYsIDMuNDQzMywgNS43MDIzNSwgNy4xMjA1NiIsIFwKLSAgICAgICAgICAiMC4zMzU0NSwgMC41MDM4NiwgMS40NjUxMSwgMi4zMTgxMiwgMy40NTEwNSwgNS43MDQsIDcuMTIwNjYiLCBcCi0gICAgICAgICAgIjAuMzQwNzczLCAwLjUwNjI0NSwgMS40NjY2NSwgMi4zMTM2MiwgMy40NDk1MywgNS43MDk2MiwgNy4xMjA3MSIsIFwKLSAgICAgICAgICAiMC4zNDgwMjcsIDAuNTA5NjUyLCAxLjQ2NTA4LCAyLjMxNDA3LCAzLjQ0NTUyLCA1LjcwODUzLCA3LjExODYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDMwODksIDAuMDAzMDg5LCAwLjAwMzA4OSwgMC4wMDMwODksIDAuMDAzMDg4LCAwLjAwMzA4OCwgMC4wMDMwODciLCBcCi0gICAgICAgICAgIjAuMDAzMDcyLCAwLjAwMzA3MiwgMC4wMDMwNzQsIDAuMDAzMDc2LCAwLjAwMzA3NCwgMC4wMDMwNzMsIDAuMDAzMDczIiwgXAotICAgICAgICAgICIwLjAwMzA2NywgMC4wMDMwNjksIDAuMDAzMDcyLCAwLjAwMzA3MSwgMC4wMDMwNywgMC4wMDMwNjcsIDAuMDAzMDY3IiwgXAotICAgICAgICAgICIwLjAwMzA2OSwgMC4wMDMwNjcsIDAuMDAzMDcsIDAuMDAzMDcxLCAwLjAwMzA3MSwgMC4wMDMwNjgsIDAuMDAzMDY3IiwgXAotICAgICAgICAgICIwLjAwMzA3LCAwLjAwMzA3MSwgMC4wMDMwNzEsIDAuMDAzMDcxLCAwLjAwMzA3LCAwLjAwMzA2NywgMC4wMDMwNjYiLCBcCi0gICAgICAgICAgIjAuMDAzMDc4LCAwLjAwMzA3NiwgMC4wMDMwNzEsIDAuMDAzMDcxLCAwLjAwMzA3MSwgMC4wMDMwNjgsIDAuMDAzMDY3IiwgXAotICAgICAgICAgICIwLjAwMzA5LCAwLjAwMzA4NSwgMC4wMDMwNzQsIDAuMDAzMDc0LCAwLjAwMzA3MiwgMC4wMDMwNjksIDAuMDAzMDY4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwNjgyLCAwLjAwMDY4NCwgMC4wMDA2ODcsIDAuMDAwNjg4LCAwLjAwMDY4OCwgMC4wMDA2OSwgMC4wMDA2ODgiLCBcCi0gICAgICAgICAgIjAuMDAwNjYsIDAuMDAwNjY5LCAwLjAwMDY4MSwgMC4wMDA2ODQsIDAuMDAwNjg1LCAwLjAwMDY4NywgMC4wMDA2ODgiLCBcCi0gICAgICAgICAgIjAuMDAwNjQxLCAwLjAwMDY1NCwgMC4wMDA2NzUsIDAuMDAwNjgsIDAuMDAwNjgyLCAwLjAwMDY4NSwgMC4wMDA2ODYiLCBcCi0gICAgICAgICAgIjAuMDAwNjI3LCAwLjAwMDY0MSwgMC4wMDA2NjksIDAuMDAwNjc1LCAwLjAwMDY3OSwgMC4wMDA2ODMsIDAuMDAwNjg0IiwgXAotICAgICAgICAgICIwLjAwMDYxNywgMC4wMDA2MzIsIDAuMDAwNjYzLCAwLjAwMDY3MSwgMC4wMDA2NzcsIDAuMDAwNjgxLCAwLjAwMDY4MyIsIFwKLSAgICAgICAgICAiMC4wMDA2MDUsIDAuMDAwNjE5LCAwLjAwMDY1NCwgMC4wMDA2NjUsIDAuMDAwNjcyLCAwLjAwMDY3OCwgMC4wMDA2OCIsIFwKLSAgICAgICAgICAiMC4wMDA1OTksIDAuMDAwNjEyLCAwLjAwMDY0OCwgMC4wMDA2NiwgMC4wMDA2NjksIDAuMDAwNjc2LCAwLjAwMDY3OCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjczLCAwLjAwMjczLCAwLjAwMjczMSwgMC4wMDI3MzEsIDAuMDAyNzMsIDAuMDAyNzMsIDAuMDAyNzI5IiwgXAotICAgICAgICAgICIwLjAwMjcxNywgMC4wMDI3MiwgMC4wMDI3MjIsIDAuMDAyNzIzLCAwLjAwMjcyMywgMC4wMDI3MjMsIDAuMDAyNzIyIiwgXAotICAgICAgICAgICIwLjAwMjcxMiwgMC4wMDI3MTUsIDAuMDAyNzIsIDAuMDAyNzIxLCAwLjAwMjcyMiwgMC4wMDI3MjEsIDAuMDAyNzIxIiwgXAotICAgICAgICAgICIwLjAwMjcxNCwgMC4wMDI3MTUsIDAuMDAyNzIsIDAuMDAyNzIxLCAwLjAwMjcyMSwgMC4wMDI3MiwgMC4wMDI3MTkiLCBcCi0gICAgICAgICAgIjAuMDAyNzE3LCAwLjAwMjcxOCwgMC4wMDI3MjEsIDAuMDAyNzIyLCAwLjAwMjcyMSwgMC4wMDI3MjEsIDAuMDAyNzE5IiwgXAotICAgICAgICAgICIwLjAwMjcyNSwgMC4wMDI3MjUsIDAuMDAyNzIyLCAwLjAwMjcyMiwgMC4wMDI3MjIsIDAuMDAyNzIxLCAwLjAwMjcyIiwgXAotICAgICAgICAgICIwLjAwMjczOCwgMC4wMDI3MzMsIDAuMDAyNzI1LCAwLjAwMjcyNSwgMC4wMDI3MjQsIDAuMDAyNzIyLCAwLjAwMjcyMiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDY4MywgMC4wMDA2ODUsIDAuMDAwNjg4LCAwLjAwMDY4OSwgMC4wMDA2ODksIDAuMDAwNjg5LCAwLjAwMDY4OSIsIFwKLSAgICAgICAgICAiMC4wMDA2NjEsIDAuMDAwNjcsIDAuMDAwNjgyLCAwLjAwMDY4NSwgMC4wMDA2ODcsIDAuMDAwNjg4LCAwLjAwMDY4OCIsIFwKLSAgICAgICAgICAiMC4wMDA2NDIsIDAuMDAwNjU1LCAwLjAwMDY3NiwgMC4wMDA2ODEsIDAuMDAwNjg0LCAwLjAwMDY4NiwgMC4wMDA2ODciLCBcCi0gICAgICAgICAgIjAuMDAwNjI4LCAwLjAwMDY0MiwgMC4wMDA2NywgMC4wMDA2NzYsIDAuMDAwNjgxLCAwLjAwMDY4NSwgMC4wMDA2ODUiLCBcCi0gICAgICAgICAgIjAuMDAwNjE3LCAwLjAwMDYzMywgMC4wMDA2NjQsIDAuMDAwNjcyLCAwLjAwMDY3OCwgMC4wMDA2ODIsIDAuMDAwNjg0IiwgXAotICAgICAgICAgICIwLjAwMDYwNiwgMC4wMDA2MiwgMC4wMDA2NTYsIDAuMDAwNjY2LCAwLjAwMDY3MywgMC4wMDA2NzksIDAuMDAwNjgxIiwgXAotICAgICAgICAgICIwLjAwMDYwMSwgMC4wMDA2MTQsIDAuMDAwNjUsIDAuMDAwNjYyLCAwLjAwMDY3LCAwLjAwMDY3NywgMC4wMDA2OCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjMzNSwgMC4wMDIzMzUsIDAuMDAyMzM2LCAwLjAwMjMzNiwgMC4wMDIzMzYsIDAuMDAyMzM2LCAwLjAwMjMzNiIsIFwKLSAgICAgICAgICAiMC4wMDIzMzMsIDAuMDAyMzM2LCAwLjAwMjM0MSwgMC4wMDIzNDIsIDAuMDAyMzQzLCAwLjAwMjM0MywgMC4wMDIzNDIiLCBcCi0gICAgICAgICAgIjAuMDAyMzI3LCAwLjAwMjMzMiwgMC4wMDIzNCwgMC4wMDIzNDIsIDAuMDAyMzQyLCAwLjAwMjM0MywgMC4wMDIzNDMiLCBcCi0gICAgICAgICAgIjAuMDAyMzI3LCAwLjAwMjMzMSwgMC4wMDIzNCwgMC4wMDIzNDIsIDAuMDAyMzQzLCAwLjAwMjM0NCwgMC4wMDIzNDQiLCBcCi0gICAgICAgICAgIjAuMDAyMzI3LCAwLjAwMjMzMywgMC4wMDIzNDEsIDAuMDAyMzQyLCAwLjAwMjM0MywgMC4wMDIzNDQsIDAuMDAyMzQ0IiwgXAotICAgICAgICAgICIwLjAwMjMzNiwgMC4wMDIzMzgsIDAuMDAyMzQxLCAwLjAwMjM0MywgMC4wMDIzNDQsIDAuMDAyMzQ0LCAwLjAwMjM0NCIsIFwKLSAgICAgICAgICAiMC4wMDIzNDcsIDAuMDAyMzQ1LCAwLjAwMjM0NCwgMC4wMDIzNDUsIDAuMDAyMzQ1LCAwLjAwMjM0NSwgMC4wMDIzNDMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDA2ODMsIDAuMDAwNjg1LCAwLjAwMDY4OCwgMC4wMDA2ODksIDAuMDAwNjg5LCAwLjAwMDY4OSwgMC4wMDA2ODkiLCBcCi0gICAgICAgICAgIjAuMDAwNjYxLCAwLjAwMDY3LCAwLjAwMDY4MiwgMC4wMDA2ODUsIDAuMDAwNjg3LCAwLjAwMDY4OCwgMC4wMDA2ODgiLCBcCi0gICAgICAgICAgIjAuMDAwNjQyLCAwLjAwMDY1NCwgMC4wMDA2NzYsIDAuMDAwNjgxLCAwLjAwMDY4NCwgMC4wMDA2ODYsIDAuMDAwNjg3IiwgXAotICAgICAgICAgICIwLjAwMDYyOCwgMC4wMDA2NDMsIDAuMDAwNjcsIDAuMDAwNjc3LCAwLjAwMDY4MSwgMC4wMDA2ODQsIDAuMDAwNjg1IiwgXAotICAgICAgICAgICIwLjAwMDYxOSwgMC4wMDA2MzQsIDAuMDAwNjY0LCAwLjAwMDY3MywgMC4wMDA2NzgsIDAuMDAwNjgyLCAwLjAwMDY4NCIsIFwKLSAgICAgICAgICAiMC4wMDA2MDksIDAuMDAwNjIzLCAwLjAwMDY1NiwgMC4wMDA2NjcsIDAuMDAwNjc0LCAwLjAwMDY4LCAwLjAwMDY4MiIsIFwKLSAgICAgICAgICAiMC4wMDA2MDYsIDAuMDAwNjE4LCAwLjAwMDY1MSwgMC4wMDA2NjMsIDAuMDAwNjcsIDAuMDAwNjc4LCAwLjAwMDY4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxOTE2LCAwLjAwMTkxNSwgMC4wMDE5MTgsIDAuMDAxOTE4LCAwLjAwMTkxOSwgMC4wMDE5MTksIDAuMDAxOTE5IiwgXAotICAgICAgICAgICIwLjAwMTkxNSwgMC4wMDE5MjIsIDAuMDAxOTI5LCAwLjAwMTkzLCAwLjAwMTkzMSwgMC4wMDE5MzIsIDAuMDAxOTMyIiwgXAotICAgICAgICAgICIwLjAwMTkwOCwgMC4wMDE5MTYsIDAuMDAxOTI5LCAwLjAwMTkzMSwgMC4wMDE5MzUsIDAuMDAxOTM3LCAwLjAwMTkzNyIsIFwKLSAgICAgICAgICAiMC4wMDE5MDUsIDAuMDAxOTEyLCAwLjAwMTkyNywgMC4wMDE5MzEsIDAuMDAxOTMzLCAwLjAwMTkzNiwgMC4wMDE5MzciLCBcCi0gICAgICAgICAgIjAuMDAxOTAyLCAwLjAwMTkxMSwgMC4wMDE5MjYsIDAuMDAxOTMsIDAuMDAxOTMyLCAwLjAwMTkzNiwgMC4wMDE5MzciLCBcCi0gICAgICAgICAgIjAuMDAxOTAzLCAwLjAwMTkxMSwgMC4wMDE5MjUsIDAuMDAxOTMsIDAuMDAxOTMyLCAwLjAwMTkzNiwgMC4wMDE5MzYiLCBcCi0gICAgICAgICAgIjAuMDAxOTExLCAwLjAwMTkxNSwgMC4wMDE5MjYsIDAuMDAxOTMsIDAuMDAxOTMyLCAwLjAwMTkzNiwgMC4wMDE5MzYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDA2ODIsIDAuMDAwNjg1LCAwLjAwMDY4OCwgMC4wMDA2ODgsIDAuMDAwNjg5LCAwLjAwMDY4OSwgMC4wMDA2ODkiLCBcCi0gICAgICAgICAgIjAuMDAwNjU4LCAwLjAwMDY2NywgMC4wMDA2ODEsIDAuMDAwNjg0LCAwLjAwMDY4NiwgMC4wMDA2ODUsIDAuMDAwNjg4IiwgXAotICAgICAgICAgICIwLjAwMDYzOSwgMC4wMDA2NTIsIDAuMDAwNjc0LCAwLjAwMDY4LCAwLjAwMDY4MywgMC4wMDA2ODYsIDAuMDAwNjg2IiwgXAotICAgICAgICAgICIwLjAwMDYyOCwgMC4wMDA2NDIsIDAuMDAwNjY5LCAwLjAwMDY3NiwgMC4wMDA2OCwgMC4wMDA2ODMsIDAuMDAwNjg1IiwgXAotICAgICAgICAgICIwLjAwMDYyNSwgMC4wMDA2MzYsIDAuMDAwNjY0LCAwLjAwMDY3MywgMC4wMDA2NzgsIDAuMDAwNjgyLCAwLjAwMDY4NCIsIFwKLSAgICAgICAgICAiMC4wMDA2MjgsIDAuMDAwNjM1LCAwLjAwMDY2LCAwLjAwMDY2OSwgMC4wMDA2NzUsIDAuMDAwNjgsIDAuMDAwNjgyIiwgXAotICAgICAgICAgICIwLjAwMDYzNywgMC4wMDA2MzgsIDAuMDAwNjU4LCAwLjAwMDY2NywgMC4wMDA2NzMsIDAuMDAwNjc5LCAwLjAwMDY4MSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IE5BTkQ0WEwgKgotICogLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoTkFORDRYTCkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjA4Nzg3OTY7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDU0MzgxMjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA1NDM4MTI7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNTQyMzE5OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDIyNiwgMC4wMDAyMjYsIDAuMDAwMjI2LCAwLjAwMDIyNiwgMC4wMDAyMjYsIDAuMDAwMjI2LCAwLjAwMDIyNiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDIyNywgMC4wMDAyMjcsIDAuMDAwMjI3LCAwLjAwMDIyNywgMC4wMDAyMjcsIDAuMDAwMjI3LCAwLjAwMDIyNyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjAzODQyOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYwMzg0MjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2MDI2NTE7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjI2LCAwLjAwMDIyNiwgMC4wMDAyMjYsIDAuMDAwMjI2LCAwLjAwMDIyNiwgMC4wMDAyMjYsIDAuMDAwMjI2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjI3LCAwLjAwMDIyNywgMC4wMDAyMjcsIDAuMDAwMjI3LCAwLjAwMDIyNywgMC4wMDAyMjcsIDAuMDAwMjI3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihDKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2MDI2MzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MDI2MzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2MDE2NDM7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjI2LCAwLjAwMDIyNiwgMC4wMDAyMjYsIDAuMDAwMjI2LCAwLjAwMDIyNiwgMC4wMDAyMjYsIDAuMDAwMjI2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjI3LCAwLjAwMDIyNywgMC4wMDAyMjcsIDAuMDAwMjI3LCAwLjAwMDIyNywgMC4wMDAyMjcsIDAuMDAwMjI3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihEKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA1OTkwMDg7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNTk4NTI7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNTk5MDA4OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDE0NSwgMC4wMDAxNDUsIDAuMDAwMTQ1LCAwLjAwMDE0NSwgMC4wMDAxNDQsIDAuMDAwMTQ1LCAwLjAwMDE0NCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDI1NywgMC4wMDAyNTcsIDAuMDAwMjU3LCAwLjAwMDI1NywgMC4wMDAyNTcsIDAuMDAwMjU3LCAwLjAwMDI1NyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjA0NjcwODI7Ci0gICAgZnVuY3Rpb24gOiAiKCEoKChBIEIpIEMpIEQpKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg2NzM3LCAwLjEwMDk0NCwgMC4yMjg0MDUsIDAuNDQwNDY1LCAwLjY1MjU1OSwgMS4xNDcwMiwgMS40MjkzNSIsIFwKLSAgICAgICAgICAiMC4wOTY0MTMsIDAuMTEwNjE3LCAwLjIzODA3OSwgMC40NTAwNjIsIDAuNjYyMDAyLCAxLjE1NzAyLCAxLjQzOTA5IiwgXAotICAgICAgICAgICIwLjEwODY3NywgMC4xMjI5ODIsIDAuMjUwMzkyLCAwLjQ2MjAxMywgMC42NzM1OTIsIDEuMTY3NjcsIDEuNDUxMTgiLCBcCi0gICAgICAgICAgIjAuMTIxMDAxLCAwLjEzNTIwNSwgMC4yNjI3MDcsIDAuNDc0NjQsIDAuNjg1MjgzLCAxLjE4MDM2LCAxLjQ2MzE3IiwgXAotICAgICAgICAgICIwLjEzMzgyLCAwLjE0NzkzOCwgMC4yNzUxNDQsIDAuNDg2OTk0LCAwLjY5NzY0OCwgMS4xOTIzMiwgMS40NzQ3MiIsIFwKLSAgICAgICAgICAiMC4xNTQwMjIsIDAuMTY4MTMsIDAuMjk0NzI4LCAwLjUwNjg0MiwgMC43MTg3MTYsIDEuMjEyMzIsIDEuNDkzOTQiLCBcCi0gICAgICAgICAgIjAuMTcxNjE3LCAwLjE4NTY0NywgMC4zMTIwNDMsIDAuNTI0MjcsIDAuNzM1OTQxLCAxLjIyODYzLCAxLjUxMTkzIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE2NzIxNywgMC4xOTYxNzQsIDAuNDU2OTU3LCAwLjg5MTYwMiwgMS4zMjYzOSwgMi4zNDA2NSwgMi45MTk3MiIsIFwKLSAgICAgICAgICAiMC4xNjczMTEsIDAuMTk2MTkxLCAwLjQ1Njk1LCAwLjg5MTYzNCwgMS4zMjY2NSwgMi4zNDA5NywgMi45MjA3NiIsIFwKLSAgICAgICAgICAiMC4xNjgyODgsIDAuMTk2NzE4LCAwLjQ1NzEyLCAwLjg5MTYzLCAxLjMyNjU4LCAyLjM0MDQyLCAyLjkyMDYxIiwgXAotICAgICAgICAgICIwLjE3MjMxLCAwLjE5OTg1NSwgMC40NTcwNzksIDAuODkxOTc0LCAxLjMyNjI3LCAyLjM0MDk4LCAyLjkyMDk5IiwgXAotICAgICAgICAgICIwLjE3NzU4MSwgMC4yMDQ0MjIsIDAuNDU3MzM1LCAwLjg5MTU4MywgMS4zMjYyNywgMi4zNDEzNCwgMi45MjA0NiIsIFwKLSAgICAgICAgICAiMC4xODgyMzksIDAuMjE0MjY1LCAwLjQ2MDkxOCwgMC44OTE5NzYsIDEuMzI2NzUsIDIuMzQxMTcsIDIuOTE5ODciLCBcCi0gICAgICAgICAgIjAuMTk5MTMzLCAwLjIyNDE2MywgMC40NjYyMiwgMC44OTIwNDYsIDEuMzI2NzQsIDIuMzQwNSwgMi45MjEwNSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yODkzMzYsIDAuMzM4MTUyLCAwLjc3NjIzNywgMS41MDY0MiwgMi4yMzY0MywgMy45Mzg0MiwgNC45MTEzMiIsIFwKLSAgICAgICAgICAiMC4yOTc3NzIsIDAuMzQ2NTA1LCAwLjc4NDYwOCwgMS41MTU3OSwgMi4yNDQ5OCwgMy45NDcxMywgNC45MTk2OSIsIFwKLSAgICAgICAgICAiMC4zMDYzMjgsIDAuMzU1MTA1LCAwLjc5MzUyOCwgMS41MjM3NCwgMi4yNTUxMywgMy45NTU5MSwgNC45Mjg4MSIsIFwKLSAgICAgICAgICAiMC4zMTQ0NjksIDAuMzYzMTQxLCAwLjgwMTczMSwgMS41MzE1NywgMi4yNjIyNiwgMy45NjQxNSwgNC45MzcwMyIsIFwKLSAgICAgICAgICAiMC4zMjIwNDIsIDAuMzcwOTQyLCAwLjgwOTIxLCAxLjUzOTk4LCAyLjI3MDkyLCAzLjk3MjE4LCA0Ljk0NDcxIiwgXAotICAgICAgICAgICIwLjMzNDA1NCwgMC4zODI5MDEsIDAuODIxODE0LCAxLjU1MjI0LCAyLjI4MjUxLCAzLjk4NDI4LCA0Ljk1Njk0IiwgXAotICAgICAgICAgICIwLjM0NDU3NiwgMC4zOTMzNywgMC44MzIxMDMsIDEuNTYyMzQsIDIuMjkyNDMsIDMuOTk1MzQsIDQuOTY3NjciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuNTMzMDcyLCAwLjYyODg3MSwgMS40ODAyLCAyLjkwNzYsIDQuMzM2MDUsIDcuNjQwOCwgOS41Mjg5NCIsIFwKLSAgICAgICAgICAiMC41MzI4OTUsIDAuNjI4NjEyLCAxLjQ4MTY5LCAyLjkwOTM0LCA0LjMzNTksIDcuNjQwODUsIDkuNTMxMjciLCBcCi0gICAgICAgICAgIjAuNTMzOTY5LCAwLjYyNzkyNiwgMS40ODE4NCwgMi45MDQ4MiwgNC4zMjI5OSwgNy42NDAyNywgOS41MjkwMyIsIFwKLSAgICAgICAgICAiMC41MzM4NzYsIDAuNjI4NTQzLCAxLjQ4MzQ5LCAyLjkwNDQ0LCA0LjMzNjM4LCA3LjY0MDMsIDkuNTI5MyIsIFwKLSAgICAgICAgICAiMC41MzMxNTMsIDAuNjI3MjE3LCAxLjQ4MTYyLCAyLjkwNzg5LCA0LjMyMzMyLCA3LjY0MDQ1LCA5LjUyOTY0IiwgXAotICAgICAgICAgICIwLjUzNDg0MywgMC42MjgzNTUsIDEuNDgzNjIsIDIuOTA3NjUsIDQuMzM2NTQsIDcuNjQwMjQsIDkuNTMiLCBcCi0gICAgICAgICAgIjAuNTM1MjkzLCAwLjYyOTQwNCwgMS40ODE3NCwgMi45MDQ0NCwgNC4zMjg4NywgNy42MzU1NiwgOS41MzA0MSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODUzMzQsIDAuMDk5NTE0LCAwLjIyNjczMSwgMC40Mzg4MDYsIDAuNjUwODc2LCAxLjE0NTU4LCAxLjQyNzg3IiwgXAotICAgICAgICAgICIwLjA5NTI1MiwgMC4xMDkzODQsIDAuMjM2NjYsIDAuNDQ4OTA4LCAwLjY2MDY1OCwgMS4xNTUxLCAxLjQzODE0IiwgXAotICAgICAgICAgICIwLjEwNzIzNiwgMC4xMjE0NzcsIDAuMjQ4NzEyLCAwLjQ1OTc5NCwgMC42NzE3ODcsIDEuMTY2MTUsIDEuNDQ4NTciLCBcCi0gICAgICAgICAgIjAuMTE5NTIyLCAwLjEzMzcwNSwgMC4yNjA5NjMsIDAuNDcyODIzLCAwLjY4MzU5NiwgMS4xNzc3LCAxLjQ2MDkxIiwgXAotICAgICAgICAgICIwLjEzMjIxNCwgMC4xNDU5OTksIDAuMjczMzI0LCAwLjQ4NTIwNywgMC42OTcwNjMsIDEuMTg5OSwgMS40NzI0NSIsIFwKLSAgICAgICAgICAiMC4xNTIzNywgMC4xNjY0MzMsIDAuMjkyODY1LCAwLjUwNDg1MSwgMC43MTY3MDEsIDEuMjA4NzEsIDEuNDkxNjUiLCBcCi0gICAgICAgICAgIjAuMTY5NzY3LCAwLjE4Mzk1MywgMC4zMTAxNTUsIDAuNTIyMjAzLCAwLjczMzg0MSwgMS4yMjU5MiwgMS41MDgxNyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNjUzNzgsIDAuMTk0NDEzLCAwLjQ1NTA0OCwgMC44ODk3NTksIDEuMzI0NzksIDIuMzM5NTUsIDIuOTE4NiIsIFwKLSAgICAgICAgICAiMC4xNjUyMzgsIDAuMTk0Mzc0LCAwLjQ1NTAyOSwgMC44OTAwMiwgMS4zMjQ2OSwgMi4zMzg4MSwgMi45MTk0OCIsIFwKLSAgICAgICAgICAiMC4xNjY0NDYsIDAuMTk0OTQsIDAuNDU1MTY1LCAwLjg4OTgxNywgMS4zMjQ3NywgMi4zMzg4OCwgMi45MTc4NSIsIFwKLSAgICAgICAgICAiMC4xNzA2MjcsIDAuMTk4MDI4LCAwLjQ1NTI4MiwgMC44ODk3MDcsIDEuMzI0NjksIDIuMzM4NjgsIDIuOTE5NDQiLCBcCi0gICAgICAgICAgIjAuMTc1OTU3LCAwLjIwMzAyNCwgMC40NTU0MzMsIDAuODg5NzAxLCAxLjMyNDY3LCAyLjMzOTYxLCAyLjkxODU1IiwgXAotICAgICAgICAgICIwLjE4Njk5MSwgMC4yMTI5MjIsIDAuNDU5MTgyLCAwLjg4OTk5MywgMS4zMjQ5LCAyLjMzOTAxLCAyLjkxODA2IiwgXAotICAgICAgICAgICIwLjE5ODA0MiwgMC4yMjMwMjMsIDAuNDY0MzA3LCAwLjg5MDA3NiwgMS4zMjQzNiwgMi4zMzg5MiwgMi45MTk2NyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yODY5NjgsIDAuMzM1NTU2LCAwLjc3NDE0NywgMS41MDQ2MiwgMi4yMzM4NSwgMy45MzYwMSwgNC45MDgzNiIsIFwKLSAgICAgICAgICAiMC4yOTUyNDksIDAuMzQzOTU5LCAwLjc4MjMwNiwgMS41MTI0NSwgMi4yNDM2LCAzLjk0NDYxLCA0LjkxNzEiLCBcCi0gICAgICAgICAgIjAuMzA0Mjc3LCAwLjM1Mjk3NiwgMC43OTE3MjgsIDEuNTIyNjksIDIuMjUxNzUsIDMuOTUzOSwgNC45MjYzNiIsIFwKLSAgICAgICAgICAiMC4zMTMwMzcsIDAuMzYxODU3LCAwLjgwMDYxMSwgMS41MzExOSwgMi4yNjExNiwgMy45NjI5MywgNC45MzU3OSIsIFwKLSAgICAgICAgICAiMC4zMjE4NzQsIDAuMzcwNjg1LCAwLjgwOTI3OCwgMS41Mzk0NCwgMi4yNzA0NywgMy45NzIwMiwgNC45NDQ1NSIsIFwKLSAgICAgICAgICAiMC4zMzYwNTMsIDAuMzg0OTU2LCAwLjgyMzc3MywgMS41NTQ2OSwgMi4yODUzLCAzLjk4NjUyLCA0Ljk1OTIxIiwgXAotICAgICAgICAgICIwLjM0ODM3MSwgMC4zOTczMDMsIDAuODM1ODc4LCAxLjU2NjIyLCAyLjI5NzI2LCAzLjk5ODk3LCA0Ljk3MTUyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjUzMzg2NSwgMC42Mjg1MDMsIDEuNDg0MTgsIDIuOTA5MTgsIDQuMzM1ODQsIDcuNjQwODEsIDkuNTMxMjIiLCBcCi0gICAgICAgICAgIjAuNTMzODM3LCAwLjYyNzQ1LCAxLjQ4MzU2LCAyLjkwNzQ2LCA0LjMyMjgsIDcuNjQwOTEsIDkuNTMxMTEiLCBcCi0gICAgICAgICAgIjAuNTMzLCAwLjYyNzk0NiwgMS40ODAxNCwgMi45MDE3NSwgNC4zMzU5MywgNy42NDAzOSwgOS41MzA2NSIsIFwKLSAgICAgICAgICAiMC41MzMwNzksIDAuNjI3ODksIDEuNDgzNzgsIDIuOTAxNjEsIDQuMzM2NjEsIDcuNjQwMzIsIDkuNTI4NTEiLCBcCi0gICAgICAgICAgIjAuNTMyOTg3LCAwLjYyNzc3OCwgMS40ODAyNiwgMi45MDQyMywgNC4zMzY5MiwgNy42Mzk4OCwgOS41MzA3NCIsIFwKLSAgICAgICAgICAiMC41MzUwNzQsIDAuNjI4NDEsIDEuNDgzMywgMi45MDkwNywgNC4zMjM1NCwgNy42NDA0LCA5LjUyODkyIiwgXAotICAgICAgICAgICIwLjUzNjc4NSwgMC42Mjk4NDUsIDEuNDg0MTksIDIuOTA0MzgsIDQuMzM2ODMsIDcuNjQwNCwgOS41MzA1OCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODM3NTgsIDAuMDk3ODkyLCAwLjIyNTE2NCwgMC40MzcwNzUsIDAuNjQ5MDgxLCAxLjE0Mzc4LCAxLjQyNTk4IiwgXAotICAgICAgICAgICIwLjA5Mzc1MSwgMC4xMDc4NjMsIDAuMjM1MDQ5LCAwLjQ0Njk1OCwgMC42NTg3MjQsIDEuMTUzNDYsIDEuNDM2NDQiLCBcCi0gICAgICAgICAgIjAuMTA1NzMxLCAwLjExOTk2OCwgMC4yNDcwNjYsIDAuNDU4MDE3LCAwLjY3MDA1NywgMS4xNjQ1NSwgMS40NDY5MSIsIFwKLSAgICAgICAgICAiMC4xMTgwMjIsIDAuMTMyMTcxLCAwLjI1OTMyOCwgMC40NzExNTksIDAuNjgxOTA1LCAxLjE3NTk2LCAxLjQ1OTE0IiwgXAotICAgICAgICAgICIwLjEzMDcyOSwgMC4xNDQ0NjQsIDAuMjcxNjk3LCAwLjQ4MzU2OCwgMC42OTU0MSwgMS4xODgwOSwgMS40NzA3IiwgXAotICAgICAgICAgICIwLjE1MDc5LCAwLjE2NDkwMywgMC4yOTEyNDcsIDAuNTAzMTM1LCAwLjcxNDk2NywgMS4yMDY5NywgMS40OTAwMyIsIFwKLSAgICAgICAgICAiMC4xNjgxOSwgMC4xODI0MjEsIDAuMzA4NTIyLCAwLjUyMDUxNywgMC43MzIxOTMsIDEuMjI0MzksIDEuNTA2OTEiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTYzNDczLCAwLjE5MjMzNSwgMC40NTMzMTMsIDAuODg4NDA3LCAxLjMyMjYsIDIuMzM2NTIsIDIuOTE2MDUiLCBcCi0gICAgICAgICAgIjAuMTYzNDE4LCAwLjE5MjQ1NiwgMC40NTMyODcsIDAuODg3OTE0LCAxLjMyMjY0LCAyLjMzNjg4LCAyLjkxNjQ3IiwgXAotICAgICAgICAgICIwLjE2NDYyOCwgMC4xOTI5NDcsIDAuNDUzMjc3LCAwLjg4ODI0MiwgMS4zMjI4MiwgMi4zMzY4NywgMi45MTU5NiIsIFwKLSAgICAgICAgICAiMC4xNjg4NTgsIDAuMTk2MjcsIDAuNDUzMTE4LCAwLjg4ODAyNCwgMS4zMjI5LCAyLjMzNTk2LCAyLjkxNjM1IiwgXAotICAgICAgICAgICIwLjE3NDM5NSwgMC4yMDEzNjcsIDAuNDUzNjUsIDAuODg4Mjc4LCAxLjMyMjQxLCAyLjMzNzEsIDIuOTE2MyIsIFwKLSAgICAgICAgICAiMC4xODU0MTYsIDAuMjExMjQ3LCAwLjQ1NzIzNiwgMC44ODgwMTEsIDEuMzIyNjMsIDIuMzM1OTksIDIuOTE1OTYiLCBcCi0gICAgICAgICAgIjAuMTk2NjM0LCAwLjIyMTU4NiwgMC40NjI1OCwgMC44ODc5NjYsIDEuMzIyNjUsIDIuMzM2NDcsIDIuOTE2ODEiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjgyMzY5LCAwLjMzMDkyMywgMC43Njk0MzcsIDEuNDk4NzksIDIuMjMwMjMsIDMuOTMxNDYsIDQuOTAzOTUiLCBcCi0gICAgICAgICAgIjAuMjkwNjM3LCAwLjMzOTMwMywgMC43Nzc5MDYsIDEuNTA4MjQsIDIuMjM4ODQsIDMuOTQwMDcsIDQuOTEyNTUiLCBcCi0gICAgICAgICAgIjAuMzAwNzg5LCAwLjM0OTQ0OSwgMC43ODc4ODksIDEuNTE5MDEsIDIuMjQ4MDUsIDMuOTUwNDMsIDQuOTIzMDEiLCBcCi0gICAgICAgICAgIjAuMzEwOTU0LCAwLjM1OTU5NywgMC43OTgwMDcsIDEuNTI4NTgsIDIuMjU5NzUsIDMuOTYwODYsIDQuOTMzNDQiLCBcCi0gICAgICAgICAgIjAuMzIxMDc5LCAwLjM2OTkzMywgMC44MDgzNTMsIDEuNTM4NTgsIDIuMjY5NzMsIDMuOTcxMTIsIDQuOTQzNTkiLCBcCi0gICAgICAgICAgIjAuMzM3Mjg1LCAwLjM4NjE1NiwgMC44MjQ3MjIsIDEuNTU0OSwgMi4yODQ4NCwgMy45ODc2NiwgNC45NjAyIiwgXAotICAgICAgICAgICIwLjM1MTUzNCwgMC40MDA1MywgMC44MzkxMDEsIDEuNTY5OTMsIDIuMzAxMDIsIDQuMDAyMTIsIDQuOTc0NzQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuNTMyNTc3LCAwLjYyODk3OSwgMS40Nzk5NSwgMi45MDM1NCwgNC4zMzcxOSwgNy42NDA4NCwgOS41MzEzNSIsIFwKLSAgICAgICAgICAiMC41MzM2MTYsIDAuNjI3NzgyLCAxLjQ4Mzg0LCAyLjkwODQ4LCA0LjMzNzMxLCA3LjY0MDEyLCA5LjUzMTA2IiwgXAotICAgICAgICAgICIwLjUzMzYyLCAwLjYyNzkwOCwgMS40ODE0LCAyLjkwOTI1LCA0LjMzNTU5LCA3LjY0MDIsIDkuNTMwOTYiLCBcCi0gICAgICAgICAgIjAuNTMzNjYsIDAuNjI3ODk3LCAxLjQ4MTc2LCAyLjkwNzcyLCA0LjMyMzE2LCA3LjY0MDQzLCA5LjUyOTgzIiwgXAotICAgICAgICAgICIwLjUzMzY1OCwgMC42MjcyNCwgMS40ODE3MiwgMi45MDQyNCwgNC4zMzcyOCwgNy42NDA4OSwgOS41MzA1MiIsIFwKLSAgICAgICAgICAiMC41MzUzMDMsIDAuNjI5NjAyLCAxLjQ4MTYzLCAyLjkwNDM2LCA0LjMyNzE4LCA3LjYzOTksIDkuNTMwNTQiLCBcCi0gICAgICAgICAgIjAuNTM2OTM4LCAwLjYyOTc1NiwgMS40ODE2OCwgMi45MDI5MywgNC4zMjI2OCwgNy42NDAxMiwgOS41MzA2OCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJEIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODIwMTUsIDAuMDk2MTU2LCAwLjIyMzM0LCAwLjQzNTE2NiwgMC42NDc0MzUsIDEuMTQxMzgsIDEuNDI1NTQiLCBcCi0gICAgICAgICAgIjAuMDkxODIzLCAwLjEwNTk1NSwgMC4yMzMxMjEsIDAuNDQ1MjUsIDAuNjU3Mjg1LCAxLjE1MTczLCAxLjQzMzU3IiwgXAotICAgICAgICAgICIwLjEwNDA5OSwgMC4xMTgyMjgsIDAuMjQ1Mzk2LCAwLjQ1NjMxMSwgMC42NjgyNTgsIDEuMTYyNDcsIDEuNDQ1ODgiLCBcCi0gICAgICAgICAgIjAuMTE2NDE2LCAwLjEzMDU1NCwgMC4yNTc3NzksIDAuNDY5NTE2LCAwLjY4MDQ2NCwgMS4xNzQ1NiwgMS40NTcyNCIsIFwKLSAgICAgICAgICAiMC4xMjkyNDYsIDAuMTQzMzIsIDAuMjcwMTY4LCAwLjQ4MjA5NCwgMC42OTI1NjEsIDEuMTg3MTgsIDEuNDY5MDEiLCBcCi0gICAgICAgICAgIjAuMTQ5MzExLCAwLjE2MzQ0OCwgMC4yODk3NDIsIDAuNTAxNzUzLCAwLjcxMzQ4NCwgMS4yMDc0MiwgMS40ODg4MSIsIFwKLSAgICAgICAgICAiMC4xNjY2MTQsIDAuMTgwOTY1LCAwLjMwNzA1NCwgMC41MTkxNTIsIDAuNzMwNywgMS4yMjM1NiwgMS41MDcxMiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNjE3MDEsIDAuMTkwNTksIDAuNDUxNjQsIDAuODg3NjUyLCAxLjMyMTA3LCAyLjMzNTA2LCAyLjkyODYxIiwgXAotICAgICAgICAgICIwLjE2MTYwMywgMC4xOTA4MzMsIDAuNDUyMDI5LCAwLjg4NjI0OSwgMS4zMjEwMiwgMi4zMzU3NywgMi45MTQ3OSIsIFwKLSAgICAgICAgICAiMC4xNjMxMDIsIDAuMTkxNTEsIDAuNDUxNTkxLCAwLjg4NzQwOSwgMS4zMjExMywgMi4zMzUxNywgMi45MTYzMiIsIFwKLSAgICAgICAgICAiMC4xNjcyMTMsIDAuMTk0ODMzLCAwLjQ1MTM5LCAwLjg4NjAzOSwgMS4zMjExLCAyLjMzOTI2LCAyLjkxOTYiLCBcCi0gICAgICAgICAgIjAuMTcyNTU2LCAwLjE5OTYxMywgMC40NTI1NzQsIDAuODg2MjgxLCAxLjMyMTA0LCAyLjMzNzI0LCAyLjkyMTEiLCBcCi0gICAgICAgICAgIjAuMTgzNTg5LCAwLjIwOTUwOSwgMC40NTYxOTMsIDAuODg2NjM5LCAxLjMyMjgyLCAyLjMzNjY4LCAyLjkxNDg2IiwgXAotICAgICAgICAgICIwLjE5NDg0MSwgMC4yMTk2ODQsIDAuNDYxNTQ0LCAwLjg4NzQxNCwgMS4zMjI4NCwgMi4zMzU2MiwgMi45MTY3Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI3NTM2LCAwLjMyMzk5NywgMC43NjE5OCwgMS40OTMsIDIuMjIxOTEsIDMuOTI0NjYsIDQuODk2OTUiLCBcCi0gICAgICAgICAgIjAuMjgzNDQ2LCAwLjMzMjIwOSwgMC43NzA1NTQsIDEuNTAxNTksIDIuMjMxMDgsIDMuOTMyOTgsIDQuOTA1NjIiLCBcCi0gICAgICAgICAgIjAuMjkzNjMsIDAuMzQyNDU2LCAwLjc4MTAxNSwgMS41MTEzNiwgMi4yNDE1NywgMy45NDMzOCwgNC45MTYyMyIsIFwKLSAgICAgICAgICAiMC4zMDM5NSwgMC4zNTI2NzYsIDAuNzkxNTk2LCAxLjUyMTExLCAyLjI1MTc1LCAzLjk1MzY4LCA0LjkyNjQ1IiwgXAotICAgICAgICAgICIwLjMxNDIzNCwgMC4zNjI5MDEsIDAuODAxNDc0LCAxLjUzMTcxLCAyLjI2MjQ1LCAzLjk2NDEsIDQuOTM2NjgiLCBcCi0gICAgICAgICAgIjAuMzMwODg3LCAwLjM3OTQ5MSwgMC44MTgwMjEsIDEuNTQ5MzEsIDIuMjc4ODIsIDMuOTgwODcsIDQuOTUzNDYiLCBcCi0gICAgICAgICAgIjAuMzQ1NDMyLCAwLjM5NDI5NCwgMC44MzI0OTUsIDEuNTYyNTYsIDIuMjkzMDYsIDMuOTk1MzUsIDQuOTY3ODQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuNTMzMTE5LCAwLjYyNzkwNiwgMS40ODQxMywgMi45MDE0NCwgNC4zMjY4NCwgNy42NDA5NSwgOS41MzA5NyIsIFwKLSAgICAgICAgICAiMC41MzM5ODEsIDAuNjI3ODc0LCAxLjQ4MTU3LCAyLjkwOTI2LCA0LjMzNjMsIDcuNjQwMzcsIDkuNTMxNTMiLCBcCi0gICAgICAgICAgIjAuNTMzOTQ2LCAwLjYyNzk4LCAxLjQ4MzU1LCAyLjkwNzY5LCA0LjMzNjU1LCA3LjY0MDMyLCA5LjUyODU3IiwgXAotICAgICAgICAgICIwLjUzMjk1MiwgMC42Mjc5MTYsIDEuNDg0MDYsIDIuOTA0MDksIDQuMzM2MjEsIDcuNjQwMjYsIDkuNTMxMDMiLCBcCi0gICAgICAgICAgIjAuNTMyNDc5LCAwLjYyODk0MywgMS40ODE2NSwgMi45MDQzLCA0LjMzNjczLCA3LjY0MDc4LCA5LjUzMDc0IiwgXAotICAgICAgICAgICIwLjUzNTc3MiwgMC42MjgzMjcsIDEuNDgxODEsIDIuOTA5MzksIDQuMzI2MjUsIDcuNjQwOTYsIDkuNTI5NTkiLCBcCi0gICAgICAgICAgIjAuNTM5MDMzLCAwLjYzMTgzMSwgMS40ODE1OSwgMi45MDQzMywgNC4zMjM3NiwgNy42Mzc0MywgOS41MzA1NCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTk2NCwgMC4wMDE5NjQsIDAuMDAxOTY0LCAwLjAwMTk2NCwgMC4wMDE5NjQsIDAuMDAxOTYzLCAwLjAwMTk2MyIsIFwKLSAgICAgICAgICAiMC4wMDE5NTUsIDAuMDAxOTU1LCAwLjAwMTk1NiwgMC4wMDE5NTYsIDAuMDAxOTU1LCAwLjAwMTk1NSwgMC4wMDE5NTUiLCBcCi0gICAgICAgICAgIjAuMDAxOTUzLCAwLjAwMTk1NCwgMC4wMDE5NTQsIDAuMDAxOTU0LCAwLjAwMTk1MywgMC4wMDE5NTIsIDAuMDAxOTUyIiwgXAotICAgICAgICAgICIwLjAwMTk1MywgMC4wMDE5NTMsIDAuMDAxOTU0LCAwLjAwMTk1NCwgMC4wMDE5NTIsIDAuMDAxOTUxLCAwLjAwMTk1MSIsIFwKLSAgICAgICAgICAiMC4wMDE5NTUsIDAuMDAxOTU1LCAwLjAwMTk1NCwgMC4wMDE5NTQsIDAuMDAxOTUyLCAwLjAwMTk1MiwgMC4wMDE5NTIiLCBcCi0gICAgICAgICAgIjAuMDAxOTU5LCAwLjAwMTk1OSwgMC4wMDE5NTUsIDAuMDAxOTU1LCAwLjAwMTk1NCwgMC4wMDE5NTIsIDAuMDAxOTUxIiwgXAotICAgICAgICAgICIwLjAwMTk2NSwgMC4wMDE5NjQsIDAuMDAxOTU3LCAwLjAwMTk1NiwgMC4wMDE5NTQsIDAuMDAxOTUyLCAwLjAwMTk1MiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDU5OSwgMC4wMDA1OTksIDAuMDAwNjAxLCAwLjAwMDYwMSwgMC4wMDA2MDEsIDAuMDAwNjAxLCAwLjAwMDU5OCIsIFwKLSAgICAgICAgICAiMC4wMDA1OTEsIDAuMDAwNTkzLCAwLjAwMDU5NywgMC4wMDA1OTksIDAuMDAwNiwgMC4wMDA2MDEsIDAuMDAwNjAxIiwgXAotICAgICAgICAgICIwLjAwMDU4MywgMC4wMDA1ODUsIDAuMDAwNTk0LCAwLjAwMDU5NywgMC4wMDA1OTksIDAuMDAwNiwgMC4wMDA2IiwgXAotICAgICAgICAgICIwLjAwMDU3NiwgMC4wMDA1NzksIDAuMDAwNTksIDAuMDAwNTk1LCAwLjAwMDU5NywgMC4wMDA1OTksIDAuMDAwNTk5IiwgXAotICAgICAgICAgICIwLjAwMDU3MSwgMC4wMDA1NzQsIDAuMDAwNTg3LCAwLjAwMDU5NCwgMC4wMDA1OTYsIDAuMDAwNTk4LCAwLjAwMDU5OSIsIFwKLSAgICAgICAgICAiMC4wMDA1NjQsIDAuMDAwNTY3LCAwLjAwMDU4MywgMC4wMDA1OTEsIDAuMDAwNTk0LCAwLjAwMDU5NywgMC4wMDA1OTgiLCBcCi0gICAgICAgICAgIjAuMDAwNTYsIDAuMDAwNTYzLCAwLjAwMDU3OSwgMC4wMDA1ODksIDAuMDAwNTkyLCAwLjAwMDU5NiwgMC4wMDA1OTciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDE3MDYsIDAuMDAxNzA3LCAwLjAwMTcwNywgMC4wMDE3MDYsIDAuMDAxNzA2LCAwLjAwMTcwNiwgMC4wMDE3MDYiLCBcCi0gICAgICAgICAgIjAuMDAxNzAxLCAwLjAwMTcwMSwgMC4wMDE3MDIsIDAuMDAxNzAyLCAwLjAwMTcwMiwgMC4wMDE3MDIsIDAuMDAxNzAyIiwgXAotICAgICAgICAgICIwLjAwMTY5OSwgMC4wMDE3LCAwLjAwMTcwMSwgMC4wMDE3MDEsIDAuMDAxNzAxLCAwLjAwMTcsIDAuMDAxNzAxIiwgXAotICAgICAgICAgICIwLjAwMTY5OSwgMC4wMDE2OTksIDAuMDAxNzAxLCAwLjAwMTcwMiwgMC4wMDE3MDEsIDAuMDAxNywgMC4wMDE3IiwgXAotICAgICAgICAgICIwLjAwMTcwMSwgMC4wMDE3MDEsIDAuMDAxNzAyLCAwLjAwMTcwMiwgMC4wMDE3MDIsIDAuMDAxNywgMC4wMDE3IiwgXAotICAgICAgICAgICIwLjAwMTcwNiwgMC4wMDE3MDUsIDAuMDAxNzAzLCAwLjAwMTcwMiwgMC4wMDE3MDIsIDAuMDAxNzAxLCAwLjAwMTciLCBcCi0gICAgICAgICAgIjAuMDAxNzEyLCAwLjAwMTcxMSwgMC4wMDE3MDUsIDAuMDAxNzA0LCAwLjAwMTcwMywgMC4wMDE3MDIsIDAuMDAxNzAxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwNTk5LCAwLjAwMDU5OSwgMC4wMDA2MDEsIDAuMDAwNjAxLCAwLjAwMDYwMSwgMC4wMDA2MDEsIDAuMDAwNjAxIiwgXAotICAgICAgICAgICIwLjAwMDU5MSwgMC4wMDA1OTIsIDAuMDAwNTk3LCAwLjAwMDU5OSwgMC4wMDA1OTksIDAuMDAwNjAxLCAwLjAwMDYwMSIsIFwKLSAgICAgICAgICAiMC4wMDA1ODMsIDAuMDAwNTg1LCAwLjAwMDU5NCwgMC4wMDA1OTcsIDAuMDAwNTk5LCAwLjAwMDYsIDAuMDAwNiIsIFwKLSAgICAgICAgICAiMC4wMDA1NzYsIDAuMDAwNTc5LCAwLjAwMDU5LCAwLjAwMDU5NSwgMC4wMDA1OTcsIDAuMDAwNTk5LCAwLjAwMDYiLCBcCi0gICAgICAgICAgIjAuMDAwNTcxLCAwLjAwMDU3NCwgMC4wMDA1ODcsIDAuMDAwNTk0LCAwLjAwMDU5NiwgMC4wMDA1OTgsIDAuMDAwNTk5IiwgXAotICAgICAgICAgICIwLjAwMDU2NCwgMC4wMDA1NjgsIDAuMDAwNTgzLCAwLjAwMDU5MSwgMC4wMDA1OTQsIDAuMDAwNTk3LCAwLjAwMDU5OCIsIFwKLSAgICAgICAgICAiMC4wMDA1NjEsIDAuMDAwNTY0LCAwLjAwMDU4LCAwLjAwMDU4OSwgMC4wMDA1OTIsIDAuMDAwNTk2LCAwLjAwMDU5NyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTQ1NCwgMC4wMDE0NTQsIDAuMDAxNDU0LCAwLjAwMTQ1NCwgMC4wMDE0NTQsIDAuMDAxNDU0LCAwLjAwMTQ1NCIsIFwKLSAgICAgICAgICAiMC4wMDE0NTQsIDAuMDAxNDU1LCAwLjAwMTQ1NywgMC4wMDE0NTgsIDAuMDAxNDU4LCAwLjAwMTQ1NywgMC4wMDE0NTgiLCBcCi0gICAgICAgICAgIjAuMDAxNDUzLCAwLjAwMTQ1NCwgMC4wMDE0NTcsIDAuMDAxNDU4LCAwLjAwMTQ1OCwgMC4wMDE0NTksIDAuMDAxNDU4IiwgXAotICAgICAgICAgICIwLjAwMTQ1MiwgMC4wMDE0NTMsIDAuMDAxNDU3LCAwLjAwMTQ1OCwgMC4wMDE0NTgsIDAuMDAxNDU5LCAwLjAwMTQ1OSIsIFwKLSAgICAgICAgICAiMC4wMDE0NTQsIDAuMDAxNDU0LCAwLjAwMTQ1NywgMC4wMDE0NTgsIDAuMDAxNDU4LCAwLjAwMTQ1OSwgMC4wMDE0NTkiLCBcCi0gICAgICAgICAgIjAuMDAxNDU3LCAwLjAwMTQ1OCwgMC4wMDE0NTcsIDAuMDAxNDU5LCAwLjAwMTQ1OSwgMC4wMDE0NTksIDAuMDAxNDU5IiwgXAotICAgICAgICAgICIwLjAwMTQ2MywgMC4wMDE0NjIsIDAuMDAxNDYsIDAuMDAxNDYsIDAuMDAxNDYsIDAuMDAxNDYsIDAuMDAxNDYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDA1OTksIDAuMDAwNTk5LCAwLjAwMDYwMSwgMC4wMDA2MDIsIDAuMDAwNjAxLCAwLjAwMDYwMSwgMC4wMDA2MDIiLCBcCi0gICAgICAgICAgIjAuMDAwNTkxLCAwLjAwMDU5MiwgMC4wMDA1OTcsIDAuMDAwNTk5LCAwLjAwMDYsIDAuMDAwNjAxLCAwLjAwMDYwMSIsIFwKLSAgICAgICAgICAiMC4wMDA1ODMsIDAuMDAwNTg1LCAwLjAwMDU5NCwgMC4wMDA1OTcsIDAuMDAwNTk5LCAwLjAwMDYsIDAuMDAwNiIsIFwKLSAgICAgICAgICAiMC4wMDA1NzYsIDAuMDAwNTc5LCAwLjAwMDU5LCAwLjAwMDU5NSwgMC4wMDA1OTcsIDAuMDAwNTk5LCAwLjAwMDU5OSIsIFwKLSAgICAgICAgICAiMC4wMDA1NzIsIDAuMDAwNTc1LCAwLjAwMDU4NywgMC4wMDA1OTQsIDAuMDAwNTk2LCAwLjAwMDU5OCwgMC4wMDA1OTkiLCBcCi0gICAgICAgICAgIjAuMDAwNTY2LCAwLjAwMDU2OSwgMC4wMDA1ODMsIDAuMDAwNTkxLCAwLjAwMDU5NCwgMC4wMDA1OTcsIDAuMDAwNTk4IiwgXAotICAgICAgICAgICIwLjAwMDU2MywgMC4wMDA1NjYsIDAuMDAwNTgxLCAwLjAwMDU4OSwgMC4wMDA1OTMsIDAuMDAwNTk2LCAwLjAwMDU5NyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkQiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTE5NCwgMC4wMDExOTQsIDAuMDAxMTk1LCAwLjAwMTE5NSwgMC4wMDExOTUsIDAuMDAxMTk1LCAwLjAwMTE5NSIsIFwKLSAgICAgICAgICAiMC4wMDExOTcsIDAuMDAxMTk4LCAwLjAwMTIwMSwgMC4wMDEyMDIsIDAuMDAxMjAyLCAwLjAwMTIwMywgMC4wMDEyMDIiLCBcCi0gICAgICAgICAgIjAuMDAxMTk1LCAwLjAwMTE5NiwgMC4wMDEyMDEsIDAuMDAxMjA0LCAwLjAwMTIwNSwgMC4wMDEyMDUsIDAuMDAxMjA1IiwgXAotICAgICAgICAgICIwLjAwMTE5MywgMC4wMDExOTUsIDAuMDAxMiwgMC4wMDEyMDMsIDAuMDAxMjA1LCAwLjAwMTIwNiwgMC4wMDEyMDYiLCBcCi0gICAgICAgICAgIjAuMDAxMTkzLCAwLjAwMTE5NCwgMC4wMDEyLCAwLjAwMTIwMiwgMC4wMDEyMDUsIDAuMDAxMjA1LCAwLjAwMTIwNiIsIFwKLSAgICAgICAgICAiMC4wMDExOTQsIDAuMDAxMTk1LCAwLjAwMTIsIDAuMDAxMjAzLCAwLjAwMTIwNCwgMC4wMDEyMDUsIDAuMDAxMjA2IiwgXAotICAgICAgICAgICIwLjAwMTE5NywgMC4wMDExOTgsIDAuMDAxMjAxLCAwLjAwMTIwMywgMC4wMDEyMDQsIDAuMDAxMjA2LCAwLjAwMTIwNiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDU5OSwgMC4wMDA2LCAwLjAwMDYsIDAuMDAwNjAxLCAwLjAwMDYwMSwgMC4wMDA2MDEsIDAuMDAwNjAxIiwgXAotICAgICAgICAgICIwLjAwMDU5LCAwLjAwMDU5MSwgMC4wMDA1OTcsIDAuMDAwNTk5LCAwLjAwMDYsIDAuMDAwNiwgMC4wMDA2MDEiLCBcCi0gICAgICAgICAgIjAuMDAwNTgyLCAwLjAwMDU4NCwgMC4wMDA1OTMsIDAuMDAwNTk3LCAwLjAwMDU5OCwgMC4wMDA2LCAwLjAwMDYiLCBcCi0gICAgICAgICAgIjAuMDAwNTc3LCAwLjAwMDU3OSwgMC4wMDA1OSwgMC4wMDA1OTUsIDAuMDAwNTk3LCAwLjAwMDU5OSwgMC4wMDA1OTkiLCBcCi0gICAgICAgICAgIjAuMDAwNTc0LCAwLjAwMDU3NywgMC4wMDA1ODgsIDAuMDAwNTk0LCAwLjAwMDU5NiwgMC4wMDA1OTgsIDAuMDAwNTk5IiwgXAotICAgICAgICAgICIwLjAwMDU3NCwgMC4wMDA1NzYsIDAuMDAwNTg2LCAwLjAwMDU5MiwgMC4wMDA1OTUsIDAuMDAwNTk4LCAwLjAwMDU5OCIsIFwKLSAgICAgICAgICAiMC4wMDA1NzcsIDAuMDAwNTc4LCAwLjAwMDU4NSwgMC4wMDA1OTIsIDAuMDAwNTk0LCAwLjAwMDU5NywgMC4wMDA1OTgiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBOT1IzQlg0ICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKE5PUjNCWDQpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC40NDkwMjg7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEFOKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA5MjgyMTc7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwOTI3ODkxOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDkyODIxNzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDI5NjksIDAuMDAyOTIyLCAwLjAwMjkxNywgMC4wMDI5MTQsIDAuMDAyOTIyLCAwLjAwMjk0NywgMC4wMDI5OCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNDM4NSwgMC4wMDQzNTEsIDAuMDA0MzM2LCAwLjAwNDMyNywgMC4wMDQzMzEsIDAuMDA0MzU2LCAwLjAwNDM4MiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAzNTM3Mzc7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAzNTE2NDQ7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAzNTM3Mzc7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNjYxLCAwLjAwMDY2MSwgMC4wMDA2NjEsIDAuMDAwNjYyLCAwLjAwMDY2MiwgMC4wMDA2NjIsIDAuMDAwNjYyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxMzcxLCAwLjAwMTM3MiwgMC4wMDEzNzEsIDAuMDAxMzcxLCAwLjAwMTM2NiwgMC4wMDEzNzEsIDAuMDAxMzcyIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihDKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDMyNjg7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAzMjY4OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMzI2NzU1OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDQ1MywgMC4wMDA0NTMsIDAuMDAwNDUzLCAwLjAwMDQ1MywgMC4wMDA0NTMsIDAuMDAwNDUzLCAwLjAwMDQ1MyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTE4NywgMC4wMDExODcsIDAuMDAxMTg1LCAwLjAwMTE4NiwgMC4wMDExODUsIDAuMDAxMTg2LCAwLjAwMTE4NiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjM2OTMyOwotICAgIGZ1bmN0aW9uIDogIighKCgoIUFOKStCKStDKSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkFOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4MzMzOCwgMC4yODYzOTQsIDAuNDg4OTkzLCAwLjYzNDA3MSwgMC44NjU4MDMsIDEuMDY5MjMsIDEuMzU4MTkiLCBcCi0gICAgICAgICAgIjAuMDkzNDg1LCAwLjI5NjQ4NSwgMC40OTkxMzcsIDAuNjQzODk2LCAwLjg3NTk1NiwgMS4wNzk0MywgMS4zNjg0OSIsIFwKLSAgICAgICAgICAiMC4xMDYyNTcsIDAuMzA5MzM1LCAwLjUxMTk5NiwgMC42NTY4NTQsIDAuODg4ODU0LCAxLjA5MjA2LCAxLjM4MTY0IiwgXAotICAgICAgICAgICIwLjExNzc5NSwgMC4zMjA5NzcsIDAuNTIzODgxLCAwLjY2ODk1OSwgMC45MDEyMDQsIDEuMTAzOTMsIDEuMzkzODUiLCBcCi0gICAgICAgICAgIjAuMTI3OTQ2LCAwLjMzMTIwNywgMC41MzQxNzksIDAuNjc5MDY4LCAwLjkxMDg0NCwgMS4xMTM4MSwgMS40MDM2NSIsIFwKLSAgICAgICAgICAiMC4xNDE5MTUsIDAuMzQ1MjUsIDAuNTQ4MjM0LCAwLjY5Mjk0OCwgMC45MjQ2ODgsIDEuMTI3NzcsIDEuNDE3MTgiLCBcCi0gICAgICAgICAgIjAuMTUyNzA2LCAwLjM1NTkxNiwgMC41NTg5NDQsIDAuNzAzNzg5LCAwLjkzNTQ3NCwgMS4xMzgzMiwgMS40Mjg4NyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5MTA5NSwgMC40OTgyNywgMC45MDQ3MTIsIDEuMTk3NiwgMS42NjM2MSwgMi4wNjY1NiwgMi42NDk3MSIsIFwKLSAgICAgICAgICAiMC4wOTExMTUsIDAuNDk3NTg4LCAwLjkwNDAxMywgMS4xOTQ4LCAxLjY2MTA5LCAyLjA2NjYxLCAyLjY0OTMzIiwgXAotICAgICAgICAgICIwLjA5MTEwNywgMC40OTc5ODcsIDAuOTA0MzA4LCAxLjE5NTg4LCAxLjY2MjY5LCAyLjA2NjgzLCAyLjY0Nzk1IiwgXAotICAgICAgICAgICIwLjA5MTI0OCwgMC40OTgyNzcsIDAuOTA2MzgyLCAxLjE5NzkxLCAxLjY2MDA2LCAyLjA2Njc3LCAyLjY0ODE0IiwgXAotICAgICAgICAgICIwLjA5MTM1MSwgMC40OTg2MDUsIDAuOTA2NTE3LCAxLjE5NTMzLCAxLjY2MDY3LCAyLjA3MTg2LCAyLjY0Nzk4IiwgXAotICAgICAgICAgICIwLjA5MTY0OSwgMC40OTg2NjksIDAuOTA2NTgyLCAxLjE5NzY2LCAxLjY2MzY1LCAyLjA3MTc4LCAyLjY0OTMiLCBcCi0gICAgICAgICAgIjAuMDkyMDkzLCAwLjQ5ODI3MSwgMC45MDY0NSwgMS4xOTc2OSwgMS42NjA4MywgMi4wNzE0NSwgMi42NDgwOCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1MzEzNCwgMC4xMjgwNDQsIDAuMjAxMzk4LCAwLjI1MzczMSwgMC4zMzc0NzEsIDAuNDEwNjExLCAwLjUxNTE0NCIsIFwKLSAgICAgICAgICAiMC4wNjMwNzUsIDAuMTM4MDI1LCAwLjIxMTQyMSwgMC4yNjM4MDcsIDAuMzQ3NDY1LCAwLjQyMDY4OSwgMC41MjUzMyIsIFwKLSAgICAgICAgICAiMC4wNzU1MjQsIDAuMTUwNDY1LCAwLjIyMzg4NSwgMC4yNzYyMjMsIDAuMzU5OTc4LCAwLjQzMzIxMiwgMC41Mzc3MTIiLCBcCi0gICAgICAgICAgIjAuMDg2ODMxLCAwLjE2MTY3LCAwLjIzNTAyOCwgMC4yODczNjIsIDAuMzcxMDU2LCAwLjQ0NDIwOSwgMC41NDg5NTkiLCBcCi0gICAgICAgICAgIjAuMDk2NDA4LCAwLjE3MTU2OSwgMC4yNDQ5NTUsIDAuMjk3MjksIDAuMzgxMDMxLCAwLjQ1NDI1LCAwLjU1ODgyMyIsIFwKLSAgICAgICAgICAiMC4xMTAwMzIsIDAuMTg1MDE3LCAwLjI1ODM2MywgMC4zMTA3MTcsIDAuMzk0MzUzLCAwLjQ2NzY0MiwgMC41NzIxOTkiLCBcCi0gICAgICAgICAgIjAuMTIwMjIxLCAwLjE5NTQ2NCwgMC4yNjc5NCwgMC4zMjAyMzcsIDAuNDAzOTExLCAwLjQ3NzA3NSwgMC41ODE2MTciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDExNjQsIDAuMTg1NDM4LCAwLjMzMTk3OCwgMC40MzY5MzUsIDAuNjA0OTQyLCAwLjc1MjAzNiwgMC45NjIxOTIiLCBcCi0gICAgICAgICAgIjAuMDQxMTMzLCAwLjE4NTQxOSwgMC4zMzIwNzcsIDAuNDM2OTcsIDAuNjA1MDA4LCAwLjc1MjI5NywgMC45NjIwOSIsIFwKLSAgICAgICAgICAiMC4wNDEyODUsIDAuMTg1NDQzLCAwLjMzMTkyMywgMC40MzcwNzYsIDAuNjA1MDQ4LCAwLjc1MjE1NSwgMC45NjIwNTgiLCBcCi0gICAgICAgICAgIjAuMDQxOTE4LCAwLjE4NTU2NywgMC4zMzIwMTUsIDAuNDM3MDMzLCAwLjYwNDkyMSwgMC43NTIwMjEsIDAuOTYyMjgxIiwgXAotICAgICAgICAgICIwLjA0MzE4LCAwLjE4NTc4NiwgMC4zMzIwMjcsIDAuNDM2OTIxLCAwLjYwNDk0MiwgMC43NTIxNjksIDAuOTYyMjM4IiwgXAotICAgICAgICAgICIwLjA0NDU5MSwgMC4xODYyMywgMC4zMzIyMTQsIDAuNDM2OTg3LCAwLjYwNDkxNCwgMC43NTIxMjQsIDAuOTYyMzA3IiwgXAotICAgICAgICAgICIwLjA0NTk3NywgMC4xODY2NjQsIDAuMzMyMzkxLCAwLjQzNzE5NiwgMC42MDUwODIsIDAuNzUyMDcsIDAuOTYyMDQ5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDUyOTMzLCAwLjI1NjEwNCwgMC40NTg5MzEsIDAuNjA0MjA5LCAwLjgzNDg4OCwgMS4wMzkxNiwgMS4zMjgwOSIsIFwKLSAgICAgICAgICAiMC4wNjEyNDksIDAuMjY0NTA3LCAwLjQ2NzQxOSwgMC42MTI0MjMsIDAuODQ0ODY3LCAxLjA0NzAzLCAxLjMzNjk4IiwgXAotICAgICAgICAgICIwLjA3MTAwOSwgMC4yNzQ0NDgsIDAuNDc3ODU4LCAwLjYyMjE5MSwgMC44NTQyMzcsIDEuMDU2OTksIDEuMzQ3MDciLCBcCi0gICAgICAgICAgIjAuMDgwNzUsIDAuMjg0NDIxLCAwLjQ4NzI2MiwgMC42MzI2NDIsIDAuODY0MzU4LCAxLjA2Njc3LCAxLjM1NzAyIiwgXAotICAgICAgICAgICIwLjA4OTkxOSwgMC4yOTQyMzksIDAuNDk3NDM5LCAwLjY0MjA3MywgMC44NzM5MTgsIDEuMDc2NjUsIDEuMzY3NzIiLCBcCi0gICAgICAgICAgIjAuMTAyODUzLCAwLjMxMDAxLCAwLjUxMjk1OSwgMC42NTc5OTMsIDAuODg5NzA5LCAxLjA5MjYzLCAxLjM4MjcyIiwgXAotICAgICAgICAgICIwLjExMjk2MywgMC4zMjM1NzIsIDAuNTI2OTY0LCAwLjY3MjA4MywgMC45MDQwODgsIDEuMTA2ODgsIDEuMzk2MTgiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTA2MzgsIDAuNDk3NDkzLCAwLjkwNTQsIDEuMTk3NDksIDEuNjYxMTYsIDIuMDY3MDgsIDIuNjU0MzkiLCBcCi0gICAgICAgICAgIjAuMDkwOTAzLCAwLjQ5ODI4NSwgMC45MDQ3OTMsIDEuMTk2MjIsIDEuNjYwMiwgMi4wNzE3NiwgMi42NDgwNCIsIFwKLSAgICAgICAgICAiMC4wOTI4MDIsIDAuNDk3NjUxLCAwLjkwNDQxOCwgMS4xOTYxNiwgMS42NjM5NCwgMi4wNjc4MywgMi42NTA5OCIsIFwKLSAgICAgICAgICAiMC4wOTY2NzYsIDAuNDk4NzI1LCAwLjkwNjM4MywgMS4xOTUwNSwgMS42NjE4NSwgMi4wNjc4OCwgMi42NTA5NyIsIFwKLSAgICAgICAgICAiMC4xMDE4MSwgMC40OTg4MTIsIDAuOTA2NjQzLCAxLjE5NjksIDEuNjYwNzUsIDIuMDcxNDEsIDIuNjQ4MjgiLCBcCi0gICAgICAgICAgIjAuMTExNjcsIDAuNTAwNDc0LCAwLjkwNTgwNCwgMS4xOTc1OCwgMS42NjA2NCwgMi4wNjc5NSwgMi42NDc5OCIsIFwKLSAgICAgICAgICAiMC4xMjE3NzUsIDAuNTAyNDYsIDAuOTA2MDc5LCAxLjE5Nzc5LCAxLjY2NDAxLCAyLjA3MTc0LCAyLjY1MjI4Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDIxMzU5LCAwLjA5Mzk1MSwgMC4xNjYyNjcsIDAuMjE3OTAyLCAwLjMwMDU2MiwgMC4zNzI2NzYsIDAuNDc1OTQiLCBcCi0gICAgICAgICAgIjAuMDMxNTY4LCAwLjEwNDEyLCAwLjE3NjQwOSwgMC4yMjgwMTksIDAuMzEwNTY5LCAwLjM4MjcyNCwgMC40ODU5MDgiLCBcCi0gICAgICAgICAgIjAuMDQ0MjM5LCAwLjExNjc5MywgMC4xODkxODgsIDAuMjQwNzY3LCAwLjMyMzU5NCwgMC4zOTU4MDMsIDAuNDk3NzE1IiwgXAotICAgICAgICAgICIwLjA1NDM0MSwgMC4xMjk1NSwgMC4yMDE4NTgsIDAuMjUzMzYxLCAwLjMzNTgwNywgMC40MDgxNjIsIDAuNTExMTYyIiwgXAotICAgICAgICAgICIwLjA2Mjk3NSwgMC4xNDI5MjksIDAuMjE0NzY1LCAwLjI2NjI1NywgMC4zNDg2NDQsIDAuNDIwODA1LCAwLjUyMzkzIiwgXAotICAgICAgICAgICIwLjA3NTY1MSwgMC4xNjM1MTIsIDAuMjM2MTM4LCAwLjI4NzY0LCAwLjM2OTI3LCAwLjQ0MTI4OCwgMC41NDQ0NzMiLCBcCi0gICAgICAgICAgIjAuMDg0Nzk4LCAwLjE4MTk3NCwgMC4yNTI3MDcsIDAuMzA0MjQ3LCAwLjM4NzM2MSwgMC40NTkzOTgsIDAuNTYyMzk0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDMzMjI3LCAwLjE3ODMwNSwgMC4zMjM2MDgsIDAuNDI3MTk1LCAwLjU5MzI1MiwgMC43MzgyNzIsIDAuOTQ1NzY0IiwgXAotICAgICAgICAgICIwLjAzNTQxLCAwLjE3ODMwOSwgMC4zMjM0NjUsIDAuNDI3MTM0LCAwLjU5Mjk4NiwgMC43MzgxNTUsIDAuOTQ1NDk2IiwgXAotICAgICAgICAgICIwLjA0MjU5NywgMC4xNzg4OTcsIDAuMzIzNDU5LCAwLjQyNzIzNywgMC41OTMxNzgsIDAuNzM4NTAzLCAwLjk0NTQzNCIsIFwKLSAgICAgICAgICAiMC4wNTIzMywgMC4xODIxMTMsIDAuMzIzNjgsIDAuNDI3MTE1LCAwLjU5Mjk2OSwgMC43MzgyMzUsIDAuOTQ1NDM2IiwgXAotICAgICAgICAgICIwLjA2MTU1MiwgMC4xODY2NTQsIDAuMzI1NTcxLCAwLjQyNzQ4NywgMC41OTI5ODEsIDAuNzM4NDY0LCAwLjk0NTQzMiIsIFwKLSAgICAgICAgICAiMC4wNzM5ODcsIDAuMTk2NjY4LCAwLjMzMDg1MywgMC40MzA3NTEsIDAuNTkzNjIyLCAwLjczODI0MiwgMC45NDU1OTIiLCBcCi0gICAgICAgICAgIjAuMDg0OTczLCAwLjIwNjgxMywgMC4zMzg2NzQsIDAuNDM2MjE4LCAwLjU5NjI3NiwgMC43Mzg5OTMsIDAuOTQ1ODE2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQ1NTgsIDAuMjQ4NjQ0LCAwLjQ1MTQxMywgMC41OTY1NDksIDAuODI4LCAxLjAzMTMsIDEuMzIwOTUiLCBcCi0gICAgICAgICAgIjAuMDUzNjQ3LCAwLjI1NzE4NCwgMC40NTk5OTUsIDAuNjA0ODMzLCAwLjgzNzMyNCwgMS4wMzkzOCwgMS4zMzAyMSIsIFwKLSAgICAgICAgICAiMC4wNjQyMjUsIDAuMjY3NjQyLCAwLjQ3MDYwMywgMC42MTUxOTcsIDAuODQ3Mzg5LCAxLjA1MDEsIDEuMzQwMjkiLCBcCi0gICAgICAgICAgIjAuMDc1Mjg0LCAwLjI3ODU1LCAwLjQ4MTg4MywgMC42MjY2MjEsIDAuODU4MDMxLCAxLjA2MjE4LCAxLjM1MDYiLCBcCi0gICAgICAgICAgIjAuMDg1NzI4LCAwLjI4OTAwNSwgMC40OTIxMDUsIDAuNjM3MDM4LCAwLjg2ODg5OCwgMS4wNzE3MSwgMS4zNjIzIiwgXAotICAgICAgICAgICIwLjA5OTI5MywgMC4zMDY0MzYsIDAuNTA5Mjc4LCAwLjY1NDI3NywgMC44ODYxNTYsIDEuMDg5MDksIDEuMzc4NiIsIFwKLSAgICAgICAgICAiMC4xMTAwMzQsIDAuMzIxNjExLCAwLjUyNDM5NSwgMC42Njk2MzcsIDAuOTAxMDg4LCAxLjEwNDA2LCAxLjM5NDA1Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDkwNjUyLCAwLjQ5ODU4MSwgMC45MDU4MDIsIDEuMTk1MDgsIDEuNjYwOTQsIDIuMDY5MTgsIDIuNjU0NTIiLCBcCi0gICAgICAgICAgIjAuMDkwNTc5LCAwLjQ5ODY0NiwgMC45MDYzMzYsIDEuMTk2OTIsIDEuNjYwMDgsIDIuMDY3NTksIDIuNjQ4MjUiLCBcCi0gICAgICAgICAgIjAuMDk1MDUsIDAuNDk4MjkzLCAwLjkwNjM2MiwgMS4xOTU5OCwgMS42NjA2OCwgMi4wNzE0NiwgMi42NDgyNSIsIFwKLSAgICAgICAgICAiMC4xMDE0OTQsIDAuNDk3NjU1LCAwLjkwNDI4OSwgMS4xOTU1MSwgMS42NjI0OSwgMi4wNjcxNywgMi42NDk4MyIsIFwKLSAgICAgICAgICAiMC4xMDk5MjYsIDAuNDk4MzYsIDAuOTA2NDMzLCAxLjE5Nzc0LCAxLjY2MzgzLCAyLjA2Nzc2LCAyLjY0ODIzIiwgXAotICAgICAgICAgICIwLjEyMzk4LCAwLjUwMTI3LCAwLjkwNTc2NiwgMS4xOTc2LCAxLjY2Mzc0LCAyLjA3MTY3LCAyLjY1Mzk2IiwgXAotICAgICAgICAgICIwLjEzNjc4LCAwLjUwNjEyOCwgMC45MDU5NCwgMS4xOTc5NSwgMS42NjI1OSwgMi4wNjcxNywgMi42NDkwOSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxOTAyNCwgMC4wOTE1NjIsIDAuMTY0MDQsIDAuMjE1ODAyLCAwLjI5ODc0NSwgMC4zNzEwNCwgMC40NzQ3NDEiLCBcCi0gICAgICAgICAgIjAuMDI5MzM3LCAwLjEwMTgzNCwgMC4xNzQzMjcsIDAuMjI2MDU5LCAwLjMwODg0NiwgMC4zODEzOTYsIDAuNDg0OTY4IiwgXAotICAgICAgICAgICIwLjA0MTM2OSwgMC4xMTQ4NSwgMC4xODczNDMsIDAuMjM5MDU3LCAwLjMyMTg0MSwgMC4zOTQzMzMsIDAuNDk3ODI0IiwgXAotICAgICAgICAgICIwLjA1MDksIDAuMTI3MjQ5LCAwLjE5OTYzMiwgMC4yNTE1NjYsIDAuMzM0Mjc1LCAwLjQwNjc4NSwgMC41MTAyMjciLCBcCi0gICAgICAgICAgIjAuMDU4ODg4LCAwLjE0MDU4MiwgMC4yMTI2MzgsIDAuMjY0MzYsIDAuMzQ3MTYxLCAwLjQxOTYxNiwgMC41MjMzNTMiLCBcCi0gICAgICAgICAgIjAuMDY5ODc3LCAwLjE2MTY1OSwgMC4yMzI4NDgsIDAuMjg0NTE5LCAwLjM2Nzc0NiwgMC40NDAyNjYsIDAuNTQzNTE1IiwgXAotICAgICAgICAgICIwLjA3ODg2MywgMC4xNzk3MTgsIDAuMjUyMDk5LCAwLjMwMzc3MywgMC4zODY1ODcsIDAuNDU4MTU1LCAwLjU2MTUwOSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzMDU2MSwgMC4xNzc3MDgsIDAuMzIzODQ2LCAwLjQyODkyMSwgMC41OTY2NzQsIDAuNzQyOTM4LCAwLjk1Mjc3NCIsIFwKLSAgICAgICAgICAiMC4wMzMyMDUsIDAuMTc3Njg2LCAwLjMyMzg3NCwgMC40Mjk4MzQsIDAuNTk3ODQzLCAwLjc0MzUyOSwgMC45NTI4MiIsIFwKLSAgICAgICAgICAiMC4wNDExNDcsIDAuMTc4MjI1LCAwLjMyNDc2OCwgMC40Mjk3MzgsIDAuNTk3NzE0LCAwLjc0Mjg4MywgMC45NTI0NDYiLCBcCi0gICAgICAgICAgIjAuMDUwODQ1LCAwLjE4MTUzMSwgMC4zMjQ5OTgsIDAuNDI5MTI3LCAwLjU5NjMwOCwgMC43NDQwMDksIDAuOTUzMDUiLCBcCi0gICAgICAgICAgIjAuMDU5ODMzLCAwLjE4NjA0OCwgMC4zMjYwMiwgMC40MjkwNjksIDAuNTk2MzM4LCAwLjc0NDg2OSwgMC45NTI3MjYiLCBcCi0gICAgICAgICAgIjAuMDczOTgyLCAwLjE5NTQ3NCwgMC4zMzMwMTcsIDAuNDMyOTkzLCAwLjU5ODU4NiwgMC43NDMxOCwgMC45NTMyNzciLCBcCi0gICAgICAgICAgIjAuMDgzNzYzLCAwLjIwNjAxOCwgMC4zMzg3NjcsIDAuNDM4MDc2LCAwLjYwMDkyNCwgMC43NDU4NjcsIDAuOTU0NjkyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQU4iOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEwMTMsIDAuMDEwMTkyLCAwLjAxMDE5NywgMC4wMTAxOTksIDAuMDEwMjAxLCAwLjAxMDE5OSwgMC4wMTAyMDEiLCBcCi0gICAgICAgICAgIjAuMDEwMDcyLCAwLjAxMDE0MywgMC4wMTAxNTIsIDAuMDEwMTU3LCAwLjAxMDE1MywgMC4wMTAxNTgsIDAuMDEwMTU5IiwgXAotICAgICAgICAgICIwLjAxMDAzMywgMC4wMTAxMTYsIDAuMDEwMTMxLCAwLjAxMDEzNCwgMC4wMTAxMzcsIDAuMDEwMTM4LCAwLjAxMDEzOSIsIFwKLSAgICAgICAgICAiMC4wMTAwMzcsIDAuMDEwMTI4LCAwLjAxMDE0NiwgMC4wMTAxNDksIDAuMDEwMTU1LCAwLjAxMDE1OCwgMC4wMTAxNjIiLCBcCi0gICAgICAgICAgIjAuMDEwMDM5LCAwLjAxMDEzNCwgMC4wMTAxNTEsIDAuMDEwMTU5LCAwLjAxMDE2NSwgMC4wMTAxNjYsIDAuMDEwMTciLCBcCi0gICAgICAgICAgIjAuMDEwMDYyLCAwLjAxMDE1OSwgMC4wMTAxODEsIDAuMDEwMTg5LCAwLjAxMDE5OCwgMC4wMTAyLCAwLjAxMDIiLCBcCi0gICAgICAgICAgIjAuMDEwMDg4LCAwLjAxMDE4NCwgMC4wMTAyMDksIDAuMDEwMjE3LCAwLjAxMDIyNywgMC4wMTAyMjksIDAuMDEwMjM0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDkxMjIsIDAuMDA5MTM0LCAwLjAwOTEzOCwgMC4wMDkxMzUsIDAuMDA5MTM4LCAwLjAwOTEzOCwgMC4wMDkxMzciLCBcCi0gICAgICAgICAgIjAuMDA5MDcxLCAwLjAwOTEwMiwgMC4wMDkxMDYsIDAuMDA5MTA4LCAwLjAwOTEwNywgMC4wMDkxMDksIDAuMDA5MTA5IiwgXAotICAgICAgICAgICIwLjAwOTA0MywgMC4wMDkwODgsIDAuMDA5MDkyLCAwLjAwOTA5NSwgMC4wMDkwOTUsIDAuMDA5MDk2LCAwLjAwOTA5NyIsIFwKLSAgICAgICAgICAiMC4wMDkwMywgMC4wMDkwNzQsIDAuMDA5MDgsIDAuMDA5MDg0LCAwLjAwOTA4NiwgMC4wMDkwODcsIDAuMDA5MDg3IiwgXAotICAgICAgICAgICIwLjAwOTA1NCwgMC4wMDkwOTksIDAuMDA5MTA1LCAwLjAwOTEwNywgMC4wMDkxMDgsIDAuMDA5MTEsIDAuMDA5MTEiLCBcCi0gICAgICAgICAgIjAuMDA5MDQsIDAuMDA5MTAzLCAwLjAwOTExMywgMC4wMDkxMTgsIDAuMDA5MTIsIDAuMDA5MTIyLCAwLjAwOTEyMiIsIFwKLSAgICAgICAgICAiMC4wMDkwNjYsIDAuMDA5MTMyLCAwLjAwOTEyOSwgMC4wMDkxMzQsIDAuMDA5MTM3LCAwLjAwOTE0LCAwLjAwOTE0MSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA4OTE1LCAwLjAwODk1MSwgMC4wMDg5NTQsIDAuMDA4OTU1LCAwLjAwODk1NiwgMC4wMDg5NTYsIDAuMDA4OTU2IiwgXAotICAgICAgICAgICIwLjAwODgwNSwgMC4wMDg5MTgsIDAuMDA4OTM1LCAwLjAwODk0NCwgMC4wMDg5NDQsIDAuMDA4OTQ5LCAwLjAwODk1IiwgXAotICAgICAgICAgICIwLjAwODc0NywgMC4wMDg4ODUsIDAuMDA4OTE0LCAwLjAwODkyNCwgMC4wMDg5MzMsIDAuMDA4OTM4LCAwLjAwODk0MiIsIFwKLSAgICAgICAgICAiMC4wMDg3MjEsIDAuMDA4ODU5LCAwLjAwODg5NywgMC4wMDg5MSwgMC4wMDg5MjIsIDAuMDA4OTI5LCAwLjAwODkzNCIsIFwKLSAgICAgICAgICAiMC4wMDg3MSwgMC4wMDg4MzksIDAuMDA4ODgxLCAwLjAwODg5MywgMC4wMDg5MTIsIDAuMDA4OTIxLCAwLjAwODkyOSIsIFwKLSAgICAgICAgICAiMC4wMDg3MTMsIDAuMDA4ODE1LCAwLjAwODg2NCwgMC4wMDg4OCwgMC4wMDg4OTgsIDAuMDA4OTA5LCAwLjAwODkxOSIsIFwKLSAgICAgICAgICAiMC4wMDg3MjIsIDAuMDA4ODA1LCAwLjAwODg1NCwgMC4wMDg4NjgsIDAuMDA4ODg5LCAwLjAwODksIDAuMDA4OTEyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDE2NDMsIDAuMDAxNjYxLCAwLjAwMTY2MiwgMC4wMDE2NjMsIDAuMDAxNjYzLCAwLjAwMTY2MywgMC4wMDE2NjMiLCBcCi0gICAgICAgICAgIjAuMDAxNTI3LCAwLjAwMTYzMSwgMC4wMDE2NDQsIDAuMDAxNjQ4LCAwLjAwMTY1MiwgMC4wMDE2NTQsIDAuMDAxNjU1IiwgXAotICAgICAgICAgICIwLjAwMTQ0OCwgMC4wMDE2MDEsIDAuMDAxNjI4LCAwLjAwMTYzNiwgMC4wMDE2NDQsIDAuMDAxNjQ4LCAwLjAwMTY0OSIsIFwKLSAgICAgICAgICAiMC4wMDE0OTIsIDAuMDAxNTgyLCAwLjAwMTYyOCwgMC4wMDE2MzUsIDAuMDAxNjQyLCAwLjAwMTY0NiwgMC4wMDE2NSIsIFwKLSAgICAgICAgICAiMC4wMDE1MzMsIDAuMDAxNTgxLCAwLjAwMTYyNiwgMC4wMDE2MzQsIDAuMDAxNjQsIDAuMDAxNjQ0LCAwLjAwMTY0OCIsIFwKLSAgICAgICAgICAiMC4wMDE0OTEsIDAuMDAxNjIyLCAwLjAwMTYyMSwgMC4wMDE2MywgMC4wMDE2NDUsIDAuMDAxNjUsIDAuMDAxNjUiLCBcCi0gICAgICAgICAgIjAuMDAxNTc2LCAwLjAwMTY1NSwgMC4wMDE2NDQsIDAuMDAxNjQ4LCAwLjAwMTY1NSwgMC4wMDE2NTYsIDAuMDAxNjU2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDc0ODcsIDAuMDA3NTM5LCAwLjAwNzU0NiwgMC4wMDc1NDcsIDAuMDA3NTQ5LCAwLjAwNzU1LCAwLjAwNzU0OSIsIFwKLSAgICAgICAgICAiMC4wMDczMywgMC4wMDc0OTIsIDAuMDA3NTE4LCAwLjAwNzUyNiwgMC4wMDc1MzMsIDAuMDA3NTM3LCAwLjAwNzU0IiwgXAotICAgICAgICAgICIwLjAwNzI4OSwgMC4wMDc0NTEsIDAuMDA3NDkxLCAwLjAwNzUwNCwgMC4wMDc1MTYsIDAuMDA3NTIzLCAwLjAwNzUyOCIsIFwKLSAgICAgICAgICAiMC4wMDcyNjgsIDAuMDA3NDIsIDAuMDA3NDY4LCAwLjAwNzQ4NCwgMC4wMDc1MDQsIDAuMDA3NTA5LCAwLjAwNzUxOSIsIFwKLSAgICAgICAgICAiMC4wMDczNTEsIDAuMDA3NDEzLCAwLjAwNzQ1NiwgMC4wMDc0NzUsIDAuMDA3NDk1LCAwLjAwNzUwMywgMC4wMDc1MTMiLCBcCi0gICAgICAgICAgIjAuMDA3NDQ3LCAwLjAwNzQwOCwgMC4wMDc0NDgsIDAuMDA3NDYyLCAwLjAwNzQ4MywgMC4wMDc0OTMsIDAuMDA3NTAzIiwgXAotICAgICAgICAgICIwLjAwNzU0NiwgMC4wMDc0MjMsIDAuMDA3NDQ4LCAwLjAwNzQ2MywgMC4wMDc0ODEsIDAuMDA3NDksIDAuMDA3NTAyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDAyMDEsIDAuMDAwMjcyLCAwLjAwMDI3OSwgMC4wMDAyODEsIDAuMDAwMjgzLCAwLjAwMDI4NCwgMC4wMDAyODUiLCBcCi0gICAgICAgICAgIjAuMDAwMDk3LCAwLjAwMDMxNiwgMC4wMDAzNDQsIDAuMDAwMzUzLCAwLjAwMDM2MSwgMC4wMDAzNjUsIDAuMDAwMzY4IiwgXAotICAgICAgICAgICIwLjAwMDAxMywgMC4wMDAyODUsIDAuMDAwMzMsIDAuMDAwMzQ1LCAwLjAwMDM1OCwgMC4wMDAzNjUsIDAuMDAwMzcxIiwgXAotICAgICAgICAgICIwLjAwMDAyMiwgMC4wMDAyNTksIDAuMDAwMzIzLCAwLjAwMDM0LCAwLjAwMDM1NywgMC4wMDAzNjUsIDAuMDAwMzczIiwgXAotICAgICAgICAgICIwLjAwMDAxNCwgMC4wMDAyNDUsIDAuMDAwMjk4LCAwLjAwMDMyMiwgMC4wMDAzNDQsIDAuMDAwMzU2LCAwLjAwMDM2NyIsIFwKLSAgICAgICAgICAiMC4wMDAxMTYsIDAuMDAwMjQzLCAwLjAwMDMwNSwgMC4wMDAzMjcsIDAuMDAwMzQ3LCAwLjAwMDM1OCwgMC4wMDAzNjgiLCBcCi0gICAgICAgICAgIjAuMDAwMTI4LCAwLjAwMDI2OCwgMC4wMDAzMTgsIDAuMDAwMzM0LCAwLjAwMDM1LCAwLjAwMDM1OSwgMC4wMDAzNjgiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IE5PUjNYMiAqCi0gKiAtLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKE5PUjNYMikgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjIwNTc2MzsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxOTM3MDg7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxOTI1MTc7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxOTM3MDg7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNywgMC4wMDA3NDIsIDAuMDAwNzU2LCAwLjAwMDc2NSwgMC4wMDA3NzEsIDAuMDAwNzczLCAwLjAwMDc4MiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTQ4LCAwLjAwMTQ4MSwgMC4wMDE0ODIsIDAuMDAxNDgyLCAwLjAwMTQ4MiwgMC4wMDE0ODIsIDAuMDAxNDgyIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE3NzM1MTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE3NjMzMjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE3NzM1MTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA2OTgsIDAuMDAwNzY4LCAwLjAwMDc4LCAwLjAwMDc4NCwgMC4wMDA3ODQsIDAuMDAwNzksIDAuMDAwNzkzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwODYsIDAuMDAwODYxLCAwLjAwMDg2MSwgMC4wMDA4NjEsIDAuMDAwODYxLCAwLjAwMDg2MSwgMC4wMDA4NjEiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEMpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTU2MjExOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTU2MjExOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTU2MTk1OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDIxNSwgMC4wMDAyMTUsIDAuMDAwMjE1LCAwLjAwMDIxNSwgMC4wMDAyMTUsIDAuMDAwMjE1LCAwLjAwMDIxNSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDYzOSwgMC4wMDA2NCwgMC4wMDA2NCwgMC4wMDA2MzksIDAuMDAwNjM5LCAwLjAwMDYzOSwgMC4wMDA2MzkiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4xOTIzNjQ7Ci0gICAgZnVuY3Rpb24gOiAiKCEoKEErQikrQykpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODM0MDksIDAuMzcxMzE1LCAwLjYwMjM1MiwgMC44ODk4OTQsIDEuMTc4NDEsIDEuNDY1OSwgMS43NTQ1MiIsIFwKLSAgICAgICAgICAiMC4wOTE1NDYsIDAuMzc5ODgsIDAuNjEwNDAzLCAwLjg5ODM4NSwgMS4xODYzOCwgMS40NzQzNiwgMS43NjIzNCIsIFwKLSAgICAgICAgICAiMC4xMDAwNTcsIDAuMzg4NDc1LCAwLjYxODkzMSwgMC45MDcwODYsIDEuMTk0NzIsIDEuNDgzOTEsIDEuNzcxIiwgXAotICAgICAgICAgICIwLjEwODA5MywgMC4zOTY3NjYsIDAuNjI3MTA4LCAwLjkxNTIyNCwgMS4yMDI4NSwgMS40OTI0NSwgMS43Nzk0MiIsIFwKLSAgICAgICAgICAiMC4xMTU5NzgsIDAuNDA0NzQ3LCAwLjYzNTI3MywgMC45MjMyOTgsIDEuMjEyMDgsIDEuNDk4ODIsIDEuNzg3NDEiLCBcCi0gICAgICAgICAgIjAuMTI4MTU2LCAwLjQxNzEzNSwgMC42NDc2NjcsIDAuOTM1NjY4LCAxLjIyMzYxLCAxLjUxMjIyLCAxLjc5OTQiLCBcCi0gICAgICAgICAgIjAuMTM3OTQ1LCAwLjQyODEyOSwgMC42NTg2NzUsIDAuOTQ2OTYzLCAxLjIzNDk0LCAxLjUyMjc5LCAxLjgxMTkxIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE0NjgsIDAuNzI2NjUsIDEuMTg5MDYsIDEuNzY2NzEsIDIuMzQ3MiwgMi45MzMzNywgMy41MTQ2MiIsIFwKLSAgICAgICAgICAiMC4xNDY3OTEsIDAuNzI1OTc1LCAxLjE5MTgzLCAxLjc3MjM1LCAyLjM1Mjg3LCAyLjkzMzM3LCAzLjUxMzkiLCBcCi0gICAgICAgICAgIjAuMTQ3MDQsIDAuNzI2ODQsIDEuMTg5NDQsIDEuNzY4MDQsIDIuMzUxMTUsIDIuOTI2ODMsIDMuNTEzNzIiLCBcCi0gICAgICAgICAgIjAuMTQ4Njk3LCAwLjcyNzQxOCwgMS4xODk1MiwgMS43Njg5MiwgMi4zNDg1NSwgMi45MjY2LCAzLjUxNDExIiwgXAotICAgICAgICAgICIwLjE1MTA3NiwgMC43Mjc0NzcsIDEuMTkxOTUsIDEuNzcyMzksIDIuMzQ3NDgsIDIuOTMxMjEsIDMuNTA3MDEiLCBcCi0gICAgICAgICAgIjAuMTU2Mjg5LCAwLjcyNzY2NCwgMS4xOTE3NiwgMS43NzIyLCAyLjM1MjYsIDIuOTMzOCwgMy41MTEzOSIsIFwKLSAgICAgICAgICAiMC4xNjIyMDksIDAuNzI4MjkyLCAxLjE5MDg5LCAxLjc3MjI2LCAyLjM0ODQ3LCAyLjkzMjk4LCAzLjUwNTcyIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzMzEwNCwgMC4xMzY5MTIsIDAuMjE5NTQxLCAwLjMyMjYzNCwgMC40MjU5NzEsIDAuNTI5MDU0LCAwLjYzMjMwOSIsIFwKLSAgICAgICAgICAiMC4wNDMyNjIsIDAuMTQ3MDAxLCAwLjIyOTU0MiwgMC4zMzI2OTksIDAuNDM1ODcsIDAuNTM5MDQ3LCAwLjY0MjA0MSIsIFwKLSAgICAgICAgICAiMC4wNTYyMjMsIDAuMTU5Nzk3LCAwLjI0MjIzMywgMC4zNDUzNzUsIDAuNDQ4NTcxLCAwLjU1MDU1LCAwLjY1NDg5NyIsIFwKLSAgICAgICAgICAiMC4wNjkxMjEsIDAuMTcyODg5LCAwLjI1NTQzOSwgMC4zNTg2NDUsIDAuNDYxNjg1LCAwLjU2NDk3MSwgMC42NjgwMDYiLCBcCi0gICAgICAgICAgIjAuMDgwNDA3LCAwLjE4NTA5MiwgMC4yNjc5MTIsIDAuMzcwOTY3LCAwLjQ3Mzg0MSwgMC41NzcxNjMsIDAuNjgwMyIsIFwKLSAgICAgICAgICAiMC4wOTU3NzMsIDAuMjA1NjE4LCAwLjI4ODA5NSwgMC4zOTE2MjMsIDAuNDk0NTg2LCAwLjU5NzY0NywgMC43MDA1ODMiLCBcCi0gICAgICAgICAgIjAuMTA3ODM0LCAwLjIyNDU1NywgMC4zMDc0MSwgMC40MTA1MzMsIDAuNTEyNzQsIDAuNjE2ODA4LCAwLjcxOTg4OCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTYwMzksIDAuMjYyOTU2LCAwLjQyODcyLCAwLjYzNTgwNiwgMC44NDMyMjMsIDEuMDUwMTEsIDEuMjU3NDciLCBcCi0gICAgICAgICAgIjAuMDU2ODM5LCAwLjI2Mjk0OCwgMC40Mjg2OTcsIDAuNjM2MDM2LCAwLjg0MzAzNywgMS4wNTAyNSwgMS4yNTcyNiIsIFwKLSAgICAgICAgICAiMC4wNjIyOTgsIDAuMjYyOTYyLCAwLjQyODg1MiwgMC42MzYwMjUsIDAuODQyOTI4LCAxLjA1MDA0LCAxLjI1NzE0IiwgXAotICAgICAgICAgICIwLjA2OTY2OCwgMC4yNjM5NDMsIDAuNDI4NjY0LCAwLjYzNTk0OSwgMC44NDI5MTcsIDEuMDUwNDMsIDEuMjU3NDgiLCBcCi0gICAgICAgICAgIjAuMDc4Njg2LCAwLjI2NzAzMiwgMC40MjkwMzksIDAuNjM1OTU2LCAwLjg0Mjk4MywgMS4wNTAyOCwgMS4yNTcyNyIsIFwKLSAgICAgICAgICAiMC4wOTQxNDEsIDAuMjc0NTU5LCAwLjQzMjQ1MiwgMC42MzYwNjcsIDAuODQyOTUyLCAxLjA1MDEzLCAxLjI1NzE5IiwgXAotICAgICAgICAgICIwLjEwNjY5OSwgMC4yODIxODYsIDAuNDM2ODY1LCAwLjYzNzkyNiwgMC44NDMzNjQsIDEuMDUwMzYsIDEuMjU3NzciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDgwNiwgMC4zNjg2MzMsIDAuNTk5MTQ4LCAwLjg4NzcyLCAxLjE3NTExLCAxLjQ2MjksIDEuNzUyMTIiLCBcCi0gICAgICAgICAgIjAuMDg4OTAzLCAwLjM3NzM2MywgMC42MDc0ODUsIDAuODk1OTQ5LCAxLjE4MzMyLCAxLjQ3MjcsIDEuNzU5ODMiLCBcCi0gICAgICAgICAgIjAuMDk4NjU2LCAwLjM4NzIzNCwgMC42MTc2MzMsIDAuOTA1ODY0LCAxLjE5Mzg0LCAxLjQ4MTgyLCAxLjc2OTAzIiwgXAotICAgICAgICAgICIwLjEwODM5NCwgMC4zOTczMTksIDAuNjI3NDQ4LCAwLjkxNTY3NiwgMS4yMDM5NCwgMS40OTE3NiwgMS43ODAwNSIsIFwKLSAgICAgICAgICAiMC4xMTgyNDUsIDAuNDA2Nzg4LCAwLjYzNzQsIDAuOTI2MzcxLCAxLjIxMzMsIDEuNTAyMjMsIDEuNzg5NiIsIFwKLSAgICAgICAgICAiMC4xMzM2MSwgMC40MjI4MzYsIDAuNjUzMzg5LCAwLjk0MTM0OCwgMS4yMjk0LCAxLjUxODE2LCAxLjgwNTIiLCBcCi0gICAgICAgICAgIjAuMTQ1OTA4LCAwLjQzNjM4NCwgMC42NjczMTQsIDAuOTU1OTUzLCAxLjI0MzQ1LCAxLjUzMjI3LCAxLjgxODgxIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE0NjgwMiwgMC43MjU4ODgsIDEuMTkxODEsIDEuNzY4MjgsIDIuMzUyODQsIDIuOTMzMTEsIDMuNTEwNDciLCBcCi0gICAgICAgICAgIjAuMTQ2ODA2LCAwLjcyNTgwMywgMS4xODk1LCAxLjc3MDI0LCAyLjM0ODUyLCAyLjkyNjcsIDMuNTE0MSIsIFwKLSAgICAgICAgICAiMC4xNDc2NTUsIDAuNzI3MzYzLCAxLjE5MTcsIDEuNzcyNTEsIDIuMzQ4MjMsIDIuOTMzNTEsIDMuNTExMjUiLCBcCi0gICAgICAgICAgIjAuMTUwMjIxLCAwLjcyNTY2NSwgMS4xOTA5MSwgMS43NzIzMSwgMi4zNDczOCwgMi45MzM1LCAzLjUxNDMyIiwgXAotICAgICAgICAgICIwLjE1NDE0NiwgMC43MjY3ODUsIDEuMTkxNiwgMS43Njg0NiwgMi4zNDkyNiwgMi45MjYyMiwgMy41MTM4IiwgXAotICAgICAgICAgICIwLjE2MjI2NCwgMC43MjcwMjUsIDEuMTkxNjEsIDEuNzY5NjgsIDIuMzUyNTEsIDIuOTMwMDQsIDMuNTA4NTEiLCBcCi0gICAgICAgICAgIjAuMTcwNjE4LCAwLjcyODMzOCwgMS4xOTE5LCAxLjc2ODE2LCAyLjM1MjgsIDIuOTI2NjgsIDMuNTA4MzQiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDMxNDM3LCAwLjEzNDc5NCwgMC4yMTcyOTMsIDAuMzIwNDc3LCAwLjQyMzYwMSwgMC41MjY3NjgsIDAuNjI5NzY2IiwgXAotICAgICAgICAgICIwLjA0MTUxNywgMC4xNDQ5NDIsIDAuMjI3NTAzLCAwLjMzMDU4LCAwLjQzMzYzNSwgMC41MzY3NDgsIDAuNjM5OTIzIiwgXAotICAgICAgICAgICIwLjA1NDY4MywgMC4xNTc3OTUsIDAuMjQwMjE3LCAwLjM0MzI0NSwgMC40NDU3MSwgMC41NDg1NDEsIDAuNjUxOTc1IiwgXAotICAgICAgICAgICIwLjA2Njk4OCwgMC4xNzAzODQsIDAuMjUyODQ4LCAwLjM1NTk4MywgMC40NTg5MzMsIDAuNTYyMDUsIDAuNjY1MzM2IiwgXAotICAgICAgICAgICIwLjA3NzkzOSwgMC4xODMxNDUsIDAuMjY1NzA5LCAwLjM2ODcxMiwgMC40NzE3MSwgMC41NzQ5MjQsIDAuNjc4MDI1IiwgXAotICAgICAgICAgICIwLjA5MzA5NywgMC4yMDM0MDIsIDAuMjg3MTA5LCAwLjM4OTQ3NSwgMC40OTMzNTEsIDAuNTk1MTkxLCAwLjY5ODMzNSIsIFwKLSAgICAgICAgICAiMC4xMDQ5MTMsIDAuMjIyMzQsIDAuMzAzNzA0LCAwLjQwNzMwNSwgMC41MTAyMzcsIDAuNjE0NTQyLCAwLjcxNzYwNSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTMyNjksIDAuMjYwNDUxLCAwLjQyNjExMSwgMC42MzM0NTEsIDAuODQwNzE5LCAxLjA0NzkyLCAxLjI1NTI3IiwgXAotICAgICAgICAgICIwLjA1NDM5MSwgMC4yNjA0MTMsIDAuNDI2MTI5LCAwLjYzMzI0NCwgMC44NDA0MTUsIDEuMDQ3NjIsIDEuMjU1MTQiLCBcCi0gICAgICAgICAgIjAuMDU5OTc0LCAwLjI2MDQ2MywgMC40MjYyMjMsIDAuNjMzMjQ1LCAwLjg0MDczNCwgMS4wNDc3OCwgMS4yNTUyMiIsIFwKLSAgICAgICAgICAiMC4wNjgxMzEsIDAuMjYxNjE1LCAwLjQyNjExNiwgMC42MzM0NzQsIDAuODQwNDE1LCAxLjA0Nzc4LCAxLjI1NTM4IiwgXAotICAgICAgICAgICIwLjA3NzA3MywgMC4yNjQ2NTksIDAuNDI2NTAxLCAwLjYzMzM3NywgMC44NDA2OTYsIDEuMDQ3ODgsIDEuMjU1MzQiLCBcCi0gICAgICAgICAgIjAuMDkyMTU0LCAwLjI3MjMzNywgMC40Mjk2NTksIDAuNjMzNjk4LCAwLjg0MDY3NCwgMS4wNDc5MiwgMS4yNTUxMiIsIFwKLSAgICAgICAgICAiMC4xMDM5NTUsIDAuMjc5OTU2LCAwLjQzNTI3MSwgMC42MzU3NTEsIDAuODQwNzg0LCAxLjA0Nzg2LCAxLjI1NTIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDczODM2LCAwLjM2MTk5MiwgMC41OTI0NjksIDAuODgwNDI0LCAxLjE2OTM0LCAxLjQ1NjU4LCAxLjc0NDM0IiwgXAotICAgICAgICAgICIwLjA4MjAyLCAwLjM3MDQ0NiwgMC42MDA5MTQsIDAuODg4OTU0LCAxLjE3NzgyLCAxLjQ2NTA1LCAxLjc1MzgiLCBcCi0gICAgICAgICAgIjAuMDkyNDEsIDAuMzgxMTU5LCAwLjYxMTA0OSwgMC44OTkzODgsIDEuMTg3NzQsIDEuNDc2MDQsIDEuNzY0OTciLCBcCi0gICAgICAgICAgIjAuMTAzMjY5LCAwLjM5MTgyMSwgMC42MjIzMTksIDAuOTEwNDE1LCAxLjE5OTQ1LCAxLjQ4NjA1LCAxLjc3NDY1IiwgXAotICAgICAgICAgICIwLjExNDIzNSwgMC40MDI1MDgsIDAuNjMyODM0LCAwLjkyMDkwNiwgMS4yMDk4OCwgMS40OTY5NywgMS43ODU0NiIsIFwKLSAgICAgICAgICAiMC4xMzE3OTgsIDAuNDE5NzYzLCAwLjY1MDMyOSwgMC45MzgyODgsIDEuMjI3MjYsIDEuNTE1MDMsIDEuODAyMDYiLCBcCi0gICAgICAgICAgIjAuMTQ1OTYsIDAuNDM0ODU3LCAwLjY2NTYzMSwgMC45NTMyNzgsIDEuMjQxNjUsIDEuNTMwNTgsIDEuODE3MjUiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTQ2NzgyLCAwLjcyNTk1MywgMS4xODkzOCwgMS43NzIzMiwgMi4zNDc0OCwgMi45MzM2MiwgMy41MTM4NCIsIFwKLSAgICAgICAgICAiMC4xNDY1MTYsIDAuNzI3MjMxLCAxLjE4OTUzLCAxLjc3MjIzLCAyLjM0NzQ4LCAyLjkzMzQ0LCAzLjUwNTYzIiwgXAotICAgICAgICAgICIwLjE0ODIzNSwgMC43MjU1NjksIDEuMTg5MzIsIDEuNzY5MTIsIDIuMzQ5ODYsIDIuOTI5OTEsIDMuNTA1ODkiLCBcCi0gICAgICAgICAgIjAuMTUyOTk1LCAwLjcyNjAxMiwgMS4xOTE1OSwgMS43NzIxNSwgMi4zNDc0OCwgMi45MzExNiwgMy41MDczNiIsIFwKLSAgICAgICAgICAiMC4xNTkzODcsIDAuNzI1NjAzLCAxLjE4OTU4LCAxLjc3MTAzLCAyLjM0NzUxLCAyLjkyNzYxLCAzLjUwNiIsIFwKLSAgICAgICAgICAiMC4xNzE0MjYsIDAuNzI2OTE2LCAxLjE5MTYzLCAxLjc3MjA0LCAyLjM0NzUsIDIuOTMwMDQsIDMuNTA4NDUiLCBcCi0gICAgICAgICAgIjAuMTgyODE2LCAwLjcyODc3NCwgMS4xOTE5MSwgMS43Njk1LCAyLjM1Mjg2LCAyLjkyNjcxLCAzLjUxMTQyIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyOTIzNSwgMC4xMzI3NDUsIDAuMjE1NDg0LCAwLjMxODkwNCwgMC40MjI1MDQsIDAuNTI1Nzk0LCAwLjYyOTU3MSIsIFwKLSAgICAgICAgICAiMC4wMzk1MDQsIDAuMTQyNjg1LCAwLjIyNTcxOCwgMC4zMjkxODcsIDAuNDMyNTkxLCAwLjUzNjExNSwgMC42Mzk0MiIsIFwKLSAgICAgICAgICAiMC4wNTI0NzYsIDAuMTU1Nzk3LCAwLjIzODc5NCwgMC4zNDIwMzksIDAuNDQ0NDgzLCAwLjU0Nzg0NywgMC42NTEyODEiLCBcCi0gICAgICAgICAgIjAuMDY0NDk3LCAwLjE2ODk1MiwgMC4yNTEyMzEsIDAuMzU0NjQ3LCAwLjQ1NzkyNCwgMC41NjE0MDUsIDAuNjY1MjkxIiwgXAotICAgICAgICAgICIwLjA3NDc2OSwgMC4xODEwMDMsIDAuMjY0MDYxLCAwLjM2NzUyLCAwLjQ3MDkxNCwgMC41NzQyNjUsIDAuNjc3NDQ5IiwgXAotICAgICAgICAgICIwLjA4OTAwNywgMC4yMDI2NTksIDAuMjg1MzY4LCAwLjM4ODAwOCwgMC40OTIyMDYsIDAuNTk0NTM2LCAwLjY5Nzk4IiwgXAotICAgICAgICAgICIwLjA5OTY5MSwgMC4yMjA0NDMsIDAuMzAyMDk2LCAwLjQwNTQxMywgMC41MDk0MDMsIDAuNjEzNjUzLCAwLjcxNzA5NCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTExMjEsIDAuMjYwNDU0LCAwLjQyODA5NiwgMC42MzcwNzMsIDAuODQ2NzQ2LCAxLjA1ODg5LCAxLjI2NjM4IiwgXAotICAgICAgICAgICIwLjA1MjQxLCAwLjI2MTA3MywgMC40Mjc4MDQsIDAuNjM3NjcyLCAwLjg0NjUzLCAxLjA1NjQxLCAxLjI2NTM4IiwgXAotICAgICAgICAgICIwLjA1ODIzNSwgMC4yNjEwMzcsIDAuNDI3ODYzLCAwLjYzNzgwNSwgMC44NDczNDgsIDEuMDU1OTgsIDEuMjY2NjEiLCBcCi0gICAgICAgICAgIjAuMDY2NjM1LCAwLjI2MjA4NiwgMC40MjgwMzksIDAuNjM3Mjg4LCAwLjg0NjUyOSwgMS4wNTY3LCAxLjI2NjU0IiwgXAotICAgICAgICAgICIwLjA3NjEzMiwgMC4yNjUzMzIsIDAuNDI4MjYxLCAwLjYzNzgyOCwgMC44NDcxNjgsIDEuMDU2MjEsIDEuMjY4NSIsIFwKLSAgICAgICAgICAiMC4wOTE2ODEsIDAuMjcyMDYsIDAuNDMxNDI3LCAwLjYzODk3LCAwLjg0ODU4OSwgMS4wNTU3OSwgMS4yNjYxMyIsIFwKLSAgICAgICAgICAiMC4xMDQ3NzYsIDAuMjgwMTc5LCAwLjQzNzE0MiwgMC42NDA5OTMsIDAuODQ4NjMyLCAxLjA1ODM4LCAxLjI2ODUzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0OTkyLCAwLjAwNTAwMywgMC4wMDUwMDMsIDAuMDA1MDA1LCAwLjAwNTAwNSwgMC4wMDUwMDUsIDAuMDA1MDA1IiwgXAotICAgICAgICAgICIwLjAwNDk1MSwgMC4wMDQ5OTIsIDAuMDA0OTk4LCAwLjAwNSwgMC4wMDUwMDIsIDAuMDA1MDAzLCAwLjAwNTAwMyIsIFwKLSAgICAgICAgICAiMC4wMDQ5MjEsIDAuMDA0OTc0LCAwLjAwNDk5MywgMC4wMDQ5OTQsIDAuMDA0OTksIDAuMDA0OTk5LCAwLjAwNSIsIFwKLSAgICAgICAgICAiMC4wMDQ5MDUsIDAuMDA0OTY5LCAwLjAwNDk3OSwgMC4wMDQ5ODksIDAuMDA0OTksIDAuMDA0OTk3LCAwLjAwNSIsIFwKLSAgICAgICAgICAiMC4wMDQ4OTUsIDAuMDA0OTYsIDAuMDA0OTc3LCAwLjAwNDk4NSwgMC4wMDQ5ODgsIDAuMDA0OTkzLCAwLjAwNDk5MyIsIFwKLSAgICAgICAgICAiMC4wMDQ4ODgsIDAuMDA0OTQ4LCAwLjAwNDk2NiwgMC4wMDQ5NzgsIDAuMDA0OTg2LCAwLjAwNDk4NywgMC4wMDQ5OTEiLCBcCi0gICAgICAgICAgIjAuMDA0ODg3LCAwLjAwNDk0MiwgMC4wMDQ5NjEsIDAuMDA0OTcxLCAwLjAwNDk3OSwgMC4wMDQ5ODYsIDAuMDA0OTg4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxMjI0LCAwLjAwMTIyMywgMC4wMDEyMjMsIDAuMDAxMjIzLCAwLjAwMTIyMiwgMC4wMDEyMjIsIDAuMDAxMjIyIiwgXAotICAgICAgICAgICIwLjAwMTE2NCwgMC4wMDExNzUsIDAuMDAxMTc3LCAwLjAwMTE3NywgMC4wMDExNzcsIDAuMDAxMTc3LCAwLjAwMTE3NyIsIFwKLSAgICAgICAgICAiMC4wMDExNDksIDAuMDAxMTY2LCAwLjAwMTE2OCwgMC4wMDExNjksIDAuMDAxMTcsIDAuMDAxMTYxLCAwLjAwMTE2OSIsIFwKLSAgICAgICAgICAiMC4wMDExNDUsIDAuMDAxMTYyLCAwLjAwMTE2NSwgMC4wMDExNjcsIDAuMDAxMTY4LCAwLjAwMTE2OCwgMC4wMDExNjgiLCBcCi0gICAgICAgICAgIjAuMDAxMTYsIDAuMDAxMTY3LCAwLjAwMTE3LCAwLjAwMTE2OCwgMC4wMDExNjgsIDAuMDAxMTY4LCAwLjAwMTE2OCIsIFwKLSAgICAgICAgICAiMC4wMDEyMTMsIDAuMDAxMTc0LCAwLjAwMTE3MSwgMC4wMDExNzIsIDAuMDAxMTcsIDAuMDAxMTY5LCAwLjAwMTE2OSIsIFwKLSAgICAgICAgICAiMC4wMDEyNTcsIDAuMDAxMTkyLCAwLjAwMTE4OCwgMC4wMDExODIsIDAuMDAxMTc3LCAwLjAwMTE3NywgMC4wMDExNzYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQzMzYsIDAuMDA0MzQ3LCAwLjAwNDM0OCwgMC4wMDQzNDgsIDAuMDA0MzQ5LCAwLjAwNDM0OSwgMC4wMDQzNDkiLCBcCi0gICAgICAgICAgIjAuMDA0Mjk0LCAwLjAwNDMzNiwgMC4wMDQzNDEsIDAuMDA0MzQ0LCAwLjAwNDM0NSwgMC4wMDQzNDgsIDAuMDA0MzQ3IiwgXAotICAgICAgICAgICIwLjAwNDI2NSwgMC4wMDQzMjMsIDAuMDA0MzMzLCAwLjAwNDMzOCwgMC4wMDQzNDIsIDAuMDA0MzQyLCAwLjAwNDM0NCIsIFwKLSAgICAgICAgICAiMC4wMDQyNDksIDAuMDA0MzEzLCAwLjAwNDMyNSwgMC4wMDQzMzIsIDAuMDA0MzM3LCAwLjAwNDMzOSwgMC4wMDQzNDEiLCBcCi0gICAgICAgICAgIjAuMDA0MjQxLCAwLjAwNDMwNCwgMC4wMDQzMTksIDAuMDA0MzI3LCAwLjAwNDMzMywgMC4wMDQzMzUsIDAuMDA0MzM4IiwgXAotICAgICAgICAgICIwLjAwNDIzNywgMC4wMDQyOTQsIDAuMDA0MzExLCAwLjAwNDMyLCAwLjAwNDMyOCwgMC4wMDQzMzIsIDAuMDA0MzM3IiwgXAotICAgICAgICAgICIwLjAwNDI0MywgMC4wMDQyODksIDAuMDA0MzA2LCAwLjAwNDMxNywgMC4wMDQzMjQsIDAuMDA0MzI5LCAwLjAwNDMzMyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDcxLCAwLjAwMDcxNSwgMC4wMDA3MTUsIDAuMDAwNzE2LCAwLjAwMDcxNiwgMC4wMDA3MTYsIDAuMDAwNzE2IiwgXAotICAgICAgICAgICIwLjAwMDY2NywgMC4wMDA3MDMsIDAuMDAwNzA4LCAwLjAwMDcxLCAwLjAwMDcxMSwgMC4wMDA3MTEsIDAuMDAwNzEyIiwgXAotICAgICAgICAgICIwLjAwMDY0LCAwLjAwMDY5NCwgMC4wMDA3MDIsIDAuMDAwNzA2LCAwLjAwMDcwNywgMC4wMDA3MDgsIDAuMDAwNzA5IiwgXAotICAgICAgICAgICIwLjAwMDY0OCwgMC4wMDA2ODYsIDAuMDAwNzAxLCAwLjAwMDcwNSwgMC4wMDA3MDcsIDAuMDAwNzA4LCAwLjAwMDcwOSIsIFwKLSAgICAgICAgICAiMC4wMDA2MzMsIDAuMDAwNjgyLCAwLjAwMDcwMSwgMC4wMDA3MDQsIDAuMDAwNzA2LCAwLjAwMDcwOCwgMC4wMDA3MDkiLCBcCi0gICAgICAgICAgIjAuMDAwNjYxLCAwLjAwMDY5NiwgMC4wMDA2OTksIDAuMDAwNzAxLCAwLjAwMDcwNiwgMC4wMDA3MDksIDAuMDAwNzA5IiwgXAotICAgICAgICAgICIwLjAwMDY2OSwgMC4wMDA3MTEsIDAuMDAwNzA4LCAwLjAwMDcxMSwgMC4wMDA3MTEsIDAuMDAwNzExLCAwLjAwMDcxMSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzYzNywgMC4wMDM2NTMsIDAuMDAzNjU1LCAwLjAwMzY1NiwgMC4wMDM2NTUsIDAuMDAzNjU2LCAwLjAwMzY1NiIsIFwKLSAgICAgICAgICAiMC4wMDM1NzMsIDAuMDAzNjM2LCAwLjAwMzY0NSwgMC4wMDM2NDgsIDAuMDAzNjUsIDAuMDAzNjUxLCAwLjAwMzY1MyIsIFwKLSAgICAgICAgICAiMC4wMDM1NSwgMC4wMDM2MjEsIDAuMDAzNjMzLCAwLjAwMzY0LCAwLjAwMzY0NCwgMC4wMDM2NDYsIDAuMDAzNjQ5IiwgXAotICAgICAgICAgICIwLjAwMzU0MiwgMC4wMDM2MDgsIDAuMDAzNjI0LCAwLjAwMzYzMywgMC4wMDM2MzksIDAuMDAzNjQ1LCAwLjAwMzY0NCIsIFwKLSAgICAgICAgICAiMC4wMDM1NTEsIDAuMDAzNjAyLCAwLjAwMzYxOSwgMC4wMDM2MjksIDAuMDAzNjM1LCAwLjAwMzYzOSwgMC4wMDM2NDEiLCBcCi0gICAgICAgICAgIjAuMDAzNTc5LCAwLjAwMzU5NywgMC4wMDM2MTMsIDAuMDAzNjI0LCAwLjAwMzYzLCAwLjAwMzYzNSwgMC4wMDM2MzkiLCBcCi0gICAgICAgICAgIjAuMDAzNjIxLCAwLjAwMzU5OCwgMC4wMDM2MTIsIDAuMDAzNjIyLCAwLjAwMzYyOSwgMC4wMDM2MzUsIDAuMDAzNjM3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwMDgyLCAwLjAwMDEwMiwgMC4wMDAxMDQsIDAuMDAwMTA0LCAwLjAwMDEwNSwgMC4wMDAxMDUsIDAuMDAwMTA1IiwgXAotICAgICAgICAgICIwLjAwMDA1OSwgMC4wMDAxMzQsIDAuMDAwMTQsIDAuMDAwMTQ0LCAwLjAwMDE0NywgMC4wMDAxNDgsIDAuMDAwMTQ5IiwgXAotICAgICAgICAgICIwLjAwMDAxOCwgMC4wMDAxMjMsIDAuMDAwMTM2LCAwLjAwMDE0NSwgMC4wMDAxNTQsIDAuMDAwMTU3LCAwLjAwMDE1OSIsIFwKLSAgICAgICAgICAiMC4wMDAwMTQsIDAuMDAwMTE0LCAwLjAwMDEzNCwgMC4wMDAxNDMsIDAuMDAwMTQ4LCAwLjAwMDE1MSwgMC4wMDAxNTMiLCBcCi0gICAgICAgICAgIjAuMDAwMDE0LCAwLjAwMDExMiwgMC4wMDAxMzEsIDAuMDAwMTQxLCAwLjAwMDE0NywgMC4wMDAxNSwgMC4wMDAxNTIiLCBcCi0gICAgICAgICAgIjAuMDAwMDM0LCAwLjAwMDEwNSwgMC4wMDAxMjQsIDAuMDAwMTM1LCAwLjAwMDE0MiwgMC4wMDAxNDksIDAuMDAwMTUyIiwgXAotICAgICAgICAgICIwLjAwMDA2OCwgMC4wMDAxMTMsIDAuMDAwMTI3LCAwLjAwMDEzOCwgMC4wMDAxNDQsIDAuMDAwMTQ4LCAwLjAwMDE1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBOT1I0WDEgKgotICogLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChOT1I0WDEpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4xMzU1ODQ7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDg5MDQzMTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA4ODM5NzI7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwODkwNDMxOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDM0NSwgMC4wMDAzNjMsIDAuMDAwMzcyLCAwLjAwMDM3NywgMC4wMDAzNzksIDAuMDAwMzgxLCAwLjAwMDM4MiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTA0MSwgMC4wMDEwNDEsIDAuMDAxMDQxLCAwLjAwMTA0MSwgMC4wMDEwNDEsIDAuMDAxMDQxLCAwLjAwMTA0MSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwOTAwNTU2OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDg5NDY5NDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA5MDA1NTY7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzM4LCAwLjAwMDM2MiwgMC4wMDAzNzMsIDAuMDAwMzc4LCAwLjAwMDM4MSwgMC4wMDAzODcsIDAuMDAwMzg5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNzQzLCAwLjAwMDc0NCwgMC4wMDA3NDMsIDAuMDAwNzQzLCAwLjAwMDc0NCwgMC4wMDA3NDQsIDAuMDAwNzQ0Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihDKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA4ODI5Njg7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwODc3NzM4OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDg4Mjk2ODsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAzNDUsIDAuMDAwMzgxLCAwLjAwMDM4OSwgMC4wMDAzOTIsIDAuMDAwMzkyLCAwLjAwMDM5NSwgMC4wMDAzOTciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA0MywgMC4wMDA0MywgMC4wMDA0MywgMC4wMDA0MywgMC4wMDA0MywgMC4wMDA0MywgMC4wMDA0MyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwODk0Njc0OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDg5NDY3NDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA4OTQ2NDU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMTA5LCAwLjAwMDEwOSwgMC4wMDAxMDksIDAuMDAwMTA5LCAwLjAwMDEwOSwgMC4wMDAxMDksIDAuMDAwMTA5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzMzLCAwLjAwMDMzMywgMC4wMDAzMzMsIDAuMDAwMzMzLCAwLjAwMDMzMywgMC4wMDAzMzMsIDAuMDAwMzMzIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMDYwNzExODsKLSAgICBmdW5jdGlvbiA6ICIoISgoKEErQikrQykrRCkpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xOTQwMDksIDAuMjg1NTQ0LCAwLjgwNTAyMiwgMS4yNjMyMywgMS44NzUxMiwgMy4wOTU0MywgMy44NTc2OCIsIFwKLSAgICAgICAgICAiMC4yMDIyNjUsIDAuMjk0MTMyLCAwLjgxMzQ2NCwgMS4yNzE5NSwgMS44ODIyNywgMy4xMDMxMiwgMy44NjYzMSIsIFwKLSAgICAgICAgICAiMC4yMTA1NTYsIDAuMzAyMjQsIDAuODIyMzY4LCAxLjI4MTA3LCAxLjg5MDkyLCAzLjExMjcyLCAzLjg3NDkyIiwgXAotICAgICAgICAgICIwLjIxNzgyOCwgMC4zMDk4MDMsIDAuODI5MTM0LCAxLjI4NzE5LCAxLjg5ODYyLCAzLjExOTE4LCAzLjg4MjA0IiwgXAotICAgICAgICAgICIwLjIyNDgxNCwgMC4zMTY3MjcsIDAuODM2MiwgMS4yOTQzNiwgMS45MDY3OSwgMy4xMjYyMiwgMy44ODkxIiwgXAotICAgICAgICAgICIwLjIzNTQxOSwgMC4zMjcyMjUsIDAuODQ2OTQ5LCAxLjMwNTEyLCAxLjkxNjU2LCAzLjEzODE3LCAzLjkwMDAxIiwgXAotICAgICAgICAgICIwLjI0NDU2NywgMC4zMzYzNDYsIDAuODU2MDYxLCAxLjMxNDI1LCAxLjkyNTIyLCAzLjE0NjM4LCAzLjkwOTQiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzUzNjIzLCAwLjUzNTE5NiwgMS41Njg4NSwgMi40ODQ4NCwgMy43MDMxNiwgNi4xMzA1LCA3LjY0NTE0IiwgXAotICAgICAgICAgICIwLjM1MzcyNywgMC41MzcwMjgsIDEuNTcxNzgsIDIuNDg1MSwgMy43MDIsIDYuMTI5NDYsIDcuNjQ0ODUiLCBcCi0gICAgICAgICAgIjAuMzU0Mzc3LCAwLjUzNjg3MSwgMS41NzIyMywgMi40Nzk5NSwgMy43MDIyLCA2LjEyMjc3LCA3LjYzOTY1IiwgXAotICAgICAgICAgICIwLjM1NDM0MywgMC41MzcwMjIsIDEuNTcxNTUsIDIuNDg0NDEsIDMuNzAyMzcsIDYuMTI2NCwgNy42NDQzNiIsIFwKLSAgICAgICAgICAiMC4zNTQ5OTIsIDAuNTM3MDI0LCAxLjU3MTY0LCAyLjQ4MDg3LCAzLjcwMzM2LCA2LjEyNzM5LCA3LjY0NDc3IiwgXAotICAgICAgICAgICIwLjM1NjEwMiwgMC41Mzc4MjYsIDEuNTcxNTYsIDIuNDg0NDgsIDMuNzAyNDEsIDYuMTIyNzEsIDcuNjQyNjkiLCBcCi0gICAgICAgICAgIjAuMzU4NzA5LCAwLjUzODI3MiwgMS41NzE1MSwgMi40ODQ0MywgMy43MDE4MiwgNi4xMjQ4NiwgNy42NDQ4Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1NjY2MSwgMC4wODE4MTQsIDAuMjIyNzQ1LCAwLjM0NjY1MywgMC41MTE2NzMsIDAuODQyLCAxLjA0NzkxIiwgXAotICAgICAgICAgICIwLjA2NjY2LCAwLjA5MTg2OSwgMC4yMzI3NjksIDAuMzU2NjI0LCAwLjUyMTY2OSwgMC44NTE2OTEsIDEuMDU3NjYiLCBcCi0gICAgICAgICAgIjAuMDc5Mzk1LCAwLjEwNDU0NCwgMC4yNDU0NzIsIDAuMzY4NDc3LCAwLjUzMzQ5OCwgMC44NjM0OTMsIDEuMDY5OSIsIFwKLSAgICAgICAgICAiMC4wOTI1MjYsIDAuMTE3MjA5LCAwLjI1ODIxMSwgMC4zODE5ODEsIDAuNTQ2OTc4LCAwLjg3NjIwNSwgMS4wODE0NiIsIFwKLSAgICAgICAgICAiMC4xMDU3NzUsIDAuMTMwNTM0LCAwLjI3MTA4NywgMC4zOTQ4MDQsIDAuNTU5NzkxLCAwLjg4OTY1NSwgMS4wOTQ5OSIsIFwKLSAgICAgICAgICAiMC4xMjYxMzIsIDAuMTUxNTU3LCAwLjI5MTI1MiwgMC40MTU0MzcsIDAuNTgwMzE1LCAwLjkxMDA4NiwgMS4xMTYzIiwgXAotICAgICAgICAgICIwLjE0MjEsIDAuMTcwMTQ3LCAwLjMwOTE0NiwgMC40MzM1MTEsIDAuNTk4MzQzLCAwLjkyNzk1NSwgMS4xMzQxMyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDE4MiwgMC4xNTE0OTgsIDAuNDMzMDQ0LCAwLjY4MTk3MSwgMS4wMTI5NywgMS42NzY0LCAyLjA5MDM0IiwgXAotICAgICAgICAgICIwLjEwMTczOCwgMC4xNTE0MTUsIDAuNDMzMTMxLCAwLjY4MTY4OCwgMS4wMTMxLCAxLjY3NjIzLCAyLjA4OTYiLCBcCi0gICAgICAgICAgIjAuMTA0NzE0LCAwLjE1MjUyMSwgMC40MzMwMzksIDAuNjgxNzIzLCAxLjAxMjk2LCAxLjY3NjU0LCAyLjA5MDMxIiwgXAotICAgICAgICAgICIwLjEwOTk5NiwgMC4xNTY0MjksIDAuNDMzMTE0LCAwLjY4MTU3NCwgMS4wMTI5NCwgMS42NzU2NywgMi4wOTAzNSIsIFwKLSAgICAgICAgICAiMC4xMTY2MzcsIDAuMTYxNTM1LCAwLjQzMzMzMywgMC42ODE1NjcsIDEuMDEyOTgsIDEuNjc1NjgsIDIuMDg5ODUiLCBcCi0gICAgICAgICAgIjAuMTI5MTMyLCAwLjE3MjA4NywgMC40MzY2NjEsIDAuNjgxNjIsIDEuMDEzNDMsIDEuNjc1NjgsIDIuMDkwNTYiLCBcCi0gICAgICAgICAgIjAuMTQxNTM3LCAwLjE4MjMzMiwgMC40NDE1NjYsIDAuNjgzMjcsIDEuMDEyOTYsIDEuNjc1NjgsIDIuMDg5ODciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTkxNDYyLCAwLjI4MzI0NSwgMC44MDI0ODEsIDEuMjYxMywgMS44NzExNCwgMy4wOTMxMiwgMy44NTQ5NyIsIFwKLSAgICAgICAgICAiMC4xOTk2MjIsIDAuMjkxMzMxLCAwLjgxMTM5OCwgMS4yNjkxNCwgMS44Nzk5NCwgMy4xMDA5MiwgMy44NjM0OSIsIFwKLSAgICAgICAgICAiMC4yMDg0MTMsIDAuMzAwMjkxLCAwLjgyMDExNSwgMS4yNzg4OSwgMS44ODkxMSwgMy4xMTA2MywgMy44NzI4IiwgXAotICAgICAgICAgICIwLjIxNjY1LCAwLjMwODQzNiwgMC44Mjc5MiwgMS4yODYyOSwgMS44OTY3MiwgMy4xMTkwNywgMy44ODA3MSIsIFwKLSAgICAgICAgICAiMC4yMjQ2MjQsIDAuMzE2NDUxLCAwLjgzNjUwOCwgMS4yOTQ2OSwgMS45MDU3MywgMy4xMjY2MSwgMy44ODkxNyIsIFwKLSAgICAgICAgICAiMC4yMzc0NTEsIDAuMzI5MzUsIDAuODQ5MTE1LCAxLjMwNzIxLCAxLjkxOTIzLCAzLjEzOTIyLCAzLjkwMjMzIiwgXAotICAgICAgICAgICIwLjI0ODU3OSwgMC4zNDAzNjcsIDAuODYwMTc2LCAxLjMxODU1LCAxLjkzMDkyLCAzLjE1MDY3LCAzLjkxMzU5Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjM1MzY0LCAwLjUzNzA4LCAxLjU3MTg2LCAyLjQ4NTUsIDMuNjk1MzgsIDYuMTMwODYsIDcuNjQyNzMiLCBcCi0gICAgICAgICAgIjAuMzU0MzA5LCAwLjUzNjUyNSwgMS41NzA1NSwgMi40ODQ5NCwgMy43MDIyOCwgNi4xMjUxOCwgNy42NDI5OSIsIFwKLSAgICAgICAgICAiMC4zNTM2ODIsIDAuNTM2OTcxLCAxLjU3MjA2LCAyLjQ4Mjg2LCAzLjY5NDYxLCA2LjEzMDc5LCA3LjY0NTQxIiwgXAotICAgICAgICAgICIwLjM1NDQzOCwgMC41MzY4ODUsIDEuNTcxNTYsIDIuNDgwNCwgMy42OTU1OCwgNi4xMjI4NSwgNy42NDQ5NSIsIFwKLSAgICAgICAgICAiMC4zNTUyNzUsIDAuNTM2MDcsIDEuNTcyLCAyLjQ4NDk5LCAzLjcwMjUxLCA2LjEyMzM2LCA3LjY0NTAxIiwgXAotICAgICAgICAgICIwLjM1NzYwOSwgMC41MzgyNjMsIDEuNTY4NDIsIDIuNDg0NTQsIDMuNzAyOTcsIDYuMTI5ODUsIDcuNjQ0OTIiLCBcCi0gICAgICAgICAgIjAuMzYwNTQzLCAwLjUzOTc4MywgMS41NzE1MSwgMi40ODA0NSwgMy43MDMzMiwgNi4xMjQ5MiwgNy42NDA2OCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTUxODUsIDAuMDgwMTIzLCAwLjIyMDY1LCAwLjM0NDU3NCwgMC41MDk2OTYsIDAuODM5NzM4LCAxLjA0NTc0IiwgXAotICAgICAgICAgICIwLjA2NTMwOCwgMC4wOTAzOTUsIDAuMjMwOTU0LCAwLjM1NDc3NiwgMC41MTk3OTEsIDAuODQ5NDUyLCAxLjA1NjEiLCBcCi0gICAgICAgICAgIjAuMDc4MjU0LCAwLjEwMzE3MywgMC4yNDM1MTIsIDAuMzY2MzkyLCAwLjUzMTM0LCAwLjg2MTQwNywgMS4wNjc2NiIsIFwKLSAgICAgICAgICAiMC4wOTE0MzIsIDAuMTE2MjQ3LCAwLjI1NjM0NiwgMC4zNzk5ODcsIDAuNTQzNjI1LCAwLjg3MzUwMiwgMS4wODAxIiwgXAotICAgICAgICAgICIwLjEwNDI4OCwgMC4xMjkwOTYsIDAuMjY4OTY2LCAwLjM5MjU4MiwgMC41NTc2NTUsIDAuODg3NTA1LCAxLjA5Mjk0IiwgXAotICAgICAgICAgICIwLjEyNDM4MiwgMC4xNDk3NSwgMC4yODk2NTgsIDAuNDEzMTQsIDAuNTc3OTQzLCAwLjkwNzczMSwgMS4xMTM5NiIsIFwKLSAgICAgICAgICAiMC4xNDAwMDEsIDAuMTY3NzkyLCAwLjMwNjkyMywgMC40MzEyMDQsIDAuNTk1OTQyLCAwLjkyNTU0NSwgMS4xMzE2OSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTkxMTYsIDAuMTQ4OCwgMC40MzA1NjYsIDAuNjc5MzcxLCAxLjAxMDgzLCAxLjY3Mzc3LCAyLjA4NzYiLCBcCi0gICAgICAgICAgIjAuMDk5MTQ2LCAwLjE0ODg5NCwgMC40MzA1MjYsIDAuNjc5NDMsIDEuMDEwOTYsIDEuNjc0LCAyLjA4Nzc2IiwgXAotICAgICAgICAgICIwLjEwMjEsIDAuMTQ5ODcyLCAwLjQzMDY0NSwgMC42NzkyMTIsIDEuMDEwNDcsIDEuNjc0MTYsIDIuMDg3OSIsIFwKLSAgICAgICAgICAiMC4xMDc1LCAwLjE1MzU5NiwgMC40MzA1MTUsIDAuNjc5MDczLCAxLjAxMDQ2LCAxLjY3MzIyLCAyLjA4OCIsIFwKLSAgICAgICAgICAiMC4xMTQ1MjMsIDAuMTU5MTU3LCAwLjQzMDg0MiwgMC42NzkwODYsIDEuMDEwNzcsIDEuNjc0MTUsIDIuMDg3OTYiLCBcCi0gICAgICAgICAgIjAuMTI3MjQ4LCAwLjE3MDE0NiwgMC40MzQxNDcsIDAuNjc5MTUsIDEuMDEwOTUsIDEuNjczMjMsIDIuMDg3NTEiLCBcCi0gICAgICAgICAgIjAuMTQwMDM3LCAwLjE4MTExMywgMC40Mzk0NzQsIDAuNjgwNzY3LCAxLjAxMDUxLCAxLjY3MzI1LCAyLjA4NzQ3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE4NTA1NSwgMC4yNzY1NzgsIDAuNzk2MDc0LCAxLjI1NDMzLCAxLjg2NjM2LCAzLjA4NTY2LCAzLjg0ODc4IiwgXAotICAgICAgICAgICIwLjE5MzI1NywgMC4yODUwMjMsIDAuODA0NTcyLCAxLjI2MzM4LCAxLjg3MzM0LCAzLjA5NTA5LCAzLjg1NzE3IiwgXAotICAgICAgICAgICIwLjIwMjcxMywgMC4yOTQ1ODEsIDAuODE0NzI0LCAxLjI3MjUzLCAxLjg4MzIsIDMuMTA0OTIsIDMuODY2NiIsIFwKLSAgICAgICAgICAiMC4yMTIyNzgsIDAuMzA0MTIzLCAwLjgyNDMyMiwgMS4yODE5NywgMS44OTI1NCwgMy4xMTQ3LCAzLjg3Njc4IiwgXAotICAgICAgICAgICIwLjIyMTgzNiwgMC4zMTMyNjEsIDAuODMzOTY4LCAxLjI5MTQzLCAxLjkwMjA4LCAzLjEyNDQ5LCAzLjg4NjIzIiwgXAotICAgICAgICAgICIwLjIzNzEwNCwgMC4zMjksIDAuODQ5Mjc3LCAxLjMwNywgMS45MTkwMywgMy4xMzkyOCwgMy45MDIxNyIsIFwKLSAgICAgICAgICAiMC4yNTA4ODQsIDAuMzQyNDk2LCAwLjg2MjM0NCwgMS4zMjA5NCwgMS45MzMyMSwgMy4xNTI3MiwgMy45MTU3NiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zNTQzMDksIDAuNTM1NTk5LCAxLjU3MTgsIDIuNDg0OTQsIDMuNzAzMzgsIDYuMTI4NTUsIDcuNjQ1MjUiLCBcCi0gICAgICAgICAgIjAuMzU0MDczLCAwLjUzNzA1OSwgMS41NzIsIDIuNDgyODUsIDMuNzAyMiwgNi4xMjI3OSwgNy42NDQ4MyIsIFwKLSAgICAgICAgICAiMC4zNTM2NzQsIDAuNTM2OTU4LCAxLjU2ODc0LCAyLjQ3OTk5LCAzLjcwMjIzLCA2LjEyMjkzLCA3LjY0Mzg2IiwgXAotICAgICAgICAgICIwLjM1MzgwOCwgMC41MzY4NzMsIDEuNTcyMjIsIDIuNDgwNiwgMy43MDE3NSwgNi4xMjMxNiwgNy42NDQ4OCIsIFwKLSAgICAgICAgICAiMC4zNTUxMTcsIDAuNTM2OTQzLCAxLjU3MjIxLCAyLjQ4MTc4LCAzLjY5NTg2LCA2LjEyMjk5LCA3LjY0Mjk2IiwgXAotICAgICAgICAgICIwLjM1OTM2NSwgMC41Mzg0NTMsIDEuNTcyMDMsIDIuNDg0NSwgMy43MDI5NCwgNi4xMzAwNiwgNy42NDQ5MSIsIFwKLSAgICAgICAgICAiMC4zNjM5NjcsIDAuNTQxMjE0LCAxLjU3MTQ5LCAyLjQ4MDM1LCAzLjcwMzQxLCA2LjEyNTYxLCA3LjY0MDY2Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1MzA3NCwgMC4wNzc4NzcsIDAuMjE4MTczLCAwLjM0MjA0NywgMC41MDcwNTUsIDAuODM3MDY4LCAxLjA0Mjc4IiwgXAotICAgICAgICAgICIwLjA2MzQ2NCwgMC4wODgyODksIDAuMjI4NiwgMC4zNTIzNDgsIDAuNTE3MDkxLCAwLjg0Njk0NiwgMS4wNTMxOSIsIFwKLSAgICAgICAgICAiMC4wNzYzNDYsIDAuMTAxMTQ5LCAwLjI0MTQ2MSwgMC4zNjUxMDMsIDAuNTMwMDM0LCAwLjg1ODkyNiwgMS4wNjUzIiwgXAotICAgICAgICAgICIwLjA4OTQ3MiwgMC4xMTM5OTMsIDAuMjU0MDc0LCAwLjM3NzcsIDAuNTQxMjIzLCAwLjg3MTExOCwgMS4wNzc2MSIsIFwKLSAgICAgICAgICAiMC4xMDIyNzEsIDAuMTI3MDIsIDAuMjY2OTYzLCAwLjM5MDQ4NywgMC41NTUyMjIsIDAuODg1MDc1LCAxLjA5MDIzIiwgXAotICAgICAgICAgICIwLjEyMjA3NiwgMC4xNDc2MTYsIDAuMjg2ODM5LCAwLjQxMTA2NiwgMC41NzY3NDYsIDAuOTA1MzA3LCAxLjExMTU0IiwgXAotICAgICAgICAgICIwLjEzNzIwMSwgMC4xNjYxNSwgMC4zMDQ2MTEsIDAuNDI4ODA3LCAwLjU5NDg0NywgMC45MjMxNDIsIDEuMTI5MjciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk2NDA2LCAwLjE0NjEzNSwgMC40Mjc4NzIsIDAuNjc2NTI0LCAxLjAwODA0LCAxLjY3MTI3LCAyLjA4NDc2IiwgXAotICAgICAgICAgICIwLjA5NjQ4MywgMC4xNDYxMjQsIDAuNDI3ODMxLCAwLjY3NjcxNCwgMS4wMDc4NywgMS42NzA2NywgMi4wODQ3MyIsIFwKLSAgICAgICAgICAiMC4wOTk1ODcsIDAuMTQ3MzA5LCAwLjQyNzkyNCwgMC42NzYzNzUsIDEuMDA4MDYsIDEuNjcwODQsIDIuMDg1NzciLCBcCi0gICAgICAgICAgIjAuMTA1Mjg4LCAwLjE1MTMyLCAwLjQyNzgzNywgMC42NzY1MjIsIDEuMDA3ODYsIDEuNjcwNjYsIDIuMDg1MjgiLCBcCi0gICAgICAgICAgIjAuMTEyMzQzLCAwLjE1NjgwOCwgMC40MjgxNDksIDAuNjc2MzY5LCAxLjAwODIxLCAxLjY3MDgsIDIuMDg1MDgiLCBcCi0gICAgICAgICAgIjAuMTI1Mzg2LCAwLjE2Nzk0NSwgMC40MzE2MjYsIDAuNjc2NDE5LCAxLjAwODIsIDEuNjcxMDksIDIuMDg1MjMiLCBcCi0gICAgICAgICAgIjAuMTM4MjEsIDAuMTc4NDI0LCAwLjQzNjkyNSwgMC42NzgxNjksIDEuMDA3NzcsIDEuNjcwODMsIDIuMDg1NTMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTc0NDA5LCAwLjI2NjA0NywgMC43ODU2MzgsIDEuMjQzNjUsIDEuODU1NTcsIDMuMDc1MTMsIDMuODM3OTkiLCBcCi0gICAgICAgICAgIjAuMTgyMzc5LCAwLjI3NDA5NSwgMC43OTQwNTgsIDEuMjUyNTUsIDEuODYyNjYsIDMuMDgzNDksIDMuODQ2NTciLCBcCi0gICAgICAgICAgIjAuMTkyMzI4LCAwLjI4NDI0NSwgMC44MDM5OTgsIDEuMjYyMzIsIDEuODczMzMsIDMuMDkzOSwgMy44NTY2MyIsIFwKLSAgICAgICAgICAiMC4yMDI1MDEsIDAuMjk0Mjk5LCAwLjgxMzk3MSwgMS4yNzIwMSwgMS44ODI2NSwgMy4xMDUwOSwgMy44NjY4NiIsIFwKLSAgICAgICAgICAiMC4yMTI2NzQsIDAuMzA0NTU3LCAwLjgyNDM4OCwgMS4yODIyMiwgMS44OTM5MiwgMy4xMTQzOCwgMy44Nzc0MiIsIFwKLSAgICAgICAgICAiMC4yMjkyMzYsIDAuMzIwOTY1LCAwLjg0MTA5NSwgMS4yOTg3NSwgMS45MDkyNywgMy4xMzEyMywgMy44OTM4NiIsIFwKLSAgICAgICAgICAiMC4yNDQwMzQsIDAuMzM1NDk0LCAwLjg1NDkxOSwgMS4zMTMyMSwgMS45MjM5NSwgMy4xNDUwNSwgMy45MDc5NCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zNTQzMjMsIDAuNTM2ODg0LCAxLjU3MTk1LCAyLjQ4NDg4LCAzLjcwMzIxLCA2LjEyNzAyLCA3LjY0NTA4IiwgXAotICAgICAgICAgICIwLjM1NDMyOSwgMC41MzU5MTEsIDEuNTcyMTMsIDIuNDg1NDQsIDMuNzAyMTUsIDYuMTI1NTUsIDcuNjQ1MzMiLCBcCi0gICAgICAgICAgIjAuMzU0MDk1LCAwLjUzNjkzOSwgMS41Njg4LCAyLjQ4MDEyLCAzLjcwMjUxLCA2LjEyNSwgNy42NDMxNyIsIFwKLSAgICAgICAgICAiMC4zNTMyNjMsIDAuNTM2ODA5LCAxLjU3MTY3LCAyLjQ4MjIyLCAzLjY5NjM4LCA2LjEyMjg0LCA3LjY0MjcyIiwgXAotICAgICAgICAgICIwLjM1NjAxOCwgMC41MzY2MjksIDEuNTcxODYsIDIuNDgyOTIsIDMuNzAyNiwgNi4xMjk5LCA3LjY0NTE2IiwgXAotICAgICAgICAgICIwLjM2MTM5OSwgMC41MzgxOTksIDEuNTY4NTgsIDIuNDg0NjgsIDMuNjk3MDYsIDYuMTMwMzksIDcuNjQ0OTUiLCBcCi0gICAgICAgICAgIjAuMzY4NTYsIDAuNTQxOTczLCAxLjU3MTU0LCAyLjQ4NDY4LCAzLjY5NTYzLCA2LjEyOTc1LCA3LjY0NDcyIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1MDU1OCwgMC4wNzUzMDMsIDAuMjE1NTUyLCAwLjMzOTI0MywgMC41MDQxMzIsIDAuODM0MjkyLCAxLjA0MDI3IiwgXAotICAgICAgICAgICIwLjA2MDc2OSwgMC4wODU1OTMsIDAuMjI1NzkyLCAwLjM0OTUxNCwgMC41MTQ0MzYsIDAuODQ0NDMsIDEuMDUwMzkiLCBcCi0gICAgICAgICAgIjAuMDczNDc1LCAwLjA5ODI0MywgMC4yMzg0NjYsIDAuMzYyMTk3LCAwLjUyNjM5MywgMC44NTYzNjMsIDEuMDYyOTYiLCBcCi0gICAgICAgICAgIjAuMDg2NjgyLCAwLjExMTAxMywgMC4yNTE0NTEsIDAuMzc1MDk4LCAwLjU0MDA5NCwgMC44NjkwMzEsIDEuMDczOCIsIFwKLSAgICAgICAgICAiMC4wOTk3MzksIDAuMTI0MzcsIDAuMjY0Mzk3LCAwLjM4ODAxNiwgMC41NTI2NTksIDAuODgyNTI0LCAxLjA4Nzg3IiwgXAotICAgICAgICAgICIwLjExODkzOSwgMC4xNDUyNDQsIDAuMjg1NTY1LCAwLjQwODQ0MiwgMC41NzMwOTgsIDAuOTAyOTAxLCAxLjEwOTE1IiwgXAotICAgICAgICAgICIwLjEzMzM4MywgMC4xNjMxMzcsIDAuMzAyMzQ2LCAwLjQyNjUyOSwgMC41OTIyODgsIDAuOTIyMTM3LCAxLjEyNjk1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5Mzc2NSwgMC4xNDM1ODgsIDAuNDI1NTg4LCAwLjY3NDAxOSwgMS4wMDYwNywgMS42Njk2NywgMi4wODczNiIsIFwKLSAgICAgICAgICAiMC4wOTM4ODUsIDAuMTQzNDI4LCAwLjQyNTQzMiwgMC42NzQxMzQsIDEuMDA1OTYsIDEuNjcxMzEsIDIuMDg0MyIsIFwKLSAgICAgICAgICAiMC4wOTc0NDMsIDAuMTQ1MjYyLCAwLjQyNjY0OSwgMC42NzU5NzMsIDEuMDA1NjEsIDEuNjczNzYsIDIuMDg2MDYiLCBcCi0gICAgICAgICAgIjAuMTAzMTgsIDAuMTQ5Mjc3LCAwLjQyNjA0NCwgMC42NzUxNDQsIDEuMDA2MSwgMS42NjkyMSwgMi4wODQzNyIsIFwKLSAgICAgICAgICAiMC4xMTAzNzMsIDAuMTU0NjgsIDAuNDI1NzU0LCAwLjY3NDQyMiwgMS4wMDY2NywgMS42NzM5OSwgMi4wODYzMSIsIFwKLSAgICAgICAgICAiMC4xMjM4MjUsIDAuMTY1NzI5LCAwLjQzMDYxNCwgMC42NzYzMTgsIDEuMDA2MDUsIDEuNjY5MDYsIDIuMDg1NjYiLCBcCi0gICAgICAgICAgIjAuMTM3NTg1LCAwLjE3NjczMiwgMC40MzU3OTEsIDAuNjc2NTcxLCAxLjAwNjY5LCAxLjY3MDksIDIuMDg0NzkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDMxMTcsIDAuMDAzMTE5LCAwLjAwMzEyMSwgMC4wMDMxMjEsIDAuMDAzMTIxLCAwLjAwMzEyMSwgMC4wMDMxMjEiLCBcCi0gICAgICAgICAgIjAuMDAzMTA0LCAwLjAwMzEwOSwgMC4wMDMxMTcsIDAuMDAzMTE5LCAwLjAwMzEyLCAwLjAwMzEyMSwgMC4wMDMxMjEiLCBcCi0gICAgICAgICAgIjAuMDAzMDkyLCAwLjAwMzEsIDAuMDAzMTEyLCAwLjAwMzExNiwgMC4wMDMxMTgsIDAuMDAzMTE5LCAwLjAwMzExOSIsIFwKLSAgICAgICAgICAiMC4wMDMwODQsIDAuMDAzMDkzLCAwLjAwMzExLCAwLjAwMzExNCwgMC4wMDMxMTYsIDAuMDAzMTE2LCAwLjAwMzExNyIsIFwKLSAgICAgICAgICAiMC4wMDMwNzcsIDAuMDAzMDg2LCAwLjAwMzEwNiwgMC4wMDMxMTEsIDAuMDAzMTE0LCAwLjAwMzExNywgMC4wMDMxMTgiLCBcCi0gICAgICAgICAgIjAuMDAzMDcsIDAuMDAzMDgsIDAuMDAzMTAzLCAwLjAwMzEwOCwgMC4wMDMxMTIsIDAuMDAzMTE3LCAwLjAwMzExNyIsIFwKLSAgICAgICAgICAiMC4wMDMwNjgsIDAuMDAzMDc1LCAwLjAwMzA5NywgMC4wMDMxMDMsIDAuMDAzMTA5LCAwLjAwMzExMywgMC4wMDMxMTciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDA5MzYsIDAuMDAwOTM2LCAwLjAwMDkzNiwgMC4wMDA5MzUsIDAuMDAwOTM1LCAwLjAwMDkzNSwgMC4wMDA5MzUiLCBcCi0gICAgICAgICAgIjAuMDAwOTA1LCAwLjAwMDkwNiwgMC4wMDA5MDcsIDAuMDAwOTA3LCAwLjAwMDkwNywgMC4wMDA5MDYsIDAuMDAwOTA2IiwgXAotICAgICAgICAgICIwLjAwMDg5NiwgMC4wMDA4OTgsIDAuMDAwOSwgMC4wMDA4OTYsIDAuMDAwODk3LCAwLjAwMDg5NiwgMC4wMDA4OTYiLCBcCi0gICAgICAgICAgIjAuMDAwOSwgMC4wMDA4OTgsIDAuMDAwODk5LCAwLjAwMDg5OSwgMC4wMDA4OTksIDAuMDAwODk2LCAwLjAwMDg5MiIsIFwKLSAgICAgICAgICAiMC4wMDA4OTksIDAuMDAwOTAyLCAwLjAwMDksIDAuMDAwODk5LCAwLjAwMDg5OCwgMC4wMDA4OTgsIDAuMDAwODk1IiwgXAotICAgICAgICAgICIwLjAwMDkxLCAwLjAwMDkwOSwgMC4wMDA5LCAwLjAwMDksIDAuMDAwODk5LCAwLjAwMDg5NywgMC4wMDA4OTciLCBcCi0gICAgICAgICAgIjAuMDAwOTMsIDAuMDAwOTIyLCAwLjAwMDkwMywgMC4wMDA5MDMsIDAuMDAwOSwgMC4wMDA4OTgsIDAuMDAwODk3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyNzkzLCAwLjAwMjc5NCwgMC4wMDI3OTYsIDAuMDAyNzk2LCAwLjAwMjc5NiwgMC4wMDI3OTYsIDAuMDAyNzk3IiwgXAotICAgICAgICAgICIwLjAwMjc3OSwgMC4wMDI3ODUsIDAuMDAyNzkyLCAwLjAwMjc5NCwgMC4wMDI3OTYsIDAuMDAyNzk2LCAwLjAwMjc5NCIsIFwKLSAgICAgICAgICAiMC4wMDI3NjcsIDAuMDAyNzc1LCAwLjAwMjc4OCwgMC4wMDI3OTEsIDAuMDAyNzkzLCAwLjAwMjc5NCwgMC4wMDI3OTQiLCBcCi0gICAgICAgICAgIjAuMDAyNzU5LCAwLjAwMjc2OCwgMC4wMDI3ODUsIDAuMDAyNzg5LCAwLjAwMjc5MiwgMC4wMDI3OTMsIDAuMDAyNzk0IiwgXAotICAgICAgICAgICIwLjAwMjc1MiwgMC4wMDI3NjIsIDAuMDAyNzgxLCAwLjAwMjc4NiwgMC4wMDI3ODksIDAuMDAyNzkyLCAwLjAwMjc5NCIsIFwKLSAgICAgICAgICAiMC4wMDI3NDYsIDAuMDAyNzU1LCAwLjAwMjc3NiwgMC4wMDI3ODIsIDAuMDAyNzg3LCAwLjAwMjc5LCAwLjAwMjc5NCIsIFwKLSAgICAgICAgICAiMC4wMDI3NDMsIDAuMDAyNzUxLCAwLjAwMjc3NCwgMC4wMDI3OCwgMC4wMDI3ODUsIDAuMDAyNzg5LCAwLjAwMjc5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwNjg1LCAwLjAwMDY4NCwgMC4wMDA2ODUsIDAuMDAwNjg1LCAwLjAwMDY4NSwgMC4wMDA2ODQsIDAuMDAwNjg0IiwgXAotICAgICAgICAgICIwLjAwMDY2MywgMC4wMDA2NjcsIDAuMDAwNjcsIDAuMDAwNjcsIDAuMDAwNjcsIDAuMDAwNjY5LCAwLjAwMDY2OSIsIFwKLSAgICAgICAgICAiMC4wMDA2NTMsIDAuMDAwNjU4LCAwLjAwMDY2NCwgMC4wMDA2NjMsIDAuMDAwNjY0LCAwLjAwMDY2NCwgMC4wMDA2NjUiLCBcCi0gICAgICAgICAgIjAuMDAwNjUyLCAwLjAwMDY1NiwgMC4wMDA2NjIsIDAuMDAwNjYzLCAwLjAwMDY2MiwgMC4wMDA2NjMsIDAuMDAwNjYzIiwgXAotICAgICAgICAgICIwLjAwMDY1MSwgMC4wMDA2NTUsIDAuMDAwNjY0LCAwLjAwMDY2NSwgMC4wMDA2NjUsIDAuMDAwNjY1LCAwLjAwMDY2NCIsIFwKLSAgICAgICAgICAiMC4wMDA2NTgsIDAuMDAwNjY4LCAwLjAwMDY2NiwgMC4wMDA2NjYsIDAuMDAwNjY1LCAwLjAwMDY2NSwgMC4wMDA2NjUiLCBcCi0gICAgICAgICAgIjAuMDAwNjc3LCAwLjAwMDY3OSwgMC4wMDA2NjksIDAuMDAwNjY5LCAwLjAwMDY2NywgMC4wMDA2NjYsIDAuMDAwNjY2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyNDU2LCAwLjAwMjQ1NywgMC4wMDI0NTgsIDAuMDAyNDU5LCAwLjAwMjQ1OSwgMC4wMDI0NTgsIDAuMDAyNDU5IiwgXAotICAgICAgICAgICIwLjAwMjQ0MiwgMC4wMDI0NDcsIDAuMDAyNDU0LCAwLjAwMjQ1NiwgMC4wMDI0NTcsIDAuMDAyNDU4LCAwLjAwMjQ2IiwgXAotICAgICAgICAgICIwLjAwMjQzLCAwLjAwMjQzOCwgMC4wMDI0NTEsIDAuMDAyNDU0LCAwLjAwMjQ1NSwgMC4wMDI0NTksIDAuMDAyNDU3IiwgXAotICAgICAgICAgICIwLjAwMjQyMSwgMC4wMDI0MywgMC4wMDI0NDcsIDAuMDAyNDUxLCAwLjAwMjQ1NCwgMC4wMDI0NTgsIDAuMDAyNDU2IiwgXAotICAgICAgICAgICIwLjAwMjQxNSwgMC4wMDI0MjIsIDAuMDAyNDQ0LCAwLjAwMjQ1LCAwLjAwMjQ1MiwgMC4wMDI0NTQsIDAuMDAyNDU1IiwgXAotICAgICAgICAgICIwLjAwMjQxMSwgMC4wMDI0MTksIDAuMDAyNDM5LCAwLjAwMjQ0NiwgMC4wMDI0NSwgMC4wMDI0NTMsIDAuMDAyNDU3IiwgXAotICAgICAgICAgICIwLjAwMjQwOCwgMC4wMDI0MTYsIDAuMDAyNDM3LCAwLjAwMjQ0MywgMC4wMDI0NDgsIDAuMDAyNDUyLCAwLjAwMjQ1MyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDM4NywgMC4wMDAzODgsIDAuMDAwMzg4LCAwLjAwMDM4OCwgMC4wMDAzODgsIDAuMDAwMzg4LCAwLjAwMDM4OCIsIFwKLSAgICAgICAgICAiMC4wMDAzODgsIDAuMDAwMzkzLCAwLjAwMDM5OSwgMC4wMDA0LCAwLjAwMDQwMSwgMC4wMDA0MDIsIDAuMDAwNDAxIiwgXAotICAgICAgICAgICIwLjAwMDM4LCAwLjAwMDM4NywgMC4wMDAzOTksIDAuMDAwNDAxLCAwLjAwMDQwMiwgMC4wMDA0MDUsIDAuMDAwNDA1IiwgXAotICAgICAgICAgICIwLjAwMDM3NiwgMC4wMDAzODQsIDAuMDAwMzk4LCAwLjAwMDQwMSwgMC4wMDA0MDQsIDAuMDAwNDA1LCAwLjAwMDQwNiIsIFwKLSAgICAgICAgICAiMC4wMDAzNzMsIDAuMDAwMzgyLCAwLjAwMDM5NywgMC4wMDA0LCAwLjAwMDQwMywgMC4wMDA0MDQsIDAuMDAwNDA1IiwgXAotICAgICAgICAgICIwLjAwMDM3NywgMC4wMDAzOTMsIDAuMDAwNCwgMC4wMDA0LCAwLjAwMDQwMiwgMC4wMDA0MDUsIDAuMDAwNDA1IiwgXAotICAgICAgICAgICIwLjAwMDM5NSwgMC4wMDAzOTYsIDAuMDAwNDAzLCAwLjAwMDQwNSwgMC4wMDA0MDQsIDAuMDAwNDA2LCAwLjAwMDQwNiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkQiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjExMywgMC4wMDIxMTUsIDAuMDAyMTE4LCAwLjAwMjExOCwgMC4wMDIxMTgsIDAuMDAyMTE5LCAwLjAwMjExOSIsIFwKLSAgICAgICAgICAiMC4wMDIwOTQsIDAuMDAyMTAxLCAwLjAwMjExMiwgMC4wMDIxMTUsIDAuMDAyMTE2LCAwLjAwMjExNywgMC4wMDIxMTciLCBcCi0gICAgICAgICAgIjAuMDAyMDc4LCAwLjAwMjA4OCwgMC4wMDIxMDYsIDAuMDAyMTEsIDAuMDAyMTEzLCAwLjAwMjExNSwgMC4wMDIxMTYiLCBcCi0gICAgICAgICAgIjAuMDAyMDcxLCAwLjAwMjA4MSwgMC4wMDIxMDIsIDAuMDAyMTA3LCAwLjAwMjExLCAwLjAwMjExNCwgMC4wMDIxMTQiLCBcCi0gICAgICAgICAgIjAuMDAyMDY4LCAwLjAwMjA3NywgMC4wMDIwOTgsIDAuMDAyMTA1LCAwLjAwMjEwOSwgMC4wMDIxMTIsIDAuMDAyMTE0IiwgXAotICAgICAgICAgICIwLjAwMjA3MywgMC4wMDIwNzcsIDAuMDAyMDk1LCAwLjAwMjEwMiwgMC4wMDIxMDcsIDAuMDAyMTExLCAwLjAwMjExMiIsIFwKLSAgICAgICAgICAiMC4wMDIwODIsIDAuMDAyMDgxLCAwLjAwMjA5NCwgMC4wMDIxMDEsIDAuMDAyMTA1LCAwLjAwMjExLCAwLjAwMjExNSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDA1NiwgMC4wMDAwNTgsIDAuMDAwMDYyLCAwLjAwMDA2MiwgMC4wMDAwNjMsIDAuMDAwMDYzLCAwLjAwMDA2MyIsIFwKLSAgICAgICAgICAiMC4wMDAwNjYsIDAuMDAwMDc1LCAwLjAwMDA4NiwgMC4wMDAwODksIDAuMDAwMDksIDAuMDAwMDkxLCAwLjAwMDA5MSIsIFwKLSAgICAgICAgICAiMC4wMDAwNTgsIDAuMDAwMDcxLCAwLjAwMDA4OCwgMC4wMDAwOTIsIDAuMDAwMDk4LCAwLjAwMDEsIDAuMDAwMTAxIiwgXAotICAgICAgICAgICIwLjAwMDA1MywgMC4wMDAwNjUsIDAuMDAwMDg3LCAwLjAwMDA5MiwgMC4wMDAwOTUsIDAuMDAwMSwgMC4wMDAxMDQiLCBcCi0gICAgICAgICAgIjAuMDAwMDUsIDAuMDAwMDYzLCAwLjAwMDA4NSwgMC4wMDAwOTEsIDAuMDAwMDk1LCAwLjAwMDA5OCwgMC4wMDAxMDEiLCBcCi0gICAgICAgICAgIjAuMDAwMDUsIDAuMDAwMDYzLCAwLjAwMDA4NSwgMC4wMDAwOSwgMC4wMDAwOTUsIDAuMDAwMDk5LCAwLjAwMDA5OSIsIFwKLSAgICAgICAgICAiMC4wMDAwNTYsIDAuMDAwMDY2LCAwLjAwMDA4NiwgMC4wMDAwOTIsIDAuMDAwMDk1LCAwLjAwMDA5OCwgMC4wMDAxIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBOT1I0WEwgKgotICogLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChOT1I0WEwpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4wNzM5NTc1OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA1OTAwODg7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNTg2NjE5OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDU5MDA4ODsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxOTMsIDAuMDAwMjAzLCAwLjAwMDIwNywgMC4wMDAyMDksIDAuMDAwMjEsIDAuMDAwMjExLCAwLjAwMDIxMiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDU2NCwgMC4wMDA1NjUsIDAuMDAwNTY1LCAwLjAwMDU2NSwgMC4wMDA1NjUsIDAuMDAwNTY1LCAwLjAwMDU2NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjEyMDQyOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYwOTEwNDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2MTIwNDI7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMTg5LCAwLjAwMDIwMSwgMC4wMDAyMDgsIDAuMDAwMjEsIDAuMDAwMjEyLCAwLjAwMDIxNSwgMC4wMDAyMTYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA0MDIsIDAuMDAwNDAyLCAwLjAwMDQwMiwgMC4wMDA0MDIsIDAuMDAwNDAyLCAwLjAwMDQwMiwgMC4wMDA0MDIiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEMpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYyMTc3MTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MTkxMTg7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjIxNzcxOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDE5MiwgMC4wMDAyMTEsIDAuMDAwMjE1LCAwLjAwMDIxNywgMC4wMDAyMTcsIDAuMDAwMjE5LCAwLjAwMDIyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjQxLCAwLjAwMDI0MSwgMC4wMDAyNDEsIDAuMDAwMjQxLCAwLjAwMDI0MSwgMC4wMDAyNDEsIDAuMDAwMjQxIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihEKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2MjI4OTk7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjIyODk5OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDYyMjg4NzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAwNjEsIDAuMDAwMDYxLCAwLjAwMDA2MSwgMC4wMDAwNjEsIDAuMDAwMDYxLCAwLjAwMDA2MSwgMC4wMDAwNjEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyLCAwLjAwMDIsIDAuMDAwMiwgMC4wMDAyLCAwLjAwMDIsIDAuMDAwMiwgMC4wMDAyIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMDM5NzI0NTsKLSAgICBmdW5jdGlvbiA6ICIoISgoKEErQikrQykrRCkpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMDgyODIsIDAuMzYwMTc5LCAwLjgyOTI2OCwgMS42MTA3NSwgMi4zOTMzNywgNC4yMTM5OCwgNS4yNTQzMSIsIFwKLSAgICAgICAgICAiMC4zMTYzOSwgMC4zNjg4ODMsIDAuODM3OTIsIDEuNjIwNTQsIDIuNDAwNzIsIDQuMjIyMTUsIDUuMjYyOSIsIFwKLSAgICAgICAgICAiMC4zMjQ2NiwgMC4zNzY4NTMsIDAuODQ2MjA4LCAxLjYyODE3LCAyLjQwOTY0LCA0LjIzMDg0LCA1LjI3MTE5IiwgXAotICAgICAgICAgICIwLjMzMjAyNywgMC4zODQxNzEsIDAuODUzODI2LCAxLjYzNjQxLCAyLjQxNTkxLCA0LjIzNzg3LCA1LjI3ODY2IiwgXAotICAgICAgICAgICIwLjMzODk0MSwgMC4zOTExODMsIDAuODYwMTI0LCAxLjY0MjEsIDIuNDI0NzIsIDQuMjQ1MywgNS4yODU3NiIsIFwKLSAgICAgICAgICAiMC4zNDkzNDksIDAuNDAxNTEsIDAuODcwNzc4LCAxLjY1MzA0LCAyLjQzNDgzLCA0LjI1NTcsIDUuMjk2MzEiLCBcCi0gICAgICAgICAgIjAuMzU4MjI3LCAwLjQxMDM5NCwgMC44Nzk1NiwgMS42NjEyMiwgMi40NDI1NiwgNC4yNjQ4MiwgNS4zMDU2Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjU4MjM2LCAwLjY4NjAyMywgMS42MjUxMiwgMy4xODkyNSwgNC43NDM4LCA4LjM4NjQ5LCAxMC40NjI2IiwgXAotICAgICAgICAgICIwLjU4MjE5MywgMC42ODUzNTgsIDEuNjI1MzQsIDMuMTg0MDMsIDQuNzUzNDUsIDguMzg2MjEsIDEwLjQ2MTciLCBcCi0gICAgICAgICAgIjAuNTgxMjU1LCAwLjY4NTM2OSwgMS42MjE5NCwgMy4xODk3NiwgNC43NDM4OCwgOC4zODE5OCwgMTAuNDYzMSIsIFwKLSAgICAgICAgICAiMC41ODIyMjgsIDAuNjg2NDgyLCAxLjYyNTQ3LCAzLjE4MzYyLCA0Ljc1MjY3LCA4LjM4NTgyLCAxMC40NjMxIiwgXAotICAgICAgICAgICIwLjU4MjI0OCwgMC42ODY1NjksIDEuNjIzMjYsIDMuMTg5MzQsIDQuNzU0NDgsIDguMzg2MjIsIDEwLjQ2MjYiLCBcCi0gICAgICAgICAgIjAuNTgyOTA4LCAwLjY4NTQ5MSwgMS42MjQ5MSwgMy4xODk2OSwgNC43NTQwNCwgOC4zODYwMywgMTAuNDYzMSIsIFwKLSAgICAgICAgICAiMC41ODMxMjIsIDAuNjg3NjgsIDEuNjIyMjQsIDMuMTg4ODMsIDQuNzQ3NCwgOC4zODYxLCAxMC40NjEiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg2Mzc0LCAwLjEwMDM2NSwgMC4yMjU0MzgsIDAuNDMzMTYyLCAwLjY0MDcwMSwgMS4xMjQ3OSwgMS40MDE1MSIsIFwKLSAgICAgICAgICAiMC4wOTY0MjIsIDAuMTEwMzkyLCAwLjIzNTUyMywgMC40NDMyNjUsIDAuNjUwODk5LCAxLjEzNTI5LCAxLjQxMTc5IiwgXAotICAgICAgICAgICIwLjEwOTE3MiwgMC4xMjMxMjUsIDAuMjQ4MDcxLCAwLjQ1NTg1OCwgMC42NjIxMDUsIDEuMTQ2NDcsIDEuNDIzMDgiLCBcCi0gICAgICAgICAgIjAuMTIxODYyLCAwLjEzNTgwMSwgMC4yNjA5NDQsIDAuNDY4NTM1LCAwLjY3NjA0LCAxLjE1ODU5LCAxLjQzNSIsIFwKLSAgICAgICAgICAiMC4xMzUxOTgsIDAuMTQ5MTA3LCAwLjI3MzcwOCwgMC40ODEzMDEsIDAuNjg4ODMxLCAxLjE3MDY4LCAxLjQ0Njc1IiwgXAotICAgICAgICAgICIwLjE1NTkwMSwgMC4xNjk4MjcsIDAuMjk0MzgyLCAwLjUwMTYzOSwgMC43MDkzMzUsIDEuMTkzMjksIDEuNDY3MDIiLCBcCi0gICAgICAgICAgIjAuMTc0NDU4LCAwLjE4ODEzMSwgMC4zMTE3MjcsIDAuNTE5NzUxLCAwLjcyNzEwMywgMS4yMTExNCwgMS40ODQwOSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNjAzNTQsIDAuMTg4MDE0LCAwLjQzNzIzNCwgMC44NTI3NzEsIDEuMjY4MTUsIDIuMjM3NDMsIDIuNzkyMzUiLCBcCi0gICAgICAgICAgIjAuMTYwMzI1LCAwLjE4ODA0MSwgMC40MzcyODgsIDAuODUzMDgxLCAxLjI2ODc0LCAyLjIzNzgxLCAyLjc5MjU4IiwgXAotICAgICAgICAgICIwLjE2MTEzOCwgMC4xODgzNzYsIDAuNDM3MTkyLCAwLjg1MzExMSwgMS4yNjg3NCwgMi4yMzc3OSwgMi43OTI2NyIsIFwKLSAgICAgICAgICAiMC4xNjQ4LCAwLjE5MTE4NiwgMC40MzcyMDQsIDAuODUyODAyLCAxLjI2ODA1LCAyLjIzNzgzLCAyLjc5MjU3IiwgXAotICAgICAgICAgICIwLjE2OTcwNywgMC4xOTU0MDcsIDAuNDM3NDQ3LCAwLjg1Mjg4OCwgMS4yNjg3MiwgMi4yMzgyLCAyLjc5MTIiLCBcCi0gICAgICAgICAgIjAuMTc5OTg2LCAwLjIwNDk4NywgMC40NDA0NjgsIDAuODUyOTcsIDEuMjY4MzgsIDIuMjM3MzQsIDIuNzkxNDUiLCBcCi0gICAgICAgICAgIjAuMTkwNzQ5LCAwLjIxNDYxNywgMC40NDU3NDYsIDAuODUyNzEsIDEuMjY4NDYsIDIuMjM4NCwgMi43OTExNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMDUxMDksIDAuMzU3MjQ1LCAwLjgyNjExOSwgMS42MDc1OSwgMi4zOTAyNCwgNC4yMTA3OCwgNS4yNTExNiIsIFwKLSAgICAgICAgICAiMC4zMTMzNzcsIDAuMzY1MjQ1LCAwLjgzNDUzOCwgMS42MTYsIDIuMzk4MzEsIDQuMjE4NTksIDUuMjU5NDgiLCBcCi0gICAgICAgICAgIjAuMzIxOTUsIDAuMzc0MTE1LCAwLjg0MzMxNSwgMS42MjQ0MiwgMi40MDY2NiwgNC4yMjgwMywgNS4yNjg2NSIsIFwKLSAgICAgICAgICAiMC4zMzAwMTUsIDAuMzgyMzMxLCAwLjg1MTI2OCwgMS42MzM0MiwgMi40MTUyMywgNC4yMzY1LCA1LjI3NjciLCBcCi0gICAgICAgICAgIjAuMzM3ODksIDAuMzkwMjc1LCAwLjg2MDAyMSwgMS42NDE2NiwgMi40MjI2OCwgNC4yNDM5NywgNS4yODQ3MyIsIFwKLSAgICAgICAgICAiMC4zNTAzOTgsIDAuNDAyNjA1LCAwLjg3MjQ3OSwgMS42NTMzNSwgMi40MzU4OCwgNC4yNTY4NSwgNS4yOTczNyIsIFwKLSAgICAgICAgICAiMC4zNjEzMywgMC40MTM1NjgsIDAuODgzNDUyLCAxLjY2NDQ3LCAyLjQ0NzQ3LCA0LjI2NzYzLCA1LjMwODQ2Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjU4MjM3NiwgMC42ODY2NzEsIDEuNjI1MTUsIDMuMTg5MjksIDQuNzQzOSwgOC4zODY0OSwgMTAuNDYyNSIsIFwKLSAgICAgICAgICAiMC41ODI0MTMsIDAuNjg1MzQ2LCAxLjYyNTIyLCAzLjE4OTMzLCA0Ljc0MzkzLCA4LjM4NDg0LCAxMC40NjMyIiwgXAotICAgICAgICAgICIwLjU4MjE3MiwgMC42ODY0NzksIDEuNjI1MSwgMy4xODg3MywgNC43NTM2NywgOC4zODYxMywgMTAuNDYyMyIsIFwKLSAgICAgICAgICAiMC41ODE1MDMsIDAuNjg2NTY4LCAxLjYyMjY1LCAzLjE4OTU2LCA0Ljc0NDEzLCA4LjM4NjM1LCAxMC40NjI4IiwgXAotICAgICAgICAgICIwLjU4MTI0MywgMC42ODY2MDUsIDEuNjIyMzgsIDMuMTg5ODMsIDQuNzUzNTMsIDguMzg1ODgsIDEwLjQ2MzEiLCBcCi0gICAgICAgICAgIjAuNTgzMDg4LCAwLjY4Njc4MywgMS42MjU0NywgMy4xODM2NSwgNC43NTM5NSwgOC4zODYwMSwgMTAuNDYzIiwgXAotICAgICAgICAgICIwLjU4NDg5LCAwLjY4ODEyMywgMS42MjE5NCwgMy4xODg4NywgNC43NDM2NywgOC4zODU3NSwgMTAuNDYzIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4NDU0NiwgMC4wOTg0MzYsIDAuMjIzMjA4LCAwLjQzMDczOSwgMC42MzgyMjIsIDEuMTIyNDEsIDEuMzk5MTYiLCBcCi0gICAgICAgICAgIjAuMDk0Nzk3LCAwLjEwODY4MiwgMC4yMzM0NDMsIDAuNDQxMDE3LCAwLjY0ODc1NCwgMS4xMzI5MywgMS40MDk1OSIsIFwKLSAgICAgICAgICAiMC4xMDc2NiwgMC4xMjE1NTUsIDAuMjQ2Mjk4LCAwLjQ1MzgwNCwgMC42NjE1NywgMS4xNDU2MywgMS40MjI0OSIsIFwKLSAgICAgICAgICAiMC4xMjAwODMsIDAuMTMzOTQ2LCAwLjI1ODc5NCwgMC40NjYyOTEsIDAuNjcyNjQ1LCAxLjE1NjksIDEuNDMzNDMiLCBcCi0gICAgICAgICAgIjAuMTMzNTI2LCAwLjE0NzI1NCwgMC4yNzE3LCAwLjQ3ODg3NiwgMC42ODY0NDMsIDEuMTY3NjcsIDEuNDQ0OTYiLCBcCi0gICAgICAgICAgIjAuMTU0MDY4LCAwLjE2NzczNCwgMC4yOTIwNjcsIDAuNDk5MzU3LCAwLjcwNjgwNCwgMS4xODc0NiwgMS40NjQzMyIsIFwKLSAgICAgICAgICAiMC4xNzIxOTQsIDAuMTg1OTgyLCAwLjMwOTM2OCwgMC41MTcxMzYsIDAuNzI0Mzk4LCAxLjIwNTAzLCAxLjQ4MTU1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE1NzQ1MiwgMC4xODUyNzksIDAuNDM0NDY1LCAwLjg0OTkzMSwgMS4yNjU4MywgMi4yMzUyNCwgMi43ODk0NyIsIFwKLSAgICAgICAgICAiMC4xNTc1NDMsIDAuMTg1MjU5LCAwLjQzNDQ1NywgMC44NDk5MDksIDEuMjY1NjUsIDIuMjM1MjgsIDIuNzg5NzciLCBcCi0gICAgICAgICAgIjAuMTU4MzI3LCAwLjE4NTYyNSwgMC40MzQ1NiwgMC44NDk5MDMsIDEuMjY1NjksIDIuMjM1MjcsIDIuNzg5OTMiLCBcCi0gICAgICAgICAgIjAuMTYyMjUsIDAuMTg4NTkzLCAwLjQzNDQ0OSwgMC44NDk5MSwgMS4yNjU3OSwgMi4yMzUyOSwgMi43ODk5MyIsIFwKLSAgICAgICAgICAiMC4xNjcxNTUsIDAuMTkyODczLCAwLjQzNDcyMSwgMC44NTAxMzUsIDEuMjY1NzQsIDIuMjM0NzIsIDIuNzg5NjciLCBcCi0gICAgICAgICAgIjAuMTc4MDAxLCAwLjIwMjYwMSwgMC40MzgxMywgMC44NTAxOTEsIDEuMjY1NjMsIDIuMjM1NDYsIDIuNzg5NDIiLCBcCi0gICAgICAgICAgIjAuMTg4NzIzLCAwLjIxMjU5MiwgMC40NDMxNDYsIDAuODUwMDUxLCAxLjI2NTk0LCAyLjIzNTAxLCAyLjc4OTUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjk3ODkzLCAwLjM1MDA0MSwgMC44MTkwMzQsIDEuNjAwNTgsIDIuMzgyNDgsIDQuMjAzNzQsIDUuMjQ0MjMiLCBcCi0gICAgICAgICAgIjAuMzA2MDIzLCAwLjM1ODEzNSwgMC44MjcyMDksIDEuNjA4NzUsIDIuMzkxMzMsIDQuMjExNzQsIDUuMjUyNTEiLCBcCi0gICAgICAgICAgIjAuMzE1NTQ1LCAwLjM2Nzk2OSwgMC44MzcyNDksIDEuNjE4NTYsIDIuNDAwNjgsIDQuMjIxMSwgNS4yNjIiLCBcCi0gICAgICAgICAgIjAuMzI1MTgsIDAuMzc3Mzc1LCAwLjg0NjE2MSwgMS42MjgxOCwgMi40MDk1MSwgNC4yMzA5LCA1LjI3MTcyIiwgXAotICAgICAgICAgICIwLjMzNDI5NSwgMC4zODY2NywgMC44NTU2NTUsIDEuNjM4MjUsIDIuNDE5NDIsIDQuMjQwODQsIDUuMjgxMSIsIFwKLSAgICAgICAgICAiMC4zNDk0MzQsIDAuNDAxNjA4LCAwLjg3MTI3OCwgMS42NTMyNSwgMi40MzQ5NiwgNC4yNTYwOCwgNS4yOTY0OCIsIFwKLSAgICAgICAgICAiMC4zNjI1MjgsIDAuNDE0OTEzLCAwLjg4NDE1LCAxLjY2NTgzLCAyLjQ0ODA2LCA0LjI2OTIsIDUuMzA5OTQiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuNTgyMTY3LCAwLjY4NTQwNSwgMS42MjUwNiwgMy4xODkyNiwgNC43NTM4MSwgOC4zODY0NCwgMTAuNDYyOCIsIFwKLSAgICAgICAgICAiMC41ODIyNjUsIDAuNjg1MzA4LCAxLjYyNTEsIDMuMTg5MTYsIDQuNzQzOTQsIDguMzg2MDcsIDEwLjQ2MTkiLCBcCi0gICAgICAgICAgIjAuNTgyMjQxLCAwLjY4NTMxOSwgMS42MjU0NSwgMy4xODkzOSwgNC43NDQ2OCwgOC4zODU0MywgMTAuNDYzMSIsIFwKLSAgICAgICAgICAiMC41ODEyNTEsIDAuNjg1MjEyLCAxLjYyNDg0LCAzLjE4MzgzLCA0Ljc1MzI3LCA4LjM4NTg5LCAxMC40NjE1IiwgXAotICAgICAgICAgICIwLjU4MjE2MSwgMC42ODY2MTksIDEuNjI0ODgsIDMuMTg5OTcsIDQuNzQ0OCwgOC4zODE4OSwgMTAuNDYzIiwgXAotICAgICAgICAgICIwLjU4MzM4MSwgMC42ODY4MzgsIDEuNjI1MzEsIDMuMTg5NzQsIDQuNzQ0MjMsIDguMzg2MjcsIDEwLjQ2MjYiLCBcCi0gICAgICAgICAgIjAuNTg0NDY3LCAwLjY4ODUwNSwgMS42MjI1NCwgMy4xODg4NiwgNC43NTM3MiwgOC4zODU5MiwgMTAuNDYzMSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODIxOTgsIDAuMDk2MDUzLCAwLjIyMDYzMiwgMC40MjgxMjIsIDAuNjM1NTYzLCAxLjExOTYsIDEuMzk2MzQiLCBcCi0gICAgICAgICAgIjAuMDkyNDU3LCAwLjEwNjA5NCwgMC4yMzA2NjcsIDAuNDM4MTg1LCAwLjY0NTYwNCwgMS4xMjk1NSwgMS40MDY2MiIsIFwKLSAgICAgICAgICAiMC4xMDU1MDEsIDAuMTE5MzI4LCAwLjI0MzkwNCwgMC40NTEyOTYsIDAuNjU4OTgxLCAxLjE0MzExLCAxLjQxOTgzIiwgXAotICAgICAgICAgICIwLjExODQyNywgMC4xMzIyNCwgMC4yNTY3NzcsIDAuNDYzNzc5LCAwLjY3MDEwMiwgMS4xNTQ0MywgMS40MzA4IiwgXAotICAgICAgICAgICIwLjEzMTIzNywgMC4xNDUwMzIsIDAuMjY4OTk5LCAwLjQ3NjU5MiwgMC42ODIzMzgsIDEuMTY1MTUsIDEuNDQyNDIiLCBcCi0gICAgICAgICAgIjAuMTUxODI4LCAwLjE2NTU5OCwgMC4yODk2NTcsIDAuNDk2NzczLCAwLjcwNDI2OCwgMS4xODUxNCwgMS40NjE0NiIsIFwKLSAgICAgICAgICAiMC4xNjk5NTEsIDAuMTgzNzYzLCAwLjMwNjkzNCwgMC41MTQ2NDYsIDAuNzIxODE1LCAxLjIwMjQxLCAxLjQ3OTE0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE1NDY2NCwgMC4xODIzNzIsIDAuNDMxNjM2LCAwLjg0NzA0NCwgMS4yNjI5LCAyLjIzMjY1LCAyLjc4Njg5IiwgXAotICAgICAgICAgICIwLjE1NDcwOSwgMC4xODIzNDksIDAuNDMxNjM2LCAwLjg0NzQ1LCAxLjI2MzAxLCAyLjIzMjQ5LCAyLjc4NzAzIiwgXAotICAgICAgICAgICIwLjE1NTY4MywgMC4xODI4NzMsIDAuNDMxNzgxLCAwLjg0NzM3NSwgMS4yNjMyNSwgMi4yMzI2LCAyLjc4NzIzIiwgXAotICAgICAgICAgICIwLjE1OTM2OCwgMC4xODU3MjMsIDAuNDMxNjI0LCAwLjg0NzM2NiwgMS4yNjI3LCAyLjIzMjk5LCAyLjc4NjYxIiwgXAotICAgICAgICAgICIwLjE2NDgzNywgMC4xOTAzOTcsIDAuNDMxOTQ4LCAwLjg0NzQzMSwgMS4yNjI5NywgMi4yMzI4NCwgMi43ODcxNSIsIFwKLSAgICAgICAgICAiMC4xNzU2NzEsIDAuMjAwMzcxLCAwLjQzNTQwMSwgMC44NDczNDEsIDEuMjYzMjcsIDIuMjMyMTIsIDIuNzg2NzciLCBcCi0gICAgICAgICAgIjAuMTg2NjQ4LCAwLjIxMDM0OCwgMC40NDA2MTIsIDAuODQ3NDAxLCAxLjI2Mjg2LCAyLjIzMjc0LCAyLjc4NjYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjg2ODk0LCAwLjMzOTAzNiwgMC44MDc3NDMsIDEuNTkwMzMsIDIuMzcwNSwgNC4xOTI5LCA1LjIzMzE0IiwgXAotICAgICAgICAgICIwLjI5NTExMiwgMC4zNDcyNTMsIDAuODE2NjM3LCAxLjU5NzY0LCAyLjM3OTQxLCA0LjIwMDc1LCA1LjI0MTM5IiwgXAotICAgICAgICAgICIwLjMwNDg2LCAwLjM1NzA1MSwgMC44MjY4NzUsIDEuNjA3NjUsIDIuMzkwMjIsIDQuMjExMTYsIDUuMjUxNjkiLCBcCi0gICAgICAgICAgIjAuMzE0OTE0LCAwLjM2NzE1MSwgMC44MzYyNzUsIDEuNjE4MzcsIDIuNDAwMzgsIDQuMjIxNCwgNS4yNjE3OCIsIFwKLSAgICAgICAgICAiMC4zMjQ5OTUsIDAuMzc3MTU5LCAwLjg0NjU0MiwgMS42Mjc2OCwgMi40MTA0MywgNC4yMzEzMywgNS4yNzE5NCIsIFwKLSAgICAgICAgICAiMC4zNDEzMjMsIDAuMzkzMzQzLCAwLjg2Mjg4NywgMS42NDQ5OSwgMi40MjcxMiwgNC4yNDc1NSwgNS4yODgwOCIsIFwKLSAgICAgICAgICAiMC4zNTU1NTcsIDAuNDA3Nzc2LCAwLjg3NjY5NiwgMS42NTk3NywgMi40NDA0MiwgNC4yNjE1MiwgNS4zMDIzMiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC41ODIxODYsIDAuNjg2NDg1LCAxLjYyMzM3LCAzLjE4OTk0LCA0Ljc0NTEzLCA4LjM4NjYxLCAxMC40NjI2IiwgXAotICAgICAgICAgICIwLjU4MjM1NSwgMC42ODY2MiwgMS42MjE5MywgMy4xODM5NSwgNC43NTM1MiwgOC4zODYxNiwgMTAuNDYyNSIsIFwKLSAgICAgICAgICAiMC41ODEyNzYsIDAuNjg2NDI0LCAxLjYyNTU4LCAzLjE4ODg5LCA0Ljc1NDExLCA4LjM4NjE0LCAxMC40NjI3IiwgXAotICAgICAgICAgICIwLjU4MjA4OCwgMC42ODUyMjYsIDEuNjI0ODksIDMuMTg5NTMsIDQuNzQ0MzcsIDguMzg2MjcsIDEwLjQ2MjMiLCBcCi0gICAgICAgICAgIjAuNTgxNzU3LCAwLjY4NTA5MywgMS42MjUwOSwgMy4xODg2OSwgNC43NTQwNiwgOC4zODYyMSwgMTAuNDYxNiIsIFwKLSAgICAgICAgICAiMC41ODM1NDUsIDAuNjg2NTc4LCAxLjYyNTI1LCAzLjE4OTg0LCA0Ljc1NDUyLCA4LjM4NjExLCAxMC40NjI1IiwgXAotICAgICAgICAgICIwLjU4NzE0NywgMC42ODkwNjQsIDEuNjI0NzgsIDMuMTgzNDgsIDQuNzUzNjgsIDguMzgzMDcsIDEwLjQ2MzEiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc5NjM0LCAwLjA5MzQ2NSwgMC4yMTgwMDgsIDAuNDI1MzY4LCAwLjYzMjc4LCAxLjExNjk2LCAxLjM5MzUzIiwgXAotICAgICAgICAgICIwLjA5MDAyMSwgMC4xMDM4NzYsIDAuMjI4Mzc3LCAwLjQzNjAyMSwgMC42NDMzNTUsIDEuMTI3ODQsIDEuNDA0OTciLCBcCi0gICAgICAgICAgIjAuMTAyNTY1LCAwLjExNjUzNiwgMC4yNDA4NzIsIDAuNDQ3OTkxLCAwLjY1NTEwMiwgMS4xMzg2NiwgMS40MTU1OSIsIFwKLSAgICAgICAgICAiMC4xMTUyODcsIDAuMTI5MTE4LCAwLjI1MzgzNCwgMC40NjEyNjQsIDAuNjY3MzYzLCAxLjE1MDg0LCAxLjQyNzUyIiwgXAotICAgICAgICAgICIwLjEyODU3MywgMC4xNDE4NzEsIDAuMjY2NTgzLCAwLjQ3Mzk3NywgMC42Nzk2NjgsIDEuMTYyNzMsIDEuNDM5NDkiLCBcCi0gICAgICAgICAgIjAuMTQ5NDI5LCAwLjE2MzI2MywgMC4yODY3MzgsIDAuNDk1MjMzLCAwLjcwMTk0NSwgMS4xODI4NywgMS40NTkyNSIsIFwKLSAgICAgICAgICAiMC4xNjc2MjEsIDAuMTgxNDY4LCAwLjMwNDY0OCwgMC41MTIzNDgsIDAuNzE5NTIxLCAxLjIwMDE5LCAxLjQ3NjkxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE1MjM3MiwgMC4xODAxODMsIDAuNDI5MDkzLCAwLjg0NzcwNiwgMS4yNjM5MiwgMi4yMzA5OCwgMi43OTMyNSIsIFwKLSAgICAgICAgICAiMC4xNTIzNDIsIDAuMTc5NjQsIDAuNDMwMzQ2LCAwLjg0NTI2NCwgMS4yNjA0MiwgMi4yMzE3OCwgMi43OTcxMyIsIFwKLSAgICAgICAgICAiMC4xNTMwODQsIDAuMTgwMzgyLCAwLjQzMDQyOCwgMC44NDQ5MzYsIDEuMjYxNjksIDIuMjMxODUsIDIuNzg5MzMiLCBcCi0gICAgICAgICAgIjAuMTU3Mzc4LCAwLjE4MzU2NCwgMC40MjkzNjEsIDAuODQ1NjI5LCAxLjI2MDg5LCAyLjIzMjcsIDIuNzkxMjYiLCBcCi0gICAgICAgICAgIjAuMTYyNzY2LCAwLjE4ODc5NSwgMC40Mjk1MzgsIDAuODQ2MDgyLCAxLjI2MDg0LCAyLjIzNzUyLCAyLjc4ODAxIiwgXAotICAgICAgICAgICIwLjE3MzI5MiwgMC4xOTgwODUsIDAuNDMzMDA0LCAwLjg0Njk1NywgMS4yNjA5OSwgMi4yMzM3MywgMi43ODUxOCIsIFwKLSAgICAgICAgICAiMC4xODQyMjYsIDAuMjA3OTY3LCAwLjQzOTQ2NCwgMC44NDc2NSwgMS4yNjM5MiwgMi4yMzExNywgMi43ODQ2OSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjA5MiwgMC4wMDIwOTMsIDAuMDAyMDkzLCAwLjAwMjA5MywgMC4wMDIwOTMsIDAuMDAyMDkzLCAwLjAwMjA5MSIsIFwKLSAgICAgICAgICAiMC4wMDIwODgsIDAuMDAyMDg4LCAwLjAwMjA5MiwgMC4wMDIwOTMsIDAuMDAyMDkzLCAwLjAwMjA5NCwgMC4wMDIwOSIsIFwKLSAgICAgICAgICAiMC4wMDIwODIsIDAuMDAyMDg0LCAwLjAwMjA4OSwgMC4wMDIwOTIsIDAuMDAyMDkyLCAwLjAwMjA5MywgMC4wMDIwOSIsIFwKLSAgICAgICAgICAiMC4wMDIwNzgsIDAuMDAyMDgsIDAuMDAyMDg3LCAwLjAwMjA5LCAwLjAwMjA5MiwgMC4wMDIwOTIsIDAuMDAyMDkiLCBcCi0gICAgICAgICAgIjAuMDAyMDc1LCAwLjAwMjA3NywgMC4wMDIwODUsIDAuMDAyMDg5LCAwLjAwMjA5LCAwLjAwMjA5MywgMC4wMDIwOSIsIFwKLSAgICAgICAgICAiMC4wMDIwNzEsIDAuMDAyMDc0LCAwLjAwMjA4NCwgMC4wMDIwODcsIDAuMDAyMDksIDAuMDAyMDkzLCAwLjAwMjA5IiwgXAotICAgICAgICAgICIwLjAwMjA2OCwgMC4wMDIwNzEsIDAuMDAyMDgyLCAwLjAwMjA4NSwgMC4wMDIwODgsIDAuMDAyMDkyLCAwLjAwMjA4OSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDY0MywgMC4wMDA2NDMsIDAuMDAwNjQzLCAwLjAwMDY0MywgMC4wMDA2NDMsIDAuMDAwNjQyLCAwLjAwMDY0MiIsIFwKLSAgICAgICAgICAiMC4wMDA2MjYsIDAuMDAwNjI2LCAwLjAwMDYyNiwgMC4wMDA2MjYsIDAuMDAwNjI2LCAwLjAwMDYyNiwgMC4wMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMDAwNjIzLCAwLjAwMDYyMywgMC4wMDA2MjMsIDAuMDAwNjIzLCAwLjAwMDYxOSwgMC4wMDA2MTksIDAuMDAwNjE5IiwgXAotICAgICAgICAgICIwLjAwMDYyMSwgMC4wMDA2MjEsIDAuMDAwNjIyLCAwLjAwMDYyMiwgMC4wMDA2MjIsIDAuMDAwNjE4LCAwLjAwMDYxNyIsIFwKLSAgICAgICAgICAiMC4wMDA2MjMsIDAuMDAwNjIzLCAwLjAwMDYyMywgMC4wMDA2MjIsIDAuMDAwNjIxLCAwLjAwMDYxNywgMC4wMDA2MTciLCBcCi0gICAgICAgICAgIjAuMDAwNjI5LCAwLjAwMDYyOCwgMC4wMDA2MjQsIDAuMDAwNjIyLCAwLjAwMDYyMSwgMC4wMDA2MiwgMC4wMDA2MTciLCBcCi0gICAgICAgICAgIjAuMDAwNjM1LCAwLjAwMDYzMywgMC4wMDA2MjYsIDAuMDAwNjI0LCAwLjAwMDYyMiwgMC4wMDA2MjEsIDAuMDAwNjE3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxOTAxLCAwLjAwMTkwMSwgMC4wMDE5MDMsIDAuMDAxOTAxLCAwLjAwMTkwMiwgMC4wMDE5MDIsIDAuMDAxOSIsIFwKLSAgICAgICAgICAiMC4wMDE4OTYsIDAuMDAxODk3LCAwLjAwMTksIDAuMDAxOTAyLCAwLjAwMTkwMiwgMC4wMDE5MDIsIDAuMDAxOSIsIFwKLSAgICAgICAgICAiMC4wMDE4OTEsIDAuMDAxODkyLCAwLjAwMTg5OCwgMC4wMDE5MDEsIDAuMDAxOTAxLCAwLjAwMTkwMSwgMC4wMDE5IiwgXAotICAgICAgICAgICIwLjAwMTg4NywgMC4wMDE4ODksIDAuMDAxODk2LCAwLjAwMTg5OSwgMC4wMDE5LCAwLjAwMTkwMiwgMC4wMDE4OTkiLCBcCi0gICAgICAgICAgIjAuMDAxODg0LCAwLjAwMTg4NiwgMC4wMDE4OTUsIDAuMDAxODk4LCAwLjAwMTg5OSwgMC4wMDE5LCAwLjAwMTg5OSIsIFwKLSAgICAgICAgICAiMC4wMDE4OCwgMC4wMDE4ODIsIDAuMDAxODkxLCAwLjAwMTg5NSwgMC4wMDE4OTgsIDAuMDAxOTAxLCAwLjAwMTg5OCIsIFwKLSAgICAgICAgICAiMC4wMDE4NzgsIDAuMDAxODc5LCAwLjAwMTg4OSwgMC4wMDE4OTUsIDAuMDAxODk4LCAwLjAwMTksIDAuMDAxODk4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwNDU4LCAwLjAwMDQ1OCwgMC4wMDA0NTgsIDAuMDAwNDU3LCAwLjAwMDQ1OCwgMC4wMDA0NTgsIDAuMDAwNDU3IiwgXAotICAgICAgICAgICIwLjAwMDQ0OCwgMC4wMDA0NDgsIDAuMDAwNDQ5LCAwLjAwMDQ1LCAwLjAwMDQ1LCAwLjAwMDQ0OSwgMC4wMDA0NDkiLCBcCi0gICAgICAgICAgIjAuMDAwNDQ0LCAwLjAwMDQ0NSwgMC4wMDA0NDcsIDAuMDAwNDQ3LCAwLjAwMDQ0OCwgMC4wMDA0NDcsIDAuMDAwNDQ4IiwgXAotICAgICAgICAgICIwLjAwMDQ0MiwgMC4wMDA0NDMsIDAuMDAwNDQ2LCAwLjAwMDQ0NywgMC4wMDA0NDYsIDAuMDAwNDQ2LCAwLjAwMDQ0NiIsIFwKLSAgICAgICAgICAiMC4wMDA0NDcsIDAuMDAwNDQ0LCAwLjAwMDQ0NiwgMC4wMDA0NDcsIDAuMDAwNDQ3LCAwLjAwMDQ0NiwgMC4wMDA0NDUiLCBcCi0gICAgICAgICAgIjAuMDAwNDUxLCAwLjAwMDQ1LCAwLjAwMDQ0OSwgMC4wMDA0NDgsIDAuMDAwNDQ4LCAwLjAwMDQ0NiwgMC4wMDA0NDUiLCBcCi0gICAgICAgICAgIjAuMDAwNDU4LCAwLjAwMDQ1NywgMC4wMDA0NTEsIDAuMDAwNDUsIDAuMDAwNDQ4LCAwLjAwMDQ0NywgMC4wMDA0NDYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDE3MDUsIDAuMDAxNzA1LCAwLjAwMTcwNiwgMC4wMDE3MDYsIDAuMDAxNzA2LCAwLjAwMTcwNiwgMC4wMDE3MDQiLCBcCi0gICAgICAgICAgIjAuMDAxNywgMC4wMDE3MDEsIDAuMDAxNzA0LCAwLjAwMTcwNSwgMC4wMDE3MDYsIDAuMDAxNzA2LCAwLjAwMTcwNCIsIFwKLSAgICAgICAgICAiMC4wMDE2OTUsIDAuMDAxNjk2LCAwLjAwMTcwMSwgMC4wMDE3MDQsIDAuMDAxNzA0LCAwLjAwMTcwNSwgMC4wMDE3MDQiLCBcCi0gICAgICAgICAgIjAuMDAxNjkxLCAwLjAwMTY5MiwgMC4wMDE3LCAwLjAwMTcwMywgMC4wMDE3MDMsIDAuMDAxNzA1LCAwLjAwMTcwMyIsIFwKLSAgICAgICAgICAiMC4wMDE2ODgsIDAuMDAxNjksIDAuMDAxNjk4LCAwLjAwMTcwMiwgMC4wMDE3MDMsIDAuMDAxNzA0LCAwLjAwMTcwMyIsIFwKLSAgICAgICAgICAiMC4wMDE2ODQsIDAuMDAxNjg2LCAwLjAwMTY5NSwgMC4wMDE3LCAwLjAwMTcwMiwgMC4wMDE3MDMsIDAuMDAxNzAyIiwgXAotICAgICAgICAgICIwLjAwMTY4MywgMC4wMDE2ODUsIDAuMDAxNjk0LCAwLjAwMTY5OCwgMC4wMDE3MDEsIDAuMDAxNzA0LCAwLjAwMTcwMSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDI1NCwgMC4wMDAyNTQsIDAuMDAwMjU0LCAwLjAwMDI1NCwgMC4wMDAyNTQsIDAuMDAwMjU0LCAwLjAwMDI1NCIsIFwKLSAgICAgICAgICAiMC4wMDAyNTcsIDAuMDAwMjU4LCAwLjAwMDI2MSwgMC4wMDAyNjIsIDAuMDAwMjYyLCAwLjAwMDI2MiwgMC4wMDAyNjIiLCBcCi0gICAgICAgICAgIjAuMDAwMjU1LCAwLjAwMDI1NiwgMC4wMDAyNiwgMC4wMDAyNjIsIDAuMDAwMjYzLCAwLjAwMDI2MywgMC4wMDAyNjMiLCBcCi0gICAgICAgICAgIjAuMDAwMjU0LCAwLjAwMDI1NSwgMC4wMDAyNiwgMC4wMDAyNjIsIDAuMDAwMjY0LCAwLjAwMDI2NCwgMC4wMDAyNjQiLCBcCi0gICAgICAgICAgIjAuMDAwMjUzLCAwLjAwMDI1NCwgMC4wMDAyNjEsIDAuMDAwMjYyLCAwLjAwMDI2NCwgMC4wMDAyNjUsIDAuMDAwMjY1IiwgXAotICAgICAgICAgICIwLjAwMDI2LCAwLjAwMDI2MSwgMC4wMDAyNjMsIDAuMDAwMjY0LCAwLjAwMDI2NCwgMC4wMDAyNjUsIDAuMDAwMjY1IiwgXAotICAgICAgICAgICIwLjAwMDI2NiwgMC4wMDAyNjYsIDAuMDAwMjY0LCAwLjAwMDI2NSwgMC4wMDAyNjUsIDAuMDAwMjY2LCAwLjAwMDI2NiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkQiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTUwOSwgMC4wMDE1MDksIDAuMDAxNTEsIDAuMDAxNTA5LCAwLjAwMTUxLCAwLjAwMTUxLCAwLjAwMTUwOSIsIFwKLSAgICAgICAgICAiMC4wMDE1MDEsIDAuMDAxNTAyLCAwLjAwMTUwNiwgMC4wMDE1MDksIDAuMDAxNTA5LCAwLjAwMTUwOSwgMC4wMDE1MDciLCBcCi0gICAgICAgICAgIjAuMDAxNDk0LCAwLjAwMTQ5NiwgMC4wMDE1MDQsIDAuMDAxNTA4LCAwLjAwMTUwOCwgMC4wMDE1MDgsIDAuMDAxNTA4IiwgXAotICAgICAgICAgICIwLjAwMTQ5MSwgMC4wMDE0OTMsIDAuMDAxNTAyLCAwLjAwMTUwNSwgMC4wMDE1MDcsIDAuMDAxNTA4LCAwLjAwMTUwNyIsIFwKLSAgICAgICAgICAiMC4wMDE0ODksIDAuMDAxNDkxLCAwLjAwMTUsIDAuMDAxNTA0LCAwLjAwMTUwNiwgMC4wMDE1MDgsIDAuMDAxNTA2IiwgXAotICAgICAgICAgICIwLjAwMTQ5LCAwLjAwMTQ5MSwgMC4wMDE0OTgsIDAuMDAxNTA0LCAwLjAwMTUwNSwgMC4wMDE1MDgsIDAuMDAxNTA2IiwgXAotICAgICAgICAgICIwLjAwMTQ5MywgMC4wMDE0OTMsIDAuMDAxNDk5LCAwLjAwMTUwMywgMC4wMDE1MDQsIDAuMDAxNTA3LCAwLjAwMTUwNSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDA0NiwgMC4wMDAwNDcsIDAuMDAwMDQ4LCAwLjAwMDA0OCwgMC4wMDAwNDgsIDAuMDAwMDQ5LCAwLjAwMDA0OSIsIFwKLSAgICAgICAgICAiMC4wMDAwNTUsIDAuMDAwMDU2LCAwLjAwMDA2MSwgMC4wMDAwNjMsIDAuMDAwMDYzLCAwLjAwMDA2NCwgMC4wMDAwNjQiLCBcCi0gICAgICAgICAgIjAuMDAwMDU0LCAwLjAwMDA1NiwgMC4wMDAwNjMsIDAuMDAwMDY2LCAwLjAwMDA2OSwgMC4wMDAwNywgMC4wMDAwNzEiLCBcCi0gICAgICAgICAgIjAuMDAwMDUyLCAwLjAwMDA1NCwgMC4wMDAwNjIsIDAuMDAwMDY2LCAwLjAwMDA2OSwgMC4wMDAwNzEsIDAuMDAwMDcyIiwgXAotICAgICAgICAgICIwLjAwMDA1MSwgMC4wMDAwNTMsIDAuMDAwMDYyLCAwLjAwMDA2NiwgMC4wMDAwNjksIDAuMDAwMDcyLCAwLjAwMDA3MiIsIFwKLSAgICAgICAgICAiMC4wMDAwNTIsIDAuMDAwMDU0LCAwLjAwMDA2MiwgMC4wMDAwNjYsIDAuMDAwMDY4LCAwLjAwMDA3MiwgMC4wMDAwNzIiLCBcCi0gICAgICAgICAgIjAuMDAwMDU1LCAwLjAwMDA1NywgMC4wMDAwNjMsIDAuMDAwMDY3LCAwLjAwMDA2OCwgMC4wMDAwNzIsIDAuMDAwMDcyIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBPQTIxWDIgKgotICogLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChPQTIxWDIpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4xMzEzODg7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA1OTE4NTE7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNTkwNTgxOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDU5MTg1MTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyMjYsIDAuMDAwMjI2LCAwLjAwMDIyNiwgMC4wMDAyMjYsIDAuMDAwMjI2LCAwLjAwMDIyNiwgMC4wMDAyMjYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyMjcsIDAuMDAwMjI3LCAwLjAwMDIyNywgMC4wMDAyMjcsIDAuMDAwMjI3LCAwLjAwMDIyNywgMC4wMDAyMjciKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEExKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA1ODk2MjE7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNTg5NjIxOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDU4Nzk3OTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyMjcsIDAuMDAwMjI2LCAwLjAwMDIyNiwgMC4wMDAyMjYsIDAuMDAwMjI2LCAwLjAwMDIyNiwgMC4wMDAyMjYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyMjcsIDAuMDAwMjI3LCAwLjAwMDIyNywgMC4wMDAyMjcsIDAuMDAwMjI3LCAwLjAwMDIyNywgMC4wMDAyMjciKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2MzMzMzY7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjMzMTQ4OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDYzMzMzNjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyNjYsIDAuMDAwMjY3LCAwLjAwMDI2NywgMC4wMDAyNjcsIDAuMDAwMjY3LCAwLjAwMDI2NywgMC4wMDAyNjYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyNTcsIDAuMDAwMjU3LCAwLjAwMDI1NywgMC4wMDAyNTcsIDAuMDAwMjU3LCAwLjAwMDI1NywgMC4wMDAyNTciKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC41MDgwMjU7Ci0gICAgZnVuY3Rpb24gOiAiKChBMCtBMSkgQjApIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg1MzkzLCAwLjE4ODkyNSwgMC4yNjk5MTgsIDAuMzcxMTUsIDAuNDcyMjExLCAwLjU3MzMyOSwgMC42NzQ0MDEiLCBcCi0gICAgICAgICAgIjAuMDk0OTg2LCAwLjE5ODU2NSwgMC4yNzk1NTUsIDAuMzgwNzgxLCAwLjQ4MTg1MiwgMC41ODI5NDIsIDAuNjg0MDUiLCBcCi0gICAgICAgICAgIjAuMTA2MDc3LCAwLjIwOTYxMiwgMC4yOTA1OTEsIDAuMzkxODAzLCAwLjQ5MjkyMywgMC41OTM5OTksIDAuNjk1MDg3IiwgXAotICAgICAgICAgICIwLjExNjgwMywgMC4yMjAyOTUsIDAuMzAxMzAyLCAwLjQwMjUzNiwgMC41MDM2MDMsIDAuNjA0NzI0LCAwLjcwNTc4MSIsIFwKLSAgICAgICAgICAiMC4xMjcwOTcsIDAuMjMwNjUzLCAwLjMxMTY1NiwgMC40MTI4ODUsIDAuNTEzOTU4LCAwLjYxNTA0OCwgMC43MTYxNDkiLCBcCi0gICAgICAgICAgIjAuMTQyMzQxLCAwLjI0NjAzOSwgMC4zMjcwMjcsIDAuNDI4MjA5LCAwLjUyOTM1NCwgMC42MzA0MTksIDAuNzMxNTA5IiwgXAotICAgICAgICAgICIwLjE1NDQzNiwgMC4yNTg0OTgsIDAuMzM5NTE1LCAwLjQ0MDcyNSwgMC41NDE4MTMsIDAuNjQyODg0LCAwLjc0NDAxNiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTc4MTUsIDAuMjU5ODU1LCAwLjQyNjA5MiwgMC42MzMyNDEsIDAuODQyOTQ1LCAxLjA1MDM1LCAxLjI1ODkxIiwgXAotICAgICAgICAgICIwLjA1NzgxOSwgMC4yNTk4NTEsIDAuNDI1OTQ1LCAwLjYzNDQ2MiwgMC44NDI5MTksIDEuMDUwMywgMS4yNTg4MyIsIFwKLSAgICAgICAgICAiMC4wNTc4MDYsIDAuMjU5ODQ2LCAwLjQyNTkxNiwgMC42MzMzNDQsIDAuODQxNTk5LCAxLjA1MDQ5LCAxLjI1ODkxIiwgXAotICAgICAgICAgICIwLjA1Nzg2NywgMC4yNTk4ODIsIDAuNDI2MDcsIDAuNjMzMTgzLCAwLjg0MjkyMSwgMS4wNDg4OCwgMS4yNTg5OSIsIFwKLSAgICAgICAgICAiMC4wNTgxNTIsIDAuMjU5OTA2LCAwLjQyNTkyLCAwLjYzNDM0OCwgMC44NDI3ODEsIDEuMDUwMiwgMS4yNTg5NCIsIFwKLSAgICAgICAgICAiMC4wNTkzNDMsIDAuMjU5ODU2LCAwLjQyNTY2MiwgMC42MzM1NSwgMC44NDI4MywgMS4wNTE0LCAxLjI1ODczIiwgXAotICAgICAgICAgICIwLjA2MDUwMSwgMC4yNjA2NCwgMC40MjYxOTgsIDAuNjMzMjU2LCAwLjg0MjgyNywgMS4wNTE0LCAxLjI2MDExIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4OTU0NiwgMC4xOTYzMzYsIDAuMjc5MzM2LCAwLjM4Mjk5MSwgMC40ODY1NDcsIDAuNTkwMDU3LCAwLjY5MzQ0NyIsIFwKLSAgICAgICAgICAiMC4wOTgwOTUsIDAuMjA0ODc1LCAwLjI4Nzg3NywgMC4zOTE1MTMsIDAuNDk1MDQ4LCAwLjU5ODUxNiwgMC43MDIwMjMiLCBcCi0gICAgICAgICAgIjAuMTA3OTQ2LCAwLjIxNDcyMSwgMC4yOTc3MjYsIDAuNDAxMzczLCAwLjUwNDksIDAuNjA4MzY5LCAwLjcxMTkyMSIsIFwKLSAgICAgICAgICAiMC4xMTc1NTIsIDAuMjI0MzMyLCAwLjMwNzM0NCwgMC40MTA5NjUsIDAuNTE0NTE4LCAwLjYxNzk5LCAwLjcyMTQ3IiwgXAotICAgICAgICAgICIwLjEyNjgzOCwgMC4yMzM2MTIsIDAuMzE2NjE1LCAwLjQyMDI3LCAwLjUyMzgzMSwgMC42MjczNDIsIDAuNzMwNzM5IiwgXAotICAgICAgICAgICIwLjE0MDMxOCwgMC4yNDczMzEsIDAuMzMwMzY0LCAwLjQzMzk3OCwgMC41Mzc1MTEsIDAuNjQxMDAzLCAwLjc0NDQ4NCIsIFwKLSAgICAgICAgICAiMC4xNTA5NDIsIDAuMjU4MTY0LCAwLjM0MTE2LCAwLjQ0NDc5NywgMC41NDgzMTQsIDAuNjUxODMzLCAwLjc1NTI4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1OTMxOCwgMC4yNjI2MzgsIDAuNDI5MjgsIDAuNjM4NjA3LCAwLjg0NjA0NSwgMS4wNTYwMywgMS4yNjc5MyIsIFwKLSAgICAgICAgICAiMC4wNTkyOTYsIDAuMjYyMTY3LCAwLjQyOTI3MiwgMC42MzczOTMsIDAuODQ4MTMyLCAxLjA1ODEyLCAxLjI2NzgyIiwgXAotICAgICAgICAgICIwLjA1OTIzOSwgMC4yNjIxNDgsIDAuNDI5MjczLCAwLjYzNzczMSwgMC44NDgxOTMsIDEuMDU4MTIsIDEuMjY3NzEiLCBcCi0gICAgICAgICAgIjAuMDU5MjY3LCAwLjI2MjQ0OSwgMC40MjkyNzgsIDAuNjM3NTYzLCAwLjg0ODE4NCwgMS4wNTgxMiwgMS4yNjcxNyIsIFwKLSAgICAgICAgICAiMC4wNTk1NjEsIDAuMjYyNzI5LCAwLjQyOTI4OSwgMC42Mzg2MDIsIDAuODQ4MDI4LCAxLjA1NTU5LCAxLjI2Nzk4IiwgXAotICAgICAgICAgICIwLjA2MDYyOCwgMC4yNjI5NjQsIDAuNDI5NDE2LCAwLjYzODcxMiwgMC44NDc1MzksIDEuMDU4MSwgMS4yNjgiLCBcCi0gICAgICAgICAgIjAuMDYxODMsIDAuMjYzMDIxLCAwLjQyOTU0LCAwLjYzODcwOCwgMC44NDgzNDUsIDEuMDU3OTcsIDEuMjY4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkExIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzk2OSwgMC4xODI4NzEsIDAuMjYzNzc5LCAwLjM2NDkzOSwgMC40NjYwNTQsIDAuNTY3MTk5LCAwLjY2ODM3NCIsIFwKLSAgICAgICAgICAiMC4wODkzMTUsIDAuMTkyNDgyLCAwLjI3MzM5MiwgMC4zNzQ1MTUsIDAuNDc1NjM2LCAwLjU3Njg4MSwgMC42Nzc5NTkiLCBcCi0gICAgICAgICAgIjAuMTAwMjA0LCAwLjIwMzMyNiwgMC4yODQyMzUsIDAuMzg1NDIzLCAwLjQ4NjM4NywgMC41ODc2MzMsIDAuNjg4ODE2IiwgXAotICAgICAgICAgICIwLjExMDc1OSwgMC4yMTM4NjcsIDAuMjk0Nzc2LCAwLjM5NTk2NywgMC40OTcwNDUsIDAuNTk4MTk3LCAwLjY5OTQ5MSIsIFwKLSAgICAgICAgICAiMC4xMjA4ODksIDAuMjI0MTM5LCAwLjMwNTA2MiwgMC40MDYyMjcsIDAuNTA3NDIyLCAwLjYwODQ2MiwgMC43MTAwMzciLCBcCi0gICAgICAgICAgIjAuMTM1NjE3LCAwLjIzODk3LCAwLjMxOTkwMiwgMC40MjExMDUsIDAuNTIyMTk5LCAwLjYyMzMyMSwgMC43MjQ1MzciLCBcCi0gICAgICAgICAgIjAuMTQ3MjE0LCAwLjI1MDc0OCwgMC4zMzE2MywgMC40MzI4NDUsIDAuNTMzODU5LCAwLjYzNTIyNSwgMC43MzYxMzEiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU3MTU3LCAwLjI1OTM1MywgMC40MjUwODgsIDAuNjM0MTY4LCAwLjg0MTcwNywgMS4wNDkzNywgMS4yNTg4NCIsIFwKLSAgICAgICAgICAiMC4wNTcxMzgsIDAuMjU5MzE4LCAwLjQyNTQ3OSwgMC42MzM2ODYsIDAuODQyNzk2LCAxLjA1MDI4LCAxLjI1OTgiLCBcCi0gICAgICAgICAgIjAuMDU3MDE3LCAwLjI1OTI5MSwgMC40MjU0NjcsIDAuNjMyMjg5LCAwLjg0MTU2MSwgMS4wNTE2OSwgMS4yNTg2MSIsIFwKLSAgICAgICAgICAiMC4wNTcyOTIsIDAuMjU5MzM3LCAwLjQyNTQ3NiwgMC42MzI3NjMsIDAuODQyODE3LCAxLjA1MTA4LCAxLjI1ODcyIiwgXAotICAgICAgICAgICIwLjA1NzcwNiwgMC4yNTk1OSwgMC40MjU0NzgsIDAuNjM0MDI5LCAwLjg0MTA5OSwgMS4wNTE0OCwgMS4yNTc4OSIsIFwKLSAgICAgICAgICAiMC4wNTkxNjEsIDAuMjU5OTA3LCAwLjQyNTcyNCwgMC42MzI2ODMsIDAuODQxMDM2LCAxLjA0OTM4LCAxLjI1ODg4IiwgXAotICAgICAgICAgICIwLjA2MDQ2OCwgMC4yNjAzODIsIDAuNDI1MzY0LCAwLjYzMjc1NCwgMC44NDI2NCwgMS4wNDk1OCwgMS4yNTk3NyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODYxNjIsIDAuMTkyOTQ0LCAwLjI3NTk0NywgMC4zNzk1NiwgMC40ODMxMTcsIDAuNTg2NTg2LCAwLjY5MDA2NiIsIFwKLSAgICAgICAgICAiMC4wOTUwMTgsIDAuMjAxNzk0LCAwLjI4NDc5OCwgMC4zODg0MzQsIDAuNDkxOTcsIDAuNTk1NDM4LCAwLjY5ODk0OSIsIFwKLSAgICAgICAgICAiMC4xMDYxNTYsIDAuMjEyOTI4LCAwLjI5NTkzOCwgMC4zOTk1ODcsIDAuNTAzMTE1LCAwLjYwNjU4NiwgMC43MTAxNjMiLCBcCi0gICAgICAgICAgIjAuMTE3NzY4LCAwLjIyNDUxNCwgMC4zMDc1NCwgMC40MTExNzUsIDAuNTE0NzE5LCAwLjYxODE5LCAwLjcyMTY2MiIsIFwKLSAgICAgICAgICAiMC4xMjg4MDMsIDAuMjM1NTYxLCAwLjMxODU3NCwgMC40MjIyMDYsIDAuNTI1NzY0LCAwLjYyOTI1OSwgMC43MzI3MTEiLCBcCi0gICAgICAgICAgIjAuMTQ0NjEyLCAwLjI1MTUzNiwgMC4zMzQ1NDgsIDAuNDM4MTc5LCAwLjU0MTc1NCwgMC42NDUyMTUsIDAuNzQ4Njc2IiwgXAotICAgICAgICAgICIwLjE1Njc4MiwgMC4yNjQwNzksIDAuMzQ3MDk5LCAwLjQ1MDcwMSwgMC41NTQyOTQsIDAuNjU3NzUzLCAwLjc2MTE5OSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTkzNDUsIDAuMjYyNDE1LCAwLjQyOTI4LCAwLjYzODIzNCwgMC44NDgxNDYsIDEuMDU4MTEsIDEuMjY2MDEiLCBcCi0gICAgICAgICAgIjAuMDU5MjkyLCAwLjI2MjE1NCwgMC40MjkyNjMsIDAuNjM3Mzk3LCAwLjg0ODEzOSwgMS4wNTgxMSwgMS4yNjc4IiwgXAotICAgICAgICAgICIwLjA1OTI1NiwgMC4yNjIxNTIsIDAuNDI5Mjc2LCAwLjYzNzc0NywgMC44NDgxNzEsIDEuMDU4MTMsIDEuMjY1NjYiLCBcCi0gICAgICAgICAgIjAuMDU5MjU4LCAwLjI2MjMzNiwgMC40Mjg4MzcsIDAuNjM3NCwgMC44NDgxNDMsIDEuMDU4MTcsIDEuMjY3MzYiLCBcCi0gICAgICAgICAgIjAuMDU5NzM2LCAwLjI2MjY3LCAwLjQyOTI4MSwgMC42Mzc2MjUsIDAuODQ2NDc1LCAxLjA1Njk4LCAxLjI2Nzk2IiwgXAotICAgICAgICAgICIwLjA2MTAyMiwgMC4yNjI5NjQsIDAuNDI5NDE1LCAwLjYzNzg4NiwgMC44NDgwODgsIDEuMDU4MTUsIDEuMjY3NDIiLCBcCi0gICAgICAgICAgIjAuMDYyMjc5LCAwLjI2MzAyNSwgMC40Mjk2MjgsIDAuNjM4MjU4LCAwLjg0ODA2OSwgMS4wNTgwNSwgMS4yNjc5NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc4ODE3LCAwLjE4MjQwNCwgMC4yNjMzNzksIDAuMzY0NTksIDAuNDY1NjcyLCAwLjU2Njc4MiwgMC42Njc4NzEiLCBcCi0gICAgICAgICAgIjAuMDg3Nzc1LCAwLjE5MTMyNSwgMC4yNzIzMTMsIDAuMzczNTUsIDAuNDc0NjIsIDAuNTc1NjkxLCAwLjY3NjgxMyIsIFwKLSAgICAgICAgICAiMC4wOTk2ODUsIDAuMjAzMjA2LCAwLjI4NDIwNSwgMC4zODUzNzcsIDAuNDg2NTA3LCAwLjU4NzYwNCwgMC42ODg1OTUiLCBcCi0gICAgICAgICAgIjAuMTExNDc3LCAwLjIxNDk5NiwgMC4yOTU5ODIsIDAuMzk3MTYsIDAuNDk4MzM2LCAwLjU5OTQ1NSwgMC43MDA0ODIiLCBcCi0gICAgICAgICAgIjAuMTIyNzYzLCAwLjIyNjQyOCwgMC4zMDc0MzQsIDAuNDA4Njc1LCAwLjUwOTc0MywgMC42MTA4MjMsIDAuNzExOTM3IiwgXAotICAgICAgICAgICIwLjEzOTE0MiwgMC4yNDI3MzIsIDAuMzIzNzIsIDAuNDI0ODc2LCAwLjUyNjA3OCwgMC42MjcxNzEsIDAuNzI4MjA2IiwgXAotICAgICAgICAgICIwLjE1MTg2OCwgMC4yNTYwMDQsIDAuMzM2OTYyLCAwLjQzODE0MSwgMC41MzkyOTksIDAuNjQwMzU4LCAwLjc0MTQ1OCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTc4NzYsIDAuMjU5ODU3LCAwLjQyNTkxOSwgMC42MzQxNDgsIDAuODQxOTA4LCAxLjA1MTU4LCAxLjI1OTg5IiwgXAotICAgICAgICAgICIwLjA1NzgyNiwgMC4yNTk4NDgsIDAuNDI1OTYxLCAwLjYzMzk0NCwgMC44NDI5MDgsIDEuMDUxNDksIDEuMjU4NzUiLCBcCi0gICAgICAgICAgIjAuMDU3NzgxLCAwLjI2MDA0NywgMC40MjU5MjEsIDAuNjMzNDksIDAuODQyODk2LCAxLjA1MTY2LCAxLjI1OTk4IiwgXAotICAgICAgICAgICIwLjA1Nzk4MiwgMC4yNTk5MDcsIDAuNDI1OTMzLCAwLjYzMzYxLCAwLjg0Mjk4OCwgMS4wNTE2OCwgMS4yNTg3NyIsIFwKLSAgICAgICAgICAiMC4wNTg1NTcsIDAuMjU5OTg2LCAwLjQyNTUxOSwgMC42MzMyOTYsIDAuODQyNzk2LCAxLjA1MTA2LCAxLjI1ODcxIiwgXAotICAgICAgICAgICIwLjA2MDc0NCwgMC4yNjAyNSwgMC40MjYxNjQsIDAuNjMzNTIyLCAwLjg0Mjk0NywgMS4wNTE1NCwgMS4yNTg4NiIsIFwKLSAgICAgICAgICAiMC4wNjE3NTMsIDAuMjYwODEsIDAuNDI2MTU0LCAwLjYzNDM0NSwgMC44NDI4ODMsIDEuMDUxNDMsIDEuMjU5NzgiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU3ODY2LCAwLjE2MjA0NSwgMC4yNDQ4NjQsIDAuMzQ4Mzk2LCAwLjQ1MTgwNywgMC41NTUzNDIsIDAuNjU4Njg3IiwgXAotICAgICAgICAgICIwLjA2NzczNiwgMC4xNzE5NTIsIDAuMjU0NzgsIDAuMzU4MzIsIDAuNDYxNjcyLCAwLjU2NTI2OCwgMC42Njg3ODUiLCBcCi0gICAgICAgICAgIjAuMDc5ODYzLCAwLjE4NDA5NiwgMC4yNjY5MjMsIDAuMzcwNDY1LCAwLjQ3MzkwNywgMC41Nzc1MTIsIDAuNjgwOTU0IiwgXAotICAgICAgICAgICIwLjA5MDg1NCwgMC4xOTUxMTcsIDAuMjc3ODk4LCAwLjM4MTQzMywgMC40ODQ4NiwgMC41ODgzNzcsIDAuNjkxODI4IiwgXAotICAgICAgICAgICIwLjEwMDUwMSwgMC4yMDQ4MzgsIDAuMjg3NjI1LCAwLjM5MTExMiwgMC40OTQ3NTQsIDAuNTk4MjExLCAwLjcwMTU0NyIsIFwKLSAgICAgICAgICAiMC4xMTQxMSwgMC4yMTg2NDcsIDAuMzAxNDU2LCAwLjQwNDkwOCwgMC41MDg0MywgMC42MTE5MTYsIDAuNzE1NDI2IiwgXAotICAgICAgICAgICIwLjEyNDExNiwgMC4yMjg5MjEsIDAuMzExNjU3LCAwLjQxNTEzNywgMC41MTg3NTYsIDAuNjIyMTg1LCAwLjcyNTU0OCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTI5NzIsIDAuMjU4ODMsIDAuNDI2MzM0LCAwLjYzNjA4NSwgMC44NDYyMDksIDEuMDUzOTksIDEuMjYzNzUiLCBcCi0gICAgICAgICAgIjAuMDUyOTg0LCAwLjI1ODgzOSwgMC40MjU1OTIsIDAuNjM1MDk2LCAwLjg0NjM2MSwgMS4wNTM3NSwgMS4yNjMzOSIsIFwKLSAgICAgICAgICAiMC4wNTMxOTgsIDAuMjU4ODUxLCAwLjQyNjM3MywgMC42MzYzNzMsIDAuODQ0OTU1LCAxLjA1MzU5LCAxLjI2MzA0IiwgXAotICAgICAgICAgICIwLjA1NDAxLCAwLjI1ODkzOCwgMC40MjYzNjcsIDAuNjM2MTY4LCAwLjg0NTk3NCwgMS4wNTQ2NSwgMS4yNjU5OSIsIFwKLSAgICAgICAgICAiMC4wNTUxNjYsIDAuMjU4NzE5LCAwLjQyNjQ1MiwgMC42MzYwNTYsIDAuODQ0MTg4LCAxLjA1NDA5LCAxLjI2NTk4IiwgXAotICAgICAgICAgICIwLjA1NzM0NiwgMC4yNTk0MjYsIDAuNDI2NTcyLCAwLjYzNjA4LCAwLjg0NDQ1NCwgMS4wNTU4NiwgMS4yNjM3MyIsIFwKLSAgICAgICAgICAiMC4wNTg4NzQsIDAuMjU5NzI5LCAwLjQyNjY0NywgMC42MzU2OTQsIDAuODQ1MTc2LCAxLjA1NjAzLCAxLjI2NTY3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjU4LCAwLjAwMjY0OCwgMC4wMDI2NTcsIDAuMDAyNjYxLCAwLjAwMjY2MywgMC4wMDI2NjQsIDAuMDAyNjY1IiwgXAotICAgICAgICAgICIwLjAwMjU2LCAwLjAwMjYzLCAwLjAwMjYzOCwgMC4wMDI2NDMsIDAuMDAyNjQ1LCAwLjAwMjY0NywgMC4wMDI2NDgiLCBcCi0gICAgICAgICAgIjAuMDAyNTQzLCAwLjAwMjYxNiwgMC4wMDI2MjYsIDAuMDAyNjMxLCAwLjAwMjYzNSwgMC4wMDI2MzcsIDAuMDAyNjM3IiwgXAotICAgICAgICAgICIwLjAwMjUzNSwgMC4wMDI2MDgsIDAuMDAyNjE5LCAwLjAwMjYyNiwgMC4wMDI2MjksIDAuMDAyNjMsIDAuMDAyNjMxIiwgXAotICAgICAgICAgICIwLjAwMjUyOSwgMC4wMDI2MDMsIDAuMDAyNjE0LCAwLjAwMjYxOSwgMC4wMDI2MjQsIDAuMDAyNjI2LCAwLjAwMjYyOCIsIFwKLSAgICAgICAgICAiMC4wMDI1MjIsIDAuMDAyNTk1LCAwLjAwMjYwOSwgMC4wMDI2MTYsIDAuMDAyNjIyLCAwLjAwMjYyMiwgMC4wMDI2MjUiLCBcCi0gICAgICAgICAgIjAuMDAyNTE2LCAwLjAwMjU5LCAwLjAwMjYwNSwgMC4wMDI2MTQsIDAuMDAyNjE5LCAwLjAwMjYyMSwgMC4wMDI2MjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDM5NSwgMC4wMDQwNDMsIDAuMDA0MDU3LCAwLjAwNDA2NCwgMC4wMDQwNjcsIDAuMDA0MDcsIDAuMDA0MDcxIiwgXAotICAgICAgICAgICIwLjAwMzkzNSwgMC4wMDQwMzEsIDAuMDA0MDQ1LCAwLjAwNDA1MiwgMC4wMDQwNTYsIDAuMDA0MDU4LCAwLjAwNDA2IiwgXAotICAgICAgICAgICIwLjAwMzkyMywgMC4wMDQwMjEsIDAuMDA0MDM2LCAwLjAwNDA0NCwgMC4wMDQwNDgsIDAuMDA0MDUxLCAwLjAwNDA1MyIsIFwKLSAgICAgICAgICAiMC4wMDM5MTQsIDAuMDA0MDE0LCAwLjAwNDAzMSwgMC4wMDQwMzksIDAuMDA0MDQ0LCAwLjAwNDA0NywgMC4wMDQwNDkiLCBcCi0gICAgICAgICAgIjAuMDAzOTE0LCAwLjAwNDAxMSwgMC4wMDQwMjgsIDAuMDA0MDM4LCAwLjAwNDA0MywgMC4wMDQwNDYsIDAuMDA0MDQ4IiwgXAotICAgICAgICAgICIwLjAwMzkwOCwgMC4wMDQwMDcsIDAuMDA0MDIzLCAwLjAwNDAzNCwgMC4wMDQwNCwgMC4wMDQwNDQsIDAuMDA0MDQ3IiwgXAotICAgICAgICAgICIwLjAwMzkwMiwgMC4wMDQsIDAuMDA0MDIyLCAwLjAwNDAzNCwgMC4wMDQwNDEsIDAuMDA0MDQ1LCAwLjAwNDA0OCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkExIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDIzOTQsIDAuMDAyNDU5LCAwLjAwMjQ2NiwgMC4wMDI0NjksIDAuMDAyNDcyLCAwLjAwMjQ3MiwgMC4wMDI0NzQiLCBcCi0gICAgICAgICAgIjAuMDAyMzcsIDAuMDAyNDM1LCAwLjAwMjQ0MywgMC4wMDI0NDcsIDAuMDAyNDQ4LCAwLjAwMjQ1LCAwLjAwMjQ1IiwgXAotICAgICAgICAgICIwLjAwMjM0MywgMC4wMDI0MTIsIDAuMDAyNDIyLCAwLjAwMjQyNywgMC4wMDI0MjcsIDAuMDAyNDMsIDAuMDAyNDMxIiwgXAotICAgICAgICAgICIwLjAwMjMyNSwgMC4wMDIzOTksIDAuMDAyNDA4LCAwLjAwMjQxNCwgMC4wMDI0MTYsIDAuMDAyNDE5LCAwLjAwMjQyIiwgXAotICAgICAgICAgICIwLjAwMjMxMywgMC4wMDIzODgsIDAuMDAyNDAyLCAwLjAwMjQwNywgMC4wMDI0MSwgMC4wMDI0MTQsIDAuMDAyNDEzIiwgXAotICAgICAgICAgICIwLjAwMjMwMywgMC4wMDIzODEsIDAuMDAyMzk1LCAwLjAwMjQwMiwgMC4wMDI0MDYsIDAuMDAyNDA3LCAwLjAwMjQwOCIsIFwKLSAgICAgICAgICAiMC4wMDIzMDMsIDAuMDAyMzc2LCAwLjAwMjM5MSwgMC4wMDIzOTksIDAuMDAyNDAzLCAwLjAwMjQwNCwgMC4wMDI0MDYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDM3NTUsIDAuMDAzODQ3LCAwLjAwMzg2LCAwLjAwMzg2NywgMC4wMDM4NzEsIDAuMDAzODczLCAwLjAwMzg3NCIsIFwKLSAgICAgICAgICAiMC4wMDM3MywgMC4wMDM4MjcsIDAuMDAzODQxLCAwLjAwMzg0OSwgMC4wMDM4NTMsIDAuMDAzODU1LCAwLjAwMzg1NyIsIFwKLSAgICAgICAgICAiMC4wMDM3MTUsIDAuMDAzODE0LCAwLjAwMzgzLCAwLjAwMzgzOSwgMC4wMDM4NDQsIDAuMDAzODQ3LCAwLjAwMzg0OSIsIFwKLSAgICAgICAgICAiMC4wMDM3MTEsIDAuMDAzODA5LCAwLjAwMzgyOCwgMC4wMDM4MzgsIDAuMDAzODQ0LCAwLjAwMzg0NywgMC4wMDM4NSIsIFwKLSAgICAgICAgICAiMC4wMDM3MDgsIDAuMDAzODA4LCAwLjAwMzgyOSwgMC4wMDM4NDEsIDAuMDAzODQ3LCAwLjAwMzg1MiwgMC4wMDM4NTQiLCBcCi0gICAgICAgICAgIjAuMDAzNzIyLCAwLjAwMzgxNCwgMC4wMDM4MzcsIDAuMDAzODUsIDAuMDAzODU4LCAwLjAwMzg2MiwgMC4wMDM4NjYiLCBcCi0gICAgICAgICAgIjAuMDAzNzM0LCAwLjAwMzgyNCwgMC4wMDM4NDgsIDAuMDAzODYzLCAwLjAwMzg3MSwgMC4wMDM4NzYsIDAuMDAzODgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyNTg5LCAwLjAwMjY1NywgMC4wMDI2NjcsIDAuMDAyNjcxLCAwLjAwMjY3NCwgMC4wMDI2NzQsIDAuMDAyNjc2IiwgXAotICAgICAgICAgICIwLjAwMjU1OSwgMC4wMDI2MywgMC4wMDI2NCwgMC4wMDI2NDUsIDAuMDAyNjQ4LCAwLjAwMjY0OSwgMC4wMDI2NTEiLCBcCi0gICAgICAgICAgIjAuMDAyNTQ2LCAwLjAwMjYxOCwgMC4wMDI2MjksIDAuMDAyNjM2LCAwLjAwMjY0LCAwLjAwMjY0MiwgMC4wMDI2NDIiLCBcCi0gICAgICAgICAgIjAuMDAyNTQ0LCAwLjAwMjYxNiwgMC4wMDI2MjksIDAuMDAyNjM3LCAwLjAwMjY0MSwgMC4wMDI2NDMsIDAuMDAyNjQ1IiwgXAotICAgICAgICAgICIwLjAwMjU0NCwgMC4wMDI2MTYsIDAuMDAyNjMzLCAwLjAwMjY0MSwgMC4wMDI2NDYsIDAuMDAyNjQ4LCAwLjAwMjY1MSIsIFwKLSAgICAgICAgICAiMC4wMDI1NzQsIDAuMDAyNjM0LCAwLjAwMjY1LCAwLjAwMjY2LCAwLjAwMjY2NiwgMC4wMDI2NjgsIDAuMDAyNjciLCBcCi0gICAgICAgICAgIjAuMDAyNTgsIDAuMDAyNjQ3LCAwLjAwMjY2NCwgMC4wMDI2NzQsIDAuMDAyNjgyLCAwLjAwMjY4NCwgMC4wMDI2ODciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDMzNDQsIDAuMDAzMzk3LCAwLjAwMzQwMiwgMC4wMDM0MDUsIDAuMDAzNDA2LCAwLjAwMzQwNywgMC4wMDM0MDgiLCBcCi0gICAgICAgICAgIjAuMDAzMzExLCAwLjAwMzM3NywgMC4wMDMzODQsIDAuMDAzMzg4LCAwLjAwMzM5LCAwLjAwMzM5MiwgMC4wMDMzOTIiLCBcCi0gICAgICAgICAgIjAuMDAzMjkxLCAwLjAwMzM2NSwgMC4wMDMzNzUsIDAuMDAzMzgsIDAuMDAzMzgzLCAwLjAwMzM4NCwgMC4wMDMzODUiLCBcCi0gICAgICAgICAgIjAuMDAzMjc4LCAwLjAwMzM2LCAwLjAwMzM3MywgMC4wMDMzOCwgMC4wMDMzODMsIDAuMDAzMzg1LCAwLjAwMzM4NyIsIFwKLSAgICAgICAgICAiMC4wMDMyNywgMC4wMDMzNiwgMC4wMDMzNzQsIDAuMDAzMzgzLCAwLjAwMzM4NywgMC4wMDMzOSwgMC4wMDMzOTIiLCBcCi0gICAgICAgICAgIjAuMDAzMjg0LCAwLjAwMzM1NiwgMC4wMDMzNzksIDAuMDAzMzg0LCAwLjAwMzM4OSwgMC4wMDMzOTYsIDAuMDAzMzk0IiwgXAotICAgICAgICAgICIwLjAwMzI3OSwgMC4wMDMzNywgMC4wMDMzODksIDAuMDAzMzk5LCAwLjAwMzQwNiwgMC4wMDM0MSwgMC4wMDM0MTIiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IE9BMjFYTCAqCi0gKiAtLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKE9BMjFYTCkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjA3ODc1MDE7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2MTk0OTM7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjE4MDk0OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDYxOTQ5MzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyMjYsIDAuMDAwMjI2LCAwLjAwMDIyNiwgMC4wMDAyMjYsIDAuMDAwMjI2LCAwLjAwMDIyNiwgMC4wMDAyMjYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyMjcsIDAuMDAwMjI3LCAwLjAwMDIyNywgMC4wMDAyMjcsIDAuMDAwMjI3LCAwLjAwMDIyNywgMC4wMDAyMjciKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEExKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2NTk2Njg7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjU5NjY4OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDY1ODA1NjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyMjcsIDAuMDAwMjI2LCAwLjAwMDIyNiwgMC4wMDAyMjYsIDAuMDAwMjI2LCAwLjAwMDIyNiwgMC4wMDAyMjYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyMjcsIDAuMDAwMjI3LCAwLjAwMDIyNywgMC4wMDAyMjcsIDAuMDAwMjI3LCAwLjAwMDIyNywgMC4wMDAyMjciKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2NTY1MjQ7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjU2Mjk4OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDY1NjUyNDsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyNTcsIDAuMDAwMjU4LCAwLjAwMDI1NywgMC4wMDAyNTgsIDAuMDAwMjU3LCAwLjAwMDI1NywgMC4wMDAyNTciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyNTcsIDAuMDAwMjU3LCAwLjAwMDI1NywgMC4wMDAyNTcsIDAuMDAwMjU3LCAwLjAwMDI1NywgMC4wMDAyNTciKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4xNTE2NzU7Ci0gICAgZnVuY3Rpb24gOiAiKChBMCtBMSkgQjApIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTE3ODA1LCAwLjEzMTk2NSwgMC4yNTkyNTIsIDAuNDcxMDgxLCAwLjY4MjkyMywgMS4xNzczNSwgMS40NTk1NSIsIFwKLSAgICAgICAgICAiMC4xMjczMDcsIDAuMTQxNDczLCAwLjI2ODcyOCwgMC40ODA0NzksIDAuNjkyNDM2LCAxLjE4NjYyLCAxLjQ2OTM2IiwgXAotICAgICAgICAgICIwLjEzODI1NiwgMC4xNTI0MTYsIDAuMjc5Njg4LCAwLjQ5MTU5LCAwLjcwMzM5NSwgMS4xOTc1OSwgMS40ODAxMSIsIFwKLSAgICAgICAgICAiMC4xNDg1NjYsIDAuMTYyNzI4LCAwLjI4OTk5OCwgMC41MDE4NywgMC43MTM3MjgsIDEuMjA3OTIsIDEuNDkwMzUiLCBcCi0gICAgICAgICAgIjAuMTU4MDE3LCAwLjE3MjE3LCAwLjI5OTQ3OSwgMC41MTEzMSwgMC43MjMxNTMsIDEuMjE3MzgsIDEuNDk5ODQiLCBcCi0gICAgICAgICAgIjAuMTcxNTA3LCAwLjE4NTY4OSwgMC4zMTI5NzgsIDAuNTI0ODI1LCAwLjczNjY0NSwgMS4yMzA4NywgMS41MTM0NiIsIFwKLSAgICAgICAgICAiMC4xODE5ODYsIDAuMTk2MTUyLCAwLjMyMzQ0OCwgMC41MzUzMDMsIDAuNzQ3MTUzLCAxLjI0MTM4LCAxLjUyMzc1Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE1Mzk0MSwgMC4xODI5MTUsIDAuNDQzNjAzLCAwLjg3ODg1NCwgMS4zMTI3MywgMi4zMzEwNSwgMi45MDgxOSIsIFwKLSAgICAgICAgICAiMC4xNTM4OTgsIDAuMTgyOTEzLCAwLjQ0MzUxLCAwLjg3NzYzNCwgMS4zMTI3MSwgMi4zMzAzMywgMi45MDUwNCIsIFwKLSAgICAgICAgICAiMC4xNTM4OTMsIDAuMTgyNjk5LCAwLjQ0MzUwNCwgMC44Nzg5MDMsIDEuMzEyNywgMi4zMzA0MSwgMi45MDYyIiwgXAotICAgICAgICAgICIwLjE1NDA5OSwgMC4xODI4OTcsIDAuNDQyOTAzLCAwLjg3Nzg5NSwgMS4zMTQxNiwgMi4zMjc1MiwgMi45MDc4OCIsIFwKLSAgICAgICAgICAiMC4xNTQzOTIsIDAuMTgyOTI3LCAwLjQ0MzUwNiwgMC44Nzc2NjMsIDEuMzEyODksIDIuMzI3ODgsIDIuOTEwODIiLCBcCi0gICAgICAgICAgIjAuMTU0NjgyLCAwLjE4MzIwOSwgMC40NDM1MjksIDAuODc3ODEyLCAxLjMxMzk4LCAyLjMyNzQxLCAyLjkxMDkzIiwgXAotICAgICAgICAgICIwLjE1NTA0MywgMC4xODM2MDYsIDAuNDQzNTA4LCAwLjg3NzcxMywgMS4zMTQwNywgMi4zMzAwOCwgMi45MTAzNyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTg2NDIsIDAuMTMyNTYxLCAwLjI1NzQyOSwgMC40NjUwNDYsIDAuNjcyNTcsIDEuMTU2NjEsIDEuNDMzMTUiLCBcCi0gICAgICAgICAgIjAuMTI3MDU1LCAwLjE0MDk3NSwgMC4yNjU4MjcsIDAuNDczNDU4LCAwLjY4MTAwNSwgMS4xNjUwNCwgMS40NDE1OCIsIFwKLSAgICAgICAgICAiMC4xMzY3ODIsIDAuMTUwNzA2LCAwLjI3NTYsIDAuNDgzMjA1LCAwLjY5MDcxOSwgMS4xNzQ3NywgMS40NTEzNCIsIFwKLSAgICAgICAgICAiMC4xNDU5MjIsIDAuMTU5ODQ5LCAwLjI4NDczNCwgMC40OTIzNDksIDAuNjk5ODU1LCAxLjE4MzkxLCAxLjQ2MDQ4IiwgXAotICAgICAgICAgICIwLjE1NDI1NiwgMC4xNjgxNjgsIDAuMjkzMDU4LCAwLjUwMDY5NywgMC43MDgyMDcsIDEuMTkyMjYsIDEuNDY5MDMiLCBcCi0gICAgICAgICAgIjAuMTY1OTI1LCAwLjE3OTg1NiwgMC4zMDQ3NDMsIDAuNTEyMzkzLCAwLjcxOTg5MSwgMS4yMDM5NCwgMS40ODA1MiIsIFwKLSAgICAgICAgICAiMC4xNzQ5OCwgMC4xODg5MTUsIDAuMzEzODE3LCAwLjUyMTQ2LCAwLjcyODk2MSwgMS4yMTMwMSwgMS40ODk1OCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNDg2MDgsIDAuMTc2MDE5LCAwLjQyNDYzOCwgMC44NDExMzksIDEuMjU2OTMsIDIuMjMxNDMsIDIuNzg3MTYiLCBcCi0gICAgICAgICAgIjAuMTQ4NjA2LCAwLjE3NTk5NywgMC40MjUyMzMsIDAuODQxODc3LCAxLjI1ODQzLCAyLjIzMTQ5LCAyLjc4NzE5IiwgXAotICAgICAgICAgICIwLjE0ODYzNiwgMC4xNzU4MDYsIDAuNDI1MTA3LCAwLjg0MTExNSwgMS4yNTY1MywgMi4yMjk4NSwgMi43ODUzNyIsIFwKLSAgICAgICAgICAiMC4xNDg2MDUsIDAuMTc2MjQ1LCAwLjQyNTEyOCwgMC44NDE5MDMsIDEuMjU4NjcsIDIuMjMxMzMsIDIuNzg3MjMiLCBcCi0gICAgICAgICAgIjAuMTQ4Nzc4LCAwLjE3NjExNSwgMC40MjQ0MDgsIDAuODQwNjkyLCAxLjI1NjY2LCAyLjIyOTY3LCAyLjc3OTYyIiwgXAotICAgICAgICAgICIwLjE0OTMyOCwgMC4xNzY2ODgsIDAuNDI0ODQzLCAwLjg0MTc3OSwgMS4yNTg3MSwgMi4yMzEzOCwgMi43ODU4NSIsIFwKLSAgICAgICAgICAiMC4xNDk1MjcsIDAuMTc2ODE4LCAwLjQyNTM0NSwgMC44NDA2MDcsIDEuMjU4NywgMi4yMzEzOCwgMi43ODcxNyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTEyMzQxLCAwLjEyNjQ3NCwgMC4yNTM2MDcsIDAuNDY1NzM5LCAwLjY3NzY4MywgMS4xNzE3NSwgMS40NTQ5OSIsIFwKLSAgICAgICAgICAiMC4xMjE3MjgsIDAuMTM1ODYsIDAuMjYzMDQ3LCAwLjQ3NDk0NiwgMC42ODcwMTYsIDEuMTgxNDQsIDEuNDY0MjQiLCBcCi0gICAgICAgICAgIjAuMTMyNDE0LCAwLjE0NjU0MywgMC4yNzM2OTIsIDAuNDg1ODE4LCAwLjY5NzQ5MSwgMS4xOTE3NCwgMS40NzQ1OSIsIFwKLSAgICAgICAgICAiMC4xNDIzOTUsIDAuMTU2NTI3LCAwLjI4MzcxNiwgMC40OTU1ODgsIDAuNzA3NTc1LCAxLjIwMjc5LCAxLjQ4NTM5IiwgXAotICAgICAgICAgICIwLjE1MTQ1MiwgMC4xNjU1ODEsIDAuMjkyNzQ5LCAwLjUwNDg3OCwgMC43MTY2MTksIDEuMjEwOTIsIDEuNDk0NjMiLCBcCi0gICAgICAgICAgIjAuMTYzOTQ1LCAwLjE3ODA3OSwgMC4zMDUyMywgMC41MTcxMjQsIDAuNzI5MTAxLCAxLjIyNDY2LCAxLjUwNTkyIiwgXAotICAgICAgICAgICIwLjE3MzY1OCwgMC4xODc4MTIsIDAuMzE0OTQ0LCAwLjUyNjg0NywgMC43MzkyODksIDEuMjMzMjIsIDEuNTE1ODQiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTUzNTM1LCAwLjE4MjI2OCwgMC40NDMyODYsIDAuODc3Mjc5LCAxLjMxMjEyLCAyLjMzMDcxLCAyLjkwNjYyIiwgXAotICAgICAgICAgICIwLjE1MzUyMiwgMC4xODIzOTEsIDAuNDQyMzMsIDAuODc2OTA2LCAxLjMxMjA3LCAyLjMyODUzLCAyLjkwNjUyIiwgXAotICAgICAgICAgICIwLjE1MzU0OSwgMC4xODIyNzUsIDAuNDQzMDIzLCAwLjg3NzI2NywgMS4zMTE4LCAyLjMyOTk2LCAyLjkxMDc2IiwgXAotICAgICAgICAgICIwLjE1MzgwMiwgMC4xODI1MDgsIDAuNDQyMzU0LCAwLjg3ODQxLCAxLjMxMTQxLCAyLjMyNjM0LCAyLjkwNjI4IiwgXAotICAgICAgICAgICIwLjE1NDA3NSwgMC4xODI1OSwgMC40NDMyMzEsIDAuODc3MjczLCAxLjMxMzg0LCAyLjMyNjE0LCAyLjkwNzczIiwgXAotICAgICAgICAgICIwLjE1NDQyOSwgMC4xODI5OTMsIDAuNDQzMjg0LCAwLjg3ODQ3MSwgMS4zMTE1MiwgMi4zMjc1MiwgMi45MDU3NyIsIFwKLSAgICAgICAgICAiMC4xNTQ4NjYsIDAuMTgzMjYxLCAwLjQ0MzMyOSwgMC44Nzg4MDQsIDEuMzExOTQsIDIuMzI1ODcsIDIuOTA2NSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTUzOTEsIDAuMTI5MzExLCAwLjI1NDE5NywgMC40NjE3OTQsIDAuNjY5MzIyLCAxLjE1MzM1LCAxLjQyOTkzIiwgXAotICAgICAgICAgICIwLjEyNDI0NiwgMC4xMzgxNjUsIDAuMjYzMDM4LCAwLjQ3MDY1NCwgMC42NzgyMywgMS4xNjIyNCwgMS40Mzg3NyIsIFwKLSAgICAgICAgICAiMC4xMzU0NDksIDAuMTQ5MzY2LCAwLjI3NDI2OSwgMC40ODE5MDQsIDAuNjg5NDAyLCAxLjE3MzQ2LCAxLjQ1MDA3IiwgXAotICAgICAgICAgICIwLjE0NjI0OCwgMC4xNjAxNzQsIDAuMjg1MDQ2LCAwLjQ5MjcwMiwgMC43MDAyMTMsIDEuMTg0MzMsIDEuNDYwODQiLCBcCi0gICAgICAgICAgIjAuMTU1NDg2LCAwLjE2OTQxNCwgMC4yOTQzMTMsIDAuNTAxOTQ0LCAwLjcwOTQ3LCAxLjE5MzUzLCAxLjQ3MDEiLCBcCi0gICAgICAgICAgIjAuMTY4OTQzLCAwLjE4Mjg3NCwgMC4zMDc3NjMsIDAuNTE1NDEzLCAwLjcyMjkwOSwgMS4yMDcxNSwgMS40ODM1NCIsIFwKLSAgICAgICAgICAiMC4xNzg0NywgMC4xOTI0NTYsIDAuMzE3MzExLCAwLjUyNDk4OCwgMC43MzI1MDIsIDEuMjE2NTQsIDEuNDkzMTIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTQ4NjE5LCAwLjE3NTk3MSwgMC40MjQ1MjMsIDAuODQxMTY2LCAxLjI1ODUzLCAyLjIzMTQsIDIuNzg1NjciLCBcCi0gICAgICAgICAgIjAuMTQ4NjA5LCAwLjE3NTkyNSwgMC40MjQzNjMsIDAuODQxNzU0LCAxLjI1ODI1LCAyLjIyNzk1LCAyLjc4Njc4IiwgXAotICAgICAgICAgICIwLjE0ODYwMSwgMC4xNzU4NDYsIDAuNDI1MTIyLCAwLjg0MDY5MywgMS4yNTY2MywgMi4yMjk2LCAyLjc4Mzc0IiwgXAotICAgICAgICAgICIwLjE0ODY5OCwgMC4xNzYyNTIsIDAuNDI1MjU1LCAwLjg0MDQ1MSwgMS4yNTc0NSwgMi4yMzEwNSwgMi43ODczIiwgXAotICAgICAgICAgICIwLjE0ODk2NiwgMC4xNzY0MTQsIDAuNDI0MjUyLCAwLjg0MTg3NiwgMS4yNTY1OSwgMi4yMjk3NCwgMi43ODU2NCIsIFwKLSAgICAgICAgICAiMC4xNDk0MTcsIDAuMTc2NywgMC40MjUzOTQsIDAuODQxNjg5LCAxLjI1ODY5LCAyLjIyNjgsIDIuNzg3MjUiLCBcCi0gICAgICAgICAgIjAuMTQ5NzE4LCAwLjE3NzA2NCwgMC40MjU1OTMsIDAuODQwNjgzLCAxLjI1ODY1LCAyLjIzMTM0LCAyLjc4NTc4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTEyNTIsIDAuMTI1NDEyLCAwLjI1MjY1MywgMC40NjQ1MzMsIDAuNjc2MzY5LCAxLjE3MDY0LCAxLjQ1MzAxIiwgXAotICAgICAgICAgICIwLjEyMDI4MywgMC4xMzQ0NDMsIDAuMjYxNzE0LCAwLjQ3MzU3NiwgMC42ODU0MDYsIDEuMTc5NjIsIDEuNDYyMDUiLCBcCi0gICAgICAgICAgIjAuMTMxOTUyLCAwLjE0NjEyNywgMC4yNzM0MjIsIDAuNDg1Mjc3LCAwLjY5NzEwMywgMS4xOTEzNywgMS40NzM3MiIsIFwKLSAgICAgICAgICAiMC4xNDI5NzcsIDAuMTU3MTQxLCAwLjI4NDQyOSwgMC40OTYzMjYsIDAuNzA4MTQ5LCAxLjIwMjM0LCAxLjQ4NDg3IiwgXAotICAgICAgICAgICIwLjE1MjUwMywgMC4xNjY2NjIsIDAuMjkzOTksIDAuNTA1ODI1LCAwLjcxNzY2NCwgMS4yMTE5NywgMS40OTQzMiIsIFwKLSAgICAgICAgICAiMC4xNjYxNDIsIDAuMTgwMzEzLCAwLjMwNzU4MywgMC41MTk0NzQsIDAuNzMxMjkzLCAxLjIyNTU0LCAxLjUwNzg5IiwgXAotICAgICAgICAgICIwLjE3NjUzMiwgMC4xOTA0NzMsIDAuMzE3NzA3LCAwLjUyOTYxNywgMC43NDE0NDIsIDEuMjM1NzQsIDEuNTE4MTMiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTUzOTEzLCAwLjE4MjcxNSwgMC40NDMzLCAwLjg3Nzk4OCwgMS4zMTQ3MSwgMi4zMzA2NywgMi45MDc5MSIsIFwKLSAgICAgICAgICAiMC4xNTM5ODQsIDAuMTgyODUyLCAwLjQ0MzUwMSwgMC44Nzc5NDQsIDEuMzE0MjksIDIuMzI5OTQsIDIuOTEyMDYiLCBcCi0gICAgICAgICAgIjAuMTU0MDE2LCAwLjE4MjU5NSwgMC40NDM1NjQsIDAuODc3NzQ4LCAxLjMxMjc3LCAyLjMzMDUsIDIuOTA3NzciLCBcCi0gICAgICAgICAgIjAuMTU0MjMzLCAwLjE4Mjk2NiwgMC40NDM0NDgsIDAuODc4NzU1LCAxLjMxMjYyLCAyLjMzMDAzLCAyLjkwODEiLCBcCi0gICAgICAgICAgIjAuMTU0Mzk0LCAwLjE4MzEzOSwgMC40NDI1NTUsIDAuODc3OTA5LCAxLjMxMzUxLCAyLjMyNjgsIDIuOTA4MDciLCBcCi0gICAgICAgICAgIjAuMTU0Nzk4LCAwLjE4MzUyOSwgMC40NDMxNjEsIDAuODc3NjMsIDEuMzEyNjIsIDIuMzM2NDksIDIuOTEwODUiLCBcCi0gICAgICAgICAgIjAuMTU1NDI1LCAwLjE4MzcxNiwgMC40NDM2MSwgMC44Nzc4NDIsIDEuMzEyNzEsIDIuMzI5OCwgMi45MDg0Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5NTQzNywgMC4xMDkyNjMsIDAuMjMzNzUsIDAuNDQxMjk5LCAwLjY0ODY4OSwgMS4xMzI2MiwgMS40MDk1MiIsIFwKLSAgICAgICAgICAiMC4xMDUyNTQsIDAuMTE5MDg1LCAwLjI0MzU5MywgMC40NTEwODIsIDAuNjU4NTU4LCAxLjE0MzQyLCAxLjQxOTEzIiwgXAotICAgICAgICAgICIwLjExNjE0MiwgMC4xMjk5ODcsIDAuMjU0NDgzLCAwLjQ2MjAwNCwgMC42Njk0ODcsIDEuMTU0LCAxLjQzMTA3IiwgXAotICAgICAgICAgICIwLjEyNTMwNywgMC4xMzkxNDksIDAuMjYzNjQ0LCAwLjQ3MTI5NiwgMC42Nzg3MTEsIDEuMTYyNTgsIDEuNDM5ODEiLCBcCi0gICAgICAgICAgIjAuMTMyOTksIDAuMTQ2ODMsIDAuMjcxMzM2LCAwLjQ3OTA1OSwgMC42ODYzODcsIDEuMTcwMzQsIDEuNDQ3NDIiLCBcCi0gICAgICAgICAgIjAuMTQzNDQxLCAwLjE1NzM4MiwgMC4yODE4NjQsIDAuNDg5NDk5LCAwLjY5Njg5NywgMS4xODA5OSwgMS40NTg0NiIsIFwKLSAgICAgICAgICAiMC4xNTEyNDMsIDAuMTY1MjMsIDAuMjg5NzIzLCAwLjQ5NzI0LCAwLjcwNDQ4OSwgMS4xODg4LCAxLjQ2NTE5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE0NjQ1MywgMC4xNzM4MDksIDAuNDIzOTAzLCAwLjg0MDk4OSwgMS4yNTc1OSwgMi4yMzE1LCAyLjc4MjIiLCBcCi0gICAgICAgICAgIjAuMTQ2NDk0LCAwLjE3NDEwNSwgMC40MjM0MzIsIDAuODM4OTkyLCAxLjI1NDU3LCAyLjIyNzA0LCAyLjc4MzE3IiwgXAotICAgICAgICAgICIwLjE0NjM5NiwgMC4xNzQxOTMsIDAuNDIzNzI5LCAwLjg0MDc2NCwgMS4yNTYwMiwgMi4yMjUyOSwgMi43ODU2MyIsIFwKLSAgICAgICAgICAiMC4xNDY2OTksIDAuMTc0Mzg2LCAwLjQyMzk5MiwgMC44MzkwNzgsIDEuMjU3NTQsIDIuMjMwMjcsIDIuNzgzOCIsIFwKLSAgICAgICAgICAiMC4xNDcwNDUsIDAuMTc0NjczLCAwLjQyMzQzLCAwLjgzOTA5NiwgMS4yNTc4NywgMi4yMzA5NCwgMi43OTA3NiIsIFwKLSAgICAgICAgICAiMC4xNDc1NzQsIDAuMTc0OTQsIDAuNDI0MTY3LCAwLjg0MTA4NSwgMS4yNTYsIDIuMjMwNTYsIDIuNzgyMjQiLCBcCi0gICAgICAgICAgIjAuMTQ3OTM1LCAwLjE3NTA0OSwgMC40MjQwMTEsIDAuODQxMjM0LCAxLjI1ODIzLCAyLjIyOTc5LCAyLjc3OTE0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTE5MSwgMC4wMDExOTIsIDAuMDAxMTk2LCAwLjAwMTE5NywgMC4wMDExOTcsIDAuMDAxMTk5LCAwLjAwMTE5OCIsIFwKLSAgICAgICAgICAiMC4wMDExNjksIDAuMDAxMTcxLCAwLjAwMTE3NSwgMC4wMDExNzYsIDAuMDAxMTc2LCAwLjAwMTE3NywgMC4wMDExNzciLCBcCi0gICAgICAgICAgIjAuMDAxMTU4LCAwLjAwMTE1OSwgMC4wMDExNjQsIDAuMDAxMTY1LCAwLjAwMTE2NiwgMC4wMDExNjYsIDAuMDAxMTY3IiwgXAotICAgICAgICAgICIwLjAwMTE1MSwgMC4wMDExNTMsIDAuMDAxMTU4LCAwLjAwMTE2LCAwLjAwMTE2MSwgMC4wMDExNjIsIDAuMDAxMTYyIiwgXAotICAgICAgICAgICIwLjAwMTE0NywgMC4wMDExNDksIDAuMDAxMTU1LCAwLjAwMTE1NywgMC4wMDExNTgsIDAuMDAxMTU5LCAwLjAwMTE1OSIsIFwKLSAgICAgICAgICAiMC4wMDExNDQsIDAuMDAxMTQ2LCAwLjAwMTE1MywgMC4wMDExNTYsIDAuMDAxMTU3LCAwLjAwMTE1OCwgMC4wMDExNTgiLCBcCi0gICAgICAgICAgIjAuMDAxMTQ1LCAwLjAwMTE0NywgMC4wMDExNTQsIDAuMDAxMTU4LCAwLjAwMTE1OSwgMC4wMDExNiwgMC4wMDExNiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjU0NSwgMC4wMDI1NDcsIDAuMDAyNTUyLCAwLjAwMjU1NCwgMC4wMDI1NTUsIDAuMDAyNTU1LCAwLjAwMjU1NiIsIFwKLSAgICAgICAgICAiMC4wMDI1MzEsIDAuMDAyNTMyLCAwLjAwMjUzOCwgMC4wMDI1NCwgMC4wMDI1NDEsIDAuMDAyNTQyLCAwLjAwMjU0MiIsIFwKLSAgICAgICAgICAiMC4wMDI1MjMsIDAuMDAyNTI1LCAwLjAwMjUzMSwgMC4wMDI1MzQsIDAuMDAyNTM1LCAwLjAwMjUzNSwgMC4wMDI1MzYiLCBcCi0gICAgICAgICAgIjAuMDAyNTE5LCAwLjAwMjUyMSwgMC4wMDI1MjgsIDAuMDAyNTMxLCAwLjAwMjUzMiwgMC4wMDI1MzMsIDAuMDAyNTMzIiwgXAotICAgICAgICAgICIwLjAwMjUxNiwgMC4wMDI1MTksIDAuMDAyNTI3LCAwLjAwMjUzLCAwLjAwMjUzMSwgMC4wMDI1MzIsIDAuMDAyNTMyIiwgXAotICAgICAgICAgICIwLjAwMjUxNywgMC4wMDI1MTksIDAuMDAyNTI4LCAwLjAwMjUzMiwgMC4wMDI1MzMsIDAuMDAyNTM0LCAwLjAwMjUzNSIsIFwKLSAgICAgICAgICAiMC4wMDI1MTksIDAuMDAyNTIyLCAwLjAwMjUzMiwgMC4wMDI1MzYsIDAuMDAyNTM3LCAwLjAwMjUzOSwgMC4wMDI1NCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkExIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDEwMDcsIDAuMDAxMDA2LCAwLjAwMTAxMSwgMC4wMDEwMTEsIDAuMDAxMDExLCAwLjAwMTAxMiwgMC4wMDEwMTEiLCBcCi0gICAgICAgICAgIjAuMDAwOTc0LCAwLjAwMDk3NCwgMC4wMDA5NzcsIDAuMDAwOTc4LCAwLjAwMDk3OCwgMC4wMDA5NzgsIDAuMDAwOTc5IiwgXAotICAgICAgICAgICIwLjAwMDk1MywgMC4wMDA5NTQsIDAuMDAwOTU4LCAwLjAwMDk2LCAwLjAwMDk2LCAwLjAwMDk2LCAwLjAwMDk2MSIsIFwKLSAgICAgICAgICAiMC4wMDA5NDQsIDAuMDAwOTQ1LCAwLjAwMDk1LCAwLjAwMDk1MiwgMC4wMDA5NTIsIDAuMDAwOTUzLCAwLjAwMDk1MyIsIFwKLSAgICAgICAgICAiMC4wMDA5NCwgMC4wMDA5NDEsIDAuMDAwOTQ2LCAwLjAwMDk0OCwgMC4wMDA5NDksIDAuMDAwOTQ5LCAwLjAwMDk1IiwgXAotICAgICAgICAgICIwLjAwMDkzNiwgMC4wMDA5MzcsIDAuMDAwOTQ0LCAwLjAwMDk0NiwgMC4wMDA5NDcsIDAuMDAwOTQ4LCAwLjAwMDk0OCIsIFwKLSAgICAgICAgICAiMC4wMDA5MzcsIDAuMDAwOTM4LCAwLjAwMDk0NSwgMC4wMDA5NDgsIDAuMDAwOTQ5LCAwLjAwMDk0OSwgMC4wMDA5NSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjM1NCwgMC4wMDIzNTUsIDAuMDAyMzYsIDAuMDAyMzYyLCAwLjAwMjM2MywgMC4wMDIzNjQsIDAuMDAyMzY0IiwgXAotICAgICAgICAgICIwLjAwMjMzMywgMC4wMDIzMzQsIDAuMDAyMzQsIDAuMDAyMzQzLCAwLjAwMjM0NCwgMC4wMDIzNDQsIDAuMDAyMzQ0IiwgXAotICAgICAgICAgICIwLjAwMjMyNiwgMC4wMDIzMjgsIDAuMDAyMzM1LCAwLjAwMjMzOCwgMC4wMDIzNCwgMC4wMDIzNDEsIDAuMDAyMzQxIiwgXAotICAgICAgICAgICIwLjAwMjMyNywgMC4wMDIzMjksIDAuMDAyMzM5LCAwLjAwMjM0MiwgMC4wMDIzNDQsIDAuMDAyMzQ1LCAwLjAwMjM0NSIsIFwKLSAgICAgICAgICAiMC4wMDIzMzQsIDAuMDAyMzM3LCAwLjAwMjM0NywgMC4wMDIzNTIsIDAuMDAyMzUzLCAwLjAwMjM1NSwgMC4wMDIzNTUiLCBcCi0gICAgICAgICAgIjAuMDAyMzQ0LCAwLjAwMjM0NywgMC4wMDIzNTgsIDAuMDAyMzYyLCAwLjAwMjM2NCwgMC4wMDIzNjYsIDAuMDAyMzY3IiwgXAotICAgICAgICAgICIwLjAwMjM1NiwgMC4wMDIzNTksIDAuMDAyMzcsIDAuMDAyMzc2LCAwLjAwMjM3NywgMC4wMDIzNzksIDAuMDAyMzgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxMTk3LCAwLjAwMTE5OCwgMC4wMDEyMDIsIDAuMDAxMjAzLCAwLjAwMTIwNCwgMC4wMDEyMDQsIDAuMDAxMjA1IiwgXAotICAgICAgICAgICIwLjAwMTE2OSwgMC4wMDExNywgMC4wMDExNzUsIDAuMDAxMTc2LCAwLjAwMTE3NywgMC4wMDExNzgsIDAuMDAxMTc3IiwgXAotICAgICAgICAgICIwLjAwMTE2NCwgMC4wMDExNjUsIDAuMDAxMTcxLCAwLjAwMTE3MywgMC4wMDExNzQsIDAuMDAxMTc1LCAwLjAwMTE3NCIsIFwKLSAgICAgICAgICAiMC4wMDExNjksIDAuMDAxMTcsIDAuMDAxMTc3LCAwLjAwMTE4MSwgMC4wMDExODIsIDAuMDAxMTgyLCAwLjAwMTE4MyIsIFwKLSAgICAgICAgICAiMC4wMDExODEsIDAuMDAxMTgzLCAwLjAwMTE5MSwgMC4wMDExOTQsIDAuMDAxMTk1LCAwLjAwMTE5NiwgMC4wMDExOTciLCBcCi0gICAgICAgICAgIjAuMDAxMTkzLCAwLjAwMTE5NCwgMC4wMDEyMDIsIDAuMDAxMjA2LCAwLjAwMTIwNywgMC4wMDEyMDgsIDAuMDAxMjA4IiwgXAotICAgICAgICAgICIwLjAwMTIwOCwgMC4wMDEyMTEsIDAuMDAxMjE5LCAwLjAwMTIyMywgMC4wMDEyMjUsIDAuMDAxMjI2LCAwLjAwMTIyNiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTg5NCwgMC4wMDE4OTQsIDAuMDAxODk2LCAwLjAwMTg5NiwgMC4wMDE4OTYsIDAuMDAxODk2LCAwLjAwMTg5NiIsIFwKLSAgICAgICAgICAiMC4wMDE4NzQsIDAuMDAxODc1LCAwLjAwMTg3NywgMC4wMDE4NzgsIDAuMDAxODc4LCAwLjAwMTg3OSwgMC4wMDE4NzkiLCBcCi0gICAgICAgICAgIjAuMDAxODY5LCAwLjAwMTg3LCAwLjAwMTg3NCwgMC4wMDE4NzYsIDAuMDAxODc2LCAwLjAwMTg3NywgMC4wMDE4NzciLCBcCi0gICAgICAgICAgIjAuMDAxODY3LCAwLjAwMTg2OSwgMC4wMDE4NzQsIDAuMDAxODc2LCAwLjAwMTg3NywgMC4wMDE4NzgsIDAuMDAxODc4IiwgXAotICAgICAgICAgICIwLjAwMTg3NywgMC4wMDE4NzUsIDAuMDAxODgzLCAwLjAwMTg4NCwgMC4wMDE4ODcsIDAuMDAxODg4LCAwLjAwMTg4OCIsIFwKLSAgICAgICAgICAiMC4wMDE4OTMsIDAuMDAxODk3LCAwLjAwMTkwNSwgMC4wMDE5MDgsIDAuMDAxOTA2LCAwLjAwMTkxLCAwLjAwMTkxIiwgXAotICAgICAgICAgICIwLjAwMTkxNCwgMC4wMDE5MTksIDAuMDAxOTI3LCAwLjAwMTkzLCAwLjAwMTkyNywgMC4wMDE5MzIsIDAuMDAxOTI5Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogT0FJMjFYMiAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChPQUkyMVgyKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMjE0NTIyOwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNzI4ODc7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNzIzOTI7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNzI4ODc7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwODE4LCAwLjAwMDgxOCwgMC4wMDA4MTgsIDAuMDAwODE3LCAwLjAwMDgxNywgMC4wMDA4MTcsIDAuMDAwODE3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwODIxLCAwLjAwMDgyLCAwLjAwMDgyLCAwLjAwMDgyLCAwLjAwMDgyMSwgMC4wMDA4MjEsIDAuMDAwODIxIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihBMSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNjc0OTc7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNjc0OTc7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNjY5NDU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwODE5LCAwLjAwMDgxOCwgMC4wMDA4MTgsIDAuMDAwODE4LCAwLjAwMDgxOCwgMC4wMDA4MTcsIDAuMDAwODE4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwODIsIDAuMDAwODIsIDAuMDAwODIsIDAuMDAwODIsIDAuMDAwODIsIDAuMDAwODIsIDAuMDAwODIiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE1ODIxMTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE1ODA5ODsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE1ODIxMTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAzNjEsIDAuMDAwMzYyLCAwLjAwMDM2MiwgMC4wMDAzNjIsIDAuMDAwMzYyLCAwLjAwMDM2MiwgMC4wMDAzNjIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA5MjgsIDAuMDAwOTI5LCAwLjAwMDkyOSwgMC4wMDA5MjksIDAuMDAwOTMsIDAuMDAwOTMsIDAuMDAwOTMiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4yNzYyMTI7Ci0gICAgZnVuY3Rpb24gOiAiKCEoKEEwK0ExKSBCMCkpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU4MzY4LCAwLjI1MjgwNCwgMC40MDgwMjIsIDAuNjAyMTQ1LCAwLjc5NTcyOCwgMC45ODkxNjUsIDEuMTg0MDEiLCBcCi0gICAgICAgICAgIjAuMDY2OTg3LCAwLjI2MTQzOCwgMC40MTY2NDksIDAuNjEwNTMyLCAwLjgwNDg3NywgMC45OTgyMzQsIDEuMTkyMDQiLCBcCi0gICAgICAgICAgIjAuMDc2OTkxLCAwLjI3MTYzLCAwLjQyNjY5NiwgMC42MjA4NSwgMC44MTQ1ODQsIDEuMDA4NTUsIDEuMjAyNTQiLCBcCi0gICAgICAgICAgIjAuMDg2OTksIDAuMjgxNjksIDAuNDM2ODY1LCAwLjYzMTE3OCwgMC44MjQ1NTUsIDEuMDE4NjYsIDEuMjEyNTkiLCBcCi0gICAgICAgICAgIjAuMDk2ODc1LCAwLjI5MTYyOSwgMC40NDY5MTMsIDAuNjQwNzYzLCAwLjgzNTE4OSwgMS4wMjg0LCAxLjIyMzA5IiwgXAotICAgICAgICAgICIwLjExMDg1MiwgMC4zMDc4MiwgMC40NjI2MDcsIDAuNjU3MDI3LCAwLjg1MDgxMiwgMS4wNDQ2NCwgMS4yMzg1NCIsIFwKLSAgICAgICAgICAiMC4xMjE5MiwgMC4zMjE1MzcsIDAuNDc3MTk4LCAwLjY3MTMyNiwgMC44NjQ5NTUsIDEuMDU4OTgsIDEuMjUyNTMiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTAxMzYyLCAwLjQ5NDY4OCwgMC44MDkxMDMsIDEuMjAyNjMsIDEuNTk1NTQsIDEuOTg4OTYsIDIuMzgxNyIsIFwKLSAgICAgICAgICAiMC4xMDE0NjYsIDAuNDk0Njc4LCAwLjgwOTU1NiwgMS4yMDIzOCwgMS41OTU4OCwgMS45ODg2NywgMi4zODE3NSIsIFwKLSAgICAgICAgICAiMC4xMDMyNTYsIDAuNDk0NzE4LCAwLjgwODk2LCAxLjIwMjIzLCAxLjU5NTcyLCAxLjk4OTIzLCAyLjM4Mjc4IiwgXAotICAgICAgICAgICIwLjEwNjgwMywgMC40OTQ3MDcsIDAuODA5MTU1LCAxLjIwMjQ2LCAxLjU5NjMsIDEuOTg4NzUsIDIuMzgyNiIsIFwKLSAgICAgICAgICAiMC4xMTE1NzksIDAuNDk0NzA4LCAwLjgwOTE1OSwgMS4yMDI2LCAxLjU5NTkxLCAxLjk4OTc1LCAyLjM4MTY2IiwgXAotICAgICAgICAgICIwLjEyMDMzOSwgMC40OTcxMjQsIDAuODA5NDc4LCAxLjIwMjU4LCAxLjU5NjA1LCAxLjk4OTc2LCAyLjM4MjMyIiwgXAotICAgICAgICAgICIwLjEyOTE1NywgMC40OTk2NDQsIDAuODEwMDkxLCAxLjIwMjIzLCAxLjU5NTM2LCAxLjk4ODYsIDIuMzgxNzQiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU5MzE0LCAwLjI1MjAwMywgMC40MDYwMDUsIDAuNTk4NjA3LCAwLjc5MDgyOCwgMC45ODM2NzksIDEuMTc1NzUiLCBcCi0gICAgICAgICAgIjAuMDY4NzU5LCAwLjI2MTU1OSwgMC40MTU1NjksIDAuNjA3ODg2LCAwLjgwMDExMywgMC45OTI2MDQsIDEuMTg1NTMiLCBcCi0gICAgICAgICAgIjAuMDc5Njg5LCAwLjI3MjY5NywgMC40MjY4MzEsIDAuNjE5MzI1LCAwLjgxMTU3NiwgMS4wMDQyNSwgMS4xOTYzNiIsIFwKLSAgICAgICAgICAiMC4wOTA2MzYsIDAuMjgzNzY5LCAwLjQzNzc5NCwgMC42MzAxNDksIDAuODIzMDE2LCAxLjAxNDkyLCAxLjIwNzQ5IiwgXAotICAgICAgICAgICIwLjEwMTUyNSwgMC4yOTQzMjUsIDAuNDQ4NjYyLCAwLjY0MTExMSwgMC44MzM5ODQsIDEuMDI1ODQsIDEuMjE4NzQiLCBcCi0gICAgICAgICAgIjAuMTE3Mzk1LCAwLjMxMjI3MywgMC40NjYzMjUsIDAuNjU4ODcyLCAwLjg1MTE2MSwgMS4wNDM1OSwgMS4yMzYyNCIsIFwKLSAgICAgICAgICAiMC4xMzAwNzgsIDAuMzI3Mzk3LCAwLjQ4MTkxMiwgMC42NzQzNjYsIDAuODY3MTE2LCAxLjA1OTIzLCAxLjI1MTgxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5NjM2NSwgMC40Nzc2MjcsIDAuNzgyMTQxLCAxLjE2MzY3LCAxLjU0NDU0LCAxLjkyNjM0LCAyLjMwNjk0IiwgXAotICAgICAgICAgICIwLjA5NjM4NiwgMC40Nzc2MTQsIDAuNzgyMzc2LCAxLjE2MzQ0LCAxLjU0MzkxLCAxLjkyNDg3LCAyLjMwNjYyIiwgXAotICAgICAgICAgICIwLjA5NzgwMywgMC40NzczOTUsIDAuNzgyMjAyLCAxLjE2MzYsIDEuNTQ0NTUsIDEuOTI2NDYsIDIuMzA1NzgiLCBcCi0gICAgICAgICAgIjAuMTAxMDExLCAwLjQ3NzM4MSwgMC43ODIyOTcsIDEuMTYzMzEsIDEuNTQ1MDMsIDEuOTI1MzcsIDIuMzA2NjkiLCBcCi0gICAgICAgICAgIjAuMTA1NDc5LCAwLjQ3NzUzNiwgMC43ODIzMjQsIDEuMTYzNTksIDEuNTQ0OTMsIDEuOTI1MTUsIDIuMzA2OTIiLCBcCi0gICAgICAgICAgIjAuMTE0MTI0LCAwLjQ3OTEyNywgMC43ODIyODgsIDEuMTYzMzEsIDEuNTQ0MjEsIDEuOTI1MjUsIDIuMzA2NzIiLCBcCi0gICAgICAgICAgIjAuMTIyODkxLCAwLjQ4MTc2LCAwLjc4MjYzOCwgMS4xNjMyMSwgMS41NDQ3LCAxLjkyNTIyLCAyLjMwNjg5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkExIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTUzODQsIDAuMjQ5ODQzLCAwLjQwNDg1NiwgMC41OTg5NSwgMC43OTI0OTcsIDAuOTg3MDA3LCAxLjE4MDQiLCBcCi0gICAgICAgICAgIjAuMDY0MzI1LCAwLjI1ODg1NywgMC40MTM5OTMsIDAuNjA4MjI2LCAwLjgwMTY3MywgMC45OTYyMjgsIDEuMTg5NiIsIFwKLSAgICAgICAgICAiMC4wNzU2MDYsIDAuMjcwMTc0LCAwLjQyNTM3MSwgMC42MTkxODgsIDAuODEzNDEyLCAxLjAwNjk4LCAxLjIwMDY5IiwgXAotICAgICAgICAgICIwLjA4NzM2NiwgMC4yODE4NCwgMC40MzcwNDQsIDAuNjMxMjMsIDAuODI0Njg5LCAxLjAxODgxLCAxLjIxMjgxIiwgXAotICAgICAgICAgICIwLjA5OTA4MiwgMC4yOTMxMjIsIDAuNDQ4MzMsIDAuNjQyMzI5LCAwLjgzNjYyLCAxLjAyOTc1LCAxLjIyNDQzIiwgXAotICAgICAgICAgICIwLjExNjAwNCwgMC4zMTE2MjgsIDAuNDY2ODQ2LCAwLjY2MDUxMSwgMC44NTQ1OTcsIDEuMDQ4MjMsIDEuMjQyNjEiLCBcCi0gICAgICAgICAgIjAuMTI4NTE5LCAwLjMyNzY2OCwgMC40ODI4MjYsIDAuNjc2NjQxLCAwLjg3MDk3OCwgMS4wNjQ2MywgMS4yNTg2NiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDEzNDgsIDAuNDk0ODMxLCAwLjgwOTUwMSwgMS4yMDIyMiwgMS41OTYxNCwgMS45ODg0NiwgMi4zODE4IiwgXAotICAgICAgICAgICIwLjEwMTQzOSwgMC40OTQ3MDUsIDAuODA4OTgsIDEuMjAyNDEsIDEuNTk1NjgsIDEuOTg4NTksIDIuMzgyNDIiLCBcCi0gICAgICAgICAgIjAuMTA1MTA3LCAwLjQ5NDY5MywgMC44MDkxNjcsIDEuMjAyMzQsIDEuNTk1ODEsIDEuOTg4NjYsIDIuMzgxOTUiLCBcCi0gICAgICAgICAgIjAuMTEwOTgyLCAwLjQ5NDU1NSwgMC44MDk2NzUsIDEuMjAyMzYsIDEuNTk2MywgMS45ODg3NiwgMi4zODI3NyIsIFwKLSAgICAgICAgICAiMC4xMTgzNDcsIDAuNDk1MDg3LCAwLjgwOTIyLCAxLjIwMjM4LCAxLjU5NTg4LCAxLjk4OTczLCAyLjM4MjgxIiwgXAotICAgICAgICAgICIwLjEzMTk4NywgMC40OTc2MjcsIDAuODA5MzA5LCAxLjIwMjE0LCAxLjU5NTUyLCAxLjk4OTg3LCAyLjM4MTQzIiwgXAotICAgICAgICAgICIwLjE0NDg0MiwgMC41MDI1NzUsIDAuODA5ODcxLCAxLjIwMjE0LCAxLjU5NTY3LCAxLjk4ODk2LCAyLjM4MzI1Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1NjI5NiwgMC4yNTMwNzYsIDAuNDEwNTM3LCAwLjYwNzU2OSwgMC44MDM5NTgsIDEuMDAxNDEsIDEuMTk3ODUiLCBcCi0gICAgICAgICAgIjAuMDY1NjQ5LCAwLjI2MjgwNCwgMC40MjAxODEsIDAuNjE2ODQyLCAwLjgxMzQ1MywgMS4wMTAwMSwgMS4yMDY3NSIsIFwKLSAgICAgICAgICAiMC4wNzYzMTcsIDAuMjczNzU3LCAwLjQzMTA5MSwgMC42MjgzNDYsIDAuODI0NTYyLCAxLjAyMTgzLCAxLjIxNzg0IiwgXAotICAgICAgICAgICIwLjA4NzA1NiwgMC4yODQ2NDksIDAuNDQyMTU2LCAwLjYzODczLCAwLjgzNTQ4MywgMS4wMzIyMywgMS4yMjkzNCIsIFwKLSAgICAgICAgICAiMC4wOTc2MiwgMC4yOTUxMTQsIDAuNDUyOTk1LCAwLjY0OTg2OCwgMC44NDYzODEsIDEuMDQzMjEsIDEuMjQwMzQiLCBcCi0gICAgICAgICAgIjAuMTEzMDk4LCAwLjMxMjY4LCAwLjQ3MDIyNiwgMC42Njc1MTIsIDAuODYzNzQ5LCAxLjA2MDU1LCAxLjI1NzI5IiwgXAotICAgICAgICAgICIwLjEyNDg1OCwgMC4zMjc1MzQsIDAuNDg1NjgsIDAuNjgyNTc2LCAwLjg3OTY1NSwgMS4wNzYwMiwgMS4yNzI4OCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTQwMDQsIDAuNDg2OTA1LCAwLjgwMjE3MywgMS4xODcyMywgMS41ODg4NCwgMS45Njk1MiwgMi4zNTg5IiwgXAotICAgICAgICAgICIwLjA5Mzk5MSwgMC40ODQ0MzgsIDAuODAxNDM0LCAxLjE5NDE3LCAxLjU4MTk2LCAxLjk3NDE4LCAyLjM2NjA3IiwgXAotICAgICAgICAgICIwLjA5NTM1MiwgMC40ODcyNjYsIDAuNzk5MDI4LCAxLjE4Nzc5LCAxLjU4MjAxLCAxLjk2ODQ1LCAyLjM2NjA5IiwgXAotICAgICAgICAgICIwLjA5ODU2LCAwLjQ4NDUxMywgMC43OTY4NDYsIDEuMTk0NzIsIDEuNTc5OCwgMS45NzM5NiwgMi4zNTk0MSIsIFwKLSAgICAgICAgICAiMC4xMDMxMjQsIDAuNDg0NDk3LCAwLjc5Nzg4NiwgMS4xODc1OCwgMS41ODIxOSwgMS45NzM4MywgMi4zNTkzNSIsIFwKLSAgICAgICAgICAiMC4xMTIyNzEsIDAuNDg3MTA4LCAwLjc5OTAxNSwgMS4xODcyMSwgMS41ODE4OSwgMS45ODAyMiwgMi4zNjU5MyIsIFwKLSAgICAgICAgICAiMC4xMjExNSwgMC40ODk2OTMsIDAuNzk3MzI4LCAxLjE5NDU2LCAxLjU3Nzk3LCAxLjk3NDUzLCAyLjM3NDE5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjc5NzcsIDAuMTMwNTEsIDAuMjEyNTEyLCAwLjMxNTExLCAwLjQxNzUzNiwgMC41MjAyODcsIDAuNjIyODExIiwgXAotICAgICAgICAgICIwLjAzNzk0NCwgMC4xNDAzMTUsIDAuMjIyMjg0LCAwLjMyNDc1MSwgMC40MjcyMjQsIDAuNTI5NzQ5LCAwLjYzMjE3OSIsIFwKLSAgICAgICAgICAiMC4wNTA2MTksIDAuMTUyODk0LCAwLjIzNDc5MywgMC4zMzY1NDUsIDAuNDM4OTE5LCAwLjU0MTIyLCAwLjY0Mzg4IiwgXAotICAgICAgICAgICIwLjA2MTkxNywgMC4xNjUyOTQsIDAuMjQ3Mzc0LCAwLjM0OTc0MywgMC40NTIyNTgsIDAuNTU0NjgyLCAwLjY1NjA4NyIsIFwKLSAgICAgICAgICAiMC4wNzE0NjEsIDAuMTc3ODM2LCAwLjI2MDAzOSwgMC4zNjIzNTgsIDAuNDY0NzAxLCAwLjU2NzIxNSwgMC42Njg1MTMiLCBcCi0gICAgICAgICAgIjAuMDg0NDE5LCAwLjE5ODQ4MywgMC4yNzk3NzQsIDAuMzgyNTczLCAwLjQ4NDg4NCwgMC41ODcyMzUsIDAuNjg5Njc3IiwgXAotICAgICAgICAgICIwLjA5NDI1NywgMC4yMTYyMzUsIDAuMjk3MzM1LCAwLjM5OTY5MSwgMC41MDI1NTIsIDAuNjA0ODc2LCAwLjcwNzIzOCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTUxOTQsIDAuMjY2MjIzLCAwLjQzNTQwMSwgMC42NDY2NDYsIDAuODU4MDYxLCAxLjA2OTgxLCAxLjI4MDg3IiwgXAotICAgICAgICAgICIwLjA1Njg4MSwgMC4yNjYyNzUsIDAuNDM1MjY4LCAwLjY0NjYyNywgMC44NTc5OSwgMS4wNjk0NSwgMS4yODEyMSIsIFwKLSAgICAgICAgICAiMC4wNjM1OTcsIDAuMjY2Mjk2LCAwLjQzNTMsIDAuNjQ2NjE3LCAwLjg1ODEyNiwgMS4wNjk3MiwgMS4yODA5MyIsIFwKLSAgICAgICAgICAiMC4wNzIyMTksIDAuMjY3NzcyLCAwLjQzNTI5MywgMC42NDY3ODEsIDAuODU4MjAyLCAxLjA2OTU1LCAxLjI4MTM2IiwgXAotICAgICAgICAgICIwLjA4MTY3NiwgMC4yNzEyMzYsIDAuNDM1ODk4LCAwLjY0NjYzNiwgMC44NTgwMzcsIDEuMDY5NzcsIDEuMjgxMzciLCBcCi0gICAgICAgICAgIjAuMDk3MjM5LCAwLjI3ODkwOCwgMC40Mzk4NjQsIDAuNjQ3MjI2LCAwLjg1ODAwNiwgMS4wNjk0NSwgMS4yODEzNiIsIFwKLSAgICAgICAgICAiMC4xMDk5MDMsIDAuMjg3NDA1LCAwLjQ0NTU0NiwgMC42NDk1OTgsIDAuODU4Mjk1LCAxLjA2OTQ2LCAxLjI4MTIyIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1NDQxOCwgMC4yNDc1OCwgMC40MDQ4ODMsIDAuNjAxNzc3LCAwLjc5ODg1LCAwLjk5NTY5NSwgMS4xOTE5MyIsIFwKLSAgICAgICAgICAiMC4wNjM0ODksIDAuMjU2OTAzLCAwLjQxNDIxMywgMC42MTA4NzUsIDAuODA3NiwgMS4wMDQxLCAxLjIwMDk2IiwgXAotICAgICAgICAgICIwLjA3NDk5NywgMC4yNjg0NjMsIDAuNDI1OTg4LCAwLjYyMjYwNywgMC44MTkzLCAxLjAxNTk4LCAxLjIxMjQxIiwgXAotICAgICAgICAgICIwLjA4NzIxOCwgMC4yODA1MzIsIDAuNDM3OTk2LCAwLjYzNDc0OCwgMC44MzEzNywgMS4wMjg2OSwgMS4yMjUwMSIsIFwKLSAgICAgICAgICAiMC4wOTkwNDUsIDAuMjkxODE1LCAwLjQ0OTI5NSwgMC42NDYzNzUsIDAuODQyNzAxLCAxLjAzOTUzLCAxLjIzNjY1IiwgXAotICAgICAgICAgICIwLjExNjcxOSwgMC4zMTA2MDMsIDAuNDY4MjkyLCAwLjY2NDkwNiwgMC44NjE4OTEsIDEuMDU4MTcsIDEuMjU0OTIiLCBcCi0gICAgICAgICAgIjAuMTI5OTksIDAuMzI3MTcsIDAuNDg0NTM4LCAwLjY4MTM0NiwgMC44NzgxNDcsIDEuMDc0NzMsIDEuMjcxNTQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk2NDU1LCAwLjQ4NTYzNywgMC44MDEzOTEsIDEuMTg3OCwgMS41NzgwOSwgMS45NjkyMiwgMi4zNTk1NyIsIFwKLSAgICAgICAgICAiMC4wOTY0MjYsIDAuNDg2OTM1LCAwLjc5OTA5OCwgMS4xOTA4MSwgMS41ODI1OCwgMS45NzQwNCwgMi4zNzE3MyIsIFwKLSAgICAgICAgICAiMC4wOTk3MywgMC40ODU3MDEsIDAuNzk2OTU3LCAxLjE5NDIzLCAxLjU4NjksIDEuOTczNTEsIDIuMzY1NjgiLCBcCi0gICAgICAgICAgIjAuMTA1MzA2LCAwLjQ4NTUyNiwgMC43OTkxOCwgMS4xOTA5OSwgMS41ODE5NCwgMS45Njg0MiwgMi4zNjU5IiwgXAotICAgICAgICAgICIwLjExMjU1NCwgMC40ODU4MDEsIDAuODAxNzE1LCAxLjE4NzI4LCAxLjU4MjEsIDEuOTczNzgsIDIuMzU5MzQiLCBcCi0gICAgICAgICAgIjAuMTI2MDYyLCAwLjQ4ODI5NSwgMC43OTY4MTEsIDEuMTg4OTYsIDEuNTc3OTMsIDEuOTc5NzcsIDIuMzczOTgiLCBcCi0gICAgICAgICAgIjAuMTM4Njg3LCAwLjQ5MTc0OCwgMC43OTc0MzYsIDEuMTg4OSwgMS41NzgyMiwgMS45ODEwNCwgMi4zNzQ0NiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDUwODEsIDAuMDA1MDgyLCAwLjAwNTA4MiwgMC4wMDUwODIsIDAuMDA1MDgsIDAuMDA1MDgsIDAuMDA1MDgiLCBcCi0gICAgICAgICAgIjAuMDA1MDUsIDAuMDA1MDYzLCAwLjAwNTA2NSwgMC4wMDUwNjUsIDAuMDA1MDY1LCAwLjAwNTA2NCwgMC4wMDUwNjUiLCBcCi0gICAgICAgICAgIjAuMDA1MDMyLCAwLjAwNTA1NywgMC4wMDUwNiwgMC4wMDUwNjEsIDAuMDA1MDU5LCAwLjAwNTA1NywgMC4wMDUwNjEiLCBcCi0gICAgICAgICAgIjAuMDA1MDIsIDAuMDA1MDUyLCAwLjAwNTA1NiwgMC4wMDUwNiwgMC4wMDUwNTcsIDAuMDA1MDU4LCAwLjAwNTA1OSIsIFwKLSAgICAgICAgICAiMC4wMDUwMTUsIDAuMDA1MDQ3LCAwLjAwNTA1NSwgMC4wMDUwNTcsIDAuMDA1MDU4LCAwLjAwNTA1NywgMC4wMDUwNiIsIFwKLSAgICAgICAgICAiMC4wMDUwMTUsIDAuMDA1MDQ0LCAwLjAwNTA1MiwgMC4wMDUwNTMsIDAuMDA1MDU1LCAwLjAwNTA1NiwgMC4wMDUwNTYiLCBcCi0gICAgICAgICAgIjAuMDA1MDIsIDAuMDA1MDQzLCAwLjAwNTA1LCAwLjAwNTA1MiwgMC4wMDUwNTUsIDAuMDA1MDU0LCAwLjAwNTA1NSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTAwMywgMC4wMDEwMDcsIDAuMDAxMDA3LCAwLjAwMTAwOCwgMC4wMDEwMDcsIDAuMDAxMDA3LCAwLjAwMTAwNyIsIFwKLSAgICAgICAgICAiMC4wMDA5NTIsIDAuMDAwOTc4LCAwLjAwMDk4MSwgMC4wMDA5ODMsIDAuMDAwOTgzLCAwLjAwMDk4MywgMC4wMDA5ODQiLCBcCi0gICAgICAgICAgIjAuMDAwOTIyLCAwLjAwMDk2NiwgMC4wMDA5NzIsIDAuMDAwOTc1LCAwLjAwMDk3NiwgMC4wMDA5NzcsIDAuMDAwOTc4IiwgXAotICAgICAgICAgICIwLjAwMDkwNCwgMC4wMDA5NTcsIDAuMDAwOTY2LCAwLjAwMDk3LCAwLjAwMDk3MywgMC4wMDA5NzQsIDAuMDAwOTc1IiwgXAotICAgICAgICAgICIwLjAwMDg5LCAwLjAwMDk0OSwgMC4wMDA5NjEsIDAuMDAwOTY3LCAwLjAwMDk3LCAwLjAwMDk3MSwgMC4wMDA5NzIiLCBcCi0gICAgICAgICAgIjAuMDAwODgsIDAuMDAwOTQxLCAwLjAwMDk1NCwgMC4wMDA5NjIsIDAuMDAwOTY2LCAwLjAwMDk2OCwgMC4wMDA5NyIsIFwKLSAgICAgICAgICAiMC4wMDA4NzgsIDAuMDAwOTM2LCAwLjAwMDk1LCAwLjAwMDk1OCwgMC4wMDA5NjMsIDAuMDAwOTY2LCAwLjAwMDk2OCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkExIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQ0MDEsIDAuMDA0NDA1LCAwLjAwNDQwNSwgMC4wMDQ0MDQsIDAuMDA0NDA0LCAwLjAwNDQwMywgMC4wMDQ0MDMiLCBcCi0gICAgICAgICAgIjAuMDA0MzU0LCAwLjAwNDM4MiwgMC4wMDQzODQsIDAuMDA0Mzg0LCAwLjAwNDM4NSwgMC4wMDQzODUsIDAuMDA0Mzg1IiwgXAotICAgICAgICAgICIwLjAwNDMzNiwgMC4wMDQzNzMsIDAuMDA0Mzc2LCAwLjAwNDM3OSwgMC4wMDQzODEsIDAuMDA0MzgxLCAwLjAwNDM4IiwgXAotICAgICAgICAgICIwLjAwNDMyNCwgMC4wMDQzNjYsIDAuMDA0MzczLCAwLjAwNDM3NiwgMC4wMDQzNzcsIDAuMDA0Mzc4LCAwLjAwNDM3OCIsIFwKLSAgICAgICAgICAiMC4wMDQzMzksIDAuMDA0MzY1LCAwLjAwNDM3MiwgMC4wMDQzNzUsIDAuMDA0Mzc1LCAwLjAwNDM3NiwgMC4wMDQzNzciLCBcCi0gICAgICAgICAgIjAuMDA0MzcsIDAuMDA0MzY3LCAwLjAwNDM3MiwgMC4wMDQzNzQsIDAuMDA0Mzc2LCAwLjAwNDM3NywgMC4wMDQzNzciLCBcCi0gICAgICAgICAgIjAuMDA0NDA4LCAwLjAwNDM3MywgMC4wMDQzNzUsIDAuMDA0Mzc2LCAwLjAwNDM3NywgMC4wMDQzNzcsIDAuMDA0Mzc4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwNDY5LCAwLjAwMDQ4OCwgMC4wMDA0ODksIDAuMDAwNDksIDAuMDAwNDkxLCAwLjAwMDQ5MSwgMC4wMDA0OTEiLCBcCi0gICAgICAgICAgIjAuMDAwNDE3LCAwLjAwMDQ5MywgMC4wMDA1MDEsIDAuMDAwNTA1LCAwLjAwMDUwOCwgMC4wMDA1MDksIDAuMDAwNTEiLCBcCi0gICAgICAgICAgIjAuMDAwMzU2LCAwLjAwMDQ3NSwgMC4wMDA0OTEsIDAuMDAwNSwgMC4wMDA1MDUsIDAuMDAwNTA3LCAwLjAwMDUwOSIsIFwKLSAgICAgICAgICAiMC4wMDAzMTYsIDAuMDAwNDU3LCAwLjAwMDQ4LCAwLjAwMDQ5MiwgMC4wMDA0OTksIDAuMDAwNTAzLCAwLjAwMDUwNiIsIFwKLSAgICAgICAgICAiMC4wMDAyODgsIDAuMDAwNDQsIDAuMDAwNDY4LCAwLjAwMDQ4NCwgMC4wMDA0OTMsIDAuMDAwNDk4LCAwLjAwMDUwMiIsIFwKLSAgICAgICAgICAiMC4wMDAyNjQsIDAuMDAwNDE4LCAwLjAwMDQ1MiwgMC4wMDA0NzIsIDAuMDAwNDgzLCAwLjAwMDQ5LCAwLjAwMDQ5NSIsIFwKLSAgICAgICAgICAiMC4wMDAyNTUsIDAuMDAwNDAxLCAwLjAwMDQ0LCAwLjAwMDQ2MywgMC4wMDA0NzYsIDAuMDAwNDg0LCAwLjAwMDQ5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzQwNCwgMC4wMDM0MiwgMC4wMDM0MjEsIDAuMDAzNDIyLCAwLjAwMzQyMywgMC4wMDM0MjMsIDAuMDAzNDIzIiwgXAotICAgICAgICAgICIwLjAwMzM2MSwgMC4wMDM0MjMsIDAuMDAzNDI5LCAwLjAwMzQzMywgMC4wMDM0MzQsIDAuMDAzNDM2LCAwLjAwMzQzNyIsIFwKLSAgICAgICAgICAiMC4wMDMzMzgsIDAuMDAzNDEzLCAwLjAwMzQyNCwgMC4wMDM0MzEsIDAuMDAzNDM0LCAwLjAwMzQzNiwgMC4wMDM0MzgiLCBcCi0gICAgICAgICAgIjAuMDAzMzI2LCAwLjAwMzQwMywgMC4wMDM0MTcsIDAuMDAzNDI2LCAwLjAwMzQzMSwgMC4wMDM0MzMsIDAuMDAzNDM1IiwgXAotICAgICAgICAgICIwLjAwMzMzMywgMC4wMDMzOTgsIDAuMDAzNDE0LCAwLjAwMzQyMiwgMC4wMDM0MjcsIDAuMDAzNDMsIDAuMDAzNDMzIiwgXAotICAgICAgICAgICIwLjAwMzM2NywgMC4wMDMzOTcsIDAuMDAzNDA5LCAwLjAwMzQyLCAwLjAwMzQyNSwgMC4wMDM0MjksIDAuMDAzNDMxIiwgXAotICAgICAgICAgICIwLjAwMzQwNywgMC4wMDM0MDIsIDAuMDAzNDEsIDAuMDAzNDE5LCAwLjAwMzQyNiwgMC4wMDM0MjksIDAuMDAzNDMxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxMDUxLCAwLjAwMTA3MiwgMC4wMDEwNzQsIDAuMDAxMDc1LCAwLjAwMTA3NSwgMC4wMDEwNzUsIDAuMDAxMDc2IiwgXAotICAgICAgICAgICIwLjAwMDk3OSwgMC4wMDEwNTEsIDAuMDAxMDYxLCAwLjAwMTA2NiwgMC4wMDEwNjksIDAuMDAxMDcsIDAuMDAxMDcxIiwgXAotICAgICAgICAgICIwLjAwMDk0MSwgMC4wMDEwMzEsIDAuMDAxMDQ4LCAwLjAwMTA1NywgMC4wMDEwNjEsIDAuMDAxMDY0LCAwLjAwMTA2NiIsIFwKLSAgICAgICAgICAiMC4wMDA5MzksIDAuMDAxMDIxLCAwLjAwMTA0LCAwLjAwMTA1MSwgMC4wMDEwNTcsIDAuMDAxMDYxLCAwLjAwMTA2MyIsIFwKLSAgICAgICAgICAiMC4wMDA5NDUsIDAuMDAxMDA4LCAwLjAwMTAzLCAwLjAwMTA0MywgMC4wMDEwNTEsIDAuMDAxMDU1LCAwLjAwMTA1OSIsIFwKLSAgICAgICAgICAiMC4wMDA5ODEsIDAuMDAxMDAyLCAwLjAwMTAyMywgMC4wMDEwMzcsIDAuMDAxMDQ2LCAwLjAwMTA1MSwgMC4wMDEwNTUiLCBcCi0gICAgICAgICAgIjAuMDAxMDIzLCAwLjAwMTAwNCwgMC4wMDEwMjEsIDAuMDAxMDM0LCAwLjAwMTA0MywgMC4wMDEwNDgsIDAuMDAxMDUyIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IE9BSTIyMVgxICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChPQUkyMjFYMSkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjE3NjY1MTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQTApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDkxMzQ4NzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA5MTE0Njc7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwOTEzNDg3OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDQwOSwgMC4wMDA0MDksIDAuMDAwNDA5LCAwLjAwMDQwOSwgMC4wMDA0MDksIDAuMDAwNDA5LCAwLjAwMDQwOSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDQxLCAwLjAwMDQxLCAwLjAwMDQxLCAwLjAwMDQxLCAwLjAwMDQxLCAwLjAwMDQxLCAwLjAwMDQxIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihBMSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwOTE1NzAyOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDkxNTcwMjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA5MTIyMjU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNDA5LCAwLjAwMDQwOSwgMC4wMDA0MDksIDAuMDAwNDA5LCAwLjAwMDQwOSwgMC4wMDA0MDksIDAuMDAwNDA5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNDEsIDAuMDAwNDEsIDAuMDAwNDEsIDAuMDAwNDEsIDAuMDAwNDEsIDAuMDAwNDEsIDAuMDAwNDEiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA5NTI3NTE7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwOTUwMTU5OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDk1Mjc1MTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA0MDksIDAuMDAwNDA5LCAwLjAwMDQwOSwgMC4wMDA0MDksIDAuMDAwNDA5LCAwLjAwMDQwOSwgMC4wMDA0MDgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA0MSwgMC4wMDA0MSwgMC4wMDA0MSwgMC4wMDA0MSwgMC4wMDA0MSwgMC4wMDA0MSwgMC4wMDA0MSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQjEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDk0MjAzNTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA5NDIwMzU7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwOTM5MTUxOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDQwOSwgMC4wMDA0MDksIDAuMDAwNDA5LCAwLjAwMDQwOSwgMC4wMDA0MDksIDAuMDAwNDA5LCAwLjAwMDQwOSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDQxLCAwLjAwMDQxLCAwLjAwMDQxLCAwLjAwMDQxLCAwLjAwMDQxLCAwLjAwMDQxLCAwLjAwMDQxIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihDMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwOTQ0MjMyOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDk0MzYwODsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA5NDQyMzI7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMTQ3LCAwLjAwMDE0OCwgMC4wMDAxNDgsIDAuMDAwMTQ4LCAwLjAwMDE0OCwgMC4wMDAxNDgsIDAuMDAwMTQ3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNDY0LCAwLjAwMDQ2NCwgMC4wMDA0NjUsIDAuMDAwNDY1LCAwLjAwMDQ2NSwgMC4wMDA0NjUsIDAuMDAwNDY1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMDk3NTQ2NjsKLSAgICBmdW5jdGlvbiA6ICIoISgoKEEwK0ExKSAoQjArQjEpKSBDMCkpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTA4NDksIDAuMTU1MzkxLCAwLjQxOTE2OSwgMC42NTEzNDIsIDAuOTYxMTUyLCAxLjU3OTgsIDEuOTY2OTciLCBcCi0gICAgICAgICAgIjAuMTE3MTU2LCAwLjE2NDA3NywgMC40MjgwMzgsIDAuNjYwMzc4LCAwLjk2OTM5NCwgMS41ODkxLCAxLjk3NjAxIiwgXAotICAgICAgICAgICIwLjEyNzIyNCwgMC4xNzQxNiwgMC40MzgxMzMsIDAuNjcwNDY3LCAwLjk3OTk2NywgMS41OTg2LCAxLjk4NjM2IiwgXAotICAgICAgICAgICIwLjEzNzIyOCwgMC4xODQyMjMsIDAuNDQ4MzE4LCAwLjY4MDMwMywgMC45OTAyNjQsIDEuNjA5MDcsIDEuOTk1MDQiLCBcCi0gICAgICAgICAgIjAuMTQ3MjE2LCAwLjE5NDE5MywgMC40NTgyMDIsIDAuNjkwNDI1LCAxLjAwMDMyLCAxLjYxOTQ5LCAyLjAwNTU3IiwgXAotICAgICAgICAgICIwLjE2MzIwNiwgMC4yMTAzOTgsIDAuNDczMjEsIDAuNzA2ODA3LCAxLjAxNjI2LCAxLjYzNTk3LCAyLjAyMTciLCBcCi0gICAgICAgICAgIjAuMTc3MTcyLCAwLjIyNDE2MiwgMC40ODgxMTQsIDAuNzIwNjU2LCAxLjAzMDMxLCAxLjY0OTAxLCAyLjAzNTIiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjA0NTUsIDAuMjk4MzU5LCAwLjgzMDU2OCwgMS4yOTk4NCwgMS45MjUyNCwgMy4xNzY2NCwgMy45NTk1MSIsIFwKLSAgICAgICAgICAiMC4yMDQ1NTMsIDAuMjk4Mzc1LCAwLjgzMDU5NiwgMS4yOTk3MSwgMS45MjUyLCAzLjE3NjU5LCAzLjk1ODU2IiwgXAotICAgICAgICAgICIwLjIwNDc0OCwgMC4yOTg0MzQsIDAuODMwNDMsIDEuMjk5OTcsIDEuOTI1MiwgMy4xNzY5OSwgMy45NTkyNiIsIFwKLSAgICAgICAgICAiMC4yMDY0MjMsIDAuMjk4OTI3LCAwLjgzMDM3OCwgMS4yOTk2NCwgMS45MjU0MywgMy4xNzY3MiwgMy45NTk0MyIsIFwKLSAgICAgICAgICAiMC4yMDkxODEsIDAuMzAwNjQ1LCAwLjgzMDcxMSwgMS4yOTk5NywgMS45MjUxMiwgMy4xNzcxMywgMy45NTg5MyIsIFwKLSAgICAgICAgICAiMC4yMTU0MSwgMC4zMDUyNjgsIDAuODMwNTE4LCAxLjI5OTg0LCAxLjkyNTYsIDMuMTc2NiwgMy45NTg0NiIsIFwKLSAgICAgICAgICAiMC4yMjIyMTEsIDAuMzEwMzM3LCAwLjgzMTExNywgMS4yOTk2LCAxLjkyNTE2LCAzLjE3NjQ4LCAzLjk1OTQ0Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE2MzY5MywgMC4yMzE3MjksIDAuNjE2NDI4LCAwLjk1ODQ2MiwgMS40MTY2OCwgMi4zMzEwMSwgMi45MDE5NCIsIFwKLSAgICAgICAgICAiMC4xNzMwODgsIDAuMjQxMjUyLCAwLjYyNTYyMiwgMC45Njg2MDksIDEuNDI2OTIsIDIuMzQyMjEsIDIuOTEzMzIiLCBcCi0gICAgICAgICAgIjAuMTgzNDUsIDAuMjUxNTIyLCAwLjYzNjIwMSwgMC45NzkxMTgsIDEuNDM3MTQsIDIuMzUyMiwgMi45MjM4MyIsIFwKLSAgICAgICAgICAiMC4xOTI5MDEsIDAuMjYxMSwgMC42NDU3MTYsIDAuOTg4NTk2LCAxLjQ0NTk2LCAyLjM2MTY0LCAyLjkzMzE2IiwgXAotICAgICAgICAgICIwLjIwMjA4NywgMC4yNzAyNDksIDAuNjU0OTY3LCAwLjk5ODExOSwgMS40NTU2NiwgMi4zNzE0OSwgMi45NDI5NiIsIFwKLSAgICAgICAgICAiMC4yMTY1NiwgMC4yODQ2ODMsIDAuNjY5NzExLCAxLjAxMTg5LCAxLjQ3MDI3LCAyLjM4NTUzLCAyLjk1NjgzIiwgXAotICAgICAgICAgICIwLjIyOTAyOCwgMC4yOTcxNzEsIDAuNjgyMDc1LCAxLjAyNDc1LCAxLjQ4MjQyLCAyLjM5NzUyLCAyLjk2OTY0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI3Mjg1MywgMC40MDUzNCwgMS4xNjQ4OCwgMS44MzcwNSwgMi43MzI4MywgNC41MjI4MSwgNS42NDIxOCIsIFwKLSAgICAgICAgICAiMC4yNzI3MzgsIDAuNDA1MzIxLCAxLjE2NDkxLCAxLjgzNzQzLCAyLjczNDQ4LCA0LjUyNTUsIDUuNjQ0MzgiLCBcCi0gICAgICAgICAgIjAuMjcyODU5LCAwLjQwNTI1MiwgMS4xNjQ5MiwgMS44Mzc1NiwgMi43MzQ3NCwgNC41MjQ1NiwgNS42NDMxNSIsIFwKLSAgICAgICAgICAiMC4yNzI5MjQsIDAuNDA1Mjc3LCAxLjE2NTM4LCAxLjgzNzMxLCAyLjczMzIxLCA0LjUyNDM0LCA1LjY0NTM5IiwgXAotICAgICAgICAgICIwLjI3MzY1LCAwLjQwNTQxMiwgMS4xNjU1OCwgMS44MzczMywgMi43MzM5NywgNC41MjUxNiwgNS42NDM2MiIsIFwKLSAgICAgICAgICAiMC4yNzYwNywgMC40MDY4NCwgMS4xNjU0MywgMS44MzY4NSwgMi43MzI5OCwgNC41MjQ0OSwgNS42NDMyIiwgXAotICAgICAgICAgICIwLjI3OTIwNywgMC40MDg3NzcsIDEuMTY0OTMsIDEuODM3MTgsIDIuNzMzNjMsIDQuNTIzNjMsIDUuNjQzMDQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwNTE4LCAwLjE1MjEwMywgMC40MTU5MjEsIDAuNjQ4MzEyLCAwLjk1ODAwNSwgMS41NzczMSwgMS45NjMxMyIsIFwKLSAgICAgICAgICAiMC4xMTQxNTcsIDAuMTYxMDYsIDAuNDI0NzIyLCAwLjY1NzQ3NSwgMC45NjY5NDYsIDEuNTg2NDUsIDEuOTcyMjIiLCBcCi0gICAgICAgICAgIjAuMTI1NjUzLCAwLjE3MjU4LCAwLjQzNjQzMywgMC42Njg5NzUsIDAuOTc3OTY4LCAxLjU5OCwgMS45ODM4MiIsIFwKLSAgICAgICAgICAiMC4xMzY5NzcsIDAuMTgzOTA3LCAwLjQ0Nzg5NCwgMC42ODAwMTksIDAuOTg5NzYzLCAxLjYwODgsIDEuOTk1MTYiLCBcCi0gICAgICAgICAgIjAuMTQ4NTQyLCAwLjE5NTQyMSwgMC40NTkyNzIsIDAuNjkxNzAyLCAxLjAwMDc5LCAxLjYyMDM3LCAyLjAwNzUzIiwgXAotICAgICAgICAgICIwLjE2NzExOCwgMC4yMTM4OTMsIDAuNDc3ODIzLCAwLjcwOTk3MywgMS4wMTk0NiwgMS42Mzg1LCAyLjAyNTA0IiwgXAotICAgICAgICAgICIwLjE4MzgzOSwgMC4yMzAyNzQsIDAuNDkzOTA3LCAwLjcyNjEyNywgMS4wMzU1LCAxLjY1NDMyLCAyLjA0MTE4Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIwNDU1OSwgMC4yOTgzNzQsIDAuODMwNDkyLCAxLjI5OTksIDEuOTI1NjgsIDMuMTc3MjIsIDMuOTU5MDYiLCBcCi0gICAgICAgICAgIjAuMjA0NTQ2LCAwLjI5ODQsIDAuODMwMzc2LCAxLjI5OTkxLCAxLjkyNTI1LCAzLjE3NzEyLCAzLjk1OTUiLCBcCi0gICAgICAgICAgIjAuMjA0ODQ2LCAwLjI5ODM0MiwgMC44MzAzNTQsIDEuMjk5ODMsIDEuOTI1MjgsIDMuMTc2NzUsIDMuOTU5NTEiLCBcCi0gICAgICAgICAgIjAuMjA3NzQ3LCAwLjI5OTE2NSwgMC44MzA3NywgMS4yOTk2NywgMS45MjUyOSwgMy4xNzY3MSwgMy45NTg3OCIsIFwKLSAgICAgICAgICAiMC4yMTIzOTIsIDAuMzAxOTQ3LCAwLjgzMDQ5MSwgMS4yOTk2NiwgMS45MjUyMSwgMy4xNzY2NSwgMy45NTg1NCIsIFwKLSAgICAgICAgICAiMC4yMjIzNDUsIDAuMzA5MDIsIDAuODMwNDAzLCAxLjMsIDEuOTI1NzIsIDMuMTc2NTIsIDMuOTU5NDQiLCBcCi0gICAgICAgICAgIjAuMjMyMDM2LCAwLjMxNzIyMiwgMC44MzEwMTUsIDEuMjk5OTcsIDEuOTI1NjgsIDMuMTc3MDksIDMuOTU5MiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNTY4MTUsIDAuMjI0NzMzLCAwLjYwOTMsIDAuOTUyNDU1LCAxLjQwOTUzLCAyLjMyNDk2LCAyLjg5NjE1IiwgXAotICAgICAgICAgICIwLjE2NjUwOSwgMC4yMzQ1MSwgMC42MTkwOTMsIDAuOTYxNzg0LCAxLjQxOTUyLCAyLjMzNTEsIDIuOTA2NzMiLCBcCi0gICAgICAgICAgIjAuMTc2NjY5LCAwLjI0NDc4OCwgMC42Mjk1MDQsIDAuOTcyMzI1LCAxLjQzMDg0LCAyLjM0NTU0LCAyLjkxNzIxIiwgXAotICAgICAgICAgICIwLjE4NTk0NSwgMC4yNTQyMjUsIDAuNjM4OTg0LCAwLjk4MTgwMiwgMS40MzkyMywgMi4zNTQ4NSwgMi45MjY0MiIsIFwKLSAgICAgICAgICAiMC4xOTUwNjIsIDAuMjYzMzI3LCAwLjY0ODA5OSwgMC45OTEzOTEsIDEuNDQ4ODcsIDIuMzY0NzQsIDIuOTM2MjMiLCBcCi0gICAgICAgICAgIjAuMjA5Mzk5LCAwLjI3NzU3MSwgMC42NjI3OSwgMS4wMDUwOSwgMS40NjM0NCwgMi4zNzg3NSwgMi45NTA2MyIsIFwKLSAgICAgICAgICAiMC4yMjE3NjYsIDAuMjg5OTg4LCAwLjY3NTE3MSwgMS4wMTc5NSwgMS40NzUyNSwgMi4zOTE4LCAyLjk2MzI5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI2NDcxMywgMC4zOTczNTcsIDEuMTU3MDMsIDEuODI5MTQsIDIuNzMzMSwgNC41MzE3NiwgNS42NDIzOCIsIFwKLSAgICAgICAgICAiMC4yNjQ3NjUsIDAuMzk3MTI2LCAxLjE1NzIxLCAxLjgzNDE4LCAyLjczMjc4LCA0LjUzMTM4LCA1LjY0MjciLCBcCi0gICAgICAgICAgIjAuMjY0ODk0LCAwLjM5NzEyMSwgMS4xNjA0LCAxLjgzNDU3LCAyLjcyNTA1LCA0LjUxOTA4LCA1LjYzODQ2IiwgXAotICAgICAgICAgICIwLjI2NDgzNSwgMC4zOTcxMTEsIDEuMTU3ODgsIDEuODMxMTksIDIuNzI3MjgsIDQuNTMwODcsIDUuNjQxOSIsIFwKLSAgICAgICAgICAiMC4yNjU3NjQsIDAuMzk3MjE5LCAxLjE1OTM2LCAxLjgyOTE2LCAyLjcyNjI1LCA0LjUxOTAxLCA1LjYzNzI4IiwgXAotICAgICAgICAgICIwLjI2ODIwOSwgMC4zOTg4MTcsIDEuMTU3NTMsIDEuODMzNTQsIDIuNzMzNjMsIDQuNTMxMjUsIDUuNjM1NTEiLCBcCi0gICAgICAgICAgIjAuMjcxNzQyLCAwLjQwMTA0NCwgMS4xNjAwNiwgMS44MzQ2NCwgMi43MzE4NCwgNC41MTk2OCwgNS42NDMwMiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTAyNDQ5LCAwLjE0OTM3OCwgMC40MTQyNzgsIDAuNjQ3OTQ3LCAwLjk1OTI5LCAxLjU4MTg3LCAxLjk3MTAzIiwgXAotICAgICAgICAgICIwLjExMTIzMiwgMC4xNTgxODMsIDAuNDIzMTM2LCAwLjY1Njc3OSwgMC45NjgxNDUsIDEuNTkwNzQsIDEuOTc5OTUiLCBcCi0gICAgICAgICAgIjAuMTIxMjYxLCAwLjE2ODI0MiwgMC40MzMzMTMsIDAuNjY2OTI1LCAwLjk3ODQzOCwgMS42MDExOCwgMS45ODk5MiIsIFwKLSAgICAgICAgICAiMC4xMzEzMDIsIDAuMTc4MjMzLCAwLjQ0MzQzOSwgMC42NzcwNjcsIDAuOTg4NTk4LCAxLjYxMTMxLCAyLjAwMDA5IiwgXAotICAgICAgICAgICIwLjE0MTIwNywgMC4xODgxNzEsIDAuNDUzMzg4LCAwLjY4NzA2NywgMC45OTg1MTgsIDEuNjIxMjEsIDIuMDEwMDIiLCBcCi0gICAgICAgICAgIjAuMTU3MDQ2LCAwLjIwNDQxNSwgMC40Njg5MTcsIDAuNzAzMjg1LCAxLjAxNDg0LCAxLjYzNzY0LCAyLjAyNjUyIiwgXAotICAgICAgICAgICIwLjE3MDk0OSwgMC4yMTg0NzcsIDAuNDgzNjc1LCAwLjcxNzU3NCwgMS4wMjkwNywgMS42NTE4NCwgMi4wNDEwMSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xOTgyNzIsIDAuMjkyNjc0LCAwLjgyNzYzNSwgMS4yOTk4MiwgMS45Mjk2OCwgMy4xODg1MiwgMy45NzcwMiIsIFwKLSAgICAgICAgICAiMC4xOTgyNSwgMC4yOTI2NjMsIDAuODI3OTA3LCAxLjI5OTk2LCAxLjkyOTYxLCAzLjE4ODY1LCAzLjk3NzExIiwgXAotICAgICAgICAgICIwLjE5ODU1OCwgMC4yOTI2MjcsIDAuODI3NzA2LCAxLjI5OTkyLCAxLjkyOTc0LCAzLjE4ODY0LCAzLjk3NjciLCBcCi0gICAgICAgICAgIjAuMjAwMzg5LCAwLjI5MzI2NiwgMC44Mjc2NTYsIDEuMjk5OTQsIDEuOTI5NywgMy4xODkxOSwgMy45NzY4NSIsIFwKLSAgICAgICAgICAiMC4yMDMzNzYsIDAuMjk1MDQ3LCAwLjgyNzYyLCAxLjI5OTgsIDEuOTI5NDMsIDMuMTg5MTgsIDMuOTc2NjYiLCBcCi0gICAgICAgICAgIjAuMjA5OTM3LCAwLjI5OTk2LCAwLjgyNzYxNiwgMS4yOTk4NiwgMS45MjkyNSwgMy4xODg3OCwgMy45NzU4NCIsIFwKLSAgICAgICAgICAiMC4yMTY5MzgsIDAuMzA1NTgzLCAwLjgyODUxMSwgMS4yOTk2NSwgMS45MjkzMiwgMy4xODkyMiwgMy45NzUzNCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNTc0NjcsIDAuMjI1NDcyLCAwLjYxMDE5LCAwLjk0OTQ0NSwgMS40MDA5LCAyLjMwNDk5LCAyLjg2OTM5IiwgXAotICAgICAgICAgICIwLjE2NjQ1NywgMC4yMzQ1MTUsIDAuNjE5MDQsIDAuOTU4MDExLCAxLjQwOTYxLCAyLjMxMzAxLCAyLjg3NzY0IiwgXAotICAgICAgICAgICIwLjE3NzI3NSwgMC4yNDUzNTUsIDAuNjMwMDQsIDAuOTY5MDk1LCAxLjQyMDk3LCAyLjMyNSwgMi44ODg5OSIsIFwKLSAgICAgICAgICAiMC4xODc5MTEsIDAuMjU2MTE1LCAwLjY0MDU5OCwgMC45Nzk4NTcsIDEuNDMxOTYsIDIuMzM2NSwgMi45MDAzNiIsIFwKLSAgICAgICAgICAiMC4xOTg2OTUsIDAuMjY2NzI1LCAwLjY1MTU5NCwgMC45OTA0MjUsIDEuNDQyNDEsIDIuMzQ2NDIsIDIuOTEwNjciLCBcCi0gICAgICAgICAgIjAuMjE1NzAxLCAwLjI4MzkyLCAwLjY2ODg2MSwgMS4wMDc1MSwgMS40NTk3MiwgMi4zNjM1LCAyLjkyNzg5IiwgXAotICAgICAgICAgICIwLjIzMDU4MywgMC4yOTg2NDIsIDAuNjgzOCwgMS4wMjMwNSwgMS40NzUyMywgMi4zNzk1MSwgMi45NDMyOCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yNzI5NDgsIDAuNDA1NDQ5LCAxLjE1NTc1LCAxLjgxODUsIDIuNjk5OTMsIDQuNDY0NzksIDUuNTY2NjIiLCBcCi0gICAgICAgICAgIjAuMjcyOTY0LCAwLjQwNTE3NywgMS4xNTU5OCwgMS44MTgwOCwgMi43MDAxOCwgNC40NjMwNywgNS41NjYwMiIsIFwKLSAgICAgICAgICAiMC4yNzI5NjIsIDAuNDA1MjU2LCAxLjE1NTg5LCAxLjgxODAyLCAyLjY5OTYxLCA0LjQ2NDYsIDUuNTY3MzYiLCBcCi0gICAgICAgICAgIjAuMjcyOTk4LCAwLjQwNTI2OCwgMS4xNTYwOSwgMS44MTc5LCAyLjcwMDA3LCA0LjQ2NDQ3LCA1LjU2NjYxIiwgXAotICAgICAgICAgICIwLjI3NDYzNSwgMC40MDU2MjgsIDEuMTU1NzYsIDEuODE3NzEsIDIuNjk5MzksIDQuNDY0MzUsIDUuNTY4NjMiLCBcCi0gICAgICAgICAgIjAuMjc4NzIzLCAwLjQwNzY4NiwgMS4xNTU3NiwgMS44MTc1OCwgMi42OTk1MywgNC40NjQyNywgNS41Njg1NSIsIFwKLSAgICAgICAgICAiMC4yODM5ODYsIDAuNDEwOTM5LCAxLjE1NTc1LCAxLjgxNzk2LCAyLjcwMDc5LCA0LjQ2NTA0LCA1LjU2NjEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5OTA3OCwgMC4xNDU4OTksIDAuNDEwOTAxLCAwLjY0NDQ5LCAwLjk1NjAyNCwgMS41Nzg3MSwgMS45Njc4MiIsIFwKLSAgICAgICAgICAiMC4xMDgwNzcsIDAuMTU0OTkyLCAwLjQyMDAxNywgMC42NTM2MzgsIDAuOTY1MDM5LCAxLjU4NzY0LCAxLjk3Njg5IiwgXAotICAgICAgICAgICIwLjExOTM0MywgMC4xNjYyNTIsIDAuNDMxMjM1LCAwLjY2NDkxMSwgMC45NzYzMTQsIDEuNTk4OTYsIDEuOTg4MTEiLCBcCi0gICAgICAgICAgIjAuMTMwODA2LCAwLjE3NzY4NCwgMC40NDI3MiwgMC42NzYzMzIsIDAuOTg3ODI3LCAxLjYxMDUxLCAxLjk5OTcxIiwgXAotICAgICAgICAgICIwLjE0MjM0NywgMC4xODkyNjcsIDAuNDU0MjA5LCAwLjY4Nzg4NCwgMC45OTkzMywgMS42MjE5NiwgMi4wMTEzOSIsIFwKLSAgICAgICAgICAiMC4xNjA4ODksIDAuMjA3Njg1LCAwLjQ3MjY1MSwgMC43MDYyOTMsIDEuMDE3NzQsIDEuNjQwMzIsIDIuMDI5NiIsIFwKLSAgICAgICAgICAiMC4xNzc1NTQsIDAuMjIzODQxLCAwLjQ4ODcxNCwgMC43MjIzOTksIDEuMDMzNzcsIDEuNjU2MzksIDIuMDQ1MzYiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTk4MjYsIDAuMjkyNTgxLCAwLjgyNzYxNSwgMS4yOTk4MiwgMS45Mjk3NCwgMy4xODg3MywgMy45NzY1OCIsIFwKLSAgICAgICAgICAiMC4xOTgxODYsIDAuMjkyNjA5LCAwLjgyNzc3NywgMS4zMDAwNCwgMS45MjkzMSwgMy4xODg2LCAzLjk3NzA4IiwgXAotICAgICAgICAgICIwLjE5ODgwOCwgMC4yOTI2MDUsIDAuODI3ODA2LCAxLjMwMDA3LCAxLjkyOTU1LCAzLjE4ODc5LCAzLjk3NTU3IiwgXAotICAgICAgICAgICIwLjIwMjA5NSwgMC4yOTM2NjUsIDAuODI3NjA4LCAxLjI5OTc0LCAxLjkyOTY3LCAzLjE4OTMzLCAzLjk3NjU1IiwgXAotICAgICAgICAgICIwLjIwNzE3NCwgMC4yOTY3MjEsIDAuODI3ODM4LCAxLjI5OTcsIDEuOTI5NDgsIDMuMTg5MjUsIDMuOTc2NjUiLCBcCi0gICAgICAgICAgIjAuMjE3NTkzLCAwLjMwNDIzMSwgMC44Mjc4NTIsIDEuMjk5OTMsIDEuOTI5NjcsIDMuMTg5NDIsIDMuOTc2NDQiLCBcCi0gICAgICAgICAgIjAuMjI3NTY2LCAwLjMxMjYyOSwgMC44Mjg0MzksIDEuMjk5NzEsIDEuOTI5NTgsIDMuMTg4NywgMy45NzY0NSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNTI0ODcsIDAuMjIxMjc3LCAwLjYxMDcxNiwgMC45NTM2MTUsIDEuNDExNywgMi4zMjc4OCwgMi44OTkwOCIsIFwKLSAgICAgICAgICAiMC4xNjE1NjksIDAuMjMwNDk1LCAwLjYyMDE0LCAwLjk2MzcxMywgMS40MjEwMSwgMi4zMzY2NywgMi45MDg0NiIsIFwKLSAgICAgICAgICAiMC4xNzIxMjQsIDAuMjQxMTU3LCAwLjYzMDYxNCwgMC45NzQwMjUsIDEuNDMxODMsIDIuMzQ3NTMsIDIuOTE4NDQiLCBcCi0gICAgICAgICAgIjAuMTgyNTg5LCAwLjI1MTY1NywgMC42NDEyMzEsIDAuOTg0OTE1LCAxLjQ0MzA2LCAyLjM1ODg3LCAyLjkzMDI3IiwgXAotICAgICAgICAgICIwLjE5MzEyNywgMC4yNjIxNzEsIDAuNjUxOTUyLCAwLjk5NTM2OCwgMS40NTM1NSwgMi4zNjg4NCwgMi45NDAyOSIsIFwKLSAgICAgICAgICAiMC4yMDk4OTUsIDAuMjc5MTUsIDAuNjY5MTc4LCAxLjAxMjM3LCAxLjQ3MDEyLCAyLjM4NjIyLCAyLjk1NzY0IiwgXAotICAgICAgICAgICIwLjIyNDQwOSwgMC4yOTM2OTgsIDAuNjgzODkxLCAxLjAyNzU5LCAxLjQ4NTc2LCAyLjQwMTUsIDIuOTcyNDUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjY4OTIsIDAuNDAzNDMxLCAxLjE2NTQsIDEuODM2OTUsIDIuNzM0MDQsIDQuNTI0NCwgNS42NDM4MSIsIFwKLSAgICAgICAgICAiMC4yNjg3MzEsIDAuNDAzMzY5LCAxLjE2NDkyLCAxLjgzNzU4LCAyLjczMjc4LCA0LjUzMTk5LCA1LjY0MzYyIiwgXAotICAgICAgICAgICIwLjI2ODczNiwgMC40MDMyMTEsIDEuMTY1NTUsIDEuODM3MjksIDIuNzMyODksIDQuNTMyMDIsIDUuNjQyNjEiLCBcCi0gICAgICAgICAgIjAuMjY5MTI4LCAwLjQwMzM0MywgMS4xNjU2OSwgMS44Mzc0NSwgMi43MzM5NiwgNC41MjY1OCwgNS42NDM3MSIsIFwKLSAgICAgICAgICAiMC4yNzA0ODMsIDAuNDAzNDc0LCAxLjE2NTc1LCAxLjgzNzAyLCAyLjczMzU2LCA0LjUzMTEsIDUuNjQ1OSIsIFwKLSAgICAgICAgICAiMC4yNzUwMzEsIDAuNDA1NzM4LCAxLjE2NDkxLCAxLjgzNzE2LCAyLjczMzMzLCA0LjUzMTc3LCA1LjY0Mjk0IiwgXAotICAgICAgICAgICIwLjI4MDEwOCwgMC40MDkyNzQsIDEuMTY0OTQsIDEuODM3MjIsIDIuNzM0NywgNC41MzE5NywgNS42NDM2MyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDUwNTM2LCAwLjA3NTEzLCAwLjIxNDM3OCwgMC4zMzcxNjcsIDAuNTAwOTM0LCAwLjgyODM2MywgMS4wMzMwMSIsIFwKLSAgICAgICAgICAiMC4wNjA0NzEsIDAuMDg1MTI4LCAwLjIyNDM2LCAwLjM0NzEyLCAwLjUxMDg2LCAwLjgzODI5OSwgMS4wNDMiLCBcCi0gICAgICAgICAgIjAuMDczMTQsIDAuMDk3NTQ0LCAwLjIzNjczNywgMC4zNTg3NjYsIDAuNTIyNTA1LCAwLjg0OTk0MSwgMS4wNTQ2MSIsIFwKLSAgICAgICAgICAiMC4wODU4MzYsIDAuMTEwMjk0LCAwLjI0OTMyNywgMC4zNzIwMTEsIDAuNTM0Njc1LCAwLjg2MjA5LCAxLjA2Njg3IiwgXAotICAgICAgICAgICIwLjA5ODQ2LCAwLjEyMzAyOCwgMC4yNjIwNSwgMC4zODQ1NTcsIDAuNTQ4MjYyLCAwLjg3NDQwNiwgMS4wNzkwNiIsIFwKLSAgICAgICAgICAiMC4xMTY3NCwgMC4xNDM1NDcsIDAuMjgxNzIxLCAwLjQwNDc2MywgMC41NjgyOTMsIDAuODk0MDUyLCAxLjA5ODcxIiwgXAotICAgICAgICAgICIwLjEzMDYxOCwgMC4xNjA2MDQsIDAuMjk5MjU0LCAwLjQyMjQ4MSwgMC41ODU5MDMsIDAuOTExMTA4LCAxLjExNTgyIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwNjc4OSwgMC4xNTcxMDIsIDAuNDQyNTc1LCAwLjY5NDg1NiwgMS4wMzA4MSwgMS43MDM0NiwgMi4xMjQ1NiIsIFwKLSAgICAgICAgICAiMC4xMDY5OTYsIDAuMTU3MTA3LCAwLjQ0MjU5OCwgMC42OTQ2NTQsIDEuMDMwODQsIDEuNzAzODgsIDIuMTIzNTEiLCBcCi0gICAgICAgICAgIjAuMTEwNzkxLCAwLjE1ODc4MSwgMC40NDI2NTUsIDAuNjk0NjY2LCAxLjAzMTExLCAxLjcwMzMyLCAyLjEyMzUxIiwgXAotICAgICAgICAgICIwLjExNzA0OCwgMC4xNjMxNTQsIDAuNDQyNTgxLCAwLjY5NDgyNSwgMS4wMzA4NSwgMS43MDM5NCwgMi4xMjQ0NiIsIFwKLSAgICAgICAgICAiMC4xMjQ1OTMsIDAuMTY5MTI0LCAwLjQ0MzI0NiwgMC42OTQ4MTgsIDEuMDMwODUsIDEuNzAzMzYsIDIuMTIzOTIiLCBcCi0gICAgICAgICAgIjAuMTM4NDY5LCAwLjE4MDgxOCwgMC40NDcwMDEsIDAuNjk0OTMxLCAxLjAzMDg0LCAxLjcwMzY4LCAyLjEyNDA0IiwgXAotICAgICAgICAgICIwLjE1MTU2NSwgMC4xOTIyMTQsIDAuNDUyNTYyLCAwLjY5Njg1NywgMS4wMzA3NSwgMS43MDM4LCAyLjEyNDU1Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE0ODA3MiwgMC4yMTYxNzIsIDAuNjAwNzA2LCAwLjk0MzU3MSwgMS40MDE4OSwgMi4zMTYzMiwgMi44ODg0NSIsIFwKLSAgICAgICAgICAiMC4xNTY2NzIsIDAuMjI0ODIxLCAwLjYwOTM1LCAwLjk1MjE2MiwgMS40MDk4OSwgMi4zMjUwNiwgMi44OTY5MiIsIFwKLSAgICAgICAgICAiMC4xNjc2NjYsIDAuMjM1ODM4LCAwLjYyMDU0MSwgMC45NjM2NzUsIDEuNDIxOTMsIDIuMzM3NTcsIDIuOTA5MDEiLCBcCi0gICAgICAgICAgIjAuMTc4MjU1LCAwLjI0NTI0MSwgMC42MzEyODEsIDAuOTc0MjE3LCAxLjQzMTkyLCAyLjM0Njg2LCAyLjkxOTEiLCBcCi0gICAgICAgICAgIjAuMTg5MTgzLCAwLjI1NzM1MSwgMC42NDI0NDUsIDAuOTg1MjU3LCAxLjQ0MzAyLCAyLjM1ODg3LCAyLjkzMDY0IiwgXAotICAgICAgICAgICIwLjIwNjg4OSwgMC4yNzQ4NjUsIDAuNjU5NjgyLCAxLjAwMjc4LCAxLjQ2MTEyLCAyLjM3NzEsIDIuOTQ3NjMiLCBcCi0gICAgICAgICAgIjAuMjIyNjU0LCAwLjI5MDQyLCAwLjY3NTIyLCAxLjAxODMsIDEuNDc1OTIsIDIuMzkxMDksIDIuOTYzMzQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjcyNzQ1LCAwLjQwNTM2OSwgMS4xNjU0MywgMS44Mzc0NiwgMi43MzQ1MSwgNC41MzA5NiwgNS42NDM0MiIsIFwKLSAgICAgICAgICAiMC4yNzI3MTIsIDAuNDA1MjQ4LCAxLjE2NTgzLCAxLjgzNjk4LCAyLjczMzExLCA0LjUyMzQ0LCA1LjY0NDMyIiwgXAotICAgICAgICAgICIwLjI3MjY4NSwgMC40MDUyNjIsIDEuMTY0OTIsIDEuODM3MiwgMi43MzQyNSwgNC41MjczOSwgNS42NDM4NyIsIFwKLSAgICAgICAgICAiMC4yNzMxNjMsIDAuNDA1MDI4LCAxLjE2NDk1LCAxLjgzNzA0LCAyLjczMzMsIDQuNTMwMjcsIDUuNjQ1MzYiLCBcCi0gICAgICAgICAgIjAuMjc1Njk3LCAwLjQwNTU1OSwgMS4xNjQ5OSwgMS44MzcxMiwgMi43MzM3NiwgNC41MjUyMiwgNS42NDUwNiIsIFwKLSAgICAgICAgICAiMC4yODIzOTgsIDAuNDA5MzU2LCAxLjE2NTUyLCAxLjgzNzA1LCAyLjczNDc2LCA0LjUyNDM0LCA1LjY0MjgyIiwgXAotICAgICAgICAgICIwLjI5MDQ1MywgMC40MTQ2NzksIDEuMTY0OTMsIDEuODM3MTMsIDIuNzMyNDIsIDQuNTI5OTIsIDUuNjQ0MjMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0MjgxLCAwLjAwNDI4LCAwLjAwNDI4LCAwLjAwNDI3OSwgMC4wMDQyNzcsIDAuMDA0Mjc1LCAwLjAwNDI3MyIsIFwKLSAgICAgICAgICAiMC4wMDQyNjMsIDAuMDA0MjY1LCAwLjAwNDI2NCwgMC4wMDQyNjMsIDAuMDA0MjYzLCAwLjAwNDI1OSwgMC4wMDQyNTgiLCBcCi0gICAgICAgICAgIjAuMDA0MjU3LCAwLjAwNDI1OSwgMC4wMDQyNiwgMC4wMDQyNiwgMC4wMDQyNTgsIDAuMDA0MjU2LCAwLjAwNDI1NSIsIFwKLSAgICAgICAgICAiMC4wMDQyNTQsIDAuMDA0MjU2LCAwLjAwNDI1OCwgMC4wMDQyNTgsIDAuMDA0MjU3LCAwLjAwNDI1NCwgMC4wMDQyNTMiLCBcCi0gICAgICAgICAgIjAuMDA0MjUsIDAuMDA0MjU0LCAwLjAwNDI1NywgMC4wMDQyNTcsIDAuMDA0MjU2LCAwLjAwNDI1NCwgMC4wMDQyNTIiLCBcCi0gICAgICAgICAgIjAuMDA0MjQ4LCAwLjAwNDI1MiwgMC4wMDQyNDcsIDAuMDA0MjU3LCAwLjAwNDI1NiwgMC4wMDQyNTQsIDAuMDA0MjUyIiwgXAotICAgICAgICAgICIwLjAwNDI1LCAwLjAwNDI1MywgMC4wMDQyNTUsIDAuMDA0MjU2LCAwLjAwNDI1NSwgMC4wMDQyNTIsIDAuMDA0MjUyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxMjUxLCAwLjAwMTI1MiwgMC4wMDEyNTIsIDAuMDAxMjUyLCAwLjAwMTI1MSwgMC4wMDEyNDksIDAuMDAxMjQ5IiwgXAotICAgICAgICAgICIwLjAwMTIzMiwgMC4wMDEyMzUsIDAuMDAxMjM4LCAwLjAwMTIzOSwgMC4wMDEyMzgsIDAuMDAxMjM4LCAwLjAwMTIzNyIsIFwKLSAgICAgICAgICAiMC4wMDEyMjEsIDAuMDAxMjI2LCAwLjAwMTIzNCwgMC4wMDEyMzQsIDAuMDAxMjM1LCAwLjAwMTIzNSwgMC4wMDEyMzQiLCBcCi0gICAgICAgICAgIjAuMDAxMjE0LCAwLjAwMTIyLCAwLjAwMTIzLCAwLjAwMTIzMywgMC4wMDEyMzQsIDAuMDAxMjM0LCAwLjAwMTIzNCIsIFwKLSAgICAgICAgICAiMC4wMDEyMDgsIDAuMDAxMjE1LCAwLjAwMTIyOCwgMC4wMDEyMzEsIDAuMDAxMjMyLCAwLjAwMTIzMiwgMC4wMDEyMzMiLCBcCi0gICAgICAgICAgIjAuMDAxMTk5LCAwLjAwMTIwOCwgMC4wMDEyMjQsIDAuMDAxMjI4LCAwLjAwMTIzLCAwLjAwMTIzMSwgMC4wMDEyMzEiLCBcCi0gICAgICAgICAgIjAuMDAxMTk0LCAwLjAwMTIwMywgMC4wMDEyMjEsIDAuMDAxMjI2LCAwLjAwMTIyOSwgMC4wMDEyMywgMC4wMDEyMzEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzOTQzLCAwLjAwMzk0MywgMC4wMDM5NDIsIDAuMDAzOTQxLCAwLjAwMzk0LCAwLjAwMzkzNywgMC4wMDM5MzUiLCBcCi0gICAgICAgICAgIjAuMDAzOTIzLCAwLjAwMzkyNSwgMC4wMDM5MjYsIDAuMDAzOTI2LCAwLjAwMzkyNCwgMC4wMDM5MjMsIDAuMDAzOTIiLCBcCi0gICAgICAgICAgIjAuMDAzOTE0LCAwLjAwMzkxNywgMC4wMDM5MiwgMC4wMDM5MjEsIDAuMDAzOTIsIDAuMDAzOTE5LCAwLjAwMzkxNyIsIFwKLSAgICAgICAgICAiMC4wMDM5MTEsIDAuMDAzOTE1LCAwLjAwMzkxOSwgMC4wMDM5MTksIDAuMDAzOTE5LCAwLjAwMzkxNywgMC4wMDM5MTQiLCBcCi0gICAgICAgICAgIjAuMDAzOTExLCAwLjAwMzkxMywgMC4wMDM5MTgsIDAuMDAzOTE4LCAwLjAwMzkxOCwgMC4wMDM5MTcsIDAuMDAzOTE0IiwgXAotICAgICAgICAgICIwLjAwMzkxNSwgMC4wMDM5MTcsIDAuMDAzOTE4LCAwLjAwMzkxOCwgMC4wMDM5MTgsIDAuMDAzOTE2LCAwLjAwMzkxNCIsIFwKLSAgICAgICAgICAiMC4wMDM5MjYsIDAuMDAzOTIyLCAwLjAwMzkyLCAwLjAwMzkxOSwgMC4wMDM5MTksIDAuMDAzOTE1LCAwLjAwMzkxMyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDk0NiwgMC4wMDA5NDgsIDAuMDAwOTQ5LCAwLjAwMDk1MSwgMC4wMDA5NTEsIDAuMDAwOTUxLCAwLjAwMDk1IiwgXAotICAgICAgICAgICIwLjAwMDkzNywgMC4wMDA5NDYsIDAuMDAwOTU3LCAwLjAwMDk1OSwgMC4wMDA5NjEsIDAuMDAwOTYxLCAwLjAwMDk2MSIsIFwKLSAgICAgICAgICAiMC4wMDA5MTgsIDAuMDAwOTMxLCAwLjAwMDk1MywgMC4wMDA5NTcsIDAuMDAwOTYsIDAuMDAwOTYxLCAwLjAwMDk2MSIsIFwKLSAgICAgICAgICAiMC4wMDA5LCAwLjAwMDkxNywgMC4wMDA5NDcsIDAuMDAwOTUzLCAwLjAwMDk1NywgMC4wMDA5NiwgMC4wMDA5NjEiLCBcCi0gICAgICAgICAgIjAuMDAwODg2LCAwLjAwMDkwNSwgMC4wMDA5NDEsIDAuMDAwOTUsIDAuMDAwOTU0LCAwLjAwMDk1OCwgMC4wMDA5NiIsIFwKLSAgICAgICAgICAiMC4wMDA4NjksIDAuMDAwODksIDAuMDAwOTMyLCAwLjAwMDk0MywgMC4wMDA5NSwgMC4wMDA5NTYsIDAuMDAwOTU3IiwgXAotICAgICAgICAgICIwLjAwMDg1OCwgMC4wMDA4NzgsIDAuMDAwOTI1LCAwLjAwMDkzOCwgMC4wMDA5NDcsIDAuMDAwOTU0LCAwLjAwMDk1NSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDMzMSwgMC4wMDMzMSwgMC4wMDMzMSwgMC4wMDMzMSwgMC4wMDMzMDksIDAuMDAzMzA4LCAwLjAwMzMwNyIsIFwKLSAgICAgICAgICAiMC4wMDMzMDUsIDAuMDAzMzA3LCAwLjAwMzMxLCAwLjAwMzMxLCAwLjAwMzMxLCAwLjAwMzMwOSwgMC4wMDMzMDgiLCBcCi0gICAgICAgICAgIjAuMDAzMjk3LCAwLjAwMzMwMSwgMC4wMDMzMDgsIDAuMDAzMzA5LCAwLjAwMzMwOSwgMC4wMDMzMDgsIDAuMDAzMzA4IiwgXAotICAgICAgICAgICIwLjAwMzI5LCAwLjAwMzI5NywgMC4wMDMzMDYsIDAuMDAzMzA3LCAwLjAwMzMwOSwgMC4wMDMzMDgsIDAuMDAzMzA5IiwgXAotICAgICAgICAgICIwLjAwMzI4NSwgMC4wMDMyOTMsIDAuMDAzMzA0LCAwLjAwMzMwNiwgMC4wMDMzMDcsIDAuMDAzMzA3LCAwLjAwMzMwNyIsIFwKLSAgICAgICAgICAiMC4wMDMyOCwgMC4wMDMyODgsIDAuMDAzMjk5LCAwLjAwMzMwNSwgMC4wMDMzMDYsIDAuMDAzMzA3LCAwLjAwMzMwNiIsIFwKLSAgICAgICAgICAiMC4wMDMyNzgsIDAuMDAzMjg2LCAwLjAwMzMsIDAuMDAzMzA0LCAwLjAwMzMwNiwgMC4wMDMzMDcsIDAuMDAzMzA2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxMjUyLCAwLjAwMTI1MywgMC4wMDEyNTMsIDAuMDAxMjUyLCAwLjAwMTI1MiwgMC4wMDEyNSwgMC4wMDEyNSIsIFwKLSAgICAgICAgICAiMC4wMDEyMzIsIDAuMDAxMjM2LCAwLjAwMTIzOSwgMC4wMDEyNCwgMC4wMDEyMzksIDAuMDAxMjM4LCAwLjAwMTIzOCIsIFwKLSAgICAgICAgICAiMC4wMDEyMjIsIDAuMDAxMjI3LCAwLjAwMTIzNSwgMC4wMDEyMzYsIDAuMDAxMjM2LCAwLjAwMTIzNiwgMC4wMDEyMzUiLCBcCi0gICAgICAgICAgIjAuMDAxMjE0LCAwLjAwMTIyMSwgMC4wMDEyMzIsIDAuMDAxMjMzLCAwLjAwMTIzNSwgMC4wMDEyMzUsIDAuMDAxMjM0IiwgXAotICAgICAgICAgICIwLjAwMTIwOCwgMC4wMDEyMTUsIDAuMDAxMjI5LCAwLjAwMTIzMiwgMC4wMDEyMzMsIDAuMDAxMjMzLCAwLjAwMTIzMyIsIFwKLSAgICAgICAgICAiMC4wMDEyMDEsIDAuMDAxMjA5LCAwLjAwMTIyNSwgMC4wMDEyMjksIDAuMDAxMjMxLCAwLjAwMTIzMiwgMC4wMDEyMzIiLCBcCi0gICAgICAgICAgIjAuMDAxMTk3LCAwLjAwMTIwNSwgMC4wMDEyMjMsIDAuMDAxMjI4LCAwLjAwMTIzLCAwLjAwMTIzMSwgMC4wMDEyMzEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyOTcyLCAwLjAwMjk3MiwgMC4wMDI5NzMsIDAuMDAyOTcyLCAwLjAwMjk3MiwgMC4wMDI5NywgMC4wMDI5NjkiLCBcCi0gICAgICAgICAgIjAuMDAyOTYzLCAwLjAwMjk2NywgMC4wMDI5NzEsIDAuMDAyOTcyLCAwLjAwMjk3MSwgMC4wMDI5NywgMC4wMDI5NyIsIFwKLSAgICAgICAgICAiMC4wMDI5NTUsIDAuMDAyOTYxLCAwLjAwMjk2OSwgMC4wMDI5NywgMC4wMDI5NywgMC4wMDI5NywgMC4wMDI5NjkiLCBcCi0gICAgICAgICAgIjAuMDAyOTUsIDAuMDAyOTU3LCAwLjAwMjk2NywgMC4wMDI5NjksIDAuMDAyOTcsIDAuMDAyOTY5LCAwLjAwMjk2OSIsIFwKLSAgICAgICAgICAiMC4wMDI5NDgsIDAuMDAyOTU1LCAwLjAwMjk2NiwgMC4wMDI5NjgsIDAuMDAyOTY5LCAwLjAwMjk2OSwgMC4wMDI5NjkiLCBcCi0gICAgICAgICAgIjAuMDAyOTUxLCAwLjAwMjk1NSwgMC4wMDI5NjUsIDAuMDAyOTY3LCAwLjAwMjk2OSwgMC4wMDI5NjgsIDAuMDAyOTY5IiwgXAotICAgICAgICAgICIwLjAwMjk2LCAwLjAwMjk1OSwgMC4wMDI5NjYsIDAuMDAyOTY4LCAwLjAwMjk2OSwgMC4wMDI5NjksIDAuMDAyOTY5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwOTQyLCAwLjAwMDk0NCwgMC4wMDA5NDcsIDAuMDAwOTQ3LCAwLjAwMDk0NywgMC4wMDA5NDYsIDAuMDAwOTQ2IiwgXAotICAgICAgICAgICIwLjAwMDkzNCwgMC4wMDA5NDEsIDAuMDAwOTUzLCAwLjAwMDk1NSwgMC4wMDA5NTYsIDAuMDAwOTU3LCAwLjAwMDk1NyIsIFwKLSAgICAgICAgICAiMC4wMDA5MTQsIDAuMDAwOTI3LCAwLjAwMDk0OCwgMC4wMDA5NTMsIDAuMDAwOTU1LCAwLjAwMDk1NywgMC4wMDA5NTciLCBcCi0gICAgICAgICAgIjAuMDAwODk2LCAwLjAwMDkxMywgMC4wMDA5NDMsIDAuMDAwOTQ5LCAwLjAwMDk1MywgMC4wMDA5NTYsIDAuMDAwOTU3IiwgXAotICAgICAgICAgICIwLjAwMDg4MywgMC4wMDA5MDIsIDAuMDAwOTM3LCAwLjAwMDk0NSwgMC4wMDA5NSwgMC4wMDA5NTQsIDAuMDAwOTU1IiwgXAotICAgICAgICAgICIwLjAwMDg2NiwgMC4wMDA4ODcsIDAuMDAwOTI4LCAwLjAwMDkzOSwgMC4wMDA5NDYsIDAuMDAwOTUyLCAwLjAwMDk1MyIsIFwKLSAgICAgICAgICAiMC4wMDA4NTcsIDAuMDAwODc3LCAwLjAwMDkyMiwgMC4wMDA5MzUsIDAuMDAwOTQzLCAwLjAwMDk1LCAwLjAwMDk1MiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI0NjMsIDAuMDAyNDY0LCAwLjAwMjQ2NywgMC4wMDI0NjcsIDAuMDAyNDY4LCAwLjAwMjQ2OCwgMC4wMDI0NjgiLCBcCi0gICAgICAgICAgIjAuMDAyNDYyLCAwLjAwMjQ2OSwgMC4wMDI0NzgsIDAuMDAyNDgsIDAuMDAyNDgxLCAwLjAwMjQ4MywgMC4wMDI0ODMiLCBcCi0gICAgICAgICAgIjAuMDAyNDU0LCAwLjAwMjQ2MywgMC4wMDI0NzgsIDAuMDAyNDgyLCAwLjAwMjQ4NCwgMC4wMDI0ODYsIDAuMDAyNDg2IiwgXAotICAgICAgICAgICIwLjAwMjQ0OSwgMC4wMDI0NTgsIDAuMDAyNDc2LCAwLjAwMjQ4LCAwLjAwMjQ4MywgMC4wMDI0ODUsIDAuMDAyNDg2IiwgXAotICAgICAgICAgICIwLjAwMjQ0NiwgMC4wMDI0NTcsIDAuMDAyNDc1LCAwLjAwMjQ3OSwgMC4wMDI0ODIsIDAuMDAyNDg2LCAwLjAwMjQ4NiIsIFwKLSAgICAgICAgICAiMC4wMDI0NTIsIDAuMDAyNDU3LCAwLjAwMjQ3MywgMC4wMDI0NzksIDAuMDAyNDgxLCAwLjAwMjQ4NSwgMC4wMDI0ODYiLCBcCi0gICAgICAgICAgIjAuMDAyNDYsIDAuMDAyNDYyLCAwLjAwMjQ3NCwgMC4wMDI0NzksIDAuMDAyNDgyLCAwLjAwMjQ4NSwgMC4wMDI0ODYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDEyODEsIDAuMDAxMjgzLCAwLjAwMTI4NiwgMC4wMDEyODYsIDAuMDAxMjg4LCAwLjAwMTI4NSwgMC4wMDEyODUiLCBcCi0gICAgICAgICAgIjAuMDAxMjU5LCAwLjAwMTI2NywgMC4wMDEyOCwgMC4wMDEyODIsIDAuMDAxMjg0LCAwLjAwMTI4NCwgMC4wMDEyODMiLCBcCi0gICAgICAgICAgIjAuMDAxMjQyLCAwLjAwMTI1MywgMC4wMDEyNzMsIDAuMDAxMjc4LCAwLjAwMTI4LCAwLjAwMTI4MiwgMC4wMDEyODIiLCBcCi0gICAgICAgICAgIjAuMDAxMjMxLCAwLjAwMTIzOCwgMC4wMDEyNjgsIDAuMDAxMjc0LCAwLjAwMTI3OCwgMC4wMDEyOCwgMC4wMDEyOCIsIFwKLSAgICAgICAgICAiMC4wMDEyMjgsIDAuMDAxMjM4LCAwLjAwMTI2NCwgMC4wMDEyNzEsIDAuMDAxMjc1LCAwLjAwMTI3OSwgMC4wMDEyNzkiLCBcCi0gICAgICAgICAgIjAuMDAxMjMxLCAwLjAwMTIzNywgMC4wMDEyNTksIDAuMDAxMjY3LCAwLjAwMTI3MywgMC4wMDEyNzcsIDAuMDAxMjc4IiwgXAotICAgICAgICAgICIwLjAwMTIzOSwgMC4wMDEyNCwgMC4wMDEyNTgsIDAuMDAxMjY2LCAwLjAwMTI3MSwgMC4wMDEyNzYsIDAuMDAxMjc2Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogT0FJMjJYTCAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChPQUkyMlhMKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMDgwNjIwMjsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQTApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYxNTM2ODsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MTQxMzk7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjE1MzY4OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDIyNiwgMC4wMDAyMjYsIDAuMDAwMjI2LCAwLjAwMDIyNiwgMC4wMDAyMjYsIDAuMDAwMjI2LCAwLjAwMDIyNiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDIyNywgMC4wMDAyMjcsIDAuMDAwMjI3LCAwLjAwMDIyNywgMC4wMDAyMjcsIDAuMDAwMjI3LCAwLjAwMDIyNyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQTEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYzNzE5NTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MzcxOTU7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjM1NjM0OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDIyNiwgMC4wMDAyMjYsIDAuMDAwMjI2LCAwLjAwMDIyNiwgMC4wMDAyMjYsIDAuMDAwMjI2LCAwLjAwMDIyNiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDIyNywgMC4wMDAyMjcsIDAuMDAwMjI3LCAwLjAwMDIyNywgMC4wMDAyMjcsIDAuMDAwMjI3LCAwLjAwMDIyNyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQjApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDU5OTUxNjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA1OTY1NDc7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNTk5NTE2OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDQ1NywgMC4wMDA0NTcsIDAuMDAwNDU3LCAwLjAwMDQ1NywgMC4wMDA0NTcsIDAuMDAwNDU3LCAwLjAwMDQ1NyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDI1NywgMC4wMDAyNTcsIDAuMDAwMjU3LCAwLjAwMDI1NywgMC4wMDAyNTcsIDAuMDAwMjU3LCAwLjAwMDI1NyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQjEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYxOTAyMjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MTg5MjE7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjE5MDIyOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDQ1NiwgMC4wMDA0NTcsIDAuMDAwNDU3LCAwLjAwMDQ1NywgMC4wMDA0NTcsIDAuMDAwNDU3LCAwLjAwMDQ1NyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDI1NywgMC4wMDAyNTcsIDAuMDAwMjU3LCAwLjAwMDI1NywgMC4wMDAyNTcsIDAuMDAwMjU3LCAwLjAwMDI1NyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjA4MTczMjY7Ci0gICAgZnVuY3Rpb24gOiAiKCEoKEIwK0IxKSAoQTArQTEpKSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNjMxNTMsIDAuMTg5NzYxLCAwLjQyOTQyNSwgMC44MjgzMzEsIDEuMjI3NTcsIDIuMTU4NTEsIDIuNjg5NDQiLCBcCi0gICAgICAgICAgIjAuMTcxNzI0LCAwLjE5ODQyOCwgMC40MzgyMTMsIDAuODM2OTM3LCAxLjIzNTQ0LCAyLjE2NTk1LCAyLjY5NzM2IiwgXAotICAgICAgICAgICIwLjE4MTY3NCwgMC4yMDgzODEsIDAuNDQ3OTgyLCAwLjg0NzE2MywgMS4yNDU1NCwgMi4xNzY1NSwgMi43MDc0IiwgXAotICAgICAgICAgICIwLjE5MTQ4MiwgMC4yMTgyMDYsIDAuNDU3OTgsIDAuODU2ODY1LCAxLjI1NTU0LCAyLjE4NjI5LCAyLjcxNzYzIiwgXAotICAgICAgICAgICIwLjIwMTIzOCwgMC4yMjgwNiwgMC40Njc5ODUsIDAuODY3MiwgMS4yNjYwOCwgMi4xOTY1LCAyLjcyNjU1IiwgXAotICAgICAgICAgICIwLjIxNjg5LCAwLjI0MzcwNSwgMC40ODM2NjEsIDAuODgyNDc1LCAxLjI4MTQzLCAyLjIxMjI5LCAyLjc0MzQ0IiwgXAotICAgICAgICAgICIwLjIzMTEzNiwgMC4yNTczMTIsIDAuNDk3NDkzLCAwLjg5NjU2NywgMS4yOTUzMywgMi4yMjY2NiwgMi43NTY5OSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMTUyMTMsIDAuMzY5MDgxLCAwLjg1NDA5NCwgMS42NjIwMSwgMi40Njk3OCwgNC4zNTQ2NywgNS40MzI2NSIsIFwKLSAgICAgICAgICAiMC4zMTUyMTgsIDAuMzY5MDg1LCAwLjg1Mzg2OCwgMS42NjE2NCwgMi40Njk4MywgNC4zNTM3OCwgNS40MzMxMiIsIFwKLSAgICAgICAgICAiMC4zMTUyNTQsIDAuMzY5MTA0LCAwLjg1NDA2OSwgMS42NjE1NCwgMi40Njk1NCwgNC4zNTQ2NSwgNS40MzMxNCIsIFwKLSAgICAgICAgICAiMC4zMTU2NTQsIDAuMzY5MjU3LCAwLjg1Mzc3OSwgMS42NjE1MywgMi40Njk0NywgNC4zNTUzMSwgNS40MzIzMSIsIFwKLSAgICAgICAgICAiMC4zMTczMzEsIDAuMzcwNDc2LCAwLjg1NDAxNiwgMS42NjE3MywgMi40Njk3NiwgNC4zNTU1NiwgNS40MzI0NSIsIFwKLSAgICAgICAgICAiMC4zMjE2MzksIDAuMzczOTM3LCAwLjg1Mzc4NCwgMS42NjE3OSwgMi40Njk4MywgNC4zNTUzNSwgNS40MzI2NSIsIFwKLSAgICAgICAgICAiMC4zMjczMzYsIDAuMzc4Mzc1LCAwLjg1NDU0NiwgMS42NjE3MywgMi40Njk0NCwgNC4zNTU0NCwgNS40MzE2NiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNjI1NDIsIDAuMTg4MzE2LCAwLjQyMDUzNiwgMC44MDcxNTIsIDEuMTkzNTcsIDIuMDk1NCwgMi42MDk2OSIsIFwKLSAgICAgICAgICAiMC4xNzI1LCAwLjE5ODI5OCwgMC40MzA0MDYsIDAuODE3MjAyLCAxLjIwMzcyLCAyLjEwNTYsIDIuNjE5NzMiLCBcCi0gICAgICAgICAgIjAuMTgzOTQ1LCAwLjIwOTg3MSwgMC40NDIwODUsIDAuODI4NTM5LCAxLjIxNTExLCAyLjExNjkxLCAyLjYzMjE0IiwgXAotICAgICAgICAgICIwLjE5NTAwNywgMC4yMjA4NjksIDAuNDUzMDc3LCAwLjgzOTk5LCAxLjIyNjQ5LCAyLjEyOTA0LCAyLjY0MzQiLCBcCi0gICAgICAgICAgIjAuMjA1OTQxLCAwLjIzMTc5NiwgMC40NjQxNDYsIDAuODUwNDczLCAxLjIzNzU3LCAyLjEzOTE2LCAyLjY1NDY2IiwgXAotICAgICAgICAgICIwLjIyMzQzOCwgMC4yNDkxNzMsIDAuNDgxNTIxLCAwLjg2ODE4LCAxLjI1NTQ2LCAyLjE1NjksIDIuNjcxOTUiLCBcCi0gICAgICAgICAgIjAuMjM4NTIyLCAwLjI2NDUxOCwgMC40OTY3NzMsIDAuODgzNDgsIDEuMjcwMTIsIDIuMTcxNTcsIDIuNjg3NTkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjg4NjE2LCAwLjMzOTM3NiwgMC43OTc0MjYsIDEuNTYxNCwgMi4zMjQwMywgNC4xMDQ1NiwgNS4xMTk5OCIsIFwKLSAgICAgICAgICAiMC4yODg0NzEsIDAuMzM5MzcsIDAuNzk3Nzg4LCAxLjU2MTkxLCAyLjMyNDgxLCA0LjEwNDI1LCA1LjExOTkxIiwgXAotICAgICAgICAgICIwLjI4ODM3OSwgMC4zMzk0MDcsIDAuNzk3NDY2LCAxLjU2MTA3LCAyLjMyMzk2LCA0LjEwNDE5LCA1LjEyMTE3IiwgXAotICAgICAgICAgICIwLjI4ODY1LCAwLjMzOTMxLCAwLjc5NzQ0NiwgMS41NjE3LCAyLjMyNTA2LCA0LjEwNDYzLCA1LjEyMDk0IiwgXAotICAgICAgICAgICIwLjI4OTUwNywgMC4zMzk4NjUsIDAuNzk3NDA4LCAxLjU2MSwgMi4zMjQ5NCwgNC4xMDQyNCwgNS4xMjE0MSIsIFwKLSAgICAgICAgICAiMC4yOTMwODYsIDAuMzQyNiwgMC43OTc3NzcsIDEuNTYxMSwgMi4zMjQ4LCA0LjEwNDI1LCA1LjEyMDczIiwgXAotICAgICAgICAgICIwLjI5NzU2NCwgMC4zNDY3NiwgMC43OTc4NzUsIDEuNTYxMjIsIDIuMzI0NTQsIDQuMTA1MDIsIDUuMTIwNDMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE1OTg0NCwgMC4xODY0NywgMC40MjYxOTMsIDAuODI1MDAyLCAxLjIyNDA0LCAyLjE1NDI4LCAyLjY4NjE3IiwgXAotICAgICAgICAgICIwLjE2ODgwMSwgMC4xOTU1NDMsIDAuNDM1MDMzLCAwLjgzNDA0NCwgMS4yMzI0MiwgMi4xNjI1LCAyLjY5NDkyIiwgXAotICAgICAgICAgICIwLjE3OTkwMywgMC4yMDY2MDQsIDAuNDQ2MjgxLCAwLjg0NTE0MiwgMS4yNDQwMywgMi4xNzQ0MSwgMi43MDYyNSIsIFwKLSAgICAgICAgICAiMC4xOTEyOTYsIDAuMjE3OTU1LCAwLjQ1NzYwOCwgMC44NTY1MDcsIDEuMjU1MiwgMi4xODYyMywgMi43MTcyNSIsIFwKLSAgICAgICAgICAiMC4yMDI2NTcsIDAuMjI5MzQsIDAuNDY4ODk4LCAwLjg2ODMyNSwgMS4yNjcyMiwgMi4xOTc3LCAyLjcyNzg3IiwgXAotICAgICAgICAgICIwLjIyMDg2OCwgMC4yNDc0OTcsIDAuNDg3MDMyLCAwLjg4NTk4NCwgMS4yODUxLCAyLjIxNDU5LCAyLjc0NjQ1IiwgXAotICAgICAgICAgICIwLjIzNjk5MywgMC4yNjM1MDksIDAuNTAzMTIsIDAuOTAyMDU5LCAxLjMwMDQsIDIuMjMxOTUsIDIuNzYxODEiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzE1MTcyLCAwLjM2OTIzNiwgMC44NTQwNDYsIDEuNjYxNTgsIDIuNDY5MTEsIDQuMzU1NTMsIDUuNDMzNTQiLCBcCi0gICAgICAgICAgIjAuMzE1MjIyLCAwLjM2OTEwMSwgMC44NTM4NTcsIDEuNjYxNjksIDIuNDY5MzYsIDQuMzU1MTYsIDUuNDMyNDMiLCBcCi0gICAgICAgICAgIjAuMzE1MTc0LCAwLjM2OTA5LCAwLjg1NDAwNiwgMS42NjE1MywgMi40NywgNC4zNTUwNCwgNS40MzIzIiwgXAotICAgICAgICAgICIwLjMxNTg5LCAwLjM2OTIyNSwgMC44NTQwNzksIDEuNjYxNzIsIDIuNDY5NDcsIDQuMzU1MjcsIDUuNDMyMDUiLCBcCi0gICAgICAgICAgIjAuMzE4NTMzLCAwLjM3MTAxOCwgMC44NTM5OCwgMS42NjE0NCwgMi40Njk3NCwgNC4zNTU1MSwgNS40MzI3OCIsIFwKLSAgICAgICAgICAiMC4zMjU0NjIsIDAuMzc2NjksIDAuODUzOTc0LCAxLjY2MiwgMi40Njk2NiwgNC4zNTQ3MywgNS40MzIyMSIsIFwKLSAgICAgICAgICAiMC4zMzM0MzksIDAuMzgzNDM2LCAwLjg1NDI4MywgMS42NjE4NSwgMi40Njk0LCA0LjM1NTE5LCA1LjQzMTY3Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE1Nzk2OCwgMC4xODM3MzcsIDAuNDE1ODY4LCAwLjgwMjE5MywgMS4xODg5LCAyLjA5MDY1LCAyLjYwNTgyIiwgXAotICAgICAgICAgICIwLjE2ODA3OSwgMC4xOTM5MTEsIDAuNDI1OTYsIDAuODEyMzcsIDEuMTk5MiwgMi4xMDEwOSwgMi42MTYxNiIsIFwKLSAgICAgICAgICAiMC4xNzk1MTcsIDAuMjA1NDMsIDAuNDM3NjE4LCAwLjgyNDA2NCwgMS4yMTA2MSwgMi4xMTIzOCwgMi42Mjc2NCIsIFwKLSAgICAgICAgICAiMC4xOTA0NzYsIDAuMjE2MzA1LCAwLjQ0ODY3NywgMC44MzU1MTUsIDEuMjIxOTYsIDIuMTI0NTMsIDIuNjM4ODciLCBcCi0gICAgICAgICAgIjAuMjAxMzc3LCAwLjIyNzI0NywgMC40NTk2ODksIDAuODQ1OTc5LCAxLjIzMzA1LCAyLjEzNDYzLCAyLjY1MDEyIiwgXAotICAgICAgICAgICIwLjIxODgwMywgMC4yNDQ1NTQsIDAuNDc2OTcyLCAwLjg2Mzc2MiwgMS4yNTA3OCwgMi4xNTIyNywgMi42NjcyIiwgXAotICAgICAgICAgICIwLjIzMzgzOCwgMC4yNTk4NDQsIDAuNDkyMTcyLCAwLjg3ODkyNSwgMS4yNjU1MiwgMi4xNjcwNSwgMi42ODMwOCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yODMxNzcsIDAuMzM0MDYxLCAwLjc5MTg4LCAxLjU1NDk0LCAyLjMxOTM2LCA0LjA5ODE3LCA1LjExNzI4IiwgXAotICAgICAgICAgICIwLjI4MzAwNSwgMC4zMzM5MDQsIDAuNzkyNDE0LCAxLjU1NTI2LCAyLjMxOTM3LCA0LjA5ODI5LCA1LjExMzk2IiwgXAotICAgICAgICAgICIwLjI4MzAwNiwgMC4zMzM5ODIsIDAuNzkxODYxLCAxLjU1NDk5LCAyLjMxODkxLCA0LjA5OTg2LCA1LjExNTEzIiwgXAotICAgICAgICAgICIwLjI4MzEzNywgMC4zMzM5MjEsIDAuNzkxNzIzLCAxLjU1NTkyLCAyLjMxOTMsIDQuMDk4MDUsIDUuMTE0ODUiLCBcCi0gICAgICAgICAgIjAuMjg0MTg1LCAwLjMzNDQ0NywgMC43OTE3OTUsIDEuNTU1MTYsIDIuMzE4OTMsIDQuMDk3NzIsIDUuMTE1ODUiLCBcCi0gICAgICAgICAgIjAuMjg3ODcxLCAwLjMzNzIzOSwgMC43OTE4MDYsIDEuNTU1MjQsIDIuMzE4ODQsIDQuMDk4MTYsIDUuMTE2OTYiLCBcCi0gICAgICAgICAgIjAuMjkyNDU5LCAwLjM0MTU1NiwgMC43OTIxMDgsIDEuNTU1MzgsIDIuMzE4OCwgNC4wOTkwMiwgNS4xMTU4MyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTUxNTYyLCAwLjE3ODE1NiwgMC40MTc2MzYsIDAuODE2NjQ1LCAxLjIxNTYyLCAyLjE0NjA0LCAyLjY3NjkiLCBcCi0gICAgICAgICAgIjAuMTYwMzcxLCAwLjE4Njk2MywgMC40MjY0NzYsIDAuODI1NDQ2LCAxLjIyNDMyLCAyLjE1NDExLCAyLjY4NTMiLCBcCi0gICAgICAgICAgIjAuMTcwMjY1LCAwLjE5NjkyNCwgMC40MzY0NzUsIDAuODM1NDY4LCAxLjIzNDM0LCAyLjE2NDQ0LCAyLjY5NTM3IiwgXAotICAgICAgICAgICIwLjE4MDA0NywgMC4yMDY3MjcsIDAuNDQ2MjM0LCAwLjg0NTI3MSwgMS4yNDQxNSwgMi4xNzQ3MSwgMi43MDUyIiwgXAotICAgICAgICAgICIwLjE4OTgyLCAwLjIxNjU4MSwgMC40NTYyOCwgMC44NTUzNDksIDEuMjU0MjQsIDIuMTg0OTEsIDIuNzE1MjUiLCBcCi0gICAgICAgICAgIjAuMjA1NjE3LCAwLjIzMjA4OSwgMC40NzEzOSwgMC44NzExMjEsIDEuMjcwMTEsIDIuMTk5OTMsIDIuNzMxMTUiLCBcCi0gICAgICAgICAgIjAuMjE5NzYxLCAwLjI0NTc5OCwgMC40ODU4NjMsIDAuODg1MDkzLCAxLjI4NDE3LCAyLjIxNDIzLCAyLjc0NTE0Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMwMjQ3NCwgMC4zNTYyMjMsIDAuODQwNjA1LCAxLjY0ODE1LCAyLjQ1NTQ5LCA0LjMzOTc0LCA1LjQyMTczIiwgXAotICAgICAgICAgICIwLjMwMjQzLCAwLjM1NjIzNSwgMC44NDA2MTcsIDEuNjQ4MSwgMi40NTU1NCwgNC4zNDQ2MiwgNS40MTgzMyIsIFwKLSAgICAgICAgICAiMC4zMDI0NzksIDAuMzU2MjAzLCAwLjg0MDYxLCAxLjY0ODEsIDIuNDU1ODYsIDQuMzQ1MjYsIDUuNDE3OCIsIFwKLSAgICAgICAgICAiMC4zMDMxLCAwLjM1NjQ3NiwgMC44NDA1NjUsIDEuNjQ4MDEsIDIuNDU1ODYsIDQuMzM5NzUsIDUuNDE1NzgiLCBcCi0gICAgICAgICAgIjAuMzA0OTQzLCAwLjM1Nzc3NywgMC44NDA1OTgsIDEuNjQ4MTYsIDIuNDU1OTgsIDQuMzM5NzcsIDUuNDE3NzYiLCBcCi0gICAgICAgICAgIjAuMzA5OTMzLCAwLjM2MTU1MiwgMC44NDA2MTEsIDEuNjQ4MTgsIDIuNDU1NjEsIDQuMzQwMDIsIDUuNDE4IiwgXAotICAgICAgICAgICIwLjMxNTc5NCwgMC4zNjY0NjMsIDAuODQxMjQ1LCAxLjY0ODA5LCAyLjQ1NTg5LCA0LjMzOTcyLCA1LjQxNzkxIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE1MjgzOSwgMC4xNzg2MjYsIDAuNDEwNzMxLCAwLjc5NzE4NywgMS4xODQsIDIuMDg1NzcsIDIuNjAwNjUiLCBcCi0gICAgICAgICAgIjAuMTYxOTU4LCAwLjE4Nzg3NywgMC40MTk5MTcsIDAuODA2NjUsIDEuMTkzMTMsIDIuMDk0MzQsIDIuNjEwMzIiLCBcCi0gICAgICAgICAgIjAuMTczNDg2LCAwLjE5OTM3OCwgMC40MzE0NDIsIDAuODE4MTI0LCAxLjIwNDg1LCAyLjEwNjcxLCAyLjYyMTc3IiwgXAotICAgICAgICAgICIwLjE4NTA5OCwgMC4yMTExNDksIDAuNDQzMDUxLCAwLjgyOTYwNCwgMS4yMTYzOCwgMi4xMTgwNCwgMi42MzMwNCIsIFwKLSAgICAgICAgICAiMC4xOTY4MDksIDAuMjIyNjI4LCAwLjQ1NDg5NSwgMC44NDEyMjEsIDEuMjI3NjcsIDIuMTMwMTcsIDIuNjQ1MDUiLCBcCi0gICAgICAgICAgIjAuMjE1NzE2LCAwLjI0MTUwNCwgMC40NzM1MTQsIDAuODYwMTYsIDEuMjQ2NTMsIDIuMTQ4MzQsIDIuNjY0MDIiLCBcCi0gICAgICAgICAgIjAuMjMyOTEzLCAwLjI1ODE1MywgMC40ODk5NDEsIDAuODc2MzkzLCAxLjI2MjksIDIuMTY1MjMsIDIuNjc5OTQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjg4NDg2LCAwLjMzOTM2NywgMC43OTc3MDcsIDEuNTYwNjcsIDIuMzI0ODgsIDQuMTA0MjUsIDUuMTIyNyIsIFwKLSAgICAgICAgICAiMC4yODgzNzgsIDAuMzM5NCwgMC43OTc0NDIsIDEuNTYwNzYsIDIuMzI0NTEsIDQuMTA0NiwgNS4xMjE1NyIsIFwKLSAgICAgICAgICAiMC4yODgzMjIsIDAuMzM5Mzk1LCAwLjc5NzQ3LCAxLjU2MTk0LCAyLjMyNTEzLCA0LjEwNDM2LCA1LjEyMDE2IiwgXAotICAgICAgICAgICIwLjI4ODg3NCwgMC4zMzkyODgsIDAuNzk3NzU5LCAxLjU2MTI1LCAyLjMyNDkzLCA0LjEwNDI2LCA1LjEyMDYxIiwgXAotICAgICAgICAgICIwLjI5MTQ5NiwgMC4zNDExMjEsIDAuNzk3NDIsIDEuNTYxMTUsIDIuMzI0NDIsIDQuMTA0ODksIDUuMTIxMTEiLCBcCi0gICAgICAgICAgIjAuMjk4MjI5LCAwLjM0NjU4NSwgMC43OTc2NjksIDEuNTYxNDcsIDIuMzI0NTYsIDQuMTA1NTMsIDUuMTIwMzMiLCBcCi0gICAgICAgICAgIjAuMzA1NDExLCAwLjM1MzM3NiwgMC43OTc5NzUsIDEuNTYxLCAyLjMyNDQzLCA0LjEwNDM1LCA1LjEyMzI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIxIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNDgwNzYsIDAuMTc0NzAxLCAwLjQxNDEzNSwgMC44MTMwNjksIDEuMjEyMDMsIDIuMTQxOTcsIDIuNjcyODkiLCBcCi0gICAgICAgICAgIjAuMTU3MTI2LCAwLjE4Mzc0MywgMC40MjMzMDUsIDAuODIyMzU5LCAxLjIyMTE3LCAyLjE1MjMzLCAyLjY4MjYxIiwgXAotICAgICAgICAgICIwLjE2ODMwNCwgMC4xOTQ5NjksIDAuNDM0NDcxLCAwLjgzMzQ2MiwgMS4yMzI1NCwgMi4xNjI1NiwgMi42OTM2NiIsIFwKLSAgICAgICAgICAiMC4xNzk2MjIsIDAuMjA2MjYzLCAwLjQ0NTg4NiwgMC44NDQ4ODMsIDEuMjQzOCwgMi4xNzM3MSwgMi43MDQ4MyIsIFwKLSAgICAgICAgICAiMC4xOTA5NTksIDAuMjE3NjE2LCAwLjQ1NzEzMywgMC44NTYyMTksIDEuMjU1MTQsIDIuMTg1MzMsIDIuNzE2MTgiLCBcCi0gICAgICAgICAgIjAuMjA5MTcyLCAwLjIzNTc1OSwgMC40NzUzMjMsIDAuODc0NDEsIDEuMjczMjQsIDIuMjAzLCAyLjczNDIxIiwgXAotICAgICAgICAgICIwLjIyNTI0OCwgMC4yNTE4OTIsIDAuNDkxMjA1LCAwLjg5MDMsIDEuMjg5MTMsIDIuMjE5ODIsIDIuNzUiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzAyNDE5LCAwLjM1NjIyLCAwLjg0MDQ3OCwgMS42NDgwOCwgMi40NTUzNSwgNC4zMzk5MywgNS40MTc2IiwgXAotICAgICAgICAgICIwLjMwMjQ1NiwgMC4zNTYyMDksIDAuODQwNTg2LCAxLjY0ODM0LCAyLjQ1NTQ3LCA0LjMzOTc4LCA1LjQxODU2IiwgXAotICAgICAgICAgICIwLjMwMjQzOSwgMC4zNTYyNzYsIDAuODQwNTk4LCAxLjY0ODEsIDIuNDU1NTQsIDQuMzQ2MDgsIDUuNDIxNCIsIFwKLSAgICAgICAgICAiMC4zMDM0ODksIDAuMzU2NTMzLCAwLjg0MDYxLCAxLjY0ODIzLCAyLjQ1NTEyLCA0LjMzOTg3LCA1LjQxODQxIiwgXAotICAgICAgICAgICIwLjMwNjQ5NSwgMC4zNTg2MiwgMC44NDA1MjgsIDEuNjQ4MjMsIDIuNDU1OTIsIDQuMzQwNDksIDUuNDE4MzMiLCBcCi0gICAgICAgICAgIjAuMzEzOTc2LCAwLjM2NDczOCwgMC44NDA0NTQsIDEuNjQ4MDksIDIuNDU1ODksIDQuMzQxMDgsIDUuNDE4NTEiLCBcCi0gICAgICAgICAgIjAuMzIyNDg5LCAwLjM3MjE3NywgMC44NDEwOTEsIDEuNjQ4MTYsIDIuNDU1NzQsIDQuMzM5ODQsIDUuNDIiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTQ4MTA4LCAwLjE3Mzg4MiwgMC40MDU4MzcsIDAuNzkyMTgxLCAxLjE3ODc2LCAyLjA3OTczLCAyLjU5NTIiLCBcCi0gICAgICAgICAgIjAuMTU3NjA0LCAwLjE4MzUwMiwgMC40MTUzMDQsIDAuODAyMDA4LCAxLjE4ODI5LCAyLjA4OTUsIDIuNjA1NDIiLCBcCi0gICAgICAgICAgIjAuMTY4ODg4LCAwLjE5NDcyNSwgMC40MjY4MDEsIDAuODEzNTU1LCAxLjIwMDExLCAyLjEwMTg5LCAyLjYxNjU3IiwgXAotICAgICAgICAgICIwLjE4MDY0OCwgMC4yMDY0ODIsIDAuNDM4Mzg2LCAwLjgyNDkxOSwgMS4yMTE2NSwgMi4xMTMyNywgMi42MjgyMiIsIFwKLSAgICAgICAgICAiMC4xOTIxMSwgMC4yMTc5NjcsIDAuNDUwMTkzLCAwLjgzNjUxOCwgMS4yMjI5NiwgMi4xMjU0MywgMi42NDAyNCIsIFwKLSAgICAgICAgICAiMC4yMTA5MTgsIDAuMjM2Njk2LCAwLjQ2ODgxNSwgMC44NTU0MSwgMS4yNDE3OSwgMi4xNDM1OCwgMi42NTkyMSIsIFwKLSAgICAgICAgICAiMC4yMjgxMzQsIDAuMjUzMzUxLCAwLjQ4NTE5LCAwLjg3MTY3MywgMS4yNTgxNSwgMi4xNjA0NCwgMi42NzUxNSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yODI4OTUsIDAuMzMzODYzLCAwLjc5MTkwOSwgMS41NTUwMywgMi4zMTg1MSwgNC4wOTgwNiwgNS4xMTYxOSIsIFwKLSAgICAgICAgICAiMC4yODI4MjksIDAuMzMzNzA4LCAwLjc5MTU1MSwgMS41NTQ2OSwgMi4zMTgzMywgNC4wOTYzOCwgNS4xMTU1NSIsIFwKLSAgICAgICAgICAiMC4yODI3MTYsIDAuMzMzODQ2LCAwLjc5MTU4NiwgMS41NTU0MywgMi4zMTg4OCwgNC4wOTc4OSwgNS4xMTQwNCIsIFwKLSAgICAgICAgICAiMC4yODM0NDksIDAuMzMzNjcxLCAwLjc5MTg4OSwgMS41NTUxOCwgMi4zMTg4NywgNC4wOTc3MywgNS4xMTQwNyIsIFwKLSAgICAgICAgICAiMC4yODYwNjgsIDAuMzM1NDM2LCAwLjc5MTc2LCAxLjU1NTA4LCAyLjMxODI0LCA0LjA5ODU0LCA1LjExNDUiLCBcCi0gICAgICAgICAgIjAuMjkzMDM5LCAwLjM0MTAyNiwgMC43OTE4NDMsIDEuNTU1MiwgMi4zMTgzOCwgNC4wOTkxLCA1LjExMzc2IiwgXAotICAgICAgICAgICIwLjMwMDU1NywgMC4zNDgxOTksIDAuNzkyMjA1LCAxLjU1NDk2LCAyLjMxODI0LCA0LjA5Nzg4LCA1LjExNjg0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjQ0NCwgMC4wMDI0NDQsIDAuMDAyNDQzLCAwLjAwMjQ0MiwgMC4wMDI0NDIsIDAuMDAyNDM5LCAwLjAwMjQzOSIsIFwKLSAgICAgICAgICAiMC4wMDI0MzcsIDAuMDAyNDM3LCAwLjAwMjQzNywgMC4wMDI0MzcsIDAuMDAyNDM2LCAwLjAwMjQzNiwgMC4wMDI0MzEiLCBcCi0gICAgICAgICAgIjAuMDAyNDM0LCAwLjAwMjQzNSwgMC4wMDI0MzYsIDAuMDAyNDM2LCAwLjAwMjQzNSwgMC4wMDI0MzMsIDAuMDAyNDMxIiwgXAotICAgICAgICAgICIwLjAwMjQzMiwgMC4wMDI0MzIsIDAuMDAyNDM0LCAwLjAwMjQzNSwgMC4wMDI0MzQsIDAuMDAyNDMyLCAwLjAwMjQzMSIsIFwKLSAgICAgICAgICAiMC4wMDI0MywgMC4wMDI0MzEsIDAuMDAyNDMzLCAwLjAwMjQzNCwgMC4wMDI0MzQsIDAuMDAyNDMzLCAwLjAwMjQzIiwgXAotICAgICAgICAgICIwLjAwMjQyOCwgMC4wMDI0MywgMC4wMDI0MzEsIDAuMDAyNDMzLCAwLjAwMjQzMywgMC4wMDI0MzIsIDAuMDAyNDMiLCBcCi0gICAgICAgICAgIjAuMDAyNDI5LCAwLjAwMjQzLCAwLjAwMjQzMywgMC4wMDI0MzQsIDAuMDAyNDMzLCAwLjAwMjQzMSwgMC4wMDI0MjkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDA2MTgsIDAuMDAwNjE4LCAwLjAwMDYxOCwgMC4wMDA2MTgsIDAuMDAwNjE3LCAwLjAwMDYxNywgMC4wMDA2MTYiLCBcCi0gICAgICAgICAgIjAuMDAwNjA4LCAwLjAwMDYwOSwgMC4wMDA2MSwgMC4wMDA2MTEsIDAuMDAwNjEsIDAuMDAwNjEsIDAuMDAwNjA5IiwgXAotICAgICAgICAgICIwLjAwMDYwNCwgMC4wMDA2MDUsIDAuMDAwNjA4LCAwLjAwMDYwOSwgMC4wMDA2MDksIDAuMDAwNjA4LCAwLjAwMDYwOCIsIFwKLSAgICAgICAgICAiMC4wMDA2LCAwLjAwMDYwMSwgMC4wMDA2MDYsIDAuMDAwNjA3LCAwLjAwMDYwOCwgMC4wMDA2MDgsIDAuMDAwNjA3IiwgXAotICAgICAgICAgICIwLjAwMDU5NywgMC4wMDA1OTksIDAuMDAwNjA1LCAwLjAwMDYwNywgMC4wMDA2MDcsIDAuMDAwNjA3LCAwLjAwMDYwNyIsIFwKLSAgICAgICAgICAiMC4wMDA1OTQsIDAuMDAwNTk2LCAwLjAwMDYwMywgMC4wMDA2MDYsIDAuMDAwNjA3LCAwLjAwMDYwNywgMC4wMDA2MDciLCBcCi0gICAgICAgICAgIjAuMDAwNTkyLCAwLjAwMDU5MywgMC4wMDA2MDEsIDAuMDAwNjA1LCAwLjAwMDYwNiwgMC4wMDA2MDYsIDAuMDAwNjA2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjI1LCAwLjAwMjI1LCAwLjAwMjI0OSwgMC4wMDIyNDksIDAuMDAyMjQ4LCAwLjAwMjI0NSwgMC4wMDIyNDQiLCBcCi0gICAgICAgICAgIjAuMDAyMjQxLCAwLjAwMjI0MSwgMC4wMDIyNDIsIDAuMDAyMjQyLCAwLjAwMjI0MSwgMC4wMDIyMzksIDAuMDAyMjM4IiwgXAotICAgICAgICAgICIwLjAwMjIzNywgMC4wMDIyMzgsIDAuMDAyMjQsIDAuMDAyMjQsIDAuMDAyMjQsIDAuMDAyMjM4LCAwLjAwMjIzNiIsIFwKLSAgICAgICAgICAiMC4wMDIyMzUsIDAuMDAyMjM2LCAwLjAwMjIzOSwgMC4wMDIyNCwgMC4wMDIyNCwgMC4wMDIyMzcsIDAuMDAyMjM2IiwgXAotICAgICAgICAgICIwLjAwMjIzNSwgMC4wMDIyMzYsIDAuMDAyMjM4LCAwLjAwMjIzOSwgMC4wMDIyMzksIDAuMDAyMjM3LCAwLjAwMjIzNSIsIFwKLSAgICAgICAgICAiMC4wMDIyMzcsIDAuMDAyMjM3LCAwLjAwMjIzOSwgMC4wMDIyMzksIDAuMDAyMjM5LCAwLjAwMjIzNiwgMC4wMDIyMzYiLCBcCi0gICAgICAgICAgIjAuMDAyMjQyLCAwLjAwMjI0MSwgMC4wMDIyNCwgMC4wMDIyNCwgMC4wMDIyMzksIDAuMDAyMjM3LCAwLjAwMjIzNiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDQzNSwgMC4wMDA0MzUsIDAuMDAwNDM2LCAwLjAwMDQzNiwgMC4wMDA0MzYsIDAuMDAwNDM2LCAwLjAwMDQzNiIsIFwKLSAgICAgICAgICAiMC4wMDA0MzMsIDAuMDAwNDM1LCAwLjAwMDQzOSwgMC4wMDA0NDEsIDAuMDAwNDQxLCAwLjAwMDQ0MSwgMC4wMDA0NDEiLCBcCi0gICAgICAgICAgIjAuMDAwNDI1LCAwLjAwMDQyOCwgMC4wMDA0MzYsIDAuMDAwNDQsIDAuMDAwNDQxLCAwLjAwMDQ0MiwgMC4wMDA0NDIiLCBcCi0gICAgICAgICAgIjAuMDAwNDE4LCAwLjAwMDQyMSwgMC4wMDA0MzMsIDAuMDAwNDM4LCAwLjAwMDQ0LCAwLjAwMDQ0MSwgMC4wMDA0NDEiLCBcCi0gICAgICAgICAgIjAuMDAwNDExLCAwLjAwMDQxNSwgMC4wMDA0MywgMC4wMDA0MzcsIDAuMDAwNDM5LCAwLjAwMDQ0MSwgMC4wMDA0NDEiLCBcCi0gICAgICAgICAgIjAuMDAwNDAzLCAwLjAwMDQwNywgMC4wMDA0MjYsIDAuMDAwNDM0LCAwLjAwMDQzNywgMC4wMDA0NCwgMC4wMDA0NCIsIFwKLSAgICAgICAgICAiMC4wMDAzOTcsIDAuMDAwNDAyLCAwLjAwMDQyMiwgMC4wMDA0MzIsIDAuMDAwNDM1LCAwLjAwMDQzOSwgMC4wMDA0MzkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxNTM4LCAwLjAwMTUzOCwgMC4wMDE1MzksIDAuMDAxNTM5LCAwLjAwMTUzOSwgMC4wMDE1MzksIDAuMDAxNTM5IiwgXAotICAgICAgICAgICIwLjAwMTUzOSwgMC4wMDE1NCwgMC4wMDE1NDMsIDAuMDAxNTQ1LCAwLjAwMTU0MywgMC4wMDE1NDUsIDAuMDAxNTQ1IiwgXAotICAgICAgICAgICIwLjAwMTUzNCwgMC4wMDE1MzYsIDAuMDAxNTQxLCAwLjAwMTU0MywgMC4wMDE1NDUsIDAuMDAxNTQ0LCAwLjAwMTU0NCIsIFwKLSAgICAgICAgICAiMC4wMDE1MywgMC4wMDE1MzIsIDAuMDAxNTM5LCAwLjAwMTU0MywgMC4wMDE1NDMsIDAuMDAxNTQ1LCAwLjAwMTU0NCIsIFwKLSAgICAgICAgICAiMC4wMDE1MjYsIDAuMDAxNTI5LCAwLjAwMTUzOCwgMC4wMDE1NDIsIDAuMDAxNTQ0LCAwLjAwMTU0NCwgMC4wMDE1NDUiLCBcCi0gICAgICAgICAgIjAuMDAxNTIzLCAwLjAwMTUyNSwgMC4wMDE1MzUsIDAuMDAxNTQxLCAwLjAwMTU0MywgMC4wMDE1NDQsIDAuMDAxNTQ0IiwgXAotICAgICAgICAgICIwLjAwMTUyMSwgMC4wMDE1MjMsIDAuMDAxNTM0LCAwLjAwMTU0LCAwLjAwMTU0MiwgMC4wMDE1NDQsIDAuMDAxNTQ0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwNjE4LCAwLjAwMDYxOCwgMC4wMDA2MTgsIDAuMDAwNjE4LCAwLjAwMDYxNywgMC4wMDA2MTcsIDAuMDAwNjE2IiwgXAotICAgICAgICAgICIwLjAwMDYwNywgMC4wMDA2MDgsIDAuMDAwNjEsIDAuMDAwNjExLCAwLjAwMDYxMSwgMC4wMDA2MSwgMC4wMDA2MSIsIFwKLSAgICAgICAgICAiMC4wMDA2MDQsIDAuMDAwNjA1LCAwLjAwMDYwNywgMC4wMDA2MDksIDAuMDAwNjA4LCAwLjAwMDYwOCwgMC4wMDA2MDgiLCBcCi0gICAgICAgICAgIjAuMDAwNjAzLCAwLjAwMDYwMywgMC4wMDA2MDcsIDAuMDAwNjA4LCAwLjAwMDYwOCwgMC4wMDA2MDgsIDAuMDAwNjA3IiwgXAotICAgICAgICAgICIwLjAwMDYwMywgMC4wMDA2MDQsIDAuMDAwNjA2LCAwLjAwMDYwNywgMC4wMDA2MDgsIDAuMDAwNjA3LCAwLjAwMDYwNyIsIFwKLSAgICAgICAgICAiMC4wMDA2MDYsIDAuMDAwNjA2LCAwLjAwMDYwNywgMC4wMDA2MDcsIDAuMDAwNjA3LCAwLjAwMDYwNywgMC4wMDA2MDciLCBcCi0gICAgICAgICAgIjAuMDAwNjEyLCAwLjAwMDYwOSwgMC4wMDA2MDgsIDAuMDAwNjA4LCAwLjAwMDYwOCwgMC4wMDA2MDcsIDAuMDAwNjA3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTM0LCAwLjAwMTM0LCAwLjAwMTM0MSwgMC4wMDEzNDMsIDAuMDAxMzQzLCAwLjAwMTM0MywgMC4wMDEzNDMiLCBcCi0gICAgICAgICAgIjAuMDAxMzM5LCAwLjAwMTM0LCAwLjAwMTM0NSwgMC4wMDEzNDYsIDAuMDAxMzQ3LCAwLjAwMTM0NywgMC4wMDEzNDciLCBcCi0gICAgICAgICAgIjAuMDAxMzM0LCAwLjAwMTMzNiwgMC4wMDEzNDMsIDAuMDAxMzQ2LCAwLjAwMTM0NywgMC4wMDEzNDcsIDAuMDAxMzQ4IiwgXAotICAgICAgICAgICIwLjAwMTMzMSwgMC4wMDEzMzMsIDAuMDAxMzQxLCAwLjAwMTM0NSwgMC4wMDEzNDYsIDAuMDAxMzQ3LCAwLjAwMTM0OCIsIFwKLSAgICAgICAgICAiMC4wMDEzMjksIDAuMDAxMzMxLCAwLjAwMTMzOSwgMC4wMDEzNDQsIDAuMDAxMzQ2LCAwLjAwMTM0NywgMC4wMDEzNDciLCBcCi0gICAgICAgICAgIjAuMDAxMzI5LCAwLjAwMTMzMSwgMC4wMDEzMzksIDAuMDAxMzQ0LCAwLjAwMTM0NSwgMC4wMDEzNDcsIDAuMDAxMzQ3IiwgXAotICAgICAgICAgICIwLjAwMTMzMiwgMC4wMDEzMzMsIDAuMDAxMzQsIDAuMDAxMzQ0LCAwLjAwMTM0NSwgMC4wMDEzNDcsIDAuMDAxMzQ3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwNDIyLCAwLjAwMDQyMSwgMC4wMDA0MjMsIDAuMDAwNDIzLCAwLjAwMDQyMywgMC4wMDA0MjMsIDAuMDAwNDIzIiwgXAotICAgICAgICAgICIwLjAwMDQyLCAwLjAwMDQyMSwgMC4wMDA0MjcsIDAuMDAwNDI4LCAwLjAwMDQyOCwgMC4wMDA0MjksIDAuMDAwNDI5IiwgXAotICAgICAgICAgICIwLjAwMDQxNCwgMC4wMDA0MTYsIDAuMDAwNDI0LCAwLjAwMDQyOCwgMC4wMDA0MjksIDAuMDAwNDI5LCAwLjAwMDQyOSIsIFwKLSAgICAgICAgICAiMC4wMDA0MDgsIDAuMDAwNDExLCAwLjAwMDQyMiwgMC4wMDA0MjcsIDAuMDAwNDI4LCAwLjAwMDQyOSwgMC4wMDA0MjkiLCBcCi0gICAgICAgICAgIjAuMDAwNDA2LCAwLjAwMDQwOSwgMC4wMDA0MiwgMC4wMDA0MjYsIDAuMDAwNDI3LCAwLjAwMDQyOSwgMC4wMDA0MjkiLCBcCi0gICAgICAgICAgIjAuMDAwNDA0LCAwLjAwMDQwNiwgMC4wMDA0MTgsIDAuMDAwNDI0LCAwLjAwMDQyNywgMC4wMDA0MjgsIDAuMDAwNDI5IiwgXAotICAgICAgICAgICIwLjAwMDQwNywgMC4wMDA0MDcsIDAuMDAwNDE4LCAwLjAwMDQyNCwgMC4wMDA0MjYsIDAuMDAwNDI4LCAwLjAwMDQyOSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogT0FJMkJCMVhMICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoT0FJMkJCMVhMKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMDgzNDAzMzsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQTBOKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA3MTUwMjk7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNzE1MDI5OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDcxMzg2OTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyMjYsIDAuMDAwMjI2LCAwLjAwMDIyNiwgMC4wMDAyMjYsIDAuMDAwMjI2LCAwLjAwMDIyNiwgMC4wMDAyMjYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyMzQsIDAuMDAwMjI4LCAwLjAwMDIyNywgMC4wMDAyMjcsIDAuMDAwMjI3LCAwLjAwMDIyNywgMC4wMDAyMjciKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEExTikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjYwNjA1OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDY2MDQ0MTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2NjA2MDU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMTM0LCAwLjAwMDEzNCwgMC4wMDAxMzMsIDAuMDAwMTM0LCAwLjAwMDEzNCwgMC4wMDAxMzQsIDAuMDAwMTMzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjU3LCAwLjAwMDI1NywgMC4wMDAyNTcsIDAuMDAwMjU3LCAwLjAwMDI1NywgMC4wMDAyNTcsIDAuMDAwMjU3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjk1NzI1OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDY5NTcyNTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2OTQ3NTU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjI2LCAwLjAwMDIyNiwgMC4wMDAyMjYsIDAuMDAwMjI2LCAwLjAwMDIyNiwgMC4wMDAyMjYsIDAuMDAwMjI2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjM0LCAwLjAwMDIyOCwgMC4wMDAyMjcsIDAuMDAwMjI3LCAwLjAwMDIyNywgMC4wMDAyMjcsIDAuMDAwMjI3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMDgxMjYyNzsKLSAgICBmdW5jdGlvbiA6ICIoISgoIShBME4gQTFOKSkgQjApKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTBOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTMxMjIsIDAuMTI3MjQ4LCAwLjI1NDM3NiwgMC40NjYyMjEsIDAuNjc4MTk0LCAxLjE3MjUxLCAxLjQ1NDk2IiwgXAotICAgICAgICAgICIwLjEyMTc5LCAwLjEzNTkyLCAwLjI2MzA0NywgMC40NzUxMzksIDAuNjg3MTExLCAxLjE4MTEsIDEuNDY0NTUiLCBcCi0gICAgICAgICAgIjAuMTMyMTc2LCAwLjE0NjI5NSwgMC4yNzM0MjgsIDAuNDg1NDk4LCAwLjY5NzU3NywgMS4xOTE0OSwgMS40NzQ4OSIsIFwKLSAgICAgICAgICAiMC4xNDE5NjIsIDAuMTU2MDg0LCAwLjI4MzIwOSwgMC40OTUxMzEsIDAuNzA3MDIsIDEuMjAxODYsIDEuNDgzOSIsIFwKLSAgICAgICAgICAiMC4xNTA2MTEsIDAuMTY0NzQxLCAwLjI5MTkwOSwgMC41MDM5MTcsIDAuNzE1ODk2LCAxLjIxMTE2LCAxLjQ5MjM3IiwgXAotICAgICAgICAgICIwLjE2MjA3OSwgMC4xNzYyMiwgMC4zMDMzMywgMC41MTUyMDgsIDAuNzI3MTYxLCAxLjIyMTQ5LCAxLjUwNTEiLCBcCi0gICAgICAgICAgIjAuMTcxODg4LCAwLjE4NjA0NywgMC4zMTMxNDUsIDAuNTI1MDE2LCAwLjczNzIyOCwgMS4yMzE2NSwgMS41MTM3NCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNTc0MzgsIDAuMTg2NTkyLCAwLjQ0NzQwNiwgMC44ODI0NzMsIDEuMzE1NDgsIDIuMzI5NzMsIDIuOTE0NTgiLCBcCi0gICAgICAgICAgIjAuMTU3NzExLCAwLjE4NjU2NCwgMC40NDczNjksIDAuODgxMzE2LCAxLjMxNjE1LCAyLjMzMDEzLCAyLjkxMDIxIiwgXAotICAgICAgICAgICIwLjE1Nzg2OCwgMC4xODY1NzcsIDAuNDQ3MzYsIDAuODgxMjk3LCAxLjMxNjE0LCAyLjMzMDEzLCAyLjkxMDM0IiwgXAotICAgICAgICAgICIwLjE1ODAxOSwgMC4xODY3MTcsIDAuNDQ3MzA2LCAwLjg4MTA1MywgMS4zMTU2NCwgMi4zMzA3NSwgMi45MTQyOCIsIFwKLSAgICAgICAgICAiMC4xNTgyNzMsIDAuMTg2NjM5LCAwLjQ0NjQ2NSwgMC44ODE3NzgsIDEuMzE2MTEsIDIuMzMxNjUsIDIuOTE0MDgiLCBcCi0gICAgICAgICAgIjAuMTU4NzY5LCAwLjE4NzM3NiwgMC40NDY4NzQsIDAuODgyNDk1LCAxLjMxNTYsIDIuMzI5NzgsIDIuOTIyODIiLCBcCi0gICAgICAgICAgIjAuMTU4OTk3LCAwLjE4NzUzNSwgMC40NDczNDIsIDAuODgyODQzLCAxLjMxNjEzLCAyLjMzMjQ3LCAyLjkwOTYyIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE2MDM4NiwgMC4xODU4MywgMC40MTQ1OSwgMC43OTU3OTIsIDEuMTc2OTcsIDIuMDY2NDMsIDIuNTc0NzgiLCBcCi0gICAgICAgICAgIjAuMTcwMTM4LCAwLjE5NTU3OSwgMC40MjQzNzksIDAuODA1NjAzLCAxLjE4NjgsIDIuMDc2MjYsIDIuNTg0NDUiLCBcCi0gICAgICAgICAgIjAuMTgxMjczLCAwLjIwNjcwOSwgMC40MzU1MzcsIDAuODE2NzQ2LCAxLjE5Nzk2LCAyLjA4NzQ3LCAyLjU5NTY2IiwgXAotICAgICAgICAgICIwLjE5MDI3OCwgMC4yMTU3MjgsIDAuNDQ0NTYzLCAwLjgyNTg0LCAxLjIwNzAxLCAyLjA5NjQ4LCAyLjYwNDk0IiwgXAotICAgICAgICAgICIwLjE5ODA4NCwgMC4yMjM1MTQsIDAuNDUyMzc2LCAwLjgzMzU5NCwgMS4yMTQ4LCAyLjEwNDIyLCAyLjYxMjUyIiwgXAotICAgICAgICAgICIwLjIwODQ2NiwgMC4yMzQwOSwgMC40NjI5NjksIDAuODQ0MjI5LCAxLjIyNTQxLCAyLjExNDgsIDIuNjIzMDkiLCBcCi0gICAgICAgICAgIjAuMjE2MjU4LCAwLjI0MTcwOCwgMC40NzA1OTcsIDAuODUxODIyLCAxLjIzMzIyLCAyLjEyMjQzLCAyLjYzMDciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjcxNTI5LCAwLjMyMTg1MSwgMC43NzI5MzcsIDEuNTI1NTksIDIuMjgyNCwgNC4wMzU1OCwgNS4wMzgzNSIsIFwKLSAgICAgICAgICAiMC4yNzE0OTgsIDAuMzIxNzU0LCAwLjc3Mjg1NSwgMS41MjU4NCwgMi4yNzg3LCA0LjAzNDcxLCA1LjAzNjk4IiwgXAotICAgICAgICAgICIwLjI3MTU4MywgMC4zMjE3NjksIDAuNzcyODQ2LCAxLjUyNzksIDIuMjc4MzYsIDQuMDQxNjksIDUuMDM5MSIsIFwKLSAgICAgICAgICAiMC4yNzA5NTQsIDAuMzIxMzE0LCAwLjc3NDAyOSwgMS41MjU4LCAyLjI3ODM2LCA0LjAzNDc2LCA1LjA0MzQyIiwgXAotICAgICAgICAgICIwLjI3MTYzOCwgMC4zMjE4MjksIDAuNzc0MTEsIDEuNTI3OTUsIDIuMjgyMjksIDQuMDQxODEsIDUuMDM4NzUiLCBcCi0gICAgICAgICAgIjAuMjcxNjYyLCAwLjMyMTg3MiwgMC43NzQwODcsIDEuNTI4MDQsIDIuMjc4MDIsIDQuMDQxNjQsIDUuMDM3NjEiLCBcCi0gICAgICAgICAgIjAuMjcxMzU2LCAwLjMyMTgzOSwgMC43NzQxODksIDEuNTI3ODUsIDIuMjgyMDIsIDQuMDQwOCwgNS4wMzY5OCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMU4iOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExMDk1NiwgMC4xMjUwNzksIDAuMjUyMjA4LCAwLjQ2NDE3MSwgMC42NzU4NzcsIDEuMTcwMjYsIDEuNDU0MDUiLCBcCi0gICAgICAgICAgIjAuMTE5OTk5LCAwLjEzNDEzLCAwLjI2MTI2NSwgMC40NzMxNjMsIDAuNjg0ODY2LCAxLjE3OTM5LCAxLjQ2MTc1IiwgXAotICAgICAgICAgICIwLjEzMTQ3OCwgMC4xNDU2MSwgMC4yNzI3NDIsIDAuNDg0Nzk3LCAwLjY5NjU4MiwgMS4xOTE1MywgMS40NzMzNyIsIFwKLSAgICAgICAgICAiMC4xNDIwMDEsIDAuMTU2MTMsIDAuMjgzMjc4LCAwLjQ5NTQ0NywgMC43MDcwNDIsIDEuMjAxNTgsIDEuNDg0MTgiLCBcCi0gICAgICAgICAgIjAuMTUwOTIxLCAwLjE2NTA0OSwgMC4yOTIxOTEsIDAuNTA0MjQ2LCAwLjcxNjA4MywgMS4yMTA5NiwgMS40OTI4MSIsIFwKLSAgICAgICAgICAiMC4xNjQwOTcsIDAuMTc4Mjk0LCAwLjMwNTM1NywgMC41MTcyNzcsIDAuNzI5MzI1LCAxLjIyMzQ0LCAxLjUwNjA4IiwgXAotICAgICAgICAgICIwLjE3MzY4MiwgMC4xODc4NzYsIDAuMzE0OTQ2LCAwLjUyNjgwNSwgMC43Mzg2NTIsIDEuMjMzMTQsIDEuNTE1NjEiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTU3NDMyLCAwLjE4NjU4MywgMC40NDczOSwgMC44ODE3MiwgMS4zMTg3MiwgMi4zMzAxMSwgMi45MTE0NSIsIFwKLSAgICAgICAgICAiMC4xNTc3MiwgMC4xODY1NjYsIDAuNDQ3MzY3LCAwLjg4MTg2NiwgMS4zMTc3MSwgMi4zMjk3MywgMi45MTQzNiIsIFwKLSAgICAgICAgICAiMC4xNTc3OSwgMC4xODY2MDcsIDAuNDQ3Mjg3LCAwLjg4MTI3OSwgMS4zMTU1NCwgMi4zMzA2OCwgMi45MTQ2NyIsIFwKLSAgICAgICAgICAiMC4xNTgwNTgsIDAuMTg2NTk4LCAwLjQ0NzMxNCwgMC44ODEzMzIsIDEuMzE1ODIsIDIuMzMwNjIsIDIuOTEyMjMiLCBcCi0gICAgICAgICAgIjAuMTU4NDc0LCAwLjE4NjgsIDAuNDQ3MzQ1LCAwLjg4MTI4NCwgMS4zMTYxMiwgMi4zMzA3MSwgMi45MTQzOCIsIFwKLSAgICAgICAgICAiMC4xNTg3OTksIDAuMTg3MzQsIDAuNDQ3NDg2LCAwLjg4MTAxNSwgMS4zMTYwNywgMi4zMzQxNCwgMi45MTA0NiIsIFwKLSAgICAgICAgICAiMC4xNTk0MDcsIDAuMTg3NzE0LCAwLjQ0Njc1NywgMC44ODE4MzQsIDEuMzE3ODcsIDIuMzI5NTYsIDIuOTA4ODciKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTU4Njc2LCAwLjE4NDE1MiwgMC40MTMwMDcsIDAuNzk0MzcxLCAxLjE3NTkyLCAyLjA2NjA1LCAyLjU3NDYxIiwgXAotICAgICAgICAgICIwLjE2ODQwOSwgMC4xOTM4NDcsIDAuNDIyNzE3LCAwLjgwNDI1OSwgMS4xODU4LCAyLjA3NTY5LCAyLjU4NDE5IiwgXAotICAgICAgICAgICIwLjE3OTA3MiwgMC4yMDQ1MjksIDAuNDMzNDYyLCAwLjgxNDcyLCAxLjE5NjYsIDIuMDg2NjEsIDIuNTk0NzQiLCBcCi0gICAgICAgICAgIjAuMTg3NTgzLCAwLjIxMzA4MSwgMC40NDIwMDEsIDAuODIzNjI4LCAxLjIwNDkyLCAyLjA5NTU1LCAyLjYwMzY2IiwgXAotICAgICAgICAgICIwLjE5NDg3NSwgMC4yMjAzMDYsIDAuNDQ5NDA1LCAwLjgzMDY1MywgMS4yMTE5MSwgMi4xMDIyLCAyLjYxMTIzIiwgXAotICAgICAgICAgICIwLjIwNDQzMywgMC4yMjk4ODksIDAuNDU4NzE3LCAwLjg0MDI0OCwgMS4yMjI1MywgMi4xMTIxNCwgMi42MjAxOSIsIFwKLSAgICAgICAgICAiMC4yMTE2MzksIDAuMjM3MjYxLCAwLjQ2NjI2OCwgMC44NDc2MzEsIDEuMjI5MDksIDIuMTE5MjMsIDIuNjI2ODEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjcxNDE3LCAwLjMyMjYxNywgMC43NzQyNjEsIDEuNTI4NDgsIDIuMjc2NzcsIDQuMDMxNjYsIDUuMDM3OCIsIFwKLSAgICAgICAgICAiMC4yNzEwMzQsIDAuMzIyNjU4LCAwLjc3NzAyMywgMS41MjQ1OSwgMi4yNzY2NywgNC4wMzE4OCwgNS4wMzcwMSIsIFwKLSAgICAgICAgICAiMC4yNzE0OTUsIDAuMzIxODAzLCAwLjc3NzEyLCAxLjUyODMyLCAyLjI3NjQ0LCA0LjAzMTgzLCA1LjAzNDQ0IiwgXAotICAgICAgICAgICIwLjI3MTUzMSwgMC4zMjI1ODgsIDAuNzcyOTU5LCAxLjUyNjMsIDIuMjgzMTgsIDQuMDMzNTcsIDUuMDM0OTciLCBcCi0gICAgICAgICAgIjAuMjcxNjcxLCAwLjMyMTg0OSwgMC43NzIyMzUsIDEuNTM0MDMsIDIuMjg4OTIsIDQuMDM1OTgsIDUuMDM0MTkiLCBcCi0gICAgICAgICAgIjAuMjcxNjQ3LCAwLjMyMTk3MSwgMC43NzI5OCwgMS41MzQsIDIuMjc3MTcsIDQuMDMxMjMsIDUuMDQwMTYiLCBcCi0gICAgICAgICAgIjAuMjcxNDE1LCAwLjMyMTk1NiwgMC43NzY0LCAxLjUyNTc0LCAyLjI3Njc3LCA0LjAzNTg2LCA1LjA0MzgzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODA5MzQsIDAuMDk1MDM4LCAwLjIyMjI2LCAwLjQzNDIxNCwgMC42NDYyMjgsIDEuMTQxMTcsIDEuNDIzNDYiLCBcCi0gICAgICAgICAgIjAuMDkwNzI5LCAwLjEwNDg1NywgMC4yMzIwMTEsIDAuNDQ0MDk4LCAwLjY1NTk4MiwgMS4xNTA1OSwgMS40MzMyMyIsIFwKLSAgICAgICAgICAiMC4xMDI5NDEsIDAuMTE3MTksIDAuMjQ0MzEzLCAwLjQ1NTk3NSwgMC42NjczNSwgMS4xNjE5MiwgMS40NDM3NiIsIFwKLSAgICAgICAgICAiMC4xMTUyNzgsIDAuMTI5NDI4LCAwLjI1NjY4MiwgMC40Njg0NDcsIDAuNjc5MzIyLCAxLjE3NDEzLCAxLjQ1NzIyIiwgXAotICAgICAgICAgICIwLjEyODE2OSwgMC4xNDIyNDMsIDAuMjY5MTA4LCAwLjQ4MDgzNCwgMC42OTE2NCwgMS4xODU5NywgMS40Njg4IiwgXAotICAgICAgICAgICIwLjE0ODIzNywgMC4xNjIzNjksIDAuMjg4NjMzLCAwLjUwMDU4LCAwLjcxMjMyMywgMS4yMDU5MywgMS40ODc2NCIsIFwKLSAgICAgICAgICAiMC4xNjU0NzgsIDAuMTgwMDY5LCAwLjMwNTk2MSwgMC41MTgwOTEsIDAuNzI5NTYsIDEuMjIyNTEsIDEuNTA1NjYiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTU3NzU2LCAwLjE4NjY2MywgMC40NDc2NjcsIDAuODgyNTYyLCAxLjMxNjksIDIuMzMxNDcsIDIuOTEwNTgiLCBcCi0gICAgICAgICAgIjAuMTU3Nzg4LCAwLjE4NjY2NiwgMC40NDc0NDYsIDAuODgyNTY3LCAxLjMxNzIsIDIuMzMxMDIsIDIuOTEwNTYiLCBcCi0gICAgICAgICAgIjAuMTU5MTg4LCAwLjE4NzQwMywgMC40NDc2MTYsIDAuODgyNTYsIDEuMzE3MzEsIDIuMzMwODUsIDIuOTA5NTMiLCBcCi0gICAgICAgICAgIjAuMTYzNDU5LCAwLjE5MDkwNiwgMC40NDc1OTEsIDAuODgyMjg3LCAxLjMxNjgsIDIuMzMwOSwgMi45MTEyMiIsIFwKLSAgICAgICAgICAiMC4xNjkxNDMsIDAuMTk1NzM5LCAwLjQ0Nzk5NywgMC44ODIyNjcsIDEuMzE2NzcsIDIuMzMxNjMsIDIuOTEwNTMiLCBcCi0gICAgICAgICAgIjAuMTgwMjg2LCAwLjIwNjEzMiwgMC40NTE2NDIsIDAuODgyMzI5LCAxLjMxNzI0LCAyLjMzMTU4LCAyLjkwOTQ3IiwgXAotICAgICAgICAgICIwLjE5MTY1NiwgMC4yMTY1NTcsIDAuNDU3MDk2LCAwLjg4MjQzOSwgMS4zMTc1OSwgMi4zMzEwNywgMi45MTEzMSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNDM4OTksIDAuMTY5Mjg4LCAwLjM5ODMyOCwgMC43Nzk3ODYsIDEuMTYxNTEsIDIuMDUyMTQsIDIuNTU5NzciLCBcCi0gICAgICAgICAgIjAuMTUyNzI3LCAwLjE3ODIsIDAuNDA3MDA5LCAwLjc4ODkwNSwgMS4xNjk4NCwgMi4wNjAwNywgMi41Njg3NyIsIFwKLSAgICAgICAgICAiMC4xNjM1MywgMC4xODkxMzEsIDAuNDE3OTk3LCAwLjgwMDE0NSwgMS4xODEwOSwgMi4wNzExMywgMi41Nzk3NCIsIFwKLSAgICAgICAgICAiMC4xNzQ0MiwgMC4xOTk5OSwgMC40MjkyMTUsIDAuODEwNzQ4LCAxLjE5Mjg3LCAyLjA4MjY0LCAyLjU4OTkiLCBcCi0gICAgICAgICAgIjAuMTg1MTM4LCAwLjIxMDc5OCwgMC40Mzk5MSwgMC44MjEzMTksIDEuMjAzMDQsIDIuMDkyMzMsIDIuNjAxODIiLCBcCi0gICAgICAgICAgIjAuMjAyNzE1LCAwLjIyNzkyMywgMC40NTY1MywgMC44MzkzMjMsIDEuMjIwMTYsIDIuMTA5OTUsIDIuNjE5MTciLCBcCi0gICAgICAgICAgIjAuMjE3NTM1LCAwLjI0MzIxNywgMC40NzMwMjMsIDAuODU0NTU1LCAxLjIzNjEyLCAyLjEyNTgyLCAyLjYzNDE5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI3MTI5MywgMC4zMjI4LCAwLjc3MjIzMiwgMS41MjQyOSwgMi4yOTE4NiwgNC4wMzI3OSwgNS4wMzkyOCIsIFwKLSAgICAgICAgICAiMC4yNzIyODMsIDAuMzIwOTIzLCAwLjc3NDQzNSwgMS41MjM5MiwgMi4yODI0MiwgNC4wMzUzOCwgNS4wNDM2OSIsIFwKLSAgICAgICAgICAiMC4yNzE0NTksIDAuMzIwOTAzLCAwLjc3NjU5MSwgMS41MjU5MSwgMi4yNzkwOSwgNC4wNDE3NSwgNS4wMzk4MyIsIFwKLSAgICAgICAgICAiMC4yNzI4NTUsIDAuMzIxNDM5LCAwLjc3MjMxNSwgMS41MjUzOSwgMi4yNzcyOCwgNC4wMzEwMiwgNS4wNDQwMiIsIFwKLSAgICAgICAgICAiMC4yNzM5NzcsIDAuMzIzNDEzLCAwLjc3NjYzNywgMS41MzM1LCAyLjI4ODA3LCA0LjA0MzMsIDUuMDM2OTUiLCBcCi0gICAgICAgICAgIjAuMjc5NDQyLCAwLjMyNzM1NSwgMC43NzY1MjksIDEuNTI0NTgsIDIuMjgyNDYsIDQuMDQzMjYsIDUuMDM5MTkiLCBcCi0gICAgICAgICAgIjAuMjg0NjExLCAwLjMzMjMyNCwgMC43NzUyMTEsIDEuNTI4MTMsIDIuMjkwNDcsIDQuMDQyMywgNS4wNDQwNCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEwTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxMjMzLCAwLjAwMTIzNCwgMC4wMDEyMzgsIDAuMDAxMjM0LCAwLjAwMTIzNywgMC4wMDEyMzcsIDAuMDAxMjM5IiwgXAotICAgICAgICAgICIwLjAwMTIwMywgMC4wMDEyMDQsIDAuMDAxMjA3LCAwLjAwMTIwNywgMC4wMDEyMDgsIDAuMDAxMjA4LCAwLjAwMTIwOCIsIFwKLSAgICAgICAgICAiMC4wMDExOTIsIDAuMDAxMTkzLCAwLjAwMTE5NiwgMC4wMDExOTcsIDAuMDAxMTk4LCAwLjAwMTE5OCwgMC4wMDExOTgiLCBcCi0gICAgICAgICAgIjAuMDAxMTg4LCAwLjAwMTE4OSwgMC4wMDExOTIsIDAuMDAxMTk1LCAwLjAwMTE5NSwgMC4wMDExOTUsIDAuMDAxMTk1IiwgXAotICAgICAgICAgICIwLjAwMTE4OCwgMC4wMDExOSwgMC4wMDExOTMsIDAuMDAxMTk1LCAwLjAwMTE5NiwgMC4wMDExOTYsIDAuMDAxMTk2IiwgXAotICAgICAgICAgICIwLjAwMTE5NCwgMC4wMDExOTYsIDAuMDAxMiwgMC4wMDEyMDIsIDAuMDAxMjAzLCAwLjAwMTIwNCwgMC4wMDEyMDQiLCBcCi0gICAgICAgICAgIjAuMDAxMjAzLCAwLjAwMTIwNCwgMC4wMDEyMDksIDAuMDAxMjEyLCAwLjAwMTIxMiwgMC4wMDEyMTMsIDAuMDAxMjEzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyMzM5LCAwLjAwMjM0LCAwLjAwMjM0MiwgMC4wMDIzNDMsIDAuMDAyMzQ0LCAwLjAwMjM0NCwgMC4wMDIzNDQiLCBcCi0gICAgICAgICAgIjAuMDAyMzIsIDAuMDAyMzIxLCAwLjAwMjMyNSwgMC4wMDIzMjcsIDAuMDAyMzI3LCAwLjAwMjMyOCwgMC4wMDIzMjgiLCBcCi0gICAgICAgICAgIjAuMDAyMzE4LCAwLjAwMjMyLCAwLjAwMjMyNiwgMC4wMDIzMjgsIDAuMDAyMzI5LCAwLjAwMjMzLCAwLjAwMjMzIiwgXAotICAgICAgICAgICIwLjAwMjMyMiwgMC4wMDIzMjQsIDAuMDAyMzMxLCAwLjAwMjMzNCwgMC4wMDIzMzUsIDAuMDAyMzM2LCAwLjAwMjMzNiIsIFwKLSAgICAgICAgICAiMC4wMDIzMjUsIDAuMDAyMzI2LCAwLjAwMjMzNSwgMC4wMDIzMzgsIDAuMDAyMzM5LCAwLjAwMjM0LCAwLjAwMjM0IiwgXAotICAgICAgICAgICIwLjAwMjMzNiwgMC4wMDIzNCwgMC4wMDIzNTEsIDAuMDAyMzU1LCAwLjAwMjM1NiwgMC4wMDIzNTUsIDAuMDAyMzU4IiwgXAotICAgICAgICAgICIwLjAwMjM1NywgMC4wMDIzNTksIDAuMDAyMzcsIDAuMDAyMzc0LCAwLjAwMjM3NCwgMC4wMDIzNzcsIDAuMDAyMzc4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTFOIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDEyMzIsIDAuMDAxMjMzLCAwLjAwMTIzNSwgMC4wMDEyMzgsIDAuMDAxMjM2LCAwLjAwMTIzNiwgMC4wMDEyMzgiLCBcCi0gICAgICAgICAgIjAuMDAxMjA0LCAwLjAwMTIwMywgMC4wMDEyMDcsIDAuMDAxMjA3LCAwLjAwMTIwOCwgMC4wMDEyMDgsIDAuMDAxMjA3IiwgXAotICAgICAgICAgICIwLjAwMTIwMSwgMC4wMDEyMDIsIDAuMDAxMjA2LCAwLjAwMTIwOCwgMC4wMDEyMDgsIDAuMDAxMjA4LCAwLjAwMTIwOSIsIFwKLSAgICAgICAgICAiMC4wMDEyMDksIDAuMDAxMjExLCAwLjAwMTIxNSwgMC4wMDEyMTgsIDAuMDAxMjE5LCAwLjAwMTIxOSwgMC4wMDEyMiIsIFwKLSAgICAgICAgICAiMC4wMDEyMjQsIDAuMDAxMjI1LCAwLjAwMTIzMSwgMC4wMDEyMzMsIDAuMDAxMjM0LCAwLjAwMTIzNCwgMC4wMDEyMzUiLCBcCi0gICAgICAgICAgIjAuMDAxMjMzLCAwLjAwMTIzNCwgMC4wMDEyNCwgMC4wMDEyNDIsIDAuMDAxMjQzLCAwLjAwMTI0NCwgMC4wMDEyNDQiLCBcCi0gICAgICAgICAgIjAuMDAxMjU1LCAwLjAwMTI1NiwgMC4wMDEyNjMsIDAuMDAxMjY1LCAwLjAwMTI2NiwgMC4wMDEyNjcsIDAuMDAxMjY3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyMTEsIDAuMDAyMTExLCAwLjAwMjExMywgMC4wMDIxMTQsIDAuMDAyMTE0LCAwLjAwMjExNCwgMC4wMDIxMTQiLCBcCi0gICAgICAgICAgIjAuMDAyMDg0LCAwLjAwMjA4NSwgMC4wMDIwODksIDAuMDAyMDksIDAuMDAyMDkxLCAwLjAwMjA5MSwgMC4wMDIwOTEiLCBcCi0gICAgICAgICAgIjAuMDAyMDc2LCAwLjAwMjA3OCwgMC4wMDIwODMsIDAuMDAyMDg1LCAwLjAwMjA4NiwgMC4wMDIwODYsIDAuMDAyMDg2IiwgXAotICAgICAgICAgICIwLjAwMjA3NiwgMC4wMDIwNzcsIDAuMDAyMDg0LCAwLjAwMjA4NywgMC4wMDIwODgsIDAuMDAyMDg5LCAwLjAwMjA4OSIsIFwKLSAgICAgICAgICAiMC4wMDIwOCwgMC4wMDIwODIsIDAuMDAyMDksIDAuMDAyMDk0LCAwLjAwMjA5NSwgMC4wMDIwOTYsIDAuMDAyMDk2IiwgXAotICAgICAgICAgICIwLjAwMjA5OCwgMC4wMDIxLCAwLjAwMjExMywgMC4wMDIxMTMsIDAuMDAyMTE0LCAwLjAwMjExNSwgMC4wMDIxMTkiLCBcCi0gICAgICAgICAgIjAuMDAyMTE3LCAwLjAwMjEyMywgMC4wMDIxMzMsIDAuMDAyMTM0LCAwLjAwMjEzNSwgMC4wMDIxNDEsIDAuMDAyMTQxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTA2NSwgMC4wMDEwNjUsIDAuMDAxMDY2LCAwLjAwMTA2NiwgMC4wMDEwNjYsIDAuMDAxMDY1LCAwLjAwMTA2NSIsIFwKLSAgICAgICAgICAiMC4wMDEwNiwgMC4wMDEwNiwgMC4wMDEwNjMsIDAuMDAxMDYzLCAwLjAwMTA2NCwgMC4wMDEwNjMsIDAuMDAxMDYzIiwgXAotICAgICAgICAgICIwLjAwMTA1NywgMC4wMDEwNTgsIDAuMDAxMDYxLCAwLjAwMTA2MiwgMC4wMDEwNjIsIDAuMDAxMDYyLCAwLjAwMTA2MiIsIFwKLSAgICAgICAgICAiMC4wMDEwNTYsIDAuMDAxMDU3LCAwLjAwMTA2LCAwLjAwMTA2MiwgMC4wMDEwNjIsIDAuMDAxMDYyLCAwLjAwMTA2MiIsIFwKLSAgICAgICAgICAiMC4wMDEwNTgsIDAuMDAxMDU5LCAwLjAwMTA2MSwgMC4wMDEwNjIsIDAuMDAxMDYyLCAwLjAwMTA2MiwgMC4wMDEwNjIiLCBcCi0gICAgICAgICAgIjAuMDAxMDYzLCAwLjAwMTA2MywgMC4wMDEwNjIsIDAuMDAxMDYzLCAwLjAwMTA2MywgMC4wMDEwNjIsIDAuMDAxMDYyIiwgXAotICAgICAgICAgICIwLjAwMTA3LCAwLjAwMTA2OSwgMC4wMDEwNjQsIDAuMDAxMDY0LCAwLjAwMTA2MywgMC4wMDEwNjMsIDAuMDAxMDYzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwNDA1LCAwLjAwMDQwNSwgMC4wMDA0MDYsIDAuMDAwNDA2LCAwLjAwMDQwNywgMC4wMDA0MDcsIDAuMDAwNDA3IiwgXAotICAgICAgICAgICIwLjAwMDM5NiwgMC4wMDAzOTgsIDAuMDAwNDAzLCAwLjAwMDQwNSwgMC4wMDA0MDUsIDAuMDAwNDA2LCAwLjAwMDQwOCIsIFwKLSAgICAgICAgICAiMC4wMDAzODgsIDAuMDAwMzksIDAuMDAwMzk5LCAwLjAwMDQwMywgMC4wMDA0MDQsIDAuMDAwNDA1LCAwLjAwMDQwNiIsIFwKLSAgICAgICAgICAiMC4wMDAzODIsIDAuMDAwMzg1LCAwLjAwMDM5NiwgMC4wMDA0MDEsIDAuMDAwNDAzLCAwLjAwMDQwNSwgMC4wMDA0MDUiLCBcCi0gICAgICAgICAgIjAuMDAwMzc3LCAwLjAwMDM4LCAwLjAwMDM5MywgMC4wMDAzOTksIDAuMDAwNDAyLCAwLjAwMDQwNCwgMC4wMDA0MDQiLCBcCi0gICAgICAgICAgIjAuMDAwMzczLCAwLjAwMDM3NiwgMC4wMDAzOSwgMC4wMDAzOTcsIDAuMDAwNCwgMC4wMDA0MDMsIDAuMDAwNDA0IiwgXAotICAgICAgICAgICIwLjAwMDM3MiwgMC4wMDAzNzQsIDAuMDAwMzg4LCAwLjAwMDM5NSwgMC4wMDAzOTksIDAuMDAwNDAyLCAwLjAwMDQwMyIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogT0FJMkJCMlgyICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoT0FJMkJCMlgyKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMzMzMzk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEwTikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNTk1MDk1OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDU5NDY3OTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA1OTUwOTU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwODcsIDAuMDAwODQ4LCAwLjAwMDgzOCwgMC4wMDA4NDIsIDAuMDAwODUsIDAuMDAwODczLCAwLjAwMDg5NSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjI3OCwgMC4wMDIyNTksIDAuMDAyMjU1LCAwLjAwMjI2LCAwLjAwMjI3MSwgMC4wMDIyOTMsIDAuMDAyMzA5Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihBMU4pICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYyMzAzNDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MjI3MzU7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjIzMDM0OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDg2NiwgMC4wMDA4NDUsIDAuMDAwODM0LCAwLjAwMDgzOSwgMC4wMDA4NDgsIDAuMDAwODY5LCAwLjAwMDg4OSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjUyMiwgMC4wMDI1MDMsIDAuMDAyNSwgMC4wMDI1MDUsIDAuMDAyNTE0LCAwLjAwMjUzNywgMC4wMDI1NTMiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE3ODIxNjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE3NzE2MTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE3ODIxNjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA3MywgMC4wMDA3NzQsIDAuMDAwNzgxLCAwLjAwMDc4NiwgMC4wMDA3ODksIDAuMDAwNzkyLCAwLjAwMDc5NSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDg1OSwgMC4wMDA4NiwgMC4wMDA4NiwgMC4wMDA4NiwgMC4wMDA4NiwgMC4wMDA4NiwgMC4wMDA4NiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQjEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTY1MDEyOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTY0OTk7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNjUwMTI7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjE1LCAwLjAwMDIxNSwgMC4wMDAyMTUsIDAuMDAwMjE1LCAwLjAwMDIxNSwgMC4wMDAyMTUsIDAuMDAwMjE1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNjE5LCAwLjAwMDYxOSwgMC4wMDA2MTksIDAuMDAwNjE5LCAwLjAwMDYxOSwgMC4wMDA2MTksIDAuMDAwNjE5Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMjc0Mzc5OwotICAgIGZ1bmN0aW9uIDogIighKChCMCtCMSkgKCEoQTBOIEExTikpKSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEwTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDkwNDk5LCAwLjI4NTA0MSwgMC40NDAzMzQsIDAuNjM0MTA2LCAwLjgyNzgwOSwgMS4wMjIxNCwgMS4yMTU4MiIsIFwKLSAgICAgICAgICAiMC4xMDA2OSwgMC4yOTUzMzIsIDAuNDUwNTcsIDAuNjQ0MzMzLCAwLjgzODM4NywgMS4wMzE5OCwgMS4yMjYxNyIsIFwKLSAgICAgICAgICAiMC4xMTMyNTcsIDAuMzA3OTM2LCAwLjQ2MzE0NywgMC42NTY5MjUsIDAuODUxMjcyLCAxLjA0NDYyLCAxLjIzODYxIiwgXAotICAgICAgICAgICIwLjEyNDQ3OSwgMC4zMTkxNDYsIDAuNDc0NDY5LCAwLjY2ODIwNiwgMC44NjIwNTYsIDEuMDU1OTQsIDEuMjQ5OTkiLCBcCi0gICAgICAgICAgIjAuMTM0MjExLCAwLjMyODkzMSwgMC40ODQxMzUsIDAuNjc4MDE0LCAwLjg3MjExNCwgMS4wNjU0OSwgMS4yNTk4NCIsIFwKLSAgICAgICAgICAiMC4xNDc2ODUsIDAuMzQyNDU1LCAwLjQ5NzYwNywgMC42OTE0NDcsIDAuODg1MjczLCAxLjA3OTM1LCAxLjI3Mjc1IiwgXAotICAgICAgICAgICIwLjE1ODA3OSwgMC4zNTI4NzgsIDAuNTA4LCAwLjcwMjE2NSwgMC44OTYsIDEuMDg5NTQsIDEuMjgzMTEiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTE4MTAxLCAwLjUwOTgzMSwgMC44MjM3NDYsIDEuMjE2MDIsIDEuNjA3OTMsIDIuMDAwMSwgMi4zOTI0MSIsIFwKLSAgICAgICAgICAiMC4xMTgxMDgsIDAuNTA5OTY3LCAwLjgyMzUyMywgMS4yMTYwMiwgMS42MDc4NCwgMi4wMDAxOCwgMi4zOTI4NyIsIFwKLSAgICAgICAgICAiMC4xMTgxMjksIDAuNTA5ODgxLCAwLjgyMzUwMywgMS4yMTYwMSwgMS42MDgsIDIuMDAwMTksIDIuMzkyNzMiLCBcCi0gICAgICAgICAgIjAuMTE4MjUyLCAwLjUwOTg3NywgMC44MjM1MzMsIDEuMjE2MDQsIDEuNjA4MjEsIDIuMDAwMDUsIDIuMzkyODQiLCBcCi0gICAgICAgICAgIjAuMTE4NDc3LCAwLjUwOTg1NSwgMC44MjM1OTQsIDEuMjE2MDQsIDEuNjA4MDEsIDIuMDAwMSwgMi4zOTI3OSIsIFwKLSAgICAgICAgICAiMC4xMTg5MzgsIDAuNTA5ODU0LCAwLjgyMzcxNCwgMS4yMTYsIDEuNjA3OTcsIDIuMDAwNDQsIDIuMzkyMjMiLCBcCi0gICAgICAgICAgIjAuMTE5Mzg0LCAwLjUwOTg5LCAwLjgyMzcyNiwgMS4yMTYsIDEuNjA3ODQsIDEuOTk5OTYsIDIuMzkyNTQiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk0NzE5LCAwLjI4Nzk3OCwgMC40NDUyMjYsIDAuNjQxOTA4LCAwLjgzODU5MywgMS4wMzQ3NSwgMS4yMzE5NiIsIFwKLSAgICAgICAgICAiMC4xMDQ1MjgsIDAuMjk3ODUyLCAwLjQ1NTIxMiwgMC42NTE2MzQsIDAuODQ4NjE1LCAxLjA0NDYsIDEuMjQxOSIsIFwKLSAgICAgICAgICAiMC4xMTY2NjIsIDAuMzEwMDE1LCAwLjQ2NzI4OSwgMC42NjM5MjEsIDAuODYwNTA4LCAxLjA1NjgsIDEuMjUzNDYiLCBcCi0gICAgICAgICAgIjAuMTI3Mjg5LCAwLjMyMDcyMSwgMC40NzgwNTIsIDAuNjc0NDE5LCAwLjg3MTQxLCAxLjA2NzQ4LCAxLjI2NDU4IiwgXAotICAgICAgICAgICIwLjEzNjQxNSwgMC4zMjk3MjgsIDAuNDg3MTY4LCAwLjY4MzY2OCwgMC44ODAwOCwgMS4wNzY2OSwgMS4yNzM0OCIsIFwKLSAgICAgICAgICAiMC4xNDg4MTMsIDAuMzQyMTg2LCAwLjQ5OTQ3LCAwLjY5NjAyMiwgMC44OTI1NTMsIDEuMDg5MDUsIDEuMjg2MTgiLCBcCi0gICAgICAgICAgIjAuMTU4Nzk4LCAwLjM1MjExMiwgMC41MDkzODksIDAuNzA2MjczLCAwLjkwMjUxNiwgMS4wOTkxLCAxLjI5NTQyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwNjM0NCwgMC40OTE4MDQsIDAuODAyNzQxLCAxLjE5MTMyLCAxLjU4MTE5LCAxLjk2ODczLCAyLjM1ODM3IiwgXAotICAgICAgICAgICIwLjEwNjMzLCAwLjQ5MTg1MSwgMC44MDI4MzQsIDEuMTkxODMsIDEuNTgxMiwgMS45Njg3NiwgMi4zNTg4NCIsIFwKLSAgICAgICAgICAiMC4xMDYzNTQsIDAuNDkyMTQxLCAwLjgwMjc4NSwgMS4xOTEzMiwgMS41ODA0LCAxLjk2ODgxLCAyLjM1NzE5IiwgXAotICAgICAgICAgICIwLjEwNjQ1MSwgMC40OTE4OCwgMC44MDI3MDQsIDEuMTkxNjksIDEuNTgxMTEsIDEuOTY4NzYsIDIuMzU4MzQiLCBcCi0gICAgICAgICAgIjAuMTA2NTg4LCAwLjQ5MTc5NCwgMC44MDI3MDksIDEuMTkxMzcsIDEuNTc5OTUsIDEuOTY4ODksIDIuMzU4IiwgXAotICAgICAgICAgICIwLjEwNjg3NywgMC40OTE5NDQsIDAuODAzMDgsIDEuMTkyMDIsIDEuNTc5OTYsIDEuOTY4ODUsIDIuMzU5MTYiLCBcCi0gICAgICAgICAgIjAuMTA3MDk5LCAwLjQ5MjAxNiwgMC44MDI4ODMsIDEuMTkxNTYsIDEuNTgwMjEsIDEuOTY4OTMsIDIuMzU3MzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTFOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODc0MTEsIDAuMjgyMDA3LCAwLjQzNzIwOCwgMC42MzEwMTYsIDAuODI0NzcyLCAxLjAxOTA2LCAxLjIxMjg1IiwgXAotICAgICAgICAgICIwLjA5NzY2MywgMC4yOTIyOTIsIDAuNDQ3MjU2LCAwLjY0MTU5NSwgMC44MzUwNTUsIDEuMDI5MjIsIDEuMjIzMiIsIFwKLSAgICAgICAgICAiMC4xMTAyMTUsIDAuMzA0OTAyLCAwLjQ2MDA4MSwgMC42NTM5NDgsIDAuODQ4MDQ0LCAxLjA0MTQ2LCAxLjIzNTkxIiwgXAotICAgICAgICAgICIwLjEyMTUzNCwgMC4zMTYyODQsIDAuNDcxNTA3LCAwLjY2NTM2NCwgMC44NTk0NDQsIDEuMDUyODksIDEuMjQ3MjEiLCBcCi0gICAgICAgICAgIjAuMTMxNzk3LCAwLjMyNjUwNywgMC40ODE3MTgsIDAuNjc1NjgxLCAwLjg2OTI2NCwgMS4wNjMwOCwgMS4yNTY4NCIsIFwKLSAgICAgICAgICAiMC4xNDU2ODEsIDAuMzQwMTkzLCAwLjQ5NTQ5OCwgMC42ODkxNzQsIDAuODgzMzM5LCAxLjA3Njg3LCAxLjI3MTE0IiwgXAotICAgICAgICAgICIwLjE1NjM4MywgMC4zNTA4NTksIDAuNTA2MjI1LCAwLjY5OTk4LCAwLjg5NDA0MywgMS4wODc2NSwgMS4yODEzMSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTgyMTcsIDAuNTA5OCwgMC44MjM1ODMsIDEuMjE1OTUsIDEuNjA3OTcsIDIuMDAwMDcsIDIuMzkyNzIiLCBcCi0gICAgICAgICAgIjAuMTE4MjAxLCAwLjUwOTc4NywgMC44MjM2MDYsIDEuMjE2MjMsIDEuNjA3OTEsIDIuMDAwNTcsIDIuMzkyNzIiLCBcCi0gICAgICAgICAgIjAuMTE4MjM1LCAwLjUwOTk2NCwgMC44MjM3MiwgMS4yMTYwNCwgMS42MDgzMiwgMi4wMDAwOCwgMi4zOTI4MiIsIFwKLSAgICAgICAgICAiMC4xMTg1NzUsIDAuNTA5ODgxLCAwLjgyMzUyMywgMS4yMTYwMywgMS42MDc5MiwgMi4wMDAwNiwgMi4zOTI3OCIsIFwKLSAgICAgICAgICAiMC4xMTg5MjMsIDAuNTA5ODY4LCAwLjgyMzczMSwgMS4yMTU2NCwgMS42MDgxOCwgMi4wMDAwMiwgMi4zOTI2NyIsIFwKLSAgICAgICAgICAiMC4xMTk4MDYsIDAuNTA5OTQxLCAwLjgyMzcwNCwgMS4yMTYwMywgMS42MDgxMywgMS45OTk5MiwgMi4zOTIyMSIsIFwKLSAgICAgICAgICAiMC4xMjA2NzgsIDAuNTA5OTQ5LCAwLjgyMzUwOCwgMS4yMTYsIDEuNjA4MjcsIDIuMDAwMDQsIDIuMzkyODQiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDkzNTE3LCAwLjI5MDcwOSwgMC40NDc5NjMsIDAuNjQ1ODk3LCAwLjg0NDMxOCwgMS4wNDMwMiwgMS4yNDI2MSIsIFwKLSAgICAgICAgICAiMC4xMDMyODgsIDAuMzAwNDc0LCAwLjQ1NzgzMiwgMC42NTU0MjgsIDAuODU0MTk5LCAxLjA1Mjc4LCAxLjI1MTQ4IiwgXAotICAgICAgICAgICIwLjExNTQ1NSwgMC4zMTI2ODQsIDAuNDcwMDIzLCAwLjY2Nzk1NCwgMC44NjY4NjcsIDEuMDY1MjQsIDEuMjY0MiIsIFwKLSAgICAgICAgICAiMC4xMjYzMzgsIDAuMzIzNjg3LCAwLjQ4MTE2NiwgMC42Nzg4ODIsIDAuODc3NjYzLCAxLjA3NjQ0LCAxLjI3NTI5IiwgXAotICAgICAgICAgICIwLjEzNTc0NywgMC4zMzMxNDgsIDAuNDkwNTY1LCAwLjY4ODMxMywgMC44ODcwMDksIDEuMDg2MzIsIDEuMjg0NjIiLCBcCi0gICAgICAgICAgIjAuMTQ4NTQ2LCAwLjM0NTg5NiwgMC41MDMzMzQsIDAuNzAxMTgyLCAwLjkwMDAxNywgMS4wOTg1MiwgMS4yOTgwNCIsIFwKLSAgICAgICAgICAiMC4xNTg4MjMsIDAuMzU2MjU4LCAwLjUxMzY1OSwgMC43MTE3MzUsIDAuOTEwMTM4LCAxLjEwODg5LCAxLjMwODQ5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwMzczNCwgMC40OTI3NjQsIDAuODExNjUzLCAxLjIwMTA4LCAxLjU5OTAzLCAxLjk5Mzc4LCAyLjM4MDg0IiwgXAotICAgICAgICAgICIwLjEwMzczNiwgMC40OTMxMywgMC44MDc2MDMsIDEuMjA0MjMsIDEuNTk5MTksIDEuOTkzNzIsIDIuMzg4NDgiLCBcCi0gICAgICAgICAgIjAuMTAzNjUsIDAuNDk1NjI3LCAwLjgxMjMwMSwgMS4yMDEwMywgMS41OTU5NSwgMS45OTM5MiwgMi4zODQ0MyIsIFwKLSAgICAgICAgICAiMC4xMDM3OTUsIDAuNDkyNzYxLCAwLjgwNzc0NCwgMS4yMDg4OCwgMS41OTQ1NSwgMS45OTAyMywgMi4zODE4OCIsIFwKLSAgICAgICAgICAiMC4xMDM5MiwgMC40OTUzNywgMC44MTE4ODYsIDEuMjA4NjYsIDEuNjA0NzksIDEuOTg3NDQsIDIuMzgzNDgiLCBcCi0gICAgICAgICAgIjAuMTA0MjY5LCAwLjQ5Mjc2MywgMC44MDk3OTYsIDEuMjA4NzksIDEuNTk4ODYsIDIuMDAwNDQsIDIuMzgwODUiLCBcCi0gICAgICAgICAgIjAuMTA0NTU3LCAwLjQ5NTI3OSwgMC44MDc1OTgsIDEuMjAwODksIDEuNjAzNiwgMi4wMDA5NSwgMi4zODIwNCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU1NTA5LCAwLjI1MDYxNywgMC40MDY2MDcsIDAuNjAxNTI4LCAwLjc5NjUyLCAwLjk5MTYzNiwgMS4xODYzOSIsIFwKLSAgICAgICAgICAiMC4wNjQxMDMsIDAuMjU5NDI4LCAwLjQxNTM1OCwgMC42MTA0NCwgMC44MDUzNzgsIDEuMDAwNjMsIDEuMTk1MjQiLCBcCi0gICAgICAgICAgIjAuMDc0MTIsIDAuMjY5NTg1LCAwLjQyNTU2OSwgMC42MjA1ODMsIDAuODE1NDg1LCAxLjAxMDU0LCAxLjIwNTU2IiwgXAotICAgICAgICAgICIwLjA4Mzk4OCwgMC4yNzk2MjEsIDAuNDM1NzUyLCAwLjYzMDc2MSwgMC44MjU2NjEsIDEuMDIwNzIsIDEuMjE1NDgiLCBcCi0gICAgICAgICAgIjAuMDkzNjkyLCAwLjI4OTY2LCAwLjQ0NTgwMiwgMC42NDA3ODgsIDAuODM1OTU5LCAxLjAzMDc2LCAxLjIyNTkyIiwgXAotICAgICAgICAgICIwLjEwNzU1MSwgMC4zMDU3NjYsIDAuNDYxODk0LCAwLjY1NjkxNiwgMC44NTE5NjIsIDEuMDQ2OTMsIDEuMjQxNzgiLCBcCi0gICAgICAgICAgIjAuMTE4MjQxLCAwLjMxOTM2NiwgMC40NzU5OCwgMC42NzEwODcsIDAuODY2MTQ0LCAxLjA2MTExLCAxLjI1NjExIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwOTQ0OCwgMC41MDUwNSwgMC44MjIwNzUsIDEuMjE4MTgsIDEuNjE0NTEsIDIuMDEwNzEsIDIuNDA3MzEiLCBcCi0gICAgICAgICAgIjAuMTA5NDc3LCAwLjUwNTA5NywgMC44MjIwMTMsIDEuMjE4MDksIDEuNjE0NDIsIDIuMDEwMzYsIDIuNDA3MDUiLCBcCi0gICAgICAgICAgIjAuMTExNTAxLCAwLjUwNTA1OSwgMC44MjIwNDcsIDEuMjE4MiwgMS42MTQ1NCwgMi4wMTA4MSwgMi40MDcyNiIsIFwKLSAgICAgICAgICAiMC4xMTUyOTEsIDAuNTA1MDMzLCAwLjgyMjA1MiwgMS4yMTgwNCwgMS42MTQ0OSwgMi4wMTA2NywgMi40MDcxNyIsIFwKLSAgICAgICAgICAiMC4xMjAyMTgsIDAuNTA1MjYzLCAwLjgyMjA0NywgMS4yMTgxMiwgMS42MTQ1NywgMi4wMTA5NywgMi40MDczMyIsIFwKLSAgICAgICAgICAiMC4xMjkzMTksIDAuNTA3MzA2LCAwLjgyMjAyNCwgMS4yMTgwNSwgMS42MTQ0OCwgMi4wMTA4MiwgMi40MDcwOSIsIFwKLSAgICAgICAgICAiMC4xMzgyNTQsIDAuNTEwMjQ3LCAwLjgyMjc5MiwgMS4yMTgyNiwgMS42MTQ0MywgMi4wMTA0LCAyLjQwNzA4Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2MDg2OCwgMC4yNTM5NDcsIDAuNDExNDE5LCAwLjYwNzkxMSwgMC44MDQ2MzksIDEuMDAxMzYsIDEuMTk3NTMiLCBcCi0gICAgICAgICAgIjAuMDcwMDE2LCAwLjI2MzMzMSwgMC40MjA1MjksIDAuNjE3MDAyLCAwLjgxMzU1MiwgMS4wMTAxNiwgMS4yMDY1MyIsIFwKLSAgICAgICAgICAiMC4wODE2MTQsIDAuMjc1MTYyLCAwLjQzMjQyMywgMC42MjkwMjYsIDAuODI1NTU1LCAxLjAyMjM4LCAxLjIxOTA2IiwgXAotICAgICAgICAgICIwLjA5MzQ5LCAwLjI4NjMwNywgMC40NDM3MjEsIDAuNjQwMTcyLCAwLjgzNjg2LCAxLjAzMzM1LCAxLjIzMDA5IiwgXAotICAgICAgICAgICIwLjEwNTQzOCwgMC4yOTg0MDIsIDAuNDU1NjMyLCAwLjY1MjQzMSwgMC44NDg3OTcsIDEuMDQ1NDUsIDEuMjQxODYiLCBcCi0gICAgICAgICAgIjAuMTI0MTY5LCAwLjMxNjkyNiwgMC40NzQzMjUsIDAuNjcwODg5LCAwLjg2NzI1NCwgMS4wNjM4MywgMS4yNjAyMSIsIFwKLSAgICAgICAgICAiMC4xMzgyMzYsIDAuMzMzNDU2LCAwLjQ5MDY1NCwgMC42ODc0NTIsIDAuODgzNjgsIDEuMDgwMjksIDEuMjc2NzgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTA1OTE2LCAwLjQ5MTc5MywgMC44MDI5NTEsIDEuMTkxNjcsIDEuNTgwNjQsIDEuOTY5ODYsIDIuMzU2ODciLCBcCi0gICAgICAgICAgIjAuMTA1NjM1LCAwLjQ5MTgxMSwgMC44MDI3NTQsIDEuMTkxMzUsIDEuNTgwMzIsIDEuOTY4NjgsIDIuMzU3MjkiLCBcCi0gICAgICAgICAgIjAuMTA4MjU0LCAwLjQ5MTc2OCwgMC44MDI2ODYsIDEuMTkxNzEsIDEuNTc5ODYsIDEuOTY5NzksIDIuMzU4MTYiLCBcCi0gICAgICAgICAgIjAuMTEzNTA0LCAwLjQ5MTc2NiwgMC44MDI5MzMsIDEuMTkxOTUsIDEuNTgwNjQsIDEuOTY4NSwgMi4zNTY5OSIsIFwKLSAgICAgICAgICAiMC4xMjAxMzQsIDAuNDkxNzkyLCAwLjgwMjY4MSwgMS4xOTE2MiwgMS41Nzk5NCwgMS45Njg2MiwgMi4zNTczNCIsIFwKLSAgICAgICAgICAiMC4xMzI4NTksIDAuNDk0MzcxLCAwLjgwMjU5OSwgMS4xOTE5NiwgMS41Nzk3MywgMS45Njg4NSwgMi4zNTc0MiIsIFwKLSAgICAgICAgICAiMC4xNDUwNDUsIDAuNDk4NDgzLCAwLjgwMzIyNywgMS4xOTEzNywgMS41Nzk3NCwgMS45Njg3OCwgMi4zNTcyMiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDUyNDYyLCAwLjI0NzUwNywgMC40MDM0NTksIDAuNTk4NTIxLCAwLjc5MzU2OCwgMC45ODg0NDUsIDEuMTgzNDIiLCBcCi0gICAgICAgICAgIjAuMDYxNDE0LCAwLjI1NjY5MywgMC40MTI2OTgsIDAuNjA3Njk0LCAwLjgwMjY1OSwgMC45OTc0ODEsIDEuMTkyNTMiLCBcCi0gICAgICAgICAgIjAuMDcyODU3LCAwLjI2ODI0OCwgMC40MjQyNTgsIDAuNjE5MTg3LCAwLjgxNDQyMywgMS4wMDkyNSwgMS4yMDQwNyIsIFwKLSAgICAgICAgICAiMC4wODQzMjEsIDAuMjc5NTE0LCAwLjQzNTUzMiwgMC42MzA1NjgsIDAuODI1NTE3LCAxLjAyMDUyLCAxLjIxNTM5IiwgXAotICAgICAgICAgICIwLjA5NjAxNCwgMC4yOTExMDUsIDAuNDQ3MDY4LCAwLjY0MjAzLCAwLjgzNzE3LCAxLjAzMTk4LCAxLjIyNjg0IiwgXAotICAgICAgICAgICIwLjExMjE0OCwgMC4zMDkzODEsIDAuNDY1NDE0LCAwLjY2MDQxNiwgMC44NTUzOTEsIDEuMDUwMzcsIDEuMjQ1MyIsIFwKLSAgICAgICAgICAiMC4xMjQzNzUsIDAuMzI1NDMyLCAwLjQ4MTQ5NCwgMC42NzY1MDQsIDAuODcxNDUsIDEuMDY2NDQsIDEuMjYxMyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDk0MzgsIDAuNTA1MTE3LCAwLjgyMjAwMywgMS4yMTgzMywgMS42MTQzOSwgMi4wMTA5OSwgMi40MDcxOSIsIFwKLSAgICAgICAgICAiMC4xMDk2MDIsIDAuNTA1MDUzLCAwLjgyMTgzNywgMS4yMTgyMywgMS42MTQ1OCwgMi4wMTAyNSwgMi40MDY4MSIsIFwKLSAgICAgICAgICAiMC4xMTMzNDIsIDAuNTA1MTI0LCAwLjgyMTg1LCAxLjIxODIzLCAxLjYxNDM5LCAyLjAxMDc2LCAyLjQwNjc4IiwgXAotICAgICAgICAgICIwLjExOTgwMywgMC41MDUwNDIsIDAuODIyMDIyLCAxLjIxODMsIDEuNjE0NTgsIDIuMDEwNTgsIDIuNDA3MzIiLCBcCi0gICAgICAgICAgIjAuMTI3NTQ1LCAwLjUwNTM3NiwgMC44MjIwNDUsIDEuMjE4MTQsIDEuNjE0NTIsIDIuMDEwOTQsIDIuNDA3MDQiLCBcCi0gICAgICAgICAgIjAuMTQxNDM0LCAwLjUwODI0NiwgMC44MjIwMDksIDEuMjE4MjYsIDEuNjE0NjEsIDIuMDEwOTMsIDIuNDA3MzciLCBcCi0gICAgICAgICAgIjAuMTU0Mjc1LCAwLjUxMjkwNywgMC44MjI3ODQsIDEuMjE4MjUsIDEuNjE0NTEsIDIuMDEwODUsIDIuNDA3MDciKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU3OTI1LCAwLjI1NDkwMiwgMC40MTIyNzcsIDAuNjA5ODQ5LCAwLjgwODYwMSwgMS4wMDc0MSwgMS4yMDYyMyIsIFwKLSAgICAgICAgICAiMC4wNjcxMzgsIDAuMjY0NDg2LCAwLjQyMTg0OSwgMC42MTk0MywgMC44MTgwNjgsIDEuMDE2NTYsIDEuMjE1MjgiLCBcCi0gICAgICAgICAgIjAuMDc4NTg0LCAwLjI3NjAwNCwgMC40MzMyNzUsIDAuNjMwOTA1LCAwLjgyOTU1MiwgMS4wMjg1MSwgMS4yMjcxOCIsIFwKLSAgICAgICAgICAiMC4wOTA1MjQsIDAuMjg3OTksIDAuNDQ1MzY1LCAwLjY0Mjk5NiwgMC44NDIxNCwgMS4wNDAzNiwgMS4yMzk5MyIsIFwKLSAgICAgICAgICAiMC4xMDIzNjIsIDAuMjk4ODksIDAuNDU2NzUxLCAwLjY1NDc3OCwgMC44NTI4NzEsIDEuMDUxOTEsIDEuMjUwMDkiLCBcCi0gICAgICAgICAgIjAuMTIwNjAzLCAwLjMxNzkwMiwgMC40NzUyODgsIDAuNjczNDQyLCAwLjg3MjEwOSwgMS4wNzA1NywgMS4yNjkzIiwgXAotICAgICAgICAgICIwLjEzNDIxNCwgMC4zMzQzOTMsIDAuNDkxNjc5LCAwLjY4OTUxNCwgMC44ODgxOTEsIDEuMDg2NzgsIDEuMjg1NTgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTAzMzM0LCAwLjQ5NTM3OSwgMC44MTAwNTMsIDEuMjA0MywgMS41OTQ1NSwgMS45OTA1MywgMi4zODE4MyIsIFwKLSAgICAgICAgICAiMC4xMDMwODYsIDAuNDk0MDI0LCAwLjgwNzU3NiwgMS4yMDc2NywgMS41OTg2OSwgMS45OTM1NCwgMi4zODg0MiIsIFwKLSAgICAgICAgICAiMC4xMDU5MTQsIDAuNDk0MDUzLCAwLjgxMjM2LCAxLjIwNDUsIDEuNTk4NjIsIDEuOTkwNDgsIDIuMzgxNTMiLCBcCi0gICAgICAgICAgIjAuMTExMjQ1LCAwLjQ5NDAzNSwgMC44MDk2NjksIDEuMjA0NTgsIDEuNTk0MTIsIDEuOTkzMjQsIDIuMzgwOTEiLCBcCi0gICAgICAgICAgIjAuMTE4MjksIDAuNDk1Mzk5LCAwLjgxMTc4NSwgMS4yMDA5LCAxLjYwNDM4LCAxLjk5MDQzLCAyLjM4ODM3IiwgXAotICAgICAgICAgICIwLjEzMTUwOCwgMC40OTYzNTgsIDAuODEyMTczLCAxLjIwMDY2LCAxLjU5NDMzLCAxLjk5Mzg5LCAyLjM4NDEyIiwgXAotICAgICAgICAgICIwLjE0NDA2NSwgMC41MDA2OTgsIDAuODA5OTc1LCAxLjIwODI1LCAxLjYwMzc1LCAxLjk5MzAyLCAyLjM5NjMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBME4iOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNzAzOCwgMC4wMDcwNDQsIDAuMDA3MDQzLCAwLjAwNzA0MywgMC4wMDcwNDIsIDAuMDA3MDQsIDAuMDA3MDQiLCBcCi0gICAgICAgICAgIjAuMDA3MDA4LCAwLjAwNzAxNywgMC4wMDcwMTYsIDAuMDA3MDE2LCAwLjAwNzAxNiwgMC4wMDcwMTUsIDAuMDA3MDE2IiwgXAotICAgICAgICAgICIwLjAwNjk5NSwgMC4wMDcwMTEsIDAuMDA3MDExLCAwLjAwNzAxMSwgMC4wMDcwMTEsIDAuMDA3MDA5LCAwLjAwNzAxMSIsIFwKLSAgICAgICAgICAiMC4wMDY5OTUsIDAuMDA3MDEzLCAwLjAwNzAxNCwgMC4wMDcwMTUsIDAuMDA3MDE0LCAwLjAwNzAxNSwgMC4wMDcwMTQiLCBcCi0gICAgICAgICAgIjAuMDA3MDA0LCAwLjAwNzAyNSwgMC4wMDcwMjYsIDAuMDA3MDI3LCAwLjAwNzAyNywgMC4wMDcwMjYsIDAuMDA3MDI2IiwgXAotICAgICAgICAgICIwLjAwNzAyMywgMC4wMDcwNDUsIDAuMDA3MDQ5LCAwLjAwNzA0OSwgMC4wMDcwNSwgMC4wMDcwNDksIDAuMDA3MDQ4IiwgXAotICAgICAgICAgICIwLjAwNzA0MSwgMC4wMDcwNjYsIDAuMDA3MDcsIDAuMDA3MDcxLCAwLjAwNzA3MywgMC4wMDcwNywgMC4wMDcwNzEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDUwMjksIDAuMDA1MDQzLCAwLjAwNTA0NCwgMC4wMDUwNDQsIDAuMDA1MDQ0LCAwLjAwNTA0NCwgMC4wMDUwNDMiLCBcCi0gICAgICAgICAgIjAuMDA1MDAzLCAwLjAwNTAyMSwgMC4wMDUwMjMsIDAuMDA1MDI0LCAwLjAwNTAyNCwgMC4wMDUwMjQsIDAuMDA1MDI0IiwgXAotICAgICAgICAgICIwLjAwNDk5NCwgMC4wMDUwMTgsIDAuMDA1MDIxLCAwLjAwNTAyMiwgMC4wMDUwMjIsIDAuMDA1MDIzLCAwLjAwNTAyMiIsIFwKLSAgICAgICAgICAiMC4wMDQ5OSwgMC4wMDUwMTksIDAuMDA1MDIyLCAwLjAwNTAyNCwgMC4wMDUwMjQsIDAuMDA1MDI1LCAwLjAwNTAyNSIsIFwKLSAgICAgICAgICAiMC4wMDQ5OSwgMC4wMDUwMjMsIDAuMDA1MDI4LCAwLjAwNTAzMSwgMC4wMDUwMzIsIDAuMDA1MDMyLCAwLjAwNTAzMiIsIFwKLSAgICAgICAgICAiMC4wMDUwMDMsIDAuMDA1MDQxLCAwLjAwNTA0OCwgMC4wMDUwNSwgMC4wMDUwNTIsIDAuMDA1MDUyLCAwLjAwNTA1MiIsIFwKLSAgICAgICAgICAiMC4wMDUwMSwgMC4wMDUwNSwgMC4wMDUwNTYsIDAuMDA1MDYsIDAuMDA1MDYxLCAwLjAwNTA2MiwgMC4wMDUwNjIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMU4iOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjMzNiwgMC4wMDYzNDgsIDAuMDA2MzQ5LCAwLjAwNjM0OCwgMC4wMDYzNDksIDAuMDA2MzQ5LCAwLjAwNjM0NyIsIFwKLSAgICAgICAgICAiMC4wMDYzMDIsIDAuMDA2MzIxLCAwLjAwNjMyMywgMC4wMDYzMjMsIDAuMDA2MzIyLCAwLjAwNjMyMSwgMC4wMDYzMiIsIFwKLSAgICAgICAgICAiMC4wMDYyODYsIDAuMDA2MzE0LCAwLjAwNjMxNiwgMC4wMDYzMTcsIDAuMDA2MzE3LCAwLjAwNjMxNiwgMC4wMDYzMTciLCBcCi0gICAgICAgICAgIjAuMDA2Mjc1LCAwLjAwNjMxNCwgMC4wMDYzMTcsIDAuMDA2MzE5LCAwLjAwNjMyLCAwLjAwNjMyLCAwLjAwNjMxOSIsIFwKLSAgICAgICAgICAiMC4wMDYyODgsIDAuMDA2MzIyLCAwLjAwNjMyNiwgMC4wMDYzMjgsIDAuMDA2MzMsIDAuMDA2MzI5LCAwLjAwNjMzIiwgXAotICAgICAgICAgICIwLjAwNjMwOCwgMC4wMDYzNDQsIDAuMDA2MzUsIDAuMDA2MzUyLCAwLjAwNjM1NCwgMC4wMDYzNTMsIDAuMDA2MzUzIiwgXAotICAgICAgICAgICIwLjAwNjMyOCwgMC4wMDYzNjMsIDAuMDA2MzY4LCAwLjAwNjM3MiwgMC4wMDYzNzMsIDAuMDA2MzczLCAwLjAwNjM3MyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDc0LCAwLjAwNDc4NywgMC4wMDQ3OTIsIDAuMDA0Nzk1LCAwLjAwNDc5NiwgMC4wMDQ3OTcsIDAuMDA0Nzk3IiwgXAotICAgICAgICAgICIwLjAwNDcwOSwgMC4wMDQ3NjYsIDAuMDA0NzcyLCAwLjAwNDc3NiwgMC4wMDQ3NzcsIDAuMDA0Nzc4LCAwLjAwNDc3OSIsIFwKLSAgICAgICAgICAiMC4wMDQ2ODQsIDAuMDA0NzU1LCAwLjAwNDc2NCwgMC4wMDQ3NjksIDAuMDA0NzcxLCAwLjAwNDc3MiwgMC4wMDQ3NzMiLCBcCi0gICAgICAgICAgIjAuMDA0NjcyLCAwLjAwNDc1NSwgMC4wMDQ3NjcsIDAuMDA0Nzc0LCAwLjAwNDc3NiwgMC4wMDQ3NzksIDAuMDA0NzgiLCBcCi0gICAgICAgICAgIjAuMDA0NjY2LCAwLjAwNDc2LCAwLjAwNDc3NCwgMC4wMDQ3ODIsIDAuMDA0Nzg2LCAwLjAwNDc4OCwgMC4wMDQ3OSIsIFwKLSAgICAgICAgICAiMC4wMDQ2NjksIDAuMDA0NzcyLCAwLjAwNDc4OSwgMC4wMDQ3OTksIDAuMDA0ODA0LCAwLjAwNDgwNywgMC4wMDQ4MDkiLCBcCi0gICAgICAgICAgIjAuMDA0NjY0LCAwLjAwNDc3NCwgMC4wMDQ3OTIsIDAuMDA0ODAzLCAwLjAwNDgwOCwgMC4wMDQ4MTEsIDAuMDA0ODEzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDY2NCwgMC4wMDQ2NzQsIDAuMDA0Njc2LCAwLjAwNDY3NiwgMC4wMDQ2NzYsIDAuMDA0Njc3LCAwLjAwNDY3NyIsIFwKLSAgICAgICAgICAiMC4wMDQ2MzUsIDAuMDA0NjgxLCAwLjAwNDY4NywgMC4wMDQ2ODksIDAuMDA0NjkxLCAwLjAwNDY5MiwgMC4wMDQ2OTIiLCBcCi0gICAgICAgICAgIjAuMDA0NjAyLCAwLjAwNDY3MSwgMC4wMDQ2ODEsIDAuMDA0Njg2LCAwLjAwNDY4OSwgMC4wMDQ2OTEsIDAuMDA0Njk1IiwgXAotICAgICAgICAgICIwLjAwNDU3OSwgMC4wMDQ2NjEsIDAuMDA0Njc0LCAwLjAwNDY4MiwgMC4wMDQ2ODUsIDAuMDA0Njg4LCAwLjAwNDY5MiIsIFwKLSAgICAgICAgICAiMC4wMDQ1NjYsIDAuMDA0NjUyLCAwLjAwNDY2OCwgMC4wMDQ2NzcsIDAuMDA0NjgzLCAwLjAwNDY4NiwgMC4wMDQ2ODgiLCBcCi0gICAgICAgICAgIjAuMDA0NTU0LCAwLjAwNDY0LCAwLjAwNDY1OCwgMC4wMDQ2NzEsIDAuMDA0Njc4LCAwLjAwNDY4MSwgMC4wMDQ2ODQiLCBcCi0gICAgICAgICAgIjAuMDA0NTYxLCAwLjAwNDYzMywgMC4wMDQ2NTQsIDAuMDA0NjY3LCAwLjAwNDY3NCwgMC4wMDQ2NzksIDAuMDA0NjgyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxODc2LCAwLjAwMTg4MSwgMC4wMDE4ODEsIDAuMDAxODgxLCAwLjAwMTg4LCAwLjAwMTg4LCAwLjAwMTg4IiwgXAotICAgICAgICAgICIwLjAwMTgyMSwgMC4wMDE4NSwgMC4wMDE4NTMsIDAuMDAxODU1LCAwLjAwMTg1NSwgMC4wMDE4NTUsIDAuMDAxODU1IiwgXAotICAgICAgICAgICIwLjAwMTc5OSwgMC4wMDE4NDEsIDAuMDAxODQ3LCAwLjAwMTg0OSwgMC4wMDE4NSwgMC4wMDE4NTEsIDAuMDAxODUxIiwgXAotICAgICAgICAgICIwLjAwMTgwOSwgMC4wMDE4MzYsIDAuMDAxODQxLCAwLjAwMTg0NCwgMC4wMDE4NDYsIDAuMDAxODQ2LCAwLjAwMTg0NiIsIFwKLSAgICAgICAgICAiMC4wMDE4MTcsIDAuMDAxODMxLCAwLjAwMTgzNywgMC4wMDE4NDEsIDAuMDAxODQyLCAwLjAwMTg0NCwgMC4wMDE4NDQiLCBcCi0gICAgICAgICAgIjAuMDAxODQ1LCAwLjAwMTgzNiwgMC4wMDE4NCwgMC4wMDE4NDIsIDAuMDAxODQ0LCAwLjAwMTg0NCwgMC4wMDE4NDQiLCBcCi0gICAgICAgICAgIjAuMDAxODgxLCAwLjAwMTg0MiwgMC4wMDE4NDQsIDAuMDAxODQ0LCAwLjAwMTg0NSwgMC4wMDE4NDUsIDAuMDAxODQ1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzk4NSwgMC4wMDQsIDAuMDA0MDAyLCAwLjAwNDAwMywgMC4wMDQwMDMsIDAuMDA0MDA0LCAwLjAwNDAwMyIsIFwKLSAgICAgICAgICAiMC4wMDM5NDMsIDAuMDA0MDAzLCAwLjAwNDAxLCAwLjAwNDAxNCwgMC4wMDQwMTYsIDAuMDA0MDE5LCAwLjAwNDAyIiwgXAotICAgICAgICAgICIwLjAwMzkxNSwgMC4wMDM5OTMsIDAuMDA0MDA0LCAwLjAwNDAxMSwgMC4wMDQwMTMsIDAuMDA0MDE1LCAwLjAwNDAxNyIsIFwKLSAgICAgICAgICAiMC4wMDM4OTgsIDAuMDAzOTgxLCAwLjAwMzk5NywgMC4wMDQwMDYsIDAuMDA0MDEsIDAuMDA0MDEzLCAwLjAwNDAxNSIsIFwKLSAgICAgICAgICAiMC4wMDM4OTksIDAuMDAzOTc1LCAwLjAwMzk5MSwgMC4wMDQwMDIsIDAuMDA0MDA3LCAwLjAwNDAxLCAwLjAwNDAxMyIsIFwKLSAgICAgICAgICAiMC4wMDM5MjMsIDAuMDAzOTY4LCAwLjAwMzk4NCwgMC4wMDM5OTgsIDAuMDA0MDA0LCAwLjAwNDAwOCwgMC4wMDQwMSIsIFwKLSAgICAgICAgICAiMC4wMDM5NTUsIDAuMDAzOTY4LCAwLjAwMzk4NSwgMC4wMDM5OTYsIDAuMDA0MDAyLCAwLjAwNDAwNiwgMC4wMDQwMDkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDEzMjcsIDAuMDAxMzQ1LCAwLjAwMTM0NywgMC4wMDEzNDgsIDAuMDAxMzQ1LCAwLjAwMTM0OCwgMC4wMDEzNDgiLCBcCi0gICAgICAgICAgIjAuMDAxMjgsIDAuMDAxMzUsIDAuMDAxMzU4LCAwLjAwMTM2MiwgMC4wMDEzNjUsIDAuMDAxMzY2LCAwLjAwMTM2NyIsIFwKLSAgICAgICAgICAiMC4wMDEyMzQsIDAuMDAxMzM2LCAwLjAwMTM1MiwgMC4wMDEzNTksIDAuMDAxMzY0LCAwLjAwMTM2NiwgMC4wMDEzNjciLCBcCi0gICAgICAgICAgIjAuMDAxMjE0LCAwLjAwMTMxOSwgMC4wMDEzNCwgMC4wMDEzNTIsIDAuMDAxMzU4LCAwLjAwMTM2MiwgMC4wMDEzNjQiLCBcCi0gICAgICAgICAgIjAuMDAxMjIzLCAwLjAwMTMxLCAwLjAwMTMzNCwgMC4wMDEzNDcsIDAuMDAxMzU2LCAwLjAwMTM2LCAwLjAwMTM2MiIsIFwKLSAgICAgICAgICAiMC4wMDEyMzYsIDAuMDAxMzA1LCAwLjAwMTMyOSwgMC4wMDEzNDMsIDAuMDAxMzUxLCAwLjAwMTM1NiwgMC4wMDEzNTkiLCBcCi0gICAgICAgICAgIjAuMDAxMjYyLCAwLjAwMTMwMiwgMC4wMDEzMjUsIDAuMDAxMzQsIDAuMDAxMzQ4LCAwLjAwMTM1MywgMC4wMDEzNTciKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBPQUkzMVgyICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKE9BSTMxWDIpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4yNzk4ODg7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE4NjMyMzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE4NTcxNzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE4NjMyMzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA4MTgsIDAuMDAwODE4LCAwLjAwMDgxNywgMC4wMDA4MTcsIDAuMDAwODE3LCAwLjAwMDgxNywgMC4wMDA4MTciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA4MiwgMC4wMDA4MiwgMC4wMDA4MiwgMC4wMDA4MiwgMC4wMDA4MiwgMC4wMDA4MjEsIDAuMDAwODIxIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihBMSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNjkwOTU7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNjg1OTI7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNjkwOTU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwODE5LCAwLjAwMDgxOSwgMC4wMDA4MTgsIDAuMDAwODE4LCAwLjAwMDgxOCwgMC4wMDA4MTgsIDAuMDAwODE4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwODE5LCAwLjAwMDgyLCAwLjAwMDgyLCAwLjAwMDgyLCAwLjAwMDgyLCAwLjAwMDgyLCAwLjAwMDgyIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihBMikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNTU1Nzc7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNTU1Nzc7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNTUwMjE7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwODE5LCAwLjAwMDgxOSwgMC4wMDA4MTgsIDAuMDAwODE4LCAwLjAwMDgxOCwgMC4wMDA4MTgsIDAuMDAwODE4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwODE5LCAwLjAwMDgyLCAwLjAwMDgyLCAwLjAwMDgyLCAwLjAwMDgyLCAwLjAwMDgyLCAwLjAwMDgyIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNjMzMDM7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNjMyMTY7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNjMzMDM7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwOTY3LCAwLjAwMDk2OCwgMC4wMDA5NjksIDAuMDAwOTcsIDAuMDAwOTY5LCAwLjAwMDk2OSwgMC4wMDA5NjkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA5MjgsIDAuMDAwOTI5LCAwLjAwMDkyOSwgMC4wMDA5MjksIDAuMDAwOTI5LCAwLjAwMDkzLCAwLjAwMDkzIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMTg2MDExOwotICAgIGZ1bmN0aW9uIDogIighKCgoQTArQTEpK0EyKSBCMCkpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDkyNzU0LCAwLjM4MTgzNiwgMC42MTI5MjgsIDAuOTAwNjcsIDEuMTg5NDMsIDEuNDc2OTYsIDEuNzY0OCIsIFwKLSAgICAgICAgICAiMC4xMDEwMiwgMC4zOTAzNDksIDAuNjIwODQyLCAwLjkwOTEzOSwgMS4xOTczNCwgMS40ODU4NywgMS43NzMzNyIsIFwKLSAgICAgICAgICAiMC4xMDk2OTksIDAuMzk5MDA0LCAwLjYyOTgxNSwgMC45MTc3NjgsIDEuMjA1ODcsIDEuNDkzODEsIDEuNzgyMzUiLCBcCi0gICAgICAgICAgIjAuMTE3ODA4LCAwLjQwNzEzNCwgMC42Mzc3NTIsIDAuOTI2NjA2LCAxLjIxNDQ5LCAxLjUwMjk1LCAxLjc5MDQiLCBcCi0gICAgICAgICAgIjAuMTI1Njg1LCAwLjQxNTA4OCwgMC42NDU4MjEsIDAuOTMzOTczLCAxLjIyMTg2LCAxLjUxMTA3LCAxLjc5ODQ0IiwgXAotICAgICAgICAgICIwLjEzODE5MywgMC40Mjc3NTIsIDAuNjU4NTY3LCAwLjk0NjcyNywgMS4yMzQ4MywgMS41MjM3MiwgMS44MTA0MyIsIFwKLSAgICAgICAgICAiMC4xNDgzNjIsIDAuNDM4NzkzLCAwLjY2OTI5NywgMC45NTc5MTQsIDEuMjQ1OTUsIDEuNTMzNzUsIDEuODIyNTciKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTU2MTI5LCAwLjczNjM2MiwgMS4xOTk3MiwgMS43Nzg1NCwgMi4zNTg0LCAyLjkzODExLCAzLjUxNzU5IiwgXAotICAgICAgICAgICIwLjE1NjE1OCwgMC43MzU5NDcsIDEuMTk5OTIsIDEuNzc4NjYsIDIuMzU4MTIsIDIuOTM3ODQsIDMuNTE3MjUiLCBcCi0gICAgICAgICAgIjAuMTU2NDE4LCAwLjczNTg2NSwgMS4xOTk0OCwgMS43Nzg5OCwgMi4zNTc0OSwgMi45Mzc0MywgMy41MTYwOSIsIFwKLSAgICAgICAgICAiMC4xNTc5NTksIDAuNzM1NzkyLCAxLjE5OTg1LCAxLjc3ODk1LCAyLjM1ODI4LCAyLjkzNzkzLCAzLjUxNzMiLCBcCi0gICAgICAgICAgIjAuMTYwMDgyLCAwLjczNjEzNCwgMS4xOTkwNywgMS43Nzk1OCwgMi4zNTg4NiwgMi45Mzg4LCAzLjUxNzM4IiwgXAotICAgICAgICAgICIwLjE2NDc1NCwgMC43MzYwNjYsIDEuMTk5MTYsIDEuNzc5MjEsIDIuMzU4MjUsIDIuOTM4MTEsIDMuNTE2NTgiLCBcCi0gICAgICAgICAgIjAuMTY5OTMxLCAwLjczNzA1OCwgMS4xOTkxOCwgMS43Nzg4OSwgMi4zNTg2OSwgMi45Mzk5NCwgMy41MTcwMSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjU0MzgsIDAuMjU4OTc4LCAwLjQxMzA5NiwgMC42MDU2NzgsIDAuNzk3OTk3LCAwLjk5MDMzMiwgMS4xODMyNiIsIFwKLSAgICAgICAgICAiMC4wNzUxMDUsIDAuMjY4NTcsIDAuNDIyNjU2LCAwLjYxNTI5NiwgMC44MDc4NDQsIDEuMDAwMjksIDEuMTkyNTUiLCBcCi0gICAgICAgICAgIjAuMDg2MzA1LCAwLjI3OTk2MiwgMC40MzM4NzcsIDAuNjI2MzUyLCAwLjgxODk1LCAxLjAxMTkxLCAxLjIwMzg0IiwgXAotICAgICAgICAgICIwLjA5NzI3MiwgMC4yOTA5NDIsIDAuNDQ1MTU5LCAwLjYzNzQ0NSwgMC44MzAwMzEsIDEuMDIyNzIsIDEuMjE0NjMiLCBcCi0gICAgICAgICAgIjAuMTA4MTgxLCAwLjMwMTU5MywgMC40NTYxMDMsIDAuNjQ4ODEyLCAwLjg0MDk5NCwgMS4wMzM1NSwgMS4yMjYyOCIsIFwKLSAgICAgICAgICAiMC4xMjQ4OTIsIDAuMzE5NDY3LCAwLjQ3MzYwOSwgMC42NjY1OTEsIDAuODU4OTQ1LCAxLjA1MTExLCAxLjI0MzY5IiwgXAotICAgICAgICAgICIwLjEzODA2OSwgMC4zMzQ3NTQsIDAuNDg5MTUxLCAwLjY4MTk0MywgMC44NzQzNjYsIDEuMDY2NjEsIDEuMjU5MTciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTAyNTQ3LCAwLjQ4MzQ4MiwgMC43ODgyNjEsIDEuMTY5NTMsIDEuNTUwMTYsIDEuOTMxMDIsIDIuMzExOTYiLCBcCi0gICAgICAgICAgIjAuMTAyNTI3LCAwLjQ4MzY5NCwgMC43ODgyNDIsIDEuMTY5MjIsIDEuNTUwNTQsIDEuOTMwOTYsIDIuMzEyMDIiLCBcCi0gICAgICAgICAgIjAuMTAzMjE1LCAwLjQ4MzUwMiwgMC43ODg1NzcsIDEuMTY5NDksIDEuNTUwMzksIDEuOTMxMTIsIDIuMzEyMDYiLCBcCi0gICAgICAgICAgIjAuMTA1ODAzLCAwLjQ4MzM3NiwgMC43ODgyLCAxLjE2ODkyLCAxLjU1MDg0LCAxLjkzMDg3LCAyLjMxMTgyIiwgXAotICAgICAgICAgICIwLjEwOTY3NSwgMC40ODM2NDQsIDAuNzg4NTQ2LCAxLjE2OTA4LCAxLjU0OTk5LCAxLjkzMTg3LCAyLjMxMTcxIiwgXAotICAgICAgICAgICIwLjExNzUxNSwgMC40ODQ1ODQsIDAuNzg4NTI0LCAxLjE2OTEyLCAxLjU1MDA1LCAxLjkzMTAzLCAyLjMxMjQzIiwgXAotICAgICAgICAgICIwLjEyNTc2NCwgMC40ODcxNCwgMC43ODg4NTUsIDEuMTY5MTMsIDEuNTUwMTEsIDEuOTMwOTUsIDIuMzExOTQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4OTgwOCwgMC4zNzg5NCwgMC42MDk2MzQsIDAuODk4MTE2LCAxLjE4NTQ2LCAxLjQ3NDc4LCAxLjc2MjI1IiwgXAotICAgICAgICAgICIwLjA5ODE4MiwgMC4zODc1NTMsIDAuNjE4MjQxLCAwLjkwNjcyMSwgMS4xOTQzMywgMS40ODI4MiwgMS43NzA0MiIsIFwKLSAgICAgICAgICAiMC4xMDgwNCwgMC4zOTczMzgsIDAuNjI4MjA0LCAwLjkxNjU5NSwgMS4yMDQyNiwgMS40OTI0NywgMS43NzkzMSIsIFwKLSAgICAgICAgICAiMC4xMTc4OTEsIDAuNDA3NDk4LCAwLjYzODQ1NSwgMC45MjU5NjksIDEuMjE0OTcsIDEuNTAyNDQsIDEuNzkwNDQiLCBcCi0gICAgICAgICAgIjAuMTI3Njg1LCAwLjQxNzI1OSwgMC42NDc4NTksIDAuOTM2NzU1LCAxLjIyNCwgMS41MTI3MSwgMS44MDAwOSIsIFwKLSAgICAgICAgICAiMC4xNDM0NzIsIDAuNDMzMjM4LCAwLjY2Mzc5NSwgMC45NTE4OTMsIDEuMjM5OTgsIDEuNTI4NSwgMS44MTU5NSIsIFwKLSAgICAgICAgICAiMC4xNTYwOTcsIDAuNDQ2ODM3LCAwLjY3ODI3NSwgMC45NjY1MzgsIDEuMjU0MjYsIDEuNTQyOTksIDEuODMwMDQiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTU2Mjc0LCAwLjczNjM3MiwgMS4xOTkzNywgMS43Nzg5MSwgMi4zNTg5OSwgMi45MzgxNSwgMy41MTY5MSIsIFwKLSAgICAgICAgICAiMC4xNTYyNTEsIDAuNzM2MDQ2LCAxLjE5OTUxLCAxLjc3OTE2LCAyLjM1Nzk0LCAyLjkzODAzLCAzLjUxNzEzIiwgXAotICAgICAgICAgICIwLjE1Njc3NywgMC43MzU4MjIsIDEuMTk5NTEsIDEuNzc4OTIsIDIuMzU4NDYsIDIuOTM3NDcsIDMuNTE2NSIsIFwKLSAgICAgICAgICAiMC4xNTkwOTMsIDAuNzM2MDUyLCAxLjE5OTY5LCAxLjc3OTMsIDIuMzU4ODgsIDIuOTM4MjMsIDMuNTE3MSIsIFwKLSAgICAgICAgICAiMC4xNjI2MDEsIDAuNzM1ODU0LCAxLjE5OTEsIDEuNzc5LCAyLjM1OTA0LCAyLjkzNzY0LCAzLjUxNjc4IiwgXAotICAgICAgICAgICIwLjE3MDE0MiwgMC43MzYwOTksIDEuMTk5MDksIDEuNzc4MzEsIDIuMzU5NSwgMi45Mzc0NywgMy41MTY2NyIsIFwKLSAgICAgICAgICAiMC4xNzc2ODYsIDAuNzM3MDY0LCAxLjE5OTU1LCAxLjc3ODkxLCAyLjM1NzkzLCAyLjkzNzgxLCAzLjUxNjciKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDYyMzc5LCAwLjI1NzM1NiwgMC40MTMwOTQsIDAuNjA3OTYzLCAwLjgwMjI2MiwgMC45OTY5NzcsIDEuMTkxODQiLCBcCi0gICAgICAgICAgIjAuMDcyMDcxLCAwLjI2NzA5NCwgMC40MjI4ODksIDAuNjE3NjI5LCAwLjgxMjI1LCAxLjAwNzA5LCAxLjIwMTM1IiwgXAotICAgICAgICAgICIwLjA4MzA5NSwgMC4yNzg0ODgsIDAuNDM0MjMzLCAwLjYyODgxLCAwLjgyMzQ4NiwgMS4wMTgwNywgMS4yMTMiLCBcCi0gICAgICAgICAgIjAuMDkzOTc0LCAwLjI4OTM0OSwgMC40NDUyNDQsIDAuNjM5NzIzLCAwLjgzNDc3LCAxLjAyODc1LCAxLjIyMzc4IiwgXAotICAgICAgICAgICIwLjEwNDc4OSwgMC4zMDAyNSwgMC40NTYyOTksIDAuNjUwODkzLCAwLjg0NTMzNiwgMS4wMzk4OCwgMS4yMzQ4MSIsIFwKLSAgICAgICAgICAiMC4xMjA5MzIsIDAuMzE3NjMsIDAuNDczODI4LCAwLjY2ODY2NCwgMC44NjMyMDQsIDEuMDU3MzksIDEuMjUyMjQiLCBcCi0gICAgICAgICAgIjAuMTMzNjQsIDAuMzMyODIyLCAwLjQ4ODc3MSwgMC42ODM3NTIsIDAuODc4MjQsIDEuMDcyODIsIDEuMjY3NDkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk4NzcsIDAuNDg0NTM2LCAwLjc5MzExMiwgMS4xNzk0MywgMS41NjUyOSwgMS45NTEzMSwgMi4zMzc1OCIsIFwKLSAgICAgICAgICAiMC4wOTg3MDgsIDAuNDg0NDU4LCAwLjc5MzE4NywgMS4xNzg5NSwgMS41NjU1OSwgMS45NTE0NywgMi4zMzY5MSIsIFwKLSAgICAgICAgICAiMC4wOTk2MjUsIDAuNDg0NTEzLCAwLjc5MzQyNywgMS4xNzk0MiwgMS41NjUyNywgMS45NTEwNCwgMi4zMzczNyIsIFwKLSAgICAgICAgICAiMC4xMDI0MzQsIDAuNDg0NTM2LCAwLjc5MzExMiwgMS4xNzg5NCwgMS41NjU3LCAxLjk1MDYyLCAyLjMzNzQzIiwgXAotICAgICAgICAgICIwLjEwNjQyMywgMC40ODQ2NjMsIDAuNzkzMjA5LCAxLjE3ODk2LCAxLjU2NDY5LCAxLjk1MDc0LCAyLjMzNzIiLCBcCi0gICAgICAgICAgIjAuMTE0Mzc3LCAwLjQ4NTcxNSwgMC43OTMxMDksIDEuMTc5MDIsIDEuNTY1MjMsIDEuOTUwNjcsIDIuMzM4MTIiLCBcCi0gICAgICAgICAgIjAuMTIyNzIzLCAwLjQ4ODEzMiwgMC43OTM2MTYsIDEuMTc4ODcsIDEuNTY1NTUsIDEuOTUwNzgsIDIuMzM2NjMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTIiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4Mjg5OSwgMC4zNzE5OTcsIDAuNjAyOTcsIDAuODkwNzE0LCAxLjE3OTYsIDEuNDY3MTEsIDEuNzU0NyIsIFwKLSAgICAgICAgICAiMC4wOTExNywgMC4zODA1MTYsIDAuNjExMjgyLCAwLjg5ODc5NCwgMS4xODc3OCwgMS40NzU1MSwgMS43NjQyMyIsIFwKLSAgICAgICAgICAiMC4xMDE2ODksIDAuMzkxMjA0LCAwLjYyMTM0LCAwLjkwOTkyOSwgMS4xOTgwOCwgMS40ODYyNCwgMS43NzQ5MSIsIFwKLSAgICAgICAgICAiMC4xMTI2ODksIDAuNDAyMjE2LCAwLjYzMjc0NSwgMC45MjA1MTQsIDEuMjA5NzEsIDEuNDk3MywgMS43ODU1MSIsIFwKLSAgICAgICAgICAiMC4xMjMzLCAwLjQxMjcxLCAwLjY0MzIyMSwgMC45MzEyODMsIDEuMjIwMDMsIDEuNTA4MDIsIDEuNzk2NTkiLCBcCi0gICAgICAgICAgIjAuMTQwODc5LCAwLjQzMDAyNiwgMC42NjA2MjUsIDAuOTQ4NjQ4LCAxLjIzNjc4LCAxLjUyNDgsIDEuODEyNjkiLCBcCi0gICAgICAgICAgIjAuMTU1ODY0LCAwLjQ0NTE4OCwgMC42NzU3MDYsIDAuOTY0MzQ2LCAxLjI1MjA1LCAxLjU0MDg1LCAxLjgyNzg0Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE1NjI1OCwgMC43MzU4NzksIDEuMTk5NDcsIDEuNzc4ODIsIDIuMzU4MzksIDIuOTM4MDksIDMuNTE2NzIiLCBcCi0gICAgICAgICAgIjAuMTU2MTU3LCAwLjczNjQyNSwgMS4xOTk3NSwgMS43Nzg1NiwgMi4zNTgzMywgMi45Mzc5NSwgMy41MTgzMSIsIFwKLSAgICAgICAgICAiMC4xNTcwODMsIDAuNzM2MDEzLCAxLjE5OTMsIDEuNzc5MTcsIDIuMzU3OTQsIDIuOTM4MTQsIDMuNTE3MiIsIFwKLSAgICAgICAgICAiMC4xNjA5OTQsIDAuNzM2MTMyLCAxLjE5OTkxLCAxLjc3ODA2LCAyLjM1ODQsIDIuOTM3NDIsIDMuNTE3OTYiLCBcCi0gICAgICAgICAgIjAuMTY2OTMyLCAwLjczNTkzOSwgMS4xOTkwOCwgMS43NzkzNiwgMi4zNTgzOCwgMi45Mzc2NCwgMy41MTgwMiIsIFwKLSAgICAgICAgICAiMC4xNzc5OTEsIDAuNzM1ODk4LCAxLjE5OTA5LCAxLjc3ODM3LCAyLjM1OTU5LCAyLjkzNTk2LCAzLjUxNjYyIiwgXAotICAgICAgICAgICIwLjE4OTQwMywgMC43Mzc1MjgsIDEuMTk5MSwgMS43Nzg5NiwgMi4zNTc4OCwgMi45Mzc4OSwgMy41MTY2OCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTg1OTIsIDAuMjU2NDA3LCAwLjQxNDUzNSwgMC42MTI1NTQsIDAuODA5NzQxLCAxLjAwODE4LCAxLjIwNTQ3IiwgXAotICAgICAgICAgICIwLjA2ODQsIDAuMjY2MzQxLCAwLjQyNDQ2MywgMC42MjIzODgsIDAuODIwMDAzLCAxLjAxNzk4LCAxLjIxNTIzIiwgXAotICAgICAgICAgICIwLjA3OTM0NCwgMC4yNzc2MjEsIDAuNDM2MDkyLCAwLjYzMzUzNSwgMC44MzEwNDUsIDEuMDI5MDQsIDEuMjI2MTEiLCBcCi0gICAgICAgICAgIjAuMDkwMTc1LCAwLjI4ODU3OCwgMC40NDY4ODMsIDAuNjQ0NDIsIDAuODQyMTYzLCAxLjAzOTc4LCAxLjIzNzc4IiwgXAotICAgICAgICAgICIwLjEwMDgyNiwgMC4yOTkwODcsIDAuNDU3NzM3LCAwLjY1NTU4OCwgMC44NTMxOCwgMS4wNTEwNCwgMS4yNDg3NyIsIFwKLSAgICAgICAgICAiMC4xMTY2MjksIDAuMzE2ODA0LCAwLjQ3NTMyLCAwLjY3MzEyNiwgMC44NzA4MDUsIDEuMDY4NDEsIDEuMjY1ODkiLCBcCi0gICAgICAgICAgIjAuMTI4OTY1LCAwLjMzMTk3LCAwLjQ5MDQ0NiwgMC42ODg0MjksIDAuODg2MDg5LCAxLjA4MzU2LCAxLjI4MTM1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5NDk0NSwgMC40ODY4NTIsIDAuODAwNTI0LCAxLjE5MjkyLCAxLjU5NDkzLCAxLjk3NzMsIDIuMzY3ODYiLCBcCi0gICAgICAgICAgIjAuMDk1MTc2LCAwLjQ4ODIwNiwgMC44MDI0ODksIDEuMTkyNDIsIDEuNTg0NTIsIDEuOTc1ODgsIDIuMzY4NDgiLCBcCi0gICAgICAgICAgIjAuMDk2MTU5LCAwLjQ4Njk3MywgMC44MDA4MTIsIDEuMTkzODUsIDEuNTk0MDgsIDEuOTc2OTksIDIuMzc1MTEiLCBcCi0gICAgICAgICAgIjAuMDk4OTcxLCAwLjQ4OTQ4OCwgMC44MDA1OTYsIDEuMTk5MzIsIDEuNTg1NjcsIDEuOTgxNzgsIDIuMzY4NDciLCBcCi0gICAgICAgICAgIjAuMTAzMDUsIDAuNDg3OTE1LCAwLjgwMjYzOCwgMS4xOTk5NSwgMS41OTQxOSwgMS45Nzg3MywgMi4zNjg4MiIsIFwKLSAgICAgICAgICAiMC4xMTE1NzksIDAuNDg5Mzk4LCAwLjgwMDUxOSwgMS4xOTM1NCwgMS41ODU4OSwgMS45ODE2MiwgMi4zODI1MiIsIFwKLSAgICAgICAgICAiMC4xMjA0OTYsIDAuNDkxOTA4LCAwLjgwMjYxMSwgMS4xOTI0NSwgMS41ODYxMSwgMS45ODEzMywgMi4zODM1NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDI4MDQ0LCAwLjEzMDUyNSwgMC4yMTI0NTEsIDAuMzE0OTU3LCAwLjQxNzQ3NCwgMC41MTk2OCwgMC42MjIyOTQiLCBcCi0gICAgICAgICAgIjAuMDM4MDMsIDAuMTQwNDk5LCAwLjIyMjQzMiwgMC4zMjQ4NTcsIDAuNDI3MTkyLCAwLjUyOTcxOSwgMC42MzIwMyIsIFwKLSAgICAgICAgICAiMC4wNTA2NDksIDAuMTUyOTEyLCAwLjIzNDgxNCwgMC4zMzcxNzQsIDAuNDM4ODk0LCAwLjU0MTEyMywgMC42NDM1MTciLCBcCi0gICAgICAgICAgIjAuMDYyMTIzLCAwLjE2NTQ1NSwgMC4yNDczNjMsIDAuMzQ5Nzg3LCAwLjQ1MjE5MiwgMC41NTQ1OCwgMC42NTY5OTkiLCBcCi0gICAgICAgICAgIjAuMDcxNTg4LCAwLjE3Nzg2NCwgMC4yNjAwMjQsIDAuMzYyMjY0LCAwLjQ2NDUzNywgMC41NjU3MzMsIDAuNjY4MTQ0IiwgXAotICAgICAgICAgICIwLjA4NDU2NSwgMC4xOTg0OTMsIDAuMjc5NzMzLCAwLjM4MjQ4NiwgMC40ODQ3MDQsIDAuNTg2OTQzLCAwLjY4OTMxNyIsIFwKLSAgICAgICAgICAiMC4wOTQ0MTQsIDAuMjE2MzMxLCAwLjI5NzI3MSwgMC4zOTk1NzgsIDAuNTAyMzU2LCAwLjYwNDYwNCwgMC43MDY4NjUiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDYxNDk0LCAwLjI3MTI3OSwgMC40Mzk2ODQsIDAuNjUwMjYxLCAwLjg2MDg2NSwgMS4wNzE3MywgMS4yODI0OSIsIFwKLSAgICAgICAgICAiMC4wNjMxNzMsIDAuMjcxMjgsIDAuNDM5NjgzLCAwLjY1MDM1NywgMC44NjA5MTksIDEuMDcxNywgMS4yODIzMSIsIFwKLSAgICAgICAgICAiMC4wNjk5NzQsIDAuMjcxMjg4LCAwLjQzOTcyMSwgMC42NTAyMjEsIDAuODYwOTUyLCAxLjA3MTYzLCAxLjI4MjY1IiwgXAotICAgICAgICAgICIwLjA3ODMxOCwgMC4yNzI3NjEsIDAuNDM5NjM2LCAwLjY1MDMwNywgMC44NjEwODgsIDEuMDcxODEsIDEuMjgyNDMiLCBcCi0gICAgICAgICAgIjAuMDg3ODE2LCAwLjI3NjI3LCAwLjQ0MDMwNCwgMC42NTAyOTMsIDAuODYwOTA2LCAxLjA3MTYzLCAxLjI4MjI4IiwgXAotICAgICAgICAgICIwLjEwMzYxOCwgMC4yODM5NTQsIDAuNDQ0MjY5LCAwLjY1MDgzOCwgMC44NjA5NzQsIDEuMDcxNTgsIDEuMjgyNTQiLCBcCi0gICAgICAgICAgIjAuMTE2Nzg0LCAwLjI5MjQ5NSwgMC40NDk5NDYsIDAuNjUzMjk4LCAwLjg2MTMxNiwgMS4wNzE4NSwgMS4yODIzMyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTg1OTUsIDAuMjUyMjA0LCAwLjQwNjgyNiwgMC42MDQzMzcsIDAuODAyNTk1LCAwLjk5OTgyNiwgMS4xOTcyMiIsIFwKLSAgICAgICAgICAiMC4wNjc3MDcsIDAuMjYxNDksIDAuNDE2MDM0LCAwLjYxMzYzMywgMC44MTExMjQsIDEuMDA4NzMsIDEuMjA2MzEiLCBcCi0gICAgICAgICAgIjAuMDc5Mjg3LCAwLjI3MzEyNSwgMC40Mjc2NjIsIDAuNjI1MjA3LCAwLjgyMjg3NSwgMS4wMjA1MiwgMS4yMTgwNiIsIFwKLSAgICAgICAgICAiMC4wOTExMzksIDAuMjg0NjMzLCAwLjQzOTA1MiwgMC42MzY4NTQsIDAuODM0MjgsIDEuMDMxOTEsIDEuMjMwMzIiLCBcCi0gICAgICAgICAgIjAuMTAzNDksIDAuMjk2NDM0LCAwLjQ1MTM0NSwgMC42NDkyOSwgMC44NDY1NzYsIDEuMDQ0NzYsIDEuMjQyNTUiLCBcCi0gICAgICAgICAgIjAuMTIxNjUzLCAwLjMxNTE1NSwgMC40Njk1NzQsIDAuNjY3MzY2LCAwLjg2NTM5OSwgMS4wNjI2NiwgMS4yNjAyMSIsIFwKLSAgICAgICAgICAiMC4xMzU1NDUsIDAuMzMxOTc3LCAwLjQ4NjM0MSwgMC42ODQ0MTYsIDAuODgxNzU0LCAxLjA3OTIsIDEuMjc2OTciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTAyNDQ1LCAwLjQ4ODA3OCwgMC44MDAzMTIsIDEuMTkyNDksIDEuNTg1MTMsIDEuOTc2MzUsIDIuMzgzNDMiLCBcCi0gICAgICAgICAgIjAuMTAyMjUsIDAuNDg4MTk1LCAwLjgwMDUwMywgMS4xOTk2MSwgMS41ODkwNSwgMS45ODY4MiwgMi4zNzQzMiIsIFwKLSAgICAgICAgICAiMC4xMDQ5MDIsIDAuNDg4MjE2LCAwLjgwNTMxNiwgMS4xOTU4NSwgMS41OTQxOSwgMS45ODE0NSwgMi4zODE2NyIsIFwKLSAgICAgICAgICAiMC4xMTAyMTcsIDAuNDg5NTIsIDAuODAyMzczLCAxLjE5OTkxLCAxLjU4ODkxLCAxLjk4MjA4LCAyLjM2NzkxIiwgXAotICAgICAgICAgICIwLjExNjU2NiwgMC40ODk1MTQsIDAuODA1MTg2LCAxLjE5MjM0LCAxLjU5MjY0LCAxLjk3Njg3LCAyLjM2Nzk0IiwgXAotICAgICAgICAgICIwLjEyOTQyMSwgMC40OTA3MzMsIDAuODAyMzc0LCAxLjE5Mzg1LCAxLjU4NDUsIDEuOTgxOCwgMi4zNzU0NCIsIFwKLSAgICAgICAgICAiMC4xNDE3NzUsIDAuNDkzNzk0LCAwLjgwMjk0OSwgMS4xOTIzMywgMS41ODg0OSwgMS45ODE4NCwgMi4zODMxMiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDYzNywgMC4wMDYzNywgMC4wMDYzNjgsIDAuMDA2MzcsIDAuMDA2MzYzLCAwLjAwNjM2NSwgMC4wMDYzNjEiLCBcCi0gICAgICAgICAgIjAuMDA2MzM3LCAwLjAwNjM0OSwgMC4wMDYzNSwgMC4wMDYzNDgsIDAuMDA2MzQ5LCAwLjAwNjM0NSwgMC4wMDYzNDMiLCBcCi0gICAgICAgICAgIjAuMDA2MzE3LCAwLjAwNjM0LCAwLjAwNjM0MywgMC4wMDYzNDQsIDAuMDA2MzM5LCAwLjAwNjM0MSwgMC4wMDYzMzQiLCBcCi0gICAgICAgICAgIjAuMDA2MzA1LCAwLjAwNjMzNSwgMC4wMDYzNCwgMC4wMDYzNCwgMC4wMDYzMzksIDAuMDA2MzQyLCAwLjAwNjMzNyIsIFwKLSAgICAgICAgICAiMC4wMDYyOTUsIDAuMDA2MzMsIDAuMDA2MzM0LCAwLjAwNjMzOCwgMC4wMDYzMzcsIDAuMDA2MzM3LCAwLjAwNjMzNSIsIFwKLSAgICAgICAgICAiMC4wMDYyODgsIDAuMDA2MzI1LCAwLjAwNjMzMiwgMC4wMDYzMzQsIDAuMDA2MzM2LCAwLjAwNjMzNiwgMC4wMDYzMzQiLCBcCi0gICAgICAgICAgIjAuMDA2Mjg3LCAwLjAwNjMyMSwgMC4wMDYzMjgsIDAuMDA2MzMxLCAwLjAwNjMzMiwgMC4wMDYzMzUsIDAuMDA2MzM0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxNzcxLCAwLjAwMTc3MSwgMC4wMDE3NywgMC4wMDE3NywgMC4wMDE3NywgMC4wMDE3NjksIDAuMDAxNzY5IiwgXAotICAgICAgICAgICIwLjAwMTcxNSwgMC4wMDE3MjUsIDAuMDAxNzI1LCAwLjAwMTcyNiwgMC4wMDE3MjUsIDAuMDAxNzI1LCAwLjAwMTcyNyIsIFwKLSAgICAgICAgICAiMC4wMDE2OSwgMC4wMDE3MTIsIDAuMDAxNzE1LCAwLjAwMTcxNiwgMC4wMDE3MTYsIDAuMDAxNzE2LCAwLjAwMTcxNCIsIFwKLSAgICAgICAgICAiMC4wMDE2NzUsIDAuMDAxNzA1LCAwLjAwMTcwOSwgMC4wMDE3MTEsIDAuMDAxNzEyLCAwLjAwMTcxMiwgMC4wMDE3MTIiLCBcCi0gICAgICAgICAgIjAuMDAxNjY1LCAwLjAwMTcsIDAuMDAxNzA1LCAwLjAwMTcwNywgMC4wMDE3MSwgMC4wMDE3MSwgMC4wMDE3MSIsIFwKLSAgICAgICAgICAiMC4wMDE2NTMsIDAuMDAxNjkzLCAwLjAwMTcwMSwgMC4wMDE3MDQsIDAuMDAxNzA1LCAwLjAwMTcwNywgMC4wMDE3MDciLCBcCi0gICAgICAgICAgIjAuMDAxNjUsIDAuMDAxNjg5LCAwLjAwMTY5NywgMC4wMDE3MDIsIDAuMDAxNzA0LCAwLjAwMTcwNiwgMC4wMDE3MDYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1NzA4LCAwLjAwNTcwOSwgMC4wMDU3MDcsIDAuMDA1NzExLCAwLjAwNTcwNCwgMC4wMDU2OTksIDAuMDA1Njk3IiwgXAotICAgICAgICAgICIwLjAwNTY3NSwgMC4wMDU2ODcsIDAuMDA1Njg1LCAwLjAwNTY4NSwgMC4wMDU2ODYsIDAuMDA1Njg0LCAwLjAwNTY4MSIsIFwKLSAgICAgICAgICAiMC4wMDU2NTYsIDAuMDA1Njc4LCAwLjAwNTY4LCAwLjAwNTY4NCwgMC4wMDU2OCwgMC4wMDU2ODIsIDAuMDA1Njc2IiwgXAotICAgICAgICAgICIwLjAwNTY0MywgMC4wMDU2NzQsIDAuMDA1Njc3LCAwLjAwNTY3OCwgMC4wMDU2NzgsIDAuMDA1Njc3LCAwLjAwNTY3OCIsIFwKLSAgICAgICAgICAiMC4wMDU2MzYsIDAuMDA1NjY5LCAwLjAwNTY3MywgMC4wMDU2NzYsIDAuMDA1Njc1LCAwLjAwNTY3NywgMC4wMDU2NzQiLCBcCi0gICAgICAgICAgIjAuMDA1NjMxLCAwLjAwNTY2NSwgMC4wMDU2NjksIDAuMDA1NjcyLCAwLjAwNTY3MywgMC4wMDU2NzMsIDAuMDA1Njc0IiwgXAotICAgICAgICAgICIwLjAwNTYzNCwgMC4wMDU2NjEsIDAuMDA1NjY4LCAwLjAwNTY3MSwgMC4wMDU2NzIsIDAuMDA1NjczLCAwLjAwNTY3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxMjEsIDAuMDAxMjE0LCAwLjAwMTIxNSwgMC4wMDEyMTUsIDAuMDAxMjE0LCAwLjAwMTIxNCwgMC4wMDEyMTQiLCBcCi0gICAgICAgICAgIjAuMDAxMTcyLCAwLjAwMTIwNCwgMC4wMDEyMDcsIDAuMDAxMjA5LCAwLjAwMTIxLCAwLjAwMTIxMSwgMC4wMDEyMTEiLCBcCi0gICAgICAgICAgIjAuMDAxMTMyLCAwLjAwMTE5MywgMC4wMDEyLCAwLjAwMTIwNCwgMC4wMDEyMDYsIDAuMDAxMjA3LCAwLjAwMTIwOCIsIFwKLSAgICAgICAgICAiMC4wMDExLCAwLjAwMTE4MiwgMC4wMDExOTMsIDAuMDAxMTk5LCAwLjAwMTIwMywgMC4wMDEyMDQsIDAuMDAxMjA1IiwgXAotICAgICAgICAgICIwLjAwMTA3OCwgMC4wMDExNzMsIDAuMDAxMTg3LCAwLjAwMTE5NSwgMC4wMDExOTksIDAuMDAxMjAxLCAwLjAwMTIwMyIsIFwKLSAgICAgICAgICAiMC4wMDEwNTUsIDAuMDAxMTU4LCAwLjAwMTE3NywgMC4wMDExODgsIDAuMDAxMTkzLCAwLjAwMTE5NywgMC4wMDExOTkiLCBcCi0gICAgICAgICAgIjAuMDAxMDQ0LCAwLjAwMTE0NywgMC4wMDExNywgMC4wMDExODIsIDAuMDAxMTg5LCAwLjAwMTE5MywgMC4wMDExOTYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1MDE5LCAwLjAwNTAyLCAwLjAwNTAxOSwgMC4wMDUwMTgsIDAuMDA1MDE5LCAwLjAwNTAxNiwgMC4wMDUwMTQiLCBcCi0gICAgICAgICAgIjAuMDA0OTY5LCAwLjAwNDk5MywgMC4wMDQ5OTUsIDAuMDA0OTk1LCAwLjAwNDk5NiwgMC4wMDQ5OTMsIDAuMDA0OTkxIiwgXAotICAgICAgICAgICIwLjAwNDk0NiwgMC4wMDQ5ODMsIDAuMDA0OTg3LCAwLjAwNDk4OSwgMC4wMDQ5ODYsIDAuMDA0OTg3LCAwLjAwNDk5IiwgXAotICAgICAgICAgICIwLjAwNDkzMywgMC4wMDQ5NzUsIDAuMDA0OTgxLCAwLjAwNDk4NCwgMC4wMDQ5ODYsIDAuMDA0OTgzLCAwLjAwNDk4NCIsIFwKLSAgICAgICAgICAiMC4wMDQ5NDEsIDAuMDA0OTczLCAwLjAwNDk3OSwgMC4wMDQ5ODMsIDAuMDA0OTgzLCAwLjAwNDk4MiwgMC4wMDQ5ODMiLCBcCi0gICAgICAgICAgIjAuMDA0OTYyLCAwLjAwNDk3MiwgMC4wMDQ5NzcsIDAuMDA0OTgsIDAuMDA0OTgxLCAwLjAwNDk4MiwgMC4wMDQ5ODIiLCBcCi0gICAgICAgICAgIjAuMDA0OTkzLCAwLjAwNDk3NywgMC4wMDQ5NzksIDAuMDA0OTgyLCAwLjAwNDk4MSwgMC4wMDQ5ODMsIDAuMDA0OTgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDA1NDUsIDAuMDAwNTYyLCAwLjAwMDU2NCwgMC4wMDA1NjUsIDAuMDAwNTY1LCAwLjAwMDU2NiwgMC4wMDA1NjYiLCBcCi0gICAgICAgICAgIjAuMDAwNTIzLCAwLjAwMDU5MiwgMC4wMDA2LCAwLjAwMDYwNCwgMC4wMDA2MDYsIDAuMDAwNjA3LCAwLjAwMDYwOCIsIFwKLSAgICAgICAgICAiMC4wMDA0NjgsIDAuMDAwNTgyLCAwLjAwMDU5NiwgMC4wMDA2MDQsIDAuMDAwNjA4LCAwLjAwMDYxLCAwLjAwMDYxMiIsIFwKLSAgICAgICAgICAiMC4wMDA0MjUsIDAuMDAwNTY3LCAwLjAwMDU4NywgMC4wMDA1OTgsIDAuMDAwNjA0LCAwLjAwMDYwOCwgMC4wMDA2MSIsIFwKLSAgICAgICAgICAiMC4wMDAzOTMsIDAuMDAwNTUzLCAwLjAwMDU3OCwgMC4wMDA1OTIsIDAuMDAwNiwgMC4wMDA2MDQsIDAuMDAwNjA4IiwgXAotICAgICAgICAgICIwLjAwMDM1OSwgMC4wMDA1MzEsIDAuMDAwNTY0LCAwLjAwMDU4MiwgMC4wMDA1OTIsIDAuMDAwNTk4LCAwLjAwMDYwMyIsIFwKLSAgICAgICAgICAiMC4wMDAzNDIsIDAuMDAwNTE1LCAwLjAwMDU1MiwgMC4wMDA1NzQsIDAuMDAwNTg2LCAwLjAwMDU5MywgMC4wMDA1OTgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0MDcyLCAwLjAwNDA4OSwgMC4wMDQwOSwgMC4wMDQwOTEsIDAuMDA0MDkyLCAwLjAwNDA5MiwgMC4wMDQwOTIiLCBcCi0gICAgICAgICAgIjAuMDA0MDMzLCAwLjAwNDA5MywgMC4wMDQxLCAwLjAwNDEwNCwgMC4wMDQxMDYsIDAuMDA0MTA3LCAwLjAwNDEwOCIsIFwKLSAgICAgICAgICAiMC4wMDQwMDYsIDAuMDA0MDgzLCAwLjAwNDA5NywgMC4wMDQxMDEsIDAuMDA0MTA1LCAwLjAwNDEwOCwgMC4wMDQxMDkiLCBcCi0gICAgICAgICAgIjAuMDAzOTg5LCAwLjAwNDA3MiwgMC4wMDQwODcsIDAuMDA0MDk2LCAwLjAwNDEwMSwgMC4wMDQxMDYsIDAuMDA0MTA1IiwgXAotICAgICAgICAgICIwLjAwNDAwMywgMC4wMDQwNjgsIDAuMDA0MDg2LCAwLjAwNDA5NSwgMC4wMDQxLCAwLjAwNDEwNCwgMC4wMDQxMDYiLCBcCi0gICAgICAgICAgIjAuMDA0MDQxLCAwLjAwNDA3LCAwLjAwNDA4MiwgMC4wMDQwOTMsIDAuMDA0MDk4LCAwLjAwNDEwMSwgMC4wMDQxMDQiLCBcCi0gICAgICAgICAgIjAuMDA0MDgxLCAwLjAwNDA3NSwgMC4wMDQwODMsIDAuMDA0MDkyLCAwLjAwNDA5OSwgMC4wMDQxMDEsIDAuMDA0MTA0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxODMsIDAuMDAxODUxLCAwLjAwMTg1MywgMC4wMDE4NTQsIDAuMDAxODUzLCAwLjAwMTg1MywgMC4wMDE4NTQiLCBcCi0gICAgICAgICAgIjAuMDAxNzYzLCAwLjAwMTgzLCAwLjAwMTg0LCAwLjAwMTg0NiwgMC4wMDE4NDcsIDAuMDAxODQ3LCAwLjAwMTg0OSIsIFwKLSAgICAgICAgICAiMC4wMDE3MjQsIDAuMDAxODEsIDAuMDAxODI3LCAwLjAwMTgzNCwgMC4wMDE4NDEsIDAuMDAxODQzLCAwLjAwMTg0MyIsIFwKLSAgICAgICAgICAiMC4wMDE3MjUsIDAuMDAxNzk5LCAwLjAwMTgxNywgMC4wMDE4MjksIDAuMDAxODM0LCAwLjAwMTgzNywgMC4wMDE4NCIsIFwKLSAgICAgICAgICAiMC4wMDE3MjMsIDAuMDAxNzg1LCAwLjAwMTgwOSwgMC4wMDE4MjEsIDAuMDAxODI5LCAwLjAwMTgzNCwgMC4wMDE4MzYiLCBcCi0gICAgICAgICAgIjAuMDAxNzU3LCAwLjAwMTc4MiwgMC4wMDE4MDEsIDAuMDAxODE2LCAwLjAwMTgyNCwgMC4wMDE4MjgsIDAuMDAxODMyIiwgXAotICAgICAgICAgICIwLjAwMTc4NiwgMC4wMDE3NzcsIDAuMDAxNzk1LCAwLjAwMTgwOSwgMC4wMDE4MTksIDAuMDAxODI0LCAwLjAwMTgyOCIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IE9BSTMyWDIgKgotICogLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoT0FJMzJYMikgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjM1MzE4NTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQTApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTg1NTE5OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTg0ODY4OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTg1NTE5OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDgxOCwgMC4wMDA4MTgsIDAuMDAwODE4LCAwLjAwMDgxNywgMC4wMDA4MTYsIDAuMDAwODE3LCAwLjAwMDgxNyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDgyLCAwLjAwMDgyLCAwLjAwMDgyLCAwLjAwMDgyLCAwLjAwMDgyMSwgMC4wMDA4MjEsIDAuMDAwODIxIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihBMSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNzE0NTE7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNzA5OTM7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNzE0NTE7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwODE5LCAwLjAwMDgxOCwgMC4wMDA4MTgsIDAuMDAwODE4LCAwLjAwMDgxOCwgMC4wMDA4MTcsIDAuMDAwODE4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwODIsIDAuMDAwODIsIDAuMDAwODIsIDAuMDAwODIsIDAuMDAwODIsIDAuMDAwODIsIDAuMDAwODE5Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihBMikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNTg1MTk7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNTg1MTk7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNTc5NTU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwODE5LCAwLjAwMDgxOCwgMC4wMDA4MTgsIDAuMDAwODE4LCAwLjAwMDgxOCwgMC4wMDA4MTgsIDAuMDAwODE4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwODIsIDAuMDAwODIsIDAuMDAwODE5LCAwLjAwMDgxOSwgMC4wMDA4MiwgMC4wMDA4MiwgMC4wMDA4MiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQjApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTc1NjIxOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTc0NTMyOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTc1NjIxOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTI5NSwgMC4wMDEyOTYsIDAuMDAxMjk3LCAwLjAwMTI5NiwgMC4wMDEyOTYsIDAuMDAxMjk2LCAwLjAwMTI5NiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDkyOCwgMC4wMDA5MywgMC4wMDA5MywgMC4wMDA5MjksIDAuMDAwOTI5LCAwLjAwMDkzLCAwLjAwMDkzIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCMSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNjIwNDE7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNjIwMDQ7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNjIwNDE7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxMjk0LCAwLjAwMTI5NSwgMC4wMDEyOTYsIDAuMDAxMjk2LCAwLjAwMTI5NSwgMC4wMDEyOTUsIDAuMDAxMjk1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwOTI4LCAwLjAwMDkyOCwgMC4wMDA5MjgsIDAuMDAwOTI5LCAwLjAwMDkyOSwgMC4wMDA5MjksIDAuMDAwOTI5Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMTkwNDY3OwotICAgIGZ1bmN0aW9uIDogIighKChCMCtCMSkgKChBMCtBMSkrQTIpKSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTk5MTksIDAuMzg5MDQxLCAwLjYxOTMxMiwgMC45MDc2NzgsIDEuMTk1NDUsIDEuNDg0MDcsIDEuNzcxNTQiLCBcCi0gICAgICAgICAgIjAuMTA4MjU2LCAwLjM5NzM0MywgMC42Mjc5NjEsIDAuOTE2MzExLCAxLjIwMzg3LCAxLjQ5MjY2LCAxLjc4MDI0IiwgXAotICAgICAgICAgICIwLjExNjkwMSwgMC40MDYxNjYsIDAuNjM2NTcyLCAwLjkyNDkwOCwgMS4yMTI0OSwgMS41MDA4NywgMS43ODc5OCIsIFwKLSAgICAgICAgICAiMC4xMjUwNTcsIDAuNDE0NTY3LCAwLjY0NDg3MywgMC45MzM0NDQsIDEuMjIxMDcsIDEuNTA4OTYsIDEuNzk3NDIiLCBcCi0gICAgICAgICAgIjAuMTMyOTksIDAuNDIyMzIyLCAwLjY1MzEzMSwgMC45NDA4NTUsIDEuMjI5NTYsIDEuNTE2ODEsIDEuODA1NjYiLCBcCi0gICAgICAgICAgIjAuMTQ1NDk3LCAwLjQzNDkyNywgMC42NjUzODksIDAuOTUzNDUzLCAxLjI0MTcsIDEuNTI5NzIsIDEuODE2OTYiLCBcCi0gICAgICAgICAgIjAuMTU1OTU0LCAwLjQ0NjA1NCwgMC42NzY1NTIsIDAuOTY0MzU4LCAxLjI1MjY4LCAxLjU0MDI0LCAxLjgyODA0Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE3NjUwNSwgMC43NTM5MTgsIDEuMjE1NjUsIDEuNzkyNzMsIDIuMzY5NCwgMi45NDY1MiwgMy41MjM1NCIsIFwKLSAgICAgICAgICAiMC4xNzY1MDIsIDAuNzUzOTM3LCAxLjIxNTY5LCAxLjc5Mjc5LCAyLjM2OTQxLCAyLjk0NjUzLCAzLjUyMzUxIiwgXAotICAgICAgICAgICIwLjE3Njc0NCwgMC43NTM5NjcsIDEuMjE1NzIsIDEuNzkyNzMsIDIuMzY5MjksIDIuOTQ2MjYsIDMuNTIzMDIiLCBcCi0gICAgICAgICAgIjAuMTc4MDM1LCAwLjc1Mzg4OSwgMS4yMTU2MiwgMS43OTI3NCwgMi4zNjk1NiwgMi45NDY3MiwgMy41MjM1NiIsIFwKLSAgICAgICAgICAiMC4xODAwNzIsIDAuNzUzNzg3LCAxLjIxNTY0LCAxLjc5MjcxLCAyLjM2OTY0LCAyLjk0NjM3LCAzLjUyMzQ4IiwgXAotICAgICAgICAgICIwLjE4NDY0OCwgMC43NTQxNzQsIDEuMjE1NzIsIDEuNzkyNjQsIDIuMzY5NiwgMi45NDY0MywgMy41MjMzNyIsIFwKLSAgICAgICAgICAiMC4xODk2NSwgMC43NTUxODUsIDEuMjE1NjIsIDEuNzkyNjUsIDIuMzY5NTYsIDIuOTQ2NTYsIDMuNTIzNzkiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDczMjYxLCAwLjI2NzM0NSwgMC40MjQ1NzksIDAuNjIxMzQ4LCAwLjgxNzkyNSwgMS4wMTQxNCwgMS4yMTEzIiwgXAotICAgICAgICAgICIwLjA4MzA5NCwgMC4yNzcxLCAwLjQzNDQzNSwgMC42MzEzNzEsIDAuODI3NjE2LCAxLjAyNDUsIDEuMjIwNSIsIFwKLSAgICAgICAgICAiMC4wOTQ0NjcsIDAuMjg4NDMzLCAwLjQ0NTc1LCAwLjY0MjQ1MiwgMC44MzkzNzgsIDEuMDM1NjEsIDEuMjMyMDIiLCBcCi0gICAgICAgICAgIjAuMTA1NDk2LCAwLjI5OTQwNywgMC40NTY4OTgsIDAuNjUzMzU1LCAwLjg1MDAzNywgMS4wNDY3NSwgMS4yNDMxNiIsIFwKLSAgICAgICAgICAiMC4xMTY0OTYsIDAuMzEwMzUxLCAwLjQ2NzY4MSwgMC42NjQ0NzIsIDAuODYxMTU4LCAxLjA1NzYyLCAxLjI1NDI2IiwgXAotICAgICAgICAgICIwLjEzMzY2OSwgMC4zMjc3MSwgMC40ODUwOTUsIDAuNjgxOTU4LCAwLjg3ODQsIDEuMDc1MDIsIDEuMjcxNDciLCBcCi0gICAgICAgICAgIjAuMTQ3NjA4LCAwLjM0MzA5OCwgMC41MDAzNDIsIDAuNjk3MTk5LCAwLjg5MzkxNywgMS4wOTAzMSwgMS4yODY3NCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTA4MzgsIDAuNDk2OTUyLCAwLjgwODExOSwgMS4xOTY0NSwgMS41ODQ3OCwgMS45NzM5OCwgMi4zNjE3OCIsIFwKLSAgICAgICAgICAiMC4xMTA4MjQsIDAuNDk2ODExLCAwLjgwNzU5NSwgMS4xOTYyOCwgMS41ODU0LCAxLjk3MzMxLCAyLjM2MjIiLCBcCi0gICAgICAgICAgIjAuMTExMjczLCAwLjQ5Njk0MSwgMC44MDgwOTYsIDEuMTk2MjcsIDEuNTg0ODEsIDEuOTczMywgMi4zNjIwNiIsIFwKLSAgICAgICAgICAiMC4xMTMzMzksIDAuNDk2ODI0LCAwLjgwODIzMSwgMS4xOTY1NiwgMS41ODU1MSwgMS45NzMxMiwgMi4zNjIyNyIsIFwKLSAgICAgICAgICAiMC4xMTY3NSwgMC40OTY4MjcsIDAuODA4MDM1LCAxLjE5NjMsIDEuNTg0NjIsIDEuOTczOTEsIDIuMzYxNjQiLCBcCi0gICAgICAgICAgIjAuMTIzNjY0LCAwLjQ5NzgxOCwgMC44MDc3NTEsIDEuMTk2NSwgMS41ODUzNCwgMS45NzQxMywgMi4zNjE2OSIsIFwKLSAgICAgICAgICAiMC4xMzEyMjIsIDAuNDk5OTkzLCAwLjgwNzgwOSwgMS4xOTYyOSwgMS41ODQ2NywgMS45NzM1OCwgMi4zNjE3NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk2Nzk0LCAwLjM4NTkzNywgMC42MTYyMDMsIDAuOTA0NDAxLCAxLjE5MjMsIDEuNDgwODMsIDEuNzY4MTciLCBcCi0gICAgICAgICAgIjAuMTA1MiwgMC4zOTQ0NzgsIDAuNjI0OTIzLCAwLjkxMzAyNSwgMS4yMDA1OSwgMS40ODk0NSwgMS43NzY3MyIsIFwKLSAgICAgICAgICAiMC4xMTUwNTUsIDAuNDA0NjAxLCAwLjYzNDk5MywgMC45MjMyODMsIDEuMjEwNDgsIDEuNDk5NjMsIDEuNzg2ODEiLCBcCi0gICAgICAgICAgIjAuMTI0ODA3LCAwLjQxNDMxOCwgMC42NDUxNjYsIDAuOTMyNTksIDEuMjIxMzUsIDEuNTA4ODEsIDEuNzk2ODMiLCBcCi0gICAgICAgICAgIjAuMTM0ODA5LCAwLjQyNDE2MSwgMC42NTQ3MjUsIDAuOTQzNDIzLCAxLjIzMDUzLCAxLjUxOTEsIDEuODA2NTUiLCBcCi0gICAgICAgICAgIjAuMTUwMzY5LCAwLjQzOTU1NywgMC42NzA2MDcsIDAuOTU4ODA1LCAxLjI0NzEzLCAxLjUzNDMxLCAxLjgyMzAyIiwgXAotICAgICAgICAgICIwLjE2MzQ3OCwgMC40NTM3NDksIDAuNjg0NTMxLCAwLjk3Mjk2MywgMS4yNjA2OSwgMS41NDkyNCwgMS44MzYyIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE3NjUwNywgMC43NTQwNDQsIDEuMjE1NywgMS43OTI1NCwgMi4zNjkzOSwgMi45NDY2NiwgMy41MjM0OSIsIFwKLSAgICAgICAgICAiMC4xNzY0OTMsIDAuNzUzOTE4LCAxLjIxNTY0LCAxLjc5MjU2LCAyLjM2OTM3LCAyLjk0NjUyLCAzLjUyMzgiLCBcCi0gICAgICAgICAgIjAuMTc2OTc3LCAwLjc1Mzg1NywgMS4yMTU3MiwgMS43OTI3OSwgMi4zNjkzOSwgMi45NDY1NywgMy41MjM3NyIsIFwKLSAgICAgICAgICAiMC4xNzg5OTUsIDAuNzUzODExLCAxLjIxNTY2LCAxLjc5MjY4LCAyLjM2OTQ0LCAyLjk0Njc3LCAzLjUyMzY1IiwgXAotICAgICAgICAgICIwLjE4MjM4NywgMC43NTM5NDUsIDEuMjE1NjksIDEuNzkyNzQsIDIuMzY5MywgMi45NDY2LCAzLjUyMzY0IiwgXAotICAgICAgICAgICIwLjE4OTYzNywgMC43NTQwNjcsIDEuMjE1NywgMS43OTI2NSwgMi4zNjk2NywgMi45NDYxMSwgMy41MjM1NiIsIFwKLSAgICAgICAgICAiMC4xOTcxNDMsIDAuNzU1MTI2LCAxLjIxNTY4LCAxLjc5MjY5LCAyLjM2OTY0LCAyLjk0NjE4LCAzLjUyMzc0Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3MDA4OSwgMC4yNjUxNzEsIDAuNDIwODEzLCAwLjYxNjY2MiwgMC44MTMwMTgsIDEuMDA5MiwgMS4yMDY1IiwgXAotICAgICAgICAgICIwLjA3OTk4NCwgMC4yNzUwODgsIDAuNDMwOTk5LCAwLjYyNjU3NiwgMC44MjMxNTQsIDEuMDE5MjgsIDEuMjE2NTgiLCBcCi0gICAgICAgICAgIjAuMDkxMjExLCAwLjI4NjUwOSwgMC40NDIwODcsIDAuNjM4MDcyLCAwLjgzNDQ3MywgMS4wMzEyNywgMS4yMjc1IiwgXAotICAgICAgICAgICIwLjEwMjEzNCwgMC4yOTc1NTIsIDAuNDUzMTU5LCAwLjY0ODg0MiwgMC44NDUyNjksIDEuMDQyMTUsIDEuMjM4NTkiLCBcCi0gICAgICAgICAgIjAuMTEzMDAxLCAwLjMwODUyLCAwLjQ2NDExOSwgMC42NTk4MzgsIDAuODU2Mjg5LCAxLjA1MjgyLCAxLjI0OTcxIiwgXAotICAgICAgICAgICIwLjEyOTcyNiwgMC4zMjU4NDIsIDAuNDgxNjI5LCAwLjY3NzE1NiwgMC44NzM2MzEsIDEuMDcwMjksIDEuMjY2OTIiLCBcCi0gICAgICAgICAgIjAuMTQzMjQyLCAwLjM0MTA2NSwgMC40OTY4NDgsIDAuNjkyNDg2LCAwLjg4OTAxNywgMS4wODUzMywgMS4yODIwMyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDcwNywgMC40OTE3MjYsIDAuODAyNTk4LCAxLjE5MTU0LCAxLjU4MDIyLCAxLjk2ODM5LCAyLjM1ODMyIiwgXAotICAgICAgICAgICIwLjEwNzE1MSwgMC40OTE5MjcsIDAuODAyNTQ4LCAxLjE5MTA1LCAxLjU4MDI5LCAxLjk2ODMxLCAyLjM1ODExIiwgXAotICAgICAgICAgICIwLjEwNzY2NSwgMC40OTE3NDYsIDAuODAyNTcxLCAxLjE5MTQ4LCAxLjU4MDE4LCAxLjk2OTYzLCAyLjM1NzMzIiwgXAotICAgICAgICAgICIwLjEwOTg1NCwgMC40OTE3MSwgMC44MDI1NTcsIDEuMTkxNTcsIDEuNTc5ODgsIDEuOTY5NDIsIDIuMzU3OTkiLCBcCi0gICAgICAgICAgIjAuMTEzMzgyLCAwLjQ5MTcyNiwgMC44MDI0ODEsIDEuMTkxMDcsIDEuNTc5ODcsIDEuOTY4MTgsIDIuMzU3OTIiLCBcCi0gICAgICAgICAgIjAuMTIwNTI4LCAwLjQ5MjY3MSwgMC44MDI1MTksIDEuMTkxMzMsIDEuNTc5OTgsIDEuOTY4NDUsIDIuMzU3MjMiLCBcCi0gICAgICAgICAgIjAuMTI4MTYxLCAwLjQ5NDkyNSwgMC44MDI4NDQsIDEuMTkxMDYsIDEuNTc5OTIsIDEuOTY4MjUsIDIuMzU3MDMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTIiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4OTg4NywgMC4zNzkyMjEsIDAuNjA5NzQ4LCAwLjg5NzQ5NiwgMS4xODU5OSwgMS40NzMzNCwgMS43NjA3NiIsIFwKLSAgICAgICAgICAiMC4wOTgxNywgMC4zODc1MSwgMC42MTgzMiwgMC45MDU5NzgsIDEuMTk0MSwgMS40ODE5MSwgMS43NzA3MyIsIFwKLSAgICAgICAgICAiMC4xMDg3MDEsIDAuMzk4MDk3LCAwLjYyODI2MywgMC45MTY2MzQsIDEuMjA0NjksIDEuNDkyNzEsIDEuNzgwODciLCBcCi0gICAgICAgICAgIjAuMTE5NzA1LCAwLjQwOTI4MSwgMC42Mzk2NTMsIDAuOTI3MzMzLCAxLjIxNjE5LCAxLjUwMzYxLCAxLjc5MTc1IiwgXAotICAgICAgICAgICIwLjEzMDMwMiwgMC40MTk2NzUsIDAuNjQ5OTk4LCAwLjkzODA0NiwgMS4yMjY0NiwgMS41MTM2NiwgMS44MDI5MSIsIFwKLSAgICAgICAgICAiMC4xNDc5MzQsIDAuNDM2OTU4LCAwLjY2NzM5MywgMC45NTU2NTcsIDEuMjQzMjQsIDEuNTMxMDIsIDEuODE4ODciLCBcCi0gICAgICAgICAgIjAuMTYyOTE0LCAwLjQ1MTk1OCwgMC42ODI1OTMsIDAuOTcwOTksIDEuMjU4NTksIDEuNTQ3MTMsIDEuODM0MDEiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTc2NTA3LCAwLjc1Mzk1NiwgMS4yMTU2OCwgMS43OTI2OCwgMi4zNjk2LCAyLjk0Njc5LCAzLjUyMjk4IiwgXAotICAgICAgICAgICIwLjE3NjQxNSwgMC43NTM5MzQsIDEuMjE1NywgMS43OTI2OCwgMi4zNjk2MiwgMi45NDY2NiwgMy41MjM0NyIsIFwKLSAgICAgICAgICAiMC4xNzcyMDIsIDAuNzUzOTQ3LCAxLjIxNTY2LCAxLjc5MjU0LCAyLjM2OTM3LCAyLjk0NjEyLCAzLjUyMzc2IiwgXAotICAgICAgICAgICIwLjE4MDc3NCwgMC43NTM5MjgsIDEuMjE1NjksIDEuNzkyNTQsIDIuMzY5NjYsIDIuOTQ2MzIsIDMuNTIzNTUiLCBcCi0gICAgICAgICAgIjAuMTg2NDM1LCAwLjc1Mzk1NCwgMS4yMTU3LCAxLjc5MjY2LCAyLjM2OTYyLCAyLjk0NjExLCAzLjUyMzUyIiwgXAotICAgICAgICAgICIwLjE5NzIyNiwgMC43NTM4OTYsIDEuMjE1NywgMS43OTI3LCAyLjM2OTQyLCAyLjk0NjUsIDMuNTIzMzkiLCBcCi0gICAgICAgICAgIjAuMjA4MzYyLCAwLjc1NTQxNSwgMS4yMTU2MywgMS43OTI3LCAyLjM2OTI2LCAyLjk0NjQzLCAzLjUyMzc1Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2NjQwMSwgMC4yNjQzMTEsIDAuNDIyNDEsIDAuNjIwOTUsIDAuODIwNzcyLCAxLjAyMDAzLCAxLjIxOTYiLCBcCi0gICAgICAgICAgIjAuMDc2NDI4LCAwLjI3NDQ1NSwgMC40MzI0NzUsIDAuNjMxMDM1LCAwLjgzMTA3OCwgMS4wMzAzOSwgMS4yMjk5OCIsIFwKLSAgICAgICAgICAiMC4wODc1NjksIDAuMjg1ODYzLCAwLjQ0Mzg5MywgMC42NDI0NDQsIDAuODQyNTM0LCAxLjA0MTYyLCAxLjI0MTM0IiwgXAotICAgICAgICAgICIwLjA5ODQ0NCwgMC4yOTY4ODksIDAuNDU0OTk5LCAwLjY1Mzk0LCAwLjg1MzE1NiwgMS4wNTMsIDEuMjUyMjYiLCBcCi0gICAgICAgICAgIjAuMTA5MjQ2LCAwLjMwNzg2NSwgMC40NjYwNjQsIDAuNjY0NTA1LCAwLjg2Mzk1NCwgMS4wNjQwNywgMS4yNjM0OSIsIFwKLSAgICAgICAgICAiMC4xMjU2OTYsIDAuMzI1MTMzLCAwLjQ4MzM5MywgMC42ODE5MjIsIDAuODgxNTcsIDEuMDgxNDEsIDEuMjgwNjEiLCBcCi0gICAgICAgICAgIjAuMTM4NjQ3LCAwLjM0MDM1OSwgMC40OTg2NDYsIDAuNjk3MjA2LCAwLjg5NzEyMywgMS4wOTY0NSwgMS4yOTU5MSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDM0MTksIDAuNDk0MDM0LCAwLjgwOTgwNywgMS4yMDYwNiwgMS42MTA4MiwgMi4wMDA2NiwgMi4zODg5OCIsIFwKLSAgICAgICAgICAiMC4xMDM0OTUsIDAuNDk1MzU2LCAwLjgxMDc2MiwgMS4yMDc4OSwgMS41OTkwNiwgMi4wMDA2NSwgMi4zOTIwMyIsIFwKLSAgICAgICAgICAiMC4xMDM5NTYsIDAuNDk3MDI2LCAwLjgxMDczMSwgMS4yMDQ1OSwgMS41OTg5OSwgMS45OTQxNSwgMi4zODkxOCIsIFwKLSAgICAgICAgICAiMC4xMDY0NzYsIDAuNDk1MjksIDAuODEyMjAzLCAxLjIwNDMxLCAxLjYwNDA1LCAxLjk5NDMsIDIuMzk1NzIiLCBcCi0gICAgICAgICAgIjAuMTEwMDM1LCAwLjQ5NTQ4MiwgMC44MTIxNDcsIDEuMjEyNTgsIDEuNjA0MDMsIDEuOTk2NTcsIDIuMzg5MjEiLCBcCi0gICAgICAgICAgIjAuMTE3NjIsIDAuNDk3NzMsIDAuODE0ODE4LCAxLjIwNzk2LCAxLjYwOTUxLCAxLjk5Njc0LCAyLjM5NTIzIiwgXAotICAgICAgICAgICIwLjEyNTQ4LCAwLjQ5ODc1MywgMC44MTIzMjUsIDEuMjEyMTUsIDEuNTk5MTQsIDIuMDAwMTIsIDIuNDA0MTUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjAiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1NTIwNCwgMC4yNDk0MjMsIDAuNDA0NzI2LCAwLjU5ODgyLCAwLjc5MjkyNiwgMC45ODcxOTMsIDEuMTgxMjIiLCBcCi0gICAgICAgICAgIjAuMDYzOTI3LCAwLjI1ODMxOCwgMC40MTM2NzcsIDAuNjA3NzU5LCAwLjgwMTg0OSwgMC45OTYyMDgsIDEuMTkwMTQiLCBcCi0gICAgICAgICAgIjAuMDczNzg0LCAwLjI2ODQ4NCwgMC40MjM3NTYsIDAuNjE3OTcyLCAwLjgxMjAyNCwgMS4wMDYyNiwgMS4yMDAyMiIsIFwKLSAgICAgICAgICAiMC4wODM3MTgsIDAuMjc4NTA5LCAwLjQzMzg4NywgMC42MjgxMzgsIDAuODIyMTEyLCAxLjAxNjM0LCAxLjIxMDM3IiwgXAotICAgICAgICAgICIwLjA5MzM2MiwgMC4yODg1LCAwLjQ0Mzc1MiwgMC42Mzc5NSwgMC44MzIxMjgsIDEuMDI2MzQsIDEuMjIwNzQiLCBcCi0gICAgICAgICAgIjAuMTA3MjkyLCAwLjMwNDYzNCwgMC40NjAwNDMsIDAuNjU0MjU0LCAwLjg0ODM4MiwgMS4wNDI4OSwgMS4yMzY3MyIsIFwKLSAgICAgICAgICAiMC4xMTc3ODQsIDAuMzE4NDY5LCAwLjQ3Mzk0LCAwLjY2ODI1MywgMC44NjI1MzQsIDEuMDU2NjksIDEuMjUwODYiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTE5Mzk2LCAwLjUxMjM3MywgMC44Mjc2NTIsIDEuMjIxNzQsIDEuNjE2MjQsIDIuMDEwODYsIDIuNDA1MDEiLCBcCi0gICAgICAgICAgIjAuMTE5NDM0LCAwLjUxMjM3NywgMC44Mjc1MDYsIDEuMjIxNzEsIDEuNjE2NDIsIDIuMDEwNDcsIDIuNDA0OTUiLCBcCi0gICAgICAgICAgIjAuMTIxNDExLCAwLjUxMjM5OSwgMC44Mjc2NSwgMS4yMjE5NSwgMS42MTYzNywgMi4wMTA0NiwgMi40MDQ4MyIsIFwKLSAgICAgICAgICAiMC4xMjUyNDksIDAuNTEyNDcyLCAwLjgyNzY3NSwgMS4yMjE3NSwgMS42MTYzNCwgMi4wMTA5LCAyLjQwNDk4IiwgXAotICAgICAgICAgICIwLjEzMDE0OCwgMC41MTI2NywgMC44Mjc3NDksIDEuMjIxNzQsIDEuNjE2MzcsIDIuMDEwNzIsIDIuNDA1MzMiLCBcCi0gICAgICAgICAgIjAuMTM5MjgyLCAwLjUxNDUzNywgMC44Mjc2MzQsIDEuMjIxNzMsIDEuNjE2MSwgMi4wMTA3OSwgMi40MDUzOSIsIFwKLSAgICAgICAgICAiMC4xNDc5MzUsIDAuNTE3ODM2LCAwLjgyODQ2NSwgMS4yMjE3LCAxLjYxNTk5LCAyLjAxMDU5LCAyLjQwNTM3Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2NDY5MSwgMC4yNTgxNywgMC40MTI2ODgsIDAuNjEwMDE1LCAwLjgwNzQ4MywgMS4wMDQ3OSwgMS4yMDI2MSIsIFwKLSAgICAgICAgICAiMC4wNzM3NTMsIDAuMjY3NTc3LCAwLjQyMTgyLCAwLjYxOTMwNiwgMC44MTY3ODEsIDEuMDEzOTYsIDEuMjExMzEiLCBcCi0gICAgICAgICAgIjAuMDg1NDg4LCAwLjI3OTQzLCAwLjQzMzY5NiwgMC42MzEyNDQsIDAuODI4ODAxLCAxLjAyNjMzLCAxLjIyMzc4IiwgXAotICAgICAgICAgICIwLjA5NzM2LCAwLjI5MDU3MiwgMC40NDQ5MiwgMC42NDIyODksIDAuODM5NjE2LCAxLjAzNzY0LCAxLjIzNDc3IiwgXAotICAgICAgICAgICIwLjEwOTM3OCwgMC4zMDIwNTUsIDAuNDU2ODM3LCAwLjY1NDUxOSwgMC44NTE2NTYsIDEuMDQ5NDIsIDEuMjQ2NDMiLCBcCi0gICAgICAgICAgIjAuMTI4MTUzLCAwLjMyMTExMywgMC40NzU0MTYsIDAuNjcyODkxLCAwLjg3MDM3LCAxLjA2Nzc0LCAxLjI2NSIsIFwKLSAgICAgICAgICAiMC4xNDM0NDEsIDAuMzM3NTg0LCAwLjQ5MTc2LCAwLjY4OTQ1OSwgMC44ODY2NDMsIDEuMDg0MzEsIDEuMjgxMzYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTEwODI5LCAwLjQ5MzQ3OSwgMC44MDUyNSwgMS4xOTU0MSwgMS41ODUxNiwgMS45NzQ4LCAyLjM2NTc0IiwgXAotICAgICAgICAgICIwLjExMDUzNiwgMC40OTM0MDMsIDAuODA1MzAyLCAxLjE5NTA4LCAxLjU4NTIyLCAxLjk3NDksIDIuMzY0NzkiLCBcCi0gICAgICAgICAgIjAuMTEyNDg2LCAwLjQ5MzMzOCwgMC44MDUyMzEsIDEuMTk1MSwgMS41ODU3NCwgMS45NzU3OSwgMi4zNjQ1NyIsIFwKLSAgICAgICAgICAiMC4xMTczNjQsIDAuNDkzNDM0LCAwLjgwNTQxNSwgMS4xOTU3MiwgMS41ODQ4NCwgMS45NzU5MSwgMi4zNjQ1NCIsIFwKLSAgICAgICAgICAiMC4xMjM1OTYsIDAuNDkzMzEyLCAwLjgwNTIzLCAxLjE5NTI4LCAxLjU4NTE2LCAxLjk3NTgxLCAyLjM2NDQ1IiwgXAotICAgICAgICAgICIwLjEzNTg2OSwgMC40OTU4MzcsIDAuODA1Mzg3LCAxLjE5NTQ2LCAxLjU4NTEzLCAxLjk3NDgyLCAyLjM2NDkxIiwgXAotICAgICAgICAgICIwLjE0NzUzNywgMC40OTk5MTgsIDAuODA1ODE4LCAxLjE5NTE2LCAxLjU4NTE5LCAxLjk3NjMsIDIuMzY0NzMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1MjExMiwgMC4yNDYyODgsIDAuNDAxNjE4LCAwLjU5NTc2NiwgMC43ODk5MDEsIDAuOTg0MDU4LCAxLjE3ODQ4IiwgXAotICAgICAgICAgICIwLjA2MTA5NCwgMC4yNTU1MiwgMC40MTA4NjUsIDAuNjA0OTgzLCAwLjc5OTA3NSwgMC45OTMzMiwgMS4xODc0NSIsIFwKLSAgICAgICAgICAiMC4wNzIyNywgMC4yNjY4MTUsIDAuNDIyMjk1LCAwLjYxNjM1NiwgMC44MTA0MTMsIDEuMDA0NjYsIDEuMTk4NTgiLCBcCi0gICAgICAgICAgIjAuMDgzOTM2LCAwLjI3ODU1OCwgMC40MzM5MDEsIDAuNjI4MDU0LCAwLjgyMjIwMSwgMS4wMTYzNywgMS4yMTA0NiIsIFwKLSAgICAgICAgICAiMC4wOTU2OSwgMC4yODk5NDksIDAuNDQ1MTkzLCAwLjYzOTI3OCwgMC44MzM2MDQsIDEuMDI3NjEsIDEuMjIyIiwgXAotICAgICAgICAgICIwLjExMTc3MSwgMC4zMDgyODIsIDAuNDYyNzY4LCAwLjY1Nzc0MSwgMC44NTE4ODEsIDEuMDQ2MDEsIDEuMjQwMSIsIFwKLSAgICAgICAgICAiMC4xMjM5NjgsIDAuMzI0Mjg0LCAwLjQ3OTY2NiwgMC42NzM4MzQsIDAuODY3OTgzLCAxLjA2MjA5LCAxLjI1NjE0Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExOTM5OSwgMC41MTIzNDMsIDAuODI3NjQ3LCAxLjIyMTc1LCAxLjYxNjEsIDIuMDEwNDYsIDIuNDA1MjkiLCBcCi0gICAgICAgICAgIjAuMTE5NTUyLCAwLjUxMjM1OCwgMC44Mjc2MTQsIDEuMjIxNzQsIDEuNjE1OTksIDIuMDEwODUsIDIuNDA1NDMiLCBcCi0gICAgICAgICAgIjAuMTIzNDk1LCAwLjUxMjM4MywgMC44Mjc2NzgsIDEuMjIxNzksIDEuNjE2MDEsIDIuMDEwNDYsIDIuNDA1MjYiLCBcCi0gICAgICAgICAgIjAuMTI5ODE1LCAwLjUxMjQ2OSwgMC44Mjc1LCAxLjIyMTc4LCAxLjYxNjEsIDIuMDEwOSwgMi40MDQ5NiIsIFwKLSAgICAgICAgICAiMC4xMzc1NzksIDAuNTEyNjMsIDAuODI3NjAzLCAxLjIyMTc3LCAxLjYxNjA0LCAyLjAxMDY1LCAyLjQwNDc0IiwgXAotICAgICAgICAgICIwLjE1MTQzNSwgMC41MTU1NzEsIDAuODI3NTgzLCAxLjIyMTc2LCAxLjYxNjExLCAyLjAxMDQ3LCAyLjQwNTAyIiwgXAotICAgICAgICAgICIwLjE2NDI2OSwgMC41MjAyNjEsIDAuODI4NDM1LCAxLjIyMTcyLCAxLjYxNjAxLCAyLjAxMDc2LCAyLjQwNTI2Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2MTgwNywgMC4yNTk0NDIsIDAuNDE2Nzg0LCAwLjYxMzUzNiwgMC44MTE2OTMsIDEuMDExMTEsIDEuMjExNTgiLCBcCi0gICAgICAgICAgIjAuMDcwOTA2LCAwLjI2OTA1OCwgMC40MjY0NTUsIDAuNjIzMDM3LCAwLjgyMTE1OCwgMS4wMjA0NCwgMS4yMTk5OSIsIFwKLSAgICAgICAgICAiMC4wODI1NTMsIDAuMjgwNTI5LCAwLjQzODI1NiwgMC42MzQ4NjcsIDAuODMzMDA5LCAxLjAzMjc4LCAxLjIzMjgzIiwgXAotICAgICAgICAgICIwLjA5NDUwMiwgMC4yOTE5OCwgMC40NDkzNjYsIDAuNjQ2MDY2LCAwLjg0Mzk5NSwgMS4wNDQxNiwgMS4yNDMiLCBcCi0gICAgICAgICAgIjAuMTA2MzEyLCAwLjMwMzQ4MSwgMC40NjE0MjYsIDAuNjU4MjY2LCAwLjg1NTY2OSwgMS4wNTYyNCwgMS4yNTQ5NyIsIFwKLSAgICAgICAgICAiMC4xMjUwMzUsIDAuMzIyNDc4LCAwLjQ3OTgzOSwgMC42NzY1NDcsIDAuODc0NTQ1LCAxLjA3NDM3LCAxLjI3MzY1IiwgXAotICAgICAgICAgICIwLjEzOTQ5LCAwLjMzODk4OCwgMC40OTYzNjIsIDAuNjkzMjc2LCAwLjg5MDk0MiwgMS4wOTA3NSwgMS4yOTAwNiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDg0MiwgMC40OTY4MDcsIDAuODEwMTE2LCAxLjIwNjIxLCAxLjU5OTYzLCAxLjk5NDE2LCAyLjM4OTc2IiwgXAotICAgICAgICAgICIwLjEwODA5NCwgMC40OTcwMDQsIDAuODE0NDU5LCAxLjIxMTcxLCAxLjU5OTM4LCAxLjk5OTk2LCAyLjQwMTQ3IiwgXAotICAgICAgICAgICIwLjExMDI3MywgMC40OTY4MDcsIDAuODA5Nzk5LCAxLjIwNDQxLCAxLjYwNDE3LCAxLjk5NDg1LCAyLjM4ODk2IiwgXAotICAgICAgICAgICIwLjExNTE5MywgMC40OTcwMjIsIDAuODA5Njc0LCAxLjIwODA2LCAxLjYwODc0LCAxLjk5MzcsIDIuNDAxNTEiLCBcCi0gICAgICAgICAgIjAuMTIxNzYzLCAwLjQ5NzA5MywgMC44MTQyNjUsIDEuMjA0NjMsIDEuNjAzNTMsIDEuOTk0MTIsIDIuNDA0MTIiLCBcCi0gICAgICAgICAgIjAuMTM0NDE4LCAwLjQ5ODg0NCwgMC44MDk5MjksIDEuMjA0NjMsIDEuNjA5NjMsIDEuOTk2NjYsIDIuMzk2MTgiLCBcCi0gICAgICAgICAgIjAuMTQ2NTk4LCAwLjUwMzA3MiwgMC44MTI0MDYsIDEuMjExOTYsIDEuNjA4NjQsIDEuOTk0MzYsIDIuMzk1MTYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA4MTU1LCAwLjAwODE1NCwgMC4wMDgxNTMsIDAuMDA4MTUsIDAuMDA4MTQ4LCAwLjAwODE0OCwgMC4wMDgxNDMiLCBcCi0gICAgICAgICAgIjAuMDA4MTIsIDAuMDA4MTMxLCAwLjAwODEzMSwgMC4wMDgxMywgMC4wMDgxMjgsIDAuMDA4MTI2LCAwLjAwODEyNiIsIFwKLSAgICAgICAgICAiMC4wMDgxLCAwLjAwODEyNCwgMC4wMDgxMjUsIDAuMDA4MTI0LCAwLjAwODEyMiwgMC4wMDgxMjIsIDAuMDA4MTIxIiwgXAotICAgICAgICAgICIwLjAwODA4NywgMC4wMDgxMTcsIDAuMDA4MTIxLCAwLjAwODEyMSwgMC4wMDgxMjEsIDAuMDA4MTIxLCAwLjAwODExNyIsIFwKLSAgICAgICAgICAiMC4wMDgwNzksIDAuMDA4MTEyLCAwLjAwODExOCwgMC4wMDgxMTgsIDAuMDA4MTE5LCAwLjAwODExOSwgMC4wMDgxMTUiLCBcCi0gICAgICAgICAgIjAuMDA4MDcsIDAuMDA4MTA3LCAwLjAwODExMiwgMC4wMDgxMTUsIDAuMDA4MTE1LCAwLjAwODExNSwgMC4wMDgxMTQiLCBcCi0gICAgICAgICAgIjAuMDA4MDY4LCAwLjAwODA5OSwgMC4wMDgxMDksIDAuMDA4MTEyLCAwLjAwODExNCwgMC4wMDgxMTQsIDAuMDA4MTEzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyNDQ5LCAwLjAwMjQ0OSwgMC4wMDI0NDgsIDAuMDAyNDQ5LCAwLjAwMjQ0OCwgMC4wMDI0NDgsIDAuMDAyNDQ2IiwgXAotICAgICAgICAgICIwLjAwMjM5NCwgMC4wMDI0MDIsIDAuMDAyNDA0LCAwLjAwMjQwMiwgMC4wMDI0MDMsIDAuMDAyNDAzLCAwLjAwMjQwMiIsIFwKLSAgICAgICAgICAiMC4wMDIzNzEsIDAuMDAyMzksIDAuMDAyMzkyLCAwLjAwMjM5MywgMC4wMDIzOTQsIDAuMDAyMzkzLCAwLjAwMjM5MSIsIFwKLSAgICAgICAgICAiMC4wMDIzNTYsIDAuMDAyMzgzLCAwLjAwMjM4NiwgMC4wMDIzODksIDAuMDAyMzg5LCAwLjAwMjM5LCAwLjAwMjM4OCIsIFwKLSAgICAgICAgICAiMC4wMDIzNDUsIDAuMDAyMzc4LCAwLjAwMjM4MiwgMC4wMDIzODUsIDAuMDAyMzg2LCAwLjAwMjM4NywgMC4wMDIzODciLCBcCi0gICAgICAgICAgIjAuMDAyMzM0LCAwLjAwMjM3MSwgMC4wMDIzNzgsIDAuMDAyMzgxLCAwLjAwMjM4MywgMC4wMDIzODMsIDAuMDAyMzgzIiwgXAotICAgICAgICAgICIwLjAwMjMyOSwgMC4wMDIzNjcsIDAuMDAyMzc0LCAwLjAwMjM3OSwgMC4wMDIzODEsIDAuMDAyMzgyLCAwLjAwMjM4MyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkExIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDc0OTEsIDAuMDA3NDksIDAuMDA3NDg5LCAwLjAwNzQ4NywgMC4wMDc0ODcsIDAuMDA3NDgyLCAwLjAwNzQ4IiwgXAotICAgICAgICAgICIwLjAwNzQ1NiwgMC4wMDc0NjcsIDAuMDA3NDY3LCAwLjAwNzQ2NiwgMC4wMDc0NjMsIDAuMDA3NDYzLCAwLjAwNzQ2MyIsIFwKLSAgICAgICAgICAiMC4wMDc0MzcsIDAuMDA3NDYsIDAuMDA3NDYxLCAwLjAwNzQ2LCAwLjAwNzQ1OSwgMC4wMDc0NTgsIDAuMDA3NDU4IiwgXAotICAgICAgICAgICIwLjAwNzQyNSwgMC4wMDc0NTQsIDAuMDA3NDU2LCAwLjAwNzQ1OCwgMC4wMDc0NTYsIDAuMDA3NDU4LCAwLjAwNzQ1MyIsIFwKLSAgICAgICAgICAiMC4wMDc0MTgsIDAuMDA3NDQ5LCAwLjAwNzQ1MywgMC4wMDc0NTQsIDAuMDA3NDU4LCAwLjAwNzQ1MywgMC4wMDc0NTUiLCBcCi0gICAgICAgICAgIjAuMDA3NDEyLCAwLjAwNzQzOSwgMC4wMDc0NDksIDAuMDA3NDUyLCAwLjAwNzQ1MSwgMC4wMDc0NTEsIDAuMDA3NDUiLCBcCi0gICAgICAgICAgIjAuMDA3NDEzLCAwLjAwNzQ0MSwgMC4wMDc0NDcsIDAuMDA3NDUsIDAuMDA3NDUyLCAwLjAwNzQ1MSwgMC4wMDc0NDkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDE4NDQsIDAuMDAxODQ3LCAwLjAwMTg0NywgMC4wMDE4NDcsIDAuMDAxODQ1LCAwLjAwMTg1LCAwLjAwMTg0NiIsIFwKLSAgICAgICAgICAiMC4wMDE4MSwgMC4wMDE4MzksIDAuMDAxODQyLCAwLjAwMTg0NCwgMC4wMDE4NDQsIDAuMDAxODQ0LCAwLjAwMTg0NCIsIFwKLSAgICAgICAgICAiMC4wMDE3NzMsIDAuMDAxODI3LCAwLjAwMTgzNSwgMC4wMDE4MzksIDAuMDAxODQsIDAuMDAxODQxLCAwLjAwMTg0MSIsIFwKLSAgICAgICAgICAiMC4wMDE3NDQsIDAuMDAxODE2LCAwLjAwMTgyOCwgMC4wMDE4MzQsIDAuMDAxODM3LCAwLjAwMTgzOCwgMC4wMDE4MzkiLCBcCi0gICAgICAgICAgIjAuMDAxNzIyLCAwLjAwMTgwNywgMC4wMDE4MjEsIDAuMDAxODI5LCAwLjAwMTgzMywgMC4wMDE4MzUsIDAuMDAxODM2IiwgXAotICAgICAgICAgICIwLjAwMTY5NywgMC4wMDE3OTMsIDAuMDAxODExLCAwLjAwMTgyMSwgMC4wMDE4MjcsIDAuMDAxODMsIDAuMDAxODMyIiwgXAotICAgICAgICAgICIwLjAwMTY4MywgMC4wMDE3ODIsIDAuMDAxODAzLCAwLjAwMTgxNiwgMC4wMDE4MjMsIDAuMDAxODI2LCAwLjAwMTgyOSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEyIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDY3OTksIDAuMDA2Nzk4LCAwLjAwNjc5OCwgMC4wMDY3OTYsIDAuMDA2Nzk1LCAwLjAwNjc5MiwgMC4wMDY3ODkiLCBcCi0gICAgICAgICAgIjAuMDA2NzQ4LCAwLjAwNjc3MSwgMC4wMDY3NzEsIDAuMDA2NzcyLCAwLjAwNjc3LCAwLjAwNjc3LCAwLjAwNjc2OSIsIFwKLSAgICAgICAgICAiMC4wMDY3MjQsIDAuMDA2NzU5LCAwLjAwNjc2MiwgMC4wMDY3NjQsIDAuMDA2NzY0LCAwLjAwNjc2MywgMC4wMDY3NjIiLCBcCi0gICAgICAgICAgIjAuMDA2NzEsIDAuMDA2NzUxLCAwLjAwNjc1NywgMC4wMDY3NjEsIDAuMDA2NzYxLCAwLjAwNjc1OSwgMC4wMDY3NTgiLCBcCi0gICAgICAgICAgIjAuMDA2NzE5LCAwLjAwNjc1LCAwLjAwNjc1NSwgMC4wMDY3NTgsIDAuMDA2NzU5LCAwLjAwNjc1OCwgMC4wMDY3NTYiLCBcCi0gICAgICAgICAgIjAuMDA2NzM1LCAwLjAwNjc0OCwgMC4wMDY3NTMsIDAuMDA2NzU2LCAwLjAwNjc1NywgMC4wMDY3NTUsIDAuMDA2NzU2IiwgXAotICAgICAgICAgICIwLjAwNjc2NCwgMC4wMDY3NTIsIDAuMDA2NzU0LCAwLjAwNjc1NiwgMC4wMDY3NTYsIDAuMDA2NzU2LCAwLjAwNjc1NiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTE4NiwgMC4wMDEyMDIsIDAuMDAxMjA0LCAwLjAwMTIwNCwgMC4wMDEyMDQsIDAuMDAxMjA0LCAwLjAwMTIwNCIsIFwKLSAgICAgICAgICAiMC4wMDExNzEsIDAuMDAxMjMxLCAwLjAwMTIzOSwgMC4wMDEyNDMsIDAuMDAxMjQ0LCAwLjAwMTI0NSwgMC4wMDEyNDciLCBcCi0gICAgICAgICAgIjAuMDAxMTIxLCAwLjAwMTIyMSwgMC4wMDEyMzUsIDAuMDAxMjQyLCAwLjAwMTI0NywgMC4wMDEyNDksIDAuMDAxMjUiLCBcCi0gICAgICAgICAgIjAuMDAxMDgsIDAuMDAxMjA3LCAwLjAwMTIyNywgMC4wMDEyMzcsIDAuMDAxMjQzLCAwLjAwMTI0NiwgMC4wMDEyNDgiLCBcCi0gICAgICAgICAgIjAuMDAxMDQ3LCAwLjAwMTE5MywgMC4wMDEyMTcsIDAuMDAxMjMxLCAwLjAwMTIzOCwgMC4wMDEyNDMsIDAuMDAxMjQ2IiwgXAotICAgICAgICAgICIwLjAwMTAxMSwgMC4wMDExNzEsIDAuMDAxMjAzLCAwLjAwMTIyMSwgMC4wMDEyMzEsIDAuMDAxMjM3LCAwLjAwMTI0IiwgXAotICAgICAgICAgICIwLjAwMDk5MSwgMC4wMDExNTQsIDAuMDAxMTksIDAuMDAxMjEyLCAwLjAwMTIyNCwgMC4wMDEyMzEsIDAuMDAxMjM2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNTQzNCwgMC4wMDU0NDUsIDAuMDA1NDQ2LCAwLjAwNTQ0NiwgMC4wMDU0NDcsIDAuMDA1NDQ3LCAwLjAwNTQ0NyIsIFwKLSAgICAgICAgICAiMC4wMDU0MDUsIDAuMDA1NDUzLCAwLjAwNTQ1OSwgMC4wMDU0NjIsIDAuMDA1NDY0LCAwLjAwNTQ2NCwgMC4wMDU0NjUiLCBcCi0gICAgICAgICAgIjAuMDA1Mzc1LCAwLjAwNTQ0NCwgMC4wMDU0NTQsIDAuMDA1NDYsIDAuMDA1NDYyLCAwLjAwNTQ2NCwgMC4wMDU0NjIiLCBcCi0gICAgICAgICAgIjAuMDA1MzUzLCAwLjAwNTQzNSwgMC4wMDU0NDgsIDAuMDA1NDU2LCAwLjAwNTQ2MiwgMC4wMDU0NjIsIDAuMDA1NDY0IiwgXAotICAgICAgICAgICIwLjAwNTMzOCwgMC4wMDU0MjUsIDAuMDA1NDQyLCAwLjAwNTQ1MSwgMC4wMDU0NTYsIDAuMDA1NDU5LCAwLjAwNTQ2IiwgXAotICAgICAgICAgICIwLjAwNTMzLCAwLjAwNTQxNCwgMC4wMDU0MzMsIDAuMDA1NDQ0LCAwLjAwNTQ1MSwgMC4wMDU0NTUsIDAuMDA1NDU4IiwgXAotICAgICAgICAgICIwLjAwNTMyOSwgMC4wMDU0MDcsIDAuMDA1NDI4LCAwLjAwNTQ0MSwgMC4wMDU0NDgsIDAuMDA1NDUzLCAwLjAwNTQ1NiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjQ1NSwgMC4wMDI0NTksIDAuMDAyNDU5LCAwLjAwMjQ1OSwgMC4wMDI0NiwgMC4wMDI0NiwgMC4wMDI0NTciLCBcCi0gICAgICAgICAgIjAuMDAyNDAxLCAwLjAwMjQzLCAwLjAwMjQzMiwgMC4wMDI0MzIsIDAuMDAyNDM0LCAwLjAwMjQzNiwgMC4wMDI0MzEiLCBcCi0gICAgICAgICAgIjAuMDAyMzgyLCAwLjAwMjQyLCAwLjAwMjQyNiwgMC4wMDI0MjgsIDAuMDAyNDI5LCAwLjAwMjQyOSwgMC4wMDI0MjkiLCBcCi0gICAgICAgICAgIjAuMDAyMzkxLCAwLjAwMjQxNSwgMC4wMDI0MjEsIDAuMDAyNDIzLCAwLjAwMjQyNSwgMC4wMDI0MjYsIDAuMDAyNDI1IiwgXAotICAgICAgICAgICIwLjAwMjM5OCwgMC4wMDI0MDgsIDAuMDAyNDE2LCAwLjAwMjQyLCAwLjAwMjQyMSwgMC4wMDI0MjIsIDAuMDAyNDIzIiwgXAotICAgICAgICAgICIwLjAwMjQyNCwgMC4wMDI0MTUsIDAuMDAyNDE4LCAwLjAwMjQyMiwgMC4wMDI0MjIsIDAuMDAyNDIyLCAwLjAwMjQyNCIsIFwKLSAgICAgICAgICAiMC4wMDI0NTcsIDAuMDAyNDIyLCAwLjAwMjQyMywgMC4wMDI0MjMsIDAuMDAyNDI0LCAwLjAwMjQyNCwgMC4wMDI0MjQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0NzU1LCAwLjAwNDc3MSwgMC4wMDQ3NzMsIDAuMDA0NzczLCAwLjAwNDc3NCwgMC4wMDQ3NzQsIDAuMDA0Nzc0IiwgXAotICAgICAgICAgICIwLjAwNDcxNiwgMC4wMDQ3NzYsIDAuMDA0NzgzLCAwLjAwNDc4NywgMC4wMDQ3ODksIDAuMDA0NzksIDAuMDA0NzkxIiwgXAotICAgICAgICAgICIwLjAwNDY4NCwgMC4wMDQ3NjYsIDAuMDA0Nzc4LCAwLjAwNDc4NCwgMC4wMDQ3ODcsIDAuMDA0Nzg5LCAwLjAwNDc5MSIsIFwKLSAgICAgICAgICAiMC4wMDQ2NjIsIDAuMDA0NzUzLCAwLjAwNDc2OSwgMC4wMDQ3NzgsIDAuMDA0NzgzLCAwLjAwNDc4NiwgMC4wMDQ3ODgiLCBcCi0gICAgICAgICAgIjAuMDA0NjczLCAwLjAwNDc0OSwgMC4wMDQ3NjUsIDAuMDA0Nzc1LCAwLjAwNDc4MSwgMC4wMDQ3ODQsIDAuMDA0Nzg3IiwgXAotICAgICAgICAgICIwLjAwNDY5NSwgMC4wMDQ3NDIsIDAuMDA0NzUzLCAwLjAwNDc3MSwgMC4wMDQ3NzcsIDAuMDA0NzgxLCAwLjAwNDc4NCIsIFwKLSAgICAgICAgICAiMC4wMDQ3MzEsIDAuMDA0NzQzLCAwLjAwNDc1OCwgMC4wMDQ3NywgMC4wMDQ3NzYsIDAuMDA0NzgsIDAuMDA0NzgzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxODg0LCAwLjAwMTkwMSwgMC4wMDE5MDQsIDAuMDAxOTA0LCAwLjAwMTkwNCwgMC4wMDE5MDQsIDAuMDAxOTA0IiwgXAotICAgICAgICAgICIwLjAwMTg0MSwgMC4wMDE5MDcsIDAuMDAxOTE1LCAwLjAwMTkyLCAwLjAwMTkyMiwgMC4wMDE5MjEsIDAuMDAxOTIzIiwgXAotICAgICAgICAgICIwLjAwMTc5OSwgMC4wMDE4OTMsIDAuMDAxOTA3LCAwLjAwMTkxNSwgMC4wMDE5MTgsIDAuMDAxOTIsIDAuMDAxOTIxIiwgXAotICAgICAgICAgICIwLjAwMTc3OSwgMC4wMDE4ODMsIDAuMDAxOTAxLCAwLjAwMTkxMSwgMC4wMDE5MTYsIDAuMDAxOTIsIDAuMDAxOTIyIiwgXAotICAgICAgICAgICIwLjAwMTc4NiwgMC4wMDE4NjcsIDAuMDAxODkxLCAwLjAwMTkwMywgMC4wMDE5MTIsIDAuMDAxOTE2LCAwLjAwMTkxOCIsIFwKLSAgICAgICAgICAiMC4wMDE3OTcsIDAuMDAxODYzLCAwLjAwMTg4NiwgMC4wMDE4OTksIDAuMDAxOTA3LCAwLjAwMTkxMSwgMC4wMDE5MTUiLCBcCi0gICAgICAgICAgIjAuMDAxODIsIDAuMDAxODYsIDAuMDAxODgyLCAwLjAwMTg5NiwgMC4wMDE5MDQsIDAuMDAxOTA5LCAwLjAwMTkxMyIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IE9BSTMzWDQgKgotICogLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoT0FJMzNYNCkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjg3MTA3ODsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQTApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMzAyMzMzOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMzAwNzkzOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMzAyMzMzOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTYzNywgMC4wMDE2MzUsIDAuMDAxNjM1LCAwLjAwMTYzNSwgMC4wMDE2MzUsIDAuMDAxNjM0LCAwLjAwMTYzMSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTY0LCAwLjAwMTY0MSwgMC4wMDE2NCwgMC4wMDE2NCwgMC4wMDE2NDEsIDAuMDAxNjQxLCAwLjAwMTY0MiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQTEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMjk4MTk7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAyOTcwNzU7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAyOTgxOTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDE2MzgsIDAuMDAxNjM2LCAwLjAwMTYzNywgMC4wMDE2MzYsIDAuMDAxNjM2LCAwLjAwMTYzNiwgMC4wMDE2MzYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDE2NCwgMC4wMDE2MzksIDAuMDAxNjM5LCAwLjAwMTYzOSwgMC4wMDE2NCwgMC4wMDE2NCwgMC4wMDE2NCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQTIpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMzAzODc1OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMzAzODc1OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMzAyNzI1OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTYzOCwgMC4wMDE2MzcsIDAuMDAxNjM2LCAwLjAwMTYzNywgMC4wMDE2MzcsIDAuMDAxNjM3LCAwLjAwMTYzNiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTYzOCwgMC4wMDE2MzksIDAuMDAxNjM5LCAwLjAwMTYzOCwgMC4wMDE2MzksIDAuMDAxNjM5LCAwLjAwMTYzOSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQjApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMzA2OTgxOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMzA0Mjk5OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMzA2OTgxOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjc0MSwgMC4wMDI3NDIsIDAuMDAyNzQxLCAwLjAwMjc0NCwgMC4wMDI3NDEsIDAuMDAyNzQsIDAuMDAyNzQzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxODU2LCAwLjAwMTg1NywgMC4wMDE4NTksIDAuMDAxODU5LCAwLjAwMTg1OCwgMC4wMDE4NTgsIDAuMDAxODU4Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCMSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAzMDE3NDY7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAyOTk0Nzg7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAzMDE3NDY7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyNzQsIDAuMDAyNzQsIDAuMDAyNzM5LCAwLjAwMjc0LCAwLjAwMjczOSwgMC4wMDI3MzksIDAuMDAyNzQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDE4NTYsIDAuMDAxODU3LCAwLjAwMTg1NywgMC4wMDE4NTgsIDAuMDAxODU4LCAwLjAwMTg1OCwgMC4wMDE4NTgiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIyKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDMwMjcxMjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDMwMjY3OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMzAyNzEyOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjczNywgMC4wMDI3NDIsIDAuMDAyNzM4LCAwLjAwMjc0LCAwLjAwMjczOSwgMC4wMDI3NDIsIDAuMDAyNzM5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxODU2LCAwLjAwMTg1NywgMC4wMDE4NTYsIDAuMDAxODU2LCAwLjAwMTg1NywgMC4wMDE4NTcsIDAuMDAxODU4Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMzY0MjYxOwotICAgIGZ1bmN0aW9uIDogIighKCgoQjArQjEpK0IyKSAoKEEwK0ExKStBMikpKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTAiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDgyMDM2LCAwLjI5NDQsIDAuNTA1NjE0LCAwLjY1NjAzMywgMC44OTc0NjEsIDEuMTA3OTYsIDEuNDA4NzYiLCBcCi0gICAgICAgICAgIjAuMDkwNzI1LCAwLjMwMzIwNSwgMC41MTQyMzcsIDAuNjY0OTY5LCAwLjkwNjEyOSwgMS4xMTY5NiwgMS40MTc4IiwgXAotICAgICAgICAgICIwLjA5OTczLCAwLjMxMjI3LCAwLjUyMzYwNywgMC42NzM5MzEsIDAuOTE1MzA5LCAxLjEyNTc1LCAxLjQyNzkxIiwgXAotICAgICAgICAgICIwLjEwNzk0NCwgMC4zMjA1MDIsIDAuNTMxNjc2LCAwLjY4MjMwMywgMC45MjM4MzUsIDEuMTMzOTQsIDEuNDM2MjYiLCBcCi0gICAgICAgICAgIjAuMTE1OTIzLCAwLjMyODQ4OSwgMC41Mzk4MywgMC42OTAyNiwgMC45MzE5MjUsIDEuMTQyMDQsIDEuNDQzODkiLCBcCi0gICAgICAgICAgIjAuMTI3OTk4LCAwLjM0MDk5MywgMC41NTIwNTEsIDAuNzAyOTkyLCAwLjk0MzgxOCwgMS4xNTQ2MSwgMS40NTY1NSIsIFwKLSAgICAgICAgICAiMC4xMzc0NTksIDAuMzUxNzQ0LCAwLjU2MzExLCAwLjcxMzYxNiwgMC45NTQ2NDQsIDEuMTY1NjEsIDEuNDY2NjkiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNTc1MDUsIDAuNTc5NzQ2LCAxLjAwMzcyLCAxLjMwNzA3LCAxLjc5MTY1LCAyLjIxNjA1LCAyLjgyMTU0IiwgXAotICAgICAgICAgICIwLjE1NzQ5OCwgMC41Nzk4MywgMS4wMDM3NSwgMS4zMDY4LCAxLjc5MTY0LCAyLjIxNTkxLCAyLjgyMTY3IiwgXAotICAgICAgICAgICIwLjE1Nzg1NSwgMC41Nzk4MDQsIDEuMDAzNjMsIDEuMzA2NzksIDEuNzkxNjUsIDIuMjE2LCAyLjgyMTc2IiwgXAotICAgICAgICAgICIwLjE1OTIyOSwgMC41Nzk3OTMsIDEuMDAzNzUsIDEuMzA2NzYsIDEuNzkxNjQsIDIuMjE1ODQsIDIuODIxNzYiLCBcCi0gICAgICAgICAgIjAuMTYxMzUxLCAwLjU3OTgxNCwgMS4wMDM3LCAxLjMwNjc1LCAxLjc5MTY1LCAyLjIxNTg4LCAyLjgyMjA2IiwgXAotICAgICAgICAgICIwLjE2NTkyOCwgMC41ODA3MDQsIDEuMDAzNywgMS4zMDY3NiwgMS43OTE2NywgMi4yMTU5NiwgMi44MjE0NyIsIFwKLSAgICAgICAgICAiMC4xNzA5MiwgMC41ODI0OTcsIDEuMDAzODksIDEuMzA2NjgsIDEuNzkxMjUsIDIuMjE1ODQsIDIuODIyMDQiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjU2MjIsIDAuMjA5MTIyLCAwLjM0OTkxNSwgMC40NTAzNjksIDAuNjEwODQsIDAuNzUxMjE5LCAwLjk1MTY0OSIsIFwKLSAgICAgICAgICAiMC4wNzU0MDcsIDAuMjE4OTE1LCAwLjM1OTgwOCwgMC40NjAzMywgMC42MjA2NTgsIDAuNzYxMTIzLCAwLjk2MTI0MSIsIFwKLSAgICAgICAgICAiMC4wODY3MDUsIDAuMjMwMjgyLCAwLjM3MTE1LCAwLjQ3MTQ2LCAwLjYzMjExNywgMC43NzIxMTksIDAuOTcyOTU3IiwgXAotICAgICAgICAgICIwLjA5NzU5MywgMC4yNDEyOTUsIDAuMzgyMzEyLCAwLjQ4MjQ5OCwgMC42NDI4OTIsIDAuNzgzMjE3LCAwLjk4Mzk0MyIsIFwKLSAgICAgICAgICAiMC4xMDg0NTYsIDAuMjUyMTI5LCAwLjM5MzA4NywgMC40OTMzOTYsIDAuNjUzOTE0LCAwLjc5NDM5LCAwLjk5NDYwMSIsIFwKLSAgICAgICAgICAiMC4xMjQ5MjEsIDAuMjY5NDUyLCAwLjQxMDEzOSwgMC41MTA5NDYsIDAuNjcxNTcyLCAwLjgxMTcxLCAxLjAxMjAxIiwgXAotICAgICAgICAgICIwLjEzODI5MSwgMC4yODQ2NjMsIDAuNDI1NjIzLCAwLjUyNTQ4NywgMC42ODY3NDgsIDAuODI2ODA2LCAxLjAyNzI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDkwMDQ1LCAwLjM2OTQxMSwgMC42NDgxMDEsIDAuODQ3MTQ4LCAxLjE2NDk3LCAxLjQ0MzI3LCAxLjg0MDc2IiwgXAotICAgICAgICAgICIwLjA5MDA2NywgMC4zNjkyMTQsIDAuNjQ3NjU1LCAwLjg0NjkxNSwgMS4xNjQ5OSwgMS40NDMzLCAxLjg0MDkiLCBcCi0gICAgICAgICAgIjAuMDkwNTI3LCAwLjM2OTA2MywgMC42NDc2MzYsIDAuODQ2NDM3LCAxLjE2NTEzLCAxLjQ0MjksIDEuODQwNzYiLCBcCi0gICAgICAgICAgIjAuMDkyNTg1LCAwLjM2OTA1MywgMC42NDc4ODYsIDAuODQ2NTYxLCAxLjE2NDY0LCAxLjQ0MzE0LCAxLjg0MDc1IiwgXAotICAgICAgICAgICIwLjA5NTc5OCwgMC4zNjkzNzYsIDAuNjQ3NjYxLCAwLjg0NzAwMSwgMS4xNjQ4OCwgMS40NDM1LCAxLjg0MDk5IiwgXAotICAgICAgICAgICIwLjEwMjk0LCAwLjM3MTY0OSwgMC42NDc3ODgsIDAuODQ2OTc4LCAxLjE2NDk0LCAxLjQ0MzE1LCAxLjg0MDc0IiwgXAotICAgICAgICAgICIwLjExMDQ3MSwgMC4zNzQ3NjIsIDAuNjQ4NzEsIDAuODQ3MDMzLCAxLjE2NDk1LCAxLjQ0MzUzLCAxLjg0MDc2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkExIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3NzM4OCwgMC4yODk3NDQsIDAuNTAwMzI2LCAwLjY1MTA4LCAwLjg5MjU2MiwgMS4xMDM2NCwgMS40MDQyOSIsIFwKLSAgICAgICAgICAiMC4wODU3NjEsIDAuMjk4MjU3LCAwLjUwOTU2MiwgMC42NTk5MTcsIDAuOTAxMjc3LCAxLjExMTgsIDEuNDEzODEiLCBcCi0gICAgICAgICAgIjAuMDk1NTI5LCAwLjMwODEzNSwgMC41MTk1NjYsIDAuNjY5ODE1LCAwLjkxMTAyOCwgMS4xMjE3NSwgMS40MjMzOCIsIFwKLSAgICAgICAgICAiMC4xMDUyMjUsIDAuMzE3ODc1LCAwLjUyOTIyNywgMC42Nzk3LCAwLjkyMDU2LCAxLjEzMjA3LCAxLjQzMjQ5IiwgXAotICAgICAgICAgICIwLjExNDk0NCwgMC4zMjc2MTYsIDAuNTM4OTEzLCAwLjY4OTcxLCAwLjkzMDk3LCAxLjE0MTE1LCAxLjQ0MzI0IiwgXAotICAgICAgICAgICIwLjEzMDEyMSwgMC4zNDMxNTIsIDAuNTU0NTczLCAwLjcwNTYyOSwgMC45NDYyMDksIDEuMTU3MTMsIDEuNDU5MDIiLCBcCi0gICAgICAgICAgIjAuMTQxODk5LCAwLjM1NjUsIDAuNTY3ODYyLCAwLjcxODUxLCAwLjk2MDM4NiwgMS4xNzA2NywgMS40NzMwMiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE1NzUwMiwgMC41Nzk2NjUsIDEuMDAzNjYsIDEuMzA2NjMsIDEuNzkxMjEsIDIuMjE1OTMsIDIuODIyMTIiLCBcCi0gICAgICAgICAgIjAuMTU3NTA1LCAwLjU3OTc4NiwgMS4wMDM2MywgMS4zMDY3MywgMS43OTEyNCwgMi4yMTYwNCwgMi44MjE3NSIsIFwKLSAgICAgICAgICAiMC4xNTg0MTEsIDAuNTc5NzMxLCAxLjAwMzY4LCAxLjMwNjc4LCAxLjc5MTY3LCAyLjIxNTgyLCAyLjgyMjA2IiwgXAotICAgICAgICAgICIwLjE2MDk1NSwgMC41Nzk3MjYsIDEuMDAzNjcsIDEuMzA2NzIsIDEuNzkxNTcsIDIuMjE1ODIsIDIuODIxOTYiLCBcCi0gICAgICAgICAgIjAuMTY0ODQ5LCAwLjU3OTgzLCAxLjAwMzY4LCAxLjMwNjcxLCAxLjc5MTY0LCAyLjIxNTgsIDIuODIxNzciLCBcCi0gICAgICAgICAgIjAuMTcyOTM4LCAwLjU4MDk5MiwgMS4wMDM2OCwgMS4zMDY3MiwgMS43OTE2NywgMi4yMTU5LCAyLjgyMTgiLCBcCi0gICAgICAgICAgIjAuMTgwNzcxLCAwLjU4MzM3NCwgMS4wMDM3NSwgMS4zMDY3MSwgMS43OTEyNywgMi4yMTU2OCwgMi44MjE3MyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2MDU5OCwgMC4yMDMwNzUsIDAuMzQzNjIxLCAwLjQ0NDA0OCwgMC42MDQyODgsIDAuNzQ0NDM5LCAwLjk0NDkxNSIsIFwKLSAgICAgICAgICAiMC4wNzA1MzcsIDAuMjEzMTE5LCAwLjM1MzgwNywgMC40NTQxMjcsIDAuNjE0MTkyLCAwLjc1NDY5OCwgMC45NTQ4OSIsIFwKLSAgICAgICAgICAiMC4wODE3NDUsIDAuMjI0NDkyLCAwLjM2NTEyNSwgMC40NjUzNSwgMC42MjU5NjYsIDAuNzY1ODE0LCAwLjk2NjU1MSIsIFwKLSAgICAgICAgICAiMC4wOTI2NTIsIDAuMjM1NDQ2LCAwLjM3NjEyNywgMC40NzYzNjQsIDAuNjM2NjU0LCAwLjc3NjkxOSwgMC45Nzc1NzIiLCBcCi0gICAgICAgICAgIjAuMTAzMzcsIDAuMjQ2Mjg3LCAwLjM4NzAwMiwgMC40ODcyNzEsIDAuNjQ3NzIxLCAwLjc4ODAyNiwgMC45ODgxOTYiLCBcCi0gICAgICAgICAgIjAuMTE5NTI3LCAwLjI2MzU2NCwgMC40MDQwMzEsIDAuNTA0ODU4LCAwLjY2NTE3MiwgMC44MDUzNzIsIDEuMDA1NjEiLCBcCi0gICAgICAgICAgIjAuMTMxOTQ4LCAwLjI3ODU3MSwgMC40MTk1MDcsIDAuNTE5MjU4LCAwLjY4MDQ2OSwgMC44MjA4MjMsIDEuMDIwODYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODM0NjYsIDAuMzYyNDYyLCAwLjY0MDk5NCwgMC44Mzk3NDksIDEuMTU3ODIsIDEuNDM2MDYsIDEuODMzNjMiLCBcCi0gICAgICAgICAgIjAuMDgzNDE1LCAwLjM2MjE3MywgMC42NDA4ODgsIDAuODM5NzQxLCAxLjE1NzM3LCAxLjQzNjM1LCAxLjgzMzYzIiwgXAotICAgICAgICAgICIwLjA4Mzk0NCwgMC4zNjIzMTYsIDAuNjQwNiwgMC44MzkzODQsIDEuMTU3NjksIDEuNDM1NjYsIDEuODMzNjEiLCBcCi0gICAgICAgICAgIjAuMDg2MzQ0LCAwLjM2MjE3OSwgMC42NDA2NzgsIDAuODM5NDcyLCAxLjE1NzUyLCAxLjQzNTg4LCAxLjgzMzU1IiwgXAotICAgICAgICAgICIwLjA4OTgzMSwgMC4zNjI1ODYsIDAuNjQwOTI2LCAwLjgzOTQ2MywgMS4xNTc3OSwgMS40MzYwNCwgMS44MzQyOCIsIFwKLSAgICAgICAgICAiMC4wOTc0MzksIDAuMzY0OTA2LCAwLjY0MDkyOCwgMC44Mzk5MzUsIDEuMTU3OTQsIDEuNDM1OTIsIDEuODMzNDQiLCBcCi0gICAgICAgICAgIjAuMTA1MzQxLCAwLjM2ODExNywgMC42NDE4NTUsIDAuODM5ODE1LCAxLjE1Nzc3LCAxLjQzNjI0LCAxLjgzMzQ3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEyIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2ODY3NCwgMC4yODA3NDksIDAuNDkyMDMyLCAwLjY0MjgwNSwgMC44ODM5MDcsIDEuMDk1MDIsIDEuMzk1NjIiLCBcCi0gICAgICAgICAgIjAuMDc2OTIyLCAwLjI4OTQzNiwgMC41MDA1ODQsIDAuNjUxMzg5LCAwLjg5MjY4OCwgMS4xMDMxMywgMS40MDQ4NCIsIFwKLSAgICAgICAgICAiMC4wODc1MzgsIDAuMzAwMjI0LCAwLjUxMTI4NiwgMC42NjE3MjgsIDAuOTAzMjksIDEuMTEzNTgsIDEuNDE1NTUiLCBcCi0gICAgICAgICAgIjAuMDk4MTg4LCAwLjMxMDcsIDAuNTIxODAzLCAwLjY3MjQ1MSwgMC45MTMzODYsIDEuMTI0NjcsIDEuNDI1MjkiLCBcCi0gICAgICAgICAgIjAuMTA5NTAzLCAwLjMyMTUzNywgMC41MzMxMzMsIDAuNjgzODE5LCAwLjkyNDczNywgMS4xMzYsIDEuNDM2NjQiLCBcCi0gICAgICAgICAgIjAuMTI2NDA0LCAwLjMzODg4MywgMC41NTAxOTQsIDAuNzAwOTk4LCAwLjk0MTczMSwgMS4xNTI1MywgMS40NTM2NCIsIFwKLSAgICAgICAgICAiMC4xNDA1OTMsIDAuMzU0MTg2LCAwLjU2NDQyMiwgMC43MTU5MTksIDAuOTU2ODU4LCAxLjE2ODIzLCAxLjQ2OTkzIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTU3NTE0LCAwLjU3OTYzMSwgMS4wMDM3NSwgMS4zMDY3MywgMS43OTE2OCwgMi4yMTU4MywgMi44MjE2MiIsIFwKLSAgICAgICAgICAiMC4xNTY5NDQsIDAuNTc5NzQxLCAxLjAwMzYsIDEuMzA2NzEsIDEuNzkxNjYsIDIuMjE1OTcsIDIuODIxNzgiLCBcCi0gICAgICAgICAgIjAuMTU5MTc4LCAwLjU3OTgxNiwgMS4wMDM2NSwgMS4zMDY3LCAxLjc5MTY0LCAyLjIxNTgxLCAyLjgyMTUxIiwgXAotICAgICAgICAgICIwLjE2NDQ1MSwgMC41Nzk3ODQsIDEuMDAzNzEsIDEuMzA3MDIsIDEuNzkxMzcsIDIuMjE1ODksIDIuODIxNzMiLCBcCi0gICAgICAgICAgIjAuMTcwNzc5LCAwLjU3OTY3MywgMS4wMDM3MiwgMS4zMDY3NywgMS43OTE1MywgMi4yMTU5MiwgMi44MjE5NiIsIFwKLSAgICAgICAgICAiMC4xODM2NDQsIDAuNTgxNTA3LCAxLjAwMzY3LCAxLjMwNjYzLCAxLjc5MTU4LCAyLjIxNTg4LCAyLjgyMTk5IiwgXAotICAgICAgICAgICIwLjE5NDk2MywgMC41ODUzOTEsIDEuMDAzNjEsIDEuMzA2NzMsIDEuNzkxNTQsIDIuMjE1OTEsIDIuODIxNzMiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTQ4ODIsIDAuMTk3MDk0LCAwLjMzNzY4MiwgMC40Mzc4NjcsIDAuNTk4MTIxLCAwLjczODMxOSwgMC45Mzg1OTciLCBcCi0gICAgICAgICAgIjAuMDY0OTIyLCAwLjIwNzM3MSwgMC4zNDc5NjgsIDAuNDQ4MDc1LCAwLjYwODQzMywgMC43NDg3ODQsIDAuOTQ4NjE4IiwgXAotICAgICAgICAgICIwLjA3NTk2NywgMC4yMTg3NDEsIDAuMzU5MzMxLCAwLjQ1OTUxMSwgMC42MTk2MDksIDAuNzU5ODAxLCAwLjk1OTkxMyIsIFwKLSAgICAgICAgICAiMC4wODY4NTMsIDAuMjI5NjI1LCAwLjM3MDI3NiwgMC40NzA1MDEsIDAuNjMwODQ1LCAwLjc3MDgyNiwgMC45NzE2NTgiLCBcCi0gICAgICAgICAgIjAuMDk3NSwgMC4yNDA0NzgsIDAuMzgxMTcxLCAwLjQ4MTQxOSwgMC42NDE4MjQsIDAuNzgxOTI4LCAwLjk4MjQwNiIsIFwKLSAgICAgICAgICAiMC4xMTMwMDYsIDAuMjU3NzI4LCAwLjM5ODU2MywgMC40OTg4NDksIDAuNjU5Mzk3LCAwLjc5OTQ3NCwgMC45OTk2ODEiLCBcCi0gICAgICAgICAgIjAuMTI1MTMxLCAwLjI3Mjg5NywgMC40MTM2MzEsIDAuNTE0MDYsIDAuNjc0NTQ3LCAwLjgxNDUzNywgMS4wMTUyNSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3NzE5LCAwLjM1NTc1NSwgMC42MzM3OTcsIDAuODMzMDI2LCAxLjE1MDQ5LCAxLjQyODk2LCAxLjgyNTk3IiwgXAotICAgICAgICAgICIwLjA3NzIzNCwgMC4zNTU3NDQsIDAuNjMzODM4LCAwLjgzMjg4NiwgMS4xNTEwNSwgMS40Mjg1MywgMS44MjYiLCBcCi0gICAgICAgICAgIjAuMDc3OTk4LCAwLjM1NTc0LCAwLjYzMzgwOCwgMC44MzI1ODEsIDEuMTUwNzMsIDEuNDI4NiwgMS44MjYxNiIsIFwKLSAgICAgICAgICAiMC4wODA2MTUsIDAuMzU1NTA0LCAwLjYzNDExNywgMC44MzI4OTcsIDEuMTUwNjYsIDEuNDI4NjIsIDEuODI1OTciLCBcCi0gICAgICAgICAgIjAuMDg0MzI3LCAwLjM1NTg3NCwgMC42MzQwNTcsIDAuODMyMjk3LCAxLjE1MDU1LCAxLjQyOTI0LCAxLjgyNjM3IiwgXAotICAgICAgICAgICIwLjA5MjMyMywgMC4zNTgxNjksIDAuNjMzOTEyLCAwLjgzMjkyOSwgMS4xNTA0NywgMS40Mjg2NCwgMS44MjYwMiIsIFwKLSAgICAgICAgICAiMC4xMDA0ODgsIDAuMzYxNzUsIDAuNjM0NzQ4LCAwLjgzMjY0MywgMS4xNTAzNSwgMS40Mjg2MiwgMS44MjU5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2MzE5MywgMC4yNzQ4NTMsIDAuNDg1OTU2LCAwLjYzNjg2LCAwLjg3ODIwNCwgMS4wODk1LCAxLjM5MTEyIiwgXAotICAgICAgICAgICIwLjA3MTg4NywgMC4yODM3MjgsIDAuNDk0OTg1LCAwLjY0NTkzOCwgMC44ODczMzMsIDEuMDk4NiwgMS40MDAzNiIsIFwKLSAgICAgICAgICAiMC4wODA4MDMsIDAuMjkzMDk4LCAwLjUwNDI0OSwgMC42NTUxNywgMC44OTY1NSwgMS4xMDc4NywgMS40MDk1MSIsIFwKLSAgICAgICAgICAiMC4wODg5NzIsIDAuMzAxMjA5LCAwLjUxMjUzNCwgMC42NjM0NDMsIDAuOTA0OTI2LCAxLjExNjE2LCAxLjQxNzg1IiwgXAotICAgICAgICAgICIwLjA5NjY4NCwgMC4zMDg5NzIsIDAuNTIwNDk0LCAwLjY3MTQxMiwgMC45MTI5MSwgMS4xMjQxMiwgMS40MjU4OCIsIFwKLSAgICAgICAgICAiMC4xMDc3NywgMC4zMjE0NzIsIDAuNTMyOTM2LCAwLjY4Mzk4MSwgMC45MjU0MDUsIDEuMTM2NjQsIDEuNDM4MzUiLCBcCi0gICAgICAgICAgIjAuMTE2NDE0LCAwLjMzMjIzMiwgMC41NDM3OTksIDAuNjk0NzI1LCAwLjkzNjIxOSwgMS4xNDc1NCwgMS40NDkyNSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE0MDA3NSwgMC41NjE5MTUsIDAuOTg1ODQ0LCAxLjI4OTc3LCAxLjc3NDExLCAyLjE5ODk2LCAyLjgwNDg2IiwgXAotICAgICAgICAgICIwLjE0MDA3OCwgMC41NjE5MTYsIDAuOTg1OTQyLCAxLjI4OTAyLCAxLjc3NDIyLCAyLjE5ODQ0LCAyLjgwNTUxIiwgXAotICAgICAgICAgICIwLjE0MDcyLCAwLjU2MjEzLCAwLjk4NTk4MiwgMS4yODg5MywgMS43NzQwNSwgMi4xOTg4NiwgMi44MDU0NiIsIFwKLSAgICAgICAgICAiMC4xNDI0ODYsIDAuNTYxODc5LCAwLjk4NTkxOCwgMS4yODkwMiwgMS43NzQxMSwgMi4xOTg3LCAyLjgwNDg3IiwgXAotICAgICAgICAgICIwLjE0NDk5OCwgMC41NjE5MTUsIDAuOTg1ODQyLCAxLjI4OTAxLCAxLjc3NDA5LCAyLjE5ODczLCAyLjgwNTIyIiwgXAotICAgICAgICAgICIwLjE1MDI2NCwgMC41NjMwNywgMC45ODU4MjgsIDEuMjg4OSwgMS43NzQyMiwgMi4xOTg3NCwgMi44MDU0IiwgXAotICAgICAgICAgICIwLjE1NTgsIDAuNTY1MDIxLCAwLjk4NjE4NywgMS4yODkwMywgMS43NzQxNSwgMi4xOTg3OCwgMi44MDU0MSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1NjEzMSwgMC4xOTk2MDQsIDAuMzQwNTYzLCAwLjQ0MDgyOCwgMC42MDEyMTMsIDAuNzQxNjA3LCAwLjk0MjEzMSIsIFwKLSAgICAgICAgICAiMC4wNjUxNTMsIDAuMjA4NzcxLCAwLjM0OTY2OSwgMC40NTAwMDksIDAuNjEwNDM4LCAwLjc1MDY3OSwgMC45NTA4OTIiLCBcCi0gICAgICAgICAgIjAuMDc2ODAzLCAwLjIyMDQxMywgMC4zNjEyOSwgMC40NjE2NDcsIDAuNjIyMjk5LCAwLjc2MjUxNywgMC45NjMwNTUiLCBcCi0gICAgICAgICAgIjAuMDg4OTE3LCAwLjIzMTg4NiwgMC4zNzMxNzYsIDAuNDczNDQ2LCAwLjYzMzk3LCAwLjc3NDExNywgMC45NzQ0OTYiLCBcCi0gICAgICAgICAgIjAuMTAwOTA3LCAwLjI0MzUzOSwgMC4zODQ0NSwgMC40ODQ3ODgsIDAuNjQ1MDgxLCAwLjc4NTM0LCAwLjk4NTc5NyIsIFwKLSAgICAgICAgICAiMC4xMTkzMjIsIDAuMjYyMzQ2LCAwLjQwMzE3NCwgMC41MDM2LCAwLjY2Mzk5NCwgMC44MDQyNTIsIDEuMDA0NDYiLCBcCi0gICAgICAgICAgIjAuMTMzMzQyLCAwLjI3ODgzMywgMC40MTk2MDksIDAuNTE5OTcyLCAwLjY4MDQzMywgMC44MjA1MzksIDEuMDIwODgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTAyMjUsIDAuMzY5MTY3LCAwLjY0ODE2NCwgMC44NDY1MzYsIDEuMTY0ODUsIDEuNDQzODcsIDEuODQwOSIsIFwKLSAgICAgICAgICAiMC4wODk2MzksIDAuMzY5NDUzLCAwLjY0NzgyMiwgMC44NDY0OTYsIDEuMTY0ODcsIDEuNDQzODMsIDEuODQwNjciLCBcCi0gICAgICAgICAgIjAuMDkyMDYsIDAuMzY5MzY0LCAwLjY0ODA1NSwgMC44NDY1MTcsIDEuMTY0NTcsIDEuNDQyODUsIDEuODQxIiwgXAotICAgICAgICAgICIwLjA5NzA2MSwgMC4zNjkwMiwgMC42NDc2NDQsIDAuODQ2NTcxLCAxLjE2NDksIDEuNDQzNzEsIDEuODQxNjEiLCBcCi0gICAgICAgICAgIjAuMTAzNjM4LCAwLjM2OTg3OSwgMC42NDc2MDEsIDAuODQ2NDg3LCAxLjE2NTI1LCAxLjQ0MjgyLCAxLjg0MTY0IiwgXAotICAgICAgICAgICIwLjExNjIxOSwgMC4zNzQyMjIsIDAuNjQ3ODM1LCAwLjg0Njc4MiwgMS4xNjUzOCwgMS40NDMzLCAxLjg0MDc1IiwgXAotICAgICAgICAgICIwLjEyODAxOSwgMC4zODAyMDksIDAuNjQ5NzQ3LCAwLjg0NjYxMSwgMS4xNjQ5MywgMS40NDI5LCAxLjg0MDc4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIxIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1ODUxNSwgMC4yNzAyMzMsIDAuNDgxMjA0LCAwLjYzMjE3OSwgMC44NzM1MjIsIDEuMDg0ODEsIDEuMzg2NCIsIFwKLSAgICAgICAgICAiMC4wNjY5NTYsIDAuMjc4ODE2LCAwLjQ5MDI2NiwgMC42NDA4ODksIDAuODgyNDQsIDEuMDkzNjYsIDEuMzk1MjYiLCBcCi0gICAgICAgICAgIjAuMDc2NTc3LCAwLjI4ODcyNywgMC41MDAwMTcsIDAuNjUwOTMzLCAwLjg5MjM2MiwgMS4xMDM2LCAxLjQwNTM3IiwgXAotICAgICAgICAgICIwLjA4NjE3OCwgMC4yOTg0NDQsIDAuNTA5ODQxLCAwLjY2MDcxNSwgMC45MDIxNzEsIDEuMTEzNTIsIDEuNDE1MTEiLCBcCi0gICAgICAgICAgIjAuMDk1NDksIDAuMzA4MTkzLCAwLjUxOTUyOCwgMC42NzA0ODMsIDAuOTExOTM0LCAxLjEyMzE4LCAxLjQyNDg5IiwgXAotICAgICAgICAgICIwLjEwODk5LCAwLjMyMzY5OCwgMC41MzUzMSwgMC42ODYyNzEsIDAuOTI3ODE5LCAxLjEzODkzLCAxLjQ0MDc4IiwgXAotICAgICAgICAgICIwLjExOTE4MSwgMC4zMzY5NjYsIDAuNTQ4NjE1LCAwLjY5OTU5NSwgMC45NDE0NjIsIDEuMTUyNzQsIDEuNDU0NDciKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNDAwNjcsIDAuNTYxOTU0LCAwLjk4NTkzNCwgMS4yODkxNSwgMS43NzQxMSwgMi4xOTg5NywgMi44MDUzMiIsIFwKLSAgICAgICAgICAiMC4xNDAxMDcsIDAuNTYxODg4LCAwLjk4NTg3MywgMS4yODksIDEuNzczOTEsIDIuMTk4NDYsIDIuODA0OTgiLCBcCi0gICAgICAgICAgIjAuMTQxNjM4LCAwLjU2MTkzMiwgMC45ODU5MjksIDEuMjg4OTUsIDEuNzc0MTYsIDIuMTk4NzQsIDIuODA0OTMiLCBcCi0gICAgICAgICAgIjAuMTQ1MTAxLCAwLjU2MTg3OSwgMC45ODU4NzYsIDEuMjg5MDEsIDEuNzc0MTUsIDIuMTk4ODksIDIuODA1NDMiLCBcCi0gICAgICAgICAgIjAuMTQ5NzQyLCAwLjU2MjAzMiwgMC45ODU3MTUsIDEuMjg5MDUsIDEuNzc0MDcsIDIuMTk4MzEsIDIuODA0OTkiLCBcCi0gICAgICAgICAgIjAuMTU4NzM5LCAwLjU2MzYyMiwgMC45ODU4OTYsIDEuMjg5MDMsIDEuNzc0MjMsIDIuMTk4NzIsIDIuODA1MTIiLCBcCi0gICAgICAgICAgIjAuMTY3NDUxLCAwLjU2NjE3MSwgMC45ODYwNDEsIDEuMjg5LCAxLjc3NDE5LCAyLjE5ODc4LCAyLjgwNDkiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTEwNzcsIDAuMTkzNDY0LCAwLjMzNDAwNCwgMC40MzQxOTcsIDAuNTk0NjUsIDAuNzM0ODE2LCAwLjkzNDgyIiwgXAotICAgICAgICAgICIwLjA2MDMyOCwgMC4yMDI4NzQsIDAuMzQzNDI4LCAwLjQ0MzY1MywgMC42MDM5MDIsIDAuNzQ0MDM5LCAwLjk0NDA5MiIsIFwKLSAgICAgICAgICAiMC4wNzIyNDgsIDAuMjE0ODQ5LCAwLjM1NTQzMSwgMC40NTU2MjEsIDAuNjE1ODksIDAuNzU1NjI5LCAwLjk1NjA1MiIsIFwKLSAgICAgICAgICAiMC4wODM5NjgsIDAuMjI1ODU1LCAwLjM2NzE4OCwgMC40NjczMDcsIDAuNjI3NjY1LCAwLjc2ODE3MiwgMC45Njc5NzUiLCBcCi0gICAgICAgICAgIjAuMDk1OTAxLCAwLjIzNzkyMSwgMC4zNzgxNTYsIDAuNDc4MzgyLCAwLjYzODYyNiwgMC43Nzg4MDYsIDAuOTc4ODI1IiwgXAotICAgICAgICAgICIwLjExMzY5NiwgMC4yNTczNTgsIDAuMzk2NzU3LCAwLjQ5NzAzLCAwLjY1NzIxMiwgMC43OTc0NjYsIDAuOTk3NTE4IiwgXAotICAgICAgICAgICIwLjEyNTY1MiwgMC4yNzI1OTcsIDAuNDEzMTA0LCAwLjUxMzMxNiwgMC42NzM1MjUsIDAuODEzNjQ5LCAxLjAxMzg1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDgzMzMzLCAwLjM2MTk3NSwgMC42NDAyNzMsIDAuODM5NDg3LCAxLjE1NzQyLCAxLjQzNTQ0LCAxLjgzMjk5IiwgXAotICAgICAgICAgICIwLjA4Mjk1OCwgMC4zNjE5NjgsIDAuNjQwNjQsIDAuODM5MDAyLCAxLjE1NzExLCAxLjQzNTY2LCAxLjgzMjQiLCBcCi0gICAgICAgICAgIjAuMDg1Njg3LCAwLjM2MjIwOCwgMC42NDA2NzgsIDAuODM4OTk5LCAxLjE1NzU3LCAxLjQzNDg4LCAxLjgzMjk1IiwgXAotICAgICAgICAgICIwLjA5MTMzMSwgMC4zNjE4NzksIDAuNjQwNDI3LCAwLjgzOTA4LCAxLjE1NzE1LCAxLjQzNTMxLCAxLjgzMzM0IiwgXAotICAgICAgICAgICIwLjA5ODYwOSwgMC4zNjI5NTMsIDAuNjQwMjczLCAwLjgzOTAyNywgMS4xNTcxMSwgMS40MzUzNywgMS44MzI0NCIsIFwKLSAgICAgICAgICAiMC4xMTEzMTYsIDAuMzY3MjYxLCAwLjY0MDUxMywgMC44Mzk0ODksIDEuMTU2ODUsIDEuNDM1MzcsIDEuODMyNTMiLCBcCi0gICAgICAgICAgIjAuMTI0MzEsIDAuMzc0MDEzLCAwLjY0MjY1MywgMC44MzkxMDgsIDEuMTU2ODQsIDEuNDM0OTcsIDEuODMyNjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjIiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQ5NzgxLCAwLjI2MTM4LCAwLjQ3MjQ5OCwgMC42MjMzODIsIDAuODY0ODM5LCAxLjA3NjA1LCAxLjM3NzczIiwgXAotICAgICAgICAgICIwLjA1ODAyOSwgMC4yNzAwNTQsIDAuNDgxODM5LCAwLjYzMjIyOCwgMC44NzM2ODgsIDEuMDg0ODksIDEuMzg2NTgiLCBcCi0gICAgICAgICAgIjAuMDY4NTcxLCAwLjI4MDc3NywgMC40OTIxODksIDAuNjQzMDQ0LCAwLjg4NDU2MSwgMS4wOTU3NSwgMS4zOTc1MiIsIFwKLSAgICAgICAgICAiMC4wNzkyNTIsIDAuMjkxMjU4LCAwLjUwMjY5NSwgMC42NTM2NTEsIDAuODk1MDQzLCAxLjEwNjM0LCAxLjQwNzg2IiwgXAotICAgICAgICAgICIwLjA5MDQyMSwgMC4zMDI0NjEsIDAuNTEzOTIyLCAwLjY2NDg1NCwgMC45MDYzMzgsIDEuMTE3NjMsIDEuNDE5MTYiLCBcCi0gICAgICAgICAgIjAuMTA1MTI2LCAwLjMxOTUxOCwgMC41MzA4NDcsIDAuNjgxNzg4LCAwLjkyMzMwNSwgMS4xMzQ1OCwgMS40MzYzOCIsIFwKLSAgICAgICAgICAiMC4xMTYzNzUsIDAuMzM0NzEsIDAuNTQ2MDIxLCAwLjY5Njk1NCwgMC45Mzg0OCwgMS4xNDk3NSwgMS40NTE0MSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEzOTg1OCwgMC41NjE5NzEsIDAuOTg1OTExLCAxLjI4ODk5LCAxLjc3NDMxLCAyLjE5ODcyLCAyLjgwNTA0IiwgXAotICAgICAgICAgICIwLjEzOTUyOSwgMC41NjE5OTUsIDAuOTg2MTI1LCAxLjI4OTA1LCAxLjc3NDE0LCAyLjE5ODI4LCAyLjgwNDg5IiwgXAotICAgICAgICAgICIwLjE0MzM4NCwgMC41NjE5NDIsIDAuOTg1OTYzLCAxLjI4OTA1LCAxLjc3Mzg1LCAyLjE5ODc2LCAyLjgwNDkzIiwgXAotICAgICAgICAgICIwLjE1MDE1LCAwLjU2MTg4NSwgMC45ODU5NTEsIDEuMjg5MDcsIDEuNzc0MTksIDIuMTk4ODQsIDIuODA1NDMiLCBcCi0gICAgICAgICAgIjAuMTU3Njc0LCAwLjU2MTc3OCwgMC45ODU5MDgsIDEuMjg4ODksIDEuNzc0MjUsIDIuMTk4ODIsIDIuODA0ODMiLCBcCi0gICAgICAgICAgIjAuMTcxNDA5LCAwLjU2NDMzMSwgMC45ODU4MTYsIDEuMjg5LCAxLjc3NDA3LCAyLjE5ODgzLCAyLjgwNTA4IiwgXAotICAgICAgICAgICIwLjE4Mzk5MywgMC41Njg1ODEsIDAuOTg1ODI2LCAxLjI4OSwgMS43NzQxNywgMi4xOTg2NywgMi44MDQ4OCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0NTM2NSwgMC4xODc0OTQsIDAuMzI3ODc3LCAwLjQyODAyOCwgMC41ODgwNzQsIDAuNzI4MTEyLCAwLjkyODU5MSIsIFwKLSAgICAgICAgICAiMC4wNTQ3MzYsIDAuMTk3MDk0LCAwLjMzNzU0NSwgMC40Mzc2NzksIDAuNTk3NzgzLCAwLjczNzk0OCwgMC45Mzc3OTUiLCBcCi0gICAgICAgICAgIjAuMDY2MzQ1LCAwLjIwODgzMSwgMC4zNDkzOTgsIDAuNDQ5NjUzLCAwLjYwOTU3MiwgMC43NDk3NiwgMC45NDk1NyIsIFwKLSAgICAgICAgICAiMC4wNzgyNzksIDAuMjIwMzQyLCAwLjM2MDkyNywgMC40NjEwNDYsIDAuNjIxMjg1LCAwLjc2MTQ4NywgMC45NjEyODEiLCBcCi0gICAgICAgICAgIjAuMDkwMTcsIDAuMjMyNTg5LCAwLjM3MzE1NywgMC40NzMyMiwgMC42MzMzNDEsIDAuNzczNDIzLCAwLjk3MzY5IiwgXAotICAgICAgICAgICIwLjEwNjA4LCAwLjI1MDU2NiwgMC4zOTEwMDYsIDAuNDkxMjA4LCAwLjY1MTM0MiwgMC43OTE1MiwgMC45OTE0OTciLCBcCi0gICAgICAgICAgIjAuMTE4OTAyLCAwLjI2ODE2NSwgMC40MDg2MSwgMC41MDg3ODIsIDAuNjY4OTg1LCAwLjgwOTE0MiwgMS4wMDkyNyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3NzIxNiwgMC4zNTUyNjQsIDAuNjMzMjUzLCAwLjgzMTgyNywgMS4xNDk5NSwgMS40MjczMywgMS44MjQzNSIsIFwKLSAgICAgICAgICAiMC4wNzY3NzcsIDAuMzU1MjA2LCAwLjYzMzI0MiwgMC44MzE3ODUsIDEuMTQ5NDEsIDEuNDI3MzUsIDEuODI0IiwgXAotICAgICAgICAgICIwLjA4MDIzMSwgMC4zNTUxNjIsIDAuNjMzMDUxLCAwLjgzMTcyNywgMS4xNDk0MiwgMS40Mjc0MywgMS44MjQ2NyIsIFwKLSAgICAgICAgICAiMC4wODYxNzEsIDAuMzU1MDc0LCAwLjYzMzMzNiwgMC44MzIxNzMsIDEuMTQ5NTUsIDEuNDI3NjcsIDEuODI1MTYiLCBcCi0gICAgICAgICAgIjAuMDkzNDU5LCAwLjM1NjE0NSwgMC42MzMyNjIsIDAuODMyMTIsIDEuMTQ5NzQsIDEuNDI3MDUsIDEuODI1MDYiLCBcCi0gICAgICAgICAgIjAuMTA3NTIzLCAwLjM2MTA4NiwgMC42MzMyNTcsIDAuODMyMTg1LCAxLjE0OTQsIDEuNDI3NDgsIDEuODI0NDgiLCBcCi0gICAgICAgICAgIjAuMTE5MTE4LCAwLjM2Njg0MSwgMC42MzUzMDksIDAuODMxODY5LCAxLjE0OTgsIDEuNDI3MzcsIDEuODI0ODQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjIyMDIsIDAuMDIyMjAzLCAwLjAyMjE5OCwgMC4wMjIxOTYsIDAuMDIyMTkyLCAwLjAyMjE5MiwgMC4wMjIxODYiLCBcCi0gICAgICAgICAgIjAuMDIyMTIzLCAwLjAyMjE1MSwgMC4wMjIxNTQsIDAuMDIyMTU0LCAwLjAyMjE1LCAwLjAyMjE0NiwgMC4wMjIxNDMiLCBcCi0gICAgICAgICAgIjAuMDIyMDcsIDAuMDIyMTMsIDAuMDIyMTM1LCAwLjAyMjE0LCAwLjAyMjEzOCwgMC4wMjIxMzcsIDAuMDIyMTM1IiwgXAotICAgICAgICAgICIwLjAyMjA0NywgMC4wMjIxMTYsIDAuMDIyMTI5LCAwLjAyMjEzMiwgMC4wMjIxMzQsIDAuMDIyMTIzLCAwLjAyMjEyMSIsIFwKLSAgICAgICAgICAiMC4wMjIwMzEsIDAuMDIyMTAzLCAwLjAyMjEyLCAwLjAyMjEyNSwgMC4wMjIxMjYsIDAuMDIyMTI1LCAwLjAyMjEyNiIsIFwKLSAgICAgICAgICAiMC4wMjIwMTQsIDAuMDIyMDkxLCAwLjAyMjEwNywgMC4wMjIxMTIsIDAuMDIyMTE3LCAwLjAyMjExOSwgMC4wMjIxMTYiLCBcCi0gICAgICAgICAgIjAuMDIyMDA2LCAwLjAyMjA3NywgMC4wMjIxMDEsIDAuMDIyMTA2LCAwLjAyMjExMSwgMC4wMjIxMTQsIDAuMDIyMTE5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDYzOTksIDAuMDA2Mzk3LCAwLjAwNjM5OCwgMC4wMDYzOTcsIDAuMDA2MzkzLCAwLjAwNjM5MiwgMC4wMDYzOSIsIFwKLSAgICAgICAgICAiMC4wMDYyNzIsIDAuMDA2Mjg5LCAwLjAwNjI4OCwgMC4wMDYyODcsIDAuMDA2Mjg5LCAwLjAwNjI4OSwgMC4wMDYyODQiLCBcCi0gICAgICAgICAgIjAuMDA2MjE5LCAwLjAwNjI1NywgMC4wMDYyNjQsIDAuMDA2MjY1LCAwLjAwNjI2NiwgMC4wMDYyNjYsIDAuMDA2MjY2IiwgXAotICAgICAgICAgICIwLjAwNjE4OCwgMC4wMDYyMzksIDAuMDA2MjQ3LCAwLjAwNjI1MiwgMC4wMDYyNTUsIDAuMDA2MjU0LCAwLjAwNjI1NSIsIFwKLSAgICAgICAgICAiMC4wMDYxNjUsIDAuMDA2MjI1LCAwLjAwNjI0LCAwLjAwNjI0MywgMC4wMDYyNDYsIDAuMDA2MjQ3LCAwLjAwNjI0NyIsIFwKLSAgICAgICAgICAiMC4wMDYxNDIsIDAuMDA2MjA5LCAwLjAwNjIyMSwgMC4wMDYyMzcsIDAuMDA2MjM5LCAwLjAwNjI0MSwgMC4wMDYyNDEiLCBcCi0gICAgICAgICAgIjAuMDA2MTI3LCAwLjAwNjE5OSwgMC4wMDYyMTgsIDAuMDA2MjIsIDAuMDA2MjMzLCAwLjAwNjIzNCwgMC4wMDYyMzgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTk5MDQsIDAuMDE5OTA1LCAwLjAxOTkwMSwgMC4wMTk4OTcsIDAuMDE5ODk3LCAwLjAxOTg5NSwgMC4wMTk4OSIsIFwKLSAgICAgICAgICAiMC4wMTk4MjIsIDAuMDE5ODUsIDAuMDE5ODUyLCAwLjAxOTg1MSwgMC4wMTk4NSwgMC4wMTk4NDYsIDAuMDE5ODQyIiwgXAotICAgICAgICAgICIwLjAxOTc3OCwgMC4wMTk4MzIsIDAuMDE5ODM2LCAwLjAxOTgzOSwgMC4wMTk4MzksIDAuMDE5ODM4LCAwLjAxOTgzNSIsIFwKLSAgICAgICAgICAiMC4wMTk3NDksIDAuMDE5ODE5LCAwLjAxOTgyOCwgMC4wMTk4MzMsIDAuMDE5ODMxLCAwLjAxOTgzMSwgMC4wMTk4MyIsIFwKLSAgICAgICAgICAiMC4wMTk3MzQsIDAuMDE5ODA3LCAwLjAxOTgyLCAwLjAxOTgyNSwgMC4wMTk4MjYsIDAuMDE5ODI5LCAwLjAxOTgyNiIsIFwKLSAgICAgICAgICAiMC4wMTk3MjQsIDAuMDE5Nzk0LCAwLjAxOTgwOSwgMC4wMTk4MTcsIDAuMDE5ODE4LCAwLjAxOTgyLCAwLjAxOTgxOCIsIFwKLSAgICAgICAgICAiMC4wMTk3MjgsIDAuMDE5Nzg4LCAwLjAxOTgwNSwgMC4wMTk4MTIsIDAuMDE5ODE4LCAwLjAxOTgxOCwgMC4wMTk4MiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1MTcxLCAwLjAwNTE3NywgMC4wMDUxOCwgMC4wMDUxNzgsIDAuMDA1MTc2LCAwLjAwNTE3NCwgMC4wMDUxNzYiLCBcCi0gICAgICAgICAgIjAuMDA1MDk5LCAwLjAwNTE2MiwgMC4wMDUxNzEsIDAuMDA1MTczLCAwLjAwNTE3NSwgMC4wMDUxNzUsIDAuMDA1MTc1IiwgXAotICAgICAgICAgICIwLjAwNTAyMSwgMC4wMDUxMzUsIDAuMDA1MTU0LCAwLjAwNTE2LCAwLjAwNTE2NiwgMC4wMDUxNjgsIDAuMDA1MTY4IiwgXAotICAgICAgICAgICIwLjAwNDk2MiwgMC4wMDUxMDYsIDAuMDA1MTM2LCAwLjAwNTE0NiwgMC4wMDUxNTUsIDAuMDA1MTYsIDAuMDA1MTYzIiwgXAotICAgICAgICAgICIwLjAwNDkyLCAwLjAwNTA4MiwgMC4wMDUxMiwgMC4wMDUxMzUsIDAuMDA1MTQ3LCAwLjAwNTE1MiwgMC4wMDUxNTUiLCBcCi0gICAgICAgICAgIjAuMDA0ODcyLCAwLjAwNTA1MSwgMC4wMDUwOTQsIDAuMDA1MTE1LCAwLjAwNTEzMSwgMC4wMDUxNCwgMC4wMDUxNDciLCBcCi0gICAgICAgICAgIjAuMDA0ODQ2LCAwLjAwNTAyNSwgMC4wMDUwODEsIDAuMDA1MDk2LCAwLjAwNTEyMSwgMC4wMDUxMywgMC4wMDUxMzkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTc5NjQsIDAuMDE3OTY5LCAwLjAxNzk2OCwgMC4wMTc5NjUsIDAuMDE3OTYyLCAwLjAxNzk1NywgMC4wMTc5NTMiLCBcCi0gICAgICAgICAgIjAuMDE3ODQ1LCAwLjAxNzkwNywgMC4wMTc5MTEsIDAuMDE3OTEzLCAwLjAxNzkxMSwgMC4wMTc5MDksIDAuMDE3OTA3IiwgXAotICAgICAgICAgICIwLjAxNzc5MSwgMC4wMTc4NzYsIDAuMDE3ODg5LCAwLjAxNzg5MiwgMC4wMTc4OTYsIDAuMDE3ODk0LCAwLjAxNzg5MiIsIFwKLSAgICAgICAgICAiMC4wMTc3OTMsIDAuMDE3ODY1LCAwLjAxNzg4LCAwLjAxNzg4NiwgMC4wMTc4ODgsIDAuMDE3ODg3LCAwLjAxNzg4NSIsIFwKLSAgICAgICAgICAiMC4wMTc3NzksIDAuMDE3ODM3LCAwLjAxNzg2NywgMC4wMTc4NzcsIDAuMDE3ODgzLCAwLjAxNzg4LCAwLjAxNzg3OSIsIFwKLSAgICAgICAgICAiMC4wMTc4NTMsIDAuMDE3ODU2LCAwLjAxNzg2OCwgMC4wMTc4NzMsIDAuMDE3ODc5LCAwLjAxNzg3OSwgMC4wMTc4NzciLCBcCi0gICAgICAgICAgIjAuMDE3OTMzLCAwLjAxNzg3LCAwLjAxNzg2MSwgMC4wMTc4NzcsIDAuMDE3ODgsIDAuMDE3ODc4LCAwLjAxNzg3OSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzODUsIDAuMDAzODk2LCAwLjAwMzkwMSwgMC4wMDM5MDIsIDAuMDAzODk5LCAwLjAwMzkwMywgMC4wMDM5MDIiLCBcCi0gICAgICAgICAgIjAuMDAzODA3LCAwLjAwMzk1LCAwLjAwMzk3MywgMC4wMDM5NzksIDAuMDAzOTg1LCAwLjAwMzk4OCwgMC4wMDM5ODgiLCBcCi0gICAgICAgICAgIjAuMDAzNzA3LCAwLjAwMzkyMiwgMC4wMDM5NjIsIDAuMDAzOTc1LCAwLjAwMzk4NywgMC4wMDM5OTMsIDAuMDAzOTk4IiwgXAotICAgICAgICAgICIwLjAwMzYyNCwgMC4wMDM4ODYsIDAuMDAzOTQyLCAwLjAwMzk2MSwgMC4wMDM5NzgsIDAuMDAzOTg2LCAwLjAwMzk5NCIsIFwKLSAgICAgICAgICAiMC4wMDM1NjEsIDAuMDAzODUsIDAuMDAzOTIxLCAwLjAwMzk0NCwgMC4wMDM5NjYsIDAuMDAzOTc3LCAwLjAwMzk4NyIsIFwKLSAgICAgICAgICAiMC4wMDM0OTIsIDAuMDAzNzk5LCAwLjAwMzg4NiwgMC4wMDM5MTcsIDAuMDAzOTQ1LCAwLjAwMzk2LCAwLjAwMzk3NCIsIFwKLSAgICAgICAgICAiMC4wMDM0NTMsIDAuMDAzNzU5LCAwLjAwMzg1NywgMC4wMDM4OTMsIDAuMDAzOTI2LCAwLjAwMzk0NiwgMC4wMDM5NjIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTYzOTcsIDAuMDE2NDI5LCAwLjAxNjQzMiwgMC4wMTY0MzIsIDAuMDE2NDM0LCAwLjAxNjQzNSwgMC4wMTY0MzUiLCBcCi0gICAgICAgICAgIjAuMDE2MzIzLCAwLjAxNjQ0MywgMC4wMTY0NjEsIDAuMDE2NDY1LCAwLjAxNjQ2OSwgMC4wMTY0NzIsIDAuMDE2NDczIiwgXAotICAgICAgICAgICIwLjAxNjI0MSwgMC4wMTY0MTUsIDAuMDE2NDQ2LCAwLjAxNjQ1NSwgMC4wMTY0NjQsIDAuMDE2NDY3LCAwLjAxNjQ3MiIsIFwKLSAgICAgICAgICAiMC4wMTYxOTUsIDAuMDE2MzksIDAuMDE2NDI5LCAwLjAxNjQ0MywgMC4wMTY0NTUsIDAuMDE2NDYxLCAwLjAxNjQ2OCIsIFwKLSAgICAgICAgICAiMC4wMTYxNjUsIDAuMDE2MzYxLCAwLjAxNjQxMywgMC4wMTY0MywgMC4wMTY0NDcsIDAuMDE2NDU1LCAwLjAxNjQ1OCIsIFwKLSAgICAgICAgICAiMC4wMTYxMzksIDAuMDE2MzMsIDAuMDE2Mzg5LCAwLjAxNjQxMSwgMC4wMTY0MzEsIDAuMDE2NDQyLCAwLjAxNjQ1MiIsIFwKLSAgICAgICAgICAiMC4wMTYxMzQsIDAuMDE2MzA3LCAwLjAxNjM3MSwgMC4wMTYzOTYsIDAuMDE2NDIsIDAuMDE2NDMyLCAwLjAxNjQ0NCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2Mzk1LCAwLjAwNjM5NiwgMC4wMDYzOTMsIDAuMDA2MzkyLCAwLjAwNjM5MSwgMC4wMDYzOTIsIDAuMDA2Mzg4IiwgXAotICAgICAgICAgICIwLjAwNjI1NSwgMC4wMDYyODEsIDAuMDA2Mjg1LCAwLjAwNjI4MywgMC4wMDYyODYsIDAuMDA2MjgzLCAwLjAwNjI3OSIsIFwKLSAgICAgICAgICAiMC4wMDYyMiwgMC4wMDYyNTEsIDAuMDA2MjU1LCAwLjAwNjI1OSwgMC4wMDYyNjYsIDAuMDA2MjY2LCAwLjAwNjI2OCIsIFwKLSAgICAgICAgICAiMC4wMDYyMSwgMC4wMDYyMjgsIDAuMDA2MjQ1LCAwLjAwNjI0OSwgMC4wMDYyNTIsIDAuMDA2MjQ5LCAwLjAwNjI0OSIsIFwKLSAgICAgICAgICAiMC4wMDYyMjcsIDAuMDA2MjQ1LCAwLjAwNjI1MiwgMC4wMDYyNDksIDAuMDA2MjUxLCAwLjAwNjI1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICIwLjAwNjMsIDAuMDA2MjU2LCAwLjAwNjI1NCwgMC4wMDYyNTIsIDAuMDA2MjUyLCAwLjAwNjI1MSwgMC4wMDYyNDkiLCBcCi0gICAgICAgICAgIjAuMDA2Mzc0LCAwLjAwNjI3NywgMC4wMDYyNjgsIDAuMDA2MjYzLCAwLjAwNjI1OSwgMC4wMDYyNTUsIDAuMDA2MjUzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE0MDksIDAuMDE0MTI0LCAwLjAxNDEyNywgMC4wMTQxMjgsIDAuMDE0MTI4LCAwLjAxNDEyOSwgMC4wMTQxMyIsIFwKLSAgICAgICAgICAiMC4wMTQwMTUsIDAuMDE0MTM4LCAwLjAxNDE1MiwgMC4wMTQxNTgsIDAuMDE0MTYyLCAwLjAxNDE2NCwgMC4wMTQxNjYiLCBcCi0gICAgICAgICAgIjAuMDEzOTM1LCAwLjAxNDEwOCwgMC4wMTQxMzksIDAuMDE0MTQ4LCAwLjAxNDE1NywgMC4wMTQxNjEsIDAuMDE0MTY1IiwgXAotICAgICAgICAgICIwLjAxMzg5LCAwLjAxNDA4MywgMC4wMTQxMjMsIDAuMDE0MTM3LCAwLjAxNDE1LCAwLjAxNDE1NSwgMC4wMTQxNjEiLCBcCi0gICAgICAgICAgIjAuMDEzODYzLCAwLjAxNDA1LCAwLjAxNDEwNywgMC4wMTQxMjUsIDAuMDE0MTM5LCAwLjAxNDE0OCwgMC4wMTQxNTgiLCBcCi0gICAgICAgICAgIjAuMDEzODQ3LCAwLjAxNDAyNywgMC4wMTQwODMsIDAuMDE0MTA2LCAwLjAxNDEyNiwgMC4wMTQxMzcsIDAuMDE0MTQ1IiwgXAotICAgICAgICAgICIwLjAxMzg1NiwgMC4wMTQwMDcsIDAuMDE0MDcsIDAuMDE0MDkyLCAwLjAxNDExOCwgMC4wMTQxMjgsIDAuMDE0MTQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNTE2NywgMC4wMDUxNzgsIDAuMDA1MTc5LCAwLjAwNTE3OCwgMC4wMDUxNzUsIDAuMDA1MTc3LCAwLjAwNTE3NiIsIFwKLSAgICAgICAgICAiMC4wMDUwODUsIDAuMDA1MTU4LCAwLjAwNTE2OCwgMC4wMDUxNjksIDAuMDA1MTc1LCAwLjAwNTE3NSwgMC4wMDUxNzIiLCBcCi0gICAgICAgICAgIjAuMDA1MDI5LCAwLjAwNTEzNiwgMC4wMDUxNTQsIDAuMDA1MTYsIDAuMDA1MTY3LCAwLjAwNTE2NiwgMC4wMDUxNjkiLCBcCi0gICAgICAgICAgIjAuMDA1MDA3LCAwLjAwNTEwOCwgMC4wMDUxNDgsIDAuMDA1MTU0LCAwLjAwNTE2MiwgMC4wMDUxNjQsIDAuMDA1MTY1IiwgXAotICAgICAgICAgICIwLjAwNTA0MSwgMC4wMDUxMDMsIDAuMDA1MTQxLCAwLjAwNTE1MiwgMC4wMDUxNiwgMC4wMDUxNjUsIDAuMDA1MTY2IiwgXAotICAgICAgICAgICIwLjAwNTA2MywgMC4wMDUxMTYsIDAuMDA1MTQzLCAwLjAwNTE1MSwgMC4wMDUxNTcsIDAuMDA1MTYxLCAwLjAwNTE2MyIsIFwKLSAgICAgICAgICAiMC4wMDUxNzYsIDAuMDA1MTQyLCAwLjAwNTE1MiwgMC4wMDUxNTgsIDAuMDA1MTY0LCAwLjAwNTE2NCwgMC4wMDUxNjciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTIxNDUsIDAuMDEyMTk0LCAwLjAxMjIwMSwgMC4wMTIyMDMsIDAuMDEyMjA3LCAwLjAxMjIwMywgMC4wMTIyMDUiLCBcCi0gICAgICAgICAgIjAuMDEyMDMzLCAwLjAxMjE5NywgMC4wMTIyMiwgMC4wMTIyMjUsIDAuMDEyMjMyLCAwLjAxMjIzNSwgMC4wMTIyMzgiLCBcCi0gICAgICAgICAgIjAuMDExOTYxLCAwLjAxMjE2NCwgMC4wMTIyMDIsIDAuMDEyMjE2LCAwLjAxMjIyNSwgMC4wMTIyMzEsIDAuMDEyMjM1IiwgXAotICAgICAgICAgICIwLjAxMTk2NywgMC4wMTIxNDEsIDAuMDEyMTg5LCAwLjAxMjIwMywgMC4wMTIyMTcsIDAuMDEyMjI0LCAwLjAxMjIzMSIsIFwKLSAgICAgICAgICAiMC4wMTE5NDQsIDAuMDEyMTE0LCAwLjAxMjE2NywgMC4wMTIxODcsIDAuMDEyMjA0LCAwLjAxMjIxNCwgMC4wMTIyMjMiLCBcCi0gICAgICAgICAgIjAuMDEyMDQ1LCAwLjAxMjEwNywgMC4wMTIxNiwgMC4wMTIxNzksIDAuMDEyMTk3LCAwLjAxMjIwNiwgMC4wMTIyMTgiLCBcCi0gICAgICAgICAgIjAuMDEyMTQzLCAwLjAxMjExMSwgMC4wMTIxNTUsIDAuMDEyMTc0LCAwLjAxMjE5MywgMC4wMTIyMDMsIDAuMDEyMjEzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDM4NDQsIDAuMDAzODk2LCAwLjAwMzkwNCwgMC4wMDM5MDMsIDAuMDAzOTA2LCAwLjAwMzkwOSwgMC4wMDM5MDQiLCBcCi0gICAgICAgICAgIjAuMDAzNzk2LCAwLjAwMzk0OSwgMC4wMDM5NzQsIDAuMDAzOTgxLCAwLjAwMzk4OSwgMC4wMDM5OTEsIDAuMDAzOTkyIiwgXAotICAgICAgICAgICIwLjAwMzcxNywgMC4wMDM5MjQsIDAuMDAzOTY0LCAwLjAwMzk3NywgMC4wMDM5OSwgMC4wMDM5OTcsIDAuMDA0MDAxIiwgXAotICAgICAgICAgICIwLjAwMzY5NywgMC4wMDM5MDMsIDAuMDAzOTU0LCAwLjAwMzk3LCAwLjAwMzk4NiwgMC4wMDM5OTEsIDAuMDA0IiwgXAotICAgICAgICAgICIwLjAwMzY3OCwgMC4wMDM4ODUsIDAuMDAzOTM5LCAwLjAwMzk1NywgMC4wMDM5NzYsIDAuMDAzOTg0LCAwLjAwMzk5MyIsIFwKLSAgICAgICAgICAiMC4wMDM3MjUsIDAuMDAzODczLCAwLjAwMzkzMSwgMC4wMDM5NTMsIDAuMDAzOTcyLCAwLjAwMzk4NCwgMC4wMDM5OTQiLCBcCi0gICAgICAgICAgIjAuMDAzNzQyLCAwLjAwMzg2MSwgMC4wMDM5MTksIDAuMDAzOTQyLCAwLjAwMzk2MywgMC4wMDM5NzQsIDAuMDAzOTg1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IE9SNFgxICoKLSAqIC0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChPUjRYMSkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjEzODc0MzsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNTk3ODM4OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDU5NDEzNTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA1OTc4Mzg7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMTkyLCAwLjAwMDIwMywgMC4wMDAyMDcsIDAuMDAwMjEsIDAuMDAwMjEsIDAuMDAwMjExLCAwLjAwMDIxMiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDU1OSwgMC4wMDA1NiwgMC4wMDA1NiwgMC4wMDA1NiwgMC4wMDA1NiwgMC4wMDA1NiwgMC4wMDA1NiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjI2NTIzOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYyMzM5NTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2MjY1MjM7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMTg3LCAwLjAwMDIwMSwgMC4wMDAyMDcsIDAuMDAwMjEsIDAuMDAwMjEyLCAwLjAwMDIxNSwgMC4wMDAyMTYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAzOTUsIDAuMDAwMzk2LCAwLjAwMDM5NiwgMC4wMDAzOTYsIDAuMDAwMzk2LCAwLjAwMDM5NiwgMC4wMDAzOTYiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEMpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY1OTY5MjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2NTcyOTg7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjU5NjkyOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDE4OSwgMC4wMDAyMSwgMC4wMDAyMTUsIDAuMDAwMjE2LCAwLjAwMDIxNywgMC4wMDAyMTgsIDAuMDAwMjIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyNCwgMC4wMDAyNCwgMC4wMDAyNDEsIDAuMDAwMjQxLCAwLjAwMDI0MSwgMC4wMDAyNDEsIDAuMDAwMjQxIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihEKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2MzkxNTI7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjM5MTA1OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDYzOTE1MjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAwNTksIDAuMDAwMDU5LCAwLjAwMDA1OSwgMC4wMDAwNTksIDAuMDAwMDU5LCAwLjAwMDA1OSwgMC4wMDAwNTkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxNjUsIDAuMDAwMTY1LCAwLjAwMDE2NSwgMC4wMDAxNjUsIDAuMDAwMTY1LCAwLjAwMDE2NSwgMC4wMDAxNjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4yNTc4ODM7Ci0gICAgZnVuY3Rpb24gOiAiKCgoQStCKStDKStEKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc3MTk4LCAwLjEwMTY4NiwgMC4yMzk2NjEsIDAuMzYxMTQyLCAwLjUyMzA4NCwgMC44NDY4NDQsIDEuMDQ5MTMiLCBcCi0gICAgICAgICAgIjAuMDg3NDczLCAwLjExMTk1NSwgMC4yNDk5MzQsIDAuMzcxNDE1LCAwLjUzMzM1NCwgMC44NTcxMzEsIDEuMDU5NDQiLCBcCi0gICAgICAgICAgIjAuMTAwMTg1LCAwLjEyNDY1NSwgMC4yNjI2MjUsIDAuMzg0MTIxLCAwLjU0NjA0OSwgMC44Njk4OCwgMS4wNzIxNiIsIFwKLSAgICAgICAgICAiMC4xMTI0MjUsIDAuMTM2OTA0LCAwLjI3NDg1NywgMC4zOTYzNDEsIDAuNTU4MjY4LCAwLjg4MjA3NCwgMS4wODQzOCIsIFwKLSAgICAgICAgICAiMC4xMjMwODgsIDAuMTQ3NTQzLCAwLjI4NTUxNSwgMC40MDY5NzgsIDAuNTY4OTU3LCAwLjg5MjY3OSwgMS4wOTQ5OSIsIFwKLSAgICAgICAgICAiMC4xMzgzODQsIDAuMTYyODg4LCAwLjMwMDgwOCwgMC40MjIzMjQsIDAuNTg0MjUyLCAwLjkwNzk5NSwgMS4xMTAzMSIsIFwKLSAgICAgICAgICAiMC4xNTA3NDEsIDAuMTc1MjYxLCAwLjMxMzEyOCwgMC40MzQ2MzIsIDAuNTk2NTE1LCAwLjkyMDM5NiwgMS4xMjI2NSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTIyNjUsIDAuMTQxNDMxLCAwLjQyNDI2NCwgMC42NzM2NTIsIDEuMDA3ODgsIDEuNjc0ODQsIDIuMDg5MTMiLCBcCi0gICAgICAgICAgIjAuMDkyMjIzLCAwLjE0MTQ5MiwgMC40MjQyNTIsIDAuNjc0MzQsIDEuMDA2MzUsIDEuNjc0ODMsIDIuMDkxNjkiLCBcCi0gICAgICAgICAgIjAuMDkyMTYzLCAwLjE0MTQ0NywgMC40MjQyNDMsIDAuNjc0MzIsIDEuMDA3ODIsIDEuNjc0NzksIDIuMDkxNzEiLCBcCi0gICAgICAgICAgIjAuMDkyMjY5LCAwLjE0MTYwNiwgMC40MjQyMjksIDAuNjczNTYzLCAxLjAwNzY2LCAxLjY3NDY1LCAyLjA5MTQiLCBcCi0gICAgICAgICAgIjAuMDkyNzM3LCAwLjE0MTY4NSwgMC40MjQxOTEsIDAuNjc0MjUsIDEuMDA3NjcsIDEuNjc0NTcsIDIuMDkxMzUiLCBcCi0gICAgICAgICAgIjAuMDkzNTY2LCAwLjE0MjE2OSwgMC40MjQyNCwgMC42NzM0MiwgMS4wMDY0NCwgMS42NzQ1NiwgMi4wOTEzNCIsIFwKLSAgICAgICAgICAiMC4wOTQyMzcsIDAuMTQyNDk2LCAwLjQyNDMyMiwgMC42NzQyNDcsIDEuMDA2NzIsIDEuNjcxODcsIDIuMDg4NDYiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTUzNDY5LCAwLjE4MDg1MSwgMC4zMjMxMSwgMC40NDY4MDYsIDAuNjExNzIzLCAwLjk0MTU0OSwgMS4xNDgwNCIsIFwKLSAgICAgICAgICAiMC4xNjE3MDgsIDAuMTg4OTc2LCAwLjMzMTI1NSwgMC40NTQ5NjcsIDAuNjE5ODY5LCAwLjk0OTcyLCAxLjE1NjE0IiwgXAotICAgICAgICAgICIwLjE2OTk0LCAwLjE5NzMwMSwgMC4zMzk1OTksIDAuNDYzMjk3LCAwLjYyODI2NSwgMC45NTgwOTIsIDEuMTY0MjQiLCBcCi0gICAgICAgICAgIjAuMTc3NDI4LCAwLjIwNDczNCwgMC4zNDY5OTgsIDAuNDcwNzA2LCAwLjYzNTYzMiwgMC45NjU1MjIsIDEuMTcxNzkiLCBcCi0gICAgICAgICAgIjAuMTg0MzczLCAwLjIxMTY4OSwgMC4zNTM5MzUsIDAuNDc3NjMxLCAwLjY0MjU1OSwgMC45NzI0NDIsIDEuMTc4NzMiLCBcCi0gICAgICAgICAgIjAuMTk0NjY5LCAwLjIyMTkxOCwgMC4zNjQyMzcsIDAuNDg3OTUxLCAwLjY1Mjg2OSwgMC45ODI3NDQsIDEuMTg5MTYiLCBcCi0gICAgICAgICAgIjAuMjAyODA1LCAwLjIzMDE3NiwgMC4zNzI1MzMsIDAuNDk2MjUzLCAwLjY2MTE2NywgMC45OTEwNTMsIDEuMTk3MzciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTA4ODgzLCAwLjE1NTYyMSwgMC40Mjg2NjMsIDAuNjc2MDg2LCAxLjAwNjI4LCAxLjY3MiwgMi4wODMyNyIsIFwKLSAgICAgICAgICAiMC4xMDg2MDMsIDAuMTU1NTMsIDAuNDI4NDMxLCAwLjY3NjA0NSwgMS4wMDU0NywgMS42NzEzNCwgMi4wODM0MyIsIFwKLSAgICAgICAgICAiMC4xMDg1OTgsIDAuMTU1NDEzLCAwLjQyODYzNSwgMC42NzYwNDMsIDEuMDA3NjIsIDEuNjcyMjIsIDIuMDg3MSIsIFwKLSAgICAgICAgICAiMC4xMDg1MTMsIDAuMTU1MzU1LCAwLjQyODUzMSwgMC42NzYwMzEsIDEuMDA1NzYsIDEuNjY4NjksIDIuMDgxMjgiLCBcCi0gICAgICAgICAgIjAuMTA4NDQ3LCAwLjE1NTM0MywgMC40Mjg1MTksIDAuNjc2MDA4LCAxLjAwNTY3LCAxLjY3MDk2LCAyLjA4MTIyIiwgXAotICAgICAgICAgICIwLjEwODgyNywgMC4xNTU2MjcsIDAuNDI4NjA5LCAwLjY3NjA2MSwgMS4wMDU0MiwgMS42NzIxNiwgMi4wODM1MyIsIFwKLSAgICAgICAgICAiMC4xMDk1OTMsIDAuMTU2MTg5LCAwLjQyOTA4LCAwLjY3NjE2NCwgMS4wMDczMiwgMS42NzEwMywgMi4wODEwNCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzUzOTgsIDAuMDk5Nzg5LCAwLjIzNzU3NiwgMC4zNTkwMDYsIDAuNTIwODcyLCAwLjg0NDU2NCwgMS4wNDY5IiwgXAotICAgICAgICAgICIwLjA4NTY0NiwgMC4xMTAwNjIsIDAuMjQ3ODg5LCAwLjM2OTI3OSwgMC41MzEyMjYsIDAuODU0ODY2LCAxLjA1NzE1IiwgXAotICAgICAgICAgICIwLjA5ODMxOSwgMC4xMjI3MjMsIDAuMjYwNTM5LCAwLjM4MTk3MSwgMC41NDM4NDYsIDAuODY3NTQ1LCAxLjA2OTkiLCBcCi0gICAgICAgICAgIjAuMTEwMTY2LCAwLjEzNDU3NywgMC4yNzIzODgsIDAuMzkzODQ1LCAwLjU1NTcsIDAuODc5NDIzLCAxLjA4MTcxIiwgXAotICAgICAgICAgICIwLjEyMDYzMiwgMC4xNDUwMjUsIDAuMjgyODYsIDAuNDA0Mjc4LCAwLjU2NjE2MSwgMC44ODk4NiwgMS4wOTIxNSIsIFwKLSAgICAgICAgICAiMC4xMzUxNDksIDAuMTU5NTc0LCAwLjI5NzM2NSwgMC40MTg4MjYsIDAuNTgwNzIsIDAuOTA0MzcyLCAxLjEwNjciLCBcCi0gICAgICAgICAgIjAuMTQ2MzUyLCAwLjE3MDg5NCwgMC4zMDg2LCAwLjQzMDAxLCAwLjU5MTkxMSwgMC45MTU2MTIsIDEuMTE3OTQiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDkxNTQ2LCAwLjE0MDcwMiwgMC40MjM5ODcsIDAuNjczOTAxLCAxLjAwNzQ5LCAxLjY3NDQ0LCAyLjA4OTM4IiwgXAotICAgICAgICAgICIwLjA5MTQ4NywgMC4xNDA4ODYsIDAuNDIzMTY3LCAwLjY3Mzk4NSwgMS4wMDc3MiwgMS42NzQ0NiwgMi4wOTEzNyIsIFwKLSAgICAgICAgICAiMC4wOTE2MTYsIDAuMTQwOTksIDAuNDIzOTUsIDAuNjczMjUxLCAxLjAwNzQ2LCAxLjY3NDQ1LCAyLjA5MTUiLCBcCi0gICAgICAgICAgIjAuMDkxNzM3LCAwLjE0MDk3MSwgMC40MjM3OCwgMC42NzM5NTYsIDEuMDA3MzIsIDEuNjc0MzEsIDIuMDkxMTMiLCBcCi0gICAgICAgICAgIjAuMDkyMzE1LCAwLjE0MTM2NiwgMC40MjM5MzEsIDAuNjczOTEzLCAxLjAwNjMyLCAxLjY3NDI4LCAyLjA5MTAzIiwgXAotICAgICAgICAgICIwLjA5MzE0OCwgMC4xNDE3ODUsIDAuNDIzOTMyLCAwLjY3MzA0MSwgMS4wMDc0NiwgMS42NzQyMSwgMi4wOTExNCIsIFwKLSAgICAgICAgICAiMC4wOTM4OSwgMC4xNDIxNTcsIDAuNDIzOTIzLCAwLjY3MzkxMywgMS4wMDYzMSwgMS42NzQyOCwgMi4wOTExOCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNDk4NzgsIDAuMTc3MTQ4LCAwLjMxOTQxNSwgMC40NDMxMjIsIDAuNjA4MDM2LCAwLjkzNzg4LCAxLjE0NDMxIiwgXAotICAgICAgICAgICIwLjE1NzQ4MywgMC4xODQ4NDMsIDAuMzI3MTMzLCAwLjQ1MDg0MywgMC42MTU3NjQsIDAuOTQ1NTk1LCAxLjE1MjA5IiwgXAotICAgICAgICAgICIwLjE2NjE3OCwgMC4xOTM1MjgsIDAuMzM1ODE0LCAwLjQ1OTUyNiwgMC42MjQ0MjUsIDAuOTU0MjksIDEuMTYwNjciLCBcCi0gICAgICAgICAgIjAuMTc0MzAxLCAwLjIwMTU4NSwgMC4zNDM4MjgsIDAuNDY3NTQ5LCAwLjYzMjQ3OSwgMC45NjIzMywgMS4xNjg3NiIsIFwKLSAgICAgICAgICAiMC4xODIwNTQsIDAuMjA5MzcxLCAwLjM1MTYzMywgMC40NzUzNCwgMC42NDAyNjQsIDAuOTcwMTQzLCAxLjE3NjQ2IiwgXAotICAgICAgICAgICIwLjE5NDA0LCAwLjIyMTMzLCAwLjM2MzY1NSwgMC40ODczNjMsIDAuNjUyMzE1LCAwLjk4MjIxNywgMS4xODgzMyIsIFwKLSAgICAgICAgICAiMC4yMDM4MzQsIDAuMjMxMjkxLCAwLjM3MzY4NSwgMC40OTc0MDgsIDAuNjYyNDE2LCAwLjk5MjI0NSwgMS4xOTgzNyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDg2LCAwLjE1NTYxNSwgMC40Mjg0MjgsIDAuNjc0OTU4LCAxLjAwNTQ1LCAxLjY3MTM4LCAyLjA4MzciLCBcCi0gICAgICAgICAgIjAuMTA4ODYxLCAwLjE1NTQ5MywgMC40Mjg2MzEsIDAuNjc2MDgzLCAxLjAwNjI5LCAxLjY3MiwgMi4wODM0OSIsIFwKLSAgICAgICAgICAiMC4xMDg1NTIsIDAuMTU1NDI4LCAwLjQyODM1OCwgMC42NzYxNywgMS4wMDU1MSwgMS42NzEyNiwgMi4wODMwNyIsIFwKLSAgICAgICAgICAiMC4xMDg0NjQsIDAuMTU1MzI3LCAwLjQyODk3NiwgMC42NzU5OTksIDEuMDA1NTMsIDEuNjcxMzYsIDIuMDgzNjMiLCBcCi0gICAgICAgICAgIjAuMTA4NDk5LCAwLjE1NTM2OSwgMC40Mjg1MjUsIDAuNjc1MDk1LCAxLjAwNTY4LCAxLjY3MTA5LCAyLjA4MTEyIiwgXAotICAgICAgICAgICIwLjEwOTE3NiwgMC4xNTU5MDIsIDAuNDI4NTMyLCAwLjY3NjA5OSwgMS4wMDQ2NCwgMS42Njc0MiwgMi4wODgwOSIsIFwKLSAgICAgICAgICAiMC4xMDk5NSwgMC4xNTYzMzYsIDAuNDI5MTUsIDAuNjc2MTk4LCAxLjAwNzgyLCAxLjY3MjQyLCAyLjA4NzI5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3MzA1OSwgMC4wOTczNzQsIDAuMjM1MDQ0LCAwLjM1NjQzOCwgMC41MTgyODMsIDAuODQxOTU3LCAxLjA0NDI4IiwgXAotICAgICAgICAgICIwLjA4MzI5NCwgMC4xMDc2NCwgMC4yNDUzMjMsIDAuMzY2NzI5LCAwLjUyODU4MywgMC44NTIyMzgsIDEuMDU0NiIsIFwKLSAgICAgICAgICAiMC4wOTU5NzQsIDAuMTIwMzM5LCAwLjI1ODAyOSwgMC4zNzk0ODEsIDAuNTQxMjk0LCAwLjg2NTAxOSwgMS4wNjcyNiIsIFwKLSAgICAgICAgICAiMC4xMDcyMDcsIDAuMTMxNTY0LCAwLjI2OTI2NCwgMC4zOTA2NTksIDAuNTUyNTExLCAwLjg3NjE5MiwgMS4wNzg2NSIsIFwKLSAgICAgICAgICAiMC4xMTc1NzMsIDAuMTQxOTYsIDAuMjc5NjcsIDAuNDAxMDM5LCAwLjU2Mjg4MywgMC44ODY1NjUsIDEuMDg4OTIiLCBcCi0gICAgICAgICAgIjAuMTMxMjMyLCAwLjE1NTY0OSwgMC4yOTMzNTYsIDAuNDE0NzkyLCAwLjU3NjU5OSwgMC45MDAyNjgsIDEuMTAyNjUiLCBcCi0gICAgICAgICAgIjAuMTQxNzM0LCAwLjE2NjIyOCwgMC4zMDM4MzcsIDAuNDI1MjU2LCAwLjU4NzA3LCAwLjkxMDgwNiwgMS4xMTMwMiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTEyMzEsIDAuMTQwNzI0LCAwLjQyMzI1MiwgMC42NzMwNzgsIDEuMDA3NDksIDEuNjcyOCwgMi4wODg5MyIsIFwKLSAgICAgICAgICAiMC4wOTEyMzgsIDAuMTQwNjkxLCAwLjQyMjYwMiwgMC42NzMxMjYsIDEuMDA2MSwgMS42NzQ0OSwgMi4wODg5OCIsIFwKLSAgICAgICAgICAiMC4wOTEyMjEsIDAuMTQwNzA2LCAwLjQyMzY3LCAwLjY3Mzg2OCwgMS4wMDYyOCwgMS42NzE1NiwgMi4wODkxNyIsIFwKLSAgICAgICAgICAiMC4wOTE1NywgMC4xNDA5MDcsIDAuNDIzNjkyLCAwLjY3MzAzOSwgMS4wMDYxOSwgMS42NzI2LCAyLjA5MTQ5IiwgXAotICAgICAgICAgICIwLjA5MjA4LCAwLjE0MTE3NSwgMC40MjM3NiwgMC42NzM3MzksIDEuMDA3MTcsIDEuNjcyMzEsIDIuMDkxMjMiLCBcCi0gICAgICAgICAgIjAuMDkyOTUzLCAwLjE0MTU5MywgMC40MjMxNjcsIDAuNjczODc5LCAxLjAwNzIzLCAxLjY3NDIyLCAyLjA5MTI2IiwgXAotICAgICAgICAgICIwLjA5Mzk1MSwgMC4xNDIwMTYsIDAuNDIzNzI2LCAwLjY3Mjg0OSwgMS4wMDcwOSwgMS42NzQyNiwgMi4wOTA3OCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNDMzNzYsIDAuMTcwNTUsIDAuMzEyODYsIDAuNDM2NTgzLCAwLjYwMTQ4NCwgMC45MzEzMDgsIDEuMTM3NzgiLCBcCi0gICAgICAgICAgIjAuMTUwOTY5LCAwLjE3ODIyOCwgMC4zMjA0ODIsIDAuNDQ0MTk2LCAwLjYwOTExNiwgMC45Mzg5NTMsIDEuMTQ1NDkiLCBcCi0gICAgICAgICAgIjAuMTYwMjgzLCAwLjE4NzYwMywgMC4zMjk4NzYsIDAuNDUzNjAxLCAwLjYxODUyNSwgMC45NDgzNTksIDEuMTU0ODUiLCBcCi0gICAgICAgICAgIjAuMTY5Njc1LCAwLjE5Njk5NywgMC4zMzkyNzIsIDAuNDYyOTg1LCAwLjYyNzkxOSwgMC45NTc3NzQsIDEuMTY0MTgiLCBcCi0gICAgICAgICAgIjAuMTc4ODY2LCAwLjIwNjE2MiwgMC4zNDg0OTIsIDAuNDcyMjA2LCAwLjYzNzEzLCAwLjk2NzAxNiwgMS4xNzMzIiwgXAotICAgICAgICAgICIwLjE5MzE2MiwgMC4yMjA0NjUsIDAuMzYyNzkyLCAwLjQ4NjUyMywgMC42NTE0NTMsIDAuOTgxMzE1LCAxLjE4Nzc0IiwgXAotICAgICAgICAgICIwLjIwNDUyNSwgMC4yMzIwNzQsIDAuMzc0NDk3LCAwLjQ5ODI0MSwgMC42NjMxNDEsIDAuOTkzMDI1LCAxLjE5OTM1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwODYyLCAwLjE1NTU0MiwgMC40Mjg0MDIsIDAuNjc0NzYyLCAxLjAwNTQzLCAxLjY3MTk0LCAyLjA4MzU0IiwgXAotICAgICAgICAgICIwLjEwODYxNiwgMC4xNTU2MzYsIDAuNDI4NTA4LCAwLjY3NjAzMiwgMS4wMDY2MiwgMS42NzIwNSwgMi4wODMyMyIsIFwKLSAgICAgICAgICAiMC4xMDg1ODcsIDAuMTU1MzE3LCAwLjQyODU5LCAwLjY3NjAyNiwgMS4wMDYxNiwgMS42NzE5OCwgMi4wODMzNyIsIFwKLSAgICAgICAgICAiMC4xMDg0MDMsIDAuMTU1MzEyLCAwLjQyODU1MSwgMC42NzYwMDIsIDEuMDA1NTQsIDEuNjcxMzQsIDIuMDgzMzIiLCBcCi0gICAgICAgICAgIjAuMTA4NzMzLCAwLjE1NTUxOSwgMC40Mjg1NjYsIDAuNjc2MDU2LCAxLjAwNTcsIDEuNjcwNjYsIDIuMDgxMjkiLCBcCi0gICAgICAgICAgIjAuMTA5MDc1LCAwLjE1NTg0MywgMC40Mjg2OTQsIDAuNjc2MDk2LCAxLjAwNTQzLCAxLjY3MTQyLCAyLjA4MzYxIiwgXAotICAgICAgICAgICIwLjExMDAwOSwgMC4xNTY1NjYsIDAuNDI5NDEzLCAwLjY3NjMzOCwgMS4wMDU1LCAxLjY3MTE2LCAyLjA4MTA2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkQiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3MDUwNywgMC4wOTQ4NDIsIDAuMjMyNDk2LCAwLjM1NDA2MywgMC41MTU3NTgsIDAuODM5NjA0LCAxLjA0Mjc3IiwgXAotICAgICAgICAgICIwLjA4MDc5LCAwLjEwNTExMSwgMC4yNDI4NzEsIDAuMzY0MTc2LCAwLjUyNjIzNSwgMC44NDk4MTksIDEuMDUyOTkiLCBcCi0gICAgICAgICAgIjAuMDkzMDk3LCAwLjExNzQzMiwgMC4yNTUxMywgMC4zNzY2NywgMC41Mzg0NCwgMC44NjI3MTMsIDEuMDY0NjEiLCBcCi0gICAgICAgICAgIjAuMTAzOTgzLCAwLjEyODMwMiwgMC4yNjYwMTUsIDAuMzg3NjA5LCAwLjU0OTQyMiwgMC44NzMxNjIsIDEuMDc1ODMiLCBcCi0gICAgICAgICAgIjAuMTEzMzg2LCAwLjEzNzgyMywgMC4yNzU0NzQsIDAuMzk2OTM3LCAwLjU1ODk4NSwgMC44ODI5ODQsIDEuMDg0OTgiLCBcCi0gICAgICAgICAgIjAuMTI2MjgzLCAwLjE1MDczNywgMC4yODg0MDQsIDAuNDA5OTU1LCAwLjU3MTkwNSwgMC44OTU1NCwgMS4wOTc5NSIsIFwKLSAgICAgICAgICAiMC4xMzY1MTksIDAuMTYwOTg2LCAwLjI5ODY4OCwgMC40MjAxMywgMC41ODIyMjgsIDAuOTA2MDA5LCAxLjEwODI4Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5MDg5NiwgMC4xNDAzODYsIDAuNDIzNTc2LCAwLjY3MjczLCAxLjAwNzI0LCAxLjY3MTMxLCAyLjA4OTA3IiwgXAotICAgICAgICAgICIwLjA5MDg5OSwgMC4xNDA0OTcsIDAuNDIyOTU5LCAwLjY3MjU2NiwgMS4wMDU3MywgMS42NzE0NSwgMi4wODc3IiwgXAotICAgICAgICAgICIwLjA5MTA4LCAwLjE0MDYxOSwgMC40MjI3MzcsIDAuNjcyNzI0LCAxLjAwNzM4LCAxLjY3MTY1LCAyLjA5MTIyIiwgXAotICAgICAgICAgICIwLjA5MTUzLCAwLjE0MDc1MywgMC40MjMxNTMsIDAuNjcyNzAyLCAxLjAwNTczLCAxLjY3NDIxLCAyLjA4ODEyIiwgXAotICAgICAgICAgICIwLjA5MjE2NSwgMC4xNDA5NTgsIDAuNDIzNzExLCAwLjY3MzYyNiwgMS4wMDU3NCwgMS42NzI5MSwgMi4wOTA5NSIsIFwKLSAgICAgICAgICAiMC4wOTMxOTcsIDAuMTQxNjYxLCAwLjQyMzc2MywgMC42NzI3MDYsIDEuMDA1NzIsIDEuNjcxMzgsIDIuMDkwOTkiLCBcCi0gICAgICAgICAgIjAuMDk0MzQxLCAwLjE0MjE3OSwgMC40MjM3MzksIDAuNjczMTQ2LCAxLjAwNTc0LCAxLjY3Mjc3LCAyLjA5MTA3Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEzMzcxOSwgMC4xNjEwMzgsIDAuMzAzMzg1LCAwLjQyNzExLCAwLjU5MjAyNSwgMC45MjE4NjEsIDEuMTI4MDUiLCBcCi0gICAgICAgICAgIjAuMTQxMjc1LCAwLjE2ODYxMiwgMC4zMTA5MDIsIDAuNDM0NjMxLCAwLjU5OTUzNiwgMC45MjkzNzksIDEuMTM1ODEiLCBcCi0gICAgICAgICAgIjAuMTUxMzk2LCAwLjE3ODY5MywgMC4zMjEwMDYsIDAuNDQ0NzMzLCAwLjYwOTYzNiwgMC45Mzk1MjMsIDEuMTQ1ODUiLCBcCi0gICAgICAgICAgIjAuMTYxNzM1LCAwLjE4ODkzOSwgMC4zMzEyODgsIDAuNDU1MDA2LCAwLjYxOTkyOCwgMC45NTAwODQsIDEuMTU2MzMiLCBcCi0gICAgICAgICAgIjAuMTcxODM1LCAwLjE5OTE2OCwgMC4zNDE0NzEsIDAuNDY1MTkzLCAwLjYzMDEyMSwgMC45NjAyNzIsIDEuMTY2NTEiLCBcCi0gICAgICAgICAgIjAuMTg3NzE4LCAwLjIxNTA1NCwgMC4zNTczODIsIDAuNDgxMTEyLCAwLjY0NjA0NCwgMC45NzU5MjgsIDEuMTgyMjgiLCBcCi0gICAgICAgICAgIjAuMTk5NTg4LCAwLjIyNzAxNiwgMC4zNjk0OSwgMC40OTMyNTcsIDAuNjU4MTMsIDAuOTg3OTk2LCAxLjE5NDQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTA4NjE4LCAwLjE1NTQzNSwgMC40Mjg1MTUsIDAuNjc2MDE4LCAxLjAwNjEzLCAxLjY3MjAxLCAyLjA4Nzk4IiwgXAotICAgICAgICAgICIwLjEwODU2NSwgMC4xNTU0NDEsIDAuNDI4NDc5LCAwLjY3NjE2NCwgMS4wMDU1NCwgMS42NzE0MiwgMi4wODM2MiIsIFwKLSAgICAgICAgICAiMC4xMDgzODgsIDAuMTU1MzI2LCAwLjQyODU3MywgMC42NzYxODUsIDEuMDA1NjIsIDEuNjcxMSwgMi4wODI1IiwgXAotICAgICAgICAgICIwLjEwODQxMywgMC4xNTUyNjUsIDAuNDI4NTE3LCAwLjY3NjAxMiwgMS4wMDcyMywgMS42Njg0OSwgMi4wODI5NCIsIFwKLSAgICAgICAgICAiMC4xMDg4ODYsIDAuMTU1NTg1LCAwLjQyODQ2NiwgMC42NzYwNjMsIDEuMDA3MjcsIDEuNjY4NSwgMi4wODMwMSIsIFwKLSAgICAgICAgICAiMC4xMDkzNjcsIDAuMTU2MDA3LCAwLjQyODk2MiwgMC42NzYxMTksIDEuMDA1NTUsIDEuNjcxMjMsIDIuMDgyNzEiLCBcCi0gICAgICAgICAgIjAuMTExMDUyLCAwLjE1NzEyLCAwLjQyOTM1NiwgMC42NzQzOTMsIDEuMDA2ODgsIDEuNjcxMTQsIDIuMDgzMjciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDE4MiwgMC4wMDE4MjQsIDAuMDAxODI4LCAwLjAwMTgyOSwgMC4wMDE4MjksIDAuMDAxODI5LCAwLjAwMTgzIiwgXAotICAgICAgICAgICIwLjAwMTgsIDAuMDAxODA0LCAwLjAwMTgwOSwgMC4wMDE4MSwgMC4wMDE4MSwgMC4wMDE4MSwgMC4wMDE4MSIsIFwKLSAgICAgICAgICAiMC4wMDE3OTIsIDAuMDAxNzk3LCAwLjAwMTgwMywgMC4wMDE4MDUsIDAuMDAxODA1LCAwLjAwMTgwNiwgMC4wMDE4MDciLCBcCi0gICAgICAgICAgIjAuMDAxNzk0LCAwLjAwMTc5OCwgMC4wMDE4MDYsIDAuMDAxODA3LCAwLjAwMTgwNywgMC4wMDE4MDcsIDAuMDAxODA5IiwgXAotICAgICAgICAgICIwLjAwMTc5OCwgMC4wMDE4MDIsIDAuMDAxODA5LCAwLjAwMTgxMSwgMC4wMDE4MTIsIDAuMDAxODEyLCAwLjAwMTgxNCIsIFwKLSAgICAgICAgICAiMC4wMDE4MTEsIDAuMDAxODE1LCAwLjAwMTgyMiwgMC4wMDE4MjQsIDAuMDAxODI1LCAwLjAwMTgyNSwgMC4wMDE4MjciLCBcCi0gICAgICAgICAgIjAuMDAxODE0LCAwLjAwMTgxOCwgMC4wMDE4MjUsIDAuMDAxODI3LCAwLjAwMTgyOCwgMC4wMDE4MjksIDAuMDAxODMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDM0MzksIDAuMDAzNDQ5LCAwLjAwMzQ2NCwgMC4wMDM0NjcsIDAuMDAzNDY5LCAwLjAwMzQ3LCAwLjAwMzQ3IiwgXAotICAgICAgICAgICIwLjAwMzQyNSwgMC4wMDM0MzQsIDAuMDAzNDQ5LCAwLjAwMzQ1MSwgMC4wMDM0NTMsIDAuMDAzNDU0LCAwLjAwMzQ1NCIsIFwKLSAgICAgICAgICAiMC4wMDM0MTUsIDAuMDAzNDI1LCAwLjAwMzQ0MSwgMC4wMDM0NDMsIDAuMDAzNDQ1LCAwLjAwMzQ0NiwgMC4wMDM0NDciLCBcCi0gICAgICAgICAgIjAuMDAzNDA5LCAwLjAwMzQyLCAwLjAwMzQzNywgMC4wMDM0NCwgMC4wMDM0NDIsIDAuMDAzNDQzLCAwLjAwMzQ0MyIsIFwKLSAgICAgICAgICAiMC4wMDM0MDgsIDAuMDAzNDE4LCAwLjAwMzQzNSwgMC4wMDM0MzgsIDAuMDAzNDQsIDAuMDAzNDQxLCAwLjAwMzQ0MSIsIFwKLSAgICAgICAgICAiMC4wMDM0MDUsIDAuMDAzNDE3LCAwLjAwMzQzNCwgMC4wMDM0MzgsIDAuMDAzNDQsIDAuMDAzNDQxLCAwLjAwMzQ0MiIsIFwKLSAgICAgICAgICAiMC4wMDM0MDQsIDAuMDAzNDE0LCAwLjAwMzQzMywgMC4wMDM0MzcsIDAuMDAzNDM5LCAwLjAwMzQ0MSwgMC4wMDM0NDEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDE2MiwgMC4wMDE2MjcsIDAuMDAxNjM1LCAwLjAwMTYzNywgMC4wMDE2MzYsIDAuMDAxNjM5LCAwLjAwMTYzOCIsIFwKLSAgICAgICAgICAiMC4wMDE1OTksIDAuMDAxNjA3LCAwLjAwMTYxOCwgMC4wMDE2MTksIDAuMDAxNjIxLCAwLjAwMTYyMSwgMC4wMDE2MjEiLCBcCi0gICAgICAgICAgIjAuMDAxNTg0LCAwLjAwMTU5MywgMC4wMDE2MDcsIDAuMDAxNjEsIDAuMDAxNjEyLCAwLjAwMTYxNCwgMC4wMDE2MTQiLCBcCi0gICAgICAgICAgIjAuMDAxNTg0LCAwLjAwMTU5NCwgMC4wMDE2MSwgMC4wMDE2MTQsIDAuMDAxNjE2LCAwLjAwMTYxOCwgMC4wMDE2MTkiLCBcCi0gICAgICAgICAgIjAuMDAxNTc2LCAwLjAwMTU4NiwgMC4wMDE2MDMsIDAuMDAxNjA3LCAwLjAwMTYwOSwgMC4wMDE2MTEsIDAuMDAxNjEzIiwgXAotICAgICAgICAgICIwLjAwMTU4MywgMC4wMDE1OTMsIDAuMDAxNjExLCAwLjAwMTYxNiwgMC4wMDE2MTgsIDAuMDAxNjIxLCAwLjAwMTYyMiIsIFwKLSAgICAgICAgICAiMC4wMDE1OTEsIDAuMDAxNjAyLCAwLjAwMTYyMywgMC4wMDE2MjgsIDAuMDAxNjMxLCAwLjAwMTYzNCwgMC4wMDE2MzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDMyNDcsIDAuMDAzMjU2LCAwLjAwMzI3MywgMC4wMDMyNzcsIDAuMDAzMjc5LCAwLjAwMzI4MSwgMC4wMDMyODEiLCBcCi0gICAgICAgICAgIjAuMDAzMjI3LCAwLjAwMzIzOSwgMC4wMDMyNTcsIDAuMDAzMjYxLCAwLjAwMzI2MywgMC4wMDMyNjUsIDAuMDAzMjY1IiwgXAotICAgICAgICAgICIwLjAwMzIxOSwgMC4wMDMyMzEsIDAuMDAzMjQ5LCAwLjAwMzI1MywgMC4wMDMyNTUsIDAuMDAzMjU3LCAwLjAwMzI1OCIsIFwKLSAgICAgICAgICAiMC4wMDMyMTQsIDAuMDAzMjI2LCAwLjAwMzI0NSwgMC4wMDMyNDksIDAuMDAzMjUyLCAwLjAwMzI1NCwgMC4wMDMyNTQiLCBcCi0gICAgICAgICAgIjAuMDAzMjEzLCAwLjAwMzIyNSwgMC4wMDMyNDQsIDAuMDAzMjQ4LCAwLjAwMzI1LCAwLjAwMzI1MiwgMC4wMDMyNTMiLCBcCi0gICAgICAgICAgIjAuMDAzMjA4LCAwLjAwMzIyMSwgMC4wMDMyNDEsIDAuMDAzMjQ2LCAwLjAwMzI0OSwgMC4wMDMyNTEsIDAuMDAzMjUyIiwgXAotICAgICAgICAgICIwLjAwMzIxLCAwLjAwMzIyMSwgMC4wMDMyNDIsIDAuMDAzMjQ3LCAwLjAwMzI0OSwgMC4wMDMyNTIsIDAuMDAzMjUzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxNDMxLCAwLjAwMTQzNywgMC4wMDE0NDQsIDAuMDAxNDQ2LCAwLjAwMTQ0NywgMC4wMDE0NDcsIDAuMDAxNDQ3IiwgXAotICAgICAgICAgICIwLjAwMTQxOCwgMC4wMDE0MjQsIDAuMDAxNDM0LCAwLjAwMTQzNSwgMC4wMDE0MzcsIDAuMDAxNDM5LCAwLjAwMTQzOCIsIFwKLSAgICAgICAgICAiMC4wMDE0MDIsIDAuMDAxNDEyLCAwLjAwMTQyNSwgMC4wMDE0MjcsIDAuMDAxNDI5LCAwLjAwMTQzLCAwLjAwMTQzMSIsIFwKLSAgICAgICAgICAiMC4wMDE0MDMsIDAuMDAxNDEyLCAwLjAwMTQyOCwgMC4wMDE0MzEsIDAuMDAxNDMzLCAwLjAwMTQzNSwgMC4wMDE0MzYiLCBcCi0gICAgICAgICAgIjAuMDAxMzksIDAuMDAxNCwgMC4wMDE0MTgsIDAuMDAxNDIxLCAwLjAwMTQyMywgMC4wMDE0MjYsIDAuMDAxNDI3IiwgXAotICAgICAgICAgICIwLjAwMTM5NCwgMC4wMDE0MDQsIDAuMDAxNDI0LCAwLjAwMTQyOSwgMC4wMDE0MzIsIDAuMDAxNDM0LCAwLjAwMTQzNiIsIFwKLSAgICAgICAgICAiMC4wMDE0MDUsIDAuMDAxNDE2LCAwLjAwMTQzNywgMC4wMDE0NDMsIDAuMDAxNDQ2LCAwLjAwMTQ0OSwgMC4wMDE0NSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzA1OCwgMC4wMDMwNjcsIDAuMDAzMDg3LCAwLjAwMzA5MiwgMC4wMDMwOTUsIDAuMDAzMDk3LCAwLjAwMzA5NyIsIFwKLSAgICAgICAgICAiMC4wMDMwNDIsIDAuMDAzMDUyLCAwLjAwMzA3MiwgMC4wMDMwNzYsIDAuMDAzMDc5LCAwLjAwMzA4MSwgMC4wMDMwODEiLCBcCi0gICAgICAgICAgIjAuMDAzMDI5LCAwLjAwMzA0MiwgMC4wMDMwNjMsIDAuMDAzMDY4LCAwLjAwMzA3LCAwLjAwMzA3MywgMC4wMDMwNzMiLCBcCi0gICAgICAgICAgIjAuMDAzMDI0LCAwLjAwMzAzNywgMC4wMDMwNTksIDAuMDAzMDY0LCAwLjAwMzA2NywgMC4wMDMwNjksIDAuMDAzMDciLCBcCi0gICAgICAgICAgIjAuMDAzMDI0LCAwLjAwMzAzNiwgMC4wMDMwNTcsIDAuMDAzMDYzLCAwLjAwMzA2NiwgMC4wMDMwNjgsIDAuMDAzMDY5IiwgXAotICAgICAgICAgICIwLjAwMzAyNiwgMC4wMDMwMzgsIDAuMDAzMDU5LCAwLjAwMzA2NCwgMC4wMDMwNjgsIDAuMDAzMDcsIDAuMDAzMDcxIiwgXAotICAgICAgICAgICIwLjAwMzAyNSwgMC4wMDMwMzYsIDAuMDAzMDU5LCAwLjAwMzA2NSwgMC4wMDMwNjksIDAuMDAzMDcyLCAwLjAwMzA3MyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkQiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTI2MiwgMC4wMDEyNjcsIDAuMDAxMjczLCAwLjAwMTI3NCwgMC4wMDEyNzUsIDAuMDAxMjc1LCAwLjAwMTI3NiIsIFwKLSAgICAgICAgICAiMC4wMDEyNDcsIDAuMDAxMjUzLCAwLjAwMTI2MSwgMC4wMDEyNjMsIDAuMDAxMjY0LCAwLjAwMTI2NSwgMC4wMDEyNjUiLCBcCi0gICAgICAgICAgIjAuMDAxMjMyLCAwLjAwMTI0LCAwLjAwMTI1MiwgMC4wMDEyNTUsIDAuMDAxMjU3LCAwLjAwMTI1NywgMC4wMDEyNTgiLCBcCi0gICAgICAgICAgIjAuMDAxMjI2LCAwLjAwMTIzNiwgMC4wMDEyNTEsIDAuMDAxMjU0LCAwLjAwMTI1NiwgMC4wMDEyNTcsIDAuMDAxMjU3IiwgXAotICAgICAgICAgICIwLjAwMTIyNiwgMC4wMDEyMzcsIDAuMDAxMjUzLCAwLjAwMTI1NywgMC4wMDEyNTksIDAuMDAxMjYsIDAuMDAxMjYxIiwgXAotICAgICAgICAgICIwLjAwMTIzNywgMC4wMDEyNDYsIDAuMDAxMjY0LCAwLjAwMTI2OSwgMC4wMDEyNzIsIDAuMDAxMjc0LCAwLjAwMTI3NCIsIFwKLSAgICAgICAgICAiMC4wMDEyMzksIDAuMDAxMjQ4LCAwLjAwMTI2NywgMC4wMDEyNzMsIDAuMDAxMjc1LCAwLjAwMTI3NywgMC4wMDEyNzciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI4NjQsIDAuMDAyODc3LCAwLjAwMjg5OCwgMC4wMDI5MDMsIDAuMDAyOTA2LCAwLjAwMjkwOCwgMC4wMDI5MDkiLCBcCi0gICAgICAgICAgIjAuMDAyODQyLCAwLjAwMjg1NSwgMC4wMDI4NzcsIDAuMDAyODgyLCAwLjAwMjg4NSwgMC4wMDI4ODcsIDAuMDAyODg4IiwgXAotICAgICAgICAgICIwLjAwMjgzMywgMC4wMDI4NDYsIDAuMDAyODY5LCAwLjAwMjg3NSwgMC4wMDI4NzgsIDAuMDAyODgsIDAuMDAyODgxIiwgXAotICAgICAgICAgICIwLjAwMjgzNCwgMC4wMDI4NDcsIDAuMDAyODcxLCAwLjAwMjg3NywgMC4wMDI4ODEsIDAuMDAyODg0LCAwLjAwMjg4NSIsIFwKLSAgICAgICAgICAiMC4wMDI4MzgsIDAuMDAyODUxLCAwLjAwMjg3NywgMC4wMDI4ODMsIDAuMDAyODg3LCAwLjAwMjg5MSwgMC4wMDI4OTIiLCBcCi0gICAgICAgICAgIjAuMDAyODY0LCAwLjAwMjg3MywgMC4wMDI4OTUsIDAuMDAyOTAxLCAwLjAwMjkwNSwgMC4wMDI5MDksIDAuMDAyOTEiLCBcCi0gICAgICAgICAgIjAuMDAyODc2LCAwLjAwMjg4NiwgMC4wMDI5MDksIDAuMDAyOTE2LCAwLjAwMjkyLCAwLjAwMjkyNCwgMC4wMDI5MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogU0RGRkhRWDQgKgotICogLS0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKFNERkZIUVg0KSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuNTk1Mjc4OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIGZmIChOMzAsUUJJTlQpIHsKLSAgICBuZXh0X3N0YXRlIDogIigoU0UgU0kpICsgKCFTRSBEKSkiOwotICAgIGNsb2NrZWRfb24gOiAiQ0siOwotICB9Ci0gIHBpbihDSykgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjE4ODA5OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYxODYwMzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2MTg4MDk7Ci0gICAgY2xvY2sgOiB0cnVlOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzQ1MywgMC4wMDM0MjgsIDAuMDAzNDEyLCAwLjAwMzQxNCwgMC4wMDM0MjUsIDAuMDAzNDQ1LCAwLjAwMzQ2NiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNzUyMSwgMC4wMDc0OTksIDAuMDA3NDk1LCAwLjAwNzUxLCAwLjAwNzUyOSwgMC4wMDc1NzIsIDAuMDA3NjA2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRCYhU0UmIVNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9TRV9FUV8wX0FOX1NJX0VRXzAgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4xMjE0MDQsIDAuMTMxNjg3LCAwLjE0NDMzOCwgMC4xNTY2NDIsIDAuMTY3NzU3LCAwLjE4MzI3NiwgMC4xOTUyNjEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjA5NTExNCwgMC4xMDUwNzYsIDAuMTE3NDksIDAuMTI5MjUsIDAuMTM5NzM3LCAwLjE1Mzg1MywgMC4xNjQ4MTgiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEQpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDg5NDI2ODsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA4OTE3MDM7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwODk0MjY4OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzU1MiwgMC4wMDM1MiwgMC4wMDM1MDMsIDAuMDAzNDk0LCAwLjAwMzQ4OSwgMC4wMDM0OTcsIDAuMDAzNTAyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA1Nzg5LCAwLjAwNTc3LCAwLjAwNTc1OSwgMC4wMDU3NTYsIDAuMDA1NzU1LCAwLjAwNTc2LCAwLjAwNTc2NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhU0UiOwotICAgICAgc2RmX2NvbmQgOiAiU0UgPT0gMSdiMCI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDQzNzUsIC0wLjAzMjUsIC0wLjAyNjI1LCAtMC4wMiwgLTAuMDEzNzUsIC0wLjAwMzc1LCAwLjAwNSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjA0Mzc1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDE1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDYxMjUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAyMTI1LCAtMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDczNzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjAzMzc1LCAtMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjA4LCAtMC4wNzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDQ2MjUsIC0wLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjA5NjI1LCAtMC4wODUsIC0wLjA3ODc1LCAtMC4wNzI1LCAtMC4wNjYyNSwgLTAuMDU2MjUsIC0wLjA1Mzc1IiwgXAotICAgICAgICAgICItMC4xMDUsIC0wLjEsIC0wLjA5Mzc1LCAtMC4wODEyNSwgLTAuMDc1LCAtMC4wNzEyNSwgLTAuMDYyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAsIDAuMDExMjUsIDAuMDE3NSwgMC4wMywgMC4wNDI1LCAwLjA1MjUsIDAuMDYxMjUiLCBcCi0gICAgICAgICAgIi0wLjAxMTI1LCAwLCAwLjAxMjUsIDAuMDI1LCAwLjAzMTI1LCAwLjA0NzUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIi0wLjAxNzUsIC0wLjAwNjI1LCAwLCAwLjAxMjUsIDAuMDI1LCAwLjAzNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAxODc1LCAtMC4wMDYyNSwgMC4wMDYyNSwgMC4wMTI1LCAwLjAyODc1LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMjUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLjAwNjI1LCAwLjAxNjI1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wNDYyNSwgLTAuMDM1LCAtMC4wMjI1LCAtMC4wMTYyNSwgLTAuMDAzNzUsIDAuMDA2MjUsIDAuMDE1IiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA0Mzc1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMTI1LCAtMC4wMDI1LCAwLjAwNjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhU0UiOwotICAgICAgc2RmX2NvbmQgOiAiU0UgPT0gMSdiMCI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY4NzUsIDAuMDU3NSwgMC4wNTEyNSwgMC4wNDUsIDAuMDM4NzUsIDAuMDI4NzUsIDAuMDIiLCBcCi0gICAgICAgICAgIjAuMDgsIDAuMDY4NzUsIDAuMDU2MjUsIDAuMDUsIDAuMDQzNzUsIDAuMDMzNzUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMDkyNSwgMC4wODEyNSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA0NjI1LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIjAuMDk4NzUsIDAuMDg3NSwgMC4wODEyNSwgMC4wNzUsIDAuMDY4NzUsIDAuMDU4NzUsIDAuMDUiLCBcCi0gICAgICAgICAgIjAuMTExMjUsIDAuMSwgMC4wODc1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNjUsIDAuMDYyNSIsIFwKLSAgICAgICAgICAiMC4xMjc1LCAwLjExNjI1LCAwLjEwMzc1LCAwLjA5NzUsIDAuMDkxMjUsIDAuMDgxMjUsIDAuMDcyNSIsIFwKLSAgICAgICAgICAiMC4xMzYyNSwgMC4xMjUsIDAuMTE4NzUsIDAuMTA2MjUsIDAuMSwgMC4wOTYyNSwgMC4wODc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQzNzUsIDAuMDMyNSwgMC4wMiwgMC4wMDc1LCAtMC4wMDUsIC0wLjAxNSwgLTAuMDMiLCBcCi0gICAgICAgICAgIjAuMDQ4NzUsIDAuMDQzNzUsIDAuMDMxMjUsIDAuMDE4NzUsIDAuMDA2MjUsIC0wLjAxLCAtMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4wNjEyNSwgMC4wNSwgMC4wMzc1LCAwLjAyNSwgMC4wMTI1LCAwLjAwMjUsIC0wLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMDczNzUsIDAuMDYyNSwgMC4wNSwgMC4wMzc1LCAwLjAyNSwgMC4wMDg3NSwgMCIsIFwKLSAgICAgICAgICAiMC4wOCwgMC4wNjg3NSwgMC4wNTYyNSwgMC4wNDM3NSwgMC4wMzEyNSwgMC4wMjEyNSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiMC4wOTYyNSwgMC4wODUsIDAuMDcyNSwgMC4wNiwgMC4wNDc1LCAwLjAzMTI1LCAwLjAyMjUiLCBcCi0gICAgICAgICAgIjAuMTA1LCAwLjA5Mzc1LCAwLjA4MTI1LCAwLjA2ODc1LCAwLjA1NjI1LCAwLjA0LCAwLjAzMTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihRKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDEuMDMxMjk7Ci0gICAgZnVuY3Rpb24gOiAiTjMwIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBub25fdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJpc2luZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwNDkyMiwgMC4xNzgxODUsIDAuMjUwNzkxLCAwLjMwMjY0LCAwLjM4NTY2OSwgMC40NTgyOTQsIDAuNTYyMDgzIiwgXAotICAgICAgICAgICIwLjExNTEzOCwgMC4xODgzOTUsIDAuMjYxLCAwLjMxMjg0OCwgMC4zOTU4NzksIDAuNDY4NTA0LCAwLjU3MjI2MyIsIFwKLSAgICAgICAgICAiMC4xMjc3MSwgMC4yMDA5NjUsIDAuMjczNTcyLCAwLjMyNTQyMiwgMC40MDg0NTQsIDAuNDgxMTIsIDAuNTg0ODMiLCBcCi0gICAgICAgICAgIjAuMTM5OTY2LCAwLjIxMzIyNywgMC4yODU4MDgsIDAuMzM3NzI4LCAwLjQyMDcxLCAwLjQ5MzMzNiwgMC41OTcxMDgiLCBcCi0gICAgICAgICAgIjAuMTUxMDQxLCAwLjIyNDMxNiwgMC4yOTY5MTQsIDAuMzQ4ODIyLCAwLjQzMTc5NSwgMC41MDQzNTgsIDAuNjA4MTYxIiwgXAotICAgICAgICAgICIwLjE2NjQ0NywgMC4yMzk3MjgsIDAuMzEyMzI2LCAwLjM2NDIzMiwgMC40NDcyMDQsIDAuNTE5ODIyLCAwLjYyMzU4MyIsIFwKLSAgICAgICAgICAiMC4xNzgyMSwgMC4yNTE0NTksIDAuMzI0MDY1LCAwLjM3NTkzNywgMC40NTg5NDMsIDAuNTMxNTYsIDAuNjM1MzM3Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDMwODU4LCAwLjE3ODg3MiwgMC4zMjk1NzEsIDAuNDM3NzU1LCAwLjYxMDc5LCAwLjc2MTAyNywgMC45Nzc5OTQiLCBcCi0gICAgICAgICAgIjAuMDMwODU5LCAwLjE3ODg3LCAwLjMyOTEyNiwgMC40MzcxODksIDAuNjEwNzg0LCAwLjc2MTA0LCAwLjk3Nzk1NyIsIFwKLSAgICAgICAgICAiMC4wMzA4MzgsIDAuMTc4ODgyLCAwLjMyOTEzOSwgMC40MzY3LCAwLjYxMDgwMSwgMC43NjIwMDQsIDAuOTc2OTAyIiwgXAotICAgICAgICAgICIwLjAzMDg0OCwgMC4xNzg4NzksIDAuMzI5MDI3LCAwLjQzODAwMiwgMC42MTA3OTMsIDAuNzYxMDM2LCAwLjk3Njc2NiIsIFwKLSAgICAgICAgICAiMC4wMzA4NDYsIDAuMTc4ODU1LCAwLjMyOTUyMiwgMC40MzgwMSwgMC42MTA3NzYsIDAuNzYxNjc2LCAwLjk3Njg0MiIsIFwKLSAgICAgICAgICAiMC4wMzA4NSwgMC4xNzg4NTcsIDAuMzI5MDM0LCAwLjQzNzk5MywgMC42MTA3NjQsIDAuNzYxNTgxLCAwLjk3NzA2NSIsIFwKLSAgICAgICAgICAiMC4wMzA5MDYsIDAuMTc4ODgzLCAwLjMyOTU0NSwgMC40Mzc4NDIsIDAuNjEwNjY2LCAwLjc2MDk0MywgMC45Nzc4MzciKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMjE0MDQsIDAuMTk1NjAxLCAwLjI2ODk4MiwgMC4zMjEzNzMsIDAuNDA1MjAzLCAwLjQ3ODU0MiwgMC41ODMzMzEiLCBcCi0gICAgICAgICAgIjAuMTMxNjg3LCAwLjIwNTg3NywgMC4yNzkyNzQsIDAuMzMxNjYsIDAuNDE1NDc2LCAwLjQ4ODg1MywgMC41OTM1OTkiLCBcCi0gICAgICAgICAgIjAuMTQ0MzM4LCAwLjIxODUyNSwgMC4yOTE5MjEsIDAuMzQ0MzE1LCAwLjQyODEyNCwgMC41MDE1MzMsIDAuNjA2MjQ2IiwgXAotICAgICAgICAgICIwLjE1NjY0MywgMC4yMzA4MzEsIDAuMzA0MjI4LCAwLjM1NjYxNCwgMC40NDA0MywgMC41MTM4MDIsIDAuNjE4NTU0IiwgXAotICAgICAgICAgICIwLjE2Nzc1OSwgMC4yNDE5NDMsIDAuMzE1MzMzLCAwLjM2NzcxNiwgMC40NTE1NzYsIDAuNTI0ODg5LCAwLjYyOTY3OSIsIFwKLSAgICAgICAgICAiMC4xODMyODcsIDAuMjU3NDcyLCAwLjMzMDg0MiwgMC4zODMyNTUsIDAuNDY3MDc0LCAwLjU0MDQyOCwgMC42NDUyMTgiLCBcCi0gICAgICAgICAgIjAuMTk1MjY2LCAwLjI2OTQ2MywgMC4zNDI4NTEsIDAuMzk1MjM1LCAwLjQ3OTA2MywgMC41NTI0MTgsIDAuNjU3MjA5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDMwMDg5LCAwLjE3NTk1NSwgMC4zMjQ4OTksIDAuNDMwMzk3LCAwLjYwMDc0OSwgMC43NTAzNDQsIDAuOTYxODg0IiwgXAotICAgICAgICAgICIwLjAzMDA3MywgMC4xNzU5NzcsIDAuMzI0MDAxLCAwLjQzMDc0NiwgMC42MDExNTcsIDAuNzQ5MTIsIDAuOTYxNjg5IiwgXAotICAgICAgICAgICIwLjAzMDA4NywgMC4xNzU5ODYsIDAuMzI0OTksIDAuNDMwNTg1LCAwLjYwMDk3NCwgMC43NDg3MTMsIDAuOTYxNjg0IiwgXAotICAgICAgICAgICIwLjAzMDA3MSwgMC4xNzU5NzYsIDAuMzI0MDQ1LCAwLjQzMDc1NCwgMC42MDExMjIsIDAuNzQ5MzU2LCAwLjk2MTc1IiwgXAotICAgICAgICAgICIwLjAzMDA5NSwgMC4xNzYyNCwgMC4zMjQ5NjUsIDAuNDMxMjQxLCAwLjYwMTUyNSwgMC43NDkxMDQsIDAuOTYwNzc2IiwgXAotICAgICAgICAgICIwLjAzMDA4OCwgMC4xNzU5NTIsIDAuMzI0NjYsIDAuNDMxMjI2LCAwLjYwMDM1NCwgMC43NDk5NTIsIDAuOTYzMjY0IiwgXAotICAgICAgICAgICIwLjAzMDA5MywgMC4xNzYyMzgsIDAuMzI0OTQ2LCAwLjQzMTIyOSwgMC42MDAyNDIsIDAuNzQ5NDIsIDAuOTYxNDA2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEwNTUyLCAwLjAxMDY0NCwgMC4wMTA2MywgMC4wMTA2MjUsIDAuMDEwNjEzLCAwLjAxMDYxLCAwLjAxMDYwNiIsIFwKLSAgICAgICAgICAiMC4wMTA1MjEsIDAuMDEwNjE0LCAwLjAxMDYwMSwgMC4wMTA1OTIsIDAuMDEwNTgyLCAwLjAxMDU3OSwgMC4wMTA1NzUiLCBcCi0gICAgICAgICAgIjAuMDEwNTAxLCAwLjAxMDU5NSwgMC4wMTA1ODEsIDAuMDEwNTczLCAwLjAxMDU2NiwgMC4wMTA1NjIsIDAuMDEwNTU3IiwgXAotICAgICAgICAgICIwLjAxMDQ5NiwgMC4wMTA1OTEsIDAuMDEwNTc5LCAwLjAxMDU3MywgMC4wMTA1NjMsIDAuMDEwNTU0LCAwLjAxMDU0OSIsIFwKLSAgICAgICAgICAiMC4wMTA1MTEsIDAuMDEwNjA5LCAwLjAxMDU5NywgMC4wMTA1ODksIDAuMDEwNTgsIDAuMDEwNTczLCAwLjAxMDU2OSIsIFwKLSAgICAgICAgICAiMC4wMTA1MjIsIDAuMDEwNjI1LCAwLjAxMDYxNCwgMC4wMTA2MSwgMC4wMTA1OTcsIDAuMDEwNTkzLCAwLjAxMDU4NyIsIFwKLSAgICAgICAgICAiMC4wMTA1NjIsIDAuMDEwNjYyLCAwLjAxMDY1NSwgMC4wMTA2NSwgMC4wMTA2MzUsIDAuMDEwNjM0LCAwLjAxMDYyNCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEwOTQ5LCAwLjAxMTEzOSwgMC4wMTExNjMsIDAuMDExMTcxLCAwLjAxMTE3OCwgMC4wMTExODEsIDAuMDExMTg0IiwgXAotICAgICAgICAgICIwLjAxMDkyMSwgMC4wMTExMSwgMC4wMTExMzUsIDAuMDExMTQyLCAwLjAxMTE0OSwgMC4wMTExNTMsIDAuMDExMTU2IiwgXAotICAgICAgICAgICIwLjAxMDkxOSwgMC4wMTExMDksIDAuMDExMTMzLCAwLjAxMTE0MSwgMC4wMTExNDgsIDAuMDExMTUxLCAwLjAxMTE1NSIsIFwKLSAgICAgICAgICAiMC4wMTA5MzYsIDAuMDExMTI1LCAwLjAxMTE0OSwgMC4wMTExNTcsIDAuMDExMTY0LCAwLjAxMTE2NywgMC4wMTExNzEiLCBcCi0gICAgICAgICAgIjAuMDEwOTc2LCAwLjAxMTE1OSwgMC4wMTExODMsIDAuMDExMTg5LCAwLjAxMTE5NiwgMC4wMTExOTksIDAuMDExMjAyIiwgXAotICAgICAgICAgICIwLjAxMTAwMiwgMC4wMTExODgsIDAuMDExMjEyLCAwLjAxMTIxOSwgMC4wMTEyMjYsIDAuMDExMjI5LCAwLjAxMTIzMiIsIFwKLSAgICAgICAgICAiMC4wMTEwNTQsIDAuMDExMjQzLCAwLjAxMTI2NywgMC4wMTEyNzQsIDAuMDExMjgxLCAwLjAxMTI4NCwgMC4wMTEyODciKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFNFKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE1OTg5MjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE1OTg2OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTU5ODkyOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNTQ1MSwgMC4wMDU0MjgsIDAuMDA1NDE3LCAwLjAwNTQyLCAwLjAwNTQzLCAwLjAwNTQ0OCwgMC4wMDU0NjYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDY3ODksIDAuMDA2NzM1LCAwLjAwNjcxOSwgMC4wMDY3MjYsIDAuMDA2NzQ3LCAwLjAwNjc4OSwgMC4wMDY4MzQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUQmU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1NJX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDM3NSwgLTAuMDI2MjUsIC0wLjAyLCAtMC4wMTM3NSwgLTAuMDA3NSwgMC4wMDI1LCAwLjAxMTI1IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDI1LCAwIiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMTUsIC0wLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjA2NzUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAyNzUsIC0wLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDgsIC0wLjA2ODc1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjA0LCAtMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDksIC0wLjA4NSwgLTAuMDc4NzUsIC0wLjA2NjI1LCAtMC4wNiwgLTAuMDU2MjUsIC0wLjA0NzUiLCBcCi0gICAgICAgICAgIi0wLjEwNSwgLTAuMDkzNzUsIC0wLjA4NzUsIC0wLjA4MTI1LCAtMC4wNzUsIC0wLjA2NSwgLTAuMDU2MjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjI1LCAwLjAxNzUsIDAuMDIzNzUsIDAuMDM2MjUsIDAuMDQ4NzUsIDAuMDU4NzUsIDAuMDY3NSIsIFwKLSAgICAgICAgICAiLTAuMDA1LCAwLjAwNjI1LCAwLjAxODc1LCAwLjAzMTI1LCAwLjAzNzUsIDAuMDUzNzUsIDAuMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDExMjUsIC0wLjAwNjI1LCAwLjAwNjI1LCAwLjAxODc1LCAwLjAyNSwgMC4wNDEyNSwgMC4wNSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxMjUsIDAsIDAuMDA2MjUsIDAuMDE4NzUsIDAuMDI4NzUsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAxODc1LCAtMC4wMTI1LCAwLCAwLjAwNjI1LCAwLjAyMjUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjA0LCAtMC4wMjg3NSwgLTAuMDIyNSwgLTAuMDEsIC0wLjAwMzc1LCAwLjAxMjUsIDAuMDIxMjUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgMC4wMDM3NSwgMC4wMTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIkQmIVNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMV9BTl9TSV9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAxMjUsIC0wLjAwMTI1LCAwLjAxMTI1LCAwLjAxNzUsIDAuMDMsIDAuMDQsIDAuMDU1IiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDEyNSwgMCwgMC4wMTI1LCAwLjAxODc1LCAwLjAzNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAyNSwgLTAuMDEyNSwgMCwgMC4wMDYyNSwgMC4wMjI1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIDAsIDAuMDEsIDAuMDI1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDQzNzUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAuMDAzNzUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDU4NzUsIC0wLjA1Mzc1LCAtMC4wNDEyNSwgLTAuMDI4NzUsIC0wLjAxNjI1LCAtMC4wMDYyNSwgMC4wMDI1IiwgXAotICAgICAgICAgICItMC4wNjc1LCAtMC4wNjI1LCAtMC4wNSwgLTAuMDM3NSwgLTAuMDI1LCAtMC4wMTUsIC0wLjAwNjI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDUsIC0wLjA0NSwgLTAuMDM4NzUsIC0wLjAyNjI1LCAtMC4wMjYyNSwgLTAuMDE2MjUsIC0wLjAwNzUiLCBcCi0gICAgICAgICAgIi0wLjA2MTI1LCAtMC4wNTYyNSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMjc1LCAtMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDczNzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjAzMzc1LCAtMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDgsIC0wLjA3NSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNDYyNSwgLTAuMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDg2MjUsIC0wLjA4MTI1LCAtMC4wNzUsIC0wLjA2ODc1LCAtMC4wNjI1LCAtMC4wNTI1LCAtMC4wNDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDk2MjUsIC0wLjA5MTI1LCAtMC4wODUsIC0wLjA3MjUsIC0wLjA2NjI1LCAtMC4wNjI1LCAtMC4wNTM3NSIsIFwKLSAgICAgICAgICAiLTAuMTA1LCAtMC4xLCAtMC4wODc1LCAtMC4wODEyNSwgLTAuMDc1LCAtMC4wNjUsIC0wLjA2MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEJlNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9TSV9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2MjUsIDAuMDUxMjUsIDAuMDQ1LCAwLjAzMjUsIDAuMDI2MjUsIDAuMDIyNSwgMC4wMTM3NSIsIFwKLSAgICAgICAgICAiMC4wNzM3NSwgMC4wNjI1LCAwLjA1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDI3NSwgMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMDg2MjUsIDAuMDc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDUsIDAuMDQsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMDk4NzUsIDAuMDg3NSwgMC4wNzUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNTI1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjEwNSwgMC4xLCAwLjA4NzUsIDAuMDgxMjUsIDAuMDc1LCAwLjA2NSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiMC4xMjEyNSwgMC4xMTYyNSwgMC4xMDM3NSwgMC4wOTc1LCAwLjA4NSwgMC4wODEyNSwgMC4wNzI1IiwgXAotICAgICAgICAgICIwLjEzNjI1LCAwLjEyNSwgMC4xMTI1LCAwLjEwNjI1LCAwLjEsIDAuMDksIDAuMDgxMjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzc1LCAwLjAyNjI1LCAwLjAxMzc1LCAwLjAwMTI1LCAtMC4wMTEyNSwgLTAuMDIxMjUsIC0wLjAzNjI1IiwgXAotICAgICAgICAgICIwLjA0ODc1LCAwLjAzNzUsIDAuMDI1LCAwLjAxMjUsIDAsIC0wLjAxNjI1LCAtMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMDU1LCAwLjA1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMTI1LCAtMC4wMDM3NSwgLTAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4wNjc1LCAwLjA1NjI1LCAwLjA0Mzc1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMDg3NSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMDgsIDAuMDY4NzUsIDAuMDU2MjUsIDAuMDQzNzUsIDAuMDMxMjUsIDAuMDE1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICIwLjA5NjI1LCAwLjA4NSwgMC4wNzI1LCAwLjA2LCAwLjA0NzUsIDAuMDMxMjUsIDAuMDIyNSIsIFwKLSAgICAgICAgICAiMC4xMDUsIDAuMDkzNzUsIDAuMDgxMjUsIDAuMDY4NzUsIDAuMDU2MjUsIDAuMDQsIDAuMDMxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIkQmIVNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMV9BTl9TSV9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1NjI1LCAwLjA0NSwgMC4wMzI1LCAwLjAyLCAwLjAwNzUsIC0wLjAwODc1LCAtMC4wMTc1IiwgXAotICAgICAgICAgICIwLjA2MTI1LCAwLjA1NjI1LCAwLjA0Mzc1LCAwLjAzMTI1LCAwLjAxODc1LCAwLjAwMjUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICIwLjA3Mzc1LCAwLjA2MjUsIDAuMDUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMTUsIDAiLCBcCi0gICAgICAgICAgIjAuMDg2MjUsIDAuMDc1LCAwLjA2MjUsIDAuMDUsIDAuMDM3NSwgMC4wMjEyNSwgMC4wMTI1IiwgXAotICAgICAgICAgICIwLjA5MjUsIDAuMDgxMjUsIDAuMDY4NzUsIDAuMDU2MjUsIDAuMDQzNzUsIDAuMDMzNzUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMTAyNSwgMC4wOTEyNSwgMC4wNzg3NSwgMC4wNjYyNSwgMC4wNiwgMC4wNDM3NSwgMC4wMjg3NSIsIFwKLSAgICAgICAgICAiMC4xMTEyNSwgMC4xLCAwLjA4NzUsIDAuMDc1LCAwLjA2MjUsIDAuMDUyNSwgMC4wMzc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDgxMjUsIDAuMDcsIDAuMDYzNzUsIDAuMDUxMjUsIDAuMDQ1LCAwLjAzNSwgMC4wMzI1IiwgXAotICAgICAgICAgICIwLjA5MjUsIDAuMDgxMjUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNDYyNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4xMDUsIDAuMDkzNzUsIDAuMDgxMjUsIDAuMDc1LCAwLjA2ODc1LCAwLjA1ODc1LCAwLjA1IiwgXAotICAgICAgICAgICIwLjExMTI1LCAwLjEsIDAuMDg3NSwgMC4wODEyNSwgMC4wNzUsIDAuMDY1LCAwLjA2MjUiLCBcCi0gICAgICAgICAgIjAuMTE3NSwgMC4xMDYyNSwgMC4xLCAwLjA4NzUsIDAuMDgxMjUsIDAuMDcxMjUsIDAuMDY4NzUiLCBcCi0gICAgICAgICAgIjAuMTI3NSwgMC4xMTYyNSwgMC4xMDM3NSwgMC4wOTc1LCAwLjA5MTI1LCAwLjA4MTI1LCAwLjA3ODc1IiwgXAotICAgICAgICAgICIwLjEzNjI1LCAwLjEyNSwgMC4xMTI1LCAwLjEwNjI1LCAwLjEsIDAuMDksIDAuMDgxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFNJKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA4ODgyMjQ7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwODg1MjQ7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwODg4MjI0OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzI5NiwgMC4wMDMyNjMsIDAuMDAzMjQ2LCAwLjAwMzIzOCwgMC4wMDMyMzQsIDAuMDAzMjQzLCAwLjAwMzI1MSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNjAyNiwgMC4wMDYwMDksIDAuMDA1OTk4LCAwLjAwNTk5NCwgMC4wMDU5OTIsIDAuMDA1OTk3LCAwLjAwNjAwMyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJTRSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wNDM3NSwgLTAuMDMyNSwgLTAuMDI2MjUsIC0wLjAyLCAtMC4wMTM3NSwgLTAuMDAzNzUsIDAuMDA1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDQzNzUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMDg3NSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA2MTI1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMjEyNSwgLTAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDczNzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjAzMzc1LCAtMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjA4LCAtMC4wNzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDQsIC0wLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjA5NjI1LCAtMC4wODUsIC0wLjA3ODc1LCAtMC4wNzI1LCAtMC4wNjYyNSwgLTAuMDU2MjUsIC0wLjA1Mzc1IiwgXAotICAgICAgICAgICItMC4xMDUsIC0wLjEsIC0wLjA4NzUsIC0wLjA4MTI1LCAtMC4wNzUsIC0wLjA3MTI1LCAtMC4wNjI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMCwgMC4wMDUsIDAuMDE3NSwgMC4wMywgMC4wMzYyNSwgMC4wNTI1LCAwLjA2MTI1IiwgXAotICAgICAgICAgICItMC4wMTEyNSwgMCwgMC4wMTI1LCAwLjAyNSwgMC4wMzEyNSwgMC4wNDc1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICItMC4wMTc1LCAtMC4wMTI1LCAwLCAwLjAxMjUsIDAuMDI1LCAwLjAzNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAxODc1LCAtMC4wMDYyNSwgMC4wMDYyNSwgMC4wMTI1LCAwLjAyODc1LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMjUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLjAwNjI1LCAwLjAxNjI1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wNDYyNSwgLTAuMDM1LCAtMC4wMjI1LCAtMC4wMTYyNSwgLTAuMDAzNzUsIDAuMDA2MjUsIDAuMDE1IiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA0Mzc1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMTI1LCAtMC4wMDI1LCAwLjAwNjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJTRSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjg3NSwgMC4wNTc1LCAwLjA1MTI1LCAwLjAzODc1LCAwLjAzMjUsIDAuMDIyNSwgMC4wMiIsIFwKLSAgICAgICAgICAiMC4wOCwgMC4wNjg3NSwgMC4wNTYyNSwgMC4wNSwgMC4wNDM3NSwgMC4wMzM3NSwgMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMDkyNSwgMC4wODEyNSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA0NjI1LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIjAuMDk4NzUsIDAuMDg3NSwgMC4wODEyNSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1MjUsIDAuMDUiLCBcCi0gICAgICAgICAgIjAuMTExMjUsIDAuMSwgMC4wODc1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNjUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIjAuMTI3NSwgMC4xMTYyNSwgMC4xMDM3NSwgMC4wOTc1LCAwLjA5MTI1LCAwLjA4MTI1LCAwLjA3MjUiLCBcCi0gICAgICAgICAgIjAuMTM2MjUsIDAuMTI1LCAwLjExODc1LCAwLjEwNjI1LCAwLjEsIDAuMDksIDAuMDg3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0Mzc1LCAwLjAzMjUsIDAuMDIsIDAuMDA3NSwgLTAuMDA1LCAtMC4wMTUsIC0wLjAzIiwgXAotICAgICAgICAgICIwLjA1NSwgMC4wNDM3NSwgMC4wMzEyNSwgMC4wMTg3NSwgMC4wMDYyNSwgLTAuMDEsIC0wLjAxODc1IiwgXAotICAgICAgICAgICIwLjA2MTI1LCAwLjA1LCAwLjAzNzUsIDAuMDI1LCAwLjAxODc1LCAwLjAwMjUsIC0wLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMDczNzUsIDAuMDYyNSwgMC4wNSwgMC4wMzc1LCAwLjAyNSwgMC4wMDg3NSwgMCIsIFwKLSAgICAgICAgICAiMC4wOCwgMC4wNjg3NSwgMC4wNTYyNSwgMC4wNDM3NSwgMC4wMzEyNSwgMC4wMjEyNSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiMC4wOTYyNSwgMC4wODUsIDAuMDcyNSwgMC4wNiwgMC4wNDc1LCAwLjAzMTI1LCAwLjAyMjUiLCBcCi0gICAgICAgICAgIjAuMTA1LCAwLjA5Mzc1LCAwLjA4MTI1LCAwLjA2ODc1LCAwLjA1NjI1LCAwLjA0LCAwLjAzMTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBTREZGTlNSWDEgKgotICogLS0tLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChTREZGTlNSWDEpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC40ODAzMDY7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgZmYgKE4zNSxRQklOVCkgewotICAgIG5leHRfc3RhdGUgOiAiKChTRSBTSSkgKyAoIVNFIEQpKSI7Ci0gICAgY2xvY2tlZF9vbiA6ICIoIUNLTikiOwotICAgIGNsZWFyIDogIighUk4pIjsKLSAgICBwcmVzZXQgOiAiKCFTTikiOwotICAgIGNsZWFyX3ByZXNldF92YXIxIDogSDsKLSAgICBjbGVhcl9wcmVzZXRfdmFyMiA6IEw7Ci0gIH0KLSAgcGluKENLTikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjMxNTM7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjMxNTE1OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDYzMTUzOwotICAgIGNsb2NrIDogdHJ1ZTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDY3MjYsIDAuMDA2Njk1LCAwLjAwNjY5NCwgMC4wMDY3MDEsIDAuMDA2NzMyLCAwLjAwNjc1NSwgMC4wMDY3ODkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDMxOTcsIDAuMDAzMTc0LCAwLjAwMzE2MywgMC4wMDMxNjQsIDAuMDAzMTc1LCAwLjAwMzE5NSwgMC4wMDMyMTYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0tOIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRCZSTiYhU0UmIVNJJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9STl9FUV8xX0FOX1NFX0VRXzBfQU5fU0lfRVFfMF9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMTA4NzUzLCAwLjExOTA1LCAwLjEzMTY2OCwgMC4xNDI4OSwgMC4xNTI4ODMsIDAuMTY2NzQ0LCAwLjE3NzI4OSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMTYzOTEzLCAwLjE3Mzc4OCwgMC4xODU2NjIsIDAuMTk2MjAxLCAwLjIwNTA5OCwgMC4yMTgwNjcsIDAuMjI3MzMiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEQpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY4ODYzNTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2ODcwNjk7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjg4NjM1OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzQ1NCwgMC4wMDM0MzcsIDAuMDAzNDI5LCAwLjAwMzQyMywgMC4wMDM0MiwgMC4wMDM0MjEsIDAuMDAzNDI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA0NzIsIDAuMDA0NzExLCAwLjAwNDcwNSwgMC4wMDQ3MDEsIDAuMDA0NzAxLCAwLjAwNDcsIDAuMDA0NzAzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfZmFsbGluZzsKLSAgICAgIHdoZW4gOiAiUk4mIVNFJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIlJOX0VRXzFfQU5fU0VfRVFfMF9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAxODc1LCAtMC4wMDc1LCAtMC4wMDEyNSwgMC4wMTEyNSwgMC4wMTc1LCAwLjAyNzUsIDAuMDM2MjUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAsIDAuMDA2MjUsIDAuMDE2MjUsIDAuMDI1IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIDAsIDAuMDEsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwMjUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA2MTI1LCAtMC4wNSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDE1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDcxMjUsIC0wLjA2NjI1LCAtMC4wNTM3NSwgLTAuMDQ3NSwgLTAuMDM1LCAtMC4wMjUsIC0wLjAxNjI1IiwgXAotICAgICAgICAgICItMC4wOCwgLTAuMDc1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjA0LCAtMC4wMzEyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjA2MjUsIC0wLjA1MTI1LCAtMC4wNDUsIC0wLjA0NSwgLTAuMDM4NzUsIC0wLjAzNSwgLTAuMDMyNSIsIFwKLSAgICAgICAgICAiLTAuMDY3NSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNSwgLTAuMDQ2MjUsIC0wLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjA4LCAtMC4wNzUsIC0wLjA2ODc1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDUyNSwgLTAuMDUiLCBcCi0gICAgICAgICAgIi0wLjA4NjI1LCAtMC4wODEyNSwgLTAuMDc1LCAtMC4wNjg3NSwgLTAuMDY4NzUsIC0wLjA2NSwgLTAuMDU2MjUiLCBcCi0gICAgICAgICAgIi0wLjA5ODc1LCAtMC4wOTM3NSwgLTAuMDg3NSwgLTAuMDgxMjUsIC0wLjA3NSwgLTAuMDcxMjUsIC0wLjA2ODc1IiwgXAotICAgICAgICAgICItMC4xMDg3NSwgLTAuMTAzNzUsIC0wLjA5NzUsIC0wLjA5NzUsIC0wLjA5MTI1LCAtMC4wODc1LCAtMC4wODUiLCBcCi0gICAgICAgICAgIi0wLjEyMzc1LCAtMC4xMTI1LCAtMC4xMTI1LCAtMC4xMDYyNSwgLTAuMSwgLTAuMDk2MjUsIC0wLjA5Mzc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX2ZhbGxpbmc7Ci0gICAgICB3aGVuIDogIlJOJiFTRSZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJSTl9FUV8xX0FOX1NFX0VRXzBfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xLCAwLjA4ODc1LCAwLjA3NjI1LCAwLjA2Mzc1LCAwLjA1NzUsIDAuMDQxMjUsIDAuMDMyNSIsIFwKLSAgICAgICAgICAiMC4xMDUsIDAuMSwgMC4wODEyNSwgMC4wNzUsIDAuMDYyNSwgMC4wNTI1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjExNzUsIDAuMTA2MjUsIDAuMDkzNzUsIDAuMDgxMjUsIDAuMDc1LCAwLjA2NSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiMC4xMywgMC4xMTg3NSwgMC4xMDYyNSwgMC4wOTM3NSwgMC4wODc1LCAwLjA3MTI1LCAwLjA2MjUiLCBcCi0gICAgICAgICAgIjAuMTM2MjUsIDAuMTMxMjUsIDAuMTE4NzUsIDAuMTA2MjUsIDAuMDkzNzUsIDAuMDgzNzUsIDAuMDc1IiwgXAotICAgICAgICAgICIwLjE1MjUsIDAuMTQ3NSwgMC4xMzUsIDAuMTIyNSwgMC4xMSwgMC4xLCAwLjA5MTI1IiwgXAotICAgICAgICAgICIwLjE2NzUsIDAuMTU2MjUsIDAuMTQzNzUsIDAuMTMxMjUsIDAuMTI1LCAwLjExNSwgMC4xMDYyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEyNSwgMC4xMTM3NSwgMC4xMDEyNSwgMC4wODg3NSwgMC4wODI1LCAwLjA3MjUsIDAuMDYzNzUiLCBcCi0gICAgICAgICAgIjAuMTMsIDAuMTE4NzUsIDAuMTA2MjUsIDAuMSwgMC4wODc1LCAwLjA3NzUsIDAuMDc1IiwgXAotICAgICAgICAgICIwLjE0MjUsIDAuMTMxMjUsIDAuMTE4NzUsIDAuMTA2MjUsIDAuMSwgMC4wOSwgMC4wODEyNSIsIFwKLSAgICAgICAgICAiMC4xNDg3NSwgMC4xNDM3NSwgMC4xMjUsIDAuMTE4NzUsIDAuMTEyNSwgMC4xMDI1LCAwLjA5Mzc1IiwgXAotICAgICAgICAgICIwLjE2MTI1LCAwLjE1LCAwLjEzNzUsIDAuMTI1LCAwLjExODc1LCAwLjEwODc1LCAwLjEiLCBcCi0gICAgICAgICAgIjAuMTc3NSwgMC4xNjYyNSwgMC4xNTM3NSwgMC4xNDEyNSwgMC4xMzUsIDAuMTI1LCAwLjExNjI1IiwgXAotICAgICAgICAgICIwLjE4NjI1LCAwLjE3NSwgMC4xNjI1LCAwLjE1LCAwLjE0Mzc1LCAwLjEzMzc1LCAwLjEzMTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihRKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMjYxODExOwotICAgIGZ1bmN0aW9uIDogIk4zNSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0tOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5vbl91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogZmFsbGluZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNzA0NjIsIDAuMTk1MTcyLCAwLjMzNDUsIDAuNDU3MDQyLCAwLjYyMTIyMywgMC45NDg0MjcsIDEuMTUyODgiLCBcCi0gICAgICAgICAgIjAuMTgwMzk1LCAwLjIwNTA1OCwgMC4zNDQ0MjcsIDAuNDY2OTY1LCAwLjYzMDUyOSwgMC45NTc2OTQsIDEuMTYyNTMiLCBcCi0gICAgICAgICAgIjAuMTkyMzI2LCAwLjIxNzAzNSwgMC4zNTY0MiwgMC40Nzg5NTIsIDAuNjQyNTA5LCAwLjk3MDM0NSwgMS4xNzQ3NiIsIFwKLSAgICAgICAgICAiMC4yMDI3OTIsIDAuMjI3NDY4LCAwLjM2NjksIDAuNDg5Njk3LCAwLjY1MjkwNywgMC45ODA0MTgsIDEuMTg1MzEiLCBcCi0gICAgICAgICAgIjAuMjExODEyLCAwLjIzNjU2OCwgMC4zNzU4NTYsIDAuNDk4MzcsIDAuNjYxOTMyLCAwLjk4OTc0LCAxLjE5Mzk0IiwgXAotICAgICAgICAgICIwLjIyNDQ5MywgMC4yNDkyNDcsIDAuMzg4NjYsIDAuNTExMTc2LCAwLjY3NDUwMSwgMS4wMDI1OCwgMS4yMDY5OSIsIFwKLSAgICAgICAgICAiMC4yMzM4OTMsIDAuMjU4NTY4LCAwLjM5NzkyMiwgMC41MjA3MzUsIDAuNjg0MDE0LCAxLjAxMTE3LCAxLjIxNjM4Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5NTY4LCAwLjE0NDExOSwgMC40Mjg1NTcsIDAuNjgwNDE0LCAxLjAxNjc3LCAxLjY4OTkyLCAyLjExNTA4IiwgXAotICAgICAgICAgICIwLjA5NTExNywgMC4xNDQxODYsIDAuNDI4NTk5LCAwLjY4MDQ2NywgMS4wMTY5MiwgMS42OTEwNCwgMi4xMTQ3NiIsIFwKLSAgICAgICAgICAiMC4wOTUwODUsIDAuMTQ0MTc3LCAwLjQyODU4NiwgMC42ODA0MjksIDEuMDE1NzIsIDEuNjg5OTEsIDIuMTE1MDEiLCBcCi0gICAgICAgICAgIjAuMDk1MjMxLCAwLjE0Mzg5LCAwLjQyODYwMSwgMC42ODE1MzksIDEuMDE2NzgsIDEuNjkzMTEsIDIuMTEwNSIsIFwKLSAgICAgICAgICAiMC4wOTUwMjQsIDAuMTQzNzUxLCAwLjQyODU5NCwgMC42ODA1MDgsIDEuMDE2NjcsIDEuNjkzNCwgMi4xMTQ3NSIsIFwKLSAgICAgICAgICAiMC4wOTUxMDQsIDAuMTQzODk2LCAwLjQyODU4NCwgMC42ODA0MDcsIDEuMDE1NzEsIDEuNjkwMywgMi4xMTUwNiIsIFwKLSAgICAgICAgICAiMC4wOTUxODksIDAuMTQzOTAzLCAwLjQyNzc2OCwgMC42ODE1MDUsIDEuMDE2NjUsIDEuNjg5MTMsIDIuMTE1MTEiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTUxODM2LCAwLjE3NjgwNywgMC4zMTcyMzMsIDAuNDQwNzQ0LCAwLjYwNTcyMSwgMC45MzU2MTgsIDEuMTQxNjgiLCBcCi0gICAgICAgICAgIjAuMTYxNzE1LCAwLjE4Njc1NSwgMC4zMjY5MzgsIDAuNDUwNjc4LCAwLjYxNTc0MiwgMC45NDUxNjQsIDEuMTUxNTYiLCBcCi0gICAgICAgICAgIjAuMTczNTc1LCAwLjE5ODUwMiwgMC4zMzg4MzUsIDAuNDYyNjQ1LCAwLjYyNzYyOSwgMC45NTczODIsIDEuMTYzNDEiLCBcCi0gICAgICAgICAgIjAuMTg0MTE5LCAwLjIwOTAwOSwgMC4zNDkzNzcsIDAuNDczMjg0LCAwLjYzODE3NCwgMC45Njc3OTcsIDEuMTczOTYiLCBcCi0gICAgICAgICAgIjAuMTkzMDE5LCAwLjIxNzk4MiwgMC4zNTgyNywgMC40ODE5MjYsIDAuNjQ3MDc1LCAwLjk3NjgwOSwgMS4xODI4NiIsIFwKLSAgICAgICAgICAiMC4yMDYwMTMsIDAuMjMwOTEsIDAuMzcxMjQyLCAwLjQ5NTIyOSwgMC42NjAwNDQsIDAuOTg5NzM0LCAxLjE5NTcyIiwgXAotICAgICAgICAgICIwLjIxNTI2NCwgMC4yNDAyOTYsIDAuMzgwNDgxLCAwLjUwNDQ3MiwgMC42NjkzMDIsIDAuOTk5MDgxLCAxLjIwNTEzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5Mzk3MSwgMC4xNDIwNywgMC40MjI4MzUsIDAuNjcwNDcyLCAxLjAwMzU3LCAxLjY2OTc1LCAyLjA4NTI4IiwgXAotICAgICAgICAgICIwLjA5MzgxNSwgMC4xNDI0NzIsIDAuNDIxODkyLCAwLjY3MTcwNSwgMS4wMDQ4NCwgMS42NjczNCwgMi4wODUzIiwgXAotICAgICAgICAgICIwLjA5MzUzNCwgMC4xNDE1OTIsIDAuNDIyNzcsIDAuNjcyMTUxLCAxLjAwNDg5LCAxLjY2OTg2LCAyLjA4NTE4IiwgXAotICAgICAgICAgICIwLjA5MzI4NywgMC4xNDE3NTEsIDAuNDIyNzM3LCAwLjY3MjMyMywgMS4wMDQ4NywgMS42Njk2NywgMi4wODUyMyIsIFwKLSAgICAgICAgICAiMC4wOTM5MDgsIDAuMTQyMDM4LCAwLjQyMjc0NywgMC42NzA0NjksIDEuMDA0OSwgMS42Njk3OCwgMi4wODUyNiIsIFwKLSAgICAgICAgICAiMC4wOTM3NzQsIDAuMTQxNzk0LCAwLjQyMjc1NSwgMC42NzAyOCwgMS4wMDQ5MSwgMS42Njk2LCAyLjA4MzQ0IiwgXAotICAgICAgICAgICIwLjA5NDEwNCwgMC4xNDIyODksIDAuNDIxOTc5LCAwLjY3MDUxOCwgMS4wMDQ4NSwgMS42Njk4OSwgMi4wODUzOCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogY2xlYXI7Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIwNDQ1NCwgMC4yMjkzMDcsIDAuMzY5NDU0LCAwLjQ5MzM0NSwgMC42NTgxMzcsIDAuOTg3NDIyLCAxLjE5Mzk2IiwgXAotICAgICAgICAgICIwLjIxNDMwMiwgMC4yMzkyNTIsIDAuMzc5MzE3LCAwLjUwMjkzOCwgMC42NjgwMTYsIDAuOTk3NDM2LCAxLjIwMzgiLCBcCi0gICAgICAgICAgIjAuMjI2MzA1LCAwLjI1MTI1NCwgMC4zOTEzMjYsIDAuNTE0ODk1LCAwLjY4MDAyMSwgMS4wMDk1OSwgMS4yMTU4MSIsIFwKLSAgICAgICAgICAiMC4yMzY5MTcsIDAuMjYxODY1LCAwLjQwMTk0MiwgMC41MjU1MDksIDAuNjkwNjM0LCAxLjAyMDEzLCAxLjIyNjQyIiwgXAotICAgICAgICAgICIwLjI0NTgxMSwgMC4yNzA2NjYsIDAuNDEwODI0LCAwLjUzNDcxNCwgMC42OTk1MDcsIDEuMDI5MjEsIDEuMjM1MTEiLCBcCi0gICAgICAgICAgIjAuMjU4NDk2LCAwLjI4MzQ0NywgMC40MjM2OTQsIDAuNTQ3NDgyLCAwLjcxMjAzMywgMS4wNDE5MSwgMS4yNDgwNCIsIFwKLSAgICAgICAgICAiMC4yNjgzNjcsIDAuMjkzMjM2LCAwLjQzMzM5NSwgMC41NTcwNjksIDAuNzIyMDg5LCAxLjA1MTg3LCAxLjI1Nzg2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5NDEwNCwgMC4xNDI0NDIsIDAuNDIxODgzLCAwLjY3MjQ5NSwgMS4wMDUxLCAxLjY2OTc3LCAyLjA4NjM5IiwgXAotICAgICAgICAgICIwLjA5NDAxMSwgMC4xNDI0MTcsIDAuNDIyODM5LCAwLjY3MjM4NSwgMS4wMDUxMSwgMS42Njk5NSwgMi4wODYxNSIsIFwKLSAgICAgICAgICAiMC4wOTQwMTYsIDAuMTQxNjg0LCAwLjQyMjg4NSwgMC42NzExMDQsIDEuMDA1MDcsIDEuNjcwMDIsIDIuMDg2MTciLCBcCi0gICAgICAgICAgIjAuMDk0MDI1LCAwLjE0MjQxNCwgMC40MjI4MywgMC42NzIzNzQsIDEuMDA1MDYsIDEuNjY5OSwgMi4wODYxNyIsIFwKLSAgICAgICAgICAiMC4wOTM0MDEsIDAuMTQyMzIzLCAwLjQyMjgzNywgMC42NzI0ODYsIDEuMDA1MSwgMS42NzA0MSwgMi4wODEwNiIsIFwKLSAgICAgICAgICAiMC4wOTM4ODQsIDAuMTQxNjc1LCAwLjQyMjk1MiwgMC42NzA5NzUsIDEuMDA0NDQsIDEuNjY5ODYsIDIuMDg2MzQiLCBcCi0gICAgICAgICAgIjAuMDk0MDU0LCAwLjE0MjEyNywgMC40MjI4NzEsIDAuNjcyMzk4LCAxLjAwNTA0LCAxLjY3MDU1LCAyLjA4NjA3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiBwcmVzZXQ7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE0NTQxNSwgMC4xNzAxNjEsIDAuMzA5NDE5LCAwLjQzMjMwOCwgMC41OTU5NDMsIDAuOTIzMzI3LCAxLjEyNzc4IiwgXAotICAgICAgICAgICIwLjE1NDY5NywgMC4xNzk0MzQsIDAuMzE4NTI2LCAwLjQ0MTYwNSwgMC42MDQ5MjEsIDAuOTMyNTc1LCAxLjEzNjk1IiwgXAotICAgICAgICAgICIwLjE2NTM0MSwgMC4xODk5NTYsIDAuMzI5NTgxLCAwLjQ1MTkyMiwgMC42MTU0LCAwLjk0MzEyNCwgMS4xNDc3OSIsIFwKLSAgICAgICAgICAiMC4xNzczMDEsIDAuMjAyMDIzLCAwLjM0MTI2OSwgMC40NjQxNjcsIDAuNjI3Njk1LCAwLjk1NTA3OSwgMS4xNTkxMyIsIFwKLSAgICAgICAgICAiMC4xODg3NTEsIDAuMjEzNDcsIDAuMzUyNzYsIDAuNDc1MzYxLCAwLjYzODg3NCwgMC45NjY1NDEsIDEuMTcxMjEiLCBcCi0gICAgICAgICAgIjAuMjA1OTMyLCAwLjIzMDY2MywgMC4zNjk2OCwgMC40OTI4MjYsIDAuNjU2NDA4LCAwLjk4MzI5NCwgMS4xODgzNSIsIFwKLSAgICAgICAgICAiMC4yMTg5MTEsIDAuMjQzNjM5LCAwLjM4MjY1NSwgMC41MDU3OTQsIDAuNjY5NDA3LCAwLjk5NjE5OCwgMS4yMDEzOSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTUyMDUsIDAuMTQzOTE2LCAwLjQyODc5NCwgMC42ODE0NzcsIDEuMDE4NjMsIDEuNjkzNTEsIDIuMTE1MDgiLCBcCi0gICAgICAgICAgIjAuMDk1MTUyLCAwLjE0NDAxOCwgMC40MjgyNzIsIDAuNjgxNDg5LCAxLjAxODYxLCAxLjY5MzQ4LCAyLjExNTExIiwgXAotICAgICAgICAgICIwLjA5NTA2MiwgMC4xNDQwMTYsIDAuNDI4Nzc0LCAwLjY4MTQ4NCwgMS4wMTg2NSwgMS42OTM0NywgMi4xMTUxOCIsIFwKLSAgICAgICAgICAiMC4wOTUwNDcsIDAuMTQzOTc3LCAwLjQyODgyNCwgMC42ODE0OSwgMS4wMTg2NSwgMS42OTM0NSwgMi4xMTQ4OCIsIFwKLSAgICAgICAgICAiMC4wOTUxMjEsIDAuMTQzOTE1LCAwLjQyODgzOSwgMC42ODE0ODUsIDEuMDE4NTgsIDEuNjkzNDUsIDIuMTE1MTYiLCBcCi0gICAgICAgICAgIjAuMDk0OTU0LCAwLjE0Mzk2MSwgMC40Mjg3OTIsIDAuNjgxNDgzLCAxLjAxODYsIDEuNjkzNDMsIDIuMTE1MDgiLCBcCi0gICAgICAgICAgIjAuMDk1MjQ1LCAwLjE0NDA4MSwgMC40MjgxNDIsIDAuNjgxNDkxLCAxLjAxODU5LCAxLjY5MzM0LCAyLjExNTAzIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE4NTEyNSwgMC4yMDk5OTksIDAuMzUwMjg3LCAwLjQ3NDI3LCAwLjYzOTEsIDAuOTY4NzIyLCAxLjE3NDk4IiwgXAotICAgICAgICAgICIwLjE5NDU2NywgMC4yMTk0NDIsIDAuMzU5NzQyLCAwLjQ4MzcxNiwgMC42NDg1NTEsIDAuOTc4MTU4LCAxLjE4NDQ0IiwgXAotICAgICAgICAgICIwLjIwNTU0NSwgMC4yMzA0MjQsIDAuMzcwNzQ3LCAwLjQ5NDY4NiwgMC42NTk1MzksIDAuOTg5Mjk3LCAxLjE5NTUiLCBcCi0gICAgICAgICAgIjAuMjE2MTcsIDAuMjQxMSwgMC4zODEzOTQsIDAuNTA1MzczLCAwLjY3MDIwMiwgMC45OTk3NjIsIDEuMjA2MDgiLCBcCi0gICAgICAgICAgIjAuMjI2Nzc0LCAwLjI1MTcyOSwgMC4zOTE5NSwgMC41MTU5NTksIDAuNjgwNzI5LCAxLjAxMDUsIDEuMjE2NjUiLCBcCi0gICAgICAgICAgIjAuMjQzMjgxLCAwLjI2ODEzOSwgMC40MDg0NzIsIDAuNTMyNDMzLCAwLjY5NzI4NCwgMS4wMjcwNSwgMS4yMzMwNSIsIFwKLSAgICAgICAgICAiMC4yNTcwOTMsIDAuMjgxOTUyLCAwLjQyMjI4OSwgMC41NDYyNSwgMC43MTExMDMsIDEuMDQwODYsIDEuMjQ3MDQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk0MDY5LCAwLjE0MjI4MywgMC40MjI4MzgsIDAuNjcyNTQsIDEuMDA1MDgsIDEuNjY5NzEsIDIuMDg2MjkiLCBcCi0gICAgICAgICAgIjAuMDkzOTc5LCAwLjE0MTU0LCAwLjQyMjAzNCwgMC42NzI1MjQsIDEuMDA1MDYsIDEuNjY5NzIsIDIuMDg2MyIsIFwKLSAgICAgICAgICAiMC4wOTQxMTcsIDAuMTQyNDI3LCAwLjQyMjg0NSwgMC42NzI0OSwgMS4wMDUxLCAxLjY3MDM4LCAyLjA4NDMyIiwgXAotICAgICAgICAgICIwLjA5NDA2LCAwLjE0MjQ1MSwgMC40MjI3ODMsIDAuNjcyNDM1LCAxLjAwNTA0LCAxLjY2OTc0LCAyLjA4NjIyIiwgXAotICAgICAgICAgICIwLjA5NDAyMSwgMC4xNDIxOTcsIDAuNDIyNzk2LCAwLjY3MjMyLCAxLjAwNDkxLCAxLjY3MDE3LCAyLjA4NjIzIiwgXAotICAgICAgICAgICIwLjA5NDAxMSwgMC4xNDE4NzMsIDAuNDIxOTMxLCAwLjY3MjQ5MywgMS4wMDUwOSwgMS42NzAzOCwgMi4wODE4OCIsIFwKLSAgICAgICAgICAiMC4wOTQwNjQsIDAuMTQyMzczLCAwLjQyMTg4NiwgMC42NzI0OTIsIDEuMDA1MSwgMS42NzAzOCwgMi4wODUyNCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0NjkxLCAwLjAwNDY5OSwgMC4wMDQ3MTEsIDAuMDA0NzEyLCAwLjAwNDcxNCwgMC4wMDQ3MTUsIDAuMDA0NzE2IiwgXAotICAgICAgICAgICIwLjAwNDY3OCwgMC4wMDQ2ODYsIDAuMDA0Njk3LCAwLjAwNDY5OSwgMC4wMDQ3MDEsIDAuMDA0NzAyLCAwLjAwNDcwMyIsIFwKLSAgICAgICAgICAiMC4wMDQ2ODEsIDAuMDA0Njg5LCAwLjAwNDcwMSwgMC4wMDQ3MDMsIDAuMDA0NzA1LCAwLjAwNDcwNSwgMC4wMDQ3MDYiLCBcCi0gICAgICAgICAgIjAuMDA0Njg3LCAwLjAwNDY5NSwgMC4wMDQ3MDYsIDAuMDA0NzA5LCAwLjAwNDcxLCAwLjAwNDcxMiwgMC4wMDQ3MTEiLCBcCi0gICAgICAgICAgIjAuMDA0NjkzLCAwLjAwNDcwMSwgMC4wMDQ3MTMsIDAuMDA0NzE1LCAwLjAwNDcxNiwgMC4wMDQ3MTgsIDAuMDA0NzE3IiwgXAotICAgICAgICAgICIwLjAwNDcxMywgMC4wMDQ3MjEsIDAuMDA0NzMyLCAwLjAwNDczNCwgMC4wMDQ3MzYsIDAuMDA0NzM2LCAwLjAwNDczNyIsIFwKLSAgICAgICAgICAiMC4wMDQ3MTYsIDAuMDA0NzI0LCAwLjAwNDczNiwgMC4wMDQ3MzgsIDAuMDA0NzM5LCAwLjAwNDc0MSwgMC4wMDQ3NCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDIyNywgMC4wMDQyMzUsIDAuMDA0MjQ2LCAwLjAwNDI0OSwgMC4wMDQyNSwgMC4wMDQyNTEsIDAuMDA0MjUxIiwgXAotICAgICAgICAgICIwLjAwNDIxMSwgMC4wMDQyMTksIDAuMDA0MjMsIDAuMDA0MjM1LCAwLjAwNDIzNCwgMC4wMDQyMzUsIDAuMDA0MjM1IiwgXAotICAgICAgICAgICIwLjAwNDIwNywgMC4wMDQyMTUsIDAuMDA0MjI3LCAwLjAwNDIyOCwgMC4wMDQyMywgMC4wMDQyMzEsIDAuMDA0MjMyIiwgXAotICAgICAgICAgICIwLjAwNDIwNiwgMC4wMDQyMTQsIDAuMDA0MjI1LCAwLjAwNDIyNywgMC4wMDQyMjksIDAuMDA0MjMsIDAuMDA0MjMyIiwgXAotICAgICAgICAgICIwLjAwNDIwNSwgMC4wMDQyMTMsIDAuMDA0MjI1LCAwLjAwNDIyNiwgMC4wMDQyMjgsIDAuMDA0MjI5LCAwLjAwNDIyOSIsIFwKLSAgICAgICAgICAiMC4wMDQyMTYsIDAuMDA0MjI0LCAwLjAwNDIzNSwgMC4wMDQyMzcsIDAuMDA0MjM4LCAwLjAwNDIzOSwgMC4wMDQyNCIsIFwKLSAgICAgICAgICAiMC4wMDQyMjcsIDAuMDA0MjM0LCAwLjAwNDI0NiwgMC4wMDQyNDgsIDAuMDA0MjUsIDAuMDA0MjUxLCAwLjAwNDI1MSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDU0ODIsIDAuMDA1NDg5LCAwLjAwNTQ4NiwgMC4wMDU0ODMsIDAuMDA1NDc3LCAwLjAwNTQ3NCwgMC4wMDU0NzQiLCBcCi0gICAgICAgICAgIjAuMDA1NDcxLCAwLjAwNTQ3NywgMC4wMDU0NzUsIDAuMDA1NDcxLCAwLjAwNTQ2OCwgMC4wMDU0NjEsIDAuMDA1NDYyIiwgXAotICAgICAgICAgICIwLjAwNTQ2OCwgMC4wMDU0NzQsIDAuMDA1NDcyLCAwLjAwNTQ2OSwgMC4wMDU0NjYsIDAuMDA1NDYxLCAwLjAwNTQ1OSIsIFwKLSAgICAgICAgICAiMC4wMDU0NjgsIDAuMDA1NDc0LCAwLjAwNTQ3MiwgMC4wMDU0NjksIDAuMDA1NDY2LCAwLjAwNTQ1OCwgMC4wMDU0NTkiLCBcCi0gICAgICAgICAgIjAuMDA1NDczLCAwLjAwNTQ3OSwgMC4wMDU0NzcsIDAuMDA1NDc0LCAwLjAwNTQ2OCwgMC4wMDU0NjMsIDAuMDA1NDYyIiwgXAotICAgICAgICAgICIwLjAwNTQ3OSwgMC4wMDU0ODUsIDAuMDA1NDg0LCAwLjAwNTQ3OSwgMC4wMDU0NzQsIDAuMDA1NDcyLCAwLjAwNTQ3IiwgXAotICAgICAgICAgICIwLjAwNTQ4MywgMC4wMDU0OSwgMC4wMDU0ODksIDAuMDA1NDg0LCAwLjAwNTQ3OSwgMC4wMDU0NzUsIDAuMDA1NDczIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3Bvd2VyKHNjYWxhcikgewotICAgICAgICB2YWx1ZXMoIjAiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1MTU0LCAwLjAwNTE2MSwgMC4wMDUxNzEsIDAuMDA1MTc0LCAwLjAwNTE3NCwgMC4wMDUxNzUsIDAuMDA1MTc3IiwgXAotICAgICAgICAgICIwLjAwNTE0LCAwLjAwNTE0NywgMC4wMDUxNTcsIDAuMDA1MTU5LCAwLjAwNTE2LCAwLjAwNTE2MSwgMC4wMDUxNjMiLCBcCi0gICAgICAgICAgIjAuMDA1MTM0LCAwLjAwNTE0MSwgMC4wMDUxNTIsIDAuMDA1MTU0LCAwLjAwNTE1NSwgMC4wMDUxNTYsIDAuMDA1MTU3IiwgXAotICAgICAgICAgICIwLjAwNTEzLCAwLjAwNTEzOCwgMC4wMDUxNDgsIDAuMDA1MTUsIDAuMDA1MTUxLCAwLjAwNTE1MiwgMC4wMDUxNTIiLCBcCi0gICAgICAgICAgIjAuMDA1MTMsIDAuMDA1MTM4LCAwLjAwNTE0OCwgMC4wMDUxNSwgMC4wMDUxNTEsIDAuMDA1MTUyLCAwLjAwNTE1MyIsIFwKLSAgICAgICAgICAiMC4wMDUxMzIsIDAuMDA1MTQsIDAuMDA1MTUxLCAwLjAwNTE1MiwgMC4wMDUxNTMsIDAuMDA1MTU1LCAwLjAwNTE1NSIsIFwKLSAgICAgICAgICAiMC4wMDUxNDMsIDAuMDA1MTUxLCAwLjAwNTE2MSwgMC4wMDUxNjQsIDAuMDA1MTY1LCAwLjAwNTE2NiwgMC4wMDUxNjYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQwMTgsIDAuMDA0MDI2LCAwLjAwNDAzNywgMC4wMDQwMzksIDAuMDA0MDQxLCAwLjAwNDA0MywgMC4wMDQwNDIiLCBcCi0gICAgICAgICAgIjAuMDA0LCAwLjAwNDAwOCwgMC4wMDQwMiwgMC4wMDQwMjIsIDAuMDA0MDIzLCAwLjAwNDAyNCwgMC4wMDQwMjQiLCBcCi0gICAgICAgICAgIjAuMDAzOTkxLCAwLjAwMzk5OSwgMC4wMDQwMTEsIDAuMDA0MDE1LCAwLjAwNDAxNCwgMC4wMDQwMTUsIDAuMDA0MDE1IiwgXAotICAgICAgICAgICIwLjAwMzk4NSwgMC4wMDM5OTMsIDAuMDA0MDA1LCAwLjAwNDAwOCwgMC4wMDQwMSwgMC4wMDQwMTEsIDAuMDA0MDExIiwgXAotICAgICAgICAgICIwLjAwMzk4LCAwLjAwMzk4OSwgMC4wMDQwMDIsIDAuMDA0MDAyLCAwLjAwNDAwMywgMC4wMDQwMDYsIDAuMDA0MDA2IiwgXAotICAgICAgICAgICIwLjAwMzk3NCwgMC4wMDM5ODIsIDAuMDAzOTkzLCAwLjAwMzk5OCwgMC4wMDM5OTcsIDAuMDAzOTk4LCAwLjAwMzk5OCIsIFwKLSAgICAgICAgICAiMC4wMDM5NzEsIDAuMDAzOTgsIDAuMDAzOTkxLCAwLjAwMzk5NiwgMC4wMDM5OTUsIDAuMDAzOTk2LCAwLjAwMzk5NiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUU4pICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4yNjMxNjM7Ci0gICAgZnVuY3Rpb24gOiAiUUJJTlQiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBub25fdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGZhbGxpbmdfZWRnZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTYzOTEzLCAwLjE4ODQyNCwgMC4zMjc0MjMsIDAuNDUwMTIsIDAuNjEzNjY3LCAwLjk0MDgzOCwgMS4xNDUyOCIsIFwKLSAgICAgICAgICAiMC4xNzM3ODgsIDAuMTk4MzAyLCAwLjMzNzI4NywgMC40NTk5NSwgMC42MjM1NzEsIDAuOTUwNDY4LCAxLjE1NTE2IiwgXAotICAgICAgICAgICIwLjE4NTY2MiwgMC4yMTAxNjksIDAuMzQ5MTYzLCAwLjQ3MTgzLCAwLjYzNTQ1OCwgMC45NjI2MDksIDEuMTY3MDEiLCBcCi0gICAgICAgICAgIjAuMTk2MjAxLCAwLjIyMDcxMSwgMC4zNTk3MTksIDAuNDgyNDMzLCAwLjY0NjAxMSwgMC45NzMwMzEsIDEuMTc3NTYiLCBcCi0gICAgICAgICAgIjAuMjA1MTAyLCAwLjIyOTYxMywgMC4zNjg2MDUsIDAuNDkxMzExLCAwLjY1NDkwMiwgMC45ODIwMzUsIDEuMTg2NDYiLCBcCi0gICAgICAgICAgIjAuMjE4MDc0LCAwLjI0MjU4OSwgMC4zODE1OCwgMC41MDQzNDIsIDAuNjY3ODc4LCAwLjk5NDk2OSwgMS4xOTkzNiIsIFwKLSAgICAgICAgICAiMC4yMjczNCwgMC4yNTE4NTcsIDAuMzkwODQ3LCAwLjUxMzU4NSwgMC42NzcxMzIsIDEuMDA0MywgMS4yMDg3MyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTA4ODUsIDAuMTQxMjc3LCAwLjQyNzksIDAuNjc5NTQyLCAxLjAxNzU4LCAxLjY5MjYsIDIuMTE0MTgiLCBcCi0gICAgICAgICAgIjAuMDkwNzg4LCAwLjE0MTMzOSwgMC40MjcyNzksIDAuNjgwNDUsIDEuMDE4MTUsIDEuNjkwMjEsIDIuMTE0MTYiLCBcCi0gICAgICAgICAgIjAuMDkwNzkxLCAwLjE0MDk4OSwgMC40Mjc2NDEsIDAuNjgwODMxLCAxLjAxODE2LCAxLjY5MjcxLCAyLjExNDA5IiwgXAotICAgICAgICAgICIwLjA5MDc5MSwgMC4xNDA5ODEsIDAuNDI3NjMzLCAwLjY4MDk0NywgMS4wMTgxNSwgMS42OTI2OCwgMi4xMTQxMiIsIFwKLSAgICAgICAgICAiMC4wOTA4ODgsIDAuMTQxMjc3LCAwLjQyNzY0MywgMC42Nzk1NDMsIDEuMDE4MTYsIDEuNjkyNjYsIDIuMTE0MTIiLCBcCi0gICAgICAgICAgIjAuMDkwOTQ3LCAwLjE0MTE0MSwgMC40Mjc1OTgsIDAuNjc5NDE5LCAxLjAxODE2LCAxLjY5MjU1LCAyLjExMzA2IiwgXAotICAgICAgICAgICIwLjA5MDkwNywgMC4xNDExNDYsIDAuNDI3MzE5LCAwLjY3OTQzNSwgMS4wMTgxMiwgMS42OTI3MiwgMi4xMTQyNSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xODQ0MzEsIDAuMjA5MTU4LCAwLjM0OTI5MSwgMC40NzI5MzMsIDAuNjM3OTQ3LCAwLjk2NzcwOSwgMS4xNzM3OSIsIFwKLSAgICAgICAgICAiMC4xOTQzOTUsIDAuMjE5MTE5LCAwLjM1OTI1MywgMC40ODI5LCAwLjY0Nzg0OSwgMC45Nzc1NzksIDEuMTgzNjIiLCBcCi0gICAgICAgICAgIjAuMjA2MzEzLCAwLjIzMTA4MSwgMC4zNzEyMjEsIDAuNDk0ODY0LCAwLjY1OTgsIDAuOTg5NjM5LCAxLjE5NTciLCBcCi0gICAgICAgICAgIjAuMjE2Nzk0LCAwLjI0MTUyLCAwLjM4MTY3MSwgMC41MDUzNDEsIDAuNjcwMjQsIDAuOTk5OTM2LCAxLjIwNjE5IiwgXAotICAgICAgICAgICIwLjIyNTc5MywgMC4yNTA1MjIsIDAuMzkwNjUyLCAwLjUxNDMsIDAuNjc5MjMxLCAxLjAwOTA1LCAxLjIxNTAyIiwgXAotICAgICAgICAgICIwLjIzODQ5LCAwLjI2MzI4MiwgMC40MDM0MjgsIDAuNTI3MDY2LCAwLjY5MTc5NywgMS4wMjE4NSwgMS4yMjc5MSIsIFwKLSAgICAgICAgICAiMC4yNDc4NjgsIDAuMjcyNTk0LCAwLjQxMjc0NywgMC41MzY0MDQsIDAuNzAxMzE0LCAxLjAzMTA3LCAxLjIzNzI2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4OTY1OCwgMC4xMzkxNjEsIDAuNDIxMzI0LCAwLjY2OTgxNCwgMS4wMDEzMywgMS42NjQ0OSwgMi4wODM0MiIsIFwKLSAgICAgICAgICAiMC4wODk2NzcsIDAuMTM5MTQyLCAwLjQyMTMxNSwgMC42Njk4NDMsIDEuMDAxNDQsIDEuNjY1NDksIDIuMDgyNzYiLCBcCi0gICAgICAgICAgIjAuMDg5NjgsIDAuMTM5MTQyLCAwLjQyMTMyMywgMC42Njk4MTksIDAuOTk5NTAxLCAxLjY2NDQ4LCAyLjA4MzMxIiwgXAotICAgICAgICAgICIwLjA4OTY3LCAwLjEzOTA1NSwgMC40MjEzNjgsIDAuNjcwNzQyLCAxLjAwMTM2LCAxLjY2NzM1LCAyLjA3OTA4IiwgXAotICAgICAgICAgICIwLjA4OTY4MiwgMC4xMzg5OSwgMC40MjEzMTYsIDAuNjY5ODYzLCAxLjAwMTMzLCAxLjY2Nzk2LCAyLjA4MjciLCBcCi0gICAgICAgICAgIjAuMDg5NjkxLCAwLjEzOTA2MSwgMC40MjEzNDQsIDAuNjY5ODA0LCAwLjk5OTY5NywgMS42NjQ3NSwgMi4wODMzOSIsIFwKLSAgICAgICAgICAiMC4wODk2NzMsIDAuMTM5MDU2LCAwLjQyMDUwOCwgMC42NzA2NzQsIDEuMDAxMywgMS42NjM0LCAyLjA4MzQ5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiBwcmVzZXQ7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIxNjU3MSwgMC4yNDEwNjUsIDAuMzgwMDc3LCAwLjUwMjc4NywgMC42NjYzMzcsIDAuOTkzMTc3LCAxLjE5Nzk5IiwgXAotICAgICAgICAgICIwLjIyNjQ1NiwgMC4yNTA5NzQsIDAuMzg5OTc2LCAwLjUxMjUzNCwgMC42NzYyMjMsIDEuMDAzMTgsIDEuMjA3ODQiLCBcCi0gICAgICAgICAgIjAuMjM4NDU4LCAwLjI2Mjk3NiwgMC40MDE5NzcsIDAuNTI0NTI0LCAwLjY4ODIyNSwgMS4wMTUyMywgMS4yMTk4NCIsIFwKLSAgICAgICAgICAiMC4yNDkwNzEsIDAuMjczNTg5LCAwLjQxMjU4OSwgMC41MzUxMzcsIDAuNjk4ODM3LCAxLjAyNTc4LCAxLjIzMDQ2IiwgXAotICAgICAgICAgICIwLjI1NzkzMiwgMC4yODI0MjUsIDAuNDIxNDM2LCAwLjU0NDE0NywgMC43MDc2OTgsIDEuMDM0ODUsIDEuMjM5MTciLCBcCi0gICAgICAgICAgIjAuMjcwNjQsIDAuMjk1MTU3LCAwLjQzNDEyMywgMC41NTY4OSwgMC43MjAyNzIsIDEuMDQ3NTQsIDEuMjUyMDciLCBcCi0gICAgICAgICAgIjAuMjgwNTYsIDAuMzA1MDU2LCAwLjQ0NDA2OCwgMC41NjY3NDksIDAuNzMwMzE5LCAxLjA1NzUzLCAxLjI2MTkzIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5MDk4NSwgMC4xNDEzMTQsIDAuNDI3MjUzLCAwLjY4MDk5LCAxLjAxODI2LCAxLjY5MjYxLCAyLjExNDczIiwgXAotICAgICAgICAgICIwLjA5MDkxOSwgMC4xNDEzMDgsIDAuNDI3NjUzLCAwLjY4MDg4NCwgMS4wMTgyOSwgMS42OTI3LCAyLjExNDYiLCBcCi0gICAgICAgICAgIjAuMDkwOTI1LCAwLjE0MTAyMywgMC40Mjc5MzIsIDAuNjc5Nzg4LCAxLjAxODIzLCAxLjY5MjY4LCAyLjExNDYxIiwgXAotICAgICAgICAgICIwLjA5MDkxOSwgMC4xNDEzMDcsIDAuNDI3Njc3LCAwLjY4MDg3NSwgMS4wMTgyMywgMS42OTI2NywgMi4xMTQ2MSIsIFwKLSAgICAgICAgICAiMC4wOTA4MzUsIDAuMTQxMTQ4LCAwLjQyNzcyNSwgMC42ODA5ODIsIDEuMDE4MjYsIDEuNjkyOTMsIDIuMTA5ODkiLCBcCi0gICAgICAgICAgIjAuMDkwOTEsIDAuMTQxMDI0LCAwLjQyNzkxNSwgMC42Nzk1NDksIDEuMDE3ODYsIDEuNjkyNjQsIDIuMTE0NjkiLCBcCi0gICAgICAgICAgIjAuMDkwOTkzLCAwLjE0MTI4LCAwLjQyNzkxOSwgMC42ODA4OTEsIDEuMDE4MjEsIDEuNjkzMDEsIDIuMTE0NTUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiU04iOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGNsZWFyOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xOTcyNTksIDAuMjIxNzYxLCAwLjM2MDc3NSwgMC40ODM0ODgsIDAuNjQ3MDI2LCAwLjk3NDA4OCwgMS4xNzg2NiIsIFwKLSAgICAgICAgICAiMC4yMDY3MDcsIDAuMjMxMjA1LCAwLjM3MDIyMSwgMC40OTI5MzUsIDAuNjU2NDc4LCAwLjk4MzU1MywgMS4xODgxMyIsIFwKLSAgICAgICAgICAiMC4yMTc2NjEsIDAuMjQyMTU3LCAwLjM4MTE0NCwgMC41MDM4ODIsIDAuNjY3NDM1LCAwLjk5NDU4NCwgMS4xOTkxOCIsIFwKLSAgICAgICAgICAiMC4yMjgzNTIsIDAuMjUyODU4LCAwLjM5MTg2NCwgMC41MTQ1NzksIDAuNjc4MTE3LCAxLjAwNTA2LCAxLjIwOTc2IiwgXAotICAgICAgICAgICIwLjIzODk0MSwgMC4yNjM0NDcsIDAuNDAyNDQ2LCAwLjUyNTE4NiwgMC42ODg2ODgsIDEuMDE1ODQsIDEuMjIwMzciLCBcCi0gICAgICAgICAgIjAuMjU1Mzg0LCAwLjI3OTg3OSwgMC40MTg4OTUsIDAuNTQxNjEsIDAuNzA1MTYzLCAxLjAzMjMyLCAxLjIzNjgiLCBcCi0gICAgICAgICAgIjAuMjY5MTkyLCAwLjI5MzY4OCwgMC40MzI3MDMsIDAuNTU1NDE5LCAwLjcxODk3MiwgMS4wNDYxMiwgMS4yNTA2OSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTEwMDcsIDAuMTQxMTQyLCAwLjQyNzg4OCwgMC42ODEwMTksIDEuMDE4MjUsIDEuNjkyNTgsIDIuMTE0NjgiLCBcCi0gICAgICAgICAgIjAuMDkwOTQzLCAwLjE0MDk5MiwgMC40MjcyNDIsIDAuNjgxMDA0LCAxLjAxODI0LCAxLjY5MjYsIDIuMTE0NjkiLCBcCi0gICAgICAgICAgIjAuMDkwOTI1LCAwLjE0MTMxMiwgMC40Mjc4OSwgMC42ODA5ODUsIDEuMDE4MjYsIDEuNjkyOTMsIDIuMTEzNjIiLCBcCi0gICAgICAgICAgIjAuMDkwOTE4LCAwLjE0MTM0NiwgMC40Mjc2MTMsIDAuNjgwOTQ2LCAxLjAxODIyLCAxLjY5MjYxLCAyLjExNDY1IiwgXAotICAgICAgICAgICIwLjA5MTAyNCwgMC4xNDExNTMsIDAuNDI3NzkyLCAwLjY4MDg0MywgMS4wMTgxMywgMS42OTI4MiwgMi4xMTQ2NCIsIFwKLSAgICAgICAgICAiMC4wOTA5MjQsIDAuMTQwOTkyLCAwLjQyNzIzNSwgMC42ODA5ODQsIDEuMDE4MjUsIDEuNjkyOTIsIDIuMTEwNTMiLCBcCi0gICAgICAgICAgIjAuMDkwODk1LCAwLjE0MTMwOSwgMC40MjcyNDQsIDAuNjgwOTg1LCAxLjAxODI1LCAxLjY5MjkyLCAyLjExNDE5Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE1OTc4MSwgMC4xODQ1MTEsIDAuMzI0NjQyLCAwLjQ0ODM0MSwgMC42MTMyMjMsIDAuOTQzMDM1LCAxLjE0OTEyIiwgXAotICAgICAgICAgICIwLjE2OTA2LCAwLjE5Mzc4OCwgMC4zMzM5MTgsIDAuNDU3NjIxLCAwLjYyMjQ2NywgMC45NTIyOTcsIDEuMTU4MzUiLCBcCi0gICAgICAgICAgIjAuMTc5NzgzLCAwLjIwNDUxMiwgMC4zNDQ3MDYsIDAuNDY4MzQyLCAwLjYzMzIyMywgMC45NjMwMDUsIDEuMTY5MTciLCBcCi0gICAgICAgICAgIjAuMTkxNzUyLCAwLjIxNjQ4MSwgMC4zNTY2NSwgMC40ODAzMTUsIDAuNjQ1MTYzLCAwLjk3NDk3MywgMS4xODA5OCIsIFwKLSAgICAgICAgICAiMC4yMDMyMDMsIDAuMjI3OTMsIDAuMzY4MDk3LCAwLjQ5MTc0MSwgMC42NTY2MTUsIDAuOTg2NDIxLCAxLjE5MjU5IiwgXAotICAgICAgICAgICIwLjIyMDM0NiwgMC4yNDUwNjksIDAuMzg1MjIxLCAwLjUwODkwMSwgMC42NzM3NjYsIDEuMDAzMzYsIDEuMjA5NyIsIFwKLSAgICAgICAgICAiMC4yMzMzMzksIDAuMjU4MDMxLCAwLjM5ODE4MSwgMC41MjE4NjIsIDAuNjg2NzM5LCAxLjAxNjQ2LCAxLjIyMjciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg5NjUxLCAwLjEzOTE5MSwgMC40MjE1MzEsIDAuNjcwNzg1LCAxLjAwMzE2LCAxLjY2ODIxLCAyLjA4MzUzIiwgXAotICAgICAgICAgICIwLjA4OTY2NywgMC4xMzkxMjIsIDAuNDIxMjQ2LCAwLjY3MDgxNSwgMS4wMDMxNSwgMS42NjgxNiwgMi4wODM1NCIsIFwKLSAgICAgICAgICAiMC4wODk2NTcsIDAuMTM5MTYyLCAwLjQyMTQ2LCAwLjY3MDc5NCwgMS4wMDMxLCAxLjY2ODE0LCAyLjA4MzY1IiwgXAotICAgICAgICAgICIwLjA4OTY1NSwgMC4xMzkxOTEsIDAuNDIxNDc0LCAwLjY3MDg5MywgMS4wMDMxOCwgMS42NjgxMSwgMi4wODMiLCBcCi0gICAgICAgICAgIjAuMDg5NjU5LCAwLjEzOTE1MSwgMC40MjE1MDMsIDAuNjcwOCwgMS4wMDMwMywgMS42NjgxMSwgMi4wODM2MiIsIFwKLSAgICAgICAgICAiMC4wODk2NjcsIDAuMTM5MTMzLCAwLjQyMTUzMSwgMC42NzA4MDksIDEuMDAzMDcsIDEuNjY4MDcsIDIuMDgzNDciLCBcCi0gICAgICAgICAgIjAuMDg5NjYyLCAwLjEzOTE2LCAwLjQyMDkwMiwgMC42NzA4MiwgMS4wMDMwNSwgMS42Njc4OSwgMi4wODMzOCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0MjI3LCAwLjAwNDIzNSwgMC4wMDQyNDYsIDAuMDA0MjQ5LCAwLjAwNDI1LCAwLjAwNDI1MSwgMC4wMDQyNTEiLCBcCi0gICAgICAgICAgIjAuMDA0MjExLCAwLjAwNDIxOSwgMC4wMDQyMywgMC4wMDQyMzUsIDAuMDA0MjM0LCAwLjAwNDIzNSwgMC4wMDQyMzUiLCBcCi0gICAgICAgICAgIjAuMDA0MjA3LCAwLjAwNDIxNSwgMC4wMDQyMjcsIDAuMDA0MjI4LCAwLjAwNDIzLCAwLjAwNDIzMSwgMC4wMDQyMzIiLCBcCi0gICAgICAgICAgIjAuMDA0MjA2LCAwLjAwNDIxNCwgMC4wMDQyMjUsIDAuMDA0MjI3LCAwLjAwNDIyOSwgMC4wMDQyMywgMC4wMDQyMzIiLCBcCi0gICAgICAgICAgIjAuMDA0MjA1LCAwLjAwNDIxMywgMC4wMDQyMjUsIDAuMDA0MjI2LCAwLjAwNDIyOCwgMC4wMDQyMjksIDAuMDA0MjI5IiwgXAotICAgICAgICAgICIwLjAwNDIxNiwgMC4wMDQyMjQsIDAuMDA0MjM1LCAwLjAwNDIzNywgMC4wMDQyMzgsIDAuMDA0MjM5LCAwLjAwNDI0IiwgXAotICAgICAgICAgICIwLjAwNDIyNywgMC4wMDQyMzQsIDAuMDA0MjQ2LCAwLjAwNDI0OCwgMC4wMDQyNSwgMC4wMDQyNTEsIDAuMDA0MjUxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0NjkxLCAwLjAwNDY5OSwgMC4wMDQ3MTEsIDAuMDA0NzEyLCAwLjAwNDcxNCwgMC4wMDQ3MTUsIDAuMDA0NzE2IiwgXAotICAgICAgICAgICIwLjAwNDY3OCwgMC4wMDQ2ODYsIDAuMDA0Njk3LCAwLjAwNDY5OSwgMC4wMDQ3MDEsIDAuMDA0NzAyLCAwLjAwNDcwMyIsIFwKLSAgICAgICAgICAiMC4wMDQ2ODEsIDAuMDA0Njg5LCAwLjAwNDcwMSwgMC4wMDQ3MDMsIDAuMDA0NzA1LCAwLjAwNDcwNSwgMC4wMDQ3MDYiLCBcCi0gICAgICAgICAgIjAuMDA0Njg3LCAwLjAwNDY5NSwgMC4wMDQ3MDYsIDAuMDA0NzA5LCAwLjAwNDcxLCAwLjAwNDcxMiwgMC4wMDQ3MTEiLCBcCi0gICAgICAgICAgIjAuMDA0NjkzLCAwLjAwNDcwMSwgMC4wMDQ3MTMsIDAuMDA0NzE1LCAwLjAwNDcxNiwgMC4wMDQ3MTgsIDAuMDA0NzE3IiwgXAotICAgICAgICAgICIwLjAwNDcxMywgMC4wMDQ3MjEsIDAuMDA0NzMyLCAwLjAwNDczNCwgMC4wMDQ3MzYsIDAuMDA0NzM2LCAwLjAwNDczNyIsIFwKLSAgICAgICAgICAiMC4wMDQ3MTYsIDAuMDA0NzI0LCAwLjAwNDczNiwgMC4wMDQ3MzgsIDAuMDA0NzM5LCAwLjAwNDc0MSwgMC4wMDQ3NCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDU0ODIsIDAuMDA1NDg5LCAwLjAwNTQ4NiwgMC4wMDU0ODMsIDAuMDA1NDc3LCAwLjAwNTQ3NCwgMC4wMDU0NzQiLCBcCi0gICAgICAgICAgIjAuMDA1NDcxLCAwLjAwNTQ3NywgMC4wMDU0NzUsIDAuMDA1NDcxLCAwLjAwNTQ2OCwgMC4wMDU0NjEsIDAuMDA1NDYyIiwgXAotICAgICAgICAgICIwLjAwNTQ2OCwgMC4wMDU0NzQsIDAuMDA1NDcyLCAwLjAwNTQ2OSwgMC4wMDU0NjYsIDAuMDA1NDYxLCAwLjAwNTQ1OSIsIFwKLSAgICAgICAgICAiMC4wMDU0NjgsIDAuMDA1NDc0LCAwLjAwNTQ3MiwgMC4wMDU0NjksIDAuMDA1NDY2LCAwLjAwNTQ1OCwgMC4wMDU0NTkiLCBcCi0gICAgICAgICAgIjAuMDA1NDczLCAwLjAwNTQ3OSwgMC4wMDU0NzcsIDAuMDA1NDc0LCAwLjAwNTQ2OCwgMC4wMDU0NjMsIDAuMDA1NDYyIiwgXAotICAgICAgICAgICIwLjAwNTQ3OSwgMC4wMDU0ODUsIDAuMDA1NDg0LCAwLjAwNTQ3OSwgMC4wMDU0NzQsIDAuMDA1NDcyLCAwLjAwNTQ3IiwgXAotICAgICAgICAgICIwLjAwNTQ4MywgMC4wMDU0OSwgMC4wMDU0ODksIDAuMDA1NDg0LCAwLjAwNTQ3OSwgMC4wMDU0NzUsIDAuMDA1NDczIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHNjYWxhcikgewotICAgICAgICB2YWx1ZXMoIjAiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0MDE4LCAwLjAwNDAyNiwgMC4wMDQwMzcsIDAuMDA0MDM5LCAwLjAwNDA0MSwgMC4wMDQwNDMsIDAuMDA0MDQyIiwgXAotICAgICAgICAgICIwLjAwNCwgMC4wMDQwMDgsIDAuMDA0MDIsIDAuMDA0MDIyLCAwLjAwNDAyMywgMC4wMDQwMjQsIDAuMDA0MDI0IiwgXAotICAgICAgICAgICIwLjAwMzk5MSwgMC4wMDM5OTksIDAuMDA0MDExLCAwLjAwNDAxNSwgMC4wMDQwMTQsIDAuMDA0MDE1LCAwLjAwNDAxNSIsIFwKLSAgICAgICAgICAiMC4wMDM5ODUsIDAuMDAzOTkzLCAwLjAwNDAwNSwgMC4wMDQwMDgsIDAuMDA0MDEsIDAuMDA0MDExLCAwLjAwNDAxMSIsIFwKLSAgICAgICAgICAiMC4wMDM5OCwgMC4wMDM5ODksIDAuMDA0MDAyLCAwLjAwNDAwMiwgMC4wMDQwMDMsIDAuMDA0MDA2LCAwLjAwNDAwNiIsIFwKLSAgICAgICAgICAiMC4wMDM5NzQsIDAuMDAzOTgyLCAwLjAwMzk5MywgMC4wMDM5OTgsIDAuMDAzOTk3LCAwLjAwMzk5OCwgMC4wMDM5OTgiLCBcCi0gICAgICAgICAgIjAuMDAzOTcxLCAwLjAwMzk4LCAwLjAwMzk5MSwgMC4wMDM5OTYsIDAuMDAzOTk1LCAwLjAwMzk5NiwgMC4wMDM5OTYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDUxNTQsIDAuMDA1MTYxLCAwLjAwNTE3MSwgMC4wMDUxNzQsIDAuMDA1MTc0LCAwLjAwNTE3NSwgMC4wMDUxNzciLCBcCi0gICAgICAgICAgIjAuMDA1MTQsIDAuMDA1MTQ3LCAwLjAwNTE1NywgMC4wMDUxNTksIDAuMDA1MTYsIDAuMDA1MTYxLCAwLjAwNTE2MyIsIFwKLSAgICAgICAgICAiMC4wMDUxMzQsIDAuMDA1MTQxLCAwLjAwNTE1MiwgMC4wMDUxNTQsIDAuMDA1MTU1LCAwLjAwNTE1NiwgMC4wMDUxNTciLCBcCi0gICAgICAgICAgIjAuMDA1MTMsIDAuMDA1MTM4LCAwLjAwNTE0OCwgMC4wMDUxNSwgMC4wMDUxNTEsIDAuMDA1MTUyLCAwLjAwNTE1MiIsIFwKLSAgICAgICAgICAiMC4wMDUxMywgMC4wMDUxMzgsIDAuMDA1MTQ4LCAwLjAwNTE1LCAwLjAwNTE1MSwgMC4wMDUxNTIsIDAuMDA1MTUzIiwgXAotICAgICAgICAgICIwLjAwNTEzMiwgMC4wMDUxNCwgMC4wMDUxNTEsIDAuMDA1MTUyLCAwLjAwNTE1MywgMC4wMDUxNTUsIDAuMDA1MTU1IiwgXAotICAgICAgICAgICIwLjAwNTE0MywgMC4wMDUxNTEsIDAuMDA1MTYxLCAwLjAwNTE2NCwgMC4wMDUxNjUsIDAuMDA1MTY2LCAwLjAwNTE2NiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUk4pICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYxNDY2MTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MTQ0NDg7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjE0NjYxOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDUzNiwgMC4wMDA1MTMsIDAuMDAwNTAzLCAwLjAwMDUwNywgMC4wMDA1MTYsIDAuMDAwNTM3LCAwLjAwMDU2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyNjU2LCAwLjAwMjYzNywgMC4wMDI2MzIsIDAuMDAyNjM3LCAwLjAwMjY0NywgMC4wMDI2NjksIDAuMDAyNjg4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRCYhU0UmIVNJJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9TRV9FUV8wX0FOX1NJX0VRXzBfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjIxNjU3MSwgMC4yMjY0NTUsIDAuMjM4NDU4LCAwLjI0OTA3MSwgMC4yNTc5MzIsIDAuMjcwNjQsIDAuMjgwNTYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0tOIjsKLSAgICAgIHRpbWluZ190eXBlIDogcmVjb3ZlcnlfZmFsbGluZzsKLSAgICAgIHdoZW4gOiAiU04iOwotICAgICAgc2RmX2NvbmQgOiAiU04gPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQocmVjb3ZlcnlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQzNzUsIDAuMDMyNSwgMC4wMiwgMC4wMDc1LCAtMC4wMDUsIC0wLjAxNSwgLTAuMDIzNzUiLCBcCi0gICAgICAgICAgIjAuMDU1LCAwLjA0Mzc1LCAwLjAzMTI1LCAwLjAxODc1LCAwLjAwNjI1LCAtMC4wMDM3NSwgLTAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4wNjc1LCAwLjA1NjI1LCAwLjA0Mzc1LCAwLjAzMTI1LCAwLjAxODc1LCAwLjAwODc1LCAwIiwgXAotICAgICAgICAgICIwLjA3Mzc1LCAwLjA2ODc1LCAwLjA1NjI1LCAwLjA0Mzc1LCAwLjAzMTI1LCAwLjAyMTI1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICIwLjA4NjI1LCAwLjA3NSwgMC4wNjI1LCAwLjA1LCAwLjA0Mzc1LCAwLjAyNzUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMTAyNSwgMC4wOTEyNSwgMC4wNzg3NSwgMC4wNjYyNSwgMC4wNTM3NSwgMC4wNDM3NSwgMC4wMzUiLCBcCi0gICAgICAgICAgIjAuMTExMjUsIDAuMSwgMC4wODc1LCAwLjA3NSwgMC4wNjI1LCAwLjA1MjUsIDAuMDQzNzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiU04iOwotICAgICAgdGltaW5nX3R5cGUgOiByZWNvdmVyeV9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEJiFTRSYhU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1NFX0VRXzBfQU5fU0lfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChyZWNvdmVyeV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzUsIDAuMDg2MjUsIDAuMDk4NzUsIDAuMTA1LCAwLjExNzUsIDAuMTI3NSwgMC4xNDI1IiwgXAotICAgICAgICAgICIwLjA3LCAwLjA3NSwgMC4wODc1LCAwLjEsIDAuMTA2MjUsIDAuMTIyNSwgMC4xMzEyNSIsIFwKLSAgICAgICAgICAiMC4wNTc1LCAwLjA2ODc1LCAwLjA4MTI1LCAwLjA4NzUsIDAuMSwgMC4xMSwgMC4xMjUiLCBcCi0gICAgICAgICAgIjAuMDUxMjUsIDAuMDYyNSwgMC4wNzUsIDAuMDgxMjUsIDAuMDkzNzUsIDAuMTAzNzUsIDAuMTE4NzUiLCBcCi0gICAgICAgICAgIjAuMDUxMjUsIDAuMDU2MjUsIDAuMDY4NzUsIDAuMDc1LCAwLjA4NzUsIDAuMTAzNzUsIDAuMTEyNSIsIFwKLSAgICAgICAgICAiMC4wNDEyNSwgMC4wNTI1LCAwLjA2NSwgMC4wNzEyNSwgMC4wNzc1LCAwLjA5Mzc1LCAwLjEwODc1IiwgXAotICAgICAgICAgICIwLjAzODc1LCAwLjA1LCAwLjA1NjI1LCAwLjA2ODc1LCAwLjA3NSwgMC4wOTEyNSwgMC4xIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJlbW92YWxfZmFsbGluZzsKLSAgICAgIHdoZW4gOiAiU04iOwotICAgICAgc2RmX2NvbmQgOiAiU04gPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQocmVtb3ZhbF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMCwgMC4wMTEyNSwgMC4wMjM3NSwgMC4wMywgMC4wNDI1LCAwLjA1MjUsIDAuMDYxMjUiLCBcCi0gICAgICAgICAgIi0wLjAxMTI1LCAwLCAwLjAxMjUsIDAuMDE4NzUsIDAuMDMxMjUsIDAuMDQxMjUsIDAuMDUiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTI1LCAwLCAwLjAwNjI1LCAwLjAxODc1LCAwLjAyODc1LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMjUsIC0wLjAxMjUsIDAsIDAuMDA2MjUsIDAuMDE2MjUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzNzUsIC0wLjAyNSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAuMDEsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjA1ODc1LCAtMC4wNDc1LCAtMC4wMzUsIC0wLjAyMjUsIC0wLjAxNjI1LCAtMC4wMDYyNSwgMC4wMDI1IiwgXAotICAgICAgICAgICItMC4wNjc1LCAtMC4wNTYyNSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAyNSwgLTAuMDE1LCAtMC4wMDYyNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oU0UpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTIxMTc3OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTIxMDY4OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTIxMTc3OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNDU0MywgMC4wMDQ1MjEsIDAuMDA0NTI0LCAwLjAwNDUyNSwgMC4wMDQ1MzYsIDAuMDA0NTU3LCAwLjAwNDU4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA2MzMzLCAwLjAwNjI5OCwgMC4wMDYyOTQsIDAuMDA2MjkyLCAwLjAwNjMsIDAuMDA2MzM4LCAwLjAwNjM3MyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDS04iOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX2ZhbGxpbmc7Ci0gICAgICB3aGVuIDogIlJOJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIlJOX0VRXzFfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMTI1LCAtMC4wMDEyNSwgMC4wMDUsIDAuMDE3NSwgMC4wMjM3NSwgMC4wMzM3NSwgMC4wNDI1IiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDEyNSwgMCwgMC4wMDYyNSwgMC4wMTI1LCAwLjAyMjUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMjUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLCAwLjAxNjI1LCAwLjAxODc1IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMDYyNSwgMC4wMDM3NSwgMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMDg3NSwgMCIsIFwKLSAgICAgICAgICAiLTAuMDY1LCAtMC4wNiwgLTAuMDQ3NSwgLTAuMDQxMjUsIC0wLjAzNSwgLTAuMDI1LCAtMC4wMTYyNSIsIFwKLSAgICAgICAgICAiLTAuMDczNzUsIC0wLjA2ODc1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDQzNzUsIC0wLjAzMzc1LCAtMC4wMzEyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAzMTI1LCAtMC4wMjYyNSwgLTAuMDEzNzUsIC0wLjAwMTI1LCAwLjAwNSwgMC4wMTUsIDAuMDIzNzUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLjAwMzc1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjA1NSwgLTAuMDQzNzUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMDg3NSwgMCIsIFwKLSAgICAgICAgICAiLTAuMDYxMjUsIC0wLjA1NjI1LCAtMC4wNDM3NSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDE1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDczNzUsIC0wLjA2MjUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDMxMjUsIC0wLjAyMTI1LCAtMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wNzc1LCAtMC4wNzI1LCAtMC4wNiwgLTAuMDUzNzUsIC0wLjA0MTI1LCAtMC4wMzEyNSwgLTAuMDIyNSIsIFwKLSAgICAgICAgICAiLTAuMDg2MjUsIC0wLjA4MTI1LCAtMC4wNjg3NSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNCwgLTAuMDMxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0tOIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfZmFsbGluZzsKLSAgICAgIHdoZW4gOiAiUk4mU04iOwotICAgICAgc2RmX2NvbmQgOiAiUk5fRVFfMV9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEzNzUsIDAuMTI2MjUsIDAuMTEzNzUsIDAuMTAxMjUsIDAuMDk1LCAwLjA4NSwgMC4wNzYyNSIsIFwKLSAgICAgICAgICAiMC4xNDg3NSwgMC4xMzc1LCAwLjEyNSwgMC4xMTI1LCAwLjEwNjI1LCAwLjA5NjI1LCAwLjA4NzUiLCBcCi0gICAgICAgICAgIjAuMTU1LCAwLjE1LCAwLjEzMTI1LCAwLjEyNSwgMC4xMTI1LCAwLjEwODc1LCAwLjEiLCBcCi0gICAgICAgICAgIjAuMTY3NSwgMC4xNTYyNSwgMC4xNDM3NSwgMC4xMzEyNSwgMC4xMjUsIDAuMTE1LCAwLjEwNjI1IiwgXAotICAgICAgICAgICIwLjE3Mzc1LCAwLjE2MjUsIDAuMTUsIDAuMTQzNzUsIDAuMTMxMjUsIDAuMTIxMjUsIDAuMTE4NzUiLCBcCi0gICAgICAgICAgIjAuMTgzNzUsIDAuMTc4NzUsIDAuMTYsIDAuMTUzNzUsIDAuMTQ3NSwgMC4xMzc1LCAwLjEyODc1IiwgXAotICAgICAgICAgICIwLjE5MjUsIDAuMTg3NSwgMC4xNjg3NSwgMC4xNjI1LCAwLjE1NjI1LCAwLjE0NjI1LCAwLjEzNzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTg3NSwgMC4xMDc1LCAwLjA5NSwgMC4wODI1LCAwLjA3NjI1LCAwLjA2NjI1LCAwLjA1NzUiLCBcCi0gICAgICAgICAgIjAuMTIzNzUsIDAuMTEyNSwgMC4xLCAwLjA5Mzc1LCAwLjA4MTI1LCAwLjA3MTI1LCAwLjA2ODc1IiwgXAotICAgICAgICAgICIwLjEzNjI1LCAwLjEyNSwgMC4xMTI1LCAwLjEsIDAuMDkzNzUsIDAuMDgzNzUsIDAuMDgxMjUiLCBcCi0gICAgICAgICAgIjAuMTQ4NzUsIDAuMTM3NSwgMC4xMjUsIDAuMTEyNSwgMC4xMDYyNSwgMC4wOTYyNSwgMC4wODc1IiwgXAotICAgICAgICAgICIwLjE2MTI1LCAwLjE1LCAwLjEzNzUsIDAuMTI1LCAwLjExODc1LCAwLjEwODc1LCAwLjEiLCBcCi0gICAgICAgICAgIjAuMTc3NSwgMC4xNjYyNSwgMC4xNTM3NSwgMC4xNDEyNSwgMC4xMzUsIDAuMTI1LCAwLjExNjI1IiwgXAotICAgICAgICAgICIwLjE5MjUsIDAuMTgxMjUsIDAuMTY4NzUsIDAuMTU2MjUsIDAuMTUsIDAuMTQsIDAuMTMxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFNJKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA3MDM2Njk7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNzAyMDUzOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDcwMzY2OTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDMyNTgsIDAuMDAzMjQyLCAwLjAwMzIzNCwgMC4wMDMyMjgsIDAuMDAzMjI2LCAwLjAwMzIyNiwgMC4wMDMyMyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNDg4OCwgMC4wMDQ4NzksIDAuMDA0ODczLCAwLjAwNDg2OSwgMC4wMDQ4NjksIDAuMDA0ODY5LCAwLjAwNDg3MiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDS04iOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX2ZhbGxpbmc7Ci0gICAgICB3aGVuIDogIlJOJlNFJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIlJOX0VRXzFfQU5fU0VfRVFfMV9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAxODc1LCAtMC4wMDc1LCAtMC4wMDEyNSwgMC4wMTEyNSwgMC4wMTc1LCAwLjAyNzUsIDAuMDM2MjUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAsIDAuMDA2MjUsIDAuMDE2MjUsIDAuMDI1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDMxMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAwLCAwLjAxLCAwLjAxODc1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDI1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wNjEyNSwgLTAuMDUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAxNSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA3MTI1LCAtMC4wNjYyNSwgLTAuMDUzNzUsIC0wLjA0NzUsIC0wLjAzNSwgLTAuMDI1LCAtMC4wMTYyNSIsIFwKLSAgICAgICAgICAiLTAuMDgsIC0wLjA3NSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNCwgLTAuMDMxMjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wNjI1LCAtMC4wNTEyNSwgLTAuMDUxMjUsIC0wLjA0NSwgLTAuMDM4NzUsIC0wLjAzNSwgLTAuMDMyNSIsIFwKLSAgICAgICAgICAiLTAuMDY3NSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNSwgLTAuMDQ2MjUsIC0wLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjA4LCAtMC4wNzUsIC0wLjA2ODc1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDUyNSwgLTAuMDUiLCBcCi0gICAgICAgICAgIi0wLjA4NjI1LCAtMC4wODEyNSwgLTAuMDc1LCAtMC4wNzUsIC0wLjA2ODc1LCAtMC4wNjUsIC0wLjA1NjI1IiwgXAotICAgICAgICAgICItMC4wOTg3NSwgLTAuMDkzNzUsIC0wLjA4NzUsIC0wLjA4MTI1LCAtMC4wNzUsIC0wLjA3MTI1LCAtMC4wNjg3NSIsIFwKLSAgICAgICAgICAiLTAuMTA4NzUsIC0wLjEwMzc1LCAtMC4wOTc1LCAtMC4wOTc1LCAtMC4wOTEyNSwgLTAuMDg3NSwgLTAuMDg1IiwgXAotICAgICAgICAgICItMC4xMjM3NSwgLTAuMTEyNSwgLTAuMTEyNSwgLTAuMTA2MjUsIC0wLjEsIC0wLjA5NjI1LCAtMC4wOTM3NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDS04iOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9mYWxsaW5nOwotICAgICAgd2hlbiA6ICJSTiZTRSZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJSTl9FUV8xX0FOX1NFX0VRXzFfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xLCAwLjA4ODc1LCAwLjA3NjI1LCAwLjA2Mzc1LCAwLjA1NzUsIDAuMDQxMjUsIDAuMDMyNSIsIFwKLSAgICAgICAgICAiMC4xMDUsIDAuMDkzNzUsIDAuMDgxMjUsIDAuMDc1LCAwLjA2MjUsIDAuMDUyNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4xMTc1LCAwLjEwNjI1LCAwLjA5Mzc1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNjUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIjAuMTMsIDAuMTE4NzUsIDAuMTA2MjUsIDAuMDkzNzUsIDAuMDg3NSwgMC4wNzEyNSwgMC4wNjI1IiwgXAotICAgICAgICAgICIwLjEzNjI1LCAwLjEzMTI1LCAwLjExODc1LCAwLjEwNjI1LCAwLjA5Mzc1LCAwLjA4Mzc1LCAwLjA3NSIsIFwKLSAgICAgICAgICAiMC4xNTI1LCAwLjE0NzUsIDAuMTI4NzUsIDAuMTIyNSwgMC4xMSwgMC4xLCAwLjA5MTI1IiwgXAotICAgICAgICAgICIwLjE2NzUsIDAuMTU2MjUsIDAuMTQzNzUsIDAuMTMxMjUsIDAuMTI1LCAwLjExNSwgMC4xMDYyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEyNSwgMC4xMTM3NSwgMC4xMDEyNSwgMC4wODg3NSwgMC4wODI1LCAwLjA3MjUsIDAuMDYzNzUiLCBcCi0gICAgICAgICAgIjAuMTMsIDAuMTE4NzUsIDAuMTA2MjUsIDAuMSwgMC4wODc1LCAwLjA3NzUsIDAuMDc1IiwgXAotICAgICAgICAgICIwLjE0MjUsIDAuMTMxMjUsIDAuMTE4NzUsIDAuMTA2MjUsIDAuMSwgMC4wOSwgMC4wODEyNSIsIFwKLSAgICAgICAgICAiMC4xNDg3NSwgMC4xNDM3NSwgMC4xMjUsIDAuMTE4NzUsIDAuMTEyNSwgMC4xMDI1LCAwLjA5Mzc1IiwgXAotICAgICAgICAgICIwLjE2MTI1LCAwLjE1LCAwLjEzNzUsIDAuMTI1LCAwLjExODc1LCAwLjEwODc1LCAwLjEiLCBcCi0gICAgICAgICAgIjAuMTc3NSwgMC4xNjYyNSwgMC4xNTM3NSwgMC4xNDEyNSwgMC4xMzUsIDAuMTI1LCAwLjExNjI1IiwgXAotICAgICAgICAgICIwLjE4NjI1LCAwLjE3NSwgMC4xNjI1LCAwLjE1LCAwLjE0Mzc1LCAwLjEzMzc1LCAwLjEzMTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTTikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNjI5OTk7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNjI5OTk7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNjI5MDY7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNDUzLCAwLjAwMDQ1MiwgMC4wMDA0NTIsIDAuMDAwNDUyLCAwLjAwMDQ1MiwgMC4wMDA0NTIsIDAuMDAwNDUyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNDUzLCAwLjAwMDQ1NCwgMC4wMDA0NTQsIDAuMDAwNDU0LCAwLjAwMDQ1NCwgMC4wMDA0NTQsIDAuMDAwNDU0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRCYhUk4mIVNFJiFTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fUk5fRVFfMF9BTl9TRV9FUV8wX0FOX1NJX0VRXzAgPT0gMSdiMSI7Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4xNTk3NDIsIDAuMTY5MDMxLCAwLjE3OTc4MywgMC4xOTE3NTIsIDAuMjAzMjAzLCAwLjIyMDM0NSwgMC4yMzMzMzkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0tOIjsKLSAgICAgIHRpbWluZ190eXBlIDogcmVjb3ZlcnlfZmFsbGluZzsKLSAgICAgIHdoZW4gOiAiUk4iOwotICAgICAgc2RmX2NvbmQgOiAiUk4gPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQocmVjb3ZlcnlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM3NSwgMC4wMjYyNSwgMC4wMTM3NSwgMC4wMDc1LCAtMC4wMDUsIC0wLjAxNSwgLTAuMDIzNzUiLCBcCi0gICAgICAgICAgIjAuMDQ4NzUsIDAuMDM3NSwgMC4wMjUsIDAuMDEyNSwgMC4wMDYyNSwgLTAuMDEsIC0wLjAxODc1IiwgXAotICAgICAgICAgICIwLjA2MTI1LCAwLjA1LCAwLjAzNzUsIDAuMDI1LCAwLjAxODc1LCAwLjAwMjUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDYyNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAyNSwgMC4wMTUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMDgsIDAuMDY4NzUsIDAuMDU2MjUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMjc1LCAwLjAxODc1IiwgXAotICAgICAgICAgICIwLjA5NjI1LCAwLjA4NSwgMC4wNzI1LCAwLjA2LCAwLjA1Mzc1LCAwLjA0Mzc1LCAwLjAzNSIsIFwKLSAgICAgICAgICAiMC4xMTEyNSwgMC4xLCAwLjA4NzUsIDAuMDc1LCAwLjA2ODc1LCAwLjA1MjUsIDAuMDQzNzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0tOIjsKLSAgICAgIHRpbWluZ190eXBlIDogcmVtb3ZhbF9mYWxsaW5nOwotICAgICAgd2hlbiA6ICJSTiI7Ci0gICAgICBzZGZfY29uZCA6ICJSTiA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChyZW1vdmFsX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMjUsIDAuMDE3NSwgMC4wMywgMC4wNDI1LCAwLjA0ODc1LCAwLjA1ODc1LCAwLjA2NzUiLCBcCi0gICAgICAgICAgIjAuMDAxMjUsIDAuMDEyNSwgMC4wMTg3NSwgMC4wMzEyNSwgMC4wMzc1LCAwLjA1Mzc1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICItMC4wMTEyNSwgMCwgMC4wMTI1LCAwLjAxODc1LCAwLjAzMTI1LCAwLjA0MTI1LCAwLjA1IiwgXAotICAgICAgICAgICItMC4wMTc1LCAtMC4wMTI1LCAwLCAwLjAxMjUsIDAuMDE4NzUsIDAuMDI4NzUsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAxODc1LCAtMC4wMDYyNSwgMC4wMDYyNSwgMC4wMTI1LCAwLjAyMjUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjA0LCAtMC4wMjg3NSwgLTAuMDE2MjUsIC0wLjAxLCAwLjAwMjUsIDAuMDEyNSwgMC4wMjEyNSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjAzNzUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLjAwMzc1LCAwLjAxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IFNERkZOU1JYNCAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKFNERkZOU1JYNCkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjc3NjIwMzsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBmZiAoTjM1LFFCSU5UKSB7Ci0gICAgbmV4dF9zdGF0ZSA6ICIoKFNFIFNJKSArICghU0UgRCkpIjsKLSAgICBjbG9ja2VkX29uIDogIighQ0tOKSI7Ci0gICAgY2xlYXIgOiAiKCFSTikiOwotICAgIHByZXNldCA6ICIoIVNOKSI7Ci0gICAgY2xlYXJfcHJlc2V0X3ZhcjEgOiBIOwotICAgIGNsZWFyX3ByZXNldF92YXIyIDogTDsKLSAgfQotICBwaW4oQ0tOKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2Mzc1Mjc7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjM3MzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2Mzc1Mjc7Ci0gICAgY2xvY2sgOiB0cnVlOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNjY2OCwgMC4wMDY2NDUsIDAuMDA2NjM5LCAwLjAwNjY0MSwgMC4wMDY2NTMsIDAuMDA2Njk3LCAwLjAwNjcyNyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNDc5NywgMC4wMDQ3NzcsIDAuMDA0NzcyLCAwLjAwNDc3NCwgMC4wMDQ3OCwgMC4wMDQ4MDYsIDAuMDA0ODE5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQmUk4mIVNFJiFTSSZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fUk5fRVFfMV9BTl9TRV9FUV8wX0FOX1NJX0VRXzBfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjEzMDE4MywgMC4xNDAzNywgMC4xNTMxNTIsIDAuMTY1OTc2LCAwLjE3NzczMiwgMC4xOTQ1MzQsIDAuMjA3MjM2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4xNjU4NDcsIDAuMTc1NjYxLCAwLjE4Nzk3NywgMC4xOTk4MjEsIDAuMjEwNjA3LCAwLjIyNTg5MywgMC4yMzc2MDIiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEQpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY2NzE2MzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2NjU1ODI7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjY3MTYzOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzg5MiwgMC4wMDM4NzYsIDAuMDAzODY2LCAwLjAwMzg2MSwgMC4wMDM4NTgsIDAuMDAzODU3LCAwLjAwMzg2MiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNDk3NywgMC4wMDQ5NjgsIDAuMDA0OTYzLCAwLjAwNDk1OSwgMC4wMDQ5NTgsIDAuMDA0OTU3LCAwLjAwNDk2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfZmFsbGluZzsKLSAgICAgIHdoZW4gOiAiUk4mIVNFJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIlJOX0VRXzFfQU5fU0VfRVFfMF9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAxMjUsIC0wLjAwMTI1LCAwLjAxMTI1LCAwLjAyMzc1LCAwLjAzLCAwLjA0NjI1LCAwLjA1NSIsIFwKLSAgICAgICAgICAiLTAuMDE3NSwgLTAuMDA2MjUsIDAsIDAuMDEyNSwgMC4wMjUsIDAuMDM1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLCAwLjAxMjUsIDAuMDIyNSwgMC4wMzc1IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLCAwLjAxNjI1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAuMDAzNzUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDY1LCAtMC4wNTM3NSwgLTAuMDQxMjUsIC0wLjAzNSwgLTAuMDIyNSwgLTAuMDEyNSwgMC4wMDI1IiwgXAotICAgICAgICAgICItMC4wNzM3NSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA0Mzc1LCAtMC4wMzEyNSwgLTAuMDIxMjUsIC0wLjAxMjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wNTYyNSwgLTAuMDUxMjUsIC0wLjAzODc1LCAtMC4wMzI1LCAtMC4wMjYyNSwgLTAuMDIyNSwgLTAuMDEzNzUiLCBcCi0gICAgICAgICAgIi0wLjA2MTI1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMjc1LCAtMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjA3Mzc1LCAtMC4wNjg3NSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNSwgLTAuMDQsIC0wLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wODYyNSwgLTAuMDc1LCAtMC4wNjg3NSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA0NjI1LCAtMC4wNDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDkyNSwgLTAuMDg3NSwgLTAuMDgxMjUsIC0wLjA2ODc1LCAtMC4wNjg3NSwgLTAuMDU4NzUsIC0wLjA1IiwgXAotICAgICAgICAgICItMC4xMDg3NSwgLTAuMDk3NSwgLTAuMDkxMjUsIC0wLjA4NSwgLTAuMDc4NzUsIC0wLjA3NSwgLTAuMDY2MjUiLCBcCi0gICAgICAgICAgIi0wLjExNzUsIC0wLjExMjUsIC0wLjEsIC0wLjA5Mzc1LCAtMC4wOTM3NSwgLTAuMDgzNzUsIC0wLjA3NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDS04iOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9mYWxsaW5nOwotICAgICAgd2hlbiA6ICJSTiYhU0UmU04iOwotICAgICAgc2RmX2NvbmQgOiAiUk5fRVFfMV9BTl9TRV9FUV8wX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTA2MjUsIDAuMDk1LCAwLjA4MjUsIDAuMDcsIDAuMDU3NSwgMC4wNDEyNSwgMC4wMzI1IiwgXAotICAgICAgICAgICIwLjExNzUsIDAuMTA2MjUsIDAuMDg3NSwgMC4wNzUsIDAuMDY4NzUsIDAuMDUyNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4xMjM3NSwgMC4xMTI1LCAwLjEsIDAuMDg3NSwgMC4wNzUsIDAuMDY1LCAwLjA1IiwgXAotICAgICAgICAgICIwLjEzNjI1LCAwLjEyNSwgMC4xMTI1LCAwLjEsIDAuMDg3NSwgMC4wNzEyNSwgMC4wNjI1IiwgXAotICAgICAgICAgICIwLjE0ODc1LCAwLjEzNzUsIDAuMTI1LCAwLjExMjUsIDAuMSwgMC4wODM3NSwgMC4wNzUiLCBcCi0gICAgICAgICAgIjAuMTY1LCAwLjE1Mzc1LCAwLjE0MTI1LCAwLjEyMjUsIDAuMTE2MjUsIDAuMSwgMC4wOTEyNSIsIFwKLSAgICAgICAgICAiMC4xNzM3NSwgMC4xNjI1LCAwLjE1LCAwLjEzNzUsIDAuMTI1LCAwLjExNSwgMC4xIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTMxMjUsIDAuMTIsIDAuMTA3NSwgMC4wOTUsIDAuMDgyNSwgMC4wNzI1LCAwLjA2Mzc1IiwgXAotICAgICAgICAgICIwLjE0MjUsIDAuMTMxMjUsIDAuMTE4NzUsIDAuMTA2MjUsIDAuMDkzNzUsIDAuMDc3NSwgMC4wNjg3NSIsIFwKLSAgICAgICAgICAiMC4xNDg3NSwgMC4xMzc1LCAwLjEyNSwgMC4xMTI1LCAwLjEsIDAuMDksIDAuMDgxMjUiLCBcCi0gICAgICAgICAgIjAuMTYxMjUsIDAuMTUsIDAuMTM3NSwgMC4xMjUsIDAuMTEyNSwgMC4wOTYyNSwgMC4wODc1IiwgXAotICAgICAgICAgICIwLjE3Mzc1LCAwLjE1NjI1LCAwLjE0Mzc1LCAwLjEzMTI1LCAwLjExODc1LCAwLjEwODc1LCAwLjEiLCBcCi0gICAgICAgICAgIjAuMTgzNzUsIDAuMTcyNSwgMC4xNiwgMC4xNDc1LCAwLjEzNSwgMC4xMjUsIDAuMTEiLCBcCi0gICAgICAgICAgIjAuMTk4NzUsIDAuMTg3NSwgMC4xNjg3NSwgMC4xNTYyNSwgMC4xNSwgMC4xMzM3NSwgMC4xMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFEpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMS4wMzIzNDsKLSAgICBmdW5jdGlvbiA6ICJOMzUiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBub25fdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGZhbGxpbmdfZWRnZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNTY1NDQsIDAuMjMwMTEzLCAwLjMwMjA2NCwgMC4zNTMyMDQsIDAuNDM1MTg0LCAwLjUwNjg4LCAwLjYwOTQwNSIsIFwKLSAgICAgICAgICAiMC4xNjYzOTMsIDAuMjM5OTYsIDAuMzExNjU1LCAwLjM2MzA3NywgMC40NDUwNDUsIDAuNTE2NzU1LCAwLjYxOTI3MSIsIFwKLSAgICAgICAgICAiMC4xNzg3ODIsIDAuMjUyMzUxLCAwLjMyNDE4OCwgMC4zNzU0NywgMC40NTc0NCwgMC41MjkxNDcsIDAuNjMxNjU5IiwgXAotICAgICAgICAgICIwLjE5MDgxMSwgMC4yNjQzNzUsIDAuMzM2MzAzLCAwLjM4NzE1OCwgMC40Njk0NDIsIDAuNTQxMTU1LCAwLjY0MzY4NyIsIFwKLSAgICAgICAgICAiMC4yMDE3NDksIDAuMjc1MzE2LCAwLjM0NzIzNywgMC4zOTg0MTEsIDAuNDgwMzg4LCAwLjU1MjA4MywgMC42NTQ2MDkiLCBcCi0gICAgICAgICAgIjAuMjE2ODY2LCAwLjI5MDQ3MSwgMC4zNjIzOTIsIDAuNDEzMTgsIDAuNDk1NDk5LCAwLjU2NzE5MiwgMC42Njk3MTQiLCBcCi0gICAgICAgICAgIjAuMjI4MzA2LCAwLjMwMTg4NCwgMC4zNzM4NDgsIDAuNDI1MDA1LCAwLjUwNjU3MywgMC41Nzg2ODcsIDAuNjgxMTU5Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM1MTg2LCAwLjE3ODI5MywgMC4zMjQxMiwgMC40MjgzMDMsIDAuNTk3NTA2LCAwLjc0NTU2LCAwLjk1NzA5MiIsIFwKLSAgICAgICAgICAiMC4wMzUxNSwgMC4xNzgyOTIsIDAuMzIzMDI4LCAwLjQyODMzOCwgMC41OTc1MDUsIDAuNzQ1NTk0LCAwLjk1NzEzOCIsIFwKLSAgICAgICAgICAiMC4wMzUxNCwgMC4xNzgyOTQsIDAuMzIzMjE4LCAwLjQyODM1MiwgMC41OTc1MDUsIDAuNzQ1NTk2LCAwLjk1NzEzMiIsIFwKLSAgICAgICAgICAiMC4wMzUxMzgsIDAuMTc4Mjg4LCAwLjMyMjg1LCAwLjQyNzY1LCAwLjU5NzUwOCwgMC43NDU1NzYsIDAuOTU3MTM4IiwgXAotICAgICAgICAgICIwLjAzNTAyOSwgMC4xNzgyODYsIDAuMzIzODUxLCAwLjQyODMzMiwgMC41OTc1MDYsIDAuNzQ1NTU4LCAwLjk1NzA5MiIsIFwKLSAgICAgICAgICAiMC4wMzUwNCwgMC4xNzc2OTIsIDAuMzIyNzg4LCAwLjQyNzQwOCwgMC41OTc1MDcsIDAuNzQ1NTU4LCAwLjk1NzA4MSIsIFwKLSAgICAgICAgICAiMC4wMzUxMTIsIDAuMTc3NjE1LCAwLjMyMjk5MSwgMC40MjgzMjQsIDAuNTk3NTU2LCAwLjc0NTU2NiwgMC45NTY5OTQiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNDA1MjUsIDAuMjE2MjE2LCAwLjI5MDMxNiwgMC4zNDMwMiwgMC40MjczMzUsIDAuNTAxMTQyLCAwLjYwNjU0NSIsIFwKLSAgICAgICAgICAiMC4xNTAzNTMsIDAuMjI2MDUxLCAwLjMwMDE4NSwgMC4zNTI4OTksIDAuNDM3MTM0LCAwLjUxMTE1NiwgMC42MTY0MTUiLCBcCi0gICAgICAgICAgIjAuMTYyNjEyLCAwLjIzODMzNSwgMC4zMTIzNjQsIDAuMzY1MTA0LCAwLjQ0OTQxOCwgMC41MjMyMjQsIDAuNjI4NjMiLCBcCi0gICAgICAgICAgIjAuMTc0NTA1LCAwLjI1MDIxMSwgMC4zMjQzNywgMC4zNzY3OTQsIDAuNDYxMjkyLCAwLjUzNTEwOSwgMC42NDA3NjQiLCBcCi0gICAgICAgICAgIjAuMTg1MjQ0LCAwLjI2MDk3OCwgMC4zMzUwMTksIDAuMzg3NzMzLCAwLjQ3MjA0OCwgMC41NDU4NTMsIDAuNjUxMjU5IiwgXAotICAgICAgICAgICIwLjIwMDU4NiwgMC4yNzYyODQsIDAuMzUwMzk5LCAwLjQwMzA3OSwgMC40ODc1MTcsIDAuNTYxMTk0LCAwLjY2NjQ0NyIsIFwKLSAgICAgICAgICAiMC4yMTIyOTUsIDAuMjg4MDE1LCAwLjM2MjA3LCAwLjQxNDc3NCwgMC40OTkwOTgsIDAuNTcyODk3LCAwLjY3ODIwMyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzNDEwNywgMC4xNzkxNTYsIDAuMzI3MzIzLCAwLjQzNDA3MSwgMC42MDUwMTIsIDAuNzU0NTY5LCAwLjk2ODE4IiwgXAotICAgICAgICAgICIwLjAzNDA3NSwgMC4xNzk0MzcsIDAuMzI3MDUyLCAwLjQzNDE2NSwgMC42MDQ5OTQsIDAuNzU0ODgyLCAwLjk2ODQwMSIsIFwKLSAgICAgICAgICAiMC4wMzQxNTcsIDAuMTc5NDI4LCAwLjMyNjcyOSwgMC40MzQwNywgMC42MDUwMDksIDAuNzU0NTU4LCAwLjk2ODE3MiIsIFwKLSAgICAgICAgICAiMC4wMzQwODcsIDAuMTc5NDM1LCAwLjMyNzA2NSwgMC40MzM2MjYsIDAuNjA0OTkzLCAwLjc1NDU4MSwgMC45Njg2MyIsIFwKLSAgICAgICAgICAiMC4wMzQxNTIsIDAuMTc5MzE3LCAwLjMyNzEwOSwgMC40MzQwNjgsIDAuNjA1MDA5LCAwLjc1NDU1NCwgMC45NjgxNjYiLCBcCi0gICAgICAgICAgIjAuMDM0MDQ0LCAwLjE3OTQzNiwgMC4zMjcwNCwgMC40MzQwOSwgMC42MDUxMjcsIDAuNzU0NTkzLCAwLjk2NzAzNiIsIFwKLSAgICAgICAgICAiMC4wMzM5MDksIDAuMTc5MzgyLCAwLjMyNzAyNywgMC40MzQwNDMsIDAuNjA1MDEsIDAuNzU0NTMxLCAwLjk2NzQ3NCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogY2xlYXI7Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTg3MzQsIDAuMjYzMDM4LCAwLjMzNzA5NSwgMC4zODk3NjUsIDAuNDc0MzE2LCAwLjU0ODA4NSwgMC42NTMwODIiLCBcCi0gICAgICAgICAgIjAuMTk3MjA3LCAwLjI3Mjg5OCwgMC4zNDY5ODIsIDAuMzk5NjQ3LCAwLjQ4MzY5MSwgMC41NTc0OTgsIDAuNjYyOTQ0IiwgXAotICAgICAgICAgICIwLjIwOTE5OCwgMC4yODQ4OTIsIDAuMzU4NzA4LCAwLjQxMTI3OCwgMC40OTU3OTMsIDAuNTY5NTUsIDAuNjc0OTQyIiwgXAotICAgICAgICAgICIwLjIxOTczMiwgMC4yOTU0MjcsIDAuMzY5NTA5LCAwLjQyMjE3NiwgMC41MDY3MTIsIDAuNTgwMzk5LCAwLjY4NTQ3NiIsIFwKLSAgICAgICAgICAiMC4yMjg0OCwgMC4zMDQxNzksIDAuMzc4MjUyLCAwLjQzMDkyMiwgMC41MTU0MDgsIDAuNTg5MDk4LCAwLjY5NDIyOSIsIFwKLSAgICAgICAgICAiMC4yNDEzNjIsIDAuMzE2OTk2LCAwLjM5MTA1OSwgMC40NDM3MjksIDAuNTI4MjI4LCAwLjYwMTkzMywgMC43MDc0MjkiLCBcCi0gICAgICAgICAgIjAuMjUxMDA3LCAwLjMyNjcwMiwgMC40MDA1MTEsIDAuNDUzNDExLCAwLjUzNzYxMiwgMC42MTEzNTgsIDAuNzE2NzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzQ1NjcsIDAuMTc4MDksIDAuMzI3MTc1LCAwLjQzNDAwOSwgMC42MDUyNzcsIDAuNzU1MDQ5LCAwLjk2NzM2OCIsIFwKLSAgICAgICAgICAiMC4wMzQ0MjQsIDAuMTc5Mzk2LCAwLjMyNzI0NSwgMC40MzQxNDYsIDAuNjA0MjI4LCAwLjc1NDksIDAuOTY3MDc5IiwgXAotICAgICAgICAgICIwLjAzNDUyNiwgMC4xNzkzOTcsIDAuMzI3MzczLCAwLjQzMzkzNSwgMC42MDM3NywgMC43NTQ3NzYsIDAuOTY3MDQ4IiwgXAotICAgICAgICAgICIwLjAzNDU0NywgMC4xNzkzNjIsIDAuMzI3MTc1LCAwLjQzMzk4OCwgMC42MDUyNjksIDAuNzU0OTMyLCAwLjk2NjcwNSIsIFwKLSAgICAgICAgICAiMC4wMzQzMzgsIDAuMTc5Mzk4LCAwLjMyNzM2NSwgMC40MzM5NzksIDAuNjA1MjMxLCAwLjc1NDg3MywgMC45Njg2NjIiLCBcCi0gICAgICAgICAgIjAuMDM0NTM4LCAwLjE3OTQsIDAuMzI3MjkxLCAwLjQzNDA3NCwgMC42MDUyMzYsIDAuNzU0ODk5LCAwLjk2ODc4NiIsIFwKLSAgICAgICAgICAiMC4wMzQ0NTMsIDAuMTc5MzkxLCAwLjMyNzM2NCwgMC40MzM5NDcsIDAuNjA1MDg2LCAwLjc1MzcyNiwgMC45Njg0NTQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiU04iOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHByZXNldDsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMjIzNywgMC4xOTU1NSwgMC4yNjczMTMsIDAuMzE4NjY0LCAwLjQwMDQ0MSwgMC40NzMwNjIsIDAuNTc1NDA0IiwgXAotICAgICAgICAgICIwLjEzMjEwNSwgMC4yMDUyOTEsIDAuMjc3Mjg3LCAwLjMyODQ5OCwgMC40MTAwMTcsIDAuNDgyMzk2LCAwLjU4NTA5IiwgXAotICAgICAgICAgICIwLjE0NDMzNCwgMC4yMTc1MSwgMC4yODkyOTEsIDAuMzQwNjMzLCAwLjQyMjM5NSwgMC40OTUwMjcsIDAuNTk3MzcyIiwgXAotICAgICAgICAgICIwLjE1Njc5NCwgMC4yMjk5NzIsIDAuMzAyMDA0LCAwLjM1MzA3NCwgMC40MzQ4NSwgMC41MDc0NCwgMC42MDk3ODUiLCBcCi0gICAgICAgICAgIjAuMTY4NjM2LCAwLjI0MTg1MSwgMC4zMTM4NjIsIDAuMzY0OTExLCAwLjQ0NjY4OCwgMC41MTkyOTMsIDAuNjIxNjM4IiwgXAotICAgICAgICAgICIwLjE4NjU3OSwgMC4yNTk3NzMsIDAuMzMxODMsIDAuMzgzMDA4LCAwLjQ2NDQ5LCAwLjUzNjkxNiwgMC42Mzg2MTQiLCBcCi0gICAgICAgICAgIjAuMjAxMjA5LCAwLjI3NDQwOSwgMC4zNDYzOTUsIDAuMzk3MTczLCAwLjQ3OTMwMywgMC41NTE1MTcsIDAuNjU0MzE4Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDMzOTU0LCAwLjE3Nzk4NSwgMC4zMjQ1NTcsIDAuNDI5NTg5LCAwLjU5Nzc1NCwgMC43NDU2NDEsIDAuOTU3MTY2IiwgXAotICAgICAgICAgICIwLjAzMzg5NSwgMC4xNzc5MzQsIDAuMzI0NTYzLCAwLjQyOTUzLCAwLjU5NzY1OCwgMC43NDU2NCwgMC45NTcxNzQiLCBcCi0gICAgICAgICAgIjAuMDMzOTYsIDAuMTc3OTM5LCAwLjMyNDU3NiwgMC40Mjk0MjUsIDAuNTk3NzU1LCAwLjc0NTY2LCAwLjk1NzE0NyIsIFwKLSAgICAgICAgICAiMC4wMzM5ODksIDAuMTc4MDE1LCAwLjMyNDU2MiwgMC40MjkzOTEsIDAuNTk3NzU0LCAwLjc0NTYzOCwgMC45NTcxNzgiLCBcCi0gICAgICAgICAgIjAuMDMzOTIyLCAwLjE3Nzk4LCAwLjMyNDU0MywgMC40Mjk2MDQsIDAuNTk3NzUzLCAwLjc0NTY0MSwgMC45NTcxNjgiLCBcCi0gICAgICAgICAgIjAuMDMzODIyLCAwLjE3Nzk4NiwgMC4zMjQ1OTgsIDAuNDI5NTQyLCAwLjU5NzY4NCwgMC43NDU2NTcsIDAuOTU3MTUiLCBcCi0gICAgICAgICAgIjAuMDM0MjAzLCAwLjE3ODA0NiwgMC4zMjQ2MTEsIDAuNDI5NjA2LCAwLjU5NzczNSwgMC43NDU2NTMsIDAuOTU3MTc2Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTcwMTQ2LCAwLjI0NTg0MSwgMC4zMTk4NjQsIDAuMzcyNzA2LCAwLjQ1NjcyNSwgMC41MzA1MjgsIDAuNjM2MTM2IiwgXAotICAgICAgICAgICIwLjE3OTgzNSwgMC4yNTU1MzEsIDAuMzI5NjE0LCAwLjM4MjI4NCwgMC40NjY4MjUsIDAuNTQwNTI5LCAwLjY0NTU4NyIsIFwKLSAgICAgICAgICAiMC4xOTA5NDIsIDAuMjY2NTI2LCAwLjM0MDUzNiwgMC4zOTMzNSwgMC40Nzc2NzcsIDAuNTUxMjk3LCAwLjY1NjY5IiwgXAotICAgICAgICAgICIwLjIwMTc0NSwgMC4yNzc0NDYsIDAuMzUxNTEsIDAuNDA0MTc4LCAwLjQ4ODY5MywgMC41NjI0MDMsIDAuNjY3NDk4IiwgXAotICAgICAgICAgICIwLjIxMjM2NCwgMC4yODgwNjMsIDAuMzYyMTQ4LCAwLjQxNDgxNiwgMC40OTkyOTYsIDAuNTcyOTgzLCAwLjY3ODEyMyIsIFwKLSAgICAgICAgICAiMC4yMjkyMTQsIDAuMzA0OTE0LCAwLjM3ODk5NiwgMC40MzE2NjUsIDAuNTE2MTQsIDAuNTg5ODI3LCAwLjY5NDk3NCIsIFwKLSAgICAgICAgICAiMC4yNDM1MywgMC4zMTkyMzEsIDAuMzkzMzE4LCAwLjQ0NTk4NCwgMC41MzA0NjIsIDAuNjA0MTQyLCAwLjcwOTI5NSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzNDUzNCwgMC4xNzkzNjUsIDAuMzI3MjgsIDAuNDM0MTc4LCAwLjYwMzk2OCwgMC43NTM2OTksIDAuOTY4NjMyIiwgXAotICAgICAgICAgICIwLjAzNDUxOSwgMC4xNzkyNjQsIDAuMzI3MjM5LCAwLjQzNDAyLCAwLjYwNTI3NiwgMC43NTQ5NjEsIDAuOTY3Mzg4IiwgXAotICAgICAgICAgICIwLjAzNDU4MSwgMC4xNzkzOTcsIDAuMzI3MzI2LCAwLjQzMzg1OSwgMC42MDUxNDEsIDAuNzUzNjc1LCAwLjk2NzAyMiIsIFwKLSAgICAgICAgICAiMC4wMzQzNzgsIDAuMTc5NDAzLCAwLjMyNzE1MywgMC40MzM5NjEsIDAuNjA1MjQ0LCAwLjc1NDkxNiwgMC45NjcwMzYiLCBcCi0gICAgICAgICAgIjAuMDM0NTAxLCAwLjE3OTM2NCwgMC4zMjcxNTksIDAuNDMzOTksIDAuNjA1MjI0LCAwLjc1NDg1NSwgMC45NjY3NjUiLCBcCi0gICAgICAgICAgIjAuMDM0MjgxLCAwLjE3OTM2MSwgMC4zMjcyMzYsIDAuNDMzOTg4LCAwLjYwNTIxOCwgMC43NTQ4NjMsIDAuOTY2NzY5IiwgXAotICAgICAgICAgICIwLjAzNDI4MSwgMC4xNzkzNjIsIDAuMzI3MTA4LCAwLjQzMzk5NywgMC42MDUyMjIsIDAuNzU0ODM4LCAwLjk2Njg0NyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDkxNDIsIDAuMDA5MzAxLCAwLjAwOTMyNSwgMC4wMDkzMzEsIDAuMDA5MzM2LCAwLjAwOTM0LCAwLjAwOTM0MyIsIFwKLSAgICAgICAgICAiMC4wMDkxMywgMC4wMDkyOSwgMC4wMDkzMTUsIDAuMDA5MzE5LCAwLjAwOTMyNSwgMC4wMDkzMzEsIDAuMDA5MzMzIiwgXAotICAgICAgICAgICIwLjAwOTEyOSwgMC4wMDkyOTIsIDAuMDA5MzEyLCAwLjAwOTMxOCwgMC4wMDkzMjQsIDAuMDA5MzI5LCAwLjAwOTMyOSIsIFwKLSAgICAgICAgICAiMC4wMDkxMzksIDAuMDA5Mjk5LCAwLjAwOTMyMSwgMC4wMDkzMjgsIDAuMDA5MzM0LCAwLjAwOTM0MSwgMC4wMDkzNDMiLCBcCi0gICAgICAgICAgIjAuMDA5MTQ1LCAwLjAwOTMwMywgMC4wMDkzMjUsIDAuMDA5MzM0LCAwLjAwOTMzOCwgMC4wMDkzNDMsIDAuMDA5MzQ2IiwgXAotICAgICAgICAgICIwLjAwOTE1NSwgMC4wMDkzMTQsIDAuMDA5MzM4LCAwLjAwOTM0MiwgMC4wMDkzNDgsIDAuMDA5MzU0LCAwLjAwOTM1NiIsIFwKLSAgICAgICAgICAiMC4wMDkxNjYsIDAuMDA5MzI4LCAwLjAwOTM1MywgMC4wMDkzNTcsIDAuMDA5MzYzLCAwLjAwOTM2NiwgMC4wMDkzNzEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwODgyMSwgMC4wMDg5NzIsIDAuMDA4OTk0LCAwLjAwOTAwMSwgMC4wMDkwMDYsIDAuMDA5MDA4LCAwLjAwOTAxIiwgXAotICAgICAgICAgICIwLjAwODgxLCAwLjAwODk2MSwgMC4wMDg5ODIsIDAuMDA4OTg5LCAwLjAwODk5NCwgMC4wMDg5OTcsIDAuMDA5IiwgXAotICAgICAgICAgICIwLjAwODgwNCwgMC4wMDg5NTUsIDAuMDA4OTc3LCAwLjAwODk4NCwgMC4wMDg5ODksIDAuMDA4OTkyLCAwLjAwODk5NCIsIFwKLSAgICAgICAgICAiMC4wMDg4MDcsIDAuMDA4OTU4LCAwLjAwODk3OSwgMC4wMDg5ODYsIDAuMDA4OTkxLCAwLjAwODk5NCwgMC4wMDg5OTYiLCBcCi0gICAgICAgICAgIjAuMDA4ODExLCAwLjAwODk2MiwgMC4wMDg5ODMsIDAuMDA4OTksIDAuMDA4OTk1LCAwLjAwODk5OCwgMC4wMDkiLCBcCi0gICAgICAgICAgIjAuMDA4ODA2LCAwLjAwODk1NiwgMC4wMDg5NzgsIDAuMDA4OTg0LCAwLjAwODk4OSwgMC4wMDg5OTIsIDAuMDA4OTk1IiwgXAotICAgICAgICAgICIwLjAwODgwOSwgMC4wMDg5NjQsIDAuMDA4OTg1LCAwLjAwODk5MiwgMC4wMDg5OTcsIDAuMDA5LCAwLjAwOTAwMyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwOTQ0NiwgMC4wMDk1OTYsIDAuMDA5NjE4LCAwLjAwOTYyNiwgMC4wMDk2MzEsIDAuMDA5NjMzLCAwLjAwOTYzNSIsIFwKLSAgICAgICAgICAiMC4wMDk0MzQsIDAuMDA5NTg1LCAwLjAwOTYxNCwgMC4wMDk2MjIsIDAuMDA5NjE5LCAwLjAwOTYyMSwgMC4wMDk2MjgiLCBcCi0gICAgICAgICAgIjAuMDA5NDMzLCAwLjAwOTU4MiwgMC4wMDk2MDQsIDAuMDA5NjExLCAwLjAwOTYxOCwgMC4wMDk2MTksIDAuMDA5NjIxIiwgXAotICAgICAgICAgICIwLjAwOTQzMSwgMC4wMDk1ODIsIDAuMDA5NjA5LCAwLjAwOTYxNiwgMC4wMDk2MjMsIDAuMDA5NjE4LCAwLjAwOTYyIiwgXAotICAgICAgICAgICIwLjAwOTQzNSwgMC4wMDk1ODYsIDAuMDA5NjEsIDAuMDA5NjE3LCAwLjAwOTYyLCAwLjAwOTYyMywgMC4wMDk2MjUiLCBcCi0gICAgICAgICAgIjAuMDA5NDQyLCAwLjAwOTU4OSwgMC4wMDk2MTQsIDAuMDA5NjIzLCAwLjAwOTYyOSwgMC4wMDk2MzQsIDAuMDA5NjI4IiwgXAotICAgICAgICAgICIwLjAwOTQ1LCAwLjAwOTU5OSwgMC4wMDk2MjIsIDAuMDA5NjMsIDAuMDA5NjMzLCAwLjAwOTYzNywgMC4wMDk2MzgiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfcG93ZXIoc2NhbGFyKSB7Ci0gICAgICAgIHZhbHVlcygiMCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwOTEyMiwgMC4wMDkyNzUsIDAuMDA5Mjk0LCAwLjAwOTMsIDAuMDA5MzA0LCAwLjAwOTMwNiwgMC4wMDkzMDgiLCBcCi0gICAgICAgICAgIjAuMDA5MTEyLCAwLjAwOTI2NCwgMC4wMDkyODMsIDAuMDA5Mjg3LCAwLjAwOTI5NCwgMC4wMDkyOTQsIDAuMDA5Mjk5IiwgXAotICAgICAgICAgICIwLjAwOTEwNCwgMC4wMDkyNTcsIDAuMDA5Mjc2LCAwLjAwOTI4MSwgMC4wMDkyODgsIDAuMDA5Mjg3LCAwLjAwOTI5MyIsIFwKLSAgICAgICAgICAiMC4wMDkxLCAwLjAwOTI1NCwgMC4wMDkyNzMsIDAuMDA5Mjc3LCAwLjAwOTI4MiwgMC4wMDkyODQsIDAuMDA5MjkiLCBcCi0gICAgICAgICAgIjAuMDA5MDk4LCAwLjAwOTI1MywgMC4wMDkyNzIsIDAuMDA5Mjc3LCAwLjAwOTI4MSwgMC4wMDkyODMsIDAuMDA5Mjg5IiwgXAotICAgICAgICAgICIwLjAwOTA5NiwgMC4wMDkyNTUsIDAuMDA5Mjc0LCAwLjAwOTI4MSwgMC4wMDkyODUsIDAuMDA5Mjg3LCAwLjAwOTI4OCIsIFwKLSAgICAgICAgICAiMC4wMDkxMDUsIDAuMDA5MjYsIDAuMDA5Mjc5LCAwLjAwOTI4NiwgMC4wMDkyOSwgMC4wMDkyOTIsIDAuMDA5Mjk0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDgwNjYsIDAuMDA4MjE2LCAwLjAwODIzOCwgMC4wMDgyNDUsIDAuMDA4MjUxLCAwLjAwODI1MywgMC4wMDgyNTYiLCBcCi0gICAgICAgICAgIjAuMDA4MDQ3LCAwLjAwODE5OCwgMC4wMDgyMjUsIDAuMDA4MjMzLCAwLjAwODIzOSwgMC4wMDgyMzYsIDAuMDA4MjM4IiwgXAotICAgICAgICAgICIwLjAwODA0LCAwLjAwODE4OSwgMC4wMDgyMTMsIDAuMDA4MjIsIDAuMDA4MjI2LCAwLjAwODIyNywgMC4wMDgyMjkiLCBcCi0gICAgICAgICAgIjAuMDA4MDMzLCAwLjAwODE4MywgMC4wMDgyMDYsIDAuMDA4MjE0LCAwLjAwODIxOCwgMC4wMDgyMjEsIDAuMDA4MjIzIiwgXAotICAgICAgICAgICIwLjAwODAyOCwgMC4wMDgxNzksIDAuMDA4MjA2LCAwLjAwODIxMywgMC4wMDgyMTQsIDAuMDA4MjE3LCAwLjAwODIxOSIsIFwKLSAgICAgICAgICAiMC4wMDgwMjMsIDAuMDA4MTc0LCAwLjAwODIwMiwgMC4wMDgyMDksIDAuMDA4MjEsIDAuMDA4MjEyLCAwLjAwODIxNSIsIFwKLSAgICAgICAgICAiMC4wMDgwMTcsIDAuMDA4MTY3LCAwLjAwODE5NSwgMC4wMDgyMDIsIDAuMDA4MjAyLCAwLjAwODIwNSwgMC4wMDgyMDciKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFFOKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDEuMDM3NDE7Ci0gICAgZnVuY3Rpb24gOiAiUUJJTlQiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBub25fdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGZhbGxpbmdfZWRnZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNjU4NDcsIDAuMjM4MzI3LCAwLjMxMDY4NSwgMC4zNjIzODMsIDAuNDQ1MTEzLCAwLjUxNzUyMiwgMC42MjA5NzIiLCBcCi0gICAgICAgICAgIjAuMTc1NjYxLCAwLjI0ODExNCwgMC4zMjA1MDMsIDAuMzcyMjAyLCAwLjQ1NDkxNiwgMC41MjczOTksIDAuNjMwODI1IiwgXAotICAgICAgICAgICIwLjE4Nzk3NywgMC4yNjAzOTgsIDAuMzMyNzY4LCAwLjM4NDQ2OSwgMC40NjcxOTgsIDAuNTM5NjA3LCAwLjY0MzA1OCIsIFwKLSAgICAgICAgICAiMC4xOTk4MjEsIDAuMjcyMjc1LCAwLjM0NDY2NiwgMC4zOTYzNDQsIDAuNDc5MDc1LCAwLjU1MTQ4NywgMC42NTUwNTkiLCBcCi0gICAgICAgICAgIjAuMjEwNjA3LCAwLjI4MzAzLCAwLjM1NTQwMiwgMC40MDcxLCAwLjQ4OTgzLCAwLjU2MjIzOCwgMC42NjU2ODkiLCBcCi0gICAgICAgICAgIjAuMjI1ODkzLCAwLjI5ODM0NSwgMC4zNzA3MzQsIDAuNDIyNDI2LCAwLjUwNTE4OCwgMC41Nzc1OTQsIDAuNjgxMDI2IiwgXAotICAgICAgICAgICIwLjIzNzYwNCwgMC4zMTAwODMsIDAuMzgyNDU4LCAwLjQzNDE1MywgMC41MTY4ODQsIDAuNTg5MjkxLCAwLjY5Mjc1Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDMyMzYxLCAwLjE3Nzc5MSwgMC4zMjY3MzUsIDAuNDMzOTM3LCAwLjYwNDczMywgMC43NTQyNjgsIDAuOTY3OTE2IiwgXAotICAgICAgICAgICIwLjAzMjM1OSwgMC4xNzc5OTIsIDAuMzI3MTI0LCAwLjQzMzk4OCwgMC42MDQ3MDgsIDAuNzU0NjEzLCAwLjk2ODEyNyIsIFwKLSAgICAgICAgICAiMC4wMzIzNTcsIDAuMTc4MDAyLCAwLjMyNjg0MywgMC40MzM5MzUsIDAuNjA0NzIzLCAwLjc1NDI1MiwgMC45Njc5MDciLCBcCi0gICAgICAgICAgIjAuMDMyMzY4LCAwLjE3Nzk5NCwgMC4zMjcxMTgsIDAuNDMzNDUyLCAwLjYwNDcwNSwgMC43NTQyODIsIDAuOTY4MjU2IiwgXAotICAgICAgICAgICIwLjAzMjM1NiwgMC4xNzc4MjIsIDAuMzI2NjU3LCAwLjQzMzkzNCwgMC42MDQ3MjMsIDAuNzU0MjQ4LCAwLjk2NzkwMiIsIFwKLSAgICAgICAgICAiMC4wMzIzNiwgMC4xNzc5OTMsIDAuMzI3MTMzLCAwLjQzMzk0NiwgMC42MDQ5MjMsIDAuNzU0MzA4LCAwLjk2NjczMSIsIFwKLSAgICAgICAgICAiMC4wMzIzNDgsIDAuMTc4MDI4LCAwLjMyNzE4NiwgMC40MzM5MjYsIDAuNjA0NzI3LCAwLjc1NDIyNiwgMC45Njc1NzkiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xODM4MjQsIDAuMjU3OCwgMC4zMzE2MDgsIDAuMzg0MzQxLCAwLjQ2ODcxMiwgMC41NDI1NDEsIDAuNjQ4MDMyIiwgXAotICAgICAgICAgICIwLjE5MzY2NSwgMC4yNjc2NCwgMC4zNDE0NDQsIDAuMzk0MTg0LCAwLjQ3ODU1NCwgMC41NTIzODUsIDAuNjU3ODc2IiwgXAotICAgICAgICAgICIwLjIwNjA1OCwgMC4yODAwMzEsIDAuMzUzODM2LCAwLjQwNjU3NCwgMC40OTA5NDYsIDAuNTY0Nzc1LCAwLjY3MDI2NiIsIFwKLSAgICAgICAgICAiMC4yMTgwNywgMC4yOTIwNTQsIDAuMzY1ODc1LCAwLjQxODU0NCwgMC41MDI5NjcsIDAuNTc2Nzk4LCAwLjY4MjI5IiwgXAotICAgICAgICAgICIwLjIyOTAyLCAwLjMwMzAwNiwgMC4zNzY4MTQsIDAuNDI5NTQ5LCAwLjUxMzkyLCAwLjU4Nzc0OSwgMC42OTMyNCIsIFwKLSAgICAgICAgICAiMC4yNDQxMzcsIDAuMzE4MTIyLCAwLjM5MTkzLCAwLjQ0NDYxLCAwLjUyOTAzNCwgMC42MDI4NjIsIDAuNzA4MzUyIiwgXAotICAgICAgICAgICIwLjI1NTU2MywgMC4zMjk2MDUsIDAuNDAzNDMsIDAuNDU2MTQ4LCAwLjU0MDQ2NCwgMC42MTQzNDksIDAuNzE5ODMxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDMyMDksIDAuMTc3OTg4LCAwLjMyNzE1MSwgMC40MzM4MTIsIDAuNjA1MDkyLCAwLjc1NDcyNCwgMC45Njg2MDEiLCBcCi0gICAgICAgICAgIjAuMDMyMDksIDAuMTc3OTg5LCAwLjMyNzA4LCAwLjQzMzgxNiwgMC42MDUwNzksIDAuNzU0NzcsIDAuOTY4NjQyIiwgXAotICAgICAgICAgICIwLjAzMjA5MSwgMC4xNzc5ODksIDAuMzI3MTI4LCAwLjQzMzgxNiwgMC42MDUwNzUsIDAuNzU0NzY4LCAwLjk2ODYzMyIsIFwKLSAgICAgICAgICAiMC4wMzIwNzUsIDAuMTc3OTksIDAuMzI3MTA3LCAwLjQzMzI1OSwgMC42MDUwODQsIDAuNzU0NzQxLCAwLjk2ODYzMiIsIFwKLSAgICAgICAgICAiMC4wMzIwODcsIDAuMTc3OTg4LCAwLjMyNzE1NCwgMC40MzM4MTIsIDAuNjA1MDg3LCAwLjc1NDcxNCwgMC45Njg1OTMiLCBcCi0gICAgICAgICAgIjAuMDMyMDg3LCAwLjE3ODA4MiwgMC4zMjY1MSwgMC40MzMyOTUsIDAuNjA1MDg5LCAwLjc1NDcxNCwgMC45Njg1ODIiLCBcCi0gICAgICAgICAgIjAuMDMyMDc0LCAwLjE3ODA1NywgMC4zMjcxMDcsIDAuNDMzODExLCAwLjYwNDYxOCwgMC43NTQ3MjMsIDAuOTY4NTI4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiBwcmVzZXQ7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjEyNTg0LCAwLjI4NTA2OCwgMC4zNTc0NSwgMC40MDkxMzksIDAuNDkxOTMyLCAwLjU2NDM0OSwgMC42Njc3OTkiLCBcCi0gICAgICAgICAgIjAuMjIyNDYyLCAwLjI5NDk0NSwgMC4zNjczMjgsIDAuNDE5MDE3LCAwLjUwMTc2OCwgMC41NzQxOTcsIDAuNjc3Njc4IiwgXAotICAgICAgICAgICIwLjIzNDQ0LCAwLjMwNjkyNiwgMC4zNzkyODEsIDAuNDMwOTI1LCAwLjUxMzY2NywgMC41ODYxNDcsIDAuNjg5NjQ2IiwgXAotICAgICAgICAgICIwLjI0NTAzNCwgMC4zMTc0NjgsIDAuMzg5ODUsIDAuNDQxNTM5LCAwLjUyNDMzLCAwLjU5NjcxOCwgMC43MDAxOTciLCBcCi0gICAgICAgICAgIjAuMjUzNzI5LCAwLjMyNjIwNSwgMC4zOTg1ODgsIDAuNDUwMjc3LCAwLjUzMzA1MiwgMC42MDU0MzcsIDAuNzA4OTMyIiwgXAotICAgICAgICAgICIwLjI2NjYwNCwgMC4zMzkwOTUsIDAuNDExNDE0LCAwLjQ2MzE1NywgMC41NDU4OSwgMC42MTgzMDgsIDAuNzIxODIiLCBcCi0gICAgICAgICAgIjAuMjc2MjQ5LCAwLjM0ODczMywgMC40MjEwODgsIDAuNDcyNzk1LCAwLjU1NTUzLCAwLjYyNzk1NCwgMC43MzE0NTIiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzI0NjMsIDAuMTc3ODk3LCAwLjMyNzM1OSwgMC40MzQxMDgsIDAuNjA1MTYsIDAuNzU0NywgMC45Njc1MTciLCBcCi0gICAgICAgICAgIjAuMDMyNDUyLCAwLjE3ODAwNCwgMC4zMjczNjIsIDAuNDM0MDY3LCAwLjYwNDA3NywgMC43NTQ1ODUsIDAuOTY2NzcyIiwgXAotICAgICAgICAgICIwLjAzMjQ2NCwgMC4xNzgwMTUsIDAuMzI2ODU3LCAwLjQzMzk2MywgMC42MDQwNjYsIDAuNzU0NTE3LCAwLjk2NjgzMyIsIFwKLSAgICAgICAgICAiMC4wMzI0ODEsIDAuMTc3OTc1LCAwLjMyNzM2MywgMC40MzQwOTMsIDAuNjA1MTUyLCAwLjc1NDY0OSwgMC45NjYzNDgiLCBcCi0gICAgICAgICAgIjAuMDMyNDU2LCAwLjE3ODA0MywgMC4zMjczNjUsIDAuNDM0MDcsIDAuNjA1MTE2LCAwLjc1NDYwMiwgMC45NjgyMzEiLCBcCi0gICAgICAgICAgIjAuMDMyNDU4LCAwLjE3ODAxOSwgMC4zMjczNTksIDAuNDM0MDU4LCAwLjYwNTEyLCAwLjc1NDYyMywgMC45NjgzMDUiLCBcCi0gICAgICAgICAgIjAuMDMyNDYyLCAwLjE3ODAxMiwgMC4zMjY4NTIsIDAuNDM0MDU3LCAwLjYwNDc1NiwgMC43NTM1MjYsIDAuOTY4MTA2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiBjbGVhcjsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xOTUzODUsIDAuMjY3ODcyLCAwLjM0MDI0LCAwLjM5MTk2MiwgMC40NzQ2NjksIDAuNTQ3MDg2LCAwLjY1MDU0MiIsIFwKLSAgICAgICAgICAiMC4yMDUxMzcsIDAuMjc3NTY5LCAwLjM0OTk1MSwgMC40MDE2NCwgMC40ODQ0MzEsIDAuNTU2ODI0LCAwLjY2MDI5NiIsIFwKLSAgICAgICAgICAiMC4yMTYxOTYsIDAuMjg4NjgzLCAwLjM2MTAyNiwgMC40MTI3MywgMC40OTU0NjEsIDAuNTY3ODg4LCAwLjY3MTM4NiIsIFwKLSAgICAgICAgICAiMC4yMjY5OTEsIDAuMjk5NDcyLCAwLjM3MTg1NSwgMC40MjM1NDMsIDAuNTA2MzI1LCAwLjU3ODcxOCwgMC42ODIxOTciLCBcCi0gICAgICAgICAgIjAuMjM3NjE3LCAwLjMxMDA5OCwgMC4zODI0OCwgMC40MzQxNjksIDAuNTE2OTQxLCAwLjU4OTMyNCwgMC42OTI4MTkiLCBcCi0gICAgICAgICAgIjAuMjU0NDY4LCAwLjMyNjk0NywgMC4zOTkzMywgMC40NTEwMTgsIDAuNTMzNzg5LCAwLjYwNjE3MiwgMC43MDk2NjgiLCBcCi0gICAgICAgICAgIjAuMjY4Nzg1LCAwLjM0MTI2NSwgMC40MTM2NDgsIDAuNDY1MzM2LCAwLjU0ODEwOCwgMC42MjA0ODksIDAuNzIzOTg1Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDMyNDcxLCAwLjE3Nzk2MiwgMC4zMjY3MTksIDAuNDM0MTU3LCAwLjYwNDA1OSwgMC43NTM0NzIsIDAuOTY4MjU4IiwgXAotICAgICAgICAgICIwLjAzMjQ4MiwgMC4xNzc4OTEsIDAuMzI3MzY3LCAwLjQzNDA3LCAwLjYwNTE1OSwgMC43NTQ2NjEsIDAuOTY3NTAzIiwgXAotICAgICAgICAgICIwLjAzMjQ0NywgMC4xNzgxMTYsIDAuMzI2ODc1LCAwLjQzNDA1OCwgMC42MDQ4NTksIDAuNzUzNTMsIDAuOTY2ODM0IiwgXAotICAgICAgICAgICIwLjAzMjQ1OCwgMC4xNzgwMSwgMC4zMjczNTYsIDAuNDM0MDU3LCAwLjYwNTEyOCwgMC43NTQ2MzYsIDAuOTY2OTE1IiwgXAotICAgICAgICAgICIwLjAzMjQ1MiwgMC4xNzc5NzMsIDAuMzI3MzYxLCAwLjQzNDA2NSwgMC42MDUxMDksIDAuNzU0NTg5LCAwLjk2NjQyNyIsIFwKLSAgICAgICAgICAiMC4wMzI0NTIsIDAuMTc4MDQ5LCAwLjMyNzM2LCAwLjQzNDA2NiwgMC42MDUxMDMsIDAuNzU0NTc5LCAwLjk2NjQwMSIsIFwKLSAgICAgICAgICAiMC4wMzI0NTEsIDAuMTc4MDUzLCAwLjMyNzM0NSwgMC40MzQwNjEsIDAuNjA1MTA2LCAwLjc1NDU3MywgMC45NjY3MjgiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNDkzOCwgMC4yMjM0NTMsIDAuMjk3MjY2LCAwLjM1MDAwMSwgMC40MzQzOTEsIDAuNTA4MzE4LCAwLjYxMzc5NiIsIFwKLSAgICAgICAgICAiMC4xNTkxMTQsIDAuMjMzMjE2LCAwLjMwNzA0OCwgMC4zNTk3NzQsIDAuNDQ0MTQ4LCAwLjUxODA0MSwgMC42MjM1NTMiLCBcCi0gICAgICAgICAgIjAuMTcxMzQ0LCAwLjI0NTQxOCwgMC4zMTkyMzEsIDAuMzcxOTY1LCAwLjQ1NjM1NSwgMC41MzAyODIsIDAuNjM1NzYxIiwgXAotICAgICAgICAgICIwLjE4Mzc5NywgMC4yNTc5MzksIDAuMzMxNzA3LCAwLjM4NDQzNSwgMC40Njg4MjYsIDAuNTQyNzQzLCAwLjY0ODIyMyIsIFwKLSAgICAgICAgICAiMC4xOTU2NCwgMC4yNjk3MzgsIDAuMzQzNTQ3LCAwLjM5NjI3MywgMC40ODA2NjQsIDAuNTU0NTgzLCAwLjY2MDA2MyIsIFwKLSAgICAgICAgICAiMC4yMTM1OTYsIDAuMjg3NjU2LCAwLjM2MTQ4NCwgMC40MTQyMjEsIDAuNDk4NTkyLCAwLjU3MjQ2NywgMC42Nzc5MzUiLCBcCi0gICAgICAgICAgIjAuMjI4MjM5LCAwLjMwMjMzMiwgMC4zNzYxNjMsIDAuNDI4ODM2LCAwLjUxMzI3MywgMC41ODcxNTUsIDAuNjkyNjg3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDMyMDQsIDAuMTc4MTQsIDAuMzI3NDUzLCAwLjQzNDMyNywgMC42MDU0NDYsIDAuNzU1MDI1LCAwLjk2ODk3NCIsIFwKLSAgICAgICAgICAiMC4wMzIwMzcsIDAuMTc4MTQ5LCAwLjMyNzQyNCwgMC40MzQyNjksIDAuNjA1NDI2LCAwLjc1NTAwOCwgMC45Njg5NjIiLCBcCi0gICAgICAgICAgIjAuMDMyMDM3LCAwLjE3ODEyOCwgMC4zMjc0NTgsIDAuNDM0MjI0LCAwLjYwNTQ1NiwgMC43NTUwMjUsIDAuOTY4OTM1IiwgXAotICAgICAgICAgICIwLjAzMjAzOSwgMC4xNzgwNDksIDAuMzI3NDU4LCAwLjQzNDIyLCAwLjYwNTMzMywgMC43NTQ5NDgsIDAuOTY4OTkyIiwgXAotICAgICAgICAgICIwLjAzMjAzMywgMC4xNzc5ODgsIDAuMzI3NDU3LCAwLjQzNDM0MSwgMC42MDU0MjYsIDAuNzU1MDE0LCAwLjk2ODk1MyIsIFwKLSAgICAgICAgICAiMC4wMzIwMjksIDAuMTc4MTI4LCAwLjMyNzQzMywgMC40MzQyNzEsIDAuNjA1MTgyLCAwLjc1NDk5NSwgMC45Njg5MzgiLCBcCi0gICAgICAgICAgIjAuMDMyMDQ5LCAwLjE3Nzk5MiwgMC4zMjc0MzksIDAuNDM0MzEyLCAwLjYwNTMzNywgMC43NTUwMzgsIDAuOTY4OTgzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0tOIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwODgyMSwgMC4wMDg5NzIsIDAuMDA4OTk0LCAwLjAwOTAwMSwgMC4wMDkwMDYsIDAuMDA5MDA4LCAwLjAwOTAxIiwgXAotICAgICAgICAgICIwLjAwODgxLCAwLjAwODk2MSwgMC4wMDg5ODIsIDAuMDA4OTg5LCAwLjAwODk5NCwgMC4wMDg5OTcsIDAuMDA5IiwgXAotICAgICAgICAgICIwLjAwODgwNCwgMC4wMDg5NTUsIDAuMDA4OTc3LCAwLjAwODk4NCwgMC4wMDg5ODksIDAuMDA4OTkyLCAwLjAwODk5NCIsIFwKLSAgICAgICAgICAiMC4wMDg4MDcsIDAuMDA4OTU4LCAwLjAwODk3OSwgMC4wMDg5ODYsIDAuMDA4OTkxLCAwLjAwODk5NCwgMC4wMDg5OTYiLCBcCi0gICAgICAgICAgIjAuMDA4ODExLCAwLjAwODk2MiwgMC4wMDg5ODMsIDAuMDA4OTksIDAuMDA4OTk1LCAwLjAwODk5OCwgMC4wMDkiLCBcCi0gICAgICAgICAgIjAuMDA4ODA2LCAwLjAwODk1NiwgMC4wMDg5NzgsIDAuMDA4OTg0LCAwLjAwODk4OSwgMC4wMDg5OTIsIDAuMDA4OTk1IiwgXAotICAgICAgICAgICIwLjAwODgwOSwgMC4wMDg5NjQsIDAuMDA4OTg1LCAwLjAwODk5MiwgMC4wMDg5OTcsIDAuMDA5LCAwLjAwOTAwMyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA5MTQyLCAwLjAwOTMwMSwgMC4wMDkzMjUsIDAuMDA5MzMxLCAwLjAwOTMzNiwgMC4wMDkzNCwgMC4wMDkzNDMiLCBcCi0gICAgICAgICAgIjAuMDA5MTMsIDAuMDA5MjksIDAuMDA5MzE1LCAwLjAwOTMxOSwgMC4wMDkzMjUsIDAuMDA5MzMxLCAwLjAwOTMzMyIsIFwKLSAgICAgICAgICAiMC4wMDkxMjksIDAuMDA5MjkyLCAwLjAwOTMxMiwgMC4wMDkzMTgsIDAuMDA5MzI0LCAwLjAwOTMyOSwgMC4wMDkzMjkiLCBcCi0gICAgICAgICAgIjAuMDA5MTM5LCAwLjAwOTI5OSwgMC4wMDkzMjEsIDAuMDA5MzI4LCAwLjAwOTMzNCwgMC4wMDkzNDEsIDAuMDA5MzQzIiwgXAotICAgICAgICAgICIwLjAwOTE0NSwgMC4wMDkzMDMsIDAuMDA5MzI1LCAwLjAwOTMzNCwgMC4wMDkzMzgsIDAuMDA5MzQzLCAwLjAwOTM0NiIsIFwKLSAgICAgICAgICAiMC4wMDkxNTUsIDAuMDA5MzE0LCAwLjAwOTMzOCwgMC4wMDkzNDIsIDAuMDA5MzQ4LCAwLjAwOTM1NCwgMC4wMDkzNTYiLCBcCi0gICAgICAgICAgIjAuMDA5MTY2LCAwLjAwOTMyOCwgMC4wMDkzNTMsIDAuMDA5MzU3LCAwLjAwOTM2MywgMC4wMDkzNjYsIDAuMDA5MzcxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUk4iOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA5NDQ2LCAwLjAwOTU5NiwgMC4wMDk2MTgsIDAuMDA5NjI2LCAwLjAwOTYzMSwgMC4wMDk2MzMsIDAuMDA5NjM1IiwgXAotICAgICAgICAgICIwLjAwOTQzNCwgMC4wMDk1ODUsIDAuMDA5NjE0LCAwLjAwOTYyMiwgMC4wMDk2MTksIDAuMDA5NjIxLCAwLjAwOTYyOCIsIFwKLSAgICAgICAgICAiMC4wMDk0MzMsIDAuMDA5NTgyLCAwLjAwOTYwNCwgMC4wMDk2MTEsIDAuMDA5NjE4LCAwLjAwOTYxOSwgMC4wMDk2MjEiLCBcCi0gICAgICAgICAgIjAuMDA5NDMxLCAwLjAwOTU4MiwgMC4wMDk2MDksIDAuMDA5NjE2LCAwLjAwOTYyMywgMC4wMDk2MTgsIDAuMDA5NjIiLCBcCi0gICAgICAgICAgIjAuMDA5NDM1LCAwLjAwOTU4NiwgMC4wMDk2MSwgMC4wMDk2MTcsIDAuMDA5NjIsIDAuMDA5NjIzLCAwLjAwOTYyNSIsIFwKLSAgICAgICAgICAiMC4wMDk0NDIsIDAuMDA5NTg5LCAwLjAwOTYxNCwgMC4wMDk2MjMsIDAuMDA5NjI5LCAwLjAwOTYzNCwgMC4wMDk2MjgiLCBcCi0gICAgICAgICAgIjAuMDA5NDUsIDAuMDA5NTk5LCAwLjAwOTYyMiwgMC4wMDk2MywgMC4wMDk2MzMsIDAuMDA5NjM3LCAwLjAwOTYzOCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihzY2FsYXIpIHsKLSAgICAgICAgdmFsdWVzKCIwIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiU04iOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA4MDY2LCAwLjAwODIxNiwgMC4wMDgyMzgsIDAuMDA4MjQ1LCAwLjAwODI1MSwgMC4wMDgyNTMsIDAuMDA4MjU2IiwgXAotICAgICAgICAgICIwLjAwODA0NywgMC4wMDgxOTgsIDAuMDA4MjI1LCAwLjAwODIzMywgMC4wMDgyMzksIDAuMDA4MjM2LCAwLjAwODIzOCIsIFwKLSAgICAgICAgICAiMC4wMDgwNCwgMC4wMDgxODksIDAuMDA4MjEzLCAwLjAwODIyLCAwLjAwODIyNiwgMC4wMDgyMjcsIDAuMDA4MjI5IiwgXAotICAgICAgICAgICIwLjAwODAzMywgMC4wMDgxODMsIDAuMDA4MjA2LCAwLjAwODIxNCwgMC4wMDgyMTgsIDAuMDA4MjIxLCAwLjAwODIyMyIsIFwKLSAgICAgICAgICAiMC4wMDgwMjgsIDAuMDA4MTc5LCAwLjAwODIwNiwgMC4wMDgyMTMsIDAuMDA4MjE0LCAwLjAwODIxNywgMC4wMDgyMTkiLCBcCi0gICAgICAgICAgIjAuMDA4MDIzLCAwLjAwODE3NCwgMC4wMDgyMDIsIDAuMDA4MjA5LCAwLjAwODIxLCAwLjAwODIxMiwgMC4wMDgyMTUiLCBcCi0gICAgICAgICAgIjAuMDA4MDE3LCAwLjAwODE2NywgMC4wMDgxOTUsIDAuMDA4MjAyLCAwLjAwODIwMiwgMC4wMDgyMDUsIDAuMDA4MjA3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDkxMjIsIDAuMDA5Mjc1LCAwLjAwOTI5NCwgMC4wMDkzLCAwLjAwOTMwNCwgMC4wMDkzMDYsIDAuMDA5MzA4IiwgXAotICAgICAgICAgICIwLjAwOTExMiwgMC4wMDkyNjQsIDAuMDA5MjgzLCAwLjAwOTI4NywgMC4wMDkyOTQsIDAuMDA5Mjk0LCAwLjAwOTI5OSIsIFwKLSAgICAgICAgICAiMC4wMDkxMDQsIDAuMDA5MjU3LCAwLjAwOTI3NiwgMC4wMDkyODEsIDAuMDA5Mjg4LCAwLjAwOTI4NywgMC4wMDkyOTMiLCBcCi0gICAgICAgICAgIjAuMDA5MSwgMC4wMDkyNTQsIDAuMDA5MjczLCAwLjAwOTI3NywgMC4wMDkyODIsIDAuMDA5Mjg0LCAwLjAwOTI5IiwgXAotICAgICAgICAgICIwLjAwOTA5OCwgMC4wMDkyNTMsIDAuMDA5MjcyLCAwLjAwOTI3NywgMC4wMDkyODEsIDAuMDA5MjgzLCAwLjAwOTI4OSIsIFwKLSAgICAgICAgICAiMC4wMDkwOTYsIDAuMDA5MjU1LCAwLjAwOTI3NCwgMC4wMDkyODEsIDAuMDA5Mjg1LCAwLjAwOTI4NywgMC4wMDkyODgiLCBcCi0gICAgICAgICAgIjAuMDA5MTA1LCAwLjAwOTI2LCAwLjAwOTI3OSwgMC4wMDkyODYsIDAuMDA5MjksIDAuMDA5MjkyLCAwLjAwOTI5NCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUk4pICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYwMzg2OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYwMzYxNjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2MDM4NjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA2NTcsIDAuMDAwNjM0LCAwLjAwMDYyNCwgMC4wMDA2MjgsIDAuMDAwNjM4LCAwLjAwMDY1OSwgMC4wMDA2ODEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDI0ODcsIDAuMDAyNDY4LCAwLjAwMjQ2MywgMC4wMDI0NjksIDAuMDAyNDc4LCAwLjAwMjUwMiwgMC4wMDI1MTgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUk4iOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFEJiFTRSYhU0kmU04iOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1NFX0VRXzBfQU5fU0lfRVFfMF9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgZmFsbF9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMjEyNTgzLCAwLjIyMjQ2MiwgMC4yMzQ0NCwgMC4yNDUwMzQsIDAuMjUzNzI5LCAwLjI2NjYwNCwgMC4yNzYyNDkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0tOIjsKLSAgICAgIHRpbWluZ190eXBlIDogcmVjb3ZlcnlfZmFsbGluZzsKLSAgICAgIHdoZW4gOiAiU04iOwotICAgICAgc2RmX2NvbmQgOiAiU04gPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQocmVjb3ZlcnlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQzNzUsIDAuMDMyNSwgMC4wMiwgMC4wMDc1LCAtMC4wMDUsIC0wLjAyMTI1LCAtMC4wMyIsIFwKLSAgICAgICAgICAiMC4wNTUsIDAuMDQzNzUsIDAuMDMxMjUsIDAuMDE4NzUsIDAuMDA2MjUsIC0wLjAxLCAtMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4wNjc1LCAwLjA1NjI1LCAwLjA0Mzc1LCAwLjAzMTI1LCAwLjAxODc1LCAwLjAwMjUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICIwLjA4LCAwLjA2ODc1LCAwLjA1NjI1LCAwLjA0Mzc1LCAwLjAzMTI1LCAwLjAxNSwgMCIsIFwKLSAgICAgICAgICAiMC4wOTI1LCAwLjA4MTI1LCAwLjA2MjUsIDAuMDUsIDAuMDM3NSwgMC4wMjEyNSwgMC4wMTI1IiwgXAotICAgICAgICAgICIwLjEwMjUsIDAuMDkxMjUsIDAuMDc4NzUsIDAuMDY2MjUsIDAuMDUzNzUsIDAuMDM3NSwgMC4wMjI1IiwgXAotICAgICAgICAgICIwLjExMTI1LCAwLjEsIDAuMDg3NSwgMC4wNzUsIDAuMDYyNSwgMC4wNDYyNSwgMC4wMzc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIHRpbWluZ190eXBlIDogcmVjb3ZlcnlfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRCYhU0UmIVNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9TRV9FUV8wX0FOX1NJX0VRXzAgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQocmVjb3ZlcnlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg3NSwgMC4wOTg3NSwgMC4xMTEyNSwgMC4xMTc1LCAwLjEzLCAwLjE0NjI1LCAwLjE2MTI1IiwgXAotICAgICAgICAgICIwLjA4MjUsIDAuMDg3NSwgMC4xLCAwLjExMjUsIDAuMTE4NzUsIDAuMTM1LCAwLjE1IiwgXAotICAgICAgICAgICIwLjA3LCAwLjA4MTI1LCAwLjA5Mzc1LCAwLjEsIDAuMTEyNSwgMC4xMjg3NSwgMC4xNDM3NSIsIFwKLSAgICAgICAgICAiMC4wNjM3NSwgMC4wNzUsIDAuMDg3NSwgMC4wOTM3NSwgMC4xMDYyNSwgMC4xMjI1LCAwLjEzNzUiLCBcCi0gICAgICAgICAgIjAuMDU3NSwgMC4wNjg3NSwgMC4wODEyNSwgMC4wODc1LCAwLjEsIDAuMTE2MjUsIDAuMTMxMjUiLCBcCi0gICAgICAgICAgIjAuMDUzNzUsIDAuMDY1LCAwLjA3MTI1LCAwLjA4Mzc1LCAwLjA5NjI1LCAwLjExMjUsIDAuMTI3NSIsIFwKLSAgICAgICAgICAiMC4wNTEyNSwgMC4wNTYyNSwgMC4wNjg3NSwgMC4wODEyNSwgMC4wODc1LCAwLjEwMzc1LCAwLjExODc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJlbW92YWxfZmFsbGluZzsKLSAgICAgIHdoZW4gOiAiU04iOwotICAgICAgc2RmX2NvbmQgOiAiU04gPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQocmVtb3ZhbF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDYyNSwgMC4wMTEyNSwgMC4wMjM3NSwgMC4wMzYyNSwgMC4wNDg3NSwgMC4wNjUsIDAuMDczNzUiLCBcCi0gICAgICAgICAgIi0wLjAwNSwgMCwgMC4wMTg3NSwgMC4wMjUsIDAuMDM3NSwgMC4wNTM3NSwgMC4wNjI1IiwgXAotICAgICAgICAgICItMC4wMTc1LCAtMC4wMTI1LCAwLCAwLjAxMjUsIDAuMDI1LCAwLjA0MTI1LCAwLjA1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLjAwNjI1LCAwLjAxMjUsIDAuMDI4NzUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAuMDA2MjUsIDAuMDIyNSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDUyNSwgLTAuMDQxMjUsIC0wLjAyODc1LCAtMC4wMTYyNSwgLTAuMDEsIDAuMDA2MjUsIDAuMDIxMjUiLCBcCi0gICAgICAgICAgIi0wLjA2MTI1LCAtMC4wNTYyNSwgLTAuMDQzNzUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgLTAuMDAyNSwgMC4wMDYyNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oU0UpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTUzOTA2OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTUzODc2OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTUzOTA2OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNDc3NiwgMC4wMDQ3NTEsIDAuMDA0NzU4LCAwLjAwNDc2MywgMC4wMDQ3NzgsIDAuMDA0ODA0LCAwLjAwNDgyNyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNjE1MSwgMC4wMDYxMTcsIDAuMDA2MTIsIDAuMDA2MTE3LCAwLjAwNjEyNiwgMC4wMDYxNjEsIDAuMDA2MTk5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfZmFsbGluZzsKLSAgICAgIHdoZW4gOiAiUk4mU04iOwotICAgICAgc2RmX2NvbmQgOiAiUk5fRVFfMV9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAsIDAuMDA1LCAwLjAxNzUsIDAuMDMsIDAuMDM2MjUsIDAuMDUyNSwgMC4wNjEyNSIsIFwKLSAgICAgICAgICAiLTAuMDExMjUsIDAsIDAuMDA2MjUsIDAuMDE4NzUsIDAuMDMxMjUsIDAuMDQxMjUsIDAuMDUiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTI1LCAwLCAwLjAwNjI1LCAwLjAxODc1LCAwLjAyODc1LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMjUsIC0wLjAxMjUsIDAsIDAuMDA2MjUsIDAuMDE2MjUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzNzUsIC0wLjAyNSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAuMDEsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjA1ODc1LCAtMC4wNDc1LCAtMC4wNDEyNSwgLTAuMDI4NzUsIC0wLjAxNjI1LCAtMC4wMDYyNSwgMC4wMDI1IiwgXAotICAgICAgICAgICItMC4wNjc1LCAtMC4wNjI1LCAtMC4wNSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAyMTI1LCAtMC4wMDYyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAxODc1LCAtMC4wMDc1LCAwLjAwNSwgMC4wMTEyNSwgMC4wMjM3NSwgMC4wMzM3NSwgMC4wNDI1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLCAwLjAxMjUsIDAuMDIyNSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAsIDAuMDE2MjUsIDAuMDI1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDM3NSwgLTAuMDI1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMC4wMSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNDM3NSwgLTAuMDMxMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDI1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjA1ODc1LCAtMC4wNTM3NSwgLTAuMDQxMjUsIC0wLjAyODc1LCAtMC4wMjI1LCAtMC4wMDYyNSwgMC4wMDI1IiwgXAotICAgICAgICAgICItMC4wNjc1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjAzNzUsIC0wLjAyNSwgLTAuMDE1LCAtMC4wMDYyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDS04iOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9mYWxsaW5nOwotICAgICAgd2hlbiA6ICJSTiZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJSTl9FUV8xX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTQzNzUsIDAuMTMyNSwgMC4xMTM3NSwgMC4xMDEyNSwgMC4wOTUsIDAuMDc4NzUsIDAuMDciLCBcCi0gICAgICAgICAgIjAuMTQ4NzUsIDAuMTM3NSwgMC4xMjUsIDAuMTEyNSwgMC4xLCAwLjA5LCAwLjA4MTI1IiwgXAotICAgICAgICAgICIwLjE2MTI1LCAwLjE1LCAwLjEzNzUsIDAuMTI1LCAwLjExMjUsIDAuMTAyNSwgMC4wODc1IiwgXAotICAgICAgICAgICIwLjE2NzUsIDAuMTU2MjUsIDAuMTQzNzUsIDAuMTMxMjUsIDAuMTE4NzUsIDAuMTA4NzUsIDAuMSIsIFwKLSAgICAgICAgICAiMC4xOCwgMC4xNjg3NSwgMC4xNSwgMC4xMzc1LCAwLjEzMTI1LCAwLjExNSwgMC4xMDYyNSIsIFwKLSAgICAgICAgICAiMC4xOSwgMC4xNzg3NSwgMC4xNiwgMC4xNDc1LCAwLjE0MTI1LCAwLjEyNSwgMC4xMTYyNSIsIFwKLSAgICAgICAgICAiMC4xOTI1LCAwLjE4MTI1LCAwLjE2ODc1LCAwLjE1NjI1LCAwLjE0Mzc1LCAwLjEzMzc1LCAwLjEyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEyNSwgMC4xMTM3NSwgMC4xMDEyNSwgMC4wODg3NSwgMC4wNzYyNSwgMC4wNjYyNSwgMC4wNTEyNSIsIFwKLSAgICAgICAgICAiMC4xMzYyNSwgMC4xMjUsIDAuMTA2MjUsIDAuMDkzNzUsIDAuMDg3NSwgMC4wNzEyNSwgMC4wNjI1IiwgXAotICAgICAgICAgICIwLjE0ODc1LCAwLjEzNzUsIDAuMTE4NzUsIDAuMTA2MjUsIDAuMSwgMC4wODM3NSwgMC4wNzUiLCBcCi0gICAgICAgICAgIjAuMTU1LCAwLjE0Mzc1LCAwLjEzMTI1LCAwLjExODc1LCAwLjEwNjI1LCAwLjA5NjI1LCAwLjA4NzUiLCBcCi0gICAgICAgICAgIjAuMTY3NSwgMC4xNTYyNSwgMC4xNDM3NSwgMC4xMzEyNSwgMC4xMTg3NSwgMC4xMDg3NSwgMC4xIiwgXAotICAgICAgICAgICIwLjE4Mzc1LCAwLjE3MjUsIDAuMTYsIDAuMTQ3NSwgMC4xMzUsIDAuMTI1LCAwLjExNjI1IiwgXAotICAgICAgICAgICIwLjE5ODc1LCAwLjE4NzUsIDAuMTc1LCAwLjE2MjUsIDAuMTUsIDAuMTMzNzUsIDAuMTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTSSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjU2OTk3OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDY1NTUzMTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2NTY5OTc7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzNjU1LCAwLjAwMzY0LCAwLjAwMzYzLCAwLjAwMzYyNSwgMC4wMDM2MjIsIDAuMDAzNjIyLCAwLjAwMzYyNiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNTE0NiwgMC4wMDUxMzcsIDAuMDA1MTMxLCAwLjAwNTEyOCwgMC4wMDUxMjcsIDAuMDA1MTI2LCAwLjAwNTEzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfZmFsbGluZzsKLSAgICAgIHdoZW4gOiAiUk4mU0UmU04iOwotICAgICAgc2RmX2NvbmQgOiAiUk5fRVFfMV9BTl9TRV9FUV8xX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDA2MjUsIC0wLjAwMTI1LCAwLjAxMTI1LCAwLjAyMzc1LCAwLjAzLCAwLjA0NjI1LCAwLjA1NSIsIFwKLSAgICAgICAgICAiLTAuMDE3NSwgLTAuMDA2MjUsIDAuMDA2MjUsIDAuMDEyNSwgMC4wMjUsIDAuMDM1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLjAwNjI1LCAwLjAxMjUsIDAuMDI4NzUsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAsIDAuMDE2MjUsIDAuMDI1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDM3NSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAuMDAzNzUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDU4NzUsIC0wLjA1Mzc1LCAtMC4wNDEyNSwgLTAuMDI4NzUsIC0wLjAyMjUsIC0wLjAwNjI1LCAwLjAwMjUiLCBcCi0gICAgICAgICAgIi0wLjA3Mzc1LCAtMC4wNjI1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjAzMTI1LCAtMC4wMjEyNSwgLTAuMDEyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjA1NjI1LCAtMC4wNTEyNSwgLTAuMDM4NzUsIC0wLjAzMjUsIC0wLjAyNjI1LCAtMC4wMjI1LCAtMC4wMTM3NSIsIFwKLSAgICAgICAgICAiLTAuMDYxMjUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAyNzUsIC0wLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDczNzUsIC0wLjA2ODc1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wNCwgLTAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjA4NjI1LCAtMC4wNzUsIC0wLjA2ODc1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDQ2MjUsIC0wLjA0Mzc1IiwgXAotICAgICAgICAgICItMC4wOTI1LCAtMC4wODc1LCAtMC4wNzUsIC0wLjA2ODc1LCAtMC4wNjg3NSwgLTAuMDU4NzUsIC0wLjA1IiwgXAotICAgICAgICAgICItMC4xMDg3NSwgLTAuMDk3NSwgLTAuMDkxMjUsIC0wLjA4NSwgLTAuMDc4NzUsIC0wLjA3NSwgLTAuMDY2MjUiLCBcCi0gICAgICAgICAgIi0wLjExNzUsIC0wLjExMjUsIC0wLjEsIC0wLjA5Mzc1LCAtMC4wODc1LCAtMC4wODM3NSwgLTAuMDc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX2ZhbGxpbmc7Ci0gICAgICB3aGVuIDogIlJOJlNFJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIlJOX0VRXzFfQU5fU0VfRVFfMV9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwNjI1LCAwLjA5NSwgMC4wODI1LCAwLjA3LCAwLjA1NzUsIDAuMDQxMjUsIDAuMDMyNSIsIFwKLSAgICAgICAgICAiMC4xMTEyNSwgMC4xLCAwLjA4NzUsIDAuMDc1LCAwLjA2MjUsIDAuMDUyNSwgMC4wMzc1IiwgXAotICAgICAgICAgICIwLjEyMzc1LCAwLjExMjUsIDAuMSwgMC4wODc1LCAwLjA3NSwgMC4wNTg3NSwgMC4wNSIsIFwKLSAgICAgICAgICAiMC4xMzYyNSwgMC4xMjUsIDAuMTEyNSwgMC4xLCAwLjA4NzUsIDAuMDcxMjUsIDAuMDYyNSIsIFwKLSAgICAgICAgICAiMC4xNDg3NSwgMC4xMzc1LCAwLjExODc1LCAwLjEwNjI1LCAwLjEsIDAuMDgzNzUsIDAuMDY4NzUiLCBcCi0gICAgICAgICAgIjAuMTU4NzUsIDAuMTUzNzUsIDAuMTM1LCAwLjEyMjUsIDAuMTEsIDAuMSwgMC4wODUiLCBcCi0gICAgICAgICAgIjAuMTczNzUsIDAuMTYyNSwgMC4xNSwgMC4xMzc1LCAwLjEyNSwgMC4xMDg3NSwgMC4xIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTMxMjUsIDAuMTIsIDAuMTA3NSwgMC4wOTUsIDAuMDgyNSwgMC4wNzI1LCAwLjA2Mzc1IiwgXAotICAgICAgICAgICIwLjE0MjUsIDAuMTMxMjUsIDAuMTEyNSwgMC4xLCAwLjA5Mzc1LCAwLjA3NzUsIDAuMDY4NzUiLCBcCi0gICAgICAgICAgIjAuMTQ4NzUsIDAuMTM3NSwgMC4xMjUsIDAuMTEyNSwgMC4xLCAwLjA5LCAwLjA4MTI1IiwgXAotICAgICAgICAgICIwLjE2MTI1LCAwLjE1LCAwLjEzNzUsIDAuMTI1LCAwLjExMjUsIDAuMDk2MjUsIDAuMDg3NSIsIFwKLSAgICAgICAgICAiMC4xNjc1LCAwLjE1NjI1LCAwLjE0Mzc1LCAwLjEzMTI1LCAwLjExODc1LCAwLjEwODc1LCAwLjEiLCBcCi0gICAgICAgICAgIjAuMTgzNzUsIDAuMTcyNSwgMC4xNiwgMC4xNDc1LCAwLjEzNSwgMC4xMTg3NSwgMC4xMSIsIFwKLSAgICAgICAgICAiMC4xOTI1LCAwLjE4MTI1LCAwLjE2ODc1LCAwLjE1NjI1LCAwLjE0Mzc1LCAwLjEzMzc1LCAwLjEyNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oU04pICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTQ2NTg3OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTQ2NTg3OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTQ2NTQ4OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDQ1MywgMC4wMDA0NTIsIDAuMDAwNDUzLCAwLjAwMDQ1MywgMC4wMDA0NTIsIDAuMDAwNDUyLCAwLjAwMDQ1MiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDQ1MywgMC4wMDA0NTQsIDAuMDAwNDUzLCAwLjAwMDQ1NCwgMC4wMDA0NTQsIDAuMDAwNDU0LCAwLjAwMDQ1NCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQmIVJOJiFTRSYhU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1JOX0VRXzBfQU5fU0VfRVFfMF9BTl9TSV9FUV8wID09IDEnYjEiOwotICAgICAgZmFsbF9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMTQ5MzgsIDAuMTU5MTE0LCAwLjE3MTM0NCwgMC4xODM3OTcsIDAuMTk1NjQsIDAuMjEzNTk1LCAwLjIyODIzOSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDS04iOwotICAgICAgdGltaW5nX3R5cGUgOiByZWNvdmVyeV9mYWxsaW5nOwotICAgICAgd2hlbiA6ICJSTiI7Ci0gICAgICBzZGZfY29uZCA6ICJSTiA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChyZWNvdmVyeV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNSwgMC4wMzg3NSwgMC4wMiwgMC4wMDc1LCAwLjAwMTI1LCAtMC4wMTUsIC0wLjAzIiwgXAotICAgICAgICAgICIwLjA1NSwgMC4wNDM3NSwgMC4wMzEyNSwgMC4wMTg3NSwgMC4wMDYyNSwgLTAuMDEsIC0wLjAxODc1IiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDU2MjUsIDAuMDQzNzUsIDAuMDMxMjUsIDAuMDE4NzUsIDAuMDAyNSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMDgsIDAuMDY4NzUsIDAuMDU2MjUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMTUsIDAiLCBcCi0gICAgICAgICAgIjAuMDg2MjUsIDAuMDc1LCAwLjA2MjUsIDAuMDUsIDAuMDM3NSwgMC4wMjc1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMTA4NzUsIDAuMDk3NSwgMC4wNzg3NSwgMC4wNjYyNSwgMC4wNiwgMC4wNDM3NSwgMC4wMjg3NSIsIFwKLSAgICAgICAgICAiMC4xMTc1LCAwLjEwNjI1LCAwLjA5Mzc1LCAwLjA4MTI1LCAwLjA2ODc1LCAwLjA1ODc1LCAwLjA0Mzc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJlbW92YWxfZmFsbGluZzsKLSAgICAgIHdoZW4gOiAiUk4iOwotICAgICAgc2RmX2NvbmQgOiAiUk4gPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQocmVtb3ZhbF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTI1LCAwLjAyMzc1LCAwLjAzNjI1LCAwLjA0ODc1LCAwLjA2MTI1LCAwLjA3MTI1LCAwLjA4IiwgXAotICAgICAgICAgICIwLjAwNzUsIDAuMDEyNSwgMC4wMjUsIDAuMDM3NSwgMC4wNSwgMC4wNiwgMC4wNzUiLCBcCi0gICAgICAgICAgIi0wLjAwNSwgMC4wMDYyNSwgMC4wMTg3NSwgMC4wMjUsIDAuMDM3NSwgMC4wNTM3NSwgMC4wNjI1IiwgXAotICAgICAgICAgICItMC4wMTc1LCAtMC4wMDYyNSwgMC4wMDYyNSwgMC4wMTg3NSwgMC4wMzEyNSwgMC4wNDEyNSwgMC4wNSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxMjUsIDAsIDAuMDA2MjUsIDAuMDE4NzUsIDAuMDM1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICItMC4wNCwgLTAuMDI4NzUsIC0wLjAxNjI1LCAtMC4wMDM3NSwgMC4wMDg3NSwgMC4wMTg3NSwgMC4wMzM3NSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjAzNzUsIC0wLjAyNSwgLTAuMDEyNSwgMCwgMC4wMSwgMC4wMTg3NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogU0RGRlJIUVgyICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoU0RGRlJIUVgyKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuNTIyNzE0OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIGZmIChOMzAsUUJJTlQpIHsKLSAgICBuZXh0X3N0YXRlIDogIigoU0UgU0kpICsgKCFTRSBEKSkiOwotICAgIGNsb2NrZWRfb24gOiAiQ0siOwotICAgIGNsZWFyIDogIighUk4pIjsKLSAgfQotICBwaW4oQ0spICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYzNzAzNDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MzY2MDE7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjM3MDM0OwotICAgIGNsb2NrIDogdHJ1ZTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDMxNzgsIDAuMDAzMTUzLCAwLjAwMzE0LCAwLjAwMzE0LCAwLjAwMzE1LCAwLjAwMzE2OCwgMC4wMDMxOTMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDgxMDEsIDAuMDA4MDc1LCAwLjAwODA3MSwgMC4wMDgwODcsIDAuMDA4MTAxLCAwLjAwODE0MywgMC4wMDgxNzkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFEJlJOJiFTRSYhU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1JOX0VRXzFfQU5fU0VfRVFfMF9BTl9TSV9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMTM5MDk1LCAwLjE0OTI2MiwgMC4xNjIwMzYsIDAuMTc0NDUxLCAwLjE4NTgzNCwgMC4yMDE0ODUsIDAuMjEzNzU0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wOTY2NSwgMC4xMDYzNDksIDAuMTE5MDMyLCAwLjEzMDkyNCwgMC4xNDE2MzYsIDAuMTU2MTI3LCAwLjE2NzM1NCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwODUzNjI4OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDg1MDk0NzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA4NTM2Mjg7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzNzczLCAwLjAwMzc0LCAwLjAwMzcyMiwgMC4wMDM3MTUsIDAuMDAzNzA4LCAwLjAwMzcyLCAwLjAwMzcyMSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNTk3OSwgMC4wMDU5NjEsIDAuMDA1OTUsIDAuMDA1OTQ1LCAwLjAwNTk0NCwgMC4wMDU5NTIsIDAuMDA1OTU1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlJOJiFTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJSTl9FUV8xX0FOX1NFX0VRXzAgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDQzNzUsIC0wLjAzODc1LCAtMC4wMjYyNSwgLTAuMDIsIC0wLjAxMzc1LCAtMC4wMDM3NSwgLTAuMDAxMjUiLCBcCi0gICAgICAgICAgIi0wLjA1NSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAxNSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA2MTI1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMjc1LCAtMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDczNzUsIC0wLjA2ODc1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wMzM3NSwgLTAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjA4NjI1LCAtMC4wNzUsIC0wLjA2ODc1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDQ2MjUsIC0wLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjA5NjI1LCAtMC4wOTEyNSwgLTAuMDg1LCAtMC4wNzg3NSwgLTAuMDY2MjUsIC0wLjA2MjUsIC0wLjA1Mzc1IiwgXAotICAgICAgICAgICItMC4xMTEyNSwgLTAuMSwgLTAuMDkzNzUsIC0wLjA4NzUsIC0wLjA4MTI1LCAtMC4wNzEyNSwgLTAuMDYyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAsIDAuMDA1LCAwLjAxNzUsIDAuMDMsIDAuMDQyNSwgMC4wNTI1LCAwLjA2MTI1IiwgXAotICAgICAgICAgICItMC4wMTEyNSwgMCwgMC4wMTI1LCAwLjAyNSwgMC4wMzEyNSwgMC4wNDc1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICItMC4wMTc1LCAtMC4wMTI1LCAwLCAwLjAxMjUsIDAuMDI1LCAwLjAzNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAxODc1LCAtMC4wMDYyNSwgMC4wMDYyNSwgMC4wMTI1LCAwLjAyODc1LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMjUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLjAwNjI1LCAwLjAxNjI1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wNDYyNSwgLTAuMDM1LCAtMC4wMjI1LCAtMC4wMTYyNSwgLTAuMDAzNzUsIDAuMDA2MjUsIDAuMDE1IiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA0Mzc1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMTI1LCAtMC4wMDI1LCAwLjAwNjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJSTiYhU0UiOwotICAgICAgc2RmX2NvbmQgOiAiUk5fRVFfMV9BTl9TRV9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3NSwgMC4wNjM3NSwgMC4wNTEyNSwgMC4wNDUsIDAuMDM4NzUsIDAuMDI4NzUsIDAuMDIiLCBcCi0gICAgICAgICAgIjAuMDgsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNDM3NSwgMC4wNCwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4wOTI1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA0NjI1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjEwNSwgMC4wOTM3NSwgMC4wODEyNSwgMC4wNzUsIDAuMDY4NzUsIDAuMDU4NzUsIDAuMDUiLCBcCi0gICAgICAgICAgIjAuMTExMjUsIDAuMSwgMC4wOTM3NSwgMC4wODc1LCAwLjA4MTI1LCAwLjA3MTI1LCAwLjA2MjUiLCBcCi0gICAgICAgICAgIjAuMTI3NSwgMC4xMTYyNSwgMC4xMSwgMC4wOTc1LCAwLjA5MTI1LCAwLjA4MTI1LCAwLjA3ODc1IiwgXAotICAgICAgICAgICIwLjE0MjUsIDAuMTMxMjUsIDAuMTE4NzUsIDAuMTEyNSwgMC4xMDYyNSwgMC4wOTYyNSwgMC4wODc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQzNzUsIDAuMDMyNSwgMC4wMiwgMC4wMDc1LCAtMC4wMDUsIC0wLjAyMTI1LCAtMC4wMyIsIFwKLSAgICAgICAgICAiMC4wNDg3NSwgMC4wNDM3NSwgMC4wMjUsIDAuMDE4NzUsIDAuMDA2MjUsIC0wLjAxLCAtMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMDYxMjUsIDAuMDUsIDAuMDM3NSwgMC4wMjUsIDAuMDEyNSwgMC4wMDI1LCAtMC4wMTI1IiwgXAotICAgICAgICAgICIwLjA3Mzc1LCAwLjA2MjUsIDAuMDUsIDAuMDM3NSwgMC4wMjUsIDAuMDA4NzUsIDAiLCBcCi0gICAgICAgICAgIjAuMDgsIDAuMDY4NzUsIDAuMDU2MjUsIDAuMDQzNzUsIDAuMDMxMjUsIDAuMDE1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICIwLjA5NjI1LCAwLjA4NSwgMC4wNzI1LCAwLjA2LCAwLjA0NzUsIDAuMDMxMjUsIDAuMDE2MjUiLCBcCi0gICAgICAgICAgIjAuMTA1LCAwLjA5Mzc1LCAwLjA4MTI1LCAwLjA2ODc1LCAwLjA1NjI1LCAwLjA0LCAwLjAzMTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihRKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuNTA5ODI7Ci0gICAgZnVuY3Rpb24gOiAiTjMwIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBub25fdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJpc2luZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNDM4NzQsIDAuMjQ3ODQzLCAwLjMyOTA3NCwgMC40MzA3NjcsIDAuNTMyMjM2LCAwLjYzMzgwOSwgMC43MzU0OTQiLCBcCi0gICAgICAgICAgIjAuMTUzOTgsIDAuMjU3OTU2LCAwLjMzOTE5NCwgMC40NDA3OSwgMC41NDIzNDEsIDAuNjQzOTA5LCAwLjc0NTQ3OCIsIFwKLSAgICAgICAgICAiMC4xNjY2ODEsIDAuMjcwNjU5LCAwLjM1MTg5OCwgMC40NTM0ODIsIDAuNTU1MDczLCAwLjY1NjYxMiwgMC43NTgxOSIsIFwKLSAgICAgICAgICAiMC4xNzkxMTEsIDAuMjgzMDc0LCAwLjM2NDMyLCAwLjQ2NTg4NiwgMC41Njc0NjUsIDAuNjY5MDgxLCAwLjc3MDYwNyIsIFwKLSAgICAgICAgICAiMC4xOTAxODEsIDAuMjk0MTQ3LCAwLjM3NTM3OSwgMC40NzcwNzMsIDAuNTc4NTU4LCAwLjY4MDI0MSwgMC43ODE4MSIsIFwKLSAgICAgICAgICAiMC4yMDU3NiwgMC4zMDk3MzgsIDAuMzkxMDAxLCAwLjQ5MjY1NSwgMC41OTQxNywgMC42OTU2ODksIDAuNzk3MzYxIiwgXAotICAgICAgICAgICIwLjIxNzYzNSwgMC4zMjE2MTMsIDAuNDAyODYzLCAwLjUwNDUzMiwgMC42MDYwMTEsIDAuNzA3NTc5LCAwLjgwOTI0NiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTgyOTEsIDAuMjYwMzI0LCAwLjQyNzAzMywgMC42MzUyNTksIDAuODQ0OTM5LCAxLjA1NDU4LCAxLjI2MzE4IiwgXAotICAgICAgICAgICIwLjA1ODI3LCAwLjI2MDI0MywgMC40MjcwMzIsIDAuNjM1NTQ5LCAwLjg0NjEzOCwgMS4wNTUzLCAxLjI2NTUzIiwgXAotICAgICAgICAgICIwLjA1ODI3LCAwLjI2MDIzOSwgMC40MjcwMjQsIDAuNjM1NjEsIDAuODQ2MTk0LCAxLjA1NTMxLCAxLjI2NTUzIiwgXAotICAgICAgICAgICIwLjA1ODI3OSwgMC4yNjA1MzIsIDAuNDI3MDIxLCAwLjYzNjA4OSwgMC44NDYxMzUsIDEuMDUzOTIsIDEuMjY1NTMiLCBcCi0gICAgICAgICAgIjAuMDU4MywgMC4yNjAzMjIsIDAuNDI3MDI2LCAwLjYzNTE0MywgMC44NDQ5MjYsIDEuMDUzODUsIDEuMjYzMzQiLCBcCi0gICAgICAgICAgIjAuMDU4MjI1LCAwLjI2MDMyLCAwLjQyNzE5NiwgMC42MzUwMzUsIDAuODQ0OTkzLCAxLjA1NDUxLCAxLjI2MzE3IiwgXAotICAgICAgICAgICIwLjA1ODI4NywgMC4yNjA1MjYsIDAuNDI3MDQzLCAwLjYzNTA4MSwgMC44NDYxMjMsIDEuMDU0NSwgMS4yNjMxOCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMzkwOTUsIDAuMjQzMTQ0LCAwLjMyNTkwNCwgMC40MjkzMjUsIDAuNTMyNzE3LCAwLjYzNjEwNiwgMC43Mzk0NyIsIFwKLSAgICAgICAgICAiMC4xNDkyNjIsIDAuMjUzMzE1LCAwLjMzNjA3LCAwLjQzOTQ5NSwgMC41NDI4ODYsIDAuNjQ2MjMxLCAwLjc0OTY0NCIsIFwKLSAgICAgICAgICAiMC4xNjIwMzYsIDAuMjY2MTAxLCAwLjM0ODg0NSwgMC40NTIyNjgsIDAuNTU1NjU4LCAwLjY1OTA0OCwgMC43NjI0MzUiLCBcCi0gICAgICAgICAgIjAuMTc0NDUyLCAwLjI3ODUwMiwgMC4zNjEyNTgsIDAuNDY0NzE5LCAwLjU2ODA3MSwgMC42NzE0NzMsIDAuNzc0ODM5IiwgXAotICAgICAgICAgICIwLjE4NTgzNSwgMC4yODk4ODYsIDAuMzcyNjM5LCAwLjQ3NjA3MywgMC41Nzk0MjMsIDAuNjgyODI1LCAwLjc4NjI0MSIsIFwKLSAgICAgICAgICAiMC4yMDE0ODcsIDAuMzA1NTQxLCAwLjM4ODI5MiwgMC40OTE3MDUsIDAuNTk1MDgzLCAwLjY5ODUwMSwgMC44MDE5MDIiLCBcCi0gICAgICAgICAgIjAuMjEzNzU4LCAwLjMxNzgwNiwgMC40MDA1NiwgMC41MDM5NTQsIDAuNjA3MzgzLCAwLjcxMDczNiwgMC44MTQxMzciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDUxNjY2LCAwLjI1NzY1MSwgMC40MjU3NywgMC42MzQyNDYsIDAuODQ1Njg5LCAxLjA1NTY0LCAxLjI2MzU2IiwgXAotICAgICAgICAgICIwLjA1MTY0OSwgMC4yNTc2NjcsIDAuNDI1NzYxLCAwLjYzNDM3NiwgMC44NDU2ODMsIDEuMDU1MzQsIDEuMjY1NDIiLCBcCi0gICAgICAgICAgIjAuMDUxNjY1LCAwLjI1ODE2LCAwLjQyNTc3MiwgMC42MzQzMjYsIDAuODQ1Njg1LCAxLjA1NTYzLCAxLjI2MjM2IiwgXAotICAgICAgICAgICIwLjA1MTY0OSwgMC4yNTc2NSwgMC40MjU3NjQsIDAuNjM0MDEsIDAuODQ1NjYxLCAxLjA1NTY5LCAxLjI2NTQ3IiwgXAotICAgICAgICAgICIwLjA1MTY1LCAwLjI1NzY3LCAwLjQyNTc2MSwgMC42MzU3NzUsIDAuODQ1MjE2LCAxLjA1NTI3LCAxLjI2NTYxIiwgXAotICAgICAgICAgICIwLjA1MTY1MSwgMC4yNTc2ODgsIDAuNDI1NzU0LCAwLjYzNDU5OSwgMC44NDU1MDcsIDEuMDUzNDEsIDEuMjY1NjUiLCBcCi0gICAgICAgICAgIjAuMDUxNjUsIDAuMjU3NjU3LCAwLjQyNTc2NCwgMC42MzU0MTIsIDAuODQ1NzQyLCAxLjA1NTQ0LCAxLjI2NTQ0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiBjbGVhcjsKLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDYwMTksIDAuMTY0MzE0LCAwLjI0NzAxMiwgMC4zNTA0MjUsIDAuNDUzNzYxLCAwLjU1NzEzMywgMC42NjA1MzkiLCBcCi0gICAgICAgICAgIjAuMDcwMTExLCAwLjE3NDI1MSwgMC4yNTY5NiwgMC4zNjAzMzYsIDAuNDYzNzA5LCAwLjU2NzEzMSwgMC42NzA1MzciLCBcCi0gICAgICAgICAgIjAuMDgyNDA5LCAwLjE4NjU3MywgMC4yNjkyODQsIDAuMzcyNzA1LCAwLjQ3NjA0MiwgMC41Nzk0NDksIDAuNjgyODYzIiwgXAotICAgICAgICAgICIwLjA5NDEwOSwgMC4xOTgyODcsIDAuMjgxMDMsIDAuMzg0MzkzLCAwLjQ4Nzc2OCwgMC41OTExNjgsIDAuNjk0NTUyIiwgXAotICAgICAgICAgICIwLjEwNDMzMiwgMC4yMDg1MDIsIDAuMjkxMjE1LCAwLjM5NDY0LCAwLjQ5ODAyNiwgMC42MDEzODUsIDAuNzA0NzYiLCBcCi0gICAgICAgICAgIjAuMTE4MzE4LCAwLjIyMjc2NywgMC4zMDU0NTEsIDAuNDA4ODM0LCAwLjUxMjIyNywgMC42MTU2MjEsIDAuNzE4OTc0IiwgXAotICAgICAgICAgICIwLjEyOTIxNywgMC4yMzM1NzQsIDAuMzE2MjQ5LCAwLjQxOTY0LCAwLjUyMzA1MywgMC42MjYzOTMsIDAuNzI5ODM3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1MTgxNCwgMC4yNTc1MSwgMC40MjQ4ODYsIDAuNjM0MzM1LCAwLjg0NDYxNCwgMS4wNTQ1OSwgMS4yNjQ0IiwgXAotICAgICAgICAgICIwLjA1MTgyNywgMC4yNTc0NjksIDAuNDI0ODU0LCAwLjYzMzc2MywgMC44NDQ2LCAxLjA1NDI3LCAxLjI2NDIxIiwgXAotICAgICAgICAgICIwLjA1MTkyNCwgMC4yNTc1OSwgMC40MjQ4MDksIDAuNjM0MzM0LCAwLjg0NDYxOSwgMS4wNTQ1MiwgMS4yNjQyMiIsIFwKLSAgICAgICAgICAiMC4wNTIzNDcsIDAuMjU3NjA5LCAwLjQyNDgzMSwgMC42MzQzMzYsIDAuODQ0NjEsIDEuMDU0NTMsIDEuMjYzMjUiLCBcCi0gICAgICAgICAgIjAuMDUzMjAzLCAwLjI1NzcwNCwgMC40MjQ4MzgsIDAuNjM0MzI4LCAwLjg0NDU2OCwgMS4wNTQ1MSwgMS4yNjMxMyIsIFwKLSAgICAgICAgICAiMC4wNTQ4MTIsIDAuMjU3ODk2LCAwLjQyNDkwMywgMC42MzQzNCwgMC44NDQ0MjcsIDEuMDU0NTcsIDEuMjY0MTEiLCBcCi0gICAgICAgICAgIjAuMDU1OTA4LCAwLjI1ODE1NiwgMC40MjQ5MjgsIDAuNjM0MTAyLCAwLjg0NDIyMiwgMS4wNTQ1NywgMS4yNjQzNCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDgzMTUsIDAuMDA4MzI3LCAwLjAwODMxLCAwLjAwODI5NywgMC4wMDgyOSwgMC4wMDgyODQsIDAuMDA4MjgxIiwgXAotICAgICAgICAgICIwLjAwODI4MywgMC4wMDgyOTUsIDAuMDA4Mjc5LCAwLjAwODI2NiwgMC4wMDgyNTgsIDAuMDA4MjUzLCAwLjAwODI0OSIsIFwKLSAgICAgICAgICAiMC4wMDgyNjYsIDAuMDA4Mjc5LCAwLjAwODI2MywgMC4wMDgyNSwgMC4wMDgyNDIsIDAuMDA4MjM3LCAwLjAwODIzMyIsIFwKLSAgICAgICAgICAiMC4wMDgyNjcsIDAuMDA4MjgxLCAwLjAwODI2NSwgMC4wMDgyNTIsIDAuMDA4MjQ0LCAwLjAwODIzOCwgMC4wMDgyMzQiLCBcCi0gICAgICAgICAgIjAuMDA4Mjc2LCAwLjAwODI5MywgMC4wMDgyNzYsIDAuMDA4MjYzLCAwLjAwODI1NSwgMC4wMDgyNDksIDAuMDA4MjQ1IiwgXAotICAgICAgICAgICIwLjAwODI5NCwgMC4wMDgzMTMsIDAuMDA4Mjk4LCAwLjAwODI4NCwgMC4wMDgyNzYsIDAuMDA4MjcsIDAuMDA4MjY1IiwgXAotICAgICAgICAgICIwLjAwODMxOSwgMC4wMDgzNDEsIDAuMDA4MzI1LCAwLjAwODMxMywgMC4wMDgzMDQsIDAuMDA4Mjk4LCAwLjAwODI5MyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwODc5MiwgMC4wMDg4NzIsIDAuMDA4ODgzLCAwLjAwODg4OCwgMC4wMDg4OTEsIDAuMDA4ODkyLCAwLjAwODg5NCIsIFwKLSAgICAgICAgICAiMC4wMDg3NjQsIDAuMDA4ODQ0LCAwLjAwODg1NCwgMC4wMDg4NiwgMC4wMDg4NjMsIDAuMDA4ODY0LCAwLjAwODg2NiIsIFwKLSAgICAgICAgICAiMC4wMDg3NiwgMC4wMDg4NCwgMC4wMDg4NSwgMC4wMDg4NTYsIDAuMDA4ODU5LCAwLjAwODg2MSwgMC4wMDg4NjIiLCBcCi0gICAgICAgICAgIjAuMDA4Nzc3LCAwLjAwODg1NywgMC4wMDg4NjcsIDAuMDA4ODcyLCAwLjAwODg3NSwgMC4wMDg4NzcsIDAuMDA4ODc4IiwgXAotICAgICAgICAgICIwLjAwODc5NSwgMC4wMDg4NzQsIDAuMDA4ODg0LCAwLjAwODg5LCAwLjAwODg5MywgMC4wMDg4OTUsIDAuMDA4ODk2IiwgXAotICAgICAgICAgICIwLjAwODgyMywgMC4wMDg5MDMsIDAuMDA4OTEyLCAwLjAwODkxNywgMC4wMDg5MiwgMC4wMDg5MjIsIDAuMDA4OTIzIiwgXAotICAgICAgICAgICIwLjAwODg4OCwgMC4wMDg5NjgsIDAuMDA4OTc3LCAwLjAwODk4MiwgMC4wMDg5ODUsIDAuMDA4OTg3LCAwLjAwODk4OCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDk4NDEsIDAuMDA5OTExLCAwLjAwOTkxOSwgMC4wMDk5MjMsIDAuMDA5OTI1LCAwLjAwOTkyNywgMC4wMDk5MjgiLCBcCi0gICAgICAgICAgIjAuMDA5NzkyLCAwLjAwOTg2OSwgMC4wMDk4OCwgMC4wMDk4ODUsIDAuMDA5ODg3LCAwLjAwOTg4OSwgMC4wMDk4OSIsIFwKLSAgICAgICAgICAiMC4wMDk3NDQsIDAuMDA5ODM2LCAwLjAwOTg0OSwgMC4wMDk4NTYsIDAuMDA5ODYsIDAuMDA5ODYyLCAwLjAwOTg2MyIsIFwKLSAgICAgICAgICAiMC4wMDk3MTYsIDAuMDA5ODE0LCAwLjAwOTgyOSwgMC4wMDk4MzgsIDAuMDA5ODQyLCAwLjAwOTg0NSwgMC4wMDk4NDciLCBcCi0gICAgICAgICAgIjAuMDA5Njk4LCAwLjAwOTc5NywgMC4wMDk4MTUsIDAuMDA5ODI1LCAwLjAwOTgzLCAwLjAwOTgzNCwgMC4wMDk4MzYiLCBcCi0gICAgICAgICAgIjAuMDA5Njg5LCAwLjAwOTc5LCAwLjAwOTgxLCAwLjAwOTgyMSwgMC4wMDk4MjgsIDAuMDA5ODMxLCAwLjAwOTgzNCIsIFwKLSAgICAgICAgICAiMC4wMDk2OTEsIDAuMDA5NzkxLCAwLjAwOTgxNCwgMC4wMDk4MjUsIDAuMDA5ODMzLCAwLjAwOTgzOCwgMC4wMDk4NDEiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfcG93ZXIoc2NhbGFyKSB7Ci0gICAgICAgIHZhbHVlcygiMCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUk4pICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTY0MjQ2OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTUyMzY3OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTY0MjQ2OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDY1MywgMC4wMDA2NTIsIDAuMDAwNjUyLCAwLjAwMDY1MiwgMC4wMDA2NTIsIDAuMDAwNjUyLCAwLjAwMDY1MiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDY1NywgMC4wMDA2NTQsIDAuMDAwNjU0LCAwLjAwMDY1NCwgMC4wMDA2NTQsIDAuMDAwNjU0LCAwLjAwMDY1NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQmIVNFJiFTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fU0VfRVFfMF9BTl9TSV9FUV8wID09IDEnYjEiOwotICAgICAgZmFsbF9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDc5ODcxLCAwLjA4OTA1NywgMC4wOTkwMywgMC4xMDg0MTEsIDAuMTE3MDE3LCAwLjEyOTI0LCAwLjEzODY2NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJlY292ZXJ5X3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUQmU0UmU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1NFX0VRXzFfQU5fU0lfRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChyZWNvdmVyeV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDM3NSwgLTAuMDQ4NzUsIC0wLjA2MTI1LCAtMC4wNzM3NSwgLTAuMDg2MjUsIC0wLjEwMjUsIC0wLjExMTI1IiwgXAotICAgICAgICAgICItMC4wMzg3NSwgLTAuMDUsIC0wLjA2MjUsIC0wLjA3NSwgLTAuMDg3NSwgLTAuMTAzNzUsIC0wLjExODc1IiwgXAotICAgICAgICAgICItMC4wMzg3NSwgLTAuMDUsIC0wLjA2MjUsIC0wLjA3NSwgLTAuMDg3NSwgLTAuMTAzNzUsIC0wLjExMjUiLCBcCi0gICAgICAgICAgIi0wLjAyNjI1LCAtMC4wMzc1LCAtMC4wNSwgLTAuMDYyNSwgLTAuMDc1LCAtMC4wOTEyNSwgLTAuMTA2MjUiLCBcCi0gICAgICAgICAgIi0wLjAxMzc1LCAtMC4wMjUsIC0wLjAzNzUsIC0wLjA1LCAtMC4wNjI1LCAtMC4wNzg3NSwgLTAuMDkzNzUiLCBcCi0gICAgICAgICAgIjAuMDE1LCAwLjAwMzc1LCAtMC4wMTUsIC0wLjAyNzUsIC0wLjA0LCAtMC4wNTYyNSwgLTAuMDcxMjUiLCBcCi0gICAgICAgICAgIjAuMDQyNSwgMC4wMjUsIDAuMDEyNSwgLTAuMDA2MjUsIC0wLjAxODc1LCAtMC4wMzUsIC0wLjA1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogcmVtb3ZhbF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEJlNFJlNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9TRV9FUV8xX0FOX1NJX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQocmVtb3ZhbF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTYyNSwgMC4wNjc1LCAwLjA4LCAwLjA5MjUsIDAuMTA1LCAwLjEyMTI1LCAwLjEzIiwgXAotICAgICAgICAgICIwLjA2Mzc1LCAwLjA3NSwgMC4wODc1LCAwLjEsIDAuMTEyNSwgMC4xMjI1LCAwLjEzNzUiLCBcCi0gICAgICAgICAgIjAuMDcsIDAuMDgxMjUsIDAuMDkzNzUsIDAuMTA2MjUsIDAuMTE4NzUsIDAuMTI4NzUsIDAuMTQzNzUiLCBcCi0gICAgICAgICAgIjAuMDc2MjUsIDAuMDg3NSwgMC4xLCAwLjExMjUsIDAuMTI1LCAwLjEzNSwgMC4xNSIsIFwKLSAgICAgICAgICAiMC4wODI1LCAwLjA5Mzc1LCAwLjEwNjI1LCAwLjExODc1LCAwLjEyNSwgMC4xNDEyNSwgMC4xNTYyNSIsIFwKLSAgICAgICAgICAiMC4wOTEyNSwgMC4xMDI1LCAwLjExNSwgMC4xMjc1LCAwLjEzMzc1LCAwLjE1LCAwLjE1ODc1IiwgXAotICAgICAgICAgICIwLjA5NSwgMC4xMDYyNSwgMC4xMTg3NSwgMC4xMzEyNSwgMC4xNDM3NSwgMC4xNTM3NSwgMC4xNjg3NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oU0UpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTU3MTEzOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTU3MDY7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNTcxMTM7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA1NjQ0LCAwLjAwNTYyMiwgMC4wMDU2MTUsIDAuMDA1NjEzLCAwLjAwNTYyNSwgMC4wMDU2NCwgMC4wMDU2NjIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDcwMjgsIDAuMDA2OTc1LCAwLjAwNjk2NSwgMC4wMDY5NjQsIDAuMDA2OTgxLCAwLjAwNzAzMiwgMC4wMDcwNzMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiUk4iOwotICAgICAgc2RmX2NvbmQgOiAiUk4gPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDEyNSwgLTAuMDAxMjUsIDAuMDExMjUsIDAuMDE3NSwgMC4wMywgMC4wNCwgMC4wNTUiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTI1LCAwLCAwLjAxMjUsIDAuMDE4NzUsIDAuMDM1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDI1LCAtMC4wMTI1LCAwLCAwLjAwNjI1LCAwLjAyMjUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAxMjUsIDAsIDAuMDEsIDAuMDI1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDQzNzUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAuMDAzNzUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDY1LCAtMC4wNTM3NSwgLTAuMDQxMjUsIC0wLjAyODc1LCAtMC4wMjI1LCAtMC4wMDYyNSwgMC4wMDI1IiwgXAotICAgICAgICAgICItMC4wNjc1LCAtMC4wNjI1LCAtMC4wNSwgLTAuMDM3NSwgLTAuMDI1LCAtMC4wMTUsIC0wLjAwNjI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDYyNSwgMC4wMTEyNSwgMC4wMjM3NSwgMC4wMzYyNSwgMC4wNDg3NSwgMC4wNTg3NSwgMC4wNzM3NSIsIFwKLSAgICAgICAgICAiLTAuMDA1LCAwLjAwNjI1LCAwLjAxODc1LCAwLjAzMTI1LCAwLjAzNzUsIDAuMDUzNzUsIDAuMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDE3NSwgLTAuMDA2MjUsIDAuMDA2MjUsIDAuMDE4NzUsIDAuMDI1LCAwLjA0MTI1LCAwLjA1IiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDEyNSwgMCwgMC4wMDYyNSwgMC4wMTg3NSwgMC4wMjg3NSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAyNSwgLTAuMDEyNSwgMCwgMC4wMTI1LCAwLjAyMjUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjA0LCAtMC4wMjg3NSwgLTAuMDIyNSwgLTAuMDEsIC0wLjAwMzc1LCAwLjAxMjUsIDAuMDIxMjUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIDAuMDAzNzUsIDAuMDEyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiUk4iOwotICAgICAgc2RmX2NvbmQgOiAiUk4gPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY4NzUsIDAuMDU3NSwgMC4wNDUsIDAuMDM4NzUsIDAuMDMyNSwgMC4wMjI1LCAwLjAxMzc1IiwgXAotICAgICAgICAgICIwLjA3Mzc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMjc1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiMC4wODYyNSwgMC4wNzUsIDAuMDY4NzUsIDAuMDU2MjUsIDAuMDUsIDAuMDQsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiMC4wOTg3NSwgMC4wODc1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1MjUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMTExMjUsIDAuMSwgMC4wODc1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNjUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIjAuMTI3NSwgMC4xMTYyNSwgMC4xMDM3NSwgMC4wOTc1LCAwLjA5MTI1LCAwLjA4MTI1LCAwLjA3MjUiLCBcCi0gICAgICAgICAgIjAuMTM2MjUsIDAuMTMxMjUsIDAuMTE4NzUsIDAuMTEyNSwgMC4xLCAwLjA5NjI1LCAwLjA4NzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODc1LCAwLjA3NjI1LCAwLjA2Mzc1LCAwLjA1NzUsIDAuMDUxMjUsIDAuMDQxMjUsIDAuMDMyNSIsIFwKLSAgICAgICAgICAiMC4wOTI1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1MjUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMTA1LCAwLjA5Mzc1LCAwLjA4NzUsIDAuMDc1LCAwLjA2ODc1LCAwLjA1ODc1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICIwLjExMTI1LCAwLjEwNjI1LCAwLjA5Mzc1LCAwLjA4NzUsIDAuMDgxMjUsIDAuMDcxMjUsIDAuMDYyNSIsIFwKLSAgICAgICAgICAiMC4xMjM3NSwgMC4xMTI1LCAwLjEsIDAuMDkzNzUsIDAuMDg3NSwgMC4wNzc1LCAwLjA2ODc1IiwgXAotICAgICAgICAgICIwLjEzMzc1LCAwLjEyMjUsIDAuMTEsIDAuMTAzNzUsIDAuMDk3NSwgMC4wODc1LCAwLjA3ODc1IiwgXAotICAgICAgICAgICIwLjEzNjI1LCAwLjEyNSwgMC4xMTg3NSwgMC4xMDYyNSwgMC4xLCAwLjA5NjI1LCAwLjA4NzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFNJKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA5MzUxNjU7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwOTMxOTk4OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDkzNTE2NTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDM0NDMsIDAuMDAzNDEyLCAwLjAwMzM5NCwgMC4wMDMzODYsIDAuMDAzMzgsIDAuMDAzMzk2LCAwLjAwMzM5NSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNjIzNSwgMC4wMDYyMTgsIDAuMDA2MjA3LCAwLjAwNjIwMywgMC4wMDYyLCAwLjAwNjIwOSwgMC4wMDYyMTIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiUk4mU0UiOwotICAgICAgc2RmX2NvbmQgOiAiUk5fRVFfMV9BTl9TRV9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjA0Mzc1LCAtMC4wMzI1LCAtMC4wMjYyNSwgLTAuMDIsIC0wLjAxMzc1LCAtMC4wMDM3NSwgMC4wMDUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDE1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDYxMjUsIC0wLjA1NjI1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAyMTI1LCAtMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDczNzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjAzMzc1LCAtMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjA4LCAtMC4wNzUsIC0wLjA2ODc1LCAtMC4wNTYyNSwgLTAuMDU2MjUsIC0wLjA0NjI1LCAtMC4wMzc1IiwgXAotICAgICAgICAgICItMC4wOTYyNSwgLTAuMDkxMjUsIC0wLjA3ODc1LCAtMC4wNzI1LCAtMC4wNjYyNSwgLTAuMDU2MjUsIC0wLjA1Mzc1IiwgXAotICAgICAgICAgICItMC4xMTEyNSwgLTAuMSwgLTAuMDkzNzUsIC0wLjA4NzUsIC0wLjA4MTI1LCAtMC4wNzEyNSwgLTAuMDYyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAsIDAuMDA1LCAwLjAxNzUsIDAuMDMsIDAuMDM2MjUsIDAuMDUyNSwgMC4wNjEyNSIsIFwKLSAgICAgICAgICAiLTAuMDExMjUsIDAsIDAuMDEyNSwgMC4wMjUsIDAuMDMxMjUsIDAuMDQ3NSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiLTAuMDE3NSwgLTAuMDEyNSwgMCwgMC4wMTI1LCAwLjAyNSwgMC4wMzUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAuMDA2MjUsIDAuMDEyNSwgMC4wMjg3NSwgMC4wMzc1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDI1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMC4wMDYyNSwgMC4wMTYyNSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDQ2MjUsIC0wLjAzNSwgLTAuMDIyNSwgLTAuMDE2MjUsIC0wLjAwMzc1LCAwLjAwNjI1LCAwLjAxNSIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNDM3NSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDEyNSwgLTAuMDAyNSwgMC4wMDYyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiUk4mU0UiOwotICAgICAgc2RmX2NvbmQgOiAiUk5fRVFfMV9BTl9TRV9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2ODc1LCAwLjA2Mzc1LCAwLjA1MTI1LCAwLjA0NSwgMC4wMzg3NSwgMC4wMjg3NSwgMC4wMiIsIFwKLSAgICAgICAgICAiMC4wOCwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1LCAwLjA0Mzc1LCAwLjAzMzc1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICIwLjA5MjUsIDAuMDgxMjUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNDYyNSwgMC4wMzc1IiwgXAotICAgICAgICAgICIwLjEwNSwgMC4wOTM3NSwgMC4wODEyNSwgMC4wNzUsIDAuMDY4NzUsIDAuMDU4NzUsIDAuMDUiLCBcCi0gICAgICAgICAgIjAuMTExMjUsIDAuMSwgMC4wOTM3NSwgMC4wODEyNSwgMC4wNzUsIDAuMDY1LCAwLjA2MjUiLCBcCi0gICAgICAgICAgIjAuMTI3NSwgMC4xMTYyNSwgMC4xMSwgMC4wOTc1LCAwLjA5MTI1LCAwLjA4MTI1LCAwLjA3ODc1IiwgXAotICAgICAgICAgICIwLjE0MjUsIDAuMTMxMjUsIDAuMTE4NzUsIDAuMTEyNSwgMC4xMDYyNSwgMC4wOTYyNSwgMC4wODc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQzNzUsIDAuMDMyNSwgMC4wMiwgMC4wMDc1LCAtMC4wMDUsIC0wLjAyMTI1LCAtMC4wMyIsIFwKLSAgICAgICAgICAiMC4wNDg3NSwgMC4wNDM3NSwgMC4wMzEyNSwgMC4wMTg3NSwgMC4wMDYyNSwgLTAuMDEsIC0wLjAxODc1IiwgXAotICAgICAgICAgICIwLjA2MTI1LCAwLjA1LCAwLjAzNzUsIDAuMDI1LCAwLjAxMjUsIDAuMDAyNSwgLTAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4wNzM3NSwgMC4wNjI1LCAwLjA1LCAwLjAzNzUsIDAuMDI1LCAwLjAwODc1LCAwIiwgXAotICAgICAgICAgICIwLjA4LCAwLjA2ODc1LCAwLjA1NjI1LCAwLjA0Mzc1LCAwLjAzMTI1LCAwLjAxNSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiMC4wOTYyNSwgMC4wODUsIDAuMDcyNSwgMC4wNiwgMC4wNDc1LCAwLjAzMTI1LCAwLjAxNjI1IiwgXAotICAgICAgICAgICIwLjEwNSwgMC4wOTM3NSwgMC4wODEyNSwgMC4wNjg3NSwgMC4wNTYyNSwgMC4wNCwgMC4wMzEyNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogU0RGRlNIUVg0ICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoU0RGRlNIUVg0KSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuNjQxODY7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgZmYgKE4zMCxRQklOVCkgewotICAgIG5leHRfc3RhdGUgOiAiKChTRSBTSSkgKyAoIVNFIEQpKSI7Ci0gICAgY2xvY2tlZF9vbiA6ICJDSyI7Ci0gICAgcHJlc2V0IDogIighU04pIjsKLSAgfQotICBwaW4oQ0spICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY2NDczNTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2NjQ1MTY7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjY0NzM1OwotICAgIGNsb2NrIDogdHJ1ZTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDMyMTQsIDAuMDAzMTg5LCAwLjAwMzE4MiwgMC4wMDMxNzUsIDAuMDAzMTgyLCAwLjAwMzIwOCwgMC4wMDMyMjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDgwMTgsIDAuMDA3OTk2LCAwLjAwNzk4OCwgMC4wMDgwMDcsIDAuMDA4MDI3LCAwLjAwODA2LCAwLjAwODEyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQmIVNFJiFTSSZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fU0VfRVFfMF9BTl9TSV9FUV8wX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4xMzYxNTcsIDAuMTQ2MzA4LCAwLjE1OTE0LCAwLjE3MTcsIDAuMTgzMTYxLCAwLjE5OTIyMSwgMC4yMTIwMTMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjExMDY4MywgMC4xMjA1NTMsIDAuMTMyOTIxLCAwLjE0NDk5NywgMC4xNTU5ODYsIDAuMTcxMDE4LCAwLjE4MjU1NyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwODk2NDE1OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDg5MzE2NDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA4OTY0MTU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA0MjA2LCAwLjAwNDE3NCwgMC4wMDQxNTYsIDAuMDA0MTQ3LCAwLjAwNDE0LCAwLjAwNDE0NCwgMC4wMDQxNTQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDYxNzUsIDAuMDA2MTU3LCAwLjAwNjE0NywgMC4wMDYxNDEsIDAuMDA2MTQsIDAuMDA2MTQxLCAwLjAwNjE0OSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhU0UmU04iOwotICAgICAgc2RmX2NvbmQgOiAiU0VfRVFfMF9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjA0Mzc1LCAtMC4wMzI1LCAtMC4wMjYyNSwgLTAuMDIsIC0wLjAxMzc1LCAtMC4wMDM3NSwgMC4wMDUiLCBcCi0gICAgICAgICAgIi0wLjA1NSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAwODc1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDYxMjUsIC0wLjA1NjI1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAyMTI1LCAtMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wNzM3NSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDMzNzUsIC0wLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDg2MjUsIC0wLjA3NSwgLTAuMDY4NzUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDQsIC0wLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjA5NjI1LCAtMC4wOTEyNSwgLTAuMDc4NzUsIC0wLjA3MjUsIC0wLjA2NjI1LCAtMC4wNTYyNSwgLTAuMDUzNzUiLCBcCi0gICAgICAgICAgIi0wLjExMTI1LCAtMC4xLCAtMC4wOTM3NSwgLTAuMDg3NSwgLTAuMDgxMjUsIC0wLjA3MTI1LCAtMC4wNjI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDA2MjUsIDAuMDA1LCAwLjAxNzUsIDAuMDMsIDAuMDM2MjUsIDAuMDUyNSwgMC4wNjEyNSIsIFwKLSAgICAgICAgICAiLTAuMDExMjUsIDAsIDAuMDEyNSwgMC4wMTg3NSwgMC4wMzEyNSwgMC4wNDEyNSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxMjUsIDAsIDAuMDEyNSwgMC4wMTg3NSwgMC4wMzUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAsIDAuMDEyNSwgMC4wMjI1LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLCAwLjAxNjI1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDUyNSwgLTAuMDQxMjUsIC0wLjAyODc1LCAtMC4wMTYyNSwgLTAuMDEsIDAuMDA2MjUsIDAuMDE1IiwgXAotICAgICAgICAgICItMC4wNjEyNSwgLTAuMDUsIC0wLjAzNzUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAwMjUsIDAuMDA2MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFTRSZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJTRV9FUV8wX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc1LCAwLjA2Mzc1LCAwLjA1MTI1LCAwLjA0NSwgMC4wMzg3NSwgMC4wMjg3NSwgMC4wMiIsIFwKLSAgICAgICAgICAiMC4wODYyNSwgMC4wNzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNSwgMC4wNCwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4wOTI1LCAwLjA4NzUsIDAuMDc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDQ2MjUsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiMC4xMDUsIDAuMDkzNzUsIDAuMDgxMjUsIDAuMDc1LCAwLjA2ODc1LCAwLjA1ODc1LCAwLjA1IiwgXAotICAgICAgICAgICIwLjExNzUsIDAuMTA2MjUsIDAuMDkzNzUsIDAuMDg3NSwgMC4wODEyNSwgMC4wNzEyNSwgMC4wNjI1IiwgXAotICAgICAgICAgICIwLjEzMzc1LCAwLjEyMjUsIDAuMTEsIDAuMTAzNzUsIDAuMDkxMjUsIDAuMDgxMjUsIDAuMDc4NzUiLCBcCi0gICAgICAgICAgIjAuMTQyNSwgMC4xMzEyNSwgMC4xMjUsIDAuMTEyNSwgMC4xMDYyNSwgMC4wOTYyNSwgMC4wODc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY4NzUsIDAuMDU3NSwgMC4wNDUsIDAuMDMyNSwgMC4wMiwgMC4wMDM3NSwgLTAuMDExMjUiLCBcCi0gICAgICAgICAgIjAuMDczNzUsIDAuMDYyNSwgMC4wNSwgMC4wMzc1LCAwLjAyNSwgMC4wMDg3NSwgMCIsIFwKLSAgICAgICAgICAiMC4wODYyNSwgMC4wNzUsIDAuMDYyNSwgMC4wNSwgMC4wMzc1LCAwLjAyMTI1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICIwLjA5MjUsIDAuMDgxMjUsIDAuMDY4NzUsIDAuMDU2MjUsIDAuMDQzNzUsIDAuMDI3NSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4xMDUsIDAuMDkzNzUsIDAuMDgxMjUsIDAuMDY4NzUsIDAuMDU2MjUsIDAuMDQsIDAuMDI1IiwgXAotICAgICAgICAgICIwLjExNSwgMC4xMDM3NSwgMC4wOTEyNSwgMC4wNzg3NSwgMC4wNjYyNSwgMC4wNSwgMC4wNDEyNSIsIFwKLSAgICAgICAgICAiMC4xMywgMC4xMTg3NSwgMC4xMDYyNSwgMC4wOTM3NSwgMC4wODEyNSwgMC4wNjUsIDAuMDUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFEpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMS4wMzM3MzsKLSAgICBmdW5jdGlvbiA6ICJOMzAiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5vbl91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcmlzaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTExNzksIDAuMTgzNzYsIDAuMjU0OTAyLCAwLjMwNTY4MiwgMC4zODcwMjQsIDAuNDU4MTQ1LCAwLjU1OTc5MyIsIFwKLSAgICAgICAgICAiMC4xMjE5MTIsIDAuMTkzODc0LCAwLjI2NTAxNiwgMC4zMTU3OTgsIDAuMzk3MTQxLCAwLjQ2ODMwMiwgMC41Njk4NzciLCBcCi0gICAgICAgICAgIjAuMTM0NzA0LCAwLjIwNjY2NywgMC4yNzc4MjEsIDAuMzI4NjUxLCAwLjQwOTkzMiwgMC40ODEwNTksIDAuNTgyNjgyIiwgXAotICAgICAgICAgICIwLjE0NzE0LCAwLjIxOTEyMiwgMC4yOTAyNjQsIDAuMzQxMDkxLCAwLjQyMjM3MSwgMC40OTM0OTcsIDAuNTk1MTE5IiwgXAotICAgICAgICAgICIwLjE1ODY1OSwgMC4yMzA2MTksIDAuMzAxNzY2LCAwLjM1MjYwMSwgMC40MzM4ODMsIDAuNTA1MDA2LCAwLjYwNjYyNSIsIFwKLSAgICAgICAgICAiMC4xNzQ0NDcsIDAuMjQ2NDIzLCAwLjMxNzU2MywgMC4zNjg0MDUsIDAuNDQ5Njg3LCAwLjUyMDgwNCwgMC42MjI0MjQiLCBcCi0gICAgICAgICAgIjAuMTg3MTM1LCAwLjI1OTA5MywgMC4zMzAyMzUsIDAuMzgxMDQyLCAwLjQ2MjM1NSwgMC41MzM0NzYsIDAuNjM1MDk4Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDMwOTE0LCAwLjE3NDExLCAwLjMyMDU0MSwgMC40MjUwNzQsIDAuNTkzNzM0LCAwLjc0MDU5OSwgMC45NTA0OTgiLCBcCi0gICAgICAgICAgIjAuMDMwODkzLCAwLjE3NDExMSwgMC4zMjAwNTEsIDAuNDI1NjE3LCAwLjU5MzczMiwgMC43NDA2NzYsIDAuOTUwNDEzIiwgXAotICAgICAgICAgICIwLjAzMDg4MywgMC4xNzQwODcsIDAuMzIwODg0LCAwLjQyNTg4MywgMC41OTM3MTEsIDAuNzQwMjg3LCAwLjk0OTQwNSIsIFwKLSAgICAgICAgICAiMC4wMzA4ODIsIDAuMTc0MDc0LCAwLjMyMDg4OCwgMC40MjU4ODQsIDAuNTkzNzIxLCAwLjc0MDI2OSwgMC45NDk0MjEiLCBcCi0gICAgICAgICAgIjAuMDMwODkzLCAwLjE3NDIxOSwgMC4zMjA4NzgsIDAuNDI1ODc2LCAwLjU5MzcyOCwgMC43NDAyODgsIDAuOTQ5NDA3IiwgXAotICAgICAgICAgICIwLjAzMDg3NCwgMC4xNzQwMDcsIDAuMzIwNTIyLCAwLjQyNTg2LCAwLjU5MzcwNywgMC43NDA1NiwgMC45NDkzNTMiLCBcCi0gICAgICAgICAgIjAuMDMwODg2LCAwLjE3NDEyLCAwLjMyMDQ5NSwgMC40MjU2NjEsIDAuNTkzNjksIDAuNzQwNTUyLCAwLjk1MDM5NiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEzNjE1NywgMC4yMTA1NjMsIDAuMjgzOTI2LCAwLjMzNjMwOCwgMC40MjAxNjMsIDAuNDkzNTAxLCAwLjU5ODI1NCIsIFwKLSAgICAgICAgICAiMC4xNDYzMDgsIDAuMjIwNzA3LCAwLjI5NDA2NiwgMC4zNDY0NTEsIDAuNDMwMjgzLCAwLjUwMzY2MSwgMC42MDgzODYiLCBcCi0gICAgICAgICAgIjAuMTU5MTQsIDAuMjMzNTM5LCAwLjMwNjg5OCwgMC4zNTkyOTcsIDAuNDQzMTE4LCAwLjUxNjQ4OCwgMC42MjEyNDciLCBcCi0gICAgICAgICAgIjAuMTcxNywgMC4yNDYwOTcsIDAuMzE5NDYsIDAuMzcxODQzLCAwLjQ1NTY3NSwgMC41MjkwMzgsIDAuNjMzNzkiLCBcCi0gICAgICAgICAgIjAuMTgzMTYxLCAwLjI1NzU2OSwgMC4zMzA5MjYsIDAuMzgzMzA5LCAwLjQ2NzE0MiwgMC41NDA1MDYsIDAuNjQ1MjU4IiwgXAotICAgICAgICAgICIwLjE5OTIyMSwgMC4yNzM2MTQsIDAuMzQ2OTc3LCAwLjM5OTM1OSwgMC40ODMxODQsIDAuNTU2NTAxLCAwLjY2MTMxNSIsIFwKLSAgICAgICAgICAiMC4yMTIwMTMsIDAuMjg2NDIxLCAwLjM1OTc4NCwgMC40MTIxNjksIDAuNDk2MDI4LCAwLjU2OTM2NiwgMC42NzQxNTUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzEzNjcsIDAuMTc2NDAzLCAwLjMyNTAzOCwgMC40MzEzNzgsIDAuNjAwMzUsIDAuNzUwNjg1LCAwLjk2MzMwNCIsIFwKLSAgICAgICAgICAiMC4wMzEzOCwgMC4xNzYzNiwgMC4zMjUxMDcsIDAuNDMwODM1LCAwLjYwMDI4NiwgMC43NTA3MDQsIDAuOTYxNzQyIiwgXAotICAgICAgICAgICIwLjAzMTM3NCwgMC4xNzYzNTUsIDAuMzI1MTA5LCAwLjQzMTUwNiwgMC42MDA0ODYsIDAuNzUwNywgMC45NjE1NjIiLCBcCi0gICAgICAgICAgIjAuMDMxMzc0LCAwLjE3NjI3MywgMC4zMjQ1NzgsIDAuNDMwNzQyLCAwLjYwMDI0NywgMC43NTA2NjcsIDAuOTYzMzE3IiwgXAotICAgICAgICAgICIwLjAzMTM3LCAwLjE3NjI5NywgMC4zMjQ1NzgsIDAuNDMwNzU3LCAwLjYwMDI0NCwgMC43NTA2ODQsIDAuOTYzMjk5IiwgXAotICAgICAgICAgICIwLjAzMTM4MiwgMC4xNzYyNzYsIDAuMzI0NTQyLCAwLjQzMDcwMiwgMC42MDE1NDMsIDAuNzUwMzQ3LCAwLjk2MzI5NCIsIFwKLSAgICAgICAgICAiMC4wMzEzNywgMC4xNzYzNiwgMC4zMjUxMTMsIDAuNDMxMzc5LCAwLjYwMDE0NSwgMC43NTA2OTEsIDAuOTYzMjk5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiBwcmVzZXQ7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDkzMDQ4LCAwLjE2NTAwMywgMC4yMzYxNjEsIDAuMjg2OTc5LCAwLjM2ODE3NSwgMC40Mzk0ODcsIDAuNTQxMDE1IiwgXAotICAgICAgICAgICIwLjEwMjc2OCwgMC4xNzQ3MzksIDAuMjQ1OTE5LCAwLjI5NjcwNiwgMC4zNzgsIDAuNDQ5MTMyLCAwLjU1MDc2MSIsIFwKLSAgICAgICAgICAiMC4xMTUxNjIsIDAuMTg3MDk4LCAwLjI1ODI1NywgMC4zMDkwMjQsIDAuMzkwMzY4LCAwLjQ2MTUwOCwgMC41NjMxMTciLCBcCi0gICAgICAgICAgIjAuMTI2ODIyLCAwLjE5ODc1OCwgMC4yNjk5MTYsIDAuMzIwNzA3LCAwLjQwMjAyNiwgMC40NzMxNjYsIDAuNTc0Nzc4IiwgXAotICAgICAgICAgICIwLjEzNzY1NSwgMC4yMDk2MTgsIDAuMjgwNzcsIDAuMzMxNTk5LCAwLjQxMjg4MywgMC40ODQwMjQsIDAuNTg1NjUzIiwgXAotICAgICAgICAgICIwLjE1MzI1MSwgMC4yMjUxMzMsIDAuMjk2Mjg5LCAwLjM0NzE1NCwgMC40Mjg0LCAwLjQ5OTU0MiwgMC42MDExNjEiLCBcCi0gICAgICAgICAgIjAuMTY1MjE4LCAwLjIzNzE4NywgMC4zMDgzNCwgMC4zNTkxNjgsIDAuNDQwNDU3LCAwLjUxMTU4MywgMC42MTMyMDYiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzA3OSwgMC4xNzQyNSwgMC4zMjA4NTEsIDAuNDI1ODQ1LCAwLjU5MzY2OCwgMC43NDA4MzMsIDAuOTQ5MjY1IiwgXAotICAgICAgICAgICIwLjAzMDc4OSwgMC4xNzQyNDEsIDAuMzIwMzEzLCAwLjQyNTgzOSwgMC41OTMwMzIsIDAuNzQwNzM4LCAwLjk1MDIyMiIsIFwKLSAgICAgICAgICAiMC4wMzA4MTUsIDAuMTc0MjI5LCAwLjMyMDkyNiwgMC40MjU4MzgsIDAuNTkzNjU1LCAwLjc0MDQ4LCAwLjk1MDQ2NCIsIFwKLSAgICAgICAgICAiMC4wMzA3ODMsIDAuMTc0MjA4LCAwLjMyMDg5MSwgMC40MjU4MTUsIDAuNTkzNjU3LCAwLjc0MDQ4LCAwLjk1MDQ1MiIsIFwKLSAgICAgICAgICAiMC4wMzA3OTksIDAuMTc0MjAxLCAwLjMyMDg1MywgMC40MjU4MjUsIDAuNTkzNiwgMC43NDAzNzIsIDAuOTUwMzg4IiwgXAotICAgICAgICAgICIwLjAzMDkzMSwgMC4xNzQyNjQsIDAuMzIwODg3LCAwLjQyNTgxNCwgMC41OTM2NDcsIDAuNzQwNDU3LCAwLjk1MDAwMyIsIFwKLSAgICAgICAgICAiMC4wMzEwNDcsIDAuMTc0MjcxLCAwLjMyMDg2NSwgMC40MjU4MDQsIDAuNTkzNTk3LCAwLjc0MDUwNSwgMC45NTAzNDUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTExOTQsIDAuMDExMzM3LCAwLjAxMTM1NCwgMC4wMTEzNiwgMC4wMTEzNjQsIDAuMDExMzY2LCAwLjAxMTM2OCIsIFwKLSAgICAgICAgICAiMC4wMTExNjQsIDAuMDExMzA3LCAwLjAxMTMyNiwgMC4wMTEzMzEsIDAuMDExMzM0LCAwLjAxMTMzNiwgMC4wMTEzNDEiLCBcCi0gICAgICAgICAgIjAuMDExMTUxLCAwLjAxMTI5MywgMC4wMTEzMSwgMC4wMTEzMTcsIDAuMDExMzIzLCAwLjAxMTMyMiwgMC4wMTEzMjQiLCBcCi0gICAgICAgICAgIjAuMDExMTQ0LCAwLjAxMTI4NywgMC4wMTEzMDYsIDAuMDExMzEsIDAuMDExMzE0LCAwLjAxMTMxOCwgMC4wMTEzMiIsIFwKLSAgICAgICAgICAiMC4wMTExNDksIDAuMDExMjkyLCAwLjAxMTMwOSwgMC4wMTEzMTQsIDAuMDExMzE5LCAwLjAxMTMyMSwgMC4wMTEzMjQiLCBcCi0gICAgICAgICAgIjAuMDExMTY2LCAwLjAxMTMxNCwgMC4wMTEzMzUsIDAuMDExMzM4LCAwLjAxMTM0MywgMC4wMTEzNDcsIDAuMDExMzQ5IiwgXAotICAgICAgICAgICIwLjAxMTE3OCwgMC4wMTEzMjgsIDAuMDExMzQ2LCAwLjAxMTM1MiwgMC4wMTEzNTYsIDAuMDExMzU4LCAwLjAxMTM2MSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEwODU3LCAwLjAxMTA2MSwgMC4wMTEwOSwgMC4wMTEwOTksIDAuMDExMTA3LCAwLjAxMTExMSwgMC4wMTExMTUiLCBcCi0gICAgICAgICAgIjAuMDEwODM1LCAwLjAxMTAzNiwgMC4wMTEwNjUsIDAuMDExMDc0LCAwLjAxMTA4MiwgMC4wMTEwODYsIDAuMDExMDg5IiwgXAotICAgICAgICAgICIwLjAxMDgzMiwgMC4wMTEwMzIsIDAuMDExMDYyLCAwLjAxMTA3LCAwLjAxMTA3OCwgMC4wMTEwODIsIDAuMDExMDg2IiwgXAotICAgICAgICAgICIwLjAxMDg0NiwgMC4wMTEwNDksIDAuMDExMDc4LCAwLjAxMTA4NywgMC4wMTEwOTUsIDAuMDExMDk5LCAwLjAxMTEwMyIsIFwKLSAgICAgICAgICAiMC4wMTA4NTMsIDAuMDExMDYsIDAuMDExMDksIDAuMDExMDk5LCAwLjAxMTEwNywgMC4wMTExMTEsIDAuMDExMTE1IiwgXAotICAgICAgICAgICIwLjAxMDkxOSwgMC4wMTExMiwgMC4wMTExNDksIDAuMDExMTU4LCAwLjAxMTE2NSwgMC4wMTExNjksIDAuMDExMTczIiwgXAotICAgICAgICAgICIwLjAxMDkzNywgMC4wMTExNDUsIDAuMDExMTc1LCAwLjAxMTE4NSwgMC4wMTExOTMsIDAuMDExMTk3LCAwLjAxMTIwMSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMjA4LCAwLjAxMjIyNywgMC4wMTIyNDgsIDAuMDEyMjU2LCAwLjAxMjI2LCAwLjAxMjI1OSwgMC4wMTIyNjYiLCBcCi0gICAgICAgICAgIjAuMDEyMDM2LCAwLjAxMjE4MiwgMC4wMTIyMDMsIDAuMDEyMjA5LCAwLjAxMjIxMiwgMC4wMTIyMTYsIDAuMDEyMjE4IiwgXAotICAgICAgICAgICIwLjAxMjAwMiwgMC4wMTIxNDksIDAuMDEyMTY4LCAwLjAxMjE3NCwgMC4wMTIxODksIDAuMDEyMTgxLCAwLjAxMjE5MyIsIFwKLSAgICAgICAgICAiMC4wMTE5NzUsIDAuMDEyMTIzLCAwLjAxMjE0MiwgMC4wMTIxNTIsIDAuMDEyMTYyLCAwLjAxMjE1NiwgMC4wMTIxNjgiLCBcCi0gICAgICAgICAgIjAuMDExOTU4LCAwLjAxMjEwNywgMC4wMTIxMywgMC4wMTIxMzUsIDAuMDEyMTQxLCAwLjAxMjE0MiwgMC4wMTIxNDYiLCBcCi0gICAgICAgICAgIjAuMDExOTY0LCAwLjAxMjEyOCwgMC4wMTIxNSwgMC4wMTIxNTYsIDAuMDEyMTYyLCAwLjAxMjE2NywgMC4wMTIxNjgiLCBcCi0gICAgICAgICAgIjAuMDExOTc3LCAwLjAxMjEyMiwgMC4wMTIxNDgsIDAuMDEyMTU4LCAwLjAxMjE2MSwgMC4wMTIxNjQsIDAuMDEyMTY3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHNjYWxhcikgewotICAgICAgICB2YWx1ZXMoIjAiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFNFKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE0OTY0OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTQ5NTE4OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTQ5NjQ7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA1ODM3LCAwLjAwNTgxNywgMC4wMDU4MDcsIDAuMDA1ODA1LCAwLjAwNTgxNCwgMC4wMDU4MjksIDAuMDA1ODQ4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA3NTczLCAwLjAwNzUyLCAwLjAwNzUxNywgMC4wMDc1MDgsIDAuMDA3NTI2LCAwLjAwNzU2NSwgMC4wMDc2MSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJTTiA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMTg3NSwgLTAuMDA3NSwgMC4wMDUsIDAuMDE3NSwgMC4wMjM3NSwgMC4wNCwgMC4wNDg3NSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAxODc1LCAtMC4wMDYyNSwgMC4wMDYyNSwgMC4wMTI1LCAwLjAyODc1LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAsIDAuMDE2MjUsIDAuMDI1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDM3NSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAuMDEsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjA1NSwgLTAuMDUsIC0wLjAzNzUsIC0wLjAyNSwgLTAuMDEyNSwgLTAuMDAyNSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDcxMjUsIC0wLjA2LCAtMC4wNDc1LCAtMC4wMzUsIC0wLjAyODc1LCAtMC4wMTI1LCAtMC4wMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDgsIC0wLjA2ODc1LCAtMC4wNTYyNSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAyMTI1LCAtMC4wMTI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDYyNSwgMC4wMTEyNSwgMC4wMjM3NSwgMC4wMzYyNSwgMC4wNDI1LCAwLjA1ODc1LCAwLjA2NzUiLCBcCi0gICAgICAgICAgIi0wLjAwNSwgMC4wMDYyNSwgMC4wMTg3NSwgMC4wMjUsIDAuMDM3NSwgMC4wNTM3NSwgMC4wNjI1IiwgXAotICAgICAgICAgICItMC4wMTc1LCAtMC4wMDYyNSwgMC4wMDYyNSwgMC4wMTg3NSwgMC4wMjUsIDAuMDQxMjUsIDAuMDUiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAuMDA2MjUsIDAuMDE4NzUsIDAuMDI4NzUsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAyNSwgLTAuMDEyNSwgMCwgMC4wMDYyNSwgMC4wMjI1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wNDYyNSwgLTAuMDM1LCAtMC4wMjI1LCAtMC4wMTYyNSwgLTAuMDAzNzUsIDAuMDA2MjUsIDAuMDIxMjUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wNDM3NSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDEyNSwgLTAuMDAyNSwgMC4wMDYyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiU04iOwotICAgICAgc2RmX2NvbmQgOiAiU04gPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDgxMjUsIDAuMDcsIDAuMDU3NSwgMC4wNDUsIDAuMDMyNSwgMC4wMjI1LCAwLjAxMzc1IiwgXAotICAgICAgICAgICIwLjA5MjUsIDAuMDgxMjUsIDAuMDY4NzUsIDAuMDU2MjUsIDAuMDQzNzUsIDAuMDI3NSwgMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMTA1LCAwLjA5Mzc1LCAwLjA4MTI1LCAwLjA2ODc1LCAwLjA1NjI1LCAwLjA0LCAwLjAzMTI1IiwgXAotICAgICAgICAgICIwLjExMTI1LCAwLjEsIDAuMDg3NSwgMC4wNzUsIDAuMDYyNSwgMC4wNTI1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjEyMzc1LCAwLjExMjUsIDAuMSwgMC4wODc1LCAwLjA3NSwgMC4wNjUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIjAuMTMzNzUsIDAuMTIyNSwgMC4xMSwgMC4wOTc1LCAwLjA5MTI1LCAwLjA4MTI1LCAwLjA3MjUiLCBcCi0gICAgICAgICAgIjAuMTQyNSwgMC4xMzEyNSwgMC4xMTg3NSwgMC4xMTI1LCAwLjEsIDAuMDksIDAuMDg3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5Mzc1LCAwLjA4MjUsIDAuMDcsIDAuMDU3NSwgMC4wNTEyNSwgMC4wNDEyNSwgMC4wMzg3NSIsIFwKLSAgICAgICAgICAiMC4wOTg3NSwgMC4wODc1LCAwLjA4MTI1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDUyNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4xMTEyNSwgMC4xLCAwLjA4NzUsIDAuMDgxMjUsIDAuMDc1LCAwLjA2NSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiMC4xMjM3NSwgMC4xMTI1LCAwLjEsIDAuMDkzNzUsIDAuMDgxMjUsIDAuMDcxMjUsIDAuMDY4NzUiLCBcCi0gICAgICAgICAgIjAuMTMsIDAuMTE4NzUsIDAuMTA2MjUsIDAuMSwgMC4wOTM3NSwgMC4wODM3NSwgMC4wNzUiLCBcCi0gICAgICAgICAgIjAuMTQsIDAuMTI4NzUsIDAuMTE2MjUsIDAuMTEsIDAuMTAzNzUsIDAuMDkzNzUsIDAuMDg1IiwgXAotICAgICAgICAgICIwLjE0ODc1LCAwLjEzNzUsIDAuMTI1LCAwLjExODc1LCAwLjExMjUsIDAuMTAyNSwgMC4wOTM3NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oU0kpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDkxNjM7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwOTEzMjM0OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDkxNjM7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzNzY0LCAwLjAwMzczMywgMC4wMDM3MTUsIDAuMDAzNzA2LCAwLjAwMzY5OCwgMC4wMDM3MDgsIDAuMDAzNzExIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA2NDU3LCAwLjAwNjQ0LCAwLjAwNjQyOSwgMC4wMDY0MjUsIDAuMDA2NDIyLCAwLjAwNjQyNywgMC4wMDY0MzQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiU0UmU04iOwotICAgICAgc2RmX2NvbmQgOiAiU0VfRVFfMV9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjA0Mzc1LCAtMC4wMzI1LCAtMC4wMjYyNSwgLTAuMDIsIC0wLjAwNzUsIC0wLjAwMzc1LCAwLjAwNSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjA0Mzc1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDA4NzUsIDAiLCBcCi0gICAgICAgICAgIi0wLjA2MTI1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMjEyNSwgLTAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDczNzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjAzMzc1LCAtMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjA4LCAtMC4wNzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDQsIC0wLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjA5NjI1LCAtMC4wOTEyNSwgLTAuMDc4NzUsIC0wLjA3MjUsIC0wLjA2NjI1LCAtMC4wNTYyNSwgLTAuMDQ3NSIsIFwKLSAgICAgICAgICAiLTAuMTExMjUsIC0wLjEsIC0wLjA5Mzc1LCAtMC4wODEyNSwgLTAuMDgxMjUsIC0wLjA3MTI1LCAtMC4wNjI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDA2MjUsIDAuMDA1LCAwLjAxNzUsIDAuMDMsIDAuMDM2MjUsIDAuMDUyNSwgMC4wNjEyNSIsIFwKLSAgICAgICAgICAiLTAuMDExMjUsIDAsIDAuMDEyNSwgMC4wMTg3NSwgMC4wMzEyNSwgMC4wNDEyNSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxMjUsIDAsIDAuMDEyNSwgMC4wMTg3NSwgMC4wMzUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAsIDAuMDEyNSwgMC4wMjI1LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMDYyNSwgMC4wMDYyNSwgMC4wMTYyNSwgMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjA0NjI1LCAtMC4wNDEyNSwgLTAuMDI4NzUsIC0wLjAxNjI1LCAtMC4wMSwgMC4wMDYyNSwgMC4wMTUiLCBcCi0gICAgICAgICAgIi0wLjA1NSwgLTAuMDUsIC0wLjAzNzUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAwMjUsIDAuMDA2MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlNFJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIlNFX0VRXzFfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzUsIDAuMDYzNzUsIDAuMDUxMjUsIDAuMDQ1LCAwLjAzODc1LCAwLjAyODc1LCAwLjAyIiwgXAotICAgICAgICAgICIwLjA4LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDUsIDAuMDQzNzUsIDAuMDMzNzUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMDkyNSwgMC4wODEyNSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA0NjI1LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIjAuMTA1LCAwLjA5Mzc1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNTg3NSwgMC4wNSIsIFwKLSAgICAgICAgICAiMC4xMTEyNSwgMC4xMDYyNSwgMC4wOTM3NSwgMC4wODEyNSwgMC4wNzUsIDAuMDY1LCAwLjA2MjUiLCBcCi0gICAgICAgICAgIjAuMTI3NSwgMC4xMTYyNSwgMC4xMSwgMC4wOTc1LCAwLjA5MTI1LCAwLjA4MTI1LCAwLjA3MjUiLCBcCi0gICAgICAgICAgIjAuMTQyNSwgMC4xMzEyNSwgMC4xMTg3NSwgMC4xMTI1LCAwLjEwNjI1LCAwLjA5NjI1LCAwLjA4NzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjg3NSwgMC4wNTc1LCAwLjA0NSwgMC4wMzI1LCAwLjAyLCAwLjAwMzc1LCAtMC4wMTEyNSIsIFwKLSAgICAgICAgICAiMC4wNzM3NSwgMC4wNjI1LCAwLjA1LCAwLjAzNzUsIDAuMDI1LCAwLjAwODc1LCAwIiwgXAotICAgICAgICAgICIwLjA4NjI1LCAwLjA3NSwgMC4wNjI1LCAwLjA1LCAwLjAzNzUsIDAuMDIxMjUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMDkyNSwgMC4wODEyNSwgMC4wNjg3NSwgMC4wNTYyNSwgMC4wNDM3NSwgMC4wMjc1LCAwLjAxODc1IiwgXAotICAgICAgICAgICIwLjEwNSwgMC4wOTM3NSwgMC4wODEyNSwgMC4wNjg3NSwgMC4wNTYyNSwgMC4wNCwgMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMTE1LCAwLjEwMzc1LCAwLjA5MTI1LCAwLjA3ODc1LCAwLjA2NjI1LCAwLjA1LCAwLjA0MTI1IiwgXAotICAgICAgICAgICIwLjEzLCAwLjExODc1LCAwLjEwNjI1LCAwLjA5Mzc1LCAwLjA4MTI1LCAwLjA2NSwgMC4wNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oU04pICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTcxMTA5OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTU4MjM3OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTcxMTA5OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDY1MywgMC4wMDA2NTIsIDAuMDAwNjUyLCAwLjAwMDY1MiwgMC4wMDA2NTIsIDAuMDAwNjUyLCAwLjAwMDY1MSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDY2MywgMC4wMDA2NTYsIDAuMDAwNjU0LCAwLjAwMDY1NCwgMC4wMDA2NTQsIDAuMDAwNjU0LCAwLjAwMDY1NCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQmIVNFJiFTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fU0VfRVFfMF9BTl9TSV9FUV8wID09IDEnYjEiOwotICAgICAgZmFsbF9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDkzMDQ3LCAwLjEwMjc2OCwgMC4xMTUxNjIsIDAuMTI2ODIxLCAwLjEzNzY1NCwgMC4xNTMyNSwgMC4xNjUyMTgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiByZWNvdmVyeV9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEJiFTRSYhU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1NFX0VRXzBfQU5fU0lfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChyZWNvdmVyeV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDA2MjUsIC0wLjAxMTI1LCAtMC4wMywgLTAuMDQyNSwgLTAuMDU1LCAtMC4wNzEyNSwgLTAuMDg2MjUiLCBcCi0gICAgICAgICAgIjAuMDA1LCAtMC4wMDYyNSwgLTAuMDE4NzUsIC0wLjAzMTI1LCAtMC4wNDM3NSwgLTAuMDY2MjUsIC0wLjA3NSIsIFwKLSAgICAgICAgICAiMC4wMTc1LCAwLjAwNjI1LCAtMC4wMDYyNSwgLTAuMDI1LCAtMC4wMzc1LCAtMC4wNTM3NSwgLTAuMDY4NzUiLCBcCi0gICAgICAgICAgIjAuMDIzNzUsIDAuMDEyNSwgMCwgLTAuMDEyNSwgLTAuMDI1LCAtMC4wNDEyNSwgLTAuMDU2MjUiLCBcCi0gICAgICAgICAgIjAuMDM2MjUsIDAuMDI1LCAwLjAxMjUsIDAsIC0wLjAxMjUsIC0wLjAzNSwgLTAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMDUyNSwgMC4wNDEyNSwgMC4wMjg3NSwgMC4wMTYyNSwgMC4wMDM3NSwgLTAuMDE4NzUsIC0wLjAyNzUiLCBcCi0gICAgICAgICAgIjAuMDY3NSwgMC4wNTYyNSwgMC4wNDM3NSwgMC4wMzEyNSwgMC4wMTI1LCAtMC4wMDM3NSwgLTAuMDEyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJlbW92YWxfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRCYhU0UmIVNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9TRV9FUV8wX0FOX1NJX0VRXzAgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQocmVtb3ZhbF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDM3NSwgMC4wNTUsIDAuMDY3NSwgMC4wOCwgMC4wOTI1LCAwLjEwODc1LCAwLjExNzUiLCBcCi0gICAgICAgICAgIjAuMDMyNSwgMC4wNDM3NSwgMC4wNTYyNSwgMC4wNjg3NSwgMC4wODEyNSwgMC4wOTc1LCAwLjExMjUiLCBcCi0gICAgICAgICAgIjAuMDI2MjUsIDAuMDM3NSwgMC4wNSwgMC4wNjI1LCAwLjA2ODc1LCAwLjA4NSwgMC4xIiwgXAotICAgICAgICAgICIwLjAxMzc1LCAwLjAyNSwgMC4wMzc1LCAwLjA1LCAwLjA2MjUsIDAuMDc4NzUsIDAuMDg3NSIsIFwKLSAgICAgICAgICAiMC4wMDc1LCAwLjAxMjUsIDAuMDI1LCAwLjAzNzUsIDAuMDUsIDAuMDY2MjUsIDAuMDgxMjUiLCBcCi0gICAgICAgICAgIi0wLjAwODc1LCAwLjAwMjUsIDAuMDE1LCAwLjAyNzUsIDAuMDQsIDAuMDU2MjUsIDAuMDY1IiwgXAotICAgICAgICAgICItMC4wMTc1LCAtMC4wMDYyNSwgMC4wMDYyNSwgMC4wMTg3NSwgMC4wMzEyNSwgMC4wNDEyNSwgMC4wNTYyNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogU0RGRlNIUVg4ICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoU0RGRlNIUVg4KSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuODYwMzgxOwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIGZmIChOMzAsUUJJTlQpIHsKLSAgICBuZXh0X3N0YXRlIDogIigoU0UgU0kpICsgKCFTRSBEKSkiOwotICAgIGNsb2NrZWRfb24gOiAiQ0siOwotICAgIHByZXNldCA6ICIoIVNOKSI7Ci0gIH0KLSAgcGluKENLKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2MDU4MjM7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjA1NTk3OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDYwNTgyMzsKLSAgICBjbG9jayA6IHRydWU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzMjI4LCAwLjAwMzIwNSwgMC4wMDMxOTQsIDAuMDAzMTksIDAuMDAzMiwgMC4wMDMyMjMsIDAuMDAzMjQ2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA4MDkyLCAwLjAwODA3MSwgMC4wMDgwNzcsIDAuMDA4MDg0LCAwLjAwODA5MywgMC4wMDgxNDUsIDAuMDA4MTgxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRCYhU0UmIVNJJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9TRV9FUV8wX0FOX1NJX0VRXzBfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjE0MjY5NSwgMC4xNTI5MjIsIDAuMTY1NzU3LCAwLjE3ODQ0NywgMC4xODk5NTEsIDAuMjA2MjAyLCAwLjIxOTAwNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMTExMzExLCAwLjEyMTIyNywgMC4xMzM2NzUsIDAuMTQ1Nzk3LCAwLjE1Njc4OSwgMC4xNzE4NTIsIDAuMTgzNDYxIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihEKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA4NTc3Nzg7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwODU0MzQzOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDg1Nzc3ODsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDQyNiwgMC4wMDQyMjgsIDAuMDA0MjEsIDAuMDA0MiwgMC4wMDQxOTMsIDAuMDA0MTk3LCAwLjAwNDIwNyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNjM4NywgMC4wMDYzNjksIDAuMDA2MzU4LCAwLjAwNjM1MywgMC4wMDYzNTEsIDAuMDA2MzUyLCAwLjAwNjM2MiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhU0UmU04iOwotICAgICAgc2RmX2NvbmQgOiAiU0VfRVFfMF9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjA0Mzc1LCAtMC4wMzg3NSwgLTAuMDI2MjUsIC0wLjAyLCAtMC4wMTM3NSwgLTAuMDAzNzUsIDAuMDA1IiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMDg3NSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA2MTI1LCAtMC4wNTYyNSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMjEyNSwgLTAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDczNzUsIC0wLjA2ODc1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wMzM3NSwgLTAuMDI1IiwgXAotICAgICAgICAgICItMC4wODYyNSwgLTAuMDc1LCAtMC4wNjg3NSwgLTAuMDYyNSwgLTAuMDUsIC0wLjA0NjI1LCAtMC4wMzc1IiwgXAotICAgICAgICAgICItMC4xMDI1LCAtMC4wOTEyNSwgLTAuMDg1LCAtMC4wNzI1LCAtMC4wNjYyNSwgLTAuMDU2MjUsIC0wLjA1Mzc1IiwgXAotICAgICAgICAgICItMC4xMTEyNSwgLTAuMSwgLTAuMDkzNzUsIC0wLjA4NzUsIC0wLjA4MTI1LCAtMC4wNzEyNSwgLTAuMDYyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAwNjI1LCAwLjAwNSwgMC4wMTc1LCAwLjAzLCAwLjAzNjI1LCAwLjA1MjUsIDAuMDYxMjUiLCBcCi0gICAgICAgICAgIi0wLjAxMTI1LCAtMC4wMDYyNSwgMC4wMDYyNSwgMC4wMTg3NSwgMC4wMzEyNSwgMC4wNDEyNSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxMjUsIDAsIDAuMDEyNSwgMC4wMTg3NSwgMC4wMzUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMjUsIC0wLjAxMjUsIDAsIDAuMDEyNSwgMC4wMjI1LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAsIDAuMDE2MjUsIDAuMDI1IiwgXAotICAgICAgICAgICItMC4wNTI1LCAtMC4wNDEyNSwgLTAuMDI4NzUsIC0wLjAxNjI1LCAtMC4wMSwgMC4wMDYyNSwgMC4wMTUiLCBcCi0gICAgICAgICAgIi0wLjA2MTI1LCAtMC4wNSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAxODc1LCAtMC4wMDg3NSwgMC4wMDYyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIVNFJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIlNFX0VRXzBfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzUsIDAuMDcsIDAuMDU3NSwgMC4wNDUsIDAuMDM4NzUsIDAuMDI4NzUsIDAuMDIiLCBcCi0gICAgICAgICAgIjAuMDg2MjUsIDAuMDc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDUsIDAuMDQsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMDk4NzUsIDAuMDg3NSwgMC4wNzUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNTI1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjExMTI1LCAwLjEsIDAuMDg3NSwgMC4wNzUsIDAuMDY4NzUsIDAuMDU4NzUsIDAuMDUiLCBcCi0gICAgICAgICAgIjAuMTE3NSwgMC4xMDYyNSwgMC4wOTM3NSwgMC4wODc1LCAwLjA4MTI1LCAwLjA3MTI1LCAwLjA2MjUiLCBcCi0gICAgICAgICAgIjAuMTMzNzUsIDAuMTIyNSwgMC4xMSwgMC4xMDM3NSwgMC4wOTc1LCAwLjA4NzUsIDAuMDc4NzUiLCBcCi0gICAgICAgICAgIjAuMTQ4NzUsIDAuMTM3NSwgMC4xMjUsIDAuMTE4NzUsIDAuMTA2MjUsIDAuMTAyNSwgMC4wOTM3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2ODc1LCAwLjA1NzUsIDAuMDQ1LCAwLjAzMjUsIDAuMDIsIDAuMDAzNzUsIC0wLjAwNSIsIFwKLSAgICAgICAgICAiMC4wOCwgMC4wNjg3NSwgMC4wNTYyNSwgMC4wNDM3NSwgMC4wMzEyNSwgMC4wMTUsIDAiLCBcCi0gICAgICAgICAgIjAuMDg2MjUsIDAuMDc1LCAwLjA2MjUsIDAuMDUsIDAuMDM3NSwgMC4wMjEyNSwgMC4wMTI1IiwgXAotICAgICAgICAgICIwLjA5ODc1LCAwLjA4NzUsIDAuMDc1LCAwLjA2MjUsIDAuMDUsIDAuMDMzNzUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMTA1LCAwLjA5Mzc1LCAwLjA4MTI1LCAwLjA2ODc1LCAwLjA1NjI1LCAwLjA0LCAwLjAzMTI1IiwgXAotICAgICAgICAgICIwLjEyMTI1LCAwLjExLCAwLjA5NzUsIDAuMDg1LCAwLjA3MjUsIDAuMDU2MjUsIDAuMDQxMjUiLCBcCi0gICAgICAgICAgIjAuMTMsIDAuMTE4NzUsIDAuMTA2MjUsIDAuMDkzNzUsIDAuMDgxMjUsIDAuMDY1LCAwLjA1NjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihRKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDIuMDMwOTsKLSAgICBmdW5jdGlvbiA6ICJOMzAiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5vbl91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcmlzaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTE5OTcsIDAuMTU3ODEyLCAwLjE5MzgxMSwgMC4yMTk1LCAwLjI2MDU1NywgMC4yOTY0ODMsIDAuMzQ3ODE2IiwgXAotICAgICAgICAgICIwLjEzMDA3NiwgMC4xNjc5MjMsIDAuMjAzOTIsIDAuMjI5NjA3LCAwLjI3MDY3MiwgMC4zMDY1OTUsIDAuMzU3OTMyIiwgXAotICAgICAgICAgICIwLjE0Mjg3LCAwLjE4MDcyNCwgMC4yMTY3MTgsIDAuMjQyNDA2LCAwLjI4MzQ1OSwgMC4zMTk0MTYsIDAuMzcwNzE4IiwgXAotICAgICAgICAgICIwLjE1NTQyNCwgMC4xOTMyNjIsIDAuMjI5MjU2LCAwLjI1NDk0NiwgMC4yOTYwMDUsIDAuMzMxOTExLCAwLjM4MzI0MSIsIFwKLSAgICAgICAgICAiMC4xNjY5NDQsIDAuMjA0Nzk4LCAwLjI0MDc5MiwgMC4yNjY0ODEsIDAuMzA3NTE3LCAwLjM0MzQ0OSwgMC4zOTQ4MTciLCBcCi0gICAgICAgICAgIjAuMTgyOTMyLCAwLjIyMDc3OSwgMC4yNTY3ODIsIDAuMjgyNDYyLCAwLjMyMzUzOCwgMC4zNTk0NjQsIDAuNDEwNzkzIiwgXAotICAgICAgICAgICIwLjE5NTkzNywgMC4yMzM3NzEsIDAuMjY5NzY2LCAwLjI5NTQ0NiwgMC4zMzY1MTgsIDAuMzcyNDQ0LCAwLjQyMzc2NyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyMjAxNiwgMC4wOTIzNTgsIDAuMTY1NTgzLCAwLjIxODMyOCwgMC4zMDMyNTEsIDAuMzc3NDExLCAwLjQ4MzEzMSIsIFwKLSAgICAgICAgICAiMC4wMjIwMTgsIDAuMDkyMzI2LCAwLjE2NTU4NCwgMC4yMTgzMjMsIDAuMzAzMjUyLCAwLjM3NzE2LCAwLjQ4MzU4MiIsIFwKLSAgICAgICAgICAiMC4wMjIxMjIsIDAuMDkyMzgsIDAuMTY1NTg5LCAwLjIxODMyOCwgMC4zMDMyNjIsIDAuMzc3NTQ1LCAwLjQ4MzQ5MyIsIFwKLSAgICAgICAgICAiMC4wMjIwNTMsIDAuMDkyMzc5LCAwLjE2NTU4NSwgMC4yMTgzMjUsIDAuMzAyNTQzLCAwLjM3NjgxLCAwLjQ4MzQ4OCIsIFwKLSAgICAgICAgICAiMC4wMjIxMjQsIDAuMDkyMzgsIDAuMTY1NTg5LCAwLjIxODMyOCwgMC4zMDI1MywgMC4zNzc0MzgsIDAuNDgzNjc4IiwgXAotICAgICAgICAgICIwLjAyMjExNywgMC4wOTIzNjgsIDAuMTY1NjAxLCAwLjIxODMyNywgMC4zMDMyNDgsIDAuMzc3NDMsIDAuNDgzNzIyIiwgXAotICAgICAgICAgICIwLjAyMjA1NywgMC4wOTIzNTcsIDAuMTY1NjI0LCAwLjIxODM3MiwgMC4zMDMyNTgsIDAuMzc3NDQzLCAwLjQ4MzQ3MyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE0MjY5NiwgMC4xODI3NDksIDAuMjIwODUxLCAwLjI0ODAxNCwgMC4yOTE0MzksIDAuMzI5NDI1LCAwLjM4MzY4OSIsIFwKLSAgICAgICAgICAiMC4xNTI5MjIsIDAuMTkyOTc0LCAwLjIzMTA3MywgMC4yNTgyNDUsIDAuMzAxNjY1LCAwLjMzOTY1OSwgMC4zOTM5MjYiLCBcCi0gICAgICAgICAgIjAuMTY1NzU3LCAwLjIwNTgwOSwgMC4yNDM5MTEsIDAuMjcxMDc0LCAwLjMxNDQ5OSwgMC4zNTI0ODYsIDAuNDA2NzQ5IiwgXAotICAgICAgICAgICIwLjE3ODQ0NywgMC4yMTg0OTEsIDAuMjU2NTksIDAuMjgzNzU0LCAwLjMyNzE3OCwgMC4zNjUxNjUsIDAuNDE5NDI3IiwgXAotICAgICAgICAgICIwLjE4OTk1MSwgMC4yMzAwMDMsIDAuMjY4MTA0LCAwLjI5NTI2NywgMC4zMzg2OTIsIDAuMzc2Njc4LCAwLjQzMDk0MiIsIFwKLSAgICAgICAgICAiMC4yMDYyMDIsIDAuMjQ2MjU2LCAwLjI4NDM1OSwgMC4zMTE1MjUsIDAuMzU0OTQxLCAwLjM5MjkyNywgMC40NDcxODkiLCBcCi0gICAgICAgICAgIjAuMjE5MDA1LCAwLjI1OTA2OCwgMC4yOTcxNjksIDAuMzI0MzMzLCAwLjM2Nzc2LCAwLjQwNTc1MywgMC40NjAwMDgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjI3MjIsIDAuMDk1OTU0LCAwLjE3MTk2NywgMC4yMjY3MiwgMC4zMTQ1MDcsIDAuMzkxNzk5LCAwLjUwMjQ0MSIsIFwKLSAgICAgICAgICAiMC4wMjI3MTIsIDAuMDk1OTM0LCAwLjE3MTk2MSwgMC4yMjY2OCwgMC4zMTQ1MTgsIDAuMzkxNDU4LCAwLjUwMjYwOSIsIFwKLSAgICAgICAgICAiMC4wMjI3MjEsIDAuMDk1OTUzLCAwLjE3MTk2NSwgMC4yMjY3MTgsIDAuMzE0NTA4LCAwLjM5MTc3NSwgMC41MDI0NDMiLCBcCi0gICAgICAgICAgIjAuMDIyNzEyLCAwLjA5NTk0MSwgMC4xNzE5LCAwLjIyNjcwOCwgMC4zMTQ1MDcsIDAuMzkxNzksIDAuNTAyNDQ0IiwgXAotICAgICAgICAgICIwLjAyMjcxNCwgMC4wOTU5NDQsIDAuMTcxOTY1LCAwLjIyNjcyMywgMC4zMTQ1MDUsIDAuMzkxODE3LCAwLjUwMjQ0MiIsIFwKLSAgICAgICAgICAiMC4wMjI3MTUsIDAuMDk1ODc5LCAwLjE3MTkwNSwgMC4yMjY2NzYsIDAuMzE0NTAyLCAwLjM5MTg0MywgMC41MDI0MjIiLCBcCi0gICAgICAgICAgIjAuMDIyNzI4LCAwLjA5NTk0MSwgMC4xNzE4OTksIDAuMjI2NjkzLCAwLjMxNDcxLCAwLjM5MTQ1MSwgMC41MDI0NTciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiU04iOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHByZXNldDsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDAwNjMsIDAuMTM3OTIxLCAwLjE3MzkyMSwgMC4xOTk2MDgsIDAuMjQwNjc3LCAwLjI3NjYxLCAwLjMyODAwMiIsIFwKLSAgICAgICAgICAiMC4xMDkyNjksIDAuMTQ3MTI0LCAwLjE4MzEyMiwgMC4yMDg4MDQsIDAuMjQ5ODc0LCAwLjI4NTg0MiwgMC4zMzcxNzEiLCBcCi0gICAgICAgICAgIjAuMTIwMTQ1LCAwLjE1NzkzNiwgMC4xOTM5MzcsIDAuMjE5NTg5LCAwLjI2MDY4NSwgMC4yOTY2MzUsIDAuMzQ4MDA2IiwgXAotICAgICAgICAgICIwLjEzMTk5NiwgMC4xNjk3ODYsIDAuMjA1NzgxLCAwLjIzMTQ2NiwgMC4yNzI1MywgMC4zMDg0NDEsIDAuMzU5ODUzIiwgXAotICAgICAgICAgICIwLjE0MzE1NSwgMC4xODA5NjIsIDAuMjE2OTUxLCAwLjI0MjYzMywgMC4yODM3MTQsIDAuMzE5NjQzLCAwLjM3MTAyNSIsIFwKLSAgICAgICAgICAiMC4xNTk2MDUsIDAuMTk3MzU0LCAwLjIzMzM2MywgMC4yNTkwMzcsIDAuMzAwMTA4LCAwLjMzNjAzNywgMC4zODczNzkiLCBcCi0gICAgICAgICAgIjAuMTcyMTQzLCAwLjIwOTk1OCwgMC4yNDU5NjEsIDAuMjcxNjI5LCAwLjMxMjcwMSwgMC4zNDg2MzUsIDAuNDAwMDI4Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDIyMDMsIDAuMDkyMjg1LCAwLjE2NTYyNCwgMC4yMTgzMjUsIDAuMzAzMjk3LCAwLjM3NzYxMiwgMC40ODM3NjkiLCBcCi0gICAgICAgICAgIjAuMDIyMDI1LCAwLjA5MjI4NywgMC4xNjU1NjEsIDAuMjE4MzMzLCAwLjMwMzMyNCwgMC4zNzc0NTYsIDAuNDgzMDQ1IiwgXAotICAgICAgICAgICIwLjAyMTk5NCwgMC4wOTIyODEsIDAuMTY1NTMxLCAwLjIxODU1OSwgMC4zMDMzMTUsIDAuMzc3NjMxLCAwLjQ4Mzc3OSIsIFwKLSAgICAgICAgICAiMC4wMjIwNDksIDAuMDkyMzA4LCAwLjE2NTYyNCwgMC4yMTg1NjQsIDAuMzAzMjkyLCAwLjM3NzA5NCwgMC40ODM3NjgiLCBcCi0gICAgICAgICAgIjAuMDIyMDE0LCAwLjA5MjMwNiwgMC4xNjU1MzQsIDAuMjE4NDcxLCAwLjMwMzM0NSwgMC4zNzc0MzYsIDAuNDgzNzY1IiwgXAotICAgICAgICAgICIwLjAyMjI0NiwgMC4wOTIzNTQsIDAuMTY1NTUyLCAwLjIxODU0MywgMC4zMDMzMDEsIDAuMzc3NDYzLCAwLjQ4MzYxMyIsIFwKLSAgICAgICAgICAiMC4wMjIzNTEsIDAuMDkyMzg3LCAwLjE2NTU0OCwgMC4yMTg1OTMsIDAuMzAzMjkyLCAwLjM3NzUzNiwgMC40ODM3NjEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTYzMjgsIDAuMDE2NjkzLCAwLjAxNjc3LCAwLjAxNjc5NSwgMC4wMTY4MTgsIDAuMDE2ODMsIDAuMDE2ODQiLCBcCi0gICAgICAgICAgIjAuMDE2MzA0LCAwLjAxNjY2OCwgMC4wMTY3NDcsIDAuMDE2Nzc1LCAwLjAxNjc5NywgMC4wMTY4MDQsIDAuMDE2ODIyIiwgXAotICAgICAgICAgICIwLjAxNjI5MywgMC4wMTY2NTEsIDAuMDE2NzI5LCAwLjAxNjc2LCAwLjAxNjc3NywgMC4wMTY3ODgsIDAuMDE2Nzk0IiwgXAotICAgICAgICAgICIwLjAxNjI5NCwgMC4wMTY2NDksIDAuMDE2NzI1LCAwLjAxNjc1MywgMC4wMTY3NzYsIDAuMDE2NzgzLCAwLjAxNjc5NCIsIFwKLSAgICAgICAgICAiMC4wMTYyOSwgMC4wMTY2NDksIDAuMDE2NzI2LCAwLjAxNjc1OCwgMC4wMTY3NzQsIDAuMDE2Nzg5LCAwLjAxNjc5NiIsIFwKLSAgICAgICAgICAiMC4wMTYzMDcsIDAuMDE2NjYzLCAwLjAxNjc0MiwgMC4wMTY3NzMsIDAuMDE2Nzk1LCAwLjAxNjgwMSwgMC4wMTY4MTEiLCBcCi0gICAgICAgICAgIjAuMDE2MzAxLCAwLjAxNjY3LCAwLjAxNjc0OSwgMC4wMTY3ODMsIDAuMDE2ODAzLCAwLjAxNjgxLCAwLjAxNjgyNCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE1OTE0LCAwLjAxNjM3OSwgMC4wMTY0OTUsIDAuMDE2NTM1LCAwLjAxNjU3MiwgMC4wMTY1OTEsIDAuMDE2NjA5IiwgXAotICAgICAgICAgICIwLjAxNTg5MywgMC4wMTYzNTgsIDAuMDE2NDczLCAwLjAxNjUxMywgMC4wMTY1NDksIDAuMDE2NTY4LCAwLjAxNjU4NiIsIFwKLSAgICAgICAgICAiMC4wMTU4ODcsIDAuMDE2MzUyLCAwLjAxNjQ2NywgMC4wMTY1MDgsIDAuMDE2NTQ0LCAwLjAxNjU2NCwgMC4wMTY1ODEiLCBcCi0gICAgICAgICAgIjAuMDE1OTIxLCAwLjAxNjM3NywgMC4wMTY0OSwgMC4wMTY1MjksIDAuMDE2NTY0LCAwLjAxNjU4MywgMC4wMTY2IiwgXAotICAgICAgICAgICIwLjAxNTkxOCwgMC4wMTYzODMsIDAuMDE2NDk5LCAwLjAxNjUzOSwgMC4wMTY1NzUsIDAuMDE2NTk0LCAwLjAxNjYxMiIsIFwKLSAgICAgICAgICAiMC4wMTU5NzksIDAuMDE2NDQ0LCAwLjAxNjU2LCAwLjAxNjU5OSwgMC4wMTY2MzcsIDAuMDE2NjU1LCAwLjAxNjY3MyIsIFwKLSAgICAgICAgICAiMC4wMTU5OTIsIDAuMDE2NDU1LCAwLjAxNjU3MSwgMC4wMTY2MTEsIDAuMDE2NjQ4LCAwLjAxNjY2NywgMC4wMTY2ODQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTcxNjQsIDAuMDE3NTI1LCAwLjAxNzYwNCwgMC4wMTc2MywgMC4wMTc2NTgsIDAuMDE3NjY2LCAwLjAxNzY3OCIsIFwKLSAgICAgICAgICAiMC4wMTcxMjQsIDAuMDE3NDg0LCAwLjAxNzU2MiwgMC4wMTc1OTcsIDAuMDE3NjEyLCAwLjAxNzYyNCwgMC4wMTc2MzYiLCBcCi0gICAgICAgICAgIjAuMDE3MDksIDAuMDE3NDUyLCAwLjAxNzUzMSwgMC4wMTc1NTcsIDAuMDE3NTg3LCAwLjAxNzYwNSwgMC4wMTc2MDUiLCBcCi0gICAgICAgICAgIjAuMDE3MDYzLCAwLjAxNzQyNSwgMC4wMTc1MDUsIDAuMDE3NTQyLCAwLjAxNzU2NCwgMC4wMTc1NzgsIDAuMDE3NTc5IiwgXAotICAgICAgICAgICIwLjAxNzA0NywgMC4wMTc0MDUsIDAuMDE3NDg1LCAwLjAxNzUxOSwgMC4wMTc1NDQsIDAuMDE3NTU1LCAwLjAxNzU2MSIsIFwKLSAgICAgICAgICAiMC4wMTcwMzUsIDAuMDE3NDA4LCAwLjAxNzQ5MiwgMC4wMTc1MiwgMC4wMTc1NDksIDAuMDE3NTU5LCAwLjAxNzU3MSIsIFwKLSAgICAgICAgICAiMC4wMTcwNzgsIDAuMDE3NDM2LCAwLjAxNzUxLCAwLjAxNzU0MSwgMC4wMTc1NjYsIDAuMDE3NTgsIDAuMDE3NTk0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHNjYWxhcikgewotICAgICAgICB2YWx1ZXMoIjAiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFNFKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE0OTEwMTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE0OTA0MTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE0OTEwMTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDU5NzcsIDAuMDA1OTU3LCAwLjAwNTk0NCwgMC4wMDU5NDcsIDAuMDA1OTUyLCAwLjAwNTk2NiwgMC4wMDU5ODciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDc4MSwgMC4wMDc3NTYsIDAuMDA3NzQ3LCAwLjAwNzc0NCwgMC4wMDc3NjEsIDAuMDA3Nzk5LCAwLjAwNzg0NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJTTiA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMTg3NSwgLTAuMDA3NSwgMC4wMDUsIDAuMDE3NSwgMC4wMjM3NSwgMC4wNCwgMC4wNDg3NSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAxODc1LCAtMC4wMDYyNSwgMC4wMDYyNSwgMC4wMTI1LCAwLjAyODc1LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAsIDAuMDE2MjUsIDAuMDI1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAxODc1LCAtMC4wMDYyNSwgMC4wMDM3NSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDYxMjUsIC0wLjA1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMDI1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wNzEyNSwgLTAuMDYsIC0wLjA0NzUsIC0wLjAzNSwgLTAuMDI4NzUsIC0wLjAxMjUsIC0wLjAwMzc1IiwgXAotICAgICAgICAgICItMC4wOCwgLTAuMDY4NzUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDM3NSwgLTAuMDIxMjUsIC0wLjAxMjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLCAwLjAxMTI1LCAwLjAyMzc1LCAwLjAzNjI1LCAwLjA0MjUsIDAuMDU4NzUsIDAuMDY3NSIsIFwKLSAgICAgICAgICAiLTAuMDA1LCAwLjAwNjI1LCAwLjAxODc1LCAwLjAyNSwgMC4wMzc1LCAwLjA0NzUsIDAuMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDE3NSwgLTAuMDA2MjUsIDAuMDA2MjUsIDAuMDE4NzUsIDAuMDI1LCAwLjA0MTI1LCAwLjA1IiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLjAwNjI1LCAwLjAxMjUsIDAuMDI4NzUsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAyNSwgLTAuMDEyNSwgMCwgMC4wMDYyNSwgMC4wMjI1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wNDYyNSwgLTAuMDM1LCAtMC4wMjI1LCAtMC4wMTYyNSwgLTAuMDAzNzUsIDAuMDA2MjUsIDAuMDE1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDQzNzUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAxMjUsIC0wLjAwMjUsIDAuMDA2MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlNOIjsKLSAgICAgIHNkZl9jb25kIDogIlNOID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4MTI1LCAwLjA3LCAwLjA1NzUsIDAuMDQ1LCAwLjAzMjUsIDAuMDIyNSwgMC4wMTM3NSIsIFwKLSAgICAgICAgICAiMC4wOTI1LCAwLjA4MTI1LCAwLjA2ODc1LCAwLjA1NjI1LCAwLjA0Mzc1LCAwLjAyNzUsIDAuMDI1IiwgXAotICAgICAgICAgICIwLjEwNSwgMC4wOTM3NSwgMC4wODEyNSwgMC4wNjg3NSwgMC4wNTYyNSwgMC4wNCwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4xMTc1LCAwLjEwNjI1LCAwLjA5Mzc1LCAwLjA4MTI1LCAwLjA2ODc1LCAwLjA1MjUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMTIzNzUsIDAuMTEyNSwgMC4xLCAwLjA4NzUsIDAuMDc1LCAwLjA2NSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiMC4xMzM3NSwgMC4xMjI1LCAwLjExLCAwLjA5NzUsIDAuMDkxMjUsIDAuMDgxMjUsIDAuMDcyNSIsIFwKLSAgICAgICAgICAiMC4xNDI1LCAwLjEzMTI1LCAwLjExODc1LCAwLjExMjUsIDAuMTA2MjUsIDAuMDk2MjUsIDAuMDg3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5Mzc1LCAwLjA4MjUsIDAuMDcsIDAuMDYzNzUsIDAuMDU3NSwgMC4wNDc1LCAwLjAzODc1IiwgXAotICAgICAgICAgICIwLjEwNSwgMC4wOTM3NSwgMC4wODEyNSwgMC4wNzUsIDAuMDYyNSwgMC4wNTI1LCAwLjA1IiwgXAotICAgICAgICAgICIwLjExMTI1LCAwLjEwNjI1LCAwLjA5Mzc1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNjUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIjAuMTIzNzUsIDAuMTEyNSwgMC4xLCAwLjA5Mzc1LCAwLjA4NzUsIDAuMDc3NSwgMC4wNjg3NSIsIFwKLSAgICAgICAgICAiMC4xMywgMC4xMTg3NSwgMC4xMTI1LCAwLjEsIDAuMDkzNzUsIDAuMDgzNzUsIDAuMDc1IiwgXAotICAgICAgICAgICIwLjE0LCAwLjEyODc1LCAwLjEyMjUsIDAuMTEsIDAuMTAzNzUsIDAuMDkzNzUsIDAuMDg1IiwgXAotICAgICAgICAgICIwLjE0ODc1LCAwLjEzNzUsIDAuMTI1LCAwLjExODc1LCAwLjExMjUsIDAuMTAyNSwgMC4wOTM3NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oU0kpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDk0NDAzNTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA5NDEwMzI7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwOTQ0MDM1OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzc2NywgMC4wMDM3MzYsIDAuMDAzNzE4LCAwLjAwMzcwOSwgMC4wMDM3MDcsIDAuMDAzNzA4LCAwLjAwMzcxNyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNjU3MywgMC4wMDY1NTYsIDAuMDA2NTQ1LCAwLjAwNjU0MiwgMC4wMDY1MzksIDAuMDA2NTQzLCAwLjAwNjU0NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJTRSZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJTRV9FUV8xX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDQzNzUsIC0wLjAzMjUsIC0wLjAyNjI1LCAtMC4wMTM3NSwgLTAuMDA3NSwgLTAuMDAzNzUsIDAuMDA1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDQzNzUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMDg3NSwgMCIsIFwKLSAgICAgICAgICAiLTAuMDYxMjUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAyMTI1LCAtMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wNzM3NSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzM3NSwgLTAuMDI1IiwgXAotICAgICAgICAgICItMC4wOCwgLTAuMDc1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjA0LCAtMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDk2MjUsIC0wLjA5MTI1LCAtMC4wNzg3NSwgLTAuMDcyNSwgLTAuMDY2MjUsIC0wLjA1NjI1LCAtMC4wNDc1IiwgXAotICAgICAgICAgICItMC4xMDUsIC0wLjEsIC0wLjA5Mzc1LCAtMC4wODEyNSwgLTAuMDc1LCAtMC4wNzEyNSwgLTAuMDYyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAwNjI1LCAwLjAwNSwgMC4wMTc1LCAwLjAzLCAwLjAzNjI1LCAwLjA1MjUsIDAuMDYxMjUiLCBcCi0gICAgICAgICAgIi0wLjAxMTI1LCAwLCAwLjAxMjUsIDAuMDE4NzUsIDAuMDMxMjUsIDAuMDQxMjUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTI1LCAwLCAwLjAxMjUsIDAuMDE4NzUsIDAuMDM1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLCAwLjAxMjUsIDAuMDI4NzUsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLjAwNjI1LCAwLjAxNjI1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDQ2MjUsIC0wLjA0MTI1LCAtMC4wMjg3NSwgLTAuMDE2MjUsIC0wLjAxLCAwLjAwNjI1LCAwLjAxNSIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNSwgLTAuMDM3NSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDAyNSwgMC4wMDYyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiU0UmU04iOwotICAgICAgc2RmX2NvbmQgOiAiU0VfRVFfMV9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3NSwgMC4wNjM3NSwgMC4wNTEyNSwgMC4wNDUsIDAuMDM4NzUsIDAuMDI4NzUsIDAuMDIiLCBcCi0gICAgICAgICAgIjAuMDg2MjUsIDAuMDc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDQzNzUsIDAuMDMzNzUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMDkyNSwgMC4wODEyNSwgMC4wNzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNDYyNSwgMC4wMzc1IiwgXAotICAgICAgICAgICIwLjEwNSwgMC4wOTM3NSwgMC4wODEyNSwgMC4wNzUsIDAuMDY4NzUsIDAuMDU4NzUsIDAuMDUiLCBcCi0gICAgICAgICAgIjAuMTE3NSwgMC4xMDYyNSwgMC4wOTM3NSwgMC4wODc1LCAwLjA4MTI1LCAwLjA2NSwgMC4wNjI1IiwgXAotICAgICAgICAgICIwLjEzMzc1LCAwLjEyMjUsIDAuMTEsIDAuMTAzNzUsIDAuMDkxMjUsIDAuMDgxMjUsIDAuMDc4NzUiLCBcCi0gICAgICAgICAgIjAuMTQyNSwgMC4xMzEyNSwgMC4xMTg3NSwgMC4xMTI1LCAwLjEwNjI1LCAwLjA5NjI1LCAwLjA4NzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjg3NSwgMC4wNTc1LCAwLjA0NSwgMC4wMzI1LCAwLjAyLCAwLjAwMzc1LCAtMC4wMTEyNSIsIFwKLSAgICAgICAgICAiMC4wOCwgMC4wNjg3NSwgMC4wNSwgMC4wNDM3NSwgMC4wMzEyNSwgMC4wMTUsIDAiLCBcCi0gICAgICAgICAgIjAuMDg2MjUsIDAuMDc1LCAwLjA2MjUsIDAuMDUsIDAuMDM3NSwgMC4wMjEyNSwgMC4wMTI1IiwgXAotICAgICAgICAgICIwLjA5ODc1LCAwLjA4NzUsIDAuMDc1LCAwLjA2MjUsIDAuMDUsIDAuMDMzNzUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMTA1LCAwLjA5Mzc1LCAwLjA4MTI1LCAwLjA2ODc1LCAwLjA1NjI1LCAwLjA0LCAwLjAzMTI1IiwgXAotICAgICAgICAgICIwLjEyMTI1LCAwLjExLCAwLjA5NzUsIDAuMDg1LCAwLjA3MjUsIDAuMDU2MjUsIDAuMDQxMjUiLCBcCi0gICAgICAgICAgIjAuMTMsIDAuMTE4NzUsIDAuMTA2MjUsIDAuMDkzNzUsIDAuMDgxMjUsIDAuMDY1LCAwLjA1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTTikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNjk5MTM7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNTcwNzY7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNjk5MTM7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNjUzLCAwLjAwMDY1MiwgMC4wMDA2NTIsIDAuMDAwNjUyLCAwLjAwMDY1MiwgMC4wMDA2NTIsIDAuMDAwNjUxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNjYzLCAwLjAwMDY1NiwgMC4wMDA2NTQsIDAuMDAwNjU0LCAwLjAwMDY1NCwgMC4wMDA2NTQsIDAuMDAwNjU0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRCYhU0UmIVNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9TRV9FUV8wX0FOX1NJX0VRXzAgPT0gMSdiMSI7Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4xMDAwNjMsIDAuMTA5MjY5LCAwLjEyMDE0NSwgMC4xMzE5OTYsIDAuMTQzMTU1LCAwLjE1OTYwNSwgMC4xNzIxNDMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiByZWNvdmVyeV9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEJiFTRSYhU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1NFX0VRXzBfQU5fU0lfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChyZWNvdmVyeV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMCwgLTAuMDExMjUsIC0wLjAzLCAtMC4wNDI1LCAtMC4wNTUsIC0wLjA3MTI1LCAtMC4wODYyNSIsIFwKLSAgICAgICAgICAiMC4wMDUsIC0wLjAwNjI1LCAtMC4wMTg3NSwgLTAuMDMxMjUsIC0wLjA0Mzc1LCAtMC4wNiwgLTAuMDc1IiwgXAotICAgICAgICAgICIwLjAxNzUsIDAuMDA2MjUsIC0wLjAwNjI1LCAtMC4wMjUsIC0wLjAzNzUsIC0wLjA1Mzc1LCAtMC4wNjI1IiwgXAotICAgICAgICAgICIwLjAyMzc1LCAwLjAxMjUsIDAsIC0wLjAxMjUsIC0wLjAyNSwgLTAuMDQxMjUsIC0wLjA1NjI1IiwgXAotICAgICAgICAgICIwLjAzNjI1LCAwLjAyNSwgMC4wMTI1LCAwLCAtMC4wMTI1LCAtMC4wMjg3NSwgLTAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMDUyNSwgMC4wNDEyNSwgMC4wMjg3NSwgMC4wMTYyNSwgMC4wMDM3NSwgLTAuMDEyNSwgLTAuMDI3NSIsIFwKLSAgICAgICAgICAiMC4wNjc1LCAwLjA1NjI1LCAwLjA0Mzc1LCAwLjAzMTI1LCAwLjAxODc1LCAtMC4wMDM3NSwgLTAuMDEyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJlbW92YWxfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRCYhU0UmIVNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9TRV9FUV8wX0FOX1NJX0VRXzAgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQocmVtb3ZhbF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzc1LCAwLjA0ODc1LCAwLjA2MTI1LCAwLjA3Mzc1LCAwLjA4NjI1LCAwLjEwMjUsIDAuMTE3NSIsIFwKLSAgICAgICAgICAiMC4wMzI1LCAwLjA0Mzc1LCAwLjA1NjI1LCAwLjA2ODc1LCAwLjA4MTI1LCAwLjA5NzUsIDAuMTA2MjUiLCBcCi0gICAgICAgICAgIjAuMDIsIDAuMDMxMjUsIDAuMDQzNzUsIDAuMDU2MjUsIDAuMDY4NzUsIDAuMDg1LCAwLjA5Mzc1IiwgXAotICAgICAgICAgICIwLjAwNzUsIDAuMDE4NzUsIDAuMDMxMjUsIDAuMDQzNzUsIDAuMDU2MjUsIDAuMDcyNSwgMC4wODc1IiwgXAotICAgICAgICAgICIwLjAwMTI1LCAwLjAxMjUsIDAuMDI1LCAwLjAzNzUsIDAuMDUsIDAuMDY2MjUsIDAuMDc1IiwgXAotICAgICAgICAgICItMC4wMTUsIC0wLjAwMzc1LCAwLjAwODc1LCAwLjAyMTI1LCAwLjAzMzc1LCAwLjA1LCAwLjA2NSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxMjUsIDAsIDAuMDEyNSwgMC4wMjUsIDAuMDQxMjUsIDAuMDUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBTREZGU1JIUVg4ICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKFNERkZTUkhRWDgpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC45Mjk2NzQ7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgZmYgKE4zNSxRQklOVCkgewotICAgIG5leHRfc3RhdGUgOiAiKChTRSBTSSkgKyAoIVNFIEQpKSI7Ci0gICAgY2xvY2tlZF9vbiA6ICJDSyI7Ci0gICAgY2xlYXIgOiAiKCFSTikiOwotICAgIHByZXNldCA6ICIoIVNOKSI7Ci0gICAgY2xlYXJfcHJlc2V0X3ZhcjEgOiBIOwotICB9Ci0gIHBpbihDSykgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjIxMjE5OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYyMDk4OTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2MjEyMTk7Ci0gICAgY2xvY2sgOiB0cnVlOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzc4MywgMC4wMDM3NjEsIDAuMDAzNzQ3LCAwLjAwMzc0NiwgMC4wMDM3NTQsIDAuMDAzNzc4LCAwLjAwMzc5MiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwOTEwMywgMC4wMDkwNzcsIDAuMDA5MDc3LCAwLjAwOTA5MSwgMC4wMDkwOTIsIDAuMDA5MTUzLCAwLjAwOTE4NCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQmUk4mIVNFJiFTSSZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fUk5fRVFfMV9BTl9TRV9FUV8wX0FOX1NJX0VRXzBfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjE1NjA3NywgMC4xNjYzODYsIDAuMTc5MjQ2LCAwLjE5MTkzMywgMC4yMDM4MSwgMC4yMjA3MDYsIDAuMjMzODkyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4xMjQwMzMsIDAuMTMzOTM0LCAwLjE0NjQ5NywgMC4xNTg2NTksIDAuMTY5OTUsIDAuMTg1NzU0LCAwLjE5Nzg4MiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwOTE5NDM3OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDkxNjg4NDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA5MTk0Mzc7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA0NzIyLCAwLjAwNDY4OSwgMC4wMDQ2NzEsIDAuMDA0NjYxLCAwLjAwNDY1NSwgMC4wMDQ2NTUsIDAuMDA0NjY1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA2Mjg0LCAwLjAwNjI2NiwgMC4wMDYyNTQsIDAuMDA2MjQ4LCAwLjAwNjI0NCwgMC4wMDYyNDUsIDAuMDA2MjUxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlJOJiFTRSZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJSTl9FUV8xX0FOX1NFX0VRXzBfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wNDM3NSwgLTAuMDMyNSwgLTAuMDI2MjUsIC0wLjAyLCAtMC4wMTM3NSwgLTAuMDAzNzUsIDAuMDA1IiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMDg3NSwgMCIsIFwKLSAgICAgICAgICAiLTAuMDYxMjUsIC0wLjA1NjI1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAyMTI1LCAtMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wNzM3NSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDMzNzUsIC0wLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDg2MjUsIC0wLjA3NSwgLTAuMDY4NzUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDQsIC0wLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wOTYyNSwgLTAuMDkxMjUsIC0wLjA3ODc1LCAtMC4wNzI1LCAtMC4wNjYyNSwgLTAuMDU2MjUsIC0wLjA0NzUiLCBcCi0gICAgICAgICAgIi0wLjExMTI1LCAtMC4xLCAtMC4wOTM3NSwgLTAuMDg3NSwgLTAuMDc1LCAtMC4wNzEyNSwgLTAuMDYyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAsIDAuMDExMjUsIDAuMDIzNzUsIDAuMDM2MjUsIDAuMDQyNSwgMC4wNTg3NSwgMC4wNjc1IiwgXAotICAgICAgICAgICItMC4wMDUsIDAsIDAuMDEyNSwgMC4wMjUsIDAuMDM3NSwgMC4wNDc1LCAwLjA2MjUiLCBcCi0gICAgICAgICAgIi0wLjAxNzUsIC0wLjAwNjI1LCAwLjAwNjI1LCAwLjAxODc1LCAwLjAyNSwgMC4wNDEyNSwgMC4wNSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxODc1LCAtMC4wMDYyNSwgMC4wMDYyNSwgMC4wMTg3NSwgMC4wMjg3NSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAyNSwgLTAuMDEyNSwgMCwgMC4wMDYyNSwgMC4wMjI1LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjA0NjI1LCAtMC4wMzUsIC0wLjAyMjUsIC0wLjAxLCAtMC4wMDM3NSwgMC4wMTI1LCAwLjAyMTI1IiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA0Mzc1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIDAuMDAzNzUsIDAuMDEyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiUk4mIVNFJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIlJOX0VRXzFfQU5fU0VfRVFfMF9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEsIDAuMDg4NzUsIDAuMDc2MjUsIDAuMDYzNzUsIDAuMDUxMjUsIDAuMDQxMjUsIDAuMDMyNSIsIFwKLSAgICAgICAgICAiMC4xMTEyNSwgMC4xLCAwLjA4NzUsIDAuMDc1LCAwLjA2MjUsIDAuMDQ2MjUsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiMC4xMjM3NSwgMC4xMTI1LCAwLjA5Mzc1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNTg3NSwgMC4wNSIsIFwKLSAgICAgICAgICAiMC4xMywgMC4xMTg3NSwgMC4xMDYyNSwgMC4wOTM3NSwgMC4wODEyNSwgMC4wNzEyNSwgMC4wNjI1IiwgXAotICAgICAgICAgICIwLjE0MjUsIDAuMTMxMjUsIDAuMTE4NzUsIDAuMTA2MjUsIDAuMDkzNzUsIDAuMDc3NSwgMC4wNjg3NSIsIFwKLSAgICAgICAgICAiMC4xNTg3NSwgMC4xNDc1LCAwLjEyODc1LCAwLjExNjI1LCAwLjExLCAwLjA5Mzc1LCAwLjA4NSIsIFwKLSAgICAgICAgICAiMC4xNjc1LCAwLjE1NjI1LCAwLjE0Mzc1LCAwLjEzMTI1LCAwLjExODc1LCAwLjEwODc1LCAwLjEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjg3NSwgMC4wNjM3NSwgMC4wNDUsIDAuMDMyNSwgMC4wMiwgMC4wMDM3NSwgLTAuMDA1IiwgXAotICAgICAgICAgICIwLjA4LCAwLjA2ODc1LCAwLjA1NjI1LCAwLjA0Mzc1LCAwLjAzMTI1LCAwLjAxNSwgMCIsIFwKLSAgICAgICAgICAiMC4wOTI1LCAwLjA4MTI1LCAwLjA2ODc1LCAwLjA1LCAwLjAzNzUsIDAuMDIxMjUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4wOTg3NSwgMC4wODc1LCAwLjA3NSwgMC4wNjI1LCAwLjA1LCAwLjAzMzc1LCAwLjAxODc1IiwgXAotICAgICAgICAgICIwLjExMTI1LCAwLjEsIDAuMDg3NSwgMC4wNjg3NSwgMC4wNTYyNSwgMC4wNCwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4xMjEyNSwgMC4xMSwgMC4wOTc1LCAwLjA4NSwgMC4wNzI1LCAwLjA1NjI1LCAwLjA0MTI1IiwgXAotICAgICAgICAgICIwLjEzNjI1LCAwLjEyNSwgMC4xMDYyNSwgMC4wOTM3NSwgMC4wODEyNSwgMC4wNjUsIDAuMDU2MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFEpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMi4wMDcyNDsKLSAgICBmdW5jdGlvbiA6ICJOMzUiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5vbl91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcmlzaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTQ4NTQ4LCAwLjE4NzA0MywgMC4yMjI5NjUsIDAuMjQ4NTk0LCAwLjI4OTU1NywgMC4zMjUzOTQsIDAuMzc2NTg0IiwgXAotICAgICAgICAgICIwLjE1ODc3MSwgMC4xOTcyNDcsIDAuMjMzMTY4LCAwLjI1ODgsIDAuMjk5NzYsIDAuMzM1NTk2LCAwLjM4Njc4NSIsIFwKLSAgICAgICAgICAiMC4xNzE1MTUsIDAuMjEwMDAyLCAwLjI0NTkyNSwgMC4yNzE1NTEsIDAuMzEyNTE1LCAwLjM0ODMxOCwgMC4zOTk1NDMiLCBcCi0gICAgICAgICAgIjAuMTg0MDMxLCAwLjIyMjQ4MiwgMC4yNTgzOTgsIDAuMjg0MDI4LCAwLjMyNDk5LCAwLjM2MDc5OSwgMC40MTIwMjYiLCBcCi0gICAgICAgICAgIjAuMTk1NzY3LCAwLjIzNDI0NiwgMC4yNzAxNzEsIDAuMjk1Nzk1LCAwLjMzNjc2NCwgMC4zNzI2LCAwLjQyMzc5MSIsIFwKLSAgICAgICAgICAiMC4yMTIyODYsIDAuMjUwNzc0LCAwLjI4NjY5NywgMC4zMTIzMiwgMC4zNTMyODksIDAuMzg5MTI1LCAwLjQ0MDMxNiIsIFwKLSAgICAgICAgICAiMC4yMjU0MDUsIDAuMjYzODU1LCAwLjI5OTc2NCwgMC4zMjUzOTcsIDAuMzY2MzUyLCAwLjQwMjE5MiwgMC40NTMzODgiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjQxMzMsIDAuMDkzMDEzLCAwLjE2NTU4MSwgMC4yMTc5ODEsIDAuMzAyMjA2LCAwLjM3NjEwNCwgMC40ODE3MzEiLCBcCi0gICAgICAgICAgIjAuMDI0MTIyLCAwLjA5MzAxMSwgMC4xNjU1OCwgMC4yMTc5ODYsIDAuMzAyMjA4LCAwLjM3NjA5OCwgMC40ODE2MTMiLCBcCi0gICAgICAgICAgIjAuMDI0MTIsIDAuMDkzMDA4LCAwLjE2NTYzNywgMC4yMTc4ODYsIDAuMzAyMjA3LCAwLjM3NTU2NCwgMC40ODE2NDUiLCBcCi0gICAgICAgICAgIjAuMDI0MTMsIDAuMDkzMDE5LCAwLjE2NTYxNCwgMC4yMTc5ODYsIDAuMzAyMjQ4LCAwLjM3NTQ5NCwgMC40ODA4OTIiLCBcCi0gICAgICAgICAgIjAuMDI0MTcxLCAwLjA5MzAxMywgMC4xNjU1ODEsIDAuMjE3OTc0LCAwLjMwMjIwOSwgMC4zNzYwOTQsIDAuNDgxNzc5IiwgXAotICAgICAgICAgICIwLjAyNDExOSwgMC4wOTMwMDYsIDAuMTY1NTc4LCAwLjIxNzk3MiwgMC4zMDIyMDcsIDAuMzc2MDk3LCAwLjQ4MTc3OSIsIFwKLSAgICAgICAgICAiMC4wMjQxODEsIDAuMDkzMDA3LCAwLjE2NTYzMiwgMC4yMTc5ODYsIDAuMzAyMjA1LCAwLjM3NTQ5NSwgMC40ODEwMzgiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNTYwNzcsIDAuMTk2MjkyLCAwLjIzNDQwNiwgMC4yNjE1OCwgMC4zMDUwMTMsIDAuMzQzLCAwLjM5NzI2NyIsIFwKLSAgICAgICAgICAiMC4xNjYzODYsIDAuMjA2NTk4LCAwLjI0NDcwOSwgMC4yNzE4ODEsIDAuMzE1MzE1LCAwLjM1MzMwMiwgMC40MDc1NjgiLCBcCi0gICAgICAgICAgIjAuMTc5MjQ2LCAwLjIxOTQzNCwgMC4yNTc1NDYsIDAuMjg0NzEzLCAwLjMyODE1MywgMC4zNjYxMzgsIDAuNDIwNDAxIiwgXAotICAgICAgICAgICIwLjE5MTkzMywgMC4yMzIxMjQsIDAuMjcwMjM0LCAwLjI5NzQwMywgMC4zNDA4NDIsIDAuMzc4ODI5LCAwLjQzMzA5MyIsIFwKLSAgICAgICAgICAiMC4yMDM4MTEsIDAuMjQ0MDI0LCAwLjI4MjEzOCwgMC4zMDkzMTYsIDAuMzUyNzQ1LCAwLjM5MDczMiwgMC40NDQ5OTgiLCBcCi0gICAgICAgICAgIjAuMjIwNzA3LCAwLjI2MDkyMywgMC4yOTkwMzgsIDAuMzI2MjA1LCAwLjM2OTY0NSwgMC40MDc2MywgMC40NjE4OTYiLCBcCi0gICAgICAgICAgIjAuMjMzODkyLCAwLjI3NDA5NCwgMC4zMTIyMDUsIDAuMzM5MzcyLCAwLjM4MjgxLCAwLjQyMDc5NywgMC40NzUwNjIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjMyNzcsIDAuMDk2MTExLCAwLjE3MjA1NywgMC4yMjY4OTgsIDAuMzE0NjY0LCAwLjM5MTU5OSwgMC41MDIzNCIsIFwKLSAgICAgICAgICAiMC4wMjMyODgsIDAuMDk2MTI1LCAwLjE3MjA1OSwgMC4yMjY3OTgsIDAuMzE0NjY3LCAwLjM5MTYwMiwgMC41MDIyOCIsIFwKLSAgICAgICAgICAiMC4wMjMyNjYsIDAuMDk2MTg2LCAwLjE3MjA1NiwgMC4yMjY3OTIsIDAuMzE0NjY0LCAwLjM5MTcyLCAwLjUwMjQ1OCIsIFwKLSAgICAgICAgICAiMC4wMjMyODQsIDAuMDk2MTMyLCAwLjE3MjA1NiwgMC4yMjY3OTMsIDAuMzE0NjY0LCAwLjM5MTYwMiwgMC41MDIzNzUiLCBcCi0gICAgICAgICAgIjAuMDIzMjUzLCAwLjA5NjEwOSwgMC4xNzIwNTMsIDAuMjI2Nzg4LCAwLjMxNDY2MiwgMC4zOTE1OTUsIDAuNTAyMzc5IiwgXAotICAgICAgICAgICIwLjAyMzI4MiwgMC4wOTYxMjEsIDAuMTcyMDU1LCAwLjIyNjc5MiwgMC4zMTQ2NjQsIDAuMzkxNzUxLCAwLjUwMTgwOCIsIFwKLSAgICAgICAgICAiMC4wMjMzMSwgMC4wOTYxMDUsIDAuMTcyMDYsIDAuMjI2Nzk2LCAwLjMxNDY2NiwgMC4zOTE2MDMsIDAuNTAyMjc5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiBjbGVhcjsKLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xODE1MTQsIDAuMjIxNzk3LCAwLjI1OTgzNiwgMC4yODY5OTksIDAuMzMwNDI5LCAwLjM2ODQyLCAwLjQyMjY5IiwgXAotICAgICAgICAgICIwLjE5MTM2NiwgMC4yMzE2NTQsIDAuMjY5Njk1LCAwLjI5Njg2OSwgMC4zNDAzMSwgMC4zNzgyODksIDAuNDMyNTg1IiwgXAotICAgICAgICAgICIwLjIwMzQ2OCwgMC4yNDM3MjksIDAuMjgxNzY2LCAwLjMwODkyOCwgMC4zNTIzNTksIDAuMzkwMzUsIDAuNDQ0NjIiLCBcCi0gICAgICAgICAgIjAuMjE0MjA4LCAwLjI1NDQ2OCwgMC4yOTI1MDUsIDAuMzE5NjY4LCAwLjM2MzA5OCwgMC40MDEwOSwgMC40NTUzNiIsIFwKLSAgICAgICAgICAiMC4yMjMzMjIsIDAuMjYzNjA2LCAwLjMwMTc1OCwgMC4zMjg4NTQsIDAuMzcyMjg1LCAwLjQxMDI3NywgMC40NjQ1NDYiLCBcCi0gICAgICAgICAgIjAuMjM2MzA3LCAwLjI3NjU5NywgMC4zMTQ3NDMsIDAuMzQxOTM5LCAwLjM4NTI5NSwgMC40MjMyMTksIDAuNDc3NTExIiwgXAotICAgICAgICAgICIwLjI0NjQ4MiwgMC4yODY3NzksIDAuMzI0OTI1LCAwLjM1MjA0LCAwLjM5NTQ3MiwgMC40MzM0NjUsIDAuNDg3NzM0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDIzNzksIDAuMDk2MjEyLCAwLjE3MjExNywgMC4yMjY4MzgsIDAuMzE0Njc1LCAwLjM5MjEsIDAuNTAyNjI2IiwgXAotICAgICAgICAgICIwLjAyMzQ4MiwgMC4wOTYyMTQsIDAuMTcyMDk3LCAwLjIyNjgyNywgMC4zMTQ3NTIsIDAuMzkyMjMsIDAuNTAyNjM3IiwgXAotICAgICAgICAgICIwLjAyMzUyNywgMC4wOTYyNTUsIDAuMTcyMTI0LCAwLjIyNjgzMiwgMC4zMTQ2MTYsIDAuMzkyMjI2LCAwLjUwMjYzOCIsIFwKLSAgICAgICAgICAiMC4wMjM3NzksIDAuMDk2MjExLCAwLjE3MjEyMywgMC4yMjY4MjYsIDAuMzE0NjIzLCAwLjM5MjEwNiwgMC41MDI1ODYiLCBcCi0gICAgICAgICAgIjAuMDIzNDg5LCAwLjA5NjIxMywgMC4xNzIxLCAwLjIyNjg2MywgMC4zMTQ2NjksIDAuMzkyMDA0LCAwLjUwMjczNyIsIFwKLSAgICAgICAgICAiMC4wMjM1MTMsIDAuMDk2MjA4LCAwLjE3MjA5NCwgMC4yMjY4ODcsIDAuMzE0Njc0LCAwLjM5MTkyNywgMC41MDI5ODIiLCBcCi0gICAgICAgICAgIjAuMDIzNDk2LCAwLjA5NjI1MSwgMC4xNzIwOTMsIDAuMjI2ODIxLCAwLjMxNDYzNiwgMC4zOTE5ODksIDAuNTAyNzQ3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiBwcmVzZXQ7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTE2NzEyLCAwLjE1NDc2LCAwLjE5MDYzOSwgMC4yMTYyNTYsIDAuMjU3MjIzLCAwLjI5MzA2NywgMC4zNDQyNjMiLCBcCi0gICAgICAgICAgIjAuMTI1OTQ0LCAwLjE2Mzk3NSwgMC4xOTk5MDMsIDAuMjI1NTIxLCAwLjI2NjQ5OCwgMC4zMDIzMzYsIDAuMzUzNTMzIiwgXAotICAgICAgICAgICIwLjEzNjEzNCwgMC4xNzQyMTgsIDAuMjEwMTQ2LCAwLjIzNTc2OCwgMC4yNzY3MzgsIDAuMzEyNTc3LCAwLjM2Mzc3NCIsIFwKLSAgICAgICAgICAiMC4xNDcwODUsIDAuMTg1MDYsIDAuMjIwOTc2LCAwLjI0NjU5NiwgMC4yODc1MzcsIDAuMzIzNDAyLCAwLjM3NDU5OCIsIFwKLSAgICAgICAgICAiMC4xNTkxMDYsIDAuMTk3MDksIDAuMjMzMDE3LCAwLjI1ODY0LCAwLjI5OTYwOCwgMC4zMzU0NDQsIDAuMzg2NjQiLCBcCi0gICAgICAgICAgIjAuMTc2NjYxLCAwLjIxNDY4NiwgMC4yNTA2MDUsIDAuMjc2MjI1LCAwLjMxNzE5NCwgMC4zNTMwMzIsIDAuNDA0MjM1IiwgXAotICAgICAgICAgICIwLjE5MDgzOCwgMC4yMjg3MzYsIDAuMjY0NjQyLCAwLjI5MDI2NiwgMC4zMzEyMywgMC4zNjcwNjYsIDAuNDE4MjgiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjI5NjMsIDAuMDkyNDgzLCAwLjE2NTMxOCwgMC4yMTc3NDQsIDAuMzAyNDA3LCAwLjM3NjQ0OSwgMC40ODIxNjUiLCBcCi0gICAgICAgICAgIjAuMDIyOTUxLCAwLjA5MjQxNSwgMC4xNjUyODksIDAuMjE3ODA4LCAwLjMwMjQ1NSwgMC4zNzY0MzQsIDAuNDgyMzAzIiwgXAotICAgICAgICAgICIwLjAyMjk3NSwgMC4wOTI0MDMsIDAuMTY1Mjg3LCAwLjIxNzgxMiwgMC4zMDI0MTgsIDAuMzc2NDQxLCAwLjQ4MjMyNSIsIFwKLSAgICAgICAgICAiMC4wMjI5NjgsIDAuMDkyNTIsIDAuMTY1Mjg4LCAwLjIxNzgxMywgMC4zMDI0NTQsIDAuMzc2NDM0LCAwLjQ4MjE4IiwgXAotICAgICAgICAgICIwLjAyMjg0MywgMC4wOTIzOTksIDAuMTY1MjkyLCAwLjIxNzgxNSwgMC4zMDI0MzMsIDAuMzc2NDUxLCAwLjQ4MjMwNCIsIFwKLSAgICAgICAgICAiMC4wMjI4MTksIDAuMDkyNDc5LCAwLjE2NTI4NSwgMC4yMTc4MDksIDAuMzAyNDMxLCAwLjM3NjQzNywgMC40ODIzMDEiLCBcCi0gICAgICAgICAgIjAuMDIyOTk4LCAwLjA5MjU5NSwgMC4xNjUzMzcsIDAuMjE3ODI5LCAwLjMwMjQ0NiwgMC4zNzY0MzMsIDAuNDgyMjQ0Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTYwMDc5LCAwLjIwMDM2OCwgMC4yMzg1MiwgMC4yNjU2MjEsIDAuMzA5MDUyLCAwLjM0NzA0MywgMC40MDEzMTMiLCBcCi0gICAgICAgICAgIjAuMTY5MzgzLCAwLjIwOTU4OSwgMC4yNDc2NDcsIDAuMjc0ODEsIDAuMzE4MjQxLCAwLjM1NjIzMiwgMC40MTA1MDIiLCBcCi0gICAgICAgICAgIjAuMTgwMDU1LCAwLjIyMDM0LCAwLjI1ODM4MSwgMC4yODU1NDQsIDAuMzI4OTc1LCAwLjM2Njk2NiwgMC40MjEyMzYiLCBcCi0gICAgICAgICAgIjAuMTkwNzQzLCAwLjIzMDkzMywgMC4yNjkwMDUsIDAuMjk2MTY4LCAwLjMzOTU5NiwgMC4zNzc1ODgsIDAuNDMxODU4IiwgXAotICAgICAgICAgICIwLjIwMTI3NywgMC4yNDE1NjMsIDAuMjc5NjA0LCAwLjMwNjc3OSwgMC4zNTAyMTgsIDAuMzg4MjAxLCAwLjQ0MjQ5MiIsIFwKLSAgICAgICAgICAiMC4yMTc4OTMsIDAuMjU4MTc0LCAwLjI5NjIxMywgMC4zMjMzNzksIDAuMzY2ODEsIDAuNDA0ODAxLCAwLjQ1OTA3MiIsIFwKLSAgICAgICAgICAiMC4yMzIwMiwgMC4yNzIyOTcsIDAuMzEwNDU4LCAwLjMzNzUzNywgMC4zODA5NjgsIDAuNDE4OTU5LCAwLjQ3MzIzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDIzNTMsIDAuMDk2MjA3LCAwLjE3MjA5NCwgMC4yMjY4NDMsIDAuMzE0NjczLCAwLjM5MjAyMywgMC41MDI3NTIiLCBcCi0gICAgICAgICAgIjAuMDIzNTI4LCAwLjA5NjI0OSwgMC4xNzIxMjQsIDAuMjI2ODg2LCAwLjMxNDY3NSwgMC4zOTIwODgsIDAuNTAyNjI2IiwgXAotICAgICAgICAgICIwLjAyMzU2MSwgMC4wOTYyMDYsIDAuMTcyMTExLCAwLjIyNjg3OCwgMC4zMTQ2NzYsIDAuMzkyMDg4LCAwLjUwMjYxOSIsIFwKLSAgICAgICAgICAiMC4wMjM1MzgsIDAuMDk2MjA3LCAwLjE3MjExOCwgMC4yMjY4ODYsIDAuMzE0NjY1LCAwLjM5MjA0NSwgMC41MDI2MDMiLCBcCi0gICAgICAgICAgIjAuMDIzNTYxLCAwLjA5NjIxMSwgMC4xNzIwOTQsIDAuMjI2ODY5LCAwLjMxNDY2NiwgMC4zOTE5MSwgMC41MDI4NTIiLCBcCi0gICAgICAgICAgIjAuMDIzNDg4LCAwLjA5NjIwOSwgMC4xNzIxMDcsIDAuMjI2ODI3LCAwLjMxNDczLCAwLjM5MjA3MiwgMC41MDI1NzciLCBcCi0gICAgICAgICAgIjAuMDIzNjI3LCAwLjA5NjE5NCwgMC4xNzIxMTUsIDAuMjI2ODE5LCAwLjMxNDY4MywgMC4zOTIwNTMsIDAuNTAyNjgxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE3NTI4LCAwLjAxNzg1NCwgMC4wMTc5NDEsIDAuMDE3OTcxLCAwLjAxNzk5OCwgMC4wMTgwMTIsIDAuMDE4MDI2IiwgXAotICAgICAgICAgICIwLjAxNzUwNywgMC4wMTc4MzIsIDAuMDE3OTE4LCAwLjAxNzk0NywgMC4wMTc5NzUsIDAuMDE3OTg5LCAwLjAxODAwMiIsIFwKLSAgICAgICAgICAiMC4wMTc0OTYsIDAuMDE3ODE5LCAwLjAxNzkwNCwgMC4wMTc5MzYsIDAuMDE3OTYsIDAuMDE3OTc3LCAwLjAxNzk5MSIsIFwKLSAgICAgICAgICAiMC4wMTc0OTMsIDAuMDE3ODExLCAwLjAxNzg5NywgMC4wMTc5MjgsIDAuMDE3OTU5LCAwLjAxNzk3LCAwLjAxNzk4IiwgXAotICAgICAgICAgICIwLjAxNzQ4MSwgMC4wMTc4MDgsIDAuMDE3ODk1LCAwLjAxNzkyNiwgMC4wMTc5NTIsIDAuMDE3OTY2LCAwLjAxNzk3OSIsIFwKLSAgICAgICAgICAiMC4wMTc1MTgsIDAuMDE3ODQ1LCAwLjAxNzkzMSwgMC4wMTc5NjEsIDAuMDE3OTg3LCAwLjAxODAwMiwgMC4wMTgwMTQiLCBcCi0gICAgICAgICAgIjAuMDE3NTI1LCAwLjAxNzgzNiwgMC4wMTc5MjEsIDAuMDE3OTUsIDAuMDE3OTgsIDAuMDE3OTksIDAuMDE3OTk5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTY4MDYsIDAuMDE3MjQ4LCAwLjAxNzM2NiwgMC4wMTc0MDcsIDAuMDE3NDQ1LCAwLjAxNzQ2NSwgMC4wMTc0ODMiLCBcCi0gICAgICAgICAgIjAuMDE2Nzg2LCAwLjAxNzIyNywgMC4wMTczNDUsIDAuMDE3Mzg1LCAwLjAxNzQyMywgMC4wMTc0NDIsIDAuMDE3NDYxIiwgXAotICAgICAgICAgICIwLjAxNjc5LCAwLjAxNzIyNiwgMC4wMTczNDEsIDAuMDE3MzgxLCAwLjAxNzQxOCwgMC4wMTc0MzgsIDAuMDE3NDU2IiwgXAotICAgICAgICAgICIwLjAxNjc5NSwgMC4wMTcyMzUsIDAuMDE3MzUsIDAuMDE3MzksIDAuMDE3NDI4LCAwLjAxNzQ0OCwgMC4wMTc0NjYiLCBcCi0gICAgICAgICAgIjAuMDE2ODAxLCAwLjAxNzI0NSwgMC4wMTczNjMsIDAuMDE3NDAzLCAwLjAxNzQ0MiwgMC4wMTc0NjIsIDAuMDE3NDgiLCBcCi0gICAgICAgICAgIjAuMDE2ODU1LCAwLjAxNzMwMiwgMC4wMTc0MTksIDAuMDE3NDYsIDAuMDE3NDk4LCAwLjAxNzUxOCwgMC4wMTc1MzYiLCBcCi0gICAgICAgICAgIjAuMDE2ODkyLCAwLjAxNzMxMywgMC4wMTc0MjcsIDAuMDE3NDY2LCAwLjAxNzUwMiwgMC4wMTc1MjEsIDAuMDE3NTM5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUk4iOwotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE5MDg5LCAwLjAxOTUyMywgMC4wMTk2NDUsIDAuMDE5Njg5LCAwLjAxOTczLCAwLjAxOTc1MSwgMC4wMTk3NzEiLCBcCi0gICAgICAgICAgIjAuMDE5MDY1LCAwLjAxOTUsIDAuMDE5NjIzLCAwLjAxOTY2NiwgMC4wMTk3MDcsIDAuMDE5NzI4LCAwLjAxOTc0NyIsIFwKLSAgICAgICAgICAiMC4wMTkwNjEsIDAuMDE5NDkyLCAwLjAxOTYxNCwgMC4wMTk2NTcsIDAuMDE5Njk4LCAwLjAxOTcxOSwgMC4wMTk3MzkiLCBcCi0gICAgICAgICAgIjAuMDE5MDU4LCAwLjAxOTQ4OCwgMC4wMTk2MTEsIDAuMDE5NjU1LCAwLjAxOTY5NSwgMC4wMTk3MTYsIDAuMDE5NzM2IiwgXAotICAgICAgICAgICIwLjAxOTA2MiwgMC4wMTk1LCAwLjAxOTYyMiwgMC4wMTk2NjYsIDAuMDE5NzA3LCAwLjAxOTcyOCwgMC4wMTk3NDgiLCBcCi0gICAgICAgICAgIjAuMDE5MDczLCAwLjAxOTUxMSwgMC4wMTk2MzMsIDAuMDE5Njc3LCAwLjAxOTcxOCwgMC4wMTk3MzksIDAuMDE5NzU4IiwgXAotICAgICAgICAgICIwLjAxOTA4MiwgMC4wMTk1MTgsIDAuMDE5NjQsIDAuMDE5Njg0LCAwLjAxOTcyNSwgMC4wMTk3NDYsIDAuMDE5NzY2Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3Bvd2VyKHNjYWxhcikgewotICAgICAgICB2YWx1ZXMoIjAiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTkzMzYsIDAuMDE5NjYxLCAwLjAxOTczOSwgMC4wMTk3NjQsIDAuMDE5Nzg4LCAwLjAxOTgwMywgMC4wMTk4MTEiLCBcCi0gICAgICAgICAgIjAuMDE5MzAzLCAwLjAxOTYyNywgMC4wMTk3MDMsIDAuMDE5NzI4LCAwLjAxOTc1MSwgMC4wMTk3OCwgMC4wMTk3NzQiLCBcCi0gICAgICAgICAgIjAuMDE5Mjc0LCAwLjAxOTYwOCwgMC4wMTk2ODUsIDAuMDE5NzExLCAwLjAxOTczNCwgMC4wMTk3NjIsIDAuMDE5NzU4IiwgXAotICAgICAgICAgICIwLjAxOTI3MSwgMC4wMTk2MDQsIDAuMDE5NjgxLCAwLjAxOTcwNiwgMC4wMTk3MywgMC4wMTk3NTcsIDAuMDE5NzUzIiwgXAotICAgICAgICAgICIwLjAxOTMwMiwgMC4wMTk2MDgsIDAuMDE5Njg0LCAwLjAxOTcxLCAwLjAxOTczMSwgMC4wMTk3NDQsIDAuMDE5NzU1IiwgXAotICAgICAgICAgICIwLjAxOTI1NiwgMC4wMTk2LCAwLjAxOTY4MSwgMC4wMTk3MDksIDAuMDE5NzM1LCAwLjAxOTc1MiwgMC4wMTk3NjYiLCBcCi0gICAgICAgICAgIjAuMDE5Mjk1LCAwLjAxOTYzMiwgMC4wMTk3MTYsIDAuMDE5NzQ2LCAwLjAxOTc3MywgMC4wMTk3ODYsIDAuMDE5OCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE2MTAxLCAwLjAxNjUzOCwgMC4wMTY2NjEsIDAuMDE2NzA1LCAwLjAxNjc0NiwgMC4wMTY3NjgsIDAuMDE2Nzg4IiwgXAotICAgICAgICAgICIwLjAxNjA2LCAwLjAxNjQ4OSwgMC4wMTY2MTIsIDAuMDE2NjU2LCAwLjAxNjY5NywgMC4wMTY3MTksIDAuMDE2NzM5IiwgXAotICAgICAgICAgICIwLjAxNjAzLCAwLjAxNjQ2NSwgMC4wMTY1ODcsIDAuMDE2NjMxLCAwLjAxNjY3MiwgMC4wMTY2OTQsIDAuMDE2NzE0IiwgXAotICAgICAgICAgICIwLjAxNjAyMSwgMC4wMTY0NSwgMC4wMTY1NzIsIDAuMDE2NjE2LCAwLjAxNjY1NywgMC4wMTY2NzgsIDAuMDE2Njk5IiwgXAotICAgICAgICAgICIwLjAxNjAwNCwgMC4wMTY0MzksIDAuMDE2NTYyLCAwLjAxNjYwNiwgMC4wMTY2NDcsIDAuMDE2NjY5LCAwLjAxNjY4OSIsIFwKLSAgICAgICAgICAiMC4wMTU5OTIsIDAuMDE2NDI3LCAwLjAxNjU0OSwgMC4wMTY1OTMsIDAuMDE2NjM0LCAwLjAxNjY1NiwgMC4wMTY2NzciLCBcCi0gICAgICAgICAgIjAuMDE1OTgxLCAwLjAxNjQxMSwgMC4wMTY1MzMsIDAuMDE2NTc3LCAwLjAxNjYxOSwgMC4wMTY2NDEsIDAuMDE2NjYxIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihSTikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNTk1MTIyOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDU5NDgwNzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA1OTUxMjI7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNzU2LCAwLjAwMDczMiwgMC4wMDA3MjMsIDAuMDAwNzI4LCAwLjAwMDczNywgMC4wMDA3NiwgMC4wMDA3ODEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDI1ODksIDAuMDAyNTcsIDAuMDAyNTY2LCAwLjAwMjU3LCAwLjAwMjU3OCwgMC4wMDI2MDEsIDAuMDAyNjE3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRCYhU0UmIVNJJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9TRV9FUV8wX0FOX1NJX0VRXzBfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjE4MTUxNCwgMC4xOTEzNjYsIDAuMjAzNDY4LCAwLjIxNDIwOCwgMC4yMjMzMjIsIDAuMjM2MzA3LCAwLjI0NjQ4MiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJlY292ZXJ5X3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiU04iOwotICAgICAgc2RmX2NvbmQgOiAiU04gPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQocmVjb3ZlcnlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDYyNSwgMC4wNTEyNSwgMC4wMzg3NSwgMC4wMjYyNSwgMC4wMTM3NSwgLTAuMDAyNSwgLTAuMDE3NSIsIFwKLSAgICAgICAgICAiMC4wNzM3NSwgMC4wNjI1LCAwLjA0Mzc1LCAwLjAzMTI1LCAwLjAxODc1LCAwLjAwMjUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICIwLjA4NjI1LCAwLjA3NSwgMC4wNjI1LCAwLjA0Mzc1LCAwLjAzMTI1LCAwLjAxNSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiMC4wOTg3NSwgMC4wODc1LCAwLjA2ODc1LCAwLjA1NjI1LCAwLjA0Mzc1LCAwLjAyNzUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMTA1LCAwLjA5Mzc1LCAwLjA4MTI1LCAwLjA2ODc1LCAwLjA1NjI1LCAwLjA0LCAwLjAyNSIsIFwKLSAgICAgICAgICAiMC4xMjEyNSwgMC4xMSwgMC4wOTc1LCAwLjA3ODc1LCAwLjA3MjUsIDAuMDUsIDAuMDQxMjUiLCBcCi0gICAgICAgICAgIjAuMTMsIDAuMTE4NzUsIDAuMTA2MjUsIDAuMDkzNzUsIDAuMDgxMjUsIDAuMDY1LCAwLjA1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIHRpbWluZ190eXBlIDogcmVjb3ZlcnlfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRCYhU0UmIVNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9TRV9FUV8wX0FOX1NJX0VRXzAgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQocmVjb3ZlcnlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDkzNzUsIDAuMTA1LCAwLjExNzUsIDAuMTIzNzUsIDAuMTM2MjUsIDAuMTQ2MjUsIDAuMTYxMjUiLCBcCi0gICAgICAgICAgIjAuMDg4NzUsIDAuMDkzNzUsIDAuMTA2MjUsIDAuMTE4NzUsIDAuMTI1LCAwLjE0MTI1LCAwLjE1IiwgXAotICAgICAgICAgICIwLjA3NjI1LCAwLjA4NzUsIDAuMSwgMC4xMDYyNSwgMC4xMTg3NSwgMC4xMjg3NSwgMC4xNDM3NSIsIFwKLSAgICAgICAgICAiMC4wNywgMC4wODEyNSwgMC4wOTM3NSwgMC4xLCAwLjEwNjI1LCAwLjEyMjUsIDAuMTM3NSIsIFwKLSAgICAgICAgICAiMC4wNywgMC4wNzUsIDAuMDg3NSwgMC4wOTM3NSwgMC4xMDYyNSwgMC4xMTYyNSwgMC4xMzEyNSIsIFwKLSAgICAgICAgICAiMC4wNiwgMC4wNzEyNSwgMC4wNzc1LCAwLjA5LCAwLjA5NjI1LCAwLjExMjUsIDAuMTIxMjUiLCBcCi0gICAgICAgICAgIjAuMDU3NSwgMC4wNjg3NSwgMC4wNzUsIDAuMDg3NSwgMC4wOTM3NSwgMC4xMDM3NSwgMC4xMTg3NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJlbW92YWxfcmlzaW5nOwotICAgICAgd2hlbiA6ICJTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJTTiA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChyZW1vdmFsX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMTI1LCAtMC4wMDEyNSwgMC4wMTEyNSwgMC4wMjM3NSwgMC4wMzYyNSwgMC4wNTI1LCAwLjA2MTI1IiwgXAotICAgICAgICAgICItMC4wMTc1LCAtMC4wMTI1LCAwLCAwLjAxMjUsIDAuMDI1LCAwLjA0MTI1LCAwLjA1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDI1LCAtMC4wMTI1LCAwLCAwLjAxMjUsIDAuMDI4NzUsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDM3NSwgLTAuMDI1LCAtMC4wMTI1LCAwLCAwLjAxNjI1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNDM3NSwgLTAuMDMxMjUsIC0wLjAxODc1LCAtMC4wMDYyNSwgMC4wMDM3NSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDY1LCAtMC4wNiwgLTAuMDQ3NSwgLTAuMDM1LCAtMC4wMjI1LCAtMC4wMDYyNSwgMC4wMDI1IiwgXAotICAgICAgICAgICItMC4wOCwgLTAuMDY4NzUsIC0wLjA1NjI1LCAtMC4wNDM3NSwgLTAuMDMxMjUsIC0wLjAxNSwgLTAuMDA2MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFNFKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE2NTUwOTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE2NTQzNDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE2NTUwOTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDU5NDYsIDAuMDA1OTI0LCAwLjAwNTkyMSwgMC4wMDU5MTYsIDAuMDA1OTI4LCAwLjAwNTk0NiwgMC4wMDU5NjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDc0NjQsIDAuMDA3NDA5LCAwLjAwNzQwMywgMC4wMDczOTIsIDAuMDA3NDA4LCAwLjAwNzQ0NSwgMC4wMDc0ODgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiUk4mU04iOwotICAgICAgc2RmX2NvbmQgOiAiUk5fRVFfMV9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAxMjUsIC0wLjAwMTI1LCAwLjAxMTI1LCAwLjAyMzc1LCAwLjAzLCAwLjA0NjI1LCAwLjA1NSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxMjUsIDAsIDAuMDEyNSwgMC4wMjUsIDAuMDM1LCAwLjA1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDI1LCAtMC4wMTI1LCAwLCAwLjAxMjUsIDAuMDIyNSwgMC4wMzc1IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLCAwLjAxNjI1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjA0Mzc1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLjAxLCAwLjAxODc1IiwgXAotICAgICAgICAgICItMC4wNTg3NSwgLTAuMDUzNzUsIC0wLjA0MTI1LCAtMC4wMjg3NSwgLTAuMDE2MjUsIC0wLjAwNjI1LCAwLjAwODc1IiwgXAotICAgICAgICAgICItMC4wNjc1LCAtMC4wNjI1LCAtMC4wNSwgLTAuMDM3NSwgLTAuMDI1LCAtMC4wMDg3NSwgMCIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2MjUsIDAuMDE3NSwgMC4wMywgMC4wNDI1LCAwLjA0ODc1LCAwLjA2NSwgMC4wNzM3NSIsIFwKLSAgICAgICAgICAiLTAuMDA1LCAwLjAwNjI1LCAwLjAxODc1LCAwLjAzMTI1LCAwLjA0Mzc1LCAwLjA1Mzc1LCAwLjA2ODc1IiwgXAotICAgICAgICAgICItMC4wMTEyNSwgMCwgMC4wMDYyNSwgMC4wMTg3NSwgMC4wMzEyNSwgMC4wNDc1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDEyNSwgMCwgMC4wMTI1LCAwLjAxODc1LCAwLjAzNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAxODc1LCAtMC4wMDYyNSwgMCwgMC4wMTI1LCAwLjAyODc1LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjA0LCAtMC4wMzUsIC0wLjAyMjUsIC0wLjAxLCAwLjAwMjUsIDAuMDEyNSwgMC4wMjc1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAxODc1LCAtMC4wMDYyNSwgMC4wMDM3NSwgMC4wMTg3NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiUk4mU04iOwotICAgICAgc2RmX2NvbmQgOiAiUk5fRVFfMV9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5Mzc1LCAwLjA4MjUsIDAuMDcsIDAuMDU3NSwgMC4wNDUsIDAuMDI4NzUsIDAuMDIiLCBcCi0gICAgICAgICAgIjAuMTA1LCAwLjA5Mzc1LCAwLjA3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA0LCAwLjAzMTI1IiwgXAotICAgICAgICAgICIwLjExNzUsIDAuMTA2MjUsIDAuMDg3NSwgMC4wNzUsIDAuMDY4NzUsIDAuMDUyNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4xMywgMC4xMTI1LCAwLjEsIDAuMDg3NSwgMC4wNzUsIDAuMDY1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICIwLjEzNjI1LCAwLjEyNSwgMC4xMTI1LCAwLjEsIDAuMDg3NSwgMC4wNzc1LCAwLjA2ODc1IiwgXAotICAgICAgICAgICIwLjE1MjUsIDAuMTQxMjUsIDAuMTI4NzUsIDAuMTE2MjUsIDAuMTAzNzUsIDAuMDkzNzUsIDAuMDg1IiwgXAotICAgICAgICAgICIwLjE2NzUsIDAuMTU2MjUsIDAuMTQzNzUsIDAuMTMxMjUsIDAuMTE4NzUsIDAuMTAyNSwgMC4wOTM3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExMjUsIDAuMTAxMjUsIDAuMDg4NzUsIDAuMDc2MjUsIDAuMDYzNzUsIDAuMDUzNzUsIDAuMDQ1IiwgXAotICAgICAgICAgICIwLjEyMzc1LCAwLjExMjUsIDAuMSwgMC4wODc1LCAwLjA3NSwgMC4wNjUsIDAuMDUiLCBcCi0gICAgICAgICAgIjAuMTM2MjUsIDAuMTI1LCAwLjExMjUsIDAuMSwgMC4wODc1LCAwLjA3MTI1LCAwLjA2MjUiLCBcCi0gICAgICAgICAgIjAuMTQyNSwgMC4xMzEyNSwgMC4xMTg3NSwgMC4xMDYyNSwgMC4wOTM3NSwgMC4wODM3NSwgMC4wNzUiLCBcCi0gICAgICAgICAgIjAuMTU1LCAwLjEzNzUsIDAuMTI1LCAwLjExMjUsIDAuMSwgMC4wOSwgMC4wODEyNSIsIFwKLSAgICAgICAgICAiMC4xNjUsIDAuMTQ3NSwgMC4xMzUsIDAuMTIyNSwgMC4xMSwgMC4xLCAwLjA5MTI1IiwgXAotICAgICAgICAgICIwLjE2NzUsIDAuMTU2MjUsIDAuMTQzNzUsIDAuMTMxMjUsIDAuMTE4NzUsIDAuMTA4NzUsIDAuMSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oU0kpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDkyMTQ4OTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA5MTg2MzI7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwOTIxNDg5OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNDQyNiwgMC4wMDQzOTUsIDAuMDA0Mzc3LCAwLjAwNDM2NiwgMC4wMDQzNiwgMC4wMDQzNjIsIDAuMDA0MzcyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA2NTQ1LCAwLjAwNjUyNywgMC4wMDY1MTUsIDAuMDA2NTA5LCAwLjAwNjUwNSwgMC4wMDY1MDQsIDAuMDA2NTEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiUk4mU0UmU04iOwotICAgICAgc2RmX2NvbmQgOiAiUk5fRVFfMV9BTl9TRV9FUV8xX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDQzNzUsIC0wLjAzMjUsIC0wLjAyNjI1LCAtMC4wMiwgLTAuMDA3NSwgLTAuMDAzNzUsIDAuMDA1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDQzNzUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMDg3NSwgMCIsIFwKLSAgICAgICAgICAiLTAuMDYxMjUsIC0wLjA1NjI1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAyMTI1LCAtMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wNzM3NSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDMzNzUsIC0wLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDgsIC0wLjA3NSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNCwgLTAuMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDk2MjUsIC0wLjA5MTI1LCAtMC4wNzg3NSwgLTAuMDcyNSwgLTAuMDY2MjUsIC0wLjA1NjI1LCAtMC4wNDc1IiwgXAotICAgICAgICAgICItMC4xMTEyNSwgLTAuMSwgLTAuMDkzNzUsIC0wLjA4NzUsIC0wLjA4MTI1LCAtMC4wNzEyNSwgLTAuMDYyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAsIDAuMDExMjUsIDAuMDIzNzUsIDAuMDM2MjUsIDAuMDQyNSwgMC4wNTg3NSwgMC4wNjc1IiwgXAotICAgICAgICAgICItMC4wMTEyNSwgMCwgMC4wMTI1LCAwLjAyNSwgMC4wMzc1LCAwLjA0NzUsIDAuMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDE3NSwgLTAuMDA2MjUsIDAuMDA2MjUsIDAuMDE4NzUsIDAuMDI1LCAwLjA0MTI1LCAwLjA1IiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLjAwNjI1LCAwLjAxODc1LCAwLjAyODc1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDI1LCAtMC4wMTI1LCAwLCAwLjAwNjI1LCAwLjAyMjUsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDQ2MjUsIC0wLjAzNSwgLTAuMDIyNSwgLTAuMDEsIC0wLjAwMzc1LCAwLjAxMjUsIDAuMDIxMjUiLCBcCi0gICAgICAgICAgIi0wLjA1NSwgLTAuMDQzNzUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgMC4wMDM3NSwgMC4wMTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJSTiZTRSZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJSTl9FUV8xX0FOX1NFX0VRXzFfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xLCAwLjA4ODc1LCAwLjA3NjI1LCAwLjA2Mzc1LCAwLjA1MTI1LCAwLjAzNSwgMC4wMjYyNSIsIFwKLSAgICAgICAgICAiMC4xMTEyNSwgMC4xLCAwLjA4MTI1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDQ2MjUsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiMC4xMjM3NSwgMC4xMDYyNSwgMC4wOTM3NSwgMC4wODEyNSwgMC4wNjg3NSwgMC4wNTg3NSwgMC4wNSIsIFwKLSAgICAgICAgICAiMC4xMywgMC4xMTg3NSwgMC4xMDYyNSwgMC4wOTM3NSwgMC4wODEyNSwgMC4wNzEyNSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiMC4xNDI1LCAwLjEzMTI1LCAwLjExMjUsIDAuMSwgMC4wOTM3NSwgMC4wNzc1LCAwLjA2ODc1IiwgXAotICAgICAgICAgICIwLjE1ODc1LCAwLjE0NzUsIDAuMTI4NzUsIDAuMTE2MjUsIDAuMTEsIDAuMDkzNzUsIDAuMDg1IiwgXAotICAgICAgICAgICIwLjE2NzUsIDAuMTU2MjUsIDAuMTQzNzUsIDAuMTMxMjUsIDAuMTE4NzUsIDAuMTA4NzUsIDAuMSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3NSwgMC4wNjM3NSwgMC4wNDUsIDAuMDMyNSwgMC4wMiwgMC4wMDM3NSwgLTAuMDA1IiwgXAotICAgICAgICAgICIwLjA4LCAwLjA2ODc1LCAwLjA1NjI1LCAwLjA0Mzc1LCAwLjAzMTI1LCAwLjAxNSwgMCIsIFwKLSAgICAgICAgICAiMC4wOTI1LCAwLjA4MTI1LCAwLjA2ODc1LCAwLjA1LCAwLjA0Mzc1LCAwLjAyMTI1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMDk4NzUsIDAuMDg3NSwgMC4wNzUsIDAuMDYyNSwgMC4wNSwgMC4wMzM3NSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4xMTEyNSwgMC4xLCAwLjA4NzUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNCwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4xMjEyNSwgMC4xMSwgMC4wOTc1LCAwLjA4NSwgMC4wNzI1LCAwLjA1NjI1LCAwLjA0MTI1IiwgXAotICAgICAgICAgICIwLjEzNjI1LCAwLjEyNSwgMC4xMDYyNSwgMC4wOTM3NSwgMC4wODEyNSwgMC4wNjUsIDAuMDU2MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFNOKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE5OTAxOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTk4OTc5OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTk5MDE7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNjUzLCAwLjAwMDY1MiwgMC4wMDA2NTEsIDAuMDAwNjUyLCAwLjAwMDY1MiwgMC4wMDA2NTIsIDAuMDAwNjUxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNjU0LCAwLjAwMDY1NCwgMC4wMDA2NTQsIDAuMDAwNjU0LCAwLjAwMDY1NCwgMC4wMDA2NTQsIDAuMDAwNjU0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRCYhUk4mIVNFJiFTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fUk5fRVFfMF9BTl9TRV9FUV8wX0FOX1NJX0VRXzAgPT0gMSdiMSI7Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4xMTY3MTIsIDAuMTI1OTQ0LCAwLjEzNjEzNCwgMC4xNDcwODUsIDAuMTU5MTA2LCAwLjE3NjY2MSwgMC4xOTA4MzgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiByZWNvdmVyeV9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlJOIjsKLSAgICAgIHNkZl9jb25kIDogIlJOID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHJlY292ZXJ5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjI1LCAtMC4wMDUsIC0wLjAxNzUsIC0wLjAzNjI1LCAtMC4wNDg3NSwgLTAuMDY1LCAtMC4wOCIsIFwKLSAgICAgICAgICAiMC4wMTEyNSwgMC4wMDYyNSwgLTAuMDEyNSwgLTAuMDI1LCAtMC4wMzc1LCAtMC4wNTM3NSwgLTAuMDY4NzUiLCBcCi0gICAgICAgICAgIjAuMDIzNzUsIDAuMDEyNSwgMCwgLTAuMDEyNSwgLTAuMDI1LCAtMC4wNDc1LCAtMC4wNTYyNSIsIFwKLSAgICAgICAgICAiMC4wMzYyNSwgMC4wMjUsIDAuMDEyNSwgLTAuMDA2MjUsIC0wLjAxODc1LCAtMC4wMzUsIC0wLjA1IiwgXAotICAgICAgICAgICIwLjA0MjUsIDAuMDMxMjUsIDAuMDE4NzUsIDAuMDA2MjUsIC0wLjAwNjI1LCAtMC4wMjI1LCAtMC4wMzc1IiwgXAotICAgICAgICAgICIwLjA2NSwgMC4wNTM3NSwgMC4wMzUsIDAuMDIyNSwgMC4wMSwgLTAuMDA2MjUsIC0wLjAyMTI1IiwgXAotICAgICAgICAgICIwLjA3Mzc1LCAwLjA2MjUsIDAuMDUsIDAuMDM3NSwgMC4wMjUsIDAuMDA4NzUsIC0wLjAwNjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogcmVtb3ZhbF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlJOIjsKLSAgICAgIHNkZl9jb25kIDogIlJOID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHJlbW92YWxfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM3NSwgMC4wNDg3NSwgMC4wNjEyNSwgMC4wNzM3NSwgMC4wODYyNSwgMC4xMDI1LCAwLjExNzUiLCBcCi0gICAgICAgICAgIjAuMDMyNSwgMC4wMzc1LCAwLjA1LCAwLjA2MjUsIDAuMDc1LCAwLjA5MTI1LCAwLjEwNjI1IiwgXAotICAgICAgICAgICIwLjAyLCAwLjAzMTI1LCAwLjA0Mzc1LCAwLjA1NjI1LCAwLjA2ODc1LCAwLjA4NSwgMC4wOTM3NSIsIFwKLSAgICAgICAgICAiMC4wMDc1LCAwLjAxODc1LCAwLjAzMTI1LCAwLjA0Mzc1LCAwLjA1NjI1LCAwLjA3MjUsIDAuMDg3NSIsIFwKLSAgICAgICAgICAiLTAuMDA1LCAwLjAwNjI1LCAwLjAxODc1LCAwLjAzMTI1LCAwLjA0Mzc1LCAwLjA2LCAwLjA3NSIsIFwKLSAgICAgICAgICAiLTAuMDE1LCAtMC4wMSwgMC4wMDI1LCAwLjAxNSwgMC4wMjc1LCAwLjA0Mzc1LCAwLjA1ODc1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLjAwNjI1LCAwLjAxODc1LCAwLjAzNSwgMC4wNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogU0VERkZUUlgxICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoU0VERkZUUlgxKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuNTU0NjM3OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIGZmIChOMzAsUUJJTlQpIHsKLSAgICBuZXh0X3N0YXRlIDogIigoU0UgU0kpICsgKCFTRSAoKCghKCghRCkgRSkpICghKCghRSkgKCFOMzApKSkpIFJOKSkpIjsKLSAgICBjbG9ja2VkX29uIDogIkNLIjsKLSAgfQotICBwaW4oQ0spICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYxNDYxMTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MTQyMTQ7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjE0NjExOwotICAgIGNsb2NrIDogdHJ1ZTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDI5NzUsIDAuMDAyOTUxLCAwLjAwMjkzOSwgMC4wMDI5NDIsIDAuMDAyOTU3LCAwLjAwMjk3OCwgMC4wMDI5OTUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDU1OSwgMC4wMDU1NjYsIDAuMDA1NTY1LCAwLjAwNTU3OCwgMC4wMDU1OTgsIDAuMDA1NjQzLCAwLjAwNTY4MyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQmIUUmIVJOJiFTRSYhU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX0VfRVFfMF9BTl9STl9FUV8wX0FOX1NFX0VRXzBfQU5fU0lfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjE3ODA5OCwgMC4xODgzMTMsIDAuMjAwOTA2LCAwLjIxMjI3NCwgMC4yMjIzMDMsIDAuMjM2MzQ0LCAwLjI0NjM2MSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDg4OTc1LCAwLjA5ODg4MiwgMC4xMTA5NTYsIDAuMTIxODYsIDAuMTMxMTEyLCAwLjE0MzYyMiwgMC4xNTMwNjYiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEQpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYwMzkyMzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MDM2MTM7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjAzOTIzOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNjE1OSwgMC4wMDYxMjYsIDAuMDA2MTE2LCAwLjAwNjEyNCwgMC4wMDYxMywgMC4wMDYxNTQsIDAuMDA2MTc3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA2NDkxLCAwLjAwNjQ2OCwgMC4wMDY0NiwgMC4wMDY0NjQsIDAuMDA2NDc0LCAwLjAwNjQ5OSwgMC4wMDY1MTciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiRSZSTiYhU0UiOwotICAgICAgc2RmX2NvbmQgOiAiRV9FUV8xX0FOX1JOX0VRXzFfQU5fU0VfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4xMjUsIC0wLjEyLCAtMC4xMTM3NSwgLTAuMTA3NSwgLTAuMTAxMjUsIC0wLjA5NzUsIC0wLjA5NSIsIFwKLSAgICAgICAgICAiLTAuMTM2MjUsIC0wLjEzMTI1LCAtMC4xMjUsIC0wLjExODc1LCAtMC4xMTI1LCAtMC4xMDg3NSwgLTAuMSIsIFwKLSAgICAgICAgICAiLTAuMTQ4NzUsIC0wLjE0Mzc1LCAtMC4xMzc1LCAtMC4xMzEyNSwgLTAuMTI1LCAtMC4xMTUsIC0wLjExMjUiLCBcCi0gICAgICAgICAgIi0wLjE1NSwgLTAuMTUsIC0wLjE0Mzc1LCAtMC4xMzc1LCAtMC4xMzEyNSwgLTAuMTI3NSwgLTAuMTE4NzUiLCBcCi0gICAgICAgICAgIi0wLjE2NzUsIC0wLjE1NjI1LCAtMC4xNSwgLTAuMTQzNzUsIC0wLjE0Mzc1LCAtMC4xMzM3NSwgLTAuMTMxMjUiLCBcCi0gICAgICAgICAgIi0wLjE3NzUsIC0wLjE2NjI1LCAtMC4xNiwgLTAuMTUzNzUsIC0wLjE1Mzc1LCAtMC4xNDM3NSwgLTAuMTQxMjUiLCBcCi0gICAgICAgICAgIi0wLjE4LCAtMC4xNzUsIC0wLjE2ODc1LCAtMC4xNjI1LCAtMC4xNTYyNSwgLTAuMTUyNSwgLTAuMTQzNzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wODEyNSwgLTAuMDc2MjUsIC0wLjA2Mzc1LCAtMC4wNTEyNSwgLTAuMDQ1LCAtMC4wMzUsIC0wLjAyNjI1IiwgXAotICAgICAgICAgICItMC4wOTI1LCAtMC4wODEyNSwgLTAuMDc1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDQ2MjUsIC0wLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjEwNSwgLTAuMDkzNzUsIC0wLjA4MTI1LCAtMC4wNzUsIC0wLjA2ODc1LCAtMC4wNTI1LCAtMC4wNDM3NSIsIFwKLSAgICAgICAgICAiLTAuMTExMjUsIC0wLjEsIC0wLjA5Mzc1LCAtMC4wODEyNSwgLTAuMDc1LCAtMC4wNjUsIC0wLjA1NjI1IiwgXAotICAgICAgICAgICItMC4xMTc1LCAtMC4xMDYyNSwgLTAuMSwgLTAuMDg3NSwgLTAuMDgxMjUsIC0wLjA3MTI1LCAtMC4wNjI1IiwgXAotICAgICAgICAgICItMC4xMjc1LCAtMC4xMTYyNSwgLTAuMTAzNzUsIC0wLjA5NzUsIC0wLjA5MTI1LCAtMC4wODEyNSwgLTAuMDcyNSIsIFwKLSAgICAgICAgICAiLTAuMTM2MjUsIC0wLjEyNSwgLTAuMTEyNSwgLTAuMTA2MjUsIC0wLjA5Mzc1LCAtMC4wODM3NSwgLTAuMDc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJFJlJOJiFTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJFX0VRXzFfQU5fUk5fRVFfMV9BTl9TRV9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE3NSwgMC4xNjM3NSwgMC4xNTc1LCAwLjE1MTI1LCAwLjE0NSwgMC4xMzUsIDAuMTMyNSIsIFwKLSAgICAgICAgICAiMC4xODYyNSwgMC4xNzUsIDAuMTY4NzUsIDAuMTU2MjUsIDAuMTU2MjUsIDAuMTQ2MjUsIDAuMTM3NSIsIFwKLSAgICAgICAgICAiMC4xOTg3NSwgMC4xODc1LCAwLjE3NSwgMC4xNjg3NSwgMC4xNjI1LCAwLjE1ODc1LCAwLjE1IiwgXAotICAgICAgICAgICIwLjIwNSwgMC4xOTM3NSwgMC4xODc1LCAwLjE3NSwgMC4xNzUsIDAuMTY1LCAwLjE2MjUiLCBcCi0gICAgICAgICAgIjAuMjExMjUsIDAuMiwgMC4xOTM3NSwgMC4xODc1LCAwLjE4MTI1LCAwLjE3MTI1LCAwLjE2ODc1IiwgXAotICAgICAgICAgICIwLjIyMTI1LCAwLjIxLCAwLjIwMzc1LCAwLjE5NzUsIDAuMTkxMjUsIDAuMTgxMjUsIDAuMTc4NzUiLCBcCi0gICAgICAgICAgIjAuMjMsIDAuMjE4NzUsIDAuMjEyNSwgMC4yLCAwLjIsIDAuMTksIDAuMTg3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEzMTI1LCAwLjEyLCAwLjEwNzUsIDAuMDk1LCAwLjA4MjUsIDAuMDcyNSwgMC4wNjM3NSIsIFwKLSAgICAgICAgICAiMC4xNDI1LCAwLjEzMTI1LCAwLjExODc1LCAwLjEwNjI1LCAwLjA5Mzc1LCAwLjA4Mzc1LCAwLjA2ODc1IiwgXAotICAgICAgICAgICIwLjE0ODc1LCAwLjEzNzUsIDAuMTI1LCAwLjExMjUsIDAuMTA2MjUsIDAuMDksIDAuMDgxMjUiLCBcCi0gICAgICAgICAgIjAuMTU1LCAwLjE1LCAwLjEzNzUsIDAuMTI1LCAwLjExMjUsIDAuMTAyNSwgMC4wODc1IiwgXAotICAgICAgICAgICIwLjE2NzUsIDAuMTU2MjUsIDAuMTQzNzUsIDAuMTMxMjUsIDAuMTE4NzUsIDAuMTA4NzUsIDAuMDkzNzUiLCBcCi0gICAgICAgICAgIjAuMTcxMjUsIDAuMTYsIDAuMTQ3NSwgMC4xNDEyNSwgMC4xMjg3NSwgMC4xMTg3NSwgMC4xMDM3NSIsIFwKLSAgICAgICAgICAiMC4xOCwgMC4xNjg3NSwgMC4xNTYyNSwgMC4xNDM3NSwgMC4xMzc1LCAwLjEyMTI1LCAwLjExMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEUpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTIzNTQ3OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTIzNTQ3OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTIzNDc4OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNjYzNSwgMC4wMDY2MTIsIDAuMDA2NjA4LCAwLjAwNjYxNiwgMC4wMDY2MjcsIDAuMDA2NjUxLCAwLjAwNjY3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNzU1NywgMC4wMDc1MjMsIDAuMDA3NTI3LCAwLjAwNzUyNiwgMC4wMDc1MzYsIDAuMDA3NTc0LCAwLjAwNzYwOSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJSTiYhU0UiOwotICAgICAgc2RmX2NvbmQgOiAiUk5fRVFfMV9BTl9TRV9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjEsIC0wLjA4ODc1LCAtMC4wNzYyNSwgLTAuMDcsIC0wLjA1NzUsIC0wLjA0NzUsIC0wLjAzODc1IiwgXAotICAgICAgICAgICItMC4xMTEyNSwgLTAuMSwgLTAuMDg3NSwgLTAuMDc1LCAtMC4wNjg3NSwgLTAuMDUyNSwgLTAuMDQzNzUiLCBcCi0gICAgICAgICAgIi0wLjExNzUsIC0wLjExMjUsIC0wLjEsIC0wLjA4NzUsIC0wLjA3NSwgLTAuMDY1LCAtMC4wNTYyNSIsIFwKLSAgICAgICAgICAiLTAuMTMsIC0wLjExODc1LCAtMC4xMDYyNSwgLTAuMDkzNzUsIC0wLjA4NzUsIC0wLjA3NzUsIC0wLjA2MjUiLCBcCi0gICAgICAgICAgIi0wLjE0MjUsIC0wLjEzMTI1LCAtMC4xMTg3NSwgLTAuMTA2MjUsIC0wLjEsIC0wLjA4Mzc1LCAtMC4wNzUiLCBcCi0gICAgICAgICAgIi0wLjE1MjUsIC0wLjE0MTI1LCAtMC4xMjg3NSwgLTAuMTIyNSwgLTAuMTEsIC0wLjEsIC0wLjA5MTI1IiwgXAotICAgICAgICAgICItMC4xNjEyNSwgLTAuMTU2MjUsIC0wLjE0Mzc1LCAtMC4xMzEyNSwgLTAuMTE4NzUsIC0wLjEwODc1LCAtMC4xIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDkzNzUsIC0wLjA4MjUsIC0wLjA3NjI1LCAtMC4wNjM3NSwgLTAuMDU3NSwgLTAuMDQ3NSwgLTAuMDM4NzUiLCBcCi0gICAgICAgICAgIi0wLjEwNSwgLTAuMDkzNzUsIC0wLjA4NzUsIC0wLjA3NSwgLTAuMDY4NzUsIC0wLjA1ODc1LCAtMC4wNSIsIFwKLSAgICAgICAgICAiLTAuMTE3NSwgLTAuMTA2MjUsIC0wLjA5Mzc1LCAtMC4wODc1LCAtMC4wODEyNSwgLTAuMDY1LCAtMC4wNTYyNSIsIFwKLSAgICAgICAgICAiLTAuMTIzNzUsIC0wLjExMjUsIC0wLjEwNjI1LCAtMC4wOTM3NSwgLTAuMDg3NSwgLTAuMDc3NSwgLTAuMDY4NzUiLCBcCi0gICAgICAgICAgIi0wLjEzLCAtMC4xMTg3NSwgLTAuMTEyNSwgLTAuMSwgLTAuMDkzNzUsIC0wLjA4Mzc1LCAtMC4wNzUiLCBcCi0gICAgICAgICAgIi0wLjE0LCAtMC4xMjg3NSwgLTAuMTE2MjUsIC0wLjExLCAtMC4xMDM3NSwgLTAuMDkzNzUsIC0wLjA4NSIsIFwKLSAgICAgICAgICAiLTAuMTQ4NzUsIC0wLjEzNzUsIC0wLjEyNSwgLTAuMTE4NzUsIC0wLjEwNjI1LCAtMC4wOTYyNSwgLTAuMDg3NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiUk4mIVNFIjsKLSAgICAgIHNkZl9jb25kIDogIlJOX0VRXzFfQU5fU0VfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xOTM3NSwgMC4xODI1LCAwLjE3NjI1LCAwLjE3LCAwLjE2Mzc1LCAwLjE1Mzc1LCAwLjE1MTI1IiwgXAotICAgICAgICAgICIwLjIwNSwgMC4xOTM3NSwgMC4xODc1LCAwLjE4MTI1LCAwLjE3NSwgMC4xNjUsIDAuMTYyNSIsIFwKLSAgICAgICAgICAiMC4yMTc1LCAwLjIwNjI1LCAwLjE5Mzc1LCAwLjE4NzUsIDAuMTgxMjUsIDAuMTc3NSwgMC4xNjg3NSIsIFwKLSAgICAgICAgICAiMC4yMjM3NSwgMC4yMTI1LCAwLjIwNjI1LCAwLjIsIDAuMTkzNzUsIDAuMTgzNzUsIDAuMTgxMjUiLCBcCi0gICAgICAgICAgIjAuMjMsIDAuMjI1LCAwLjIxMjUsIDAuMjA2MjUsIDAuMiwgMC4xOSwgMC4xODc1IiwgXAotICAgICAgICAgICIwLjI0LCAwLjIzNSwgMC4yMjI1LCAwLjIxNjI1LCAwLjIxLCAwLjIsIDAuMTk3NSIsIFwKLSAgICAgICAgICAiMC4yNDg3NSwgMC4yNDM3NSwgMC4yMzEyNSwgMC4yMjUsIDAuMjE4NzUsIDAuMjA4NzUsIDAuMjA2MjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMzEyNSwgMC4xMjYyNSwgMC4xMiwgMC4xMTM3NSwgMC4xMDc1LCAwLjEwMzc1LCAwLjA5NSIsIFwKLSAgICAgICAgICAiMC4xNDI1LCAwLjEzNzUsIDAuMTMxMjUsIDAuMTI1LCAwLjExODc1LCAwLjEwODc1LCAwLjEwNjI1IiwgXAotICAgICAgICAgICIwLjE1NSwgMC4xNDM3NSwgMC4xMzc1LCAwLjEzMTI1LCAwLjEzMTI1LCAwLjEyMTI1LCAwLjExODc1IiwgXAotICAgICAgICAgICIwLjE2NzUsIDAuMTU2MjUsIDAuMTUsIDAuMTQzNzUsIDAuMTM3NSwgMC4xMzM3NSwgMC4xMjUiLCBcCi0gICAgICAgICAgIjAuMTczNzUsIDAuMTY4NzUsIDAuMTYyNSwgMC4xNTYyNSwgMC4xNSwgMC4xNDYyNSwgMC4xMzc1IiwgXAotICAgICAgICAgICIwLjE5LCAwLjE4NSwgMC4xNzg3NSwgMC4xNzI1LCAwLjE2NjI1LCAwLjE2MjUsIDAuMTUzNzUiLCBcCi0gICAgICAgICAgIjAuMjA1LCAwLjIsIDAuMTg3NSwgMC4xODc1LCAwLjE4MTI1LCAwLjE3MTI1LCAwLjE2ODc1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihRKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMjU3MDU5OwotICAgIGZ1bmN0aW9uIDogIk4zMCI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3NlbnNlIDogbm9uX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiByaXNpbmdfZWRnZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTUyOTk0LCAwLjE3Nzk2OCwgMC4zMTc3MzcsIDAuNDQwNzM1LCAwLjYwNDk2MywgMC45MzI3NiwgMS4xMzc5NCIsIFwKLSAgICAgICAgICAiMC4xNjMxMiwgMC4xODgwODksIDAuMzI3ODQ0LCAwLjQ1MDk5MiwgMC42MTQ4MTUsIDAuOTQyODg2LCAxLjE0ODA0IiwgXAotICAgICAgICAgICIwLjE3NTU5NywgMC4yMDA1NDEsIDAuMzQwMzQ1LCAwLjQ2MzI0OSwgMC42MjcyODgsIDAuOTU1NTYzLCAxLjE2MDU1IiwgXAotICAgICAgICAgICIwLjE4Njg5NSwgMC4yMTE4ODMsIDAuMzUxNjIyLCAwLjQ3NDc2NCwgMC42Mzg3MDksIDAuOTY2NjU3LCAxLjE3MTk2IiwgXAotICAgICAgICAgICIwLjE5NjY0MiwgMC4yMjE2MzEsIDAuMzYxMzY5LCAwLjQ4NDUwOSwgMC42NDg0NDUsIDAuOTc2NDA0LCAxLjE4MTYyIiwgXAotICAgICAgICAgICIwLjIxMDExOSwgMC4yMzUxMzQsIDAuMzc0ODU4LCAwLjQ5ODAwMiwgMC42NjE5MzEsIDAuOTg5ODkzLCAxLjE5NTExIiwgXAotICAgICAgICAgICIwLjIyMDQxMSwgMC4yNDUzNzUsIDAuMzg1MTQ2LCAwLjUwODA1NCwgMC42NzIyNjQsIDEuMDAwMTksIDEuMjA1MjgiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk3MjMyLCAwLjE0NTk3NSwgMC40MzA4ODMsIDAuNjg1MTg0LCAxLjAyNDU1LCAxLjcwMzM3LCAyLjEyNzcxIiwgXAotICAgICAgICAgICIwLjA5NzI1NSwgMC4xNDU5NjIsIDAuNDMwODczLCAwLjY4NDM3NiwgMS4wMjQ1MiwgMS43MDMzNywgMi4xMjc3NCIsIFwKLSAgICAgICAgICAiMC4wOTcyNDgsIDAuMTQ1OTY4LCAwLjQzMDg2OSwgMC42ODQ2MTIsIDEuMDI0NTIsIDEuNzAzNTEsIDIuMTI3NjkiLCBcCi0gICAgICAgICAgIjAuMDk3MTgsIDAuMTQ1OTU1LCAwLjQzMDg3LCAwLjY4NTIwNywgMS4wMjQ1MiwgMS43MDMzNywgMi4xMjc3MiIsIFwKLSAgICAgICAgICAiMC4wOTcyNDMsIDAuMTQ1OTU4LCAwLjQzMDg3MiwgMC42ODUyMDcsIDEuMDI0NTEsIDEuNzAzMzcsIDIuMTI3NzIiLCBcCi0gICAgICAgICAgIjAuMDk3MjQ2LCAwLjE0NTk1NCwgMC40MzA4NywgMC42ODQ2OTcsIDEuMDI0NSwgMS43MDMzNSwgMi4xMjc2OSIsIFwKLSAgICAgICAgICAiMC4wOTcyNDUsIDAuMTQ1OTg2LCAwLjQzMDg3NywgMC42ODUyMSwgMS4wMjQ0OSwgMS43MDMzMiwgMi4xMjc2NiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNjg3MTgsIDAuMTkzOTUyLCAwLjMzNDYwOCwgMC40NTgzNTUsIDAuNjIzMzMsIDAuOTUzNDk5LCAxLjE2MDAyIiwgXAotICAgICAgICAgICIwLjE3ODkzOCwgMC4yMDQyMTcsIDAuMzQ0ODQ4LCAwLjQ2ODU4MiwgMC42MzM1NDcsIDAuOTYzNzI1LCAxLjE3MDUiLCBcCi0gICAgICAgICAgIjAuMTkxNTQsIDAuMjE2Nzc1LCAwLjM1NzQ0MywgMC40ODExNzIsIDAuNjQ2MTQsIDAuOTc2NDk5LCAxLjE4MzA5IiwgXAotICAgICAgICAgICIwLjIwMjg5OCwgMC4yMjgxNDQsIDAuMzY4ODAxLCAwLjQ5MjUzOSwgMC42NTc1MTUsIDAuOTg3ODg3LCAxLjE5NDM0IiwgXAotICAgICAgICAgICIwLjIxMjkxMSwgMC4yMzgxNDcsIDAuMzc4OCwgMC41MDI1NDksIDAuNjY3NTIyLCAwLjk5Nzg5MiwgMS4yMDQzOCIsIFwKLSAgICAgICAgICAiMC4yMjcwMTgsIDAuMjUyMjU0LCAwLjM5MjkxLCAwLjUxNjY4NiwgMC42ODE1ODksIDEuMDEyLCAxLjIxODU3IiwgXAotICAgICAgICAgICIwLjIzNjk4MSwgMC4yNjIyMzgsIDAuNDAyOTAyLCAwLjUyNjY0MSwgMC42OTE1ODMsIDEuMDIxOTcsIDEuMjI4NTQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk1Njk3LCAwLjE0MzQ2MSwgMC40MjI2NTEsIDAuNjcxMjk0LCAxLjAwNDA1LCAxLjY2OTQ3LCAyLjA4NDc4IiwgXAotICAgICAgICAgICIwLjA5NTY2NywgMC4xNDM0MTksIDAuNDIyNjM0LCAwLjY3MTI5NCwgMS4wMDQwNSwgMS42NjkwMSwgMi4wODQ4OCIsIFwKLSAgICAgICAgICAiMC4wOTU2NzcsIDAuMTQzNDYyLCAwLjQyMjY0OSwgMC42NzE1NDMsIDEuMDA0MDcsIDEuNjY5MDIsIDIuMDg0OTUiLCBcCi0gICAgICAgICAgIjAuMDk1NjU5LCAwLjE0MzQ4MywgMC40MjI2MzIsIDAuNjcxNDU0LCAxLjAwNDA5LCAxLjY2OTA1LCAyLjA4NDk2IiwgXAotICAgICAgICAgICIwLjA5NTY2NiwgMC4xNDM0OTQsIDAuNDIyNjU0LCAwLjY3MTI5NywgMS4wMDQwNSwgMS42NjkwMywgMi4wODQ2NSIsIFwKLSAgICAgICAgICAiMC4wOTU2MzMsIDAuMTQzNDkxLCAwLjQyMjY1NCwgMC42NzE0OCwgMS4wMDQwNCwgMS42NjkwNCwgMi4wODQ5NyIsIFwKLSAgICAgICAgICAiMC4wOTU2MTMsIDAuMTQzNDY0LCAwLjQyMjYzMywgMC42NzE2LCAxLjAwNDAzLCAxLjY2OTAxLCAyLjA4NDc0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNTcyNCwgMC4wMDU3MzMsIDAuMDA1NzQ1LCAwLjAwNTc0NywgMC4wMDU3NDgsIDAuMDA1NzUsIDAuMDA1NzUxIiwgXAotICAgICAgICAgICIwLjAwNTcwNywgMC4wMDU3MTYsIDAuMDA1NzI5LCAwLjAwNTczMSwgMC4wMDU3MzMsIDAuMDA1NzM0LCAwLjAwNTczNSIsIFwKLSAgICAgICAgICAiMC4wMDU3MDEsIDAuMDA1NzEsIDAuMDA1NzIyLCAwLjAwNTcyNSwgMC4wMDU3MjYsIDAuMDA1NzI3LCAwLjAwNTcyOCIsIFwKLSAgICAgICAgICAiMC4wMDU3MDUsIDAuMDA1NzEzLCAwLjAwNTcyNywgMC4wMDU3MjgsIDAuMDA1NzMsIDAuMDA1NzMxLCAwLjAwNTczMiIsIFwKLSAgICAgICAgICAiMC4wMDU3MTEsIDAuMDA1NzIsIDAuMDA1NzMyLCAwLjAwNTczNSwgMC4wMDU3MzYsIDAuMDA1NzM3LCAwLjAwNTczOCIsIFwKLSAgICAgICAgICAiMC4wMDU3MjMsIDAuMDA1NzMyLCAwLjAwNTc0NSwgMC4wMDU3NDgsIDAuMDA1NzQ4LCAwLjAwNTc1LCAwLjAwNTc1IiwgXAotICAgICAgICAgICIwLjAwNTczMywgMC4wMDU3NDMsIDAuMDA1NzU1LCAwLjAwNTc1OCwgMC4wMDU3NTksIDAuMDA1NzYsIDAuMDA1NzYxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1NzI3LCAwLjAwNTczNSwgMC4wMDU3NDcsIDAuMDA1NzQ5LCAwLjAwNTc1MSwgMC4wMDU3NTIsIDAuMDA1NzUyIiwgXAotICAgICAgICAgICIwLjAwNTcxMywgMC4wMDU3MjEsIDAuMDA1NzMzLCAwLjAwNTczNiwgMC4wMDU3MzcsIDAuMDA1NzM4LCAwLjAwNTczOSIsIFwKLSAgICAgICAgICAiMC4wMDU3MTUsIDAuMDA1NzIzLCAwLjAwNTczNSwgMC4wMDU3MzgsIDAuMDA1NzM5LCAwLjAwNTc0LCAwLjAwNTc0MSIsIFwKLSAgICAgICAgICAiMC4wMDU3MjQsIDAuMDA1NzMyLCAwLjAwNTc0NCwgMC4wMDU3NDcsIDAuMDA1NzQ4LCAwLjAwNTc0OSwgMC4wMDU3NDkiLCBcCi0gICAgICAgICAgIjAuMDA1NzQsIDAuMDA1NzQ4LCAwLjAwNTc2LCAwLjAwNTc2MiwgMC4wMDU3NjQsIDAuMDA1NzY1LCAwLjAwNTc2NSIsIFwKLSAgICAgICAgICAiMC4wMDU3NDgsIDAuMDA1NzU3LCAwLjAwNTc2OSwgMC4wMDU3NzEsIDAuMDA1NzczLCAwLjAwNTc3MywgMC4wMDU3NzQiLCBcCi0gICAgICAgICAgIjAuMDA1NzgxLCAwLjAwNTc5LCAwLjAwNTgwMiwgMC4wMDU4MDQsIDAuMDA1ODA2LCAwLjAwNTgwNiwgMC4wMDU4MDciKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFFOKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMjU3MjY5OwotICAgIGZ1bmN0aW9uIDogIlFCSU5UIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBub25fdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJpc2luZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNzg5MjYsIDAuMjAzMDk4LCAwLjM0MDEzMiwgMC40NjEwNzksIDAuNjIyMzY4LCAwLjk0NDgyLCAxLjE0NjM5IiwgXAotICAgICAgICAgICIwLjE4OTE4NiwgMC4yMTMzNzIsIDAuMzUwMzk4LCAwLjQ3MTM1LCAwLjYzMjYzMywgMC45NTUwODUsIDEuMTU2NjQiLCBcCi0gICAgICAgICAgIjAuMjAxNzQ5LCAwLjIyNTkyMSwgMC4zNjI5NTQsIDAuNDgzOTE3LCAwLjY0NTE5NSwgMC45Njc2MzgsIDEuMTY5MTUiLCBcCi0gICAgICAgICAgIjAuMjEzMTM5LCAwLjIzNzMxOCwgMC4zNzQzNDcsIDAuNDk1MjksIDAuNjU2NTgzLCAwLjk3OTAzNiwgMS4xODA2IiwgXAotICAgICAgICAgICIwLjIyMzE2NCwgMC4yNDczNDQsIDAuMzg0Mzc4LCAwLjUwNTMyNywgMC42NjY2MTUsIDAuOTg5MDY0LCAxLjE5MDYiLCBcCi0gICAgICAgICAgIjAuMjM3MjczLCAwLjI2MTQ1NSwgMC4zOTg0ODksIDAuNTE5NDMsIDAuNjgwNzIzLCAxLjAwMzE4LCAxLjIwNDgiLCBcCi0gICAgICAgICAgIjAuMjQ3MjU1LCAwLjI3MTQyMSwgMC40MDg0NTYsIDAuNTI5NDI2LCAwLjY5MDY3MywgMS4wMTMxNSwgMS4yMTQ2OSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODk3ODIsIDAuMTM5MjY4LCAwLjQyMTY2OSwgMC42NzA2NiwgMS4wMDM0MywgMS42NjgyNCwgMi4wODM0OCIsIFwKLSAgICAgICAgICAiMC4wODk3MDIsIDAuMTM5MjYxLCAwLjQyMTY2NCwgMC42NzA3NDcsIDEuMDAzNDMsIDEuNjY4MDUsIDIuMDgzMzkiLCBcCi0gICAgICAgICAgIjAuMDg5Nzc5LCAwLjEzOTI2LCAwLjQyMTY2NywgMC42NzEwMjEsIDEuMDAzNDQsIDEuNjY4MDYsIDIuMDgzNDMiLCBcCi0gICAgICAgICAgIjAuMDg5NzI2LCAwLjEzOTI3MiwgMC40MjE2NjQsIDAuNjcwOTY5LCAxLjAwMzQ2LCAxLjY2ODA3LCAyLjA4MzU1IiwgXAotICAgICAgICAgICIwLjA4OTc4MSwgMC4xMzkyNjQsIDAuNDIxNjY5LCAwLjY3MDY2MSwgMS4wMDM0MywgMS42NjgwNiwgMi4wODM0MyIsIFwKLSAgICAgICAgICAiMC4wODk3MDgsIDAuMTM5MjY2LCAwLjQyMTY3LCAwLjY3MDk4MywgMS4wMDM0MiwgMS42NjgwNiwgMi4wODM1NiIsIFwKLSAgICAgICAgICAiMC4wODk3NzksIDAuMTM5MjUzLCAwLjQyMTY2MiwgMC42NzEwNTIsIDEuMDAzNDEsIDEuNjY4MDUsIDIuMDgzNDgiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTY1OTMsIDAuMTkwNjcsIDAuMzMwODE3LCAwLjQ1NDUsIDAuNjE5MzUyLCAwLjk0OTE1OSwgMS4xNTUxMyIsIFwKLSAgICAgICAgICAiMC4xNzYwMzgsIDAuMjAwNzgsIDAuMzQwOTIyLCAwLjQ2NDY1LCAwLjYyOTQ2OCwgMC45NTkxODIsIDEuMTY1MzEiLCBcCi0gICAgICAgICAgIjAuMTg4NTQ4LCAwLjIxMzI1MSwgMC4zNTM0LCAwLjQ3NzA5NiwgMC42NDE5MzgsIDAuOTcxNjcsIDEuMTc3NzIiLCBcCi0gICAgICAgICAgIjAuMTk5ODE0LCAwLjIyNDU1NiwgMC4zNjQ3MDEsIDAuNDg4NDI4LCAwLjY1MzI0NywgMC45ODI5NjQsIDEuMTg5MTMiLCBcCi0gICAgICAgICAgIjAuMjA5NTU1LCAwLjIzNDMwMSwgMC4zNzQ0NDYsIDAuNDk4MTczLCAwLjY2Mjk5MiwgMC45OTI3MSwgMS4xOTg5NiIsIFwKLSAgICAgICAgICAiMC4yMjMwNDksIDAuMjQ3Nzk1LCAwLjM4NzkzNCwgMC41MTE2NjIsIDAuNjc2NDgyLCAxLjAwNjIsIDEuMjEyMzciLCBcCi0gICAgICAgICAgIjAuMjMzMzM1LCAwLjI1ODA3OCwgMC4zOTgyMjUsIDAuNTIxOTA1LCAwLjY4Njc2NSwgMS4wMTY1LCAxLjIyMjU2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4OTY3OCwgMC4xMzkwOTMsIDAuNDIxMzQ1LCAwLjY3MDY2NSwgMS4wMDI4NSwgMS42Njc0MiwgMi4wODI5NiIsIFwKLSAgICAgICAgICAiMC4wODk2NzUsIDAuMTM5MDc0LCAwLjQyMTMzMSwgMC42Njk2NTEsIDEuMDAyODYsIDEuNjY3NDIsIDIuMDgyOTgiLCBcCi0gICAgICAgICAgIjAuMDg5NjY0LCAwLjEzOTA4MiwgMC40MjEzMiwgMC42NzAyNjMsIDEuMDAyODMsIDEuNjY3NTYsIDIuMDgyOTIiLCBcCi0gICAgICAgICAgIjAuMDg5Njc4LCAwLjEzOTA2NSwgMC40MjEzMjEsIDAuNjcwNzIzLCAxLjAwMjg1LCAxLjY2NzQyLCAyLjA4MzAzIiwgXAotICAgICAgICAgICIwLjA4OTY2MywgMC4xMzkwNzQsIDAuNDIxMzIxLCAwLjY3MDcyNCwgMS4wMDI4NSwgMS42Njc0MiwgMi4wODMwMyIsIFwKLSAgICAgICAgICAiMC4wODk2NzUsIDAuMTM5MDg4LCAwLjQyMTMyLCAwLjY3MDI4NywgMS4wMDI4NSwgMS42NjczNiwgMi4wODMwMiIsIFwKLSAgICAgICAgICAiMC4wODk2MywgMC4xMzkwOTIsIDAuNDIxMzIyLCAwLjY3MDcyNiwgMS4wMDI4NywgMS42NjczOCwgMi4wODI4MiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDU3MjcsIDAuMDA1NzM1LCAwLjAwNTc0NywgMC4wMDU3NDksIDAuMDA1NzUxLCAwLjAwNTc1MiwgMC4wMDU3NTIiLCBcCi0gICAgICAgICAgIjAuMDA1NzEzLCAwLjAwNTcyMSwgMC4wMDU3MzMsIDAuMDA1NzM2LCAwLjAwNTczNywgMC4wMDU3MzgsIDAuMDA1NzM5IiwgXAotICAgICAgICAgICIwLjAwNTcxNSwgMC4wMDU3MjMsIDAuMDA1NzM1LCAwLjAwNTczOCwgMC4wMDU3MzksIDAuMDA1NzQsIDAuMDA1NzQxIiwgXAotICAgICAgICAgICIwLjAwNTcyNCwgMC4wMDU3MzIsIDAuMDA1NzQ0LCAwLjAwNTc0NywgMC4wMDU3NDgsIDAuMDA1NzQ5LCAwLjAwNTc0OSIsIFwKLSAgICAgICAgICAiMC4wMDU3NCwgMC4wMDU3NDgsIDAuMDA1NzYsIDAuMDA1NzYyLCAwLjAwNTc2NCwgMC4wMDU3NjUsIDAuMDA1NzY1IiwgXAotICAgICAgICAgICIwLjAwNTc0OCwgMC4wMDU3NTcsIDAuMDA1NzY5LCAwLjAwNTc3MSwgMC4wMDU3NzMsIDAuMDA1NzczLCAwLjAwNTc3NCIsIFwKLSAgICAgICAgICAiMC4wMDU3ODEsIDAuMDA1NzksIDAuMDA1ODAyLCAwLjAwNTgwNCwgMC4wMDU4MDYsIDAuMDA1ODA2LCAwLjAwNTgwNyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNTcyNCwgMC4wMDU3MzMsIDAuMDA1NzQ1LCAwLjAwNTc0NywgMC4wMDU3NDgsIDAuMDA1NzUsIDAuMDA1NzUxIiwgXAotICAgICAgICAgICIwLjAwNTcwNywgMC4wMDU3MTYsIDAuMDA1NzI5LCAwLjAwNTczMSwgMC4wMDU3MzMsIDAuMDA1NzM0LCAwLjAwNTczNSIsIFwKLSAgICAgICAgICAiMC4wMDU3MDEsIDAuMDA1NzEsIDAuMDA1NzIyLCAwLjAwNTcyNSwgMC4wMDU3MjYsIDAuMDA1NzI3LCAwLjAwNTcyOCIsIFwKLSAgICAgICAgICAiMC4wMDU3MDUsIDAuMDA1NzEzLCAwLjAwNTcyNywgMC4wMDU3MjgsIDAuMDA1NzMsIDAuMDA1NzMxLCAwLjAwNTczMiIsIFwKLSAgICAgICAgICAiMC4wMDU3MTEsIDAuMDA1NzIsIDAuMDA1NzMyLCAwLjAwNTczNSwgMC4wMDU3MzYsIDAuMDA1NzM3LCAwLjAwNTczOCIsIFwKLSAgICAgICAgICAiMC4wMDU3MjMsIDAuMDA1NzMyLCAwLjAwNTc0NSwgMC4wMDU3NDgsIDAuMDA1NzQ4LCAwLjAwNTc1LCAwLjAwNTc1IiwgXAotICAgICAgICAgICIwLjAwNTczMywgMC4wMDU3NDMsIDAuMDA1NzU1LCAwLjAwNTc1OCwgMC4wMDU3NTksIDAuMDA1NzYsIDAuMDA1NzYxIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihSTikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjA0NDAyOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYwNDE2OTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2MDQ0MDI7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA3MzExLCAwLjAwNzI4MiwgMC4wMDcyNzcsIDAuMDA3Mjg2LCAwLjAwNzI5NiwgMC4wMDczMjEsIDAuMDA3MzQ1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA3MzE4LCAwLjAwNzI5NSwgMC4wMDcyOSwgMC4wMDcyOTQsIDAuMDA3MzA0LCAwLjAwNzMyOCwgMC4wMDczNDgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIVNFIjsKLSAgICAgIHNkZl9jb25kIDogIlNFID09IDEnYjAiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjE2ODc1LCAtMC4xNjM3NSwgLTAuMTU3NSwgLTAuMTUxMjUsIC0wLjE0NSwgLTAuMTQxMjUsIC0wLjEzMjUiLCBcCi0gICAgICAgICAgIi0wLjE4LCAtMC4xNzUsIC0wLjE2ODc1LCAtMC4xNjI1LCAtMC4xNTYyNSwgLTAuMTUyNSwgLTAuMTQzNzUiLCBcCi0gICAgICAgICAgIi0wLjE5MjUsIC0wLjE4NzUsIC0wLjE4MTI1LCAtMC4xNzUsIC0wLjE2ODc1LCAtMC4xNTg3NSwgLTAuMTU2MjUiLCBcCi0gICAgICAgICAgIi0wLjE5ODc1LCAtMC4xOTM3NSwgLTAuMTg3NSwgLTAuMTgxMjUsIC0wLjE3NSwgLTAuMTcxMjUsIC0wLjE2MjUiLCBcCi0gICAgICAgICAgIi0wLjIwNSwgLTAuMiwgLTAuMTkzNzUsIC0wLjE4NzUsIC0wLjE4MTI1LCAtMC4xNzc1LCAtMC4xNzUiLCBcCi0gICAgICAgICAgIi0wLjIxNSwgLTAuMjEsIC0wLjIwMzc1LCAtMC4xOTc1LCAtMC4xOTEyNSwgLTAuMTg3NSwgLTAuMTg1IiwgXAotICAgICAgICAgICItMC4yMjM3NSwgLTAuMjE4NzUsIC0wLjIxMjUsIC0wLjIwNjI1LCAtMC4yLCAtMC4xOTYyNSwgLTAuMTg3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjA3NSwgLTAuMDYzNzUsIC0wLjA1MTI1LCAtMC4wNDUsIC0wLjAzODc1LCAtMC4wMjI1LCAtMC4wMTM3NSIsIFwKLSAgICAgICAgICAiLTAuMDg2MjUsIC0wLjA3NSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA0Mzc1LCAtMC4wMzM3NSwgLTAuMDI1IiwgXAotICAgICAgICAgICItMC4wOTI1LCAtMC4wODEyNSwgLTAuMDc1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDQ2MjUsIC0wLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjEwNSwgLTAuMDkzNzUsIC0wLjA4MTI1LCAtMC4wNzUsIC0wLjA2MjUsIC0wLjA1MjUsIC0wLjA0Mzc1IiwgXAotICAgICAgICAgICItMC4xMTEyNSwgLTAuMSwgLTAuMDg3NSwgLTAuMDgxMjUsIC0wLjA2ODc1LCAtMC4wNTg3NSwgLTAuMDUiLCBcCi0gICAgICAgICAgIi0wLjEyMTI1LCAtMC4xMSwgLTAuMDk3NSwgLTAuMDkxMjUsIC0wLjA3ODc1LCAtMC4wNjg3NSwgLTAuMDYiLCBcCi0gICAgICAgICAgIi0wLjEyMzc1LCAtMC4xMTI1LCAtMC4xMDYyNSwgLTAuMDkzNzUsIC0wLjA4NzUsIC0wLjA3NzUsIC0wLjA2ODc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhU0UiOwotICAgICAgc2RmX2NvbmQgOiAiU0UgPT0gMSdiMCI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjA2MjUsIDAuMTk1LCAwLjE4MjUsIDAuMTc2MjUsIDAuMTcsIDAuMTY2MjUsIDAuMTU3NSIsIFwKLSAgICAgICAgICAiMC4yMTc1LCAwLjIwNjI1LCAwLjE5Mzc1LCAwLjE4NzUsIDAuMTgxMjUsIDAuMTc3NSwgMC4xNjg3NSIsIFwKLSAgICAgICAgICAiMC4yMjM3NSwgMC4yMTI1LCAwLjIwNjI1LCAwLjIsIDAuMTkzNzUsIDAuMTgzNzUsIDAuMTgxMjUiLCBcCi0gICAgICAgICAgIjAuMjM2MjUsIDAuMjI1LCAwLjIxMjUsIDAuMjA2MjUsIDAuMiwgMC4xOTYyNSwgMC4xODc1IiwgXAotICAgICAgICAgICIwLjI0MjUsIDAuMjMxMjUsIDAuMjE4NzUsIDAuMjEyNSwgMC4yMDYyNSwgMC4yMDI1LCAwLjE5Mzc1IiwgXAotICAgICAgICAgICIwLjI1MjUsIDAuMjQxMjUsIDAuMjI4NzUsIDAuMjIyNSwgMC4yMTYyNSwgMC4yMTI1LCAwLjIwMzc1IiwgXAotICAgICAgICAgICIwLjI2MTI1LCAwLjI1LCAwLjIzNzUsIDAuMjMxMjUsIDAuMjI1LCAwLjIyMTI1LCAwLjIxMjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMjUsIDAuMTEzNzUsIDAuMTAxMjUsIDAuMDg4NzUsIDAuMDc2MjUsIDAuMDY2MjUsIDAuMDUxMjUiLCBcCi0gICAgICAgICAgIjAuMTMsIDAuMTE4NzUsIDAuMTA2MjUsIDAuMSwgMC4wODc1LCAwLjA3MTI1LCAwLjA2MjUiLCBcCi0gICAgICAgICAgIjAuMTQyNSwgMC4xMzEyNSwgMC4xMTg3NSwgMC4xMDYyNSwgMC4xLCAwLjA4Mzc1LCAwLjA3NSIsIFwKLSAgICAgICAgICAiMC4xNDg3NSwgMC4xMzc1LCAwLjEyNSwgMC4xMTI1LCAwLjEwNjI1LCAwLjA5LCAwLjA4MTI1IiwgXAotICAgICAgICAgICIwLjE1NSwgMC4xNDM3NSwgMC4xMzEyNSwgMC4xMjUsIDAuMTEyNSwgMC4xMDI1LCAwLjA4NzUiLCBcCi0gICAgICAgICAgIjAuMTY1LCAwLjE1Mzc1LCAwLjE0MTI1LCAwLjEyODc1LCAwLjEyMjUsIDAuMTA2MjUsIDAuMDk3NSIsIFwKLSAgICAgICAgICAiMC4xNzM3NSwgMC4xNjI1LCAwLjE1LCAwLjEzNzUsIDAuMTMxMjUsIDAuMTE1LCAwLjEwNjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTRSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxMjAxMTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDEyMDA5NDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDEyMDExOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNDQ2MywgMC4wMDQ0NDQsIDAuMDA0NDM3LCAwLjAwNDQ0MSwgMC4wMDQ0NSwgMC4wMDQ0NzEsIDAuMDA0NDk2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA2MTU2LCAwLjAwNjEyMywgMC4wMDYxMDksIDAuMDA2MTEyLCAwLjAwNjEyNywgMC4wMDYxNjgsIDAuMDA2MjA2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEJiFFJiFSTiZTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fRV9FUV8wX0FOX1JOX0VRXzBfQU5fU0lfRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wNSwgLTAuMDQ1LCAtMC4wMzg3NSwgLTAuMDMyNSwgLTAuMDI2MjUsIC0wLjAyMjUsIC0wLjAxMzc1IiwgXAotICAgICAgICAgICItMC4wNjEyNSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDI3NSwgLTAuMDI1IiwgXAotICAgICAgICAgICItMC4wNzM3NSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDQsIC0wLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjA4NjI1LCAtMC4wNzUsIC0wLjA2ODc1LCAtMC4wNjI1LCAtMC4wNjI1LCAtMC4wNTI1LCAtMC4wNSIsIFwKLSAgICAgICAgICAiLTAuMDk4NzUsIC0wLjA4NzUsIC0wLjA4MTI1LCAtMC4wNzUsIC0wLjA2ODc1LCAtMC4wNjUsIC0wLjA2MjUiLCBcCi0gICAgICAgICAgIi0wLjExNSwgLTAuMTAzNzUsIC0wLjA5NzUsIC0wLjA5MTI1LCAtMC4wOTEyNSwgLTAuMDgxMjUsIC0wLjA3ODc1IiwgXAotICAgICAgICAgICItMC4xMjM3NSwgLTAuMTE4NzUsIC0wLjExMjUsIC0wLjEwNjI1LCAtMC4xLCAtMC4wOTYyNSwgLTAuMDkzNzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMTI1LCAtMC4wMDc1LCAwLjAwNSwgMC4wMTEyNSwgMC4wMjM3NSwgMC4wMzM3NSwgMC4wNDI1IiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAuMDA2MjUsIDAuMDEyNSwgMC4wMjI1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDI1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMCwgMC4wMTYyNSwgMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMDYyNSwgMC4wMDM3NSwgMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMDg3NSwgMCIsIFwKLSAgICAgICAgICAiLTAuMDY1LCAtMC4wNiwgLTAuMDQ3NSwgLTAuMDQxMjUsIC0wLjAzNSwgLTAuMDI1LCAtMC4wMTYyNSIsIFwKLSAgICAgICAgICAiLTAuMDczNzUsIC0wLjA2ODc1LCAtMC4wNjI1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjAzMzc1LCAtMC4wMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUQmIUUmUk4mIVNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9FX0VRXzBfQU5fUk5fRVFfMV9BTl9TSV9FUV8wID09IDEnYjEiOwotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjA3NSwgLTAuMDYzNzUsIC0wLjA1NzUsIC0wLjA1MTI1LCAtMC4wNTEyNSwgLTAuMDQxMjUsIC0wLjAzODc1IiwgXAotICAgICAgICAgICItMC4wOCwgLTAuMDc1LCAtMC4wNjg3NSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA1MjUsIC0wLjA0Mzc1IiwgXAotICAgICAgICAgICItMC4wOTI1LCAtMC4wODc1LCAtMC4wODEyNSwgLTAuMDc1LCAtMC4wNjg3NSwgLTAuMDY1LCAtMC4wNTYyNSIsIFwKLSAgICAgICAgICAiLTAuMTA1LCAtMC4wOTM3NSwgLTAuMDg3NSwgLTAuMDg3NSwgLTAuMDgxMjUsIC0wLjA3MTI1LCAtMC4wNjg3NSIsIFwKLSAgICAgICAgICAiLTAuMTExMjUsIC0wLjEwNjI1LCAtMC4xLCAtMC4wOTM3NSwgLTAuMDg3NSwgLTAuMDgzNzUsIC0wLjA3NSIsIFwKLSAgICAgICAgICAiLTAuMTIxMjUsIC0wLjExNjI1LCAtMC4xMSwgLTAuMTAzNzUsIC0wLjA5NzUsIC0wLjA5Mzc1LCAtMC4wODUiLCBcCi0gICAgICAgICAgIi0wLjEzLCAtMC4xMjUsIC0wLjExMjUsIC0wLjExMjUsIC0wLjEwNjI1LCAtMC4wOTYyNSwgLTAuMDkzNzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiRCZFJlJOJiFTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzFfQU5fRV9FUV8xX0FOX1JOX0VRXzFfQU5fU0lfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMzc1LCAtMC4wMjYyNSwgLTAuMDEzNzUsIC0wLjAwNzUsIC0wLjAwMTI1LCAwLjAwODc1LCAwLjAxNzUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAwLjAwMzc1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjA2MTI1LCAtMC4wNSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAxODc1LCAtMC4wMDg3NSwgMCIsIFwKLSAgICAgICAgICAiLTAuMDY3NSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDIxMjUsIC0wLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjA4LCAtMC4wNjg3NSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wMzc1LCAtMC4wMjc1LCAtMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDksIC0wLjA3ODc1LCAtMC4wNjYyNSwgLTAuMDYsIC0wLjA1Mzc1LCAtMC4wMzc1LCAtMC4wMzUiLCBcCi0gICAgICAgICAgIi0wLjA5ODc1LCAtMC4wODc1LCAtMC4wNzUsIC0wLjA2ODc1LCAtMC4wNjI1LCAtMC4wNDYyNSwgLTAuMDM3NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUQmIUUmIVJOJlNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9FX0VRXzBfQU5fUk5fRVFfMF9BTl9TSV9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4MTI1LCAwLjA3LCAwLjA2Mzc1LCAwLjA1NzUsIDAuMDUxMjUsIDAuMDQxMjUsIDAuMDM4NzUiLCBcCi0gICAgICAgICAgIjAuMDkyNSwgMC4wODEyNSwgMC4wNzUsIDAuMDYyNSwgMC4wNjI1LCAwLjA1MjUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMTA1LCAwLjA5Mzc1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIjAuMTE3NSwgMC4xMDYyNSwgMC4wOTM3NSwgMC4wODc1LCAwLjA4MTI1LCAwLjA3NzUsIDAuMDY4NzUiLCBcCi0gICAgICAgICAgIjAuMTMsIDAuMTE4NzUsIDAuMTA2MjUsIDAuMSwgMC4wOTM3NSwgMC4wOSwgMC4wODEyNSIsIFwKLSAgICAgICAgICAiMC4xNDYyNSwgMC4xMzUsIDAuMTI4NzUsIDAuMTE2MjUsIDAuMTE2MjUsIDAuMTA2MjUsIDAuMDk3NSIsIFwKLSAgICAgICAgICAiMC4xNjEyNSwgMC4xNSwgMC4xMzc1LCAwLjEzMTI1LCAwLjEyNSwgMC4xMjEyNSwgMC4xMTI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDYyNSwgMC4wNTEyNSwgMC4wMzg3NSwgMC4wMjYyNSwgMC4wMiwgMC4wMDM3NSwgLTAuMDA1IiwgXAotICAgICAgICAgICIwLjA3Mzc1LCAwLjA2MjUsIDAuMDUsIDAuMDM3NSwgMC4wMjUsIDAuMDE1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICIwLjA4NjI1LCAwLjA3NSwgMC4wNjI1LCAwLjA1LCAwLjAzNzUsIDAuMDI3NSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4wOTI1LCAwLjA4NzUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNSwgMC4wNCwgMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMTA1LCAwLjA5Mzc1LCAwLjA4MTI1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDQ2MjUsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiMC4xMjEyNSwgMC4xMSwgMC4wOTc1LCAwLjA5MTI1LCAwLjA3ODc1LCAwLjA2MjUsIDAuMDUzNzUiLCBcCi0gICAgICAgICAgIjAuMTM2MjUsIDAuMTI1LCAwLjExMjUsIDAuMSwgMC4wOTM3NSwgMC4wNzc1LCAwLjA2ODc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRCYhRSZSTiYhU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX0VfRVFfMF9BTl9STl9FUV8xX0FOX1NJX0VRXzAgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg3NSwgMC4wNzYyNSwgMC4wNjM3NSwgMC4wNTEyNSwgMC4wMzg3NSwgMC4wMjg3NSwgMC4wMiIsIFwKLSAgICAgICAgICAiMC4wOTI1LCAwLjA4NzUsIDAuMDc1LCAwLjA2MjUsIDAuMDUsIDAuMDQsIDAuMDI1IiwgXAotICAgICAgICAgICIwLjEwNSwgMC4xLCAwLjA4MTI1LCAwLjA3NSwgMC4wNjI1LCAwLjA1MjUsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiMC4xMTc1LCAwLjEwNjI1LCAwLjA5Mzc1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNTg3NSwgMC4wNSIsIFwKLSAgICAgICAgICAiMC4xMjM3NSwgMC4xMTI1LCAwLjEsIDAuMDkzNzUsIDAuMDgxMjUsIDAuMDcxMjUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIjAuMTQsIDAuMTI4NzUsIDAuMTE2MjUsIDAuMTAzNzUsIDAuMDkxMjUsIDAuMDgxMjUsIDAuMDcyNSIsIFwKLSAgICAgICAgICAiMC4xNDg3NSwgMC4xMzc1LCAwLjEyNSwgMC4xMTI1LCAwLjEsIDAuMDksIDAuMDgxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIkQmRSZSTiYhU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8xX0FOX0VfRVFfMV9BTl9STl9FUV8xX0FOX1NJX0VRXzAgPT0gMSdiMSI7Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTA2MjUsIDAuMDk1LCAwLjA4MjUsIDAuMDc2MjUsIDAuMDcsIDAuMDY2MjUsIDAuMDU3NSIsIFwKLSAgICAgICAgICAiMC4xMTEyNSwgMC4xMDYyNSwgMC4wOTM3NSwgMC4wODc1LCAwLjA4MTI1LCAwLjA3MTI1LCAwLjA2ODc1IiwgXAotICAgICAgICAgICIwLjEyMzc1LCAwLjExMjUsIDAuMTA2MjUsIDAuMSwgMC4wOTM3NSwgMC4wODM3NSwgMC4wODEyNSIsIFwKLSAgICAgICAgICAiMC4xMzYyNSwgMC4xMjUsIDAuMTEyNSwgMC4xMDYyNSwgMC4xLCAwLjA5NjI1LCAwLjA4NzUiLCBcCi0gICAgICAgICAgIjAuMTQyNSwgMC4xMzEyNSwgMC4xMjUsIDAuMTE4NzUsIDAuMTEyNSwgMC4xMDI1LCAwLjEiLCBcCi0gICAgICAgICAgIjAuMTUyNSwgMC4xNDEyNSwgMC4xMzUsIDAuMTI4NzUsIDAuMTIyNSwgMC4xMTI1LCAwLjExIiwgXAotICAgICAgICAgICIwLjE2MTI1LCAwLjE1LCAwLjE0Mzc1LCAwLjEzMTI1LCAwLjEzMTI1LCAwLjEyMTI1LCAwLjExMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFNJKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA1Njc3MTI7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNTY2MjkyOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDU2NzcxMjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDI3NjUsIDAuMDAyNzQ5LCAwLjAwMjc0LCAwLjAwMjczNCwgMC4wMDI3MzIsIDAuMDAyNzMxLCAwLjAwMjc0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA0NzUxLCAwLjAwNDc0MSwgMC4wMDQ3MzUsIDAuMDA0NzMyLCAwLjAwNDczMywgMC4wMDQ3MzQsIDAuMDA0NzM4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlNFIjsKLSAgICAgIHNkZl9jb25kIDogIlNFID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjA1NjI1LCAtMC4wNTEyNSwgLTAuMDQ1LCAtMC4wMzg3NSwgLTAuMDMyNSwgLTAuMDI4NzUsIC0wLjAyIiwgXAotICAgICAgICAgICItMC4wNjc1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wNCwgLTAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjA4LCAtMC4wNzUsIC0wLjA2MjUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNDYyNSwgLTAuMDQzNzUiLCBcCi0gICAgICAgICAgIi0wLjA5MjUsIC0wLjA4MTI1LCAtMC4wNzUsIC0wLjA2ODc1LCAtMC4wNjg3NSwgLTAuMDU4NzUsIC0wLjA1NjI1IiwgXAotICAgICAgICAgICItMC4wOTg3NSwgLTAuMDkzNzUsIC0wLjA4NzUsIC0wLjA4MTI1LCAtMC4wNzUsIC0wLjA3MTI1LCAtMC4wNjI1IiwgXAotICAgICAgICAgICItMC4xMTUsIC0wLjExLCAtMC4xMDM3NSwgLTAuMDk3NSwgLTAuMDkxMjUsIC0wLjA4NzUsIC0wLjA3ODc1IiwgXAotICAgICAgICAgICItMC4xMywgLTAuMTE4NzUsIC0wLjExMjUsIC0wLjExMjUsIC0wLjEwNjI1LCAtMC4wOTYyNSwgLTAuMDkzNzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMjUsIC0wLjAxMzc1LCAtMC4wMDEyNSwgMC4wMDUsIDAuMDExMjUsIDAuMDIxMjUsIDAuMDMiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMjUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLjAwNjI1LCAwLjAxNjI1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAuMDAzNzUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjA0Mzc1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMTI1LCAtMC4wMDI1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wNjEyNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMTUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wNzEyNSwgLTAuMDY2MjUsIC0wLjA1Mzc1LCAtMC4wNDc1LCAtMC4wMzUsIC0wLjAyNSwgLTAuMDE2MjUiLCBcCi0gICAgICAgICAgIi0wLjA4LCAtMC4wNzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNDM3NSwgLTAuMDMzNzUsIC0wLjAyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiU0UiOwotICAgICAgc2RmX2NvbmQgOiAiU0UgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg3NSwgMC4wODI1LCAwLjA3LCAwLjA2Mzc1LCAwLjA1NzUsIDAuMDQ3NSwgMC4wNDUiLCBcCi0gICAgICAgICAgIjAuMDk4NzUsIDAuMDg3NSwgMC4wODEyNSwgMC4wNzUsIDAuMDY4NzUsIDAuMDU4NzUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIjAuMTExMjUsIDAuMSwgMC4wODc1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNzEyNSwgMC4wNjI1IiwgXAotICAgICAgICAgICIwLjEyMzc1LCAwLjExMjUsIDAuMSwgMC4wOTM3NSwgMC4wODc1LCAwLjA4Mzc1LCAwLjA3NSIsIFwKLSAgICAgICAgICAiMC4xMywgMC4xMTg3NSwgMC4xMTI1LCAwLjEwNjI1LCAwLjEsIDAuMDksIDAuMDg3NSIsIFwKLSAgICAgICAgICAiMC4xNDYyNSwgMC4xMzUsIDAuMTI4NzUsIDAuMTIyNSwgMC4xMTYyNSwgMC4xMDYyNSwgMC4xMDM3NSIsIFwKLSAgICAgICAgICAiMC4xNjEyNSwgMC4xNSwgMC4xNDM3NSwgMC4xMzc1LCAwLjEzMTI1LCAwLjEyMTI1LCAwLjExODc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc1LCAwLjA2Mzc1LCAwLjA1MTI1LCAwLjAzODc1LCAwLjAyNjI1LCAwLjAxNjI1LCAwLjAwNzUiLCBcCi0gICAgICAgICAgIjAuMDgsIDAuMDY4NzUsIDAuMDU2MjUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMjEyNSwgMC4wMTI1IiwgXAotICAgICAgICAgICIwLjA5MjUsIDAuMDgxMjUsIDAuMDY4NzUsIDAuMDU2MjUsIDAuMDQzNzUsIDAuMDMzNzUsIDAuMDI1IiwgXAotICAgICAgICAgICIwLjA5ODc1LCAwLjA4NzUsIDAuMDc1LCAwLjA2ODc1LCAwLjA1NjI1LCAwLjA0NjI1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICIwLjExMTI1LCAwLjEsIDAuMDg3NSwgMC4wNzUsIDAuMDY4NzUsIDAuMDUyNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4xMjc1LCAwLjExNjI1LCAwLjEwMzc1LCAwLjA5MTI1LCAwLjA3ODc1LCAwLjA2ODc1LCAwLjA2IiwgXAotICAgICAgICAgICIwLjEzNjI1LCAwLjEyNSwgMC4xMTI1LCAwLjEsIDAuMDkzNzUsIDAuMDc3NSwgMC4wNjg3NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IFNFREZGWDEgKgotICogLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoU0VERkZYMSkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjQ2NzYwNzsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBmZiAoTjMwLE5FVDUzNikgewotICAgIG5leHRfc3RhdGUgOiAiKChTRSBTSSkgKyAoIVNFICgoRSBEKSArICghRSAoISghTjMwKSkpKSkpIjsKLSAgICBjbG9ja2VkX29uIDogIkNLIjsKLSAgfQotICBwaW4oQ0spICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDU5MDk1ODsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA1OTA4NTY7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNTkwOTU4OwotICAgIGNsb2NrIDogdHJ1ZTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDI5OTEsIDAuMDAyOTY3LCAwLjAwMjk1NSwgMC4wMDI5NTksIDAuMDAyOTcxLCAwLjAwMjk5MywgMC4wMDMwMTQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDYwMjUsIDAuMDA2MDAxLCAwLjAwNjAwMSwgMC4wMDYwMTQsIDAuMDA2MDMzLCAwLjAwNjA3LCAwLjAwNjExOCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQmIUUmU0UmIVNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9FX0VRXzBfQU5fU0VfRVFfMV9BTl9TSV9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMTc2NzIzLCAwLjE4Njk0MiwgMC4xOTk2OTYsIDAuMjExNDg5LCAwLjIyMTkxNywgMC4yMzYyMTcsIDAuMjQ3MTcxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wOTQyNDEsIDAuMTAzODgyLCAwLjExNjQyMywgMC4xMjc3MDQsIDAuMTM3NDk4LCAwLjE1MDcyOSwgMC4xNjA4MzciKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEQpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDU4MDIyNzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA1Nzg0OTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA1ODAyMjc7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzNDQ2LCAwLjAwMzQzMSwgMC4wMDM0MjQsIDAuMDAzNDIsIDAuMDAzNDE4LCAwLjAwMzQxOCwgMC4wMDM0MjEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDY5NDMsIDAuMDA2OTM0LCAwLjAwNjkzLCAwLjAwNjkyOCwgMC4wMDY5MjcsIDAuMDA2OTI3LCAwLjAwNjkzMSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJFJiFTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJFX0VRXzFfQU5fU0VfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4xMTI1LCAtMC4xMDEyNSwgLTAuMTAxMjUsIC0wLjA5NSwgLTAuMDg4NzUsIC0wLjA4NSwgLTAuMDc2MjUiLCBcCi0gICAgICAgICAgIi0wLjExNzUsIC0wLjExMjUsIC0wLjEwNjI1LCAtMC4xLCAtMC4xLCAtMC4wOSwgLTAuMDg3NSIsIFwKLSAgICAgICAgICAiLTAuMTMsIC0wLjEyNSwgLTAuMTE4NzUsIC0wLjExMjUsIC0wLjEwNjI1LCAtMC4xMDI1LCAtMC4xIiwgXAotICAgICAgICAgICItMC4xNDI1LCAtMC4xMzc1LCAtMC4xMzEyNSwgLTAuMTI1LCAtMC4xMTg3NSwgLTAuMTE1LCAtMC4xMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMTU1LCAtMC4xNDM3NSwgLTAuMTM3NSwgLTAuMTM3NSwgLTAuMTMxMjUsIC0wLjEyNzUsIC0wLjExODc1IiwgXAotICAgICAgICAgICItMC4xNzEyNSwgLTAuMTYsIC0wLjE1Mzc1LCAtMC4xNTM3NSwgLTAuMTQ3NSwgLTAuMTQzNzUsIC0wLjEzNSIsIFwKLSAgICAgICAgICAiLTAuMTgsIC0wLjE3NSwgLTAuMTY4NzUsIC0wLjE2MjUsIC0wLjE2MjUsIC0wLjE1MjUsIC0wLjE1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDU2MjUsIC0wLjA0NSwgLTAuMDM4NzUsIC0wLjAzMjUsIC0wLjAzMjUsIC0wLjAxNjI1LCAtMC4wMTM3NSIsIFwKLSAgICAgICAgICAiLTAuMDYxMjUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAyNzUsIC0wLjAxODc1IiwgXAotICAgICAgICAgICItMC4wNzM3NSwgLTAuMDY4NzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDQsIC0wLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wOCwgLTAuMDc1LCAtMC4wNjg3NSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA0NjI1LCAtMC4wMzc1IiwgXAotICAgICAgICAgICItMC4wOTI1LCAtMC4wODc1LCAtMC4wODEyNSwgLTAuMDc1LCAtMC4wNjg3NSwgLTAuMDU4NzUsIC0wLjA1IiwgXAotICAgICAgICAgICItMC4xMDI1LCAtMC4wOTc1LCAtMC4wOTEyNSwgLTAuMDg1LCAtMC4wNzg3NSwgLTAuMDY4NzUsIC0wLjA2NjI1IiwgXAotICAgICAgICAgICItMC4xMTEyNSwgLTAuMTA2MjUsIC0wLjEwNjI1LCAtMC4xLCAtMC4wOTM3NSwgLTAuMDgzNzUsIC0wLjA3NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiRSYhU0UiOwotICAgICAgc2RmX2NvbmQgOiAiRV9FUV8xX0FOX1NFX0VRXzAgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTU2MjUsIDAuMTQ1LCAwLjEzMjUsIDAuMTI2MjUsIDAuMTIsIDAuMTEsIDAuMTA3NSIsIFwKLSAgICAgICAgICAiMC4xNjEyNSwgMC4xNTYyNSwgMC4xNDM3NSwgMC4xMzc1LCAwLjEzMTI1LCAwLjEyMTI1LCAwLjExMjUiLCBcCi0gICAgICAgICAgIjAuMTczNzUsIDAuMTYyNSwgMC4xNTYyNSwgMC4xNDM3NSwgMC4xMzc1LCAwLjEzMzc1LCAwLjEyNSIsIFwKLSAgICAgICAgICAiMC4xODYyNSwgMC4xNzUsIDAuMTYyNSwgMC4xNTYyNSwgMC4xNSwgMC4xNCwgMC4xMzc1IiwgXAotICAgICAgICAgICIwLjE5ODc1LCAwLjE4NzUsIDAuMTc1LCAwLjE2ODc1LCAwLjE2MjUsIDAuMTUyNSwgMC4xNSIsIFwKLSAgICAgICAgICAiMC4yMTUsIDAuMjAzNzUsIDAuMTkxMjUsIDAuMTg1LCAwLjE3ODc1LCAwLjE2ODc1LCAwLjE2NjI1IiwgXAotICAgICAgICAgICIwLjIzLCAwLjIxODc1LCAwLjIwNjI1LCAwLjIsIDAuMTkzNzUsIDAuMTgzNzUsIDAuMTc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTMxMjUsIDAuMTI2MjUsIDAuMTEzNzUsIDAuMTAxMjUsIDAuMDg4NzUsIDAuMDcyNSwgMC4wNjM3NSIsIFwKLSAgICAgICAgICAiMC4xNDI1LCAwLjEzMTI1LCAwLjExODc1LCAwLjEwNjI1LCAwLjEsIDAuMDgzNzUsIDAuMDc1IiwgXAotICAgICAgICAgICIwLjE1NSwgMC4xNDM3NSwgMC4xMzEyNSwgMC4xMTg3NSwgMC4xMDYyNSwgMC4wOTYyNSwgMC4wODEyNSIsIFwKLSAgICAgICAgICAiMC4xNjEyNSwgMC4xNSwgMC4xMzc1LCAwLjEyNSwgMC4xMTg3NSwgMC4xMDI1LCAwLjA5Mzc1IiwgXAotICAgICAgICAgICIwLjE3Mzc1LCAwLjE2MjUsIDAuMTUsIDAuMTM3NSwgMC4xMjUsIDAuMTE1LCAwLjEiLCBcCi0gICAgICAgICAgIjAuMTksIDAuMTc4NzUsIDAuMTY2MjUsIDAuMTUzNzUsIDAuMTQxMjUsIDAuMTI1LCAwLjExNjI1IiwgXAotICAgICAgICAgICIwLjE5ODc1LCAwLjE4NzUsIDAuMTc1LCAwLjE2MjUsIDAuMTU2MjUsIDAuMTQsIDAuMTMxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEUpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTUxNDk4OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTUxNDk4OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTUxNDk2OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNjUyMywgMC4wMDY0OTcsIDAuMDA2NTA1LCAwLjAwNjUxLCAwLjAwNjUyNiwgMC4wMDY1NTIsIDAuMDA2NTgxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA3ODM4LCAwLjAwNzgwNywgMC4wMDc4MDEsIDAuMDA3ODEsIDAuMDA3ODI1LCAwLjAwNzg2MSwgMC4wMDc4OTciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIVNFIjsKLSAgICAgIHNkZl9jb25kIDogIlNFID09IDEnYjAiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjExODc1LCAtMC4xMDc1LCAtMC4xMDEyNSwgLTAuMDg4NzUsIC0wLjA3NjI1LCAtMC4wNjYyNSwgLTAuMDU3NSIsIFwKLSAgICAgICAgICAiLTAuMTMsIC0wLjExODc1LCAtMC4xMDYyNSwgLTAuMSwgLTAuMDg3NSwgLTAuMDc3NSwgLTAuMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMTM2MjUsIC0wLjEzMTI1LCAtMC4xMTg3NSwgLTAuMTA2MjUsIC0wLjEsIC0wLjA4Mzc1LCAtMC4wNzUiLCBcCi0gICAgICAgICAgIi0wLjE0ODc1LCAtMC4xMzc1LCAtMC4xMjUsIC0wLjExODc1LCAtMC4xMDYyNSwgLTAuMDk2MjUsIC0wLjA4MTI1IiwgXAotICAgICAgICAgICItMC4xNTUsIC0wLjE1LCAtMC4xMzc1LCAtMC4xMjUsIC0wLjExMjUsIC0wLjEwMjUsIC0wLjA5Mzc1IiwgXAotICAgICAgICAgICItMC4xNjUsIC0wLjE1Mzc1LCAtMC4xNDEyNSwgLTAuMTM1LCAtMC4xMjI1LCAtMC4xMTI1LCAtMC4xMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMTczNzUsIC0wLjE2MjUsIC0wLjE1LCAtMC4xMzc1LCAtMC4xMzEyNSwgLTAuMTIxMjUsIC0wLjEwNjI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDQzNzUsIC0wLjAzODc1LCAtMC4wMzI1LCAtMC4wMjYyNSwgLTAuMDIsIC0wLjAxLCAtMC4wMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMjEyNSwgLTAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDY3NSwgLTAuMDYyNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wNDM3NSwgLTAuMDMzNzUsIC0wLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDgsIC0wLjA2ODc1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjA0LCAtMC4wMzc1IiwgXAotICAgICAgICAgICItMC4wODYyNSwgLTAuMDgxMjUsIC0wLjA3NSwgLTAuMDY4NzUsIC0wLjA2MjUsIC0wLjA1MjUsIC0wLjA0Mzc1IiwgXAotICAgICAgICAgICItMC4xMDI1LCAtMC4wOTc1LCAtMC4wOTEyNSwgLTAuMDg1LCAtMC4wNzg3NSwgLTAuMDY4NzUsIC0wLjA2IiwgXAotICAgICAgICAgICItMC4xMTEyNSwgLTAuMTA2MjUsIC0wLjEsIC0wLjEsIC0wLjA5Mzc1LCAtMC4wODM3NSwgLTAuMDc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhU0UiOwotICAgICAgc2RmX2NvbmQgOiAiU0UgPT0gMSdiMCI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTUsIDAuMTM4NzUsIDAuMTI2MjUsIDAuMTIsIDAuMTEzNzUsIDAuMTAzNzUsIDAuMTAxMjUiLCBcCi0gICAgICAgICAgIjAuMTU1LCAwLjE1LCAwLjEzNzUsIDAuMTMxMjUsIDAuMTI1LCAwLjExNSwgMC4xMDYyNSIsIFwKLSAgICAgICAgICAiMC4xNjc1LCAwLjE1NjI1LCAwLjE1LCAwLjEzNzUsIDAuMTMxMjUsIDAuMTI3NSwgMC4xMTg3NSIsIFwKLSAgICAgICAgICAiMC4xOCwgMC4xNjg3NSwgMC4xNjI1LCAwLjE1LCAwLjE0Mzc1LCAwLjE0LCAwLjEzMTI1IiwgXAotICAgICAgICAgICIwLjE5MjUsIDAuMTgxMjUsIDAuMTY4NzUsIDAuMTYyNSwgMC4xNTYyNSwgMC4xNTI1LCAwLjE0Mzc1IiwgXAotICAgICAgICAgICIwLjIwODc1LCAwLjIwMzc1LCAwLjE5MTI1LCAwLjE4NSwgMC4xNzg3NSwgMC4xNjg3NSwgMC4xNiIsIFwKLSAgICAgICAgICAiMC4yMywgMC4yMTg3NSwgMC4yMDYyNSwgMC4yLCAwLjE5Mzc1LCAwLjE4Mzc1LCAwLjE4MTI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTMxMjUsIDAuMTIsIDAuMTEzNzUsIDAuMTA3NSwgMC4xMDc1LCAwLjA5NzUsIDAuMDk1IiwgXAotICAgICAgICAgICIwLjEzNjI1LCAwLjEzMTI1LCAwLjEyNSwgMC4xMTg3NSwgMC4xMTI1LCAwLjEwODc1LCAwLjEwNjI1IiwgXAotICAgICAgICAgICIwLjE0ODc1LCAwLjE0Mzc1LCAwLjEzNzUsIDAuMTMxMjUsIDAuMTI1LCAwLjEyMTI1LCAwLjExMjUiLCBcCi0gICAgICAgICAgIjAuMTU1LCAwLjE1LCAwLjE0Mzc1LCAwLjEzNzUsIDAuMTMxMjUsIDAuMTI3NSwgMC4xMTg3NSIsIFwKLSAgICAgICAgICAiMC4xNjEyNSwgMC4xNTYyNSwgMC4xNSwgMC4xNDM3NSwgMC4xMzc1LCAwLjEzMzc1LCAwLjEyNSIsIFwKLSAgICAgICAgICAiMC4xNzEyNSwgMC4xNjYyNSwgMC4xNiwgMC4xNTM3NSwgMC4xNDc1LCAwLjE0Mzc1LCAwLjEzNSIsIFwKLSAgICAgICAgICAiMC4xOCwgMC4xNjg3NSwgMC4xNjI1LCAwLjE1NjI1LCAwLjE1NjI1LCAwLjE0NjI1LCAwLjE0Mzc1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihRKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMjU5Mjk3OwotICAgIGZ1bmN0aW9uIDogIk4zMCI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3NlbnNlIDogbm9uX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiByaXNpbmdfZWRnZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTQwNTAzLCAwLjE2NTI0MSwgMC4zMDUyNDgsIDAuNDI4MDE1LCAwLjU5MjEwNiwgMC45MjAwNSwgMS4xMjUxMSIsIFwKLSAgICAgICAgICAiMC4xNTA2MjksIDAuMTc1Mzk0LCAwLjMxNTI5MywgMC40MzgxMTIsIDAuNjAyMDczLCAwLjkzMDE3NywgMS4xMzUyNSIsIFwKLSAgICAgICAgICAiMC4xNjMyOSwgMC4xODgwNDIsIDAuMzI4MzM2LCAwLjQ1MTE2MiwgMC42MTQ5NywgMC45NDI4NDgsIDEuMTQ3OTgiLCBcCi0gICAgICAgICAgIjAuMTc0OTc1LCAwLjE5OTY5NiwgMC4zMzk5ODUsIDAuNDYyMzY2LCAwLjYyNjk5NSwgMC45NTQ1MiwgMS4xNTk1OSIsIFwKLSAgICAgICAgICAiMC4xODQ5MDgsIDAuMjA5NjU3LCAwLjM0OTksIDAuNDcyNTUyLCAwLjYzNjQ5NSwgMC45NjQ1MzQsIDEuMTY5NDkiLCBcCi0gICAgICAgICAgIjAuMTk5MzIyLCAwLjIyNDAzNSwgMC4zNjQzMzQsIDAuNDg2NzE1LCAwLjY1MDY3NiwgMC45Nzg4NzcsIDEuMTg0IiwgXAotICAgICAgICAgICIwLjIxMDAyMSwgMC4yMzQ3OTEsIDAuMzc0Nzg4LCAwLjQ5NzY1LCAwLjY2MTYyMywgMC45ODk2MDUsIDEuMTk0NjUiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk1NTEyLCAwLjE0NDQzOCwgMC40MzExMTgsIDAuNjg0NzE4LCAxLjAyNDUyLCAxLjcwMzM4LCAyLjEyNzYzIiwgXAotICAgICAgICAgICIwLjA5NTUwNywgMC4xNDUwNDUsIDAuNDMxMTI2LCAwLjY4NDcsIDEuMDIzOTIsIDEuNzAzMzgsIDIuMTI3NjMiLCBcCi0gICAgICAgICAgIjAuMDk1NDg3LCAwLjE0NDU1NiwgMC40MzA0NDksIDAuNjg0NjQzLCAxLjAyNDUzLCAxLjcwMzM3LCAyLjEyNzYyIiwgXAotICAgICAgICAgICIwLjA5NTgyNCwgMC4xNDQyMywgMC40MzAzNjMsIDAuNjg0NjQ0LCAxLjAyMzkyLCAxLjcwMzM3LCAyLjEyNzYxIiwgXAotICAgICAgICAgICIwLjA5NTc3LCAwLjE0NDk5NywgMC40MzExMiwgMC42ODQ2OSwgMS4wMjQ1NiwgMS43MDMzNiwgMi4xMjc2MyIsIFwKLSAgICAgICAgICAiMC4wOTU0NTIsIDAuMTQ0NzQsIDAuNDMxMTI2LCAwLjY4NDczNSwgMS4wMjM4NCwgMS43MDMzNSwgMi4xMjc2IiwgXAotICAgICAgICAgICIwLjA5NTUyNiwgMC4xNDQ5NjgsIDAuNDMxMDk2LCAwLjY4NTMyLCAxLjAyNDU2LCAxLjcwMzM1LCAyLjEyNzYyIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE1NjA3MywgMC4xODEwMjMsIDAuMzIxNzEsIDAuNDQ1Mjc4LCAwLjYxMDMxNiwgMC45NDAzNiwgMS4xNDY2MyIsIFwKLSAgICAgICAgICAiMC4xNjYyNzksIDAuMTkxMjMsIDAuMzMyMTU0LCAwLjQ1NTQyMiwgMC42MjA2NTYsIDAuOTUwNTgzLCAxLjE1NjgiLCBcCi0gICAgICAgICAgIjAuMTc5MDQ2LCAwLjIwMzk5NiwgMC4zNDQ2ODgsIDAuNDY4MjQ5LCAwLjYzMzQ4NiwgMC45NjMzMzQsIDEuMTY5NiIsIFwKLSAgICAgICAgICAiMC4xOTA4MjUsIDAuMjE1Nzc3LCAwLjM1NjY5NiwgMC40ODAwNjQsIDAuNjQ1MTk1LCAwLjk3NTEzLCAxLjE4MTM0IiwgXAotICAgICAgICAgICIwLjIwMTI2NywgMC4yMjYyMTcsIDAuMzY2OTA4LCAwLjQ5MDU0OSwgMC42NTU0OTEsIDAuOTg1NTUzLCAxLjE5MTgyIiwgXAotICAgICAgICAgICIwLjIxNTU2OCwgMC4yNDA1MTQsIDAuMzgxMzgzLCAwLjUwNDczMSwgMC42Njk3NiwgMC45OTk4NjUsIDEuMjA2MyIsIFwKLSAgICAgICAgICAiMC4yMjY1MTcsIDAuMjUxNDYyLCAwLjM5MjI5NCwgMC41MTU4MzcsIDAuNjgwNzI3LCAxLjAxMDc4LCAxLjIxNzAzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5Mzk1NiwgMC4xNDIxNDEsIDAuNDIyNjY1LCAwLjY3MjI3NiwgMS4wMDQ4NiwgMS42NzA1MSwgMi4wODY2MSIsIFwKLSAgICAgICAgICAiMC4wOTM5MzMsIDAuMTQyMTk4LCAwLjQyMjI3NSwgMC42NzE0NTcsIDEuMDA0OTksIDEuNjcwNTMsIDIuMDg2NDUiLCBcCi0gICAgICAgICAgIjAuMDkzOTU3LCAwLjE0MjE2MiwgMC40MjI2NzIsIDAuNjcyMjc1LCAxLjAwNTA2LCAxLjY3MDUxLCAyLjA4NjYiLCBcCi0gICAgICAgICAgIjAuMDkzOTQ1LCAwLjE0MTgzMSwgMC40MjI3MDksIDAuNjcyMDQ5LCAxLjAwNDg4LCAxLjY3MDQ5LCAyLjA4NjQiLCBcCi0gICAgICAgICAgIjAuMDkzOTU3LCAwLjE0MTkyNywgMC40MjI2NzEsIDAuNjcyMjc1LCAxLjAwNDgxLCAxLjY3MDUxLCAyLjA4NjU5IiwgXAotICAgICAgICAgICIwLjA5MzkzNCwgMC4xNDE4MjEsIDAuNDIyODEsIDAuNjcyMjY1LCAxLjAwNDcsIDEuNjcwNTMsIDIuMDg2NDYiLCBcCi0gICAgICAgICAgIjAuMDkzODEsIDAuMTQxODI5LCAwLjQyMjQzMSwgMC42NzIyOTUsIDEuMDA0NzMsIDEuNjcwNDEsIDIuMDg2NDIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0ODAxLCAwLjAwNDgwOSwgMC4wMDQ4MjEsIDAuMDA0ODIzLCAwLjAwNDgyNSwgMC4wMDQ4MjYsIDAuMDA0ODI2IiwgXAotICAgICAgICAgICIwLjAwNDc4NSwgMC4wMDQ3OTMsIDAuMDA0ODA1LCAwLjAwNDgwNywgMC4wMDQ4MDksIDAuMDA0ODEsIDAuMDA0ODEiLCBcCi0gICAgICAgICAgIjAuMDA0Nzc3LCAwLjAwNDc4NiwgMC4wMDQ3OTgsIDAuMDA0OCwgMC4wMDQ4MDEsIDAuMDA0ODAzLCAwLjAwNDgwMyIsIFwKLSAgICAgICAgICAiMC4wMDQ3NzgsIDAuMDA0Nzg3LCAwLjAwNDc5OSwgMC4wMDQ4MDEsIDAuMDA0ODAzLCAwLjAwNDgwNCwgMC4wMDQ4MDQiLCBcCi0gICAgICAgICAgIjAuMDA0Nzg4LCAwLjAwNDc5NiwgMC4wMDQ4MDgsIDAuMDA0ODExLCAwLjAwNDgxMiwgMC4wMDQ4MTMsIDAuMDA0ODE0IiwgXAotICAgICAgICAgICIwLjAwNDc5OCwgMC4wMDQ4MDYsIDAuMDA0ODE4LCAwLjAwNDgyMSwgMC4wMDQ4MjIsIDAuMDA0ODIzLCAwLjAwNDgyNCIsIFwKLSAgICAgICAgICAiMC4wMDQ4MSwgMC4wMDQ4MTksIDAuMDA0ODMsIDAuMDA0ODMzLCAwLjAwNDgzNCwgMC4wMDQ4MzYsIDAuMDA0ODM2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1NTkxLCAwLjAwNTYsIDAuMDA1NjEyLCAwLjAwNTYxNCwgMC4wMDU2MTUsIDAuMDA1NjE2LCAwLjAwNTYxNiIsIFwKLSAgICAgICAgICAiMC4wMDU1NzgsIDAuMDA1NTg2LCAwLjAwNTU5OCwgMC4wMDU2LCAwLjAwNTYwMiwgMC4wMDU2MDMsIDAuMDA1NjAzIiwgXAotICAgICAgICAgICIwLjAwNTU3NywgMC4wMDU1ODYsIDAuMDA1NTk4LCAwLjAwNTYsIDAuMDA1NjAxLCAwLjAwNTYwMiwgMC4wMDU2MDIiLCBcCi0gICAgICAgICAgIjAuMDA1NTg3LCAwLjAwNTU5NSwgMC4wMDU2MDcsIDAuMDA1NjA5LCAwLjAwNTYxLCAwLjAwNTYxMSwgMC4wMDU2MTEiLCBcCi0gICAgICAgICAgIjAuMDA1NjAxLCAwLjAwNTYxLCAwLjAwNTYyMSwgMC4wMDU2MjQsIDAuMDA1NjI1LCAwLjAwNTYyNiwgMC4wMDU2MjYiLCBcCi0gICAgICAgICAgIjAuMDA1NjIxLCAwLjAwNTYzLCAwLjAwNTY0MSwgMC4wMDU2NDMsIDAuMDA1NjQ1LCAwLjAwNTY0NiwgMC4wMDU2NDYiLCBcCi0gICAgICAgICAgIjAuMDA1NjQyLCAwLjAwNTY1MSwgMC4wMDU2NjMsIDAuMDA1NjY1LCAwLjAwNTY2NiwgMC4wMDU2NjcsIDAuMDA1NjY3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihRTikgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjI2MDM2ODsKLSAgICBmdW5jdGlvbiA6ICJORVQ1MzYiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5vbl91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcmlzaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE3NjcyMywgMC4yMDEzOTUsIDAuMzQwNzA2LCAwLjQ2MzYyNywgMC42Mjc1MDMsIDAuOTU1MjkzLCAxLjE2MDI3IiwgXAotICAgICAgICAgICIwLjE4Njk0MiwgMC4yMTE2MTQsIDAuMzUwOTE1LCAwLjQ3MzgzOCwgMC42Mzc3MTUsIDAuOTY1NTA1LCAxLjE3MDQ1IiwgXAotICAgICAgICAgICIwLjE5OTY5NiwgMC4yMjQzNjgsIDAuMzYzNjc4LCAwLjQ4NjYwMiwgMC42NTA0NzUsIDAuOTc4MjY2LCAxLjE4MzI0IiwgXAotICAgICAgICAgICIwLjIxMTQ4OSwgMC4yMzYxNjIsIDAuMzc1NDcyLCAwLjQ5ODM4NywgMC42NjIzMiwgMC45OTAwNjQsIDEuMTk0ODciLCBcCi0gICAgICAgICAgIjAuMjIxOTE3LCAwLjI0NjU4OSwgMC4zODU4OTksIDAuNTA4ODI2LCAwLjY3MjY5LCAxLjAwMDQ5LCAxLjIwNTQ2IiwgXAotICAgICAgICAgICIwLjIzNjIxNywgMC4yNjA4ODgsIDAuNDAwMTk5LCAwLjUyMzEyNCwgMC42ODY5OTcsIDEuMDE0NzksIDEuMjE5NzQiLCBcCi0gICAgICAgICAgIjAuMjQ3MTcxLCAwLjI3MTg0MiwgMC40MTExNDMsIDAuNTM0MDksIDAuNjk3OTg4LCAxLjAyNTc0LCAxLjIzMDY5Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5MjgyLCAwLjE0Mjk1MywgMC40MzA4NTQsIDAuNjg0ODg5LCAxLjAyNDA1LCAxLjcwMjg2LCAyLjEyNjkyIiwgXAotICAgICAgICAgICIwLjA5MjgzNCwgMC4xNDI5NDksIDAuNDMwMDY5LCAwLjY4NDMwNiwgMS4wMjQ0LCAxLjcwMjg1LCAyLjEyNjkyIiwgXAotICAgICAgICAgICIwLjA5MjgyLCAwLjE0Mjk1MSwgMC40MzA4NTcsIDAuNjg0ODg5LCAxLjAyNDU4LCAxLjcwMjg2LCAyLjEyNjkyIiwgXAotICAgICAgICAgICIwLjA5MjgxOCwgMC4xNDI5MTksIDAuNDMwODY5LCAwLjY4NDg5NywgMS4wMjQwNCwgMS43MDI4NCwgMi4xMjY5MSIsIFwKLSAgICAgICAgICAiMC4wOTI4MiwgMC4xNDI5NTQsIDAuNDMwODU3LCAwLjY4NDg5MSwgMS4wMjQwMiwgMS43MDI4NiwgMi4xMjY5MiIsIFwKLSAgICAgICAgICAiMC4wOTI4MTgsIDAuMTQyOTUsIDAuNDMwNjE2LCAwLjY4NDg4NywgMS4wMjM5NCwgMS43MDI4NiwgMi4xMjY5NCIsIFwKLSAgICAgICAgICAiMC4wOTI4MjMsIDAuMTQyOTQ5LCAwLjQzMDI2NSwgMC42ODQ5MDUsIDEuMDIzOTYsIDEuNzAyOCwgMi4xMjY4OCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNjM1NTYsIDAuMTg4NDA3LCAwLjMyODYyMSwgMC40NTIzMywgMC42MTcyMzYsIDAuOTQ3MTE1LCAxLjE1MzMxIiwgXAotICAgICAgICAgICIwLjE3MzY4NCwgMC4xOTg1MzYsIDAuMzM4NzQ2LCAwLjQ2MjQ1MywgMC42MjczNjUsIDAuOTU3MjQxLCAxLjE2MzQ0IiwgXAotICAgICAgICAgICIwLjE4NjM1MiwgMC4yMTEyMDQsIDAuMzUxNDEzLCAwLjQ3NTExLCAwLjY0MDA0NSwgMC45Njk4OTYsIDEuMTc2MTMiLCBcCi0gICAgICAgICAgIjAuMTk4MDE0LCAwLjIyMjg2NCwgMC4zNjMwNzEsIDAuNDg2NzY5LCAwLjY1MTY5NywgMC45ODE1NzgsIDEuMTg3NzgiLCBcCi0gICAgICAgICAgIjAuMjA3OTQ2LCAwLjIzMjc5OCwgMC4zNzMwMDgsIDAuNDk2NzQsIDAuNjYxNjI1LCAwLjk5MTUxMSwgMS4xOTc2OSIsIFwKLSAgICAgICAgICAiMC4yMjIzNiwgMC4yNDcyMTMsIDAuMzg3NDIsIDAuNTExMTE3LCAwLjY3NjA2NSwgMS4wMDU5LCAxLjIxMjE0IiwgXAotICAgICAgICAgICIwLjIzMzA4MiwgMC4yNTc5MzQsIDAuMzk4MTQyLCAwLjUyMTg1LCAwLjY4Njc2MiwgMS4wMTY2NCwgMS4yMjI4NCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTExNjUsIDAuMTQwMjA5LCAwLjQyMjAxOCwgMC42NzEwMzcsIDEuMDAzNjcsIDEuNjY4NTEsIDIuMDg0MTIiLCBcCi0gICAgICAgICAgIjAuMDkxMTY0LCAwLjE0MDIwOCwgMC40MjIwMzEsIDAuNjcxMDA5LCAxLjAwMzIsIDEuNjY4NDgsIDIuMDg0MSIsIFwKLSAgICAgICAgICAiMC4wOTExNTksIDAuMTQwMjA1LCAwLjQyMTU4LCAwLjY3MDkwMiwgMS4wMDM3MywgMS42Njg0OCwgMi4wODQxNSIsIFwKLSAgICAgICAgICAiMC4wOTExNTksIDAuMTQwMjA3LCAwLjQyMTYwMSwgMC42NzA5MDIsIDEuMDAzMiwgMS42Njg1LCAyLjA4NDA4IiwgXAotICAgICAgICAgICIwLjA5MTE2NCwgMC4xNDAyMDgsIDAuNDIyMDE4LCAwLjY3MDk0OCwgMS4wMDM2OCwgMS42Njg1OCwgMi4wODQxNyIsIFwKLSAgICAgICAgICAiMC4wOTExNjUsIDAuMTQwMTc1LCAwLjQyMjAyOSwgMC42NzA5MzMsIDEuMDAzMTgsIDEuNjY4NTIsIDIuMDg0MTMiLCBcCi0gICAgICAgICAgIjAuMDkxMTYyLCAwLjE0MDIwNSwgMC40MjE5NTEsIDAuNjcxMjk3LCAxLjAwMzcsIDEuNjY4NTUsIDIuMDg0MjEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1NTkxLCAwLjAwNTYsIDAuMDA1NjEyLCAwLjAwNTYxNCwgMC4wMDU2MTUsIDAuMDA1NjE2LCAwLjAwNTYxNiIsIFwKLSAgICAgICAgICAiMC4wMDU1NzgsIDAuMDA1NTg2LCAwLjAwNTU5OCwgMC4wMDU2LCAwLjAwNTYwMiwgMC4wMDU2MDMsIDAuMDA1NjAzIiwgXAotICAgICAgICAgICIwLjAwNTU3NywgMC4wMDU1ODYsIDAuMDA1NTk4LCAwLjAwNTYsIDAuMDA1NjAxLCAwLjAwNTYwMiwgMC4wMDU2MDIiLCBcCi0gICAgICAgICAgIjAuMDA1NTg3LCAwLjAwNTU5NSwgMC4wMDU2MDcsIDAuMDA1NjA5LCAwLjAwNTYxLCAwLjAwNTYxMSwgMC4wMDU2MTEiLCBcCi0gICAgICAgICAgIjAuMDA1NjAxLCAwLjAwNTYxLCAwLjAwNTYyMSwgMC4wMDU2MjQsIDAuMDA1NjI1LCAwLjAwNTYyNiwgMC4wMDU2MjYiLCBcCi0gICAgICAgICAgIjAuMDA1NjIxLCAwLjAwNTYzLCAwLjAwNTY0MSwgMC4wMDU2NDMsIDAuMDA1NjQ1LCAwLjAwNTY0NiwgMC4wMDU2NDYiLCBcCi0gICAgICAgICAgIjAuMDA1NjQyLCAwLjAwNTY1MSwgMC4wMDU2NjMsIDAuMDA1NjY1LCAwLjAwNTY2NiwgMC4wMDU2NjcsIDAuMDA1NjY3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0ODAxLCAwLjAwNDgwOSwgMC4wMDQ4MjEsIDAuMDA0ODIzLCAwLjAwNDgyNSwgMC4wMDQ4MjYsIDAuMDA0ODI2IiwgXAotICAgICAgICAgICIwLjAwNDc4NSwgMC4wMDQ3OTMsIDAuMDA0ODA1LCAwLjAwNDgwNywgMC4wMDQ4MDksIDAuMDA0ODEsIDAuMDA0ODEiLCBcCi0gICAgICAgICAgIjAuMDA0Nzc3LCAwLjAwNDc4NiwgMC4wMDQ3OTgsIDAuMDA0OCwgMC4wMDQ4MDEsIDAuMDA0ODAzLCAwLjAwNDgwMyIsIFwKLSAgICAgICAgICAiMC4wMDQ3NzgsIDAuMDA0Nzg3LCAwLjAwNDc5OSwgMC4wMDQ4MDEsIDAuMDA0ODAzLCAwLjAwNDgwNCwgMC4wMDQ4MDQiLCBcCi0gICAgICAgICAgIjAuMDA0Nzg4LCAwLjAwNDc5NiwgMC4wMDQ4MDgsIDAuMDA0ODExLCAwLjAwNDgxMiwgMC4wMDQ4MTMsIDAuMDA0ODE0IiwgXAotICAgICAgICAgICIwLjAwNDc5OCwgMC4wMDQ4MDYsIDAuMDA0ODE4LCAwLjAwNDgyMSwgMC4wMDQ4MjIsIDAuMDA0ODIzLCAwLjAwNDgyNCIsIFwKLSAgICAgICAgICAiMC4wMDQ4MSwgMC4wMDQ4MTksIDAuMDA0ODMsIDAuMDA0ODMzLCAwLjAwNDgzNCwgMC4wMDQ4MzYsIDAuMDA0ODM2Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTRSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxMTQyNzc7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxMTQxNjI7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxMTQyNzc7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA0OTA5LCAwLjAwNDg5MSwgMC4wMDQ5LCAwLjAwNDkwNywgMC4wMDQ5MjMsIDAuMDA0OTUsIDAuMDA0OTc5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA2MjU0LCAwLjAwNjIxOSwgMC4wMDYyMTQsIDAuMDA2MjE0LCAwLjAwNjIyNCwgMC4wMDYyNTgsIDAuMDA2Mjk2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEJiFFJiFTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fRV9FUV8wX0FOX1NJX0VRXzAgPT0gMSdiMSI7Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDY4NzUsIC0wLjA2Mzc1LCAtMC4wNTc1LCAtMC4wNTEyNSwgLTAuMDUxMjUsIC0wLjA0MTI1LCAtMC4wMzg3NSIsIFwKLSAgICAgICAgICAiLTAuMDgsIC0wLjA3NSwgLTAuMDY4NzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNTI1LCAtMC4wNSIsIFwKLSAgICAgICAgICAiLTAuMDkyNSwgLTAuMDg3NSwgLTAuMDgxMjUsIC0wLjA3NSwgLTAuMDY4NzUsIC0wLjA2NSwgLTAuMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMTA1LCAtMC4wOTM3NSwgLTAuMDg3NSwgLTAuMDg3NSwgLTAuMDgxMjUsIC0wLjA3NzUsIC0wLjA2ODc1IiwgXAotICAgICAgICAgICItMC4xMTEyNSwgLTAuMTA2MjUsIC0wLjEsIC0wLjA5Mzc1LCAtMC4wODc1LCAtMC4wODM3NSwgLTAuMDgxMjUiLCBcCi0gICAgICAgICAgIi0wLjEyMTI1LCAtMC4xMTYyNSwgLTAuMTEsIC0wLjEwMzc1LCAtMC4xMDM3NSwgLTAuMDkzNzUsIC0wLjA5MTI1IiwgXAotICAgICAgICAgICItMC4xMywgLTAuMTI1LCAtMC4xMTg3NSwgLTAuMTEyNSwgLTAuMTEyNSwgLTAuMTAyNSwgLTAuMSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRCYhRSZTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fRV9FUV8wX0FOX1NJX0VRXzEgPT0gMSdiMSI7Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDE4NzUsIC0wLjAxMzc1LCAtMC4wMDEyNSwgMC4wMDUsIDAuMDExMjUsIDAuMDIxMjUsIDAuMDMiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAsIDAuMDE2MjUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLjAwMzc1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wNDM3NSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAwODc1LCAwIiwgXAotICAgICAgICAgICItMC4wNjEyNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDE1LCAtMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wNzEyNSwgLTAuMDY2MjUsIC0wLjA2LCAtMC4wNDc1LCAtMC4wNDEyNSwgLTAuMDMxMjUsIC0wLjAyMjUiLCBcCi0gICAgICAgICAgIi0wLjA4LCAtMC4wNzUsIC0wLjA2ODc1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDQ2MjUsIC0wLjAzNzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUQmRSZTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fRV9FUV8xX0FOX1NJX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDU2MjUsIC0wLjA1MTI1LCAtMC4wNDUsIC0wLjAzODc1LCAtMC4wMzI1LCAtMC4wMjI1LCAtMC4wMiIsIFwKLSAgICAgICAgICAiLTAuMDY3NSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDQzNzUsIC0wLjAzMzc1LCAtMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjA4LCAtMC4wNjg3NSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNDYyNSwgLTAuMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDg2MjUsIC0wLjA4MTI1LCAtMC4wNzUsIC0wLjA2ODc1LCAtMC4wNjI1LCAtMC4wNTg3NSwgLTAuMDUiLCBcCi0gICAgICAgICAgIi0wLjA5ODc1LCAtMC4wOTM3NSwgLTAuMDg3NSwgLTAuMDgxMjUsIC0wLjA3NSwgLTAuMDcxMjUsIC0wLjA2MjUiLCBcCi0gICAgICAgICAgIi0wLjEyMTI1LCAtMC4xMSwgLTAuMTAzNzUsIC0wLjA5NzUsIC0wLjA5MTI1LCAtMC4wODc1LCAtMC4wNzg3NSIsIFwKLSAgICAgICAgICAiLTAuMTMsIC0wLjEyNSwgLTAuMTE4NzUsIC0wLjExMjUsIC0wLjEwNjI1LCAtMC4xMDI1LCAtMC4wOTM3NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJEJkUmIVNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMV9BTl9FX0VRXzFfQU5fU0lfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMzc1LCAtMC4wMjYyNSwgLTAuMDEzNzUsIC0wLjAwNzUsIDAuMDA1LCAwLjAxNSwgMC4wMjM3NSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDM3NSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAuMDAzNzUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNSwgLTAuMDM3NSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDA4NzUsIDAiLCBcCi0gICAgICAgICAgIi0wLjA2NzUsIC0wLjA1NjI1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAxNSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA3Mzc1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAyNzUsIC0wLjAxODc1IiwgXAotICAgICAgICAgICItMC4wODM3NSwgLTAuMDc4NzUsIC0wLjA2NjI1LCAtMC4wNTM3NSwgLTAuMDQ3NSwgLTAuMDM3NSwgLTAuMDI4NzUiLCBcCi0gICAgICAgICAgIi0wLjA5MjUsIC0wLjA4NzUsIC0wLjA3NSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA0NjI1LCAtMC4wMzc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRCYhRSYhU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX0VfRVFfMF9BTl9TSV9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4NzUsIDAuMDc2MjUsIDAuMDYzNzUsIDAuMDUxMjUsIDAuMDM4NzUsIDAuMDI4NzUsIDAuMDEzNzUiLCBcCi0gICAgICAgICAgIjAuMDk4NzUsIDAuMDg3NSwgMC4wNzUsIDAuMDYyNSwgMC4wNSwgMC4wNCwgMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMTA1LCAwLjEsIDAuMDg3NSwgMC4wNzUsIDAuMDYyNSwgMC4wNDYyNSwgMC4wMzc1IiwgXAotICAgICAgICAgICIwLjExNzUsIDAuMTA2MjUsIDAuMDkzNzUsIDAuMDgxMjUsIDAuMDc1LCAwLjA1ODc1LCAwLjA1IiwgXAotICAgICAgICAgICIwLjEyMzc1LCAwLjExMjUsIDAuMSwgMC4wOTM3NSwgMC4wODEyNSwgMC4wNjUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIjAuMTMzNzUsIDAuMTI4NzUsIDAuMTEsIDAuMTAzNzUsIDAuMDkxMjUsIDAuMDc1LCAwLjA2NjI1IiwgXAotICAgICAgICAgICIwLjE0MjUsIDAuMTM3NSwgMC4xMTg3NSwgMC4xMTI1LCAwLjEsIDAuMDgzNzUsIDAuMDc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRCYhRSZTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fRV9FUV8wX0FOX1NJX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg3NSwgMC4wNzYyNSwgMC4wNywgMC4wNjM3NSwgMC4wNTc1LCAwLjA0NzUsIDAuMDM4NzUiLCBcCi0gICAgICAgICAgIjAuMDk4NzUsIDAuMDg3NSwgMC4wODEyNSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1ODc1LCAwLjA1IiwgXAotICAgICAgICAgICIwLjExMTI1LCAwLjEsIDAuMDg3NSwgMC4wODEyNSwgMC4wNzUsIDAuMDcxMjUsIDAuMDYyNSIsIFwKLSAgICAgICAgICAiMC4xMjM3NSwgMC4xMTI1LCAwLjEsIDAuMDkzNzUsIDAuMDg3NSwgMC4wNzc1LCAwLjA3NSIsIFwKLSAgICAgICAgICAiMC4xMzYyNSwgMC4xMjUsIDAuMTEyNSwgMC4xMDYyNSwgMC4xLCAwLjA5LCAwLjA4NzUiLCBcCi0gICAgICAgICAgIjAuMTUyNSwgMC4xNDEyNSwgMC4xMzUsIDAuMTIyNSwgMC4xMTYyNSwgMC4xMTI1LCAwLjEwMzc1IiwgXAotICAgICAgICAgICIwLjE2NzUsIDAuMTU2MjUsIDAuMTUsIDAuMTM3NSwgMC4xMzEyNSwgMC4xMjc1LCAwLjExODc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRCZFJlNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9FX0VRXzFfQU5fU0lfRVFfMSA9PSAxJ2IxIjsKLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODc1LCAwLjA3NjI1LCAwLjA2Mzc1LCAwLjA1NzUsIDAuMDQ1LCAwLjAyODc1LCAwLjAyIiwgXAotICAgICAgICAgICIwLjA5ODc1LCAwLjA4NzUsIDAuMDc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDQsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMTExMjUsIDAuMSwgMC4wODc1LCAwLjA3NSwgMC4wNjI1LCAwLjA1MjUsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiMC4xMTc1LCAwLjEwNjI1LCAwLjA5Mzc1LCAwLjA4NzUsIDAuMDc1LCAwLjA1ODc1LCAwLjA1IiwgXAotICAgICAgICAgICIwLjEzLCAwLjExODc1LCAwLjEwNjI1LCAwLjA5Mzc1LCAwLjA4NzUsIDAuMDcxMjUsIDAuMDYyNSIsIFwKLSAgICAgICAgICAiMC4xNDYyNSwgMC4xMzUsIDAuMTIyNSwgMC4xMSwgMC4xMDM3NSwgMC4wODc1LCAwLjA3ODc1IiwgXAotICAgICAgICAgICIwLjE2MTI1LCAwLjE1LCAwLjEzNzUsIDAuMTI1LCAwLjExMjUsIDAuMTAyNSwgMC4wODc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJEJkUmIVNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMV9BTl9FX0VRXzFfQU5fU0lfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTI1LCAwLjEwMTI1LCAwLjA5NSwgMC4wODI1LCAwLjA3NjI1LCAwLjA3MjUsIDAuMDYzNzUiLCBcCi0gICAgICAgICAgIjAuMTIzNzUsIDAuMTEyNSwgMC4xMDYyNSwgMC4wOTM3NSwgMC4wODc1LCAwLjA4Mzc1LCAwLjA3NSIsIFwKLSAgICAgICAgICAiMC4xMzYyNSwgMC4xMjUsIDAuMTEyNSwgMC4xMDYyNSwgMC4xLCAwLjA5LCAwLjA4NzUiLCBcCi0gICAgICAgICAgIjAuMTQ4NzUsIDAuMTM3NSwgMC4xMjUsIDAuMTE4NzUsIDAuMTEyNSwgMC4xMDI1LCAwLjEiLCBcCi0gICAgICAgICAgIjAuMTU1LCAwLjE0Mzc1LCAwLjEzNzUsIDAuMTI1LCAwLjExODc1LCAwLjExNSwgMC4xMDYyNSIsIFwKLSAgICAgICAgICAiMC4xNjUsIDAuMTUzNzUsIDAuMTQ3NSwgMC4xMzUsIDAuMTI4NzUsIDAuMTI1LCAwLjExNjI1IiwgXAotICAgICAgICAgICIwLjE3Mzc1LCAwLjE2MjUsIDAuMTU2MjUsIDAuMTQzNzUsIDAuMTM3NSwgMC4xMzM3NSwgMC4xMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFNJKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2MzQ2NDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MzMwNjY7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjM0NjQ7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyNjU2LCAwLjAwMjY0LCAwLjAwMjYzMSwgMC4wMDI2MjYsIDAuMDAyNjI0LCAwLjAwMjYyNSwgMC4wMDI2MzMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDUxNzgsIDAuMDA1MTY5LCAwLjAwNTE2NCwgMC4wMDUxNjEsIDAuMDA1MTYyLCAwLjAwNTE2MywgMC4wMDUxNyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJTRSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wNjI1LCAtMC4wNTc1LCAtMC4wNTEyNSwgLTAuMDQ1LCAtMC4wMzg3NSwgLTAuMDI4NzUsIC0wLjAyNjI1IiwgXAotICAgICAgICAgICItMC4wNzM3NSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDQsIC0wLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wOCwgLTAuMDc1LCAtMC4wNjg3NSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA1MjUsIC0wLjA0Mzc1IiwgXAotICAgICAgICAgICItMC4wOTI1LCAtMC4wODc1LCAtMC4wODEyNSwgLTAuMDc1LCAtMC4wNjg3NSwgLTAuMDU4NzUsIC0wLjA1NjI1IiwgXAotICAgICAgICAgICItMC4xMDUsIC0wLjA5Mzc1LCAtMC4wODc1LCAtMC4wODEyNSwgLTAuMDgxMjUsIC0wLjA3MTI1LCAtMC4wNjg3NSIsIFwKLSAgICAgICAgICAiLTAuMTIxMjUsIC0wLjExLCAtMC4xMDM3NSwgLTAuMDk3NSwgLTAuMDk3NSwgLTAuMDg3NSwgLTAuMDg1IiwgXAotICAgICAgICAgICItMC4xMywgLTAuMTI1LCAtMC4xMTg3NSwgLTAuMTEyNSwgLTAuMTA2MjUsIC0wLjEwMjUsIC0wLjA5Mzc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDI1LCAtMC4wMTM3NSwgLTAuMDA3NSwgMC4wMDUsIDAuMDExMjUsIDAuMDIxMjUsIDAuMDMiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMjUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLjAwNjI1LCAwLjAxNjI1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAuMDAzNzUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNDM3NSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDEyNSwgLTAuMDAyNSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDYxMjUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDE1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDcxMjUsIC0wLjA2NjI1LCAtMC4wNTM3NSwgLTAuMDQ3NSwgLTAuMDM1LCAtMC4wMjUsIC0wLjAxNjI1IiwgXAotICAgICAgICAgICItMC4wOCwgLTAuMDc1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjAzMzc1LCAtMC4wMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlNFIjsKLSAgICAgIHNkZl9jb25kIDogIlNFID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5Mzc1LCAwLjA4MjUsIDAuMDc2MjUsIDAuMDcsIDAuMDYzNzUsIDAuMDUzNzUsIDAuMDQ1IiwgXAotICAgICAgICAgICIwLjEwNSwgMC4wOTM3NSwgMC4wODEyNSwgMC4wNzUsIDAuMDY4NzUsIDAuMDY1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICIwLjExNzUsIDAuMTA2MjUsIDAuMDkzNzUsIDAuMDg3NSwgMC4wODEyNSwgMC4wNzEyNSwgMC4wNjg3NSIsIFwKLSAgICAgICAgICAiMC4xMjM3NSwgMC4xMTg3NSwgMC4xMDYyNSwgMC4xLCAwLjA5Mzc1LCAwLjA4Mzc1LCAwLjA4MTI1IiwgXAotICAgICAgICAgICIwLjEzNjI1LCAwLjEyNSwgMC4xMTg3NSwgMC4xMDYyNSwgMC4xLCAwLjA5NjI1LCAwLjA4NzUiLCBcCi0gICAgICAgICAgIjAuMTUyNSwgMC4xNDEyNSwgMC4xMzUsIDAuMTIyNSwgMC4xMjI1LCAwLjExMjUsIDAuMTAzNzUiLCBcCi0gICAgICAgICAgIjAuMTY3NSwgMC4xNTYyNSwgMC4xNDM3NSwgMC4xMzc1LCAwLjEzMTI1LCAwLjEyNzUsIDAuMTE4NzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzUsIDAuMDYzNzUsIDAuMDUxMjUsIDAuMDM4NzUsIDAuMDMyNSwgMC4wMTYyNSwgMC4wMDc1IiwgXAotICAgICAgICAgICIwLjA4NjI1LCAwLjA3NSwgMC4wNjI1LCAwLjA1LCAwLjAzNzUsIDAuMDI3NSwgMC4wMTI1IiwgXAotICAgICAgICAgICIwLjA5MjUsIDAuMDgxMjUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNSwgMC4wMzM3NSwgMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMTA1LCAwLjA5Mzc1LCAwLjA4MTI1LCAwLjA2ODc1LCAwLjA1NjI1LCAwLjA0NjI1LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIjAuMTExMjUsIDAuMTA2MjUsIDAuMDg3NSwgMC4wODEyNSwgMC4wNjg3NSwgMC4wNTI1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjEyNzUsIDAuMTE2MjUsIDAuMTAzNzUsIDAuMDkxMjUsIDAuMDg1LCAwLjA2ODc1LCAwLjA2IiwgXAotICAgICAgICAgICIwLjE0MjUsIDAuMTMxMjUsIDAuMTE4NzUsIDAuMTA2MjUsIDAuMDkzNzUsIDAuMDgzNzUsIDAuMDY4NzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IFRCVUZYMiAqCi0gKiAtLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKFRCVUZYMikgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjE3NjQzNDsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxMzE1NDM7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxMzEzNzQ7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxMzE1NDM7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNDQsIDAuMDAwNDQ3LCAwLjAwMDQ0NywgMC4wMDA0NDgsIDAuMDAwNDQ4LCAwLjAwMDQ0OCwgMC4wMDA0NDgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA0NjcsIDAuMDAwNDYyLCAwLjAwMDQ2MiwgMC4wMDA0NiwgMC4wMDA0NjIsIDAuMDAwNDYyLCAwLjAwMDQ2MiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oT0UpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTEyOTg1OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTEyOTM0OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTEyOTg1OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihzY2FsYXIpIHsKLSAgICAgICAgdmFsdWVzKCIwIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzMTYsIDAuMDAzMTE2LCAwLjAwMzA5OSwgMC4wMDMxMDIsIDAuMDAzMTEzLCAwLjAwMzE1NSwgMC4wMDMxODkiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxMTM4Mzk7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxMTM4Mzk7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxMTM4MDI7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC41MjIyMDk7Ci0gICAgZnVuY3Rpb24gOiAiQSI7Ci0gICAgdGhyZWVfc3RhdGUgOiAiKCFPRSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDExMTM4NCwgMC4wNjExMzg0LCAwLjEwMTEzOCwgMC4xNTExMzgsIDAuMjAxMTM4LCAwLjI1MTEzOCwgMC4zMDExMzgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2OTMzMiwgMC4xNzIzNzUsIDAuMjUzNzE3LCAwLjM1NTM4NSwgMC40NTcwNSwgMC41NTg2MTgsIDAuNjYwMzMxIiwgXAotICAgICAgICAgICIwLjA3Nzk5OCwgMC4xODEwNDcsIDAuMjYyMzgzLCAwLjM2NDA1OCwgMC40NjU2NjcsIDAuNTY3MzMsIDAuNjY5MDI3IiwgXAotICAgICAgICAgICIwLjA4ODYwNywgMC4xOTE2OTEsIDAuMjczMDMyLCAwLjM3NDcsIDAuNDc2MzIzLCAwLjU3Nzk4NCwgMC42Nzk2OTgiLCBcCi0gICAgICAgICAgIjAuMDk4NjksIDAuMjAxODQ1LCAwLjI4MzE4OSwgMC4zODQ4NDIsIDAuNDg2NDc2LCAwLjU4ODEwNiwgMC42ODk3NjUiLCBcCi0gICAgICAgICAgIjAuMTA4MDAxLCAwLjIxMTI2OSwgMC4yOTI2MjEsIDAuMzk0MzA2LCAwLjQ5NTg5MiwgMC41OTc1NDQsIDAuNjk5MTg1IiwgXAotICAgICAgICAgICIwLjEyMTIxNiwgMC4yMjQ3ODksIDAuMzA2MTAyLCAwLjQwNzc5MSwgMC41MDk0LCAwLjYxMTAzNCwgMC43MTI3MzUiLCBcCi0gICAgICAgICAgIjAuMTMxNTI3LCAwLjIzNTQxOCwgMC4zMTY3MzksIDAuNDE4MzM4LCAwLjUxOTkwNCwgMC42MjE1NjYsIDAuNzIzMTc4Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDExMTM4NCwgMC4wNjExMzg0LCAwLjEwMTEzOCwgMC4xNTExMzgsIDAuMjAxMTM4LCAwLjI1MTEzOCwgMC4zMDExMzgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1NTIyNSwgMC4yNTk0NzYsIDAuNDI2Mzc5LCAwLjYzNjYzMSwgMC44NDY0NzgsIDEuMDU0ODMsIDEuMjY2MjkiLCBcCi0gICAgICAgICAgIjAuMDU1MjQ2LCAwLjI1OTQ1MywgMC40MjYzMjYsIDAuNjM2NTE5LCAwLjg0NjAwNCwgMS4wNTQyOSwgMS4yNjYzNSIsIFwKLSAgICAgICAgICAiMC4wNTUzMDksIDAuMjU5NjU1LCAwLjQyNjM4LCAwLjYzNTcwOCwgMC44NDUzOTIsIDEuMDU0NTYsIDEuMjY2MTYiLCBcCi0gICAgICAgICAgIjAuMDU1NjQxLCAwLjI1OTcwNywgMC40MjYzNTksIDAuNjM2NDYzLCAwLjg0NTI3MywgMS4wNTYwNywgMS4yNjM5IiwgXAotICAgICAgICAgICIwLjA1NjQxMywgMC4yNTk1MjksIDAuNDI2OTUxLCAwLjYzNjUzMSwgMC44NDUxOTYsIDEuMDU2MDYsIDEuMjY0MDkiLCBcCi0gICAgICAgICAgIjAuMDU3OTMxLCAwLjI2MDI1OCwgMC40MjY5MDUsIDAuNjM1NTY0LCAwLjg0NjIsIDEuMDU2MDQsIDEuMjY2MDQiLCBcCi0gICAgICAgICAgIjAuMDU5MTMyLCAwLjI2MDU0MywgMC40MjcxNTMsIDAuNjM2NjA3LCAwLjg0NjE1MywgMS4wNTYwMywgMS4yNjU4NCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxMTEzOCwgMC4wNjExMzgsIDAuMTAxMTM4LCAwLjE1MTEzOCwgMC4yMDExMzgsIDAuMjUxMTM4LCAwLjMwMTEzOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDYyMTc2LCAwLjE2NjYyMSwgMC4yNDk0MDMsIDAuMzUyODU0LCAwLjQ1NjMzLCAwLjU1OTcxNCwgMC42NjMxNTMiLCBcCi0gICAgICAgICAgIjAuMDcwNTIxLCAwLjE3NDk5MSwgMC4yNTc3OTEsIDAuMzYxMjE5LCAwLjQ2NDY1MiwgMC41NjgwODksIDAuNjcxNjA2IiwgXAotICAgICAgICAgICIwLjA3OTk2NiwgMC4xODQ0ODIsIDAuMjY3MjkzLCAwLjM3MDcyMywgMC40NzQxNzMsIDAuNTc3NjMxLCAwLjY4MTAzIiwgXAotICAgICAgICAgICIwLjA4ODQ4NSwgMC4xOTMwOTIsIDAuMjc1ODgyLCAwLjM3OTM1NywgMC40ODI3NzEsIDAuNTg2MjMxLCAwLjY4OTYzNyIsIFwKLSAgICAgICAgICAiMC4wOTU5NjIsIDAuMjAwNzA0LCAwLjI4MzQ4MywgMC4zODY5MzMsIDAuNDkwMzc4LCAwLjU5Mzc5NiwgMC42OTcyMjUiLCBcCi0gICAgICAgICAgIjAuMTA2MTgyLCAwLjIxMTI4MSwgMC4yOTQwNiwgMC4zOTc1MSwgMC41MDA5MzksIDAuNjA0MzkzLCAwLjcwNzgyNCIsIFwKLSAgICAgICAgICAiMC4xMTM4NjgsIDAuMjE5MjQ0LCAwLjMwMjAyMiwgMC40MDU0NjksIDAuNTA4ODk2LCAwLjYxMjM1MSwgMC43MTU3ODQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMTExMzgsIDAuMDYxMTM4LCAwLjEwMTEzOCwgMC4xNTExMzgsIDAuMjAxMTM4LCAwLjI1MTEzOCwgMC4zMDExMzgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1MjY2NCwgMC4yNTgyMjQsIDAuNDI1MzI2LCAwLjYzNTk1NCwgMC44NDU3NiwgMS4wNTQwNywgMS4yNjM5MiIsIFwKLSAgICAgICAgICAiMC4wNTI2OTUsIDAuMjU4NjMxLCAwLjQyNTI4NywgMC42MzU4ODIsIDAuODQ0OTY4LCAxLjA1NDEzLCAxLjI2MjUzIiwgXAotICAgICAgICAgICIwLjA1Mjg3MSwgMC4yNTg2MTYsIDAuNDI1NDM2LCAwLjYzNDc1MywgMC44NDU4NDgsIDEuMDU0MTQsIDEuMjYzNjkiLCBcCi0gICAgICAgICAgIjAuMDUzNTQxLCAwLjI1ODcxNSwgMC40MjU3ODYsIDAuNjM1NjY3LCAwLjg0NDMzLCAxLjA1MzI2LCAxLjI2MzUyIiwgXAotICAgICAgICAgICIwLjA1NDM2NSwgMC4yNTg5MTEsIDAuNDI2MDMzLCAwLjYzNTgzNywgMC44NDQ3NDEsIDEuMDU1NjMsIDEuMjY1NTQiLCBcCi0gICAgICAgICAgIjAuMDU1NjE2LCAwLjI1ODc5NSwgMC40MjU2MzQsIDAuNjM1NjY3LCAwLjg0NTE4OSwgMS4wNTQyOSwgMS4yNjU3IiwgXAotICAgICAgICAgICIwLjA1Njc3MiwgMC4yNTkxODIsIDAuNDI1ODE4LCAwLjYzNTQ3MSwgMC44NDQzODEsIDEuMDU1MzYsIDEuMjYyNjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiT0UiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHRocmVlX3N0YXRlX2VuYWJsZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMTExMzg0LCAwLjA2MTEzODQsIDAuMTAxMTM4LCAwLjE1MTEzOCwgMC4yMDExMzgsIDAuMjUxMTM4LCAwLjMwMTEzOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY2NjY1LCAwLjE2OTY3MSwgMC4yNTEwMDcsIDAuMzUyNjY2LCAwLjQ1NDMwMiwgMC41NTU5NiwgMC42NTc2MTMiLCBcCi0gICAgICAgICAgIjAuMDc1NjY1LCAwLjE3ODY4OCwgMC4yNjAwNDEsIDAuMzYxNzA5LCAwLjQ2MzMxNSwgMC41NjQ5NjUsIDAuNjY2NjMxIiwgXAotICAgICAgICAgICIwLjA4NzQxLCAwLjE5MDQ0NywgMC4yNzE3OTIsIDAuMzczNDczLCAwLjQ3NTEwMywgMC41NzY3MzQsIDAuNjc4Mzg5IiwgXAotICAgICAgICAgICIwLjA5ODkwNCwgMC4yMDE5NjQsIDAuMjgzMzQxLCAwLjM4NDk5LCAwLjQ4NjU5MywgMC41ODgyNDEsIDAuNjg5OTEiLCBcCi0gICAgICAgICAgIjAuMTA5MjA2LCAwLjIxMjM5NSwgMC4yOTM3MTEsIDAuMzk1NDEzLCAwLjQ5NzA4NSwgMC41OTg2NDEsIDAuNzAwMzk5IiwgXAotICAgICAgICAgICIwLjEyMzY2MiwgMC4yMjcxMTQsIDAuMzA4NDIsIDAuNDEwMTEyLCAwLjUxMTcyNCwgMC42MTMzMzIsIDAuNzE1MDA2IiwgXAotICAgICAgICAgICIwLjEzNDY2NCwgMC4yMzg1MzYsIDAuMzE5NzgzLCAwLjQyMTU2LCAwLjUyMzE3NCwgMC42MjQ3MzcsIDAuNzI2MzMiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMTExMzg0LCAwLjA2MTEzODQsIDAuMTAxMTM4LCAwLjE1MTEzOCwgMC4yMDExMzgsIDAuMjUxMTM4LCAwLjMwMTEzOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU1NjQyLCAwLjI1OTgzNCwgMC40MjY1NzMsIDAuNjM2MDE3LCAwLjg0NTY4MywgMS4wNTUzMywgMS4yNjQxNSIsIFwKLSAgICAgICAgICAiMC4wNTU2MDIsIDAuMjU5ODI1LCAwLjQyNjUyNywgMC42MzY4MzQsIDAuODQ2NjIsIDEuMDU1MzgsIDEuMjY0NjMiLCBcCi0gICAgICAgICAgIjAuMDU1NjU4LCAwLjI1OTgwNCwgMC40MjcwNjYsIDAuNjM2NzM0LCAwLjg0NTU4NywgMS4wNTY0NSwgMS4yNjQ2NyIsIFwKLSAgICAgICAgICAiMC4wNTYwOTQsIDAuMjU5ODY2LCAwLjQyNzA5NiwgMC42MzY3NDIsIDAuODQ2NTE4LCAxLjA1NTM2LCAxLjI2NDY0IiwgXAotICAgICAgICAgICIwLjA1NzExNywgMC4yNTk3NDksIDAuNDI3MDU2LCAwLjYzNjc5LCAwLjg0NjY4OCwgMS4wNTU0LCAxLjI2NDM4IiwgXAotICAgICAgICAgICIwLjA1OTIwNCwgMC4yNjA0NzcsIDAuNDI2NzMsIDAuNjM1ODA1LCAwLjg0NjU4MiwgMS4wNTYwOCwgMS4yNjQzNCIsIFwKLSAgICAgICAgICAiMC4wNjA3NTQsIDAuMjYwODk5LCAwLjQyNzAxOSwgMC42MzU3MzIsIDAuODQ2NzE1LCAxLjA1NjQ3LCAxLjI2NTA2Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDExMTM4LCAwLjA2MTEzOCwgMC4xMDExMzgsIDAuMTUxMTM4LCAwLjIwMTEzOCwgMC4yNTExMzgsIDAuMzAxMTM4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjk0ODMsIDAuMTczODUzLCAwLjI1NjY4LCAwLjM2MDA5NSwgMC40NjM2MjQsIDAuNTY3MDI2LCAwLjY3MDQ0MiIsIFwKLSAgICAgICAgICAiMC4wNzkyNzIsIDAuMTgzNjQ2LCAwLjI2NjQ0OCwgMC4zNjk4NjYsIDAuNDczMzI3LCAwLjU3NjgzOCwgMC42ODAyNzMiLCBcCi0gICAgICAgICAgIjAuMDg5NTI2LCAwLjE5Mzg4LCAwLjI3NjY3NSwgMC4zODAxMDQsIDAuNDgzNTQ5LCAwLjU4NzAxOCwgMC42OTA0NDYiLCBcCi0gICAgICAgICAgIjAuMDk3NjM1LCAwLjIwMTk5OSwgMC4yODQ3NzQsIDAuMzg4MjMzLCAwLjQ5MTY2MSwgMC41OTUxMTUsIDAuNjk4NTM5IiwgXAotICAgICAgICAgICIwLjEwNDM4NywgMC4yMDg3NzQsIDAuMjkxNTMyLCAwLjM5NDk4MiwgMC40OTg0MDcsIDAuNjAxODY3LCAwLjcwNTMiLCBcCi0gICAgICAgICAgIjAuMTE0MDQ4LCAwLjIxODQyNSwgMC4zMDExNjgsIDAuNDA0NDE0LCAwLjUwNzg2MywgMC42MTE0OTcsIDAuNzE0NzI4IiwgXAotICAgICAgICAgICIwLjEyMTM3OCwgMC4yMjU3NDQsIDAuMzA4NDU3LCAwLjQxMTkwMywgMC41MTUzNTcsIDAuNjE4Nzg3LCAwLjcyMjI1NCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxMTEzOCwgMC4wNjExMzgsIDAuMTAxMTM4LCAwLjE1MTEzOCwgMC4yMDExMzgsIDAuMjUxMTM4LCAwLjMwMTEzOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDUzMTcyLCAwLjI1ODc2NCwgMC40MjUzMDQsIDAuNjM2MDU0LCAwLjg0NDA5NSwgMS4wNTY1NiwgMS4yNjQzNyIsIFwKLSAgICAgICAgICAiMC4wNTMxNTEsIDAuMjU4Nzk0LCAwLjQyNTE4OSwgMC42MzYxNjksIDAuODQ0ODgzLCAxLjA1MzU4LCAxLjI2NjY3IiwgXAotICAgICAgICAgICIwLjA1MzE1NSwgMC4yNTg3NTQsIDAuNDI1MzQ5LCAwLjYzNjE1OCwgMC44NDQ3NTEsIDEuMDUzOTYsIDEuMjY0OTUiLCBcCi0gICAgICAgICAgIjAuMDUzMTQ4LCAwLjI1ODc1LCAwLjQyNTUxLCAwLjYzNjAzNywgMC44NDQ2MTksIDEuMDU0ODEsIDEuMjY0MDgiLCBcCi0gICAgICAgICAgIjAuMDUzMTczLCAwLjI1ODQwOSwgMC40MjU2MDcsIDAuNjM1ODI2LCAwLjg0NTM4MiwgMS4wNTYwMywgMS4yNjYxMyIsIFwKLSAgICAgICAgICAiMC4wNTM0NjQsIDAuMjU4MzM2LCAwLjQyNTU4LCAwLjYzNTMwMSwgMC44NDQwNDMsIDEuMDU0MzgsIDEuMjYzOTgiLCBcCi0gICAgICAgICAgIjAuMDUzMjQ5LCAwLjI1ODA3MiwgMC40MjU1MiwgMC42MzQ2MzQsIDAuODQ0NzgyLCAxLjA1NDg3LCAxLjI2NDA0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIk9FIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiB0aHJlZV9zdGF0ZV9kaXNhYmxlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDMxNzM5LCAwLjA0MTMzNSwgMC4wNTExMDcsIDAuMDU4Njk0LCAwLjA2NTAwMywgMC4wNzM3NDgsIDAuMDc5ODk2Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oc2NhbGFyKSB7Ci0gICAgICAgIHZhbHVlcygiMCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDI0NjA3LCAwLjAzNDUsIDAuMDQ2ODQyLCAwLjA1NzI0NywgMC4wNjU3MTcsIDAuMDc3NTk3LCAwLjA4NjQ5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oc2NhbGFyKSB7Ci0gICAgICAgIHZhbHVlcygiMCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDExMTM4NCwgMC4wNjExMzg0LCAwLjEwMTEzOCwgMC4xNTExMzgsIDAuMjAxMTM4LCAwLjI1MTEzOCwgMC4zMDExMzgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjYsIDAuMDAyNjIsIDAuMDAyNjIyLCAwLjAwMjYyNCwgMC4wMDI2MjMsIDAuMDAyNjI0LCAwLjAwMjYyMyIsIFwKLSAgICAgICAgICAiMC4wMDI1MzgsIDAuMDAyNTY4LCAwLjAwMjU3LCAwLjAwMjU3MiwgMC4wMDI1NzMsIDAuMDAyNTczLCAwLjAwMjU3NCIsIFwKLSAgICAgICAgICAiMC4wMDI1MDIsIDAuMDAyNTQ0LCAwLjAwMjU1LCAwLjAwMjU1MSwgMC4wMDI1NTIsIDAuMDAyNTU0LCAwLjAwMjU1NSIsIFwKLSAgICAgICAgICAiMC4wMDI0OSwgMC4wMDI1NCwgMC4wMDI1NDYsIDAuMDAyNTUsIDAuMDAyNTUxLCAwLjAwMjU1MywgMC4wMDI1NTQiLCBcCi0gICAgICAgICAgIjAuMDAyNDg5LCAwLjAwMjU0NCwgMC4wMDI1NDksIDAuMDAyNTU2LCAwLjAwMjU1NywgMC4wMDI1NTksIDAuMDAyNTYiLCBcCi0gICAgICAgICAgIjAuMDAyNTA1LCAwLjAwMjU2NCwgMC4wMDI1NzQsIDAuMDAyNTc4LCAwLjAwMjU4MSwgMC4wMDI1ODMsIDAuMDAyNTg0IiwgXAotICAgICAgICAgICIwLjAwMjUyNiwgMC4wMDI1ODcsIDAuMDAyNTk5LCAwLjAwMjYwNiwgMC4wMDI2MDksIDAuMDAyNjA5LCAwLjAwMjYxMiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDExMTM4LCAwLjA2MTEzOCwgMC4xMDExMzgsIDAuMTUxMTM4LCAwLjIwMTEzOCwgMC4yNTExMzgsIDAuMzAxMTM4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDUxNTgsIDAuMDA1MjA5LCAwLjAwNTIxNCwgMC4wMDUyMTcsIDAuMDA1MjE5LCAwLjAwNTIxOSwgMC4wMDUyMiIsIFwKLSAgICAgICAgICAiMC4wMDUxMDksIDAuMDA1MTcxLCAwLjAwNTE3OCwgMC4wMDUxODEsIDAuMDA1MTgzLCAwLjAwNTE4NCwgMC4wMDUxODUiLCBcCi0gICAgICAgICAgIjAuMDA1MDc2LCAwLjAwNTE1MSwgMC4wMDUxNjEsIDAuMDA1MTY2LCAwLjAwNTE2OSwgMC4wMDUxNzEsIDAuMDA1MTcyIiwgXAotICAgICAgICAgICIwLjAwNTA2OCwgMC4wMDUxNDcsIDAuMDA1MTU5LCAwLjAwNTE2NSwgMC4wMDUxNjgsIDAuMDA1MTcsIDAuMDA1MTcyIiwgXAotICAgICAgICAgICIwLjAwNTA3MywgMC4wMDUxNSwgMC4wMDUxNjIsIDAuMDA1MTY5LCAwLjAwNTE3MywgMC4wMDUxNzUsIDAuMDA1MTc3IiwgXAotICAgICAgICAgICIwLjAwNTA5LCAwLjAwNTE2MSwgMC4wMDUxNzYsIDAuMDA1MTg0LCAwLjAwNTE4OSwgMC4wMDUxOTEsIDAuMDA1MTkzIiwgXAotICAgICAgICAgICIwLjAwNTExOSwgMC4wMDUxODQsIDAuMDA1MTk4LCAwLjAwNTIwNywgMC4wMDUyMDksIDAuMDA1MjE0LCAwLjAwNTIxNiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIk9FIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxMTEzODQsIDAuMDYxMTM4NCwgMC4xMDExMzgsIDAuMTUxMTM4LCAwLjIwMTEzOCwgMC4yNTExMzgsIDAuMzAxMTM4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI0MzMsIDAuMDAyNDI0LCAwLjAwMjM5NCwgMC4wMDIzOTYsIDAuMDAyMzc3LCAwLjAwMjM3LCAwLjAwMjMzOCIsIFwKLSAgICAgICAgICAiMC4wMDIzNzksIDAuMDAyMzY5LCAwLjAwMjM1MiwgMC4wMDIzNDMsIDAuMDAyMzI2LCAwLjAwMjI5MSwgMC4wMDIyODIiLCBcCi0gICAgICAgICAgIjAuMDAyMzczLCAwLjAwMjM2NywgMC4wMDIzNTYsIDAuMDAyMzQxLCAwLjAwMjMwNiwgMC4wMDIzMDYsIDAuMDAyMjg0IiwgXAotICAgICAgICAgICIwLjAwMjM3NCwgMC4wMDIzNjUsIDAuMDAyMzU1LCAwLjAwMjM0LCAwLjAwMjMyMywgMC4wMDIyODIsIDAuMDAyMjg3IiwgXAotICAgICAgICAgICIwLjAwMjM5NywgMC4wMDIzODUsIDAuMDAyMzU5LCAwLjAwMjM2LCAwLjAwMjM0NSwgMC4wMDIzMjcsIDAuMDAyMzA0IiwgXAotICAgICAgICAgICIwLjAwMjQzNiwgMC4wMDI0MjcsIDAuMDAyNDIsIDAuMDAyMzk3LCAwLjAwMjM4NSwgMC4wMDIzNTYsIDAuMDAyMzIzIiwgXAotICAgICAgICAgICIwLjAwMjQ3NSwgMC4wMDI0NjcsIDAuMDAyNDM4LCAwLjAwMjQyOCwgMC4wMDI0MjIsIDAuMDAyNDA0LCAwLjAwMjM1NiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDExMTM4LCAwLjA2MTEzOCwgMC4xMDExMzgsIDAuMTUxMTM4LCAwLjIwMTEzOCwgMC4yNTExMzgsIDAuMzAxMTM4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI2NywgMC4wMDI2NywgMC4wMDI2NjksIDAuMDAyNjcsIDAuMDAyNjcsIDAuMDAyNjcsIDAuMDAyNjciLCBcCi0gICAgICAgICAgIjAuMDAyNjM1LCAwLjAwMjYzNSwgMC4wMDI2MzUsIDAuMDAyNjM1LCAwLjAwMjYzNSwgMC4wMDI2MzUsIDAuMDAyNjM1IiwgXAotICAgICAgICAgICIwLjAwMjYzNSwgMC4wMDI2MzUsIDAuMDAyNjM1LCAwLjAwMjYzNSwgMC4wMDI2MzUsIDAuMDAyNjM1LCAwLjAwMjYzNSIsIFwKLSAgICAgICAgICAiMC4wMDI2MzksIDAuMDAyNjM5LCAwLjAwMjYzOSwgMC4wMDI2MzksIDAuMDAyNjM5LCAwLjAwMjYzOSwgMC4wMDI2MzkiLCBcCi0gICAgICAgICAgIjAuMDAyNjUzLCAwLjAwMjY1MywgMC4wMDI2NTMsIDAuMDAyNjUzLCAwLjAwMjY1MywgMC4wMDI2NTMsIDAuMDAyNjUzIiwgXAotICAgICAgICAgICIwLjAwMjY4LCAwLjAwMjY3OSwgMC4wMDI2OCwgMC4wMDI2NzYsIDAuMDAyNjc2LCAwLjAwMjY4LCAwLjAwMjY3NiIsIFwKLSAgICAgICAgICAiMC4wMDI3MDQsIDAuMDAyNzA0LCAwLjAwMjcsIDAuMDAyNywgMC4wMDI3LCAwLjAwMjcsIDAuMDAyNzA0Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBUTEFUTkNBWDQgKgotICogLS0tLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChUTEFUTkNBWDQpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4zNTY1MTI7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgY2xvY2tfZ2F0aW5nX2ludGVncmF0ZWRfY2VsbCA6ICJsYXRjaF9wb3NlZGdlIjsKLSAgc3RhdGV0YWJsZSgiIENLICBFICIsICIgRUlOVCAiKSB7Ci0gICAgIHRhYmxlIDogIiAgTCAgTCA6IC0gOiBMICwgXAotICAgICAgICAgICAgICAgIEwgIEggOiAtIDogSCAsIFwKLSAgICAgICAgICAgICAgICBIICAtIDogLSA6IE4gIjsKLSAgfQotICBwaW4oRUlOVCkgewotICAgIGRpcmVjdGlvbiA6IGludGVybmFsOwotICAgIGludGVybmFsX25vZGUgOiAiRUlOVCI7Ci0gIH0KLSAgcGluKENLKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA1NzgzNzI7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNTc4MTg7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNTc4MzcyOwotICAgIGNsb2NrX2dhdGVfY2xvY2tfcGluIDogdHJ1ZTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDIzODQsIDAuMDAyMzU3LCAwLjAwMjM0MiwgMC4wMDIzNDYsIDAuMDAyMzUzLCAwLjAwMjM3OSwgMC4wMDI0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzNDE2LCAwLjAwMzM4OSwgMC4wMDMzNzksIDAuMDAzMzg1LCAwLjAwMzM5NCwgMC4wMDM0MTksIDAuMDAzNDQyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRSI7Ci0gICAgICBzZGZfY29uZCA6ICJFID09IDEnYjAiOwotICAgICAgZmFsbF9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDk5NzQ0LCAwLjEwOTYxNSwgMC4xMjEzMDQsIDAuMTMwODg5LCAwLjEzOTgzNSwgMC4xNTEwNzgsIDAuMTU5NjgyIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihFKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA1OTcxMTc7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNTk1NjgzOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDU5NzExNzsKLSAgICBjbG9ja19nYXRlX2VuYWJsZV9waW4gOiB0cnVlOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjY1NiwgMC4wMDI2MzQsIDAuMDAyNjI0LCAwLjAwMjYxNywgMC4wMDI2MiwgMC4wMDI2MiwgMC4wMDI2MjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDMwNDUsIDAuMDAzMDMyLCAwLjAwMzAyNSwgMC4wMDMwMjIsIDAuMDAzMDIxLCAwLjAwMzAyMiwgMC4wMDMwMjciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMzEyNSwgLTAuMDIsIC0wLjAxMzc1LCAtMC4wMDc1LCAtMC4wMDc1LCAwLjAwMjUsIDAuMDA1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwODc1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAyNSwgLTAuMDE1LCAtMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wNjEyNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDI3NSwgLTAuMDI1IiwgXAotICAgICAgICAgICItMC4wNjc1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wNDM3NSwgLTAuMDMzNzUsIC0wLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wNzc1LCAtMC4wNzI1LCAtMC4wNjYyNSwgLTAuMDYsIC0wLjA1Mzc1LCAtMC4wNDM3NSwgLTAuMDQxMjUiLCBcCi0gICAgICAgICAgIi0wLjA5MjUsIC0wLjA4MTI1LCAtMC4wNzUsIC0wLjA2ODc1LCAtMC4wNjI1LCAtMC4wNTg3NSwgLTAuMDUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMDYyNSwgMC4wMDUsIDAuMDE3NSwgMC4wMjM3NSwgMC4wMzYyNSwgMC4wNDYyNSwgMC4wNTUiLCBcCi0gICAgICAgICAgIi0wLjAxNzUsIC0wLjAwNjI1LCAwLjAwNjI1LCAwLjAxODc1LCAwLjAyNSwgMC4wNDEyNSwgMC4wNSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxMjUsIDAsIDAuMDA2MjUsIDAuMDE4NzUsIDAuMDI4NzUsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAyNSwgLTAuMDEyNSwgMCwgMC4wMDYyNSwgMC4wMjI1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLCAwLjAxLCAwLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDUyNSwgLTAuMDQxMjUsIC0wLjAyODc1LCAtMC4wMTYyNSwgLTAuMDEsIDAsIDAuMDA4NzUiLCBcCi0gICAgICAgICAgIi0wLjA2MTI1LCAtMC4wNSwgLTAuMDM3NSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDA4NzUsIDAuMDA2MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM3NSwgMC4wMjYyNSwgMC4wMiwgMC4wMTM3NSwgMC4wMTM3NSwgMC4wMDM3NSwgMC4wMDEyNSIsIFwKLSAgICAgICAgICAiMC4wNDI1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDI1LCAwLjAxODc1LCAwLjAxNSwgMC4wMTI1IiwgXAotICAgICAgICAgICIwLjA1NSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAzMTI1LCAwLjAyMTI1LCAwLjAxODc1IiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDU2MjUsIDAuMDUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzM3NSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4wNzM3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1LCAwLjA1LCAwLjA0LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIjAuMDgzNzUsIDAuMDc4NzUsIDAuMDcyNSwgMC4wNjYyNSwgMC4wNiwgMC4wNSwgMC4wNDc1IiwgXAotICAgICAgICAgICIwLjA5ODc1LCAwLjA4NzUsIDAuMDgxMjUsIDAuMDc1LCAwLjA2ODc1LCAwLjA2NSwgMC4wNTYyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMjUsIDAuMDAxMjUsIC0wLjAxMTI1LCAtMC4wMTc1LCAtMC4wMywgLTAuMDQsIC0wLjA0ODc1IiwgXAotICAgICAgICAgICIwLjAyMzc1LCAwLjAxMjUsIDAsIC0wLjAxMjUsIC0wLjAxODc1LCAtMC4wMzUsIC0wLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjAzLCAwLjAxODc1LCAwLjAwNjI1LCAwLCAtMC4wMTI1LCAtMC4wMjI1LCAtMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4wNDI1LCAwLjAzMTI1LCAwLjAxODc1LCAwLjAwNjI1LCAwLCAtMC4wMTYyNSwgLTAuMDI1IiwgXAotICAgICAgICAgICIwLjA0ODc1LCAwLjAzNzUsIDAuMDI1LCAwLjAxMjUsIDAuMDA2MjUsIC0wLjAwMzc1LCAtMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4wNTg3NSwgMC4wNDc1LCAwLjAzNSwgMC4wMjI1LCAwLjAxNjI1LCAwLjAwNjI1LCAtMC4wMDI1IiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDU2MjUsIDAuMDQzNzUsIDAuMDMxMjUsIDAuMDI1LCAwLjAxNSwgMCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRUNLKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDEuMDM1NzY7Ci0gICAgY2xvY2tfZ2F0ZV9vdXRfcGluIDogdHJ1ZTsKLSAgICBzdGF0ZV9mdW5jdGlvbiA6ICIoQ0sgRUlOVCkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwODA3NSwgMC4xODQ5ODIsIDAuMjU3NzE0LCAwLjMwOTYzMiwgMC4zOTI3MzgsIDAuNDY1MzYyLCAwLjU2OTI3OCIsIFwKLSAgICAgICAgICAiMC4xMTgzMDYsIDAuMTk1MjE0LCAwLjI2Nzk1NCwgMC4zMTk4NjEsIDAuNDAyOTcxLCAwLjQ3NTU5NCwgMC41Nzk1MSIsIFwKLSAgICAgICAgICAiMC4xMzA0ODYsIDAuMjA3NDQzLCAwLjI4MDE4NSwgMC4zMzIwOTUsIDAuNDE1MjYxLCAwLjQ4NzgzMywgMC41OTE3MzMiLCBcCi0gICAgICAgICAgIjAuMTQxMTk3LCAwLjIxODE5NywgMC4yOTA5MzYsIDAuMzQyODQyLCAwLjQyNTk4NCwgMC40OTg1NzQsIDAuNjAyNDE1IiwgXAotICAgICAgICAgICIwLjE1MDM5NiwgMC4yMjczOTEsIDAuMzAwMTIxLCAwLjM1MjAyOCwgMC40MzUwOTksIDAuNTA3NzU1LCAwLjYxMTU3NCIsIFwKLSAgICAgICAgICAiMC4xNjMzODUsIDAuMjQwMjQ1LCAwLjMxMjk4MiwgMC4zNjQ4ODgsIDAuNDQ3OTUsIDAuNTIwNzMsIDAuNjI0MzkxIiwgXAotICAgICAgICAgICIwLjE3MzIwOSwgMC4yNTAxNDQsIDAuMzIyODY5LCAwLjM3NDc4LCAwLjQ1NzkwOCwgMC41MzA1MDIsIDAuNjM0MzE4Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM4NzExLCAwLjE4MzIwMiwgMC4zMzI1MzEsIDAuNDQwNDQ2LCAwLjYxMTkwMiwgMC43NjM4MDUsIDAuOTc4MjQxIiwgXAotICAgICAgICAgICIwLjAzODcwOSwgMC4xODMyMDMsIDAuMzMyMzUyLCAwLjQzOTk3OSwgMC42MTE5MDIsIDAuNzYzNzk2LCAwLjk3ODEwMyIsIFwKLSAgICAgICAgICAiMC4wMzg3MDUsIDAuMTgzMjA0LCAwLjMzMjM2NiwgMC40NDA0NiwgMC42MTE2OTMsIDAuNzY0MzMxLCAwLjk3ODIzNSIsIFwKLSAgICAgICAgICAiMC4wMzg2NywgMC4xODMxODgsIDAuMzMyNzc4LCAwLjQ0MDMxMywgMC42MTE4NDksIDAuNzY0MjgxLCAwLjk3ODY0NSIsIFwKLSAgICAgICAgICAiMC4wMzg2NjgsIDAuMTgzMTk5LCAwLjMzMjc0NSwgMC40NDAzMjcsIDAuNjEzMDk2LCAwLjc2Mzc3MiwgMC45ODAyOTMiLCBcCi0gICAgICAgICAgIjAuMDM4Nzk3LCAwLjE4MzIyNCwgMC4zMzI3ODQsIDAuNDQwMzM4LCAwLjYxMjI3MiwgMC43NjI5MDEsIDAuOTc5Njk2IiwgXAotICAgICAgICAgICIwLjAzODY2NiwgMC4xODMyMSwgMC4zMzI3NzIsIDAuNDM5ODksIDAuNjExODg3LCAwLjc2NDE3MSwgMC45Nzg4NzUiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTEzMTEsIDAuMTY2MDAxLCAwLjIzOTI5NiwgMC4yOTE2NzksIDAuMzc1NDY3LCAwLjQ0ODgyLCAwLjU1MzU2NyIsIFwKLSAgICAgICAgICAiMC4xMDExNjUsIDAuMTc1ODU0LCAwLjI0OTE0OSwgMC4zMDE1MTUsIDAuMzg1MzQ2LCAwLjQ1ODY0OSwgMC41NjM0MzYiLCBcCi0gICAgICAgICAgIjAuMTEyODQ5LCAwLjE4NzUzOSwgMC4yNjA4MjgsIDAuMzEzMjI1LCAwLjM5NzA0MywgMC40NzAzNDQsIDAuNTc1MSIsIFwKLSAgICAgICAgICAiMC4xMjI0OTksIDAuMTk3MTg4LCAwLjI3MDQ4MywgMC4zMjI4NzUsIDAuNDA2Njg3LCAwLjQ4MDAwNiwgMC41ODQ3NSIsIFwKLSAgICAgICAgICAiMC4xMzE0NywgMC4yMDYxNjIsIDAuMjc5NDQ2LCAwLjMzMTgzMiwgMC40MTU2NjgsIDAuNDg4OTY4LCAwLjU5MzcxOCIsIFwKLSAgICAgICAgICAiMC4xNDI4MTEsIDAuMjE3NDk1LCAwLjI5MDc4LCAwLjM0MzE0OCwgMC40MjY5NTcsIDAuNTAwMzEsIDAuNjA1MDkxIiwgXAotICAgICAgICAgICIwLjE1MTM3LCAwLjIyNjA3OSwgMC4yOTkzNjQsIDAuMzUxNzM4LCAwLjQzNTU0NCwgMC41MDg4OTIsIDAuNjEzNjc0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDMyMDU0LCAwLjE3NzE2OSwgMC4zMjQ5MzksIDAuNDMxOTkzLCAwLjYwMTE0NSwgMC43NDkyNDMsIDAuOTYzODI3IiwgXAotICAgICAgICAgICIwLjAzMjA1NiwgMC4xNzcxMzQsIDAuMzI1MDc2LCAwLjQzMTk0OCwgMC42MDE3NDQsIDAuNzUwMDYxLCAwLjk2MjAwNiIsIFwKLSAgICAgICAgICAiMC4wMzIwNzYsIDAuMTc3MTI5LCAwLjMyNDkxMywgMC40MzE5MTUsIDAuNjAxMDIyLCAwLjc1MDk4NSwgMC45NjIwNzMiLCBcCi0gICAgICAgICAgIjAuMDMyMDYxLCAwLjE3NzE0MywgMC4zMjUwNzcsIDAuNDMxMDQ2LCAwLjYwMTA1MiwgMC43NDkyMjMsIDAuOTYyODExIiwgXAotICAgICAgICAgICIwLjAzMjA0OCwgMC4xNzcwMzgsIDAuMzI0ODg3LCAwLjQzMTE3OSwgMC42MDExMywgMC43NTAwMTcsIDAuOTYzNTQ1IiwgXAotICAgICAgICAgICIwLjAzMjA5NiwgMC4xNzcyMzMsIDAuMzI1NjE1LCAwLjQzMTk3MywgMC42MDExNjIsIDAuNzQ5Mzg1LCAwLjk2MjI2OCIsIFwKLSAgICAgICAgICAiMC4wMzIwODgsIDAuMTc2NzQ3LCAwLjMyNTYsIDAuNDMxODY0LCAwLjYwMjA4NiwgMC43NDkyMDgsIDAuOTYzODU1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA3MDk0LCAwLjAwNzI0NywgMC4wMDcyNTQsIDAuMDA3MjU2LCAwLjAwNzI1NSwgMC4wMDcyNTMsIDAuMDA3MjUzIiwgXAotICAgICAgICAgICIwLjAwNzA2MywgMC4wMDcyMTYsIDAuMDA3MjI2LCAwLjAwNzIyNSwgMC4wMDcyMjYsIDAuMDA3MjIzLCAwLjAwNzIyMyIsIFwKLSAgICAgICAgICAiMC4wMDcwNTIsIDAuMDA3MjA2LCAwLjAwNzIxNCwgMC4wMDcyMTUsIDAuMDA3MjE0LCAwLjAwNzIxMywgMC4wMDcyMTIiLCBcCi0gICAgICAgICAgIjAuMDA3MDU4LCAwLjAwNzIxMywgMC4wMDcyMjIsIDAuMDA3MjI1LCAwLjAwNzIyMiwgMC4wMDcyMjEsIDAuMDA3MjE4IiwgXAotICAgICAgICAgICIwLjAwNzA3MiwgMC4wMDcyMjgsIDAuMDA3MjM4LCAwLjAwNzIzOCwgMC4wMDcyMzcsIDAuMDA3MjM4LCAwLjAwNzIzNCIsIFwKLSAgICAgICAgICAiMC4wMDcwNzksIDAuMDA3MjQyLCAwLjAwNzI1LCAwLjAwNzI1MiwgMC4wMDcyNTEsIDAuMDA3MjUsIDAuMDA3MjQ4IiwgXAotICAgICAgICAgICIwLjAwNzExLCAwLjAwNzI2NywgMC4wMDcyODMsIDAuMDA3Mjc4LCAwLjAwNzI3OSwgMC4wMDcyODEsIDAuMDA3Mjc3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTExMzksIDAuMDExMzE0LCAwLjAxMTMyNiwgMC4wMTEzMjksIDAuMDExMzMsIDAuMDExMzMxLCAwLjAxMTMzMSIsIFwKLSAgICAgICAgICAiMC4wMTExMTIsIDAuMDExMjg5LCAwLjAxMTMwMSwgMC4wMTEzMDMsIDAuMDExMzA1LCAwLjAxMTMwNSwgMC4wMTEzMDYiLCBcCi0gICAgICAgICAgIjAuMDExMTA3LCAwLjAxMTI4NCwgMC4wMTEyOTYsIDAuMDExMjk4LCAwLjAxMTMsIDAuMDExMywgMC4wMTEzMDEiLCBcCi0gICAgICAgICAgIjAuMDExMSwgMC4wMTEyNzcsIDAuMDExMjg5LCAwLjAxMTI5MiwgMC4wMTEyOTMsIDAuMDExMjkzLCAwLjAxMTI5NCIsIFwKLSAgICAgICAgICAiMC4wMTExMDYsIDAuMDExMjg4LCAwLjAxMTMwMSwgMC4wMTEzMDQsIDAuMDExMzA1LCAwLjAxMTMwNiwgMC4wMTEzMDYiLCBcCi0gICAgICAgICAgIjAuMDExMTIxLCAwLjAxMTMwNywgMC4wMTEzMjEsIDAuMDExMzIzLCAwLjAxMTMyNSwgMC4wMTEzMjUsIDAuMDExMzI1IiwgXAotICAgICAgICAgICIwLjAxMTEzNiwgMC4wMTEzMTcsIDAuMDExMzMxLCAwLjAxMTMzMywgMC4wMTEzMzUsIDAuMDExMzM1LCAwLjAxMTMzNiIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IFRMQVROWDEgKgotICogLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoVExBVE5YMSkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjI2MDcyNzsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBsYXRjaCAoUUlOVCxOMCkgewotICAgIGRhdGFfaW4gOiAiRCI7Ci0gICAgZW5hYmxlIDogIighR04pIjsKLSAgfQotICBwaW4oRCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjcwMzYxOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDY2ODcwNDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2NzAzNjE7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjE4LCAwLjAwMDIyMSwgMC4wMDAyMjEsIDAuMDAwMjIyLCAwLjAwMDIyMiwgMC4wMDAyMjIsIDAuMDAwMjIyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjM0LCAwLjAwMDIyOCwgMC4wMDAyMjgsIDAuMDAwMjI4LCAwLjAwMDIyNywgMC4wMDAyMjcsIDAuMDAwMjI3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkdOIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDMxMjUsIC0wLjAyLCAtMC4wMTM3NSwgLTAuMDA3NSwgLTAuMDAxMjUsIDAuMDAyNSwgMC4wMDUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDI1LCAwIiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxNSwgLTAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMjEyNSwgLTAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjA2NzUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzMzc1LCAtMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjA3NzUsIC0wLjA3MjUsIC0wLjA2LCAtMC4wNTM3NSwgLTAuMDUzNzUsIC0wLjA0Mzc1LCAtMC4wNDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDkyNSwgLTAuMDgxMjUsIC0wLjA3NSwgLTAuMDY4NzUsIC0wLjA2MjUsIC0wLjA1MjUsIC0wLjA1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDEyNSwgLTAuMDAxMjUsIDAuMDExMjUsIDAuMDIzNzUsIDAuMDMsIDAuMDQ2MjUsIDAuMDU1IiwgXAotICAgICAgICAgICItMC4wMTc1LCAtMC4wMDYyNSwgMC4wMDYyNSwgMC4wMTI1LCAwLjAyNSwgMC4wMzUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAuMDA2MjUsIDAuMDEyNSwgMC4wMjg3NSwgMC4wMzc1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDI1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMC4wMDYyNSwgMC4wMTYyNSwgMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAxMjUsIDAsIDAuMDEsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjA1ODc1LCAtMC4wNDc1LCAtMC4wMzUsIC0wLjAyMjUsIC0wLjAxNjI1LCAwLCAwLjAwODc1IiwgXAotICAgICAgICAgICItMC4wNjc1LCAtMC4wNTYyNSwgLTAuMDQzNzUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAwODc1LCAwIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkdOIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0Mzc1LCAwLjAzMjUsIDAuMDI2MjUsIDAuMDI2MjUsIDAuMDIsIDAuMDE2MjUsIDAuMDEzNzUiLCBcCi0gICAgICAgICAgIjAuMDQ4NzUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMzEyNSwgMC4wMjc1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiMC4wNjEyNSwgMC4wNSwgMC4wNDM3NSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzMzc1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICIwLjA3Mzc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDUsIDAuMDUsIDAuMDQsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiMC4wOCwgMC4wNjg3NSwgMC4wNjI1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDUyNSwgMC4wNSIsIFwKLSAgICAgICAgICAiMC4wOSwgMC4wODUsIDAuMDc4NzUsIDAuMDcyNSwgMC4wNjYyNSwgMC4wNjI1LCAwLjA2IiwgXAotICAgICAgICAgICIwLjEwNSwgMC4wOTM3NSwgMC4wODc1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNzEyNSwgMC4wNjg3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyNSwgMC4wMTM3NSwgMC4wMDEyNSwgLTAuMDA1LCAtMC4wMTc1LCAtMC4wMjc1LCAtMC4wNDI1IiwgXAotICAgICAgICAgICIwLjAzNjI1LCAwLjAyNSwgMC4wMTI1LCAwLCAtMC4wMTI1LCAtMC4wMjI1LCAtMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4wNDI1LCAwLjAzMTI1LCAwLjAxODc1LCAwLjAwNjI1LCAwLCAtMC4wMSwgLTAuMDI1IiwgXAotICAgICAgICAgICIwLjA1NSwgMC4wNDM3NSwgMC4wMzEyNSwgMC4wMTg3NSwgMC4wMDYyNSwgLTAuMDAzNzUsIC0wLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMDYxMjUsIDAuMDUsIDAuMDM3NSwgMC4wMjUsIDAuMDE4NzUsIDAuMDAyNSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMDcxMjUsIDAuMDYsIDAuMDQ3NSwgMC4wMzUsIDAuMDI4NzUsIDAuMDEyNSwgMC4wMDM3NSIsIFwKLSAgICAgICAgICAiMC4wOCwgMC4wNjg3NSwgMC4wNTYyNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAyMTI1LCAwLjAxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEdOKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA1NzM4MDI7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNTczMzY3OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDU3MzgwMjsKLSAgICBjbG9jayA6IHRydWU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxODQyLCAwLjAwMTgxNCwgMC4wMDE4MDIsIDAuMDAxODA5LCAwLjAwMTgyLCAwLjAwMTg0MSwgMC4wMDE4NjIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDMwNjMsIDAuMDAzMDM5LCAwLjAwMzAzLCAwLjAwMzAzNywgMC4wMDMwNDYsIDAuMDAzMDcsIDAuMDAzMDk4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkdOIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRCI7Ci0gICAgICBzZGZfY29uZCA6ICJEID09IDEnYjAiOwotICAgICAgZmFsbF9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMTY1NjYyLCAwLjE3NTUwMywgMC4xODc0MjQsIDAuMTk3NDI5LCAwLjIwNjE2NCwgMC4yMTgyMjIsIDAuMjI2OTM2Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihRKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMjY0NTE5OwotICAgIGZ1bmN0aW9uIDogIlFJTlQiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkQiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEyOTk3NiwgMC4xNTQxOTQsIDAuMjkxMzcxLCAwLjQxMjA0OSwgMC41NzM2NzIsIDAuODk2NTc2LCAxLjA5ODQiLCBcCi0gICAgICAgICAgIjAuMTM4NTEyLCAwLjE2MjcwMiwgMC4yOTk4NDcsIDAuNDIwNzkyLCAwLjU4MjM0NCwgMC45MDQ3MTQsIDEuMTA2NzQiLCBcCi0gICAgICAgICAgIjAuMTQ5MTQ4LCAwLjE3MzE5NywgMC4zMTAzOTcsIDAuNDMxMzc4LCAwLjU5Mjc1MiwgMC45MTU3MTYsIDEuMTE3NjMiLCBcCi0gICAgICAgICAgIjAuMTU5MDEsIDAuMTgzMjQ1LCAwLjMyMDM5NywgMC40NDE0MDMsIDAuNjAyOTkxLCAwLjkyNTcwOCwgMS4xMjc2MyIsIFwKLSAgICAgICAgICAiMC4xNjgyNjcsIDAuMTkyNDY2LCAwLjMyOTY1NCwgMC40NTA2MzYsIDAuNjEyMTE1LCAwLjkzNDk5MiwgMS4xMzY0MiIsIFwKLSAgICAgICAgICAiMC4xODEzNDMsIDAuMjA1NTc0LCAwLjM0MjU4MywgMC40NjM1NDcsIDAuNjI1MDM3LCAwLjk0NzcyMSwgMS4xNDk4OSIsIFwKLSAgICAgICAgICAiMC4xOTE0NDgsIDAuMjE1NTk1LCAwLjM1Mjc4NywgMC40NzM3MzcsIDAuNjM1MjY3LCAwLjk1NzkyMywgMS4xNjAxNSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODk0MjEsIDAuMTM5MDQ3LCAwLjQyMTg4OCwgMC42NzAyMTIsIDEuMDAzOTQsIDEuNjY4OTcsIDIuMDg0NTciLCBcCi0gICAgICAgICAgIjAuMDg5MzAzLCAwLjEzODc0NiwgMC40MjExODIsIDAuNjcxMjY0LCAxLjAwMzk0LCAxLjY2MzksIDIuMDgzNiIsIFwKLSAgICAgICAgICAiMC4wODkzODEsIDAuMTM4NzIsIDAuNDIxMjAxLCAwLjY3MDAwMiwgMS4wMDI0NywgMS42Njg5OCwgMi4wODQ2NCIsIFwKLSAgICAgICAgICAiMC4wODkzOTgsIDAuMTM4OTMyLCAwLjQyMTA5MSwgMC42NzAxNDMsIDEuMDAxODMsIDEuNjY4OTcsIDIuMDg0NTUiLCBcCi0gICAgICAgICAgIjAuMDg5NTE4LCAwLjEzODc0LCAwLjQyMTE1NCwgMC42Njk5OTIsIDEuMDAzOTUsIDEuNjY4OTUsIDIuMDgzMjMiLCBcCi0gICAgICAgICAgIjAuMDg5NjA5LCAwLjEzOTA1NiwgMC40MjEwODMsIDAuNjcwMzIzLCAxLjAwMzksIDEuNjY2NzgsIDIuMDg0NzEiLCBcCi0gICAgICAgICAgIjAuMDg5NTc1LCAwLjEzOTA2MywgMC40MjExMzEsIDAuNjcwMjk5LCAxLjAwMzkxLCAxLjY2NjQ0LCAyLjA4NDc1Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEzMTY0NywgMC4xNTY1NDUsIDAuMjk2NjQ4LCAwLjQyMDQzMywgMC41ODYxNTEsIDAuOTE2MjYzLCAxLjEyMjYiLCBcCi0gICAgICAgICAgIjAuMTQwMDE2LCAwLjE2NDk5NCwgMC4zMDUxMDgsIDAuNDI4OTI4LCAwLjU5NDU5MSwgMC45MjQ3MjEsIDEuMTMxMDUiLCBcCi0gICAgICAgICAgIjAuMTQ5NjYsIDAuMTc0NDcsIDAuMzE0NzMyLCAwLjQzODQ5MSwgMC42MDM2OTEsIDAuOTM0MzMzLCAxLjEzOTg1IiwgXAotICAgICAgICAgICIwLjE1ODY4MywgMC4xODM1NzgsIDAuMzIzNzM3LCAwLjQ0NzU4NiwgMC42MTI1MDEsIDAuOTQyMTEyLCAxLjE0ODI3IiwgXAotICAgICAgICAgICIwLjE2NjY4OCwgMC4xOTE2NDcsIDAuMzMxNzQ2LCAwLjQ1NTUyLCAwLjYyMTE5OCwgMC45NTEzMzUsIDEuMTU3NjgiLCBcCi0gICAgICAgICAgIjAuMTc4MDk1LCAwLjIwMjk0OSwgMC4zNDMwNTcsIDAuNDY2ODg1LCAwLjYzMjQ1NywgMC45NjI2MjksIDEuMTY4MiIsIFwKLSAgICAgICAgICAiMC4xODY1NzcsIDAuMjExNjMzLCAwLjM1MTkxNCwgMC40NzU1MTYsIDAuNjQwMzU3LCAwLjk3MDM2OCwgMS4xNzY2MiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODkzMDUsIDAuMTM4ODgyLCAwLjQyMDkyNywgMC42Njk1ODksIDEuMDAzNjEsIDEuNjY4MzcsIDIuMDg0MjEiLCBcCi0gICAgICAgICAgIjAuMDg5MzQ2LCAwLjEzODg4MSwgMC40MjA3NjYsIDAuNjY5NzQ2LCAxLjAwMzQ0LCAxLjY2ODQxLCAyLjA4NDE3IiwgXAotICAgICAgICAgICIwLjA4OTIzMiwgMC4xMzg4MzUsIDAuNDIwOTE1LCAwLjY2OTYzMiwgMS4wMDIyLCAxLjY2ODM0LCAyLjA3NzM5IiwgXAotICAgICAgICAgICIwLjA4OTI3NywgMC4xMzg5OSwgMC40MjAwMTEsIDAuNjY4NjI3LCAwLjk5OTY5NiwgMS42NjQ5OSwgMi4wNzY2IiwgXAotICAgICAgICAgICIwLjA4OTE5NiwgMC4xMzg5OTIsIDAuNDIwOTE4LCAwLjY2OTg0MSwgMS4wMDM2LCAxLjY2ODM1LCAyLjA4NDM3IiwgXAotICAgICAgICAgICIwLjA4OTMxNSwgMC4xMzg4ODIsIDAuNDIwODk3LCAwLjY3MDA5NiwgMS4wMDM0MywgMS42NjgyNSwgMi4wODEwNiIsIFwKLSAgICAgICAgICAiMC4wODkzNDEsIDAuMTM4OTM5LCAwLjQyMTI5MiwgMC42Njk5NjQsIDEuMDAxNDIsIDEuNjY1OCwgMi4wODAzNiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJHTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBub25fdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGZhbGxpbmdfZWRnZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTQ5ODQyLCAwLjE3NDA3OCwgMC4zMTExMDksIDAuNDMyMDc2LCAwLjU5MzUyNSwgMC45MTY0NzQsIDEuMTE4MjgiLCBcCi0gICAgICAgICAgIjAuMTU5NTgyLCAwLjE4MzY0OCwgMC4zMjEwNDUsIDAuNDQxODU1LCAwLjYwMzI4LCAwLjkyNjIwMSwgMS4xMjc3MiIsIFwKLSAgICAgICAgICAiMC4xNzE0MjcsIDAuMTk1NjczLCAwLjMzMjY3MywgMC40NTM2OTcsIDAuNjE1MTIzLCAwLjkzODA0OCwgMS4xMzk4NSIsIFwKLSAgICAgICAgICAiMC4xODE3MDUsIDAuMjA1OTg2LCAwLjM0MzAwMiwgMC40NjM5OTMsIDAuNjI1NDQzLCAwLjk0ODM1NCwgMS4xNTAxNiIsIFwKLSAgICAgICAgICAiMC4xOTA2NjMsIDAuMjE0NzY0LCAwLjM1MTkxNiwgMC40NzI5MTIsIDAuNjM0Mjc5LCAwLjk1NzIyNywgMS4xNTkxNSIsIFwKLSAgICAgICAgICAiMC4yMDI2NzgsIDAuMjI2OTI3LCAwLjM2NDEyNywgMC40ODQ5NjQsIDAuNjQ2Mzc4LCAwLjk2OTMwMSwgMS4xNzA4MSIsIFwKLSAgICAgICAgICAiMC4yMTI0MTQsIDAuMjM2Njk5LCAwLjM3MzcxNiwgMC40OTQ3MTUsIDAuNjU2MTQ4LCAwLjk3OTAwNiwgMS4xODA5MyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODk2MDQsIDAuMTM5MTk0LCAwLjQyMTE3MSwgMC42NzAzODEsIDEuMDAzOTQsIDEuNjY5MDMsIDIuMDg0NzEiLCBcCi0gICAgICAgICAgIjAuMDg5NjAzLCAwLjEzOTE5NywgMC40MjE5NDksIDAuNjY5OTA5LCAxLjAwMzk1LCAxLjY2OTAxLCAyLjA4MTc5IiwgXAotICAgICAgICAgICIwLjA4OTYwMiwgMC4xMzkwMzIsIDAuNDIxMTQ5LCAwLjY3MDA2MiwgMS4wMDM5NCwgMS42NjkwMSwgMi4wODQ1OCIsIFwKLSAgICAgICAgICAiMC4wODk2MDQsIDAuMTM5MDQ2LCAwLjQyMTEwNywgMC42NzA0MDgsIDEuMDAzOTQsIDEuNjY4OTYsIDIuMDg0NjciLCBcCi0gICAgICAgICAgIjAuMDg5NTk4LCAwLjEzODkwOSwgMC40MjEwNTQsIDAuNjcwMTQ2LCAxLjAwMzQyLCAxLjY2ODk5LCAyLjA4NDY4IiwgXAotICAgICAgICAgICIwLjA4OTU5MSwgMC4xMzkwMzcsIDAuNDIxOTA1LCAwLjY3MTQ2NywgMS4wMDM5NSwgMS42NjkwMSwgMi4wODE2MiIsIFwKLSAgICAgICAgICAiMC4wODk2MDUsIDAuMTM5MjQ3LCAwLjQyMTA4NiwgMC42NzA1MjYsIDEuMDAzNzUsIDEuNjY4OTksIDIuMDg0MzYiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTY1NjYyLCAwLjE5MDU1MSwgMC4zMzA2MTgsIDAuNDU0NDAxLCAwLjYyMDA5NiwgMC45NDkzNDYsIDEuMTU2NTYiLCBcCi0gICAgICAgICAgIjAuMTc1NTAzLCAwLjIwMDM5MywgMC4zNDA0NjQsIDAuNDY0Mjk4LCAwLjYyOTk0MywgMC45NTkzNTksIDEuMTY2NDEiLCBcCi0gICAgICAgICAgIjAuMTg3NDI0LCAwLjIxMjMzLCAwLjM1MjQwMywgMC40NzYyMTEsIDAuNjQxODc5LCAwLjk3MTk4NSwgMS4xNzgzNCIsIFwKLSAgICAgICAgICAiMC4xOTc0MjksIDAuMjIyMzE5LCAwLjM2MjM5NCwgMC40ODYyMzYsIDAuNjUxODY3LCAwLjk4MTI2NSwgMS4xODgzMyIsIFwKLSAgICAgICAgICAiMC4yMDYxNjQsIDAuMjMxMDc1LCAwLjM3MTE1OCwgMC40OTQ5NzEsIDAuNjYwNjI3LCAwLjk5MDIzOSwgMS4xOTcwOSIsIFwKLSAgICAgICAgICAiMC4yMTgyMjIsIDAuMjQzMTIsIDAuMzgzMjEsIDAuNTA2ODkzLCAwLjY3MjY4MywgMS4wMDIyNywgMS4yMDkxNSIsIFwKLSAgICAgICAgICAiMC4yMjY5MzYsIDAuMjUxODQxLCAwLjM5MTkyNiwgMC41MTY0MzUsIDAuNjgxMzg1LCAxLjAxMDc1LCAxLjIxNzg1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4OTM4MiwgMC4xMzg5NzQsIDAuNDIwNzczLCAwLjY2OTY2MSwgMS4wMDM0OCwgMS42NjUzOCwgMi4wODQwOSIsIFwKLSAgICAgICAgICAiMC4wODkzOTIsIDAuMTM4OTc1LCAwLjQyMDkzLCAwLjY2OTY0OSwgMS4wMDM0NCwgMS42NjYzMywgMi4wODQwOCIsIFwKLSAgICAgICAgICAiMC4wODkzMTYsIDAuMTM4OTc2LCAwLjQyMDczLCAwLjY2OTg3LCAxLjAwMzQyLCAxLjY2ODM3LCAyLjA4Mzk4IiwgXAotICAgICAgICAgICIwLjA4OTMzOCwgMC4xMzg5NzYsIDAuNDIwOTIsIDAuNjY5NTg2LCAxLjAwMzQyLCAxLjY2NjQxLCAyLjA4NDA3IiwgXAotICAgICAgICAgICIwLjA4OTMxNSwgMC4xMzg5ODEsIDAuNDIwOTE4LCAwLjY2OTgzMSwgMS4wMDM0MiwgMS42NjY1MSwgMi4wODQwMyIsIFwKLSAgICAgICAgICAiMC4wODkzMDcsIDAuMTM4OTc3LCAwLjQyMDkxNCwgMC42Njk4NzksIDEuMDAzMzksIDEuNjY3ODYsIDIuMDg0MDMiLCBcCi0gICAgICAgICAgIjAuMDg5MjM1LCAwLjEzODk4NCwgMC40MjA2MzgsIDAuNjcxMTIzLCAxLjAwMzU1LCAxLjY2MzE2LCAyLjA4NDA5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyNzE0LCAwLjAwMjcyLCAwLjAwMjcyOSwgMC4wMDI3MjksIDAuMDAyNzI5LCAwLjAwMjcyOSwgMC4wMDI3MzIiLCBcCi0gICAgICAgICAgIjAuMDAyNzAzLCAwLjAwMjcwOSwgMC4wMDI3MTgsIDAuMDAyNzIsIDAuMDAyNzIsIDAuMDAyNzIxLCAwLjAwMjcyMSIsIFwKLSAgICAgICAgICAiMC4wMDI2OTYsIDAuMDAyNzAzLCAwLjAwMjcxMSwgMC4wMDI3MTQsIDAuMDAyNzE1LCAwLjAwMjcxNCwgMC4wMDI3MTUiLCBcCi0gICAgICAgICAgIjAuMDAyNjkyLCAwLjAwMjY5OSwgMC4wMDI3MDcsIDAuMDAyNzA5LCAwLjAwMjcxLCAwLjAwMjcxMSwgMC4wMDI3MTEiLCBcCi0gICAgICAgICAgIjAuMDAyNjkyLCAwLjAwMjY5OSwgMC4wMDI3MDgsIDAuMDAyNzExLCAwLjAwMjcxMSwgMC4wMDI3MSwgMC4wMDI3MSIsIFwKLSAgICAgICAgICAiMC4wMDI2OTMsIDAuMDAyNjk5LCAwLjAwMjcxLCAwLjAwMjcxMiwgMC4wMDI3MTMsIDAuMDAyNzE0LCAwLjAwMjcxNCIsIFwKLSAgICAgICAgICAiMC4wMDI2OTYsIDAuMDAyNzAyLCAwLjAwMjcxMiwgMC4wMDI3MTQsIDAuMDAyNzE0LCAwLjAwMjcxNSwgMC4wMDI3MTYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDMxMjgsIDAuMDAzMTM1LCAwLjAwMzE0NSwgMC4wMDMxNDgsIDAuMDAzMTQ4LCAwLjAwMzE0OSwgMC4wMDMxNDkiLCBcCi0gICAgICAgICAgIjAuMDAzMTIyLCAwLjAwMzEyOSwgMC4wMDMxMzgsIDAuMDAzMTQsIDAuMDAzMTQxLCAwLjAwMzE0MiwgMC4wMDMxNDIiLCBcCi0gICAgICAgICAgIjAuMDAzMTE3LCAwLjAwMzEyNCwgMC4wMDMxMzQsIDAuMDAzMTM2LCAwLjAwMzEzNywgMC4wMDMxMzcsIDAuMDAzMTM4IiwgXAotICAgICAgICAgICIwLjAwMzExNCwgMC4wMDMxMjEsIDAuMDAzMTMsIDAuMDAzMTMzLCAwLjAwMzEzNSwgMC4wMDMxMzUsIDAuMDAzMTM1IiwgXAotICAgICAgICAgICIwLjAwMzExLCAwLjAwMzExNywgMC4wMDMxMjcsIDAuMDAzMTI5LCAwLjAwMzEzMSwgMC4wMDMxMzEsIDAuMDAzMTMyIiwgXAotICAgICAgICAgICIwLjAwMzExNiwgMC4wMDMxMjMsIDAuMDAzMTM0LCAwLjAwMzEzNiwgMC4wMDMxMzcsIDAuMDAzMTM4LCAwLjAwMzEzOCIsIFwKLSAgICAgICAgICAiMC4wMDMxMTQsIDAuMDAzMTIxLCAwLjAwMzEzMSwgMC4wMDMxMzQsIDAuMDAzMTM1LCAwLjAwMzEzNiwgMC4wMDMxMzYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJHTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0MTk1LCAwLjAwNDE5NiwgMC4wMDQxODgsIDAuMDA0MTg1LCAwLjAwNDE4MiwgMC4wMDQxNzksIDAuMDA0MTc5IiwgXAotICAgICAgICAgICIwLjAwNDE3OCwgMC4wMDQxNzksIDAuMDA0MTcyLCAwLjAwNDE2OCwgMC4wMDQxNjYsIDAuMDA0MTY0LCAwLjAwNDE2MyIsIFwKLSAgICAgICAgICAiMC4wMDQxNzUsIDAuMDA0MTc2LCAwLjAwNDE2OSwgMC4wMDQxNjUsIDAuMDA0MTYyLCAwLjAwNDE2LCAwLjAwNDE1OSIsIFwKLSAgICAgICAgICAiMC4wMDQxNzcsIDAuMDA0MTc4LCAwLjAwNDE3MSwgMC4wMDQxNjcsIDAuMDA0MTY0LCAwLjAwNDE2MiwgMC4wMDQxNjEiLCBcCi0gICAgICAgICAgIjAuMDA0MTczLCAwLjAwNDE3NSwgMC4wMDQxNjgsIDAuMDA0MTY0LCAwLjAwNDE2MSwgMC4wMDQxNiwgMC4wMDQxNTgiLCBcCi0gICAgICAgICAgIjAuMDA0MTg0LCAwLjAwNDE4NiwgMC4wMDQxNzksIDAuMDA0MTc1LCAwLjAwNDE3MywgMC4wMDQxNywgMC4wMDQxNjkiLCBcCi0gICAgICAgICAgIjAuMDA0MTkyLCAwLjAwNDE5MywgMC4wMDQxODgsIDAuMDA0MTg0LCAwLjAwNDE4MSwgMC4wMDQxNzgsIDAuMDA0MTc3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0NDM3LCAwLjAwNDQ0NCwgMC4wMDQ0NTQsIDAuMDA0NDU2LCAwLjAwNDQ1NywgMC4wMDQ0NTgsIDAuMDA0NDU4IiwgXAotICAgICAgICAgICIwLjAwNDQyNCwgMC4wMDQ0MzEsIDAuMDA0NDQxLCAwLjAwNDQ0MywgMC4wMDQ0NDQsIDAuMDA0NDQ1LCAwLjAwNDQ0NCIsIFwKLSAgICAgICAgICAiMC4wMDQ0MjQsIDAuMDA0NDMxLCAwLjAwNDQ0MSwgMC4wMDQ0NDQsIDAuMDA0NDQzLCAwLjAwNDQ0NSwgMC4wMDQ0NDUiLCBcCi0gICAgICAgICAgIjAuMDA0NDI2LCAwLjAwNDQzMywgMC4wMDQ0NDIsIDAuMDA0NDQ1LCAwLjAwNDQ0NiwgMC4wMDQ0NDgsIDAuMDA0NDQ2IiwgXAotICAgICAgICAgICIwLjAwNDQyOSwgMC4wMDQ0MzYsIDAuMDA0NDQ1LCAwLjAwNDQ0NywgMC4wMDQ0NDgsIDAuMDA0NDQ5LCAwLjAwNDQ1IiwgXAotICAgICAgICAgICIwLjAwNDQzMSwgMC4wMDQ0MzgsIDAuMDA0NDUzLCAwLjAwNDQ1LCAwLjAwNDQ1NiwgMC4wMDQ0NTEsIDAuMDA0NDU2IiwgXAotICAgICAgICAgICIwLjAwNDQ0MiwgMC4wMDQ0NDksIDAuMDA0NDU5LCAwLjAwNDQ1OSwgMC4wMDQ0NjEsIDAuMDA0NDYxLCAwLjAwNDQ2MyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUU4pICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4yNjI4MzI7Ci0gICAgZnVuY3Rpb24gOiAiTjAiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkQiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEyMjgxLCAwLjE0NzQ1NiwgMC4yODY2NjcsIDAuNDA5MzksIDAuNTcyOTk1LCAwLjkwMDE4NSwgMS4xMDQ3NiIsIFwKLSAgICAgICAgICAiMC4xMzEyNCwgMC4xNTU4ODIsIDAuMjk1MDkyLCAwLjQxNzgwMiwgMC41ODEzNzQsIDAuOTA4NjE5LCAxLjExMzE4IiwgXAotICAgICAgICAgICIwLjE0MDg1OCwgMC4xNjU0OTUsIDAuMzA0NzI1LCAwLjQyNzQ3NCwgMC41OTEwMDYsIDAuOTE4MjI0LCAxLjEyMjc1IiwgXAotICAgICAgICAgICIwLjE0OTg0MiwgMC4xNzQ0ODQsIDAuMzEzNjY1LCAwLjQzNjQwNywgMC41OTk4NTksIDAuOTI2OTcyLCAxLjEzMTQyIiwgXAotICAgICAgICAgICIwLjE1NzkxNCwgMC4xODI1NTUsIDAuMzIxNzgzLCAwLjQ0NDQ4NCwgMC42MDgxMDQsIDAuOTM1MjkxLCAxLjEzOTkiLCBcCi0gICAgICAgICAgIjAuMTY5MzE1LCAwLjE5Mzk2MSwgMC4zMzMxODMsIDAuNDU1ODU1LCAwLjYxOTUwMywgMC45NDY3MzMsIDEuMTUxMTgiLCBcCi0gICAgICAgICAgIjAuMTc3OTMxLCAwLjIwMjU3NywgMC4zNDE3MjEsIDAuNDY0NDUxLCAwLjYyODE0LCAwLjk1NTM0NywgMS4xNTk4NiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTQ2NTcsIDAuMTQzODQ3LCAwLjQyODM3OSwgMC42ODA0NzYsIDEuMDE5NDIsIDEuNjkzOTQsIDIuMTE1NzEiLCBcCi0gICAgICAgICAgIjAuMDk0NjE5LCAwLjE0Mzg0NSwgMC40MjgyNTksIDAuNjgwNzAyLCAxLjAxOTM0LCAxLjY5Mzk3LCAyLjExNTY5IiwgXAotICAgICAgICAgICIwLjA5NDYxNCwgMC4xNDM3ODgsIDAuNDI4MzcxLCAwLjY4MDU0OSwgMS4wMTgxMywgMS42OTM5MywgMi4xMDkzNiIsIFwKLSAgICAgICAgICAiMC4wOTQ2NjIsIDAuMTQzOTY3LCAwLjQyNzc2LCAwLjY3OTk4NSwgMS4wMTYyMywgMS42ODk4OSwgMi4xMDkwMiIsIFwKLSAgICAgICAgICAiMC4wOTQ2NjksIDAuMTQzOTg3LCAwLjQyODM3NiwgMC42ODA4MjYsIDEuMDE5MzgsIDEuNjkzOTQsIDIuMTE1NzYiLCBcCi0gICAgICAgICAgIjAuMDk0NzM0LCAwLjE0Mzg4MywgMC40MjgzNjUsIDAuNjgxMDg4LCAxLjAxOTE2LCAxLjY5MzcyLCAyLjExMjcxIiwgXAotICAgICAgICAgICIwLjA5NDY5NywgMC4xNDQwNDIsIDAuNDI4ODU1LCAwLjY4MTAxMSwgMS4wMTczMSwgMS42OTExNSwgMi4xMTE5OCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMjMyNjMsIDAuMTQ4MTQxLCAwLjI4ODQyOCwgMC40MTIwNiwgMC41NzcxMzcsIDAuOTA3MDE2LCAxLjExMzE5IiwgXAotICAgICAgICAgICIwLjEzMTkxMiwgMC4xNTY3ODYsIDAuMjk3MDM3LCAwLjQyMDc2NywgMC41ODU3OSwgMC45MTU0MDUsIDEuMTIxNjQiLCBcCi0gICAgICAgICAgIjAuMTQyNDE4LCAwLjE2NzI4MiwgMC4zMDc2NTMsIDAuNDMxMzQ5LCAwLjU5NjI3NSwgMC45MjYxNTYsIDEuMTMyMzgiLCBcCi0gICAgICAgICAgIjAuMTUyNDU4LCAwLjE3NzMzMywgMC4zMTc2NzcsIDAuNDQxMzkzLCAwLjYwNjQyMiwgMC45MzYxODEsIDEuMTQyNDEiLCBcCi0gICAgICAgICAgIjAuMTYxNjcxLCAwLjE4NjU0NywgMC4zMjY5MTUsIDAuNDUwNjEyLCAwLjYxNTU2OCwgMC45NDU0MzEsIDEuMTUxMzgiLCBcCi0gICAgICAgICAgIjAuMTc0NjkxLCAwLjE5OTU2OSwgMC4zMzk5MTQsIDAuNDYzNTk5LCAwLjYyODU2NCwgMC45NTg0MTksIDEuMTY0NjgiLCBcCi0gICAgICAgICAgIjAuMTg0ODg3LCAwLjIwOTc2NywgMC4zNTAxMTEsIDAuNDczNzg0LCAwLjYzODc3NCwgMC45Njg2MDEsIDEuMTc0OSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTMyNjMsIDAuMTQxOTA2LCAwLjQyMjgzNSwgMC42NzEwNjEsIDEuMDA0NTYsIDEuNjY5MzcsIDIuMDg0ODYiLCBcCi0gICAgICAgICAgIjAuMDkzMjE1LCAwLjE0MTU5OCwgMC40MjIyMzEsIDAuNjcxOTI2LCAxLjAwNDU1LCAxLjY2Mzk2LCAyLjA4NCIsIFwKLSAgICAgICAgICAiMC4wOTMyNzYsIDAuMTQxNTg0LCAwLjQyMTk5NywgMC42NzA2NjQsIDEuMDAzMTcsIDEuNjY5MzMsIDIuMDg0OTYiLCBcCi0gICAgICAgICAgIjAuMDkzMjI0LCAwLjE0MTczNCwgMC40MjE5MjcsIDAuNjcwODMsIDEuMDAyNjEsIDEuNjY5MjgsIDIuMDg0NzkiLCBcCi0gICAgICAgICAgIjAuMDkzNDc1LCAwLjE0MTU5NCwgMC40MjE5OTQsIDAuNjcwNjUzLCAxLjAwNDYxLCAxLjY2OTM0LCAyLjA4MzY4IiwgXAotICAgICAgICAgICIwLjA5MzQ5MSwgMC4xNDE5MzYsIDAuNDIxOTIxLCAwLjY3MTE5NCwgMS4wMDQ1NiwgMS42NjczMiwgMi4wODUxOSIsIFwKLSAgICAgICAgICAiMC4wOTM0OSwgMC4xNDE5NTQsIDAuNDIyMTE0LCAwLjY3MTEyNywgMS4wMDQ2NCwgMS42NjcwNCwgMi4wODUzNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJHTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBub25fdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGZhbGxpbmdfZWRnZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTU2ODE2LCAwLjE4MTQ1LCAwLjMyMDY2OCwgMC40NDM0NTcsIDAuNjA2OTc4LCAwLjkzNDM1NCwgMS4xMzg3MyIsIFwKLSAgICAgICAgICAiMC4xNjY2NTYsIDAuMTkxMjkxLCAwLjMzMDUyMSwgMC40NTMyMjcsIDAuNjE2ODA5LCAwLjk0NDA1NSwgMS4xNDg1OCIsIFwKLSAgICAgICAgICAiMC4xNzg1OTQsIDAuMjAzMjI5LCAwLjM0MjQ1NCwgMC40NjUxNywgMC42Mjg3NTMsIDAuOTU1OTczLCAxLjE2MDUxIiwgXAotICAgICAgICAgICIwLjE4ODU4NiwgMC4yMTMyMjEsIDAuMzUyNDUxLCAwLjQ3NTE1MSwgMC42Mzg3MzYsIDAuOTY1OTg3LCAxLjE3MDUxIiwgXAotICAgICAgICAgICIwLjE5NzM1LCAwLjIyMTk4NSwgMC4zNjEyMTQsIDAuNDgzOTIsIDAuNjQ3NTAxLCAwLjk3NDcwNywgMS4xNzkyNyIsIFwKLSAgICAgICAgICAiMC4yMDkzOTYsIDAuMjM0MDMxLCAwLjM3MzI3MywgMC40OTU4NTksIDAuNjU5NTU5LCAwLjk4NjYzNiwgMS4xOTEzNCIsIFwKLSAgICAgICAgICAiMC4yMTgxODIsIDAuMjQyODE1LCAwLjM4MTk5NSwgMC41MDQ3OCwgMC42NjgzNDUsIDAuOTk1Mjc3LCAxLjIwMDA5Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5NDcwOSwgMC4xNDM5OTMsIDAuNDI4MTYxLCAwLjY4MDcxMSwgMS4wMTkzNCwgMS42OTA3LCAyLjExNTY4IiwgXAotICAgICAgICAgICIwLjA5NDcwNywgMC4xNDM5OTMsIDAuNDI4Mzg1LCAwLjY4MDYxMywgMS4wMTkzNCwgMS42OTE3MSwgMi4xMTU2NiIsIFwKLSAgICAgICAgICAiMC4wOTQ3MTcsIDAuMTQzOTk0LCAwLjQyODExNSwgMC42ODA5MjYsIDEuMDE5MzIsIDEuNjkzOTIsIDIuMTE1NjQiLCBcCi0gICAgICAgICAgIjAuMDk0NzExLCAwLjE0Mzk5MSwgMC40MjgzNzcsIDAuNjgwNTcyLCAxLjAxOTMyLCAxLjY5MTcsIDIuMTE1NjgiLCBcCi0gICAgICAgICAgIjAuMDk0NzA3LCAwLjE0Mzk4NCwgMC40MjgzNzYsIDAuNjgwODQ1LCAxLjAxOTMyLCAxLjY5MTYzLCAyLjExNTY2IiwgXAotICAgICAgICAgICIwLjA5NDcwOSwgMC4xNDM5OSwgMC40MjgzNzEsIDAuNjgwOTQsIDEuMDE5MzEsIDEuNjkzMTYsIDIuMTE1NjYiLCBcCi0gICAgICAgICAgIjAuMDk0Njk2LCAwLjE0NDAxMiwgMC40MjgwNDQsIDAuNjgyMTYyLCAxLjAxOTM4LCAxLjY4ODk3LCAyLjExNTY5Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE0MzA0NiwgMC4xNjc4NjIsIDAuMzA4MDQ1LCAwLjQzMTY3MSwgMC41OTY1ODMsIDAuOTI2NDU3LCAxLjEzMjYxIiwgXAotICAgICAgICAgICIwLjE1Mjc5MiwgMC4xNzc2MSwgMC4zMTc3NDMsIDAuNDQxNDUsIDAuNjA2MzQxLCAwLjkzNjE5OCwgMS4xNDIzNiIsIFwKLSAgICAgICAgICAiMC4xNjQ2NDUsIDAuMTg5NDY2LCAwLjMyOTYzNCwgMC40NTMzMDYsIDAuNjE4MTk1LCAwLjk0ODA1NCwgMS4xNTQyMSIsIFwKLSAgICAgICAgICAiMC4xNzQ5NjksIDAuMTk5Nzk3LCAwLjMzOTk2NiwgMC40NjM2MTEsIDAuNjI4NTE5LCAwLjk1ODM2OSwgMS4xNjQ1MyIsIFwKLSAgICAgICAgICAiMC4xODM4ODEsIDAuMjA4NzA1LCAwLjM0ODg4OSwgMC40NzI1MzcsIDAuNjM3NDEyLCAwLjk2NzI2MywgMS4xNzM0OCIsIFwKLSAgICAgICAgICAiMC4xOTU5MTksIDAuMjIwNzQ3LCAwLjM2MDg3NywgMC40ODQ1NzYsIDAuNjQ5NDc2LCAwLjk3OTMyOSwgMS4xODU1IiwgXAotICAgICAgICAgICIwLjIwNTY4MiwgMC4yMzA1MTIsIDAuMzcwNjk3LCAwLjQ5NDM0OCwgMC42NTkyMzksIDAuOTg5MDU2LCAxLjE5NTI4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5MzQ3NiwgMC4xNDIwMzEsIDAuNDIyMTM3LCAwLjY3MTIxOSwgMS4wMDQ1NCwgMS42Njk0NywgMi4wODUiLCBcCi0gICAgICAgICAgIjAuMDkzNDc1LCAwLjE0MjAwOCwgMC40MjI5NjEsIDAuNjcwNzI2LCAxLjAwNDU4LCAxLjY2OTQ0LCAyLjA4MjE2IiwgXAotICAgICAgICAgICIwLjA5MzQ3NCwgMC4xNDE5MzUsIDAuNDIxOTU4LCAwLjY3MDkxOSwgMS4wMDQ1NiwgMS42Njk0MiwgMi4wODQ4NyIsIFwKLSAgICAgICAgICAiMC4wOTM0NzQsIDAuMTQxOTQyLCAwLjQyMTkzNSwgMC42NzExNzcsIDEuMDA0NTUsIDEuNjY5MzYsIDIuMDg0OSIsIFwKLSAgICAgICAgICAiMC4wOTM0NzUsIDAuMTQxNjg3LCAwLjQyMTg3OCwgMC42NzA4MjUsIDEuMDAzOTUsIDEuNjY5MzUsIDIuMDg1MDUiLCBcCi0gICAgICAgICAgIjAuMDkzNDg0LCAwLjE0MTkzOSwgMC40MjI4NzYsIDAuNjcyMjE2LCAxLjAwNDU4LCAxLjY2OTQyLCAyLjA4MjIzIiwgXAotICAgICAgICAgICIwLjA5MzQ4MywgMC4xNDIwNTMsIDAuNDIxOTEzLCAwLjY3MTIzMSwgMS4wMDQzNiwgMS42NjkyOCwgMi4wODQ2OSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkQiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzEyOCwgMC4wMDMxMzUsIDAuMDAzMTQ1LCAwLjAwMzE0OCwgMC4wMDMxNDgsIDAuMDAzMTQ5LCAwLjAwMzE0OSIsIFwKLSAgICAgICAgICAiMC4wMDMxMjIsIDAuMDAzMTI5LCAwLjAwMzEzOCwgMC4wMDMxNCwgMC4wMDMxNDEsIDAuMDAzMTQyLCAwLjAwMzE0MiIsIFwKLSAgICAgICAgICAiMC4wMDMxMTcsIDAuMDAzMTI0LCAwLjAwMzEzNCwgMC4wMDMxMzYsIDAuMDAzMTM3LCAwLjAwMzEzNywgMC4wMDMxMzgiLCBcCi0gICAgICAgICAgIjAuMDAzMTE0LCAwLjAwMzEyMSwgMC4wMDMxMywgMC4wMDMxMzMsIDAuMDAzMTM1LCAwLjAwMzEzNSwgMC4wMDMxMzUiLCBcCi0gICAgICAgICAgIjAuMDAzMTEsIDAuMDAzMTE3LCAwLjAwMzEyNywgMC4wMDMxMjksIDAuMDAzMTMxLCAwLjAwMzEzMSwgMC4wMDMxMzIiLCBcCi0gICAgICAgICAgIjAuMDAzMTE2LCAwLjAwMzEyMywgMC4wMDMxMzQsIDAuMDAzMTM2LCAwLjAwMzEzNywgMC4wMDMxMzgsIDAuMDAzMTM4IiwgXAotICAgICAgICAgICIwLjAwMzExNCwgMC4wMDMxMjEsIDAuMDAzMTMxLCAwLjAwMzEzNCwgMC4wMDMxMzUsIDAuMDAzMTM2LCAwLjAwMzEzNiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjcxNCwgMC4wMDI3MiwgMC4wMDI3MjksIDAuMDAyNzI5LCAwLjAwMjcyOSwgMC4wMDI3MjksIDAuMDAyNzMyIiwgXAotICAgICAgICAgICIwLjAwMjcwMywgMC4wMDI3MDksIDAuMDAyNzE4LCAwLjAwMjcyLCAwLjAwMjcyLCAwLjAwMjcyMSwgMC4wMDI3MjEiLCBcCi0gICAgICAgICAgIjAuMDAyNjk2LCAwLjAwMjcwMywgMC4wMDI3MTEsIDAuMDAyNzE0LCAwLjAwMjcxNSwgMC4wMDI3MTQsIDAuMDAyNzE1IiwgXAotICAgICAgICAgICIwLjAwMjY5MiwgMC4wMDI2OTksIDAuMDAyNzA3LCAwLjAwMjcwOSwgMC4wMDI3MSwgMC4wMDI3MTEsIDAuMDAyNzExIiwgXAotICAgICAgICAgICIwLjAwMjY5MiwgMC4wMDI2OTksIDAuMDAyNzA4LCAwLjAwMjcxMSwgMC4wMDI3MTEsIDAuMDAyNzEsIDAuMDAyNzEiLCBcCi0gICAgICAgICAgIjAuMDAyNjkzLCAwLjAwMjY5OSwgMC4wMDI3MSwgMC4wMDI3MTIsIDAuMDAyNzEzLCAwLjAwMjcxNCwgMC4wMDI3MTQiLCBcCi0gICAgICAgICAgIjAuMDAyNjk2LCAwLjAwMjcwMiwgMC4wMDI3MTIsIDAuMDAyNzE0LCAwLjAwMjcxNCwgMC4wMDI3MTUsIDAuMDAyNzE2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiR04iOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDQzNywgMC4wMDQ0NDQsIDAuMDA0NDU0LCAwLjAwNDQ1NiwgMC4wMDQ0NTcsIDAuMDA0NDU4LCAwLjAwNDQ1OCIsIFwKLSAgICAgICAgICAiMC4wMDQ0MjQsIDAuMDA0NDMxLCAwLjAwNDQ0MSwgMC4wMDQ0NDMsIDAuMDA0NDQ0LCAwLjAwNDQ0NSwgMC4wMDQ0NDQiLCBcCi0gICAgICAgICAgIjAuMDA0NDI0LCAwLjAwNDQzMSwgMC4wMDQ0NDEsIDAuMDA0NDQ0LCAwLjAwNDQ0MywgMC4wMDQ0NDUsIDAuMDA0NDQ1IiwgXAotICAgICAgICAgICIwLjAwNDQyNiwgMC4wMDQ0MzMsIDAuMDA0NDQyLCAwLjAwNDQ0NSwgMC4wMDQ0NDYsIDAuMDA0NDQ4LCAwLjAwNDQ0NiIsIFwKLSAgICAgICAgICAiMC4wMDQ0MjksIDAuMDA0NDM2LCAwLjAwNDQ0NSwgMC4wMDQ0NDcsIDAuMDA0NDQ4LCAwLjAwNDQ0OSwgMC4wMDQ0NSIsIFwKLSAgICAgICAgICAiMC4wMDQ0MzEsIDAuMDA0NDM4LCAwLjAwNDQ1MywgMC4wMDQ0NSwgMC4wMDQ0NTYsIDAuMDA0NDUxLCAwLjAwNDQ1NiIsIFwKLSAgICAgICAgICAiMC4wMDQ0NDIsIDAuMDA0NDQ5LCAwLjAwNDQ1OSwgMC4wMDQ0NTksIDAuMDA0NDYxLCAwLjAwNDQ2MSwgMC4wMDQ0NjMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQxOTUsIDAuMDA0MTk2LCAwLjAwNDE4OCwgMC4wMDQxODUsIDAuMDA0MTgyLCAwLjAwNDE3OSwgMC4wMDQxNzkiLCBcCi0gICAgICAgICAgIjAuMDA0MTc4LCAwLjAwNDE3OSwgMC4wMDQxNzIsIDAuMDA0MTY4LCAwLjAwNDE2NiwgMC4wMDQxNjQsIDAuMDA0MTYzIiwgXAotICAgICAgICAgICIwLjAwNDE3NSwgMC4wMDQxNzYsIDAuMDA0MTY5LCAwLjAwNDE2NSwgMC4wMDQxNjIsIDAuMDA0MTYsIDAuMDA0MTU5IiwgXAotICAgICAgICAgICIwLjAwNDE3NywgMC4wMDQxNzgsIDAuMDA0MTcxLCAwLjAwNDE2NywgMC4wMDQxNjQsIDAuMDA0MTYyLCAwLjAwNDE2MSIsIFwKLSAgICAgICAgICAiMC4wMDQxNzMsIDAuMDA0MTc1LCAwLjAwNDE2OCwgMC4wMDQxNjQsIDAuMDA0MTYxLCAwLjAwNDE2LCAwLjAwNDE1OCIsIFwKLSAgICAgICAgICAiMC4wMDQxODQsIDAuMDA0MTg2LCAwLjAwNDE3OSwgMC4wMDQxNzUsIDAuMDA0MTczLCAwLjAwNDE3LCAwLjAwNDE2OSIsIFwKLSAgICAgICAgICAiMC4wMDQxOTIsIDAuMDA0MTkzLCAwLjAwNDE4OCwgMC4wMDQxODQsIDAuMDA0MTgxLCAwLjAwNDE3OCwgMC4wMDQxNzciKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IFRMQVRYNCAqCi0gKiAtLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKFRMQVRYNCkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjY3Mjc2NzsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBsYXRjaCAoUUlOVCxOMCkgewotICAgIGRhdGFfaW4gOiAiRCI7Ci0gICAgZW5hYmxlIDogIkciOwotICB9Ci0gIHBpbihEKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2MDM4NDI7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjAyNDA0OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDYwMzg0MjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyMTcsIDAuMDAwMjIsIDAuMDAwMjIxLCAwLjAwMDIyMSwgMC4wMDAyMjEsIDAuMDAwMjIyLCAwLjAwMDIyMiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDIzMSwgMC4wMDAyMjcsIDAuMDAwMjI3LCAwLjAwMDIyNywgMC4wMDAyMjcsIDAuMDAwMjI3LCAwLjAwMDIyNiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJHIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9mYWxsaW5nOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAxODc1LCAtMC4wMDc1LCAwLjAwNSwgMC4wMTc1LCAwLjAyMzc1LCAwLjAzMzc1LCAwLjA0MjUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAuMDA2MjUsIDAuMDEyNSwgMC4wMjg3NSwgMC4wMzc1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDI1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMC4wMDYyNSwgMC4wMTYyNSwgMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLjAwMzc1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjA2MTI1LCAtMC4wNSwgLTAuMDM3NSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDAyNSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDcxMjUsIC0wLjA2NjI1LCAtMC4wNTM3NSwgLTAuMDQxMjUsIC0wLjAyODc1LCAtMC4wMTg3NSwgLTAuMDEiLCBcCi0gICAgICAgICAgIi0wLjA4NjI1LCAtMC4wNzUsIC0wLjA2MjUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDI3NSwgLTAuMDE4NzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wNDM3NSwgLTAuMDMyNSwgLTAuMDI2MjUsIC0wLjAyLCAtMC4wMiwgLTAuMDEsIC0wLjAwNzUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDIxMjUsIC0wLjAxODc1IiwgXAotICAgICAgICAgICItMC4wNjEyNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzc1LCAtMC4wMjc1LCAtMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjA2NzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjA0LCAtMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDgsIC0wLjA2ODc1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjA0NjI1LCAtMC4wNDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDksIC0wLjA4NSwgLTAuMDcyNSwgLTAuMDY2MjUsIC0wLjA2NjI1LCAtMC4wNTYyNSwgLTAuMDUzNzUiLCBcCi0gICAgICAgICAgIi0wLjA5ODc1LCAtMC4wOTM3NSwgLTAuMDgxMjUsIC0wLjA4MTI1LCAtMC4wNzUsIC0wLjA2NSwgLTAuMDYyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJHIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfZmFsbGluZzsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzc1LCAwLjAyNjI1LCAwLjAxMzc1LCAwLjAwMTI1LCAtMC4wMDUsIC0wLjAyMTI1LCAtMC4wMyIsIFwKLSAgICAgICAgICAiMC4wNDI1LCAwLjAzMTI1LCAwLjAxODc1LCAwLjAxMjUsIDAsIC0wLjAxLCAtMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4wNTUsIDAuMDQzNzUsIDAuMDMxMjUsIDAuMDE4NzUsIDAuMDEyNSwgLTAuMDAzNzUsIC0wLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMDY3NSwgMC4wNTYyNSwgMC4wNDM3NSwgMC4wMzEyNSwgMC4wMTg3NSwgMC4wMDg3NSwgMCIsIFwKLSAgICAgICAgICAiMC4wNzM3NSwgMC4wNjI1LCAwLjA1LCAwLjA0Mzc1LCAwLjAzMTI1LCAwLjAyMTI1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMDksIDAuMDc4NzUsIDAuMDY2MjUsIDAuMDUzNzUsIDAuMDQ3NSwgMC4wMzEyNSwgMC4wMjI1IiwgXAotICAgICAgICAgICIwLjA5ODc1LCAwLjA5Mzc1LCAwLjA4MTI1LCAwLjA2ODc1LCAwLjA1NjI1LCAwLjA0NjI1LCAwLjAzNzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTYyNSwgMC4wNTEyNSwgMC4wNDUsIDAuMDM4NzUsIDAuMDM4NzUsIDAuMDM1LCAwLjAzODc1IiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDU2MjUsIDAuMDUsIDAuMDUsIDAuMDQzNzUsIDAuMDQ2MjUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMDczNzUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNTYyNSwgMC4wNTI1LCAwLjA1IiwgXAotICAgICAgICAgICIwLjA4NjI1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1ODc1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICIwLjA5MjUsIDAuMDg3NSwgMC4wODEyNSwgMC4wNzUsIDAuMDY4NzUsIDAuMDcxMjUsIDAuMDY4NzUiLCBcCi0gICAgICAgICAgIjAuMTA4NzUsIDAuMDk3NSwgMC4wOTEyNSwgMC4wODUsIDAuMDg1LCAwLjA4MTI1LCAwLjA3ODc1IiwgXAotICAgICAgICAgICIwLjExNzUsIDAuMTA2MjUsIDAuMSwgMC4wOTM3NSwgMC4wOTM3NSwgMC4wOSwgMC4wODc1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihHKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2MTk4OTU7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjE5NTM2OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDYxOTg5NTsKLSAgICBjbG9jayA6IHRydWU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxOTMxLCAwLjAwMTkwNSwgMC4wMDE4OTEsIDAuMDAxODk5LCAwLjAwMTkwNSwgMC4wMDE5MzIsIDAuMDAxOTU1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzNDMyLCAwLjAwMzQwOCwgMC4wMDMzOTgsIDAuMDAzNDA4LCAwLjAwMzQxNCwgMC4wMDM0NDEsIDAuMDAzNDYzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkciOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFEIjsKLSAgICAgIHNkZl9jb25kIDogIkQgPT0gMSdiMCI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4xMzYwMSwgMC4xNDYxMDYsIDAuMTU4NzAxLCAwLjE3MDE1LCAwLjE4MDIyOCwgMC4xOTQwMDMsIDAuMjA0NzgyIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihRKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDEuMDM1NjE7Ci0gICAgZnVuY3Rpb24gOiAiUUlOVCI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTM0NjksIDAuMTg1ODIyLCAwLjI1ODIwNiwgMC4zMDk2MDEsIDAuMzkyMjgsIDAuNDY0NDQ3LCAwLjU2Nzc2MyIsIFwKLSAgICAgICAgICAiMC4xMjIyOTYsIDAuMTk0NjU1LCAwLjI2NjgwNSwgMC4zMTg0MTEsIDAuNDAxMDEsIDAuNDczMjYxLCAwLjU3NjUzNiIsIFwKLSAgICAgICAgICAiMC4xMzMxLCAwLjIwNTI0OCwgMC4yNzc4NDcsIDAuMzI5MjA2LCAwLjQxMTgyOSwgMC40ODQsIDAuNTg3NDY5IiwgXAotICAgICAgICAgICIwLjE0MzQ5NSwgMC4yMTU3MTcsIDAuMjg4MDY0LCAwLjMzOTU3NiwgMC40MjIwNzksIDAuNDk0NDYzLCAwLjU5NzU4IiwgXAotICAgICAgICAgICIwLjE1MzU4MSwgMC4yMjU5NDEsIDAuMjk4MzI3LCAwLjM0OTcxMywgMC40MzI0MDEsIDAuNTA0NTY1LCAwLjYwNzg4NCIsIFwKLSAgICAgICAgICAiMC4xNjg0MjcsIDAuMjQwNTY5LCAwLjMxMzEyOCwgMC4zNjQ1MDMsIDAuNDQ3MjIzLCAwLjUxOTM4MiwgMC42MjI2OTgiLCBcCi0gICAgICAgICAgIjAuMTgwMTQ4LCAwLjI1MjI5MiwgMC4zMjQ1OTcsIDAuMzc2MjU5LCAwLjQ1ODk1NCwgMC41MzEwOTIsIDAuNjM0NDg0Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDI4NjI5LCAwLjE3NTgwOSwgMC4zMjU0MDMsIDAuNDMwNjA3LCAwLjYwMjQyMSwgMC43NDk0MzksIDAuOTY0NTY4IiwgXAotICAgICAgICAgICIwLjAyODYwOCwgMC4xNzU4MTYsIDAuMzI0ODQ0LCAwLjQzMDY0OCwgMC42MDE1MiwgMC43NTEyNDQsIDAuOTY0NTcxIiwgXAotICAgICAgICAgICIwLjAyODYzNCwgMC4xNzU3OTUsIDAuMzI1NDA1LCAwLjQzMDU1NiwgMC42MDIxNDIsIDAuNzUwMzEsIDAuOTYyMzk5IiwgXAotICAgICAgICAgICIwLjAyODYzOCwgMC4xNzYwMzYsIDAuMzI1MjkzLCAwLjQzMDQ1MywgMC42MDEzMjUsIDAuNzUxNTcyLCAwLjk2Mzg2NCIsIFwKLSAgICAgICAgICAiMC4wMjg0OTcsIDAuMTc1ODA0LCAwLjMyNTM5OSwgMC40MzA1OTgsIDAuNjAyNDE3LCAwLjc1MDM5NSwgMC45NjQ1ODEiLCBcCi0gICAgICAgICAgIjAuMDI4MzI5LCAwLjE3NTc3NiwgMC4zMjUzNzksIDAuNDMxMjY2LCAwLjYwMjQzNywgMC43NTE0OTMsIDAuOTY0NTEyIiwgXAotICAgICAgICAgICIwLjAyODYyMSwgMC4xNzU5NjMsIDAuMzI0NzQsIDAuNDMxMjc3LCAwLjYwMjQwMiwgMC43NTAyMTgsIDAuOTYyNTA1Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTE2MTEzLCAwLjE4OTYyNiwgMC4yNjMzMjQsIDAuMzE2MTg4LCAwLjM5OTcwMywgMC40NzM4MTQsIDAuNTc4MTU3IiwgXAotICAgICAgICAgICIwLjEyNDcxMiwgMC4xOTg0ODEsIDAuMjcxNzM4LCAwLjMyNDc3NywgMC40MDg5MTEsIDAuNDgxODIyLCAwLjU4NzY2MyIsIFwKLSAgICAgICAgICAiMC4xMzQ1MTksIDAuMjA4MzA0LCAwLjI4MTUwOSwgMC4zMzQwNTQsIDAuNDE4ODQ5LCAwLjQ5MTkyNSwgMC41OTY1NTUiLCBcCi0gICAgICAgICAgIjAuMTQzOTYzLCAwLjIxNzc4LCAwLjI5MTU1MywgMC4zNDQxMDQsIDAuNDI3NjA2LCAwLjUwMTg4MiwgMC42MDYwNzciLCBcCi0gICAgICAgICAgIjAuMTUyOTc0LCAwLjIyNjczMywgMC4yOTk5NzgsIDAuMzUzMTY1LCAwLjQzNzI4NSwgMC41MTAzODUsIDAuNjE0OTkzIiwgXAotICAgICAgICAgICIwLjE2NjA2LCAwLjIzOTUzNywgMC4zMTMwMjEsIDAuMzY1NjcxLCAwLjQ1MDMyMywgMC41MjM1MzIsIDAuNjI4MTQzIiwgXAotICAgICAgICAgICIwLjE3NjI5NiwgMC4yNTAwNSwgMC4zMjMyODUsIDAuMzc2MzI2LCAwLjQ1OTc2OCwgMC41MzQwOTMsIDAuNjM4NTIyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDI4NDY1LCAwLjE3NTY4OSwgMC4zMjM5MTQsIDAuNDMxMzg5LCAwLjU5OTU0NywgMC43NTA2MDgsIDAuOTYyMjk3IiwgXAotICAgICAgICAgICIwLjAyODMxMiwgMC4xNzU4OTksIDAuMzI0NjIyLCAwLjQzMTM3NCwgMC42MDE2NjEsIDAuNzQ5MTY5LCAwLjk2MzcxOSIsIFwKLSAgICAgICAgICAiMC4wMjg0NTIsIDAuMTc1OTE2LCAwLjMyNDY0MiwgMC40MzAwNTQsIDAuNjAxODI4LCAwLjc0OTc3OCwgMC45NjIwMzgiLCBcCi0gICAgICAgICAgIjAuMDI4NDc2LCAwLjE3NTkwNSwgMC4zMjQ5NDUsIDAuNDMxMzg5LCAwLjYwMDY2NCwgMC43NTA5MzUsIDAuOTYyMjYyIiwgXAotICAgICAgICAgICIwLjAyODE5MywgMC4xNzU5MjYsIDAuMzI0Mzg2LCAwLjQzMTUxMiwgMC42MDE4MzQsIDAuNzQ5NzU0LCAwLjk2MjA1IiwgXAotICAgICAgICAgICIwLjAyODI4LCAwLjE3NTczOSwgMC4zMjQzNjUsIDAuNDMwODY0LCAwLjYwMTg2MSwgMC43NTA2MzcsIDAuOTYxOTQ2IiwgXAotICAgICAgICAgICIwLjAyODQ5NiwgMC4xNzU5MSwgMC4zMjQ0MjIsIDAuNDMxMzI0LCAwLjYwMDU4MSwgMC43NTA2NjEsIDAuOTYyNDE5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkciOwotICAgICAgdGltaW5nX3NlbnNlIDogbm9uX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiByaXNpbmdfZWRnZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNTA2OTMsIDAuMjIzMDI4LCAwLjI5NTM1OSwgMC4zNDY3MTgsIDAuNDI5Mzk1LCAwLjUwMTU1OCwgMC42MDQ4NjMiLCBcCi0gICAgICAgICAgIjAuMTYwODU4LCAwLjIzMzIxNywgMC4zMDU1NTYsIDAuMzU3MTIxLCAwLjQzOTU4OSwgMC41MTE3NjUsIDAuNjE1MDQ3IiwgXAotICAgICAgICAgICIwLjE3MzU1MywgMC4yNDU5MjQsIDAuMzE4MTgxLCAwLjM2OTYxMSwgMC40NTIxOSwgMC41MjQ1MjMsIDAuNjI3NzAzIiwgXAotICAgICAgICAgICIwLjE4NDg2MywgMC4yNTcyMDksIDAuMzI5NTUzLCAwLjM4MDkxMywgMC40NjM2MDgsIDAuNTM1NzM4LCAwLjYzOTA0OSIsIFwKLSAgICAgICAgICAiMC4xOTQ4NjUsIDAuMjY2OTk0LCAwLjMzOTQ4NCwgMC4zOTA5MDIsIDAuNDczNTgxLCAwLjU0NTc1MSwgMC42NDkwNTQiLCBcCi0gICAgICAgICAgIjAuMjA4MTE5LCAwLjI4MDI0LCAwLjM1MjgwNSwgMC40MDQxNiwgMC40ODY3NDYsIDAuNTU5MDM2LCAwLjY2MjIzNCIsIFwKLSAgICAgICAgICAiMC4yMTg0NDcsIDAuMjkwNTkxLCAwLjM2MzE0OCwgMC40MTQ3MjIsIDAuNDk3MTgxLCAwLjU2OTM2MywgMC42NzI2MzYiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjg1NzEsIDAuMTc2MjY4LCAwLjMyNTM5MiwgMC40MzA5NzIsIDAuNjAyNDA2LCAwLjc1MDM5OCwgMC45NjQ1OTMiLCBcCi0gICAgICAgICAgIjAuMDI4NTgzLCAwLjE3NjI4MywgMC4zMjUzODQsIDAuNDMxOTY1LCAwLjYwMjM5NSwgMC43NTAwMywgMC45NjQ1ODMiLCBcCi0gICAgICAgICAgIjAuMDI4NTk2LCAwLjE3NjI2NiwgMC4zMjUzMjUsIDAuNDMxMzM5LCAwLjYwMTAzMSwgMC43NTE2MjksIDAuOTYxOTg0IiwgXAotICAgICAgICAgICIwLjAyODY0NCwgMC4xNzYyOTgsIDAuMzI1MzgyLCAwLjQzMTI4MywgMC42MDI0NDMsIDAuNzUxMTY5LCAwLjk2NDU3NCIsIFwKLSAgICAgICAgICAiMC4wMjg2NjgsIDAuMTc2MDMxLCAwLjMyNTI5LCAwLjQzMTQ0NiwgMC42MDIzODgsIDAuNzUwNDQ2LCAwLjk2NDYiLCBcCi0gICAgICAgICAgIjAuMDI4MzgsIDAuMTc2MDQ0LCAwLjMyNTM4NSwgMC40MzEzMDcsIDAuNjAwOTk0LCAwLjc1MTU4NCwgMC45NjI5NTYiLCBcCi0gICAgICAgICAgIjAuMDI4NTgyLCAwLjE3NTc1MywgMC4zMjUzODMsIDAuNDMxOTgyLCAwLjYwMjM5MiwgMC43NTAyNTUsIDAuOTY0NTY4Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTM2MDEsIDAuMjA5NzM4LCAwLjI4Mjk4OCwgMC4zMzYwNzMsIDAuNDIwMzE5LCAwLjQ5MzQ5LCAwLjU5ODQzOCIsIFwKLSAgICAgICAgICAiMC4xNDYxMDYsIDAuMjE5ODMxLCAwLjI5MzA4LCAwLjM0NjE4NSwgMC40MzA0MTQsIDAuNTAzNTY4LCAwLjYwODE1NSIsIFwKLSAgICAgICAgICAiMC4xNTg3MDEsIDAuMjMyNDI3LCAwLjMwNTY3NSwgMC4zNTg3NjEsIDAuNDQzMDA3LCAwLjUxNjE3NSwgMC42MjExMjUiLCBcCi0gICAgICAgICAgIjAuMTcwMTUsIDAuMjQzODcsIDAuMzE3Njc1LCAwLjM3MDIwMywgMC40NTQ0NTYsIDAuNTI3NjYzLCAwLjYzMjUyOCIsIFwKLSAgICAgICAgICAiMC4xODAyMjgsIDAuMjUzOTU5LCAwLjMyNzIxMywgMC4zODAzMTksIDAuNDY0NTQzLCAwLjUzNzY5OCwgMC42NDIyODUiLCBcCi0gICAgICAgICAgIjAuMTk0MDAzLCAwLjI2NzcyOSwgMC4zNDA5NzIsIDAuMzk0MDczLCAwLjQ3ODMwNSwgMC41NTE0NTIsIDAuNjU2MDQ1IiwgXAotICAgICAgICAgICIwLjIwNDc4MiwgMC4yNzg0OTYsIDAuMzUxNzUyLCAwLjQwNDgzMiwgMC40ODkwODIsIDAuNTYyMjU2LCAwLjY2Njc5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDI4MTk0LCAwLjE3NTk1OSwgMC4zMjQzMTYsIDAuNDMxMzgyLCAwLjYwMTg4LCAwLjc1MDY3NSwgMC45NjI0MzMiLCBcCi0gICAgICAgICAgIjAuMDI4MTUzLCAwLjE3NTk2LCAwLjMyNDM5MiwgMC40MzEzODgsIDAuNjAxODYzLCAwLjc1MDY3MSwgMC45NjIxNDUiLCBcCi0gICAgICAgICAgIjAuMDI4MTczLCAwLjE3NTk0NiwgMC4zMjQzNzQsIDAuNDMxMzg0LCAwLjYwMTg3MiwgMC43NTA2NjMsIDAuOTYzMzA3IiwgXAotICAgICAgICAgICIwLjAyODE5NywgMC4xNzU5NjUsIDAuMzI1MDIzLCAwLjQzMTM2OSwgMC42MDE4ODUsIDAuNzUwNjU1LCAwLjk2MjQ2MSIsIFwKLSAgICAgICAgICAiMC4wMjg0NywgMC4xNzU5NjIsIDAuMzI0MzE4LCAwLjQzMTM4OSwgMC42MDE4NjUsIDAuNzUwNjcxLCAwLjk2MjEyNiIsIFwKLSAgICAgICAgICAiMC4wMjgxNSwgMC4xNzU5NTYsIDAuMzI0MzczLCAwLjQzMTM3OSwgMC42MDE4NTIsIDAuNzUwNjU5LCAwLjk2MjE1NiIsIFwKLSAgICAgICAgICAiMC4wMjgwOTMsIDAuMTc1OTUzLCAwLjMyNDU1OSwgMC40MzEzNzEsIDAuNjAxODcxLCAwLjc1MDY1NSwgMC45NjIxNiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkQiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA3NTg2LCAwLjAwNzc1NSwgMC4wMDc3ODQsIDAuMDA3Nzg5LCAwLjAwNzc5MywgMC4wMDc4MDgsIDAuMDA3NzkyIiwgXAotICAgICAgICAgICIwLjAwNzU3OCwgMC4wMDc3NDcsIDAuMDA3NzcxLCAwLjAwNzc3OCwgMC4wMDc3ODQsIDAuMDA3NzksIDAuMDA3NzkxIiwgXAotICAgICAgICAgICIwLjAwNzU3NCwgMC4wMDc3NDIsIDAuMDA3NzY1LCAwLjAwNzc3MiwgMC4wMDc3NzksIDAuMDA3NzgzLCAwLjAwNzc4NSIsIFwKLSAgICAgICAgICAiMC4wMDc1NjMsIDAuMDA3NzMsIDAuMDA3NzU2LCAwLjAwNzc2MiwgMC4wMDc3NzEsIDAuMDA3NzcyLCAwLjAwNzc4IiwgXAotICAgICAgICAgICIwLjAwNzU1MywgMC4wMDc3MjQsIDAuMDA3NzQ4LCAwLjAwNzc1NiwgMC4wMDc3NjMsIDAuMDA3NzY2LCAwLjAwNzc3IiwgXAotICAgICAgICAgICIwLjAwNzU2MSwgMC4wMDc3MjksIDAuMDA3NzU2LCAwLjAwNzc2MiwgMC4wMDc3NzEsIDAuMDA3Nzc0LCAwLjAwNzc3NiIsIFwKLSAgICAgICAgICAiMC4wMDc1NTgsIDAuMDA3NzI3LCAwLjAwNzc2MiwgMC4wMDc3NjksIDAuMDA3Nzc3LCAwLjAwNzc4MSwgMC4wMDc3ODQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwODA3OCwgMC4wMDgyMzQsIDAuMDA4MjUyLCAwLjAwODI2MSwgMC4wMDgyNjYsIDAuMDA4MjY3LCAwLjAwODI3MiIsIFwKLSAgICAgICAgICAiMC4wMDgwNzMsIDAuMDA4MjI5LCAwLjAwODI1LCAwLjAwODI1NiwgMC4wMDgyNjEsIDAuMDA4MjY0LCAwLjAwODI2NSIsIFwKLSAgICAgICAgICAiMC4wMDgwNjYsIDAuMDA4MjIzLCAwLjAwODI0MywgMC4wMDgyNDksIDAuMDA4MjU1LCAwLjAwODI1NywgMC4wMDgyNiIsIFwKLSAgICAgICAgICAiMC4wMDgwNTUsIDAuMDA4MjE3LCAwLjAwODIzOCwgMC4wMDgyNDQsIDAuMDA4MjUxLCAwLjAwODI1MiwgMC4wMDgyNTQiLCBcCi0gICAgICAgICAgIjAuMDA4MDUyLCAwLjAwODIxMSwgMC4wMDgyMzIsIDAuMDA4MjM5LCAwLjAwODI0NSwgMC4wMDgyNDcsIDAuMDA4MjUiLCBcCi0gICAgICAgICAgIjAuMDA4MDQ1LCAwLjAwODIwNSwgMC4wMDgyMjcsIDAuMDA4MjMxLCAwLjAwODI0MiwgMC4wMDgyNCwgMC4wMDgyNDUiLCBcCi0gICAgICAgICAgIjAuMDA4MDUyLCAwLjAwODIxMiwgMC4wMDgyMzQsIDAuMDA4MjQxLCAwLjAwODI0NywgMC4wMDgyNSwgMC4wMDgyNTMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJHIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwODUzNiwgMC4wMDg3LCAwLjAwODcxMiwgMC4wMDg3MTMsIDAuMDA4NzEyLCAwLjAwODcxLCAwLjAwODcwOSIsIFwKLSAgICAgICAgICAiMC4wMDg1MjgsIDAuMDA4NjkxLCAwLjAwODcwNCwgMC4wMDg3MDQsIDAuMDA4NzAzLCAwLjAwODcwMSwgMC4wMDg2OTkiLCBcCi0gICAgICAgICAgIjAuMDA4NTE4LCAwLjAwODY4MiwgMC4wMDg2OTUsIDAuMDA4Njk2LCAwLjAwODY5NSwgMC4wMDg2OTQsIDAuMDA4NjkxIiwgXAotICAgICAgICAgICIwLjAwODUyNywgMC4wMDg2OTEsIDAuMDA4NzAzLCAwLjAwODcwNSwgMC4wMDg3MDMsIDAuMDA4NzAyLCAwLjAwODcwMSIsIFwKLSAgICAgICAgICAiMC4wMDg1MzIsIDAuMDA4Njk2LCAwLjAwODcwOSwgMC4wMDg3MSwgMC4wMDg3MDksIDAuMDA4NzEyLCAwLjAwODcwOCIsIFwKLSAgICAgICAgICAiMC4wMDg1NDIsIDAuMDA4NzA1LCAwLjAwODcxOCwgMC4wMDg3MTksIDAuMDA4NzE4LCAwLjAwODcxNywgMC4wMDg3MTUiLCBcCi0gICAgICAgICAgIjAuMDA4NTUxLCAwLjAwODcxOCwgMC4wMDg3MzEsIDAuMDA4NzMyLCAwLjAwODczMiwgMC4wMDg3MzEsIDAuMDA4NzI3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDg3NDEsIDAuMDA4OSwgMC4wMDg5MiwgMC4wMDg5MjYsIDAuMDA4OTMyLCAwLjAwODkyOSwgMC4wMDg5MzciLCBcCi0gICAgICAgICAgIjAuMDA4NzI3LCAwLjAwODg4NiwgMC4wMDg5MDcsIDAuMDA4OTE3LCAwLjAwODkyMywgMC4wMDg5MTUsIDAuMDA4OTIyIiwgXAotICAgICAgICAgICIwLjAwODcxOCwgMC4wMDg4NzcsIDAuMDA4ODk3LCAwLjAwODkwMywgMC4wMDg5MTQsIDAuMDA4OTA4LCAwLjAwODkxNCIsIFwKLSAgICAgICAgICAiMC4wMDg3MTksIDAuMDA4ODc5LCAwLjAwODg5OSwgMC4wMDg5MDUsIDAuMDA4OTE1LCAwLjAwODkxMywgMC4wMDg5MTYiLCBcCi0gICAgICAgICAgIjAuMDA4NzI2LCAwLjAwODg4NSwgMC4wMDg5MDQsIDAuMDA4OTEsIDAuMDA4OTE2LCAwLjAwODkxNCwgMC4wMDg5MjUiLCBcCi0gICAgICAgICAgIjAuMDA4NzMsIDAuMDA4ODkxLCAwLjAwODkxMiwgMC4wMDg5MTgsIDAuMDA4OTIzLCAwLjAwODkyNiwgMC4wMDg5MjgiLCBcCi0gICAgICAgICAgIjAuMDA4NzUzLCAwLjAwODkxLCAwLjAwODkyOSwgMC4wMDg5MzYsIDAuMDA4OTQxLCAwLjAwODk0NCwgMC4wMDg5NDciKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFFOKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDEuMDUzMjQ7Ci0gICAgZnVuY3Rpb24gOiAiTjAiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkQiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTA2MTc3LCAwLjE4MDg1OCwgMC4yNTI5MjEsIDAuMzA0MzgyLCAwLjM4Njc2LCAwLjQ1ODcyMywgMC41NjE3NDciLCBcCi0gICAgICAgICAgIjAuMTE0NzU2LCAwLjE4OTQyOCwgMC4yNjE1MDQsIDAuMzEyOTU0LCAwLjM5NTI2NywgMC40Njc0MDEsIDAuNTcwMjg4IiwgXAotICAgICAgICAgICIwLjEyNDU4MSwgMC4xOTkyNTMsIDAuMjcxMzM1LCAwLjMyMjgwMiwgMC40MDUxNTYsIDAuNDc3MTg1LCAwLjU4MDIwOCIsIFwKLSAgICAgICAgICAiMC4xMzQwMjYsIDAuMjA4NzI5LCAwLjI4MDc5OSwgMC4zMzIyNTgsIDAuNDE0NjQsIDAuNDg2Njk4LCAwLjU4OTYxOCIsIFwKLSAgICAgICAgICAiMC4xNDMwMjYsIDAuMjE3NzExLCAwLjI4OTc5LCAwLjM0MTI4NCwgMC40MjM2MTksIDAuNDk1NjQyLCAwLjU5ODY3MiIsIFwKLSAgICAgICAgICAiMC4xNTYxMzgsIDAuMjMwODUzLCAwLjMwMjk1MywgMC4zNTQzODcsIDAuNDM2NzY4LCAwLjUwODc3NiwgMC42MTE3MjMiLCBcCi0gICAgICAgICAgIjAuMTY2NDEyLCAwLjI0MTE0OSwgMC4zMTMyMjQsIDAuMzY0Njc2LCAwLjQ0NzA5NCwgMC41MTkwNzYsIDAuNjIxOTk2Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM1NTk0LCAwLjE3Nzg5MywgMC4zMjUzLCAwLjQzMjI0NiwgMC42MDA4ODksIDAuNzUxNDQ5LCAwLjk2MzA2OSIsIFwKLSAgICAgICAgICAiMC4wMzU1MzYsIDAuMTc4MTU5LCAwLjMyNTM0MiwgMC40MzIyMTksIDAuNjAyNTA4LCAwLjc0OTgxMiwgMC45NjQ2OSIsIFwKLSAgICAgICAgICAiMC4wMzU1MjQsIDAuMTc4MTc0LCAwLjMyNTM1NywgMC40MzExMywgMC42MDI3MzEsIDAuNzUwNjk1LCAwLjk2MjU3IiwgXAotICAgICAgICAgICIwLjAzNTU0NCwgMC4xNzgxNzEsIDAuMzI2MDU0LCAwLjQzMjI2LCAwLjYwMTQ2NiwgMC43NTE4MDYsIDAuOTYzMDM1IiwgXAotICAgICAgICAgICIwLjAzNTU2MSwgMC4xNzgxODYsIDAuMzI1NDc3LCAwLjQzMjQ0MSwgMC42MDI3MzYsIDAuNzUwNjYyLCAwLjk2MjkzOSIsIFwKLSAgICAgICAgICAiMC4wMzU3MDUsIDAuMTc3OTYxLCAwLjMyNTQ4LCAwLjQzMTc4NywgMC42MDI3MjEsIDAuNzUxMzI5LCAwLjk2MjkxNiIsIFwKLSAgICAgICAgICAiMC4wMzU4MDgsIDAuMTc4MjI4LCAwLjMyNTUxLCAwLjQzMjE4MywgMC42MDE0OTMsIDAuNzUxNTksIDAuOTYzNDkiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDQzOTgsIDAuMTgwNDQxLCAwLjI1MzkzNiwgMC4zMDY0MDIsIDAuMzkwMzYxLCAwLjQ2MzgzNCwgMC41Njg3NzIiLCBcCi0gICAgICAgICAgIjAuMTEzMTc4LCAwLjE4OTIyNCwgMC4yNjI2NzgsIDAuMzE1MTg4LCAwLjM5OTE2LCAwLjQ3MjYsIDAuNTc3NTE3IiwgXAotICAgICAgICAgICIwLjEyNDAwMSwgMC4yMDAwMzYsIDAuMjczNTM5LCAwLjMyNjAwOSwgMC40MDk5NTksIDAuNDgzMzU5LCAwLjU4ODQyOSIsIFwKLSAgICAgICAgICAiMC4xMzQzOTgsIDAuMjEwNDI5LCAwLjI4Mzg5OSwgMC4zMzY0MDgsIDAuNDIwMjYzLCAwLjQ5Mzc5NSwgMC41OTg2MjEiLCBcCi0gICAgICAgICAgIjAuMTQ0NDg1LCAwLjIyMDU0MywgMC4yOTQwNDEsIDAuMzQ2NTA4LCAwLjQzMDQ2NywgMC41MDM5MzgsIDAuNjA4ODgxIiwgXAotICAgICAgICAgICIwLjE1OTMyNiwgMC4yMzUzOSwgMC4zMDg4ODcsIDAuMzYxMzY3LCAwLjQ0NTMyOSwgMC41MTg3NjMsIDAuNjIzNzMzIiwgXAotICAgICAgICAgICIwLjE3MTA2NCwgMC4yNDcxNSwgMC4zMjA2NDksIDAuMzczMTE5LCAwLjQ1NzA3OSwgMC41MzA1MjQsIDAuNjM1NTI0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM0ODc3LCAwLjE3NzQ3NiwgMC4zMjU4NTIsIDAuNDMwNTM5LCAwLjYwMjI0NCwgMC43NDg2MjksIDAuOTY0MTU2IiwgXAotICAgICAgICAgICIwLjAzNDg1LCAwLjE3NzQ3OSwgMC4zMjUzLCAwLjQzMDU4MSwgMC42MDEzODksIDAuNzUwODQ2LCAwLjk2NDA3NiIsIFwKLSAgICAgICAgICAiMC4wMzQ4MDEsIDAuMTc3Mzc0LCAwLjMyNTg1MSwgMC40MzA1MzIsIDAuNjAxODIsIDAuNzUwMTIzLCAwLjk2MTk1IiwgXAotICAgICAgICAgICIwLjAzNDgyMywgMC4xNzc3NjMsIDAuMzI1NjIxLCAwLjQzMDQzOSwgMC42MDEyNzUsIDAuNzUxMjQ2LCAwLjk2MzM5NiIsIFwKLSAgICAgICAgICAiMC4wMzQ4MywgMC4xNzc0NzIsIDAuMzI1ODQsIDAuNDMwNTM3LCAwLjYwMjIzMSwgMC43NTAxMiwgMC45NjQxODkiLCBcCi0gICAgICAgICAgIjAuMDM0OTcsIDAuMTc3Mzg1LCAwLjMyNTgwNywgMC40MzEzNTMsIDAuNjAyMjQ5LCAwLjc1MTEsIDAuOTY0MDk5IiwgXAotICAgICAgICAgICIwLjAzNTAyNiwgMC4xNzc3MTIsIDAuMzI1MjA2LCAwLjQzMTQxMywgMC42MDIyMiwgMC43NTAwNTksIDAuOTYyMDM4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkciOwotICAgICAgdGltaW5nX3NlbnNlIDogbm9uX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiByaXNpbmdfZWRnZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMjYwNDksIDAuMjAwNzQyLCAwLjI3MjgzNCwgMC4zMjQyNjEsIDAuNDA2NjUyLCAwLjQ3ODY2MywgMC41ODE1NzciLCBcCi0gICAgICAgICAgIjAuMTM2MTQsIDAuMjEwODMxLCAwLjI4MjkyMywgMC4zMzQzNTIsIDAuNDE2NzM5LCAwLjQ4ODc1MywgMC41OTE3MTQiLCBcCi0gICAgICAgICAgIjAuMTQ4NzM4LCAwLjIyMzQzLCAwLjI5NTUyMywgMC4zNDY5NSwgMC40MjkzNCwgMC41MDEzNTIsIDAuNjA0MTM0IiwgXAotICAgICAgICAgICIwLjE2MDE4OCwgMC4yMzQ4ODIsIDAuMzA2OTY1LCAwLjM1ODQsIDAuNDQwNzk5LCAwLjUxMjgwMywgMC42MTU3MiIsIFwKLSAgICAgICAgICAiMC4xNzAyNzIsIDAuMjQ0OTYxLCAwLjMxNzA1MywgMC4zNjg0ODIsIDAuNDUwODY5LCAwLjUyMjg4MywgMC42MjU4NDMiLCBcCi0gICAgICAgICAgIjAuMTg0MDQ2LCAwLjI1ODc0NiwgMC4zMzA4MzksIDAuMzgyMjY4LCAwLjQ2NDY1NSwgMC41MzY2NzEsIDAuNjM5NjMyIiwgXAotICAgICAgICAgICIwLjE5NDgxNCwgMC4yNjk1MDMsIDAuMzQxNTk3LCAwLjM5MzAyMiwgMC40NzU0MTYsIDAuNTQ3NDI1LCAwLjY1MDQ2NCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzNTU0NywgMC4xNzgyMTYsIDAuMzI1MzgzLCAwLjQzMjI0NSwgMC42MDI3NjcsIDAuNzUxMzYsIDAuOTYzNDEiLCBcCi0gICAgICAgICAgIjAuMDM1NTQ2LCAwLjE3ODIxMiwgMC4zMjU0NjQsIDAuNDMyMjYsIDAuNjAyNzU1LCAwLjc1MTM0NywgMC45NjMwNDEiLCBcCi0gICAgICAgICAgIjAuMDM1NTQ1LCAwLjE3ODIwNiwgMC4zMjU0NDQsIDAuNDMyMjQyLCAwLjYwMjc2MSwgMC43NTEzNDYsIDAuOTY0MDQ0IiwgXAotICAgICAgICAgICIwLjAzNTU0NywgMC4xNzgyMTcsIDAuMzI2MTA2LCAwLjQzMjIyOCwgMC42MDI3NjYsIDAuNzUxMzU1LCAwLjk2MzQ4IiwgXAotICAgICAgICAgICIwLjAzNTU0LCAwLjE3ODIxNCwgMC4zMjUzODcsIDAuNDMyMjY2LCAwLjYwMjc1NiwgMC43NTEzNDgsIDAuOTYzMDYyIiwgXAotICAgICAgICAgICIwLjAzNTU2OCwgMC4xNzgyMTQsIDAuMzI1NDY1LCAwLjQzMjI1MywgMC42MDI3NSwgMC43NTEzMzEsIDAuOTYzMDk3IiwgXAotICAgICAgICAgICIwLjAzNTU4MywgMC4xNzgyMTYsIDAuMzI1NTExLCAwLjQzMjIzNCwgMC42MDI3NjMsIDAuNzUxMzQxLCAwLjk2Mjk5NyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE0MTU3MywgMC4yMTc2MTMsIDAuMjkxMTA2LCAwLjM0MzU4MiwgMC40Mjc1MzIsIDAuNTAxMDA5LCAwLjYwNTk0NCIsIFwKLSAgICAgICAgICAiMC4xNTE3MjcsIDAuMjI3NzY2LCAwLjMwMTI1NywgMC4zNTM3NCwgMC40Mzc2NzksIDAuNTExMTcsIDAuNjE2MDg5IiwgXAotICAgICAgICAgICIwLjE2NDQ0NiwgMC4yNDA0OTEsIDAuMzEzOTY5LCAwLjM2NjQ2MiwgMC40NTA0NDIsIDAuNTIzOSwgMC42Mjg4IiwgXAotICAgICAgICAgICIwLjE3NTczOSwgMC4yNTE3ODQsIDAuMzI1MjcyLCAwLjM3Nzc1MSwgMC40NjE3MTEsIDAuNTM1MTU2LCAwLjY0MDEwNyIsIFwKLSAgICAgICAgICAiMC4xODU3NDQsIDAuMjYxNzg1LCAwLjMzNTI2NSwgMC4zODc3NiwgMC40NzE2OTQsIDAuNTQ1MTc2LCAwLjY1MDExMyIsIFwKLSAgICAgICAgICAiMC4xOTg5OTMsIDAuMjc1MDM2LCAwLjM0ODUyOCwgMC40MDEwMDgsIDAuNDg0OTk0LCAwLjU1ODQyLCAwLjY2MzMzIiwgXAotICAgICAgICAgICIwLjIwOTMyOCwgMC4yODUzNzIsIDAuMzU4ODYzLCAwLjQxMTM1MywgMC40OTUyODUsIDAuNTY4NzgsIDAuNjczNjkxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM0Nzc4LCAwLjE3Nzk4NSwgMC4zMjU4MjYsIDAuNDMwOTMxLCAwLjYwMjIxMSwgMC43NTAxMzEsIDAuOTY0MTkyIiwgXAotICAgICAgICAgICIwLjAzNDc5MiwgMC4xNzgwMDUsIDAuMzI1ODE0LCAwLjQzMjA1MywgMC42MDIxOTUsIDAuNzQ5Njc0LCAwLjk2NDE3MiIsIFwKLSAgICAgICAgICAiMC4wMzQ3NzQsIDAuMTc3OTg3LCAwLjMyNTcxNSwgMC40MzE0MjIsIDAuNjAwOTU5LCAwLjc1MTM1MSwgMC45NjE0ODIiLCBcCi0gICAgICAgICAgIjAuMDM0Nzg0LCAwLjE3ODAyNiwgMC4zMjU4MTEsIDAuNDMxMzk3LCAwLjYwMjI2MiwgMC43NTA3ODUsIDAuOTY0MTYyIiwgXAotICAgICAgICAgICIwLjAzNDc3OCwgMC4xNzc2OTMsIDAuMzI1Njk1LCAwLjQzMTQ4MiwgMC42MDIxNjQsIDAuNzUwMTc2LCAwLjk2NDE3MyIsIFwKLSAgICAgICAgICAiMC4wMzQ3OTIsIDAuMTc3NjY4LCAwLjMyNTgxNiwgMC40MzE0MDYsIDAuNjAwOTYxLCAwLjc1MTI1MSwgMC45NjI3MDUiLCBcCi0gICAgICAgICAgIjAuMDM0Nzg2LCAwLjE3NzQ2OCwgMC4zMjU4MTEsIDAuNDMyMDgxLCAwLjYwMjE5MSwgMC43NDk4MzEsIDAuOTY0MTUyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDgwNzgsIDAuMDA4MjM0LCAwLjAwODI1MiwgMC4wMDgyNjEsIDAuMDA4MjY2LCAwLjAwODI2NywgMC4wMDgyNzIiLCBcCi0gICAgICAgICAgIjAuMDA4MDczLCAwLjAwODIyOSwgMC4wMDgyNSwgMC4wMDgyNTYsIDAuMDA4MjYxLCAwLjAwODI2NCwgMC4wMDgyNjUiLCBcCi0gICAgICAgICAgIjAuMDA4MDY2LCAwLjAwODIyMywgMC4wMDgyNDMsIDAuMDA4MjQ5LCAwLjAwODI1NSwgMC4wMDgyNTcsIDAuMDA4MjYiLCBcCi0gICAgICAgICAgIjAuMDA4MDU1LCAwLjAwODIxNywgMC4wMDgyMzgsIDAuMDA4MjQ0LCAwLjAwODI1MSwgMC4wMDgyNTIsIDAuMDA4MjU0IiwgXAotICAgICAgICAgICIwLjAwODA1MiwgMC4wMDgyMTEsIDAuMDA4MjMyLCAwLjAwODIzOSwgMC4wMDgyNDUsIDAuMDA4MjQ3LCAwLjAwODI1IiwgXAotICAgICAgICAgICIwLjAwODA0NSwgMC4wMDgyMDUsIDAuMDA4MjI3LCAwLjAwODIzMSwgMC4wMDgyNDIsIDAuMDA4MjQsIDAuMDA4MjQ1IiwgXAotICAgICAgICAgICIwLjAwODA1MiwgMC4wMDgyMTIsIDAuMDA4MjM0LCAwLjAwODI0MSwgMC4wMDgyNDcsIDAuMDA4MjUsIDAuMDA4MjUzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDc1ODYsIDAuMDA3NzU1LCAwLjAwNzc4NCwgMC4wMDc3ODksIDAuMDA3NzkzLCAwLjAwNzgwOCwgMC4wMDc3OTIiLCBcCi0gICAgICAgICAgIjAuMDA3NTc4LCAwLjAwNzc0NywgMC4wMDc3NzEsIDAuMDA3Nzc4LCAwLjAwNzc4NCwgMC4wMDc3OSwgMC4wMDc3OTEiLCBcCi0gICAgICAgICAgIjAuMDA3NTc0LCAwLjAwNzc0MiwgMC4wMDc3NjUsIDAuMDA3NzcyLCAwLjAwNzc3OSwgMC4wMDc3ODMsIDAuMDA3Nzg1IiwgXAotICAgICAgICAgICIwLjAwNzU2MywgMC4wMDc3MywgMC4wMDc3NTYsIDAuMDA3NzYyLCAwLjAwNzc3MSwgMC4wMDc3NzIsIDAuMDA3NzgiLCBcCi0gICAgICAgICAgIjAuMDA3NTUzLCAwLjAwNzcyNCwgMC4wMDc3NDgsIDAuMDA3NzU2LCAwLjAwNzc2MywgMC4wMDc3NjYsIDAuMDA3NzciLCBcCi0gICAgICAgICAgIjAuMDA3NTYxLCAwLjAwNzcyOSwgMC4wMDc3NTYsIDAuMDA3NzYyLCAwLjAwNzc3MSwgMC4wMDc3NzQsIDAuMDA3Nzc2IiwgXAotICAgICAgICAgICIwLjAwNzU1OCwgMC4wMDc3MjcsIDAuMDA3NzYyLCAwLjAwNzc2OSwgMC4wMDc3NzcsIDAuMDA3NzgxLCAwLjAwNzc4NCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkciOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA4NzQxLCAwLjAwODksIDAuMDA4OTIsIDAuMDA4OTI2LCAwLjAwODkzMiwgMC4wMDg5MjksIDAuMDA4OTM3IiwgXAotICAgICAgICAgICIwLjAwODcyNywgMC4wMDg4ODYsIDAuMDA4OTA3LCAwLjAwODkxNywgMC4wMDg5MjMsIDAuMDA4OTE1LCAwLjAwODkyMiIsIFwKLSAgICAgICAgICAiMC4wMDg3MTgsIDAuMDA4ODc3LCAwLjAwODg5NywgMC4wMDg5MDMsIDAuMDA4OTE0LCAwLjAwODkwOCwgMC4wMDg5MTQiLCBcCi0gICAgICAgICAgIjAuMDA4NzE5LCAwLjAwODg3OSwgMC4wMDg4OTksIDAuMDA4OTA1LCAwLjAwODkxNSwgMC4wMDg5MTMsIDAuMDA4OTE2IiwgXAotICAgICAgICAgICIwLjAwODcyNiwgMC4wMDg4ODUsIDAuMDA4OTA0LCAwLjAwODkxLCAwLjAwODkxNiwgMC4wMDg5MTQsIDAuMDA4OTI1IiwgXAotICAgICAgICAgICIwLjAwODczLCAwLjAwODg5MSwgMC4wMDg5MTIsIDAuMDA4OTE4LCAwLjAwODkyMywgMC4wMDg5MjYsIDAuMDA4OTI4IiwgXAotICAgICAgICAgICIwLjAwODc1MywgMC4wMDg5MSwgMC4wMDg5MjksIDAuMDA4OTM2LCAwLjAwODk0MSwgMC4wMDg5NDQsIDAuMDA4OTQ3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDg1MzYsIDAuMDA4NywgMC4wMDg3MTIsIDAuMDA4NzEzLCAwLjAwODcxMiwgMC4wMDg3MSwgMC4wMDg3MDkiLCBcCi0gICAgICAgICAgIjAuMDA4NTI4LCAwLjAwODY5MSwgMC4wMDg3MDQsIDAuMDA4NzA0LCAwLjAwODcwMywgMC4wMDg3MDEsIDAuMDA4Njk5IiwgXAotICAgICAgICAgICIwLjAwODUxOCwgMC4wMDg2ODIsIDAuMDA4Njk1LCAwLjAwODY5NiwgMC4wMDg2OTUsIDAuMDA4Njk0LCAwLjAwODY5MSIsIFwKLSAgICAgICAgICAiMC4wMDg1MjcsIDAuMDA4NjkxLCAwLjAwODcwMywgMC4wMDg3MDUsIDAuMDA4NzAzLCAwLjAwODcwMiwgMC4wMDg3MDEiLCBcCi0gICAgICAgICAgIjAuMDA4NTMyLCAwLjAwODY5NiwgMC4wMDg3MDksIDAuMDA4NzEsIDAuMDA4NzA5LCAwLjAwODcxMiwgMC4wMDg3MDgiLCBcCi0gICAgICAgICAgIjAuMDA4NTQyLCAwLjAwODcwNSwgMC4wMDg3MTgsIDAuMDA4NzE5LCAwLjAwODcxOCwgMC4wMDg3MTcsIDAuMDA4NzE1IiwgXAotICAgICAgICAgICIwLjAwODU1MSwgMC4wMDg3MTgsIDAuMDA4NzMxLCAwLjAwODczMiwgMC4wMDg3MzIsIDAuMDA4NzMxLCAwLjAwODcyNyIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IEFEREZIWDEgKgotICogLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoQURERkhYMSkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjM5ODQ0ODsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAzMDk2NDk7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAzMDc5MDI7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAzMDk2NDk7Ci0gIH0KLSAgcGluKEIpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMjk0NjAxOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMjkyODcyOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMjk0NjAxOwotICB9Ci0gIHBpbihDSSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAyMjcyNzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDIyNTg0OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMjI3Mjc7Ci0gIH0KLSAgcGluKENPKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMjYxMzUxOwotICAgIGZ1bmN0aW9uIDogIigoKEEgQikrKEIgQ0kpKSsoQ0kgQSkpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTE5MTgsIDAuMTM3Mzk4LCAwLjI3NzUzMywgMC40MDEwODgsIDAuNTY0MTUxLCAwLjg5MjgzOSwgMS4wOTY5MSIsIFwKLSAgICAgICAgICAiMC4xMjEzMTYsIDAuMTQ2ODEzLCAwLjI4Njc3MSwgMC40MTAwNDYsIDAuNTczMzcsIDAuOTAxMTgzLCAxLjEwNTgyIiwgXAotICAgICAgICAgICIwLjEzMjMwNywgMC4xNTc3OSwgMC4yOTc4NjIsIDAuNDIwOCwgMC41ODQzNDcsIDAuOTEyMDQzLCAxLjExNjU4IiwgXAotICAgICAgICAgICIwLjE0MzAxMywgMC4xNjg0ODMsIDAuMzA4NDkxLCAwLjQzMTUyLCAwLjU5NTU2OSwgMC45MjI2ODYsIDEuMTI3MjciLCBcCi0gICAgICAgICAgIjAuMTUzMzY1LCAwLjE3ODg0MiwgMC4zMTg2MDEsIDAuNDQxNzM1LCAwLjYwNTE1MiwgMC45MzMwODEsIDEuMTM3NjQiLCBcCi0gICAgICAgICAgIjAuMTY5MDIsIDAuMTk0NTI4LCAwLjMzNDgyNiwgMC40NTc2MTgsIDAuNjIwNzgzLCAwLjk0ODgyNywgMS4xNTM2MiIsIFwKLSAgICAgICAgICAiMC4xODE1OTcsIDAuMjA3MjEsIDAuMzQ2OTg3LCAwLjQ3MDQ1NSwgMC42MzQyMTEsIDAuOTYxNTAxLCAxLjE2NjI1Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5OTgxOCwgMC4xNDk2ODUsIDAuNDMwNzQyLCAwLjY4MzMyMywgMS4wMTg1MywgMS42OTExNSwgMi4xMTU5MSIsIFwKLSAgICAgICAgICAiMC4xMDAyMjksIDAuMTQ5Njk2LCAwLjQzMTQ5OSwgMC42ODE5NTQsIDEuMDE5MjIsIDEuNjk0MTYsIDIuMTE1NzciLCBcCi0gICAgICAgICAgIjAuMDk5OTY4LCAwLjE0OTk4OSwgMC40MzA2MDksIDAuNjgxODQ4LCAxLjAxOTEzLCAxLjY5NDA5LCAyLjExNTY5IiwgXAotICAgICAgICAgICIwLjEwMDIxMSwgMC4xNDk3MjIsIDAuNDMwODA0LCAwLjY4MjYxMSwgMS4wMTkyNywgMS42OTQxMiwgMi4xMTU3IiwgXAotICAgICAgICAgICIwLjEwMDIyNSwgMC4xNDk3MTIsIDAuNDMwNTQxLCAwLjY4MzMwMSwgMS4wMTgyOSwgMS42OTQxMywgMi4xMTU2NyIsIFwKLSAgICAgICAgICAiMC4xMDExODUsIDAuMTUwMzMsIDAuNDMxNjE3LCAwLjY4MjYyOSwgMS4wMTgzNywgMS42OTQxLCAyLjExNTY3IiwgXAotICAgICAgICAgICIwLjEwMTgxNSwgMC4xNTEwMjUsIDAuNDMwNzI0LCAwLjY4MjU3NSwgMS4wMjAwNSwgMS42OTM3NiwgMi4xMTUzMyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTU3MzMsIDAuMTQxNjQsIDAuMjgyODM2LCAwLjQwNjQyMSwgMC41NzE0MjMsIDAuOTAxMjQzLCAxLjEwNzU0IiwgXAotICAgICAgICAgICIwLjEyNTE1NywgMC4xNTEwNjgsIDAuMjkyMDY0LCAwLjQxNjA4NywgMC41ODA2MDYsIDAuOTEwNDQ3LCAxLjExNjU2IiwgXAotICAgICAgICAgICIwLjEzNTUxOSwgMC4xNjE0MzIsIDAuMzAyMjc1LCAwLjQyNjQ2NywgMC41OTA5NjgsIDAuOTIwODI0LCAxLjEyNzAyIiwgXAotICAgICAgICAgICIwLjE0NTM0NSwgMC4xNzEyNjgsIDAuMzEyNTM1LCAwLjQzNjMwOCwgMC42MDA4MTgsIDAuOTMxMjA4LCAxLjEzNjgxIiwgXAotICAgICAgICAgICIwLjE1NDcwOSwgMC4xODA2NTEsIDAuMzIxOTIzLCAwLjQ0NTcxNywgMC42MTAyNSwgMC45NDA0NjUsIDEuMTQ2MjMiLCBcCi0gICAgICAgICAgIjAuMTY4Nzk4LCAwLjE5NDc3OCwgMC4zMzU2MjgsIDAuNDU5OTM0LCAwLjYyNDM1OCwgMC45NTQxNzYsIDEuMTYwNDkiLCBcCi0gICAgICAgICAgIjAuMTc5ODkzLCAwLjIwNTk1MywgMC4zNDcyMSwgMC40NzExMTYsIDAuNjM1NjA2LCAwLjk2NTUzMiwgMS4xNzE2MiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDAxMTcsIDAuMTQ4NzIyLCAwLjQyNTYxNCwgMC42NzM0MjIsIDEuMDA2MjksIDEuNjcxMDgsIDIuMDg3MDIiLCBcCi0gICAgICAgICAgIjAuMTAwMTQ2LCAwLjE0ODc1NSwgMC40MjUxOTcsIDAuNjczMzA5LCAxLjAwMzc4LCAxLjY3MTMzLCAyLjA4Njc4IiwgXAotICAgICAgICAgICIwLjEwMDEzLCAwLjE0ODc0MSwgMC40MjU3MTYsIDAuNjcyNzUsIDEuMDAzOTMsIDEuNjcxMjksIDIuMDg3MDYiLCBcCi0gICAgICAgICAgIjAuMDk5Nzc0LCAwLjE0ODU2MywgMC40MjU5NTcsIDAuNjczMjk3LCAxLjAwNTk3LCAxLjY3MTA1LCAyLjA4Njk2IiwgXAotICAgICAgICAgICIwLjA5OTk4MSwgMC4xNDg5MTksIDAuNDI1MTMxLCAwLjY3MzQyNCwgMS4wMDM4OSwgMS42NzExNywgMi4wODI5MyIsIFwKLSAgICAgICAgICAiMC4xMDEwOCwgMC4xNDk0MTcsIDAuNDI1NjM2LCAwLjY3MzM1NCwgMS4wMDYwNCwgMS42NzA5LCAyLjA4NjcyIiwgXAotICAgICAgICAgICIwLjEwMTk2OCwgMC4xNTAxMDQsIDAuNDI1ODE1LCAwLjY3MzQ0NSwgMS4wMDYwNSwgMS42Njc5OSwgMi4wODYzMiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTIxODQsIDAuMTM3NjY5LCAwLjI3Nzk0NiwgMC40MDE0NDMsIDAuNTY0MzQzLCAwLjg5MjU4NCwgMS4wOTcyMyIsIFwKLSAgICAgICAgICAiMC4xMjExNTQsIDAuMTQ2NjM5LCAwLjI4NjUyNCwgMC40MTAzNjgsIDAuNTczMjY1LCAwLjkwMTU4OSwgMS4xMDYzNiIsIFwKLSAgICAgICAgICAiMC4xMzI3NjIsIDAuMTU4MjYzLCAwLjI5ODE0NiwgMC40MjE5NzQsIDAuNTg2MDg3LCAwLjkxMzIwOCwgMS4xMTc3OSIsIFwKLSAgICAgICAgICAiMC4xNDQ1MTEsIDAuMTY5OTkxLCAwLjMwOTkyOCwgMC40MzM4NSwgMC41OTY3MjcsIDAuOTI0OTQzLCAxLjEyOTY0IiwgXAotICAgICAgICAgICIwLjE1NjIyNSwgMC4xODE3MTEsIDAuMzIxNjYyLCAwLjQ0NTU0NiwgMC42MDg0MTksIDAuOTM2NjUsIDEuMTQwNSIsIFwKLSAgICAgICAgICAiMC4xNzQwMzYsIDAuMTk5NTIsIDAuMzM5NDE4LCAwLjQ2MjcwMiwgMC42MjY0NCwgMC45NTQzMDIsIDEuMTU5MDIiLCBcCi0gICAgICAgICAgIjAuMTg3OTg4LCAwLjIxMzUyMiwgMC4zNTM0NjUsIDAuNDc3MzAzLCAwLjY0MTE1MywgMC45Njg0MDIsIDEuMTczMSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDA1MDYsIDAuMTUwMTY5LCAwLjQzMDMxLCAwLjY4MjMzNCwgMS4wMTkxNiwgMS42OTQzMywgMi4xMTYwMSIsIFwKLSAgICAgICAgICAiMC4xMDA2OTQsIDAuMTUwMDkzLCAwLjQzMDgwMywgMC42ODIzMjYsIDEuMDE4OSwgMS42OTQyMywgMi4xMTU4NCIsIFwKLSAgICAgICAgICAiMC4xMDA2LCAwLjE0OTY3OCwgMC40MzAzOTMsIDAuNjgyMzE0LCAxLjAxODMzLCAxLjY5NDEyLCAyLjExNTczIiwgXAotICAgICAgICAgICIwLjEwMDczMywgMC4xNDk2NTYsIDAuNDMwNTIzLCAwLjY4MjMxMywgMS4wMTg2OCwgMS42OTQxNCwgMi4xMTU3NCIsIFwKLSAgICAgICAgICAiMC4xMDA4OTgsIDAuMTQ5OTQ2LCAwLjQzMDU4OSwgMC42ODIzODQsIDEuMDE4ODksIDEuNjk0MTIsIDIuMTEyOTEiLCBcCi0gICAgICAgICAgIjAuMTAyMDE0LCAwLjE1MTM0MiwgMC40MzA2ODYsIDAuNjgyMzI1LCAxLjAxODk1LCAxLjY5Mzk5LCAyLjExNTYxIiwgXAotICAgICAgICAgICIwLjEwMzExMiwgMC4xNTE3OTUsIDAuNDMwOTQyLCAwLjY4MTg2NiwgMS4wMTg3NywgMS42OTM3OSwgMi4xMTUzMSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTQ1MzcsIDAuMTQwNzcyLCAwLjI4MjIyLCAwLjQwNTk3LCAwLjU3MDU5MywgMC45MDA2NjIsIDEuMTA2NDkiLCBcCi0gICAgICAgICAgIjAuMTIzNjQ3LCAwLjE0OTg1LCAwLjI5MTA5NCwgMC40MTUxMTEsIDAuNTc5NjkyLCAwLjkxMDA0NywgMS4xMTU2MiIsIFwKLSAgICAgICAgICAiMC4xMzM4NTQsIDAuMTYwMDQyLCAwLjMwMTQ5OSwgMC40MjUxODIsIDAuNTg5ODU4LCAwLjkxOTY5NywgMS4xMjYxNSIsIFwKLSAgICAgICAgICAiMC4xNDQ1MDEsIDAuMTcwMzg4LCAwLjMxMTczMSwgMC40MzU4NiwgMC42MDA2ODUsIDAuOTMwOTg0LCAxLjEzNjkyIiwgXAotICAgICAgICAgICIwLjE1NTc4NSwgMC4xODE2NzksIDAuMzIyNzUzLCAwLjQ0NzE1NCwgMC42MTI0NTgsIDAuOTQyMzEzLCAxLjE0ODA2IiwgXAotICAgICAgICAgICIwLjE3MjQsIDAuMTk4MzE3LCAwLjMzOTQxMSwgMC40NjM4MDcsIDAuNjI5MTE5LCAwLjk1ODk0NCwgMS4xNjUwMiIsIFwKLSAgICAgICAgICAiMC4xODUzMjYsIDAuMjExMjk0LCAwLjM1Mjc5NSwgMC40NzcwNiwgMC42NDEzODgsIDAuOTcxODg2LCAxLjE3ODE3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwMTQ3LCAwLjE1MDExNCwgMC40MjYwMjksIDAuNjczMzkzLCAxLjAwMzksIDEuNjcxMzMsIDIuMDg2NjciLCBcCi0gICAgICAgICAgIjAuMTAyMDIsIDAuMTQ5MjQ4LCAwLjQyNjc0NCwgMC42NzMzNjUsIDEuMDAzOSwgMS42NzEzNCwgMi4wODYxNiIsIFwKLSAgICAgICAgICAiMC4xMDE4MDQsIDAuMTUwMDE2LCAwLjQyNjE3MywgMC42NzMzMjUsIDEuMDA2MDEsIDEuNjcwNjQsIDIuMDg2NjkiLCBcCi0gICAgICAgICAgIjAuMTAyMDQzLCAwLjE1MDAzMiwgMC40MjYxNywgMC42NzMzOTIsIDEuMDA1NzEsIDEuNjcxMjUsIDIuMDg2MTQiLCBcCi0gICAgICAgICAgIjAuMTAxODQ2LCAwLjE0OTkyNSwgMC40MjYyMTcsIDAuNjczMzc5LCAxLjAwNTI3LCAxLjY3MTI2LCAyLjA4NDM2IiwgXAotICAgICAgICAgICIwLjEwMzU5NCwgMC4xNTE0ODksIDAuNDI2NjA0LCAwLjY3MzQyNywgMS4wMDM3OSwgMS42NzEyLCAyLjA4NjQzIiwgXAotICAgICAgICAgICIwLjEwNDgxOSwgMC4xNTI1NzksIDAuNDI2OTExLCAwLjY3MzEwMSwgMS4wMDUwOSwgMS42NzA3NiwgMi4wODY5MSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTA1ODQ3LCAwLjEzMTMyMiwgMC4yNzEzNjIsIDAuMzkzNjg5LCAwLjU1Nzg2NSwgMC44ODQ2MTIsIDEuMDg5MjEiLCBcCi0gICAgICAgICAgIjAuMTE1MDkxLCAwLjE0MDU4NCwgMC4yODA2MzMsIDAuNDAzNDE3LCAwLjU2NzEyNCwgMC44OTM4NTksIDEuMDk4NDYiLCBcCi0gICAgICAgICAgIjAuMTI2OTA0LCAwLjE1MjM4NiwgMC4yOTIzNDIsIDAuNDE1MzksIDAuNTc4OTg3LCAwLjkwNTc0NiwgMS4xMTAyNiIsIFwKLSAgICAgICAgICAiMC4xMzg3NDcsIDAuMTY0MjIxLCAwLjMwNDI1NSwgMC40Mjc0OSwgMC41OTA1MDUsIDAuOTE3Njk4LCAxLjEyMjExIiwgXAotICAgICAgICAgICIwLjE1MDIzOCwgMC4xNzU3MjUsIDAuMzE1NzE5LCAwLjQzODc2MywgMC42MDIwMDUsIDAuOTI5MTQxLCAxLjEzMzciLCBcCi0gICAgICAgICAgIjAuMTY3NDA1LCAwLjE5MjkxMiwgMC4zMzI4NzgsIDAuNDU1OTk1LCAwLjYxOTYzMSwgMC45NDY1NDEsIDEuMTUwOTYiLCBcCi0gICAgICAgICAgIjAuMTgwNzM4LCAwLjIwNjI1NSwgMC4zNDYyMTMsIDAuNDY5MzI5LCAwLjYzMjk3NywgMC45NTk3NDIsIDEuMTY0MzYiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTAwODE1LCAwLjE1MDQyMiwgMC40MzAzODIsIDAuNjgyMzA4LCAxLjAxOTEzLCAxLjY5MTA5LCAyLjExMjUiLCBcCi0gICAgICAgICAgIjAuMTAwODA2LCAwLjE0OTgyNywgMC40MzA0ODYsIDAuNjgyMzAzLCAxLjAxOTEzLCAxLjY5MTA3LCAyLjExNDQyIiwgXAotICAgICAgICAgICIwLjEwMDgyNywgMC4xNDk4NzIsIDAuNDMwODMsIDAuNjgyNTg2LCAxLjAxOTEsIDEuNjkxMzEsIDIuMTE0NDIiLCBcCi0gICAgICAgICAgIjAuMTAwOTE4LCAwLjE1MDAxNywgMC40MzA1MzUsIDAuNjgyMjgyLCAxLjAxODc1LCAxLjY5MTM0LCAyLjExMzkzIiwgXAotICAgICAgICAgICIwLjEwMTMwNSwgMC4xNDk5ODIsIDAuNDMwNzY3LCAwLjY4MjU4NCwgMS4wMTg3NCwgMS42OTExOCwgMi4xMTIzNyIsIFwKLSAgICAgICAgICAiMC4xMDI0MzUsIDAuMTUxMTU0LCAwLjQzMDYxNCwgMC42ODI1LCAxLjAxOTA3LCAxLjY5MDcxLCAyLjExNDE4IiwgXAotICAgICAgICAgICIwLjEwMzc3NSwgMC4xNTIyNTIsIDAuNDMwODY1LCAwLjY4MjQ5NCwgMS4wMTg4OSwgMS42OTA1NSwgMi4xMTM3NiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDkxNjcsIDAuMTM1NDA4LCAwLjI3NjcwMiwgMC40MDA2LCAwLjU2NTE4MywgMC44OTUzNTgsIDEuMTAxMDkiLCBcCi0gICAgICAgICAgIjAuMTE4MDY4LCAwLjE0NDMxMiwgMC4yODU2MzIsIDAuNDA5NDk1LCAwLjU3NDMzLCAwLjkwNDQ4MywgMS4xMDk5NyIsIFwKLSAgICAgICAgICAiMC4xMjk1MjMsIDAuMTU1Nzc3LCAwLjI5NzE2OCwgMC40MjA5NywgMC41ODYyMjgsIDAuOTE1MzY5LCAxLjEyMTQ2IiwgXAotICAgICAgICAgICIwLjE0MDk3NiwgMC4xNjcyMzksIDAuMzA4NjA1LCAwLjQzMjQ3MywgMC41OTcxMTgsIDAuOTI3Mjk0LCAxLjEzMjk2IiwgXAotICAgICAgICAgICIwLjE1MTg5LCAwLjE3ODE1MSwgMC4zMTk1NTcsIDAuNDQzNDE1LCAwLjYwNzk5NCwgMC45Mzc4NDcsIDEuMTQzODkiLCBcCi0gICAgICAgICAgIjAuMTY3ODIyLCAwLjE5NDE3MSwgMC4zMzU1NjIsIDAuNDU4OTI2LCAwLjYyNDA2OSwgMC45NTM4NDMsIDEuMTYwNDgiLCBcCi0gICAgICAgICAgIjAuMTgwMDY4LCAwLjIwNjUzMiwgMC4zNDc4MDYsIDAuNDcxOTU1LCAwLjYzNjcxMywgMC45NjY2MDIsIDEuMTcyMTQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTAyMjY4LCAwLjE1MDYyNiwgMC40MjYyNTksIDAuNjcyOTk5LCAxLjAwMzUyLCAxLjY3MDIyLCAyLjA4MzYiLCBcCi0gICAgICAgICAgIjAuMTAyMzk4LCAwLjE1MDQ4NiwgMC40MjYyNDksIDAuNjcyOTc0LCAxLjAwNTA3LCAxLjY3MDM3LCAyLjA4MjkzIiwgXAotICAgICAgICAgICIwLjEwMjQ0MSwgMC4xNTA2OTgsIDAuNDI1OTIyLCAwLjY3MjkyOSwgMS4wMDMxLCAxLjY2NjkyLCAyLjA4Mzc5IiwgXAotICAgICAgICAgICIwLjEwMjU2OSwgMC4xNTA1MzMsIDAuNDI2MzAxLCAwLjY3Mjk1NCwgMS4wMDUyLCAxLjY3MDEsIDIuMDgyOTkiLCBcCi0gICAgICAgICAgIjAuMTAyODcsIDAuMTUwOTgyLCAwLjQyNjI5OSwgMC42NzI5NCwgMS4wMDM4NCwgMS42NjgwNSwgMi4wODIyMiIsIFwKLSAgICAgICAgICAiMC4xMDM5MywgMC4xNTE3NDUsIDAuNDI1NzgsIDAuNjczMTE5LCAxLjAwNTM5LCAxLjY2NzY5LCAyLjA4NTg5IiwgXAotICAgICAgICAgICIwLjEwNTE4MywgMC4xNTE4MTksIDAuNDI2MzMsIDAuNjczMzg5LCAxLjAwNTEzLCAxLjY2OTczLCAyLjA4MjMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDIxMTQsIDAuMDAyMTI1LCAwLjAwMjE0MywgMC4wMDIxNDcsIDAuMDAyMTQ5LCAwLjAwMjE1MSwgMC4wMDIxNTEiLCBcCi0gICAgICAgICAgIjAuMDAyMDg5LCAwLjAwMjEsIDAuMDAyMTE3LCAwLjAwMjEyMSwgMC4wMDIxMjMsIDAuMDAyMTI1LCAwLjAwMjEyNiIsIFwKLSAgICAgICAgICAiMC4wMDIwNzYsIDAuMDAyMDg3LCAwLjAwMjEwNSwgMC4wMDIxMDksIDAuMDAyMTEyLCAwLjAwMjExNCwgMC4wMDIxMTUiLCBcCi0gICAgICAgICAgIjAuMDAyMDcsIDAuMDAyMDgxLCAwLjAwMjEsIDAuMDAyMTA0LCAwLjAwMjEwOCwgMC4wMDIxMDksIDAuMDAyMTExIiwgXAotICAgICAgICAgICIwLjAwMjA2NCwgMC4wMDIwNzUsIDAuMDAyMDk1LCAwLjAwMjA5OSwgMC4wMDIxMDIsIDAuMDAyMTA1LCAwLjAwMjEwNiIsIFwKLSAgICAgICAgICAiMC4wMDIwNjcsIDAuMDAyMDc4LCAwLjAwMjA5NywgMC4wMDIxMDIsIDAuMDAyMTA2LCAwLjAwMjEwOCwgMC4wMDIxMSIsIFwKLSAgICAgICAgICAiMC4wMDIwNjUsIDAuMDAyMDc1LCAwLjAwMjA5NywgMC4wMDIxMDIsIDAuMDAyMTA1LCAwLjAwMjEwOCwgMC4wMDIxMDkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQwOTQsIDAuMDA0MTA1LCAwLjAwNDEyMiwgMC4wMDQxMjYsIDAuMDA0MTI4LCAwLjAwNDEzLCAwLjAwNDEzIiwgXAotICAgICAgICAgICIwLjAwNDA4MSwgMC4wMDQwOTIsIDAuMDA0MTEsIDAuMDA0MTEzLCAwLjAwNDExNiwgMC4wMDQxMTgsIDAuMDA0MTE4IiwgXAotICAgICAgICAgICIwLjAwNDA3MywgMC4wMDQwODQsIDAuMDA0MTAyLCAwLjAwNDEwNiwgMC4wMDQxMDksIDAuMDA0MTExLCAwLjAwNDExMiIsIFwKLSAgICAgICAgICAiMC4wMDQwNjgsIDAuMDA0MDgsIDAuMDA0MDk5LCAwLjAwNDEwMywgMC4wMDQxMDYsIDAuMDA0MTA4LCAwLjAwNDEwOSIsIFwKLSAgICAgICAgICAiMC4wMDQwNjYsIDAuMDA0MDc4LCAwLjAwNDA5OCwgMC4wMDQxMDIsIDAuMDA0MTA1LCAwLjAwNDEwOCwgMC4wMDQxMDkiLCBcCi0gICAgICAgICAgIjAuMDA0MDYyLCAwLjAwNDA3NCwgMC4wMDQwOTUsIDAuMDA0MSwgMC4wMDQxMDQsIDAuMDA0MTA2LCAwLjAwNDEwNyIsIFwKLSAgICAgICAgICAiMC4wMDQwNjUsIDAuMDA0MDc3LCAwLjAwNDA5NywgMC4wMDQxMDMsIDAuMDA0MTA3LCAwLjAwNDEwOSwgMC4wMDQxMTEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDIyODEsIDAuMDAyMjkyLCAwLjAwMjMwNywgMC4wMDIzMTEsIDAuMDAyMzEzLCAwLjAwMjMxMywgMC4wMDIzMTQiLCBcCi0gICAgICAgICAgIjAuMDAyMjUyLCAwLjAwMjI2MywgMC4wMDIyNzksIDAuMDAyMjgyLCAwLjAwMjI4NSwgMC4wMDIyODUsIDAuMDAyMjg2IiwgXAotICAgICAgICAgICIwLjAwMjIyNiwgMC4wMDIyMzcsIDAuMDAyMjU1LCAwLjAwMjI1OCwgMC4wMDIyNiwgMC4wMDIyNjIsIDAuMDAyMjYyIiwgXAotICAgICAgICAgICIwLjAwMjIxMywgMC4wMDIyMjQsIDAuMDAyMjQyLCAwLjAwMjI0NywgMC4wMDIyNDksIDAuMDAyMjUxLCAwLjAwMjI1MSIsIFwKLSAgICAgICAgICAiMC4wMDIyMDksIDAuMDAyMjIsIDAuMDAyMjM5LCAwLjAwMjI0MywgMC4wMDIyNDYsIDAuMDAyMjQ3LCAwLjAwMjI0OCIsIFwKLSAgICAgICAgICAiMC4wMDIyMDgsIDAuMDAyMjE5LCAwLjAwMjIzOSwgMC4wMDIyNDQsIDAuMDAyMjQ2LCAwLjAwMjI0OSwgMC4wMDIyNSIsIFwKLSAgICAgICAgICAiMC4wMDIyMTksIDAuMDAyMjI5LCAwLjAwMjI0OSwgMC4wMDIyNTQsIDAuMDAyMjU3LCAwLjAwMjI1OSwgMC4wMDIyNiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDAwOSwgMC4wMDQwMTksIDAuMDA0MDM3LCAwLjAwNDA0MSwgMC4wMDQwNDMsIDAuMDA0MDQ1LCAwLjAwNDA0NSIsIFwKLSAgICAgICAgICAiMC4wMDM5OTMsIDAuMDA0MDA0LCAwLjAwNDAyMSwgMC4wMDQwMjUsIDAuMDA0MDI4LCAwLjAwNDAzLCAwLjAwNDAzIiwgXAotICAgICAgICAgICIwLjAwMzk3LCAwLjAwMzk4MiwgMC4wMDQsIDAuMDA0MDA0LCAwLjAwNDAwNywgMC4wMDQwMDgsIDAuMDA0MDA5IiwgXAotICAgICAgICAgICIwLjAwMzk1MiwgMC4wMDM5NjMsIDAuMDAzOTgyLCAwLjAwMzk4NiwgMC4wMDM5ODksIDAuMDAzOTkxLCAwLjAwMzk5MyIsIFwKLSAgICAgICAgICAiMC4wMDM5NCwgMC4wMDM5NTIsIDAuMDAzOTcxLCAwLjAwMzk3NiwgMC4wMDM5NzksIDAuMDAzOTgxLCAwLjAwMzk4MiIsIFwKLSAgICAgICAgICAiMC4wMDM5MjQsIDAuMDAzOTM2LCAwLjAwMzk1NywgMC4wMDM5NjIsIDAuMDAzOTY1LCAwLjAwMzk2NywgMC4wMDM5NjgiLCBcCi0gICAgICAgICAgIjAuMDAzOTI0LCAwLjAwMzkzMywgMC4wMDM5NTQsIDAuMDAzOTU5LCAwLjAwMzk2MywgMC4wMDM5NjYsIDAuMDAzOTY3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0kiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjI1OSwgMC4wMDIyNjksIDAuMDAyMjg1LCAwLjAwMjI4OSwgMC4wMDIyOTEsIDAuMDAyMjkzLCAwLjAwMjI5MyIsIFwKLSAgICAgICAgICAiMC4wMDIyNDQsIDAuMDAyMjU1LCAwLjAwMjI3MiwgMC4wMDIyNzUsIDAuMDAyMjc3LCAwLjAwMjI4LCAwLjAwMjI4IiwgXAotICAgICAgICAgICIwLjAwMjIyNCwgMC4wMDIyMzUsIDAuMDAyMjUyLCAwLjAwMjI1NiwgMC4wMDIyNTgsIDAuMDAyMjYxLCAwLjAwMjI2MSIsIFwKLSAgICAgICAgICAiMC4wMDIyMDgsIDAuMDAyMjE5LCAwLjAwMjIzOCwgMC4wMDIyNDMsIDAuMDAyMjQ1LCAwLjAwMjI0NywgMC4wMDIyNDgiLCBcCi0gICAgICAgICAgIjAuMDAyMjAzLCAwLjAwMjIxNSwgMC4wMDIyMzUsIDAuMDAyMjM5LCAwLjAwMjI0MiwgMC4wMDIyNDQsIDAuMDAyMjQ2IiwgXAotICAgICAgICAgICIwLjAwMjIwNSwgMC4wMDIyMTcsIDAuMDAyMjM3LCAwLjAwMjI0MywgMC4wMDIyNDYsIDAuMDAyMjQ4LCAwLjAwMjI0OSIsIFwKLSAgICAgICAgICAiMC4wMDIyMTIsIDAuMDAyMjIzLCAwLjAwMjI0NSwgMC4wMDIyNTEsIDAuMDAyMjU0LCAwLjAwMjI1NywgMC4wMDIyNTgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDM2NjUsIDAuMDAzNjc1LCAwLjAwMzY5MywgMC4wMDM2OTcsIDAuMDAzNywgMC4wMDM3MDIsIDAuMDAzNzAzIiwgXAotICAgICAgICAgICIwLjAwMzY2MywgMC4wMDM2NzQsIDAuMDAzNjkyLCAwLjAwMzY5NiwgMC4wMDM2OTgsIDAuMDAzNzAxLCAwLjAwMzcwMiIsIFwKLSAgICAgICAgICAiMC4wMDM2NjUsIDAuMDAzNjc2LCAwLjAwMzY5NSwgMC4wMDM3LCAwLjAwMzcwMywgMC4wMDM3MDYsIDAuMDAzNzA2IiwgXAotICAgICAgICAgICIwLjAwMzY2NywgMC4wMDM2NzksIDAuMDAzNjk5LCAwLjAwMzcwNCwgMC4wMDM3MDgsIDAuMDAzNzEsIDAuMDAzNzExIiwgXAotICAgICAgICAgICIwLjAwMzY3MiwgMC4wMDM2ODMsIDAuMDAzNzA1LCAwLjAwMzcxLCAwLjAwMzcxMywgMC4wMDM3MTcsIDAuMDAzNzE3IiwgXAotICAgICAgICAgICIwLjAwMzY4MiwgMC4wMDM2OTMsIDAuMDAzNzE2LCAwLjAwMzcyMiwgMC4wMDM3MjUsIDAuMDAzNzI4LCAwLjAwMzcyOSIsIFwKLSAgICAgICAgICAiMC4wMDM2OTEsIDAuMDAzNywgMC4wMDM3MjcsIDAuMDAzNzMzLCAwLjAwMzczNywgMC4wMDM3NDEsIDAuMDAzNzQyIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMjU2NjY2OwotICAgIGZ1bmN0aW9uIDogIigoQV5CKV5DSSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExNzY5MSwgMC4xNDI4NjcsIDAuMjgyODA1LCAwLjQwNTg1NywgMC41Njk2NSwgMC44OTcyMzUsIDEuMTAxODYiLCBcCi0gICAgICAgICAgIjAuMTI1Njc2LCAwLjE1MDg1OCwgMC4yOTA3NzIsIDAuNDEzODA1LCAwLjU3NzYzLCAwLjkwNTIwNywgMS4xMDk4NCIsIFwKLSAgICAgICAgICAiMC4xMzQ2OTksIDAuMTU5OTQ2LCAwLjI5OTgxNCwgMC40MjI4NjUsIDAuNTg2NzA5LCAwLjkxNDE5MiwgMS4xMTg5MiIsIFwKLSAgICAgICAgICAiMC4xNDM1NjIsIDAuMTY4Nzg1LCAwLjMwODcwOSwgMC40MzE3NjQsIDAuNTk1NTg2LCAwLjkyMzEsIDEuMTI3ODIiLCBcCi0gICAgICAgICAgIjAuMTUyMTU3LCAwLjE3NzM3NywgMC4zMTcyOSwgMC40NDAzNTMsIDAuNjA0MTc4LCAwLjkzMTY1NywgMS4xMzY0IiwgXAotICAgICAgICAgICIwLjE2NTMzNywgMC4xOTA2MjksIDAuMzMwNTYsIDAuNDUzNjEsIDAuNjE3NDIsIDAuOTQ0OTg1LCAxLjE0OTYiLCBcCi0gICAgICAgICAgIjAuMTc2MTIzLCAwLjIwMTQ4NCwgMC4zNDE0NDQsIDAuNDY0NDYzLCAwLjYyODMxLCAwLjk1NTgzMywgMS4xNjA0OSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTg4MTcsIDAuMTQ3NTI0LCAwLjQzMTIwNywgMC42ODM3OTUsIDEuMDIwNTQsIDEuNjkyNzIsIDIuMTEzMTkiLCBcCi0gICAgICAgICAgIjAuMDk4ODA5LCAwLjE0NzQ0MywgMC40MzA1MSwgMC42ODM2MzIsIDEuMDIwNzQsIDEuNjk0MywgMi4xMTQ5MiIsIFwKLSAgICAgICAgICAiMC4wOTg3MTEsIDAuMTQ3NDMyLCAwLjQzMDQ1NywgMC42ODM1NTQsIDEuMDE5NDgsIDEuNjk0ODIsIDIuMTEzNjQiLCBcCi0gICAgICAgICAgIjAuMDk4NjU4LCAwLjE0NzQwNSwgMC40MzA4OTQsIDAuNjgzNjYzLCAxLjAxOTQ3LCAxLjY5NTMzLCAyLjExMzYyIiwgXAotICAgICAgICAgICIwLjA5ODkyNywgMC4xNDc1NzQsIDAuNDMwOTcyLCAwLjY4MzU2OCwgMS4wMTk1OCwgMS42OTUyMywgMi4xMTM1OSIsIFwKLSAgICAgICAgICAiMC4wOTkzMzksIDAuMTQ3ODksIDAuNDMxMDM1LCAwLjY4MjUxMywgMS4wMjA1OCwgMS42OTMyMywgMi4xMTQyMSIsIFwKLSAgICAgICAgICAiMC4wOTk4ODksIDAuMTQ4MjcyLCAwLjQzMTIyLCAwLjY4MjcyNCwgMS4wMjA2LCAxLjY5NTExLCAyLjExNTI3Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEyMTE1MywgMC4xNDY4ODYsIDAuMjg4MDgzLCAwLjQxMjA5MiwgMC41NzcyNTgsIDAuOTA3MzI2LCAxLjExMzYzIiwgXAotICAgICAgICAgICIwLjEyOTI3NSwgMC4xNTUwMjksIDAuMjk2MjE0LCAwLjQyMDIyOSwgMC41ODUzNTIsIDAuOTE1NTU0LCAxLjEyMTg2IiwgXAotICAgICAgICAgICIwLjEzNzgsIDAuMTYzNTIzLCAwLjMwNDcyMywgMC40Mjg3MzQsIDAuNTkzODc3LCAwLjkyMzk3MiwgMS4xMzAyOCIsIFwKLSAgICAgICAgICAiMC4xNDU3MTksIDAuMTcxNDU0LCAwLjMxMjY1NiwgMC40MzY2MzMsIDAuNjAxODE5LCAwLjkzMTkwOCwgMS4xMzgxOCIsIFwKLSAgICAgICAgICAiMC4xNTMyNTgsIDAuMTc5MDA2LCAwLjMyMDIyLCAwLjQ0NDIzMywgMC42MDkzNzcsIDAuOTM5NDczLCAxLjE0NTczIiwgXAotICAgICAgICAgICIwLjE2NDQ3MiwgMC4xOTAzLCAwLjMzMTU0NiwgMC40NTU1NTMsIDAuNjIwNzE4LCAwLjk1MDgxNiwgMS4xNTcwNiIsIFwKLSAgICAgICAgICAiMC4xNzM1NTgsIDAuMTk5NDMsIDAuMzQwNzIzLCAwLjQ2NDcxMSwgMC42Mjk5MDIsIDAuOTU5OTY4LCAxLjE2NjM0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5OTIwMSwgMC4xNDY4OTMsIDAuNDI1NTg3LCAwLjY3MzMwNywgMS4wMDUwMSwgMS42Njk0MiwgMi4wODUyNSIsIFwKLSAgICAgICAgICAiMC4wOTkxNjQsIDAuMTQ2OTQyLCAwLjQyNTU4OCwgMC42NzI4MjcsIDEuMDA1MSwgMS42NzE1MywgMi4wODcyOSIsIFwKLSAgICAgICAgICAiMC4wOTkxNywgMC4xNDY5MzEsIDAuNDI1NjEsIDAuNjczMjI3LCAxLjAwNjU3LCAxLjY2OTExLCAyLjA4NzgyIiwgXAotICAgICAgICAgICIwLjA5OTE1NCwgMC4xNDY5NDYsIDAuNDI1MjY1LCAwLjY3NDI3OSwgMS4wMDY1MSwgMS42NjkwNSwgMi4wODY0OCIsIFwKLSAgICAgICAgICAiMC4wOTkzMDcsIDAuMTQ3MDc0LCAwLjQyNTIzOSwgMC42NzMzNjUsIDEuMDA2NTcsIDEuNjcwMzcsIDIuMDg2NTgiLCBcCi0gICAgICAgICAgIjAuMDk5ODk5LCAwLjE0NzQ3MywgMC40MjUwNzksIDAuNjczNjk2LCAxLjAwNDk5LCAxLjY3MDY2LCAyLjA4NjA1IiwgXAotICAgICAgICAgICIwLjEwMDUwNywgMC4xNDc5OTMsIDAuNDI1Mjg0LCAwLjY3NDQ2OSwgMS4wMDYzMSwgMS42NzA5MSwgMi4wODc0NiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNDkwNDYsIDAuMTczNjk4LCAwLjMxMjkxLCAwLjQzNTYwMywgMC41OTkzNDQsIDAuOTI2NjQ0LCAxLjEzMTE2IiwgXAotICAgICAgICAgICIwLjE1ODQ3NSwgMC4xODMxMjgsIDAuMzIyMzM0LCAwLjQ0NTEwNiwgMC42MDg3NzQsIDAuOTM2MDgyLCAxLjE0MDY2IiwgXAotICAgICAgICAgICIwLjE2ODgxMSwgMC4xOTM0NjMsIDAuMzMyNjIyLCAwLjQ1NTQ0MiwgMC42MTkxMTEsIDAuOTQ2NDE2LCAxLjE1MDk1IiwgXAotICAgICAgICAgICIwLjE3ODU2OSwgMC4yMDMyMzYsIDAuMzQyNDYxLCAwLjQ2NTIxOCwgMC42Mjg4ODEsIDAuOTU2MjIyLCAxLjE2MDc0IiwgXAotICAgICAgICAgICIwLjE4Nzg1NSwgMC4yMTI1MTcsIDAuMzUxNzMzLCAwLjQ3NDQ5MywgMC42MzgxOTUsIDAuOTY1NDI5LCAxLjE3MDAxIiwgXAotICAgICAgICAgICIwLjIwMTY1NiwgMC4yMjYzMDEsIDAuMzY1NDU1LCAwLjQ4ODI5NCwgMC42NTE5NDcsIDAuOTc5MjY5LCAxLjE4Mzc0IiwgXAotICAgICAgICAgICIwLjIxMjQ2NCwgMC4yMzcxNDEsIDAuMzc2MzM1LCAwLjQ5OTE0OSwgMC42NjI3NjUsIDAuOTkwMTI0LCAxLjE5NDciKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk1NjExLCAwLjE0NDQ4OCwgMC40Mjg0NywgMC42ODE3ODgsIDEuMDE5MTEsIDEuNjkzNywgMi4xMTU2NSIsIFwKLSAgICAgICAgICAiMC4wOTU2MDgsIDAuMTQ0NDczLCAwLjQyODcwMSwgMC42ODE4NCwgMS4wMTc4NCwgMS42OTM4NCwgMi4xMTU1MyIsIFwKLSAgICAgICAgICAiMC4wOTU1OTcsIDAuMTQ0Mzc4LCAwLjQyODQwNCwgMC42ODE4NCwgMS4wMTc4NSwgMS42OTM4MiwgMi4xMTU2OSIsIFwKLSAgICAgICAgICAiMC4wOTU1OSwgMC4xNDQ0NzMsIDAuNDI4ODg2LCAwLjY4MTg0NywgMS4wMTg5MiwgMS42OTM5MiwgMi4xMTU2MiIsIFwKLSAgICAgICAgICAiMC4wOTU2MTUsIDAuMTQ0NDg5LCAwLjQyODY5MSwgMC42ODE4NDksIDEuMDE3ODUsIDEuNjkzNzksIDIuMTEyODMiLCBcCi0gICAgICAgICAgIjAuMDk1NTgzLCAwLjE0NDQ4NywgMC40MjgzMiwgMC42ODE4NTUsIDEuMDE4OTQsIDEuNjkzNTgsIDIuMTE1NDkiLCBcCi0gICAgICAgICAgIjAuMDk1NjYxLCAwLjE0NDUwMSwgMC40Mjg0NzksIDAuNjgxODI2LCAxLjAxODkzLCAxLjY5MTY2LCAyLjExNTE2Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE0OTE1OCwgMC4xNzQzOTQsIDAuMzE0NzQ4LCAwLjQzODUxOSwgMC42MDM0NTgsIDAuOTMzNTExLCAxLjEzOTU0IiwgXAotICAgICAgICAgICIwLjE1NzkzLCAwLjE4MzE2NiwgMC4zMjM1MzEsIDAuNDQ3MzI2LCAwLjYxMjIyOCwgMC45NDIxNjksIDEuMTQ4MzYiLCBcCi0gICAgICAgICAgIjAuMTY4NzM5LCAwLjE5Mzk4LCAwLjMzNDMzMywgMC40NTgxMjEsIDAuNjIzMDczLCAwLjk1Mjk4OSwgMS4xNTkxNSIsIFwKLSAgICAgICAgICAiMC4xNzkzMywgMC4yMDQ1NjYsIDAuMzQ0OTQ1LCAwLjQ2ODcyOSwgMC42MzM2NTEsIDAuOTYzNTk1LCAxLjE2OTc3IiwgXAotICAgICAgICAgICIwLjE4OTYwNiwgMC4yMTQ4NTYsIDAuMzU1MjA3LCAwLjQ3ODk1NiwgMC42NDM5MTQsIDAuOTczODY0LCAxLjE4MDA0IiwgXAotICAgICAgICAgICIwLjIwNTA5MiwgMC4yMzAzMzgsIDAuMzcwNjk5LCAwLjQ5NDQwOCwgMC42NTkzODcsIDAuOTg5MzI3LCAxLjE5NTUyIiwgXAotICAgICAgICAgICIwLjIxNzU5OCwgMC4yNDI4MzYsIDAuMzgzMTc2LCAwLjUwNjk2NiwgMC42NzE5MjUsIDEuMDAxNzgsIDEuMjA4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5NjczNSwgMC4xNDQ0MTcsIDAuNDIyNjYxLCAwLjY3MTk1NiwgMS4wMDI5NSwgMS42NjY5MywgMi4wODQ5IiwgXAotICAgICAgICAgICIwLjA5NjY5NywgMC4xNDQ0MTIsIDAuNDIyOTgsIDAuNjcwNzQ2LCAxLjAwMzgzLCAxLjY2OTE0LCAyLjA4NDgyIiwgXAotICAgICAgICAgICIwLjA5NjczNywgMC4xNDQ0MjEsIDAuNDIyODM3LCAwLjY3MTA1NywgMS4wMDM3NSwgMS42NjkwNSwgMi4wODQ2MSIsIFwKLSAgICAgICAgICAiMC4wOTY3MzQsIDAuMTQ0NDEyLCAwLjQyMjgwOSwgMC42NzE2MDgsIDEuMDA0MjEsIDEuNjY5MDMsIDIuMDg0NjUiLCBcCi0gICAgICAgICAgIjAuMDk2NzAzLCAwLjE0NDQwNywgMC40MjI4MywgMC42NzE3MjgsIDEuMDAyNzksIDEuNjY5MDQsIDIuMDg0NTgiLCBcCi0gICAgICAgICAgIjAuMDk2NzU5LCAwLjE0NDQ0NSwgMC40MjMwMTMsIDAuNjcxNjMsIDEuMDAyOTMsIDEuNjY4OTcsIDIuMDg0NjIiLCBcCi0gICAgICAgICAgIjAuMDk2NzcyLCAwLjE0NDQzNiwgMC40MjI4MTMsIDAuNjcxNTI4LCAxLjAwMzk2LCAxLjY2ODU2LCAyLjA4NDI4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExNTQ3LCAwLjE0MDY0OSwgMC4yODA2MTEsIDAuNDAzNTQzLCAwLjU2NzQ2MSwgMC44OTUwNDYsIDEuMDk5NjYiLCBcCi0gICAgICAgICAgIjAuMTIzNzA1LCAwLjE0ODk3MywgMC4yODg5MDksIDAuNDExOTgzLCAwLjU3NTc4MiwgMC45MDMzMDIsIDEuMTA4IiwgXAotICAgICAgICAgICIwLjEzNDE3MSwgMC4xNTk0NDIsIDAuMjk5NDE0LCAwLjQyMjQ4NywgMC41ODYzLCAwLjkxMzc5MiwgMS4xMTg1MiIsIFwKLSAgICAgICAgICAiMC4xNDQ1NCwgMC4xNjk3NzYsIDAuMzA5NzIxLCAwLjQzMjc5NCwgMC41OTY2MDUsIDAuOTI0MTQ2LCAxLjEyODgyIiwgXAotICAgICAgICAgICIwLjE1NDUzNywgMC4xNzk3NTMsIDAuMzE5NzM5LCAwLjQ0MjgsIDAuNjA2NTk3LCAwLjkzNDE1NCwgMS4xMzg3OCIsIFwKLSAgICAgICAgICAiMC4xNzAwNzgsIDAuMTk1MzgxLCAwLjMzNTI2NCwgMC40NTgzNjQsIDAuNjIyMTM5LCAwLjk0OTY2NSwgMS4xNTQ0NCIsIFwKLSAgICAgICAgICAiMC4xODIyNTcsIDAuMjA3NTcxLCAwLjM0NzU5NSwgMC40NzA2NiwgMC42MzQ0MzUsIDAuOTYxOTUxLCAxLjE2NjU5Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5ODgxMywgMC4xNDc1MTUsIDAuNDMxMTUzLCAwLjY4MTUxNCwgMS4wMjA3MSwgMS42OTI3LCAyLjExNTk0IiwgXAotICAgICAgICAgICIwLjA5ODc3MSwgMC4xNDczOTgsIDAuNDMwOTMyLCAwLjY4MzY2OCwgMS4wMjA2NCwgMS42OTUyMiwgMi4xMTMxNCIsIFwKLSAgICAgICAgICAiMC4wOTg3MTQsIDAuMTQ3Mzg0LCAwLjQzMDkxOSwgMC42ODM2NTYsIDEuMDE5NCwgMS42OTUxMiwgMi4xMTM0MiIsIFwKLSAgICAgICAgICAiMC4wOTg3MiwgMC4xNDc0MzgsIDAuNDMwOTU2LCAwLjY4MzY1OCwgMS4wMjA2NSwgMS42OTUyNSwgMi4xMTUyMiIsIFwKLSAgICAgICAgICAiMC4wOTkwNzcsIDAuMTQ3NTQxLCAwLjQzMTA3NiwgMC42ODM1NjIsIDEuMDIwNTQsIDEuNjkzNjQsIDIuMTE0NTQiLCBcCi0gICAgICAgICAgIjAuMDk5MjY4LCAwLjE0Nzc4NCwgMC40MzA5OTUsIDAuNjgzNzM2LCAxLjAyMDIyLCAxLjY5MzEzLCAyLjExNjg2IiwgXAotICAgICAgICAgICIwLjEwMDE5MSwgMC4xNDg0MzIsIDAuNDMxMjIyLCAwLjY4MjMzOSwgMS4wMjA1NCwgMS42OTMyNCwgMi4xMTY1OSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTc5NzIsIDAuMTQzNzI0LCAwLjI4NDk2OSwgMC40MDg5NDYsIDAuNTc0MTIxLCAwLjkwNDIwNywgMS4xMTA0NyIsIFwKLSAgICAgICAgICAiMC4xMjYxMjcsIDAuMTUxODcsIDAuMjkzMTAxLCAwLjQxNzEyLCAwLjU4MjI4NSwgMC45MTIzOTUsIDEuMTE4NjQiLCBcCi0gICAgICAgICAgIjAuMTM1ODM0LCAwLjE2MTU3OCwgMC4zMDI4LCAwLjQyNjgyMiwgMC41OTE5OCwgMC45MjIwNzYsIDEuMTI4MzQiLCBcCi0gICAgICAgICAgIjAuMTQ1Mzc4LCAwLjE3MTEzOSwgMC4zMTIzNzgsIDAuNDM2Mzg5LCAwLjYwMTU0MSwgMC45MzE2NCwgMS4xMzc5IiwgXAotICAgICAgICAgICIwLjE1NDU3LCAwLjE4MDM1MSwgMC4zMjE2MDQsIDAuNDQ1NjMxLCAwLjYxMDc1MSwgMC45NDEwMDYsIDEuMTQ3MTkiLCBcCi0gICAgICAgICAgIjAuMTY4MjI4LCAwLjE5NDA3NiwgMC4zMzUzNTcsIDAuNDU5Mzc0LCAwLjYyNDU0NCwgMC45NTQ2MywgMS4xNjA5OCIsIFwKLSAgICAgICAgICAiMC4xNzkxNDQsIDAuMjA1MDc0LCAwLjM0NjQyOCwgMC40NzA0MjksIDAuNjM1NjIzLCAwLjk2NTY5NCwgMS4xNzE5NiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTkxMDgsIDAuMTQ2ODY0LCAwLjQyNDU4LCAwLjY3MzMyMSwgMS4wMDY0NCwgMS42NjkwMiwgMi4wODQwOSIsIFwKLSAgICAgICAgICAiMC4wOTkxNjQsIDAuMTQ2ODc1LCAwLjQyNTU3NywgMC42NzI3MTEsIDEuMDA0NjYsIDEuNjcxOTQsIDIuMDg0MzYiLCBcCi0gICAgICAgICAgIjAuMDk5MTQ4LCAwLjE0NjkzNiwgMC40MjU1NjYsIDAuNjczNTIxLCAxLjAwNjUyLCAxLjY2OTE1LCAyLjA4NDMiLCBcCi0gICAgICAgICAgIjAuMDk5MTg2LCAwLjE0Njk2OCwgMC40MjQ3MjcsIDAuNjczNTU5LCAxLjAwNjU0LCAxLjY3MDYxLCAyLjA4NTk3IiwgXAotICAgICAgICAgICIwLjA5OTQ0LCAwLjE0NzEyOCwgMC40MjU2MjEsIDAuNjcyODE5LCAxLjAwNjYzLCAxLjY2ODIxLCAyLjA4NTU3IiwgXAotICAgICAgICAgICIwLjEwMDA4NywgMC4xNDc2MDEsIDAuNDI1NzUzLCAwLjY3MzU1NiwgMS4wMDQ1LCAxLjY3MDY5LCAyLjA4NDU5IiwgXAotICAgICAgICAgICIwLjEwMDY2OCwgMC4xNDgxMjcsIDAuNDI0OTE3LCAwLjY3MzM1NywgMS4wMDYzNiwgMS42NzA0LCAyLjA4NjciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTUxMDY2LCAwLjE3NTg0MywgMC4zMTUyNjgsIDAuNDM4MTA3LCAwLjYwMTgwNywgMC45MjkxNTcsIDEuMTMzNzMiLCBcCi0gICAgICAgICAgIjAuMTYwMjA2LCAwLjE4NDkwOCwgMC4zMjQzMjEsIDAuNDQ3MTgyLCAwLjYxMDg3OCwgMC45MzgzNDcsIDEuMTQyOCIsIFwKLSAgICAgICAgICAiMC4xNzAyMTcsIDAuMTk0ODk2LCAwLjMzNDMyNywgMC40NTcxODMsIDAuNjIwODc3LCAwLjk0ODIyNiwgMS4xNTI4NiIsIFwKLSAgICAgICAgICAiMC4xNzk3NywgMC4yMDQ1MSwgMC4zNDM5MzcsIDAuNDY2NzgsIDAuNjMwNTQ0LCAwLjk1NzgzNSwgMS4xNjI0MSIsIFwKLSAgICAgICAgICAiMC4xODg4ODgsIDAuMjEzNjMxLCAwLjM1MzAwOSwgMC40NzU4NTIsIDAuNjM5NTk3LCAwLjk2NjkwOCwgMS4xNzE0OCIsIFwKLSAgICAgICAgICAiMC4yMDIwMzIsIDAuMjI2NzE2LCAwLjM2NjAyNiwgMC40ODg4NzYsIDAuNjUyNTczLCAwLjk3OTkzNSwgMS4xODQ0OSIsIFwKLSAgICAgICAgICAiMC4yMTQ1OTEsIDAuMjM5MjcyLCAwLjM3ODMyOSwgMC41MDExMjQsIDAuNjY0NjksIDAuOTkxOTY2LCAxLjE5NjU5Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5NTQ4NywgMC4xNDQ0MjMsIDAuNDI4ODQ1LCAwLjY4MjE2NCwgMS4wMTgxMiwgMS42OTM4NiwgMi4xMTU0MyIsIFwKLSAgICAgICAgICAiMC4wOTU0OTgsIDAuMTQ0NDI1LCAwLjQyOTQsIDAuNjgyMTgyLCAxLjAxODE0LCAxLjY5NDIxLCAyLjExNTE2IiwgXAotICAgICAgICAgICIwLjA5NTUxNSwgMC4xNDQ0MjUsIDAuNDI4ODc3LCAwLjY4MTc1LCAxLjAxODk2LCAxLjY5MzQ3LCAyLjExNTYzIiwgXAotICAgICAgICAgICIwLjA5NTUwOSwgMC4xNDQ0MzcsIDAuNDI4ODUxLCAwLjY4MjE1OCwgMS4wMTk1LCAxLjY5Mzc5LCAyLjExNTE2IiwgXAotICAgICAgICAgICIwLjA5NTQ0MSwgMC4xNDQ0MzIsIDAuNDI4ODY5LCAwLjY4MjE2MywgMS4wMTk0NCwgMS42OTM4MSwgMi4xMTQ0IiwgXAotICAgICAgICAgICIwLjA5NTU1NCwgMC4xNDQ0NjQsIDAuNDI4OTA1LCAwLjY4MjE4MiwgMS4wMTgxMywgMS42OTM3OCwgMi4xMTUzMiIsIFwKLSAgICAgICAgICAiMC4wOTU1NzEsIDAuMTQ0NDQsIDAuNDI4OTc0LCAwLjY4MjE4NywgMS4wMTkzMSwgMS42OTQxMywgMi4xMTU2NCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNDgzNjYsIDAuMTczNTg5LCAwLjMxMzkzOCwgMC40Mzc3MTgsIDAuNjAyNjM4LCAwLjkzMjU1MSwgMS4xMzg3NCIsIFwKLSAgICAgICAgICAiMC4xNTczMiwgMC4xODI1NDYsIDAuMzIyODg5LCAwLjQ0NjY3LCAwLjYxMTU5OCwgMC45NDE1MjUsIDEuMTQ3NzYiLCBcCi0gICAgICAgICAgIjAuMTY4OTE1LCAwLjE5NDE2NSwgMC4zMzQ0OTEsIDAuNDU4MjY4LCAwLjYyMzI5NywgMC45NTMxMzcsIDEuMTU5MjkiLCBcCi0gICAgICAgICAgIjAuMTgwNjQ2LCAwLjIwNTg3LCAwLjM0NjIyMSwgMC40NzAwMTUsIDAuNjM0OTE3LCAwLjk2NDgzOCwgMS4xNzEwNSIsIFwKLSAgICAgICAgICAiMC4xOTIyNTEsIDAuMjE3NDc1LCAwLjM1NzgyNSwgMC40ODE2MTksIDAuNjQ2NTI2LCAwLjk3NjQ0NiwgMS4xODI1OCIsIFwKLSAgICAgICAgICAiMC4yMDk3NTQsIDAuMjM0OTcsIDAuMzc1MjU4LCAwLjQ5OTAwNSwgMC42NjQwMDIsIDAuOTkzODQxLCAxLjIwMDA1IiwgXAotICAgICAgICAgICIwLjIyMzMxNCwgMC4yNDg1MywgMC4zODg4NiwgMC41MTI2NDMsIDAuNjc3NjE2LCAxLjAwNzQ2LCAxLjIxMzY3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5NjQ2NywgMC4xNDQzMTQsIDAuNDIyNTExLCAwLjY3MjAxNSwgMS4wMDQyOSwgMS42NjkzNSwgMi4wODUxMSIsIFwKLSAgICAgICAgICAiMC4wOTY0MzksIDAuMTQ0MzA4LCAwLjQyMzAxMSwgMC42NzE5NzcsIDEuMDAzMjQsIDEuNjY5MjEsIDIuMDg1MSIsIFwKLSAgICAgICAgICAiMC4wOTY0NzEsIDAuMTQ0MjYsIDAuNDIyODE3LCAwLjY3MTkyOSwgMS4wMDMyOCwgMS42NjkwMywgMi4wODQ2OCIsIFwKLSAgICAgICAgICAiMC4wOTY0MiwgMC4xNDQyNDYsIDAuNDIyODI1LCAwLjY3MTkyMSwgMS4wMDMyNSwgMS42NjkwMiwgMi4wODQ3NiIsIFwKLSAgICAgICAgICAiMC4wOTY0MjIsIDAuMTQ0MjUzLCAwLjQyMjgzLCAwLjY3MjA1LCAxLjAwNDA2LCAxLjY2ODk3LCAyLjA4MjM4IiwgXAotICAgICAgICAgICIwLjA5NjQ1NywgMC4xNDQyNywgMC40MjI4MDcsIDAuNjcxMDUzLCAxLjAwNDA0LCAxLjY2ODc0LCAyLjA4NDQ4IiwgXAotICAgICAgICAgICIwLjA5NjUzMiwgMC4xNDQzNTEsIDAuNDIyODAzLCAwLjY3MTAxOCwgMS4wMDM5NSwgMS42Njg1NywgMi4wODQyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNJIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTUwMjIsIDAuMTQwMjY2LCAwLjI4MDIzOSwgMC40MDMzMTMsIDAuNTY3MTM1LCAwLjg5NDY0OCwgMS4wOTk1MiIsIFwKLSAgICAgICAgICAiMC4xMjI4ODIsIDAuMTQ4MTI0LCAwLjI4ODA3NSwgMC40MTExMDQsIDAuNTc0OTU1LCAwLjkwMjU1LCAxLjEwNzE4IiwgXAotICAgICAgICAgICIwLjEzMzQ2OCwgMC4xNTg3NDQsIDAuMjk4NjY0LCAwLjQyMTcyNiwgMC41ODU1NzUsIDAuOTEzMTMxLCAxLjExNzc5IiwgXAotICAgICAgICAgICIwLjE0NDM5OCwgMC4xNjk2MzIsIDAuMzA5NjA3LCAwLjQzMjY1MiwgMC41OTY0NzUsIDAuOTI0MDU4LCAxLjEyODY5IiwgXAotICAgICAgICAgICIwLjE1NTMxOCwgMC4xODA1NjUsIDAuMzIwNTA5LCAwLjQ0MzU4NiwgMC42MDc0MjYsIDAuOTM0OTU5LCAxLjEzOTYxIiwgXAotICAgICAgICAgICIwLjE3MjA4LCAwLjE5NzM3NCwgMC4zMzczNDUsIDAuNDYwMzc3LCAwLjYyNDE5MSwgMC45NTE4MjIsIDEuMTU2NDQiLCBcCi0gICAgICAgICAgIjAuMTg0NTE1LCAwLjIwOTgwMSwgMC4zNDk3MzYsIDAuNDcyNzk2LCAwLjYzNjYxNywgMC45NjQxMjksIDEuMTY4OCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTg4MjcsIDAuMTQ3NDcsIDAuNDMwOTg4LCAwLjY4MzgyOCwgMS4wMjA1NCwgMS42OTU1OCwgMi4xMTgwMyIsIFwKLSAgICAgICAgICAiMC4wOTg3NTUsIDAuMTQ3MzQ3LCAwLjQzMDU1MSwgMC42ODMzNTEsIDEuMDIwNDQsIDEuNjkzNTgsIDIuMTEzMzEiLCBcCi0gICAgICAgICAgIjAuMDk4NzI3LCAwLjE0NzM2NiwgMC40MzA0ODcsIDAuNjgzNjc5LCAxLjAyMDgyLCAxLjY5NTU0LCAyLjExMzY4IiwgXAotICAgICAgICAgICIwLjA5ODcyMSwgMC4xNDc0NjMsIDAuNDMxMDY0LCAwLjY4MzY0MSwgMS4wMjA3MSwgMS42OTMwMiwgMi4xMTQ2NiIsIFwKLSAgICAgICAgICAiMC4wOTg4NTksIDAuMTQ3NDQsIDAuNDMwOTI0LCAwLjY4MzY3NiwgMS4wMjA3NiwgMS42OTUzOCwgMi4xMTQ3MyIsIFwKLSAgICAgICAgICAiMC4wOTkzNiwgMC4xNDc4MTMsIDAuNDMwOTc1LCAwLjY4MjQ2MywgMS4wMjA1NSwgMS42OTUxNywgMi4xMTQ4OSIsIFwKLSAgICAgICAgICAiMC4xMDA2MTcsIDAuMTQ4Njc4LCAwLjQzMTE1MiwgMC42ODM1OTUsIDEuMDIwNTcsIDEuNjkzMDcsIDIuMTE0NCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTM3MjUsIDAuMTM5NDg3LCAwLjI4MDc0MSwgMC40MDQ3NDcsIDAuNTY5OTM1LCAwLjkwMDAzNSwgMS4xMDYzMSIsIFwKLSAgICAgICAgICAiMC4xMjE0NzEsIDAuMTQ3MjMyLCAwLjI4ODQ4NCwgMC40MTI1MDgsIDAuNTc3NzE3LCAwLjkwNzc1OSwgMS4xMTQwNiIsIFwKLSAgICAgICAgICAiMC4xMzE4MTEsIDAuMTU3NjE1LCAwLjI5ODg1OSwgMC40MjI4OTQsIDAuNTg4MDM1LCAwLjkxODE1NiwgMS4xMjQ0MiIsIFwKLSAgICAgICAgICAiMC4xNDI2ODMsIDAuMTY4NDYzLCAwLjMwOTcyLCAwLjQzMzcyNywgMC41OTg5MjQsIDAuOTI5MDQ1LCAxLjEzNTI5IiwgXAotICAgICAgICAgICIwLjE1MzI3NiwgMC4xNzkwNTIsIDAuMzIwMzA3LCAwLjQ0NDM0MywgMC42MDk1MTMsIDAuOTM5NjU3LCAxLjE0NTg3IiwgXAotICAgICAgICAgICIwLjE2ODUxNSwgMC4xOTQyNzksIDAuMzM1NTcsIDAuNDU5NTg5LCAwLjYyNDgxOCwgMC45NTQ4NTMsIDEuMTYxMjMiLCBcCi0gICAgICAgICAgIjAuMTgwMDY3LCAwLjIwNjAzNSwgMC4zNDczMjgsIDAuNDcxMzI2LCAwLjYzNjU1NCwgMC45NjY2MDUsIDEuMTcyODkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk5MTEzLCAwLjE0Njk0MywgMC40MjQ2NDYsIDAuNjczMzIyLCAxLjAwNjQ2LCAxLjY3MDk1LCAyLjA4NzA0IiwgXAotICAgICAgICAgICIwLjA5OTE0OCwgMC4xNDY4ODcsIDAuNDI1NTc2LCAwLjY3MjYwOCwgMS4wMDYzNSwgMS42NjksIDIuMDg2NjgiLCBcCi0gICAgICAgICAgIjAuMDk5MTE2LCAwLjE0NjkxNywgMC40MjU1NjcsIDAuNjcyOTU4LCAxLjAwNTEzLCAxLjY3MjA3LCAyLjA4NDI0IiwgXAotICAgICAgICAgICIwLjA5OTExOCwgMC4xNDY5MzEsIDAuNDI1NTc1LCAwLjY3MzcyOSwgMS4wMDY0MSwgMS42NzAwNywgMi4wODQzNyIsIFwKLSAgICAgICAgICAiMC4wOTk0MjMsIDAuMTQ3MTIyLCAwLjQyNTYxNywgMC42NzI5NDcsIDEuMDA2MzksIDEuNjcxNTYsIDIuMDg2MjIiLCBcCi0gICAgICAgICAgIjAuMTAwMDMzLCAwLjE0NzYxNywgMC40MjU3NDcsIDAuNjczNTE4LCAxLjAwNDY0LCAxLjY3MDI0LCAyLjA4NzI3IiwgXAotICAgICAgICAgICIwLjEwMDcxNywgMC4xNDgxNDcsIDAuNDI1NTAyLCAwLjY3MzcxOCwgMS4wMDYzLCAxLjY3MTkyLCAyLjA4NDMzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNJIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNDIzMywgMC4xNjcwODEsIDAuMzA2NTA0LCAwLjQyOTM2NCwgMC41OTMwNjIsIDAuOTIwNDgyLCAxLjEyNDk4IiwgXAotICAgICAgICAgICIwLjE1MTU4NywgMC4xNzYyNTQsIDAuMzE1Njg0LCAwLjQzODUzNywgMC42MDIyMzEsIDAuOTI5NzUyLCAxLjEzNDE3IiwgXAotICAgICAgICAgICIwLjE2MzQwOCwgMC4xODgxNiwgMC4zMjc1NywgMC40NTA0MTUsIDAuNjE0MjI3LCAwLjk0MTQ3MywgMS4xNDYwNCIsIFwKLSAgICAgICAgICAiMC4xNzUwMTIsIDAuMTk5Njc4LCAwLjMzOTA5OSwgMC40NjE5NTEsIDAuNjI1NjUyLCAwLjk1MzA4MywgMS4xNTc1OCIsIFwKLSAgICAgICAgICAiMC4xODU4NzYsIDAuMjEwNjIyLCAwLjM1MDAzOCwgMC40NzI4ODcsIDAuNjM2NjI1LCAwLjk2MzkzOSwgMS4xNjg1MiIsIFwKLSAgICAgICAgICAiMC4yMDE0MjksIDAuMjI2MTcsIDAuMzY1NTU5LCAwLjQ4ODMxMSwgMC42NTIxMDcsIDAuOTc5NDU3LCAxLjE4NDE5IiwgXAotICAgICAgICAgICIwLjIxMjk2OSwgMC4yMzc3NTgsIDAuMzc3MTQyLCAwLjUwMDAzMSwgMC42NjM2OTUsIDAuOTkxMTAyLCAxLjE5NTcyIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5NTEyNywgMC4xNDQzNjcsIDAuNDI4OTAzLCAwLjY4MjE3OCwgMS4wMTgxNiwgMS42OTQwMywgMi4xMTQ4NCIsIFwKLSAgICAgICAgICAiMC4wOTUxNTUsIDAuMTQ0MzM3LCAwLjQyODg5MywgMC42ODIxNzYsIDEuMDE5MjgsIDEuNjkzOTEsIDIuMTEzMTEiLCBcCi0gICAgICAgICAgIjAuMDk1MTQ5LCAwLjE0NDM1OCwgMC40Mjg4NTgsIDAuNjgyMTY4LCAxLjAxODAzLCAxLjY5MjAzLCAyLjExNDU4IiwgXAotICAgICAgICAgICIwLjA5NTE0NywgMC4xNDQzMywgMC40MjkxMSwgMC42ODIxNzYsIDEuMDE5MDUsIDEuNjk0MDUsIDIuMTEzMDkiLCBcCi0gICAgICAgICAgIjAuMDk1MTQsIDAuMTQ0MzI0LCAwLjQyOTA0MSwgMC42ODIxNjYsIDEuMDE3ODQsIDEuNjkxNzYsIDIuMTEzMjYiLCBcCi0gICAgICAgICAgIjAuMDk1MjIxLCAwLjE0NDQwNywgMC40MjkwNjgsIDAuNjgxMzQzLCAxLjAxOTE1LCAxLjY5MiwgMi4xMTU5MyIsIFwKLSAgICAgICAgICAiMC4wOTU0NTcsIDAuMTQ0NTQxLCAwLjQyODk2LCAwLjY4MjI1OSwgMS4wMTkzNCwgMS42OTM3OSwgMi4xMTI4NyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNDA1MTksIDAuMTY1NTI3LCAwLjMwNTg5OCwgMC40Mjk2NDMsIDAuNTk0NjAxLCAwLjkyNDU1NCwgMS4xMzA3MyIsIFwKLSAgICAgICAgICAiMC4xNDk3MjUsIDAuMTc0NzM1LCAwLjMxNTEwMiwgMC40Mzg4NiwgMC42MDM4MDMsIDAuOTMzNzU1LCAxLjEzOTkzIiwgXAotICAgICAgICAgICIwLjE2MTMyNywgMC4xODYzMzUsIDAuMzI2NzAxLCAwLjQ1MDQ3MSwgMC42MTU0MTksIDAuOTQ1MzUsIDEuMTUxNTUiLCBcCi0gICAgICAgICAgIjAuMTcyODQ0LCAwLjE5Nzg0NiwgMC4zMzgyMTQsIDAuNDYxOTgyLCAwLjYyNjg5NiwgMC45NTY4NDksIDEuMTYzMDciLCBcCi0gICAgICAgICAgIjAuMTgzOTY4LCAwLjIwODk3MSwgMC4zNDk0MDIsIDAuNDczMTEzLCAwLjYzODA1OCwgMC45NjgwMTEsIDEuMTc0MTciLCBcCi0gICAgICAgICAgIjAuMjAwNCwgMC4yMjUzOTcsIDAuMzY1NzU5LCAwLjQ4OTYzMywgMC42NTQ0OTUsIDAuOTg0NDQ5LCAxLjE5MDY5IiwgXAotICAgICAgICAgICIwLjIxMzE2MywgMC4yMzgxNjYsIDAuMzc4NTIsIDAuNTAyMjc3LCAwLjY2NzI2LCAwLjk5NzE5NSwgMS4yMDMzMiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTQ1MTUsIDAuMTQyOTQsIDAuNDIyNTMzLCAwLjY3MTg4LCAxLjAwNDM1LCAxLjY2NzIxLCAyLjA4MjI3IiwgXAotICAgICAgICAgICIwLjA5NDUwNiwgMC4xNDI4NywgMC40MjI4ODYsIDAuNjcxODc3LCAxLjAwMzkzLCAxLjY2NzEzLCAyLjA4NDg5IiwgXAotICAgICAgICAgICIwLjA5NDUxLCAwLjE0Mjg3NCwgMC40MjI5MzcsIDAuNjcxODY3LCAxLjAwMzkyLCAxLjY2NzExLCAyLjA4NDg4IiwgXAotICAgICAgICAgICIwLjA5NDUxNSwgMC4xNDI4NzQsIDAuNDIyODczLCAwLjY3MTgzLCAxLjAwMzk1LCAxLjY2NzE0LCAyLjA4Mzk2IiwgXAotICAgICAgICAgICIwLjA5NDQ5LCAwLjE0MjkzNCwgMC40MjI1MDYsIDAuNjcxNTk2LCAxLjAwMzk2LCAxLjY2NzIzLCAyLjA4MjEzIiwgXAotICAgICAgICAgICIwLjA5NDYyNiwgMC4xNDI5NTksIDAuNDIyODg5LCAwLjY3MTUyNywgMS4wMDM5NCwgMS42NjcwOCwgMi4wODQ0NiIsIFwKLSAgICAgICAgICAiMC4wOTQ3OTksIDAuMTQzMTQ4LCAwLjQyMjY0NywgMC42NzE4OTUsIDEuMDAzOTEsIDEuNjY2MjUsIDIuMDgzOSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDA5NCwgMC4wMDQxMDUsIDAuMDA0MTIyLCAwLjAwNDEyNiwgMC4wMDQxMjgsIDAuMDA0MTMsIDAuMDA0MTMiLCBcCi0gICAgICAgICAgIjAuMDA0MDgxLCAwLjAwNDA5MiwgMC4wMDQxMSwgMC4wMDQxMTMsIDAuMDA0MTE2LCAwLjAwNDExOCwgMC4wMDQxMTgiLCBcCi0gICAgICAgICAgIjAuMDA0MDczLCAwLjAwNDA4NCwgMC4wMDQxMDIsIDAuMDA0MTA2LCAwLjAwNDEwOSwgMC4wMDQxMTEsIDAuMDA0MTEyIiwgXAotICAgICAgICAgICIwLjAwNDA2OCwgMC4wMDQwOCwgMC4wMDQwOTksIDAuMDA0MTAzLCAwLjAwNDEwNiwgMC4wMDQxMDgsIDAuMDA0MTA5IiwgXAotICAgICAgICAgICIwLjAwNDA2NiwgMC4wMDQwNzgsIDAuMDA0MDk4LCAwLjAwNDEwMiwgMC4wMDQxMDUsIDAuMDA0MTA4LCAwLjAwNDEwOSIsIFwKLSAgICAgICAgICAiMC4wMDQwNjIsIDAuMDA0MDc0LCAwLjAwNDA5NSwgMC4wMDQxLCAwLjAwNDEwNCwgMC4wMDQxMDYsIDAuMDA0MTA3IiwgXAotICAgICAgICAgICIwLjAwNDA2NSwgMC4wMDQwNzcsIDAuMDA0MDk3LCAwLjAwNDEwMywgMC4wMDQxMDcsIDAuMDA0MTA5LCAwLjAwNDExMSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjExNCwgMC4wMDIxMjUsIDAuMDAyMTQzLCAwLjAwMjE0NywgMC4wMDIxNDksIDAuMDAyMTUxLCAwLjAwMjE1MSIsIFwKLSAgICAgICAgICAiMC4wMDIwODksIDAuMDAyMSwgMC4wMDIxMTcsIDAuMDAyMTIxLCAwLjAwMjEyMywgMC4wMDIxMjUsIDAuMDAyMTI2IiwgXAotICAgICAgICAgICIwLjAwMjA3NiwgMC4wMDIwODcsIDAuMDAyMTA1LCAwLjAwMjEwOSwgMC4wMDIxMTIsIDAuMDAyMTE0LCAwLjAwMjExNSIsIFwKLSAgICAgICAgICAiMC4wMDIwNywgMC4wMDIwODEsIDAuMDAyMSwgMC4wMDIxMDQsIDAuMDAyMTA4LCAwLjAwMjEwOSwgMC4wMDIxMTEiLCBcCi0gICAgICAgICAgIjAuMDAyMDY0LCAwLjAwMjA3NSwgMC4wMDIwOTUsIDAuMDAyMDk5LCAwLjAwMjEwMiwgMC4wMDIxMDUsIDAuMDAyMTA2IiwgXAotICAgICAgICAgICIwLjAwMjA2NywgMC4wMDIwNzgsIDAuMDAyMDk3LCAwLjAwMjEwMiwgMC4wMDIxMDYsIDAuMDAyMTA4LCAwLjAwMjExIiwgXAotICAgICAgICAgICIwLjAwMjA2NSwgMC4wMDIwNzUsIDAuMDAyMDk3LCAwLjAwMjEwMiwgMC4wMDIxMDUsIDAuMDAyMTA4LCAwLjAwMjEwOSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDAwOSwgMC4wMDQwMTksIDAuMDA0MDM3LCAwLjAwNDA0MSwgMC4wMDQwNDMsIDAuMDA0MDQ1LCAwLjAwNDA0NSIsIFwKLSAgICAgICAgICAiMC4wMDM5OTMsIDAuMDA0MDA0LCAwLjAwNDAyMSwgMC4wMDQwMjUsIDAuMDA0MDI4LCAwLjAwNDAzLCAwLjAwNDAzIiwgXAotICAgICAgICAgICIwLjAwMzk3LCAwLjAwMzk4MiwgMC4wMDQsIDAuMDA0MDA0LCAwLjAwNDAwNywgMC4wMDQwMDgsIDAuMDA0MDA5IiwgXAotICAgICAgICAgICIwLjAwMzk1MiwgMC4wMDM5NjMsIDAuMDAzOTgyLCAwLjAwMzk4NiwgMC4wMDM5ODksIDAuMDAzOTkxLCAwLjAwMzk5MyIsIFwKLSAgICAgICAgICAiMC4wMDM5NCwgMC4wMDM5NTIsIDAuMDAzOTcxLCAwLjAwMzk3NiwgMC4wMDM5NzksIDAuMDAzOTgxLCAwLjAwMzk4MiIsIFwKLSAgICAgICAgICAiMC4wMDM5MjQsIDAuMDAzOTM2LCAwLjAwMzk1NywgMC4wMDM5NjIsIDAuMDAzOTY1LCAwLjAwMzk2NywgMC4wMDM5NjgiLCBcCi0gICAgICAgICAgIjAuMDAzOTI0LCAwLjAwMzkzMywgMC4wMDM5NTQsIDAuMDAzOTU5LCAwLjAwMzk2MywgMC4wMDM5NjYsIDAuMDAzOTY3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyMjgxLCAwLjAwMjI5MiwgMC4wMDIzMDcsIDAuMDAyMzExLCAwLjAwMjMxMywgMC4wMDIzMTMsIDAuMDAyMzE0IiwgXAotICAgICAgICAgICIwLjAwMjI1MiwgMC4wMDIyNjMsIDAuMDAyMjc5LCAwLjAwMjI4MiwgMC4wMDIyODUsIDAuMDAyMjg1LCAwLjAwMjI4NiIsIFwKLSAgICAgICAgICAiMC4wMDIyMjYsIDAuMDAyMjM3LCAwLjAwMjI1NSwgMC4wMDIyNTgsIDAuMDAyMjYsIDAuMDAyMjYyLCAwLjAwMjI2MiIsIFwKLSAgICAgICAgICAiMC4wMDIyMTMsIDAuMDAyMjI0LCAwLjAwMjI0MiwgMC4wMDIyNDcsIDAuMDAyMjQ5LCAwLjAwMjI1MSwgMC4wMDIyNTEiLCBcCi0gICAgICAgICAgIjAuMDAyMjA5LCAwLjAwMjIyLCAwLjAwMjIzOSwgMC4wMDIyNDMsIDAuMDAyMjQ2LCAwLjAwMjI0NywgMC4wMDIyNDgiLCBcCi0gICAgICAgICAgIjAuMDAyMjA4LCAwLjAwMjIxOSwgMC4wMDIyMzksIDAuMDAyMjQ0LCAwLjAwMjI0NiwgMC4wMDIyNDksIDAuMDAyMjUiLCBcCi0gICAgICAgICAgIjAuMDAyMjE5LCAwLjAwMjIyOSwgMC4wMDIyNDksIDAuMDAyMjU0LCAwLjAwMjI1NywgMC4wMDIyNTksIDAuMDAyMjYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzNjY1LCAwLjAwMzY3NSwgMC4wMDM2OTMsIDAuMDAzNjk3LCAwLjAwMzcsIDAuMDAzNzAyLCAwLjAwMzcwMyIsIFwKLSAgICAgICAgICAiMC4wMDM2NjMsIDAuMDAzNjc0LCAwLjAwMzY5MiwgMC4wMDM2OTYsIDAuMDAzNjk4LCAwLjAwMzcwMSwgMC4wMDM3MDIiLCBcCi0gICAgICAgICAgIjAuMDAzNjY1LCAwLjAwMzY3NiwgMC4wMDM2OTUsIDAuMDAzNywgMC4wMDM3MDMsIDAuMDAzNzA2LCAwLjAwMzcwNiIsIFwKLSAgICAgICAgICAiMC4wMDM2NjcsIDAuMDAzNjc5LCAwLjAwMzY5OSwgMC4wMDM3MDQsIDAuMDAzNzA4LCAwLjAwMzcxLCAwLjAwMzcxMSIsIFwKLSAgICAgICAgICAiMC4wMDM2NzIsIDAuMDAzNjgzLCAwLjAwMzcwNSwgMC4wMDM3MSwgMC4wMDM3MTMsIDAuMDAzNzE3LCAwLjAwMzcxNyIsIFwKLSAgICAgICAgICAiMC4wMDM2ODIsIDAuMDAzNjkzLCAwLjAwMzcxNiwgMC4wMDM3MjIsIDAuMDAzNzI1LCAwLjAwMzcyOCwgMC4wMDM3MjkiLCBcCi0gICAgICAgICAgIjAuMDAzNjkxLCAwLjAwMzcsIDAuMDAzNzI3LCAwLjAwMzczMywgMC4wMDM3MzcsIDAuMDAzNzQxLCAwLjAwMzc0MiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjI1OSwgMC4wMDIyNjksIDAuMDAyMjg1LCAwLjAwMjI4OSwgMC4wMDIyOTEsIDAuMDAyMjkzLCAwLjAwMjI5MyIsIFwKLSAgICAgICAgICAiMC4wMDIyNDQsIDAuMDAyMjU1LCAwLjAwMjI3MiwgMC4wMDIyNzUsIDAuMDAyMjc3LCAwLjAwMjI4LCAwLjAwMjI4IiwgXAotICAgICAgICAgICIwLjAwMjIyNCwgMC4wMDIyMzUsIDAuMDAyMjUyLCAwLjAwMjI1NiwgMC4wMDIyNTgsIDAuMDAyMjYxLCAwLjAwMjI2MSIsIFwKLSAgICAgICAgICAiMC4wMDIyMDgsIDAuMDAyMjE5LCAwLjAwMjIzOCwgMC4wMDIyNDMsIDAuMDAyMjQ1LCAwLjAwMjI0NywgMC4wMDIyNDgiLCBcCi0gICAgICAgICAgIjAuMDAyMjAzLCAwLjAwMjIxNSwgMC4wMDIyMzUsIDAuMDAyMjM5LCAwLjAwMjI0MiwgMC4wMDIyNDQsIDAuMDAyMjQ2IiwgXAotICAgICAgICAgICIwLjAwMjIwNSwgMC4wMDIyMTcsIDAuMDAyMjM3LCAwLjAwMjI0MywgMC4wMDIyNDYsIDAuMDAyMjQ4LCAwLjAwMjI0OSIsIFwKLSAgICAgICAgICAiMC4wMDIyMTIsIDAuMDAyMjIzLCAwLjAwMjI0NSwgMC4wMDIyNTEsIDAuMDAyMjU0LCAwLjAwMjI1NywgMC4wMDIyNTgiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IEFEREZYMSAqCi0gKiAtLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKEFEREZYMSkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjI5OTU2NjsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAyNjYyMTg7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAyNjUzMTI7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAyNjYyMTg7Ci0gIH0KLSAgcGluKEIpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMjUwMTM2OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMjQ5MDA4OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMjUwMTM2OwotICB9Ci0gIHBpbihDSSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxOTU4OTM7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxOTUwNDI7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxOTU4OTM7Ci0gIH0KLSAgcGluKENPKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMjU4NjA5OwotICAgIGZ1bmN0aW9uIDogIigoKEEgQikrKEIgQ0kpKSsoQ0kgQSkpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMjIyMzIsIDAuMTQ4MDA5LCAwLjI4ODI0NywgMC40MTE2NDgsIDAuNTc1MDIyLCAwLjkwMzM0MiwgMS4xMDc3OCIsIFwKLSAgICAgICAgICAiMC4xMzE5MzMsIDAuMTU3NzA0LCAwLjI5Nzk2NCwgMC40MjA2ODcsIDAuNTg0ODA3LCAwLjkxMjE4NCwgMS4xMTY1NSIsIFwKLSAgICAgICAgICAiMC4xNDMwNzgsIDAuMTY4ODUyLCAwLjMwOTEyMywgMC40MzE3MTgsIDAuNTk1OTU2LCAwLjkyMjk1NiwgMS4xMjc1NSIsIFwKLSAgICAgICAgICAiMC4xNTM5NjYsIDAuMTc5NzMxLCAwLjMxOTk4OSwgMC40NDI4MDksIDAuNjA2ODcyLCAwLjkzMzkzNywgMS4xMzgyMSIsIFwKLSAgICAgICAgICAiMC4xNjQ0OTgsIDAuMTkwMjgsIDAuMzMwNTM2LCAwLjQ1Mzk1MSwgMC42MTY2NDMsIDAuOTQ0MjU3LCAxLjE0ODY5IiwgXAotICAgICAgICAgICIwLjE4MDczOSwgMC4yMDY1NTIsIDAuMzQ2ODMzLCAwLjQ3MDIyOSwgMC42MzQwNDYsIDAuOTYxMjUsIDEuMTY0ODQiLCBcCi0gICAgICAgICAgIjAuMTkzOTA1LCAwLjIxOTc5MywgMC4zNjAxNDIsIDAuNDgzNTcxLCAwLjY0Njg3NCwgMC45NzM3MzYsIDEuMTc4MTYiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTAyODkzLCAwLjE1MjI1NSwgMC40MzI5NTMsIDAuNjgzNTg3LCAxLjAyMDI0LCAxLjY5NDc1LCAyLjExNjE1IiwgXAotICAgICAgICAgICIwLjEwMjY3OCwgMC4xNTE1MjMsIDAuNDMxNjU3LCAwLjY4MzYyOCwgMS4wMjAyMiwgMS42OTQ1NSwgMi4xMTYiLCBcCi0gICAgICAgICAgIjAuMTAyNzEyLCAwLjE1MTI5MSwgMC40MzI4MzgsIDAuNjgyOTU5LCAxLjAxOTkyLCAxLjY5NDQ5LCAyLjExNTkxIiwgXAotICAgICAgICAgICIwLjEwMjU3NiwgMC4xNTE4OTksIDAuNDMxNjkyLCAwLjY4MzYyNSwgMS4wMjA5MiwgMS42OTQ1NCwgMi4xMTU5NiIsIFwKLSAgICAgICAgICAiMC4xMDI3NzksIDAuMTUyMTc4LCAwLjQzMTY3OCwgMC42ODM2NDMsIDEuMDIwOSwgMS42OTQ0NiwgMi4xMTU5MyIsIFwKLSAgICAgICAgICAiMC4xMDI5MzMsIDAuMTUyNDU5LCAwLjQzMjg1OSwgMC42ODMyMDQsIDEuMDIwNzksIDEuNjk0MTQsIDIuMTE1NTkiLCBcCi0gICAgICAgICAgIjAuMTA0MDU1LCAwLjE1Mjk5LCAwLjQzMjkzLCAwLjY4Mjc4MSwgMS4wMjA4LCAxLjY5NDEyLCAyLjExNTU0Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEyNzM3NCwgMC4xNTM2OTIsIDAuMjk1Mjg5LCAwLjQxOTg2OCwgMC41ODQ3ODYsIDAuOTE0NDkyLCAxLjEyMTEyIiwgXAotICAgICAgICAgICIwLjEzNjcyMSwgMC4xNjMwMjQsIDAuMzA0MjkzLCAwLjQyODY3NiwgMC41OTMwODksIDAuOTIzNDQ1LCAxLjEyOTc2IiwgXAotICAgICAgICAgICIwLjE0NzEyMywgMC4xNzM0MjYsIDAuMzE0NzA2LCAwLjQzOTA5MiwgMC42MDM0OTIsIDAuOTMzMzAzLCAxLjEzOTYyIiwgXAotICAgICAgICAgICIwLjE1NzAwNiwgMC4xODMzMTUsIDAuMzI0Njk0LCAwLjQ0ODg5OCwgMC42MTMzLCAwLjk0MzEwMywgMS4xNDkzNSIsIFwKLSAgICAgICAgICAiMC4xNjY1MDUsIDAuMTkyODIyLCAwLjMzNDM2MiwgMC40NTg0NzksIDAuNjIyOTUsIDAuOTUzMjkzLCAxLjE1ODg0IiwgXAotICAgICAgICAgICIwLjE4MTAzMSwgMC4yMDc0MTcsIDAuMzQ4OTI3LCAwLjQ3MzMwNiwgMC42Mzc1NTIsIDAuOTY3MjE3LCAxLjE3MzQxIiwgXAotICAgICAgICAgICIwLjE5Mjg4MiwgMC4yMTkyOCwgMC4zNjA5NjYsIDAuNDg0ODcsIDAuNjQ5NTExLCAwLjk3OTE0NSwgMS4xODUzNiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDMxNTQsIDAuMTUxMjgzLCAwLjQyODExNSwgMC42NzUwNjcsIDEuMDA2NDUsIDEuNjcwODIsIDIuMDg3NDYiLCBcCi0gICAgICAgICAgIjAuMTAzMDk5LCAwLjE1MDcxMSwgMC40Mjc4NTYsIDAuNjc0NDc1LCAxLjAwNTEsIDEuNjcxNzcsIDIuMDg3NzUiLCBcCi0gICAgICAgICAgIjAuMTAyOTg5LCAwLjE1MTA4MiwgMC40MjgyODgsIDAuNjc0ODg5LCAxLjAwNDgsIDEuNjcxOCwgMi4wODc2IiwgXAotICAgICAgICAgICIwLjEwMzAwNywgMC4xNTA2NTYsIDAuNDI3OTc5LCAwLjY3NDQ0OCwgMS4wMDUwNCwgMS42NzE3NCwgMi4wODc3IiwgXAotICAgICAgICAgICIwLjEwMzE0OSwgMC4xNTA3NTgsIDAuNDI4Mjc3LCAwLjY3NDQ3MSwgMS4wMDUyNiwgMS42NzE3MywgMi4wODc2NiIsIFwKLSAgICAgICAgICAiMC4xMDM3NDEsIDAuMTUxMDU3LCAwLjQyODA2MSwgMC42NzQ0NjIsIDEuMDA1MywgMS42NzE3NywgMi4wODc2NSIsIFwKLSAgICAgICAgICAiMC4xMDQ0NzksIDAuMTUxODk0LCAwLjQyODQ0NiwgMC42NzQ4MDQsIDEuMDA1LCAxLjY3MTgzLCAyLjA4NzYyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEyMjE2MiwgMC4xNDc5MjQsIDAuMjg4MjA3LCAwLjQxMjE1NSwgMC41NzU3OTQsIDAuOTAzNDI4LCAxLjEwODIzIiwgXAotICAgICAgICAgICIwLjEzMTI0MiwgMC4xNTcwMDksIDAuMjk3NDc4LCAwLjQyMDg0NSwgMC41ODQxOSwgMC45MTI0OTcsIDEuMTE3MTQiLCBcCi0gICAgICAgICAgIjAuMTQyODM3LCAwLjE2ODY1MSwgMC4zMDkwMzQsIDAuNDMyMzY0LCAwLjU5NTg0OSwgMC45MjQxMzksIDEuMTI4NzIiLCBcCi0gICAgICAgICAgIjAuMTU0NjYsIDAuMTgwNDE0LCAwLjMyMDg2NiwgMC40NDQxOTEsIDAuNjA3NjgzLCAwLjkzNTkzNSwgMS4xNDA1MyIsIFwKLSAgICAgICAgICAiMC4xNjY0LCAwLjE5MjE4MSwgMC4zMzI0MDMsIDAuNDU1ODg0LCAwLjYxOTUxMywgMC45NDc3ODQsIDEuMTUyMjgiLCBcCi0gICAgICAgICAgIjAuMTg0Nzk4LCAwLjIxMDU3MiwgMC4zNTA4ODMsIDAuNDc0MTAxLCAwLjYzODM4NCwgMC45NjYwNTEsIDEuMTcwNjQiLCBcCi0gICAgICAgICAgIjAuMTk5NzY5LCAwLjIyNTU5NiwgMC4zNjU4MTcsIDAuNDg5MTczLCAwLjY1MzI5NSwgMC45ODExMzUsIDEuMTg1NjUiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTAyNzA0LCAwLjE1MDg4MiwgMC40MzI1ODMsIDAuNjgyNzEzLCAxLjAyMDk5LCAxLjY5NDc0LCAyLjExNjI5IiwgXAotICAgICAgICAgICIwLjEwMzAwNiwgMC4xNTE0NzksIDAuNDMyNjU0LCAwLjY4Mjk5MywgMS4wMjAwMiwgMS42OTQ1MiwgMi4xMTYwNyIsIFwKLSAgICAgICAgICAiMC4xMDMxMTEsIDAuMTUxNTQ5LCAwLjQzMzIwNiwgMC42ODI3ODIsIDEuMDIwMDcsIDEuNjk0NDMsIDIuMTE2IiwgXAotICAgICAgICAgICIwLjEwMjk3OSwgMC4xNTIyOTIsIDAuNDMyOTc2LCAwLjY4Mjc2NSwgMS4wMjAwNiwgMS42OTQzOSwgMi4xMTU5OCIsIFwKLSAgICAgICAgICAiMC4xMDMwNzUsIDAuMTUxMDgzLCAwLjQzMzM3MywgMC42ODI4MTcsIDEuMDIwMTIsIDEuNjk0MzUsIDIuMTE1OTQiLCBcCi0gICAgICAgICAgIjAuMTAzNzUxLCAwLjE1MjI0MSwgMC40MzE2MSwgMC42ODM2NSwgMS4wMjA5MSwgMS42OTQyNCwgMi4xMTU5MSIsIFwKLSAgICAgICAgICAiMC4xMDU0MTMsIDAuMTUzNjI1LCAwLjQzMzM2OSwgMC42ODI4OTcsIDEuMDIwODksIDEuNjk0MjksIDIuMTE1ODciKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTI2MDYyLCAwLjE1MjcxMiwgMC4yOTQ1NDEsIDAuNDE4NTQ1LCAwLjU4MzM4LCAwLjkxMzA1NSwgMS4xMTkyMyIsIFwKLSAgICAgICAgICAiMC4xMzUyNTIsIDAuMTYxODg2LCAwLjMwMzQwNCwgMC40Mjc4NjMsIDAuNTkyMjQ2LCAwLjkyMjAyNSwgMS4xMjg4MiIsIFwKLSAgICAgICAgICAiMC4xNDU0NjMsIDAuMTcxOTk3LCAwLjMxMzY4NCwgMC40MzgyMTMsIDAuNjAyNjY4LCAwLjkzMzAwNywgMS4xMzkyOCIsIFwKLSAgICAgICAgICAiMC4xNTY4OTYsIDAuMTgzMjE4LCAwLjMyNDc5MywgMC40NDkyMiwgMC42MTM4MTUsIDAuOTQ0NDUsIDEuMTUwNzUiLCBcCi0gICAgICAgICAgIjAuMTY4MjMsIDAuMTk0NTQ5LCAwLjMzNjE3NCwgMC40NjEwMjksIDAuNjI1NjgsIDAuOTU1NjY0LCAxLjE2MTk3IiwgXAotICAgICAgICAgICIwLjE4NTg1NSwgMC4yMTIyNTEsIDAuMzUzOTQ1LCAwLjQ3ODQ0LCAwLjY0Mjg1MywgMC45NzM1LCAxLjE3OTczIiwgXAotICAgICAgICAgICIwLjE5OTgzNSwgMC4yMjYyMTgsIDAuMzY3ODczLCAwLjQ5MjQzLCAwLjY1NzAyMiwgMC45ODc3MDYsIDEuMTkzODciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTA0NDA3LCAwLjE1MTM1OCwgMC40MjY2MTMsIDAuNjc1MDIyLCAxLjAwNTUsIDEuNjcyMDMsIDIuMDg3NjIiLCBcCi0gICAgICAgICAgIjAuMTA0MzQzLCAwLjE1MjUzNiwgMC40Mjg4MDQsIDAuNjc0MzY3LCAxLjAwNjExLCAxLjY3MTgyLCAyLjA4NzcyIiwgXAotICAgICAgICAgICIwLjEwNDU4MiwgMC4xNTExNDcsIDAuNDI4ODAyLCAwLjY3NDM0NywgMS4wMDU0NywgMS42NzE4NCwgMi4wODc2NCIsIFwKLSAgICAgICAgICAiMC4xMDQyMTYsIDAuMTUyNjMsIDAuNDI4NzY1LCAwLjY3NDc0NywgMS4wMDYwOCwgMS42NzE4LCAyLjA4NzY1IiwgXAotICAgICAgICAgICIwLjEwNDI5OCwgMC4xNTEzMjUsIDAuNDI4MDEsIDAuNjc0MjcxLCAxLjAwNTksIDEuNjcxNTQsIDIuMDg3MzUiLCBcCi0gICAgICAgICAgIjAuMTA1NDA4LCAwLjE1MjMzMiwgMC40Mjg5MTgsIDAuNjc0OTY2LCAxLjAwNTAyLCAxLjY3MTczLCAyLjA4NzYyIiwgXAotICAgICAgICAgICIwLjEwNjg4MiwgMC4xNTMzMDYsIDAuNDI5MTM1LCAwLjY3NDkyOCwgMS4wMDY4NCwgMS42NzIwOCwgMi4wODc4NCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTE1Mzg0LCAwLjE0MTE2OSwgMC4yODE0NjUsIDAuNDA0NjIsIDAuNTY4MjIxLCAwLjg5NDg3LCAxLjA5OTQ1IiwgXAotICAgICAgICAgICIwLjEyNDcsIDAuMTUwNDg1LCAwLjI5MDQxOCwgMC40MTM2MTIsIDAuNTc3NTUyLCAwLjkwNDE2NiwgMS4xMDg3NCIsIFwKLSAgICAgICAgICAiMC4xMzY1MTMsIDAuMTYyMjc0LCAwLjMwMjMsIDAuNDI1OTcyLCAwLjU4OTg1OCwgMC45MTY4NiwgMS4xMjA1IiwgXAotICAgICAgICAgICIwLjE0ODM5NywgMC4xNzQxOTUsIDAuMzE0NDY1LCAwLjQzNzQ2MywgMC42MDEzMzYsIDAuOTI3OTkzLCAxLjEzMjUxIiwgXAotICAgICAgICAgICIwLjE2MDE3MSwgMC4xODU5MzksIDAuMzI2MDE5LCAwLjQ0OTY1LCAwLjYxMzQzMSwgMC45NDA1OTUsIDEuMTQ0MjQiLCBcCi0gICAgICAgICAgIjAuMTc4MjUsIDAuMjA0MDYzLCAwLjM0NDA3MSwgMC40Njc3NjUsIDAuNjMxMjU1LCAwLjk1NzkyNywgMS4xNjI2MSIsIFwKLSAgICAgICAgICAiMC4xOTI0NzYsIDAuMjE4MzUxLCAwLjM1ODMzMiwgMC40ODE5ODksIDAuNjQ1ODg5LCAwLjk3MzI3NCwgMS4xNzY2NCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDMxNjksIDAuMTUyNjI2LCAwLjQzMTc3NSwgMC42ODI4ODQsIDEuMDE5OTQsIDEuNjkyMDgsIDIuMTEyOCIsIFwKLSAgICAgICAgICAiMC4xMDMyMDksIDAuMTUyNjYzLCAwLjQzMjc1MywgMC42ODI3ODEsIDEuMDE5OSwgMS42OTI3MSwgMi4xMTI4NCIsIFwKLSAgICAgICAgICAiMC4xMDMyMzQsIDAuMTUyNjQyLCAwLjQzMTU2NCwgMC42ODMxOTYsIDEuMDE5NTMsIDEuNjkzMzgsIDIuMTEyNDYiLCBcCi0gICAgICAgICAgIjAuMTAzMDM1LCAwLjE1MDY0OSwgMC40MzI2MjYsIDAuNjgzMTM3LCAxLjAxOTg3LCAxLjY5MjEyLCAyLjExNDMyIiwgXAotICAgICAgICAgICIwLjEwMzU1OSwgMC4xNTI4MDgsIDAuNDMxNTA0LCAwLjY4MzIwNywgMS4wMTk5MSwgMS42OTMzOCwgMi4xMTI0NyIsIFwKLSAgICAgICAgICAiMC4xMDQwODgsIDAuMTUzNDU1LCAwLjQzMjEwOSwgMC42ODIzNzYsIDEuMDE5ODUsIDEuNjkyNjQsIDIuMTEyNDYiLCBcCi0gICAgICAgICAgIjAuMTA1MzI2LCAwLjE1MzU1NSwgMC40MzIyOTIsIDAuNjgzMjE3LCAxLjAxOTQ3LCAxLjY5MzU2LCAyLjExNDI0Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEyMDMzOCwgMC4xNDcwMTQsIDAuMjg4NTY1LCAwLjQxMjk0MiwgMC41NzczODksIDAuOTA3MTcsIDEuMTEzOTciLCBcCi0gICAgICAgICAgIjAuMTI5MjY2LCAwLjE1NTk0NiwgMC4yOTc1MSwgMC40MjE5MTQsIDAuNTg2MzEsIDAuOTE2MDk4LCAxLjEyMjEyIiwgXAotICAgICAgICAgICIwLjE0MDY2NSwgMC4xNjczNiwgMC4zMDkxNTQsIDAuNDMzMjYsIDAuNTk3NDIxLCAwLjkyNzk1OSwgMS4xMzM2IiwgXAotICAgICAgICAgICIwLjE1MjE2OCwgMC4xNzg4NjQsIDAuMzIwNDIyLCAwLjQ0NDgwNiwgMC42MDk4OTcsIDAuOTM4OTQ0LCAxLjE0NTE1IiwgXAotICAgICAgICAgICIwLjE2MzQ0NSwgMC4xOTAxNDYsIDAuMzMxNzMyLCAwLjQ1NjE1NywgMC42MjA1NywgMC45NTAzNTksIDEuMTU3MjgiLCBcCi0gICAgICAgICAgIjAuMTgwMjY3LCAwLjIwNzAzLCAwLjM0ODg4LCAwLjQ3Mjk4OSwgMC42MzcyODQsIDAuOTY3ODAzLCAxLjE3MzM1IiwgXAotICAgICAgICAgICIwLjE5MzYyMywgMC4yMjA0NzQsIDAuMzYyNTIyLCAwLjQ4NjAyLCAwLjY1MTI3NCwgMC45ODA2OSwgMS4xODY4NyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDUwMywgMC4xNTI5OSwgMC40Mjg2NTIsIDAuNjc0MDY1LCAxLjAwNjA3LCAxLjY2Njk5LCAyLjA4NjY2IiwgXAotICAgICAgICAgICIwLjEwNTQ5MywgMC4xNTMwMzUsIDAuNDI4Njk5LCAwLjY3NDA0LCAxLjAwNjA4LCAxLjY2NzEyLCAyLjA4MzA3IiwgXAotICAgICAgICAgICIwLjEwNTM2MSwgMC4xNTIxMTksIDAuNDI3ODI1LCAwLjY3NDEsIDEuMDA1NzcsIDEuNjcwOTUsIDIuMDgzNyIsIFwKLSAgICAgICAgICAiMC4xMDU0NCwgMC4xNTIxMTMsIDAuNDI4NzM4LCAwLjY3NDIxMSwgMS4wMDU5NywgMS42Njg5MiwgMi4wODM1OCIsIFwKLSAgICAgICAgICAiMC4xMDU1NzEsIDAuMTUyMTk5LCAwLjQyODczNCwgMC42NzQwODYsIDEuMDA2MDgsIDEuNjY3MTgsIDIuMDgzNzIiLCBcCi0gICAgICAgICAgIjAuMTA2NTExLCAwLjE1MjgwNSwgMC40Mjc4MzgsIDAuNjc0MDcyLCAxLjAwNTg0LCAxLjY3MDc1LCAyLjA4MzY0IiwgXAotICAgICAgICAgICIwLjEwNzUxNywgMC4xNTM5NzQsIDAuNDI4NTk1LCAwLjY3NDg1OCwgMS4wMDQ3NSwgMS42Njg3OCwgMi4wODM0NCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjAwNSwgMC4wMDIwMTYsIDAuMDAyMDM1LCAwLjAwMjA0LCAwLjAwMjA0MiwgMC4wMDIwNDQsIDAuMDAyMDQ1IiwgXAotICAgICAgICAgICIwLjAwMTk4NywgMC4wMDE5OTksIDAuMDAyMDE4LCAwLjAwMjAyMywgMC4wMDIwMjUsIDAuMDAyMDI4LCAwLjAwMjAyOCIsIFwKLSAgICAgICAgICAiMC4wMDE5NzksIDAuMDAxOTkxLCAwLjAwMjAxLCAwLjAwMjAxNSwgMC4wMDIwMTgsIDAuMDAyMDIsIDAuMDAyMDIiLCBcCi0gICAgICAgICAgIjAuMDAxOTc1LCAwLjAwMTk4NywgMC4wMDIwMDcsIDAuMDAyMDExLCAwLjAwMjAxNCwgMC4wMDIwMTcsIDAuMDAyMDE4IiwgXAotICAgICAgICAgICIwLjAwMTk3MSwgMC4wMDE5ODMsIDAuMDAyMDAzLCAwLjAwMjAwOCwgMC4wMDIwMTIsIDAuMDAyMDE0LCAwLjAwMjAxNSIsIFwKLSAgICAgICAgICAiMC4wMDE5NjgsIDAuMDAxOTc5LCAwLjAwMjAwMSwgMC4wMDIwMDcsIDAuMDAyMDExLCAwLjAwMjAxNCwgMC4wMDIwMTQiLCBcCi0gICAgICAgICAgIjAuMDAxOTcsIDAuMDAxOTgyLCAwLjAwMjAwNCwgMC4wMDIwMDksIDAuMDAyMDEzLCAwLjAwMjAxNiwgMC4wMDIwMTciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDM1NTMsIDAuMDAzNTY0LCAwLjAwMzU4NCwgMC4wMDM1ODgsIDAuMDAzNTkxLCAwLjAwMzU5MywgMC4wMDM1OTMiLCBcCi0gICAgICAgICAgIjAuMDAzNTQ0LCAwLjAwMzU1NiwgMC4wMDM1NzUsIDAuMDAzNTgsIDAuMDAzNTgzLCAwLjAwMzU4NSwgMC4wMDM1ODYiLCBcCi0gICAgICAgICAgIjAuMDAzNTM4LCAwLjAwMzU1LCAwLjAwMzU3LCAwLjAwMzU3NSwgMC4wMDM1NzgsIDAuMDAzNTgsIDAuMDAzNTgxIiwgXAotICAgICAgICAgICIwLjAwMzUzNiwgMC4wMDM1NDcsIDAuMDAzNTY4LCAwLjAwMzU3MywgMC4wMDM1NzYsIDAuMDAzNTc4LCAwLjAwMzU3OSIsIFwKLSAgICAgICAgICAiMC4wMDM1MzMsIDAuMDAzNTQ1LCAwLjAwMzU2NiwgMC4wMDM1NzEsIDAuMDAzNTc0LCAwLjAwMzU3NywgMC4wMDM1NzgiLCBcCi0gICAgICAgICAgIjAuMDAzNTI5LCAwLjAwMzU0MSwgMC4wMDM1NjQsIDAuMDAzNTcsIDAuMDAzNTc0LCAwLjAwMzU3NywgMC4wMDM1NzgiLCBcCi0gICAgICAgICAgIjAuMDAzNTI5LCAwLjAwMzU0MSwgMC4wMDM1NjQsIDAuMDAzNTcsIDAuMDAzNTc0LCAwLjAwMzU3NywgMC4wMDM1NzgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDIxMjIsIDAuMDAyMTMzLCAwLjAwMjE1MSwgMC4wMDIxNTUsIDAuMDAyMTU4LCAwLjAwMjE2LCAwLjAwMjE2IiwgXAotICAgICAgICAgICIwLjAwMjEwMywgMC4wMDIxMTUsIDAuMDAyMTMzLCAwLjAwMjEzNywgMC4wMDIxMzksIDAuMDAyMTQxLCAwLjAwMjE0MSIsIFwKLSAgICAgICAgICAiMC4wMDIwODcsIDAuMDAyMDk4LCAwLjAwMjExNywgMC4wMDIxMjIsIDAuMDAyMTI0LCAwLjAwMjEyNiwgMC4wMDIxMjYiLCBcCi0gICAgICAgICAgIjAuMDAyMDc5LCAwLjAwMjA5MSwgMC4wMDIxMSwgMC4wMDIxMTMsIDAuMDAyMTE3LCAwLjAwMjExOSwgMC4wMDIxMiIsIFwKLSAgICAgICAgICAiMC4wMDIwNzMsIDAuMDAyMDg1LCAwLjAwMjEwNiwgMC4wMDIxMSwgMC4wMDIxMTMsIDAuMDAyMTE1LCAwLjAwMjExNiIsIFwKLSAgICAgICAgICAiMC4wMDIwNywgMC4wMDIwODIsIDAuMDAyMTAzLCAwLjAwMjEwOSwgMC4wMDIxMTIsIDAuMDAyMTE1LCAwLjAwMjExNSIsIFwKLSAgICAgICAgICAiMC4wMDIwNzgsIDAuMDAyMDg5LCAwLjAwMjExLCAwLjAwMjExNSwgMC4wMDIxMTksIDAuMDAyMTIxLCAwLjAwMjEyMiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzQ3NSwgMC4wMDM0ODYsIDAuMDAzNTA1LCAwLjAwMzUwOSwgMC4wMDM1MTMsIDAuMDAzNTE0LCAwLjAwMzUxNCIsIFwKLSAgICAgICAgICAiMC4wMDM0NjUsIDAuMDAzNDc3LCAwLjAwMzQ5NiwgMC4wMDM1LCAwLjAwMzUwMywgMC4wMDM1MDUsIDAuMDAzNTA2IiwgXAotICAgICAgICAgICIwLjAwMzQ1LCAwLjAwMzQ2MiwgMC4wMDM0ODIsIDAuMDAzNDg3LCAwLjAwMzQ5LCAwLjAwMzQ5MiwgMC4wMDM0OTIiLCBcCi0gICAgICAgICAgIjAuMDAzNDM4LCAwLjAwMzQ1LCAwLjAwMzQ3LCAwLjAwMzQ3NSwgMC4wMDM0NzcsIDAuMDAzNDgsIDAuMDAzNDgxIiwgXAotICAgICAgICAgICIwLjAwMzQyNywgMC4wMDM0MzksIDAuMDAzNDYsIDAuMDAzNDY1LCAwLjAwMzQ2OSwgMC4wMDM0NzEsIDAuMDAzNDcyIiwgXAotICAgICAgICAgICIwLjAwMzQxNiwgMC4wMDM0MjksIDAuMDAzNDUxLCAwLjAwMzQ1NywgMC4wMDM0NiwgMC4wMDM0NjMsIDAuMDAzNDY0IiwgXAotICAgICAgICAgICIwLjAwMzQxMywgMC4wMDM0MjUsIDAuMDAzNDQ4LCAwLjAwMzQ1MywgMC4wMDM0NTcsIDAuMDAzNDYsIDAuMDAzNDYxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0kiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjEyLCAwLjAwMjEzMSwgMC4wMDIxNDksIDAuMDAyMTU0LCAwLjAwMjE1NiwgMC4wMDIxNTgsIDAuMDAyMTU5IiwgXAotICAgICAgICAgICIwLjAwMjExMiwgMC4wMDIxMjMsIDAuMDAyMTQyLCAwLjAwMjE0NSwgMC4wMDIxNDgsIDAuMDAyMTUxLCAwLjAwMjE1IiwgXAotICAgICAgICAgICIwLjAwMjA5OCwgMC4wMDIxMSwgMC4wMDIxMywgMC4wMDIxMzQsIDAuMDAyMTM3LCAwLjAwMjEzOSwgMC4wMDIxNCIsIFwKLSAgICAgICAgICAiMC4wMDIwODksIDAuMDAyMTAxLCAwLjAwMjEyMSwgMC4wMDIxMjUsIDAuMDAyMTI3LCAwLjAwMjEzLCAwLjAwMjEzMSIsIFwKLSAgICAgICAgICAiMC4wMDIwODIsIDAuMDAyMDkzLCAwLjAwMjExNSwgMC4wMDIxMiwgMC4wMDIxMjMsIDAuMDAyMTI1LCAwLjAwMjEyNyIsIFwKLSAgICAgICAgICAiMC4wMDIwNzgsIDAuMDAyMDksIDAuMDAyMTEyLCAwLjAwMjExOCwgMC4wMDIxMjEsIDAuMDAyMTI0LCAwLjAwMjEyNSIsIFwKLSAgICAgICAgICAiMC4wMDIwODQsIDAuMDAyMDk1LCAwLjAwMjExNiwgMC4wMDIxMjIsIDAuMDAyMTI1LCAwLjAwMjEyOCwgMC4wMDIxMjkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDMyMTIsIDAuMDAzMjIzLCAwLjAwMzI0MiwgMC4wMDMyNDcsIDAuMDAzMjUsIDAuMDAzMjUyLCAwLjAwMzI1MyIsIFwKLSAgICAgICAgICAiMC4wMDMyMTEsIDAuMDAzMjIyLCAwLjAwMzI0MSwgMC4wMDMyNDYsIDAuMDAzMjQ5LCAwLjAwMzI1MSwgMC4wMDMyNTIiLCBcCi0gICAgICAgICAgIjAuMDAzMjA5LCAwLjAwMzIyMSwgMC4wMDMyNDIsIDAuMDAzMjQ2LCAwLjAwMzI1LCAwLjAwMzI1MiwgMC4wMDMyNTMiLCBcCi0gICAgICAgICAgIjAuMDAzMjA3LCAwLjAwMzIxOSwgMC4wMDMyNCwgMC4wMDMyNDYsIDAuMDAzMjQ5LCAwLjAwMzI1MiwgMC4wMDMyNTMiLCBcCi0gICAgICAgICAgIjAuMDAzMjA3LCAwLjAwMzIxOSwgMC4wMDMyNDIsIDAuMDAzMjQ3LCAwLjAwMzI1MSwgMC4wMDMyNTQsIDAuMDAzMjU1IiwgXAotICAgICAgICAgICIwLjAwMzIxMiwgMC4wMDMyMjMsIDAuMDAzMjQ3LCAwLjAwMzI1MywgMC4wMDMyNTYsIDAuMDAzMjYsIDAuMDAzMjYxIiwgXAotICAgICAgICAgICIwLjAwMzIxOCwgMC4wMDMyMjksIDAuMDAzMjUzLCAwLjAwMzI1OSwgMC4wMDMyNjMsIDAuMDAzMjY3LCAwLjAwMzI2OCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUykgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjI1OTc4NDsKLSAgICBmdW5jdGlvbiA6ICIoKEFeQileQ0kpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMzE2MTcsIDAuMTU3MzIxLCAwLjI5NzU4OSwgMC40MjA3MTUsIDAuNTg0NjE5LCAwLjkxMjE3MSwgMS4xMTY4MSIsIFwKLSAgICAgICAgICAiMC4xMzk1NzksIDAuMTY1MzIyLCAwLjMwNTU2NywgMC40Mjg2OTEsIDAuNTkyNTkxLCAwLjkyMDIxMSwgMS4xMjQ4NCIsIFwKLSAgICAgICAgICAiMC4xNDg2ODYsIDAuMTc0MzU4LCAwLjMxNDYwMywgMC40Mzc3MywgMC42MDE2NDMsIDAuOTI5MTkxLCAxLjEzMzgyIiwgXAotICAgICAgICAgICIwLjE1NzU3MiwgMC4xODMyMTYsIDAuMzIzNDczLCAwLjQ0NjYwNSwgMC42MTA0ODksIDAuOTM4MDg4LCAxLjE0Mjc4IiwgXAotICAgICAgICAgICIwLjE2NjE4NiwgMC4xOTE4MjEsIDAuMzMyMTIxLCAwLjQ1NTIwNywgMC42MTkwOTksIDAuOTQ2Njg0LCAxLjE1MTM1IiwgXAotICAgICAgICAgICIwLjE3OTY4MiwgMC4yMDU1MDQsIDAuMzQ1NzY1LCAwLjQ2ODg2MywgMC42MzI3NjMsIDAuOTYwMzM5LCAxLjE2NDk5IiwgXAotICAgICAgICAgICIwLjE5MDkxMiwgMC4yMTY1NzksIDAuMzU2OTQ1LCAwLjQ4MDA1NywgMC42NDM5NzksIDAuOTcxNTg3LCAxLjE3NjIiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTAyMTMzLCAwLjE1MDM1NiwgMC40MzIzMjUsIDAuNjgzNDkyLCAxLjAxOTUsIDEuNjk2MjksIDIuMTE1MTIiLCBcCi0gICAgICAgICAgIjAuMTAyMTcxLCAwLjE1MDI1MywgMC40MzIzMzQsIDAuNjgzNDE1LCAxLjAyMTY1LCAxLjY5MzM2LCAyLjExNTI2IiwgXAotICAgICAgICAgICIwLjEwMjEwNSwgMC4xNTAyOTUsIDAuNDMxODM1LCAwLjY4MzMxLCAxLjAxOTcyLCAxLjY5NjExLCAyLjExNzY3IiwgXAotICAgICAgICAgICIwLjEwMjAyLCAwLjE1MDI0MiwgMC40MzIzMTIsIDAuNjgzNDUyLCAxLjAyMDMsIDEuNjk2MTgsIDIuMTE3ODgiLCBcCi0gICAgICAgICAgIjAuMTAyMTUyLCAwLjE1MDMzNywgMC40MzI0NDUsIDAuNjgzNjg3LCAxLjAyMTU5LCAxLjY5NDIzLCAyLjExNzc1IiwgXAotICAgICAgICAgICIwLjEwMjU2MSwgMC4xNTA0OTUsIDAuNDMyNDU3LCAwLjY4MzY2OCwgMS4wMjE0NCwgMS42OTQxMSwgMi4xMTc0MiIsIFwKLSAgICAgICAgICAiMC4xMDMwMzEsIDAuMTUwOTE4LCAwLjQzMjQ5NCwgMC42ODMzNDQsIDEuMDIxNDksIDEuNjk1OTgsIDIuMTE1MTIiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTM2MTE5LCAwLjE2MjM4MSwgMC4zMDQwODMsIDAuNDI4MTI5LCAwLjU5MzM0NSwgMC45MjM1MzEsIDEuMTI5ODQiLCBcCi0gICAgICAgICAgIjAuMTQ0MTIsIDAuMTcwMzgsIDAuMzEyMDgzLCAwLjQzNjEyOCwgMC42MDE0MDYsIDAuOTMxNjUsIDEuMTM3ODMiLCBcCi0gICAgICAgICAgIjAuMTUyNDI5LCAwLjE3ODczMSwgMC4zMjA0NDgsIDAuNDQ0NDk4LCAwLjYwOTcxNSwgMC45Mzk4ODYsIDEuMTQ2MjUiLCBcCi0gICAgICAgICAgIjAuMTYwMjQ4LCAwLjE4NjU0NCwgMC4zMjgyNSwgMC40NTIzMDYsIDAuNjE3NTc0LCAwLjk0NzY5OSwgMS4xNTM5OSIsIFwKLSAgICAgICAgICAiMC4xNjc4MDgsIDAuMTk0MDcxLCAwLjMzNTgwNiwgMC40NTk4NywgMC42MjUxNDIsIDAuOTU1MjQyLCAxLjE2MTU1IiwgXAotICAgICAgICAgICIwLjE3OTQwOSwgMC4yMDU2OTksIDAuMzQ3NTEsIDAuNDcxNTQsIDAuNjM2NzYxLCAwLjk2NjkxNSwgMS4xNzMzIiwgXAotICAgICAgICAgICIwLjE4ODkzNywgMC4yMTUzMjYsIDAuMzU3MDkzLCAwLjQ4MTE0LCAwLjY0NjM4MywgMC45NzY1ODYsIDEuMTgyODIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTAyODg0LCAwLjE1MDIyMiwgMC40MjY3NDcsIDAuNjc0NDI2LCAxLjAwNjk1LCAxLjY3MDE2LCAyLjA4NTkyIiwgXAotICAgICAgICAgICIwLjEwMjg2NCwgMC4xNTAyMSwgMC40MjcyNzEsIDAuNjc0NDA1LCAxLjAwNzM2LCAxLjY2OTQsIDIuMDg4ODMiLCBcCi0gICAgICAgICAgIjAuMTAyODA3LCAwLjE1MDE4OCwgMC40MjczMjUsIDAuNjc0ODcyLCAxLjAwNjg3LCAxLjY3MTYzLCAyLjA4NTM1IiwgXAotICAgICAgICAgICIwLjEwMjczNywgMC4xNTAxNjcsIDAuNDI2ODI1LCAwLjY3NTA1NywgMS4wMDczNiwgMS42NzE0NywgMi4wODQ5MSIsIFwKLSAgICAgICAgICAiMC4xMDI5LCAwLjE1MDI0NywgMC40MjY4MTksIDAuNjc0NzU1LCAxLjAwNzMzLCAxLjY3Mjc3LCAyLjA4NTQxIiwgXAotICAgICAgICAgICIwLjEwMzI1NSwgMC4xNTA3NjgsIDAuNDI2NTMxLCAwLjY3NTE3OSwgMS4wMDU5NiwgMS42NzI3MiwgMi4wODgzIiwgXAotICAgICAgICAgICIwLjEwMzkzNiwgMC4xNTEwNCwgMC40MjcwMTksIDAuNjc1MzI5LCAxLjAwNjY5LCAxLjY3MTAyLCAyLjA4ODYyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE2ODYyNCwgMC4xOTMzNDgsIDAuMzMyNDg1LCAwLjQ1NTI4LCAwLjYxODg4NSwgMC45NDYxNywgMS4xNTA2OSIsIFwKLSAgICAgICAgICAiMC4xNzgwNDgsIDAuMjAyNzcyLCAwLjM0MTkxMSwgMC40NjQ3MDUsIDAuNjI4MzExLCAwLjk1NTU5NSwgMS4xNjAxOCIsIFwKLSAgICAgICAgICAiMC4xODg0MzcsIDAuMjEzMTYsIDAuMzUyMjk5LCAwLjQ3NTA5NCwgMC42Mzg3LCAwLjk2NTk4NiwgMS4xNzA1IiwgXAotICAgICAgICAgICIwLjE5ODMwMywgMC4yMjMwNTQsIDAuMzYyMjAyLCAwLjQ4NDk4MiwgMC42NDg2MTQsIDAuOTc1OTE1LCAxLjE4MDQ2IiwgXAotICAgICAgICAgICIwLjIwNzcyOSwgMC4yMzI0NTYsIDAuMzcxNjgyLCAwLjQ5NDM4NiwgMC42NTc5OTQsIDAuOTg1MzA1LCAxLjE4OTk0IiwgXAotICAgICAgICAgICIwLjIyMjExMywgMC4yNDY4NywgMC4zODYsIDAuNTA4ODM1LCAwLjY3MjM3OSwgMC45OTk3MzcsIDEuMjA0MjMiLCBcCi0gICAgICAgICAgIjAuMjMzNTQ4LCAwLjI1ODI2NywgMC4zOTc0MTcsIDAuNTIwMTUyLCAwLjY4Mzc4NiwgMS4wMTExMiwgMS4yMTU2MyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTc3NDQsIDAuMTQ2MTkyLCAwLjQyOTQ1NywgMC42ODIyNjgsIDEuMDE5MywgMS42OTMyNCwgMi4xMTU3MyIsIFwKLSAgICAgICAgICAiMC4wOTc3NTYsIDAuMTQ2MTc5LCAwLjQyOTQ2NCwgMC42ODIyNjUsIDEuMDE4MiwgMS42OTM5OCwgMi4xMTU4OCIsIFwKLSAgICAgICAgICAiMC4wOTc3NjIsIDAuMTQ2MTk0LCAwLjQyOTYxOSwgMC42ODIyNjcsIDEuMDE4MjIsIDEuNjk0LCAyLjExNTc5IiwgXAotICAgICAgICAgICIwLjA5Nzc1NywgMC4xNDYxNzgsIDAuNDI5NTU1LCAwLjY4MTE2NywgMS4wMTgyNywgMS42OTM5NiwgMi4xMTU4NSIsIFwKLSAgICAgICAgICAiMC4wOTc3NTcsIDAuMTQ2MTcxLCAwLjQyOTU3MiwgMC42ODIyNTcsIDEuMDE4MTQsIDEuNjk0MDksIDIuMTE1ODQiLCBcCi0gICAgICAgICAgIjAuMDk3NzUxLCAwLjE0NjE3NiwgMC40Mjk1NjgsIDAuNjgwODE3LCAxLjAxODEzLCAxLjY5Mzk4LCAyLjExNTgzIiwgXAotICAgICAgICAgICIwLjA5NzcxOCwgMC4xNDYyMTMsIDAuNDI5NjA1LCAwLjY4MjE4MiwgMS4wMTgxMiwgMS42OTQwMSwgMi4xMTU4MSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNjgxNiwgMC4xOTM1OTUsIDAuMzM0MDI2LCAwLjQ1Nzc2OCwgMC42MjI3MTgsIDAuOTUyNjY1LCAxLjE1ODgiLCBcCi0gICAgICAgICAgIjAuMTc2OTQ0LCAwLjIwMjM3NywgMC4zNDI4MSwgMC40NjY1ODQsIDAuNjMxNTEsIDAuOTYxNDcsIDEuMTY3NTkiLCBcCi0gICAgICAgICAgIjAuMTg3Nzk5LCAwLjIxMzIzMSwgMC4zNTM2NzEsIDAuNDc3NDE0LCAwLjY0MjQyLCAwLjk3MjMwNywgMS4xNzg0OCIsIFwKLSAgICAgICAgICAiMC4xOTg1NCwgMC4yMjM5NzEsIDAuMzY0NDA1LCAwLjQ4ODEyNSwgMC42NTMwOTQsIDAuOTgzMDg1LCAxLjE4OTE4IiwgXAotICAgICAgICAgICIwLjIwODg2OCwgMC4yMzQzMDYsIDAuMzc0NzMyLCAwLjQ5ODQ3OCwgMC42NjM0MTUsIDAuOTkzMzg3LCAxLjE5OTUyIiwgXAotICAgICAgICAgICIwLjIyNDk1NSwgMC4yNTAzMTQsIDAuMzkwNzQ1LCAwLjUxNDQ4MSwgMC42Nzk0NDMsIDEuMDA5MzgsIDEuMjE1NDciLCBcCi0gICAgICAgICAgIjAuMjM3OTE3LCAwLjI2MzM0NywgMC40MDM3NjksIDAuNTI3NDk5LCAwLjY5MjQ2OCwgMS4wMjI0LCAxLjIyODUzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5ODg1OSwgMC4xNDYzNDIsIDAuNDIzNTg1LCAwLjY3MjM4OCwgMS4wMDQyNCwgMS42Njk3MiwgMi4wODUxOSIsIFwKLSAgICAgICAgICAiMC4wOTg4NTIsIDAuMTQ2MzEsIDAuNDIzNDIsIDAuNjcyNDIyLCAxLjAwNDIzLCAxLjY2OTU0LCAyLjA4NDkiLCBcCi0gICAgICAgICAgIjAuMDk4ODU3LCAwLjE0NjMwNCwgMC40MjM2NjYsIDAuNjcxNDQ3LCAxLjAwNDIsIDEuNjY5MzksIDIuMDg0OTUiLCBcCi0gICAgICAgICAgIjAuMDk4ODY3LCAwLjE0NjI2MiwgMC40MjM0MTgsIDAuNjcyMTk1LCAxLjAwNDQyLCAxLjY2OTYsIDIuMDg0ODQiLCBcCi0gICAgICAgICAgIjAuMDk4ODcsIDAuMTQ2Mjg2LCAwLjQyMzQyMSwgMC42NzIyOTIsIDEuMDA0MzgsIDEuNjY5NDYsIDIuMDg0ODMiLCBcCi0gICAgICAgICAgIjAuMDk4ODU2LCAwLjE0NjMxOCwgMC40MjM2MjMsIDAuNjcyMTk2LCAxLjAwNDQ1LCAxLjY2OTExLCAyLjA4NDI2IiwgXAotICAgICAgICAgICIwLjA5ODkxNywgMC4xNDYzMzIsIDAuNDIzNjMzLCAwLjY3MTE4MywgMS4wMDQzMiwgMS42NjkxMSwgMi4wODQ0MiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMjk1NjMsIDAuMTU1MTk1LCAwLjI5NTQ4MywgMC40MTg1NjQsIDAuNTgyNTIzLCAwLjkxMDEwNSwgMS4xMTQ3NyIsIFwKLSAgICAgICAgICAiMC4xMzc3NzQsIDAuMTYzNDkzLCAwLjMwMzY5MywgMC40MjY3NzUsIDAuNTkwNzM3LCAwLjkxODMyNSwgMS4xMjI5NiIsIFwKLSAgICAgICAgICAiMC4xNDgyNTMsIDAuMTczOTA3LCAwLjMxNDE2MywgMC40MzcyODEsIDAuNjAxMjU3LCAwLjkyODc0NywgMS4xMzM0NyIsIFwKLSAgICAgICAgICAiMC4xNTg3MjMsIDAuMTg0MzksIDAuMzI0NjgzLCAwLjQ0NzgsIDAuNjExNzIxLCAwLjkzOTI3MiwgMS4xNDM5MiIsIFwKLSAgICAgICAgICAiMC4xNjg5OSwgMC4xOTQ2MTQsIDAuMzM0ODk0LCAwLjQ1ODAxMywgMC42MjE5MzcsIDAuOTQ5NSwgMS4xNTQxNyIsIFwKLSAgICAgICAgICAiMC4xODQ1NjgsIDAuMjEwNiwgMC4zNTA4NzYsIDAuNDczOTgxLCAwLjYzNzkwMiwgMC45NjU0NjgsIDEuMTcwMTIiLCBcCi0gICAgICAgICAgIjAuMTk4MTM0LCAwLjIyMzg4NCwgMC4zNjQyMDcsIDAuNDg3MjgyLCAwLjY1MTIzNywgMC45Nzg3NiwgMS4xODM0NyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDIxOTgsIDAuMTUwMzE0LCAwLjQzMjMzLCAwLjY4NDUxMiwgMS4wMjE2MywgMS42OTYxNiwgMi4xMTYwMSIsIFwKLSAgICAgICAgICAiMC4xMDIxMTksIDAuMTUwMzE2LCAwLjQzMjMxNywgMC42ODQ0OTcsIDEuMDIxNiwgMS42OTYxMSwgMi4xMTQ5NSIsIFwKLSAgICAgICAgICAiMC4xMDIwOTQsIDAuMTUwMjU2LCAwLjQzMjI1MSwgMC42ODM2ODQsIDEuMDIxNzEsIDEuNjkzOSwgMi4xMTYxNCIsIFwKLSAgICAgICAgICAiMC4xMDIwMTUsIDAuMTUwMjQ5LCAwLjQzMjI5OCwgMC42ODM2MjEsIDEuMDE4MzgsIDEuNjk1OTksIDIuMTE1MTIiLCBcCi0gICAgICAgICAgIjAuMTAyMDgyLCAwLjE1MDI5OSwgMC40MzIzMDEsIDAuNjgzNzQyLCAxLjAyMTU1LCAxLjY5Mzg3LCAyLjExNDkzIiwgXAotICAgICAgICAgICIwLjEwMjkyMywgMC4xNTA1NDgsIDAuNDMyMzMyLCAwLjY4MzY5OCwgMS4wMjEzOSwgMS42OTM3OSwgMi4xMTUyNCIsIFwKLSAgICAgICAgICAiMC4xMDI5MTMsIDAuMTUwODQxLCAwLjQzMjU1NSwgMC42ODM3NDMsIDEuMDIxNDMsIDEuNjkzOTcsIDIuMTE1NDMiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTMzMTQ0LCAwLjE1OTQwNiwgMC4zMDExMzgsIDAuNDI1MTg2LCAwLjU5MDQ5MSwgMC45MjA1ODIsIDEuMTI2ODgiLCBcCi0gICAgICAgICAgIjAuMTQxMjE0LCAwLjE2NzQ3NCwgMC4zMDkyMDMsIDAuNDMzMjc0LCAwLjU5ODU1NiwgMC45Mjg2NSwgMS4xMzQ5NSIsIFwKLSAgICAgICAgICAiMC4xNTA4MjksIDAuMTc3MTMyLCAwLjMxODg1NywgMC40NDI5MSwgMC42MDgyMDMsIDAuOTM4MywgMS4xNDQ2MSIsIFwKLSAgICAgICAgICAiMC4xNjA0MzYsIDAuMTg2NzE1LCAwLjMyODQ1NCwgMC40NTI1MzcsIDAuNjE3ODAxLCAwLjk0ODA1MSwgMS4xNTQyIiwgXAotICAgICAgICAgICIwLjE2OTc3OSwgMC4xOTYwNzUsIDAuMzM3ODA1LCAwLjQ2MTg3MiwgMC42MjcxNTMsIDAuOTU3Mjc0LCAxLjE2MzU3IiwgXAotICAgICAgICAgICIwLjE4NDE3OCwgMC4yMTA1MjEsIDAuMzUyMjcyLCAwLjQ3NjMzNSwgMC42NDE2NTIsIDAuOTcxNzU4LCAxLjE3ODAzIiwgXAotICAgICAgICAgICIwLjE5NTgwMywgMC4yMjIxOTksIDAuMzYzOTk0LCAwLjQ4ODA0NiwgMC42NTMyODgsIDAuOTgzNDk3LCAxLjE4OTgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTAyODg0LCAwLjE1MDIxNywgMC40MjY3NzQsIDAuNjc1NTE3LCAxLjAwNzM2LCAxLjY3Mjg1LCAyLjA4NTA3IiwgXAotICAgICAgICAgICIwLjEwMjg0NywgMC4xNTAxMzQsIDAuNDI2Nzc5LCAwLjY3NDc4MywgMS4wMDczNSwgMS42NzI4NiwgMi4wODUwOCIsIFwKLSAgICAgICAgICAiMC4xMDI3ODgsIDAuMTUwMTcyLCAwLjQyNjc4OSwgMC42NzU0OSwgMS4wMDczNywgMS42NzI3NiwgMi4wODUwNyIsIFwKLSAgICAgICAgICAiMC4xMDI3NTIsIDAuMTUwMTcyLCAwLjQyNjc5OCwgMC42NzQwNzksIDEuMDA3MzMsIDEuNjcxMTksIDIuMDg2OTEiLCBcCi0gICAgICAgICAgIjAuMTAyODk4LCAwLjE1MDI5NSwgMC40MjY4MzMsIDAuNjc1MTk5LCAxLjAwNzM0LCAxLjY3MTc5LCAyLjA4NTAxIiwgXAotICAgICAgICAgICIwLjEwMzI3MywgMC4xNTA1NjQsIDAuNDI2ODM0LCAwLjY3NDg3OCwgMS4wMDUyNCwgMS42NzI5LCAyLjA4NzM5IiwgXAotICAgICAgICAgICIwLjEwNDE3OCwgMC4xNTExNDUsIDAuNDI3NTQ0LCAwLjY3NTI5OCwgMS4wMDc2MiwgMS42NzI2MSwgMi4wODM3NCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNzA3NCwgMC4xOTU1NjYsIDAuMzM0ODg2LCAwLjQ1NzcwNiwgMC42MjEzOSwgMC45NDg3MzEsIDEuMTUzMjgiLCBcCi0gICAgICAgICAgIjAuMTc5OTQ4LCAwLjIwNDc2NSwgMC4zNDQwNzMsIDAuNDY2OTQxLCAwLjYzMDU4NywgMC45NTc5MTcsIDEuMTYyNiIsIFwKLSAgICAgICAgICAiMC4xODk5NCwgMC4yMTQ3MjgsIDAuMzU0MDQxLCAwLjQ3NjkwMywgMC42NDA1NTEsIDAuOTY3OTUxLCAxLjE3MjQ1IiwgXAotICAgICAgICAgICIwLjE5OTY0MiwgMC4yMjQ0NTIsIDAuMzYzNzYxLCAwLjQ4NjYzLCAwLjY1MDI3NiwgMC45Nzc2MDcsIDEuMTgyMjciLCBcCi0gICAgICAgICAgIjAuMjA4OTQxLCAwLjIzMzczOSwgMC4zNzMwNTYsIDAuNDk1OTExLCAwLjY1OTY0LCAwLjk4NjkyLCAxLjE5MTQ2IiwgXAotICAgICAgICAgICIwLjIyNDIwOSwgMC4yNDkwOTcsIDAuMzg4MTQ5LCAwLjUxMDgyNCwgMC42NzQ1MSwgMS4wMDE3NiwgMS4yMDYyNSIsIFwKLSAgICAgICAgICAiMC4yMzc5MTgsIDAuMjYyNzE3LCAwLjQwMTc1LCAwLjUyNDUxNSwgMC42ODgwODgsIDEuMDE1NTMsIDEuMjIwMDEiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk3NjM3LCAwLjE0NjEyOSwgMC40MjkzMDQsIDAuNjgyNTgxLCAxLjAxOTYsIDEuNjk0MSwgMi4xMTU3OSIsIFwKLSAgICAgICAgICAiMC4wOTc2MjgsIDAuMTQ2MTA0LCAwLjQyOTgwMSwgMC42ODI1OTEsIDEuMDE5MzIsIDEuNjk0LCAyLjExNjEyIiwgXAotICAgICAgICAgICIwLjA5NzYyNSwgMC4xNDYwOTYsIDAuNDI5NzkxLCAwLjY4MjU2MiwgMS4wMTk1OCwgMS42OTQzLCAyLjExNTgyIiwgXAotICAgICAgICAgICIwLjA5NzYzLCAwLjE0NjExOSwgMC40Mjk4MDMsIDAuNjgyNTkxLCAxLjAxOTMxLCAxLjY5Mzk5LCAyLjExNjAzIiwgXAotICAgICAgICAgICIwLjA5NzY2MSwgMC4xNDYxMiwgMC40Mjk3MDEsIDAuNjgyNTQ0LCAxLjAxOTgsIDEuNjkzODMsIDIuMTE1NjciLCBcCi0gICAgICAgICAgIjAuMDk3NjYsIDAuMTQ2MTMyLCAwLjQyOTc4OSwgMC42ODI1NTIsIDEuMDE4NjcsIDEuNjkzOTYsIDIuMTE1ODQiLCBcCi0gICAgICAgICAgIjAuMDk3NzI1LCAwLjE0NjE3NywgMC40Mjk4MjEsIDAuNjgyNTg3LCAxLjAxODg2LCAxLjY5NDE1LCAyLjExNTk3Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE2NzI4NiwgMC4xOTI3MzcsIDAuMzMzMTU2LCAwLjQ1Njk0NSwgMC42MjE4NjIsIDAuOTUxNzg1LCAxLjE1ODAxIiwgXAotICAgICAgICAgICIwLjE3NjM3LCAwLjIwMTgxNSwgMC4zNDIyMzgsIDAuNDY1OTc5LCAwLjYzMDkyOSwgMC45NjA4NjUsIDEuMTY3MDUiLCBcCi0gICAgICAgICAgIjAuMTg3OTY1LCAwLjIxMzQyNSwgMC4zNTM4ODUsIDAuNDc3NTcsIDAuNjQyNTI0LCAwLjk3MjQ4NywgMS4xNzg2NiIsIFwKLSAgICAgICAgICAiMC4xOTk3MzQsIDAuMjI1MTc2LCAwLjM2NTYxNSwgMC40ODkyOTEsIDAuNjU0MjkxLCAwLjk4NDIyOCwgMS4xOTA0IiwgXAotICAgICAgICAgICIwLjIxMTQyNywgMC4yMzY4NzQsIDAuMzc3MzM5LCAwLjUwMTA1NSwgMC42NjYwMTMsIDAuOTk1OTM3LCAxLjIwMjEyIiwgXAotICAgICAgICAgICIwLjIyOTYxMywgMC4yNTUwNTMsIDAuMzk1NDcxLCAwLjUxOTE3OCwgMC42ODQxNTgsIDEuMDE0MDgsIDEuMjIwMjUiLCBcCi0gICAgICAgICAgIjAuMjQ0MjQ3LCAwLjI2OTY3MywgMC40MTAxMDQsIDAuNTMzODEyLCAwLjY5ODc1OCwgMS4wMjg3MiwgMS4yMzQ4NyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTg2MTcsIDAuMTQ2MDA5LCAwLjQyMzY1NywgMC42NzI1NTIsIDEuMDA1MDcsIDEuNjY5NzEsIDIuMDg1NjQiLCBcCi0gICAgICAgICAgIjAuMDk4NjEzLCAwLjE0NjEyMiwgMC40MjM1NjQsIDAuNjcyNTA2LCAxLjAwNDQ4LCAxLjY2OTQ4LCAyLjA4NTE1IiwgXAotICAgICAgICAgICIwLjA5ODYxLCAwLjE0NjE0NywgMC40MjM4MTcsIDAuNjcyNDk3LCAxLjAwNDQ0LCAxLjY2OTQsIDIuMDg1MTMiLCBcCi0gICAgICAgICAgIjAuMDk4NjMsIDAuMTQ2MTQyLCAwLjQyMzYzNCwgMC42NzIzNDIsIDEuMDA0NDcsIDEuNjY5MzgsIDIuMDg0OTYiLCBcCi0gICAgICAgICAgIjAuMDk4NjExLCAwLjE0NjExLCAwLjQyMzgxMywgMC42NzI0OTQsIDEuMDA0NDQsIDEuNjY5MzksIDIuMDg0ODciLCBcCi0gICAgICAgICAgIjAuMDk4NjI5LCAwLjE0NjE2NSwgMC40MjM0NDUsIDAuNjcyNDcxLCAxLjAwNDM4LCAxLjY2OTE3LCAyLjA4NDczIiwgXAotICAgICAgICAgICIwLjA5ODY5NywgMC4xNDYyMTYsIDAuNDIzNzgyLCAwLjY3MjM4NCwgMS4wMDQzMywgMS42NjkyNywgMi4wODQ3MyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTI4ODQ1LCAwLjE1NDYwOCwgMC4yOTQ5MDEsIDAuNDE3OTg1LCAwLjU4MTk0MywgMC45MDk1MzcsIDEuMTE0NCIsIFwKLSAgICAgICAgICAiMC4xMzY5NzYsIDAuMTYyNjkzLCAwLjMwMzAxMSwgMC40MjYxMzEsIDAuNTkwMDI0LCAwLjkxNzYyNywgMS4xMjIzIiwgXAotICAgICAgICAgICIwLjE0NzYzMSwgMC4xNzMyOTgsIDAuMzEzNTU4LCAwLjQzNjcwNSwgMC42MDA1NiwgMC45MjgyOCwgMS4xMzI4NSIsIFwKLSAgICAgICAgICAiMC4xNTg1MjMsIDAuMTg0MTc0LCAwLjMyNDQ3NSwgMC40NDc2MjYsIDAuNjExNSwgMC45MzkwNjEsIDEuMTQzNzgiLCBcCi0gICAgICAgICAgIjAuMTY5NDg1LCAwLjE5NTE1MiwgMC4zMzU0MzgsIDAuNDU4NTYzLCAwLjYyMjQ4NiwgMC45NTAwMzgsIDEuMTU0NzYiLCBcCi0gICAgICAgICAgIjAuMTg2ODI4LCAwLjIxMjQ4NSwgMC4zNTI3NzgsIDAuNDc1ODY4LCAwLjYzOTc5MSwgMC45NjczNzEsIDEuMTcyMDMiLCBcCi0gICAgICAgICAgIjAuMjAxMjM1LCAwLjIyNzA2MSwgMC4zNjcyNTcsIDAuNDkwNDEzLCAwLjY1NDI4NiwgMC45ODE5NzUsIDEuMTg2NjQiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTAyMjkyLCAwLjE1MDM4NiwgMC40MzE5NDYsIDAuNjg0NjEyLCAxLjAyMTgsIDEuNjk0MDIsIDIuMTE1OTYiLCBcCi0gICAgICAgICAgIjAuMTAyMTUsIDAuMTUwMzQsIDAuNDMyMzk0LCAwLjY4MjQyNCwgMS4wMjE2NywgMS42OTI2NiwgMi4xMTc5NiIsIFwKLSAgICAgICAgICAiMC4xMDIwODYsIDAuMTUwMjczLCAwLjQzMjI3LCAwLjY4MzQ3OCwgMS4wMjE0MywgMS42OTY0OSwgMi4xMTUzMSIsIFwKLSAgICAgICAgICAiMC4xMDIwMjQsIDAuMTUwMTU2LCAwLjQzMjMxNywgMC42ODM0NjksIDEuMDIwMzIsIDEuNjk1NDgsIDIuMTE1MzUiLCBcCi0gICAgICAgICAgIjAuMTAyMDg3LCAwLjE1MDI4MSwgMC40MzIzMDQsIDAuNjg0NjIxLCAxLjAyMTYyLCAxLjY5NDE4LCAyLjExNDg3IiwgXAotICAgICAgICAgICIwLjEwMjUzNiwgMC4xNTA0OTMsIDAuNDMyNDgxLCAwLjY4MzcxLCAxLjAyMTQzLCAxLjY5Mzg1LCAyLjExNTAyIiwgXAotICAgICAgICAgICIwLjEwMzAzNywgMC4xNTA4NjcsIDAuNDMyNDk3LCAwLjY4MzY5LCAxLjAyMTQzLCAxLjY5NTkzLCAyLjExNzQ3Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEyOTU0MiwgMC4xNTU4NDgsIDAuMjk3NjA4LCAwLjQyMTY0NywgMC41ODY5MDIsIDAuOTE3MDczLCAxLjEyMzM3IiwgXAotICAgICAgICAgICIwLjEzNzM2MSwgMC4xNjM2NjUsIDAuMzA1NDEyLCAwLjQyOTQ3MSwgMC41OTQ3NjgsIDAuOTI0ODk2LCAxLjEzMTE2IiwgXAotICAgICAgICAgICIwLjE0NzY0MiwgMC4xNzM5NzMsIDAuMzE1NzM4LCAwLjQzOTc5MiwgMC42MDUwNDUsIDAuOTM1MjY2LCAxLjE0MTUiLCBcCi0gICAgICAgICAgIjAuMTU4NDQ4LCAwLjE4NDcyLCAwLjMyNjQ4NCwgMC40NTA1NDgsIDAuNjE1NzkyLCAwLjk0NjAzOCwgMS4xNTIyNSIsIFwKLSAgICAgICAgICAiMC4xNjkxOCwgMC4xOTU0NTksIDAuMzM3MjMzLCAwLjQ2MTI4NSwgMC42MjY1MTMsIDAuOTU2NzQ1LCAxLjE2MzAxIiwgXAotICAgICAgICAgICIwLjE4NTcyMywgMC4yMTIxMTksIDAuMzUzODU5LCAwLjQ3NzkwOCwgMC42NDMxMjgsIDAuOTczMzAxLCAxLjE3OTY5IiwgXAotICAgICAgICAgICIwLjE5ODU4NywgMC4yMjQ5NywgMC4zNjY5MzcsIDAuNDkxMDExLCAwLjY1NjMwNSwgMC45ODYzOSwgMS4xOTI3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwMjgyNSwgMC4xNTAyMSwgMC40Mjc0NDMsIDAuNjc1NTA4LCAxLjAwNjM3LCAxLjY3MTc1LCAyLjA4NzI4IiwgXAotICAgICAgICAgICIwLjEwMjgzNCwgMC4xNTAxODMsIDAuNDI2NzY4LCAwLjY3NDQ3MSwgMS4wMDczMiwgMS42NzA0LCAyLjA4NzE1IiwgXAotICAgICAgICAgICIwLjEwMjc1NiwgMC4xNTAxNjQsIDAuNDI2NzM4LCAwLjY3NDQ1OCwgMS4wMDc2NywgMS42NzI0MiwgMi4wODcwOSIsIFwKLSAgICAgICAgICAiMC4xMDI3NTUsIDAuMTUwMTQzLCAwLjQyNjgzNywgMC42NzQ0MjIsIDEuMDA3NTgsIDEuNjcyMjksIDIuMDg3MTgiLCBcCi0gICAgICAgICAgIjAuMTAyODYxLCAwLjE1MDI0OSwgMC40Mjc0MzksIDAuNjc0NDA0LCAxLjAwNzcxLCAxLjY3MjQxLCAyLjA4NTQxIiwgXAotICAgICAgICAgICIwLjEwMzQ1LCAwLjE1MDYyMywgMC40Mjc0OTIsIDAuNjc1MjI0LCAxLjAwNzY2LCAxLjY3MjcsIDIuMDg2NjUiLCBcCi0gICAgICAgICAgIjAuMTA0MDI5LCAwLjE1MTA4MiwgMC40Mjc2MTksIDAuNjc1NzYzLCAxLjAwNDc0LCAxLjY3Mjc4LCAyLjA4NjM2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNJIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNjI2NzcsIDAuMTg3NDc0LCAwLjMyNjc5MSwgMC40NDk2NTgsIDAuNjEzMzExLCAwLjk0MDYzOSwgMS4xNDUzNyIsIFwKLSAgICAgICAgICAiMC4xNzE4NjQsIDAuMTk2Njg0LCAwLjMzNTk5OCwgMC40NTg4NjcsIDAuNjIyNTE3LCAwLjk0OTg0NSwgMS4xNTQ0MyIsIFwKLSAgICAgICAgICAiMC4xODM1NDQsIDAuMjA4MzUzLCAwLjM0NzY3LCAwLjQ3MDUyNywgMC42MzQwNTcsIDAuOTYxNTQxLCAxLjE2NjA4IiwgXAotICAgICAgICAgICIwLjE5NTExOSwgMC4yMTk5MjEsIDAuMzU5MjMyLCAwLjQ4MjA5MywgMC42NDU4MjIsIDAuOTczMTA0LCAxLjE3NzY1IiwgXAotICAgICAgICAgICIwLjIwNjM0NiwgMC4yMzExNDgsIDAuMzcwNDUsIDAuNDkzMzE0LCAwLjY1Njk2NSwgMC45ODQyOTUsIDEuMTg5MDciLCBcCi0gICAgICAgICAgIjAuMjIyOTI3LCAwLjI0Nzc0NSwgMC4zODcwNTMsIDAuNTA5OTA2LCAwLjY3MzU4MSwgMS4wMDA5NiwgMS4yMDU0NiIsIFwKLSAgICAgICAgICAiMC4yMzU3MTIsIDAuMjYwNDk2LCAwLjM5OTc3NywgMC41MjI1ODYsIDAuNjg2MjY5LCAxLjAxMzYsIDEuMjE4MTUiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk3MDkzLCAwLjE0NTg1MywgMC40Mjk4MDQsIDAuNjgyNTY3LCAxLjAxOTMyLCAxLjY5MjI1LCAyLjExNjIxIiwgXAotICAgICAgICAgICIwLjA5NzA3MSwgMC4xNDU4NDksIDAuNDI5ODExLCAwLjY4MjU3OSwgMS4wMTkwMywgMS42OTIzMSwgMi4xMTM1MyIsIFwKLSAgICAgICAgICAiMC4wOTcwODMsIDAuMTQ1ODI3LCAwLjQyOTY5OCwgMC42ODI1NDgsIDEuMDE5NDMsIDEuNjk0MiwgMi4xMTM2MiIsIFwKLSAgICAgICAgICAiMC4wOTcwODIsIDAuMTQ1ODE2LCAwLjQyOTc5NywgMC42ODI1NTUsIDEuMDE5ODEsIDEuNjkyMjIsIDIuMTEzNTMiLCBcCi0gICAgICAgICAgIjAuMDk3MDg1LCAwLjE0NTgyOSwgMC40Mjk4MDEsIDAuNjgyNTc0LCAxLjAxOTAyLCAxLjY5MjM1LCAyLjExMzA3IiwgXAotICAgICAgICAgICIwLjA5NzA4LCAwLjE0NTgyNSwgMC40Mjk2NzUsIDAuNjgyNTQxLCAxLjAxOTQyLCAxLjY5NDMxLCAyLjExMzYyIiwgXAotICAgICAgICAgICIwLjA5NzIyOSwgMC4xNDU5MjcsIDAuNDI5MzcxLCAwLjY4MTc5NiwgMS4wMTgwOSwgMS42OTI1MiwgMi4xMTMzNSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNTk1OTcsIDAuMTg0NzU3LCAwLjMyNTE2OCwgMC40NDg5MzEsIDAuNjEzODc2LCAwLjk0Mzc5MSwgMS4xNDk5NyIsIFwKLSAgICAgICAgICAiMC4xNjg4ODksIDAuMTk0MDU5LCAwLjMzNDQ1OCwgMC40NTgyMDcsIDAuNjIzMTczLCAwLjk1MzA4OSwgMS4xNTkyNyIsIFwKLSAgICAgICAgICAiMC4xODA1OSwgMC4yMDU3NCwgMC4zNDYxMzEsIDAuNDY5OTM3LCAwLjYzNDkzMSwgMC45NjQ3ODUsIDEuMTcwOTYiLCBcCi0gICAgICAgICAgIjAuMTkyMTM5LCAwLjIxNzMxNSwgMC4zNTc3LCAwLjQ4MTU0NCwgMC42NDY1MTQsIDAuOTc2NDIxLCAxLjE4MjYxIiwgXAotICAgICAgICAgICIwLjIwMzY4MiwgMC4yMjg4MzEsIDAuMzY5MjYyLCAwLjQ5MzA2NCwgMC42NTgwNCwgMC45ODc5MiwgMS4xOTQxIiwgXAotICAgICAgICAgICIwLjIyMTI4OSwgMC4yNDY0NiwgMC4zODY4MzksIDAuNTEwNjQzLCAwLjY3NTU2NSwgMS4wMDU0NiwgMS4yMTE2NSIsIFwKLSAgICAgICAgICAiMC4yMzQ5MDYsIDAuMjYwMDc1LCAwLjQwMDQyLCAwLjUyNDIxNywgMC42ODkyMDcsIDEuMDE5MTQsIDEuMjI1MjMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk2ODM1LCAwLjE0NDgyNCwgMC40MjM0MjMsIDAuNjcxODQ1LCAxLjAwNDQ2LCAxLjY2NzQ5LCAyLjA4MjY5IiwgXAotICAgICAgICAgICIwLjA5NjgzMSwgMC4xNDQ4MTcsIDAuNDIzNDA5LCAwLjY3MTgwOCwgMS4wMDQzNCwgMS42Njg4OCwgMi4wODI2MiIsIFwKLSAgICAgICAgICAiMC4wOTY4MzEsIDAuMTQ0ODE1LCAwLjQyMzIzOCwgMC42NzIxODUsIDEuMDA0MzksIDEuNjY4OTUsIDIuMDgyNjQiLCBcCi0gICAgICAgICAgIjAuMDk2ODE4LCAwLjE0NDc2OCwgMC40MjM1MjEsIDAuNjcxOTg3LCAxLjAwNDMzLCAxLjY2NzQ5LCAyLjA4NDU1IiwgXAotICAgICAgICAgICIwLjA5Njg0MSwgMC4xNDQ4MTksIDAuNDIzMjM4LCAwLjY3MjQyNSwgMS4wMDQ2LCAxLjY2OTE5LCAyLjA4MjU2IiwgXAotICAgICAgICAgICIwLjA5NjgzLCAwLjE0NDgzNCwgMC40MjMyMzEsIDAuNjcxMTQzLCAxLjAwNDMyLCAxLjY2ODc4LCAyLjA4MjYzIiwgXAotICAgICAgICAgICIwLjA5NzA1MywgMC4xNDQ5NDIsIDAuNDIzNDMyLCAwLjY3MjEwMywgMS4wMDQzNSwgMS42NjkzNCwgMi4wODQyMyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzU1MywgMC4wMDM1NjQsIDAuMDAzNTg0LCAwLjAwMzU4OCwgMC4wMDM1OTEsIDAuMDAzNTkzLCAwLjAwMzU5MyIsIFwKLSAgICAgICAgICAiMC4wMDM1NDQsIDAuMDAzNTU2LCAwLjAwMzU3NSwgMC4wMDM1OCwgMC4wMDM1ODMsIDAuMDAzNTg1LCAwLjAwMzU4NiIsIFwKLSAgICAgICAgICAiMC4wMDM1MzgsIDAuMDAzNTUsIDAuMDAzNTcsIDAuMDAzNTc1LCAwLjAwMzU3OCwgMC4wMDM1OCwgMC4wMDM1ODEiLCBcCi0gICAgICAgICAgIjAuMDAzNTM2LCAwLjAwMzU0NywgMC4wMDM1NjgsIDAuMDAzNTczLCAwLjAwMzU3NiwgMC4wMDM1NzgsIDAuMDAzNTc5IiwgXAotICAgICAgICAgICIwLjAwMzUzMywgMC4wMDM1NDUsIDAuMDAzNTY2LCAwLjAwMzU3MSwgMC4wMDM1NzQsIDAuMDAzNTc3LCAwLjAwMzU3OCIsIFwKLSAgICAgICAgICAiMC4wMDM1MjksIDAuMDAzNTQxLCAwLjAwMzU2NCwgMC4wMDM1NywgMC4wMDM1NzQsIDAuMDAzNTc3LCAwLjAwMzU3OCIsIFwKLSAgICAgICAgICAiMC4wMDM1MjksIDAuMDAzNTQxLCAwLjAwMzU2NCwgMC4wMDM1NywgMC4wMDM1NzQsIDAuMDAzNTc3LCAwLjAwMzU3OCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjAwNSwgMC4wMDIwMTYsIDAuMDAyMDM1LCAwLjAwMjA0LCAwLjAwMjA0MiwgMC4wMDIwNDQsIDAuMDAyMDQ1IiwgXAotICAgICAgICAgICIwLjAwMTk4NywgMC4wMDE5OTksIDAuMDAyMDE4LCAwLjAwMjAyMywgMC4wMDIwMjUsIDAuMDAyMDI4LCAwLjAwMjAyOCIsIFwKLSAgICAgICAgICAiMC4wMDE5NzksIDAuMDAxOTkxLCAwLjAwMjAxLCAwLjAwMjAxNSwgMC4wMDIwMTgsIDAuMDAyMDIsIDAuMDAyMDIiLCBcCi0gICAgICAgICAgIjAuMDAxOTc1LCAwLjAwMTk4NywgMC4wMDIwMDcsIDAuMDAyMDExLCAwLjAwMjAxNCwgMC4wMDIwMTcsIDAuMDAyMDE4IiwgXAotICAgICAgICAgICIwLjAwMTk3MSwgMC4wMDE5ODMsIDAuMDAyMDAzLCAwLjAwMjAwOCwgMC4wMDIwMTIsIDAuMDAyMDE0LCAwLjAwMjAxNSIsIFwKLSAgICAgICAgICAiMC4wMDE5NjgsIDAuMDAxOTc5LCAwLjAwMjAwMSwgMC4wMDIwMDcsIDAuMDAyMDExLCAwLjAwMjAxNCwgMC4wMDIwMTQiLCBcCi0gICAgICAgICAgIjAuMDAxOTcsIDAuMDAxOTgyLCAwLjAwMjAwNCwgMC4wMDIwMDksIDAuMDAyMDEzLCAwLjAwMjAxNiwgMC4wMDIwMTciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDM0NzUsIDAuMDAzNDg2LCAwLjAwMzUwNSwgMC4wMDM1MDksIDAuMDAzNTEzLCAwLjAwMzUxNCwgMC4wMDM1MTQiLCBcCi0gICAgICAgICAgIjAuMDAzNDY1LCAwLjAwMzQ3NywgMC4wMDM0OTYsIDAuMDAzNSwgMC4wMDM1MDMsIDAuMDAzNTA1LCAwLjAwMzUwNiIsIFwKLSAgICAgICAgICAiMC4wMDM0NSwgMC4wMDM0NjIsIDAuMDAzNDgyLCAwLjAwMzQ4NywgMC4wMDM0OSwgMC4wMDM0OTIsIDAuMDAzNDkyIiwgXAotICAgICAgICAgICIwLjAwMzQzOCwgMC4wMDM0NSwgMC4wMDM0NywgMC4wMDM0NzUsIDAuMDAzNDc3LCAwLjAwMzQ4LCAwLjAwMzQ4MSIsIFwKLSAgICAgICAgICAiMC4wMDM0MjcsIDAuMDAzNDM5LCAwLjAwMzQ2LCAwLjAwMzQ2NSwgMC4wMDM0NjksIDAuMDAzNDcxLCAwLjAwMzQ3MiIsIFwKLSAgICAgICAgICAiMC4wMDM0MTYsIDAuMDAzNDI5LCAwLjAwMzQ1MSwgMC4wMDM0NTcsIDAuMDAzNDYsIDAuMDAzNDYzLCAwLjAwMzQ2NCIsIFwKLSAgICAgICAgICAiMC4wMDM0MTMsIDAuMDAzNDI1LCAwLjAwMzQ0OCwgMC4wMDM0NTMsIDAuMDAzNDU3LCAwLjAwMzQ2LCAwLjAwMzQ2MSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjEyMiwgMC4wMDIxMzMsIDAuMDAyMTUxLCAwLjAwMjE1NSwgMC4wMDIxNTgsIDAuMDAyMTYsIDAuMDAyMTYiLCBcCi0gICAgICAgICAgIjAuMDAyMTAzLCAwLjAwMjExNSwgMC4wMDIxMzMsIDAuMDAyMTM3LCAwLjAwMjEzOSwgMC4wMDIxNDEsIDAuMDAyMTQxIiwgXAotICAgICAgICAgICIwLjAwMjA4NywgMC4wMDIwOTgsIDAuMDAyMTE3LCAwLjAwMjEyMiwgMC4wMDIxMjQsIDAuMDAyMTI2LCAwLjAwMjEyNiIsIFwKLSAgICAgICAgICAiMC4wMDIwNzksIDAuMDAyMDkxLCAwLjAwMjExLCAwLjAwMjExMywgMC4wMDIxMTcsIDAuMDAyMTE5LCAwLjAwMjEyIiwgXAotICAgICAgICAgICIwLjAwMjA3MywgMC4wMDIwODUsIDAuMDAyMTA2LCAwLjAwMjExLCAwLjAwMjExMywgMC4wMDIxMTUsIDAuMDAyMTE2IiwgXAotICAgICAgICAgICIwLjAwMjA3LCAwLjAwMjA4MiwgMC4wMDIxMDMsIDAuMDAyMTA5LCAwLjAwMjExMiwgMC4wMDIxMTUsIDAuMDAyMTE1IiwgXAotICAgICAgICAgICIwLjAwMjA3OCwgMC4wMDIwODksIDAuMDAyMTEsIDAuMDAyMTE1LCAwLjAwMjExOSwgMC4wMDIxMjEsIDAuMDAyMTIyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0kiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzIxMiwgMC4wMDMyMjMsIDAuMDAzMjQyLCAwLjAwMzI0NywgMC4wMDMyNSwgMC4wMDMyNTIsIDAuMDAzMjUzIiwgXAotICAgICAgICAgICIwLjAwMzIxMSwgMC4wMDMyMjIsIDAuMDAzMjQxLCAwLjAwMzI0NiwgMC4wMDMyNDksIDAuMDAzMjUxLCAwLjAwMzI1MiIsIFwKLSAgICAgICAgICAiMC4wMDMyMDksIDAuMDAzMjIxLCAwLjAwMzI0MiwgMC4wMDMyNDYsIDAuMDAzMjUsIDAuMDAzMjUyLCAwLjAwMzI1MyIsIFwKLSAgICAgICAgICAiMC4wMDMyMDcsIDAuMDAzMjE5LCAwLjAwMzI0LCAwLjAwMzI0NiwgMC4wMDMyNDksIDAuMDAzMjUyLCAwLjAwMzI1MyIsIFwKLSAgICAgICAgICAiMC4wMDMyMDcsIDAuMDAzMjE5LCAwLjAwMzI0MiwgMC4wMDMyNDcsIDAuMDAzMjUxLCAwLjAwMzI1NCwgMC4wMDMyNTUiLCBcCi0gICAgICAgICAgIjAuMDAzMjEyLCAwLjAwMzIyMywgMC4wMDMyNDcsIDAuMDAzMjUzLCAwLjAwMzI1NiwgMC4wMDMyNiwgMC4wMDMyNjEiLCBcCi0gICAgICAgICAgIjAuMDAzMjE4LCAwLjAwMzIyOSwgMC4wMDMyNTMsIDAuMDAzMjU5LCAwLjAwMzI2MywgMC4wMDMyNjcsIDAuMDAzMjY4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyMTIsIDAuMDAyMTMxLCAwLjAwMjE0OSwgMC4wMDIxNTQsIDAuMDAyMTU2LCAwLjAwMjE1OCwgMC4wMDIxNTkiLCBcCi0gICAgICAgICAgIjAuMDAyMTEyLCAwLjAwMjEyMywgMC4wMDIxNDIsIDAuMDAyMTQ1LCAwLjAwMjE0OCwgMC4wMDIxNTEsIDAuMDAyMTUiLCBcCi0gICAgICAgICAgIjAuMDAyMDk4LCAwLjAwMjExLCAwLjAwMjEzLCAwLjAwMjEzNCwgMC4wMDIxMzcsIDAuMDAyMTM5LCAwLjAwMjE0IiwgXAotICAgICAgICAgICIwLjAwMjA4OSwgMC4wMDIxMDEsIDAuMDAyMTIxLCAwLjAwMjEyNSwgMC4wMDIxMjcsIDAuMDAyMTMsIDAuMDAyMTMxIiwgXAotICAgICAgICAgICIwLjAwMjA4MiwgMC4wMDIwOTMsIDAuMDAyMTE1LCAwLjAwMjEyLCAwLjAwMjEyMywgMC4wMDIxMjUsIDAuMDAyMTI3IiwgXAotICAgICAgICAgICIwLjAwMjA3OCwgMC4wMDIwOSwgMC4wMDIxMTIsIDAuMDAyMTE4LCAwLjAwMjEyMSwgMC4wMDIxMjQsIDAuMDAyMTI1IiwgXAotICAgICAgICAgICIwLjAwMjA4NCwgMC4wMDIwOTUsIDAuMDAyMTE2LCAwLjAwMjEyMiwgMC4wMDIxMjUsIDAuMDAyMTI4LCAwLjAwMjEyOSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogQURESFg0ICoKLSAqIC0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoQURESFg0KSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuNDkzMTY0OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE2NjA0OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTY2MDQ7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNjU5NTI7Ci0gIH0KLSAgcGluKEIpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMjc4NzA4OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMjc2MzQ7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAyNzg3MDg7Ci0gIH0KLSAgcGluKENPKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDEuMDQyNDsKLSAgICBmdW5jdGlvbiA6ICIoQSBCKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjMxNzIsIDAuMTM5Mjk2LCAwLjIxMjAwNCwgMC4yNjM5MywgMC4zNDcxNzIsIDAuNDE5ODg5LCAwLjUyMzI4IiwgXAotICAgICAgICAgICIwLjA3MTg4LCAwLjE0Nzk5OCwgMC4yMjA2NCwgMC4yNzIzNzMsIDAuMzU1ODM3LCAwLjQyODY3NCwgMC41MzIwNDUiLCBcCi0gICAgICAgICAgIjAuMDgyNTIxLCAwLjE1ODY2LCAwLjIzMTMyLCAwLjI4MzA5MywgMC4zNjY1NDcsIDAuNDM5MzgxLCAwLjU0Mjc1MiIsIFwKLSAgICAgICAgICAiMC4wOTI4NzgsIDAuMTY5MDYsIDAuMjQxNzE4LCAwLjI5MzUwNiwgMC4zNzY5NTUsIDAuNDQ5ODE4LCAwLjU1MzE2NyIsIFwKLSAgICAgICAgICAiMC4xMDI2MjEsIDAuMTc4OTMxLCAwLjI1MTYwOSwgMC4zMDMzODMsIDAuMzg2ODAzLCAwLjQ1OTcyLCAwLjU2MzA2NSIsIFwKLSAgICAgICAgICAiMC4xMTY0OTgsIDAuMTkzMjg5LCAwLjI2NjAxNywgMC4zMTc3MDYsIDAuNDAxMjcsIDAuNDc0MDQxLCAwLjU3NzQwOCIsIFwKLSAgICAgICAgICAiMC4xMjc0MjEsIDAuMjA0NzcsIDAuMjc3MzY2LCAwLjMyOTA3LCAwLjQxMjU1LCAwLjQ4NTMyOCwgMC41ODg2ODEiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzg2MjEsIDAuMTg1MTg1LCAwLjMzMTkxNiwgMC40NDAyMzMsIDAuNjExMTMyLCAwLjc2MjgxMSwgMC45NzgyNjQiLCBcCi0gICAgICAgICAgIjAuMDM4NTczLCAwLjE4NTE3NiwgMC4zMzMwMzQsIDAuNDM4NzU1LCAwLjYxMDkxNSwgMC43NjI3OCwgMC45NzgyNTUiLCBcCi0gICAgICAgICAgIjAuMDM4NjIyLCAwLjE4NTA0NywgMC4zMzMzODcsIDAuNDM4NzQ0LCAwLjYxMDg0LCAwLjc2MjY0NCwgMC45NzgxODYiLCBcCi0gICAgICAgICAgIjAuMDM4NjMsIDAuMTg1MDg1LCAwLjMzMzUxNCwgMC40Mzg5MDQsIDAuNjEwODE2LCAwLjc2MjcyMiwgMC45NzgyNjMiLCBcCi0gICAgICAgICAgIjAuMDM5NTM5LCAwLjE4NTIxNSwgMC4zMzM1LCAwLjQzODg2MSwgMC42MTA3MTksIDAuNzYyNzM2LCAwLjk3ODI0NyIsIFwKLSAgICAgICAgICAiMC4wNDEyNjcsIDAuMTg1OTA3LCAwLjMzMTk4NiwgMC40Mzg3OTMsIDAuNjExNjAzLCAwLjc2Mjc2NCwgMC45NzgxNDIiLCBcCi0gICAgICAgICAgIjAuMDQyMzk5LCAwLjE4NjUsIDAuMzMzNTg0LCAwLjQzOTA3OCwgMC42MTEwNiwgMC43NjI3MjgsIDAuOTc4MTI5Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQ0OTc0LCAwLjExOTU5NCwgMC4xOTMwMTcsIDAuMjQ1NjExLCAwLjMyOTc3NiwgMC40MDMwNTUsIDAuNTA4NDI1IiwgXAotICAgICAgICAgICIwLjA1NDg4NiwgMC4xMjk1OCwgMC4yMDMwMzUsIDAuMjU1NTc4LCAwLjMzOTkxMywgMC40MTMxNCwgMC41MTgxNTQiLCBcCi0gICAgICAgICAgIjAuMDY3MjExLCAwLjE0MTg5NCwgMC4yMTUzNzQsIDAuMjY4MDgyLCAwLjM1MjM1MSwgMC40MjU5OTMsIDAuNTMwMDUyIiwgXAotICAgICAgICAgICIwLjA3ODI2OCwgMC4xNTMwNDksIDAuMjI2NTgxLCAwLjI3OTAyNSwgMC4zNjM3NjgsIDAuNDM3MDc3LCAwLjU0MTIxMiIsIFwKLSAgICAgICAgICAiMC4wODc3ODMsIDAuMTYyNzI5LCAwLjIzNjE5MywgMC4yODg2MDgsIDAuMzczNDQ2LCAwLjQ0NjU1MywgMC41NTA4NzMiLCBcCi0gICAgICAgICAgIjAuMTAxMjI5LCAwLjE3NjQ1OSwgMC4yNDk5MzMsIDAuMzAyMzkzLCAwLjM4NjkzOSwgMC40NjAzMDMsIDAuNTY1MDE5IiwgXAotICAgICAgICAgICIwLjExMTA3MiwgMC4xODY2MjEsIDAuMjYwMTQsIDAuMzEyNTY2LCAwLjM5NzI2LCAwLjQ3MDQyMywgMC41NzUxNTkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzIzNDgsIDAuMTc3MjA1LCAwLjMyOTE1MywgMC40MzQ1NjQsIDAuNjAyOTcxLCAwLjc1MTk3OCwgMC45NjM4OTYiLCBcCi0gICAgICAgICAgIjAuMDMyMjc2LCAwLjE3NzEwNywgMC4zMjgzNDcsIDAuNDM0NTUsIDAuNjAzNjIsIDAuNzUxODk2LCAwLjk2MzY2NiIsIFwKLSAgICAgICAgICAiMC4wMzI1MDQsIDAuMTc3MDcxLCAwLjMyNjA5MywgMC40MzQzNjcsIDAuNjAzMTU4LCAwLjc1MTI1NSwgMC45NjM2ODkiLCBcCi0gICAgICAgICAgIjAuMDMzMTg1LCAwLjE3NzQzNSwgMC4zMjY5ODUsIDAuNDM0NDU2LCAwLjYwMjMyOCwgMC43NTExMjYsIDAuOTYzNjMiLCBcCi0gICAgICAgICAgIjAuMDM0NDkzLCAwLjE3ODA2MiwgMC4zMjg0NjcsIDAuNDM0Mzk4LCAwLjYwMjQxOCwgMC43NTEwMDcsIDAuOTYzNTYyIiwgXAotICAgICAgICAgICIwLjAzNjM5OSwgMC4xNzg2NzQsIDAuMzI4NTc3LCAwLjQzNDM2LCAwLjYwMzA4NiwgMC43NTA3NTYsIDAuOTYzNzU2IiwgXAotICAgICAgICAgICIwLjAzODA5MiwgMC4xNzk1ODksIDAuMzI4NTc0LCAwLjQzNDQ5NiwgMC42MDE2MDksIDAuNzUwNjU1LCAwLjk2NCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2MDk5NSwgMC4xMzcyLCAwLjIwOTkyOSwgMC4yNjE4MTksIDAuMzQ0OTM3LCAwLjQxNzczMiwgMC41MjExMzYiLCBcCi0gICAgICAgICAgIjAuMDcwMDA0LCAwLjE0NjIwNywgMC4yMTg5NjksIDAuMjcwNTkzLCAwLjM1Mzg3NSwgMC40MjY4MjksIDAuNTMwMjI4IiwgXAotICAgICAgICAgICIwLjA4MTg4MywgMC4xNTgxMDcsIDAuMjMwNzE4LCAwLjI4MjczMSwgMC4zNjU4MiwgMC40Mzg3MTMsIDAuNTQyMDg1IiwgXAotICAgICAgICAgICIwLjA5MzQxNiwgMC4xNjk2NzksIDAuMjQyMzE1LCAwLjI5NDEyNCwgMC4zNzcxOTEsIDAuNDUwMzU1LCAwLjU1MzA4OCIsIFwKLSAgICAgICAgICAiMC4xMDQzOTgsIDAuMTgwODAxLCAwLjI1MzU1MSwgMC4zMDUyNTIsIDAuMzg4NTQxLCAwLjQ2MTMzNiwgMC41NjQ5ODEiLCBcCi0gICAgICAgICAgIjAuMTE5NDA0LCAwLjE5NjQ5NywgMC4yNjkwMywgMC4zMjA4MjUsIDAuNDAzNzE5LCAwLjQ3NywgMC41ODAzNjYiLCBcCi0gICAgICAgICAgIjAuMTMxMDg5LCAwLjIwODU3OSwgMC4yODEyMDcsIDAuMzMzMzMsIDAuNDE1NzQ5LCAwLjQ4ODM0NSwgMC41OTI0NCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzODQ5NCwgMC4xODQ5MDUsIDAuMzMyNDMzLCAwLjQzOTM5OSwgMC42MTA5NTQsIDAuNzYyODI1LCAwLjk3ODA5MiIsIFwKLSAgICAgICAgICAiMC4wMzg4MDEsIDAuMTg0OTI2LCAwLjMzMjM0NSwgMC40MzkyNDgsIDAuNjExMTk3LCAwLjc2MjgwNywgMC45NzgxIiwgXAotICAgICAgICAgICIwLjAzODc1OSwgMC4xODUwMzksIDAuMzMxNTcsIDAuNDM5NTQ0LCAwLjYxMDk2NCwgMC43NjI4MDksIDAuOTc4MTAxIiwgXAotICAgICAgICAgICIwLjAzODc3NywgMC4xODQ5NDIsIDAuMzMxNDksIDAuNDM5Mjg4LCAwLjYxMTAxNCwgMC43NjI2OTksIDAuOTc3MTI3IiwgXAotICAgICAgICAgICIwLjA0MDM0NiwgMC4xODQ5NTgsIDAuMzMyNjIzLCAwLjQzOTM4NiwgMC42MTA5OCwgMC43NjI3NjgsIDAuOTc3OTY4IiwgXAotICAgICAgICAgICIwLjA0MjU2NSwgMC4xODUwNzcsIDAuMzMyOTM4LCAwLjQzOTU5NCwgMC42MTEyODMsIDAuNzYxNTY1LCAwLjk3NzYxMSIsIFwKLSAgICAgICAgICAiMC4wNDQ3MjUsIDAuMTg1MjksIDAuMzMyNzU1LCAwLjQzOTQ3NCwgMC42MTA4MzEsIDAuNzYxMDM1LCAwLjk3NjAwMyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0MzU2NywgMC4xMTgyMiwgMC4xOTE2OTMsIDAuMjQ0MDY0LCAwLjMyODU2LCAwLjQwMTI3MywgMC41MDc0MTIiLCBcCi0gICAgICAgICAgIjAuMDUzNTE0LCAwLjEyODI3NiwgMC4yMDE3MTcsIDAuMjU0MjYsIDAuMzM3OTY3LCAwLjQxMTQ3NywgMC41MTcyNTkiLCBcCi0gICAgICAgICAgIjAuMDY1NTkyLCAwLjE0MDM3NywgMC4yMTM4MzksIDAuMjY2MzgzLCAwLjM1MDM2MiwgMC40MjM3OTUsIDAuNTI4ODQ4IiwgXAotICAgICAgICAgICIwLjA3NjMyMywgMC4xNTEwNiwgMC4yMjQ0OTQsIDAuMjc2ODc3LCAwLjM2MDk5OCwgMC40MzQyMDcsIDAuNTQwMTc3IiwgXAotICAgICAgICAgICIwLjA4NTU0LCAwLjE2MDU3OCwgMC4yMzQwNTIsIDAuMjg2NTc0LCAwLjM3MDI2NSwgMC40NDQ0NSwgMC41NDkwODQiLCBcCi0gICAgICAgICAgIjAuMDk4MTEzLCAwLjE3MzM1MiwgMC4yNDY4MjQsIDAuMjk5MjE4LCAwLjM4MzM4OCwgMC40NTY2NDcsIDAuNTYyNTQ1IiwgXAotICAgICAgICAgICIwLjEwNzcyMywgMC4xODMxNjcsIDAuMjU2NjA1LCAwLjMwOTAyLCAwLjM5MzA4LCAwLjQ2NjgyNSwgMC41NzIwODkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzIzOTEsIDAuMTc4MzY5LCAwLjMyNTM1LCAwLjQzNDQ3MiwgMC42MDQzMzYsIDAuNzUxNjcyLCAwLjk2MzQ2OSIsIFwKLSAgICAgICAgICAiMC4wMzIwNTksIDAuMTc4NCwgMC4zMjc4OSwgMC40MzI1ODgsIDAuNjAzNTU4LCAwLjc1MjA1NSwgMC45NjMyOTkiLCBcCi0gICAgICAgICAgIjAuMDMyNjQzLCAwLjE3ODYzNiwgMC4zMjc4NjIsIDAuNDMyMjgxLCAwLjYwNDM0MiwgMC43NTE4ODEsIDAuOTYzNDYxIiwgXAotICAgICAgICAgICIwLjAzMzU4OSwgMC4xNzgzMjksIDAuMzI2MywgMC40MzQ1OTgsIDAuNjA0NDAzLCAwLjc1MTg4OSwgMC45NjM3MTUiLCBcCi0gICAgICAgICAgIjAuMDM1OTczLCAwLjE3ODU4NSwgMC4zMjgyMTYsIDAuNDMyNzgzLCAwLjYwMzY3NywgMC43NTI3MzYsIDAuOTYzNzYyIiwgXAotICAgICAgICAgICIwLjAzNzkyLCAwLjE3OTg0OSwgMC4zMjkwMDgsIDAuNDM0NzA3LCAwLjYwNDQzMSwgMC43NTIwODcsIDAuOTYzNTc1IiwgXAotICAgICAgICAgICIwLjAzOTEwMywgMC4xODA1ODcsIDAuMzI4OTYsIDAuNDM0NzksIDAuNjA0NDQ4LCAwLjc1MDAzNCwgMC45NjQxNDkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNTcxMywgMC4wMDU4NjEsIDAuMDA1ODgyLCAwLjAwNTg4OCwgMC4wMDU4OTQsIDAuMDA1ODk3LCAwLjAwNTg5OSIsIFwKLSAgICAgICAgICAiMC4wMDU2NzMsIDAuMDA1ODI1LCAwLjAwNTg0NywgMC4wMDU4NTQsIDAuMDA1ODYsIDAuMDA1ODYzLCAwLjAwNTg2NiIsIFwKLSAgICAgICAgICAiMC4wMDU2NSwgMC4wMDU4MDgsIDAuMDA1ODMyLCAwLjAwNTgzOSwgMC4wMDU4NDUsIDAuMDA1ODQ5LCAwLjAwNTg1NCIsIFwKLSAgICAgICAgICAiMC4wMDU2NCwgMC4wMDU4MDEsIDAuMDA1ODI1LCAwLjAwNTgzNywgMC4wMDU4NDIsIDAuMDA1ODQ2LCAwLjAwNTg0OSIsIFwKLSAgICAgICAgICAiMC4wMDU2MzgsIDAuMDA1Nzk5LCAwLjAwNTgyOSwgMC4wMDU4MzcsIDAuMDA1ODQ0LCAwLjAwNTg0OCwgMC4wMDU4NTIiLCBcCi0gICAgICAgICAgIjAuMDA1NjQ3LCAwLjAwNTgwOCwgMC4wMDU4MzgsIDAuMDA1ODQ5LCAwLjAwNTg1NSwgMC4wMDU4NiwgMC4wMDU4NjciLCBcCi0gICAgICAgICAgIjAuMDA1NjY0LCAwLjAwNTgxNywgMC4wMDU4NDcsIDAuMDA1ODU5LCAwLjAwNTg2NiwgMC4wMDU4NzEsIDAuMDA1ODc3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDY1NjMsIDAuMDA2NzA0LCAwLjAwNjcyMywgMC4wMDY3MjgsIDAuMDA2NzMzLCAwLjAwNjczNSwgMC4wMDY3MzgiLCBcCi0gICAgICAgICAgIjAuMDA2NTI0LCAwLjAwNjY3NSwgMC4wMDY2OTYsIDAuMDA2NzAyLCAwLjAwNjcwOSwgMC4wMDY3MTEsIDAuMDA2NzE0IiwgXAotICAgICAgICAgICIwLjAwNjQ5NywgMC4wMDY2NiwgMC4wMDY2ODYsIDAuMDA2NjkzLCAwLjAwNjcwMSwgMC4wMDY3MDQsIDAuMDA2NzA4IiwgXAotICAgICAgICAgICIwLjAwNjQ4OSwgMC4wMDY2NTQsIDAuMDA2Njg0LCAwLjAwNjY5MywgMC4wMDY3MDEsIDAuMDA2NzA1LCAwLjAwNjcwOSIsIFwKLSAgICAgICAgICAiMC4wMDY0OTIsIDAuMDA2NjU1LCAwLjAwNjY4NywgMC4wMDY2OTgsIDAuMDA2NzA2LCAwLjAwNjcxMSwgMC4wMDY3MTYiLCBcCi0gICAgICAgICAgIjAuMDA2NDk1LCAwLjAwNjY2LCAwLjAwNjY5NCwgMC4wMDY3MDgsIDAuMDA2NzE3LCAwLjAwNjcyMSwgMC4wMDY3MyIsIFwKLSAgICAgICAgICAiMC4wMDY1MTUsIDAuMDA2NjcxLCAwLjAwNjcwNSwgMC4wMDY3MTksIDAuMDA2NzMsIDAuMDA2NzM2LCAwLjAwNjc0MiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1MjI1LCAwLjAwNTM5OSwgMC4wMDU0MjgsIDAuMDA1NDM4LCAwLjAwNTQ0NywgMC4wMDU0NTEsIDAuMDA1NDU1IiwgXAotICAgICAgICAgICIwLjAwNTE5MywgMC4wMDUzNjksIDAuMDA1NCwgMC4wMDU0MDksIDAuMDA1NDE5LCAwLjAwNTQyMywgMC4wMDU0MjciLCBcCi0gICAgICAgICAgIjAuMDA1MTgyLCAwLjAwNTM1OCwgMC4wMDUzOSwgMC4wMDU0MDEsIDAuMDA1NDExLCAwLjAwNTQxNiwgMC4wMDU0MiIsIFwKLSAgICAgICAgICAiMC4wMDUxODIsIDAuMDA1MzU5LCAwLjAwNTM5NCwgMC4wMDU0MDYsIDAuMDA1NDE2LCAwLjAwNTQyMiwgMC4wMDU0MjciLCBcCi0gICAgICAgICAgIjAuMDA1MTg4LCAwLjAwNTM2MSwgMC4wMDUzOTcsIDAuMDA1NDEsIDAuMDA1NDE5LCAwLjAwNTQyNiwgMC4wMDU0MyIsIFwKLSAgICAgICAgICAiMC4wMDUyMTQsIDAuMDA1Mzc4LCAwLjAwNTQxMiwgMC4wMDU0MjksIDAuMDA1NDQxLCAwLjAwNTQ0NywgMC4wMDU0NTMiLCBcCi0gICAgICAgICAgIjAuMDA1MjQyLCAwLjAwNTM5OCwgMC4wMDU0MzcsIDAuMDA1NDUxLCAwLjAwNTQ1NywgMC4wMDU0NzEsIDAuMDA1NDY5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDY0ODksIDAuMDA2NjY4LCAwLjAwNjY5NywgMC4wMDY3MDYsIDAuMDA2NzE0LCAwLjAwNjcyMSwgMC4wMDY3MjMiLCBcCi0gICAgICAgICAgIjAuMDA2NDc3LCAwLjAwNjY2NiwgMC4wMDY2OTksIDAuMDA2NzEsIDAuMDA2NzE4LCAwLjAwNjcyMywgMC4wMDY3MjkiLCBcCi0gICAgICAgICAgIjAuMDA2NTAyLCAwLjAwNjY5MiwgMC4wMDY3MzEsIDAuMDA2NzQxLCAwLjAwNjc1MywgMC4wMDY3NiwgMC4wMDY3NjUiLCBcCi0gICAgICAgICAgIjAuMDA2NTI3LCAwLjAwNjcxNCwgMC4wMDY3NTgsIDAuMDA2NzcxLCAwLjAwNjc4NCwgMC4wMDY3OTEsIDAuMDA2Nzk4IiwgXAotICAgICAgICAgICIwLjAwNjUzNCwgMC4wMDY3MjQsIDAuMDA2NzY5LCAwLjAwNjc4NCwgMC4wMDY4LCAwLjAwNjgwNywgMC4wMDY4MTQiLCBcCi0gICAgICAgICAgIjAuMDA2NjEzLCAwLjAwNjc3NCwgMC4wMDY4MTYsIDAuMDA2ODMzLCAwLjAwNjg2MSwgMC4wMDY4NTcsIDAuMDA2ODc3IiwgXAotICAgICAgICAgICIwLjAwNjY0NywgMC4wMDY4MSwgMC4wMDY4NjQsIDAuMDA2ODgsIDAuMDA2ODk2LCAwLjAwNjkwNiwgMC4wMDY5MTQiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFMpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC45NjIzNTI7Ci0gICAgZnVuY3Rpb24gOiAiKEFeQikiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk2MjE2LCAwLjE3NzUyNiwgMC4yNDk5MTcsIDAuMzAxMzE1LCAwLjM4MzU0NSwgMC40NTU0OTEsIDAuNTU4MzY4IiwgXAotICAgICAgICAgICIwLjEwNjM2OCwgMC4xODc2OTksIDAuMjYwMDczLCAwLjMxMTUyMSwgMC4zOTM3ODEsIDAuNDY1NjY0LCAwLjU2ODYwNSIsIFwKLSAgICAgICAgICAiMC4xMTkyODUsIDAuMjAwNTQxLCAwLjI3MjkyOSwgMC4zMjQzMzEsIDAuNDA2NTY1LCAwLjQ3ODU2MiwgMC41ODEyODMiLCBcCi0gICAgICAgICAgIjAuMTMyMDg5LCAwLjIxMzM0OCwgMC4yODU3MzcsIDAuMzM3MTQyLCAwLjQxOTM3NywgMC40OTEzMjYsIDAuNTk0MTYyIiwgXAotICAgICAgICAgICIwLjE0NDg1NCwgMC4yMjYxMjgsIDAuMjk4NTI1LCAwLjM0OTk3NCwgMC40MzIxODEsIDAuNTA0MTIzLCAwLjYwNzA3OCIsIFwKLSAgICAgICAgICAiMC4xNjQyODEsIDAuMjQ1NjI0LCAwLjMxODAzMiwgMC4zNjk0MzksIDAuNDUxNjgsIDAuNTIzNjM2LCAwLjYyNjQ2NyIsIFwKLSAgICAgICAgICAiMC4xODAyMTYsIDAuMjYxODE3LCAwLjMzNDIwNywgMC4zODU2MzksIDAuNDY3ODg4LCAwLjUzOTgyMiwgMC42NDI3NDkiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDU5ODIsIDAuMTg3MzYyLCAwLjMzMjg4NywgMC40Mzc3ODMsIDAuNjA3NDU0LCAwLjc1NTQ3NiwgMC45Njc1MDkiLCBcCi0gICAgICAgICAgIjAuMDQ2MDA1LCAwLjE4NzI2OCwgMC4zMzI1NjgsIDAuNDM4MTgxLCAwLjYwNzc4MywgMC43NTYxODEsIDAuOTY3MzAxIiwgXAotICAgICAgICAgICIwLjA0NjA3MSwgMC4xODczODEsIDAuMzMyNjMzLCAwLjQzNzc4NSwgMC42MDc0NTYsIDAuNzU2NTE5LCAwLjk2OTM0NyIsIFwKLSAgICAgICAgICAiMC4wNDU5ODUsIDAuMTg3MzYzLCAwLjMzMjg4NSwgMC40Mzc3ODMsIDAuNjA3NDQ1LCAwLjc1NTQ2MiwgMC45Njc0MDYiLCBcCi0gICAgICAgICAgIjAuMDQ2MDA0LCAwLjE4NzM4NywgMC4zMzI1NzUsIDAuNDM4MTYzLCAwLjYwNzQ2NywgMC43NTUzODQsIDAuOTY3Mjg1IiwgXAotICAgICAgICAgICIwLjA0NjU3NCwgMC4xODc1MzMsIDAuMzMyNjc0LCAwLjQzNzgwMSwgMC42MDc0NzUsIDAuNzU2Mjk0LCAwLjk2Nzk5MiIsIFwKLSAgICAgICAgICAiMC4wNDc2ODEsIDAuMTg3ODcxLCAwLjMzMzA4NCwgMC40MzgxNDcsIDAuNjA3NDgxLCAwLjc1NjEzNSwgMC45Njc0MDUiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDAxNDMsIDAuMTg0MTc2LCAwLjI1ODMyNywgMC4zMTA4ODUsIDAuMzk0ODg3LCAwLjQ2ODM4OCwgMC41NzM0NzgiLCBcCi0gICAgICAgICAgIjAuMTA5NzU1LCAwLjE5Mzc4NCwgMC4yNjc5MzUsIDAuMzIwNDk1LCAwLjQwNDQ5NiwgMC40NzgwMDUsIDAuNTgyOTQ1IiwgXAotICAgICAgICAgICIwLjEyMjIwNSwgMC4yMDYyNzYsIDAuMjgwNDMsIDAuMzMyOTk5LCAwLjQxNzAwMywgMC40OTA0OTYsIDAuNTk1NTU3IiwgXAotICAgICAgICAgICIwLjEzNDI3MSwgMC4yMTgyODUsIDAuMjkyNDU0LCAwLjM0NTAyOCwgMC40MjkwMzQsIDAuNTAyNTI2LCAwLjYwNzU5NSIsIFwKLSAgICAgICAgICAiMC4xNDYxMDcsIDAuMjMwMTgsIDAuMzA0MzUxLCAwLjM1NjkxMSwgMC40NDA5MzYsIDAuNTE0NDMsIDAuNjE5NTAyIiwgXAotICAgICAgICAgICIwLjE2NDI3OCwgMC4yNDgzODEsIDAuMzIyNTY5LCAwLjM3NTEzMiwgMC40NTkxNjYsIDAuNTMyNjU0LCAwLjYzNzc1OCIsIFwKLSAgICAgICAgICAiMC4xNzkxNTMsIDAuMjYzNDU3LCAwLjMzNzYxLCAwLjM5MDE5MywgMC40NzQyMDQsIDAuNTQ3NzAyLCAwLjY1Mjc4OCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0NzIyMiwgMC4xODg3MTEsIDAuMzMzNjY0LCAwLjQzODA5MywgMC42MDY5ODgsIDAuNzU2NTA1LCAwLjk2NjI4IiwgXAotICAgICAgICAgICIwLjA0NzI0NSwgMC4xODg3MTYsIDAuMzMzNjYsIDAuNDM4MTI0LCAwLjYwNjk4NCwgMC43NTU1ODcsIDAuOTY4OTgxIiwgXAotICAgICAgICAgICIwLjA0NzE5OCwgMC4xODg3MDcsIDAuMzMzNDIzLCAwLjQzODI5NywgMC42MDY5MDEsIDAuNzU1MjU3LCAwLjk2NjQ3MyIsIFwKLSAgICAgICAgICAiMC4wNDcyMjksIDAuMTg4NjgsIDAuMzMzNDE2LCAwLjQzODQyNywgMC42MDY4NzcsIDAuNzU1MjI5LCAwLjk2NjQ4OCIsIFwKLSAgICAgICAgICAiMC4wNDcxNzcsIDAuMTg4NTY5LCAwLjMzMzQyNiwgMC40Mzg0OTQsIDAuNjA2ODY1LCAwLjc1NTIxNywgMC45NjY0NzgiLCBcCi0gICAgICAgICAgIjAuMDQ3Nzc4LCAwLjE4ODkyMywgMC4zMzM3MiwgMC40Mzg2OCwgMC42MDgwNDcsIDAuNzU1MDM0LCAwLjk2NjI4NyIsIFwKLSAgICAgICAgICAiMC4wNDg5NzYsIDAuMTg5MzQ2LCAwLjMzMzkyOSwgMC40Mzg3OTMsIDAuNjA4MDQ0LCAwLjc1NTE0NCwgMC45NjY0NzYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTU5NzIsIDAuMTcyNTUyLCAwLjI0NDY4OSwgMC4yOTYxNDgsIDAuMzc4NDU0LCAwLjQ1MDQ0LCAwLjU1MzI5MSIsIFwKLSAgICAgICAgICAiMC4xMDU2OCwgMC4xODIyNzksIDAuMjU0NDE4LCAwLjMwNTg3MiwgMC4zODgxODksIDAuNDYwMTcxLCAwLjU2Mjk2OCIsIFwKLSAgICAgICAgICAiMC4xMTc1NSwgMC4xOTQxODIsIDAuMjY2MzIzLCAwLjMxNzgyNiwgMC40MDAxMDMsIDAuNDcyMTI4LCAwLjU3NDg4IiwgXAotICAgICAgICAgICIwLjEyNzc4NCwgMC4yMDQ0MzUsIDAuMjc2NTg2LCAwLjMyODA0MiwgMC40MTA0MTMsIDAuNDgyMzc2LCAwLjU4NTEzNSIsIFwKLSAgICAgICAgICAiMC4xMzY0NjcsIDAuMjEzMSwgMC4yODUyNCwgMC4zMzY3MTMsIDAuNDE5MDgzLCAwLjQ5MTAxLCAwLjU5MzgiLCBcCi0gICAgICAgICAgIjAuMTQ4NzM3LCAwLjIyNTM2MSwgMC4yOTc0OTksIDAuMzQ4OTUyLCAwLjQzMTI5NiwgMC41MDMyNzgsIDAuNjA2MDU0IiwgXAotICAgICAgICAgICIwLjE1NzY3MywgMC4yMzQyOTYsIDAuMzA2NDIzLCAwLjM1NzkwMywgMC40NDAyNjQsIDAuNTEyMjAzLCAwLjYxNDk4NyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzOTYxNCwgMC4xODIxNTYsIDAuMzI5Mjg3LCAwLjQzNTcxOSwgMC42MDU0MTQsIDAuNzU0NTA5LCAwLjk2ODU2MSIsIFwKLSAgICAgICAgICAiMC4wMzk2MjIsIDAuMTgyMTY0LCAwLjMyOTUyNywgMC40MzU3MDcsIDAuNjA1NDgsIDAuNzU0NTMsIDAuOTY4NTE3IiwgXAotICAgICAgICAgICIwLjAzOTYyNCwgMC4xODIxNTUsIDAuMzI5MzkzLCAwLjQzNTkxOSwgMC42MDUzNzIsIDAuNzU1NDIxLCAwLjk2NzM2NiIsIFwKLSAgICAgICAgICAiMC4wMzk2MjksIDAuMTgyMTU0LCAwLjMyOTI4NCwgMC40MzU4MjksIDAuNjA1MDgxLCAwLjc1NTQwNSwgMC45NjczNTIiLCBcCi0gICAgICAgICAgIjAuMDM5NiwgMC4xODIxMjksIDAuMzI5NTE4LCAwLjQzNTkwNiwgMC42MDUxMjgsIDAuNzU1MzYyLCAwLjk2NzM0NiIsIFwKLSAgICAgICAgICAiMC4wMzk1OTEsIDAuMTgyMTY0LCAwLjMyOTUyOSwgMC40MzU2OTksIDAuNjA1MjU2LCAwLjc1NTM2NCwgMC45NjgzODkiLCBcCi0gICAgICAgICAgIjAuMDM5OTI0LCAwLjE4MjE0OSwgMC4zMjk2MTgsIDAuNDM1OTYsIDAuNjA0OTU1LCAwLjc1NTM3MSwgMC45Njg0ODkiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTg4ODUsIDAuMTc3OTExLCAwLjI1MTY1NCwgMC4zMDQyNDQsIDAuMzg4MzE2LCAwLjQ2MTg2NiwgMC41NjY4NTYiLCBcCi0gICAgICAgICAgIjAuMTA5MTM0LCAwLjE4ODE2OCwgMC4yNjE5MDMsIDAuMzE0NDcsIDAuMzk4NTYyLCAwLjQ3MjEyNCwgMC41NzcxMTIiLCBcCi0gICAgICAgICAgIjAuMTIxNzgsIDAuMjAwNzMxLCAwLjI3NDQ3NSwgMC4zMjcwNDgsIDAuNDExMTQ3LCAwLjQ4NDcxLCAwLjU4OTciLCBcCi0gICAgICAgICAgIjAuMTMyNzIzLCAwLjIxMTc0NSwgMC4yODU0OTYsIDAuMzM4MDYzLCAwLjQyMjE1MiwgMC40OTU3MTksIDAuNjAwNzA3IiwgXAotICAgICAgICAgICIwLjE0MjI1NywgMC4yMjEyNDIsIDAuMjk0OTgxLCAwLjM0NzU0NywgMC40MzE2MzQsIDAuNTA1MjA2LCAwLjYxMDE5MyIsIFwKLSAgICAgICAgICAiMC4xNTUzLCAwLjIzNDMwMSwgMC4zMDgwNTUsIDAuMzYwNjE5LCAwLjQ0NDc0MywgMC41MTgyNjQsIDAuNjIzMjU0IiwgXAotICAgICAgICAgICIwLjE2NTM2NiwgMC4yNDQ0MDIsIDAuMzE4MTU3LCAwLjM3MDcxOSwgMC40NTQ4MTQsIDAuNTI4MzcxLCAwLjYzMzM1NyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0MDMwMywgMC4xODI4MTksIDAuMzI5NTQ0LCAwLjQzNTQ0NywgMC42MDQ1NTksIDAuNzU0MTE0LCAwLjk2Njc2NSIsIFwKLSAgICAgICAgICAiMC4wNDAzMzksIDAuMTgyODA5LCAwLjMyOTQzNSwgMC40MzUwMjIsIDAuNjA0MzA3LCAwLjc1NDA5OCwgMC45NjY3MzYiLCBcCi0gICAgICAgICAgIjAuMDQwMzkxLCAwLjE4MjgxNSwgMC4zMjkzODMsIDAuNDM0OTY1LCAwLjYwNDIzMSwgMC43NTM5NjksIDAuOTY2NTkzIiwgXAotICAgICAgICAgICIwLjA0MDMwNywgMC4xODI3OTcsIDAuMzI5MzgyLCAwLjQzNDk2NCwgMC42MDQyNTcsIDAuNzU0MDUyLCAwLjk2NjY3MSIsIFwKLSAgICAgICAgICAiMC4wNDAyNzksIDAuMTgyODA4LCAwLjMyOTQyLCAwLjQzNDk2NywgMC42MDQ1OTUsIDAuNzU0MDU4LCAwLjk2NjY3NSIsIFwKLSAgICAgICAgICAiMC4wNDAyOTEsIDAuMTgyOTI3LCAwLjMyOTUxOSwgMC40MzUwMjYsIDAuNjA0NjAyLCAwLjc1NDA2NCwgMC45NjY1OTYiLCBcCi0gICAgICAgICAgIjAuMDQwMzg0LCAwLjE4Mjg0NCwgMC4zMjkzODgsIDAuNDM0OTc5LCAwLjYwNDMyOSwgMC43NTM5NjMsIDAuOTY2NTY5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY0OTE3LCAwLjE0MTQzMSwgMC4yMTM1MzIsIDAuMjY0OTU3LCAwLjM0NzI3OCwgMC40MTkyMTIsIDAuNTIxOTQzIiwgXAotICAgICAgICAgICIwLjA3NDM4LCAwLjE1MDkwMSwgMC4yMjMwMDUsIDAuMjc0NDMyLCAwLjM1NjcxOSwgMC40Mjg2NjQsIDAuNTMxNDQyIiwgXAotICAgICAgICAgICIwLjA4NjAwOCwgMC4xNjI1NjksIDAuMjM0NjgxLCAwLjI4NjExLCAwLjM2ODQwOCwgMC40NDAzNTksIDAuNTQzMDg3IiwgXAotICAgICAgICAgICIwLjA5Nzc2MiwgMC4xNzQzMTgsIDAuMjQ2NDM2LCAwLjI5Nzg2NiwgMC4zODAxNjIsIDAuNDUyMTE5LCAwLjU1NDg0OSIsIFwKLSAgICAgICAgICAiMC4xMDg3ODEsIDAuMTg1NDYsIDAuMjU3NTc1LCAwLjMwOTAwNiwgMC4zOTEyODQsIDAuNDYzMjYzLCAwLjU2NTk4OCIsIFwKLSAgICAgICAgICAiMC4xMjQ2NzUsIDAuMjAxODQ3LCAwLjI3Mzk0NiwgMC4zMjUzNTYsIDAuNDA3NjA0LCAwLjQ3OTUzNSwgMC41ODIzMDciLCBcCi0gICAgICAgICAgIjAuMTM2NzU4LCAwLjIxNDQ2MywgMC4yODY0OTcsIDAuMzM3ODk5LCAwLjQyMDE1LCAwLjQ5MjA5NSwgMC41OTQ4MyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzOTcwOCwgMC4xODIxMTgsIDAuMzI5NTQ4LCAwLjQzNTYzLCAwLjYwNDg4LCAwLjc1NTE0MSwgMC45NjcxODUiLCBcCi0gICAgICAgICAgIjAuMDM5NjQyLCAwLjE4MjEyNCwgMC4zMjk1NDIsIDAuNDM1NjI2LCAwLjYwNTk4OSwgMC43NTUwNzcsIDAuOTY2NjQiLCBcCi0gICAgICAgICAgIjAuMDM5NjY2LCAwLjE4MjEzMSwgMC4zMjk1NTIsIDAuNDM1NjMyLCAwLjYwNTAxNywgMC43NTUwOTYsIDAuOTY4MTU2IiwgXAotICAgICAgICAgICIwLjAzOTk3MywgMC4xODIxNzQsIDAuMzI5NTM4LCAwLjQzNTYzOCwgMC42MDQ5MTcsIDAuNzU1MDAxLCAwLjk2ODE0MyIsIFwKLSAgICAgICAgICAiMC4wNDEwNDksIDAuMTgyMzQzLCAwLjMyOTYwNiwgMC40MzU2ODgsIDAuNjA1MTYzLCAwLjc1NDk3OCwgMC45NjgwMDciLCBcCi0gICAgICAgICAgIjAuMDQzNDgyLCAwLjE4Mjg0NywgMC4zMjk4OTMsIDAuNDM1NzQ2LCAwLjYwNTc5NSwgMC43NTQ4MiwgMC45NjYzMjYiLCBcCi0gICAgICAgICAgIjAuMDQ1NjE0LCAwLjE4MzcxOSwgMC4zMjk4MjksIDAuNDM1ODUzLCAwLjYwNTgwNiwgMC43NTQ4MjYsIDAuOTY3MTgiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzkwMzUsIDAuMTYyOTkzLCAwLjIzNzExOSwgMC4yODk2NjEsIDAuMzczNjUzLCAwLjQ0NzEzNSwgMC41NTIxMDUiLCBcCi0gICAgICAgICAgIjAuMDg3NDc4LCAwLjE3MTQ3MiwgMC4yNDU2MDksIDAuMjk4MTQ3LCAwLjM4MjE0LCAwLjQ1NTYyNSwgMC41NjA3MDciLCBcCi0gICAgICAgICAgIjAuMDk4MjY1LCAwLjE4MjIwNSwgMC4yNTYzMzUsIDAuMzA4ODgxLCAwLjM5Mjg3NywgMC40NjY0MjcsIDAuNTcxNDEzIiwgXAotICAgICAgICAgICIwLjEwOTIsIDAuMTkzMTAxLCAwLjI2NzIzOSwgMC4zMTk3ODcsIDAuNDAzODExLCAwLjQ3NzI3OCwgMC41ODIzMjEiLCBcCi0gICAgICAgICAgIjAuMTIwMDYsIDAuMjA0MDAzLCAwLjI3ODE1OCwgMC4zMzA3MDEsIDAuNDE0NjkxLCAwLjQ4ODE5MiwgMC41OTMyODIiLCBcCi0gICAgICAgICAgIjAuMTM1NTk2LCAwLjIxOTY1OSwgMC4yOTM3NTYsIDAuMzQ2MzQ2LCAwLjQzMDM0NCwgMC41MDM3OTYsIDAuNjA4ODQyIiwgXAotICAgICAgICAgICIwLjE0NzQ4MSwgMC4yMzE4OTEsIDAuMzA2MDI0LCAwLjM1ODY1NSwgMC40NDI1ODIsIDAuNTE2MTI0LCAwLjYyMTE1NCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0NjgxNSwgMC4xODg2MjQsIDAuMzMzMzcxLCAwLjQzODQ4NiwgMC42MDc4MjMsIDAuNzU2MjQ3LCAwLjk2ODgzIiwgXAotICAgICAgICAgICIwLjA0NjcyNCwgMC4xODg2MjEsIDAuMzMzMzYyLCAwLjQzODQyNiwgMC42MDc4MiwgMC43NTUwMzgsIDAuOTY2Mzk0IiwgXAotICAgICAgICAgICIwLjA0NjczNywgMC4xODg2MDIsIDAuMzMzMzU3LCAwLjQzODQ2OSwgMC42MDc4MTIsIDAuNzU2NTcxLCAwLjk2OTIwNiIsIFwKLSAgICAgICAgICAiMC4wNDY1ODcsIDAuMTg4NjEzLCAwLjMzMzM2MywgMC40Mzg0NDEsIDAuNjA3OTE0LCAwLjc1NjI0OCwgMC45NjY4NzYiLCBcCi0gICAgICAgICAgIjAuMDQ2NzQyLCAwLjE4ODY0MSwgMC4zMzMzNjcsIDAuNDM4NDI5LCAwLjYwNzg3OCwgMC43NTUwMjUsIDAuOTY2Mzc4IiwgXAotICAgICAgICAgICIwLjA0ODEyMiwgMC4xODg5MjUsIDAuMzMzNzExLCAwLjQzODUxNywgMC42MDc4OTQsIDAuNzU2Mjk2LCAwLjk2NzA4NSIsIFwKLSAgICAgICAgICAiMC4wNDk2NDYsIDAuMTg5NTQ0LCAwLjMzNDEyMSwgMC40Mzg1OTMsIDAuNjA4MDU4LCAwLjc1NjQzNywgMC45NjkyMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODE1ODYsIDAuMTY0NTYxLCAwLjIzODM5NiwgMC4yOTA4NzEsIDAuMzc0Nzc1LCAwLjQ0ODEwMSwgMC41NTMwNTYiLCBcCi0gICAgICAgICAgIjAuMDkxNzksIDAuMTc0NzkyLCAwLjI0ODYyNSwgMC4zMDEwNTIsIDAuMzg0OTI1LCAwLjQ1ODMxMSwgMC41NjMyMjQiLCBcCi0gICAgICAgICAgIjAuMTA0MzM0LCAwLjE4NzMxOCwgMC4yNjExNTYsIDAuMzEzNTg1LCAwLjM5NzQ4OSwgMC40NzA4NDcsIDAuNTc1NjYiLCBcCi0gICAgICAgICAgIjAuMTE1NzQ4LCAwLjE5ODgxMywgMC4yNzI2MiwgMC4zMjUwODksIDAuNDA4OTc1LCAwLjQ4MjM0MSwgMC41ODcyOCIsIFwKLSAgICAgICAgICAiMC4xMjUzNDMsIDAuMjA4Mjc4LCAwLjI4MjEyMSwgMC4zMzQ1NTksIDAuNDE4NDM1LCAwLjQ5MTg4MiwgMC41OTY2NDUiLCBcCi0gICAgICAgICAgIjAuMTM3OTczLCAwLjIyMDY2LCAwLjI5NDQ3OCwgMC4zNDY5NDksIDAuNDMxMDg4LCAwLjUwNDIwOCwgMC42MDk0MDQiLCBcCi0gICAgICAgICAgIjAuMTQ3MDAyLCAwLjIyOTczOCwgMC4zMDM2NjcsIDAuMzU2MTQyLCAwLjQzOTkxOCwgMC41MTM0MzQsIDAuNjE4MiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0NTc4OSwgMC4xODk1NDksIDAuMzM2ODcxLCAwLjQ0Mzk3NCwgMC42MTYwNTIsIDAuNzY1NzA0LCAwLjk4MDc0MyIsIFwKLSAgICAgICAgICAiMC4wNDU3NzEsIDAuMTg5NjEsIDAuMzM2OTU4LCAwLjQ0MzYxNywgMC42MTU2OTYsIDAuNzY1ODMsIDAuOTgwNzQzIiwgXAotICAgICAgICAgICIwLjA0NTc1OSwgMC4xODk1MjgsIDAuMzM2OTY5LCAwLjQ0MzYsIDAuNjE1OTYyLCAwLjc2NjYxMywgMC45ODI2MDIiLCBcCi0gICAgICAgICAgIjAuMDQ1Njg2LCAwLjE4OTU3NCwgMC4zMzY4OTMsIDAuNDQzOTA0LCAwLjYxNTkzNCwgMC43NjU3MzcsIDAuOTgwNzUyIiwgXAotICAgICAgICAgICIwLjA0NTYyNCwgMC4xODk1ODIsIDAuMzM2OTQ1LCAwLjQ0MzYyMSwgMC42MTU2NjcsIDAuNzY2ODg4LCAwLjk4MjY0NyIsIFwKLSAgICAgICAgICAiMC4wNDUzODIsIDAuMTg5MzM1LCAwLjMzNjY4OSwgMC40NDM5MDQsIDAuNjE1OTUxLCAwLjc2NTgwNywgMC45ODA3NTYiLCBcCi0gICAgICAgICAgIjAuMDQ1NDc1LCAwLjE4OTM0MSwgMC4zMzY3NCwgMC40NDM4NzMsIDAuNjE1OTQzLCAwLjc2NTE4MSwgMC45ODI4ODQiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODk5NzMsIDAuMTY4OTgzLCAwLjI0MjczNSwgMC4yOTUzMjEsIDAuMzc5NDA0LCAwLjQ1Mjk1OCwgMC41NTc5NTEiLCBcCi0gICAgICAgICAgIjAuMTAwMzc1LCAwLjE3OTM5MSwgMC4yNTMxNTgsIDAuMzA1NzI1LCAwLjM4OTgxOCwgMC40NjMzODYsIDAuNTY4MzgiLCBcCi0gICAgICAgICAgIjAuMTEyNTYyLCAwLjE5MTU0OCwgMC4yNjUyOTYsIDAuMzE3ODg4LCAwLjQwMTk2NSwgMC40NzU1MywgMC41ODA1MiIsIFwKLSAgICAgICAgICAiMC4xMjI4NjksIDAuMjAxOTA2LCAwLjI3NTY2NiwgMC4zMjgyMzMsIDAuNDEyMzE5LCAwLjQ4NTkwMiwgMC41OTA4NzgiLCBcCi0gICAgICAgICAgIjAuMTMyMDUzLCAwLjIxMTA2NSwgMC4yODQ4MTEsIDAuMzM3MzgsIDAuNDIxNDU0LCAwLjQ5NTAzNCwgMC42MDAwNDYiLCBcCi0gICAgICAgICAgIjAuMTQzNzU4LCAwLjIyMzI3NCwgMC4yOTY1OTEsIDAuMzQ5NTk3LCAwLjQzMzY3MiwgMC41MDcyNjMsIDAuNjEyMjUyIiwgXAotICAgICAgICAgICIwLjE1MzQ3NiwgMC4yMzI1NjUsIDAuMzA2MzU4LCAwLjM1ODk1MiwgMC40NDI4NjIsIDAuNTE2NTMyLCAwLjYyMTQ3NiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0MDMzNiwgMC4xODI4MTQsIDAuMzI5NTI2LCAwLjQzNTQ0OSwgMC42MDQ1MTUsIDAuNzU0MTU5LCAwLjk2NjgwNiIsIFwKLSAgICAgICAgICAiMC4wNDAzMjUsIDAuMTgyODIyLCAwLjMyOTUxMSwgMC40MzUwMiwgMC42MDQ2MDgsIDAuNzU0MTM0LCAwLjk2Njc4NCIsIFwKLSAgICAgICAgICAiMC4wNDAzNCwgMC4xODI4MTMsIDAuMzI5NDM3LCAwLjQzNTQzOSwgMC42MDQzNTMsIDAuNzU0MTI2LCAwLjk2NjcyOSIsIFwKLSAgICAgICAgICAiMC4wNDAyOTcsIDAuMTgyODExLCAwLjMyOTM2OSwgMC40MzQ5NTcsIDAuNjA0NzA0LCAwLjc1NDA0MSwgMC45NjU5NzciLCBcCi0gICAgICAgICAgIjAuMDQwMzEzLCAwLjE4MjgwMSwgMC4zMjk0ODMsIDAuNDM0OTY4LCAwLjYwNDU2NiwgMC43NTQwOTYsIDAuOTY2ODg4IiwgXAotICAgICAgICAgICIwLjA0MDMzLCAwLjE4Mjk3OCwgMC4zMjk1OTQsIDAuNDM1MTQ5LCAwLjYwNDc1NiwgMC43NTMwMjcsIDAuOTY2NjkyIiwgXAotICAgICAgICAgICIwLjA0MDQzMSwgMC4xODI5ODMsIDAuMzI5NTQxLCAwLjQzNTA0MywgMC42MDQzMjksIDAuNzUzMDUxLCAwLjk2NTIxMyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1MzYyLCAwLjAwNTU0MywgMC4wMDU1ODYsIDAuMDA1NiwgMC4wMDU2MTQsIDAuMDA1NjIxLCAwLjAwNTYyNyIsIFwKLSAgICAgICAgICAiMC4wMDUzNDQsIDAuMDA1NTIxLCAwLjAwNTU2NywgMC4wMDU1ODcsIDAuMDA1NTk3LCAwLjAwNTYwMiwgMC4wMDU2MSIsIFwKLSAgICAgICAgICAiMC4wMDUzMzUsIDAuMDA1NTA3LCAwLjAwNTU1MywgMC4wMDU1NzIsIDAuMDA1NTg4LCAwLjAwNTU5MSwgMC4wMDU2MDEiLCBcCi0gICAgICAgICAgIjAuMDA1MzMsIDAuMDA1NDk0LCAwLjAwNTU0NCwgMC4wMDU1NjIsIDAuMDA1NTgsIDAuMDA1NTg4LCAwLjAwNTU5NiIsIFwKLSAgICAgICAgICAiMC4wMDUzMzcsIDAuMDA1NDg1LCAwLjAwNTUzOCwgMC4wMDU1NTgsIDAuMDA1NTc1LCAwLjAwNTU4NSwgMC4wMDU1OTQiLCBcCi0gICAgICAgICAgIjAuMDA1MzQ1LCAwLjAwNTQ3NywgMC4wMDU1MzMsIDAuMDA1NTU0LCAwLjAwNTU3NSwgMC4wMDU1ODYsIDAuMDA1NTk3IiwgXAotICAgICAgICAgICIwLjAwNTM2OSwgMC4wMDU0OCwgMC4wMDU1MzcsIDAuMDA1NTY0LCAwLjAwNTU4MSwgMC4wMDU1OTMsIDAuMDA1NjA1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDc3OTIsIDAuMDA4MDI0LCAwLjAwODA4MiwgMC4wMDgxMDEsIDAuMDA4MTE5LCAwLjAwODEyOCwgMC4wMDgxMzYiLCBcCi0gICAgICAgICAgIjAuMDA3NzY5LCAwLjAwNzk5NywgMC4wMDgwNTYsIDAuMDA4MDc2LCAwLjAwODA5NCwgMC4wMDgxMDQsIDAuMDA4MTEzIiwgXAotICAgICAgICAgICIwLjAwNzc2NCwgMC4wMDc5ODMsIDAuMDA4MDQ2LCAwLjAwODA2NywgMC4wMDgwODcsIDAuMDA4MDk4LCAwLjAwODEwNyIsIFwKLSAgICAgICAgICAiMC4wMDc3NjIsIDAuMDA3OTY5LCAwLjAwODAzNiwgMC4wMDgwNTksIDAuMDA4MDgyLCAwLjAwODA5NCwgMC4wMDgxMDQiLCBcCi0gICAgICAgICAgIjAuMDA3NzYyLCAwLjAwNzk1NywgMC4wMDgwMjcsIDAuMDA4MDUzLCAwLjAwODA3OCwgMC4wMDgwOTEsIDAuMDA4MTAzIiwgXAotICAgICAgICAgICIwLjAwNzc3NCwgMC4wMDc5NTEsIDAuMDA4MDIzLCAwLjAwODA1MSwgMC4wMDgwNzksIDAuMDA4MDk0LCAwLjAwODEwOCIsIFwKLSAgICAgICAgICAiMC4wMDc4MDMsIDAuMDA3OTUxLCAwLjAwODAyNCwgMC4wMDgwNTMsIDAuMDA4MDgyLCAwLjAwODA5OSwgMC4wMDgxMTQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjQ4OSwgMC4wMDY2NjgsIDAuMDA2Njk3LCAwLjAwNjcwNiwgMC4wMDY3MTQsIDAuMDA2NzIxLCAwLjAwNjcyMyIsIFwKLSAgICAgICAgICAiMC4wMDY0NzcsIDAuMDA2NjY2LCAwLjAwNjY5OSwgMC4wMDY3MSwgMC4wMDY3MTgsIDAuMDA2NzIzLCAwLjAwNjcyOSIsIFwKLSAgICAgICAgICAiMC4wMDY1MDIsIDAuMDA2NjkyLCAwLjAwNjczMSwgMC4wMDY3NDEsIDAuMDA2NzUzLCAwLjAwNjc2LCAwLjAwNjc2NSIsIFwKLSAgICAgICAgICAiMC4wMDY1MjcsIDAuMDA2NzE0LCAwLjAwNjc1OCwgMC4wMDY3NzEsIDAuMDA2Nzg0LCAwLjAwNjc5MSwgMC4wMDY3OTgiLCBcCi0gICAgICAgICAgIjAuMDA2NTM0LCAwLjAwNjcyNCwgMC4wMDY3NjksIDAuMDA2Nzg0LCAwLjAwNjgsIDAuMDA2ODA3LCAwLjAwNjgxNCIsIFwKLSAgICAgICAgICAiMC4wMDY2MTMsIDAuMDA2Nzc0LCAwLjAwNjgxNiwgMC4wMDY4MzMsIDAuMDA2ODYxLCAwLjAwNjg1NywgMC4wMDY4NzciLCBcCi0gICAgICAgICAgIjAuMDA2NjQ3LCAwLjAwNjgxLCAwLjAwNjg2NCwgMC4wMDY4OCwgMC4wMDY4OTYsIDAuMDA2OTA2LCAwLjAwNjkxNCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1MjI1LCAwLjAwNTM5OSwgMC4wMDU0MjgsIDAuMDA1NDM4LCAwLjAwNTQ0NywgMC4wMDU0NTEsIDAuMDA1NDU1IiwgXAotICAgICAgICAgICIwLjAwNTE5MywgMC4wMDUzNjksIDAuMDA1NCwgMC4wMDU0MDksIDAuMDA1NDE5LCAwLjAwNTQyMywgMC4wMDU0MjciLCBcCi0gICAgICAgICAgIjAuMDA1MTgyLCAwLjAwNTM1OCwgMC4wMDUzOSwgMC4wMDU0MDEsIDAuMDA1NDExLCAwLjAwNTQxNiwgMC4wMDU0MiIsIFwKLSAgICAgICAgICAiMC4wMDUxODIsIDAuMDA1MzU5LCAwLjAwNTM5NCwgMC4wMDU0MDYsIDAuMDA1NDE2LCAwLjAwNTQyMiwgMC4wMDU0MjciLCBcCi0gICAgICAgICAgIjAuMDA1MTg4LCAwLjAwNTM2MSwgMC4wMDUzOTcsIDAuMDA1NDEsIDAuMDA1NDE5LCAwLjAwNTQyNiwgMC4wMDU0MyIsIFwKLSAgICAgICAgICAiMC4wMDUyMTQsIDAuMDA1Mzc4LCAwLjAwNTQxMiwgMC4wMDU0MjksIDAuMDA1NDQxLCAwLjAwNTQ0NywgMC4wMDU0NTMiLCBcCi0gICAgICAgICAgIjAuMDA1MjQyLCAwLjAwNTM5OCwgMC4wMDU0MzcsIDAuMDA1NDUxLCAwLjAwNTQ1NywgMC4wMDU0NzEsIDAuMDA1NDY5Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBBTkQyWDIgKgotICogLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChBTkQyWDIpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4xMTM2NjU7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY0MjU3MTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2NDI1NzE7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjQxNDEyOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDIyNiwgMC4wMDAyMjYsIDAuMDAwMjI2LCAwLjAwMDIyNiwgMC4wMDAyMjYsIDAuMDAwMjI2LCAwLjAwMDIyNiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDIzMywgMC4wMDAyMjgsIDAuMDAwMjI3LCAwLjAwMDIyNywgMC4wMDAyMjcsIDAuMDAwMjI3LCAwLjAwMDIyNyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjUzNTIxOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDY1MzMyNTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2NTM1MjE7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMTIsIDAuMDAwMTE5LCAwLjAwMDExOSwgMC4wMDAxMTksIDAuMDAwMTE5LCAwLjAwMDExOSwgMC4wMDAxMTkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyNTcsIDAuMDAwMjU3LCAwLjAwMDI1NywgMC4wMDAyNTcsIDAuMDAwMjU3LCAwLjAwMDI1NywgMC4wMDAyNTciKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC41MjAzODc7Ci0gICAgZnVuY3Rpb24gOiAiKEEgQikiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3NjkyOCwgMC4xODA0NDYsIDAuMjYxNzcsIDAuMzYzNDYxLCAwLjQ2NTA3NiwgMC41NjY3NTUsIDAuNjY4MzY5IiwgXAotICAgICAgICAgICIwLjA4NTY0MSwgMC4xODkzNDEsIDAuMjcwNzMyLCAwLjM3MjQzOCwgMC40NzQxMTIsIDAuNTc1NzgsIDAuNjc3MzkyIiwgXAotICAgICAgICAgICIwLjA5NjQzMiwgMC4yMDAwNDQsIDAuMjgxNDAyLCAwLjM4MzA1MiwgMC40ODQ4MSwgMC41ODYzNDMsIDAuNjg4NDM0IiwgXAotICAgICAgICAgICIwLjEwNjc1NCwgMC4yMTAzMTcsIDAuMjkxNjY1LCAwLjM5MzMzMSwgMC40OTUwODQsIDAuNTk2NjI0LCAwLjY5ODY5MyIsIFwKLSAgICAgICAgICAiMC4xMTY1MjMsIDAuMjIwNDI5LCAwLjMwMTc0OSwgMC40MDMzODgsIDAuNTA1MTcyLCAwLjYwNjcwNywgMC43MDg0MTQiLCBcCi0gICAgICAgICAgIjAuMTMxMDM1LCAwLjIzNDk3NSwgMC4zMTYzNDMsIDAuNDE4MDQ5LCAwLjUxOTY1NCwgMC42MjEzMzQsIDAuNzIzMjMiLCBcCi0gICAgICAgICAgIjAuMTQyMTU1LCAwLjI0NjMzLCAwLjMyNzYyNywgMC40MjkzMTcsIDAuNTMwOTUsIDAuNjMyNzM4LCAwLjczNDIwMyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTcyNjUsIDAuMjYwNjMxLCAwLjQyNzU0MywgMC42MzU4ODcsIDAuODQ1ODY4LCAxLjA1NDcsIDEuMjY2MjEiLCBcCi0gICAgICAgICAgIjAuMDU3MjQyLCAwLjI2MDU4OCwgMC40Mjc0OTQsIDAuNjM2NzQ0LCAwLjg0NzA1MiwgMS4wNTYzNCwgMS4yNjYxMiIsIFwKLSAgICAgICAgICAiMC4wNTcxNzgsIDAuMjYwNDU1LCAwLjQyNzYwOCwgMC42MzcyNTYsIDAuODQ1NjQyLCAxLjA1NDcsIDEuMjY0MzQiLCBcCi0gICAgICAgICAgIjAuMDU3NjI1LCAwLjI2MDQ3LCAwLjQyNjg0MiwgMC42MzcyNDksIDAuODQ1NjYyLCAxLjA1NDcsIDEuMjY0MzMiLCBcCi0gICAgICAgICAgIjAuMDU4MjM1LCAwLjI2MDc1OCwgMC40Mjc1MTcsIDAuNjM2NzM5LCAwLjg0NTU4OCwgMS4wNTY4LCAxLjI2NDkzIiwgXAotICAgICAgICAgICIwLjA1OTI0OSwgMC4yNjEwNDUsIDAuNDI3MTYzLCAwLjYzNTkyNCwgMC44NDU3MTMsIDEuMDU0NzEsIDEuMjY0ODciLCBcCi0gICAgICAgICAgIjAuMDYwNTUyLCAwLjI2MTI4LCAwLjQyNzc4OCwgMC42MzU5OCwgMC44NDU3NzQsIDEuMDU0ODksIDEuMjY2MTMiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU3NDY4LCAwLjE2MTQ5MywgMC4yNDQyOTMsIDAuMzQ3Njg4LCAwLjQ1MTEwNiwgMC41NTQ1MTQsIDAuNjU3OTM4IiwgXAotICAgICAgICAgICIwLjA2NzQ0OCwgMC4xNzE0ODUsIDAuMjU0MjczLCAwLjM1NzY5LCAwLjQ2MTE2MiwgMC41NjQ1MjIsIDAuNjY3OTIyIiwgXAotICAgICAgICAgICIwLjA3OTUwMiwgMC4xODM1OTIsIDAuMjY2Mzg3LCAwLjM2OTgwNCwgMC40NzMyMiwgMC41NzY2NjYsIDAuNjgwMDQxIiwgXAotICAgICAgICAgICIwLjA5MDgxNiwgMC4xOTQ5MDYsIDAuMjc3NzE3LCAwLjM4MTEyMiwgMC40ODQ1NDQsIDAuNTg3OTQ1LCAwLjY5MTM2NCIsIFwKLSAgICAgICAgICAiMC4xMDA1NDcsIDAuMjA0NzQ3LCAwLjI4NzU0MywgMC4zOTA5NjgsIDAuNDk0Mzc0LCAwLjU5Nzc3OSwgMC43MDEyNTQiLCBcCi0gICAgICAgICAgIjAuMTEzNzkyLCAwLjIxODE5MiwgMC4zMDA5NjYsIDAuNDA0Mzc1LCAwLjUwNzgxMSwgMC42MTEyMTEsIDAuNzE0NjA5IiwgXAotICAgICAgICAgICIwLjEyMzkxNywgMC4yMjgyNjksIDAuMzExMDI4LCAwLjQxNDQ0OCwgMC41MTc4NTMsIDAuNjIxMjgzLCAwLjcyNDY4NCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTE0MzcsIDAuMjU4NDE3LCAwLjQyNjAxOSwgMC42MzU5NTUsIDAuODQ0MzYyLCAxLjA1Mzg3LCAxLjI2MzY4IiwgXAotICAgICAgICAgICIwLjA1MTQ0NSwgMC4yNTgwNTQsIDAuNDI2MDU0LCAwLjYzNTU4NiwgMC44NDU3MTksIDEuMDUzOTksIDEuMjYzNDQiLCBcCi0gICAgICAgICAgIjAuMDUxNjU1LCAwLjI1ODA1NSwgMC40MjYwNDYsIDAuNjM1NjEyLCAwLjg0NDM1NCwgMS4wNTU3LCAxLjI2MzQxIiwgXAotICAgICAgICAgICIwLjA1MjE0LCAwLjI1ODM0NSwgMC40MjU5OTksIDAuNjM1OTAzLCAwLjg0NTMzLCAxLjA1NTU3LCAxLjI2NDk1IiwgXAotICAgICAgICAgICIwLjA1MzA1NCwgMC4yNTg2MTMsIDAuNDI1MjkyLCAwLjYzNTg5NywgMC44NDU3NDcsIDEuMDU1NTgsIDEuMjY1NTgiLCBcCi0gICAgICAgICAgIjAuMDU0NjEzLCAwLjI1ODY5NywgMC40MjU4NjQsIDAuNjM0OTcsIDAuODQ1NjY2LCAxLjA1NTcyLCAxLjI2NTU0IiwgXAotICAgICAgICAgICIwLjA1NTk2MywgMC4yNTg1OTYsIDAuNDI1ODg2LCAwLjYzNTA2OSwgMC44NDU2MjgsIDEuMDUzOTksIDEuMjY1NDUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc0NDQ5LCAwLjE3ODE0LCAwLjI1OTQ2MiwgMC4zNjExNTgsIDAuNDYyNzc3LCAwLjU2NDQ1OSwgMC42NjYxMjEiLCBcCi0gICAgICAgICAgIjAuMDgzNDc5LCAwLjE4NzE4NSwgMC4yNjg1MjUsIDAuMzcwMjE0LCAwLjQ3MTg5OSwgMC41NzM0MjIsIDAuNjc1MDc2IiwgXAotICAgICAgICAgICIwLjA5NTQyMiwgMC4xOTkwMTksIDAuMjgwMzU3LCAwLjM4MjAzMSwgMC40ODM4ODgsIDAuNTg1MzE1LCAwLjY4NzA4NCIsIFwKLSAgICAgICAgICAiMC4xMDcwNzYsIDAuMjEwNTQ1LCAwLjI5MTg3MSwgMC4zOTM1MTYsIDAuNDk1NDAxLCAwLjU5NjgzNywgMC42OTg1OSIsIFwKLSAgICAgICAgICAiMC4xMTc5NjIsIDAuMjIxODY2LCAwLjMwMzIzOSwgMC40MDQ4OTksIDAuNTA2NTc2LCAwLjYwODE4NywgMC43MTAyOTgiLCBcCi0gICAgICAgICAgIjAuMTMzMzM4LCAwLjIzNzMzNywgMC4zMTg2NDEsIDAuNDIwNTA4LCAwLjUyMjA4NywgMC42MjM3NTEsIDAuNzI1MzYxIiwgXAotICAgICAgICAgICIwLjE0NTc1NywgMC4yNDk3NywgMC4zMzEwODksIDAuNDMyNzI3LCAwLjUzNDM1MywgMC42MzYwNSwgMC43Mzc2NjMiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU3NDI1LCAwLjI2MDYxLCAwLjQyNjk5NiwgMC42MzU4ODUsIDAuODQ1ODcxLCAxLjA1NDY5LCAxLjI2NTA4IiwgXAotICAgICAgICAgICIwLjA1NzIyOSwgMC4yNjA0NDksIDAuNDI3NjMyLCAwLjYzNTg4LCAwLjg0NTQyNiwgMS4wNTY4OSwgMS4yNjYwNiIsIFwKLSAgICAgICAgICAiMC4wNTcyMiwgMC4yNjA2MDIsIDAuNDI3NDM1LCAwLjYzNzExMiwgMC44NDU0NDQsIDEuMDU2OTYsIDEuMjYzNzYiLCBcCi0gICAgICAgICAgIjAuMDU3NTUyLCAwLjI2MDY3NywgMC40Mjc0ODUsIDAuNjM3MDY5LCAwLjg0NTQ0NSwgMS4wNTY4MiwgMS4yNjM3NSIsIFwKLSAgICAgICAgICAiMC4wNTg1MjQsIDAuMjYwODEsIDAuNDI3NzczLCAwLjYzNTg5NywgMC44NDU4MDQsIDEuMDU0NywgMS4yNjQyNiIsIFwKLSAgICAgICAgICAiMC4wNjA2NCwgMC4yNjA5OTIsIDAuNDI3NjUzLCAwLjYzNjA5OSwgMC44NDUyNjYsIDEuMDU2MjksIDEuMjY2MDYiLCBcCi0gICAgICAgICAgIjAuMDYyMDEsIDAuMjYxNjMyLCAwLjQyNzk2NSwgMC42MzcyMTUsIDAuODQ2ODk5LCAxLjA1NDcxLCAxLjI2NDE1Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1NTc3LCAwLjE1OTc3MywgMC4yNDI1NjIsIDAuMzQ2MDM4LCAwLjQ0OTU5NywgMC41NTMxNzIsIDAuNjU2MzkiLCBcCi0gICAgICAgICAgIjAuMDY1NjUsIDAuMTY5NjIzLCAwLjI1MjM5NiwgMC4zNTU4NDEsIDAuNDU5NDgyLCAwLjU2Mjk5OSwgMC42NjYxNTYiLCBcCi0gICAgICAgICAgIjAuMDc3NjY5LCAwLjE4MTY1NSwgMC4yNjQ0NzUsIDAuMzY3ODksIDAuNDcxNTE1LCAwLjU3NDg3NCwgMC42NzgzMzMiLCBcCi0gICAgICAgICAgIjAuMDg4NTQ4LCAwLjE5MjQ4MSwgMC4yNzUyNjksIDAuMzc4NzI2LCAwLjQ4MjM0MiwgMC41ODU3MzEsIDAuNjg5MDM0IiwgXAotICAgICAgICAgICIwLjA5NzkxMywgMC4yMDE3MiwgMC4yODQ1MTIsIDAuMzg3OTk1LCAwLjQ5MTY5MSwgMC41OTQ5NzMsIDAuNjk4MzE2IiwgXAotICAgICAgICAgICIwLjExMDg0NCwgMC4yMTUwMzEsIDAuMjk3Nzc1LCAwLjQwMTIwNywgMC41MDQ2OTksIDAuNjA4Mzc2LCAwLjcxMTY0NSIsIFwKLSAgICAgICAgICAiMC4xMjA4ODYsIDAuMjI1MDQxLCAwLjMwNzc3MiwgMC40MTA1MjMsIDAuNTE0NTUxLCAwLjYxNzQyMSwgMC43MjE1MTUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDUxMjM5LCAwLjI1ODIyMiwgMC40MjYwNjgsIDAuNjM0MjksIDAuODQzOTkyLCAxLjA1MzE2LCAxLjI2MjIiLCBcCi0gICAgICAgICAgIjAuMDUxMTk2LCAwLjI1ODM3NCwgMC40MjU5MzEsIDAuNjM2MDU3LCAwLjg0MzgzNSwgMS4wNTMxMiwgMS4yNjIzOSIsIFwKLSAgICAgICAgICAiMC4wNTE0NjQsIDAuMjU3OTMzLCAwLjQyNDg0MSwgMC42MzYwNjQsIDAuODQzODA3LCAxLjA1MzgyLCAxLjI2Mzk4IiwgXAotICAgICAgICAgICIwLjA1MjEyNSwgMC4yNTgzNzEsIDAuNDI2MTE0LCAwLjYzNjA3NywgMC44NDM4MSwgMS4wNTM1NSwgMS4yNjU0NyIsIFwKLSAgICAgICAgICAiMC4wNTMxNDYsIDAuMjU3OTkzLCAwLjQyNDk5NywgMC42MzQ1MjEsIDAuODQ0NDksIDEuMDUzNDIsIDEuMjYyMDMiLCBcCi0gICAgICAgICAgIjAuMDU0OTQ4LCAwLjI1ODM4MywgMC40MjU0NjIsIDAuNjM2MDA1LCAwLjg0MzU1NSwgMS4wNTMxMSwgMS4yNjMzMiIsIFwKLSAgICAgICAgICAiMC4wNTYxMDksIDAuMjU4OTc4LCAwLjQyNjI3LCAwLjYzNDYsIDAuODQ1Njc1LCAxLjA1Mzk4LCAxLjI2NDQ5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyMzQyLCAwLjAwMjM4MywgMC4wMDIzODgsIDAuMDAyMzkxLCAwLjAwMjM5MiwgMC4wMDIzOTMsIDAuMDAyMzk0IiwgXAotICAgICAgICAgICIwLjAwMjMxMSwgMC4wMDIzNiwgMC4wMDIzNjUsIDAuMDAyMzY3LCAwLjAwMjM2OSwgMC4wMDIzNjksIDAuMDAyMzcxIiwgXAotICAgICAgICAgICIwLjAwMjI5NywgMC4wMDIzNDYsIDAuMDAyMzUsIDAuMDAyMzU1LCAwLjAwMjM1OCwgMC4wMDIzNTksIDAuMDAyMzU5IiwgXAotICAgICAgICAgICIwLjAwMjI4MywgMC4wMDIzMzksIDAuMDAyMzQ3LCAwLjAwMjM1LCAwLjAwMjM1MiwgMC4wMDIzNTQsIDAuMDAyMzU0IiwgXAotICAgICAgICAgICIwLjAwMjI3OCwgMC4wMDIzNDEsIDAuMDAyMzQ5LCAwLjAwMjM1MywgMC4wMDIzNTQsIDAuMDAyMzU2LCAwLjAwMjM1NiIsIFwKLSAgICAgICAgICAiMC4wMDIyODgsIDAuMDAyMzM3LCAwLjAwMjM0NiwgMC4wMDIzNTIsIDAuMDAyMzU1LCAwLjAwMjM1NiwgMC4wMDIzNTgiLCBcCi0gICAgICAgICAgIjAuMDAyMjk1LCAwLjAwMjM0MywgMC4wMDIzNTMsIDAuMDAyMzU4LCAwLjAwMjM2MSwgMC4wMDIzNjMsIDAuMDAyMzY0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzNDI5LCAwLjAwMzQ4MywgMC4wMDM0ODksIDAuMDAzNDkyLCAwLjAwMzQ5MywgMC4wMDM0OTQsIDAuMDAzNDk1IiwgXAotICAgICAgICAgICIwLjAwMzQwMywgMC4wMDM0NjYsIDAuMDAzNDc0LCAwLjAwMzQ3OCwgMC4wMDM0OCwgMC4wMDM0ODEsIDAuMDAzNDgyIiwgXAotICAgICAgICAgICIwLjAwMzM4NywgMC4wMDM0NiwgMC4wMDM0NywgMC4wMDM0NzYsIDAuMDAzNDc4LCAwLjAwMzQ4LCAwLjAwMzQ4MSIsIFwKLSAgICAgICAgICAiMC4wMDMzNzUsIDAuMDAzNDU2LCAwLjAwMzQ2OSwgMC4wMDM0NzYsIDAuMDAzNDgsIDAuMDAzNDgyLCAwLjAwMzQ4NCIsIFwKLSAgICAgICAgICAiMC4wMDMzNzMsIDAuMDAzNDU2LCAwLjAwMzQ3MiwgMC4wMDM0OCwgMC4wMDM0ODUsIDAuMDAzNDg3LCAwLjAwMzQ4OSIsIFwKLSAgICAgICAgICAiMC4wMDMzODUsIDAuMDAzNDY5LCAwLjAwMzQ4NSwgMC4wMDM0OTUsIDAuMDAzNSwgMC4wMDM1MDMsIDAuMDAzNTA2IiwgXAotICAgICAgICAgICIwLjAwMzQwMywgMC4wMDM0ODMsIDAuMDAzNTAxLCAwLjAwMzUxMiwgMC4wMDM1MTcsIDAuMDAzNTIxLCAwLjAwMzUyNCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjMzOCwgMC4wMDIzODksIDAuMDAyMzk1LCAwLjAwMjM5OCwgMC4wMDI0MDEsIDAuMDAyNCwgMC4wMDI0MDEiLCBcCi0gICAgICAgICAgIjAuMDAyMzA3LCAwLjAwMjM2MiwgMC4wMDIzNjcsIDAuMDAyMzczLCAwLjAwMjM3NCwgMC4wMDIzNzYsIDAuMDAyMzc3IiwgXAotICAgICAgICAgICIwLjAwMjI5NywgMC4wMDIzNTIsIDAuMDAyMzYxLCAwLjAwMjM2NCwgMC4wMDIzNjgsIDAuMDAyMzY5LCAwLjAwMjM3IiwgXAotICAgICAgICAgICIwLjAwMjMwNiwgMC4wMDIzNTQsIDAuMDAyMzY1LCAwLjAwMjM2OCwgMC4wMDIzNzIsIDAuMDAyMzc3LCAwLjAwMjM3NSIsIFwKLSAgICAgICAgICAiMC4wMDIzMTcsIDAuMDAyMzYzLCAwLjAwMjM3NCwgMC4wMDIzOCwgMC4wMDIzODIsIDAuMDAyMzg0LCAwLjAwMjM4NSIsIFwKLSAgICAgICAgICAiMC4wMDIzMzIsIDAuMDAyMzc4LCAwLjAwMjM5LCAwLjAwMjM5NywgMC4wMDI0LCAwLjAwMjQwMSwgMC4wMDI0MDQiLCBcCi0gICAgICAgICAgIjAuMDAyMzQzLCAwLjAwMjM5MywgMC4wMDI0MDYsIDAuMDAyNDEzLCAwLjAwMjQxOCwgMC4wMDI0MjEsIDAuMDAyNDIyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzMjE0LCAwLjAwMzI3NiwgMC4wMDMyODMsIDAuMDAzMjg3LCAwLjAwMzI4OCwgMC4wMDMyOSwgMC4wMDMyOSIsIFwKLSAgICAgICAgICAiMC4wMDMxOCwgMC4wMDMyNTMsIDAuMDAzMjYyLCAwLjAwMzI2NiwgMC4wMDMyNjgsIDAuMDAzMjcsIDAuMDAzMjcxIiwgXAotICAgICAgICAgICIwLjAwMzE2MywgMC4wMDMyNDEsIDAuMDAzMjUzLCAwLjAwMzI1OSwgMC4wMDMyNjIsIDAuMDAzMjY0LCAwLjAwMzI2NSIsIFwKLSAgICAgICAgICAiMC4wMDMxNDQsIDAuMDAzMjMyLCAwLjAwMzI0NywgMC4wMDMyNTUsIDAuMDAzMjU5LCAwLjAwMzI2MiwgMC4wMDMyNjMiLCBcCi0gICAgICAgICAgIjAuMDAzMTQxLCAwLjAwMzIzNCwgMC4wMDMyNSwgMC4wMDMyNTksIDAuMDAzMjY0LCAwLjAwMzI2NywgMC4wMDMyNjkiLCBcCi0gICAgICAgICAgIjAuMDAzMTUxLCAwLjAwMzIzNywgMC4wMDMyNTQsIDAuMDAzMjY0LCAwLjAwMzI2OCwgMC4wMDMyNzIsIDAuMDAzMjc0IiwgXAotICAgICAgICAgICIwLjAwMzE0NCwgMC4wMDMyNDgsIDAuMDAzMjY1LCAwLjAwMzI3MSwgMC4wMDMyODUsIDAuMDAzMjgyLCAwLjAwMzI4OCIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogQU5EMlg4ICoKLSAqIC0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoQU5EMlg4KSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuNDM3MDE4OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE3NTY1NjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE3NTY1NjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE3NTIwNTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA4MTksIDAuMDAwODE4LCAwLjAwMDgxOCwgMC4wMDA4MTgsIDAuMDAwODE4LCAwLjAwMDgxNywgMC4wMDA4MTciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA4NDQsIDAuMDAwODI0LCAwLjAwMDgyMSwgMC4wMDA4MjEsIDAuMDAwODIsIDAuMDAwODIsIDAuMDAwODIxIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE2MzMxNTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE2MzIwNDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE2MzMxNTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA1MDcsIDAuMDAwNTA2LCAwLjAwMDUwNiwgMC4wMDA1MDYsIDAuMDAwNTA2LCAwLjAwMDUwNiwgMC4wMDA1MDYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA5MjgsIDAuMDAwOTI5LCAwLjAwMDkzLCAwLjAwMDkyOSwgMC4wMDA5MjksIDAuMDAwOTI5LCAwLjAwMDkyOSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAxLjk4MzMzOwotICAgIGZ1bmN0aW9uIDogIihBIEIpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1Njc1MiwgMC4wOTg3OTEsIDAuMTM1NTI1LCAwLjE2MTQ2MSwgMC4yMDI4ODgsIDAuMjM5MTMyLCAwLjI5MDg2OCIsIFwKLSAgICAgICAgICAiMC4wNjU0NzUsIDAuMTA3NjQsIDAuMTQ0MzU2LCAwLjE3MDMxMywgMC4yMTE3NzMsIDAuMjQ4MDI5LCAwLjI5OTg2NyIsIFwKLSAgICAgICAgICAiMC4wNzYzNDgsIDAuMTE4NDU0LCAwLjE1NTEyOSwgMC4xODEwNTUsIDAuMjIyNTA0LCAwLjI1ODczMywgMC4zMTA1MDEiLCBcCi0gICAgICAgICAgIjAuMDg2NjY4LCAwLjEyODk2NywgMC4xNjU2NzEsIDAuMTkxNjAxLCAwLjIzMzA0NSwgMC4yNjkyNzYsIDAuMzIxMDM3IiwgXAotICAgICAgICAgICIwLjA5NjM5NiwgMC4xMzg3NzEsIDAuMTc1NTA3LCAwLjIwMTQzNSwgMC4yNDI4NzMsIDAuMjc5MTEsIDAuMzMwODY1IiwgXAotICAgICAgICAgICIwLjExMDEwNiwgMC4xNTMyMTQsIDAuMTg5OTQ1LCAwLjIxNTg2OSwgMC4yNTczMiwgMC4yOTM1NSwgMC4zNDUzMTMiLCBcCi0gICAgICAgICAgIjAuMTIwOTU1LCAwLjE2NDY2OCwgMC4yMDE2MzEsIDAuMjI3NDUsIDAuMjY4ODg4LCAwLjMwNTA4OCwgMC4zNTY4MzEiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjgwOTUsIDAuMDk4NTU1LCAwLjE3MTAyMSwgMC4yMjM1MiwgMC4zMDgzMywgMC4zODI3OSwgMC40ODkyNTciLCBcCi0gICAgICAgICAgIjAuMDI3OTcxLCAwLjA5ODU0MSwgMC4xNzA5NTMsIDAuMjIzNTkyLCAwLjMwODI0NiwgMC4zODI3MSwgMC40ODk1NDIiLCBcCi0gICAgICAgICAgIjAuMDI3OTgsIDAuMDk4NTg4LCAwLjE3MDk2MSwgMC4yMjM0NjgsIDAuMzA4MzQ4LCAwLjM4MjcxNywgMC40ODgxODYiLCBcCi0gICAgICAgICAgIjAuMDI4MzE1LCAwLjA5ODczMSwgMC4xNzEwMjMsIDAuMjIzNDMxLCAwLjMwNzc5NCwgMC4zODI2OTEsIDAuNDg4ODY0IiwgXAotICAgICAgICAgICIwLjAyOTA3MiwgMC4wOTkwNzgsIDAuMTcxMTkxLCAwLjIyMzc2NiwgMC4zMDgzNSwgMC4zODIzMzYsIDAuNDg4NzI4IiwgXAotICAgICAgICAgICIwLjAzMDcxNSwgMC4xMDAxNTEsIDAuMTcxODQxLCAwLjIyNDA1NSwgMC4zMDg2NTYsIDAuMzgyOTgyLCAwLjQ4OTUyMyIsIFwKLSAgICAgICAgICAiMC4wMzIwOTIsIDAuMTAwOTM1LCAwLjE3MjQ5OSwgMC4yMjQzNTYsIDAuMzA4OTQxLCAwLjM4MjcyNywgMC40ODg5NDEiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzkzMiwgMC4wNzk1NTksIDAuMTE3NzI0LCAwLjE0NDkyMSwgMC4xODg0MiwgMC4yMjY0NywgMC4yODA4MTMiLCBcCi0gICAgICAgICAgIjAuMDQ5MjY5LCAwLjA4OTUxOCwgMC4xMjc2OTcsIDAuMTU0OTA3LCAwLjE5ODQzOSwgMC4yMzY0NzEsIDAuMjkwODAxIiwgXAotICAgICAgICAgICIwLjA2MTcwNywgMC4xMDE5NTksIDAuMTQwMTQyLCAwLjE2NzM1NiwgMC4yMTA4OCwgMC4yNDg5MywgMC4zMDMyNjMiLCBcCi0gICAgICAgICAgIjAuMDcyNjYxLCAwLjExMjk5MywgMC4xNTExNjksIDAuMTc4MzgxLCAwLjIyMTksIDAuMjU5OTY3LCAwLjMxNDI5NCIsIFwKLSAgICAgICAgICAiMC4wODIwNjUsIDAuMTIyOTY4LCAwLjE2MTEzMiwgMC4xODgzMjksIDAuMjMxODQ1LCAwLjI2OTg5NSwgMC4zMjQyNTIiLCBcCi0gICAgICAgICAgIjAuMDk0ODkzLCAwLjEzNjM1MiwgMC4xNzQ1NjEsIDAuMjAxNzcyLCAwLjI0NTI2MiwgMC4yODMzMTcsIDAuMzM3NjY1IiwgXAotICAgICAgICAgICIwLjEwNDU3OSwgMC4xNDY1MjMsIDAuMTg0NzgxLCAwLjIxMTk3MSwgMC4yNTUzNzcsIDAuMjkzNDIyLCAwLjM0Nzc0MiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyMjI4NywgMC4wOTYzNzgsIDAuMTcyOTE3LCAwLjIyNzgyNCwgMC4zMTU5ODQsIDAuMzkzMTg1LCAwLjUwMjc3IiwgXAotICAgICAgICAgICIwLjAyMjI1MywgMC4wOTY0NDcsIDAuMTcyNjI4LCAwLjIyNzQ5MSwgMC4zMTUxMzcsIDAuMzkzMTQ5LCAwLjUwMzU2NCIsIFwKLSAgICAgICAgICAiMC4wMjI1NDEsIDAuMDk2NDM5LCAwLjE3MjgzOSwgMC4yMjc1LCAwLjMxNTUzMiwgMC4zOTMxMzUsIDAuNTAzNTY0IiwgXAotICAgICAgICAgICIwLjAyMzgsIDAuMDk2NzU4LCAwLjE3MzAzOCwgMC4yMjc5MDcsIDAuMzE1NjUyLCAwLjM5MzEwOSwgMC41MDM1NzYiLCBcCi0gICAgICAgICAgIjAuMDI1MTUzLCAwLjA5NzI1NiwgMC4xNzMwMDYsIDAuMjI4MDMyLCAwLjMxNTU5MywgMC4zOTI2MzMsIDAuNTAzNDUiLCBcCi0gICAgICAgICAgIjAuMDI3MzE4LCAwLjA5ODA4NiwgMC4xNzM1MywgMC4yMjgsIDAuMzE1NzAyLCAwLjM5MjYzNSwgMC41MDMzMTkiLCBcCi0gICAgICAgICAgIjAuMDI4OTk5LCAwLjA5ODkzMywgMC4xNzM5MTQsIDAuMjI4MzEzLCAwLjMxNjExOSwgMC4zOTMwMywgMC41MDMyOSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1NDU3OCwgMC4wOTY3MTIsIDAuMTMzNDI5LCAwLjE1OTM5NywgMC4yMDA4MjEsIDAuMjM3MDYzLCAwLjI4ODg2NyIsIFwKLSAgICAgICAgICAiMC4wNjM1MTcsIDAuMTA1NjgzLCAwLjE0MjM5MywgMC4xNjgzNjgsIDAuMjA5ODAzLCAwLjI0NjA1NSwgMC4yOTc3OTMiLCBcCi0gICAgICAgICAgIjAuMDc1MzM2LCAwLjExNzQxMiwgMC4xNTQwOTIsIDAuMTgwMDQ1LCAwLjIyMTQ3NCwgMC4yNTc3MDgsIDAuMzA5NDY3IiwgXAotICAgICAgICAgICIwLjA4NzA5NiwgMC4xMjkxOTIsIDAuMTY1ODY2LCAwLjE5MTgxNiwgMC4yMzMyNDcsIDAuMjY5NDgyLCAwLjMyMTI1NCIsIFwKLSAgICAgICAgICAiMC4wOTc1OTcsIDAuMTQwMjM5LCAwLjE3Njc2NywgMC4yMDI2OTMsIDAuMjQ0MTI0LCAwLjI4MDM5MywgMC4zMzIxODQiLCBcCi0gICAgICAgICAgIjAuMTEyNjEzLCAwLjE1NTYzLCAwLjE5MjQwNiwgMC4yMTgzMjMsIDAuMjU5NzM3LCAwLjI5NiwgMC4zNDc3NTciLCBcCi0gICAgICAgICAgIjAuMTIzOTEsIDAuMTY3OTI2LCAwLjIwNDEwMiwgMC4yMzAyMDgsIDAuMjcxNCwgMC4zMDc2MTksIDAuMzU5MzM0Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDI4MTQsIDAuMDk4Njc3LCAwLjE3MDc4OSwgMC4yMjMxMjYsIDAuMzA4MzE3LCAwLjM4MjgwMywgMC40ODg0ODQiLCBcCi0gICAgICAgICAgIjAuMDI3OTYyLCAwLjA5ODU1NywgMC4xNzA4OTcsIDAuMjIzMzU4LCAwLjMwODI5MSwgMC4zODIxNDksIDAuNDg4NzcxIiwgXAotICAgICAgICAgICIwLjAyODA1MiwgMC4wOTg1NjIsIDAuMTcwOTc4LCAwLjIyMzM4NCwgMC4zMDgyNTQsIDAuMzgyNjYzLCAwLjQ4OTI5NSIsIFwKLSAgICAgICAgICAiMC4wMjg0NzgsIDAuMDk4NzgxLCAwLjE3MTA1NywgMC4yMjMzNTUsIDAuMzA4MjgyLCAwLjM4MjY5MSwgMC40ODg3NjEiLCBcCi0gICAgICAgICAgIjAuMDMwNTM5LCAwLjA5OTQyMiwgMC4xNzEzODMsIDAuMjIzODY1LCAwLjMwODQwOCwgMC4zODI5MjQsIDAuNDg4NDAzIiwgXAotICAgICAgICAgICIwLjAzMjM0NCwgMC4xMDA5NTUsIDAuMTcyMjgzLCAwLjIyNDE5NiwgMC4zMDg0ODMsIDAuMzgyMjQzLCAwLjQ4OTU3MiIsIFwKLSAgICAgICAgICAiMC4wMzQ2MTQsIDAuMTAxODYsIDAuMTczMTg5LCAwLjIyNDkyLCAwLjMwODkzOCwgMC4zODMzODUsIDAuNDg5NTE1Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM4NTE1LCAwLjA3ODc1MywgMC4xMTY4OTUsIDAuMTQ0MDg2LCAwLjE4NzYwOSwgMC4yMjU2NDUsIDAuMjgwMDI1IiwgXAotICAgICAgICAgICIwLjA0ODQwNiwgMC4wODg3MTIsIDAuMTI2ODU2LCAwLjE1NDA1MSwgMC4xOTc1NiwgMC4yMzU1ODYsIDAuMjkwMDE1IiwgXAotICAgICAgICAgICIwLjA2MDY2MywgMC4xMDA5NzEsIDAuMTM5MTM0LCAwLjE2NjMzLCAwLjIwOTg0LCAwLjI0Nzk0MiwgMC4zMDIyNjkiLCBcCi0gICAgICAgICAgIjAuMDcxMzU4LCAwLjExMTgyOCwgMC4xNDk4NzYsIDAuMTc3MDcxLCAwLjIyMDU4NCwgMC4yNTg2MjUsIDAuMzEzMDkiLCBcCi0gICAgICAgICAgIjAuMDgwNDAxLCAwLjEyMTAyNSwgMC4xNTkxNiwgMC4xODYzNjMsIDAuMjI5ODM2LCAwLjI2Nzg5OCwgMC4zMjIyNDciLCBcCi0gICAgICAgICAgIjAuMDkzMTM3LCAwLjEzNDc0MywgMC4xNzI3MDcsIDAuMTk5ODY4LCAwLjI0MzMyNiwgMC4yODEzNjYsIDAuMzM1NzEyIiwgXAotICAgICAgICAgICIwLjEwMjY2LCAwLjE0NDY5NywgMC4xODI4NTYsIDAuMjA5OTU3LCAwLjI1MzQsIDAuMjkwNzgyLCAwLjM0NTEzMiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyMjI5OCwgMC4wOTYzOCwgMC4xNzI5MDIsIDAuMjI3NzM5LCAwLjMxNTMxLCAwLjM5MzIyMywgMC41MDI3NDEiLCBcCi0gICAgICAgICAgIjAuMDIyMjc3LCAwLjA5NjQzNSwgMC4xNzI4ODMsIDAuMjI3ODE1LCAwLjMxNjAzOCwgMC4zOTMxODgsIDAuNTAyNTk4IiwgXAotICAgICAgICAgICIwLjAyMjc4MywgMC4wOTY1MjEsIDAuMTcyOTIzLCAwLjIyNzgxNiwgMC4zMTU0ODgsIDAuMzkyMzk5LCAwLjUwMjc2OSIsIFwKLSAgICAgICAgICAiMC4wMjQwODgsIDAuMDk2OTI1LCAwLjE3MzA2NywgMC4yMjc5MTQsIDAuMzE1MzI5LCAwLjM5MzI0MSwgMC41MDIzMDQiLCBcCi0gICAgICAgICAgIjAuMDI1Mzk1LCAwLjA5NzU3OSwgMC4xNzM0MDUsIDAuMjI4MTM0LCAwLjMxNjAzNywgMC4zOTI1NzIsIDAuNTAzNDU4IiwgXAotICAgICAgICAgICIwLjAyODAzMywgMC4wOTgzNzUsIDAuMTczNzc3LCAwLjIyODQ0NywgMC4zMTYxMzEsIDAuMzkzMjEyLCAwLjUwMzI0MiIsIFwKLSAgICAgICAgICAiMC4wMjkzNjksIDAuMDk5MjcsIDAuMTc0MDk5LCAwLjIyODQxNCwgMC4zMTY0MjgsIDAuMzkzNDUzLCAwLjUwMzg4MSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA4NTUxLCAwLjAwODg2MywgMC4wMDg5MjksIDAuMDA4OTQ2LCAwLjAwODk2OSwgMC4wMDg5NzgsIDAuMDA5IiwgXAotICAgICAgICAgICIwLjAwODQxNSwgMC4wMDg3NTIsIDAuMDA4ODI4LCAwLjAwODg0OCwgMC4wMDg4NzcsIDAuMDA4ODgsIDAuMDA4ODk4IiwgXAotICAgICAgICAgICIwLjAwODM4NywgMC4wMDg2OSwgMC4wMDg3NywgMC4wMDg3OTgsIDAuMDA4ODIzLCAwLjAwODgzNCwgMC4wMDg4NDciLCBcCi0gICAgICAgICAgIjAuMDA4MzQxLCAwLjAwODY3MywgMC4wMDg3NTQsIDAuMDA4Nzc1LCAwLjAwODgwMywgMC4wMDg4MTcsIDAuMDA4ODMiLCBcCi0gICAgICAgICAgIjAuMDA4MzM2LCAwLjAwODYxNCwgMC4wMDg3MTEsIDAuMDA4NzQxLCAwLjAwODc3OSwgMC4wMDg3OTQsIDAuMDA4ODA4IiwgXAotICAgICAgICAgICIwLjAwODMzOCwgMC4wMDg1OTEsIDAuMDA4NjkxLCAwLjAwODcyNywgMC4wMDg3NywgMC4wMDg3OTIsIDAuMDA4ODE2IiwgXAotICAgICAgICAgICIwLjAwODM5OCwgMC4wMDg2MDUsIDAuMDA4NjkzLCAwLjAwODczOCwgMC4wMDg3NjcsIDAuMDA4Nzk1LCAwLjAwODgxOSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDExNTYzLCAwLjAxMTk4NywgMC4wMTIwNTksIDAuMDEyMDgyLCAwLjAxMjEwMiwgMC4wMTIxMTIsIDAuMDEyMTIyIiwgXAotICAgICAgICAgICIwLjAxMTQ1MiwgMC4wMTE4ODksIDAuMDExOTc4LCAwLjAxMjAwOCwgMC4wMTIwMzQsIDAuMDEyMDQ4LCAwLjAxMjA2MSIsIFwKLSAgICAgICAgICAiMC4wMTE0MDQsIDAuMDExODIsIDAuMDExOTI3LCAwLjAxMTk2NCwgMC4wMTE5OTgsIDAuMDEyMDE3LCAwLjAxMjAzMyIsIFwKLSAgICAgICAgICAiMC4wMTE0MDksIDAuMDExNzc4LCAwLjAxMTg5NSwgMC4wMTE5NCwgMC4wMTE5ODMsIDAuMDEyMDA2LCAwLjAxMjAyOCIsIFwKLSAgICAgICAgICAiMC4wMTEzODYsIDAuMDExNzUxLCAwLjAxMTg3OCwgMC4wMTE5MzIsIDAuMDExOTgsIDAuMDEyMDA3LCAwLjAxMjAzMyIsIFwKLSAgICAgICAgICAiMC4wMTE0MjgsIDAuMDExNzU4LCAwLjAxMTg5NCwgMC4wMTE5NDksIDAuMDEyMDA3LCAwLjAxMjAzNywgMC4wMTIwNjgiLCBcCi0gICAgICAgICAgIjAuMDExNTA4LCAwLjAxMTc5NiwgMC4wMTE5MjgsIDAuMDExOTg3LCAwLjAxMjA0MSwgMC4wMTIwNzYsIDAuMDEyMTA5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDg1NTEsIDAuMDA4ODc4LCAwLjAwODkzNywgMC4wMDg5NjgsIDAuMDA4OTgxLCAwLjAwOTAwMywgMC4wMDkwMDEiLCBcCi0gICAgICAgICAgIjAuMDA4Mzk2LCAwLjAwODczMiwgMC4wMDg4MTQsIDAuMDA4ODQzLCAwLjAwODg2OCwgMC4wMDg4ODQsIDAuMDA4ODkzIiwgXAotICAgICAgICAgICIwLjAwODM5NiwgMC4wMDg2ODQsIDAuMDA4NzczLCAwLjAwODgwNSwgMC4wMDg4MjcsIDAuMDA4ODU2LCAwLjAwODg2NyIsIFwKLSAgICAgICAgICAiMC4wMDg0MzQsIDAuMDA4NjY3LCAwLjAwODc1NywgMC4wMDg3OTEsIDAuMDA4ODE2LCAwLjAwODg0NiwgMC4wMDg4NjIiLCBcCi0gICAgICAgICAgIjAuMDA4NTQzLCAwLjAwODcwMiwgMC4wMDg3ODQsIDAuMDA4ODE0LCAwLjAwODg1MywgMC4wMDg4NzIsIDAuMDA4ODkzIiwgXAotICAgICAgICAgICIwLjAwODUwNCwgMC4wMDg3MzIsIDAuMDA4ODIsIDAuMDA4ODU4LCAwLjAwODg5NywgMC4wMDg5MTgsIDAuMDA4OTQ2IiwgXAotICAgICAgICAgICIwLjAwODU4MywgMC4wMDg3NjgsIDAuMDA4ODQ3LCAwLjAwODg4NiwgMC4wMDg5MzcsIDAuMDA4OTU4LCAwLjAwODk4NCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEwODIyLCAwLjAxMTI3MywgMC4wMTEzNDksIDAuMDExMzc0LCAwLjAxMTM5NSwgMC4wMTE0MDYsIDAuMDExNDE2IiwgXAotICAgICAgICAgICIwLjAxMDY5MSwgMC4wMTExNiwgMC4wMTEyNTQsIDAuMDExMjg0LCAwLjAxMTMxMSwgMC4wMTEzMjUsIDAuMDExMzM4IiwgXAotICAgICAgICAgICIwLjAxMDYxNCwgMC4wMTEwNTEsIDAuMDExMTcxLCAwLjAxMTIxMywgMC4wMTEyNTEsIDAuMDExMjcxLCAwLjAxMTI4OSIsIFwKLSAgICAgICAgICAiMC4wMTA2MzQsIDAuMDExMDA3LCAwLjAxMTEzOCwgMC4wMTExODYsIDAuMDExMjMxLCAwLjAxMTI1NiwgMC4wMTEyNzkiLCBcCi0gICAgICAgICAgIjAuMDEwNTkxLCAwLjAxMDk5NCwgMC4wMTExMjksIDAuMDExMTgxLCAwLjAxMTIzMSwgMC4wMTEyNiwgMC4wMTEyODciLCBcCi0gICAgICAgICAgIjAuMDEwNzI0LCAwLjAxMDk5MiwgMC4wMTExMTksIDAuMDExMTcxLCAwLjAxMTIyNiwgMC4wMTEyNiwgMC4wMTEyODgiLCBcCi0gICAgICAgICAgIjAuMDEwNjMzLCAwLjAxMDk3NSwgMC4wMTExNCwgMC4wMTExOTksIDAuMDExMjU2LCAwLjAxMTI2MSwgMC4wMTEyOTUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IEFORDNYMiAqCi0gKiAtLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKEFORDNYMikgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjEzMDY5MTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjI5NTY4OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYyOTU2ODsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2MjgyMTY7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjI2LCAwLjAwMDIyNiwgMC4wMDAyMjYsIDAuMDAwMjI2LCAwLjAwMDIyNiwgMC4wMDAyMjYsIDAuMDAwMjI2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjI3LCAwLjAwMDIyNywgMC4wMDAyMjcsIDAuMDAwMjI3LCAwLjAwMDIyNywgMC4wMDAyMjcsIDAuMDAwMjI3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2NDUwOTU7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjQ1MDk1OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDY0Mzk4MzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyMjYsIDAuMDAwMjI2LCAwLjAwMDIyNiwgMC4wMDAyMjYsIDAuMDAwMjI2LCAwLjAwMDIyNiwgMC4wMDAyMjYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyMjcsIDAuMDAwMjI3LCAwLjAwMDIyNywgMC4wMDAyMjcsIDAuMDAwMjI3LCAwLjAwMDIyNywgMC4wMDAyMjciKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEMpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY0MDIzNTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2NDAxNzM7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjQwMjM1OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDEzOCwgMC4wMDAxMzgsIDAuMDAwMTM4LCAwLjAwMDEzOCwgMC4wMDAxMzgsIDAuMDAwMTM4LCAwLjAwMDEzOCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDI1NywgMC4wMDAyNTcsIDAuMDAwMjU3LCAwLjAwMDI1NywgMC4wMDAyNTcsIDAuMDAwMjU3LCAwLjAwMDI1NyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjUyMzExOTsKLSAgICBmdW5jdGlvbiA6ICIoKEEgQikgQykiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwODQxOCwgMC4yMTU4OTMsIDAuMjk3MzMyLCAwLjM5ODk5NSwgMC41MDA2MjksIDAuNjAyNDE2LCAwLjcwMzkyOSIsIFwKLSAgICAgICAgICAiMC4xMTY0NCwgMC4yMjQzNTUsIDAuMzA1ODAxLCAwLjQwNzQ2NSwgMC41MDkxMDIsIDAuNjEwODc3LCAwLjcxMjQiLCBcCi0gICAgICAgICAgIjAuMTI1Njk1LCAwLjIzMzQ4MywgMC4zMTQ5NzUsIDAuNDE2NjM2LCAwLjUxODMxNSwgMC42MjAwMzcsIDAuNzIxNTY0IiwgXAotICAgICAgICAgICIwLjEzNDY1MywgMC4yNDIzMjksIDAuMzIzNzcsIDAuNDI1NDMzLCAwLjUyNzEwNCwgMC42Mjg4MDUsIDAuNzMwNDIxIiwgXAotICAgICAgICAgICIwLjE0MzQsIDAuMjUxMDM1LCAwLjMzMjQ3MSwgMC40MzQxNDMsIDAuNTM1ODAxLCAwLjYzNzUyMiwgMC43MzkxMjQiLCBcCi0gICAgICAgICAgIjAuMTU2Njg3LCAwLjI2NDY1NCwgMC4zNDYwNjgsIDAuNDQ3NzM3LCAwLjU0OTM4OCwgMC42NTExMjIsIDAuNzUyNzAzIiwgXAotICAgICAgICAgICIwLjE2NzQ3NywgMC4yNzU2MywgMC4zNTcwNzgsIDAuNDU4NzM0LCAwLjU2MDQyNCwgMC42NjIxOCwgMC43NjM2OSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjU3MTIsIDAuMjY1NjU4LCAwLjQzMDc3LCAwLjYzOTI5NiwgMC44NDc0MzIsIDEuMDU2MTIsIDEuMjY4MjIiLCBcCi0gICAgICAgICAgIjAuMDY1OTkyLCAwLjI2NTQ4NCwgMC40MzA4MTQsIDAuNjM5MjYsIDAuODQ3NDY2LCAxLjA1NjIxLCAxLjI2ODIiLCBcCi0gICAgICAgICAgIjAuMDY1NzQzLCAwLjI2NTUwNywgMC40MzA0MzMsIDAuNjM5MjM2LCAwLjg0ODc2NiwgMS4wNTYyMSwgMS4yNjgxNyIsIFwKLSAgICAgICAgICAiMC4wNjU2NDUsIDAuMjY1NDkyLCAwLjQzMDQ3MSwgMC42MzkxODgsIDAuODQ3NTU0LCAxLjA1ODUxLCAxLjI2NzQ5IiwgXAotICAgICAgICAgICIwLjA2NTgxMSwgMC4yNjU1MTcsIDAuNDMwNDYzLCAwLjYzOTE5OSwgMC44NDc2MDgsIDEuMDU4NTMsIDEuMjY3NDQiLCBcCi0gICAgICAgICAgIjAuMDY2NzU1LCAwLjI2NTgwMSwgMC40MzA4NTYsIDAuNjM5MTk1LCAwLjg0NzUwOSwgMS4wNTYyMSwgMS4yNjczNSIsIFwKLSAgICAgICAgICAiMC4wNjgwNjgsIDAuMjY2MTU4LCAwLjQzMTA1OCwgMC42Mzg3MDEsIDAuODQ4NywgMS4wNTYwNiwgMS4yNjgwMSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjI0NDEsIDAuMTY2ODM4LCAwLjI0OTY5MSwgMC4zNTMxNjksIDAuNDU2NjEyLCAwLjU2MDAyOSwgMC42NjM0MzkiLCBcCi0gICAgICAgICAgIjAuMDcyMjcyLCAwLjE3NjcsIDAuMjU5NTM2LCAwLjM2Mjk4NCwgMC40NjY0MTksIDAuNTY5ODkyLCAwLjY3MzI4MiIsIFwKLSAgICAgICAgICAiMC4wODQ2MjUsIDAuMTg5MDQyLCAwLjI3MTkxMywgMC4zNzUzNjMsIDAuNDc4ODEyLCAwLjU4MjI0MiwgMC42ODU2NjkiLCBcCi0gICAgICAgICAgIjAuMDk2MzU0LCAwLjIwMDc3NiwgMC4yODM2NTcsIDAuMzg3MTAzLCAwLjQ5MDU1NiwgMC41OTM5ODUsIDAuNjk3NDY3IiwgXAotICAgICAgICAgICIwLjEwNjg2LCAwLjIxMTI5NiwgMC4yOTQxMzksIDAuMzk3NjI0LCAwLjUwMTExOSwgMC42MDQ0OTUsIDAuNzA3OTE3IiwgXAotICAgICAgICAgICIwLjEyMTI2NywgMC4yMjU5NjEsIDAuMzA4Nzk2LCAwLjQxMjI1NywgMC41MTU2ODgsIDAuNjE5MTE0LCAwLjcyMjU0NCIsIFwKLSAgICAgICAgICAiMC4xMzIyMjYsIDAuMjM2OTU5LCAwLjMxOTc4NywgMC40MjMyNTMsIDAuNTI2NzM3LCAwLjYzMDE0NiwgMC43MzM1NzYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDUyNDY4LCAwLjI1ODc0OCwgMC40MjYxNjksIDAuNjM1ODE2LCAwLjg0NDQyNCwgMS4wNTQzMywgMS4yNjU3NiIsIFwKLSAgICAgICAgICAiMC4wNTI0NDYsIDAuMjU4OTM2LCAwLjQyNjIzNCwgMC42MzYwNTEsIDAuODQ2MDY1LCAxLjA1NTUsIDEuMjY1NzMiLCBcCi0gICAgICAgICAgIjAuMDUyNTUxLCAwLjI1ODg3LCAwLjQyNjIzOSwgMC42MzYwOTcsIDAuODQ1MzQ4LCAxLjA1NTg2LCAxLjI2NTc4IiwgXAotICAgICAgICAgICIwLjA1Mjg5MSwgMC4yNTg5MTMsIDAuNDI2MTczLCAwLjYzNjE0NSwgMC44NDUzNzksIDEuMDU1OTEsIDEuMjY1MTciLCBcCi0gICAgICAgICAgIjAuMDUzODg5LCAwLjI1OTA2OSwgMC40MjYzMzIsIDAuNjM1OTg2LCAwLjg0NTQ4MiwgMS4wNTUyLCAxLjI2NTc4IiwgXAotICAgICAgICAgICIwLjA1NTQ1OSwgMC4yNTkyODEsIDAuNDI1ODY0LCAwLjYzNTExMywgMC44NDU4ODUsIDEuMDU1ODYsIDEuMjY1NzciLCBcCi0gICAgICAgICAgIjAuMDU2OTAzLCAwLjI1OTE5OSwgMC40MjYwODksIDAuNjM1OTY0LCAwLjg0NTUxOSwgMS4wNTU0MSwgMS4yNjU0OCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDU3NTMsIDAuMjEzMzMsIDAuMjk0NzY3LCAwLjM5NjQzNCwgMC40OTgwNjUsIDAuNTk5ODY3LCAwLjcwMTM3NSIsIFwKLSAgICAgICAgICAiMC4xMTM5MTEsIDAuMjIxNjk3LCAwLjMwMzEyOSwgMC40MDQ3OTIsIDAuNTA2NDQ3LCAwLjYwODE3NywgMC43MDk4MTciLCBcCi0gICAgICAgICAgIjAuMTI0NDU1LCAwLjIzMjE2MiwgMC4zMTM2LCAwLjQxNTI2OSwgMC41MTY5MjMsIDAuNjE4NjYxLCAwLjcyMDIxNiIsIFwKLSAgICAgICAgICAiMC4xMzUwMjEsIDAuMjQyNjc5LCAwLjMyNDA5OCwgMC40MjU3NywgMC41Mjc0NSwgMC42MjkxMzUsIDAuNzMwODQ0IiwgXAotICAgICAgICAgICIwLjE0NTI0NSwgMC4yNTI4NjgsIDAuMzM0MzA5LCAwLjQzNTk4MSwgMC41Mzc2MiwgMC42MzkzODYsIDAuNzQwOTUzIiwgXAotICAgICAgICAgICIwLjE2MDczNiwgMC4yNjg3MjEsIDAuMzUwMTUyLCAwLjQ1MTgwOSwgMC41NTM1MjUsIDAuNjU1MTUyLCAwLjc1Njc2MyIsIFwKLSAgICAgICAgICAiMC4xNzM0MTcsIDAuMjgxNDkyLCAwLjM2MjkyNywgMC40NjQ3MDQsIDAuNTY2MzQ3LCAwLjY2ODEwOSwgMC43Njk4ODgiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY1ODMyLCAwLjI2NTYzNCwgMC40MzA3OTEsIDAuNjM5Mjk4LCAwLjg0ODIwMiwgMS4wNTYwNywgMS4yNjgyMiIsIFwKLSAgICAgICAgICAiMC4wNjYxNzcsIDAuMjY1NjAzLCAwLjQzMDgxNywgMC42MzkyMiwgMC44NDc2MDcsIDEuMDU2MjEsIDEuMjY4MzgiLCBcCi0gICAgICAgICAgIjAuMDY1OCwgMC4yNjU1NDMsIDAuNDMwNzc4LCAwLjYzOTIyMSwgMC44NDc1ODUsIDEuMDU2MjEsIDEuMjY3NTMiLCBcCi0gICAgICAgICAgIjAuMDY1NjIzLCAwLjI2NTQ3NSwgMC40MzA3ODQsIDAuNjM5MTg4LCAwLjg0NzQ4MiwgMS4wNTg0OCwgMS4yNjU1NyIsIFwKLSAgICAgICAgICAiMC4wNjU3ODcsIDAuMjY1NTM0LCAwLjQzMDQ0NiwgMC42MzkxNTcsIDAuODQ4NTEzLCAxLjA1NjIxLCAxLjI2NzQ5IiwgXAotICAgICAgICAgICIwLjA2Njg1NywgMC4yNjU4MjUsIDAuNDMwODU3LCAwLjYzOTEzNiwgMC44NDg2ODgsIDEuMDU4MjYsIDEuMjY3OTgiLCBcCi0gICAgICAgICAgIjAuMDY3OTIxLCAwLjI2NjE4LCAwLjQzMTExOCwgMC42MzkzMzcsIDAuODQ3NDc4LCAxLjA1NjI1LCAxLjI2NTg5Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2MDgzNSwgMC4xNjUwNzksIDAuMjQ3ODg5LCAwLjM1MTMxOCwgMC40NTQ3MzksIDAuNTU4MTYxLCAwLjY2MTU3OCIsIFwKLSAgICAgICAgICAiMC4wNzA2NjgsIDAuMTc0OTA1LCAwLjI1NzczMiwgMC4zNjExNDIsIDAuNDY0NTY3LCAwLjU2Nzk5MywgMC42NzE0MzciLCBcCi0gICAgICAgICAgIjAuMDgyOTA0LCAwLjE4NzE5NSwgMC4yNzAwMTUsIDAuMzczNDQzLCAwLjQ3NjkxNiwgMC41ODAzNDcsIDAuNjgzNzI2IiwgXAotICAgICAgICAgICIwLjA5NDM3NCwgMC4xOTg2NzIsIDAuMjgxNTEyLCAwLjM4NDkzMSwgMC40ODgzNjUsIDAuNTkxNzg4LCAwLjY5NTIxMyIsIFwKLSAgICAgICAgICAiMC4xMDQ1MjgsIDAuMjA4ODkyLCAwLjI5MTcyNCwgMC4zOTUxNjMsIDAuNDk4NTg0LCAwLjYwMjAzNywgMC43MDU0MzciLCBcCi0gICAgICAgICAgIjAuMTE4NDg0LCAwLjIyMzEzMSwgMC4zMDU5MDMsIDAuNDA5MzUzLCAwLjUxMjc5MywgMC42MTYyMDksIDAuNzE5NjIxIiwgXAotICAgICAgICAgICIwLjEyOTc2NiwgMC4yMzQxNjksIDAuMzE2OTU3LCAwLjQyMDM4MiwgMC41MjM4MjUsIDAuNjI3MjQ1LCAwLjczMDY2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1MjE1NiwgMC4yNTg0NzEsIDAuNDI2MTc4LCAwLjYzNjEwOCwgMC44NDU2MzUsIDEuMDU0MDYsIDEuMjYzNjMiLCBcCi0gICAgICAgICAgIjAuMDUyMTczLCAwLjI1ODY1LCAwLjQyNjExOSwgMC42MzYwMTQsIDAuODQ1NTAxLCAxLjA1NDEzLCAxLjI2NTkxIiwgXAotICAgICAgICAgICIwLjA1MjI2NiwgMC4yNTg1MDUsIDAuNDI2MTYzLCAwLjYzNjAyMiwgMC44NDU4OSwgMS4wNTU4MiwgMS4yNjM3MiIsIFwKLSAgICAgICAgICAiMC4wNTI3NTIsIDAuMjU4Njg1LCAwLjQyNjEyNSwgMC42MzYwMzksIDAuODQ1MTYzLCAxLjA1NTQsIDEuMjYzNTciLCBcCi0gICAgICAgICAgIjAuMDUzNjY1LCAwLjI1ODM5MiwgMC40MjU2MjksIDAuNjM2MDk3LCAwLjg0NTg4LCAxLjA1NDgsIDEuMjYzNTUiLCBcCi0gICAgICAgICAgIjAuMDU1NDU5LCAwLjI1ODcwMiwgMC40MjYyNjYsIDAuNjM1MDQ2LCAwLjg0NTk2MiwgMS4wNTU4MiwgMS4yNjU2NiIsIFwKLSAgICAgICAgICAiMC4wNTY3MTQsIDAuMjU5MjQ3LCAwLjQyNTk0NiwgMC42MzUwNTUsIDAuODQ0NTEsIDEuMDU1NjcsIDEuMjY1NzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTAxMTU0LCAwLjIwODgyOSwgMC4yOTAyNzUsIDAuMzkxOTY5LCAwLjQ5MzYwMSwgMC41OTUzODUsIDAuNjk2ODkyIiwgXAotICAgICAgICAgICIwLjEwOTMzNSwgMC4yMTcwOCwgMC4yOTg1MjQsIDAuNDAwMjA1LCAwLjUwMTg0NCwgMC42MDM0ODQsIDAuNzA1MTQ4IiwgXAotICAgICAgICAgICIwLjEyMDIwMiwgMC4yMjgsIDAuMzA5NTI1LCAwLjQxMTI0MywgMC41MTI4OTEsIDAuNjE0NzI1LCAwLjcxNjE2NCIsIFwKLSAgICAgICAgICAiMC4xMzE0ODYsIDAuMjM5MjEsIDAuMzIwNjUyLCAwLjQyMjMyNywgMC41MjM5OTQsIDAuNjI1NzEyLCAwLjcyNzMxNSIsIFwKLSAgICAgICAgICAiMC4xNDIzMzQsIDAuMjUwMDg2LCAwLjMzMTUyLCAwLjQzMzE5OSwgMC41MzQ4NzMsIDAuNjM2NTcyLCAwLjczODIzMyIsIFwKLSAgICAgICAgICAiMC4xNTk0NTYsIDAuMjY3NDYsIDAuMzQ4ODg1LCAwLjQ1MDU1OSwgMC41NTIxOTQsIDAuNjUzOTczLCAwLjc1NTUxMiIsIFwKLSAgICAgICAgICAiMC4xNzM0MywgMC4yODA4NjcsIDAuMzYyMzMzLCAwLjQ2Mzk3MSwgMC41NjU1ODcsIDAuNjY3MzE1LCAwLjc2ODkxMiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjU3OSwgMC4yNjU1OTksIDAuNDMwNzY3LCAwLjYzOTM2NSwgMC44NDg3MiwgMS4wNTYwNSwgMS4yNjgyMiIsIFwKLSAgICAgICAgICAiMC4wNjU2OTcsIDAuMjY1NTQ5LCAwLjQzMDUwMSwgMC42MzgwMzQsIDAuODQ4NjI2LCAxLjA1ODMxLCAxLjI2ODE4IiwgXAotICAgICAgICAgICIwLjA2NTY0MSwgMC4yNjU1MTcsIDAuNDMwNzkzLCAwLjYzOTQyNCwgMC44NDYxMTIsIDEuMDU2NDksIDEuMjY3NDkiLCBcCi0gICAgICAgICAgIjAuMDY1NzIzLCAwLjI2NTQ5NCwgMC40MzA0MjYsIDAuNjM5MTg2LCAwLjg0NzYzNSwgMS4wNTg1MiwgMS4yNjc0MyIsIFwKLSAgICAgICAgICAiMC4wNjY2MzEsIDAuMjY1NjY5LCAwLjQzMDgxLCAwLjYzOTIzNCwgMC44NDc1NTksIDEuMDU4MzIsIDEuMjY4MzIiLCBcCi0gICAgICAgICAgIjAuMDY3NjI5LCAwLjI2NTk0MSwgMC40MzA5MTgsIDAuNjM5MjQyLCAwLjg0NzQ0NCwgMS4wNTYyMSwgMS4yNjc0IiwgXAotICAgICAgICAgICIwLjA2ODQ3LCAwLjI2NjU0LCAwLjQzMTI5MywgMC42Mzk0NTgsIDAuODQ4NDQ5LCAxLjA1NjQ4LCAxLjI2ODAxIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1ODk1NywgMC4xNjMwODQsIDAuMjQ1ODksIDAuMzQ5MzAyLCAwLjQ1MjcyLCAwLjU1NjE3LCAwLjY1OTYwNSIsIFwKLSAgICAgICAgICAiMC4wNjg4NzEsIDAuMTcyOTg4LCAwLjI1NTc3MSwgMC4zNTkzODcsIDAuNDYyNzI3LCAwLjU2NjA4OSwgMC42Njk3MTciLCBcCi0gICAgICAgICAgIjAuMDgwODgzLCAwLjE4NTAzOSwgMC4yNjc4NDYsIDAuMzcxMzQyLCAwLjQ3NDg4NSwgMC41NzgzMDMsIDAuNjgxNjYyIiwgXAotICAgICAgICAgICIwLjA5MjE5NCwgMC4xOTYyOTYsIDAuMjc5MTMsIDAuMzgyNjQ0LCAwLjQ4NjExNSwgMC41ODk1MSwgMC42OTI5ODgiLCBcCi0gICAgICAgICAgIjAuMTAxOTQ3LCAwLjIwNjIxNywgMC4yODkwMzQsIDAuMzkyNTAyLCAwLjQ5NjA5NiwgMC41OTk1MTksIDAuNzAyODYxIiwgXAotICAgICAgICAgICIwLjExNTM4NCwgMC4yMTkyNzgsIDAuMzAyMDUxLCAwLjQwNTYzMywgMC41MDg5NzgsIDAuNjEyMjIzLCAwLjcxNTc3MyIsIFwKLSAgICAgICAgICAiMC4xMjYyMDQsIDAuMjMwMDMyLCAwLjMxMjc2MiwgMC40MTYyNTIsIDAuNTE5NjY4LCAwLjYyMzE2OCwgMC43MjY3ODEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDUxOTUsIDAuMjU4NDUxLCAwLjQyNDkyMiwgMC42MzU1MDUsIDAuODQ1Mzk3LCAxLjA1NTg5LCAxLjI2NTk1IiwgXAotICAgICAgICAgICIwLjA1MTk3MywgMC4yNTgwNjcsIDAuNDI2MjA5LCAwLjYzNDkyLCAwLjg0NDcwNywgMS4wNTU2NywgMS4yNjMzIiwgXAotICAgICAgICAgICIwLjA1MjMwNSwgMC4yNTgxMzcsIDAuNDI1MTMzLCAwLjYzNDE3NiwgMC44NDUxMjksIDEuMDU0MDIsIDEuMjYyNTIiLCBcCi0gICAgICAgICAgIjAuMDUyODc2LCAwLjI1ODU2LCAwLjQyNDk5LCAwLjYzNDczOCwgMC44NDQyMywgMS4wNTI4OCwgMS4yNjIxMyIsIFwKLSAgICAgICAgICAiMC4wNTQwMjIsIDAuMjU4NzQ3LCAwLjQyNTA0MywgMC42MzQyNzksIDAuODQ0MTYsIDEuMDUzNTMsIDEuMjYyMzciLCBcCi0gICAgICAgICAgIjAuMDU1NTM5LCAwLjI1ODc0MSwgMC40MjY0MTEsIDAuNjM0Mzk0LCAwLjg0Mzc2NiwgMS4wNTQ0MSwgMS4yNjI4NCIsIFwKLSAgICAgICAgICAiMC4wNTY5NjQsIDAuMjU5MDY1LCAwLjQyNjQxOCwgMC42MzQ0MTUsIDAuODQ2MTcyLCAxLjA1Mjg5LCAxLjI2Mzk0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyNDIxLCAwLjAwMjQ2MiwgMC4wMDI0NjcsIDAuMDAyNDY4LCAwLjAwMjQ3MSwgMC4wMDI0NzIsIDAuMDAyNDczIiwgXAotICAgICAgICAgICIwLjAwMjM5NiwgMC4wMDI0NDMsIDAuMDAyNDQzLCAwLjAwMjQ0OCwgMC4wMDI0NTMsIDAuMDAyNDUsIDAuMDAyNDQ4IiwgXAotICAgICAgICAgICIwLjAwMjM3NCwgMC4wMDI0MjUsIDAuMDAyNDMsIDAuMDAyNDM1LCAwLjAwMjQzNiwgMC4wMDI0MzYsIDAuMDAyNDM4IiwgXAotICAgICAgICAgICIwLjAwMjM2NywgMC4wMDI0MTgsIDAuMDAyNDI1LCAwLjAwMjQyOSwgMC4wMDI0MywgMC4wMDI0MzIsIDAuMDAyNDMzIiwgXAotICAgICAgICAgICIwLjAwMjM2MywgMC4wMDI0MTQsIDAuMDAyNDIyLCAwLjAwMjQyNiwgMC4wMDI0MjgsIDAuMDAyNDI5LCAwLjAwMjQzIiwgXAotICAgICAgICAgICIwLjAwMjM2OSwgMC4wMDI0MTUsIDAuMDAyNDIyLCAwLjAwMjQyNiwgMC4wMDI0MjcsIDAuMDAyNDI5LCAwLjAwMjQzMSIsIFwKLSAgICAgICAgICAiMC4wMDIzNjcsIDAuMDAyNDEyLCAwLjAwMjQyMywgMC4wMDI0MjcsIDAuMDAyNDI4LCAwLjAwMjQzLCAwLjAwMjQyOSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzk4MiwgMC4wMDQwNDEsIDAuMDA0MDQ4LCAwLjAwNDA1MiwgMC4wMDQwNTQsIDAuMDA0MDU1LCAwLjAwNDA1NSIsIFwKLSAgICAgICAgICAiMC4wMDM5NiwgMC4wMDQwMjYsIDAuMDA0MDM1LCAwLjAwNDAzOSwgMC4wMDQwNDEsIDAuMDA0MDQzLCAwLjAwNDA0MyIsIFwKLSAgICAgICAgICAiMC4wMDM5NDYsIDAuMDA0MDE5LCAwLjAwNDAzLCAwLjAwNDAzNiwgMC4wMDQwMzksIDAuMDA0MDQxLCAwLjAwNDA0MiIsIFwKLSAgICAgICAgICAiMC4wMDM5MzYsIDAuMDA0MDE2LCAwLjAwNDAyOSwgMC4wMDQwMzcsIDAuMDA0MDQsIDAuMDA0MDQzLCAwLjAwNDA0NCIsIFwKLSAgICAgICAgICAiMC4wMDM5MzYsIDAuMDA0MDE2LCAwLjAwNDAzMSwgMC4wMDQwMzksIDAuMDA0MDQzLCAwLjAwNDA0NiwgMC4wMDQwNDgiLCBcCi0gICAgICAgICAgIjAuMDAzOTQzLCAwLjAwNDAyMywgMC4wMDQwMzksIDAuMDA0MDQ4LCAwLjAwNDA1NCwgMC4wMDQwNTcsIDAuMDA0MDU5IiwgXAotICAgICAgICAgICIwLjAwMzk1NCwgMC4wMDQwMzQsIDAuMDA0MDUyLCAwLjAwNDA2MiwgMC4wMDQwNjgsIDAuMDA0MDcyLCAwLjAwNDA3NCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjQyMSwgMC4wMDI0NjksIDAuMDAyNDc2LCAwLjAwMjQ3NiwgMC4wMDI0ODIsIDAuMDAyNDgzLCAwLjAwMjQ4NCIsIFwKLSAgICAgICAgICAiMC4wMDIzOTYsIDAuMDAyNDQ2LCAwLjAwMjQ1MiwgMC4wMDI0NTcsIDAuMDAyNDU4LCAwLjAwMjQ2LCAwLjAwMjQ2MSIsIFwKLSAgICAgICAgICAiMC4wMDIzNzUsIDAuMDAyNDI5LCAwLjAwMjQzOSwgMC4wMDI0NDQsIDAuMDAyNDQ1LCAwLjAwMjQ0NywgMC4wMDI0NDgiLCBcCi0gICAgICAgICAgIjAuMDAyMzc0LCAwLjAwMjQyNSwgMC4wMDI0MzQsIDAuMDAyNDM4LCAwLjAwMjQ0MiwgMC4wMDI0NDIsIDAuMDAyNDQ0IiwgXAotICAgICAgICAgICIwLjAwMjM2NywgMC4wMDI0MjEsIDAuMDAyNDMxLCAwLjAwMjQzNSwgMC4wMDI0MzksIDAuMDAyNDQxLCAwLjAwMjQ0MyIsIFwKLSAgICAgICAgICAiMC4wMDIzOTMsIDAuMDAyNDI3LCAwLjAwMjQzNSwgMC4wMDI0MzgsIDAuMDAyNDQyLCAwLjAwMjQ0MywgMC4wMDI0NDUiLCBcCi0gICAgICAgICAgIjAuMDAyMzkyLCAwLjAwMjQyNSwgMC4wMDI0MzYsIDAuMDAyNDQxLCAwLjAwMjQ0NCwgMC4wMDI0NDcsIDAuMDAyNDQ5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzNzM5LCAwLjAwMzgwOSwgMC4wMDM4MTYsIDAuMDAzODIxLCAwLjAwMzgyMywgMC4wMDM4MjQsIDAuMDAzODI1IiwgXAotICAgICAgICAgICIwLjAwMzcxMywgMC4wMDM3OTIsIDAuMDAzODAyLCAwLjAwMzgwNywgMC4wMDM4MSwgMC4wMDM4MTEsIDAuMDAzODEyIiwgXAotICAgICAgICAgICIwLjAwMzY5MiwgMC4wMDM3ODEsIDAuMDAzNzkzLCAwLjAwMzgsIDAuMDAzODA0LCAwLjAwMzgwNiwgMC4wMDM4MDciLCBcCi0gICAgICAgICAgIjAuMDAzNjc4LCAwLjAwMzc3NSwgMC4wMDM3OSwgMC4wMDM3OTksIDAuMDAzODA0LCAwLjAwMzgwNywgMC4wMDM4MDkiLCBcCi0gICAgICAgICAgIjAuMDAzNjc0LCAwLjAwMzc3MywgMC4wMDM3OTEsIDAuMDAzODAxLCAwLjAwMzgwNywgMC4wMDM4MSwgMC4wMDM4MTIiLCBcCi0gICAgICAgICAgIjAuMDAzNjgsIDAuMDAzNzc3LCAwLjAwMzc5OCwgMC4wMDM4MDksIDAuMDAzODE2LCAwLjAwMzgyLCAwLjAwMzgyMyIsIFwKLSAgICAgICAgICAiMC4wMDM2ODEsIDAuMDAzNzgxLCAwLjAwMzgwMSwgMC4wMDM4MTIsIDAuMDAzODE5LCAwLjAwMzgyMywgMC4wMDM4MjYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI0MTksIDAuMDAyNDczLCAwLjAwMjQ4MiwgMC4wMDI0ODYsIDAuMDAyNDg5LCAwLjAwMjQ5LCAwLjAwMjQ4OCIsIFwKLSAgICAgICAgICAiMC4wMDIzODksIDAuMDAyNDQ3LCAwLjAwMjQ1NywgMC4wMDI0NjIsIDAuMDAyNDY0LCAwLjAwMjQ2NiwgMC4wMDI0NjciLCBcCi0gICAgICAgICAgIjAuMDAyMzc1LCAwLjAwMjQzNSwgMC4wMDI0NDYsIDAuMDAyNDUyLCAwLjAwMjQ1NSwgMC4wMDI0NTYsIDAuMDAyNDU4IiwgXAotICAgICAgICAgICIwLjAwMjM4MiwgMC4wMDI0MzYsIDAuMDAyNDQ3LCAwLjAwMjQ1MywgMC4wMDI0NTcsIDAuMDAyNDU5LCAwLjAwMjQ2IiwgXAotICAgICAgICAgICIwLjAwMjM4NiwgMC4wMDI0NCwgMC4wMDI0NTIsIDAuMDAyNDU5LCAwLjAwMjQ2MywgMC4wMDI0NjUsIDAuMDAyNDY3IiwgXAotICAgICAgICAgICIwLjAwMjQzNCwgMC4wMDI0NjIsIDAuMDAyNDczLCAwLjAwMjQ3NywgMC4wMDI0ODEsIDAuMDAyNDgzLCAwLjAwMjQ4NiIsIFwKLSAgICAgICAgICAiMC4wMDI0MjYsIDAuMDAyNDc1LCAwLjAwMjQ4NiwgMC4wMDI0OTEsIDAuMDAyNDk4LCAwLjAwMjQ5OSwgMC4wMDI0OTkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDM0ODcsIDAuMDAzNTU0LCAwLjAwMzU2MSwgMC4wMDM1NjUsIDAuMDAzNTY3LCAwLjAwMzU2OCwgMC4wMDM1NjkiLCBcCi0gICAgICAgICAgIjAuMDAzNDYyLCAwLjAwMzUzOCwgMC4wMDM1NDcsIDAuMDAzNTUyLCAwLjAwMzU1NCwgMC4wMDM1NTYsIDAuMDAzNTU3IiwgXAotICAgICAgICAgICIwLjAwMzQzNSwgMC4wMDM1MjMsIDAuMDAzNTM2LCAwLjAwMzU0MiwgMC4wMDM1NDYsIDAuMDAzNTQ4LCAwLjAwMzU0OSIsIFwKLSAgICAgICAgICAiMC4wMDM0MzIsIDAuMDAzNTE4LCAwLjAwMzUzMiwgMC4wMDM1MzksIDAuMDAzNTQzLCAwLjAwMzU0NiwgMC4wMDM1NDciLCBcCi0gICAgICAgICAgIjAuMDAzNDI0LCAwLjAwMzUxNCwgMC4wMDM1MywgMC4wMDM1NCwgMC4wMDM1NDQsIDAuMDAzNTQ3LCAwLjAwMzU0OSIsIFwKLSAgICAgICAgICAiMC4wMDM0MTgsIDAuMDAzNTEzLCAwLjAwMzUzNCwgMC4wMDM1NDYsIDAuMDAzNTUyLCAwLjAwMzU1NywgMC4wMDM1NTkiLCBcCi0gICAgICAgICAgIjAuMDAzNDIsIDAuMDAzNTEzLCAwLjAwMzUzMywgMC4wMDM1NDUsIDAuMDAzNTUyLCAwLjAwMzU1NiwgMC4wMDM1NTkiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IEFORDRYMiAqCi0gKiAtLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKEFORDRYMikgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjE0NzgxOTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjA2MzczOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYwNjM3MzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2MDQ1NTc7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjI2LCAwLjAwMDIyNiwgMC4wMDAyMjYsIDAuMDAwMjI2LCAwLjAwMDIyNiwgMC4wMDAyMjYsIDAuMDAwMjI2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjI3LCAwLjAwMDIyNywgMC4wMDAyMjcsIDAuMDAwMjI3LCAwLjAwMDIyNywgMC4wMDAyMjcsIDAuMDAwMjI3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2NDA4MTQ7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjQwODE0OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDYzOTIyODsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyMjYsIDAuMDAwMjI2LCAwLjAwMDIyNiwgMC4wMDAyMjYsIDAuMDAwMjI2LCAwLjAwMDIyNiwgMC4wMDAyMjYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyMjcsIDAuMDAwMjI3LCAwLjAwMDIyNywgMC4wMDAyMjcsIDAuMDAwMjI2LCAwLjAwMDIyNywgMC4wMDAyMjciKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEMpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY2MzQzNDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2NjM0MzQ7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjYyMzUyOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDIyNiwgMC4wMDAyMjYsIDAuMDAwMjI2LCAwLjAwMDIyNiwgMC4wMDAyMjYsIDAuMDAwMjI2LCAwLjAwMDIyNiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDIyNywgMC4wMDAyMjcsIDAuMDAwMjI3LCAwLjAwMDIyNywgMC4wMDAyMjcsIDAuMDAwMjI3LCAwLjAwMDIyNyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjM3NzY7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjM3Mzc3OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDYzNzc2OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDE2NSwgMC4wMDAxNjUsIDAuMDAwMTY0LCAwLjAwMDE2NCwgMC4wMDAxNjQsIDAuMDAwMTY0LCAwLjAwMDE2NCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDI1NywgMC4wMDAyNTcsIDAuMDAwMjU3LCAwLjAwMDI1NywgMC4wMDAyNTcsIDAuMDAwMjU5LCAwLjAwMDI1NyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjUyMjIwMjsKLSAgICBmdW5jdGlvbiA6ICIoKChBIEIpIEMpIEQpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNDQ2ODUsIDAuMjU4NTc3LCAwLjM0MDU1OCwgMC40NDIyNjksIDAuNTQzOTMyLCAwLjY0NTU2NywgMC43NDcxOTUiLCBcCi0gICAgICAgICAgIjAuMTUyNjQyLCAwLjI2Njc2MywgMC4zNDg3NjQsIDAuNDUwNDY4LCAwLjU1MjEyNywgMC42NTM3OTMsIDAuNzU1NDA3IiwgXAotICAgICAgICAgICIwLjE2MTI1NSwgMC4yNzUzNDgsIDAuMzU3Mzc0LCAwLjQ1OTA3OSwgMC41NjA3NDMsIDAuNjYyMzc0LCAwLjc2NDExMiIsIFwKLSAgICAgICAgICAiMC4xNjkzMywgMC4yODMzODMsIDAuMzY1NDE0LCAwLjQ2NzEzNiwgMC41Njg4MDEsIDAuNjcwNDM3LCAwLjc3MjE4NSIsIFwKLSAgICAgICAgICAiMC4xNzcxNTQsIDAuMjkxMTgxLCAwLjM3MzEyMiwgMC40NzQ4NDEsIDAuNTc2NTAzLCAwLjY3ODE0NCwgMC43Nzk5ODUiLCBcCi0gICAgICAgICAgIjAuMTg4OTE2LCAwLjMwMjkzMywgMC4zODQ4OTUsIDAuNDg2NjYsIDAuNTg4MywgMC42ODk5MzMsIDAuNzkxNjMiLCBcCi0gICAgICAgICAgIjAuMTk5MjQsIDAuMzEzNDExLCAwLjM5NTM0NiwgMC40OTcwODIsIDAuNTk4NzQ5LCAwLjcwMDQzNSwgMC44MDIwNzciKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc1NTg2LCAwLjI3Mzc3NywgMC40MzYzOTQsIDAuNjQzMzAyLCAwLjg1MTU5MSwgMS4wNjA1NCwgMS4yNjk4NCIsIFwKLSAgICAgICAgICAiMC4wNzU5MTksIDAuMjczNzIzLCAwLjQzNjM2NSwgMC42NDMyOCwgMC44NTE1NTgsIDEuMDU5MjksIDEuMjY5NDMiLCBcCi0gICAgICAgICAgIjAuMDc1NzU4LCAwLjI3MzU3MSwgMC40MzYzMDUsIDAuNjQzMjM2LCAwLjg1MTUzMiwgMS4wNjA0MywgMS4yNzAzMiIsIFwKLSAgICAgICAgICAiMC4wNzU2MjYsIDAuMjczNDkzLCAwLjQzNjI3LCAwLjY0MzIyMywgMC44NTE0OTQsIDEuMDYwNDEsIDEuMjY3OTgiLCBcCi0gICAgICAgICAgIjAuMDc1NDY4LCAwLjI3MzQ2MiwgMC40MzYxODcsIDAuNjQzMTc4LCAwLjg1MTQ1LCAxLjA2MDM3LCAxLjI2Nzg2IiwgXAotICAgICAgICAgICIwLjA3NjA1NSwgMC4yNzM1NzgsIDAuNDM2MzIxLCAwLjY0MzM5NywgMC44NTE0NzMsIDEuMDYwMzMsIDEuMjY4MzUiLCBcCi0gICAgICAgICAgIjAuMDc2MTk2LCAwLjI3MzgyNCwgMC40MzYzODQsIDAuNjQyNzY5LCAwLjg1MTQyOSwgMS4wNTg1MiwgMS4yNjg0NyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjcyNzYsIDAuMTcyMTM5LCAwLjI1NTA0NCwgMC4zNTg1NTYsIDAuNDYyMDQsIDAuNTY1NTEzLCAwLjY2ODk0MyIsIFwKLSAgICAgICAgICAiMC4wNzcxMzEsIDAuMTgxOTczLCAwLjI2NDg2OSwgMC4zNjg0MDcsIDAuNDcxOTAyLCAwLjU3NTMyOCwgMC42Nzg3NzQiLCBcCi0gICAgICAgICAgIjAuMDg5NTQ0LCAwLjE5NDM1MywgMC4yNzcyNjksIDAuMzgwODExLCAwLjQ4NDI3MiwgMC41ODc3MzYsIDAuNjkxMTgiLCBcCi0gICAgICAgICAgIjAuMTAxNjIzLCAwLjIwNjQxOSwgMC4yODkzMzksIDAuMzkyODYsIDAuNDk2MzMxLCAwLjU5OTc5NCwgMC43MDMyNzQiLCBcCi0gICAgICAgICAgIjAuMTEyNzQyLCAwLjIxNzYwOSwgMC4zMDA1MjMsIDAuNDA0MDUxLCAwLjUwNzUyMSwgMC42MTA5ODQsIDAuNzE0NDI5IiwgXAotICAgICAgICAgICIwLjEyODE2NywgMC4yMzMyMDcsIDAuMzE2MTA2LCAwLjQxOTY2NSwgMC41MjMxMTEsIDAuNjI2NTY0LCAwLjczMDA0NCIsIFwKLSAgICAgICAgICAiMC4xMzk4MTYsIDAuMjQ1MDkxLCAwLjMyNzk2NCwgMC40MzE1MTUsIDAuNTM0OTYzLCAwLjYzODQxMywgMC43NDE5MzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDUzODE3LCAwLjI1OTU2NCwgMC40MjY0MTQsIDAuNjM2MSwgMC44NDYxMiwgMS4wNTM5NiwgMS4yNjU3NyIsIFwKLSAgICAgICAgICAiMC4wNTM4NTksIDAuMjU5NjAzLCAwLjQyNjgzMSwgMC42MzYzMTksIDAuODQ1OTQ3LCAxLjA1NTk4LCAxLjI2NTc0IiwgXAotICAgICAgICAgICIwLjA1MzgxMywgMC4yNTk1NjcsIDAuNDI2MzM4LCAwLjYzNjMwMywgMC44NDUxNTUsIDEuMDU1OTYsIDEuMjY1ODIiLCBcCi0gICAgICAgICAgIjAuMDU0MDgsIDAuMjU5NTgyLCAwLjQyNjA4OSwgMC42MzY0MjcsIDAuODQ2MjcxLCAxLjA1NjA0LCAxLjI2NTYyIiwgXAotICAgICAgICAgICIwLjA1NDc0NywgMC4yNTk2MzksIDAuNDI2NDYyLCAwLjYzNjQ0MSwgMC44NDYyODUsIDEuMDU2MDcsIDEuMjY1OTQiLCBcCi0gICAgICAgICAgIjAuMDU2MzY3LCAwLjI1OTU4MiwgMC40MjY5OTYsIDAuNjM2MjU5LCAwLjg0NjI2NywgMS4wNTYxNSwgMS4yNjUwNSIsIFwKLSAgICAgICAgICAiMC4wNTc4NzMsIDAuMjYwMjA4LCAwLjQyNjU0NywgMC42MzU1NDUsIDAuODQ0NjU0LCAxLjA1NTgzLCAxLjI2NTI3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE0MTkyMiwgMC4yNTU3MjMsIDAuMzM3NywgMC40Mzk0MTgsIDAuNTQxMDgyLCAwLjY0MjcxNiwgMC43NDQ0NSIsIFwKLSAgICAgICAgICAiMC4xNDk3MTUsIDAuMjYzNjMzLCAwLjM0NTYwMSwgMC40NDczMjMsIDAuNTQ4OTg1LCAwLjY1MDYyOCwgMC43NTIyODUiLCBcCi0gICAgICAgICAgIjAuMTU4NTgxLCAwLjI3MjUzNiwgMC4zNTQ1MTIsIDAuNDU2MjQ5LCAwLjU1Nzk2NiwgMC42NTk1NjUsIDAuNzYxMjQiLCBcCi0gICAgICAgICAgIjAuMTY3NDk4LCAwLjI4MTQ4OSwgMC4zNjM1NjMsIDAuNDY1Mjg2LCAwLjU2Njk1MSwgMC42Njg3MDgsIDAuNzcwMjc2IiwgXAotICAgICAgICAgICIwLjE3NjMzNiwgMC4yOTAzMzQsIDAuMzcyMjgxLCAwLjQ3NDA1MSwgMC41NzU3MDcsIDAuNjc3MzQxLCAwLjc3OTA0MSIsIFwKLSAgICAgICAgICAiMC4xOTAwNjMsIDAuMzA0MDk1LCAwLjM4NjAzMSwgMC40ODc3NjMsIDAuNTg5NDcsIDAuNjkxMTUyLCAwLjc5Mjc2MiIsIFwKLSAgICAgICAgICAiMC4yMDE4MDUsIDAuMzE2MDQyLCAwLjM5Nzk4NiwgMC40OTk3MjMsIDAuNjAxMzkyLCAwLjcwMzExNywgMC44MDQ3MDkiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc1NjE0LCAwLjI3Mzc5NCwgMC40MzY0MDMsIDAuNjQzMjk1LCAwLjg1MTU5NCwgMS4wNjA1MiwgMS4yNjgwNCIsIFwKLSAgICAgICAgICAiMC4wNzU2MjUsIDAuMjczNzIzLCAwLjQzNTcyOCwgMC42NDMyNzYsIDAuODUxNTE0LCAxLjA2MDQzLCAxLjI2ODQxIiwgXAotICAgICAgICAgICIwLjA3NTY1OSwgMC4yNzM2NjUsIDAuNDM2MTEzLCAwLjY0MzI4NCwgMC44NTE4NDksIDEuMDYwNDIsIDEuMjY4NTMiLCBcCi0gICAgICAgICAgIjAuMDc1Njc0LCAwLjI3MzQ3NCwgMC40MzYyNTUsIDAuNjQzMjE4LCAwLjg1MTQ2NSwgMS4wNjA5NiwgMS4yNjg1NiIsIFwKLSAgICAgICAgICAiMC4wNzU0MjIsIDAuMjczMzc4LCAwLjQzNjEzNCwgMC42NDMzMjEsIDAuODUwNTI4LCAxLjA2MDQxLCAxLjI2ODM0IiwgXAotICAgICAgICAgICIwLjA3NjI0MSwgMC4yNzM2NTQsIDAuNDM2MzA2LCAwLjY0MjczNywgMC44NTE3MjgsIDEuMDYwNzMsIDEuMjY4NDQiLCBcCi0gICAgICAgICAgIjAuMDc2NTcxLCAwLjI3MzkwNiwgMC40MzY0MSwgMC42NDMyMywgMC44NTE0NDMsIDEuMDYwNzMsIDEuMjY4NDMiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY1Nzk1LCAwLjE3MDQwNywgMC4yNTMyNTYsIDAuMzU2NzI4LCAwLjQ2MDE2NCwgMC41NjM1OTYsIDAuNjY3MDQyIiwgXAotICAgICAgICAgICIwLjA3NTY4MSwgMC4xODAyODYsIDAuMjYzMTcxLCAwLjM2NjYzNCwgMC40NzAwOTEsIDAuNTczNTU2LCAwLjY3NjkzNiIsIFwKLSAgICAgICAgICAiMC4wODc5MTUsIDAuMTkyNTYsIDAuMjc1NDI0LCAwLjM3ODg5NywgMC40ODIzMzksIDAuNTg1Nzg0LCAwLjY4OTI5MiIsIFwKLSAgICAgICAgICAiMC4wOTk4NjQsIDAuMjA0NTIxLCAwLjI4NzM5MywgMC4zOTA5MDYsIDAuNDk0MzExLCAwLjU5NzgsIDAuNzAxMTk3IiwgXAotICAgICAgICAgICIwLjExMDY1NCwgMC4yMTUzNTIsIDAuMjk4MjE1LCAwLjQwMTcwNywgMC41MDUxNDQsIDAuNjA4NTg1LCAwLjcxMjAyNiIsIFwKLSAgICAgICAgICAiMC4xMjYxNTcsIDAuMjMxMDk1LCAwLjMxMzkzOSwgMC40MTc0MjUsIDAuNTIwODE0LCAwLjYyNDI0NSwgMC43Mjc2NzgiLCBcCi0gICAgICAgICAgIjAuMTM3NTcxLCAwLjI0MjY0NywgMC4zMjU0ODYsIDAuNDI4OTcsIDAuNTMyNDY5LCAwLjYzNTg2MiwgMC43MzkzOCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTMzNzgsIDAuMjU5MjE3LCAwLjQyNTc0MiwgMC42MzYyNDYsIDAuODQ2MjY1LCAxLjA1NjE2LCAxLjI2Mzk4IiwgXAotICAgICAgICAgICIwLjA1MzQyOCwgMC4yNTkyNDgsIDAuNDI1OTc3LCAwLjYzNTE4OSwgMC44NDQ4NjMsIDEuMDU1NzUsIDEuMjY1MDQiLCBcCi0gICAgICAgICAgIjAuMDUzNDM2LCAwLjI1OTIzNSwgMC40MjU4NjYsIDAuNjM2Mjg0LCAwLjg0NjI2NiwgMS4wNTU0LCAxLjI2NTYxIiwgXAotICAgICAgICAgICIwLjA1Mzc2NCwgMC4yNTkyNjgsIDAuNDI1OTM4LCAwLjYzNjA1NiwgMC44NDYyOTYsIDEuMDU1NjgsIDEuMjY1MjIiLCBcCi0gICAgICAgICAgIjAuMDU0NjU0LCAwLjI1OTM3LCAwLjQyNjI3OCwgMC42MzU4NTksIDAuODQ2MzExLCAxLjA1NjE5LCAxLjI2NTI4IiwgXAotICAgICAgICAgICIwLjA1NjE4MywgMC4yNTk0MDEsIDAuNDI2MDI0LCAwLjYzNjAzNSwgMC44NDYxMjQsIDEuMDU2MTUsIDEuMjY2MDgiLCBcCi0gICAgICAgICAgIjAuMDU3NzYsIDAuMjU5OTM3LCAwLjQyNjI2MiwgMC42MzYxNzIsIDAuODQ1ODgyLCAxLjA1NTk0LCAxLjI2Mzc0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEzNzM5NywgMC4yNTA5NjIsIDAuMzMyOTI2LCAwLjQzNDY0NiwgMC41MzYzMSwgMC42Mzc5NDMsIDAuNzM5NjIzIiwgXAotICAgICAgICAgICIwLjE0NDg0OSwgMC4yNTkwOTYsIDAuMzQxMDg0LCAwLjQ0Mjc5NiwgMC41NDQ0NiwgMC42NDYxMiwgMC43NDc3NTQiLCBcCi0gICAgICAgICAgIjAuMTU0OTk1LCAwLjI2OTAyMywgMC4zNTEwMSwgMC40NTI3MzEsIDAuNTU0Mzk4LCAwLjY1NjA2NywgMC43NTc3MjQiLCBcCi0gICAgICAgICAgIjAuMTY1MTQ5LCAwLjI3OTI3NiwgMC4zNjEyNTYsIDAuNDYyOTc3LCAwLjU2NDY4OSwgMC42NjYzMTQsIDAuNzY3OTc5IiwgXAotICAgICAgICAgICIwLjE3NTQ0NiwgMC4yODk0MjMsIDAuMzcxMzU5LCAwLjQ3MzA4OCwgMC41NzQ3NTUsIDAuNjc2NTE0LCAwLjc3ODA5MiIsIFwKLSAgICAgICAgICAiMC4xOTEzNjksIDAuMzA1MDcyLCAwLjM4NzAyMiwgMC40ODg3NDYsIDAuNTkwNDY5LCAwLjY5MjA5NSwgMC43OTM3NDgiLCBcCi0gICAgICAgICAgIjAuMjA0Njk2LCAwLjMxODkyNiwgMC40MDA4MzcsIDAuNTAyNTgxLCAwLjYwNDI1MSwgMC43MDU5OCwgMC44MDc1NjUiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc1NTQ4LCAwLjI3MzkwMSwgMC40MzY0NTcsIDAuNjQzMjU4LCAwLjg1MTYxMSwgMS4wNjA1MSwgMS4yNzAyMyIsIFwKLSAgICAgICAgICAiMC4wNzYyMDYsIDAuMjczNzAxLCAwLjQzNjM1MywgMC42NDMyNjcsIDAuODUxNTMsIDEuMDU5MjUsIDEuMjY4MzIiLCBcCi0gICAgICAgICAgIjAuMDc1NjksIDAuMjczNjUsIDAuNDM2MzE2LCAwLjY0MzI0NSwgMC44NTE0NjUsIDEuMDU5MzEsIDEuMjY4NTYiLCBcCi0gICAgICAgICAgIjAuMDc1NDgyLCAwLjI3MzUxNiwgMC40MzYyNywgMC42NDMyMiwgMC44NTE4MTQsIDEuMDYwNjEsIDEuMjY4NTYiLCBcCi0gICAgICAgICAgIjAuMDc1NTM1LCAwLjI3MzQ2NCwgMC40MzYxOTYsIDAuNjQzMiwgMC44NTE0NTMsIDEuMDYwOTQsIDEuMjY4NTkiLCBcCi0gICAgICAgICAgIjAuMDc1NjA1LCAwLjI3MzgwNSwgMC40MzYzOTIsIDAuNjQzMjI1LCAwLjg1MTg3MSwgMS4wNTkyMywgMS4yNjg2IiwgXAotICAgICAgICAgICIwLjA3Njk3MiwgMC4yNzQwNDksIDAuNDM2NDQ4LCAwLjY0MzIzOSwgMC44NTE0NTgsIDEuMDYwNzUsIDEuMjY4NDEiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY0MTE1LCAwLjE2ODUzNiwgMC4yNTEzNzgsIDAuMzU0Nzk1LCAwLjQ1ODI0MywgMC41NjE2NDgsIDAuNjY1MDc5IiwgXAotICAgICAgICAgICIwLjA3NDA2NCwgMC4xNzg0OTUsIDAuMjYxMzMzLCAwLjM2NDc0NiwgMC40NjgyMDYsIDAuNTcxNjE0LCAwLjY3NTA1IiwgXAotICAgICAgICAgICIwLjA4NjI4MywgMC4xOTA3MzIsIDAuMjczNTc5LCAwLjM3NzA0NywgMC40ODA0MzIsIDAuNTgzOTAxLCAwLjY4NzI5NiIsIFwKLSAgICAgICAgICAiMC4wOTgwMDUsIDAuMjAyNDUxLCAwLjI4NTI3OCwgMC4zODg3MzIsIDAuNDkyMTU2LCAwLjU5NTU5NiwgMC42OTkwMTciLCBcCi0gICAgICAgICAgIjAuMTA4NTE5LCAwLjIxMzA3MSwgMC4yOTU4NzgsIDAuMzk5MzUxLCAwLjUwMjc3NiwgMC42MDYxODYsIDAuNzA5NjI0IiwgXAotICAgICAgICAgICIwLjEyMzYwNywgMC4yMjg0NywgMC4zMTEyOSwgMC40MTQ3NDksIDAuNTE4MTc5LCAwLjYyMTY1MiwgMC43MjUwMjciLCBcCi0gICAgICAgICAgIjAuMTM0NjcsIDAuMjM5ODgzLCAwLjMyMjY4NiwgMC40MjYxMzQsIDAuNTI5NTQxLCAwLjYzMjk4MiwgMC43MzYzMjgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDUzMTU3LCAwLjI1OTAzOCwgMC40MjU2MSwgMC42MzYzODksIDAuODQ2MjY0LCAxLjA1NDMyLCAxLjI2NDE4IiwgXAotICAgICAgICAgICIwLjA1MzE1MywgMC4yNTkwMzIsIDAuNDI2NDgxLCAwLjYzNjMxMSwgMC44NDYzMTIsIDEuMDU1OCwgMS4yNjQyNiIsIFwKLSAgICAgICAgICAiMC4wNTMyNTMsIDAuMjU5MDEyLCAwLjQyNTQ4MiwgMC42MzQ3MDYsIDAuODQ1ODU1LCAxLjA1NjIxLCAxLjI2NDA4IiwgXAotICAgICAgICAgICIwLjA1MzYyOCwgMC4yNTg2NzMsIDAuNDI2MTIxLCAwLjYzNjM3NiwgMC44NDYxNjUsIDEuMDU0NDIsIDEuMjY1MjEiLCBcCi0gICAgICAgICAgIjAuMDU0NTYyLCAwLjI1OTI3MSwgMC40MjY1MDgsIDAuNjM2MTgzLCAwLjg0NjI1NiwgMS4wNTYwMiwgMS4yNjUwNCIsIFwKLSAgICAgICAgICAiMC4wNTYyNTMsIDAuMjU4OTc0LCAwLjQyNTY5NSwgMC42MzUwMTMsIDAuODQ2MjU2LCAxLjA1NjAzLCAxLjI2NjAxIiwgXAotICAgICAgICAgICIwLjA1Nzc4MSwgMC4yNTk2OTIsIDAuNDI1OTA5LCAwLjYzNTQ1MywgMC44NDU2OTEsIDEuMDU2MTUsIDEuMjY2MTMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTMxMDQ3LCAwLjI0NTE5NSwgMC4zMjcxODUsIDAuNDI4OTA3LCAwLjUzMDU3MiwgMC42MzIyODgsIDAuNzMzODY3IiwgXAotICAgICAgICAgICIwLjEzODY4NCwgMC4yNTI3MDcsIDAuMzM0NzAzLCAwLjQzNjQyLCAwLjUzODEzOCwgMC42Mzk3NjUsIDAuNzQxNDEyIiwgXAotICAgICAgICAgICIwLjE0ODk1MywgMC4yNjMwMzEsIDAuMzQ1MDcxLCAwLjQ0NjgwMSwgMC41NDg0NywgMC42NTAxMDcsIDAuNzUxNzgzIiwgXAotICAgICAgICAgICIwLjE1OTY3NCwgMC4yNzM2NiwgMC4zNTU2MTMsIDAuNDU3MzQyLCAwLjU1OTAxLCAwLjY2MDczMywgMC43NjIzNDUiLCBcCi0gICAgICAgICAgIjAuMTcwMjAyLCAwLjI4NDI0LCAwLjM2NjE5OSwgMC40Njc5MzIsIDAuNTY5NjQ2LCAwLjY3MTMxMSwgMC43NzI5NDIiLCBcCi0gICAgICAgICAgIjAuMTg3NTAzLCAwLjMwMTE3NCwgMC4zODMxMjMsIDAuNDg0ODU4LCAwLjU4NjUyNywgMC42ODgyMDUsIDAuNzg5ODUyIiwgXAotICAgICAgICAgICIwLjIwMjEyNSwgMC4zMTYxNDIsIDAuMzk4MTEzLCAwLjQ5OTg1NSwgMC42MDE1MzQsIDAuNzAzMTcxLCAwLjgwNDgxNiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzYyNTksIDAuMjczNjc2LCAwLjQzNjMyNSwgMC42NDMyNjUsIDAuODUxNTM5LCAxLjA2MDkxLCAxLjI2ODI4IiwgXAotICAgICAgICAgICIwLjA3NTc1NSwgMC4yNzM2NjksIDAuNDM2MzM5LCAwLjY0MzI1NCwgMC44NTE4MzcsIDEuMDYwNjcsIDEuMjY4NTUiLCBcCi0gICAgICAgICAgIjAuMDc1NjIxLCAwLjI3MzQ5NSwgMC40MzYyNjgsIDAuNjQzMjExLCAwLjg1MTUxLCAxLjA2MDQyLCAxLjI3MDE2IiwgXAotICAgICAgICAgICIwLjA3NTUxMSwgMC4yNzM0NjQsIDAuNDM2MjE5LCAwLjY0MzE1MiwgMC44NTE0NDIsIDEuMDYwNjksIDEuMjY4NTUiLCBcCi0gICAgICAgICAgIjAuMDc1MzgsIDAuMjczMzQ3LCAwLjQzNjIzNiwgMC42NDI3MjcsIDAuODUxODA4LCAxLjA2MDgyLCAxLjI2ODUiLCBcCi0gICAgICAgICAgIjAuMDc1ODk1LCAwLjI3Mzg2MywgMC40MzY0MDIsIDAuNjQzMjMzLCAwLjg1MTUyMiwgMS4wNTkyLCAxLjI2ODUzIiwgXAotICAgICAgICAgICIwLjA3NzA4MSwgMC4yNzM5MDMsIDAuNDM2NDkxLCAwLjY0MzIwNSwgMC44NTE0NDYsIDEuMDYwMzUsIDEuMjY5NzkiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDYyMzA1LCAwLjE2NjY3OSwgMC4yNDk1MywgMC4zNTI5MTMsIDAuNDU2MzI0LCAwLjU1OTg2MywgMC42NjM0NDciLCBcCi0gICAgICAgICAgIjAuMDcyMzI5LCAwLjE3NjY5OCwgMC4yNTk0OTcsIDAuMzYzMDI2LCAwLjQ2NjM2NywgMC41NzAxMDUsIDAuNjczNDQ1IiwgXAotICAgICAgICAgICIwLjA4NDM5OCwgMC4xODg3NjUsIDAuMjcxNjIxLCAwLjM3NTA0MiwgMC40Nzg2OTUsIDAuNTgyMTA5LCAwLjY4NTQ5OSIsIFwKLSAgICAgICAgICAiMC4wOTYwNzYsIDAuMjAwNDY2LCAwLjI4MzMwNCwgMC4zODY4NzksIDAuNDkwMTk2LCAwLjU5Mzg5MiwgMC42OTcyODciLCBcCi0gICAgICAgICAgIjAuMTA2NDAzLCAwLjIxMDg3OCwgMC4yOTM2NDEsIDAuMzk3MTU1LCAwLjUwMDc5NCwgMC42MDQwNTIsIDAuNzA3NTc0IiwgXAotICAgICAgICAgICIwLjEyMDU1MywgMC4yMjQzODIsIDAuMzA3MTU2LCAwLjQxMDYyOCwgMC41MTQxNzYsIDAuNjE3NTc3LCAwLjcyMTI0NCIsIFwKLSAgICAgICAgICAiMC4xMzE3NzUsIDAuMjM1OTk2LCAwLjMxODc0MywgMC40MjIxOTgsIDAuNTI1NzUxLCAwLjYyOTE0MSwgMC43MzI4NDkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDUzMDMxLCAwLjI1ODU1NCwgMC40MjUyNjksIDAuNjM1MzY1LCAwLjg0NjM5NSwgMS4wNTM5NywgMS4yNjMyMiIsIFwKLSAgICAgICAgICAiMC4wNTI5ODQsIDAuMjU4ODk3LCAwLjQyNjQ0MywgMC42MzQ5NDEsIDAuODQ2MTM5LCAxLjA1MzM5LCAxLjI2MzQzIiwgXAotICAgICAgICAgICIwLjA1MzE3NCwgMC4yNTg5LCAwLjQyNTM2MiwgMC42MzYxMjYsIDAuODQ0MjQ5LCAxLjA1MzgxLCAxLjI2MzQ1IiwgXAotICAgICAgICAgICIwLjA1MzcyOCwgMC4yNTg1MTQsIDAuNDI1MjY3LCAwLjYzNDc2MSwgMC44NDQxMTgsIDEuMDUzNjksIDEuMjYzMzMiLCBcCi0gICAgICAgICAgIjAuMDU0NzY0LCAwLjI1OTE4OCwgMC40MjY0NjMsIDAuNjM1MjI2LCAwLjg0NDI0NCwgMS4wNTYxLCAxLjI2MjUzIiwgXAotICAgICAgICAgICIwLjA1NjU0OCwgMC4yNTk1NTgsIDAuNDI2Njc1LCAwLjYzNDc0NiwgMC44NDQ1NTQsIDEuMDU1OTUsIDEuMjYzMTIiLCBcCi0gICAgICAgICAgIjAuMDU3OTU2LCAwLjI1OTkxMSwgMC40MjY3MTIsIDAuNjM2NDI0LCAwLjg0NTQ0NywgMS4wNTM0NSwgMS4yNjM1NSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjc3NiwgMC4wMDI4MDQsIDAuMDAyODA5LCAwLjAwMjgwOCwgMC4wMDI4MDksIDAuMDAyODEyLCAwLjAwMjgxIiwgXAotICAgICAgICAgICIwLjAwMjc1OSwgMC4wMDI3ODUsIDAuMDAyNzg2LCAwLjAwMjc4OCwgMC4wMDI3ODgsIDAuMDAyNzkxLCAwLjAwMjc4OSIsIFwKLSAgICAgICAgICAiMC4wMDI3MywgMC4wMDI3NjYsIDAuMDAyNzcxLCAwLjAwMjc3NCwgMC4wMDI3NzYsIDAuMDAyNzc2LCAwLjAwMjc3NiIsIFwKLSAgICAgICAgICAiMC4wMDI3MTQsIDAuMDAyNzU2LCAwLjAwMjc2MywgMC4wMDI3NjYsIDAuMDAyNzY4LCAwLjAwMjc2OCwgMC4wMDI3NjkiLCBcCi0gICAgICAgICAgIjAuMDAyNzEsIDAuMDAyNzUzLCAwLjAwMjc1OSwgMC4wMDI3NjIsIDAuMDAyNzY0LCAwLjAwMjc2NSwgMC4wMDI3NjYiLCBcCi0gICAgICAgICAgIjAuMDAyNzA3LCAwLjAwMjc0OSwgMC4wMDI3NTUsIDAuMDAyNzYsIDAuMDAyNzYxLCAwLjAwMjc2MiwgMC4wMDI3NjMiLCBcCi0gICAgICAgICAgIjAuMDAyNzEsIDAuMDAyNzQ4LCAwLjAwMjc1NSwgMC4wMDI3NTksIDAuMDAyNzYzLCAwLjAwMjc2MiwgMC4wMDI3NjMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQzNDUsIDAuMDA0NDA4LCAwLjAwNDQxNiwgMC4wMDQ0MiwgMC4wMDQ0MjIsIDAuMDA0NDIzLCAwLjAwNDQyNCIsIFwKLSAgICAgICAgICAiMC4wMDQzMjYsIDAuMDA0MzkzLCAwLjAwNDQwMiwgMC4wMDQ0MDYsIDAuMDA0NDA5LCAwLjAwNDQxLCAwLjAwNDQxMSIsIFwKLSAgICAgICAgICAiMC4wMDQzMTEsIDAuMDA0Mzg1LCAwLjAwNDM5NywgMC4wMDQ0MDMsIDAuMDA0NDA2LCAwLjAwNDQwOCwgMC4wMDQ0MDkiLCBcCi0gICAgICAgICAgIjAuMDA0MzAxLCAwLjAwNDM4MiwgMC4wMDQzOTUsIDAuMDA0NDAyLCAwLjAwNDQwNiwgMC4wMDQ0MDksIDAuMDA0NDEiLCBcCi0gICAgICAgICAgIjAuMDA0MzAyLCAwLjAwNDM3OSwgMC4wMDQzOTMsIDAuMDA0NDAxLCAwLjAwNDQwNiwgMC4wMDQ0MDksIDAuMDA0NDExIiwgXAotICAgICAgICAgICIwLjAwNDMwOCwgMC4wMDQzODQsIDAuMDA0NDAyLCAwLjAwNDQxMSwgMC4wMDQ0MTYsIDAuMDA0NDE5LCAwLjAwNDQyMSIsIFwKLSAgICAgICAgICAiMC4wMDQzMjEsIDAuMDA0Mzk0LCAwLjAwNDQxMSwgMC4wMDQ0MjEsIDAuMDA0NDI4LCAwLjAwNDQzMiwgMC4wMDQ0MzQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI3NzQsIDAuMDAyODA4LCAwLjAwMjgxNiwgMC4wMDI4MTcsIDAuMDAyODIyLCAwLjAwMjgyMiwgMC4wMDI4MjEiLCBcCi0gICAgICAgICAgIjAuMDAyNzQ2LCAwLjAwMjc4OCwgMC4wMDI3OTMsIDAuMDAyNzk2LCAwLjAwMjc5OCwgMC4wMDI3OTgsIDAuMDAyODAxIiwgXAotICAgICAgICAgICIwLjAwMjcyNCwgMC4wMDI3NjksIDAuMDAyNzc3LCAwLjAwMjc4MSwgMC4wMDI3ODQsIDAuMDAyNzg1LCAwLjAwMjc4NiIsIFwKLSAgICAgICAgICAiMC4wMDI3MTQsIDAuMDAyNzYxLCAwLjAwMjc3LCAwLjAwMjc3NSwgMC4wMDI3NzcsIDAuMDAyNzc3LCAwLjAwMjc3OSIsIFwKLSAgICAgICAgICAiMC4wMDI3MSwgMC4wMDI3NTYsIDAuMDAyNzY1LCAwLjAwMjc3LCAwLjAwMjc3MywgMC4wMDI3NzUsIDAuMDAyNzc2IiwgXAotICAgICAgICAgICIwLjAwMjcxMywgMC4wMDI3NTUsIDAuMDAyNzYzLCAwLjAwMjc2OCwgMC4wMDI3NzIsIDAuMDAyNzcxLCAwLjAwMjc3NCIsIFwKLSAgICAgICAgICAiMC4wMDI3MTksIDAuMDAyNzU0LCAwLjAwMjc2MywgMC4wMDI3NjksIDAuMDAyNzczLCAwLjAwMjc3MywgMC4wMDI3NzQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQwODcsIDAuMDA0MTY0LCAwLjAwNDE3MywgMC4wMDQxNzgsIDAuMDA0MTgxLCAwLjAwNDE4MiwgMC4wMDQxODMiLCBcCi0gICAgICAgICAgIjAuMDA0MDY1LCAwLjAwNDE0OSwgMC4wMDQxNiwgMC4wMDQxNjUsIDAuMDA0MTY4LCAwLjAwNDE3LCAwLjAwNDE3MSIsIFwKLSAgICAgICAgICAiMC4wMDQwNDgsIDAuMDA0MTM5LCAwLjAwNDE1MywgMC4wMDQxNiwgMC4wMDQxNjQsIDAuMDA0MTY3LCAwLjAwNDE2OCIsIFwKLSAgICAgICAgICAiMC4wMDQwMzIsIDAuMDA0MTMzLCAwLjAwNDE0OSwgMC4wMDQxNTksIDAuMDA0MTY0LCAwLjAwNDE2NywgMC4wMDQxNjkiLCBcCi0gICAgICAgICAgIjAuMDA0MDMzLCAwLjAwNDEzMiwgMC4wMDQxNSwgMC4wMDQxNjEsIDAuMDA0MTY3LCAwLjAwNDE3LCAwLjAwNDE3MyIsIFwKLSAgICAgICAgICAiMC4wMDQwMjIsIDAuMDA0MTIxLCAwLjAwNDE0LCAwLjAwNDE1MywgMC4wMDQxNiwgMC4wMDQxNjQsIDAuMDA0MTY2IiwgXAotICAgICAgICAgICIwLjAwNDAyOSwgMC4wMDQxMjUsIDAuMDA0MTQ4LCAwLjAwNDE2MSwgMC4wMDQxNjcsIDAuMDA0MTcyLCAwLjAwNDE3NSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjc2OSwgMC4wMDI4MDksIDAuMDAyODIsIDAuMDAyODIzLCAwLjAwMjgyNiwgMC4wMDI4MjksIDAuMDAyODI5IiwgXAotICAgICAgICAgICIwLjAwMjc1NywgMC4wMDI3ODksIDAuMDAyOCwgMC4wMDI4MDcsIDAuMDAyODA5LCAwLjAwMjgwOCwgMC4wMDI4MDkiLCBcCi0gICAgICAgICAgIjAuMDAyNzIzLCAwLjAwMjc3NSwgMC4wMDI3ODQsIDAuMDAyNzksIDAuMDAyNzkyLCAwLjAwMjc5MywgMC4wMDI3OTQiLCBcCi0gICAgICAgICAgIjAuMDAyNzE1LCAwLjAwMjc2NSwgMC4wMDI3NzYsIDAuMDAyNzgyLCAwLjAwMjc4NSwgMC4wMDI3ODcsIDAuMDAyNzg5IiwgXAotICAgICAgICAgICIwLjAwMjcxOCwgMC4wMDI3NjMsIDAuMDAyNzc1LCAwLjAwMjc4LCAwLjAwMjc4MywgMC4wMDI3ODUsIDAuMDAyNzg2IiwgXAotICAgICAgICAgICIwLjAwMjcyMiwgMC4wMDI3NjEsIDAuMDAyNzczLCAwLjAwMjc3OSwgMC4wMDI3ODIsIDAuMDAyNzg0LCAwLjAwMjc4NiIsIFwKLSAgICAgICAgICAiMC4wMDI3NTQsIDAuMDAyNzY5LCAwLjAwMjc3OSwgMC4wMDI3ODQsIDAuMDAyNzg3LCAwLjAwMjc4OSwgMC4wMDI3OTEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDM4MzYsIDAuMDAzOTA5LCAwLjAwMzkxOCwgMC4wMDM5MjMsIDAuMDAzOTI1LCAwLjAwMzkyNiwgMC4wMDM5MjciLCBcCi0gICAgICAgICAgIjAuMDAzODE4LCAwLjAwMzg5OSwgMC4wMDM5MDksIDAuMDAzOTE1LCAwLjAwMzkxNywgMC4wMDM5MTksIDAuMDAzOTIiLCBcCi0gICAgICAgICAgIjAuMDAzNzk2LCAwLjAwMzg4NywgMC4wMDM5LCAwLjAwMzkwOCwgMC4wMDM5MTEsIDAuMDAzOTE0LCAwLjAwMzkxNSIsIFwKLSAgICAgICAgICAiMC4wMDM3ODIsIDAuMDAzODgsIDAuMDAzODk2LCAwLjAwMzkwNiwgMC4wMDM5MSwgMC4wMDM5MTMsIDAuMDAzOTE1IiwgXAotICAgICAgICAgICIwLjAwMzc3OSwgMC4wMDM4NzgsIDAuMDAzODk2LCAwLjAwMzkwNywgMC4wMDM5MTIsIDAuMDAzOTE2LCAwLjAwMzkxOCIsIFwKLSAgICAgICAgICAiMC4wMDM3NjksIDAuMDAzODY3LCAwLjAwMzg4NiwgMC4wMDM4OTksIDAuMDAzOTA1LCAwLjAwMzkwOSwgMC4wMDM5MTIiLCBcCi0gICAgICAgICAgIjAuMDAzNzczLCAwLjAwMzg3NywgMC4wMDM4OTcsIDAuMDAzOTA5LCAwLjAwMzkxNSwgMC4wMDM5MTksIDAuMDAzOTE3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyNzc0LCAwLjAwMjgxNiwgMC4wMDI4MjYsIDAuMDAyODMxLCAwLjAwMjgzNCwgMC4wMDI4MzUsIDAuMDAyODM4IiwgXAotICAgICAgICAgICIwLjAwMjczNSwgMC4wMDI3OSwgMC4wMDI4LCAwLjAwMjgwNiwgMC4wMDI4MSwgMC4wMDI4MTEsIDAuMDAyODEzIiwgXAotICAgICAgICAgICIwLjAwMjcyNCwgMC4wMDI3NzUsIDAuMDAyNzg4LCAwLjAwMjc5NSwgMC4wMDI4LCAwLjAwMjgwMiwgMC4wMDI4MDIiLCBcCi0gICAgICAgICAgIjAuMDAyNzIyLCAwLjAwMjc3NCwgMC4wMDI3ODcsIDAuMDAyNzkyLCAwLjAwMjc5NywgMC4wMDI4MDMsIDAuMDAyODAyIiwgXAotICAgICAgICAgICIwLjAwMjcyNywgMC4wMDI3NzYsIDAuMDAyNzg5LCAwLjAwMjc5OCwgMC4wMDI4MDEsIDAuMDAyODA0LCAwLjAwMjgwNiIsIFwKLSAgICAgICAgICAiMC4wMDI3NiwgMC4wMDI3OTIsIDAuMDAyODA0LCAwLjAwMjgxMSwgMC4wMDI4MTYsIDAuMDAyODE5LCAwLjAwMjgyMSIsIFwKLSAgICAgICAgICAiMC4wMDI4MTEsIDAuMDAyODE1LCAwLjAwMjgyNCwgMC4wMDI4MzEsIDAuMDAyODM0LCAwLjAwMjgzNiwgMC4wMDI4MzgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDM2MDUsIDAuMDAzNjc3LCAwLjAwMzY4NSwgMC4wMDM2ODksIDAuMDAzNjkyLCAwLjAwMzY5MywgMC4wMDM2OTQiLCBcCi0gICAgICAgICAgIjAuMDAzNTg3LCAwLjAwMzY2NiwgMC4wMDM2NzUsIDAuMDAzNjgsIDAuMDAzNjgzLCAwLjAwMzY4NCwgMC4wMDM2ODYiLCBcCi0gICAgICAgICAgIjAuMDAzNTYyLCAwLjAwMzY1MiwgMC4wMDM2NjUsIDAuMDAzNjcyLCAwLjAwMzY3NSwgMC4wMDM2NzcsIDAuMDAzNjc5IiwgXAotICAgICAgICAgICIwLjAwMzU2NCwgMC4wMDM2NDgsIDAuMDAzNjYyLCAwLjAwMzY2OSwgMC4wMDM2NzMsIDAuMDAzNjc2LCAwLjAwMzY3NyIsIFwKLSAgICAgICAgICAiMC4wMDM1NTIsIDAuMDAzNjQsIDAuMDAzNjU3LCAwLjAwMzY2NiwgMC4wMDM2NzEsIDAuMDAzNjc0LCAwLjAwMzY3NiIsIFwKLSAgICAgICAgICAiMC4wMDM1NDQsIDAuMDAzNjM5LCAwLjAwMzY1OSwgMC4wMDM2NzEsIDAuMDAzNjc4LCAwLjAwMzY4MiwgMC4wMDM2ODQiLCBcCi0gICAgICAgICAgIjAuMDAzNTQyLCAwLjAwMzYzNSwgMC4wMDM2NTcsIDAuMDAzNjY5LCAwLjAwMzY3NiwgMC4wMDM2OCwgMC4wMDM2ODMiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IEFORDRYNiAqCi0gKiAtLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKEFORDRYNikgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjQ5NTQ1MzsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAyMDkyMzk7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAyMDkyMzk7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAyMDg2ODk7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwODE4LCAwLjAwMDgxOCwgMC4wMDA4MTgsIDAuMDAwODE4LCAwLjAwMDgxNywgMC4wMDA4MTcsIDAuMDAwODE3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwODE5LCAwLjAwMDgyLCAwLjAwMDgyLCAwLjAwMDgyLCAwLjAwMDgyLCAwLjAwMDgyLCAwLjAwMDgyIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE4ODcxMTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE4ODcxMTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE4ODI4OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDgxOCwgMC4wMDA4MTgsIDAuMDAwODE4LCAwLjAwMDgxNywgMC4wMDA4MTcsIDAuMDAwODE3LCAwLjAwMDgxNyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDgxOSwgMC4wMDA4MiwgMC4wMDA4MiwgMC4wMDA4MiwgMC4wMDA4MjEsIDAuMDAwODIsIDAuMDAwODIiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEMpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTcwMTkzOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTcwMTkzOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTY5NzY1OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDgxOCwgMC4wMDA4MTgsIDAuMDAwODE4LCAwLjAwMDgxNywgMC4wMDA4MTcsIDAuMDAwODE3LCAwLjAwMDgxNyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDgxOSwgMC4wMDA4MjEsIDAuMDAwODIsIDAuMDAwODIxLCAwLjAwMDgyMSwgMC4wMDA4MjEsIDAuMDAwODIxIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihEKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE1ODE7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNTgwMjk7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNTgxOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDUzNiwgMC4wMDA1MzUsIDAuMDAwNTM1LCAwLjAwMDUzNCwgMC4wMDA1MzQsIDAuMDAwNTM0LCAwLjAwMDUzNCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDkyOCwgMC4wMDA5MjksIDAuMDAwOTI5LCAwLjAwMDkzLCAwLjAwMDkyOSwgMC4wMDA5MjksIDAuMDAwOTI5Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDEuNDk3NDE7Ci0gICAgZnVuY3Rpb24gOiAiKCgoQSBCKSBDKSBEKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDY0NDcsIDAuMTY4OTcxLCAwLjIxOTMxMSwgMC4yNTQxMzgsIDAuMzA5Mzc5LCAwLjM1NzYyOCwgMC40MjY1MDEiLCBcCi0gICAgICAgICAgIjAuMTE0MTExLCAwLjE3NjQ0NCwgMC4yMjY4NTMsIDAuMjYxNjQyLCAwLjMxNjk0MywgMC4zNjUxNDMsIDAuNDM0MDI1IiwgXAotICAgICAgICAgICIwLjEyMjQ5NCwgMC4xODUzMSwgMC4yMzU1NzMsIDAuMjcwNDM3LCAwLjMyNTY4OSwgMC4zNzM5MzIsIDAuNDQyOCIsIFwKLSAgICAgICAgICAiMC4xMzA1NzUsIDAuMTkzMzM1LCAwLjI0MzY0MiwgMC4yNzg0MywgMC4zMzM3MjEsIDAuMzgxOTI0LCAwLjQ1MDc5OSIsIFwKLSAgICAgICAgICAiMC4xMzgzNiwgMC4yMDEwODYsIDAuMjUxMzQ1LCAwLjI4NjEyMiwgMC4zNDEzODEsIDAuMzg5NjI1LCAwLjQ1ODUyNSIsIFwKLSAgICAgICAgICAiMC4xNTAwNjMsIDAuMjEzMDE3LCAwLjI2MzIzMywgMC4yOTc5NTcsIDAuMzUzMjA1LCAwLjQwMTQ1NCwgMC40NzAzMTkiLCBcCi0gICAgICAgICAgIjAuMTU5ODQ3LCAwLjIyMjk4NCwgMC4yNzMzMDYsIDAuMzA4MTI3LCAwLjM2MzM5MiwgMC40MTE2MTMsIDAuNDgwNDc2Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQyNTA3LCAwLjEzNzkwNywgMC4yMzIzMjgsIDAuMzAxMTM0LCAwLjQxMjIyOCwgMC41MTA3MzUsIDAuNjUxNzUyIiwgXAotICAgICAgICAgICIwLjA0MjU3OSwgMC4xMzgxNTEsIDAuMjMyNTUsIDAuMzAxMTUxLCAwLjQxMjI5LCAwLjUxMDc2NSwgMC42NTE2OTgiLCBcCi0gICAgICAgICAgIjAuMDQyNzAzLCAwLjEzNzg0LCAwLjIzMjM0MSwgMC4zMDEwNDEsIDAuNDEyMjc3LCAwLjUxMDY4LCAwLjY1MTY4NCIsIFwKLSAgICAgICAgICAiMC4wNDIzNCwgMC4xMzc3MTMsIDAuMjMyMjk4LCAwLjMwMDkwOCwgMC40MTIxOCwgMC41MTAzNzQsIDAuNjUwOTY4IiwgXAotICAgICAgICAgICIwLjA0MjM2NiwgMC4xMzc2NzEsIDAuMjMyMjgzLCAwLjMwMTAwMSwgMC40MTIyODgsIDAuNTEwMzY4LCAwLjY1MTg1OSIsIFwKLSAgICAgICAgICAiMC4wNDI5MDcsIDAuMTM3OTc0LCAwLjIzMjQ2MiwgMC4zMDEyMDQsIDAuNDEyMTk5LCAwLjUxMDM2NywgMC42NTE1OTciLCBcCi0gICAgICAgICAgIjAuMDQzODQxLCAwLjEzODUzOCwgMC4yMzI3NzIsIDAuMzAxMzIzLCAwLjQxMjQyNiwgMC41MTA0ODksIDAuNjUxNjcxIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQ1MTM1LCAwLjA5ODQ5OSwgMC4xNDk2MzIsIDAuMTg2MDkxLCAwLjI0NDM3MiwgMC4yOTUzNDIsIDAuMzY4MTA0IiwgXAotICAgICAgICAgICIwLjA1NTA2MiwgMC4xMDg0NTIsIDAuMTU5NTk1LCAwLjE5NjA2MSwgMC4yNTQzNTYsIDAuMzA1MzAyLCAwLjM3ODA2OSIsIFwKLSAgICAgICAgICAiMC4wNjc2MDMsIDAuMTIwOTUyLCAwLjE3MjEwNywgMC4yMDg1NzEsIDAuMjY2ODYsIDAuMzE3ODMzLCAwLjM5MDYxMiIsIFwKLSAgICAgICAgICAiMC4wNzkyNDMsIDAuMTMyNjA3LCAwLjE4Mzc3LCAwLjIyMDIyNiwgMC4yNzg1MjUsIDAuMzI5NDc3LCAwLjQwMjI0OSIsIFwKLSAgICAgICAgICAiMC4wODkzOSwgMC4xNDMwODYsIDAuMTk0MjQxLCAwLjIzMDcwNSwgMC4yODg5ODksIDAuMzM5OTc0LCAwLjQxMjc0MyIsIFwKLSAgICAgICAgICAiMC4xMDMzMzQsIDAuMTU3NjEzLCAwLjIwODY1MiwgMC4yNDUxMDMsIDAuMzAzMzg2LCAwLjM1NDM1LCAwLjQyNzE1NCIsIFwKLSAgICAgICAgICAiMC4xMTM3OTgsIDAuMTY4NTY0LCAwLjIxOTU4OSwgMC4yNTYwMzksIDAuMzE0MzMzLCAwLjM2NTI2NSwgMC40MzgwNDkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjY1ODEsIDAuMTI1NTk3LCAwLjIyNzYwOSwgMC4zMDAzMSwgMC40MTcwNzgsIDAuNTIwMTg2LCAwLjY2Njc5NiIsIFwKLSAgICAgICAgICAiMC4wMjY1MjEsIDAuMTI1NTg0LCAwLjIyNzYxNSwgMC4zMDAzNDQsIDAuNDE3NjI1LCAwLjUyMDIyNiwgMC42NjY4MTUiLCBcCi0gICAgICAgICAgIjAuMDI2ODY4LCAwLjEyNTcxMiwgMC4yMjc2MzgsIDAuMzAwNjU2LCAwLjQxNzY2OSwgMC41MjAxODEsIDAuNjY2NzMiLCBcCi0gICAgICAgICAgIjAuMDI3NDE2LCAwLjEyNTgxOCwgMC4yMjc3MTQsIDAuMzAwNDc4LCAwLjQxNzY3NywgMC41MjAzMTUsIDAuNjY2OTU0IiwgXAotICAgICAgICAgICIwLjAyODYzNSwgMC4xMjU5ODYsIDAuMjI3NjUyLCAwLjMwMDgxNiwgMC40MTc0OTksIDAuNTIwMjIxLCAwLjY2Njg2MyIsIFwKLSAgICAgICAgICAiMC4wMzA1MTMsIDAuMTI2Njc5LCAwLjIyNzY3MSwgMC4zMDA5NywgMC40MTc2MDYsIDAuNTIwMDIyLCAwLjY2NjIyNSIsIFwKLSAgICAgICAgICAiMC4wMzIxMjcsIDAuMTI3MTYyLCAwLjIyODA5NSwgMC4zMDEwMTUsIDAuNDE3ODkzLCAwLjUyMDUxNSwgMC42NjYxMDQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDQyMjMsIDAuMTY2NjMxLCAwLjIxNjk1MywgMC4yNTE3NjMsIDAuMzA3MDMyLCAwLjM1NTI2NSwgMC40MjQxNCIsIFwKLSAgICAgICAgICAiMC4xMTE5MDgsIDAuMTc0NjE3LCAwLjIyNSwgMC4yNTk4NTIsIDAuMzE1MDkzLCAwLjM2MzMzMywgMC40MzIyMDciLCBcCi0gICAgICAgICAgIjAuMTIxMDExLCAwLjE4Mzc3NiwgMC4yMzQwNywgMC4yNjg5MzksIDAuMzI0MiwgMC4zNzI0NTcsIDAuNDQxMzExIiwgXAotICAgICAgICAgICIwLjEyOTk0MiwgMC4xOTI3NDcsIDAuMjQzMDQzLCAwLjI3NzgyMiwgMC4zMzMxMiwgMC4zODEzMjUsIDAuNDUwMjA0IiwgXAotICAgICAgICAgICIwLjEzODg4LCAwLjIwMTYzNywgMC4yNTE4NTQsIDAuMjg2NjgxLCAwLjM0MTkzOCwgMC4zOTAxNzksIDAuNDU5MDQ1IiwgXAotICAgICAgICAgICIwLjE1MjcxLCAwLjIxNTYwMiwgMC4yNjU4NiwgMC4zMDA2NzQsIDAuMzU1OTM2LCAwLjQwNDE3OSwgMC40NzMwNDQiLCBcCi0gICAgICAgICAgIjAuMTYzOTM4LCAwLjIyNjc5LCAwLjI3NzE2LCAwLjMxMTk4NCwgMC4zNjcyMjEsIDAuNDE1NDY2LCAwLjQ4NDMzMiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0MjQ1OSwgMC4xMzgyNTUsIDAuMjMyNTQ5LCAwLjMwMTIxLCAwLjQxMjM0OCwgMC41MTA3MzMsIDAuNjUxNzIzIiwgXAotICAgICAgICAgICIwLjA0MjYxNywgMC4xMzc5LCAwLjIzMjM5NCwgMC4zMDExMTQsIDAuNDExODczLCAwLjUxMDcxMiwgMC42NTE3MzMiLCBcCi0gICAgICAgICAgIjAuMDQyNTc2LCAwLjEzNzgyMSwgMC4yMzIzMTcsIDAuMzAxMDMxLCAwLjQxMjI0OCwgMC41MTA3ODksIDAuNjUxNjgxIiwgXAotICAgICAgICAgICIwLjA0MjM3OSwgMC4xMzc2OTksIDAuMjMyMjg2LCAwLjMwMDgyMSwgMC40MTIxNDUsIDAuNTEwMzIzLCAwLjY1MDk0NSIsIFwKLSAgICAgICAgICAiMC4wNDIzNzIsIDAuMTM3Njc3LCAwLjIzMjI1NSwgMC4zMDEwNDQsIDAuNDEyMTE5LCAwLjUxMDY1LCAwLjY1MTYwOSIsIFwKLSAgICAgICAgICAiMC4wNDI5MzcsIDAuMTM4MDU5LCAwLjIzMjUxMywgMC4zMDExNjcsIDAuNDExOTY2LCAwLjUxMDMzNSwgMC42NTE1ODEiLCBcCi0gICAgICAgICAgIjAuMDQ0MDMsIDAuMTM4OTIyLCAwLjIzMzAyNiwgMC4zMDE1NjksIDAuNDEyNjIxLCAwLjUxMDUzNiwgMC42NTE3MiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0NDI5LCAwLjA5NzQ4LCAwLjE0ODUzNCwgMC4xODQ5NzUsIDAuMjQzMjMxLCAwLjI5NDE2MSwgMC4zNjY5MDciLCBcCi0gICAgICAgICAgIjAuMDU0MjE2LCAwLjEwNzM5OSwgMC4xNTg0ODYsIDAuMTk0OTQ4LCAwLjI1MzE3NSwgMC4zMDQxMDUsIDAuMzc2ODUyIiwgXAotICAgICAgICAgICIwLjA2NjcwMywgMC4xMTk5MDIsIDAuMTcxMDA0LCAwLjIwNzQzNywgMC4yNjU3MDIsIDAuMzE2NjM1LCAwLjM4OTM5MSIsIFwKLSAgICAgICAgICAiMC4wNzc5NzksIDAuMTMxMjUyLCAwLjE4MjM1LCAwLjIxODgwMywgMC4yNzcwNjMsIDAuMzI4MDExLCAwLjQwMDc1IiwgXAotICAgICAgICAgICIwLjA4ODI2MiwgMC4xNDE4OTIsIDAuMTkyOTI4LCAwLjIyOTM2MSwgMC4yODc2MTgsIDAuMzM4NTg1LCAwLjQxMTMzNSIsIFwKLSAgICAgICAgICAiMC4xMDE4MjgsIDAuMTU2MDU5LCAwLjIwNzAyOSwgMC4yNDM0NzMsIDAuMzAxNzIyLCAwLjM1MjY5OCwgMC40MjU0NDMiLCBcCi0gICAgICAgICAgIjAuMTEyMTA3LCAwLjE2NjgyMywgMC4yMTc5NDcsIDAuMjU0MzcsIDAuMzEyNjM1LCAwLjM2MzU3NywgMC40MzYzMzYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjYyODYsIDAuMTI1MzA0LCAwLjIyNzM2OCwgMC4zMDAxMTMsIDAuNDE3NTA0LCAwLjUyMDExNiwgMC42NjU5OTkiLCBcCi0gICAgICAgICAgIjAuMDI2Mjg2LCAwLjEyNTQ1NSwgMC4yMjcwNTMsIDAuMjk5ODk3LCAwLjQxNzUyNiwgMC41MjAyNDksIDAuNjY2OTQiLCBcCi0gICAgICAgICAgIjAuMDI2NDgzLCAwLjEyNTQ1NiwgMC4yMjcxNTQsIDAuMzAwMzA3LCAwLjQxNzU0OCwgMC41MjAyNTcsIDAuNjY2NDQxIiwgXAotICAgICAgICAgICIwLjAyNzMzMywgMC4xMjU1MzcsIDAuMjI3NDM0LCAwLjMwMDU0MywgMC40MTc1NDYsIDAuNTIwMTMzLCAwLjY2Njk5IiwgXAotICAgICAgICAgICIwLjAyODY0MywgMC4xMjU4MTUsIDAuMjI3NTU2LCAwLjMwMDYyNSwgMC40MTc2NjQsIDAuNTIwMTE4LCAwLjY2NjgyMSIsIFwKLSAgICAgICAgICAiMC4wMzA1LCAwLjEyNjUyMiwgMC4yMjc1MzMsIDAuMzAwMywgMC40MTc0MzcsIDAuNTE5MTQ5LCAwLjY2NTc0MyIsIFwKLSAgICAgICAgICAiMC4wMzIwNzgsIDAuMTI2OTg1LCAwLjIyNzk5MywgMC4zMDA3ODgsIDAuNDE3NjA5LCAwLjUxOTQ1OSwgMC42NjU0NTciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTk1MSwgMC4xNjE5MTUsIDAuMjEyMjQ5LCAwLjI0NzA1NSwgMC4zMDIzMjcsIDAuMzUwNTU4LCAwLjQxOTQzNCIsIFwKLSAgICAgICAgICAiMC4xMDczNCwgMC4xNjk5MywgMC4yMjAzMywgMC4yNTUxMzMsIDAuMzEwNDA5LCAwLjM1ODYyNywgMC40Mjc1MDEiLCBcCi0gICAgICAgICAgIjAuMTE3MjY2LCAwLjE4MDA1LCAwLjIzMDM4OCwgMC4yNjUyMTUsIDAuMzIwNTM0LCAwLjM2ODc3MSwgMC40Mzc2NTQiLCBcCi0gICAgICAgICAgIjAuMTI3NTUyLCAwLjE5MDI3OSwgMC4yNDA1ODQsIDAuMjc1NDI2LCAwLjMzMDY5NiwgMC4zNzg5NDYsIDAuNDQ3ODE2IiwgXAotICAgICAgICAgICIwLjEzNzY3NCwgMC4yMDAzNjUsIDAuMjUwNjM4LCAwLjI4NTQyMSwgMC4zNDA2ODIsIDAuMzg4OTMzLCAwLjQ1NzgwMiIsIFwKLSAgICAgICAgICAiMC4xNTMyMSwgMC4yMTU5NzgsIDAuMjY2Mjk2LCAwLjMwMTEwOCwgMC4zNTYzODQsIDAuNDA0NjMyLCAwLjQ3MzQ5OSIsIFwKLSAgICAgICAgICAiMC4xNjU5MDYsIDAuMjI5MDM5LCAwLjI3OTQ0NSwgMC4zMTQyNCwgMC4zNjk0OTEsIDAuNDE3NzM2LCAwLjQ4NjYwOCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0MjU3NywgMC4xMzgyOTgsIDAuMjMyNDMzLCAwLjMwMTIyMiwgMC40MTIzNTIsIDAuNTEwNDQ3LCAwLjY1MTcyMiIsIFwKLSAgICAgICAgICAiMC4wNDIzNjcsIDAuMTM3ODk3LCAwLjIzMjQyOSwgMC4zMDExMjcsIDAuNDEyMjI5LCAwLjUxMDcwOCwgMC42NTE3MjciLCBcCi0gICAgICAgICAgIjAuMDQyNTMyLCAwLjEzNzgxNywgMC4yMzIzNTEsIDAuMzAxMDM0LCAwLjQxMjI1LCAwLjUxMDYzLCAwLjY1MTY3NCIsIFwKLSAgICAgICAgICAiMC4wNDIzNTksIDAuMTM3NjQ3LCAwLjIzMjI1MywgMC4zMDEwMTgsIDAuNDEyMjU5LCAwLjUxMDMxNywgMC42NTE2MjkiLCBcCi0gICAgICAgICAgIjAuMDQyNzUyLCAwLjEzNzc5MiwgMC4yMzIzNDYsIDAuMzAxMDQ0LCAwLjQxMjI1OSwgMC41MTAzMzcsIDAuNjUxNjQiLCBcCi0gICAgICAgICAgIjAuMDQzMjg4LCAwLjEzODIwNywgMC4yMzI2MDIsIDAuMzAxMjc3LCAwLjQxMjEyLCAwLjUxMDM1MiwgMC42NTE2MDgiLCBcCi0gICAgICAgICAgIjAuMDQ0Njk1LCAwLjEzOTY1OSwgMC4yMzM0NzQsIDAuMzAxODA4LCAwLjQxMjgzMywgMC41MTA5NywgMC42NTE4MDEiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDI2NzcsIDAuMDk1NjQsIDAuMTQ2NjQ5LCAwLjE4MzA2MiwgMC4yNDEyNywgMC4yOTIxODksIDAuMzY0OTM0IiwgXAotICAgICAgICAgICIwLjA1MjY5NCwgMC4xMDU2OTIsIDAuMTU2NzI3LCAwLjE5MzE1NSwgMC4yNTEzNTIsIDAuMzAyMjY1LCAwLjM3NTAwMyIsIFwKLSAgICAgICAgICAiMC4wNjQ5MTksIDAuMTE3OTI1LCAwLjE2ODk2MiwgMC4yMDUzOSwgMC4yNjM2MTEsIDAuMzE0NTI2LCAwLjM4NzI2NiIsIFwKLSAgICAgICAgICAiMC4wNzYwOTMsIDAuMTI5MjcxLCAwLjE4MDMxLCAwLjIxNjcyMywgMC4yNzQ5NzYsIDAuMzI1ODg5LCAwLjM5ODYyIiwgXAotICAgICAgICAgICIwLjA4NjA1NywgMC4xMzk1NTIsIDAuMTkwNTU1LCAwLjIyNjk3MywgMC4yODUxOTIsIDAuMzM2MTI5LCAwLjQwODg4MiIsIFwKLSAgICAgICAgICAiMC4wOTkwNTEsIDAuMTUzMjUxLCAwLjIwNDE4NiwgMC4yNDA1OTksIDAuMjk4ODI0LCAwLjM0OTczNywgMC40MjI1NjciLCBcCi0gICAgICAgICAgIjAuMTA4OTk2LCAwLjE2Mzc1MiwgMC4yMTQ4LCAwLjI1MTE5MiwgMC4zMDkyMzUsIDAuMzYwMzMzLCAwLjQzMzA5MSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyNjAwMSwgMC4xMjUxOTQsIDAuMjI3MTU5LCAwLjI5OTkyMywgMC40MTY4NzgsIDAuNTIwMjMzLCAwLjY2NTgyOSIsIFwKLSAgICAgICAgICAiMC4wMjU5NzgsIDAuMTI1MjA3LCAwLjIyNzIzNiwgMC4yOTk4MDEsIDAuNDE3NTI2LCAwLjUyMDIzOSwgMC42NjY1ODgiLCBcCi0gICAgICAgICAgIjAuMDI2NDEyLCAwLjEyNTA1NiwgMC4yMjY4MjEsIDAuMjk5ODIzLCAwLjQxNzQ5MSwgMC41MjAyNzUsIDAuNjY2NDc4IiwgXAotICAgICAgICAgICIwLjAyNzI0MiwgMC4xMjU0NTUsIDAuMjI3MjQ1LCAwLjMwMDM2MywgMC40MTc0NTcsIDAuNTIwMjMsIDAuNjY2ODg1IiwgXAotICAgICAgICAgICIwLjAyODU4NSwgMC4xMjU3NCwgMC4yMjcxMTcsIDAuMzAwMDA4LCAwLjQxNzI0NiwgMC41MTk1MjUsIDAuNjY1MjgiLCBcCi0gICAgICAgICAgIjAuMDMwNTUxLCAwLjEyNjM4OSwgMC4yMjczOSwgMC4zMDAzNTQsIDAuNDE3MzY3LCAwLjUyMDA2MiwgMC42NjY4MDgiLCBcCi0gICAgICAgICAgIjAuMDMyMjk4LCAwLjEyNjgyNSwgMC4yMjc3ODYsIDAuMzAwNTczLCAwLjQxNzM1NiwgMC41MjAwMDQsIDAuNjY1NzQ3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkQiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDkyNDY0LCAwLjE1NTA0NSwgMC4yMDUzNjMsIDAuMjQwMjA1LCAwLjI5NTQ2OSwgMC4zNDM3MDgsIDAuNDEyNTg5IiwgXAotICAgICAgICAgICIwLjA5OTk2OCwgMC4xNjI1NzcsIDAuMjEyOTk0LCAwLjI0NzgwNiwgMC4zMDMxMSwgMC4zNTEzMTUsIDAuNDIwMTk2IiwgXAotICAgICAgICAgICIwLjExMDE5OSwgMC4xNzI5NjUsIDAuMjIzMzAxLCAwLjI1ODE0OSwgMC4zMTM0NywgMC4zNjE3MSwgMC40MzA2NDEiLCBcCi0gICAgICAgICAgIjAuMTIwNjk3LCAwLjE4MzQyOSwgMC4yMzM3MDEsIDAuMjY4NTIxLCAwLjMyMzc4OCwgMC4zNzIwMjYsIDAuNDQwOTAzIiwgXAotICAgICAgICAgICIwLjEzMTY1NiwgMC4xOTQ0MzgsIDAuMjQ0NzAzLCAwLjI3OTQ4MywgMC4zMzQ3OTIsIDAuMzgyOTk5LCAwLjQ1MTg3NyIsIFwKLSAgICAgICAgICAiMC4xNDgzMDgsIDAuMjExMTQyLCAwLjI2MTQ0NSwgMC4yOTYyNDgsIDAuMzUxNTE0LCAwLjM5OTczMywgMC40Njg2MTciLCBcCi0gICAgICAgICAgIjAuMTYyMTIyLCAwLjIyNTMxNiwgMC4yNzU0NjQsIDAuMzEwMjc5LCAwLjM2NTU0MywgMC40MTM3NTYsIDAuNDgyNjMzIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQyNDU4LCAwLjEzNzk2MSwgMC4yMzI0MDQsIDAuMzAxMTA0LCAwLjQxMTcyNywgMC41MTAzNTUsIDAuNjUxNzE3IiwgXAotICAgICAgICAgICIwLjA0MjMzNSwgMC4xMzc3OTksIDAuMjMyMzk3LCAwLjMwMTAzMiwgMC40MTIyMTYsIDAuNTEwNjkyLCAwLjY1MTA0NSIsIFwKLSAgICAgICAgICAiMC4wNDIzMjUsIDAuMTM3Njk0LCAwLjIzMjMxNiwgMC4zMDEwMjYsIDAuNDEyMTg4LCAwLjUxMDY3NSwgMC42NTE2NDIiLCBcCi0gICAgICAgICAgIjAuMDQyMTQ0LCAwLjEzNzYxMywgMC4yMzIxNTEsIDAuMzAxMDU0LCAwLjQxMjA3OSwgMC41MTAyODksIDAuNjUxNjI1IiwgXAotICAgICAgICAgICIwLjA0MzMyNCwgMC4xMzc4MjYsIDAuMjMyNDIxLCAwLjMwMTA5OSwgMC40MTIyMDUsIDAuNTEwMzc3LCAwLjY1MTA3MSIsIFwKLSAgICAgICAgICAiMC4wNDM4MDMsIDAuMTM4MjQxLCAwLjIzMjYzMiwgMC4zMDEyNTYsIDAuNDEyMzEyLCAwLjUxMDY3NiwgMC42NTE2MDkiLCBcCi0gICAgICAgICAgIjAuMDQ1MTMzLCAwLjEzOTMxMiwgMC4yMzMxNjcsIDAuMzAxNzIxLCAwLjQxMjUyNSwgMC41MTA5MzMsIDAuNjUxMTA3Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQxNDc3LCAwLjA5NDQzNCwgMC4xNDU0MTYsIDAuMTgxNzk5LCAwLjI0MDAxOCwgMC4yOTA5MTUsIDAuMzYzNzUxIiwgXAotICAgICAgICAgICIwLjA1MTUzOCwgMC4xMDQ0NjMsIDAuMTU1NDQsIDAuMTkxODQ5LCAwLjI1MDExMywgMC4zMDEwMTgsIDAuMzczNzg3IiwgXAotICAgICAgICAgICIwLjA2MzcxOSwgMC4xMTY2NiwgMC4xNjc2NjEsIDAuMjA0MDgsIDAuMjYyMjYzLCAwLjMxMzI5NCwgMC4zODU5NzEiLCBcCi0gICAgICAgICAgIjAuMDc0NjgxLCAwLjEyNzY1MSwgMC4xNzg2NDQsIDAuMjE1MDM5LCAwLjI3MzI5OCwgMC4zMjQxOTEsIDAuMzk3MDIyIiwgXAotICAgICAgICAgICIwLjA4MzcyOSwgMC4xMzcwNDYsIDAuMTg4MDM2LCAwLjIyNDQxNywgMC4yODI2MjcsIDAuMzMzNTg2LCAwLjQwNjM0NiIsIFwKLSAgICAgICAgICAiMC4wOTY3NjIsIDAuMTUwNzY0LCAwLjIwMTYzLCAwLjIzODAyNywgMC4yOTYyMjMsIDAuMzQ3MTc0LCAwLjQyMDAxOCIsIFwKLSAgICAgICAgICAiMC4xMDU1NzIsIDAuMTYwMjI2LCAwLjIxMDk1MiwgMC4yNDcxODksIDAuMzA1MzU5LCAwLjM1NjI2OCwgMC40MjkwMTMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjYwMzMsIDAuMTI1MDQyLCAwLjIyNzA1OCwgMC4yOTk3ODEsIDAuNDE3NTk4LCAwLjUyMDE2OCwgMC42NjU0MjMiLCBcCi0gICAgICAgICAgIjAuMDI1OTYzLCAwLjEyNTA5OCwgMC4yMjY2OTIsIDAuMjk5NzU0LCAwLjQxNjc0MiwgMC41MTk0OTQsIDAuNjY0ODc5IiwgXAotICAgICAgICAgICIwLjAyNjMwNCwgMC4xMjUxNzIsIDAuMjI3MTQzLCAwLjI5OTQ3NCwgMC40MTc1NTgsIDAuNTE5MDg4LCAwLjY2NjgyOSIsIFwKLSAgICAgICAgICAiMC4wMjc0NTIsIDAuMTI1NDQsIDAuMjI3MTk2LCAwLjI5OTc1LCAwLjQxNjM1MiwgMC41MjAyOTQsIDAuNjY1NDQzIiwgXAotICAgICAgICAgICIwLjAyODc5LCAwLjEyNTgyNiwgMC4yMjc0MjksIDAuMzAwMzkyLCAwLjQxNzQxNiwgMC41MjAzODgsIDAuNjY1MTY1IiwgXAotICAgICAgICAgICIwLjAzMDc3NSwgMC4xMjY2MDcsIDAuMjI3MzM3LCAwLjMwMDAxOCwgMC40MTc3ODgsIDAuNTE4ODU5LCAwLjY2NTQzOSIsIFwKLSAgICAgICAgICAiMC4wMzI2OTUsIDAuMTI3MTM2LCAwLjIyNzkwNSwgMC4zMDA4MDYsIDAuNDE3MTEyLCAwLjUyMDAwMSwgMC42NjcwOSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA4MTAyLCAwLjAwODI1MiwgMC4wMDgyOTksIDAuMDA4MzIxLCAwLjAwODMzNiwgMC4wMDgzMjIsIDAuMDA4MzQzIiwgXAotICAgICAgICAgICIwLjAwNzk2OCwgMC4wMDgxNiwgMC4wMDgyMDcsIDAuMDA4MjI4LCAwLjAwODI0NiwgMC4wMDgyNSwgMC4wMDgyNTkiLCBcCi0gICAgICAgICAgIjAuMDA3OTI3LCAwLjAwODEsIDAuMDA4MTU3LCAwLjAwODE4MSwgMC4wMDgxOTEsIDAuMDA4MiwgMC4wMDgyMTMiLCBcCi0gICAgICAgICAgIjAuMDA3ODgsIDAuMDA4MDY3LCAwLjAwODEyOCwgMC4wMDgxNDUsIDAuMDA4MTY2LCAwLjAwODE3NSwgMC4wMDgxODQiLCBcCi0gICAgICAgICAgIjAuMDA3ODk3LCAwLjAwODA1OSwgMC4wMDgxMTcsIDAuMDA4MTQsIDAuMDA4MTUzLCAwLjAwODE2NCwgMC4wMDgxNzMiLCBcCi0gICAgICAgICAgIjAuMDA3OTAxLCAwLjAwODA0MywgMC4wMDgwOTYsIDAuMDA4MTE3LCAwLjAwODE0LCAwLjAwODE1LCAwLjAwODE2IiwgXAotICAgICAgICAgICIwLjAwNzkyLCAwLjAwODAzMSwgMC4wMDgwOTIsIDAuMDA4MTE3LCAwLjAwODEzNywgMC4wMDgxNDQsIDAuMDA4MTU4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTIxOTQsIDAuMDEyNTAyLCAwLjAxMjU1MSwgMC4wMTI1NjYsIDAuMDEyNTgsIDAuMDEyNTg2LCAwLjAxMjU5MyIsIFwKLSAgICAgICAgICAiMC4wMTIxMjMsIDAuMDEyNDM2LCAwLjAxMjQ5MiwgMC4wMTI1MSwgMC4wMTI1MjcsIDAuMDEyNTM1LCAwLjAxMjU0MiIsIFwKLSAgICAgICAgICAiMC4wMTIwNzUsIDAuMDEyMzg0LCAwLjAxMjQ1NCwgMC4wMTI0NzcsIDAuMDEyNDk4LCAwLjAxMjUwOSwgMC4wMTI1MTkiLCBcCi0gICAgICAgICAgIjAuMDEyMDU2LCAwLjAxMjM1OSwgMC4wMTI0NDEsIDAuMDEyNDY5LCAwLjAxMjQ5NywgMC4wMTI1MTEsIDAuMDEyNTI0IiwgXAotICAgICAgICAgICIwLjAxMjA1OSwgMC4wMTIzNDUsIDAuMDEyNDI3LCAwLjAxMjQ2NCwgMC4wMTI0OTQsIDAuMDEyNTEyLCAwLjAxMjUyNiIsIFwKLSAgICAgICAgICAiMC4wMTIwOTIsIDAuMDEyMzUsIDAuMDEyNDQyLCAwLjAxMjQ3NywgMC4wMTI1MTMsIDAuMDEyNTMxLCAwLjAxMjU0OSIsIFwKLSAgICAgICAgICAiMC4wMTIxNDIsIDAuMDEyMzc5LCAwLjAxMjQ2OSwgMC4wMTI1MDgsIDAuMDEyNTQ1LCAwLjAxMjU2NiwgMC4wMTI1ODYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwODA1OSwgMC4wMDgyNDYsIDAuMDA4MzA1LCAwLjAwODMyMSwgMC4wMDgzNDEsIDAuMDA4MzUyLCAwLjAwODM1OSIsIFwKLSAgICAgICAgICAiMC4wMDgwMTYsIDAuMDA4MTYzLCAwLjAwODIyMiwgMC4wMDgyNDEsIDAuMDA4MjYyLCAwLjAwODI1NiwgMC4wMDgyNjYiLCBcCi0gICAgICAgICAgIjAuMDA3OTE5LCAwLjAwODEwMiwgMC4wMDgxNTksIDAuMDA4MTg1LCAwLjAwODIwOSwgMC4wMDgyMTQsIDAuMDA4MjE3IiwgXAotICAgICAgICAgICIwLjAwNzg4MiwgMC4wMDgwNjksIDAuMDA4MTM1LCAwLjAwODE1NiwgMC4wMDgxNzgsIDAuMDA4MTg2LCAwLjAwODE5NyIsIFwKLSAgICAgICAgICAiMC4wMDc5MSwgMC4wMDgwNiwgMC4wMDgxMjMsIDAuMDA4MTQ1LCAwLjAwODE2NSwgMC4wMDgxNzcsIDAuMDA4MTg3IiwgXAotICAgICAgICAgICIwLjAwNzkzLCAwLjAwODA1NSwgMC4wMDgxMTMsIDAuMDA4MTM1LCAwLjAwODE1NiwgMC4wMDgxNjcsIDAuMDA4MTczIiwgXAotICAgICAgICAgICIwLjAwNzkzLCAwLjAwODAzLCAwLjAwODEwMiwgMC4wMDgxMjYsIDAuMDA4MTQ2LCAwLjAwODE1NSwgMC4wMDgxNzEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMTQ2OCwgMC4wMTE4MDksIDAuMDExODYzLCAwLjAxMTg3OSwgMC4wMTE4OTQsIDAuMDExOTAyLCAwLjAxMTkwOCIsIFwKLSAgICAgICAgICAiMC4wMTEzODksIDAuMDExNzM4LCAwLjAxMTgsIDAuMDExODIxLCAwLjAxMTgzOSwgMC4wMTE4NDgsIDAuMDExODU3IiwgXAotICAgICAgICAgICIwLjAxMTMzNiwgMC4wMTE2ODQsIDAuMDExNzYyLCAwLjAxMTc4OCwgMC4wMTE4MTIsIDAuMDExODI1LCAwLjAxMTgzNiIsIFwKLSAgICAgICAgICAiMC4wMTEzMTIsIDAuMDExNjQ3LCAwLjAxMTczNywgMC4wMTE3NjksIDAuMDExOCwgMC4wMTE4MTUsIDAuMDExODMxIiwgXAotICAgICAgICAgICIwLjAxMTI3NiwgMC4wMTE1OTgsIDAuMDExNjksIDAuMDExNzMsIDAuMDExNzY0LCAwLjAxMTc4MiwgMC4wMTE3OTgiLCBcCi0gICAgICAgICAgIjAuMDExMjkxLCAwLjAxMTU4NywgMC4wMTE2OTEsIDAuMDExNzMxLCAwLjAxMTc3LCAwLjAxMTc5LCAwLjAxMTgxIiwgXAotICAgICAgICAgICIwLjAxMTMyNSwgMC4wMTE1OTksIDAuMDExNzA2LCAwLjAxMTc0OSwgMC4wMTE3OTEsIDAuMDExODE1LCAwLjAxMTgzNiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA4MDU5LCAwLjAwODI1MywgMC4wMDgzMTUsIDAuMDA4MzM1LCAwLjAwODM1OCwgMC4wMDgzNjYsIDAuMDA4Mzc0IiwgXAotICAgICAgICAgICIwLjAwNzk4LCAwLjAwODE3NiwgMC4wMDgyMzMsIDAuMDA4MjUzLCAwLjAwODI3NSwgMC4wMDgyNjgsIDAuMDA4MjgxIiwgXAotICAgICAgICAgICIwLjAwNzkxNSwgMC4wMDgxMDIsIDAuMDA4MTY4LCAwLjAwODE5NCwgMC4wMDgyMTksIDAuMDA4MjMxLCAwLjAwODIzNSIsIFwKLSAgICAgICAgICAiMC4wMDc4OSwgMC4wMDgwNzksIDAuMDA4MTQ0LCAwLjAwODE3LCAwLjAwODE5LCAwLjAwODIwOCwgMC4wMDgyMTkiLCBcCi0gICAgICAgICAgIjAuMDA3OTQ0LCAwLjAwODA2NiwgMC4wMDgxMywgMC4wMDgxNTcsIDAuMDA4MTc5LCAwLjAwODE4OCwgMC4wMDgyMDQiLCBcCi0gICAgICAgICAgIjAuMDA3OTcyLCAwLjAwODA1MSwgMC4wMDgxMTIsIDAuMDA4MTQzLCAwLjAwODE3MSwgMC4wMDgxODQsIDAuMDA4MTk3IiwgXAotICAgICAgICAgICIwLjAwNzkzOCwgMC4wMDgwNTEsIDAuMDA4MTE5LCAwLjAwODE0NiwgMC4wMDgxNywgMC4wMDgxODgsIDAuMDA4MTk2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTA2MTMsIDAuMDEwOTQ0LCAwLjAxMDk5MywgMC4wMTEwMDgsIDAuMDExMDIyLCAwLjAxMTAyOSwgMC4wMTEwMzUiLCBcCi0gICAgICAgICAgIjAuMDEwNTM4LCAwLjAxMDg4NSwgMC4wMTA5NDUsIDAuMDEwOTY0LCAwLjAxMDk4MSwgMC4wMTA5ODksIDAuMDEwOTk3IiwgXAotICAgICAgICAgICIwLjAxMDQ4NiwgMC4wMTA4MjksIDAuMDEwOTA0LCAwLjAxMDkyOSwgMC4wMTA5NTIsIDAuMDEwOTY0LCAwLjAxMDk3NSIsIFwKLSAgICAgICAgICAiMC4wMTA0NDgsIDAuMDEwNzg2LCAwLjAxMDg3NSwgMC4wMTA5MDYsIDAuMDEwOTM1LCAwLjAxMDk1LCAwLjAxMDk2NSIsIFwKLSAgICAgICAgICAiMC4wMTAzOTYsIDAuMDEwNzMzLCAwLjAxMDgzLCAwLjAxMDg2NCwgMC4wMTA4OTYsIDAuMDEwOTE0LCAwLjAxMDkzIiwgXAotICAgICAgICAgICIwLjAxMDQxNSwgMC4wMTA3MjEsIDAuMDEwODIyLCAwLjAxMDg2NCwgMC4wMTA5MDIsIDAuMDEwOTIyLCAwLjAxMDk0MiIsIFwKLSAgICAgICAgICAiMC4wMTA0NDgsIDAuMDEwNzM0LCAwLjAxMDgzOSwgMC4wMTA4OCwgMC4wMTA5MTEsIDAuMDEwOTQ0LCAwLjAxMDk2NSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkQiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA4MDc5LCAwLjAwODI1MiwgMC4wMDgzMjEsIDAuMDA4MzM3LCAwLjAwODM2NywgMC4wMDgzODIsIDAuMDA4MzkiLCBcCi0gICAgICAgICAgIjAuMDA3OTQ2LCAwLjAwODE0NiwgMC4wMDgyMiwgMC4wMDgyNDUsIDAuMDA4MjY2LCAwLjAwODI4NSwgMC4wMDgyOTQiLCBcCi0gICAgICAgICAgIjAuMDA3OTA2LCAwLjAwODEwMSwgMC4wMDgxNzQsIDAuMDA4MiwgMC4wMDgyMjUsIDAuMDA4MjM0LCAwLjAwODI1MSIsIFwKLSAgICAgICAgICAiMC4wMDc5MjQsIDAuMDA4MDk1LCAwLjAwODE3MiwgMC4wMDgyLCAwLjAwODIyNywgMC4wMDgyNDEsIDAuMDA4MjU2IiwgXAotICAgICAgICAgICIwLjAwNzk3OCwgMC4wMDgxMTIsIDAuMDA4MTgxLCAwLjAwODIwOSwgMC4wMDgyMzcsIDAuMDA4MjUsIDAuMDA4MjY3IiwgXAotICAgICAgICAgICIwLjAwODE3NywgMC4wMDgxOSwgMC4wMDgyNDQsIDAuMDA4MjY5LCAwLjAwODI5NiwgMC4wMDgzMDksIDAuMDA4MzIzIiwgXAotICAgICAgICAgICIwLjAwODEwMiwgMC4wMDgyNDQsIDAuMDA4Mjg1LCAwLjAwODMwNSwgMC4wMDgzMywgMC4wMDgzNDIsIDAuMDA4MzU2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDk3MjEsIDAuMDEwMDQ2LCAwLjAxMDA5MSwgMC4wMTAxMDUsIDAuMDEwMTE4LCAwLjAxMDEyNCwgMC4wMTAxMyIsIFwKLSAgICAgICAgICAiMC4wMDk2MzksIDAuMDA5OTg1LCAwLjAxMDA0MSwgMC4wMTAwNTgsIDAuMDEwMDc0LCAwLjAxMDA4MiwgMC4wMTAwODkiLCBcCi0gICAgICAgICAgIjAuMDA5NjA2LCAwLjAwOTkyOSwgMC4wMDk5OTgsIDAuMDEwMDIxLCAwLjAxMDA0MSwgMC4wMTAwNTIsIDAuMDEwMDYyIiwgXAotICAgICAgICAgICIwLjAwOTU0MiwgMC4wMDk4NTMsIDAuMDA5OTQ2LCAwLjAwOTk3NSwgMC4wMTAwMDMsIDAuMDEwMDE3LCAwLjAxMDAzIiwgXAotICAgICAgICAgICIwLjAwOTUyNywgMC4wMDk4NTksIDAuMDA5OTQ3LCAwLjAwOTk4MSwgMC4wMTAwMTIsIDAuMDEwMDI5LCAwLjAxMDA0NCIsIFwKLSAgICAgICAgICAiMC4wMDk1NTksIDAuMDA5ODI2LCAwLjAwOTkyMywgMC4wMDk5NTksIDAuMDA5OTk3LCAwLjAxMDAxNiwgMC4wMTAwMzEiLCBcCi0gICAgICAgICAgIjAuMDA5NjAzLCAwLjAwOTg3NCwgMC4wMDk5NzIsIDAuMDEwMDEzLCAwLjAxMDA1MiwgMC4wMTAwNzUsIDAuMDEwMDk3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IEFPSTIxMVhMICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChBT0kyMTFYTCkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjA4OTYzMjI7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2NjA4MjM7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjU4MzgzOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDY2MDgyMzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyMjYsIDAuMDAwMjI2LCAwLjAwMDIyNiwgMC4wMDAyMjYsIDAuMDAwMjI2LCAwLjAwMDIyNiwgMC4wMDAyMjYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyMzQsIDAuMDAwMjI4LCAwLjAwMDIyNywgMC4wMDAyMjcsIDAuMDAwMjI3LCAwLjAwMDIyNywgMC4wMDAyMjciKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEExKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2NTg1MTc7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjU0ODM4OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDY1ODUxNzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxMjcsIDAuMDAwMTI3LCAwLjAwMDEyNywgMC4wMDAxMjcsIDAuMDAwMTI3LCAwLjAwMDEyNywgMC4wMDAxMjciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyNTcsIDAuMDAwMjU3LCAwLjAwMDI1NywgMC4wMDAyNTcsIDAuMDAwMjU3LCAwLjAwMDI1NywgMC4wMDAyNTciKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2MzM3NDY7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjMwOTY1OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDYzMzc0NjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyLCAwLjAwMDIxNCwgMC4wMDAyMTcsIDAuMDAwMjE4LCAwLjAwMDIxOSwgMC4wMDAyMiwgMC4wMDAyMiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDI0MSwgMC4wMDAyNDIsIDAuMDAwMjQyLCAwLjAwMDI0MiwgMC4wMDAyNDIsIDAuMDAwMjQyLCAwLjAwMDI0MiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQzApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY0OTMxNDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2NDkzMTQ7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjQ5MjE5OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDA2MiwgMC4wMDAwNjIsIDAuMDAwMDYyLCAwLjAwMDA2MiwgMC4wMDAwNjIsIDAuMDAwMDYyLCAwLjAwMDA2MiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDIxNSwgMC4wMDAyMTQsIDAuMDAwMjE0LCAwLjAwMDIxNCwgMC4wMDAyMTQsIDAuMDAwMjE0LCAwLjAwMDIxNCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjA1NTU1NzE7Ci0gICAgZnVuY3Rpb24gOiAiKCEoKChBMCBBMSkrQjApK0MwKSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMzcwNzcsIDAuMjc2Njk5LCAwLjYzMzM1NCwgMS4yMjgyMSwgMS44MjIyMiwgMy4yMDg0NSwgMy45OTg5OCIsIFwKLSAgICAgICAgICAiMC4yNDYzNjQsIDAuMjg2MTg3LCAwLjY0Mjc3NCwgMS4yMzc3MSwgMS44MzE0NSwgMy4yMTY4NiwgNC4wMDg4IiwgXAotICAgICAgICAgICIwLjI1NTk3MiwgMC4yOTU1OTksIDAuNjUyMTE0LCAxLjI0NjkzLCAxLjg0MTE3LCAzLjIyNzU1LCA0LjAxODE0IiwgXAotICAgICAgICAgICIwLjI2NDY4NywgMC4zMDQyMjEsIDAuNjYxMDk5LCAxLjI1NTM2LCAxLjg1MDQ1LCAzLjIzNTQ2LCA0LjAyNjg4IiwgXAotICAgICAgICAgICIwLjI3MjU2MiwgMC4zMTIyMDgsIDAuNjY5MDc2LCAxLjI2NDE0LCAxLjg1ODEsIDMuMjQ0NDYsIDQuMDM0OTkiLCBcCi0gICAgICAgICAgIjAuMjg1MTc4LCAwLjMyNDg0OCwgMC42ODE5MTYsIDEuMjc2ODUsIDEuODcxMTYsIDMuMjU2MDMsIDQuMDQ3OTciLCBcCi0gICAgICAgICAgIjAuMjk1OTUsIDAuMzM1NjcsIDAuNjkyNDk0LCAxLjI4NjgyLCAxLjg4MTA4LCAzLjI2NjkxLCA0LjA1ODkyIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjQ0Mjg2LCAwLjUyMjg1OSwgMS4yMzk2NiwgMi40MzQyMywgMy42MjgyNSwgNi40MTM0MSwgOC4wMDk0OCIsIFwKLSAgICAgICAgICAiMC40NDMxNjIsIDAuNTIyNjg3LCAxLjIzOTY1LCAyLjQzMzksIDMuNjI5MDYsIDYuNDE2LCA4LjAwOTk0IiwgXAotICAgICAgICAgICIwLjQ0MjgwNiwgMC41MjI2NTEsIDEuMjM5NDcsIDIuNDM0LCAzLjYyODI3LCA2LjQxMzc2LCA4LjAwOTYiLCBcCi0gICAgICAgICAgIjAuNDQyODU2LCAwLjUyMjY4LCAxLjIzOTUxLCAyLjQzMzY3LCAzLjYyODg1LCA2LjQxNjg3LCA4LjAwODgyIiwgXAotICAgICAgICAgICIwLjQ0MjkwMywgMC41MjI2OTQsIDEuMjM5NiwgMi40MzQ3NywgMy42Mjg1MSwgNi40MTI5NiwgOC4wMDgxMiIsIFwKLSAgICAgICAgICAiMC40NDQ0NDksIDAuNTIzNTIzLCAxLjIzOTY3LCAyLjQzNDc3LCAzLjYyODgyLCA2LjQxNTg5LCA4LjAxMDAxIiwgXAotICAgICAgICAgICIwLjQ0NjY1NywgMC41MjUyOTEsIDEuMjM5NTEsIDIuNDMzNCwgMy42Mjc5NCwgNi40MTYyNCwgOC4wMDk5NCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNTc2MDksIDAuMTgzMjE1LCAwLjQxMjg5OCwgMC43OTQ0NzIsIDEuMTc2NjEsIDIuMDY3NDYsIDIuNTc1MDciLCBcCi0gICAgICAgICAgIjAuMTY2NDY0LCAwLjE5MjA3MSwgMC40MjE2MDYsIDAuODAzNDI2LCAxLjE4NTE2LCAyLjA3NTI0LCAyLjU4NDM0IiwgXAotICAgICAgICAgICIwLjE3NzM5MSwgMC4yMDMwNTksIDAuNDMyNzYyLCAwLjgxNDMzOCwgMS4xOTY1OCwgMi4wODcxOSwgMi41OTQ3OSIsIFwKLSAgICAgICAgICAiMC4xODgzMjUsIDAuMjEzOTg5LCAwLjQ0MzcyNSwgMC44MjU4MjEsIDEuMjA3NiwgMi4wOTc1MiwgMi42MDYxOCIsIFwKLSAgICAgICAgICAiMC4xOTkxMzcsIDAuMjI0OTQzLCAwLjQ1NDY0MywgMC44MzY1MDksIDEuMjE3ODgsIDIuMTA4MzksIDIuNjE2ODkiLCBcCi0gICAgICAgICAgIjAuMjE2NDczLCAwLjI0MjI2OCwgMC40NzIxOTMsIDAuODU0MzIxLCAxLjIzNTU5LCAyLjEyNTM2LCAyLjYzNDc1IiwgXAotICAgICAgICAgICIwLjIzMTc4NiwgMC4yNTc3MTUsIDAuNDg3ODczLCAwLjg2OTgzMiwgMS4yNTEyNywgMi4xNDEzOSwgMi42NDk3NCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yODczNzgsIDAuMzM3NzcsIDAuNzg5MDc3LCAxLjU0MTQ5LCAyLjI5MzUxLCA0LjA0ODIyLCA1LjA0OTY3IiwgXAotICAgICAgICAgICIwLjI4NzM4LCAwLjMzNzU0NCwgMC43ODg3MTUsIDEuNTQxNTcsIDIuMjkzMTcsIDQuMDQ2OTcsIDUuMDUwNTEiLCBcCi0gICAgICAgICAgIjAuMjg3NTUyLCAwLjMzNzc2LCAwLjc4ODk4MywgMS41NDE0NCwgMi4yOTMwNSwgNC4wNDczNCwgNS4wNDk3MyIsIFwKLSAgICAgICAgICAiMC4yODc3NTgsIDAuMzM3NjUsIDAuNzg4ODgzLCAxLjU0MDksIDIuMjkyNzcsIDQuMDQ4MjksIDUuMDUwODkiLCBcCi0gICAgICAgICAgIjAuMjg5NTU5LCAwLjMzODk1NCwgMC43ODg4ODYsIDEuNTQxNjMsIDIuMjkzNTksIDQuMDQ3MDUsIDUuMDUxMzkiLCBcCi0gICAgICAgICAgIjAuMjkzNzA5LCAwLjM0MjYxNiwgMC43ODkxOTgsIDEuNTQwODYsIDIuMjkyOTYsIDQuMDQ3MTUsIDUuMDUxNDYiLCBcCi0gICAgICAgICAgIjAuMjk5MTk4LCAwLjM0NzUwMiwgMC43ODkyODcsIDEuNTQxMTEsIDIuMjkyNzcsIDQuMDQ4NTMsIDUuMDUzNTIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIzMDk2NiwgMC4yNzAwMzcsIDAuNjIzNjk4LCAxLjIxMzMsIDEuODAyNDgsIDMuMTc1OTMsIDMuOTYwNTYiLCBcCi0gICAgICAgICAgIjAuMjQwMTQxLCAwLjI3OTcwNCwgMC42MzMxMzQsIDEuMjIzMDYsIDEuODExNjcsIDMuMTg1MTYsIDMuOTcwMzIiLCBcCi0gICAgICAgICAgIjAuMjQ5NzM2LCAwLjI4ODk5MSwgMC42NDI1MSwgMS4yMzI0MiwgMS44MjEzOSwgMy4xOTU5MiwgMy45Nzk4OSIsIFwKLSAgICAgICAgICAiMC4yNTg0MjYsIDAuMjk3NjA3LCAwLjY1MTQwMywgMS4yNDA4NiwgMS44MzA3OCwgMy4yMDM4MiwgMy45ODg1IiwgXAotICAgICAgICAgICIwLjI2NjI0NywgMC4zMDU2MTMsIDAuNjU5NTAyLCAxLjI0OTEsIDEuODM4MzgsIDMuMjEyOTksIDMuOTk2NjUiLCBcCi0gICAgICAgICAgIjAuMjc4OTAzLCAwLjMxODI3NiwgMC42NzIxNjUsIDEuMjYyMDUsIDEuODUxMjMsIDMuMjI0NDgsIDQuMDA5NzEiLCBcCi0gICAgICAgICAgIjAuMjg5NjUsIDAuMzI5MDU2LCAwLjY4Mjk0MSwgMS4yNzIzOCwgMS44NjE3MSwgMy4yMzU0NiwgNC4wMjA3MSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC40MzM2MzUsIDAuNTEzNjUyLCAxLjIyNTkzLCAyLjQxMzIxLCAzLjYwMDEzLCA2LjM1NTk1LCA3LjkzMjI2IiwgXAotICAgICAgICAgICIwLjQzNDU0MSwgMC41MTI1NzcsIDEuMjIzNTcsIDIuNDA3NDEsIDMuNTk5NjksIDYuMzU4MTcsIDcuOTMzMTkiLCBcCi0gICAgICAgICAgIjAuNDM0NjE0LCAwLjUxMzY0NywgMS4yMjM4NiwgMi40MTMyLCAzLjU5OTgxLCA2LjM1MjcxLCA3LjkzMDIyIiwgXAotICAgICAgICAgICIwLjQzNDY3MywgMC41MTI5NDUsIDEuMjIzNiwgMi40MTI4OCwgMy41OTA5NywgNi4zNTU5NCwgNy45MzIyOCIsIFwKLSAgICAgICAgICAiMC40MzQ0OTMsIDAuNTEyNzE0LCAxLjIyNTY5LCAyLjQwNzI0LCAzLjU5OTg1LCA2LjM1MjAyLCA3LjkzMTY3IiwgXAotICAgICAgICAgICIwLjQzNjA1NCwgMC41MTQ0NTMsIDEuMjIzNTEsIDIuNDA3NiwgMy41OTE5NywgNi4zNTY1NywgNy45MzI2NSIsIFwKLSAgICAgICAgICAiMC40Mzc4MjQsIDAuNTE1OTQ3LCAxLjIyMzU3LCAyLjQxMjUxLCAzLjU5OTQ1LCA2LjM1Njc5LCA3LjkzMjY2Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE1NTM4OCwgMC4xODEwMDIsIDAuNDEwNTUyLCAwLjc5MjI0NSwgMS4xNzQwMSwgMi4wNjQ4OSwgMi41NzIzMyIsIFwKLSAgICAgICAgICAiMC4xNjQ0MTYsIDAuMTkwMDI1LCAwLjQxOTU5OCwgMC44MDE1NjksIDEuMTgyOSwgMi4wNzMwOSwgMi41ODIwMSIsIFwKLSAgICAgICAgICAiMC4xNzU4NjUsIDAuMjAxNDg2LCAwLjQzMTAzNiwgMC44MTI4OTcsIDEuMTk0NzQsIDIuMDg0OTMsIDIuNTkzNzciLCBcCi0gICAgICAgICAgIjAuMTg3NTEsIDAuMjEzMTM0LCAwLjQ0Mjc5NSwgMC44MjQ0NTQsIDEuMjA1OTMsIDIuMDk2ODgsIDIuNjA1MTMiLCBcCi0gICAgICAgICAgIjAuMTk5MjQsIDAuMjI0ODgzLCAwLjQ1NDU0NiwgMC44MzYxODcsIDEuMjE3NzQsIDIuMTA4NDgsIDIuNjE2NjkiLCBcCi0gICAgICAgICAgIjAuMjE3OTczLCAwLjI0MzY0OSwgMC40NzMxNzEsIDAuODU1MDYyLCAxLjIzNjMyLCAyLjEyNzU0LCAyLjYzNTIyIiwgXAotICAgICAgICAgICIwLjIzNDYyMywgMC4yNjAxMTgsIDAuNDg5NDU4LCAwLjg3MTQ2NSwgMS4yNTI4MSwgMi4xNDI0MiwgMi42NTE1MSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yODc0LCAwLjMzNzQ4NiwgMC43ODg4OTYsIDEuNTQxNDgsIDIuMjkzMTgsIDQuMDQ3MjgsIDUuMDQ5NDQiLCBcCi0gICAgICAgICAgIjAuMjg3MzI1LCAwLjMzNzc0NiwgMC43ODkyNDksIDEuNTQxMjYsIDIuMjkzNzMsIDQuMDQ4MTEsIDUuMDQ5OTUiLCBcCi0gICAgICAgICAgIjAuMjg3NDUsIDAuMzM3NTAzLCAwLjc4ODcyLCAxLjU0MTYzLCAyLjI5MjY2LCA0LjA0ODQyLCA1LjA1MDQ4IiwgXAotICAgICAgICAgICIwLjI4Nzg4MiwgMC4zMzc4NjYsIDAuNzg4ODg2LCAxLjU0MDk0LCAyLjI5MzY3LCA0LjA0Nzg5LCA1LjA1MTMzIiwgXAotICAgICAgICAgICIwLjI5MDQxOCwgMC4zMzkyNTUsIDAuNzg5MDcyLCAxLjU0MDk2LCAyLjI5MzgyLCA0LjA0ODU0LCA1LjA0OTYzIiwgXAotICAgICAgICAgICIwLjI5NzMxMSwgMC4zNDQ3ODgsIDAuNzg5MjU1LCAxLjU0MDc4LCAyLjI5MjgxLCA0LjA0NzUyLCA1LjA0OTY3IiwgXAotICAgICAgICAgICIwLjMwNTM0LCAwLjM1MTUzNywgMC43ODk0OTEsIDEuNTQxMDEsIDIuMjkzODcsIDQuMDQ4MzQsIDUuMDUxMzQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjAiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIyOTg5MywgMC4yNjkzOTUsIDAuNjI2MzIsIDEuMjIwNTksIDEuODE1OTcsIDMuMjAwMzUsIDMuOTkxOTEiLCBcCi0gICAgICAgICAgIjAuMjM4MjM5LCAwLjI3Nzg0LCAwLjYzNDg2MiwgMS4yMjg1MywgMS44MjQwNywgMy4yMDkyLCA0LjAwMDY1IiwgXAotICAgICAgICAgICIwLjI0Nzk3NiwgMC4yODc3MjcsIDAuNjQ0Mzc1LCAxLjIzOTU2LCAxLjgzMzEsIDMuMjE4NjcsIDQuMDEwNjIiLCBcCi0gICAgICAgICAgIjAuMjU3NTkyLCAwLjI5NzM3MiwgMC42NTQwNzMsIDEuMjQ5NTQsIDEuODQzMjcsIDMuMjI4OCwgNC4wMjAzNyIsIFwKLSAgICAgICAgICAiMC4yNjcyOTIsIDAuMzA2Njg0LCAwLjY2NDEyLCAxLjI1OTE1LCAxLjg1MzM0LCAzLjIzODM2LCA0LjAzMDAyIiwgXAotICAgICAgICAgICIwLjI4MjY4NiwgMC4zMjI2OCwgMC42Nzk1OSwgMS4yNzM5LCAxLjg2OTI1LCAzLjI1NTE1LCA0LjA0NTY4IiwgXAotICAgICAgICAgICIwLjI5NjExOSwgMC4zMzYwMDYsIDAuNjkyOSwgMS4yODc2NCwgMS44ODE3MywgMy4yNjc4LCA0LjA1OTM4Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjQ0Mjc0OSwgMC41MjI3OTIsIDEuMjQwMDgsIDIuNDMzODcsIDMuNjI4NTIsIDYuNDE3MDcsIDguMDA5NTUiLCBcCi0gICAgICAgICAgIjAuNDQyOTAyLCAwLjUyMjYwMiwgMS4yMzk2NywgMi40MzUxNSwgMy42Mjg4NiwgNi40MTYzLCA4LjAwNDkiLCBcCi0gICAgICAgICAgIjAuNDQyOCwgMC41MjI1NCwgMS4yMzk3MywgMi40MzM4OCwgMy42MjgxOCwgNi40MTk2MiwgOC4wMDk4NCIsIFwKLSAgICAgICAgICAiMC40NDMwMiwgMC41MjI0OTUsIDEuMjM5NTIsIDIuNDMzOTQsIDMuNjI4ODEsIDYuNDE1NzksIDguMDA5NzkiLCBcCi0gICAgICAgICAgIjAuNDQzNDY3LCAwLjUyMjU5NCwgMS4yMzk5NywgMi40MzM4OCwgMy42Mjg4OSwgNi40MTkwNiwgOC4wMDk1OSIsIFwKLSAgICAgICAgICAiMC40NDU3OTMsIDAuNTI0NDAyLCAxLjIzOTU0LCAyLjQzMzM0LCAzLjYyODgsIDYuNDE0MzMsIDguMDA5MDciLCBcCi0gICAgICAgICAgIjAuNDQ5MzM5LCAwLjUyNzI0NSwgMS4yMzk0NiwgMi40MzM1OSwgMy42Mjc4NiwgNi40MjAwMSwgOC4wMDk1OCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODE0ODgsIDAuMDk1MzU0LCAwLjIyMDAzMywgMC40Mjc2NjQsIDAuNjM1MTY5LCAxLjExOTM0LCAxLjM5NTg1IiwgXAotICAgICAgICAgICIwLjA5MTY3OCwgMC4xMDU0OTMsIDAuMjMwMTU4LCAwLjQzNzc5MiwgMC42NDUyOTgsIDEuMTI5NDQsIDEuNDA1NzQiLCBcCi0gICAgICAgICAgIjAuMTA0NzEzLCAwLjExODYwMiwgMC4yNDMyNDIsIDAuNDQ5NzI5LCAwLjY1NzE3NSwgMS4xNDEzMywgMS40MTc3NiIsIFwKLSAgICAgICAgICAiMC4xMTY5NjMsIDAuMTMwODA4LCAwLjI1NTc0NCwgMC40NjMwODIsIDAuNjY5OTQyLCAxLjE1MjcxLCAxLjQyOTA0IiwgXAotICAgICAgICAgICIwLjEzMDI0MiwgMC4xNDM1OTMsIDAuMjY4NDE3LCAwLjQ3NTc2NiwgMC42ODMyOTYsIDEuMTY0NjEsIDEuNDQxNDYiLCBcCi0gICAgICAgICAgIjAuMTUxMTgsIDAuMTY0OTU2LCAwLjI4OTE0NywgMC40OTYyOTYsIDAuNzAzNjUyLCAxLjE4NDQsIDEuNDYwOTUiLCBcCi0gICAgICAgICAgIjAuMTY5MzE5LCAwLjE4MzE0MSwgMC4zMDY0MywgMC41MTQyNywgMC43MjE0MzgsIDEuMjAxOTQsIDEuNDc4ODQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTU1Nzg4LCAwLjE4MzUwOSwgMC40MzI2NjksIDAuODQ4MDk5LCAxLjI2MzQzLCAyLjIzMjk3LCAyLjc4NzM5IiwgXAotICAgICAgICAgICIwLjE1NTgwNiwgMC4xODM0OSwgMC40MzI3NjMsIDAuODQ3OTI2LCAxLjI2MzM5LCAyLjIzMjU2LCAyLjc4NjUxIiwgXAotICAgICAgICAgICIwLjE1NjgzNSwgMC4xODM5NjgsIDAuNDMyNzI3LCAwLjg0Nzk5MSwgMS4yNjMxNSwgMi4yMzMzMSwgMi43ODY2NCIsIFwKLSAgICAgICAgICAiMC4xNjA5ODUsIDAuMTg3MjA4LCAwLjQzMjY3LCAwLjg0Nzk2MSwgMS4yNjMzLCAyLjIzMzA3LCAyLjc4NzIiLCBcCi0gICAgICAgICAgIjAuMTY2MjM4LCAwLjE5MjE1MiwgMC40MzMwNDYsIDAuODQ4MDY0LCAxLjI2MzM5LCAyLjIzMzM3LCAyLjc4NzA5IiwgXAotICAgICAgICAgICIwLjE3NzA3NywgMC4yMDE2ODgsIDAuNDM2MzMsIDAuODQ4MDMxLCAxLjI2MzE0LCAyLjIzMjI5LCAyLjc4Njg1IiwgXAotICAgICAgICAgICIwLjE4ODAzMiwgMC4yMTE2OTEsIDAuNDQxNjg5LCAwLjg0ODAxOSwgMS4yNjMzMSwgMi4yMzI1NiwgMi43ODc0NiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjIyMDYyLCAwLjI2MTczOSwgMC42MTg0ODUsIDEuMjEyNjYsIDEuODA2NzYsIDMuMTkyNjUsIDMuOTg0NTgiLCBcCi0gICAgICAgICAgIjAuMjMwNTg1LCAwLjI3MDIyOCwgMC42MjY3ODMsIDEuMjIxMjIsIDEuODE1MTEsIDMuMjAxMjUsIDMuOTkyOTEiLCBcCi0gICAgICAgICAgIjAuMjQwOTc1LCAwLjI4MDY3MSwgMC42Mzc4ODYsIDEuMjMxOCwgMS44MjY0NiwgMy4yMTI4OCwgNC4wMDMzNiIsIFwKLSAgICAgICAgICAiMC4yNTEyMTQsIDAuMjkxMjA1LCAwLjY0ODE1NSwgMS4yNDIyMiwgMS44Mzc1OSwgMy4yMjMwMiwgNC4wMTQxOSIsIFwKLSAgICAgICAgICAiMC4yNjIxNjUsIDAuMzAxODk3LCAwLjY1ODg5MSwgMS4yNTI5MywgMS44NDc4NiwgMy4yMzQyOSwgNC4wMjUzOSIsIFwKLSAgICAgICAgICAiMC4yNzkyMjEsIDAuMzE4OTg2LCAwLjY3NTc0MSwgMS4yNjk5OCwgMS44NjUxNywgMy4yNTEyNSwgNC4wNDI0MiIsIFwKLSAgICAgICAgICAiMC4yOTQzMTQsIDAuMzMzODk3LCAwLjY5MDg3NywgMS4yODUxNSwgMS44NzkzNSwgMy4yNjUyOCwgNC4wNTY4NCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC40NDMwNywgMC41MjI1MTUsIDEuMjM5NjYsIDIuNDM0MzcsIDMuNjI4ODcsIDYuNDE5OTYsIDguMDA5OTkiLCBcCi0gICAgICAgICAgIjAuNDQyODI2LCAwLjUyMjQ5NCwgMS4yMzk1OCwgMi40MzQzLCAzLjYyODM0LCA2LjQxOTY0LCA4LjAwOTciLCBcCi0gICAgICAgICAgIjAuNDQyODU1LCAwLjUyMjg0OCwgMS4yMzk3OCwgMi40MzQ5MywgMy42Mjg0MSwgNi40MTM2NCwgOC4wMDkxIiwgXAotICAgICAgICAgICIwLjQ0MjY0NCwgMC41MjI2MTksIDEuMjM5NywgMi40MzMyOSwgMy42Mjg3OCwgNi40MTU5MiwgOC4wMDk1OSIsIFwKLSAgICAgICAgICAiMC40NDMzNjEsIDAuNTIyNDMsIDEuMjM5NTMsIDIuNDM1MTksIDMuNjI4NSwgNi40MTM5NiwgOC4wMTAxNCIsIFwKLSAgICAgICAgICAiMC40NDcyOTEsIDAuNTI1MDE1LCAxLjIzOTQ5LCAyLjQzMzMyLCAzLjYyOTMsIDYuNDEzNjcsIDguMDAzOTMiLCBcCi0gICAgICAgICAgIjAuNDUyODYzLCAwLjUyOTQwNSwgMS4yMzk3OCwgMi40MzM1OCwgMy42Mjk4NCwgNi40MjAwNCwgOC4wMDk1OCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzg4NTUsIDAuMDkyNjc2LCAwLjIxNzI0LCAwLjQyNDc5LCAwLjYzMjMwOCwgMS4xMTY2NSwgMS4zOTI3NCIsIFwKLSAgICAgICAgICAiMC4wODkwODQsIDAuMTAyOTI5LCAwLjIyNzQ3NiwgMC40MzUwNDksIDAuNjQyNTcsIDEuMTI2ODgsIDEuNDAzMDEiLCBcCi0gICAgICAgICAgIjAuMTAxNzA0LCAwLjExNTcwNCwgMC4yNDAxMjMsIDAuNDQ3MzI3LCAwLjY1NDYzMywgMS4xMzg1OSwgMS40MTQ5OCIsIFwKLSAgICAgICAgICAiMC4xMTQ2OTcsIDAuMTI4Mjg5LCAwLjI1MzAzOCwgMC40NjA0MjUsIDAuNjY3OTA2LCAxLjE1MDA3LCAxLjQyNjQ0IiwgXAotICAgICAgICAgICIwLjEyNzczLCAwLjE0MTUxMiwgMC4yNjU4MjQsIDAuNDczMTEsIDAuNjgwNjI1LCAxLjE2MjM2LCAxLjQzODg4IiwgXAotICAgICAgICAgICIwLjE0ODU5MSwgMC4xNjI0NDcsIDAuMjg1OTYxLCAwLjQ5MzY4MSwgMC43MDA5ODQsIDEuMTgxODgsIDEuNDU4MjkiLCBcCi0gICAgICAgICAgIjAuMTY2NjgyLCAwLjE4MDY1OCwgMC4zMDM5MDUsIDAuNTExNzIxLCAwLjcxODkyLCAxLjE5OTU5LCAxLjQ3NjE2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE1MjgxLCAwLjE4MDUwMywgMC40Mjk1NzgsIDAuODQ1NzQyLCAxLjI2MTM0LCAyLjIzMDMzLCAyLjc5MTUiLCBcCi0gICAgICAgICAgIjAuMTUyODM1LCAwLjE4MDUxOSwgMC40Mjk3NzUsIDAuODQ1NjQ0LCAxLjI2MDg0LCAyLjIzNjAxLCAyLjc5MTAxIiwgXAotICAgICAgICAgICIwLjE1NDA3MywgMC4xODEwNjcsIDAuNDI5NzQ1LCAwLjg0NTE2OCwgMS4yNjEyOCwgMi4yMzA0MSwgMi43OTAzMiIsIFwKLSAgICAgICAgICAiMC4xNTgyMDQsIDAuMTg0MzUxLCAwLjQyOTcxNywgMC44NDUwMzcsIDEuMjYyMDIsIDIuMjMxMzQsIDIuNzkwNjkiLCBcCi0gICAgICAgICAgIjAuMTYzNTI5LCAwLjE4OTAxNSwgMC40MzAwNzIsIDAuODQ1MTA4LCAxLjI2MDk4LCAyLjIzMjA5LCAyLjc4NjUiLCBcCi0gICAgICAgICAgIjAuMTc0NDY3LCAwLjE5ODk5NiwgMC40MzM1NjEsIDAuODQ1NDQxLCAxLjI2MDc4LCAyLjIzMjgxLCAyLjc5MjM3IiwgXAotICAgICAgICAgICIwLjE4NTUxLCAwLjIwOTA5OCwgMC40Mzg4MDMsIDAuODQ1MjE1LCAxLjI2MjAyLCAyLjIzMDkyLCAyLjc4Njg1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjI0NCwgMC4wMDIyNDQsIDAuMDAyMjQ0LCAwLjAwMjI0NCwgMC4wMDIyNDQsIDAuMDAyMjQzLCAwLjAwMjI0MiIsIFwKLSAgICAgICAgICAiMC4wMDIyNCwgMC4wMDIyNCwgMC4wMDIyNDEsIDAuMDAyMjQyLCAwLjAwMjI0MiwgMC4wMDIyNDEsIDAuMDAyMjQiLCBcCi0gICAgICAgICAgIjAuMDAyMjM3LCAwLjAwMjIzOCwgMC4wMDIyNCwgMC4wMDIyNCwgMC4wMDIyNCwgMC4wMDIyNCwgMC4wMDIyNCIsIFwKLSAgICAgICAgICAiMC4wMDIyMzUsIDAuMDAyMjM2LCAwLjAwMjIzOSwgMC4wMDIyMzksIDAuMDAyMjQsIDAuMDAyMjM5LCAwLjAwMjIzOSIsIFwKLSAgICAgICAgICAiMC4wMDIyMzMsIDAuMDAyMjM0LCAwLjAwMjIzOCwgMC4wMDIyNCwgMC4wMDIyNCwgMC4wMDIyMzksIDAuMDAyMjM5IiwgXAotICAgICAgICAgICIwLjAwMjIzMSwgMC4wMDIyMzIsIDAuMDAyMjM3LCAwLjAwMjIzOSwgMC4wMDIyMzksIDAuMDAyMjM5LCAwLjAwMjI0IiwgXAotICAgICAgICAgICIwLjAwMjIyOSwgMC4wMDIyMzEsIDAuMDAyMjM2LCAwLjAwMjIzOCwgMC4wMDIyMzksIDAuMDAyMjM5LCAwLjAwMjI0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwNTc2LCAwLjAwMDU3NiwgMC4wMDA1NzUsIDAuMDAwNTc1LCAwLjAwMDU3NSwgMC4wMDA1NzQsIDAuMDAwNTczIiwgXAotICAgICAgICAgICIwLjAwMDU1OSwgMC4wMDA1NTksIDAuMDAwNTYsIDAuMDAwNTU5LCAwLjAwMDU1OSwgMC4wMDA1NiwgMC4wMDA1NTgiLCBcCi0gICAgICAgICAgIjAuMDAwNTU0LCAwLjAwMDU1NCwgMC4wMDA1NTUsIDAuMDAwNTU2LCAwLjAwMDU1NSwgMC4wMDA1NTQsIDAuMDAwNTU1IiwgXAotICAgICAgICAgICIwLjAwMDU1MSwgMC4wMDA1NTIsIDAuMDAwNTU0LCAwLjAwMDU1NCwgMC4wMDA1NTQsIDAuMDAwNTUzLCAwLjAwMDU1MiIsIFwKLSAgICAgICAgICAiMC4wMDA1NDksIDAuMDAwNTUsIDAuMDAwNTUzLCAwLjAwMDU1MywgMC4wMDA1NTQsIDAuMDAwNTUyLCAwLjAwMDU1MyIsIFwKLSAgICAgICAgICAiMC4wMDA1NDgsIDAuMDAwNTQ4LCAwLjAwMDU1MSwgMC4wMDA1NTIsIDAuMDAwNTUyLCAwLjAwMDU1MiwgMC4wMDA1NTEiLCBcCi0gICAgICAgICAgIjAuMDAwNTQ4LCAwLjAwMDU0OCwgMC4wMDA1NTEsIDAuMDAwNTUyLCAwLjAwMDU1MiwgMC4wMDA1NTEsIDAuMDAwNTUxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjAxNSwgMC4wMDIwMTUsIDAuMDAyMDE2LCAwLjAwMjAxNiwgMC4wMDIwMTYsIDAuMDAyMDE2LCAwLjAwMjAxNiIsIFwKLSAgICAgICAgICAiMC4wMDIwMTIsIDAuMDAyMDEzLCAwLjAwMjAxNSwgMC4wMDIwMTcsIDAuMDAyMDE3LCAwLjAwMjAxNywgMC4wMDIwMiIsIFwKLSAgICAgICAgICAiMC4wMDIwMDcsIDAuMDAyMDEsIDAuMDAyMDE0LCAwLjAwMjAxNSwgMC4wMDIwMTYsIDAuMDAyMDE5LCAwLjAwMjAxNyIsIFwKLSAgICAgICAgICAiMC4wMDIwMDIsIDAuMDAyMDA0LCAwLjAwMjAxMiwgMC4wMDIwMTYsIDAuMDAyMDE3LCAwLjAwMjAxOCwgMC4wMDIwMTgiLCBcCi0gICAgICAgICAgIjAuMDAxOTk4LCAwLjAwMiwgMC4wMDIwMSwgMC4wMDIwMTQsIDAuMDAyMDE2LCAwLjAwMjAxOSwgMC4wMDIwMTgiLCBcCi0gICAgICAgICAgIjAuMDAxOTkzLCAwLjAwMTk5NSwgMC4wMDIwMDcsIDAuMDAyMDEzLCAwLjAwMjAxNSwgMC4wMDIwMTYsIDAuMDAyMDE3IiwgXAotICAgICAgICAgICIwLjAwMTk4OSwgMC4wMDE5OTIsIDAuMDAyMDA1LCAwLjAwMjAxMSwgMC4wMDIwMTQsIDAuMDAyMDE2LCAwLjAwMjAxNyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDU3NiwgMC4wMDA1NzYsIDAuMDAwNTc1LCAwLjAwMDU3NSwgMC4wMDA1NzUsIDAuMDAwNTc0LCAwLjAwMDU3MyIsIFwKLSAgICAgICAgICAiMC4wMDA1NTksIDAuMDAwNTU5LCAwLjAwMDU1OSwgMC4wMDA1NTksIDAuMDAwNTU5LCAwLjAwMDU1OCwgMC4wMDA1NTciLCBcCi0gICAgICAgICAgIjAuMDAwNTUzLCAwLjAwMDU1NCwgMC4wMDA1NTUsIDAuMDAwNTU1LCAwLjAwMDU1NSwgMC4wMDA1NTQsIDAuMDAwNTU0IiwgXAotICAgICAgICAgICIwLjAwMDU1MiwgMC4wMDA1NTIsIDAuMDAwNTU0LCAwLjAwMDU1NCwgMC4wMDA1NTMsIDAuMDAwNTUzLCAwLjAwMDU1MiIsIFwKLSAgICAgICAgICAiMC4wMDA1NTEsIDAuMDAwNTUyLCAwLjAwMDU1MywgMC4wMDA1NTMsIDAuMDAwNTUzLCAwLjAwMDU1MiwgMC4wMDA1NTIiLCBcCi0gICAgICAgICAgIjAuMDAwNTU0LCAwLjAwMDU1NCwgMC4wMDA1NTMsIDAuMDAwNTUzLCAwLjAwMDU1MywgMC4wMDA1NTIsIDAuMDAwNTUxIiwgXAotICAgICAgICAgICIwLjAwMDU1OCwgMC4wMDA1NTgsIDAuMDAwNTU1LCAwLjAwMDU1NCwgMC4wMDA1NTMsIDAuMDAwNTUyLCAwLjAwMDU1MSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDE3NjEsIDAuMDAxNzYxLCAwLjAwMTc2MiwgMC4wMDE3NjEsIDAuMDAxNzYxLCAwLjAwMTc2MSwgMC4wMDE3NiIsIFwKLSAgICAgICAgICAiMC4wMDE3NTYsIDAuMDAxNzU3LCAwLjAwMTc1OSwgMC4wMDE3NjEsIDAuMDAxNzYxLCAwLjAwMTc2LCAwLjAwMTc2IiwgXAotICAgICAgICAgICIwLjAwMTc1MSwgMC4wMDE3NTIsIDAuMDAxNzU3LCAwLjAwMTc1OSwgMC4wMDE3NiwgMC4wMDE3NiwgMC4wMDE3NiIsIFwKLSAgICAgICAgICAiMC4wMDE3NDcsIDAuMDAxNzQ5LCAwLjAwMTc1NSwgMC4wMDE3NTgsIDAuMDAxNzU5LCAwLjAwMTc2LCAwLjAwMTc1OSIsIFwKLSAgICAgICAgICAiMC4wMDE3NDQsIDAuMDAxNzQ0LCAwLjAwMTc1NCwgMC4wMDE3NTgsIDAuMDAxNzU4LCAwLjAwMTc1OSwgMC4wMDE3NiIsIFwKLSAgICAgICAgICAiMC4wMDE3NDEsIDAuMDAxNzQzLCAwLjAwMTc1MSwgMC4wMDE3NTYsIDAuMDAxNzU3LCAwLjAwMTc1OCwgMC4wMDE3NTkiLCBcCi0gICAgICAgICAgIjAuMDAxNzQsIDAuMDAxNzQxLCAwLjAwMTc1LCAwLjAwMTc1NCwgMC4wMDE3NTYsIDAuMDAxNzU4LCAwLjAwMTc1OCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDI2NCwgMC4wMDAyNjQsIDAuMDAwMjY0LCAwLjAwMDI2NCwgMC4wMDAyNjQsIDAuMDAwMjY0LCAwLjAwMDI2NCIsIFwKLSAgICAgICAgICAiMC4wMDAyNjMsIDAuMDAwMjY0LCAwLjAwMDI2NiwgMC4wMDAyNjcsIDAuMDAwMjY3LCAwLjAwMDI2NywgMC4wMDAyNjciLCBcCi0gICAgICAgICAgIjAuMDAwMjYsIDAuMDAwMjYxLCAwLjAwMDI2NSwgMC4wMDAyNjcsIDAuMDAwMjY3LCAwLjAwMDI2OCwgMC4wMDAyNjgiLCBcCi0gICAgICAgICAgIjAuMDAwMjYsIDAuMDAwMjYxLCAwLjAwMDI2NCwgMC4wMDAyNjcsIDAuMDAwMjY3LCAwLjAwMDI2OCwgMC4wMDAyNjgiLCBcCi0gICAgICAgICAgIjAuMDAwMjYxLCAwLjAwMDI2MSwgMC4wMDAyNjUsIDAuMDAwMjY3LCAwLjAwMDI2NywgMC4wMDAyNjgsIDAuMDAwMjY4IiwgXAotICAgICAgICAgICIwLjAwMDI2NCwgMC4wMDAyNjUsIDAuMDAwMjY3LCAwLjAwMDI2NywgMC4wMDAyNjgsIDAuMDAwMjY4LCAwLjAwMDI2OCIsIFwKLSAgICAgICAgICAiMC4wMDAyNzEsIDAuMDAwMjcsIDAuMDAwMjY4LCAwLjAwMDI2OSwgMC4wMDAyNjgsIDAuMDAwMjY5LCAwLjAwMDI2OSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDE1NjIsIDAuMDAxNTYzLCAwLjAwMTU2NCwgMC4wMDE1NjQsIDAuMDAxNTY0LCAwLjAwMTU2MywgMC4wMDE1NjIiLCBcCi0gICAgICAgICAgIjAuMDAxNTU1LCAwLjAwMTU1NiwgMC4wMDE1NjEsIDAuMDAxNTYyLCAwLjAwMTU2MiwgMC4wMDE1NjIsIDAuMDAxNTYyIiwgXAotICAgICAgICAgICIwLjAwMTU0OSwgMC4wMDE1NSwgMC4wMDE1NTgsIDAuMDAxNTYsIDAuMDAxNTYxLCAwLjAwMTU2MSwgMC4wMDE1NjIiLCBcCi0gICAgICAgICAgIjAuMDAxNTQ0LCAwLjAwMTU0NywgMC4wMDE1NTUsIDAuMDAxNTU5LCAwLjAwMTU2LCAwLjAwMTU2MSwgMC4wMDE1NjEiLCBcCi0gICAgICAgICAgIjAuMDAxNTQ0LCAwLjAwMTU0NSwgMC4wMDE1NTQsIDAuMDAxNTU4LCAwLjAwMTU1OSwgMC4wMDE1NTksIDAuMDAxNTYiLCBcCi0gICAgICAgICAgIjAuMDAxNTQ1LCAwLjAwMTU0NiwgMC4wMDE1NTIsIDAuMDAxNTU3LCAwLjAwMTU1OCwgMC4wMDE1NiwgMC4wMDE1NTkiLCBcCi0gICAgICAgICAgIjAuMDAxNTQ5LCAwLjAwMTU0OSwgMC4wMDE1NTMsIDAuMDAxNTU2LCAwLjAwMTU1OCwgMC4wMDE1NTksIDAuMDAxNTYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDAwNDYsIDAuMDAwMDQ3LCAwLjAwMDA0OCwgMC4wMDAwNDgsIDAuMDAwMDQ5LCAwLjAwMDA0OSwgMC4wMDAwNDkiLCBcCi0gICAgICAgICAgIjAuMDAwMDUyLCAwLjAwMDA1MywgMC4wMDAwNTgsIDAuMDAwMDYsIDAuMDAwMDYxLCAwLjAwMDA2MSwgMC4wMDAwNjEiLCBcCi0gICAgICAgICAgIjAuMDAwMDQ5LCAwLjAwMDA1MSwgMC4wMDAwNTgsIDAuMDAwMDYzLCAwLjAwMDA2NCwgMC4wMDAwNjUsIDAuMDAwMDY1IiwgXAotICAgICAgICAgICIwLjAwMDA0NSwgMC4wMDAwNDgsIDAuMDAwMDU3LCAwLjAwMDA2MSwgMC4wMDAwNjMsIDAuMDAwMDY2LCAwLjAwMDA2NyIsIFwKLSAgICAgICAgICAiMC4wMDAwNDUsIDAuMDAwMDQ3LCAwLjAwMDA1NywgMC4wMDAwNjEsIDAuMDAwMDYzLCAwLjAwMDA2NywgMC4wMDAwNjciLCBcCi0gICAgICAgICAgIjAuMDAwMDQ1LCAwLjAwMDA0NywgMC4wMDAwNTYsIDAuMDAwMDYxLCAwLjAwMDA2MywgMC4wMDAwNjYsIDAuMDAwMDY3IiwgXAotICAgICAgICAgICIwLjAwMDA0OCwgMC4wMDAwNSwgMC4wMDAwNTYsIDAuMDAwMDYxLCAwLjAwMDA2MywgMC4wMDAwNjYsIDAuMDAwMDY3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogQU9JMjJYMSAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChBT0kyMlgxKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMTQyODg2OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwODY0MDI0OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDg2MDY5MzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA4NjQwMjQ7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNDA5LCAwLjAwMDQwOSwgMC4wMDA0MDksIDAuMDAwNDA5LCAwLjAwMDQwOSwgMC4wMDA0MDksIDAuMDAwNDA5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNDIsIDAuMDAwNDExLCAwLjAwMDQxLCAwLjAwMDQxLCAwLjAwMDQxLCAwLjAwMDQxLCAwLjAwMDQxIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihBMSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwODk5MDYyOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDg5MzEzNzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA4OTkwNjI7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjMxLCAwLjAwMDIzMSwgMC4wMDAyMywgMC4wMDAyMywgMC4wMDAyMywgMC4wMDAyMywgMC4wMDAyMyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDQ2NCwgMC4wMDA0NjQsIDAuMDAwNDY0LCAwLjAwMDQ2NSwgMC4wMDA0NjUsIDAuMDAwNDY1LCAwLjAwMDQ2NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQjApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDg4NDIyMzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA4ODQyMjM7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwODgxOTI0OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDQwOSwgMC4wMDA0MDksIDAuMDAwNDA5LCAwLjAwMDQwOSwgMC4wMDA0MDksIDAuMDAwNDA5LCAwLjAwMDQwOSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDQxOSwgMC4wMDA0MTEsIDAuMDAwNDEsIDAuMDAwNDEsIDAuMDAwNDEsIDAuMDAwNDEsIDAuMDAwNDEiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIxKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA4OTgzMTY7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwODk3ODI2OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDg5ODMxNjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyMTcsIDAuMDAwMjE3LCAwLjAwMDIxNywgMC4wMDAyMTcsIDAuMDAwMjE3LCAwLjAwMDIxNywgMC4wMDAyMTciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA0NjQsIDAuMDAwNDY0LCAwLjAwMDQ2NCwgMC4wMDA0NjQsIDAuMDAwNDY1LCAwLjAwMDQ2NSwgMC4wMDA0NjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4xMzgxMTc7Ci0gICAgZnVuY3Rpb24gOiAiKCEoKEIwIEIxKSsoQTAgQTEpKSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDY3NzMsIDAuMTUzOTE4LCAwLjQyMDc0LCAwLjY1NjI3NiwgMC45NzAxNjQsIDEuNTk3NzksIDEuOTg5NDYiLCBcCi0gICAgICAgICAgIjAuMTE2MzYzLCAwLjE2MzU3NywgMC40MzA0MjIsIDAuNjY1OTg5LCAwLjk4MDIzNiwgMS42MDcxMiwgMi4wMDAzNyIsIFwKLSAgICAgICAgICAiMC4xMjcxOTUsIDAuMTc0NDU0LCAwLjQ0MTM4NCwgMC42NzY3MjcsIDAuOTkwODY2LCAxLjYxODcyLCAyLjAxMDc4IiwgXAotICAgICAgICAgICIwLjEzNzMyMSwgMC4xODQ1MzYsIDAuNDUxNTI4LCAwLjY4Njk2NSwgMS4wMDEsIDEuNjI5NCwgMi4wMjA2NiIsIFwKLSAgICAgICAgICAiMC4xNDczMzksIDAuMTk0NTY4LCAwLjQ2MTc3NiwgMC42OTY5OTQsIDEuMDEwNzcsIDEuNjM4OTIsIDIuMDMwODUiLCBcCi0gICAgICAgICAgIjAuMTYzNDYsIDAuMjEwNzY3LCAwLjQ3NzgwMiwgMC43MTMyODMsIDEuMDI3LCAxLjY1NTM0LCAyLjA0NjI4IiwgXAotICAgICAgICAgICIwLjE3NzI0NSwgMC4yMjQ2MjcsIDAuNDkxODAxLCAwLjcyNzUyOCwgMS4wNDExNiwgMS42NjgzOCwgMi4wNjA5NiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xODg0ODIsIDAuMjgzOTcxLCAwLjgyNTgwNSwgMS4zMDMzMywgMS45Mzk3OCwgMy4yMTM1MSwgNC4wMTA1MiIsIFwKLSAgICAgICAgICAiMC4xODg0MDgsIDAuMjg0MDQxLCAwLjgyNTk2MiwgMS4zMDM1NCwgMS45NDAxMSwgMy4yMTM1OSwgNC4wMTE5NiIsIFwKLSAgICAgICAgICAiMC4xODg2MjEsIDAuMjg0MDc3LCAwLjgyNTUxNCwgMS4zMDM0NCwgMS45NDAwOSwgMy4yMTQ1LCA0LjAxMDk4IiwgXAotICAgICAgICAgICIwLjE4OTY4LCAwLjI4NDQwOCwgMC44MjYwOSwgMS4zMDMyNywgMS45NDAxNCwgMy4yMTUyNiwgNC4wMTA5MSIsIFwKLSAgICAgICAgICAiMC4xOTE5OTgsIDAuMjg1NzAxLCAwLjgyNTU4NiwgMS4zMDMzNiwgMS45NDA1OSwgMy4yMTQyOSwgNC4wMTA4NyIsIFwKLSAgICAgICAgICAiMC4xOTc2OTcsIDAuMjg5NDkyLCAwLjgyNTgzMSwgMS4zMDM0MywgMS45NDAzOSwgMy4yMTQ2NywgNC4wMTA0NyIsIFwKLSAgICAgICAgICAiMC4yMDM1MzIsIDAuMjk0MjIzLCAwLjgyNjAyLCAxLjMwMzY4LCAxLjk0MDU2LCAzLjIxMzU1LCA0LjAxMDU0Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwNDk5NSwgMC4xNTA4NzQsIDAuNDEwMDYxLCAwLjYzNzkzNywgMC45NDIwNjYsIDEuNTUwNDQsIDEuOTMwMSIsIFwKLSAgICAgICAgICAiMC4xMTM5NjcsIDAuMTU5ODgxLCAwLjQxOTA0NiwgMC42NDcyMTYsIDAuOTUxMDI0LCAxLjU1ODkyLCAxLjkzOTQzIiwgXAotICAgICAgICAgICIwLjEyNDkyMywgMC4xNzA4ODksIDAuNDI5OTM4LCAwLjY1ODMxNiwgMC45NjIzNDgsIDEuNTcwNDQsIDEuOTUwNjMiLCBcCi0gICAgICAgICAgIjAuMTM1ODIzLCAwLjE4MTgxNCwgMC40NDExMDcsIDAuNjY5MTQ2LCAwLjk3MzQyMSwgMS41ODEyMiwgMS45NjIwNiIsIFwKLSAgICAgICAgICAiMC4xNDY3MDEsIDAuMTkyNzMxLCAwLjQ1MjA3LCAwLjY4MDQxMiwgMC45ODQyNTMsIDEuNTkyNzcsIDEuOTcyMDUiLCBcCi0gICAgICAgICAgIjAuMTY0NzA5LCAwLjIxMDM3LCAwLjQ2OTk3MywgMC42OTgxMTgsIDEuMDAyMzMsIDEuNjA5OTksIDEuOTg5ODgiLCBcCi0gICAgICAgICAgIjAuMTc5NTc1LCAwLjIyNTk5MywgMC40ODUxNiwgMC43MTM1NjMsIDEuMDE3NjYsIDEuNjI1NjgsIDIuMDA1MjgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTg1NzgsIDAuMjc1NjMyLCAwLjc4NDY0MSwgMS4yMzM2NSwgMS44MzE5LCAzLjAyODc5LCAzLjc3ODQyIiwgXAotICAgICAgICAgICIwLjE4NTc2MSwgMC4yNzU2NjcsIDAuNzg0NjYyLCAxLjIzMzI3LCAxLjgzMjAyLCAzLjAyODg2LCAzLjc3NzA3IiwgXAotICAgICAgICAgICIwLjE4NjAxOCwgMC4yNzU2MjQsIDAuNzg0NjkyLCAxLjIzMzU3LCAxLjgzMjAxLCAzLjAyODk4LCAzLjc3Njc1IiwgXAotICAgICAgICAgICIwLjE4Nzc2NiwgMC4yNzYxNTMsIDAuNzg0Njg0LCAxLjIzMzMyLCAxLjgzMjA2LCAzLjAyODkyLCAzLjc3ODYiLCBcCi0gICAgICAgICAgIjAuMTkwOTMyLCAwLjI3ODEyMywgMC43ODQ0LCAxLjIzMzYsIDEuODMyMiwgMy4wMjkwMiwgMy43Nzc3NSIsIFwKLSAgICAgICAgICAiMC4xOTc3NTYsIDAuMjgyNzU3LCAwLjc4NDUyNSwgMS4yMzM1NSwgMS44MzE2LCAzLjAyODU4LCAzLjc3NzA4IiwgXAotICAgICAgICAgICIwLjIwNDcyMywgMC4yODgxNjcsIDAuNzg1MTU5LCAxLjIzMzYyLCAxLjgzMTc0LCAzLjAyODkyLCAzLjc3NzM1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkExIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDM3NiwgMC4xNTA4NjgsIDAuNDE3NTkxLCAwLjY1Mjg0NywgMC45NjY5OTksIDEuNTk0NTQsIDEuOTg3NDUiLCBcCi0gICAgICAgICAgIjAuMTEzNDAxLCAwLjE2MDU4NywgMC40MjczMjUsIDAuNjYyODk1LCAwLjk3NjYxOCwgMS42MDQyOCwgMS45OTcwNiIsIFwKLSAgICAgICAgICAiMC4xMjM5MiwgMC4xNzEyOTksIDAuNDM4MzY4LCAwLjY3MzQyOCwgMC45ODc3MjgsIDEuNjE1NiwgMi4wMDYzNiIsIFwKLSAgICAgICAgICAiMC4xMzQxOTEsIDAuMTgxNDU1LCAwLjQ0ODQ0MSwgMC42ODQxNTksIDAuOTk3ODY2LCAxLjYyNjE3LCAyLjAxNjk0IiwgXAotICAgICAgICAgICIwLjE0NDE4OCwgMC4xOTE0NDQsIDAuNDU4Njk0LCAwLjY5Mzg4MywgMS4wMDc2NywgMS42MzU3NCwgMi4wMjc2NyIsIFwKLSAgICAgICAgICAiMC4xNjAyNDMsIDAuMjA3NTc3LCAwLjQ3NDg0OSwgMC43MTAxNDIsIDEuMDIzODcsIDEuNjUyMTcsIDIuMDQzMTEiLCBcCi0gICAgICAgICAgIjAuMTczOTMzLCAwLjIyMTM5MSwgMC40ODg2NTMsIDAuNzI0MTEsIDEuMDM4MDcsIDEuNjY1MiwgMi4wNTgxIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE4NDc4NSwgMC4yODAyODksIDAuODIxODY0LCAxLjI5OTI1LCAxLjkzNjExLCAzLjIwODQsIDQuMDA1NDkiLCBcCi0gICAgICAgICAgIjAuMTg0Nzc0LCAwLjI4MDMwNSwgMC44MjE3NzMsIDEuMjk5NDcsIDEuOTM2NTUsIDMuMjA4NSwgNC4wMDUwNiIsIFwKLSAgICAgICAgICAiMC4xODQ4MjEsIDAuMjgwMzI4LCAwLjgyMTk3LCAxLjI5OTMsIDEuOTM2LCAzLjIwOTg4LCA0LjAwNDciLCBcCi0gICAgICAgICAgIjAuMTg2MTI1LCAwLjI4MDU5OCwgMC44MjIxMzMsIDEuMjk5MTksIDEuOTM2MTEsIDMuMjEwMTUsIDQuMDA0MjkiLCBcCi0gICAgICAgICAgIjAuMTg4NjMxLCAwLjI4MTk3OSwgMC44MjE3OTYsIDEuMjk5MzMsIDEuOTM2MzgsIDMuMjA5MDgsIDQuMDA0NDUiLCBcCi0gICAgICAgICAgIjAuMTk0MjMsIDAuMjg2MDc3LCAwLjgyMTc2NCwgMS4yOTkzOSwgMS45MzYyOSwgMy4yMDk2LCA0LjAwNDAyIiwgXAotICAgICAgICAgICIwLjIwMDE4OSwgMC4yOTA2NjQsIDAuODIyMjIxLCAxLjI5OTM5LCAxLjkzNTQ0LCAzLjIwODQ4LCA0LjAwMzkyIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwMjY0LCAwLjE0ODQ3OSwgMC40MDc0NiwgMC42MzU1ODMsIDAuOTM5NzY3LCAxLjU0ODE2LCAxLjkyNzg2IiwgXAotICAgICAgICAgICIwLjExMTc2NywgMC4xNTc2NzgsIDAuNDE2NjIxLCAwLjY0NDY5NCwgMC45NDg3NDIsIDEuNTU2NjIsIDEuOTM2NzgiLCBcCi0gICAgICAgICAgIjAuMTIzMjA2LCAwLjE2OTEzMSwgMC40MjgxMDcsIDAuNjU2MjEzLCAwLjk2MDY2NCwgMS41Njg4LCAxLjk0ODE2IiwgXAotICAgICAgICAgICIwLjEzNTA2OCwgMC4xODEwMjIsIDAuNDQwMDksIDAuNjY4NTc2LCAwLjk3MjgwOSwgMS41ODExMiwgMS45NjA1NCIsIFwKLSAgICAgICAgICAiMC4xNDY2NDIsIDAuMTkyNTgsIDAuNDUxNTY0LCAwLjY3OTc2NiwgMC45ODQxMTMsIDEuNTkyMTEsIDEuOTcyMSIsIFwKLSAgICAgICAgICAiMC4xNjYxMjgsIDAuMjExMzUxLCAwLjQ3MDMyNSwgMC42OTg2MiwgMS4wMDI4NiwgMS42MTA2MywgMS45OTA4MyIsIFwKLSAgICAgICAgICAiMC4xODI5MzcsIDAuMjI4NDYyLCAwLjQ4NjY5NiwgMC43MTQ4NDksIDEuMDE4ODksIDEuNjI2NzQsIDIuMDA3NTIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTg1NzkxLCAwLjI3NTYxNywgMC43ODQ3MjUsIDEuMjMzNjgsIDEuODMxNjUsIDMuMDI4NDYsIDMuNzc2ODkiLCBcCi0gICAgICAgICAgIjAuMTg1NzY4LCAwLjI3NTU5OSwgMC43ODQ0MzYsIDEuMjMzMzUsIDEuODMxODEsIDMuMDI4NzgsIDMuNzc2NzYiLCBcCi0gICAgICAgICAgIjAuMTg2MiwgMC4yNzU2MjksIDAuNzg0NjMzLCAxLjIzMzYyLCAxLjgzMjEsIDMuMDI4OTQsIDMuNzc2ODYiLCBcCi0gICAgICAgICAgIjAuMTg5MDI5LCAwLjI3NjQ0LCAwLjc4NDY5NiwgMS4yMzMyNywgMS44MzIwMywgMy4wMjg4OCwgMy43Nzc4OSIsIFwKLSAgICAgICAgICAiMC4xOTM4OTIsIDAuMjc5Mjg0LCAwLjc4NDQwMywgMS4yMzMyMywgMS44MzIwNCwgMy4wMjg5MSwgMy43NzY3NSIsIFwKLSAgICAgICAgICAiMC4yMDMxODUsIDAuMjg2MzM1LCAwLjc4NDY3OCwgMS4yMzM2MiwgMS44MzE2OCwgMy4wMjg3NSwgMy43NzY3NiIsIFwKLSAgICAgICAgICAiMC4yMTMxNDQsIDAuMjkzOTQ4LCAwLjc4NTA1LCAxLjIzMzQsIDEuODMxOTIsIDMuMDI4NjMsIDMuNzc3NTQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjAiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5Njg3MywgMC4xNDQxMTQsIDAuNDExMDIsIDAuNjQ2NDQ4LCAwLjk2MDMwOCwgMS41ODc3NCwgMS45ODAzNyIsIFwKLSAgICAgICAgICAiMC4xMDU4NzIsIDAuMTUzMTAzLCAwLjQyMDI1MiwgMC42NTU2MTcsIDAuOTY5NTgxLCAxLjU5NzI0LCAxLjk4OTc2IiwgXAotICAgICAgICAgICIwLjExNzE5MywgMC4xNjQxMDgsIDAuNDMxNDE0LCAwLjY2NjU3NiwgMC45ODA5MzEsIDEuNjA4NzEsIDIuMDAwNDIiLCBcCi0gICAgICAgICAgIjAuMTI4NzIyLCAwLjE3NTkxNiwgMC40NDMwMDUsIDAuNjc4MjA1LCAwLjk5MjE4LCAxLjYyMDMxLCAyLjAxMjAyIiwgXAotICAgICAgICAgICIwLjE0MDQsIDAuMTg3NDk0LCAwLjQ1NDQwNSwgMC42ODk4NCwgMS4wMDM2LCAxLjYzMjEsIDIuMDIyNzciLCBcCi0gICAgICAgICAgIjAuMTU5MjY3LCAwLjIwNjA0NiwgMC40NzI4OTUsIDAuNzA4Mzc4LCAxLjAyMTk3LCAxLjY0OTg5LCAyLjA0MTc2IiwgXAotICAgICAgICAgICIwLjE3NTk1MywgMC4yMjIzMDYsIDAuNDg4OTk2LCAwLjcyNDc1OCwgMS4wMzgxNCwgMS42NjU0NywgMi4wNTc3MyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xODg0MDEsIDAuMjg0MDY4LCAwLjgyNTU3MywgMS4zMDMzNiwgMS45NDAyMSwgMy4yMTMzMywgNC4wMDg0OSIsIFwKLSAgICAgICAgICAiMC4xODgzNTYsIDAuMjg0MDI0LCAwLjgyNTkyNCwgMS4zMDI0MiwgMS45NDA4NCwgMy4yMTM0OCwgNC4wMDkwMiIsIFwKLSAgICAgICAgICAiMC4xODg3OCwgMC4yODM3OTEsIDAuODI1NjMsIDEuMzAzMjIsIDEuOTQwNjQsIDMuMjEzNTUsIDQuMDA4NjYiLCBcCi0gICAgICAgICAgIjAuMTkyMDQ5LCAwLjI4NDg0MSwgMC44MjU2MDMsIDEuMzAzMzYsIDEuOTQwNTMsIDMuMjE0MDMsIDQuMDA4ODUiLCBcCi0gICAgICAgICAgIjAuMTk3MTMyLCAwLjI4Nzg2LCAwLjgyNTg0NywgMS4zMDMzOSwgMS45NDA1MSwgMy4yMTM2MiwgNC4wMDgzMSIsIFwKLSAgICAgICAgICAiMC4yMDcwNTksIDAuMjk1MjY0LCAwLjgyNTgxNywgMS4zMDM3NiwgMS45NDAzMywgMy4yMTM2OSwgNC4wMDg4NyIsIFwKLSAgICAgICAgICAiMC4yMTc1NDQsIDAuMzAzNjI3LCAwLjgyNTkyNywgMS4zMDM2NywgMS45NDAzMywgMy4yMTI2MywgNC4wMDkyOCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTIxOCwgMC4xMzc4NjIsIDAuMzk2NDMsIDAuNjI0NTg3LCAwLjkyODgyNCwgMS41MzY2OCwgMS45MTYzNCIsIFwKLSAgICAgICAgICAiMC4xMDEzNjIsIDAuMTQ3MTI3LCAwLjQwNTgxNCwgMC42MzM5NTMsIDAuOTM4MDE3LCAxLjU0NTc2LCAxLjkyNTYiLCBcCi0gICAgICAgICAgIjAuMTEyMjQ3LCAwLjE1ODA4OCwgMC40MTY5NTgsIDAuNjQ1MDc4LCAwLjk0OTM3NiwgMS41NTcyLCAxLjkzNjg4IiwgXAotICAgICAgICAgICIwLjEyMzA4MSwgMC4xNjg5OCwgMC40Mjc5NTksIDAuNjU2MTM2LCAwLjk2MDI4LCAxLjU2ODA5LCAxLjk0ODY4IiwgXAotICAgICAgICAgICIwLjEzNDExOCwgMC4xNzk5MywgMC40MzkyMDgsIDAuNjY3MjQxLCAwLjk3MTQyMSwgMS41NzkyMiwgMS45NTkxNiIsIFwKLSAgICAgICAgICAiMC4xNTE1MDgsIDAuMTk3MzIsIDAuNDU2MzMsIDAuNjg1MTMsIDAuOTg5MjQ1LCAxLjU5Njk0LCAxLjk3NjcxIiwgXAotICAgICAgICAgICIwLjE2NjMzNSwgMC4yMTI4NjcsIDAuNDcyMDM1LCAwLjcwMDYwOSwgMS4wMDQ3NywgMS42MTI3NCwgMS45OTI0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE3MzA2NiwgMC4yNjI3NzMsIDAuNzcxMTYyLCAxLjIyMDE1LCAxLjgyNzUzLCAzLjAzNDA2LCAzLjc3MzE5IiwgXAotICAgICAgICAgICIwLjE3MzA2MSwgMC4yNjI3NzksIDAuNzcxMjY0LCAxLjIyMDE2LCAxLjgxOTkxLCAzLjAzMDk4LCAzLjc3Mjc2IiwgXAotICAgICAgICAgICIwLjE3MzQ5NCwgMC4yNjI3NjYsIDAuNzcxMzYsIDEuMjIwMDYsIDEuODE4NDEsIDMuMDE2MzQsIDMuNzY1MSIsIFwKLSAgICAgICAgICAiMC4xNzU2NDMsIDAuMjYzNTAxLCAwLjc3MTM3OCwgMS4yMiwgMS44MTk5MiwgMy4wMjE2NywgMy43NzM5NCIsIFwKLSAgICAgICAgICAiMC4xNzkzMDcsIDAuMjY1NTczLCAwLjc3MTI1NiwgMS4yMTk5MSwgMS44MjYwNCwgMy4wMTYyOCwgMy43NzI5MSIsIFwKLSAgICAgICAgICAiMC4xODY3NywgMC4yNzA3NDMsIDAuNzcxMTI3LCAxLjIyMDQsIDEuODE4OTYsIDMuMDIxMDgsIDMuNzcyOTkiLCBcCi0gICAgICAgICAgIjAuMTk0MjU2LCAwLjI3Njk2NiwgMC43NzE5ODIsIDEuMjE5ODgsIDEuODE5LCAzLjAzMTc2LCAzLjc2NTMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5MzkyNCwgMC4xNDExMjUsIDAuNDA4NTY2LCAwLjY0Mzk5LCAwLjk1ODU4NCwgMS41ODY0OCwgMS45Nzk5NyIsIFwKLSAgICAgICAgICAiMC4xMDI5ODQsIDAuMTUwMjY3LCAwLjQxNzY3NSwgMC42NTM0MDcsIDAuOTY3OTQyLCAxLjU5Njg5LCAxLjk4ODkxIiwgXAotICAgICAgICAgICIwLjExNDQ1NSwgMC4xNjE0NTIsIDAuNDI4OTkzLCAwLjY2NTAxNywgMC45NzkzNzIsIDEuNjA3OTksIDEuOTk5NzQiLCBcCi0gICAgICAgICAgIjAuMTI1NjYzLCAwLjE3Mjk2LCAwLjQ0MDQ1MiwgMC42NzU3ODIsIDAuOTkwMzgzLCAxLjYxOTM2LCAyLjAxMTciLCBcCi0gICAgICAgICAgIjAuMTM3MzM2LCAwLjE4NDQ5NywgMC40NTE4MzEsIDAuNjg3NjA2LCAxLjAwMTgyLCAxLjYzMTE5LCAyLjAyMjM5IiwgXAotICAgICAgICAgICIwLjE1NjE0NSwgMC4yMDMwNDksIDAuNDcwNDQsIDAuNzA2MzIyLCAxLjAyMDI2LCAxLjY0OTA3LCAyLjA0MTA4IiwgXAotICAgICAgICAgICIwLjE3MjYzNCwgMC4yMTkyMSwgMC40ODYzNTksIDAuNzIyNDc0LCAxLjAzNjM4LCAxLjY2NTU2LCAyLjA1ODI4Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE4NDkyNiwgMC4yODA2MzUsIDAuODIzMDI0LCAxLjMwMTQ0LCAxLjkzOTU0LCAzLjIxNDMyLCA0LjAxMDY4IiwgXAotICAgICAgICAgICIwLjE4NDg1MSwgMC4yODA2NTksIDAuODIzMjMyLCAxLjMwMDg4LCAxLjkzODk0LCAzLjIxNDU4LCA0LjAxMDgyIiwgXAotICAgICAgICAgICIwLjE4NTM4NiwgMC4yODA0MjMsIDAuODIyNDMxLCAxLjMwMDE4LCAxLjkzOTM4LCAzLjIxMzg5LCA0LjAxMDU0IiwgXAotICAgICAgICAgICIwLjE4ODc5NiwgMC4yODE2NTMsIDAuODIzMTE3LCAxLjMwMTM4LCAxLjkzOTQ1LCAzLjIxNDcsIDQuMDEwODgiLCBcCi0gICAgICAgICAgIjAuMTk0MDA2LCAwLjI4NDYzNCwgMC44MjMxNzIsIDEuMzAxMzksIDEuOTM5NDEsIDMuMjE0NDcsIDQuMDEwMzQiLCBcCi0gICAgICAgICAgIjAuMjA0MTE2LCAwLjI5MjM1LCAwLjgyMjg1NywgMS4zMDE3NywgMS45Mzk0MiwgMy4yMTQzOCwgNC4wMTA1OCIsIFwKLSAgICAgICAgICAiMC4yMTQ2OCwgMC4zMDA3MiwgMC44MjMyNSwgMS4zMDE3MywgMS45MzkzNSwgMy4yMTQ2NywgNC4wMTE0OCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODk3LCAwLjEzNTM3NywgMC4zOTM5ODIsIDAuNjIyMTc1LCAwLjkyNjIyNiwgMS41MzM5OSwgMS45MTQwMyIsIFwKLSAgICAgICAgICAiMC4wOTkwMywgMC4xNDQ4MzIsIDAuNDAzNTExLCAwLjYzMTY4NiwgMC45MzU3NzEsIDEuNTQzNDYsIDEuOTIzMjUiLCBcCi0gICAgICAgICAgIjAuMTEwNDY3LCAwLjE1NTMyOSwgMC40MTUwODYsIDAuNjQzMjAyLCAwLjk0NzMzOSwgMS41NTUyNSwgMS45MzUzMSIsIFwKLSAgICAgICAgICAiMC4xMjIyMjIsIDAuMTY3OTg3LCAwLjQyNjg5NCwgMC42NTUwODksIDAuOTU5MTg5LCAxLjU2NzM5LCAxLjk0NzA5IiwgXAotICAgICAgICAgICIwLjEzNDE0NywgMC4xNzk1NjgsIDAuNDM4NDM5LCAwLjY2NjU1NCwgMC45NzA3NDMsIDEuNTc4OCwgMS45NTgyMyIsIFwKLSAgICAgICAgICAiMC4xNTMzMDMsIDAuMTk4NDE4LCAwLjQ1NDYzNSwgMC42ODUyOTksIDAuOTg5NDI0LCAxLjU5NzQxLCAxLjk3NzA3IiwgXAotICAgICAgICAgICIwLjE2OTk5MSwgMC4yMTU1MjgsIDAuNDczNDkzLCAwLjcwMTcwNywgMS4wMDU4LCAxLjYxMzc4LCAxLjk5MzU3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE3MzA4MSwgMC4yNjI3NzYsIDAuNzcxMzQzLCAxLjIyMDA1LCAxLjgyMTAyLCAzLjAxNjI3LCAzLjc2NTg2IiwgXAotICAgICAgICAgICIwLjE3MzA3MSwgMC4yNjI4MDMsIDAuNzcxMzU3LCAxLjIyMjE2LCAxLjgyMDE3LCAzLjAyMTYsIDMuNzcyMjgiLCBcCi0gICAgICAgICAgIjAuMTczODkyLCAwLjI2Mjc1NSwgMC43NzExNDIsIDEuMjIyODQsIDEuODE4NTcsIDMuMDE2NTEsIDMuNzY0OTciLCBcCi0gICAgICAgICAgIjAuMTc3NDE4LCAwLjI2NDAxMywgMC43NzEzNDUsIDEuMjIwMjYsIDEuODE4NTIsIDMuMDE2MTQsIDMuNzczOTQiLCBcCi0gICAgICAgICAgIjAuMTgyNDg4LCAwLjI2NzE5NywgMC43NzE0MDQsIDEuMjIwMSwgMS44MTgzOSwgMy4wMTY1NCwgMy43NjYwMSIsIFwKLSAgICAgICAgICAiMC4xOTMwMjMsIDAuMjc1MTY4LCAwLjc3MTExOCwgMS4yMjAyNCwgMS44MTgyOCwgMy4wMzE3LCAzLjc2NjEyIiwgXAotICAgICAgICAgICIwLjIwMzY3MiwgMC4yODMxMDQsIDAuNzcyMTMyLCAxLjIyMzI2LCAxLjgyNjEyLCAzLjAyOTM0LCAzLjc2NTMzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzU2LCAwLjAwMzU2LCAwLjAwMzU2LCAwLjAwMzU1OSwgMC4wMDM1NTksIDAuMDAzNTU4LCAwLjAwMzU1OCIsIFwKLSAgICAgICAgICAiMC4wMDM1NSwgMC4wMDM1NTIsIDAuMDAzNTU0LCAwLjAwMzU1NSwgMC4wMDM1NTQsIDAuMDAzNTU0LCAwLjAwMzU1MiIsIFwKLSAgICAgICAgICAiMC4wMDM1NDMsIDAuMDAzNTQ3LCAwLjAwMzU1MiwgMC4wMDM1NTMsIDAuMDAzNTU2LCAwLjAwMzU1MywgMC4wMDM1NTIiLCBcCi0gICAgICAgICAgIjAuMDAzNTM5LCAwLjAwMzU0MywgMC4wMDM1NSwgMC4wMDM1NTIsIDAuMDAzNTUyLCAwLjAwMzU1MiwgMC4wMDM1NSIsIFwKLSAgICAgICAgICAiMC4wMDM1MzUsIDAuMDAzNTQsIDAuMDAzNTQ5LCAwLjAwMzU1MSwgMC4wMDM1NTIsIDAuMDAzNTUyLCAwLjAwMzU1MSIsIFwKLSAgICAgICAgICAiMC4wMDM1MzEsIDAuMDAzNTM2LCAwLjAwMzU0NywgMC4wMDM1NDksIDAuMDAzNTUyLCAwLjAwMzU1MSwgMC4wMDM1NTIiLCBcCi0gICAgICAgICAgIjAuMDAzNTI4LCAwLjAwMzUzNCwgMC4wMDM1NDYsIDAuMDAzNTQ5LCAwLjAwMzU1LCAwLjAwMzU1MiwgMC4wMDM1NTEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDEwMjQsIDAuMDAxMDI0LCAwLjAwMTAyNCwgMC4wMDEwMjQsIDAuMDAxMDI0LCAwLjAwMTAyMywgMC4wMDEwMjIiLCBcCi0gICAgICAgICAgIjAuMDAxMDAzLCAwLjAwMTAwNiwgMC4wMDEwMTEsIDAuMDAxMDEyLCAwLjAwMTAxMiwgMC4wMDEwMTIsIDAuMDAxMDExIiwgXAotICAgICAgICAgICIwLjAwMDk4OSwgMC4wMDA5OTUsIDAuMDAxMDA2LCAwLjAwMTAwOCwgMC4wMDEwMDksIDAuMDAxMDA5LCAwLjAwMTAwOSIsIFwKLSAgICAgICAgICAiMC4wMDA5NzksIDAuMDAwOTg3LCAwLjAwMTAwMiwgMC4wMDEwMDUsIDAuMDAxMDA3LCAwLjAwMTAwOCwgMC4wMDEwMDgiLCBcCi0gICAgICAgICAgIjAuMDAwOTcyLCAwLjAwMDk4MSwgMC4wMDA5OTgsIDAuMDAxMDAyLCAwLjAwMTAwNSwgMC4wMDEwMDcsIDAuMDAxMDA3IiwgXAotICAgICAgICAgICIwLjAwMDk2NSwgMC4wMDA5NzQsIDAuMDAwOTk0LCAwLjAwMDk5OSwgMC4wMDEwMDIsIDAuMDAxMDA1LCAwLjAwMTAwNSIsIFwKLSAgICAgICAgICAiMC4wMDA5NjQsIDAuMDAwOTcxLCAwLjAwMDk5MSwgMC4wMDA5OTcsIDAuMDAxMDAxLCAwLjAwMTAwMywgMC4wMDEwMDQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzMTU2LCAwLjAwMzE1NywgMC4wMDMxNTgsIDAuMDAzMTU5LCAwLjAwMzE1OSwgMC4wMDMxNTgsIDAuMDAzMTU3IiwgXAotICAgICAgICAgICIwLjAwMzE0NywgMC4wMDMxNTMsIDAuMDAzMTYsIDAuMDAzMTYyLCAwLjAwMzE2MiwgMC4wMDMxNjIsIDAuMDAzMTYyIiwgXAotICAgICAgICAgICIwLjAwMzEzMywgMC4wMDMxNDMsIDAuMDAzMTU2LCAwLjAwMzE1NywgMC4wMDMxNjEsIDAuMDAzMTYxLCAwLjAwMzE2NiIsIFwKLSAgICAgICAgICAiMC4wMDMxMjMsIDAuMDAzMTM0LCAwLjAwMzE1MywgMC4wMDMxNTksIDAuMDAzMTU5LCAwLjAwMzE2MSwgMC4wMDMxNTkiLCBcCi0gICAgICAgICAgIjAuMDAzMTE1LCAwLjAwMzEyNywgMC4wMDMxNDksIDAuMDAzMTU1LCAwLjAwMzE1OCwgMC4wMDMxNiwgMC4wMDMxNiIsIFwKLSAgICAgICAgICAiMC4wMDMxMDYsIDAuMDAzMTE4LCAwLjAwMzE0NCwgMC4wMDMxNTEsIDAuMDAzMTU2LCAwLjAwMzE1OCwgMC4wMDMxNiIsIFwKLSAgICAgICAgICAiMC4wMDMwOTksIDAuMDAzMTEyLCAwLjAwMzE0LCAwLjAwMzE0OCwgMC4wMDMxNTMsIDAuMDAzMTU2LCAwLjAwMzE1OCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTAyMywgMC4wMDEwMjQsIDAuMDAxMDI0LCAwLjAwMTAyNCwgMC4wMDEwMjQsIDAuMDAxMDIzLCAwLjAwMTAyMiIsIFwKLSAgICAgICAgICAiMC4wMDEsIDAuMDAxMDA0LCAwLjAwMTAxMSwgMC4wMDEwMTEsIDAuMDAxMDEyLCAwLjAwMTAxMiwgMC4wMDEwMTIiLCBcCi0gICAgICAgICAgIjAuMDAwOTg3LCAwLjAwMDk5NCwgMC4wMDEwMDUsIDAuMDAxMDA3LCAwLjAwMTAwOCwgMC4wMDEwMDksIDAuMDAxMDA5IiwgXAotICAgICAgICAgICIwLjAwMDk3OCwgMC4wMDA5ODYsIDAuMDAxMDAxLCAwLjAwMTAwNCwgMC4wMDEwMDYsIDAuMDAxMDA3LCAwLjAwMTAwNyIsIFwKLSAgICAgICAgICAiMC4wMDA5NzcsIDAuMDAwOTg0LCAwLjAwMDk5OSwgMC4wMDEwMDMsIDAuMDAxMDA1LCAwLjAwMTAwNywgMC4wMDEwMDciLCBcCi0gICAgICAgICAgIjAuMDAwOTg1LCAwLjAwMDk4NiwgMC4wMDA5OTgsIDAuMDAxMDAyLCAwLjAwMTAwNCwgMC4wMDEwMDYsIDAuMDAxMDA2IiwgXAotICAgICAgICAgICIwLjAwMDk5NiwgMC4wMDA5OTQsIDAuMDAwOTk5LCAwLjAwMTAwMiwgMC4wMDEwMDQsIDAuMDAxMDA1LCAwLjAwMTAwNiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI1MDcsIDAuMDAyNTA4LCAwLjAwMjUwOCwgMC4wMDI1MDgsIDAuMDAyNTA3LCAwLjAwMjUwNiwgMC4wMDI1MDYiLCBcCi0gICAgICAgICAgIjAuMDAyNDkyLCAwLjAwMjQ5NSwgMC4wMDI1LCAwLjAwMjUwMSwgMC4wMDI1LCAwLjAwMjUsIDAuMDAyNDk5IiwgXAotICAgICAgICAgICIwLjAwMjQ4NSwgMC4wMDI0ODgsIDAuMDAyNDk3LCAwLjAwMjQ5OCwgMC4wMDI0OTgsIDAuMDAyNDk4LCAwLjAwMjQ5OCIsIFwKLSAgICAgICAgICAiMC4wMDI0ODEsIDAuMDAyNDg2LCAwLjAwMjQ5NSwgMC4wMDI0OTcsIDAuMDAyNDk3LCAwLjAwMjQ5NywgMC4wMDI0OTciLCBcCi0gICAgICAgICAgIjAuMDAyNDgsIDAuMDAyNDg0LCAwLjAwMjQ5MywgMC4wMDI0OTYsIDAuMDAyNDk3LCAwLjAwMjQ5NywgMC4wMDI0OTYiLCBcCi0gICAgICAgICAgIjAuMDAyNDg5LCAwLjAwMjQ4OCwgMC4wMDI0OTMsIDAuMDAyNDk2LCAwLjAwMjQ5NywgMC4wMDI0OTYsIDAuMDAyNDk2IiwgXAotICAgICAgICAgICIwLjAwMjQ5OCwgMC4wMDI0OTMsIDAuMDAyNDk1LCAwLjAwMjQ5NiwgMC4wMDI0OTcsIDAuMDAyNDk2LCAwLjAwMjQ5NiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDI5OCwgMC4wMDAzMDEsIDAuMDAwMzAzLCAwLjAwMDMwNCwgMC4wMDAzMDQsIDAuMDAwMzA0LCAwLjAwMDMwNSIsIFwKLSAgICAgICAgICAiMC4wMDAyOTUsIDAuMDAwMzA0LCAwLjAwMDMxNywgMC4wMDAzMiwgMC4wMDAzMjEsIDAuMDAwMzIyLCAwLjAwMDMyMyIsIFwKLSAgICAgICAgICAiMC4wMDAyNzYsIDAuMDAwMjkxLCAwLjAwMDMxNCwgMC4wMDAzMTksIDAuMDAwMzIyLCAwLjAwMDMyNCwgMC4wMDAzMjUiLCBcCi0gICAgICAgICAgIjAuMDAwMjYsIDAuMDAwMjc5LCAwLjAwMDMwOSwgMC4wMDAzMTYsIDAuMDAwMzIsIDAuMDAwMzI0LCAwLjAwMDMyNSIsIFwKLSAgICAgICAgICAiMC4wMDAyNDgsIDAuMDAwMjY4LCAwLjAwMDMwNCwgMC4wMDAzMTMsIDAuMDAwMzE4LCAwLjAwMDMyMiwgMC4wMDAzMjQiLCBcCi0gICAgICAgICAgIjAuMDAwMjM1LCAwLjAwMDI1NSwgMC4wMDAyOTcsIDAuMDAwMzA4LCAwLjAwMDMxNSwgMC4wMDAzMjEsIDAuMDAwMzIyIiwgXAotICAgICAgICAgICIwLjAwMDIzLCAwLjAwMDI0OCwgMC4wMDAyOTIsIDAuMDAwMzA0LCAwLjAwMDMxMiwgMC4wMDAzMTksIDAuMDAwMzIxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjA4NiwgMC4wMDIwODgsIDAuMDAyMDksIDAuMDAyMDkxLCAwLjAwMjA5MSwgMC4wMDIwOTEsIDAuMDAyMDkiLCBcCi0gICAgICAgICAgIjAuMDAyMDczLCAwLjAwMjA4MSwgMC4wMDIwOTEsIDAuMDAyMDkyLCAwLjAwMjA5NCwgMC4wMDIwOTQsIDAuMDAyMDk0IiwgXAotICAgICAgICAgICIwLjAwMjA1OCwgMC4wMDIwNjcsIDAuMDAyMDg2LCAwLjAwMjA5LCAwLjAwMjA5MSwgMC4wMDIwOTMsIDAuMDAyMDkzIiwgXAotICAgICAgICAgICIwLjAwMjA1MiwgMC4wMDIwNjMsIDAuMDAyMDgzLCAwLjAwMjA4OCwgMC4wMDIwOSwgMC4wMDIwOTIsIDAuMDAyMDkyIiwgXAotICAgICAgICAgICIwLjAwMjA0NiwgMC4wMDIwNTgsIDAuMDAyMDgsIDAuMDAyMDg1LCAwLjAwMjA4OCwgMC4wMDIwOTEsIDAuMDAyMDkxIiwgXAotICAgICAgICAgICIwLjAwMjA1LCAwLjAwMjA1NiwgMC4wMDIwNzcsIDAuMDAyMDgzLCAwLjAwMjA4NywgMC4wMDIwOSwgMC4wMDIwOSIsIFwKLSAgICAgICAgICAiMC4wMDIwNTcsIDAuMDAyMDU4LCAwLjAwMjA3NiwgMC4wMDIwODIsIDAuMDAyMDg1LCAwLjAwMjA4OCwgMC4wMDIwOSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDI5OCwgMC4wMDAzLCAwLjAwMDMwNCwgMC4wMDAzMDQsIDAuMDAwMzA1LCAwLjAwMDMwNSwgMC4wMDAzMDUiLCBcCi0gICAgICAgICAgIjAuMDAwMjkzLCAwLjAwMDMwMywgMC4wMDAzMTcsIDAuMDAwMzIsIDAuMDAwMzIyLCAwLjAwMDMyMywgMC4wMDAzMjMiLCBcCi0gICAgICAgICAgIjAuMDAwMjc4LCAwLjAwMDI5MSwgMC4wMDAzMTQsIDAuMDAwMzIsIDAuMDAwMzIyLCAwLjAwMDMyNSwgMC4wMDAzMjYiLCBcCi0gICAgICAgICAgIjAuMDAwMjYzLCAwLjAwMDI4MSwgMC4wMDAzMSwgMC4wMDAzMTcsIDAuMDAwMzIxLCAwLjAwMDMyNCwgMC4wMDAzMjUiLCBcCi0gICAgICAgICAgIjAuMDAwMjYsIDAuMDAwMjc1LCAwLjAwMDMwNywgMC4wMDAzMTUsIDAuMDAwMzIsIDAuMDAwMzI0LCAwLjAwMDMyNSIsIFwKLSAgICAgICAgICAiMC4wMDAyNjEsIDAuMDAwMjcxLCAwLjAwMDMwMiwgMC4wMDAzMTIsIDAuMDAwMzE4LCAwLjAwMDMyMywgMC4wMDAzMjQiLCBcCi0gICAgICAgICAgIjAuMDAwMjY5LCAwLjAwMDI3NywgMC4wMDAzMDIsIDAuMDAwMzExLCAwLjAwMDMxNywgMC4wMDAzMjIsIDAuMDAwMzI0Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IERGRlNIUVgxICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChERkZTSFFYMSkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjM3NzY7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgZmYgKE4zNSxRQklOVCkgewotICAgIG5leHRfc3RhdGUgOiAiRCI7Ci0gICAgY2xvY2tlZF9vbiA6ICJDSyI7Ci0gICAgcHJlc2V0IDogIighU04pIjsKLSAgfQotICBwaW4oQ0spICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYxNDAyNTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MTM2NDk7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjE0MDI1OwotICAgIGNsb2NrIDogdHJ1ZTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDMwMTQsIDAuMDAyOTg5LCAwLjAwMjk3OSwgMC4wMDI5NzYsIDAuMDAyOTg1LCAwLjAwMzAwNiwgMC4wMDMwMyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwODEyNiwgMC4wMDgwOTksIDAuMDA4MDgzLCAwLjAwODA3NiwgMC4wMDgwODUsIDAuMDA4MTA1LCAwLjAwODEzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRCZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjE1NjU2NywgMC4xNjY3NzgsIDAuMTc5NTY1LCAwLjE5MTk4MSwgMC4yMDMzMTUsIDAuMjE5MDA4LCAwLjIzMTMyMyIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMTE5MjMzLCAwLjEyODk5NywgMC4xNDEyNTcsIDAuMTUzNDAyLCAwLjE2Mzk0NSwgMC4xNzg0OSwgMC4xODk0MjkiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEQpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDc2MTU3NDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA3NTkyMTk7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNzYxNTc0OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzM3OCwgMC4wMDMzNDQsIDAuMDAzMzI1LCAwLjAwMzMxNCwgMC4wMDMzMTUsIDAuMDAzMzE3LCAwLjAwMzMxNyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzc3NywgMC4wMDM3NTcsIDAuMDAzNzQ1LCAwLjAwMzc0LCAwLjAwMzczNSwgMC4wMDM3MzYsIDAuMDAzNzQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiU04iOwotICAgICAgc2RmX2NvbmQgOiAiU04gPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDEyNSwgLTAuMDA3NSwgLTAuMDAxMjUsIDAuMDA1LCAwLjAxMTI1LCAwLjAyMTI1LCAwLjAyMzc1IiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLCAwLjAwNjI1LCAwLjAxLCAwLjAxODc1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAuMDAzNzUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDM3NSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDAyNSwgMCIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjA0Mzc1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDE1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDY1LCAtMC4wNTM3NSwgLTAuMDQ3NSwgLTAuMDM1LCAtMC4wMjg3NSwgLTAuMDI1LCAtMC4wMTYyNSIsIFwKLSAgICAgICAgICAiLTAuMDczNzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDMzNzUsIC0wLjAyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDI1LCAwLjAzNjI1LCAwLjA0ODc1LCAwLjA2MTI1LCAwLjA2NzUsIDAuMDgzNzUsIDAuMDkyNSIsIFwKLSAgICAgICAgICAiMC4wMTM3NSwgMC4wMjUsIDAuMDM3NSwgMC4wNSwgMC4wNjI1LCAwLjA3MjUsIDAuMDg3NSIsIFwKLSAgICAgICAgICAiMC4wMDc1LCAwLjAxODc1LCAwLjAzMTI1LCAwLjA0Mzc1LCAwLjA1LCAwLjA2NjI1LCAwLjA3NSIsIFwKLSAgICAgICAgICAiMC4wMDEyNSwgMC4wMTI1LCAwLjAyNSwgMC4wMzc1LCAwLjA0Mzc1LCAwLjA2LCAwLjA2ODc1IiwgXAotICAgICAgICAgICItMC4wMDUsIDAuMDA2MjUsIDAuMDE4NzUsIDAuMDMxMjUsIDAuMDM3NSwgMC4wNTM3NSwgMC4wNjI1IiwgXAotICAgICAgICAgICItMC4wMDg3NSwgLTAuMDAzNzUsIDAuMDA4NzUsIDAuMDIxMjUsIDAuMDMzNzUsIDAuMDUsIDAuMDU4NzUiLCBcCi0gICAgICAgICAgIi0wLjAxNzUsIC0wLjAwNjI1LCAwLjAwNjI1LCAwLjAxODc1LCAwLjAyNSwgMC4wNDEyNSwgMC4wNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiU04iOwotICAgICAgc2RmX2NvbmQgOiAiU04gPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM3NSwgMC4wMzI1LCAwLjAyLCAwLjAxMzc1LCAwLjAwNzUsIC0wLjAwMjUsIC0wLjAxMTI1IiwgXAotICAgICAgICAgICIwLjA0ODc1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDE4NzUsIDAuMDEyNSwgMC4wMDI1LCAwIiwgXAotICAgICAgICAgICIwLjA2MTI1LCAwLjA1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDI1LCAwLjAxNSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiMC4wNjc1LCAwLjA1NjI1LCAwLjA1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDI3NSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4wOCwgMC4wNjg3NSwgMC4wNTYyNSwgMC4wNSwgMC4wNDM3NSwgMC4wMzM3NSwgMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMDksIDAuMDc4NzUsIDAuMDcyNSwgMC4wNiwgMC4wNTM3NSwgMC4wNDM3NSwgMC4wNDEyNSIsIFwKLSAgICAgICAgICAiMC4xMDUsIDAuMDkzNzUsIDAuMDgxMjUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNTI1LCAwLjA1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM3NSwgMC4wMjYyNSwgMC4wMTM3NSwgLTAuMDA1LCAtMC4wMTEyNSwgLTAuMDMzNzUsIC0wLjA0MjUiLCBcCi0gICAgICAgICAgIjAuMDQyNSwgMC4wMzEyNSwgMC4wMTg3NSwgMC4wMDYyNSwgLTAuMDA2MjUsIC0wLjAyMjUsIC0wLjAzNzUiLCBcCi0gICAgICAgICAgIjAuMDU1LCAwLjA0Mzc1LCAwLjAzMTI1LCAwLjAxODc1LCAwLjAwNjI1LCAtMC4wMSwgLTAuMDI1IiwgXAotICAgICAgICAgICIwLjA2MTI1LCAwLjA1LCAwLjAzNzUsIDAuMDI1LCAwLjAxMjUsIC0wLjAwMzc1LCAtMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4wNjc1LCAwLjA2MjUsIDAuMDQzNzUsIDAuMDMxMjUsIDAuMDE4NzUsIDAuMDAyNSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMDgzNzUsIDAuMDcyNSwgMC4wNiwgMC4wNDEyNSwgMC4wMzUsIDAuMDEyNSwgMC4wMDM3NSIsIFwKLSAgICAgICAgICAiMC4wOTI1LCAwLjA4MTI1LCAwLjA2MjUsIDAuMDUsIDAuMDM3NSwgMC4wMjEyNSwgMC4wMTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihRKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMjYyMzYzOwotICAgIGZ1bmN0aW9uIDogIk4zNSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3NlbnNlIDogbm9uX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiByaXNpbmdfZWRnZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTMxNDQ5LCAwLjE1NTY4LCAwLjI5Mjc3NiwgMC40MTM3MTcsIDAuNTc0OTYxLCAwLjg5NzUxNSwgMS4wOTkwMyIsIFwKLSAgICAgICAgICAiMC4xNDE2MTIsIDAuMTY1ODM0LCAwLjMwMjk0NCwgMC40MjM4NzUsIDAuNTg1MTQ4LCAwLjkwNzY3NywgMS4xMDkyIiwgXAotICAgICAgICAgICIwLjE1NDM1NywgMC4xNzg1ODUsIDAuMzE1Njg5LCAwLjQzNjYyMywgMC41OTc5NTcsIDAuOTIwMzk1LCAxLjEyMTk2IiwgXAotICAgICAgICAgICIwLjE2Njc3MSwgMC4xOTA5OSwgMC4zMjgwOTgsIDAuNDQ5MDI5LCAwLjYxMDI4MiwgMC45MzI3OTMsIDEuMTM0MzgiLCBcCi0gICAgICAgICAgIjAuMTc4MDE4LCAwLjIwMjI0MywgMC4zMzkzNDMsIDAuNDYwMjc3LCAwLjYyMTU0MSwgMC45NDQwMywgMS4xNDU1NSIsIFwKLSAgICAgICAgICAiMC4xOTM2ODEsIDAuMjE3OTA0LCAwLjM1NTAwNiwgMC40NzU5MzksIDAuNjM3MTg3LCAwLjk1OTY5NiwgMS4xNjEyMiIsIFwKLSAgICAgICAgICAiMC4yMDU3MzQsIDAuMjI5OTQ4LCAwLjM2NzA2LCAwLjQ4Nzk4NiwgMC42NDkyMjIsIDAuOTcxNzQzLCAxLjE3MzI4Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5MDAxNSwgMC4xMzkzOSwgMC40MjE0OTIsIDAuNjY5OTU4LCAxLjAwMTgxLCAxLjY2NTE1LCAyLjA3OTA2IiwgXAotICAgICAgICAgICIwLjA5MDAxOSwgMC4xMzkyMzQsIDAuNDIxNDkxLCAwLjY2OTg4MywgMS4wMDE4NCwgMS42NjUyLCAyLjA4MDY3IiwgXAotICAgICAgICAgICIwLjA5MDA3NCwgMC4xMzkzOTIsIDAuNDIxNDg5LCAwLjY2OTkzMiwgMS4wMDExNSwgMS42NjQ5NSwgMi4wNzk1NiIsIFwKLSAgICAgICAgICAiMC4wOTAwODQsIDAuMTM5MzgxLCAwLjQyMDY1MSwgMC42Njk4NjUsIDEuMDAyOTksIDEuNjY0NDksIDIuMDc5OTEiLCBcCi0gICAgICAgICAgIjAuMDkwMDEsIDAuMTM5MzgsIDAuNDIxNDcxLCAwLjY3MDM5OCwgMS4wMDE2OSwgMS42NjU0OCwgMi4wODA1MSIsIFwKLSAgICAgICAgICAiMC4wODk5ODksIDAuMTM5Mzc5LCAwLjQyMTQ2NywgMC42Njk4NDUsIDEuMDAxODUsIDEuNjY0MywgMi4wODMwMyIsIFwKLSAgICAgICAgICAiMC4wODk5OTUsIDAuMTM5MjI2LCAwLjQyMTQwMywgMC42Njk4MTMsIDEuMDAxNjUsIDEuNjY1NTMsIDIuMDgwMjkiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTU2NTY3LCAwLjE4MTM2MSwgMC4zMjE1NTcsIDAuNDQ1MjM2LCAwLjYxMDA4NywgMC45Mzk4MDQsIDEuMTQ1ODkiLCBcCi0gICAgICAgICAgIjAuMTY2Nzc4LCAwLjE5MTU3MSwgMC4zMzE3NjksIDAuNDU1NDUzLCAwLjYyMDI5NiwgMC45NTAwMTgsIDEuMTU2MDkiLCBcCi0gICAgICAgICAgIjAuMTc5NTY1LCAwLjIwNDM1OSwgMC4zNDQ1NTksIDAuNDY4MjA4LCAwLjYzMzA4MywgMC45NjI4MTMsIDEuMTY4ODgiLCBcCi0gICAgICAgICAgIjAuMTkxOTgxLCAwLjIxNjc3OSwgMC4zNTY5NzUsIDAuNDgwNjU1LCAwLjY0NTUwNSwgMC45NzUyMjMsIDEuMTgxMzEiLCBcCi0gICAgICAgICAgIjAuMjAzMzE1LCAwLjIyODEwOCwgMC4zNjgzMDQsIDAuNDkxOTc5LCAwLjY1NjgyNywgMC45ODY1NzgsIDEuMTkyNjEiLCBcCi0gICAgICAgICAgIjAuMjE5MDA4LCAwLjI0MzgwMSwgMC4zODQwMDIsIDAuNTA3NjUyLCAwLjY3MjUyNSwgMS4wMDIyNSwgMS4yMDgzMiIsIFwKLSAgICAgICAgICAiMC4yMzEzMjMsIDAuMjU2MTE1LCAwLjM5NjMwOSwgMC41MTk5NzksIDAuNjg0ODY3LCAxLjAxNDU4LCAxLjIyMDY0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5MDEwNywgMC4xMzkzNDMsIDAuNDIwNzgxLCAwLjY3MTI2NSwgMS4wMDM4OSwgMS42NjYxOCwgMi4wODE2NSIsIFwKLSAgICAgICAgICAiMC4wOTAxNzMsIDAuMTM5MzMzLCAwLjQyMDk1MywgMC42NzEyNTksIDEuMDAzODUsIDEuNjY2MzQsIDIuMDgxNDEiLCBcCi0gICAgICAgICAgIjAuMDkwMTA1LCAwLjEzOTMzOSwgMC40MjEwMzgsIDAuNjY5ODA1LCAxLjAwMzg1LCAxLjY2NjY4LCAyLjA4MTI1IiwgXAotICAgICAgICAgICIwLjA5MDE5OCwgMC4xMzkzMzYsIDAuNDIwNzc5LCAwLjY3MTI1NywgMS4wMDM4OCwgMS42NjYxOSwgMi4wODE2OSIsIFwKLSAgICAgICAgICAiMC4wOTAxMDUsIDAuMTM5MzQyLCAwLjQyMDY3NywgMC42NzEyNTgsIDEuMDAzODIsIDEuNjY5MjksIDIuMDg0NzciLCBcCi0gICAgICAgICAgIjAuMDkwMTcxLCAwLjEzOTMzOSwgMC40MjA4OTUsIDAuNjY5ODY1LCAxLjAwMzg3LCAxLjY2NjUzLCAyLjA4MTMiLCBcCi0gICAgICAgICAgIjAuMDkwMTY4LCAwLjEzOTM0NiwgMC40MjEyMzgsIDAuNjcxMjQsIDEuMDAxMzMsIDEuNjY5MjksIDIuMDgxNzIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiU04iOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHByZXNldDsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTE4NDE3LCAwLjE0MjYzNiwgMC4yNzk2OTUsIDAuNDAwNjkyLCAwLjU2MTkyNiwgMC44ODQ0MzEsIDEuMDg2MTQiLCBcCi0gICAgICAgICAgIjAuMTI4MTc0LCAwLjE1MjM5MSwgMC4yODk1MzIsIDAuNDEwNDQ0LCAwLjU3MTY4NywgMC44OTQxNzYsIDEuMDk1NzYiLCBcCi0gICAgICAgICAgIjAuMTQwNTc0LCAwLjE2NDgwMywgMC4zMDE5MjcsIDAuNDIyODQ1LCAwLjU4NDA4NiwgMC45MDY2OTQsIDEuMTA4MTQiLCBcCi0gICAgICAgICAgIjAuMTUyMzcsIDAuMTc2NTgyLCAwLjMxMzczNywgMC40MzQ2MTksIDAuNTk1ODY2LCAwLjkxODM3NywgMS4xMTk5IiwgXAotICAgICAgICAgICIwLjE2MzI2OSwgMC4xODc0OTQsIDAuMzI0NjI4LCAwLjQ0NTU0LCAwLjYwNjgxOCwgMC45MjkyNzYsIDEuMTMwODUiLCBcCi0gICAgICAgICAgIjAuMTc4NzUxLCAwLjIwMjk2NSwgMC4zNDAxMTYsIDAuNDYxMDExLCAwLjYyMjI1OSwgMC45NDQ3NTYsIDEuMTQ2MzIiLCBcCi0gICAgICAgICAgIjAuMTkwNDY1LCAwLjIxNDY4NCwgMC4zNTE4MDIsIDAuNDcyNzMsIDAuNjMzOTcsIDAuOTU2NTAxLCAxLjE1OCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODk4NTcsIDAuMTM5MDQ1LCAwLjQyMTQ2NCwgMC42NzA0NDcsIDEuMDAzMjMsIDEuNjY3NjMsIDIuMDgzNjQiLCBcCi0gICAgICAgICAgIjAuMDg5ODQ3LCAwLjEzODk5NiwgMC40MjE1MDcsIDAuNjcwNjc4LCAxLjAwMTk2LCAxLjY2NzYxLCAyLjA4Mjc1IiwgXAotICAgICAgICAgICIwLjA4OTg0NywgMC4xMzkxMjEsIDAuNDIxNDc2LCAwLjY3MDY3NywgMS4wMDE5MiwgMS42Njc5OSwgMi4wODI3NCIsIFwKLSAgICAgICAgICAiMC4wODk5NTUsIDAuMTM5MywgMC40MjE0NjMsIDAuNjcwNjQ5LCAxLjAwMjkzLCAxLjY2Njk4LCAyLjA4MzExIiwgXAotICAgICAgICAgICIwLjA4OTk2OCwgMC4xMzkyOTcsIDAuNDIxNDUzLCAwLjY3MDY0NiwgMS4wMDMwNSwgMS42Njc3NSwgMi4wODA0NyIsIFwKLSAgICAgICAgICAiMC4wODk5NzYsIDAuMTM5MzY1LCAwLjQyMTUzOSwgMC42NzA3NTcsIDEuMDAyOTUsIDEuNjY4MDMsIDIuMDgyMTYiLCBcCi0gICAgICAgICAgIjAuMDg5OTQxLCAwLjEzOTMzLCAwLjQyMTUwNywgMC42NzA3MDMsIDEuMDAyNywgMS42Njc3LCAyLjA4MzE5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNzMxNSwgMC4wMDczMjEsIDAuMDA3MzI5LCAwLjAwNzMzMSwgMC4wMDczMzEsIDAuMDA3MzMyLCAwLjAwNzMzMiIsIFwKLSAgICAgICAgICAiMC4wMDcyODIsIDAuMDA3Mjg5LCAwLjAwNzI5NiwgMC4wMDcyOTksIDAuMDA3MywgMC4wMDczMDIsIDAuMDA3MzAxIiwgXAotICAgICAgICAgICIwLjAwNzI2NiwgMC4wMDcyNzIsIDAuMDA3MjgxLCAwLjAwNzI4MywgMC4wMDcyODMsIDAuMDA3Mjg0LCAwLjAwNzI4NCIsIFwKLSAgICAgICAgICAiMC4wMDcyNjMsIDAuMDA3MjcsIDAuMDA3Mjc5LCAwLjAwNzI4LCAwLjAwNzI4LCAwLjAwNzI4MSwgMC4wMDcyODIiLCBcCi0gICAgICAgICAgIjAuMDA3Mjc0LCAwLjAwNzI4LCAwLjAwNzI4OSwgMC4wMDcyOSwgMC4wMDcyOTEsIDAuMDA3MjkxLCAwLjAwNzI5MSIsIFwKLSAgICAgICAgICAiMC4wMDcyODYsIDAuMDA3MjkyLCAwLjAwNzMwMSwgMC4wMDczMDMsIDAuMDA3MzA1LCAwLjAwNzMwNCwgMC4wMDczMDUiLCBcCi0gICAgICAgICAgIjAuMDA3MzIsIDAuMDA3MzIyLCAwLjAwNzMzNiwgMC4wMDczMzgsIDAuMDA3MzM5LCAwLjAwNzM0LCAwLjAwNzM0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2OTUzLCAwLjAwNjk2MiwgMC4wMDY5NzUsIDAuMDA2OTc4LCAwLjAwNjk3OSwgMC4wMDY5OCwgMC4wMDY5ODEiLCBcCi0gICAgICAgICAgIjAuMDA2OTI0LCAwLjAwNjkzMywgMC4wMDY5NDYsIDAuMDA2OTQ5LCAwLjAwNjk1LCAwLjAwNjk1MSwgMC4wMDY5NTIiLCBcCi0gICAgICAgICAgIjAuMDA2OTIxLCAwLjAwNjkzMSwgMC4wMDY5NDQsIDAuMDA2OTQ2LCAwLjAwNjk0NywgMC4wMDY5NDksIDAuMDA2OTQ5IiwgXAotICAgICAgICAgICIwLjAwNjkzNywgMC4wMDY5NDYsIDAuMDA2OTU5LCAwLjAwNjk2MiwgMC4wMDY5NjMsIDAuMDA2OTY1LCAwLjAwNjk2NSIsIFwKLSAgICAgICAgICAiMC4wMDY5NjIsIDAuMDA2OTcyLCAwLjAwNjk4NCwgMC4wMDY5ODcsIDAuMDA2OTg4LCAwLjAwNjk5LCAwLjAwNjk5IiwgXAotICAgICAgICAgICIwLjAwNjk4MiwgMC4wMDY5OTEsIDAuMDA3MDA0LCAwLjAwNzAwNywgMC4wMDcwMDgsIDAuMDA3MDEsIDAuMDA3MDEiLCBcCi0gICAgICAgICAgIjAuMDA3MDQ1LCAwLjAwNzA1NSwgMC4wMDcwNjgsIDAuMDA3MDcsIDAuMDA3MDcyLCAwLjAwNzA3MywgMC4wMDcwNzMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA4NjQ5LCAwLjAwODY1NiwgMC4wMDg2NjUsIDAuMDA4NjY3LCAwLjAwODY2OCwgMC4wMDg2NzMsIDAuMDA4NjY5IiwgXAotICAgICAgICAgICIwLjAwODYwNiwgMC4wMDg2MTMsIDAuMDA4NjIyLCAwLjAwODYyMywgMC4wMDg2MjQsIDAuMDA4NjI1LCAwLjAwODYyOSIsIFwKLSAgICAgICAgICAiMC4wMDg1NzQsIDAuMDA4NTgxLCAwLjAwODU5LCAwLjAwODU5MSwgMC4wMDg1OTMsIDAuMDA4NTkzLCAwLjAwODU5NCIsIFwKLSAgICAgICAgICAiMC4wMDg1NDksIDAuMDA4NTU2LCAwLjAwODU2NiwgMC4wMDg1NjgsIDAuMDA4NTY5LCAwLjAwODU3NSwgMC4wMDg1NyIsIFwKLSAgICAgICAgICAiMC4wMDg1NCwgMC4wMDg1NDcsIDAuMDA4NTU3LCAwLjAwODU2LCAwLjAwODU2LCAwLjAwODU2MSwgMC4wMDg1NjIiLCBcCi0gICAgICAgICAgIjAuMDA4NTQzLCAwLjAwODU1MSwgMC4wMDg1NjIsIDAuMDA4NTY0LCAwLjAwODU2NiwgMC4wMDg1NjUsIDAuMDA4NTY2IiwgXAotICAgICAgICAgICIwLjAwODU0NywgMC4wMDg1NTUsIDAuMDA4NTY2LCAwLjAwODU2OCwgMC4wMDg1NywgMC4wMDg1NywgMC4wMDg1NzEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoc2NhbGFyKSB7Ci0gICAgICAgIHZhbHVlcygiMCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oU04pICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTgwMTU5OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTY3MzQ7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxODAxNTk7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNjUzLCAwLjAwMDY1MiwgMC4wMDA2NTIsIDAuMDAwNjUyLCAwLjAwMDY1MiwgMC4wMDA2NTIsIDAuMDAwNjUyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNjYyLCAwLjAwMDY1NSwgMC4wMDA2NTQsIDAuMDAwNjU0LCAwLjAwMDY1NCwgMC4wMDA2NTQsIDAuMDAwNjU0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRCI7Ci0gICAgICBzZGZfY29uZCA6ICJEID09IDEnYjAiOwotICAgICAgZmFsbF9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMTE4NDE3LCAwLjEyODE3MywgMC4xNDA1NzQsIDAuMTUyMzcsIDAuMTYzMjY5LCAwLjE3ODc1LCAwLjE5MDQ2NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJlY292ZXJ5X3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUQiOwotICAgICAgc2RmX2NvbmQgOiAiRCA9PSAxJ2IwIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChyZWNvdmVyeV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMCwgLTAuMDExMjUsIC0wLjAyMzc1LCAtMC4wMzYyNSwgLTAuMDQ4NzUsIC0wLjA2NSwgLTAuMDgiLCBcCi0gICAgICAgICAgIjAuMDExMjUsIDAsIC0wLjAxODc1LCAtMC4wMzEyNSwgLTAuMDQzNzUsIC0wLjA2LCAtMC4wNjg3NSIsIFwKLSAgICAgICAgICAiMC4wMTc1LCAwLjAwNjI1LCAtMC4wMDYyNSwgLTAuMDE4NzUsIC0wLjAzMTI1LCAtMC4wNDc1LCAtMC4wNjI1IiwgXAotICAgICAgICAgICIwLjAzLCAwLjAxODc1LCAwLjAwNjI1LCAtMC4wMDYyNSwgLTAuMDE4NzUsIC0wLjAzNSwgLTAuMDUiLCBcCi0gICAgICAgICAgIjAuMDQyNSwgMC4wMzEyNSwgMC4wMTI1LCAwLCAtMC4wMTI1LCAtMC4wMjg3NSwgLTAuMDM3NSIsIFwKLSAgICAgICAgICAiMC4wNTg3NSwgMC4wNDc1LCAwLjAyODc1LCAwLjAxNjI1LCAwLjAwMzc1LCAtMC4wMTI1LCAtMC4wMjEyNSIsIFwKLSAgICAgICAgICAiMC4wNjc1LCAwLjA1NjI1LCAwLjA0Mzc1LCAwLjAzMTI1LCAwLjAxODc1LCAwLjAwMjUsIC0wLjAxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiByZW1vdmFsX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUQiOwotICAgICAgc2RmX2NvbmQgOiAiRCA9PSAxJ2IwIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChyZW1vdmFsX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzNzUsIDAuMDQ4NzUsIDAuMDYxMjUsIDAuMDczNzUsIDAuMDg2MjUsIDAuMTAyNSwgMC4xMTc1IiwgXAotICAgICAgICAgICIwLjAzMjUsIDAuMDQzNzUsIDAuMDU2MjUsIDAuMDY4NzUsIDAuMDgxMjUsIDAuMDkxMjUsIDAuMTA2MjUiLCBcCi0gICAgICAgICAgIjAuMDIsIDAuMDMxMjUsIDAuMDQzNzUsIDAuMDU2MjUsIDAuMDY4NzUsIDAuMDg1LCAwLjA5Mzc1IiwgXAotICAgICAgICAgICIwLjAxMzc1LCAwLjAxODc1LCAwLjAzNzUsIDAuMDUsIDAuMDU2MjUsIDAuMDcyNSwgMC4wODc1IiwgXAotICAgICAgICAgICIwLjAwMTI1LCAwLjAxMjUsIDAuMDI1LCAwLjAzNzUsIDAuMDUsIDAuMDY2MjUsIDAuMDc1IiwgXAotICAgICAgICAgICItMC4wMDg3NSwgLTAuMDAzNzUsIDAuMDA4NzUsIDAuMDIxMjUsIDAuMDMzNzUsIDAuMDUsIDAuMDY1IiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDEyNSwgMCwgMC4wMTI1LCAwLjAyNSwgMC4wNDEyNSwgMC4wNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogREZGU1JIUVg4ICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoREZGU1JIUVg4KSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuODIyMjg1OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIGZmIChOMzUsUUJJTlQpIHsKLSAgICBuZXh0X3N0YXRlIDogIkQiOwotICAgIGNsb2NrZWRfb24gOiAiQ0siOwotICAgIGNsZWFyIDogIighUk4pIjsKLSAgICBwcmVzZXQgOiAiKCFTTikiOwotICAgIGNsZWFyX3ByZXNldF92YXIxIDogSDsKLSAgfQotICBwaW4oQ0spICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYwNzIzOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYwNzIzOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDYwNzIwMTsKLSAgICBjbG9jayA6IHRydWU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzODMxLCAwLjAwMzgwNiwgMC4wMDM3OTMsIDAuMDAzNzkzLCAwLjAwMzgwNCwgMC4wMDM4MjcsIDAuMDAzODQ1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA4MzMyLCAwLjAwODMxMywgMC4wMDgyOTgsIDAuMDA4MzAxLCAwLjAwODMwNCwgMC4wMDgzMiwgMC4wMDgzMzkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFEJlJOJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9STl9FUV8xX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4xNDc4MTcsIDAuMTU4MDQ5LCAwLjE3MDc3MSwgMC4xODMyMSwgMC4xOTQ0NCwgMC4yMTAzOCwgMC4yMjIzMTciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjEyNzExMiwgMC4xMzY5MDYsIDAuMTQ5MTQsIDAuMTYxMjQxLCAwLjE3MTgxLCAwLjE4NjE2MywgMC4xOTcwMzQiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEQpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDc3MzkxMzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA3NzE5NTQ7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNzczOTEzOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzUyNiwgMC4wMDM0OTMsIDAuMDAzNDc0LCAwLjAwMzQ2MiwgMC4wMDM0NTksIDAuMDAzNDYxLCAwLjAwMzQ3MyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzk2NCwgMC4wMDM5NDQsIDAuMDAzOTMxLCAwLjAwMzkyMiwgMC4wMDM5MTgsIDAuMDAzOTE2LCAwLjAwMzkxNyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJSTiZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJSTl9FUV8xX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDE4NzUsIC0wLjAwNzUsIC0wLjAwMTI1LCAwLjAwNSwgMC4wMTEyNSwgMC4wMjEyNSwgMC4wMjM3NSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxODc1LCAtMC4wMDYyNSwgMCwgMCwgMC4wMSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLjAwMzc1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDg3NSwgMCIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDE1LCAtMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wNjUsIC0wLjA1Mzc1LCAtMC4wNDc1LCAtMC4wNDEyNSwgLTAuMDM1LCAtMC4wMjUsIC0wLjAyMjUiLCBcCi0gICAgICAgICAgIi0wLjA3Mzc1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wMzM3NSwgLTAuMDMxMjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzMTI1LCAwLjA0MjUsIDAuMDU1LCAwLjA2MTI1LCAwLjA3Mzc1LCAwLjA5LCAwLjA5ODc1IiwgXAotICAgICAgICAgICIwLjAyLCAwLjAzMTI1LCAwLjA0Mzc1LCAwLjA1NjI1LCAwLjA2MjUsIDAuMDc4NzUsIDAuMDg3NSIsIFwKLSAgICAgICAgICAiMC4wMTM3NSwgMC4wMjUsIDAuMDM3NSwgMC4wNSwgMC4wNTYyNSwgMC4wNzI1LCAwLjA4MTI1IiwgXAotICAgICAgICAgICIwLjAwNzUsIDAuMDE4NzUsIDAuMDMxMjUsIDAuMDQzNzUsIDAuMDUsIDAuMDY2MjUsIDAuMDc1IiwgXAotICAgICAgICAgICIwLjAwMTI1LCAwLjAxMjUsIDAuMDI1LCAwLjAzNzUsIDAuMDQzNzUsIDAuMDYsIDAuMDY4NzUiLCBcCi0gICAgICAgICAgIi0wLjAwMjUsIDAuMDA4NzUsIDAuMDIxMjUsIDAuMDI3NSwgMC4wNCwgMC4wNTYyNSwgMC4wNjUiLCBcCi0gICAgICAgICAgIi0wLjAwNSwgMCwgMC4wMTI1LCAwLjAyNSwgMC4wMzc1LCAwLjA0NzUsIDAuMDYyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiUk4mU04iOwotICAgICAgc2RmX2NvbmQgOiAiUk5fRVFfMV9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2ODc1LCAwLjA1NzUsIDAuMDQ1LCAwLjAzMjUsIDAuMDIsIDAuMDEsIDAuMDAxMjUiLCBcCi0gICAgICAgICAgIjAuMDgsIDAuMDY4NzUsIDAuMDU2MjUsIDAuMDQzNzUsIDAuMDMxMjUsIDAuMDIxMjUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4wOTI1LCAwLjA3NSwgMC4wNjI1LCAwLjA1LCAwLjA0Mzc1LCAwLjAyNzUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMDk4NzUsIDAuMDg3NSwgMC4wNzUsIDAuMDYyNSwgMC4wNSwgMC4wNCwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4xMTEyNSwgMC4xLCAwLjA4MTI1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDQ2MjUsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiMC4xMjEyNSwgMC4xMSwgMC4wOTc1LCAwLjA4NSwgMC4wNzI1LCAwLjA2MjUsIDAuMDUzNzUiLCBcCi0gICAgICAgICAgIjAuMTMsIDAuMTE4NzUsIDAuMTA2MjUsIDAuMDkzNzUsIDAuMDgxMjUsIDAuMDcxMjUsIDAuMDYyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0Mzc1LCAwLjAzMjUsIDAuMDIsIDAuMDA3NSwgLTAuMDA1LCAtMC4wMjc1LCAtMC4wMzYyNSIsIFwKLSAgICAgICAgICAiMC4wNDg3NSwgMC4wMzc1LCAwLjAyNSwgMC4wMTI1LCAwLCAtMC4wMTYyNSwgLTAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMDYxMjUsIDAuMDUsIDAuMDM3NSwgMC4wMjUsIDAuMDEyNSwgLTAuMDEsIC0wLjAxODc1IiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDU2MjUsIDAuMDQzNzUsIDAuMDMxMjUsIDAuMDE4NzUsIDAuMDAyNSwgLTAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4wNzM3NSwgMC4wNjg3NSwgMC4wNSwgMC4wMzc1LCAwLjAyNSwgMC4wMDg3NSwgMCIsIFwKLSAgICAgICAgICAiMC4wOSwgMC4wNzg3NSwgMC4wNjYyNSwgMC4wNDc1LCAwLjA0MTI1LCAwLjAxODc1LCAwLjAxIiwgXAotICAgICAgICAgICIwLjA5ODc1LCAwLjA4NzUsIDAuMDc1LCAwLjA1NjI1LCAwLjA1LCAwLjAyNzUsIDAuMDE4NzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFEpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMi4wMTE3OTsKLSAgICBmdW5jdGlvbiA6ICJOMzUiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5vbl91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcmlzaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTM5MTAyLCAwLjE3NzU0MiwgMC4yMTM0NjEsIDAuMjM5MDcsIDAuMjgwMDUzLCAwLjMxNTg4NywgMC4zNjcwODQiLCBcCi0gICAgICAgICAgIjAuMTQ5MzMsIDAuMTg3NzExLCAwLjIyMzYyNywgMC4yNDkyNTEsIDAuMjkwMjI2LCAwLjMyNjA1MiwgMC4zNzcyMiIsIFwKLSAgICAgICAgICAiMC4xNjE4OTEsIDAuMjAwMzMzLCAwLjIzNjI1NSwgMC4yNjE4NzIsIDAuMzAyODQ4LCAwLjMzODY3OSwgMC4zODk4NzIiLCBcCi0gICAgICAgICAgIjAuMTc0MjA2LCAwLjIxMjYyOSwgMC4yNDg1NSwgMC4yNzQxNjcsIDAuMzE1MTQzLCAwLjM1MDk3NCwgMC40MDIxNjkiLCBcCi0gICAgICAgICAgIjAuMTg1Mjg1LCAwLjIyMzcwOSwgMC4yNTk2MjksIDAuMjg1MjUsIDAuMzI2MjIyLCAwLjM2MjA1MywgMC40MTMyNTQiLCBcCi0gICAgICAgICAgIjAuMjAwNDM0LCAwLjIzODg1NiwgMC4yNzQ3NzUsIDAuMzAwMzk2LCAwLjM0MTM2NiwgMC4zNzcyLCAwLjQyODM5NSIsIFwKLSAgICAgICAgICAiMC4yMTI3NzgsIDAuMjUxMjI4LCAwLjI4NzE0NywgMC4zMTI3NjgsIDAuMzUzNzQsIDAuMzg5NTczLCAwLjQ0MDc3MyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyMzk4MSwgMC4wOTI5NTMsIDAuMTY1NTU4LCAwLjIxODAyLCAwLjMwMjIwNiwgMC4zNzU2NCwgMC40ODExNjgiLCBcCi0gICAgICAgICAgIjAuMDIzOTY3LCAwLjA5MjkxMiwgMC4xNjU1NjUsIDAuMjE3OTU0LCAwLjMwMjIxNCwgMC4zNzU3LCAwLjQ4MDcyNCIsIFwKLSAgICAgICAgICAiMC4wMjM5OTIsIDAuMDkyOTU0LCAwLjE2NTU1OCwgMC4yMTgwMjIsIDAuMzAyMjA5LCAwLjM3NjA1MSwgMC40ODE2IiwgXAotICAgICAgICAgICIwLjAyMzk3NiwgMC4wOTI5NTMsIDAuMTY1NTU3LCAwLjIxNzk1NywgMC4zMDIyMDksIDAuMzc2MDUxLCAwLjQ4MTYwNyIsIFwKLSAgICAgICAgICAiMC4wMjM5ODgsIDAuMDkyOTUsIDAuMTY1NTU3LCAwLjIxNzk2MSwgMC4zMDIyMDgsIDAuMzc2MDUyLCAwLjQ4MTYyMiIsIFwKLSAgICAgICAgICAiMC4wMjQwMzksIDAuMDkyOTYxLCAwLjE2NTU2MSwgMC4yMTc2MzQsIDAuMzAyMjA4LCAwLjM3NjA5NywgMC40ODA5NzkiLCBcCi0gICAgICAgICAgIjAuMDIzOTc1LCAwLjA5Mjk0NSwgMC4xNjU1NTcsIDAuMjE3ODc2LCAwLjMwMjIwOCwgMC4zNzYwOTcsIDAuNDgxNTMxIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTQ3ODE3LCAwLjE4Nzk5MywgMC4yMjYxMDUsIDAuMjUzMjczLCAwLjI5NjcxMSwgMC4zMzQ2OTgsIDAuMzg4OTY1IiwgXAotICAgICAgICAgICIwLjE1ODA0OSwgMC4xOTgyMzEsIDAuMjM2MzQ0LCAwLjI2MzUxMSwgMC4zMDY5NDksIDAuMzQ0OTM2LCAwLjM5OTIxMSIsIFwKLSAgICAgICAgICAiMC4xNzA3NzEsIDAuMjEwOTgxLCAwLjI0OTA5MiwgMC4yNzYyNjcsIDAuMzE5Njk3LCAwLjM1NzY4NCwgMC40MTE5NTIiLCBcCi0gICAgICAgICAgIjAuMTgzMjEsIDAuMjIzMzkxLCAwLjI2MTUwNSwgMC4yODg2NzIsIDAuMzMyMTEsIDAuMzcwMDk3LCAwLjQyNDM3IiwgXAotICAgICAgICAgICIwLjE5NDQ0LCAwLjIzNDYyNywgMC4yNzI3MzcsIDAuMjk5OTE0LCAwLjM0MzM0MiwgMC4zODEzMjksIDAuNDM1NTk2IiwgXAotICAgICAgICAgICIwLjIxMDM4LCAwLjI1MDU1NiwgMC4yODg3LCAwLjMxNTg2NywgMC4zNTkzMDYsIDAuMzk3MjksIDAuNDUxNTU1IiwgXAotICAgICAgICAgICIwLjIyMjMxNywgMC4yNjI0ODcsIDAuMzAwNiwgMC4zMjc3ODIsIDAuMzcxMjAxLCAwLjQwOTE4OSwgMC40NjM0NzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjMyMDksIDAuMDk2MDk1LCAwLjE3MjA1OSwgMC4yMjY4MDYsIDAuMzE0Njc2LCAwLjM5MTYxMiwgMC41MDIzNzUiLCBcCi0gICAgICAgICAgIjAuMDIzMTg4LCAwLjA5NjE1NiwgMC4xNzIwNjEsIDAuMjI2ODA0LCAwLjMxNDY3NywgMC4zOTE2MDQsIDAuNTAyMjc4IiwgXAotICAgICAgICAgICIwLjAyMzEzOSwgMC4wOTYwODUsIDAuMTcyMDU5LCAwLjIyNjc5NiwgMC4zMTQ2NywgMC4zOTE2MDEsIDAuNTAyNDkzIiwgXAotICAgICAgICAgICIwLjAyMzE5LCAwLjA5NjE3NywgMC4xNzIwNjEsIDAuMjI2ODA0LCAwLjMxNDY3NywgMC4zOTE2MDQsIDAuNTAyMzM0IiwgXAotICAgICAgICAgICIwLjAyMzE4NSwgMC4wOTYwOTYsIDAuMTcyMDYsIDAuMjI2ODIsIDAuMzE0Njc2LCAwLjM5MTYwNCwgMC41MDI1NzciLCBcCi0gICAgICAgICAgIjAuMDIzMjEzLCAwLjA5NjEyNSwgMC4xNzIwNTgsIDAuMjI2ODAzLCAwLjMxNDY3NiwgMC4zOTE1OTQsIDAuNTAyNTc5IiwgXAotICAgICAgICAgICIwLjAyMzIyNywgMC4wOTYxNzgsIDAuMTcyMDYsIDAuMjI2ODMxLCAwLjMxNDc5NSwgMC4zOTE1OTEsIDAuNTAyMTkyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiBjbGVhcjsKLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNzczODQsIDAuMjE3NjI1LCAwLjI1NTcwNiwgMC4yODI4NjksIDAuMzI2Mjk4LCAwLjM2NDI4OSwgMC40MTg1NTgiLCBcCi0gICAgICAgICAgIjAuMTg3MjQxLCAwLjIyNzQ4MiwgMC4yNjU1NjUsIDAuMjkyNzI3LCAwLjMzNjE1NiwgMC4zNzQxNDcsIDAuNDI4NDE3IiwgXAotICAgICAgICAgICIwLjE5OTM4MSwgMC4yMzk2MjgsIDAuMjc3NjYzLCAwLjMwNDgyNSwgMC4zNDgyNTYsIDAuMzg2MjQ3LCAwLjQ0MDUxNyIsIFwKLSAgICAgICAgICAiMC4yMTAxOTUsIDAuMjUwNDM3LCAwLjI4ODQ3MiwgMC4zMTU2NTEsIDAuMzU5MDY4LCAwLjM5NzA1OSwgMC40NTEzMjkiLCBcCi0gICAgICAgICAgIjAuMjE5NDQ3LCAwLjI1OTcxMSwgMC4yOTc3NDcsIDAuMzI0OTI2LCAwLjM2ODM1NCwgMC40MDYzNDgsIDAuNDYwNjExIiwgXAotICAgICAgICAgICIwLjIzMjU1MywgMC4yNzI4MDIsIDAuMzEwOTUzLCAwLjMzODE0MSwgMC4zODE1NTcsIDAuNDE5NTQ4LCAwLjQ3MzgxOSIsIFwKLSAgICAgICAgICAiMC4yNDIzMTksIDAuMjgyNTY1LCAwLjMyMDU5OSwgMC4zNDc3NiwgMC4zOTExOTIsIDAuNDI5MTgzLCAwLjQ4MzQ1MyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyMzQ5OSwgMC4wOTYyMzksIDAuMTcyMTMsIDAuMjI2ODQyLCAwLjMxNDY2NCwgMC4zOTIyMDYsIDAuNTAyNzE3IiwgXAotICAgICAgICAgICIwLjAyMzQ5NywgMC4wOTYxOTIsIDAuMTcyMTI5LCAwLjIyNjgzMywgMC4zMTQ1OTgsIDAuMzkyMTk3LCAwLjUwMjcyMyIsIFwKLSAgICAgICAgICAiMC4wMjM1MTgsIDAuMDk2MjUxLCAwLjE3MjEzMiwgMC4yMjY4MzUsIDAuMzE0NjM0LCAwLjM5MjI3OSwgMC41MDI3MDkiLCBcCi0gICAgICAgICAgIjAuMDIzNDEzLCAwLjA5NjIzOCwgMC4xNzIxMywgMC4yMjY4MzUsIDAuMzE0NzU2LCAwLjM5MjMwNiwgMC41MDI2NDQiLCBcCi0gICAgICAgICAgIjAuMDIzMzM2LCAwLjA5NjIxMSwgMC4xNzIxMjQsIDAuMjI2ODMzLCAwLjMxNDY1OSwgMC4zOTIxNDcsIDAuNTAyNjY4IiwgXAotICAgICAgICAgICIwLjAyMzM1LCAwLjA5NjIwMywgMC4xNzIwOTYsIDAuMjI2ODQzLCAwLjMxNDY1NCwgMC4zOTIyNDQsIDAuNTAyNzYzIiwgXAotICAgICAgICAgICIwLjAyMzYyNCwgMC4wOTYxNzcsIDAuMTcyMTMsIDAuMjI2OTA4LCAwLjMxNDY4NCwgMC4zOTIyNTQsIDAuNTAyNjY5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiBwcmVzZXQ7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTE0MzM4LCAwLjE1MjM5NiwgMC4xODgzMTEsIDAuMjEzOTM1LCAwLjI1NDkyMSwgMC4yOTA3NTksIDAuMzQxOTU1IiwgXAotICAgICAgICAgICIwLjEyMzYxOCwgMC4xNjE3MDMsIDAuMTk3NjI5LCAwLjIyMzI1MSwgMC4yNjQyMjIsIDAuMzAwMDYsIDAuMzUxMjU3IiwgXAotICAgICAgICAgICIwLjEzMzg0OCwgMC4xNzE5MDEsIDAuMjA3ODE4LCAwLjIzMzQ0LCAwLjI3NDQyOCwgMC4zMTAyNjYsIDAuMzYxNDYyIiwgXAotICAgICAgICAgICIwLjE0NDQzMywgMC4xODI0MDksIDAuMjE4MzIsIDAuMjQzOTM5LCAwLjI4NDkxLCAwLjMyMDc0NiwgMC4zNzE5NDIiLCBcCi0gICAgICAgICAgIjAuMTU2MjM5LCAwLjE5NDIxMywgMC4yMzAxMzIsIDAuMjU1NzYzLCAwLjI5NjcyMywgMC4zMzI1NTksIDAuMzgzNzU1IiwgXAotICAgICAgICAgICIwLjE3MzY4LCAwLjIxMTY1OCwgMC4yNDc1NjUsIDAuMjczMTg4LCAwLjMxNDE2OSwgMC4zNDk5OTMsIDAuNDAxMTkyIiwgXAotICAgICAgICAgICIwLjE4NzY2MiwgMC4yMjU1MDcsIDAuMjYxNDA1LCAwLjI4NzAzNiwgMC4zMjgwMDcsIDAuMzYzOTc2LCAwLjQxNTIwMyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyMjk0MSwgMC4wOTI0NDEsIDAuMTY1MjIyLCAwLjIxNzc0MywgMC4zMDI0NTgsIDAuMzc2NDI3LCAwLjQ4MjE4NSIsIFwKLSAgICAgICAgICAiMC4wMjI4NzQsIDAuMDkyNDY1LCAwLjE2NTI4NCwgMC4yMTc4MSwgMC4zMDI0NTIsIDAuMzc2NDUyLCAwLjQ4MjE5NiIsIFwKLSAgICAgICAgICAiMC4wMjI4NjYsIDAuMDkyMzcsIDAuMTY1Mjg2LCAwLjIxNzc5OCwgMC4zMDI0MTQsIDAuMzc2NTIxLCAwLjQ4MjMwNCIsIFwKLSAgICAgICAgICAiMC4wMjI4NjYsIDAuMDkyMzk5LCAwLjE2NTIyMSwgMC4yMTc3NzYsIDAuMzAyNDU4LCAwLjM3NjQyNywgMC40ODIxODQiLCBcCi0gICAgICAgICAgIjAuMDIyODc0LCAwLjA5MjQ2MywgMC4xNjUyODUsIDAuMjE3ODExLCAwLjMwMjQzMSwgMC4zNzY0MzgsIDAuNDgyMTg2IiwgXAotICAgICAgICAgICIwLjAyMjcyMSwgMC4wOTI0NzgsIDAuMTY1MjcyLCAwLjIxNzgwNSwgMC4zMDIzNjQsIDAuMzc2NTY1LCAwLjQ4MjE2NiIsIFwKLSAgICAgICAgICAiMC4wMjI4OTEsIDAuMDkyNTY1LCAwLjE2NTMzMiwgMC4yMTc4MzIsIDAuMzAyNDM3LCAwLjM3NjQ1MSwgMC40ODIyMzciKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNTU3MzUsIDAuMTk1OTksIDAuMjM0MDI1LCAwLjI2MTE4NywgMC4zMDQ2MTcsIDAuMzQyNjA5LCAwLjM5Njg4IiwgXAotICAgICAgICAgICIwLjE2NTE0OSwgMC4yMDUzMjQsIDAuMjQzMzkzLCAwLjI3MDU1NSwgMC4zMTM5ODMsIDAuMzUxOTc0LCAwLjQwNjI0NCIsIFwKLSAgICAgICAgICAiMC4xNzU4NjMsIDAuMjE2MDgxLCAwLjI1NDE1LCAwLjI4MTMwOSwgMC4zMjQ3NCwgMC4zNjI3MzEsIDAuNDE3MDAxIiwgXAotICAgICAgICAgICIwLjE4NjM4NywgMC4yMjY2NDksIDAuMjY0Njg2LCAwLjI5MTg2LCAwLjMzNTI5MywgMC4zNzMyOTcsIDAuNDI3NTUiLCBcCi0gICAgICAgICAgIjAuMTk3MDA0LCAwLjIzNzI2NSwgMC4yNzUzNzQsIDAuMzAyNTM5LCAwLjM0NTk3NSwgMC4zODM5NjcsIDAuNDM4MjM4IiwgXAotICAgICAgICAgICIwLjIxMzYwMywgMC4yNTM4NTUsIDAuMjkxOTkyLCAwLjMxOTE2OCwgMC4zNjI1OTMsIDAuNDAwNTg1LCAwLjQ1NDg1NSIsIFwKLSAgICAgICAgICAiMC4yMjc2NzcsIDAuMjY3OTQxLCAwLjMwNTk4NCwgMC4zMzMxNjIsIDAuMzc2NTk0LCAwLjQxNDU4NywgMC40Njg4NjYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjM1MjcsIDAuMDk2MTg0LCAwLjE3MjEzOCwgMC4yMjY4NjQsIDAuMzE0Njc2LCAwLjM5MjI4LCAwLjUwMjY3MyIsIFwKLSAgICAgICAgICAiMC4wMjM1OTQsIDAuMDk2MTg2LCAwLjE3MjEyOSwgMC4yMjY4NDMsIDAuMzE0NjM4LCAwLjM5MjIyNywgMC41MDI2ODUiLCBcCi0gICAgICAgICAgIjAuMDIzNDQxLCAwLjA5NjE4MSwgMC4xNzIxMjYsIDAuMjI2OTI3LCAwLjMxNDY4MywgMC4zOTIyMDMsIDAuNTAyNjY1IiwgXAotICAgICAgICAgICIwLjAyMzYyNywgMC4wOTYxOTQsIDAuMTcyMTI1LCAwLjIyNjk0NiwgMC4zMTQ3NDIsIDAuMzkyMjMzLCAwLjUwMjY2MSIsIFwKLSAgICAgICAgICAiMC4wMjM0MjgsIDAuMDk2MTc5LCAwLjE3MjA5NywgMC4yMjY3NTcsIDAuMzE0Njg0LCAwLjM5MjEwMywgMC41MDI3MzgiLCBcCi0gICAgICAgICAgIjAuMDIzNDEyLCAwLjA5NjE4MSwgMC4xNzIwOTYsIDAuMjI2ODg5LCAwLjMxNDY4LCAwLjM5MjE4OSwgMC41MDI3NjciLCBcCi0gICAgICAgICAgIjAuMDIzNDI0LCAwLjA5NjE3OCwgMC4xNzIwOTYsIDAuMjI2ODY2LCAwLjMxNDcwMSwgMC4zOTE5OTYsIDAuNTAyNzkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTcyODUsIDAuMDE3NjEyLCAwLjAxNzY5NywgMC4wMTc3MjYsIDAuMDE3NzUzLCAwLjAxNzc2NywgMC4wMTc3ODEiLCBcCi0gICAgICAgICAgIjAuMDE3MjYsIDAuMDE3NTgzLCAwLjAxNzY2OSwgMC4wMTc2OTUsIDAuMDE3NzIzLCAwLjAxNzczNywgMC4wMTc3NSIsIFwKLSAgICAgICAgICAiMC4wMTcyMzUsIDAuMDE3NTYzLCAwLjAxNzY0OCwgMC4wMTc2NzgsIDAuMDE3NzA0LCAwLjAxNzcyLCAwLjAxNzczMSIsIFwKLSAgICAgICAgICAiMC4wMTcyMzQsIDAuMDE3NTYyLCAwLjAxNzY0NywgMC4wMTc2NzYsIDAuMDE3NzAzLCAwLjAxNzcxNywgMC4wMTc3MyIsIFwKLSAgICAgICAgICAiMC4wMTcyNDIsIDAuMDE3NTcsIDAuMDE3NjU0LCAwLjAxNzY4NiwgMC4wMTc3MTIsIDAuMDE3NzI1LCAwLjAxNzczNyIsIFwKLSAgICAgICAgICAiMC4wMTcyOTEsIDAuMDE3NiwgMC4wMTc2ODIsIDAuMDE3NzEsIDAuMDE3NzM2LCAwLjAxNzc0OSwgMC4wMTc3NjIiLCBcCi0gICAgICAgICAgIjAuMDE3MjU4LCAwLjAxNzU5NSwgMC4wMTc2ODMsIDAuMDE3NzEzLCAwLjAxNzc0LCAwLjAxNzc1MywgMC4wMTc3NjkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxNjg0NCwgMC4wMTcyOTEsIDAuMDE3NDA2LCAwLjAxNzQ0NiwgMC4wMTc0ODMsIDAuMDE3NTAzLCAwLjAxNzUyMSIsIFwKLSAgICAgICAgICAiMC4wMTY4MTgsIDAuMDE3MjYxLCAwLjAxNzM3OCwgMC4wMTc0MTgsIDAuMDE3NDU1LCAwLjAxNzQ3NCwgMC4wMTc0OTIiLCBcCi0gICAgICAgICAgIjAuMDE2ODE3LCAwLjAxNzI1OSwgMC4wMTczNzUsIDAuMDE3NDE1LCAwLjAxNzQ1MiwgMC4wMTc0NzEsIDAuMDE3NDg5IiwgXAotICAgICAgICAgICIwLjAxNjgyOSwgMC4wMTcyNzMsIDAuMDE3Mzg5LCAwLjAxNzQyOSwgMC4wMTc0NjYsIDAuMDE3NDg1LCAwLjAxNzUwMyIsIFwKLSAgICAgICAgICAiMC4wMTY4NDgsIDAuMDE3MjkxLCAwLjAxNzQwNiwgMC4wMTc0NDYsIDAuMDE3NDgzLCAwLjAxNzUwMiwgMC4wMTc1MiIsIFwKLSAgICAgICAgICAiMC4wMTY5MzgsIDAuMDE3MzUsIDAuMDE3NDUxLCAwLjAxNzQ5MSwgMC4wMTc1MjgsIDAuMDE3NTQ3LCAwLjAxNzU2NSIsIFwKLSAgICAgICAgICAiMC4wMTY5MTgsIDAuMDE3MzU0LCAwLjAxNzQ2OSwgMC4wMTc1MDksIDAuMDE3NTQ2LCAwLjAxNzU2NSwgMC4wMTc1ODMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTkyMDUsIDAuMDE5NjQyLCAwLjAxOTc2NCwgMC4wMTk4MDcsIDAuMDE5ODQ3LCAwLjAxOTg2NywgMC4wMTk4ODciLCBcCi0gICAgICAgICAgIjAuMDE5MTgxLCAwLjAxOTYyLCAwLjAxOTc0MSwgMC4wMTk3ODQsIDAuMDE5ODIzLCAwLjAxOTg0NCwgMC4wMTk4NjQiLCBcCi0gICAgICAgICAgIjAuMDE5MTc4LCAwLjAxOTYxMiwgMC4wMTk3MzMsIDAuMDE5Nzc1LCAwLjAxOTgxNSwgMC4wMTk4MzYsIDAuMDE5ODU2IiwgXAotICAgICAgICAgICIwLjAxOTE3MSwgMC4wMTk2MDgsIDAuMDE5NzI5LCAwLjAxOTc3MSwgMC4wMTk4MTEsIDAuMDE5ODMyLCAwLjAxOTg1MiIsIFwKLSAgICAgICAgICAiMC4wMTkxODEsIDAuMDE5NjE5LCAwLjAxOTc0LCAwLjAxOTc4MywgMC4wMTk4MjMsIDAuMDE5ODQzLCAwLjAxOTg2MyIsIFwKLSAgICAgICAgICAiMC4wMTkxODksIDAuMDE5NjI4LCAwLjAxOTc0OSwgMC4wMTk3OTIsIDAuMDE5ODMyLCAwLjAxOTg1MywgMC4wMTk4NzIiLCBcCi0gICAgICAgICAgIjAuMDE5MjA2LCAwLjAxOTY0LCAwLjAxOTc2MSwgMC4wMTk4MDMsIDAuMDE5ODQzLCAwLjAxOTg2NCwgMC4wMTk4ODMiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfcG93ZXIoc2NhbGFyKSB7Ci0gICAgICAgIHZhbHVlcygiMCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxOTAwMywgMC4wMTkzMjIsIDAuMDE5Mzk4LCAwLjAxOTQyMywgMC4wMTk0NDYsIDAuMDE5NDU3LCAwLjAxOTQ2OSIsIFwKLSAgICAgICAgICAiMC4wMTg5NTQsIDAuMDE5Mjg1LCAwLjAxOTM2MSwgMC4wMTkzODUsIDAuMDE5NDA4LCAwLjAxOTM5NSwgMC4wMTk0MDciLCBcCi0gICAgICAgICAgIjAuMDE4OTUsIDAuMDE5MjcsIDAuMDE5MzQ0LCAwLjAxOTM2OSwgMC4wMTkzOTEsIDAuMDE5NDAyLCAwLjAxOTQxNCIsIFwKLSAgICAgICAgICAiMC4wMTg5NDksIDAuMDE5MjY4LCAwLjAxOTM0MiwgMC4wMTkzNjcsIDAuMDE5Mzg5LCAwLjAxOTQxNywgMC4wMTk0MTIiLCBcCi0gICAgICAgICAgIjAuMDE4OTI5LCAwLjAxOTI2MiwgMC4wMTkzMzgsIDAuMDE5MzYzLCAwLjAxOTM4NiwgMC4wMTkzOTgsIDAuMDE5NDA5IiwgXAotICAgICAgICAgICIwLjAxODkxLCAwLjAxOTI1NSwgMC4wMTkzMzYsIDAuMDE5MzY0LCAwLjAxOTM4NywgMC4wMTkzOTksIDAuMDE5NDEzIiwgXAotICAgICAgICAgICIwLjAxODk5NywgMC4wMTkzMDUsIDAuMDE5MzgzLCAwLjAxOTQwOSwgMC4wMTk0MzMsIDAuMDE5NDQ2LCAwLjAxOTQ1OSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE2MjIsIDAuMDE2NjU3LCAwLjAxNjc3OCwgMC4wMTY4MjIsIDAuMDE2ODYyLCAwLjAxNjg4MywgMC4wMTY5MDMiLCBcCi0gICAgICAgICAgIjAuMDE2MTc2LCAwLjAxNjYwNywgMC4wMTY3MjksIDAuMDE2NzcyLCAwLjAxNjgxMiwgMC4wMTY4MzMsIDAuMDE2ODUzIiwgXAotICAgICAgICAgICIwLjAxNjE0OSwgMC4wMTY1ODEsIDAuMDE2NzAyLCAwLjAxNjc0NSwgMC4wMTY3ODUsIDAuMDE2ODA3LCAwLjAxNjgyNyIsIFwKLSAgICAgICAgICAiMC4wMTYxMjgsIDAuMDE2NTY2LCAwLjAxNjY4NywgMC4wMTY3MzEsIDAuMDE2NzcxLCAwLjAxNjc5MiwgMC4wMTY4MTEiLCBcCi0gICAgICAgICAgIjAuMDE2MTE3LCAwLjAxNjU1NiwgMC4wMTY2NzgsIDAuMDE2NzIsIDAuMDE2NzYxLCAwLjAxNjc4MiwgMC4wMTY4MDIiLCBcCi0gICAgICAgICAgIjAuMDE2MTAzLCAwLjAxNjU0MSwgMC4wMTY2NjIsIDAuMDE2NzA1LCAwLjAxNjc0NiwgMC4wMTY3NjcsIDAuMDE2Nzg3IiwgXAotICAgICAgICAgICIwLjAxNjA5LCAwLjAxNjUyMiwgMC4wMTY2NDMsIDAuMDE2Njg3LCAwLjAxNjcyOCwgMC4wMTY3NSwgMC4wMTY3NyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUk4pICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDU4ODI3NjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA1ODgwODY7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNTg4Mjc2OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDgyNCwgMC4wMDA4MDEsIDAuMDAwNzkyLCAwLjAwMDc5NiwgMC4wMDA4MDUsIDAuMDAwODI4LCAwLjAwMDg0OCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjU5MiwgMC4wMDI1NzQsIDAuMDAyNTY5LCAwLjAwMjU3NCwgMC4wMDI1ODQsIDAuMDAyNjA1LCAwLjAwMjYyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRCZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjE3NzM4NCwgMC4xODcyNDEsIDAuMTk5MzgxLCAwLjIxMDE5NSwgMC4yMTk0NDcsIDAuMjMyNTUzLCAwLjI0MjMxOSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJlY292ZXJ5X3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiRCZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzFfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChyZWNvdmVyeV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjI1LCAwLjA1MTI1LCAwLjAzODc1LCAwLjAyNjI1LCAwLjAxMzc1LCAwLjAwMzc1LCAtMC4wMTEyNSIsIFwKLSAgICAgICAgICAiMC4wNzM3NSwgMC4wNjI1LCAwLjA1LCAwLjAzNzUsIDAuMDI1LCAwLjAwODc1LCAwIiwgXAotICAgICAgICAgICIwLjA4NjI1LCAwLjA3NSwgMC4wNjI1LCAwLjA1LCAwLjAzNzUsIDAuMDI3NSwgMC4wMTI1IiwgXAotICAgICAgICAgICIwLjA5ODc1LCAwLjA4NzUsIDAuMDc1LCAwLjA2MjUsIDAuMDUsIDAuMDMzNzUsIDAuMDI1IiwgXAotICAgICAgICAgICIwLjExMTI1LCAwLjEsIDAuMDgxMjUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNDYyNSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4xMjEyNSwgMC4xMSwgMC4wOTc1LCAwLjA4NSwgMC4wNzI1LCAwLjA2MjUsIDAuMDQ3NSIsIFwKLSAgICAgICAgICAiMC4xMzYyNSwgMC4xMjUsIDAuMTA2MjUsIDAuMDkzNzUsIDAuMDg3NSwgMC4wNzEyNSwgMC4wNTYyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJlY292ZXJ5X3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUQiOwotICAgICAgc2RmX2NvbmQgOiAiRCA9PSAxJ2IwIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChyZWNvdmVyeV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTM3NSwgMC4xMDUsIDAuMTExMjUsIDAuMTIzNzUsIDAuMTMsIDAuMTQ2MjUsIDAuMTU1IiwgXAotICAgICAgICAgICIwLjA4MjUsIDAuMDkzNzUsIDAuMTA2MjUsIDAuMTEyNSwgMC4xMTg3NSwgMC4xMzUsIDAuMTUiLCBcCi0gICAgICAgICAgIjAuMDc2MjUsIDAuMDg3NSwgMC4wOTM3NSwgMC4xMDYyNSwgMC4xMTI1LCAwLjEyODc1LCAwLjEzNzUiLCBcCi0gICAgICAgICAgIjAuMDcsIDAuMDc1LCAwLjA4NzUsIDAuMSwgMC4xMDYyNSwgMC4xMjI1LCAwLjEzMTI1IiwgXAotICAgICAgICAgICIwLjA2Mzc1LCAwLjA3NSwgMC4wODEyNSwgMC4wOTM3NSwgMC4xLCAwLjExNjI1LCAwLjEyNSIsIFwKLSAgICAgICAgICAiMC4wNiwgMC4wNjUsIDAuMDc3NSwgMC4wODM3NSwgMC4wOTYyNSwgMC4xMDYyNSwgMC4xMjEyNSIsIFwKLSAgICAgICAgICAiMC4wNTEyNSwgMC4wNjI1LCAwLjA3NSwgMC4wODEyNSwgMC4wODc1LCAwLjEwMzc1LCAwLjExMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiByZW1vdmFsX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiRCZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzFfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChyZW1vdmFsX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMTI1LCAtMC4wMDEyNSwgMC4wMTEyNSwgMC4wMTc1LCAwLjAzLCAwLjA0NjI1LCAwLjA1NSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxMjUsIDAsIDAuMDEyNSwgMC4wMTg3NSwgMC4wMzUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMjUsIC0wLjAxMjUsIDAsIDAuMDA2MjUsIDAuMDIyNSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjAzNzUsIC0wLjAyNSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAuMDEsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjA2MTI1LCAtMC4wNSwgLTAuMDM3NSwgLTAuMDI1LCAtMC4wMTI1LCAtMC4wMDI1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjA3MTI1LCAtMC4wNiwgLTAuMDQ3NSwgLTAuMDM1LCAtMC4wMjg3NSwgLTAuMDEyNSwgLTAuMDAzNzUiLCBcCi0gICAgICAgICAgIi0wLjA4LCAtMC4wNzUsIC0wLjA2MjUsIC0wLjA1LCAtMC4wMzc1LCAtMC4wMjEyNSwgLTAuMDEyNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oU04pICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTg5MDM4OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTg5MDM4OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTg4OTY3OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDY1MywgMC4wMDA2NTIsIDAuMDAwNjUyLCAwLjAwMDY1MiwgMC4wMDA2NTIsIDAuMDAwNjUyLCAwLjAwMDY1MiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDY1MywgMC4wMDA2NTQsIDAuMDAwNjU0LCAwLjAwMDY1NCwgMC4wMDA2NTQsIDAuMDAwNjU0LCAwLjAwMDY1NCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQmIVJOIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9STl9FUV8wID09IDEnYjEiOwotICAgICAgZmFsbF9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMTE0MzM4LCAwLjEyMzU3OCwgMC4xMzM4MzksIDAuMTQ0NDMzLCAwLjE1NjIzOSwgMC4xNzM2NzksIDAuMTg3NjYyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogcmVjb3ZlcnlfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRCZSTiI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fUk5fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChyZWNvdmVyeV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTI1LCAwLjAwMTI1LCAtMC4wMTc1LCAtMC4wMywgLTAuMDQyNSwgLTAuMDU4NzUsIC0wLjA2NzUiLCBcCi0gICAgICAgICAgIjAuMDE3NSwgMC4wMDYyNSwgLTAuMDA2MjUsIC0wLjAxODc1LCAtMC4wMzEyNSwgLTAuMDQ3NSwgLTAuMDYyNSIsIFwKLSAgICAgICAgICAiMC4wMywgMC4wMTg3NSwgMC4wMDYyNSwgLTAuMDA2MjUsIC0wLjAxODc1LCAtMC4wNDEyNSwgLTAuMDUiLCBcCi0gICAgICAgICAgIjAuMDQyNSwgMC4wMzEyNSwgMC4wMTI1LCAwLCAtMC4wMTI1LCAtMC4wMjg3NSwgLTAuMDM3NSIsIFwKLSAgICAgICAgICAiMC4wNDg3NSwgMC4wMzc1LCAwLjAyNSwgMC4wMTI1LCAwLCAtMC4wMTYyNSwgLTAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMDY1LCAwLjA1Mzc1LCAwLjA0MTI1LCAwLjAyODc1LCAwLjAxNjI1LCAwLCAtMC4wMTUiLCBcCi0gICAgICAgICAgIjAuMDgsIDAuMDY4NzUsIDAuMDU2MjUsIDAuMDQzNzUsIDAuMDMxMjUsIDAuMDE1LCAwIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogcmVtb3ZhbF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEJlJOIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9STl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHJlbW92YWxfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDMxMjUsIDAuMDQyNSwgMC4wNTUsIDAuMDY3NSwgMC4wOCwgMC4wOTYyNSwgMC4xMTEyNSIsIFwKLSAgICAgICAgICAiMC4wMjYyNSwgMC4wMzc1LCAwLjA1LCAwLjA2MjUsIDAuMDY4NzUsIDAuMDg1LCAwLjEiLCBcCi0gICAgICAgICAgIjAuMDEzNzUsIDAuMDI1LCAwLjAzNzUsIDAuMDUsIDAuMDYyNSwgMC4wNzg3NSwgMC4wODc1IiwgXAotICAgICAgICAgICIwLjAwMTI1LCAwLjAxMjUsIDAuMDI1LCAwLjAzNzUsIDAuMDUsIDAuMDY2MjUsIDAuMDc1IiwgXAotICAgICAgICAgICItMC4wMDUsIDAuMDA2MjUsIDAuMDE4NzUsIDAuMDMxMjUsIDAuMDM3NSwgMC4wNTM3NSwgMC4wNjg3NSIsIFwKLSAgICAgICAgICAiLTAuMDIxMjUsIC0wLjAxLCAwLjAwMjUsIDAuMDE1LCAwLjAyNzUsIDAuMDM3NSwgMC4wNTI1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDI1LCAtMC4wMTI1LCAwLCAwLjAxMjUsIDAuMDI4NzUsIDAuMDM3NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBFREZGVFJYTCAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoRURGRlRSWEwpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC40NTkyNTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBmZiAoTjMwLFFCSU5UKSB7Ci0gICAgbmV4dF9zdGF0ZSA6ICIoKCghKCghRCkgRSkpICghKCghRSkgKCFOMzApKSkpIFJOKSI7Ci0gICAgY2xvY2tlZF9vbiA6ICJDSyI7Ci0gIH0KLSAgcGluKENLKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2MDc5ODI7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjA3OTgyOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDYwNzk2NDsKLSAgICBjbG9jayA6IHRydWU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyNDQzLCAwLjAwMjQxOSwgMC4wMDI0MDQsIDAuMDAyNDA3LCAwLjAwMjQxOSwgMC4wMDI0MzgsIDAuMDAyNDYyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA2NjI1LCAwLjAwNjYwMywgMC4wMDY1OTUsIDAuMDA2NiwgMC4wMDY2MDQsIDAuMDA2NjMsIDAuMDA2NjQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFEJiFFJiFSTiI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fRV9FUV8wX0FOX1JOX0VRXzAgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4xOTg3NTIsIDAuMjA4OTkyLCAwLjIyMTg0NywgMC4yMzQwMjMsIDAuMjQ1MDUsIDAuMjYwMjg0LCAwLjI3MjAwNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMTAxMDc2LCAwLjExMDk0MSwgMC4xMjMzMzEsIDAuMTM0OTY5LCAwLjE0NTAxOSwgMC4xNTg5MDQsIDAuMTY5NTExIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihEKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2MDc3OTI7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjA3NTYyOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDYwNzc5MjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDU0MTIsIDAuMDA1Mzc4LCAwLjAwNTM2OCwgMC4wMDUzNzYsIDAuMDA1MzgyLCAwLjAwNTQwNSwgMC4wMDU0MjciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDQ4MDIsIDAuMDA0Nzc5LCAwLjAwNDc3LCAwLjAwNDc3NiwgMC4wMDQ3ODQsIDAuMDA0ODA5LCAwLjAwNDgzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIkUmUk4iOwotICAgICAgc2RmX2NvbmQgOiAiRV9FUV8xX0FOX1JOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDg3NSwgLTAuMDc2MjUsIC0wLjA3LCAtMC4wNjM3NSwgLTAuMDU3NSwgLTAuMDQ3NSwgLTAuMDM4NzUiLCBcCi0gICAgICAgICAgIi0wLjA5MjUsIC0wLjA4NzUsIC0wLjA3NSwgLTAuMDY4NzUsIC0wLjA2MjUsIC0wLjA1ODc1LCAtMC4wNSIsIFwKLSAgICAgICAgICAiLTAuMTA1LCAtMC4wOTM3NSwgLTAuMDg3NSwgLTAuMDgxMjUsIC0wLjA3NSwgLTAuMDY1LCAtMC4wNjI1IiwgXAotICAgICAgICAgICItMC4xMTEyNSwgLTAuMTA2MjUsIC0wLjA5Mzc1LCAtMC4wODc1LCAtMC4wODc1LCAtMC4wNzc1LCAtMC4wNjg3NSIsIFwKLSAgICAgICAgICAiLTAuMTIzNzUsIC0wLjExMjUsIC0wLjEwNjI1LCAtMC4xLCAtMC4wOTM3NSwgLTAuMDgzNzUsIC0wLjA4MTI1IiwgXAotICAgICAgICAgICItMC4xMzM3NSwgLTAuMTIyNSwgLTAuMTE2MjUsIC0wLjExLCAtMC4xMDM3NSwgLTAuMDkzNzUsIC0wLjA5MTI1IiwgXAotICAgICAgICAgICItMC4xMzYyNSwgLTAuMTMxMjUsIC0wLjExODc1LCAtMC4xMTg3NSwgLTAuMTEyNSwgLTAuMTAyNSwgLTAuMDkzNzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMzc1LCAtMC4wMzI1LCAtMC4wMiwgLTAuMDA3NSwgMC4wMDUsIDAuMDE1LCAwLjAzIiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDM3NSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAuMDEsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjA2MTI1LCAtMC4wNSwgLTAuMDM3NSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDAyNSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDY3NSwgLTAuMDU2MjUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAwODc1LCAwIiwgXAotICAgICAgICAgICItMC4wNzM3NSwgLTAuMDYyNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wMzEyNSwgLTAuMDE1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDgzNzUsIC0wLjA3MjUsIC0wLjA2LCAtMC4wNDc1LCAtMC4wNDEyNSwgLTAuMDI1LCAtMC4wMTYyNSIsIFwKLSAgICAgICAgICAiLTAuMDkyNSwgLTAuMDgxMjUsIC0wLjA2ODc1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjAzMzc1LCAtMC4wMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIkUmUk4iOwotICAgICAgc2RmX2NvbmQgOiAiRV9FUV8xX0FOX1JOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTI1LCAwLjExMzc1LCAwLjEwMTI1LCAwLjA5NSwgMC4wODg3NSwgMC4wNzg3NSwgMC4wNzYyNSIsIFwKLSAgICAgICAgICAiMC4xMywgMC4xMjUsIDAuMTEyNSwgMC4xMDYyNSwgMC4xLCAwLjA5LCAwLjA4MTI1IiwgXAotICAgICAgICAgICIwLjE0MjUsIDAuMTMxMjUsIDAuMTI1LCAwLjExMjUsIDAuMTA2MjUsIDAuMTAyNSwgMC4wOTM3NSIsIFwKLSAgICAgICAgICAiMC4xNDg3NSwgMC4xNDM3NSwgMC4xMzEyNSwgMC4xMjUsIDAuMTE4NzUsIDAuMTA4NzUsIDAuMSIsIFwKLSAgICAgICAgICAiMC4xNjEyNSwgMC4xNSwgMC4xMzc1LCAwLjEzMTI1LCAwLjEyNSwgMC4xMTUsIDAuMTEyNSIsIFwKLSAgICAgICAgICAiMC4xNzEyNSwgMC4xNiwgMC4xNDc1LCAwLjE0MTI1LCAwLjEzNSwgMC4xMjUsIDAuMTIyNSIsIFwKLSAgICAgICAgICAiMC4xNzM3NSwgMC4xNjg3NSwgMC4xNTYyNSwgMC4xNSwgMC4xNDM3NSwgMC4xMzM3NSwgMC4xMjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzUsIDAuMDYzNzUsIDAuMDUxMjUsIDAuMDM4NzUsIDAuMDI2MjUsIDAuMDEsIDAuMDAxMjUiLCBcCi0gICAgICAgICAgIjAuMDg2MjUsIDAuMDc1LCAwLjA2MjUsIDAuMDUsIDAuMDM3NSwgMC4wMjEyNSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiMC4wOTI1LCAwLjA4MTI1LCAwLjA2ODc1LCAwLjA1NjI1LCAwLjA0Mzc1LCAwLjAzMzc1LCAwLjAxODc1IiwgXAotICAgICAgICAgICIwLjEwNSwgMC4wOTM3NSwgMC4wODEyNSwgMC4wNjg3NSwgMC4wNTYyNSwgMC4wNCwgMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMTExMjUsIDAuMSwgMC4wODc1LCAwLjA3NSwgMC4wNjI1LCAwLjA0NjI1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICIwLjExNSwgMC4xMSwgMC4wOTEyNSwgMC4wNzg3NSwgMC4wNzI1LCAwLjA1NjI1LCAwLjA0MTI1IiwgXAotICAgICAgICAgICIwLjEyMzc1LCAwLjExMjUsIDAuMSwgMC4wODc1LCAwLjA3NSwgMC4wNTg3NSwgMC4wNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxMjIyMjY7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxMjIyMjY7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxMjIxNDI7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA1ODk4LCAwLjAwNTg3NCwgMC4wMDU4NzEsIDAuMDA1ODc4LCAwLjAwNTg4OSwgMC4wMDU5MTMsIDAuMDA1OTM2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA2ODEzLCAwLjAwNjc3OCwgMC4wMDY3ODIsIDAuMDA2NzgxLCAwLjAwNjc5MSwgMC4wMDY4MjksIDAuMDA2ODYzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlJOIjsKLSAgICAgIHNkZl9jb25kIDogIlJOID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjA0Mzc1LCAtMC4wMzg3NSwgLTAuMDIsIC0wLjAxMzc1LCAtMC4wMDEyNSwgMC4wMTUsIDAuMDIzNzUiLCBcCi0gICAgICAgICAgIi0wLjA1NSwgLTAuMDQzNzUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAuMDAzNzUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjA2NzUsIC0wLjA1NjI1LCAtMC4wNDM3NSwgLTAuMDMxMjUsIC0wLjAxODc1LCAtMC4wMDI1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wNzM3NSwgLTAuMDYyNSwgLTAuMDUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMTUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wODYyNSwgLTAuMDc1LCAtMC4wNjI1LCAtMC4wNSwgLTAuMDM3NSwgLTAuMDI3NSwgLTAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDk2MjUsIC0wLjA5MTI1LCAtMC4wNzI1LCAtMC4wNjYyNSwgLTAuMDUzNzUsIC0wLjAzNzUsIC0wLjAyODc1IiwgXAotICAgICAgICAgICItMC4xMTEyNSwgLTAuMSwgLTAuMDg3NSwgLTAuMDc1LCAtMC4wNjI1LCAtMC4wNDYyNSwgLTAuMDM3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjA1LCAtMC4wNDUsIC0wLjAzMjUsIC0wLjAyLCAtMC4wMDc1LCAwLjAwMjUsIDAuMDE3NSIsIFwKLSAgICAgICAgICAiLTAuMDYxMjUsIC0wLjA1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIC0wLjAwMjUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA3Mzc1LCAtMC4wNjI1LCAtMC4wNSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAxNSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA4LCAtMC4wNjg3NSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wMzc1LCAtMC4wMjEyNSwgLTAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDg2MjUsIC0wLjA3NSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA0Mzc1LCAtMC4wMjc1LCAtMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDk2MjUsIC0wLjA4NSwgLTAuMDcyNSwgLTAuMDYsIC0wLjA1Mzc1LCAtMC4wMzc1LCAtMC4wMjg3NSIsIFwKLSAgICAgICAgICAiLTAuMTA1LCAtMC4wOTM3NSwgLTAuMDgxMjUsIC0wLjA2ODc1LCAtMC4wNjI1LCAtMC4wNDYyNSwgLTAuMDM3NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiUk4iOwotICAgICAgc2RmX2NvbmQgOiAiUk4gPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTQzNzUsIDAuMTMyNSwgMC4xMiwgMC4xMTM3NSwgMC4xMDc1LCAwLjA5NzUsIDAuMDk1IiwgXAotICAgICAgICAgICIwLjE0ODc1LCAwLjE0Mzc1LCAwLjEzMTI1LCAwLjEyNSwgMC4xMTg3NSwgMC4xMDg3NSwgMC4xIiwgXAotICAgICAgICAgICIwLjE2MTI1LCAwLjE1LCAwLjE0Mzc1LCAwLjEzNzUsIDAuMTMxMjUsIDAuMTIxMjUsIDAuMTEyNSIsIFwKLSAgICAgICAgICAiMC4xNzM3NSwgMC4xNjI1LCAwLjE1LCAwLjE0Mzc1LCAwLjEzNzUsIDAuMTI3NSwgMC4xMjUiLCBcCi0gICAgICAgICAgIjAuMTgsIDAuMTY4NzUsIDAuMTYyNSwgMC4xNSwgMC4xNDM3NSwgMC4xNCwgMC4xMzEyNSIsIFwKLSAgICAgICAgICAiMC4xOSwgMC4xNzg3NSwgMC4xNzI1LCAwLjE2LCAwLjE1Mzc1LCAwLjE1LCAwLjE0MTI1IiwgXAotICAgICAgICAgICIwLjE5ODc1LCAwLjE4NzUsIDAuMTc1LCAwLjE2ODc1LCAwLjE2MjUsIDAuMTUyNSwgMC4xNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4NzUsIDAuMDgyNSwgMC4wNywgMC4wNjM3NSwgMC4wNTc1LCAwLjA0NzUsIDAuMDQ1IiwgXAotICAgICAgICAgICIwLjA5ODc1LCAwLjA4NzUsIDAuMDgxMjUsIDAuMDc1LCAwLjA2ODc1LCAwLjA1ODc1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICIwLjExMTI1LCAwLjEsIDAuMDkzNzUsIDAuMDgxMjUsIDAuMDgxMjUsIDAuMDcxMjUsIDAuMDYyNSIsIFwKLSAgICAgICAgICAiMC4xMTc1LCAwLjExMjUsIDAuMSwgMC4wOTM3NSwgMC4wODc1LCAwLjA4Mzc1LCAwLjA3NSIsIFwKLSAgICAgICAgICAiMC4xMywgMC4xMjUsIDAuMTEyNSwgMC4xMDYyNSwgMC4xLCAwLjA5LCAwLjA4NzUiLCBcCi0gICAgICAgICAgIjAuMTQ2MjUsIDAuMTM1LCAwLjEyODc1LCAwLjEyMjUsIDAuMTE2MjUsIDAuMTA2MjUsIDAuMTAzNzUiLCBcCi0gICAgICAgICAgIjAuMTYxMjUsIDAuMTUsIDAuMTQzNzUsIDAuMTM3NSwgMC4xMzEyNSwgMC4xMjEyNSwgMC4xMTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihRKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMTQ5ODY3OwotICAgIGZ1bmN0aW9uIDogIk4zMCI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3NlbnNlIDogbm9uX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiByaXNpbmdfZWRnZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTc3MjE5LCAwLjE5MTE4MiwgMC4zMTgxMjYsIDAuNTI5Nzg2LCAwLjc0MTU1MSwgMS4yMzY2MywgMS41MTgzIiwgXAotICAgICAgICAgICIwLjE4NzM5NywgMC4yMDEzNzcsIDAuMzI4MzIsIDAuNTM5OTgxLCAwLjc1MTc0OCwgMS4yNDY4MywgMS41Mjg0NSIsIFwKLSAgICAgICAgICAiMC4yMDAyMDYsIDAuMjE0MTUyLCAwLjM0MTA5OSwgMC41NTI3NTUsIDAuNzY0NTIsIDEuMjU5NTksIDEuNTQxMjgiLCBcCi0gICAgICAgICAgIjAuMjEyMTU4LCAwLjIyNjEzMywgMC4zNTMwOCwgMC41NjQ3MzUsIDAuNzc2Njc3LCAxLjI3MTU3LCAxLjU1MzIxIiwgXAotICAgICAgICAgICIwLjIyMzAzOSwgMC4yMzcwNDcsIDAuMzY0MDYxLCAwLjU3NTYzNiwgMC43ODc1ODgsIDEuMjgyNDYsIDEuNTY1MiIsIFwKLSAgICAgICAgICAiMC4yMzgxOTEsIDAuMjUyMjgxLCAwLjM3OTI0NiwgMC41OTA4ODUsIDAuODAyODIyLCAxLjI5NzcxLCAxLjU4MDM5IiwgXAotICAgICAgICAgICIwLjI0OTY5NSwgMC4yNjM5LCAwLjM5MDcyMywgMC42MDI0MzIsIDAuODE0MTIzLCAxLjMwOTIyLCAxLjU5MjAxIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE1NTM0NCwgMC4xODM3NTQsIDAuNDQzNDk5LCAwLjg3OTkwOSwgMS4zMTQwOCwgMi4zMzI4NSwgMi45MTEzMiIsIFwKLSAgICAgICAgICAiMC4xNTUzMzksIDAuMTgzNzQ3LCAwLjQ0MzQ5NywgMC44Nzk5MDYsIDEuMzEzNDYsIDIuMzMyODcsIDIuOTA4MDEiLCBcCi0gICAgICAgICAgIjAuMTU1MzQ4LCAwLjE4Mzc1MiwgMC40NDM0NSwgMC44Nzk5MDMsIDEuMzE0MywgMi4zMzI4NiwgMi45MTEwNiIsIFwKLSAgICAgICAgICAiMC4xNTUzMzksIDAuMTgzNzQ2LCAwLjQ0MzQ4MiwgMC44Nzk5MDUsIDEuMzE1NzgsIDIuMzMyODksIDIuOTExMTMiLCBcCi0gICAgICAgICAgIjAuMTU1MzMzLCAwLjE4Mzc1NCwgMC40NDQxMSwgMC44Nzk4ODQsIDEuMzE1ODEsIDIuMzMyODUsIDIuOTEzNyIsIFwKLSAgICAgICAgICAiMC4xNTUyMzMsIDAuMTgzNzU4LCAwLjQ0MzM1MSwgMC44Nzk4ODgsIDEuMzE1OCwgMi4zMzI5MiwgMi45MTM2OCIsIFwKLSAgICAgICAgICAiMC4xNTUyNzcsIDAuMTgzOTE5LCAwLjQ0MzUzOCwgMC44NzgwNCwgMS4zMTM2MiwgMi4zMzMxMSwgMi45MTQ0MSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xOTAzOSwgMC4yMDQyODUsIDAuMzI4Nzk5LCAwLjUzNjMzNCwgMC43NDQwMjIsIDEuMjI4MTgsIDEuNTA1MTYiLCBcCi0gICAgICAgICAgIjAuMjAwNjExLCAwLjIxNDU4MywgMC4zMzkwNTQsIDAuNTQ2NzM5LCAwLjc1NDI4LCAxLjIzODUyLCAxLjUxNTQiLCBcCi0gICAgICAgICAgIjAuMjEzNDc0LCAwLjIyNzM0MywgMC4zNTE5MDMsIDAuNTU5MzQ2LCAwLjc2NzE0NywgMS4yNTE0NSwgMS41MjgyMiIsIFwKLSAgICAgICAgICAiMC4yMjU1NjcsIDAuMjM5NSwgMC4zNjQxODIsIDAuNTcxNzk3LCAwLjc3OTI4NCwgMS4yNjM2LCAxLjU0MDE0IiwgXAotICAgICAgICAgICIwLjIzNjY0NSwgMC4yNTA1NTEsIDAuMzc1MjE3LCAwLjU4MjgzMiwgMC43OTAzMTgsIDEuMjc0NjQsIDEuNTUxMjEiLCBcCi0gICAgICAgICAgIjAuMjUxOTMsIDAuMjY1ODU0LCAwLjM5MDM0LCAwLjU5ODI3NywgMC44MDU1ODMsIDEuMjg5NzEsIDEuNTY2NjYiLCBcCi0gICAgICAgICAgIjAuMjYzNTk2LCAwLjI3NzUwMywgMC40MDE5NzQsIDAuNjA5NzkzLCAwLjgxNzI3OSwgMS4zMDE2LCAxLjU3ODIyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE0OTQyMSwgMC4xNzY2NDMsIDAuNDI1MTQ1LCAwLjg0MjA4OSwgMS4yNTg1OCwgMi4yMzE2LCAyLjc4ODQxIiwgXAotICAgICAgICAgICIwLjE0OTM3OSwgMC4xNzY2NDEsIDAuNDI1MTQ2LCAwLjg0MTU2NywgMS4yNTg1OCwgMi4yMzE5NCwgMi43ODgzNCIsIFwKLSAgICAgICAgICAiMC4xNDkzOTgsIDAuMTc2NjQ4LCAwLjQyNTE2NSwgMC44NDIwODIsIDEuMjU4NTksIDIuMjMyMDgsIDIuNzg4MzkiLCBcCi0gICAgICAgICAgIjAuMTQ5MzkxLCAwLjE3NjY2MywgMC40MjUyMDcsIDAuODQyMDY0LCAxLjI1ODYsIDIuMjMxOTEsIDIuNzg4MzQiLCBcCi0gICAgICAgICAgIjAuMTQ5Mjk1LCAwLjE3NjQxNiwgMC40MjUwMTUsIDAuODQxNTY0LCAxLjI1ODQ5LCAyLjIzMTk4LCAyLjc4ODYzIiwgXAotICAgICAgICAgICIwLjE0OTQ2MiwgMC4xNzY2MzUsIDAuNDI1MTg4LCAwLjg0MTUyNywgMS4yNTg1MywgMi4yMzI3NiwgMi43ODgyIiwgXAotICAgICAgICAgICIwLjE0OTI4LCAwLjE3NjYwMiwgMC40MjQ5MTEsIDAuODQxNTYyLCAxLjI1ODQ4LCAyLjIzMTk2LCAyLjc4ODY1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzQyLCAwLjAwMzQxOSwgMC4wMDM0MDksIDAuMDAzNDAyLCAwLjAwMzQsIDAuMDAzMzk3LCAwLjAwMzM5NyIsIFwKLSAgICAgICAgICAiMC4wMDM0MDUsIDAuMDAzNDA0LCAwLjAwMzM5NCwgMC4wMDMzODcsIDAuMDAzMzg1LCAwLjAwMzM4MiwgMC4wMDMzODIiLCBcCi0gICAgICAgICAgIjAuMDAzMzk5LCAwLjAwMzM5OCwgMC4wMDMzODgsIDAuMDAzMzgxLCAwLjAwMzM3OSwgMC4wMDMzNzYsIDAuMDAzMzc1IiwgXAotICAgICAgICAgICIwLjAwMzM5NywgMC4wMDMzOTYsIDAuMDAzMzg2LCAwLjAwMzM4LCAwLjAwMzM3NywgMC4wMDMzNzQsIDAuMDAzMzczIiwgXAotICAgICAgICAgICIwLjAwMzQxLCAwLjAwMzQwOSwgMC4wMDMzOTksIDAuMDAzMzkyLCAwLjAwMzM4OSwgMC4wMDMzODcsIDAuMDAzMzg2IiwgXAotICAgICAgICAgICIwLjAwMzQxNywgMC4wMDM0MTYsIDAuMDAzNDA3LCAwLjAwMzQsIDAuMDAzMzk3LCAwLjAwMzM5MywgMC4wMDMzOTMiLCBcCi0gICAgICAgICAgIjAuMDAzNDMsIDAuMDAzNDI5LCAwLjAwMzQyMSwgMC4wMDM0MTQsIDAuMDAzNDExLCAwLjAwMzQwNywgMC4wMDM0MDYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQwOTgsIDAuMDA0MDk5LCAwLjAwNDEwNCwgMC4wMDQxMDUsIDAuMDA0MTA2LCAwLjAwNDEwNSwgMC4wMDQxMDciLCBcCi0gICAgICAgICAgIjAuMDA0MDg0LCAwLjAwNDA4NiwgMC4wMDQwOSwgMC4wMDQwOTIsIDAuMDA0MDkyLCAwLjAwNDA5MywgMC4wMDQwOTQiLCBcCi0gICAgICAgICAgIjAuMDA0MDgzLCAwLjAwNDA4NCwgMC4wMDQwODgsIDAuMDA0MDksIDAuMDA0MDkxLCAwLjAwNDA5MSwgMC4wMDQwOTEiLCBcCi0gICAgICAgICAgIjAuMDA0MDg5LCAwLjAwNDA5LCAwLjAwNDA5NSwgMC4wMDQwOTcsIDAuMDA0MDk3LCAwLjAwNDA5OCwgMC4wMDQwOTgiLCBcCi0gICAgICAgICAgIjAuMDA0MTA1LCAwLjAwNDEwNiwgMC4wMDQxMSwgMC4wMDQxMTIsIDAuMDA0MTEyLCAwLjAwNDExMywgMC4wMDQxMTMiLCBcCi0gICAgICAgICAgIjAuMDA0MTE4LCAwLjAwNDExOSwgMC4wMDQxMjQsIDAuMDA0MTI1LCAwLjAwNDEyNSwgMC4wMDQxMjYsIDAuMDA0MTI3IiwgXAotICAgICAgICAgICIwLjAwNDE0LCAwLjAwNDE0MSwgMC4wMDQxNDUsIDAuMDA0MTQ3LCAwLjAwNDE0NywgMC4wMDQxNDgsIDAuMDA0MTQ4Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihRTikgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjE0ODc0NDsKLSAgICBmdW5jdGlvbiA6ICJRQklOVCI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3NlbnNlIDogbm9uX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiByaXNpbmdfZWRnZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTk5NjQ0LCAwLjIxMzc0NiwgMC4zNDA4MjYsIDAuNTUyNjI4LCAwLjc2NDQyLCAxLjI1ODU3LCAxLjU0MTExIiwgXAotICAgICAgICAgICIwLjIwOTg4NSwgMC4yMjQwMTUsIDAuMzUxMDg4LCAwLjU2Mjg4OCwgMC43NzQ2ODQsIDEuMjY4ODgsIDEuNTUxMzYiLCBcCi0gICAgICAgICAgIjAuMjIyNzI0LCAwLjIzNjg0MSwgMC4zNjM5MjcsIDAuNTc1NzUzLCAwLjc4NzUyOCwgMS4yODE3NiwgMS41NjQxOCIsIFwKLSAgICAgICAgICAiMC4yMzQ4ODQsIDAuMjQ5MDE3LCAwLjM3NjA5NiwgMC41ODc5MTksIDAuNzk5NjksIDEuMjkzOTIsIDEuNTc2MjMiLCBcCi0gICAgICAgICAgIjAuMjQ1OTMxLCAwLjI2MDA1MSwgMC4zODcxMjcsIDAuNTk4OTUxLCAwLjgxMDcyMSwgMS4zMDQ5NiwgMS41ODcyOCIsIFwKLSAgICAgICAgICAiMC4yNjExNjksIDAuMjc1MjkzLCAwLjQwMjM3MywgMC42MTQyODMsIDAuODI1OTY5LCAxLjMyMDEsIDEuNjAyNjMiLCBcCi0gICAgICAgICAgIjAuMjcyODk5LCAwLjI4NzAyLCAwLjQxNDEyMSwgMC42MjU5MjEsIDAuODM3NjkxLCAxLjMzMTkzLCAxLjYxNDI4Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE1MjQzOSwgMC4xODE0NTgsIDAuNDQyNiwgMC44Nzc5ODEsIDEuMzEzOTgsIDIuMzMwMTksIDIuOTExMjgiLCBcCi0gICAgICAgICAgIjAuMTUyMzAzLCAwLjE4MTQ4NywgMC40NDI4MzYsIDAuODc4NDE2LCAxLjMxMzk4LCAyLjMzMDM1LCAyLjkxMTI1IiwgXAotICAgICAgICAgICIwLjE1MjQyMiwgMC4xODE0NTQsIDAuNDQyNTk5LCAwLjg3ODQ1OCwgMS4zMTM5NywgMi4zMzAzOCwgMi45MTEyOCIsIFwKLSAgICAgICAgICAiMC4xNTI0NDEsIDAuMTgxNDUsIDAuNDQyODM1LCAwLjg3ODQyNCwgMS4zMTM5OCwgMi4zMzA0MSwgMi45MTEyNyIsIFwKLSAgICAgICAgICAiMC4xNTIyOSwgMC4xODEyMjUsIDAuNDQyOTM1LCAwLjg3ODQyMiwgMS4zMTM5OCwgMi4zMzAzNCwgMi45MTE0NCIsIFwKLSAgICAgICAgICAiMC4xNTIyOTgsIDAuMTgxNDU3LCAwLjQ0MjYwMiwgMC44NzgzOTMsIDEuMzEzOTYsIDIuMzMwNjIsIDIuOTExMiIsIFwKLSAgICAgICAgICAiMC4xNTIyODcsIDAuMTgxMjQsIDAuNDQyODk0LCAwLjg3ODQyMywgMS4zMTM5NiwgMi4zMzAzNSwgMi45MTE0NiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xODUxNTYsIDAuMTk4OTc5LCAwLjMyMzQ1LCAwLjUzMDg0NSwgMC43MzgyMywgMS4yMjIxNSwgMS40OTg2NCIsIFwKLSAgICAgICAgICAiMC4xOTUzNDMsIDAuMjA5MTY2LCAwLjMzMzYzNywgMC41NDEwMzQsIDAuNzQ4NDQyLCAxLjIzMjM0LCAxLjUwODg0IiwgXAotICAgICAgICAgICIwLjIwODExNSwgMC4yMjE5MzUsIDAuMzQ2NDAzLCAwLjU1MzgwMiwgMC43NjExOTEsIDEuMjQ1MTEsIDEuNTIxNTkiLCBcCi0gICAgICAgICAgIjAuMjIwMDg1LCAwLjIzMzkwOCwgMC4zNTgzNzcsIDAuNTY1Nzc1LCAwLjc3MzE1OCwgMS4yNTcwOSwgMS41MzM1OCIsIFwKLSAgICAgICAgICAiMC4yMzA5NzUsIDAuMjQ0ODAxLCAwLjM2OTI1MywgMC41NzY2NTgsIDAuNzg0MDU0LCAxLjI2Nzk3LCAxLjU0NDQiLCBcCi0gICAgICAgICAgIjAuMjQ2MjIxLCAwLjI2MDA0OSwgMC4zODQ1MDgsIDAuNTkxOTA5LCAwLjc5OTI5NiwgMS4yODMyMywgMS41NTk2MiIsIFwKLSAgICAgICAgICAiMC4yNTc2NTUsIDAuMjcxNDkxLCAwLjM5NTk2MywgMC42MDM0LCAwLjgxMDc0OSwgMS4yOTQ2OSwgMS41NzEyNCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNDU3NDMsIDAuMTczMzMyLCAwLjQyMjkzNywgMC44NDAxNzIsIDEuMjU1MDYsIDIuMjI5MTcsIDIuNzgwOTQiLCBcCi0gICAgICAgICAgIjAuMTQ1NzM1LCAwLjE3MzMyOSwgMC40MjI5MzMsIDAuODQwMTYyLCAxLjI1NDY0LCAyLjIyOTE2LCAyLjc3OTIyIiwgXAotICAgICAgICAgICIwLjE0NTc1MSwgMC4xNzMzMywgMC40MjI5MTksIDAuODQwMTU0LCAxLjI1NTA3LCAyLjIyOTE0LCAyLjc4MDc3IiwgXAotICAgICAgICAgICIwLjE0NTczOSwgMC4xNzMzMjksIDAuNDIyOTI5LCAwLjg0MDE1OSwgMS4yNTY3OSwgMi4yMjkxOSwgMi43ODExNCIsIFwKLSAgICAgICAgICAiMC4xNDU3MTksIDAuMTczMzE1LCAwLjQyMzQ0OCwgMC44NDAxMTEsIDEuMjU2NzksIDIuMjI5MDksIDIuNzg0MTgiLCBcCi0gICAgICAgICAgIjAuMTQ1NjMyLCAwLjE3MzMyNCwgMC40MjI4NzMsIDAuODQwMTE5LCAxLjI1Njc4LCAyLjIyOTE3LCAyLjc4NDA0IiwgXAotICAgICAgICAgICIwLjE0NTYzMSwgMC4xNzM0NzYsIDAuNDIyODk0LCAwLjgzODM5NSwgMS4yNTUwOCwgMi4yMjk0NywgMi43ODUyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDA5OCwgMC4wMDQwOTksIDAuMDA0MTA0LCAwLjAwNDEwNSwgMC4wMDQxMDYsIDAuMDA0MTA1LCAwLjAwNDEwNyIsIFwKLSAgICAgICAgICAiMC4wMDQwODQsIDAuMDA0MDg2LCAwLjAwNDA5LCAwLjAwNDA5MiwgMC4wMDQwOTIsIDAuMDA0MDkzLCAwLjAwNDA5NCIsIFwKLSAgICAgICAgICAiMC4wMDQwODMsIDAuMDA0MDg0LCAwLjAwNDA4OCwgMC4wMDQwOSwgMC4wMDQwOTEsIDAuMDA0MDkxLCAwLjAwNDA5MSIsIFwKLSAgICAgICAgICAiMC4wMDQwODksIDAuMDA0MDksIDAuMDA0MDk1LCAwLjAwNDA5NywgMC4wMDQwOTcsIDAuMDA0MDk4LCAwLjAwNDA5OCIsIFwKLSAgICAgICAgICAiMC4wMDQxMDUsIDAuMDA0MTA2LCAwLjAwNDExLCAwLjAwNDExMiwgMC4wMDQxMTIsIDAuMDA0MTEzLCAwLjAwNDExMyIsIFwKLSAgICAgICAgICAiMC4wMDQxMTgsIDAuMDA0MTE5LCAwLjAwNDEyNCwgMC4wMDQxMjUsIDAuMDA0MTI1LCAwLjAwNDEyNiwgMC4wMDQxMjciLCBcCi0gICAgICAgICAgIjAuMDA0MTQsIDAuMDA0MTQxLCAwLjAwNDE0NSwgMC4wMDQxNDcsIDAuMDA0MTQ3LCAwLjAwNDE0OCwgMC4wMDQxNDgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDM0MiwgMC4wMDM0MTksIDAuMDAzNDA5LCAwLjAwMzQwMiwgMC4wMDM0LCAwLjAwMzM5NywgMC4wMDMzOTciLCBcCi0gICAgICAgICAgIjAuMDAzNDA1LCAwLjAwMzQwNCwgMC4wMDMzOTQsIDAuMDAzMzg3LCAwLjAwMzM4NSwgMC4wMDMzODIsIDAuMDAzMzgyIiwgXAotICAgICAgICAgICIwLjAwMzM5OSwgMC4wMDMzOTgsIDAuMDAzMzg4LCAwLjAwMzM4MSwgMC4wMDMzNzksIDAuMDAzMzc2LCAwLjAwMzM3NSIsIFwKLSAgICAgICAgICAiMC4wMDMzOTcsIDAuMDAzMzk2LCAwLjAwMzM4NiwgMC4wMDMzOCwgMC4wMDMzNzcsIDAuMDAzMzc0LCAwLjAwMzM3MyIsIFwKLSAgICAgICAgICAiMC4wMDM0MSwgMC4wMDM0MDksIDAuMDAzMzk5LCAwLjAwMzM5MiwgMC4wMDMzODksIDAuMDAzMzg3LCAwLjAwMzM4NiIsIFwKLSAgICAgICAgICAiMC4wMDM0MTcsIDAuMDAzNDE2LCAwLjAwMzQwNywgMC4wMDM0LCAwLjAwMzM5NywgMC4wMDMzOTMsIDAuMDAzMzkzIiwgXAotICAgICAgICAgICIwLjAwMzQzLCAwLjAwMzQyOSwgMC4wMDM0MjEsIDAuMDAzNDE0LCAwLjAwMzQxMSwgMC4wMDM0MDcsIDAuMDAzNDA2Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihSTikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjAzMDc0OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYwMjgyNDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2MDMwNzQ7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA2NTgxLCAwLjAwNjU1MywgMC4wMDY1NDcsIDAuMDA2NTU2LCAwLjAwNjU2NiwgMC4wMDY1OTEsIDAuMDA2NjExIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA1NjM3LCAwLjAwNTYxNCwgMC4wMDU2MDksIDAuMDA1NjEzLCAwLjAwNTYyMywgMC4wMDU2NDgsIDAuMDA1NjcyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEJiFFIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9FX0VRXzAgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMTI1LCAtMC4xMiwgLTAuMTA3NSwgLTAuMTAxMjUsIC0wLjA5NSwgLTAuMDkxMjUsIC0wLjA4MjUiLCBcCi0gICAgICAgICAgIi0wLjEzNjI1LCAtMC4xMzEyNSwgLTAuMTE4NzUsIC0wLjExMjUsIC0wLjEwNjI1LCAtMC4xMDI1LCAtMC4wOTM3NSIsIFwKLSAgICAgICAgICAiLTAuMTQ4NzUsIC0wLjEzNzUsIC0wLjEzMTI1LCAtMC4xMjUsIC0wLjExODc1LCAtMC4xMDg3NSwgLTAuMTA2MjUiLCBcCi0gICAgICAgICAgIi0wLjE1NSwgLTAuMTUsIC0wLjEzNzUsIC0wLjEzMTI1LCAtMC4xMjUsIC0wLjEyMTI1LCAtMC4xMTI1IiwgXAotICAgICAgICAgICItMC4xNjEyNSwgLTAuMTU2MjUsIC0wLjE0Mzc1LCAtMC4xMzc1LCAtMC4xMzc1LCAtMC4xMjc1LCAtMC4xMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMTcxMjUsIC0wLjE2NjI1LCAtMC4xNTM3NSwgLTAuMTQ3NSwgLTAuMTQ3NSwgLTAuMTM3NSwgLTAuMTI4NzUiLCBcCi0gICAgICAgICAgIi0wLjE4LCAtMC4xNzUsIC0wLjE2MjUsIC0wLjE1NjI1LCAtMC4xNSwgLTAuMTQ2MjUsIC0wLjEzNzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiRCZFIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMV9BTl9FX0VRXzEgPT0gMSdiMSI7Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDMxMjUsIC0wLjAyLCAtMC4wMDc1LCAwLjAwNSwgMC4wMTEyNSwgMC4wMjc1LCAwLjAzNjI1IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLCAwLjAxNjI1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNDM3NSwgLTAuMDMxMjUsIC0wLjAxODc1LCAtMC4wMDYyNSwgMC4wMDM3NSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDYxMjUsIC0wLjA1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMDI1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wNjc1LCAtMC4wNTYyNSwgLTAuMDQzNzUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAwODc1LCAwIiwgXAotICAgICAgICAgICItMC4wNzc1LCAtMC4wNjYyNSwgLTAuMDUzNzUsIC0wLjA0MTI1LCAtMC4wMzUsIC0wLjAxODc1LCAtMC4wMSIsIFwKLSAgICAgICAgICAiLTAuMDgsIC0wLjA3NSwgLTAuMDYyNSwgLTAuMDUsIC0wLjAzNzUsIC0wLjAyNzUsIC0wLjAxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEJiFFIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9FX0VRXzAgPT0gMSdiMSI7Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY4NzUsIDAuMDU3NSwgMC4wNDUsIDAuMDMyNSwgMC4wMiwgMC4wMDM3NSwgLTAuMDA1IiwgXAotICAgICAgICAgICIwLjA3Mzc1LCAwLjA2ODc1LCAwLjA1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDE1LCAwIiwgXAotICAgICAgICAgICIwLjA4NjI1LCAwLjA3NSwgMC4wNjI1LCAwLjA1LCAwLjAzNzUsIDAuMDIxMjUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4wOTI1LCAwLjA4NzUsIDAuMDY4NzUsIDAuMDU2MjUsIDAuMDUsIDAuMDMzNzUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMTA1LCAwLjA5Mzc1LCAwLjA3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA0LCAwLjAyNSIsIFwKLSAgICAgICAgICAiMC4xMDg3NSwgMC4xMDM3NSwgMC4wODUsIDAuMDcyNSwgMC4wNiwgMC4wNSwgMC4wMzUiLCBcCi0gICAgICAgICAgIjAuMTE3NSwgMC4xMDYyNSwgMC4wOTM3NSwgMC4wODEyNSwgMC4wNjg3NSwgMC4wNTI1LCAwLjA0Mzc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJEJkUiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8xX0FOX0VfRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNSwgMC4xMzg3NSwgMC4xMzI1LCAwLjEyNjI1LCAwLjEyLCAwLjExLCAwLjEwMTI1IiwgXAotICAgICAgICAgICIwLjE2MTI1LCAwLjE1LCAwLjE0Mzc1LCAwLjEzMTI1LCAwLjEyNSwgMC4xMjEyNSwgMC4xMTI1IiwgXAotICAgICAgICAgICIwLjE3Mzc1LCAwLjE2MjUsIDAuMTUsIDAuMTQzNzUsIDAuMTM3NSwgMC4xMjc1LCAwLjEyNSIsIFwKLSAgICAgICAgICAiMC4xOCwgMC4xNjg3NSwgMC4xNjI1LCAwLjE1NjI1LCAwLjE0Mzc1LCAwLjE0LCAwLjEzMTI1IiwgXAotICAgICAgICAgICIwLjE4NjI1LCAwLjE3NSwgMC4xNjg3NSwgMC4xNjI1LCAwLjE1NjI1LCAwLjE0NjI1LCAwLjEzNzUiLCBcCi0gICAgICAgICAgIjAuMTk2MjUsIDAuMTg1LCAwLjE3ODc1LCAwLjE3MjUsIDAuMTY2MjUsIDAuMTU2MjUsIDAuMTQ3NSIsIFwKLSAgICAgICAgICAiMC4yMDUsIDAuMTkzNzUsIDAuMTg3NSwgMC4xODEyNSwgMC4xNjg3NSwgMC4xNjUsIDAuMTU2MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IElOVlgxNiAqCi0gKiAtLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKElOVlgxNikgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjY2ODAwOTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDExODIwMTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMTE4MTM3OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAxMTgyMDE7Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMy45ODQ3NTsKLSAgICBmdW5jdGlvbiA6ICIoIUEpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDg0ODQsIDAuMDEwMDgzLCAwLjAxOTE2NCwgMC4wMjcxMSwgMC4wMzc3MDQsIDAuMDU4ODQsIDAuMDcyMDM4IiwgXAotICAgICAgICAgICIwLjAxNjg3OCwgMC4wMTkyNTIsIDAuMDI5MTUyLCAwLjAzNzA5OSwgMC4wNDc1NzEsIDAuMDY4NzM5LCAwLjA4MTk2NyIsIFwKLSAgICAgICAgICAiMC4wMjM1NSwgMC4wMjY2MDksIDAuMDQwNzc5LCAwLjA0OTc1NCwgMC4wNjAyODcsIDAuMDgxMzQ3LCAwLjA5NDM0NyIsIFwKLSAgICAgICAgICAiMC4wMjgzNCwgMC4wMzI2NTgsIDAuMDQ5OTc5LCAwLjA2MTEyNiwgMC4wNzMwNSwgMC4wOTQyMjgsIDAuMTA3MzY5IiwgXAotICAgICAgICAgICIwLjAzMjI1MiwgMC4wMzc0NjEsIDAuMDU3NDkzLCAwLjA3MDExNSwgMC4wODQzMjQsIDAuMTA2NzU2LCAwLjExOTk2OSIsIFwKLSAgICAgICAgICAiMC4wMzc2NDUsIDAuMDQzNzA0LCAwLjA2NzEzLCAwLjA4MzE3MSwgMC4wOTk1MiwgMC4xMjYzODEsIDAuMTM5MzgyIiwgXAotICAgICAgICAgICIwLjA0MTMxNywgMC4wNDc3NzEsIDAuMDc1Nzc3LCAwLjA5MjI1NiwgMC4xMTE3NywgMC4xNDE2NSwgMC4xNTcxMzYiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEwNTUyLCAwLjAxMzcyNiwgMC4wMzIyMTMsIDAuMDQ4NTk1LCAwLjA3MDQ0MywgMC4xMTQxMDYsIDAuMTQxMzkzIiwgXAotICAgICAgICAgICIwLjAxNzEzNSwgMC4wMTk2NCwgMC4wMzUzNzQsIDAuMDUwNDk3LCAwLjA3MTQyNiwgMC4xMTQyMTEsIDAuMTQxNDU3IiwgXAotICAgICAgICAgICIwLjAyNDk0LCAwLjAyODgxLCAwLjA0Mzc3OCwgMC4wNTczOTcsIDAuMDc2NjQ1LCAwLjExNzM0OSwgMC4xNDM1NDciLCBcCi0gICAgICAgICAgIjAuMDMxNjgyLCAwLjAzNTkwMiwgMC4wNTMzMTQsIDAuMDY2MjcsIDAuMDgzOTA3LCAwLjEyMjcyOSwgMC4xNDc5NTMiLCBcCi0gICAgICAgICAgIjAuMDM3ODExLCAwLjA0MjM5NiwgMC4wNjI4MzksIDAuMDc1OTkyLCAwLjA5Mjc3NiwgMC4xMjk4MDYsIDAuMTU0MTQyIiwgXAotICAgICAgICAgICIwLjA0NjU1NywgMC4wNTIwOTcsIDAuMDc2MTQ3LCAwLjA5MTA2OSwgMC4xMDgzNSwgMC4xNDI4NTYsIDAuMTY1MDI2IiwgXAotICAgICAgICAgICIwLjA1MzkxMSwgMC4wNjAxMjcsIDAuMDg0NjczLCAwLjEwMzI0OCwgMC4xMjE4MTIsIDAuMTU1NDgsIDAuMTc3NjM5Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwODg1OSwgMC4wMTA1MTQsIDAuMDE5OTE1LCAwLjAyODEyLCAwLjAzOTAzMywgMC4wNjA4MzYsIDAuMDc0NDc4IiwgXAotICAgICAgICAgICIwLjAxNzY5NywgMC4wMjAwODIsIDAuMDMwMDc2LCAwLjAzODI4MiwgMC4wNDkyMDcsIDAuMDcwODk4LCAwLjA4NDU2MSIsIFwKLSAgICAgICAgICAiMC4wMjUwMDIsIDAuMDI4MzMyLCAwLjA0MjI3OSwgMC4wNTEyMTIsIDAuMDYyMDk1LCAwLjA4Mzg4MiwgMC4wOTcyMzciLCBcCi0gICAgICAgICAgIjAuMDMwNTc1LCAwLjAzNDgyMywgMC4wNTE5NTEsIDAuMDYzMDgzLCAwLjA3NDkwMiwgMC4wOTY3NjEsIDAuMTEwMzQxIiwgXAotICAgICAgICAgICIwLjAzNTQ1MywgMC4wNDAyMzgsIDAuMDYwODQxLCAwLjA3MzI1MSwgMC4wODcyNjIsIDAuMTA5OTQzLCAwLjEyMzUxNSIsIFwKLSAgICAgICAgICAiMC4wNDE0NzMsIDAuMDQ3OTg5LCAwLjA3MjA3OCwgMC4wODcyNjksIDAuMTAzODkxLCAwLjEzMDM1LCAwLjE0NDQxNCIsIFwKLSAgICAgICAgICAiMC4wNDYyNjQsIDAuMDUzMzM3LCAwLjA4MDY0NywgMC4wOTc5ODYsIDAuMTE2OTE0LCAwLjE0NjY0OSwgMC4xNjIxNTEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEwNDA2LCAwLjAxMzY2LCAwLjAzMjQ0MiwgMC4wNDkwNiwgMC4wNzEzMjIsIDAuMTE1NjkxLCAwLjE0MzE4IiwgXAotICAgICAgICAgICIwLjAxNjY3NiwgMC4wMTkxMjQsIDAuMDM1MjA4LCAwLjA1MDU1OCwgMC4wNzE5MTQsIDAuMTE1NjQxLCAwLjE0MzE0IiwgXAotICAgICAgICAgICIwLjAyNDk1NCwgMC4wMjgzMjksIDAuMDQzMTE2LCAwLjA1NzAwMSwgMC4wNzY2OSwgMC4xMTgyNTYsIDAuMTQ0OTQiLCBcCi0gICAgICAgICAgIjAuMDMxOTkzLCAwLjAzNTg4OSwgMC4wNTMwNzEsIDAuMDY1NTU2LCAwLjA4MzgwOSwgMC4xMjM1MTgsIDAuMTQ5MTQ0IiwgXAotICAgICAgICAgICIwLjAzNzkyMiwgMC4wNDI3OTQsIDAuMDYxNTMyLCAwLjA3NDgxLCAwLjA5MjE5OCwgMC4xMjk3NDgsIDAuMTU0NTYiLCBcCi0gICAgICAgICAgIjAuMDQ3NDU0LCAwLjA1MjYxLCAwLjA3NTg4NywgMC4wOTAxOTEsIDAuMTA3MjMsIDAuMTQyMzQ3LCAwLjE2NjExNCIsIFwKLSAgICAgICAgICAiMC4wNTQ4NzYsIDAuMDYwODI1LCAwLjA4NjExOSwgMC4xMDI2NDMsIDAuMTIxMDQ0LCAwLjE1NDMxMiwgMC4xNzY5MzIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTYwOTgsIDAuMDE2MjA3LCAwLjAxNjUsIDAuMDE2NTg2LCAwLjAxNjY0LCAwLjAxNjY4OCwgMC4wMTY3MDQiLCBcCi0gICAgICAgICAgIjAuMDE1NDcsIDAuMDE1NTczLCAwLjAxNTkyNSwgMC4wMTYxMTQsIDAuMDE2MjY5LCAwLjAxNjQzLCAwLjAxNjQ3OSIsIFwKLSAgICAgICAgICAiMC4wMTU1NTIsIDAuMDE1Njk2LCAwLjAxNTc5NywgMC4wMTU5MjQsIDAuMDE2MDcxLCAwLjAxNjI0MywgMC4wMTYzMjYiLCBcCi0gICAgICAgICAgIjAuMDE2MDkxLCAwLjAxNjAzNywgMC4wMTU5MTcsIDAuMDE1OTk1LCAwLjAxNjA1NiwgMC4wMTYxOTYsIDAuMDE2Mjc1IiwgXAotICAgICAgICAgICIwLjAxNjE3NCwgMC4wMTYxNDksIDAuMDE2MTI1LCAwLjAxNjA2NiwgMC4wMTYwOCwgMC4wMTYxODYsIDAuMDE2MjI4IiwgXAotICAgICAgICAgICIwLjAxNjkyMywgMC4wMTY3MzEsIDAuMDE2NjI2LCAwLjAxNjQyMiwgMC4wMTYzMjIsIDAuMDE2MjkxLCAwLjAxNjI1MyIsIFwKLSAgICAgICAgICAiMC4wMTc2MDUsIDAuMDE3MjYsIDAuMDE2NjkyLCAwLjAxNjgwNywgMC4wMTY2MTQsIDAuMDE2NDcxLCAwLjAxNjQzOCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDcyNCwgMC4wMDA1ODQsIDAuMDAwMjA4LCAwLjAwMDA5NiwgMC4wMDAwMjMsIDAuMDAwMDQxLCAwLjAwMDA2MiIsIFwKLSAgICAgICAgICAiMC4wMDE1MjUsIDAuMDAxNDI1LCAwLjAwMDk2MywgMC4wMDA3MiwgMC4wMDA1MjEsIDAuMDAwMzI1LCAwLjAwMDIzOCIsIFwKLSAgICAgICAgICAiMC4wMDEzNzUsIDAuMDAxMzczLCAwLjAwMTE5MywgMC4wMDEwMTIsIDAuMDAwODIsIDAuMDAwNTczLCAwLjAwMDQ4NyIsIFwKLSAgICAgICAgICAiMC4wMDExNzIsIDAuMDAxMjE1LCAwLjAwMSwgMC4wMDA5NTgsIDAuMDAwODUsIDAuMDAwNjU1LCAwLjAwMDU2MSIsIFwKLSAgICAgICAgICAiMC4wMDA4NCwgMC4wMDA3MzEsIDAuMDAwOTA3LCAwLjAwMDkxNiwgMC4wMDA4OTcsIDAuMDAwNzM0LCAwLjAwMDY0NyIsIFwKLSAgICAgICAgICAiMC4wMDAwNDYsIDAuMDAwMjE5LCAwLjAwMDIzNywgMC4wMDA1MTIsIDAuMDAwNiwgMC4wMDA2MDMsIDAuMDAwNTY4IiwgXAotICAgICAgICAgICIwLjAwMDY3LCAwLjAwMDQxMSwgMC4wMDAwMzMsIDAuMDAwMjQ0LCAwLjAwMDQxMSwgMC4wMDA1MjcsIDAuMDAwNTI4Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IElOVlg4ICoKLSAqIC0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChJTlZYOCkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjI5NDMwMjsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDA1ODA0MjE7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDA1ODAwOTI7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDA1ODA0MjE7Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMi4wMDk4NjsKLSAgICBmdW5jdGlvbiA6ICIoIUEpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMTE2OSwgMC4wNDgxODUsIDAuMDg1MDYyLCAwLjExMTQxNywgMC4xNTM1OSwgMC4xOTA0MjksIDAuMjQzMjk2IiwgXAotICAgICAgICAgICIwLjAyMDY0NiwgMC4wNTgyMTksIDAuMDk1MTQ2LCAwLjEyMTQ5LCAwLjE2MzY1MSwgMC4yMDA1MzksIDAuMjUzMTk3IiwgXAotICAgICAgICAgICIwLjAyODc0MiwgMC4wNzA4LCAwLjEwNzQ0OSwgMC4xMzM3ODksIDAuMTc1OTU0LCAwLjIxMjgzOCwgMC4yNjU2MDQiLCBcCi0gICAgICAgICAgIjAuMDM1MjcxLCAwLjA4MzQxOCwgMC4xMjAyMTQsIDAuMTQ2MjE3LCAwLjE4ODQ1NSwgMC4yMjUyNTgsIDAuMjc4MTY3IiwgXAotICAgICAgICAgICIwLjA0MDI4NiwgMC4wOTU5LCAwLjEzMjc0NiwgMC4xNTg2MywgMC4yMDA3OTMsIDAuMjM3NiwgMC4yOTAzNDEiLCBcCi0gICAgICAgICAgIjAuMDQ2ODcsIDAuMTE0NDAzLCAwLjE1MzI5MywgMC4xNzk1NTUsIDAuMjIxNzEzLCAwLjI1ODUxOSwgMC4zMTExNjMiLCBcCi0gICAgICAgICAgIjAuMDUyMDQ4LCAwLjEyNjg3NiwgMC4xNzEwMTYsIDAuMTk3MzY3LCAwLjIzOTMwNCwgMC4yNzYwNDgsIDAuMzI3ODk1Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE1ODEsIDAuMDkxOTc0LCAwLjE2ODMxNiwgMC4yMjI2NDUsIDAuMzA5NzcxLCAwLjM4NjE0NywgMC40OTUwMzgiLCBcCi0gICAgICAgICAgIjAuMDIxMjIsIDAuMDkyNDM3LCAwLjE2ODE1MSwgMC4yMjI5MDQsIDAuMzEwMTgzLCAwLjM4NTc4OCwgMC40OTQ3MyIsIFwKLSAgICAgICAgICAiMC4wMzA1MzMsIDAuMDk2Mzk0LCAwLjE2OTI3OSwgMC4yMjMxMDcsIDAuMzA5Njg2LCAwLjM4NTg5LCAwLjQ5NDgzNCIsIFwKLSAgICAgICAgICAiMC4wMzc5OTYsIDAuMTAyODc2LCAwLjE3MzMwNywgMC4yMjU2NjcsIDAuMzEwMzc3LCAwLjM4NjEwNCwgMC40OTQ4MzIiLCBcCi0gICAgICAgICAgIjAuMDQ0NzgxLCAwLjExMTAyMSwgMC4xNzg2OTgsIDAuMjMwMDY5LCAwLjMxMjgwOSwgMC4zODc0NDUsIDAuNDk0Njk2IiwgXAotICAgICAgICAgICIwLjA1NTE0MiwgMC4xMjQ0NDMsIDAuMTg5MzIyLCAwLjIzODUzMywgMC4zMTk4NTMsIDAuMzkyNTQyLCAwLjQ5ODMyMiIsIFwKLSAgICAgICAgICAiMC4wNjMxMDYsIDAuMTM4ODA4LCAwLjIwMDQ4MiwgMC4yNDgwNDIsIDAuMzI3MDA5LCAwLjM5ODkxNiwgMC41MDMwNjYiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTE1OTksIDAuMDQ5ODExLCAwLjA4NzgyNSwgMC4xMTUwMTQsIDAuMTU4NCwgMC4xOTY0OTcsIDAuMjUwNzgyIiwgXAotICAgICAgICAgICIwLjAyMTQ1NiwgMC4wNjAwNDYsIDAuMDk4MTExLCAwLjEyNTI5NSwgMC4xNjg2OTIsIDAuMjA2NzI0LCAwLjI2MDk5MiIsIFwKLSAgICAgICAgICAiMC4wMzA1MDksIDAuMDcyODgyLCAwLjExMDYyNywgMC4xMzc3OTQsIDAuMTgxMjM3LCAwLjIxOTI3NCwgMC4yNzM1OTUiLCBcCi0gICAgICAgICAgIjAuMDM3MjQ1LCAwLjA4NTg5MSwgMC4xMjM3NTMsIDAuMTUwNTI3LCAwLjE5Mzk1LCAwLjIzMTk0OCwgMC4yODYyODkiLCBcCi0gICAgICAgICAgIjAuMDQzMDgyLCAwLjA5ODgwMSwgMC4xMzY2NTYsIDAuMTYzNzE4LCAwLjIwNjY2LCAwLjI0NDY3LCAwLjI5OTA5MSIsIFwKLSAgICAgICAgICAiMC4wNTA4NjMsIDAuMTE4MDA2LCAwLjE1NzgxMiwgMC4xODQ5MjcsIDAuMjI2OTA1LCAwLjI2NDkxMiwgMC4zMTkxNDYiLCBcCi0gICAgICAgICAgIjAuMDU3Mzg5LCAwLjEzMjQ1MywgMC4xNzU3OTYsIDAuMjAzMTA0LCAwLjI0NjMxNiwgMC4yODQxMDEsIDAuMzM3NDQ4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE1NzY4LCAwLjA5Mjc0NSwgMC4xNjk5MzYsIDAuMjI0Nzc3LCAwLjMxMzU3MSwgMC4zODk3OTYsIDAuNDk5ODk2IiwgXAotICAgICAgICAgICIwLjAyMDcxMiwgMC4wOTI5ODEsIDAuMTcwMTE1LCAwLjIyNDg0MSwgMC4zMTM2MjYsIDAuMzkwMjE3LCAwLjUwMDMwOCIsIFwKLSAgICAgICAgICAiMC4wMjk5ODksIDAuMDk2Nzc3LCAwLjE3MTA0MiwgMC4yMjUyMjcsIDAuMzEzNTk3LCAwLjM5MDYzOSwgMC40OTk5OTciLCBcCi0gICAgICAgICAgIjAuMDM4NDMzLCAwLjEwMjY5MiwgMC4xNzQzNDIsIDAuMjI3NTIsIDAuMzEzOTU3LCAwLjM5MDc2OSwgMC40OTk3OTUiLCBcCi0gICAgICAgICAgIjAuMDQ1NDEyLCAwLjExMDIwMiwgMC4xNzkzNDIsIDAuMjMxMTQ2LCAwLjMxNjE1OSwgMC4zOTE3ODYsIDAuNDk5NzczIiwgXAotICAgICAgICAgICIwLjA1NjQsIDAuMTIzNTU1LCAwLjE4OTI5NywgMC4yMzk0MzksIDAuMzIyMDA3LCAwLjM5NjI0NywgMC41MDMyNTIiLCBcCi0gICAgICAgICAgIjAuMDY0Mjk1LCAwLjEzNjgxMSwgMC4xOTkyMTgsIDAuMjQ4MDgsIDAuMzI4NTQsIDAuNDAwNjgxLCAwLjUwNTg5MiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA4MDc0LCAwLjAwODI3LCAwLjAwODI5MywgMC4wMDgzMDIsIDAuMDA4MzA5LCAwLjAwODMwOCwgMC4wMDgzMTEiLCBcCi0gICAgICAgICAgIjAuMDA3NzU4LCAwLjAwODEyMiwgMC4wMDgyMDMsIDAuMDA4MjI5LCAwLjAwODI1NCwgMC4wMDgyNjcsIDAuMDA4MjgyIiwgXAotICAgICAgICAgICIwLjAwNzc0OSwgMC4wMDgwMDgsIDAuMDA4MTA2LCAwLjAwODE1NCwgMC4wMDgxOTYsIDAuMDA4MjIxLCAwLjAwODI0IiwgXAotICAgICAgICAgICIwLjAwNzgxNiwgMC4wMDc5NzYsIDAuMDA4MDg5LCAwLjAwODExMywgMC4wMDgxNjMsIDAuMDA4MTk2LCAwLjAwODIxNyIsIFwKLSAgICAgICAgICAiMC4wMDc5NjQsIDAuMDA4MDA0LCAwLjAwODA3OSwgMC4wMDgxMSwgMC4wMDgxNTUsIDAuMDA4MTczLCAwLjAwODIwMyIsIFwKLSAgICAgICAgICAiMC4wMDgyMzYsIDAuMDA4MDY2LCAwLjAwODA2NSwgMC4wMDgwOTMsIDAuMDA4MTM3LCAwLjAwODE2MSwgMC4wMDgxODIiLCBcCi0gICAgICAgICAgIjAuMDA4NSwgMC4wMDgyMDEsIDAuMDA4MTU4LCAwLjAwODE0MiwgMC4wMDgxNzEsIDAuMDA4MTgyLCAwLjAwODE5MiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwMjYxLCAwLCAwLjAwMDAzLCAwLjAwMDAzOSwgMC4wMDAwNDcsIDAuMDAwMDUsIDAuMDAwMDU0IiwgXAotICAgICAgICAgICIwLjAwMDY3MSwgMC4wMDAxOTUsIDAuMDAwMDg5LCAwLjAwMDA1MywgMC4wMDAwMjIsIDAuMDAwMDA0LCAwLjAwMDAxMSIsIFwKLSAgICAgICAgICAiMC4wMDA3MDUsIDAuMDAwMzUzLCAwLjAwMDIxNiwgMC4wMDAxNTcsIDAuMDAwMTAxLCAwLjAwMDA3MSwgMC4wMDAwNDIiLCBcCi0gICAgICAgICAgIjAuMDAwNTYsIDAuMDAwNDEzLCAwLjAwMDI3MiwgMC4wMDAyMiwgMC4wMDAxNTQsIDAuMDAwMTEyLCAwLjAwMDA4IiwgXAotICAgICAgICAgICIwLjAwMDQ3MSwgMC4wMDAzOTQsIDAuMDAwMjg4LCAwLjAwMDIzNiwgMC4wMDAxOCwgMC4wMDAxNDIsIDAuMDAwMTA1IiwgXAotICAgICAgICAgICIwLjAwMDEwOSwgMC4wMDAyNDksIDAuMDAwMjI5LCAwLjAwMDE5OCwgMC4wMDAxNTcsIDAuMDAwMTI3LCAwLjAwMDA5NiIsIFwKLSAgICAgICAgICAiMC4wMDAxNzcsIDAuMDAwMjQ0LCAwLjAwMDI1NCwgMC4wMDAyMzYsIDAuMDAwMTk4LCAwLjAwMDE3MSwgMC4wMDAxNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBNWDJYOCAqCi0gKiAtLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoTVgyWDgpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC40MTI0NjsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNzY2MDU1OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDc2NDAwMTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA3NjYwNTU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzAyLCAwLjAwMDMwOSwgMC4wMDAzMTIsIDAuMDAwMzEzLCAwLjAwMDMxNCwgMC4wMDAzMTQsIDAuMDAwMzE0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzMyLCAwLjAwMDMyOCwgMC4wMDAzMjgsIDAuMDAwMzI4LCAwLjAwMDMyNywgMC4wMDAzMjcsIDAuMDAwMzI3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA3MTE5MDk7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNzA5NTA5OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDcxMTkwOTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAzMTIsIDAuMDAwMzE3LCAwLjAwMDMxOCwgMC4wMDAzMTksIDAuMDAwMzE5LCAwLjAwMDMxOSwgMC4wMDAzMiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDMzMiwgMC4wMDAzMjgsIDAuMDAwMzI4LCAwLjAwMDMyOCwgMC4wMDAzMjcsIDAuMDAwMzI4LCAwLjAwMDMyOCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUzApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTQ2OTg5OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTQ2OTU3OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTQ2OTg5OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDI2NiwgMC4wMDAyMzYsIDAuMDAwMjQsIDAuMDAwMjQ1LCAwLjAwMDI2MSwgMC4wMDAyODEsIDAuMDAwMzA1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyMTA2LCAwLjAwMjA4NiwgMC4wMDIwODQsIDAuMDAyMDksIDAuMDAyMTAxLCAwLjAwMjEyNywgMC4wMDIxNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAyLjEzMDI4OwotICAgIGZ1bmN0aW9uIDogIigoUzAgQikgKyAoIVMwIEEpKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTA0MDgzLCAwLjE0NDAwMSwgMC4xNjgwMjEsIDAuMTk1ODExLCAwLjIyMjQ0MSwgMC4yNDg2MTksIDAuMjc0NzExIiwgXAotICAgICAgICAgICIwLjExMjk2NiwgMC4xNTI3NCwgMC4xNzY4NCwgMC4yMDQ1NzIsIDAuMjMxMjg5LCAwLjI1NzUyMiwgMC4yODM2MjciLCBcCi0gICAgICAgICAgIjAuMTIzODI1LCAwLjE2MzU4MiwgMC4xODc2ODgsIDAuMjE1NDM3LCAwLjI0MjExNSwgMC4yNjg0MSwgMC4yOTQ0NTYiLCBcCi0gICAgICAgICAgIjAuMTM0ODAzLCAwLjE3NDU2MywgMC4xOTg2NjMsIDAuMjI2Mzk0LCAwLjI1MzA5NSwgMC4yNzkzOTYsIDAuMzA1NDQ4IiwgXAotICAgICAgICAgICIwLjE0NTYwMywgMC4xODUzNTIsIDAuMjA5NDUyLCAwLjIzNzIwOCwgMC4yNjM4MjEsIDAuMjkwMDk3LCAwLjMxNjE5MiIsIFwKLSAgICAgICAgICAiMC4xNjIzMDYsIDAuMjAyMDEzLCAwLjIyNjEzNiwgMC4yNTM4NTksIDAuMjgwNTAyLCAwLjMwNjc3OCwgMC4zMzI4NDQiLCBcCi0gICAgICAgICAgIjAuMTc2NTI0LCAwLjIxNjM1NSwgMC4yNDA1NTMsIDAuMjY4Mjc0LCAwLjI5NDk5LCAwLjMyMTMzLCAwLjM0NzM2NCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDM2NTEsIDAuMDk1NTgxLCAwLjEzNTE4NSwgMC4xODU0MDIsIDAuMjM2MywgMC4yODc4LCAwLjMzOTc2MyIsIFwKLSAgICAgICAgICAiMC4wNDM3MjYsIDAuMDk1NTQ5LCAwLjEzNTE4MywgMC4xODUzNCwgMC4yMzYzMTIsIDAuMjg3ODMzLCAwLjMzOTc2NyIsIFwKLSAgICAgICAgICAiMC4wNDM0NjksIDAuMDk1NDY5LCAwLjEzNTE1MywgMC4xODUxNzUsIDAuMjM2MzIyLCAwLjI4NzU5NywgMC4zMzk3NjMiLCBcCi0gICAgICAgICAgIjAuMDQzMjQ0LCAwLjA5NTQwNCwgMC4xMzUwODgsIDAuMTg1MjkyLCAwLjIzNjI4LCAwLjI4NzY5NywgMC4zMzk3NSIsIFwKLSAgICAgICAgICAiMC4wNDMyMjQsIDAuMDk1MjczLCAwLjEzNTA3NywgMC4xODUzMzcsIDAuMjM2Mjc5LCAwLjI4NzcxNSwgMC4zMzk3MDUiLCBcCi0gICAgICAgICAgIjAuMDQzNjIxLCAwLjA5NTc4OCwgMC4xMzUzNjksIDAuMTg1MzI5LCAwLjIzNjQwMywgMC4yODc4MSwgMC4zMzk3NzIiLCBcCi0gICAgICAgICAgIjAuMDQ0NDU0LCAwLjA5NiwgMC4xMzU1NzIsIDAuMTg1NjksIDAuMjM2NTg2LCAwLjI4ODA1OCwgMC4zMzk4ODYiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTExNDg0LCAwLjE1MjczOSwgMC4xNzc5NzEsIDAuMjA3MjkyLCAwLjIzNTM0OCwgMC4yNjMwNDEsIDAuMjkwNDIyIiwgXAotICAgICAgICAgICIwLjEyMDExMiwgMC4xNjEzNTgsIDAuMTg2NzAyLCAwLjIxNTgyOSwgMC4yNDQwNTcsIDAuMjcxNzE1LCAwLjI5OTE0OSIsIFwKLSAgICAgICAgICAiMC4xMzAxNDEsIDAuMTcxMzU3LCAwLjE5NjcyLCAwLjIyNTk1OCwgMC4yNTQwOTEsIDAuMjgxNzY3LCAwLjMwOTE4NSIsIFwKLSAgICAgICAgICAiMC4xNDAwNzQsIDAuMTgxMzYyLCAwLjIwNjU5OSwgMC4yMzU4NzEsIDAuMjYzOTgxLCAwLjI5MTYwNiwgMC4zMTkwNzMiLCBcCi0gICAgICAgICAgIjAuMTUwMDY2LCAwLjE5MTIxLCAwLjIxNjU1OCwgMC4yNDU3NzMsIDAuMjczODg4LCAwLjMwMTUxOSwgMC4zMjg5NTgiLCBcCi0gICAgICAgICAgIjAuMTY1MTE5LCAwLjIwNjUyNywgMC4yMzE3OTIsIDAuMjYwOTc3LCAwLjI4OTEyNiwgMC4zMTY3NjEsIDAuMzQ0MjIiLCBcCi0gICAgICAgICAgIjAuMTc3OTYsIDAuMjE5Mjk5LCAwLjI0NDY4NywgMC4yNzM5MiwgMC4zMDIwMjMsIDAuMzI5NjYxLCAwLjM1NzExNCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDQ3NzYsIDAuMDk5MDYxLCAwLjE0MDExNywgMC4xOTIxODUsIDAuMjQ0ODgsIDAuMjk4MSwgMC4zNTE3NyIsIFwKLSAgICAgICAgICAiMC4wNDQ5MDIsIDAuMDk4OTc2LCAwLjE0MDE5NCwgMC4xOTIwNDYsIDAuMjQ0ODc0LCAwLjI5ODExNiwgMC4zNTE3NjEiLCBcCi0gICAgICAgICAgIjAuMDQ0ODMyLCAwLjA5ODg5OSwgMC4xNDAxNCwgMC4xOTIwOTcsIDAuMjQ0ODYyLCAwLjI5ODAwOCwgMC4zNTE3NTYiLCBcCi0gICAgICAgICAgIjAuMDQ0ODU3LCAwLjA5ODkyNSwgMC4xNDAwNjQsIDAuMTkyMDgzLCAwLjI0NDgzLCAwLjI5ODA4NSwgMC4zNTE3MzUiLCBcCi0gICAgICAgICAgIjAuMDQ0NjYzLCAwLjA5ODc3NiwgMC4xNDAwNDEsIDAuMTkyMDk4LCAwLjI0NDc4NiwgMC4yOTgwMzcsIDAuMzUxNzM2IiwgXAotICAgICAgICAgICIwLjA0NTQ2OSwgMC4wOTkyMjksIDAuMTQwMzU4LCAwLjE5MjI4MywgMC4yNDQ5NywgMC4yOTgxNDgsIDAuMzUxODA2IiwgXAotICAgICAgICAgICIwLjA0NjEyOSwgMC4wOTk0NzYsIDAuMTQwNjYxLCAwLjE5MjU4LCAwLjI0NTE2OCwgMC4yOTgyMjgsIDAuMzUxOTM5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwNDIwMywgMC4xNDM4NDIsIDAuMTY3OTUsIDAuMTk1NzUyLCAwLjIyMjMxLCAwLjI0ODU4MSwgMC4yNzQ2MzUiLCBcCi0gICAgICAgICAgIjAuMTEzMTA0LCAwLjE1Mjg3MiwgMC4xNzcwMiwgMC4yMDQ3NzUsIDAuMjMxMzk1LCAwLjI1NzYyNSwgMC4yODM2NzUiLCBcCi0gICAgICAgICAgIjAuMTI0MDE5LCAwLjE2Mzc5OSwgMC4xODc4OTksIDAuMjE1NjE5LCAwLjI0MjMyMywgMC4yNjg2MTUsIDAuMjk0NjY1IiwgXAotICAgICAgICAgICIwLjEzNTA2NCwgMC4xNzQ4MDUsIDAuMTk4ODk0LCAwLjIyNjYwNiwgMC4yNTMzMTksIDAuMjc5NjI4LCAwLjMwNTY5NCIsIFwKLSAgICAgICAgICAiMC4xNDU5NzcsIDAuMTg1NjQzLCAwLjIwOTc0NSwgMC4yMzc0ODksIDAuMjY0MTI0LCAwLjI5MDM4NywgMC4zMTY0OTYiLCBcCi0gICAgICAgICAgIjAuMTYzMDgsIDAuMjAyODc4LCAwLjIyNjg5OSwgMC4yNTQ2NywgMC4yODEyOTUsIDAuMzA3NTc0LCAwLjMzMzYzMiIsIFwKLSAgICAgICAgICAiMC4xNzY5ODUsIDAuMjE2ODA4LCAwLjI0MTAwNiwgMC4yNjg2OTUsIDAuMjk1Mzg5LCAwLjMyMTY3OSwgMC4zNDc3MTMiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQzNDIsIDAuMDk1NTM5LCAwLjEzNTIzMiwgMC4xODU0ODQsIDAuMjM2NDA3LCAwLjI4NzgxNiwgMC4zMzk4NTEiLCBcCi0gICAgICAgICAgIjAuMDQzNjM1LCAwLjA5NTUyNiwgMC4xMzUyMTIsIDAuMTg1NDM5LCAwLjIzNjMzNiwgMC4yODc3NzcsIDAuMzM5ODIyIiwgXAotICAgICAgICAgICIwLjA0MzU5MywgMC4wOTU1MjIsIDAuMTM1MjEyLCAwLjE4NTM2NCwgMC4yMzYzODEsIDAuMjg3NjMyLCAwLjMzOTgyNSIsIFwKLSAgICAgICAgICAiMC4wNDMyNywgMC4wOTU0NDIsIDAuMTM1MTI1LCAwLjE4NTMzMSwgMC4yMzYzMjgsIDAuMjg3NzU3LCAwLjMzOTgwOCIsIFwKLSAgICAgICAgICAiMC4wNDMyNDcsIDAuMDk1MjUxLCAwLjEzNDk4NCwgMC4xODUzNDUsIDAuMjM2MjkxLCAwLjI4Nzc3OSwgMC4zMzk3MzkiLCBcCi0gICAgICAgICAgIjAuMDQzOTA2LCAwLjA5NTU5NiwgMC4xMzUyODQsIDAuMTg1NDcyLCAwLjIzNjM5MywgMC4yODc4MTksIDAuMzM5ODI1IiwgXAotICAgICAgICAgICIwLjA0NDQ0NywgMC4wOTYwMDEsIDAuMTM1NjM1LCAwLjE4NTc1OCwgMC4yMzY2MzgsIDAuMjg4MTMzLCAwLjMzOTk4Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExMjc3MywgMC4xNTQwMzgsIDAuMTc5MzczLCAwLjIwODY1MiwgMC4yMzY4MTYsIDAuMjY0NDQzLCAwLjI5MTkwOCIsIFwKLSAgICAgICAgICAiMC4xMjE0NDcsIDAuMTYyNzQsIDAuMTg4MTExLCAwLjIxNzI5NSwgMC4yNDU0ODYsIDAuMjczMTQsIDAuMzAwNTgiLCBcCi0gICAgICAgICAgIjAuMTMxMzE5LCAwLjE3MjU3NiwgMC4xOTc5NzksIDAuMjI3MjA1LCAwLjI1NTM3OSwgMC4yODMwNTcsIDAuMzEwNTIzIiwgXAotICAgICAgICAgICIwLjE0MTMzMywgMC4xODI1NzksIDAuMjA3OTU3LCAwLjIzNzE5LCAwLjI2NTM0MiwgMC4yOTMwMzcsIDAuMzIwNDY1IiwgXAotICAgICAgICAgICIwLjE1MTEyOCwgMC4xOTIzNDIsIDAuMjE3NzE2LCAwLjI0Njk5NywgMC4yNzUwNiwgMC4zMDI3NCwgMC4zMzAxNTgiLCBcCi0gICAgICAgICAgIjAuMTY2MzI0LCAwLjIwNzgzNywgMC4yMzMxNjUsIDAuMjYyNDMyLCAwLjI5MDUxNCwgMC4zMTgyMDIsIDAuMzQ1NjA2IiwgXAotICAgICAgICAgICIwLjE3OTE3LCAwLjIyMDU4NSwgMC4yNDYwMTksIDAuMjc1MTQyLCAwLjMwMzI5OSwgMC4zMzA5NTksIDAuMzU4MzkzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0NDk0NiwgMC4wOTkxNjIsIDAuMTQwMzM5LCAwLjE5MjI5MywgMC4yNDQ5OTksIDAuMjk4MjMxLCAwLjM1MTg2MyIsIFwKLSAgICAgICAgICAiMC4wNDUwMDUsIDAuMDk5MTU3LCAwLjE0MDM2OSwgMC4xOTIyMzMsIDAuMjQ1MDEzLCAwLjI5ODI0MSwgMC4zNTE4NjkiLCBcCi0gICAgICAgICAgIjAuMDQ0OTg1LCAwLjA5OTAyNywgMC4xNDAzLCAwLjE5MjE3OSwgMC4yNDQ5OCwgMC4yOTgxNjQsIDAuMzUxODE1IiwgXAotICAgICAgICAgICIwLjA0NTAwMiwgMC4wOTkwMjQsIDAuMTQwMjY2LCAwLjE5MjI0NSwgMC4yNDQ5NzUsIDAuMjk4MTUyLCAwLjM1MTg1MSIsIFwKLSAgICAgICAgICAiMC4wNDQ4MDQsIDAuMDk4ODk0LCAwLjE0MDIyLCAwLjE5MjI1MywgMC4yNDQ5NTEsIDAuMjk4MjA0LCAwLjM1MTg0NyIsIFwKLSAgICAgICAgICAiMC4wNDU1OTIsIDAuMDk5MjM5LCAwLjE0MDM5OCwgMC4xOTIzNzYsIDAuMjQ1MDI4LCAwLjI5ODI5LCAwLjM1MTg1MiIsIFwKLSAgICAgICAgICAiMC4wNDYwNiwgMC4wOTk4MDgsIDAuMTQwODQ4LCAwLjE5MjYzLCAwLjI0NTI4MiwgMC4yOTg0NjEsIDAuMzUyMDMyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlMwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTc2NjMsIDAuMTM3NDg5LCAwLjE2MTQ3MywgMC4xODkyMjEsIDAuMjE1OTE3LCAwLjI0MjE4MywgMC4yNjgyNzUiLCBcCi0gICAgICAgICAgIjAuMTA2ODM5LCAwLjE0NjcyOCwgMC4xNzA3MjMsIDAuMTk4NDk4LCAwLjIyNTEyMSwgMC4yNTEzOTIsIDAuMjc3NDc4IiwgXAotICAgICAgICAgICIwLjExODU0MSwgMC4xNTgzMTQsIDAuMTgyMzcxLCAwLjIxMDE1MiwgMC4yMzY3ODgsIDAuMjYzMDUzLCAwLjI4OTE1MSIsIFwKLSAgICAgICAgICAiMC4xMzAyODMsIDAuMTY5OTkyLCAwLjE5NDA4MSwgMC4yMjE4MDIsIDAuMjQ4NTAxLCAwLjI3NDgwMiwgMC4zMDA4NTIiLCBcCi0gICAgICAgICAgIjAuMTQyMzc3LCAwLjE4MjA2NywgMC4yMDYxNDYsIDAuMjMzOTE5LCAwLjI2MDU1NCwgMC4yODY4MjQsIDAuMzEyOTI5IiwgXAotICAgICAgICAgICIwLjE2MTMzMSwgMC4yMDExNCwgMC4yMjUxNDQsIDAuMjUyODQxLCAwLjI3OTUzLCAwLjMwNTc5OSwgMC4zMzE4OTEiLCBcCi0gICAgICAgICAgIjAuMTc3NDExLCAwLjIxNzM0OCwgMC4yNDE1MDgsIDAuMjY5MjIzLCAwLjI5NjAxOCwgMC4zMjIyNTMsIDAuMzQ4MzE2Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0MzI1NCwgMC4wOTU0NjYsIDAuMTM1MDgxLCAwLjE4NTMyOCwgMC4yMzYzMjksIDAuMjg3ODI5LCAwLjMzOTc4NiIsIFwKLSAgICAgICAgICAiMC4wNDMzNTUsIDAuMDk1NDU1LCAwLjEzNTEyMiwgMC4xODUzNzIsIDAuMjM2MzI2LCAwLjI4Nzc3OCwgMC4zMzk3NzMiLCBcCi0gICAgICAgICAgIjAuMDQzMzM2LCAwLjA5NTM5OCwgMC4xMzUwNjQsIDAuMTg1MzcxLCAwLjIzNjMxMiwgMC4yODc3OTEsIDAuMzM5NzM2IiwgXAotICAgICAgICAgICIwLjA0MzI0NCwgMC4wOTU0MTQsIDAuMTM1MTEsIDAuMTg1MzIxLCAwLjIzNjMyOSwgMC4yODc1NywgMC4zMzk3ODciLCBcCi0gICAgICAgICAgIjAuMDQzMjYyLCAwLjA5NTMyNCwgMC4xMzUwNTQsIDAuMTg1MzYsIDAuMjM2MzAzLCAwLjI4Nzc5MiwgMC4zMzk3MTgiLCBcCi0gICAgICAgICAgIjAuMDQzODU2LCAwLjA5NTY5OCwgMC4xMzUzMSwgMC4xODU0NTYsIDAuMjM2Mzk2LCAwLjI4Nzg2MiwgMC4zMzk3OTgiLCBcCi0gICAgICAgICAgIjAuMDQ1NTI0LCAwLjA5NjQ3OCwgMC4xMzU5MTUsIDAuMTg1OTM1LCAwLjIzNjcyMSwgMC4yODgxMzcsIDAuMzQwMDQ0Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwNTIxNSwgMC4xNDY0MTMsIDAuMTcxNzgyLCAwLjIwMTA2NSwgMC4yMjkxMiwgMC4yNTY4MDcsIDAuMjg0MjUyIiwgXAotICAgICAgICAgICIwLjExNDE4NCwgMC4xNTU1MjIsIDAuMTgwNzc2LCAwLjIxMDAzOCwgMC4yMzgxMDEsIDAuMjY1NzY3LCAwLjI5MzIiLCBcCi0gICAgICAgICAgIjAuMTI1NjE4LCAwLjE2Njk0NSwgMC4xOTIyMTEsIDAuMjIxNDUyLCAwLjI0OTUyMywgMC4yNzcxODgsIDAuMzA0NjI0IiwgXAotICAgICAgICAgICIwLjEzNzExOSwgMC4xNzgzMDksIDAuMjAzNjgzLCAwLjIzMjksIDAuMjYxMDI4LCAwLjI4ODcwNSwgMC4zMTYxMjMiLCBcCi0gICAgICAgICAgIjAuMTQ4ODMsIDAuMTg5OTU5LCAwLjIxNTMwNCwgMC4yNDQ1MTMsIDAuMjcyNjM1LCAwLjMwMDI2MywgMC4zMjc3NDEiLCBcCi0gICAgICAgICAgIjAuMTY3MzE1LCAwLjIwODU4MiwgMC4yMzM4MzUsIDAuMjYzMDUxLCAwLjI5MTE1OCwgMC4zMTg4NDksIDAuMzQ2MjczIiwgXAotICAgICAgICAgICIwLjE4Mjg4OCwgMC4yMjQxNywgMC4yNDk1MzQsIDAuMjc4NzQ5LCAwLjMwNjkxMSwgMC4zMzQ1MzMsIDAuMzYyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0NDg5NSwgMC4wOTg4MiwgMC4xNDAwMzYsIDAuMTkyMTMyLCAwLjI0NDczNywgMC4yOTc4ODgsIDAuMzUxNzA4IiwgXAotICAgICAgICAgICIwLjA0NDcyOCwgMC4wOTg4ODYsIDAuMTQwMDY5LCAwLjE5MjExOCwgMC4yNDQ4MTYsIDAuMjk4MDQ2LCAwLjM1MTcwNiIsIFwKLSAgICAgICAgICAiMC4wNDQ3MSwgMC4wOTg4OSwgMC4xNDAwODIsIDAuMTkyMTI3LCAwLjI0NDgyMywgMC4yOTgwOTYsIDAuMzUxNzE3IiwgXAotICAgICAgICAgICIwLjA0NDcyMSwgMC4wOTg4MDksIDAuMTQwMDk5LCAwLjE5MjEsIDAuMjQ0ODM1LCAwLjI5ODAyNSwgMC4zNTE3NDIiLCBcCi0gICAgICAgICAgIjAuMDQ0NjcyLCAwLjA5ODc3MywgMC4xNDAwNDIsIDAuMTkxOTY4LCAwLjI0NDc4OCwgMC4yOTgwNDcsIDAuMzUxODMyIiwgXAotICAgICAgICAgICIwLjA0NTE1MSwgMC4wOTkwNDksIDAuMTQwMTc5LCAwLjE5MjA5OCwgMC4yNDQ4NjksIDAuMjk4MTUxLCAwLjM1MTg3MSIsIFwKLSAgICAgICAgICAiMC4wNDYyOCwgMC4wOTk1ODgsIDAuMTQwNjc1LCAwLjE5MjU0NiwgMC4yNDUxNzcsIDAuMjk4MzgsIDAuMzUxOTI3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlMwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTU2MTcsIDAuMTU1Mzg1LCAwLjE3OTQ5NiwgMC4yMDcyMDYsIDAuMjMzOTMyLCAwLjI2MDA5NywgMC4yODYyMDciLCBcCi0gICAgICAgICAgIjAuMTI1NTIxLCAwLjE2NTI4OCwgMC4xODk0MDEsIDAuMjE3MTI0LCAwLjI0MzgzOCwgMC4yNzAwMDQsIDAuMjk2MTExIiwgXAotICAgICAgICAgICIwLjEzNjQzNiwgMC4xNzYyMzEsIDAuMjAwMzM1LCAwLjIyODEzNSwgMC4yNTQ3ODQsIDAuMjgwOTU0LCAwLjMwNzA0NyIsIFwKLSAgICAgICAgICAiMC4xNDUyNTQsIDAuMTg1MDUxLCAwLjIwOTE0NCwgMC4yMzY4NzUsIDAuMjYzNTczLCAwLjI4OTc0NSwgMC4zMTU4NTciLCBcCi0gICAgICAgICAgIjAuMTUyNTU0LCAwLjE5MjI2NSwgMC4yMTYzNzgsIDAuMjQ0MTMzLCAwLjI3MDc5NiwgMC4yOTcwMjgsIDAuMzIzMTUzIiwgXAotICAgICAgICAgICIwLjE2MjIzMywgMC4yMDIxMjYsIDAuMjI2MjM4LCAwLjI1Mzg0MiwgMC4yODA2MDIsIDAuMzA2ODc3LCAwLjMzMjg0MyIsIFwKLSAgICAgICAgICAiMC4xNjk1OTEsIDAuMjA5MzkyLCAwLjIzMzQ5MywgMC4yNjEzMjgsIDAuMjg4LCAwLjMxNDMxNiwgMC4zNDAzNTQiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQzMzk5LCAwLjA5NTQzMywgMC4xMzUxNDMsIDAuMTg1MTk4LCAwLjIzNjMxMSwgMC4yODc4MDQsIDAuMzM5NzQzIiwgXAotICAgICAgICAgICIwLjA0MzQ1NCwgMC4wOTU0MzgsIDAuMTM1MTQ1LCAwLjE4NTI1NiwgMC4yMzYzMTMsIDAuMjg3ODA1LCAwLjMzOTc0NCIsIFwKLSAgICAgICAgICAiMC4wNDM0NTIsIDAuMDk1NCwgMC4xMzUxMDMsIDAuMTg1MzUzLCAwLjIzNjI5MiwgMC4yODc2MjIsIDAuMzM5NzQiLCBcCi0gICAgICAgICAgIjAuMDQzNDA5LCAwLjA5NTM5MiwgMC4xMzUxMDgsIDAuMTg1MzA4LCAwLjIzNjI5MiwgMC4yODc3OTMsIDAuMzM5NzMzIiwgXAotICAgICAgICAgICIwLjA0MzI1MSwgMC4wOTUyNSwgMC4xMzQ5NCwgMC4xODUzMjEsIDAuMjM2MjQ3LCAwLjI4Nzc4OCwgMC4zMzk3MyIsIFwKLSAgICAgICAgICAiMC4wNDM0NTgsIDAuMDk1NTY5LCAwLjEzNTIyNCwgMC4xODU0MTgsIDAuMjM2MzQzLCAwLjI4Nzc5MSwgMC4zMzk3MjQiLCBcCi0gICAgICAgICAgIjAuMDQzMjAyLCAwLjA5NTQzLCAwLjEzNTEzNSwgMC4xODU0NzMsIDAuMjM2NDQzLCAwLjI4Nzk1NywgMC4zMzk4NzIiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTIyMTg3LCAwLjE2MzUyNywgMC4xODg4OTksIDAuMjE4MTMxLCAwLjI0NjI5NywgMC4yNzM5ODgsIDAuMzAxNDYxIiwgXAotICAgICAgICAgICIwLjEzMjU5OSwgMC4xNzM4ODEsIDAuMTk5MjI3LCAwLjIyODQ0MywgMC4yNTY1OTMsIDAuMjg0MjIsIDAuMzExNjg5IiwgXAotICAgICAgICAgICIwLjE0NDA4LCAwLjE4NTM2MiwgMC4yMTA3NDEsIDAuMjM5OTk0LCAwLjI2ODEzOCwgMC4yOTU4MTcsIDAuMzIzMjM3IiwgXAotICAgICAgICAgICIwLjE1MzMzMywgMC4xOTQ2NDgsIDAuMjIwMDIxLCAwLjI0OTI2MywgMC4yNzc0MTMsIDAuMzA1MTAxLCAwLjMzMjU0NiIsIFwKLSAgICAgICAgICAiMC4xNjE1NzYsIDAuMjAyOTM3LCAwLjIyODI0LCAwLjI1NzQ3MywgMC4yODU2NzEsIDAuMzEzMzQ4LCAwLjM0MDc2OSIsIFwKLSAgICAgICAgICAiMC4xNzI1MSwgMC4yMTM4MjIsIDAuMjM5MTY2LCAwLjI2ODM2NCwgMC4yOTY1MTcsIDAuMzI0MTgzLCAwLjM1MTYyNSIsIFwKLSAgICAgICAgICAiMC4xODA3NiwgMC4yMjIwMywgMC4yNDczNzcsIDAuMjc2NTk2LCAwLjMwNDcxMiwgMC4zMzI1MywgMC4zNTk5ODgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQ1MTg1LCAwLjA5ODgyNywgMC4xNDAzMjYsIDAuMTkyMjI2LCAwLjI0NDk5OCwgMC4yOTgyNzUsIDAuMzUxODA5IiwgXAotICAgICAgICAgICIwLjA0NDk2MywgMC4wOTkxNTEsIDAuMTQwMzI0LCAwLjE5MjI3OSwgMC4yNDQ5OTIsIDAuMjk4MjIxLCAwLjM1MTg1MiIsIFwKLSAgICAgICAgICAiMC4wNDQ5NywgMC4wOTkwOCwgMC4xNDAzMDcsIDAuMTkyMiwgMC4yNDQ5OTQsIDAuMjk4MTM2LCAwLjM1MTg1OCIsIFwKLSAgICAgICAgICAiMC4wNDUwNzcsIDAuMDk5MDQ1LCAwLjE0MDI4NCwgMC4xOTIxODQsIDAuMjQ0OTgxLCAwLjI5ODE2MiwgMC4zNTE4MDMiLCBcCi0gICAgICAgICAgIjAuMDQ0ODc1LCAwLjA5ODk0NiwgMC4xNDAyMzksIDAuMTkyMjMzLCAwLjI0NDk1MSwgMC4yOTgxMTUsIDAuMzUxODM2IiwgXAotICAgICAgICAgICIwLjA0NTE4NiwgMC4wOTg5ODUsIDAuMTQwMjU3LCAwLjE5MjIzNSwgMC4yNDQ5NjUsIDAuMjk4MTg2LCAwLjM1MTgyNiIsIFwKLSAgICAgICAgICAiMC4wNDQ3ODQsIDAuMDk5MjE0LCAwLjE0MDQ3OSwgMC4xOTI1MjgsIDAuMjQ1MTgsIDAuMjk4NDYyLCAwLjM1MTg5MiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwODc0OSwgMC4wMDg4NjQsIDAuMDA4OTU2LCAwLjAwOTAyNSwgMC4wMDkwNywgMC4wMDkwOTQsIDAuMDA5MTE4IiwgXAotICAgICAgICAgICIwLjAwODc1OCwgMC4wMDg4NTgsIDAuMDA4OTQ0LCAwLjAwOTAxMSwgMC4wMDkwNTQsIDAuMDA5MDgyLCAwLjAwOTEwNSIsIFwKLSAgICAgICAgICAiMC4wMDg3MDUsIDAuMDA4ODE5LCAwLjAwODkxMSwgMC4wMDg5ODEsIDAuMDA5MDI0LCAwLjAwOTA1NiwgMC4wMDkwOCIsIFwKLSAgICAgICAgICAiMC4wMDg2NywgMC4wMDg3ODYsIDAuMDA4ODgxLCAwLjAwODk1NywgMC4wMDkwMDIsIDAuMDA5MDM3LCAwLjAwOTA2IiwgXAotICAgICAgICAgICIwLjAwODczMywgMC4wMDg4LCAwLjAwODg4MiwgMC4wMDg5NDksIDAuMDA4OTk1LCAwLjAwOTAzLCAwLjAwOTA1IiwgXAotICAgICAgICAgICIwLjAwODcyMSwgMC4wMDg3NzMsIDAuMDA4ODUsIDAuMDA4OTIsIDAuMDA4OTYzLCAwLjAwOTAwOCwgMC4wMDkwMjciLCBcCi0gICAgICAgICAgIjAuMDA4NzQzLCAwLjAwODc1OCwgMC4wMDg4MzMsIDAuMDA4OTA1LCAwLjAwODk1MSwgMC4wMDg5OSwgMC4wMDkwMTgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDk4NiwgMC4wMTAwMTcsIDAuMDEwMTM5LCAwLjAxMDIzNSwgMC4wMTAyOTUsIDAuMDEwMzM2LCAwLjAxMDM2NSIsIFwKLSAgICAgICAgICAiMC4wMDk4OTQsIDAuMDEwMDIxLCAwLjAxMDEzNywgMC4wMTAyMjksIDAuMDEwMjg4LCAwLjAxMDMyOSwgMC4wMTAzNTgiLCBcCi0gICAgICAgICAgIjAuMDA5ODQyLCAwLjAwOTk4NiwgMC4wMTAxMDcsIDAuMDEwMjAzLCAwLjAxMDI2NSwgMC4wMTAzMDgsIDAuMDEwMzM5IiwgXAotICAgICAgICAgICIwLjAwOTgwMiwgMC4wMDk5NTcsIDAuMDEwMDc4LCAwLjAxMDE3NywgMC4wMTAyNDEsIDAuMDEwMjg2LCAwLjAxMDMxOSIsIFwKLSAgICAgICAgICAiMC4wMDk4NDYsIDAuMDA5OTY1LCAwLjAxMDA3NywgMC4wMTAxNzIsIDAuMDEwMjM0LCAwLjAxMDI3OSwgMC4wMTAzMTIiLCBcCi0gICAgICAgICAgIjAuMDA5ODgsIDAuMDA5OTcsIDAuMDEwMDY5LCAwLjAxMDE1OCwgMC4wMTAyMiwgMC4wMTAyNjUsIDAuMDEwMjk5IiwgXAotICAgICAgICAgICIwLjAwOTkxLCAwLjAwOTk0LCAwLjAxMDAzNiwgMC4wMTAxMjcsIDAuMDEwMTkyLCAwLjAxMDIzOSwgMC4wMTAyNzYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDg1ODEsIDAuMDA4NjUsIDAuMDA4NzE5LCAwLjAwODc3MSwgMC4wMDg4MDIsIDAuMDA4ODMsIDAuMDA4ODQyIiwgXAotICAgICAgICAgICIwLjAwODUzLCAwLjAwODYxNCwgMC4wMDg2OSwgMC4wMDg3NDYsIDAuMDA4Nzc3LCAwLjAwODc5OCwgMC4wMDg4MSIsIFwKLSAgICAgICAgICAiMC4wMDg1MjcsIDAuMDA4NiwgMC4wMDg2NzIsIDAuMDA4NzMsIDAuMDA4NzYsIDAuMDA4NzgzLCAwLjAwODgwMSIsIFwKLSAgICAgICAgICAiMC4wMDg0ODUsIDAuMDA4NTY4LCAwLjAwODY0MiwgMC4wMDg3MDEsIDAuMDA4NzM5LCAwLjAwODc2NSwgMC4wMDg3ODQiLCBcCi0gICAgICAgICAgIjAuMDA4NTA0LCAwLjAwODU2NCwgMC4wMDg2MzMsIDAuMDA4NjksIDAuMDA4NzI1LCAwLjAwODc1NiwgMC4wMDg3NzUiLCBcCi0gICAgICAgICAgIjAuMDA4NTQ1LCAwLjAwODU3LCAwLjAwODYzMywgMC4wMDg2ODksIDAuMDA4NzIzLCAwLjAwODc1MywgMC4wMDg3NzIiLCBcCi0gICAgICAgICAgIjAuMDA4NTU5LCAwLjAwODU0MywgMC4wMDg2MDcsIDAuMDA4NjY2LCAwLjAwODcwNCwgMC4wMDg3MzYsIDAuMDA4NzU3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEwMTM5LCAwLjAxMDIzOSwgMC4wMTAzMzgsIDAuMDEwNDE2LCAwLjAxMDQ2NSwgMC4wMTA0OTksIDAuMDEwNTIzIiwgXAotICAgICAgICAgICIwLjAxMDEyNSwgMC4wMTAyMjksIDAuMDEwMzI4LCAwLjAxMDQwNiwgMC4wMTA0NTYsIDAuMDEwNDksIDAuMDEwNTE0IiwgXAotICAgICAgICAgICIwLjAxMDA3MywgMC4wMTAxOTUsIDAuMDEwMjk5LCAwLjAxMDM4MiwgMC4wMTA0MzUsIDAuMDEwNDcxLCAwLjAxMDQ5NyIsIFwKLSAgICAgICAgICAiMC4wMTAwNDksIDAuMDEwMTcyLCAwLjAxMDI3NywgMC4wMTAzNjIsIDAuMDEwNDE3LCAwLjAxMDQ1NSwgMC4wMTA0ODMiLCBcCi0gICAgICAgICAgIjAuMDEwMDU2LCAwLjAxMDE2MywgMC4wMTAyNjQsIDAuMDEwMzQ4LCAwLjAxMDQwNCwgMC4wMTA0NDMsIDAuMDEwNDcyIiwgXAotICAgICAgICAgICIwLjAxMDEzNiwgMC4wMTAxNjIsIDAuMDEwMjU1LCAwLjAxMDMzNiwgMC4wMTAzOTEsIDAuMDEwNDMxLCAwLjAxMDQ2MSIsIFwKLSAgICAgICAgICAiMC4wMTAxMzYsIDAuMDEwMTgsIDAuMDEwMjU3LCAwLjAxMDMxOSwgMC4wMTAzNzUsIDAuMDEwNDE2LCAwLjAxMDQ0NyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlMwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTA3MzksIDAuMDEwODU5LCAwLjAxMDk1LCAwLjAxMTAyMSwgMC4wMTEwNjYsIDAuMDExMDk0LCAwLjAxMTExOCIsIFwKLSAgICAgICAgICAiMC4wMTA3MzIsIDAuMDEwODUyLCAwLjAxMDk0NSwgMC4wMTEwMTMsIDAuMDExMDU4LCAwLjAxMTA4OCwgMC4wMTExMSIsIFwKLSAgICAgICAgICAiMC4wMTA3MzYsIDAuMDEwODU3LCAwLjAxMDk0OSwgMC4wMTEwMiwgMC4wMTEwNjUsIDAuMDExMDkzLCAwLjAxMTExNyIsIFwKLSAgICAgICAgICAiMC4wMTA3MzUsIDAuMDEwODYyLCAwLjAxMDk1NiwgMC4wMTEwMjcsIDAuMDExMDY5LCAwLjAxMTEsIDAuMDExMTI1IiwgXAotICAgICAgICAgICIwLjAxMDczOCwgMC4wMTA4NywgMC4wMTA5NjYsIDAuMDExMDM2LCAwLjAxMTA4MiwgMC4wMTExMTMsIDAuMDExMTM0IiwgXAotICAgICAgICAgICIwLjAxMDc2MywgMC4wMTA4ODYsIDAuMDEwOTgxLCAwLjAxMTA1OSwgMC4wMTExMDEsIDAuMDExMTMyLCAwLjAxMTE2MSIsIFwKLSAgICAgICAgICAiMC4wMTA3OTYsIDAuMDEwOTIsIDAuMDExMDEyLCAwLjAxMTA4NSwgMC4wMTExMjksIDAuMDExMTU2LCAwLjAxMTE4MiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwOTU3MiwgMC4wMDk2OTcsIDAuMDA5ODAyLCAwLjAwOTg4NiwgMC4wMDk5NDEsIDAuMDA5OTc5LCAwLjAxMDAwNyIsIFwKLSAgICAgICAgICAiMC4wMDk1NzYsIDAuMDA5Njg4LCAwLjAwOTc5MiwgMC4wMDk4NzUsIDAuMDA5OTI5LCAwLjAwOTk2NywgMC4wMDk5OTQiLCBcCi0gICAgICAgICAgIjAuMDA5NTc1LCAwLjAwOTY5MywgMC4wMDk3OTksIDAuMDA5ODgzLCAwLjAwOTkzNywgMC4wMDk5NzQsIDAuMDEwMDAyIiwgXAotICAgICAgICAgICIwLjAwOTU3LCAwLjAwOTcwMywgMC4wMDk4MTEsIDAuMDA5ODk2LCAwLjAwOTk1MSwgMC4wMDk5ODksIDAuMDEwMDE3IiwgXAotICAgICAgICAgICIwLjAwOTU1MywgMC4wMDk2OTUsIDAuMDA5ODA0LCAwLjAwOTg5MiwgMC4wMDk5NDksIDAuMDA5OTg3LCAwLjAxMDAxNSIsIFwKLSAgICAgICAgICAiMC4wMDk1OTgsIDAuMDA5NzM0LCAwLjAwOTgzOSwgMC4wMDk5MjMsIDAuMDA5OTc3LCAwLjAxMDAxNSwgMC4wMTAwNDUiLCBcCi0gICAgICAgICAgIjAuMDA5NjIyLCAwLjAwOTc1LCAwLjAwOTg1MSwgMC4wMDk5MzksIDAuMDA5OTk2LCAwLjAxMDAzNSwgMC4wMTAwNjMiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBOQU5EMlgxICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKE5BTkQyWDEpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4wNzQ1NTE2OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA4ODc1OTc7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwODg3NTk3OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDg4NTYxODsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA0MDksIDAuMDAwNDA5LCAwLjAwMDQwOSwgMC4wMDA0MDksIDAuMDAwNDA5LCAwLjAwMDQwOSwgMC4wMDA0MDkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA0MjEsIDAuMDAwNDEyLCAwLjAwMDQxMSwgMC4wMDA0MSwgMC4wMDA0MSwgMC4wMDA0MSwgMC4wMDA0MSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwOTEzNDE0OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDkxMjc2NDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA5MTM0MTQ7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjUsIDAuMDAwMjUsIDAuMDAwMjUsIDAuMDAwMjUsIDAuMDAwMjUsIDAuMDAwMjQ5LCAwLjAwMDI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNDY0LCAwLjAwMDQ2NCwgMC4wMDA0NjUsIDAuMDAwNDY1LCAwLjAwMDQ2NSwgMC4wMDA0NjUsIDAuMDAwNDY1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMTMwOTA2OwotICAgIGZ1bmN0aW9uIDogIighKEEgQikpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTAwMzcsIDAuMDc0NTksIDAuMjEzODExLCAwLjMzNjU5MywgMC41MDAxLCAwLjgyNzQwNiwgMS4wMzI0IiwgXAotICAgICAgICAgICIwLjA1OTkxOSwgMC4wODQ0MjgsIDAuMjIzNjY0LCAwLjM0NjMwNiwgMC41MDk4NDcsIDAuODM3MzI0LCAxLjA0MTk0IiwgXAotICAgICAgICAgICIwLjA3MjI2MywgMC4wOTY4NDEsIDAuMjM1OTU0LCAwLjM1ODY3OCwgMC41MjE0NzEsIDAuODQ4NDgzLCAxLjA1MzM4IiwgXAotICAgICAgICAgICIwLjA4NTIzLCAwLjEwOTY0NSwgMC4yNDg1MTQsIDAuMzcxMTg0LCAwLjUzNDgyOSwgMC44NjA2MjcsIDEuMDY1NTMiLCBcCi0gICAgICAgICAgIjAuMDk3OTUxLCAwLjEyMjQ1NywgMC4yNjExODksIDAuMzgzNzM3LCAwLjU0NzMwNywgMC44NzM2MTcsIDEuMDc3NTYiLCBcCi0gICAgICAgICAgIjAuMTE2MTYxLCAwLjE0Mjk2NSwgMC4yODA5NTQsIDAuNDA0MDYxLCAwLjU2NzI2NCwgMC44OTI3MDksIDEuMDk3MzIiLCBcCi0gICAgICAgICAgIjAuMTI5OTg2LCAwLjE1OTg3OSwgMC4yOTg1MzQsIDAuNDIxNjY1LCAwLjU4NDk1NywgMC45MTAxMDcsIDEuMTE0NDQiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk0MzgzLCAwLjE0NDc4NSwgMC40MzA4OTksIDAuNjgzMzkyLCAxLjAxOTUzLCAxLjY5MjU4LCAyLjExNDE5IiwgXAotICAgICAgICAgICIwLjA5NDU4MywgMC4xNDQ3NywgMC40MzA5MjUsIDAuNjgzNDcyLCAxLjAxOTczLCAxLjY5MjcyLCAyLjExMzI1IiwgXAotICAgICAgICAgICIwLjA5ODY4LCAwLjE0NjU5NiwgMC40MzA5NTksIDAuNjgzMjgzLCAxLjAyMDE0LCAxLjY5MjkzLCAyLjExMzc5IiwgXAotICAgICAgICAgICIwLjEwNDg2NywgMC4xNTEwNiwgMC40MzA3NjEsIDAuNjgzMjksIDEuMDE5NzEsIDEuNjkyOTIsIDIuMTEzMTciLCBcCi0gICAgICAgICAgIjAuMTEyNDI5LCAwLjE1NzA1NiwgMC40MzE0NTgsIDAuNjgzMjY2LCAxLjAxOTQ5LCAxLjY5MzQyLCAyLjExMzQxIiwgXAotICAgICAgICAgICIwLjEyNjM0NywgMC4xNjg4MTgsIDAuNDM1MzUzLCAwLjY4MzU1NywgMS4wMTk3OSwgMS42OTI3OCwgMi4xMTM0NCIsIFwKLSAgICAgICAgICAiMC4xMzk1MDEsIDAuMTgwMjA4LCAwLjQ0MDk0OCwgMC42ODUzMzIsIDEuMDE5NzksIDEuNjkyOTMsIDIuMTEyNjIiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDkwNDI5LCAwLjEzNjAwNCwgMC4zOTQ0NTMsIDAuNjIyNzE3LCAwLjkyNjE1NiwgMS41MzQzNiwgMS45MTQ4MyIsIFwKLSAgICAgICAgICAiMC4wOTkzMzQsIDAuMTQ1MDI1LCAwLjQwMzQ5NywgMC42MzE0NzQsIDAuOTM1NDIxLCAxLjU0MzYzLCAxLjkyMzMzIiwgXAotICAgICAgICAgICIwLjExMDE4LCAwLjE1NjAyMiwgMC40MTQ1NTYsIDAuNjQyNTQ2LCAwLjk0Njc4NywgMS41NTUwNSwgMS45MzM5NiIsIFwKLSAgICAgICAgICAiMC4xMjA5OTcsIDAuMTY2ODY1LCAwLjQyNTc5MSwgMC42NTM3MTMsIDAuOTU3NjY0LCAxLjU2NTU4LCAxLjk0NjI4IiwgXAotICAgICAgICAgICIwLjEzMjExOSwgMC4xNzc3NTMsIDAuNDM2NTY1LCAwLjY2NDc5LCAwLjk2ODYxOSwgMS41NzY4NCwgMS45NTYyNiIsIFwKLSAgICAgICAgICAiMC4xNDkzOTgsIDAuMTk1NDIyLCAwLjQ1MzU4NywgMC42ODIyNTgsIDAuOTg2NTI5LCAxLjU5NDE3LCAxLjk3NDEiLCBcCi0gICAgICAgICAgIjAuMTY0NTI5LCAwLjIxMTA3OSwgMC40Njk2NjUsIDAuNjk3OTcxLCAxLjAwMTg2LCAxLjYwOTU3LCAxLjk4OTU3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE2NTQ3NywgMC4yNTU3ODUsIDAuNzY5Mzk4LCAxLjIxMzA5LCAxLjgxNzEzLCAzLjAzMDksIDMuNzU4NTYiLCBcCi0gICAgICAgICAgIjAuMTY2MTc3LCAwLjI1NjYwNywgMC43NjY0NDMsIDEuMjE2OTYsIDEuODIzMjQsIDMuMDEwNTEsIDMuNzYyODEiLCBcCi0gICAgICAgICAgIjAuMTY2Mjc2LCAwLjI1NTE0NCwgMC43Njg5NDcsIDEuMjIxMDIsIDEuODEyNjgsIDMuMDEsIDMuNzcwMDMiLCBcCi0gICAgICAgICAgIjAuMTY4NDY3LCAwLjI1Njc1NSwgMC43NjQyODMsIDEuMjE2ODgsIDEuODE3NSwgMy4wMTkxMywgMy43NjAzOCIsIFwKLSAgICAgICAgICAiMC4xNzIwMjcsIDAuMjU4NDA2LCAwLjc2ODE5NiwgMS4yMTM4MywgMS44MjM4MiwgMy4wMTM4MywgMy43NzAxNiIsIFwKLSAgICAgICAgICAiMC4xNzkzNjgsIDAuMjYzNzc1LCAwLjc2MzkyMSwgMS4yMTY5NCwgMS44MTI3MiwgMy4wMTgyOSwgMy43NzAzMSIsIFwKLSAgICAgICAgICAiMC4xODczNDIsIDAuMjcwMDgzLCAwLjc2NzI1MSwgMS4yMjA3LCAxLjgxNzUxLCAzLjAxNzk1LCAzLjc3MDA4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0ODA3NSwgMC4wNzI0MjIsIDAuMjA5OTUzLCAwLjMzMTQ0OSwgMC40OTM2OTQsIDAuODE3MTE0LCAxLjAyMDE1IiwgXAotICAgICAgICAgICIwLjA1Nzk1OCwgMC4wODIzMjYsIDAuMjIwMDUzLCAwLjM0MTMzMywgMC41MDM3MjQsIDAuODI3ODEzLCAxLjAyOTY0IiwgXAotICAgICAgICAgICIwLjA3MDM1OCwgMC4wOTQ2NDIsIDAuMjMyMjk5LCAwLjM1MzY3NiwgMC41MTQ2NTgsIDAuODM4MzY4LCAxLjA0MTM1IiwgXAotICAgICAgICAgICIwLjA4MzI0OSwgMC4xMDc0NjUsIDAuMjQ0ODYxLCAwLjM2NjM0MiwgMC41MjgxNTYsIDAuODUwNTAyLCAxLjA1MzI5IiwgXAotICAgICAgICAgICIwLjA5NTg3LCAwLjEyMDI1LCAwLjI1NzUyNiwgMC4zNzg3NzYsIDAuNTQwNzMxLCAwLjg2Mzc4OCwgMS4wNjUyOSIsIFwKLSAgICAgICAgICAiMC4xMTM3MjIsIDAuMTQwMjU4LCAwLjI3NzI2NCwgMC4zOTkxMDEsIDAuNTYwNjE0LCAwLjg4Mjc3MiwgMS4wODUwMyIsIFwKLSAgICAgICAgICAiMC4xMjY3MjQsIDAuMTU3NDA3LCAwLjI5NDgzOCwgMC40MTY2NjksIDAuNTc4NDIsIDAuODk5OTQ3LCAxLjEwMjUyIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5MTc1OCwgMC4xNDE2MTgsIDAuNDI0NTE4LCAwLjY3NDM3MiwgMS4wMDc3OCwgMS42NzQ1MiwgMi4wOTA0OCIsIFwKLSAgICAgICAgICAiMC4wOTE4OCwgMC4xNDE1NjQsIDAuNDI0NTYxLCAwLjY3NTQsIDEuMDA3NzIsIDEuNjczOTYsIDIuMDg5NjQiLCBcCi0gICAgICAgICAgIjAuMDk2MjI3LCAwLjE0MzcyNiwgMC40MjQ0OTksIDAuNjc1NDIzLCAxLjAwNzkxLCAxLjY3NTksIDIuMDg5MzEiLCBcCi0gICAgICAgICAgIjAuMTAyNDgzLCAwLjE0ODI5MywgMC40MjUyMDMsIDAuNjc0Mzg2LCAxLjAwNzM5LCAxLjY3NTk1LCAyLjA4OTcxIiwgXAotICAgICAgICAgICIwLjExMDI4OCwgMC4xNTQzNDksIDAuNDI1ODAyLCAwLjY3NDE1NywgMS4wMDczNSwgMS42NzQwNywgMi4wODkxNSIsIFwKLSAgICAgICAgICAiMC4xMjQzOTgsIDAuMTY1NTk5LCAwLjQzMDA2LCAwLjY3NDU3NCwgMS4wMDcxNSwgMS42NzM0OCwgMi4wOTMzMiIsIFwKLSAgICAgICAgICAiMC4xMzgxNzcsIDAuMTc3NTQzLCAwLjQzNTczMywgMC42Nzc3MDcsIDEuMDA3MzgsIDEuNjc1NzMsIDIuMDg5NTYiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg4MTk4LCAwLjEzMzc4NSwgMC4zOTIyNTEsIDAuNjIwNDk4LCAwLjkyNDU3MywgMS41MzIxNSwgMS45MTM0NiIsIFwKLSAgICAgICAgICAiMC4wOTcyNTUsIDAuMTQyOTc0LCAwLjQwMTY3NiwgMC42Mjk3MjYsIDAuOTMzMzksIDEuNTQxMjQsIDEuOTIxOCIsIFwKLSAgICAgICAgICAiMC4xMDg4MzMsIDAuMTUzNzI1LCAwLjQxMzUzMiwgMC42NDE1MDEsIDAuOTQ1NTMyLCAxLjU1Mzc0LCAxLjkzMzU2IiwgXAotICAgICAgICAgICIwLjEyMDM2OCwgMC4xNjYxMjYsIDAuNDI0OSwgMC42NTI5NjgsIDAuOTU3MDQyLCAxLjU2NTMyLCAxLjk0NDg0IiwgXAotICAgICAgICAgICIwLjEzMjQ5MywgMC4xNzc3NTIsIDAuNDM2Mjk2LCAwLjY2NDQzMiwgMC45Njg5NTMsIDEuNTc2NzUsIDEuOTU2ODMiLCBcCi0gICAgICAgICAgIjAuMTUxNjcsIDAuMTk2NjYzLCAwLjQ1MjU4MiwgMC42ODMyMTIsIDAuOTg3MzE1LCAxLjU5NTQ5LCAxLjk3NTA3IiwgXAotICAgICAgICAgICIwLjE2ODM0MSwgMC4yMTM4NzIsIDAuNDcxMzg2LCAwLjY5OTYyNSwgMS4wMDM0OCwgMS42MTEyNCwgMS45OTIxOCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNjU0NjksIDAuMjU2NDcyLCAwLjc2Njc2NiwgMS4yMTMwOSwgMS44MTE5MSwgMy4wMjAyLCAzLjc1ODI1IiwgXAotICAgICAgICAgICIwLjE2NjE4OSwgMC4yNTUxNjcsIDAuNzY0MDE2LCAxLjIxMzIsIDEuODE0MTcsIDMuMDE4ODcsIDMuNzU5IiwgXAotICAgICAgICAgICIwLjE2NjYzMSwgMC4yNTUyNTcsIDAuNzY0MTQsIDEuMjEzMTcsIDEuODE0OCwgMy4wMTE3NiwgMy43NTkyMiIsIFwKLSAgICAgICAgICAiMC4xNzA0LCAwLjI1NzM1NCwgMC43NjQwNjQsIDEuMjEzNywgMS44MTQ3MywgMy4wMTIwNCwgMy43NzE0MiIsIFwKLSAgICAgICAgICAiMC4xNzU2MjQsIDAuMjU5OTAyLCAwLjc2NjE5NywgMS4yMTcwNCwgMS44MTE4NSwgMy4wMTA0NiwgMy43NTg3MyIsIFwKLSAgICAgICAgICAiMC4xODU4MjQsIDAuMjY4NTcyLCAwLjc2ODUzNiwgMS4yMTQ4MywgMS44MTQ1MSwgMy4wMTAyNiwgMy43NzAzNiIsIFwKLSAgICAgICAgICAiMC4xOTY1OTgsIDAuMjc2NTEzLCAwLjc2NzIxNiwgMS4yMTM1MiwgMS44MTQzMiwgMy4wMjc1LCAzLjc1ODM3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxODYyLCAwLjAwMTg2MiwgMC4wMDE4NjMsIDAuMDAxODYzLCAwLjAwMTg2MywgMC4wMDE4NjMsIDAuMDAxODYzIiwgXAotICAgICAgICAgICIwLjAwMTg0OCwgMC4wMDE4NTEsIDAuMDAxODU2LCAwLjAwMTg1NywgMC4wMDE4NTcsIDAuMDAxODU4LCAwLjAwMTg1OCIsIFwKLSAgICAgICAgICAiMC4wMDE4NDEsIDAuMDAxODQ2LCAwLjAwMTg1NCwgMC4wMDE4NTYsIDAuMDAxODU1LCAwLjAwMTg1NSwgMC4wMDE4NTUiLCBcCi0gICAgICAgICAgIjAuMDAxODQxLCAwLjAwMTg0NSwgMC4wMDE4NTMsIDAuMDAxODU0LCAwLjAwMTg1NSwgMC4wMDE4NTUsIDAuMDAxODU1IiwgXAotICAgICAgICAgICIwLjAwMTg0MywgMC4wMDE4NDYsIDAuMDAxODUyLCAwLjAwMTg1NSwgMC4wMDE4NTUsIDAuMDAxODU1LCAwLjAwMTg1NSIsIFwKLSAgICAgICAgICAiMC4wMDE4NTMsIDAuMDAxODUyLCAwLjAwMTg1MiwgMC4wMDE4NTUsIDAuMDAxODU1LCAwLjAwMTg1NSwgMC4wMDE4NTYiLCBcCi0gICAgICAgICAgIjAuMDAxODY3LCAwLjAwMTg2MSwgMC4wMDE4NTUsIDAuMDAxODU3LCAwLjAwMTg1NiwgMC4wMDE4NTYsIDAuMDAxODU2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwMjIsIDAuMDAwMjIyLCAwLjAwMDIyNSwgMC4wMDAyMjYsIDAuMDAwMjI2LCAwLjAwMDIyNiwgMC4wMDAyMjYiLCBcCi0gICAgICAgICAgIjAuMDAwMTk3LCAwLjAwMDIwNiwgMC4wMDAyMTksIDAuMDAwMjIyLCAwLjAwMDIyNCwgMC4wMDAyMjUsIDAuMDAwMjI1IiwgXAotICAgICAgICAgICIwLjAwMDE3NywgMC4wMDAxOSwgMC4wMDAyMTMsIDAuMDAwMjE4LCAwLjAwMDIyMSwgMC4wMDAyMjMsIDAuMDAwMjI0IiwgXAotICAgICAgICAgICIwLjAwMDE2NCwgMC4wMDAxNzksIDAuMDAwMjA3LCAwLjAwMDIxNCwgMC4wMDAyMTgsIDAuMDAwMjIxLCAwLjAwMDIyMiIsIFwKLSAgICAgICAgICAiMC4wMDAxNTUsIDAuMDAwMTcsIDAuMDAwMjAxLCAwLjAwMDIxLCAwLjAwMDIxNSwgMC4wMDAyMiwgMC4wMDAyMjEiLCBcCi0gICAgICAgICAgIjAuMDAwMTQ4LCAwLjAwMDE2MSwgMC4wMDAxOTQsIDAuMDAwMjA0LCAwLjAwMDIxMSwgMC4wMDAyMTcsIDAuMDAwMjE5IiwgXAotICAgICAgICAgICIwLjAwMDE0NywgMC4wMDAxNTcsIDAuMDAwMTg5LCAwLjAwMDIwMSwgMC4wMDAyMDgsIDAuMDAwMjE1LCAwLjAwMDIxNyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTQ3OSwgMC4wMDE0ODEsIDAuMDAxNDgzLCAwLjAwMTQ4NSwgMC4wMDE0ODUsIDAuMDAxNDg1LCAwLjAwMTQ4NSIsIFwKLSAgICAgICAgICAiMC4wMDE0NjYsIDAuMDAxNDczLCAwLjAwMTQ4NCwgMC4wMDE0ODYsIDAuMDAxNDg3LCAwLjAwMTQ4OCwgMC4wMDE0ODgiLCBcCi0gICAgICAgICAgIjAuMDAxNDUzLCAwLjAwMTQ2NCwgMC4wMDE0ODEsIDAuMDAxNDg1LCAwLjAwMTQ4NywgMC4wMDE0ODksIDAuMDAxNDg5IiwgXAotICAgICAgICAgICIwLjAwMTQ0OCwgMC4wMDE0NTcsIDAuMDAxNDc4LCAwLjAwMTQ4MiwgMC4wMDE0ODUsIDAuMDAxNDg3LCAwLjAwMTQ4OCIsIFwKLSAgICAgICAgICAiMC4wMDE0NDUsIDAuMDAxNDU1LCAwLjAwMTQ3NCwgMC4wMDE0OCwgMC4wMDE0ODMsIDAuMDAxNDg3LCAwLjAwMTQ4OCIsIFwKLSAgICAgICAgICAiMC4wMDE0NTEsIDAuMDAxNDUzLCAwLjAwMTQ3MywgMC4wMDE0NzksIDAuMDAxNDgyLCAwLjAwMTQ4NiwgMC4wMDE0ODciLCBcCi0gICAgICAgICAgIjAuMDAxNDYyLCAwLjAwMTQ2MiwgMC4wMDE0NzMsIDAuMDAxNDc5LCAwLjAwMTQ4MiwgMC4wMDE0ODYsIDAuMDAxNDg3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwMjE4LCAwLjAwMDIyLCAwLjAwMDIyNCwgMC4wMDAyMjUsIDAuMDAwMjI1LCAwLjAwMDIyNSwgMC4wMDAyMjUiLCBcCi0gICAgICAgICAgIjAuMDAwMTkxLCAwLjAwMDIwMiwgMC4wMDAyMTcsIDAuMDAwMjIsIDAuMDAwMjIyLCAwLjAwMDIyNCwgMC4wMDAyMjQiLCBcCi0gICAgICAgICAgIjAuMDAwMTcyLCAwLjAwMDE4NSwgMC4wMDAyMSwgMC4wMDAyMTUsIDAuMDAwMjE5LCAwLjAwMDIyMSwgMC4wMDAyMjIiLCBcCi0gICAgICAgICAgIjAuMDAwMTY0LCAwLjAwMDE3NywgMC4wMDAyMDUsIDAuMDAwMjEyLCAwLjAwMDIxNiwgMC4wMDAyMiwgMC4wMDAyMjEiLCBcCi0gICAgICAgICAgIjAuMDAwMTY1LCAwLjAwMDE3MywgMC4wMDAyMDEsIDAuMDAwMjA5LCAwLjAwMDIxNCwgMC4wMDAyMTgsIDAuMDAwMjIiLCBcCi0gICAgICAgICAgIjAuMDAwMTczLCAwLjAwMDE3NSwgMC4wMDAxOTYsIDAuMDAwMjA2LCAwLjAwMDIxMiwgMC4wMDAyMTcsIDAuMDAwMjE5IiwgXAotICAgICAgICAgICIwLjAwMDE4NywgMC4wMDAxODQsIDAuMDAwMTk2LCAwLjAwMDIwNCwgMC4wMDAyMSwgMC4wMDAyMTYsIDAuMDAwMjE4Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IE5BTkQzQlgyICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChOQU5EM0JYMikgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjI0Nzk2OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBTikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjAyOTIxOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYwMjczNDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2MDI5MjE7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwODYzLCAwLjAwMDgzOCwgMC4wMDA4MywgMC4wMDA4MzYsIDAuMDAwODQ2LCAwLjAwMDg2NywgMC4wMDA4ODYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDIzMjIsIDAuMDAyMzAzLCAwLjAwMjI5NywgMC4wMDIzMDQsIDAuMDAyMzE0LCAwLjAwMjMzNiwgMC4wMDIzNTMiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTc2MTI4OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTc2MTI4OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTc1NzM0OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDgxOCwgMC4wMDA4MTgsIDAuMDAwODE4LCAwLjAwMDgxNywgMC4wMDA4MTcsIDAuMDAwODE3LCAwLjAwMDgxNyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDg1NiwgMC4wMDA4MjQsIDAuMDAwODIyLCAwLjAwMDgyMiwgMC4wMDA4MjEsIDAuMDAwODIsIDAuMDAwODIiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEMpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTYzNTY3OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTYzNDM2OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTYzNTY3OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDQ2NiwgMC4wMDA0NjUsIDAuMDAwNDY1LCAwLjAwMDQ2NSwgMC4wMDA0NjUsIDAuMDAwNDY1LCAwLjAwMDQ2NSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDkyOCwgMC4wMDA5MjksIDAuMDAwOTI5LCAwLjAwMDkzLCAwLjAwMDkzLCAwLjAwMDkyOSwgMC4wMDA5MjkiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4xOTU3Mzc7Ci0gICAgZnVuY3Rpb24gOiAiKCEoKCghQU4pIEIpIEMpKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQU4iOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1OTAzNywgMC4xNjE5NTEsIDAuMjQzOTk4LCAwLjM0NjM3MiwgMC40NDg3NjcsIDAuNTUwOTcsIDAuNjUzMzU3IiwgXAotICAgICAgICAgICIwLjA2OTI2NCwgMC4xNzIyMTgsIDAuMjU0MTk1LCAwLjM1NjM2OSwgMC40NTg5ODYsIDAuNTYxMjM3LCAwLjY2MzU1MSIsIFwKLSAgICAgICAgICAiMC4wODE5MTUsIDAuMTg0ODE0LCAwLjI2NjgwMSwgMC4zNjkwNzQsIDAuNDcxNTY5LCAwLjU3MzkwMSwgMC42NzYxMzciLCBcCi0gICAgICAgICAgIjAuMDkzMzc0LCAwLjE5NjMyMiwgMC4yNzgyNDksIDAuMzgwNjQ3LCAwLjQ4MzEyNiwgMC41ODUzNjksIDAuNjg3NjQ3IiwgXAotICAgICAgICAgICIwLjEwMzUzNiwgMC4yMDY1ODcsIDAuMjg4NTI5LCAwLjM5MDg5MSwgMC40OTMzMSwgMC41OTU2MDEsIDAuNjk3OTEyIiwgXAotICAgICAgICAgICIwLjExNzQ1NSwgMC4yMjA1MjEsIDAuMzAyNDQ5LCAwLjQwNDc5LCAwLjUwNzEyLCAwLjYwOTY2NiwgMC43MTE3NjciLCBcCi0gICAgICAgICAgIjAuMTI4MjI2LCAwLjIzMTQzMywgMC4zMTMzMTIsIDAuNDE1NjY3LCAwLjUxNzk3LCAwLjYyMDM0LCAwLjcyMjg0OCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjAwNjIsIDAuMjY4NTM2LCAwLjQzNjg1NCwgMC42NDc2OTQsIDAuODU4MzM1LCAxLjA2ODc4LCAxLjI3OTMzIiwgXAotICAgICAgICAgICIwLjA2MDAwMiwgMC4yNjg1NzcsIDAuNDM2OTM5LCAwLjY0NzU4NywgMC44NTgyNzcsIDEuMDY5MiwgMS4yNzkzNSIsIFwKLSAgICAgICAgICAiMC4wNjAyMDUsIDAuMjY4NjA3LCAwLjQzNzAyOCwgMC42NDc3MjgsIDAuODU4MjA3LCAxLjA2OTIxLCAxLjI3OTM5IiwgXAotICAgICAgICAgICIwLjA2MDg1NSwgMC4yNjg2MTcsIDAuNDM3MTQ3LCAwLjY0NzQ5OCwgMC44NTgyNSwgMS4wNjkyMywgMS4yNzkzOSIsIFwKLSAgICAgICAgICAiMC4wNjE3NTYsIDAuMjY4ODM4LCAwLjQzNjkwNiwgMC42NDc3OTYsIDAuODU4MTcxLCAxLjA2ODc0LCAxLjI3OTM1IiwgXAotICAgICAgICAgICIwLjA2MzUxNiwgMC4yNjkxMDcsIDAuNDM3MDU1LCAwLjY0NzUzMSwgMC44NTgxMTgsIDEuMDY5MDEsIDEuMjc5NDIiLCBcCi0gICAgICAgICAgIjAuMDY0OTEyLCAwLjI2OTEzOCwgMC40MzcyOTYsIDAuNjQ3NywgMC44NTgxNjgsIDEuMDY4NzEsIDEuMjc5NzgiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTA2OTc1LCAwLjM4NDUzNSwgMC42MDYyNCwgMC44ODMzMDEsIDEuMTYxMjQsIDEuNDM3NDgsIDEuNzE1MzEiLCBcCi0gICAgICAgICAgIjAuMTE2NzI3LCAwLjM5NDI5MiwgMC42MTU5NzIsIDAuODkzMzU0LCAxLjE3MDE4LCAxLjQ0ODI1LCAxLjcyNDQ4IiwgXAotICAgICAgICAgICIwLjEyODc1LCAwLjQwNjQ2MywgMC42MjgwODIsIDAuOTA1NDA1LCAxLjE4MzAxLCAxLjQ2MDQsIDEuNzM3NTMiLCBcCi0gICAgICAgICAgIjAuMTM5MTk0LCAwLjQxNzA1MSwgMC42Mzg2OTUsIDAuOTE1ODAyLCAxLjE5MzMsIDEuNDcwMzcsIDEuNzQ4MDYiLCBcCi0gICAgICAgICAgIjAuMTQ4MDM5LCAwLjQyNTg1OCwgMC42NDc2OSwgMC45MjQ3MTcsIDEuMjAyMjIsIDEuNDc5MjcsIDEuNzU2ODYiLCBcCi0gICAgICAgICAgIjAuMTYwMDU4LCAwLjQzNzkyNywgMC42NTk2NTUsIDAuOTM2ODgsIDEuMjEzODksIDEuNDkxNywgMS43Njk0MSIsIFwKLSAgICAgICAgICAiMC4xNjk4LCAwLjQ0NzUwNSwgMC42Njk0NjMsIDAuOTQ2NjM3LCAxLjIyMzkxLCAxLjUwMDg2LCAxLjc3ODc2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEzOTQwMiwgMC42ODM3NjIsIDEuMTE4OTUsIDEuNjYyNjIsIDIuMjAxMDEsIDIuNzUwNDgsIDMuMjg2NzkiLCBcCi0gICAgICAgICAgIjAuMTM5NTUzLCAwLjY4NjE3NCwgMS4xMTgwNCwgMS42NTg3MiwgMi4yMDY5NywgMi43NDM2LCAzLjI4ODgyIiwgXAotICAgICAgICAgICIwLjEzOTU1NywgMC42ODY0MzksIDEuMTE4MDUsIDEuNjYwMywgMi4yMDEwMiwgMi43NDM2MSwgMy4yODc4IiwgXAotICAgICAgICAgICIwLjEzOTcyLCAwLjY4Njg1MSwgMS4xMTg2MSwgMS42NjI1MSwgMi4yMDcxOCwgMi43NDYwMywgMy4yOTY2IiwgXAotICAgICAgICAgICIwLjEzOTgyNywgMC42ODE5NjcsIDEuMTE4OTgsIDEuNjYyNTMsIDIuMjA3MjQsIDIuNzQ2MDMsIDMuMjk2NDQiLCBcCi0gICAgICAgICAgIjAuMTM5OTEsIDAuNjg2NjEsIDEuMTE4NzQsIDEuNjYxNzIsIDIuMjA2MzcsIDIuNzUxOTUsIDMuMjg1NjUiLCBcCi0gICAgICAgICAgIjAuMTM5OTM4LCAwLjY4MzUwNSwgMS4xMTY5NSwgMS42NjI3MSwgMi4yMDcwMSwgMi43NDk1OCwgMy4yOTY1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzMDg0NSwgMC4xMzMzNTMsIDAuMjE1MjMsIDAuMzE3Njk5LCAwLjQxOTkwMSwgMC41MjI1MTgsIDAuNjI0NjgyIiwgXAotICAgICAgICAgICIwLjA0MDcxNSwgMC4xNDMyNDQsIDAuMjI1MjE4LCAwLjMyNzUwMSwgMC40Mjk5LCAwLjUzMjE0NiwgMC42MzQ2NTYiLCBcCi0gICAgICAgICAgIjAuMDUzMzUxLCAwLjE1NTU5NywgMC4yMzc0ODEsIDAuMzM5NzYyLCAwLjQ0MTgyOSwgMC41NDMzNDcsIDAuNjQ2MDQ0IiwgXAotICAgICAgICAgICIwLjA2NTI5NywgMC4xNjgxNjQsIDAuMjQ5ODgsIDAuMzUyMTkyLCAwLjQ1NDUyNCwgMC41NTY4NTQsIDAuNjU4OTU5IiwgXAotICAgICAgICAgICIwLjA3NTQzNCwgMC4xODA0NDIsIDAuMjYyNDc4LCAwLjM2NDgwNSwgMC40NjY5NywgMC41NjkyNzUsIDAuNjcxNTI1IiwgXAotICAgICAgICAgICIwLjA4OTE0OCwgMC4yMDEwOTYsIDAuMjgyMjk5LCAwLjM4NDg2OSwgMC40ODcwMDUsIDAuNTg5Mzc3LCAwLjY5MTQ3IiwgXAotICAgICAgICAgICIwLjA5OTczMSwgMC4yMTg5NTEsIDAuMjk5ODcxLCAwLjQwMjY0NCwgMC41MDQ4NDIsIDAuNjA2ODk0LCAwLjcwOTAwNCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTQ5NjgsIDAuMjY1NjksIDAuNDM0MTQzLCAwLjY0NTAxNSwgMC44NTUzMjgsIDEuMDY2NjIsIDEuMjc3MzMiLCBcCi0gICAgICAgICAgIjAuMDU2MzksIDAuMjY1NTk0LCAwLjQzNDI2MiwgMC42NDQ4OTIsIDAuODU1Nzc5LCAxLjA2NjIyLCAxLjI3NzM0IiwgXAotICAgICAgICAgICIwLjA2MjYzNywgMC4yNjU2NTYsIDAuNDM0MTIyLCAwLjY0NDgzNSwgMC44NTU3NjUsIDEuMDY1NzgsIDEuMjc3MzUiLCBcCi0gICAgICAgICAgIjAuMDcxMDExLCAwLjI2NzA1LCAwLjQzNDExNSwgMC42NDQ4OTYsIDAuODU1NzA3LCAxLjA2NjIxLCAxLjI3NzM1IiwgXAotICAgICAgICAgICIwLjA4MDM5NiwgMC4yNzA0NSwgMC40MzQ4LCAwLjY0NDk3NSwgMC44NTUyNjUsIDEuMDY2MzUsIDEuMjc2OSIsIFwKLSAgICAgICAgICAiMC4wOTU3NzYsIDAuMjc4MDMyLCAwLjQzODY5MywgMC42NDUzMjEsIDAuODU1NjU5LCAxLjA2NjYyLCAxLjI3NzE1IiwgXAotICAgICAgICAgICIwLjEwODEwMiwgMC4yODY0MzcsIDAuNDQ0MTI5LCAwLjY0NzYyLCAwLjg1NTYwNywgMS4wNjYzOCwgMS4yNzcwMiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzkzMTgsIDAuMzU2NzQxLCAwLjU3ODM5OSwgMC44NTUzNDgsIDEuMTMzNTEsIDEuNDA5OTksIDEuNjg2MjciLCBcCi0gICAgICAgICAgIjAuMDg3NzE2LCAwLjM2NTM0LCAwLjU4NzA2NSwgMC44NjQyNTUsIDEuMTQyMTEsIDEuNDE4MzIsIDEuNjk1NTgiLCBcCi0gICAgICAgICAgIjAuMDk4MTA1LCAwLjM3NjM1MSwgMC41OTgwODksIDAuODc1NTQ5LCAxLjE1MjIxLCAxLjQzMDUsIDEuNzA2ODkiLCBcCi0gICAgICAgICAgIjAuMTA4NjYxLCAwLjM4NjcyNywgMC42MDkwMiwgMC44ODYyMzUsIDEuMTYzMTEsIDEuNDQwNywgMS43MTc1NSIsIFwKLSAgICAgICAgICAiMC4xMTkxNzcsIDAuMzk3NTA5LCAwLjYxOTI3NCwgMC44OTY2NjIsIDEuMTc0NiwgMS40NTE3NSwgMS43Mjk2OCIsIFwKLSAgICAgICAgICAiMC4xMzYwNjksIDAuNDE0Mzk2LCAwLjYzNjM5NywgMC45MTM2NDYsIDEuMTkwODMsIDEuNDY4NTYsIDEuNzQ1MjQiLCBcCi0gICAgICAgICAgIjAuMTQ5NDMsIDAuNDI5NDIsIDAuNjUxNDIxLCAwLjkyODc4OSwgMS4yMDYzLCAxLjQ4MzE4LCAxLjc2MTM4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEzOTQ1MywgMC42ODE4OTMsIDEuMTE2NywgMS42NjE1MSwgMi4yMDA5OCwgMi43NTEyNSwgMy4yOTQzOSIsIFwKLSAgICAgICAgICAiMC4xMzk1NjgsIDAuNjgzNjI0LCAxLjExODg1LCAxLjY1OTkxLCAyLjIwMTAzLCAyLjc1MDg4LCAzLjI5MjE4IiwgXAotICAgICAgICAgICIwLjE0MDA0NCwgMC42ODE3NzIsIDEuMTE5MDksIDEuNjU4NDYsIDIuMjAyNDcsIDIuNzQzNTMsIDMuMjk1OCIsIFwKLSAgICAgICAgICAiMC4xNDMxNzIsIDAuNjgyMzU0LCAxLjExNTgyLCAxLjY1ODQ0LCAyLjIwMjc1LCAyLjc1MTk5LCAzLjI4NjI3IiwgXAotICAgICAgICAgICIwLjE0NzM5MywgMC42ODM2MjYsIDEuMTE4NzMsIDEuNjYyNzIsIDIuMjAwOTMsIDIuNzQzNjEsIDMuMjg1NiIsIFwKLSAgICAgICAgICAiMC4xNTYyMDIsIDAuNjgzNTMyLCAxLjExODY0LCAxLjY2MTc2LCAyLjIwNjUxLCAyLjc1MTY4LCAzLjI5MjI0IiwgXAotICAgICAgICAgICIwLjE2NDcwOSwgMC42ODUwMzcsIDEuMTE4NzcsIDEuNjYyNTgsIDIuMjAzMjEsIDIuNzUwNDcsIDMuMjg2MTkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDI5Mzg1LCAwLjEzMTg3NywgMC4yMTQwNSwgMC4zMTYzNzEsIDAuNDE4ODY0LCAwLjUyMTM1OSwgMC42MjQxMiIsIFwKLSAgICAgICAgICAiMC4wMzkzNzYsIDAuMTQxODY3LCAwLjIyMzgyNywgMC4zMjYzOCwgMC40MjkxMzYsIDAuNTMxNTQsIDAuNjMzNzkyIiwgXAotICAgICAgICAgICIwLjA1MjA4MywgMC4xNTQ1OTEsIDAuMjM2NiwgMC4zMzkwODMsIDAuNDQxNDQyLCAwLjU0NDI5NSwgMC42NDYyOSIsIFwKLSAgICAgICAgICAiMC4wNjM1NTEsIDAuMTY2NTk4LCAwLjI0ODY4NywgMC4zNTEwMjMsIDAuNDUzNTAyLCAwLjU1NjMzNywgMC42NTcyMDciLCBcCi0gICAgICAgICAgIjAuMDczMTk4LCAwLjE3OTEwNSwgMC4yNjEyNTcsIDAuMzYzNTQzLCAwLjQ2NjA0MiwgMC41Njg0MjIsIDAuNjcwODU2IiwgXAotICAgICAgICAgICIwLjA4NjcxNywgMC4xOTk4MDUsIDAuMjgxMTE3LCAwLjM4MzgzNSwgMC40ODYxMywgMC41ODg2NjksIDAuNjkxMDc4IiwgXAotICAgICAgICAgICIwLjA5NjU3NCwgMC4yMTc2MzUsIDAuMjk4NjQxLCAwLjQwMTEzMiwgMC41MDQwMjQsIDAuNjA2MTM3LCAwLjcwODQxMSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTM1MTMsIDAuMjY0OTk1LCAwLjQzNDU0MywgMC42NDY0MTgsIDAuODU3NjQ0LCAxLjA3MDE1LCAxLjI4MDY3IiwgXAotICAgICAgICAgICIwLjA1NDkxNywgMC4yNjUwNjUsIDAuNDM0MjA1LCAwLjY0NjAxNSwgMC44NTc5OCwgMS4wNjk0OSwgMS4yODE4NSIsIFwKLSAgICAgICAgICAiMC4wNjEyNzcsIDAuMjY1NTcsIDAuNDM0NTYyLCAwLjY0NjAwOSwgMC44NTcyODksIDEuMDY5NjgsIDEuMjgyNjUiLCBcCi0gICAgICAgICAgIjAuMDY5ODU3LCAwLjI2NjYyNiwgMC40MzQzNjYsIDAuNjQ1ODcsIDAuODU4ODIxLCAxLjA2OTYsIDEuMjgxNzMiLCBcCi0gICAgICAgICAgIjAuMDc5NSwgMC4yNzAwNzUsIDAuNDM1NzMsIDAuNjQ1ODc3LCAwLjg1NzYwMiwgMS4wNjg4OSwgMS4yODA0NyIsIFwKLSAgICAgICAgICAiMC4wOTQ4NTIsIDAuMjc3NDE3LCAwLjQzODczNSwgMC42NDc2ODIsIDAuODU3NDcsIDEuMDY5MzEsIDEuMjgwOTIiLCBcCi0gICAgICAgICAgIjAuMTA3NTg2LCAwLjI4NTkxMywgMC40NDUxNjEsIDAuNjQ4ODMsIDAuODU3OTA2LCAxLjA2ODk5LCAxLjI4MDY2Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3NDgyMiwgMC4zNTIxMjEsIDAuNTczOTk4LCAwLjg1MTA4NSwgMS4xMjg2NCwgMS40MDU1MywgMS42ODM0NCIsIFwKLSAgICAgICAgICAiMC4wODMwODQsIDAuMzYwNzg5LCAwLjU4MjUzOSwgMC44NTk2MzQsIDEuMTM2NzMsIDEuNDEzODcsIDEuNjkxNDYiLCBcCi0gICAgICAgICAgIjAuMDkzNjU1LCAwLjM3MTQ4NywgMC41OTMzNjEsIDAuODcwOTI1LCAxLjE0ODEzLCAxLjQyNDY3LCAxLjcwMiIsIFwKLSAgICAgICAgICAiMC4xMDQ4NDQsIDAuMzgyNjYzLCAwLjYwNDYyMSwgMC44ODIxMywgMS4xNTkxNCwgMS40MzY0NiwgMS43MTM2MSIsIFwKLSAgICAgICAgICAiMC4xMTU4NjIsIDAuMzkzNDYsIDAuNjE1MjMzLCAwLjg5MjQxMiwgMS4xNzAzOCwgMS40NDczNywgMS43MjU0NCIsIFwKLSAgICAgICAgICAiMC4xMzQwODIsIDAuNDEwOSwgMC42MzI5MDUsIDAuOTEwMjExLCAxLjE4ODEsIDEuNDY0MzMsIDEuNzQyNDIiLCBcCi0gICAgICAgICAgIjAuMTQ4Njk2LCAwLjQyNjM0MywgMC42NDg0MzgsIDAuOTI1Mzk2LCAxLjIwMzA5LCAxLjQ4MTA4LCAxLjc1Njk3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEzOTU4OCwgMC42ODM0ODUsIDEuMTE2MDUsIDEuNjcwMDMsIDIuMjAxNzcsIDIuNzUxMjMsIDMuMjg1MDgiLCBcCi0gICAgICAgICAgIjAuMTM5NDcyLCAwLjY4NTk2OCwgMS4xMTc4NSwgMS42NjI4NywgMi4yMDY5MywgMi43NDg2MywgMy4yODY1NiIsIFwKLSAgICAgICAgICAiMC4xNDA4NjEsIDAuNjgzNTk5LCAxLjExODY3LCAxLjY1ODI2LCAyLjIwMjA0LCAyLjc1MTA5LCAzLjI5MjU4IiwgXAotICAgICAgICAgICIwLjE0NTMyLCAwLjY4MzQzMywgMS4xMTg4MywgMS42NjM1NSwgMi4yMDMwNSwgMi43NTEyNCwgMy4yODY0NCIsIFwKLSAgICAgICAgICAiMC4xNTE0OTgsIDAuNjgyMzk1LCAxLjExODc0LCAxLjY2MjczLCAyLjIwMTAyLCAyLjc1MTg2LCAzLjI4NjEzIiwgXAotICAgICAgICAgICIwLjE2MzEwNiwgMC42ODM2OTYsIDEuMTE4NzUsIDEuNjYyOTUsIDIuMjAwOTQsIDIuNzUwMiwgMy4yODYyIiwgXAotICAgICAgICAgICIwLjE3NDMyOCwgMC42ODM5OTYsIDEuMTI0MTEsIDEuNjYyODEsIDIuMjA3NzQsIDIuNzQzNTIsIDMuMjk0MjEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0OTgxLCAwLjAwNDk4NywgMC4wMDQ5ODgsIDAuMDA0OTg4LCAwLjAwNDk4OCwgMC4wMDQ5OSwgMC4wMDQ5ODciLCBcCi0gICAgICAgICAgIjAuMDA0OTUxLCAwLjAwNDk2MywgMC4wMDQ5NjQsIDAuMDA0OTY0LCAwLjAwNDk2NiwgMC4wMDQ5NjYsIDAuMDA0OTY0IiwgXAotICAgICAgICAgICIwLjAwNDkzOSwgMC4wMDQ5NTcsIDAuMDA0OTU4LCAwLjAwNDk1OSwgMC4wMDQ5NTksIDAuMDA0OTU4LCAwLjAwNDk1OSIsIFwKLSAgICAgICAgICAiMC4wMDQ5NDMsIDAuMDA0OTYsIDAuMDA0OTYyLCAwLjAwNDk2MywgMC4wMDQ5NjQsIDAuMDA0OTYzLCAwLjAwNDk2MiIsIFwKLSAgICAgICAgICAiMC4wMDQ5NSwgMC4wMDQ5NzEsIDAuMDA0OTczLCAwLjAwNDk3NCwgMC4wMDQ5NzUsIDAuMDA0OTc1LCAwLjAwNDk3NCIsIFwKLSAgICAgICAgICAiMC4wMDQ5NzgsIDAuMDA0OTk0LCAwLjAwNDk5NywgMC4wMDQ5OTksIDAuMDA1LCAwLjAwNDk5OSwgMC4wMDUwMDEiLCBcCi0gICAgICAgICAgIjAuMDA0OTk4LCAwLjAwNTAxNiwgMC4wMDUwMTgsIDAuMDA1MDIsIDAuMDA1MDIsIDAuMDA1MDIsIDAuMDA1MDIxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0Mjc5LCAwLjAwNDMxNywgMC4wMDQzMjEsIDAuMDA0MzIzLCAwLjAwNDMyNCwgMC4wMDQzMjUsIDAuMDA0MzI1IiwgXAotICAgICAgICAgICIwLjAwNDI0OCwgMC4wMDQyOTUsIDAuMDA0MzAxLCAwLjAwNDMwNCwgMC4wMDQzMDUsIDAuMDA0MzA2LCAwLjAwNDMwNyIsIFwKLSAgICAgICAgICAiMC4wMDQyMjUsIDAuMDA0Mjg1LCAwLjAwNDI5NCwgMC4wMDQyOTgsIDAuMDA0MzAxLCAwLjAwNDMwMiwgMC4wMDQzMDMiLCBcCi0gICAgICAgICAgIjAuMDA0MjIsIDAuMDA0Mjg3LCAwLjAwNDI5NywgMC4wMDQzMDMsIDAuMDA0MzA2LCAwLjAwNDMwOCwgMC4wMDQzMDkiLCBcCi0gICAgICAgICAgIjAuMDA0MjIsIDAuMDA0MjkyLCAwLjAwNDMwNCwgMC4wMDQzMTEsIDAuMDA0MzE0LCAwLjAwNDMxNywgMC4wMDQzMTgiLCBcCi0gICAgICAgICAgIjAuMDA0MjMsIDAuMDA0MzA1LCAwLjAwNDMxOSwgMC4wMDQzMjgsIDAuMDA0MzMyLCAwLjAwNDMzNSwgMC4wMDQzMzciLCBcCi0gICAgICAgICAgIjAuMDA0MjM0LCAwLjAwNDMxMywgMC4wMDQzMjksIDAuMDA0MzM4LCAwLjAwNDM0MywgMC4wMDQzNDYsIDAuMDA0MzQ4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzOTkzLCAwLjAwMzk5OSwgMC4wMDM5OTksIDAuMDAzOTk5LCAwLjAwMzk5OSwgMC4wMDM5OTksIDAuMDAzOTk5IiwgXAotICAgICAgICAgICIwLjAwMzk1OCwgMC4wMDM5OSwgMC4wMDM5OTMsIDAuMDAzOTk1LCAwLjAwMzk5NiwgMC4wMDM5OTcsIDAuMDAzOTk3IiwgXAotICAgICAgICAgICIwLjAwMzk0NywgMC4wMDM5ODEsIDAuMDAzOTkxLCAwLjAwMzk5NCwgMC4wMDM5OTUsIDAuMDAzOTk0LCAwLjAwMzk5NSIsIFwKLSAgICAgICAgICAiMC4wMDM5NDcsIDAuMDAzOTg0LCAwLjAwMzk4OCwgMC4wMDM5OTIsIDAuMDAzOTkzLCAwLjAwMzk5NCwgMC4wMDM5OTUiLCBcCi0gICAgICAgICAgIjAuMDAzOTU2LCAwLjAwMzk4MSwgMC4wMDM5ODksIDAuMDAzOTk0LCAwLjAwMzk5MywgMC4wMDM5OTQsIDAuMDAzOTk0IiwgXAotICAgICAgICAgICIwLjAwMzk4MiwgMC4wMDM5ODcsIDAuMDAzOTg4LCAwLjAwMzk5MywgMC4wMDM5OTMsIDAuMDAzOTk1LCAwLjAwMzk5NyIsIFwKLSAgICAgICAgICAiMC4wMDQwMTYsIDAuMDAzOTk1LCAwLjAwMzk5MywgMC4wMDM5OTYsIDAuMDAzOTk2LCAwLjAwMzk5NSwgMC4wMDM5OTYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDExMTMsIDAuMDAxMTMsIDAuMDAxMTMyLCAwLjAwMTEzMywgMC4wMDExMzQsIDAuMDAxMTM0LCAwLjAwMTEzNCIsIFwKLSAgICAgICAgICAiMC4wMDEwNDUsIDAuMDAxMTEyLCAwLjAwMTEyMSwgMC4wMDExMjUsIDAuMDAxMTI4LCAwLjAwMTEyOSwgMC4wMDExMyIsIFwKLSAgICAgICAgICAiMC4wMDA5OTYsIDAuMDAxMDkxLCAwLjAwMTEwNywgMC4wMDExMTYsIDAuMDAxMTIxLCAwLjAwMTEyMywgMC4wMDExMjUiLCBcCi0gICAgICAgICAgIjAuMDAwOTcsIDAuMDAxMDc0LCAwLjAwMTA5NSwgMC4wMDExMDcsIDAuMDAxMTE0LCAwLjAwMTExOCwgMC4wMDExMjEiLCBcCi0gICAgICAgICAgIjAuMDAwOTU1LCAwLjAwMTA2LCAwLjAwMTA4NCwgMC4wMDEwOTksIDAuMDAxMTA3LCAwLjAwMTExMywgMC4wMDExMTYiLCBcCi0gICAgICAgICAgIjAuMDAwOTQ4LCAwLjAwMTA0LCAwLjAwMTA2OSwgMC4wMDEwODcsIDAuMDAxMDk4LCAwLjAwMTEwNSwgMC4wMDExMDkiLCBcCi0gICAgICAgICAgIjAuMDAwOTUyLCAwLjAwMTAyOSwgMC4wMDEwNTksIDAuMDAxMDc5LCAwLjAwMTA5MSwgMC4wMDEwOTksIDAuMDAxMTA0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzMTUxLCAwLjAwMzE2NSwgMC4wMDMxNjcsIDAuMDAzMTY4LCAwLjAwMzE2NywgMC4wMDMxNjgsIDAuMDAzMTY4IiwgXAotICAgICAgICAgICIwLjAwMzEyMiwgMC4wMDMxNzMsIDAuMDAzMTgsIDAuMDAzMTgzLCAwLjAwMzE4NSwgMC4wMDMxODYsIDAuMDAzMTg3IiwgXAotICAgICAgICAgICIwLjAwMzA5MSwgMC4wMDMxNjEsIDAuMDAzMTczLCAwLjAwMzE4MSwgMC4wMDMxODMsIDAuMDAzMTg0LCAwLjAwMzE4OCIsIFwKLSAgICAgICAgICAiMC4wMDMwOSwgMC4wMDMxNjEsIDAuMDAzMTczLCAwLjAwMzE3OSwgMC4wMDMxODMsIDAuMDAzMTg1LCAwLjAwMzE4OSIsIFwKLSAgICAgICAgICAiMC4wMDMwOTEsIDAuMDAzMTUzLCAwLjAwMzE3LCAwLjAwMzE3NywgMC4wMDMxODIsIDAuMDAzMTg0LCAwLjAwMzE4NiIsIFwKLSAgICAgICAgICAiMC4wMDMxMSwgMC4wMDMxNTUsIDAuMDAzMTY2LCAwLjAwMzE3NiwgMC4wMDMxNzksIDAuMDAzMTgzLCAwLjAwMzE4NCIsIFwKLSAgICAgICAgICAiMC4wMDMxNDQsIDAuMDAzMTU4LCAwLjAwMzE2NywgMC4wMDMxNzQsIDAuMDAzMTgsIDAuMDAzMTgyLCAwLjAwMzE4NSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTEwNiwgMC4wMDExMjcsIDAuMDAxMTI5LCAwLjAwMTEzMSwgMC4wMDExMzEsIDAuMDAxMTMxLCAwLjAwMTEzMSIsIFwKLSAgICAgICAgICAiMC4wMDEwMzEsIDAuMDAxMTA2LCAwLjAwMTExNiwgMC4wMDExMjIsIDAuMDAxMTI0LCAwLjAwMTEyNiwgMC4wMDExMjciLCBcCi0gICAgICAgICAgIjAuMDAwOTk0LCAwLjAwMTA4NywgMC4wMDExMDMsIDAuMDAxMTEyLCAwLjAwMTExNywgMC4wMDExMiwgMC4wMDExMjIiLCBcCi0gICAgICAgICAgIjAuMDAwOTc1LCAwLjAwMTA2OSwgMC4wMDEwOTEsIDAuMDAxMTAzLCAwLjAwMTExLCAwLjAwMTExNSwgMC4wMDExMTciLCBcCi0gICAgICAgICAgIjAuMDAwOTg1LCAwLjAwMTA2MSwgMC4wMDEwODQsIDAuMDAxMDk4LCAwLjAwMTEwNiwgMC4wMDExMTEsIDAuMDAxMTE0IiwgXAotICAgICAgICAgICIwLjAwMTAyMywgMC4wMDEwNTMsIDAuMDAxMDc2LCAwLjAwMTA5MSwgMC4wMDExLCAwLjAwMTEwNiwgMC4wMDExMSIsIFwKLSAgICAgICAgICAiMC4wMDEwNjMsIDAuMDAxMDUzLCAwLjAwMTA3MywgMC4wMDEwODcsIDAuMDAxMDk3LCAwLjAwMTEwMywgMC4wMDExMDciKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IE5PUjJYOCAqCi0gKiAtLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKE5PUjJYOCkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjU1NzQ1NzsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDA2MjI1NTQ7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDA2MTgyMDU7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDA2MjI1NTQ7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyOTEyLCAwLjAwMzA4NywgMC4wMDMxMTQsIDAuMDAzMTI4LCAwLjAwMzE0MywgMC4wMDMxNiwgMC4wMDMxNzMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDM0MTcsIDAuMDAzNDIxLCAwLjAwMzQyMSwgMC4wMDM0MjMsIDAuMDAzNDIzLCAwLjAwMzQyNCwgMC4wMDM0MjQiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwNjQ3MDExOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwNjQ2ODcyOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwNjQ3MDExOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDg2MywgMC4wMDA4NjMsIDAuMDAwODYzLCAwLjAwMDg2MywgMC4wMDA4NjQsIDAuMDAwODY0LCAwLjAwMDg2NCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjU3MywgMC4wMDI1NzUsIDAuMDAyNTc1LCAwLjAwMjU3NSwgMC4wMDI1NzQsIDAuMDAyNTczLCAwLjAwMjU3NCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAxLjEwNTQ4OwotICAgIGZ1bmN0aW9uIDogIighKEErQikpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyMzUzNywgMC4wOTMzMywgMC4xNjI5NTcsIDAuMjEyNjI4LCAwLjI5MjE3OCwgMC4zNjE3NzgsIDAuNDYxMzQzIiwgXAotICAgICAgICAgICIwLjAzMjA2NywgMC4xMDIwMjEsIDAuMTcxNjgyLCAwLjIyMTM5NSwgMC4zMDA4OTMsIDAuMzcwOTIsIDAuNDY5OTQ2IiwgXAotICAgICAgICAgICIwLjA0MTQ0MiwgMC4xMTIwODQsIDAuMTgxODQzLCAwLjIzMTU4NiwgMC4zMTExNzYsIDAuMzgwNzEsIDAuNDgwNjEiLCBcCi0gICAgICAgICAgIjAuMDQ5MDgyLCAwLjEyMjE0NywgMC4xOTE4OTQsIDAuMjQxNjc4LCAwLjMyMTMyNCwgMC4zOTA4MzgsIDAuNDkwMjY4IiwgXAotICAgICAgICAgICIwLjA1NTU1LCAwLjEzMjA5NywgMC4yMDE3ODksIDAuMjUxNjkxLCAwLjMzMTE3MiwgMC40MDA4MTUsIDAuNTAwMjQ2IiwgXAotICAgICAgICAgICIwLjA2NDMzLCAwLjE0ODM3NywgMC4yMTgwNjIsIDAuMjY4MDIyLCAwLjM0NzYxNywgMC40MTcxNDgsIDAuNTE2NzUxIiwgXAotICAgICAgICAgICIwLjA3MDg5NSwgMC4xNjE2MTYsIDAuMjMxOTY5LCAwLjI4MTg3MiwgMC4zNjE4NiwgMC40MzEzMDEsIDAuNTMwOTg2Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM0ODI5LCAwLjE3NTYyNiwgMC4zMTY0OCwgMC40MTc0NjQsIDAuNTc4MDQ1LCAwLjcxOTAxNiwgMC45MjAwNTYiLCBcCi0gICAgICAgICAgIjAuMDM1ODE5LCAwLjE3NTcwMiwgMC4zMTY2NywgMC40MTc5NjYsIDAuNTc5MDE5LCAwLjcxOTIxMSwgMC45MjIyODQiLCBcCi0gICAgICAgICAgIjAuMDQwMTUsIDAuMTc2MTI3LCAwLjMxNjY3MywgMC40MTc5NzYsIDAuNTc5Mzk3LCAwLjcyMDcyMiwgMC45MjA0NDYiLCBcCi0gICAgICAgICAgIjAuMDQ2MTQzLCAwLjE3ODQ0NiwgMC4zMTcxMDcsIDAuNDE4MTMxLCAwLjU3ODAzMiwgMC43MTkzOTMsIDAuOTIyMTc1IiwgXAotICAgICAgICAgICIwLjA1MTkwNywgMC4xODE2MDEsIDAuMzE5MTIsIDAuNDE3Nzg4LCAwLjU3ODQyOSwgMC43MjA3MjQsIDAuOTIwNzc2IiwgXAotICAgICAgICAgICIwLjA2MDc1OCwgMC4xODg5MSwgMC4zMjI4NDEsIDAuNDIxNjI3LCAwLjU4MDc3MiwgMC43MjA4NzksIDAuOTIwNDY2IiwgXAotICAgICAgICAgICIwLjA2ODQ3NiwgMC4xOTU4NzksIDAuMzI3NjM5LCAwLjQyNDgyMiwgMC41ODE3MTIsIDAuNzIyMzg0LCAwLjkyMjYwOSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxNDg0OCwgMC4wNTMyMzYsIDAuMDkxMjQ4LCAwLjExODM1NCwgMC4xNjE3MTksIDAuMTk5NzQ5LCAwLjI1MzgxOSIsIFwKLSAgICAgICAgICAiMC4wMjUwNDEsIDAuMDYzMzIzLCAwLjEwMTU0MSwgMC4xMjg2NTYsIDAuMTcxOTYxLCAwLjIwOTg4NCwgMC4yNjQwNzkiLCBcCi0gICAgICAgICAgIjAuMDM1ODk0LCAwLjA3NjM4MSwgMC4xMTQwNTksIDAuMTQxMTk4LCAwLjE4NDY0MywgMC4yMjI4MDIsIDAuMjc2Njc0IiwgXAotICAgICAgICAgICIwLjA0NDQ1OCwgMC4wODkzNjEsIDAuMTI2ODM0LCAwLjE1Mzg1OSwgMC4xOTczMjQsIDAuMjM1MjM4LCAwLjI4OTQyNyIsIFwKLSAgICAgICAgICAiMC4wNTE1MjYsIDAuMTAyNDgxLCAwLjE0MDE3MywgMC4xNjY3NTIsIDAuMjEwMDY2LCAwLjI0Nzk3MSwgMC4zMDIyMjciLCBcCi0gICAgICAgICAgIjAuMDYxMzU5LCAwLjEyMjAwMywgMC4xNjEwMDksIDAuMTg3OTM2LCAwLjIzMDQ4LCAwLjI2ODMyOSwgMC4zMjI5OTgiLCBcCi0gICAgICAgICAgIjAuMDY4NzE5LCAwLjEzNzEyNSwgMC4xNzkzMTYsIDAuMjA2MjY1LCAwLjI0OTI5MywgMC4yODYzNDEsIDAuMzQwNDA4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDIwNTUyLCAwLjA5NjkxMywgMC4xNzM0MDYsIDAuMjI3ODUyLCAwLjMxNTEyNywgMC4zOTE2NTEsIDAuNTAwNjA3IiwgXAotICAgICAgICAgICIwLjAyNDE1MSwgMC4wOTcxMDMsIDAuMTczMzU5LCAwLjIyNzg2NCwgMC4zMTUyNTEsIDAuMzkxNjU2LCAwLjUwMDU2MiIsIFwKLSAgICAgICAgICAiMC4wMzI5NTcsIDAuMTAwMzA4LCAwLjE3NDA5NCwgMC4yMjc5MSwgMC4zMTUxNDgsIDAuMzkxNDgxLCAwLjUwMDc3NCIsIFwKLSAgICAgICAgICAiMC4wNDEyMzYsIDAuMTA2MTYsIDAuMTc3NDc0LCAwLjIyOTg2NSwgMC4zMTU0NDYsIDAuMzkxNTIsIDAuNTAwNTczIiwgXAotICAgICAgICAgICIwLjA0OTIwMiwgMC4xMTMwNDgsIDAuMTgyMDM2LCAwLjIzMzY0NSwgMC4zMTc2NDYsIDAuMzkyMzU5LCAwLjUwMDYwMyIsIFwKLSAgICAgICAgICAiMC4wNjAyNzMsIDAuMTI2NjI5LCAwLjE5MjI3MywgMC4yNDE4MDksIDAuMzIzNzA2LCAwLjM5NjYzLCAwLjUwMjYzNyIsIFwKLSAgICAgICAgICAiMC4wNjk0MzQsIDAuMTM5NDc1LCAwLjIwMjM2NywgMC4yNTA0NzQsIDAuMzMwMjkzLCAwLjQwMjQyOSwgMC41MDY2NDIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjAxNDUsIDAuMDkwMDIxLCAwLjE1OTU2MiwgMC4yMDk0MTYsIDAuMjg4ODc2LCAwLjM1ODMzNSwgMC40NTgxOTkiLCBcCi0gICAgICAgICAgIjAuMDI4OTk5LCAwLjA5OTA2NywgMC4xNjg3NTksIDAuMjE4NDcyLCAwLjI5ODEyNCwgMC4zNjc1NjYsIDAuNDY3NDczIiwgXAotICAgICAgICAgICIwLjAzOTUyMiwgMC4xMTAzMTYsIDAuMTgwMDUsIDAuMjI5ODExLCAwLjMwOTM5MywgMC4zNzg5OCwgMC40Nzg1IiwgXAotICAgICAgICAgICIwLjA0NzYwOCwgMC4xMjE2MywgMC4xOTEzMjIsIDAuMjQwNjczLCAwLjMyMDY2MSwgMC4zOTAzODEsIDAuNDg5NzYiLCBcCi0gICAgICAgICAgIjAuMDU0MzE5LCAwLjEzMzY5MSwgMC4yMDMyODcsIDAuMjUzMTExLCAwLjMzMjgzOCwgMC40MDI0NTUsIDAuNTAyMDQ5IiwgXAotICAgICAgICAgICIwLjA2Mjc5NSwgMC4xNTIyMDksIDAuMjIxMzY4LCAwLjI3MTA2NSwgMC4zNTA1ODksIDAuNDIwMjE3LCAwLjUxOTY0NiIsIFwKLSAgICAgICAgICAiMC4wNjk2ODIsIDAuMTY4NDU4LCAwLjIzODE2MSwgMC4yODc3NiwgMC4zNjczODMsIDAuNDM2Nzg4LCAwLjUzNTUzMSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzNDcxNywgMC4xNzU2MzEsIDAuMzE3MTk5LCAwLjQxNzAyNiwgMC41Nzk0NTgsIDAuNzIwMTMsIDAuOTIwNDA3IiwgXAotICAgICAgICAgICIwLjAzNzYwOCwgMC4xNzU2MjcsIDAuMzE3MjI1LCAwLjQxODAxLCAwLjU3ODE3NywgMC43MjA0NTYsIDAuOTIwNDc4IiwgXAotICAgICAgICAgICIwLjA0NjIxNiwgMC4xNzY4MTIsIDAuMzE2ODgzLCAwLjQxODA3MSwgMC41NzkyOTQsIDAuNzIwMjIxLCAwLjkyMDI3IiwgXAotICAgICAgICAgICIwLjA1NDk0MywgMC4xODA1NDcsIDAuMzE3MjU3LCAwLjQxNzEwOCwgMC41Nzg4NzgsIDAuNzE4OTIzLCAwLjkyMjI2IiwgXAotICAgICAgICAgICIwLjA2MjQwMiwgMC4xODU3MDIsIDAuMzE5NjY3LCAwLjQxODA5MSwgMC41Nzc5OTcsIDAuNzE4ODM1LCAwLjkxOTk3NCIsIFwKLSAgICAgICAgICAiMC4wNzQwNDgsIDAuMTk2NjI3LCAwLjMyNjU5OCwgMC40MjM0NDgsIDAuNTgwODY1LCAwLjcyMDgyMywgMC45MjI0OTQiLCBcCi0gICAgICAgICAgIjAuMDgyNTc2LCAwLjIwNzcwNywgMC4zMzQxNzcsIDAuNDI5MTkyLCAwLjU4NDQ2MSwgMC43MjI0MTUsIDAuOTI1NDE4Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEyODEsIDAuMDUwODk2LCAwLjA4ODgyLCAwLjExNTk1NCwgMC4xNTkzLCAwLjE5NzE3MSwgMC4yNTE0MzYiLCBcCi0gICAgICAgICAgIjAuMDIyNzk5LCAwLjA2MTE1OSwgMC4wOTkxNzMsIDAuMTI2MjY4LCAwLjE2OTU5NCwgMC4yMDc1MTMsIDAuMjYxNjcyIiwgXAotICAgICAgICAgICIwLjAzMjI4MywgMC4wNzQwMTIsIDAuMTEyMDUzLCAwLjEzODkxNCwgMC4xODIzNDQsIDAuMjIwMTQyLCAwLjI3MzgwOSIsIFwKLSAgICAgICAgICAiMC4wMzk1MDIsIDAuMDg2ODc5LCAwLjEyNDQxLCAwLjE1MTQ5NSwgMC4xOTQ4NzYsIDAuMjMyOTM5LCAwLjI4NzA2OCIsIFwKLSAgICAgICAgICAiMC4wNDU3NzYsIDAuMDk5Njk4LCAwLjEzNzcxMSwgMC4xNjQyOTIsIDAuMjA3NjA3LCAwLjI0NTQxLCAwLjI5OTkwOCIsIFwKLSAgICAgICAgICAiMC4wNTQ0MzUsIDAuMTE5MTk0LCAwLjE1ODY4OSwgMC4xODU2NywgMC4yMjg4NjcsIDAuMjY2MDY3LCAwLjMyMDIzNiIsIFwKLSAgICAgICAgICAiMC4wNjA0OSwgMC4xMzMzODgsIDAuMTc2MDM3LCAwLjIwMzY3OCwgMC4yNDY2ODYsIDAuMjgzNjg2LCAwLjMzNzgzMSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxNzcxLCAwLjA5NDE0MSwgMC4xNzA1MDcsIDAuMjI1NDgzLCAwLjMxMzAxMSwgMC4zODg4NzYsIDAuNDk4ODcxIiwgXAotICAgICAgICAgICIwLjAyMjAwNSwgMC4wOTQ0OCwgMC4xNzA2MjUsIDAuMjI1MzMxLCAwLjMxMzQzMiwgMC4zOTAwNjQsIDAuNDk5MzQiLCBcCi0gICAgICAgICAgIjAuMDMxNDAyLCAwLjA5NzkxMywgMC4xNzE2NzcsIDAuMjI1NTAzLCAwLjMxMjYsIDAuMzg5MzE3LCAwLjQ5OTYzNCIsIFwKLSAgICAgICAgICAiMC4wNDAyMzgsIDAuMTAzNzQzLCAwLjE3NDkyMSwgMC4yMjc2NzQsIDAuMzEzMDcyLCAwLjM4OTkwOSwgMC40OTkyNSIsIFwKLSAgICAgICAgICAiMC4wNDc4NDksIDAuMTEwNzY2LCAwLjE3OTg4NywgMC4yMzExNzUsIDAuMzE1Njc4LCAwLjM5MDkwNSwgMC40OTgzMDIiLCBcCi0gICAgICAgICAgIjAuMDU4NjA2LCAwLjEyNDM3MiwgMC4xODk3MzgsIDAuMjM5MDAzLCAwLjMyMTIxNSwgMC4zOTUxNSwgMC41MDA2MjgiLCBcCi0gICAgICAgICAgIjAuMDY4NDE4LCAwLjEzODY5OCwgMC4xOTk2ODEsIDAuMjQ4NTIzLCAwLjMyODUzNCwgMC40MDAxNjUsIDAuNTA1NjkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMzcxOSwgMC4wMTM4MywgMC4wMTM4NDQsIDAuMDEzODQ4LCAwLjAxMzg1MiwgMC4wMTM4NTQsIDAuMDEzODU1IiwgXAotICAgICAgICAgICIwLjAxMzQ1OCwgMC4wMTM3MjEsIDAuMDEzNzc3LCAwLjAxMzc5NywgMC4wMTM4MTUsIDAuMDEzODIzLCAwLjAxMzgzMiIsIFwKLSAgICAgICAgICAiMC4wMTMzNjEsIDAuMDEzNjI0LCAwLjAxMzcxLCAwLjAxMzc0MSwgMC4wMTM3OCwgMC4wMTM3OTksIDAuMDEzODAzIiwgXAotICAgICAgICAgICIwLjAxMzMzNSwgMC4wMTM1NTksIDAuMDEzNjU2LCAwLjAxMzY3MywgMC4wMTM3MzQsIDAuMDEzNzUsIDAuMDEzNzc4IiwgXAotICAgICAgICAgICIwLjAxMzMzNywgMC4wMTM1MjQsIDAuMDEzNjIsIDAuMDEzNjU4LCAwLjAxMzcxLCAwLjAxMzcyNiwgMC4wMTM3NDYiLCBcCi0gICAgICAgICAgIjAuMDEzMzczLCAwLjAxMzQ5MiwgMC4wMTM1NzQsIDAuMDEzNjI1LCAwLjAxMzY3LCAwLjAxMzY5LCAwLjAxMzczOCIsIFwKLSAgICAgICAgICAiMC4wMTM0MzksIDAuMDEzNDg4LCAwLjAxMzU2MSwgMC4wMTM2MDEsIDAuMDEzNjQ5LCAwLjAxMzY3OSwgMC4wMTM3MTYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjQwNywgMC4wMDI0NjMsIDAuMDAyNDY5LCAwLjAwMjQ3MywgMC4wMDI0NzUsIDAuMDAyNDc1LCAwLjAwMjQ3NSIsIFwKLSAgICAgICAgICAiMC4wMDIwODksIDAuMDAyMjc5LCAwLjAwMjMzNywgMC4wMDIzNSwgMC4wMDIzNjEsIDAuMDAyMzY3LCAwLjAwMjM3MiIsIFwKLSAgICAgICAgICAiMC4wMDIwMTgsIDAuMDAyMjE5LCAwLjAwMjI2NSwgMC4wMDIyODgsIDAuMDAyMzE0LCAwLjAwMjMyOCwgMC4wMDIzMzMiLCBcCi0gICAgICAgICAgIjAuMDAyMDM0LCAwLjAwMjIwMiwgMC4wMDIyNDEsIDAuMDAyMjgzLCAwLjAwMjI4OCwgMC4wMDIzMjUsIDAuMDAyMzI2IiwgXAotICAgICAgICAgICIwLjAwMjE2MywgMC4wMDIxODYsIDAuMDAyMjU3LCAwLjAwMjI2LCAwLjAwMjI4NiwgMC4wMDIzLCAwLjAwMjI5OCIsIFwKLSAgICAgICAgICAiMC4wMDIzNjIsIDAuMDAyMzM2LCAwLjAwMjMyOCwgMC4wMDIzMjYsIDAuMDAyMzE3LCAwLjAwMjMyMiwgMC4wMDIzNCIsIFwKLSAgICAgICAgICAiMC4wMDI2MTYsIDAuMDAyNDQ2LCAwLjAwMjM5MywgMC4wMDIzODEsIDAuMDAyMzYyLCAwLjAwMjM0NSwgMC4wMDIzNDciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMDkxOSwgMC4wMTEwOTcsIDAuMDExMTE4LCAwLjAxMTEyNSwgMC4wMTExMjYsIDAuMDExMTMzLCAwLjAxMTEzNiIsIFwKLSAgICAgICAgICAiMC4wMTA1NzcsIDAuMDEwOTM4LCAwLjAxMTAyLCAwLjAxMTA0NiwgMC4wMTEwNzUsIDAuMDExMDkxLCAwLjAxMTA5OSIsIFwKLSAgICAgICAgICAiMC4wMTA1NDEsIDAuMDEwODEsIDAuMDEwOTI3LCAwLjAxMDk2NSwgMC4wMTEwMTYsIDAuMDExMDM0LCAwLjAxMTA1NiIsIFwKLSAgICAgICAgICAiMC4wMTA1ODgsIDAuMDEwNzczLCAwLjAxMDg4MSwgMC4wMTA5MTUsIDAuMDEwOTc1LCAwLjAxMTAwMywgMC4wMTEwMyIsIFwKLSAgICAgICAgICAiMC4wMTA3OTksIDAuMDEwNzcyLCAwLjAxMDg2MiwgMC4wMTA5MDUsIDAuMDEwOTUzLCAwLjAxMDk4MiwgMC4wMTEwMTIiLCBcCi0gICAgICAgICAgIjAuMDEwOTEzLCAwLjAxMDgyMywgMC4wMTA4NDYsIDAuMDEwODgzLCAwLjAxMDkzMSwgMC4wMTA5NTYsIDAuMDEwOTg3IiwgXAotICAgICAgICAgICIwLjAxMTE3MiwgMC4wMTA4NTEsIDAuMDEwODU1LCAwLjAxMDg3MywgMC4wMTA5MTEsIDAuMDEwOTQzLCAwLjAxMDk2MSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwMDI2LCAwLjAwMDIwMiwgMC4wMDAyMjksIDAuMDAwMjM3LCAwLjAwMDI0NCwgMC4wMDAyNDgsIDAuMDAwMjUyIiwgXAotICAgICAgICAgICIwLjAwMDQ1MiwgMC4wMDAxMTIsIDAuMDAwMjE0LCAwLjAwMDI0NiwgMC4wMDAyNzYsIDAuMDAwMjkxLCAwLjAwMDMwNSIsIFwKLSAgICAgICAgICAiMC4wMDA1OTksIDAuMDAwMDQ4LCAwLjAwMDExNSwgMC4wMDAxNjgsIDAuMDAwMjIzLCAwLjAwMDI1MiwgMC4wMDAyODMiLCBcCi0gICAgICAgICAgIjAuMDAwNDk0LCAwLjAwMDExNSwgMC4wMDAwMzksIDAuMDAwMTEsIDAuMDAwMTc4LCAwLjAwMDIyLCAwLjAwMDI1IiwgXAotICAgICAgICAgICIwLjAwMDI5OSwgMC4wMDAxNTksIDAuMDAwMDA3LCAwLjAwMDA2NiwgMC4wMDAxNDEsIDAuMDAwMiwgMC4wMDAyMzYiLCBcCi0gICAgICAgICAgIjAuMDAwMDQ4LCAwLjAwMDE3NSwgMC4wMDAwNCwgMC4wMDAwMjcsIDAuMDAwMDk4LCAwLjAwMDEzMywgMC4wMDAxODEiLCBcCi0gICAgICAgICAgIjAuMDAwMDc0LCAwLjAwMDAzNywgMC4wMDAwNzQsIDAuMDAwMTE0LCAwLjAwMDE1NiwgMC4wMDAxNzcsIDAuMDAwMjE1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBOT1IzWEwgKgotICogLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChOT1IzWEwpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4wNTY3NTIxOwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA1ODIxMTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA1NzkxOTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA1ODIxMTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxOTUsIDAuMDAwMjA2LCAwLjAwMDIxLCAwLjAwMDIxMiwgMC4wMDAyMTMsIDAuMDAwMjEzLCAwLjAwMDIxNCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDM5OCwgMC4wMDAzOTgsIDAuMDAwMzk4LCAwLjAwMDM5OCwgMC4wMDAzOTgsIDAuMDAwMzk4LCAwLjAwMDM5OCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjM1MTc4OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYzMjUyNzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2MzUxNzg7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMTkzLCAwLjAwMDIxMywgMC4wMDAyMTYsIDAuMDAwMjE3LCAwLjAwMDIxOSwgMC4wMDAyMTksIDAuMDAwMjIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyNDEsIDAuMDAwMjQxLCAwLjAwMDI0MSwgMC4wMDAyNDEsIDAuMDAwMjQxLCAwLjAwMDI0MSwgMC4wMDAyNDEiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEMpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYyOTU4MjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2Mjk1ODI7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjI5NDU5OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDA2LCAwLjAwMDA2LCAwLjAwMDA2LCAwLjAwMDA2LCAwLjAwMDA2LCAwLjAwMDA2LCAwLjAwMDA2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMTg3LCAwLjAwMDE4NywgMC4wMDAxODcsIDAuMDAwMTg3LCAwLjAwMDE4NywgMC4wMDAxODcsIDAuMDAwMTg3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMDUwMTIwMjsKLSAgICBmdW5jdGlvbiA6ICIoISgoQStCKStDKSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIyNTA0OCwgMC4yNjQzMzUsIDAuNjE3OTM2LCAxLjIwNzQxLCAxLjc5NjcsIDMuMTcwNTUsIDMuOTU1MDIiLCBcCi0gICAgICAgICAgIjAuMjMzNDUsIDAuMjcyOTI1LCAwLjYyNzAxLCAxLjIxNjU2LCAxLjgwNDU3LCAzLjE3OTcxLCAzLjk2MzQ0IiwgXAotICAgICAgICAgICIwLjI0MjAwMywgMC4yODEyNTUsIDAuNjM1MTIzLCAxLjIyMzk1LCAxLjgxMzc2LCAzLjE4NzU3LCAzLjk3MTk5IiwgXAotICAgICAgICAgICIwLjI0OTg0NSwgMC4yODkzMDgsIDAuNjQyNzcxLCAxLjIzMjAyLCAxLjgyMTYxLCAzLjE5NjI3LCAzLjk4MDMzIiwgXAotICAgICAgICAgICIwLjI1NzQ3OSwgMC4yOTY5MDMsIDAuNjUwODk5LCAxLjI0MDA3LCAxLjgyOTc4LCAzLjIwMzc5LCAzLjk4ODI3IiwgXAotICAgICAgICAgICIwLjI2OTU3MywgMC4zMDg5MjksIDAuNjYyODgzLCAxLjI1MjE0LCAxLjg0MjU5LCAzLjIxNTk3LCA0LjAwMDI3IiwgXAotICAgICAgICAgICIwLjI4MDMzNSwgMC4zMTk3MzYsIDAuNjczODUyLCAxLjI2Mjk5LCAxLjg1NDE2LCAzLjIyNjk3LCA0LjAxMTAyIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjQzMTMxNCwgMC41MTA2NDIsIDEuMjIzNTIsIDIuNDA0OTEsIDMuNTk3NzUsIDYuMzUyNTUsIDcuOTI5OTQiLCBcCi0gICAgICAgICAgIjAuNDMxOTQyLCAwLjUxMDM5MSwgMS4yMjEwNywgMi40MDUyMiwgMy41OTcwNSwgNi4zNDk1NiwgNy45MjkyNyIsIFwKLSAgICAgICAgICAiMC40MzI1MDYsIDAuNTExNTUxLCAxLjIyMzkzLCAyLjQxMDI0LCAzLjU5Nzg5LCA2LjM1MTU0LCA3LjkyOTc0IiwgXAotICAgICAgICAgICIwLjQzMjQ1MywgMC41MTA0MTcsIDEuMjIxNzcsIDIuNDA1OTQsIDMuNTk3NzEsIDYuMzUwNTMsIDcuOTMwNjIiLCBcCi0gICAgICAgICAgIjAuNDMyMDk3LCAwLjUxMTczMywgMS4yMjM5NSwgMi40MDQ5OSwgMy41OTgxNCwgNi4zNTEwOCwgNy45MjY0MyIsIFwKLSAgICAgICAgICAiMC40MzQ1OTIsIDAuNTEyODg0LCAxLjIyMTM4LCAyLjQxMDQsIDMuNTg5NTcsIDYuMzUwMjEsIDcuOTMwNDQiLCBcCi0gICAgICAgICAgIjAuNDM2ODQ5LCAwLjUxNDQzNiwgMS4yMjM4NSwgMi40MTAyNSwgMy41ODk0NywgNi4zNTE0NiwgNy45Mjk1MiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODMwMDYsIDAuMDk2OTAxLCAwLjIyMTY1MSwgMC40MjkyNDUsIDAuNjM2ODA2LCAxLjEyMDU2LCAxLjM5NzI1IiwgXAotICAgICAgICAgICIwLjA5MzA2NiwgMC4xMDY5NjMsIDAuMjMxNjc1LCAwLjQzOTQ3MywgMC42NDcwNTMsIDEuMTMxMTQsIDEuNDA3OCIsIFwKLSAgICAgICAgICAiMC4xMDU3NTQsIDAuMTE5ODMzLCAwLjI0NDQxMSwgMC40NTEyMjYsIDAuNjU4ODg2LCAxLjE0Mjg1LCAxLjQxOTQxIiwgXAotICAgICAgICAgICIwLjExODQwNSwgMC4xMzIyOTMsIDAuMjU3MDY4LCAwLjQ2NDU1LCAwLjY3MjE4NiwgMS4xNTQzMSwgMS40MzA5IiwgXAotICAgICAgICAgICIwLjEzMTg5LCAwLjE0NTcxOCwgMC4yNjk5MjgsIDAuNDc3MzE2LCAwLjY4NDg2NywgMS4xNjYwNiwgMS40NDMzOSIsIFwKLSAgICAgICAgICAiMC4xNTI2NzksIDAuMTY2NDQsIDAuMjkxMjI4LCAwLjQ5ODkwMywgMC43MDYzNCwgMS4xODkxMiwgMS40NjIzNyIsIFwKLSAgICAgICAgICAiMC4xNzA5NDEsIDAuMTg0NjgzLCAwLjMwODA0OCwgMC41MTU4NTIsIDAuNzIzMDQyLCAxLjIwNzA3LCAxLjQ4MDAzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE1NDgxOCwgMC4xODI1MjYsIDAuNDMxODExLCAwLjg0NzU5MSwgMS4yNjI5NiwgMi4yMzIwNCwgMi43ODY2NyIsIFwKLSAgICAgICAgICAiMC4xNTQ4MTMsIDAuMTgyNTEyLCAwLjQzMjAwNiwgMC44NDc1MjgsIDEuMjYyOTgsIDIuMjMyNDksIDIuNzg2NjUiLCBcCi0gICAgICAgICAgIjAuMTU1OTg3LCAwLjE4MzAyNCwgMC40MzE5MDQsIDAuODQ3NTU0LCAxLjI2MzA2LCAyLjIzMjQ1LCAyLjc4NjU2IiwgXAotICAgICAgICAgICIwLjE1OTkzNCwgMC4xODYxMTksIDAuNDMxNzksIDAuODQ3MjA5LCAxLjI2Mjk5LCAyLjIzMjQ1LCAyLjc4NyIsIFwKLSAgICAgICAgICAiMC4xNjUwMTEsIDAuMTkwNTk3LCAwLjQzMjEzNCwgMC44NDczODYsIDEuMjYzLCAyLjIzMjIzLCAyLjc4Njg5IiwgXAotICAgICAgICAgICIwLjE3NTc2NSwgMC4yMDA0NjMsIDAuNDM1MTQ3LCAwLjg0NzQ1MiwgMS4yNjI4MiwgMi4yMzIyOCwgMi43ODY3NiIsIFwKLSAgICAgICAgICAiMC4xODY1MTksIDAuMjEwMjQsIDAuNDQwNzIzLCAwLjg0NzYzOCwgMS4yNjMxNiwgMi4yMzI4NSwgMi43ODYxNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMjI0NiwgMC4yNjE1MiwgMC42MTU0NzksIDEuMjA0NjEsIDEuNzkzODcsIDMuMTY3MjYsIDMuOTUyMDciLCBcCi0gICAgICAgICAgIjAuMjMwNTg0LCAwLjI3MDA3OSwgMC42MjQxMjUsIDEuMjEzNTksIDEuODAyMjcsIDMuMTc2ODIsIDMuOTYwNTkiLCBcCi0gICAgICAgICAgIjAuMjQwNDc3LCAwLjI3OTc2LCAwLjYzMzYwNiwgMS4yMjI5NSwgMS44MTIzMSwgMy4xODU4MiwgMy45NzAzOSIsIFwKLSAgICAgICAgICAiMC4yNDk5NzIsIDAuMjg5Mzk4LCAwLjY0Mjk2OCwgMS4yMzI4OSwgMS44MjI0LCAzLjE5NTUyLCAzLjk4MDQ4IiwgXAotICAgICAgICAgICIwLjI1OTU5NCwgMC4yOTkwOTEsIDAuNjUyODAyLCAxLjI0MzA2LCAxLjgzMTk1LCAzLjIwNTI0LCAzLjk5MDA5IiwgXAotICAgICAgICAgICIwLjI3NDk2OSwgMC4zMTQ1NDcsIDAuNjY4MzY5LCAxLjI1NzY2LCAxLjg0ODI2LCAzLjIyMTE1LCA0LjAwNTg3IiwgXAotICAgICAgICAgICIwLjI4ODQxOSwgMC4zMjc5ODEsIDAuNjgxODQ0LCAxLjI3MTQ3LCAxLjg2MDQyLCAzLjIzNDU1LCA0LjAxOTM5Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjQzMTUxNCwgMC41MTA1NzUsIDEuMjIxMDMsIDIuNDEwOTEsIDMuNTg5MzksIDYuMzU1MzMsIDcuOTMwODkiLCBcCi0gICAgICAgICAgIjAuNDMyNDA3LCAwLjUxMDQ2NSwgMS4yMjEwOCwgMi40MDUyNCwgMy41ODk0NiwgNi4zNTEyNSwgNy45MzA5NiIsIFwKLSAgICAgICAgICAiMC40MzE1MjIsIDAuNTExNjc2LCAxLjIyNDAyLCAyLjQxMDk0LCAzLjU5ODA2LCA2LjM1Mzc4LCA3LjkyOTk1IiwgXAotICAgICAgICAgICIwLjQzMjE0OCwgMC41MTE1OTQsIDEuMjIzNTEsIDIuNDA0NzksIDMuNTg4NjQsIDYuMzU1ODYsIDcuOTMwNTYiLCBcCi0gICAgICAgICAgIjAuNDMyNzY5LCAwLjUxMTczLCAxLjIyMzU2LCAyLjQwNTI1LCAzLjU4OTMxLCA2LjM1NTQyLCA3LjkzMDMiLCBcCi0gICAgICAgICAgIjAuNDM0NzYsIDAuNTEyNTg5LCAxLjIyMzU1LCAyLjQxMDM1LCAzLjU4OTU1LCA2LjM1MDk0LCA3LjkzMDQ2IiwgXAotICAgICAgICAgICIwLjQzODg2NSwgMC41MTY0MjksIDEuMjIyODEsIDIuNDEwNTQsIDMuNTk2OTgsIDYuMzU1ODEsIDcuOTMwMyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODA5NzEsIDAuMDk0ODExLCAwLjIxOTM0OCwgMC40MjY4NDksIDAuNjM0MjYyLCAxLjExODQyLCAxLjM5NTE0IiwgXAotICAgICAgICAgICIwLjA5MTI0NywgMC4xMDUwODEsIDAuMjI5NTc5LCAwLjQzNzIwOCwgMC42NDQ1NTcsIDEuMTI4NzQsIDEuNDA1NzYiLCBcCi0gICAgICAgICAgIjAuMTAzNzk2LCAwLjExNzY1NCwgMC4yNDIyNjEsIDAuNDQ5MTM2LCAwLjY1NjY3OSwgMS4xNDA4OSwgMS40MTczMyIsIFwKLSAgICAgICAgICAiMC4xMTY0MSwgMC4xMzAyNDksIDAuMjU1MDYyLCAwLjQ2MjI4NiwgMC42NjkyMDcsIDEuMTUyMjEsIDEuNDI4NjUiLCBcCi0gICAgICAgICAgIjAuMTI5Njc3LCAwLjE0MzAxNiwgMC4yNjc5NTEsIDAuNDc1MDM0LCAwLjY4MjU2OCwgMS4xNjM4NSwgMS40NDEwMiIsIFwKLSAgICAgICAgICAiMC4xNTA1MzMsIDAuMTY0MjMxLCAwLjI4ODM1MywgMC40OTU0MjMsIDAuNzAyOTU3LCAxLjE4MzY4LCAxLjQ2MDEzIiwgXAotICAgICAgICAgICIwLjE2ODY2LCAwLjE4MjUzNSwgMC4zMDU2NTksIDAuNTEzNDA4LCAwLjcyMDU0MiwgMS4yMDEzNywgMS40Nzc3NiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNTIyMzksIDAuMTc5OTY0LCAwLjQyOTI2OCwgMC44NDQ5NjksIDEuMjYwNTEsIDIuMjMwMzUsIDIuNzg0NzEiLCBcCi0gICAgICAgICAgIjAuMTUyMjY2LCAwLjE3OTkzNSwgMC40MjkyMjYsIDAuODQ1MDIsIDEuMjYwNTMsIDIuMjI5OTksIDIuNzg0MjciLCBcCi0gICAgICAgICAgIjAuMTUzNDIsIDAuMTgwNDkyLCAwLjQyOTMwNywgMC44NDUwNTMsIDEuMjYwNzUsIDIuMjMwNjYsIDIuNzgzMzUiLCBcCi0gICAgICAgICAgIjAuMTU3NTc1LCAwLjE4Mzc2MSwgMC40MjkyMTcsIDAuODQ1MDE5LCAxLjI2MDU3LCAyLjIzMDM5LCAyLjc4NjIyIiwgXAotICAgICAgICAgICIwLjE2MjkyMiwgMC4xODg3MjQsIDAuNDI5NTQ4LCAwLjg0NDk5NiwgMS4yNjAyNywgMi4yMzAzNSwgMi43ODQ0NiIsIFwKLSAgICAgICAgICAiMC4xNzM2NTcsIDAuMTk4MzM2LCAwLjQzMzA4OCwgMC44NDUwMDcsIDEuMjYwODksIDIuMjMwMjEsIDIuNzgzNyIsIFwKLSAgICAgICAgICAiMC4xODQ3MTEsIDAuMjA4MzY4LCAwLjQzODI3MywgMC44NDUwNzgsIDEuMjYwNDUsIDIuMjMwMDcsIDIuNzgzOTEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjE1NDk0LCAwLjI1NDgyLCAwLjYwODk5NiwgMS4xOTg0MiwgMS43ODcxLCAzLjE2MDgyLCAzLjk0NTM1IiwgXAotICAgICAgICAgICIwLjIyMzg4LCAwLjI2MzI3OSwgMC42MTY5NDcsIDEuMjA2NjQsIDEuNzk1NDcsIDMuMTcwMTksIDMuOTUzOTgiLCBcCi0gICAgICAgICAgIjAuMjM0MzgxLCAwLjI3MzcxNSwgMC42MjczMjUsIDEuMjE2ODcsIDEuODA3NDIsIDMuMTc5NjUsIDMuOTY0NDQiLCBcCi0gICAgICAgICAgIjAuMjQ0NTk3LCAwLjI4NDE0MywgMC42Mzc4MDgsIDEuMjI4MjQsIDEuODE2NzgsIDMuMTkwMjQsIDMuOTc1MTkiLCBcCi0gICAgICAgICAgIjAuMjU1NTEsIDAuMjk0NzQzLCAwLjY0ODgyMSwgMS4yMzg3MSwgMS44Mjc2MSwgMy4yMDA5LCAzLjk4NTcxIiwgXAotICAgICAgICAgICIwLjI3MjU4MiwgMC4zMTE5NzEsIDAuNjY1NjI0LCAxLjI1NDkyLCAxLjg0NTE2LCAzLjIxODA0LCA0LjAwMjkyIiwgXAotICAgICAgICAgICIwLjI4NzY4NiwgMC4zMjY5NiwgMC42ODA0NTQsIDEuMjcwMDQsIDEuODU4ODQsIDMuMjMzLCA0LjAxNzc3Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjQzMjE1MSwgMC41MTA0MzEsIDEuMjIxLCAyLjQwNTI1LCAzLjU5NzgyLCA2LjM1MjcyLCA3LjkyOTkiLCBcCi0gICAgICAgICAgIjAuNDMyMTQ5LCAwLjUxMDY1LCAxLjIyMDg4LCAyLjQwNTUzLCAzLjU5NzU4LCA2LjM1MDE2LCA3LjkzMDk0IiwgXAotICAgICAgICAgICIwLjQzMjQ4OSwgMC41MTA0NDYsIDEuMjIxNTYsIDIuNDEwODQsIDMuNTg5NDMsIDYuMzU0OTYsIDcuOTMwNDkiLCBcCi0gICAgICAgICAgIjAuNDMyMzg4LCAwLjUxMDU3LCAxLjIyMjgyLCAyLjQwNTIxLCAzLjU5MTExLCA2LjM1NjAxLCA3LjkzMDQiLCBcCi0gICAgICAgICAgIjAuNDMzMjcyLCAwLjUxMTI4MiwgMS4yMjM5NSwgMi40MDUyNSwgMy41ODkyOSwgNi4zNTUyLCA3LjkzMDM3IiwgXAotICAgICAgICAgICIwLjQzNjUyMSwgMC41MTQwNzcsIDEuMjIzNTQsIDIuNDEwNDIsIDMuNTg5LCA2LjM1NTgyLCA3LjkzMDM0IiwgXAotICAgICAgICAgICIwLjQ0MjQ0NSwgMC41MTg4NywgMS4yMjI4MSwgMi40MTA3LCAzLjU5NywgNi4zNTU3OSwgNy45MzAzIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3ODUyNCwgMC4wOTIzNTgsIDAuMjE2OTA4LCAwLjQyNDI1NiwgMC42MzE3NjgsIDEuMTE1NiwgMS4zOTIyOSIsIFwKLSAgICAgICAgICAiMC4wODg3ODMsIDAuMTAyNjExLCAwLjIyNzEyOCwgMC40MzQ2MjIsIDAuNjQyMzkzLCAxLjEyNjUsIDEuNDAzMzYiLCBcCi0gICAgICAgICAgIjAuMTAxMzc2LCAwLjExNTM0OCwgMC4yMzk4NzYsIDAuNDQ2NjE0LCAwLjY1NDMyNiwgMS4xMzgyOCwgMS40MTQ4MSIsIFwKLSAgICAgICAgICAiMC4xMTQwODcsIDAuMTI3OTEyLCAwLjI1MjcxNywgMC40NTk5MTQsIDAuNjY2OTQ3LCAxLjE0OTc3LCAxLjQyNjI2IiwgXAotICAgICAgICAgICIwLjEyNzM2OCwgMC4xNDEyOSwgMC4yNjUzNzIsIDAuNDcyNjQ1LCAwLjY4MDE5NCwgMS4xNjE0NywgMS40MzkwMyIsIFwKLSAgICAgICAgICAiMC4xNDgyMzIsIDAuMTYyMDYxLCAwLjI4NTUyOSwgMC40OTMxMjYsIDAuNzAxNzY5LCAxLjE4MTc3LCAxLjQ1ODQzIiwgXAotICAgICAgICAgICIwLjE2NjMyLCAwLjE4MDQ3MiwgMC4zMDM0NTUsIDAuNTExMTkzLCAwLjcxODMxOSwgMS4xOTg5NywgMS40NzU2NSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNTAwOTcsIDAuMTc3OTE0LCAwLjQyNzEwNiwgMC44NDUzOTQsIDEuMjYxNzksIDIuMjM0NDksIDIuNzkyMjkiLCBcCi0gICAgICAgICAgIjAuMTQ5NjM3LCAwLjE3NzcxOSwgMC40MjY4OTcsIDAuODQzMDAyLCAxLjI1ODYxLCAyLjIyOTY1LCAyLjc4MzY5IiwgXAotICAgICAgICAgICIwLjE1MTA0MywgMC4xNzg0NDMsIDAuNDI3NTQyLCAwLjg0NDA1MywgMS4yNTk1MiwgMi4yMjk5OSwgMi43ODUxOSIsIFwKLSAgICAgICAgICAiMC4xNTUyMiwgMC4xODE0NDksIDAuNDI3MDYxLCAwLjg0MjQ2NywgMS4yNjAxOSwgMi4yMjk4OSwgMi43OTAwOCIsIFwKLSAgICAgICAgICAiMC4xNjA3NDcsIDAuMTg2MjU3LCAwLjQyODU1MSwgMC44NDM2MTYsIDEuMjU5OTYsIDIuMjI4NjgsIDIuNzg1NSIsIFwKLSAgICAgICAgICAiMC4xNzE0NTksIDAuMTk2MTMzLCAwLjQzMTQ1MSwgMC44NDQ2OCwgMS4yNTg4OCwgMi4yMzIwMywgMi43ODQ5MSIsIFwKLSAgICAgICAgICAiMC4xODI0MiwgMC4yMDYzODIsIDAuNDM3MzMxLCAwLjg0NDY5NCwgMS4yNjE2MywgMi4yMzUyMiwgMi43ODIzMiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTY2MSwgMC4wMDE2NjEsIDAuMDAxNjYxLCAwLjAwMTY2MiwgMC4wMDE2NjIsIDAuMDAxNjYyLCAwLjAwMTY2MiIsIFwKLSAgICAgICAgICAiMC4wMDE2NTYsIDAuMDAxNjU3LCAwLjAwMTY2LCAwLjAwMTY2MSwgMC4wMDE2NjEsIDAuMDAxNjYyLCAwLjAwMTY2MSIsIFwKLSAgICAgICAgICAiMC4wMDE2NSwgMC4wMDE2NTIsIDAuMDAxNjU3LCAwLjAwMTY2LCAwLjAwMTY2LCAwLjAwMTY2MSwgMC4wMDE2NjEiLCBcCi0gICAgICAgICAgIjAuMDAxNjQ3LCAwLjAwMTY0OCwgMC4wMDE2NTUsIDAuMDAxNjU4LCAwLjAwMTY1OSwgMC4wMDE2NiwgMC4wMDE2NiIsIFwKLSAgICAgICAgICAiMC4wMDE2NDMsIDAuMDAxNjQ1LCAwLjAwMTY1MywgMC4wMDE2NTcsIDAuMDAxNjU5LCAwLjAwMTY2LCAwLjAwMTY2IiwgXAotICAgICAgICAgICIwLjAwMTY0LCAwLjAwMTY0MiwgMC4wMDE2NTEsIDAuMDAxNjU2LCAwLjAwMTY1OCwgMC4wMDE2NiwgMC4wMDE2NiIsIFwKLSAgICAgICAgICAiMC4wMDE2MzgsIDAuMDAxNjQsIDAuMDAxNjQ4LCAwLjAwMTY1NSwgMC4wMDE2NTgsIDAuMDAxNjU5LCAwLjAwMTY1OSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDM5MywgMC4wMDAzOTMsIDAuMDAwMzkzLCAwLjAwMDM5MywgMC4wMDAzOTMsIDAuMDAwMzkzLCAwLjAwMDM5MyIsIFwKLSAgICAgICAgICAiMC4wMDAzNzksIDAuMDAwMzgsIDAuMDAwMzgsIDAuMDAwMzgxLCAwLjAwMDM4MSwgMC4wMDAzOCwgMC4wMDAzOCIsIFwKLSAgICAgICAgICAiMC4wMDAzNzYsIDAuMDAwMzc3LCAwLjAwMDM3OCwgMC4wMDAzNzYsIDAuMDAwMzc3LCAwLjAwMDM3NiwgMC4wMDAzNzciLCBcCi0gICAgICAgICAgIjAuMDAwMzc3LCAwLjAwMDM3NywgMC4wMDAzNzgsIDAuMDAwMzc4LCAwLjAwMDM3OCwgMC4wMDAzNzUsIDAuMDAwMzc1IiwgXAotICAgICAgICAgICIwLjAwMDM3OCwgMC4wMDAzNzgsIDAuMDAwMzc5LCAwLjAwMDM3OCwgMC4wMDAzNzgsIDAuMDAwMzc1LCAwLjAwMDM3NCIsIFwKLSAgICAgICAgICAiMC4wMDAzODUsIDAuMDAwMzg1LCAwLjAwMDM4MSwgMC4wMDAzOCwgMC4wMDAzNzksIDAuMDAwMzc4LCAwLjAwMDM3NSIsIFwKLSAgICAgICAgICAiMC4wMDAzOTIsIDAuMDAwMzkxLCAwLjAwMDM4MiwgMC4wMDAzODEsIDAuMDAwMzc5LCAwLjAwMDM3OCwgMC4wMDAzNzYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDE0NywgMC4wMDE0NywgMC4wMDE0NzEsIDAuMDAxNDcyLCAwLjAwMTQ3MSwgMC4wMDE0NzEsIDAuMDAxNDcyIiwgXAotICAgICAgICAgICIwLjAwMTQ2NSwgMC4wMDE0NjYsIDAuMDAxNDY5LCAwLjAwMTQ3LCAwLjAwMTQ3MSwgMC4wMDE0NywgMC4wMDE0NzEiLCBcCi0gICAgICAgICAgIjAuMDAxNDYsIDAuMDAxNDYxLCAwLjAwMTQ2NywgMC4wMDE0NjksIDAuMDAxNDcsIDAuMDAxNDcxLCAwLjAwMTQ3IiwgXAotICAgICAgICAgICIwLjAwMTQ1NiwgMC4wMDE0NTgsIDAuMDAxNDY1LCAwLjAwMTQ2OCwgMC4wMDE0NjksIDAuMDAxNDcsIDAuMDAxNDciLCBcCi0gICAgICAgICAgIjAuMDAxNDUzLCAwLjAwMTQ1NSwgMC4wMDE0NjMsIDAuMDAxNDY3LCAwLjAwMTQ2OCwgMC4wMDE0NjksIDAuMDAxNDciLCBcCi0gICAgICAgICAgIjAuMDAxNDUsIDAuMDAxNDUyLCAwLjAwMTQ2MSwgMC4wMDE0NjYsIDAuMDAxNDY3LCAwLjAwMTQ2OSwgMC4wMDE0NjkiLCBcCi0gICAgICAgICAgIjAuMDAxNDQ5LCAwLjAwMTQ1MSwgMC4wMDE0NTksIDAuMDAxNDY1LCAwLjAwMTQ2NiwgMC4wMDE0NjcsIDAuMDAxNDY5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwMjI5LCAwLjAwMDIyOSwgMC4wMDAyMjksIDAuMDAwMjI5LCAwLjAwMDIyOSwgMC4wMDAyMjksIDAuMDAwMjI5IiwgXAotICAgICAgICAgICIwLjAwMDIyNCwgMC4wMDAyMjUsIDAuMDAwMjI3LCAwLjAwMDIyOCwgMC4wMDAyMjgsIDAuMDAwMjI4LCAwLjAwMDIyOCIsIFwKLSAgICAgICAgICAiMC4wMDAyMiwgMC4wMDAyMjEsIDAuMDAwMjI2LCAwLjAwMDIyNywgMC4wMDAyMjgsIDAuMDAwMjI4LCAwLjAwMDIyOCIsIFwKLSAgICAgICAgICAiMC4wMDAyMiwgMC4wMDAyMjEsIDAuMDAwMjI1LCAwLjAwMDIyNywgMC4wMDAyMjgsIDAuMDAwMjI4LCAwLjAwMDIyOCIsIFwKLSAgICAgICAgICAiMC4wMDAyMjIsIDAuMDAwMjIyLCAwLjAwMDIyNCwgMC4wMDAyMjcsIDAuMDAwMjI4LCAwLjAwMDIyOCwgMC4wMDAyMjgiLCBcCi0gICAgICAgICAgIjAuMDAwMjI2LCAwLjAwMDIyNiwgMC4wMDAyMjcsIDAuMDAwMjI4LCAwLjAwMDIyOCwgMC4wMDAyMjgsIDAuMDAwMjI4IiwgXAotICAgICAgICAgICIwLjAwMDIzMywgMC4wMDAyMzIsIDAuMDAwMjI5LCAwLjAwMDIyOSwgMC4wMDAyMjksIDAuMDAwMjI5LCAwLjAwMDIyOSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTI3NiwgMC4wMDEyNzYsIDAuMDAxMjc3LCAwLjAwMTI3OCwgMC4wMDEyNzcsIDAuMDAxMjc3LCAwLjAwMTI3OCIsIFwKLSAgICAgICAgICAiMC4wMDEyNjgsIDAuMDAxMjcsIDAuMDAxMjc0LCAwLjAwMTI3NiwgMC4wMDEyNzcsIDAuMDAxMjc1LCAwLjAwMTI3NyIsIFwKLSAgICAgICAgICAiMC4wMDEyNjIsIDAuMDAxMjY0LCAwLjAwMTI3MSwgMC4wMDEyNzQsIDAuMDAxMjc2LCAwLjAwMTI3NiwgMC4wMDEyNzYiLCBcCi0gICAgICAgICAgIjAuMDAxMjU4LCAwLjAwMTI2MSwgMC4wMDEyNjksIDAuMDAxMjczLCAwLjAwMTI3NCwgMC4wMDEyNzYsIDAuMDAxMjc2IiwgXAotICAgICAgICAgICIwLjAwMTI1NywgMC4wMDEyNTksIDAuMDAxMjY3LCAwLjAwMTI3MiwgMC4wMDEyNzMsIDAuMDAxMjc1LCAwLjAwMTI3NiIsIFwKLSAgICAgICAgICAiMC4wMDEyNTgsIDAuMDAxMjU5LCAwLjAwMTI2NiwgMC4wMDEyNzEsIDAuMDAxMjczLCAwLjAwMTI3NSwgMC4wMDEyNzUiLCBcCi0gICAgICAgICAgIjAuMDAxMjYyLCAwLjAwMTI2MywgMC4wMDEyNjcsIDAuMDAxMjcxLCAwLjAwMTI3MywgMC4wMDEyNzMsIDAuMDAxMjc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwMDQxLCAwLjAwMDA0MiwgMC4wMDAwNDMsIDAuMDAwMDQ0LCAwLjAwMDA0NCwgMC4wMDAwNDQsIDAuMDAwMDQ0IiwgXAotICAgICAgICAgICIwLjAwMDA0NiwgMC4wMDAwNDgsIDAuMDAwMDUzLCAwLjAwMDA1NCwgMC4wMDAwNTUsIDAuMDAwMDU2LCAwLjAwMDA1NiIsIFwKLSAgICAgICAgICAiMC4wMDAwNDIsIDAuMDAwMDQ1LCAwLjAwMDA1MiwgMC4wMDAwNTcsIDAuMDAwMDU4LCAwLjAwMDA1OSwgMC4wMDAwNTkiLCBcCi0gICAgICAgICAgIjAuMDAwMDM5LCAwLjAwMDA0MiwgMC4wMDAwNSwgMC4wMDAwNTUsIDAuMDAwMDU3LCAwLjAwMDA2LCAwLjAwMDA2IiwgXAotICAgICAgICAgICIwLjAwMDAzOCwgMC4wMDAwMzksIDAuMDAwMDUsIDAuMDAwMDU1LCAwLjAwMDA1NiwgMC4wMDAwNiwgMC4wMDAwNiIsIFwKLSAgICAgICAgICAiMC4wMDAwMzksIDAuMDAwMDQxLCAwLjAwMDA1LCAwLjAwMDA1NCwgMC4wMDAwNTUsIDAuMDAwMDYsIDAuMDAwMDYiLCBcCi0gICAgICAgICAgIjAuMDAwMDQyLCAwLjAwMDA0NCwgMC4wMDAwNSwgMC4wMDAwNTUsIDAuMDAwMDU2LCAwLjAwMDA2LCAwLjAwMDA2Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogTk9SNEJYMSAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChOT1I0QlgxKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMTU3ODc2OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBTikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNTkzNDE3OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDU5MzE2MTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA1OTM0MTc7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxMTM2LCAwLjAwMTExLCAwLjAwMTExNCwgMC4wMDExMTYsIDAuMDAxMTI2LCAwLjAwMTE1LCAwLjAwMTE3NyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTU4OSwgMC4wMDE1NjYsIDAuMDAxNTYsIDAuMDAxNTY0LCAwLjAwMTU3NSwgMC4wMDE1OTgsIDAuMDAxNjE5Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA4ODM0OTY7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwODc3NzY5OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDg4MzQ5NjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxODksIDAuMDAwMTg5LCAwLjAwMDE4OSwgMC4wMDAxODksIDAuMDAwMTg5LCAwLjAwMDE4OSwgMC4wMDAxODkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAzMjEsIDAuMDAwMzIxLCAwLjAwMDMyLCAwLjAwMDMyLCAwLjAwMDMyLCAwLjAwMDMyLCAwLjAwMDMyIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihDKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA5MDM0NTI7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwODk4NjcxOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDkwMzQ1MjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxNDUsIDAuMDAwMTQ1LCAwLjAwMDE0NSwgMC4wMDAxNDUsIDAuMDAwMTQ1LCAwLjAwMDE0NSwgMC4wMDAxNDUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyMzMsIDAuMDAwMjMzLCAwLjAwMDIzMiwgMC4wMDAyMzIsIDAuMDAwMjMzLCAwLjAwMDIzMiwgMC4wMDAyMzIiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEQpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDk1OTQzOTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA5NTk0Mzk7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwOTU5MzQ7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMTA0LCAwLjAwMDEwNCwgMC4wMDAxMDQsIDAuMDAwMTA0LCAwLjAwMDEwNCwgMC4wMDAxMDQsIDAuMDAwMTA0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjY3LCAwLjAwMDI2NywgMC4wMDAyNjYsIDAuMDAwMjY2LCAwLjAwMDI2NywgMC4wMDAyNjYsIDAuMDAwMjY2Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMDYxMjA3NTsKLSAgICBmdW5jdGlvbiA6ICIoISgoKCghQU4pK0IpK0MpK0QpKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQU4iOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIxMDc1NCwgMC4zMDI2MzIsIDAuODIxODkzLCAxLjI4MDU3LCAxLjg5MTA5LCAzLjExMzA1LCAzLjg3NTM5IiwgXAotICAgICAgICAgICIwLjIyMDk0NSwgMC4zMTI2MjQsIDAuODMyNDU5LCAxLjI5MDM5LCAxLjkwMjM0LCAzLjEyMjM1LCAzLjg4NTM4IiwgXAotICAgICAgICAgICIwLjIzMjM2NiwgMC4zMjM5NzIsIDAuODQzMzI0LCAxLjMwMTg5LCAxLjkxMzk1LCAzLjEzMzgzLCAzLjg5Njg3IiwgXAotICAgICAgICAgICIwLjI0MTUxNCwgMC4zMzMyMDgsIDAuODUyNjE5LCAxLjMxMTIyLCAxLjkyMzU1LCAzLjE0Mzk4LCAzLjkwNTkiLCBcCi0gICAgICAgICAgIjAuMjQ5NDczLCAwLjM0MTIwOSwgMC44NjA1ODYsIDEuMzE5MzIsIDEuOTMwMTMsIDMuMTUxNjQsIDMuOTE0NTgiLCBcCi0gICAgICAgICAgIjAuMjYwMTQ0LCAwLjM1MTg0NSwgMC44NzEzMjgsIDEuMzI5NTMsIDEuOTQwNDUsIDMuMTYyOCwgMy45MjUxNCIsIFwKLSAgICAgICAgICAiMC4yNjgzMDksIDAuMzYwMDg2LCAwLjg4MDEyOCwgMS4zMzc1OSwgMS45NDgzNywgMy4xNzAyNywgMy45MzMxIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjM1NTI3MSwgMC41MzgzNDksIDEuNTc1MTksIDIuNDkwMDQsIDMuNzA4OTMsIDYuMTQxMzcsIDcuNjU4MzEiLCBcCi0gICAgICAgICAgIjAuMzU1MjAyLCAwLjUzODY4MywgMS41NzU1LCAyLjQ4OTY5LCAzLjcwOTgzLCA2LjEzNzI0LCA3LjY1ODA4IiwgXAotICAgICAgICAgICIwLjM1NTgxNiwgMC41Mzc1ODMsIDEuNTczMSwgMi40ODk3MSwgMy43MDk5NywgNi4xMzc0NiwgNy42NTgwOSIsIFwKLSAgICAgICAgICAiMC4zNTU4NTQsIDAuNTM4NzA5LCAxLjU3NTEsIDIuNDg5ODgsIDMuNzAyMTEsIDYuMTQxMzMsIDcuNjU3MzUiLCBcCi0gICAgICAgICAgIjAuMzU1ODI5LCAwLjUzODcwOSwgMS41NzI3NCwgMi40ODk5NSwgMy43MDkwOCwgNi4xMzQxOSwgNy42NTI0NiIsIFwKLSAgICAgICAgICAiMC4zNTU4MzIsIDAuNTM4NjQ2LCAxLjU3NTA4LCAyLjQ4NTUzLCAzLjcwMjQ4LCA2LjE0MTQxLCA3LjY1Nzk3IiwgXAotICAgICAgICAgICIwLjM1NTY2OSwgMC41Mzg2ODgsIDEuNTcxODcsIDIuNDg5NCwgMy43MDUxNywgNi4xMzQxOSwgNy42NTc4NiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzUwOTUsIDAuMTAwMjk3LCAwLjI0MTMwNiwgMC4zNjUyLCAwLjUzMDI1NiwgMC44NjAxNjcsIDEuMDY2NTQiLCBcCi0gICAgICAgICAgIjAuMDg0OTM3LCAwLjExMDEzNSwgMC4yNTExNywgMC4zNzUwNzgsIDAuNTQwMTk0LCAwLjg3MDI1MiwgMS4wNzY3NCIsIFwKLSAgICAgICAgICAiMC4wOTU4MywgMC4xMjEwMjUsIDAuMjYyMDU1LCAwLjM4NjAxLCAwLjU1MTA4NSwgMC44ODExNDQsIDEuMDg3NzQiLCBcCi0gICAgICAgICAgIjAuMTA0ODI0LCAwLjEzMDAwNCwgMC4yNzEwMDksIDAuMzk1MDA4LCAwLjU2MDA3NCwgMC44OTAzMjQsIDEuMDk2MzgiLCBcCi0gICAgICAgICAgIjAuMTEyMjI1LCAwLjEzNzQxOCwgMC4yNzgzOTgsIDAuNDAyMzU1LCAwLjU2NzQ1NywgMC44OTc0NiwgMS4xMDQxMyIsIFwKLSAgICAgICAgICAiMC4xMjI0MDcsIDAuMTQ3Njg3LCAwLjI4ODU0NCwgMC40MTE4NTUsIDAuNTc2OTg2LCAwLjkwNzI0OSwgMS4xMTM2OCIsIFwKLSAgICAgICAgICAiMC4xMzAxODQsIDAuMTU1MjYxLCAwLjI5NjAxMSwgMC40MTk5MTcsIDAuNTg1MTY0LCAwLjkxNDk5LCAxLjEyMTI5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwMzIwNSwgMC4xNTI2OCwgMC40MzQxNjUsIDAuNjgyNTg2LCAxLjAxNDQ5LCAxLjY3NzA0LCAyLjA5MTQ1IiwgXAotICAgICAgICAgICIwLjEwMzE3MSwgMC4xNTI2MTcsIDAuNDM0MzEyLCAwLjY4MjY2NCwgMS4wMTQxMSwgMS42Nzc3OSwgMi4wOTE2OSIsIFwKLSAgICAgICAgICAiMC4xMDMyOTEsIDAuMTUyNzI2LCAwLjQzNDM1LCAwLjY4MjcyNywgMS4wMTQxMiwgMS42Nzc4LCAyLjA5MTc1IiwgXAotICAgICAgICAgICIwLjEwMzYyMywgMC4xNTI4NzcsIDAuNDM0MDg0LCAwLjY4Mjg1NiwgMS4wMTQ2NCwgMS42NzczNCwgMi4wOTIzIiwgXAotICAgICAgICAgICIwLjEwMzkxMiwgMC4xNTMwMjcsIDAuNDM0MTMxLCAwLjY4MzAxNCwgMS4wMTQxMSwgMS42NzY5MiwgMi4wOTE3NSIsIFwKLSAgICAgICAgICAiMC4xMDQ0MTQsIDAuMTUzMzYxLCAwLjQzNDI0OSwgMC42ODI2OTQsIDEuMDE0MSwgMS42NzcwOSwgMi4wOTE2OCIsIFwKLSAgICAgICAgICAiMC4xMDUwNjUsIDAuMTUzNjkxLCAwLjQzNDUxNiwgMC42ODI4NTcsIDEuMDE0NDEsIDEuNjc3MzMsIDIuMDkxODkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTkxNTY4LCAwLjI4MzIwOSwgMC44MDI1NTksIDEuMjYwOTksIDEuODczMDUsIDMuMDkzNjMsIDMuODU2MDQiLCBcCi0gICAgICAgICAgIjAuMTk5OTA3LCAwLjI5MTUzNiwgMC44MTExMzcsIDEuMjcwMjcsIDEuODgwMDIsIDMuMTAyNTMsIDMuODY0MzQiLCBcCi0gICAgICAgICAgIjAuMjA4NTczLCAwLjMwMDUxMiwgMC44MjA1NTQsIDEuMjc5NDEsIDEuODg5NywgMy4xMTE1NiwgMy44NzM0MSIsIFwKLSAgICAgICAgICAiMC4yMTY3NjIsIDAuMzA4NTg0LCAwLjgyODE2NiwgMS4yODY2MiwgMS44OTg2OSwgMy4xMTk5LCAzLjg4MTcxIiwgXAotICAgICAgICAgICIwLjIyNDc4NywgMC4zMTY2MDYsIDAuODM2MjkxLCAxLjI5NDQ5LCAxLjkwNjQ0LCAzLjEyNzEzLCAzLjg5MDA0IiwgXAotICAgICAgICAgICIwLjIzNzU0NywgMC4zMjk0MDUsIDAuODQ5Mjg2LCAxLjMwODc4LCAxLjkyMDQxLCAzLjEzOTkxLCAzLjkwMjk4IiwgXAotICAgICAgICAgICIwLjI0ODY4MywgMC4zNDA1OTEsIDAuODYwNDc4LCAxLjMxOTY0LCAxLjkyOTU1LCAzLjE1MTg1LCAzLjkxNDgyIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjM1NTgzMiwgMC41Mzg2NzUsIDEuNTcyMjgsIDIuNDg5NzMsIDMuNzEsIDYuMTQxMSwgNy42NTgxNyIsIFwKLSAgICAgICAgICAiMC4zNTUxMDUsIDAuNTM4Njk5LCAxLjU3MjM4LCAyLjQ5MDQ1LCAzLjcwODUxLCA2LjE0MTQ2LCA3LjY1NzQ1IiwgXAotICAgICAgICAgICIwLjM1NTE5MywgMC41Mzg4MzEsIDEuNTc1NjQsIDIuNDg1MDYsIDMuNzA5MjYsIDYuMTQxNSwgNy42NTgwNCIsIFwKLSAgICAgICAgICAiMC4zNTU5NjEsIDAuNTM4Njk2LCAxLjU3MzQ0LCAyLjQ4NTUzLCAzLjcwMTYyLCA2LjEzMzM1LCA3LjY1NzAxIiwgXAotICAgICAgICAgICIwLjM1Njg3MSwgMC41Mzg3MTIsIDEuNTc0OTYsIDIuNDg5MzUsIDMuNzA5NDgsIDYuMTM1NTYsIDcuNjU2MTYiLCBcCi0gICAgICAgICAgIjAuMzU5MDU4LCAwLjU0MDA0MSwgMS41NzUxMSwgMi40ODQ3NCwgMy43MDIwMiwgNi4xMzgxNiwgNy42NTY4MiIsIFwKLSAgICAgICAgICAiMC4zNjIxMzUsIDAuNTQyMDg0LCAxLjU3NDk2LCAyLjQ5MDE3LCAzLjcwNDY1LCA2LjE0MDkzLCA3LjY1ODA5Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1NTIyNiwgMC4wODAxNTUsIDAuMjIwNjY2LCAwLjM0NDU4NCwgMC41MDk2ODEsIDAuODM5NzExLCAxLjA0NTc2IiwgXAotICAgICAgICAgICIwLjA2NTI2MywgMC4wOTAyNDUsIDAuMjMwNzc5LCAwLjM1NDUwNywgMC41MTk0NzMsIDAuODQ5NDExLCAxLjA1NTQ2IiwgXAotICAgICAgICAgICIwLjA3ODMxNywgMC4xMDMyNDQsIDAuMjQzNzA5LCAwLjM2NzUzNiwgMC41MzI0NjEsIDAuODYyNjMyLCAxLjA2ODc0IiwgXAotICAgICAgICAgICIwLjA5MTQ3NiwgMC4xMTYxMDcsIDAuMjU2MzYsIDAuMzgwMDE1LCAwLjU0MzU5OSwgMC44NzM1NzcsIDEuMDgwMDUiLCBcCi0gICAgICAgICAgIjAuMTA0MzMxLCAwLjEyOTEzMSwgMC4yNjkyODIsIDAuMzkyNTksIDAuNTU3NzAyLCAwLjg4NzU2NiwgMS4wOTI2IiwgXAotICAgICAgICAgICIwLjEyNDAyLCAwLjE0OTc5MiwgMC4yODk2ODEsIDAuNDEzMTU1LCAwLjU3Nzk1MSwgMC45MDc3MSwgMS4xMTM5MyIsIFwKLSAgICAgICAgICAiMC4xNDAwNTIsIDAuMTY3ODMxLCAwLjMwNjkzOSwgMC40MzEyMTYsIDAuNTk1OTQ4LCAwLjkyNTUyMSwgMS4xMzE2NiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTkzMDksIDAuMTQ4OTkxLCAwLjQzMDcxNCwgMC42Nzk1NTEsIDEuMDEwODksIDEuNjczNzgsIDIuMDg4MTUiLCBcCi0gICAgICAgICAgIjAuMDk5NDEsIDAuMTQ5MDAxLCAwLjQzMDcyMywgMC42NzkzNiwgMS4wMTA3NywgMS42NzQxOSwgMi4wODc4IiwgXAotICAgICAgICAgICIwLjEwMjIxMywgMC4xNTAxNDYsIDAuNDMwODksIDAuNjc5NjI5LCAxLjAxMDY1LCAxLjY3NCwgMi4wODgwOSIsIFwKLSAgICAgICAgICAiMC4xMDc3MDksIDAuMTUzOTk3LCAwLjQzMDY5NiwgMC42Nzk1NiwgMS4wMTA2NCwgMS42NzQyNCwgMi4wODgxNiIsIFwKLSAgICAgICAgICAiMC4xMTQ3MjksIDAuMTU5MzYxLCAwLjQzMDk5OCwgMC42NzkyNjQsIDEuMDEwODcsIDEuNjc0MDMsIDIuMDg3NjQiLCBcCi0gICAgICAgICAgIjAuMTI4MDQ0LCAwLjE3MDM2NSwgMC40MzQzMjksIDAuNjc5MzI4LCAxLjAxMTAxLCAxLjY3MzQsIDIuMDg3NyIsIFwKLSAgICAgICAgICAiMC4xNDAyNSwgMC4xODEyNzIsIDAuNDM5NjQ2LCAwLjY4MDk0MSwgMS4wMTA2OSwgMS42NzM0MiwgMi4wODc2NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xODUyMTEsIDAuMjc3MDQ5LCAwLjc5NjcsIDEuMjU0NjQsIDEuODY2NDksIDMuMDg2NiwgMy44NDk2MiIsIFwKLSAgICAgICAgICAiMC4xOTMyMjIsIDAuMjg1MjIyLCAwLjgwNTA5MSwgMS4yNjI1OSwgMS44NzQwMywgMy4wOTU0MSwgMy44NTg1MiIsIFwKLSAgICAgICAgICAiMC4yMDI3NjYsIDAuMjk0NTg5LCAwLjgxNDgzOSwgMS4yNzM1MSwgMS44ODQzNiwgMy4xMDQ2NiwgMy44Njc2OCIsIFwKLSAgICAgICAgICAiMC4yMTIzMzQsIDAuMzA0MjUzLCAwLjgyMzgxMiwgMS4yODIzNywgMS44OTQwOCwgMy4xMTQ0LCAzLjg3NzQzIiwgXAotICAgICAgICAgICIwLjIyMTk2NywgMC4zMTM5ODgsIDAuODMzNTk0LCAxLjI5MjQ2LCAxLjkwNDYzLCAzLjEyNDE2LCAzLjg4NzIyIiwgXAotICAgICAgICAgICIwLjIzNzEyMSwgMC4zMjkwOTQsIDAuODQ5MDM4LCAxLjMwODA4LCAxLjkxOTQ3LCAzLjEzOTk0LCAzLjkwMjg0IiwgXAotICAgICAgICAgICIwLjI1MDYzOSwgMC4zNDI3MzgsIDAuODYyNzg5LCAxLjMyMTA1LCAxLjkzMTkxLCAzLjE1MzUzLCAzLjkxNjU0Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjM1NTgyNCwgMC41Mzg4NSwgMS41NzU1MiwgMi40ODk3MywgMy43MDk4LCA2LjEzNywgNy42NTgxIiwgXAotICAgICAgICAgICIwLjM1NTgwNCwgMC41MzgzMjcsIDEuNTc1NjUsIDIuNDg5NDMsIDMuNzA5MTUsIDYuMTQwOTQsIDcuNjU4NzQiLCBcCi0gICAgICAgICAgIjAuMzU1NDI2LCAwLjUzODY4OSwgMS41NzU2OCwgMi40ODc3MywgMy43MDk2NiwgNi4xMzY0NCwgNy42NTc0OCIsIFwKLSAgICAgICAgICAiMC4zNTYwNDEsIDAuNTM4NzcyLCAxLjU3NTAxLCAyLjQ4OTc2LCAzLjcwOTY2LCA2LjEzNjY2LCA3LjY1NzExIiwgXAotICAgICAgICAgICIwLjM1NzI4NiwgMC41Mzg4ODIsIDEuNTc1MDksIDIuNDkwMDQsIDMuNzAxNjQsIDYuMTM4MjIsIDcuNjU3ODkiLCBcCi0gICAgICAgICAgIjAuMzYwNTYxLCAwLjUzOTI3OSwgMS41NzQ5OSwgMi40OTAxMiwgMy43MDk3LCA2LjEzNTU1LCA3LjY1NjE1IiwgXAotICAgICAgICAgICIwLjM2NTM4NSwgMC41NDMwNjEsIDEuNTc1MjEsIDIuNDg5NTYsIDMuNzA4NTMsIDYuMTQwNSwgNy42NTgwMSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTMwNDksIDAuMDc3ODQzLCAwLjIxODEzOCwgMC4zNDE4ODMsIDAuNTA2Nzk5LCAwLjgzNjcyLCAxLjA0MzIyIiwgXAotICAgICAgICAgICIwLjA2MzI3LCAwLjA4ODEzNCwgMC4yMjg0MTYsIDAuMzUyMDg5LCAwLjUxNzAxNSwgMC44NDY4NzQsIDEuMDUzMDUiLCBcCi0gICAgICAgICAgIjAuMDc2MzY4LCAwLjEwMTE3MywgMC4yNDExNTYsIDAuMzY0MDEsIDAuNTI4ODg2LCAwLjg1ODg5MywgMS4wNjYxNyIsIFwKLSAgICAgICAgICAiMC4wODk0NzgsIDAuMTEzOTg2LCAwLjI1NDQzNSwgMC4zNzc1NjQsIDAuNTQxMTc0LCAwLjg3MTA3MSwgMS4wNzc1NCIsIFwKLSAgICAgICAgICAiMC4xMDIyNzIsIDAuMTI3MDEzLCAwLjI2NjYzNSwgMC4zOTAxODcsIDAuNTU1MjIzLCAwLjg4NTA4NCwgMS4wOTAxMiIsIFwKLSAgICAgICAgICAiMC4xMjIwNjcsIDAuMTQ3NjA1LCAwLjI4ODA4OCwgMC40MTA3NDYsIDAuNTc1NDYsIDAuOTA1MjM3LCAxLjExMTQ3IiwgXAotICAgICAgICAgICIwLjEzNzE3NCwgMC4xNjU1NiwgMC4zMDQ1ODMsIDAuNDI5OTEsIDAuNTkzNTEyLCAwLjkyMzA2NywgMS4xMjkxOSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTY1ODksIDAuMTQ2NDA5LCAwLjQyODAxOSwgMC42NzY5MDgsIDEuMDA4MzcsIDEuNjcwOSwgMi4wODU0NSIsIFwKLSAgICAgICAgICAiMC4wOTY2OSwgMC4xNDYzMDYsIDAuNDI4MDE4LCAwLjY3NjYyOCwgMS4wMDgwNSwgMS42NzA4NiwgMi4wODQ5NyIsIFwKLSAgICAgICAgICAiMC4wOTk4MjMsIDAuMTQ3NTU2LCAwLjQyODEyNywgMC42NzY2ODUsIDEuMDA4MjgsIDEuNjcwOTUsIDIuMDg1NzUiLCBcCi0gICAgICAgICAgIjAuMTA1NDgzLCAwLjE1MTU4MiwgMC40MjgwMDQsIDAuNjc2NTUzLCAxLjAwODA2LCAxLjY3MTIyLCAyLjA4NTQ0IiwgXAotICAgICAgICAgICIwLjExMjU1NSwgMC4xNTcwMDksIDAuNDI4MzU5LCAwLjY3NjU2OSwgMS4wMDgxOSwgMS42NzEwNiwgMi4wODU3OSIsIFwKLSAgICAgICAgICAiMC4xMjU2MDEsIDAuMTY4MTU1LCAwLjQzMTUxMywgMC42NzY2MjgsIDEuMDA4MTUsIDEuNjcwNywgMi4wODU2NSIsIFwKLSAgICAgICAgICAiMC4xMzgzNjEsIDAuMTc5MzU3LCAwLjQzNzA1OCwgMC42NzgxNTUsIDEuMDA4MjYsIDEuNjcxMTUsIDIuMDg1ODUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTc1NDEzLCAwLjI2NzExMywgMC43ODY2MjQsIDEuMjQ1MzksIDEuODU1ODEsIDMuMDc3MDksIDMuODQwMTEiLCBcCi0gICAgICAgICAgIjAuMTgzMzY4LCAwLjI3NTE0NiwgMC43OTQ2ODYsIDEuMjUzODcsIDEuODY0NjIsIDMuMDg1MTYsIDMuODQ4MTYiLCBcCi0gICAgICAgICAgIjAuMTkzNDUzLCAwLjI4NTM4NiwgMC44MDU1NDIsIDEuMjY0MDgsIDEuODc0NjgsIDMuMDk2LCAzLjg1ODcyIiwgXAotICAgICAgICAgICIwLjIwMzQxOSwgMC4yOTUzMTMsIDAuODE1MDgyLCAxLjI3MzIzLCAxLjg4NDAxLCAzLjEwNjc1LCAzLjg2ODY1IiwgXAotICAgICAgICAgICIwLjIxMzY0MiwgMC4zMDU0NzgsIDAuODI1NTE2LCAxLjI4MzQ0LCAxLjg5NTQ2LCAzLjExNjE5LCAzLjg3OTI3IiwgXAotICAgICAgICAgICIwLjIzMDIwNCwgMC4zMjE5NTcsIDAuODQxNzAzLCAxLjI5OTk4LCAxLjkxMDY5LCAzLjEzMjgsIDMuODk1NzEiLCBcCi0gICAgICAgICAgIjAuMjQ0OTgzLCAwLjMzNjQ2MywgMC44NTYwMDUsIDEuMzE0MzMsIDEuOTI1MTUsIDMuMTQ2NjksIDMuOTA5NzUiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzU1ODEsIDAuNTM4NzAyLCAxLjU3MjM4LCAyLjQ5MDE4LCAzLjcwMjI5LCA2LjEzNTUzLCA3LjY1ODM0IiwgXAotICAgICAgICAgICIwLjM1NTg3MSwgMC41Mzg3MjcsIDEuNTc1MTMsIDIuNDkwMzgsIDMuNzA5NDYsIDYuMTM2MjMsIDcuNjU2ODIiLCBcCi0gICAgICAgICAgIjAuMzU1NTk3LCAwLjUzODczMSwgMS41NzU1NiwgMi40OTAyMywgMy43MDkxNiwgNi4xMzQxMSwgNy42NTc3NSIsIFwKLSAgICAgICAgICAiMC4zNTQ4NywgMC41Mzg2NDUsIDEuNTc1MTEsIDIuNDg3MTQsIDMuNzA4NDMsIDYuMTMzMTcsIDcuNjU1OSIsIFwKLSAgICAgICAgICAiMC4zNTc0NCwgMC41MzczODksIDEuNTc1MywgMi40ODc5NiwgMy43MDk1NSwgNi4xNDA2NCwgNy42NTgyIiwgXAotICAgICAgICAgICIwLjM2MjkzNywgMC41NDAwMTcsIDEuNTc1MTYsIDIuNDg5NTYsIDMuNzA4NDIsIDYuMTMzNjgsIDcuNjU3OTkiLCBcCi0gICAgICAgICAgIjAuMzcwMDI3LCAwLjU0Mzc5MiwgMS41NzQ5OCwgMi40ODk0MSwgMy43MDYyNCwgNi4xNDAxMywgNy42NTc5MyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTA2OTksIDAuMDc1NDQ0LCAwLjIxNTY3OSwgMC4zMzkzMTksIDAuNTA0MjYxLCAwLjgzNDA3LCAxLjA0MDU5IiwgXAotICAgICAgICAgICIwLjA2MDk3NSwgMC4wODU3NDUsIDAuMjI1NzM4LCAwLjM0OTU1OSwgMC41MTQ0NzMsIDAuODQ0MTM3LCAxLjA1MDI5IiwgXAotICAgICAgICAgICIwLjA3MzkwNCwgMC4wOTg0MjEsIDAuMjM4NjgsIDAuMzYyNDYsIDAuNTI2NDAxLCAwLjg1NjQwNCwgMS4wNjIyNCIsIFwKLSAgICAgICAgICAiMC4wODY4NjIsIDAuMTExNjY3LCAwLjI1MTU4NiwgMC4zNzUyMDIsIDAuNTM4OTkzLCAwLjg2ODc0OCwgMS4wNzUwMSIsIFwKLSAgICAgICAgICAiMC4wOTk2NjYsIDAuMTI0NTEsIDAuMjY0MzYyLCAwLjM4Nzg5MSwgMC41NTMwMDYsIDAuODgyNjU0LCAxLjA4Nzc3IiwgXAotICAgICAgICAgICIwLjExOTEsIDAuMTQ1NTE0LCAwLjI4NDQ4LCAwLjQwODU1MywgMC41NzMxNTUsIDAuOTAyODY4LCAxLjEwOTA4IiwgXAotICAgICAgICAgICIwLjEzMzU3OSwgMC4xNjMyOTQsIDAuMzAyNDY4LCAwLjQyNzQ2MSwgMC41OTE0NDcsIDAuOTIwNzA5LCAxLjEyNjg2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5NDI4NywgMC4xNDQxODksIDAuNDI2MjcxLCAwLjY3NDQ0NCwgMS4wMDU4NSwgMS42NzQzNCwgMi4wODQ3MSIsIFwKLSAgICAgICAgICAiMC4wOTQ0MjksIDAuMTQzOTYsIDAuNDI3MDIyLCAwLjY3NDY5NiwgMS4wMDY2NywgMS42Njk2NywgMi4wODM1NSIsIFwKLSAgICAgICAgICAiMC4wOTc3NzgsIDAuMTQ1NjM4LCAwLjQyNjk2OSwgMC42NzQ5MjgsIDEuMDA1OTUsIDEuNjcxNzQsIDIuMDg0MzQiLCBcCi0gICAgICAgICAgIjAuMTAzNTU4LCAwLjE0OTQ5OCwgMC40MjYxMTEsIDAuNjc1MjY4LCAxLjAwNjkxLCAxLjY2OTQ4LCAyLjA4Njg4IiwgXAotICAgICAgICAgICIwLjExMDUwNCwgMC4xNTUyMzUsIDAuNDI2MDU4LCAwLjY3NDk4OSwgMS4wMDcyNCwgMS42NzI1OSwgMi4wODM1OSIsIFwKLSAgICAgICAgICAiMC4xMjQxNjUsIDAuMTY2MTc3LCAwLjQzMDAzMiwgMC42NzY1OTcsIDEuMDA2MjgsIDEuNjY5NTMsIDIuMDg1MDEiLCBcCi0gICAgICAgICAgIjAuMTM3OTgyLCAwLjE3NzA1LCAwLjQzNDcwMywgMC42NzY2MzgsIDEuMDA2NCwgMS42Njk0OCwgMi4wODM4NiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkFOIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDMyOTMsIDAuMDAzMjk0LCAwLjAwMzI5NSwgMC4wMDMyOTUsIDAuMDAzMjk1LCAwLjAwMzI5NCwgMC4wMDMyOTQiLCBcCi0gICAgICAgICAgIjAuMDAzMjY4LCAwLjAwMzI3LCAwLjAwMzI3MiwgMC4wMDMyNzIsIDAuMDAzMjcxLCAwLjAwMzI3MywgMC4wMDMyNzMiLCBcCi0gICAgICAgICAgIjAuMDAzMjY3LCAwLjAwMzI3LCAwLjAwMzI3MywgMC4wMDMyNzQsIDAuMDAzMjc0LCAwLjAwMzI3NCwgMC4wMDMyNzQiLCBcCi0gICAgICAgICAgIjAuMDAzMjc4LCAwLjAwMzI4MSwgMC4wMDMyODYsIDAuMDAzMjg3LCAwLjAwMzI4OSwgMC4wMDMyODcsIDAuMDAzMjg5IiwgXAotICAgICAgICAgICIwLjAwMzI3NywgMC4wMDMyODEsIDAuMDAzMjg2LCAwLjAwMzI4NywgMC4wMDMyODgsIDAuMDAzMjksIDAuMDAzMjg4IiwgXAotICAgICAgICAgICIwLjAwMzI5OSwgMC4wMDMzMDYsIDAuMDAzMzEsIDAuMDAzMzEzLCAwLjAwMzMxMiwgMC4wMDMzMTIsIDAuMDAzMzE1IiwgXAotICAgICAgICAgICIwLjAwMzMyMSwgMC4wMDMzMjYsIDAuMDAzMzMzLCAwLjAwMzMzLCAwLjAwMzMzMywgMC4wMDMzMzYsIDAuMDAzMzM0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyOTcsIDAuMDAyOTcsIDAuMDAyOTcsIDAuMDAyOTcsIDAuMDAyOTcsIDAuMDAyOTY5LCAwLjAwMjk2OSIsIFwKLSAgICAgICAgICAiMC4wMDI5NDUsIDAuMDAyOTQ1LCAwLjAwMjk0NiwgMC4wMDI5NDYsIDAuMDAyOTQ1LCAwLjAwMjk0NSwgMC4wMDI5NDUiLCBcCi0gICAgICAgICAgIjAuMDAyOTQsIDAuMDAyOTQxLCAwLjAwMjk0MiwgMC4wMDI5NDIsIDAuMDAyOTQyLCAwLjAwMjk0MSwgMC4wMDI5NDEiLCBcCi0gICAgICAgICAgIjAuMDAyOTQsIDAuMDAyOTQxLCAwLjAwMjk0MSwgMC4wMDI5NDIsIDAuMDAyOTQyLCAwLjAwMjk0MiwgMC4wMDI5NDEiLCBcCi0gICAgICAgICAgIjAuMDAyOTUyLCAwLjAwMjk1MywgMC4wMDI5NTQsIDAuMDAyOTU0LCAwLjAwMjk1NCwgMC4wMDI5NTMsIDAuMDAyOTU0IiwgXAotICAgICAgICAgICIwLjAwMjk3MywgMC4wMDI5NzMsIDAuMDAyOTc0LCAwLjAwMjk2OCwgMC4wMDI5NjksIDAuMDAyOTY4LCAwLjAwMjk2OCIsIFwKLSAgICAgICAgICAiMC4wMDI5OSwgMC4wMDI5OSwgMC4wMDI5OTIsIDAuMDAyOTkyLCAwLjAwMjk5NCwgMC4wMDI5OTQsIDAuMDAyOTk0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyODk1LCAwLjAwMjg5NiwgMC4wMDI4OTgsIDAuMDAyODk5LCAwLjAwMjg5OCwgMC4wMDI4OTgsIDAuMDAyODk4IiwgXAotICAgICAgICAgICIwLjAwMjg4MiwgMC4wMDI4ODcsIDAuMDAyODk1LCAwLjAwMjg5NiwgMC4wMDI4OTYsIDAuMDAyODk4LCAwLjAwMjg5NyIsIFwKLSAgICAgICAgICAiMC4wMDI4NywgMC4wMDI4NzcsIDAuMDAyODg5LCAwLjAwMjg5NCwgMC4wMDI4OTUsIDAuMDAyODk2LCAwLjAwMjg5NyIsIFwKLSAgICAgICAgICAiMC4wMDI4NjEsIDAuMDAyODcsIDAuMDAyODg3LCAwLjAwMjg5LCAwLjAwMjg5MiwgMC4wMDI4OTUsIDAuMDAyODk2IiwgXAotICAgICAgICAgICIwLjAwMjg1NSwgMC4wMDI4NjQsIDAuMDAyODg0LCAwLjAwMjg4OCwgMC4wMDI4OTEsIDAuMDAyODk0LCAwLjAwMjg5NSIsIFwKLSAgICAgICAgICAiMC4wMDI4NDksIDAuMDAyODU3LCAwLjAwMjg3OSwgMC4wMDI4ODUsIDAuMDAyODg4LCAwLjAwMjg5MywgMC4wMDI4OTQiLCBcCi0gICAgICAgICAgIjAuMDAyODQ2LCAwLjAwMjg1NCwgMC4wMDI4NzUsIDAuMDAyODgyLCAwLjAwMjg4NiwgMC4wMDI4OTEsIDAuMDAyODkzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwNTk5LCAwLjAwMDU5OSwgMC4wMDA1OTksIDAuMDAwNTk5LCAwLjAwMDU5OSwgMC4wMDA1OTgsIDAuMDAwNTk4IiwgXAotICAgICAgICAgICIwLjAwMDU3OCwgMC4wMDA1OCwgMC4wMDA1ODMsIDAuMDAwNTg0LCAwLjAwMDU4NCwgMC4wMDA1ODQsIDAuMDAwNTg0IiwgXAotICAgICAgICAgICIwLjAwMDU2OCwgMC4wMDA1NzMsIDAuMDAwNTc5LCAwLjAwMDU4LCAwLjAwMDU4MSwgMC4wMDA1ODEsIDAuMDAwNTgxIiwgXAotICAgICAgICAgICIwLjAwMDU2NywgMC4wMDA1NywgMC4wMDA1NzcsIDAuMDAwNTc4LCAwLjAwMDU3NywgMC4wMDA1NzgsIDAuMDAwNTc4IiwgXAotICAgICAgICAgICIwLjAwMDU2NiwgMC4wMDA1NywgMC4wMDA1NzYsIDAuMDAwNTc5LCAwLjAwMDU4LCAwLjAwMDU4LCAwLjAwMDU3OSIsIFwKLSAgICAgICAgICAiMC4wMDA1ODMsIDAuMDAwNTgzLCAwLjAwMDU4MSwgMC4wMDA1OCwgMC4wMDA1OCwgMC4wMDA1OCwgMC4wMDA1OCIsIFwKLSAgICAgICAgICAiMC4wMDA1OTIsIDAuMDAwNTk0LCAwLjAwMDU4NCwgMC4wMDA1ODQsIDAuMDAwNTgyLCAwLjAwMDU4MSwgMC4wMDA1ODEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI1NTksIDAuMDAyNTYsIDAuMDAyNTYyLCAwLjAwMjU2MiwgMC4wMDI1NjIsIDAuMDAyNTYyLCAwLjAwMjU2MiIsIFwKLSAgICAgICAgICAiMC4wMDI1NDUsIDAuMDAyNTUsIDAuMDAyNTU4LCAwLjAwMjU1OSwgMC4wMDI1NiwgMC4wMDI1NjEsIDAuMDAyNTU5IiwgXAotICAgICAgICAgICIwLjAwMjUzMywgMC4wMDI1NDEsIDAuMDAyNTU0LCAwLjAwMjU1NywgMC4wMDI1NTksIDAuMDAyNTYsIDAuMDAyNTY0IiwgXAotICAgICAgICAgICIwLjAwMjUyNSwgMC4wMDI1MzQsIDAuMDAyNTUxLCAwLjAwMjU1NSwgMC4wMDI1NTcsIDAuMDAyNTU4LCAwLjAwMjU1OSIsIFwKLSAgICAgICAgICAiMC4wMDI1MTksIDAuMDAyNTI4LCAwLjAwMjU0NywgMC4wMDI1NTIsIDAuMDAyNTU1LCAwLjAwMjU1OCwgMC4wMDI1NiIsIFwKLSAgICAgICAgICAiMC4wMDI1MTQsIDAuMDAyNTIyLCAwLjAwMjU0MiwgMC4wMDI1NDgsIDAuMDAyNTUyLCAwLjAwMjU1NSwgMC4wMDI1NTYiLCBcCi0gICAgICAgICAgIjAuMDAyNTEzLCAwLjAwMjUyLCAwLjAwMjU0LCAwLjAwMjU0NiwgMC4wMDI1NTIsIDAuMDAyNTU1LCAwLjAwMjU1NSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDI5NSwgMC4wMDAyOTYsIDAuMDAwMjk3LCAwLjAwMDI5NywgMC4wMDAyOTcsIDAuMDAwMjk3LCAwLjAwMDI5NyIsIFwKLSAgICAgICAgICAiMC4wMDAyOTcsIDAuMDAwMzAyLCAwLjAwMDMwOCwgMC4wMDAzMDksIDAuMDAwMzEsIDAuMDAwMzEsIDAuMDAwMzEiLCBcCi0gICAgICAgICAgIjAuMDAwMjg5LCAwLjAwMDI5NywgMC4wMDAzMDgsIDAuMDAwMzEyLCAwLjAwMDMxMywgMC4wMDAzMTQsIDAuMDAwMzEzIiwgXAotICAgICAgICAgICIwLjAwMDI4NSwgMC4wMDAyOTMsIDAuMDAwMzA3LCAwLjAwMDMxLCAwLjAwMDMxMywgMC4wMDAzMTQsIDAuMDAwMzE1IiwgXAotICAgICAgICAgICIwLjAwMDI4MywgMC4wMDAyOTEsIDAuMDAwMzA5LCAwLjAwMDMxMSwgMC4wMDAzMTIsIDAuMDAwMzE0LCAwLjAwMDMxNSIsIFwKLSAgICAgICAgICAiMC4wMDAyODcsIDAuMDAwMzAyLCAwLjAwMDMwNywgMC4wMDAzMTIsIDAuMDAwMzEzLCAwLjAwMDMxNCwgMC4wMDAzMTQiLCBcCi0gICAgICAgICAgIjAuMDAwMzA1LCAwLjAwMDMxMiwgMC4wMDAzMTMsIDAuMDAwMzEzLCAwLjAwMDMxNSwgMC4wMDAzMTUsIDAuMDAwMzE1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyMjIxLCAwLjAwMjIyMywgMC4wMDIyMjUsIDAuMDAyMjI1LCAwLjAwMjIyNSwgMC4wMDIyMjYsIDAuMDAyMjI2IiwgXAotICAgICAgICAgICIwLjAwMjIsIDAuMDAyMjA4LCAwLjAwMjIxOSwgMC4wMDIyMjIsIDAuMDAyMjIzLCAwLjAwMjIyNSwgMC4wMDIyMjQiLCBcCi0gICAgICAgICAgIjAuMDAyMTg1LCAwLjAwMjE5NiwgMC4wMDIyMTQsIDAuMDAyMjE4LCAwLjAwMjIyLCAwLjAwMjIyMiwgMC4wMDIyMjMiLCBcCi0gICAgICAgICAgIjAuMDAyMTc4LCAwLjAwMjE4OCwgMC4wMDIyMDksIDAuMDAyMjE1LCAwLjAwMjIxOCwgMC4wMDIyMjEsIDAuMDAyMjIyIiwgXAotICAgICAgICAgICIwLjAwMjE3NiwgMC4wMDIxODQsIDAuMDAyMjA2LCAwLjAwMjIxMiwgMC4wMDIyMTYsIDAuMDAyMjE5LCAwLjAwMjIyNCIsIFwKLSAgICAgICAgICAiMC4wMDIxOCwgMC4wMDIxODQsIDAuMDAyMjAzLCAwLjAwMjIwOSwgMC4wMDIyMTUsIDAuMDAyMjE4LCAwLjAwMjIyIiwgXAotICAgICAgICAgICIwLjAwMjE4OSwgMC4wMDIxODksIDAuMDAyMjAxLCAwLjAwMjIwNywgMC4wMDIyMTMsIDAuMDAyMjE3LCAwLjAwMjIxOCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDAxLCAwLjAwMDAxMywgMC4wMDAwMTYsIDAuMDAwMDE2LCAwLjAwMDAxNywgMC4wMDAwMTcsIDAuMDAwMDE3IiwgXAotICAgICAgICAgICIwLjAwMDAxOSwgMC4wMDAwMjgsIDAuMDAwMDQxLCAwLjAwMDA0NCwgMC4wMDAwNDUsIDAuMDAwMDQ2LCAwLjAwMDA0NiIsIFwKLSAgICAgICAgICAiMC4wMDAwMTEsIDAuMDAwMDIzLCAwLjAwMDA0MSwgMC4wMDAwNDUsIDAuMDAwMDUxLCAwLjAwMDA1MywgMC4wMDAwNTQiLCBcCi0gICAgICAgICAgIjAuMDAwMDA2LCAwLjAwMDAxNiwgMC4wMDAwMzksIDAuMDAwMDQ1LCAwLjAwMDA1MSwgMC4wMDAwNTMsIDAuMDAwMDU0IiwgXAotICAgICAgICAgICIwLjAwMDAwMywgMC4wMDAwMTcsIDAuMDAwMDM5LCAwLjAwMDA0NSwgMC4wMDAwNDgsIDAuMDAwMDUxLCAwLjAwMDA1MyIsIFwKLSAgICAgICAgICAiMC4wMDAwMDQsIDAuMDAwMDE3LCAwLjAwMDAzOSwgMC4wMDAwNDMsIDAuMDAwMDQ4LCAwLjAwMDA1MSwgMC4wMDAwNTIiLCBcCi0gICAgICAgICAgIjAuMDAwMDExLCAwLjAwMDAyLCAwLjAwMDAzOSwgMC4wMDAwNDUsIDAuMDAwMDQ4LCAwLjAwMDA1MiwgMC4wMDAwNTMiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IE5PUjRYOCAqCi0gKiAtLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKE5PUjRYOCkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAxLjA4MjQxOwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDU4MDI5NzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDU3NDY0MTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDU4MDI5NzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDI2MzgsIDAuMDAyODA2LCAwLjAwMjg5NiwgMC4wMDI5MjgsIDAuMDAyOTUyLCAwLjAwMzAwNSwgMC4wMDMwMjkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMTA3MzcsIDAuMDEwNzQxLCAwLjAxMDc0MiwgMC4wMTA3NDMsIDAuMDEwNzQzLCAwLjAxMDc0MywgMC4wMTA3NDQiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwNTU4MTQ2OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwNTUzMDY1OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwNTU4MTQ2OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjU2NiwgMC4wMDI3NjcsIDAuMDAyODksIDAuMDAyOTQ5LCAwLjAwMjk3OSwgMC4wMDI5OTcsIDAuMDAzMDE4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA3MjIxLCAwLjAwNzIyMywgMC4wMDcyMjQsIDAuMDA3MjI1LCAwLjAwNzIyNiwgMC4wMDcyMjUsIDAuMDA3MjI2Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihDKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDU3OTgxNTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDU3NTI5MTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDU3OTgxNTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDI2NCwgMC4wMDI5MTIsIDAuMDAzMDAzLCAwLjAwMzA0MSwgMC4wMDMwNTksIDAuMDAzMDcsIDAuMDAzMDc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzNTQ0LCAwLjAwMzU0NiwgMC4wMDM1NDcsIDAuMDAzNTQ3LCAwLjAwMzU0OCwgMC4wMDM1NDcsIDAuMDAzNTQ4Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihEKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDU4MTcyNjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDU4MTY0ODsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDU4MTcyNjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA3MzgsIDAuMDAwNzM4LCAwLjAwMDczOCwgMC4wMDA3MzgsIDAuMDAwNzM4LCAwLjAwMDczOCwgMC4wMDA3MzgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDI2NDgsIDAuMDAyNjQ5LCAwLjAwMjY0OSwgMC4wMDI2NDgsIDAuMDAyNjQ5LCAwLjAwMjY0NywgMC4wMDI2NDgiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC41NDExMTc7Ci0gICAgZnVuY3Rpb24gOiAiKCEoKChBK0IpK0MpK0QpKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjUzOSwgMC4yMDg2NjQsIDAuMzUxNDM4LCAwLjQ1MzUzMywgMC42MTc0MTQsIDAuNzYwNDYxLCAwLjk2NDE0MiIsIFwKLSAgICAgICAgICAiMC4wNzM2MjYsIDAuMjE3MzAyLCAwLjM2MDYwOSwgMC40NjIzODUsIDAuNjI1OTU2LCAwLjc2ODY4OCwgMC45NzI0MDQiLCBcCi0gICAgICAgICAgIjAuMDgyMzUsIDAuMjI2MTA3LCAwLjM2OTE2NCwgMC40NzEzMDIsIDAuNjM0ODU5LCAwLjc3NzYzOCwgMC45ODIxMjEiLCBcCi0gICAgICAgICAgIjAuMDkwMTg2LCAwLjIzMzkwOCwgMC4zNzcwMjEsIDAuNDc5MTUyLCAwLjY0MjUzNywgMC43ODU3ODcsIDAuOTg5NzA0IiwgXAotICAgICAgICAgICIwLjA5NzMwMSwgMC4yNDEwNjIsIDAuMzg0MjI0LCAwLjQ4NjM1OCwgMC42NTAwNTYsIDAuNzkyNzUxLCAwLjk5Njg5NSIsIFwKLSAgICAgICAgICAiMC4xMDY5NjQsIDAuMjUxOTM2LCAwLjM5NTE0MSwgMC40OTczNiwgMC42NjA3NjMsIDAuODAzNjY1LCAxLjAwODE4IiwgXAotICAgICAgICAgICIwLjExNDU1OSwgMC4yNjExNzMsIDAuNDA0NDI5LCAwLjUwNjQ4MiwgMC42Njk5ODMsIDAuODEyODMxLCAxLjAxNzA0Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDkwMDk3LCAwLjM3NjIxMywgMC42NjE2NDEsIDAuODY1NDU2LCAxLjE5MTg2LCAxLjQ4MDc2LCAxLjg4OTI3IiwgXAotICAgICAgICAgICIwLjA5MDExNSwgMC4zNzU1MjQsIDAuNjYyNjk1LCAwLjg2NjAwMywgMS4xOTQxNiwgMS40ODAyMywgMS44ODc3OCIsIFwKLSAgICAgICAgICAiMC4wOTA0MDYsIDAuMzc2MjUxLCAwLjY2MTM2NCwgMC44NjY4NTYsIDEuMTk0MTQsIDEuNDc3NzgsIDEuODg5NDMiLCBcCi0gICAgICAgICAgIjAuMDkxNTA4LCAwLjM3NjI2NiwgMC42NjI0MzIsIDAuODY2ODQ0LCAxLjE5Mzk1LCAxLjQ4MDQ2LCAxLjg4NTk5IiwgXAotICAgICAgICAgICIwLjA5MzA3LCAwLjM3NjQ4MywgMC42NjIzNzUsIDAuODY1NTksIDEuMTk0MTYsIDEuNDc4MjksIDEuODg2OTIiLCBcCi0gICAgICAgICAgIjAuMDk2NzM5LCAwLjM3NzA5NywgMC42NjI2NDcsIDAuODY2ODg3LCAxLjE5Mzk3LCAxLjQ3NzQxLCAxLjg4OTMiLCBcCi0gICAgICAgICAgIjAuMTAwNzA5LCAwLjM3ODk0NCwgMC42NjM1NjcsIDAuODY1OCwgMS4xOTM4NywgMS40Nzg1LCAxLjg4ODk2Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE4NzU3LCAwLjA1OTkyNywgMC4wOTg3NzIsIDAuMTI2MjcyLCAwLjE3MDA2MSwgMC4yMDgyNzMsIDAuMjYyODAzIiwgXAotICAgICAgICAgICIwLjAyOTM0MywgMC4wNzAxMzEsIDAuMTA4OTgsIDAuMTM2NDU2LCAwLjE4MDI2NCwgMC4yMTg0NzcsIDAuMjczMDIiLCBcCi0gICAgICAgICAgIjAuMDQyMzk5LCAwLjA4Mjk2OSwgMC4xMjE1MTMsIDAuMTQ4OTg4LCAwLjE5Mjc2NywgMC4yMzA5OTQsIDAuMjg1NTE5IiwgXAotICAgICAgICAgICIwLjA1MzAwNiwgMC4wOTU5NzgsIDAuMTM0ODI2LCAwLjE2MTczNiwgMC4yMDU1MSwgMC4yNDM3MzcsIDAuMjk4MjczIiwgXAotICAgICAgICAgICIwLjA2MjEzMywgMC4xMDkwMjEsIDAuMTQ3NjQzLCAwLjE3NDQ3OCwgMC4yMTgyMzEsIDAuMjU2NDM4LCAwLjMxMDY3NiIsIFwKLSAgICAgICAgICAiMC4wNzQ2NzUsIDAuMTI5MzgzLCAwLjE2ODMzNywgMC4xOTU2MDMsIDAuMjM4NjAxLCAwLjI3NjczMywgMC4zMzEyMzUiLCBcCi0gICAgICAgICAgIjAuMDg0MDM3LCAwLjE0NjEyNywgMC4xODY5NTcsIDAuMjE0Mjg0LCAwLjI1Nzg3MiwgMC4yOTU4NzYsIDAuMzQ5NDE2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDMwNjc4LCAwLjEwODYzMSwgMC4xODU4NDcsIDAuMjQwODI2LCAwLjMyODk3NSwgMC40MDYxMzUsIDAuNTE2NzMzIiwgXAotICAgICAgICAgICIwLjAzMjkwNCwgMC4xMDg0MiwgMC4xODU2NjIsIDAuMjQwNzQyLCAwLjMyODk0LCAwLjQwNjIwNSwgMC41MTY1MjciLCBcCi0gICAgICAgICAgIjAuMDQwMDQ2LCAwLjExMDg5OCwgMC4xODU5NjksIDAuMjQwODUzLCAwLjMyOTE2NCwgMC40MDYxNjEsIDAuNTE2NTY5IiwgXAotICAgICAgICAgICIwLjA0ODc4LCAwLjExNTg3OSwgMC4xODg2NDEsIDAuMjQyMjkzLCAwLjMyOTEzOSwgMC40MDYxNTgsIDAuNTE2Mzk5IiwgXAotICAgICAgICAgICIwLjA1NzIxNywgMC4xMjI1MzIsIDAuMTkzMTcxLCAwLjI0NTUyOSwgMC4zMzA4NCwgMC40MDY5NjEsIDAuNTE2MzU2IiwgXAotICAgICAgICAgICIwLjA2OTUyLCAwLjEzNTAzNiwgMC4yMDI1NDEsIDAuMjUzMTM0LCAwLjMzNjU3NiwgMC40MTA0OTcsIDAuNTE4MTI0IiwgXAotICAgICAgICAgICIwLjA3OTk0MywgMC4xNDY1OTEsIDAuMjExODI1LCAwLjI2MTEzNSwgMC4zNDI1MzksIDAuNDE1MzkyLCAwLjUyMTYyMyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2MTE5OSwgMC4yMDQ0MjksIDAuMzQ3MzYzLCAwLjQ0OTM0NiwgMC42MTI2MTksIDAuNzU1MTUsIDAuOTYwNTk1IiwgXAotICAgICAgICAgICIwLjA2OTIzNiwgMC4yMTI5MDMsIDAuMzU2MDQ3LCAwLjQ1ODAzNiwgMC42MjE1NjMsIDAuNzY0MzM5LCAwLjk2ODg2OSIsIFwKLSAgICAgICAgICAiMC4wNzgzNCwgMC4yMjIxNjQsIDAuMzY1MTU2LCAwLjQ2NzMsIDAuNjMwODgyLCAwLjc3MzczNSwgMC45Nzc5NCIsIFwKLSAgICAgICAgICAiMC4wODY3MSwgMC4yMzAzOTgsIDAuMzczNjE5LCAwLjQ3NTc0NCwgMC42MzkxMDMsIDAuNzgyMDM4LCAwLjk4NjI2OSIsIFwKLSAgICAgICAgICAiMC4wOTQ0NjYsIDAuMjM4NTEsIDAuMzgxNzk2LCAwLjQ4MzgzNCwgMC42NDc1MiwgMC43OTA5MDgsIDAuOTk0MzQzIiwgXAotICAgICAgICAgICIwLjEwNTMxOCwgMC4yNTEyNzQsIDAuMzk0NDYsIDAuNDk2NjYyLCAwLjY2MDA5NSwgMC44MDMwOTEsIDEuMDA3MjMiLCBcCi0gICAgICAgICAgIjAuMTEzODUsIDAuMjYyMjU2LCAwLjQwNTQ4MSwgMC41MDc2MjQsIDAuNjcxMTA0LCAwLjgxNDA1OSwgMS4wMTg0MyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5MDA5MywgMC4zNzU2ODEsIDAuNjYxNjgsIDAuODY1NTQ0LCAxLjE5MjE4LCAxLjQ3NjgyLCAxLjg4OTg2IiwgXAotICAgICAgICAgICIwLjA5MDI3NywgMC4zNzYyMDQsIDAuNjYwNzgxLCAwLjg2Njg0OSwgMS4xOTQxNCwgMS40Nzc4MSwgMS44ODk1IiwgXAotICAgICAgICAgICIwLjA5MDg0OSwgMC4zNzYzMDcsIDAuNjYxNDIyLCAwLjg2Njg1NywgMS4xOTQxNiwgMS40Nzc2LCAxLjg4OTI3IiwgXAotICAgICAgICAgICIwLjA5MjY0NSwgMC4zNzYyMzcsIDAuNjYyNDY4LCAwLjg2Njg3NiwgMS4xOTM5NiwgMS40ODAxNywgMS44ODYwMiIsIFwKLSAgICAgICAgICAiMC4wOTUyMjIsIDAuMzc2Nzk3LCAwLjY2MjQ4NiwgMC44NjU0NDYsIDEuMTk0MTYsIDEuNDgwNzgsIDEuODg3MjciLCBcCi0gICAgICAgICAgIjAuMTAxMTU2LCAwLjM3ODMwMiwgMC42NjI3NzQsIDAuODY2ODM3LCAxLjE5MTc3LCAxLjQ4MDIsIDEuODg5MTEiLCBcCi0gICAgICAgICAgIjAuMTA3NjUzLCAwLjM4MDk4NCwgMC42NjM5ODcsIDAuODY1ODc2LCAxLjE5MTg4LCAxLjQ4MDA1LCAxLjg4OTE0Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE4NDAzLCAwLjA1ODEzMiwgMC4wOTY2MTcsIDAuMTIzOTUyLCAwLjE2NzY2MywgMC4yMDU4MzMsIDAuMjYwMzE4IiwgXAotICAgICAgICAgICIwLjAyODc1MiwgMC4wNjgyMjMsIDAuMTA2NzAzLCAwLjEzNDA2NiwgMC4xNzc3NDUsIDAuMjE1OTM3LCAwLjI3MDQ0NCIsIFwKLSAgICAgICAgICAiMC4wNDExODYsIDAuMDgxMjM0LCAwLjExOTQyOCwgMC4xNDY3OTgsIDAuMTkwNDU4LCAwLjIyODY1NCwgMC4yODMxNzEiLCBcCi0gICAgICAgICAgIjAuMDUxMDczLCAwLjA5NDIxLCAwLjEzMjYyOCwgMC4xNTk1MTksIDAuMjAzMjIsIDAuMjQxMzk1LCAwLjI5NTk2NCIsIFwKLSAgICAgICAgICAiMC4wNTk0NjEsIDAuMTA3MjI4LCAwLjE0NTYwOSwgMC4xNzMwMiwgMC4yMTU5MiwgMC4yNTQwODUsIDAuMzA4MjU2IiwgXAotICAgICAgICAgICIwLjA3MTIyNSwgMC4xMjcyOCwgMC4xNjYxNDgsIDAuMTkzMzg5LCAwLjIzNjI1NCwgMC4yNzQzNzcsIDAuMzI4ODg0IiwgXAotICAgICAgICAgICIwLjA3OTc4OSwgMC4xNDM1ODIsIDAuMTg0NzMzLCAwLjIxMjA1MywgMC4yNTU1NDUsIDAuMjkzNTE4LCAwLjM0NzA2NSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyNzg3NSwgMC4xMDUwNTksIDAuMTgyMjM4LCAwLjIzNzQxMiwgMC4zMjU3OTUsIDAuNDAyOTgyLCAwLjUxMzM4OCIsIFwKLSAgICAgICAgICAiMC4wMzAxMzIsIDAuMTA1MDU3LCAwLjE4MjIwNywgMC4yMzc0NjYsIDAuMzI1OTEyLCAwLjQwMzE3OCwgMC41MTM2MTciLCBcCi0gICAgICAgICAgIjAuMDM3NTA2LCAwLjEwNzYxLCAwLjE4MjYzNSwgMC4yMzc0MjMsIDAuMzI1NzQ0LCAwLjQwMzAwOSwgMC41MTM0MTIiLCBcCi0gICAgICAgICAgIjAuMDQ2NCwgMC4xMTI4MTIsIDAuMTg1NTMxLCAwLjIzOTA2MywgMC4zMjU4OTYsIDAuNDAyOTY4LCAwLjUxMzUwMiIsIFwKLSAgICAgICAgICAiMC4wNTQ3NzMsIDAuMTE5NjAzLCAwLjE5MDA4MywgMC4yNDI0MzgsIDAuMzI3NzU5LCAwLjQwMzg2NSwgMC41MTMzNDYiLCBcCi0gICAgICAgICAgIjAuMDY2NDk1LCAwLjEzMjQ3MywgMC4xOTk2ODcsIDAuMjUwMjMyLCAwLjMzMzYwMSwgMC40MDc1NjcsIDAuNTE1MTM3IiwgXAotICAgICAgICAgICIwLjA3NjkyMywgMC4xNDQxNDYsIDAuMjA5MDQ5LCAwLjI1ODMsIDAuMzM5Njg1LCAwLjQxMjU3OSwgMC41MTg4NDYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTI2NzYsIDAuMTk1OTUyLCAwLjMzODY1NCwgMC40NDEwNTgsIDAuNjA0MDI4LCAwLjc0Nzg1LCAwLjk1MTQyNCIsIFwKLSAgICAgICAgICAiMC4wNjA1MTYsIDAuMjA0MjAxLCAwLjM0NzQyMSwgMC40NDk1MzIsIDAuNjEyODQ1LCAwLjc1NTQ2NCwgMC45NjA0MjYiLCBcCi0gICAgICAgICAgIjAuMDcwMDk3LCAwLjIxMzk1NSwgMC4zNTY5NTEsIDAuNDU5NDMzLCAwLjYyMjk3LCAwLjc2NTg0MywgMC45NzA0NTkiLCBcCi0gICAgICAgICAgIjAuMDc5NTY4LCAwLjIyMzUzLCAwLjM2Njg0MSwgMC40Njg4OTgsIDAuNjMyMjY0LCAwLjc3NTIwMSwgMC45NzkzNzEiLCBcCi0gICAgICAgICAgIjAuMDg4Mzk5LCAwLjIzMjkzOSwgMC4zNzYzMjksIDAuNDc4Mjk5LCAwLjY0MTc3LCAwLjc4NDc2OCwgMC45ODk1NTciLCBcCi0gICAgICAgICAgIjAuMTAwNzY5LCAwLjI0ODE4LCAwLjM5MTUwMywgMC40OTM2NTIsIDAuNjU3MzU5LCAwLjgwMDE2MiwgMS4wMDQ0NSIsIFwKLSAgICAgICAgICAiMC4xMTAzMjgsIDAuMjYxNTc2LCAwLjQwNDk3NSwgMC41MDcyMDMsIDAuNjcxMDk0LCAwLjgxMzgsIDEuMDE3OTIiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTAxOTksIDAuMzc1NTk2LCAwLjY2MDczLCAwLjg2Njk4NywgMS4xOTEwOSwgMS40Nzc1MSwgMS44ODkyNyIsIFwKLSAgICAgICAgICAiMC4wOTAxMjEsIDAuMzc1NTUzLCAwLjY2MjYwOCwgMC44NjcwNTMsIDEuMTk0MTUsIDEuNDgwMSwgMS44ODk3NSIsIFwKLSAgICAgICAgICAiMC4wOTE0MSwgMC4zNzYzMTcsIDAuNjYxMzE4LCAwLjg2NzE3NSwgMS4xOTQ0MywgMS40ODA2MSwgMS44ODU3NCIsIFwKLSAgICAgICAgICAiMC4wOTQ3NzEsIDAuMzc2MzM4LCAwLjY2MjYyOCwgMC44NjY5NzIsIDEuMTk0MDUsIDEuNDc3NTcsIDEuODg1NDYiLCBcCi0gICAgICAgICAgIjAuMDk5NTE1LCAwLjM3NzEwNCwgMC42NjI1NTMsIDAuODY1NDc5LCAxLjE5Mzk1LCAxLjQ4MDIyLCAxLjg4OTY2IiwgXAotICAgICAgICAgICIwLjEwOTE3NywgMC4zODAyMjYsIDAuNjYyODY4LCAwLjg2Njg5MiwgMS4xOTQyNCwgMS40ODAzMSwgMS44ODkyIiwgXAotICAgICAgICAgICIwLjExODI4OSwgMC4zODM3MDUsIDAuNjYzMTkyLCAwLjg2NzI1NSwgMS4xOTE3NSwgMS40ODAzLCAxLjg4OTExIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE2OTQ2LCAwLjA1NTYzOSwgMC4wOTM5MDYsIDAuMTIxMTg5LCAwLjE2NDgyNCwgMC4yMDMwMjcsIDAuMjU3NTA5IiwgXAotICAgICAgICAgICIwLjAyNzI2LCAwLjA2NTg1NywgMC4xMDQxMzksIDAuMTMxNDQ0LCAwLjE3NTA3NywgMC4yMTMyNDIsIDAuMjY3Nzg0IiwgXAotICAgICAgICAgICIwLjAzODc5NiwgMC4wNzg4NjYsIDAuMTE2ODc3LCAwLjE0NDE3NSwgMC4xODc4MzMsIDAuMjI2MDk0LCAwLjI4MDAyMyIsIFwKLSAgICAgICAgICAiMC4wNDc4MjIsIDAuMDkxNzk2LCAwLjEyOTU2NiwgMC4xNTY4NjEsIDAuMjAwNTI3LCAwLjIzODcxNCwgMC4yOTMzMzQiLCBcCi0gICAgICAgICAgIjAuMDU1NTgxLCAwLjEwNDgwNywgMC4xNDMyMTUsIDAuMTcwNDI4LCAwLjIxNDAyNSwgMC4yNTIxOTIsIDAuMzA2NjU2IiwgXAotICAgICAgICAgICIwLjA2NjA3OCwgMC4xMjQ1NDQsIDAuMTYzNTQ3LCAwLjE5MTIyMSwgMC4yMzQ4MzYsIDAuMjcyOTMyLCAwLjMyNjExOSIsIFwKLSAgICAgICAgICAiMC4wNzQwMywgMC4xNDA1MTEsIDAuMTgyMzMyLCAwLjIwOTYwNCwgMC4yNTMwNDIsIDAuMjkxMDM3LCAwLjM0NTYwNCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyNDM5NSwgMC4xMDE2MTQsIDAuMTc4OTIyLCAwLjIzNDE4MSwgMC4zMjI2NzEsIDAuMzk5ODI2LCAwLjUxMDI3MSIsIFwKLSAgICAgICAgICAiMC4wMjcxNTUsIDAuMTAxNzI2LCAwLjE3OTA3LCAwLjIzNDI3NywgMC4zMjI1MzgsIDAuMzk5ODU1LCAwLjUxMDM2MiIsIFwKLSAgICAgICAgICAiMC4wMzUxODksIDAuMTA0NTU5LCAwLjE3OTU3NSwgMC4yMzQyMTYsIDAuMzIyNTM0LCAwLjM5OTgyMiwgMC41MTAyNzkiLCBcCi0gICAgICAgICAgIjAuMDQ0MTkyLCAwLjExMDA3NiwgMC4xODI3MjQsIDAuMjM2MDM4LCAwLjMyMjc4NiwgMC4zOTk4NzYsIDAuNTEwMjMyIiwgXAotICAgICAgICAgICIwLjA1MjIzLCAwLjExNjg0LCAwLjE4Njk0NywgMC4yMzkyOTYsIDAuMzI0NTgyLCAwLjQwMDQ0NSwgMC41MTAyNyIsIFwKLSAgICAgICAgICAiMC4wNjQwMDgsIDAuMTMwMjE5LCAwLjE5NzA0NiwgMC4yNDY5NDUsIDAuMzI5OTMsIDAuNDA0MTksIDAuNTEyMTc0IiwgXAotICAgICAgICAgICIwLjA3Mzc2OCwgMC4xNDIzMTEsIDAuMjA2Mzc2LCAwLjI1NTU5MSwgMC4zMzY0NDQsIDAuNDA5NDk2LCAwLjUxNTU4NCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJEIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzODM3NCwgMC4xODE5MzEsIDAuMzI0ODM1LCAwLjQyNjg1NSwgMC41OTA0OTEsIDAuNzMyOTU4LCAwLjkzNzYyMSIsIFwKLSAgICAgICAgICAiMC4wNDU5NTcsIDAuMTg5ODY0LCAwLjMzMjg1NCwgMC40MzQ4NTksIDAuNTk4NTY2LCAwLjc0MTM4MywgMC45NDYzOCIsIFwKLSAgICAgICAgICAiMC4wNTY0MjksIDAuMjAwMDEzLCAwLjM0MzIxOSwgMC40NDUzMzgsIDAuNjA4Nzk2LCAwLjc1MTczNCwgMC45NTU3ODIiLCBcCi0gICAgICAgICAgIjAuMDY3NDgyLCAwLjIxMDEzMSwgMC4zNTM0MDIsIDAuNDU1NTU5LCAwLjYxODk0NCwgMC43NjE1MjgsIDAuOTY2MDIxIiwgXAotICAgICAgICAgICIwLjA3Njc3NiwgMC4yMjAzMTUsIDAuMzYzNTA0LCAwLjQ2NTYxMiwgMC42MjkwMjcsIDAuNzcyNDg5LCAwLjk3NjExNCIsIFwKLSAgICAgICAgICAiMC4wOTAyNzEsIDAuMjM3MzQ3LCAwLjM4MDIxOSwgMC40ODE4NzYsIDAuNjQ2MDksIDAuNzg5MjMyLCAwLjk5MzAwNSIsIFwKLSAgICAgICAgICAiMC4wOTkwMDYsIDAuMjUxOTQ2LCAwLjM5NDc4MSwgMC40OTY5MjcsIDAuNjYwNTc3LCAwLjgwMzE0OCwgMS4wMDczIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg3ODQzLCAwLjM3NjMwOCwgMC42NjI0ODgsIDAuODY2ODc4LCAxLjE5NDI5LCAxLjQ3ODY0LCAxLjg4OTUyIiwgXAotICAgICAgICAgICIwLjA4NzQ1MywgMC4zNzU1ODYsIDAuNjYxODY3LCAwLjg2NDgxMSwgMS4xOTQwNSwgMS40ODAxOCwgMS44ODc2NiIsIFwKLSAgICAgICAgICAiMC4wOTIzMjcsIDAuMzc1ODMsIDAuNjYyMzg5LCAwLjg2NTg3MiwgMS4xOTM5NCwgMS40Nzc4NywgMS44ODYzMyIsIFwKLSAgICAgICAgICAiMC4wOTk0NSwgMC4zNzUyNTUsIDAuNjYyMzc2LCAwLjg2NjgxLCAxLjE5MTYzLCAxLjQ3NzIzLCAxLjg4OTAxIiwgXAotICAgICAgICAgICIwLjEwNzc3NywgMC4zNzYzMzQsIDAuNjYyMTczLCAwLjg2NTM2LCAxLjE5MTkyLCAxLjQ4MDYsIDEuODg5MDUiLCBcCi0gICAgICAgICAgIjAuMTIwMzUyLCAwLjM4MjEyOSwgMC42NjExNTMsIDAuODY2NTIsIDEuMTk0MTQsIDEuNDgwNTQsIDEuODg5MTMiLCBcCi0gICAgICAgICAgIjAuMTMxNDg5LCAwLjM4ODYxOCwgMC42NjUwNCwgMC44NjY5MjcsIDEuMTk0MTgsIDEuNDc3NTgsIDEuODg1OTkiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTQyMjgsIDAuMDUyNTcxLCAwLjA5MDc2LCAwLjExODA2NCwgMC4xNjE2ODUsIDAuMTk5ODgyLCAwLjI1NDQ2IiwgXAotICAgICAgICAgICIwLjAyNDU0OSwgMC4wNjMwMjksIDAuMTAwODM1LCAwLjEyODEwMSwgMC4xNzE2ODUsIDAuMjEwMTgxLCAwLjI2NDgxNCIsIFwKLSAgICAgICAgICAiMC4wMzQ4MSwgMC4wNzU4ODksIDAuMTEzODYzLCAwLjE0MTE1NiwgMC4xODQ4MDgsIDAuMjIzMDIyLCAwLjI3NzY0MiIsIFwKLSAgICAgICAgICAiMC4wNDI3LCAwLjA4ODksIDAuMTI3MDcxLCAwLjE1NDMyNCwgMC4xOTgwMDcsIDAuMjM2MjAxLCAwLjI5MDc4NyIsIFwKLSAgICAgICAgICAiMC4wNDkzODMsIDAuMTAxOTE3LCAwLjEzOTk0OSwgMC4xNjcyNDIsIDAuMjEwODk0LCAwLjI0OTE3LCAwLjMwMTYzNSIsIFwKLSAgICAgICAgICAiMC4wNTgyODIsIDAuMTIxMTYxLCAwLjE2MDYwNywgMC4xODgyMTYsIDAuMjMxNzA5LCAwLjI2ODc0MywgMC4zMjMyNjEiLCBcCi0gICAgICAgICAgIjAuMDY1MjA4LCAwLjEzNjM0NiwgMC4xNzkzNDksIDAuMjA2NDIxLCAwLjI0OTg5NiwgMC4yODgxMDksIDAuMzQxNDgyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDIwNzk0LCAwLjA5ODE4NiwgMC4xNzYwNywgMC4yMzA5NjYsIDAuMzIwMTEsIDAuMzk3OTE4LCAwLjUwNzgzOSIsIFwKLSAgICAgICAgICAiMC4wMjQ0NjksIDAuMDk4NDc2LCAwLjE3NTcwMiwgMC4yMzA5NjQsIDAuMzIwMjU3LCAwLjM5NzcyMywgMC41MDc2ODciLCBcCi0gICAgICAgICAgIjAuMDMzNDksIDAuMTAxNTkxLCAwLjE3NjcxOCwgMC4yMzE1MzUsIDAuMzIwMjIsIDAuMzk3ODgxLCAwLjUwNzc0IiwgXAotICAgICAgICAgICIwLjA0MjM5NiwgMC4xMDcxNDMsIDAuMTc5ODA5LCAwLjIzMzE5MSwgMC4zMjA1MTksIDAuMzk3ODc0LCAwLjUwNzQyOSIsIFwKLSAgICAgICAgICAiMC4wNTAyMzMsIDAuMTE0MzM3LCAwLjE4NDQ5LCAwLjIzNjcxOCwgMC4zMjIzMDIsIDAuMzk3NTEzLCAwLjUwODczOCIsIFwKLSAgICAgICAgICAiMC4wNjIxNDMsIDAuMTI3Nzc0LCAwLjE5NDMwOSwgMC4yNDQyLCAwLjMyNzI5NywgMC40MDI4NjQsIDAuNTEwNjY3IiwgXAotICAgICAgICAgICIwLjA3MTYzOCwgMC4xNDA3NTQsIDAuMjA0MTQsIDAuMjUzMDc0LCAwLjMzNDU3OCwgMC40MDc4MTYsIDAuNTE0NTMyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjYyOTQsIDAuMDI2MzgzLCAwLjAyNjM5NSwgMC4wMjYzOTksIDAuMDI2NDAzLCAwLjAyNjQwNCwgMC4wMjY0MDMiLCBcCi0gICAgICAgICAgIjAuMDI2MDQ5LCAwLjAyNjI4MywgMC4wMjYzMzQsIDAuMDI2MzQ5LCAwLjAyNjM2OCwgMC4wMjYzNzgsIDAuMDI2MzgyIiwgXAotICAgICAgICAgICIwLjAyNTkyOSwgMC4wMjYxODgsIDAuMDI2MjY2LCAwLjAyNjI5NywgMC4wMjYzMjUsIDAuMDI2MzUyLCAwLjAyNjM1NSIsIFwKLSAgICAgICAgICAiMC4wMjU4OTMsIDAuMDI2MTIxLCAwLjAyNjIxMywgMC4wMjYyNTEsIDAuMDI2Mjg3LCAwLjAyNjMwOSwgMC4wMjYzMjkiLCBcCi0gICAgICAgICAgIjAuMDI1ODY1LCAwLjAyNjA3MiwgMC4wMjYxNjksIDAuMDI2MTk3LCAwLjAyNjI0MywgMC4wMjYyNjUsIDAuMDI2MzA1IiwgXAotICAgICAgICAgICIwLjAyNTg0NiwgMC4wMjYwMTcsIDAuMDI2MTIsIDAuMDI2MTYsIDAuMDI2MjEsIDAuMDI2MjQ5LCAwLjAyNjI3MSIsIFwKLSAgICAgICAgICAiMC4wMjU4MjIsIDAuMDI1OTg2LCAwLjAyNjA3NywgMC4wMjYxMzQsIDAuMDI2MTc5LCAwLjAyNjIxNSwgMC4wMjYyNDkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNzg4NCwgMC4wMDc4ODUsIDAuMDA3ODgxLCAwLjAwNzg4NCwgMC4wMDc4ODQsIDAuMDA3ODgzLCAwLjAwNzg4NCIsIFwKLSAgICAgICAgICAiMC4wMDc2MDQsIDAuMDA3NjM3LCAwLjAwNzY0MiwgMC4wMDc2NDYsIDAuMDA3NjQzLCAwLjAwNzY0NywgMC4wMDc2NDYiLCBcCi0gICAgICAgICAgIjAuMDA3NDg5LCAwLjAwNzU0OSwgMC4wMDc1NDUsIDAuMDA3NTUsIDAuMDA3NTU3LCAwLjAwNzU2LCAwLjAwNzU2NCIsIFwKLSAgICAgICAgICAiMC4wMDc0ODUsIDAuMDA3NTIxLCAwLjAwNzU0MSwgMC4wMDc1MjIsIDAuMDA3NTI5LCAwLjAwNzUzNSwgMC4wMDc1MzgiLCBcCi0gICAgICAgICAgIjAuMDA3NTI4LCAwLjAwNzUwNywgMC4wMDc1MzcsIDAuMDA3NTIsIDAuMDA3NTI3LCAwLjAwNzUyOSwgMC4wMDc1MTkiLCBcCi0gICAgICAgICAgIjAuMDA3NzA0LCAwLjAwNzYyNSwgMC4wMDc1OTQsIDAuMDA3NTgzLCAwLjAwNzU1LCAwLjAwNzU0NCwgMC4wMDc1MzciLCBcCi0gICAgICAgICAgIjAuMDA3ODA3LCAwLjAwNzYyMiwgMC4wMDc1OSwgMC4wMDc1NzcsIDAuMDA3NTY0LCAwLjAwNzU1NiwgMC4wMDc1MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyMjMwOCwgMC4wMjIzOTcsIDAuMDIyNDEsIDAuMDIyNDE0LCAwLjAyMjQxOCwgMC4wMjI0MTksIDAuMDIyNDIxIiwgXAotICAgICAgICAgICIwLjAyMjA2MSwgMC4wMjIyOTUsIDAuMDIyMzUsIDAuMDIyMzY1LCAwLjAyMjM3NSwgMC4wMjIzODQsIDAuMDIyMzk4IiwgXAotICAgICAgICAgICIwLjAyMTk1NCwgMC4wMjIyLCAwLjAyMjI3OSwgMC4wMjIzMSwgMC4wMjIzMzgsIDAuMDIyMzU3LCAwLjAyMjM2NyIsIFwKLSAgICAgICAgICAiMC4wMjE5MDUsIDAuMDIyMTMyLCAwLjAyMjIyNiwgMC4wMjIyNjEsIDAuMDIyMzAxLCAwLjAyMjMyLCAwLjAyMjM0MyIsIFwKLSAgICAgICAgICAiMC4wMjE4NzcsIDAuMDIyMDgzLCAwLjAyMjE4MywgMC4wMjIyMjMsIDAuMDIyMjY4LCAwLjAyMjI5NCwgMC4wMjIzMjQiLCBcCi0gICAgICAgICAgIjAuMDIxODU5LCAwLjAyMjAyNywgMC4wMjIxMywgMC4wMjIxNiwgMC4wMjIyMjIsIDAuMDIyMjUzLCAwLjAyMjI4NCIsIFwKLSAgICAgICAgICAiMC4wMjE4NTMsIDAuMDIyLCAwLjAyMjA5MywgMC4wMjIxMzEsIDAuMDIyMTkxLCAwLjAyMjIyNCwgMC4wMjIyNTgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNTUyMiwgMC4wMDU1MzMsIDAuMDA1NTMxLCAwLjAwNTUzMSwgMC4wMDU1MzEsIDAuMDA1NTMyLCAwLjAwNTUzIiwgXAotICAgICAgICAgICIwLjAwNTI3MywgMC4wMDUzNjYsIDAuMDA1Mzg1LCAwLjAwNTM5NCwgMC4wMDUzOTgsIDAuMDA1NDAxLCAwLjAwNTQwMyIsIFwKLSAgICAgICAgICAiMC4wMDUxMjQsIDAuMDA1MjksIDAuMDA1MzIxLCAwLjAwNTMzNCwgMC4wMDUzNDgsIDAuMDA1MzU0LCAwLjAwNTM2MiIsIFwKLSAgICAgICAgICAiMC4wMDUwODksIDAuMDA1MjUxLCAwLjAwNTI5NywgMC4wMDUzMDMsIDAuMDA1MzIxLCAwLjAwNTMzMywgMC4wMDUzNDIiLCBcCi0gICAgICAgICAgIjAuMDA1MTQxLCAwLjAwNTIzNSwgMC4wMDUyODQsIDAuMDA1Mjk2LCAwLjAwNTMxMywgMC4wMDUzMjcsIDAuMDA1MzI1IiwgXAotICAgICAgICAgICIwLjAwNTE2MywgMC4wMDUzMzksIDAuMDA1MzQ2LCAwLjAwNTM0OCwgMC4wMDUzMzQsIDAuMDA1MzQzLCAwLjAwNTM0NCIsIFwKLSAgICAgICAgICAiMC4wMDUzOTMsIDAuMDA1MzA0LCAwLjAwNTMxOCwgMC4wMDUzMjcsIDAuMDA1MzMzLCAwLjAwNTMzNiwgMC4wMDUzMjQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxODYyNywgMC4wMTg3MTcsIDAuMDE4NzMsIDAuMDE4NzM0LCAwLjAxODczNywgMC4wMTg3MzksIDAuMDE4NzQiLCBcCi0gICAgICAgICAgIjAuMDE4Mzc4LCAwLjAxODYxMiwgMC4wMTg2NjQsIDAuMDE4NjgzLCAwLjAxODY5OCwgMC4wMTg3MDgsIDAuMDE4NzE1IiwgXAotICAgICAgICAgICIwLjAxODI3LCAwLjAxODUxNywgMC4wMTg1OTgsIDAuMDE4NjI5LCAwLjAxODY1NiwgMC4wMTg2NzIsIDAuMDE4NjkxIiwgXAotICAgICAgICAgICIwLjAxODIyNCwgMC4wMTg0NDksIDAuMDE4NTQzLCAwLjAxODU4MSwgMC4wMTg2MTgsIDAuMDE4NjM5LCAwLjAxODY2NCIsIFwKLSAgICAgICAgICAiMC4wMTgyMDIsIDAuMDE4NDAyLCAwLjAxODQ5OCwgMC4wMTg1NDEsIDAuMDE4NTg2LCAwLjAxODYwOSwgMC4wMTg2MzYiLCBcCi0gICAgICAgICAgIjAuMDE4MjAzLCAwLjAxODM1NSwgMC4wMTg0NSwgMC4wMTg0OTYsIDAuMDE4NTQ3LCAwLjAxODU3MywgMC4wMTg2MDQiLCBcCi0gICAgICAgICAgIjAuMDE4MjA4LCAwLjAxODMzNCwgMC4wMTg0MjIsIDAuMDE4NDY2LCAwLjAxODUxNiwgMC4wMTg1NDksIDAuMDE4NTgxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI5MDQsIDAuMDAyOTQzLCAwLjAwMjk1LCAwLjAwMjk1LCAwLjAwMjk1MywgMC4wMDI5NTQsIDAuMDAyOTUzIiwgXAotICAgICAgICAgICIwLjAwMjczOSwgMC4wMDI5NzEsIDAuMDAzMDE2LCAwLjAwMzAzLCAwLjAwMzA0MiwgMC4wMDMwNSwgMC4wMDMwNTUiLCBcCi0gICAgICAgICAgIjAuMDAyNTg4LCAwLjAwMjkxMywgMC4wMDI5ODYsIDAuMDAzMDEyLCAwLjAwMzAzOCwgMC4wMDMwNTEsIDAuMDAzMDY3IiwgXAotICAgICAgICAgICIwLjAwMjU5MiwgMC4wMDI4ODQsIDAuMDAyOTYyLCAwLjAwMjk5NCwgMC4wMDMwMjYsIDAuMDAzMDQzLCAwLjAwMzA1NiIsIFwKLSAgICAgICAgICAiMC4wMDI2MTEsIDAuMDAyODYsIDAuMDAyOTQ5LCAwLjAwMjk4NiwgMC4wMDMwMTksIDAuMDAzMDM3LCAwLjAwMzA1NSIsIFwKLSAgICAgICAgICAiMC4wMDI2MjksIDAuMDAyOTU2LCAwLjAwMzAxLCAwLjAwMjk5LCAwLjAwMzAyMSwgMC4wMDMwMzksIDAuMDAzMDY5IiwgXAotICAgICAgICAgICIwLjAwMjk2NiwgMC4wMDI5MTQsIDAuMDAyOTY5LCAwLjAwMjk5NSwgMC4wMDMwMjQsIDAuMDAzMDcsIDAuMDAzMDc5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTQ1NiwgMC4wMTQ3MDQsIDAuMDE0NzIzLCAwLjAxNDczLCAwLjAxNDczNCwgMC4wMTQ3MzgsIDAuMDE0NzQiLCBcCi0gICAgICAgICAgIjAuMDE0MjIxLCAwLjAxNDU1MSwgMC4wMTQ2MjksIDAuMDE0NjU1LCAwLjAxNDY3OSwgMC4wMTQ2OTIsIDAuMDE0NzAzIiwgXAotICAgICAgICAgICIwLjAxNDEyNywgMC4wMTQ0MjIsIDAuMDE0NTM0LCAwLjAxNDU3NywgMC4wMTQ2MTgsIDAuMDE0NjM5LCAwLjAxNDY1OCIsIFwKLSAgICAgICAgICAiMC4wMTQxODIsIDAuMDE0MzYsIDAuMDE0NDc1LCAwLjAxNDUyMywgMC4wMTQ1NzMsIDAuMDE0NjAyLCAwLjAxNDYyOSIsIFwKLSAgICAgICAgICAiMC4wMTQzMzIsIDAuMDE0MzUyLCAwLjAxNDQ0NywgMC4wMTQ0OTksIDAuMDE0NTQ1LCAwLjAxNDU3NiwgMC4wMTQ2MDYiLCBcCi0gICAgICAgICAgIjAuMDE0NTc4LCAwLjAxNDQwOCwgMC4wMTQ0NTEsIDAuMDE0NDcxLCAwLjAxNDUzLCAwLjAxNDU1OCwgMC4wMTQ1ODgiLCBcCi0gICAgICAgICAgIjAuMDE0NzI1LCAwLjAxNDQxNiwgMC4wMTQ0MzEsIDAuMDE0NDYsIDAuMDE0NDk5LCAwLjAxNDUzMSwgMC4wMTQ1NTkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDEzNCwgMC4wMDAzMjcsIDAuMDAwMzUyLCAwLjAwMDM1OSwgMC4wMDAzNjYsIDAuMDAwMzcsIDAuMDAwMzczIiwgXAotICAgICAgICAgICIwLjAwMDA2MSwgMC4wMDA0MTUsIDAuMDAwNTIsIDAuMDAwNTUxLCAwLjAwMDU4LCAwLjAwMDU3NCwgMC4wMDA1ODUiLCBcCi0gICAgICAgICAgIjAuMDAwMjA3LCAwLjAwMDM1MSwgMC4wMDA0ODMsIDAuMDAwNTMsIDAuMDAwNTczLCAwLjAwMDU5NiwgMC4wMDA2MTYiLCBcCi0gICAgICAgICAgIjAuMDAwMjE3LCAwLjAwMDI5NSwgMC4wMDA0NDYsIDAuMDAwNSwgMC4wMDA1NTEsIDAuMDAwNTc5LCAwLjAwMDYwNCIsIFwKLSAgICAgICAgICAiMC4wMDAyMjgsIDAuMDAwMjc4LCAwLjAwMDQzLCAwLjAwMDQ3NywgMC4wMDA1MzYsIDAuMDAwNTY3LCAwLjAwMDU5IiwgXAotICAgICAgICAgICIwLjAwMDA3MSwgMC4wMDAzNDMsIDAuMDAwNDYyLCAwLjAwMDQ3MywgMC4wMDA1MzIsIDAuMDAwNTg1LCAwLjAwMDYxNCIsIFwKLSAgICAgICAgICAiMC4wMDAwNjgsIDAuMDAwMjYzLCAwLjAwMDM5NywgMC4wMDA0NTQsIDAuMDAwNTcsIDAuMDAwNTk0LCAwLjAwMDU3OSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBPQUkyMTFYMSAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoT0FJMjExWDEpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4xNDM5Nzk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA4OTkwNjc7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwODk2OTAyOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDg5OTA2NzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA0MDksIDAuMDAwNDA5LCAwLjAwMDQwOSwgMC4wMDA0MDksIDAuMDAwNDA5LCAwLjAwMDQwOSwgMC4wMDA0MDkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA0MSwgMC4wMDA0MSwgMC4wMDA0MSwgMC4wMDA0MSwgMC4wMDA0MSwgMC4wMDA0MSwgMC4wMDA0MSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQTEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDkzNzI3MjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA5MzcyNzI7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwOTMzODQyOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDQwOSwgMC4wMDA0MDksIDAuMDAwNDA5LCAwLjAwMDQwOSwgMC4wMDA0MDksIDAuMDAwNDA5LCAwLjAwMDQwOSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDQxLCAwLjAwMDQxLCAwLjAwMDQxLCAwLjAwMDQxLCAwLjAwMDQxLCAwLjAwMDQxLCAwLjAwMDQxIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwOTA1MTE3OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDkwNTExNzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA5MDMwOTI7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNDA5LCAwLjAwMDQwOSwgMC4wMDA0MDksIDAuMDAwNDA5LCAwLjAwMDQwOSwgMC4wMDA0MDksIDAuMDAwNDA5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNDEsIDAuMDAwNDEsIDAuMDAwNDEsIDAuMDAwNDEsIDAuMDAwNDEsIDAuMDAwNDEsIDAuMDAwNDEiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEMwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA4OTg5MjQ7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwODk4Mjg3OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDg5ODkyNDsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyMzgsIDAuMDAwMjM3LCAwLjAwMDIzNywgMC4wMDAyMzcsIDAuMDAwMjM3LCAwLjAwMDIzNywgMC4wMDAyMzciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA0NjQsIDAuMDAwNDY1LCAwLjAwMDQ2NSwgMC4wMDA0NjUsIDAuMDAwNDY1LCAwLjAwMDQ2NSwgMC4wMDA0NjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4wOTg0MzMyOwotICAgIGZ1bmN0aW9uIDogIighKCgoQTArQTEpIEIwKSBDMCkpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTAyOTUxLCAwLjE0OTY1MSwgMC40MTMxMTIsIDAuNjQ1MjQsIDAuOTU1MDg0LCAxLjU3NDEzLCAxLjk1OTkzIiwgXAotICAgICAgICAgICIwLjExMTU1MiwgMC4xNTgyNjgsIDAuNDIxNzg3LCAwLjY1NDA3NSwgMC45NjM1MzUsIDEuNTgxMzUsIDEuOTY5NCIsIFwKLSAgICAgICAgICAiMC4xMjE2MzcsIDAuMTY4MzcxLCAwLjQzMTc3NywgMC42NjQwNzIsIDAuOTczNjc0LCAxLjU5Mjc4LCAxLjk3ODU5IiwgXAotICAgICAgICAgICIwLjEzMTY4MiwgMC4xNzg0MzgsIDAuNDQxOTUzLCAwLjY3Mzk0MywgMC45ODM3NDgsIDEuNjAyNDUsIDEuOTg4MzYiLCBcCi0gICAgICAgICAgIjAuMTQxNzYxLCAwLjE4ODQwOSwgMC40NTE5NzUsIDAuNjg0MjUzLCAwLjk5Mzk5LCAxLjYxMjYzLCAxLjk5OTc2IiwgXAotICAgICAgICAgICIwLjE1Nzc5NiwgMC4yMDQzNDMsIDAuNDY3NjM4LCAwLjcwMDIzMSwgMS4wMDk3MSwgMS42Mjk0NSwgMi4wMTQ1OCIsIFwKLSAgICAgICAgICAiMC4xNzEzLCAwLjIxODQzNSwgMC40ODIwNTEsIDAuNzE0NDksIDEuMDIzOCwgMS42NDI3MywgMi4wMzAzNCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xODkwODcsIDAuMjgzMDYyLCAwLjgxNTQxNywgMS4yODUwMywgMS45MTExNCwgMy4xNjM2OCwgMy45NDY1OCIsIFwKLSAgICAgICAgICAiMC4xODkyNDcsIDAuMjgzMDYxLCAwLjgxNTM0MywgMS4yODQ5NywgMS45MTEzOSwgMy4xNjQxMiwgMy45NDYyMyIsIFwKLSAgICAgICAgICAiMC4xODk1NywgMC4yODMzNDgsIDAuODE1MTg3LCAxLjI4NTAyLCAxLjkxMDk1LCAzLjE2MzUsIDMuOTQ2MzciLCBcCi0gICAgICAgICAgIjAuMTkxNDQzLCAwLjI4Mzc4MywgMC44MTUzOCwgMS4yODQ2OCwgMS45MTEwMSwgMy4xNjM1MSwgMy45NDgiLCBcCi0gICAgICAgICAgIjAuMTk0NTU2LCAwLjI4NTU4NywgMC44MTUzNDEsIDEuMjg1MDEsIDEuOTExMDYsIDMuMTYzMzYsIDMuOTQ2MjYiLCBcCi0gICAgICAgICAgIjAuMjAwOTc3LCAwLjI5MDM1LCAwLjgxNTE4LCAxLjI4NDcsIDEuOTExMjMsIDMuMTYzNzMsIDMuOTQ2MTMiLCBcCi0gICAgICAgICAgIjAuMjA3NTg0LCAwLjI5NjAwNywgMC44MTU4MzMsIDEuMjg1MDYsIDEuOTExMSwgMy4xNjQyMiwgMy45NDYzNSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNDk0MjUsIDAuMjE3Mzk4LCAwLjYwMTgzNywgMC45NDA1NDEsIDEuMzkyOTEsIDIuMjk3MTYsIDIuODYwODQiLCBcCi0gICAgICAgICAgIjAuMTU4NTc2LCAwLjIyNjU2MSwgMC42MTA4NzcsIDAuOTUwMjA0LCAxLjQwMTI4LCAyLjMwNTQxLCAyLjg3MDIxIiwgXAotICAgICAgICAgICIwLjE2ODI5OCwgMC4yMzYyOTMsIDAuNjIwODIzLCAwLjk1OTYyMywgMS40MTE4NSwgMi4zMTUyMSwgMi44Nzk2MSIsIFwKLSAgICAgICAgICAiMC4xNzc0NDcsIDAuMjQ1NDUsIDAuNjI5ODE2LCAwLjk2ODgyLCAxLjQyMDg1LCAyLjMyNDYyLCAyLjg4ODU4IiwgXAotICAgICAgICAgICIwLjE4NjM4NSwgMC4yNTQ0NDEsIDAuNjM4ODU0LCAwLjk3ODI5LCAxLjQzMDU4LCAyLjMzNDUyLCAyLjg5ODU5IiwgXAotICAgICAgICAgICIwLjIwMDYwOCwgMC4yNjg3MDQsIDAuNjUzMzIxLCAwLjk5MjE4NSwgMS40NDQ0MSwgMi4zNDkwMywgMi45MTI5NyIsIFwKLSAgICAgICAgICAiMC4yMTMwNTUsIDAuMjgxMDI5LCAwLjY2NTc3NCwgMS4wMDQ5MiwgMS40NTc1MiwgMi4zNjA5LCAyLjkyNDkxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI2MDY1OSwgMC4zOTMwMjMsIDEuMTQzMTksIDEuODA1MTgsIDIuNjg3NDEsIDQuNDUxODQsIDUuNTUzOTciLCBcCi0gICAgICAgICAgIjAuMjYwNTIsIDAuMzkyOTg1LCAxLjE0MzA4LCAxLjgwNTE2LCAyLjY4NjI3LCA0LjQ1MTM0LCA1LjU1MzcxIiwgXAotICAgICAgICAgICIwLjI2MDUxOCwgMC4zOTI5NzYsIDEuMTQzMDksIDEuODA1MDksIDIuNjg3NjksIDQuNDUwOTIsIDUuNTU0NDEiLCBcCi0gICAgICAgICAgIjAuMjYwODY3LCAwLjM5Mjg0OCwgMS4xNDM3MiwgMS44MDQ5OCwgMi42ODg3NywgNC40NTEyNCwgNS41NTIzNyIsIFwKLSAgICAgICAgICAiMC4yNjIxMzQsIDAuMzkzMjM5LCAxLjE0MzY1LCAxLjgwNTIyLCAyLjY4ODY4LCA0LjQ1NDQ2LCA1LjU1MzQxIiwgXAotICAgICAgICAgICIwLjI2NTIxLCAwLjM5NTE3MiwgMS4xNDM0MiwgMS44MDQ4NywgMi42ODc4MywgNC40NTExNiwgNS41NTMzNSIsIFwKLSAgICAgICAgICAiMC4yNjk0MDcsIDAuMzk3ODMyLCAxLjE0MzY2LCAxLjgwNDk4LCAyLjY4ODIzLCA0LjQ1MTUzLCA1LjU1MzAzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkExIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTk5MzcsIDAuMTQ2NjQ0LCAwLjQxMDE3OCwgMC42NDIyOTIsIDAuOTUxODk1LCAxLjU3MDM4LCAxLjk1Njg3IiwgXAotICAgICAgICAgICIwLjEwODg3LCAwLjE1NTU2OSwgMC40MTg5NDYsIDAuNjUwOTUsIDAuOTYwMjUzLCAxLjU3ODY3LCAxLjk2NTI2IiwgXAotICAgICAgICAgICIwLjEyMDE2LCAwLjE2Njg4NSwgMC40MzAyMzEsIDAuNjYyNTUxLCAwLjk3MjE3MywgMS41OTEyOSwgMS45NzcwNiIsIFwKLSAgICAgICAgICAiMC4xMzE2NzQsIDAuMTc4MzYsIDAuNDQxODYsIDAuNjc0MDQ2LCAwLjk4MzYyOSwgMS42MDIzOCwgMS45ODg4MiIsIFwKLSAgICAgICAgICAiMC4xNDMyODYsIDAuMTg5ODg2LCAwLjQ1MzMzNCwgMC42ODU1MjgsIDAuOTk0NzM3LCAxLjYxMzk5LCAyLjAwMTE2IiwgXAotICAgICAgICAgICIwLjE2MTkxLCAwLjIwODQwOSwgMC40NzE4NDMsIDAuNzA0MTUyLCAxLjAxMzI0LCAxLjYzMjA3LCAyLjAxODY5IiwgXAotICAgICAgICAgICIwLjE3ODc1MiwgMC4yMjQ3MjUsIDAuNDg3OTQ3LCAwLjcyMDA2NSwgMS4wMjk4NywgMS42NDgxMywgMi4wMzQ3MiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xODkwMjQsIDAuMjgzMzM1LCAwLjgxNTQzNSwgMS4yODUwOCwgMS45MTEyOSwgMy4xNjQ1OCwgMy45NDY1NiIsIFwKLSAgICAgICAgICAiMC4xODkwOTcsIDAuMjgzMzM5LCAwLjgxNTIyNCwgMS4yODQ2NywgMS45MTA2OSwgMy4xNjQwOSwgMy45NDU5OSIsIFwKLSAgICAgICAgICAiMC4xODk2MTcsIDAuMjgzMDEyLCAwLjgxNTEzOCwgMS4yODQ5OCwgMS45MTA5NywgMy4xNjM1NSwgMy45NDYzOCIsIFwKLSAgICAgICAgICAiMC4xOTI5ODksIDAuMjg0MDY1LCAwLjgxNTg2NiwgMS4yODQ5OSwgMS45MTA5NCwgMy4xNjMzMSwgMy45NDYxMSIsIFwKLSAgICAgICAgICAiMC4xOTc5NSwgMC4yODcwNzQsIDAuODE1Mzk4LCAxLjI4NTA0LCAxLjkxMTU5LCAzLjE2Mzk2LCAzLjk0NjMxIiwgXAotICAgICAgICAgICIwLjIwODA4OCwgMC4yOTQzODEsIDAuODE1NDIxLCAxLjI4NDg0LCAxLjkxMTIxLCAzLjE2NDQ2LCAzLjk0NjYiLCBcCi0gICAgICAgICAgIjAuMjE4MDk1LCAwLjMwMjcyNSwgMC44MTYwNTgsIDEuMjg1MDksIDEuOTEwOTcsIDMuMTYzNTYsIDMuOTQ3MTUiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTQwMzcyLCAwLjIwNjg3OCwgMC41ODM1MzIsIDAuOTE1OTUzLCAxLjM1OTYyLCAyLjI0NjY0LCAyLjc5OTY2IiwgXAotICAgICAgICAgICIwLjE0OTYzMywgMC4yMTYzMDIsIDAuNTkyOTU5LCAwLjkyNTI2NiwgMS4zNjkyNCwgMi4yNTUwNiwgMi44MDg2OCIsIFwKLSAgICAgICAgICAiMC4xNTkzMTEsIDAuMjI2MDA4LCAwLjYwMzExMiwgMC45MzU2MDUsIDEuMzc5NTgsIDIuMjY0OTIsIDIuODE4OTQiLCBcCi0gICAgICAgICAgIjAuMTY4NDExLCAwLjIzNTI3NiwgMC42MTIyODcsIDAuOTQ0NzQzLCAxLjM4ODExLCAyLjI3NDU1LCAyLjgyODA4IiwgXAotICAgICAgICAgICIwLjE3NzM3MywgMC4yNDQxNDQsIDAuNjIxMzk0LCAwLjk1NDQ1MywgMS4zOTgxNywgMi4yODQ2OSwgMi44Mzc3MyIsIFwKLSAgICAgICAgICAiMC4xOTE2MjYsIDAuMjU4NDM2LCAwLjYzNjAzMSwgMC45NjgzNjgsIDEuNDExODgsIDIuMjk5NCwgMi44NTIyNiIsIFwKLSAgICAgICAgICAiMC4yMDQwOTksIDAuMjcwODcyLCAwLjY0ODQ3NywgMC45ODEzMDgsIDEuNDI1NDUsIDIuMzExMDUsIDIuODY0NDUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjQ4MjM0LCAwLjM3ODEyOSwgMS4xMTU5MSwgMS43NjY1NCwgMi42MjY2LCA0LjM1NzE0LCA1LjQzNTY3IiwgXAotICAgICAgICAgICIwLjI0ODYyNiwgMC4zNzc2NjEsIDEuMTE1OSwgMS43NjYzOSwgMi42MjY1MywgNC4zNjk4MSwgNS40MzczOSIsIFwKLSAgICAgICAgICAiMC4yNDg0OCwgMC4zNzg2NzMsIDEuMTE2MDQsIDEuNzY2NjYsIDIuNjI2NDYsIDQuMzY5NDgsIDUuNDM4MjUiLCBcCi0gICAgICAgICAgIjAuMjQ5MDMzLCAwLjM4MDMzNywgMS4xMTU3NSwgMS43NjUxMywgMi42MzM3LCA0LjM2OTQ0LCA1LjQzNzYzIiwgXAotICAgICAgICAgICIwLjI1MDM1LCAwLjM3OTE1MSwgMS4xMTU3NCwgMS43NjE2NCwgMi42MjY0NywgNC4zNTY0NSwgNS40NDY5OSIsIFwKLSAgICAgICAgICAiMC4yNTMwMDYsIDAuMzgxMTMsIDEuMTEyOTUsIDEuNzY2MTEsIDIuNjI4NzcsIDQuMzU2MTcsIDUuNDQ2OTIiLCBcCi0gICAgICAgICAgIjAuMjU3MjU3LCAwLjM4Mjk3NywgMS4xMTk3MywgMS43NjY3OCwgMi42MjYxLCA0LjM2OTQxLCA1LjQ0MDc5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTE3ODMsIDAuMDc2MzU1LCAwLjIxNTU3NywgMC4zMzg0MTQsIDAuNTAyMTM3LCAwLjgyOTc5MSwgMS4wMzQ1MSIsIFwKLSAgICAgICAgICAiMC4wNjE2MzMsIDAuMDg2MzEsIDAuMjI1NTM1LCAwLjM0ODMzOSwgMC41MTIwMzcsIDAuODM5NzQ2LCAxLjA0NDIyIiwgXAotICAgICAgICAgICIwLjA3Mzk5MiwgMC4wOTg2MiwgMC4yMzc4MzksIDAuMzYwNjYsIDAuNTIzMzMsIDAuODUwNjQzLCAxLjA1NTYiLCBcCi0gICAgICAgICAgIjAuMDg2ODM4LCAwLjExMTA2NywgMC4yNTAzNjIsIDAuMzczMDYyLCAwLjUzNjgzNiwgMC44NjI2MSwgMS4wNjczOCIsIFwKLSAgICAgICAgICAiMC4wOTk1ODgsIDAuMTI0MDcyLCAwLjI2MzAzNywgMC4zODU1MzIsIDAuNTQ5Mjc4LCAwLjg3NjIyMiwgMS4wNzkyMiIsIFwKLSAgICAgICAgICAiMC4xMTgxMDUsIDAuMTQ0NDYzLCAwLjI4Mjc2OCwgMC40MDU3ODUsIDAuNTY5MjQ4LCAwLjg5NjU5MSwgMS4wOTg5MSIsIFwKLSAgICAgICAgICAiMC4xMzIxMTYsIDAuMTYxNjcyLCAwLjMwMDMxNywgMC40MjM0NywgMC41ODY4ODIsIDAuOTE0MDU0LCAxLjExODY0Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwMjUsIDAuMTUyOTM1LCAwLjQzOTAxLCAwLjY5MTUyOSwgMS4wMjg0NiwgMS43MDIwNSwgMi4xMjI5NCIsIFwKLSAgICAgICAgICAiMC4xMDI2OCwgMC4xNTI5NTUsIDAuNDM5MTMzLCAwLjY5MTY5MywgMS4wMjg0MSwgMS43MDE3OCwgMi4xMjI5MiIsIFwKLSAgICAgICAgICAiMC4xMDY1NiwgMC4xNTQ2MDQsIDAuNDM5MTEyLCAwLjY5MTcwNSwgMS4wMjg0NCwgMS43MDE2NywgMi4xMjI4NyIsIFwKLSAgICAgICAgICAiMC4xMTI2MTgsIDAuMTU5MTUzLCAwLjQzOTAyOSwgMC42OTE2MzksIDEuMDI4MjQsIDEuNzAxNjcsIDIuMTIyOTQiLCBcCi0gICAgICAgICAgIjAuMTIwMjEyLCAwLjE2NDk2LCAwLjQzOTY5LCAwLjY5MTQ5NSwgMS4wMjgyNiwgMS43MDIwOCwgMi4xMjI4IiwgXAotICAgICAgICAgICIwLjEzMzk4OCwgMC4xNzYzOTgsIDAuNDQzNDc1LCAwLjY5MTcyNywgMS4wMjg0NCwgMS43MDIwNSwgMi4xMjI4NyIsIFwKLSAgICAgICAgICAiMC4xNDcwMTMsIDAuMTg3OTIsIDAuNDQ5MDQ0LCAwLjY5MzU5MSwgMS4wMjgzOSwgMS43MDE3MSwgMi4xMjI2OCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNDUxNywgMC4yMTMxMDIsIDAuNTk3NjI3LCAwLjkzNjQ0NiwgMS4zODgyNSwgMi4yOTI5MSwgMi44NTY4IiwgXAotICAgICAgICAgICIwLjE1MzcxNywgMC4yMjE3MSwgMC42MDYwMjMsIDAuOTQ0OTAxLCAxLjM5NzQ0LCAyLjMwMTQ5LCAyLjg2NDc0IiwgXAotICAgICAgICAgICIwLjE2NDIxMiwgMC4yMzIyNDcsIDAuNjE3MDY0LCAwLjk1NjM4NCwgMS40MDgwNCwgMi4zMTE1MiwgMi44NzU5NCIsIFwKLSAgICAgICAgICAiMC4xNzQ3MzEsIDAuMjQyOTAzLCAwLjYyNzY2NywgMC45NjY0MTYsIDEuNDE4OTUsIDIuMzIzMjMsIDIuODg3MjQiLCBcCi0gICAgICAgICAgIjAuMTg1MjcsIDAuMjUzNDcyLCAwLjYzODQ4OSwgMC45NzcyNzIsIDEuNDI5MjEsIDIuMzMyNTEsIDIuODk3NTUiLCBcCi0gICAgICAgICAgIjAuMjAyNDY5LCAwLjI3MDM3OSwgMC42NTUzNjMsIDAuOTk0MzE4LCAxLjQ0NjksIDIuMzUwNTUsIDIuOTE0NjkiLCBcCi0gICAgICAgICAgIjAuMjE3Mjg5LCAwLjI4NTIwNSwgMC42NzAyMzgsIDEuMDA5ODcsIDEuNDYxNDEsIDIuMzY2NSwgMi45Mjk3OCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yNjA1MjQsIDAuMzkyOTgsIDEuMTQzMDIsIDEuODA2MjMsIDIuNjg3MDIsIDQuNDUxMjQsIDUuNTUzNTYiLCBcCi0gICAgICAgICAgIjAuMjYwNTIsIDAuMzkyODQ1LCAxLjE0Mzg1LCAxLjgwNDgxLCAyLjY4NzMzLCA0LjQ1MiwgNS41NTI1MSIsIFwKLSAgICAgICAgICAiMC4yNjA2NjIsIDAuMzkyODY0LCAxLjE0MzA0LCAxLjgwNTU4LCAyLjY4NzYyLCA0LjQ1MTEsIDUuNTU0NDciLCBcCi0gICAgICAgICAgIjAuMjYxMTYzLCAwLjM5MzA3NiwgMS4xNDMwNSwgMS44MDQ3NywgMi42ODcxNywgNC40NTIxMSwgNS41NTMyNyIsIFwKLSAgICAgICAgICAiMC4yNjMwNTcsIDAuMzkzNDA0LCAxLjE0MzMxLCAxLjgwNDkyLCAyLjY4NzQ3LCA0LjQ0OTk4LCA1LjU1NDkiLCBcCi0gICAgICAgICAgIjAuMjY4NjUzLCAwLjM5NjIxNCwgMS4xNDM0LCAxLjgwNDc3LCAyLjY4NzE5LCA0LjQ1MTMxLCA1LjU1NDMiLCBcCi0gICAgICAgICAgIjAuMjc0NTg1LCAwLjQwMDE3NCwgMS4xNDMzNSwgMS44MDUxMSwgMi42ODczMiwgNC40NTEyMywgNS41NTI1NCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDUwMSwgMC4wNzQ2NzMsIDAuMjEzOTY0LCAwLjMzNjYxNSwgMC41MDAzMTEsIDAuODI4MTA3LCAxLjAzMzE2IiwgXAotICAgICAgICAgICIwLjA1OTk5NywgMC4wODQ2MjMsIDAuMjIzNzkxLCAwLjM0NjU3MywgMC41MTAyNCwgMC44MzgyMjQsIDEuMDQyMzEiLCBcCi0gICAgICAgICAgIjAuMDcyMzg3LCAwLjA5Njk5OSwgMC4yMzYxNzEsIDAuMzU4OTM2LCAwLjUyMTgxMiwgMC44NDg5MjcsIDEuMDUzODQiLCBcCi0gICAgICAgICAgIjAuMDg1MjU1LCAwLjEwOTQ4NSwgMC4yNDg3MzUsIDAuMzcxMzk0LCAwLjUzNTEyNiwgMC44NjEwODcsIDEuMDY1ODMiLCBcCi0gICAgICAgICAgIjAuMDk3OTYyLCAwLjEyMjUxNSwgMC4yNjE0MzIsIDAuMzgzOTM5LCAwLjU0NzYwOSwgMC44NzMzNTEsIDEuMDc4MDgiLCBcCi0gICAgICAgICAgIjAuMTE2MzY1LCAwLjE0MzA1NywgMC4yODExNywgMC40MDQyMDcsIDAuNTY3NjcyLCAwLjg5MzMyMywgMS4wOTc5MyIsIFwKLSAgICAgICAgICAiMC4xMjk5NDcsIDAuMTU5OTkyLCAwLjI5ODcyMywgMC40MjE5MTcsIDAuNTg1MzE0LCAwLjkxMDQyMywgMS4xMTUwOSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDA2MTcsIDAuMTUxMDI5LCAwLjQzNzExOCwgMC42ODk1LCAxLjAyNjM0LCAxLjcwMDIyLCAyLjEyMTU0IiwgXAotICAgICAgICAgICIwLjEwMDg0OCwgMC4xNTEwNDIsIDAuNDM3MTA4LCAwLjY4OTQ3OSwgMS4wMjYxMiwgMS43MDAwNywgMi4xMjA5OSIsIFwKLSAgICAgICAgICAiMC4xMDQ4MzYsIDAuMTUyNzc5LCAwLjQzNzExMywgMC42ODk0ODgsIDEuMDI2NTksIDEuNjk5NjMsIDIuMTIxNTYiLCBcCi0gICAgICAgICAgIjAuMTEwOTk2LCAwLjE1NzQyNCwgMC40MzcwMDIsIDAuNjg5NDkxLCAxLjAyNjE0LCAxLjY5OTczLCAyLjEyMDg4IiwgXAotICAgICAgICAgICIwLjExODYwOCwgMC4xNjMyMTcsIDAuNDM3NTg3LCAwLjY4OTU0NCwgMS4wMjYxOSwgMS43MDAwMywgMi4xMjE0MiIsIFwKLSAgICAgICAgICAiMC4xMzI2MTQsIDAuMTc0OTAxLCAwLjQ0MTU4NiwgMC42ODk4MzMsIDEuMDI2NTQsIDEuNzAwMDEsIDIuMTIxNjMiLCBcCi0gICAgICAgICAgIjAuMTQ1NTQzLCAwLjE4NjM0NywgMC40NDcwNDksIDAuNjkxNDkzLCAxLjAyNjQ0LCAxLjcwMDE3LCAyLjEyMjUiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTQwMjM1LCAwLjIwODE1NCwgMC41OTIzMDEsIDAuOTMxNTE1LCAxLjM4Mzg4LCAyLjI4Nzc5LCAyLjg1MTU1IiwgXAotICAgICAgICAgICIwLjE0ODczNywgMC4yMTY3OTYsIDAuNjAxMzUsIDAuOTQwMjgyLCAxLjM5MTgxLCAyLjI5NTMsIDIuODYwNDIiLCBcCi0gICAgICAgICAgIjAuMTU4NzgxLCAwLjIyNzY0NSwgMC42MTIzMjUsIDAuOTUxMzU4LCAxLjQwMzQ0LCAyLjMwODA5LCAyLjg3MTg0IiwgXAotICAgICAgICAgICIwLjE3MDMwNywgMC4yMzgwNDEsIDAuNjIyOTI1LCAwLjk2MTc4LCAxLjQxNDMzLCAyLjMxODYzLCAyLjg4MjYxIiwgXAotICAgICAgICAgICIwLjE4MTI0MSwgMC4yNDkyNTEsIDAuNjM0MDA1LCAwLjk3MjgzNiwgMS40MjUyNSwgMi4zMjgxNywgMi44OTMwOSIsIFwKLSAgICAgICAgICAiMC4xOTkwNTQsIDAuMjY2NzYyLCAwLjY1MTM1NiwgMC45OTA1MDUsIDEuNDQyMTksIDIuMzQ2MzksIDIuOTExMzciLCBcCi0gICAgICAgICAgIjAuMjE0NjcsIDAuMjgyMzUzLCAwLjY2NjY1MiwgMS4wMDYsIDEuNDU4MzYsIDIuMzYyMDIsIDIuOTI1OTciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjYwNTA5LCAwLjM5Mjg1MiwgMS4xNDM3OSwgMS44MDUzLCAyLjY4Nzg4LCA0LjQ1MjA1LCA1LjU1Mzk1IiwgXAotICAgICAgICAgICIwLjI2MDY2OCwgMC4zOTI5MjIsIDEuMTQzMjYsIDEuODA1NzUsIDIuNjg3NDUsIDQuNDUwNDgsIDUuNTUyODMiLCBcCi0gICAgICAgICAgIjAuMjYwNDA2LCAwLjM5Mjg3MywgMS4xNDM2LCAxLjgwNTA1LCAyLjY4NzEsIDQuNDUxMzgsIDUuNTUzNDQiLCBcCi0gICAgICAgICAgIjAuMjYxNjU2LCAwLjM5Mjc4OCwgMS4xNDM3LCAxLjgwNDczLCAyLjY4NzE4LCA0LjQ1MjEzLCA1LjU1MzI4IiwgXAotICAgICAgICAgICIwLjI2NDU0MiwgMC4zOTM3MzIsIDEuMTQzMDUsIDEuODA0OTEsIDIuNjg4NDEsIDQuNDUwMTUsIDUuNTU0ODIiLCBcCi0gICAgICAgICAgIjAuMjcyMjk1LCAwLjM5Nzk1MywgMS4xNDM2MywgMS44MDQ5NiwgMi42ODYzLCA0LjQ1MjI1LCA1LjU1Mzk2IiwgXAotICAgICAgICAgICIwLjI4MDY2NiwgMC40MDM3MDIsIDEuMTQzNzcsIDEuODA1MDQsIDIuNjg5MjEsIDQuNDUxNiwgNS41NTI3NyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDMyNSwgMC4wMDMyNSwgMC4wMDMyNDksIDAuMDAzMjQ4LCAwLjAwMzI0OCwgMC4wMDMyNDYsIDAuMDAzMjQzIiwgXAotICAgICAgICAgICIwLjAwMzIzNCwgMC4wMDMyMzUsIDAuMDAzMjM1LCAwLjAwMzIzNSwgMC4wMDMyMzQsIDAuMDAzMjMzLCAwLjAwMzIzMiIsIFwKLSAgICAgICAgICAiMC4wMDMyMjgsIDAuMDAzMjMsIDAuMDAzMjMyLCAwLjAwMzIzMiwgMC4wMDMyMzIsIDAuMDAzMjMyLCAwLjAwMzIyOCIsIFwKLSAgICAgICAgICAiMC4wMDMyMjUsIDAuMDAzMjI4LCAwLjAwMzIzMSwgMC4wMDMyMzEsIDAuMDAzMjMsIDAuMDAzMjMsIDAuMDAzMjMiLCBcCi0gICAgICAgICAgIjAuMDAzMjIzLCAwLjAwMzIyNiwgMC4wMDMyMywgMC4wMDMyMzEsIDAuMDAzMjMxLCAwLjAwMzIzLCAwLjAwMzIyOCIsIFwKLSAgICAgICAgICAiMC4wMDMyMjIsIDAuMDAzMjI0LCAwLjAwMzIyNywgMC4wMDMyMjksIDAuMDAzMjI5LCAwLjAwMzIyOSwgMC4wMDMyMjgiLCBcCi0gICAgICAgICAgIjAuMDAzMjIzLCAwLjAwMzIyNSwgMC4wMDMyMjksIDAuMDAzMjI5LCAwLjAwMzIzLCAwLjAwMzIyOCwgMC4wMDMyMjciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDA4MDgsIDAuMDAwODA4LCAwLjAwMDgwOSwgMC4wMDA4MDgsIDAuMDAwODA4LCAwLjAwMDgwOCwgMC4wMDA4MDciLCBcCi0gICAgICAgICAgIjAuMDAwNzg4LCAwLjAwMDc5MSwgMC4wMDA3OTUsIDAuMDAwNzk3LCAwLjAwMDc5NiwgMC4wMDA3OTYsIDAuMDAwNzk0IiwgXAotICAgICAgICAgICIwLjAwMDc3NiwgMC4wMDA3ODIsIDAuMDAwNzksIDAuMDAwNzkyLCAwLjAwMDc5MiwgMC4wMDA3OTMsIDAuMDAwNzkzIiwgXAotICAgICAgICAgICIwLjAwMDc2OSwgMC4wMDA3NzYsIDAuMDAwNzg3LCAwLjAwMDc5LCAwLjAwMDc5MSwgMC4wMDA3OTIsIDAuMDAwNzkyIiwgXAotICAgICAgICAgICIwLjAwMDc2MiwgMC4wMDA3NywgMC4wMDA3ODUsIDAuMDAwNzg4LCAwLjAwMDc5LCAwLjAwMDc5MSwgMC4wMDA3OTEiLCBcCi0gICAgICAgICAgIjAuMDAwNzU1LCAwLjAwMDc2MywgMC4wMDA3ODEsIDAuMDAwNzg1LCAwLjAwMDc4OCwgMC4wMDA3OSwgMC4wMDA3OSIsIFwKLSAgICAgICAgICAiMC4wMDA3NSwgMC4wMDA3NTksIDAuMDAwNzc4LCAwLjAwMDc4MywgMC4wMDA3ODYsIDAuMDAwNzg4LCAwLjAwMDc4OSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkExIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI5MTUsIDAuMDAyOTE1LCAwLjAwMjkxNCwgMC4wMDI5MTMsIDAuMDAyOTE0LCAwLjAwMjkxMywgMC4wMDI5MDYiLCBcCi0gICAgICAgICAgIjAuMDAyODk0LCAwLjAwMjg5NywgMC4wMDI4OTgsIDAuMDAyOSwgMC4wMDI4OTcsIDAuMDAyODk3LCAwLjAwMjg5MSIsIFwKLSAgICAgICAgICAiMC4wMDI4ODgsIDAuMDAyODksIDAuMDAyODk1LCAwLjAwMjg5NiwgMC4wMDI4OTUsIDAuMDAyODk0LCAwLjAwMjg5MiIsIFwKLSAgICAgICAgICAiMC4wMDI4ODUsIDAuMDAyODg4LCAwLjAwMjg5MywgMC4wMDI4OTMsIDAuMDAyODk0LCAwLjAwMjg5MywgMC4wMDI4OTIiLCBcCi0gICAgICAgICAgIjAuMDAyODg1LCAwLjAwMjg4NywgMC4wMDI4OTIsIDAuMDAyODkzLCAwLjAwMjg5MywgMC4wMDI4OTMsIDAuMDAyODkyIiwgXAotICAgICAgICAgICIwLjAwMjg5LCAwLjAwMjg5LCAwLjAwMjg5MywgMC4wMDI4OTMsIDAuMDAyODkzLCAwLjAwMjg5MiwgMC4wMDI4OTEiLCBcCi0gICAgICAgICAgIjAuMDAyOTAyLCAwLjAwMjg5NiwgMC4wMDI4OTUsIDAuMDAyODk0LCAwLjAwMjg5NCwgMC4wMDI4OTMsIDAuMDAyODkyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwNTM1LCAwLjAwMDUzNywgMC4wMDA1NCwgMC4wMDA1NDEsIDAuMDAwNTQxLCAwLjAwMDU0LCAwLjAwMDUzOSIsIFwKLSAgICAgICAgICAiMC4wMDA1MjQsIDAuMDAwNTMzLCAwLjAwMDU0NiwgMC4wMDA1NDgsIDAuMDAwNTUsIDAuMDAwNTUxLCAwLjAwMDU1MiIsIFwKLSAgICAgICAgICAiMC4wMDA1MDMsIDAuMDAwNTE4LCAwLjAwMDU0MSwgMC4wMDA1NDYsIDAuMDAwNTQ5LCAwLjAwMDU1MSwgMC4wMDA1NTIiLCBcCi0gICAgICAgICAgIjAuMDAwNDg1LCAwLjAwMDUwNCwgMC4wMDA1MzUsIDAuMDAwNTQyLCAwLjAwMDU0NiwgMC4wMDA1NSwgMC4wMDA1NTEiLCBcCi0gICAgICAgICAgIjAuMDAwNDcxLCAwLjAwMDQ5MiwgMC4wMDA1MjksIDAuMDAwNTM4LCAwLjAwMDU0NCwgMC4wMDA1NDgsIDAuMDAwNTUiLCBcCi0gICAgICAgICAgIjAuMDAwNDU0LCAwLjAwMDQ3NiwgMC4wMDA1MiwgMC4wMDA1MzIsIDAuMDAwNTM5LCAwLjAwMDU0NiwgMC4wMDA1NDciLCBcCi0gICAgICAgICAgIjAuMDAwNDQ0LCAwLjAwMDQ2NSwgMC4wMDA1MTQsIDAuMDAwNTI3LCAwLjAwMDUzNiwgMC4wMDA1NDMsIDAuMDAwNTQ2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjQ3MywgMC4wMDI0NzQsIDAuMDAyNDc1LCAwLjAwMjQ3NSwgMC4wMDI0NzQsIDAuMDAyNDc0LCAwLjAwMjQ3NCIsIFwKLSAgICAgICAgICAiMC4wMDI0NjYsIDAuMDAyNDcsIDAuMDAyNDc1LCAwLjAwMjQ3NiwgMC4wMDI0NzYsIDAuMDAyNDc2LCAwLjAwMjQ3NyIsIFwKLSAgICAgICAgICAiMC4wMDI0NiwgMC4wMDI0NjYsIDAuMDAyNDc0LCAwLjAwMjQ3NiwgMC4wMDI0NzYsIDAuMDAyNDc2LCAwLjAwMjQ3NiIsIFwKLSAgICAgICAgICAiMC4wMDI0NTksIDAuMDAyNDYyLCAwLjAwMjQ3MywgMC4wMDI0NzUsIDAuMDAyNDc2LCAwLjAwMjQ3NiwgMC4wMDI0NzYiLCBcCi0gICAgICAgICAgIjAuMDAyNDU5LCAwLjAwMjQ2NSwgMC4wMDI0NzMsIDAuMDAyNDc1LCAwLjAwMjQ3NiwgMC4wMDI0NzcsIDAuMDAyNDc2IiwgXAotICAgICAgICAgICIwLjAwMjQ2OCwgMC4wMDI0NjgsIDAuMDAyNDczLCAwLjAwMjQ3NSwgMC4wMDI0NzYsIDAuMDAyNDc3LCAwLjAwMjQ3NyIsIFwKLSAgICAgICAgICAiMC4wMDI0NzgsIDAuMDAyNDc1LCAwLjAwMjQ3NSwgMC4wMDI0NzcsIDAuMDAyNDc3LCAwLjAwMjQ3NywgMC4wMDI0NzciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDA4MzgsIDAuMDAwODQxLCAwLjAwMDg0MywgMC4wMDA4NDMsIDAuMDAwODQzLCAwLjAwMDg0MywgMC4wMDA4NDMiLCBcCi0gICAgICAgICAgIjAuMDAwODE3LCAwLjAwMDgyNSwgMC4wMDA4MzcsIDAuMDAwODQsIDAuMDAwODQxLCAwLjAwMDg0MiwgMC4wMDA4NDIiLCBcCi0gICAgICAgICAgIjAuMDAwNzk4LCAwLjAwMDgxLCAwLjAwMDgzMSwgMC4wMDA4MzUsIDAuMDAwODM3LCAwLjAwMDg0LCAwLjAwMDg0IiwgXAotICAgICAgICAgICIwLjAwMDc4NSwgMC4wMDA3OTgsIDAuMDAwODI1LCAwLjAwMDgzMSwgMC4wMDA4MzUsIDAuMDAwODM4LCAwLjAwMDgzOSIsIFwKLSAgICAgICAgICAiMC4wMDA3NzUsIDAuMDAwNzg5LCAwLjAwMDgxOSwgMC4wMDA4MjcsIDAuMDAwODMyLCAwLjAwMDgzNiwgMC4wMDA4MzciLCBcCi0gICAgICAgICAgIjAuMDAwNzY2LCAwLjAwMDc3OSwgMC4wMDA4MTIsIDAuMDAwODIxLCAwLjAwMDgyOCwgMC4wMDA4MzMsIDAuMDAwODM1IiwgXAotICAgICAgICAgICIwLjAwMDc2MywgMC4wMDA3NzQsIDAuMDAwODA2LCAwLjAwMDgxOCwgMC4wMDA4MjUsIDAuMDAwODMxLCAwLjAwMDgzMyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDIwNDEsIDAuMDAyMDQyLCAwLjAwMjA0NCwgMC4wMDIwNDUsIDAuMDAyMDQ1LCAwLjAwMjA0NSwgMC4wMDIwNDUiLCBcCi0gICAgICAgICAgIjAuMDAyMDM3LCAwLjAwMjA0NCwgMC4wMDIwNTMsIDAuMDAyMDU0LCAwLjAwMjA1NSwgMC4wMDIwNTYsIDAuMDAyMDU2IiwgXAotICAgICAgICAgICIwLjAwMjAyOCwgMC4wMDIwMzgsIDAuMDAyMDUxLCAwLjAwMjA1NCwgMC4wMDIwNTcsIDAuMDAyMDU4LCAwLjAwMjA1OSIsIFwKLSAgICAgICAgICAiMC4wMDIwMjMsIDAuMDAyMDMyLCAwLjAwMjA0OSwgMC4wMDIwNTMsIDAuMDAyMDU1LCAwLjAwMjA1OCwgMC4wMDIwNTkiLCBcCi0gICAgICAgICAgIjAuMDAyMDIsIDAuMDAyMDMsIDAuMDAyMDQ4LCAwLjAwMjA1MiwgMC4wMDIwNTUsIDAuMDAyMDU4LCAwLjAwMjA1OCIsIFwKLSAgICAgICAgICAiMC4wMDIwMjQsIDAuMDAyMDMsIDAuMDAyMDQ1LCAwLjAwMjA1MSwgMC4wMDIwNTQsIDAuMDAyMDU3LCAwLjAwMjA1OCIsIFwKLSAgICAgICAgICAiMC4wMDIwMzEsIDAuMDAyMDM0LCAwLjAwMjA0NiwgMC4wMDIwNTEsIDAuMDAyMDU0LCAwLjAwMjA1NywgMC4wMDIwNTgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDA4MzcsIDAuMDAwODM5LCAwLjAwMDg0MiwgMC4wMDA4NDMsIDAuMDAwODQzLCAwLjAwMDg0MywgMC4wMDA4NDIiLCBcCi0gICAgICAgICAgIjAuMDAwODEzLCAwLjAwMDgyMiwgMC4wMDA4MzYsIDAuMDAwODM5LCAwLjAwMDg0LCAwLjAwMDg0MSwgMC4wMDA4NDEiLCBcCi0gICAgICAgICAgIjAuMDAwNzkxLCAwLjAwMDgwNywgMC4wMDA4MjksIDAuMDAwODM0LCAwLjAwMDgzNywgMC4wMDA4MzksIDAuMDAwODQiLCBcCi0gICAgICAgICAgIjAuMDAwNzg1LCAwLjAwMDc5NywgMC4wMDA4MjQsIDAuMDAwODMxLCAwLjAwMDgzNSwgMC4wMDA4MzgsIDAuMDAwODM4IiwgXAotICAgICAgICAgICIwLjAwMDc4MiwgMC4wMDA3OTMsIDAuMDAwODIsIDAuMDAwODI3LCAwLjAwMDgzMiwgMC4wMDA4MzYsIDAuMDAwODM3IiwgXAotICAgICAgICAgICIwLjAwMDc4NiwgMC4wMDA3OTIsIDAuMDAwODE1LCAwLjAwMDgyNCwgMC4wMDA4MywgMC4wMDA4MzQsIDAuMDAwODM2IiwgXAotICAgICAgICAgICIwLjAwMDc5NSwgMC4wMDA3OTYsIDAuMDAwODE0LCAwLjAwMDgyMiwgMC4wMDA4MjgsIDAuMDAwODMzLCAwLjAwMDgzNCIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IE9BSTMxWDEgKgotICogLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoT0FJMzFYMSkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjEzOTk4MzsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQTApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDkwNzE0OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDkwNDE0MTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA5MDcxNDsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA0MDksIDAuMDAwNDA5LCAwLjAwMDQwOSwgMC4wMDA0MDksIDAuMDAwNDA4LCAwLjAwMDQwOCwgMC4wMDA0MDgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA0MSwgMC4wMDA0MSwgMC4wMDA0MSwgMC4wMDA0MSwgMC4wMDA0MSwgMC4wMDA0MSwgMC4wMDA0MSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQTEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDkzMjA5NzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA5Mjk3OTQ7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwOTMyMDk3OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDQwOSwgMC4wMDA0MDksIDAuMDAwNDA5LCAwLjAwMDQwOSwgMC4wMDA0MDksIDAuMDAwNDA5LCAwLjAwMDQwOSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDQxLCAwLjAwMDQxLCAwLjAwMDQxLCAwLjAwMDQxLCAwLjAwMDQxLCAwLjAwMDQxLCAwLjAwMDQxIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihBMikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwOTMyNTQ3OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDkzMjU0NzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA5Mjk3MjQ7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNDA5LCAwLjAwMDQwOSwgMC4wMDA0MDksIDAuMDAwNDA5LCAwLjAwMDQwOSwgMC4wMDA0MDksIDAuMDAwNDA5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNDEsIDAuMDAwNDEsIDAuMDAwNDEsIDAuMDAwNDEsIDAuMDAwNDEsIDAuMDAwNDEsIDAuMDAwNDEiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA5MTcxMjc7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwOTE2NTQ7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwOTE3MTI3OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDMyOSwgMC4wMDAzMywgMC4wMDAzMjksIDAuMDAwMzMsIDAuMDAwMzMsIDAuMDAwMzMsIDAuMDAwMzMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA0NjQsIDAuMDAwNDY1LCAwLjAwMDQ2NSwgMC4wMDA0NjUsIDAuMDAwNDY1LCAwLjAwMDQ2NSwgMC4wMDA0NjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4wOTM2NTI7Ci0gICAgZnVuY3Rpb24gOiAiKCEoKChBMCtBMSkrQTIpIEIwKSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNDg4NzgsIDAuMjE3OTA3LCAwLjYwODkzNCwgMC45NTMyMDUsIDEuNDEzMDcsIDIuMzMwNjcsIDIuOTAzMjQiLCBcCi0gICAgICAgICAgIjAuMTU3MTQsIDAuMjI2MjA3LCAwLjYxNjk0LCAwLjk2MTU4MywgMS40MjAzMiwgMi4zMzc4LCAyLjkxMTciLCBcCi0gICAgICAgICAgIjAuMTY1NzQxLCAwLjIzNDg3MiwgMC42MjU1MTYsIDAuOTcwMDg1LCAxLjQyOTA0LCAyLjM0NzE0LCAyLjkyMDQ0IiwgXAotICAgICAgICAgICIwLjE3Mzc5NCwgMC4yNDI5NzQsIDAuNjMzNjg1LCAwLjk3ODUwNCwgMS40Mzc3OCwgMi4zNTYsIDIuOTI5NTMiLCBcCi0gICAgICAgICAgIjAuMTgxNjk0LCAwLjI1MDg4MSwgMC42NDE2OSwgMC45ODYyODEsIDEuNDQ1MTIsIDIuMzY0NDYsIDIuOTM2NCIsIFwKLSAgICAgICAgICAiMC4xOTQyNDIsIDAuMjYzNDQ4LCAwLjY1NDM2MywgMC45OTkwMDcsIDEuNDU3NjksIDIuMzc2ODMsIDIuOTQ5MTQiLCBcCi0gICAgICAgICAgIjAuMjA1MjgxLCAwLjI3NDQxNywgMC42NjUyNzEsIDEuMDA5NzMsIDEuNDY4OTIsIDIuMzg3MzcsIDIuOTYxMzEiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjY5NjQyLCAwLjQwNzc0MSwgMS4xODk2OCwgMS44Nzk0OCwgMi44MDA2OSwgNC42Mzc3OCwgNS43ODgyMiIsIFwKLSAgICAgICAgICAiMC4yNjk2NSwgMC40MDc0MjgsIDEuMTg5NDEsIDEuODc5NTgsIDIuNzk5NDQsIDQuNjM4NjEsIDUuNzg3NzEiLCBcCi0gICAgICAgICAgIjAuMjY5NDI5LCAwLjQwNzc3MywgMS4xOSwgMS44ODAxMSwgMi43OTk3MiwgNC42Mzg3NSwgNS43ODYzOCIsIFwKLSAgICAgICAgICAiMC4yNzAwMTYsIDAuNDA3NzkxLCAxLjE4OTE1LCAxLjg3OTYyLCAyLjgwMDU5LCA0LjYzOTI4LCA1Ljc4NzAxIiwgXAotICAgICAgICAgICIwLjI3MTMyOCwgMC40MDgyNzEsIDEuMTkwMiwgMS44Nzk0MiwgMi43OTk0NCwgNC42Mzk1OSwgNS43ODk1NiIsIFwKLSAgICAgICAgICAiMC4yNzQ4NzgsIDAuNDEwNTIyLCAxLjE4OTQsIDEuODc5NTUsIDIuNzk5MjUsIDQuNjM5MzgsIDUuNzg4MTQiLCBcCi0gICAgICAgICAgIjAuMjc4OTI4LCAwLjQxMzQwMiwgMS4xODk4OSwgMS44Nzk4NiwgMi43OTk0MiwgNC42Mzk0NSwgNS43ODY5NiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDQ0MSwgMC4xNTEyODksIDAuNDE1OTk3LCAwLjY0OTEzNiwgMC45NjAyMDksIDEuNTgyMjIsIDEuOTcwNTciLCBcCi0gICAgICAgICAgIjAuMTEzOTUyLCAwLjE2MDg1NiwgMC40MjU1MTYsIDAuNjU4NzEsIDAuOTY5NjE2LCAxLjU5MTI1LCAxLjk3OTQ4IiwgXAotICAgICAgICAgICIwLjEyNTAxNCwgMC4xNzE4NTgsIDAuNDM2NjI1LCAwLjY2OTkxOCwgMC45ODA5NjEsIDEuNjAyNzksIDEuOTkwNjEiLCBcCi0gICAgICAgICAgIjAuMTM1OTE4LCAwLjE4MjkwMywgMC40NDc3MzgsIDAuNjgwOTA5LCAwLjk5MTg5LCAxLjYxMzczLCAyLjAwMjg3IiwgXAotICAgICAgICAgICIwLjE0NjkxMSwgMC4xOTM3NTYsIDAuNDU4NTg1LCAwLjY5MTk1MiwgMS4wMDI3MywgMS42MjQ4NiwgMi4wMTM1IiwgXAotICAgICAgICAgICIwLjE2NDIxOSwgMC4yMTEyNSwgMC40NzYyODUsIDAuNzA5Njg0LCAxLjAyMDM4LCAxLjY0MjE5LCAyLjAzMTA1IiwgXAotICAgICAgICAgICIwLjE3OTMxNywgMC4yMjYzMjcsIDAuNDkxMzI3LCAwLjcyNDgwMSwgMS4wMzU2NSwgMS42NTczLCAyLjA0NjQyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE3OTk2NywgMC4yNzIwNTcsIDAuNzkzODg1LCAxLjI1NDI4LCAxLjg2ODA0LCAzLjA5NTYsIDMuODYyMjEiLCBcCi0gICAgICAgICAgIjAuMTgwMTI0LCAwLjI3MjA1OCwgMC43OTM5MzcsIDEuMjU0MjcsIDEuODY3NzMsIDMuMDk1NTcsIDMuODYzNjgiLCBcCi0gICAgICAgICAgIjAuMTgwMTE3LCAwLjI3MjI1OSwgMC43OTM5MjIsIDEuMjU0MjYsIDEuODY4MDIsIDMuMDk1NzUsIDMuODY0IiwgXAotICAgICAgICAgICIwLjE4MTQxNSwgMC4yNzIzOTUsIDAuNzkzODkzLCAxLjI1NDI4LCAxLjg2Nzk4LCAzLjA5NTcxLCAzLjg2NDc3IiwgXAotICAgICAgICAgICIwLjE4NDMzLCAwLjI3Mzk5NiwgMC43OTQxOTEsIDEuMjU0MywgMS44Njc5NCwgMy4wOTY2MiwgMy44NjMxIiwgXAotICAgICAgICAgICIwLjE5MDMwMywgMC4yNzgzMDcsIDAuNzkzOTAxLCAxLjI1NDQyLCAxLjg2ODA2LCAzLjA5NjQ0LCAzLjg2MzA1IiwgXAotICAgICAgICAgICIwLjE5NjgwNywgMC4yODMzODIsIDAuNzk0MzU4LCAxLjI1NDI0LCAxLjg2ODA1LCAzLjA5NTU4LCAzLjg2NDI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkExIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNDYxNSwgMC4yMTUyMzIsIDAuNjA2MTcsIDAuOTUwODE5LCAxLjQwOTA0LCAyLjMyNzYzLCAyLjkwMTQ4IiwgXAotICAgICAgICAgICIwLjE1NDU2OSwgMC4yMjM2OTQsIDAuNjE0MjM4LCAwLjk1ODgwMiwgMS40MTg2NSwgMi4zMzYwNSwgMi45MDk0MiIsIFwKLSAgICAgICAgICAiMC4xNjQ0NDYsIDAuMjMzNjI5LCAwLjYyNDE4NywgMC45Njg4NDgsIDEuNDI4NTMsIDIuMzQ2ODIsIDIuOTIwMDkiLCBcCi0gICAgICAgICAgIjAuMTc0Mjc4LCAwLjI0MzU2NywgMC42MzQxOTgsIDAuOTc5MzYsIDEuNDM3OTksIDIuMzU2NDgsIDIuOTI5NTMiLCBcCi0gICAgICAgICAgIjAuMTg0MDY3LCAwLjI1MzMzNywgMC42NDQzMDcsIDAuOTg5MTc2LCAxLjQ0NzU5LCAyLjM2NjI1LCAyLjkzOTg4IiwgXAotICAgICAgICAgICIwLjE5OTg3MiwgMC4yNjkxMDcsIDAuNjYwNTY1LCAxLjAwNDc2LCAxLjQ2MzczLCAyLjM4MTk1LCAyLjk1NTY2IiwgXAotICAgICAgICAgICIwLjIxMzc0MywgMC4yODMwMjYsIDAuNjczNjg1LCAxLjAxODU0LCAxLjQ3ODU0LCAyLjM5NjM3LCAyLjk2ODc5Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI2OTM4OCwgMC40MDc0NCwgMS4xODk2OSwgMS44Nzk2NSwgMi43OTkxNiwgNC42MzczOCwgNS43ODc1MSIsIFwKLSAgICAgICAgICAiMC4yNjk0MTUsIDAuNDA3NzgxLCAxLjE4OTE4LCAxLjg3OTMxLCAyLjc5OTg1LCA0LjYzNzE3LCA1Ljc4NjYzIiwgXAotICAgICAgICAgICIwLjI2OTUyNiwgMC40MDc2NDQsIDEuMTg5MTcsIDEuODc5NDMsIDIuNzk5NzQsIDQuNjQwMDIsIDUuNzg3MDEiLCBcCi0gICAgICAgICAgIjAuMjcwMzU1LCAwLjQwNzU0OSwgMS4xODkxOCwgMS44Nzk2NiwgMi43OTk4OCwgNC42MzkyMywgNS43ODg1OCIsIFwKLSAgICAgICAgICAiMC4yNzIzODgsIDAuNDA4MTM3LCAxLjE4OTIsIDEuODc5NjUsIDIuODAxMSwgNC42Mzc0OSwgNS43ODY3IiwgXAotICAgICAgICAgICIwLjI3NzQ5NiwgMC40MTExMDEsIDEuMTg5NjIsIDEuODc5MzIsIDIuNzk5MjUsIDQuNjM5MjEsIDUuNzg1OTEiLCBcCi0gICAgICAgICAgIjAuMjgzMjEzLCAwLjQxNTQ5NiwgMS4xODkxMSwgMS44Nzk1NywgMi44MDAwNSwgNC42Mzc5NSwgNS43ODgxMiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDA1NzgsIDAuMTQ3MjcsIDAuNDExNjksIDAuNjQ0OTQ2LCAwLjk1NjExMiwgMS41Nzc2NiwgMS45NjY4MyIsIFwKLSAgICAgICAgICAiMC4xMTAyNDQsIDAuMTU3MDAyLCAwLjQyMTMzMiwgMC42NTQ0NDYsIDAuOTY1MTY4LCAxLjU4NzU0LCAxLjk3NTI0IiwgXAotICAgICAgICAgICIwLjEyMTI5NywgMC4xNjgwODUsIDAuNDMyODMsIDAuNjY2MDYyLCAwLjk3NjgyLCAxLjU5ODUzLCAxLjk4Nzg2IiwgXAotICAgICAgICAgICIwLjEzMjA5OSwgMC4xNzg5OTQsIDAuNDQzNzEzLCAwLjY3NjcyOSwgMC45ODc4ODEsIDEuNjA5NTMsIDEuOTk4NDkiLCBcCi0gICAgICAgICAgIjAuMTQzMDQ3LCAwLjE4OTc5OSwgMC40NTQ2MywgMC42ODc3NzMsIDAuOTk4NTM1LCAxLjYyMDUyLCAyLjAwOTQ1IiwgXAotICAgICAgICAgICIwLjE2MDIwMiwgMC4yMDcwMTYsIDAuNDcxOTk0LCAwLjcwNTE5OSwgMS4wMTYxNiwgMS42Mzg2OSwgMi4wMjY2MyIsIFwKLSAgICAgICAgICAiMC4xNzUwNTEsIDAuMjIyMjc2LCAwLjQ4NzE4LCAwLjcyMDU2OSwgMS4wMzE0NiwgMS42NTMyNCwgMi4wNDIyMSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNzU0MzIsIDAuMjY3MzYyLCAwLjc4OTE3MiwgMS4yNTAyNywgMS44NjQzMSwgMy4wOTIzNCwgMy44NTg4MyIsIFwKLSAgICAgICAgICAiMC4xNzU0MTYsIDAuMjY3NDM3LCAwLjc4OTM3NywgMS4yNDk4OSwgMS44NjM0MSwgMy4wOTExNiwgMy44NTcxOCIsIFwKLSAgICAgICAgICAiMC4xNzU0MTEsIDAuMjY3NTUsIDAuNzg5Mjk2LCAxLjI1MDI3LCAxLjg2MzU1LCAzLjA5MTQzLCAzLjg1OTQzIiwgXAotICAgICAgICAgICIwLjE3NjkxMywgMC4yNjc3ODcsIDAuNzg5MTgzLCAxLjI1MDI1LCAxLjg2NDA3LCAzLjA5MDk5LCAzLjg1ODcyIiwgXAotICAgICAgICAgICIwLjE3OTc4MSwgMC4yNjkyMDgsIDAuNzg5NDIzLCAxLjI0OTU0LCAxLjg2MzU4LCAzLjA5MTg1LCAzLjg1OSIsIFwKLSAgICAgICAgICAiMC4xODU4ODUsIDAuMjczNDg3LCAwLjc4OTQ0NCwgMS4yNDk1OSwgMS44NjM3MywgMy4wOTE4OCwgMy44NTc2NyIsIFwKLSAgICAgICAgICAiMC4xOTI1MzksIDAuMjc5LCAwLjc4OTY2OCwgMS4yNDk1MywgMS44NjM2OCwgMy4wOTA0NCwgMy44NTkzOCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTM5NzQ0LCAwLjIwODgzLCAwLjU5OTU4NSwgMC45NDM2NzQsIDEuNDAzMjEsIDIuMzIyMTgsIDIuODk1MDciLCBcCi0gICAgICAgICAgIjAuMTQ4MDE2LCAwLjIxNzEyOSwgMC42MDgwNTYsIDAuOTUyMTA2LCAxLjQxMTc1LCAyLjMzMDc2LCAyLjkwMzYxIiwgXAotICAgICAgICAgICIwLjE1ODQxNSwgMC4yMjc4NDgsIDAuNjE4MTk3LCAwLjk2Mjk1OCwgMS40MjIyNCwgMi4zNDA0MywgMi45MTM4MyIsIFwKLSAgICAgICAgICAiMC4xNjkzNTksIDAuMjM4MTYsIDAuNjI5MzMsIDAuOTczNTI5LCAxLjQzMzA5LCAyLjM1MTU1LCAyLjkyNDI5IiwgXAotICAgICAgICAgICIwLjE4MDE3OSwgMC4yNDkyODQsIDAuNjQwMDU4LCAwLjk4NDQ4NSwgMS40NDM1NiwgMi4zNjIwMiwgMi45MzU1NiIsIFwKLSAgICAgICAgICAiMC4xOTc4MTQsIDAuMjY2NzE1LCAwLjY1NzQ0OSwgMS4wMDE5NSwgMS40NjA4NiwgMi4zODAwOCwgMi45NTIyIiwgXAotICAgICAgICAgICIwLjIxMzAxNCwgMC4yODIwMDQsIDAuNjcyNjY0LCAxLjAxNzIzLCAxLjQ3Njk2LCAyLjM5NDk4LCAyLjk2NzM1Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI2OTQzNCwgMC40MDc1MTYsIDEuMTg5NzgsIDEuODgwMzEsIDIuNzk5OTUsIDQuNjM5NTksIDUuNzg5ODMiLCBcCi0gICAgICAgICAgIjAuMjY5NDEsIDAuNDA3NzU0LCAxLjE4OTYzLCAxLjg4MDQsIDIuNzk5NDYsIDQuNjQwMTIsIDUuNzg2OTgiLCBcCi0gICAgICAgICAgIjAuMjY5MzAyLCAwLjQwNzUzMywgMS4xODk0MywgMS44Nzk3NiwgMi44MDAxNywgNC42Mzc0OSwgNS43ODc2OSIsIFwKLSAgICAgICAgICAiMC4yNzA4NjEsIDAuNDA3MzcxLCAxLjE4OTQzLCAxLjg4MDM2LCAyLjgsIDQuNjM3OTEsIDUuNzg4ODEiLCBcCi0gICAgICAgICAgIjAuMjczODc5LCAwLjQwODU3MSwgMS4xODkxNiwgMS44Nzk1NSwgMi43OTk0OSwgNC42Mzc1MSwgNS43ODY2MSIsIFwKLSAgICAgICAgICAiMC4yODE4OTUsIDAuNDEzMDI1LCAxLjE4OTE1LCAxLjg3OTI3LCAyLjc5OTI1LCA0LjYzODE5LCA1Ljc4OTA2IiwgXAotICAgICAgICAgICIwLjI5MDMyNywgMC40MTkwOTIsIDEuMTg5NDEsIDEuODc5NDUsIDIuODAwMjMsIDQuNjM3OTcsIDUuNzg4MTIiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk0MDEsIDAuMTM5NjQ1LCAwLjM5Nzk4MywgMC42MjYwNzUsIDAuOTMwMzczLCAxLjUzODk3LCAxLjkxODA3IiwgXAotICAgICAgICAgICIwLjEwMzg4MywgMC4xNDk1OTUsIDAuNDA3OTQ5LCAwLjYzNjM5NCwgMC45NDAyMjUsIDEuNTQ4MDMsIDEuOTI3MjciLCBcCi0gICAgICAgICAgIjAuMTE1MDA0LCAwLjE2MDcyLCAwLjQxOTU3NywgMC42NDc0MzcsIDAuOTUxNjk5LCAxLjU2MDMzLCAxLjkzOTM4IiwgXAotICAgICAgICAgICIwLjEyNTg2NCwgMC4xNzE3MTQsIDAuNDMwNDksIDAuNjU4NTE2LCAwLjk2MjMxLCAxLjU3MDYzLCAxLjk1MDg1IiwgXAotICAgICAgICAgICIwLjEzNjkzMSwgMC4xODI2MjgsIDAuNDQxNTMyLCAwLjY2OTY5NywgMC45NzM1MTUsIDEuNTgxNjYsIDEuOTYyMTYiLCBcCi0gICAgICAgICAgIjAuMTU0MjQyLCAwLjIwMDI1NywgMC40NTkxNDYsIDAuNjg3MjQxLCAwLjk5MTM3NiwgMS42MDAyNywgMS45Nzk1NCIsIFwKLSAgICAgICAgICAiMC4xNjk0MDEsIDAuMjE1NDMsIDAuNDc0NTg3LCAwLjcwMjg0LCAxLjAwNjkzLCAxLjYxNTQzLCAxLjk5NDkzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE2NjU3NCwgMC4yNTY2NzksIDAuNzY3MTkyLCAxLjIyMjY3LCAxLjgxMjc4LCAzLjAxMiwgMy43NTk5NiIsIFwKLSAgICAgICAgICAiMC4xNjY1MTUsIDAuMjU3MzcsIDAuNzY3MjAyLCAxLjIxMzksIDEuODEzNjcsIDMuMDEzNzMsIDMuNzcwNjUiLCBcCi0gICAgICAgICAgIjAuMTY2NzA2LCAwLjI1NjU3MywgMC43NjQ4MjksIDEuMjE0MywgMS44MTI5LCAzLjAxMTg3LCAzLjc3MjE1IiwgXAotICAgICAgICAgICIwLjE2ODMyOCwgMC4yNTcwNzgsIDAuNzY5NjAyLCAxLjIxNTUzLCAxLjgxODU1LCAzLjAzMTk2LCAzLjc2NDAxIiwgXAotICAgICAgICAgICIwLjE3MTE3MywgMC4yNTg3NTgsIDAuNzY3MDc5LCAxLjIxNDI3LCAxLjgyMzYxLCAzLjAyMDE4LCAzLjc1OTQ5IiwgXAotICAgICAgICAgICIwLjE3Nzc1MiwgMC4yNjMzOTksIDAuNzY3MTgsIDEuMjIwNjgsIDEuODE4NDEsIDMuMDEwMTcsIDMuNzYwODgiLCBcCi0gICAgICAgICAgIjAuMTg0OTEzLCAwLjI2ODI2NywgMC43NjU1NTQsIDEuMjE0MjUsIDEuODI0OTIsIDMuMDEwNzgsIDMuNzcxMzIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjAiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0ODY5LCAwLjA3MzI3MywgMC4yMTI0NTcsIDAuMzM1MzQyLCAwLjQ5OTA1NywgMC44MjY4NzUsIDEuMDMxMTIiLCBcCi0gICAgICAgICAgIjAuMDU4NTk2LCAwLjA4MzI0MSwgMC4yMjI0NDEsIDAuMzQ1NDE1LCAwLjUwODg5LCAwLjgzNjM1MywgMS4wNDExMiIsIFwKLSAgICAgICAgICAiMC4wNzEzMjEsIDAuMDk1Njc5LCAwLjIzNDkzNSwgMC4zNTc3MywgMC41MjE0NDEsIDAuODQ4Nzc1LCAxLjA1Mzg4IiwgXAotICAgICAgICAgICIwLjA4Mzg4MywgMC4xMDgzODUsIDAuMjQ3Mzc4LCAwLjM3MDA2MiwgMC41MzI5MDIsIDAuODYwMjQxLCAxLjA2NTA1IiwgXAotICAgICAgICAgICIwLjA5NjUzNSwgMC4xMjExMzUsIDAuMjYwMDIyLCAwLjM4MjYzLCAwLjU0NTEwMSwgMC44NzI5ODgsIDEuMDc3MTkiLCBcCi0gICAgICAgICAgIjAuMTE0NDM0LCAwLjE0MTQ0NSwgMC4yNzk3NDcsIDAuNDAyODAxLCAwLjU2NjI5LCAwLjg5MjAzLCAxLjA5NjYyIiwgXAotICAgICAgICAgICIwLjEyNzk4MiwgMC4xNTg0MTUsIDAuMjk3MzEyLCAwLjQyMDUzOSwgMC41ODQwMDEsIDAuOTA5MTg1LCAxLjExMzkxIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwMjcwMywgMC4xNTI5NSwgMC40Mzg2ODIsIDAuNjkxLCAxLjAyNzc1LCAxLjcwMDksIDIuMTIxOTMiLCBcCi0gICAgICAgICAgIjAuMTAyOTgsIDAuMTUyOTQ2LCAwLjQzODU4MywgMC42OTEwNjIsIDEuMDI3NzMsIDEuNzAwOTMsIDIuMTIxOSIsIFwKLSAgICAgICAgICAiMC4xMDY5MiwgMC4xNTQ3NTgsIDAuNDM4NjE4LCAwLjY5MTA5NSwgMS4wMjc3NiwgMS43MDA4NiwgMi4xMjE4IiwgXAotICAgICAgICAgICIwLjExMzM4OSwgMC4xNTkyNzIsIDAuNDM4NjgzLCAwLjY5MDg3NiwgMS4wMjc3MiwgMS43MDA4MywgMi4xMjE5OSIsIFwKLSAgICAgICAgICAiMC4xMjExNjMsIDAuMTY1Mzk2LCAwLjQzOTIyNCwgMC42OTA5NzUsIDEuMDI3NzMsIDEuNzAwOSwgMi4xMjE4MyIsIFwKLSAgICAgICAgICAiMC4xMzUyMTQsIDAuMTc3MTMxLCAwLjQ0MzIxMSwgMC42OTExNjgsIDEuMDI3NzQsIDEuNzAwOSwgMi4xMjIzNyIsIFwKLSAgICAgICAgICAiMC4xNDgzNzksIDAuMTg4NzczLCAwLjQ0ODkxNSwgMC42OTI5ODksIDEuMDI3NTYsIDEuNzAxMjQsIDIuMTIxNzkiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk4NzgsIDAuMTQ1Njk2LCAwLjQxMDQ1NywgMC42NDM3MjEsIDAuOTU0NzEyLCAxLjU3NzAyLCAxLjk2NTA1IiwgXAotICAgICAgICAgICIwLjEwNzg3OCwgMC4xNTQ4MzgsIDAuNDE5NTkzLCAwLjY1Mjg0NiwgMC45NjM3MDMsIDEuNTg1MzksIDEuOTczNTciLCBcCi0gICAgICAgICAgIjAuMTE5NDUsIDAuMTY2NDcsIDAuNDMxMzI1LCAwLjY2NDYwOCwgMC45NzU3NjIsIDEuNTk3LCAxLjk4NjcyIiwgXAotICAgICAgICAgICIwLjEzMTEwNSwgMC4xNzgwOSwgMC40NDMwNTcsIDAuNjc2Mjg3LCAwLjk4NzA1OCwgMS42MDkzMiwgMS45OTg0OCIsIFwKLSAgICAgICAgICAiMC4xNDI5MjYsIDAuMTg5ODI0LCAwLjQ1NDY3OSwgMC42ODgwNzIsIDAuOTk4ODM1LCAxLjYyMTA2LCAyLjAwOTQ4IiwgXAotICAgICAgICAgICIwLjE2MjM4OCwgMC4yMDg2ODQsIDAuNDczNDY2LCAwLjcwNjcxMiwgMS4wMTc2MywgMS42NDAxNiwgMi4wMjg3IiwgXAotICAgICAgICAgICIwLjE3OTQxNSwgMC4yMjU0NDIsIDAuNDg5ODc4LCAwLjcyMzM4NiwgMS4wMzQxMSwgMS42NTU3OSwgMi4wNDU1NyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNzk5NjgsIDAuMjcyMDQ3LCAwLjc5NDEwNiwgMS4yNTQyNywgMS44NjgwNSwgMy4wOTU4MiwgMy44NjQwMiIsIFwKLSAgICAgICAgICAiMC4xNzk5ODIsIDAuMjcyMDgyLCAwLjc5Mzg4NSwgMS4yNTQ3NSwgMS44Njg2NSwgMy4wOTY0OCwgMy44NjI3NCIsIFwKLSAgICAgICAgICAiMC4xODAyODcsIDAuMjcyMDYyLCAwLjc5Mzk1NywgMS4yNTQ4LCAxLjg2Nzk4LCAzLjA5NjM3LCAzLjg2MzUxIiwgXAotICAgICAgICAgICIwLjE4MzIsIDAuMjcyODMsIDAuNzkzODkzLCAxLjI1NDMsIDEuODY3ODgsIDMuMDk1NTUsIDMuODYzMzkiLCBcCi0gICAgICAgICAgIjAuMTg4MjA3LCAwLjI3NTUzOSwgMC43OTM5MDUsIDEuMjU0MjUsIDEuODY4MDEsIDMuMDk2ODUsIDMuODYzMjYiLCBcCi0gICAgICAgICAgIjAuMTk3NjEzLCAwLjI4Mjg4NSwgMC43OTM5MzQsIDEuMjU0MjcsIDEuODY4MDUsIDMuMDk1NjQsIDMuODYzMzMiLCBcCi0gICAgICAgICAgIjAuMjA3NTc5LCAwLjI5MTE4NCwgMC43OTQ0MzQsIDEuMjU0MTMsIDEuODY4MDUsIDMuMDk1NiwgMy44NjM2NiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDMxMTgsIDAuMDAzMTE4LCAwLjAwMzExNywgMC4wMDMxMTcsIDAuMDAzMTE2LCAwLjAwMzExMywgMC4wMDMxMTIiLCBcCi0gICAgICAgICAgIjAuMDAzMTA1LCAwLjAwMzEwNywgMC4wMDMxMDksIDAuMDAzMTA4LCAwLjAwMzEwNywgMC4wMDMxMDQsIDAuMDAzMTAzIiwgXAotICAgICAgICAgICIwLjAwMzA5OCwgMC4wMDMxMDEsIDAuMDAzMTA1LCAwLjAwMzEwNiwgMC4wMDMxMDksIDAuMDAzMTAzLCAwLjAwMzA5OSIsIFwKLSAgICAgICAgICAiMC4wMDMwOTMsIDAuMDAzMDk3LCAwLjAwMzEwNCwgMC4wMDMxMDQsIDAuMDAzMTA2LCAwLjAwMzEwMywgMC4wMDMxIiwgXAotICAgICAgICAgICIwLjAwMzA4OSwgMC4wMDMwOTQsIDAuMDAzMTAyLCAwLjAwMzEwMywgMC4wMDMxMDMsIDAuMDAzMTA0LCAwLjAwMzEiLCBcCi0gICAgICAgICAgIjAuMDAzMDg1LCAwLjAwMzA5LCAwLjAwMzEsIDAuMDAzMTAxLCAwLjAwMzEwMiwgMC4wMDMxMDEsIDAuMDAzMSIsIFwKLSAgICAgICAgICAiMC4wMDMwODMsIDAuMDAzMDg4LCAwLjAwMzA5OSwgMC4wMDMxMDEsIDAuMDAzMTAzLCAwLjAwMzEwMSwgMC4wMDMwOTkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDA3OTQsIDAuMDAwNzk0LCAwLjAwMDc5NSwgMC4wMDA3OTUsIDAuMDAwNzk0LCAwLjAwMDc5MywgMC4wMDA3OTMiLCBcCi0gICAgICAgICAgIjAuMDAwNzcsIDAuMDAwNzcxLCAwLjAwMDc3MiwgMC4wMDA3NzQsIDAuMDAwNzczLCAwLjAwMDc3LCAwLjAwMDc3MiIsIFwKLSAgICAgICAgICAiMC4wMDA3NjEsIDAuMDAwNzY0LCAwLjAwMDc2OCwgMC4wMDA3NjgsIDAuMDAwNzY4LCAwLjAwMDc2OCwgMC4wMDA3NjgiLCBcCi0gICAgICAgICAgIjAuMDAwNzU1LCAwLjAwMDc1OSwgMC4wMDA3NjUsIDAuMDAwNzY2LCAwLjAwMDc2NywgMC4wMDA3NjcsIDAuMDAwNzY2IiwgXAotICAgICAgICAgICIwLjAwMDc1LCAwLjAwMDc1NSwgMC4wMDA3NjMsIDAuMDAwNzY0LCAwLjAwMDc2NSwgMC4wMDA3NjYsIDAuMDAwNzY2IiwgXAotICAgICAgICAgICIwLjAwMDc0NiwgMC4wMDA3NTEsIDAuMDAwNzYxLCAwLjAwMDc2MywgMC4wMDA3NjQsIDAuMDAwNzY0LCAwLjAwMDc2NSIsIFwKLSAgICAgICAgICAiMC4wMDA3NDMsIDAuMDAwNzQ5LCAwLjAwMDc1OSwgMC4wMDA3NjIsIDAuMDAwNzYzLCAwLjAwMDc2NCwgMC4wMDA3NjQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyNzksIDAuMDAyNzksIDAuMDAyNzksIDAuMDAyNzg3LCAwLjAwMjc4OCwgMC4wMDI3ODUsIDAuMDAyNzg1IiwgXAotICAgICAgICAgICIwLjAwMjc3NywgMC4wMDI3NzgsIDAuMDAyNzgsIDAuMDAyNzgsIDAuMDAyNzc5LCAwLjAwMjc3NywgMC4wMDI3NzUiLCBcCi0gICAgICAgICAgIjAuMDAyNzcsIDAuMDAyNzczLCAwLjAwMjc3NywgMC4wMDI3NzgsIDAuMDAyNzc2LCAwLjAwMjc3NSwgMC4wMDI3NzUiLCBcCi0gICAgICAgICAgIjAuMDAyNzY1LCAwLjAwMjc2OSwgMC4wMDI3NzUsIDAuMDAyNzc3LCAwLjAwMjc3NiwgMC4wMDI3NzMsIDAuMDAyNzczIiwgXAotICAgICAgICAgICIwLjAwMjc2MiwgMC4wMDI3NjYsIDAuMDAyNzc0LCAwLjAwMjc3NiwgMC4wMDI3NzUsIDAuMDAyNzc0LCAwLjAwMjc3MiIsIFwKLSAgICAgICAgICAiMC4wMDI3NTksIDAuMDAyNzYzLCAwLjAwMjc3MiwgMC4wMDI3NzQsIDAuMDAyNzc0LCAwLjAwMjc3MywgMC4wMDI3NzEiLCBcCi0gICAgICAgICAgIjAuMDAyNzU5LCAwLjAwMjc2MiwgMC4wMDI3NzEsIDAuMDAyNzczLCAwLjAwMjc3NSwgMC4wMDI3NzMsIDAuMDAyNzcyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwNTQ4LCAwLjAwMDU0OCwgMC4wMDA1NDksIDAuMDAwNTQ5LCAwLjAwMDU0OSwgMC4wMDA1NDksIDAuMDAwNTQ4IiwgXAotICAgICAgICAgICIwLjAwMDUzNiwgMC4wMDA1NDEsIDAuMDAwNTQ2LCAwLjAwMDU0NywgMC4wMDA1NDcsIDAuMDAwNTQ4LCAwLjAwMDU0NyIsIFwKLSAgICAgICAgICAiMC4wMDA1MjIsIDAuMDAwNTMsIDAuMDAwNTQyLCAwLjAwMDU0NSwgMC4wMDA1NDYsIDAuMDAwNTQ3LCAwLjAwMDU0NyIsIFwKLSAgICAgICAgICAiMC4wMDA1MTEsIDAuMDAwNTIyLCAwLjAwMDUzOSwgMC4wMDA1NDIsIDAuMDAwNTQ0LCAwLjAwMDU0NiwgMC4wMDA1NDYiLCBcCi0gICAgICAgICAgIjAuMDAwNTAxLCAwLjAwMDUxNCwgMC4wMDA1MzUsIDAuMDAwNTQsIDAuMDAwNTQzLCAwLjAwMDU0NSwgMC4wMDA1NDUiLCBcCi0gICAgICAgICAgIjAuMDAwNDksIDAuMDAwNTA0LCAwLjAwMDUzLCAwLjAwMDUzNywgMC4wMDA1NCwgMC4wMDA1NDMsIDAuMDAwNTQ0IiwgXAotICAgICAgICAgICIwLjAwMDQ4NCwgMC4wMDA0OTgsIDAuMDAwNTI3LCAwLjAwMDUzNCwgMC4wMDA1MzksIDAuMDAwNTQyLCAwLjAwMDU0MyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEyIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI0NDksIDAuMDAyNDUsIDAuMDAyNDUsIDAuMDAyNDQ5LCAwLjAwMjQ0OCwgMC4wMDI0NDgsIDAuMDAyNDQ0IiwgXAotICAgICAgICAgICIwLjAwMjQzMSwgMC4wMDI0MzQsIDAuMDAyNDM5LCAwLjAwMjQzOSwgMC4wMDI0MzksIDAuMDAyNDM0LCAwLjAwMjQzNCIsIFwKLSAgICAgICAgICAiMC4wMDI0MiwgMC4wMDI0MjcsIDAuMDAyNDM0LCAwLjAwMjQzNSwgMC4wMDI0MzUsIDAuMDAyNDMzLCAwLjAwMjQzMiIsIFwKLSAgICAgICAgICAiMC4wMDI0MTcsIDAuMDAyNDIyLCAwLjAwMjQzMiwgMC4wMDI0MzQsIDAuMDAyNDM0LCAwLjAwMjQzMywgMC4wMDI0MzEiLCBcCi0gICAgICAgICAgIjAuMDAyNDE3LCAwLjAwMjQyMSwgMC4wMDI0MywgMC4wMDI0MzMsIDAuMDAyNDMzLCAwLjAwMjQzMiwgMC4wMDI0MzEiLCBcCi0gICAgICAgICAgIjAuMDAyNDIxLCAwLjAwMjQyMywgMC4wMDI0MywgMC4wMDI0MzIsIDAuMDAyNDMzLCAwLjAwMjQzMiwgMC4wMDI0MzEiLCBcCi0gICAgICAgICAgIjAuMDAyNDI5LCAwLjAwMjQyOCwgMC4wMDI0MzEsIDAuMDAyNDMyLCAwLjAwMjQzMywgMC4wMDI0MzEsIDAuMDAyNDMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDAyNTksIDAuMDAwMjYxLCAwLjAwMDI2MywgMC4wMDAyNjQsIDAuMDAwMjY0LCAwLjAwMDI2NSwgMC4wMDAyNjUiLCBcCi0gICAgICAgICAgIjAuMDAwMjU5LCAwLjAwMDI2OCwgMC4wMDAyOCwgMC4wMDAyODIsIDAuMDAwMjg0LCAwLjAwMDI4NSwgMC4wMDAyODUiLCBcCi0gICAgICAgICAgIjAuMDAwMjQxLCAwLjAwMDI1NiwgMC4wMDAyNzgsIDAuMDAwMjgyLCAwLjAwMDI4NCwgMC4wMDAyODcsIDAuMDAwMjg3IiwgXAotICAgICAgICAgICIwLjAwMDIyNCwgMC4wMDAyNDMsIDAuMDAwMjczLCAwLjAwMDI4LCAwLjAwMDI4MywgMC4wMDAyODYsIDAuMDAwMjg3IiwgXAotICAgICAgICAgICIwLjAwMDIxLCAwLjAwMDIzMiwgMC4wMDAyNjgsIDAuMDAwMjc2LCAwLjAwMDI4MSwgMC4wMDAyODUsIDAuMDAwMjg3IiwgXAotICAgICAgICAgICIwLjAwMDE5MywgMC4wMDAyMTcsIDAuMDAwMjYxLCAwLjAwMDI3MiwgMC4wMDAyNzksIDAuMDAwMjg0LCAwLjAwMDI4NSIsIFwKLSAgICAgICAgICAiMC4wMDAxODIsIDAuMDAwMjA3LCAwLjAwMDI1NSwgMC4wMDAyNjgsIDAuMDAwMjc1LCAwLjAwMDI4MiwgMC4wMDAyODQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyMTQsIDAuMDAyMTQyLCAwLjAwMjE0NSwgMC4wMDIxNDUsIDAuMDAyMTQ1LCAwLjAwMjE0NiwgMC4wMDIxNDYiLCBcCi0gICAgICAgICAgIjAuMDAyMTMsIDAuMDAyMTM4LCAwLjAwMjE0OSwgMC4wMDIxNSwgMC4wMDIxNTIsIDAuMDAyMTUzLCAwLjAwMjE1MyIsIFwKLSAgICAgICAgICAiMC4wMDIxMTcsIDAuMDAyMTI3LCAwLjAwMjE0NSwgMC4wMDIxNDksIDAuMDAyMTUsIDAuMDAyMTU0LCAwLjAwMjE1NSIsIFwKLSAgICAgICAgICAiMC4wMDIxMTMsIDAuMDAyMTI0LCAwLjAwMjE0MywgMC4wMDIxNDgsIDAuMDAyMTUxLCAwLjAwMjE1NCwgMC4wMDIxNTQiLCBcCi0gICAgICAgICAgIjAuMDAyMTExLCAwLjAwMjEyMSwgMC4wMDIxNDEsIDAuMDAyMTQ2LCAwLjAwMjE1LCAwLjAwMjE1MywgMC4wMDIxNTQiLCBcCi0gICAgICAgICAgIjAuMDAyMTE2LCAwLjAwMjEyMiwgMC4wMDIxMzksIDAuMDAyMTQ1LCAwLjAwMjE0OSwgMC4wMDIxNTIsIDAuMDAyMTUzIiwgXAotICAgICAgICAgICIwLjAwMjEzMSwgMC4wMDIxMjcsIDAuMDAyMTM5LCAwLjAwMjE0NiwgMC4wMDIxNDksIDAuMDAyMTUyLCAwLjAwMjE1MyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDgzMiwgMC4wMDA4MzUsIDAuMDAwODM3LCAwLjAwMDgzOCwgMC4wMDA4MzgsIDAuMDAwODM3LCAwLjAwMDgzNyIsIFwKLSAgICAgICAgICAiMC4wMDA4MDgsIDAuMDAwODE3LCAwLjAwMDgzMSwgMC4wMDA4MzQsIDAuMDAwODM1LCAwLjAwMDgzNiwgMC4wMDA4MzYiLCBcCi0gICAgICAgICAgIjAuMDAwNzksIDAuMDAwODAzLCAwLjAwMDgyNCwgMC4wMDA4MjksIDAuMDAwODMyLCAwLjAwMDgzNCwgMC4wMDA4MzQiLCBcCi0gICAgICAgICAgIjAuMDAwNzgyLCAwLjAwMDc5NCwgMC4wMDA4MTksIDAuMDAwODI2LCAwLjAwMDgyOSwgMC4wMDA4MzIsIDAuMDAwODMzIiwgXAotICAgICAgICAgICIwLjAwMDc3OSwgMC4wMDA3ODksIDAuMDAwODE1LCAwLjAwMDgyMiwgMC4wMDA4MjcsIDAuMDAwODMxLCAwLjAwMDgzMiIsIFwKLSAgICAgICAgICAiMC4wMDA3ODcsIDAuMDAwNzg5LCAwLjAwMDgxMSwgMC4wMDA4MTksIDAuMDAwODI1LCAwLjAwMDgyOSwgMC4wMDA4MyIsIFwKLSAgICAgICAgICAiMC4wMDA3OTksIDAuMDAwNzk1LCAwLjAwMDgxLCAwLjAwMDgxOCwgMC4wMDA4MjMsIDAuMDAwODI4LCAwLjAwMDgyOSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IE9BSTMyWDEgKgotICogLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoT0FJMzJYMSkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjE3NjU4MzsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQTApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDg2MDA3NjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA4NTY5NzU7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwODYwMDc2OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDQwOSwgMC4wMDA0MDksIDAuMDAwNDA5LCAwLjAwMDQwOCwgMC4wMDA0MDksIDAuMDAwNDA4LCAwLjAwMDQwOSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDQxLCAwLjAwMDQxLCAwLjAwMDQxLCAwLjAwMDQxLCAwLjAwMDQxLCAwLjAwMDQxLCAwLjAwMDQxIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihBMSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwODY5NTY1OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDg2NzI5MjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA4Njk1NjU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNDA5LCAwLjAwMDQwOSwgMC4wMDA0MDksIDAuMDAwNDA5LCAwLjAwMDQwOSwgMC4wMDA0MDksIDAuMDAwNDA5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNDEsIDAuMDAwNDEsIDAuMDAwNDEsIDAuMDAwNDEsIDAuMDAwNDEsIDAuMDAwNDEsIDAuMDAwNDEiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEEyKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA4ODMzNjY7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwODgzMzY2OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDg4MDMwNjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA0MDksIDAuMDAwNDA5LCAwLjAwMDQwOSwgMC4wMDA0MDksIDAuMDAwNDA5LCAwLjAwMDQwOSwgMC4wMDA0MDkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA0MSwgMC4wMDA0MSwgMC4wMDA0MSwgMC4wMDA0MSwgMC4wMDA0MSwgMC4wMDA0MSwgMC4wMDA0MSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQjApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDkwMjczODsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA4OTczNjE7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwOTAyNzM4OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDYwNSwgMC4wMDA2MDUsIDAuMDAwNjA1LCAwLjAwMDYwNSwgMC4wMDA2MDUsIDAuMDAwNjA1LCAwLjAwMDYwNSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDQ2NCwgMC4wMDA0NjUsIDAuMDAwNDY1LCAwLjAwMDQ2NSwgMC4wMDA0NjUsIDAuMDAwNDY1LCAwLjAwMDQ2NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQjEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDkwNzI0MTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA5MDcxMjU7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwOTA3MjQxOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDYwNCwgMC4wMDA2MDUsIDAuMDAwNjA1LCAwLjAwMDYwNSwgMC4wMDA2MDUsIDAuMDAwNjA0LCAwLjAwMDYwNSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDQ2NCwgMC4wMDA0NjQsIDAuMDAwNDY0LCAwLjAwMDQ2NCwgMC4wMDA0NjUsIDAuMDAwNDY0LCAwLjAwMDQ2NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjA5NTg1ODE7Ci0gICAgZnVuY3Rpb24gOiAiKCEoKEIwK0IxKSAoKEEwK0ExKStBMikpKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTAiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE1ODU0NywgMC4yMjc3ODYsIDAuNjE5NDA3LCAwLjk2MzkyMiwgMS40MjM4NSwgMi4zNDM5NSwgMi45MTc4MiIsIFwKLSAgICAgICAgICAiMC4xNjY5NTgsIDAuMjM2MjMxLCAwLjYyNzQwNCwgMC45NzI2MzEsIDEuNDMyMjgsIDIuMzUxOTEsIDIuOTI2MDEiLCBcCi0gICAgICAgICAgIjAuMTc1NjkzLCAwLjI0NDk0OSwgMC42MzY1OTIsIDAuOTgxODA2LCAxLjQ0MTE0LCAyLjM2MDEzLCAyLjkzNDM5IiwgXAotICAgICAgICAgICIwLjE4MzgxNCwgMC4yNTMxNCwgMC42NDQ3NTUsIDAuOTg5MjQ4LCAxLjQ0OTYzLCAyLjM3MDEsIDIuOTQzNDkiLCBcCi0gICAgICAgICAgIjAuMTkxNzExLCAwLjI2MTA3MiwgMC42NTI2NzEsIDAuOTk3NDA1LCAxLjQ1NzU1LCAyLjM3NjkyLCAyLjk1MDU4IiwgXAotICAgICAgICAgICIwLjIwNDI4OSwgMC4yNzM2NiwgMC42NjUzMTEsIDEuMDEwMjgsIDEuNDcwNTcsIDIuMzg5OTEsIDIuOTYzMjciLCBcCi0gICAgICAgICAgIjAuMjE1MjE0LCAwLjI4NDUzNCwgMC42NzY1MzcsIDEuMDIxNDQsIDEuNDgwNjIsIDIuNDAwMzMsIDIuOTc1NTMiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjkyOTYsIDAuNDMxMDQxLCAxLjIxMzI4LCAxLjkwMzI1LCAyLjgyMzAyLCA0LjY2MzksIDUuODEzMTUiLCBcCi0gICAgICAgICAgIjAuMjkyODg5LCAwLjQzMDk0OCwgMS4yMTMyOCwgMS45MDMyNCwgMi44MjI4MywgNC42NjI0OCwgNS44MTE3NiIsIFwKLSAgICAgICAgICAiMC4yOTI4OSwgMC40MzEwMzgsIDEuMjEzMDgsIDEuOTAzMjYsIDIuODIyODgsIDQuNjY0NDIsIDUuODEyMTIiLCBcCi0gICAgICAgICAgIjAuMjkzMzE1LCAwLjQzMTA1OCwgMS4yMTMyNywgMS45MDMwOCwgMi44MjI5MSwgNC42NjI5NCwgNS44MTQ2NCIsIFwKLSAgICAgICAgICAiMC4yOTQ1MjcsIDAuNDMxNDg2LCAxLjIxMzIxLCAxLjkwMjk0LCAyLjgyMjYzLCA0LjY2MjY1LCA1LjgxMzUzIiwgXAotICAgICAgICAgICIwLjI5NzY5MSwgMC40MzM0NjQsIDEuMjEzMjEsIDEuOTAzMDUsIDIuODIzMDQsIDQuNjYzMjksIDUuODEzNDUiLCBcCi0gICAgICAgICAgIjAuMzAxMjk3LCAwLjQzNjEzOSwgMS4yMTMyNCwgMS45MDMwOSwgMi44MjI4LCA0LjY2Mjk5LCA1LjgxNDQ4Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExNDE3OSwgMC4xNjExOTYsIDAuNDI2MDAyLCAwLjY1OTU0MywgMC45NzA0NzUsIDEuNTkyMzEsIDEuOTgxMTgiLCBcCi0gICAgICAgICAgIjAuMTI0MDQxLCAwLjE3MTA1LCAwLjQzNjA5NywgMC42NjkxNzUsIDAuOTgwNTI4LCAxLjYwMjkzLCAxLjk5MDg0IiwgXAotICAgICAgICAgICIwLjEzNTI3LCAwLjE4MjI5OSwgMC40NDcxNTQsIDAuNjgwNzMzLCAwLjk5MjE0OCwgMS42MTQzLCAyLjAwMjMxIiwgXAotICAgICAgICAgICIwLjE0NjI5NywgMC4xOTMzNDYsIDAuNDU4MzA2LCAwLjY5MTU2NywgMS4wMDI5NywgMS42MjUxNiwgMi4wMTMzNSIsIFwKLSAgICAgICAgICAiMC4xNTcxNDEsIDAuMjA0MjIxLCAwLjQ2OTM1NywgMC43MDI2NjQsIDEuMDEzNjQsIDEuNjM1NzksIDIuMDI0NSIsIFwKLSAgICAgICAgICAiMC4xNzQ1LCAwLjIyMTcwOCwgMC40ODY4MDksIDAuNzIwMjM4LCAxLjAzMTIxLCAxLjY1NDAzLCAyLjA0MTQ1IiwgXAotICAgICAgICAgICIwLjE4OTc4NSwgMC4yMzcxMywgMC41MDIwOCwgMC43MzU2MiwgMS4wNDY1NCwgMS42NjgyNCwgMi4wNTgwNCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xOTA3OTgsIDAuMjgzMDA3LCAwLjgwNTI3NywgMS4yNjU4NywgMS44NzkzMiwgMy4xMDc0MSwgMy44NzQ3OCIsIFwKLSAgICAgICAgICAiMC4xOTA1NzUsIDAuMjgyNzkzLCAwLjgwNTEwOCwgMS4yNjU0LCAxLjg3OTU0LCAzLjEwNzYyLCAzLjg3NSIsIFwKLSAgICAgICAgICAiMC4xOTA1OTIsIDAuMjgyNzg3LCAwLjgwNTA4NCwgMS4yNjU1OCwgMS44Nzk2MywgMy4xMDgyLCAzLjg3NDkyIiwgXAotICAgICAgICAgICIwLjE5MTU2NSwgMC4yODI5MjcsIDAuODA0OTc5LCAxLjI2NTc1LCAxLjg4MDAyLCAzLjEwNzU1LCAzLjg3NDk3IiwgXAotICAgICAgICAgICIwLjE5MzYzOCwgMC4yODQwMTQsIDAuODA1MDgyLCAxLjI2NTUsIDEuODgwMiwgMy4xMDgzMiwgMy44NzQ5OCIsIFwKLSAgICAgICAgICAiMC4xOTg2ODgsIDAuMjg3NjQ4LCAwLjgwNDk5MSwgMS4yNjU5NiwgMS44Nzk0NSwgMy4xMDc2NywgMy44NzY0NSIsIFwKLSAgICAgICAgICAiMC4yMDQ4MDYsIDAuMjkyMjU1LCAwLjgwNDk4OCwgMS4yNjU1NSwgMS44NzkzNiwgMy4xMDc1NiwgMy44NzUzMiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTU1NTU0LCAwLjIyNDc5NiwgMC42MTY0ODQsIDAuOTYxMDkyLCAxLjQyMDg4LCAyLjM0MTI0LCAyLjkxNDg3IiwgXAotICAgICAgICAgICIwLjE2NDA5OCwgMC4yMzMzNzIsIDAuNjI0NzU5LCAwLjk2OTY3NSwgMS40Mjk4MywgMi4zNDk4MywgMi45MjM3NSIsIFwKLSAgICAgICAgICAiMC4xNzQwMDgsIDAuMjQzMzc3LCAwLjYzNTA1NSwgMC45Nzk0MDksIDEuNDM5NjQsIDIuMzU5NTcsIDIuOTMyNzEiLCBcCi0gICAgICAgICAgIjAuMTgzODQ1LCAwLjI1MzE5NiwgMC42NDQ3MzksIDAuOTg5NDY2LCAxLjQ0OTU4LCAyLjM2OTQ0LCAyLjk0MzA2IiwgXAotICAgICAgICAgICIwLjE5MzYzMSwgMC4yNjMwNDUsIDAuNjU0NDExLCAwLjk5OTc5NCwgMS40NTk4LCAyLjM3OTA5LCAyLjk1MjgzIiwgXAotICAgICAgICAgICIwLjIwOTM3OSwgMC4yNzg3MDUsIDAuNjcwMzk2LCAxLjAxNTc5LCAxLjQ3NTk1LCAyLjM5NTU5LCAyLjk2ODUxIiwgXAotICAgICAgICAgICIwLjIyMzIxOSwgMC4yOTI2NiwgMC42ODQ1NjcsIDEuMDI5NzEsIDEuNDg5MDIsIDIuNDA4OTQsIDIuOTgzNjEiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjkyOTQ4LCAwLjQzMDk3MSwgMS4yMTMyNSwgMS45MDMyMiwgMi44MjMwMSwgNC42NjM1MSwgNS44MTQ3NyIsIFwKLSAgICAgICAgICAiMC4yOTI5MzgsIDAuNDMxMDYsIDEuMjEzMjcsIDEuOTAzMjksIDIuODIyNjksIDQuNjYyMzIsIDUuODEyMDEiLCBcCi0gICAgICAgICAgIjAuMjkyODc4LCAwLjQzMTA0NiwgMS4yMTMxMSwgMS45MDMyNSwgMi44MjI2OCwgNC42NjM3NCwgNS44MTI0MiIsIFwKLSAgICAgICAgICAiMC4yOTM1MjMsIDAuNDMxMTEyLCAxLjIxMzI1LCAxLjkwMzE0LCAyLjgyMjk2LCA0LjY2MzExLCA1LjgxMjA4IiwgXAotICAgICAgICAgICIwLjI5NTIwOCwgMC40MzE1NSwgMS4yMTMyLCAxLjkwMzE0LCAyLjgyMzAyLCA0LjY2MjAzLCA1LjgxMzQ3IiwgXAotICAgICAgICAgICIwLjI5OTkzNywgMC40MzQxNTMsIDEuMjEzMjksIDEuOTAzMDcsIDIuODIzLCA0LjY2Mzg4LCA1LjgxMjE4IiwgXAotICAgICAgICAgICIwLjMwNTI1MSwgMC40MzgwMjEsIDEuMjEzMjUsIDEuOTAyNzksIDIuODIzMDEsIDQuNjYzLCA1LjgxMjA0Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExMDA3OSwgMC4xNTY5MjksIDAuNDIxNjEzLCAwLjY1NDg2MywgMC45NjU1NDksIDEuNTg3NjIsIDEuOTc2MjkiLCBcCi0gICAgICAgICAgIjAuMTIwMDcsIDAuMTY2OTMsIDAuNDMxNjk3LCAwLjY2NDg1NCwgMC45NzU5NjksIDEuNTk4MzEsIDEuOTg2MzQiLCBcCi0gICAgICAgICAgIjAuMTMxMjkxLCAwLjE3ODE5MSwgMC40NDMwMDMsIDAuNjc2MjY1LCAwLjk4NzU5MywgMS42MDk3NSwgMS45OTc4NSIsIFwKLSAgICAgICAgICAiMC4xNDIyMjIsIDAuMTg5MTIsIDAuNDUzOTA0LCAwLjY4NzMyNiwgMC45OTgxOSwgMS42MjAwNSwgMi4wMDk1MSIsIFwKLSAgICAgICAgICAiMC4xNTMwOTgsIDAuMjAwMDExLCAwLjQ2NDg1NywgMC42OTgyMDgsIDEuMDA5MSwgMS42MzEyMiwgMi4wMjAwOCIsIFwKLSAgICAgICAgICAiMC4xNzA0MTIsIDAuMjE3MzY3LCAwLjQ4MjM5NSwgMC43MTU3MjQsIDEuMDI2NzEsIDEuNjQ5NDQsIDIuMDM2ODUiLCBcCi0gICAgICAgICAgIjAuMTg1NTc1LCAwLjIzMjU5MSwgMC40OTc4NSwgMC43MzEzMjQsIDEuMDQyNDUsIDEuNjYzODIsIDIuMDUzNDMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTg1NjQ3LCAwLjI3ODAyMiwgMC43OTk4OTEsIDEuMjYxMjYsIDEuODc0MzksIDMuMTAyNDMsIDMuODcwNDUiLCBcCi0gICAgICAgICAgIjAuMTg1NjY3LCAwLjI3Nzk5MywgMC43OTk5MTYsIDEuMjYwNTMsIDEuODc1MjQsIDMuMTAzMTMsIDMuODY5NzciLCBcCi0gICAgICAgICAgIjAuMTg1NzcyLCAwLjI3NzgyMSwgMC43OTk5MzYsIDEuMjYwNDYsIDEuODc1NzQsIDMuMTAzNTMsIDMuODY5OTEiLCBcCi0gICAgICAgICAgIjAuMTg2NzM3LCAwLjI3Nzk2OSwgMC43OTk5NTQsIDEuMjYwODYsIDEuODc0NDYsIDMuMTAxOTUsIDMuODcxMDYiLCBcCi0gICAgICAgICAgIjAuMTg4OTI1LCAwLjI3OTI0NywgMC44MDAwNDUsIDEuMjYxMTgsIDEuODc0NywgMy4xMDMzOCwgMy44NzAyOSIsIFwKLSAgICAgICAgICAiMC4xOTQyNTIsIDAuMjgyNzM2LCAwLjc5OTkyNCwgMS4yNjA2NiwgMS44NzQ3NCwgMy4xMDI4LCAzLjg2ODc2IiwgXAotICAgICAgICAgICIwLjIwMDQ2NiwgMC4yODc0NDksIDAuODAwMjE3LCAxLjI2MDQ3LCAxLjg3NTM3LCAzLjEwMjg1LCAzLjg3MTc4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEyIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNDgxNTEsIDAuMjE3Mzg1LCAwLjYwOTAzNiwgMC45NTM2NjcsIDEuNDEzMywgMi4zMzI5OCwgMi45MDY1NCIsIFwKLSAgICAgICAgICAiMC4xNTY0NzMsIDAuMjI1ODQyLCAwLjYxNzIxMSwgMC45NjIxNzcsIDEuNDIxOTcsIDIuMzQxOTUsIDIuOTE1OTEiLCBcCi0gICAgICAgICAgIjAuMTY2Njg4LCAwLjIzNjUzLCAwLjYyODAxOSwgMC45NzI5OTIsIDEuNDMzMDcsIDIuMzUxNjUsIDIuOTI1OTUiLCBcCi0gICAgICAgICAgIjAuMTc3ODAzLCAwLjI0Njg3OCwgMC42Mzg2MzUsIDAuOTgzNDIxLCAxLjQ0MzI0LCAyLjM2MzA0LCAyLjkzNzE2IiwgXAotICAgICAgICAgICIwLjE4ODU3NywgMC4yNTc4ODMsIDAuNjQ5MzM0LCAwLjk5NDIzMiwgMS40NTM4OCwgMi4zNzQ0MiwgMi45NDc0NSIsIFwKLSAgICAgICAgICAiMC4yMDYwODgsIDAuMjc1MjY4LCAwLjY2NjY5NywgMS4wMTE3NSwgMS40NzE5NywgMi4zOTA3NSwgMi45NjUyNiIsIFwKLSAgICAgICAgICAiMC4yMjE0NzksIDAuMjkwNTAzLCAwLjY4MTkyNiwgMS4wMjY4LCAxLjQ4NzU5LCAyLjQwNjY3LCAyLjk3OTkxIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI5MjkxMywgMC40MzEwNzEsIDEuMjEzMjMsIDEuOTAzMDMsIDIuODIyNzQsIDQuNjYyNzksIDUuODExOTgiLCBcCi0gICAgICAgICAgIjAuMjkyOTI0LCAwLjQzMTA1NywgMS4yMTMyNywgMS45MDMyMSwgMi44MjMwMSwgNC42NjMyNiwgNS44MTMxOSIsIFwKLSAgICAgICAgICAiMC4yOTI3NjcsIDAuNDMwOTk2LCAxLjIxMzIsIDEuOTAzMDUsIDIuODIyNzcsIDQuNjYzODEsIDUuODEyMDciLCBcCi0gICAgICAgICAgIjAuMjkzNzksIDAuNDMwOTM5LCAxLjIxMzI2LCAxLjkwMzIxLCAyLjgyMywgNC42NjI1NywgNS44MTM1NSIsIFwKLSAgICAgICAgICAiMC4yOTY3NzcsIDAuNDMxNzI4LCAxLjIxMzIsIDEuOTAzMTgsIDIuODIyODUsIDQuNjYzNDMsIDUuODEyOTciLCBcCi0gICAgICAgICAgIjAuMzA0MDMzLCAwLjQzNTkxMSwgMS4yMTMyNywgMS45MDI4NiwgMi44MjIzNSwgNC42NjI5MywgNS44MTE5MyIsIFwKLSAgICAgICAgICAiMC4zMTIzNDMsIDAuNDQxNjE2LCAxLjIxMzIsIDEuOTAzMjIsIDIuODIyODMsIDQuNjYzLCA1LjgxMzQ0Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwNDg3NCwgMC4xNTE2MjUsIDAuNDE2MTg4LCAwLjY0OTUyNSwgMC45NTk4NjMsIDEuNTgxOTcsIDEuOTY5OTYiLCBcCi0gICAgICAgICAgIjAuMTE0OTgyLCAwLjE2MTc3NiwgMC40MjYxNjQsIDAuNjU5NTA1LCAwLjk3MDcxNiwgMS41OTI2MywgMS45ODA5NSIsIFwKLSAgICAgICAgICAiMC4xMjYxMzQsIDAuMTczMDcsIDAuNDM3Nzg5LCAwLjY3MTAxLCAwLjk4MjMxOCwgMS42MDQzNCwgMS45OTI0OSIsIFwKLSAgICAgICAgICAiMC4xMzcxMTMsIDAuMTgzOTUsIDAuNDQ4NzY3LCAwLjY4MTkxNCwgMC45OTI4MzEsIDEuNjE0NTIsIDIuMDA0MjQiLCBcCi0gICAgICAgICAgIjAuMTQ3ODY1LCAwLjE5NDkyOCwgMC40NTk3OTksIDAuNjkyOTU5LCAxLjAwMzgsIDEuNjI1ODMsIDIuMDE0NzQiLCBcCi0gICAgICAgICAgIjAuMTY1MjIyLCAwLjIxMjA1OCwgMC40NzcwNTIsIDAuNzEwNDQxLCAxLjAyMTQsIDEuNjQ0MDgsIDIuMDMxNSIsIFwKLSAgICAgICAgICAiMC4xODAzNTMsIDAuMjI3MjQxLCAwLjQ5MjMwNywgMC43MjU3OTYsIDEuMDM2NzEsIDEuNjU4MjMsIDIuMDQ4MDYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTc5ODgsIDAuMjcyMTQyLCAwLjc5Mzg4MywgMS4yNTQ1LCAxLjg2ODI1LCAzLjA5NTkzLCAzLjg2MjI3IiwgXAotICAgICAgICAgICIwLjE3OTg4MSwgMC4yNzIxMzMsIDAuNzkzNzc1LCAxLjI1NDI3LCAxLjg2OTI2LCAzLjA5OTU3LCAzLjg2MzE0IiwgXAotICAgICAgICAgICIwLjE3OTkxMSwgMC4yNzE5NzcsIDAuNzkzODI0LCAxLjI1NDI0LCAxLjg2OTM5LCAzLjA5NzE3LCAzLjg2MzMzIiwgXAotICAgICAgICAgICIwLjE4MDk3NCwgMC4yNzIwOTQsIDAuNzkzNzE3LCAxLjI1NDEzLCAxLjg2ODA4LCAzLjA5NjM5LCAzLjg2MzMyIiwgXAotICAgICAgICAgICIwLjE4MzI2MSwgMC4yNzM0MDMsIDAuNzkzNzExLCAxLjI1NDk4LCAxLjg2ODMsIDMuMDk2NzEsIDMuODYzOTciLCBcCi0gICAgICAgICAgIjAuMTg5MDg2LCAwLjI3NzE1MiwgMC43OTM5MzYsIDEuMjU0NDIsIDEuODY4MzQsIDMuMDk2NTMsIDMuODYyMDkiLCBcCi0gICAgICAgICAgIjAuMTk1NDU3LCAwLjI4MjEsIDAuNzk0MDYxLCAxLjI1NDIsIDEuODY4MzEsIDMuMDk0OTgsIDMuODY1NzMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjAiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5NDUzMywgMC4xNDA5MzksIDAuNDAzOTkyLCAwLjYzNTk3NiwgMC45NDUyOTksIDEuNTY0MTcsIDEuOTUwODgiLCBcCi0gICAgICAgICAgIjAuMTAzMjkxLCAwLjE0OTgyMywgMC40MTI3NTcsIDAuNjQ0ODg5LCAwLjk1NDI2NSwgMS41NzI4MiwgMS45NjAwOSIsIFwKLSAgICAgICAgICAiMC4xMTMyNDMsIDAuMTU5ODQ5LCAwLjQyMjkzNSwgMC42NTQ5MzksIDAuOTY0MzY2LCAxLjU4MzIyLCAxLjk2OTciLCBcCi0gICAgICAgICAgIjAuMTIzMjM5LCAwLjE2OTkxMSwgMC40MzMxMTMsIDAuNjY1MTU1LCAwLjk3NDYzNSwgMS41OTMzMywgMS45Nzk5MiIsIFwKLSAgICAgICAgICAiMC4xMzMwOTksIDAuMTc5NjczLCAwLjQ0MzAxMiwgMC42NzUwOTIsIDAuOTg0NTM5LCAxLjYwMzU4LCAxLjk4OTc2IiwgXAotICAgICAgICAgICIwLjE0OTEyMSwgMC4xOTU2MjUsIDAuNDU4ODM5LCAwLjY5MTM5NywgMS4wMDA4NiwgMS42MjAxNywgMi4wMDYxNSIsIFwKLSAgICAgICAgICAiMC4xNjI2MjcsIDAuMjA5NDMxLCAwLjQ3MzMyOSwgMC43MDUxODgsIDEuMDE0NjMsIDEuNjMzNDUsIDIuMDIwMDYiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTk3NTExLCAwLjI5MDg1NywgMC44MjEzMSwgMS4yODk4NywgMS45MTQ2OCwgMy4xNjQ1NCwgMy45NDY2IiwgXAotICAgICAgICAgICIwLjE5NzUzMywgMC4yOTA4ODIsIDAuODIxMjIsIDEuMjg5ODcsIDEuOTE0NzgsIDMuMTY0MTYsIDMuOTQ2MjYiLCBcCi0gICAgICAgICAgIjAuMTk4LCAwLjI5MDkxNiwgMC44MjEzNDUsIDEuMjg5OCwgMS45MTQyOSwgMy4xNjQyNSwgMy45NDYyNiIsIFwKLSAgICAgICAgICAiMC4yMDAxNjQsIDAuMjkxNzYxLCAwLjgyMTI4NiwgMS4yODk3MywgMS45MTQ3OSwgMy4xNjUwMiwgMy45NDU2NCIsIFwKLSAgICAgICAgICAiMC4yMDM0NTUsIDAuMjkzNzI4LCAwLjgyMTIyMiwgMS4yODk4MywgMS45MTQ2OCwgMy4xNjg5NCwgMy45NDYzNCIsIFwKLSAgICAgICAgICAiMC4yMTA1OCwgMC4yOTg3OTQsIDAuODIxMjU5LCAxLjI4OTc2LCAxLjkxNDc3LCAzLjE2NDE4LCAzLjk0NjMiLCBcCi0gICAgICAgICAgIjAuMjE3OTM5LCAwLjMwNDQ0OCwgMC44MjE5MDQsIDEuMjg5NTcsIDEuOTE0MjQsIDMuMTY1MDEsIDMuOTQ2MjkiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTA1OTUyLCAwLjE1Mjk0LCAwLjQxNzkxNCwgMC42NTE0MjEsIDAuOTYyMjcyLCAxLjU4NDMyLCAxLjk3MjE2IiwgXAotICAgICAgICAgICIwLjExNTIwNSwgMC4xNjIzMjEsIDAuNDI3Mjg3LCAwLjY2MDU0MywgMC45NzEzNzUsIDEuNTkzMDQsIDEuOTgxNjkiLCBcCi0gICAgICAgICAgIjAuMTI2Nzk4LCAwLjE3NDEyNiwgMC40Mzg4MDksIDAuNjcyNjY0LCAwLjk4MzQ4NSwgMS42MDUzOSwgMS45OTQ0OSIsIFwKLSAgICAgICAgICAiMC4xMzg1NDIsIDAuMTg1NTU0LCAwLjQ1MDM3NCwgMC42ODM2MzcsIDAuOTk0NjI2LCAxLjYxNjgsIDIuMDA1NDEiLCBcCi0gICAgICAgICAgIjAuMTUwMDI1LCAwLjE5NzAzOSwgMC40NjIyMjksIDAuNjk1NjA3LCAxLjAwNjM4LCAxLjYyNzg0LCAyLjAxNzI0IiwgXAotICAgICAgICAgICIwLjE2OTY2NywgMC4yMTU5MzYsIDAuNDgwODE5LCAwLjcxNDEwNCwgMS4wMjUwMSwgMS42NDc0NiwgMi4wMzU0NiIsIFwKLSAgICAgICAgICAiMC4xODY0ODQsIDAuMjMyNzMsIDAuNDk3MjMxLCAwLjczMDg0OSwgMS4wNDE1NCwgMS42NjMyNiwgMi4wNTI3NyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xOTA3ODIsIDAuMjgyNzk5LCAwLjgwNTM4MSwgMS4yNjU2MywgMS44Nzk1NiwgMy4xMDczOCwgMy44NzYyOCIsIFwKLSAgICAgICAgICAiMC4xOTA2OSwgMC4yODI3NTYsIDAuODA1MDUzLCAxLjI2NTQ2LCAxLjg3OTA0LCAzLjEwODMyLCAzLjg3NjM0IiwgXAotICAgICAgICAgICIwLjE5MDczNiwgMC4yODI3NjUsIDAuODA0ODUsIDEuMjY1ODIsIDEuODgwMjQsIDMuMTA4MTgsIDMuODc0ODEiLCBcCi0gICAgICAgICAgIjAuMTkzMTY4LCAwLjI4MzIzNCwgMC44MDUxOTMsIDEuMjY2MDYsIDEuODgwMjQsIDMuMTA4NDQsIDMuODc0OTMiLCBcCi0gICAgICAgICAgIjAuMTk3NjI0LCAwLjI4NTg0LCAwLjgwNDgzNSwgMS4yNjU1OCwgMS44Nzk4MSwgMy4xMDg1MSwgMy44NzU2NyIsIFwKLSAgICAgICAgICAiMC4yMDY0NzgsIDAuMjkyNDc2LCAwLjgwNDk0OSwgMS4yNjU0NSwgMS44NzkzMywgMy4xMDczOSwgMy44NzUyIiwgXAotICAgICAgICAgICIwLjIxNTkzNCwgMC4zMDAyMDUsIDAuODA1MTMyLCAxLjI2NTU0LCAxLjg3OTQ1LCAzLjEwNzI1LCAzLjg3NDgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5MTMyNywgMC4xMzc4MDksIDAuNDAwODI4LCAwLjYzMjgxNSwgMC45NDIxNjksIDEuNTYxMDEsIDEuOTQ4MiIsIFwKLSAgICAgICAgICAiMC4xMDAzNCwgMC4xNDY4NDcsIDAuNDA5OTMsIDAuNjQxOTc3LCAwLjk1MTQzMiwgMS41Njk5OCwgMS45NTY5NiIsIFwKLSAgICAgICAgICAiMC4xMTE2NjksIDAuMTU3ODk5LCAwLjQyMTMwNiwgMC42NTMzNzQsIDAuOTYyOTk1LCAxLjU4MjA3LCAxLjk2ODE4IiwgXAotICAgICAgICAgICIwLjEyMzExMSwgMC4xNjk3MDEsIDAuNDMyODc2LCAwLjY2NDkyLCAwLjk3NDQwMSwgMS41OTMwNiwgMS45Nzk1MSIsIFwKLSAgICAgICAgICAiMC4xMzQ3MTIsIDAuMTgxMTc1LCAwLjQ0NDM1MywgMC42NzY0MjgsIDAuOTg1Nzc4LCAxLjYwNDQyLCAxLjk5MTkyIiwgXAotICAgICAgICAgICIwLjE1MzQ4MiwgMC4xOTk3LCAwLjQ2MjA2MSwgMC42OTQ4MzUsIDEuMDA0MjUsIDEuNjIyODUsIDIuMDA5NzYiLCBcCi0gICAgICAgICAgIjAuMTY5ODc0LCAwLjIxNTgwMywgMC40Nzg4MzEsIDAuNzEwOTI4LCAxLjAyMDM0LCAxLjYzODk1LCAyLjAyNTUxIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE5NzUyMywgMC4yOTA4NjksIDAuODIxNDEyLCAxLjI4OTg0LCAxLjkxNDcyLCAzLjE2NDU3LCAzLjk0NTU0IiwgXAotICAgICAgICAgICIwLjE5NzQ5MywgMC4yOTA4NjYsIDAuODIxMjk4LCAxLjI4OTc2LCAxLjkxNDQ4LCAzLjE2NDkyLCAzLjk0NjI3IiwgXAotICAgICAgICAgICIwLjE5ODQzLCAwLjI5MDg2NywgMC44MjEyODYsIDEuMjg5ODMsIDEuOTE0NzUsIDMuMTY0ODcsIDMuOTQ2MzEiLCBcCi0gICAgICAgICAgIjAuMjAyMTE1LCAwLjI5MjIyNCwgMC44MjEyOTYsIDEuMjg5NzMsIDEuOTE0MzYsIDMuMTY0OTcsIDMuOTQ2MTciLCBcCi0gICAgICAgICAgIjAuMjA3NjQ0LCAwLjI5NTU4NCwgMC44MjEyNCwgMS4yODk4NSwgMS45MTQ3MSwgMy4xNjQxNCwgMy45NDUzNiIsIFwKLSAgICAgICAgICAiMC4yMTgxNzksIDAuMzAzNjE3LCAwLjgyMTIzNiwgMS4yODk2MSwgMS45MTQ3OSwgMy4xNjQ4NiwgMy45NDY1NCIsIFwKLSAgICAgICAgICAiMC4yMjkwOSwgMC4zMTIyNzQsIDAuODIyMDc5LCAxLjI4OTc2LCAxLjkxNDc5LCAzLjE2NDQ4LCAzLjk0NjI0Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwMTQ2OSwgMC4xNDg0MTUsIDAuNDEzMzIxLCAwLjY0Njc1LCAwLjk1NzM4OCwgMS41NzkxOCwgMS45Njg0NiIsIFwKLSAgICAgICAgICAiMC4xMTA3MjgsIDAuMTU3NzU2LCAwLjQyMjU2MSwgMC42NTU4MjgsIDAuOTY3MjM3LCAxLjU4OTA5LCAxLjk3NzQ4IiwgXAotICAgICAgICAgICIwLjEyMjE4LCAwLjE2OTIxNiwgMC40MzQxNzQsIDAuNjY3MzEyLCAwLjk3ODY0NCwgMS42MDA2NCwgMS45ODkzNSIsIFwKLSAgICAgICAgICAiMC4xMzM3NzcsIDAuMTgwNzc1LCAwLjQ0NTg2OCwgMC42NzkxMjQsIDAuOTkwMSwgMS42MTIyNCwgMi4wMDA3NSIsIFwKLSAgICAgICAgICAiMC4xNDU0OTYsIDAuMTkyNjk1LCAwLjQ1NzQ4OCwgMC42OTA4NCwgMS4wMDE2NywgMS42MjMzMiwgMi4wMTI4OSIsIFwKLSAgICAgICAgICAiMC4xNjQ5OTQsIDAuMjExMzM3LCAwLjQ3NjI2NywgMC43MDk1NTYsIDEuMDIwNDYsIDEuNjQyODgsIDIuMDMwODgiLCBcCi0gICAgICAgICAgIjAuMTgxOTA4LCAwLjIyODA0NiwgMC40OTI2MzEsIDAuNzI2MjY5LCAxLjAzNjk2LCAxLjY1ODY4LCAyLjA0ODE3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE4NTM1LCAwLjI3NzQyNiwgMC43OTkzNTgsIDEuMjU5NzYsIDEuODc0MzYsIDMuMTAyMTEsIDMuODY5MzEiLCBcCi0gICAgICAgICAgIjAuMTg1MzMzLCAwLjI3NzU5OCwgMC43OTkzMzMsIDEuMjU5NjksIDEuODczNSwgMy4xMDEyNiwgMy44Njg1MSIsIFwKLSAgICAgICAgICAiMC4xODU1NzQsIDAuMjc3NTksIDAuNzk5NzYzLCAxLjI1OTQ1LCAxLjg3Mzk4LCAzLjEwMjI4LCAzLjg2ODY3IiwgXAotICAgICAgICAgICIwLjE4ODExOCwgMC4yNzgxMzUsIDAuNzk5NTU3LCAxLjI2MDM0LCAxLjg3NDQsIDMuMTAyMjksIDMuODY4NjEiLCBcCi0gICAgICAgICAgIjAuMTkyOTIxLCAwLjI4MDYyNywgMC43OTk3MzMsIDEuMjU5NzEsIDEuODczNTcsIDMuMTAyMDQsIDMuODY5ODQiLCBcCi0gICAgICAgICAgIjAuMjAxOTk3LCAwLjI4NzMzNCwgMC43OTkzNjksIDEuMjU5NzYsIDEuODczNDgsIDMuMTAxMDUsIDMuODY5MjciLCBcCi0gICAgICAgICAgIjAuMjExNzI0LCAwLjI5NTc0MywgMC43OTk0NzMsIDEuMjU5NTgsIDEuODczNTYsIDMuMTAxMTgsIDMuODY4NzEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0MDc2LCAwLjAwNDA3NiwgMC4wMDQwNzUsIDAuMDA0MDc0LCAwLjAwNDA3MiwgMC4wMDQwNywgMC4wMDQwNjciLCBcCi0gICAgICAgICAgIjAuMDA0MDYyLCAwLjAwNDA2MywgMC4wMDQwNjQsIDAuMDA0MDYzLCAwLjAwNDA2MiwgMC4wMDQwNTksIDAuMDA0MDU4IiwgXAotICAgICAgICAgICIwLjAwNDA1NSwgMC4wMDQwNTcsIDAuMDA0MDYxLCAwLjAwNDA2LCAwLjAwNDA2LCAwLjAwNDA1OCwgMC4wMDQwNTUiLCBcCi0gICAgICAgICAgIjAuMDA0MDUsIDAuMDA0MDUzLCAwLjAwNDA1OSwgMC4wMDQwNiwgMC4wMDQwNTksIDAuMDA0MDU1LCAwLjAwNDA1NSIsIFwKLSAgICAgICAgICAiMC4wMDQwNDUsIDAuMDA0MDUsIDAuMDA0MDU4LCAwLjAwNDA1OSwgMC4wMDQwNTgsIDAuMDA0MDU1LCAwLjAwNDA1NCIsIFwKLSAgICAgICAgICAiMC4wMDQwNDEsIDAuMDA0MDQ2LCAwLjAwNDA1NCwgMC4wMDQwNTYsIDAuMDA0MDU2LCAwLjAwNDA1NSwgMC4wMDQwNTMiLCBcCi0gICAgICAgICAgIjAuMDA0MDM5LCAwLjAwNDA0NCwgMC4wMDQwNTMsIDAuMDA0MDU1LCAwLjAwNDA1NiwgMC4wMDQwNTQsIDAuMDA0MDUxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxMzQ4LCAwLjAwMTM0OCwgMC4wMDEzNDgsIDAuMDAxMzQ3LCAwLjAwMTM0NywgMC4wMDEzNDksIDAuMDAxMzQ1IiwgXAotICAgICAgICAgICIwLjAwMTMyMywgMC4wMDEzMjQsIDAuMDAxMzI1LCAwLjAwMTMyNSwgMC4wMDEzMjUsIDAuMDAxMzI0LCAwLjAwMTMyMSIsIFwKLSAgICAgICAgICAiMC4wMDEzMTQsIDAuMDAxMzE3LCAwLjAwMTMxOSwgMC4wMDEzMjEsIDAuMDAxMzIsIDAuMDAxMzE5LCAwLjAwMTMyIiwgXAotICAgICAgICAgICIwLjAwMTMwOCwgMC4wMDEzMTIsIDAuMDAxMzE3LCAwLjAwMTMxOCwgMC4wMDEzMTgsIDAuMDAxMzE4LCAwLjAwMTMxOCIsIFwKLSAgICAgICAgICAiMC4wMDEzMDQsIDAuMDAxMzA4LCAwLjAwMTMxNSwgMC4wMDEzMTYsIDAuMDAxMzE3LCAwLjAwMTMxNywgMC4wMDEzMTciLCBcCi0gICAgICAgICAgIjAuMDAxMjk4LCAwLjAwMTMwMywgMC4wMDEzMTMsIDAuMDAxMzE0LCAwLjAwMTMxNiwgMC4wMDEzMTYsIDAuMDAxMzE1IiwgXAotICAgICAgICAgICIwLjAwMTI5NSwgMC4wMDEzMDEsIDAuMDAxMzExLCAwLjAwMTMxNCwgMC4wMDEzMTUsIDAuMDAxMzE1LCAwLjAwMTMxNCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkExIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDM3NDIsIDAuMDAzNzQxLCAwLjAwMzc0LCAwLjAwMzczOSwgMC4wMDM3MzgsIDAuMDAzNzM2LCAwLjAwMzczMiIsIFwKLSAgICAgICAgICAiMC4wMDM3MjcsIDAuMDAzNzI4LCAwLjAwMzcyOSwgMC4wMDM3MjksIDAuMDAzNzI4LCAwLjAwMzcyNCwgMC4wMDM3MjMiLCBcCi0gICAgICAgICAgIjAuMDAzNzIsIDAuMDAzNzIzLCAwLjAwMzcyNiwgMC4wMDM3MjcsIDAuMDAzNzI2LCAwLjAwMzcyMywgMC4wMDM3MTkiLCBcCi0gICAgICAgICAgIjAuMDAzNzE1LCAwLjAwMzcxOSwgMC4wMDM3MjQsIDAuMDAzNzI1LCAwLjAwMzcyNCwgMC4wMDM3MjIsIDAuMDAzNzIiLCBcCi0gICAgICAgICAgIjAuMDAzNzEyLCAwLjAwMzcxNiwgMC4wMDM3MjMsIDAuMDAzNzI0LCAwLjAwMzcyNCwgMC4wMDM3MiwgMC4wMDM3MTkiLCBcCi0gICAgICAgICAgIjAuMDAzNzA4LCAwLjAwMzcxMywgMC4wMDM3MjEsIDAuMDAzNzIyLCAwLjAwMzcyMywgMC4wMDM3MiwgMC4wMDM3MTgiLCBcCi0gICAgICAgICAgIjAuMDAzNzA3LCAwLjAwMzcxMSwgMC4wMDM3MiwgMC4wMDM3MjEsIDAuMDAzNzIxLCAwLjAwMzcyLCAwLjAwMzcxOCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTA2NSwgMC4wMDEwNjYsIDAuMDAxMDY4LCAwLjAwMTA2NiwgMC4wMDEwNjUsIDAuMDAxMDY1LCAwLjAwMTA2NCIsIFwKLSAgICAgICAgICAiMC4wMDEwNTQsIDAuMDAxMDU4LCAwLjAwMTA2MywgMC4wMDEwNjMsIDAuMDAxMDY0LCAwLjAwMTA2MywgMC4wMDEwNjMiLCBcCi0gICAgICAgICAgIjAuMDAxMDQxLCAwLjAwMTA0OCwgMC4wMDEwNTksIDAuMDAxMDYxLCAwLjAwMTA2MiwgMC4wMDEwNjIsIDAuMDAxMDYyIiwgXAotICAgICAgICAgICIwLjAwMTAzLCAwLjAwMTA0LCAwLjAwMTA1NSwgMC4wMDEwNTgsIDAuMDAxMDYsIDAuMDAxMDYxLCAwLjAwMTA2MSIsIFwKLSAgICAgICAgICAiMC4wMDEwMjEsIDAuMDAxMDMyLCAwLjAwMTA1MiwgMC4wMDEwNTcsIDAuMDAxMDU5LCAwLjAwMTA2LCAwLjAwMTA2IiwgXAotICAgICAgICAgICIwLjAwMTAwOSwgMC4wMDEwMjIsIDAuMDAxMDQ3LCAwLjAwMTA1MywgMC4wMDEwNTYsIDAuMDAxMDU5LCAwLjAwMTA1OSIsIFwKLSAgICAgICAgICAiMC4wMDEwMDIsIDAuMDAxMDE2LCAwLjAwMTA0MywgMC4wMDEwNSwgMC4wMDEwNTQsIDAuMDAxMDU3LCAwLjAwMTA1OCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEyIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDMzOTQsIDAuMDAzMzk0LCAwLjAwMzM5NCwgMC4wMDMzOTIsIDAuMDAzMzkxLCAwLjAwMzM4OCwgMC4wMDMzODYiLCBcCi0gICAgICAgICAgIjAuMDAzMzc2LCAwLjAwMzM3OCwgMC4wMDMzODIsIDAuMDAzMzgyLCAwLjAwMzM4LCAwLjAwMzM3NywgMC4wMDMzNzUiLCBcCi0gICAgICAgICAgIjAuMDAzMzYzLCAwLjAwMzM3MSwgMC4wMDMzNzcsIDAuMDAzMzc4LCAwLjAwMzM3NywgMC4wMDMzNzQsIDAuMDAzMzcyIiwgXAotICAgICAgICAgICIwLjAwMzM2MSwgMC4wMDMzNjQsIDAuMDAzMzc2LCAwLjAwMzM3NiwgMC4wMDMzNzYsIDAuMDAzMzc0LCAwLjAwMzM3MiIsIFwKLSAgICAgICAgICAiMC4wMDMzNjEsIDAuMDAzMzY1LCAwLjAwMzM3MywgMC4wMDMzNzUsIDAuMDAzMzc0LCAwLjAwMzM3MiwgMC4wMDMzNyIsIFwKLSAgICAgICAgICAiMC4wMDMzNjQsIDAuMDAzMzY2LCAwLjAwMzM3MywgMC4wMDMzNzQsIDAuMDAzMzc0LCAwLjAwMzM3MiwgMC4wMDMzNjkiLCBcCi0gICAgICAgICAgIjAuMDAzMzcyLCAwLjAwMzM3MSwgMC4wMDMzNzQsIDAuMDAzMzc0LCAwLjAwMzM3NCwgMC4wMDMzNzEsIDAuMDAzMzciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDA2OTksIDAuMDAwNzAxLCAwLjAwMDcwMywgMC4wMDA3MDMsIDAuMDAwNzA0LCAwLjAwMDcwMywgMC4wMDA3MDMiLCBcCi0gICAgICAgICAgIjAuMDAwNzAyLCAwLjAwMDcxLCAwLjAwMDcyLCAwLjAwMDcyMiwgMC4wMDA3MjQsIDAuMDAwNzI1LCAwLjAwMDcyNCIsIFwKLSAgICAgICAgICAiMC4wMDA2ODYsIDAuMDAwNjk5LCAwLjAwMDcxOSwgMC4wMDA3MjMsIDAuMDAwNzI1LCAwLjAwMDcyNywgMC4wMDA3MjciLCBcCi0gICAgICAgICAgIjAuMDAwNjcsIDAuMDAwNjg3LCAwLjAwMDcxNSwgMC4wMDA3MjEsIDAuMDAwNzI0LCAwLjAwMDcyNywgMC4wMDA3MjciLCBcCi0gICAgICAgICAgIjAuMDAwNjU2LCAwLjAwMDY3NiwgMC4wMDA3MSwgMC4wMDA3MTgsIDAuMDAwNzIyLCAwLjAwMDcyNiwgMC4wMDA3MjciLCBcCi0gICAgICAgICAgIjAuMDAwNjM4LCAwLjAwMDY2MSwgMC4wMDA3MDMsIDAuMDAwNzEzLCAwLjAwMDcxOSwgMC4wMDA3MjQsIDAuMDAwNzI2IiwgXAotICAgICAgICAgICIwLjAwMDYyNywgMC4wMDA2NSwgMC4wMDA2OTYsIDAuMDAwNzA5LCAwLjAwMDcxNiwgMC4wMDA3MjIsIDAuMDAwNzI0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjc2NiwgMC4wMDI3NjcsIDAuMDAyNzY4LCAwLjAwMjc3LCAwLjAwMjc3LCAwLjAwMjc3LCAwLjAwMjc3IiwgXAotICAgICAgICAgICIwLjAwMjc2MywgMC4wMDI3NjgsIDAuMDAyNzc2LCAwLjAwMjc3OCwgMC4wMDI3NzksIDAuMDAyNzc5LCAwLjAwMjc3OSIsIFwKLSAgICAgICAgICAiMC4wMDI3NSwgMC4wMDI3NiwgMC4wMDI3NzQsIDAuMDAyNzc2LCAwLjAwMjc3OCwgMC4wMDI3NzksIDAuMDAyNzc3IiwgXAotICAgICAgICAgICIwLjAwMjc0MSwgMC4wMDI3NTIsIDAuMDAyNzcsIDAuMDAyNzc0LCAwLjAwMjc3NywgMC4wMDI3NzksIDAuMDAyNzgiLCBcCi0gICAgICAgICAgIjAuMDAyNzM0LCAwLjAwMjc0NSwgMC4wMDI3NjcsIDAuMDAyNzcyLCAwLjAwMjc3NiwgMC4wMDI3NzksIDAuMDAyNzgiLCBcCi0gICAgICAgICAgIjAuMDAyNzI3LCAwLjAwMjczOCwgMC4wMDI3NjEsIDAuMDAyNzcsIDAuMDAyNzc0LCAwLjAwMjc3NywgMC4wMDI3NzgiLCBcCi0gICAgICAgICAgIjAuMDAyNzI0LCAwLjAwMjczNSwgMC4wMDI3NjEsIDAuMDAyNzY3LCAwLjAwMjc3MiwgMC4wMDI3NzYsIDAuMDAyNzc4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxMzUzLCAwLjAwMTM1MywgMC4wMDEzNTQsIDAuMDAxMzUzLCAwLjAwMTM1MywgMC4wMDEzNTIsIDAuMDAxMzUxIiwgXAotICAgICAgICAgICIwLjAwMTMzMiwgMC4wMDEzMzYsIDAuMDAxMzQsIDAuMDAxMzQyLCAwLjAwMTM0MiwgMC4wMDEzNDEsIDAuMDAxMzQiLCBcCi0gICAgICAgICAgIjAuMDAxMzIzLCAwLjAwMTMzMSwgMC4wMDEzMzYsIDAuMDAxMzM5LCAwLjAwMTMzOSwgMC4wMDEzMzksIDAuMDAxMzM5IiwgXAotICAgICAgICAgICIwLjAwMTMxOSwgMC4wMDEzMjQsIDAuMDAxMzM0LCAwLjAwMTMzNiwgMC4wMDEzMzcsIDAuMDAxMzM3LCAwLjAwMTMzNyIsIFwKLSAgICAgICAgICAiMC4wMDEzMjMsIDAuMDAxMzI3LCAwLjAwMTMzMywgMC4wMDEzMzUsIDAuMDAxMzM2LCAwLjAwMTMzNiwgMC4wMDEzMzYiLCBcCi0gICAgICAgICAgIjAuMDAxMzMyLCAwLjAwMTMyOSwgMC4wMDEzMzQsIDAuMDAxMzM1LCAwLjAwMTMzNiwgMC4wMDEzMzYsIDAuMDAxMzM1IiwgXAotICAgICAgICAgICIwLjAwMTM0MiwgMC4wMDEzMzUsIDAuMDAxMzM1LCAwLjAwMTMzNiwgMC4wMDEzMzcsIDAuMDAxMzM2LCAwLjAwMTMzNSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIxIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI0MjgsIDAuMDAyNDMsIDAuMDAyNDMyLCAwLjAwMjQzMywgMC4wMDI0MzMsIDAuMDAyNDMzLCAwLjAwMjQzMyIsIFwKLSAgICAgICAgICAiMC4wMDI0MTksIDAuMDAyNDI3LCAwLjAwMjQzNywgMC4wMDI0NCwgMC4wMDI0NDEsIDAuMDAyNDQyLCAwLjAwMjQ0MiIsIFwKLSAgICAgICAgICAiMC4wMDI0MDYsIDAuMDAyNDE3LCAwLjAwMjQzNCwgMC4wMDI0MzgsIDAuMDAyNDQsIDAuMDAyNDQyLCAwLjAwMjQ0MiIsIFwKLSAgICAgICAgICAiMC4wMDIzOTgsIDAuMDAyNDEsIDAuMDAyNDMxLCAwLjAwMjQzNiwgMC4wMDI0MzksIDAuMDAyNDQxLCAwLjAwMjQ0MiIsIFwKLSAgICAgICAgICAiMC4wMDIzOTQsIDAuMDAyNDA2LCAwLjAwMjQyOCwgMC4wMDI0MzQsIDAuMDAyNDM3LCAwLjAwMjQ0LCAwLjAwMjQ0MSIsIFwKLSAgICAgICAgICAiMC4wMDIzOTgsIDAuMDAyNDA0LCAwLjAwMjQyNCwgMC4wMDI0MzIsIDAuMDAyNDM2LCAwLjAwMjQzOSwgMC4wMDI0NDEiLCBcCi0gICAgICAgICAgIjAuMDAyNDA2LCAwLjAwMjQwOCwgMC4wMDI0MjUsIDAuMDAyNDMxLCAwLjAwMjQzNiwgMC4wMDI0NCwgMC4wMDI0NCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTA2OSwgMC4wMDEwNzEsIDAuMDAxMDc0LCAwLjAwMTA3NCwgMC4wMDEwNzQsIDAuMDAxMDczLCAwLjAwMTA3MyIsIFwKLSAgICAgICAgICAiMC4wMDEwNTksIDAuMDAxMDY4LCAwLjAwMTA4LCAwLjAwMTA4MiwgMC4wMDEwODMsIDAuMDAxMDg0LCAwLjAwMTA4NCIsIFwKLSAgICAgICAgICAiMC4wMDEwNDMsIDAuMDAxMDU2LCAwLjAwMTA3NiwgMC4wMDEwOCwgMC4wMDEwODMsIDAuMDAxMDg0LCAwLjAwMTA4NCIsIFwKLSAgICAgICAgICAiMC4wMDEwMzIsIDAuMDAxMDQ3LCAwLjAwMTA3MiwgMC4wMDEwNzcsIDAuMDAxMDgxLCAwLjAwMTA4MywgMC4wMDEwODQiLCBcCi0gICAgICAgICAgIjAuMDAxMDI2LCAwLjAwMTAzNywgMC4wMDEwNjksIDAuMDAxMDc2LCAwLjAwMTA4LCAwLjAwMTA4MywgMC4wMDEwODQiLCBcCi0gICAgICAgICAgIjAuMDAxMDI2LCAwLjAwMTAzNSwgMC4wMDEwNjMsIDAuMDAxMDcxLCAwLjAwMTA3NywgMC4wMDEwODEsIDAuMDAxMDgyIiwgXAotICAgICAgICAgICIwLjAwMTAzMSwgMC4wMDEwMzUsIDAuMDAxMDYxLCAwLjAwMTA3LCAwLjAwMTA3NSwgMC4wMDEwOCwgMC4wMDEwODEiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogT1IyWDEgKgotICogLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKE9SMlgxKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMDg4MDcwOTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNTc4MzE0OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDU3NTQ1NTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA1NzgzMTQ7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjA0LCAwLjAwMDIxNSwgMC4wMDAyMTgsIDAuMDAwMjE4LCAwLjAwMDIxOSwgMC4wMDAyMiwgMC4wMDAyMiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDI0MSwgMC4wMDAyNDEsIDAuMDAwMjQxLCAwLjAwMDI0MSwgMC4wMDAyNDEsIDAuMDAwMjQxLCAwLjAwMDI0MSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjA3MTc1OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYwNzE3NTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2MDcxNzU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMDYyLCAwLjAwMDA2MiwgMC4wMDAwNjIsIDAuMDAwMDYyLCAwLjAwMDA2MiwgMC4wMDAwNjIsIDAuMDAwMDYyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMTk4LCAwLjAwMDE5OCwgMC4wMDAxOTgsIDAuMDAwMTk4LCAwLjAwMDE5OCwgMC4wMDAxOTgsIDAuMDAwMTk4Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMjYwMDAzOwotICAgIGZ1bmN0aW9uIDogIihBK0IpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjc5MjgsIDAuMDkyNTE0LCAwLjIzMTYzLCAwLjM1NDMyMiwgMC41MTc4NzYsIDAuODQ0OTgyLCAxLjA0OTUiLCBcCi0gICAgICAgICAgIjAuMDc4MTcxLCAwLjEwMjc2NSwgMC4yNDE4OSwgMC4zNjQ1ODYsIDAuNTI4MTQsIDAuODU1MjM4LCAxLjA1OTY4IiwgXAotICAgICAgICAgICIwLjA5MDM5NCwgMC4xMTQ5OTIsIDAuMjU0MTIzLCAwLjM3NjgwOSwgMC41NDAzNzksIDAuODY3NDg2LCAxLjA3MTkxIiwgXAotICAgICAgICAgICIwLjEwMDgwMiwgMC4xMjUzODIsIDAuMjY0NTA4LCAwLjM4NzE5NywgMC41NTA3NTcsIDAuODc3ODk5LCAxLjA4MjMiLCBcCi0gICAgICAgICAgIjAuMTA5NjI1LCAwLjEzNDI0MSwgMC4yNzMzNDgsIDAuMzk2MDM2LCAwLjU1OTYzMiwgMC44ODY3MDUsIDEuMDkxMTMiLCBcCi0gICAgICAgICAgIjAuMTIyNTIsIDAuMTQ3MTQyLCAwLjI4NjIzNCwgMC40MDg5NjMsIDAuNTcyNTUxLCAwLjg5OTcxOSwgMS4xMDQwNCIsIFwKLSAgICAgICAgICAiMC4xMzE5NjcsIDAuMTU2NTgyLCAwLjI5NTcxNywgMC40MTg0MjQsIDAuNTgxOTY5LCAwLjkwOTA4OSwgMS4xMTM1MSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTEzMTUsIDAuMTQxNjUxLCAwLjQyNzcxNiwgMC42ODAyNjUsIDEuMDE3MDQsIDEuNjkwNjMsIDIuMTA5OTQiLCBcCi0gICAgICAgICAgIjAuMDkxNDY0LCAwLjE0MTYzLCAwLjQyNzcwOSwgMC42ODAxOTksIDEuMDE4MTIsIDEuNjkxODgsIDIuMTExNTgiLCBcCi0gICAgICAgICAgIjAuMDkxNjQyLCAwLjE0MTgzNCwgMC40Mjc3MDYsIDAuNjgwMTgyLCAxLjAxNzAyLCAxLjY5MDQzLCAyLjExMTE1IiwgXAotICAgICAgICAgICIwLjA5MTk3NywgMC4xNDE3NzksIDAuNDI4MTAyLCAwLjY4MDI1NywgMS4wMTY4MiwgMS42OTIyNiwgMi4xMTI5NSIsIFwKLSAgICAgICAgICAiMC4wOTIzNjEsIDAuMTQyMjMxLCAwLjQyODA3OSwgMC42ODA4OTEsIDEuMDE2NjMsIDEuNjkyMjEsIDIuMTEyOTMiLCBcCi0gICAgICAgICAgIjAuMDkyOTY5LCAwLjE0MjQxLCAwLjQyNzcxMSwgMC42ODA5NzUsIDEuMDE4MTYsIDEuNjkyNSwgMi4xMTExOCIsIFwKLSAgICAgICAgICAiMC4wOTM4MjMsIDAuMTQyNjc0LCAwLjQyODA5NCwgMC42ODA4NTEsIDEuMDE2NjUsIDEuNjkyMjEsIDIuMTEzNTgiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg2OTUyLCAwLjExMTg2NiwgMC4yNTIxNzQsIDAuMzc1ODkyLCAwLjU0MDc3OCwgMC44NzA2NTUsIDEuMDc2ODIiLCBcCi0gICAgICAgICAgIjAuMDk1Mzc0LCAwLjEyMDI3MiwgMC4yNjA1MTIsIDAuMzg0MjE3LCAwLjU0OTQ4OSwgMC44NzkwOSwgMS4wODU0MiIsIFwKLSAgICAgICAgICAiMC4xMDQ5NTgsIDAuMTI5ODcsIDAuMjcwMTU5LCAwLjM5Mzk0OSwgMC41NTg5MTksIDAuODg4NzA1LCAxLjA5NDgxIiwgXAotICAgICAgICAgICIwLjExMzg3OSwgMC4xMzg3ODQsIDAuMjc5MDYyLCAwLjQwMjgzMSwgMC41Njc5NzUsIDAuODk3NTAyLCAxLjEwNDEiLCBcCi0gICAgICAgICAgIjAuMTIxNzg1LCAwLjE0NjcyMiwgMC4yODcwMjEsIDAuNDEwNzQ3LCAwLjU3NTcxMywgMC45MDU1NTgsIDEuMTExNTgiLCBcCi0gICAgICAgICAgIjAuMTMyOTYsIDAuMTU3Nzc1LCAwLjI5Nzg3NSwgMC40MjE2NzcsIDAuNTg2NzAxLCAwLjkxNjQ1NCwgMS4xMjI1OSIsIFwKLSAgICAgICAgICAiMC4xNDEzNTgsIDAuMTY1OTQ4LCAwLjMwNjI4NSwgMC40Mjk5NjgsIDAuNTk1MDg1LCAwLjkyNDk3NSwgMS4xMzEwMiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTMyNTYsIDAuMTQxNzQ3LCAwLjQyMTkwNiwgMC42NzA3MTQsIDEuMDA0NTgsIDEuNjcwMiwgMi4wNzk2NSIsIFwKLSAgICAgICAgICAiMC4wOTMyMDksIDAuMTQxNzY1LCAwLjQyMjI2NCwgMC42NzI0NzcsIDEuMDAzMTQsIDEuNjY2MjQsIDIuMDgxMjYiLCBcCi0gICAgICAgICAgIjAuMDkzMjYyLCAwLjE0MTkwOSwgMC40MjE4NzksIDAuNjcwODIsIDEuMDAyNTksIDEuNjY5OTksIDIuMDc5NzYiLCBcCi0gICAgICAgICAgIjAuMDkzNTc2LCAwLjE0MjExNCwgMC40MjIxNDQsIDAuNjcwOTM2LCAxLjAwMjIsIDEuNjY1NjgsIDIuMDgzNyIsIFwKLSAgICAgICAgICAiMC4wOTQxNjgsIDAuMTQyNDU2LCAwLjQyMTkxMywgMC42NzA3OTEsIDEuMDAzMzQsIDEuNjY2MjIsIDIuMDgwMjkiLCBcCi0gICAgICAgICAgIjAuMDk0ODM0LCAwLjE0MzEzMiwgMC40MjMxOTIsIDAuNjcxMDg1LCAxLjAwMjQ5LCAxLjY2NDk3LCAyLjA3OTU3IiwgXAotICAgICAgICAgICIwLjA5NTYzNiwgMC4xNDM2MjksIDAuNDIzMzg0LCAwLjY3MjUzNSwgMS4wMDI1NiwgMS42NjYzNywgMi4wODEwNyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjU0MjksIDAuMDkwMDE1LCAwLjIyODk1MywgMC4zNTE1ODMsIDAuNTE1MzE1LCAwLjg0MjcyNCwgMS4wNDcxMiIsIFwKLSAgICAgICAgICAiMC4wNzU1MjYsIDAuMTAwMDkyLCAwLjIzOTM4MiwgMC4zNjE5NzYsIDAuNTI1NTQ0LCAwLjg1MjkzMSwgMS4wNTc2MSIsIFwKLSAgICAgICAgICAiMC4wODcyNzQsIDAuMTExODU1LCAwLjI1MTAwMiwgMC4zNzM3MzcsIDAuNTM3Mzk0LCAwLjg2NTIzNSwgMS4wNjkzOSIsIFwKLSAgICAgICAgICAiMC4wOTY5NzIsIDAuMTIxNDIsIDAuMjYwNTQ4LCAwLjM4MzI4NCwgMC41NDY5MjIsIDAuODc0MzgxLCAxLjA3ODU0IiwgXAotICAgICAgICAgICIwLjEwNTIxMywgMC4xMjk2ODYsIDAuMjY4NzY2LCAwLjM5MTYwNywgMC41NTUxNjYsIDAuODgyMzI5LCAxLjA4NzMxIiwgXAotICAgICAgICAgICIwLjExNjQ4OCwgMC4xNDA5ODQsIDAuMjgwMDQxLCAwLjQwMjcxNywgMC41NjYzNDQsIDAuODkzNjMxLCAxLjA5ODI0IiwgXAotICAgICAgICAgICIwLjEyNDgwNCwgMC4xNDk1MDQsIDAuMjg4NTc4LCAwLjQxMTI5LCAwLjU3NDg3MiwgMC45MDI1NzEsIDEuMTA3MDYiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDkxMDY4LCAwLjE0MTQ0NiwgMC40Mjc0OSwgMC42Nzk5NDEsIDEuMDE3ODcsIDEuNjg5ODIsIDIuMTEzNzMiLCBcCi0gICAgICAgICAgIjAuMDkxMzIxLCAwLjE0MTQ2LCAwLjQyNzQ1LCAwLjY3OTkwOCwgMS4wMTYyLCAxLjY5MDgsIDIuMTEwNTkiLCBcCi0gICAgICAgICAgIjAuMDkxNDg4LCAwLjE0MTY3OCwgMC40Mjc5NzMsIDAuNjc5NTM2LCAxLjAxODAyLCAxLjY5MDQ2LCAyLjExMDU2IiwgXAotICAgICAgICAgICIwLjA5MTg5NiwgMC4xNDE3MDQsIDAuNDI3MjcxLCAwLjY3OTU4OCwgMS4wMTYwMiwgMS42OTA5OCwgMi4xMTAwOSIsIFwKLSAgICAgICAgICAiMC4wOTIzMjQsIDAuMTQyMTA4LCAwLjQyODExNSwgMC42ODAyMSwgMS4wMTU5OCwgMS42ODkzOCwgMi4xMTA2NCIsIFwKLSAgICAgICAgICAiMC4wOTMxODUsIDAuMTQyMzYsIDAuNDI4Mjk5LCAwLjY4MDcxNywgMS4wMTgwNCwgMS42ODkxNSwgMi4xMTA2NiIsIFwKLSAgICAgICAgICAiMC4wOTQ0MDQsIDAuMTQyOTg3LCAwLjQyNzUxNCwgMC42ODAxOSwgMS4wMTc4NSwgMS42ODk4MSwgMi4xMTA1OCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODM1NjYsIDAuMTA4NTEsIDAuMjQ4NzYzLCAwLjM3MjQyMiwgMC41Mzc0MywgMC44NjczNywgMS4wNzMzMiIsIFwKLSAgICAgICAgICAiMC4wOTIzNzgsIDAuMTE3MzA4LCAwLjI1NzU0MywgMC4zODEyNjEsIDAuNTQ2MzgyLCAwLjg3NjE0NSwgMS4wODI3IiwgXAotICAgICAgICAgICIwLjEwMzUxOSwgMC4xMjg0MzQsIDAuMjY4NzA2LCAwLjM5MjQwOCwgMC41NTc1NDIsIDAuODg3MjksIDEuMDkzMzkiLCBcCi0gICAgICAgICAgIjAuMTEzNDAxLCAwLjEzODMyMiwgMC4yNzg2MDgsIDAuNDAyMzgsIDAuNTY3NTQzLCAwLjg5NzE4MywgMS4xMDMzNiIsIFwKLSAgICAgICAgICAiMC4xMjIyNzMsIDAuMTQ3MjE3LCAwLjI4NzQ4NiwgMC40MTEyMDMsIDAuNTc2MTc0LCAwLjkwNjAzNCwgMS4xMTIyNSIsIFwKLSAgICAgICAgICAiMC4xMzUwNDgsIDAuMTU5OTIyLCAwLjI5OTQ1OSwgMC40MjMxNDQsIDAuNTg4NDMxLCAwLjkxODE2OSwgMS4xMjM4OCIsIFwKLSAgICAgICAgICAiMC4xNDQwMzQsIDAuMTY5MjcsIDAuMzA3ODM4LCAwLjQzMjc2NSwgMC41OTc4MzQsIDAuOTI4MDk0LCAxLjEzMzgxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5MzI0OSwgMC4xNDE3OTgsIDAuNDIxOTMyLCAwLjY3MjQwMywgMS4wMDMxNywgMS42NjY4OCwgMi4wODUzOCIsIFwKLSAgICAgICAgICAiMC4wOTMyMDUsIDAuMTQxNzY1LCAwLjQyMjIyMywgMC42NzI1MDUsIDEuMDAyNzksIDEuNjY2NTksIDIuMDgwMzkiLCBcCi0gICAgICAgICAgIjAuMDkzMzk0LCAwLjE0MTg3LCAwLjQyMjMxNSwgMC42NzIxNiwgMS4wMDI2MywgMS42NjQ5OSwgMi4wNzk4MiIsIFwKLSAgICAgICAgICAiMC4wOTM4MzYsIDAuMTQyMjI3LCAwLjQyMjI0NiwgMC42NzA4ODgsIDEuMDAyMTksIDEuNjY3NDksIDIuMDg1NzEiLCBcCi0gICAgICAgICAgIjAuMDk0NDYyLCAwLjE0MjYzNSwgMC40MjI4OTgsIDAuNjcyNDc0LCAxLjAwNDY5LCAxLjY3MDM0LCAyLjA4MDk1IiwgXAotICAgICAgICAgICIwLjA5NTE0NiwgMC4xNDMyMSwgMC40MjMwNDMsIDAuNjcyNDEsIDEuMDAxOTMsIDEuNjY1ODcsIDIuMDgxMTkiLCBcCi0gICAgICAgICAgIjAuMDk1OTkyLCAwLjE0Mzc0MSwgMC40MjM2MjUsIDAuNjcyNTQ0LCAxLjAwMjksIDEuNjY2NjYsIDIuMDgwODkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDEzOTIsIDAuMDAxMzk0LCAwLjAwMTM5NiwgMC4wMDEzOTcsIDAuMDAxMzk4LCAwLjAwMTM5OSwgMC4wMDEzOTkiLCBcCi0gICAgICAgICAgIjAuMDAxMzcxLCAwLjAwMTM3NSwgMC4wMDEzOCwgMC4wMDEzOCwgMC4wMDEzODEsIDAuMDAxMzgxLCAwLjAwMTM4MSIsIFwKLSAgICAgICAgICAiMC4wMDEzNjUsIDAuMDAxMzcxLCAwLjAwMTM3OCwgMC4wMDEzOCwgMC4wMDEzODEsIDAuMDAxMzgxLCAwLjAwMTM4MSIsIFwKLSAgICAgICAgICAiMC4wMDEzNzEsIDAuMDAxMzc3LCAwLjAwMTM4NiwgMC4wMDEzODcsIDAuMDAxMzg4LCAwLjAwMTM4OSwgMC4wMDEzODkiLCBcCi0gICAgICAgICAgIjAuMDAxMzgxLCAwLjAwMTM4NiwgMC4wMDEzOTYsIDAuMDAxMzk5LCAwLjAwMTQsIDAuMDAxNDAxLCAwLjAwMTQwMSIsIFwKLSAgICAgICAgICAiMC4wMDEzODgsIDAuMDAxMzk0LCAwLjAwMTQwNSwgMC4wMDE0MDYsIDAuMDAxNDA5LCAwLjAwMTQwOSwgMC4wMDE0MTEiLCBcCi0gICAgICAgICAgIjAuMDAxNDAzLCAwLjAwMTQwOSwgMC4wMDE0MjEsIDAuMDAxNDI0LCAwLjAwMTQyNiwgMC4wMDE0MjgsIDAuMDAxNDI5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyNDM1LCAwLjAwMjQ0LCAwLjAwMjQ0NywgMC4wMDI0NDgsIDAuMDAyNDQ5LCAwLjAwMjQ1LCAwLjAwMjQ1IiwgXAotICAgICAgICAgICIwLjAwMjQxNywgMC4wMDI0MjMsIDAuMDAyNDMxLCAwLjAwMjQzMiwgMC4wMDI0MzMsIDAuMDAyNDMzLCAwLjAwMjQzNCIsIFwKLSAgICAgICAgICAiMC4wMDI0MDgsIDAuMDAyNDE2LCAwLjAwMjQyNSwgMC4wMDI0MjcsIDAuMDAyNDI4LCAwLjAwMjQyOSwgMC4wMDI0MjkiLCBcCi0gICAgICAgICAgIjAuMDAyNDAzLCAwLjAwMjQxMiwgMC4wMDI0MjQsIDAuMDAyNDI2LCAwLjAwMjQyNywgMC4wMDI0MjgsIDAuMDAyNDI4IiwgXAotICAgICAgICAgICIwLjAwMjQwMSwgMC4wMDI0MSwgMC4wMDI0MjQsIDAuMDAyNDI2LCAwLjAwMjQyNywgMC4wMDI0MjgsIDAuMDAyNDI5IiwgXAotICAgICAgICAgICIwLjAwMjQwMiwgMC4wMDI0MSwgMC4wMDI0MjYsIDAuMDAyNDI5LCAwLjAwMjQzMSwgMC4wMDI0MzIsIDAuMDAyNDMzIiwgXAotICAgICAgICAgICIwLjAwMjQwNSwgMC4wMDI0MTIsIDAuMDAyNDMsIDAuMDAyNDM0LCAwLjAwMjQzNiwgMC4wMDI0MzgsIDAuMDAyNDM4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxMjI2LCAwLjAwMTIyOSwgMC4wMDEyMzIsIDAuMDAxMjM1LCAwLjAwMTIzNywgMC4wMDEyMzUsIDAuMDAxMjM5IiwgXAotICAgICAgICAgICIwLjAwMTE5MywgMC4wMDExOTksIDAuMDAxMjA2LCAwLjAwMTIwNywgMC4wMDEyMDgsIDAuMDAxMjA5LCAwLjAwMTIwOSIsIFwKLSAgICAgICAgICAiMC4wMDExNzcsIDAuMDAxMTg1LCAwLjAwMTE5NiwgMC4wMDExOTksIDAuMDAxMjAxLCAwLjAwMTIwMSwgMC4wMDEyMDIiLCBcCi0gICAgICAgICAgIjAuMDAxMTc3LCAwLjAwMTE4NiwgMC4wMDEyLCAwLjAwMTIwMywgMC4wMDEyMDQsIDAuMDAxMjA2LCAwLjAwMTIwNiIsIFwKLSAgICAgICAgICAiMC4wMDExODQsIDAuMDAxMTk0LCAwLjAwMTIxLCAwLjAwMTIxMywgMC4wMDEyMTUsIDAuMDAxMjE3LCAwLjAwMTIxNyIsIFwKLSAgICAgICAgICAiMC4wMDEyMTQsIDAuMDAxMjI0LCAwLjAwMTI0MSwgMC4wMDEyNDYsIDAuMDAxMjQ3LCAwLjAwMTI1LCAwLjAwMTI1MSIsIFwKLSAgICAgICAgICAiMC4wMDEyMTEsIDAuMDAxMjIxLCAwLjAwMTI0MywgMC4wMDEyNDgsIDAuMDAxMjUsIDAuMDAxMjUzLCAwLjAwMTI1NCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjI0NSwgMC4wMDIyNTMsIDAuMDAyMjYzLCAwLjAwMjI2NSwgMC4wMDIyNjYsIDAuMDAyMjY3LCAwLjAwMjI2NyIsIFwKLSAgICAgICAgICAiMC4wMDIyMTksIDAuMDAyMjI4LCAwLjAwMjIzOSwgMC4wMDIyNDIsIDAuMDAyMjQzLCAwLjAwMjI0NCwgMC4wMDIyNDQiLCBcCi0gICAgICAgICAgIjAuMDAyMjE0LCAwLjAwMjIyMywgMC4wMDIyMzgsIDAuMDAyMjQxLCAwLjAwMjI0MywgMC4wMDIyNDQsIDAuMDAyMjQ1IiwgXAotICAgICAgICAgICIwLjAwMjIyLCAwLjAwMjIzLCAwLjAwMjI0NiwgMC4wMDIyNSwgMC4wMDIyNTIsIDAuMDAyMjU0LCAwLjAwMjI1NCIsIFwKLSAgICAgICAgICAiMC4wMDIyMjYsIDAuMDAyMjM3LCAwLjAwMjI1NiwgMC4wMDIyNiwgMC4wMDIyNjMsIDAuMDAyMjY1LCAwLjAwMjI2NiIsIFwKLSAgICAgICAgICAiMC4wMDIyMzIsIDAuMDAyMjQ0LCAwLjAwMjI2MSwgMC4wMDIyNjYsIDAuMDAyMjY5LCAwLjAwMjI3MSwgMC4wMDIyNzMiLCBcCi0gICAgICAgICAgIjAuMDAyMjQ4LCAwLjAwMjI2LCAwLjAwMjI3OCwgMC4wMDIyODcsIDAuMDAyMjksIDAuMDAyMjkzLCAwLjAwMjI5NCIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBPUjJYMiAqCi0gKiAtLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoT1IyWDIpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4xMjY5ODY7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYyMTUzNTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MTg2OTE7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjIxNTM1OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDIwMywgMC4wMDAyMTUsIDAuMDAwMjE3LCAwLjAwMDIxOCwgMC4wMDAyMTksIDAuMDAwMjIsIDAuMDAwMjIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyNDEsIDAuMDAwMjQxLCAwLjAwMDI0MSwgMC4wMDAyNDEsIDAuMDAwMjQxLCAwLjAwMDI0MSwgMC4wMDAyNDEiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYzODcxNDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2Mzg1NjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2Mzg3MTQ7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMDYxLCAwLjAwMDA2MSwgMC4wMDAwNjEsIDAuMDAwMDYxLCAwLjAwMDA2MSwgMC4wMDAwNjEsIDAuMDAwMDYxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMTkyLCAwLjAwMDE5MiwgMC4wMDAxOTIsIDAuMDAwMTkxLCAwLjAwMDE5MSwgMC4wMDAxOTEsIDAuMDAwMTkxIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuNTI1OTQzOwotICAgIGZ1bmN0aW9uIDogIihBK0IpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTQ2NTcsIDAuMTU2ODczLCAwLjIzODM0NSwgMC4zNDAxNDQsIDAuNDQxOTM2LCAwLjU0MzcxOSwgMC42NDU1MDYiLCBcCi0gICAgICAgICAgIjAuMDY0OTAzLCAwLjE2NzE0MSwgMC4yNDg2MDYsIDAuMzUwMzkyLCAwLjQ1MjE5MiwgMC41NTM5ODgsIDAuNjU1Nzk1IiwgXAotICAgICAgICAgICIwLjA3NzQ5NSwgMC4xNzk3MjIsIDAuMjYxMTksIDAuMzYyOTk0LCAwLjQ2NDc4NiwgMC41NjY1NzcsIDAuNjY4Mzc0IiwgXAotICAgICAgICAgICIwLjA4OTM5LCAwLjE5MTY0MSwgMC4yNzMxMjgsIDAuMzc0OTE5LCAwLjQ3NjcxOSwgMC41Nzg0OTksIDAuNjgwMjgyIiwgXAotICAgICAgICAgICIwLjA5OTY4NiwgMC4yMDE5OTksIDAuMjgzNDYzLCAwLjM4NTI2MiwgMC40ODcwMjMsIDAuNTg4ODI0LCAwLjY5MDU5OSIsIFwKLSAgICAgICAgICAiMC4xMTM5MzEsIDAuMjE2MzY2LCAwLjI5Nzc5OCwgMC4zOTk1NjYsIDAuNTAxMzc2LCAwLjYwMzE1MywgMC43MDQ5MzIiLCBcCi0gICAgICAgICAgIjAuMTI1MTk0LCAwLjIyNzYwMywgMC4zMDkwNTMsIDAuNDEwODMyLCAwLjUxMjYzMiwgMC42MTQ0MSwgMC43MTYyMjkiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDUxMjE5LCAwLjI1ODY3NywgMC40MjcwNDIsIDAuNjM2NDI4LCAwLjg0NjM4MywgMS4wNTY0NSwgMS4yNjY0NCIsIFwKLSAgICAgICAgICAiMC4wNTEyMDQsIDAuMjU4NzIxLCAwLjQyNjk5MiwgMC42MzY0OTgsIDAuODQ2NDAzLCAxLjA1NjIxLCAxLjI2Nzg1IiwgXAotICAgICAgICAgICIwLjA1MTQ2NCwgMC4yNTg2NjUsIDAuNDI3LCAwLjYzNjU1OSwgMC44NDY1MjEsIDEuMDU3NTMsIDEuMjY2MjQiLCBcCi0gICAgICAgICAgIjAuMDUxOTkyLCAwLjI1ODY5NywgMC40MjY5NjYsIDAuNjM2NDk5LCAwLjg0NjM4LCAxLjA1NjM3LCAxLjI2NjIxIiwgXAotICAgICAgICAgICIwLjA1MzAyMywgMC4yNTg2MzYsIDAuNDI3MDA0LCAwLjYzNjIzLCAwLjg0NzE3MSwgMS4wNTY0NSwgMS4yNjYyMiIsIFwKLSAgICAgICAgICAiMC4wNTUwNDksIDAuMjU4ODc3LCAwLjQyNjQyNSwgMC42MzcwMDksIDAuODQ3MjM1LCAxLjA1NzM5LCAxLjI2NzU2IiwgXAotICAgICAgICAgICIwLjA1NjMxMiwgMC4yNTk0NywgMC40MjcwNDYsIDAuNjM2MzkzLCAwLjg0NzIxLCAxLjA1NjIzLCAxLjI2NzYyIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3OTk1NSwgMC4xODU2NTEsIDAuMjY4NDQ1LCAwLjM3MTkzOSwgMC40NzUzNDcsIDAuNTc4ODY1LCAwLjY4MjI1MSIsIFwKLSAgICAgICAgICAiMC4wODgyNzYsIDAuMTk0MDgsIDAuMjc2ODU5LCAwLjM4MDM2MiwgMC40ODM3NDgsIDAuNTg3MzE5LCAwLjY5MDY2MyIsIFwKLSAgICAgICAgICAiMC4wOTgxNDMsIDAuMjAzOTA3LCAwLjI4NjY4MSwgMC4zOTAxNzgsIDAuNDkzNjIzLCAwLjU5NzA3MiwgMC43MDA1MzEiLCBcCi0gICAgICAgICAgIjAuMTA3NDgsIDAuMjEzMjMzLCAwLjI5NjAyMywgMC4zOTk1MTcsIDAuNTAyOTYzLCAwLjYwNjQyMiwgMC43MDk5MzgiLCBcCi0gICAgICAgICAgIjAuMTE2MjA0LCAwLjIyMjA2NSwgMC4zMDQ4ODQsIDAuNDA4MzYyLCAwLjUxMTc2MSwgMC42MTUyOTIsIDAuNzE4NzYiLCBcCi0gICAgICAgICAgIjAuMTI4ODk1LCAwLjIzNDkxNSwgMC4zMTc3MSwgMC40MjEyMTgsIDAuNTI0NTg1LCAwLjYyODIyNCwgMC43MzE1MDQiLCBcCi0gICAgICAgICAgIjAuMTM4NTAxLCAwLjI0NDkzMiwgMC4zMjc3MDIsIDAuNDMxMTI4LCAwLjUzNDYxMiwgMC42MzgyMzYsIDAuNzQxNDY2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1Nzc4NiwgMC4yNjEwNTYsIDAuNDI4MTAzLCAwLjYzNTk3MiwgMC44NDcwNTksIDEuMDU0ODYsIDEuMjY2OTMiLCBcCi0gICAgICAgICAgIjAuMDU3ODA2LCAwLjI2MTA1LCAwLjQyNzg0NywgMC42MzU5NDgsIDAuODQ3MTk2LCAxLjA1NTIzLCAxLjI2NjkxIiwgXAotICAgICAgICAgICIwLjA1NzY2NSwgMC4yNjEzOTgsIDAuNDI3OTU5LCAwLjYzNjI3OSwgMC44NDYwNTIsIDEuMDU0NDgsIDEuMjY2NzgiLCBcCi0gICAgICAgICAgIjAuMDU4MTA0LCAwLjI2MTEwNCwgMC40MjgwOTMsIDAuNjM2MDMsIDAuODQ1OTc2LCAxLjA1NDQ0LCAxLjI2NTEzIiwgXAotICAgICAgICAgICIwLjA1ODc2OSwgMC4yNjExNzEsIDAuNDI3MDYsIDAuNjM1OTM5LCAwLjg0NzA5NiwgMS4wNTUwMywgMS4yNjUxMyIsIFwKLSAgICAgICAgICAiMC4wNTk2OTMsIDAuMjYxNTU5LCAwLjQyODM0NSwgMC42MzU5LCAwLjg0NzQ1NywgMS4wNTQ4NiwgMS4yNjY5OSIsIFwKLSAgICAgICAgICAiMC4wNjEwNjcsIDAuMjYyMDI4LCAwLjQyODU1NiwgMC42Mzc2OTYsIDAuODQ1MjA3LCAxLjA1NDc5LCAxLjI2MzkyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1MjE5MSwgMC4xNTQzMjEsIDAuMjM1ODI5LCAwLjMzNzY2MSwgMC40Mzk1ODYsIDAuNTQxMjgxLCAwLjY0MzAzNiIsIFwKLSAgICAgICAgICAiMC4wNjIzNzgsIDAuMTY0NTQ0LCAwLjI0NjA2OCwgMC4zNDc3MDQsIDAuNDQ5ODUxLCAwLjU1MTQ3NCwgMC42NTMzMDIiLCBcCi0gICAgICAgICAgIjAuMDc0NzkyLCAwLjE3NjkyOSwgMC4yNTg0OTUsIDAuMzYwNDE3LCAwLjQ2MjE5MiwgMC41NjM5OCwgMC42NjU3MTMiLCBcCi0gICAgICAgICAgIjAuMDg2MTEsIDAuMTg4MzU3LCAwLjI2OTczNCwgMC4zNzE3OTUsIDAuNDczNTM4LCAwLjU3NTUyMywgMC42NzcwMTkiLCBcCi0gICAgICAgICAgIjAuMDk1ODUyLCAwLjE5Nzk4NSwgMC4yNzk0NDgsIDAuMzgxMzM3LCAwLjQ4MzMxOCwgMC41ODUxMDYsIDAuNjg2NzUiLCBcCi0gICAgICAgICAgIjAuMTA5NTc4LCAwLjIxMTk5OSwgMC4yOTM0MjQsIDAuMzk1Mjc3LCAwLjQ5NzEyMSwgMC41OTkwNjUsIDAuNzAwNzY0IiwgXAotICAgICAgICAgICIwLjExOTc3MywgMC4yMjIxODYsIDAuMzAzNjIyLCAwLjQwNTQ1OSwgMC41MDcyMzEsIDAuNjA5MDEsIDAuNzEwODkxIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1MDkzOSwgMC4yNTg0ODksIDAuNDI2MjQ5LCAwLjYzNTYyOSwgMC44NDU5NywgMS4wNTU0LCAxLjI2NTQ4IiwgXAotICAgICAgICAgICIwLjA1MDkzNiwgMC4yNTgzNjQsIDAuNDI2MTk1LCAwLjYzNzA2NiwgMC44NDYwMDMsIDEuMDU1NDEsIDEuMjY1MjciLCBcCi0gICAgICAgICAgIjAuMDUxMjczLCAwLjI1ODM0NywgMC40MjYyLCAwLjYzNjA5MSwgMC44NDU5NTIsIDEuMDU2NDMsIDEuMjY1MzYiLCBcCi0gICAgICAgICAgIjAuMDUyMDM3LCAwLjI1ODk1LCAwLjQyNjQzNiwgMC42MzU5ODEsIDAuODQ1OTczLCAxLjA1NTc2LCAxLjI2NTQiLCBcCi0gICAgICAgICAgIjAuMDUzMTA1LCAwLjI1ODk3NCwgMC40MjY5NTQsIDAuNjM1NzQ0LCAwLjg0NjAwMSwgMS4wNTU4NCwgMS4yNjc4NiIsIFwKLSAgICAgICAgICAiMC4wNTUxMzIsIDAuMjU4ODc5LCAwLjQyNjk4MSwgMC42MzU5NSwgMC44NDU3MDUsIDEuMDU2NDEsIDEuMjY1MjgiLCBcCi0gICAgICAgICAgIjAuMDU2OTc3LCAwLjI1OTE0NSwgMC40MjcwOTYsIDAuNjM1OTE2LCAwLjg0NjI4MywgMS4wNTc3MiwgMS4yNjUzNSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzY1NjEsIDAuMTgyNDI2LCAwLjI2NTIzOSwgMC4zNjg3NjksIDAuNDcyMTI5LCAwLjU3NTc1NywgMC42NzkwMjEiLCBcCi0gICAgICAgICAgIjAuMDg1Mzc4LCAwLjE5MTExMiwgMC4yNzM5MTMsIDAuMzc3Mzc2LCAwLjQ4MDgzMSwgMC41ODQzNzMsIDAuNjg3ODYyIiwgXAotICAgICAgICAgICIwLjA5Njc4MiwgMC4yMDI1MzYsIDAuMjg1MzI3LCAwLjM4ODgyMSwgMC40OTIyNzIsIDAuNTk1NzM5LCAwLjY5OTI0OCIsIFwKLSAgICAgICAgICAiMC4xMDc5NTksIDAuMjEzNzMsIDAuMjk2NTE0LCAwLjM5OTk2NywgMC41MDM0NjgsIDAuNjA3MDQzLCAwLjcxMDY3NyIsIFwKLSAgICAgICAgICAiMC4xMTgwNDUsIDAuMjIzOTI4LCAwLjMwNjcwMywgMC40MTAxNTQsIDAuNTEzNjMzLCAwLjYxNzExOSwgMC43MjA1NjQiLCBcCi0gICAgICAgICAgIjAuMTMyNzY1LCAwLjIzNzkzNywgMC4zMjA2OTEsIDAuNDI0MTY3LCAwLjUyNzU4MiwgMC42MzEyNDEsIDAuNzM0NDgzIiwgXAotICAgICAgICAgICIwLjE0MzY2MywgMC4yNDg5MTUsIDAuMzMxNjA4LCAwLjQzNTAxNiwgMC41Mzg1MTIsIDAuNjQxOTYyLCAwLjc0NTM4MSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTc5MDMsIDAuMjYwOTkxLCAwLjQyNzgxOSwgMC42MzU4NTYsIDAuODQ3MzMyLCAxLjA1NDk3LCAxLjI2NzQ0IiwgXAotICAgICAgICAgICIwLjA1NzcyNywgMC4yNjEwMiwgMC40MjgwNjQsIDAuNjM3MDk2LCAwLjg0Njk4MSwgMS4wNTUxNSwgMS4yNjQ2MiIsIFwKLSAgICAgICAgICAiMC4wNTc3NTgsIDAuMjYxMDg5LCAwLjQyODA5OSwgMC42Mzc3NzgsIDAuODQ1OTU3LCAxLjA1NDM3LCAxLjI2NTE3IiwgXAotICAgICAgICAgICIwLjA1ODA1NywgMC4yNjA5MDIsIDAuNDI4MTEsIDAuNjM3NTYzLCAwLjg0NTkyMywgMS4wNTQ5NywgMS4yNjM5OCIsIFwKLSAgICAgICAgICAiMC4wNTkyNDcsIDAuMjYxNjM1LCAwLjQyODE3NCwgMC42Mzc1OTgsIDAuODQ1ODg2LCAxLjA1NDMxLCAxLjI2MzY3IiwgXAotICAgICAgICAgICIwLjA2MDIwNCwgMC4yNjIxODEsIDAuNDI3NzY2LCAwLjYzNjc2LCAwLjg0NzUxNiwgMS4wNTQ3OCwgMS4yNjcwMyIsIFwKLSAgICAgICAgICAiMC4wNjE3MTUsIDAuMjYyMjQ0LCAwLjQyODY4OCwgMC42MzczMjMsIDAuODQ1MjI2LCAxLjA1NTUsIDEuMjYzODciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDIzNDUsIDAuMDAyMzgsIDAuMDAyMzg0LCAwLjAwMjM4NiwgMC4wMDIzODcsIDAuMDAyMzg3LCAwLjAwMjM4NyIsIFwKLSAgICAgICAgICAiMC4wMDIzMTcsIDAuMDAyMzU5LCAwLjAwMjM2NCwgMC4wMDIzNjcsIDAuMDAyMzY5LCAwLjAwMjM2OSwgMC4wMDIzNjkiLCBcCi0gICAgICAgICAgIjAuMDAyMzA2LCAwLjAwMjM1NywgMC4wMDIzNjMsIDAuMDAyMzY1LCAwLjAwMjM2OCwgMC4wMDIzNywgMC4wMDIzNzEiLCBcCi0gICAgICAgICAgIjAuMDAyMzA0LCAwLjAwMjM1OCwgMC4wMDIzNjYsIDAuMDAyMzcsIDAuMDAyMzczLCAwLjAwMjM3NSwgMC4wMDIzNzUiLCBcCi0gICAgICAgICAgIjAuMDAyMzExLCAwLjAwMjM2MywgMC4wMDIzNzUsIDAuMDAyMzc4LCAwLjAwMjM4MSwgMC4wMDIzODMsIDAuMDAyMzg0IiwgXAotICAgICAgICAgICIwLjAwMjMyNywgMC4wMDIzNzgsIDAuMDAyMzg4LCAwLjAwMjM5NSwgMC4wMDI0LCAwLjAwMjQsIDAuMDAyNDAyIiwgXAotICAgICAgICAgICIwLjAwMjM0LCAwLjAwMjM5NSwgMC4wMDI0MDcsIDAuMDAyNDEzLCAwLjAwMjQxNiwgMC4wMDI0MTgsIDAuMDAyNDIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDM0MjUsIDAuMDAzNDkxLCAwLjAwMzQ5OSwgMC4wMDM1MDQsIDAuMDAzNTA2LCAwLjAwMzUwNywgMC4wMDM1MDgiLCBcCi0gICAgICAgICAgIjAuMDAzNDAyLCAwLjAwMzQ3NSwgMC4wMDM0ODQsIDAuMDAzNDg4LCAwLjAwMzQ5MSwgMC4wMDM0OTIsIDAuMDAzNDkzIiwgXAotICAgICAgICAgICIwLjAwMzM5MiwgMC4wMDM0NjcsIDAuMDAzNDc3LCAwLjAwMzQ4MiwgMC4wMDM0ODUsIDAuMDAzNDg2LCAwLjAwMzQ4NyIsIFwKLSAgICAgICAgICAiMC4wMDMzODMsIDAuMDAzNDYyLCAwLjAwMzQ3MywgMC4wMDM0NzksIDAuMDAzNDgyLCAwLjAwMzQ4NCwgMC4wMDM0ODUiLCBcCi0gICAgICAgICAgIjAuMDAzMzc2LCAwLjAwMzQ1OCwgMC4wMDM0NzEsIDAuMDAzNDc3LCAwLjAwMzQ4MSwgMC4wMDM0ODMsIDAuMDAzNDg0IiwgXAotICAgICAgICAgICIwLjAwMzM3OSwgMC4wMDM0NjIsIDAuMDAzNDc0LCAwLjAwMzQ4LCAwLjAwMzQ4NCwgMC4wMDM0ODYsIDAuMDAzNDg3IiwgXAotICAgICAgICAgICIwLjAwMzQwNCwgMC4wMDM0NjMsIDAuMDAzNDc2LCAwLjAwMzQ5LCAwLjAwMzQ4NywgMC4wMDM0OSwgMC4wMDM0OTEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDIxOTUsIDAuMDAyMjM3LCAwLjAwMjI0MiwgMC4wMDIyNDQsIDAuMDAyMjQ0LCAwLjAwMjI0NSwgMC4wMDIyNDYiLCBcCi0gICAgICAgICAgIjAuMDAyMTU3LCAwLjAwMjIxMSwgMC4wMDIyMTYsIDAuMDAyMjIsIDAuMDAyMjIxLCAwLjAwMjIyMiwgMC4wMDIyMjIiLCBcCi0gICAgICAgICAgIjAuMDAyMTMsIDAuMDAyMTk1LCAwLjAwMjIwNCwgMC4wMDIyMDgsIDAuMDAyMjEsIDAuMDAyMjEyLCAwLjAwMjIxMyIsIFwKLSAgICAgICAgICAiMC4wMDIxMjIsIDAuMDAyMTkxLCAwLjAwMjIwMiwgMC4wMDIyMDgsIDAuMDAyMjExLCAwLjAwMjIxMywgMC4wMDIyMTQiLCBcCi0gICAgICAgICAgIjAuMDAyMTI2LCAwLjAwMjE5NSwgMC4wMDIyMDcsIDAuMDAyMjE0LCAwLjAwMjIxNywgMC4wMDIyMiwgMC4wMDIyMiIsIFwKLSAgICAgICAgICAiMC4wMDIxMywgMC4wMDIxOTUsIDAuMDAyMjA4LCAwLjAwMjIxNiwgMC4wMDIyMjEsIDAuMDAyMjIzLCAwLjAwMjIyNSIsIFwKLSAgICAgICAgICAiMC4wMDIxNDQsIDAuMDAyMjA5LCAwLjAwMjIyMywgMC4wMDIyMzIsIDAuMDAyMjM3LCAwLjAwMjI0MywgMC4wMDIyNDIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDMyMzIsIDAuMDAzMzA2LCAwLjAwMzMxNSwgMC4wMDMzMiwgMC4wMDMzMjMsIDAuMDAzMzI0LCAwLjAwMzMyNSIsIFwKLSAgICAgICAgICAiMC4wMDMyMDMsIDAuMDAzMjgyLCAwLjAwMzI5MywgMC4wMDMyOTksIDAuMDAzMzAyLCAwLjAwMzMwMywgMC4wMDMzMDUiLCBcCi0gICAgICAgICAgIjAuMDAzMTkyLCAwLjAwMzI3NCwgMC4wMDMyODYsIDAuMDAzMjkzLCAwLjAwMzI5NywgMC4wMDMyOTksIDAuMDAzMzAxIiwgXAotICAgICAgICAgICIwLjAwMzE5OCwgMC4wMDMyNzQsIDAuMDAzMjg4LCAwLjAwMzI5NiwgMC4wMDMzLCAwLjAwMzMwMywgMC4wMDMzMDQiLCBcCi0gICAgICAgICAgIjAuMDAzMjA3LCAwLjAwMzI4LCAwLjAwMzI5NSwgMC4wMDMzMDQsIDAuMDAzMzA4LCAwLjAwMzMxMSwgMC4wMDMzMTMiLCBcCi0gICAgICAgICAgIjAuMDAzMjAyLCAwLjAwMzI4MywgMC4wMDMzMDIsIDAuMDAzMzE0LCAwLjAwMzMyLCAwLjAwMzMyMywgMC4wMDMzMjYiLCBcCi0gICAgICAgICAgIjAuMDAzMjIsIDAuMDAzMjk2LCAwLjAwMzMxNiwgMC4wMDMzMjksIDAuMDAzMzM2LCAwLjAwMzM0LCAwLjAwMzM0MyIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBPUjRYMiAqCi0gKiAtLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoT1I0WDIpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4xNzYxNDM7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDU2MDYwMTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA1NTcxNzI7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNTYwNjAxOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDE5NSwgMC4wMDAyMDQsIDAuMDAwMjA4LCAwLjAwMDIxLCAwLjAwMDIxMSwgMC4wMDAyMTIsIDAuMDAwMjEzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNTcyLCAwLjAwMDU3MiwgMC4wMDA1NzIsIDAuMDAwNTcyLCAwLjAwMDU3MiwgMC4wMDA1NzIsIDAuMDAwNTcyIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA1Njg2MDM7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNTY1NDA2OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDU2ODYwMzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxOSwgMC4wMDAyMDIsIDAuMDAwMjA4LCAwLjAwMDIxMSwgMC4wMDAyMTMsIDAuMDAwMjE1LCAwLjAwMDIxNiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDQwNSwgMC4wMDA0MDUsIDAuMDAwNDA1LCAwLjAwMDQwNSwgMC4wMDA0MDUsIDAuMDAwNDA1LCAwLjAwMDQwNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQykgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjI3NTg5OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYyNDg3NzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2Mjc1ODk7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMTkzLCAwLjAwMDIxMSwgMC4wMDAyMTUsIDAuMDAwMjE3LCAwLjAwMDIxOCwgMC4wMDAyMTksIDAuMDAwMjIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyNDEsIDAuMDAwMjQxLCAwLjAwMDI0MSwgMC4wMDAyNDEsIDAuMDAwMjQxLCAwLjAwMDI0MSwgMC4wMDAyNDEiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEQpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYzNDE5MzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MzQxOTM7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjM0MTg2OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDA2MSwgMC4wMDAwNjEsIDAuMDAwMDYxLCAwLjAwMDA2MSwgMC4wMDAwNjEsIDAuMDAwMDYxLCAwLjAwMDA2MSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDIwMiwgMC4wMDAyMDIsIDAuMDAwMjAyLCAwLjAwMDIwMiwgMC4wMDAyMDIsIDAuMDAwMjAyLCAwLjAwMDIwMSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjUyMTk3MzsKLSAgICBmdW5jdGlvbiA6ICIoKChBK0IpK0MpK0QpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjYxMjEsIDAuMTY4NjU2LCAwLjI0OTcyMiwgMC4zNTA5NjIsIDAuNDUyMTM1LCAwLjU1MzI4MSwgMC42NTQ1MDIiLCBcCi0gICAgICAgICAgIjAuMDc2MzI3LCAwLjE3ODg4MywgMC4yNTk5NjEsIDAuMzYxMiwgMC40NjIzNywgMC41NjM1MywgMC42NjQ2NTYiLCBcCi0gICAgICAgICAgIjAuMDg5MTMzLCAwLjE5MTYzNSwgMC4yNzI3MjIsIDAuMzczOTYxLCAwLjQ3NTEzMiwgMC41NzYyOTMsIDAuNjc3NDM3IiwgXAotICAgICAgICAgICIwLjEwMTg4LCAwLjIwNDMwNCwgMC4yODUzNzQsIDAuMzg2NjEyLCAwLjQ4Nzc4NCwgMC41ODg5MjcsIDAuNjkwMDY2IiwgXAotICAgICAgICAgICIwLjExMzk2NSwgMC4yMTYzNzcsIDAuMjk3NDg2LCAwLjM5ODcwNywgMC40OTk4NTksIDAuNjAxMDEzLCAwLjcwMjE1MSIsIFwKLSAgICAgICAgICAiMC4xMzEwNjUsIDAuMjMzNTc4LCAwLjMxNDcwNiwgMC40MTU5LCAwLjUxNzA2LCAwLjYxODE5MywgMC43MTkzMjkiLCBcCi0gICAgICAgICAgIjAuMTQ0Mzg5LCAwLjI0NjkyOSwgMC4zMjc5NjksIDAuNDI5MTc1LCAwLjUzMDQyLCAwLjYzMTQ5MiwgMC43MzI2MjQiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDUzNzU3LCAwLjI1ODM1MiwgMC40MjQ0ODQsIDAuNjMzNDksIDAuODQyMTcsIDEuMDUwODUsIDEuMjU5NTUiLCBcCi0gICAgICAgICAgIjAuMDUzNjg0LCAwLjI1ODMwMSwgMC40MjQ0MjksIDAuNjMzNDUsIDAuODQyMTMzLCAxLjA1MDgzLCAxLjI1OTQ4IiwgXAotICAgICAgICAgICIwLjA1MzU5NiwgMC4yNTgyOTksIDAuNDI0MzY0LCAwLjYzMzQzMiwgMC44NDIxMTMsIDEuMDUwODIsIDEuMjU5NTMiLCBcCi0gICAgICAgICAgIjAuMDUzOTYxLCAwLjI1ODMwMSwgMC40MjQ4MDUsIDAuNjMzMzY2LCAwLjg0MjEwNCwgMS4wNTA3NywgMS4yNTk0NCIsIFwKLSAgICAgICAgICAiMC4wNTQ1MDYsIDAuMjU3OTk5LCAwLjQyNDc3NywgMC42MzMzNzQsIDAuODQxOTU5LCAxLjA1MDYzLCAxLjI1OTMxIiwgXAotICAgICAgICAgICIwLjA1NjIxNCwgMC4yNTgzODYsIDAuNDIzOTkzLCAwLjYzMzM3MywgMC44NDIwMDYsIDEuMDUwNjMsIDEuMjU5MyIsIFwKLSAgICAgICAgICAiMC4wNTc3MDgsIDAuMjU4NDY1LCAwLjQyNDg1NSwgMC42MzMzMTIsIDAuODQwNTU5LCAxLjA0OTU1LCAxLjI1OTI5Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE2MDU4NywgMC4yNzkwNiwgMC4zNjI5NzEsIDAuNDY2NjM2LCAwLjU3MDE2MywgMC42NzM2MDcsIDAuNzc3MDUiLCBcCi0gICAgICAgICAgIjAuMTY4NjExLCAwLjI4NzQ4OSwgMC4zNzE0MTksIDAuNDc1MDk2LCAwLjU3ODYyMywgMC42ODIwNjEsIDAuNzg1NTAyIiwgXAotICAgICAgICAgICIwLjE3NzQ4NSwgMC4yOTYwNzUsIDAuMzc5OTU4LCAwLjQ4MzY0LCAwLjU4NzEzNiwgMC42OTA2MDYsIDAuNzk0MDQ3IiwgXAotICAgICAgICAgICIwLjE4NTE1MiwgMC4zMDM4MzIsIDAuMzg3NzI2LCAwLjQ5MTQ0NiwgMC41OTQ5MzIsIDAuNjk4Mzk1LCAwLjgwMTg3MSIsIFwKLSAgICAgICAgICAiMC4xOTIyNzMsIDAuMzEwOTQ0LCAwLjM5NDg1MiwgMC40OTg1NDEsIDAuNjAyMDI1LCAwLjcwNTQ4OCwgMC44MDg5OSIsIFwKLSAgICAgICAgICAiMC4yMDMxOSwgMC4zMjE3NDgsIDAuNDA1NjE4LCAwLjUwOTMyMSwgMC42MTI4NSwgMC43MTYzMDEsIDAuODE5NzU5IiwgXAotICAgICAgICAgICIwLjIxMTgzMSwgMC4zMzA1LCAwLjQxNDM3MSwgMC41MTgwODMsIDAuNjIxNTY0LCAwLjcyNTA3MSwgMC44Mjg1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3ODU5NSwgMC4yNzc0NjcsIDAuNDM5NDY1LCAwLjY0NTkxOCwgMC44NTM4MjEsIDEuMDYyMzEsIDEuMjcxMzMiLCBcCi0gICAgICAgICAgIjAuMDc5Mjk5LCAwLjI3NzQ1NCwgMC40MzkzOTgsIDAuNjQ1MjY5LCAwLjg1MzkyLCAxLjA2MjMxLCAxLjI3MTI5IiwgXAotICAgICAgICAgICIwLjA3ODYyNywgMC4yNzc0MTksIDAuNDM5MzkxLCAwLjY0NTI2OSwgMC44NTI0ODcsIDEuMDYyMzIsIDEuMjcxMzEiLCBcCi0gICAgICAgICAgIjAuMDc4ODIzLCAwLjI3NzMwMiwgMC40MzkyMTIsIDAuNjQ1MjgxLCAwLjg1MzYzOCwgMS4wNjIyMiwgMS4yNzE0MSIsIFwKLSAgICAgICAgICAiMC4wNzg2NzQsIDAuMjc3MjEzLCAwLjQzOTE3NywgMC42NDUzNjgsIDAuODUzNjAzLCAxLjA2MjIzLCAxLjI3MDA4IiwgXAotICAgICAgICAgICIwLjA3ODcyNiwgMC4yNzcxNzIsIDAuNDM5MjAyLCAwLjY0NTE5NiwgMC44NTM3NzgsIDEuMDYyMjQsIDEuMjcwNSIsIFwKLSAgICAgICAgICAiMC4wNzkwMzQsIDAuMjc3Njg3LCAwLjQzOTM5LCAwLjY0NTUzMiwgMC44NTM1MDcsIDEuMDYyNDMsIDEuMjcwOTkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY0MDY0LCAwLjE2NjIxNSwgMC4yNDcyMTUsIDAuMzQ4MzczLCAwLjQ0OTUwNiwgMC41NTA2MzUsIDAuNjUxNzQzIiwgXAotICAgICAgICAgICIwLjA3NDM3NCwgMC4xNzY0NzcsIDAuMjU3NDkxLCAwLjM1ODY0OCwgMC40NTk4MzEsIDAuNTYxLCAwLjY2MjAxOSIsIFwKLSAgICAgICAgICAiMC4wODczNDMsIDAuMTg5NDI4LCAwLjI3MDQ3NCwgMC4zNzE1OTYsIDAuNDcyNzMzLCAwLjU3Mzg1NywgMC42NzUwOTIiLCBcCi0gICAgICAgICAgIjAuMDk5ODk2LCAwLjIwMTk2OCwgMC4yODMwMTMsIDAuMzg0MTM5LCAwLjQ4NTI4MSwgMC41ODY0MDMsIDAuNjg3NTIxIiwgXAotICAgICAgICAgICIwLjExMTQzMywgMC4yMTM1ODQsIDAuMjk0NjAxLCAwLjM5NTc1OCwgMC40OTY4OTYsIDAuNTk4MDE5LCAwLjY5OTE2MyIsIFwKLSAgICAgICAgICAiMC4xMjgzNDUsIDAuMjMwNjA1LCAwLjMxMTYxLCAwLjQxMjc2NywgMC41MTM5MTcsIDAuNjE0OTk4LCAwLjcxNjEyIiwgXAotICAgICAgICAgICIwLjE0MDc5OCwgMC4yNDMzMjQsIDAuMzI0Mjg1LCAwLjQyNTQ5NCwgMC41MjY1OTYsIDAuNjI3Njg2LCAwLjcyODgwNiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTI5MDIsIDAuMjU3NzQyLCAwLjQyNDQ0OCwgMC42MzMwODQsIDAuODQwNzc4LCAxLjA0OTUsIDEuMjU3NyIsIFwKLSAgICAgICAgICAiMC4wNTI4NzQsIDAuMjU3NzUsIDAuNDIzODAyLCAwLjYzMzA0OSwgMC44NDE5LCAxLjA0ODY4LCAxLjI1NzgyIiwgXAotICAgICAgICAgICIwLjA1Mjg3MSwgMC4yNTc3NTIsIDAuNDIzNzM3LCAwLjYzMzA0NywgMC44NDA4MTQsIDEuMDQ5MjgsIDEuMjU3MjMiLCBcCi0gICAgICAgICAgIjAuMDUzMTk4LCAwLjI1Nzc0NCwgMC40MjQ0NDMsIDAuNjMyOTY0LCAwLjg0MDc4NywgMS4wNTAxMywgMS4yNTc2NiIsIFwKLSAgICAgICAgICAiMC4wNTM5MTcsIDAuMjU3ODI1LCAwLjQyMzc1NSwgMC42MzI5NzIsIDAuODQwODI4LCAxLjA0OTIyLCAxLjI1NzczIiwgXAotICAgICAgICAgICIwLjA1NTY1NCwgMC4yNTgwNDgsIDAuNDI0NDcyLCAwLjYzMzAxLCAwLjg0MDU4MywgMS4wNTAyNywgMS4yNTc2MiIsIFwKLSAgICAgICAgICAiMC4wNTc1MjUsIDAuMjU4MDIzLCAwLjQyNDA3NiwgMC42MzMxMTIsIDAuODQxNjksIDEuMDUwMywgMS4yNTkwMiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNTYyNzEsIDAuMjc0ODg0LCAwLjM1ODgxNCwgMC40NjI0OTQsIDAuNTY2MDM0LCAwLjY2OTQ2MiwgMC43NzI5MDQiLCBcCi0gICAgICAgICAgIjAuMTY0MzU5LCAwLjI4MjcyNiwgMC4zNjY2OTYsIDAuNDcwMzgyLCAwLjU3Mzg4OSwgMC42NzczNDgsIDAuNzgwODQ4IiwgXAotICAgICAgICAgICIwLjE3MzA3NCwgMC4yOTE4MTYsIDAuMzc1NzMxLCAwLjQ3OTQyLCAwLjU4MjkwNywgMC42ODYzNzQsIDAuNzg5ODM0IiwgXAotICAgICAgICAgICIwLjE4MTI1MywgMC4zMDAwMTEsIDAuMzgzOTIyLCAwLjQ4NzYxMywgMC41OTExMDEsIDAuNjk0NjAyLCAwLjc5ODAyOCIsIFwKLSAgICAgICAgICAiMC4xODkyODgsIDAuMzA3OTQ2LCAwLjM5MTg3MiwgMC40OTU1NzYsIDAuNTk5MDczLCAwLjcwMjUzNSwgMC44MDYxMDMiLCBcCi0gICAgICAgICAgIjAuMjAxODIxLCAwLjMyMDM5MiwgMC40MDQyODIsIDAuNTA3OTg3LCAwLjYxMTQ5MywgMC43MTQ5NTcsIDAuODE4NDU0IiwgXAotICAgICAgICAgICIwLjIxMjIxLCAwLjMzMDg2MywgMC40MTQ3ODUsIDAuNTE4NDgzLCAwLjYyMjAxOCwgMC43MjU0NjYsIDAuODI4OTI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3ODc3NCwgMC4yNzc0NTcsIDAuNDM5NDAzLCAwLjY0NTI1MywgMC44NTM5OTcsIDEuMDYyMzEsIDEuMjcxMjkiLCBcCi0gICAgICAgICAgIjAuMDc4ODg0LCAwLjI3NzM2NSwgMC40Mzk1MzYsIDAuNjQ1OTA2LCAwLjg1MzcxLCAxLjA2MjI1LCAxLjI3MTY1IiwgXAotICAgICAgICAgICIwLjA3OTA5MywgMC4yNzczNzksIDAuNDM5MzM0LCAwLjY0NTI3MywgMC44NTM2MjMsIDEuMDYyMiwgMS4yNzEyOSIsIFwKLSAgICAgICAgICAiMC4wNzg3MiwgMC4yNzcyNTUsIDAuNDM5MjYyLCAwLjY0NTM5OSwgMC44NTM2NTQsIDEuMDYyMzgsIDEuMjcxMzEiLCBcCi0gICAgICAgICAgIjAuMDc4NjE4LCAwLjI3NzEwOCwgMC40MzkyMDcsIDAuNjQ1MTYxLCAwLjg1MzU4NSwgMS4wNjIyMywgMS4yNzE4OCIsIFwKLSAgICAgICAgICAiMC4wNzg4MjcsIDAuMjc3MjE5LCAwLjQzOTIxOSwgMC42NDU3NzIsIDAuODUzNjIzLCAxLjA2MjIsIDEuMjcxNTYiLCBcCi0gICAgICAgICAgIjAuMDc5Mzk2LCAwLjI3NzYyLCAwLjQzOTM5MiwgMC42NDU0OTUsIDAuODUzNzc0LCAxLjA2MjI4LCAxLjI3MDM2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2MTQzNiwgMC4xNjMzMDYsIDAuMjQ0MjI4LCAwLjM0NTM0NywgMC40NDY0NywgMC41NDc1OTMsIDAuNjQ4NjYzIiwgXAotICAgICAgICAgICIwLjA3MTgxMiwgMC4xNzM2NzEsIDAuMjU0NTk1LCAwLjM1NTcxNSwgMC40NTY4MywgMC41NTc5NDksIDAuNjU5MDQ3IiwgXAotICAgICAgICAgICIwLjA4NDY4MSwgMC4xODY1MzUsIDAuMjY3NTA4LCAwLjM2ODYwOSwgMC40Njk3MjksIDAuNTcwODI4LCAwLjY3MTk0NiIsIFwKLSAgICAgICAgICAiMC4wOTY5MjIsIDAuMTk4ODc4LCAwLjI3OTg0MywgMC4zODA5NjEsIDAuNDgyMDk4LCAwLjU4MzE5OCwgMC42ODQyOTYiLCBcCi0gICAgICAgICAgIjAuMTA4MTczLCAwLjIxMDA2NSwgMC4yOTEwMDUsIDAuMzkyMTIxLCAwLjQ5MzIyMywgMC41OTQzNzMsIDAuNjk1NDQ1IiwgXAotICAgICAgICAgICIwLjEyNDM4OCwgMC4yMjY0OCwgMC4zMDc0MjEsIDAuNDA4NTU0LCAwLjUwOTY0MSwgMC42MTA3NCwgMC43MTE4NzgiLCBcCi0gICAgICAgICAgIjAuMTM2MTkxLCAwLjIzODU4OCwgMC4zMTk1MDQsIDAuNDIwNjYyLCAwLjUyMTcwOSwgMC42MjI4NDksIDAuNzIzOTU2Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1MjM3NSwgMC4yNTc1MiwgMC40MjQxOTgsIDAuNjMyNjcxLCAwLjg0MDYwOCwgMS4wNDg1OCwgMS4yNTkxNyIsIFwKLSAgICAgICAgICAiMC4wNTIzMzUsIDAuMjU3NDkxLCAwLjQyMzY2NCwgMC42MzI4MTgsIDAuODQwNTY3LCAxLjA0OTA2LCAxLjI1NzU2IiwgXAotICAgICAgICAgICIwLjA1MjQ2MSwgMC4yNTc0MjYsIDAuNDI0MjI0LCAwLjYzMjA5OSwgMC44MzkyMDksIDEuMDQ5MjksIDEuMjU3NTUiLCBcCi0gICAgICAgICAgIjAuMDUyODQ2LCAwLjI1NzQ0NSwgMC40MjMzOTQsIDAuNjMyNzQ5LCAwLjg0MTQ5MiwgMS4wNTAxOSwgMS4yNTc0OSIsIFwKLSAgICAgICAgICAiMC4wNTM5NTEsIDAuMjU3NjA1LCAwLjQyMzU1NCwgMC42MzIxNDgsIDAuODQwNTU4LCAxLjA1MDIzLCAxLjI1NzU1IiwgXAotICAgICAgICAgICIwLjA1NTg2NiwgMC4yNTc0OCwgMC40MjM0OTYsIDAuNjMyNzc0LCAwLjg0MTQzMSwgMS4wNDg5MiwgMS4yNTg5MiIsIFwKLSAgICAgICAgICAiMC4wNTc4NzMsIDAuMjU4MTI1LCAwLjQyMzg0LCAwLjYzMTc2MiwgMC44NDA0NzgsIDEuMDUwMTksIDEuMjU4OTEiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTQ4MTI0LCAwLjI2NjYwOCwgMC4zNTA1MTIsIDAuNDU0MTg1LCAwLjU1NzY5MiwgMC42NjExNiwgMC43NjQ2MDUiLCBcCi0gICAgICAgICAgIjAuMTU1ODEyLCAwLjI3NDM4NywgMC4zNTgzMDgsIDAuNDYxOTk1LCAwLjU2NTQ4MSwgMC42Njg5ODEsIDAuNzcyNDA0IiwgXAotICAgICAgICAgICIwLjE2NTI0NiwgMC4yODM2OSwgMC4zNjc2MDIsIDAuNDcxMjg1LCAwLjU3NDgwNywgMC42NzgyNTQsIDAuNzgxNzA4IiwgXAotICAgICAgICAgICIwLjE3NDY3MywgMC4yOTMzNDMsIDAuMzc3MjY0LCAwLjQ4MDk3MywgMC41ODQ0NzEsIDAuNjg3OTM0LCAwLjc5MTUzMyIsIFwKLSAgICAgICAgICAiMC4xODQxNzYsIDAuMzAyNzc3LCAwLjM4NjY2NSwgMC40OTAzODQsIDAuNTkzODY5LCAwLjY5NzMzMiwgMC44MDA4MSIsIFwKLSAgICAgICAgICAiMC4xOTg4MDEsIDAuMzE3NTUzLCAwLjQwMTQ2LCAwLjUwNTE1OCwgMC42MDg2NDQsIDAuNzEyMTQzLCAwLjgxNTU4NiIsIFwKLSAgICAgICAgICAiMC4yMTE0MDksIDAuMzMwMTI4LCAwLjQxNDAxMywgMC41MTc3MTksIDAuNjIxMjEsIDAuNzI0NzY2LCAwLjgyODEzOCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzg2NTEsIDAuMjc3NDE3LCAwLjQzOTQ1OCwgMC42NDU4NzIsIDAuODUyMzg2LCAxLjA2MjM1LCAxLjI3MTMxIiwgXAotICAgICAgICAgICIwLjA3ODgxLCAwLjI3NzU1OCwgMC40Mzk0MzgsIDAuNjQ1MzQ1LCAwLjg1MzY3LCAxLjA2MjQ1LCAxLjI3MTMiLCBcCi0gICAgICAgICAgIjAuMDc4Njc3LCAwLjI3NzQ3MiwgMC40Mzk0MjMsIDAuNjQ1MjQ3LCAwLjg1Mzc4MSwgMS4wNjIzMSwgMS4yNzA5OCIsIFwKLSAgICAgICAgICAiMC4wNzg5MDksIDAuMjc3MTc3LCAwLjQzOTI4MSwgMC42NDUzMTUsIDAuODUzNjQsIDEuMDYyMTksIDEuMjY4NTMiLCBcCi0gICAgICAgICAgIjAuMDc4NjY3LCAwLjI3NzEzOCwgMC40MzkxNzksIDAuNjQ1MzYyLCAwLjg1MzYxNCwgMS4wNjIyLCAxLjI2OTQiLCBcCi0gICAgICAgICAgIjAuMDc5NjUxLCAwLjI3NzQwOSwgMC40MzkzMSwgMC42NDU1NiwgMC44NTM2NzgsIDEuMDYxMiwgMS4yNzA5OCIsIFwKLSAgICAgICAgICAiMC4wNzk1MzUsIDAuMjc3ODE5LCAwLjQzOTQ3MSwgMC42NDU1MDUsIDAuODUzNTM2LCAxLjA2MjcsIDEuMjcxMzYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU4NTEyLCAwLjE2MDMxMiwgMC4yNDEyNTgsIDAuMzQyMzA2LCAwLjQ0Mzc3NSwgMC41NDQ3NjQsIDAuNjQ1OTE3IiwgXAotICAgICAgICAgICIwLjA2ODkwMSwgMC4xNzA2NzksIDAuMjUxNjA5LCAwLjM1Mjc2MSwgMC40NTQxMywgMC41NTUzMjcsIDAuNjU2MTYzIiwgXAotICAgICAgICAgICIwLjA4MTUxOSwgMC4xODMyMjMsIDAuMjY0MTIxLCAwLjM2NTMxLCAwLjQ2NjQxLCAwLjU2NzYxMiwgMC42Njg4NTgiLCBcCi0gICAgICAgICAgIjAuMDkzNzQxLCAwLjE5NTUyOSwgMC4yNzY0OTYsIDAuMzc3NjI4LCAwLjQ3ODc4NiwgMC41Nzk4NjYsIDAuNjgxMDY2IiwgXAotICAgICAgICAgICIwLjEwNDYxNSwgMC4yMDYzMjksIDAuMjg3Mjk4LCAwLjM4ODQ4NywgMC40ODk3MTksIDAuNTkwODQ1LCAwLjY5MjI1NCIsIFwKLSAgICAgICAgICAiMC4xMTk2NjMsIDAuMjIxNzkzLCAwLjMwMjY2OSwgMC40MDM4MTIsIDAuNTA0OTc0LCAwLjYwNjQ2OSwgMC43MDc0NDgiLCBcCi0gICAgICAgICAgIjAuMTMxMTEyLCAwLjIzMzQyOCwgMC4zMTQzMjUsIDAuNDE1NDgsIDAuNTE2NjE4LCAwLjYxNzc3MSwgMC43MTkwMjkiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDUyMTQzLCAwLjI1NzIzMiwgMC40MjQxMjgsIDAuNjMyNzY2LCAwLjg0MDE4NiwgMS4wNDg3MywgMS4yNTcxMyIsIFwKLSAgICAgICAgICAiMC4wNTIxMTcsIDAuMjU3MTg2LCAwLjQyNDA1OCwgMC42MzI4NzEsIDAuODQwMTg1LCAxLjA0ODU5LCAxLjI1OTE3IiwgXAotICAgICAgICAgICIwLjA1MjQyMiwgMC4yNTcyMzgsIDAuNDI0MDM1LCAwLjYzMTU4OCwgMC44NDEzNTcsIDEuMDQ4MTgsIDEuMjU3MDEiLCBcCi0gICAgICAgICAgIjAuMDUyOTI5LCAwLjI1NzM1OSwgMC40MjMxNzksIDAuNjMxNTg4LCAwLjgzOTgzNywgMS4wNDgzNywgMS4yNTY1NSIsIFwKLSAgICAgICAgICAiMC4wNTM5NjIsIDAuMjU3MzgyLCAwLjQyMzQyLCAwLjYzMTczMiwgMC44NDAzLCAxLjA0ODU4LCAxLjI2MjIzIiwgXAotICAgICAgICAgICIwLjA1NjIzLCAwLjI1NzM1NSwgMC40MjM5MjksIDAuNjMyNTA4LCAwLjgzOTk3NiwgMS4wNDg1LCAxLjI1NzAyIiwgXAotICAgICAgICAgICIwLjA1ODA0NSwgMC4yNTgwMTIsIDAuNDI0Mjc0LCAwLjYzMTYzNCwgMC44Mzk5NzIsIDEuMDQ4MjEsIDEuMjU2OTkiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTM2NzkzLCAwLjI1NTY1NCwgMC4zMzk2MTYsIDAuNDQzMzA0LCAwLjU0Njc5MSwgMC42NTAzMSwgMC43NTM3MTkiLCBcCi0gICAgICAgICAgIjAuMTQ0NTU1LCAwLjI2MzM3NCwgMC4zNDczMzgsIDAuNDUwOTU1LCAwLjU1NDQ1NCwgMC42NTc5MjgsIDAuNzYxMzg1IiwgXAotICAgICAgICAgICIwLjE1NDY0NCwgMC4yNzMzNjQsIDAuMzU3Mjc4LCAwLjQ2MDk3NCwgMC41NjQ0NjEsIDAuNjY4MDAzLCAwLjc3MTQwMyIsIFwKLSAgICAgICAgICAiMC4xNjUwMjIsIDAuMjgzNjc3LCAwLjM2NzU5MiwgMC40NzEzMDUsIDAuNTc0ODAzLCAwLjY3ODI2OCwgMC43ODE3OSIsIFwKLSAgICAgICAgICAiMC4xNzU1MDgsIDAuMjk0MDk5LCAwLjM3ODAwNSwgMC40ODE3MDUsIDAuNTg1MTk3LCAwLjY4ODc2MywgMC43OTIxNDQiLCBcCi0gICAgICAgICAgIjAuMTkyMDM0LCAwLjMxMDQ3MiwgMC4zOTQzOSwgMC40OTgxMDQsIDAuNjAxNTkxLCAwLjcwNTA3NCwgMC44MDg1MzgiLCBcCi0gICAgICAgICAgIjAuMjA2MTQ5LCAwLjMyNDg2MiwgMC40MDg3NjcsIDAuNTEyNDYyLCAwLjYxNTk1MiwgMC43MTk0NzgsIDAuODIyODgyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3OTA2LCAwLjI3NzM2NiwgMC40MzkzNDMsIDAuNjQ1MjYzLCAwLjg1MzYzMywgMS4wNjI1NiwgMS4yNzEyOCIsIFwKLSAgICAgICAgICAiMC4wNzg3ODQsIDAuMjc3MzIzLCAwLjQzOTMxNiwgMC42NDUzMTgsIDAuODUzNjQyLCAxLjA2MjIzLCAxLjI3MDk2IiwgXAotICAgICAgICAgICIwLjA3ODc2NywgMC4yNzcyNDQsIDAuNDM5MjU4LCAwLjY0NTQyNCwgMC44NTM2MzEsIDEuMDYyNjEsIDEuMjcxMDMiLCBcCi0gICAgICAgICAgIjAuMDc4NjE3LCAwLjI3NzE4MSwgMC40MzkyNjgsIDAuNjQ1ODAzLCAwLjg1MzYzOSwgMS4wNjIxOCwgMS4yNjg2NiIsIFwKLSAgICAgICAgICAiMC4wNzg1MzgsIDAuMjc3MTIzLCAwLjQzOTE0NywgMC42NDU0NjIsIDAuODUzNDg2LCAxLjA2MDI1LCAxLjI3MDkzIiwgXAotICAgICAgICAgICIwLjA3ODc2MywgMC4yNzc1MTIsIDAuNDM5MzYsIDAuNjQ1NTM2LCAwLjg1MzUyNCwgMS4wNjIyNywgMS4yNzA5OCIsIFwKLSAgICAgICAgICAiMC4wNzk2MDUsIDAuMjc3NTc4LCAwLjQzOTM5NiwgMC42NDU0MzUsIDAuODUzNTE1LCAxLjA2MjU0LCAxLjI3MTM1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyODc1LCAwLjAwMjkxNiwgMC4wMDI5MjEsIDAuMDAyOTI1LCAwLjAwMjkyNSwgMC4wMDI5MjYsIDAuMDAyOTI2IiwgXAotICAgICAgICAgICIwLjAwMjg1MSwgMC4wMDI4OTUsIDAuMDAyOTAzLCAwLjAwMjkwNSwgMC4wMDI5MDcsIDAuMDAyOTA2LCAwLjAwMjkwOCIsIFwKLSAgICAgICAgICAiMC4wMDI4NDIsIDAuMDAyODg3LCAwLjAwMjg5NSwgMC4wMDI4OTcsIDAuMDAyODk5LCAwLjAwMjkwMSwgMC4wMDI5MDEiLCBcCi0gICAgICAgICAgIjAuMDAyODM4LCAwLjAwMjg4NCwgMC4wMDI4OTQsIDAuMDAyODk2LCAwLjAwMjg5OCwgMC4wMDI5LCAwLjAwMjkiLCBcCi0gICAgICAgICAgIjAuMDAyODM0LCAwLjAwMjg4MywgMC4wMDI4OTMsIDAuMDAyODk4LCAwLjAwMjkwMSwgMC4wMDI5MDMsIDAuMDAyOTA0IiwgXAotICAgICAgICAgICIwLjAwMjg0MywgMC4wMDI4OTIsIDAuMDAyOTAyLCAwLjAwMjkwOCwgMC4wMDI5MTIsIDAuMDAyOTEyLCAwLjAwMjkxNCIsIFwKLSAgICAgICAgICAiMC4wMDI4NzQsIDAuMDAyOTA2LCAwLjAwMjkxNSwgMC4wMDI5MiwgMC4wMDI5MjMsIDAuMDAyOTI0LCAwLjAwMjkyNyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDYyMywgMC4wMDQ2OTYsIDAuMDA0NzEyLCAwLjAwNDcyLCAwLjAwNDcyNSwgMC4wMDQ3MjgsIDAuMDA0NzI5IiwgXAotICAgICAgICAgICIwLjAwNDYxNSwgMC4wMDQ2ODYsIDAuMDA0NzAxLCAwLjAwNDcwOCwgMC4wMDQ3MTMsIDAuMDA0NzE1LCAwLjAwNDcxNyIsIFwKLSAgICAgICAgICAiMC4wMDQ1OTksIDAuMDA0Njc1LCAwLjAwNDY5MSwgMC4wMDQ2OTksIDAuMDA0NzA0LCAwLjAwNDcwNiwgMC4wMDQ3MDgiLCBcCi0gICAgICAgICAgIjAuMDA0NTksIDAuMDA0NjY5LCAwLjAwNDY4NSwgMC4wMDQ2OTQsIDAuMDA0Njk5LCAwLjAwNDcwMiwgMC4wMDQ3MDMiLCBcCi0gICAgICAgICAgIjAuMDA0NTgzLCAwLjAwNDY2NSwgMC4wMDQ2ODIsIDAuMDA0NjkxLCAwLjAwNDY5NiwgMC4wMDQ2OTksIDAuMDA0NzAxIiwgXAotICAgICAgICAgICIwLjAwNDU4MywgMC4wMDQ2NjEsIDAuMDA0Njc4LCAwLjAwNDY4OCwgMC4wMDQ2OTMsIDAuMDA0Njk2LCAwLjAwNDY5OCIsIFwKLSAgICAgICAgICAiMC4wMDQ1ODUsIDAuMDA0NjU3LCAwLjAwNDY3NiwgMC4wMDQ2ODYsIDAuMDA0NjkyLCAwLjAwNDY5NSwgMC4wMDQ2OTciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI2MjksIDAuMDAyNjg4LCAwLjAwMjY5NSwgMC4wMDI2OTksIDAuMDAyNzAxLCAwLjAwMjcsIDAuMDAyNzAyIiwgXAotICAgICAgICAgICIwLjAwMjYwOCwgMC4wMDI2NzIsIDAuMDAyNjgsIDAuMDAyNjg0LCAwLjAwMjY4NSwgMC4wMDI2ODcsIDAuMDAyNjg4IiwgXAotICAgICAgICAgICIwLjAwMjU4NywgMC4wMDI2NTgsIDAuMDAyNjY4LCAwLjAwMjY3NCwgMC4wMDI2NzYsIDAuMDAyNjc4LCAwLjAwMjY3OSIsIFwKLSAgICAgICAgICAiMC4wMDI1ODYsIDAuMDAyNjU2LCAwLjAwMjY2OCwgMC4wMDI2NzUsIDAuMDAyNjc4LCAwLjAwMjY4LCAwLjAwMjY4MyIsIFwKLSAgICAgICAgICAiMC4wMDI1ODQsIDAuMDAyNjU2LCAwLjAwMjY2OSwgMC4wMDI2NzYsIDAuMDAyNjgxLCAwLjAwMjY4NCwgMC4wMDI2ODYiLCBcCi0gICAgICAgICAgIjAuMDAyNTc3LCAwLjAwMjY0NiwgMC4wMDI2NjMsIDAuMDAyNjY5LCAwLjAwMjY3NCwgMC4wMDI2NzcsIDAuMDAyNjgxIiwgXAotICAgICAgICAgICIwLjAwMjU5NiwgMC4wMDI2NTQsIDAuMDAyNjY2LCAwLjAwMjY3NywgMC4wMDI2ODMsIDAuMDAyNjg1LCAwLjAwMjY4OCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDQyNiwgMC4wMDQ1MDUsIDAuMDA0NTIsIDAuMDA0NTI5LCAwLjAwNDUzNCwgMC4wMDQ1MzcsIDAuMDA0NTM5IiwgXAotICAgICAgICAgICIwLjAwNDQxMiwgMC4wMDQ0ODYsIDAuMDA0NTAzLCAwLjAwNDUxMywgMC4wMDQ1MTgsIDAuMDA0NTIyLCAwLjAwNDUyNCIsIFwKLSAgICAgICAgICAiMC4wMDQ0MDIsIDAuMDA0NDgsIDAuMDA0NDk2LCAwLjAwNDUwNiwgMC4wMDQ1MTEsIDAuMDA0NTE0LCAwLjAwNDUxNiIsIFwKLSAgICAgICAgICAiMC4wMDQzODcsIDAuMDA0NDcyLCAwLjAwNDQ5LCAwLjAwNDUsIDAuMDA0NTA2LCAwLjAwNDUwOSwgMC4wMDQ1MTEiLCBcCi0gICAgICAgICAgIjAuMDA0Mzg0LCAwLjAwNDQ2OCwgMC4wMDQ0ODcsIDAuMDA0NDk3LCAwLjAwNDUwMywgMC4wMDQ1MDYsIDAuMDA0NTA5IiwgXAotICAgICAgICAgICIwLjAwNDM4NiwgMC4wMDQ0NjUsIDAuMDA0NDgzLCAwLjAwNDQ5NCwgMC4wMDQ1LCAwLjAwNDUwNCwgMC4wMDQ1MDYiLCBcCi0gICAgICAgICAgIjAuMDA0Mzk1LCAwLjAwNDQ2MiwgMC4wMDQ0ODIsIDAuMDA0NDkzLCAwLjAwNDQ5OSwgMC4wMDQ1MDMsIDAuMDA0NTA2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyMzgzLCAwLjAwMjQ0LCAwLjAwMjQ0NCwgMC4wMDI0NTEsIDAuMDAyNDQ5LCAwLjAwMjQ1LCAwLjAwMjQ1MSIsIFwKLSAgICAgICAgICAiMC4wMDIzNjksIDAuMDAyNDI5LCAwLjAwMjQzNywgMC4wMDI0NCwgMC4wMDI0NDMsIDAuMDAyNDQ0LCAwLjAwMjQ0NCIsIFwKLSAgICAgICAgICAiMC4wMDIzNDgsIDAuMDAyNDE3LCAwLjAwMjQyNywgMC4wMDI0MzEsIDAuMDAyNDM0LCAwLjAwMjQzNiwgMC4wMDI0MzciLCBcCi0gICAgICAgICAgIjAuMDAyMzM5LCAwLjAwMjQxNSwgMC4wMDI0MjYsIDAuMDAyNDMyLCAwLjAwMjQzNSwgMC4wMDI0MzYsIDAuMDAyNDM5IiwgXAotICAgICAgICAgICIwLjAwMjM0MiwgMC4wMDI0MTIsIDAuMDAyNDI2LCAwLjAwMjQzNCwgMC4wMDI0MzYsIDAuMDAyNDM5LCAwLjAwMjQ0MSIsIFwKLSAgICAgICAgICAiMC4wMDIzMzMsIDAuMDAyNDAzLCAwLjAwMjQxOCwgMC4wMDI0MjYsIDAuMDAyNDMyLCAwLjAwMjQzNCwgMC4wMDI0MzYiLCBcCi0gICAgICAgICAgIjAuMDAyMzQ5LCAwLjAwMjQxLCAwLjAwMjQyMywgMC4wMDI0MzIsIDAuMDAyNDM5LCAwLjAwMjQ0MiwgMC4wMDI0NDQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQyMjIsIDAuMDA0MzAyLCAwLjAwNDMyLCAwLjAwNDMzLCAwLjAwNDMzNSwgMC4wMDQzMzksIDAuMDA0MzQxIiwgXAotICAgICAgICAgICIwLjAwNDIyMywgMC4wMDQyOSwgMC4wMDQzMDcsIDAuMDA0MzE3LCAwLjAwNDMyMiwgMC4wMDQzMjYsIDAuMDA0MzI4IiwgXAotICAgICAgICAgICIwLjAwNDE5NiwgMC4wMDQyNzcsIDAuMDA0Mjk2LCAwLjAwNDMwNywgMC4wMDQzMTIsIDAuMDA0MzE2LCAwLjAwNDMxOSIsIFwKLSAgICAgICAgICAiMC4wMDQxODYsIDAuMDA0MjcxLCAwLjAwNDI5MSwgMC4wMDQzMDIsIDAuMDA0MzA4LCAwLjAwNDMxMiwgMC4wMDQzMTQiLCBcCi0gICAgICAgICAgIjAuMDA0MTg3LCAwLjAwNDI2OCwgMC4wMDQyODgsIDAuMDA0Mjk5LCAwLjAwNDMwNiwgMC4wMDQzMSwgMC4wMDQzMTIiLCBcCi0gICAgICAgICAgIjAuMDA0MTk5LCAwLjAwNDI2OCwgMC4wMDQyODcsIDAuMDA0Mjk5LCAwLjAwNDMwNSwgMC4wMDQzMDksIDAuMDA0MzEyIiwgXAotICAgICAgICAgICIwLjAwNDIwNiwgMC4wMDQyNjMsIDAuMDA0MjgzLCAwLjAwNDI5NiwgMC4wMDQzMDMsIDAuMDA0MzA4LCAwLjAwNDMxMSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkQiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjE3NiwgMC4wMDIyMjYsIDAuMDAyMjM0LCAwLjAwMjIzNiwgMC4wMDIyMzcsIDAuMDAyMjM3LCAwLjAwMjIzOCIsIFwKLSAgICAgICAgICAiMC4wMDIxNTksIDAuMDAyMjE4LCAwLjAwMjIyNCwgMC4wMDIyMjgsIDAuMDAyMjMsIDAuMDAyMjMsIDAuMDAyMjMxIiwgXAotICAgICAgICAgICIwLjAwMjEzNywgMC4wMDIyMDUsIDAuMDAyMjE0LCAwLjAwMjIxOSwgMC4wMDIyMjEsIDAuMDAyMjIyLCAwLjAwMjIyNCIsIFwKLSAgICAgICAgICAiMC4wMDIxMzMsIDAuMDAyMiwgMC4wMDIyMSwgMC4wMDIyMTYsIDAuMDAyMjE5LCAwLjAwMjIyMSwgMC4wMDIyMjIiLCBcCi0gICAgICAgICAgIjAuMDAyMTIzLCAwLjAwMjE5NCwgMC4wMDIyMDcsIDAuMDAyMjE0LCAwLjAwMjIxOSwgMC4wMDIyMiwgMC4wMDIyMjIiLCBcCi0gICAgICAgICAgIjAuMDAyMTMyLCAwLjAwMjE5OCwgMC4wMDIyMTEsIDAuMDAyMjE5LCAwLjAwMjIyNCwgMC4wMDIyMjYsIDAuMDAyMjI4IiwgXAotICAgICAgICAgICIwLjAwMjE0OCwgMC4wMDIyMDcsIDAuMDAyMjIzLCAwLjAwMjIzMiwgMC4wMDIyMzgsIDAuMDAyMjQsIDAuMDAyMjQyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0MDIyLCAwLjAwNDEwOCwgMC4wMDQxMjYsIDAuMDA0MTM3LCAwLjAwNDE0MywgMC4wMDQxNDYsIDAuMDA0MTQ5IiwgXAotICAgICAgICAgICIwLjAwNDAwMSwgMC4wMDQwODgsIDAuMDA0MTA3LCAwLjAwNDExOCwgMC4wMDQxMjQsIDAuMDA0MTI4LCAwLjAwNDEzIiwgXAotICAgICAgICAgICIwLjAwMzk4NywgMC4wMDQwNzYsIDAuMDA0MDk2LCAwLjAwNDEwOCwgMC4wMDQxMTQsIDAuMDA0MTE4LCAwLjAwNDEyMSIsIFwKLSAgICAgICAgICAiMC4wMDM5ODcsIDAuMDA0MDczLCAwLjAwNDA5NCwgMC4wMDQxMDYsIDAuMDA0MTEzLCAwLjAwNDExNywgMC4wMDQxMiIsIFwKLSAgICAgICAgICAiMC4wMDM5OTIsIDAuMDA0MDc0LCAwLjAwNDA5NiwgMC4wMDQxMDksIDAuMDA0MTE2LCAwLjAwNDEyMSwgMC4wMDQxMjQiLCBcCi0gICAgICAgICAgIjAuMDA0MDE1LCAwLjAwNDA4LCAwLjAwNDEwMywgMC4wMDQxMTcsIDAuMDA0MTI1LCAwLjAwNDEzMSwgMC4wMDQxMzQiLCBcCi0gICAgICAgICAgIjAuMDA0MDc0LCAwLjAwNDEwNiwgMC4wMDQxMjQsIDAuMDA0MTM2LCAwLjAwNDE0MywgMC4wMDQxNDgsIDAuMDA0MTUyIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IFNERkZTUlhMICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChTREZGU1JYTCkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjQ0NzI7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgZmYgKE4zNSxRQklOVCkgewotICAgIG5leHRfc3RhdGUgOiAiKChTRSBTSSkgKyAoIVNFIEQpKSI7Ci0gICAgY2xvY2tlZF9vbiA6ICJDSyI7Ci0gICAgY2xlYXIgOiAiKCFSTikiOwotICAgIHByZXNldCA6ICIoIVNOKSI7Ci0gICAgY2xlYXJfcHJlc2V0X3ZhcjEgOiBIOwotICAgIGNsZWFyX3ByZXNldF92YXIyIDogTDsKLSAgfQotICBwaW4oQ0spICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYyNjYyNzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MjYzNjY7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjI2NjI3OwotICAgIGNsb2NrIDogdHJ1ZTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDI0NzksIDAuMDAyNDU0LCAwLjAwMjQ0MSwgMC4wMDI0NDIsIDAuMDAyNDU2LCAwLjAwMjQ3NCwgMC4wMDI0OTciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDcxMzYsIDAuMDA3MTEsIDAuMDA3MTAyLCAwLjAwNzExMywgMC4wMDcxMzQsIDAuMDA3MTcxLCAwLjAwNzE5OCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQmUk4mIVNFJiFTSSZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fUk5fRVFfMV9BTl9TRV9FUV8wX0FOX1NJX0VRXzBfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjIwNDU4MSwgMC4yMTQ3ODgsIDAuMjI3Njk2LCAwLjIzOTgwOCwgMC4yNTA3OCwgMC4yNjU5NDEsIDAuMjc3NzgzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4xMTEzNDIsIDAuMTIxMTM1LCAwLjEzMzcwMiwgMC4xNDUzNTQsIDAuMTU1NzU3LCAwLjE2OTgxNSwgMC4xODA1NTciKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEQpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYwNjQxOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYwNTExMzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2MDY0MTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDMyODksIDAuMDAzMjczLCAwLjAwMzI2NCwgMC4wMDMyNTcsIDAuMDAzMjU0LCAwLjAwMzI1NCwgMC4wMDMyNTkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDQ2NTMsIDAuMDA0NjQzLCAwLjAwNDYzNywgMC4wMDQ2MzMsIDAuMDA0NjMyLCAwLjAwNDYzMywgMC4wMDQ2MzQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiUk4mIVNFJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIlJOX0VRXzFfQU5fU0VfRVFfMF9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjA1NjI1LCAtMC4wNDUsIC0wLjAzODc1LCAtMC4wMzI1LCAtMC4wMjYyNSwgLTAuMDE2MjUsIC0wLjAxMzc1IiwgXAotICAgICAgICAgICItMC4wNjc1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMjc1LCAtMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDczNzUsIC0wLjA2ODc1LCAtMC4wNjI1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjA0LCAtMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDg2MjUsIC0wLjA3NSwgLTAuMDY4NzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNTI1LCAtMC4wNDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDk4NzUsIC0wLjA4NzUsIC0wLjA4MTI1LCAtMC4wNzUsIC0wLjA2ODc1LCAtMC4wNTg3NSwgLTAuMDU2MjUiLCBcCi0gICAgICAgICAgIi0wLjExNSwgLTAuMTAzNzUsIC0wLjA5NzUsIC0wLjA5MTI1LCAtMC4wODUsIC0wLjA3NSwgLTAuMDcyNSIsIFwKLSAgICAgICAgICAiLTAuMTIzNzUsIC0wLjExODc1LCAtMC4xMDYyNSwgLTAuMSwgLTAuMSwgLTAuMDksIC0wLjA4MTI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDE4NzUsIC0wLjAxMzc1LCAtMC4wMDEyNSwgMC4wMTEyNSwgMC4wMTc1LCAwLjAzMzc1LCAwLjA0MjUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAsIDAuMDEyNSwgMC4wMjI1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDMxMjUsIC0wLjAxODc1LCAtMC4wMDYyNSwgMCwgMC4wMTYyNSwgMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMDYyNSwgMC4wMDM3NSwgMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMDI1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wNzEyNSwgLTAuMDYsIC0wLjA0NzUsIC0wLjA0MTI1LCAtMC4wMjg3NSwgLTAuMDE4NzUsIC0wLjAxIiwgXAotICAgICAgICAgICItMC4wOCwgLTAuMDY4NzUsIC0wLjA2MjUsIC0wLjA1LCAtMC4wMzc1LCAtMC4wMjc1LCAtMC4wMTg3NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiUk4mIVNFJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIlJOX0VRXzFfQU5fU0VfRVFfMF9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExMjUsIDAuMTAxMjUsIDAuMDg4NzUsIDAuMDc2MjUsIDAuMDYzNzUsIDAuMDUzNzUsIDAuMDQ1IiwgXAotICAgICAgICAgICIwLjEyMzc1LCAwLjExMjUsIDAuMDkzNzUsIDAuMDg3NSwgMC4wNzUsIDAuMDY1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICIwLjEzLCAwLjExODc1LCAwLjEwNjI1LCAwLjA5Mzc1LCAwLjA4NzUsIDAuMDcxMjUsIDAuMDYyNSIsIFwKLSAgICAgICAgICAiMC4xNDI1LCAwLjEzMTI1LCAwLjExODc1LCAwLjEwNjI1LCAwLjA5Mzc1LCAwLjA4Mzc1LCAwLjA3NSIsIFwKLSAgICAgICAgICAiMC4xNTUsIDAuMTQzNzUsIDAuMTMxMjUsIDAuMTE4NzUsIDAuMTA2MjUsIDAuMDk2MjUsIDAuMDg3NSIsIFwKLSAgICAgICAgICAiMC4xNzEyNSwgMC4xNiwgMC4xNDEyNSwgMC4xMzUsIDAuMTIyNSwgMC4xMTI1LCAwLjEwMzc1IiwgXAotICAgICAgICAgICIwLjE4LCAwLjE2ODc1LCAwLjE1NjI1LCAwLjE0Mzc1LCAwLjEzNzUsIDAuMTIxMjUsIDAuMTEyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4NzUsIDAuMDgyNSwgMC4wNjM3NSwgMC4wNTEyNSwgMC4wNDUsIDAuMDI4NzUsIDAuMDEzNzUiLCBcCi0gICAgICAgICAgIjAuMDk4NzUsIDAuMDg3NSwgMC4wNzUsIDAuMDYyNSwgMC4wNSwgMC4wMzM3NSwgMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMTExMjUsIDAuMSwgMC4wODEyNSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA0NjI1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICIwLjExNzUsIDAuMTA2MjUsIDAuMDkzNzUsIDAuMDgxMjUsIDAuMDY4NzUsIDAuMDU4NzUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMTMsIDAuMTE4NzUsIDAuMTA2MjUsIDAuMDkzNzUsIDAuMDgxMjUsIDAuMDY1LCAwLjA1IiwgXAotICAgICAgICAgICIwLjE0LCAwLjEyODc1LCAwLjExNjI1LCAwLjEwMzc1LCAwLjA5MTI1LCAwLjA4MTI1LCAwLjA2NjI1IiwgXAotICAgICAgICAgICIwLjE1NSwgMC4xNDM3NSwgMC4xMzEyNSwgMC4xMTg3NSwgMC4xMDYyNSwgMC4wOSwgMC4wODEyNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjE0NjYyMTsKLSAgICBmdW5jdGlvbiA6ICJOMzUiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5vbl91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcmlzaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE4NDg1MiwgMC4xOTkwMDksIDAuMzI2MDQ2LCAwLjUzNzgzNCwgMC43NDk1MzIsIDEuMjQzNjcsIDEuNTI2NDgiLCBcCi0gICAgICAgICAgIjAuMTk0OTgsIDAuMjA5MTc4LCAwLjMzNjE5OSwgMC41NDc5ODYsIDAuNzU5NjMsIDEuMjU0MTcsIDEuNTM2NTkiLCBcCi0gICAgICAgICAgIjAuMjA3NjUzLCAwLjIyMTgyMywgMC4zNDg4NjMsIDAuNTYwNjUxLCAwLjc3MjUzOSwgMS4yNjY4NCwgMS41NTA1NiIsIFwKLSAgICAgICAgICAiMC4yMTk1ODksIDAuMjMzNjk4LCAwLjM2MDc4NCwgMC41NzI1NjksIDAuNzg0MywgMS4yNzg1MiwgMS41NjEyMyIsIFwKLSAgICAgICAgICAiMC4yMzA1NjgsIDAuMjQ0NzY5LCAwLjM3MTc3NSwgMC41ODM1NjQsIDAuNzk1NDQ5LCAxLjI4OTc2LCAxLjU3MjIiLCBcCi0gICAgICAgICAgIjAuMjQ1ODg5LCAwLjI2MDAyOCwgMC4zODcwODYsIDAuNTk4ODcyLCAwLjgxMDcxNywgMS4zMDUwOCwgMS41ODc1IiwgXAotICAgICAgICAgICIwLjI1NzM3OSwgMC4yNzE1MjgsIDAuMzk4NTgyLCAwLjYxMDM2OSwgMC44MjI0MDQsIDEuMzE3NDUsIDEuNTk5MDEiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTU0NTg5LCAwLjE4MzIzLCAwLjQ0MjQ2OSwgMC44NzY3OCwgMS4zMTE4NywgMi4zMjUzMiwgMi45MDc5IiwgXAotICAgICAgICAgICIwLjE1NDUwNCwgMC4xODMyMzcsIDAuNDQyOTcyLCAwLjg3OTQzNSwgMS4zMTEzNywgMi4zMjgwMSwgMi45MDMxNiIsIFwKLSAgICAgICAgICAiMC4xNTQ1ODYsIDAuMTgzMjMxLCAwLjQ0MzA3NywgMC44Nzg3MzQsIDEuMzEzMzIsIDIuMzI4MjIsIDIuOTE0MyIsIFwKLSAgICAgICAgICAiMC4xNTQ1ODIsIDAuMTgzMTg3LCAwLjQ0MjQ3MiwgMC44NzcwMDQsIDEuMzExMzcsIDIuMzI1NjgsIDIuOTA4MzciLCBcCi0gICAgICAgICAgIjAuMTU0NTg1LCAwLjE4MzIzNiwgMC40NDI5NDYsIDAuODc4NzQsIDEuMzEzMjMsIDIuMzI4MDksIDIuOTA4MjUiLCBcCi0gICAgICAgICAgIjAuMTU0NTcyLCAwLjE4MzIzMSwgMC40NDMwNDEsIDAuODc5NDE4LCAxLjMxMzUyLCAyLjMyOTQ5LCAyLjkwODA4IiwgXAotICAgICAgICAgICIwLjE1NDU3NiwgMC4xODMwMDIsIDAuNDQyOTcyLCAwLjg3OTQxOSwgMS4zMTU0LCAyLjMzMjQxLCAyLjkwMzQ4Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE5NDE4MSwgMC4yMDc5OTksIDAuMzMyNjc4LCAwLjUzOTk3LCAwLjc0NzU4MSwgMS4yMzE1NSwgMS41MDkxNCIsIFwKLSAgICAgICAgICAiMC4yMDQzODYsIDAuMjE4MjI2LCAwLjM0Mjg5NiwgMC41NTAxNzIsIDAuNzU4MDE2LCAxLjI0MjM1LCAxLjUxOTM0IiwgXAotICAgICAgICAgICIwLjIxNzI5OCwgMC4yMzExMSwgMC4zNTU3OSwgMC41NjMwODIsIDAuNzcwNjcxLCAxLjI1NDYsIDEuNTMyMjUiLCBcCi0gICAgICAgICAgIjAuMjI5NDYzLCAwLjI0MzIxNSwgMC4zNjc5MSwgMC41NzU3MTksIDAuNzgzMjg3LCAxLjI2NzQ3LCAxLjU0NDQxIiwgXAotICAgICAgICAgICIwLjI0MDM5MywgMC4yNTQyMSwgMC4zNzg4OTMsIDAuNTg2MTcyLCAwLjc5Mzc1MiwgMS4yNzc4MiwgMS41NTUzNSIsIFwKLSAgICAgICAgICAiMC4yNTU1MywgMC4yNjkzNzcsIDAuMzk0MDU5LCAwLjYwMTMzOCwgMC44MDg5MjgsIDEuMjkzMDEsIDEuNTcwNTEiLCBcCi0gICAgICAgICAgIjAuMjY3MzI5LCAwLjI4MTE5OSwgMC40MDU3NDEsIDAuNjEzNzU4LCAwLjgyMDYyNywgMS4zMDU1NiwgMS41ODIzOCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNDg0NDEsIDAuMTc1ODA4LCAwLjQyNDEzLCAwLjg0MDczNiwgMS4yNTczNiwgMi4yMjc0MiwgMi43ODgzIiwgXAotICAgICAgICAgICIwLjE0ODY3OCwgMC4xNzU4NCwgMC40MjQxNCwgMC44NDA2ODEsIDEuMjU4MTgsIDIuMjMxNTEsIDIuNzg4MjIiLCBcCi0gICAgICAgICAgIjAuMTQ4NDQ5LCAwLjE3NTgwOCwgMC40MjQxMjgsIDAuODQwNywgMS4yNTczLCAyLjIyNzU0LCAyLjc4ODMiLCBcCi0gICAgICAgICAgIjAuMTQ4Njg1LCAwLjE3NTczOSwgMC40MjQxMzksIDAuODQxNDAzLCAxLjI1ODc2LCAyLjIzMTcyLCAyLjc4ODM5IiwgXAotICAgICAgICAgICIwLjE0ODQyMSwgMC4xNzU4MDUsIDAuNDI0MTI4LCAwLjg0MDYxOCwgMS4yNTcxNywgMi4yMjc5MiwgMi43ODgyNyIsIFwKLSAgICAgICAgICAiMC4xNDg1OTcsIDAuMTc1ODA0LCAwLjQyNDEzNCwgMC44NDA2NDgsIDEuMjU3MjMsIDIuMjI4MTUsIDIuNzg4MjgiLCBcCi0gICAgICAgICAgIjAuMTQ4NjU1LCAwLjE3NTkxMywgMC40MjQ0NjEsIDAuODM5MDQsIDEuMjU2ODIsIDIuMjMyMTgsIDIuNzg4NTEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUk4iOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGNsZWFyOwotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMjYzNTksIDAuMjQwMTUsIDAuMzY0NTQ2LCAwLjU3MjMsIDAuNzc5MzE2LCAxLjI2NDI3LCAxLjU0MDI5IiwgXAotICAgICAgICAgICIwLjIzNjIxMywgMC4yNDk5OCwgMC4zNzQ0MywgMC41ODIxMzIsIDAuNzg5MjU1LCAxLjI3MzM3LCAxLjU1MDk1IiwgXAotICAgICAgICAgICIwLjI0ODAxMSwgMC4yNjE5MzQsIDAuMzg2MTcxLCAwLjU5NDEwMiwgMC44MDE1NjksIDEuMjg1OTcsIDEuNTYxMzUiLCBcCi0gICAgICAgICAgIjAuMjU4MDk1LCAwLjI3MjAxOCwgMC4zOTYyNSwgMC42MDQxODcsIDAuODExNjU3LCAxLjI5NjA1LCAxLjU3MjUiLCBcCi0gICAgICAgICAgIjAuMjY2OTEsIDAuMjgwODMyLCAwLjQwNTQ5MywgMC42MTMwMDQsIDAuODIwNDg2LCAxLjMwNDg2LCAxLjU4MDcxIiwgXAotICAgICAgICAgICIwLjI3OTMxNiwgMC4yOTMwOTEsIDAuNDE3NTMxLCAwLjYyNTI2MywgMC44MzIzNzcsIDEuMzE2NzYsIDEuNTk0MDQiLCBcCi0gICAgICAgICAgIjAuMjg3OTQ5LCAwLjMwMTg3NCwgMC40MjYyMiwgMC42MzQwNiwgMC44NDE1MywgMS4zMjU5MSwgMS42MDE5NiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNDg0MiwgMC4xNzU2ODksIDAuNDI0NTUsIDAuODQxMTk3LCAxLjI1ODcxLCAyLjIzMjQ1LCAyLjc4NzMzIiwgXAotICAgICAgICAgICIwLjE0ODU4NSwgMC4xNzU3NTEsIDAuNDI0NTU1LCAwLjg0MTU1NywgMS4yNTg4NiwgMi4yMzI3MywgMi43ODkwNSIsIFwKLSAgICAgICAgICAiMC4xNDgxOTYsIDAuMTc1NjU3LCAwLjQyNDExMiwgMC44NDE2NTcsIDEuMjU4NzMsIDIuMjMyNDMsIDIuNzg1NTUiLCBcCi0gICAgICAgICAgIjAuMTQ4MTk4LCAwLjE3NTY1NywgMC40MjQxMTEsIDAuODQxNjU1LCAxLjI1ODc2LCAyLjIzMjQzLCAyLjc4NzM3IiwgXAotICAgICAgICAgICIwLjE0ODY1NCwgMC4xNzU3NDEsIDAuNDI0MzQxLCAwLjg0MTY0OSwgMS4yNTg4OSwgMi4yMzI0MywgMi43ODc4MSIsIFwKLSAgICAgICAgICAiMC4xNDg2NDksIDAuMTc2MDAzLCAwLjQyNDU3MiwgMC44NDEzOTUsIDEuMjU4NzUsIDIuMjMxNTMsIDIuNzg5MDIiLCBcCi0gICAgICAgICAgIjAuMTQ4MjIsIDAuMTc1NzQxLCAwLjQyNDczNywgMC44NDEzNjEsIDEuMjU4NzksIDIuMjMyNTMsIDIuNzg3MzgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiU04iOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHByZXNldDsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTcyNzExLCAwLjE4NjgwNCwgMC4zMTM5NTUsIDAuNTI1NzYsIDAuNzM3NTM3LCAxLjIzMTgzLCAxLjUxNDQxIiwgXAotICAgICAgICAgICIwLjE4MjA2NCwgMC4xOTYxNzEsIDAuMzIzMjM5LCAwLjUzNTEyNSwgMC43NDY4NjgsIDEuMjQxMTksIDEuNTIzNzgiLCBcCi0gICAgICAgICAgIjAuMTkyMjg2LCAwLjIwNjM1NywgMC4zMzM1MzEsIDAuNTQ1Mzc3LCAwLjc1NzM1LCAxLjI1MTQ5LCAxLjUzNDA4IiwgXAotICAgICAgICAgICIwLjIwMzkzMSwgMC4yMTgwMiwgMC4zNDUwODksIDAuNTU2OTY3LCAwLjc2ODc3OSwgMS4yNjMwNiwgMS41NDU0OCIsIFwKLSAgICAgICAgICAiMC4yMTUzNSwgMC4yMjk0MzgsIDAuMzU2NTE0LCAwLjU2ODM5NSwgMC43ODAzNjcsIDEuMjc0NDcsIDEuNTU2NyIsIFwKLSAgICAgICAgICAiMC4yMzE5NjMsIDAuMjQ2MTcsIDAuMzczMTYsIDAuNTg1MDk4LCAwLjc5NzA1MSwgMS4yOTEyLCAxLjU3NDAxIiwgXAotICAgICAgICAgICIwLjI0NTQ2NCwgMC4yNTk1NDUsIDAuMzg2NjQxLCAwLjU5ODUxMiwgMC44MTAzMjMsIDEuMzA0NTksIDEuNTg3NjQiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTU0NDIxLCAwLjE4Mjc1NCwgMC40NDM3MTUsIDAuODc5NzQ3LCAxLjMxNTU1LCAyLjMzMzEzLCAyLjkxMDIzIiwgXAotICAgICAgICAgICIwLjE1NDQxNiwgMC4xODI4OTMsIDAuNDQzNjUxLCAwLjg3OTc0MiwgMS4zMTU1NSwgMi4zMzI0NywgMi45MTAxMSIsIFwKLSAgICAgICAgICAiMC4xNTQxMTMsIDAuMTgyOTMzLCAwLjQ0MzY0OCwgMC44Nzk3NDIsIDEuMzE1NzYsIDIuMzMxMDIsIDIuOTExMDIiLCBcCi0gICAgICAgICAgIjAuMTU0MzE5LCAwLjE4Mjg4OSwgMC40NDMwNSwgMC44Nzk3NCwgMS4zMTU3NSwgMi4zMzI5NCwgMi45MTQ3IiwgXAotICAgICAgICAgICIwLjE1NDMyMiwgMC4xODMwMjYsIDAuNDQzNzM3LCAwLjg3OTc3NiwgMS4zMTU3NSwgMi4zMzMwNiwgMi45MTAxMSIsIFwKLSAgICAgICAgICAiMC4xNTQyMzIsIDAuMTgyNzQ0LCAwLjQ0MzYzMywgMC44Nzk3MjgsIDEuMzE1NzQsIDIuMzMyNiwgMi45MTE2IiwgXAotICAgICAgICAgICIwLjE1NDI1OSwgMC4xODI5NywgMC40NDM2NjQsIDAuODc5NjYsIDEuMzE1NzUsIDIuMzMyNjQsIDIuOTEzNDQiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjA5Mjk4LCAwLjIyMzIzMywgMC4zNDc1OTYsIDAuNTU1NjA4LCAwLjc2MzEwNiwgMS4yNDc1NiwgMS41MjM4IiwgXAotICAgICAgICAgICIwLjIxODcyMiwgMC4yMzI2NjEsIDAuMzU3MDY0LCAwLjU2NDc4MywgMC43NzI1MDMsIDEuMjU2MTcsIDEuNTMzODMiLCBcCi0gICAgICAgICAgIjAuMjI5NjA5LCAwLjI0MzU4OSwgMC4zNjgyODQsIDAuNTc1OTEsIDAuNzgzNDUzLCAxLjI2Nzg1LCAxLjU0NDU4IiwgXAotICAgICAgICAgICIwLjI0MDI2MSwgMC4yNTQxOTEsIDAuMzc4NTQ5LCAwLjU4NjU2NiwgMC43OTQxMTcsIDEuMjc4NTEsIDEuNTU1MDMiLCBcCi0gICAgICAgICAgIjAuMjUwOTA5LCAwLjI2NDg1LCAwLjM4OTE1NSwgMC41OTcyMzUsIDAuODA0NzQ3LCAxLjI4OTE5LCAxLjU2NTY3IiwgXAotICAgICAgICAgICIwLjI2NzQxMywgMC4yODEzNTksIDAuNDA1NzY5LCAwLjYxMzQ1OSwgMC44MjEyMSwgMS4zMDQ4MSwgMS41ODI1NSIsIFwKLSAgICAgICAgICAiMC4yODEyNTYsIDAuMjk1MTA3LCAwLjQxOTU4MSwgMC42Mjc1ODQsIDAuODM0Nzc5LCAxLjMxODUzLCAxLjU5NjI3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE0ODYzOCwgMC4xNzYwMTcsIDAuNDI0NDgxLCAwLjg0MTY4MywgMS4yNTg4OSwgMi4yMzI0NiwgMi43ODg3IiwgXAotICAgICAgICAgICIwLjE0ODYwOCwgMC4xNzYwMzUsIDAuNDI0NzU2LCAwLjg0MTE3NCwgMS4yNTg4LCAyLjIzMjQ1LCAyLjc4NjkiLCBcCi0gICAgICAgICAgIjAuMTQ4Mzc1LCAwLjE3NTk0OSwgMC40MjQ4ODMsIDAuODQxNjU1LCAxLjI1ODksIDIuMjMyNjIsIDIuNzg4OTkiLCBcCi0gICAgICAgICAgIjAuMTQ4MzM2LCAwLjE3NTUxMywgMC40MjQwNzUsIDAuODQxNjU2LCAxLjI1ODkyLCAyLjIzMjYxLCAyLjc4ODMyIiwgXAotICAgICAgICAgICIwLjE0ODIwOSwgMC4xNzU3MjIsIDAuNDI0NDIzLCAwLjg0MTE1MywgMS4yNTg4NiwgMi4yMzI1NywgMi43ODc1MSIsIFwKLSAgICAgICAgICAiMC4xNDg0MTksIDAuMTc2MDI5LCAwLjQyNDcxNiwgMC44NDExMjksIDEuMjU4ODcsIDIuMjI4OTQsIDIuNzg3MDciLCBcCi0gICAgICAgICAgIjAuMTQ4NjI4LCAwLjE3NTcyMywgMC40MjQ1NTYsIDAuODQwMjU4LCAxLjI1ODksIDIuMjI2NTgsIDIuNzg5MDMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzNzY2LCAwLjAwMzc2NywgMC4wMDM3NzEsIDAuMDAzNzcyLCAwLjAwMzc3MywgMC4wMDM3NzMsIDAuMDAzNzc0IiwgXAotICAgICAgICAgICIwLjAwMzc1MSwgMC4wMDM3NTIsIDAuMDAzNzU2LCAwLjAwMzc1NywgMC4wMDM3NTgsIDAuMDAzNzU4LCAwLjAwMzc1OCIsIFwKLSAgICAgICAgICAiMC4wMDM3NDMsIDAuMDAzNzQ1LCAwLjAwMzc0OSwgMC4wMDM3NSwgMC4wMDM3NTEsIDAuMDAzNzUxLCAwLjAwMzc1MSIsIFwKLSAgICAgICAgICAiMC4wMDM3NDIsIDAuMDAzNzQzLCAwLjAwMzc0NywgMC4wMDM3NDksIDAuMDAzNzQ5LCAwLjAwMzc1LCAwLjAwMzc1IiwgXAotICAgICAgICAgICIwLjAwMzc1MywgMC4wMDM3NTUsIDAuMDAzNzU5LCAwLjAwMzc2LCAwLjAwMzc2MSwgMC4wMDM3NjEsIDAuMDAzNzYxIiwgXAotICAgICAgICAgICIwLjAwMzc2LCAwLjAwMzc2MSwgMC4wMDM3NjUsIDAuMDAzNzY2LCAwLjAwMzc2NywgMC4wMDM3NjcsIDAuMDAzNzY3IiwgXAotICAgICAgICAgICIwLjAwMzc3MSwgMC4wMDM3NzIsIDAuMDAzNzc3LCAwLjAwMzc3OCwgMC4wMDM3NzksIDAuMDAzNzc5LCAwLjAwMzc3OSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzU5LCAwLjAwMzU5MiwgMC4wMDM1OTYsIDAuMDAzNTk3LCAwLjAwMzU5OCwgMC4wMDM1OTgsIDAuMDAzNTk4IiwgXAotICAgICAgICAgICIwLjAwMzU3NywgMC4wMDM1NzgsIDAuMDAzNTgyLCAwLjAwMzU4NCwgMC4wMDM1ODYsIDAuMDAzNTg2LCAwLjAwMzU4NiIsIFwKLSAgICAgICAgICAiMC4wMDM1NzUsIDAuMDAzNTc2LCAwLjAwMzU4LCAwLjAwMzU4MiwgMC4wMDM1ODMsIDAuMDAzNTgzLCAwLjAwMzU4MyIsIFwKLSAgICAgICAgICAiMC4wMDM1OCwgMC4wMDM1ODEsIDAuMDAzNTg1LCAwLjAwMzU4NywgMC4wMDM1ODcsIDAuMDAzNTg3LCAwLjAwMzU4OCIsIFwKLSAgICAgICAgICAiMC4wMDM1OTUsIDAuMDAzNTk2LCAwLjAwMzYsIDAuMDAzNjAyLCAwLjAwMzYwNCwgMC4wMDM2MDMsIDAuMDAzNjA0IiwgXAotICAgICAgICAgICIwLjAwMzYwOCwgMC4wMDM2MDksIDAuMDAzNjEzLCAwLjAwMzYxNSwgMC4wMDM2MTYsIDAuMDAzNjE2LCAwLjAwMzYxNyIsIFwKLSAgICAgICAgICAiMC4wMDM2MjcsIDAuMDAzNjI4LCAwLjAwMzYzMiwgMC4wMDM2MzQsIDAuMDAzNjM0LCAwLjAwMzYzNiwgMC4wMDM2MzYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0ODk3LCAwLjAwNDg5NywgMC4wMDQ4OTUsIDAuMDA0ODkxLCAwLjAwNDg5LCAwLjAwNDg4OCwgMC4wMDQ4ODYiLCBcCi0gICAgICAgICAgIjAuMDA0ODg1LCAwLjAwNDg4NiwgMC4wMDQ4ODMsIDAuMDA0ODc5LCAwLjAwNDg3NywgMC4wMDQ4NzYsIDAuMDA0ODc0IiwgXAotICAgICAgICAgICIwLjAwNDg4MywgMC4wMDQ4ODMsIDAuMDA0ODgxLCAwLjAwNDg3NywgMC4wMDQ4NzUsIDAuMDA0ODc0LCAwLjAwNDg3MiIsIFwKLSAgICAgICAgICAiMC4wMDQ4ODQsIDAuMDA0ODg0LCAwLjAwNDg4MiwgMC4wMDQ4NzgsIDAuMDA0ODc2LCAwLjAwNDg3NSwgMC4wMDQ4NzUiLCBcCi0gICAgICAgICAgIjAuMDA0ODg2LCAwLjAwNDg4NywgMC4wMDQ4ODQsIDAuMDA0ODgsIDAuMDA0ODc4LCAwLjAwNDg3NywgMC4wMDQ4NzciLCBcCi0gICAgICAgICAgIjAuMDA0ODkyLCAwLjAwNDg5MywgMC4wMDQ4OTEsIDAuMDA0ODg3LCAwLjAwNDg4NSwgMC4wMDQ4ODMsIDAuMDA0ODgyIiwgXAotICAgICAgICAgICIwLjAwNDg5OCwgMC4wMDQ4OTksIDAuMDA0ODk3LCAwLjAwNDg5MywgMC4wMDQ4OTEsIDAuMDA0ODksIDAuMDA0ODg3Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3Bvd2VyKHNjYWxhcikgewotICAgICAgICB2YWx1ZXMoIjAiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0Nzc0LCAwLjAwNDc3NSwgMC4wMDQ3NzgsIDAuMDA0Nzc5LCAwLjAwNDc4LCAwLjAwNDc4LCAwLjAwNDc4IiwgXAotICAgICAgICAgICIwLjAwNDc2LCAwLjAwNDc2MSwgMC4wMDQ3NjQsIDAuMDA0NzY1LCAwLjAwNDc2NywgMC4wMDQ3NjYsIDAuMDA0NzY4IiwgXAotICAgICAgICAgICIwLjAwNDc1MywgMC4wMDQ3NTQsIDAuMDA0NzU3LCAwLjAwNDc1OSwgMC4wMDQ3NiwgMC4wMDQ3NiwgMC4wMDQ3NjEiLCBcCi0gICAgICAgICAgIjAuMDA0NzUsIDAuMDA0NzUxLCAwLjAwNDc1NSwgMC4wMDQ3NTYsIDAuMDA0NzU3LCAwLjAwNDc1NywgMC4wMDQ3NTgiLCBcCi0gICAgICAgICAgIjAuMDA0NzUsIDAuMDA0NzUyLCAwLjAwNDc1NSwgMC4wMDQ3NTcsIDAuMDA0NzU3LCAwLjAwNDc1NywgMC4wMDQ3NTciLCBcCi0gICAgICAgICAgIjAuMDA0NzUyLCAwLjAwNDc1NCwgMC4wMDQ3NTcsIDAuMDA0NzU5LCAwLjAwNDc1OSwgMC4wMDQ3NTksIDAuMDA0NzYiLCBcCi0gICAgICAgICAgIjAuMDA0NzYxLCAwLjAwNDc2MiwgMC4wMDQ3NjYsIDAuMDA0NzY4LCAwLjAwNDc2OCwgMC4wMDQ3NjgsIDAuMDA0NzY5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzNTQyLCAwLjAwMzU0MywgMC4wMDM1NDcsIDAuMDAzNTQ4LCAwLjAwMzU0OSwgMC4wMDM1NTEsIDAuMDAzNTQ5IiwgXAotICAgICAgICAgICIwLjAwMzUyNCwgMC4wMDM1MjYsIDAuMDAzNTMsIDAuMDAzNTMxLCAwLjAwMzUzNCwgMC4wMDM1MzIsIDAuMDAzNTMyIiwgXAotICAgICAgICAgICIwLjAwMzUxNSwgMC4wMDM1MTYsIDAuMDAzNTIsIDAuMDAzNTIyLCAwLjAwMzUyNCwgMC4wMDM1MjMsIDAuMDAzNTIzIiwgXAotICAgICAgICAgICIwLjAwMzUwOSwgMC4wMDM1MSwgMC4wMDM1MTQsIDAuMDAzNTE2LCAwLjAwMzUxOCwgMC4wMDM1MTcsIDAuMDAzNTE3IiwgXAotICAgICAgICAgICIwLjAwMzUwNSwgMC4wMDM1MDYsIDAuMDAzNTEsIDAuMDAzNTExLCAwLjAwMzUxMiwgMC4wMDM1MTQsIDAuMDAzNTE0IiwgXAotICAgICAgICAgICIwLjAwMzQ5OCwgMC4wMDM0OTksIDAuMDAzNTAzLCAwLjAwMzUwNSwgMC4wMDM1MDUsIDAuMDAzNTA2LCAwLjAwMzUwNSIsIFwKLSAgICAgICAgICAiMC4wMDM0OTgsIDAuMDAzNDk5LCAwLjAwMzUwMywgMC4wMDM1MDUsIDAuMDAzNTA3LCAwLjAwMzUwNiwgMC4wMDM1MDgiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFFOKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMTQ3MDcyOwotICAgIGZ1bmN0aW9uIDogIlFCSU5UIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBub25fdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJpc2luZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMDQ1ODQsIDAuMjE4NzAyLCAwLjM0NTc2OCwgMC41NTc2MTksIDAuNzY5MzYzLCAxLjI2MzYsIDEuNTQ2MTUiLCBcCi0gICAgICAgICAgIjAuMjE0Nzg4LCAwLjIyODkwNiwgMC4zNTU5NzQsIDAuNTY3ODMxLCAwLjc3OTU2NywgMS4yNzM4LCAxLjU1NjM0IiwgXAotICAgICAgICAgICIwLjIyNzY5NiwgMC4yNDE4MTMsIDAuMzY4ODgxLCAwLjU4MDczMSwgMC43OTI0NzgsIDEuMjg2NzIsIDEuNTY5MjYiLCBcCi0gICAgICAgICAgIjAuMjM5ODA4LCAwLjI1MzkxOCwgMC4zODA5ODQsIDAuNTkyODc1LCAwLjgwNDY5MywgMS4yOTg4NiwgMS41ODEzOCIsIFwKLSAgICAgICAgICAiMC4yNTA3OCwgMC4yNjQ4OTcsIDAuMzkxOTY2LCAwLjYwMzgyMiwgMC44MTU1NjYsIDEuMzA5NzUsIDEuNTkyMzQiLCBcCi0gICAgICAgICAgIjAuMjY1OTQxLCAwLjI4MDA2MSwgMC40MDcxMjgsIDAuNjE4OTg2LCAwLjgzMDcyOCwgMS4zMjQ5MSwgMS42MDc1IiwgXAotICAgICAgICAgICIwLjI3Nzc4MywgMC4yOTE5MDIsIDAuNDE4OTMxLCAwLjYzMDkwOCwgMC44NDI2MiwgMS4zMzY5MywgMS42MTkzOCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNTIyMTgsIDAuMTgxMTc1LCAwLjQ0MjU5OSwgMC44NzcxMTEsIDEuMzEyMDEsIDIuMzI3MDEsIDIuOTExMjMiLCBcCi0gICAgICAgICAgIjAuMTUyMzQ5LCAwLjE4MTE4MywgMC40NDI2MDYsIDAuODc2NzE0LCAxLjMxMzcyLCAyLjMzMDA4LCAyLjkxMTE5IiwgXAotICAgICAgICAgICIwLjE1MjIxOCwgMC4xODExNzUsIDAuNDQyNTk5LCAwLjg3NzA5OSwgMS4zMTIwMSwgMi4zMjUyLCAyLjkxMTIzIiwgXAotICAgICAgICAgICIwLjE1MjM3NCwgMC4xODExNjIsIDAuNDQyNTc0LCAwLjg3ODQwMiwgMS4zMTQsIDIuMzMwMDUsIDIuOTExMjkiLCBcCi0gICAgICAgICAgIjAuMTUyMjEzLCAwLjE4MTE3NCwgMC40NDI2MDMsIDAuODc2NjQ5LCAxLjMxMjEsIDIuMzI3MjEsIDIuOTExMjEiLCBcCi0gICAgICAgICAgIjAuMTUyMzIyLCAwLjE4MTE3MiwgMC40NDI1ODksIDAuODc2NjgsIDEuMzEyMDcsIDIuMzI3MTEsIDIuOTExMjEiLCBcCi0gICAgICAgICAgIjAuMTUyMzQzLCAwLjE4MTE3NiwgMC40NDI0MzYsIDAuODc2NjY2LCAxLjMxMjA2LCAyLjMzMDQ4LCAyLjkxMTI4Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE5MzM3OSwgMC4yMDcyMDUsIDAuMzMxNjQyLCAwLjUzOTAwNywgMC43NDYyNiwgMS4yMzAwNiwgMS41MDcwMiIsIFwKLSAgICAgICAgICAiMC4yMDM1NzIsIDAuMjE3NDA0LCAwLjM0MTc5LCAwLjU0OTE1OSwgMC43NTYzOTcsIDEuMjQwMiwgMS41MTcwNSIsIFwKLSAgICAgICAgICAiMC4yMTYxNTMsIDAuMjI5OTgxLCAwLjM1NDQyMiwgMC41NjE3OTUsIDAuNzY5MjEsIDEuMjUzMTQsIDEuNTI5NzgiLCBcCi0gICAgICAgICAgIjAuMjI4MTE4LCAwLjI0MTkzOSwgMC4zNjYzODIsIDAuNTczNzU1LCAwLjc4MTAyNCwgMS4yNjQ4OCwgMS41NDE3NyIsIFwKLSAgICAgICAgICAiMC4yMzkwOTEsIDAuMjUyOTIyLCAwLjM3NzM1OSwgMC41ODQ3MzEsIDAuNzkyMTQzLCAxLjI3NjA3LCAxLjU1MjcyIiwgXAotICAgICAgICAgICIwLjI1NDQxMSwgMC4yNjgyMzcsIDAuMzkyNjc1LCAwLjYwMDAzOSwgMC44MDc0NjEsIDEuMjkxMzksIDEuNTY4MDYiLCBcCi0gICAgICAgICAgIjAuMjY1OTMsIDAuMjc5NzU2LCAwLjQwNDE5NywgMC42MTE1NjIsIDAuODE4OTc4LCAxLjMwMjg4LCAxLjU3OTQzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE0NTY0NiwgMC4xNzMzNzMsIDAuNDIxNzgyLCAwLjgzNjk0LCAxLjI1MzA5LCAyLjIyMjM2LCAyLjc3ODY4IiwgXAotICAgICAgICAgICIwLjE0NTUyNCwgMC4xNzMzOCwgMC40MjIzNzIsIDAuODM5ODM2LCAxLjI1MjYzLCAyLjIyNTQ1LCAyLjc3MzI0IiwgXAotICAgICAgICAgICIwLjE0NTYzNiwgMC4xNzMzNjgsIDAuNDIyNzg5LCAwLjgzOTU0NywgMS4yNTUwMSwgMi4yMjQ4OCwgMi43ODUzNCIsIFwKLSAgICAgICAgICAiMC4xNDU2NDMsIDAuMTczMzMsIDAuNDIxNzg0LCAwLjgzNzIzMSwgMS4yNTMwMSwgMi4yMjI1MiwgMi43NzkxMiIsIFwKLSAgICAgICAgICAiMC4xNDU2MzcsIDAuMTczMzg2LCAwLjQyMjQ5NiwgMC44Mzk1NDcsIDEuMjU1MDMsIDIuMjI0ODEsIDIuNzc4NjciLCBcCi0gICAgICAgICAgIjAuMTQ1NjQ0LCAwLjE3MzM3OSwgMC40MjI1ODQsIDAuODM5ODEzLCAxLjI1NDk3LCAyLjIyNTQ4LCAyLjc3OTA1IiwgXAotICAgICAgICAgICIwLjE0NTYzOCwgMC4xNzMxNjcsIDAuNDIyNzM2LCAwLjgzOTgxNiwgMS4yNTY2NSwgMi4yMjkyNiwgMi43NzMzNiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcHJlc2V0OwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMzY4ODEsIDAuMjUwOTg0LCAwLjM3ODA2OCwgMC41ODk5MDEsIDAuODAxNjc3LCAxLjI5NjAzLCAxLjU3ODA1IiwgXAotICAgICAgICAgICIwLjI0Njc3NCwgMC4yNjA4NzQsIDAuMzg3OTYsIDAuNTk5Nzc4LCAwLjgxMTU1MiwgMS4zMDU3MiwgMS41ODgzOSIsIFwKLSAgICAgICAgICAiMC4yNTg1MzYsIDAuMjcyNjYyLCAwLjM5OTczOSwgMC42MTE2MTksIDAuODIzNDA2LCAxLjMxNzcxLCAxLjU5OTg4IiwgXAotICAgICAgICAgICIwLjI2ODYyMiwgMC4yODI3NDgsIDAuNDA5ODMxLCAwLjYyMTcwNCwgMC44MzM0OTQsIDEuMzI3OCwgMS42MTAwMSIsIFwKLSAgICAgICAgICAiMC4yNzc0NDksIDAuMjkxNTc1LCAwLjQxODY5NCwgMC42MzA1MywgMC44NDIzMjUsIDEuMzM2NjIsIDEuNjE4NTUiLCBcCi0gICAgICAgICAgIjAuMjg5ODU3LCAwLjMwMzk1OSwgMC40MzEwNDMsIDAuNjQyODc0LCAwLjg1NDYzMSwgMS4zNDg3OCwgMS42MzE0NyIsIFwKLSAgICAgICAgICAiMC4yOTg0OTYsIDAuMzEyNjIyLCAwLjQzOTY4OCwgMC42NTE1OCwgMC44NjMzNzEsIDEuMzU3NjcsIDEuNjM5NyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNTIxODgsIDAuMTgxMjYxLCAwLjQ0MjY2MywgMC44Nzg1NTcsIDEuMzEzOTYsIDIuMzMwNjcsIDIuOTEwMzEiLCBcCi0gICAgICAgICAgIjAuMTUyMzMxLCAwLjE4MTMyNCwgMC40NDI3NjEsIDAuODc4NDM4LCAxLjMxMzk5LCAyLjMzMDM2LCAyLjkxMTkiLCBcCi0gICAgICAgICAgIjAuMTUyMTc5LCAwLjE4MTI5LCAwLjQ0MjY0NSwgMC44Nzg1ODYsIDEuMzE0MDQsIDIuMzMwNjMsIDIuOTA3MjMiLCBcCi0gICAgICAgICAgIjAuMTUyMTc3LCAwLjE4MTI2MiwgMC40NDI2NDcsIDAuODc4NTgzLCAxLjMxNDA0LCAyLjMzMDYyLCAyLjkxMTUyIiwgXAotICAgICAgICAgICIwLjE1MjM3NCwgMC4xODExNDIsIDAuNDQyNjYyLCAwLjg3ODU4LCAxLjMxNDA3LCAyLjMzMDY0LCAyLjkxMDUzIiwgXAotICAgICAgICAgICIwLjE1MjM3NywgMC4xODEzODUsIDAuNDQyNjUsIDAuODc4NDIzLCAxLjMxMzkxLCAyLjMzMDIzLCAyLjkxMTg3IiwgXAotICAgICAgICAgICIwLjE1MjIxMywgMC4xODExMjgsIDAuNDQyNjQ2LCAwLjg3ODIyOSwgMS4zMTQwOSwgMi4zMzA3NCwgMi45MTA1OCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogY2xlYXI7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIxOTgwOCwgMC4yMzM5MzUsIDAuMzYxMDA3LCAwLjU3Mjg5LCAwLjc4NDY3MiwgMS4yNzg5OCwgMS41NjExMSIsIFwKLSAgICAgICAgICAiMC4yMjkyNDgsIDAuMjQzMzc5LCAwLjM3MDQzNSwgMC41ODIyMzcsIDAuNzk0MTEyLCAxLjI4ODE4LCAxLjU3MDkzIiwgXAotICAgICAgICAgICIwLjI0MDE1OSwgMC4yNTQyOTUsIDAuMzgxNDAxLCAwLjU5MzI0LCAwLjgwNTA0NCwgMS4yOTkzMywgMS41ODE3NSIsIFwKLSAgICAgICAgICAiMC4yNTA4MTIsIDAuMjY0OTM5LCAwLjM5MjAxLCAwLjYwMzg5NCwgMC44MTU3MDIsIDEuMzA5OTgsIDEuNTkyMyIsIFwKLSAgICAgICAgICAiMC4yNjE0NDUsIDAuMjc1NTcxLCAwLjQwMjU4NiwgMC42MTQ1MywgMC44MjYzMTgsIDEuMzIwNjMsIDEuNjAyODUiLCBcCi0gICAgICAgICAgIjAuMjc3OTM4LCAwLjI5MjA3LCAwLjQxOTEyNCwgMC42MzA5MTksIDAuODQyODA2LCAxLjMzNjg4LCAxLjYxOTYzIiwgXAotICAgICAgICAgICIwLjI5MTcwOSwgMC4zMDU4MjYsIDAuNDMyODk3LCAwLjY0NDgxMiwgMC44NTY0MDcsIDEuMzUwODIsIDEuNjMzMzIiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTUyMzYyLCAwLjE4MTM4OSwgMC40NDI3NTMsIDAuODc4NjA4LCAxLjMxNDAzLCAyLjMzMDY5LCAyLjkxMTU2IiwgXAotICAgICAgICAgICIwLjE1MjM2NCwgMC4xODE0NDYsIDAuNDQyNjQ5LCAwLjg3ODM0OSwgMS4zMTQxNCwgMi4zMjkzNywgMi45MDk5NiIsIFwKLSAgICAgICAgICAiMC4xNTIyMTEsIDAuMTgxMzYxLCAwLjQ0MjkwNSwgMC44Nzg1NiwgMS4zMTQxOCwgMi4zMzA4NCwgMi45MTE2NyIsIFwKLSAgICAgICAgICAiMC4xNTIyMTUsIDAuMTgxMjgsIDAuNDQyNjUzLCAwLjg3ODU1OCwgMS4zMTQxOCwgMi4zMzA4MywgMi45MTE0IiwgXAotICAgICAgICAgICIwLjE1MjIxMiwgMC4xODEwMDYsIDAuNDQyNzM1LCAwLjg3ODEyMiwgMS4zMTQwOSwgMi4zMzA3MiwgMi45MTE2NSIsIFwKLSAgICAgICAgICAiMC4xNTIxODUsIDAuMTgxNDQ0LCAwLjQ0MjY4MSwgMC44NzgzMjEsIDEuMzE0MTMsIDIuMzI3MTEsIDIuOTEwODMiLCBcCi0gICAgICAgICAgIjAuMTUyMzQ1LCAwLjE4MTMwNSwgMC40NDI2NDcsIDAuODc2NjUsIDEuMzEzOTQsIDIuMzIzMzYsIDIuOTExODMiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTgxNjM4LCAwLjE5NTQ2NywgMC4zMTk5MDUsIDAuNTI3MzQxLCAwLjczNDczNSwgMS4yMTg1NiwgMS40OTUwMyIsIFwKLSAgICAgICAgICAiMC4xOTEwMDYsIDAuMjA0ODMyLCAwLjMyOTI3LCAwLjUzNjcwNSwgMC43NDQwNjMsIDEuMjI3OTMsIDEuNTA0MzkiLCBcCi0gICAgICAgICAgIjAuMjAxMjY0LCAwLjIxNTA5LCAwLjMzOTUzMywgMC41NDY5NDYsIDAuNzU0MzYyLCAxLjIzODIyLCAxLjUxNDY2IiwgXAotICAgICAgICAgICIwLjIxMjk3OCwgMC4yMjY4MDQsIDAuMzUxMjQ5LCAwLjU1ODY2OSwgMC43NjYxMDQsIDEuMjUwMDYsIDEuNTI2NDgiLCBcCi0gICAgICAgICAgIjAuMjI0Mzk1LCAwLjIzODIyMSwgMC4zNjI2NjUsIDAuNTcwMDg5LCAwLjc3NzQ2LCAxLjI2MTQzLCAxLjUzNzQxIiwgXAotICAgICAgICAgICIwLjI0MTA0OCwgMC4yNTQ4OCwgMC4zNzkyNjIsIDAuNTg2NzUyLCAwLjc5NDE1MywgMS4yNzgxNSwgMS41NTQ0NiIsIFwKLSAgICAgICAgICAiMC4yNTQyMTEsIDAuMjY4MDM3LCAwLjM5MjQ2OCwgMC41OTk5MTEsIDAuODA3MzM4LCAxLjI5MTI4LCAxLjU2NzQyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE0NTcxOCwgMC4xNzMxNzQsIDAuNDIzNTMyLCAwLjg0MDM3LCAxLjI1NzA1LCAyLjIyOTg3LCAyLjc4MDc5IiwgXAotICAgICAgICAgICIwLjE0NTcxNSwgMC4xNzM0NzUsIDAuNDIzNDQxLCAwLjg0MDM2OSwgMS4yNTY5NywgMi4yMjg1OCwgMi43ODA4MyIsIFwKLSAgICAgICAgICAiMC4xNDU1NDMsIDAuMTczNDc1LCAwLjQyMzQyOCwgMC44NDAzNTQsIDEuMjU3MDksIDIuMjI3NzIsIDIuNzgxMjciLCBcCi0gICAgICAgICAgIjAuMTQ1Njk0LCAwLjE3MzQ2MywgMC40MjI4NjQsIDAuODQwMzQ5LCAxLjI1NzA2LCAyLjIyOTIxLCAyLjc4NTkxIiwgXAotICAgICAgICAgICIwLjE0NTY5MiwgMC4xNzM0NjgsIDAuNDIzNTIxLCAwLjg0MDQwNCwgMS4yNTcxLCAyLjIyOTM3LCAyLjc4MDk1IiwgXAotICAgICAgICAgICIwLjE0NTU1MiwgMC4xNzMxNzYsIDAuNDIzMzgzLCAwLjg0MDMzNSwgMS4yNTcwNywgMi4yMjg5MSwgMi43ODI5IiwgXAotICAgICAgICAgICIwLjE0NTY5MSwgMC4xNzM0ODQsIDAuNDIzNDg5LCAwLjg0MDI1OCwgMS4yNTcwNywgMi4yMjg4NywgMi43ODQxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzU5LCAwLjAwMzU5MiwgMC4wMDM1OTYsIDAuMDAzNTk3LCAwLjAwMzU5OCwgMC4wMDM1OTgsIDAuMDAzNTk4IiwgXAotICAgICAgICAgICIwLjAwMzU3NywgMC4wMDM1NzgsIDAuMDAzNTgyLCAwLjAwMzU4NCwgMC4wMDM1ODYsIDAuMDAzNTg2LCAwLjAwMzU4NiIsIFwKLSAgICAgICAgICAiMC4wMDM1NzUsIDAuMDAzNTc2LCAwLjAwMzU4LCAwLjAwMzU4MiwgMC4wMDM1ODMsIDAuMDAzNTgzLCAwLjAwMzU4MyIsIFwKLSAgICAgICAgICAiMC4wMDM1OCwgMC4wMDM1ODEsIDAuMDAzNTg1LCAwLjAwMzU4NywgMC4wMDM1ODcsIDAuMDAzNTg3LCAwLjAwMzU4OCIsIFwKLSAgICAgICAgICAiMC4wMDM1OTUsIDAuMDAzNTk2LCAwLjAwMzYsIDAuMDAzNjAyLCAwLjAwMzYwNCwgMC4wMDM2MDMsIDAuMDAzNjA0IiwgXAotICAgICAgICAgICIwLjAwMzYwOCwgMC4wMDM2MDksIDAuMDAzNjEzLCAwLjAwMzYxNSwgMC4wMDM2MTYsIDAuMDAzNjE2LCAwLjAwMzYxNyIsIFwKLSAgICAgICAgICAiMC4wMDM2MjcsIDAuMDAzNjI4LCAwLjAwMzYzMiwgMC4wMDM2MzQsIDAuMDAzNjM0LCAwLjAwMzYzNiwgMC4wMDM2MzYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDM3NjYsIDAuMDAzNzY3LCAwLjAwMzc3MSwgMC4wMDM3NzIsIDAuMDAzNzczLCAwLjAwMzc3MywgMC4wMDM3NzQiLCBcCi0gICAgICAgICAgIjAuMDAzNzUxLCAwLjAwMzc1MiwgMC4wMDM3NTYsIDAuMDAzNzU3LCAwLjAwMzc1OCwgMC4wMDM3NTgsIDAuMDAzNzU4IiwgXAotICAgICAgICAgICIwLjAwMzc0MywgMC4wMDM3NDUsIDAuMDAzNzQ5LCAwLjAwMzc1LCAwLjAwMzc1MSwgMC4wMDM3NTEsIDAuMDAzNzUxIiwgXAotICAgICAgICAgICIwLjAwMzc0MiwgMC4wMDM3NDMsIDAuMDAzNzQ3LCAwLjAwMzc0OSwgMC4wMDM3NDksIDAuMDAzNzUsIDAuMDAzNzUiLCBcCi0gICAgICAgICAgIjAuMDAzNzUzLCAwLjAwMzc1NSwgMC4wMDM3NTksIDAuMDAzNzYsIDAuMDAzNzYxLCAwLjAwMzc2MSwgMC4wMDM3NjEiLCBcCi0gICAgICAgICAgIjAuMDAzNzYsIDAuMDAzNzYxLCAwLjAwMzc2NSwgMC4wMDM3NjYsIDAuMDAzNzY3LCAwLjAwMzc2NywgMC4wMDM3NjciLCBcCi0gICAgICAgICAgIjAuMDAzNzcxLCAwLjAwMzc3MiwgMC4wMDM3NzcsIDAuMDAzNzc4LCAwLjAwMzc3OSwgMC4wMDM3NzksIDAuMDAzNzc5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUk4iOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDg5NywgMC4wMDQ4OTcsIDAuMDA0ODk1LCAwLjAwNDg5MSwgMC4wMDQ4OSwgMC4wMDQ4ODgsIDAuMDA0ODg2IiwgXAotICAgICAgICAgICIwLjAwNDg4NSwgMC4wMDQ4ODYsIDAuMDA0ODgzLCAwLjAwNDg3OSwgMC4wMDQ4NzcsIDAuMDA0ODc2LCAwLjAwNDg3NCIsIFwKLSAgICAgICAgICAiMC4wMDQ4ODMsIDAuMDA0ODgzLCAwLjAwNDg4MSwgMC4wMDQ4NzcsIDAuMDA0ODc1LCAwLjAwNDg3NCwgMC4wMDQ4NzIiLCBcCi0gICAgICAgICAgIjAuMDA0ODg0LCAwLjAwNDg4NCwgMC4wMDQ4ODIsIDAuMDA0ODc4LCAwLjAwNDg3NiwgMC4wMDQ4NzUsIDAuMDA0ODc1IiwgXAotICAgICAgICAgICIwLjAwNDg4NiwgMC4wMDQ4ODcsIDAuMDA0ODg0LCAwLjAwNDg4LCAwLjAwNDg3OCwgMC4wMDQ4NzcsIDAuMDA0ODc3IiwgXAotICAgICAgICAgICIwLjAwNDg5MiwgMC4wMDQ4OTMsIDAuMDA0ODkxLCAwLjAwNDg4NywgMC4wMDQ4ODUsIDAuMDA0ODgzLCAwLjAwNDg4MiIsIFwKLSAgICAgICAgICAiMC4wMDQ4OTgsIDAuMDA0ODk5LCAwLjAwNDg5NywgMC4wMDQ4OTMsIDAuMDA0ODkxLCAwLjAwNDg5LCAwLjAwNDg4NyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihzY2FsYXIpIHsKLSAgICAgICAgdmFsdWVzKCIwIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiU04iOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzU0MiwgMC4wMDM1NDMsIDAuMDAzNTQ3LCAwLjAwMzU0OCwgMC4wMDM1NDksIDAuMDAzNTUxLCAwLjAwMzU0OSIsIFwKLSAgICAgICAgICAiMC4wMDM1MjQsIDAuMDAzNTI2LCAwLjAwMzUzLCAwLjAwMzUzMSwgMC4wMDM1MzQsIDAuMDAzNTMyLCAwLjAwMzUzMiIsIFwKLSAgICAgICAgICAiMC4wMDM1MTUsIDAuMDAzNTE2LCAwLjAwMzUyLCAwLjAwMzUyMiwgMC4wMDM1MjQsIDAuMDAzNTIzLCAwLjAwMzUyMyIsIFwKLSAgICAgICAgICAiMC4wMDM1MDksIDAuMDAzNTEsIDAuMDAzNTE0LCAwLjAwMzUxNiwgMC4wMDM1MTgsIDAuMDAzNTE3LCAwLjAwMzUxNyIsIFwKLSAgICAgICAgICAiMC4wMDM1MDUsIDAuMDAzNTA2LCAwLjAwMzUxLCAwLjAwMzUxMSwgMC4wMDM1MTIsIDAuMDAzNTE0LCAwLjAwMzUxNCIsIFwKLSAgICAgICAgICAiMC4wMDM0OTgsIDAuMDAzNDk5LCAwLjAwMzUwMywgMC4wMDM1MDUsIDAuMDAzNTA1LCAwLjAwMzUwNiwgMC4wMDM1MDUiLCBcCi0gICAgICAgICAgIjAuMDAzNDk4LCAwLjAwMzQ5OSwgMC4wMDM1MDMsIDAuMDAzNTA1LCAwLjAwMzUwNywgMC4wMDM1MDYsIDAuMDAzNTA4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0Nzc0LCAwLjAwNDc3NSwgMC4wMDQ3NzgsIDAuMDA0Nzc5LCAwLjAwNDc4LCAwLjAwNDc4LCAwLjAwNDc4IiwgXAotICAgICAgICAgICIwLjAwNDc2LCAwLjAwNDc2MSwgMC4wMDQ3NjQsIDAuMDA0NzY1LCAwLjAwNDc2NywgMC4wMDQ3NjYsIDAuMDA0NzY4IiwgXAotICAgICAgICAgICIwLjAwNDc1MywgMC4wMDQ3NTQsIDAuMDA0NzU3LCAwLjAwNDc1OSwgMC4wMDQ3NiwgMC4wMDQ3NiwgMC4wMDQ3NjEiLCBcCi0gICAgICAgICAgIjAuMDA0NzUsIDAuMDA0NzUxLCAwLjAwNDc1NSwgMC4wMDQ3NTYsIDAuMDA0NzU3LCAwLjAwNDc1NywgMC4wMDQ3NTgiLCBcCi0gICAgICAgICAgIjAuMDA0NzUsIDAuMDA0NzUyLCAwLjAwNDc1NSwgMC4wMDQ3NTcsIDAuMDA0NzU3LCAwLjAwNDc1NywgMC4wMDQ3NTciLCBcCi0gICAgICAgICAgIjAuMDA0NzUyLCAwLjAwNDc1NCwgMC4wMDQ3NTcsIDAuMDA0NzU5LCAwLjAwNDc1OSwgMC4wMDQ3NTksIDAuMDA0NzYiLCBcCi0gICAgICAgICAgIjAuMDA0NzYxLCAwLjAwNDc2MiwgMC4wMDQ3NjYsIDAuMDA0NzY4LCAwLjAwNDc2OCwgMC4wMDQ3NjgsIDAuMDA0NzY5Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihSTikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjI1Mzg0OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYyNTEwOTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2MjUzODQ7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNDg0LCAwLjAwMDQ2LCAwLjAwMDQ1MiwgMC4wMDA0NTcsIDAuMDAwNDY3LCAwLjAwMDQ5LCAwLjAwMDUxMyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjQzOCwgMC4wMDI0MTksIDAuMDAyNDE0LCAwLjAwMjQxOCwgMC4wMDI0MjksIDAuMDAyNDUxLCAwLjAwMjQ3MSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQmIVNFJiFTSSZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fU0VfRVFfMF9BTl9TSV9FUV8wX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4yMzY4ODEsIDAuMjQ2Nzc0LCAwLjI1ODUzNiwgMC4yNjg2MjIsIDAuMjc3NDQ5LCAwLjI4OTg1NywgMC4yOTg0OTYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiByZWNvdmVyeV9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlNOIjsKLSAgICAgIHNkZl9jb25kIDogIlNOID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHJlY292ZXJ5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1NjI1LCAwLjA0NSwgMC4wMzI1LCAwLjAyLCAwLjAwNzUsIC0wLjAwMjUsIC0wLjAxNzUiLCBcCi0gICAgICAgICAgIjAuMDY3NSwgMC4wNTYyNSwgMC4wNDM3NSwgMC4wMzEyNSwgMC4wMTg3NSwgMC4wMDI1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiMC4wOCwgMC4wNjg3NSwgMC4wNTYyNSwgMC4wNDM3NSwgMC4wMzEyNSwgMC4wMTUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMDkyNSwgMC4wODEyNSwgMC4wNjg3NSwgMC4wNTYyNSwgMC4wNDM3NSwgMC4wMjc1LCAwLjAxODc1IiwgXAotICAgICAgICAgICIwLjA5ODc1LCAwLjA4NzUsIDAuMDc1LCAwLjA2MjUsIDAuMDUsIDAuMDQsIDAuMDI1IiwgXAotICAgICAgICAgICIwLjExNSwgMC4xMDM3NSwgMC4wOTEyNSwgMC4wNzg3NSwgMC4wNjYyNSwgMC4wNSwgMC4wNDEyNSIsIFwKLSAgICAgICAgICAiMC4xMjM3NSwgMC4xMTI1LCAwLjEsIDAuMDg3NSwgMC4wNzUsIDAuMDU4NzUsIDAuMDUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiU04iOwotICAgICAgdGltaW5nX3R5cGUgOiByZWNvdmVyeV9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEJiFTRSYhU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1NFX0VRXzBfQU5fU0lfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChyZWNvdmVyeV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzUsIDAuMDg2MjUsIDAuMDk4NzUsIDAuMTA1LCAwLjExNzUsIDAuMTMzNzUsIDAuMTQyNSIsIFwKLSAgICAgICAgICAiMC4wNywgMC4wODEyNSwgMC4wODc1LCAwLjEsIDAuMTA2MjUsIDAuMTIyNSwgMC4xMzEyNSIsIFwKLSAgICAgICAgICAiMC4wNTc1LCAwLjA2ODc1LCAwLjA4MTI1LCAwLjA4NzUsIDAuMSwgMC4xMTYyNSwgMC4xMjUiLCBcCi0gICAgICAgICAgIjAuMDU3NSwgMC4wNjI1LCAwLjA3NSwgMC4wODc1LCAwLjA5Mzc1LCAwLjExLCAwLjExODc1IiwgXAotICAgICAgICAgICIwLjA1MTI1LCAwLjA2MjUsIDAuMDY4NzUsIDAuMDgxMjUsIDAuMDg3NSwgMC4xMDM3NSwgMC4xMTI1IiwgXAotICAgICAgICAgICIwLjA0NzUsIDAuMDUyNSwgMC4wNjUsIDAuMDcxMjUsIDAuMDgzNzUsIDAuMDkzNzUsIDAuMTA4NzUiLCBcCi0gICAgICAgICAgIjAuMDM4NzUsIDAuMDUsIDAuMDYyNSwgMC4wNjg3NSwgMC4wODEyNSwgMC4wOTEyNSwgMC4xMDYyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJlbW92YWxfcmlzaW5nOwotICAgICAgd2hlbiA6ICJTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJTTiA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChyZW1vdmFsX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMTI1LCAtMC4wMDEyNSwgMC4wMTEyNSwgMC4wMjM3NSwgMC4wMywgMC4wNDYyNSwgMC4wNTUiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTI1LCAwLCAwLjAxMjUsIDAuMDE4NzUsIDAuMDM1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDI1LCAtMC4wMTI1LCAwLCAwLjAwNjI1LCAwLjAyMjUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAxMjUsIDAsIDAuMDEsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjA1NSwgLTAuMDQzNzUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgMC4wMDM3NSwgMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wNzEyNSwgLTAuMDYsIC0wLjA0NzUsIC0wLjAzNSwgLTAuMDIyNSwgLTAuMDEyNSwgLTAuMDAzNzUiLCBcCi0gICAgICAgICAgIi0wLjA4LCAtMC4wNjg3NSwgLTAuMDU2MjUsIC0wLjA0Mzc1LCAtMC4wMzEyNSwgLTAuMDIxMjUsIC0wLjAxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFNFKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDEzNDA3MTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDEzNDAxMjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDEzNDA3MTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDQzNjUsIDAuMDA0MzQzLCAwLjAwNDM0OSwgMC4wMDQzNTEsIDAuMDA0MzY5LCAwLjAwNDM5LCAwLjAwNDQxNCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNTgxMSwgMC4wMDU3NzUsIDAuMDA1Nzc4LCAwLjAwNTc3NSwgMC4wMDU3ODQsIDAuMDA1ODIyLCAwLjAwNTg1OSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJSTiZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJSTl9FUV8xX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDMxMjUsIC0wLjAyLCAtMC4wMDc1LCAwLjAwNSwgMC4wMTEyNSwgMC4wMjc1LCAwLjAzNjI1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDMxMjUsIC0wLjAxODc1LCAtMC4wMDYyNSwgMCwgMC4wMTYyNSwgMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMDYyNSwgMC4wMDM3NSwgMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMDI1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wNjc1LCAtMC4wNTYyNSwgLTAuMDQzNzUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAwODc1LCAwIiwgXAotICAgICAgICAgICItMC4wNzc1LCAtMC4wNjYyNSwgLTAuMDUzNzUsIC0wLjA0MTI1LCAtMC4wMzUsIC0wLjAyNSwgLTAuMDEiLCBcCi0gICAgICAgICAgIi0wLjA4LCAtMC4wNzUsIC0wLjA2MjUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDI3NSwgLTAuMDE4NzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMTI1LCAtMC4wMDEyNSwgMC4wMDUsIDAuMDE3NSwgMC4wMjM3NSwgMC4wNCwgMC4wNDg3NSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxMjUsIDAsIDAuMDA2MjUsIDAuMDE4NzUsIDAuMDI4NzUsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAyNSwgLTAuMDEyNSwgMCwgMC4wMDYyNSwgMC4wMTYyNSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDM3NSwgLTAuMDI1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMC4wMSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNDM3NSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDEyNSwgLTAuMDAyNSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDcxMjUsIC0wLjA2LCAtMC4wNDc1LCAtMC4wNDEyNSwgLTAuMDI4NzUsIC0wLjAxODc1LCAtMC4wMSIsIFwKLSAgICAgICAgICAiLTAuMDgsIC0wLjA2ODc1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjAzNzUsIC0wLjAyNzUsIC0wLjAxODc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJSTiZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJSTl9FUV8xX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTA2MjUsIDAuMDk1LCAwLjA4MjUsIDAuMDcsIDAuMDU3NSwgMC4wNDc1LCAwLjAzODc1IiwgXAotICAgICAgICAgICIwLjExMTI1LCAwLjEsIDAuMDg3NSwgMC4wNzUsIDAuMDY4NzUsIDAuMDUyNSwgMC4wNSIsIFwKLSAgICAgICAgICAiMC4xMjM3NSwgMC4xMTI1LCAwLjEsIDAuMDg3NSwgMC4wODEyNSwgMC4wNjUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIjAuMTM2MjUsIDAuMTI1LCAwLjExMjUsIDAuMSwgMC4wODc1LCAwLjA3NzUsIDAuMDY4NzUiLCBcCi0gICAgICAgICAgIjAuMTQ4NzUsIDAuMTM3NSwgMC4xMjUsIDAuMTEyNSwgMC4xLCAwLjA5LCAwLjA4MTI1IiwgXAotICAgICAgICAgICIwLjE2NSwgMC4xNTM3NSwgMC4xNDEyNSwgMC4xMjg3NSwgMC4xMjI1LCAwLjEwNjI1LCAwLjA5NzUiLCBcCi0gICAgICAgICAgIjAuMTgsIDAuMTY4NzUsIDAuMTU2MjUsIDAuMTQzNzUsIDAuMTMxMjUsIDAuMTIxMjUsIDAuMTEyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExODc1LCAwLjEwNzUsIDAuMDk1LCAwLjA4MjUsIDAuMDc2MjUsIDAuMDYsIDAuMDU3NSIsIFwKLSAgICAgICAgICAiMC4xMywgMC4xMTg3NSwgMC4xMDYyNSwgMC4wOTM3NSwgMC4wODEyNSwgMC4wNzEyNSwgMC4wNjI1IiwgXAotICAgICAgICAgICIwLjE0MjUsIDAuMTMxMjUsIDAuMTE4NzUsIDAuMTA2MjUsIDAuMDkzNzUsIDAuMDgzNzUsIDAuMDc1IiwgXAotICAgICAgICAgICIwLjE0ODc1LCAwLjEzNzUsIDAuMTI1LCAwLjExMjUsIDAuMSwgMC4wOSwgMC4wODEyNSIsIFwKLSAgICAgICAgICAiMC4xNTUsIDAuMTQzNzUsIDAuMTMxMjUsIDAuMTE4NzUsIDAuMTA2MjUsIDAuMDk2MjUsIDAuMDg3NSIsIFwKLSAgICAgICAgICAiMC4xNjUsIDAuMTUzNzUsIDAuMTQxMjUsIDAuMTI4NzUsIDAuMTE2MjUsIDAuMTA2MjUsIDAuMDk3NSIsIFwKLSAgICAgICAgICAiMC4xNjc1LCAwLjE1NjI1LCAwLjE0Mzc1LCAwLjEzMTI1LCAwLjEyNSwgMC4xMDg3NSwgMC4xMDYyNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oU0kpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY1NDAyOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDY1MjQxNDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2NTQwMjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDMwNzYsIDAuMDAzMDYsIDAuMDAzMDUsIDAuMDAzMDQ1LCAwLjAwMzA0MywgMC4wMDMwNDQsIDAuMDAzMDUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDQ3MzUsIDAuMDA0NzI1LCAwLjAwNDcxOSwgMC4wMDQ3MTYsIDAuMDA0NzE1LCAwLjAwNDcxNSwgMC4wMDQ3MTkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiUk4mU0UmU04iOwotICAgICAgc2RmX2NvbmQgOiAiUk5fRVFfMV9BTl9TRV9FUV8xX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDU2MjUsIC0wLjA0NSwgLTAuMDM4NzUsIC0wLjAzMjUsIC0wLjAyNjI1LCAtMC4wMTYyNSwgLTAuMDEzNzUiLCBcCi0gICAgICAgICAgIi0wLjA2MTI1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjAzNzUsIC0wLjAzNzUsIC0wLjAyNzUsIC0wLjAxODc1IiwgXAotICAgICAgICAgICItMC4wNzM3NSwgLTAuMDY4NzUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjA0LCAtMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDg2MjUsIC0wLjA3NSwgLTAuMDY4NzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNDYyNSwgLTAuMDQzNzUiLCBcCi0gICAgICAgICAgIi0wLjA5MjUsIC0wLjA4NzUsIC0wLjA4MTI1LCAtMC4wNzUsIC0wLjA2ODc1LCAtMC4wNTg3NSwgLTAuMDUiLCBcCi0gICAgICAgICAgIi0wLjEwODc1LCAtMC4xMDM3NSwgLTAuMDk3NSwgLTAuMDg1LCAtMC4wODUsIC0wLjA3NSwgLTAuMDY2MjUiLCBcCi0gICAgICAgICAgIi0wLjEyMzc1LCAtMC4xMTI1LCAtMC4xMDYyNSwgLTAuMSwgLTAuMDkzNzUsIC0wLjA5LCAtMC4wODEyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAxODc1LCAtMC4wMDc1LCAtMC4wMDEyNSwgMC4wMTEyNSwgMC4wMTc1LCAwLjAzMzc1LCAwLjA0MjUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAuMDA2MjUsIDAuMDEyNSwgMC4wMjI1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDMxMjUsIC0wLjAxODc1LCAtMC4wMDYyNSwgMCwgMC4wMTYyNSwgMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLjAwMzc1LCAwLjAxODc1IiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAxMjUsIC0wLjAwMjUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA3MTI1LCAtMC4wNiwgLTAuMDQ3NSwgLTAuMDM1LCAtMC4wMjg3NSwgLTAuMDEyNSwgLTAuMDAzNzUiLCBcCi0gICAgICAgICAgIi0wLjA4LCAtMC4wNjg3NSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wMzc1LCAtMC4wMjc1LCAtMC4wMTg3NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiUk4mU0UmU04iOwotICAgICAgc2RmX2NvbmQgOiAiUk5fRVFfMV9BTl9TRV9FUV8xX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTEyNSwgMC4xMDEyNSwgMC4wODI1LCAwLjA3NjI1LCAwLjA2Mzc1LCAwLjA1Mzc1LCAwLjA0NSIsIFwKLSAgICAgICAgICAiMC4xMTc1LCAwLjEwNjI1LCAwLjA5Mzc1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNTg3NSwgMC4wNSIsIFwKLSAgICAgICAgICAiMC4xMywgMC4xMTg3NSwgMC4xMDYyNSwgMC4wOTM3NSwgMC4wODEyNSwgMC4wNzEyNSwgMC4wNjI1IiwgXAotICAgICAgICAgICIwLjE0MjUsIDAuMTMxMjUsIDAuMTEyNSwgMC4xMDYyNSwgMC4wOTM3NSwgMC4wODM3NSwgMC4wNzUiLCBcCi0gICAgICAgICAgIjAuMTQ4NzUsIDAuMTM3NSwgMC4xMjUsIDAuMTEyNSwgMC4xMDYyNSwgMC4wOSwgMC4wODEyNSIsIFwKLSAgICAgICAgICAiMC4xNjUsIDAuMTUzNzUsIDAuMTQxMjUsIDAuMTI4NzUsIDAuMTIyNSwgMC4xMDYyNSwgMC4wOTc1IiwgXAotICAgICAgICAgICIwLjE4LCAwLjE2ODc1LCAwLjE1NjI1LCAwLjE0Mzc1LCAwLjEzMTI1LCAwLjEyMTI1LCAwLjExMjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODc1LCAwLjA3NjI1LCAwLjA2Mzc1LCAwLjA1MTI1LCAwLjAzODc1LCAwLjAyODc1LCAwLjAxMzc1IiwgXAotICAgICAgICAgICIwLjA5ODc1LCAwLjA4NzUsIDAuMDc1LCAwLjA2MjUsIDAuMDUsIDAuMDMzNzUsIDAuMDI1IiwgXAotICAgICAgICAgICIwLjEwNSwgMC4wOTM3NSwgMC4wODEyNSwgMC4wNjg3NSwgMC4wNTYyNSwgMC4wNDYyNSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4xMTc1LCAwLjEwNjI1LCAwLjA5Mzc1LCAwLjA4MTI1LCAwLjA2ODc1LCAwLjA1MjUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMTIzNzUsIDAuMTEyNSwgMC4xLCAwLjA4NzUsIDAuMDgxMjUsIDAuMDY1LCAwLjA1IiwgXAotICAgICAgICAgICIwLjE0LCAwLjEyODc1LCAwLjExNjI1LCAwLjEwMzc1LCAwLjA5MTI1LCAwLjA3NSwgMC4wNjYyNSIsIFwKLSAgICAgICAgICAiMC4xNDg3NSwgMC4xMzc1LCAwLjEyNSwgMC4xMTI1LCAwLjEwNjI1LCAwLjA5LCAwLjA3NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oU04pICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTYxNDM4OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTYxNDM4OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTYxMzkxOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDQ1MywgMC4wMDA0NTIsIDAuMDAwNDUyLCAwLjAwMDQ1MiwgMC4wMDA0NTIsIDAuMDAwNDUyLCAwLjAwMDQ1MiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDQ1NCwgMC4wMDA0NTQsIDAuMDAwNDU0LCAwLjAwMDQ1NCwgMC4wMDA0NTQsIDAuMDAwNDU0LCAwLjAwMDQ1NCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQmIVJOJiFTRSYhU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1JOX0VRXzBfQU5fU0VfRVFfMF9BTl9TSV9FUV8wID09IDEnYjEiOwotICAgICAgZmFsbF9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMTgxNjIxLCAwLjE5MDk2NywgMC4yMDEyMzgsIDAuMjEyOTc4LCAwLjIyNDM5NSwgMC4yNDEwNDgsIDAuMjU0MjExIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogcmVjb3ZlcnlfcmlzaW5nOwotICAgICAgd2hlbiA6ICJSTiI7Ci0gICAgICBzZGZfY29uZCA6ICJSTiA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChyZWNvdmVyeV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTI1LCAwLjAwMTI1LCAtMC4wMTEyNSwgLTAuMDIzNzUsIC0wLjAzNjI1LCAtMC4wNTI1LCAtMC4wNjc1IiwgXAotICAgICAgICAgICIwLjAyMzc1LCAwLjAxMjUsIC0wLjAwNjI1LCAtMC4wMTg3NSwgLTAuMDMxMjUsIC0wLjA0MTI1LCAtMC4wNTYyNSIsIFwKLSAgICAgICAgICAiMC4wMywgMC4wMTg3NSwgMC4wMDYyNSwgLTAuMDA2MjUsIC0wLjAxODc1LCAtMC4wMzUsIC0wLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjA0MjUsIDAuMDMxMjUsIDAuMDE4NzUsIDAuMDA2MjUsIC0wLjAwNjI1LCAtMC4wMjI1LCAtMC4wMzc1IiwgXAotICAgICAgICAgICIwLjA1NSwgMC4wNDM3NSwgMC4wMjUsIDAuMDEyNSwgMCwgLTAuMDEsIC0wLjAyNSIsIFwKLSAgICAgICAgICAiMC4wNzEyNSwgMC4wNiwgMC4wNDEyNSwgMC4wMjg3NSwgMC4wMjI1LCAwLjAwNjI1LCAtMC4wMDg3NSIsIFwKLSAgICAgICAgICAiMC4wODYyNSwgMC4wNzUsIDAuMDU2MjUsIDAuMDQzNzUsIDAuMDMxMjUsIDAuMDE1LCAwLjAwNjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogcmVtb3ZhbF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlJOIjsKLSAgICAgIHNkZl9jb25kIDogIlJOID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHJlbW92YWxfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDI1LCAwLjAzNjI1LCAwLjA0ODc1LCAwLjA2MTI1LCAwLjA3Mzc1LCAwLjA5LCAwLjA5ODc1IiwgXAotICAgICAgICAgICIwLjAyLCAwLjAzMTI1LCAwLjA0Mzc1LCAwLjA1NjI1LCAwLjA2MjUsIDAuMDc4NzUsIDAuMDkzNzUiLCBcCi0gICAgICAgICAgIjAuMDA3NSwgMC4wMTg3NSwgMC4wMzEyNSwgMC4wNDM3NSwgMC4wNTYyNSwgMC4wNjYyNSwgMC4wODEyNSIsIFwKLSAgICAgICAgICAiLTAuMDA1LCAwLjAwNjI1LCAwLjAxODc1LCAwLjAzMTI1LCAwLjA0Mzc1LCAwLjA2LCAwLjA2ODc1IiwgXAotICAgICAgICAgICItMC4wMTEyNSwgMCwgMC4wMTI1LCAwLjAyNSwgMC4wMzEyNSwgMC4wNDc1LCAwLjA2MjUiLCBcCi0gICAgICAgICAgIi0wLjAyNzUsIC0wLjAxNjI1LCAtMC4wMDM3NSwgMC4wMDg3NSwgMC4wMjEyNSwgMC4wMzEyNSwgMC4wNDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAyNSwgLTAuMDEyNSwgMCwgMC4wMDYyNSwgMC4wMjI1LCAwLjAzMTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogU0RGRlNYNCAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChTREZGU1g0KSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuNzE5OTEzOwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIGZmIChOMzUsUUJJTlQpIHsKLSAgICBuZXh0X3N0YXRlIDogIigoU0UgU0kpICsgKCFTRSBEKSkiOwotICAgIGNsb2NrZWRfb24gOiAiQ0siOwotICAgIHByZXNldCA6ICIoIVNOKSI7Ci0gIH0KLSAgcGluKENLKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2MjczNDc7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjI3MjEyOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDYyNzM0NzsKLSAgICBjbG9jayA6IHRydWU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyODU5LCAwLjAwMjgzNCwgMC4wMDI4MTgsIDAuMDAyODIyLCAwLjAwMjgzMywgMC4wMDI4NSwgMC4wMDI4NzQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDY1OTEsIDAuMDA2NTY4LCAwLjAwNjU2MiwgMC4wMDY1NzYsIDAuMDA2NTkzLCAwLjAwNjYyOCwgMC4wMDY2NzQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFEJiFTRSYhU0kmU04iOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1NFX0VRXzBfQU5fU0lfRVFfMF9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMTY3NDM1LCAwLjE3Nzc0MywgMC4xOTA0ODIsIDAuMjAyNDEyLCAwLjIxMjk1NSwgMC4yMjc3NSwgMC4yMzkwNDUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjExMDMwNiwgMC4xMjAwMDksIDAuMTMyMzg5LCAwLjE0Mzg1LCAwLjE1Mzg2NCwgMC4xNjczNjYsIDAuMTc3Njg2Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihEKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2MTc5Mjk7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjE2NTQzOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDYxNzkyOTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDMxNTEsIDAuMDAzMTM0LCAwLjAwMzEyNSwgMC4wMDMxMTksIDAuMDAzMTE2LCAwLjAwMzExOCwgMC4wMDMxMjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDQ3NjYsIDAuMDA0NzU2LCAwLjAwNDc1MSwgMC4wMDQ3NDgsIDAuMDA0NzQ4LCAwLjAwNDc1LCAwLjAwNDc1MyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhU0UmU04iOwotICAgICAgc2RmX2NvbmQgOiAiU0VfRVFfMF9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjA1LCAtMC4wNDUsIC0wLjAzODc1LCAtMC4wMzI1LCAtMC4wMjYyNSwgLTAuMDE2MjUsIC0wLjAxMzc1IiwgXAotICAgICAgICAgICItMC4wNjEyNSwgLTAuMDU2MjUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzc1LCAtMC4wMjc1LCAtMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDczNzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjA0LCAtMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDgsIC0wLjA3NSwgLTAuMDY4NzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNDYyNSwgLTAuMDQzNzUiLCBcCi0gICAgICAgICAgIi0wLjA5MjUsIC0wLjA4NzUsIC0wLjA4MTI1LCAtMC4wNzUsIC0wLjA2ODc1LCAtMC4wNTg3NSwgLTAuMDU2MjUiLCBcCi0gICAgICAgICAgIi0wLjEwODc1LCAtMC4xMDM3NSwgLTAuMDkxMjUsIC0wLjA4NSwgLTAuMDg1LCAtMC4wNzUsIC0wLjA3MjUiLCBcCi0gICAgICAgICAgIi0wLjExNzUsIC0wLjExMjUsIC0wLjEwNjI1LCAtMC4xLCAtMC4wOTM3NSwgLTAuMDksIC0wLjA4MTI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDEyNSwgLTAuMDA3NSwgMC4wMDUsIDAuMDExMjUsIDAuMDIzNzUsIDAuMDMzNzUsIDAuMDQyNSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLjAwNjI1LCAwLjAxMjUsIDAuMDIyNSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAyNSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAuMDA2MjUsIDAuMDE2MjUsIDAuMDI1IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMC4wMSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjA0Mzc1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwMjUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA1ODc1LCAtMC4wNTM3NSwgLTAuMDQxMjUsIC0wLjAzNSwgLTAuMDI4NzUsIC0wLjAxMjUsIC0wLjAwMzc1IiwgXAotICAgICAgICAgICItMC4wNjc1LCAtMC4wNjI1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAyMTI1LCAtMC4wMTg3NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIVNFJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIlNFX0VRXzBfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTM3NSwgMC4wODI1LCAwLjA3NjI1LCAwLjA2Mzc1LCAwLjA1NzUsIDAuMDQ3NSwgMC4wNDUiLCBcCi0gICAgICAgICAgIjAuMTA1LCAwLjA5Mzc1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNTg3NSwgMC4wNSIsIFwKLSAgICAgICAgICAiMC4xMTc1LCAwLjEwNjI1LCAwLjA5Mzc1LCAwLjA4NzUsIDAuMDc1LCAwLjA3MTI1LCAwLjA2MjUiLCBcCi0gICAgICAgICAgIjAuMTIzNzUsIDAuMTE4NzUsIDAuMTA2MjUsIDAuMDkzNzUsIDAuMDg3NSwgMC4wNzc1LCAwLjA3NSIsIFwKLSAgICAgICAgICAiMC4xMzYyNSwgMC4xMjUsIDAuMTEyNSwgMC4xMDYyNSwgMC4xLCAwLjA5LCAwLjA4MTI1IiwgXAotICAgICAgICAgICIwLjE1MjUsIDAuMTQxMjUsIDAuMTI4NzUsIDAuMTIyNSwgMC4xMTYyNSwgMC4xMDYyNSwgMC4wOTc1IiwgXAotICAgICAgICAgICIwLjE2NzUsIDAuMTU2MjUsIDAuMTQzNzUsIDAuMTM3NSwgMC4xMzEyNSwgMC4xMjEyNSwgMC4xMTI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMSwgMC4wODg3NSwgMC4wNywgMC4wNTc1LCAwLjA1MTI1LCAwLjAzNSwgMC4wMjYyNSIsIFwKLSAgICAgICAgICAiMC4xMDUsIDAuMDkzNzUsIDAuMDgxMjUsIDAuMDY4NzUsIDAuMDU2MjUsIDAuMDQ2MjUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMTE3NSwgMC4xMDYyNSwgMC4wOTM3NSwgMC4wODEyNSwgMC4wNjg3NSwgMC4wNTI1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjEyMzc1LCAwLjExMjUsIDAuMSwgMC4wODc1LCAwLjA3NSwgMC4wNjUsIDAuMDUiLCBcCi0gICAgICAgICAgIjAuMTM2MjUsIDAuMTI1LCAwLjExMjUsIDAuMSwgMC4wODc1LCAwLjA3MTI1LCAwLjA2MjUiLCBcCi0gICAgICAgICAgIjAuMTQ2MjUsIDAuMTM1LCAwLjEyMjUsIDAuMTEsIDAuMTAzNzUsIDAuMDg3NSwgMC4wNzI1IiwgXAotICAgICAgICAgICIwLjE2MTI1LCAwLjE1LCAwLjEzNzUsIDAuMTI1LCAwLjExMjUsIDAuMDk2MjUsIDAuMDg3NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAxLjA0MTM7Ci0gICAgZnVuY3Rpb24gOiAiTjM1IjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBub25fdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJpc2luZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEyMDQxNywgMC4xOTI4NjgsIDAuMjY0MTQyLCAwLjMxNDg3NywgMC4zOTYyODcsIDAuNDY3ODQxLCAwLjU2OTIyOCIsIFwKLSAgICAgICAgICAiMC4xMzA1OTYsIDAuMjAzMTA0LCAwLjI3NDMwMywgMC4zMjUwMzksIDAuNDA2NjExLCAwLjQ3ODAxNywgMC41Nzk0MDUiLCBcCi0gICAgICAgICAgIjAuMTQzMjc4LCAwLjIxNTcxNCwgMC4yODcwMjYsIDAuMzM3OTI5LCAwLjQxOTY0OSwgMC40OTA3MzQsIDAuNTkxMjMyIiwgXAotICAgICAgICAgICIwLjE1NTExNiwgMC4yMjc2MTMsIDAuMjk4ODE4LCAwLjM0OTU1NCwgMC40MzE0MzUsIDAuNTAyNTIxLCAwLjYwMzkzNSIsIFwKLSAgICAgICAgICAiMC4xNjU1NzksIDAuMjM4MDA2LCAwLjMwOTI5MiwgMC4zNjAwMjgsIDAuNDQxMDgxLCAwLjUxMjk5LCAwLjYxNDM4OCIsIFwKLSAgICAgICAgICAiMC4xODAzMTcsIDAuMjUyNzc4LCAwLjMyNDA0MSwgMC4zNzQ5NTYsIDAuNDU2NzE1LCAwLjUyNzc2LCAwLjYyODczNCIsIFwKLSAgICAgICAgICAiMC4xOTE0NDEsIDAuMjYzODkxLCAwLjMzNTE2OCwgMC4zODU5MjIsIDAuNDY3NjE3LCAwLjUzODgwNywgMC42NDAyOTgiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzI0MTksIDAuMTc1NjQzLCAwLjMyMTgwNSwgMC40MjU3ODksIDAuNTkyNTc5LCAwLjczOTEwOCwgMC45NDg5NTUiLCBcCi0gICAgICAgICAgIjAuMDMyNTM1LCAwLjE3NTI5NywgMC4zMjE4MSwgMC40MjU3MjEsIDAuNTkyNzIxLCAwLjczODYwOSwgMC45NDg5NDkiLCBcCi0gICAgICAgICAgIjAuMDMyNDk1LCAwLjE3NTUxMywgMC4zMjE3ODUsIDAuNDI2MDYsIDAuNTkxOTg3LCAwLjczODc4NCwgMC45NDc5ODEiLCBcCi0gICAgICAgICAgIjAuMDMyNTI5LCAwLjE3NTI3NywgMC4zMjE4MDksIDAuNDI1Njg4LCAwLjU5MjQ3OSwgMC43MzkxMTcsIDAuOTQ4OTQ2IiwgXAotICAgICAgICAgICIwLjAzMjU0NiwgMC4xNzQ2MDIsIDAuMzIxODEsIDAuNDI1NzY1LCAwLjU5MjY5MSwgMC43Mzg1NjksIDAuOTQ4OTQxIiwgXAotICAgICAgICAgICIwLjAzMjU0OCwgMC4xNzU3NDMsIDAuMzIxODEsIDAuNDI2MDUsIDAuNTkxOTMsIDAuNzM4NjY1LCAwLjk0NzQ5IiwgXAotICAgICAgICAgICIwLjAzMjQ4NSwgMC4xNzQ4OCwgMC4zMjE4MDksIDAuNDI1ODYsIDAuNTkyNjMyLCAwLjczOTE5NSwgMC45NDg5MjkiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNDI2MTYsIDAuMjE3ODk0LCAwLjI5MTU3MywgMC4zNDM5OSwgMC40Mjc4ODIsIDAuNTAxMzI2LCAwLjYwNjA0NCIsIFwKLSAgICAgICAgICAiMC4xNTI5MjUsIDAuMjI4MjAxLCAwLjMwMTg4NSwgMC4zNTQyOTcsIDAuNDM4MTkzLCAwLjUxMTYzNCwgMC42MTYzNiIsIFwKLSAgICAgICAgICAiMC4xNjU2NTUsIDAuMjQwOTM4LCAwLjMxNDYxNiwgMC4zNjY5NDgsIDAuNDUwOTE0LCAwLjUyNDE1MiwgMC42MjkwODMiLCBcCi0gICAgICAgICAgIjAuMTc3NTgyLCAwLjI1Mjg2MiwgMC4zMjY1MzgsIDAuMzc4ODUxLCAwLjQ2MjgzNSwgMC41MzYwNTcsIDAuNjQxMDA0IiwgXAotICAgICAgICAgICIwLjE4ODEyNywgMC4yNjM0MDksIDAuMzM3MDgyLCAwLjM4OTQyOCwgMC40NzMzODIsIDAuNTQ2NjI4LCAwLjY1MTU1IiwgXAotICAgICAgICAgICIwLjIwMjkwMywgMC4yNzgxODIsIDAuMzUxODU4LCAwLjQwNDI0NiwgMC40ODgxNSwgMC41NjE4NTYsIDAuNjY2NjMzIiwgXAotICAgICAgICAgICIwLjIxNDIyMSwgMC4yODk0NTYsIDAuMzYzMDczLCAwLjQxNTU2NSwgMC40OTk0NzIsIDAuNTcyOTIsIDAuNjc3NjU4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDMyOTk4LCAwLjE3Njk0MSwgMC4zMjUxMzQsIDAuNDMxNzA5LCAwLjYwMTk3LCAwLjc1MDk2NSwgMC45NjMwNzEiLCBcCi0gICAgICAgICAgIjAuMDMzMDQyLCAwLjE3Njk2NiwgMC4zMjUxNCwgMC40MzE3MDksIDAuNjAxOTY3LCAwLjc1MDk2OCwgMC45NjMxNDUiLCBcCi0gICAgICAgICAgIjAuMDMzMDE0LCAwLjE3NjkyNywgMC4zMjUxMjksIDAuNDMxNTg0LCAwLjYwMTk3LCAwLjc0OTQ2NSwgMC45NjMwMDkiLCBcCi0gICAgICAgICAgIjAuMDMyOTU1LCAwLjE3NjkxOCwgMC4zMjUxMjEsIDAuNDMxNTk1LCAwLjYwMTk2LCAwLjc0OTUyOSwgMC45NjI5OTQiLCBcCi0gICAgICAgICAgIjAuMDMzMDM3LCAwLjE3NjkyNCwgMC4zMjUxMTksIDAuNDMxNTg4LCAwLjYwMTk1OSwgMC43NTA2NDUsIDAuOTYyOTg0IiwgXAotICAgICAgICAgICIwLjAzMzE3MywgMC4xNzY5NCwgMC4zMjUxMjksIDAuNDMxNjU2LCAwLjYwMTk3LCAwLjc1MTE4LCAwLjk2Mzk1IiwgXAotICAgICAgICAgICIwLjAzMzAxMiwgMC4xNzgyNjYsIDAuMzI1MjMsIDAuNDMxNjQsIDAuNjAxOTczLCAwLjc1MDkzNSwgMC45NjMxMzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiU04iOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHByZXNldDsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTE1NjUsIDAuMTgzODczLCAwLjI1NTE4MiwgMC4zMDU5OTIsIDAuMzg3NiwgMC40NTg1MzYsIDAuNTYwMTAyIiwgXAotICAgICAgICAgICIwLjEyMDk5OCwgMC4xOTMyOTksIDAuMjY0NjUsIDAuMzE1Njc5LCAwLjM5NzA2OCwgMC40Njc5OTEsIDAuNTY5NTkxIiwgXAotICAgICAgICAgICIwLjEzMjA0LCAwLjIwNDM0LCAwLjI3NTk1MywgMC4zMjY2NzEsIDAuNDA3OTg1LCAwLjQ3OTAwNywgMC41ODExNTEiLCBcCi0gICAgICAgICAgIjAuMTQ0NDE2LCAwLjIxNjcxNiwgMC4yODgxODksIDAuMzM4NTg2LCAwLjQyMDM0NywgMC40OTE0MzQsIDAuNTkyODkxIiwgXAotICAgICAgICAgICIwLjE1NTkwMiwgMC4yMjgyMDIsIDAuMjk5Njc1LCAwLjM1MDA4MSwgMC40MzE3NTgsIDAuNTAyOTIsIDAuNjA0MzY0IiwgXAotICAgICAgICAgICIwLjE3MjA4NSwgMC4yNDQzOTcsIDAuMzE1ODM1LCAwLjM2NjQ3OSwgMC40NDgxNDgsIDAuNTE4MjMxLCAwLjYyMDAxNSIsIFwKLSAgICAgICAgICAiMC4xODQ4MzYsIDAuMjU3MjU2LCAwLjMyODQ0MiwgMC4zNzk3MjMsIDAuNDYwODYzLCAwLjUzMTc4LCAwLjYzMzM4OSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzMjU3OSwgMC4xNzYxMzUsIDAuMzIxNzc2LCAwLjQyNTcxNiwgMC41OTI1MTYsIDAuNzM5MDY3LCAwLjk0ODg4OCIsIFwKLSAgICAgICAgICAiMC4wMzI2ODcsIDAuMTc2MTM3LCAwLjMyMTc5OCwgMC40MjUwMTgsIDAuNTkyMzg1LCAwLjczOTA2NywgMC45NDg4NzciLCBcCi0gICAgICAgICAgIjAuMDMyNTczLCAwLjE3NjEzLCAwLjMyMTc3MiwgMC40MjYxMDgsIDAuNTkyNjI4LCAwLjczOTA1OCwgMC45NDg4NDQiLCBcCi0gICAgICAgICAgIjAuMDMyNjE1LCAwLjE3NjEyOSwgMC4zMjE4LCAwLjQyNTExNCwgMC41OTI4MjIsIDAuNzM5MDUyLCAwLjk0ODg3NiIsIFwKLSAgICAgICAgICAiMC4wMzI2MDIsIDAuMTc2MTI3LCAwLjMyMTc5OCwgMC40MjUzNDYsIDAuNTkyNzY1LCAwLjczOTA1NCwgMC45NDg4NzgiLCBcCi0gICAgICAgICAgIjAuMDMyNTg5LCAwLjE3NjA4NCwgMC4zMjE3OCwgMC40MjYwMTksIDAuNTkyNTkxLCAwLjczOTA1NywgMC45NDg4MTIiLCBcCi0gICAgICAgICAgIjAuMDMyOTA2LCAwLjE3NjE3NSwgMC4zMjE4MDYsIDAuNDI1NTE1LCAwLjU5MjU2MiwgMC43MzkwNTgsIDAuOTQ4ODUxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA3ODk5LCAwLjAwODA3OSwgMC4wMDgxMDQsIDAuMDA4MTEsIDAuMDA4MTE3LCAwLjAwODEyMSwgMC4wMDgxMjQiLCBcCi0gICAgICAgICAgIjAuMDA3ODgxLCAwLjAwODA2MiwgMC4wMDgwODYsIDAuMDA4MDkzLCAwLjAwODEwMSwgMC4wMDgxMDMsIDAuMDA4MTA2IiwgXAotICAgICAgICAgICIwLjAwNzg3MywgMC4wMDgwNTQsIDAuMDA4MDc4LCAwLjAwODA4NCwgMC4wMDgwOTIsIDAuMDA4MDk1LCAwLjAwODA5NyIsIFwKLSAgICAgICAgICAiMC4wMDc4NzMsIDAuMDA4MDU0LCAwLjAwODA3OCwgMC4wMDgwODUsIDAuMDA4MDkxLCAwLjAwODA5NSwgMC4wMDgwOTciLCBcCi0gICAgICAgICAgIjAuMDA3ODgyLCAwLjAwODA2MywgMC4wMDgwODgsIDAuMDA4MDk2LCAwLjAwODEsIDAuMDA4MTA0LCAwLjAwODEwOCIsIFwKLSAgICAgICAgICAiMC4wMDc4ODcsIDAuMDA4MDY5LCAwLjAwODA5MywgMC4wMDgxLCAwLjAwODEwNiwgMC4wMDgxMDksIDAuMDA4MTEyIiwgXAotICAgICAgICAgICIwLjAwNzg5OCwgMC4wMDgwODEsIDAuMDA4MTA1LCAwLjAwODExMiwgMC4wMDgxMTgsIDAuMDA4MTIyLCAwLjAwODEyNCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA3NTkxLCAwLjAwNzc4NSwgMC4wMDc4MTMsIDAuMDA3ODIyLCAwLjAwNzgzLCAwLjAwNzgzNSwgMC4wMDc4MzciLCBcCi0gICAgICAgICAgIjAuMDA3NTc5LCAwLjAwNzc3MiwgMC4wMDc4LCAwLjAwNzgwOCwgMC4wMDc4MTcsIDAuMDA3ODIxLCAwLjAwNzgyMyIsIFwKLSAgICAgICAgICAiMC4wMDc1NzUsIDAuMDA3NzcsIDAuMDA3Nzk3LCAwLjAwNzgwNywgMC4wMDc4MTQsIDAuMDA3ODE5LCAwLjAwNzgyMSIsIFwKLSAgICAgICAgICAiMC4wMDc1ODQsIDAuMDA3Nzc5LCAwLjAwNzgwNSwgMC4wMDc4MTUsIDAuMDA3ODIzLCAwLjAwNzgyNywgMC4wMDc4MjkiLCBcCi0gICAgICAgICAgIjAuMDA3NiwgMC4wMDc3OTMsIDAuMDA3ODIxLCAwLjAwNzgzMSwgMC4wMDc4MzksIDAuMDA3ODQxLCAwLjAwNzg0NSIsIFwKLSAgICAgICAgICAiMC4wMDc2MTgsIDAuMDA3ODA4LCAwLjAwNzgzNiwgMC4wMDc4NDUsIDAuMDA3ODUyLCAwLjAwNzg1NiwgMC4wMDc4NTgiLCBcCi0gICAgICAgICAgIjAuMDA3NjMxLCAwLjAwNzgyNiwgMC4wMDc4NTUsIDAuMDA3ODYzLCAwLjAwNzg3MSwgMC4wMDc4NzUsIDAuMDA3ODc4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiU04iOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA4MDA4LCAwLjAwODE4NiwgMC4wMDgyMSwgMC4wMDgyMTcsIDAuMDA4MjI3LCAwLjAwODIyNywgMC4wMDgyMyIsIFwKLSAgICAgICAgICAiMC4wMDc5OTMsIDAuMDA4MTcyLCAwLjAwODE5NywgMC4wMDgyMDQsIDAuMDA4MjEsIDAuMDA4MjE0LCAwLjAwODIxNyIsIFwKLSAgICAgICAgICAiMC4wMDc5ODQsIDAuMDA4MTYzLCAwLjAwODE4OCwgMC4wMDgxOTUsIDAuMDA4MjAzLCAwLjAwODIwNSwgMC4wMDgyMDciLCBcCi0gICAgICAgICAgIjAuMDA3OTc2LCAwLjAwODE1NSwgMC4wMDgxOCwgMC4wMDgxODcsIDAuMDA4MTk0LCAwLjAwODIsIDAuMDA4MjAzIiwgXAotICAgICAgICAgICIwLjAwNzk3MiwgMC4wMDgxNTEsIDAuMDA4MTc1LCAwLjAwODE4MywgMC4wMDgxODksIDAuMDA4MTk1LCAwLjAwODE5OCIsIFwKLSAgICAgICAgICAiMC4wMDc5NywgMC4wMDgxNTIsIDAuMDA4MTc3LCAwLjAwODE4NywgMC4wMDgxOTEsIDAuMDA4MTk0LCAwLjAwODE5NyIsIFwKLSAgICAgICAgICAiMC4wMDc5NzUsIDAuMDA4MTYsIDAuMDA4MTg2LCAwLjAwODE5NCwgMC4wMDgyMDEsIDAuMDA4MjA0LCAwLjAwODIwOCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihzY2FsYXIpIHsKLSAgICAgICAgdmFsdWVzKCIwIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihRTikgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAxLjAzNjEzOwotICAgIGZ1bmN0aW9uIDogIlFCSU5UIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBub25fdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJpc2luZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE2NzQzOCwgMC4yNDAzNjEsIDAuMzEzMTQ2LCAwLjM2NTEyMSwgMC40NDgyOTksIDAuNTIxMDk5LCAwLjYyNTExNCIsIFwKLSAgICAgICAgICAiMC4xNzc3NDMsIDAuMjUwNjY5LCAwLjMyMzQ1NSwgMC4zNzU0MywgMC40NTg2MDksIDAuNTMxNDA5LCAwLjYzNTQyIiwgXAotICAgICAgICAgICIwLjE5MDQ4NSwgMC4yNjM0MDUsIDAuMzM2MTksIDAuMzg4MTUyLCAwLjQ3MTM0MSwgMC41NDQxMzcsIDAuNjQ4MTYiLCBcCi0gICAgICAgICAgIjAuMjAyNDEyLCAwLjI3NTMzMSwgMC4zNDgxMTUsIDAuNDAwMDc1LCAwLjQ4MzI2NiwgMC41NTYwNjQsIDAuNjYwMDg2IiwgXAotICAgICAgICAgICIwLjIxMjk1NSwgMC4yODU4NzgsIDAuMzU4NjYzLCAwLjQxMDYyNywgMC40OTM4MTQsIDAuNTY2NjEsIDAuNjcwNjM0IiwgXAotICAgICAgICAgICIwLjIyNzc1MSwgMC4zMDA2NjEsIDAuMzczNDQ1LCAwLjQyNTQyMiwgMC41MDg2MDMsIDAuNTgxNDc5LCAwLjY4NTQ2NiIsIFwKLSAgICAgICAgICAiMC4yMzkwNDUsIDAuMzExOTc0LCAwLjM4NDc0MywgMC40MzY3MjcsIDAuNTE5OTA3LCAwLjU5MjcwNywgMC42OTY3MjIiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzE1OSwgMC4xNzczOCwgMC4zMjY3MywgMC40MzM1ODUsIDAuNjA0NDM3LCAwLjc1NDAwNywgMC45NjcyODgiLCBcCi0gICAgICAgICAgIjAuMDMxNTc5LCAwLjE3NzM3OSwgMC4zMjY3MywgMC40MzM1ODYsIDAuNjA0NDUzLCAwLjc1NDAxOCwgMC45NjcyODkiLCBcCi0gICAgICAgICAgIjAuMDMxNTg5LCAwLjE3NzM3OSwgMC4zMjY3MzIsIDAuNDMzNTM5LCAwLjYwNDQxNSwgMC43NTMwMTEsIDAuOTY3MjY1IiwgXAotICAgICAgICAgICIwLjAzMTU4OSwgMC4xNzczNzksIDAuMzI2NzIzLCAwLjQzMzUwNSwgMC42MDQ0LCAwLjc1MzA0LCAwLjk2NzI2NiIsIFwKLSAgICAgICAgICAiMC4wMzE1ODksIDAuMTc3Mzc5LCAwLjMyNjcyNCwgMC40MzM1MzUsIDAuNjA0NDAxLCAwLjc1MzczNSwgMC45NjcyNjIiLCBcCi0gICAgICAgICAgIjAuMDMxNTc1LCAwLjE3NzM3OSwgMC4zMjY3MzIsIDAuNDMzNTU3LCAwLjYwNDM5OSwgMC43NTQzMDksIDAuOTY3ODgiLCBcCi0gICAgICAgICAgIjAuMDMxNTc5LCAwLjE3NzUzNywgMC4zMjY4MTEsIDAuNDMzNTU1LCAwLjYwNDQsIDAuNzUzOTU1LCAwLjk2NzI5NyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE0NjcxNiwgMC4yMjA3MTQsIDAuMjk0NDcyLCAwLjM0NzE0NywgMC40MzE0MzQsIDAuNTA1MjkxLCAwLjYxMDY1OSIsIFwKLSAgICAgICAgICAiMC4xNTY4OTQsIDAuMjMwODg5LCAwLjMwNDY0NywgMC4zNTczMjIsIDAuNDQxNjU1LCAwLjUxNTQ2NywgMC42MjA4MzYiLCBcCi0gICAgICAgICAgIjAuMTY5NTUzLCAwLjI0MzU2MSwgMC4zMTczMzIsIDAuMzcwMDIzLCAwLjQ1NDM4MiwgMC41MjgxNTUsIDAuNjMzNTE3IiwgXAotICAgICAgICAgICIwLjE4MTQxNiwgMC4yNTU0MTQsIDAuMzI5MTY3LCAwLjM4MTg0MiwgMC40NjYyMTYsIDAuNTM5OTg2LCAwLjY0NTM1OSIsIFwKLSAgICAgICAgICAiMC4xOTE4NjgsIDAuMjY1ODYyLCAwLjMzOTYyNSwgMC4zOTIyOTksIDAuNDc2NTU5LCAwLjU1MDQ0MywgMC42NTU4MTIiLCBcCi0gICAgICAgICAgIjAuMjA2NjA3LCAwLjI4MDYwNywgMC4zNTQzNzUsIDAuNDA3MDY3LCAwLjQ5MTQzLCAwLjU2NTE5NywgMC42NzA1NzgiLCBcCi0gICAgICAgICAgIjAuMjE3NzQ5LCAwLjI5MTczNywgMC4zNjU0OTcsIDAuNDE4MTc5LCAwLjUwMjUzMiwgMC41NzYzMTEsIDAuNjgxNjk2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDMxMzU1LCAwLjE3NzM1NywgMC4zMjY0NjgsIDAuNDMzMDMyLCAwLjYwMzc0NywgMC43NTMzNTksIDAuOTY2NjcyIiwgXAotICAgICAgICAgICIwLjAzMTM1OSwgMC4xNzc0MzUsIDAuMzI2NDY0LCAwLjQzMzAxLCAwLjYwMzg0LCAwLjc1MjAzNywgMC45NjY2MzgiLCBcCi0gICAgICAgICAgIjAuMDMxMzYyLCAwLjE3NzM2MiwgMC4zMjY0NTQsIDAuNDMzMTIyLCAwLjYwMjk2NSwgMC43NTIwNjcsIDAuOTY1NzQ0IiwgXAotICAgICAgICAgICIwLjAzMTM1OCwgMC4xNzc0NDMsIDAuMzI2NDYyLCAwLjQzMzAwMywgMC42MDI5NTEsIDAuNzUzMzUyLCAwLjk2NjYzNSIsIFwKLSAgICAgICAgICAiMC4wMzEzNjEsIDAuMTc3MzQyLCAwLjMyNjQ2NywgMC40MzMwMTksIDAuNjAzMTgzLCAwLjc1MjAzNiwgMC45NjY2MjUiLCBcCi0gICAgICAgICAgIjAuMDMxMzM2LCAwLjE3NzM1NCwgMC4zMjY0NTQsIDAuNDMzMTAyLCAwLjYwMjk1LCAwLjc1MjA0NSwgMC45NjUxNzMiLCBcCi0gICAgICAgICAgIjAuMDMxMzU3LCAwLjE3NzM2NCwgMC4zMjY0NTYsIDAuNDMzMDI5LCAwLjYwMzc3MSwgMC43NTMyODksIDAuOTY2NjA0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiBjbGVhcjsKLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMzc3NjMsIDAuMjExNzc1LCAwLjI4NTU0MywgMC4zMzgxNzksIDAuNDIyNTYzLCAwLjQ5NjMwOSwgMC42MDE3MDYiLCBcCi0gICAgICAgICAgIjAuMTQ3MTk5LCAwLjIyMTIxLCAwLjI5NDk2OCwgMC4zNDc2ODQsIDAuNDMyMDAzLCAwLjUwNTc0NywgMC42MTExMzkiLCBcCi0gICAgICAgICAgIjAuMTU4MjA5LCAwLjIzMjIzOCwgMC4zMDYwMzgsIDAuMzU4NzIxLCAwLjQ0MzAzMiwgMC41MTY3OTIsIDAuNjIyMjgxIiwgXAotICAgICAgICAgICIwLjE3MDU5MiwgMC4yNDQ2NDEsIDAuMzE4NDE5LCAwLjM3MTA2NSwgMC40NTU0MjMsIDAuNTI5MTk3LCAwLjYzNDU2NiIsIFwKLSAgICAgICAgICAiMC4xODIwNzYsIDAuMjU2MTIzLCAwLjMyOTksIDAuMzgyNTQ2LCAwLjQ2Njg5MywgMC41NDA2NzgsIDAuNjQ2MDQ1IiwgXAotICAgICAgICAgICIwLjE5ODI3MSwgMC4yNzIyNzIsIDAuMzQ2MDU0LCAwLjM5ODcyMiwgMC40ODMwODIsIDAuNTU2NywgMC42NjIyMDMiLCBcCi0gICAgICAgICAgIjAuMjExMDQ5LCAwLjI4NTExLCAwLjM1ODg3MywgMC40MTE2MDgsIDAuNDk1OTAxLCAwLjU2OTY0NiwgMC42NzUwMzgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzEzODUsIDAuMTc3MzcyLCAwLjMyNjUwMiwgMC40MzI3OTQsIDAuNjAzODcxLCAwLjc1MzI2NCwgMC45NjY1NTIiLCBcCi0gICAgICAgICAgIjAuMDMxMzc3LCAwLjE3NzM2OCwgMC4zMjY1MTgsIDAuNDMyNzM2LCAwLjYwMzkxOCwgMC43NTMyMDQsIDAuOTY2NTkiLCBcCi0gICAgICAgICAgIjAuMDMxMzg4LCAwLjE3NzM2MSwgMC4zMjY1MDIsIDAuNDMzMTksIDAuNjAzOTIxLCAwLjc1MzE5OSwgMC45NjY1NzciLCBcCi0gICAgICAgICAgIjAuMDMxMzgyLCAwLjE3NzM4NSwgMC4zMjY1MywgMC40MzI5MjIsIDAuNjAzODk5LCAwLjc1MzE5MSwgMC45NjY2MDkiLCBcCi0gICAgICAgICAgIjAuMDMxMzgxLCAwLjE3NzM4MSwgMC4zMjY1MjksIDAuNDMyOTI4LCAwLjYwMzg3MSwgMC43NTMyMiwgMC45NjY1MDYiLCBcCi0gICAgICAgICAgIjAuMDMxMzg0LCAwLjE3NzM4MiwgMC4zMjY1MTcsIDAuNDMzMDk1LCAwLjYwMzkwOSwgMC43NTMxMjQsIDAuOTY2NDMiLCBcCi0gICAgICAgICAgIjAuMDMxMzgxLCAwLjE3NzQxNCwgMC4zMjY1MDYsIDAuNDMyODA1LCAwLjYwMzg4MywgMC43NTMyNDYsIDAuOTY2NTcyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA3NTkxLCAwLjAwNzc4NSwgMC4wMDc4MTMsIDAuMDA3ODIyLCAwLjAwNzgzLCAwLjAwNzgzNSwgMC4wMDc4MzciLCBcCi0gICAgICAgICAgIjAuMDA3NTc5LCAwLjAwNzc3MiwgMC4wMDc4LCAwLjAwNzgwOCwgMC4wMDc4MTcsIDAuMDA3ODIxLCAwLjAwNzgyMyIsIFwKLSAgICAgICAgICAiMC4wMDc1NzUsIDAuMDA3NzcsIDAuMDA3Nzk3LCAwLjAwNzgwNywgMC4wMDc4MTQsIDAuMDA3ODE5LCAwLjAwNzgyMSIsIFwKLSAgICAgICAgICAiMC4wMDc1ODQsIDAuMDA3Nzc5LCAwLjAwNzgwNSwgMC4wMDc4MTUsIDAuMDA3ODIzLCAwLjAwNzgyNywgMC4wMDc4MjkiLCBcCi0gICAgICAgICAgIjAuMDA3NiwgMC4wMDc3OTMsIDAuMDA3ODIxLCAwLjAwNzgzMSwgMC4wMDc4MzksIDAuMDA3ODQxLCAwLjAwNzg0NSIsIFwKLSAgICAgICAgICAiMC4wMDc2MTgsIDAuMDA3ODA4LCAwLjAwNzgzNiwgMC4wMDc4NDUsIDAuMDA3ODUyLCAwLjAwNzg1NiwgMC4wMDc4NTgiLCBcCi0gICAgICAgICAgIjAuMDA3NjMxLCAwLjAwNzgyNiwgMC4wMDc4NTUsIDAuMDA3ODYzLCAwLjAwNzg3MSwgMC4wMDc4NzUsIDAuMDA3ODc4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDc4OTksIDAuMDA4MDc5LCAwLjAwODEwNCwgMC4wMDgxMSwgMC4wMDgxMTcsIDAuMDA4MTIxLCAwLjAwODEyNCIsIFwKLSAgICAgICAgICAiMC4wMDc4ODEsIDAuMDA4MDYyLCAwLjAwODA4NiwgMC4wMDgwOTMsIDAuMDA4MTAxLCAwLjAwODEwMywgMC4wMDgxMDYiLCBcCi0gICAgICAgICAgIjAuMDA3ODczLCAwLjAwODA1NCwgMC4wMDgwNzgsIDAuMDA4MDg0LCAwLjAwODA5MiwgMC4wMDgwOTUsIDAuMDA4MDk3IiwgXAotICAgICAgICAgICIwLjAwNzg3MywgMC4wMDgwNTQsIDAuMDA4MDc4LCAwLjAwODA4NSwgMC4wMDgwOTEsIDAuMDA4MDk1LCAwLjAwODA5NyIsIFwKLSAgICAgICAgICAiMC4wMDc4ODIsIDAuMDA4MDYzLCAwLjAwODA4OCwgMC4wMDgwOTYsIDAuMDA4MSwgMC4wMDgxMDQsIDAuMDA4MTA4IiwgXAotICAgICAgICAgICIwLjAwNzg4NywgMC4wMDgwNjksIDAuMDA4MDkzLCAwLjAwODEsIDAuMDA4MTA2LCAwLjAwODEwOSwgMC4wMDgxMTIiLCBcCi0gICAgICAgICAgIjAuMDA3ODk4LCAwLjAwODA4MSwgMC4wMDgxMDUsIDAuMDA4MTEyLCAwLjAwODExOCwgMC4wMDgxMjIsIDAuMDA4MTI0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiU04iOwotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA4MDA4LCAwLjAwODE4NiwgMC4wMDgyMSwgMC4wMDgyMTcsIDAuMDA4MjI3LCAwLjAwODIyNywgMC4wMDgyMyIsIFwKLSAgICAgICAgICAiMC4wMDc5OTMsIDAuMDA4MTcyLCAwLjAwODE5NywgMC4wMDgyMDQsIDAuMDA4MjEsIDAuMDA4MjE0LCAwLjAwODIxNyIsIFwKLSAgICAgICAgICAiMC4wMDc5ODQsIDAuMDA4MTYzLCAwLjAwODE4OCwgMC4wMDgxOTUsIDAuMDA4MjAzLCAwLjAwODIwNSwgMC4wMDgyMDciLCBcCi0gICAgICAgICAgIjAuMDA3OTc2LCAwLjAwODE1NSwgMC4wMDgxOCwgMC4wMDgxODcsIDAuMDA4MTk0LCAwLjAwODIsIDAuMDA4MjAzIiwgXAotICAgICAgICAgICIwLjAwNzk3MiwgMC4wMDgxNTEsIDAuMDA4MTc1LCAwLjAwODE4MywgMC4wMDgxODksIDAuMDA4MTk1LCAwLjAwODE5OCIsIFwKLSAgICAgICAgICAiMC4wMDc5NywgMC4wMDgxNTIsIDAuMDA4MTc3LCAwLjAwODE4NywgMC4wMDgxOTEsIDAuMDA4MTk0LCAwLjAwODE5NyIsIFwKLSAgICAgICAgICAiMC4wMDc5NzUsIDAuMDA4MTYsIDAuMDA4MTg2LCAwLjAwODE5NCwgMC4wMDgyMDEsIDAuMDA4MjA0LCAwLjAwODIwOCIpOwotICAgICAgfQotICAgICAgcmlzZV9wb3dlcihzY2FsYXIpIHsKLSAgICAgICAgdmFsdWVzKCIwIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTRSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxMzg4MjU7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxMzg3NDg7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxMzg4MjU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA0NDc5LCAwLjAwNDQ1OCwgMC4wMDQ0NjQsIDAuMDA0NDY2LCAwLjAwNDQ4MywgMC4wMDQ1MDUsIDAuMDA0NTMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDU5MDQsIDAuMDA1ODY4LCAwLjAwNTg3MiwgMC4wMDU4NzEsIDAuMDA1ODgxLCAwLjAwNTkyLCAwLjAwNTk1NyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJTTiA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMjUsIC0wLjAxMzc1LCAtMC4wMDEyNSwgMC4wMDUsIDAuMDE3NSwgMC4wMjc1LCAwLjAzNjI1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDI1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMC4wMDYyNSwgMC4wMTYyNSwgMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLjAwMzc1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjA1NSwgLTAuMDQzNzUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAxMjUsIC0wLjAwMjUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA2MTI1LCAtMC4wNSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAxODc1LCAtMC4wMDg3NSwgMCIsIFwKLSAgICAgICAgICAiLTAuMDcxMjUsIC0wLjA2LCAtMC4wNDc1LCAtMC4wNDEyNSwgLTAuMDI4NzUsIC0wLjAxODc1LCAtMC4wMSIsIFwKLSAgICAgICAgICAiLTAuMDczNzUsIC0wLjA2ODc1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjAzNzUsIC0wLjAyNzUsIC0wLjAxODc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDA2MjUsIC0wLjAwMTI1LCAwLjAxMTI1LCAwLjAyMzc1LCAwLjAzLCAwLjA0LCAwLjA0ODc1IiwgXAotICAgICAgICAgICItMC4wMTc1LCAtMC4wMDYyNSwgMCwgMC4wMTI1LCAwLjAxODc1LCAwLjAyODc1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLCAwLjAwNjI1LCAwLjAyMjUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIDAsIDAuMDEsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwMjUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA1ODc1LCAtMC4wNDc1LCAtMC4wNDEyNSwgLTAuMDM1LCAtMC4wMjI1LCAtMC4wMTI1LCAtMC4wMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDYxMjUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAyNzUsIC0wLjAxODc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJTTiA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDYyNSwgMC4wOTUsIDAuMDgyNSwgMC4wNywgMC4wNTc1LCAwLjA0MTI1LCAwLjAzMjUiLCBcCi0gICAgICAgICAgIjAuMTE3NSwgMC4xMDYyNSwgMC4wODc1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNTI1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjEyMzc1LCAwLjExMjUsIDAuMSwgMC4wODc1LCAwLjA3NSwgMC4wNjUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIjAuMTM2MjUsIDAuMTI1LCAwLjEwNjI1LCAwLjA5Mzc1LCAwLjA4NzUsIDAuMDc3NSwgMC4wNjg3NSIsIFwKLSAgICAgICAgICAiMC4xNDI1LCAwLjEzMTI1LCAwLjExODc1LCAwLjEwNjI1LCAwLjA5Mzc1LCAwLjA4Mzc1LCAwLjA4MTI1IiwgXAotICAgICAgICAgICIwLjE1MjUsIDAuMTQxMjUsIDAuMTI4NzUsIDAuMTIyNSwgMC4xMTYyNSwgMC4xMDYyNSwgMC4wOTc1IiwgXAotICAgICAgICAgICIwLjE2NzUsIDAuMTU2MjUsIDAuMTQzNzUsIDAuMTM3NSwgMC4xMjUsIDAuMTIxMjUsIDAuMTEyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwNjI1LCAwLjA5NSwgMC4wODI1LCAwLjA3NjI1LCAwLjA2Mzc1LCAwLjA2LCAwLjA1MTI1IiwgXAotICAgICAgICAgICIwLjExNzUsIDAuMTA2MjUsIDAuMDkzNzUsIDAuMDgxMjUsIDAuMDc1LCAwLjA2NSwgMC4wNjI1IiwgXAotICAgICAgICAgICIwLjEyMzc1LCAwLjExMjUsIDAuMSwgMC4wOTM3NSwgMC4wODc1LCAwLjA3NzUsIDAuMDY4NzUiLCBcCi0gICAgICAgICAgIjAuMTMsIDAuMTE4NzUsIDAuMTEyNSwgMC4xLCAwLjA5Mzc1LCAwLjA4Mzc1LCAwLjA4MTI1IiwgXAotICAgICAgICAgICIwLjEzNjI1LCAwLjEyNSwgMC4xMTg3NSwgMC4xMDYyNSwgMC4xLCAwLjA5LCAwLjA4NzUiLCBcCi0gICAgICAgICAgIjAuMTUyNSwgMC4xNDEyNSwgMC4xMjI1LCAwLjExNjI1LCAwLjExLCAwLjEsIDAuMDkxMjUiLCBcCi0gICAgICAgICAgIjAuMTYxMjUsIDAuMTUsIDAuMTM3NSwgMC4xMjUsIDAuMTEyNSwgMC4xMDg3NSwgMC4xIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTSSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjMyMzk0OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYzMDgxODsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2MzIzOTQ7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyOTc2LCAwLjAwMjk2MSwgMC4wMDI5NTIsIDAuMDAyOTQ2LCAwLjAwMjk0NCwgMC4wMDI5NDUsIDAuMDAyOTU4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA0ODU4LCAwLjAwNDg0OCwgMC4wMDQ4NDMsIDAuMDA0ODQxLCAwLjAwNDg0MSwgMC4wMDQ4NDEsIDAuMDA0ODQ2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlNFJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIlNFX0VRXzFfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wNSwgLTAuMDQ1LCAtMC4wMzg3NSwgLTAuMDMyNSwgLTAuMDI2MjUsIC0wLjAxNjI1LCAtMC4wMTM3NSIsIFwKLSAgICAgICAgICAiLTAuMDYxMjUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAyNzUsIC0wLjAxODc1IiwgXAotICAgICAgICAgICItMC4wNzM3NSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDQsIC0wLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wOCwgLTAuMDc1LCAtMC4wNjg3NSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA0NjI1LCAtMC4wNDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDkyNSwgLTAuMDg3NSwgLTAuMDc1LCAtMC4wNjg3NSwgLTAuMDY4NzUsIC0wLjA1ODc1LCAtMC4wNSIsIFwKLSAgICAgICAgICAiLTAuMTA4NzUsIC0wLjA5NzUsIC0wLjA5MTI1LCAtMC4wODUsIC0wLjA3ODc1LCAtMC4wNzUsIC0wLjA2NjI1IiwgXAotICAgICAgICAgICItMC4xMTc1LCAtMC4xMTI1LCAtMC4xMDYyNSwgLTAuMSwgLTAuMDkzNzUsIC0wLjA5LCAtMC4wODEyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAxMjUsIC0wLjAwNzUsIDAuMDA1LCAwLjAxNzUsIDAuMDIzNzUsIDAuMDMzNzUsIDAuMDQyNSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLjAwNjI1LCAwLjAxMjUsIDAuMDI4NzUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMjUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLjAwNjI1LCAwLjAxNjI1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAuMDEsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwMjUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA1ODc1LCAtMC4wNTM3NSwgLTAuMDQxMjUsIC0wLjAzNSwgLTAuMDIyNSwgLTAuMDEyNSwgLTAuMDAzNzUiLCBcCi0gICAgICAgICAgIi0wLjA2NzUsIC0wLjA2MjUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDIxMjUsIC0wLjAxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlNFJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIlNFX0VRXzFfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTM3NSwgMC4wODI1LCAwLjA3LCAwLjA2Mzc1LCAwLjA1NzUsIDAuMDQ3NSwgMC4wMzg3NSIsIFwKLSAgICAgICAgICAiMC4xMDUsIDAuMDkzNzUsIDAuMDgxMjUsIDAuMDc1LCAwLjA2MjUsIDAuMDU4NzUsIDAuMDUiLCBcCi0gICAgICAgICAgIjAuMTExMjUsIDAuMTA2MjUsIDAuMDkzNzUsIDAuMDgxMjUsIDAuMDc1LCAwLjA2NSwgMC4wNjI1IiwgXAotICAgICAgICAgICIwLjEyMzc1LCAwLjExMjUsIDAuMSwgMC4wOTM3NSwgMC4wODc1LCAwLjA3NzUsIDAuMDY4NzUiLCBcCi0gICAgICAgICAgIjAuMTM2MjUsIDAuMTI1LCAwLjExMjUsIDAuMTA2MjUsIDAuMSwgMC4wOSwgMC4wODEyNSIsIFwKLSAgICAgICAgICAiMC4xNTI1LCAwLjE0MTI1LCAwLjEyODc1LCAwLjEyMjUsIDAuMTE2MjUsIDAuMTA2MjUsIDAuMDk3NSIsIFwKLSAgICAgICAgICAiMC4xNjc1LCAwLjE1NjI1LCAwLjE0Mzc1LCAwLjEzMTI1LCAwLjEyNSwgMC4xMTUsIDAuMTEyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5Mzc1LCAwLjA4ODc1LCAwLjA3LCAwLjA1NzUsIDAuMDUxMjUsIDAuMDM1LCAwLjAyNjI1IiwgXAotICAgICAgICAgICIwLjEwNSwgMC4wOTM3NSwgMC4wODEyNSwgMC4wNjg3NSwgMC4wNTYyNSwgMC4wNDYyNSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4xMTc1LCAwLjEwNjI1LCAwLjA4NzUsIDAuMDc1LCAwLjA2ODc1LCAwLjA1MjUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMTIzNzUsIDAuMTEyNSwgMC4xLCAwLjA4NzUsIDAuMDc1LCAwLjA2NSwgMC4wNSIsIFwKLSAgICAgICAgICAiMC4xMzYyNSwgMC4xMjUsIDAuMTA2MjUsIDAuMSwgMC4wODc1LCAwLjA3MTI1LCAwLjA2MjUiLCBcCi0gICAgICAgICAgIjAuMTQ2MjUsIDAuMTM1LCAwLjEyMjUsIDAuMTEsIDAuMDk3NSwgMC4wODc1LCAwLjA3MjUiLCBcCi0gICAgICAgICAgIjAuMTYxMjUsIDAuMTUsIDAuMTM3NSwgMC4xMjUsIDAuMTEyNSwgMC4wOTYyNSwgMC4wODc1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTTikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNDM1NzE7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxMzQ1NzU7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNDM1NzE7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNDUzLCAwLjAwMDQ1MiwgMC4wMDA0NTIsIDAuMDAwNDUyLCAwLjAwMDQ1MiwgMC4wMDA0NTIsIDAuMDAwNDUyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNDU5LCAwLjAwMDQ1NCwgMC4wMDA0NTQsIDAuMDAwNDU0LCAwLjAwMDQ1NCwgMC4wMDA0NTQsIDAuMDAwNDU0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRCYhU0UmIVNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9TRV9FUV8wX0FOX1NJX0VRXzAgPT0gMSdiMSI7Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4xMzc3NjMsIDAuMTQ3MTk5LCAwLjE1ODIwOSwgMC4xNzA1OTIsIDAuMTgyMDc2LCAwLjE5ODI3LCAwLjIxMTA0OSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJlY292ZXJ5X3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUQmIVNFJiFTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fU0VfRVFfMF9BTl9TSV9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHJlY292ZXJ5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMjUsIDAuMDAxMjUsIC0wLjAxMTI1LCAtMC4wMjM3NSwgLTAuMDM2MjUsIC0wLjA1MjUsIC0wLjA2MTI1IiwgXAotICAgICAgICAgICIwLjAyMzc1LCAwLjAxMjUsIC0wLjAwNjI1LCAtMC4wMTg3NSwgLTAuMDI1LCAtMC4wNDEyNSwgLTAuMDU2MjUiLCBcCi0gICAgICAgICAgIjAuMDMsIDAuMDE4NzUsIDAuMDA2MjUsIC0wLjAwNjI1LCAtMC4wMTg3NSwgLTAuMDM1LCAtMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4wNDI1LCAwLjAzMTI1LCAwLjAxODc1LCAwLjAwNjI1LCAtMC4wMDYyNSwgLTAuMDIyNSwgLTAuMDM3NSIsIFwKLSAgICAgICAgICAiMC4wNDg3NSwgMC4wNDM3NSwgMC4wMjUsIDAuMDEyNSwgMCwgLTAuMDEsIC0wLjAyNSIsIFwKLSAgICAgICAgICAiMC4wNzEyNSwgMC4wNiwgMC4wNDEyNSwgMC4wMjg3NSwgMC4wMTYyNSwgMC4wMDYyNSwgLTAuMDA4NzUiLCBcCi0gICAgICAgICAgIjAuMDg2MjUsIDAuMDc1LCAwLjA1NjI1LCAwLjA0Mzc1LCAwLjAzMTI1LCAwLjAxNSwgMC4wMDYyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJlbW92YWxfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRCYhU0UmIVNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9TRV9FUV8wX0FOX1NJX0VRXzAgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQocmVtb3ZhbF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjUsIDAuMDM2MjUsIDAuMDQ4NzUsIDAuMDYxMjUsIDAuMDczNzUsIDAuMDksIDAuMDk4NzUiLCBcCi0gICAgICAgICAgIjAuMDIsIDAuMDMxMjUsIDAuMDQzNzUsIDAuMDU2MjUsIDAuMDYyNSwgMC4wNzg3NSwgMC4wODc1IiwgXAotICAgICAgICAgICIwLjAwNzUsIDAuMDE4NzUsIDAuMDMxMjUsIDAuMDQzNzUsIDAuMDU2MjUsIDAuMDY2MjUsIDAuMDgxMjUiLCBcCi0gICAgICAgICAgIi0wLjAwNSwgMC4wMDYyNSwgMC4wMTg3NSwgMC4wMzEyNSwgMC4wNDM3NSwgMC4wNiwgMC4wNjg3NSIsIFwKLSAgICAgICAgICAiLTAuMDExMjUsIDAsIDAuMDEyNSwgMC4wMjUsIDAuMDMxMjUsIDAuMDQ3NSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiLTAuMDI3NSwgLTAuMDE2MjUsIC0wLjAwMzc1LCAwLjAwODc1LCAwLjAyMTI1LCAwLjAzMTI1LCAwLjA0NjI1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDI1LCAtMC4wMTI1LCAwLCAwLjAwNjI1LCAwLjAyMjUsIDAuMDMxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogVElFSEkgKgotICogLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKFRJRUhJKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMDI1NjQwOTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGZ1bmN0aW9uIDogIjEiOwotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBUTEFUTkNBWDMgKgotICogLS0tLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChUTEFUTkNBWDMpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4zMTkxNzc7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgY2xvY2tfZ2F0aW5nX2ludGVncmF0ZWRfY2VsbCA6ICJsYXRjaF9wb3NlZGdlIjsKLSAgc3RhdGV0YWJsZSgiIENLICBFICIsICIgRUlOVCAiKSB7Ci0gICAgIHRhYmxlIDogIiAgTCAgTCA6IC0gOiBMICwgXAotICAgICAgICAgICAgICAgIEwgIEggOiAtIDogSCAsIFwKLSAgICAgICAgICAgICAgICBIICAtIDogLSA6IE4gIjsKLSAgfQotICBwaW4oRUlOVCkgewotICAgIGRpcmVjdGlvbiA6IGludGVybmFsOwotICAgIGludGVybmFsX25vZGUgOiAiRUlOVCI7Ci0gIH0KLSAgcGluKENLKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA1NjQxNjY7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNTYzOTc1OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDU2NDE2NjsKLSAgICBjbG9ja19nYXRlX2Nsb2NrX3BpbiA6IHRydWU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzMDM4LCAwLjAwMzAwNiwgMC4wMDI5OTUsIDAuMDAzLCAwLjAwMzAwOSwgMC4wMDMwMzIsIDAuMDAzMDU1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzMDQ4LCAwLjAwMzAyMiwgMC4wMDMwMTIsIDAuMDAzMDE1LCAwLjAwMzAyOCwgMC4wMDMwNSwgMC4wMDMwNyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUUiOwotICAgICAgc2RmX2NvbmQgOiAiRSA9PSAxJ2IwIjsKLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjA5OTIwNCwgMC4xMDkwMDcsIDAuMTIwMzIsIDAuMTI5NTc2LCAwLjEzNzgyMiwgMC4xNDg0MSwgMC4xNTY1MDgiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEUpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDcwMzgwMzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA3MDI0OTM7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNzAzODAzOwotICAgIGNsb2NrX2dhdGVfZW5hYmxlX3BpbiA6IHRydWU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyNjUzLCAwLjAwMjYzLCAwLjAwMjYxOSwgMC4wMDI2MTIsIDAuMDAyNjE0LCAwLjAwMjYxMywgMC4wMDI2MTkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDI4MjEsIDAuMDAyODA2LCAwLjAwMjc5OSwgMC4wMDI3OTUsIDAuMDAyNzk0LCAwLjAwMjc5NCwgMC4wMDI4MDEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMjUsIC0wLjAyLCAtMC4wMTM3NSwgLTAuMDA3NSwgLTAuMDA3NSwgMC4wMDI1LCAwLjAwNSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDg3NSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMjUsIC0wLjAxNSwgLTAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMjc1LCAtMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjA2NzUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzMzc1LCAtMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDc3NSwgLTAuMDcyNSwgLTAuMDYsIC0wLjA1Mzc1LCAtMC4wNTM3NSwgLTAuMDQzNzUsIC0wLjA0MTI1IiwgXAotICAgICAgICAgICItMC4wODYyNSwgLTAuMDgxMjUsIC0wLjA2ODc1LCAtMC4wNjI1LCAtMC4wNjI1LCAtMC4wNTI1LCAtMC4wNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAwNjI1LCAwLjAwNSwgMC4wMTc1LCAwLjAzLCAwLjAzNjI1LCAwLjA0NjI1LCAwLjA1NSIsIFwKLSAgICAgICAgICAiLTAuMDExMjUsIDAsIDAuMDEyNSwgMC4wMTg3NSwgMC4wMzEyNSwgMC4wNDEyNSwgMC4wNSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxMjUsIDAsIDAuMDEyNSwgMC4wMTg3NSwgMC4wMjg3NSwgMC4wMzc1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLCAwLjAxMjUsIDAuMDIyNSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAyNSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAuMDA2MjUsIDAuMDE2MjUsIDAuMDI1IiwgXAotICAgICAgICAgICItMC4wNDYyNSwgLTAuMDQxMjUsIC0wLjAyODc1LCAtMC4wMTYyNSwgLTAuMDEsIDAuMDA2MjUsIDAuMDE1IiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA0Mzc1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMTI1LCAtMC4wMDI1LCAwLjAwNjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzMTI1LCAwLjAyNjI1LCAwLjAyLCAwLjAxMzc1LCAwLjAxMzc1LCAwLjAwMzc1LCAwLjAwMTI1IiwgXAotICAgICAgICAgICIwLjA0MjUsIDAuMDMxMjUsIDAuMDI1LCAwLjAyNSwgMC4wMTg3NSwgMC4wMTUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4wNTUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMzEyNSwgMC4wMjEyNSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4wNjEyNSwgMC4wNTYyNSwgMC4wNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzMzc1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICIwLjA3Mzc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDUsIDAuMDQzNzUsIDAuMDQsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiMC4wODM3NSwgMC4wNzg3NSwgMC4wNjYyNSwgMC4wNiwgMC4wNiwgMC4wNSwgMC4wNDc1IiwgXAotICAgICAgICAgICIwLjA5MjUsIDAuMDg3NSwgMC4wNzUsIDAuMDY4NzUsIDAuMDY4NzUsIDAuMDU4NzUsIDAuMDU2MjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTI1LCAwLjAwMTI1LCAtMC4wMTEyNSwgLTAuMDIzNzUsIC0wLjAzLCAtMC4wNCwgLTAuMDQ4NzUiLCBcCi0gICAgICAgICAgIjAuMDE3NSwgMC4wMDYyNSwgLTAuMDA2MjUsIC0wLjAxMjUsIC0wLjAyNSwgLTAuMDM1LCAtMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4wMywgMC4wMTg3NSwgMC4wMDYyNSwgLTAuMDA2MjUsIC0wLjAxMjUsIC0wLjAyMjUsIC0wLjAzMTI1IiwgXAotICAgICAgICAgICIwLjAzNjI1LCAwLjAyNSwgMC4wMTI1LCAwLjAwNjI1LCAtMC4wMDYyNSwgLTAuMDE2MjUsIC0wLjAyNSIsIFwKLSAgICAgICAgICAiMC4wNDI1LCAwLjAzMTI1LCAwLjAxODc1LCAwLjAxMjUsIDAsIC0wLjAxLCAtMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4wNTI1LCAwLjA0NzUsIDAuMDM1LCAwLjAyMjUsIDAuMDE2MjUsIDAsIC0wLjAwODc1IiwgXAotICAgICAgICAgICIwLjA2MTI1LCAwLjA1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDE4NzUsIDAuMDA4NzUsIDAiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEVDSykgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjc3MDk1NDsKLSAgICBjbG9ja19nYXRlX291dF9waW4gOiB0cnVlOwotICAgIHN0YXRlX2Z1bmN0aW9uIDogIihDSyBFSU5UKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTA3NzU1LCAwLjIwNjk3NCwgMC4zMDM5NzksIDAuMzczMjI2LCAwLjQ4NDEzMSwgMC41ODA5OTgsIDAuNzE5NDA3IiwgXAotICAgICAgICAgICIwLjExNzk0NCwgMC4yMTcxNDMsIDAuMzE0MTMyLCAwLjM4MzQ0OSwgMC40OTQyMzIsIDAuNTkxMTMxLCAwLjcyOTM0NyIsIFwKLSAgICAgICAgICAiMC4xMzAwNzUsIDAuMjI5MjM2LCAwLjMyNjIzNSwgMC4zOTU0OTMsIDAuNTA2MzEzLCAwLjYwMzI2NSwgMC43NDE2NjkiLCBcCi0gICAgICAgICAgIjAuMTQwMDc4LCAwLjIzOTMxLCAwLjMzNjMxNywgMC40MDU1NjYsIDAuNTE2MzM5LCAwLjYxMzMzNywgMC43NTE3NDIiLCBcCi0gICAgICAgICAgIjAuMTQ4ODExLCAwLjI0ODAyMywgMC4zNDUwMjYsIDAuNDE0MjgsIDAuNTI1MTIxLCAwLjYyMTk5MywgMC43NjA0NjQiLCBcCi0gICAgICAgICAgIjAuMTYwOTAxLCAwLjI1OTk4NiwgMC4zNTY5OTMsIDAuNDI2MjQ0LCAwLjUzNzAxOCwgMC42MzQwMjMsIDAuNzcyNDI2IiwgXAotICAgICAgICAgICIwLjE2OTkzLCAwLjI2OTE2NywgMC4zNjYxNSwgMC40MzU0NTYsIDAuNTQ2MjMxLCAwLjY0MzE0OCwgMC43ODE1OTciKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDMwNSwgMC4yMzcwMzMsIDAuNDM1ODE2LCAwLjU3OTUxNywgMC44MDY2NDYsIDEuMDA4NDgsIDEuMjk0MjciLCBcCi0gICAgICAgICAgIjAuMDQzMDU0LCAwLjIzNzA0NiwgMC40MzU2MSwgMC41NzgyNzMsIDAuODA2Njk1LCAxLjAwNTQ3LCAxLjI5MjQ2IiwgXAotICAgICAgICAgICIwLjA0MzA5NSwgMC4yMzcyMTksIDAuNDM1OTc2LCAwLjU3OTUxMSwgMC44MDgyNzYsIDEuMDA4NCwgMS4yOTQyNCIsIFwKLSAgICAgICAgICAiMC4wNDMwNDIsIDAuMjM3MjExLCAwLjQzNTc3MSwgMC41Nzk1MDIsIDAuODA4MTg5LCAxLjAwODQxLCAxLjI5NDI0IiwgXAotICAgICAgICAgICIwLjA0MzAyMywgMC4yMzcyMDgsIDAuNDM1NzIzLCAwLjU3OTUxMSwgMC44MDgyNjIsIDEuMDA4MywgMS4yOTQyNCIsIFwKLSAgICAgICAgICAiMC4wNDMwNDUsIDAuMjM3MjE1LCAwLjQzNTcyMiwgMC41Nzk0MSwgMC44MDc3MDksIDEuMDA4MzksIDEuMjk0MDYiLCBcCi0gICAgICAgICAgIjAuMDQyOTU4LCAwLjIzNzI1LCAwLjQzNjU4MywgMC41NzgzMDEsIDAuODA2NzkzLCAxLjAwODEzLCAxLjI5NCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5MzAzNSwgMC4xOTE5NzcsIDAuMjkwMTY4LCAwLjM2MDM1NCwgMC40NzI1NzksIDAuNTcwNzU0LCAwLjcxMTAxNCIsIFwKLSAgICAgICAgICAiMC4xMDI4NDEsIDAuMjAxNzk0LCAwLjI5OTk5NCwgMC4zNzAxNjEsIDAuNDgyMzc5LCAwLjU4MDU4NSwgMC43MjA4MzIiLCBcCi0gICAgICAgICAgIjAuMTE0MTUzLCAwLjIxMzA5NiwgMC4zMTEyODMsIDAuMzgxNDcyLCAwLjQ5MzY5LCAwLjU5MTg2NiwgMC43MzIxMzkiLCBcCi0gICAgICAgICAgIjAuMTIzNDMsIDAuMjIyMzc2LCAwLjMyMDU2NiwgMC4zOTA3NTIsIDAuNTAyOTQ4LCAwLjYwMTE5NiwgMC43NDE0MzkiLCBcCi0gICAgICAgICAgIjAuMTMxNzQ1LCAwLjIzMDYzNiwgMC4zMjg4MjYsIDAuMzk5MDU1LCAwLjUxMTI4LCAwLjYwOTQ1NSwgMC43NDk3MTciLCBcCi0gICAgICAgICAgIjAuMTQyMzM1LCAwLjI0MTMzNiwgMC4zMzk0OTIsIDAuNDA5NjYsIDAuNTIxODc2LCAwLjYyMDA0NCwgMC43NjAzNjMiLCBcCi0gICAgICAgICAgIjAuMTUwNDc5LCAwLjI0OTQxMiwgMC4zNDc2NCwgMC40MTc4MDIsIDAuNTMwMDM4LCAwLjYyODIzNSwgMC43Njg0NjciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzc3NTYsIDAuMjMzNDgsIDAuNDMyNzI3LCAwLjU3NDgxNCwgMC44MDEyODgsIDEuMDAxMDEsIDEuMjg0ODQiLCBcCi0gICAgICAgICAgIjAuMDM3NzM1LCAwLjIzMzg1OCwgMC40MzI3MzQsIDAuNTc0ODE3LCAwLjgwMjI3MiwgMS4wMDEyMiwgMS4yODUiLCBcCi0gICAgICAgICAgIjAuMDM3NzU2LCAwLjIzMzQ1NiwgMC40MzI2MzYsIDAuNTc0NDE0LCAwLjgwMTI5MiwgMS4wMDA1LCAxLjI4NTM1IiwgXAotICAgICAgICAgICIwLjAzNzc0OCwgMC4yMzM0NjYsIDAuNDMyNjM4LCAwLjU3NDczNCwgMC44MDIyNjIsIDAuOTk5NjY5LCAxLjI4NDg1IiwgXAotICAgICAgICAgICIwLjAzNzcyNCwgMC4yMzM0NzcsIDAuNDMyNjYzLCAwLjU3NDUwNiwgMC44MDEyODcsIDAuOTk5NTY0LCAxLjI4NDkxIiwgXAotICAgICAgICAgICIwLjAzNzczNiwgMC4yMzM2MTEsIDAuNDMyNjY3LCAwLjU3MzkyNiwgMC44MDEzMTIsIDEuMDAwMDMsIDEuMjg1NCIsIFwKLSAgICAgICAgICAiMC4wMzc3NTYsIDAuMjMzODUzLCAwLjQzMjY2OSwgMC41NzQxNjQsIDAuODAxMjIxLCAwLjk5OTUxOCwgMS4yODU1NCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNzA0MSwgMC4wMDcxNDIsIDAuMDA3MTU1LCAwLjAwNzE1NywgMC4wMDcxNiwgMC4wMDcxNjIsIDAuMDA3MTYzIiwgXAotICAgICAgICAgICIwLjAwNzAwOSwgMC4wMDcxMDksIDAuMDA3MTIxLCAwLjAwNzEyNSwgMC4wMDcxMywgMC4wMDcxMjksIDAuMDA3MTI5IiwgXAotICAgICAgICAgICIwLjAwNywgMC4wMDcxMDEsIDAuMDA3MTEyLCAwLjAwNzExNywgMC4wMDcxMjEsIDAuMDA3MTIsIDAuMDA3MTIzIiwgXAotICAgICAgICAgICIwLjAwNzAwOSwgMC4wMDcxMSwgMC4wMDcxMjEsIDAuMDA3MTI3LCAwLjAwNzEyOSwgMC4wMDcxMjcsIDAuMDA3MTMxIiwgXAotICAgICAgICAgICIwLjAwNzAyMiwgMC4wMDcxMjUsIDAuMDA3MTM4LCAwLjAwNzE0MSwgMC4wMDcxNDQsIDAuMDA3MTQ1LCAwLjAwNzE0OCIsIFwKLSAgICAgICAgICAiMC4wMDcwMjksIDAuMDA3MTM0LCAwLjAwNzE0OCwgMC4wMDcxNTUsIDAuMDA3MTUzLCAwLjAwNzE1NiwgMC4wMDcxNTciLCBcCi0gICAgICAgICAgIjAuMDA3MDUzLCAwLjAwNzE2MSwgMC4wMDcxNjksIDAuMDA3MTcsIDAuMDA3MTc0LCAwLjAwNzE3NSwgMC4wMDcxNzYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwOTUxNSwgMC4wMDk2NDksIDAuMDA5NjYzLCAwLjAwOTY2NywgMC4wMDk2NzEsIDAuMDA5NjczLCAwLjAwOTY3NCIsIFwKLSAgICAgICAgICAiMC4wMDk0ODcsIDAuMDA5NjIyLCAwLjAwOTYzNiwgMC4wMDk2NDEsIDAuMDA5NjQ0LCAwLjAwOTY0NiwgMC4wMDk2NDgiLCBcCi0gICAgICAgICAgIjAuMDA5NDgxLCAwLjAwOTYxNiwgMC4wMDk2MywgMC4wMDk2MzQsIDAuMDA5NjM4LCAwLjAwOTY0LCAwLjAwOTY0MSIsIFwKLSAgICAgICAgICAiMC4wMDk0OCwgMC4wMDk2MTUsIDAuMDA5NjMsIDAuMDA5NjM0LCAwLjAwOTYzOCwgMC4wMDk2MzksIDAuMDA5NjQxIiwgXAotICAgICAgICAgICIwLjAwOTQ4MSwgMC4wMDk2MTEsIDAuMDA5NjI1LCAwLjAwOTYzNiwgMC4wMDk2NCwgMC4wMDk2MzUsIDAuMDA5NjQzIiwgXAotICAgICAgICAgICIwLjAwOTQ5NywgMC4wMDk2MjYsIDAuMDA5NjQ4LCAwLjAwOTY1MiwgMC4wMDk2NTcsIDAuMDA5NjU4LCAwLjAwOTY1MyIsIFwKLSAgICAgICAgICAiMC4wMDk1MTMsIDAuMDA5NjQ2LCAwLjAwOTY2MiwgMC4wMDk2NzEsIDAuMDA5Njc1LCAwLjAwOTY3NCwgMC4wMDk2NzkiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IFRMQVROQ0FYOCAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKFRMQVROQ0FYOCkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjU4MDI1NzsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBjbG9ja19nYXRpbmdfaW50ZWdyYXRlZF9jZWxsIDogImxhdGNoX3Bvc2VkZ2UiOwotICBzdGF0ZXRhYmxlKCIgQ0sgIEUgIiwgIiBFSU5UICIpIHsKLSAgICAgdGFibGUgOiAiICBMICBMIDogLSA6IEwgLCBcCi0gICAgICAgICAgICAgICAgTCAgSCA6IC0gOiBIICwgXAotICAgICAgICAgICAgICAgIEggIC0gOiAtIDogTiAiOwotICB9Ci0gIHBpbihFSU5UKSB7Ci0gICAgZGlyZWN0aW9uIDogaW50ZXJuYWw7Ci0gICAgaW50ZXJuYWxfbm9kZSA6ICJFSU5UIjsKLSAgfQotICBwaW4oQ0spICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY1MTM0MzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2NTEwODQ7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjUxMzQzOwotICAgIGNsb2NrX2dhdGVfY2xvY2tfcGluIDogdHJ1ZTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDMyOTIsIDAuMDAzMjY0LCAwLjAwMzI1MSwgMC4wMDMyNTIsIDAuMDAzMjYyLCAwLjAwMzI4MSwgMC4wMDMzMDQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDM5OTQsIDAuMDAzOTY5LCAwLjAwMzk1NywgMC4wMDM5NTksIDAuMDAzOTY3LCAwLjAwMzk5MywgMC4wMDQwMTUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFFIjsKLSAgICAgIHNkZl9jb25kIDogIkUgPT0gMSdiMCI7Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4xMTg5ODIsIDAuMTI4OTAxLCAwLjE0MDcxLCAwLjE1MDc3NSwgMC4xNTkzODEsIDAuMTcxMzUzLCAwLjE4MDUzOSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjQxNTc1OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDY0MDAwNDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2NDE1NzU7Ci0gICAgY2xvY2tfZ2F0ZV9lbmFibGVfcGluIDogdHJ1ZTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDM2MDEsIDAuMDAzNTc5LCAwLjAwMzU2OCwgMC4wMDM1NTgsIDAuMDAzNTU4LCAwLjAwMzU2MiwgMC4wMDM1NjQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDM4NywgMC4wMDM4NTcsIDAuMDAzODUsIDAuMDAzODQ1LCAwLjAwMzg0MywgMC4wMDM4NDQsIDAuMDAzODQ0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDMxMjUsIC0wLjAyNjI1LCAtMC4wMiwgLTAuMDEzNzUsIC0wLjAwNzUsIC0wLjAwMzc1LCAtMC4wMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxODc1LCAtMC4wMDg3NSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA1NSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAyMTI1LCAtMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDYxMjUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzMzc1LCAtMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjA3Mzc1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wNCwgLTAuMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDgzNzUsIC0wLjA3ODc1LCAtMC4wNzI1LCAtMC4wNjYyNSwgLTAuMDYsIC0wLjA1LCAtMC4wNDc1IiwgXAotICAgICAgICAgICItMC4wOTg3NSwgLTAuMDg3NSwgLTAuMDgxMjUsIC0wLjA3NSwgLTAuMDY4NzUsIC0wLjA2NSwgLTAuMDU2MjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMDYyNSwgMC4wMDUsIDAuMDE3NSwgMC4wMywgMC4wMzYyNSwgMC4wNDYyNSwgMC4wNjEyNSIsIFwKLSAgICAgICAgICAiLTAuMDE3NSwgLTAuMDA2MjUsIDAuMDA2MjUsIDAuMDE4NzUsIDAuMDI1LCAwLjA0MTI1LCAwLjA1IiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDEyNSwgMCwgMC4wMDYyNSwgMC4wMTg3NSwgMC4wMjg3NSwgMC4wMzc1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDI1LCAtMC4wMTI1LCAwLCAwLjAwNjI1LCAwLjAyMjUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAsIDAuMDE2MjUsIDAuMDI1IiwgXAotICAgICAgICAgICItMC4wNTI1LCAtMC4wNDEyNSwgLTAuMDI4NzUsIC0wLjAyMjUsIC0wLjAxLCAwLCAwLjAxNSIsIFwKLSAgICAgICAgICAiLTAuMDYxMjUsIC0wLjA1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIC0wLjAwODc1LCAwIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzNzUsIDAuMDMyNSwgMC4wMjYyNSwgMC4wMiwgMC4wMTM3NSwgMC4wMSwgMC4wMDc1IiwgXAotICAgICAgICAgICIwLjA0ODc1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDI1LCAwLjAyNSwgMC4wMTUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4wNjEyNSwgMC4wNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyNzUsIDAuMDI1IiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNSwgMC4wNDM3NSwgMC4wNCwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4wOCwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1LCAwLjA0NjI1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjA5LCAwLjA4NSwgMC4wNzg3NSwgMC4wNzI1LCAwLjA2NjI1LCAwLjA1NjI1LCAwLjA1Mzc1IiwgXAotICAgICAgICAgICIwLjEwNSwgMC4wOTM3NSwgMC4wODc1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNzEyNSwgMC4wNjI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEyNSwgMC4wMDEyNSwgLTAuMDExMjUsIC0wLjAyMzc1LCAtMC4wMywgLTAuMDQsIC0wLjA1NSIsIFwKLSAgICAgICAgICAiMC4wMjM3NSwgMC4wMTI1LCAwLCAtMC4wMTI1LCAtMC4wMTg3NSwgLTAuMDM1LCAtMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4wMywgMC4wMTg3NSwgMC4wMDYyNSwgMCwgLTAuMDEyNSwgLTAuMDIyNSwgLTAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMDQyNSwgMC4wMzEyNSwgMC4wMTg3NSwgMC4wMDYyNSwgMCwgLTAuMDE2MjUsIC0wLjAyNSIsIFwKLSAgICAgICAgICAiMC4wNDg3NSwgMC4wMzc1LCAwLjAyNSwgMC4wMTI1LCAwLjAwNjI1LCAtMC4wMSwgLTAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMDU4NzUsIDAuMDQ3NSwgMC4wMzUsIDAuMDI4NzUsIDAuMDE2MjUsIDAuMDA2MjUsIC0wLjAwODc1IiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDU2MjUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMjUsIDAuMDE1LCAwLjAwNjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihFQ0spICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMi4wMDQwNjsKLSAgICBjbG9ja19nYXRlX291dF9waW4gOiB0cnVlOwotICAgIHN0YXRlX2Z1bmN0aW9uIDogIihDSyBFSU5UKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTExMDA4LCAwLjE1MzQ3MywgMC4xOTAzMSwgMC4yMTYzMzcsIDAuMjU3ODc0LCAwLjI5NDIyOSwgMC4zNDYxNTIiLCBcCi0gICAgICAgICAgIjAuMTIxMTY3LCAwLjE2MzYxLCAwLjIwMDQ3MSwgMC4yMjY0OCwgMC4yNjgwMTksIDAuMzA0MzUxLCAwLjM1NjI3NiIsIFwKLSAgICAgICAgICAiMC4xMzM2NzMsIDAuMTc2MTM4LCAwLjIxMjk1MiwgMC4yMzg5NTgsIDAuMjgwNTAzLCAwLjMxNjgzNSwgMC4zNjg3MyIsIFwKLSAgICAgICAgICAiMC4xNDQ2MjIsIDAuMTg3MTE3LCAwLjIyMzk2NSwgMC4yNDk5ODIsIDAuMjkxNTE4LCAwLjMyNzg0NywgMC4zNzk3NTUiLCBcCi0gICAgICAgICAgIjAuMTU0MDUsIDAuMTk2NTExLCAwLjIzMzMyNSwgMC4yNTkzMzIsIDAuMzAwODc2LCAwLjMzNzIwOCwgMC4zODkxMDUiLCBcCi0gICAgICAgICAgIjAuMTY3NjY2LCAwLjIxMDA2LCAwLjI0Njg4OCwgMC4yNzI4OTQsIDAuMzE0NDQ1LCAwLjM1MDc4LCAwLjQwMjY3OCIsIFwKLSAgICAgICAgICAiMC4xNzcwMzYsIDAuMjE5NDMxLCAwLjI1NjIzMiwgMC4yODIyMzQsIDAuMzIzNzgzLCAwLjM2MDExNiwgMC40MTIwMTYiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjgyNzUsIDAuMDk5MDIyLCAwLjE3MTQxNCwgMC4yMjQwNTUsIDAuMzA5MTg0LCAwLjM4Mzk2NiwgMC40OTA5MTMiLCBcCi0gICAgICAgICAgIjAuMDI4Mjk4LCAwLjA5OTAwNSwgMC4xNzE1NCwgMC4yMjQwNjMsIDAuMzA5MTg4LCAwLjM4Mzc3LCAwLjQ5MDg1NSIsIFwKLSAgICAgICAgICAiMC4wMjgyNDUsIDAuMDk5MDIsIDAuMTcxNTQ2LCAwLjIyNDE1MSwgMC4zMDkxOTMsIDAuMzgzNzQxLCAwLjQ5MDA2NiIsIFwKLSAgICAgICAgICAiMC4wMjgyNzQsIDAuMDk5MDIzLCAwLjE3MTU0NSwgMC4yMjQwNjUsIDAuMzA5MTc2LCAwLjM4Mzc5MywgMC40OTAxNDgiLCBcCi0gICAgICAgICAgIjAuMDI4MjU3LCAwLjA5OTAyMiwgMC4xNzE1NDgsIDAuMjI0MTUyLCAwLjMwOTE5MywgMC4zODM3MzYsIDAuNDkwMDc3IiwgXAotICAgICAgICAgICIwLjAyODE5OCwgMC4wOTg5OTIsIDAuMTcxNTM4LCAwLjIyNDE0NiwgMC4zMDg5MywgMC4zODM4MDUsIDAuNDg5NDQ3IiwgXAotICAgICAgICAgICIwLjAyODI1MSwgMC4wOTkwMjYsIDAuMTcxNTksIDAuMjI0MjEzLCAwLjMwOTE3MywgMC4zODM3NjYsIDAuNDkwMTQ5Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk2Njk4LCAwLjEzNzU3NSwgMC4xNzU3MywgMC4yMDI5MzQsIDAuMjQ2NDkyLCAwLjI4NDYwMywgMC4zMzkwNjQiLCBcCi0gICAgICAgICAgIjAuMTA2NjQyLCAwLjE0NzQ5LCAwLjE4NTY1NywgMC4yMTI4NjIsIDAuMjU2NDEyLCAwLjI5NDUzNSwgMC4zNDg5ODUiLCBcCi0gICAgICAgICAgIjAuMTE4NDIyLCAwLjE1OTI1NSwgMC4xOTc0MTgsIDAuMjI0NjIzLCAwLjI2ODE3NCwgMC4zMDYyOTMsIDAuMzYwNzUzIiwgXAotICAgICAgICAgICIwLjEyODUzMiwgMC4xNjkzODYsIDAuMjA3NTU0LCAwLjIzNDc1OCwgMC4yNzgzMDgsIDAuMzE2NDMzLCAwLjM3MDg4NiIsIFwKLSAgICAgICAgICAiMC4xMzcxMDIsIDAuMTc3OTgxLCAwLjIxNjE0MiwgMC4yNDMzNDYsIDAuMjg2OTAxLCAwLjMyNTAyMiwgMC4zNzk0NzUiLCBcCi0gICAgICAgICAgIjAuMTQ5MDg1LCAwLjE4OTkyNiwgMC4yMjgwODMsIDAuMjU1Mjg4LCAwLjI5ODgzNSwgMC4zMzY5NTYsIDAuMzkxNDExIiwgXAotICAgICAgICAgICIwLjE1ODM4NCwgMC4xOTkyMjksIDAuMjM3Mzg1LCAwLjI2NDU4OCwgMC4zMDgxNDksIDAuMzQ2MjUzLCAwLjQwMDcyMSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyMjk4MiwgMC4wOTY4MDMsIDAuMTczNDkyLCAwLjIyODU2MywgMC4zMTY0NzQsIDAuMzkzNjg4LCAwLjUwNTA3MiIsIFwKLSAgICAgICAgICAiMC4wMjI5NTksIDAuMDk2OTQzLCAwLjE3MzI1MSwgMC4yMjg0ODIsIDAuMzE2NTMxLCAwLjM5NDMyNCwgMC41MDUwOSIsIFwKLSAgICAgICAgICAiMC4wMjI5NjksIDAuMDk2ODU0LCAwLjE3MzQ4MiwgMC4yMjg1NjksIDAuMzE2Njk0LCAwLjM5MzQ0MiwgMC41MDUwMzkiLCBcCi0gICAgICAgICAgIjAuMDIyOTY3LCAwLjA5Njg2NywgMC4xNzM1MiwgMC4yMjgwMywgMC4zMTY0NjIsIDAuMzkzNiwgMC41MDUwNzIiLCBcCi0gICAgICAgICAgIjAuMDIyOTcyLCAwLjA5NjkxOCwgMC4xNzM0MDcsIDAuMjI4NjA2LCAwLjMxNjI5OSwgMC4zOTQzMDEsIDAuNTA1MTQ1IiwgXAotICAgICAgICAgICIwLjAyMjk3MiwgMC4wOTY5NDEsIDAuMTczMjc4LCAwLjIyODQ0NCwgMC4zMTY5MjgsIDAuMzk0MzA3LCAwLjUwNTAwNyIsIFwKLSAgICAgICAgICAiMC4wMjI5MDgsIDAuMDk2ODc3LCAwLjE3MzU3NSwgMC4yMjg2MjMsIDAuMzE2OTcyLCAwLjM5MzY4MSwgMC41MDUwMjkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTI4MjEsIDAuMDEzMTQ5LCAwLjAxMzIzMSwgMC4wMTMyNTksIDAuMDEzMjgyLCAwLjAxMzI5NiwgMC4wMTMzMDkiLCBcCi0gICAgICAgICAgIjAuMDEyNzksIDAuMDEzMTE5LCAwLjAxMzIwMSwgMC4wMTMyMjksIDAuMDEzMjU1LCAwLjAxMzI2NywgMC4wMTMyNzkiLCBcCi0gICAgICAgICAgIjAuMDEyNzc5LCAwLjAxMzEwOCwgMC4wMTMxOSwgMC4wMTMyMiwgMC4wMTMyNDMsIDAuMDEzMjU5LCAwLjAxMzI3MiIsIFwKLSAgICAgICAgICAiMC4wMTI3ODQsIDAuMDEzMTEsIDAuMDEzMTkyLCAwLjAxMzIxOSwgMC4wMTMyNDEsIDAuMDEzMjU5LCAwLjAxMzI3MSIsIFwKLSAgICAgICAgICAiMC4wMTI3OTMsIDAuMDEzMTE5LCAwLjAxMzIwMiwgMC4wMTMyMjksIDAuMDEzMjU0LCAwLjAxMzI3LCAwLjAxMzI4IiwgXAotICAgICAgICAgICIwLjAxMjgwMiwgMC4wMTMxMzMsIDAuMDEzMjE2LCAwLjAxMzI0NCwgMC4wMTMyNjUsIDAuMDEzMjgzLCAwLjAxMzI5NSIsIFwKLSAgICAgICAgICAiMC4wMTI4NCwgMC4wMTMxNjYsIDAuMDEzMjU1LCAwLjAxMzI4MywgMC4wMTMzMDIsIDAuMDEzMzMsIDAuMDEzMzMxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTY3MywgMC4wMTcxOTksIDAuMDE3Mjk2LCAwLjAxNzMyOCwgMC4wMTczNTYsIDAuMDE3MzcsIDAuMDE3MzgzIiwgXAotICAgICAgICAgICIwLjAxNjcwNywgMC4wMTcxNzQsIDAuMDE3MjcsIDAuMDE3MzAyLCAwLjAxNzMzMSwgMC4wMTczNDUsIDAuMDE3MzU5IiwgXAotICAgICAgICAgICIwLjAxNjcwMywgMC4wMTcxNjcsIDAuMDE3MjYzLCAwLjAxNzI5NSwgMC4wMTczMjMsIDAuMDE3MzM4LCAwLjAxNzM1MiIsIFwKLSAgICAgICAgICAiMC4wMTY2OTcsIDAuMDE3MTY0LCAwLjAxNzI2LCAwLjAxNzI5MiwgMC4wMTczMiwgMC4wMTczMzUsIDAuMDE3MzQ4IiwgXAotICAgICAgICAgICIwLjAxNjY4OSwgMC4wMTcxNTgsIDAuMDE3MjU3LCAwLjAxNzI4OSwgMC4wMTczMTcsIDAuMDE3MzMyLCAwLjAxNzM0NiIsIFwKLSAgICAgICAgICAiMC4wMTY3MSwgMC4wMTcxODgsIDAuMDE3Mjg5LCAwLjAxNzMyMiwgMC4wMTczNTEsIDAuMDE3MzY2LCAwLjAxNzM4IiwgXAotICAgICAgICAgICIwLjAxNjcyOSwgMC4wMTcxOSwgMC4wMTcyODQsIDAuMDE3MzIxLCAwLjAxNzM1MiwgMC4wMTczNjUsIDAuMDE3MzgiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IFRMQVROU1JYMSAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKFRMQVROU1JYMSkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjMyNjExMTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBsYXRjaCAoUUlOVCxONSkgewotICAgIGRhdGFfaW4gOiAiRCI7Ci0gICAgZW5hYmxlIDogIigoIUdOKSBSTikiOwotICAgIHByZXNldCA6ICIoIVNOKSI7Ci0gIH0KLSAgcGluKEQpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYzODAxOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYzNjM1MzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2MzgwMTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyMTcsIDAuMDAwMjIsIDAuMDAwMjIxLCAwLjAwMDIyMSwgMC4wMDAyMjEsIDAuMDAwMjIyLCAwLjAwMDIyMiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDIzMSwgMC4wMDAyMjcsIDAuMDAwMjI3LCAwLjAwMDIyNywgMC4wMDAyMjcsIDAuMDAwMjI3LCAwLjAwMDIyNyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJHTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJSTiZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJSTl9FUV8xX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMCwgMC4wMTEyNSwgMC4wMjM3NSwgMC4wMywgMC4wMzYyNSwgMC4wNDYyNSwgMC4wNTUiLCBcCi0gICAgICAgICAgIi0wLjAxMTI1LCAwLCAwLjAxMjUsIDAuMDE4NzUsIDAuMDMxMjUsIDAuMDM1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICItMC4wMTc1LCAtMC4wMDYyNSwgMCwgMC4wMTI1LCAwLjAxODc1LCAwLjAyODc1LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAsIDAuMDA2MjUsIDAuMDE2MjUsIDAuMDI1IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIDAsIDAuMDEsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDUyNSwgLTAuMDQxMjUsIC0wLjAzNSwgLTAuMDIyNSwgLTAuMDE2MjUsIC0wLjAwNjI1LCAwLjAwMjUiLCBcCi0gICAgICAgICAgIi0wLjA2MTI1LCAtMC4wNTYyNSwgLTAuMDQzNzUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAxNSwgLTAuMDA2MjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMjUsIC0wLjAxMzc1LCAtMC4wMDEyNSwgMC4wMDUsIDAuMDExMjUsIDAuMDIxMjUsIDAuMDMiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMTg3NSwgLTAuMDEyNSwgMCwgMC4wMDYyNSwgMC4wMTYyNSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDMxMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMC4wMDM3NSwgMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDI1LCAwIiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMTUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wNzEyNSwgLTAuMDYsIC0wLjA0NzUsIC0wLjA0MTI1LCAtMC4wMzUsIC0wLjAyNSwgLTAuMDE2MjUiLCBcCi0gICAgICAgICAgIi0wLjA4LCAtMC4wNjg3NSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDMzNzUsIC0wLjAyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJHTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiUk4mU04iOwotICAgICAgc2RmX2NvbmQgOiAiUk5fRVFfMV9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxODc1LCAwLjAwNzUsIC0wLjAwNSwgLTAuMDExMjUsIC0wLjAxNzUsIC0wLjAyNzUsIC0wLjAzNjI1IiwgXAotICAgICAgICAgICIwLjAyMzc1LCAwLjAxMjUsIDAuMDA2MjUsIC0wLjAwNjI1LCAtMC4wMTI1LCAtMC4wMjI1LCAtMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4wMzYyNSwgMC4wMjUsIDAuMDEyNSwgMC4wMDYyNSwgMCwgLTAuMDEsIC0wLjAxODc1IiwgXAotICAgICAgICAgICIwLjA0ODc1LCAwLjAzNzUsIDAuMDI1LCAwLjAxODc1LCAwLjAwNjI1LCAtMC4wMDM3NSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMDU1LCAwLjA0Mzc1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMTg3NSwgMC4wMDg3NSwgMCIsIFwKLSAgICAgICAgICAiMC4wNzEyNSwgMC4wNiwgMC4wNDc1LCAwLjA0MTI1LCAwLjAyODc1LCAwLjAxODc1LCAwLjAxNjI1IiwgXAotICAgICAgICAgICIwLjA4LCAwLjA2ODc1LCAwLjA1NjI1LCAwLjA1LCAwLjA0Mzc1LCAwLjAzMzc1LCAwLjAyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzNzUsIDAuMDMyNSwgMC4wMiwgMC4wMTM3NSwgMC4wMDc1LCAtMC4wMDI1LCAtMC4wMTEyNSIsIFwKLSAgICAgICAgICAiMC4wNDg3NSwgMC4wMzc1LCAwLjAyNSwgMC4wMTg3NSwgMC4wMTI1LCAwLjAwMjUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICIwLjA1NSwgMC4wNSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAxODc1LCAwLjAxNSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiMC4wNjc1LCAwLjA1NjI1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDIxMjUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4wNzM3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDI3NSwgMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMDgzNzUsIDAuMDc4NzUsIDAuMDY2MjUsIDAuMDYsIDAuMDQ3NSwgMC4wNDM3NSwgMC4wMzUiLCBcCi0gICAgICAgICAgIjAuMDkyNSwgMC4wODc1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNTYyNSwgMC4wNTI1LCAwLjA0Mzc1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihHTikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjM0NjAzOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYzNDIyMjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2MzQ2MDM7Ci0gICAgY2xvY2sgOiB0cnVlOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDI1MywgMC4wMDAyMjYsIDAuMDAwMjM0LCAwLjAwMDIzOSwgMC4wMDAyNTcsIDAuMDAwMjc4LCAwLjAwMDMwNSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzg2OCwgMC4wMDM4MzcsIDAuMDAzODMsIDAuMDAzODMyLCAwLjAwMzg0NiwgMC4wMDM4NjgsIDAuMDAzODkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiR04iOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFEJlNOIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9TTl9FUV8xID09IDEnYjEiOwotICAgICAgZmFsbF9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMjAyNDkyLCAwLjIxMTk4LCAwLjIyMTc3MSwgMC4yMjkyNjMsIDAuMjM1NTQ1LCAwLjI0Mzk3MSwgMC4yNTA0MzciKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFEpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4yNjQyOTI7Ci0gICAgZnVuY3Rpb24gOiAiUUlOVCI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTMyOTQ3LCAwLjE1NzIzNSwgMC4yOTQyOTksIDAuNDE0OTk4LCAwLjU3NjQ5OCwgMC44OTkxNzcsIDEuMTAwNzciLCBcCi0gICAgICAgICAgIjAuMTQxNzU5LCAwLjE2NjAxNSwgMC4zMDI5NTcsIDAuNDIzODkxLCAwLjU4NTM0LCAwLjkwNzkxOSwgMS4xMDk3IiwgXAotICAgICAgICAgICIwLjE1MjI3MiwgMC4xNzY1MjgsIDAuMzEzNTgzLCAwLjQzNDUyLCAwLjU5NTgyNywgMC45MTg1NTMsIDEuMTIwMzMiLCBcCi0gICAgICAgICAgIjAuMTYyMzgyLCAwLjE4NjY4NSwgMC4zMjM2MiwgMC40NDQ0MDksIDAuNjA1OTU1LCAwLjkyODYwNSwgMS4xMzAwMSIsIFwKLSAgICAgICAgICAiMC4xNzE3NjMsIDAuMTk2MTExLCAwLjMzMjk5NCwgMC40NTM5NjksIDAuNjE1NDg3LCAwLjkzNzgzNCwgMS4xMzk3NSIsIFwKLSAgICAgICAgICAiMC4xODUwODgsIDAuMjA5MzM2LCAwLjM0NjI3NiwgMC40NjcxODgsIDAuNjI4NjQyLCAwLjk1MTMwNywgMS4xNTI2NiIsIFwKLSAgICAgICAgICAiMC4xOTU2MTUsIDAuMjE5NzM4LCAwLjM1Njg1NSwgMC40Nzc2MzUsIDAuNjM5MDk2LCAwLjk2MTkwNiwgMS4xNjM3Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4OTA4OCwgMC4xMzg4MjMsIDAuNDIxNDYyLCAwLjY2OTM0NCwgMS4wMDMxNCwgMS42Njc3NSwgMi4wODMwNCIsIFwKLSAgICAgICAgICAiMC4wODkxNTEsIDAuMTM4ODE5LCAwLjQyMDM5MSwgMC42Njk5LCAxLjAwMzMsIDEuNjY3OCwgMi4wODMyIiwgXAotICAgICAgICAgICIwLjA4ODk0NiwgMC4xMzg2MjksIDAuNDIwNTAzLCAwLjY2OTg0MiwgMS4wMDExNiwgMS42Njc3NiwgMi4wODMyMyIsIFwKLSAgICAgICAgICAiMC4wODkyMDksIDAuMTM4ODI3LCAwLjQyMDM2MSwgMC42Njk2MSwgMS4wMDMxNSwgMS42Njc3NSwgMi4wNzkwMyIsIFwKLSAgICAgICAgICAiMC4wODg5NzEsIDAuMTM4ODEyLCAwLjQyMDQxMiwgMC42Njg3OTcsIDEuMDAxMTIsIDEuNjY3MTgsIDIuMDgyOTYiLCBcCi0gICAgICAgICAgIjAuMDg5MjY1LCAwLjEzODgzOSwgMC40MjA4MDksIDAuNjcwNDY1LCAxLjAwMzE0LCAxLjY2NzY5LCAyLjA4MDMzIiwgXAotICAgICAgICAgICIwLjA4OTMwMSwgMC4xMzg4MTMsIDAuNDIxNDY5LCAwLjY3MDU4NywgMS4wMDI5NCwgMS42Njc1MywgMi4wNzg4OSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNTYxNywgMC4xODEwNzQsIDAuMzIxMzIzLCAwLjQ0NTA5OCwgMC42MTAwMzksIDAuOTM5OTkzLCAxLjE0NjEzIiwgXAotICAgICAgICAgICIwLjE2NDU0NCwgMC4xODk0MjgsIDAuMzI5NjUsIDAuNDUzNDM5LCAwLjYxODM4OSwgMC45NDgzMywgMS4xNTQ0OCIsIFwKLSAgICAgICAgICAiMC4xNzQxMjUsIDAuMTk4OTE0LCAwLjMzOTE2NCwgMC40NjI2ODMsIDAuNjI3ODczLCAwLjk1NzgxLCAxLjE2Mzk3IiwgXAotICAgICAgICAgICIwLjE4Mjk1NiwgMC4yMDc3MjEsIDAuMzQ4MDM0LCAwLjQ3MTU4NiwgMC42MzY2MzMsIDAuOTY2Njc2LCAxLjE3Mjg4IiwgXAotICAgICAgICAgICIwLjE5MTI4MiwgMC4yMTU5NzUsIDAuMzU2MjI3LCAwLjQ3OTc5NywgMC42NDQ2MjksIDAuOTc0MTUxLCAxLjE4MDIxIiwgXAotICAgICAgICAgICIwLjIwMjcyLCAwLjIyNzQwNywgMC4zNjc0NTcsIDAuNDkxMjMsIDAuNjU2Mzg5LCAwLjk4NjMyNiwgMS4xOTI0OSIsIFwKLSAgICAgICAgICAiMC4yMTE1NzUsIDAuMjM2MjQsIDAuMzc2NDU4LCAwLjUwMDIyNywgMC42NjUyLCAwLjk5NDY2NSwgMS4yMDEzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4OTEzNiwgMC4xMzg2NzgsIDAuNDIxMDk1LCAwLjY3MDYzNSwgMS4wMDI4NCwgMS42Njc2NiwgMi4wODI3MSIsIFwKLSAgICAgICAgICAiMC4wODkxMzYsIDAuMTM4Njc3LCAwLjQyMTAxNCwgMC42NzA1ODcsIDEuMDAyODIsIDEuNjY3NTYsIDIuMDgyNjgiLCBcCi0gICAgICAgICAgIjAuMDg5MTk1LCAwLjEzODY3NywgMC40MjExMjIsIDAuNjY5Njg0LCAxLjAwMjgxLCAxLjY2NzUzLCAyLjA4MjY3IiwgXAotICAgICAgICAgICIwLjA4OTIwNywgMC4xMzg2NDcsIDAuNDIxMDE4LCAwLjY2OTY2MywgMS4wMDIzNiwgMS42NjczMywgMi4wODI3NyIsIFwKLSAgICAgICAgICAiMC4wODkxODQsIDAuMTM4Njc2LCAwLjQyMTAyOCwgMC42Njg1MSwgMC45OTkxNTcsIDEuNjYxNzMsIDIuMDc1NzciLCBcCi0gICAgICAgICAgIjAuMDg5MTg5LCAwLjEzODY3NywgMC40MjAzOTMsIDAuNjY5NjQ2LCAxLjAwMjc5LCAxLjY2NzU1LCAyLjA4MjY3IiwgXAotICAgICAgICAgICIwLjA4OTE2NywgMC4xMzg2ODMsIDAuNDIwOTE5LCAwLjY3MDI0LCAxLjAwMjU1LCAxLjY2NDQ5LCAyLjA4MjI4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkdOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5vbl91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogZmFsbGluZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xOTY0MywgMC4yMjA1MjUsIDAuMzU3NiwgMC40Nzg1MjksIDAuNjM5ODE5LCAwLjk2MjU4NiwgMS4xNjQzIiwgXAotICAgICAgICAgICIwLjIwNTc2NywgMC4yMjk5OSwgMC4zNjcwMzgsIDAuNDg3OTg1LCAwLjY0OTUwNCwgMC45NzE5OTQsIDEuMTczNzkiLCBcCi0gICAgICAgICAgIjAuMjE1NzM0LCAwLjIzOTgyOSwgMC4zNzY4ODYsIDAuNDk3ODIsIDAuNjU5MjAzLCAwLjk4MTgyOSwgMS4xODM1NiIsIFwKLSAgICAgICAgICAiMC4yMjMzMzMsIDAuMjQ3NTUyLCAwLjM4NDQ4MSwgMC41MDUzMzIsIDAuNjY2ODAzLCAwLjk4OTMwMiwgMS4xOTEwOCIsIFwKLSAgICAgICAgICAiMC4yMjkyODgsIDAuMjUzNTEsIDAuMzkwNTU3LCAwLjUxMTUxOCwgMC42NzI4MTEsIDAuOTk1NTEzLCAxLjE5NzMyIiwgXAotICAgICAgICAgICIwLjIzNzkzNCwgMC4yNjIwNTMsIDAuMzk5MTMzLCAwLjUyMDAwOSwgMC42ODE0NDUsIDEuMDA0MSwgMS4yMDU3NiIsIFwKLSAgICAgICAgICAiMC4yNDQ0NTMsIDAuMjY4NjY3LCAwLjQwNTYwMiwgMC41MjY1NDksIDAuNjg3OTk2LCAxLjAxMDU2LCAxLjIxMjQ0Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4OTI2NCwgMC4xMzg4MjMsIDAuNDIwNjE0LCAwLjY2OTgyNywgMS4wMDE2NywgMS42Njc2OSwgMi4wODMxNiIsIFwKLSAgICAgICAgICAiMC4wODkyMTEsIDAuMTM4Nzc4LCAwLjQyMDkwMywgMC42Njk4NDUsIDEuMDAxMywgMS42Njc3OCwgMi4wODMxOCIsIFwKLSAgICAgICAgICAiMC4wODkyNjEsIDAuMTM4ODQxLCAwLjQyMDY2NSwgMC42Njk3ODMsIDEuMDAzMTQsIDEuNjY3NzEsIDIuMDgzMiIsIFwKLSAgICAgICAgICAiMC4wODkyNTUsIDAuMTM4ODIsIDAuNDIwMDE1LCAwLjY2OTczMSwgMS4wMDMxNCwgMS42NjU0MiwgMi4wODMyMSIsIFwKLSAgICAgICAgICAiMC4wODkxMzcsIDAuMTM4NzczLCAwLjQyMDg2MSwgMC42Njk4MDIsIDEuMDAxMzgsIDEuNjY3NzcsIDIuMDgzMTgiLCBcCi0gICAgICAgICAgIjAuMDg5MjczLCAwLjEzODc2NCwgMC40MjA2OSwgMC42Njk3MTgsIDEuMDAzMTMsIDEuNjY3NzEsIDIuMDgzMiIsIFwKLSAgICAgICAgICAiMC4wODkyNjIsIDAuMTM4ODI5LCAwLjQyMDY4OSwgMC42NjkwOTUsIDEuMDAzMTQsIDEuNjY3NzgsIDIuMDgzMTUiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjAyNDkyLCAwLjIyNzA4NywgMC4zNjc0MTcsIDAuNDkwOTY4LCAwLjY1NjE3NCwgMC45ODYwNjMsIDEuMTkxOTIiLCBcCi0gICAgICAgICAgIjAuMjExOTgsIDAuMjM2NTk4LCAwLjM3NjkyLCAwLjUwMDQ3NywgMC42NjU2MjYsIDAuOTk1NTUzLCAxLjIwMTc0IiwgXAotICAgICAgICAgICIwLjIyMTc3MSwgMC4yNDYzNzUsIDAuMzg2Njk5LCAwLjUxMDI1OSwgMC42NzU0MDgsIDEuMDA1MzQsIDEuMjExNTQiLCBcCi0gICAgICAgICAgIjAuMjI5MjYzLCAwLjI1Mzk3OCwgMC4zOTQzMjcsIDAuNTE3ODc3LCAwLjY4MjgyOCwgMS4wMTI5NywgMS4yMTkxNCIsIFwKLSAgICAgICAgICAiMC4yMzU1NDUsIDAuMjYwMjcsIDAuNDAwNjA4LCAwLjUyNDE1NCwgMC42ODkyODcsIDEuMDE4OCwgMS4yMjUzOCIsIFwKLSAgICAgICAgICAiMC4yNDM5NzEsIDAuMjY4Njg2LCAwLjQwOTEwNiwgMC41MzI1ODQsIDAuNjk3ODE1LCAxLjAyNzc1LCAxLjIzMzkxIiwgXAotICAgICAgICAgICIwLjI1MDQzNywgMC4yNzUwMzcsIDAuNDE1MzczLCAwLjUzOTAyNSwgMC43MDM5MiwgMS4wMzQxLCAxLjI0MDI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4OTIwMywgMC4xMzg2MTEsIDAuNDIxMDcxLCAwLjY2OTY5NCwgMS4wMDMwMiwgMS42Njc1MiwgMi4wODIwNSIsIFwKLSAgICAgICAgICAiMC4wODkyMDcsIDAuMTM4NjQyLCAwLjQyMTExMSwgMC42Njk2NjgsIDEuMDAyODIsIDEuNjY3NDYsIDIuMDgyODMiLCBcCi0gICAgICAgICAgIjAuMDg5MjAzLCAwLjEzODYyLCAwLjQyMTA2MiwgMC42Njk2NjUsIDEuMDAyNzksIDEuNjY3NDMsIDIuMDgyODUiLCBcCi0gICAgICAgICAgIjAuMDg5MTc1LCAwLjEzODYyOCwgMC40MjExMiwgMC42Njk2NiwgMS4wMDE2OCwgMS42Njc0NywgMi4wODI3MSIsIFwKLSAgICAgICAgICAiMC4wODkyMTEsIDAuMTM4NjUsIDAuNDIxMTA1LCAwLjY2OTY3MywgMS4wMDI4NSwgMS42NjUzMiwgMi4wODI0OCIsIFwKLSAgICAgICAgICAiMC4wODkxNzQsIDAuMTM4NjIsIDAuNDIxMTQ0LCAwLjY2OTY1OSwgMS4wMDI4MywgMS42Njc1MywgMi4wODI3IiwgXAotICAgICAgICAgICIwLjA4OTIsIDAuMTM4NjczLCAwLjQyMTExOCwgMC42Njk2NDYsIDEuMDAxMzcsIDEuNjY3NDUsIDIuMDgyNTgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUk4iOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJpc2luZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xODU5MTEsIDAuMjEwMDE4LCAwLjM0NzA3NCwgMC40NjgwMDIsIDAuNjI5NDUxLCAwLjk1MjA0OSwgMS4xNTM4MyIsIFwKLSAgICAgICAgICAiMC4xOTQ1NjQsIDAuMjE4NjU5LCAwLjM1NTcxNSwgMC40NzY2NDksIDAuNjM4MDM2LCAwLjk2MDUzNywgMS4xNjI0IiwgXAotICAgICAgICAgICIwLjIwNTIxMywgMC4yMjkzMDgsIDAuMzY2MzY0LCAwLjQ4NzMsIDAuNjQ4NjgyLCAwLjk3MTIwMiwgMS4xNzMwNCIsIFwKLSAgICAgICAgICAiMC4yMTUxNTQsIDAuMjM5Mzc1LCAwLjM3NjMwMSwgMC40OTcyMzgsIDAuNjU4NjIzLCAwLjk4MTExOCwgMS4xODI5OCIsIFwKLSAgICAgICAgICAiMC4yMjQyOTQsIDAuMjQ4MzksIDAuMzg1NDc2LCAwLjUwNjMwMiwgMC42Njc2OTIsIDAuOTkwNCwgMS4xOTIxOSIsIFwKLSAgICAgICAgICAiMC4yMzY5NTUsIDAuMjYxMTc0LCAwLjM5ODEwNSwgMC41MTkwMzcsIDAuNjgwNDI1LCAxLjAwMjkxLCAxLjIwNDc5IiwgXAotICAgICAgICAgICIwLjI0NzE4NywgMC4yNzEyMywgMC40MDgzMzgsIDAuNTI5MjYxLCAwLjY5MDY3MiwgMS4wMTMzMywgMS4yMTUxIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4OTI3NCwgMC4xMzg4MDIsIDAuNDIwOTU3LCAwLjY3MDUxNCwgMS4wMDMyNSwgMS42Njc3OCwgMi4wODMyIiwgXAotICAgICAgICAgICIwLjA4OTI1NywgMC4xMzg4NTMsIDAuNDIwNjQzLCAwLjY2OTczMiwgMS4wMDMxNCwgMS42NjUzNywgMi4wODMyIiwgXAotICAgICAgICAgICIwLjA4OTI1OSwgMC4xMzg4NDcsIDAuNDIwNjQsIDAuNjY5NzY2LCAxLjAwMzE0LCAxLjY2NTEsIDIuMDgzMjEiLCBcCi0gICAgICAgICAgIjAuMDg5MjU1LCAwLjEzODgxMywgMC40MjAwMTEsIDAuNjY5NzI4LCAxLjAwMzEzLCAxLjY2NTUxLCAyLjA4MzE5IiwgXAotICAgICAgICAgICIwLjA4OTI1OSwgMC4xMzg4MjUsIDAuNDIwNjk2LCAwLjY3MDM4LCAxLjAwMjYyLCAxLjY2Nzc5LCAyLjA4MzE3IiwgXAotICAgICAgICAgICIwLjA4OTI1NiwgMC4xMzg4MjMsIDAuNDIwODI1LCAwLjY2OTY5OSwgMS4wMDMxMywgMS42NjU2MSwgMi4wODMyIiwgXAotICAgICAgICAgICIwLjA4OTI1OSwgMC4xMzg3NjIsIDAuNDIwOTAzLCAwLjY3MDQ4MSwgMS4wMDMxNSwgMS42Njc3NiwgMi4wODMxOCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogZmFsbGluZ19lZGdlOwotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xOTU0MywgMC4yMjAxMzUsIDAuMzYwMzkxLCAwLjQ4NDA2MywgMC42NDkwMjcsIDAuOTc4NjEsIDEuMTg0NjUiLCBcCi0gICAgICAgICAgIjAuMjA1MTk4LCAwLjIyOTg2NCwgMC4zNzAxMTQsIDAuNDkzNjcyLCAwLjY1ODc4NiwgMC45ODgwMDIsIDEuMTk0MDIiLCBcCi0gICAgICAgICAgIjAuMjE2OTUzLCAwLjI0MTcxMiwgMC4zODE5ODMsIDAuNTA1NTE4LCAwLjY3MDYyLCAxLjAwMDE3LCAxLjIwNjMxIiwgXAotICAgICAgICAgICIwLjIyNzI3NSwgMC4yNTIwMzksIDAuMzkyMzMsIDAuNTE1ODY4LCAwLjY4MDk2OCwgMS4wMTA1LCAxLjIxNjY1IiwgXAotICAgICAgICAgICIwLjIzNjM0NSwgMC4yNjExMDgsIDAuNDAxMzgxLCAwLjUyNDkyMSwgMC42OTAwMTksIDEuMDE5NTUsIDEuMjI1NyIsIFwKLSAgICAgICAgICAiMC4yNTAyNjgsIDAuMjc1MDI4LCAwLjQxNTMsIDAuNTM4ODM2LCAwLjcwMzkzOCwgMS4wMzM0OCwgMS4yMzk2MyIsIFwKLSAgICAgICAgICAiMC4yNjE1MzYsIDAuMjg2MzIzLCAwLjQyNjYyMywgMC41NTAxNjUsIDAuNzE1MjYzLCAxLjA0NDgsIDEuMjUwOTQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg5MTkzLCAwLjEzODY4MywgMC40MjExMzgsIDAuNjcwMTc2LCAxLjAwMjY5LCAxLjY2MTc0LCAyLjA3NTU1IiwgXAotICAgICAgICAgICIwLjA4OTIxLCAwLjEzODY3OSwgMC40MjExMDMsIDAuNjY5NjYyLCAxLjAwMjcsIDEuNjY1MTMsIDIuMDgwNyIsIFwKLSAgICAgICAgICAiMC4wODkxOTEsIDAuMTM4NjQ1LCAwLjQyMTA5MSwgMC42Njk2NzYsIDEuMDAyNiwgMS42NjU0MywgMi4wODA2OCIsIFwKLSAgICAgICAgICAiMC4wODkxNjYsIDAuMTM4Njg0LCAwLjQyMTExMiwgMC42Njk2NjYsIDEuMDAyNjIsIDEuNjY1NTQsIDIuMDgzMiIsIFwKLSAgICAgICAgICAiMC4wODkyLCAwLjEzODY0MiwgMC40MjExMDIsIDAuNjY5NjYxLCAxLjAwMjYxLCAxLjY2NTMzLCAyLjA4MDY5IiwgXAotICAgICAgICAgICIwLjA4OTE5LCAwLjEzODY0MSwgMC40MjEwOTksIDAuNjY5NjczLCAxLjAwMjYxLCAxLjY2NTM3LCAyLjA4MDY4IiwgXAotICAgICAgICAgICIwLjA4OTE5MSwgMC4xMzg2NjUsIDAuNDIxMDksIDAuNjcwMTczLCAxLjAwMjYzLCAxLjY2Njg4LCAyLjA4MDY5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiBwcmVzZXQ7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5Mjg2OSwgMC4xMTcwNDgsIDAuMjU0MTgxLCAwLjM3NDk4OCwgMC41MzY0MzksIDAuODU4OTU1LCAxLjA2MDYxIiwgXAotICAgICAgICAgICIwLjEwMjczOSwgMC4xMjY4NjIsIDAuMjYzODkzLCAwLjM4NDgyMiwgMC41NDYxNzMsIDAuODY4NjQ5LCAxLjA3MDQyIiwgXAotICAgICAgICAgICIwLjExNTEzMSwgMC4xMzk0MSwgMC4yNzYzMzQsIDAuMzk3MTk4LCAwLjU1ODYzMiwgMC44ODEwNjUsIDEuMDgyODQiLCBcCi0gICAgICAgICAgIjAuMTI2OTg3LCAwLjE1MTA1NCwgMC4yODgxMjksIDAuNDA5MDM4LCAwLjU3MDM2NywgMC44OTMyMjgsIDEuMDk0NTkiLCBcCi0gICAgICAgICAgIjAuMTM3MzczLCAwLjE2MTUyNiwgMC4yOTg1NDIsIDAuNDE5NDY0LCAwLjU4MDc5NywgMC45MDMyNTksIDEuMTA1MTciLCBcCi0gICAgICAgICAgIjAuMTUxNDUyLCAwLjE3NTYwNiwgMC4zMTI1ODIsIDAuNDMzNTUxLCAwLjU5NDg5LCAwLjkxNzY5NiwgMS4xMTkwMyIsIFwKLSAgICAgICAgICAiMC4xNjIxODMsIDAuMTg2MzA5LCAwLjMyMzI1MiwgMC40NDQyMDYsIDAuNjA1NTY1LCAwLjkyODEwNSwgMS4xMjk3MiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODkyNDgsIDAuMTM4NzY3LCAwLjQyMTQxMSwgMC42NzAyNDksIDEuMDAyODQsIDEuNjY2OTYsIDIuMDgyOCIsIFwKLSAgICAgICAgICAiMC4wODkyNDksIDAuMTM4NTU1LCAwLjQyMTI0OCwgMC42NzA2MDEsIDEuMDAyOTcsIDEuNjY3NTYsIDIuMDgyMTIiLCBcCi0gICAgICAgICAgIjAuMDg4OTkyLCAwLjEzODgxMiwgMC40MjEzMDgsIDAuNjcwMzYsIDEuMDAyNDMsIDEuNjY0OCwgMi4wODI3NyIsIFwKLSAgICAgICAgICAiMC4wODkwNzQsIDAuMTM4NjEsIDAuNDIxMjU4LCAwLjY3MDYxMSwgMS4wMDI1OSwgMS42Njc1MiwgMi4wODI4OSIsIFwKLSAgICAgICAgICAiMC4wODkyNjEsIDAuMTM4ODQ3LCAwLjQyMTIxOSwgMC42NzA0ODksIDEuMDAyNzIsIDEuNjY3MjcsIDIuMDgyNzkiLCBcCi0gICAgICAgICAgIjAuMDg5Mjg2LCAwLjEzODkwNiwgMC40MjA4MTcsIDAuNjcwNTI1LCAxLjAwMjcyLCAxLjY2NzE4LCAyLjA4MjQ1IiwgXAotICAgICAgICAgICIwLjA4OTE2LCAwLjEzODc2NiwgMC40MjEyOSwgMC42NzAyODMsIDEuMDAyNjYsIDEuNjY3MDUsIDIuMDgyMjQiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTE2NjIxLCAwLjE0MTM3OSwgMC4yODE0NTYsIDAuNDA1MTkxLCAwLjU3MDIxOCwgMC45MDAzMywgMS4xMDYzOSIsIFwKLSAgICAgICAgICAiMC4xMjUzMjYsIDAuMTQ5OTY4LCAwLjI5MDMzMSwgMC40MTM4NTcsIDAuNTc4ODc3LCAwLjkwODkzNiwgMS4xMTQ5NiIsIFwKLSAgICAgICAgICAiMC4xMzU5NSwgMC4xNjA1ODgsIDAuMzAwOTU3LCAwLjQyNDQ4MywgMC41ODk1MDUsIDAuOTE5NTc3LCAxLjEyNTU5IiwgXAotICAgICAgICAgICIwLjE0NjQ5NiwgMC4xNzEyNTgsIDAuMzExMzE2LCAwLjQzNTI0NywgMC42MDAxMDcsIDAuOTMwMDAyLCAxLjEzNjA1IiwgXAotICAgICAgICAgICIwLjE1NjU2NywgMC4xODExNzgsIDAuMzIxNTM5LCAwLjQ0NTA2OSwgMC42MTAwMTksIDAuOTQwMDc1LCAxLjE0NjE5IiwgXAotICAgICAgICAgICIwLjE3MTI1OCwgMC4xOTU5MzYsIDAuMzM2MjEzLCAwLjQ1OTc5NiwgMC42MjQ4MDIsIDAuOTU0OTA0LCAxLjE2MDkyIiwgXAotICAgICAgICAgICIwLjE4Mjc4MywgMC4yMDc1MTQsIDAuMzQ3NjkyLCAwLjQ3MTQ0MSwgMC42MzY0NDUsIDAuOTY2NjI4LCAxLjE3MjcyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4OTE3NywgMC4xMzg2NzMsIDAuNDIxMDg0LCAwLjY2OTY2NywgMS4wMDI0MiwgMS42NjUzMSwgMi4wNzk3NiIsIFwKLSAgICAgICAgICAiMC4wODkxNDksIDAuMTM4NjcsIDAuNDIxMDc0LCAwLjY3MDU0NiwgMS4wMDI0MiwgMS42NjY5NiwgMi4wNzk0MyIsIFwKLSAgICAgICAgICAiMC4wODkxNzUsIDAuMTM4NjM2LCAwLjQyMTA2LCAwLjY2OTY2NCwgMS4wMDI0MSwgMS42NjQ4LCAyLjA3OTQ0IiwgXAotICAgICAgICAgICIwLjA4OTE4OSwgMC4xMzg2NjgsIDAuNDIxMTIxLCAwLjY3MDMyNSwgMS4wMDIzOSwgMS42NjcwMiwgMi4wODMwOCIsIFwKLSAgICAgICAgICAiMC4wODkxNzgsIDAuMTM4NjQ3LCAwLjQyMTA5MSwgMC42Njk2NjcsIDEuMDAxMDcsIDEuNjY2OTQsIDIuMDgyMjEiLCBcCi0gICAgICAgICAgIjAuMDg5MjUzLCAwLjEzODY4MSwgMC40MjEwNzgsIDAuNjcwMTY2LCAxLjAwMjI1LCAxLjY2NDc3LCAyLjA3OTUzIiwgXAotICAgICAgICAgICIwLjA4OTI2NiwgMC4xMzg3NTMsIDAuNDIwODY1LCAwLjY3MDMwNywgMS4wMDI3NCwgMS42NjUxNywgMi4wNzk1NyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkQiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjY0NiwgMC4wMDI2NTMsIDAuMDAyNjYyLCAwLjAwMjY2NCwgMC4wMDI2NjMsIDAuMDAyNjY0LCAwLjAwMjY2OCIsIFwKLSAgICAgICAgICAiMC4wMDI2MzUsIDAuMDAyNjQyLCAwLjAwMjY1MiwgMC4wMDI2NTQsIDAuMDAyNjU1LCAwLjAwMjY1NSwgMC4wMDI2NTYiLCBcCi0gICAgICAgICAgIjAuMDAyNjMsIDAuMDAyNjM2LCAwLjAwMjY0NiwgMC4wMDI2NDgsIDAuMDAyNjQ5LCAwLjAwMjY1LCAwLjAwMjY1IiwgXAotICAgICAgICAgICIwLjAwMjYyNCwgMC4wMDI2MzEsIDAuMDAyNjQsIDAuMDAyNjQyLCAwLjAwMjY0NSwgMC4wMDI2NDQsIDAuMDAyNjQ2IiwgXAotICAgICAgICAgICIwLjAwMjYyMywgMC4wMDI2MywgMC4wMDI2NCwgMC4wMDI2NDEsIDAuMDAyNjQyLCAwLjAwMjY0MywgMC4wMDI2NDQiLCBcCi0gICAgICAgICAgIjAuMDAyNjIzLCAwLjAwMjYzLCAwLjAwMjY0LCAwLjAwMjY0MiwgMC4wMDI2NDQsIDAuMDAyNjQ0LCAwLjAwMjY0NSIsIFwKLSAgICAgICAgICAiMC4wMDI2MjYsIDAuMDAyNjMzLCAwLjAwMjY0MywgMC4wMDI2NDUsIDAuMDAyNjQ3LCAwLjAwMjY0OCwgMC4wMDI2NDgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDMzMTcsIDAuMDAzMzIzLCAwLjAwMzMzMiwgMC4wMDMzMzQsIDAuMDAzMzM0LCAwLjAwMzMzNiwgMC4wMDMzMzYiLCBcCi0gICAgICAgICAgIjAuMDAzMzExLCAwLjAwMzMxOCwgMC4wMDMzMjYsIDAuMDAzMzI5LCAwLjAwMzMyOSwgMC4wMDMzMywgMC4wMDMzMyIsIFwKLSAgICAgICAgICAiMC4wMDMzMDcsIDAuMDAzMzE0LCAwLjAwMzMyMiwgMC4wMDMzMjUsIDAuMDAzMzI1LCAwLjAwMzMyNSwgMC4wMDMzMjYiLCBcCi0gICAgICAgICAgIjAuMDAzMzA0LCAwLjAwMzMxMSwgMC4wMDMzMiwgMC4wMDMzMjIsIDAuMDAzMzIzLCAwLjAwMzMyMywgMC4wMDMzMjQiLCBcCi0gICAgICAgICAgIjAuMDAzMzAyLCAwLjAwMzMwOSwgMC4wMDMzMTcsIDAuMDAzMzE5LCAwLjAwMzMyLCAwLjAwMzMyMSwgMC4wMDMzMjEiLCBcCi0gICAgICAgICAgIjAuMDAzMywgMC4wMDMzMDYsIDAuMDAzMzE2LCAwLjAwMzMxOCwgMC4wMDMzMTgsIDAuMDAzMzIsIDAuMDAzMzIiLCBcCi0gICAgICAgICAgIjAuMDAzMzA4LCAwLjAwMzMxNSwgMC4wMDMzMjQsIDAuMDAzMzI2LCAwLjAwMzMyNywgMC4wMDMzMjgsIDAuMDAzMzI4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiR04iOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDU3NiwgMC4wMDQ1ODMsIDAuMDA0NTkyLCAwLjAwNDU5MywgMC4wMDQ1OTQsIDAuMDA0NTk1LCAwLjAwNDU5NSIsIFwKLSAgICAgICAgICAiMC4wMDQ1NiwgMC4wMDQ1NjcsIDAuMDA0NTc2LCAwLjAwNDU3OCwgMC4wMDQ1NzksIDAuMDA0NTgsIDAuMDA0NTgxIiwgXAotICAgICAgICAgICIwLjAwNDU1NywgMC4wMDQ1NjQsIDAuMDA0NTczLCAwLjAwNDU3NSwgMC4wMDQ1NzYsIDAuMDA0NTc3LCAwLjAwNDU3NyIsIFwKLSAgICAgICAgICAiMC4wMDQ1NTgsIDAuMDA0NTY1LCAwLjAwNDU3NCwgMC4wMDQ1NzUsIDAuMDA0NTc3LCAwLjAwNDU3OCwgMC4wMDQ1NzYiLCBcCi0gICAgICAgICAgIjAuMDA0NTY0LCAwLjAwNDU3LCAwLjAwNDU4LCAwLjAwNDU4NCwgMC4wMDQ1ODMsIDAuMDA0NTg0LCAwLjAwNDU4NiIsIFwKLSAgICAgICAgICAiMC4wMDQ1NzMsIDAuMDA0NTgsIDAuMDA0NTg5LCAwLjAwNDU5MSwgMC4wMDQ1OTIsIDAuMDA0NTkzLCAwLjAwNDU5MiIsIFwKLSAgICAgICAgICAiMC4wMDQ1ODcsIDAuMDA0NTk0LCAwLjAwNDYwMywgMC4wMDQ2MDUsIDAuMDA0NjA2LCAwLjAwNDYwNiwgMC4wMDQ2MDciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDUxMDUsIDAuMDA1MTEyLCAwLjAwNTEyLCAwLjAwNTEyMiwgMC4wMDUxMjMsIDAuMDA1MTIzLCAwLjAwNTEyMyIsIFwKLSAgICAgICAgICAiMC4wMDUwOSwgMC4wMDUwOTYsIDAuMDA1MTA1LCAwLjAwNTEwNiwgMC4wMDUxMDcsIDAuMDA1MTA4LCAwLjAwNTEwOCIsIFwKLSAgICAgICAgICAiMC4wMDUwODYsIDAuMDA1MDkzLCAwLjAwNTEwMSwgMC4wMDUxMDMsIDAuMDA1MTA0LCAwLjAwNTEwNSwgMC4wMDUxMDUiLCBcCi0gICAgICAgICAgIjAuMDA1MDg3LCAwLjAwNTA5NCwgMC4wMDUxMDIsIDAuMDA1MTA0LCAwLjAwNTEwNSwgMC4wMDUxMDYsIDAuMDA1MTA2IiwgXAotICAgICAgICAgICIwLjAwNTA5NiwgMC4wMDUxMDMsIDAuMDA1MTA3LCAwLjAwNTEwOCwgMC4wMDUxMTMsIDAuMDA1MTE1LCAwLjAwNTEwOSIsIFwKLSAgICAgICAgICAiMC4wMDUxMDQsIDAuMDA1MTExLCAwLjAwNTEyLCAwLjAwNTEyMiwgMC4wMDUxMjMsIDAuMDA1MTIzLCAwLjAwNTEyMyIsIFwKLSAgICAgICAgICAiMC4wMDUxMTIsIDAuMDA1MTE4LCAwLjAwNTEyNywgMC4wMDUxMywgMC4wMDUxMjgsIDAuMDA1MTMsIDAuMDA1MTMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzNzE0LCAwLjAwMzcyMSwgMC4wMDM3MywgMC4wMDM3MzIsIDAuMDAzNzMzLCAwLjAwMzczMywgMC4wMDM3MzQiLCBcCi0gICAgICAgICAgIjAuMDAzNywgMC4wMDM3MDYsIDAuMDAzNzE1LCAwLjAwMzcxNywgMC4wMDM3MTgsIDAuMDAzNzE5LCAwLjAwMzcyIiwgXAotICAgICAgICAgICIwLjAwMzY5MywgMC4wMDM3LCAwLjAwMzcwOSwgMC4wMDM3MTEsIDAuMDAzNzEyLCAwLjAwMzcxMywgMC4wMDM3MTMiLCBcCi0gICAgICAgICAgIjAuMDAzNjg5LCAwLjAwMzY5NiwgMC4wMDM3MDYsIDAuMDAzNzA3LCAwLjAwMzcwOCwgMC4wMDM3MSwgMC4wMDM3MSIsIFwKLSAgICAgICAgICAiMC4wMDM2OTIsIDAuMDAzNjk4LCAwLjAwMzcwOCwgMC4wMDM3MDksIDAuMDAzNzEsIDAuMDAzNzExLCAwLjAwMzcxMSIsIFwKLSAgICAgICAgICAiMC4wMDM2OTMsIDAuMDAzNywgMC4wMDM3MDksIDAuMDAzNzEyLCAwLjAwMzcxMiwgMC4wMDM3MTMsIDAuMDAzNzEzIiwgXAotICAgICAgICAgICIwLjAwMzY5NiwgMC4wMDM3MDMsIDAuMDAzNzEyLCAwLjAwMzcxNCwgMC4wMDM3MTUsIDAuMDAzNzE2LCAwLjAwMzcxNiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDY2MSwgMC4wMDQ2NjcsIDAuMDA0Njc2LCAwLjAwNDY3NywgMC4wMDQ2NzgsIDAuMDA0Njc5LCAwLjAwNDY3OSIsIFwKLSAgICAgICAgICAiMC4wMDQ2NDgsIDAuMDA0NjU0LCAwLjAwNDY2MiwgMC4wMDQ2NjMsIDAuMDA0NjY0LCAwLjAwNDY2NSwgMC4wMDQ2NjUiLCBcCi0gICAgICAgICAgIjAuMDA0NjQyLCAwLjAwNDY0OCwgMC4wMDQ2NTcsIDAuMDA0NjU4LCAwLjAwNDY1OSwgMC4wMDQ2NjEsIDAuMDA0NjYiLCBcCi0gICAgICAgICAgIjAuMDA0NjQxLCAwLjAwNDY0NywgMC4wMDQ2NTUsIDAuMDA0NjU3LCAwLjAwNDY1NywgMC4wMDQ2NTgsIDAuMDA0NjU5IiwgXAotICAgICAgICAgICIwLjAwNDY0NCwgMC4wMDQ2NSwgMC4wMDQ2NTksIDAuMDA0NjYsIDAuMDA0NjYxLCAwLjAwNDY2MSwgMC4wMDQ2NjIiLCBcCi0gICAgICAgICAgIjAuMDA0NjU0LCAwLjAwNDY2LCAwLjAwNDY2OCwgMC4wMDQ2NywgMC4wMDQ2NzEsIDAuMDA0NjcxLCAwLjAwNDY3MiIsIFwKLSAgICAgICAgICAiMC4wMDQ2NTgsIDAuMDA0NjY0LCAwLjAwNDY3MywgMC4wMDQ2NzQsIDAuMDA0Njc1LCAwLjAwNDY3NiwgMC4wMDQ2NzYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzMDY4LCAwLjAwMzA3MywgMC4wMDMwNzgsIDAuMDAzMDc5LCAwLjAwMzA4LCAwLjAwMzA4LCAwLjAwMzA4IiwgXAotICAgICAgICAgICIwLjAwMzA1NywgMC4wMDMwNjIsIDAuMDAzMDY4LCAwLjAwMzA3LCAwLjAwMzA3LCAwLjAwMzA3MSwgMC4wMDMwNzEiLCBcCi0gICAgICAgICAgIjAuMDAzMDQ2LCAwLjAwMzA1MSwgMC4wMDMwNTksIDAuMDAzMDYsIDAuMDAzMDYxLCAwLjAwMzA2MiwgMC4wMDMwNjIiLCBcCi0gICAgICAgICAgIjAuMDAzMDM2LCAwLjAwMzA0MiwgMC4wMDMwNTEsIDAuMDAzMDUzLCAwLjAwMzA1NCwgMC4wMDMwNTYsIDAuMDAzMDU2IiwgXAotICAgICAgICAgICIwLjAwMzAzNCwgMC4wMDMwNDEsIDAuMDAzMDUsIDAuMDAzMDUyLCAwLjAwMzA1NCwgMC4wMDMwNTUsIDAuMDAzMDU1IiwgXAotICAgICAgICAgICIwLjAwMzAzNSwgMC4wMDMwNDEsIDAuMDAzMDUyLCAwLjAwMzA1NCwgMC4wMDMwNTYsIDAuMDAzMDU3LCAwLjAwMzA1OCIsIFwKLSAgICAgICAgICAiMC4wMDMwNDEsIDAuMDAzMDQ4LCAwLjAwMzA1OSwgMC4wMDMwNjIsIDAuMDAzMDY0LCAwLjAwMzA2NSwgMC4wMDMwNjYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDIxOTQsIDAuMDAyMTk4LCAwLjAwMjIwNCwgMC4wMDIyMDUsIDAuMDAyMjA3LCAwLjAwMjIwNiwgMC4wMDIyMDciLCBcCi0gICAgICAgICAgIjAuMDAyMTc4LCAwLjAwMjE4MywgMC4wMDIxOSwgMC4wMDIxOTIsIDAuMDAyMTkyLCAwLjAwMjE5MiwgMC4wMDIxOTIiLCBcCi0gICAgICAgICAgIjAuMDAyMTcsIDAuMDAyMTc2LCAwLjAwMjE4MywgMC4wMDIxODUsIDAuMDAyMTg1LCAwLjAwMjE4NSwgMC4wMDIxODUiLCBcCi0gICAgICAgICAgIjAuMDAyMTY5LCAwLjAwMjE3NSwgMC4wMDIxODQsIDAuMDAyMTg0LCAwLjAwMjE4NCwgMC4wMDIxODUsIDAuMDAyMTg1IiwgXAotICAgICAgICAgICIwLjAwMjE2NywgMC4wMDIxNzQsIDAuMDAyMTgyLCAwLjAwMjE4NCwgMC4wMDIxODQsIDAuMDAyMTg1LCAwLjAwMjE4NSIsIFwKLSAgICAgICAgICAiMC4wMDIxNjksIDAuMDAyMTc1LCAwLjAwMjE4NCwgMC4wMDIxODYsIDAuMDAyMTg3LCAwLjAwMjE4NywgMC4wMDIxODgiLCBcCi0gICAgICAgICAgIjAuMDAyMTczLCAwLjAwMjE4LCAwLjAwMjE4OSwgMC4wMDIxOTEsIDAuMDAyMTkyLCAwLjAwMjE5MywgMC4wMDIxOTMiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFFOKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMjYzOTU1OwotICAgIGZ1bmN0aW9uIDogIk41IjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJEIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNTMxNTksIDAuMTc4NDg0LCAwLjMxNzgyNCwgMC40NDA1ODEsIDAuNjA0MTMxLCAwLjkzMTM1LCAxLjEzNTc0IiwgXAotICAgICAgICAgICIwLjE2MTQ2MiwgMC4xODY3OSwgMC4zMjYxMjQsIDAuNDQ4ODc1LCAwLjYxMjQzNCwgMC45Mzk2NjksIDEuMTQ0MDQiLCBcCi0gICAgICAgICAgIjAuMTcwOTYsIDAuMTk2MjgyLCAwLjMzNTYzLCAwLjQ1ODMxOCwgMC42MjE5MjUsIDAuOTQ5MTU2LCAxLjE1MzUzIiwgXAotICAgICAgICAgICIwLjE3OTg2NiwgMC4yMDUyMDIsIDAuMzQ0NTM3LCAwLjQ2NzIzNiwgMC42MzA4MzcsIDAuOTU4MDM0LCAxLjE2MjUxIiwgXAotICAgICAgICAgICIwLjE4ODA0LCAwLjIxMzM2NSwgMC4zNTI3MDgsIDAuNDc1Mzk2LCAwLjYzODk5OCwgMC45NjU5MDYsIDEuMTcwMzIiLCBcCi0gICAgICAgICAgIjAuMTk5NDc3LCAwLjIyNDgwOCwgMC4zNjQxNzIsIDAuNDg2ODUsIDAuNjUwNDUxLCAwLjk3NzY5NywgMS4xODIxIiwgXAotICAgICAgICAgICIwLjIwODM1NywgMC4yMzM2ODMsIDAuMzczMDE1LCAwLjQ5NTcyMywgMC42NTkzMjgsIDAuOTg2NjEyLCAxLjE5MDk3Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwMTY1NSwgMC4xNDk0NjcsIDAuNDMwOCwgMC42ODI5NTMsIDEuMDE5ODgsIDEuNjk0MzgsIDIuMTE1NzYiLCBcCi0gICAgICAgICAgIjAuMTAxNjU2LCAwLjE0OTQ1NiwgMC40MzA3MTksIDAuNjgyOTI2LCAxLjAxOTg3LCAxLjY5NDM3LCAyLjExNTc0IiwgXAotICAgICAgICAgICIwLjEwMTcyNiwgMC4xNDk0NTYsIDAuNDMwODExLCAwLjY4MTk1LCAxLjAxOTg3LCAxLjY5NDM1LCAyLjExNTc0IiwgXAotICAgICAgICAgICIwLjEwMTc0OCwgMC4xNDk0NjEsIDAuNDMwNzU1LCAwLjY4MTg5OCwgMS4wMTkzNCwgMS42OTQyNCwgMi4xMTU4MyIsIFwKLSAgICAgICAgICAiMC4xMDE3MzYsIDAuMTQ5NDU5LCAwLjQzMDcxNiwgMC42ODA5MzEsIDEuMDE2OTYsIDEuNjg5MDYsIDIuMTA5MzciLCBcCi0gICAgICAgICAgIjAuMTAxODM0LCAwLjE0OTUxNywgMC40MzAwMDUsIDAuNjgxODM5LCAxLjAxOTg1LCAxLjY5NDM1LCAyLjExNTc3IiwgXAotICAgICAgICAgICIwLjEwMTgwNSwgMC4xNDk0OTYsIDAuNDMwNjE5LCAwLjY4MjY5NSwgMS4wMTk2MywgMS42OTA4OSwgMi4xMTU0MSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMjY4OTgsIDAuMTUxNzkxLCAwLjI5MjA0OCwgMC40MTU2NjUsIDAuNTgwNjcxLCAwLjkxMDQzNywgMS4xMTY1MSIsIFwKLSAgICAgICAgICAiMC4xMzU2MjYsIDAuMTYwNTE3LCAwLjMwMDc3OSwgMC40MjQ0OTcsIDAuNTg5NDM1LCAwLjkxOTE0NCwgMS4xMjUzIiwgXAotICAgICAgICAgICIwLjE0NjI1LCAwLjE3MTE0MSwgMC4zMTE0MDcsIDAuNDM1MTIxLCAwLjYwMDA0NSwgMC45Mjk3NzEsIDEuMTM1OTMiLCBcCi0gICAgICAgICAgIjAuMTU2MzU3LCAwLjE4MTI0OSwgMC4zMjE1MDgsIDAuNDQ1MTA1LCAwLjYxMDEzOSwgMC45Mzk4ODksIDEuMTQ2MDUiLCBcCi0gICAgICAgICAgIjAuMTY1NzM5LCAwLjE5MDYzNiwgMC4zMzA4NjEsIDAuNDU0NjA5LCAwLjYxOTU5OCwgMC45NDkxNTYsIDEuMTU1NCIsIFwKLSAgICAgICAgICAiMC4xNzkwODIsIDAuMjAzOTc0LCAwLjM0NDI1MiwgMC40Njc5MjYsIDAuNjMyODc2LCAwLjk2MjYzMywgMS4xNjg3MyIsIFwKLSAgICAgICAgICAiMC4xODk0NzYsIDAuMjE0MzcxLCAwLjM1NDYzLCAwLjQ3ODMxMywgMC42NDMyNzQsIDAuOTczMTAxLCAxLjE3OTI2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5MzUwOCwgMC4xNDIwODEsIDAuNDIyNzQ0LCAwLjY3MDYzMiwgMS4wMDQyMiwgMS42Njg3MywgMi4wODM4NiIsIFwKLSAgICAgICAgICAiMC4wOTM3MDIsIDAuMTQyMDc5LCAwLjQyMTYxNSwgMC42NzEwNzMsIDEuMDA0NDUsIDEuNjY4NzIsIDIuMDg0MjgiLCBcCi0gICAgICAgICAgIjAuMDkzNDg1LCAwLjE0MTg4LCAwLjQyMTc1LCAwLjY3MTAwNSwgMS4wMDI0OCwgMS42Njg3MSwgMi4wODQzMSIsIFwKLSAgICAgICAgICAiMC4wOTM3MjIsIDAuMTQyMTc4LCAwLjQyMTU4MSwgMC42NzA4NDEsIDEuMDA0MjUsIDEuNjY4NzEsIDIuMDgwNjgiLCBcCi0gICAgICAgICAgIjAuMDkzNDgyLCAwLjE0MjA3MiwgMC40MjE2MzksIDAuNjY5NTY3LCAxLjAwMjMyLCAxLjY2ODIxLCAyLjA4Mzc5IiwgXAotICAgICAgICAgICIwLjA5Mzc1NCwgMC4xNDIxMzEsIDAuNDIxOTk1LCAwLjY3MTU0MiwgMS4wMDQzMiwgMS42Njg3NywgMi4wODE0NiIsIFwKLSAgICAgICAgICAiMC4wOTM3OTQsIDAuMTQyMTM0LCAwLjQyMjc3NCwgMC42NzE2NTcsIDEuMDA0MTYsIDEuNjY4ODYsIDIuMDgwMjMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiR04iOwotICAgICAgdGltaW5nX3NlbnNlIDogbm9uX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiBmYWxsaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE5OTQ2NiwgMC4yMjQ4MTgsIDAuMzY0MTQ4LCAwLjQ4Njg0OCwgMC42NTA0OTIsIDAuOTc3NjQ4LCAxLjE4MjAyIiwgXAotICAgICAgICAgICIwLjIwODk3NCwgMC4yMzQzMjEsIDAuMzczNjU5LCAwLjQ5NjM1MiwgMC42NTk5NDksIDAuOTg3MTUxLCAxLjE5MTYiLCBcCi0gICAgICAgICAgIjAuMjE4NzU4LCAwLjI0NDEwOSwgMC4zODM0NCwgMC41MDYxMzQsIDAuNjY5NzI4LCAwLjk5NjkzNiwgMS4yMDE0MSIsIFwKLSAgICAgICAgICAiMC4yMjYzNjEsIDAuMjUxNzE4LCAwLjM5MTA1NSwgMC41MTM3NDEsIDAuNjc3MzU4LCAxLjAwNDU3LCAxLjIwOTAxIiwgXAotICAgICAgICAgICIwLjIzMjU5MSwgMC4yNTc5NDQsIDAuMzk3MzI4LCAwLjUyMDAyLCAwLjY4MzU5MywgMS4wMTA3NywgMS4yMTUyMSIsIFwKLSAgICAgICAgICAiMC4yNDEwNzEsIDAuMjY2NDI4LCAwLjQwNTg0OCwgMC41Mjg0NTIsIDAuNjkyMTMzLCAxLjAxOTM2LCAxLjIyMzc1IiwgXAotICAgICAgICAgICIwLjI0NzQ0LCAwLjI3Mjc4NywgMC40MTIxMjcsIDAuNTM0ODk4LCAwLjY5ODU0NywgMS4wMjU3MiwgMS4yMzAxMiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDIwNzcsIDAuMTQ5NTgyLCAwLjQzMDgwOSwgMC42ODE5NDgsIDEuMDE5OTgsIDEuNjk0MjksIDIuMTE0NzciLCBcCi0gICAgICAgICAgIjAuMTAyMDk2LCAwLjE0OTYyLCAwLjQzMDgzOCwgMC42ODE4NjksIDEuMDE5ODYsIDEuNjk0MjksIDIuMTE1OCIsIFwKLSAgICAgICAgICAiMC4xMDIwOTcsIDAuMTQ5NjUxLCAwLjQzMDgwNywgMC42ODE4ODMsIDEuMDE5ODUsIDEuNjk0MjgsIDIuMTE1ODYiLCBcCi0gICAgICAgICAgIjAuMTAyMDc1LCAwLjE0OTY1NSwgMC40MzA4NDcsIDAuNjgxODc4LCAxLjAxODQsIDEuNjk0MzEsIDIuMTE1NzgiLCBcCi0gICAgICAgICAgIjAuMTAyMDk0LCAwLjE0OTY5MiwgMC40MzA4MzcsIDAuNjgxOTE2LCAxLjAxOTg4LCAxLjY5MTk2LCAyLjExNTY2IiwgXAotICAgICAgICAgICIwLjEwMjA3OSwgMC4xNDk2NTcsIDAuNDMwODM2LCAwLjY4MTg3NywgMS4wMTk4NywgMS42OTQzNCwgMi4xMTU3MyIsIFwKLSAgICAgICAgICAiMC4xMDIxMDksIDAuMTQ5NjkyLCAwLjQzMDgzOCwgMC42ODE4NCwgMS4wMTgzNywgMS42OTQyOSwgMi4xMTU3Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE5MDMwOCwgMC4yMTUxOTQsIDAuMzU1NTAxLCAwLjQ3OTE3NCwgMC42NDQwNzMsIDAuOTczODM0LCAxLjE3OTk2IiwgXAotICAgICAgICAgICIwLjE5OTc3MiwgMC4yMjQ2NiwgMC4zNjQ5MjcsIDAuNDg4NjQsIDAuNjUzNjI0LCAwLjk4MzI3NiwgMS4xODk0NCIsIFwKLSAgICAgICAgICAiMC4yMDk2MSwgMC4yMzQ0OTYsIDAuMzc0Nzc3LCAwLjQ5ODQ2NiwgMC42NjMzNjYsIDAuOTkzMTA3LCAxLjE5OTI0IiwgXAotICAgICAgICAgICIwLjIxNzIyMSwgMC4yNDIxMDcsIDAuMzgyMzgxLCAwLjUwNTk4OSwgMC42NzA5NzksIDEuMDAwNzQsIDEuMjA2NzYiLCBcCi0gICAgICAgICAgIjAuMjIzMjksIDAuMjQ4MTc4LCAwLjM4ODQ0NCwgMC41MTIxNzEsIDAuNjc3MDg1LCAxLjAwNjgsIDEuMjEyOTciLCBcCi0gICAgICAgICAgIjAuMjMxODM1LCAwLjI1NjcyOCwgMC4zOTcwMjgsIDAuNTIwNjY0LCAwLjY4NTYxMywgMS4wMTUzNywgMS4yMjE0NCIsIFwKLSAgICAgICAgICAiMC4yMzgzNDEsIDAuMjYzMjI4LCAwLjQwMzQ5NSwgMC41MjcyMDUsIDAuNjkyMTY0LCAxLjAyMTg0LCAxLjIyODA4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5Mzc3MywgMC4xNDIxNDgsIDAuNDIxODM4LCAwLjY3MDk3LCAxLjAwMjc4LCAxLjY2ODcsIDIuMDg0MTUiLCBcCi0gICAgICAgICAgIjAuMDkzNzU5LCAwLjE0MjE1LCAwLjQyMjIxMSwgMC42NzEwMDQsIDEuMDAyNDksIDEuNjY4NywgMi4wODQyNiIsIFwKLSAgICAgICAgICAiMC4wOTM3NzQsIDAuMTQyMTUsIDAuNDIyMDMzLCAwLjY3MTAxOCwgMS4wMDQyMSwgMS42Njg2MywgMi4wODQxMyIsIFwKLSAgICAgICAgICAiMC4wOTM3NjksIDAuMTQyMTExLCAwLjQyMTE5MywgMC42NzA5OTcsIDEuMDA0MjIsIDEuNjY2NzMsIDIuMDg0MTQiLCBcCi0gICAgICAgICAgIjAuMDkzNzU4LCAwLjE0MjE1LCAwLjQyMjE4OCwgMC42NzA5NTQsIDEuMDAyNiwgMS42Njg2NywgMi4wODQyNCIsIFwKLSAgICAgICAgICAiMC4wOTM3NjQsIDAuMTQyMTQ3LCAwLjQyMjAzNywgMC42NzA5OTEsIDEuMDA0MTksIDEuNjY4NjYsIDIuMDg0MTQiLCBcCi0gICAgICAgICAgIjAuMDkzNzY4LCAwLjE0MjExOCwgMC40MjE5MTMsIDAuNjcwMjI2LCAxLjAwNDIyLCAxLjY2ODY3LCAyLjA4NDI0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiByaXNpbmdfZWRnZTsKLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTc5ODAyLCAwLjIwNDY5NSwgMC4zNDQ5NjgsIDAuNDY4NjYxLCAwLjYzMzYwNCwgMC45NjMzMjMsIDEuMTY5NDgiLCBcCi0gICAgICAgICAgIjAuMTg4NDQ3LCAwLjIxMzMzMiwgMC4zNTM2MDgsIDAuNDc3MzAxLCAwLjY0MjIwNSwgMC45NzE5NjQsIDEuMTc4MDgiLCBcCi0gICAgICAgICAgIjAuMTk5MDkzLCAwLjIyMzk3OSwgMC4zNjQyNTcsIDAuNDg3OTQ5LCAwLjY1Mjg1LCAwLjk4MjYwNSwgMS4xODg3MiIsIFwKLSAgICAgICAgICAiMC4yMDkwNDQsIDAuMjMzOTI5LCAwLjM3NDIwNCwgMC40OTc5MDEsIDAuNjYyODA0LCAwLjk5MjU2OCwgMS4xOTg2OCIsIFwKLSAgICAgICAgICAiMC4yMTgxOCwgMC4yNDMwNjQsIDAuMzgzMzc5LCAwLjUwNjk2MSwgMC42NzE5MTgsIDEuMDAxNjgsIDEuMjA3ODQiLCBcCi0gICAgICAgICAgIjAuMjMwODQxLCAwLjI1NTcyOSwgMC4zOTYwMDEsIDAuNTE5Njk2LCAwLjY4NDYwMSwgMS4wMTQzOCwgMS4yMjA0OCIsIFwKLSAgICAgICAgICAiMC4yNDEwNzQsIDAuMjY1OTYxLCAwLjQwNjIyOSwgMC41Mjk5MTksIDAuNjk0ODQyLCAxLjAyNDU5LCAxLjIzMDc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5Mzc2NSwgMC4xNDIxNDYsIDAuNDIyMjM2LCAwLjY3MTUyMSwgMS4wMDQzOSwgMS42Njg3MywgMi4wODQyOCIsIFwKLSAgICAgICAgICAiMC4wOTM3NzUsIDAuMTQyMTUzLCAwLjQyMjA0OCwgMC42NzA5OTYsIDEuMDA0MjEsIDEuNjY2NzEsIDIuMDg0MTQiLCBcCi0gICAgICAgICAgIjAuMDkzNzc2LCAwLjE0MjE1MiwgMC40MjIwNDcsIDAuNjcxMDExLCAxLjAwNDIxLCAxLjY2NjU4LCAyLjA4NDEzIiwgXAotICAgICAgICAgICIwLjA5Mzc3MSwgMC4xNDIxMDcsIDAuNDIxMTg2LCAwLjY3MDk5NiwgMS4wMDQyMSwgMS42NjY3NywgMi4wODQxNCIsIFwKLSAgICAgICAgICAiMC4wOTM3NzYsIDAuMTQyMTQ5LCAwLjQyMTg5MSwgMC42NzE0NzcsIDEuMDAzNzIsIDEuNjY4NywgMi4wODQxOSIsIFwKLSAgICAgICAgICAiMC4wOTM3NzIsIDAuMTQyMTE1LCAwLjQyMTk5OCwgMC42NzA5ODIsIDEuMDA0MiwgMS42NjY3MiwgMi4wODQxNSIsIFwKLSAgICAgICAgICAiMC4wOTM3NzEsIDAuMTQyMDg3LCAwLjQyMjE5OSwgMC42NzE1NCwgMS4wMDQyNSwgMS42Njg3MywgMi4wODQyNiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogZmFsbGluZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xOTIyMDcsIDAuMjE3NTM3LCAwLjM1Njg5MiwgMC40Nzk1NjUsIDAuNjQzMTkxLCAwLjk3MDI2OCwgMS4xNzQ3NyIsIFwKLSAgICAgICAgICAiMC4yMDE5MTksIDAuMjI3MjU2LCAwLjM2NjYwNywgMC40ODkyODMsIDAuNjUyOTE0LCAwLjk3OTc0NSwgMS4xODQxNSIsIFwKLSAgICAgICAgICAiMC4yMTM3ODIsIDAuMjM5MTEsIDAuMzc4NDU2LCAwLjUwMTE1NywgMC42NjQ3NTEsIDAuOTkxODQ5LCAxLjE5NjI5IiwgXAotICAgICAgICAgICIwLjIyNDAyMiwgMC4yNDkzNDYsIDAuMzg4Njk5LCAwLjUxMTM5OCwgMC42NzQ5OTUsIDEuMDAyMDksIDEuMjA2NTQiLCBcCi0gICAgICAgICAgIjAuMjMzMTc0LCAwLjI1ODUwMiwgMC4zOTc4NDksIDAuNTIwNTQ1LCAwLjY4NDE0NSwgMS4wMTEyNSwgMS4yMTU2OSIsIFwKLSAgICAgICAgICAiMC4yNDcwOTgsIDAuMjcyNDI4LCAwLjQxMTc3NSwgMC41MzQ0NzUsIDAuNjk4MDcsIDEuMDI1MTcsIDEuMjI5NjEiLCBcCi0gICAgICAgICAgIjAuMjU4MzQ5LCAwLjI4MzY3OCwgMC40MjMwMzUsIDAuNTQ1NzMxLCAwLjcwOTMzMywgMS4wMzY0MywgMS4yNDA4NyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDE3MzksIDAuMTQ5NDc3LCAwLjQzMDg0MywgMC42ODI2NjUsIDEuMDE5NzEsIDEuNjg5NTMsIDIuMTA5ODgiLCBcCi0gICAgICAgICAgIjAuMTAxNzU1LCAwLjE0OTQ4LCAwLjQzMDgzMywgMC42ODE5MDYsIDEuMDE5NzIsIDEuNjkxODcsIDIuMTEzMjciLCBcCi0gICAgICAgICAgIjAuMTAxNzUyLCAwLjE0OTQ3NSwgMC40MzA4MjgsIDAuNjgxOTY0LCAxLjAxOTY2LCAxLjY5MjAxLCAyLjExMzIiLCBcCi0gICAgICAgICAgIjAuMTAxNzc5LCAwLjE0OTQ5NCwgMC40MzA4NDEsIDAuNjgxOTE0LCAxLjAxOTY3LCAxLjY5MTksIDIuMTE1OTYiLCBcCi0gICAgICAgICAgIjAuMTAxNzU1LCAwLjE0OTQ3NiwgMC40MzA4MzMsIDAuNjgxOTA2LCAxLjAxOTY3LCAxLjY5MTk2LCAyLjExMzI2IiwgXAotICAgICAgICAgICIwLjEwMTc1NiwgMC4xNDk0NzcsIDAuNDMwODM1LCAwLjY4MTk0LCAxLjAxOTY3LCAxLjY5MTk4LCAyLjExMzI3IiwgXAotICAgICAgICAgICIwLjEwMTcyNiwgMC4xNDk1MTIsIDAuNDMwODI3LCAwLjY4MjY5MSwgMS4wMTk2OCwgMS42OTM4NiwgMi4xMTMyMyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogY2xlYXI7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExMzMyNywgMC4xMzg2MzMsIDAuMjc3OTQ0LCAwLjQwMDYzMiwgMC41NjQyNjUsIDAuODkyMTQ3LCAxLjA5NjU4IiwgXAotICAgICAgICAgICIwLjEyMTk0OSwgMC4xNDcyNjMsIDAuMjg2NTc2LCAwLjQwOTI3MiwgMC41NzI5MSwgMC45MDA3MDQsIDEuMTA1MDgiLCBcCi0gICAgICAgICAgIjAuMTMyNTc3LCAwLjE1Nzg5NiwgMC4yOTcyMTUsIDAuNDE5OTEsIDAuNTgzNTQ4LCAwLjkxMTM2MywgMS4xMTU3MyIsIFwKLSAgICAgICAgICAiMC4xNDMxOTEsIDAuMTY4NTExLCAwLjMwNzgyNCwgMC40MzA1MjEsIDAuNTk0MTU2LCAwLjkyMTQ3NCwgMS4xMjYyMyIsIFwKLSAgICAgICAgICAiMC4xNTMyNTQsIDAuMTc4NTksIDAuMzE3OTE1LCAwLjQ0MDYwNywgMC42MDQ0MjgsIDAuOTMxNDg4LCAxLjEzNTk1IiwgXAotICAgICAgICAgICIwLjE2ODczNSwgMC4xOTQwOTgsIDAuMzMzNDQ1LCAwLjQ1NjEyNiwgMC42MTk3NjIsIDAuOTQ3NjA3LCAxLjE1MTk4IiwgXAotICAgICAgICAgICIwLjE4MTA3OSwgMC4yMDY1MzksIDAuMzQ1ODcyLCAwLjQ2ODU2OSwgMC42MzIxODksIDAuOTYwMjIsIDEuMTY0NjkiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTAxNjU3LCAwLjE0OTQyNiwgMC40MzA3OTYsIDAuNjgxOTA0LCAxLjAxOTM2LCAxLjY5MTY0LCAyLjExMjIzIiwgXAotICAgICAgICAgICIwLjEwMTYzOSwgMC4xNDkzNjUsIDAuNDMwNzksIDAuNjgyOTAxLCAxLjAxOTM1LCAxLjY5MzYyLCAyLjExMjEyIiwgXAotICAgICAgICAgICIwLjEwMTYyOSwgMC4xNDkzNTIsIDAuNDMwNzgxLCAwLjY4MTkzMiwgMS4wMTkzMywgMS42OTEyNCwgMi4xMTIxMiIsIFwKLSAgICAgICAgICAiMC4xMDE2ODQsIDAuMTQ5NDIyLCAwLjQzMDgxMywgMC42ODI3ODksIDEuMDE5MzMsIDEuNjkzODgsIDIuMTE2MDUiLCBcCi0gICAgICAgICAgIjAuMTAxOTU4LCAwLjE0OTU1MSwgMC40MzA4MjUsIDAuNjgxOTU5LCAxLjAxODAzLCAxLjY5MzYzLCAyLjExNDk2IiwgXAotICAgICAgICAgICIwLjEwMjYzNSwgMC4xNTAwMjQsIDAuNDMwODIxLCAwLjY4MjYyNSwgMS4wMTkyNywgMS42OTEzOCwgMi4xMTIxMyIsIFwKLSAgICAgICAgICAiMC4xMDM2NjksIDAuMTUwODM5LCAwLjQzMDg1MywgMC42ODI3NjEsIDEuMDE5NzIsIDEuNjkxNjgsIDIuMTEyMTUiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg2ODk0LCAwLjExMTk1LCAwLjI1MjIwNCwgMC4zNzU4NDksIDAuNTQwNzg5LCAwLjg3MDQ3MiwgMS4wNzY1NyIsIFwKLSAgICAgICAgICAiMC4wOTY2ODksIDAuMTIxNzUyLCAwLjI2MjAxNCwgMC4zODU2NjgsIDAuNTUwNTU1LCAwLjg4MDMxMiwgMS4wODYzOCIsIFwKLSAgICAgICAgICAiMC4xMDkxMDMsIDAuMTM0MTY5LCAwLjI3NDQ0NCwgMC4zOTgxMDMsIDAuNTYzMDI4LCAwLjg5Mjc3NCwgMS4wOTg4MyIsIFwKLSAgICAgICAgICAiMC4xMjEwMTYsIDAuMTQ2MDkzLCAwLjI4NjM4LCAwLjQxMDAyNywgMC41NzQ5MjMsIDAuOTA0Njg2LCAxLjExMDc3IiwgXAotICAgICAgICAgICIwLjEzMTg1OSwgMC4xNTY5MjgsIDAuMjk3MjA5LCAwLjQyMDg2NywgMC41ODU3NSwgMC45MTU1NDYsIDEuMTIxNjMiLCBcCi0gICAgICAgICAgIjAuMTQ2OTI4LCAwLjE3MTk5NCwgMC4zMTIyNDMsIDAuNDM1ODk3LCAwLjYwMDc4NCwgMC45MzA2MDYsIDEuMTM2NjQiLCBcCi0gICAgICAgICAgIjAuMTU4NDE1LCAwLjE4MzU0NywgMC4zMjM3NTcsIDAuNDQ3NDEyLCAwLjYxMjI4OCwgMC45NDIxLCAxLjE0ODE3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5NDAzMiwgMC4xNDIyOTYsIDAuNDIyODI5LCAwLjY3MTIzLCAxLjAwMzk5LCAxLjY2NzkyLCAyLjA4MzY4IiwgXAotICAgICAgICAgICIwLjA5NDA1OSwgMC4xNDIyMywgMC40MjI1NDEsIDAuNjcxODI1LCAxLjAwNDI4LCAxLjY2ODU4LCAyLjA4Mjk4IiwgXAotICAgICAgICAgICIwLjA5NDAzNywgMC4xNDIyOTQsIDAuNDIyNjMsIDAuNjcxNTQ1LCAxLjAwMzIsIDEuNjY1NzksIDIuMDgzNjgiLCBcCi0gICAgICAgICAgIjAuMDk0MTYsIDAuMTQyMzEsIDAuNDIyNTcyLCAwLjY3MTg1MywgMS4wMDM0NiwgMS42Njg3NSwgMi4wODQwNiIsIFwKLSAgICAgICAgICAiMC4wOTQ3MDEsIDAuMTQyNjM0LCAwLjQyMjU3NSwgMC42NzE3NDEsIDEuMDAzODcsIDEuNjY4NDYsIDIuMDgzODMiLCBcCi0gICAgICAgICAgIjAuMDk1ODEzLCAwLjE0MzM1NCwgMC40MjIzOTEsIDAuNjcxODkzLCAxLjAwNDA0LCAxLjY2ODM2LCAyLjA4MzYiLCBcCi0gICAgICAgICAgIjAuMDk2ODcxLCAwLjE0NDA1NiwgMC40MjMwNTksIDAuNjcxNTgzLCAxLjAwNDAyLCAxLjY2ODI1LCAyLjA4MzM4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzMzE3LCAwLjAwMzMyMywgMC4wMDMzMzIsIDAuMDAzMzM0LCAwLjAwMzMzNCwgMC4wMDMzMzYsIDAuMDAzMzM2IiwgXAotICAgICAgICAgICIwLjAwMzMxMSwgMC4wMDMzMTgsIDAuMDAzMzI2LCAwLjAwMzMyOSwgMC4wMDMzMjksIDAuMDAzMzMsIDAuMDAzMzMiLCBcCi0gICAgICAgICAgIjAuMDAzMzA3LCAwLjAwMzMxNCwgMC4wMDMzMjIsIDAuMDAzMzI1LCAwLjAwMzMyNSwgMC4wMDMzMjUsIDAuMDAzMzI2IiwgXAotICAgICAgICAgICIwLjAwMzMwNCwgMC4wMDMzMTEsIDAuMDAzMzIsIDAuMDAzMzIyLCAwLjAwMzMyMywgMC4wMDMzMjMsIDAuMDAzMzI0IiwgXAotICAgICAgICAgICIwLjAwMzMwMiwgMC4wMDMzMDksIDAuMDAzMzE3LCAwLjAwMzMxOSwgMC4wMDMzMiwgMC4wMDMzMjEsIDAuMDAzMzIxIiwgXAotICAgICAgICAgICIwLjAwMzMsIDAuMDAzMzA2LCAwLjAwMzMxNiwgMC4wMDMzMTgsIDAuMDAzMzE4LCAwLjAwMzMyLCAwLjAwMzMyIiwgXAotICAgICAgICAgICIwLjAwMzMwOCwgMC4wMDMzMTUsIDAuMDAzMzI0LCAwLjAwMzMyNiwgMC4wMDMzMjcsIDAuMDAzMzI4LCAwLjAwMzMyOCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjY0NiwgMC4wMDI2NTMsIDAuMDAyNjYyLCAwLjAwMjY2NCwgMC4wMDI2NjMsIDAuMDAyNjY0LCAwLjAwMjY2OCIsIFwKLSAgICAgICAgICAiMC4wMDI2MzUsIDAuMDAyNjQyLCAwLjAwMjY1MiwgMC4wMDI2NTQsIDAuMDAyNjU1LCAwLjAwMjY1NSwgMC4wMDI2NTYiLCBcCi0gICAgICAgICAgIjAuMDAyNjMsIDAuMDAyNjM2LCAwLjAwMjY0NiwgMC4wMDI2NDgsIDAuMDAyNjQ5LCAwLjAwMjY1LCAwLjAwMjY1IiwgXAotICAgICAgICAgICIwLjAwMjYyNCwgMC4wMDI2MzEsIDAuMDAyNjQsIDAuMDAyNjQyLCAwLjAwMjY0NSwgMC4wMDI2NDQsIDAuMDAyNjQ2IiwgXAotICAgICAgICAgICIwLjAwMjYyMywgMC4wMDI2MywgMC4wMDI2NCwgMC4wMDI2NDEsIDAuMDAyNjQyLCAwLjAwMjY0MywgMC4wMDI2NDQiLCBcCi0gICAgICAgICAgIjAuMDAyNjIzLCAwLjAwMjYzLCAwLjAwMjY0LCAwLjAwMjY0MiwgMC4wMDI2NDQsIDAuMDAyNjQ0LCAwLjAwMjY0NSIsIFwKLSAgICAgICAgICAiMC4wMDI2MjYsIDAuMDAyNjMzLCAwLjAwMjY0MywgMC4wMDI2NDUsIDAuMDAyNjQ3LCAwLjAwMjY0OCwgMC4wMDI2NDgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJHTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1MTA1LCAwLjAwNTExMiwgMC4wMDUxMiwgMC4wMDUxMjIsIDAuMDA1MTIzLCAwLjAwNTEyMywgMC4wMDUxMjMiLCBcCi0gICAgICAgICAgIjAuMDA1MDksIDAuMDA1MDk2LCAwLjAwNTEwNSwgMC4wMDUxMDYsIDAuMDA1MTA3LCAwLjAwNTEwOCwgMC4wMDUxMDgiLCBcCi0gICAgICAgICAgIjAuMDA1MDg2LCAwLjAwNTA5MywgMC4wMDUxMDEsIDAuMDA1MTAzLCAwLjAwNTEwNCwgMC4wMDUxMDUsIDAuMDA1MTA1IiwgXAotICAgICAgICAgICIwLjAwNTA4NywgMC4wMDUwOTQsIDAuMDA1MTAyLCAwLjAwNTEwNCwgMC4wMDUxMDUsIDAuMDA1MTA2LCAwLjAwNTEwNiIsIFwKLSAgICAgICAgICAiMC4wMDUwOTYsIDAuMDA1MTAzLCAwLjAwNTEwNywgMC4wMDUxMDgsIDAuMDA1MTEzLCAwLjAwNTExNSwgMC4wMDUxMDkiLCBcCi0gICAgICAgICAgIjAuMDA1MTA0LCAwLjAwNTExMSwgMC4wMDUxMiwgMC4wMDUxMjIsIDAuMDA1MTIzLCAwLjAwNTEyMywgMC4wMDUxMjMiLCBcCi0gICAgICAgICAgIjAuMDA1MTEyLCAwLjAwNTExOCwgMC4wMDUxMjcsIDAuMDA1MTMsIDAuMDA1MTI4LCAwLjAwNTEzLCAwLjAwNTEzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0NTc2LCAwLjAwNDU4MywgMC4wMDQ1OTIsIDAuMDA0NTkzLCAwLjAwNDU5NCwgMC4wMDQ1OTUsIDAuMDA0NTk1IiwgXAotICAgICAgICAgICIwLjAwNDU2LCAwLjAwNDU2NywgMC4wMDQ1NzYsIDAuMDA0NTc4LCAwLjAwNDU3OSwgMC4wMDQ1OCwgMC4wMDQ1ODEiLCBcCi0gICAgICAgICAgIjAuMDA0NTU3LCAwLjAwNDU2NCwgMC4wMDQ1NzMsIDAuMDA0NTc1LCAwLjAwNDU3NiwgMC4wMDQ1NzcsIDAuMDA0NTc3IiwgXAotICAgICAgICAgICIwLjAwNDU1OCwgMC4wMDQ1NjUsIDAuMDA0NTc0LCAwLjAwNDU3NSwgMC4wMDQ1NzcsIDAuMDA0NTc4LCAwLjAwNDU3NiIsIFwKLSAgICAgICAgICAiMC4wMDQ1NjQsIDAuMDA0NTcsIDAuMDA0NTgsIDAuMDA0NTg0LCAwLjAwNDU4MywgMC4wMDQ1ODQsIDAuMDA0NTg2IiwgXAotICAgICAgICAgICIwLjAwNDU3MywgMC4wMDQ1OCwgMC4wMDQ1ODksIDAuMDA0NTkxLCAwLjAwNDU5MiwgMC4wMDQ1OTMsIDAuMDA0NTkyIiwgXAotICAgICAgICAgICIwLjAwNDU4NywgMC4wMDQ1OTQsIDAuMDA0NjAzLCAwLjAwNDYwNSwgMC4wMDQ2MDYsIDAuMDA0NjA2LCAwLjAwNDYwNyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQ2NjEsIDAuMDA0NjY3LCAwLjAwNDY3NiwgMC4wMDQ2NzcsIDAuMDA0Njc4LCAwLjAwNDY3OSwgMC4wMDQ2NzkiLCBcCi0gICAgICAgICAgIjAuMDA0NjQ4LCAwLjAwNDY1NCwgMC4wMDQ2NjIsIDAuMDA0NjYzLCAwLjAwNDY2NCwgMC4wMDQ2NjUsIDAuMDA0NjY1IiwgXAotICAgICAgICAgICIwLjAwNDY0MiwgMC4wMDQ2NDgsIDAuMDA0NjU3LCAwLjAwNDY1OCwgMC4wMDQ2NTksIDAuMDA0NjYxLCAwLjAwNDY2IiwgXAotICAgICAgICAgICIwLjAwNDY0MSwgMC4wMDQ2NDcsIDAuMDA0NjU1LCAwLjAwNDY1NywgMC4wMDQ2NTcsIDAuMDA0NjU4LCAwLjAwNDY1OSIsIFwKLSAgICAgICAgICAiMC4wMDQ2NDQsIDAuMDA0NjUsIDAuMDA0NjU5LCAwLjAwNDY2LCAwLjAwNDY2MSwgMC4wMDQ2NjEsIDAuMDA0NjYyIiwgXAotICAgICAgICAgICIwLjAwNDY1NCwgMC4wMDQ2NiwgMC4wMDQ2NjgsIDAuMDA0NjcsIDAuMDA0NjcxLCAwLjAwNDY3MSwgMC4wMDQ2NzIiLCBcCi0gICAgICAgICAgIjAuMDA0NjU4LCAwLjAwNDY2NCwgMC4wMDQ2NzMsIDAuMDA0Njc0LCAwLjAwNDY3NSwgMC4wMDQ2NzYsIDAuMDA0Njc2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzNzE0LCAwLjAwMzcyMSwgMC4wMDM3MywgMC4wMDM3MzIsIDAuMDAzNzMzLCAwLjAwMzczMywgMC4wMDM3MzQiLCBcCi0gICAgICAgICAgIjAuMDAzNywgMC4wMDM3MDYsIDAuMDAzNzE1LCAwLjAwMzcxNywgMC4wMDM3MTgsIDAuMDAzNzE5LCAwLjAwMzcyIiwgXAotICAgICAgICAgICIwLjAwMzY5MywgMC4wMDM3LCAwLjAwMzcwOSwgMC4wMDM3MTEsIDAuMDAzNzEyLCAwLjAwMzcxMywgMC4wMDM3MTMiLCBcCi0gICAgICAgICAgIjAuMDAzNjg5LCAwLjAwMzY5NiwgMC4wMDM3MDYsIDAuMDAzNzA3LCAwLjAwMzcwOCwgMC4wMDM3MSwgMC4wMDM3MSIsIFwKLSAgICAgICAgICAiMC4wMDM2OTIsIDAuMDAzNjk4LCAwLjAwMzcwOCwgMC4wMDM3MDksIDAuMDAzNzEsIDAuMDAzNzExLCAwLjAwMzcxMSIsIFwKLSAgICAgICAgICAiMC4wMDM2OTMsIDAuMDAzNywgMC4wMDM3MDksIDAuMDAzNzEyLCAwLjAwMzcxMiwgMC4wMDM3MTMsIDAuMDAzNzEzIiwgXAotICAgICAgICAgICIwLjAwMzY5NiwgMC4wMDM3MDMsIDAuMDAzNzEyLCAwLjAwMzcxNCwgMC4wMDM3MTUsIDAuMDAzNzE2LCAwLjAwMzcxNiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlNOIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDIxOTQsIDAuMDAyMTk4LCAwLjAwMjIwNCwgMC4wMDIyMDUsIDAuMDAyMjA3LCAwLjAwMjIwNiwgMC4wMDIyMDciLCBcCi0gICAgICAgICAgIjAuMDAyMTc4LCAwLjAwMjE4MywgMC4wMDIxOSwgMC4wMDIxOTIsIDAuMDAyMTkyLCAwLjAwMjE5MiwgMC4wMDIxOTIiLCBcCi0gICAgICAgICAgIjAuMDAyMTcsIDAuMDAyMTc2LCAwLjAwMjE4MywgMC4wMDIxODUsIDAuMDAyMTg1LCAwLjAwMjE4NSwgMC4wMDIxODUiLCBcCi0gICAgICAgICAgIjAuMDAyMTY5LCAwLjAwMjE3NSwgMC4wMDIxODQsIDAuMDAyMTg0LCAwLjAwMjE4NCwgMC4wMDIxODUsIDAuMDAyMTg1IiwgXAotICAgICAgICAgICIwLjAwMjE2NywgMC4wMDIxNzQsIDAuMDAyMTgyLCAwLjAwMjE4NCwgMC4wMDIxODQsIDAuMDAyMTg1LCAwLjAwMjE4NSIsIFwKLSAgICAgICAgICAiMC4wMDIxNjksIDAuMDAyMTc1LCAwLjAwMjE4NCwgMC4wMDIxODYsIDAuMDAyMTg3LCAwLjAwMjE4NywgMC4wMDIxODgiLCBcCi0gICAgICAgICAgIjAuMDAyMTczLCAwLjAwMjE4LCAwLjAwMjE4OSwgMC4wMDIxOTEsIDAuMDAyMTkyLCAwLjAwMjE5MywgMC4wMDIxOTMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDMwNjgsIDAuMDAzMDczLCAwLjAwMzA3OCwgMC4wMDMwNzksIDAuMDAzMDgsIDAuMDAzMDgsIDAuMDAzMDgiLCBcCi0gICAgICAgICAgIjAuMDAzMDU3LCAwLjAwMzA2MiwgMC4wMDMwNjgsIDAuMDAzMDcsIDAuMDAzMDcsIDAuMDAzMDcxLCAwLjAwMzA3MSIsIFwKLSAgICAgICAgICAiMC4wMDMwNDYsIDAuMDAzMDUxLCAwLjAwMzA1OSwgMC4wMDMwNiwgMC4wMDMwNjEsIDAuMDAzMDYyLCAwLjAwMzA2MiIsIFwKLSAgICAgICAgICAiMC4wMDMwMzYsIDAuMDAzMDQyLCAwLjAwMzA1MSwgMC4wMDMwNTMsIDAuMDAzMDU0LCAwLjAwMzA1NiwgMC4wMDMwNTYiLCBcCi0gICAgICAgICAgIjAuMDAzMDM0LCAwLjAwMzA0MSwgMC4wMDMwNSwgMC4wMDMwNTIsIDAuMDAzMDU0LCAwLjAwMzA1NSwgMC4wMDMwNTUiLCBcCi0gICAgICAgICAgIjAuMDAzMDM1LCAwLjAwMzA0MSwgMC4wMDMwNTIsIDAuMDAzMDU0LCAwLjAwMzA1NiwgMC4wMDMwNTcsIDAuMDAzMDU4IiwgXAotICAgICAgICAgICIwLjAwMzA0MSwgMC4wMDMwNDgsIDAuMDAzMDU5LCAwLjAwMzA2MiwgMC4wMDMwNjQsIDAuMDAzMDY1LCAwLjAwMzA2NiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUk4pICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTU2ODE0OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTU2ODE0OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTU1ODk7Ci0gICAgY2xvY2sgOiB0cnVlOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjU0MiwgMC4wMDI1MDQsIDAuMDAyNTA3LCAwLjAwMjUyMiwgMC4wMDI1NDUsIDAuMDAyNTcsIDAuMDAyNTk2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNDU3LCAwLjAwMDQ1NCwgMC4wMDA0NTQsIDAuMDAwNDU0LCAwLjAwMDQ1NCwgMC4wMDA0NTQsIDAuMDAwNDU0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkdOIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIkQmU04iOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8xX0FOX1NOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDU2MjUsIC0wLjA1MTI1LCAtMC4wMzg3NSwgLTAuMDMyNSwgLTAuMDI2MjUsIC0wLjAyMjUsIC0wLjAyIiwgXAotICAgICAgICAgICItMC4wNjc1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjAzNzUsIC0wLjAzNzUsIC0wLjAyNzUsIC0wLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDgsIC0wLjA2ODc1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wNCwgLTAuMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDg2MjUsIC0wLjA3NSwgLTAuMDY4NzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNTI1LCAtMC4wNDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDk4NzUsIC0wLjA4NzUsIC0wLjA3NSwgLTAuMDY4NzUsIC0wLjA2MjUsIC0wLjA1ODc1LCAtMC4wNTYyNSIsIFwKLSAgICAgICAgICAiLTAuMTA4NzUsIC0wLjA5NzUsIC0wLjA5MTI1LCAtMC4wODUsIC0wLjA3ODc1LCAtMC4wNjg3NSwgLTAuMDY2MjUiLCBcCi0gICAgICAgICAgIi0wLjExNzUsIC0wLjExMjUsIC0wLjEsIC0wLjA5Mzc1LCAtMC4wODc1LCAtMC4wODM3NSwgLTAuMDc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlJOIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRCZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjE2NTEyOSwgMC4xNzQzNzMsIDAuMTg0NzEzLCAwLjE5Mzk1MSwgMC4yMDMxMzEsIDAuMjE2MDA0LCAwLjIyNjAxOSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJHTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiRCZTTiI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzFfQU5fU05fRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzUsIDAuMDYzNzUsIDAuMDUxMjUsIDAuMDQ1LCAwLjAzODc1LCAwLjAzNSwgMC4wMzI1IiwgXAotICAgICAgICAgICIwLjA4NjI1LCAwLjA3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA1LCAwLjA0NjI1LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIjAuMDkyNSwgMC4wODEyNSwgMC4wNzUsIDAuMDYyNSwgMC4wNjI1LCAwLjA1MjUsIDAuMDUiLCBcCi0gICAgICAgICAgIjAuMTA1LCAwLjA5Mzc1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIjAuMTExMjUsIDAuMSwgMC4wOTM3NSwgMC4wODEyNSwgMC4wNzUsIDAuMDcxMjUsIDAuMDY4NzUiLCBcCi0gICAgICAgICAgIjAuMTI3NSwgMC4xMTYyNSwgMC4xMDM3NSwgMC4wOTc1LCAwLjA5MTI1LCAwLjA4MTI1LCAwLjA3ODc1IiwgXAotICAgICAgICAgICIwLjEzNjI1LCAwLjEyNSwgMC4xMTI1LCAwLjEwNjI1LCAwLjEsIDAuMDksIDAuMDg3NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oU04pICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDU5NDM4MzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA1OTQzODM7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNTkzMjUyOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDIyNiwgMC4wMDAyMjYsIDAuMDAwMjI2LCAwLjAwMDIyNiwgMC4wMDAyMjYsIDAuMDAwMjI2LCAwLjAwMDIyNiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDIzMywgMC4wMDAyMjgsIDAuMDAwMjI3LCAwLjAwMDIyNywgMC4wMDAyMjcsIDAuMDAwMjI3LCAwLjAwMDIyNyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQiOwotICAgICAgc2RmX2NvbmQgOiAiRCA9PSAxJ2IwIjsKLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjA5Mjg2OSwgMC4xMDI3MzksIDAuMTE1MTMxLCAwLjEyNjk4NywgMC4xMzczNzMsIDAuMTUxNDUyLCAwLjE2MjE4MyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJHTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJlY292ZXJ5X3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUQmUk4iOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX1JOX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQocmVjb3ZlcnlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAsIC0wLjAxMTI1LCAtMC4wMjM3NSwgLTAuMDMsIC0wLjAzNjI1LCAtMC4wNDYyNSwgLTAuMDU1IiwgXAotICAgICAgICAgICIwLjAwNSwgLTAuMDA2MjUsIC0wLjAxODc1LCAtMC4wMjUsIC0wLjAzMTI1LCAtMC4wNDEyNSwgLTAuMDUiLCBcCi0gICAgICAgICAgIjAuMDE3NSwgMC4wMDYyNSwgLTAuMDA2MjUsIC0wLjAxMjUsIC0wLjAxODc1LCAtMC4wMjg3NSwgLTAuMDM3NSIsIFwKLSAgICAgICAgICAiMC4wMjM3NSwgMC4wMTI1LCAwLjAwNjI1LCAtMC4wMDYyNSwgLTAuMDEyNSwgLTAuMDIyNSwgLTAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMDMsIDAuMDE4NzUsIDAuMDEyNSwgMCwgLTAuMDA2MjUsIC0wLjAxNjI1LCAtMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4wNCwgMC4wMzUsIDAuMDIyNSwgMC4wMSwgMC4wMDM3NSwgLTAuMDA2MjUsIC0wLjAwODc1IiwgXAotICAgICAgICAgICIwLjA0ODc1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDE4NzUsIDAuMDEyNSwgMC4wMDI1LCAtMC4wMDYyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJSTiI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJlY292ZXJ5X3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiR04iOwotICAgICAgc2RmX2NvbmQgOiAiR04gPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQocmVjb3ZlcnlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEyNSwgMC4wMDEyNSwgMC4wMDEyNSwgLTAuMDA1LCAtMC4wMTEyNSwgLTAuMDE1LCAtMC4wMTc1IiwgXAotICAgICAgICAgICIwLjAxNzUsIDAuMDEyNSwgMC4wMDYyNSwgMCwgMCwgLTAuMDAzNzUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICIwLjAzLCAwLjAxODc1LCAwLjAxMjUsIDAuMDEyNSwgMC4wMDYyNSwgMC4wMDI1LCAwIiwgXAotICAgICAgICAgICIwLjAzNjI1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMTg3NSwgMC4wMTI1LCAwLjAwODc1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICIwLjA0MjUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMjUsIDAuMDE4NzUsIDAuMDE1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMDUyNSwgMC4wNDEyNSwgMC4wMzUsIDAuMDM1LCAwLjAyODc1LCAwLjAxODc1LCAwLjAxNjI1IiwgXAotICAgICAgICAgICIwLjA1NSwgMC4wNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyNzUsIDAuMDI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkdOIjsKLSAgICAgIHRpbWluZ190eXBlIDogcmVtb3ZhbF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEJlJOIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9STl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHJlbW92YWxfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDI1LCAwLjAzNjI1LCAwLjA0ODc1LCAwLjA1NSwgMC4wNjEyNSwgMC4wNzEyNSwgMC4wOCIsIFwKLSAgICAgICAgICAiMC4wMiwgMC4wMzEyNSwgMC4wMzc1LCAwLjA1LCAwLjA1NjI1LCAwLjA2NjI1LCAwLjA3NSIsIFwKLSAgICAgICAgICAiMC4wMDc1LCAwLjAxODc1LCAwLjAzMTI1LCAwLjAzNzUsIDAuMDQzNzUsIDAuMDUzNzUsIDAuMDYyNSIsIFwKLSAgICAgICAgICAiMC4wMDEyNSwgMC4wMTI1LCAwLjAyNSwgMC4wMzEyNSwgMC4wMzc1LCAwLjA0NzUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIi0wLjAwNSwgMC4wMDYyNSwgMC4wMTg3NSwgMC4wMjUsIDAuMDMxMjUsIDAuMDQxMjUsIDAuMDUiLCBcCi0gICAgICAgICAgIi0wLjAxNSwgLTAuMDAzNzUsIDAuMDA4NzUsIDAuMDE1LCAwLjAyMTI1LCAwLjAzMTI1LCAwLjA0IiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDEyNSwgMCwgMC4wMDYyNSwgMC4wMTI1LCAwLjAyMjUsIDAuMDMxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUk4iOwotICAgICAgdGltaW5nX3R5cGUgOiByZW1vdmFsX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiR04iOwotICAgICAgc2RmX2NvbmQgOiAiR04gPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQocmVtb3ZhbF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDYyNSwgMC4wMTc1LCAwLjAyMzc1LCAwLjAzLCAwLjAzNjI1LCAwLjA0NjI1LCAwLjA1NSIsIFwKLSAgICAgICAgICAiMC4wMDEyNSwgMC4wMDYyNSwgMC4wMTg3NSwgMC4wMjUsIDAuMDMxMjUsIDAuMDQxMjUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIi0wLjAwNSwgMCwgMC4wMDYyNSwgMC4wMTg3NSwgMC4wMTg3NSwgMC4wMjg3NSwgMC4wMzc1IiwgXAotICAgICAgICAgICItMC4wMTc1LCAtMC4wMDYyNSwgMCwgMC4wMDYyNSwgMC4wMTI1LCAwLjAyMjUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjAxNzUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLCAwLjAwNjI1LCAwLjAxNjI1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDI3NSwgLTAuMDIyNSwgLTAuMDE2MjUsIC0wLjAwMzc1LCAwLjAwMjUsIDAuMDA2MjUsIDAuMDE1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDMxMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMC4wMDM3NSwgMC4wMDYyNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBUTEFUTlRTQ0FYMyAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoVExBVE5UU0NBWDMpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4zNDAwMjI7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgY2xvY2tfZ2F0aW5nX2ludGVncmF0ZWRfY2VsbCA6ICJsYXRjaF9wb3NlZGdlX3ByZWNvbnRyb2wiOwotICBzdGF0ZXRhYmxlKCIgQ0sgIEUgU0UgIiwgIiBFSU5UICIpIHsKLSAgICAgdGFibGUgOiAiICBMICBMICBMIDogLSA6IEwgLCBcCi0gICAgICAgICAgICAgICAgTCAgSCAgTCA6IC0gOiBIICwgXAotICAgICAgICAgICAgICAgIEwgIEwgIEggOiAtIDogSCAsIFwKLSAgICAgICAgICAgICAgICBMICBIICBIIDogLSA6IEggLCBcCi0gICAgICAgICAgICAgICAgSCAgLSAgLSA6IC0gOiBOICI7Ci0gIH0KLSAgcGluKEVJTlQpIHsKLSAgICBkaXJlY3Rpb24gOiBpbnRlcm5hbDsKLSAgICBpbnRlcm5hbF9ub2RlIDogIkVJTlQiOwotICB9Ci0gIHBpbihDSykgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjUxODMzOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDY1MTY1NDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2NTE4MzM7Ci0gICAgY2xvY2tfZ2F0ZV9jbG9ja19waW4gOiB0cnVlOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjkwNywgMC4wMDI4NzksIDAuMDAyODY0LCAwLjAwMjg2NywgMC4wMDI4OCwgMC4wMDI4OTksIDAuMDAyOTE2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzNTE5LCAwLjAwMzQ5NSwgMC4wMDM0ODMsIDAuMDAzNDg0LCAwLjAwMzQ5NywgMC4wMDM1MTksIDAuMDAzNTQxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRSYhU0UiOwotICAgICAgc2RmX2NvbmQgOiAiRV9FUV8wX0FOX1NFX0VRXzAgPT0gMSdiMSI7Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4xMDE5NjEsIDAuMTExNzcyLCAwLjEyMzg2LCAwLjEzNDI3MiwgMC4xNDMyMjksIDAuMTU1ODc1LCAwLjE2NTE2NyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjc0NTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2NzQ1OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDY3NDMxNTsKLSAgICBjbG9ja19nYXRlX2VuYWJsZV9waW4gOiB0cnVlOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjcwOCwgMC4wMDI2OTEsIDAuMDAyNjgzLCAwLjAwMjY3NCwgMC4wMDI2NzcsIDAuMDAyNjk1LCAwLjAwMjcwNyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNDQ1NSwgMC4wMDQ0MzgsIDAuMDA0NDMzLCAwLjAwNDQzNCwgMC4wMDQ0NDMsIDAuMDA0NDYyLCAwLjAwNDQ4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJTRSA9PSAxJ2IwIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMzEyNSwgLTAuMDI2MjUsIC0wLjAyLCAtMC4wMTM3NSwgLTAuMDA3NSwgMC4wMDI1LCAwLjAwNSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDM3NSwgLTAuMDI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMDg3NSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA1NSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDIxMjUsIC0wLjAxODc1IiwgXAotICAgICAgICAgICItMC4wNjc1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDQzNzUsIC0wLjA0Mzc1LCAtMC4wMzM3NSwgLTAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjA4LCAtMC4wNjg3NSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNDYyNSwgLTAuMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDk2MjUsIC0wLjA4NSwgLTAuMDc4NzUsIC0wLjA3MjUsIC0wLjA2NjI1LCAtMC4wNjI1LCAtMC4wNTM3NSIsIFwKLSAgICAgICAgICAiLTAuMTA1LCAtMC4xLCAtMC4wODc1LCAtMC4wODc1LCAtMC4wODEyNSwgLTAuMDcxMjUsIC0wLjA2ODc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDM3NSwgLTAuMDI2MjUsIC0wLjAxMzc1LCAtMC4wMDc1LCAwLjAwNSwgMC4wMTUsIDAuMDIzNzUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLjAwMzc1LCAwLjAxODc1IiwgXAotICAgICAgICAgICItMC4wNjEyNSwgLTAuMDUsIC0wLjAzNzUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAwMjUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA2NzUsIC0wLjA2MjUsIC0wLjA1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDE1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDgsIC0wLjA2ODc1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjAzNzUsIC0wLjAyNzUsIC0wLjAxODc1IiwgXAotICAgICAgICAgICItMC4wOTYyNSwgLTAuMDg1LCAtMC4wNzI1LCAtMC4wNjYyNSwgLTAuMDUzNzUsIC0wLjA0Mzc1LCAtMC4wMzUiLCBcCi0gICAgICAgICAgIi0wLjExMTI1LCAtMC4xLCAtMC4wODc1LCAtMC4wNzUsIC0wLjA2ODc1LCAtMC4wNTI1LCAtMC4wNDM3NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIVNFIjsKLSAgICAgIHNkZl9jb25kIDogIlNFID09IDEnYjAiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzNzUsIDAuMDMyNSwgMC4wMjYyNSwgMC4wMiwgMC4wMTM3NSwgMC4wMDM3NSwgMC4wMDEyNSIsIFwKLSAgICAgICAgICAiMC4wNDg3NSwgMC4wNDM3NSwgMC4wMzEyNSwgMC4wMzEyNSwgMC4wMjUsIDAuMDE1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMDYxMjUsIDAuMDU2MjUsIDAuMDUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMjc1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiMC4wNzM3NSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1LCAwLjA1LCAwLjA0LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIjAuMDg2MjUsIDAuMDc1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDUyNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4xMDI1LCAwLjA5MTI1LCAwLjA4NSwgMC4wNzg3NSwgMC4wNzI1LCAwLjA2ODc1LCAwLjA2IiwgXAotICAgICAgICAgICIwLjExMTI1LCAwLjEwNjI1LCAwLjEsIDAuMDkzNzUsIDAuMDg3NSwgMC4wNzc1LCAwLjA3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0Mzc1LCAwLjAzMjUsIDAuMDIsIDAuMDEzNzUsIDAuMDAxMjUsIC0wLjAwODc1LCAtMC4wMTc1IiwgXAotICAgICAgICAgICIwLjA1NSwgMC4wNDM3NSwgMC4wMzEyNSwgMC4wMTg3NSwgMC4wMTI1LCAwLjAwMjUsIC0wLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMDY3NSwgMC4wNTYyNSwgMC4wNDM3NSwgMC4wMzEyNSwgMC4wMjUsIDAuMDA4NzUsIDAiLCBcCi0gICAgICAgICAgIjAuMDczNzUsIDAuMDY4NzUsIDAuMDU2MjUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMjEyNSwgMC4wMTI1IiwgXAotICAgICAgICAgICIwLjA4NjI1LCAwLjA3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA0Mzc1LCAwLjAzMzc1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiMC4xMDI1LCAwLjA5MTI1LCAwLjA3ODc1LCAwLjA3MjUsIDAuMDYsIDAuMDUsIDAuMDQxMjUiLCBcCi0gICAgICAgICAgIjAuMTE3NSwgMC4xMDYyNSwgMC4wOTM3NSwgMC4wODEyNSwgMC4wNzUsIDAuMDU4NzUsIDAuMDUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEVDSykgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjc2ODM5MjsKLSAgICBjbG9ja19nYXRlX291dF9waW4gOiB0cnVlOwotICAgIHN0YXRlX2Z1bmN0aW9uIDogIihDSyBFSU5UKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTEwMDQ0LCAwLjIwOTE1NiwgMC4zMDYyNDMsIDAuMzc1NDU5LCAwLjQ4NjI3NywgMC41ODMzNTksIDAuNzIxNzQiLCBcCi0gICAgICAgICAgIjAuMTIwMzA5LCAwLjIxOTM1OCwgMC4zMTY0MDcsIDAuMzg1NjYyLCAwLjQ5NjQ3OSwgMC41OTM1NTYsIDAuNzMxOTI2IiwgXAotICAgICAgICAgICIwLjEzMjgwMSwgMC4yMzE4OTUsIDAuMzI4OTQ0LCAwLjM5ODE5NywgMC41MDkwNDcsIDAuNjA2MDExLCAwLjc0NDQ2OCIsIFwKLSAgICAgICAgICAiMC4xNDQwMTIsIDAuMjQzMDk0LCAwLjM0MDE4NSwgMC40MDkzOTYsIDAuNTIwMjM4LCAwLjYxNzIwOCwgMC43NTU2NjUiLCBcCi0gICAgICAgICAgIjAuMTUzNjI2LCAwLjI1MjcyNywgMC4zNDk3MzIsIDAuNDE5MDg3LCAwLjUyOTk0NywgMC42MjY4MjIsIDAuNzY1MzEiLCBcCi0gICAgICAgICAgIjAuMTY2ODM3LCAwLjI2NTg1NywgMC4zNjI5MzIsIDAuNDMyMTQ3LCAwLjU0MzAwOSwgMC42Mzk5NzMsIDAuNzc4NDI1IiwgXAotICAgICAgICAgICIwLjE3NzEwNiwgMC4yNzYyMTksIDAuMzczMjksIDAuNDQyNTgyLCAwLjU1MzQyOCwgMC42NTAzMTMsIDAuNzg4ODEyIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQyNjIzLCAwLjIzNzE1NiwgMC40MzU4NjIsIDAuNTc5NjU2LCAwLjgwODQyNiwgMS4wMDY3NiwgMS4yOTQ1OCIsIFwKLSAgICAgICAgICAiMC4wNDI2NjgsIDAuMjM3MTU1LCAwLjQzNTk0NiwgMC41Nzk2NTMsIDAuODA4NDE4LCAxLjAwNjczLCAxLjI5NDU2IiwgXAotICAgICAgICAgICIwLjA0MjYzMSwgMC4yMzcxNjQsIDAuNDM1OTQ2LCAwLjU3OTY1NSwgMC44MDc5NzgsIDEuMDA4NjUsIDEuMjk0NjEiLCBcCi0gICAgICAgICAgIjAuMDQyNjMyLCAwLjIzNzE2MywgMC40MzU4NjMsIDAuNTc5NjQ5LCAwLjgwNzI0NiwgMS4wMDg2MywgMS4yOTQ2MSIsIFwKLSAgICAgICAgICAiMC4wNDI2NCwgMC4yMzcxMzksIDAuNDM2NjU1LCAwLjU3ODQwOCwgMC44MDY5MDIsIDEuMDA4NTksIDEuMjk0NTkiLCBcCi0gICAgICAgICAgIjAuMDQyNzQyLCAwLjIzNzI0LCAwLjQzNjA5MywgMC41Nzk2MzksIDAuODA3OTMyLCAxLjAwODY1LCAxLjI5NDU3IiwgXAotICAgICAgICAgICIwLjA0MjU4MiwgMC4yMzcxNzQsIDAuNDM2NDE4LCAwLjU3OTU0MywgMC44MDY5OTUsIDEuMDA4NDEsIDEuMjk0MzgiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTU4MDMsIDAuMTk0NjczLCAwLjI5Mjg2OCwgMC4zNjMwMTUsIDAuNDc1MjcyLCAwLjU3MzUwMSwgMC43MTM5NjEiLCBcCi0gICAgICAgICAgIjAuMTA1NjM1LCAwLjIwNDUyOCwgMC4zMDI3MjMsIDAuMzcyODcsIDAuNDg1MTMsIDAuNTgzNDExLCAwLjcyMzc2MSIsIFwKLSAgICAgICAgICAiMC4xMTc2MjksIDAuMjE2NDg3LCAwLjMxNDY4OSwgMC4zODQ4MjUsIDAuNDk3MDg2LCAwLjU5NTM3NiwgMC43MzU2ODkiLCBcCi0gICAgICAgICAgIjAuMTI3OTQxLCAwLjIyNjg0MiwgMC4zMjUwNDEsIDAuMzk1MTc3LCAwLjUwNzQzMywgMC42MDU3ODYsIDAuNzQ2MDU3IiwgXAotICAgICAgICAgICIwLjEzNjc2MiwgMC4yMzU2MzcsIDAuMzMzODQzLCAwLjQwMzk3NiwgMC41MTYyNjIsIDAuNjE0NTc4LCAwLjc1NDg2NCIsIFwKLSAgICAgICAgICAiMC4xNDkxMzYsIDAuMjQ4MDIzLCAwLjM0NjIxNSwgMC40MTY0MTYsIDAuNTI4NzIsIDAuNjI2OTUxLCAwLjc2NzQ1IiwgXAotICAgICAgICAgICIwLjE1ODMxMywgMC4yNTcyLCAwLjM1NTM5MiwgMC40MjU1MzYsIDAuNTM3ODg0LCAwLjYzNjA2OSwgMC43NzY3NDQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzc1NSwgMC4yMzM0ODMsIDAuNDMyMTAxLCAwLjU3NDI0NCwgMC44MDA3NTksIDEuMDAwODMsIDEuMjgzNTQiLCBcCi0gICAgICAgICAgIjAuMDM3NTQ2LCAwLjIzMzg1MiwgMC40MzIwNzYsIDAuNTc1MDczLCAwLjgwMjMwMiwgMC45OTg4NzksIDEuMjgzMTUiLCBcCi0gICAgICAgICAgIjAuMDM3NTUyLCAwLjIzMzQ5MSwgMC40MzI4NDksIDAuNTc0NjQ4LCAwLjgwMTE2OCwgMC45OTkyNDEsIDEuMjg0NjQiLCBcCi0gICAgICAgICAgIjAuMDM3NTM0LCAwLjIzMzcwMiwgMC40MzE4ODEsIDAuNTc1MDkyLCAwLjgwMjI3OSwgMS4wMDEwNSwgMS4yODU4NCIsIFwKLSAgICAgICAgICAiMC4wMzc1NTcsIDAuMjMzMzk0LCAwLjQzMjg5OSwgMC41NzQ4MDEsIDAuODAwNTQ3LCAwLjk5ODkxOSwgMS4yODU2MSIsIFwKLSAgICAgICAgICAiMC4wMzc1NjMsIDAuMjMzOTM3LCAwLjQzMTk3MSwgMC41NzQyNzMsIDAuODAxNzEsIDEuMDAxNDQsIDEuMjg0MzUiLCBcCi0gICAgICAgICAgIjAuMDM3NjczLCAwLjIzMzkxNCwgMC40MzIxMjMsIDAuNTc0MiwgMC44MDA3NzcsIDEuMDAxNzUsIDEuMjg1NjIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDY4NTgsIDAuMDA2OTg0LCAwLjAwNjk5NSwgMC4wMDcsIDAuMDA3MDA0LCAwLjAwNzAwNywgMC4wMDcwMTEiLCBcCi0gICAgICAgICAgIjAuMDA2ODI2LCAwLjAwNjk1MiwgMC4wMDY5NjUsIDAuMDA2OTcyLCAwLjAwNjk3MywgMC4wMDY5NzYsIDAuMDA2OTc4IiwgXAotICAgICAgICAgICIwLjAwNjgxNywgMC4wMDY5MzksIDAuMDA2OTU1LCAwLjAwNjk1OSwgMC4wMDY5NjYsIDAuMDA2OTY5LCAwLjAwNjk2NyIsIFwKLSAgICAgICAgICAiMC4wMDY4MjQsIDAuMDA2OTQ3LCAwLjAwNjk2MiwgMC4wMDY5NjYsIDAuMDA2OTcxLCAwLjAwNjk3MiwgMC4wMDY5NzQiLCBcCi0gICAgICAgICAgIjAuMDA2ODM0LCAwLjAwNjk2MSwgMC4wMDY5NzIsIDAuMDA2OTc3LCAwLjAwNjk4MywgMC4wMDY5ODMsIDAuMDA2OTg1IiwgXAotICAgICAgICAgICIwLjAwNjg1NiwgMC4wMDY5ODQsIDAuMDA2OTk4LCAwLjAwNzAwMywgMC4wMDcwMDgsIDAuMDA3MDA5LCAwLjAwNzAxIiwgXAotICAgICAgICAgICIwLjAwNjg3OCwgMC4wMDcwMDIsIDAuMDA3MDE4LCAwLjAwNzAyMywgMC4wMDcwMjcsIDAuMDA3MDI5LCAwLjAwNzAzMyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEwNDI3LCAwLjAxMDU0LCAwLjAxMDU1MSwgMC4wMTA1NTQsIDAuMDEwNTU3LCAwLjAxMDU1OCwgMC4wMTA1NTkiLCBcCi0gICAgICAgICAgIjAuMDEwNCwgMC4wMTA1MTMsIDAuMDEwNTI0LCAwLjAxMDUyNywgMC4wMTA1MywgMC4wMTA1MzIsIDAuMDEwNTMzIiwgXAotICAgICAgICAgICIwLjAxMDQwOCwgMC4wMTA1MiwgMC4wMTA1MzEsIDAuMDEwNTM0LCAwLjAxMDUzNywgMC4wMTA1MzksIDAuMDEwNTQiLCBcCi0gICAgICAgICAgIjAuMDEwNDE5LCAwLjAxMDUzMSwgMC4wMTA1NDMsIDAuMDEwNTQ2LCAwLjAxMDU0OSwgMC4wMTA1NSwgMC4wMTA1NTEiLCBcCi0gICAgICAgICAgIjAuMDEwNDE5LCAwLjAxMDUzNiwgMC4wMTA1NDcsIDAuMDEwNTUxLCAwLjAxMDU1MywgMC4wMTA1NTUsIDAuMDEwNTU3IiwgXAotICAgICAgICAgICIwLjAxMDQ3LCAwLjAxMDU4NywgMC4wMTA1OTksIDAuMDEwNjAyLCAwLjAxMDYwNSwgMC4wMTA2MDcsIDAuMDEwNjA4IiwgXAotICAgICAgICAgICIwLjAxMDQ4LCAwLjAxMDU5MSwgMC4wMTA2MDUsIDAuMDEwNjA5LCAwLjAxMDYxMiwgMC4wMTA2MTMsIDAuMDEwNjE1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTRSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNzAxMDM2OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDY5ODI2MTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA3MDEwMzY7Ci0gICAgY2xvY2tfZ2F0ZV90ZXN0X3BpbiA6IHRydWU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyODcsIDAuMDAyODUzLCAwLjAwMjg0OCwgMC4wMDI4NDUsIDAuMDAyODUxLCAwLjAwMjg3LCAwLjAwMjg4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA0NjUsIDAuMDA0NjM3LCAwLjAwNDYzLCAwLjAwNDYyNywgMC4wMDQ2MjYsIDAuMDA0NjMsIDAuMDA0NjM5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFFIjsKLSAgICAgIHNkZl9jb25kIDogIkUgPT0gMSdiMCI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDM3NSwgLTAuMDI2MjUsIC0wLjAyLCAtMC4wMTM3NSwgLTAuMDA3NSwgLTAuMDAzNzUsIDAuMDA1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAwODc1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDYxMjUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAyMTI1LCAtMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDczNzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjAzMzc1LCAtMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDgsIC0wLjA3NSwgLTAuMDY4NzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNDYyNSwgLTAuMDQzNzUiLCBcCi0gICAgICAgICAgIi0wLjA5NjI1LCAtMC4wOTEyNSwgLTAuMDg1LCAtMC4wNzg3NSwgLTAuMDcyNSwgLTAuMDYyNSwgLTAuMDYiLCBcCi0gICAgICAgICAgIi0wLjExMTI1LCAtMC4xLCAtMC4wOTM3NSwgLTAuMDg3NSwgLTAuMDgxMjUsIC0wLjA3NzUsIC0wLjA2ODc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDQzNzUsIC0wLjAzMjUsIC0wLjAyLCAtMC4wMDc1LCAtMC4wMDEyNSwgMC4wMTUsIDAuMDIzNzUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMDYyNSwgMC4wMDM3NSwgMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wNjEyNSwgLTAuMDUsIC0wLjAzNzUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAwODc1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wNjc1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjAzNzUsIC0wLjAyNSwgLTAuMDE1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDgsIC0wLjA2ODc1LCAtMC4wNTYyNSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAyMTI1LCAtMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wOSwgLTAuMDc4NzUsIC0wLjA3MjUsIC0wLjA2LCAtMC4wNDc1LCAtMC4wMzc1LCAtMC4wMjg3NSIsIFwKLSAgICAgICAgICAiLTAuMTA1LCAtMC4wOTM3NSwgLTAuMDgxMjUsIC0wLjA2ODc1LCAtMC4wNjI1LCAtMC4wNDYyNSwgLTAuMDM3NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUUiOwotICAgICAgc2RmX2NvbmQgOiAiRSA9PSAxJ2IwIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDM3NSwgMC4wMzI1LCAwLjAyNjI1LCAwLjAyLCAwLjAxMzc1LCAwLjAxLCAwLjAwMTI1IiwgXAotICAgICAgICAgICIwLjA1NSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMTUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4wNjc1LCAwLjA1NjI1LCAwLjA1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDI3NSwgMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMDgsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNSwgMC4wNCwgMC4wMzc1IiwgXAotICAgICAgICAgICIwLjA4NjI1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1MjUsIDAuMDUiLCBcCi0gICAgICAgICAgIjAuMTAyNSwgMC4wOTc1LCAwLjA5MTI1LCAwLjA4NSwgMC4wNzg3NSwgMC4wNjg3NSwgMC4wNjYyNSIsIFwKLSAgICAgICAgICAiMC4xMTc1LCAwLjEwNjI1LCAwLjEsIDAuMDkzNzUsIDAuMDg3NSwgMC4wODM3NSwgMC4wNzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNSwgMC4wMzg3NSwgMC4wMjYyNSwgMC4wMTM3NSwgMC4wMDc1LCAtMC4wMDg3NSwgLTAuMDE3NSIsIFwKLSAgICAgICAgICAiMC4wNTUsIDAuMDQzNzUsIDAuMDMxMjUsIDAuMDI1LCAwLjAxMjUsIDAuMDAyNSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMDY3NSwgMC4wNTYyNSwgMC4wNDM3NSwgMC4wMzEyNSwgMC4wMjUsIDAuMDE1LCAwIiwgXAotICAgICAgICAgICIwLjA3Mzc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDQzNzUsIDAuMDMxMjUsIDAuMDIxMjUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4wODYyNSwgMC4wNzUsIDAuMDYyNSwgMC4wNSwgMC4wNDM3NSwgMC4wMjc1LCAwLjAxODc1IiwgXAotICAgICAgICAgICIwLjA5NjI1LCAwLjA4NSwgMC4wNzg3NSwgMC4wNjYyNSwgMC4wNTM3NSwgMC4wNDM3NSwgMC4wMzUiLCBcCi0gICAgICAgICAgIjAuMTExMjUsIDAuMSwgMC4wODc1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNTI1LCAwLjA0Mzc1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBYT1IzWEwgKgotICogLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChYT1IzWEwpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4zMDI3OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA3MjU4MTI7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNzI1MzgyOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDcyNTgxMjsKLSAgfQotICBwaW4oQikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAyMTU2MTg7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAyMTU1NzI7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAyMTU2MTg7Ci0gIH0KLSAgcGluKEMpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTQzMjc3OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTQzMjA3OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTQzMjc3OwotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMTQ1MDk7Ci0gICAgZnVuY3Rpb24gOiAiKChBXkIpXkMpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xODU3MzIsIDAuMjAwNjY5LCAwLjMzMjYxNCwgMC41NTE3NDEsIDAuNzcwNzU5LCAxLjI4MjgsIDEuNTc0NjgiLCBcCi0gICAgICAgICAgIjAuMTk1NjkyLCAwLjIxMDYxNSwgMC4zNDI1NjUsIDAuNTYxNjI0LCAwLjc4MDY5LCAxLjI5MjQ3LCAxLjU4NDg0IiwgXAotICAgICAgICAgICIwLjIwODI4MiwgMC4yMjMyMTQsIDAuMzU1MTcxLCAwLjU3NDIyLCAwLjc5MzMwNCwgMS4zMDQ3LCAxLjU5NjU5IiwgXAotICAgICAgICAgICIwLjIyMDcyMywgMC4yMzU2NjMsIDAuMzY3NjMzLCAwLjU4NjczMywgMC44MDU4MDEsIDEuMzE3ODQsIDEuNjA5NjYiLCBcCi0gICAgICAgICAgIjAuMjMzMDg2LCAwLjI0ODAyLCAwLjM3OTk5MywgMC41OTkwOTgsIDAuODE4MTM3LCAxLjMyOTQ2LCAxLjYyMTYyIiwgXAotICAgICAgICAgICIwLjI1MTg1MSwgMC4yNjY3ODgsIDAuMzk4Nzc1LCAwLjYxNzg2OCwgMC44MzY5NDQsIDEuMzQ5MTIsIDEuNjQwNjkiLCBcCi0gICAgICAgICAgIjAuMjY3MjEzLCAwLjI4MjE0NywgMC40MTQxMywgMC42MzMyMjIsIDAuODUyMzAzLCAxLjM2MzU1LCAxLjY1NTg4Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE2ODA2NCwgMC4xOTY4MTksIDAuNDYxNzExLCAwLjkwODIxNiwgMS4zNTkxMSwgMi40MDQyOSwgMy4wMDI5MyIsIFwKLSAgICAgICAgICAiMC4xNjgwNzYsIDAuMTk2Nzk5LCAwLjQ2MTcwMywgMC45MDk1MDUsIDEuMzU5MDQsIDIuNDA0MjgsIDMuMDAzMDYiLCBcCi0gICAgICAgICAgIjAuMTY3OTc0LCAwLjE5Njc4MiwgMC40NjE3MDgsIDAuOTA5Mzc5LCAxLjM1OTA1LCAyLjQwNDMzLCAzLjAwODk2IiwgXAotICAgICAgICAgICIwLjE2ODA0NywgMC4xOTY5MzYsIDAuNDYxNzI4LCAwLjkwODI4MywgMS4zNTgyMywgMi40MDQyOCwgMy4wMDMwMyIsIFwKLSAgICAgICAgICAiMC4xNjgwODQsIDAuMTk2OTU3LCAwLjQ2MTczMywgMC45MDgzMTEsIDEuMzU5MDMsIDIuNDA0MzEsIDMuMDA0NDciLCBcCi0gICAgICAgICAgIjAuMTY4MTQ2LCAwLjE5NzAwNiwgMC40NjE3NTIsIDAuOTA5NTczLCAxLjM1ODIzLCAyLjQwNDIsIDMuMDAzMDUiLCBcCi0gICAgICAgICAgIjAuMTY4MzMsIDAuMTk3MTQ5LCAwLjQ2MTc3OSwgMC45MDg0MTYsIDEuMzU5MDksIDIuNDA3MzgsIDMuMDAzMDEiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTYxOTAxLCAwLjE3MzI5NCwgMC4yNzEyMTcsIDAuNDMxODgxLCAwLjU5MjUxOCwgMC45Njc3MzgsIDEuMTgxNTMiLCBcCi0gICAgICAgICAgIjAuMTcxNTMsIDAuMTgyOTI4LCAwLjI4MDg1MywgMC40NDE1MTUsIDAuNjAyMTUzLCAwLjk3NzMxMSwgMS4xOTExMiIsIFwKLSAgICAgICAgICAiMC4xODM2OTYsIDAuMTk1MDg5LCAwLjI5MzAyLCAwLjQ1MzY5NCwgMC42MTQzMjYsIDAuOTg5MTc3LCAxLjIwMzM1IiwgXAotICAgICAgICAgICIwLjE5NTYxOSwgMC4yMDcwMTIsIDAuMzA0OTQ5LCAwLjQ2NTYyNSwgMC42MjYyNTgsIDEuMDAxNDQsIDEuMjE1MjQiLCBcCi0gICAgICAgICAgIjAuMjA3MDA3LCAwLjIxODM5MywgMC4zMTYzMzgsIDAuNDc3MDE5LCAwLjYzNzYwOSwgMS4wMTI4LCAxLjIyNjYyIiwgXAotICAgICAgICAgICIwLjIyMzk4NiwgMC4yMzUzOTMsIDAuMzMzMzQ2LCAwLjQ5NDA0MiwgMC42NTQ2NTcsIDEuMDI5NjEsIDEuMjQzNzUiLCBcCi0gICAgICAgICAgIjAuMjM3NTkxLCAwLjI0OTAwOSwgMC4zNDY5ODQsIDAuNTA3NjgzLCAwLjY2ODMsIDEuMDQzMTQsIDEuMjU3MzYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTI3MDQxLCAwLjE0NzUyMywgMC4zMzQ5NzgsIDAuNjU1MjQ4LCAwLjk3NTQ1OCwgMS43Mjc4MywgMi4xNjEzIiwgXAotICAgICAgICAgICIwLjEyNzA1NSwgMC4xNDc1MiwgMC4zMzQ5NTEsIDAuNjU1MjM3LCAwLjk3NTU1NiwgMS43MzEyMSwgMi4xNjI1NSIsIFwKLSAgICAgICAgICAiMC4xMjcwNTgsIDAuMTQ3NTM0LCAwLjMzNTI1NywgMC42NTUyNjgsIDAuOTc3MzM3LCAxLjcyNzcxLCAyLjE2MTIiLCBcCi0gICAgICAgICAgIjAuMTI3MDk3LCAwLjE0NzU2LCAwLjMzNTI0OSwgMC42NTUyMzgsIDAuOTc1MzMsIDEuNzI3NTgsIDIuMTYyNTUiLCBcCi0gICAgICAgICAgIjAuMTI3MDk5LCAwLjE0NzUzNCwgMC4zMzUyNTEsIDAuNjU1MjQ1LCAwLjk3NzIyNiwgMS43Mjc2MSwgMi4xNjI0NiIsIFwKLSAgICAgICAgICAiMC4xMjczMDUsIDAuMTQ3NzM0LCAwLjMzNTI2NywgMC42NTUzNDYsIDAuOTc2NDQsIDEuNzI3NjIsIDIuMTYxMzEiLCBcCi0gICAgICAgICAgIjAuMTI3NzU3LCAwLjE0ODEwNywgMC4zMzUzNTMsIDAuNjU1Mzg2LCAwLjk3NjE3MiwgMS43MzE0NCwgMi4xNjEzNCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMTk1MSwgMC4yMzQzNTksIDAuMzY2MTg4LCAwLjU4NTI2OSwgMC44MDQ0MjgsIDEuMzE1NDgsIDEuNjA3ODEiLCBcCi0gICAgICAgICAgIjAuMjI5MzQ3LCAwLjI0NDIsIDAuMzc2MDIyLCAwLjU5NTEyNywgMC44MTQyNTcsIDEuMzI1NjcsIDEuNjE3NjgiLCBcCi0gICAgICAgICAgIjAuMjQxNzY1LCAwLjI1NjYxOSwgMC4zODg0NDEsIDAuNjA3NjQzLCAwLjgyNjY4LCAxLjMzNzg4LCAxLjYzMDA5IiwgXAotICAgICAgICAgICIwLjI1MzgzOCwgMC4yNjg2OTMsIDAuNDAwNTE3LCAwLjYxOTY2MSwgMC44Mzg3NiwgMS4zNTA3NywgMS42NDIxNCIsIFwKLSAgICAgICAgICAiMC4yNjQ3MTUsIDAuMjc5NTk1LCAwLjQxMTQxLCAwLjYzMDQ4NiwgMC44NDk2MjcsIDEuMzYwODYsIDEuNjUyODgiLCBcCi0gICAgICAgICAgIjAuMjgwMzg1LCAwLjI5NTI0NywgMC40MjcwODEsIDAuNjQ2Mjc4LCAwLjg2NTMxNywgMS4zNzY5OCwgMS42Njg1OCIsIFwKLSAgICAgICAgICAiMC4yOTIzMjIsIDAuMzA3MTk2LCAwLjQzOTAyNywgMC42NTgyNCwgMC44NzcxNTMsIDEuMzg5MDIsIDEuNjgxMDMiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTY3MTg5LCAwLjE5NjAzOCwgMC40NjA4NzIsIDAuOTA5NDE1LCAxLjM1NzMzLCAyLjQwODksIDMuMDAzMDQiLCBcCi0gICAgICAgICAgIjAuMTY3MTg5LCAwLjE5NjA0NywgMC40NjA4NTgsIDAuOTA4MTA1LCAxLjM1NzI3LCAyLjQwNDQxLCAzLjAwMjA2IiwgXAotICAgICAgICAgICIwLjE2NzE4OSwgMC4xOTYwNDYsIDAuNDYwODU2LCAwLjkwNzYxMiwgMS4zNTcyOSwgMi40MDQyMSwgMy4wMDIwNSIsIFwKLSAgICAgICAgICAiMC4xNjcxOSwgMC4xOTYwNDEsIDAuNDYwODcyLCAwLjkwNzkyMywgMS4zNTczNCwgMi40MDQyNCwgMy4wMDIyMyIsIFwKLSAgICAgICAgICAiMC4xNjcxNjgsIDAuMTk1OTUzLCAwLjQ2MDgxNSwgMC45MDgxODcsIDEuMzU3MDgsIDIuNDA0MjIsIDMuMDAyMjgiLCBcCi0gICAgICAgICAgIjAuMTY3MjAzLCAwLjE5NTk1MiwgMC40NjEyNzMsIDAuOTA3NjEyLCAxLjM1NjQ2LCAyLjQwNDIyLCAzLjAwMzE5IiwgXAotICAgICAgICAgICIwLjE2NzIxMSwgMC4xOTYwNDYsIDAuNDYxMjY4LCAwLjkwNzgyMywgMS4zNTg5NiwgMi40MDQyOCwgMy4wMDI5MSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xOTc4MTMsIDAuMjA5MTUxLCAwLjMwNjgyMSwgMC40Njc0NjEsIDAuNjI4MTgsIDEuMDAyOTYsIDEuMjE3MDgiLCBcCi0gICAgICAgICAgIjAuMjA3OTAxLCAwLjIxOTIyNywgMC4zMTY5MSwgMC40Nzc1NDgsIDAuNjM4Mjc0LCAxLjAxMzMsIDEuMjI3MTgiLCBcCi0gICAgICAgICAgIjAuMjIwNzYsIDAuMjMyMDk5LCAwLjMyOTc4NiwgMC40OTA0MTgsIDAuNjUxMDExLCAxLjAyNjA2LCAxLjI0MDE4IiwgXAotICAgICAgICAgICIwLjIzMzYwNywgMC4yNDQ5MzEsIDAuMzQyNjE2LCAwLjUwMzI0OCwgMC42NjM4NDcsIDEuMDM4ODksIDEuMjUzMDMiLCBcCi0gICAgICAgICAgIjAuMjQ1NjEsIDAuMjU2OTQzLCAwLjM1NDY1NywgMC41MTUyODUsIDAuNjc1ODk0LCAxLjA1MDkzLCAxLjI2NTE1IiwgXAotICAgICAgICAgICIwLjI2Mjc3MiwgMC4yNzQxMDMsIDAuMzcxODExLCAwLjUzMjQ0NSwgMC42OTMxNTcsIDEuMDY4MDgsIDEuMjgyMTEiLCBcCi0gICAgICAgICAgIjAuMjc2NTA3LCAwLjI4Nzg0MSwgMC4zODU1NDQsIDAuNTQ2MTc1LCAwLjcwNjc5MSwgMS4wODE4MywgMS4yOTU4NyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMjYzMDMsIDAuMTQ2NzE4LCAwLjMzNDQzMiwgMC42NTQ5MzMsIDAuOTc1MzMxLCAxLjcyNzc1LCAyLjE2MjYiLCBcCi0gICAgICAgICAgIjAuMTI2Mjk5LCAwLjE0NjcxLCAwLjMzNDQzNCwgMC42NTQ5MDQsIDAuOTc1MjQxLCAxLjcyNjk3LCAyLjE1ODQiLCBcCi0gICAgICAgICAgIjAuMTI2MjU2LCAwLjE0NjcxMSwgMC4zMzQ0MDgsIDAuNjU0MjY2LCAwLjk3NzAyNSwgMS43Mjc0OCwgMi4xNTc5IiwgXAotICAgICAgICAgICIwLjEyNjI1OCwgMC4xNDY3MjEsIDAuMzM0NDEzLCAwLjY1Mzc0NywgMC45NzcwNjYsIDEuNzI3NSwgMi4xNTgxIiwgXAotICAgICAgICAgICIwLjEyNjI1NywgMC4xNDY3MTQsIDAuMzM0NDA4LCAwLjY1NDYxLCAwLjk3NzEyNCwgMS43Mjc2MSwgMi4xNTg0MSIsIFwKLSAgICAgICAgICAiMC4xMjYyNjQsIDAuMTQ2NzE5LCAwLjMzNDQwOCwgMC42NTQ2NDcsIDAuOTc1NDczLCAxLjcyNzMyLCAyLjE2MTMzIiwgXAotICAgICAgICAgICIwLjEyNjI3OSwgMC4xNDY3MzEsIDAuMzM0NDE1LCAwLjY1NDI3LCAwLjk3NzEzNSwgMS43Mjc1MSwgMi4xNjEyNyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNjQ2MDksIDAuMTc5NTQxLCAwLjMxMTQ0NCwgMC41MzA2MjgsIDAuNzQ5NzU5LCAxLjI2MTUzLCAxLjU1Mjg4IiwgXAotICAgICAgICAgICIwLjE3NDI1NiwgMC4xODkxODYsIDAuMzIxMDgzLCAwLjU0MDE5MSwgMC43NTkyNzgsIDEuMjcxMjEsIDEuNTYzMjEiLCBcCi0gICAgICAgICAgIjAuMTg2MTY0LCAwLjIwMTA4OCwgMC4zMzMwMTIsIDAuNTUyMTA5LCAwLjc3MTM5NiwgMS4yODMwNiwgMS41NzQ0OCIsIFwKLSAgICAgICAgICAiMC4xOTgwNDksIDAuMjEyOTYsIDAuMzQ0ODcyLCAwLjU2MzkxOSwgMC43ODMwMjMsIDEuMjk0OTIsIDEuNTg2NTkiLCBcCi0gICAgICAgICAgIjAuMjA5Njk0LCAwLjIyNDYyOSwgMC4zNTY1MzMsIDAuNTc1NjUsIDAuNzk0NzE0LCAxLjMwNjgzLCAxLjU5ODM5IiwgXAotICAgICAgICAgICIwLjIyNzQyOSwgMC4yNDIzMzUsIDAuMzc0MjU0LCAwLjU5MzM1MiwgMC44MTI0MjUsIDEuMzI0NjIsIDEuNjE2MDUiLCBcCi0gICAgICAgICAgIjAuMjQxODQ4LCAwLjI1Njc5MywgMC4zODg3MDcsIDAuNjA3ODI0LCAwLjgyNzAyNCwgMS4zMzg4OCwgMS42MzA5NCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNjc4NzksIDAuMTk2NjY4LCAwLjQ2MTY2NCwgMC45MDgwNTEsIDEuMzU2NywgMi40MDQzNSwgMy4wMDc2IiwgXAotICAgICAgICAgICIwLjE2Nzg4LCAwLjE5NjYzLCAwLjQ2MTYyOCwgMC45MDgwNDEsIDEuMzU5MjQsIDIuNDA0NDEsIDMuMDAzMTEiLCBcCi0gICAgICAgICAgIjAuMTY3ODg0LCAwLjE5NjY3OSwgMC40NjA5MDQsIDAuOTA5MDg5LCAxLjM1NjYyLCAyLjQwNDM3LCAzLjAwMjMyIiwgXAotICAgICAgICAgICIwLjE2Nzg2MiwgMC4xOTY2OSwgMC40NjEyMywgMC45MDkyNTUsIDEuMzU4MjUsIDIuNDA0MzQsIDMuMDAzMTciLCBcCi0gICAgICAgICAgIjAuMTY3ODg0LCAwLjE5NjU3NywgMC40NjEyMjEsIDAuOTA3NzA3LCAxLjM1ODIzLCAyLjQwNDIsIDMuMDAzMTMiLCBcCi0gICAgICAgICAgIjAuMTY4MDkyLCAwLjE5Njg5NiwgMC40NjEyNTUsIDAuOTA5NDI0LCAxLjM1ODc4LCAyLjQwNDY3LCAzLjAwODMxIiwgXAotICAgICAgICAgICIwLjE2ODQ1OCwgMC4xOTcyMSwgMC40NjE2OTMsIDAuOTA4MjE1LCAxLjM1ODg1LCAyLjQwNDQsIDMuMDAzMDMiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTQ0ODE4LCAwLjE1NjEyNCwgMC4yNTM4MTYsIDAuNDE0NDM4LCAwLjU3NTEsIDAuOTQ5ODU5LCAxLjE2NDIzIiwgXAotICAgICAgICAgICIwLjE1NDAzMiwgMC4xNjUzNzUsIDAuMjYzMDc3LCAwLjQyMzY5OSwgMC41ODQzNTMsIDAuOTU5MjIyLCAxLjE3MzY3IiwgXAotICAgICAgICAgICIwLjE2NTEyMiwgMC4xNzY0NDEsIDAuMjc0MTUxLCAwLjQzNDc3MywgMC41OTUzNzMsIDAuOTcwNDUyLCAxLjE4NDQ1IiwgXAotICAgICAgICAgICIwLjE3NjAzNCwgMC4xODczNTUsIDAuMjg1MDcyLCAwLjQ0NTY5NywgMC42MDYzMTgsIDAuOTgxMzY4LCAxLjE5NTM4IiwgXAotICAgICAgICAgICIwLjE4Njg4LCAwLjE5ODE4LCAwLjI5NTg5NiwgMC40NTY1MjQsIDAuNjE3MTg4LCAwLjk5MiwgMS4yMDYyMiIsIFwKLSAgICAgICAgICAiMC4yMDI3MzUsIDAuMjE0MDg1LCAwLjMxMTc4NywgMC40NzI0MjIsIDAuNjMzMDgzLCAxLjAwODI5LCAxLjIyMjY2IiwgXAotICAgICAgICAgICIwLjIxNTMxLCAwLjIyNjcxNywgMC4zMjQ1MDYsIDAuNDg1MTQ3LCAwLjY0NTc5OSwgMS4wMjA2LCAxLjIzNDk5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEyNjQ1OSwgMC4xNDY4OTYsIDAuMzM0NSwgMC42NTQzNDEsIDAuOTc1MDQsIDEuNzMxMjQsIDIuMTYwOTciLCBcCi0gICAgICAgICAgIjAuMTI2NDgsIDAuMTQ2OTEyLCAwLjMzNDUwMiwgMC42NTQyMjIsIDAuOTc0NjYxLCAxLjczMTIyLCAyLjE1OTQ3IiwgXAotICAgICAgICAgICIwLjEyNjUxNiwgMC4xNDY5MjcsIDAuMzM0NDk4LCAwLjY1NTA1MSwgMC45NzcwNjgsIDEuNzI3NDYsIDIuMTYxMjEiLCBcCi0gICAgICAgICAgIjAuMTI2NTA2LCAwLjE0NjkwOCwgMC4zMzQ0ODgsIDAuNjU0OTI4LCAwLjk3NzE2NiwgMS43Mjc1MywgMi4xNjEyMiIsIFwKLSAgICAgICAgICAiMC4xMjY0NSwgMC4xNDY4OTMsIDAuMzM0NDQ2LCAwLjY1MzcwOSwgMC45NzQ3MzgsIDEuNzI5NDMsIDIuMTYxMjciLCBcCi0gICAgICAgICAgIjAuMTI2ODEyLCAwLjE0NzE2NiwgMC4zMzQ1NDksIDAuNjU0ODY3LCAwLjk3NTE1MiwgMS43Mjc2MSwgMi4xNjA4OCIsIFwKLSAgICAgICAgICAiMC4xMjczOTUsIDAuMTQ3NzI1LCAwLjMzNDc4MywgMC42NTQ5NjIsIDAuOTc1NDgzLCAxLjczMTMxLCAyLjE2MTM1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE3MDA2OCwgMC4xODQ5NDQsIDAuMzE2NzU2LCAwLjUzNTk4MSwgMC43NTUwMDMsIDEuMjY2OSwgMS41NTg5OCIsIFwKLSAgICAgICAgICAiMC4xNzk3NjYsIDAuMTk0NjQsIDAuMzI2NDQ0LCAwLjU0NTY0NywgMC43NjQ4MTIsIDEuMjc2NjEsIDEuNTY3OTMiLCBcCi0gICAgICAgICAgIjAuMTkxMjYsIDAuMjA2MTM0LCAwLjMzNzkzNiwgMC41NTcwMTgsIDAuNzc2Mzc5LCAxLjI4ODEyLCAxLjU3OTM1IiwgXAotICAgICAgICAgICIwLjIwMTQ1OSwgMC4yMTYzNCwgMC4zNDgxNDcsIDAuNTY3MjIsIDAuNzg2MzQ4LCAxLjI5ODM1LCAxLjU4OTU2IiwgXAotICAgICAgICAgICIwLjIwOTcyNSwgMC4yMjQ1OCwgMC4zNTYzOTUsIDAuNTc1NTU5LCAwLjc5NDYzNywgMS4zMDU3NCwgMS41OTgwNiIsIFwKLSAgICAgICAgICAiMC4yMjA1NDEsIDAuMjM1NDM0LCAwLjM2NzI0NywgMC41ODY0NDksIDAuODA1NDM3LCAxLjMxNzE0LCAxLjYwODcxIiwgXAotICAgICAgICAgICIwLjIyODU4MiwgMC4yNDM0NTQsIDAuMzc1MjU4LCAwLjU5NDMzLCAwLjgxMzUyMSwgMS4zMjQ2MywgMS42MTY5Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE2NzI0NywgMC4xOTYwODYsIDAuNDYxMDQsIDAuOTA3NjQ3LCAxLjM1NzIzLCAyLjQwNDY2LCAzLjAwMyIsIFwKLSAgICAgICAgICAiMC4xNjcyMzksIDAuMTk2MDYyLCAwLjQ2MTE1NiwgMC45MDc2MTgsIDEuMzU3MDcsIDIuNDA0MzksIDMuMDA2ODgiLCBcCi0gICAgICAgICAgIjAuMTY3MjQzLCAwLjE5NjA2OSwgMC40NjExNTUsIDAuOTA4MjY0LCAxLjM1NzA3LCAyLjQwNDM2LCAzLjAwNzI4IiwgXAotICAgICAgICAgICIwLjE2NzE5OSwgMC4xOTU5NzksIDAuNDYxMTY4LCAwLjkwODExMSwgMS4zNTgyLCAyLjQwNDM4LCAzLjAwNzU4IiwgXAotICAgICAgICAgICIwLjE2NzE5NSwgMC4xOTU5NzksIDAuNDYwODU4LCAwLjkwOTU5NSwgMS4zNTcyNiwgMi40MDg5MywgMy4wMDIwMiIsIFwKLSAgICAgICAgICAiMC4xNjcxNjYsIDAuMTk2MDQyLCAwLjQ2MDY4NCwgMC45MDc2MTMsIDEuMzU5MSwgMi40MDQyLCAzLjAwMjMyIiwgXAotICAgICAgICAgICIwLjE2NzA2OSwgMC4xOTU5NTgsIDAuNDYxMjcxLCAwLjkwOTI5NSwgMS4zNTcyNiwgMi40MDg2MiwgMy4wMDIxNyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNDY2LCAwLjE1Nzk4LCAwLjI1NTg1NSwgMC40MTY0OTYsIDAuNTc3MjAzLCAwLjk1MjIyOCwgMS4xNjYwOCIsIFwKLSAgICAgICAgICAiMC4xNTczMjUsIDAuMTY4NzEyLCAwLjI2NjU5MSwgMC40MjcyMzUsIDAuNTg3ODY4LCAwLjk2Mjk0MSwgMS4xNzcwMSIsIFwKLSAgICAgICAgICAiMC4xNzAyOTksIDAuMTgxNjk2LCAwLjI3OTU1LCAwLjQ0MDIsIDAuNjAwODQ1LCAwLjk3NTYwMiwgMS4xODk4NSIsIFwKLSAgICAgICAgICAiMC4xODE2NzYsIDAuMTkzMDUyLCAwLjI5MDk0NSwgMC40NTE1ODgsIDAuNjEyMjQ2LCAwLjk4NzM2NiwgMS4yMDExOSIsIFwKLSAgICAgICAgICAiMC4xOTEwNjcsIDAuMjAyNDcxLCAwLjMwMDMzNSwgMC40NjA5ODIsIDAuNjIxNjQ1LCAwLjk5NjczOCwgMS4yMTA1OCIsIFwKLSAgICAgICAgICAiMC4yMDM2MSwgMC4yMTQ5NzIsIDAuMzEyODA3LCAwLjQ3MzUxMiwgMC42MzQxMjYsIDEuMDA5MjksIDEuMjIzMSIsIFwKLSAgICAgICAgICAiMC4yMTMwMzYsIDAuMjI0NDA2LCAwLjMyMjI1NywgMC40ODI5MTEsIDAuNjQzNjMsIDEuMDE4NjYsIDEuMjMyNSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMjY5NTcsIDAuMTQ3MzYsIDAuMzM0ODgxLCAwLjY1NDkyNCwgMC45NzQ1ODksIDEuNzI3MzgsIDIuMTYyNjIiLCBcCi0gICAgICAgICAgIjAuMTI2OTE1LCAwLjE0NzM3LCAwLjMzNDg4OCwgMC42NTQwNTgsIDAuOTc1Njk5LCAxLjcyNzM0LCAyLjE1ODQ3IiwgXAotICAgICAgICAgICIwLjEyNjkzLCAwLjE0NzM4MywgMC4zMzQ4NjMsIDAuNjU1MTQ1LCAwLjk3NTA1OCwgMS43MzEyNSwgMi4xNTYxMSIsIFwKLSAgICAgICAgICAiMC4xMjY5MjUsIDAuMTQ3MzI0LCAwLjMzNDg3NiwgMC42NTQ2NTQsIDAuOTc1NDMzLCAxLjcyNjkxLCAyLjE2MjUiLCBcCi0gICAgICAgICAgIjAuMTI2ODg2LCAwLjE0NzI4NiwgMC4zMzQ4MTcsIDAuNjU0NTI4LCAwLjk3NTc1LCAxLjcyNzAzLCAyLjE2MjQ2IiwgXAotICAgICAgICAgICIwLjEyNjg3MiwgMC4xNDczMjgsIDAuMzM0ODAxLCAwLjY1Mzc5MSwgMC45NzUxMjEsIDEuNzI2NzMsIDIuMTYyNTYiLCBcCi0gICAgICAgICAgIjAuMTI2NzEyLCAwLjE0NzE2OSwgMC4zMzQ3NzYsIDAuNjU0NjU5LCAwLjk3NDgwOCwgMS43MjcwOCwgMi4xNjIzOCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMjIwMzUsIDAuMTM2OTMyLCAwLjI2ODcyNCwgMC40ODc4MzMsIDAuNzA2OTM4LCAxLjIxODIyLCAxLjUxMDAzIiwgXAotICAgICAgICAgICIwLjEzMTM1MywgMC4xNDYyMiwgMC4yNzgwMTcsIDAuNDk3MDQsIDAuNzE2MTgsIDEuMjI3NzMsIDEuNTE5NiIsIFwKLSAgICAgICAgICAiMC4xNDMwMjEsIDAuMTU3ODk4LCAwLjI4OTcwOSwgMC41MDg4NCwgMC43Mjc4MDksIDEuMjM5NjcsIDEuNTMxOTciLCBcCi0gICAgICAgICAgIjAuMTUzOTA0LCAwLjE2ODc4NCwgMC4zMDA2MjIsIDAuNTE5NzY2LCAwLjczODg0OCwgMS4yNTA2NywgMS41NDIzOCIsIFwKLSAgICAgICAgICAiMC4xNjM0NzQsIDAuMTc4MzM5LCAwLjMxMDE3MSwgMC41MjkyMjgsIDAuNzQ4MzY5LCAxLjI1OTU0LCAxLjU1MTgxIiwgXAotICAgICAgICAgICIwLjE3Njg2LCAwLjE5MTc2NCwgMC4zMjM2MzgsIDAuNTQyNzg3LCAwLjc2MTgxMywgMS4yNzM3MSwgMS41NjU0OSIsIFwKLSAgICAgICAgICAiMC4xODcwODUsIDAuMjAxOTgxLCAwLjMzMzkxMywgMC41NTI5OTUsIDAuNzcyMDQ3LCAxLjI4MzUxLCAxLjU3NTkyIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE2NjgyOSwgMC4xOTU3MDgsIDAuNDYxNDQ1LCAwLjkwOTc2NiwgMS4zNTgyOCwgMi40MDQzNywgMy4wMDkwNyIsIFwKLSAgICAgICAgICAiMC4xNjY2ODQsIDAuMTk1NjY4LCAwLjQ2MDkyOCwgMC45MDk0ODgsIDEuMzU3MzIsIDIuNDA0MjIsIDMuMDAyMjciLCBcCi0gICAgICAgICAgIjAuMTY2MzI4LCAwLjE5NTM2OSwgMC40NjA2ODQsIDAuOTA5NzA5LCAxLjM1ODg4LCAyLjQwNDMzLCAzLjAwMzE0IiwgXAotICAgICAgICAgICIwLjE2NjIwNiwgMC4xOTUzMDksIDAuNDYwNjA2LCAwLjkwNzY1NCwgMS4zNTcwNiwgMi40MDQzOCwgMy4wMDMxOSIsIFwKLSAgICAgICAgICAiMC4xNjYxNjQsIDAuMTk1MzU0LCAwLjQ2MDc2MSwgMC45MDgxNzYsIDEuMzU3MjUsIDIuNDA3MjYsIDMuMDAyMTQiLCBcCi0gICAgICAgICAgIjAuMTY2NjExLCAwLjE5NTY1MSwgMC40NjEzNSwgMC45MDkzLCAxLjM1NzIzLCAyLjQwNDM5LCAzLjAwMzA1IiwgXAotICAgICAgICAgICIwLjE2Njk1MywgMC4xOTYwNDcsIDAuNDYxNTIsIDAuOTA5NTA1LCAxLjM1ODExLCAyLjQwNTcxLCAzLjAwMzU2Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwMjEzOSwgMC4xMTMzNzYsIDAuMjEwNzc1LCAwLjM3MTM3OSwgMC41MzIwNDMsIDAuOTA2ODkyLCAxLjEyMTA3IiwgXAotICAgICAgICAgICIwLjExMTAzMiwgMC4xMjIyNjcsIDAuMjE5NjYyLCAwLjM4MDI2OSwgMC41NDA5NjEsIDAuOTE1Nzg3LCAxLjEyOTkiLCBcCi0gICAgICAgICAgIjAuMTIyMjI0LCAwLjEzMzQ0NiwgMC4yMzA4MjIsIDAuMzkxNDU2LCAwLjU1MjEyMywgMC45MjcwMzcsIDEuMTQxMTgiLCBcCi0gICAgICAgICAgIjAuMTMyMjU1LCAwLjE0MzQ2NCwgMC4yNDA4NjEsIDAuNDAxNDc3LCAwLjU2MjEyMywgMC45MzcyMzgsIDEuMTUxMjkiLCBcCi0gICAgICAgICAgIjAuMTQwODk4LCAwLjE1MjA5OSwgMC4yNDk1NzQsIDAuNDEwMTU4LCAwLjU3MDgzMiwgMC45NDU5MDQsIDEuMTU5OTMiLCBcCi0gICAgICAgICAgIjAuMTUyODQzLCAwLjE2NDA2NiwgMC4yNjE2ODQsIDAuNDIyMzA1LCAwLjU4Mjk5MiwgMC45NTc4ODUsIDEuMTcyMDgiLCBcCi0gICAgICAgICAgIjAuMTYxNjczLCAwLjE3MzA0MSwgMC4yNzA4MjEsIDAuNDMxNDM2LCAwLjU5MjA0NiwgMC45NjcyMjgsIDEuMTgxMDYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTI0Nzg2LCAwLjE0NTQyMiwgMC4zMzM4NjIsIDAuNjUzNzIzLCAwLjk3NzM4OCwgMS43MjU5MSwgMi4xNTU3NiIsIFwKLSAgICAgICAgICAiMC4xMjQ1OTgsIDAuMTQ1MjQ2LCAwLjMzMzc5LCAwLjY1MzgsIDAuOTc0NTEyLCAxLjcyNzI0LCAyLjE2MjQ0IiwgXAotICAgICAgICAgICIwLjEyNDIzOSwgMC4xNDQ5NDEsIDAuMzMzOTA3LCAwLjY1NDY5NCwgMC45Nzc0NDMsIDEuNzI3NDUsIDIuMTYxMTEiLCBcCi0gICAgICAgICAgIjAuMTI0MTQ4LCAwLjE0NDgzNiwgMC4zMzM2NTQsIDAuNjUzNjk2LCAwLjk3NzQ0MiwgMS43MjY4OSwgMi4xNTg2NCIsIFwKLSAgICAgICAgICAiMC4xMjQzNiwgMC4xNDUwMzIsIDAuMzM0MDY4LCAwLjY1NDY0MywgMC45NzQ1NTksIDEuNzI3NDUsIDIuMTYwOTUiLCBcCi0gICAgICAgICAgIjAuMTI0ODI3LCAwLjE0NTQ4MiwgMC4zMzQyODksIDAuNjU0ODU4LCAwLjk3NTE5MywgMS43Mjc0NywgMi4xNjA5OSIsIFwKLSAgICAgICAgICAiMC4xMjUxNCwgMC4xNDU3NDUsIDAuMzM0MzAzLCAwLjY1NDI5NiwgMC45NzcyMTMsIDEuNzI2OCwgMi4xNTYyNCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMjkzMjksIDAuMTQ0MTMyLCAwLjI3NTgwNywgMC40OTQ5NjQsIDAuNzEzOTQ2LCAxLjIyNDk2LCAxLjUxNzAyIiwgXAotICAgICAgICAgICIwLjEzOTIxNCwgMC4xNTQwMjMsIDAuMjg1NzA4LCAwLjUwNDgzNiwgMC43MjQxNDIsIDEuMjM1NzEsIDEuNTI3MDYiLCBcCi0gICAgICAgICAgIjAuMTUwMTA2LCAwLjE2NDkwOSwgMC4yOTY1OTIsIDAuNTE1NzA2LCAwLjczNTE0NiwgMS4yNDYzNCwgMS41MzgzMyIsIFwKLSAgICAgICAgICAiMC4xNTgxNTgsIDAuMTcyOTYyLCAwLjMwNDY0MSwgMC41MjM3NTQsIDAuNzQzMTI3LCAxLjI1NDQ4LCAxLjU0NjMxIiwgXAotICAgICAgICAgICIwLjE2NDQ2OSwgMC4xNzkyNzQsIDAuMzEwOTY0LCAwLjUzMDEyNCwgMC43NDk1MTksIDEuMjYxMDEsIDEuNTUyNzQiLCBcCi0gICAgICAgICAgIjAuMTczMjI5LCAwLjE4Nzk0NCwgMC4zMTk2NzksIDAuNTM4ODIxLCAwLjc1ODIzNSwgMS4yNjk4MiwgMS41NjEyNSIsIFwKLSAgICAgICAgICAiMC4xNzk0NzUsIDAuMTk0MzUzLCAwLjMyNjA0NywgMC41NDUwNjksIDAuNzY0MzgsIDEuMjc1NywgMS41Njc1MiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNjU5NjQsIDAuMTk1MTIyLCAwLjQ2MDQ2NSwgMC45MDc1MzIsIDEuMzU1NSwgMi40MDg3MSwgMy4wMDg2OCIsIFwKLSAgICAgICAgICAiMC4xNjU5OTYsIDAuMTk1MDg4LCAwLjQ2MTAxOCwgMC45MDk1NDIsIDEuMzU5MDIsIDIuNDA0MzQsIDMuMDA3NDMiLCBcCi0gICAgICAgICAgIjAuMTY1ODI1LCAwLjE5NTAxOSwgMC40NjA3MzMsIDAuOTA3NTI0LCAxLjM1Njc3LCAyLjQwNzM1LCAzLjAwMzA3IiwgXAotICAgICAgICAgICIwLjE2NTg1MSwgMC4xOTQ5MzIsIDAuNDYwNDIxLCAwLjkwOTI1LCAxLjM1NjQ2LCAyLjQwNDIyLCAzLjAwMTkzIiwgXAotICAgICAgICAgICIwLjE2NTY0MywgMC4xOTQ3NDQsIDAuNDYwNzY1LCAwLjkwOTQyNSwgMS4zNTY3OCwgMi40MDQzNSwgMy4wMDMwMSIsIFwKLSAgICAgICAgICAiMC4xNjUzNzEsIDAuMTk0NTE5LCAwLjQ2MDQ1LCAwLjkwOTQ1MywgMS4zNTY0NywgMi40MDQzOCwgMy4wMDIzMiIsIFwKLSAgICAgICAgICAiMC4xNjUyNjUsIDAuMTk0NDA5LCAwLjQ2MDcsIDAuOTA5MTksIDEuMzU2NTEsIDIuNDA0MTgsIDMuMDA3NDUiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTA5NjI3LCAwLjEyMDk0NSwgMC4yMTg2ODYsIDAuMzc5MzI0LCAwLjUzOTkyNCwgMC45MTQ5ODYsIDEuMTI4OSIsIFwKLSAgICAgICAgICAiMC4xMjAxMDgsIDAuMTMxNDUzLCAwLjIyOTE5MiwgMC4zODk4NTMsIDAuNTUwNTMxLCAwLjkyNTU3NiwgMS4xMzk0MyIsIFwKLSAgICAgICAgICAiMC4xMzE3NDIsIDAuMTQzMDc1LCAwLjI0MDgsIDAuNDAxNDg2LCAwLjU2MjE0NiwgMC45MzcxNiwgMS4xNTEwMyIsIFwKLSAgICAgICAgICAiMC4xNDA4MDYsIDAuMTUyMTQ4LCAwLjI0OTg3MiwgMC40MTA1MTgsIDAuNTcxMjM1LCAwLjk0NTk5OCwgMS4xNjA1MSIsIFwKLSAgICAgICAgICAiMC4xNDgxNzIsIDAuMTU5NTA2LCAwLjI1NzIwMSwgMC40MTc4NSwgMC41Nzg0NDMsIDAuOTUzNDk2LCAxLjE2NzkyIiwgXAotICAgICAgICAgICIwLjE1ODE5NiwgMC4xNjk0OTksIDAuMjY3MjA5LCAwLjQyNzg1LCAwLjU4ODUzMywgMC45NjM2MjIsIDEuMTc3NDciLCBcCi0gICAgICAgICAgIjAuMTY1ODg0LCAwLjE3NzEzNiwgMC4yNzQ3MjcsIDAuNDM1MzYxLCAwLjU5NjA2MywgMC45NzA3NzMsIDEuMTg0OTciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTI1NjQ1LCAwLjE0NjI3OCwgMC4zMzQ0NjEsIDAuNjU0MTM4LCAwLjk3NzM0NywgMS43Mjc3NywgMi4xNjI2NyIsIFwKLSAgICAgICAgICAiMC4xMjU2MzEsIDAuMTQ2MjU0LCAwLjMzNDY5LCAwLjY1NTE1MiwgMC45NzQ2NjksIDEuNzI3MjcsIDIuMTYyNTQiLCBcCi0gICAgICAgICAgIjAuMTI1NDY0LCAwLjE0NjExMSwgMC4zMzQ1NzQsIDAuNjU1MjA5LCAwLjk3NDY2LCAxLjcyNzUxLCAyLjE2MjQiLCBcCi0gICAgICAgICAgIjAuMTI1MzA3LCAwLjE0NTk4MSwgMC4zMzQyOTUsIDAuNjU0MTcxLCAwLjk3NTA0MiwgMS43Mjc5NiwgMi4xNTk2MSIsIFwKLSAgICAgICAgICAiMC4xMjUxMTEsIDAuMTQ1Nzk5LCAwLjMzNDQ3LCAwLjY1NDE2MSwgMC45NzYyMTEsIDEuNzI3NjIsIDIuMTU3MDEiLCBcCi0gICAgICAgICAgIjAuMTI0OTA5LCAwLjE0NTUyOCwgMC4zMzQwNjcsIDAuNjU0ODcyLCAwLjk3NzU3NiwgMS43MzEyNiwgMi4xNjI0OSIsIFwKLSAgICAgICAgICAiMC4xMjQ2MjYsIDAuMTQ1Mzk0LCAwLjMzMzk1NSwgMC42NTM3NzIsIDAuOTc0NzMsIDEuNzMxMiwgMi4xNjI0NyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwODk1NSwgMC4wMDg5NTgsIDAuMDA4OTcyLCAwLjAwODk3OCwgMC4wMDg5OCwgMC4wMDg5ODMsIDAuMDA4OTgzIiwgXAotICAgICAgICAgICIwLjAwODkzNCwgMC4wMDg5MzgsIDAuMDA4OTUxLCAwLjAwODk1NywgMC4wMDg5NTksIDAuMDA4OTYxLCAwLjAwODk2MiIsIFwKLSAgICAgICAgICAiMC4wMDg5MjQsIDAuMDA4OTI3LCAwLjAwODk0LCAwLjAwODk0NywgMC4wMDg5NDksIDAuMDA4OTUxLCAwLjAwODk1MiIsIFwKLSAgICAgICAgICAiMC4wMDg5MjMsIDAuMDA4OTI2LCAwLjAwODkzOSwgMC4wMDg5NDUsIDAuMDA4OTQ4LCAwLjAwODk1LCAwLjAwODk1MSIsIFwKLSAgICAgICAgICAiMC4wMDg5MywgMC4wMDg5MzMsIDAuMDA4OTQ2LCAwLjAwODk1MywgMC4wMDg5NTUsIDAuMDA4OTU3LCAwLjAwODk1OCIsIFwKLSAgICAgICAgICAiMC4wMDg5NDksIDAuMDA4OTUyLCAwLjAwODk2NSwgMC4wMDg5NzEsIDAuMDA4OTc0LCAwLjAwODk3NiwgMC4wMDg5NzciLCBcCi0gICAgICAgICAgIjAuMDA4OTY5LCAwLjAwODk3MiwgMC4wMDg5ODUsIDAuMDA4OTkyLCAwLjAwODk5NCwgMC4wMDg5OTYsIDAuMDA4OTk3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA4OTIyLCAwLjAwODkyNSwgMC4wMDg5MzYsIDAuMDA4OTQxLCAwLjAwODk0MywgMC4wMDg5NDUsIDAuMDA4OTQ1IiwgXAotICAgICAgICAgICIwLjAwODg5MiwgMC4wMDg4OTUsIDAuMDA4OTA3LCAwLjAwODkxMiwgMC4wMDg5MTQsIDAuMDA4OTE2LCAwLjAwODkxNiIsIFwKLSAgICAgICAgICAiMC4wMDg4NzksIDAuMDA4ODgyLCAwLjAwODg5NCwgMC4wMDg4OTksIDAuMDA4OSwgMC4wMDg5MDIsIDAuMDA4OTAyIiwgXAotICAgICAgICAgICIwLjAwODg3OSwgMC4wMDg4ODIsIDAuMDA4ODk0LCAwLjAwODg5OSwgMC4wMDg5MDEsIDAuMDA4OTAyLCAwLjAwODkwMyIsIFwKLSAgICAgICAgICAiMC4wMDg4ODYsIDAuMDA4ODg5LCAwLjAwODksIDAuMDA4OTA2LCAwLjAwODkwNywgMC4wMDg5MDksIDAuMDA4OTEiLCBcCi0gICAgICAgICAgIjAuMDA4OTE0LCAwLjAwODkxNywgMC4wMDg5MjksIDAuMDA4OTM0LCAwLjAwODkzNiwgMC4wMDg5MzgsIDAuMDA4OTM4IiwgXAotICAgICAgICAgICIwLjAwODkyOSwgMC4wMDg5MzIsIDAuMDA4OTQ0LCAwLjAwODk0OSwgMC4wMDg5NTEsIDAuMDA4OTUzLCAwLjAwODk1MyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNzQ0MSwgMC4wMDc0NDQsIDAuMDA3NDU1LCAwLjAwNzQ2LCAwLjAwNzQ2MiwgMC4wMDc0NjQsIDAuMDA3NDY0IiwgXAotICAgICAgICAgICIwLjAwNzQzOCwgMC4wMDc0NDEsIDAuMDA3NDUzLCAwLjAwNzQ1OCwgMC4wMDc0NjIsIDAuMDA3NDYyLCAwLjAwNzQ2MyIsIFwKLSAgICAgICAgICAiMC4wMDc0ODksIDAuMDA3NDkyLCAwLjAwNzUwNCwgMC4wMDc1MSwgMC4wMDc1MTIsIDAuMDA3NTE0LCAwLjAwNzUxNSIsIFwKLSAgICAgICAgICAiMC4wMDc1NjMsIDAuMDA3NTY2LCAwLjAwNzU3OCwgMC4wMDc1ODQsIDAuMDA3NTg3LCAwLjAwNzU4OSwgMC4wMDc1ODkiLCBcCi0gICAgICAgICAgIjAuMDA3NTc2LCAwLjAwNzU3NywgMC4wMDc1OTEsIDAuMDA3NTk3LCAwLjAwNzU5OSwgMC4wMDc2MDIsIDAuMDA3NjAyIiwgXAotICAgICAgICAgICIwLjAwNzY3NiwgMC4wMDc2NzgsIDAuMDA3NjkxLCAwLjAwNzY5NywgMC4wMDc2OTksIDAuMDA3NzAyLCAwLjAwNzcwMiIsIFwKLSAgICAgICAgICAiMC4wMDc3NTksIDAuMDA3NzYyLCAwLjAwNzc3NCwgMC4wMDc3NzksIDAuMDA3Nzg0LCAwLjAwNzc4NiwgMC4wMDc3ODYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDU3MjgsIDAuMDA1NzMxLCAwLjAwNTc0MSwgMC4wMDU3NDUsIDAuMDA1NzQ3LCAwLjAwNTc0OCwgMC4wMDU3NDkiLCBcCi0gICAgICAgICAgIjAuMDA1NzA3LCAwLjAwNTcxLCAwLjAwNTcyLCAwLjAwNTcyNSwgMC4wMDU3MjYsIDAuMDA1NzI4LCAwLjAwNTcyOCIsIFwKLSAgICAgICAgICAiMC4wMDU3NTMsIDAuMDA1NzU1LCAwLjAwNTc2NiwgMC4wMDU3NzEsIDAuMDA1NzczLCAwLjAwNTc3NSwgMC4wMDU3NzUiLCBcCi0gICAgICAgICAgIjAuMDA1ODM1LCAwLjAwNTgzOCwgMC4wMDU4NDksIDAuMDA1ODU0LCAwLjAwNTg1NiwgMC4wMDU4NTgsIDAuMDA1ODU4IiwgXAotICAgICAgICAgICIwLjAwNTg4NSwgMC4wMDU4ODgsIDAuMDA1ODk5LCAwLjAwNTkwNCwgMC4wMDU5MDYsIDAuMDA1OTA4LCAwLjAwNTkwOSIsIFwKLSAgICAgICAgICAiMC4wMDU5OTQsIDAuMDA1OTk3LCAwLjAwNjAwOCwgMC4wMDYwMTQsIDAuMDA2MDE2LCAwLjAwNjAxOCwgMC4wMDYwMTkiLCBcCi0gICAgICAgICAgIjAuMDA2MDYsIDAuMDA2MDYzLCAwLjAwNjA3NSwgMC4wMDYwODEsIDAuMDA2MDgzLCAwLjAwNjA4NSwgMC4wMDYwODUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDM0NDYsIDAuMDAzNDQ4LCAwLjAwMzQ1NSwgMC4wMDM0NTgsIDAuMDAzNDU5LCAwLjAwMzQ2LCAwLjAwMzQ2IiwgXAotICAgICAgICAgICIwLjAwMzQ1MiwgMC4wMDM0NTQsIDAuMDAzNDYyLCAwLjAwMzQ2NSwgMC4wMDM0NjYsIDAuMDAzNDY3LCAwLjAwMzQ2OSIsIFwKLSAgICAgICAgICAiMC4wMDM0OTQsIDAuMDAzNDk2LCAwLjAwMzUwNSwgMC4wMDM1MDksIDAuMDAzNTEsIDAuMDAzNTExLCAwLjAwMzUxMiIsIFwKLSAgICAgICAgICAiMC4wMDM1MzYsIDAuMDAzNTM4LCAwLjAwMzU0NiwgMC4wMDM1NSwgMC4wMDM1NTMsIDAuMDAzNTU0LCAwLjAwMzU1NSIsIFwKLSAgICAgICAgICAiMC4wMDM1OSwgMC4wMDM1OTIsIDAuMDAzNjAxLCAwLjAwMzYwNSwgMC4wMDM2MDcsIDAuMDAzNjA5LCAwLjAwMzYwOSIsIFwKLSAgICAgICAgICAiMC4wMDM2NjEsIDAuMDAzNjYzLCAwLjAwMzY3MSwgMC4wMDM2NzYsIDAuMDAzNjc3LCAwLjAwMzY3OSwgMC4wMDM2OCIsIFwKLSAgICAgICAgICAiMC4wMDM3MTIsIDAuMDAzNzI5LCAwLjAwMzczOSwgMC4wMDM3NDIsIDAuMDAzNzQzLCAwLjAwMzc0NSwgMC4wMDM3NDYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI2OTIsIDAuMDAyNjk0LCAwLjAwMjcsIDAuMDAyNzAyLCAwLjAwMjcwMywgMC4wMDI3MDQsIDAuMDAyNzA0IiwgXAotICAgICAgICAgICIwLjAwMjcsIDAuMDAyNzAyLCAwLjAwMjcwOCwgMC4wMDI3MTEsIDAuMDAyNzEyLCAwLjAwMjcxMiwgMC4wMDI3MTMiLCBcCi0gICAgICAgICAgIjAuMDAyNzYxLCAwLjAwMjc2MywgMC4wMDI3NywgMC4wMDI3NzMsIDAuMDAyNzc0LCAwLjAwMjc3NSwgMC4wMDI3NzYiLCBcCi0gICAgICAgICAgIjAuMDAyODAxLCAwLjAwMjgwMywgMC4wMDI4MTEsIDAuMDAyODE0LCAwLjAwMjgxNSwgMC4wMDI4MTYsIDAuMDAyODE3IiwgXAotICAgICAgICAgICIwLjAwMjg1MSwgMC4wMDI4NTMsIDAuMDAyODYxLCAwLjAwMjg2NCwgMC4wMDI4NjYsIDAuMDAyODY3LCAwLjAwMjg2NyIsIFwKLSAgICAgICAgICAiMC4wMDI5MzgsIDAuMDAyOTQsIDAuMDAyOTQ4LCAwLjAwMjk1MiwgMC4wMDI5NTMsIDAuMDAyOTU1LCAwLjAwMjk1NSIsIFwKLSAgICAgICAgICAiMC4wMDMsIDAuMDAyOTk4LCAwLjAwMzAxLCAwLjAwMzAxMywgMC4wMDMwMSwgMC4wMDMwMTYsIDAuMDAzMDE3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogQU9JMzFYNCAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChBT0kzMVg0KSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuNTg4MDQ2OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAyOTgzMDk7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAyOTc0MjI7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAyOTgzMDk7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxNjM3LCAwLjAwMTYzNiwgMC4wMDE2MzUsIDAuMDAxNjM0LCAwLjAwMTYzNCwgMC4wMDE2MzUsIDAuMDAxNjM0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxNjM5LCAwLjAwMTY0LCAwLjAwMTY0LCAwLjAwMTY0LCAwLjAwMTY0LCAwLjAwMTY0MSwgMC4wMDE2NDEiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEExKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDI5OTIxMjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDI5ODA0OTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDI5OTIxMjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDE2MzcsIDAuMDAxNjM1LCAwLjAwMTYzNSwgMC4wMDE2MzUsIDAuMDAxNjM0LCAwLjAwMTYzNCwgMC4wMDE2MzQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDE2MzksIDAuMDAxNjQsIDAuMDAxNjQxLCAwLjAwMTY0LCAwLjAwMTY0MSwgMC4wMDE2NDIsIDAuMDAxNjQyIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihBMikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAyOTg5MDc7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAyOTY1ODk7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAyOTg5MDc7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNjA5LCAwLjAwMDYwNiwgMC4wMDA2MDYsIDAuMDAwNjA2LCAwLjAwMDYwNiwgMC4wMDA2MDYsIDAuMDAwNjA1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxODU3LCAwLjAwMTg1OCwgMC4wMDE4NTgsIDAuMDAxODU5LCAwLjAwMTg1OSwgMC4wMDE4NTgsIDAuMDAxODU4Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAzMDE2NjI7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAzMDE1MzM7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAzMDE2NjI7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzUyLCAwLjAwMDM1MiwgMC4wMDAzNTIsIDAuMDAwMzUyLCAwLjAwMDM1MiwgMC4wMDAzNTIsIDAuMDAwMzUyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyNzI3LCAwLjAwMjcyOSwgMC4wMDI3MjksIDAuMDAyNzI0LCAwLjAwMjcyNywgMC4wMDI3MjcsIDAuMDAyNzI3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMzU5MTQyOwotICAgIGZ1bmN0aW9uIDogIighKCgoQTAgQTEpIEEyKStCMCkpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDU4MDIsIDAuMTg3ODM3LCAwLjMyODc0OCwgMC40MjkzODIsIDAuNTkwMzk1LCAwLjczMDkwNSwgMC45MzE2MTUiLCBcCi0gICAgICAgICAgIjAuMDU1MzEsIDAuMTk3NDM1LCAwLjMzODI4OCwgMC40Mzg4NzYsIDAuNTk5OTQ5LCAwLjc0MDE4NiwgMC45NDIwMDgiLCBcCi0gICAgICAgICAgIjAuMDY1ODg0LCAwLjIwODAyNiwgMC4zNDkwMDcsIDAuNDQ5Mzk5LCAwLjYxMDE1OSwgMC43NTEyMSwgMC45NTIzNTkiLCBcCi0gICAgICAgICAgIjAuMDc1ODY5LCAwLjIxODE5OSwgMC4zNTkxMDYsIDAuNDU5NzEsIDAuNjIwNzMzLCAwLjc2MTQ5NywgMC45NjI3MjgiLCBcCi0gICAgICAgICAgIjAuMDg1MTE5LCAwLjIyODE5OSwgMC4zNjkyNDIsIDAuNDY5NzgzLCAwLjYzMDgzMywgMC43NzE4MDgsIDAuOTcyMTciLCBcCi0gICAgICAgICAgIjAuMDk4MDU0LCAwLjI0NDA3NSwgMC4zODUxNTEsIDAuNDg1ODA2LCAwLjY0Njg1OSwgMC43ODczMzUsIDAuOTg4Mjk1IiwgXAotICAgICAgICAgICIwLjEwNzgyNiwgMC4yNTc5MzUsIDAuMzk5MTgzLCAwLjQ5OTgyNSwgMC42NjA4MzYsIDAuODAxNjQ5LCAxLjAwMjM3Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY2NzMyLCAwLjM1MzY2MSwgMC42NDA3ODIsIDAuODQ1MTIsIDEuMTcyOTQsIDEuNDU5NTQsIDEuODY4OTYiLCBcCi0gICAgICAgICAgIjAuMDY2Nzg0LCAwLjM1MzgzOSwgMC42NDA2NjMsIDAuODQ1MTg0LCAxLjE3MjczLCAxLjQ1OTEyLCAxLjg2OTEyIiwgXAotICAgICAgICAgICIwLjA2ODI5NCwgMC4zNTM1NjksIDAuNjQwMzQxLCAwLjg0NTM4NCwgMS4xNzI0LCAxLjQ1OTM2LCAxLjg2OTMxIiwgXAotICAgICAgICAgICIwLjA3MTQ3MSwgMC4zNTM4NjUsIDAuNjQwNTM5LCAwLjg0NTA3MywgMS4xNzMxMywgMS40NTk1LCAxLjg2ODk3IiwgXAotICAgICAgICAgICIwLjA3NTY2OCwgMC4zNTQyOTcsIDAuNjQwMzA4LCAwLjg0NTA1NCwgMS4xNzI3NCwgMS40NTk1MywgMS44Njg4OCIsIFwKLSAgICAgICAgICAiMC4wODQwOTMsIDAuMzU3NDA0LCAwLjY0MDgyNCwgMC44NDUxNCwgMS4xNzI3MiwgMS40NTk1LCAxLjg2OTEzIiwgXAotICAgICAgICAgICIwLjA5MTcyNCwgMC4zNjExNzEsIDAuNjQxOTI2LCAwLjg0NTYyMiwgMS4xNzI4MSwgMS40NTk4NywgMS44NjkwNSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2Nzg0OSwgMC4yNzYxMDMsIDAuNDgyNTc0LCAwLjYzMDEwOSwgMC44NjYyNjQsIDEuMDcyMDksIDEuMzY2NjMiLCBcCi0gICAgICAgICAgIjAuMDc2MzQ4LCAwLjI4NDg2NiwgMC40OTE1MTgsIDAuNjM4ODYzLCAwLjg3NDc0MiwgMS4wODA5MSwgMS4zNzUzNiIsIFwKLSAgICAgICAgICAiMC4wODU2MDcsIDAuMjk0MjU4LCAwLjUwMDc3MiwgMC42NDg1NiwgMC44ODM4OTgsIDEuMDkwNSwgMS4zODUwNyIsIFwKLSAgICAgICAgICAiMC4wOTQ0NjgsIDAuMzAzMjMxLCAwLjUwOTg0MiwgMC42NTcxMzEsIDAuODkzMjgsIDEuMDk5MjYsIDEuMzk0NDQiLCBcCi0gICAgICAgICAgIjAuMTAzMTI3LCAwLjMxMTg2NSwgMC41MTg2ODksIDAuNjY2MjQsIDAuOTAyMDksIDEuMTA3ODMsIDEuNDAzMzkiLCBcCi0gICAgICAgICAgIjAuMTE2MTc5LCAwLjMyNjAzOSwgMC41MzI2ODUsIDAuNjgwMTc2LCAwLjkxNTgwNywgMS4xMjIwNiwgMS40MTcyMSIsIFwKLSAgICAgICAgICAiMC4xMjY2MTEsIDAuMzM4MDcyLCAwLjU0NTAyMiwgMC42OTI2MDcsIDAuOTI4MzQyLCAxLjEzNDUzLCAxLjQyODk4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk3NDc4LCAwLjUwMzMxNywgMC45MDg2MjYsIDEuMTk4MjYsIDEuNjYxNTEsIDIuMDY2NTIsIDIuNjQ1MjciLCBcCi0gICAgICAgICAgIjAuMDk3NTUsIDAuNTAzNjg3LCAwLjkwODkzNywgMS4xOTgyOSwgMS42NjE3MSwgMi4wNjY1LCAyLjY0NTEiLCBcCi0gICAgICAgICAgIjAuMDk4MTM0LCAwLjUwMzMyNywgMC45MDg2MDYsIDEuMTk4MzksIDEuNjYyMDYsIDIuMDY2NSwgMi42NDUzMiIsIFwKLSAgICAgICAgICAiMC4wOTk4ODcsIDAuNTAzNjYxLCAwLjkwODU5MiwgMS4xOTgsIDEuNjYxMzksIDIuMDY2NzIsIDIuNjQ1NDgiLCBcCi0gICAgICAgICAgIjAuMTAyNCwgMC41MDMzNTgsIDAuOTA4ODcsIDEuMTk4NDgsIDEuNjYxNzcsIDIuMDY1OTIsIDIuNjQ1NTEiLCBcCi0gICAgICAgICAgIjAuMTA4MTU0LCAwLjUwNDQ5OSwgMC45MDg2MDksIDEuMTk4OCwgMS42NjA4OSwgMi4wNjYyOCwgMi42NDUzNSIsIFwKLSAgICAgICAgICAiMC4xMTQzMDUsIDAuNTA2MjQsIDAuOTA4NzY1LCAxLjE5ODM2LCAxLjY2MTI3LCAyLjA2NjMzLCAyLjY0NjI3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkExIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0MjcyLCAwLjE4MzgzMSwgMC4zMjQ2OTUsIDAuNDI1MTk5LCAwLjU4NTkzNywgMC43MjY2NDUsIDAuOTI3Mzk3IiwgXAotICAgICAgICAgICIwLjA1MjIyNywgMC4xOTM1MzMsIDAuMzM0NDE4LCAwLjQzNDczOCwgMC41OTU1NTMsIDAuNzM2NDQxLCAwLjkzNzMyNiIsIFwKLSAgICAgICAgICAiMC4wNjI3NzYsIDAuMjA0MjYsIDAuMzQ1MDE3LCAwLjQ0NTY1NywgMC42MDY1NzIsIDAuNzQ2OCwgMC45NDgxMDQiLCBcCi0gICAgICAgICAgIjAuMDcyNjUsIDAuMjE0MjczLCAwLjM1NTI0OCwgMC40NTU1ODIsIDAuNjE2NTU2LCAwLjc1NzQxNCwgMC45NTg0MTEiLCBcCi0gICAgICAgICAgIjAuMDgxNDMsIDAuMjI0MjU0LCAwLjM2NTE5NiwgMC40NjU2OTQsIDAuNjI2NjEsIDAuNzY3NDkxLCAwLjk2NzkwNyIsIFwKLSAgICAgICAgICAiMC4wOTM2NjUsIDAuMjQwMjMzLCAwLjM4MTE0NSwgMC40ODE2ODksIDAuNjQyNzM2LCAwLjc4MzIsIDAuOTg0MTM4IiwgXAotICAgICAgICAgICIwLjEwMzE2OSwgMC4yNTM5NjYsIDAuMzk1MDEsIDAuNDk1NTUsIDAuNjU2NDAyLCAwLjc5NzE0LCAwLjk5ODUyIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDYyMTU0LCAwLjM0ODc3MSwgMC42MzU1MzgsIDAuODQwMzcsIDEuMTY4NSwgMS40NTUzMiwgMS44NjQ2OSIsIFwKLSAgICAgICAgICAiMC4wNjIyNDQsIDAuMzQ4OTA1LCAwLjYzNTU5NCwgMC44NDA3NzIsIDEuMTY4MTMsIDEuNDU0NiwgMS44NjQ4MyIsIFwKLSAgICAgICAgICAiMC4wNjM5MzQsIDAuMzQ4ODkyLCAwLjYzNTU5MywgMC44NDA0MTcsIDEuMTY4NDMsIDEuNDU1MDEsIDEuODY1NDUiLCBcCi0gICAgICAgICAgIjAuMDY3MzMzLCAwLjM0ODk2NiwgMC42MzU1ODEsIDAuODQwMjkzLCAxLjE2ODU0LCAxLjQ1NTYyLCAxLjg2NTE2IiwgXAotICAgICAgICAgICIwLjA3MTkzLCAwLjM0OTc4OCwgMC42MzU3MTIsIDAuODQwMzkxLCAxLjE2ODI3LCAxLjQ1NjA0LCAxLjg2NDUxIiwgXAotICAgICAgICAgICIwLjA4MDYwMSwgMC4zNTI5NzcsIDAuNjM1OTg4LCAwLjg0MDUyNCwgMS4xNjg1NiwgMS40NTQ5NiwgMS44NjQ2MiIsIFwKLSAgICAgICAgICAiMC4wODgwODEsIDAuMzU2NjY5LCAwLjYzNzc1MywgMC44NDA3NjksIDEuMTY4MDksIDEuNDU1OTEsIDEuODY1NDEiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjQ0NzMsIDAuMjcyODIsIDAuNDc5Mzk0LCAwLjYyNjc4NSwgMC44NjI1NjksIDEuMDY4NTgsIDEuMzYzNzciLCBcCi0gICAgICAgICAgIjAuMDcyODQ3LCAwLjI4MTI4OSwgMC40ODc4NSwgMC42MzUyOTgsIDAuODcwNzk3LCAxLjA3NjgsIDEuMzcxNCIsIFwKLSAgICAgICAgICAiMC4wODMxNTksIDAuMjkxODcsIDAuNDk4NDM4LCAwLjY0NTk0NSwgMC44ODE5MDQsIDEuMDg3NzcsIDEuMzgyNjEiLCBcCi0gICAgICAgICAgIjAuMDkzNTU1LCAwLjMwMjM4MywgMC41MDkxMzMsIDAuNjU2Mzg5LCAwLjg5MjUyLCAxLjA5ODYxLCAxLjM5MzM4IiwgXAotICAgICAgICAgICIwLjEwMzk4MSwgMC4zMTE4NTIsIDAuNTE5NTI3LCAwLjY2NzE0MSwgMC45MDI2NjgsIDEuMTA5NDgsIDEuNDAzMzQiLCBcCi0gICAgICAgICAgIjAuMTE5NTAyLCAwLjMyOTU2MSwgMC41MzY2MDksIDAuNjgzODM2LCAwLjkxOTksIDEuMTI2MDMsIDEuNDIwMTkiLCBcCi0gICAgICAgICAgIjAuMTMxNDIsIDAuMzQ0MjE3LCAwLjU1MDU4MSwgMC42OTg4MzksIDAuOTM0Nzk3LCAxLjE0MDY4LCAxLjQzNjAzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk3NTY2LCAwLjUwMzQyMSwgMC45MDg4MjUsIDEuMTk4NDIsIDEuNjYxNDEsIDIuMDY2NDUsIDIuNjQ1NDMiLCBcCi0gICAgICAgICAgIjAuMDk3NTQsIDAuNTAzMzAzLCAwLjkwODYwNiwgMS4xOTg0NywgMS42NjA5MiwgMi4wNjY4NCwgMi42NDY2IiwgXAotICAgICAgICAgICIwLjA5ODY4MywgMC41MDM2MzIsIDAuOTA5MTQ5LCAxLjE5ODg5LCAxLjY2MTQyLCAyLjA2NzM5LCAyLjY0NTMzIiwgXAotICAgICAgICAgICIwLjEwMTgwOSwgMC41MDM2MjgsIDAuOTA5Mjk5LCAxLjE5Nzk2LCAxLjY2MTQxLCAyLjA2NjQ4LCAyLjY0NTI5IiwgXAotICAgICAgICAgICIwLjEwNjM3OSwgMC41MDMzNDYsIDAuOTA4NjA1LCAxLjE5ODI0LCAxLjY2MDkxLCAyLjA2NjY2LCAyLjY0NTEzIiwgXAotICAgICAgICAgICIwLjExNTIwOCwgMC41MDQ2MSwgMC45MDg4MDUsIDEuMTk4LCAxLjY2MTIyLCAyLjA2NzQyLCAyLjY0NjQ4IiwgXAotICAgICAgICAgICIwLjEyNDM0OSwgMC41MDcxNjIsIDAuOTA5MjIyLCAxLjE5ODIzLCAxLjY2MTQxLCAyLjA2NjMyLCAyLjY0NTQ2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEyIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzODgxMSwgMC4xNzkyNjMsIDAuMzE5NzQ0LCAwLjQyMDA0NSwgMC41ODAzOTYsIDAuNzIwNjQ0LCAwLjkyMTIwMiIsIFwKLSAgICAgICAgICAiMC4wNDgzMzEsIDAuMTg5MDUxLCAwLjMyOTUyNCwgMC40Mjk2NzgsIDAuNTg5ODU2LCAwLjczMDYxMiwgMC45MzA4ODgiLCBcCi0gICAgICAgICAgIjAuMDU4NzIzLCAwLjE5OTYyMiwgMC4zMzk5NTgsIDAuNDQwNTYsIDAuNjAxMjIzLCAwLjc0MTM4OSwgMC45NDE3MjgiLCBcCi0gICAgICAgICAgIjAuMDY4MzE4LCAwLjIwOTYxNiwgMC4zNTAwNTIsIDAuNDUwNDQ2LCAwLjYxMDY5OSwgMC43NTE3MiwgMC45NTIxMzEiLCBcCi0gICAgICAgICAgIjAuMDc2Njc3LCAwLjIxOTczOCwgMC4zNjAyODksIDAuNDYwODYsIDAuNjIxMjMxLCAwLjc2MTYxLCAwLjk2MTYxOSIsIFwKLSAgICAgICAgICAiMC4wODgzODIsIDAuMjM1NTcxLCAwLjM3NjMsIDAuNDc2NTEyLCAwLjYzNzM0LCAwLjc3NzMzNiwgMC45Nzc3OSIsIFwKLSAgICAgICAgICAiMC4wOTcyMTYsIDAuMjQ5NDA5LCAwLjM5MDMyNywgMC40OTA1NywgMC42NTEzODUsIDAuNzkxNDE4LCAwLjk5MTk3MiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1NzQ1NywgMC4zNDM4NzMsIDAuNjI4OTczLCAwLjgzMzEyNSwgMS4xNTk5LCAxLjQ0NDg5LCAxLjg1NDI5IiwgXAotICAgICAgICAgICIwLjA1NzYyNCwgMC4zNDM4NzgsIDAuNjI5MDU0LCAwLjgzNDA5NywgMS4xNjI4MiwgMS40NDY2OCwgMS44NTQ1MyIsIFwKLSAgICAgICAgICAiMC4wNTk1MjEsIDAuMzQzOTYyLCAwLjYzMDEzNCwgMC44MzMxODksIDEuMTYwMjcsIDEuNDQ2MTksIDEuODU0ODUiLCBcCi0gICAgICAgICAgIjAuMDYzMjQ2LCAwLjM0NCwgMC42Mjk5MzksIDAuODMzMzY2LCAxLjE2MjQyLCAxLjQ0NjE3LCAxLjg1Mzk4IiwgXAotICAgICAgICAgICIwLjA2ODE0NywgMC4zNDQ5MjQsIDAuNjI5NTMyLCAwLjgzMzEzNSwgMS4xNTk5LCAxLjQ0NjQzLCAxLjg1ODA4IiwgXAotICAgICAgICAgICIwLjA3Njg4NiwgMC4zNDgwMTEsIDAuNjI5NjQzLCAwLjgzMzg5OCwgMS4xNTk4MiwgMS40NDkxNSwgMS44NTg0OCIsIFwKLSAgICAgICAgICAiMC4wODQ2MDUsIDAuMzUxNjA5LCAwLjYzMTY1MiwgMC44MzQxNzMsIDEuMTYwMTYsIDEuNDQ2ODcsIDEuODU4MzciKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTc4OCwgMC4yNjYyNTMsIDAuNDcyODUxLCAwLjYyMDI3LCAwLjg1NjIyOCwgMS4wNjIyLCAxLjM1NjU2IiwgXAotICAgICAgICAgICIwLjA2NjI0NywgMC4yNzQ3OTIsIDAuNDgxMjg1LCAwLjYyODY5NSwgMC44NjQyODgsIDEuMDcwNDIsIDEuMzY0NzIiLCBcCi0gICAgICAgICAgIjAuMDc2OTY2LCAwLjI4NTU3OCwgMC40OTIyMjQsIDAuNjM5NTc1LCAwLjg3NTE4MSwgMS4wODE5NiwgMS4zNzU3NiIsIFwKLSAgICAgICAgICAiMC4wODgyOTgsIDAuMjk2NTU4LCAwLjUwMzQ5NCwgMC42NTA4NTQsIDAuODg2NTUxLCAxLjA5Mjg5LCAxLjM4NzQzIiwgXAotICAgICAgICAgICIwLjA5OTI1NiwgMC4zMDcxNDEsIDAuNTE0MDkyLCAwLjY2MTY4OSwgMC44OTcxOTcsIDEuMTAzOTcsIDEuMzk3ODciLCBcCi0gICAgICAgICAgIjAuMTE2NTU4LCAwLjMyNTIwNywgMC41MzE3ODQsIDAuNjc5MjQ4LCAwLjkxNTE3OSwgMS4xMjE3NCwgMS40MTU1MSIsIFwKLSAgICAgICAgICAiMC4xMjg5NjcsIDAuMzQwNTg4LCAwLjU0NjQ0OSwgMC42OTQ1MDIsIDAuOTMwMTUxLCAxLjEzNjk0LCAxLjQzMTg1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk3NzU3LCAwLjUwMzM0OSwgMC45MDkzMDUsIDEuMTk4MzQsIDEuNjYxNDQsIDIuMDY2NTMsIDIuNjQ1NzQiLCBcCi0gICAgICAgICAgIjAuMDk3Mjg1LCAwLjUwMzU2MSwgMC45MDg2MTQsIDEuMTk3OTQsIDEuNjYxMzgsIDIuMDY2MDEsIDIuNjQ1ODkiLCBcCi0gICAgICAgICAgIjAuMDk5ODIzLCAwLjUwMzI5NywgMC45MDg3MDcsIDEuMTk4OCwgMS42NjA5LCAyLjA2Njc2LCAyLjY0NjQ3IiwgXAotICAgICAgICAgICIwLjEwNTA4NSwgMC41MDM2MjIsIDAuOTA4NzMyLCAxLjE5ODEyLCAxLjY2MTk0LCAyLjA2NzQxLCAyLjY0NTM3IiwgXAotICAgICAgICAgICIwLjExMjE2OSwgMC41MDM2MDMsIDAuOTA4NjExLCAxLjE5ODMyLCAxLjY2MTE2LCAyLjA2NjY0LCAyLjY0NjUyIiwgXAotICAgICAgICAgICIwLjEyNDgzLCAwLjUwNTM2MiwgMC45MDg3NTksIDEuMTk4MzcsIDEuNjYxMzcsIDIuMDY2NjUsIDIuNjQ2NDYiLCBcCi0gICAgICAgICAgIjAuMTM2NzE1LCAwLjUwOTYyMiwgMC45MDg4NzIsIDEuMTk4MDEsIDEuNjYwOTIsIDIuMDY2NTcsIDIuNjQ1NTQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjAiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM2NzI3LCAwLjE3ODg3OSwgMC4zMTk3MzQsIDAuNDIwMjI3LCAwLjU4MTM4OSwgMC43MjIxLCAwLjkyMzQ2NCIsIFwKLSAgICAgICAgICAiMC4wNDU1ODMsIDAuMTg4MDExLCAwLjMyODk4OSwgMC40Mjk0MzQsIDAuNTkwNTk0LCAwLjczMTE2OSwgMC45MzIzMjEiLCBcCi0gICAgICAgICAgIjAuMDU3MTUyLCAwLjE5OTQ2NywgMC4zNDAzNzIsIDAuNDQwOTc5LCAwLjYwMjEzNCwgMC43NDI1ODgsIDAuOTQ0MDc3IiwgXAotICAgICAgICAgICIwLjA2ODc1NSwgMC4yMTA3NjcsIDAuMzUxNzkxLCAwLjQ1MjQyMSwgMC42MTMwMDEsIDAuNzUzNDQ5LCAwLjk1NDgxNSIsIFwKLSAgICAgICAgICAiMC4wNzg5ODYsIDAuMjIyMjU0LCAwLjM2MzIwNCwgMC40NjM4ODgsIDAuNjI0NzUyLCAwLjc2NTU1NCwgMC45NjYyNzQiLCBcCi0gICAgICAgICAgIjAuMDkyNDczLCAwLjI0MDY1NiwgMC4zODE1OTYsIDAuNDgyMjQ5LCAwLjY0MzA3OSwgMC43ODM3NTMsIDAuOTg0NTQiLCBcCi0gICAgICAgICAgIjAuMTAyOTU1LCAwLjI1Njg4NSwgMC4zOTc3NTUsIDAuNDk4MjM2LCAwLjY1OTI5NywgMC43OTk4OTUsIDEuMDAwODgiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjY1NDksIDAuMzUzNDksIDAuNjQwMSwgMC44NDUzOSwgMS4xNzI2NCwgMS40NTk5MiwgMS44NjkwNiIsIFwKLSAgICAgICAgICAiMC4wNjY3NDgsIDAuMzUzNjA2LCAwLjY0MDM3OCwgMC44NDUzNzksIDEuMTczMTcsIDEuNDU5NTksIDEuODY5NTciLCBcCi0gICAgICAgICAgIjAuMDcxODUyLCAwLjM1MzYzMywgMC42NDA1ODMsIDAuODQ0OTMzLCAxLjE3MjkzLCAxLjQ1OTY5LCAxLjg2ODk5IiwgXAotICAgICAgICAgICIwLjA3OTIwNSwgMC4zNTM2NTIsIDAuNjQwMzE4LCAwLjg0NTMwNywgMS4xNzI5NiwgMS40NTkyOSwgMS44Njk3OCIsIFwKLSAgICAgICAgICAiMC4wODc3MzIsIDAuMzU1NjAyLCAwLjY0MDEzMiwgMC44NDUzNTksIDEuMTcyODcsIDEuNDU5ODIsIDEuODY4OTIiLCBcCi0gICAgICAgICAgIjAuMTAxNTE5LCAwLjM2MTMxLCAwLjY0MDg1MywgMC44NDUxNzMsIDEuMTczMjMsIDEuNDYsIDEuODY4NTgiLCBcCi0gICAgICAgICAgIjAuMTEyNjMsIDAuMzY4MDA1LCAwLjY0MzczLCAwLjg0NTE1NSwgMS4xNzI4MSwgMS40NTk0NywgMS44NjkxNCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxNzkxMSwgMC4wOTI0MTgsIDAuMTY2ODExLCAwLjIxOTk0LCAwLjMwNDkxMiwgMC4zNzkyNjYsIDAuNDg1NDk4IiwgXAotICAgICAgICAgICIwLjAyODE1NSwgMC4xMDI2NDIsIDAuMTc3MDY0LCAwLjIzMDE4NiwgMC4zMTUyLCAwLjM4OTUzMywgMC40OTU3NDYiLCBcCi0gICAgICAgICAgIjAuMDM5ODQyLCAwLjExNTMwNywgMC4xODk3OTIsIDAuMjQyODUzLCAwLjMyNzU5NywgMC40MDE0OTEsIDAuNTA3NjI0IiwgXAotICAgICAgICAgICIwLjA0OTE3OCwgMC4xMjg1ODIsIDAuMjAyOTI5LCAwLjI1NjA5OCwgMC4zNDEwMTYsIDAuNDE1MzczLCAwLjUyMTU5MyIsIFwKLSAgICAgICAgICAiMC4wNTY4MzIsIDAuMTQxMzMxLCAwLjIxNTE3NiwgMC4yNjg2MzIsIDAuMzUzNDk3LCAwLjQyNzc2NSwgMC41MzM4NzQiLCBcCi0gICAgICAgICAgIjAuMDY3NzE2LCAwLjE2MjIyNCwgMC4yMzU2MzYsIDAuMjg4NzIyLCAwLjM3NDE3NCwgMC40NDg0MDEsIDAuNTU0NDQiLCBcCi0gICAgICAgICAgIjAuMDc1OTEyLCAwLjE4MDYxLCAwLjI1NDUxLCAwLjMwNjU3LCAwLjM5MTUyNiwgMC40NjY0NzMsIDAuNTcyNTY4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM4NDUsIDAuMTg3Mjg2LCAwLjMzNjg0LCAwLjQ0MzY4NiwgMC42MTQ4MjIsIDAuNzY0NTQ1LCAwLjk3ODUzMSIsIFwKLSAgICAgICAgICAiMC4wNDE0NjIsIDAuMTg3MjgxLCAwLjMzNjgzLCAwLjQ0MzcwOCwgMC42MTQ4NywgMC43NjQ2NDksIDAuOTc4NjY3IiwgXAotICAgICAgICAgICIwLjA0OTc4LCAwLjE4NzkxNywgMC4zMzY3NzQsIDAuNDQzNjY5LCAwLjYxNDc4NSwgMC43NjQ2MzEsIDAuOTc4NTciLCBcCi0gICAgICAgICAgIjAuMDU5MTUxLCAwLjE5MTAzMSwgMC4zMzY5OTEsIDAuNDQzNjk2LCAwLjYxNDc5NCwgMC43NjQ2MDksIDAuOTc4NTU1IiwgXAotICAgICAgICAgICIwLjA2OTUzMiwgMC4xOTU3ODUsIDAuMzM4ODc4LCAwLjQ0NDAxNSwgMC42MTQ4MTYsIDAuNzY0NTg0LCAwLjk3ODU1IiwgXAotICAgICAgICAgICIwLjA4NDczMiwgMC4yMDU3MDksIDAuMzQ0NzEyLCAwLjQ0NzM1NCwgMC42MTUzMDUsIDAuNzY0NjU2LCAwLjk3ODY2NiIsIFwKLSAgICAgICAgICAiMC4wOTU0NiwgMC4yMTU3OTQsIDAuMzUxMDcxLCAwLjQ1MjM4LCAwLjYxNzg1NiwgMC43NjUxNzgsIDAuOTc4NTcyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEzODI2LCAwLjAxMzgyNiwgMC4wMTM4MjQsIDAuMDEzODI0LCAwLjAxMzgyNCwgMC4wMTM4MjIsIDAuMDEzODE5IiwgXAotICAgICAgICAgICIwLjAxMzc1NSwgMC4wMTM3NzUsIDAuMDEzNzc3LCAwLjAxMzc3OCwgMC4wMTM3NzQsIDAuMDEzNzc0LCAwLjAxMzc3MyIsIFwKLSAgICAgICAgICAiMC4wMTM3MiwgMC4wMTM3NTgsIDAuMDEzNzY1LCAwLjAxMzc2NCwgMC4wMTM3NjUsIDAuMDEzNzYzLCAwLjAxMzc2MyIsIFwKLSAgICAgICAgICAiMC4wMTM2OTUsIDAuMDEzNzQyLCAwLjAxMzc1OCwgMC4wMTM3NTksIDAuMDEzNzYxLCAwLjAxMzc2LCAwLjAxMzc2IiwgXAotICAgICAgICAgICIwLjAxMzY4NiwgMC4wMTM3NDIsIDAuMDEzNzUyLCAwLjAxMzc1NSwgMC4wMTM3NTgsIDAuMDEzNzU4LCAwLjAxMzc2MSIsIFwKLSAgICAgICAgICAiMC4wMTM2NjQsIDAuMDEzNzM0LCAwLjAxMzc0NywgMC4wMTM3NSwgMC4wMTM3NTMsIDAuMDEzNzU0LCAwLjAxMzc1NCIsIFwKLSAgICAgICAgICAiMC4wMTM2NzUsIDAuMDEzNzI3LCAwLjAxMzc0MiwgMC4wMTM3NDgsIDAuMDEzNzQ4LCAwLjAxMzc1MSwgMC4wMTM3NTIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjc2NSwgMC4wMDI3NjksIDAuMDAyNzY3LCAwLjAwMjc2OSwgMC4wMDI3NjQsIDAuMDAyNzYzLCAwLjAwMjc2OSIsIFwKLSAgICAgICAgICAiMC4wMDI2MTksIDAuMDAyNjc1LCAwLjAwMjY4MSwgMC4wMDI2ODEsIDAuMDAyNjgzLCAwLjAwMjY4NywgMC4wMDI2ODMiLCBcCi0gICAgICAgICAgIjAuMDAyNTM3LCAwLjAwMjYzOCwgMC4wMDI2NTQsIDAuMDAyNjYsIDAuMDAyNjYyLCAwLjAwMjY2MSwgMC4wMDI2NjEiLCBcCi0gICAgICAgICAgIjAuMDAyNDkxLCAwLjAwMjYxMiwgMC4wMDI2MzYsIDAuMDAyNjQ0LCAwLjAwMjY1MSwgMC4wMDI2NTEsIDAuMDAyNjUzIiwgXAotICAgICAgICAgICIwLjAwMjQ2MiwgMC4wMDI1OTQsIDAuMDAyNjIyLCAwLjAwMjYzMiwgMC4wMDI2NCwgMC4wMDI2NDQsIDAuMDAyNjQ5IiwgXAotICAgICAgICAgICIwLjAwMjQzNSwgMC4wMDI1NjYsIDAuMDAyNjAzLCAwLjAwMjYxNSwgMC4wMDI2MjcsIDAuMDAyNjM0LCAwLjAwMjYzOCIsIFwKLSAgICAgICAgICAiMC4wMDI0MjYsIDAuMDAyNTQ5LCAwLjAwMjU5LCAwLjAwMjYwNCwgMC4wMDI2MTksIDAuMDAyNjI1LCAwLjAwMjYzMSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkExIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMTYzNywgMC4wMTE2NDUsIDAuMDExNjQ3LCAwLjAxMTY0NSwgMC4wMTE2NDUsIDAuMDExNjQ0LCAwLjAxMTY0NSIsIFwKLSAgICAgICAgICAiMC4wMTE1NjUsIDAuMDExNjMyLCAwLjAxMTY0LCAwLjAxMTY0MiwgMC4wMTE2NDQsIDAuMDExNjQzLCAwLjAxMTY0NCIsIFwKLSAgICAgICAgICAiMC4wMTE1MDQsIDAuMDExNjE0LCAwLjAxMTYzLCAwLjAxMTYzMiwgMC4wMTE2MzYsIDAuMDExNjM4LCAwLjAxMTYzOCIsIFwKLSAgICAgICAgICAiMC4wMTE0NjMsIDAuMDExNTkyLCAwLjAxMTYxNywgMC4wMTE2MjUsIDAuMDExNjMsIDAuMDExNjMzLCAwLjAxMTY0MSIsIFwKLSAgICAgICAgICAiMC4wMTE0MywgMC4wMTE1NzksIDAuMDExNjA4LCAwLjAxMTYxNywgMC4wMTE2MjUsIDAuMDExNjI4LCAwLjAxMTYyOSIsIFwKLSAgICAgICAgICAiMC4wMTE0MTksIDAuMDExNTU5LCAwLjAxMTU5NCwgMC4wMTE2MDYsIDAuMDExNjE4LCAwLjAxMTYyMSwgMC4wMTE2MjkiLCBcCi0gICAgICAgICAgIjAuMDExNDE0LCAwLjAxMTU0NSwgMC4wMTE1ODQsIDAuMDExNTk4LCAwLjAxMTYxMSwgMC4wMTE2MTcsIDAuMDExNjI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI3NjQsIDAuMDAyNzY4LCAwLjAwMjc3LCAwLjAwMjc2OCwgMC4wMDI3NjQsIDAuMDAyNzYzLCAwLjAwMjc3IiwgXAotICAgICAgICAgICIwLjAwMjYyMSwgMC4wMDI2NzUsIDAuMDAyNjgsIDAuMDAyNjgzLCAwLjAwMjY4NiwgMC4wMDI2ODQsIDAuMDAyNjgzIiwgXAotICAgICAgICAgICIwLjAwMjUzOSwgMC4wMDI2MzksIDAuMDAyNjU1LCAwLjAwMjY1OCwgMC4wMDI2NjQsIDAuMDAyNjY0LCAwLjAwMjY2MSIsIFwKLSAgICAgICAgICAiMC4wMDI0OTQsIDAuMDAyNjE0LCAwLjAwMjYzOCwgMC4wMDI2NDUsIDAuMDAyNjQ5LCAwLjAwMjY1MiwgMC4wMDI2NTciLCBcCi0gICAgICAgICAgIjAuMDAyNDY4LCAwLjAwMjU4NywgMC4wMDI2MjMsIDAuMDAyNjMyLCAwLjAwMjY0LCAwLjAwMjY0NSwgMC4wMDI2NDgiLCBcCi0gICAgICAgICAgIjAuMDAyNDUsIDAuMDAyNTcxLCAwLjAwMjYwNiwgMC4wMDI2MTgsIDAuMDAyNjI5LCAwLjAwMjYzNCwgMC4wMDI2NCIsIFwKLSAgICAgICAgICAiMC4wMDI0NTUsIDAuMDAyNTU3LCAwLjAwMjU5MywgMC4wMDI2MDksIDAuMDAyNjI0LCAwLjAwMjYzLCAwLjAwMjYzNCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEyIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwOTM3NiwgMC4wMDk0MTUsIDAuMDA5NDE5LCAwLjAwOTQyMSwgMC4wMDk0MiwgMC4wMDk0MjEsIDAuMDA5NDIxIiwgXAotICAgICAgICAgICIwLjAwOTI5OCwgMC4wMDk0MzgsIDAuMDA5NDUzLCAwLjAwOTQ1NiwgMC4wMDk0NiwgMC4wMDk0NjIsIDAuMDA5NDY0IiwgXAotICAgICAgICAgICIwLjAwOTIxLCAwLjAwOTQxMSwgMC4wMDk0NDEsIDAuMDA5NDUxLCAwLjAwOTQ1NywgMC4wMDk0NjIsIDAuMDA5NDY1IiwgXAotICAgICAgICAgICIwLjAwOTE1NiwgMC4wMDkzNzksIDAuMDA5NDE0LCAwLjAwOTQzOSwgMC4wMDk0NSwgMC4wMDk0NTgsIDAuMDA5NDYyIiwgXAotICAgICAgICAgICIwLjAwOTEyNCwgMC4wMDkzNjgsIDAuMDA5NDEsIDAuMDA5NDMsIDAuMDA5NDQyLCAwLjAwOTQ1NCwgMC4wMDk0NTciLCBcCi0gICAgICAgICAgIjAuMDA5MDk2LCAwLjAwOTMyOSwgMC4wMDkzODgsIDAuMDA5NDA5LCAwLjAwOTQzLCAwLjAwOTQzOSwgMC4wMDk0NDYiLCBcCi0gICAgICAgICAgIjAuMDA5MDg4LCAwLjAwOTMwMywgMC4wMDkzNzQsIDAuMDA5Mzk0LCAwLjAwOTQxOCwgMC4wMDk0MzYsIDAuMDA5NDQzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI3NTcsIDAuMDAyNzY1LCAwLjAwMjc2NiwgMC4wMDI3NjcsIDAuMDAyNzY0LCAwLjAwMjc1OSwgMC4wMDI3NjEiLCBcCi0gICAgICAgICAgIjAuMDAyNTk2LCAwLjAwMjY2OSwgMC4wMDI2NzcsIDAuMDAyNjgyLCAwLjAwMjY4MSwgMC4wMDI2NzgsIDAuMDAyNjgyIiwgXAotICAgICAgICAgICIwLjAwMjUzMiwgMC4wMDI2MzMsIDAuMDAyNjQ5LCAwLjAwMjY1NSwgMC4wMDI2NiwgMC4wMDI2NjEsIDAuMDAyNjYyIiwgXAotICAgICAgICAgICIwLjAwMjUxNCwgMC4wMDI2MTMsIDAuMDAyNjM3LCAwLjAwMjY0NCwgMC4wMDI2NTEsIDAuMDAyNjUzLCAwLjAwMjY1NyIsIFwKLSAgICAgICAgICAiMC4wMDI1MzMsIDAuMDAyNjA0LCAwLjAwMjYyOSwgMC4wMDI2MzcsIDAuMDAyNjQ0LCAwLjAwMjY0NiwgMC4wMDI2NDgiLCBcCi0gICAgICAgICAgIjAuMDAyNjE2LCAwLjAwMjYwOCwgMC4wMDI2MjcsIDAuMDAyNjM0LCAwLjAwMjYzOSwgMC4wMDI2NDIsIDAuMDAyNjQ2IiwgXAotICAgICAgICAgICIwLjAwMjcwOCwgMC4wMDI2MjQsIDAuMDAyNjMsIDAuMDAyNjM3LCAwLjAwMjY0MiwgMC4wMDI2NDQsIDAuMDAyNjQ3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEwMDM0LCAwLjAxMDA4NiwgMC4wMTAwOTEsIDAuMDEwMDkxLCAwLjAxMDA5MiwgMC4wMTAwOTIsIDAuMDEwMDg5IiwgXAotICAgICAgICAgICIwLjAwOTg5NSwgMC4wMTAwMzksIDAuMDEwMDYzLCAwLjAxMDA3LCAwLjAxMDA3NCwgMC4wMTAwNzcsIDAuMDEwMDc5IiwgXAotICAgICAgICAgICIwLjAwOTg2NiwgMC4wMTAwMDQsIDAuMDEwMDQsIDAuMDEwMDUxLCAwLjAxMDA2MiwgMC4wMTAwNjYsIDAuMDEwMDY4IiwgXAotICAgICAgICAgICIwLjAwOTg1OSwgMC4wMDk5NzQsIDAuMDEwMDE3LCAwLjAxMDAzMSwgMC4wMTAwNDQsIDAuMDEwMDUyLCAwLjAxMDA1OCIsIFwKLSAgICAgICAgICAiMC4wMDk4OTgsIDAuMDA5OTU4LCAwLjAxMDAwMiwgMC4wMTAwMTksIDAuMDEwMDM3LCAwLjAxMDA0NCwgMC4wMTAwNTMiLCBcCi0gICAgICAgICAgIjAuMDA5OTk1LCAwLjAwOTk1OCwgMC4wMDk5OTQsIDAuMDEwMDExLCAwLjAxMDAyNywgMC4wMTAwMzYsIDAuMDEwMDQ2IiwgXAotICAgICAgICAgICIwLjAxMDA5OCwgMC4wMDk5NzQsIDAuMDA5OTk0LCAwLjAxMDAwOCwgMC4wMTAwMjIsIDAuMDEwMDM0LCAwLjAxMDA0MiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwMDg0LCAwLjAwMDE2MywgMC4wMDAxNywgMC4wMDAxNzMsIDAuMDAwMTc1LCAwLjAwMDE3NiwgMC4wMDAxNzYiLCBcCi0gICAgICAgICAgIjAuMDAwMTQ4LCAwLjAwMDE4NCwgMC4wMDAyMTcsIDAuMDAwMjI2LCAwLjAwMDIzNCwgMC4wMDAyMzksIDAuMDAwMjQzIiwgXAotICAgICAgICAgICIwLjAwMDIwMSwgMC4wMDAxNSwgMC4wMDAyMDEsIDAuMDAwMjE3LCAwLjAwMDIzNiwgMC4wMDAyNDQsIDAuMDAwMjUyIiwgXAotICAgICAgICAgICIwLjAwMDIwNSwgMC4wMDAxMTYsIDAuMDAwMTc4LCAwLjAwMDIsIDAuMDAwMjIsIDAuMDAwMjMsIDAuMDAwMjM5IiwgXAotICAgICAgICAgICIwLjAwMDEwNywgMC4wMDAxMDYsIDAuMDAwMTY4LCAwLjAwMDE5MywgMC4wMDAyMTUsIDAuMDAwMjI2LCAwLjAwMDIzNyIsIFwKLSAgICAgICAgICAiMC4wMDAwNjgsIDAuMDAwMDk5LCAwLjAwMDE1NCwgMC4wMDAxOCwgMC4wMDAyMDYsIDAuMDAwMjIsIDAuMDAwMjMxIiwgXAotICAgICAgICAgICIwLjAwMDA2MSwgMC4wMDAxMTMsIDAuMDAwMTYxLCAwLjAwMDE3NywgMC4wMDAyMDIsIDAuMDAwMjE4LCAwLjAwMDIzIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogREZGSFFYOCAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChERkZIUVg4KSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuNzExMjY3OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIGZmIChOMzAsUUJJTlQpIHsKLSAgICBuZXh0X3N0YXRlIDogIkQiOwotICAgIGNsb2NrZWRfb24gOiAiQ0siOwotICB9Ci0gIHBpbihDSykgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNTY0NzU3OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDU2NDYxNDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA1NjQ3NTc7Ci0gICAgY2xvY2sgOiB0cnVlOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzMwNCwgMC4wMDMyOCwgMC4wMDMyNjMsIDAuMDAzMjY1LCAwLjAwMzI3NSwgMC4wMDMyOTgsIDAuMDAzMzE4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA3Njg5LCAwLjAwNzY2OCwgMC4wMDc2NTksIDAuMDA3NjYxLCAwLjAwNzY2MywgMC4wMDc2OSwgMC4wMDc2OTgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFEIjsKLSAgICAgIHNkZl9jb25kIDogIkQgPT0gMSdiMCI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4xMzAwNDksIDAuMTQwMzI0LCAwLjE1MzAzNSwgMC4xNjU1NTksIDAuMTc3MDgyLCAwLjE5MzIwOCwgMC4yMDU1MTkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjEwNzA1MywgMC4xMTY5NzIsIDAuMTI5NDQ2LCAwLjE0MTIzLCAwLjE1MTkzNywgMC4xNjY0NDMsIDAuMTc3NTUzIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihEKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA3ODY4Mzg7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNzg0NTU3OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDc4NjgzODsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDI3MDMsIDAuMDAyNjY5LCAwLjAwMjY1MywgMC4wMDI2NDUsIDAuMDAyNjUxLCAwLjAwMjY1MiwgMC4wMDI2NTQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDM2MTQsIDAuMDAzNTk0LCAwLjAwMzU4MywgMC4wMDM1NzgsIDAuMDAzNTc2LCAwLjAwMzU3NCwgMC4wMDM1ODEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMTI1LCAtMC4wMDc1LCAwLjAwNSwgMC4wMTEyNSwgMC4wMTc1LCAwLjAyMTI1LCAwLjAzIiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAsIDAuMDA2MjUsIDAuMDE2MjUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMDYyNSwgMCwgMC4wMDM3NSwgMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDAyNSwgMCIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjA0Mzc1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDA4NzUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wNTg3NSwgLTAuMDUzNzUsIC0wLjA0MTI1LCAtMC4wMzUsIC0wLjAyODc1LCAtMC4wMTg3NSwgLTAuMDE2MjUiLCBcCi0gICAgICAgICAgIi0wLjA2NzUsIC0wLjA2MjUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDI3NSwgLTAuMDI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzEyNSwgMC4wNDI1LCAwLjA1NSwgMC4wNjEyNSwgMC4wNzM3NSwgMC4wOSwgMC4wOTg3NSIsIFwKLSAgICAgICAgICAiMC4wMiwgMC4wMzEyNSwgMC4wNDM3NSwgMC4wNTYyNSwgMC4wNjI1LCAwLjA3ODc1LCAwLjA4NzUiLCBcCi0gICAgICAgICAgIjAuMDEzNzUsIDAuMDI1LCAwLjAzNzUsIDAuMDUsIDAuMDU2MjUsIDAuMDcyNSwgMC4wODEyNSIsIFwKLSAgICAgICAgICAiMC4wMDc1LCAwLjAxODc1LCAwLjAzMTI1LCAwLjA0Mzc1LCAwLjA1LCAwLjA2NjI1LCAwLjA3NSIsIFwKLSAgICAgICAgICAiMC4wMDEyNSwgMC4wMTI1LCAwLjAyNSwgMC4wMzc1LCAwLjA1LCAwLjA2LCAwLjA2ODc1IiwgXAotICAgICAgICAgICItMC4wMDI1LCAwLjAwODc1LCAwLjAyMTI1LCAwLjAzMzc1LCAwLjA0LCAwLjA1NjI1LCAwLjA2NSIsIFwKLSAgICAgICAgICAiLTAuMDA1LCAwLCAwLjAxMjUsIDAuMDI1LCAwLjAzNzUsIDAuMDQ3NSwgMC4wNjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzNzUsIDAuMDI2MjUsIDAuMDIsIDAuMDA3NSwgMC4wMDEyNSwgLTAuMDAyNSwgLTAuMDExMjUiLCBcCi0gICAgICAgICAgIjAuMDQ4NzUsIDAuMDM3NSwgMC4wMjUsIDAuMDE4NzUsIDAuMDEyNSwgMC4wMDI1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiMC4wNTUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMjUsIDAuMDE1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDU2MjUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMzEyNSwgMC4wMjEyNSwgMC4wMTI1IiwgXAotICAgICAgICAgICIwLjA3Mzc1LCAwLjA2ODc1LCAwLjA1NjI1LCAwLjA1LCAwLjAzNzUsIDAuMDMzNzUsIDAuMDI1IiwgXAotICAgICAgICAgICIwLjA5LCAwLjA3ODc1LCAwLjA2NjI1LCAwLjA2LCAwLjA1Mzc1LCAwLjA0Mzc1LCAwLjAzNSIsIFwKLSAgICAgICAgICAiMC4wOTg3NSwgMC4wODc1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1MjUsIDAuMDQzNzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTI1LCAwLjAwMTI1LCAtMC4wMTc1LCAtMC4wMywgLTAuMDQyNSwgLTAuMDUyNSwgLTAuMDY3NSIsIFwKLSAgICAgICAgICAiMC4wMTc1LCAwLjAwNjI1LCAtMC4wMDYyNSwgLTAuMDE4NzUsIC0wLjAzMTI1LCAtMC4wNDc1LCAtMC4wNTYyNSIsIFwKLSAgICAgICAgICAiMC4wMywgMC4wMTg3NSwgMC4wMDYyNSwgLTAuMDA2MjUsIC0wLjAxODc1LCAtMC4wMzUsIC0wLjA1IiwgXAotICAgICAgICAgICIwLjAzNjI1LCAwLjAyNSwgMC4wMTI1LCAwLCAtMC4wMTI1LCAtMC4wMjg3NSwgLTAuMDQzNzUiLCBcCi0gICAgICAgICAgIjAuMDQyNSwgMC4wMzEyNSwgMC4wMTg3NSwgMC4wMDYyNSwgLTAuMDA2MjUsIC0wLjAyMjUsIC0wLjAzMTI1IiwgXAotICAgICAgICAgICIwLjA1ODc1LCAwLjA0NzUsIDAuMDI4NzUsIDAuMDE2MjUsIDAuMDAzNzUsIC0wLjAxMjUsIC0wLjAyMTI1IiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDU2MjUsIDAuMDM3NSwgMC4wMjUsIDAuMDEyNSwgLTAuMDAzNzUsIC0wLjAxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFEpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMi4wMTQwNTsKLSAgICBmdW5jdGlvbiA6ICJOMzAiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5vbl91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcmlzaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTE5MjQsIDAuMTU2OTM0LCAwLjE5Mjg0MiwgMC4yMTg0NTgsIDAuMjU5NDI1LCAwLjI5NTI2NCwgMC4zNDY0NjciLCBcCi0gICAgICAgICAgIjAuMTI5NDIxLCAwLjE2NzExNiwgMC4yMDMwMzQsIDAuMjI4NjQ2LCAwLjI2OTYwNCwgMC4zMDU0NDIsIDAuMzU2NjQ5IiwgXAotICAgICAgICAgICIwLjE0MjA5OCwgMC4xNzk3OTUsIDAuMjE1NzA5LCAwLjI0MTMyLCAwLjI4MjI4NCwgMC4zMTgxMjIsIDAuMzY5MzMxIiwgXAotICAgICAgICAgICIwLjE1NDU2MSwgMC4xOTIyNiwgMC4yMjgxNjgsIDAuMjUzNzg1LCAwLjI5NDc1MSwgMC4zMzA1ODksIDAuMzgxODEyIiwgXAotICAgICAgICAgICIwLjE2NTg4NywgMC4yMDM1ODYsIDAuMjM5NDk3LCAwLjI2NTEwOCwgMC4zMDYwNzQsIDAuMzQxOTEyLCAwLjM5MzEyMSIsIFwKLSAgICAgICAgICAiMC4xODE0MTksIDAuMjE5MTEyLCAwLjI1NTAxOCwgMC4yODA2MzcsIDAuMzIxNjAxLCAwLjM1NzQzOSwgMC40MDg2NDciLCBcCi0gICAgICAgICAgIjAuMTk0MjM0LCAwLjIzMTkyOCwgMC4yNjc4MzcsIDAuMjkzNDQ4LCAwLjMzNDQyMiwgMC4zNzAyNjIsIDAuNDIxNDYzIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDIxOTYxLCAwLjA5MjE1MywgMC4xNjUwOTQsIDAuMjE3NjcsIDAuMzAyMzY1LCAwLjM3NjM1MywgMC40ODE2NjgiLCBcCi0gICAgICAgICAgIjAuMDIxOTU0LCAwLjA5MjE1MywgMC4xNjUxMTIsIDAuMjE3NjgyLCAwLjMwMjM3NSwgMC4zNzYzMTksIDAuNDgwOTcyIiwgXAotICAgICAgICAgICIwLjAyMTk0NywgMC4wOTIxNDksIDAuMTY1MSwgMC4yMTc2NjksIDAuMzAyMzU5LCAwLjM3NjMxNiwgMC40ODEwNTIiLCBcCi0gICAgICAgICAgIjAuMDIxOTQ1LCAwLjA5MjE0OSwgMC4xNjUwOTIsIDAuMjE3NjY5LCAwLjMwMTkyLCAwLjM3NjA1NCwgMC40ODIzMTMiLCBcCi0gICAgICAgICAgIjAuMDIxOTQ5LCAwLjA5MjE1NCwgMC4xNjUwOTcsIDAuMjE3NjY2LCAwLjMwMjM1OSwgMC4zNzYzMTcsIDAuNDgxMDU0IiwgXAotICAgICAgICAgICIwLjAyMTk3NiwgMC4wOTIxNTYsIDAuMTY1MTMsIDAuMjE3NjQ0LCAwLjMwMjM3MywgMC4zNzYzMTcsIDAuNDgxMDM5IiwgXAotICAgICAgICAgICIwLjAyMTk4OCwgMC4wOTIxNTksIDAuMTY1MDkzLCAwLjIxNzY2MywgMC4zMDIzODYsIDAuMzc2MzkxLCAwLjQ4MTY3NiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEzMDA0OSwgMC4xNjk4NDIsIDAuMjA3OTI4LCAwLjIzNTA4NSwgMC4yNzg1MTYsIDAuMzE2NTE3LCAwLjM3MDg0NiIsIFwKLSAgICAgICAgICAiMC4xNDAzMjQsIDAuMTgwMTA4LCAwLjIxODIwMiwgMC4yNDUzNTcsIDAuMjg4ODAxLCAwLjMyNjc4OSwgMC4zODExMDMiLCBcCi0gICAgICAgICAgIjAuMTUzMDM1LCAwLjE5MjgyOCwgMC4yMzA5MTQsIDAuMjU4MDcsIDAuMzAxNTAxLCAwLjMzOTUwMywgMC4zOTM4MzMiLCBcCi0gICAgICAgICAgIjAuMTY1NTU5LCAwLjIwNTM1LCAwLjI0MzQzOCwgMC4yNzA1OTQsIDAuMzE0MDI1LCAwLjM1MjAyNiwgMC40MDYzNTUiLCBcCi0gICAgICAgICAgIjAuMTc3MDgyLCAwLjIxNjg3MSwgMC4yNTQ5NTgsIDAuMjgyMTE1LCAwLjMyNTU0NSwgMC4zNjM1NDUsIDAuNDE3ODc2IiwgXAotICAgICAgICAgICIwLjE5MzIwOCwgMC4yMzI5OTcsIDAuMjcxMDgzLCAwLjI5ODIzOCwgMC4zNDE2NzEsIDAuMzc5NjcsIDAuNDMzOTc5IiwgXAotICAgICAgICAgICIwLjIwNTUxOSwgMC4yNDUzMTQsIDAuMjgzNDAzLCAwLjMxMDU2LCAwLjM1Mzk5NSwgMC4zOTIwMDcsIDAuNDQ2MjgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjE2OTUsIDAuMDk1NjE0LCAwLjE3MTg4NywgMC4yMjY2NzMsIDAuMzE1MTgsIDAuMzkxNzMsIDAuNTAxNjgxIiwgXAotICAgICAgICAgICIwLjAyMTY4NiwgMC4wOTU2MDgsIDAuMTcxODU3LCAwLjIyNjkwMSwgMC4zMTUyNjcsIDAuMzkxNzM1LCAwLjUwMjgxOSIsIFwKLSAgICAgICAgICAiMC4wMjE2OTUsIDAuMDk1NjA3LCAwLjE3MTg4NywgMC4yMjY2NzMsIDAuMzE1MTcxLCAwLjM5MTczLCAwLjUwMTY1MyIsIFwKLSAgICAgICAgICAiMC4wMjE2OTIsIDAuMDk1NjA2LCAwLjE3MTg5LCAwLjIyNjY3NCwgMC4zMTUxNzQsIDAuMzkxNzI4LCAwLjUwMTU0MyIsIFwKLSAgICAgICAgICAiMC4wMjE2ODksIDAuMDk1NjA0LCAwLjE3MTg4OSwgMC4yMjY2NywgMC4zMTUxNjIsIDAuMzkxNzA5LCAwLjUwMTYxOCIsIFwKLSAgICAgICAgICAiMC4wMjE2OTEsIDAuMDk1NjA0LCAwLjE3MTg4MiwgMC4yMjY5MzEsIDAuMzE1MTY4LCAwLjM5MTY4MywgMC41MDE4NzEiLCBcCi0gICAgICAgICAgIjAuMDIxNzEzLCAwLjA5NTYwOCwgMC4xNzE3NzYsIDAuMjI2ODk1LCAwLjMxNTE4MSwgMC4zOTI0MTMsIDAuNTAyNjcxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE2MDg1LCAwLjAxNjQxOSwgMC4wMTY0ODksIDAuMDE2NTEyLCAwLjAxNjUzOCwgMC4wMTY1MzksIDAuMDE2NTUyIiwgXAotICAgICAgICAgICIwLjAxNjA1LCAwLjAxNjM4NiwgMC4wMTY0NTcsIDAuMDE2NDgsIDAuMDE2NDk3LCAwLjAxNjUxMSwgMC4wMTY1MiIsIFwKLSAgICAgICAgICAiMC4wMTYwMiwgMC4wMTYzNjYsIDAuMDE2NDM2LCAwLjAxNjQ2MiwgMC4wMTY0NzksIDAuMDE2NDkzLCAwLjAxNjUwMSIsIFwKLSAgICAgICAgICAiMC4wMTYwMTgsIDAuMDE2MzY0LCAwLjAxNjQzNiwgMC4wMTY0NTgsIDAuMDE2NDgsIDAuMDE2NDksIDAuMDE2NSIsIFwKLSAgICAgICAgICAiMC4wMTYwMjIsIDAuMDE2MzY3LCAwLjAxNjQ0LCAwLjAxNjQ2NCwgMC4wMTY0ODQsIDAuMDE2NDk1LCAwLjAxNjUwNCIsIFwKLSAgICAgICAgICAiMC4wMTYwNSwgMC4wMTYzODMsIDAuMDE2NDU0LCAwLjAxNjQ3NywgMC4wMTY0OTQsIDAuMDE2NTA5LCAwLjAxNjUxOCIsIFwKLSAgICAgICAgICAiMC4wMTYwNzIsIDAuMDE2NDEyLCAwLjAxNjQ4NCwgMC4wMTY1MSwgMC4wMTY1MjgsIDAuMDE2NTM4LCAwLjAxNjU0OCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE2MDM1LCAwLjAxNjQ5NiwgMC4wMTY1OTgsIDAuMDE2NjMyLCAwLjAxNjY2MiwgMC4wMTY2NzgsIDAuMDE2NjkzIiwgXAotICAgICAgICAgICIwLjAxNjAxNCwgMC4wMTY0NzEsIDAuMDE2NTcyLCAwLjAxNjYwNSwgMC4wMTY2MzUsIDAuMDE2NjUxLCAwLjAxNjY2NSIsIFwKLSAgICAgICAgICAiMC4wMTYwMDUsIDAuMDE2NDY1LCAwLjAxNjU2NywgMC4wMTY2MDEsIDAuMDE2NjMyLCAwLjAxNjY0NywgMC4wMTY2NjIiLCBcCi0gICAgICAgICAgIjAuMDE2MDIxLCAwLjAxNjQ4MSwgMC4wMTY1ODQsIDAuMDE2NjE4LCAwLjAxNjY0OCwgMC4wMTY2NjQsIDAuMDE2Njc5IiwgXAotICAgICAgICAgICIwLjAxNjAzOSwgMC4wMTY0OTgsIDAuMDE2NiwgMC4wMTY2MzQsIDAuMDE2NjY0LCAwLjAxNjY4LCAwLjAxNjY5NCIsIFwKLSAgICAgICAgICAiMC4wMTYwNzcsIDAuMDE2NTM3LCAwLjAxNjYzOSwgMC4wMTY2NzMsIDAuMDE2NzA0LCAwLjAxNjcyLCAwLjAxNjczNCIsIFwKLSAgICAgICAgICAiMC4wMTYxMTIsIDAuMDE2NTcxLCAwLjAxNjY3MiwgMC4wMTY3MDcsIDAuMDE2NzM4LCAwLjAxNjc1MywgMC4wMTY3NjgiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogRURGRkhRWDQgKgotICogLS0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKEVERkZIUVg0KSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuNTc2NjQ1OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIGZmIChOMzAsUUJJTlQpIHsKLSAgICBuZXh0X3N0YXRlIDogIigoRSBEKSArICghRSAoISghTjMwKSkpKSI7Ci0gICAgY2xvY2tlZF9vbiA6ICJDSyI7Ci0gIH0KLSAgcGluKENLKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2MzgzMTk7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjM4MTEyOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDYzODMxOTsKLSAgICBjbG9jayA6IHRydWU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzNjI5LCAwLjAwMzYwNCwgMC4wMDM1OTMsIDAuMDAzNTk2LCAwLjAwMzYwNywgMC4wMDM2MzEsIDAuMDAzNjQ5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA2OTA0LCAwLjAwNjg4MywgMC4wMDY4ODQsIDAuMDA2ODkxLCAwLjAwNjkyNywgMC4wMDY5NzcsIDAuMDA3MDIzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRCZFIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9FX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4xMjQzMzUsIDAuMTM0NTY4LCAwLjE0NzI0NiwgMC4xNTkwMDIsIDAuMTY5Mzg4LCAwLjE4MzYxNywgMC4xOTQ3MjciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjA4OTkwNywgMC4wOTk4MTgsIDAuMTEyMDcsIDAuMTIzMzM3LCAwLjEzMzAxMSwgMC4xNDYwNzgsIDAuMTU2MDQ5Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihEKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA4OTQ2NTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA4OTIwMjQ7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwODk0NjU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzMzYzLCAwLjAwMzMzMywgMC4wMDMzMTYsIDAuMDAzMzA2LCAwLjAwMzMwMywgMC4wMDMzMDYsIDAuMDAzMzE3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA2OTY2LCAwLjAwNjk0OSwgMC4wMDY5MzgsIDAuMDA2OTMzLCAwLjAwNjkzMywgMC4wMDY5MzQsIDAuMDA2OTQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiRSI7Ci0gICAgICBzZGZfY29uZCA6ICJFID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjA1LCAtMC4wNDUsIC0wLjAzODc1LCAtMC4wMzI1LCAtMC4wMjYyNSwgLTAuMDE2MjUsIC0wLjAxMzc1IiwgXAotICAgICAgICAgICItMC4wNjEyNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDI3NSwgLTAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjA2NzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjA0LCAtMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDgsIC0wLjA3NSwgLTAuMDY4NzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNDYyNSwgLTAuMDQzNzUiLCBcCi0gICAgICAgICAgIi0wLjA5MjUsIC0wLjA4MTI1LCAtMC4wNzUsIC0wLjA2ODc1LCAtMC4wNjg3NSwgLTAuMDU4NzUsIC0wLjA1IiwgXAotICAgICAgICAgICItMC4xMDg3NSwgLTAuMDk3NSwgLTAuMDkxMjUsIC0wLjA4NSwgLTAuMDc4NzUsIC0wLjA3NSwgLTAuMDY2MjUiLCBcCi0gICAgICAgICAgIi0wLjExNzUsIC0wLjExMjUsIC0wLjEwNjI1LCAtMC4xLCAtMC4wOTM3NSwgLTAuMDgzNzUsIC0wLjA4MTI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDEyNSwgLTAuMDAxMjUsIDAuMDExMjUsIDAuMDE3NSwgMC4wMywgMC4wNCwgMC4wNDg3NSIsIFwKLSAgICAgICAgICAiLTAuMDE3NSwgLTAuMDEyNSwgMCwgMC4wMTI1LCAwLjAxODc1LCAwLjAyODc1LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAsIDAuMDEyNSwgMC4wMjI1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAsIDAuMDEsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzNzUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLjAwMzc1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjA1MjUsIC0wLjA0NzUsIC0wLjAzNSwgLTAuMDI4NzUsIC0wLjAyMjUsIC0wLjAwNjI1LCAwLjAwMjUiLCBcCi0gICAgICAgICAgIi0wLjA2MTI1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMTUsIC0wLjAwNjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJFIjsKLSAgICAgIHNkZl9jb25kIDogIkUgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDgxMjUsIDAuMDcsIDAuMDYzNzUsIDAuMDU3NSwgMC4wNTEyNSwgMC4wNDEyNSwgMC4wMzg3NSIsIFwKLSAgICAgICAgICAiMC4wOTI1LCAwLjA4MTI1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDUyNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4xMDUsIDAuMDkzNzUsIDAuMDgxMjUsIDAuMDc1LCAwLjA2ODc1LCAwLjA1ODc1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICIwLjExMTI1LCAwLjEsIDAuMDkzNzUsIDAuMDg3NSwgMC4wODEyNSwgMC4wNzEyNSwgMC4wNjg3NSIsIFwKLSAgICAgICAgICAiMC4xMjM3NSwgMC4xMTI1LCAwLjEwNjI1LCAwLjA5Mzc1LCAwLjA4NzUsIDAuMDgzNzUsIDAuMDc1IiwgXAotICAgICAgICAgICIwLjE0LCAwLjEyODc1LCAwLjEyMjUsIDAuMTEsIDAuMTAzNzUsIDAuMSwgMC4wOTEyNSIsIFwKLSAgICAgICAgICAiMC4xNTUsIDAuMTQzNzUsIDAuMTMxMjUsIDAuMTI1LCAwLjExODc1LCAwLjEwODc1LCAwLjEwNjI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDU2MjUsIDAuMDQ1LCAwLjAzMjUsIDAuMDI2MjUsIDAuMDEzNzUsIC0wLjAwMjUsIC0wLjAxMTI1IiwgXAotICAgICAgICAgICIwLjA2NzUsIDAuMDU2MjUsIDAuMDQzNzUsIDAuMDMxMjUsIDAuMDI1LCAwLjAwODc1LCAwIiwgXAotICAgICAgICAgICIwLjA4LCAwLjA2ODc1LCAwLjA1NjI1LCAwLjA0Mzc1LCAwLjAzMTI1LCAwLjAxNSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiMC4wODYyNSwgMC4wNzUsIDAuMDYyNSwgMC4wNSwgMC4wNDM3NSwgMC4wMjc1LCAwLjAxODc1IiwgXAotICAgICAgICAgICIwLjA5ODc1LCAwLjA4NzUsIDAuMDc1LCAwLjA2MjUsIDAuMDUsIDAuMDMzNzUsIDAuMDI1IiwgXAotICAgICAgICAgICIwLjEwODc1LCAwLjA5NzUsIDAuMDg1LCAwLjA3MjUsIDAuMDY2MjUsIDAuMDUsIDAuMDQxMjUiLCBcCi0gICAgICAgICAgIjAuMTIzNzUsIDAuMTEyNSwgMC4xLCAwLjA4NzUsIDAuMDc1LCAwLjA1ODc1LCAwLjA1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihFKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE3MTY0MzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE3MTU1ODsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE3MTY0MzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDY0NTksIDAuMDA2NDQxLCAwLjAwNjQzNywgMC4wMDY0MzcsIDAuMDA2NDUxLCAwLjAwNjQ2OCwgMC4wMDY0OTQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDc0NDgsIDAuMDA3Mzk4LCAwLjAwNzM3OSwgMC4wMDczODcsIDAuMDA3Mzk2LCAwLjAwNzQ0OSwgMC4wMDc0OSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRCI7Ci0gICAgICBzZGZfY29uZCA6ICJEID09IDEnYjAiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjA1LCAtMC4wMzg3NSwgLTAuMDMyNSwgLTAuMDIsIC0wLjAwNzUsIDAuMDAyNSwgMC4wMTEyNSIsIFwKLSAgICAgICAgICAiLTAuMDYxMjUsIC0wLjA1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIC0wLjAwODc1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wNzM3NSwgLTAuMDYyNSwgLTAuMDUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMTUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wODYyNSwgLTAuMDc1LCAtMC4wNjI1LCAtMC4wNSwgLTAuMDM3NSwgLTAuMDI3NSwgLTAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjA5MjUsIC0wLjA4MTI1LCAtMC4wNjg3NSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wMzM3NSwgLTAuMDI1IiwgXAotICAgICAgICAgICItMC4xMDI1LCAtMC4wOTEyNSwgLTAuMDc4NzUsIC0wLjA2NjI1LCAtMC4wNiwgLTAuMDQzNzUsIC0wLjAzNSIsIFwKLSAgICAgICAgICAiLTAuMTExMjUsIC0wLjEsIC0wLjA4NzUsIC0wLjA3NSwgLTAuMDY4NzUsIC0wLjA1MjUsIC0wLjA0Mzc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMCwgMC4wMTEyNSwgMC4wMTc1LCAwLjAxNzUsIC0wLjAwMTI1LCAtMC4wMDM3NSwgMC4wMDUiLCBcCi0gICAgICAgICAgIi0wLjAxMTI1LCAwLCAwLjAwNjI1LCAwLjAwNjI1LCAtMC4wMTI1LCAtMC4wMDg3NSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgLTAuMDA2MjUsIC0wLjAyNSwgLTAuMDIxMjUsIC0wLjAxODc1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDE4NzUsIC0wLjAzNzUsIC0wLjAzMzc1LCAtMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDI1LCAtMC4wNDM3NSwgLTAuMDQ2MjUsIC0wLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjA1MjUsIC0wLjA0NzUsIC0wLjAzNSwgLTAuMDM1LCAtMC4wNTM3NSwgLTAuMDU2MjUsIC0wLjA0NzUiLCBcCi0gICAgICAgICAgIi0wLjA2MTI1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjA0Mzc1LCAtMC4wNjI1LCAtMC4wNjUsIC0wLjA1NjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIkQiOwotICAgICAgc2RmX2NvbmQgOiAiRCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wNSwgLTAuMDQ1LCAtMC4wMzg3NSwgLTAuMDMyNSwgLTAuMDI2MjUsIC0wLjAxNjI1LCAtMC4wMTM3NSIsIFwKLSAgICAgICAgICAiLTAuMDYxMjUsIC0wLjA1NjI1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDM3NSwgLTAuMDI3NSwgLTAuMDI1IiwgXAotICAgICAgICAgICItMC4wNzM3NSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDQsIC0wLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wODYyNSwgLTAuMDc1LCAtMC4wNjg3NSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA1MjUsIC0wLjA0Mzc1IiwgXAotICAgICAgICAgICItMC4wOTg3NSwgLTAuMDg3NSwgLTAuMDgxMjUsIC0wLjA3NSwgLTAuMDY4NzUsIC0wLjA2NSwgLTAuMDU2MjUiLCBcCi0gICAgICAgICAgIi0wLjExNSwgLTAuMTAzNzUsIC0wLjA5NzUsIC0wLjA5MTI1LCAtMC4wODUsIC0wLjA4MTI1LCAtMC4wNzI1IiwgXAotICAgICAgICAgICItMC4xMjM3NSwgLTAuMTE4NzUsIC0wLjExMjUsIC0wLjEwNjI1LCAtMC4xLCAtMC4wOSwgLTAuMDg3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEyNSwgMC4wMjM3NSwgMC4wMywgMC4wNDI1LCAwLjA0ODc1LCAwLjA2NSwgMC4wNzM3NSIsIFwKLSAgICAgICAgICAiMC4wMDc1LCAwLjAxMjUsIDAuMDI1LCAwLjAzMTI1LCAwLjA0Mzc1LCAwLjA1Mzc1LCAwLjA2MjUiLCBcCi0gICAgICAgICAgIi0wLjAwNSwgMC4wMDYyNSwgMC4wMTI1LCAwLjAyNSwgMC4wMzEyNSwgMC4wNDEyNSwgMC4wNSIsIFwKLSAgICAgICAgICAiLTAuMDExMjUsIC0wLjAwNjI1LCAwLjAwNjI1LCAwLjAxMjUsIDAuMDI1LCAwLjAzNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDE3NSwgLTAuMDEyNSwgMCwgMC4wMDYyNSwgMC4wMTI1LCAwLjAyODc1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wMjc1LCAtMC4wMjI1LCAtMC4wMSwgLTAuMDAzNzUsIDAuMDAyNSwgMC4wMTI1LCAwLjAyMTI1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDMxMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMC4wMDM3NSwgMC4wMTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRCI7Ci0gICAgICBzZGZfY29uZCA6ICJEID09IDEnYjAiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2ODc1LCAwLjA1NzUsIDAuMDQ1LCAwLjAzMjUsIDAuMDI2MjUsIDAuMDEsIDAuMDAxMjUiLCBcCi0gICAgICAgICAgIjAuMDgsIDAuMDY4NzUsIDAuMDU2MjUsIDAuMDQzNzUsIDAuMDMxMjUsIDAuMDIxMjUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4wOTI1LCAwLjA4MTI1LCAwLjA2ODc1LCAwLjA1NjI1LCAwLjA0Mzc1LCAwLjAzMzc1LCAwLjAxODc1IiwgXAotICAgICAgICAgICIwLjA5ODc1LCAwLjA4NzUsIDAuMDc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDQsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMTExMjUsIDAuMSwgMC4wODc1LCAwLjA3NSwgMC4wNjI1LCAwLjA1MjUsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiMC4xMjEyNSwgMC4xMSwgMC4wOTc1LCAwLjA4NSwgMC4wNzI1LCAwLjA2MjUsIDAuMDQ3NSIsIFwKLSAgICAgICAgICAiMC4xMywgMC4xMTg3NSwgMC4xMDYyNSwgMC4wOTM3NSwgMC4wODEyNSwgMC4wNzEyNSwgMC4wNTYyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1LCAwLjAzODc1LCAwLjAzMjUsIDAuMDI2MjUsIDAuMDIsIDAuMDE2MjUsIDAuMDA3NSIsIFwKLSAgICAgICAgICAiMC4wNjEyNSwgMC4wNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAyNzUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMDczNzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNSwgMC4wNDM3NSwgMC4wNCwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4wOCwgMC4wNzUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNDYyNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4wOTI1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1ODc1LCAwLjA1IiwgXAotICAgICAgICAgICIwLjEwMjUsIDAuMDkxMjUsIDAuMDg1LCAwLjA3ODc1LCAwLjA3MjUsIDAuMDY4NzUsIDAuMDYiLCBcCi0gICAgICAgICAgIjAuMTExMjUsIDAuMSwgMC4wOTM3NSwgMC4wODc1LCAwLjA4MTI1LCAwLjA3NzUsIDAuMDY4NzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIkQiOwotICAgICAgc2RmX2NvbmQgOiAiRCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzUsIDAuMDYzNzUsIDAuMDU3NSwgMC4wNTEyNSwgMC4wNDUsIDAuMDM1LCAwLjAzMjUiLCBcCi0gICAgICAgICAgIjAuMDg2MjUsIDAuMDc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDUsIDAuMDQ2MjUsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiMC4wOTg3NSwgMC4wODc1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1ODc1LCAwLjA1IiwgXAotICAgICAgICAgICIwLjExMTI1LCAwLjEsIDAuMDg3NSwgMC4wODEyNSwgMC4wNzUsIDAuMDY1LCAwLjA2MjUiLCBcCi0gICAgICAgICAgIjAuMTIzNzUsIDAuMTEyNSwgMC4xLCAwLjA5Mzc1LCAwLjA4NzUsIDAuMDc3NSwgMC4wNzUiLCBcCi0gICAgICAgICAgIjAuMTQsIDAuMTI4NzUsIDAuMTE2MjUsIDAuMTEsIDAuMTAzNzUsIDAuMDkzNzUsIDAuMDkxMjUiLCBcCi0gICAgICAgICAgIjAuMTU1LCAwLjE0Mzc1LCAwLjEzMTI1LCAwLjEyNSwgMC4xMTg3NSwgMC4xMDg3NSwgMC4xMDYyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxODc1LCAwLjAwNzUsIC0wLjAwNSwgLTAuMDE3NSwgLTAuMDIzNzUsIC0wLjAzMzc1LCAtMC4wNDg3NSIsIFwKLSAgICAgICAgICAiMC4wMjM3NSwgMC4wMTg3NSwgMC4wMDYyNSwgLTAuMDA2MjUsIC0wLjAxMjUsIC0wLjAyODc1LCAtMC4wMzc1IiwgXAotICAgICAgICAgICIwLjAzNjI1LCAwLjAyNSwgMC4wMTg3NSwgMC4wMDYyNSwgLTAuMDA2MjUsIC0wLjAxNjI1LCAtMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMDQ4NzUsIDAuMDM3NSwgMC4wMjUsIDAuMDE4NzUsIDAuMDA2MjUsIC0wLjAwMzc1LCAtMC4wMTI1IiwgXAotICAgICAgICAgICIwLjA2MTI1LCAwLjA1LCAwLjAzNzUsIDAuMDI1LCAwLjAxODc1LCAwLjAwMjUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICIwLjA3MTI1LCAwLjA2NjI1LCAwLjA1Mzc1LCAwLjA0MTI1LCAwLjAyODc1LCAwLjAxODc1LCAwLjAxIiwgXAotICAgICAgICAgICIwLjA4NjI1LCAwLjA3NSwgMC4wNjI1LCAwLjA1LCAwLjA0Mzc1LCAwLjAyNzUsIDAuMDE4NzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFEpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMS4wMjUxOTsKLSAgICBmdW5jdGlvbiA6ICJOMzAiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5vbl91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcmlzaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTEwMjg4LCAwLjE4Mzk0MywgMC4yNTY3MTYsIDAuMzA4NjksIDAuMzkxODUyLCAwLjQ2NDYxOCwgMC41Njg0MzUiLCBcCi0gICAgICAgICAgIjAuMTIwNDI0LCAwLjE5NDA5MSwgMC4yNjY4NTksIDAuMzE4ODc2LCAwLjQwMTk3MSwgMC40NzQ3ODksIDAuNTc4Njk2IiwgXAotICAgICAgICAgICIwLjEzMzA0NCwgMC4yMDY3MDksIDAuMjc5NDgxLCAwLjMzMTQ1LCAwLjQxNDYxOCwgMC40ODczODQsIDAuNTkxMzQ2IiwgXAotICAgICAgICAgICIwLjE0NDY2MywgMC4yMTgzMjcsIDAuMjkxMDk4LCAwLjM0MzExOCwgMC40MjYyNCwgMC40OTkwNDcsIDAuNjAyODIxIiwgXAotICAgICAgICAgICIwLjE1NDc3OCwgMC4yMjg0MzgsIDAuMzAxMjA5LCAwLjM1MzEyNiwgMC40MzYzNDksIDAuNTA5MTA3LCAwLjYxMjk5MSIsIFwKLSAgICAgICAgICAiMC4xNjkxNjIsIDAuMjQyODIxLCAwLjMxNTU5MSwgMC4zNjc1ODYsIDAuNDUwNzMyLCAwLjUyMzM3OCwgMC42Mjc0MTkiLCBcCi0gICAgICAgICAgIjAuMTgwMDIxLCAwLjI1MzY4OCwgMC4zMjY0NTksIDAuMzc4NDczLCAwLjQ2MTYxOCwgMC41MzQ0NTcsIDAuNjM4Mjg4Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDMyMzY0LCAwLjE3OTk3OSwgMC4zMzA3NTcsIDAuNDM5MjUyLCAwLjYxMjUyMywgMC43NjI5ODgsIDAuOTc5NzE2IiwgXAotICAgICAgICAgICIwLjAzMjM5NywgMC4xNzk3NTUsIDAuMzMwNzg2LCAwLjQzODUzOSwgMC42MTI0ODgsIDAuNzYyNDksIDAuOTc4NDAzIiwgXAotICAgICAgICAgICIwLjAzMjM1NCwgMC4xNzk5NzIsIDAuMzMwNzQ0LCAwLjQzOTE4NCwgMC42MTI1MTcsIDAuNzYyOTg2LCAwLjk3NzYxMiIsIFwKLSAgICAgICAgICAiMC4wMzIzOSwgMC4xNzk5ODYsIDAuMzMwNzc3LCAwLjQzODU3NSwgMC42MTI1MjQsIDAuNzYzOTg5LCAwLjk3OTY3NSIsIFwKLSAgICAgICAgICAiMC4wMzIzNDgsIDAuMTc5OTgyLCAwLjMzMDc1NiwgMC40Mzg1NzYsIDAuNjEyNTEzLCAwLjc2MjkyNCwgMC45Nzg1MyIsIFwKLSAgICAgICAgICAiMC4wMzIzOTEsIDAuMTc5OTg1LCAwLjMzMDc2LCAwLjQzODExOCwgMC42MTI0ODksIDAuNzYyOTgsIDAuOTc5MDUiLCBcCi0gICAgICAgICAgIjAuMDMyMzgyLCAwLjE3OTk4NCwgMC4zMzA3NzQsIDAuNDM5MzU0LCAwLjYxMTYzNiwgMC43NjI2MDksIDAuOTc5MTc1Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTI0MzM1LCAwLjE5ODg4NiwgMC4yNzIzOTIsIDAuMzI0ODkzLCAwLjQwODg0MiwgMC40ODIyOTgsIDAuNTg3MzM4IiwgXAotICAgICAgICAgICIwLjEzNDU2OCwgMC4yMDkxMjgsIDAuMjgyNjIsIDAuMzM1MTEzLCAwLjQxOTA4MSwgMC40OTI1NjUsIDAuNTk3NTY4IiwgXAotICAgICAgICAgICIwLjE0NzI0NiwgMC4yMjE3OTUsIDAuMjk1MzAxLCAwLjM0Nzc4MiwgMC40MzE3NDgsIDAuNTA1MjIxLCAwLjYxMDE4OSIsIFwKLSAgICAgICAgICAiMC4xNTkwMDIsIDAuMjMzNTQ4LCAwLjMwNzA1MywgMC4zNTk1NDUsIDAuNDQzNTAyLCAwLjUxNjk4OCwgMC42MjE5MyIsIFwKLSAgICAgICAgICAiMC4xNjkzODgsIDAuMjQzOTM3LCAwLjMxNzQ0MywgMC4zNjk5MzMsIDAuNDUzODkxLCAwLjUyNzM4NSwgMC42MzIzMzEiLCBcCi0gICAgICAgICAgIjAuMTgzNjE3LCAwLjI1ODE3LCAwLjMzMTY3NiwgMC4zODQxNTQsIDAuNDY4MTI1LCAwLjU0MTYwMiwgMC42NDY1NCIsIFwKLSAgICAgICAgICAiMC4xOTQ3MjcsIDAuMjY5Mjc5LCAwLjM0Mjc4MywgMC4zOTUyODgsIDAuNDc5MjM3LCAwLjU1MjcxNiwgMC42NTc3MTkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzE1OTMsIDAuMTc3MDY0LCAwLjMyNTMwNywgMC40MzI3NSwgMC42MDI0MjMsIDAuNzUyMjc2LCAwLjk2MzIyNCIsIFwKLSAgICAgICAgICAiMC4wMzE1OSwgMC4xNzY5NDIsIDAuMzI2MDI1LCAwLjQzMjYzMSwgMC42MDI1NjUsIDAuNzUxMTA5LCAwLjk2MjQ4NyIsIFwKLSAgICAgICAgICAiMC4wMzE1OTYsIDAuMTc3MzE2LCAwLjMyNTUsIDAuNDMyNjQsIDAuNjAyOTQ0LCAwLjc1MTI1LCAwLjk2MzUwNiIsIFwKLSAgICAgICAgICAiMC4wMzE1OTQsIDAuMTc3MDY4LCAwLjMyNTM2NSwgMC40MzI2ODYsIDAuNjAyNTI2LCAwLjc1MjQ2NywgMC45NjU1OTYiLCBcCi0gICAgICAgICAgIjAuMDMxNTk1LCAwLjE3NzA2NywgMC4zMjUzNzgsIDAuNDMyNjg5LCAwLjYwMjY0MywgMC43NTI0NjQsIDAuOTYzMTA1IiwgXAotICAgICAgICAgICIwLjAzMTU5OCwgMC4xNzcwNzYsIDAuMzI1Mzc0LCAwLjQzMjYxNiwgMC42MDI1MDEsIDAuNzUyNDA0LCAwLjk2NTUwMSIsIFwKLSAgICAgICAgICAiMC4wMzE2MDUsIDAuMTc3MDQyLCAwLjMyNjEyMywgMC40MzI3NTcsIDAuNjAxOTg1LCAwLjc1MTE5NiwgMC45NjI1MzciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTE4MDksIDAuMDExOTU2LCAwLjAxMTk3NiwgMC4wMTE5ODIsIDAuMDExOTg3LCAwLjAxMTk5LCAwLjAxMTk5NCIsIFwKLSAgICAgICAgICAiMC4wMTE3NzksIDAuMDExOTIzLCAwLjAxMTk0NSwgMC4wMTE5NDcsIDAuMDExOTU0LCAwLjAxMTk1OCwgMC4wMTE5NiIsIFwKLSAgICAgICAgICAiMC4wMTE3NiwgMC4wMTE5MDcsIDAuMDExOTI3LCAwLjAxMTkzMywgMC4wMTE5MzksIDAuMDExOTQyLCAwLjAxMTk0NCIsIFwKLSAgICAgICAgICAiMC4wMTE3NjQsIDAuMDExOTA3LCAwLjAxMTkyNywgMC4wMTE5MzQsIDAuMDExOTM5LCAwLjAxMTk0MywgMC4wMTE5NDQiLCBcCi0gICAgICAgICAgIjAuMDExNzgsIDAuMDExOTI0LCAwLjAxMTk0MiwgMC4wMTE5NDksIDAuMDExOTU4LCAwLjAxMTk1OCwgMC4wMTE5NTgiLCBcCi0gICAgICAgICAgIjAuMDExNzksIDAuMDExOTM5LCAwLjAxMTk2LCAwLjAxMTk2NiwgMC4wMTE5NzIsIDAuMDExOTc1LCAwLjAxMTk3NCIsIFwKLSAgICAgICAgICAiMC4wMTE4MjgsIDAuMDExOTY2LCAwLjAxMTk4NiwgMC4wMTE5OTIsIDAuMDExOTk4LCAwLjAxMiwgMC4wMTIwMDUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMTcwMSwgMC4wMTE4OTIsIDAuMDExOTE3LCAwLjAxMTkyNCwgMC4wMTE5MywgMC4wMTE5MzMsIDAuMDExOTM1IiwgXAotICAgICAgICAgICIwLjAxMTY3MywgMC4wMTE4NjQsIDAuMDExODg4LCAwLjAxMTg5NSwgMC4wMTE5MDIsIDAuMDExOTA1LCAwLjAxMTkwNyIsIFwKLSAgICAgICAgICAiMC4wMTE2ODMsIDAuMDExODcsIDAuMDExODk0LCAwLjAxMTkwMSwgMC4wMTE5MDcsIDAuMDExOTEsIDAuMDExOTEzIiwgXAotICAgICAgICAgICIwLjAxMTcwNSwgMC4wMTE4OTMsIDAuMDExOTE2LCAwLjAxMTkyMywgMC4wMTE5MjksIDAuMDExOTMzLCAwLjAxMTkzNSIsIFwKLSAgICAgICAgICAiMC4wMTE3MzgsIDAuMDExOTI5LCAwLjAxMTk1MywgMC4wMTE5NTksIDAuMDExOTY1LCAwLjAxMTk2OCwgMC4wMTE5NzEiLCBcCi0gICAgICAgICAgIjAuMDExNzc1LCAwLjAxMTk2NiwgMC4wMTE5OSwgMC4wMTE5OTcsIDAuMDEyMDAzLCAwLjAxMjAwNiwgMC4wMTIwMDgiLCBcCi0gICAgICAgICAgIjAuMDExODMxLCAwLjAxMjAyMywgMC4wMTIwNDcsIDAuMDEyMDU0LCAwLjAxMjA2LCAwLjAxMjA2MywgMC4wMTIwNjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogSU5WWEwgKgotICogLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKElOVlhMKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMDIyMjQ5NDsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjA1MTMxOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYwNDk2NDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2MDUxMzE7Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4xNTAwMTc7Ci0gICAgZnVuY3Rpb24gOiAiKCFBKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc3NDUzLCAwLjA5MTYyNSwgMC4yMTg3MTQsIDAuNDMwNjIyLCAwLjY0Mjg5NSwgMS4xMzc4MSwgMS40MTk4MiIsIFwKLSAgICAgICAgICAiMC4wODcyODUsIDAuMTAxNDgsIDAuMjI4NjAyLCAwLjQ0MDM0OCwgMC42NTI4MzEsIDEuMTQ3NDEsIDEuNDI5ODEiLCBcCi0gICAgICAgICAgIjAuMDk5NDQ2LCAwLjExMzU3MywgMC4yNDA3NDgsIDAuNDUyMjQ4LCAwLjY2NDMzMywgMS4xNTg3LCAxLjQ0MTMzIiwgXAotICAgICAgICAgICIwLjExMjAzMSwgMC4xMjU4ODQsIDAuMjUzMTQ0LCAwLjQ2NDI1NiwgMC42NzYzOTcsIDEuMTcwMjgsIDEuNDUzNDUiLCBcCi0gICAgICAgICAgIjAuMTI0NTg2LCAwLjEzODY1MiwgMC4yNjU1MjYsIDAuNDc3MTc0LCAwLjY4ODE0NCwgMS4xODI2MywgMS40NjUyNSIsIFwKLSAgICAgICAgICAiMC4xNDQ2NTQsIDAuMTU4NjcyLCAwLjI4NDk4OCwgMC40OTY5NzgsIDAuNzA4Njk4LCAxLjIwMjY3LCAxLjQ4NDAyIiwgXAotICAgICAgICAgICIwLjE2MTYzOCwgMC4xNzUxNywgMC4zMDIzMTgsIDAuNTE0NTE5LCAwLjcyNTk1NCwgMS4yMTg4OSwgMS41MDI0NSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNTE3OSwgMC4xODA4NjIsIDAuNDQxNjc3LCAwLjg3NjQ5OCwgMS4zMTEwOCwgMi4zMjY4LCAyLjkwNTY1IiwgXAotICAgICAgICAgICIwLjE1MTc2MiwgMC4xODA3ODQsIDAuNDQxNjkyLCAwLjg3ODEwNCwgMS4zMTE1OSwgMi4zMjU3MywgMi45MDU2OSIsIFwKLSAgICAgICAgICAiMC4xNTM0MTcsIDAuMTgyMDA0LCAwLjQ0MTkwNSwgMC44NzY0NywgMS4zMTEzLCAyLjMyNTgyLCAyLjkwNjU5IiwgXAotICAgICAgICAgICIwLjE1Nzc0LCAwLjE4NTY2MiwgMC40NDE4OTMsIDAuODc3MjAzLCAxLjMxMTIyLCAyLjMyNTI2LCAyLjkwNzUiLCBcCi0gICAgICAgICAgIjAuMTYzNzkyLCAwLjE5MDY1MSwgMC40NDI3MTEsIDAuODc2MjcsIDEuMzExMjcsIDIuMzI3NDYsIDIuOTA1NTQiLCBcCi0gICAgICAgICAgIjAuMTc1Mzc5LCAwLjIwMDkxNywgMC40NDY3ODMsIDAuODc2MjY2LCAxLjMxMzA2LCAyLjMyNjc5LCAyLjkwNDkzIiwgXAotICAgICAgICAgICIwLjE4Njc1OSwgMC4yMTAzMzEsIDAuNDUyMzAyLCAwLjg3NzAxMywgMS4zMTA5NiwgMi4zMjU3MywgMi45MDY3OCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzYxMzIsIDAuMDg5OTQzLCAwLjIxNDQ2NiwgMC40MjE4NTgsIDAuNjI5NTQ2LCAxLjExMzc0LCAxLjM4OTk1IiwgXAotICAgICAgICAgICIwLjA4NjE0MywgMC4wOTk5ODMsIDAuMjI0NDgzLCAwLjQzMTk0NCwgMC42Mzk1MzcsIDEuMTIzNzcsIDEuNDAwODUiLCBcCi0gICAgICAgICAgIjAuMDk5MTA5LCAwLjExMjkxMSwgMC4yMzczMjIsIDAuNDQzOTQ0LCAwLjY1MTQxOSwgMS4xMzU2OSwgMS40MTI3NyIsIFwKLSAgICAgICAgICAiMC4xMTE5OTIsIDAuMTI1NDQ2LCAwLjI1MDA4LCAwLjQ1NjQzMSwgMC42NjM3NTgsIDEuMTQ3OTksIDEuNDI0ODgiLCBcCi0gICAgICAgICAgIjAuMTI1MDE0LCAwLjEzODc2MiwgMC4yNjI5NzEsIDAuNDcwMTUsIDAuNjc2MTQzLCAxLjE2MDg1LCAxLjQzNjY4IiwgXAotICAgICAgICAgICIwLjE0NTk3OCwgMC4xNTk2NzQsIDAuMjgzMDMsIDAuNDkwNzIxLCAwLjY5ODI4LCAxLjE4MDU4LCAxLjQ1NjUiLCBcCi0gICAgICAgICAgIjAuMTYzNzQ5LCAwLjE3NzkzNCwgMC4zMDA5ODYsIDAuNTA4ODQzLCAwLjcxNTgzLCAxLjE5NzUxLCAxLjQ3NDg5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE0NTA4NCwgMC4xNzMyLCAwLjQyMjQ2NiwgMC44NDAxNTQsIDEuMjU0MjQsIDIuMjI0NzgsIDIuNzg1MSIsIFwKLSAgICAgICAgICAiMC4xNDUzNTMsIDAuMTczMjU4LCAwLjQyMjI3MywgMC44NDAzMDEsIDEuMjU0NDgsIDIuMjI0ODEsIDIuNzc4MzYiLCBcCi0gICAgICAgICAgIjAuMTQ2NDY2LCAwLjE3MzUzNCwgMC40MjIyOTksIDAuODM4MDE5LCAxLjI1NzI3LCAyLjIyNjIsIDIuNzc4NTciLCBcCi0gICAgICAgICAgIjAuMTUwODI1LCAwLjE3NzUwNCwgMC40MjMzMTYsIDAuODM4MzE2LCAxLjI1MzYyLCAyLjIyODQ4LCAyLjc3OTQyIiwgXAotICAgICAgICAgICIwLjE1NjQ5OSwgMC4xODIyNjcsIDAuNDIzNjE5LCAwLjgzOTkwMywgMS4yNTM0MywgMi4yMjU1NCwgMi43ODUxMSIsIFwKLSAgICAgICAgICAiMC4xNjc3NjUsIDAuMTkyMDg0LCAwLjQyNzUsIDAuODQwMDIsIDEuMjUzODYsIDIuMjIzOTEsIDIuNzg2MjgiLCBcCi0gICAgICAgICAgIjAuMTc4OTU5LCAwLjIwMjQwMywgMC40MzI4LCAwLjgzOTYyLCAxLjI1Nzc0LCAyLjIyMzI2LCAyLjc4MDIxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwODAyLCAwLjAwMDgwMywgMC4wMDA4MDQsIDAuMDAwODA0LCAwLjAwMDgwNCwgMC4wMDA4MDQsIDAuMDAwODA0IiwgXAotICAgICAgICAgICIwLjAwMDc5NSwgMC4wMDA3OTYsIDAuMDAwODAxLCAwLjAwMDgwMiwgMC4wMDA4MDQsIDAuMDAwODA0LCAwLjAwMDgwNCIsIFwKLSAgICAgICAgICAiMC4wMDA3OSwgMC4wMDA3OTIsIDAuMDAwNzk5LCAwLjAwMDgwMSwgMC4wMDA4MDMsIDAuMDAwODA0LCAwLjAwMDgwNCIsIFwKLSAgICAgICAgICAiMC4wMDA3ODcsIDAuMDAwNzg5LCAwLjAwMDc5NywgMC4wMDA4LCAwLjAwMDgwMiwgMC4wMDA4MDMsIDAuMDAwODA0IiwgXAotICAgICAgICAgICIwLjAwMDc4OCwgMC4wMDA3ODksIDAuMDAwNzk2LCAwLjAwMDgsIDAuMDAwODAxLCAwLjAwMDgwMywgMC4wMDA4MDMiLCBcCi0gICAgICAgICAgIjAuMDAwNzkyLCAwLjAwMDc5MywgMC4wMDA3OTYsIDAuMDAwOCwgMC4wMDA4MDEsIDAuMDAwODAzLCAwLjAwMDgwMyIsIFwKLSAgICAgICAgICAiMC4wMDA3OTksIDAuMDAwNzk0LCAwLjAwMDc5NywgMC4wMDA4LCAwLjAwMDgwMSwgMC4wMDA4MDMsIDAuMDAwODAzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwMDEyLCAwLjAwMDAxMiwgMC4wMDAwMTMsIDAuMDAwMDE0LCAwLjAwMDAxNCwgMC4wMDAwMTQsIDAuMDAwMDE0IiwgXAotICAgICAgICAgICIwLjAwMDAwMiwgMC4wMDAwMDQsIDAuMDAwMDEsIDAuMDAwMDEyLCAwLjAwMDAxMywgMC4wMDAwMTMsIDAuMDAwMDE0IiwgXAotICAgICAgICAgICIwLjAwMDAwNSwgMC4wMDAwMDMsIDAuMDAwMDA2LCAwLjAwMDAxLCAwLjAwMDAxMSwgMC4wMDAwMTMsIDAuMDAwMDEzIiwgXAotICAgICAgICAgICIwLjAwMDAwOSwgMC4wMDAwMDcsIDAuMDAwMDA0LCAwLjAwMDAwOCwgMC4wMDAwMSwgMC4wMDAwMTIsIDAuMDAwMDEzIiwgXAotICAgICAgICAgICIwLjAwMDAwOSwgMC4wMDAwMDcsIDAuMDAwMDAzLCAwLjAwMDAwOCwgMC4wMDAwMSwgMC4wMDAwMTIsIDAuMDAwMDEyIiwgXAotICAgICAgICAgICIwLjAwMDAwNSwgMC4wMDAwMDQsIDAuMDAwMDAyLCAwLjAwMDAwNywgMC4wMDAwMDksIDAuMDAwMDExLCAwLjAwMDAxMiIsIFwKLSAgICAgICAgICAiMC4wMDAwMDIsIDAuMDAwMDAxLCAwLjAwMDAwMiwgMC4wMDAwMDcsIDAuMDAwMDA5LCAwLjAwMDAxMSwgMC4wMDAwMTIiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IE1YSTJYOCAqCi0gKiAtLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKE1YSTJYOCkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjUxMDQzMTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjQ5NjY5OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDY0ODIyODsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2NDk2Njk7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjEsIDAuMDAwMjE1LCAwLjAwMDIxNiwgMC4wMDAyMTcsIDAuMDAwMjE4LCAwLjAwMDIxOCwgMC4wMDAyMTgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyMzIsIDAuMDAwMjI3LCAwLjAwMDIyOCwgMC4wMDAyMjcsIDAuMDAwMjI3LCAwLjAwMDIyNywgMC4wMDAyMjciKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYyMjA2MjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MjA5NjI7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjIyMDYyOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDIxNywgMC4wMDAyMiwgMC4wMDAyMjEsIDAuMDAwMjIxLCAwLjAwMDIyMiwgMC4wMDAyMjIsIDAuMDAwMjIyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjMsIDAuMDAwMjI3LCAwLjAwMDIyNywgMC4wMDAyMjcsIDAuMDAwMjI3LCAwLjAwMDIyNywgMC4wMDAyMjciKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFMwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDEzMDQzOTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDEzMDQzOTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDEzMDQyNTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxNzgsIDAuMDAwMTUsIDAuMDAwMTUzLCAwLjAwMDE1NywgMC4wMDAxNzIsIDAuMDAwMjAxLCAwLjAwMDIyOCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTk3LCAwLjAwMTk1LCAwLjAwMTk0OCwgMC4wMDE5NTYsIDAuMDAxOTY3LCAwLjAwMTk5MiwgMC4wMDIwMTYiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMi4wMDQ5NDsKLSAgICBmdW5jdGlvbiA6ICIoISgoUzAgQikgKyAoIVMwIEEpKSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk2NzQ3LCAwLjEzNTM4MiwgMC4xNzE2MywgMC4xOTc0ODYsIDAuMjM4ODM4LCAwLjI3NTAwMiwgMC4zMjY2OTgiLCBcCi0gICAgICAgICAgIjAuMTA1Mjk2LCAwLjE0Mzk3NiwgMC4xODAyMjMsIDAuMjA2MDc3LCAwLjI0NzQyMiwgMC4yODM1ODYsIDAuMzM1MjU4IiwgXAotICAgICAgICAgICIwLjExNTIwNywgMC4xNTM4NTIsIDAuMTkwMTE0LCAwLjIxNTk4MSwgMC4yNTczMjMsIDAuMjkzNDUxLCAwLjM0NTE3OSIsIFwKLSAgICAgICAgICAiMC4xMjQ4MzYsIDAuMTYzNDU0LCAwLjE5OTcxNywgMC4yMjU1NzQsIDAuMjY2OTI1LCAwLjMwMzA5NCwgMC4zNTQ3NzIiLCBcCi0gICAgICAgICAgIjAuMTMzOTg4LCAwLjE3MjY3MywgMC4yMDg5MywgMC4yMzQ3OTgsIDAuMjc2MTQ0LCAwLjMxMjMxNCwgMC4zNjM5OTgiLCBcCi0gICAgICAgICAgIjAuMTQ3NDU1LCAwLjE4NjEzNiwgMC4yMjIzNDUsIDAuMjQ4MTk1LCAwLjI4OTU1NCwgMC4zMjU3MTIsIDAuMzc3Mzc1IiwgXAotICAgICAgICAgICIwLjE1Nzk1OCwgMC4xOTY3MjcsIDAuMjMyOTc4LCAwLjI1ODgyOSwgMC4zMDAxNjIsIDAuMzM2MzMsIDAuMzg4MDE2Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDIzNTY1LCAwLjA5MzkwNywgMC4xNjc0NTksIDAuMjIwNTA1LCAwLjMwNTY4OSwgMC4zODAyOTksIDAuNDg3MjMzIiwgXAotICAgICAgICAgICIwLjAyMzU0LCAwLjA5Mzc5MywgMC4xNjczMjYsIDAuMjIwNDY1LCAwLjMwNTcwOSwgMC4zODAzMTUsIDAuNDg1OTE2IiwgXAotICAgICAgICAgICIwLjAyMzU0NCwgMC4wOTM4NDksIDAuMTY3NDU5LCAwLjIyMDI5MywgMC4zMDU3LCAwLjM3OTkwOSwgMC40ODcyMzIiLCBcCi0gICAgICAgICAgIjAuMDIzNjE4LCAwLjA5MzkzNSwgMC4xNjczMjksIDAuMjIwMjkyLCAwLjMwNTY4NywgMC4zODA0MDcsIDAuNDg1ODE1IiwgXAotICAgICAgICAgICIwLjAyMzUzNSwgMC4wOTM5MzQsIDAuMTY3NDU4LCAwLjIyMDQ3LCAwLjMwNTcwMywgMC4zODA0MDUsIDAuNDg2MzY4IiwgXAotICAgICAgICAgICIwLjAyMzcyOCwgMC4wOTM5ODYsIDAuMTY3Mjg4LCAwLjIyMDIxMiwgMC4zMDUxNSwgMC4zNzk4MjksIDAuNDg2OTkiLCBcCi0gICAgICAgICAgIjAuMDIzOTYsIDAuMDk0MDYsIDAuMTY3Mzc0LCAwLjIyMDMwMSwgMC4zMDU2NDEsIDAuMzgwMjkxLCAwLjQ4NjE2OCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5NTAxMSwgMC4xMzU0MzIsIDAuMTczNTc5LCAwLjIwMDc5NywgMC4yNDQzNDUsIDAuMjgyNDI1LCAwLjMzNjgyNCIsIFwKLSAgICAgICAgICAiMC4xMDM3NDcsIDAuMTQ0MjE2LCAwLjE4MjQwOSwgMC4yMDk2MzcsIDAuMjUzMTY5LCAwLjI5MTI3NSwgMC4zNDU2NjQiLCBcCi0gICAgICAgICAgIjAuMTE0NTczLCAwLjE1NTA0OSwgMC4xOTMxNzYsIDAuMjIwNDAzLCAwLjI2Mzk0NCwgMC4zMDIwMjgsIDAuMzU2NDM1IiwgXAotICAgICAgICAgICIwLjEyNTE0NSwgMC4xNjU1OSwgMC4yMDM3OSwgMC4yMzEwMTUsIDAuMjc0NTYxLCAwLjMxMjY1NSwgMC4zNjcwNDYiLCBcCi0gICAgICAgICAgIjAuMTM1MjcxLCAwLjE3NTczNCwgMC4yMTM5NTMsIDAuMjQxMTE2LCAwLjI4NDY0NCwgMC4zMjI3MzksIDAuMzc3MTcyIiwgXAotICAgICAgICAgICIwLjE1MDUxNSwgMC4xOTA3OTYsIDAuMjI4OTg0LCAwLjI1NjIwNSwgMC4yOTk3MzQsIDAuMzM3ODI3LCAwLjM5MjI2MSIsIFwKLSAgICAgICAgICAiMC4xNjI1NTUsIDAuMjAzMDU2LCAwLjI0MTI2NywgMC4yNjg0MzIsIDAuMzExOTcsIDAuMzUwMDU5LCAwLjQwNDUwNiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyMzExMSwgMC4wOTY3NDEsIDAuMTczMDE3LCAwLjIyODE5NiwgMC4zMTY0NTcsIDAuMzkzMTc4LCAwLjUwNDIwNSIsIFwKLSAgICAgICAgICAiMC4wMjMxNjgsIDAuMDk2NzE2LCAwLjE3MzA1OSwgMC4yMjgxNzQsIDAuMzE1OTMyLCAwLjM5Mzg0MywgMC41MDM5MzYiLCBcCi0gICAgICAgICAgIjAuMDIzMTc1LCAwLjA5NjcxLCAwLjE3MzA3NiwgMC4yMjgyMDYsIDAuMzE2NDQ1LCAwLjM5Mzc1OSwgMC41MDM1MTciLCBcCi0gICAgICAgICAgIjAuMDIzMTcxLCAwLjA5NjcxNywgMC4xNzMwMTQsIDAuMjI4MTY2LCAwLjMxNjQ0NCwgMC4zOTM4NCwgMC41MDM0MzEiLCBcCi0gICAgICAgICAgIjAuMDIzMTY5LCAwLjA5Njc1MSwgMC4xNzMwMjIsIDAuMjI3Njg0LCAwLjMxNjM4OCwgMC4zOTMyMjUsIDAuNTA0NDIzIiwgXAotICAgICAgICAgICIwLjAyMzI2NiwgMC4wOTY4MjEsIDAuMTcyOTM3LCAwLjIyNzY5LCAwLjMxNjQsIDAuMzkzMTk3LCAwLjUwNDQyOCIsIFwKLSAgICAgICAgICAiMC4wMjM0MjEsIDAuMDk2ODAzLCAwLjE3MjkyNCwgMC4yMjc4OTMsIDAuMzE2NDIzLCAwLjM5MzEyMywgMC41MDQ0ODIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTgyNTYsIDAuMTM2ODgsIDAuMTczMTQyLCAwLjE5OSwgMC4yNDAzNDgsIDAuMjc2NTA3LCAwLjMyODIwMSIsIFwKLSAgICAgICAgICAiMC4xMDY4MTMsIDAuMTQ1NDgsIDAuMTgxNzMyLCAwLjIwNzU4OSwgMC4yNDg5MzQsIDAuMjg1MDksIDAuMzM2NzgyIiwgXAotICAgICAgICAgICIwLjExNjYyNSwgMC4xNTUzMDgsIDAuMTkxNTU4LCAwLjIxNzQxMiwgMC4yNTg3NTcsIDAuMjk0OTIxLCAwLjM0NjU5MyIsIFwKLSAgICAgICAgICAiMC4xMjYyODgsIDAuMTY0OTM3LCAwLjIwMTE5OSwgMC4yMjcwNjUsIDAuMjY4NCwgMC4zMDQ1NzYsIDAuMzU2MjQ5IiwgXAotICAgICAgICAgICIwLjEzNTQ2NywgMC4xNzQxNTksIDAuMjEwNDA4LCAwLjIzNjI3OSwgMC4yNzc2MSwgMC4zMTM3OCwgMC4zNjU0NzEiLCBcCi0gICAgICAgICAgIjAuMTQ4OTA2LCAwLjE4NzU4NiwgMC4yMjM4NDcsIDAuMjQ5Njk1LCAwLjI5MTAzOSwgMC4zMjcyMDYsIDAuMzc4ODk0IiwgXAotICAgICAgICAgICIwLjE1OTY5MywgMC4xOTgzNzgsIDAuMjM0NjM3LCAwLjI2MDQ5NSwgMC4zMDE4NDcsIDAuMzM4MDE4LCAwLjM4OTY4MSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyMzY2MSwgMC4wOTM5NDgsIDAuMTY3MzM3LCAwLjIyMDM1NCwgMC4zMDU2ODcsIDAuMzc5OTMyLCAwLjQ4NjMyNCIsIFwKLSAgICAgICAgICAiMC4wMjM2MjMsIDAuMDkzODk2LCAwLjE2NzMzNSwgMC4yMjAxODksIDAuMzA1NzAxLCAwLjM4MDI4NiwgMC40ODU2ODIiLCBcCi0gICAgICAgICAgIjAuMDIzNTY5LCAwLjA5MzgwMywgMC4xNjczMjksIDAuMjIwNDgxLCAwLjMwNTcxNCwgMC4zODAzMjUsIDAuNDg1OTA5IiwgXAotICAgICAgICAgICIwLjAyMzYxMywgMC4wOTM5MDQsIDAuMTY3MzMzLCAwLjIyMDQ3OCwgMC4zMDU2NDcsIDAuMzgwMzU3LCAwLjQ4NzEyMSIsIFwKLSAgICAgICAgICAiMC4wMjM1NjUsIDAuMDkzOTI3LCAwLjE2NzQ2MywgMC4yMjAzNDksIDAuMzA1Njc2LCAwLjM4MDM0MSwgMC40ODY0IiwgXAotICAgICAgICAgICIwLjAyMzczMSwgMC4wOTQwMjEsIDAuMTY3MzIsIDAuMjIwMzUxLCAwLjMwNTY5MSwgMC4zODAyODQsIDAuNDg2NDkzIiwgXAotICAgICAgICAgICIwLjAyMzg2LCAwLjA5NDAyMywgMC4xNjczNzUsIDAuMjIwNDcyLCAwLjMwNTcyMiwgMC4zODAzNzQsIDAuNDg2NTUiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTU0NDQsIDAuMTM1ODQ2LCAwLjE3NDAzNSwgMC4yMDEyNiwgMC4yNDQ3OTYsIDAuMjgyODg1LCAwLjMzNzMzMyIsIFwKLSAgICAgICAgICAiMC4xMDQ0MjMsIDAuMTQ0ODQsIDAuMTgzMDMzLCAwLjIxMDI2LCAwLjI1Mzc5NiwgMC4yOTE4ODIsIDAuMzQ2MzM3IiwgXAotICAgICAgICAgICIwLjExNTM2MiwgMC4xNTU4NTgsIDAuMTkzOTg1LCAwLjIyMTIxNCwgMC4yNjQ3NSwgMC4zMDI4MzMsIDAuMzU3MjQ0IiwgXAotICAgICAgICAgICIwLjEyNjAyNiwgMC4xNjY1MDIsIDAuMjA0NzAzLCAwLjIzMTg2NCwgMC4yNzU0MDgsIDAuMzEzNSwgMC4zNjc4ODgiLCBcCi0gICAgICAgICAgIjAuMTM2MjI5LCAwLjE3NjY4LCAwLjIxNDkwNSwgMC4yNDIwMzEsIDAuMjg1NTczLCAwLjMyMzY2LCAwLjM3ODA1NiIsIFwKLSAgICAgICAgICAiMC4xNTE1NTIsIDAuMTkxODU4LCAwLjIzMDA0MywgMC4yNTcyNywgMC4zMDA4MDgsIDAuMzM4ODkzLCAwLjM5MzMwMSIsIFwKLSAgICAgICAgICAiMC4xNjM3MTYsIDAuMjA0MTczLCAwLjI0MjI5OCwgMC4yNjk1MTksIDAuMzEzMDUxLCAwLjM1MTEzNCwgMC40MDU1NDMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjMxNTYsIDAuMDk2NzMyLCAwLjE3MzA3OCwgMC4yMjgxOTEsIDAuMzE2MzExLCAwLjM5MzExMSwgMC41MDQ1MTUiLCBcCi0gICAgICAgICAgIjAuMDIzMTQyLCAwLjA5NjY4NiwgMC4xNzMwNTMsIDAuMjI4MTg4LCAwLjMxNjMwOCwgMC4zOTMwNzQsIDAuNTAzMDc0IiwgXAotICAgICAgICAgICIwLjAyMzE4MSwgMC4wOTY3MTYsIDAuMTcyOTk2LCAwLjIyODIxOSwgMC4zMTY0MzYsIDAuMzkzNzU5LCAwLjUwMzU0MyIsIFwKLSAgICAgICAgICAiMC4wMjMyMTIsIDAuMDk2NzIxLCAwLjE3MzA2OSwgMC4yMjgyMDEsIDAuMzE2NDc0LCAwLjM5MzgyNSwgMC41MDQwNzEiLCBcCi0gICAgICAgICAgIjAuMDIzMTg1LCAwLjA5NjcyNywgMC4xNzMwMTMsIDAuMjI4MTg4LCAwLjMxNjQzLCAwLjM5MjkzMSwgMC41MDQwMjIiLCBcCi0gICAgICAgICAgIjAuMDIzMzY5LCAwLjA5NjgwNCwgMC4xNzMwNzQsIDAuMjI3OTgzLCAwLjMxNjQzNiwgMC4zOTM3NDUsIDAuNTAzNDgxIiwgXAotICAgICAgICAgICIwLjAyMzQ0NSwgMC4wOTY4NjQsIDAuMTcyOTQzLCAwLjIyODE2OCwgMC4zMTY0NDIsIDAuMzkzMTMzLCAwLjUwMzQzOCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDc1NTUsIDAuMTQ2MjMxLCAwLjE4MjQ4MSwgMC4yMDgzMzUsIDAuMjQ5NjgzLCAwLjI4NTg0NiwgMC4zMzc1MjQiLCBcCi0gICAgICAgICAgIjAuMTE3ODIyLCAwLjE1NjUxMSwgMC4xOTI3NTcsIDAuMjE4NjEyLCAwLjI1OTk1OCwgMC4yOTYxMjIsIDAuMzQ3NzkyIiwgXAotICAgICAgICAgICIwLjEyODkzNCwgMC4xNjc2MTEsIDAuMjAzODYyLCAwLjIyOTcxNSwgMC4yNzEwNjIsIDAuMzA3MjI2LCAwLjM1ODkwMSIsIFwKLSAgICAgICAgICAiMC4xMzgyNjgsIDAuMTc2OTM2LCAwLjIxMzE4MiwgMC4yMzkwMzcsIDAuMjgwMzgyLCAwLjMxNjU0NiwgMC4zNjgyNjciLCBcCi0gICAgICAgICAgIjAuMTQ1ODU2LCAwLjE4NDQ2NSwgMC4yMjA3OTYsIDAuMjQ2NjQ3LCAwLjI4NzkzMywgMC4zMjQxNTcsIDAuMzc1Nzg5IiwgXAotICAgICAgICAgICIwLjE1NjE4NiwgMC4xOTQ2NTUsIDAuMjMwOTk0LCAwLjI1Njg1MSwgMC4yOTgxMDQsIDAuMzM0MjY2LCAwLjM4NjAyNyIsIFwKLSAgICAgICAgICAiMC4xNjQxMDQsIDAuMjAyNzkxLCAwLjIzOTAwNSwgMC4yNjQ4ODgsIDAuMzA2MjI3LCAwLjM0MjM5NCwgMC4zOTQwNTUiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjM1ODIsIDAuMDkzOTM3LCAwLjE2NzMzNCwgMC4yMjAwNzcsIDAuMzA1NzIzLCAwLjM4MDMyLCAwLjQ4NTcxNyIsIFwKLSAgICAgICAgICAiMC4wMjM1NzIsIDAuMDkzODA2LCAwLjE2NzMzMywgMC4yMjA0NTksIDAuMzA1NzEzLCAwLjM4MDMyMSwgMC40ODU4NTIiLCBcCi0gICAgICAgICAgIjAuMDIzNTcyLCAwLjA5MzkzNywgMC4xNjczMzMsIDAuMjIwNDgyLCAwLjMwNTcxNSwgMC4zODAzMTcsIDAuNDg1OTUiLCBcCi0gICAgICAgICAgIjAuMDIzNjA4LCAwLjA5Mzk0NCwgMC4xNjczMjksIDAuMjIwMDcyLCAwLjMwNTcwNSwgMC4zNzk0MDksIDAuNDg3MzAzIiwgXAotICAgICAgICAgICIwLjAyMzYyLCAwLjA5Mzg3MywgMC4xNjcyMzksIDAuMjIwNDg4LCAwLjMwNTQxNiwgMC4zODAzMTgsIDAuNDg1NzI1IiwgXAotICAgICAgICAgICIwLjAyMzU5NCwgMC4wOTM5NzQsIDAuMTY3NDU4LCAwLjIyMDUwMSwgMC4zMDU2OTcsIDAuMzgwMjQ3LCAwLjQ4NjUxNSIsIFwKLSAgICAgICAgICAiMC4wMjM2MDYsIDAuMDkzOTEyLCAwLjE2NzMxOCwgMC4yMjAyOTcsIDAuMzA1NjgxLCAwLjM4MDMxMywgMC40ODY5NDQiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDYzNDQsIDAuMTQ2Nzg1LCAwLjE4NDk3OCwgMC4yMTIyMDMsIDAuMjU1NzQyLCAwLjI5MzgyNywgMC4zNDgyMjgiLCBcCi0gICAgICAgICAgIjAuMTE2MTcsIDAuMTU2NjAzLCAwLjE5NDcyMiwgMC4yMjE5NTksIDAuMjY1NDgyLCAwLjMwMzU3MywgMC4zNTgwMSIsIFwKLSAgICAgICAgICAiMC4xMjY2NTUsIDAuMTY3MTIzLCAwLjIwNTMxLCAwLjIzMjU0MSwgMC4yNzYwNzYsIDAuMzE0MTY0LCAwLjM2ODU4NiIsIFwKLSAgICAgICAgICAiMC4xMzUxODMsIDAuMTc1Njc2LCAwLjIxMzg3MSwgMC4yNDEwMzQsIDAuMjg0NTY5LCAwLjMyMjY1MiwgMC4zNzcwNjIiLCBcCi0gICAgICAgICAgIjAuMTQyMDQzLCAwLjE4MjU3NSwgMC4yMjA3NzgsIDAuMjQ3OTM2LCAwLjI5MTUzMSwgMC4zMjk2MjIsIDAuMzg0MDQ3IiwgXAotICAgICAgICAgICIwLjE1MDk4NiwgMC4xOTE1NDMsIDAuMjI5NzI4LCAwLjI1Njk1MywgMC4zMDAyOTYsIDAuMzM4NTY5LCAwLjM5Mjc4OSIsIFwKLSAgICAgICAgICAiMC4xNTgyNTMsIDAuMTk4NjI2LCAwLjIzNjgyOCwgMC4yNjQwNSwgMC4zMDc1MywgMC4zNDU2MDcsIDAuNDAwMDgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjMyMDMsIDAuMDk2NzE3LCAwLjE3MzA2LCAwLjIyODE3MSwgMC4zMTU3NTIsIDAuMzkzMTQ5LCAwLjUwNDE5MSIsIFwKLSAgICAgICAgICAiMC4wMjMyMzgsIDAuMDk2NzE3LCAwLjE3MzA5MSwgMC4yMjgyMTYsIDAuMzE2NDA3LCAwLjM5MzE2OSwgMC41MDQ0MDYiLCBcCi0gICAgICAgICAgIjAuMDIzMTY0LCAwLjA5NjcxNiwgMC4xNzMwNzYsIDAuMjI4MTc5LCAwLjMxNjM0NSwgMC4zOTMwOTEsIDAuNTA0MzczIiwgXAotICAgICAgICAgICIwLjAyMzE3MiwgMC4wOTY3MTEsIDAuMTcyOTc0LCAwLjIyODIwNSwgMC4zMTY0MzEsIDAuMzkzNzU3LCAwLjUwMzU0MSIsIFwKLSAgICAgICAgICAiMC4wMjMxOTMsIDAuMDk2NzIzLCAwLjE3Mjg5MywgMC4yMjgxNjgsIDAuMzE2MzY3LCAwLjM5MzY4LCAwLjUwNDMyIiwgXAotICAgICAgICAgICIwLjAyMzE4NCwgMC4wOTY3NjcsIDAuMTczMDE1LCAwLjIyODI0LCAwLjMxNjQ1MywgMC4zOTM3MjcsIDAuNTA0MzE0IiwgXAotICAgICAgICAgICIwLjAyMzA5OCwgMC4wOTY3NTYsIDAuMTcyODk4LCAwLjIyODA0MywgMC4zMTYzNDUsIDAuMzkzNDM2LCAwLjUwNDEzNyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTA0OCwgMC4xMjkxNTMsIDAuMTY1Mzk2LCAwLjE5MTI1MywgMC4yMzI2LCAwLjI2ODc2MywgMC4zMjA0MjgiLCBcCi0gICAgICAgICAgIjAuMDk5MjY3LCAwLjEzNzk0NSwgMC4xNzQxODgsIDAuMjAwMDQzLCAwLjI0MTM4NSwgMC4yNzc1NTMsIDAuMzI5MiIsIFwKLSAgICAgICAgICAiMC4xMTA2NzksIDAuMTQ5MzUxLCAwLjE4NTU4NSwgMC4yMTE0NDYsIDAuMjUyNzksIDAuMjg4OTU2LCAwLjM0MDYzNSIsIFwKLSAgICAgICAgICAiMC4xMjIwNDIsIDAuMTYwNzA5LCAwLjE5Njk3MSwgMC4yMjI4MjQsIDAuMjY0MTY5LCAwLjMwMDMzNCwgMC4zNTIwMTIiLCBcCi0gICAgICAgICAgIjAuMTMyOTksIDAuMTcxNzAxLCAwLjIwNzk5LCAwLjIzMzc0MiwgMC4yNzUyMSwgMC4zMTEzNjMsIDAuMzYzMDU0IiwgXAotICAgICAgICAgICIwLjE0ODQ0MywgMC4xODcwMzQsIDAuMjIzMjgsIDAuMjQ5MTc3LCAwLjI5MDUyMSwgMC4zMjY2NDUsIDAuMzc4MzY3IiwgXAotICAgICAgICAgICIwLjE2MDMyOSwgMC4xOTkwNjMsIDAuMjM1MzcxLCAwLjI2MTIyNCwgMC4zMDI1MjgsIDAuMzM4NzI2LCAwLjM5MDM2MiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyMzU0LCAwLjA5MzkzMSwgMC4xNjc0NTcsIDAuMjIwMDY1LCAwLjMwNTY5OCwgMC4zNzk0MDcsIDAuNDg2NTIiLCBcCi0gICAgICAgICAgIjAuMDIzNTQyLCAwLjA5Mzg3MiwgMC4xNjczNTUsIDAuMjIwNDkzLCAwLjMwNTY4NiwgMC4zODAzMTYsIDAuNDg2OTk3IiwgXAotICAgICAgICAgICIwLjAyMzU4MSwgMC4wOTM4ODUsIDAuMTY3MzMxLCAwLjIyMDQ5LCAwLjMwNTY5MSwgMC4zODAzMTcsIDAuNDg3MTQ4IiwgXAotICAgICAgICAgICIwLjAyMzU0MiwgMC4wOTM5MzcsIDAuMTY3MjU3LCAwLjIyMDQ5OCwgMC4zMDU3MDMsIDAuMzc5NDA2LCAwLjQ4NTcxNiIsIFwKLSAgICAgICAgICAiMC4wMjM1NDIsIDAuMDkzODg5LCAwLjE2NzMzMiwgMC4yMjAyOTUsIDAuMzA1NzQ2LCAwLjM3OTk4MiwgMC40ODcyMTYiLCBcCi0gICAgICAgICAgIjAuMDIzODMzLCAwLjA5NDA0OSwgMC4xNjczNTgsIDAuMjIwNDg1LCAwLjMwNTY2NCwgMC4zODAyNjIsIDAuNDg2NDcyIiwgXAotICAgICAgICAgICIwLjAyNDA2OCwgMC4wOTQwOTMsIDAuMTY3MzkyLCAwLjIyMDIwMSwgMC4zMDU2ODYsIDAuMzgwMjU3LCAwLjQ4NjU2MyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4ODg4MSwgMC4xMjkyOSwgMC4xNjc0MjQsIDAuMTk0NjUxLCAwLjIzODE4NiwgMC4yNzYyNzYsIDAuMzMwNzIxIiwgXAotICAgICAgICAgICIwLjA5ODAxOCwgMC4xMzgzNywgMC4xNzY1NTcsIDAuMjAzNzgzLCAwLjI0NzMyLCAwLjI4NTQxOSwgMC4zMzk4MzMiLCBcCi0gICAgICAgICAgIjAuMTA5NjM2LCAwLjE1MDEyNCwgMC4xODgyNDYsIDAuMjE1NTQ1LCAwLjI1OTAxNCwgMC4yOTcxODIsIDAuMzUxNDk2IiwgXAotICAgICAgICAgICIwLjEyMTQzMywgMC4xNjE4OTksIDAuMjAwMDg5LCAwLjIyNzMyMywgMC4yNzA4NjYsIDAuMzA4OTUzLCAwLjM2MzM1NiIsIFwKLSAgICAgICAgICAiMC4xMzI5MTYsIDAuMTczMzA4LCAwLjIxMTQ3OSwgMC4yMzg2OTgsIDAuMjgyMjQzLCAwLjMyMDM0OSwgMC4zNzQ3MzMiLCBcCi0gICAgICAgICAgIjAuMTQ5Mzg0LCAwLjE4OTc0MSwgMC4yMjgwMjMsIDAuMjU1MjQ3LCAwLjI5ODc4MywgMC4zMzY4NywgMC4zOTExODIiLCBcCi0gICAgICAgICAgIjAuMTYyMzA4LCAwLjIwMjY3LCAwLjI0MDc1OSwgMC4yNjc5ODYsIDAuMzExNjkxLCAwLjM0OTU5NywgMC40MDQwMzYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjMxMDksIDAuMDk2NzM0LCAwLjE3MzA2NSwgMC4yMjgyLCAwLjMxNjQxNCwgMC4zOTMxMTQsIDAuNTA0NDQxIiwgXAotICAgICAgICAgICIwLjAyMzE2OCwgMC4wOTY3MjcsIDAuMTczMDU1LCAwLjIyODE5MSwgMC4zMTYzNTksIDAuMzkzODI5LCAwLjUwMzEzOSIsIFwKLSAgICAgICAgICAiMC4wMjMxOCwgMC4wOTY3MTYsIDAuMTczMDUxLCAwLjIyODIyLCAwLjMxNTgyNiwgMC4zOTM4MjUsIDAuNTA0MTQzIiwgXAotICAgICAgICAgICIwLjAyMzE3MywgMC4wOTY3MjIsIDAuMTcyOTU2LCAwLjIyNzYwNSwgMC4zMTY0MzQsIDAuMzkzNzkyLCAwLjUwMzUwNCIsIFwKLSAgICAgICAgICAiMC4wMjMyMTIsIDAuMDk2NzI5LCAwLjE3MjkwNCwgMC4yMjgxODUsIDAuMzE2NDE3LCAwLjM5Mzg3NywgMC41MDM0MzkiLCBcCi0gICAgICAgICAgIjAuMDIzNTYsIDAuMDk2ODUsIDAuMTczMDk2LCAwLjIyODI0MywgMC4zMTY0MjIsIDAuMzkzMTM4LCAwLjUwNDI1MSIsIFwKLSAgICAgICAgICAiMC4wMjM1MTIsIDAuMDk2ODg1LCAwLjE3MzA3NCwgMC4yMjc2OTgsIDAuMzE2NDM2LCAwLjM5MzQ2MSwgMC41MDMzNzkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMTY3NCwgMC4wMTIwMDIsIDAuMDEyMDc3LCAwLjAxMjEwOCwgMC4wMTIxMywgMC4wMTIxMjQsIDAuMDEyMTQ2IiwgXAotICAgICAgICAgICIwLjAxMTY3MiwgMC4wMTE5OTIsIDAuMDEyMDY5LCAwLjAxMjEwMywgMC4wMTIxMjksIDAuMDEyMTIyLCAwLjAxMjEzMiIsIFwKLSAgICAgICAgICAiMC4wMTE2NDksIDAuMDExOTc4LCAwLjAxMjA1NSwgMC4wMTIwNzYsIDAuMDEyMDk4LCAwLjAxMjExMywgMC4wMTIxMiIsIFwKLSAgICAgICAgICAiMC4wMTE2NDYsIDAuMDExOTc0LCAwLjAxMjA1MSwgMC4wMTIwNzMsIDAuMDEyMTAyLCAwLjAxMjExMywgMC4wMTIxMTkiLCBcCi0gICAgICAgICAgIjAuMDExNjI0LCAwLjAxMTk1NSwgMC4wMTIwMzMsIDAuMDEyMDU5LCAwLjAxMjA4MywgMC4wMTIwOTUsIDAuMDEyMTA3IiwgXAotICAgICAgICAgICIwLjAxMTYzMywgMC4wMTE5NTUsIDAuMDEyMDQsIDAuMDEyMDcyLCAwLjAxMjA5MywgMC4wMTIxMDgsIDAuMDEyMTIiLCBcCi0gICAgICAgICAgIjAuMDExNjUsIDAuMDExOTU3LCAwLjAxMjAzMiwgMC4wMTIwNjgsIDAuMDEyMDgxLCAwLjAxMjA5NywgMC4wMTIxMDkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMDU5NiwgMC4wMTEwMzMsIDAuMDExMTM4LCAwLjAxMTE3MywgMC4wMTEyMDYsIDAuMDExMjIzLCAwLjAxMTIzOSIsIFwKLSAgICAgICAgICAiMC4wMTA1NjYsIDAuMDExMDEyLCAwLjAxMTExNywgMC4wMTExNTMsIDAuMDExMTg1LCAwLjAxMTIwMiwgMC4wMTEyMTgiLCBcCi0gICAgICAgICAgIjAuMDEwNTUxLCAwLjAxMTAwMiwgMC4wMTExMDYsIDAuMDExMTQxLCAwLjAxMTE3MywgMC4wMTExOSwgMC4wMTEyMDYiLCBcCi0gICAgICAgICAgIjAuMDEwNTM3LCAwLjAxMDk4NiwgMC4wMTEwOTIsIDAuMDExMTI4LCAwLjAxMTE2MSwgMC4wMTExNzgsIDAuMDExMTk0IiwgXAotICAgICAgICAgICIwLjAxMDUxMSwgMC4wMTA5NjcsIDAuMDExMDc3LCAwLjAxMTExNCwgMC4wMTExNDksIDAuMDExMTY3LCAwLjAxMTE4MyIsIFwKLSAgICAgICAgICAiMC4wMTA1OSwgMC4wMTEwMSwgMC4wMTExMiwgMC4wMTExNTgsIDAuMDExMTkzLCAwLjAxMTIxMiwgMC4wMTEyMyIsIFwKLSAgICAgICAgICAiMC4wMTA1MzksIDAuMDEwOTg4LCAwLjAxMTA5OSwgMC4wMTExMzQsIDAuMDExMTcyLCAwLjAxMTE5MSwgMC4wMTEyMSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDExODgxLCAwLjAxMjIwNywgMC4wMTIyODIsIDAuMDEyMzA3LCAwLjAxMjMyNiwgMC4wMTIzNDUsIDAuMDEyMzUyIiwgXAotICAgICAgICAgICIwLjAxMTg3MiwgMC4wMTIyMDQsIDAuMDEyMjY0LCAwLjAxMjMsIDAuMDEyMzI0LCAwLjAxMjMyOSwgMC4wMTIzMzkiLCBcCi0gICAgICAgICAgIjAuMDExODY2LCAwLjAxMjE5NSwgMC4wMTIyNjEsIDAuMDEyMjk5LCAwLjAxMjMyNiwgMC4wMTIzNDQsIDAuMDEyMzI5IiwgXAotICAgICAgICAgICIwLjAxMTg1MiwgMC4wMTIxNzksIDAuMDEyMjUzLCAwLjAxMjI4LCAwLjAxMjMsIDAuMDEyMzExLCAwLjAxMjMyMyIsIFwKLSAgICAgICAgICAiMC4wMTE4NDMsIDAuMDEyMTczLCAwLjAxMjI1OCwgMC4wMTIyNzcsIDAuMDEyMzAxLCAwLjAxMjMxNSwgMC4wMTIzMjYiLCBcCi0gICAgICAgICAgIjAuMDExODIyLCAwLjAxMjE1OSwgMC4wMTIyMzcsIDAuMDEyMjY2LCAwLjAxMjI4OSwgMC4wMTIzMDIsIDAuMDEyMzE2IiwgXAotICAgICAgICAgICIwLjAxMTg3OSwgMC4wMTIxNzYsIDAuMDEyMjUsIDAuMDEyMjc2LCAwLjAxMjMwMSwgMC4wMTIzMiwgMC4wMTIzMjgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMDQ0NywgMC4wMTA4ODgsIDAuMDEwOTk0LCAwLjAxMTAzLCAwLjAxMTA2MywgMC4wMTEwODEsIDAuMDExMDk3IiwgXAotICAgICAgICAgICIwLjAxMDQyNSwgMC4wMTA4NjgsIDAuMDEwOTc0LCAwLjAxMTAwOSwgMC4wMTEwNDIsIDAuMDExMDYsIDAuMDExMDc1IiwgXAotICAgICAgICAgICIwLjAxMDQxLCAwLjAxMDg1OSwgMC4wMTA5NjQsIDAuMDEwOTk5LCAwLjAxMTAzMSwgMC4wMTEwNDgsIDAuMDExMDY0IiwgXAotICAgICAgICAgICIwLjAxMDM5NywgMC4wMTA4NDgsIDAuMDEwOTU1LCAwLjAxMDk5MSwgMC4wMTEwMjUsIDAuMDExMDQyLCAwLjAxMTA1OCIsIFwKLSAgICAgICAgICAiMC4wMTAzNzIsIDAuMDEwODI1LCAwLjAxMDkzNCwgMC4wMTA5NzIsIDAuMDExMDA3LCAwLjAxMTAyNSwgMC4wMTEwNDIiLCBcCi0gICAgICAgICAgIjAuMDEwMzkyLCAwLjAxMDg0LCAwLjAxMDk1MiwgMC4wMTA5OTEsIDAuMDExMDI2LCAwLjAxMTA0NSwgMC4wMTEwNjMiLCBcCi0gICAgICAgICAgIjAuMDEwMzk5LCAwLjAxMDgzMywgMC4wMTA5MzgsIDAuMDEwOTc3LCAwLjAxMTAxOCwgMC4wMTEwMzcsIDAuMDExMDU2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUzAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDExNTA4LCAwLjAxMTgyOCwgMC4wMTE5MDUsIDAuMDExOTM0LCAwLjAxMTk0NywgMC4wMTE5NTksIDAuMDExOTY5IiwgXAotICAgICAgICAgICIwLjAxMTQ5MywgMC4wMTE4MTIsIDAuMDExODg1LCAwLjAxMTkyNCwgMC4wMTE5MjksIDAuMDExOTQyLCAwLjAxMTk1MiIsIFwKLSAgICAgICAgICAiMC4wMTE0ODksIDAuMDExODEyLCAwLjAxMTg4NSwgMC4wMTE5MDksIDAuMDExOTQ4LCAwLjAxMTkyOSwgMC4wMTE5MjYiLCBcCi0gICAgICAgICAgIjAuMDExNDg5LCAwLjAxMTgxNiwgMC4wMTE4ODksIDAuMDExOTE5LCAwLjAxMTkzNCwgMC4wMTE5NDYsIDAuMDExOTU2IiwgXAotICAgICAgICAgICIwLjAxMTQ4MywgMC4wMTE4MTQsIDAuMDExODkyLCAwLjAxMTkxMywgMC4wMTE5MzYsIDAuMDExOTQ3LCAwLjAxMTk1OCIsIFwKLSAgICAgICAgICAiMC4wMTE1MTYsIDAuMDExODUsIDAuMDExOTIxLCAwLjAxMTk0NiwgMC4wMTE5NzIsIDAuMDExOTkyLCAwLjAxMTk5MiIsIFwKLSAgICAgICAgICAiMC4wMTE1NSwgMC4wMTE4NzIsIDAuMDExOTM5LCAwLjAxMTk4LCAwLjAxMTk4NiwgMC4wMTIwMTEsIDAuMDEyMDI0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTI1MTksIDAuMDEyOTY2LCAwLjAxMzA3LCAwLjAxMzEwNSwgMC4wMTMxMzcsIDAuMDEzMTU0LCAwLjAxMzE3IiwgXAotICAgICAgICAgICIwLjAxMjUwMywgMC4wMTI5NTEsIDAuMDEzMDU2LCAwLjAxMzA5MSwgMC4wMTMxMjMsIDAuMDEzMTQsIDAuMDEzMTU1IiwgXAotICAgICAgICAgICIwLjAxMjUxLCAwLjAxMjk1NywgMC4wMTMwNjEsIDAuMDEzMDk3LCAwLjAxMzEyOSwgMC4wMTMxNDUsIDAuMDEzMTYxIiwgXAotICAgICAgICAgICIwLjAxMjUwOCwgMC4wMTI5NTgsIDAuMDEzMDYyLCAwLjAxMzA5OCwgMC4wMTMxMjksIDAuMDEzMTQ2LCAwLjAxMzE2MSIsIFwKLSAgICAgICAgICAiMC4wMTI0OTksIDAuMDEyOTU3LCAwLjAxMzA2MywgMC4wMTMwOTUsIDAuMDEzMTMyLCAwLjAxMzE0OSwgMC4wMTMxNjUiLCBcCi0gICAgICAgICAgIjAuMDEyNTI4LCAwLjAxMjk5OCwgMC4wMTMxMDQsIDAuMDEzMTQsIDAuMDEzMTc3LCAwLjAxMzE5LCAwLjAxMzIxIiwgXAotICAgICAgICAgICIwLjAxMjU4NiwgMC4wMTMwMTcsIDAuMDEzMTIsIDAuMDEzMTU0LCAwLjAxMzE4LCAwLjAxMzE5NiwgMC4wMTMyMTYiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IE1YSTRYMSAqCi0gKiAtLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKE1YSTRYMSkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjI4MzU5OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2NDczMTQ7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjQ2MDU7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjQ3MzE0OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDgxMiwgMC4wMDA3OTEsIDAuMDAwNzgyLCAwLjAwMDc3NywgMC4wMDA3NzYsIDAuMDAwNzc4LCAwLjAwMDc4MyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjI1NiwgMC4wMDIyNDQsIDAuMDAyMjM4LCAwLjAwMjIzNiwgMC4wMDIyMzUsIDAuMDAyMjM4LCAwLjAwMjI0MyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjM1NzY7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjM0NTAxOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDYzNTc2OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDIxOCwgMC4wMDAyMjEsIDAuMDAwMjIxLCAwLjAwMDIyMiwgMC4wMDAyMjIsIDAuMDAwMjIyLCAwLjAwMDIyMiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDIyOSwgMC4wMDAyMjcsIDAuMDAwMjI3LCAwLjAwMDIyNywgMC4wMDAyMjcsIDAuMDAwMjI3LCAwLjAwMDIyNyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQykgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjExMTI7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjA5NTA1OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDYxMTEyOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDg0MywgMC4wMDA4MjIsIDAuMDAwODEyLCAwLjAwMDgwOCwgMC4wMDA4MDcsIDAuMDAwODEsIDAuMDAwODE2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyMTYyLCAwLjAwMjE1LCAwLjAwMjE0NCwgMC4wMDIxNDIsIDAuMDAyMTQyLCAwLjAwMjE0MywgMC4wMDIxNDgiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEQpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDU5NDY1ODsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA1OTMxNTM7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNTk0NjU4OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDIxOSwgMC4wMDAyMjEsIDAuMDAwMjIyLCAwLjAwMDIyMiwgMC4wMDAyMjIsIDAuMDAwMjIyLCAwLjAwMDIyMyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDIzLCAwLjAwMDIyNywgMC4wMDAyMjcsIDAuMDAwMjI3LCAwLjAwMDIyNywgMC4wMDAyMjcsIDAuMDAwMjI3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxOTUwMzM7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxOTQ5Nzg7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxOTUwMzM7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNDA1LCAwLjAwMDM3NywgMC4wMDAzNzQsIDAuMDAwMzc2LCAwLjAwMDM5MiwgMC4wMDA0MjEsIDAuMDAwNDUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDM0MjUsIDAuMDAzNDA0LCAwLjAwMzQsIDAuMDAzNDA1LCAwLjAwMzQxMywgMC4wMDM0MjksIDAuMDAzNDQ2Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTMSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNDEzNTk7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNDEyOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTQxMzU5OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDIwOCwgMC4wMDAxODIsIDAuMDAwMTgxLCAwLjAwMDE5MiwgMC4wMDAyMDMsIDAuMDAwMjMxLCAwLjAwMDI1NSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTcyMywgMC4wMDE3MDMsIDAuMDAxNzAzLCAwLjAwMTcxNSwgMC4wMDE3MywgMC4wMDE3NTIsIDAuMDAxNzc2Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMjU4NTQ3OwotICAgIGZ1bmN0aW9uIDogIighKChTMSAoKFMwIEQpICsgKCFTMCBDKSkpICsgKCFTMSAoKFMwIEIpICsgKCFTMCBBKSkpKSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEzOTMzLCAwLjE2NDE0MiwgMC4zMDM0OTMsIDAuNDI2MjIzLCAwLjU4OTg4NCwgMC45MTY5NzcsIDEuMTIxNDQiLCBcCi0gICAgICAgICAgIjAuMTQ3ODI2LCAwLjE3MjYzOCwgMC4zMTE5OTEsIDAuNDM0NzE4LCAwLjU5ODM0NSwgMC45MjU0ODUsIDEuMTI5OTMiLCBcCi0gICAgICAgICAgIjAuMTU3NTk4LCAwLjE4MjQwNywgMC4zMjE3NjEsIDAuNDQ0NDg5LCAwLjYwODEzNywgMC45MzUyNTcsIDEuMTM5NyIsIFwKLSAgICAgICAgICAiMC4xNjY4MTksIDAuMTkxNjM2LCAwLjMzMDk4NywgMC40NTM3MTMsIDAuNjE3MzEyLCAwLjk0NDQ3NywgMS4xNDg5MyIsIFwKLSAgICAgICAgICAiMC4xNzUxNDMsIDAuMTk5OTY4LCAwLjMzOTMyNCwgMC40NjIwNTIsIDAuNjI1NzE2LCAwLjk1MjgyLCAxLjE1NzI2IiwgXAotICAgICAgICAgICIwLjE4Njc4OCwgMC4yMTE2MDQsIDAuMzUwOTQ4LCAwLjQ3MzY4NSwgMC42MzcyNzgsIDAuOTY0NDI2LCAxLjE2ODg4IiwgXAotICAgICAgICAgICIwLjE5NTgwOSwgMC4yMjA2NTEsIDAuMzYsIDAuNDgyNzI0LCAwLjY0NjQyNywgMC45NzM0ODMsIDEuMTc3OTMiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk1Njk3LCAwLjE0NDc0NywgMC40Mjg4NjcsIDAuNjgyMDAzLCAxLjAxOTI0LCAxLjY5MTMxLCAyLjExMjE1IiwgXAotICAgICAgICAgICIwLjA5NTY5NCwgMC4xNDQ3NTUsIDAuNDI4ODQxLCAwLjY4MTk5OSwgMS4wMTkxMiwgMS42OTEyNSwgMi4xMTIxNiIsIFwKLSAgICAgICAgICAiMC4wOTU2OTYsIDAuMTQ0NzU3LCAwLjQyODU3OCwgMC42ODIwMDIsIDEuMDE3NTMsIDEuNjkxMjUsIDIuMTEyMTQiLCBcCi0gICAgICAgICAgIjAuMDk1Njk5LCAwLjE0NDc1NCwgMC40Mjg4NjMsIDAuNjgxOTk0LCAxLjAxOTAyLCAxLjY5MTI2LCAyLjExMjE2IiwgXAotICAgICAgICAgICIwLjA5NTY5NSwgMC4xNDQ3NTUsIDAuNDI4NTcxLCAwLjY4MTk5NSwgMS4wMTkyNCwgMS42OTExMSwgMi4xMTIxOCIsIFwKLSAgICAgICAgICAiMC4wOTU3NzgsIDAuMTQ0ODA1LCAwLjQyODg1NCwgMC42ODE5MTksIDEuMDE4MDEsIDEuNjkxNDUsIDIuMTEyMzUiLCBcCi0gICAgICAgICAgIjAuMDk1NzQ0LCAwLjE0NDc5LCAwLjQyODcyNywgMC42ODE5MTUsIDEuMDE5MTcsIDEuNjkxMTgsIDIuMTEyMTEiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTQwOTAzLCAwLjE2NjA3MSwgMC4zMDY1MzEsIDAuNDMwMjc5LCAwLjU5NTE1LCAwLjkyNDg5MiwgMS4xMzEwNSIsIFwKLSAgICAgICAgICAiMC4xNDk3MzEsIDAuMTc0ODk0LCAwLjMxNTM1NCwgMC40MzkxMDcsIDAuNjAzOTcxLCAwLjkzMzcxNCwgMS4xMzk4MSIsIFwKLSAgICAgICAgICAiMC4xNjA0MTgsIDAuMTg1NTk0LCAwLjMyNjA0OCwgMC40NDk4MDcsIDAuNjE0NjY4LCAwLjk0NDQxMywgMS4xNTA1NCIsIFwKLSAgICAgICAgICAiMC4xNzA2MDEsIDAuMTk1NzM4LCAwLjMzNjIwMiwgMC40NTk5NDgsIDAuNjI0ODE4LCAwLjk1NDU5NSwgMS4xNjA2NCIsIFwKLSAgICAgICAgICAiMC4xODAwNDUsIDAuMjA1MjEyLCAwLjM0NTY4NSwgMC40Njk0MzEsIDAuNjM0MywgMC45NjQwNTIsIDEuMTcwMTIiLCBcCi0gICAgICAgICAgIjAuMTkzMzUyLCAwLjIxODQ5MywgMC4zNTg5NjMsIDAuNDgyNzA4LCAwLjY0NzU5OSwgMC45NzczOTQsIDEuMTgzNCIsIFwKLSAgICAgICAgICAiMC4yMDM3OSwgMC4yMjg5NjMsIDAuMzY5NDMzLCAwLjQ5MzE5MSwgMC42NTgwNDYsIDAuOTg3Nzk0LCAxLjE5Mzg4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5NTIxNiwgMC4xNDM1LCAwLjQyMjg4MiwgMC42NzI2MDUsIDEuMDA0MjQsIDEuNjY3MjksIDIuMDg2MzciLCBcCi0gICAgICAgICAgIjAuMDk1MjI0LCAwLjE0MzQ4NSwgMC40MjMyNzUsIDAuNjcyNTI4LCAxLjAwNDUyLCAxLjY2NzI1LCAyLjA4MjkyIiwgXAotICAgICAgICAgICIwLjA5NTI0LCAwLjE0MzQ3LCAwLjQyMzYyMiwgMC42NzI1MDUsIDEuMDA0NSwgMS42NjczNCwgMi4wODYyIiwgXAotICAgICAgICAgICIwLjA5NTI1NSwgMC4xNDM1MDEsIDAuNDIyODg5LCAwLjY3MjUxMywgMS4wMDQ2OCwgMS42NzA0NywgMi4wODIxOSIsIFwKLSAgICAgICAgICAiMC4wOTUyNDQsIDAuMTQzNDEzLCAwLjQyMzY1OCwgMC42NzI0OTEsIDEuMDA0NTYsIDEuNjY3NSwgMi4wODIyMyIsIFwKLSAgICAgICAgICAiMC4wOTUzNDUsIDAuMTQzNTU5LCAwLjQyMjkxOSwgMC42NzI1MjgsIDEuMDA1MTMsIDEuNjcwMjQsIDIuMDgyMjYiLCBcCi0gICAgICAgICAgIjAuMDk1MjU5LCAwLjE0MzQyOSwgMC40MjM2NzEsIDAuNjcyNDc5LCAxLjAwNDU4LCAxLjY2NzM2LCAyLjA4NTkxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE0MDUzMiwgMC4xNjUzODgsIDAuMzA0NzM1LCAwLjQyNzQ3NywgMC41OTEwNzMsIDAuOTE4MjEyLCAxLjEyMjgiLCBcCi0gICAgICAgICAgIjAuMTQ5MTEsIDAuMTczOTI0LCAwLjMxMzI3NiwgMC40MzYwMDYsIDAuNTk5NjMxLCAwLjkyNjgxNSwgMS4xMzEyMiIsIFwKLSAgICAgICAgICAiMC4xNTg3ODUsIDAuMTgzNjAyLCAwLjMyMjk1MywgMC40NDU2NzksIDAuNjA5Mjc4LCAwLjkzNjQ0MywgMS4xNDA5IiwgXAotICAgICAgICAgICIwLjE2ODAwNSwgMC4xOTI4NTksIDAuMzMyMjA5LCAwLjQ1NDk1MSwgMC42MTg1NDUsIDAuOTQ1NzAzLCAxLjE1MDEzIiwgXAotICAgICAgICAgICIwLjE3NjQzOCwgMC4yMDEyNTUsIDAuMzQwNjEyLCAwLjQ2MzM0OSwgMC42MjY5NDQsIDAuOTU0MTU1LCAxLjE1ODU0IiwgXAotICAgICAgICAgICIwLjE4ODE3NSwgMC4yMTI5ODMsIDAuMzUyMzI4LCAwLjQ3NTA3MSwgMC42Mzg2NjQsIDAuOTY1ODE3LCAxLjE3MDI2IiwgXAotICAgICAgICAgICIwLjE5NzI2MiwgMC4yMjIwODYsIDAuMzYxNDI3LCAwLjQ4NDE3OSwgMC42NDc3NjgsIDAuOTc0OTAyLCAxLjE3OTM1Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5NTY5MSwgMC4xNDQ3NDcsIDAuNDI4NjQzLCAwLjY4MjAyNCwgMS4wMTc5MSwgMS42OTE1NSwgMi4xMTUxNCIsIFwKLSAgICAgICAgICAiMC4wOTU2OTUsIDAuMTQ0NzQ1LCAwLjQyODg3MywgMC42ODIwMDIsIDEuMDE5MTQsIDEuNjkwODMsIDIuMTEyMTciLCBcCi0gICAgICAgICAgIjAuMDk1NywgMC4xNDQ3NTQsIDAuNDI4ODY5LCAwLjY4MTk5NSwgMS4wMTc4NSwgMS42OTEyOCwgMi4xMTIxNiIsIFwKLSAgICAgICAgICAiMC4wOTU2OTUsIDAuMTQ0NzQ4LCAwLjQyODg1NSwgMC42ODIwMTYsIDEuMDE3OTgsIDEuNjkzMzcsIDIuMTEyNjEiLCBcCi0gICAgICAgICAgIjAuMDk1NjkzLCAwLjE0NDczNCwgMC40Mjg4NTEsIDAuNjgyMDA3LCAxLjAxODAxLCAxLjY5MzQ4LCAyLjExMjUyIiwgXAotICAgICAgICAgICIwLjA5NTc5NCwgMC4xNDQ4LCAwLjQyODgzOSwgMC42ODE5MjEsIDEuMDE3OTYsIDEuNjkzMTYsIDIuMTEyNTgiLCBcCi0gICAgICAgICAgIjAuMDk1NzQyLCAwLjE0NDgyNSwgMC40MjkzNywgMC42ODE5MjUsIDEuMDE3ODcsIDEuNjkxNDgsIDIuMTEyMzciKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTQxMjA4LCAwLjE2NjMzLCAwLjMwNjgxOCwgMC40MzA1NjMsIDAuNTk1NDM1LCAwLjkyNTIzMiwgMS4xMzEyNiIsIFwKLSAgICAgICAgICAiMC4xNTAxMzQsIDAuMTc1MzAxLCAwLjMxNTc2LCAwLjQzOTUxMywgMC42MDQzNzcsIDAuOTM0MTIsIDEuMTQwMjYiLCBcCi0gICAgICAgICAgIjAuMTYwOSwgMC4xODYwOCwgMC4zMjY1NTMsIDAuNDUwMjk2LCAwLjYxNTE2OCwgMC45NDQ5MzksIDEuMTUwOTkiLCBcCi0gICAgICAgICAgIjAuMTcxMjA3LCAwLjE5NjM1NSwgMC4zMzY4MTgsIDAuNDYwNTY3LCAwLjYyNTQzNSwgMC45NTUxOTQsIDEuMTYxMjUiLCBcCi0gICAgICAgICAgIjAuMTgwNzcyLCAwLjIwNTkzLCAwLjM0NjM5NiwgMC40NzAxNDcsIDAuNjM1MDA5LCAwLjk2NDc1NCwgMS4xNzA5IiwgXAotICAgICAgICAgICIwLjE5NDIyOCwgMC4yMTkzNywgMC4zNTk4MzcsIDAuNDgzNTg1LCAwLjY0ODQ1MywgMC45NzgxOTMsIDEuMTg0NDEiLCBcCi0gICAgICAgICAgIjAuMjA0ODMzLCAwLjIzMDAwNywgMC4zNzA0NzgsIDAuNDk0MTkyLCAwLjY1OTA4LCAwLjk4ODg0NywgMS4xOTQ5MSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTUyNTMsIDAuMTQzNTA1LCAwLjQyMjkwNiwgMC42NzI2MTksIDEuMDA0NiwgMS42NzA1MSwgMi4wODI1IiwgXAotICAgICAgICAgICIwLjA5NTI0NCwgMC4xNDM0ODIsIDAuNDIzMjc3LCAwLjY3MjUyNiwgMS4wMDQ1MiwgMS42NjcyOSwgMi4wODE1NyIsIFwKLSAgICAgICAgICAiMC4wOTUyMjUsIDAuMTQzNDkxLCAwLjQyMzY2OSwgMC42NzI1NDUsIDEuMDA0NTIsIDEuNjcwMzgsIDIuMDgyMTciLCBcCi0gICAgICAgICAgIjAuMDk1MjQ5LCAwLjE0MzQ5OSwgMC40MjI4NTgsIDAuNjcyNDg2LCAxLjAwNDUsIDEuNjcwMzMsIDIuMDgyMTciLCBcCi0gICAgICAgICAgIjAuMDk1MjQ0LCAwLjE0MzQ4MiwgMC40MjM2NTUsIDAuNjcyNTA0LCAxLjAwNDQ5LCAxLjY2NzMxLCAyLjA4NjE5IiwgXAotICAgICAgICAgICIwLjA5NTMzOSwgMC4xNDM1MzMsIDAuNDIyODgyLCAwLjY3MjUxMywgMS4wMDQ0NCwgMS42NjcxMSwgMi4wODU4OCIsIFwKLSAgICAgICAgICAiMC4wOTUyNzMsIDAuMTQzNTA0LCAwLjQyMzA5NSwgMC42NzI3MTUsIDEuMDA1MDYsIDEuNjY3NTQsIDIuMDgyMjgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTM3MDg5LCAwLjE2MTg3OSwgMC4zMDExOTcsIDAuNDIzOTA3LCAwLjU4NzU3MSwgMC45MTQ2NTgsIDEuMTE5MTIiLCBcCi0gICAgICAgICAgIjAuMTQ1NzA5LCAwLjE3MDUwNiwgMC4zMDk4MjIsIDAuNDMyNTQsIDAuNTk2MTM1LCAwLjkyMzM5MSwgMS4xMjc3MiIsIFwKLSAgICAgICAgICAiMC4xNTU0OTcsIDAuMTgwMjg3LCAwLjMxOTYwNSwgMC40NDIzMTYsIDAuNjA1OTQ4LCAwLjkzMzA2NCwgMS4xMzc1MyIsIFwKLSAgICAgICAgICAiMC4xNjQ3MTYsIDAuMTg5NTA1LCAwLjMyODgyNSwgMC40NTE1MzQsIDAuNjE1MTMsIDAuOTQyMjkyLCAxLjE0Njc0IiwgXAotICAgICAgICAgICIwLjE3MzA3NywgMC4xOTc4NjgsIDAuMzM3MTg4LCAwLjQ1OTkwNCwgMC42MjM0OTksIDAuOTUwNzc1LCAxLjE1NTA5IiwgXAotICAgICAgICAgICIwLjE4NDY1MiwgMC4yMDk0NTcsIDAuMzQ4Nzc1LCAwLjQ3MTQ4NywgMC42MzUwODUsIDAuOTYyMjI1LCAxLjE2NjY2IiwgXAotICAgICAgICAgICIwLjE5MzYyNywgMC4yMTg0MjYsIDAuMzU3NzM1LCAwLjQ4MDQ2MSwgMC42NDQxMzcsIDAuOTcxMjEyLCAxLjE3NTY1Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5NTUxNCwgMC4xNDQ1ODcsIDAuNDI4NDk2LCAwLjY4MTkxNywgMS4wMTkyLCAxLjY5MTIyLCAyLjExMjIxIiwgXAotICAgICAgICAgICIwLjA5NTUwNiwgMC4xNDQ1ODQsIDAuNDI4Nzg5LCAwLjY4MTkzLCAxLjAxNzc3LCAxLjY5MzY0LCAyLjExMjExIiwgXAotICAgICAgICAgICIwLjA5NTUwNywgMC4xNDQ1ODQsIDAuNDI4NDk0LCAwLjY4MTkxMywgMS4wMTkxLCAxLjY5MTIsIDIuMTEyMTkiLCBcCi0gICAgICAgICAgIjAuMDk1NTE3LCAwLjE0NDU5NywgMC40Mjg1MjIsIDAuNjgxOTE1LCAxLjAxNzksIDEuNjkxMjIsIDIuMTEyMTQiLCBcCi0gICAgICAgICAgIjAuMDk1NTE0LCAwLjE0NDU4NSwgMC40Mjg0NTEsIDAuNjgxOTMsIDEuMDE3NzcsIDEuNjkzNjgsIDIuMTEyMTEiLCBcCi0gICAgICAgICAgIjAuMDk1NTUyLCAwLjE0NDU5OSwgMC40Mjg1MTEsIDAuNjgxODMxLCAxLjAxNzcyLCAxLjY5MzEsIDIuMTEyMjEiLCBcCi0gICAgICAgICAgIjAuMDk1NTY2LCAwLjE0NDYxLCAwLjQyODgyOSwgMC42ODE4MzUsIDEuMDE5MDYsIDEuNjkxMjIsIDIuMTExOTgiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTM5NTA3LCAwLjE2NDY2LCAwLjMwNTE0NywgMC40Mjg4NTcsIDAuNTkzNzE0LCAwLjkyMzQ1NywgMS4xMjk1NiIsIFwKLSAgICAgICAgICAiMC4xNDgyMDgsIDAuMTczMzYyLCAwLjMxMzgxOCwgMC40Mzc1MzIsIDAuNjAyMzk4LCAwLjkzMjE1MywgMS4xMzgyMSIsIFwKLSAgICAgICAgICAiMC4xNTg4MjUsIDAuMTgzOTU2LCAwLjMyNDQwNiwgMC40NDgxMzksIDAuNjEzMDQzLCAwLjk0MjcyNiwgMS4xNDg4MiIsIFwKLSAgICAgICAgICAiMC4xNjkwMTIsIDAuMTk0MTg0LCAwLjMzNDYyNiwgMC40NTgzNzUsIDAuNjIzMjE3LCAwLjk1Mjk2MywgMS4xNTkwOCIsIFwKLSAgICAgICAgICAiMC4xNzgzNzEsIDAuMjAzNTIxLCAwLjM0Mzk3OCwgMC40Njc3NDUsIDAuNjMyNTgyLCAwLjk2MjMyNSwgMS4xNjg0IiwgXAotICAgICAgICAgICIwLjE5MTUxLCAwLjIxNjY0OSwgMC4zNTcxMDEsIDAuNDgwODM2LCAwLjY0NTczOCwgMC45NzU0MzgsIDEuMTgxNTIiLCBcCi0gICAgICAgICAgIjAuMjAxOTM3LCAwLjIyNzA5OSwgMC4zNjc1NDgsIDAuNDkxMjg3LCAwLjY1NjEzMywgMC45ODU4NzcsIDEuMTkyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5NTIxOCwgMC4xNDM0OTksIDAuNDIzNzQzLCAwLjY3MjU0NiwgMS4wMDQ2NCwgMS42Njc0NywgMi4wODYzMyIsIFwKLSAgICAgICAgICAiMC4wOTUyMTksIDAuMTQzNDA5LCAwLjQyMzcxNCwgMC42NzE5MzYsIDEuMDA1MDksIDEuNjY3NzcsIDIuMDgyMzUiLCBcCi0gICAgICAgICAgIjAuMDk1MjM2LCAwLjE0MzQ3OSwgMC40MjI5NDQsIDAuNjcyNTA5LCAxLjAwMzM5LCAxLjY3MDAzLCAyLjA4MjMxIiwgXAotICAgICAgICAgICIwLjA5NTIxMywgMC4xNDM0NDMsIDAuNDIzMzI2LCAwLjY3MjQxOCwgMS4wMDUwMywgMS42NjcyMywgMi4wODYwOCIsIFwKLSAgICAgICAgICAiMC4wOTUyMTksIDAuMTQzNDA0LCAwLjQyMjk0OCwgMC42NzEwOTksIDEuMDA1MTEsIDEuNjY3NDUsIDIuMDgyMzkiLCBcCi0gICAgICAgICAgIjAuMDk1MzE0LCAwLjE0MzUxNSwgMC40MjI5MjYsIDAuNjcyNDQzLCAxLjAwMzEyLCAxLjY2OTQ0LCAyLjA4MjE5IiwgXAotICAgICAgICAgICIwLjA5NTI0NiwgMC4xNDM0MjksIDAuNDIyOTkyLCAwLjY3MjQ1NSwgMS4wMDUsIDEuNjY4NTYsIDIuMDgzMzciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTM4MDQ2LCAwLjE2Mjg0NCwgMC4zMDIxNiwgMC40MjQ4NzgsIDAuNTg4NDczLCAwLjkxNTY3MywgMS4xMjAwNiIsIFwKLSAgICAgICAgICAiMC4xNDY1NTUsIDAuMTcxMzUxLCAwLjMxMDY2OSwgMC40MzMzODUsIDAuNTk2OTgxLCAwLjkyNDIyNCwgMS4xMjg1NyIsIFwKLSAgICAgICAgICAiMC4xNTYyMzUsIDAuMTgxMDI2LCAwLjMyMDM0NCwgMC40NDMwNTYsIDAuNjA2NzE2LCAwLjkzMzgwNSwgMS4xMzgyNyIsIFwKLSAgICAgICAgICAiMC4xNjU0MzQsIDAuMTkwMjI2LCAwLjMyOTU0NCwgMC40NTIyNTcsIDAuNjE1ODUzLCAwLjk0Mjk3NCwgMS4xNDc0NSIsIFwKLSAgICAgICAgICAiMC4xNzM3OTIsIDAuMTk4NiwgMC4zMzc5MjIsIDAuNDYwNjMxLCAwLjYyNDIxMywgMC45NTEzOTIsIDEuMTU1ODQiLCBcCi0gICAgICAgICAgIjAuMTg1NDMxLCAwLjIxMDIyNywgMC4zNDk1NDQsIDAuNDcyMjcsIDAuNjM1ODY0LCAwLjk2Mjk5LCAxLjE2NzQ0IiwgXAotICAgICAgICAgICIwLjE5NDM2MSwgMC4yMTkxNjMsIDAuMzU4NDU5LCAwLjQ4MTIwNywgMC42NDQ3OTYsIDAuOTcxOTIsIDEuMTc2MzciKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk1NTE3LCAwLjE0NDU4NywgMC40Mjg3NzYsIDAuNjgxOTI5LCAxLjAxNzc3LCAxLjY5MzQ3LCAyLjExMjA4IiwgXAotICAgICAgICAgICIwLjA5NTUxLCAwLjE0NDU4NiwgMC40Mjg3OTYsIDAuNjgxOTI3LCAxLjAxNzc3LCAxLjY5MzU5LCAyLjExMjExIiwgXAotICAgICAgICAgICIwLjA5NTUxNywgMC4xNDQ1ODgsIDAuNDI4NDY5LCAwLjY4MTkxNSwgMS4wMTkxOSwgMS42OTEyLCAyLjExMjE4IiwgXAotICAgICAgICAgICIwLjA5NTUxMywgMC4xNDQ1NzUsIDAuNDI4Nzk2LCAwLjY4MTkxOSwgMS4wMTc3OCwgMS42OTEyNCwgMi4xMTIwOCIsIFwKLSAgICAgICAgICAiMC4wOTU1MTUsIDAuMTQ0NTk3LCAwLjQyODUyNiwgMC42ODE5MTEsIDEuMDE4OTgsIDEuNjkwMDQsIDIuMTEyMTEiLCBcCi0gICAgICAgICAgIjAuMDk1NTU5LCAwLjE0NDYzNywgMC40Mjg3OTUsIDAuNjgxODM2LCAxLjAxNzg4LCAxLjY5MTIsIDIuMTEyNDQiLCBcCi0gICAgICAgICAgIjAuMDk1NTU5LCAwLjE0NDYxNiwgMC40MjkyNTksIDAuNjgxODQzLCAxLjAxNzcyLCAxLjY5MTM0LCAyLjExMjM5Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEzOTUyMSwgMC4xNjQ2NzIsIDAuMzA1MTQyLCAwLjQyODg3MiwgMC41OTM3MjksIDAuOTIzNDcxLCAxLjEyOTU4IiwgXAotICAgICAgICAgICIwLjE0ODQyNSwgMC4xNzM1ODIsIDAuMzE0MDQsIDAuNDM3NzY4LCAwLjYwMjYyMywgMC45MzIzNzQsIDEuMTM4NDQiLCBcCi0gICAgICAgICAgIjAuMTU5MTgxLCAwLjE4NDMxMSwgMC4zMjQ3NjEsIDAuNDQ4NDkzLCAwLjYxMzQyMywgMC45NDMxMDUsIDEuMTQ5MTgiLCBcCi0gICAgICAgICAgIjAuMTY5NDAxLCAwLjE5NDU0OCwgMC4zMzQ5OTQsIDAuNDU4NzM5LCAwLjYyMzU5NiwgMC45NTMzMjksIDEuMTU5NDEiLCBcCi0gICAgICAgICAgIjAuMTc4OTAxLCAwLjIwNDA1LCAwLjM0NDQ5NywgMC40NjgyNDUsIDAuNjMzMDg5LCAwLjk2MjgzNCwgMS4xNjg5OCIsIFwKLSAgICAgICAgICAiMC4xOTIxNzQsIDAuMjE3MzA5LCAwLjM1Nzc2NywgMC40ODE0OTgsIDAuNjQ2MzYxLCAwLjk3NjExLCAxLjE4MjE3IiwgXAotICAgICAgICAgICIwLjIwMjU3OSwgMC4yMjc3MzcsIDAuMzY4MTg1LCAwLjQ5MTkyNiwgMC42NTY3NzksIDAuOTg2NTEyLCAxLjE5MjYyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5NTIxNywgMC4xNDM0NiwgMC40MjI4MDUsIDAuNjcyNTQ3LCAxLjAwNDYzLCAxLjY2NzQ0LCAyLjA4NjM1IiwgXAotICAgICAgICAgICIwLjA5NTIxNCwgMC4xNDMzOTcsIDAuNDIzNzA3LCAwLjY3MTUxOCwgMS4wMDUwNiwgMS42Njc0LCAyLjA4MjE2IiwgXAotICAgICAgICAgICIwLjA5NTIzNCwgMC4xNDM0NzgsIDAuNDIyOTQzLCAwLjY3MjUwOSwgMS4wMDQ5MSwgMS42NjczNCwgMi4wODIyOCIsIFwKLSAgICAgICAgICAiMC4wOTUxMzgsIDAuMTQzNDQ2LCAwLjQyMzE4NCwgMC42NzI0NjMsIDEuMDA0NTMsIDEuNjY3MDIsIDIuMDg1ODgiLCBcCi0gICAgICAgICAgIjAuMDk1MjA1LCAwLjE0MzQ1NSwgMC40MjM2MjQsIDAuNjcyNDQ2LCAxLjAwNTA1LCAxLjY2NzIsIDIuMDg2MjMiLCBcCi0gICAgICAgICAgIjAuMDk1MzA0LCAwLjE0MzU2LCAwLjQyMzY1MSwgMC42NzI1MTcsIDEuMDA1MDQsIDEuNjY3MzksIDIuMDgyMSIsIFwKLSAgICAgICAgICAiMC4wOTUyNDYsIDAuMTQzNSwgMC40MjI5NzksIDAuNjcyNDQ4LCAxLjAwNDU1LCAxLjY2ODIsIDIuMDg1OTgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUzAiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE2MTIwNCwgMC4xODYwNCwgMC4zMjUzNzksIDAuNDQ4MTMsIDAuNjExNzMsIDAuOTM4ODksIDEuMTQzMzIiLCBcCi0gICAgICAgICAgIjAuMTcxNTI5LCAwLjE5NjM2MiwgMC4zMzU3MDcsIDAuNDU4NDI5LCAwLjYyMjA0NywgMC45NDkyMTIsIDEuMTUzODMiLCBcCi0gICAgICAgICAgIjAuMTgzOTU2LCAwLjIwODc3MiwgMC4zNDgxMzgsIDAuNDcwODUzLCAwLjYzNDU3MSwgMC45NjE2NDYsIDEuMTY2MTIiLCBcCi0gICAgICAgICAgIjAuMTk1MjIxLCAwLjIyMDA1NSwgMC4zNTkzOTUsIDAuNDgyMTIsIDAuNjQ1NzQsIDAuOTcyOTA1LCAxLjE3NzUzIiwgXAotICAgICAgICAgICIwLjIwNTI3MywgMC4yMzAwNzUsIDAuMzY5NDA4LCAwLjQ5MjIzNCwgMC42NTU3NzEsIDAuOTgyOTQ3LCAxLjE4NzM4IiwgXAotICAgICAgICAgICIwLjIxOTEwMSwgMC4yNDM0ODcsIDAuMzgyODg3LCAwLjUwNTU2NCwgMC42NjkxNzUsIDAuOTk2MzgzLCAxLjIwMTE3IiwgXAotICAgICAgICAgICIwLjIyOTA1NSwgMC4yNTM4NjQsIDAuMzkzMjIzLCAwLjUxNTk0NCwgMC42Nzk1ODQsIDEuMDA2NzMsIDEuMjExMiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTU3MDYsIDAuMTQ0NzUxLCAwLjQyODg1OCwgMC42ODIxMiwgMS4wMTk0LCAxLjY5MjczLCAyLjExMjY0IiwgXAotICAgICAgICAgICIwLjA5NTcwMywgMC4xNDQ3NjIsIDAuNDI5NDgxLCAwLjY4MjE4NiwgMS4wMTc5MywgMS42OTE2MSwgMi4xMTI1OSIsIFwKLSAgICAgICAgICAiMC4wOTU3MTksIDAuMTQ0NzQ5LCAwLjQyOTQxLCAwLjY4MjA4NCwgMS4wMTkxNywgMS42OTM1NSwgMi4xMTQ2OCIsIFwKLSAgICAgICAgICAiMC4wOTU3MDMsIDAuMTQ0NzU4LCAwLjQyOTQ3MiwgMC42ODIwNTIsIDEuMDE5MTksIDEuNjkxNDIsIDIuMTEyMzQiLCBcCi0gICAgICAgICAgIjAuMDk1NzA1LCAwLjE0NDc1NywgMC40Mjk0MTYsIDAuNjgyMDA0LCAxLjAxOTI2LCAxLjY5MzMxLCAyLjExNTA5IiwgXAotICAgICAgICAgICIwLjA5NTcwMiwgMC4xNDQ3NTksIDAuNDI5NDAyLCAwLjY4MjA3NSwgMS4wMTg3MiwgMS42OTMxNywgMi4xMTUwNiIsIFwKLSAgICAgICAgICAiMC4wOTU4MDUsIDAuMTQ0ODE2LCAwLjQyOTMxMSwgMC42ODIwNzQsIDEuMDE5MjgsIDEuNjkzNTYsIDIuMTE0NjkiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTYzOTk2LCAwLjE4OTIwNywgMC4zMjk2NjcsIDAuNDUzNDIsIDAuNjE4Mjg0LCAwLjk0ODAyNSwgMS4xNTQwOCIsIFwKLSAgICAgICAgICAiMC4xNzM5NzcsIDAuMTk5MTg4LCAwLjMzOTY0OCwgMC40NjM0MDEsIDAuNjI4MjY1LCAwLjk1ODAwNiwgMS4xNjQwNyIsIFwKLSAgICAgICAgICAiMC4xODU3MjcsIDAuMjEwOTQxLCAwLjM1MTQwMSwgMC40NzUxNTUsIDAuNjQwMDE4LCAwLjk2OTc2LCAxLjE3NTgiLCBcCi0gICAgICAgICAgIjAuMTk2NjQyLCAwLjIyMTg1OCwgMC4zNjIzMTMsIDAuNDg2MDcxLCAwLjY1MDkzMywgMC45ODA2NzYsIDEuMTg2NjUiLCBcCi0gICAgICAgICAgIjAuMjA1ODc0LCAwLjIzMTA0OCwgMC4zNzE1MDQsIDAuNDk1MjYxLCAwLjY2MDEyMiwgMC45ODk4NjcsIDEuMTk1OTkiLCBcCi0gICAgICAgICAgIjAuMjE4MzksIDAuMjQzNTMsIDAuMzg0MDIxLCAwLjUwNzczOSwgMC42NzI2MzIsIDEuMDAyMzYsIDEuMjA4NDciLCBcCi0gICAgICAgICAgIjAuMjI3NTIyLCAwLjI1MjY2MywgMC4zOTMxMzYsIDAuNTE2OTEzLCAwLjY4MTc1LCAxLjAxMTUxLCAxLjIxNzU4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5NTIzNiwgMC4xNDM1MjMsIDAuNDIzNzA0LCAwLjY3Mjc1MSwgMS4wMDUyMiwgMS42NzA4NCwgMi4wODU3NiIsIFwKLSAgICAgICAgICAiMC4wOTUyNzMsIDAuMTQzNTM4LCAwLjQyMzY5OCwgMC42NzI3NjYsIDEuMDA1MjMsIDEuNjcwODEsIDIuMDg2MiIsIFwKLSAgICAgICAgICAiMC4wOTUyNCwgMC4xNDM1MTMsIDAuNDIzMzc4LCAwLjY3MjczOCwgMS4wMDUwNywgMS42NzA4MSwgMi4wODU5NiIsIFwKLSAgICAgICAgICAiMC4wOTUyNDYsIDAuMTQzNDg4LCAwLjQyMzc1MiwgMC42NzI2ODMsIDEuMDA1MTUsIDEuNjcwNjMsIDIuMDg2NjIiLCBcCi0gICAgICAgICAgIjAuMDk1Mjc5LCAwLjE0MzQ5OSwgMC40MjM3NjYsIDAuNjcyNzI0LCAxLjAwNTExLCAxLjY3MDY2LCAyLjA4NjIiLCBcCi0gICAgICAgICAgIjAuMDk1MjYzLCAwLjE0MzUwOSwgMC40MjM3MTgsIDAuNjcyNzAyLCAxLjAwNTIxLCAxLjY2ODA4LCAyLjA4MzE5IiwgXAotICAgICAgICAgICIwLjA5NTM2NCwgMC4xNDM1OTgsIDAuNDIzNjUxLCAwLjY3MjY2MSwgMS4wMDUxMSwgMS42NzA3NCwgMi4wODMyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTMyODg1LCAwLjE1NzY5OSwgMC4yOTcwMzMsIDAuNDE5ODAzLCAwLjU4MzM5LCAwLjkxMDU2NCwgMS4xMTUwMSIsIFwKLSAgICAgICAgICAiMC4xNDE1NDIsIDAuMTY2Mzg2LCAwLjMwNTc0MiwgMC40Mjg0NzIsIDAuNTkyMDgzLCAwLjkxOTIwNSwgMS4xMjM2OSIsIFwKLSAgICAgICAgICAiMC4xNTI3MzQsIDAuMTc3NTUxLCAwLjMxNjkxOCwgMC40Mzk2MjgsIDAuNjAzMjM4LCAwLjkzMDQ0NiwgMS4xMzQ4NyIsIFwKLSAgICAgICAgICAiMC4xNjMwMDIsIDAuMTg3ODA3LCAwLjMyNzE0MSwgMC40NDk5NTgsIDAuNjEzNTAzLCAwLjk0MDY4MSwgMS4xNDUwOSIsIFwKLSAgICAgICAgICAiMC4xNzIyNzUsIDAuMTk3MTAxLCAwLjMzNjQ0NSwgMC40NTkyNCwgMC42MjI4MDEsIDAuOTQ5OTk0LCAxLjE1NDQzIiwgXAotICAgICAgICAgICIwLjE4NDUxOCwgMC4yMDkzMzEsIDAuMzQ4NjU5LCAwLjQ3MTQ0NSwgMC42MzUwMTIsIDAuOTYyMjA1LCAxLjE2NjU3IiwgXAotICAgICAgICAgICIwLjE5Mzg2MSwgMC4yMTg2ODEsIDAuMzU4MDQsIDAuNDgwNzcsIDAuNjQ0NDM5LCAwLjk3MTU0OSwgMS4xNzYiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk1NzA0LCAwLjE0NDc1MiwgMC40Mjk0NDQsIDAuNjgyMDE2LCAxLjAxOTE2LCAxLjY5MzUzLCAyLjExNTEzIiwgXAotICAgICAgICAgICIwLjA5NTcwNiwgMC4xNDQ3NTEsIDAuNDI5NDI5LCAwLjY4MjEwMSwgMS4wMTkwOSwgMS42OTM1NSwgMi4xMTQ4OSIsIFwKLSAgICAgICAgICAiMC4wOTU3MDksIDAuMTQ0NzU5LCAwLjQyODg2NywgMC42ODIwNjksIDEuMDE5MTcsIDEuNjkxNDMsIDIuMTEyMzUiLCBcCi0gICAgICAgICAgIjAuMDk1NzE1LCAwLjE0NDc2NCwgMC40Mjk0MDUsIDAuNjgyMjU0LCAxLjAxOTE5LCAxLjY5MzQ4LCAyLjExNTA0IiwgXAotICAgICAgICAgICIwLjA5NTcyNCwgMC4xNDQ3NjcsIDAuNDI5MzgzLCAwLjY4MjE4OSwgMS4wMTgwNywgMS42OTMzNCwgMi4xMTQ3NyIsIFwKLSAgICAgICAgICAiMC4wOTU4MTQsIDAuMTQ0ODM4LCAwLjQyOTQwNSwgMC42ODIwNTQsIDEuMDE4MDYsIDEuNjkzMTYsIDIuMTE0NzQiLCBcCi0gICAgICAgICAgIjAuMDk1ODA1LCAwLjE0NDgxMiwgMC40MjkyNzcsIDAuNjgxOTc3LCAxLjAxOTE4LCAxLjY5MzIsIDIuMTE0NDMiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTMzODM2LCAwLjE1ODk2NSwgMC4yOTk0NTksIDAuNDIzMjE3LCAwLjU4ODA3LCAwLjkxNzg1MywgMS4xMjM5MiIsIFwKLSAgICAgICAgICAiMC4xNDI3OTksIDAuMTY3OTQ0LCAwLjMwODQyLCAwLjQzMjE0OCwgMC41OTcwMzgsIDAuOTI2ODA2LCAxLjEzMjg4IiwgXAotICAgICAgICAgICIwLjE1NDI2NCwgMC4xNzk0MjUsIDAuMzE5ODkzLCAwLjQ0MzYzLCAwLjYwODUxNiwgMC45MzgzMTEsIDEuMTQ0MzUiLCBcCi0gICAgICAgICAgIjAuMTY0OTgxLCAwLjE5MDE0NCwgMC4zMzA2MTIsIDAuNDU0MzUsIDAuNjE5MjMxLCAwLjk0ODk4LCAxLjE1NTA3IiwgXAotICAgICAgICAgICIwLjE3NDY2MywgMC4xOTk4MjUsIDAuMzQwMjk2LCAwLjQ2NDA0NSwgMC42Mjg5MjQsIDAuOTU4Njc2LCAxLjE2NDgiLCBcCi0gICAgICAgICAgIjAuMTg3NzAyLCAwLjIxMjg0NSwgMC4zNTMzMjIsIDAuNDc3MDY0LCAwLjY0MTkzNywgMC45NzE2OTIsIDEuMTc3NzciLCBcCi0gICAgICAgICAgIjAuMTk3ODIyLCAwLjIyMzAxOSwgMC4zNjM0ODcsIDAuNDg3MjIyLCAwLjY1MjEwNywgMC45ODE4MzMsIDEuMTg3OTQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk1MzExLCAwLjE0MzUyMSwgMC40MjMyNzIsIDAuNjcyNzI5LCAxLjAwNTI3LCAxLjY3MDUyLCAyLjA4NjM4IiwgXAotICAgICAgICAgICIwLjA5NTMxNCwgMC4xNDM1NDYsIDAuNDIzNzYyLCAwLjY3Mjc5OCwgMS4wMDUyNCwgMS42NzA1LCAyLjA4NjE0IiwgXAotICAgICAgICAgICIwLjA5NTI4NywgMC4xNDM1NjUsIDAuNDIzNzA4LCAwLjY3Mjc0NiwgMS4wMDU0LCAxLjY3MDY4LCAyLjA4NjI0IiwgXAotICAgICAgICAgICIwLjA5NTI4OCwgMC4xNDM1NjYsIDAuNDIzNzQ0LCAwLjY3MjY5MSwgMS4wMDUwMywgMS42NzA2MSwgMi4wODYyMiIsIFwKLSAgICAgICAgICAiMC4wOTUyODQsIDAuMTQzNTE4LCAwLjQyMzYxOSwgMC42NzI2NiwgMS4wMDUwNSwgMS42Njc3OCwgMi4wODYxNyIsIFwKLSAgICAgICAgICAiMC4wOTU0LCAwLjE0MzYxMSwgMC40MjM2MiwgMC42NzI3MDUsIDEuMDA1MzcsIDEuNjcwMTEsIDIuMDg0OTYiLCBcCi0gICAgICAgICAgIjAuMDk1MzQsIDAuMTQzNjA4LCAwLjQyMzY3OCwgMC42NzI1MTcsIDEuMDA1MjIsIDEuNjcwNDMsIDIuMDg2NCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTMSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg4Mzg5LCAwLjExMzE0NywgMC4yNTI0MTUsIDAuMzc1MTEsIDAuNTM4NzIzLCAwLjg2NTg0NywgMS4wNzAzMSIsIFwKLSAgICAgICAgICAiMC4wOTc0NTEsIDAuMTIyMjMsIDAuMjYxNDk2LCAwLjM4NDIwMSwgMC41NDc3OTUsIDAuODc0OTMyLCAxLjA3OTUzIiwgXAotICAgICAgICAgICIwLjEwOTE1NSwgMC4xMzM5MjksIDAuMjczMjE2LCAwLjM5NTkyMiwgMC41NTk1MzgsIDAuODg2NjU2LCAxLjA5MTEyIiwgXAotICAgICAgICAgICIwLjEyMDU1OSwgMC4xNDUzMzUsIDAuMjg0NjE3LCAwLjQwNzM0LCAwLjU3MDkzLCAwLjg5ODA2MSwgMS4xMDI1IiwgXAotICAgICAgICAgICIwLjEzMDk2NSwgMC4xNTU3NTUsIDAuMjk1MDIzLCAwLjQxNzc3OCwgMC41ODEzMywgMC45MDg1MTMsIDEuMTEyOTMiLCBcCi0gICAgICAgICAgIjAuMTQ1NTcyLCAwLjE3MDQwNiwgMC4zMDk2ODMsIDAuNDMyNDA2LCAwLjU5NTk2MywgMC45MjMxNTMsIDEuMTI3NTciLCBcCi0gICAgICAgICAgIjAuMTU2Njg5LCAwLjE4MTU5NiwgMC4zMjA4MjcsIDAuNDQzNjIxLCAwLjYwNzE2NiwgMC45MzQyNDIsIDEuMTM4NzYiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk1NDc2LCAwLjE0NDU2NiwgMC40Mjg1NDMsIDAuNjgxOTUxLCAxLjAxOTEyLCAxLjY5MTU4LCAyLjExMDcyIiwgXAotICAgICAgICAgICIwLjA5NTQ0NiwgMC4xNDQ1NDcsIDAuNDI5MjgzLCAwLjY4MTA1NSwgMS4wMTc3NywgMS42OTExOSwgMi4xMTUxOSIsIFwKLSAgICAgICAgICAiMC4wOTU0OTQsIDAuMTQ0NTc5LCAwLjQyODc3NSwgMC42ODE5MDYsIDEuMDE5MDYsIDEuNjkxMiwgMi4xMTIxMSIsIFwKLSAgICAgICAgICAiMC4wOTU2ODgsIDAuMTQ0Njc5LCAwLjQyODc0MSwgMC42ODE4MzksIDEuMDE3NzEsIDEuNjkxMTEsIDIuMTEyMzUiLCBcCi0gICAgICAgICAgIjAuMDk2MjEzLCAwLjE0NTAwNiwgMC40MjkyODksIDAuNjgwODYzLCAxLjAxNzgsIDEuNjkwNTQsIDIuMTExOTciLCBcCi0gICAgICAgICAgIjAuMDk3MzMsIDAuMTQ1NzcyLCAwLjQyOTQ0LCAwLjY4MTkzNCwgMS4wMTg4OCwgMS42OTMxNiwgMi4xMTIwNiIsIFwKLSAgICAgICAgICAiMC4wOTgzODgsIDAuMTQ2NDgzLCAwLjQyODgsIDAuNjgwNzE4LCAxLjAxNzI4LCAxLjY5MjUsIDIuMTExMzMiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDkxODI3LCAwLjExNjk0NSwgMC4yNTczNzcsIDAuMzgxMTExLCAwLjU0NTk3MSwgMC44NzU3MjYsIDEuMDgxNzkiLCBcCi0gICAgICAgICAgIjAuMTAwNjQ3LCAwLjEyNTc3MywgMC4yNjYyMDMsIDAuMzg5OTM5LCAwLjU1NDgwMywgMC44ODQ1NzEsIDEuMDkwNjEiLCBcCi0gICAgICAgICAgIjAuMTExOTg0LCAwLjEzNzEyOCwgMC4yNzc1NzQsIDAuNDAxMzI4LCAwLjU2NjE4NSwgMC44OTU5MjcsIDEuMTAyMDUiLCBcCi0gICAgICAgICAgIjAuMTIyOTI1LCAwLjE0ODA2NCwgMC4yODg1MjksIDAuNDEyMjQ2LCAwLjU3NzE0LCAwLjkwNjg5OSwgMS4xMTI5NiIsIFwKLSAgICAgICAgICAiMC4xMzI4NDYsIDAuMTU3OTkzLCAwLjI5ODQ1MywgMC40MjIyMzQsIDAuNTg3MDk2LCAwLjkxNjgyNiwgMS4xMjI5IiwgXAotICAgICAgICAgICIwLjE0NjQzNywgMC4xNzE2NDUsIDAuMzEyMTQzLCAwLjQzNTg2MSwgMC42MDA3NjMsIDAuOTMwNTEyLCAxLjEzNjU2IiwgXAotICAgICAgICAgICIwLjE1NjYyMiwgMC4xODE5OSwgMC4zMjI1MTksIDAuNDQ2MjQ0LCAwLjYxMTE3OSwgMC45NDA4NjYsIDEuMTQ2OTMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk1MjMzLCAwLjE0MzQzLCAwLjQyMjk5OCwgMC42NzE2NjQsIDEuMDA1MDcsIDEuNjY3NjEsIDIuMDgyMzciLCBcCi0gICAgICAgICAgIjAuMDk1MjMyLCAwLjE0MzUwNSwgMC40MjI5MTgsIDAuNjcyNDkxLCAxLjAwNDUyLCAxLjY3MDMzLCAyLjA4MjAxIiwgXAotICAgICAgICAgICIwLjA5NTI2OCwgMC4xNDM0NTcsIDAuNDIyODY1LCAwLjY3MjQ1MSwgMS4wMDQ0NywgMS42NjcyLCAyLjA4NjEzIiwgXAotICAgICAgICAgICIwLjA5NTQ2NiwgMC4xNDM2NjgsIDAuNDIzNjU3LCAwLjY3MjY2OCwgMS4wMDUwNSwgMS42Njc2MiwgMi4wODIxNiIsIFwKLSAgICAgICAgICAiMC4wOTU5NzUsIDAuMTQzODg3LCAwLjQyMzQ2NywgMC42NzE4NzIsIDEuMDA1MTYsIDEuNjY3NDIsIDIuMDgyNTEiLCBcCi0gICAgICAgICAgIjAuMDk3MDE3LCAwLjE0NDczMSwgMC40MjQwNTQsIDAuNjcxNTIyLCAxLjAwMzk0LCAxLjY3MDQ3LCAyLjA4MjM3IiwgXAotICAgICAgICAgICIwLjA5NzgwNSwgMC4xNDUyNTksIDAuNDI0MDc1LCAwLjY3Mjg3MiwgMS4wMDUxNywgMS42NjczMiwgMi4wODIzMSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTMSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTA1MTc4LCAwLjEzMDAwNSwgMC4yNjkzNTksIDAuMzkyMTA2LCAwLjU1NTcsIDAuODgyODQ0LCAxLjA4NzI5IiwgXAotICAgICAgICAgICIwLjExNDg4OCwgMC4xMzk3MDEsIDAuMjc5MDYyLCAwLjQwMTc5MSwgMC41NjUzOTUsIDAuODkyNTYyLCAxLjA5NzAyIiwgXAotICAgICAgICAgICIwLjEyNTAxMSwgMC4xNDk4MzcsIDAuMjg5MTcyLCAwLjQxMTk2MSwgMC41NzU1MjQsIDAuOTAyNzA5LCAxLjEwNzE0IiwgXAotICAgICAgICAgICIwLjEzMjM3NiwgMC4xNTcxODUsIDAuMjk2NTQzLCAwLjQxOTI3OCwgMC41ODI4ODgsIDAuOTEwMDM2LCAxLjExNDUiLCBcCi0gICAgICAgICAgIjAuMTM4NzEzLCAwLjE2MzYwMywgMC4zMDI5NTUsIDAuNDI1NzQ1LCAwLjU4OTI5NCwgMC45MTY0MzgsIDEuMTIwODkiLCBcCi0gICAgICAgICAgIjAuMTQ3MDY1LCAwLjE3MTk4MiwgMC4zMTE0MTcsIDAuNDM0MTY0LCAwLjU5Nzc2NCwgMC45MjQ5NzYsIDEuMTI5MzYiLCBcCi0gICAgICAgICAgIjAuMTUzMjE1LCAwLjE3ODE3MSwgMC4zMTc3MzYsIDAuNDQwNDgzLCAwLjYwNDEwNiwgMC45MzEyMzIsIDEuMTM1NzMiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk1NjA4LCAwLjE0NDY4OSwgMC40Mjg4NSwgMC42ODIwMjMsIDEuMDE3OTYsIDEuNjkzMzQsIDIuMTEyNTgiLCBcCi0gICAgICAgICAgIjAuMDk1NjA5LCAwLjE0NDcsIDAuNDI4NTc3LCAwLjY4MTk4NSwgMS4wMTkwNiwgMS42OTExNSwgMi4xMTIxNCIsIFwKLSAgICAgICAgICAiMC4wOTU2MDUsIDAuMTQ0Njc0LCAwLjQyOTIsIDAuNjgyMDgzLCAxLjAxNzksIDEuNjkwMTMsIDIuMTEyMjIiLCBcCi0gICAgICAgICAgIjAuMDk1NjU4LCAwLjE0NDczNiwgMC40Mjg4NjEsIDAuNjgxOTg1LCAxLjAxNzkyLCAxLjY5MTM0LCAyLjExMjExIiwgXAotICAgICAgICAgICIwLjA5NTc0NSwgMC4xNDQ5MDEsIDAuNDI5MzYzLCAwLjY4MjAwNiwgMS4wMTg4NywgMS42OTExMiwgMi4xMTIyOSIsIFwKLSAgICAgICAgICAiMC4wOTU4ODUsIDAuMTQ1MDY2LCAwLjQyOTQxOCwgMC42ODE5OTksIDEuMDE4ODYsIDEuNjkzMTQsIDIuMTE0NDQiLCBcCi0gICAgICAgICAgIjAuMDk1ODk4LCAwLjE0NTAwNywgMC40MjkyOTcsIDAuNjgxOTIyLCAxLjAxODk0LCAxLjY5Mjc5LCAyLjExMTI4Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwNjc4NSwgMC4xMzE5MzcsIDAuMjcyMzY2LCAwLjM5NjA5OSwgMC41NjA5NjYsIDAuODkwOCwgMS4wOTY3OCIsIFwKLSAgICAgICAgICAiMC4xMTY4OTMsIDAuMTQyMDYxLCAwLjI4MjUwOSwgMC40MDYyNjYsIDAuNTcxMTEsIDAuOTAwODU5LCAxLjEwNjk3IiwgXAotICAgICAgICAgICIwLjEyNzMxLCAwLjE1MjQ1OCwgMC4yOTI5MjgsIDAuNDE2NjM4LCAwLjU4MTUzMywgMC45MTEyOTEsIDEuMTE3MzUiLCBcCi0gICAgICAgICAgIjAuMTM1ODk2LCAwLjE2MTAyOCwgMC4zMDE0ODUsIDAuNDI1MjIyLCAwLjU5MDEyNSwgMC45MTk4ODEsIDEuMTI1OTciLCBcCi0gICAgICAgICAgIjAuMTQyOTI4LCAwLjE2ODA4LCAwLjMwODU0MiwgMC40MzIyODEsIDAuNTk3MTc3LCAwLjkyNjg2NywgMS4xMzI5NSIsIFwKLSAgICAgICAgICAiMC4xNTI0MzgsIDAuMTc3NjQ4LCAwLjMxODE1NSwgMC40NDE4NjcsIDAuNjA2Nzk4LCAwLjkzNjU0LCAxLjE0MjYiLCBcCi0gICAgICAgICAgIjAuMTU5OTk2LCAwLjE4NTE5NiwgMC4zMjU3NzEsIDAuNDQ5NTIsIDAuNjE0NDQsIDAuOTQ0MTMyLCAxLjE1MDI2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5NTE2OCwgMC4xNDMzNzEsIDAuNDIyOTYzLCAwLjY3MjYzMSwgMS4wMDQ4NCwgMS42NzA1NSwgMi4wODIxMyIsIFwKLSAgICAgICAgICAiMC4wOTUxNjEsIDAuMTQzNDA4LCAwLjQyMjg3NSwgMC42NzI0NzcsIDEuMDA1MDUsIDEuNjY3MjcsIDIuMDg2MDciLCBcCi0gICAgICAgICAgIjAuMDk1MTU4LCAwLjE0MzM2NCwgMC40MjM1OTgsIDAuNjcyNTk4LCAxLjAwNTAzLCAxLjY2NzYzLCAyLjA4MjE5IiwgXAotICAgICAgICAgICIwLjA5NTE4NSwgMC4xNDM0MzEsIDAuNDIzNjE5LCAwLjY3MjQ5OCwgMS4wMDUwNiwgMS42NjcxMiwgMi4wODYxMSIsIFwKLSAgICAgICAgICAiMC4wOTUyNjIsIDAuMTQzNTA2LCAwLjQyMzUwNiwgMC42NzIzNTYsIDEuMDA1MDksIDEuNjY5OTcsIDIuMDg2IiwgXAotICAgICAgICAgICIwLjA5NTM0MiwgMC4xNDM2MTYsIDAuNDIzMDczLCAwLjY3MTYxNiwgMS4wMDM0OSwgMS42Njk5MiwgMi4wODU5NiIsIFwKLSAgICAgICAgICAiMC4wOTUxNzUsIDAuMTQzNTIxLCAwLjQyMzE1OSwgMC42NzE3NzEsIDEuMDAzODcsIDEuNjY5MDIsIDIuMDg1NTIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQzNjcsIDAuMDA0Mzc3LCAwLjAwNDM5LCAwLjAwNDM5NCwgMC4wMDQzOTUsIDAuMDA0Mzk2LCAwLjAwNDM5NyIsIFwKLSAgICAgICAgICAiMC4wMDQzNTUsIDAuMDA0MzY0LCAwLjAwNDM3OCwgMC4wMDQzODEsIDAuMDA0MzgyLCAwLjAwNDM4NCwgMC4wMDQzODQiLCBcCi0gICAgICAgICAgIjAuMDA0MzQ4LCAwLjAwNDM1NywgMC4wMDQzNywgMC4wMDQzNzMsIDAuMDA0Mzc1LCAwLjAwNDM3NiwgMC4wMDQzNzciLCBcCi0gICAgICAgICAgIjAuMDA0MzQyLCAwLjAwNDM1MSwgMC4wMDQzNjUsIDAuMDA0MzY4LCAwLjAwNDM3LCAwLjAwNDM3MSwgMC4wMDQzNzEiLCBcCi0gICAgICAgICAgIjAuMDA0MzQsIDAuMDA0MzUsIDAuMDA0MzY0LCAwLjAwNDM2NywgMC4wMDQzNjksIDAuMDA0MzcsIDAuMDA0MzcxIiwgXAotICAgICAgICAgICIwLjAwNDM0MSwgMC4wMDQzNTEsIDAuMDA0MzY2LCAwLjAwNDM2OCwgMC4wMDQzNywgMC4wMDQzNzIsIDAuMDA0MzcyIiwgXAotICAgICAgICAgICIwLjAwNDM0NCwgMC4wMDQzNTQsIDAuMDA0MzY3LCAwLjAwNDM3LCAwLjAwNDM3MSwgMC4wMDQzNzMsIDAuMDA0Mzc0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzNDAxLCAwLjAwMzQxMywgMC4wMDM0MywgMC4wMDM0MzMsIDAuMDAzNDM1LCAwLjAwMzQzNywgMC4wMDM0MzciLCBcCi0gICAgICAgICAgIjAuMDAzMzgsIDAuMDAzMzkyLCAwLjAwMzQwOSwgMC4wMDM0MTIsIDAuMDAzNDE0LCAwLjAwMzQxNiwgMC4wMDM0MTciLCBcCi0gICAgICAgICAgIjAuMDAzMzY5LCAwLjAwMzM4MSwgMC4wMDMzOTgsIDAuMDAzNDAxLCAwLjAwMzQwMywgMC4wMDM0MDUsIDAuMDAzNDA2IiwgXAotICAgICAgICAgICIwLjAwMzM2MiwgMC4wMDMzNzQsIDAuMDAzMzkxLCAwLjAwMzM5NCwgMC4wMDMzOTcsIDAuMDAzMzk4LCAwLjAwMzM5OSIsIFwKLSAgICAgICAgICAiMC4wMDMzNTksIDAuMDAzMzcxLCAwLjAwMzM4OSwgMC4wMDMzOTIsIDAuMDAzMzk1LCAwLjAwMzM5NiwgMC4wMDMzOTciLCBcCi0gICAgICAgICAgIjAuMDAzMzYyLCAwLjAwMzM3NCwgMC4wMDMzOTIsIDAuMDAzMzk2LCAwLjAwMzM5OCwgMC4wMDM0LCAwLjAwMzQiLCBcCi0gICAgICAgICAgIjAuMDAzMzY2LCAwLjAwMzM3OCwgMC4wMDMzOTcsIDAuMDAzNDAxLCAwLjAwMzQwMywgMC4wMDM0MDUsIDAuMDAzNDA1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0NTU1LCAwLjAwNDU2NCwgMC4wMDQ1NzksIDAuMDA0NTgyLCAwLjAwNDU4NCwgMC4wMDQ1ODUsIDAuMDA0NTg1IiwgXAotICAgICAgICAgICIwLjAwNDU0MywgMC4wMDQ1NTIsIDAuMDA0NTY2LCAwLjAwNDU2OSwgMC4wMDQ1NzEsIDAuMDA0NTcxLCAwLjAwNDU3MyIsIFwKLSAgICAgICAgICAiMC4wMDQ1MzUsIDAuMDA0NTQ0LCAwLjAwNDU1OCwgMC4wMDQ1NjEsIDAuMDA0NTYzLCAwLjAwNDU2NCwgMC4wMDQ1NjUiLCBcCi0gICAgICAgICAgIjAuMDA0NTMsIDAuMDA0NTQsIDAuMDA0NTUzLCAwLjAwNDU1NywgMC4wMDQ1NTksIDAuMDA0NTYsIDAuMDA0NTYiLCBcCi0gICAgICAgICAgIjAuMDA0NTI3LCAwLjAwNDUzNiwgMC4wMDQ1NTEsIDAuMDA0NTU0LCAwLjAwNDU1NiwgMC4wMDQ1NTcsIDAuMDA0NTU3IiwgXAotICAgICAgICAgICIwLjAwNDUyNywgMC4wMDQ1MzcsIDAuMDA0NTUyLCAwLjAwNDU1NSwgMC4wMDQ1NTYsIDAuMDA0NTU4LCAwLjAwNDU1OSIsIFwKLSAgICAgICAgICAiMC4wMDQ1MywgMC4wMDQ1NCwgMC4wMDQ1NTMsIDAuMDA0NTU2LCAwLjAwNDU1OCwgMC4wMDQ1NTksIDAuMDA0NTU5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzMjc5LCAwLjAwMzI5MSwgMC4wMDMzMDgsIDAuMDAzMzEyLCAwLjAwMzMxNCwgMC4wMDMzMTUsIDAuMDAzMzE2IiwgXAotICAgICAgICAgICIwLjAwMzI1OSwgMC4wMDMyNywgMC4wMDMyODcsIDAuMDAzMjkxLCAwLjAwMzI5MywgMC4wMDMyOTQsIDAuMDAzMjk1IiwgXAotICAgICAgICAgICIwLjAwMzI0OCwgMC4wMDMyNTksIDAuMDAzMjc2LCAwLjAwMzI4LCAwLjAwMzI4MiwgMC4wMDMyODMsIDAuMDAzMjg0IiwgXAotICAgICAgICAgICIwLjAwMzI0LCAwLjAwMzI1MiwgMC4wMDMyNjksIDAuMDAzMjcyLCAwLjAwMzI3NCwgMC4wMDMyNzYsIDAuMDAzMjc3IiwgXAotICAgICAgICAgICIwLjAwMzIzNywgMC4wMDMyNDksIDAuMDAzMjY3LCAwLjAwMzI3LCAwLjAwMzI3MiwgMC4wMDMyNzQsIDAuMDAzMjc1IiwgXAotICAgICAgICAgICIwLjAwMzI0MSwgMC4wMDMyNTMsIDAuMDAzMjcxLCAwLjAwMzI3NSwgMC4wMDMyNzcsIDAuMDAzMjc4LCAwLjAwMzI3OSIsIFwKLSAgICAgICAgICAiMC4wMDMyNDQsIDAuMDAzMjU0LCAwLjAwMzI3MiwgMC4wMDMyNzUsIDAuMDAzMjc4LCAwLjAwMzI3OSwgMC4wMDMyOCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDA1LCAwLjAwNDA1OSwgMC4wMDQwNzMsIDAuMDA0MDc2LCAwLjAwNDA3OCwgMC4wMDQwNzksIDAuMDA0MDgiLCBcCi0gICAgICAgICAgIjAuMDA0MDM4LCAwLjAwNDA0NywgMC4wMDQwNjEsIDAuMDA0MDY0LCAwLjAwNDA2NiwgMC4wMDQwNjcsIDAuMDA0MDY4IiwgXAotICAgICAgICAgICIwLjAwNDAzLCAwLjAwNDAzOSwgMC4wMDQwNTMsIDAuMDA0MDU2LCAwLjAwNDA1OCwgMC4wMDQwNTksIDAuMDA0MDU5IiwgXAotICAgICAgICAgICIwLjAwNDAyNSwgMC4wMDQwMzUsIDAuMDA0MDQ4LCAwLjAwNDA1MSwgMC4wMDQwNTMsIDAuMDA0MDU0LCAwLjAwNDA1NSIsIFwKLSAgICAgICAgICAiMC4wMDQwMjMsIDAuMDA0MDMzLCAwLjAwNDA0NywgMC4wMDQwNSwgMC4wMDQwNTIsIDAuMDA0MDUzLCAwLjAwNDA1MyIsIFwKLSAgICAgICAgICAiMC4wMDQwMjEsIDAuMDA0MDMsIDAuMDA0MDQ1LCAwLjAwNDA0NywgMC4wMDQwNDksIDAuMDA0MDUsIDAuMDA0MDUxIiwgXAotICAgICAgICAgICIwLjAwNDAyNSwgMC4wMDQwMzUsIDAuMDA0MDQ5LCAwLjAwNDA1MiwgMC4wMDQwNTQsIDAuMDA0MDU2LCAwLjAwNDA1NiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzU4NSwgMC4wMDM1OTcsIDAuMDAzNjEzLCAwLjAwMzYxNywgMC4wMDM2MTksIDAuMDAzNjIsIDAuMDAzNjIxIiwgXAotICAgICAgICAgICIwLjAwMzU2NCwgMC4wMDM1NzUsIDAuMDAzNTkyLCAwLjAwMzU5NiwgMC4wMDM1OTgsIDAuMDAzNTk5LCAwLjAwMzYiLCBcCi0gICAgICAgICAgIjAuMDAzNTUzLCAwLjAwMzU2NCwgMC4wMDM1ODEsIDAuMDAzNTg0LCAwLjAwMzU4NiwgMC4wMDM1ODgsIDAuMDAzNTg5IiwgXAotICAgICAgICAgICIwLjAwMzU0NywgMC4wMDM1NTksIDAuMDAzNTc2LCAwLjAwMzU3OSwgMC4wMDM1ODEsIDAuMDAzNTgzLCAwLjAwMzU4MyIsIFwKLSAgICAgICAgICAiMC4wMDM1NDQsIDAuMDAzNTU2LCAwLjAwMzU3NCwgMC4wMDM1NzcsIDAuMDAzNTc5LCAwLjAwMzU4MSwgMC4wMDM1ODIiLCBcCi0gICAgICAgICAgIjAuMDAzNTQ4LCAwLjAwMzU2LCAwLjAwMzU3NywgMC4wMDM1ODEsIDAuMDAzNTgzLCAwLjAwMzU4NSwgMC4wMDM1ODUiLCBcCi0gICAgICAgICAgIjAuMDAzNTUxLCAwLjAwMzU2MywgMC4wMDM1OCwgMC4wMDM1ODQsIDAuMDAzNTg2LCAwLjAwMzU4OCwgMC4wMDM1ODgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJEIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQyNTksIDAuMDA0MjY5LCAwLjAwNDI4MiwgMC4wMDQyODYsIDAuMDA0Mjg4LCAwLjAwNDI4OSwgMC4wMDQyODkiLCBcCi0gICAgICAgICAgIjAuMDA0MjQ3LCAwLjAwNDI1NiwgMC4wMDQyNywgMC4wMDQyNzMsIDAuMDA0Mjc1LCAwLjAwNDI3NiwgMC4wMDQyNzciLCBcCi0gICAgICAgICAgIjAuMDA0MjM5LCAwLjAwNDI0OCwgMC4wMDQyNjIsIDAuMDA0MjY1LCAwLjAwNDI2NywgMC4wMDQyNjgsIDAuMDA0MjY4IiwgXAotICAgICAgICAgICIwLjAwNDIzNCwgMC4wMDQyNDQsIDAuMDA0MjU4LCAwLjAwNDI2MSwgMC4wMDQyNjMsIDAuMDA0MjYzLCAwLjAwNDI2NCIsIFwKLSAgICAgICAgICAiMC4wMDQyMzIsIDAuMDA0MjQxLCAwLjAwNDI1NiwgMC4wMDQyNTksIDAuMDA0MjYxLCAwLjAwNDI2MiwgMC4wMDQyNjIiLCBcCi0gICAgICAgICAgIjAuMDA0MjMsIDAuMDA0MjQxLCAwLjAwNDI1NiwgMC4wMDQyNTksIDAuMDA0MjYxLCAwLjAwNDI2MiwgMC4wMDQyNjIiLCBcCi0gICAgICAgICAgIjAuMDA0MjM0LCAwLjAwNDI0MywgMC4wMDQyNTgsIDAuMDA0MjYxLCAwLjAwNDI2MiwgMC4wMDQyNjQsIDAuMDA0MjY1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzNDE1LCAwLjAwMzQyNiwgMC4wMDM0NDMsIDAuMDAzNDQ3LCAwLjAwMzQ0OCwgMC4wMDM0NSwgMC4wMDM0NTEiLCBcCi0gICAgICAgICAgIjAuMDAzMzk0LCAwLjAwMzQwNSwgMC4wMDM0MjIsIDAuMDAzNDI2LCAwLjAwMzQyOCwgMC4wMDM0MjksIDAuMDAzNDMiLCBcCi0gICAgICAgICAgIjAuMDAzMzgyLCAwLjAwMzM5NCwgMC4wMDM0MTEsIDAuMDAzNDE0LCAwLjAwMzQxNiwgMC4wMDM0MTgsIDAuMDAzNDE4IiwgXAotICAgICAgICAgICIwLjAwMzM3NSwgMC4wMDMzODcsIDAuMDAzNDA0LCAwLjAwMzQwNywgMC4wMDM0MDksIDAuMDAzNDExLCAwLjAwMzQxMiIsIFwKLSAgICAgICAgICAiMC4wMDMzNzQsIDAuMDAzMzg1LCAwLjAwMzQwMywgMC4wMDM0MDYsIDAuMDAzNDA4LCAwLjAwMzQxLCAwLjAwMzQxMSIsIFwKLSAgICAgICAgICAiMC4wMDMzNzcsIDAuMDAzMzg5LCAwLjAwMzQwNiwgMC4wMDM0MSwgMC4wMDM0MTIsIDAuMDAzNDE0LCAwLjAwMzQxNCIsIFwKLSAgICAgICAgICAiMC4wMDMzOCwgMC4wMDMzOTEsIDAuMDAzNDA5LCAwLjAwMzQxMywgMC4wMDM0MTUsIDAuMDAzNDE3LCAwLjAwMzQxNyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlMwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDYyODksIDAuMDA2Mjk5LCAwLjAwNjMxMiwgMC4wMDYzMTUsIDAuMDA2MzE3LCAwLjAwNjMxOCwgMC4wMDYzMTciLCBcCi0gICAgICAgICAgIjAuMDA2MjY4LCAwLjAwNjI3NywgMC4wMDYyOTEsIDAuMDA2Mjk0LCAwLjAwNjI5NSwgMC4wMDYyOTcsIDAuMDA2Mjk3IiwgXAotICAgICAgICAgICIwLjAwNjI0LCAwLjAwNjI1LCAwLjAwNjI2MywgMC4wMDYyNjYsIDAuMDA2MjY4LCAwLjAwNjI2OCwgMC4wMDYyNjkiLCBcCi0gICAgICAgICAgIjAuMDA2MjM2LCAwLjAwNjI0NSwgMC4wMDYyNTgsIDAuMDA2MjYyLCAwLjAwNjI2MywgMC4wMDYyNjQsIDAuMDA2MjY1IiwgXAotICAgICAgICAgICIwLjAwNjIzMiwgMC4wMDYyNDEsIDAuMDA2MjU0LCAwLjAwNjI1NywgMC4wMDYyNTksIDAuMDA2MjYxLCAwLjAwNjI2IiwgXAotICAgICAgICAgICIwLjAwNjIzOCwgMC4wMDYyNDcsIDAuMDA2MjYsIDAuMDA2MjYzLCAwLjAwNjI2NCwgMC4wMDYyNjcsIDAuMDA2MjY4IiwgXAotICAgICAgICAgICIwLjAwNjI1NCwgMC4wMDYyNjQsIDAuMDA2Mjc4LCAwLjAwNjI4MSwgMC4wMDYyODMsIDAuMDA2Mjg0LCAwLjAwNjI4NCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwODYzNSwgMC4wMDg2NDcsIDAuMDA4NjYzLCAwLjAwODY2NywgMC4wMDg2NjgsIDAuMDA4NjcsIDAuMDA4NjcxIiwgXAotICAgICAgICAgICIwLjAwODU5NSwgMC4wMDg2MDcsIDAuMDA4NjIzLCAwLjAwODYyNywgMC4wMDg2MjksIDAuMDA4NjMsIDAuMDA4NjMxIiwgXAotICAgICAgICAgICIwLjAwODU3NSwgMC4wMDg1ODYsIDAuMDA4NjAzLCAwLjAwODYwNiwgMC4wMDg2MDgsIDAuMDA4NjEsIDAuMDA4NjEiLCBcCi0gICAgICAgICAgIjAuMDA4NTgxLCAwLjAwODU5MywgMC4wMDg2MSwgMC4wMDg2MTMsIDAuMDA4NjE1LCAwLjAwODYxNywgMC4wMDg2MTciLCBcCi0gICAgICAgICAgIjAuMDA4NTgxLCAwLjAwODU5MywgMC4wMDg2MSwgMC4wMDg2MTMsIDAuMDA4NjE1LCAwLjAwODYxNiwgMC4wMDg2MTciLCBcCi0gICAgICAgICAgIjAuMDA4NjE5LCAwLjAwODYzMSwgMC4wMDg2NDgsIDAuMDA4NjUxLCAwLjAwODY1MywgMC4wMDg2NTUsIDAuMDA4NjU2IiwgXAotICAgICAgICAgICIwLjAwODY0MywgMC4wMDg2NDgsIDAuMDA4NjcyLCAwLjAwODY3NSwgMC4wMDg2NzcsIDAuMDA4NjcyLCAwLjAwODY3MiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlMxIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDM1MiwgMC4wMDM1MywgMC4wMDM1NDYsIDAuMDAzNTQ4LCAwLjAwMzU1MiwgMC4wMDM1NTMsIDAuMDAzNTUyIiwgXAotICAgICAgICAgICIwLjAwMzUwNSwgMC4wMDM1MTQsIDAuMDAzNTI5LCAwLjAwMzUzMywgMC4wMDM1MzUsIDAuMDAzNTM3LCAwLjAwMzUzNyIsIFwKLSAgICAgICAgICAiMC4wMDM1MDQsIDAuMDAzNTEzLCAwLjAwMzUyOCwgMC4wMDM1MzIsIDAuMDAzNTM0LCAwLjAwMzUzNiwgMC4wMDM1MzYiLCBcCi0gICAgICAgICAgIjAuMDAzNTEsIDAuMDAzNTE5LCAwLjAwMzUzNCwgMC4wMDM1MzcsIDAuMDAzNTQsIDAuMDAzNTQxLCAwLjAwMzU0MiIsIFwKLSAgICAgICAgICAiMC4wMDM1MiwgMC4wMDM1MywgMC4wMDM1NDQsIDAuMDAzNTQ3LCAwLjAwMzU1LCAwLjAwMzU1MiwgMC4wMDM1NTIiLCBcCi0gICAgICAgICAgIjAuMDAzNTQsIDAuMDAzNTQ5LCAwLjAwMzU2MiwgMC4wMDM1NjYsIDAuMDAzNTY3LCAwLjAwMzU2OSwgMC4wMDM1NyIsIFwKLSAgICAgICAgICAiMC4wMDM1NjIsIDAuMDAzNTY5LCAwLjAwMzU4NCwgMC4wMDM1ODcsIDAuMDAzNTg4LCAwLjAwMzU4OSwgMC4wMDM1OSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjY2MiwgMC4wMDI2NzQsIDAuMDAyNjkzLCAwLjAwMjY5NywgMC4wMDI2OTksIDAuMDAyNzAxLCAwLjAwMjcwMSIsIFwKLSAgICAgICAgICAiMC4wMDI2NDEsIDAuMDAyNjUzLCAwLjAwMjY3MSwgMC4wMDI2NzUsIDAuMDAyNjc4LCAwLjAwMjY4LCAwLjAwMjY4MSIsIFwKLSAgICAgICAgICAiMC4wMDI2NDIsIDAuMDAyNjU0LCAwLjAwMjY3MiwgMC4wMDI2NzcsIDAuMDAyNjc5LCAwLjAwMjY4MSwgMC4wMDI2ODIiLCBcCi0gICAgICAgICAgIjAuMDAyNjQsIDAuMDAyNjUyLCAwLjAwMjY3LCAwLjAwMjY3NCwgMC4wMDI2NzcsIDAuMDAyNjc5LCAwLjAwMjY3OSIsIFwKLSAgICAgICAgICAiMC4wMDI2NTIsIDAuMDAyNjY0LCAwLjAwMjY4MSwgMC4wMDI2ODYsIDAuMDAyNjg4LCAwLjAwMjY5LCAwLjAwMjY5MSIsIFwKLSAgICAgICAgICAiMC4wMDI2NzQsIDAuMDAyNjg2LCAwLjAwMjcwMywgMC4wMDI3MDgsIDAuMDAyNzEsIDAuMDAyNzEyLCAwLjAwMjcxMyIsIFwKLSAgICAgICAgICAiMC4wMDI2OTcsIDAuMDAyNzA5LCAwLjAwMjcyNiwgMC4wMDI3MywgMC4wMDI3MzMsIDAuMDAyNzM1LCAwLjAwMjczNCIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBOQU5ENEJYMSAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoTkFORDRCWDEpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4xNzMwMzI7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEFOKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2MjkyNTI7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjI5MDI3OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDYyOTI1MjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA0NDQsIDAuMDAwNDE5LCAwLjAwMDQxNiwgMC4wMDA0MjQsIDAuMDAwNDM0LCAwLjAwMDQ2MSwgMC4wMDA0ODYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDE0NzUsIDAuMDAxNDU2LCAwLjAwMTQ1MywgMC4wMDE0NjEsIDAuMDAxNDczLCAwLjAwMTUwMSwgMC4wMDE1MjIiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDg5NjYzMzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA4OTY2MzM7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwODk0MjU3OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDQwOSwgMC4wMDA0MDksIDAuMDAwNDA5LCAwLjAwMDQwOSwgMC4wMDA0MDksIDAuMDAwNDA5LCAwLjAwMDQwOSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDQxLCAwLjAwMDQxLCAwLjAwMDQxLCAwLjAwMDQxMSwgMC4wMDA0MSwgMC4wMDA0MSwgMC4wMDA0MSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQykgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwOTA3MTE2OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDkwNzExNjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA5MDUxOTg7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNDA5LCAwLjAwMDQwOSwgMC4wMDA0MDksIDAuMDAwNDA5LCAwLjAwMDQwOCwgMC4wMDA0MDgsIDAuMDAwNDA4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNDEsIDAuMDAwNDEsIDAuMDAwNDEsIDAuMDAwNDEsIDAuMDAwNDEsIDAuMDAwNDExLCAwLjAwMDQxMSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwOTA3NDA0OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDkwNjU5NTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA5MDc0MDQ7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjc2LCAwLjAwMDI3NSwgMC4wMDAyNzYsIDAuMDAwMjc1LCAwLjAwMDI3NSwgMC4wMDAyNzUsIDAuMDAwMjc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNDY0LCAwLjAwMDQ2NCwgMC4wMDA0NjUsIDAuMDAwNDY1LCAwLjAwMDQ2NCwgMC4wMDA0NjQsIDAuMDAwNDY0Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMDcxNjk1NjsKLSAgICBmdW5jdGlvbiA6ICIoISgoKCghQU4pIEIpIEMpIEQpKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQU4iOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3MTcwMSwgMC4wOTY0NzMsIDAuMjM1OTkzLCAwLjM1ODk2LCAwLjUyMjczOSwgMC44NTAwNzQsIDEuMDU0NjgiLCBcCi0gICAgICAgICAgIjAuMDgxODYyLCAwLjEwNjYyOCwgMC4yNDYyMTcsIDAuMzY5MDU1LCAwLjUzMjgwOSwgMC44NjAyMjQsIDEuMDY1NDYiLCBcCi0gICAgICAgICAgIjAuMDkzMTk4LCAwLjExNzk2MywgMC4yNTc1MzcsIDAuMzgwNDAzLCAwLjU0NDM0NCwgMC44NzE1NDYsIDEuMDc2NDYiLCBcCi0gICAgICAgICAgIjAuMTAyNzIyLCAwLjEyNzQ5OSwgMC4yNjcwNDEsIDAuMzg5OTIyLCAwLjU1MzcwNywgMC44ODExNjcsIDEuMDg2MzMiLCBcCi0gICAgICAgICAgIjAuMTEwNzQzLCAwLjEzNTUyOSwgMC4yNzUwNDEsIDAuMzk4MDIxLCAwLjU2MTYsIDAuODg5MTM1LCAxLjA5NDIxIiwgXAotICAgICAgICAgICIwLjEyMTYyMywgMC4xNDYyMzUsIDAuMjg1Njc4LCAwLjQwODU5NywgMC41NzIyODIsIDAuODk5NzMyLCAxLjEwNDQ4IiwgXAotICAgICAgICAgICIwLjEzMDEyOSwgMC4xNTUwMTksIDAuMjkzOTc4LCAwLjQxNzM4NywgMC41ODA3OCwgMC45MDg3NTMsIDEuMTEzMiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDQzMTQsIDAuMTU0NjY4LCAwLjQ0MTA2NiwgMC42OTM5NzcsIDEuMDMwNjgsIDEuNzA0NzEsIDIuMTI2NDQiLCBcCi0gICAgICAgICAgIjAuMTA0MjgzLCAwLjE1NDY4NSwgMC40NDEwNiwgMC42OTM3MDMsIDEuMDMwNjksIDEuNzA0NzMsIDIuMTI2NTQiLCBcCi0gICAgICAgICAgIjAuMTA0Mzk5LCAwLjE1NDgyMywgMC40NDExNzYsIDAuNjkzNzEzLCAxLjAzMTA0LCAxLjcwNTIsIDIuMTI2MDgiLCBcCi0gICAgICAgICAgIjAuMTA0NzI4LCAwLjE1NDg4NywgMC40NDEzMzIsIDAuNjk0MDk3LCAxLjAzMTIsIDEuNzA1MzgsIDIuMTI2NTYiLCBcCi0gICAgICAgICAgIjAuMTA1MDQ3LCAwLjE1NTA2MSwgMC40NDEwODcsIDAuNjkzOTE2LCAxLjAzMTA1LCAxLjcwNDY3LCAyLjEyNjQ3IiwgXAotICAgICAgICAgICIwLjEwNTczOCwgMC4xNTU0MTQsIDAuNDQxMTY2LCAwLjY5MzkwMywgMS4wMzA3MywgMS43MDUyNCwgMi4xMjY3NSIsIFwKLSAgICAgICAgICAiMC4xMDY0NDMsIDAuMTU1Nzk0LCAwLjQ0MTIxMiwgMC42OTM4ODcsIDEuMDMxMDIsIDEuNzA0NywgMi4xMjYwOCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMDMwMjgsIDAuMjkwNTI5LCAwLjc4NTg5NywgMS4yMjMzNSwgMS44MDcxOSwgMi45NzE5LCAzLjY5OTQyIiwgXAotICAgICAgICAgICIwLjIxMjc1MSwgMC4zMDAyOTUsIDAuNzk1ODcyLCAxLjIzMzU1LCAxLjgxNjMsIDIuOTgxMzQsIDMuNzA5MzUiLCBcCi0gICAgICAgICAgIjAuMjIzMDU4LCAwLjMxMDYyNSwgMC44MDY0NjgsIDEuMjQ0MSwgMS44MjY2OCwgMi45OTIyMywgMy43MTk3MSIsIFwKLSAgICAgICAgICAiMC4yMzEzMTIsIDAuMzE5MDE3LCAwLjgxNDgyMSwgMS4yNTIyNSwgMS44MzYwNywgMi45OTk5OCwgMy43MjgiLCBcCi0gICAgICAgICAgIjAuMjM4MDQ3LCAwLjMyNTYzMSwgMC44MjE3MjgsIDEuMjU4OTQsIDEuODQyODEsIDMuMDA2ODYsIDMuNzM0OTMiLCBcCi0gICAgICAgICAgIjAuMjQ3MTksIDAuMzM0ODE1LCAwLjgzMDU2OSwgMS4yNjg1NCwgMS44NTA1NSwgMy4wMTU5NiwgMy43NDQwNSIsIFwKLSAgICAgICAgICAiMC4yNTM4NjIsIDAuMzQxNTI4LCAwLjgzNzE1OSwgMS4yNzQ1LCAxLjg1Nzg0LCAzLjAyMjg2LCAzLjc1MDk2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMzNDg5MywgMC41MDQzMywgMS40NjYzNywgMi4zMTgxOCwgMy40NTM4OSwgNS43MTIyOSwgNy4xMjIyMiIsIFwKLSAgICAgICAgICAiMC4zMzQ4ODQsIDAuNTA0MzQyLCAxLjQ2NjM5LCAyLjMxMjgxLCAzLjQ1MjE5LCA1LjcwOTg3LCA3LjEyMDM4IiwgXAotICAgICAgICAgICIwLjMzNDYxMiwgMC41MDQ4MTgsIDEuNDY4NTIsIDIuMzE5MzcsIDMuNDUxODUsIDUuNzEyMjQsIDcuMTIyMzIiLCBcCi0gICAgICAgICAgIjAuMzM0NTMyLCAwLjUwNTEzNCwgMS40Njg0OSwgMi4zMTg4MSwgMy40NDM5NywgNS43MTAxLCA3LjEyMjI1IiwgXAotICAgICAgICAgICIwLjMzNDM3NywgMC41MDQ0MDUsIDEuNDY4ODcsIDIuMzE4NTcsIDMuNDQ0MDgsIDUuNzEwMDksIDcuMTE5ODkiLCBcCi0gICAgICAgICAgIjAuMzM1MTQyLCAwLjUwNDM1MiwgMS40NjY1MiwgMi4zMTk1LCAzLjQ0NzQxLCA1LjcxMTEsIDcuMTIyMjgiLCBcCi0gICAgICAgICAgIjAuMzM0NjgzLCAwLjUwNDM4MywgMS40NjkwNywgMi4zMTU1MSwgMy40NDY3NSwgNS43MTAxNiwgNy4xMjAyNyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTQxNjUsIDAuMDc4ODI1LCAwLjIxODIzNSwgMC4zNDExMDIsIDAuNTA0ODc1LCAwLjgzMjE1NywgMS4wMzc0IiwgXAotICAgICAgICAgICIwLjA2NDAzNSwgMC4wODg3MTMsIDAuMjI4MDE0LCAwLjM1MDkwOSwgMC41MTQ2LCAwLjg0MjI2NywgMS4wNDY1OSIsIFwKLSAgICAgICAgICAiMC4wNzY4MzQsIDAuMTAxNDk0LCAwLjI0MDgzNiwgMC4zNjM0MTcsIDAuNTI3MzUzLCAwLjg1NDkyOSwgMS4wNTk2IiwgXAotICAgICAgICAgICIwLjA4OTIzMSwgMC4xMTM0NzcsIDAuMjUyODY4LCAwLjM3NTY0NCwgMC41MzkzLCAwLjg2NTExMiwgMS4wNjk5NCIsIFwKLSAgICAgICAgICAiMC4xMDE5NjksIDAuMTI2NDE1LCAwLjI2NTM1MSwgMC4zODc5NjgsIDAuNTUxNzIxLCAwLjg3ODg2MSwgMS4wODE0NyIsIFwKLSAgICAgICAgICAiMC4xMjA4MTUsIDAuMTQ2NzM0LCAwLjI4NTExOCwgMC40MDgyMTUsIDAuNTcxNTUxLCAwLjg5OTI2OSwgMS4xMDEiLCBcCi0gICAgICAgICAgIjAuMTM1MTY5LCAwLjE2NDA2MywgMC4zMDI2NDYsIDAuNDI1NzksIDAuNTg5MjcsIDAuOTE2NTYxLCAxLjEyMTE0Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwMTkxNywgMC4xNTIzOCwgMC40Mzg5NiwgMC42OTE4MjcsIDEuMDI4NjMsIDEuNzAyOSwgMi4xMjQ2MiIsIFwKLSAgICAgICAgICAiMC4xMDE5NjEsIDAuMTUyMzkyLCAwLjQzODc3NSwgMC42OTE4MTcsIDEuMDI4OTIsIDEuNzAyODksIDIuMTI0MjEiLCBcCi0gICAgICAgICAgIjAuMTA1MjU4LCAwLjE1Mzc2NywgMC40Mzg5ODIsIDAuNjkxNTY2LCAxLjAyODkyLCAxLjcwMzA3LCAyLjEyNDQzIiwgXAotICAgICAgICAgICIwLjExMTUwMywgMC4xNTgyODMsIDAuNDM4OTQ4LCAwLjY5MTY2NSwgMS4wMjg0NiwgMS43MDMwOCwgMi4xMjQzNyIsIFwKLSAgICAgICAgICAiMC4xMTg5MjMsIDAuMTY0MDI4LCAwLjQzOTUzNSwgMC42OTE0ODEsIDEuMDI4NDcsIDEuNzAzMDgsIDIuMTIzNjYiLCBcCi0gICAgICAgICAgIjAuMTMyNDQsIDAuMTc1MzI0LCAwLjQ0MzEzMywgMC42OTE3MTYsIDEuMDI4NSwgMS43MDI4LCAyLjEyNDI1IiwgXAotICAgICAgICAgICIwLjE0NTU1NywgMC4xODY4NDEsIDAuNDQ4NjQ2LCAwLjY5MzQ0NSwgMS4wMjg2MywgMS43MDMwNywgMi4xMjQ3MyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xODU2MjEsIDAuMjczMDk0LCAwLjc2ODYwOSwgMS4yMDU4NiwgMS43ODk3LCAyLjk1NDM1LCAzLjY4MTg2IiwgXAotICAgICAgICAgICIwLjE5MzY2NywgMC4yODEyNDgsIDAuNzc2OTEyLCAxLjIxNCwgMS43OTcwNywgMi45NjI2MywgMy42OTA1MyIsIFwKLSAgICAgICAgICAiMC4yMDI3MTEsIDAuMjkwNDU5LCAwLjc4NjQwMywgMS4yMjM2MywgMS44MDY2NiwgMi45NzIwOCwgMy43MDAwMSIsIFwKLSAgICAgICAgICAiMC4yMTE1NjIsIDAuMjk5MzA4LCAwLjc5NTYzMiwgMS4yMzI5NSwgMS44MTY4NywgMi45ODE0NiwgMy43MDg5OCIsIFwKLSAgICAgICAgICAiMC4yMjAzNzIsIDAuMzA4MjQ2LCAwLjgwNDI4MSwgMS4yNDIxMSwgMS44MjQ3OCwgMi45OTA3OSwgMy43MTgwMiIsIFwKLSAgICAgICAgICAiMC4yMzQ2MjIsIDAuMzIyNTA0LCAwLjgxODc0NiwgMS4yNTYxNiwgMS44Mzk0OSwgMy4wMDUzNSwgMy43MzI4IiwgXAotICAgICAgICAgICIwLjI0NzU1NSwgMC4zMzQ4NzcsIDAuODMxNTYxLCAxLjI2OTE2LCAxLjg1MjY0LCAzLjAxODEyLCAzLjc0NTY1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMzNDQwMSwgMC41MDQ0MTEsIDEuNDY1MjgsIDIuMzE4MiwgMy40NTM5MiwgNS43MDM0MiwgNy4xMjIyNiIsIFwKLSAgICAgICAgICAiMC4zMzUxOTEsIDAuNTA1MjY4LCAxLjQ2NjI3LCAyLjMxNTE1LCAzLjQ1MDc3LCA1LjcwMzUyLCA3LjEyMjQyIiwgXAotICAgICAgICAgICIwLjMzNDU4MiwgMC41MDQ5NzcsIDEuNDY2NTUsIDIuMzE0MTEsIDMuNDUxMzEsIDUuNzA2ODYsIDcuMTIwNDkiLCBcCi0gICAgICAgICAgIjAuMzM1MjYsIDAuNTA0MzgzLCAxLjQ2ODgyLCAyLjMxODU5LCAzLjQ0NDA3LCA1LjcxMTk0LCA3LjEyMjE5IiwgXAotICAgICAgICAgICIwLjMzNjI0OCwgMC41MDM5NDgsIDEuNDY2NTIsIDIuMzE5MTEsIDMuNDUxMTcsIDUuNzEyMjEsIDcuMTIyMjUiLCBcCi0gICAgICAgICAgIjAuMzM4NTYzLCAwLjUwNjYyNCwgMS40NjY1MSwgMi4zMTc4MiwgMy40NTE5LCA1LjcxMjE1LCA3LjEyMjQzIiwgXAotICAgICAgICAgICIwLjM0MjQxNiwgMC41MDc0MTIsIDEuNDY4MDcsIDIuMzE0MTUsIDMuNDUzMTMsIDUuNzAzOTYsIDcuMTIyNDgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDUyNzk2LCAwLjA3NzM3NiwgMC4yMTY3MTMsIDAuMzM5NDksIDAuNTAzMjQ4LCAwLjgzMDU1NiwgMS4wMzU2NiIsIFwKLSAgICAgICAgICAiMC4wNjI2NywgMC4wODcyODQsIDAuMjI2NDU5LCAwLjM0OTM0NywgMC41MTI5OTUsIDAuODQwNTc4LCAxLjA0NDg3IiwgXAotICAgICAgICAgICIwLjA3NTQ3NywgMC4xMDAwNzcsIDAuMjM5MzQzLCAwLjM2MjEzOSwgMC41MjU3MjksIDAuODUzMjcsIDEuMDU4MTEiLCBcCi0gICAgICAgICAgIjAuMDg3ODk0LCAwLjExMjA3LCAwLjI1MTMyOSwgMC4zNzQwNTcsIDAuNTM3NzQ0LCAwLjg2MzQ3NywgMS4wNjgzNSIsIFwKLSAgICAgICAgICAiMC4xMDA1NDcsIDAuMTI0OTk1LCAwLjI2MzgxMiwgMC4zODY1NDksIDAuNTUwMTczLCAwLjg3NzIyNSwgMS4wNzk5IiwgXAotICAgICAgICAgICIwLjExOTIxNCwgMC4xNDU0NzEsIDAuMjgzNTg1LCAwLjQwNjY1MSwgMC41Njk5NzgsIDAuODk3NTU4LCAxLjA5OTM5IiwgXAotICAgICAgICAgICIwLjEzMzMwOCwgMC4xNjI1NDQsIDAuMzAxMSwgMC40MjQxNzcsIDAuNTg3NTI2LCAwLjkxNDkzLCAxLjExNjk0Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwMDExMSwgMC4xNTA2MzMsIDAuNDM3MjQyLCAwLjY5MDE5LCAxLjAyNzMsIDEuNzAwOTIsIDIuMTIzMDUiLCBcCi0gICAgICAgICAgIjAuMTAwMjQ4LCAwLjE1MDYzMSwgMC40MzcwNDcsIDAuNjkwMTcxLCAxLjAyNjkxLCAxLjcwMTI3LCAyLjEyMjI4IiwgXAotICAgICAgICAgICIwLjEwMzY4NiwgMC4xNTIwNiwgMC40MzcxNjIsIDAuNjkwMDEyLCAxLjAyNjg4LCAxLjcwMTI1LCAyLjEyMTk1IiwgXAotICAgICAgICAgICIwLjExMDA0NiwgMC4xNTY3MzUsIDAuNDM3MTc1LCAwLjY4OTk2NSwgMS4wMjY4OCwgMS43MDEwNywgMi4xMjIxMSIsIFwKLSAgICAgICAgICAiMC4xMTc1MzcsIDAuMTYyNDg0LCAwLjQzNzY3MywgMC42ODk5ODEsIDEuMDI2ODQsIDEuNzAxNTQsIDIuMTIxNSIsIFwKLSAgICAgICAgICAiMC4xMzEzMzMsIDAuMTc0MDY4LCAwLjQ0MTU1NywgMC42OTAxNDYsIDEuMDI2OTEsIDEuNzAxMTYsIDIuMTIyMTciLCBcCi0gICAgICAgICAgIjAuMTQ0NTY1LCAwLjE4NTU1NywgMC40NDY5ODksIDAuNjkxNzY2LCAxLjAyNzAzLCAxLjcwMTIxLCAyLjEyMjQ3Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE4MTI5NywgMC4yNjg4MjEsIDAuNzY0NjI2LCAxLjIwMTM5LCAxLjc4NDQ1LCAyLjk1MDA0LCAzLjY3Nzg0IiwgXAotICAgICAgICAgICIwLjE4OTU1MiwgMC4yNzcxNzMsIDAuNzcyODA5LCAxLjIwOTksIDEuNzkzMDIsIDIuOTU4NzYsIDMuNjg2MjciLCBcCi0gICAgICAgICAgIjAuMTk5NTMsIDAuMjg3MjA5LCAwLjc4MzI0MywgMS4yMjA0LCAxLjgwMzQ5LCAyLjk2ODg4LCAzLjY5NjgzIiwgXAotICAgICAgICAgICIwLjIwOTY3NywgMC4yOTc0NjUsIDAuNzkzNDM0LCAxLjIzMDkxLCAxLjgxNDU5LCAyLjk3OTA3LCAzLjcwNzE1IiwgXAotICAgICAgICAgICIwLjIyMDAwOSwgMC4zMDc3NzUsIDAuODAzNjk5LCAxLjI0MTQ3LCAxLjgyNDQ4LCAyLjk5MDE2LCAzLjcxNzM5IiwgXAotICAgICAgICAgICIwLjIzNjI1OSwgMC4zMjQwNDYsIDAuODIwNTgyLCAxLjI1OCwgMS44NDE2OSwgMy4wMDY3MiwgMy43MzQ1NSIsIFwKLSAgICAgICAgICAiMC4yNTA5OTQsIDAuMzM4NjI3LCAwLjgzNDg3NSwgMS4yNzIyNiwgMS44NTU2MiwgMy4wMjA5MSwgMy43NDkwNCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMzQ5MTUsIDAuNTA1LCAxLjQ2ODg3LCAyLjMxNTU1LCAzLjQ1MTMzLCA1LjcwNTMzLCA3LjEyMDcxIiwgXAotICAgICAgICAgICIwLjMzNDI1OCwgMC41MDUyMzIsIDEuNDY4MTQsIDIuMzE0NzcsIDMuNDUxMzEsIDUuNzAzOTEsIDcuMTIyNCIsIFwKLSAgICAgICAgICAiMC4zMzQ1OTQsIDAuNTA0MjkzLCAxLjQ2NjYsIDIuMzE1NTEsIDMuNDUxMjgsIDUuNzA3OTgsIDcuMTIwNTUiLCBcCi0gICAgICAgICAgIjAuMzM1MzE1LCAwLjUwNDM4MywgMS40NjY0MiwgMi4zMTUyMywgMy40NTMyOSwgNS43MTE0MSwgNy4xMjIyOSIsIFwKLSAgICAgICAgICAiMC4zMzU5MzEsIDAuNTAzOTYsIDEuNDY2NDgsIDIuMzE4OTgsIDMuNDUyMiwgNS43MTIxMSwgNy4xMjIxNiIsIFwKLSAgICAgICAgICAiMC4zNDAyNDYsIDAuNTA2Nzk4LCAxLjQ2OTYxLCAyLjMxODE5LCAzLjQ1Mjk5LCA1LjcwNzE5LCA3LjEyMjQ1IiwgXAotICAgICAgICAgICIwLjM0NTM3MiwgMC41MDkxNzQsIDEuNDY2NDcsIDIuMzE2MTUsIDMuNDQ3MDQsIDUuNzEwMjIsIDcuMTE5OTMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiRCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDUxMjA3LCAwLjA3NTc1OCwgMC4yMTQ5MDIsIDAuMzM3OTU2LCAwLjUwMTU3NCwgMC44MjkwNTIsIDEuMDMzNTEiLCBcCi0gICAgICAgICAgIjAuMDYxMTM1LCAwLjA4NTc1MSwgMC4yMjQ4MzksIDAuMzQ3Njc1LCAwLjUxMTIzNCwgMC44Mzg4NjMsIDEuMDQzNjUiLCBcCi0gICAgICAgICAgIjAuMDczNTM0LCAwLjA5ODEwMiwgMC4yMzcyNDIsIDAuMzU5Nzk2LCAwLjUyMjYwOSwgMC44NTAxOTcsIDEuMDU0ODEiLCBcCi0gICAgICAgICAgIjAuMDg2NDQxLCAwLjExMDU4NSwgMC4yNDk3MzksIDAuMzcyNDg3LCAwLjUzNjE1OSwgMC44NjE4ODksIDEuMDY3MDIiLCBcCi0gICAgICAgICAgIjAuMDk5MTk0LCAwLjEyMzYyMSwgMC4yNjIzNzEsIDAuMzg1MDMsIDAuNTQ4NjU2LCAwLjg3NDg3OCwgMS4wNzg3MyIsIFwKLSAgICAgICAgICAiMC4xMTc1MzYsIDAuMTQ0MTQ0LCAwLjI4MjI1MywgMC40MDU0MzUsIDAuNTY4NjIyLCAwLjg5NDE0OSwgMS4wOTg4MyIsIFwKLSAgICAgICAgICAiMC4xMzExMzcsIDAuMTYxMTMsIDAuMjk5NzYsIDAuNDIyOTc1LCAwLjU4NjI5NCwgMC45MTE0MywgMS4xMTU4Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5ODUyOSwgMC4xNDkxNywgMC40MzYxMDUsIDAuNjg4NTI1LCAxLjAyNTUsIDEuNjk5NTgsIDIuMTIwODQiLCBcCi0gICAgICAgICAgIjAuMDk4NjA1LCAwLjE0ODg5NCwgMC40MzYwNzEsIDAuNjg4NzQxLCAxLjAyNTExLCAxLjY5OTQ4LCAyLjEyMjMyIiwgXAotICAgICAgICAgICIwLjEwMjU2OSwgMC4xNTA4NTQsIDAuNDM1MzQ0LCAwLjY4ODk2MywgMS4wMjUwNywgMS43MDA5LCAyLjEyMDgzIiwgXAotICAgICAgICAgICIwLjEwODUzNywgMC4xNTUyOTUsIDAuNDM2MTk5LCAwLjY4ODcwNywgMS4wMjUzOSwgMS42OTkxMiwgMi4xMjA4OCIsIFwKLSAgICAgICAgICAiMC4xMTYwNjUsIDAuMTYwODU1LCAwLjQzNjc3MSwgMC42ODg2MiwgMS4wMjUzNiwgMS43MDAxNiwgMi4xMjAzOCIsIFwKLSAgICAgICAgICAiMC4xMjk2MzIsIDAuMTcyNDMyLCAwLjQzOTY3MSwgMC42ODgyNjUsIDEuMDI1MSwgMS43MDE5LCAyLjEyNDA4IiwgXAotICAgICAgICAgICIwLjE0MzgzMywgMC4xODM2NywgMC40NDYwOTcsIDAuNjg5OTI4LCAxLjAyNjYzLCAxLjcwMTg2LCAyLjEyNDk1Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE3NDc1OCwgMC4yNjIyMjIsIDAuNzU3OTg5LCAxLjE5NTA1LCAxLjc3ODg0LCAyLjk0MzE3LCAzLjY3MTIxIiwgXAotICAgICAgICAgICIwLjE4Mjc1OSwgMC4yNzAzMTYsIDAuNzY1OTY3LCAxLjIwMzExLCAxLjc4NTk3LCAyLjk1MTIyLCAzLjY3OTY0IiwgXAotICAgICAgICAgICIwLjE5Mjk4MywgMC4yODA3NTQsIDAuNzc2ODMzLCAxLjIxNDQsIDEuNzk3MzEsIDIuOTYyMzUsIDMuNjkwMTIiLCBcCi0gICAgICAgICAgIjAuMjAzMDUyLCAwLjI5MDgzMiwgMC43ODczMzEsIDEuMjI0NjksIDEuODA3NDYsIDIuOTcyNjksIDMuNzAwMzIiLCBcCi0gICAgICAgICAgIjAuMjEzNDk0LCAwLjMwMTA2OSwgMC43OTcyOTYsIDEuMjM0NywgMS44MTc5NywgMi45ODMwMiwgMy43MTA5OCIsIFwKLSAgICAgICAgICAiMC4yMzAyMjksIDAuMzE3ODAxLCAwLjgxMzc3NCwgMS4yNTA3OSwgMS44MzQ0NywgMi45OTk2MywgMy43Mjc1NyIsIFwKLSAgICAgICAgICAiMC4yNDUzMzEsIDAuMzMyMzgsIDAuODI4Mjc0LCAxLjI2NTYyLCAxLjg0ODUzLCAzLjAxNDA3LCAzLjc0MjIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzM0OTAyLCAwLjUwNDM5NiwgMS40Njg1NiwgMi4zMTgxMywgMy40NTM2OSwgNS43MTAxNywgNy4xMjAwNCIsIFwKLSAgICAgICAgICAiMC4zMzQzMDUsIDAuNTA0MjY3LCAxLjQ2NjczLCAyLjMxNTU5LCAzLjQ0NzM3LCA1LjcxMTQ3LCA3LjEyMjM5IiwgXAotICAgICAgICAgICIwLjMzNDQ1NywgMC41MDUwMjgsIDEuNDY4NTcsIDIuMzE5MjMsIDMuNDQ0NzMsIDUuNzExOTMsIDcuMTIyMjgiLCBcCi0gICAgICAgICAgIjAuMzM0NTMxLCAwLjUwNTAwNCwgMS40NjUwMSwgMi4zMTk0NiwgMy40NDUxMywgNS43MDQ0OSwgNy4xMjIxOCIsIFwKLSAgICAgICAgICAiMC4zMzY4MDQsIDAuNTA1MjE1LCAxLjQ2NTU5LCAyLjMxODM1LCAzLjQ1Mjc2LCA1LjcwNzc3LCA3LjEyMDQ0IiwgXAotICAgICAgICAgICIwLjM0MjgyNSwgMC41MDc1NTksIDEuNDY4MDYsIDIuMzE5NTEsIDMuNDUxOTMsIDUuNzExNjQsIDcuMTIyMzciLCBcCi0gICAgICAgICAgIjAuMzQ5MjY1LCAwLjUxMDE5MiwgMS40NjY0NiwgMi4zMTc1MSwgMy40NDcxOSwgNS43MTAxLCA3LjEyMDIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzMTczLCAwLjAwMzE3MywgMC4wMDMxNzMsIDAuMDAzMTcyLCAwLjAwMzE3MiwgMC4wMDMxNzIsIDAuMDAzMTcxIiwgXAotICAgICAgICAgICIwLjAwMzE0MywgMC4wMDMxNDQsIDAuMDAzMTQ0LCAwLjAwMzE0NCwgMC4wMDMxNDUsIDAuMDAzMTQzLCAwLjAwMzE0MyIsIFwKLSAgICAgICAgICAiMC4wMDMxNDQsIDAuMDAzMTQ0LCAwLjAwMzE0NiwgMC4wMDMxNDYsIDAuMDAzMTQ1LCAwLjAwMzE0NiwgMC4wMDMxNDUiLCBcCi0gICAgICAgICAgIjAuMDAzMTQ2LCAwLjAwMzE0NywgMC4wMDMxNDksIDAuMDAzMTQ5LCAwLjAwMzE0OSwgMC4wMDMxNDksIDAuMDAzMTQ4IiwgXAotICAgICAgICAgICIwLjAwMzE1OCwgMC4wMDMxNTksIDAuMDAzMTYxLCAwLjAwMzE2MSwgMC4wMDMxNjEsIDAuMDAzMTYsIDAuMDAzMTYiLCBcCi0gICAgICAgICAgIjAuMDAzMTgyLCAwLjAwMzE4NCwgMC4wMDMxODUsIDAuMDAzMTg2LCAwLjAwMzE4NiwgMC4wMDMxODUsIDAuMDAzMTg1IiwgXAotICAgICAgICAgICIwLjAwMzIwNSwgMC4wMDMyMDYsIDAuMDAzMjAyLCAwLjAwMzIwOSwgMC4wMDMyMDIsIDAuMDAzMjA4LCAwLjAwMzIwOCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjY5NSwgMC4wMDI2OTcsIDAuMDAyNywgMC4wMDI3MDEsIDAuMDAyNzAxLCAwLjAwMjcwMSwgMC4wMDI3MDEiLCBcCi0gICAgICAgICAgIjAuMDAyNjcxLCAwLjAwMjY3NSwgMC4wMDI2ODEsIDAuMDAyNjgyLCAwLjAwMjY4MywgMC4wMDI2ODMsIDAuMDAyNjgzIiwgXAotICAgICAgICAgICIwLjAwMjY2OCwgMC4wMDI2NzQsIDAuMDAyNjgzLCAwLjAwMjY4NSwgMC4wMDI2ODYsIDAuMDAyNjg3LCAwLjAwMjY4NyIsIFwKLSAgICAgICAgICAiMC4wMDI2NjYsIDAuMDAyNjczLCAwLjAwMjY4NCwgMC4wMDI2ODcsIDAuMDAyNjg4LCAwLjAwMjY4OSwgMC4wMDI2OSIsIFwKLSAgICAgICAgICAiMC4wMDI2NzMsIDAuMDAyNjgyLCAwLjAwMjY5NSwgMC4wMDI2OTgsIDAuMDAyNjk5LCAwLjAwMjcwMSwgMC4wMDI3MDEiLCBcCi0gICAgICAgICAgIjAuMDAyNjkyLCAwLjAwMjcwMSwgMC4wMDI3MTYsIDAuMDAyNzE5LCAwLjAwMjcxOSwgMC4wMDI3MiwgMC4wMDI3MjEiLCBcCi0gICAgICAgICAgIjAuMDAyNzExLCAwLjAwMjcyMSwgMC4wMDI3MzYsIDAuMDAyNzQxLCAwLjAwMjc0NCwgMC4wMDI3NDQsIDAuMDAyNzQ0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyNjg1LCAwLjAwMjY4NSwgMC4wMDI2ODUsIDAuMDAyNjg1LCAwLjAwMjY4NSwgMC4wMDI2ODQsIDAuMDAyNjg0IiwgXAotICAgICAgICAgICIwLjAwMjY3MSwgMC4wMDI2NzMsIDAuMDAyNjc2LCAwLjAwMjY3NywgMC4wMDI2NzYsIDAuMDAyNjc2LCAwLjAwMjY3NiIsIFwKLSAgICAgICAgICAiMC4wMDI2NjcsIDAuMDAyNjcsIDAuMDAyNjc1LCAwLjAwMjY3NiwgMC4wMDI2NzQsIDAuMDAyNjc1LCAwLjAwMjY3NSIsIFwKLSAgICAgICAgICAiMC4wMDI2NjgsIDAuMDAyNjY5LCAwLjAwMjY3NCwgMC4wMDI2NzUsIDAuMDAyNjc1LCAwLjAwMjY3MywgMC4wMDI2NzQiLCBcCi0gICAgICAgICAgIjAuMDAyNjcxLCAwLjAwMjY3MiwgMC4wMDI2NzUsIDAuMDAyNjc1LCAwLjAwMjY3NiwgMC4wMDI2NzUsIDAuMDAyNjc0IiwgXAotICAgICAgICAgICIwLjAwMjY4LCAwLjAwMjY3OSwgMC4wMDI2NzYsIDAuMDAyNjc3LCAwLjAwMjY3NywgMC4wMDI2NzYsIDAuMDAyNjc1IiwgXAotICAgICAgICAgICIwLjAwMjY5LCAwLjAwMjY4OCwgMC4wMDI2OCwgMC4wMDI2NzksIDAuMDAyNjc3LCAwLjAwMjY3NywgMC4wMDI2NzYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDA3OSwgMC4wMDA3OTIsIDAuMDAwNzk1LCAwLjAwMDc5NiwgMC4wMDA3OTYsIDAuMDAwNzk1LCAwLjAwMDc5NiIsIFwKLSAgICAgICAgICAiMC4wMDA3NjksIDAuMDAwNzc3LCAwLjAwMDc4OSwgMC4wMDA3OTIsIDAuMDAwNzk0LCAwLjAwMDc5NSwgMC4wMDA3OTUiLCBcCi0gICAgICAgICAgIjAuMDAwNzQ5LCAwLjAwMDc2MSwgMC4wMDA3ODMsIDAuMDAwNzg4LCAwLjAwMDc5LCAwLjAwMDc5MywgMC4wMDA3OTQiLCBcCi0gICAgICAgICAgIjAuMDAwNzM1LCAwLjAwMDc0OSwgMC4wMDA3NzcsIDAuMDAwNzgzLCAwLjAwMDc4OCwgMC4wMDA3OTEsIDAuMDAwNzkyIiwgXAotICAgICAgICAgICIwLjAwMDcyNSwgMC4wMDA3NCwgMC4wMDA3NzEsIDAuMDAwNzc5LCAwLjAwMDc4NSwgMC4wMDA3ODksIDAuMDAwNzkxIiwgXAotICAgICAgICAgICIwLjAwMDcxMywgMC4wMDA3MjcsIDAuMDAwNzYzLCAwLjAwMDc3MywgMC4wMDA3OCwgMC4wMDA3ODYsIDAuMDAwNzg4IiwgXAotICAgICAgICAgICIwLjAwMDcwOCwgMC4wMDA3MjEsIDAuMDAwNzU3LCAwLjAwMDc2OSwgMC4wMDA3NzcsIDAuMDAwNzg0LCAwLjAwMDc4NiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjI4MywgMC4wMDIyODMsIDAuMDAyMjg1LCAwLjAwMjI4NCwgMC4wMDIyODQsIDAuMDAyMjg0LCAwLjAwMjI4NCIsIFwKLSAgICAgICAgICAiMC4wMDIyOCwgMC4wMDIyODQsIDAuMDAyMjg5LCAwLjAwMjI5LCAwLjAwMjI5MSwgMC4wMDIyOTEsIDAuMDAyMjkxIiwgXAotICAgICAgICAgICIwLjAwMjI3NSwgMC4wMDIyOCwgMC4wMDIyODgsIDAuMDAyMjkyLCAwLjAwMjI5MSwgMC4wMDIyOTIsIDAuMDAyMjkxIiwgXAotICAgICAgICAgICIwLjAwMjI3NSwgMC4wMDIyNzksIDAuMDAyMjg4LCAwLjAwMjI5LCAwLjAwMjI5MSwgMC4wMDIyOTIsIDAuMDAyMjkyIiwgXAotICAgICAgICAgICIwLjAwMjI3NSwgMC4wMDIyODEsIDAuMDAyMjg4LCAwLjAwMjI5LCAwLjAwMjI5MSwgMC4wMDIyOTIsIDAuMDAyMjkyIiwgXAotICAgICAgICAgICIwLjAwMjI4NCwgMC4wMDIyODYsIDAuMDAyMjg5LCAwLjAwMjI5MSwgMC4wMDIyOTIsIDAuMDAyMjkyLCAwLjAwMjI5MyIsIFwKLSAgICAgICAgICAiMC4wMDIyOTUsIDAuMDAyMjkzLCAwLjAwMjI5MiwgMC4wMDIyOTMsIDAuMDAyMjkzLCAwLjAwMjI5MywgMC4wMDIyOTIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDA3OSwgMC4wMDA3OTIsIDAuMDAwNzk1LCAwLjAwMDc5NiwgMC4wMDA3OTYsIDAuMDAwNzk2LCAwLjAwMDc5NiIsIFwKLSAgICAgICAgICAiMC4wMDA3NjksIDAuMDAwNzc3LCAwLjAwMDc4OSwgMC4wMDA3OTIsIDAuMDAwNzk0LCAwLjAwMDc5NSwgMC4wMDA3OTUiLCBcCi0gICAgICAgICAgIjAuMDAwNzQ5LCAwLjAwMDc2MiwgMC4wMDA3ODMsIDAuMDAwNzg4LCAwLjAwMDc5MSwgMC4wMDA3OTMsIDAuMDAwNzk0IiwgXAotICAgICAgICAgICIwLjAwMDczNSwgMC4wMDA3NSwgMC4wMDA3NzcsIDAuMDAwNzg0LCAwLjAwMDc4OCwgMC4wMDA3OTEsIDAuMDAwNzkyIiwgXAotICAgICAgICAgICIwLjAwMDcyNiwgMC4wMDA3NCwgMC4wMDA3NzEsIDAuMDAwNzgsIDAuMDAwNzg1LCAwLjAwMDc4OSwgMC4wMDA3OTEiLCBcCi0gICAgICAgICAgIjAuMDAwNzE2LCAwLjAwMDczLCAwLjAwMDc2MywgMC4wMDA3NzQsIDAuMDAwNzgxLCAwLjAwMDc4NywgMC4wMDA3ODkiLCBcCi0gICAgICAgICAgIjAuMDAwNzE0LCAwLjAwMDcyNSwgMC4wMDA3NTgsIDAuMDAwNzcsIDAuMDAwNzc3LCAwLjAwMDc4NSwgMC4wMDA3ODciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJEIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDE4NzMsIDAuMDAxODc0LCAwLjAwMTg3NiwgMC4wMDE4NzYsIDAuMDAxODc2LCAwLjAwMTg3NiwgMC4wMDE4NzciLCBcCi0gICAgICAgICAgIjAuMDAxODczLCAwLjAwMTg3OSwgMC4wMDE4ODcsIDAuMDAxODg5LCAwLjAwMTg4OSwgMC4wMDE4OTEsIDAuMDAxODkxIiwgXAotICAgICAgICAgICIwLjAwMTg2NiwgMC4wMDE4NzYsIDAuMDAxODg3LCAwLjAwMTg5MSwgMC4wMDE4OTMsIDAuMDAxODk0LCAwLjAwMTg5NSIsIFwKLSAgICAgICAgICAiMC4wMDE4NjIsIDAuMDAxODcsIDAuMDAxODg0LCAwLjAwMTg4OSwgMC4wMDE4OTEsIDAuMDAxODk1LCAwLjAwMTg5NiIsIFwKLSAgICAgICAgICAiMC4wMDE4NiwgMC4wMDE4NywgMC4wMDE4ODQsIDAuMDAxODg5LCAwLjAwMTg5LCAwLjAwMTg5NCwgMC4wMDE4OTUiLCBcCi0gICAgICAgICAgIjAuMDAxODYyLCAwLjAwMTg2OSwgMC4wMDE4ODMsIDAuMDAxODg4LCAwLjAwMTg5LCAwLjAwMTg5NCwgMC4wMDE4OTQiLCBcCi0gICAgICAgICAgIjAuMDAxODcsIDAuMDAxODc0LCAwLjAwMTg4NCwgMC4wMDE4ODksIDAuMDAxODksIDAuMDAxODk0LCAwLjAwMTg5NCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDc4OSwgMC4wMDA3OTEsIDAuMDAwNzk1LCAwLjAwMDc5NSwgMC4wMDA3OTYsIDAuMDAwNzk2LCAwLjAwMDc5NiIsIFwKLSAgICAgICAgICAiMC4wMDA3NjQsIDAuMDAwNzc0LCAwLjAwMDc4OCwgMC4wMDA3OTEsIDAuMDAwNzkzLCAwLjAwMDc5NSwgMC4wMDA3OTUiLCBcCi0gICAgICAgICAgIjAuMDAwNzQ1LCAwLjAwMDc1OSwgMC4wMDA3ODEsIDAuMDAwNzg3LCAwLjAwMDc5LCAwLjAwMDc5MywgMC4wMDA3OTMiLCBcCi0gICAgICAgICAgIjAuMDAwNzM1LCAwLjAwMDc0OSwgMC4wMDA3NzYsIDAuMDAwNzgzLCAwLjAwMDc4NywgMC4wMDA3OTEsIDAuMDAwNzkyIiwgXAotICAgICAgICAgICIwLjAwMDczMiwgMC4wMDA3NDMsIDAuMDAwNzcxLCAwLjAwMDc4LCAwLjAwMDc4NSwgMC4wMDA3ODksIDAuMDAwNzkxIiwgXAotICAgICAgICAgICIwLjAwMDczNSwgMC4wMDA3NDIsIDAuMDAwNzY3LCAwLjAwMDc3NiwgMC4wMDA3ODIsIDAuMDAwNzg3LCAwLjAwMDc4OSIsIFwKLSAgICAgICAgICAiMC4wMDA3NDQsIDAuMDAwNzQ1LCAwLjAwMDc2NSwgMC4wMDA3NzQsIDAuMDAwNzgsIDAuMDAwNzg2LCAwLjAwMDc4OCIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogT0EyMVg0ICoKLSAqIC0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoT0EyMVg0KSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMjU0Mzg1OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwODg3NjgxOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDg4NTIyMzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA4ODc2ODE7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNDA5LCAwLjAwMDQwOSwgMC4wMDA0MDksIDAuMDAwNDA5LCAwLjAwMDQwOSwgMC4wMDA0MDgsIDAuMDAwNDA5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNDEsIDAuMDAwNDEsIDAuMDAwNDEsIDAuMDAwNDEsIDAuMDAwNDEsIDAuMDAwNDEsIDAuMDAwNDEiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEExKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA5Mzc1MzY7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwOTM3NTM2OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDkzNDg0OTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA0MDksIDAuMDAwNDA5LCAwLjAwMDQwOSwgMC4wMDA0MDksIDAuMDAwNDA5LCAwLjAwMDQwOCwgMC4wMDA0MDkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA0MSwgMC4wMDA0MSwgMC4wMDA0MSwgMC4wMDA0MSwgMC4wMDA0MSwgMC4wMDA0MSwgMC4wMDA0MSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQjApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDkwMzgxNTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA5MDMzMDY7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwOTAzODE1OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDE2MywgMC4wMDAxNjQsIDAuMDAwMTY0LCAwLjAwMDE2MywgMC4wMDAxNjMsIDAuMDAwMTY0LCAwLjAwMDE2MyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDQ2NCwgMC4wMDA0NjQsIDAuMDAwNDY1LCAwLjAwMDQ2NSwgMC4wMDA0NjQsIDAuMDAwNDY0LCAwLjAwMDQ2NCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjk3ODk4ODsKLSAgICBmdW5jdGlvbiA6ICIoKEEwK0ExKSBCMCkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3NTA1MSwgMC4xNTE3NzIsIDAuMjIzNDcyLCAwLjI3NDU5MywgMC4zNTY0MzksIDAuNDI3OTA4LCAwLjUzMDAxMSIsIFwKLSAgICAgICAgICAiMC4wODQzNTIsIDAuMTYxMDk1LCAwLjIzMjc5MywgMC4yODM5MTQsIDAuMzY1Njk5LCAwLjQzNzI0NiwgMC41MzkzNTEiLCBcCi0gICAgICAgICAgIjAuMDk1Mzk0LCAwLjE3MjA3OCwgMC4yNDM3NTQsIDAuMjk0ODY2LCAwLjM3NjY2OSwgMC40NDgxOTcsIDAuNTUwMjkxIiwgXAotICAgICAgICAgICIwLjEwNjA0LCAwLjE4MjcxNiwgMC4yNTQ0MiwgMC4zMDU1NDYsIDAuMzg3MzQ4LCAwLjQ1ODg3NiwgMC41NjA5ODEiLCBcCi0gICAgICAgICAgIjAuMTE2MjkyLCAwLjE5MzA0MSwgMC4yNjQ3NTksIDAuMzE1ODg1LCAwLjM5NzY3OSwgMC40NjkyMTgsIDAuNTcxMzI0IiwgXAotICAgICAgICAgICIwLjEzMTU4MywgMC4yMDg1ODMsIDAuMjgwMzA5LCAwLjMzMTQyNiwgMC40MTMyMDIsIDAuNDg0NzU5LCAwLjU4Njg3IiwgXAotICAgICAgICAgICIwLjE0MzU5NSwgMC4yMjEyNTYsIDAuMjkyODQyLCAwLjM0Mzk3LCAwLjQyNTczNSwgMC40OTczMywgMC41OTk0MyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzOTkxMSwgMC4xODA1OCwgMC4zMjYyMjgsIDAuNDMxMDc0LCAwLjU5ODQ1MywgMC43NDcwNjMsIDAuOTU3NzU1IiwgXAotICAgICAgICAgICIwLjAzOTg2NywgMC4xODA1NjYsIDAuMzI2MTk3LCAwLjQzMTA1MywgMC41OTg2NzEsIDAuNzQ2OTA4LCAwLjk1Nzc1NSIsIFwKLSAgICAgICAgICAiMC4wMzk4OTMsIDAuMTgwNTYsIDAuMzI2Mjk2LCAwLjQzMTAzMiwgMC41OTg1MjUsIDAuNzQ1NzczLCAwLjk1NzcyNSIsIFwKLSAgICAgICAgICAiMC4wMzk5MTYsIDAuMTgwNTIxLCAwLjMyNjE5OCwgMC40MzEwNTgsIDAuNTk4MzY5LCAwLjc0NywgMC45NTc2OTgiLCBcCi0gICAgICAgICAgIjAuMDQwNDM0LCAwLjE4MDY4OSwgMC4zMjYyMDcsIDAuNDMxMDM2LCAwLjU5ODY2MSwgMC43NDY4ODQsIDAuOTU3NTg5IiwgXAotICAgICAgICAgICIwLjA0MTc0LCAwLjE4MTAyNCwgMC4zMjY0NjIsIDAuNDMxMTQ1LCAwLjU5OTQxLCAwLjc0Njg5OCwgMC45NTY0ODYiLCBcCi0gICAgICAgICAgIjAuMDQyNzE1LCAwLjE4MTUzNywgMC4zMjYzMzIsIDAuNDMxMiwgMC41OTk0MjMsIDAuNzQ1NjI1LCAwLjk1NzYxNCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3NzM0NCwgMC4xNTY1OTQsIDAuMjMwMjYsIDAuMjgyNzg1LCAwLjM2Njc4MiwgMC40NDAyODQsIDAuNTQ1MTMiLCBcCi0gICAgICAgICAgIjAuMDg1ODY3LCAwLjE2NTEzNywgMC4yMzg4MzYsIDAuMjkxMzYyLCAwLjM3NTM1MiwgMC40NDg4MjksIDAuNTUzNjY3IiwgXAotICAgICAgICAgICIwLjA5NTk2OCwgMC4xNzUxNjYsIDAuMjQ4OTA3LCAwLjMwMTQzNywgMC4zODU0MjEsIDAuNDU4ODc4LCAwLjU2Mzc2NiIsIFwKLSAgICAgICAgICAiMC4xMDU3NiwgMC4xODQ5NjcsIDAuMjU4NzAyLCAwLjMxMTI2MiwgMC4zOTUyNDUsIDAuNDY4NjgzLCAwLjU3MzU2NCIsIFwKLSAgICAgICAgICAiMC4xMTUxNjIsIDAuMTk0NDEzLCAwLjI2ODE2NywgMC4zMjA2OTYsIDAuNDA0NzA4LCAwLjQ3ODE4NCwgMC41ODMwNCIsIFwKLSAgICAgICAgICAiMC4xMjg5MzYsIDAuMjA4NDY3LCAwLjI4MjIyNiwgMC4zMzQ3NDksIDAuNDE4NzUsIDAuNDkyMjUxLCAwLjU5NzA5NiIsIFwKLSAgICAgICAgICAiMC4xMzk1OTksIDAuMjE5NzA0LCAwLjI5MzQ2OSwgMC4zNDYwMjUsIDAuNDMwMDAyLCAwLjUwMzQyNiwgMC42MDgzMTgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDA2MDQsIDAuMTgyNzIxLCAwLjMyOTc0MywgMC40MzU0MjMsIDAuNjA0NTI3LCAwLjc1MjQ5OSwgMC45NjY1NDEiLCBcCi0gICAgICAgICAgIjAuMDQwNTE1LCAwLjE4MjczNSwgMC4zMjk3MjEsIDAuNDM1NDQ0LCAwLjYwNTIzNywgMC43NTM4NjksIDAuOTY2NTQ4IiwgXAotICAgICAgICAgICIwLjA0MDQzNiwgMC4xODI3ODUsIDAuMzI5MzA4LCAwLjQzNDc3MSwgMC42MDUxOTgsIDAuNzU0MDAyLCAwLjk2NTAyMSIsIFwKLSAgICAgICAgICAiMC4wNDA1NjUsIDAuMTgyODA0LCAwLjMyOTMwNSwgMC40MzU2LCAwLjYwMzgyNSwgMC43NTMxMDgsIDAuOTY2NjU0IiwgXAotICAgICAgICAgICIwLjA0MDg5OCwgMC4xODI4NTMsIDAuMzI5MzIsIDAuNDM1NDU0LCAwLjYwNDUxMiwgMC43NTM4MTUsIDAuOTY2NjgiLCBcCi0gICAgICAgICAgIjAuMDQyNDUsIDAuMTgzMjcsIDAuMzI5OTcyLCAwLjQzNTU3OCwgMC42MDQ0MDIsIDAuNzUyMzUxLCAwLjk2NjU2MSIsIFwKLSAgICAgICAgICAiMC4wNDMyNjksIDAuMTgzNzAzLCAwLjMyOTc5MSwgMC40MzU4NDIsIDAuNjA1MzQ5LCAwLjc1MzU1NCwgMC45NjUwMTIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTEiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY5NDcxLCAwLjE0NTUzLCAwLjIxNzEzMiwgMC4yNjgyMTQsIDAuMzQ5OTY3LCAwLjQyMTQ3NSwgMC41MjM2NjYiLCBcCi0gICAgICAgICAgIjAuMDc4NjQ5LCAwLjE1NDgxOCwgMC4yMjY0NDUsIDAuMjc3NTY2LCAwLjM1OTM1LCAwLjQzMDc3OCwgMC41MzMxMzUiLCBcCi0gICAgICAgICAgIjAuMDg5NjEsIDAuMTY1NzQsIDAuMjM3MzUsIDAuMjg4NDcxLCAwLjM3MDIzMiwgMC40NDE3MjgsIDAuNTQzOTg3IiwgXAotICAgICAgICAgICIwLjEwMDE3MSwgMC4xNzYyNjEsIDAuMjQ3ODc5LCAwLjI5OTAwMiwgMC4zODA3NjksIDAuNDUyMjAzLCAwLjU1NDUyMiIsIFwKLSAgICAgICAgICAiMC4xMTAxOTQsIDAuMTg2NDc3LCAwLjI1ODA3NiwgMC4zMDkxNzUsIDAuMzkwOTA0LCAwLjQ2MjQ4MSwgMC41NjQ3NDciLCBcCi0gICAgICAgICAgIjAuMTI0OTcxLCAwLjIwMTYwMywgMC4yNzMxOTYsIDAuMzI0MjkzLCAwLjQwNjAyNywgMC40Nzc1MzksIDAuNTc5OTY3IiwgXAotICAgICAgICAgICIwLjEzNjQwMywgMC4yMTM3NTIsIDAuMjg1MzAyLCAwLjMzNjM5LCAwLjQxODA5NCwgMC40ODk3NjQsIDAuNTkxODMxIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM5MDcyLCAwLjE3OTg0MywgMC4zMjU2NDQsIDAuNDMwNTgyLCAwLjU5OTE3NiwgMC43NDY3NjcsIDAuOTU1NjUxIiwgXAotICAgICAgICAgICIwLjAzOTE0OCwgMC4xNzk4MTYsIDAuMzI1NjUxLCAwLjQzMDc2NiwgMC41OTc4MzIsIDAuNzQ2NzAzLCAwLjk1NTgzNSIsIFwKLSAgICAgICAgICAiMC4wMzg5NTIsIDAuMTc5Nzk1LCAwLjMyNTMwMywgMC40MzA2ODgsIDAuNTk3OTAxLCAwLjc0NTE0OSwgMC45NTU4OCIsIFwKLSAgICAgICAgICAiMC4wMzkxNzEsIDAuMTc5ODUyLCAwLjMyNTc2NywgMC40MzA3OTcsIDAuNTk3ODg4LCAwLjc0NjY4MywgMC45NTU4NjQiLCBcCi0gICAgICAgICAgIjAuMDQwMTAzLCAwLjE4MDA1NCwgMC4zMjU2NzIsIDAuNDMwMDkzLCAwLjU5ODI4MiwgMC43NDUxNTgsIDAuOTU1ODUxIiwgXAotICAgICAgICAgICIwLjA0MTUzNywgMC4xODA2MTEsIDAuMzI1OTg4LCAwLjQzMDgyNywgMC41OTgyNzUsIDAuNzQ2NjQsIDAuOTU1OTc0IiwgXAotICAgICAgICAgICIwLjA0Mjk5OSwgMC4xODEyNDksIDAuMzI2MTcxLCAwLjQzMDEwMiwgMC41OTkwMTYsIDAuNzQ1Mzg2LCAwLjk1NjMzNCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3NDM1NCwgMC4xNTM2MTUsIDAuMjI3MzQ4LCAwLjI3OTg3MSwgMC4zNjM4NzQsIDAuNDM3MzU2LCAwLjU0MjIwNyIsIFwKLSAgICAgICAgICAiMC4wODMyNTIsIDAuMTYyNDY1LCAwLjIzNjE5OSwgMC4yODg3MzUsIDAuMzcyNzMzLCAwLjQ0NjE2NiwgMC41NTEwNiIsIFwKLSAgICAgICAgICAiMC4wOTQ3MzYsIDAuMTczOTA2LCAwLjI0NzY1NiwgMC4zMDAxODcsIDAuMzg0MTkxLCAwLjQ1NzYyMiwgMC41NjI1NTEiLCBcCi0gICAgICAgICAgIjAuMTA2Mzc4LCAwLjE4NTU1NiwgMC4yNTkyOTUsIDAuMzExODQsIDAuMzk1ODQ1LCAwLjQ2OTMwOSwgMC41NzQxNyIsIFwKLSAgICAgICAgICAiMC4xMTc1MjcsIDAuMTk2Nzg4LCAwLjI3MDU1LCAwLjMyMzA4NSwgMC40MDcwOTgsIDAuNDgwNTg0LCAwLjU4NTQ0MSIsIFwKLSAgICAgICAgICAiMC4xMzM2NSwgMC4yMTMxOTUsIDAuMjg2OTQ1LCAwLjMzOTQ4NCwgMC40MjM0NiwgMC40OTY5MjEsIDAuNjAxODI1IiwgXAotICAgICAgICAgICIwLjE0NjA0LCAwLjIyNjEwMiwgMC4yOTk4MjIsIDAuMzUyMzQ5LCAwLjQzNjMzMiwgMC41MDk3MTIsIDAuNjE0NjM1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQwNTYyLCAwLjE4Mjc0NCwgMC4zMjkyNjQsIDAuNDM1NDU2LCAwLjYwNDQ2MywgMC43NTM4MzgsIDAuOTY2NjM0IiwgXAotICAgICAgICAgICIwLjA0MDU3OCwgMC4xODI3MTksIDAuMzI5MjY3LCAwLjQzNDkwMSwgMC42MDM2MDUsIDAuNzUyODIxLCAwLjk2NjY4MyIsIFwKLSAgICAgICAgICAiMC4wNDA0ODMsIDAuMTgyNzg3LCAwLjMyOTc1OSwgMC40MzQ5MzYsIDAuNjA0MjYzLCAwLjc1MjgzOCwgMC45NjY1MTciLCBcCi0gICAgICAgICAgIjAuMDQwNDk0LCAwLjE4Mjc5MSwgMC4zMjkyOTQsIDAuNDM1NDgsIDAuNjAzODE0LCAwLjc1Mzg0NCwgMC45NjY2NTYiLCBcCi0gICAgICAgICAgIjAuMDQxMTcsIDAuMTgyODczLCAwLjMyOTc3NiwgMC40MzU0NTgsIDAuNjA0NDM1LCAwLjc1MzgzLCAwLjk2NjYxIiwgXAotICAgICAgICAgICIwLjA0Mjg5NCwgMC4xODMzMDQsIDAuMzI5Mjk3LCAwLjQzNTY1NiwgMC42MDUyMzcsIDAuNzU0MDIyLCAwLjk2NTE2NCIsIFwKLSAgICAgICAgICAiMC4wNDQ1NDUsIDAuMTgzOTY5LCAwLjMyOTU0NSwgMC40MzUyNzIsIDAuNjA1MzQ1LCAwLjc1Mzk2NiwgMC45NjUzMTQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjAiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDcwMjU2LCAwLjE0Njk4MywgMC4yMTg2ODUsIDAuMjY5ODQ4LCAwLjM1MTYwMiwgMC40MjMxMzIsIDAuNTI1MjM1IiwgXAotICAgICAgICAgICIwLjA3OTI2NywgMC4xNTU5MTQsIDAuMjI3NjE0LCAwLjI3ODczNSwgMC4zNjA1MjgsIDAuNDMyMDcxLCAwLjUzNDE3OCIsIFwKLSAgICAgICAgICAiMC4wOTExNDEsIDAuMTY3Nzg1LCAwLjIzOTUxMSwgMC4yOTA2MywgMC4zNzI0MjUsIDAuNDQzOTMzLCAwLjU0NjA1IiwgXAotICAgICAgICAgICIwLjEwMjk4MiwgMC4xNzk2MzMsIDAuMjUxMzUyLCAwLjMwMjQ4LCAwLjM4NDI3OCwgMC40NTU4MjEsIDAuNTU3OTMiLCBcCi0gICAgICAgICAgIjAuMTE0Mzg4LCAwLjE5MTIwOCwgMC4yNjI5MDMsIDAuMzE0MDMxLCAwLjM5NTgzMiwgMC40NjczNzEsIDAuNTY5NDc3IiwgXAotICAgICAgICAgICIwLjEzMTExMywgMC4yMDgwMDQsIDAuMjc5NzEzLCAwLjMzMDgxOCwgMC40MTI1ODUsIDAuNDg0MTQ2LCAwLjU4NjIzNyIsIFwKLSAgICAgICAgICAiMC4xNDM5NzMsIDAuMjIxNjU4LCAwLjI5MzMzNiwgMC4zNDQ0ODgsIDAuNDI2MjE0LCAwLjQ5Nzc0OCwgMC41OTk4ODUiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDAwMDMsIDAuMTgwNTUyLCAwLjMyNjIyMiwgMC40MzEyNjIsIDAuNTk4MjgzLCAwLjc0NzAyMiwgMC45NTc3NjgiLCBcCi0gICAgICAgICAgIjAuMDM5OTI1LCAwLjE4MDU2NiwgMC4zMjYxOTYsIDAuNDMxMDQ4LCAwLjU5ODY2MiwgMC43NDcwMTgsIDAuOTU3NzI3IiwgXAotICAgICAgICAgICIwLjAzOTg0OSwgMC4xODA1NDEsIDAuMzI2Mjk2LCAwLjQzMTE1MywgMC41OTkwODUsIDAuNzQ2MjM0LCAwLjk1NzY5NCIsIFwKLSAgICAgICAgICAiMC4wMzk5MjYsIDAuMTgwNTc2LCAwLjMyNjIwOCwgMC40MzEwNDcsIDAuNTk4NjI0LCAwLjc0NzAwNSwgMC45NTc3MjQiLCBcCi0gICAgICAgICAgIjAuMDQwNzQ1LCAwLjE4MDcwOSwgMC4zMjYyMjYsIDAuNDMxMDQsIDAuNTk4NzAyLCAwLjc0Njg4OCwgMC45NTc1OTQiLCBcCi0gICAgICAgICAgIjAuMDQzNjgxLCAwLjE4MTI5OSwgMC4zMjY1MTUsIDAuNDMxMTg1LCAwLjU5OTA2MiwgMC43NDY5MTIsIDAuOTU3NTkyIiwgXAotICAgICAgICAgICIwLjA0NDgxMywgMC4xODE5NzIsIDAuMzI2NDYxLCAwLjQzMTQ1MSwgMC41OTk1MDEsIDAuNzQ1OTgzLCAwLjk1NzYxOCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0NzgxNiwgMC4xMjMyMTksIDAuMTk2NjM1LCAwLjI0OTA3OCwgMC4zMzMwMDUsIDAuNDA2MzkxLCAwLjUxMTUxOSIsIFwKLSAgICAgICAgICAiMC4wNTc3MTMsIDAuMTMzMTU3LCAwLjIwNjU3OSwgMC4yNTkwNjYsIDAuMzQyOTY5LCAwLjQxNjM3NCwgMC41MjEzMzEiLCBcCi0gICAgICAgICAgIjAuMDcwMTExLCAwLjE0NTU3MywgMC4yMTkwNDEsIDAuMjcxNDY1LCAwLjM1NTM3NCwgMC40Mjg3ODEsIDAuNTMzOTQyIiwgXAotICAgICAgICAgICIwLjA4MTQwMiwgMC4xNTY5NTksIDAuMjMwNDI0LCAwLjI4Mjg5NywgMC4zNjY3NTcsIDAuNDQwMTk1LCAwLjU0NTE4MyIsIFwKLSAgICAgICAgICAiMC4wOTEyNTcsIDAuMTY3MDgzLCAwLjI0MDUyNSwgMC4yOTI5NjIsIDAuMzc2ODQzLCAwLjQ1MDM1NSwgMC41NTUyMTgiLCBcCi0gICAgICAgICAgIjAuMTA1MTY1LCAwLjE4MTUyMywgMC4yNTQ4NjgsIDAuMzA3MzQ0LCAwLjM5MTE4MywgMC40NjQ2MzgsIDAuNTY5MDA1IiwgXAotICAgICAgICAgICIwLjExNTQ0MiwgMC4xOTIzNTksIDAuMjY1Njk5LCAwLjMxODEyOSwgMC40MDIwMjQsIDAuNDc1NDQ0LCAwLjU4MDI2MyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzNDE2MywgMC4xNzgyMjIsIDAuMzI2MjE2LCAwLjQzMjUzOSwgMC42MDE4NTgsIDAuNzUxODM0LCAwLjk2NDA2OSIsIFwKLSAgICAgICAgICAiMC4wMzQyLCAwLjE3ODAyOCwgMC4zMjYzMDIsIDAuNDMyNDAxLCAwLjYwMTE5OCwgMC43NTA3OTYsIDAuOTYzNDM5IiwgXAotICAgICAgICAgICIwLjAzNDQ4LCAwLjE3ODI1MSwgMC4zMjU4MDgsIDAuNDMyMzk4LCAwLjYwMTc4NSwgMC43NTA3OTEsIDAuOTYyNzY1IiwgXAotICAgICAgICAgICIwLjAzNTU2MywgMC4xNzgzNzIsIDAuMzI2NDc5LCAwLjQzMjM2NCwgMC42MDI1NDIsIDAuNzUwMjk2LCAwLjk2MzcxNCIsIFwKLSAgICAgICAgICAiMC4wMzcwNzcsIDAuMTc4NjQxLCAwLjMyNjUwNiwgMC40MzE5NDksIDAuNjAyODI3LCAwLjc1MTY2NSwgMC45NjMwNjEiLCBcCi0gICAgICAgICAgIjAuMDM5NDcsIDAuMTc4OTk5LCAwLjMyNjY2MiwgMC40MzI2ODIsIDAuNjAyODMyLCAwLjc1MDY0MiwgMC45NjQyOTciLCBcCi0gICAgICAgICAgIjAuMDQxNjcsIDAuMTc5ODM1LCAwLjMyNjQ2NSwgMC40MzI3NDQsIDAuNjAyMDU1LCAwLjc1MTYsIDAuOTY0NDQ1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0Nzk4LCAwLjAwNDk4LCAwLjAwNTAxMSwgMC4wMDUwMTcsIDAuMDA1MDI4LCAwLjAwNTAzMywgMC4wMDUwMzQiLCBcCi0gICAgICAgICAgIjAuMDA0NzY1LCAwLjAwNDk0OCwgMC4wMDQ5NzksIDAuMDA0OTg5LCAwLjAwNDk5NiwgMC4wMDQ5OTcsIDAuMDA1MDA2IiwgXAotICAgICAgICAgICIwLjAwNDczMiwgMC4wMDQ5MiwgMC4wMDQ5NTUsIDAuMDA0OTY2LCAwLjAwNDk3NSwgMC4wMDQ5ODEsIDAuMDA0OTg1IiwgXAotICAgICAgICAgICIwLjAwNDcyOCwgMC4wMDQ5MDUsIDAuMDA0OTQxLCAwLjAwNDk1MiwgMC4wMDQ5NjQsIDAuMDA0OTY5LCAwLjAwNDk3NCIsIFwKLSAgICAgICAgICAiMC4wMDQ3MjEsIDAuMDA0ODk0LCAwLjAwNDkyOCwgMC4wMDQ5NDQsIDAuMDA0OTU0LCAwLjAwNDk2MiwgMC4wMDQ5NzIiLCBcCi0gICAgICAgICAgIjAuMDA0NzMyLCAwLjAwNDg4MSwgMC4wMDQ5MiwgMC4wMDQ5MzcsIDAuMDA0OTQ4LCAwLjAwNDk0OCwgMC4wMDQ5NiIsIFwKLSAgICAgICAgICAiMC4wMDQ3MTgsIDAuMDA0ODcxLCAwLjAwNDkxMiwgMC4wMDQ5MjksIDAuMDA0OTQzLCAwLjAwNDk1LCAwLjAwNDk1OCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2OTAxLCAwLjAwNzE0LCAwLjAwNzE4MiwgMC4wMDcxOTYsIDAuMDA3MjA5LCAwLjAwNzIxNSwgMC4wMDcyMiIsIFwKLSAgICAgICAgICAiMC4wMDY4NzYsIDAuMDA3MTE3LCAwLjAwNzE2MSwgMC4wMDcxNzYsIDAuMDA3MTg5LCAwLjAwNzE5NSwgMC4wMDcyMDEiLCBcCi0gICAgICAgICAgIjAuMDA2ODU0LCAwLjAwNzA5NywgMC4wMDcxNDQsIDAuMDA3MTYsIDAuMDA3MTc0LCAwLjAwNzE4MSwgMC4wMDcxODgiLCBcCi0gICAgICAgICAgIjAuMDA2ODU5LCAwLjAwNzA4NSwgMC4wMDcxMzUsIDAuMDA3MTUxLCAwLjAwNzE2NiwgMC4wMDcxNzQsIDAuMDA3MTgxIiwgXAotICAgICAgICAgICIwLjAwNjg2LCAwLjAwNzA3NCwgMC4wMDcxMjcsIDAuMDA3MTQ1LCAwLjAwNzE2MSwgMC4wMDcxNywgMC4wMDcxNzgiLCBcCi0gICAgICAgICAgIjAuMDA2ODY0LCAwLjAwNzA2MywgMC4wMDcxMTgsIDAuMDA3MTM4LCAwLjAwNzE1NiwgMC4wMDcxNjYsIDAuMDA3MTc1IiwgXAotICAgICAgICAgICIwLjAwNjgzOSwgMC4wMDcwNDIsIDAuMDA3MTA2LCAwLjAwNzEyOCwgMC4wMDcxNSwgMC4wMDcxNjEsIDAuMDA3MTcxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0NTU1LCAwLjAwNDczMywgMC4wMDQ3NTksIDAuMDA0NzczLCAwLjAwNDc3NCwgMC4wMDQ3ODIsIDAuMDA0NzgiLCBcCi0gICAgICAgICAgIjAuMDA0NTA2LCAwLjAwNDY5MiwgMC4wMDQ3MTYsIDAuMDA0NzI5LCAwLjAwNDczNCwgMC4wMDQ3MzYsIDAuMDA0NzQxIiwgXAotICAgICAgICAgICIwLjAwNDQ1OSwgMC4wMDQ2NDgsIDAuMDA0Njc2LCAwLjAwNDY4OCwgMC4wMDQ2OTcsIDAuMDA0NywgMC4wMDQ3MDQiLCBcCi0gICAgICAgICAgIjAuMDA0NDI3LCAwLjAwNDYxOCwgMC4wMDQ2NTMsIDAuMDA0NjYzLCAwLjAwNDY3MywgMC4wMDQ2NzgsIDAuMDA0NjgzIiwgXAotICAgICAgICAgICIwLjAwNDQyOCwgMC4wMDQ2MDMsIDAuMDA0NjMzLCAwLjAwNDY1LCAwLjAwNDY2LCAwLjAwNDY2NywgMC4wMDQ2NzIiLCBcCi0gICAgICAgICAgIjAuMDA0NDY5LCAwLjAwNDU4OCwgMC4wMDQ2MjEsIDAuMDA0NjQxLCAwLjAwNDY1MywgMC4wMDQ2NTQsIDAuMDA0NjY0IiwgXAotICAgICAgICAgICIwLjAwNDQ4OCwgMC4wMDQ1OSwgMC4wMDQ2MjcsIDAuMDA0NjMzLCAwLjAwNDY0NywgMC4wMDQ2NTIsIDAuMDA0NjU4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDY1NzMsIDAuMDA2ODA0LCAwLjAwNjg0NiwgMC4wMDY4NTksIDAuMDA2ODcxLCAwLjAwNjg3OCwgMC4wMDY4ODMiLCBcCi0gICAgICAgICAgIjAuMDA2NTIzLCAwLjAwNjc2NSwgMC4wMDY4MSwgMC4wMDY4MjUsIDAuMDA2ODM4LCAwLjAwNjg0NSwgMC4wMDY4NTIiLCBcCi0gICAgICAgICAgIjAuMDA2NSwgMC4wMDY3MzcsIDAuMDA2Nzg5LCAwLjAwNjgwNiwgMC4wMDY4MjIsIDAuMDA2ODMsIDAuMDA2ODM4IiwgXAotICAgICAgICAgICIwLjAwNjQ5OCwgMC4wMDY3MjEsIDAuMDA2Nzc3LCAwLjAwNjc5NiwgMC4wMDY4MTUsIDAuMDA2ODI0LCAwLjAwNjgzMyIsIFwKLSAgICAgICAgICAiMC4wMDY1LCAwLjAwNjcxMiwgMC4wMDY3NzMsIDAuMDA2Nzk1LCAwLjAwNjgxNSwgMC4wMDY4MjYsIDAuMDA2ODM2IiwgXAotICAgICAgICAgICIwLjAwNjUzMywgMC4wMDY3MTQsIDAuMDA2NzgsIDAuMDA2ODA0LCAwLjAwNjgyNywgMC4wMDY4NCwgMC4wMDY4NTEiLCBcCi0gICAgICAgICAgIjAuMDA2NTUyLCAwLjAwNjcyNSwgMC4wMDY3OTEsIDAuMDA2ODE2LCAwLjAwNjg0MiwgMC4wMDY4NTYsIDAuMDA2ODY4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0ODE2LCAwLjAwNDk5OSwgMC4wMDUwMjcsIDAuMDA1MDM1LCAwLjAwNTA0OSwgMC4wMDUwNTEsIDAuMDA1MDU4IiwgXAotICAgICAgICAgICIwLjAwNDc2MiwgMC4wMDQ5NDcsIDAuMDA0OTgsIDAuMDA0OTksIDAuMDA1LCAwLjAwNTAwNSwgMC4wMDUwMTIiLCBcCi0gICAgICAgICAgIjAuMDA0NzMyLCAwLjAwNDkxNSwgMC4wMDQ5NTMsIDAuMDA0OTY1LCAwLjAwNDk3NywgMC4wMDQ5ODEsIDAuMDA0OTg1IiwgXAotICAgICAgICAgICIwLjAwNDczNSwgMC4wMDQ5MDYsIDAuMDA0OTQ4LCAwLjAwNDk2MywgMC4wMDQ5NzQsIDAuMDA0OTg0LCAwLjAwNDk5MSIsIFwKLSAgICAgICAgICAiMC4wMDQ3NDMsIDAuMDA0OTAyLCAwLjAwNDk0OCwgMC4wMDQ5NjQsIDAuMDA0OTgsIDAuMDA0OTgzLCAwLjAwNDk5OSIsIFwKLSAgICAgICAgICAiMC4wMDQ4MTYsIDAuMDA0OTIzLCAwLjAwNDk2OSwgMC4wMDQ5ODYsIDAuMDA1MDAzLCAwLjAwNTAwNywgMC4wMDUwMjUiLCBcCi0gICAgICAgICAgIjAuMDA0ODEsIDAuMDA0OTM4LCAwLjAwNDk4OSwgMC4wMDUwMDgsIDAuMDA1MDI1LCAwLjAwNTAzNCwgMC4wMDUwNDUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjE1MiwgMC4wMDYzMTUsIDAuMDA2MzMzLCAwLjAwNjMzOSwgMC4wMDYzNDQsIDAuMDA2MzQ2LCAwLjAwNjM0OCIsIFwKLSAgICAgICAgICAiMC4wMDYwOTEsIDAuMDA2Mjc3LCAwLjAwNjMwMSwgMC4wMDYzMDgsIDAuMDA2MzE0LCAwLjAwNjMxNywgMC4wMDYzMiIsIFwKLSAgICAgICAgICAiMC4wMDYwNTksIDAuMDA2MjQ4LCAwLjAwNjI3OSwgMC4wMDYyODksIDAuMDA2Mjk3LCAwLjAwNjMwMSwgMC4wMDYzMDUiLCBcCi0gICAgICAgICAgIjAuMDA2MDM2LCAwLjAwNjIzLCAwLjAwNjI2OCwgMC4wMDYyOCwgMC4wMDYyOTIsIDAuMDA2Mjk3LCAwLjAwNjMwMyIsIFwKLSAgICAgICAgICAiMC4wMDYwMTQsIDAuMDA2MjE3LCAwLjAwNjI2MiwgMC4wMDYyNzgsIDAuMDA2MjkxLCAwLjAwNjI5OSwgMC4wMDYzMDUiLCBcCi0gICAgICAgICAgIjAuMDA2MDQ1LCAwLjAwNjIxOSwgMC4wMDYyNTQsIDAuMDA2MjgxLCAwLjAwNjI4OCwgMC4wMDYyOTYsIDAuMDA2MzI5IiwgXAotICAgICAgICAgICIwLjAwNjA5LCAwLjAwNjIzNSwgMC4wMDYyODEsIDAuMDA2Mjg2LCAwLjAwNjMwNCwgMC4wMDYzMjIsIDAuMDA2MzIyIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IE9BSTIyMVgyICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChPQUkyMjFYMikgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjM1MzM2NjsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQTApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTY5NjQ0OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTY5MjAxOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTY5NjQ0OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDgxOCwgMC4wMDA4MTgsIDAuMDAwODE4LCAwLjAwMDgxNywgMC4wMDA4MTcsIDAuMDAwODE3LCAwLjAwMDgxNyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDgxOSwgMC4wMDA4MiwgMC4wMDA4MiwgMC4wMDA4MiwgMC4wMDA4MjEsIDAuMDAwODIxLCAwLjAwMDgyMSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQTEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTYwODI2OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTYwODI2OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTYwMTg0OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDgxOSwgMC4wMDA4MTksIDAuMDAwODE4LCAwLjAwMDgxOCwgMC4wMDA4MTgsIDAuMDAwODE4LCAwLjAwMDgxOCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDgxOSwgMC4wMDA4MiwgMC4wMDA4MiwgMC4wMDA4MiwgMC4wMDA4MiwgMC4wMDA4MiwgMC4wMDA4MiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQjApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTY4NjA3OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTY4MDUyOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTY4NjA3OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDgxOCwgMC4wMDA4MTgsIDAuMDAwODE3LCAwLjAwMDgxNywgMC4wMDA4MTcsIDAuMDAwODE3LCAwLjAwMDgxNyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDgxOSwgMC4wMDA4MiwgMC4wMDA4MiwgMC4wMDA4MiwgMC4wMDA4MjEsIDAuMDAwODIxLCAwLjAwMDgyMSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQjEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTU2OTM7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNTY5MzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE1NjM5MzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA4MTksIDAuMDAwODE4LCAwLjAwMDgxOCwgMC4wMDA4MTgsIDAuMDAwODE4LCAwLjAwMDgxOCwgMC4wMDA4MTciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA4MTksIDAuMDAwODIsIDAuMDAwODIsIDAuMDAwODIsIDAuMDAwODIsIDAuMDAwODIsIDAuMDAwODIiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEMwKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE2NDE4NTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE2NDA3MzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE2NDE4NTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAyOTIsIDAuMDAwMjkzLCAwLjAwMDI5NCwgMC4wMDAyOTQsIDAuMDAwMjk0LCAwLjAwMDI5MywgMC4wMDAyOTMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA5MjgsIDAuMDAwOTI5LCAwLjAwMDkyOSwgMC4wMDA5MywgMC4wMDA5MjksIDAuMDAwOTI5LCAwLjAwMDkyOSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjE4NjcyOTsKLSAgICBmdW5jdGlvbiA6ICIoISgoKEEwK0ExKSAoQjArQjEpKSBDMCkpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY4MTI3LCAwLjI2NDkyNiwgMC40MjExNTgsIDAuNjE2NTAzLCAwLjgxMTQ4LCAxLjAwNjY5LCAxLjIwMTk1IiwgXAotICAgICAgICAgICIwLjA3Njc4MywgMC4yNzM2MjgsIDAuNDI5ODIxLCAwLjYyNTI0NSwgMC44MjAwNzMsIDEuMDE1MTcsIDEuMjA5NDkiLCBcCi0gICAgICAgICAgIjAuMDg2ODA3LCAwLjI4MzgzMywgMC40Mzk5ODksIDAuNjM1MDIsIDAuODMwMzksIDEuMDI1NjksIDEuMjIwMTQiLCBcCi0gICAgICAgICAgIjAuMDk2NzkxLCAwLjI5MzksIDAuNDUwMDU4LCAwLjY0NTI2MSwgMC44NDAxLCAxLjAzNTI3LCAxLjIzMDUiLCBcCi0gICAgICAgICAgIjAuMTA2NzY1LCAwLjMwMzk1OCwgMC40NjAzMzEsIDAuNjU1Mzk2LCAwLjg1MDI4OCwgMS4wNDUyNSwgMS4yNDAxNiIsIFwKLSAgICAgICAgICAiMC4xMjIwMDQsIDAuMzE5OTczLCAwLjQ3NTEsIDAuNjcxMzE3LCAwLjg2NjM5LCAxLjA2MTM4LCAxLjI1NjM2IiwgXAotICAgICAgICAgICIwLjEzMzkxNiwgMC4zMzM5MzQsIDAuNDkwMjc0LCAwLjY4NTM2NCwgMC44ODA1ODgsIDEuMDc1NTksIDEuMjcwNDQiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTI1ODc4LCAwLjUyMjE4MiwgMC44MzkzNTYsIDEuMjM1NjQsIDEuNjMxOTIsIDIuMDI4NTEsIDIuNDI0ODgiLCBcCi0gICAgICAgICAgIjAuMTI1ODIzLCAwLjUyMjE4OCwgMC44MzkzNDYsIDEuMjM1NTcsIDEuNjMxNzksIDIuMDI4MDEsIDIuNDI0MjUiLCBcCi0gICAgICAgICAgIjAuMTI3MDM1LCAwLjUyMjIxLCAwLjgzOTM2OCwgMS4yMzU1MSwgMS42MzE3NSwgMi4wMjgxMiwgMi40MjQ2NCIsIFwKLSAgICAgICAgICAiMC4xMzAwMTEsIDAuNTIyMTcyLCAwLjgzOTMyNCwgMS4yMzU1NywgMS42MzE4OSwgMi4wMjgxMSwgMi40MjQ5NiIsIFwKLSAgICAgICAgICAiMC4xMzQyNDIsIDAuNTIyMjk4LCAwLjgzOTIzNywgMS4yMzU4MiwgMS42MzE5OSwgMi4wMjg1LCAyLjQyNDczIiwgXAotICAgICAgICAgICIwLjE0MjI5MiwgMC41MjM5ODgsIDAuODM5MzQ3LCAxLjIzNTc3LCAxLjYzMjAyLCAyLjAyNzk3LCAyLjQyNDgzIiwgXAotICAgICAgICAgICIwLjE1MDM3OSwgMC41MjY4NTMsIDAuODM5OTQ4LCAxLjIzNTYyLCAxLjYzMTc1LCAyLjAyODE4LCAyLjQyNDcxIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwNTYwNiwgMC4zOTA5ODMsIDAuNjE4NzA4LCAwLjkwNjQ5NCwgMS4xOTQyNiwgMS40ODIyMiwgMS43NzEzMyIsIFwKLSAgICAgICAgICAiMC4xMTUwNjgsIDAuNDAwNjE1LCAwLjYyODQ1NSwgMC45MTU3NzEsIDEuMjAzOTEsIDEuNDkxODgsIDEuNzgwNzQiLCBcCi0gICAgICAgICAgIjAuMTI1MzA3LCAwLjQxMDk0OSwgMC42Mzg4OSwgMC45MjYxODYsIDEuMjE0MTksIDEuNTAzMTIsIDEuNzkwNzQiLCBcCi0gICAgICAgICAgIjAuMTM0NzkyLCAwLjQyMDUxMywgMC42NDgyOCwgMC45MzU1NDMsIDEuMjIzOSwgMS41MTIxMSwgMS44MDA5MiIsIFwKLSAgICAgICAgICAiMC4xNDM5MTgsIDAuNDI5ODc5LCAwLjY1NzQyNSwgMC45NDQ2ODUsIDEuMjMyOTcsIDEuNTIxMzcsIDEuODA5NTQiLCBcCi0gICAgICAgICAgIjAuMTU4MzA3LCAwLjQ0NDE4OSwgMC42NzIyMTgsIDAuOTU5Mzk0LCAxLjI0NzIxLCAxLjUzNTIzLCAxLjgyMzUxIiwgXAotICAgICAgICAgICIwLjE3MDYxNywgMC40NTY1NzUsIDAuNjg0NDY5LCAwLjk3MTYwNCwgMS4yNTk2OSwgMS41NDgzNiwgMS44MzU4MSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNjAzODgsIDAuNzIwODQ3LCAxLjE3NDA4LCAxLjc0MTIyLCAyLjMwNjQ1LCAyLjg3MjU3LCAzLjQ0MTU4IiwgXAotICAgICAgICAgICIwLjE2MDQwMywgMC43MjA4NjQsIDEuMTc0MDUsIDEuNzQxMTcsIDIuMzA3NDUsIDIuODcyNiwgMy40NDExMyIsIFwKLSAgICAgICAgICAiMC4xNjAzNTEsIDAuNzIwOTY1LCAxLjE3NDA2LCAxLjc0MTA4LCAyLjMwNzIzLCAyLjg3NTA5LCAzLjQzOTI2IiwgXAotICAgICAgICAgICIwLjE2MTAwOSwgMC43MjA4MzUsIDEuMTc0NDksIDEuNzQxMDMsIDIuMzA2MzMsIDIuODczNzgsIDMuNDQwMDYiLCBcCi0gICAgICAgICAgIjAuMTYyNDk0LCAwLjcyMDg4MSwgMS4xNzQ3MSwgMS43NDA1OSwgMi4zMDcwOSwgMi44NzQzNCwgMy40Mzk1NyIsIFwKLSAgICAgICAgICAiMC4xNjYxMiwgMC43MjEwODQsIDEuMTc0MDUsIDEuNzQxMjUsIDIuMzA3MTQsIDIuODcyMzQsIDMuNDM5NzgiLCBcCi0gICAgICAgICAgIjAuMTcwMzM4LCAwLjcyMTM5NSwgMS4xNzQwNCwgMS43NDA2MSwgMi4zMDcwMywgMi44NzM5MiwgMy40Mzg1OSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY0OTIxLCAwLjI2MTgxMSwgMC40MTc5NTEsIDAuNjEyOTgsIDAuODA4MzIzLCAxLjAwMzUzLCAxLjE5ODA2IiwgXAotICAgICAgICAgICIwLjA3MzgzNSwgMC4yNzA3NzEsIDAuNDI2OTcsIDAuNjIyMTQ0LCAwLjgxNjk0OCwgMS4wMTE4NSwgMS4yMDY3IiwgXAotICAgICAgICAgICIwLjA4NTM3NSwgMC4yODIzMzcsIDAuNDM4NTk2LCAwLjYzMzY1NSwgMC44Mjg0OTUsIDEuMDIzNTQsIDEuMjE4NzMiLCBcCi0gICAgICAgICAgIjAuMDk2NjM1LCAwLjI5MzU3OSwgMC40NDk5MjksIDAuNjQ1MDU5LCAwLjgzOTk0MywgMS4wMzUwOCwgMS4yMzAxMSIsIFwKLSAgICAgICAgICAiMC4xMDg1MjMsIDAuMzA0NjA1LCAwLjQ2MTMzOSwgMC42NTY0NTMsIDAuODUxODQ0LCAxLjA0NjMyLCAxLjI0MjA0IiwgXAotICAgICAgICAgICIwLjEyNjY5MywgMC4zMjM0MDgsIDAuNDc5NjIzLCAwLjY3NDg3OSwgMC44Njk4MDQsIDEuMDY0NjUsIDEuMjYwMTEiLCBcCi0gICAgICAgICAgIjAuMTQwOTcyLCAwLjMzOTU0NywgMC40OTU4NjMsIDAuNjkwNzcsIDAuODg2MTQ0LCAxLjA4MDkyLCAxLjI3NjExIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEyNTkxMSwgMC41MjIyMDUsIDAuODM5MzQzLCAxLjIzNTg5LCAxLjYzMTc1LCAyLjAyODA5LCAyLjQyNDQyIiwgXAotICAgICAgICAgICIwLjEyNTcyOCwgMC41MjIxODksIDAuODM5MzExLCAxLjIzNTQ4LCAxLjYzMjE3LCAyLjAyNzg2LCAyLjQyNDcyIiwgXAotICAgICAgICAgICIwLjEyODE0OSwgMC41MjIxMTcsIDAuODM5MTk0LCAxLjIzNTU1LCAxLjYzMTgzLCAyLjAyODQ0LCAyLjQyNDc5IiwgXAotICAgICAgICAgICIwLjEzMzU1LCAwLjUyMjA4NCwgMC44MzkzNCwgMS4yMzU3NSwgMS42MzIxNCwgMi4wMjgwNywgMi40MjQwNSIsIFwKLSAgICAgICAgICAiMC4xNDAxMTQsIDAuNTIyMjI1LCAwLjgzOTM4MiwgMS4yMzU1NiwgMS42MzIxLCAyLjAyODQxLCAyLjQyNDg1IiwgXAotICAgICAgICAgICIwLjE1MjYxNCwgMC41MjQ1NDYsIDAuODM5MywgMS4yMzU0NiwgMS42MzIyNCwgMi4wMjc5OSwgMi40MjQxIiwgXAotICAgICAgICAgICIwLjE2NDcyNiwgMC41Mjg5NTMsIDAuODM5ODg2LCAxLjIzNTcxLCAxLjYzMTkyLCAyLjAyODA3LCAyLjQyNDc4Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwMDA5NSwgMC4zODg0NDQsIDAuNjE4NzU0LCAwLjkwOTY1LCAxLjIwMDQ0LCAxLjQ5MTU5LCAxLjc4NDExIiwgXAotICAgICAgICAgICIwLjEwOTYxMSwgMC4zOTgzMjEsIDAuNjI4NjA1LCAwLjkxOTUwNSwgMS4yMTAzNiwgMS41MDE5OCwgMS43OTM3MyIsIFwKLSAgICAgICAgICAiMC4xMTk3MzYsIDAuNDA4NTg5LCAwLjYzOTAyNCwgMC45Mjk0NjIsIDEuMjIxMywgMS41MTMwMywgMS44MDM3MSIsIFwKLSAgICAgICAgICAiMC4xMjg5NiwgMC40MTgxNTksIDAuNjQ4ODE4LCAwLjkzODk3OCwgMS4yMzA0MywgMS41MjE5NiwgMS44MTM5NiIsIFwKLSAgICAgICAgICAiMC4xMzgwMjQsIDAuNDI3MzQ1LCAwLjY1NzgwOSwgMC45NDgzNjQsIDEuMjM5NjIsIDEuNTMxMDUsIDEuODIyNTEiLCBcCi0gICAgICAgICAgIjAuMTUyMjgxLCAwLjQ0MTY3LCAwLjY3MjM1OSwgMC45NjI3OTUsIDEuMjUzODUsIDEuNTQ0OTUsIDEuODM2NjMiLCBcCi0gICAgICAgICAgIjAuMTY0NDI0LCAwLjQ1NDA1OSwgMC42ODQ2OCwgMC45NzQ3NDMsIDEuMjY2NTgsIDEuNTU3NTIsIDEuODUwMTciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTU0MzcsIDAuNzIyODg0LCAxLjE4MjU1LCAxLjc1MTkxLCAyLjMzMTExLCAyLjkwMDA5LCAzLjQ3MDE3IiwgXAotICAgICAgICAgICIwLjE1NDM3NiwgMC43MjI4ODIsIDEuMTgyMiwgMS43NTE4NSwgMi4zMzA3NSwgMi44OTc5NiwgMy40NzAyMiIsIFwKLSAgICAgICAgICAiMC4xNTQyNzMsIDAuNzIzMDU1LCAxLjE4LCAxLjc1NjY0LCAyLjMyNDY0LCAyLjg5NzM4LCAzLjQ5Mzk5IiwgXAotICAgICAgICAgICIwLjE1NTAwMiwgMC43MjI3NTksIDEuMTc5MzUsIDEuNzUzNTYsIDIuMzMwNzcsIDIuODk5MzEsIDMuNDcwMTkiLCBcCi0gICAgICAgICAgIjAuMTU2NzYzLCAwLjcyMTA0OSwgMS4xNzkxLCAxLjc1NzA4LCAyLjMyNzEyLCAyLjkwNTEsIDMuNDkzOTgiLCBcCi0gICAgICAgICAgIjAuMTYwMzc0LCAwLjcyMjUyNSwgMS4xNzkwOSwgMS43NTI1NiwgMi4zMjYzNSwgMi45MDIxOCwgMy40NzI5MiIsIFwKLSAgICAgICAgICAiMC4xNjQ5MDYsIDAuNzIzMjY4LCAxLjE4MjQsIDEuNzUzNDUsIDIuMzI1MzQsIDIuOTA0MTYsIDMuNDcwMjIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjAiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2MjA1LCAwLjI1NzU1OCwgMC40MTM2MjMsIDAuNjA4Njk3LCAwLjgwMzYyNSwgMC45OTg1NDcsIDEuMTkzNTciLCBcCi0gICAgICAgICAgIjAuMDcwNzk1LCAwLjI2NjY1MSwgMC40MjI0NjUsIDAuNjE3NSwgMC44MTI0NTgsIDEuMDA3NDgsIDEuMjAyMjUiLCBcCi0gICAgICAgICAgIjAuMDgwODE3LCAwLjI3NjcxNywgMC40MzMwNDQsIDAuNjI3ODEyLCAwLjgyMjcwMSwgMS4wMTc3NCwgMS4yMTI1MSIsIFwKLSAgICAgICAgICAiMC4wOTA3ODYsIDAuMjg2Njg2LCAwLjQ0MzIxNiwgMC42Mzc4ODgsIDAuODMyODE4LCAxLjAyNzksIDEuMjIyNzEiLCBcCi0gICAgICAgICAgIjAuMTAwNjUzLCAwLjI5NjgwMiwgMC40NTI4NDksIDAuNjQ3ODcsIDAuODQyODM5LCAxLjAzNzgyLCAxLjIzMjciLCBcCi0gICAgICAgICAgIjAuMTE1MjMxLCAwLjMxMjkwNSwgMC40NjgzMywgMC42NjQxMTQsIDAuODU5MTI0LCAxLjA1NDEsIDEuMjQ4OTIiLCBcCi0gICAgICAgICAgIjAuMTI2Nzk0LCAwLjMyNjU4NSwgMC40ODMxMzIsIDAuNjc4Mjc2LCAwLjg3MzQzNCwgMS4wNjgzMiwgMS4yNjM0MSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTc1NzksIDAuNTEzNjQyLCAwLjgzMDcwOSwgMS4yMjY3OCwgMS42MjM0MSwgMi4wMTk2NywgMi40MTYwNCIsIFwKLSAgICAgICAgICAiMC4xMTc1ODksIDAuNTEzNzQ1LCAwLjgzMDcwMSwgMS4yMjY3MiwgMS42MjI5MSwgMi4wMTk3MSwgMi40MTU4NCIsIFwKLSAgICAgICAgICAiMC4xMTkwODIsIDAuNTEzNzQ2LCAwLjgzMDgzNiwgMS4yMjY4OSwgMS42MjMwNywgMi4wMTk3MSwgMi40MTU2MiIsIFwKLSAgICAgICAgICAiMC4xMjI0NCwgMC41MTM3MDcsIDAuODMwODIyLCAxLjIyNywgMS42MjI5MSwgMi4wMTk2OSwgMi40MTU2NSIsIFwKLSAgICAgICAgICAiMC4xMjY4ODUsIDAuNTEzODg1LCAwLjgzMDU3LCAxLjIyNjcxLCAxLjYyMzA4LCAyLjAxOTY1LCAyLjQxNTY3IiwgXAotICAgICAgICAgICIwLjEzNTQ0NiwgMC41MTU3MjQsIDAuODMwNzIzLCAxLjIyNjk4LCAxLjYyMzMyLCAyLjAxOTY3LCAyLjQxNTgyIiwgXAotICAgICAgICAgICIwLjE0NDA5NiwgMC41MTg0MSwgMC44MzE0MTQsIDEuMjI2NzYsIDEuNjIzMzQsIDIuMDE5NTksIDIuNDE1ODIiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk5Mzk2LCAwLjM4NDg1NSwgMC42MTI3NDgsIDAuODk5Mjc2LCAxLjE4NzAxLCAxLjQ3NDQ1LCAxLjc2MjI4IiwgXAotICAgICAgICAgICIwLjEwODMzMSwgMC4zOTM4ODEsIDAuNjIxNiwgMC45MDc5OTYsIDEuMTk2MTYsIDEuNDgzNjUsIDEuNzcyMjIiLCBcCi0gICAgICAgICAgIjAuMTE4OTQ4LCAwLjQwNDU3OCwgMC42MzIzNCwgMC45MTkwNjksIDEuMjA2ODksIDEuNDk0OTcsIDEuNzgyMTgiLCBcCi0gICAgICAgICAgIjAuMTI5NTQ1LCAwLjQxNTI5NCwgMC42NDMxMjcsIDAuOTI5NzEsIDEuMjE3NDksIDEuNTA1NSwgMS43OTMzNyIsIFwKLSAgICAgICAgICAiMC4xNDAxMSwgMC40MjYwNTgsIDAuNjUzNzI1LCAwLjk0MDIxNSwgMS4yMjc3NSwgMS41MTU5OSwgMS44MDM5NyIsIFwKLSAgICAgICAgICAiMC4xNTY5NjUsIDAuNDQzMTcxLCAwLjY3MTE2NiwgMC45NTc2NDksIDEuMjQ1ODgsIDEuNTMyODMsIDEuODIxMzEiLCBcCi0gICAgICAgICAgIjAuMTcxNjQ5LCAwLjQ1Nzk5NCwgMC42ODYwMzQsIDAuOTcyNjk4LCAxLjI2MDAzLCAxLjU0ODE2LCAxLjgzNjMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTYwMzkxLCAwLjcxODc0NywgMS4xNjk5LCAxLjczNDY0LCAyLjI5ODUzLCAyLjg2MjA4LCAzLjQyNjIzIiwgXAotICAgICAgICAgICIwLjE2MDQwMywgMC43MTg4MzcsIDEuMTcwMDYsIDEuNzM0MTQsIDIuMjk5MTEsIDIuODYxNjksIDMuNDI4NTYiLCBcCi0gICAgICAgICAgIjAuMTYwNTIzLCAwLjcxODU5NywgMS4xNzAyNiwgMS43MzQyNSwgMi4yOTg1NywgMi44NjM1NSwgMy40MjU3OCIsIFwKLSAgICAgICAgICAiMC4xNjE5NTMsIDAuNzE4NjAxLCAxLjE3MDA3LCAxLjczNDE5LCAyLjI5ODcsIDIuODYzNjEsIDMuNDI2NTciLCBcCi0gICAgICAgICAgIjAuMTY0Nzk5LCAwLjcxODg0NSwgMS4xNzA3LCAxLjczNDA1LCAyLjI5ODAyLCAyLjg2MzA4LCAzLjQyNjQxIiwgXAotICAgICAgICAgICIwLjE3MTQsIDAuNzE4NjQ5LCAxLjE2OTg5LCAxLjczNDIxLCAyLjI5OTM3LCAyLjg2MjU5LCAzLjQyNzI1IiwgXAotICAgICAgICAgICIwLjE3ODY5LCAwLjcxOTU1MiwgMS4xNjk5NiwgMS43MzQyMywgMi4yOTgxLCAyLjg2Mjg3LCAzLjQyNjU0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIxIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTg1MTUsIDAuMjU0MTE4LCAwLjQxMDE2NywgMC42MDUxMTUsIDAuODAwMDU1LCAwLjk5NTAxNiwgMS4xOTAwOCIsIFwKLSAgICAgICAgICAiMC4wNjc1MzYsIDAuMjYzMTg1LCAwLjQxOTI2MSwgMC42MTQyNzYsIDAuODA5MzA0LCAxLjAwNDI0LCAxLjE5OTIxIiwgXAotICAgICAgICAgICIwLjA3OTA2MiwgMC4yNzQ5MDUsIDAuNDMwODU4LCAwLjYyNTg2NSwgMC44MjA4NzIsIDEuMDE1OTEsIDEuMjEwNzYiLCBcCi0gICAgICAgICAgIjAuMDkwMjE5LCAwLjI4NjA1LCAwLjQ0MTkwMywgMC42MzY5MzMsIDAuODMxOTYyLCAxLjAyNjk1LCAxLjIyMTczIiwgXAotICAgICAgICAgICIwLjEwMjEzNywgMC4yOTczOTYsIDAuNDUzNDg4LCAwLjY0ODQ1LCAwLjg0MzQzMiwgMS4wMzgzNCwgMS4yMzMyNCIsIFwKLSAgICAgICAgICAiMC4xMTk0OCwgMC4zMTU4MDUsIDAuNDcxODM2LCAwLjY2NjgxMiwgMC44NjE4NDEsIDEuMDU2NzcsIDEuMjUxNjciLCBcCi0gICAgICAgICAgIjAuMTMyNTI4LCAwLjMzMTg2NywgMC40ODc4OTEsIDAuNjgyOTMxLCAwLjg3Nzg2OSwgMS4wNzI4MiwgMS4yNjc3MyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTc1ODIsIDAuNTEzNzQ0LCAwLjgzMDU3NywgMS4yMjY2OSwgMS42MjM2NSwgMi4wMTk2MSwgMi40MTYwOCIsIFwKLSAgICAgICAgICAiMC4xMTc1OTQsIDAuNTEzNjQxLCAwLjgzMDcyNiwgMS4yMjcwNCwgMS42MjMzMywgMi4wMTk2MSwgMi40MTYwNCIsIFwKLSAgICAgICAgICAiMC4xMjA2MTcsIDAuNTEzNjgsIDAuODMwNzE3LCAxLjIyNjc3LCAxLjYyMjk3LCAyLjAxOTcxLCAyLjQxNTcyIiwgXAotICAgICAgICAgICIwLjEyNjcxNywgMC41MTM2OTcsIDAuODMwNjk4LCAxLjIyNjcyLCAxLjYyMzM1LCAyLjAxOTczLCAyLjQxNTQ0IiwgXAotICAgICAgICAgICIwLjEzMzc2NCwgMC41MTM4NCwgMC44MzA1NzUsIDEuMjI2NjYsIDEuNjIzMzUsIDIuMDE5MDUsIDIuNDE1NTMiLCBcCi0gICAgICAgICAgIjAuMTQ3MDY2LCAwLjUxNjUyOCwgMC44MzA3MDIsIDEuMjI2OCwgMS42MjMzNSwgMi4wMTk0MiwgMi40MTU0NSIsIFwKLSAgICAgICAgICAiMC4xNTk1OTMsIDAuNTIxMDE5LCAwLjgzMTM4NSwgMS4yMjY3MiwgMS42MjMzMiwgMi4wMTk2NSwgMi40MTU1NCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTMzOTgsIDAuMzgyMTksIDAuNjEyODU1LCAwLjkwMjYxNSwgMS4xOTQ3LCAxLjQ4NTQyLCAxLjc3NjgzIiwgXAotICAgICAgICAgICIwLjEwMjMyNSwgMC4zOTE1NDIsIDAuNjIyMTA0LCAwLjkxMjYyOCwgMS4yMDM0MywgMS40OTQ5MSwgMS43ODcxIiwgXAotICAgICAgICAgICIwLjExMjcwNCwgMC40MDIyNzMsIDAuNjMyOTk4LCAwLjkyMjg1NSwgMS4yMTQ2MSwgMS41MDU1OCwgMS43OTgzMyIsIFwKLSAgICAgICAgICAiMC4xMjMwNTksIDAuNDEyNjY5LCAwLjY0MzQ3NywgMC45MzM2MTIsIDEuMjI0OTksIDEuNTE2NTIsIDEuODA3NCIsIFwKLSAgICAgICAgICAiMC4xMzM1NzMsIDAuNDIzMjE1LCAwLjY1NDA1MywgMC45NDQxNTUsIDEuMjM1OTIsIDEuNTI3NjgsIDEuODE5NjgiLCBcCi0gICAgICAgICAgIjAuMTUwMTEzLCAwLjQ0MDAxMSwgMC42NzEwMjQsIDAuOTYxMDk3LCAxLjI1MjkzLCAxLjU0MzY4LCAxLjgzNTg1IiwgXAotICAgICAgICAgICIwLjE2NDM3LCAwLjQ1NDY1NywgMC42ODU3MjYsIDAuOTc2MywgMS4yNjczMiwgMS41NTk1OCwgMS44NTAwNiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNTQyOTksIDAuNzIxMTI5LCAxLjE3OTQ0LCAxLjc1NjU4LCAyLjMyNDY0LCAyLjkwNTUsIDMuNDcwOTQiLCBcCi0gICAgICAgICAgIjAuMTU0MzUzLCAwLjcyMjc5NSwgMS4xODI0LCAxLjc1MTksIDIuMzMwNzYsIDIuODk3ODYsIDMuNDcwMSIsIFwKLSAgICAgICAgICAiMC4xNTQ1MTUsIDAuNzIyNTUxLCAxLjE4MDQxLCAxLjc1MjEyLCAyLjMyNDYxLCAyLjkwNDgyLCAzLjQ2OTkiLCBcCi0gICAgICAgICAgIjAuMTU2MTk5LCAwLjcyMjQ0MSwgMS4xODI2MSwgMS43NTY4OSwgMi4zMjc0NiwgMi45MDU3OCwgMy40NzM4MiIsIFwKLSAgICAgICAgICAiMC4xNTkzMDgsIDAuNzIyMDgsIDEuMTgyMjgsIDEuNzUyMDYsIDIuMzI0NTksIDIuODk3MjUsIDMuNDY5ODciLCBcCi0gICAgICAgICAgIjAuMTY2MjgzLCAwLjcyNjA2OCwgMS4xODI0NiwgMS43NTY2LCAyLjMyNDY2LCAyLjkwMjgxLCAzLjQ5NDMzIiwgXAotICAgICAgICAgICIwLjE3NDA2MywgMC43MjM1NTIsIDEuMTgyMTUsIDEuNzUxNDgsIDIuMzMwNTQsIDIuODk3NDMsIDMuNDc4NDgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQzAiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyOTIxMiwgMC4xMzExNzUsIDAuMjEyNzk4LCAwLjMxNDUyLCAwLjQxNjM4MiwgMC41MTgyMjcsIDAuNjIwMDcxIiwgXAotICAgICAgICAgICIwLjAzOTIyMSwgMC4xNDA5NTIsIDAuMjIyNTU1LCAwLjMyNDI3MiwgMC40MjYxMzMsIDAuNTI4MDMxLCAwLjYyOTg0IiwgXAotICAgICAgICAgICIwLjA1MTk4MiwgMC4xNTM5MDMsIDAuMjM1NCwgMC4zMzcyNTgsIDAuNDM5MTg0LCAwLjU0MTAyNiwgMC42NDI4NjQiLCBcCi0gICAgICAgICAgIjAuMDYzNDkyLCAwLjE2NjA0OSwgMC4yNDc2MjksIDAuMzQ5Mzc1LCAwLjQ1MTI0NCwgMC41NTMwNzgsIDAuNjUzNzYzIiwgXAotICAgICAgICAgICIwLjA3MzQ0NSwgMC4xNzg1MjEsIDAuMjYwMjU2LCAwLjM2MTk1NywgMC40NjM3MSwgMC41NjU1NzksIDAuNjY2ODk3IiwgXAotICAgICAgICAgICIwLjA4NjY3NiwgMC4xOTkyMTEsIDAuMjgwMDA3LCAwLjM4MjE4NywgMC40ODM5MTYsIDAuNTg1NTk5LCAwLjY4NzM5OSIsIFwKLSAgICAgICAgICAiMC4wOTY3MzIsIDAuMjE3MDExLCAwLjI5NzU2NSwgMC4zOTkzMjIsIDAuNTAxNTQxLCAwLjYwMzI0NiwgMC43MDQ5OTQiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDYzNjM0LCAwLjI3MzA0MSwgMC40NDA5NjMsIDAuNjUwNzI3LCAwLjg2MDgwMywgMS4wNzA4OCwgMS4yODA4MSIsIFwKLSAgICAgICAgICAiMC4wNjUxNTYsIDAuMjczMTAxLCAwLjQ0MDkxNywgMC42NTA3MDQsIDAuODYwNjc1LCAxLjA3MDc2LCAxLjI4MDUyIiwgXAotICAgICAgICAgICIwLjA3MTQ5NywgMC4yNzMwNjUsIDAuNDQwOTU5LCAwLjY1MDcxNCwgMC44NjA2NjQsIDEuMDcwODksIDEuMjgwNjgiLCBcCi0gICAgICAgICAgIjAuMDc5OTcsIDAuMjc0NTEzLCAwLjQ0MDk0NSwgMC42NTA3NDYsIDAuODYwNzU3LCAxLjA3MDU5LCAxLjI4MTA2IiwgXAotICAgICAgICAgICIwLjA4OTMxOSwgMC4yNzc5MjcsIDAuNDQxNTU3LCAwLjY1MDgzOCwgMC44NjA3LCAxLjA3MDc3LCAxLjI4MDg4IiwgXAotICAgICAgICAgICIwLjEwNTI2NSwgMC4yODU1NTgsIDAuNDQ1NDQzLCAwLjY1MTIyOSwgMC44NjA4NzksIDEuMDcwODksIDEuMjgwOTUiLCBcCi0gICAgICAgICAgIjAuMTE4NzI5LCAwLjI5NDE0OSwgMC40NTExMjEsIDAuNjUzNzYxLCAwLjg2MDkyOSwgMS4wNzA5LCAxLjI4MDkxIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4OTg5MSwgMC4zNzUzOSwgMC42MDMyMywgMC44OTIxMTIsIDEuMTg0MjMsIDEuNDc0OSwgMS43NjU4IiwgXAotICAgICAgICAgICIwLjA5ODQzLCAwLjM4NDIyMiwgMC42MTE4NiwgMC45MDA4MiwgMS4xOTI0NCwgMS40ODMzNSwgMS43NzUwMSIsIFwKLSAgICAgICAgICAiMC4xMDkxMzgsIDAuMzk1MDY1LCAwLjYyMjg0OSwgMC45MTIwNTIsIDEuMjAzMDMsIDEuNDk1MzQsIDEuNzg1OTMiLCBcCi0gICAgICAgICAgIjAuMTIwMzM0LCAwLjQwNjM5NSwgMC42MzQwNTIsIDAuOTIzMDIyLCAxLjIxNDc5LCAxLjUwNTk5LCAxLjc5ODE4IiwgXAotICAgICAgICAgICIwLjEzMTIxMSwgMC40MTY5MSwgMC42NDUwMzYsIDAuOTMzODA2LCAxLjIyNTA4LCAxLjUxNzE3LCAxLjgwODMyIiwgXAotICAgICAgICAgICIwLjE0OTEyNSwgMC40MzM5MTYsIDAuNjYyMjY0LCAwLjk1MTYwMiwgMS4yNDI4MywgMS41MzUxMywgMS44MjU5MyIsIFwKLSAgICAgICAgICAiMC4xNjUwMTIsIDAuNDQ5ODY2LCAwLjY3NzkxMiwgMC45NjczMjYsIDEuMjU4MjEsIDEuNTQ5NjYsIDEuODQyNTgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTYwMzc2LCAwLjcyMjQxOSwgMS4xODAyLCAxLjc1NjQ1LCAyLjMyNDY1LCAyLjkwNTM1LCAzLjQ3ODUxIiwgXAotICAgICAgICAgICIwLjE2MDExNCwgMC43MjU1OTEsIDEuMTgyMzQsIDEuNzU2NzIsIDIuMzM5OTcsIDIuOTA1MzIsIDMuNDczODciLCBcCi0gICAgICAgICAgIjAuMTYwMzM3LCAwLjcyMDg0NywgMS4xODAwMywgMS43NTIxOSwgMi4zMzEwMywgMi44OTc0MSwgMy40NzkyNiIsIFwKLSAgICAgICAgICAiMC4xNjM1ODYsIDAuNzIxMzUsIDEuMTgxOTUsIDEuNzU1ODksIDIuMzMxMDcsIDIuODk5OTcsIDMuNDcwMTkiLCBcCi0gICAgICAgICAgIjAuMTY4ODAzLCAwLjcyMjcyMSwgMS4xNzg4OCwgMS43NTU5NywgMi4zMjk5LCAyLjg5ODA5LCAzLjQ5Mzk2IiwgXAotICAgICAgICAgICIwLjE3ODkxOSwgMC43MjI2MjcsIDEuMTgxNzgsIDEuNzU2NjMsIDIuMzMwMiwgMi44OTc0MiwgMy40NzA3NiIsIFwKLSAgICAgICAgICAiMC4xODkxODUsIDAuNzIyMTg3LCAxLjE3OTAxLCAxLjc1MTg0LCAyLjMzMDExLCAyLjkwNDM1LCAzLjQ2OTk2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwODI3MywgMC4wMDgyNzMsIDAuMDA4MjcxLCAwLjAwODI3LCAwLjAwODI2NywgMC4wMDgyNjcsIDAuMDA4MjY3IiwgXAotICAgICAgICAgICIwLjAwODIzNiwgMC4wMDgyNDEsIDAuMDA4MjQsIDAuMDA4MjQsIDAuMDA4MjM4LCAwLjAwODIzNiwgMC4wMDgyMzUiLCBcCi0gICAgICAgICAgIjAuMDA4MjIxLCAwLjAwODIzMywgMC4wMDgyMzQsIDAuMDA4MjMzLCAwLjAwODIzMSwgMC4wMDgyMjgsIDAuMDA4MjI5IiwgXAotICAgICAgICAgICIwLjAwODIxMywgMC4wMDgyMjgsIDAuMDA4MjI5LCAwLjAwODIyOCwgMC4wMDgyMjcsIDAuMDA4MjI4LCAwLjAwODIyNSIsIFwKLSAgICAgICAgICAiMC4wMDgyMDgsIDAuMDA4MjI1LCAwLjAwODIyNiwgMC4wMDgyMjYsIDAuMDA4MjI1LCAwLjAwODIyNSwgMC4wMDgyMjUiLCBcCi0gICAgICAgICAgIjAuMDA4MjA1LCAwLjAwODIyMiwgMC4wMDgyMDMsIDAuMDA4MjI2LCAwLjAwODIyNCwgMC4wMDgyMjQsIDAuMDA4MjIyIiwgXAotICAgICAgICAgICIwLjAwODIwOCwgMC4wMDgyMjEsIDAuMDA4MjI0LCAwLjAwODIyMywgMC4wMDgyMjQsIDAuMDA4MjIyLCAwLjAwODIyMSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjMzNywgMC4wMDIzNDEsIDAuMDAyMzM5LCAwLjAwMjM0MiwgMC4wMDIzMzksIDAuMDAyMzQyLCAwLjAwMjMzMyIsIFwKLSAgICAgICAgICAiMC4wMDIyOSwgMC4wMDIzMTEsIDAuMDAyMzEyLCAwLjAwMjMxNCwgMC4wMDIzMTQsIDAuMDAyMzExLCAwLjAwMjMxMyIsIFwKLSAgICAgICAgICAiMC4wMDIyNjIsIDAuMDAyMjk4LCAwLjAwMjMwNCwgMC4wMDIzMDUsIDAuMDAyMzA4LCAwLjAwMjMwOCwgMC4wMDIzMDciLCBcCi0gICAgICAgICAgIjAuMDAyMjQzLCAwLjAwMjI5LCAwLjAwMjI5NywgMC4wMDIzMDEsIDAuMDAyMzAyLCAwLjAwMjMwNCwgMC4wMDIzMDMiLCBcCi0gICAgICAgICAgIjAuMDAyMjI4LCAwLjAwMjI4MiwgMC4wMDIyOTIsIDAuMDAyMjk4LCAwLjAwMjI5OSwgMC4wMDIzLCAwLjAwMjMwMSIsIFwKLSAgICAgICAgICAiMC4wMDIyMTIsIDAuMDAyMjcyLCAwLjAwMjI4NSwgMC4wMDIyOTIsIDAuMDAyMjk1LCAwLjAwMjI5NywgMC4wMDIyOTgiLCBcCi0gICAgICAgICAgIjAuMDAyMjA0LCAwLjAwMjI2NCwgMC4wMDIyNzksIDAuMDAyMjg3LCAwLjAwMjI5MiwgMC4wMDIyOTQsIDAuMDAyMjk2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNzYsIDAuMDA3NiwgMC4wMDc1OTksIDAuMDA3NTk3LCAwLjAwNzU5NiwgMC4wMDc1OTQsIDAuMDA3NTkyIiwgXAotICAgICAgICAgICIwLjAwNzU0NSwgMC4wMDc1NjQsIDAuMDA3NTYzLCAwLjAwNzU2MiwgMC4wMDc1NjIsIDAuMDA3NTYsIDAuMDA3NTYiLCBcCi0gICAgICAgICAgIjAuMDA3NTM0LCAwLjAwNzU1NSwgMC4wMDc1NTUsIDAuMDA3NTU2LCAwLjAwNzU1NywgMC4wMDc1NTUsIDAuMDA3NTUzIiwgXAotICAgICAgICAgICIwLjAwNzUyNSwgMC4wMDc1NDcsIDAuMDA3NTUxLCAwLjAwNzU1LCAwLjAwNzU0OSwgMC4wMDc1NTEsIDAuMDA3NTQ4IiwgXAotICAgICAgICAgICIwLjAwNzUzMSwgMC4wMDc1MzgsIDAuMDA3NTQ5LCAwLjAwNzU0NywgMC4wMDc1NSwgMC4wMDc1NDYsIDAuMDA3NTQ3IiwgXAotICAgICAgICAgICIwLjAwNzU0OSwgMC4wMDc1NDYsIDAuMDA3NTQ4LCAwLjAwNzU0NywgMC4wMDc1NDcsIDAuMDA3NTQ4LCAwLjAwNzU0NyIsIFwKLSAgICAgICAgICAiMC4wMDc1NzQsIDAuMDA3NTUzLCAwLjAwNzU1MywgMC4wMDc1NSwgMC4wMDc1NSwgMC4wMDc1NDcsIDAuMDA3NTQ2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxNzI5LCAwLjAwMTc0NCwgMC4wMDE3NDUsIDAuMDAxNzQ2LCAwLjAwMTc0NiwgMC4wMDE3NDYsIDAuMDAxNzQ0IiwgXAotICAgICAgICAgICIwLjAwMTY5LCAwLjAwMTc1MSwgMC4wMDE3NTgsIDAuMDAxNzYyLCAwLjAwMTc2NCwgMC4wMDE3NjUsIDAuMDAxNzYzIiwgXAotICAgICAgICAgICIwLjAwMTYzNSwgMC4wMDE3MzQsIDAuMDAxNzUxLCAwLjAwMTc1OCwgMC4wMDE3NjIsIDAuMDAxNzY0LCAwLjAwMTc2NiIsIFwKLSAgICAgICAgICAiMC4wMDE1OTQsIDAuMDAxNzE3LCAwLjAwMTczOCwgMC4wMDE3NSwgMC4wMDE3NTUsIDAuMDAxNzU5LCAwLjAwMTc2IiwgXAotICAgICAgICAgICIwLjAwMTU2NSwgMC4wMDE3MDEsIDAuMDAxNzI3LCAwLjAwMTc0MSwgMC4wMDE3NDksIDAuMDAxNzU0LCAwLjAwMTc1NyIsIFwKLSAgICAgICAgICAiMC4wMDE1MzIsIDAuMDAxNjc3LCAwLjAwMTcxLCAwLjAwMTcyOSwgMC4wMDE3MzksIDAuMDAxNzQ2LCAwLjAwMTc1IiwgXAotICAgICAgICAgICIwLjAwMTUxMywgMC4wMDE2NTksIDAuMDAxNjk2LCAwLjAwMTcxOSwgMC4wMDE3MzEsIDAuMDAxNzM5LCAwLjAwMTc0NSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDYzMSwgMC4wMDYzMSwgMC4wMDYzMSwgMC4wMDYzMTEsIDAuMDA2MzEsIDAuMDA2MzA5LCAwLjAwNjMwNyIsIFwKLSAgICAgICAgICAiMC4wMDYyOSwgMC4wMDYzMDgsIDAuMDA2MzEsIDAuMDA2MzExLCAwLjAwNjMwOSwgMC4wMDYzMTEsIDAuMDA2MzA4IiwgXAotICAgICAgICAgICIwLjAwNjI2NiwgMC4wMDYzMDIsIDAuMDA2MzA2LCAwLjAwNjMwOCwgMC4wMDYzMDgsIDAuMDA2MzA5LCAwLjAwNjMwOCIsIFwKLSAgICAgICAgICAiMC4wMDYyNDcsIDAuMDA2Mjk2LCAwLjAwNjMwMywgMC4wMDYzMDUsIDAuMDA2MzA2LCAwLjAwNjMwNywgMC4wMDYzMDkiLCBcCi0gICAgICAgICAgIjAuMDA2MjM4LCAwLjAwNjI4OSwgMC4wMDYyOTgsIDAuMDA2MzAzLCAwLjAwNjMwNCwgMC4wMDYzMDUsIDAuMDA2MzA4IiwgXAotICAgICAgICAgICIwLjAwNjIyNywgMC4wMDYyODMsIDAuMDA2Mjg5LCAwLjAwNjI5OSwgMC4wMDYzMDEsIDAuMDA2MzAzLCAwLjAwNjMwMyIsIFwKLSAgICAgICAgICAiMC4wMDYyMjksIDAuMDA2MjgsIDAuMDA2MjkxLCAwLjAwNjI5NywgMC4wMDYzLCAwLjAwNjMwMSwgMC4wMDYzMDMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDIzNCwgMC4wMDIzNDMsIDAuMDAyMzM5LCAwLjAwMjMzNywgMC4wMDIzNDYsIDAuMDAyMzQsIDAuMDAyMzM5IiwgXAotICAgICAgICAgICIwLjAwMjI5LCAwLjAwMjMxMSwgMC4wMDIzMTMsIDAuMDAyMzE0LCAwLjAwMjMxMywgMC4wMDIzMTMsIDAuMDAyMzEzIiwgXAotICAgICAgICAgICIwLjAwMjI2MiwgMC4wMDIyOTksIDAuMDAyMzA0LCAwLjAwMjMwNiwgMC4wMDIzMDcsIDAuMDAyMzA3LCAwLjAwMjMwNyIsIFwKLSAgICAgICAgICAiMC4wMDIyNDMsIDAuMDAyMjksIDAuMDAyMjk3LCAwLjAwMjMwMSwgMC4wMDIzMDIsIDAuMDAyMzA0LCAwLjAwMjMwMyIsIFwKLSAgICAgICAgICAiMC4wMDIyMjksIDAuMDAyMjgzLCAwLjAwMjI5MywgMC4wMDIyOTgsIDAuMDAyMywgMC4wMDIzMDEsIDAuMDAyMzAxIiwgXAotICAgICAgICAgICIwLjAwMjIxNiwgMC4wMDIyNzQsIDAuMDAyMjg1LCAwLjAwMjI5MywgMC4wMDIyOTYsIDAuMDAyMjk4LCAwLjAwMjI5OSIsIFwKLSAgICAgICAgICAiMC4wMDIyMTIsIDAuMDAyMjY3LCAwLjAwMjI4MSwgMC4wMDIyODksIDAuMDAyMjkyLCAwLjAwMjI5NSwgMC4wMDIyOTYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1NjE4LCAwLjAwNTYyMiwgMC4wMDU2MjEsIDAuMDA1NjIsIDAuMDA1NjIsIDAuMDA1NjIsIDAuMDA1NjE5IiwgXAotICAgICAgICAgICIwLjAwNTU4OCwgMC4wMDU2MTUsIDAuMDA1NjE3LCAwLjAwNTYxOSwgMC4wMDU2MTksIDAuMDA1NjE5LCAwLjAwNTYxOSIsIFwKLSAgICAgICAgICAiMC4wMDU1NjQsIDAuMDA1NjA3LCAwLjAwNTYxMywgMC4wMDU2MTUsIDAuMDA1NjE2LCAwLjAwNTYxNywgMC4wMDU2MTYiLCBcCi0gICAgICAgICAgIjAuMDA1NTU1LCAwLjAwNTYwMywgMC4wMDU2MSwgMC4wMDU2MTQsIDAuMDA1NjE2LCAwLjAwNTYxNSwgMC4wMDU2MTUiLCBcCi0gICAgICAgICAgIjAuMDA1NTU5LCAwLjAwNTYwMSwgMC4wMDU2MDgsIDAuMDA1NjExLCAwLjAwNTYxMywgMC4wMDU2MTUsIDAuMDA1NjE1IiwgXAotICAgICAgICAgICIwLjAwNTU3OCwgMC4wMDU1OTksIDAuMDA1NjA2LCAwLjAwNTYxLCAwLjAwNTYxMiwgMC4wMDU2MTQsIDAuMDA1NjEzIiwgXAotICAgICAgICAgICIwLjAwNTYwNywgMC4wMDU2MDQsIDAuMDA1NjA5LCAwLjAwNTYxMywgMC4wMDU2MTMsIDAuMDA1NjE0LCAwLjAwNTYxNCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTY1NSwgMC4wMDE2NywgMC4wMDE2NzIsIDAuMDAxNjcyLCAwLjAwMTY3MywgMC4wMDE2NzIsIDAuMDAxNjcyIiwgXAotICAgICAgICAgICIwLjAwMTYxNywgMC4wMDE2NzgsIDAuMDAxNjg2LCAwLjAwMTY4OSwgMC4wMDE2OTMsIDAuMDAxNjkyLCAwLjAwMTY5MyIsIFwKLSAgICAgICAgICAiMC4wMDE1NjIsIDAuMDAxNjYyLCAwLjAwMTY3NywgMC4wMDE2ODQsIDAuMDAxNjg4LCAwLjAwMTY5MSwgMC4wMDE2OTIiLCBcCi0gICAgICAgICAgIjAuMDAxNTIxLCAwLjAwMTY0NSwgMC4wMDE2NjUsIDAuMDAxNjc3LCAwLjAwMTY4MywgMC4wMDE2ODYsIDAuMDAxNjg5IiwgXAotICAgICAgICAgICIwLjAwMTQ5MiwgMC4wMDE2MjksIDAuMDAxNjU0LCAwLjAwMTY2OSwgMC4wMDE2NzcsIDAuMDAxNjgyLCAwLjAwMTY4NSIsIFwKLSAgICAgICAgICAiMC4wMDE0NjQsIDAuMDAxNjA2LCAwLjAwMTYzOCwgMC4wMDE2NTcsIDAuMDAxNjY4LCAwLjAwMTY3NCwgMC4wMDE2NzgiLCBcCi0gICAgICAgICAgIjAuMDAxNDUsIDAuMDAxNTg5LCAwLjAwMTYyNSwgMC4wMDE2NDgsIDAuMDAxNjYsIDAuMDAxNjY4LCAwLjAwMTY3MyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQ2MSwgMC4wMDQ2MjUsIDAuMDA0NjI3LCAwLjAwNDYyNywgMC4wMDQ2MjcsIDAuMDA0NjI3LCAwLjAwNDYyNyIsIFwKLSAgICAgICAgICAiMC4wMDQ1OTEsIDAuMDA0NjQ0LCAwLjAwNDY1LCAwLjAwNDY1NCwgMC4wMDQ2NTUsIDAuMDA0NjYxLCAwLjAwNDY2MyIsIFwKLSAgICAgICAgICAiMC4wMDQ1NjcsIDAuMDA0NjM2LCAwLjAwNDY0NywgMC4wMDQ2NTMsIDAuMDA0NjU2LCAwLjAwNDY1NywgMC4wMDQ2NTgiLCBcCi0gICAgICAgICAgIjAuMDA0NTU2LCAwLjAwNDYzMiwgMC4wMDQ2NDUsIDAuMDA0NjUyLCAwLjAwNDY1NiwgMC4wMDQ2NTgsIDAuMDA0NjYyIiwgXAotICAgICAgICAgICIwLjAwNDU2LCAwLjAwNDYzLCAwLjAwNDY0MywgMC4wMDQ2NTEsIDAuMDA0NjU0LCAwLjAwNDY1NywgMC4wMDQ2NjIiLCBcCi0gICAgICAgICAgIjAuMDA0NTgyLCAwLjAwNDYyOSwgMC4wMDQ2NCwgMC4wMDQ2NTEsIDAuMDA0NjU0LCAwLjAwNDY1NiwgMC4wMDQ2NTgiLCBcCi0gICAgICAgICAgIjAuMDA0NjE5LCAwLjAwNDYzNiwgMC4wMDQ2NDMsIDAuMDA0NjUsIDAuMDA0NjU1LCAwLjAwNDY1NywgMC4wMDQ2NTkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDIzODUsIDAuMDAyNDAyLCAwLjAwMjQwNCwgMC4wMDI0MDYsIDAuMDAyNDA2LCAwLjAwMjQwMywgMC4wMDI0MDMiLCBcCi0gICAgICAgICAgIjAuMDAyMzIxLCAwLjAwMjM4MywgMC4wMDIzOTEsIDAuMDAyMzk2LCAwLjAwMjM5OCwgMC4wMDIzOTksIDAuMDAyMzk5IiwgXAotICAgICAgICAgICIwLjAwMjI4NCwgMC4wMDIzNjQsIDAuMDAyMzc4LCAwLjAwMjM4NywgMC4wMDIzOTEsIDAuMDAyMzk1LCAwLjAwMjM5NCIsIFwKLSAgICAgICAgICAiMC4wMDIyNjYsIDAuMDAyMzQ5LCAwLjAwMjM2OCwgMC4wMDIzNzksIDAuMDAyMzg0LCAwLjAwMjM4NywgMC4wMDIzODkiLCBcCi0gICAgICAgICAgIjAuMDAyMjcsIDAuMDAyMzM5LCAwLjAwMjM2LCAwLjAwMjM3MywgMC4wMDIzNzksIDAuMDAyMzgzLCAwLjAwMjM4NSIsIFwKLSAgICAgICAgICAiMC4wMDIyOTMsIDAuMDAyMzI5LCAwLjAwMjM1MSwgMC4wMDIzNjUsIDAuMDAyMzczLCAwLjAwMjM3OCwgMC4wMDIzODIiLCBcCi0gICAgICAgICAgIjAuMDAyMzMxLCAwLjAwMjMzMSwgMC4wMDIzNDksIDAuMDAyMzYyLCAwLjAwMjM3LCAwLjAwMjM3NSwgMC4wMDIzNzkiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogT1IzWDYgKgotICogLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKE9SM1g2KSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuNDgyMTc0OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE4OTMxOTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE4ODE0OTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE4OTMxOTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA3MDIsIDAuMDAwNzQzLCAwLjAwMDc1NywgMC4wMDA3NjYsIDAuMDAwNzcyLCAwLjAwMDc3MywgMC4wMDA3ODIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDE0ODUsIDAuMDAxNDg1LCAwLjAwMTQ4NiwgMC4wMDE0ODYsIDAuMDAxNDg2LCAwLjAwMTQ4NiwgMC4wMDE0ODQiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTczNjQyOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTcyNTU0OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTczNjQyOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDY5OSwgMC4wMDA3NjgsIDAuMDAwNzgsIDAuMDAwNzgyLCAwLjAwMDc4NCwgMC4wMDA3OTEsIDAuMDAwNzkzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwODYsIDAuMDAwODYxLCAwLjAwMDg2MSwgMC4wMDA4NjEsIDAuMDAwODYxLCAwLjAwMDg2MSwgMC4wMDA4NjEiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEMpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTU4NTUyOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTU4NDk2OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTU4NTUyOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDIxNiwgMC4wMDAyMTYsIDAuMDAwMjE2LCAwLjAwMDIxNiwgMC4wMDAyMTYsIDAuMDAwMjE2LCAwLjAwMDIxNiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDY1MiwgMC4wMDA2NTIsIDAuMDAwNjUyLCAwLjAwMDY1MSwgMC4wMDA2NTEsIDAuMDAwNjUxLCAwLjAwMDY1MSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAxLjUxMjQ4OwotICAgIGZ1bmN0aW9uIDogIigoQStCKStDKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDA0MDgsIDAuMDkwMjY0LCAwLjEzODU3NCwgMC4xNzMwMzcsIDAuMjI4MTE2LCAwLjI3NjMyNiwgMC4zNDUxNTQiLCBcCi0gICAgICAgICAgIjAuMDUwNjQ3LCAwLjEwMDQ4MSwgMC4xNDg3ODQsIDAuMTgzMjUsIDAuMjM4MzQ5LCAwLjI4NjUyMywgMC4zNTUyNDMiLCBcCi0gICAgICAgICAgIjAuMDYzNTY2LCAwLjExMzM1LCAwLjE2MTY2MywgMC4xOTYxNDYsIDAuMjUxMjE0LCAwLjI5OTM4OSwgMC4zNjgyMDUiLCBcCi0gICAgICAgICAgIjAuMDc1Mjg4LCAwLjEyNTE5LCAwLjE3MzQ5NywgMC4yMDc5NjMsIDAuMjYzMDU1LCAwLjMxMTIzMywgMC4zODAwNyIsIFwKLSAgICAgICAgICAiMC4wODU1MzEsIDAuMTM1NDcyLCAwLjE4Mzc2NSwgMC4yMTgyMjUsIDAuMjczMzM4LCAwLjMyMTUwNSwgMC4zOTAzMTMiLCBcCi0gICAgICAgICAgIjAuMTAwMDkyLCAwLjE1MDczMSwgMC4xOTkwMDYsIDAuMjMzNDUxLCAwLjI4ODU0MSwgMC4zMzY2OTYsIDAuNDA1NTI2IiwgXAotICAgICAgICAgICIwLjExMDg5NSwgMC4xNjE4OTgsIDAuMjEwMjAxLCAwLjI0NDY0LCAwLjI5OTczOSwgMC4zNDc4OTgsIDAuNDE2NzExIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDI1MDc1LCAwLjEyMTI1OCwgMC4yMjAwMTksIDAuMjkwNTUyLCAwLjQwNDg0LCAwLjUwNDM5MSwgMC42NDY1MzUiLCBcCi0gICAgICAgICAgIjAuMDI0OTkzLCAwLjEyMTAyMywgMC4yMTk5OTYsIDAuMjkwNzI4LCAwLjQwNDg2LCAwLjUwNDI4MSwgMC42NDQ4MjkiLCBcCi0gICAgICAgICAgIjAuMDI1MTcsIDAuMTIxMzE3LCAwLjIxOTk2OCwgMC4yOTEyNDIsIDAuNDA0ODAyLCAwLjUwNDIzMSwgMC42NDYzMDYiLCBcCi0gICAgICAgICAgIjAuMDI2MTgsIDAuMTIxMzMxLCAwLjIyMDI0NiwgMC4yOTA4NDQsIDAuNDA0MzIxLCAwLjUwMzY1NCwgMC42NDUyMDgiLCBcCi0gICAgICAgICAgIjAuMDI3NDk3LCAwLjEyMTcwMSwgMC4yMjAzMDIsIDAuMjkwODc4LCAwLjQwNDgwOSwgMC41MDQyMDIsIDAuNjQ2MjYxIiwgXAotICAgICAgICAgICIwLjAyOTU0LCAwLjEyMjIxOCwgMC4yMjAyOTEsIDAuMjkxMzE0LCAwLjQwNDg1NSwgMC41MDM2NzksIDAuNjQ2Mjg5IiwgXAotICAgICAgICAgICIwLjAzMTIyMiwgMC4xMjI5MTMsIDAuMjIwNDQ2LCAwLjI5MTM5NCwgMC40MDQ4LCAwLjUwMzczNSwgMC42NDYzMTYiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODIzOTksIDAuMTQyMzk0LCAwLjE5NDIyMSwgMC4yMzA3MDQsIDAuMjg4OTE1LCAwLjMzOTg0NiwgMC40MTI1OTEiLCBcCi0gICAgICAgICAgIjAuMDkwNDg4LCAwLjE1MDU2OCwgMC4yMDIzNjYsIDAuMjM4ODU1LCAwLjI5NzA2OSwgMC4zNDc5ODIsIDAuNDIwNzA0IiwgXAotICAgICAgICAgICIwLjA5OTA2LCAwLjE1OTIxMywgMC4yMTA5ODQsIDAuMjQ3NDczLCAwLjMwNTY4NywgMC4zNTY2MzksIDAuNDI5MzMzIiwgXAotICAgICAgICAgICIwLjEwNzE3OCwgMC4xNjcyNywgMC4yMTkwNDIsIDAuMjU1NTM3LCAwLjMxMzc3MSwgMC4zNjQ2NzQsIDAuNDM3NDA3IiwgXAotICAgICAgICAgICIwLjExNDc0NiwgMC4xNzQ5NjQsIDAuMjI2NjQ0LCAwLjI2MzE1LCAwLjMyMTM2LCAwLjM3MjI3NSwgMC40NDUwMDkiLCBcCi0gICAgICAgICAgIjAuMTI1NzY0LCAwLjE4NjQ2LCAwLjIzODI2NywgMC4yNzQ3NzEsIDAuMzMzMDEsIDAuMzgzOTEyLCAwLjQ1NjYzOCIsIFwKLSAgICAgICAgICAiMC4xMzQ2MywgMC4xOTU3OTUsIDAuMjQ3NjczLCAwLjI4NDE3MSwgMC4zNDIzNzYsIDAuMzkzMzEsIDAuNDY2MDE4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM2NTcyLCAwLjEzNDQxMSwgMC4yMzMzNTUsIDAuMzA0OSwgMC40MjE0NzEsIDAuNTIzNTE4LCAwLjY2OTY5NiIsIFwKLSAgICAgICAgICAiMC4wMzY1OSwgMC4xMzQzNjEsIDAuMjMzMzYyLCAwLjMwNTA1OCwgMC40MjE0MjUsIDAuNTIzMzQxLCAwLjY2OTE0NyIsIFwKLSAgICAgICAgICAiMC4wMzY2MzQsIDAuMTM0MjkzLCAwLjIzMzI4MSwgMC4zMDUyNSwgMC40MjA4NDYsIDAuNTIzNTg5LCAwLjY2OTQ3NiIsIFwKLSAgICAgICAgICAiMC4wMzY2NDQsIDAuMTM0MjYxLCAwLjIzMzI4NSwgMC4zMDUzMDQsIDAuNDIwODgyLCAwLjUyMzM4MiwgMC42NjgzNjYiLCBcCi0gICAgICAgICAgIjAuMDM2OTcxLCAwLjEzNDM4NCwgMC4yMzM1NTIsIDAuMzA0OTQsIDAuNDIxNDk2LCAwLjUyMzQyMSwgMC42Njg0MDEiLCBcCi0gICAgICAgICAgIjAuMDM4MzI0LCAwLjEzNTA0NiwgMC4yMzQwODcsIDAuMzA1NjUyLCAwLjQyMTc2NiwgMC41MjM1MTcsIDAuNjY4ODI3IiwgXAotICAgICAgICAgICIwLjAzODkyMiwgMC4xMzU3NjgsIDAuMjM0MjE3LCAwLjMwNTY5MywgMC40MjE0NTQsIDAuNTIzODExLCAwLjY2ODc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM4NTI5LCAwLjA4ODA4NSwgMC4xMzYzMzMsIDAuMTcwNzY4LCAwLjIyNTgyMSwgMC4yNzM5NzMsIDAuMzQyNzg0IiwgXAotICAgICAgICAgICIwLjA0ODcxOSwgMC4wOTgyOSwgMC4xNDY1NDEsIDAuMTgwOTc0LCAwLjIzNjAyNywgMC4yODQxOTMsIDAuMzUyOTk3IiwgXAotICAgICAgICAgICIwLjA2MTM3MiwgMC4xMTA5NTEsIDAuMTU5MjA5LCAwLjE5MzY2OSwgMC4yNDg3MTIsIDAuMjk2ODk2LCAwLjM2NTcxOCIsIFwKLSAgICAgICAgICAiMC4wNzI2NzQsIDAuMTIyMzMyLCAwLjE3MDU4LCAwLjIwNTAxNSwgMC4yNjAwNzcsIDAuMzA4MjQ0LCAwLjM3NzA0NSIsIFwKLSAgICAgICAgICAiMC4wODI0NSwgMC4xMzI0OTYsIDAuMTgwNzMsIDAuMjE1MTg0LCAwLjI3MDI1NCwgMC4zMTgzOTMsIDAuMzg3MTgzIiwgXAotICAgICAgICAgICIwLjA5NjA2NSwgMC4xNDY2NzIsIDAuMTk0OTQ2LCAwLjIyOTM4MSwgMC4yODQ0MzcsIDAuMzMyNTg3LCAwLjQwMTQzMSIsIFwKLSAgICAgICAgICAiMC4xMDYyNTQsIDAuMTU3NDg4LCAwLjIwNTY4NiwgMC4yNDAwNzEsIDAuMjk1MTMyLCAwLjM0MzMyNiwgMC40MTIxMTQiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjQ1NzIsIDAuMTIwODIyLCAwLjIxOTczNywgMC4yOTEwMTQsIDAuNDA0NjQ1LCAwLjUwMzQ5MywgMC42NDU0NDUiLCBcCi0gICAgICAgICAgIjAuMDI0NTQ2LCAwLjEyMDk2NCwgMC4yMTkzNzQsIDAuMjkwOTY4LCAwLjQwNDYwNiwgMC41MDM0OTYsIDAuNjQ1NTU5IiwgXAotICAgICAgICAgICIwLjAyNDkyMSwgMC4xMjA5MjcsIDAuMjE5NzQsIDAuMjkxMDI5LCAwLjQwNDU1NywgMC41MDQxMjMsIDAuNjQ2MjEiLCBcCi0gICAgICAgICAgIjAuMDI2MTcxLCAwLjEyMTI0OCwgMC4yMjAwMTIsIDAuMjkwOTM5LCAwLjQwNDEyOSwgMC41MDM5OTcsIDAuNjQ1NDYzIiwgXAotICAgICAgICAgICIwLjAyNzUsIDAuMTIxNDcsIDAuMjE5ODkyLCAwLjI5MTAyMiwgMC40MDQ2MjYsIDAuNTA0MDA4LCAwLjY0NjA2NyIsIFwKLSAgICAgICAgICAiMC4wMjk2NDEsIDAuMTIyMTM3LCAwLjIyMDEwNiwgMC4yOTA3MzYsIDAuNDA0NjI0LCAwLjUwNDAwNywgMC42NDUwODEiLCBcCi0gICAgICAgICAgIjAuMDMxNTU2LCAwLjEyMjczNywgMC4yMjA0MjYsIDAuMjkwOTgzLCAwLjQwNDMzMSwgMC41MDM5NTYsIDAuNjQ2MTUzIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc5MzY2LCAwLjEzOTU5MywgMC4xOTEzOTEsIDAuMjI3ODYzLCAwLjI4NjEwMiwgMC4zMzcwMTgsIDAuNDA5NzMyIiwgXAotICAgICAgICAgICIwLjA4NzY3NiwgMC4xNDc3MjcsIDAuMTk5NTIxLCAwLjIzNjAxNiwgMC4yOTQyMzIsIDAuMzQ1MTQ2LCAwLjQxNzg3NyIsIFwKLSAgICAgICAgICAiMC4wOTc0MjUsIDAuMTU3NTk0LCAwLjIwOTM2MywgMC4yNDU4NjgsIDAuMzA0MDg0LCAwLjM1NDk5NiwgMC40Mjc3NTQiLCBcCi0gICAgICAgICAgIjAuMTA3MTQ3LCAwLjE2NzIzOCwgMC4yMTkwMTYsIDAuMjU1NTA2LCAwLjMxMzc0NSwgMC4zNjQ2NTYsIDAuNDM3MzgxIiwgXAotICAgICAgICAgICIwLjExNjUwOCwgMC4xNzY2MTYsIDAuMjI4NDAzLCAwLjI2NDg5MywgMC4zMjMxMzcsIDAuMzc0MDQyLCAwLjQ0Njc3MSIsIFwKLSAgICAgICAgICAiMC4xMzAwMTcsIDAuMTkwNDM5LCAwLjI0MjI1MywgMC4yNzg3MzMsIDAuMzM2OTY5LCAwLjM4Nzg3OCwgMC40NjA2MDIiLCBcCi0gICAgICAgICAgIjAuMTQwNTQzLCAwLjIwMTY4NCwgMC4yNTM1NDIsIDAuMjkwMDUsIDAuMzQ4Mjc1LCAwLjM5OTE5MywgMC40NzE5MDgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzY4NDcsIDAuMTM0Mzk1LCAwLjIzMzM4NCwgMC4zMDUyMjksIDAuNDIxNDEzLCAwLjUyMzMwNywgMC42NjkzNzIiLCBcCi0gICAgICAgICAgIjAuMDM2NTY5LCAwLjEzNDM2NiwgMC4yMzMzNTEsIDAuMzA0OTA5LCAwLjQyMTQ0NSwgMC41MjM0MTcsIDAuNjY4MzUiLCBcCi0gICAgICAgICAgIjAuMDM2NjMyLCAwLjEzNDI4MSwgMC4yMzMyODMsIDAuMzA1MjYyLCAwLjQyMDgyNywgMC41MjMzNzUsIDAuNjY5NjMiLCBcCi0gICAgICAgICAgIjAuMDM2NjU3LCAwLjEzNDI5NCwgMC4yMzMyOTksIDAuMzA0ODUzLCAwLjQyMTUwNywgMC41MjM0MDQsIDAuNjY4Mjg5IiwgXAotICAgICAgICAgICIwLjAzNzI4NywgMC4xMzQ2NzcsIDAuMjMzNDY0LCAwLjMwNTQ5NSwgMC40MjE1ODgsIDAuNTIzNDMyLCAwLjY2ODMxOCIsIFwKLSAgICAgICAgICAiMC4wMzg0MDYsIDAuMTM1NTQsIDAuMjM0MDg2LCAwLjMwNTc5OCwgMC40MjE3NzcsIDAuNTIzNTcxLCAwLjY2OTMwNyIsIFwKLSAgICAgICAgICAiMC4wMzk2NjcsIDAuMTM2MDI2LCAwLjIzNDM1MywgMC4zMDU5NjUsIDAuNDIxMjQxLCAwLjUyMzIyNywgMC42Njk2MzciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzYwMjIsIDAuMDg1NTI1LCAwLjEzMzcyLCAwLjE2ODE1LCAwLjIyMzIzNiwgMC4yNzEzOTMsIDAuMzQwMTU2IiwgXAotICAgICAgICAgICIwLjA0NjI2MywgMC4wOTU3MjUsIDAuMTQzOTI5LCAwLjE3ODM2LCAwLjIzMzMyNywgMC4yODE1OTIsIDAuMzUwMzg5IiwgXAotICAgICAgICAgICIwLjA1ODU1LCAwLjEwODA4MywgMC4xNTYyOTYsIDAuMTkwNzQsIDAuMjQ1Nzc5LCAwLjI5Mzk3MiwgMC4zNjI3NzMiLCBcCi0gICAgICAgICAgIjAuMDY5MjY2LCAwLjExODkxNSwgMC4xNjcxMjEsIDAuMjAxNTI1LCAwLjI1NjU5OCwgMC4zMDQ3ODgsIDAuMzczODA5IiwgXAotICAgICAgICAgICIwLjA3ODMwMiwgMC4xMjg0NzUsIDAuMTc2NjcsIDAuMjExMDc5LCAwLjI2NjE5NSwgMC4zMTQzMjIsIDAuMzgzMTQxIiwgXAotICAgICAgICAgICIwLjA5MDkwNSwgMC4xNDE3NDksIDAuMTg5OTg1LCAwLjIyNDM3MywgMC4yNzk0MTIsIDAuMzI3NjM5LCAwLjM5NjM4NSIsIFwKLSAgICAgICAgICAiMC4xMDA1MjYsIDAuMTUxNjcyLCAwLjE5OTcxNSwgMC4yMzQxMjQsIDAuMjg5MTY2LCAwLjMzNzMwNCwgMC40MDYwOTgiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjQzNywgMC4xMjA2ODcsIDAuMjE5NjI5LCAwLjI5MDk1NiwgMC40MDM3NCwgMC41MDMwMjQsIDAuNjQ2MDQzIiwgXAotICAgICAgICAgICIwLjAyNDM2LCAwLjEyMDc0MSwgMC4yMTk2MTIsIDAuMjkwOTQ2LCAwLjQwMzkyMiwgMC41MDM0MjgsIDAuNjQ2MDA4IiwgXAotICAgICAgICAgICIwLjAyNTA1MiwgMC4xMjA4NDgsIDAuMjE5NjA4LCAwLjI5MDMxOCwgMC40MDQ1NjEsIDAuNTAzODY2LCAwLjY0NjA2OCIsIFwKLSAgICAgICAgICAiMC4wMjY0NzEsIDAuMTIxMjA4LCAwLjIyMDAxMywgMC4yOTA3MzcsIDAuNDA0MzkxLCAwLjUwMzEwNCwgMC42NDUwOCIsIFwKLSAgICAgICAgICAiMC4wMjc4OTQsIDAuMTIxNjAyLCAwLjIyMDA5NiwgMC4yOTA5NzEsIDAuNDAzNjk2LCAwLjUwNDA5MywgMC42NDQ5OSIsIFwKLSAgICAgICAgICAiMC4wMzA0NTIsIDAuMTIyMjY2LCAwLjIyMDQwMSwgMC4yOTExLCAwLjQwNDY0MSwgMC41MDMwNSwgMC42NDYyNTMiLCBcCi0gICAgICAgICAgIjAuMDMyMDk3LCAwLjEyMzEzOCwgMC4yMjA1MDgsIDAuMjkxMjMsIDAuNDA0NzU1LCAwLjUwNDE1OSwgMC42NDYyODMiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzI1NTIsIDAuMTMyNjI0LCAwLjE4NDQxNiwgMC4yMjA4OTUsIDAuMjc5MTIsIDAuMzMwMDM5LCAwLjQwMjc1OSIsIFwKLSAgICAgICAgICAiMC4wODA2NTcsIDAuMTQwNzc3LCAwLjE5MjU4MSwgMC4yMjkwNjcsIDAuMjg3MzAzLCAwLjMzODIxNSwgMC40MTA5NDMiLCBcCi0gICAgICAgICAgIjAuMDkxMjg0LCAwLjE1MTM5MSwgMC4yMDMxNzIsIDAuMjM5NjczLCAwLjI5NzksIDAuMzQ4ODE2LCAwLjQyMTU1MSIsIFwKLSAgICAgICAgICAiMC4xMDIzNTYsIDAuMTYyMzIzLCAwLjIxNDA5MSwgMC4yNTA2MDEsIDAuMzA4ODI2LCAwLjM1OTc0MiwgMC40MzI0ODYiLCBcCi0gICAgICAgICAgIjAuMTEyNzg4LCAwLjE3Mjk2NSwgMC4yMjQ3NDMsIDAuMjYxMjQxLCAwLjMxOTQ2NCwgMC4zNzAzOTQsIDAuNDQzMTIxIiwgXAotICAgICAgICAgICIwLjEyNzY3MywgMC4xODc4NjEsIDAuMjM5NjY2LCAwLjI3NjE0OCwgMC4zMzQzNzYsIDAuMzg1Mjk0LCAwLjQ1ODAxMSIsIFwKLSAgICAgICAgICAiMC4xMzkxMTIsIDAuMTk5ODA1LCAwLjI1MTcyLCAwLjI4ODIxMywgMC4zNDY0MzcsIDAuMzk3MzU2LCAwLjQ3MDA3OSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzNjY0MSwgMC4xMzQ0NjIsIDAuMjMzMzgyLCAwLjMwNDkyOSwgMC40MjE0MjUsIDAuNTIyNTMyLCAwLjY2OTM5NyIsIFwKLSAgICAgICAgICAiMC4wMzY2NTQsIDAuMTM0MzA2LCAwLjIzMzI5OSwgMC4zMDUxNzMsIDAuNDIxNDUzLCAwLjUyMzM1NiwgMC42NjgyNzYiLCBcCi0gICAgICAgICAgIjAuMDM2NTkxLCAwLjEzNDI0OSwgMC4yMzMyODUsIDAuMzA1MjY4LCAwLjQyMTQ2MiwgMC41MjMzNzQsIDAuNjY4MzQ0IiwgXAotICAgICAgICAgICIwLjAzNjY4NSwgMC4xMzQ0NTQsIDAuMjMzNDYyLCAwLjMwNDkyNSwgMC40MjA4NDMsIDAuNTIzMzk1LCAwLjY2OTUxNiIsIFwKLSAgICAgICAgICAiMC4wMzczODcsIDAuMTM0NTkzLCAwLjIzMzQyNSwgMC4zMDUzMzgsIDAuNDIwODY5LCAwLjUyMjY1NSwgMC42NjgzMjQiLCBcCi0gICAgICAgICAgIjAuMDM5MDQsIDAuMTM1NjkyLCAwLjIzNDAzOCwgMC4zMDU4OTIsIDAuNDIxNzg1LCAwLjUyMzU5OCwgMC42Njk1MjkiLCBcCi0gICAgICAgICAgIjAuMDQwNTk1LCAwLjEzNjQ0NCwgMC4yMzQ2NTIsIDAuMzA2MzI2LCAwLjQyMjA1OSwgMC41MjI5MzksIDAuNjY5Njg0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDc2ODQsIDAuMDA3OTA3LCAwLjAwNzk0NiwgMC4wMDc5NDksIDAuMDA3OTU4LCAwLjAwNzk2OCwgMC4wMDc5NjkiLCBcCi0gICAgICAgICAgIjAuMDA3NTk0LCAwLjAwNzgyNSwgMC4wMDc4NjMsIDAuMDA3ODc2LCAwLjAwNzg5MiwgMC4wMDc4OTIsIDAuMDA3OTAyIiwgXAotICAgICAgICAgICIwLjAwNzU2MSwgMC4wMDc3ODYsIDAuMDA3ODM0LCAwLjAwNzg0OSwgMC4wMDc4NjQsIDAuMDA3ODcyLCAwLjAwNzg3NiIsIFwKLSAgICAgICAgICAiMC4wMDc1NDMsIDAuMDA3NzU5LCAwLjAwNzgxOCwgMC4wMDc4MzgsIDAuMDA3ODU3LCAwLjAwNzg2MywgMC4wMDc4NzQiLCBcCi0gICAgICAgICAgIjAuMDA3NTg4LCAwLjAwNzc4MSwgMC4wMDc4NDIsIDAuMDA3ODY0LCAwLjAwNzg4NCwgMC4wMDc4OTYsIDAuMDA3OTA2IiwgXAotICAgICAgICAgICIwLjAwNzU4NywgMC4wMDc3NywgMC4wMDc4MzQsIDAuMDA3ODU4LCAwLjAwNzg4MSwgMC4wMDc4OTQsIDAuMDA3OTAxIiwgXAotICAgICAgICAgICIwLjAwNzYwMSwgMC4wMDc4MDQsIDAuMDA3ODY3LCAwLjAwNzg5MSwgMC4wMDc5MTgsIDAuMDA3OTI1LCAwLjAwNzkzNyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDExMDAzLCAwLjAxMTMwOCwgMC4wMTEzOCwgMC4wMTE0MDMsIDAuMDExNDI0LCAwLjAxMTQzNSwgMC4wMTE0NDUiLCBcCi0gICAgICAgICAgIjAuMDEwOTM5LCAwLjAxMTI1NSwgMC4wMTEzMjcsIDAuMDExMzQ5LCAwLjAxMTM3LCAwLjAxMTM4MSwgMC4wMTEzOTEiLCBcCi0gICAgICAgICAgIjAuMDEwODkzLCAwLjAxMTIxNiwgMC4wMTEyOTIsIDAuMDExMzE3LCAwLjAxMTM0LCAwLjAxMTM1MSwgMC4wMTEzNjIiLCBcCi0gICAgICAgICAgIjAuMDEwODk5LCAwLjAxMTIwMiwgMC4wMTEyNzksIDAuMDExMzA1LCAwLjAxMTMyOCwgMC4wMTEzNCwgMC4wMTEzNTEiLCBcCi0gICAgICAgICAgIjAuMDEwODk0LCAwLjAxMTE4MiwgMC4wMTEyNjMsIDAuMDExMjkxLCAwLjAxMTMxNywgMC4wMTEzMywgMC4wMTEzNDIiLCBcCi0gICAgICAgICAgIjAuMDEwODkxLCAwLjAxMTE2OCwgMC4wMTEyNzUsIDAuMDExMjgxLCAwLjAxMTMwOSwgMC4wMTEzMjQsIDAuMDExMzM3IiwgXAotICAgICAgICAgICIwLjAxMDkxNSwgMC4wMTExNjEsIDAuMDExMjQ4LCAwLjAxMTI3OCwgMC4wMTEzMDgsIDAuMDExMzIzLCAwLjAxMTMzNyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA3MTgxLCAwLjAwNzQzMywgMC4wMDc0NjcsIDAuMDA3NDgsIDAuMDA3NDg3LCAwLjAwNzQ5MSwgMC4wMDc0OTUiLCBcCi0gICAgICAgICAgIjAuMDA3MDc3LCAwLjAwNzM0NiwgMC4wMDczODksIDAuMDA3NDAzLCAwLjAwNzQwOSwgMC4wMDc0MTgsIDAuMDA3NDI2IiwgXAotICAgICAgICAgICIwLjAwNzAwOSwgMC4wMDcyNzcsIDAuMDA3MzM0LCAwLjAwNzM1MiwgMC4wMDczNjgsIDAuMDA3Mzc4LCAwLjAwNzM3OCIsIFwKLSAgICAgICAgICAiMC4wMDcwMDIsIDAuMDA3MjQxLCAwLjAwNzMwOSwgMC4wMDczMzEsIDAuMDA3MzUxLCAwLjAwNzM2NCwgMC4wMDczNzciLCBcCi0gICAgICAgICAgIjAuMDA2OTk3LCAwLjAwNzIzNiwgMC4wMDczMDcsIDAuMDA3MzMzLCAwLjAwNzM1NiwgMC4wMDczNywgMC4wMDczODIiLCBcCi0gICAgICAgICAgIjAuMDA2OTg2LCAwLjAwNzIyLCAwLjAwNzMsIDAuMDA3MzI3LCAwLjAwNzM1NiwgMC4wMDczNzIsIDAuMDA3Mzg4IiwgXAotICAgICAgICAgICIwLjAwNzAyNCwgMC4wMDcyNDUsIDAuMDA3MzI5LCAwLjAwNzM2MiwgMC4wMDczOTEsIDAuMDA3NDEsIDAuMDA3NDI3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTAzNTcsIDAuMDEwNjYyLCAwLjAxMDczNSwgMC4wMTA3NiwgMC4wMTA3ODMsIDAuMDEwNzk0LCAwLjAxMDgwNSIsIFwKLSAgICAgICAgICAiMC4wMTAyNzcsIDAuMDEwNTk1LCAwLjAxMDY3NCwgMC4wMTA3LCAwLjAxMDcyNCwgMC4wMTA3MzYsIDAuMDEwNzQ3IiwgXAotICAgICAgICAgICIwLjAxMDIyOSwgMC4wMTA1NTUsIDAuMDEwNjM4LCAwLjAxMDY2NiwgMC4wMTA2OTIsIDAuMDEwNzA1LCAwLjAxMDcxOCIsIFwKLSAgICAgICAgICAiMC4wMTAyNTIsIDAuMDEwNTM4LCAwLjAxMDYyMSwgMC4wMTA2NTEsIDAuMDEwNjc3LCAwLjAxMDY5MiwgMC4wMTA3MDUiLCBcCi0gICAgICAgICAgIjAuMDEwMjg2LCAwLjAxMDUyNCwgMC4wMTA2MSwgMC4wMTA2NCwgMC4wMTA2NjksIDAuMDEwNjg0LCAwLjAxMDY5OCIsIFwKLSAgICAgICAgICAiMC4wMTAyODEsIDAuMDEwNDg3LCAwLjAxMDU4NCwgMC4wMTA2MiwgMC4wMTA2NTUsIDAuMDEwNjczLCAwLjAxMDY5IiwgXAotICAgICAgICAgICIwLjAxMDMzNywgMC4wMTA1MDgsIDAuMDEwNiwgMC4wMTA2MjksIDAuMDEwNjYsIDAuMDEwNjgxLCAwLjAxMDY5OCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2NTU3LCAwLjAwNjc5LCAwLjAwNjgxOCwgMC4wMDY4MjYsIDAuMDA2ODMzLCAwLjAwNjgzNywgMC4wMDY4MzciLCBcCi0gICAgICAgICAgIjAuMDA2NDM5LCAwLjAwNjcwNSwgMC4wMDY3NDIsIDAuMDA2NzU0LCAwLjAwNjc2NCwgMC4wMDY3NzIsIDAuMDA2Nzc2IiwgXAotICAgICAgICAgICIwLjAwNjM1MSwgMC4wMDY2MzQsIDAuMDA2Njg0LCAwLjAwNjcwMSwgMC4wMDY3MTYsIDAuMDA2NzI0LCAwLjAwNjczMSIsIFwKLSAgICAgICAgICAiMC4wMDYzMywgMC4wMDY1ODksIDAuMDA2NjYzLCAwLjAwNjY4MywgMC4wMDY3MDIsIDAuMDA2NzEsIDAuMDA2NzIxIiwgXAotICAgICAgICAgICIwLjAwNjM0NywgMC4wMDY1ODgsIDAuMDA2NjU4LCAwLjAwNjY4MiwgMC4wMDY3MDgsIDAuMDA2NzE5LCAwLjAwNjczMyIsIFwKLSAgICAgICAgICAiMC4wMDYzNzMsIDAuMDA2NTczLCAwLjAwNjY1MywgMC4wMDY2NjksIDAuMDA2Njk5LCAwLjAwNjcxNCwgMC4wMDY3MjYiLCBcCi0gICAgICAgICAgIjAuMDA2Mzg0LCAwLjAwNjYwNiwgMC4wMDY2ODIsIDAuMDA2NzAyLCAwLjAwNjczOCwgMC4wMDY3NTQsIDAuMDA2NzciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwOTYzNCwgMC4wMDk5NTEsIDAuMDEwMDM1LCAwLjAxMDA2MywgMC4wMTAwODksIDAuMDEwMTAzLCAwLjAxMDExNSIsIFwKLSAgICAgICAgICAiMC4wMDk1MzYsIDAuMDA5ODcxLCAwLjAwOTk1NSwgMC4wMDk5ODMsIDAuMDEwMDA5LCAwLjAxMDAyMywgMC4wMTAwMzYiLCBcCi0gICAgICAgICAgIjAuMDA5NTEsIDAuMDA5ODI4LCAwLjAwOTkxOSwgMC4wMDk5NTEsIDAuMDA5OTgxLCAwLjAwOTk5NywgMC4wMTAwMTIiLCBcCi0gICAgICAgICAgIjAuMDA5NTE4LCAwLjAwOTgwNCwgMC4wMDk4OTksIDAuMDA5OTM0LCAwLjAwOTk2OCwgMC4wMDk5ODYsIDAuMDEwMDAzIiwgXAotICAgICAgICAgICIwLjAwOTY0OCwgMC4wMDk4NDcsIDAuMDA5OTM0LCAwLjAwOTk2OCwgMC4wMTAwMDIsIDAuMDEwMDIxLCAwLjAxMDAzOCIsIFwKLSAgICAgICAgICAiMC4wMDk2MTYsIDAuMDA5ODcyLCAwLjAwOTk1OCwgMC4wMDk5OTksIDAuMDEwMDM2LCAwLjAxMDA1NywgMC4wMTAwNzgiLCBcCi0gICAgICAgICAgIjAuMDA5NzA2LCAwLjAwOTkwMywgMC4wMDk5OTIsIDAuMDEwMDM0LCAwLjAxMDA3NywgMC4wMTAwOTksIDAuMDEwMTIyIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IE9SM1hMICoKLSAqIC0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChPUjNYTCkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjA5ODI2NTk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY1NjgwMjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2NTM4NDU7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjU2ODAyOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDE5NiwgMC4wMDAyMDYsIDAuMDAwMjExLCAwLjAwMDIxMywgMC4wMDAyMTMsIDAuMDAwMjEzLCAwLjAwMDIxNCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDQsIDAuMDAwNCwgMC4wMDA0LCAwLjAwMDQsIDAuMDAwNCwgMC4wMDA0LCAwLjAwMDQiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY3OTA2MzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2NzYzOTQ7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjc5MDYzOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDE5NCwgMC4wMDAyMTMsIDAuMDAwMjE2LCAwLjAwMDIxNywgMC4wMDAyMTcsIDAuMDAwMjE5LCAwLjAwMDIyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjQxLCAwLjAwMDI0MiwgMC4wMDAyNDIsIDAuMDAwMjQxLCAwLjAwMDI0MiwgMC4wMDAyNDIsIDAuMDAwMjQyIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihDKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2NDEzNTM7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjQxMzUzOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDY0MTMzMTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAwNiwgMC4wMDAwNiwgMC4wMDAwNiwgMC4wMDAwNiwgMC4wMDAwNiwgMC4wMDAwNiwgMC4wMDAwNiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDE5NCwgMC4wMDAxOTQsIDAuMDAwMTk0LCAwLjAwMDE5NCwgMC4wMDAxOTQsIDAuMDAwMTk0LCAwLjAwMDE5NCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjE1MzY1OwotICAgIGZ1bmN0aW9uIDogIigoQStCKStDKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTAxNDYyLCAwLjExNTYxNywgMC4yNDI4NDYsIDAuNDU0NzI1LCAwLjY2NjU2NywgMS4xNjA3NywgMS40NDMxNCIsIFwKLSAgICAgICAgICAiMC4xMTE2OTIsIDAuMTI1ODQ2LCAwLjI1MzA3NywgMC40NjQ5NjIsIDAuNjc2ODI4LCAxLjE3MTE0LCAxLjQ1MzM2IiwgXAotICAgICAgICAgICIwLjEyNDIwNywgMC4xMzgzNjYsIDAuMjY1NiwgMC40Nzc0ODIsIDAuNjg5MzUsIDEuMTgzNTEsIDEuNDY1OTEiLCBcCi0gICAgICAgICAgIjAuMTM1NDAzLCAwLjE0OTU3LCAwLjI3NjgyMywgMC40ODg2OTEsIDAuNzAwNTE5LCAxLjE5NDcxLCAxLjQ3NzI0IiwgXAotICAgICAgICAgICIwLjE0NTA1NiwgMC4xNTkyMSwgMC4yODY0NiwgMC40OTgzMjksIDAuNzEwMjAzLCAxLjIwNDUzLCAxLjQ4Njc3IiwgXAotICAgICAgICAgICIwLjE1OTA2OCwgMC4xNzMyMjEsIDAuMzAwNDc0LCAwLjUxMjM5MiwgMC43MjQxODIsIDEuMjE4NDMsIDEuNTAwNzkiLCBcCi0gICAgICAgICAgIjAuMTY5MjExLCAwLjE4MzM3MywgMC4zMTA2MDMsIDAuNTIyNTU2LCAwLjczNDM5MiwgMS4yMjg1NiwgMS41MTA5MyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNTI5OTEsIDAuMTgxODk2LCAwLjQ0MzEzLCAwLjg3ODUxMiwgMS4zMTI0NSwgMi4zMzAwMywgMi45MTA1OCIsIFwKLSAgICAgICAgICAiMC4xNTMxNTcsIDAuMTgxODc0LCAwLjQ0MzA5OCwgMC44Nzg0NjcsIDEuMzEzOTUsIDIuMzMwMjIsIDIuOTEwMjciLCBcCi0gICAgICAgICAgIjAuMTUzLCAwLjE4MTg0OSwgMC40NDMwNDcsIDAuODc4NDQ5LCAxLjMxMjA1LCAyLjMyNzA5LCAyLjkxMDA1IiwgXAotICAgICAgICAgICIwLjE1MzIzNywgMC4xODIxMTUsIDAuNDQzMDY1LCAwLjg3ODM0OCwgMS4zMTM3LCAyLjMyOTQ5LCAyLjkxMDI4IiwgXAotICAgICAgICAgICIwLjE1MzM4NCwgMC4xODIwNDgsIDAuNDQyNTE5LCAwLjg3ODM2MywgMS4zMTM4LCAyLjMyOTkyLCAyLjkxMDExIiwgXAotICAgICAgICAgICIwLjE1MzU0NSwgMC4xODIyNjIsIDAuNDQyNDQsIDAuODc4NDg0LCAxLjMxMjMyLCAyLjMyNTg2LCAyLjkxMDExIiwgXAotICAgICAgICAgICIwLjE1Mzg4MywgMC4xODI1MjIsIDAuNDQzMDg4LCAwLjg3NzAwNCwgMS4zMTM5LCAyLjMyOTYxLCAyLjkxMDA5Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE0MTU5OCwgMC4xNTU1NTksIDAuMjgwMTM4LCAwLjQ4NzYyOSwgMC42OTUyMTgsIDEuMTc5MzgsIDEuNDU1ODciLCBcCi0gICAgICAgICAgIjAuMTQ5NjEzLCAwLjE2MzU4MiwgMC4yODgxNjUsIDAuNDk1NjQsIDAuNzAzMTIzLCAxLjE4NzQ0LCAxLjQ2Mzc2IiwgXAotICAgICAgICAgICIwLjE1ODEwNywgMC4xNzIwNzIsIDAuMjk2NjcsIDAuNTA0MTE4LCAwLjcxMTY0NywgMS4xOTU4NCwgMS40NzI2IiwgXAotICAgICAgICAgICIwLjE2NTg1MiwgMC4xNzk3OTQsIDAuMzA0NDAyLCAwLjUxMTg4MiwgMC43MTk0MiwgMS4yMDM1MiwgMS40ODAxNSIsIFwKLSAgICAgICAgICAiMC4xNzMzMjksIDAuMTg3Mjk3LCAwLjMxMTg5MSwgMC41MTkzNDksIDAuNzI2OTc3LCAxLjIxMTQyLCAxLjQ4NzciLCBcCi0gICAgICAgICAgIjAuMTg0MDEzLCAwLjE5ODAwOCwgMC4zMjI2MTcsIDAuNTMwMTA3LCAwLjczNzY3NSwgMS4yMjE3MSwgMS40OTgzOCIsIFwKLSAgICAgICAgICAiMC4xOTI1MjEsIDAuMjA2NTMsIDAuMzMxMTg2LCAwLjUzODY1NSwgMC43NDYxMSwgMS4yMzA3MywgMS41MDY3MiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNTIxMDcsIDAuMTc5LCAwLjQyNTc2MSwgMC44Mzk2MSwgMS4yNTYxNSwgMi4yMjcwNCwgMi43NzkwMiIsIFwKLSAgICAgICAgICAiMC4xNTIyMTYsIDAuMTc5MDk4LCAwLjQyNTE3MiwgMC44NDIwNjQsIDEuMjU2NzEsIDIuMjI2ODEsIDIuNzc5OTEiLCBcCi0gICAgICAgICAgIjAuMTUyMTMsIDAuMTc5MDY1LCAwLjQyNTIwMywgMC44NDE5OTQsIDEuMjU0ODcsIDIuMjI2ODgsIDIuNzgxNSIsIFwKLSAgICAgICAgICAiMC4xNTIyMzEsIDAuMTc5MDY0LCAwLjQyNTg1MiwgMC44NDIwNzUsIDEuMjU0NjksIDIuMjI0NzYsIDIuNzc4OTciLCBcCi0gICAgICAgICAgIjAuMTUyNDI4LCAwLjE3OTE5MywgMC40MjU3OTMsIDAuODQxOTYxLCAxLjI1NzM1LCAyLjIyNTg3LCAyLjc4NzAxIiwgXAotICAgICAgICAgICIwLjE1MzA2NiwgMC4xNzk4MSwgMC40MjUwNTksIDAuODM5NTgzLCAxLjI1NjI0LCAyLjIyNDgyLCAyLjc4MDc4IiwgXAotICAgICAgICAgICIwLjE1MzY3NSwgMC4xODAzMzIsIDAuNDI2MjQyLCAwLjg0MDc4NiwgMS4yNTgxMiwgMi4yMjU4MSwgMi43ODcwOCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTk0MiwgMC4xMTM1NywgMC4yNDA3MTcsIDAuNDUyNTQ3LCAwLjY2NDM1OSwgMS4xNTg1NiwgMS40NDExMiIsIFwKLSAgICAgICAgICAiMC4xMDk2OTEsIDAuMTIzODI2LCAwLjI1MDk4NSwgMC40NjI4MTUsIDAuNjc0Njc4LCAxLjE2ODc5LCAxLjQ1MTIxIiwgXAotICAgICAgICAgICIwLjEyMjA0NSwgMC4xMzYxOTQsIDAuMjYzMzc1LCAwLjQ3NTIwNCwgMC42ODcwMDgsIDEuMTgxMiwgMS40NjM2OSIsIFwKLSAgICAgICAgICAiMC4xMzI0MDIsIDAuMTQ2NTQ0LCAwLjI3Mzc1MywgMC40ODU1NjcsIDAuNjk3NDk5LCAxLjE5MTU1LCAxLjQ3Mzk3IiwgXAotICAgICAgICAgICIwLjE0MTg0NywgMC4xNTU5OTUsIDAuMjgzMTc4LCAwLjQ5NTAwMiwgMC43MDY4MSwgMS4yMDA5OSwgMS40ODMzOCIsIFwKLSAgICAgICAgICAiMC4xNTQ2MzYsIDAuMTY4Nzg0LCAwLjI5NTk3LCAwLjUwNzg4OSwgMC43MTk2MzksIDEuMjEzNzgsIDEuNDk2MTYiLCBcCi0gICAgICAgICAgIjAuMTY0MzUsIDAuMTc4NTM1LCAwLjMwNTcwMiwgMC41MTc1NDEsIDAuNzI5NCwgMS4yMjM0OSwgMS41MDU5NCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNTI2NDYsIDAuMTgxNTY2LCAwLjQ0Mjc2OSwgMC44NzczODMsIDEuMzEyNDQsIDIuMzI3MiwgMi45MTExNiIsIFwKLSAgICAgICAgICAiMC4xNTI4NywgMC4xODE1NzQsIDAuNDQyNDYxLCAwLjg3NzUwMSwgMS4zMTE4MSwgMi4zMjcxOCwgMi45MDcyNSIsIFwKLSAgICAgICAgICAiMC4xNTI4MjUsIDAuMTgxNzk0LCAwLjQ0Mjg2LCAwLjg3NzQxMywgMS4zMTIzMiwgMi4zMjc0OCwgMi45MTAzNCIsIFwKLSAgICAgICAgICAiMC4xNTI3MTIsIDAuMTgxODksIDAuNDQyODgyLCAwLjg3NzI3LCAxLjMxMzg2LCAyLjMyNjgxLCAyLjkwNzU5IiwgXAotICAgICAgICAgICIwLjE1MzAzNywgMC4xODIwMDEsIDAuNDQyMzg4LCAwLjg3ODE2OCwgMS4zMTM2MSwgMi4zMjY4MSwgMi45MDcwNiIsIFwKLSAgICAgICAgICAiMC4xNTMzMzUsIDAuMTgyMDk4LCAwLjQ0MjQyNiwgMC44NzY5MTMsIDEuMzEzNjEsIDIuMzI5NDgsIDIuOTA5ODgiLCBcCi0gICAgICAgICAgIjAuMTUzNTgzLCAwLjE4MjI4NCwgMC40NDI0ODYsIDAuODc4MTcsIDEuMzEzNjYsIDIuMzI5MjUsIDIuOTEwMTQiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTM4NDA1LCAwLjE1MjM3NSwgMC4yNzY5NzIsIDAuNDg0NDUxLCAwLjY5MTk4OSwgMS4xNzYyNiwgMS40NTI1NiIsIFwKLSAgICAgICAgICAiMC4xNDY1MDMsIDAuMTYwNDc2LCAwLjI4NTA4LCAwLjQ5MjU1MywgMC43MDAyNzIsIDEuMTg0NjksIDEuNDYwNDkiLCBcCi0gICAgICAgICAgIjAuMTU2MTM5LCAwLjE3MDA5OSwgMC4yOTQ3MjYsIDAuNTAyMTcyLCAwLjcwOTcwMSwgMS4xOTM4OCwgMS40NzA2NCIsIFwKLSAgICAgICAgICAiMC4xNjU0ODMsIDAuMTc5NDU0LCAwLjMwNDA3LCAwLjUxMTU5OCwgMC43MTkwNjgsIDEuMjAzNDUsIDEuNDc5ODYiLCBcCi0gICAgICAgICAgIjAuMTc0MzMyLCAwLjE4ODMwNSwgMC4zMTI5MjUsIDAuNTIwMzk4LCAwLjcyODE0MSwgMS4yMTIyMiwgMS40ODg3MyIsIFwKLSAgICAgICAgICAiMC4xODcwNDMsIDAuMjAxMDIsIDAuMzI1NjgxLCAwLjUzMzEwNCwgMC43NDA3OCwgMS4yMjQ3MSwgMS41MDEzMSIsIFwKLSAgICAgICAgICAiMC4xOTY3NzYsIDAuMjEwNzg3LCAwLjMzNTQ2NSwgMC41NDI5MiwgMC43NTAzMywgMS4yMzQ3NywgMS41MTE1NCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNTIyMzcsIDAuMTc5MTE5LCAwLjQyNTE4MywgMC44NDIwNjYsIDEuMjU3MSwgMi4yMjY3NCwgMi43ODAwMSIsIFwKLSAgICAgICAgICAiMC4xNTIxMzcsIDAuMTc5MDEyLCAwLjQyNTc3OCwgMC44NDIwMjMsIDEuMjU1NjIsIDIuMjI1NjYsIDIuNzg4MDkiLCBcCi0gICAgICAgICAgIjAuMTUyMTM3LCAwLjE3OTA2MiwgMC40MjYwMDQsIDAuODQxOTg5LCAxLjI1NDksIDIuMjI2NTcsIDIuNzgxNjYiLCBcCi0gICAgICAgICAgIjAuMTUyMjA1LCAwLjE3OTA5MywgMC40MjU4MzMsIDAuODM5NDM1LCAxLjI1NTA5LCAyLjIyNjI2LCAyLjc4NzEyIiwgXAotICAgICAgICAgICIwLjE1MjUzMSwgMC4xNzkzMTMsIDAuNDI1Mzg4LCAwLjg0MjAyNiwgMS4yNTU1NiwgMi4yMjY3OCwgMi43ODIwNSIsIFwKLSAgICAgICAgICAiMC4xNTMyOSwgMC4xNzk5NzYsIDAuNDI2MjczLCAwLjg0MTg3NywgMS4yNTU5OCwgMi4yMjkzNCwgMi43Nzk3NiIsIFwKLSAgICAgICAgICAiMC4xNTQyMTcsIDAuMTgwODIsIDAuNDI1NjI5LCAwLjg0MDYzMSwgMS4yNTg4NCwgMi4yMjY1NywgMi43ODA4MSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTY1OTgsIDAuMTEwNzM4LCAwLjIzNzkzLCAwLjQ0OTc2NSwgMC42NjE2NDEsIDEuMTU2OTksIDEuNDM4OTQiLCBcCi0gICAgICAgICAgIjAuMTA2Nzc1LCAwLjEyMDkxNSwgMC4yNDgyNDksIDAuNDYwMTAyLCAwLjY3MjM0NCwgMS4xNjY2NCwgMS40NDg3NCIsIFwKLSAgICAgICAgICAiMC4xMTg3MjksIDAuMTMyODU0LCAwLjI2MDIxOSwgMC40NzE5ODcsIDAuNjg0NDk3LCAxLjE3ODc3LCAxLjQ2MDUxIiwgXAotICAgICAgICAgICIwLjEyODYxNSwgMC4xNDI3MzksIDAuMjY5OTQ2LCAwLjQ4MTg4LCAwLjY5MzY5MywgMS4xODg2NywgMS40NzA5NiIsIFwKLSAgICAgICAgICAiMC4xMzcwMzgsIDAuMTUxMTgsIDAuMjc4MzU2LCAwLjQ5MDM2OCwgMC43MDIyLCAxLjE5NjkzLCAxLjQ3OTE5IiwgXAotICAgICAgICAgICIwLjE0ODYyOCwgMC4xNjI3NTQsIDAuMjg5OTQ2LCAwLjUwMTg2LCAwLjcxMzgzMiwgMS4yMDkxMSwgMS40OTA1MSIsIFwKLSAgICAgICAgICAiMC4xNTcyODgsIDAuMTcxMjk5LCAwLjI5ODQzNywgMC41MTA0ODMsIDAuNzIyNDA5LCAxLjIxNjg0LCAxLjUwMDI2Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE1MjQ1MSwgMC4xODEzMTYsIDAuNDQyMzY2LCAwLjg3NjcxMiwgMS4zMTM3NSwgMi4zMjc0MSwgMi45MDYxNiIsIFwKLSAgICAgICAgICAiMC4xNTI0NjYsIDAuMTgxMjc0LCAwLjQ0MjIwNCwgMC44Nzc1MDcsIDEuMzExNTYsIDIuMzI2MzgsIDIuOTEwMjUiLCBcCi0gICAgICAgICAgIjAuMTUyNzA2LCAwLjE4MTM5OCwgMC40NDIyMDYsIDAuODc4MTI2LCAxLjMxMjIxLCAyLjMyNjQ3LCAyLjkxMDQ1IiwgXAotICAgICAgICAgICIwLjE1Mjg4NywgMC4xODE1MywgMC40NDE5MzUsIDAuODc2OTgzLCAxLjMxMTQxLCAyLjMyNjQ4LCAyLjkwNjA5IiwgXAotICAgICAgICAgICIwLjE1MzAzNSwgMC4xODE4NzgsIDAuNDQyMzcsIDAuODc2OTA1LCAxLjMxMzUxLCAyLjMyNjM1LCAyLjkxMDA0IiwgXAotICAgICAgICAgICIwLjE1MzMsIDAuMTgxOTI1LCAwLjQ0MjA0NiwgMC44Nzc0OCwgMS4zMTI0OSwgMi4zMjczMiwgMi45MDU0NSIsIFwKLSAgICAgICAgICAiMC4xNTM3NDksIDAuMTgyMjMsIDAuNDQyMzQsIDAuODc2OTUxLCAxLjMxMTYsIDIuMzI2MzUsIDIuOTA1NjUiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTMxMzU1LCAwLjE0NTMyNSwgMC4yNjk5MjUsIDAuNDc3MzkyLCAwLjY4NDk1MiwgMS4xNjkwNywgMS40NDU4OSIsIFwKLSAgICAgICAgICAiMC4xMzk0MjYsIDAuMTUzMzk4LCAwLjI3Nzk5NSwgMC40ODU0NjEsIDAuNjkzMDAzLCAxLjE3NzM1LCAxLjQ1Mzg2IiwgXAotICAgICAgICAgICIwLjE0OTkzMSwgMC4xNjM4OTEsIDAuMjg4NTE1LCAwLjQ5NjAwNywgMC43MDM1NDEsIDEuMTg3NjQsIDEuNDY0MzYiLCBcCi0gICAgICAgICAgIjAuMTYwNTYzLCAwLjE3NDU0MywgMC4yOTkxNjcsIDAuNTA2NjQxLCAwLjcxNDEwOSwgMS4xOTg2MywgMS40NzUzNSIsIFwKLSAgICAgICAgICAiMC4xNzAxNjgsIDAuMTg0MTM0LCAwLjMwODc4LCAwLjUxNjI0OSwgMC43MjM3ODUsIDEuMjA3OSwgMS40ODQ2MyIsIFwKLSAgICAgICAgICAiMC4xODM3NzYsIDAuMTk3NzgxLCAwLjMyMjQyNywgMC41Mjk5NTgsIDAuNzM3NTU4LCAxLjIyMTY1LCAxLjQ5ODExIiwgXAotICAgICAgICAgICIwLjE5NDUxOSwgMC4yMDg2NDEsIDAuMzMyMDA1LCAwLjUzOTQ1MSwgMC43NDY5NTgsIDEuMjMxMzcsIDEuNTA3NjgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTUyMTM3LCAwLjE3OTAzNCwgMC40MjU5ODEsIDAuODQyMDc0LCAxLjI1NTczLCAyLjIyNjQ3LCAyLjc4MTMyIiwgXAotICAgICAgICAgICIwLjE1MjA2LCAwLjE3ODk4LCAwLjQyNTgyMSwgMC44NDE5NTIsIDEuMjU2NjUsIDIuMjI2NDUsIDIuNzgzOTUiLCBcCi0gICAgICAgICAgIjAuMTUyMTI4LCAwLjE3ODkxMywgMC40MjU4MjYsIDAuODQyMDMsIDEuMjU0ODIsIDIuMjI0OTgsIDIuNzgxNTUiLCBcCi0gICAgICAgICAgIjAuMTUyMjIxLCAwLjE3OTE3NSwgMC40MjU4NTEsIDAuODQxOTQ0LCAxLjI1OSwgMi4yMjYwNiwgMi43ODA2NiIsIFwKLSAgICAgICAgICAiMC4xNTI2NywgMC4xNzk0MTIsIDAuNDI2MTI1LCAwLjg0MjA5MiwgMS4yNTQ3NSwgMi4yMjQ3NywgMi43ODIyOSIsIFwKLSAgICAgICAgICAiMC4xNTM1MTUsIDAuMTgwMjg0LCAwLjQyNTU1NywgMC44MzkzOTEsIDEuMjU1OTIsIDIuMjI3MzUsIDIuNzc5NTIiLCBcCi0gICAgICAgICAgIjAuMTU0MTQsIDAuMTgwODcyLCAwLjQyNjc5OSwgMC44NDA2OTgsIDEuMjU2NDksIDIuMjI2MjcsIDIuNzc5NDMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDEyMDQsIDAuMDAxMjA0LCAwLjAwMTIwNSwgMC4wMDEyMDcsIDAuMDAxMjA2LCAwLjAwMTIwNiwgMC4wMDEyMDciLCBcCi0gICAgICAgICAgIjAuMDAxMTg1LCAwLjAwMTE4NSwgMC4wMDExODcsIDAuMDAxMTg5LCAwLjAwMTE4OSwgMC4wMDExODgsIDAuMDAxMTg4IiwgXAotICAgICAgICAgICIwLjAwMTE4MywgMC4wMDExODQsIDAuMDAxMTg2LCAwLjAwMTE4NywgMC4wMDExODcsIDAuMDAxMTg3LCAwLjAwMTE4OCIsIFwKLSAgICAgICAgICAiMC4wMDExODgsIDAuMDAxMTg3LCAwLjAwMTE5LCAwLjAwMTE5MSwgMC4wMDExOTEsIDAuMDAxMTkyLCAwLjAwMTE5MiIsIFwKLSAgICAgICAgICAiMC4wMDExOTUsIDAuMDAxMTk1LCAwLjAwMTE5OSwgMC4wMDEyLCAwLjAwMTIwMSwgMC4wMDEyMDEsIDAuMDAxMjAyIiwgXAotICAgICAgICAgICIwLjAwMTE5OSwgMC4wMDEyLCAwLjAwMTIwNCwgMC4wMDEyMDYsIDAuMDAxMjA2LCAwLjAwMTIwNiwgMC4wMDEyMDYiLCBcCi0gICAgICAgICAgIjAuMDAxMjE1LCAwLjAwMTIxNSwgMC4wMDEyMTksIDAuMDAxMjIxLCAwLjAwMTIyMSwgMC4wMDEyMjEsIDAuMDAxMjIxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyNjc1LCAwLjAwMjY3NiwgMC4wMDI2NzgsIDAuMDAyNjc4LCAwLjAwMjY3OSwgMC4wMDI2NzksIDAuMDAyNjc5IiwgXAotICAgICAgICAgICIwLjAwMjY1OCwgMC4wMDI2NTgsIDAuMDAyNjYxLCAwLjAwMjY2MiwgMC4wMDI2NjIsIDAuMDAyNjYyLCAwLjAwMjY2MiIsIFwKLSAgICAgICAgICAiMC4wMDI2NSwgMC4wMDI2NTEsIDAuMDAyNjU0LCAwLjAwMjY1NSwgMC4wMDI2NTUsIDAuMDAyNjU1LCAwLjAwMjY1NSIsIFwKLSAgICAgICAgICAiMC4wMDI2NDcsIDAuMDAyNjQ4LCAwLjAwMjY1MiwgMC4wMDI2NTMsIDAuMDAyNjUzLCAwLjAwMjY1MywgMC4wMDI2NTMiLCBcCi0gICAgICAgICAgIjAuMDAyNjQ2LCAwLjAwMjY0NywgMC4wMDI2NDksIDAuMDAyNjUsIDAuMDAyNjUxLCAwLjAwMjY1MSwgMC4wMDI2NTEiLCBcCi0gICAgICAgICAgIjAuMDAyNjQ1LCAwLjAwMjY0NywgMC4wMDI2NTEsIDAuMDAyNjUyLCAwLjAwMjY1MywgMC4wMDI2NTMsIDAuMDAyNjUzIiwgXAotICAgICAgICAgICIwLjAwMjY0NiwgMC4wMDI2NDgsIDAuMDAyNjUzLCAwLjAwMjY1NCwgMC4wMDI2NTUsIDAuMDAyNjU1LCAwLjAwMjY1NSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTAzOCwgMC4wMDEwMzksIDAuMDAxMDQxLCAwLjAwMTA0MiwgMC4wMDEwNDIsIDAuMDAxMDQyLCAwLjAwMTA0MyIsIFwKLSAgICAgICAgICAiMC4wMDEwMTgsIDAuMDAxMDE5LCAwLjAwMTAyMiwgMC4wMDEwMjMsIDAuMDAxMDIzLCAwLjAwMTAyNCwgMC4wMDEwMjUiLCBcCi0gICAgICAgICAgIjAuMDAxMDA3LCAwLjAwMTAwOSwgMC4wMDEwMTQsIDAuMDAxMDE2LCAwLjAwMTAxNiwgMC4wMDEwMTcsIDAuMDAxMDE4IiwgXAotICAgICAgICAgICIwLjAwMTAxMSwgMC4wMDEwMTUsIDAuMDAxMDE5LCAwLjAwMTAyMSwgMC4wMDEwMjIsIDAuMDAxMDIyLCAwLjAwMTAyMyIsIFwKLSAgICAgICAgICAiMC4wMDEwMDQsIDAuMDAxMDA1LCAwLjAwMTAxMiwgMC4wMDEwMTUsIDAuMDAxMDE2LCAwLjAwMTAxNiwgMC4wMDEwMTYiLCBcCi0gICAgICAgICAgIjAuMDAxMDE2LCAwLjAwMTAxOCwgMC4wMDEwMjYsIDAuMDAxMDMsIDAuMDAxMDMxLCAwLjAwMTAzMiwgMC4wMDEwMzIiLCBcCi0gICAgICAgICAgIjAuMDAxMDMyLCAwLjAwMTAzNSwgMC4wMDEwNDMsIDAuMDAxMDQ3LCAwLjAwMTA0OSwgMC4wMDEwNSwgMC4wMDEwNTEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI0ODcsIDAuMDAyNDg4LCAwLjAwMjQ5MiwgMC4wMDI0OTQsIDAuMDAyNDk0LCAwLjAwMjQ5NSwgMC4wMDI0OTUiLCBcCi0gICAgICAgICAgIjAuMDAyNDcsIDAuMDAyNDcyLCAwLjAwMjQ3NiwgMC4wMDI0NzcsIDAuMDAyNDc4LCAwLjAwMjQ3OCwgMC4wMDI0NzgiLCBcCi0gICAgICAgICAgIjAuMDAyNDYyLCAwLjAwMjQ2NCwgMC4wMDI0NjgsIDAuMDAyNDcsIDAuMDAyNDcxLCAwLjAwMjQ3MSwgMC4wMDI0NzEiLCBcCi0gICAgICAgICAgIjAuMDAyNDU5LCAwLjAwMjQ2MSwgMC4wMDI0NjYsIDAuMDAyNDY4LCAwLjAwMjQ2OSwgMC4wMDI0NjksIDAuMDAyNDciLCBcCi0gICAgICAgICAgIjAuMDAyNDU4LCAwLjAwMjQ2LCAwLjAwMjQ2NiwgMC4wMDI0NjgsIDAuMDAyNDY5LCAwLjAwMjQ2OSwgMC4wMDI0NjkiLCBcCi0gICAgICAgICAgIjAuMDAyNDYsIDAuMDAyNDYxLCAwLjAwMjQ2OCwgMC4wMDI0NywgMC4wMDI0NzEsIDAuMDAyNDcyLCAwLjAwMjQ3MiIsIFwKLSAgICAgICAgICAiMC4wMDI0NjUsIDAuMDAyNDY3LCAwLjAwMjQ3MiwgMC4wMDI0NzQsIDAuMDAyNDc1LCAwLjAwMjQ3NiwgMC4wMDI0NzYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDA4MzIsIDAuMDAwODMzLCAwLjAwMDgzNCwgMC4wMDA4MzUsIDAuMDAwODM1LCAwLjAwMDgzNSwgMC4wMDA4MzUiLCBcCi0gICAgICAgICAgIjAuMDAwODExLCAwLjAwMDgxMiwgMC4wMDA4MTUsIDAuMDAwODE2LCAwLjAwMDgxNiwgMC4wMDA4MTcsIDAuMDAwODE3IiwgXAotICAgICAgICAgICIwLjAwMDc5OSwgMC4wMDA4LCAwLjAwMDgwNSwgMC4wMDA4MDcsIDAuMDAwODA3LCAwLjAwMDgwOCwgMC4wMDA4MDgiLCBcCi0gICAgICAgICAgIjAuMDAwNzk4LCAwLjAwMDgsIDAuMDAwODA2LCAwLjAwMDgwOSwgMC4wMDA4MDksIDAuMDAwODEsIDAuMDAwODEiLCBcCi0gICAgICAgICAgIjAuMDAwODA3LCAwLjAwMDgwOSwgMC4wMDA4MTUsIDAuMDAwODE4LCAwLjAwMDgxOSwgMC4wMDA4MiwgMC4wMDA4MiIsIFwKLSAgICAgICAgICAiMC4wMDA4MSwgMC4wMDA4MTIsIDAuMDAwODIsIDAuMDAwODIzLCAwLjAwMDgyNCwgMC4wMDA4MjUsIDAuMDAwODI1IiwgXAotICAgICAgICAgICIwLjAwMDgyOSwgMC4wMDA4MywgMC4wMDA4MzgsIDAuMDAwODQzLCAwLjAwMDg0NCwgMC4wMDA4NDUsIDAuMDAwODQ1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyMjg5LCAwLjAwMjI5LCAwLjAwMjI5NiwgMC4wMDIyOTgsIDAuMDAyMjk5LCAwLjAwMjI5OSwgMC4wMDIyOTkiLCBcCi0gICAgICAgICAgIjAuMDAyMjY2LCAwLjAwMjI2OCwgMC4wMDIyNzQsIDAuMDAyMjc2LCAwLjAwMjI3NywgMC4wMDIyNzcsIDAuMDAyMjc4IiwgXAotICAgICAgICAgICIwLjAwMjI2MSwgMC4wMDIyNjMsIDAuMDAyMjcsIDAuMDAyMjcyLCAwLjAwMjI3MywgMC4wMDIyNzQsIDAuMDAyMjc0IiwgXAotICAgICAgICAgICIwLjAwMjI2OSwgMC4wMDIyNywgMC4wMDIyNzcsIDAuMDAyMjgsIDAuMDAyMjgyLCAwLjAwMjI4MiwgMC4wMDIyODMiLCBcCi0gICAgICAgICAgIjAuMDAyMjc4LCAwLjAwMjI4LCAwLjAwMjI4OCwgMC4wMDIyOTEsIDAuMDAyMjkyLCAwLjAwMjI5MywgMC4wMDIyOTMiLCBcCi0gICAgICAgICAgIjAuMDAyMjk1LCAwLjAwMjI5NywgMC4wMDIzMDUsIDAuMDAyMzA5LCAwLjAwMjMxMSwgMC4wMDIzMTIsIDAuMDAyMzEyIiwgXAotICAgICAgICAgICIwLjAwMjMxNCwgMC4wMDIzMTUsIDAuMDAyMzIzLCAwLjAwMjMyNywgMC4wMDIzMjksIDAuMDAyMzMxLCAwLjAwMjMzMSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IFNERkZRWDIgKgotICogLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoU0RGRlFYMikgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjM3ODE2ODsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBmZiAoTjMwLFFCSU5UKSB7Ci0gICAgbmV4dF9zdGF0ZSA6ICIoKFNFIFNJKSArICghU0UgRCkpIjsKLSAgICBjbG9ja2VkX29uIDogIkNLIjsKLSAgfQotICBwaW4oQ0spICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYxNDUzNTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MTQ1MzU7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjE0NDY4OwotICAgIGNsb2NrIDogdHJ1ZTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDI3OTksIDAuMDAyNzcyLCAwLjAwMjc2LCAwLjAwMjc2MSwgMC4wMDI3NzEsIDAuMDAyNzkzLCAwLjAwMjgxNSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNjAwNywgMC4wMDU5ODQsIDAuMDA1OTc5LCAwLjAwNTk5MSwgMC4wMDYwMDksIDAuMDA2MDQ3LCAwLjAwNjA5MSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQmIVNFJiFTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fU0VfRVFfMF9BTl9TSV9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMTI2OTEsIDAuMTM3MTE1LCAwLjE0OTkwMSwgMC4xNjE3NzQsIDAuMTcyMzI0LCAwLjE4NjgxOSwgMC4xOTc5NzgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjA5MTQ1MSwgMC4xMDE0MTIsIDAuMTEzNjI4LCAwLjEyNTAzOCwgMC4xMzQ5MDgsIDAuMTQ4MjExLCAwLjE1ODQwMSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjM5ODk7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjM4NDc2OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDYzOTg5OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjc0OCwgMC4wMDI3MzIsIDAuMDAyNzIyLCAwLjAwMjcxOCwgMC4wMDI3MTUsIDAuMDAyNzE5LCAwLjAwMjcyOSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNDIwOCwgMC4wMDQxOTgsIDAuMDA0MTkyLCAwLjAwNDE5LCAwLjAwNDE5MSwgMC4wMDQxOTIsIDAuMDA0MjAxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJTRSA9PSAxJ2IwIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wNSwgLTAuMDQ1LCAtMC4wMzg3NSwgLTAuMDMyNSwgLTAuMDI2MjUsIC0wLjAxNjI1LCAtMC4wMTM3NSIsIFwKLSAgICAgICAgICAiLTAuMDYxMjUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAyNzUsIC0wLjAxODc1IiwgXAotICAgICAgICAgICItMC4wNzM3NSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDMzNzUsIC0wLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wOCwgLTAuMDc1LCAtMC4wNjg3NSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA0NjI1LCAtMC4wNDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDkyNSwgLTAuMDgxMjUsIC0wLjA3NSwgLTAuMDY4NzUsIC0wLjA2ODc1LCAtMC4wNTg3NSwgLTAuMDUiLCBcCi0gICAgICAgICAgIi0wLjEwODc1LCAtMC4wOTc1LCAtMC4wOTEyNSwgLTAuMDg1LCAtMC4wNzg3NSwgLTAuMDc1LCAtMC4wNjYyNSIsIFwKLSAgICAgICAgICAiLTAuMTE3NSwgLTAuMTEyNSwgLTAuMTA2MjUsIC0wLjEsIC0wLjA5Mzc1LCAtMC4wODM3NSwgLTAuMDgxMjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMTI1LCAtMC4wMDEyNSwgMC4wMDUsIDAuMDE3NSwgMC4wMjM3NSwgMC4wMzM3NSwgMC4wNDI1IiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDEyNSwgMCwgMC4wMDYyNSwgMC4wMTg3NSwgMC4wMjg3NSwgMC4wMzc1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDI1LCAtMC4wMTI1LCAwLCAwLjAwNjI1LCAwLjAxNjI1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDMxMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAwLCAwLjAxLCAwLjAxODc1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDI1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjA1ODc1LCAtMC4wNTM3NSwgLTAuMDQxMjUsIC0wLjAyODc1LCAtMC4wMjI1LCAtMC4wMTI1LCAtMC4wMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDY3NSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDMxMjUsIC0wLjAyMTI1LCAtMC4wMTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhU0UiOwotICAgICAgc2RmX2NvbmQgOiAiU0UgPT0gMSdiMCI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg3NSwgMC4wNzYyNSwgMC4wNjM3NSwgMC4wNTc1LCAwLjA1MTI1LCAwLjA0MTI1LCAwLjAzMjUiLCBcCi0gICAgICAgICAgIjAuMDkyNSwgMC4wODEyNSwgMC4wNzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNTI1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjEwNSwgMC4wOTM3NSwgMC4wODEyNSwgMC4wNzUsIDAuMDY4NzUsIDAuMDU4NzUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIjAuMTE3NSwgMC4xMDYyNSwgMC4wOTM3NSwgMC4wODc1LCAwLjA4MTI1LCAwLjA3MTI1LCAwLjA2ODc1IiwgXAotICAgICAgICAgICIwLjEyMzc1LCAwLjExMjUsIDAuMTA2MjUsIDAuMSwgMC4wOTM3NSwgMC4wODM3NSwgMC4wNzUiLCBcCi0gICAgICAgICAgIjAuMTQsIDAuMTI4NzUsIDAuMTIyNSwgMC4xMSwgMC4xMDM3NSwgMC4xLCAwLjA5MTI1IiwgXAotICAgICAgICAgICIwLjE1NSwgMC4xNDM3NSwgMC4xMzEyNSwgMC4xMjUsIDAuMTE4NzUsIDAuMTA4NzUsIDAuMTA2MjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjI1LCAwLjA1MTI1LCAwLjAzODc1LCAwLjAyNjI1LCAwLjAyLCAwLjAwMzc1LCAtMC4wMDUiLCBcCi0gICAgICAgICAgIjAuMDczNzUsIDAuMDYyNSwgMC4wNSwgMC4wMzc1LCAwLjAyNSwgMC4wMTUsIDAiLCBcCi0gICAgICAgICAgIjAuMDgsIDAuMDY4NzUsIDAuMDU2MjUsIDAuMDUsIDAuMDM3NSwgMC4wMjEyNSwgMC4wMTI1IiwgXAotICAgICAgICAgICIwLjA5MjUsIDAuMDgxMjUsIDAuMDY4NzUsIDAuMDU2MjUsIDAuMDQzNzUsIDAuMDMzNzUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMDk4NzUsIDAuMDkzNzUsIDAuMDc1LCAwLjA2ODc1LCAwLjA1NjI1LCAwLjA0LCAwLjAzMTI1IiwgXAotICAgICAgICAgICIwLjExNSwgMC4xMDM3NSwgMC4wOTEyNSwgMC4wNzg3NSwgMC4wNzI1LCAwLjA1NjI1LCAwLjA0NzUiLCBcCi0gICAgICAgICAgIjAuMTIzNzUsIDAuMTE4NzUsIDAuMSwgMC4wOTM3NSwgMC4wODEyNSwgMC4wNjUsIDAuMDU2MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFEpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC41MzE4Mjc7Ci0gICAgZnVuY3Rpb24gOiAiTjMwIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBub25fdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJpc2luZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTM4MTgsIDAuMjE1NTc0LCAwLjI5NjgyNCwgMC4zOTgzODUsIDAuNTAwMDAzLCAwLjYwMTU2MywgMC43MDMwNzQiLCBcCi0gICAgICAgICAgIjAuMTI0MDEzLCAwLjIyNTc3LCAwLjMwNzAwOSwgMC40MDg1ODcsIDAuNTEwMTIsIDAuNjExNzk2LCAwLjcxMzMyMyIsIFwKLSAgICAgICAgICAiMC4xMzY3MTksIDAuMjM4NDkxLCAwLjMxOTc0LCAwLjQyMTMyOSwgMC41MjI4MjUsIDAuNjI0NDc4LCAwLjcyNjA0MiIsIFwKLSAgICAgICAgICAiMC4xNDg0ODUsIDAuMjUwMjQ3LCAwLjMzMTQ4MSwgMC40MzMwNDMsIDAuNTM0NjMzLCAwLjYzNjI0MiwgMC43Mzc3MTUiLCBcCi0gICAgICAgICAgIjAuMTU4NjU4LCAwLjI2MDQzMSwgMC4zNDE2ODEsIDAuNDQzMjM1LCAwLjU0NDg2MiwgMC42NDY0MjYsIDAuNzQ3OTIiLCBcCi0gICAgICAgICAgIjAuMTczMjg5LCAwLjI3NTA2NywgMC4zNTYzMjYsIDAuNDU3ODYsIDAuNTU5NDQ5LCAwLjY2MTA2LCAwLjc2MjYyNiIsIFwKLSAgICAgICAgICAiMC4xODQxODMsIDAuMjg1OTc3LCAwLjM2NzIyLCAwLjQ2ODc2MywgMC41NzAzNDksIDAuNjcxOTIzLCAwLjc3MzU1OSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTA5MjYsIDAuMjU3NzgyLCAwLjQyNTcwOCwgMC42MzQ1ODUsIDAuODQzNjI4LCAxLjA1NTEzLCAxLjI2NDc5IiwgXAotICAgICAgICAgICIwLjA1MDkyMywgMC4yNTc1NTksIDAuNDI1NjcxLCAwLjYzNTQ2MywgMC44NDQwOTcsIDEuMDUzMjksIDEuMjY0OTEiLCBcCi0gICAgICAgICAgIjAuMDUwOTIsIDAuMjU3OTIsIDAuNDI1NzE5LCAwLjYzNDIxNywgMC44NDQwODgsIDEuMDU1MTUsIDEuMjY0OTQiLCBcCi0gICAgICAgICAgIjAuMDUwOTMyLCAwLjI1NzU2NSwgMC40MjUwNDMsIDAuNjM0NjQ1LCAwLjg0MzgzOSwgMS4wNTUxNSwgMS4yNjQyMyIsIFwKLSAgICAgICAgICAiMC4wNTA5MjMsIDAuMjU3NzgyLCAwLjQyNTY4NSwgMC42MzQ1ODEsIDAuODQzNjI4LCAxLjA1NTE0LCAxLjI2NDc0IiwgXAotICAgICAgICAgICIwLjA1MDk0NiwgMC4yNTc3OCwgMC40MjU2OCwgMC42MzQ1ODUsIDAuODQzODY0LCAxLjA1NTE0LCAxLjI2NDkiLCBcCi0gICAgICAgICAgIjAuMDUwOTM3LCAwLjI1NzgzNiwgMC40MjU1ODYsIDAuNjM0NjM5LCAwLjg0Mzg1NSwgMS4wNTMzMSwgMS4yNjI0MiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMjY5MSwgMC4yMzA3NTYsIDAuMzEzNDg0LCAwLjQxNjkzNSwgMC41MjAzMSwgMC42MjM2NjIsIDAuNzI3MDc2IiwgXAotICAgICAgICAgICIwLjEzNzExNSwgMC4yNDA5NjQsIDAuMzIzNjkzLCAwLjQyNzE0NiwgMC41MzA1MTksIDAuNjMzOTM2LCAwLjczNzI5MyIsIFwKLSAgICAgICAgICAiMC4xNDk5MDEsIDAuMjUzNzQ4LCAwLjMzNjQ4LCAwLjQzOTkyNCwgMC41NDMzLCAwLjY0NjY5OCwgMC43NTAwODEiLCBcCi0gICAgICAgICAgIjAuMTYxNzc0LCAwLjI2NTYyLCAwLjM0ODM1LCAwLjQ1MTc5NiwgMC41NTUxNzMsIDAuNjU4NTExLCAwLjc2MTk0NyIsIFwKLSAgICAgICAgICAiMC4xNzIzMjQsIDAuMjc2MTgsIDAuMzU4OTE3LCAwLjQ2MjM2LCAwLjU2NTcyMSwgMC42NjkxMDksIDAuNzcyNDczIiwgXAotICAgICAgICAgICIwLjE4NjgyNiwgMC4yOTA2NzQsIDAuMzczNDAzLCAwLjQ3NjgzNCwgMC41ODAxOTYsIDAuNjgzNjExLCAwLjc4NzAyIiwgXAotICAgICAgICAgICIwLjE5Nzk4LCAwLjMwMTgxNywgMC4zODQ1NDcsIDAuNDg3OTkxLCAwLjU5MTM2NCwgMC42OTQ3NiwgMC43OTgxNDgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDUwNzAxLCAwLjI1NzUzMSwgMC40MjU2NjgsIDAuNjMzODQ3LCAwLjg0NTYxMSwgMS4wNTUzOCwgMS4yNjU1NiIsIFwKLSAgICAgICAgICAiMC4wNTA2OTUsIDAuMjU3NTEsIDAuNDI1Njc1LCAwLjYzMzg0MSwgMC44NDU2MjUsIDEuMDU1NDEsIDEuMjY1NTUiLCBcCi0gICAgICAgICAgIjAuMDUwNzAxLCAwLjI1NzY2OSwgMC40MjU2ODYsIDAuNjMzODg0LCAwLjg0NTY0LCAxLjA1NTU0LCAxLjI2NTU1IiwgXAotICAgICAgICAgICIwLjA1MDY5NSwgMC4yNTc1NjQsIDAuNDI1Njc1LCAwLjYzMzg4NSwgMC44NDU2MjgsIDEuMDU0OTMsIDEuMjY1NTYiLCBcCi0gICAgICAgICAgIjAuMDUwNjgzLCAwLjI1ODAxLCAwLjQyNTEyNCwgMC42MzQwODYsIDAuODQ1NjQxLCAxLjA1NTU4LCAxLjI2MzkxIiwgXAotICAgICAgICAgICIwLjA1MDcwOSwgMC4yNTczNTQsIDAuNDI1NTcsIDAuNjM1Njg2LCAwLjg0NTUxOSwgMS4wNTU2LCAxLjI2NTU2IiwgXAotICAgICAgICAgICIwLjA1MDY3NiwgMC4yNTc2ODQsIDAuNDI1Njg4LCAwLjYzMzg3MywgMC44NDU2MzUsIDEuMDU1NTUsIDEuMjY1NTUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA3MDYxLCAwLjAwNzA2LCAwLjAwNzA0NSwgMC4wMDcwMzUsIDAuMDA3MDI5LCAwLjAwNzAyNSwgMC4wMDcwMjMiLCBcCi0gICAgICAgICAgIjAuMDA3MDI5LCAwLjAwNzAyOSwgMC4wMDcwMTQsIDAuMDA3MDA0LCAwLjAwNjk5OCwgMC4wMDY5OTQsIDAuMDA2OTkxIiwgXAotICAgICAgICAgICIwLjAwNzAxMiwgMC4wMDcwMTMsIDAuMDA2OTk5LCAwLjAwNjk4OSwgMC4wMDY5ODIsIDAuMDA2OTc5LCAwLjAwNjk3NSIsIFwKLSAgICAgICAgICAiMC4wMDcwMTMsIDAuMDA3MDE2LCAwLjAwNzAwMSwgMC4wMDY5OSwgMC4wMDY5ODQsIDAuMDA2OTgsIDAuMDA2OTc3IiwgXAotICAgICAgICAgICIwLjAwNzAzMiwgMC4wMDcwMzcsIDAuMDA3MDIyLCAwLjAwNzAxMywgMC4wMDcwMDUsIDAuMDA3MDAyLCAwLjAwNjk5OCIsIFwKLSAgICAgICAgICAiMC4wMDcwNTEsIDAuMDA3MDU5LCAwLjAwNzA0NSwgMC4wMDcwMzMsIDAuMDA3MDI2LCAwLjAwNzAyMiwgMC4wMDcwMTgiLCBcCi0gICAgICAgICAgIjAuMDA3MDczLCAwLjAwNzA4NiwgMC4wMDcwNzEsIDAuMDA3MDYxLCAwLjAwNzA1MywgMC4wMDcwNDksIDAuMDA3MDQ1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA3NTAxLCAwLjAwNzU3NywgMC4wMDc1ODYsIDAuMDA3NTkxLCAwLjAwNzU5NCwgMC4wMDc1OTUsIDAuMDA3NTk2IiwgXAotICAgICAgICAgICIwLjAwNzQ3MiwgMC4wMDc1NDcsIDAuMDA3NTU3LCAwLjAwNzU2MiwgMC4wMDc1NjUsIDAuMDA3NTY2LCAwLjAwNzU2NyIsIFwKLSAgICAgICAgICAiMC4wMDc0NjgsIDAuMDA3NTQzLCAwLjAwNzU1MiwgMC4wMDc1NTcsIDAuMDA3NTYsIDAuMDA3NTYyLCAwLjAwNzU2MyIsIFwKLSAgICAgICAgICAiMC4wMDc0ODMsIDAuMDA3NTU4LCAwLjAwNzU2OCwgMC4wMDc1NzMsIDAuMDA3NTc2LCAwLjAwNzU3NywgMC4wMDc1NzgiLCBcCi0gICAgICAgICAgIjAuMDA3NTExLCAwLjAwNzU4NiwgMC4wMDc1OTYsIDAuMDA3NiwgMC4wMDc2MDMsIDAuMDA3NjA1LCAwLjAwNzYwNiIsIFwKLSAgICAgICAgICAiMC4wMDc1NDYsIDAuMDA3NjIyLCAwLjAwNzYzMSwgMC4wMDc2MzYsIDAuMDA3NjM5LCAwLjAwNzY0LCAwLjAwNzY0MiIsIFwKLSAgICAgICAgICAiMC4wMDc1OTIsIDAuMDA3NjcsIDAuMDA3Njc5LCAwLjAwNzY4MywgMC4wMDc2ODYsIDAuMDA3Njg4LCAwLjAwNzY4OSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oU0UpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTM0MzM1OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTM0MjgzOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTM0MzM1OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzkzOSwgMC4wMDM5MTcsIDAuMDAzOTIyLCAwLjAwMzkyNCwgMC4wMDM5NDIsIDAuMDAzOTYzLCAwLjAwMzk4NyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNTM0NCwgMC4wMDUzMDgsIDAuMDA1MzAxLCAwLjAwNTMxMiwgMC4wMDUzMjQsIDAuMDA1MzY0LCAwLjAwNTQwNyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRCZTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fU0lfRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wNDM3NSwgLTAuMDM4NzUsIC0wLjAyNjI1LCAtMC4wMiwgLTAuMDIsIC0wLjAxLCAtMC4wMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDIxMjUsIC0wLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjA2NzUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAyNzUsIC0wLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDczNzUsIC0wLjA2ODc1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjA0LCAtMC4wMzc1IiwgXAotICAgICAgICAgICItMC4wODYyNSwgLTAuMDgxMjUsIC0wLjA3NSwgLTAuMDY4NzUsIC0wLjA2MjUsIC0wLjA1MjUsIC0wLjA1IiwgXAotICAgICAgICAgICItMC4xMDI1LCAtMC4wOTc1LCAtMC4wOTEyNSwgLTAuMDg1LCAtMC4wNzg3NSwgLTAuMDY4NzUsIC0wLjA2NjI1IiwgXAotICAgICAgICAgICItMC4xMTc1LCAtMC4xMDYyNSwgLTAuMSwgLTAuMDkzNzUsIC0wLjA4NzUsIC0wLjA4Mzc1LCAtMC4wNzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMDYyNSwgMC4wMDUsIDAuMDExMjUsIDAuMDIzNzUsIDAuMDMsIDAuMDQsIDAuMDQ4NzUiLCBcCi0gICAgICAgICAgIi0wLjAxNzUsIC0wLjAwNjI1LCAwLjAwNjI1LCAwLjAxMjUsIDAuMDI1LCAwLjAzNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAxODc1LCAtMC4wMDYyNSwgMCwgMC4wMTI1LCAwLjAyMjUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLCAwLjAxLCAwLjAxODc1IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMDYyNSwgMC4wMDM3NSwgMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wNTI1LCAtMC4wNDc1LCAtMC4wNDEyNSwgLTAuMDI4NzUsIC0wLjAyMjUsIC0wLjAxMjUsIC0wLjAwMzc1IiwgXAotICAgICAgICAgICItMC4wNjEyNSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDIxMjUsIC0wLjAxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiRCYhU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8xX0FOX1NJX0VRXzAgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDE4NzUsIC0wLjAxMzc1LCAtMC4wMDEyNSwgMC4wMTEyNSwgMC4wMTc1LCAwLjAyNzUsIDAuMDM2MjUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMjUsIC0wLjAxMjUsIDAsIDAuMDA2MjUsIDAuMDE2MjUsIDAuMDI1IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMC4wMSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjA0Mzc1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwMjUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA1NSwgLTAuMDUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgLTAuMDA4NzUsIDAiLCBcCi0gICAgICAgICAgIi0wLjA2NSwgLTAuMDYsIC0wLjA0NzUsIC0wLjAzNSwgLTAuMDI4NzUsIC0wLjAxODc1LCAtMC4wMSIsIFwKLSAgICAgICAgICAiLTAuMDczNzUsIC0wLjA2ODc1LCAtMC4wNTYyNSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAyNzUsIC0wLjAxODc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDYyNSwgLTAuMDUxMjUsIC0wLjA0NSwgLTAuMDM4NzUsIC0wLjAzMjUsIC0wLjAyMjUsIC0wLjAyIiwgXAotICAgICAgICAgICItMC4wNjc1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wMzM3NSwgLTAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjA4LCAtMC4wNzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNTYyNSwgLTAuMDQ2MjUsIC0wLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjA4NjI1LCAtMC4wODEyNSwgLTAuMDc1LCAtMC4wNjg3NSwgLTAuMDYyNSwgLTAuMDUyNSwgLTAuMDUiLCBcCi0gICAgICAgICAgIi0wLjA5MjUsIC0wLjA4NzUsIC0wLjA4MTI1LCAtMC4wNzUsIC0wLjA2ODc1LCAtMC4wNTg3NSwgLTAuMDU2MjUiLCBcCi0gICAgICAgICAgIi0wLjEwMjUsIC0wLjA5NzUsIC0wLjA4NSwgLTAuMDc4NzUsIC0wLjA3MjUsIC0wLjA2ODc1LCAtMC4wNiIsIFwKLSAgICAgICAgICAiLTAuMTExMjUsIC0wLjEsIC0wLjA5Mzc1LCAtMC4wODc1LCAtMC4wODEyNSwgLTAuMDc3NSwgLTAuMDY4NzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEJlNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9TSV9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3NSwgMC4wNywgMC4wNTc1LCAwLjA1MTI1LCAwLjA0NSwgMC4wMzUsIDAuMDI2MjUiLCBcCi0gICAgICAgICAgIjAuMDg2MjUsIDAuMDc1LCAwLjA2ODc1LCAwLjA1NjI1LCAwLjA1LCAwLjA0NjI1LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIjAuMDk4NzUsIDAuMDg3NSwgMC4wNzUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNTI1LCAwLjA1IiwgXAotICAgICAgICAgICIwLjExMTI1LCAwLjEsIDAuMDg3NSwgMC4wODEyNSwgMC4wNzUsIDAuMDY1LCAwLjA2MjUiLCBcCi0gICAgICAgICAgIjAuMTIzNzUsIDAuMTEyNSwgMC4xLCAwLjA5Mzc1LCAwLjA4NzUsIDAuMDc3NSwgMC4wNjg3NSIsIFwKLSAgICAgICAgICAiMC4xNCwgMC4xMjg3NSwgMC4xMTYyNSwgMC4xMSwgMC4xMDM3NSwgMC4wOTM3NSwgMC4wOTEyNSIsIFwKLSAgICAgICAgICAiMC4xNTUsIDAuMTQzNzUsIDAuMTMxMjUsIDAuMTI1LCAwLjExODc1LCAwLjEwODc1LCAwLjEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTYyNSwgMC4wNDUsIDAuMDMyNSwgMC4wMiwgMC4wMTM3NSwgLTAuMDAyNSwgLTAuMDExMjUiLCBcCi0gICAgICAgICAgIjAuMDY3NSwgMC4wNTYyNSwgMC4wNDM3NSwgMC4wMzEyNSwgMC4wMTg3NSwgMC4wMDg3NSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMDgsIDAuMDY4NzUsIDAuMDU2MjUsIDAuMDQzNzUsIDAuMDMxMjUsIDAuMDE1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICIwLjA4NjI1LCAwLjA4MTI1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDQzNzUsIDAuMDI3NSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4wOTg3NSwgMC4wODc1LCAwLjA3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA0LCAwLjAzMTI1IiwgXAotICAgICAgICAgICIwLjExNSwgMC4xMDM3NSwgMC4wOTEyNSwgMC4wNzg3NSwgMC4wNzI1LCAwLjA1NjI1LCAwLjA0NzUiLCBcCi0gICAgICAgICAgIjAuMTMsIDAuMTE4NzUsIDAuMTA2MjUsIDAuMDkzNzUsIDAuMDgxMjUsIDAuMDcxMjUsIDAuMDU2MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIkQmIVNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMV9BTl9TSV9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2ODc1LCAwLjA2Mzc1LCAwLjA0NSwgMC4wMzg3NSwgMC4wMjYyNSwgMC4wMSwgMC4wMDEyNSIsIFwKLSAgICAgICAgICAiMC4wOCwgMC4wNjg3NSwgMC4wNTYyNSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAyMTI1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMDkyNSwgMC4wODEyNSwgMC4wNjg3NSwgMC4wNTYyNSwgMC4wNDM3NSwgMC4wMzM3NSwgMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMDk4NzUsIDAuMDg3NSwgMC4wNzUsIDAuMDY4NzUsIDAuMDU2MjUsIDAuMDQsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMTExMjUsIDAuMSwgMC4wODc1LCAwLjA3NSwgMC4wNjI1LCAwLjA0NjI1LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIjAuMTE1LCAwLjExLCAwLjA5NzUsIDAuMDg1LCAwLjA3MjUsIDAuMDU2MjUsIDAuMDQ3NSIsIFwKLSAgICAgICAgICAiMC4xMjM3NSwgMC4xMTI1LCAwLjEsIDAuMDg3NSwgMC4wODEyNSwgMC4wNjUsIDAuMDU2MjUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTM3NSwgMC4wODI1LCAwLjA3LCAwLjA2Mzc1LCAwLjA1NzUsIDAuMDQ3NSwgMC4wNDUiLCBcCi0gICAgICAgICAgIjAuMTA1LCAwLjA5Mzc1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNTg3NSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiMC4xMTEyNSwgMC4xLCAwLjA5Mzc1LCAwLjA4NzUsIDAuMDgxMjUsIDAuMDcxMjUsIDAuMDYyNSIsIFwKLSAgICAgICAgICAiMC4xMjM3NSwgMC4xMTI1LCAwLjEsIDAuMDkzNzUsIDAuMDg3NSwgMC4wNzc1LCAwLjA2ODc1IiwgXAotICAgICAgICAgICIwLjEzLCAwLjExODc1LCAwLjEwNjI1LCAwLjEsIDAuMDkzNzUsIDAuMDgzNzUsIDAuMDc1IiwgXAotICAgICAgICAgICIwLjEzMzc1LCAwLjEyMjUsIDAuMTE2MjUsIDAuMTEsIDAuMTAzNzUsIDAuMDkzNzUsIDAuMDg1IiwgXAotICAgICAgICAgICIwLjE0MjUsIDAuMTMxMjUsIDAuMTE4NzUsIDAuMTEyNSwgMC4xMDYyNSwgMC4wOTYyNSwgMC4wOTM3NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oU0kpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY4NTIwNDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2ODM1MjY7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjg1MjA0OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjU1MiwgMC4wMDI1MzYsIDAuMDAyNTI3LCAwLjAwMjUyMiwgMC4wMDI1MjEsIDAuMDAyNTI1LCAwLjAwMjUzMiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNDMwOCwgMC4wMDQyOTksIDAuMDA0MjkzLCAwLjAwNDI5MSwgMC4wMDQyOTIsIDAuMDA0MjkzLCAwLjAwNDMwMSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJTRSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wNSwgLTAuMDQ1LCAtMC4wMzI1LCAtMC4wMjYyNSwgLTAuMDI2MjUsIC0wLjAxNjI1LCAtMC4wMDc1IiwgXAotICAgICAgICAgICItMC4wNjEyNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDIxMjUsIC0wLjAxODc1IiwgXAotICAgICAgICAgICItMC4wNjc1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wMzM3NSwgLTAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjA4LCAtMC4wNzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNTYyNSwgLTAuMDQ2MjUsIC0wLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjA5MjUsIC0wLjA4MTI1LCAtMC4wNzUsIC0wLjA2ODc1LCAtMC4wNjI1LCAtMC4wNTg3NSwgLTAuMDUiLCBcCi0gICAgICAgICAgIi0wLjEwMjUsIC0wLjA5NzUsIC0wLjA5MTI1LCAtMC4wODUsIC0wLjA3ODc1LCAtMC4wNjg3NSwgLTAuMDY2MjUiLCBcCi0gICAgICAgICAgIi0wLjExNzUsIC0wLjExMjUsIC0wLjEsIC0wLjA5Mzc1LCAtMC4wOTM3NSwgLTAuMDgzNzUsIC0wLjA4MTI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDEyNSwgLTAuMDAxMjUsIDAuMDA1LCAwLjAxNzUsIDAuMDIzNzUsIDAuMDMzNzUsIDAuMDQyNSIsIFwKLSAgICAgICAgICAiLTAuMDIzNzUsIC0wLjAxMjUsIDAsIDAuMDA2MjUsIDAuMDE4NzUsIDAuMDI4NzUsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAxODc1LCAtMC4wMTI1LCAwLCAwLjAwNjI1LCAwLjAxNjI1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIDAsIDAuMDEsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAwLjAwMzc1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjA1ODc1LCAtMC4wNDc1LCAtMC4wNDEyNSwgLTAuMDI4NzUsIC0wLjAyMjUsIC0wLjAxMjUsIC0wLjAwMzc1IiwgXAotICAgICAgICAgICItMC4wNjc1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMjEyNSwgLTAuMDEyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiU0UiOwotICAgICAgc2RmX2NvbmQgOiAiU0UgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDgxMjUsIDAuMDcsIDAuMDYzNzUsIDAuMDU3NSwgMC4wNTEyNSwgMC4wNDEyNSwgMC4wMzI1IiwgXAotICAgICAgICAgICIwLjA5MjUsIDAuMDgxMjUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNDYyNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4xMDUsIDAuMDkzNzUsIDAuMDgxMjUsIDAuMDc1LCAwLjA2ODc1LCAwLjA1ODc1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICIwLjExMTI1LCAwLjEwNjI1LCAwLjA5Mzc1LCAwLjA4NzUsIDAuMDgxMjUsIDAuMDcxMjUsIDAuMDYyNSIsIFwKLSAgICAgICAgICAiMC4xMjM3NSwgMC4xMTI1LCAwLjEsIDAuMDkzNzUsIDAuMDg3NSwgMC4wNzc1LCAwLjA3NSIsIFwKLSAgICAgICAgICAiMC4xNCwgMC4xMjg3NSwgMC4xMTYyNSwgMC4xMSwgMC4xMDM3NSwgMC4wOTM3NSwgMC4wOTEyNSIsIFwKLSAgICAgICAgICAiMC4xNTUsIDAuMTQzNzUsIDAuMTMxMjUsIDAuMTI1LCAwLjExODc1LCAwLjEwODc1LCAwLjEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjI1LCAwLjA1MTI1LCAwLjAzODc1LCAwLjAyNjI1LCAwLjAyLCAwLjAwMzc1LCAtMC4wMDUiLCBcCi0gICAgICAgICAgIjAuMDczNzUsIDAuMDYyNSwgMC4wNSwgMC4wMzc1LCAwLjAyNSwgMC4wMTUsIDAiLCBcCi0gICAgICAgICAgIjAuMDgsIDAuMDY4NzUsIDAuMDU2MjUsIDAuMDQzNzUsIDAuMDM3NSwgMC4wMjEyNSwgMC4wMTI1IiwgXAotICAgICAgICAgICIwLjA5MjUsIDAuMDgxMjUsIDAuMDY4NzUsIDAuMDU2MjUsIDAuMDQzNzUsIDAuMDMzNzUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMDk4NzUsIDAuMDg3NSwgMC4wNzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNCwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4xMTUsIDAuMTAzNzUsIDAuMDkxMjUsIDAuMDc4NzUsIDAuMDY2MjUsIDAuMDU2MjUsIDAuMDQxMjUiLCBcCi0gICAgICAgICAgIjAuMTIzNzUsIDAuMTEyNSwgMC4xLCAwLjA4NzUsIDAuMDgxMjUsIDAuMDY1LCAwLjA1NjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBTRURGRkhRWDQgKgotICogLS0tLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChTRURGRkhRWDQpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC43NTI5ODM7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgZmYgKE4zMCxRQklOVCkgewotICAgIG5leHRfc3RhdGUgOiAiKChTRSBTSSkgKyAoIVNFICgoRSBEKSArICghRSAoISghTjMwKSkpKSkpIjsKLSAgICBjbG9ja2VkX29uIDogIkNLIjsKLSAgfQotICBwaW4oQ0spICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYwNDMyOTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MDQwNjQ7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjA0MzI5OwotICAgIGNsb2NrIDogdHJ1ZTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDM2OTgsIDAuMDAzNjcyLCAwLjAwMzY1NiwgMC4wMDM2NiwgMC4wMDM2NjksIDAuMDAzNjkzLCAwLjAwMzcxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA3Mjk5LCAwLjAwNzI3NywgMC4wMDcyNzUsIDAuMDA3Mjg2LCAwLjAwNzMxLCAwLjAwNzM1LCAwLjAwNzQwNCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQmIUUmU0UmIVNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9FX0VRXzBfQU5fU0VfRVFfMV9BTl9TSV9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMTI3Nzk4LCAwLjEzODAwOSwgMC4xNTA3ODYsIDAuMTYyODIyLCAwLjE3MzYwOCwgMC4xODgyMzMsIDAuMTk5ODIzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wOTcxNjYsIDAuMTA3MTM5LCAwLjExOTQ1NiwgMC4xMzA5LCAwLjE0MTAyMSwgMC4xNTQ1NDEsIDAuMTY1MDQ2Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihEKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA4ODg2MzM7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwODg1MjI3OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDg4ODYzMzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDQzOTUsIDAuMDA0MzY2LCAwLjAwNDM1MywgMC4wMDQzNDYsIDAuMDA0MzQzLCAwLjAwNDM0MywgMC4wMDQzNSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwODYxNiwgMC4wMDg2MDEsIDAuMDA4NTkzLCAwLjAwODU4OSwgMC4wMDg1ODgsIDAuMDA4NTg5LCAwLjAwODU5NCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJFJiFTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJFX0VRXzFfQU5fU0VfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wODEyNSwgLTAuMDc2MjUsIC0wLjA3LCAtMC4wNjM3NSwgLTAuMDU3NSwgLTAuMDUzNzUsIC0wLjA0NSIsIFwKLSAgICAgICAgICAiLTAuMDkyNSwgLTAuMDg3NSwgLTAuMDc1LCAtMC4wNzUsIC0wLjA2ODc1LCAtMC4wNTg3NSwgLTAuMDU2MjUiLCBcCi0gICAgICAgICAgIi0wLjEwNSwgLTAuMDkzNzUsIC0wLjA4NzUsIC0wLjA4MTI1LCAtMC4wODEyNSwgLTAuMDcxMjUsIC0wLjA2ODc1IiwgXAotICAgICAgICAgICItMC4xMTEyNSwgLTAuMTA2MjUsIC0wLjEsIC0wLjA5Mzc1LCAtMC4wODc1LCAtMC4wODM3NSwgLTAuMDc1IiwgXAotICAgICAgICAgICItMC4xMjM3NSwgLTAuMTE4NzUsIC0wLjExMjUsIC0wLjEwNjI1LCAtMC4xLCAtMC4wOSwgLTAuMDg3NSIsIFwKLSAgICAgICAgICAiLTAuMTQsIC0wLjEzNSwgLTAuMTI4NzUsIC0wLjEyMjUsIC0wLjExNjI1LCAtMC4xMDYyNSwgLTAuMTAzNzUiLCBcCi0gICAgICAgICAgIi0wLjE1NSwgLTAuMTQzNzUsIC0wLjEzNzUsIC0wLjEzMTI1LCAtMC4xMzEyNSwgLTAuMTIxMjUsIC0wLjExODc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDI1LCAtMC4wMiwgLTAuMDEzNzUsIC0wLjAwMTI1LCAwLjAwNSwgMC4wMTUsIDAuMDIzNzUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMC4wMDM3NSwgMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDEyNSwgLTAuMDAyNSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDE1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDYxMjUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAyMTI1LCAtMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wNzEyNSwgLTAuMDY2MjUsIC0wLjA2LCAtMC4wNTM3NSwgLTAuMDQ3NSwgLTAuMDM3NSwgLTAuMDI4NzUiLCBcCi0gICAgICAgICAgIi0wLjA4LCAtMC4wNjg3NSwgLTAuMDY4NzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNDYyNSwgLTAuMDM3NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiRSYhU0UiOwotICAgICAgc2RmX2NvbmQgOiAiRV9FUV8xX0FOX1NFX0VRXzAgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTI1LCAwLjExMzc1LCAwLjEwMTI1LCAwLjA5NSwgMC4wODg3NSwgMC4wNzg3NSwgMC4wNzYyNSIsIFwKLSAgICAgICAgICAiMC4xMywgMC4xMjUsIDAuMTEyNSwgMC4xLCAwLjA5Mzc1LCAwLjA5LCAwLjA4MTI1IiwgXAotICAgICAgICAgICIwLjE0MjUsIDAuMTMxMjUsIDAuMTI1LCAwLjExMjUsIDAuMTA2MjUsIDAuMDk2MjUsIDAuMDkzNzUiLCBcCi0gICAgICAgICAgIjAuMTU1LCAwLjE0Mzc1LCAwLjEzMTI1LCAwLjEyNSwgMC4xMTg3NSwgMC4xMDg3NSwgMC4xMDYyNSIsIFwKLSAgICAgICAgICAiMC4xNjc1LCAwLjE1NjI1LCAwLjE0Mzc1LCAwLjEzNzUsIDAuMTMxMjUsIDAuMTIxMjUsIDAuMTEyNSIsIFwKLSAgICAgICAgICAiMC4xODM3NSwgMC4xNzI1LCAwLjE2LCAwLjE1Mzc1LCAwLjE0NzUsIDAuMTM3NSwgMC4xMjg3NSIsIFwKLSAgICAgICAgICAiMC4xOTI1LCAwLjE4NzUsIDAuMTc1LCAwLjE2MjUsIDAuMTU2MjUsIDAuMTUyNSwgMC4xNDM3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5Mzc1LCAwLjA4MjUsIDAuMDcsIDAuMDU3NSwgMC4wNTEyNSwgMC4wMzUsIDAuMDI2MjUiLCBcCi0gICAgICAgICAgIjAuMTA1LCAwLjA5Mzc1LCAwLjA4MTI1LCAwLjA2ODc1LCAwLjA1NjI1LCAwLjA0NjI1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICIwLjExMTI1LCAwLjEwNjI1LCAwLjA4NzUsIDAuMDgxMjUsIDAuMDY4NzUsIDAuMDUyNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4xMjM3NSwgMC4xMTI1LCAwLjEsIDAuMDg3NSwgMC4wNzUsIDAuMDY1LCAwLjA1IiwgXAotICAgICAgICAgICIwLjEzNjI1LCAwLjEyNSwgMC4xMTI1LCAwLjEsIDAuMDg3NSwgMC4wNzEyNSwgMC4wNjI1IiwgXAotICAgICAgICAgICIwLjE0NjI1LCAwLjEzNSwgMC4xMjI1LCAwLjExLCAwLjEwMzc1LCAwLjA4NzUsIDAuMDc4NzUiLCBcCi0gICAgICAgICAgIjAuMTYxMjUsIDAuMTUsIDAuMTM3NSwgMC4xMjUsIDAuMTEyNSwgMC4wOTYyNSwgMC4wODc1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihFKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDE2MDkyNDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDE2MDkyNDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE2MDg4NTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDgwMzMsIDAuMDA4MDA4LCAwLjAwODAwMSwgMC4wMDgwMDksIDAuMDA4MDIxLCAwLjAwODA0MiwgMC4wMDgwNjIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDk0MTcsIDAuMDA5MzczLCAwLjAwOTM2MSwgMC4wMDkzNjMsIDAuMDA5Mzc2LCAwLjAwOTQyMSwgMC4wMDk0NTkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIVNFIjsKLSAgICAgIHNkZl9jb25kIDogIlNFID09IDEnYjAiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjA4NzUsIC0wLjA3NjI1LCAtMC4wNjM3NSwgLTAuMDUxMjUsIC0wLjA0NSwgLTAuMDI4NzUsIC0wLjAyIiwgXAotICAgICAgICAgICItMC4wOTg3NSwgLTAuMDg3NSwgLTAuMDc1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDQsIC0wLjAzMTI1IiwgXAotICAgICAgICAgICItMC4xMTEyNSwgLTAuMSwgLTAuMDg3NSwgLTAuMDc1LCAtMC4wNjI1LCAtMC4wNTI1LCAtMC4wNDM3NSIsIFwKLSAgICAgICAgICAiLTAuMTE3NSwgLTAuMTA2MjUsIC0wLjA5Mzc1LCAtMC4wODc1LCAtMC4wNzUsIC0wLjA1ODc1LCAtMC4wNSIsIFwKLSAgICAgICAgICAiLTAuMTMsIC0wLjExODc1LCAtMC4xMDYyNSwgLTAuMDkzNzUsIC0wLjA4MTI1LCAtMC4wNzEyNSwgLTAuMDU2MjUiLCBcCi0gICAgICAgICAgIi0wLjE0LCAtMC4xMjg3NSwgLTAuMTE2MjUsIC0wLjEwMzc1LCAtMC4wOTEyNSwgLTAuMDgxMjUsIC0wLjA3MjUiLCBcCi0gICAgICAgICAgIi0wLjE0ODc1LCAtMC4xMzc1LCAtMC4xMjUsIC0wLjExMjUsIC0wLjEsIC0wLjA5LCAtMC4wODEyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAxODc1LCAtMC4wMTM3NSwgLTAuMDA3NSwgMC4wMDUsIDAuMDExMjUsIDAuMDIxMjUsIDAuMDMiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMTg3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAsIDAuMDEsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAwLjAwMzc1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDA4NzUsIDAiLCBcCi0gICAgICAgICAgIi0wLjA1NSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDIxMjUsIC0wLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjA2NSwgLTAuMDYsIC0wLjA1Mzc1LCAtMC4wNDc1LCAtMC4wNDc1LCAtMC4wMzc1LCAtMC4wMjg3NSIsIFwKLSAgICAgICAgICAiLTAuMDczNzUsIC0wLjA2ODc1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDU2MjUsIC0wLjA0NjI1LCAtMC4wMzc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhU0UiOwotICAgICAgc2RmX2NvbmQgOiAiU0UgPT0gMSdiMCI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTE4NzUsIDAuMTA3NSwgMC4wOTUsIDAuMDg4NzUsIDAuMDgyNSwgMC4wNzI1LCAwLjA3IiwgXAotICAgICAgICAgICIwLjEzLCAwLjExODc1LCAwLjEwNjI1LCAwLjEsIDAuMDkzNzUsIDAuMDgzNzUsIDAuMDc1IiwgXAotICAgICAgICAgICIwLjEzNjI1LCAwLjEzMTI1LCAwLjExODc1LCAwLjEwNjI1LCAwLjEsIDAuMDk2MjUsIDAuMDg3NSIsIFwKLSAgICAgICAgICAiMC4xNDg3NSwgMC4xMzc1LCAwLjEzMTI1LCAwLjExODc1LCAwLjExMjUsIDAuMTA4NzUsIDAuMSIsIFwKLSAgICAgICAgICAiMC4xNjEyNSwgMC4xNSwgMC4xMzc1LCAwLjEzMTI1LCAwLjEyNSwgMC4xMTUsIDAuMTEyNSIsIFwKLSAgICAgICAgICAiMC4xNzc1LCAwLjE3MjUsIDAuMTYsIDAuMTQ3NSwgMC4xNDEyNSwgMC4xMzc1LCAwLjEyODc1IiwgXAotICAgICAgICAgICIwLjE5MjUsIDAuMTg3NSwgMC4xNzUsIDAuMTYyNSwgMC4xNTYyNSwgMC4xNTI1LCAwLjE0Mzc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTA2MjUsIDAuMDk1LCAwLjA4ODc1LCAwLjA4MjUsIDAuMDgyNSwgMC4wNzI1LCAwLjA3IiwgXAotICAgICAgICAgICIwLjExNzUsIDAuMTA2MjUsIDAuMSwgMC4wOTM3NSwgMC4wODc1LCAwLjA4Mzc1LCAwLjA3NSIsIFwKLSAgICAgICAgICAiMC4xMjM3NSwgMC4xMTg3NSwgMC4xMTI1LCAwLjEwNjI1LCAwLjEsIDAuMDk2MjUsIDAuMDg3NSIsIFwKLSAgICAgICAgICAiMC4xMzYyNSwgMC4xMjUsIDAuMTE4NzUsIDAuMTEyNSwgMC4xMDYyNSwgMC4xMDI1LCAwLjA5Mzc1IiwgXAotICAgICAgICAgICIwLjE0MjUsIDAuMTM3NSwgMC4xMjUsIDAuMTE4NzUsIDAuMTE4NzUsIDAuMTA4NzUsIDAuMTA2MjUiLCBcCi0gICAgICAgICAgIjAuMTUyNSwgMC4xNDEyNSwgMC4xMzUsIDAuMTI4NzUsIDAuMTI4NzUsIDAuMTE4NzUsIDAuMTE2MjUiLCBcCi0gICAgICAgICAgIjAuMTYxMjUsIDAuMTUsIDAuMTQzNzUsIDAuMTM3NSwgMC4xMzEyNSwgMC4xMjc1LCAwLjExODc1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihRKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDEuMDQxOTQ7Ci0gICAgZnVuY3Rpb24gOiAiTjMwIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBub25fdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJpc2luZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExMTU2NywgMC4xODM5MDksIDAuMjU0ODc2LCAwLjMwNTU0NywgMC4zODY3MDEsIDAuNDU3NjIxLCAwLjU1OTAwNSIsIFwKLSAgICAgICAgICAiMC4xMjE2NjQsIDAuMTk0MDA3LCAwLjI2NDk3LCAwLjMxNTY1MywgMC4zOTY3MjcsIDAuNDY3NzM1LCAwLjU2OTA4NiIsIFwKLSAgICAgICAgICAiMC4xMzQzOTgsIDAuMjA2NzM5LCAwLjI3NzcxMiwgMC4zMjgzOTYsIDAuNDA5NDU3LCAwLjQ4MDQ5MSwgMC41ODE4MzgiLCBcCi0gICAgICAgICAgIjAuMTQ2MjU5LCAwLjIxODYwMSwgMC4yODk1NzYsIDAuMzQwMjUzLCAwLjQyMTMyMywgMC40OTIyODQsIDAuNTkzNzA5IiwgXAotICAgICAgICAgICIwLjE1Njc1NCwgMC4yMjkwOTYsIDAuMzAwMDY3LCAwLjM1MDc0NiwgMC40MzE4MTcsIDAuNTAyODUzLCAwLjYwNDE4IiwgXAotICAgICAgICAgICIwLjE3MTY1LCAwLjI0NDAwMiwgMC4zMTQ5NjUsIDAuMzY1NjUsIDAuNDQ2NzIyLCAwLjUxNzY4MiwgMC42MTkwODgiLCBcCi0gICAgICAgICAgIjAuMTgyODk2LCAwLjI1NTI1MywgMC4zMjYyMiwgMC4zNzY4OTksIDAuNDU4MDEzLCAwLjUyODkzOCwgMC42MzAzNjkiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzIxMiwgMC4xNzQyMDIsIDAuMzIwMTQzLCAwLjQyNDYwMSwgMC41OTIxNzgsIDAuNzM4NzQ0LCAwLjk0Nzk3MyIsIFwKLSAgICAgICAgICAiMC4wMzIxNTEsIDAuMTc0MTk4LCAwLjMyMDE1LCAwLjQyNDczNSwgMC41OTIxNjksIDAuNzM4NzksIDAuOTQ4MTM5IiwgXAotICAgICAgICAgICIwLjAzMjEyMiwgMC4xNzQxOSwgMC4zMjAxNDcsIDAuNDI0NzU4LCAwLjU5MjE1NywgMC43Mzc2NDYsIDAuOTQ3NjIxIiwgXAotICAgICAgICAgICIwLjAzMjE0NCwgMC4xNzQxOTgsIDAuMzIwMTUzLCAwLjQyNDc0MywgMC41OTIxNzMsIDAuNzM4MjMxLCAwLjk0NjY0NCIsIFwKLSAgICAgICAgICAiMC4wMzIxMjcsIDAuMTc0MTk0LCAwLjMyMDE1MiwgMC40MjQ3MzksIDAuNTkyMTc0LCAwLjczODI2LCAwLjk0ODEzOCIsIFwKLSAgICAgICAgICAiMC4wMzIxMjYsIDAuMTc0MjAyLCAwLjMyMDE0NiwgMC40MjQ3MzMsIDAuNTkyMTY4LCAwLjczODEzOSwgMC45NDc5NzUiLCBcCi0gICAgICAgICAgIjAuMDMyMTQ1LCAwLjE3NDIxOSwgMC4zMjAxNTQsIDAuNDI0NjIsIDAuNTkyMjA4LCAwLjczNzc0NywgMC45NDc1OTMiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMjc4MDUsIDAuMjAyNjM1LCAwLjI3NjAwNCwgMC4zMjg0MDksIDAuNDEyMjE3LCAwLjQ4NTU2OCwgMC41OTAzNTQiLCBcCi0gICAgICAgICAgIjAuMTM4MDE1LCAwLjIxMjg0MSwgMC4yODYyMTMsIDAuMzM4NjI1LCAwLjQyMjQ1LCAwLjQ5NTgsIDAuNjAwNTg4IiwgXAotICAgICAgICAgICIwLjE1MDc5NCwgMC4yMjU2MjksIDAuMjk4OTg4LCAwLjM1MTM5NiwgMC40MzUyMDgsIDAuNTA4NTY0LCAwLjYxMzM0IiwgXAotICAgICAgICAgICIwLjE2MjgyNiwgMC4yMzc2NjEsIDAuMzExMDUsIDAuMzYzNDU0LCAwLjQ0NzIzNywgMC41MjA1OTMsIDAuNjI1MzY1IiwgXAotICAgICAgICAgICIwLjE3MzYxMiwgMC4yNDg0NDYsIDAuMzIxODEzLCAwLjM3NDIyNCwgMC40NTgwMzIsIDAuNTMxMzQ2LCAwLjYzNjE2NCIsIFwKLSAgICAgICAgICAiMC4xODgyMzcsIDAuMjYzMDc3LCAwLjMzNjQ1MywgMC4zODg4NywgMC40NzI2NDcsIDAuNTQ2MDA1LCAwLjY1MDc3NSIsIFwKLSAgICAgICAgICAiMC4xOTk4MjcsIDAuMjc0NjU2LCAwLjM0ODA1MSwgMC40MDA0NDYsIDAuNDg0MjU1LCAwLjU1NzU5MiwgMC42NjIzNzYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzE5MzIsIDAuMTc2ODY2LCAwLjMyNTA2MiwgMC40MzA3NTMsIDAuNjAwNDQ4LCAwLjc0OTU4LCAwLjk2MzQ0NyIsIFwKLSAgICAgICAgICAiMC4wMzE5MzQsIDAuMTc2ODcxLCAwLjMyNDc5MSwgMC40MzA3MzgsIDAuNjAxNzI0LCAwLjc1MDYwNCwgMC45NjMzOTYiLCBcCi0gICAgICAgICAgIjAuMDMxOTMyLCAwLjE3Njg3MiwgMC4zMjUxNDcsIDAuNDMxMzc2LCAwLjYwMTUyOSwgMC43NTA2MTYsIDAuOTYzNDM3IiwgXAotICAgICAgICAgICIwLjAzMTkyNiwgMC4xNzY5MjMsIDAuMzI1MjUsIDAuNDMxNTQxLCAwLjYwMTE2OCwgMC43NDk1MDEsIDAuOTYzNDk0IiwgXAotICAgICAgICAgICIwLjAzMTkyOSwgMC4xNzY5MDUsIDAuMzI1MTQyLCAwLjQzMDM5NSwgMC42MDEzOTEsIDAuNzUwMzksIDAuOTYzNDMzIiwgXAotICAgICAgICAgICIwLjAzMTkzNywgMC4xNzY5NDEsIDAuMzI0NTU2LCAwLjQzMDQ1LCAwLjYwMDkzNCwgMC43NDk1MDMsIDAuOTYzNDg0IiwgXAotICAgICAgICAgICIwLjAzMTk0NCwgMC4xNzY4NzEsIDAuMzI1MjYyLCAwLjQzMTU1NSwgMC42MDE2ODEsIDAuNzQ5MzQ1LCAwLjk2MzQ4MSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxNTE1NCwgMC4wMTUzMDEsIDAuMDE1MzIxLCAwLjAxNTMyNiwgMC4wMTUzMzIsIDAuMDE1MzMzLCAwLjAxNTMzNiIsIFwKLSAgICAgICAgICAiMC4wMTUxMiwgMC4wMTUyNjYsIDAuMDE1Mjg2LCAwLjAxNTI5MSwgMC4wMTUyOTcsIDAuMDE1Mjk5LCAwLjAxNTMwMSIsIFwKLSAgICAgICAgICAiMC4wMTUwOTgsIDAuMDE1MjQ2LCAwLjAxNTI2NSwgMC4wMTUyNzEsIDAuMDE1Mjc2LCAwLjAxNTI4LCAwLjAxNTI4MiIsIFwKLSAgICAgICAgICAiMC4wMTUwOTgsIDAuMDE1MjQ0LCAwLjAxNTI2MywgMC4wMTUyNywgMC4wMTUyNzQsIDAuMDE1Mjc3LCAwLjAxNTI3OSIsIFwKLSAgICAgICAgICAiMC4wMTUxMTQsIDAuMDE1MjYxLCAwLjAxNTI4LCAwLjAxNTI4NiwgMC4wMTUyOTIsIDAuMDE1MjkzLCAwLjAxNTI5NiIsIFwKLSAgICAgICAgICAiMC4wMTUxMjMsIDAuMDE1Mjc0LCAwLjAxNTI5NiwgMC4wMTUzLCAwLjAxNTMwNSwgMC4wMTUzMDgsIDAuMDE1MzEiLCBcCi0gICAgICAgICAgIjAuMDE1MTUsIDAuMDE1Mjk4LCAwLjAxNTMyLCAwLjAxNTMyNSwgMC4wMTUzMzEsIDAuMDE1MzMzLCAwLjAxNTMzNSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE2MjAzLCAwLjAxNjQxMywgMC4wMTY0NDIsIDAuMDE2NDUyLCAwLjAxNjQ2LCAwLjAxNjQ2NCwgMC4wMTY0NjgiLCBcCi0gICAgICAgICAgIjAuMDE2MTc5LCAwLjAxNjM4NSwgMC4wMTY0MTUsIDAuMDE2NDI0LCAwLjAxNjQzMiwgMC4wMTY0MzYsIDAuMDE2NDQiLCBcCi0gICAgICAgICAgIjAuMDE2MTc1LCAwLjAxNjM4MywgMC4wMTY0MTMsIDAuMDE2NDIyLCAwLjAxNjQzLCAwLjAxNjQzNCwgMC4wMTY0MzgiLCBcCi0gICAgICAgICAgIjAuMDE2MTkyLCAwLjAxNjQwMiwgMC4wMTY0MzIsIDAuMDE2NDQyLCAwLjAxNjQ1LCAwLjAxNjQ1NCwgMC4wMTY0NTgiLCBcCi0gICAgICAgICAgIjAuMDE2MjIxLCAwLjAxNjQyOCwgMC4wMTY0NTgsIDAuMDE2NDY3LCAwLjAxNjQ3NSwgMC4wMTY0NzksIDAuMDE2NDgzIiwgXAotICAgICAgICAgICIwLjAxNjI2NSwgMC4wMTY0NzIsIDAuMDE2NTAyLCAwLjAxNjUxMSwgMC4wMTY1MiwgMC4wMTY1MjQsIDAuMDE2NTI3IiwgXAotICAgICAgICAgICIwLjAxNjMyMSwgMC4wMTY1MzEsIDAuMDE2NTYxLCAwLjAxNjU3MSwgMC4wMTY1NzksIDAuMDE2NTgzLCAwLjAxNjU4NiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oU0UpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTQ2MzY5OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTQ2MzY0OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTQ2MzY5OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNjAwNCwgMC4wMDU5OTQsIDAuMDA1OTk3LCAwLjAwNjAwNiwgMC4wMDYwMTcsIDAuMDA2MDQzLCAwLjAwNjA2NyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNzQ3MSwgMC4wMDc0MTYsIDAuMDA3Mzk2LCAwLjAwNzQxLCAwLjAwNzQxNywgMC4wMDc0NjcsIDAuMDA3NTE5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEJiFFJiFTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fRV9FUV8wX0FOX1NJX0VRXzAgPT0gMSdiMSI7Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDU2MjUsIC0wLjA1MTI1LCAtMC4wMzg3NSwgLTAuMDM4NzUsIC0wLjAzMjUsIC0wLjAyMjUsIC0wLjAyIiwgXAotICAgICAgICAgICItMC4wNjc1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wNDM3NSwgLTAuMDMzNzUsIC0wLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wOCwgLTAuMDY4NzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNTYyNSwgLTAuMDQ2MjUsIC0wLjA0Mzc1IiwgXAotICAgICAgICAgICItMC4wODYyNSwgLTAuMDgxMjUsIC0wLjA3NSwgLTAuMDY4NzUsIC0wLjA2MjUsIC0wLjA1ODc1LCAtMC4wNTYyNSIsIFwKLSAgICAgICAgICAiLTAuMDk4NzUsIC0wLjA5Mzc1LCAtMC4wODc1LCAtMC4wODEyNSwgLTAuMDc1LCAtMC4wNzEyNSwgLTAuMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMTA4NzUsIC0wLjEwMzc1LCAtMC4wOTc1LCAtMC4wOTEyNSwgLTAuMDg1LCAtMC4wODEyNSwgLTAuMDcyNSIsIFwKLSAgICAgICAgICAiLTAuMTE3NSwgLTAuMTEyNSwgLTAuMTA2MjUsIC0wLjEsIC0wLjA5Mzc1LCAtMC4wOSwgLTAuMDgxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUQmIUUmU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX0VfRVFfMF9BTl9TSV9FUV8xID09IDEnYjEiOwotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAwNjI1LCAwLjAwNSwgMC4wMTc1LCAwLjAyMzc1LCAwLjAzLCAwLjA0NjI1LCAwLjA1NSIsIFwKLSAgICAgICAgICAiLTAuMDExMjUsIC0wLjAwNjI1LCAwLjAwNjI1LCAwLjAxODc1LCAwLjAyNSwgMC4wMzUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMC4wMDYyNSwgMC4wMTI1LCAwLjAyODc1LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMjUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLjAwNjI1LCAwLjAxNjI1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAuMDAzNzUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDUyNSwgLTAuMDQxMjUsIC0wLjAzNSwgLTAuMDI4NzUsIC0wLjAxNjI1LCAtMC4wMDYyNSwgMC4wMDI1IiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAxNSwgLTAuMDA2MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUQmRSZTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fRV9FUV8xX0FOX1NJX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDM3NSwgLTAuMDMyNSwgLTAuMDI2MjUsIC0wLjAxMzc1LCAtMC4wMTM3NSwgLTAuMDAzNzUsIDAuMDA1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxNSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA2MTI1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMjEyNSwgLTAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjA3Mzc1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wMzM3NSwgLTAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjA4LCAtMC4wNzUsIC0wLjA2ODc1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDQ2MjUsIC0wLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjA5NjI1LCAtMC4wOTEyNSwgLTAuMDg1LCAtMC4wNzg3NSwgLTAuMDcyNSwgLTAuMDYyNSwgLTAuMDUzNzUiLCBcCi0gICAgICAgICAgIi0wLjExMTI1LCAtMC4xLCAtMC4wOTM3NSwgLTAuMDg3NSwgLTAuMDgxMjUsIC0wLjA3NzUsIC0wLjA2ODc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIkQmRSYhU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8xX0FOX0VfRVFfMV9BTl9TSV9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAxODc1LCAtMC4wMTM3NSwgLTAuMDAxMjUsIDAuMDExMjUsIDAuMDE3NSwgMC4wMzM3NSwgMC4wNDI1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDE4NzUsIC0wLjAxMjUsIDAsIDAuMDA2MjUsIDAuMDIyNSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAuMDEsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjA1NSwgLTAuMDQzNzUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAxMjUsIC0wLjAwMjUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA2MTI1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAwODc1LCAwIiwgXAotICAgICAgICAgICItMC4wNzEyNSwgLTAuMDY2MjUsIC0wLjA1Mzc1LCAtMC4wNDEyNSwgLTAuMDM1LCAtMC4wMTg3NSwgLTAuMDEiLCBcCi0gICAgICAgICAgIi0wLjA4NjI1LCAtMC4wNzUsIC0wLjA2MjUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDMzNzUsIC0wLjAxODc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRCYhRSYhU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX0VfRVFfMF9BTl9TSV9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2MjUsIDAuMDU3NSwgMC4wMzg3NSwgMC4wMzI1LCAwLjAyLCAwLjAwMzc1LCAtMC4wMDUiLCBcCi0gICAgICAgICAgIjAuMDczNzUsIDAuMDYyNSwgMC4wNSwgMC4wMzc1LCAwLjAzMTI1LCAwLjAxNSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiMC4wODYyNSwgMC4wNzUsIDAuMDYyNSwgMC4wNSwgMC4wNDM3NSwgMC4wMjc1LCAwLjAxODc1IiwgXAotICAgICAgICAgICIwLjA5ODc1LCAwLjA4NzUsIDAuMDc1LCAwLjA2MjUsIDAuMDUsIDAuMDQsIDAuMDI1IiwgXAotICAgICAgICAgICIwLjEwNSwgMC4wOTM3NSwgMC4wODEyNSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA0NjI1LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIjAuMTIxMjUsIDAuMTEsIDAuMDk3NSwgMC4wODUsIDAuMDcyNSwgMC4wNTYyNSwgMC4wNDc1IiwgXAotICAgICAgICAgICIwLjEzLCAwLjExODc1LCAwLjEwNjI1LCAwLjA5Mzc1LCAwLjA4MTI1LCAwLjA3MTI1LCAwLjA1NjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRCYhRSZTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fRV9FUV8wX0FOX1NJX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY4NzUsIDAuMDU3NSwgMC4wNTEyNSwgMC4wNDUsIDAuMDM4NzUsIDAuMDI4NzUsIDAuMDIiLCBcCi0gICAgICAgICAgIjAuMDgsIDAuMDY4NzUsIDAuMDU2MjUsIDAuMDUsIDAuMDQzNzUsIDAuMDMzNzUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMDkyNSwgMC4wODEyNSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA0NjI1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjEwNSwgMC4wOTM3NSwgMC4wODEyNSwgMC4wNzUsIDAuMDY4NzUsIDAuMDU4NzUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIjAuMTExMjUsIDAuMTA2MjUsIDAuMDkzNzUsIDAuMDg3NSwgMC4wODEyNSwgMC4wNzEyNSwgMC4wNjI1IiwgXAotICAgICAgICAgICIwLjEzMzc1LCAwLjEyMjUsIDAuMTEsIDAuMTAzNzUsIDAuMDk3NSwgMC4wODc1LCAwLjA3ODc1IiwgXAotICAgICAgICAgICIwLjE0MjUsIDAuMTMxMjUsIDAuMTI1LCAwLjExMjUsIDAuMTA2MjUsIDAuMTAyNSwgMC4wOTM3NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUQmRSZTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fRV9FUV8xX0FOX1NJX0VRXzEgPT0gMSdiMSI7Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDYyNSwgMC4wNTEyNSwgMC4wMzg3NSwgMC4wMjYyNSwgMC4wMTM3NSwgMC4wMDM3NSwgLTAuMDExMjUiLCBcCi0gICAgICAgICAgIjAuMDY3NSwgMC4wNjI1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDI1LCAwLjAwODc1LCAwIiwgXAotICAgICAgICAgICIwLjA4LCAwLjA2ODc1LCAwLjA1NjI1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDIxMjUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4wOTI1LCAwLjA4MTI1LCAwLjA2ODc1LCAwLjA1NjI1LCAwLjA0Mzc1LCAwLjAzMzc1LCAwLjAxODc1IiwgXAotICAgICAgICAgICIwLjEwNSwgMC4wOTM3NSwgMC4wODEyNSwgMC4wNjg3NSwgMC4wNTYyNSwgMC4wNCwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4xMjEyNSwgMC4xMSwgMC4wOTc1LCAwLjA4NSwgMC4wNzI1LCAwLjA1NjI1LCAwLjA0NzUiLCBcCi0gICAgICAgICAgIjAuMTMsIDAuMTE4NzUsIDAuMTA2MjUsIDAuMDkzNzUsIDAuMDg3NSwgMC4wNzEyNSwgMC4wNTYyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiRCZFJiFTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzFfQU5fRV9FUV8xX0FOX1NJX0VRXzAgPT0gMSdiMSI7Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDkzNzUsIDAuMDg4NzUsIDAuMDc2MjUsIDAuMDYzNzUsIDAuMDU3NSwgMC4wNTM3NSwgMC4wNDUiLCBcCi0gICAgICAgICAgIjAuMTA1LCAwLjA5Mzc1LCAwLjA4NzUsIDAuMDc1LCAwLjA2ODc1LCAwLjA2NSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiMC4xMTc1LCAwLjEwNjI1LCAwLjEsIDAuMDg3NSwgMC4wODEyNSwgMC4wNzc1LCAwLjA2ODc1IiwgXAotICAgICAgICAgICIwLjEzLCAwLjExODc1LCAwLjEwNjI1LCAwLjEsIDAuMDkzNzUsIDAuMDgzNzUsIDAuMDgxMjUiLCBcCi0gICAgICAgICAgIjAuMTM2MjUsIDAuMTMxMjUsIDAuMTE4NzUsIDAuMTEyNSwgMC4xMDYyNSwgMC4wOTYyNSwgMC4wODc1IiwgXAotICAgICAgICAgICIwLjE1MjUsIDAuMTQxMjUsIDAuMTI4NzUsIDAuMTIyNSwgMC4xMTYyNSwgMC4xMDYyNSwgMC4xMDM3NSIsIFwKLSAgICAgICAgICAiMC4xNjEyNSwgMC4xNSwgMC4xMzc1LCAwLjEzMTI1LCAwLjEyNSwgMC4xMTUsIDAuMTEyNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oU0kpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDkxNDkwNjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA5MTI0ODY7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwOTE0OTA2OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzI2NSwgMC4wMDMyMzQsIDAuMDAzMjE3LCAwLjAwMzIwOCwgMC4wMDMyMDMsIDAuMDAzMjE0LCAwLjAwMzIxNyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNjU2NSwgMC4wMDY1NDcsIDAuMDA2NTM3LCAwLjAwNjUzMywgMC4wMDY1MzEsIDAuMDA2NTM4LCAwLjAwNjU0MiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJTRSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wNDM3NSwgLTAuMDM4NzUsIC0wLjAzMjUsIC0wLjAyNjI1LCAtMC4wMiwgLTAuMDEsIC0wLjAwMTI1IiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMjEyNSwgLTAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDY3NSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDI3NSwgLTAuMDI1IiwgXAotICAgICAgICAgICItMC4wNzM3NSwgLTAuMDY4NzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDQsIC0wLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wODYyNSwgLTAuMDgxMjUsIC0wLjA2ODc1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDUyNSwgLTAuMDQzNzUiLCBcCi0gICAgICAgICAgIi0wLjEwMjUsIC0wLjA5MTI1LCAtMC4wODUsIC0wLjA3ODc1LCAtMC4wNzI1LCAtMC4wNjI1LCAtMC4wNiIsIFwKLSAgICAgICAgICAiLTAuMTExMjUsIC0wLjEwNjI1LCAtMC4xLCAtMC4wOTM3NSwgLTAuMDg3NSwgLTAuMDc3NSwgLTAuMDY4NzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMDYyNSwgMC4wMDUsIDAuMDExMjUsIDAuMDIzNzUsIDAuMDMsIDAuMDQ2MjUsIDAuMDU1IiwgXAotICAgICAgICAgICItMC4wMTc1LCAtMC4wMDYyNSwgMC4wMDYyNSwgMC4wMTg3NSwgMC4wMjUsIDAuMDM1LCAwLjA1IiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAuMDA2MjUsIDAuMDEyNSwgMC4wMjg3NSwgMC4wMzc1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDI1LCAtMC4wMTI1LCAwLCAwLjAwNjI1LCAwLjAxNjI1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIDAsIDAuMDEsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjA1MjUsIC0wLjA0MTI1LCAtMC4wMjg3NSwgLTAuMDIyNSwgLTAuMDEsIDAsIDAuMDA4NzUiLCBcCi0gICAgICAgICAgIi0wLjA2MTI1LCAtMC4wNSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAxODc1LCAtMC4wMDg3NSwgMCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiU0UiOwotICAgICAgc2RmX2NvbmQgOiAiU0UgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc1LCAwLjA2Mzc1LCAwLjA1NzUsIDAuMDUxMjUsIDAuMDQ1LCAwLjAzNSwgMC4wMjYyNSIsIFwKLSAgICAgICAgICAiMC4wODYyNSwgMC4wNzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNSwgMC4wNCwgMC4wMzc1IiwgXAotICAgICAgICAgICIwLjA5ODc1LCAwLjA4NzUsIDAuMDc1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDUyNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4xMDUsIDAuMDkzNzUsIDAuMDg3NSwgMC4wODEyNSwgMC4wNzUsIDAuMDY1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICIwLjExNzUsIDAuMTA2MjUsIDAuMDkzNzUsIDAuMDg3NSwgMC4wODEyNSwgMC4wNzEyNSwgMC4wNjg3NSIsIFwKLSAgICAgICAgICAiMC4xMzM3NSwgMC4xMjI1LCAwLjExLCAwLjEwMzc1LCAwLjA5NzUsIDAuMDg3NSwgMC4wODUiLCBcCi0gICAgICAgICAgIjAuMTQyNSwgMC4xMzc1LCAwLjEyNSwgMC4xMTg3NSwgMC4xMTI1LCAwLjEwMjUsIDAuMDkzNzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNSwgMC4wMzg3NSwgMC4wMjYyNSwgMC4wMTM3NSwgMC4wMDc1LCAtMC4wMDg3NSwgLTAuMDE3NSIsIFwKLSAgICAgICAgICAiMC4wNjEyNSwgMC4wNSwgMC4wMzc1LCAwLjAyNSwgMC4wMTI1LCAwLjAwMjUsIC0wLjAxMjUiLCBcCi0gICAgICAgICAgIjAuMDY3NSwgMC4wNTYyNSwgMC4wNDM3NSwgMC4wMzEyNSwgMC4wMjUsIDAuMDA4NzUsIDAiLCBcCi0gICAgICAgICAgIjAuMDgsIDAuMDY4NzUsIDAuMDU2MjUsIDAuMDQzNzUsIDAuMDMxMjUsIDAuMDIxMjUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMDg2MjUsIDAuMDc1LCAwLjA2MjUsIDAuMDUsIDAuMDQzNzUsIDAuMDI3NSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4xMDI1LCAwLjA5MTI1LCAwLjA3ODc1LCAwLjA2NjI1LCAwLjA1Mzc1LCAwLjA0Mzc1LCAwLjAyODc1IiwgXAotICAgICAgICAgICIwLjExMTI1LCAwLjEsIDAuMDg3NSwgMC4wNzUsIDAuMDY4NzUsIDAuMDUyNSwgMC4wNDM3NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IFNFREZGWDQgKgotICogLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoU0VERkZYNCkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjc2NzYwNDsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBmZiAoTjMwLE5FVDUzNikgewotICAgIG5leHRfc3RhdGUgOiAiKChTRSBTSSkgKyAoIVNFICgoRSBEKSArICghRSAoISghTjMwKSkpKSkpIjsKLSAgICBjbG9ja2VkX29uIDogIkNLIjsKLSAgfQotICBwaW4oQ0spICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDU4NTY2MTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA1ODU1ODsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA1ODU2NjE7Ci0gICAgY2xvY2sgOiB0cnVlOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzA5MywgMC4wMDMwNjYsIDAuMDAzMDUzLCAwLjAwMzA1MywgMC4wMDMwNjQsIDAuMDAzMDg1LCAwLjAwMzEwNyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNTg1NiwgMC4wMDU4MzIsIDAuMDA1ODI3LCAwLjAwNTgzNywgMC4wMDU4NTksIDAuMDA1OTAxLCAwLjAwNTk0MSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQmIUUmU0UmIVNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9FX0VRXzBfQU5fU0VfRVFfMV9BTl9TSV9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMTU1NjUyLCAwLjE2NTc4MywgMC4xNzg0NzMsIDAuMTkwMDk4LCAwLjIwMDM4NCwgMC4yMTQzNzIsIDAuMjI1MjY2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wOTQxMzIsIDAuMTA0MDg0LCAwLjExNjIxNiwgMC4xMjczODgsIDAuMTM2OTc3LCAwLjE0OTg2NywgMC4xNTk2OSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjYxMDY3OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDY1OTQ0MzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2NjEwNjc7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzMjEsIDAuMDAzMTk1LCAwLjAwMzE4OCwgMC4wMDMxODUsIDAuMDAzMTg0LCAwLjAwMzE4NCwgMC4wMDMxODgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDY2MzEsIDAuMDA2NjIzLCAwLjAwNjYyLCAwLjAwNjYxNywgMC4wMDY2MTcsIDAuMDA2NjE3LCAwLjAwNjYyMiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJFJiFTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJFX0VRXzFfQU5fU0VfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4xLCAtMC4wOTUsIC0wLjA4ODc1LCAtMC4wODI1LCAtMC4wODI1LCAtMC4wNzI1LCAtMC4wNyIsIFwKLSAgICAgICAgICAiLTAuMTExMjUsIC0wLjEwNjI1LCAtMC4xLCAtMC4wOTM3NSwgLTAuMDg3NSwgLTAuMDgzNzUsIC0wLjA4MTI1IiwgXAotICAgICAgICAgICItMC4xMjM3NSwgLTAuMTEyNSwgLTAuMTA2MjUsIC0wLjEwNjI1LCAtMC4xLCAtMC4wOTYyNSwgLTAuMDg3NSIsIFwKLSAgICAgICAgICAiLTAuMTMsIC0wLjEyNSwgLTAuMTE4NzUsIC0wLjExMjUsIC0wLjExMjUsIC0wLjEwODc1LCAtMC4xIiwgXAotICAgICAgICAgICItMC4xNDI1LCAtMC4xMzc1LCAtMC4xMzEyNSwgLTAuMTI1LCAtMC4xMjUsIC0wLjExNSwgLTAuMTEyNSIsIFwKLSAgICAgICAgICAiLTAuMTU4NzUsIC0wLjE1Mzc1LCAtMC4xNDc1LCAtMC4xNDEyNSwgLTAuMTQxMjUsIC0wLjEzMTI1LCAtMC4xMjg3NSIsIFwKLSAgICAgICAgICAiLTAuMTczNzUsIC0wLjE2ODc1LCAtMC4xNjI1LCAtMC4xNTYyNSwgLTAuMTUsIC0wLjE0NjI1LCAtMC4xNDM3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAzNzUsIC0wLjAzMjUsIC0wLjAyNjI1LCAtMC4wMiwgLTAuMDIsIC0wLjAxLCAtMC4wMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjAzNzUsIC0wLjAzNzUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAxNSwgLTAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzNzUsIC0wLjAyNzUsIC0wLjAxODc1IiwgXAotICAgICAgICAgICItMC4wNjc1LCAtMC4wNTYyNSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDQsIC0wLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wNzM3NSwgLTAuMDY4NzUsIC0wLjA2MjUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNDYyNSwgLTAuMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDgzNzUsIC0wLjA3ODc1LCAtMC4wNzI1LCAtMC4wNzI1LCAtMC4wNzI1LCAtMC4wNjI1LCAtMC4wNTM3NSIsIFwKLSAgICAgICAgICAiLTAuMDkyNSwgLTAuMDg3NSwgLTAuMDg3NSwgLTAuMDgxMjUsIC0wLjA4MTI1LCAtMC4wNzEyNSwgLTAuMDYyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiRSYhU0UiOwotICAgICAgc2RmX2NvbmQgOiAiRV9FUV8xX0FOX1NFX0VRXzAgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTUsIDAuMTM4NzUsIDAuMTMyNSwgMC4xMiwgMC4xMTM3NSwgMC4xMDM3NSwgMC4xMDEyNSIsIFwKLSAgICAgICAgICAiMC4xNjEyNSwgMC4xNSwgMC4xMzc1LCAwLjEzMTI1LCAwLjEyNSwgMC4xMTUsIDAuMTEyNSIsIFwKLSAgICAgICAgICAiMC4xNzM3NSwgMC4xNjI1LCAwLjE1LCAwLjE0Mzc1LCAwLjEzNzUsIDAuMTI3NSwgMC4xMTg3NSIsIFwKLSAgICAgICAgICAiMC4xOCwgMC4xNjg3NSwgMC4xNjI1LCAwLjE1LCAwLjE0Mzc1LCAwLjE0LCAwLjEzMTI1IiwgXAotICAgICAgICAgICIwLjE5MjUsIDAuMTgxMjUsIDAuMTY4NzUsIDAuMTYyNSwgMC4xNTYyNSwgMC4xNDYyNSwgMC4xNDM3NSIsIFwKLSAgICAgICAgICAiMC4yMDg3NSwgMC4xOTc1LCAwLjE5MTI1LCAwLjE3ODc1LCAwLjE3MjUsIDAuMTYyNSwgMC4xNiIsIFwKLSAgICAgICAgICAiMC4yMjM3NSwgMC4yMTI1LCAwLjIsIDAuMTkzNzUsIDAuMTg3NSwgMC4xNzc1LCAwLjE3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEzMTI1LCAwLjEyLCAwLjEwNzUsIDAuMDk1LCAwLjA4MjUsIDAuMDcyNSwgMC4wNTc1IiwgXAotICAgICAgICAgICIwLjEzNjI1LCAwLjEyNSwgMC4xMTI1LCAwLjEsIDAuMDkzNzUsIDAuMDc3NSwgMC4wNjg3NSIsIFwKLSAgICAgICAgICAiMC4xNDg3NSwgMC4xMzc1LCAwLjEyNSwgMC4xMTI1LCAwLjEsIDAuMDksIDAuMDc1IiwgXAotICAgICAgICAgICIwLjE1NSwgMC4xNDM3NSwgMC4xMzEyNSwgMC4xMTg3NSwgMC4xMTI1LCAwLjA5NjI1LCAwLjA4NzUiLCBcCi0gICAgICAgICAgIjAuMTY3NSwgMC4xNTYyNSwgMC4xNDM3NSwgMC4xMzEyNSwgMC4xMTg3NSwgMC4xMDg3NSwgMC4xIiwgXAotICAgICAgICAgICIwLjE4Mzc1LCAwLjE3MjUsIDAuMTYsIDAuMTQ3NSwgMC4xMzUsIDAuMTI1LCAwLjExIiwgXAotICAgICAgICAgICIwLjE5MjUsIDAuMTgxMjUsIDAuMTY4NzUsIDAuMTU2MjUsIDAuMTUsIDAuMTMzNzUsIDAuMTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihFKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDEyODkzNTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDEyODkxOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTI4OTM1OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNjMwNywgMC4wMDYyODEsIDAuMDA2Mjg3LCAwLjAwNjI5MSwgMC4wMDYzMDcsIDAuMDA2MzMxLCAwLjAwNjM1NyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNzYyNiwgMC4wMDc1OTUsIDAuMDA3NTg4LCAwLjAwNzU5NiwgMC4wMDc2MSwgMC4wMDc2NDYsIDAuMDA3NjgyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJTRSA9PSAxJ2IwIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4xMTI1LCAtMC4xMDEyNSwgLTAuMDk1LCAtMC4wODI1LCAtMC4wNzYyNSwgLTAuMDYsIC0wLjA1MTI1IiwgXAotICAgICAgICAgICItMC4xMjM3NSwgLTAuMTEyNSwgLTAuMTA2MjUsIC0wLjA5Mzc1LCAtMC4wODc1LCAtMC4wNzEyNSwgLTAuMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMTMsIC0wLjEyNSwgLTAuMTE4NzUsIC0wLjEwNjI1LCAtMC4wOTM3NSwgLTAuMDgzNzUsIC0wLjA3NSIsIFwKLSAgICAgICAgICAiLTAuMTQyNSwgLTAuMTM3NSwgLTAuMTI1LCAtMC4xMTI1LCAtMC4xMDYyNSwgLTAuMDksIC0wLjA4MTI1IiwgXAotICAgICAgICAgICItMC4xNTUsIC0wLjE0Mzc1LCAtMC4xMzEyNSwgLTAuMTI1LCAtMC4xMTI1LCAtMC4xMDI1LCAtMC4wODc1IiwgXAotICAgICAgICAgICItMC4xNjUsIC0wLjE1Mzc1LCAtMC4xNDEyNSwgLTAuMTM1LCAtMC4xMjI1LCAtMC4xMTI1LCAtMC4wOTc1IiwgXAotICAgICAgICAgICItMC4xNzM3NSwgLTAuMTYyNSwgLTAuMTUsIC0wLjEzNzUsIC0wLjEzMTI1LCAtMC4xMTUsIC0wLjEwNjI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDMxMjUsIC0wLjAyNjI1LCAtMC4wMiwgLTAuMDEzNzUsIC0wLjAwNzUsIC0wLjAwMzc1LCAwLjAwNSIsIFwKLSAgICAgICAgICAiLTAuMDQyNSwgLTAuMDMxMjUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMDg3NSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA0ODc1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAyMTI1LCAtMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wNjEyNSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDQzNzUsIC0wLjAzMzc1LCAtMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjA2NzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjA0NjI1LCAtMC4wMzc1IiwgXAotICAgICAgICAgICItMC4wODM3NSwgLTAuMDcyNSwgLTAuMDcyNSwgLTAuMDY2MjUsIC0wLjA2NjI1LCAtMC4wNjI1LCAtMC4wNTM3NSIsIFwKLSAgICAgICAgICAiLTAuMDkyNSwgLTAuMDg3NSwgLTAuMDgxMjUsIC0wLjA3NSwgLTAuMDgxMjUsIC0wLjA3MTI1LCAtMC4wNjg3NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIVNFIjsKLSAgICAgIHNkZl9jb25kIDogIlNFID09IDEnYjAiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE0Mzc1LCAwLjEzMjUsIDAuMTI2MjUsIDAuMTEzNzUsIDAuMTA3NSwgMC4wOTc1LCAwLjA5NSIsIFwKLSAgICAgICAgICAiMC4xNTUsIDAuMTQzNzUsIDAuMTMxMjUsIDAuMTI1LCAwLjExODc1LCAwLjEwODc1LCAwLjEwNjI1IiwgXAotICAgICAgICAgICIwLjE2NzUsIDAuMTU2MjUsIDAuMTQzNzUsIDAuMTM3NSwgMC4xMzEyNSwgMC4xMjEyNSwgMC4xMTg3NSIsIFwKLSAgICAgICAgICAiMC4xOCwgMC4xNjg3NSwgMC4xNTYyNSwgMC4xNSwgMC4xNDM3NSwgMC4xMzM3NSwgMC4xMjUiLCBcCi0gICAgICAgICAgIjAuMTkyNSwgMC4xODEyNSwgMC4xNjg3NSwgMC4xNjI1LCAwLjE1NjI1LCAwLjE0NjI1LCAwLjEzNzUiLCBcCi0gICAgICAgICAgIjAuMjA4NzUsIDAuMTk3NSwgMC4xODUsIDAuMTc4NzUsIDAuMTcyNSwgMC4xNjI1LCAwLjE2IiwgXAotICAgICAgICAgICIwLjIyMzc1LCAwLjIxMjUsIDAuMiwgMC4xOTM3NSwgMC4xODc1LCAwLjE3NzUsIDAuMTc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTI1LCAwLjExMzc1LCAwLjEwNzUsIDAuMTA3NSwgMC4xMDEyNSwgMC4wOTEyNSwgMC4wODg3NSIsIFwKLSAgICAgICAgICAiMC4xMywgMC4xMjUsIDAuMTE4NzUsIDAuMTEyNSwgMC4xMTI1LCAwLjEwMjUsIDAuMSIsIFwKLSAgICAgICAgICAiMC4xNDI1LCAwLjEzNzUsIDAuMTMxMjUsIDAuMTI1LCAwLjExODc1LCAwLjExNSwgMC4xMTI1IiwgXAotICAgICAgICAgICIwLjE0ODc1LCAwLjE0Mzc1LCAwLjEzNzUsIDAuMTMxMjUsIDAuMTMxMjUsIDAuMTIxMjUsIDAuMTE4NzUiLCBcCi0gICAgICAgICAgIjAuMTYxMjUsIDAuMTUsIDAuMTQzNzUsIDAuMTM3NSwgMC4xMzc1LCAwLjEyNzUsIDAuMTI1IiwgXAotICAgICAgICAgICIwLjE2NSwgMC4xNiwgMC4xNTM3NSwgMC4xNDc1LCAwLjE0NzUsIDAuMTM3NSwgMC4xMzUiLCBcCi0gICAgICAgICAgIjAuMTczNzUsIDAuMTY4NzUsIDAuMTYyNSwgMC4xNTYyNSwgMC4xNSwgMC4xNDYyNSwgMC4xMzc1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihRKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDEuMDM0OTsKLSAgICBmdW5jdGlvbiA6ICJOMzAiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5vbl91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcmlzaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTEzOTg5LCAwLjE4NjQ1NSwgMC4yNTc5MTcsIDAuMzA4NjA2LCAwLjM5MDI4NywgMC40NjExMjgsIDAuNTYzMjk1IiwgXAotICAgICAgICAgICIwLjEyNDA4MywgMC4xOTY1NTYsIDAuMjY3OTY0LCAwLjMxODU1NiwgMC40MDA0MTQsIDAuNDcxNTMzLCAwLjU3MjM4NSIsIFwKLSAgICAgICAgICAiMC4xMzY2ODYsIDAuMjA5MTUyLCAwLjI4MDYwMSwgMC4zMzExNTYsIDAuNDEzMDg1LCAwLjQ4Mzc1MiwgMC41ODUxMzQiLCBcCi0gICAgICAgICAgIjAuMTQ4MTgyLCAwLjIyMDY1MSwgMC4yOTIwNTIsIDAuMzQyNjYxLCAwLjQyNDY1OSwgMC40OTU4NjMsIDAuNTk2NDg5IiwgXAotICAgICAgICAgICIwLjE1ODI2MSwgMC4yMzA3MzEsIDAuMzAyMTMxLCAwLjM1MjczOCwgMC40MzQxMzEsIDAuNTA1NDUxLCAwLjYwNjUyOSIsIFwKLSAgICAgICAgICAiMC4xNzIxOTUsIDAuMjQ0NjU5LCAwLjMxNjA3NiwgMC4zNjY2NywgMC40NDg2MTksIDAuNTE5OTgsIDAuNjIxMzUzIiwgXAotICAgICAgICAgICIwLjE4Mjg0OSwgMC4yNTUzMiwgMC4zMjY4MjgsIDAuMzc3MzQ0LCAwLjQ1OTI1MiwgMC41MzAxMjEsIDAuNjMyMDMzIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDMyMTIyLCAwLjE3NTkxNiwgMC4zMjE2MzMsIDAuNDI2NDU5LCAwLjU5Mjc3NCwgMC43MzkxMywgMC45NDc3ODUiLCBcCi0gICAgICAgICAgIjAuMDMyMTExLCAwLjE3NTAyOCwgMC4zMjEwNzEsIDAuNDI2NDQ4LCAwLjU5MjM3NCwgMC43MzkxOTQsIDAuOTQ3Nzc5IiwgXAotICAgICAgICAgICIwLjAzMjExOSwgMC4xNzU5MzMsIDAuMzIxOTc3LCAwLjQyNjQ0OCwgMC41OTMyODQsIDAuNzM5MDg0LCAwLjk0Nzk0OSIsIFwKLSAgICAgICAgICAiMC4wMzIxMDUsIDAuMTc0OTk5LCAwLjMyMTAyMiwgMC40MjY0NDksIDAuNTkyNzU5LCAwLjczODc0NywgMC45NDc5NzYiLCBcCi0gICAgICAgICAgIjAuMDMyMTAxLCAwLjE3NTA3NiwgMC4zMjA5NTUsIDAuNDI2NDQ5LCAwLjU5MzIxLCAwLjczOTE2NywgMC45NDc4MTYiLCBcCi0gICAgICAgICAgIjAuMDMyMDc1LCAwLjE3NTA5NSwgMC4zMjExNTEsIDAuNDI2NDQ5LCAwLjU5MTMwNSwgMC43MzkxMzYsIDAuOTQ3Nzg2IiwgXAotICAgICAgICAgICIwLjAzMjEwNSwgMC4xNzU4MDYsIDAuMzIxNDc5LCAwLjQyNjQwNiwgMC41OTI0MjIsIDAuNzM5MjIyLCAwLjk0Nzk5NSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEyNDkzNCwgMC4xOTk4NSwgMC4yNzM4MDQsIDAuMzI1ODE3LCAwLjQwOTk2MSwgMC40ODM1MTIsIDAuNTg4MDgxIiwgXAotICAgICAgICAgICIwLjEzNTA1OSwgMC4yMDk5ODEsIDAuMjgzOTIyLCAwLjMzNTkyNiwgMC40MjAyMzksIDAuNDkzNjM0LCAwLjU5ODQzNyIsIFwKLSAgICAgICAgICAiMC4xNDc3NTksIDAuMjIyNjcsIDAuMjk2NjE3LCAwLjM0ODU5NiwgMC40MzI2NzEsIDAuNTA2MzI1LCAwLjYxMDc3OSIsIFwKLSAgICAgICAgICAiMC4xNTkzNTEsIDAuMjM0Mjc0LCAwLjMwODExMywgMC4zNjA4MTYsIDAuNDQ0NjQ2LCAwLjUxNzk0MSwgMC42MjI3NDQiLCBcCi0gICAgICAgICAgIjAuMTY5NjU5LCAwLjI0NDU3MywgMC4zMTg1MjMsIDAuMzcwNTQ0LCAwLjQ1NTE3OSwgMC41MjgyMjgsIDAuNjMzMDM2IiwgXAotICAgICAgICAgICIwLjE4MzYzMSwgMC4yNTg1OTEsIDAuMzMyNTY2LCAwLjM4NTI4OSwgMC40NjkyNDYsIDAuNTQyMjIsIDAuNjQ3MDMiLCBcCi0gICAgICAgICAgIjAuMTk0NTMsIDAuMjY5NDc1LCAwLjM0Mjk5NywgMC4zOTU0MiwgMC40Nzk4MzIsIDAuNTUzMTAzLCAwLjY1NzkxMSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzMjAxNCwgMC4xNzc2NjEsIDAuMzI0MjQ5LCAwLjQzMTUyMywgMC42MDE1MzgsIDAuNzUwNDIxLCAwLjk2MzM2NSIsIFwKLSAgICAgICAgICAiMC4wMzE5NjIsIDAuMTc3NTE3LCAwLjMyNTA1NSwgMC40MzA3ODMsIDAuNjAxNTA2LCAwLjc1MDEwMiwgMC45NjM0NTgiLCBcCi0gICAgICAgICAgIjAuMDMyMTg4LCAwLjE3NzY2MiwgMC4zMjQzNjMsIDAuNDMwNzI1LCAwLjYwMTY1NywgMC43NTA0NDcsIDAuOTYxOTU3IiwgXAotICAgICAgICAgICIwLjAzMTk1MywgMC4xNzg4MjQsIDAuMzI2NDIyLCAwLjQzMjM4MSwgMC42MDEzNDIsIDAuNzUwNjI0LCAwLjk2MzQ1NyIsIFwKLSAgICAgICAgICAiMC4wMzE5NzQsIDAuMTc3NjksIDAuMzI0MjE3LCAwLjQzMDkzNCwgMC42MDE0OTMsIDAuNzUwMTA1LCAwLjk2MzQ2OSIsIFwKLSAgICAgICAgICAiMC4wMzIxNjEsIDAuMTc4MDQ2LCAwLjMyNTk5NiwgMC40MzE0ODUsIDAuNjAxMTI1LCAwLjc1MDYwOSwgMC45NjM0NiIsIFwKLSAgICAgICAgICAiMC4wMzE5MjcsIDAuMTc4MDQ5LCAwLjMyNjQ4LCAwLjQzMTIyLCAwLjYwMTI5MiwgMC43NTA2MzYsIDAuOTYzNDYyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA4NjYyLCAwLjAwODg0NiwgMC4wMDg4NywgMC4wMDg4NzcsIDAuMDA4ODgzLCAwLjAwODg4NiwgMC4wMDg4OSIsIFwKLSAgICAgICAgICAiMC4wMDg2NDUsIDAuMDA4ODI5LCAwLjAwODg1MywgMC4wMDg4NiwgMC4wMDg4NjYsIDAuMDA4ODcsIDAuMDA4ODczIiwgXAotICAgICAgICAgICIwLjAwODYzNiwgMC4wMDg4MjEsIDAuMDA4ODQ0LCAwLjAwODg1MiwgMC4wMDg4NTgsIDAuMDA4ODYxLCAwLjAwODg2NCIsIFwKLSAgICAgICAgICAiMC4wMDg2MzcsIDAuMDA4ODIyLCAwLjAwODg0NiwgMC4wMDg4NTMsIDAuMDA4ODU5LCAwLjAwODg2MiwgMC4wMDg4NjUiLCBcCi0gICAgICAgICAgIjAuMDA4NjQ0LCAwLjAwODgyOCwgMC4wMDg4NTIsIDAuMDA4ODU5LCAwLjAwODg2NCwgMC4wMDg4NjgsIDAuMDA4ODcxIiwgXAotICAgICAgICAgICIwLjAwODY1MywgMC4wMDg4MzgsIDAuMDA4ODYyLCAwLjAwODg3LCAwLjAwODg3NiwgMC4wMDg4NzksIDAuMDA4ODgyIiwgXAotICAgICAgICAgICIwLjAwODY2NiwgMC4wMDg4NTEsIDAuMDA4ODc1LCAwLjAwODg4MiwgMC4wMDg4ODksIDAuMDA4ODkyLCAwLjAwODg5NCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA5MDUyLCAwLjAwOTIzOSwgMC4wMDkyNjQsIDAuMDA5Mjc0LCAwLjAwOTI3OCwgMC4wMDkyODIsIDAuMDA5Mjg0IiwgXAotICAgICAgICAgICIwLjAwOTAzOCwgMC4wMDkyMjUsIDAuMDA5MjUsIDAuMDA5MjU3LCAwLjAwOTI2MywgMC4wMDkyNjYsIDAuMDA5MjY5IiwgXAotICAgICAgICAgICIwLjAwOTAzNiwgMC4wMDkyMjQsIDAuMDA5MjQ5LCAwLjAwOTI1NiwgMC4wMDkyNjMsIDAuMDA5MjY2LCAwLjAwOTI2OSIsIFwKLSAgICAgICAgICAiMC4wMDkwNDEsIDAuMDA5MjMxLCAwLjAwOTI1NiwgMC4wMDkyNjQsIDAuMDA5MjcsIDAuMDA5MjczLCAwLjAwOTI3NiIsIFwKLSAgICAgICAgICAiMC4wMDkwNTcsIDAuMDA5MjQ2LCAwLjAwOTI3MywgMC4wMDkyNzksIDAuMDA5Mjg1LCAwLjAwOTI4OCwgMC4wMDkyOTIiLCBcCi0gICAgICAgICAgIjAuMDA5MDc0LCAwLjAwOTI2MywgMC4wMDkyODgsIDAuMDA5Mjk2LCAwLjAwOTMwMiwgMC4wMDkzMDYsIDAuMDA5MzA4IiwgXAotICAgICAgICAgICIwLjAwOTA5OCwgMC4wMDkyODcsIDAuMDA5MzEyLCAwLjAwOTMxOSwgMC4wMDkzMjYsIDAuMDA5MzI5LCAwLjAwOTMzMSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUU4pICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMS4wMzY5NzsKLSAgICBmdW5jdGlvbiA6ICJORVQ1MzYiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5vbl91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcmlzaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTU1NjUyLCAwLjIyOTI3MywgMC4zMDIwOTEsIDAuMzU0MTM1LCAwLjQzNzQyMiwgMC41MTAyOTgsIDAuNjE0MzcyIiwgXAotICAgICAgICAgICIwLjE2NTc4MywgMC4yMzk0MTIsIDAuMzEyMjMxLCAwLjM2NDI3NiwgMC40NDc1NjEsIDAuNTIwNDY3LCAwLjYyNDU2NCIsIFwKLSAgICAgICAgICAiMC4xNzg0NzMsIDAuMjUyMDk0LCAwLjMyNDkxMiwgMC4zNzY5NjUsIDAuNDYwMjQzLCAwLjUzMzEwOCwgMC42MzcxOSIsIFwKLSAgICAgICAgICAiMC4xOTAwOTgsIDAuMjYzNzIxLCAwLjMzNjUzNiwgMC4zODg1ODEsIDAuNDcxODg3LCAwLjU0NDc3MSwgMC42NDg4NjgiLCBcCi0gICAgICAgICAgIjAuMjAwMzg0LCAwLjI3Mzk5OSwgMC4zNDY4MTUsIDAuMzk4ODYxLCAwLjQ4MjE2OCwgMC41NTUwNSwgMC42NTkxNDgiLCBcCi0gICAgICAgICAgIjAuMjE0MzcyLCAwLjI4Nzk5NCwgMC4zNjA4MTQsIDAuNDEyODU3LCAwLjQ5NjEzMiwgMC41NjkwNDcsIDAuNjczMTQ2IiwgXAotICAgICAgICAgICIwLjIyNTI2NiwgMC4yOTg4ODcsIDAuMzcxNzA2LCAwLjQyMzc1MSwgMC41MDcwNDIsIDAuNTc5OTQsIDAuNjg0MDM4Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDMzNDY0LCAwLjE4MDI4MSwgMC4zMzEwOTQsIDAuNDM5NzY3LCAwLjYxMzM3MSwgMC43NjUyMTUsIDAuOTgxNDgyIiwgXAotICAgICAgICAgICIwLjAzMzQ2OCwgMC4xODAyODIsIDAuMzMxMjg2LCAwLjQzOTc2OCwgMC42MTI0NTgsIDAuNzY1MTk5LCAwLjk4MTU0MSIsIFwKLSAgICAgICAgICAiMC4wMzM0NjUsIDAuMTgwMjgxLCAwLjMzMTAzNSwgMC40Mzk3NjUsIDAuNjEzMTg1LCAwLjc2NTIwNiwgMC45ODA3MDUiLCBcCi0gICAgICAgICAgIjAuMDMzNDU1LCAwLjE4MDM0LCAwLjMzMTU4OSwgMC40NDAwMzMsIDAuNjEyOTg5LCAwLjc2NDcxMywgMC45ODE5NTMiLCBcCi0gICAgICAgICAgIjAuMDMzNDY5LCAwLjE4MDI4MSwgMC4zMzExMTYsIDAuNDM5NzY5LCAwLjYxMzM5OCwgMC43NjUxOTEsIDAuOTgxNTQ5IiwgXAotICAgICAgICAgICIwLjAzMzQ3MiwgMC4xODAyODMsIDAuMzMxMTEzLCAwLjQzOTc3LCAwLjYxMjIxNCwgMC43NjUxODQsIDAuOTgxOTUxIiwgXAotICAgICAgICAgICIwLjAzMzQ1LCAwLjE4MDI4MiwgMC4zMzE2NzksIDAuNDM5NzcsIDAuNjEyOTk0LCAwLjc2NDcxNiwgMC45ODE1NDQiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNDY4MjIsIDAuMjIxNDA4LCAwLjI5NDk1OSwgMC4zNDc1MzYsIDAuNDMxNjA1LCAwLjUwNTIzMywgMC42MTAzMjYiLCBcCi0gICAgICAgICAgIjAuMTU2OTQsIDAuMjMxNTM0LCAwLjMwNTA4OSwgMC4zNTc2NjEsIDAuNDQxNzQsIDAuNTE1MzU2LCAwLjYyMDQ0OCIsIFwKLSAgICAgICAgICAiMC4xNjk1MzMsIDAuMjQ0MTI3LCAwLjMxNzY4MSwgMC4zNzAyMzksIDAuNDU0MzQ0LCAwLjUyNzkxNiwgMC42MzMwNjEiLCBcCi0gICAgICAgICAgIjAuMTgxMDQyLCAwLjI1NTYyOSwgMC4zMjkxODIsIDAuMzgxNzU3LCAwLjQ2NTgzLCAwLjUzOTQ1MywgMC42NDQ1NDUiLCBcCi0gICAgICAgICAgIjAuMTkxMTE3LCAwLjI2NTcwOSwgMC4zMzkyNjIsIDAuMzkxODM5LCAwLjQ3NTkzLCAwLjU0OTUzLCAwLjY1NDYyMiIsIFwKLSAgICAgICAgICAiMC4yMDUwNTMsIDAuMjc5NjM2LCAwLjM1MzE4NywgMC40MDU3NjUsIDAuNDg5ODQsIDAuNTYzNDYyLCAwLjY2ODU1NCIsIFwKLSAgICAgICAgICAiMC4yMTU3MDksIDAuMjkwMjk5LCAwLjM2Mzg1LCAwLjQxNjQyNywgMC41MDA1MDMsIDAuNTc0MTI0LCAwLjY3OTIxNiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzMjk2OSwgMC4xNzc2MjEsIDAuMzI2MDA2LCAwLjQzMjc3NSwgMC42MDI3ODksIDAuNzUyNjIsIDAuOTY1Mzc5IiwgXAotICAgICAgICAgICIwLjAzMjk2LCAwLjE3NzU5LCAwLjMyNjA2OSwgMC40MzI3MywgMC42MDI1MzUsIDAuNzUyNjc4LCAwLjk2NTM2OSIsIFwKLSAgICAgICAgICAiMC4wMzI5NTcsIDAuMTc3NjIsIDAuMzI2MTE5LCAwLjQzMjcyMSwgMC42MDMzMDksIDAuNzUyNTg1LCAwLjk2NTQ1IiwgXAotICAgICAgICAgICIwLjAzMjk2MSwgMC4xNzc1OTgsIDAuMzI2MDY5LCAwLjQzMjczMSwgMC42MDI3NDEsIDAuNzUyMzQ3LCAwLjk2NTM2OSIsIFwKLSAgICAgICAgICAiMC4wMzI5NTgsIDAuMTc3NTk5LCAwLjMyNjA3MiwgMC40MzI3MywgMC42MDMyNTksIDAuNzUyNjQ2LCAwLjk2NTM0NSIsIFwKLSAgICAgICAgICAiMC4wMzI5NjEsIDAuMTc3NTg0LCAwLjMyNjAyNiwgMC40MzI3MjMsIDAuNjAyNjM5LCAwLjc1MjYyMywgMC45NjUzNzciLCBcCi0gICAgICAgICAgIjAuMDMyOTU5LCAwLjE3NzYxNCwgMC4zMjYwMjksIDAuNDMyNjc3LCAwLjYwMjc1MSwgMC43NTI2ODcsIDAuOTY1NzU5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA5MDUyLCAwLjAwOTIzOSwgMC4wMDkyNjQsIDAuMDA5Mjc0LCAwLjAwOTI3OCwgMC4wMDkyODIsIDAuMDA5Mjg0IiwgXAotICAgICAgICAgICIwLjAwOTAzOCwgMC4wMDkyMjUsIDAuMDA5MjUsIDAuMDA5MjU3LCAwLjAwOTI2MywgMC4wMDkyNjYsIDAuMDA5MjY5IiwgXAotICAgICAgICAgICIwLjAwOTAzNiwgMC4wMDkyMjQsIDAuMDA5MjQ5LCAwLjAwOTI1NiwgMC4wMDkyNjMsIDAuMDA5MjY2LCAwLjAwOTI2OSIsIFwKLSAgICAgICAgICAiMC4wMDkwNDEsIDAuMDA5MjMxLCAwLjAwOTI1NiwgMC4wMDkyNjQsIDAuMDA5MjcsIDAuMDA5MjczLCAwLjAwOTI3NiIsIFwKLSAgICAgICAgICAiMC4wMDkwNTcsIDAuMDA5MjQ2LCAwLjAwOTI3MywgMC4wMDkyNzksIDAuMDA5Mjg1LCAwLjAwOTI4OCwgMC4wMDkyOTIiLCBcCi0gICAgICAgICAgIjAuMDA5MDc0LCAwLjAwOTI2MywgMC4wMDkyODgsIDAuMDA5Mjk2LCAwLjAwOTMwMiwgMC4wMDkzMDYsIDAuMDA5MzA4IiwgXAotICAgICAgICAgICIwLjAwOTA5OCwgMC4wMDkyODcsIDAuMDA5MzEyLCAwLjAwOTMxOSwgMC4wMDkzMjYsIDAuMDA5MzI5LCAwLjAwOTMzMSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA4NjYyLCAwLjAwODg0NiwgMC4wMDg4NywgMC4wMDg4NzcsIDAuMDA4ODgzLCAwLjAwODg4NiwgMC4wMDg4OSIsIFwKLSAgICAgICAgICAiMC4wMDg2NDUsIDAuMDA4ODI5LCAwLjAwODg1MywgMC4wMDg4NiwgMC4wMDg4NjYsIDAuMDA4ODcsIDAuMDA4ODczIiwgXAotICAgICAgICAgICIwLjAwODYzNiwgMC4wMDg4MjEsIDAuMDA4ODQ0LCAwLjAwODg1MiwgMC4wMDg4NTgsIDAuMDA4ODYxLCAwLjAwODg2NCIsIFwKLSAgICAgICAgICAiMC4wMDg2MzcsIDAuMDA4ODIyLCAwLjAwODg0NiwgMC4wMDg4NTMsIDAuMDA4ODU5LCAwLjAwODg2MiwgMC4wMDg4NjUiLCBcCi0gICAgICAgICAgIjAuMDA4NjQ0LCAwLjAwODgyOCwgMC4wMDg4NTIsIDAuMDA4ODU5LCAwLjAwODg2NCwgMC4wMDg4NjgsIDAuMDA4ODcxIiwgXAotICAgICAgICAgICIwLjAwODY1MywgMC4wMDg4MzgsIDAuMDA4ODYyLCAwLjAwODg3LCAwLjAwODg3NiwgMC4wMDg4NzksIDAuMDA4ODgyIiwgXAotICAgICAgICAgICIwLjAwODY2NiwgMC4wMDg4NTEsIDAuMDA4ODc1LCAwLjAwODg4MiwgMC4wMDg4ODksIDAuMDA4ODkyLCAwLjAwODg5NCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oU0UpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTE5MDEyOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTE4OTE0OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTE5MDEyOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNDYxNiwgMC4wMDQ1OTcsIDAuMDA0NjA0LCAwLjAwNDYxMywgMC4wMDQ2MjksIDAuMDA0NjUxLCAwLjAwNDY3OCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNTg0OCwgMC4wMDU4MTEsIDAuMDA1ODA0LCAwLjAwNTgwNiwgMC4wMDU4MjgsIDAuMDA1ODU1LCAwLjAwNTg5MyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRCYhRSYhU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX0VfRVFfMF9BTl9TSV9FUV8wID09IDEnYjEiOwotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjA2MjUsIC0wLjA1NzUsIC0wLjA1MTI1LCAtMC4wNDUsIC0wLjA0NSwgLTAuMDM1LCAtMC4wMzI1IiwgXAotICAgICAgICAgICItMC4wNzM3NSwgLTAuMDY4NzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDQ2MjUsIC0wLjA0Mzc1IiwgXAotICAgICAgICAgICItMC4wODYyNSwgLTAuMDgxMjUsIC0wLjA3NSwgLTAuMDY4NzUsIC0wLjA2MjUsIC0wLjA1ODc1LCAtMC4wNTYyNSIsIFwKLSAgICAgICAgICAiLTAuMDkyNSwgLTAuMDg3NSwgLTAuMDgxMjUsIC0wLjA4MTI1LCAtMC4wNzUsIC0wLjA3MTI1LCAtMC4wNjI1IiwgXAotICAgICAgICAgICItMC4xMDUsIC0wLjEsIC0wLjA5Mzc1LCAtMC4wODc1LCAtMC4wODEyNSwgLTAuMDc3NSwgLTAuMDc1IiwgXAotICAgICAgICAgICItMC4xMTUsIC0wLjExLCAtMC4xMDM3NSwgLTAuMDk3NSwgLTAuMDkxMjUsIC0wLjA4NzUsIC0wLjA4NSIsIFwKLSAgICAgICAgICAiLTAuMTIzNzUsIC0wLjExODc1LCAtMC4xMTI1LCAtMC4xMDYyNSwgLTAuMSwgLTAuMDk2MjUsIC0wLjA5Mzc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEJiFFJlNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9FX0VRXzBfQU5fU0lfRVFfMSA9PSAxJ2IxIjsKLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMTI1LCAtMC4wMDEyNSwgMC4wMDUsIDAuMDExMjUsIDAuMDE3NSwgMC4wMjc1LCAwLjAzNjI1IiwgXAotICAgICAgICAgICItMC4wMjM3NSwgLTAuMDEyNSwgLTAuMDA2MjUsIDAuMDA2MjUsIDAuMDEyNSwgMC4wMjI1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAsIDAuMDEsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDI1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAwODc1LCAwIiwgXAotICAgICAgICAgICItMC4wNTg3NSwgLTAuMDUzNzUsIC0wLjA0NzUsIC0wLjA0MTI1LCAtMC4wMzUsIC0wLjAyNSwgLTAuMDE2MjUiLCBcCi0gICAgICAgICAgIi0wLjA2NzUsIC0wLjA1NjI1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wMzM3NSwgLTAuMDMxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUQmRSZTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fRV9FUV8xX0FOX1NJX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDUsIC0wLjA0NSwgLTAuMDM4NzUsIC0wLjAzMjUsIC0wLjAyNjI1LCAtMC4wMTYyNSwgLTAuMDEzNzUiLCBcCi0gICAgICAgICAgIi0wLjA2MTI1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAzNzUsIC0wLjAyNzUsIC0wLjAyNSIsIFwKLSAgICAgICAgICAiLTAuMDczNzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjA0LCAtMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDgsIC0wLjA3NSwgLTAuMDY4NzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNTI1LCAtMC4wNDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDkyNSwgLTAuMDg3NSwgLTAuMDgxMjUsIC0wLjA3NSwgLTAuMDY4NzUsIC0wLjA2NSwgLTAuMDU2MjUiLCBcCi0gICAgICAgICAgIi0wLjEwODc1LCAtMC4xMDM3NSwgLTAuMDk3NSwgLTAuMDkxMjUsIC0wLjA4NSwgLTAuMDgxMjUsIC0wLjA3MjUiLCBcCi0gICAgICAgICAgIi0wLjEyMzc1LCAtMC4xMTg3NSwgLTAuMTEyNSwgLTAuMTA2MjUsIC0wLjEsIC0wLjA5NjI1LCAtMC4wODc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIkQmRSYhU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8xX0FOX0VfRVFfMV9BTl9TSV9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAyNSwgLTAuMDIsIC0wLjAwNzUsIC0wLjAwMTI1LCAwLjAwNSwgMC4wMjEyNSwgMC4wMyIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgMCwgMC4wMSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjA0Mzc1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIC0wLjAwMjUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA2MTI1LCAtMC4wNSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDE1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDY3NSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDIxMjUsIC0wLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjA3NzUsIC0wLjA2NjI1LCAtMC4wNiwgLTAuMDQ3NSwgLTAuMDQxMjUsIC0wLjAzMTI1LCAtMC4wMjI1IiwgXAotICAgICAgICAgICItMC4wODYyNSwgLTAuMDc1LCAtMC4wNjg3NSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNCwgLTAuMDMxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEJiFFJiFTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fRV9FUV8wX0FOX1NJX0VRXzAgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDgxMjUsIDAuMDc2MjUsIDAuMDU3NSwgMC4wNTEyNSwgMC4wMzg3NSwgMC4wMjI1LCAwLjAxMzc1IiwgXAotICAgICAgICAgICIwLjA5MjUsIDAuMDgxMjUsIDAuMDY4NzUsIDAuMDU2MjUsIDAuMDUsIDAuMDMzNzUsIDAuMDI1IiwgXAotICAgICAgICAgICIwLjEwNSwgMC4wOTM3NSwgMC4wODEyNSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA0NjI1LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIjAuMTE3NSwgMC4xMDYyNSwgMC4wOTM3NSwgMC4wODEyNSwgMC4wNjg3NSwgMC4wNTg3NSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4xMjM3NSwgMC4xMTI1LCAwLjEsIDAuMDg3NSwgMC4wNzUsIDAuMDY1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICIwLjEzMzc1LCAwLjEyMjUsIDAuMTEsIDAuMDk3NSwgMC4wOTEyNSwgMC4wNzUsIDAuMDY2MjUiLCBcCi0gICAgICAgICAgIjAuMTQyNSwgMC4xMzEyNSwgMC4xMTg3NSwgMC4xMDYyNSwgMC4wOTM3NSwgMC4wODM3NSwgMC4wNzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEJiFFJlNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9FX0VRXzBfQU5fU0lfRVFfMSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODc1LCAwLjA3NjI1LCAwLjA2Mzc1LCAwLjA1NzUsIDAuMDUxMjUsIDAuMDQxMjUsIDAuMDM4NzUiLCBcCi0gICAgICAgICAgIjAuMDk4NzUsIDAuMDg3NSwgMC4wNzUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNTI1LCAwLjA1IiwgXAotICAgICAgICAgICIwLjExMTI1LCAwLjEsIDAuMDg3NSwgMC4wODEyNSwgMC4wNzUsIDAuMDY1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICIwLjExNzUsIDAuMTEyNSwgMC4xLCAwLjA5Mzc1LCAwLjA4NzUsIDAuMDc3NSwgMC4wNjg3NSIsIFwKLSAgICAgICAgICAiMC4xMywgMC4xMTg3NSwgMC4xMTI1LCAwLjEwNjI1LCAwLjEsIDAuMDksIDAuMDgxMjUiLCBcCi0gICAgICAgICAgIjAuMTUyNSwgMC4xNDEyNSwgMC4xMjg3NSwgMC4xMjI1LCAwLjExNjI1LCAwLjEwNjI1LCAwLjEwMzc1IiwgXAotICAgICAgICAgICIwLjE2NzUsIDAuMTU2MjUsIDAuMTQzNzUsIDAuMTM3NSwgMC4xMzEyNSwgMC4xMjEyNSwgMC4xMTI1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRCZFJlNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9FX0VRXzFfQU5fU0lfRVFfMSA9PSAxJ2IxIjsKLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODc1LCAwLjA3NjI1LCAwLjA2Mzc1LCAwLjA1MTI1LCAwLjAzODc1LCAwLjAyODc1LCAwLjAyIiwgXAotICAgICAgICAgICIwLjA5MjUsIDAuMDgxMjUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNSwgMC4wMzM3NSwgMC4wMjUiLCBcCi0gICAgICAgICAgIjAuMTA1LCAwLjA5Mzc1LCAwLjA4MTI1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDQ2MjUsIDAuMDM3NSIsIFwKLSAgICAgICAgICAiMC4xMTc1LCAwLjEwNjI1LCAwLjA5Mzc1LCAwLjA4MTI1LCAwLjA2ODc1LCAwLjA1ODc1LCAwLjA1IiwgXAotICAgICAgICAgICIwLjEyMzc1LCAwLjExMjUsIDAuMSwgMC4wOTM3NSwgMC4wODEyNSwgMC4wNjUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIjAuMTQsIDAuMTI4NzUsIDAuMTE2MjUsIDAuMTEsIDAuMDk3NSwgMC4wODEyNSwgMC4wNzI1IiwgXAotICAgICAgICAgICIwLjE1NSwgMC4xNDM3NSwgMC4xMzEyNSwgMC4xMTg3NSwgMC4xMTI1LCAwLjA5NjI1LCAwLjA4NzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIkQmRSYhU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8xX0FOX0VfRVFfMV9BTl9TSV9FUV8wID09IDEnYjEiOwotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExMjUsIDAuMTAxMjUsIDAuMDg4NzUsIDAuMDgyNSwgMC4wNzYyNSwgMC4wNjYyNSwgMC4wNjM3NSIsIFwKLSAgICAgICAgICAiMC4xMjM3NSwgMC4xMTI1LCAwLjEsIDAuMDkzNzUsIDAuMDg3NSwgMC4wNzc1LCAwLjA3NSIsIFwKLSAgICAgICAgICAiMC4xMzYyNSwgMC4xMjUsIDAuMTEyNSwgMC4xMDYyNSwgMC4xLCAwLjA5LCAwLjA4MTI1IiwgXAotICAgICAgICAgICIwLjE0MjUsIDAuMTM3NSwgMC4xMjUsIDAuMTEyNSwgMC4xMDYyNSwgMC4xMDI1LCAwLjA5Mzc1IiwgXAotICAgICAgICAgICIwLjE1NSwgMC4xNDM3NSwgMC4xMzEyNSwgMC4xMjUsIDAuMTE4NzUsIDAuMTA4NzUsIDAuMSIsIFwKLSAgICAgICAgICAiMC4xNjUsIDAuMTUzNzUsIDAuMTQxMjUsIDAuMTM1LCAwLjEyODc1LCAwLjExODc1LCAwLjExNjI1IiwgXAotICAgICAgICAgICIwLjE3Mzc1LCAwLjE2MjUsIDAuMTUsIDAuMTQzNzUsIDAuMTM3NSwgMC4xMjc1LCAwLjExODc1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTSSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjA4NjgzOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYwNzMyOTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2MDg2ODM7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyNTgsIDAuMDAyNTY0LCAwLjAwMjU1NSwgMC4wMDI1NSwgMC4wMDI1NDgsIDAuMDAyNTQ4LCAwLjAwMjU1NSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNDkwMSwgMC4wMDQ4OTIsIDAuMDA0ODg3LCAwLjAwNDg4MywgMC4wMDQ4ODUsIDAuMDA0ODg2LCAwLjAwNDg5MyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJTRSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wNTYyNSwgLTAuMDUxMjUsIC0wLjA0NSwgLTAuMDM4NzUsIC0wLjAzMjUsIC0wLjAyMjUsIC0wLjAyIiwgXAotICAgICAgICAgICItMC4wNjc1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wNDM3NSwgLTAuMDMzNzUsIC0wLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wNzM3NSwgLTAuMDY4NzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDQ2MjUsIC0wLjAzNzUiLCBcCi0gICAgICAgICAgIi0wLjA4NjI1LCAtMC4wODEyNSwgLTAuMDc1LCAtMC4wNjg3NSwgLTAuMDYyNSwgLTAuMDU4NzUsIC0wLjA1IiwgXAotICAgICAgICAgICItMC4wOTg3NSwgLTAuMDkzNzUsIC0wLjA4NzUsIC0wLjA4MTI1LCAtMC4wNzUsIC0wLjA2NSwgLTAuMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMTE1LCAtMC4xMSwgLTAuMDk3NSwgLTAuMDk3NSwgLTAuMDkxMjUsIC0wLjA4MTI1LCAtMC4wNzg3NSIsIFwKLSAgICAgICAgICAiLTAuMTIzNzUsIC0wLjExODc1LCAtMC4xMTI1LCAtMC4xMDYyNSwgLTAuMSwgLTAuMDk2MjUsIC0wLjA4NzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMTg3NSwgLTAuMDA3NSwgLTAuMDAxMjUsIDAuMDExMjUsIDAuMDE3NSwgMC4wMjc1LCAwLjAzNjI1IiwgXAotICAgICAgICAgICItMC4wMywgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLCAwLjAxMjUsIDAuMDIyNSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLCAwLjAxLCAwLjAxODc1IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAwLjAwMzc1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjA1NSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAwODc1LCAwIiwgXAotICAgICAgICAgICItMC4wNjUsIC0wLjA1Mzc1LCAtMC4wNDc1LCAtMC4wMzUsIC0wLjAyODc1LCAtMC4wMTg3NSwgLTAuMDEiLCBcCi0gICAgICAgICAgIi0wLjA2NzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDM3NSwgLTAuMDI3NSwgLTAuMDE4NzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIlNFIjsKLSAgICAgIHNkZl9jb25kIDogIlNFID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5Mzc1LCAwLjA4MjUsIDAuMDc2MjUsIDAuMDYzNzUsIDAuMDU3NSwgMC4wNTM3NSwgMC4wNDUiLCBcCi0gICAgICAgICAgIjAuMTA1LCAwLjA5Mzc1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNTg3NSwgMC4wNTYyNSIsIFwKLSAgICAgICAgICAiMC4xMTEyNSwgMC4xMDYyNSwgMC4wOTM3NSwgMC4wODc1LCAwLjA4MTI1LCAwLjA3MTI1LCAwLjA2MjUiLCBcCi0gICAgICAgICAgIjAuMTIzNzUsIDAuMTEyNSwgMC4xMDYyNSwgMC4wOTM3NSwgMC4wODc1LCAwLjA4Mzc1LCAwLjA3NSIsIFwKLSAgICAgICAgICAiMC4xMzYyNSwgMC4xMjUsIDAuMTEyNSwgMC4xMDYyNSwgMC4xLCAwLjA5LCAwLjA4NzUiLCBcCi0gICAgICAgICAgIjAuMTUyNSwgMC4xNDEyNSwgMC4xMjg3NSwgMC4xMjI1LCAwLjExNjI1LCAwLjEwNjI1LCAwLjEwMzc1IiwgXAotICAgICAgICAgICIwLjE2NzUsIDAuMTU2MjUsIDAuMTQzNzUsIDAuMTM3NSwgMC4xMzEyNSwgMC4xMjEyNSwgMC4xMTg3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3NSwgMC4wNjM3NSwgMC4wNTEyNSwgMC4wMzg3NSwgMC4wMjYyNSwgMC4wMTYyNSwgMC4wMDc1IiwgXAotICAgICAgICAgICIwLjA4LCAwLjA2ODc1LCAwLjA1NjI1LCAwLjA1LCAwLjAzNzUsIDAuMDIxMjUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4wOTI1LCAwLjA4MTI1LCAwLjA2ODc1LCAwLjA1NjI1LCAwLjA1LCAwLjAzMzc1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiMC4xMDUsIDAuMDkzNzUsIDAuMDgxMjUsIDAuMDY4NzUsIDAuMDU2MjUsIDAuMDQ2MjUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMTExMjUsIDAuMSwgMC4wODc1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNTI1LCAwLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjEyNzUsIDAuMTE2MjUsIDAuMTAzNzUsIDAuMDkxMjUsIDAuMDc4NzUsIDAuMDY4NzUsIDAuMDUzNzUiLCBcCi0gICAgICAgICAgIjAuMTM2MjUsIDAuMTI1LCAwLjExMjUsIDAuMSwgMC4wOTM3NSwgMC4wNzc1LCAwLjA2ODc1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBUQlVGWDEgKgotICogLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChUQlVGWDEpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4xMzgwMzc7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTQwODE3OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTQwNjk7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNDA4MTc7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNDM4LCAwLjAwMDQ0NiwgMC4wMDA0NDcsIDAuMDAwNDQ4LCAwLjAwMDQ0OCwgMC4wMDA0NDgsIDAuMDAwNDQ4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNDY2LCAwLjAwMDQ2MiwgMC4wMDA0NjIsIDAuMDAwNDYyLCAwLjAwMDQ2MiwgMC4wMDA0NjEsIDAuMDAwNDYiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKE9FKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDExNDI3MTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDExNDI0MTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDExNDI3MTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIoc2NhbGFyKSB7Ci0gICAgICAgIHZhbHVlcygiMCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMzE2NSwgMC4wMDMxMTUsIDAuMDAzMSwgMC4wMDMxMDYsIDAuMDAzMTI4LCAwLjAwMzE3MSwgMC4wMDMyMDciKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjcwNjY0OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDY3MDY2NDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2NzA0NTg7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4yNDc2NDE7Ci0gICAgZnVuY3Rpb24gOiAiQSI7Ci0gICAgdGhyZWVfc3RhdGUgOiAiKCFPRSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEwNjcwNywgMC4wMTY2NzA3LCAwLjA1MDY3MDcsIDAuMDgwNjcwNywgMC4xMjA2NzEsIDAuMjAwNjcxLCAwLjI1MDY3MSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDgzMzExLCAwLjEwNzY4MSwgMC4yNDUzMzQsIDAuMzY2NzA5LCAwLjUyODU3OSwgMC44NTIzNTgsIDEuMDU0NzUiLCBcCi0gICAgICAgICAgIjAuMDkxOTc3LCAwLjExNjM0OSwgMC4yNTM5OCwgMC4zNzU0MDUsIDAuNTM3MjkxLCAwLjg2MDg5OCwgMS4wNjMzIiwgXAotICAgICAgICAgICIwLjEwMjQ4OSwgMC4xMjY4NzksIDAuMjY0NTU3LCAwLjM4NTkxNywgMC41NDc3NzEsIDAuODcxNjE5LCAxLjA3MzgzIiwgXAotICAgICAgICAgICIwLjExMjMwOCwgMC4xMzY2OTcsIDAuMjc0MzY1LCAwLjM5NTcyOCwgMC41NTc2MDUsIDAuODgxMzg4LCAxLjA4MzY0IiwgXAotICAgICAgICAgICIwLjEyMTE4MSwgMC4xNDU1OTUsIDAuMjgzMjU2LCAwLjQwNDY0NywgMC41NjY0OTUsIDAuODkwMTkzLCAxLjA5MjUiLCBcCi0gICAgICAgICAgIjAuMTMzNjc4LCAwLjE1ODE0LCAwLjI5NTc4NywgMC40MTcxNywgMC41NzkwNTEsIDAuOTAyNzA0LCAxLjEwNTAyIiwgXAotICAgICAgICAgICIwLjE0MzM2MSwgMC4xNjc4NzUsIDAuMzA1NTUzLCAwLjQyNjk4MSwgMC41ODg3NjksIDAuOTEyNDQzLCAxLjExNDgyIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEwNjcwNywgMC4wMTY2NzA3LCAwLjA1MDY3MDcsIDAuMDgwNjcwNywgMC4xMjA2NzEsIDAuMjAwNjcxLCAwLjI1MDY3MSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDkyNzYsIDAuMTQxODM3LCAwLjQyNDA3NywgMC42NzMwNywgMS4wMDc3MiwgMS42NzUyLCAyLjA4NzM4IiwgXAotICAgICAgICAgICIwLjA5MjkwNywgMC4xNDE4NDEsIDAuNDIzNDExLCAwLjY3NDA5OCwgMS4wMDc3OSwgMS42NzQwNiwgMi4wODgzOSIsIFwKLSAgICAgICAgICAiMC4wOTI5MDUsIDAuMTQxODMsIDAuNDIzMTI5LCAwLjY3MzIyNCwgMS4wMDYzNiwgMS42NzE5NiwgMi4wODgzNSIsIFwKLSAgICAgICAgICAiMC4wOTMyMDEsIDAuMTQxOTk3LCAwLjQyMzI0LCAwLjY3MzY3MiwgMS4wMDU3NCwgMS42NzQ3MiwgMi4wODc5IiwgXAotICAgICAgICAgICIwLjA5MzcxNywgMC4xNDIyMSwgMC40MjMzOTEsIDAuNjczODg3LCAxLjAwNjI1LCAxLjY3NDUzLCAyLjA4OTI5IiwgXAotICAgICAgICAgICIwLjA5NDU0NCwgMC4xNDI4NzQsIDAuNDIzNTM4LCAwLjY3Mzg0LCAxLjAwNTk4LCAxLjY3MjQyLCAyLjA4OTEiLCBcCi0gICAgICAgICAgIjAuMDk1NDksIDAuMTQzMzIxLCAwLjQyNDExMSwgMC42NzI4MjMsIDEuMDA2MzEsIDEuNjc0MzYsIDIuMDkxNDMiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMTA2NzA1LCAwLjAxNjY3MDUsIDAuMDUwNjcwNSwgMC4wODA2NzA1LCAwLjEyMDY3LCAwLjIwMDY3LCAwLjI1MDY3Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzY5MzIsIDAuMTAxNzMzLCAwLjI0MTk0LCAwLjM2NTYxNCwgMC41MzA0OTgsIDAuODYwMjc4LCAxLjA2NjM3IiwgXAotICAgICAgICAgICIwLjA4NTE5NCwgMC4xMTAwMDksIDAuMjUwMjM5LCAwLjM3Mzg5OCwgMC41Mzg3ODYsIDAuODY4NTYzLCAxLjA3NDcxIiwgXAotICAgICAgICAgICIwLjA5NDMzNCwgMC4xMTkxNTYsIDAuMjU5NDIsIDAuMzgzMDY4LCAwLjU0Nzk1NiwgMC44Nzc3MjcsIDEuMDgzODQiLCBcCi0gICAgICAgICAgIjAuMTAyMzIxLCAwLjEyNzE1NiwgMC4yNjc0MjgsIDAuMzkxMDczLCAwLjU1NTk1NCwgMC44ODU3MTcsIDEuMDkxODQiLCBcCi0gICAgICAgICAgIjAuMTA5MjA1LCAwLjEzNDA2MiwgMC4yNzQzMTgsIDAuMzk4MDA5LCAwLjU2Mjk0NywgMC44OTI2ODEsIDEuMDk4NzUiLCBcCi0gICAgICAgICAgIjAuMTE4NDQ5LCAwLjE0MzQ1NSwgMC4yODM4MDQsIDAuNDA3NDgyLCAwLjU3MjM1MSwgMC45MDIxNTIsIDEuMTA4MjYiLCBcCi0gICAgICAgICAgIjAuMTI1NDY0LCAwLjE1MDQ2NSwgMC4yOTA4MDUsIDAuNDE0NDksIDAuNTc5MzY4LCAwLjkwOTI2NCwgMS4xMTUyNiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxMDY3MDUsIDAuMDE2NjcwNSwgMC4wNTA2NzA1LCAwLjA4MDY3MDUsIDAuMTIwNjcsIDAuMjAwNjcsIDAuMjUwNjciKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5MTE1MSwgMC4xNDAxMjQsIDAuNDIxMzc3LCAwLjY3MTU4LCAxLjAwMjYyLCAxLjY2Njk5LCAyLjA4MTQ0IiwgXAotICAgICAgICAgICIwLjA5MTE1NiwgMC4xNDAxMjMsIDAuNDIyMDM4LCAwLjY3MDMyMSwgMS4wMDI0OSwgMS42NjY3NCwgMi4wODU1OCIsIFwKLSAgICAgICAgICAiMC4wOTEzMDUsIDAuMTQwNDI1LCAwLjQyMTkzMSwgMC42NzE1MDYsIDEuMDAzNTIsIDEuNjY4NjMsIDIuMDgyNzUiLCBcCi0gICAgICAgICAgIjAuMDkxNzcyLCAwLjE0MDYwNCwgMC40MjEyNDUsIDAuNjcxNDM3LCAxLjAwNDA3LCAxLjY2OTI4LCAyLjA4NDEzIiwgXAotICAgICAgICAgICIwLjA5MjI5LCAwLjE0MDg5MSwgMC40MjE4ODMsIDAuNjcxMTA4LCAxLjAwMTUsIDEuNjY3NDcsIDIuMDg1MTIiLCBcCi0gICAgICAgICAgIjAuMDkyOTkyLCAwLjE0MTQxLCAwLjQyMTczNSwgMC42NzA0ODUsIDEuMDAyMjksIDEuNjY3NDIsIDIuMDg1MzQiLCBcCi0gICAgICAgICAgIjAuMDkzODgsIDAuMTQxNjgsIDAuNDIxODQ3LCAwLjY3MDkwNiwgMS4wMDM3NywgMS42NjU4OCwgMi4wODUxNCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJPRSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogdGhyZWVfc3RhdGVfZW5hYmxlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxMDY3MDcsIDAuMDE2NjcwNywgMC4wNTA2NzA3LCAwLjA4MDY3MDcsIDAuMTIwNjcxLCAwLjIwMDY3MSwgMC4yNTA2NzEiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4MDY1OSwgMC4xMDUwMjUsIDAuMjQyNjYzLCAwLjM2NDEwNSwgMC41MjU5NzksIDAuODQ5NzM0LCAxLjA1MjA4IiwgXAotICAgICAgICAgICIwLjA4OTY3NCwgMC4xMTQwNDQsIDAuMjUxNjk3LCAwLjM3MzA4NywgMC41MzQ5NzYsIDAuODU4NzQzLCAxLjA2MTEiLCBcCi0gICAgICAgICAgIjAuMTAxMzY2LCAwLjEyNTcyOCwgMC4yNjMzNTgsIDAuMzg0NzgsIDAuNTQ2NjU0LCAwLjg3MDQzLCAxLjA3MjgxIiwgXAotICAgICAgICAgICIwLjExMjM3NiwgMC4xMzY3NDMsIDAuMjc0MzYzLCAwLjM5NTc5MSwgMC41NTc2NTcsIDAuODgxNDQ3LCAxLjA4Mzc5IiwgXAotICAgICAgICAgICIwLjEyMTk1OSwgMC4xNDYzNDgsIDAuMjgzOTk4LCAwLjQwNTM4MywgMC41NjcyNzIsIDAuODkxMDM2LCAxLjA5MzM2IiwgXAotICAgICAgICAgICIwLjEzNTIzLCAwLjE1OTY5NCwgMC4yOTczMDcsIDAuNDE4NzE4LCAwLjU4MDU2OSwgMC45MDQzNDUsIDEuMTA2NjgiLCBcCi0gICAgICAgICAgIjAuMTQ1Mzk3LCAwLjE2OTk0NSwgMC4zMDc1NzUsIDAuNDI5MDE5LCAwLjU5MDg5LCAwLjkxNDYzLCAxLjExNjk2Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEwNjcwNywgMC4wMTY2NzA3LCAwLjA1MDY3MDcsIDAuMDgwNjcwNywgMC4xMjA2NzEsIDAuMjAwNjcxLCAwLjI1MDY3MSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDkzMTMsIDAuMTQyMDMxLCAwLjQyMzcyMSwgMC42NzQ1ODEsIDEuMDA2NTUsIDEuNjczOTMsIDIuMDkwOTMiLCBcCi0gICAgICAgICAgIjAuMDkzMDc4LCAwLjE0MTgzNCwgMC40MjM1NzcsIDAuNjc0NDQ0LCAxLjAwNzA0LCAxLjY3NDAxLCAyLjA5MDc2IiwgXAotICAgICAgICAgICIwLjA5MzE3NCwgMC4xNDIwMjMsIDAuNDIzNzA1LCAwLjY3NDM3MSwgMS4wMDcwNiwgMS42NzM4NiwgMi4wOTMwNCIsIFwKLSAgICAgICAgICAiMC4wOTM1MTcsIDAuMTQyMTMyLCAwLjQyNDAzMSwgMC42NzQzODQsIDEuMDA3MTEsIDEuNjczODQsIDIuMDkzIiwgXAotICAgICAgICAgICIwLjA5NDE2OSwgMC4xNDI1NTEsIDAuNDIzNTk4LCAwLjY3NDE2LCAxLjAwNjk4LCAxLjY3Mzc3LCAyLjA5MDQ4IiwgXAotICAgICAgICAgICIwLjA5NTIzNSwgMC4xNDMzNDIsIDAuNDI0NDM2LCAwLjY3MzY1MSwgMS4wMDY5MSwgMS42NzM3NiwgMi4wOTA4MSIsIFwKLSAgICAgICAgICAiMC4wOTYyMzIsIDAuMTQzOTA2LCAwLjQyNDYxOCwgMC42NzQ1MzEsIDEuMDA3MDQsIDEuNjczODIsIDIuMDkwNjUiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMTA2NzA1LCAwLjAxNjY3MDUsIDAuMDUwNjcwNSwgMC4wODA2NzA1LCAwLjEyMDY3LCAwLjIwMDY3LCAwLjI1MDY3Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODU2NSwgMC4xMTA0MzMsIDAuMjUwNjQzLCAwLjM3NDM5NiwgMC41MzkyODEsIDAuODY5MjAxLCAxLjA3NTQyIiwgXAotICAgICAgICAgICIwLjA5NTU4NSwgMC4xMjAzNjgsIDAuMjYwNTc5LCAwLjM4NDMyOSwgMC41NDkyMDcsIDAuODc5MTU2LCAxLjA4NTIiLCBcCi0gICAgICAgICAgIjAuMTA2MTM5LCAwLjEzMDkyMSwgMC4yNzExMzYsIDAuMzk0ODIyLCAwLjU1OTc2OCwgMC44ODk1OTcsIDEuMDk1NjkiLCBcCi0gICAgICAgICAgIjAuMTE0NjQzLCAwLjEzOTQyNSwgMC4yNzk2NDcsIDAuNDAzMzA1LCAwLjU2ODIxMiwgMC44OTgwNDMsIDEuMTA0MiIsIFwKLSAgICAgICAgICAiMC4xMjE2OTgsIDAuMTQ2NDc2LCAwLjI4NjY2NSwgMC40MTAzODUsIDAuNTc1MjYyLCAwLjkwNTEyNCwgMS4xMTEyNSIsIFwKLSAgICAgICAgICAiMC4xMzE0OTcsIDAuMTU2MjgzLCAwLjI5NjY1MywgMC40MjAzNiwgMC41ODUyODMsIDAuOTE0OTAyLCAxLjEyMTM2IiwgXAotICAgICAgICAgICIwLjEzOTAyOSwgMC4xNjM4MTQsIDAuMzAzOTgxLCAwLjQyNzc5NiwgMC41OTI1NzYsIDAuOTIyNTc2LCAxLjEyODY4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEwNjcwNSwgMC4wMTY2NzA1LCAwLjA1MDY3MDUsIDAuMDgwNjcwNSwgMC4xMjA2NywgMC4yMDA2NywgMC4yNTA2NyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDkxNDIxLCAwLjE0MDI3NywgMC40MjI1NTgsIDAuNjcwMjY1LCAxLjAwNTIzLCAxLjY3MTU1LCAyLjA4MTgyIiwgXAotICAgICAgICAgICIwLjA5MTQxOCwgMC4xNDA0NzYsIDAuNDIyNTI3LCAwLjY3MDYxOCwgMS4wMDM3NywgMS42NjY5OCwgMi4wODM1NiIsIFwKLSAgICAgICAgICAiMC4wOTE0MjUsIDAuMTQwNDY2LCAwLjQyMjQ4NCwgMC42NzEwNywgMS4wMDMzLCAxLjY2ODg1LCAyLjA4NjU2IiwgXAotICAgICAgICAgICIwLjA5MTUxOSwgMC4xNDA1NjksIDAuNDIyMDk1LCAwLjY3MjAwMiwgMS4wMDQ3OCwgMS42NzA0OCwgMi4wODU3IiwgXAotICAgICAgICAgICIwLjA5MTQ4NSwgMC4xNDA0MjIsIDAuNDIxOTM3LCAwLjY3MTMxOCwgMS4wMDQ3MiwgMS42NzA2NSwgMi4wODY2OCIsIFwKLSAgICAgICAgICAiMC4wOTE0MjEsIDAuMTQwMjY3LCAwLjQyMTY5NiwgMC42NzA5MTcsIDEuMDAyOTcsIDEuNjY3NzgsIDIuMDg1ODQiLCBcCi0gICAgICAgICAgIjAuMDkxNjg2LCAwLjE0MDIwNCwgMC40MjE3NTcsIDAuNjcwMzUsIDEuMDAzMDgsIDEuNjY5MDMsIDIuMDg1MDQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiT0UiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHRocmVlX3N0YXRlX2Rpc2FibGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMjk0NjksIDAuMDM5MDczLCAwLjA0OTIxMywgMC4wNTY5OTgsIDAuMDYzNzUsIDAuMDcyNjc3LCAwLjA3ODkxMSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKHNjYWxhcikgewotICAgICAgICB2YWx1ZXMoIjAiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAyMDI1OSwgMC4wMzAxMTMsIDAuMDQxNzM0LCAwLjA1MDk5MywgMC4wNTg2NjQsIDAuMDY5MjczLCAwLjA3Njg3MSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKHNjYWxhcikgewotICAgICAgICB2YWx1ZXMoIjAiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxMDY3MDcsIDAuMDE2NjcwNywgMC4wNTA2NzA3LCAwLjA4MDY3MDcsIDAuMTIwNjcxLCAwLjIwMDY3MSwgMC4yNTA2NzEiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTYwMSwgMC4wMDE2MDIsIDAuMDAxNjAzLCAwLjAwMTYwNCwgMC4wMDE2MDQsIDAuMDAxNjA0LCAwLjAwMTYwNCIsIFwKLSAgICAgICAgICAiMC4wMDE1NDUsIDAuMDAxNTQ4LCAwLjAwMTU1LCAwLjAwMTU1LCAwLjAwMTU1MSwgMC4wMDE1NTEsIDAuMDAxNTUxIiwgXAotICAgICAgICAgICIwLjAwMTUyNSwgMC4wMDE1MjksIDAuMDAxNTM0LCAwLjAwMTUzNSwgMC4wMDE1MzYsIDAuMDAxNTM2LCAwLjAwMTUzNiIsIFwKLSAgICAgICAgICAiMC4wMDE1MjMsIDAuMDAxNTI5LCAwLjAwMTUzNSwgMC4wMDE1MzcsIDAuMDAxNTM4LCAwLjAwMTUzNywgMC4wMDE1MzgiLCBcCi0gICAgICAgICAgIjAuMDAxNTMsIDAuMDAxNTM2LCAwLjAwMTU0NCwgMC4wMDE1NDYsIDAuMDAxNTQ3LCAwLjAwMTU0NywgMC4wMDE1NDgiLCBcCi0gICAgICAgICAgIjAuMDAxNTU1LCAwLjAwMTU2MiwgMC4wMDE1NzIsIDAuMDAxNTczLCAwLjAwMTU3NSwgMC4wMDE1NzYsIDAuMDAxNTc2IiwgXAotICAgICAgICAgICIwLjAwMTU4NCwgMC4wMDE1OTEsIDAuMDAxNjAyLCAwLjAwMTYwNCwgMC4wMDE2MDUsIDAuMDAxNjA3LCAwLjAwMTYwNyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEwNjcwNSwgMC4wMTY2NzA1LCAwLjA1MDY3MDUsIDAuMDgwNjcwNSwgMC4xMjA2NywgMC4yMDA2NywgMC4yNTA2NyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA0MTQ5LCAwLjAwNDE1NCwgMC4wMDQxNjEsIDAuMDA0MTYyLCAwLjAwNDE2MiwgMC4wMDQxNjMsIDAuMDA0MTYzIiwgXAotICAgICAgICAgICIwLjAwNDEwNywgMC4wMDQxMTQsIDAuMDA0MTIzLCAwLjAwNDEyNSwgMC4wMDQxMjYsIDAuMDA0MTI3LCAwLjAwNDEyNyIsIFwKLSAgICAgICAgICAiMC4wMDQwODcsIDAuMDA0MDk3LCAwLjAwNDExLCAwLjAwNDExMywgMC4wMDQxMTQsIDAuMDA0MTE2LCAwLjAwNDExNiIsIFwKLSAgICAgICAgICAiMC4wMDQwODYsIDAuMDA0MDk2LCAwLjAwNDExMiwgMC4wMDQxMTYsIDAuMDA0MTE3LCAwLjAwNDExOSwgMC4wMDQxMTkiLCBcCi0gICAgICAgICAgIjAuMDA0MDkxLCAwLjAwNDEwMiwgMC4wMDQxMiwgMC4wMDQxMjQsIDAuMDA0MTI2LCAwLjAwNDEyOCwgMC4wMDQxMjkiLCBcCi0gICAgICAgICAgIjAuMDA0MTEyLCAwLjAwNDEyMiwgMC4wMDQxNDEsIDAuMDA0MTQ1LCAwLjAwNDE0OCwgMC4wMDQxNTEsIDAuMDA0MTUxIiwgXAotICAgICAgICAgICIwLjAwNDEzNywgMC4wMDQxNDcsIDAuMDA0MTY3LCAwLjAwNDE3MiwgMC4wMDQxNzMsIDAuMDA0MTc3LCAwLjAwNDE3OCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIk9FIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxMDY3MDcsIDAuMDE2NjcwNywgMC4wNTA2NzA3LCAwLjA4MDY3MDcsIDAuMTIwNjcxLCAwLjIwMDY3MSwgMC4yNTA2NzEiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTUxOSwgMC4wMDE1MjEsIDAuMDAxNDg4LCAwLjAwMTQ3MywgMC4wMDE0NDQsIDAuMDAxNDA1LCAwLjAwMTM3NSIsIFwKLSAgICAgICAgICAiMC4wMDE0NjEsIDAuMDAxNDU5LCAwLjAwMTQ0NCwgMC4wMDE0MTgsIDAuMDAxNDAyLCAwLjAwMTMzNSwgMC4wMDEyOTgiLCBcCi0gICAgICAgICAgIjAuMDAxNDYzLCAwLjAwMTQ2NSwgMC4wMDE0NDMsIDAuMDAxNDE4LCAwLjAwMTM5NywgMC4wMDEzNSwgMC4wMDEzMTMiLCBcCi0gICAgICAgICAgIjAuMDAxNDYzLCAwLjAwMTQ2MywgMC4wMDE0MzMsIDAuMDAxNDE2LCAwLjAwMTM5MSwgMC4wMDEzMjMsIDAuMDAxMzExIiwgXAotICAgICAgICAgICIwLjAwMTQ4NCwgMC4wMDE0NzYsIDAuMDAxNDUsIDAuMDAxNDQ4LCAwLjAwMTQwMSwgMC4wMDEzNjMsIDAuMDAxMzI3IiwgXAotICAgICAgICAgICIwLjAwMTUyMywgMC4wMDE1MjEsIDAuMDAxNTAzLCAwLjAwMTQ4NywgMC4wMDE0NjUsIDAuMDAxNDA2LCAwLjAwMTM0NSIsIFwKLSAgICAgICAgICAiMC4wMDE1NjMsIDAuMDAxNTYyLCAwLjAwMTUzNCwgMC4wMDE1MTcsIDAuMDAxNDc5LCAwLjAwMTQyLCAwLjAwMTM5MyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEwNjcwNSwgMC4wMTY2NzA1LCAwLjA1MDY3MDUsIDAuMDgwNjcwNSwgMC4xMjA2NywgMC4yMDA2NywgMC4yNTA2NyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAxODQ4LCAwLjAwMTg0OCwgMC4wMDE4NDgsIDAuMDAxODQ4LCAwLjAwMTg0OCwgMC4wMDE4NDgsIDAuMDAxODQ4IiwgXAotICAgICAgICAgICIwLjAwMTgxNSwgMC4wMDE4MTUsIDAuMDAxODE1LCAwLjAwMTgxNSwgMC4wMDE4MTUsIDAuMDAxODE1LCAwLjAwMTgxNSIsIFwKLSAgICAgICAgICAiMC4wMDE4MTUsIDAuMDAxODE1LCAwLjAwMTgxNSwgMC4wMDE4MTUsIDAuMDAxODE1LCAwLjAwMTgxNSwgMC4wMDE4MTUiLCBcCi0gICAgICAgICAgIjAuMDAxODE4LCAwLjAwMTgxOCwgMC4wMDE4MTgsIDAuMDAxODE4LCAwLjAwMTgxOCwgMC4wMDE4MTgsIDAuMDAxODE4IiwgXAotICAgICAgICAgICIwLjAwMTgzMiwgMC4wMDE4MzIsIDAuMDAxODMyLCAwLjAwMTgzMiwgMC4wMDE4MzIsIDAuMDAxODMyLCAwLjAwMTgzMiIsIFwKLSAgICAgICAgICAiMC4wMDE4NTUsIDAuMDAxODU1LCAwLjAwMTg1OCwgMC4wMDE4NTgsIDAuMDAxODU4LCAwLjAwMTg1NSwgMC4wMDE4NTgiLCBcCi0gICAgICAgICAgIjAuMDAxODg1LCAwLjAwMTg4NSwgMC4wMDE4ODUsIDAuMDAxODc3LCAwLjAwMTg4NSwgMC4wMDE4NzcsIDAuMDAxODg1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBDTEtYT1IyWDggKgotICogLS0tLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChDTEtYT1IyWDgpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC40MjMwODg7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDU4MjU5MjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA1ODIyMjM7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNTgyNTkyOwotICB9Ci0gIHBpbihCKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDEzNzIxNjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDEzNzA1NDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDEzNzIxNjsKLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAyLjEyODc0OwotICAgIGZ1bmN0aW9uIDogIihBXkIpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEyMDc4NiwgMC4xNzc0MjUsIDAuMjE4NzUsIDAuMjQ1OTk0LCAwLjI4ODM1MSwgMC4zMjQ5MDQsIDAuMzc2ODUyIiwgXAotICAgICAgICAgICIwLjEzMDkwMiwgMC4xODc1OTgsIDAuMjI4Nzg1LCAwLjI1NjExMywgMC4yOTg0NjMsIDAuMzM1MDI2LCAwLjM4NjkyIiwgXAotICAgICAgICAgICIwLjE0MzQwNywgMC4yMDAxNTgsIDAuMjQxMzczLCAwLjI2ODY4NCwgMC4zMTA5OTksIDAuMzQ3NTYzLCAwLjM5OTUwMSIsIFwKLSAgICAgICAgICAiMC4xNTYwMTgsIDAuMjEyNjQ2LCAwLjI1MzkwNywgMC4yODExNDUsIDAuMzIzNTY3LCAwLjM2MDA1OSwgMC40MTIwMyIsIFwKLSAgICAgICAgICAiMC4xNjg2MywgMC4yMjU0NTMsIDAuMjY2NTYsIDAuMjkzNzg5LCAwLjMzNjIyNSwgMC4zNzI3NTYsIDAuNDI0NzAxIiwgXAotICAgICAgICAgICIwLjE4ODExLCAwLjI0NDg3NSwgMC4yODU5NzcsIDAuMzEzMzIyLCAwLjM1NTY3MywgMC4zOTIyMTYsIDAuNDQ0MTMzIiwgXAotICAgICAgICAgICIwLjIwNDg4LCAwLjI2MTYwOSwgMC4zMDI3MjIsIDAuMzMwMDksIDAuMzcyNDE1LCAwLjQwODk3NSwgMC40NjA4OCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0OTA4LCAwLjEyMjgyOSwgMC4xOTI1MywgMC4yNDI4MTMsIDAuMzI0MzUzLCAwLjM5NjY0MiwgMC41MDA3NDEiLCBcCi0gICAgICAgICAgIjAuMDQ5MDA5LCAwLjEyMjg4MSwgMC4xOTI0ODEsIDAuMjQyNjg0LCAwLjMyNDIxOSwgMC4zOTY3MjMsIDAuNTAwNjg2IiwgXAotICAgICAgICAgICIwLjA0ODk3NCwgMC4xMjI3MzYsIDAuMTkyNTU1LCAwLjI0Mjc2OSwgMC4zMjQyOCwgMC4zOTY1NTEsIDAuNTAwNzA1IiwgXAotICAgICAgICAgICIwLjA0ODgzNSwgMC4xMjI4NDksIDAuMTkyNTQzLCAwLjI0Mjc5OCwgMC4zMjQ0MjgsIDAuMzk2NjUsIDAuNTAwNzQ4IiwgXAotICAgICAgICAgICIwLjA0ODg1MSwgMC4xMjI5NzMsIDAuMTkyNTM1LCAwLjI0Mjc4NCwgMC4zMjQ0MTEsIDAuMzk2NTQ4LCAwLjUwMDcxNyIsIFwKLSAgICAgICAgICAiMC4wNDg4NzgsIDAuMTIyOTksIDAuMTkyNTI2LCAwLjI0Mjc1NywgMC4zMjQ0MjEsIDAuMzk2NzI2LCAwLjUwMDc4NyIsIFwKLSAgICAgICAgICAiMC4wNDkyMzUsIDAuMTIzMDE3LCAwLjE5MjY1MiwgMC4yNDI4NTcsIDAuMzI0NDg4LCAwLjM5Njc0NCwgMC41MDA3NiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEyOTY1LCAwLjE4ODkzOSwgMC4yMzIzNDUsIDAuMjYxMTIxLCAwLjMwNTg2LCAwLjM0NDMxNCwgMC4zOTg5MTkiLCBcCi0gICAgICAgICAgIjAuMTM5MjY4LCAwLjE5ODM5OCwgMC4yNDE4NjksIDAuMjcwNzk3LCAwLjMxNTQ1NSwgMC4zNTM5MzgsIDAuNDA4NTA4IiwgXAotICAgICAgICAgICIwLjE1MTQ5OCwgMC4yMTA3MjcsIDAuMjU0MTQyLCAwLjI4MywgMC4zMjc2NSwgMC4zNjYxNDMsIDAuNDIwNzA5IiwgXAotICAgICAgICAgICIwLjE2MzY0MywgMC4yMjI3NTcsIDAuMjY2MjU5LCAwLjI5NTE1NSwgMC4zMzk3OTIsIDAuMzc4Mjk3LCAwLjQzMjg2MyIsIFwKLSAgICAgICAgICAiMC4xNzU1MjUsIDAuMjM0NzgyLCAwLjI3ODIzOSwgMC4zMDcwNjUsIDAuMzUxNzQxLCAwLjM5MDIxMywgMC40NDQ3OCIsIFwKLSAgICAgICAgICAiMC4xOTQwMywgMC4yNTMxODMsIDAuMjk2NjQ1LCAwLjMyNTQ3NSwgMC4zNzAxNTQsIDAuNDA4NjI5LCAwLjQ2MzE5OCIsIFwKLSAgICAgICAgICAiMC4yMDk0NjUsIDAuMjY4NjU1LCAwLjMxMjEzNSwgMC4zNDEwMjIsIDAuMzg1NjczLCAwLjQyNDE2MiwgMC40Nzg4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDUxMzE2LCAwLjEyODAwOSwgMC4yMDAxOTYsIDAuMjUyMTg1LCAwLjMzNjQ3MSwgMC40MTExNDgsIDAuNTE4NzgiLCBcCi0gICAgICAgICAgIjAuMDUxNDAxLCAwLjEyODAzMiwgMC4yMDAxMzYsIDAuMjUyMTQ4LCAwLjMzNjQ5OCwgMC40MTA4ODMsIDAuNTE4NDA2IiwgXAotICAgICAgICAgICIwLjA1MTMsIDAuMTI4MDk5LCAwLjIwMDE5NywgMC4yNTIxODgsIDAuMzM2NDcxLCAwLjQxMDgyNywgMC41MTgzNjciLCBcCi0gICAgICAgICAgIjAuMDUxMzY2LCAwLjEyODAzOCwgMC4yMDAyMTYsIDAuMjUyMTU5LCAwLjMzNjMsIDAuNDExMjg4LCAwLjUxODc2NCIsIFwKLSAgICAgICAgICAiMC4wNTEzMjcsIDAuMTI4MDY0LCAwLjIwMDE5OSwgMC4yNTIyMjcsIDAuMzM2NDcyLCAwLjQxMDg5NSwgMC41MTgzNjYiLCBcCi0gICAgICAgICAgIjAuMDUxMjU4LCAwLjEyODEwNCwgMC4yMDAyMTQsIDAuMjUyMjU0LCAwLjMzNjQ3NywgMC40MTA5MjQsIDAuNTE4Mzc0IiwgXAotICAgICAgICAgICIwLjA1MTg5MywgMC4xMjgyMDEsIDAuMjAwMzE4LCAwLjI1MjE0OSwgMC4zMzY1MTYsIDAuNDExMTMyLCAwLjUxODY5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTI4MDM3LCAwLjE4MDY5OCwgMC4yMjAzNTgsIDAuMjQ3MDYzLCAwLjI4ODk0MiwgMC4zMjUzNDQsIDAuMzc3MTQ4IiwgXAotICAgICAgICAgICIwLjEzNzg1NSwgMC4xOTA1NiwgMC4yMzAxNjYsIDAuMjU2ODg1LCAwLjI5ODY5MywgMC4zMzUxLCAwLjM4NjkwMiIsIFwKLSAgICAgICAgICAiMC4xNDk0OTEsIDAuMjAyMjM2LCAwLjI0MTg0NiwgMC4yNjg1NjEsIDAuMzEwMzY5LCAwLjM0Njc3NCwgMC4zOTg1OCIsIFwKLSAgICAgICAgICAiMC4xNTkyNDMsIDAuMjExOTQxLCAwLjI1MTYwNywgMC4yNzgyNTYsIDAuMzIwMTgxLCAwLjM1NjU1OSwgMC40MDg0IiwgXAotICAgICAgICAgICIwLjE2NzQyNiwgMC4yMjAyMjQsIDAuMjU5NzIxLCAwLjI4NjQ2NiwgMC4zMjgzNTEsIDAuMzY0NzYzLCAwLjQxNjU1NyIsIFwKLSAgICAgICAgICAiMC4xNzkxMjYsIDAuMjMxODUsIDAuMjcxNTMsIDAuMjk4MTc4LCAwLjM0MDA5NywgMC4zNzY0MTEsIDAuNDI4MzA5IiwgXAotICAgICAgICAgICIwLjE4NzU0NiwgMC4yNDAyNzksIDAuMjc5ODU1LCAwLjMwNjQ4MSwgMC4zNDgzNTEsIDAuMzg0NzY4LCAwLjQzNjYiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDQyMjcsIDAuMTE1ODg3LCAwLjE4NTY2LCAwLjIzNjU3NSwgMC4zMTkwMzYsIDAuMzkxNzczLCAwLjQ5NjY5MiIsIFwKLSAgICAgICAgICAiMC4wNDQwNzUsIDAuMTE1OTQyLCAwLjE4NTc5LCAwLjIzNjU4NSwgMC4zMTg5NDMsIDAuMzkxNzc3LCAwLjQ5NjciLCBcCi0gICAgICAgICAgIjAuMDQ0MDg1LCAwLjExNTkzOCwgMC4xODU3ODgsIDAuMjM2NTg1LCAwLjMxODk0MiwgMC4zOTE3NzMsIDAuNDk2Njk4IiwgXAotICAgICAgICAgICIwLjA0NDAyNiwgMC4xMTU4NywgMC4xODU4MDksIDAuMjM2NTE4LCAwLjMxODk4NSwgMC4zOTE1MzEsIDAuNDk2NDciLCBcCi0gICAgICAgICAgIjAuMDQ0MDM3LCAwLjExNTg3NiwgMC4xODU3NTQsIDAuMjM2NTc5LCAwLjMxODk1MiwgMC4zOTE3OTMsIDAuNDk2ODAzIiwgXAotICAgICAgICAgICIwLjA0Mzg2OSwgMC4xMTU3NjIsIDAuMTg1NzMzLCAwLjIzNjUwNCwgMC4zMTg5MjIsIDAuMzkxNzYsIDAuNDk2NDMiLCBcCi0gICAgICAgICAgIjAuMDQzNzMsIDAuMTE1OTkzLCAwLjE4NTgzNiwgMC4yMzY1OTgsIDAuMzE4OTUsIDAuMzkyMTExLCAwLjQ5NzIxNyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEzNjExOSwgMC4xOTExMjgsIDAuMjMyODgyLCAwLjI2MTA1MywgMC4zMDUxNjcsIDAuMzQzNDQ5LCAwLjM5NzkwNCIsIFwKLSAgICAgICAgICAiMC4xNDYyMzUsIDAuMjAxMjE5LCAwLjI0MzA1OCwgMC4yNzEwNjcsIDAuMzE1MzcxLCAwLjM1MzU0MywgMC40MDgxMDgiLCBcCi0gICAgICAgICAgIjAuMTU4NTUsIDAuMjEzNTExLCAwLjI1NTMwMSwgMC4yODM0OSwgMC4zMjc2NTksIDAuMzY1OTAxLCAwLjQyMDM4NCIsIFwKLSAgICAgICAgICAiMC4xNjg5MzgsIDAuMjIzOTYsIDAuMjY1NzcyLCAwLjI5MzkxNCwgMC4zMzgwNzEsIDAuMzc2MjUsIDAuNDMwNzI4IiwgXAotICAgICAgICAgICIwLjE3Nzg1MywgMC4yMzI4MjgsIDAuMjc0NjczLCAwLjMwMjc4OCwgMC4zNDY5NzUsIDAuMzg1MjYsIDAuNDM5Njk4IiwgXAotICAgICAgICAgICIwLjE5MDY5LCAwLjI0NTU3MiwgMC4yODczMDgsIDAuMzE1NDk5LCAwLjM1OTYxNCwgMC4zOTc5LCAwLjQ1MjM1IiwgXAotICAgICAgICAgICIwLjIwMDA0MywgMC4yNTUwNDUsIDAuMjk2Nzg2LCAwLjMyNDkwMiwgMC4zNjkwNiwgMC40MDcyOTQsIDAuNDYxNzc0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQ1NjQxLCAwLjEyMDQwNCwgMC4xOTI3OTQsIDAuMjQ1MzAxLCAwLjMzMDQ4OCwgMC40MDU0OTEsIDAuNTEzNjA3IiwgXAotICAgICAgICAgICIwLjA0NTg5NiwgMC4xMjA0MjksIDAuMTkyODU4LCAwLjI0NTIxMywgMC4zMzA1MzEsIDAuNDA1NTQ4LCAwLjUxMzU4MSIsIFwKLSAgICAgICAgICAiMC4wNDU3ODcsIDAuMTIwNDg4LCAwLjE5Mjc4NiwgMC4yNDUzMSwgMC4zMzA0NTYsIDAuNDA1NTI4LCAwLjUxMzQ3MiIsIFwKLSAgICAgICAgICAiMC4wNDU4NDEsIDAuMTIwNDY0LCAwLjE5MjgzMSwgMC4yNDUyOTEsIDAuMzMwNTAxLCAwLjQwNTUwNCwgMC41MTQzMjYiLCBcCi0gICAgICAgICAgIjAuMDQ1ODMxLCAwLjEyMDQyNiwgMC4xOTI4MzgsIDAuMjQ1MywgMC4zMzA1MjEsIDAuNDA1NDc3LCAwLjUxMzQ3NyIsIFwKLSAgICAgICAgICAiMC4wNDU1MiwgMC4xMjAzNTUsIDAuMTkyNzI3LCAwLjI0NTI1NCwgMC4zMzAzMTMsIDAuNDA1NDc1LCAwLjUxNDExNCIsIFwKLSAgICAgICAgICAiMC4wNDU4MSwgMC4xMjA1MDcsIDAuMTkyODQyLCAwLjI0NTMwMywgMC4zMzAyMjIsIDAuNDA1NTI4LCAwLjUxMzQ0NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5OTU1NCwgMC4xNTIyNDQsIDAuMTkxODkxLCAwLjIxODQ4OSwgMC4yNjA0NDgsIDAuMjk2ODE1LCAwLjM0ODY1OSIsIFwKLSAgICAgICAgICAiMC4xMDkwNzksIDAuMTYxNzQxLCAwLjIwMTM2NSwgMC4yMjgwNzMsIDAuMjY5OTYyLCAwLjMwNjM2NywgMC4zNTgxNjUiLCBcCi0gICAgICAgICAgIjAuMTIwODExLCAwLjE3MzQyNCwgMC4yMTMwNjUsIDAuMjM5NzQ3LCAwLjI4MTYyLCAwLjMxODAzLCAwLjM2OTgzNyIsIFwKLSAgICAgICAgICAiMC4xMzI2ODMsIDAuMTg1Mjk2LCAwLjIyNDg4OCwgMC4yNTE1OTgsIDAuMjkzNDc0LCAwLjMyOTg5MSwgMC4zODE2ODciLCBcCi0gICAgICAgICAgIjAuMTQ0NTQzLCAwLjE5NzE4LCAwLjIzNjgxNiwgMC4yNjM0NTksIDAuMzA1Mzg0LCAwLjM0MTc1NSwgMC4zOTM1OTgiLCBcCi0gICAgICAgICAgIjAuMTYzNTE4LCAwLjIxNjI1LCAwLjI1NTc2NCwgMC4yODI0NjYsIDAuMzI0MzcxLCAwLjM2MDczMywgMC40MTI1ODUiLCBcCi0gICAgICAgICAgIjAuMTc5NjMyLCAwLjIzMjQ4NywgMC4yNzIxMDIsIDAuMjk4ODYsIDAuMzQwNzQ4LCAwLjM3NzE1OCwgMC40Mjg5NTIiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDM5MjcsIDAuMTE1ODMsIDAuMTg1Nzg5LCAwLjIzNjUxMSwgMC4zMTg5NTYsIDAuMzkxODA1LCAwLjQ5NjUxOCIsIFwKLSAgICAgICAgICAiMC4wNDM5NDMsIDAuMTE1ODE2LCAwLjE4NTY1MSwgMC4yMzY1NTUsIDAuMzE4OTMyLCAwLjM5MTc3NywgMC40OTY3NjIiLCBcCi0gICAgICAgICAgIjAuMDQzNzk5LCAwLjExNTczLCAwLjE4NTc3NiwgMC4yMzY1MzEsIDAuMzE4OTY3LCAwLjM5MTc1MSwgMC40OTY0MTUiLCBcCi0gICAgICAgICAgIjAuMDQzOTM2LCAwLjExNTg4MywgMC4xODU3NTEsIDAuMjM2NTYsIDAuMzE4OTM5LCAwLjM5MTc4MSwgMC40OTY3OCIsIFwKLSAgICAgICAgICAiMC4wNDM4MTIsIDAuMTE1ODAyLCAwLjE4NTc0OSwgMC4yMzY1MjEsIDAuMzE4OTIxLCAwLjM5MTc1OSwgMC40OTY0NTUiLCBcCi0gICAgICAgICAgIjAuMDQ0MzYyLCAwLjExNjA5MiwgMC4xODU4ODcsIDAuMjM2NTkzLCAwLjMxODgyMiwgMC4zOTE1NDksIDAuNDk2NDAyIiwgXAotICAgICAgICAgICIwLjA0NTkyMywgMC4xMTY2MDksIDAuMTg2MjQ5LCAwLjIzNjkyLCAwLjMxOTE4LCAwLjM5MTk0NCwgMC40OTY4OSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExMzI1OSwgMC4xNzI0MSwgMC4yMTU5NjksIDAuMjQ0NzQ2LCAwLjI4OTQ4MSwgMC4zMjc5MSwgMC4zODI1MzQiLCBcCi0gICAgICAgICAgIjAuMTIyMzM2LCAwLjE4MTU4MiwgMC4yMjUwNDQsIDAuMjUzODksIDAuMjk4NTUsIDAuMzM3MDQsIDAuMzkxNjA2IiwgXAotICAgICAgICAgICIwLjEzMzExMiwgMC4xOTIyOTksIDAuMjM1Nzg0LCAwLjI2NDYwOSwgMC4zMDkyNzksIDAuMzQ3NzYsIDAuNDAyMzMiLCBcCi0gICAgICAgICAgIjAuMTQzNDU0LCAwLjIwMjYwNiwgMC4yNDYxNDQsIDAuMjc0OTkyLCAwLjMxOTYwNywgMC4zNTgxMzYsIDAuNDEyNzExIiwgXAotICAgICAgICAgICIwLjE1MzM5OCwgMC4yMTI1MDcsIDAuMjU2MDQxLCAwLjI4NDkxNywgMC4zMjk2MzgsIDAuMzY4MTIsIDAuNDIyNzA1IiwgXAotICAgICAgICAgICIwLjE2OTQ5NiwgMC4yMjg2MiwgMC4yNzIxMTgsIDAuMzAwODksIDAuMzQ1NjUyLCAwLjM4NDA4NiwgMC40Mzg2ODQiLCBcCi0gICAgICAgICAgIjAuMTgzNTMzLCAwLjI0MjY1MiwgMC4yODYxODMsIDAuMzE0OTYzLCAwLjM1OTY5NCwgMC4zOTgxMjIsIDAuNDUyNzU1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDUxMzc1LCAwLjEyNzk4MSwgMC4yMDAxNjYsIDAuMjUyMTQ2LCAwLjMzNjQ0NCwgMC40MTA5NzcsIDAuNTE4MzUzIiwgXAotICAgICAgICAgICIwLjA1MTI4NywgMC4xMjgwMDUsIDAuMjAwMTgyLCAwLjI1MjA2MywgMC4zMzY0NjIsIDAuNDExMTkzLCAwLjUxODM3MyIsIFwKLSAgICAgICAgICAiMC4wNTEzMjEsIDAuMTI4MDgxLCAwLjIwMDE3OSwgMC4yNTIxMDIsIDAuMzM2NDUxLCAwLjQxMTIxNiwgMC41MTgzODMiLCBcCi0gICAgICAgICAgIjAuMDUxMTY0LCAwLjEyNzkzOSwgMC4yMDAxNTcsIDAuMjUyMDUxLCAwLjMzNjM3OCwgMC40MTExMTEsIDAuNTE4MzciLCBcCi0gICAgICAgICAgIjAuMDUxMjA2LCAwLjEyNzkwNSwgMC4yMDAwOTcsIDAuMjUyMDAzLCAwLjMzNjQxLCAwLjQxMTA3LCAwLjUxODM0OCIsIFwKLSAgICAgICAgICAiMC4wNTEzMzUsIDAuMTI4MTA2LCAwLjIwMDIzNywgMC4yNTIyMTQsIDAuMzM2NDgxLCAwLjQxMTAwMywgMC41MTgzNzEiLCBcCi0gICAgICAgICAgIjAuMDUyNTQ5LCAwLjEyODYzOCwgMC4yMDA1NDcsIDAuMjUyNDg5LCAwLjMzNjY3OCwgMC40MTExNDksIDAuNTE4NDcxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTA0ODIyLCAwLjE2MTYxMSwgMC4yMDI3NTIsIDAuMjMwMDY1LCAwLjI3MjQzMywgMC4zMDg5NTgsIDAuMzYwODcxIiwgXAotICAgICAgICAgICIwLjExNDc2OCwgMC4xNzE0MzUsIDAuMjEyNjk4LCAwLjIzOTkzOSwgMC4yODIzNjIsIDAuMzE4ODU0LCAwLjM3MDgxOCIsIFwKLSAgICAgICAgICAiMC4xMjY1MjcsIDAuMTgzMjM5LCAwLjIyNDQ3MiwgMC4yNTE3ODksIDAuMjk0MTY3LCAwLjMzMDY5MSwgMC4zODI1ODYiLCBcCi0gICAgICAgICAgIjAuMTM3MzUxLCAwLjE5NDAyNCwgMC4yMzUzMDUsIDAuMjYyNjg2LCAwLjMwNTAwMiwgMC4zNDE1MTQsIDAuMzkzNDE5IiwgXAotICAgICAgICAgICIwLjE0NjkxNiwgMC4yMDM1NzMsIDAuMjQ0ODc3LCAwLjI3MjE2MSwgMC4zMTQ1NzksIDAuMzUxMTI4LCAwLjQwMzA0MiIsIFwKLSAgICAgICAgICAiMC4xNTkwNjUsIDAuMjE1NzA5LCAwLjI1NzA0NSwgMC4yODQzNTgsIDAuMzI2NzE2LCAwLjM2MzIxNCwgMC40MTUxNTYiLCBcCi0gICAgICAgICAgIjAuMTY3NzY5LCAwLjIyNDI0NiwgMC4yNjU0MjQsIDAuMjkyODA4LCAwLjMzNTIyNywgMC4zNzE2MDYsIDAuNDIzNjY1Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQ4ODQsIDAuMTIyODMsIDAuMTkyNTEyLCAwLjI0MjcyMSwgMC4zMjQ0MjQsIDAuMzk2NzIzLCAwLjUwMDc4NCIsIFwKLSAgICAgICAgICAiMC4wNDg4MTQsIDAuMTIyODQ1LCAwLjE5MjUyMSwgMC4yNDI3ODMsIDAuMzI0NDE5LCAwLjM5NjY0MSwgMC41MDA3MzkiLCBcCi0gICAgICAgICAgIjAuMDQ4ODU5LCAwLjEyMjg2OSwgMC4xOTIzMTQsIDAuMjQyNjkzLCAwLjMyNDQxNiwgMC4zOTY3MjUsIDAuNTAwNDQzIiwgXAotICAgICAgICAgICIwLjA0ODgyNiwgMC4xMjI3ODEsIDAuMTkyNTAzLCAwLjI0Mjg1OCwgMC4zMjQ0MjMsIDAuMzk2NzA2LCAwLjUwMDU4NyIsIFwKLSAgICAgICAgICAiMC4wNDg2OTgsIDAuMTIyNzM3LCAwLjE5MjQ1OCwgMC4yNDI3NDgsIDAuMzI0MzgsIDAuMzk2NywgMC41MDA3MTQiLCBcCi0gICAgICAgICAgIjAuMDQ4NiwgMC4xMjI4MzcsIDAuMTkyNDkyLCAwLjI0Mjc1NSwgMC4zMjQ0MDcsIDAuMzk2NTgsIDAuNTAwNzA3IiwgXAotICAgICAgICAgICIwLjA0ODMwOSwgMC4xMjI1NTYsIDAuMTkyMjQyLCAwLjI0MjY5MywgMC4zMjQzOTUsIDAuMzk2NjQ1LCAwLjUwMDY4NCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEyNTE5LCAwLjE4MDE0LCAwLjIyMTg4OSwgMC4yNTAwMzEsIDAuMjk0MTQsIDAuMzMyNDI1LCAwLjM4Njg2OSIsIFwKLSAgICAgICAgICAiMC4xMzU1NDMsIDAuMTkwNTI3LCAwLjIzMjIzOSwgMC4yNjA0MjcsIDAuMzA0NTM4LCAwLjM0MjgyMiwgMC4zOTcyNzQiLCBcCi0gICAgICAgICAgIjAuMTQ3MTUxLCAwLjIwMjE1LCAwLjI0Mzg5LCAwLjI3MjA0OSwgMC4zMTYxNTgsIDAuMzU0NDQ0LCAwLjQwODg4OSIsIFwKLSAgICAgICAgICAiMC4xNTY0ODQsIDAuMjExNDc4LCAwLjI1MzIyMywgMC4yODEzOTMsIDAuMzI1NSwgMC4zNjM3ODcsIDAuNDE4MjMxIiwgXAotICAgICAgICAgICIwLjE2NDgxNywgMC4yMTk4MTQsIDAuMjYxNDYzLCAwLjI4OTY1NywgMC4zMzM4MTUsIDAuMzcyMTY2LCAwLjQyNjU1MSIsIFwKLSAgICAgICAgICAiMC4xNzU3ODgsIDAuMjMwNzQ2LCAwLjI3MjQ2NiwgMC4zMDA2MzMsIDAuMzQ0NzkxLCAwLjM4MzAzMiwgMC40Mzc1MDciLCBcCi0gICAgICAgICAgIjAuMTgzODc4LCAwLjIzODg3NiwgMC4yODA1OTQsIDAuMzA4OTkxLCAwLjM1MjkxMiwgMC4zOTExOTcsIDAuNDQ1ODUzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQ1NzgsIDAuMTIwMjUyLCAwLjE5MjgyNSwgMC4yNDUzMjgsIDAuMzMwMzY0LCAwLjQwNTUxMiwgMC41MTQ2MjEiLCBcCi0gICAgICAgICAgIjAuMDQ1NzAxLCAwLjEyMDU1OSwgMC4xOTI4MDQsIDAuMjQ1MzE4LCAwLjMzMDM1OCwgMC40MDU1MTEsIDAuNTE0MTc5IiwgXAotICAgICAgICAgICIwLjA0NTY5NywgMC4xMjA1NDQsIDAuMTkyNzYyLCAwLjI0NTMyLCAwLjMzMDM2MiwgMC40MDU1MSwgMC41MTQwOTYiLCBcCi0gICAgICAgICAgIjAuMDQ1NjgzLCAwLjEyMDUxMiwgMC4xOTI3OTUsIDAuMjQ1MzExLCAwLjMzMDM1OCwgMC40MDU1MDksIDAuNTEzOTkiLCBcCi0gICAgICAgICAgIjAuMDQ1NzQxLCAwLjEyMDQ0NywgMC4xOTI3NDgsIDAuMjQ1Mjc4LCAwLjMzMDMyMSwgMC40MDU1MDUsIDAuNTEzOTQ5IiwgXAotICAgICAgICAgICIwLjA0NTc2NiwgMC4xMjA0MjcsIDAuMTkyNzUyLCAwLjI0NTI1MywgMC4zMzAyMzIsIDAuNDA1NTI4LCAwLjUxMzQ2OSIsIFwKLSAgICAgICAgICAiMC4wNDU1ODcsIDAuMTIwNzA2LCAwLjE5MzAzLCAwLjI0NTM5OSwgMC4zMzA1ODEsIDAuNDA1NjAzLCAwLjUxMzY1NiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEwOTA3LCAwLjAxMTA3MiwgMC4wMTExODQsIDAuMDExMjI5LCAwLjAxMTI3NSwgMC4wMTEyOTgsIDAuMDExMzIyIiwgXAotICAgICAgICAgICIwLjAxMDg4OSwgMC4wMTEwNSwgMC4wMTExNjQsIDAuMDExMjA3LCAwLjAxMTI0OSwgMC4wMTEyNzcsIDAuMDExMjk5IiwgXAotICAgICAgICAgICIwLjAxMDg4MywgMC4wMTEwNDQsIDAuMDExMTU3LCAwLjAxMTIwMSwgMC4wMTEyNDMsIDAuMDExMjcsIDAuMDExMjkzIiwgXAotICAgICAgICAgICIwLjAxMDg3OSwgMC4wMTEwNDUsIDAuMDExMTU4LCAwLjAxMTIwMywgMC4wMTEyNDgsIDAuMDExMjc0LCAwLjAxMTI5NiIsIFwKLSAgICAgICAgICAiMC4wMTA4ODQsIDAuMDExMDUxLCAwLjAxMTE2NSwgMC4wMTEyMDksIDAuMDExMjU2LCAwLjAxMTI4MiwgMC4wMTEzMDIiLCBcCi0gICAgICAgICAgIjAuMDEwODk4LCAwLjAxMTA1OCwgMC4wMTExNzUsIDAuMDExMjE4LCAwLjAxMTI2MywgMC4wMTEyOSwgMC4wMTEzMTEiLCBcCi0gICAgICAgICAgIjAuMDEwOTAzLCAwLjAxMTA3MiwgMC4wMTExODQsIDAuMDExMjMyLCAwLjAxMTI3OCwgMC4wMTEzMDMsIDAuMDExMzI5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTA3NzgsIDAuMDEwOTc1LCAwLjAxMTEyNSwgMC4wMTExODcsIDAuMDExMjUsIDAuMDExMjg1LCAwLjAxMTMxOSIsIFwKLSAgICAgICAgICAiMC4wMTA3MzYsIDAuMDEwOTQ1LCAwLjAxMTA5NSwgMC4wMTExNTgsIDAuMDExMjIxLCAwLjAxMTI1NiwgMC4wMTEyOTEiLCBcCi0gICAgICAgICAgIjAuMDEwNzUxLCAwLjAxMDk0MywgMC4wMTEwOTIsIDAuMDExMTU0LCAwLjAxMTIxNywgMC4wMTEyNTIsIDAuMDExMjg2IiwgXAotICAgICAgICAgICIwLjAxMDczOSwgMC4wMTA5NDQsIDAuMDExMDk1LCAwLjAxMTE1OCwgMC4wMTEyMjIsIDAuMDExMjU3LCAwLjAxMTI5MSIsIFwKLSAgICAgICAgICAiMC4wMTA3NDcsIDAuMDEwOTU1LCAwLjAxMTEwNiwgMC4wMTExNjksIDAuMDExMjMzLCAwLjAxMTI2OCwgMC4wMTEzMDIiLCBcCi0gICAgICAgICAgIjAuMDEwNzQ4LCAwLjAxMDk1OSwgMC4wMTExMTIsIDAuMDExMTc1LCAwLjAxMTI0LCAwLjAxMTI3NiwgMC4wMTEzMTEiLCBcCi0gICAgICAgICAgIjAuMDEwNzc1LCAwLjAxMDk4MywgMC4wMTExMzYsIDAuMDExMTk5LCAwLjAxMTI2MywgMC4wMTEyOTksIDAuMDExMzM0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTA3NDYsIDAuMDEwODE3LCAwLjAxMDkxNSwgMC4wMTA5NTIsIDAuMDEwOTk0LCAwLjAxMTAxNSwgMC4wMTEwMzYiLCBcCi0gICAgICAgICAgIjAuMDEwNzY0LCAwLjAxMDgzOSwgMC4wMTA5MzMsIDAuMDEwOTcxLCAwLjAxMTAxLCAwLjAxMTAzMywgMC4wMTEwNTMiLCBcCi0gICAgICAgICAgIjAuMDEwODMxLCAwLjAxMDg5NiwgMC4wMTA5OSwgMC4wMTEwMjcsIDAuMDExMDY3LCAwLjAxMTA4NywgMC4wMTExMTEiLCBcCi0gICAgICAgICAgIjAuMDEwODYsIDAuMDEwOTI4LCAwLjAxMTAxNSwgMC4wMTEwNTQsIDAuMDExMDkyLCAwLjAxMTExMiwgMC4wMTExMzciLCBcCi0gICAgICAgICAgIjAuMDEwOTEsIDAuMDEwOTYzLCAwLjAxMTA1NSwgMC4wMTEwODUsIDAuMDExMTMzLCAwLjAxMTE1MiwgMC4wMTExNyIsIFwKLSAgICAgICAgICAiMC4wMTA5ODksIDAuMDExMDM5LCAwLjAxMTExNSwgMC4wMTExNTMsIDAuMDExMTk3LCAwLjAxMTIxNywgMC4wMTEyNCIsIFwKLSAgICAgICAgICAiMC4wMTEwNTUsIDAuMDExMDk5LCAwLjAxMTIwMSwgMC4wMTEyMjEsIDAuMDExMjYsIDAuMDExMjk5LCAwLjAxMTMwNiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA5ODgyLCAwLjAxMDA2MSwgMC4wMTAyMDgsIDAuMDEwMjY5LCAwLjAxMDMzMSwgMC4wMTAzNjcsIDAuMDEwNDAxIiwgXAotICAgICAgICAgICIwLjAwOTg3NSwgMC4wMTAwNTcsIDAuMDEwMjAyLCAwLjAxMDI2MywgMC4wMTAzMjYsIDAuMDEwMzYxLCAwLjAxMDM5NSIsIFwKLSAgICAgICAgICAiMC4wMDk4ODcsIDAuMDEwMDczLCAwLjAxMDIxOSwgMC4wMTAyNzksIDAuMDEwMzQyLCAwLjAxMDM3NywgMC4wMTA0MTEiLCBcCi0gICAgICAgICAgIjAuMDA5ODkxLCAwLjAxMDA4NywgMC4wMTAyMzYsIDAuMDEwMjk3LCAwLjAxMDM2LCAwLjAxMDM5NiwgMC4wMTA0MyIsIFwKLSAgICAgICAgICAiMC4wMDk4NjYsIDAuMDEwMDgyLCAwLjAxMDIzMywgMC4wMTAyOTcsIDAuMDEwMzYxLCAwLjAxMDM5OCwgMC4wMTA0MzMiLCBcCi0gICAgICAgICAgIjAuMDA5OTI0LCAwLjAxMDEyMywgMC4wMTAyNjksIDAuMDEwMzMsIDAuMDEwMzkzLCAwLjAxMDQyOSwgMC4wMTA0NjMiLCBcCi0gICAgICAgICAgIjAuMDA5OTM1LCAwLjAxMDEzMywgMC4wMTAyODYsIDAuMDEwMzQ4LCAwLjAxMDQxNSwgMC4wMTA0NTIsIDAuMDEwNDg0Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBNWEkyWDQgKgotICogLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChNWEkyWDQpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4zMDI5NjQ7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYxNTA2NjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MTM0MDI7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjE1MDY2OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDIwOSwgMC4wMDAyMTUsIDAuMDAwMjE3LCAwLjAwMDIxNywgMC4wMDAyMTgsIDAuMDAwMjE4LCAwLjAwMDIxOSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDIyOSwgMC4wMDAyMjcsIDAuMDAwMjI3LCAwLjAwMDIyNywgMC4wMDAyMjcsIDAuMDAwMjI3LCAwLjAwMDIyNyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjM2MDA3OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYzNDY3MTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2MzYwMDc7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjE2LCAwLjAwMDIyLCAwLjAwMDIyLCAwLjAwMDIyMSwgMC4wMDAyMjEsIDAuMDAwMjIxLCAwLjAwMDIyMiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDIzMSwgMC4wMDAyMjcsIDAuMDAwMjI3LCAwLjAwMDIyNywgMC4wMDAyMjcsIDAuMDAwMjI3LCAwLjAwMDIyNyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oUzApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTQwMDEzOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTM5OTU5OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTQwMDEzOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDE3MSwgMC4wMDAxNDMsIDAuMDAwMTQ4LCAwLjAwMDE1NCwgMC4wMDAxNjgsIDAuMDAwMTk4LCAwLjAwMDIyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTgzNCwgMC4wMDE4MTIsIDAuMDAxODE0LCAwLjAwMTgyNSwgMC4wMDE4MzQsIDAuMDAxODYsIDAuMDAxODgyIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDEuMDM3NjQ7Ci0gICAgZnVuY3Rpb24gOiAiKCEoKFMwIEIpICsgKCFTMCBBKSkpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5OTA0MiwgMC4xNzE2NDMsIDAuMjQzMTA4LCAwLjI5NDE3LCAwLjM3NTgwMywgMC40NDcyNjQsIDAuNTQ5MzQiLCBcCi0gICAgICAgICAgIjAuMTA3NjExLCAwLjE4MDI3NCwgMC4yNTE3MzksIDAuMzAyNzk3LCAwLjM4NDQzMywgMC40NTU4OTYsIDAuNTU3OTYzIiwgXAotICAgICAgICAgICIwLjExNzUxNSwgMC4xOTAxNjUsIDAuMjYxNjI5LCAwLjMxMjY3LCAwLjM5NDMyNywgMC40NjU3OTEsIDAuNTY3ODkiLCBcCi0gICAgICAgICAgIjAuMTI3MDg5LCAwLjE5OTcyNywgMC4yNzEyLCAwLjMyMjI2NywgMC40MDM5MSwgMC40NzUzNiwgMC41Nzc0NDQiLCBcCi0gICAgICAgICAgIjAuMTM2MDgsIDAuMjA4NzA0LCAwLjI4MDE2NSwgMC4zMzEyMjUsIDAuNDEyODYxLCAwLjQ4NDMyLCAwLjU4NjM4NCIsIFwKLSAgICAgICAgICAiMC4xNDkyMTMsIDAuMjIxOSwgMC4yOTMzNjgsIDAuMzQ0NDQ1LCAwLjQyNjA5OCwgMC40OTc1MTcsIDAuNTk5NTkxIiwgXAotICAgICAgICAgICIwLjE1OTQwOCwgMC4yMzIwNjgsIDAuMzAzNTA5LCAwLjM1NDU1MSwgMC40MzYyMTIsIDAuNTA3Njc5LCAwLjYwOTc0NyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzMjk0MiwgMC4xNzU5OTEsIDAuMzIyNzExLCAwLjQyNzgxNywgMC41OTcxMjEsIDAuNzQ0NzE1LCAwLjk1NTQ2IiwgXAotICAgICAgICAgICIwLjAzMjg3MiwgMC4xNzU5ODgsIDAuMzIyNzAzLCAwLjQyODU1NCwgMC41OTcxMTQsIDAuNzQzNzc4LCAwLjk1NTQ0NiIsIFwKLSAgICAgICAgICAiMC4wMzI5MDMsIDAuMTc1OTg4LCAwLjMyMzA3LCAwLjQyODQ4MiwgMC41OTcxNzYsIDAuNzQzODY3LCAwLjk1MzkyMyIsIFwKLSAgICAgICAgICAiMC4wMzI4OTQsIDAuMTc1OTgzLCAwLjMyMjc0MiwgMC40Mjg1NzEsIDAuNTk3MTgsIDAuNzQzODQ0LCAwLjk1MzY2NSIsIFwKLSAgICAgICAgICAiMC4wMzI4ODEsIDAuMTc1OTk4LCAwLjMyMjY4NCwgMC40Mjc3MTQsIDAuNTk3MTI1LCAwLjc0Mzc0MywgMC45NTU0MzkiLCBcCi0gICAgICAgICAgIjAuMDMyOTg3LCAwLjE3NjAyNSwgMC4zMjMwNDksIDAuNDI3NjY3LCAwLjU5NjAxNCwgMC43NDM2NDQsIDAuOTU0MjA5IiwgXAotICAgICAgICAgICIwLjAzMzIwOCwgMC4xNzU3MDgsIDAuMzIzMDg5LCAwLjQyNzkwOSwgMC41OTcwNTEsIDAuNzQ0NTc5LCAwLjk1MzgwNSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5NzgyOCwgMC4xNzI0NzgsIDAuMjQ1OTMzLCAwLjI5ODM4MywgMC4zODIyOCwgMC40NTU3MzUsIDAuNTYwNTQyIiwgXAotICAgICAgICAgICIwLjEwNjc0NiwgMC4xODEzOTgsIDAuMjU0ODUzLCAwLjMwNzMwMywgMC4zOTEyMDgsIDAuNDY0NjcsIDAuNTY5NDgzIiwgXAotICAgICAgICAgICIwLjExNzYxNSwgMC4xOTIzNDIsIDAuMjY1NzksIDAuMzE4MjM1LCAwLjQwMjE1MSwgMC40NzU2MDksIDAuNTgwMzU1IiwgXAotICAgICAgICAgICIwLjEyODA5NywgMC4yMDI3NTMsIDAuMjc2MjEyLCAwLjMyODY2MSwgMC40MTI1NywgMC40ODYwMjYsIDAuNTkwODQyIiwgXAotICAgICAgICAgICIwLjEzODEzOCwgMC4yMTI3ODIsIDAuMjg2MjMxLCAwLjMzODY5NywgMC40MjI1OTMsIDAuNDk2MDU2LCAwLjYwMDg3NyIsIFwKLSAgICAgICAgICAiMC4xNTI4OTQsIDAuMjI3NTY4LCAwLjMwMTAxOCwgMC4zNTM0ODEsIDAuNDM3MzYzLCAwLjUxMDc2MywgMC42MTU2NzMiLCBcCi0gICAgICAgICAgIjAuMTY0Njg1LCAwLjIzOTM0OCwgMC4zMTI3ODcsIDAuMzY1MjQsIDAuNDQ5MTI2LCAwLjUyMjUzLCAwLjYyNzQ2MyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzMjQ3MSwgMC4xNzc2MzEsIDAuMzI1MzY2LCAwLjQzMjY3LCAwLjYwMjk4MSwgMC43NDk5NTksIDAuOTY0ODEzIiwgXAotICAgICAgICAgICIwLjAzMjQ3MSwgMC4xNzc2MzgsIDAuMzI2MDgsIDAuNDMyNjI0LCAwLjYwMTg3NywgMC43NDk5MTcsIDAuOTY1MDA4IiwgXAotICAgICAgICAgICIwLjAzMjQ3NywgMC4xNzc2NTksIDAuMzI1NDMyLCAwLjQzMjU5OSwgMC42MDIwNjksIDAuNzUwNDI0LCAwLjk2NDk4MSIsIFwKLSAgICAgICAgICAiMC4wMzI0NzYsIDAuMTc3NjMsIDAuMzI2MDU1LCAwLjQzMjYxMywgMC42MDE5MTQsIDAuNzQ5OTU2LCAwLjk2NTAyMiIsIFwKLSAgICAgICAgICAiMC4wMzI0ODcsIDAuMTc3MzQzLCAwLjMyNjA5OSwgMC40MzI2MzIsIDAuNjAxODIyLCAwLjc0OTkyMywgMC45NjQ5NjYiLCBcCi0gICAgICAgICAgIjAuMDMyNjE1LCAwLjE3NzY1OSwgMC4zMjU3MjgsIDAuNDMyNjY1LCAwLjYwMTgwNywgMC43NTE4OTYsIDAuOTY1MTI1IiwgXAotICAgICAgICAgICIwLjAzMjg0MywgMC4xNzc0ODQsIDAuMzI2MTc1LCAwLjQzMjYyMiwgMC42MDI1NTQsIDAuNzUxODI5LCAwLjk2MjczOSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5OTcwNSwgMC4xNzIzNjgsIDAuMjQzODM3LCAwLjI5NDkxNywgMC4zNzY0ODMsIDAuNDQ3OTk3LCAwLjU1MDA1OCIsIFwKLSAgICAgICAgICAiMC4xMDgzODQsIDAuMTgxMDQ4LCAwLjI1MjUxOCwgMC4zMDM1OTgsIDAuMzg1MjE1LCAwLjQ1NjY3OSwgMC41NTg2MTIiLCBcCi0gICAgICAgICAgIjAuMTE4MjY5LCAwLjE5MDkzNiwgMC4yNjIzNjksIDAuMzEzNDM4LCAwLjM5NTA5OCwgMC40NjY1NjksIDAuNTY4NzI1IiwgXAotICAgICAgICAgICIwLjEyNzc4NiwgMC4yMDA0NjMsIDAuMjcxOTM4LCAwLjMyMzAwNiwgMC40MDQ1NTQsIDAuNDc1OTc5LCAwLjU3ODE2MyIsIFwKLSAgICAgICAgICAiMC4xMzY4NiwgMC4yMDk1MTgsIDAuMjgwOTg3LCAwLjMzMjA2OSwgMC40MTM2ODQsIDAuNDg1MTUsIDAuNTg3MjQ1IiwgXAotICAgICAgICAgICIwLjE0OTk4MSwgMC4yMjI2OTMsIDAuMjk0MTY0LCAwLjM0NTIzOCwgMC40MjY4NjUsIDAuNDk4MzUsIDAuNjAwMzk2IiwgXAotICAgICAgICAgICIwLjE2MDE5NiwgMC4yMzI3ODYsIDAuMzA0MjQ0LCAwLjM1NTI4OCwgMC40MzcwMjEsIDAuNTA4Mzg3LCAwLjYxMDQ1MyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzMjk0MiwgMC4xNzYwMTMsIDAuMzIyNzY0LCAwLjQyODYyMiwgMC41OTYwMTksIDAuNzQzODg0LCAwLjk1NTQ2NyIsIFwKLSAgICAgICAgICAiMC4wMzI5NDIsIDAuMTc2MDEyLCAwLjMyMjc2NCwgMC40Mjg2MjIsIDAuNTk2ODUzLCAwLjc0Mzg3NSwgMC45NTQ5MjIiLCBcCi0gICAgICAgICAgIjAuMDMyOTQ0LCAwLjE3NjAwOSwgMC4zMjI3MTQsIDAuNDI3OTE4LCAwLjU5NzE4NCwgMC43NDM3NTUsIDAuOTUzODY1IiwgXAotICAgICAgICAgICIwLjAzMjkxNywgMC4xNzU5OTksIDAuMzIyMjg5LCAwLjQyODU5OSwgMC41OTUzNzIsIDAuNzQzNTYsIDAuOTU1NDcxIiwgXAotICAgICAgICAgICIwLjAzMjk1MywgMC4xNzYwMjMsIDAuMzIyNzQ4LCAwLjQyODYyNSwgMC41OTY4NCwgMC43NDQ3MSwgMC45NTU1MjYiLCBcCi0gICAgICAgICAgIjAuMDMzMDcsIDAuMTc2MDIsIDAuMzIzMDM4LCAwLjQyODUyNCwgMC41OTcxMjksIDAuNzQzNzM2LCAwLjk1NDI0OSIsIFwKLSAgICAgICAgICAiMC4wMzM0OTcsIDAuMTc1ODI5LCAwLjMyMzA0NiwgMC40Mjg0OTcsIDAuNTk2MDk4LCAwLjc0NDMzMiwgMC45NTQzODMiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTc2OTcsIDAuMTcyNDI4LCAwLjI0NTg3NCwgMC4yOTgzNTksIDAuMzgyMjU4LCAwLjQ1NTY4LCAwLjU2MDUxMiIsIFwKLSAgICAgICAgICAiMC4xMDY2MDcsIDAuMTgxMzIxLCAwLjI1NDc4MiwgMC4zMDcyMjksIDAuMzkxMTUyLCAwLjQ2NDU5LCAwLjU2OTQwNCIsIFwKLSAgICAgICAgICAiMC4xMTc1MDcsIDAuMTkyMTUxLCAwLjI2NTYyOCwgMC4zMTgwNTcsIDAuNDAxOTc0LCAwLjQ3NTQsIDAuNTgwMjMxIiwgXAotICAgICAgICAgICIwLjEyODA3OSwgMC4yMDI4MjcsIDAuMjc2Mjk2LCAwLjMyODY1NCwgMC40MTI1NzQsIDAuNDg2MDEsIDAuNTkwODMxIiwgXAotICAgICAgICAgICIwLjEzODIxNiwgMC4yMTI4NzUsIDAuMjg2MzMsIDAuMzM4NzkyLCAwLjQyMjcwMywgMC40OTYxMzgsIDAuNjAwOTY5IiwgXAotICAgICAgICAgICIwLjE1MzA3NiwgMC4yMjc3NzgsIDAuMzAxMjM3LCAwLjM1MzY4NiwgMC40Mzc1NzEsIDAuNTEwOTk1LCAwLjYxNTg0IiwgXAotICAgICAgICAgICIwLjE2NDc4NywgMC4yMzk0NzcsIDAuMzEyOTMyLCAwLjM2NTM3MSwgMC40NDkyNjksIDAuNTIyNjksIDAuNjI3NTg2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDMyNTE3LCAwLjE3NzcsIDAuMzI2MjEzLCAwLjQzMTUsIDAuNjAxODI0LCAwLjc1MDA0LCAwLjk2NDk1NCIsIFwKLSAgICAgICAgICAiMC4wMzI1MTgsIDAuMTc3NjE5LCAwLjMyNTM0MiwgMC40MzI1OTcsIDAuNjAxOTQyLCAwLjc0OTk5MSwgMC45NjQ4NTMiLCBcCi0gICAgICAgICAgIjAuMDMyNTEsIDAuMTc3NjQxLCAwLjMyNjMyNiwgMC40MzI2MjcsIDAuNjAxODg2LCAwLjc1MjAzOSwgMC45NjQ5MzciLCBcCi0gICAgICAgICAgIjAuMDMyNTE1LCAwLjE3NzY5OSwgMC4zMjYzMjksIDAuNDMyNTkxLCAwLjYwMjAwMSwgMC43NTAwMDMsIDAuOTY0OTA5IiwgXAotICAgICAgICAgICIwLjAzMjUxLCAwLjE3NzY0NCwgMC4zMjYxNDMsIDAuNDMyNjM1LCAwLjYwMTg1NCwgMC43NTAwMDgsIDAuOTY0OTE0IiwgXAotICAgICAgICAgICIwLjAzMjYyOSwgMC4xNzc2ODQsIDAuMzI1NDQ5LCAwLjQzMjY0MywgMC42MDI4NzQsIDAuNzUxOTk4LCAwLjk2MzI1MyIsIFwKLSAgICAgICAgICAiMC4wMzI3MDcsIDAuMTc3NDc2LCAwLjMyNjI1NSwgMC40MzI1OTksIDAuNjAyNTYxLCAwLjc1MTAxOSwgMC45NjUxMyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJTMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDcxMzYsIDAuMTc5ODAxLCAwLjI1MTI3MiwgMC4zMDIzNDMsIDAuMzgzODg2LCAwLjQ1NTQ0OCwgMC41NTc0OTkiLCBcCi0gICAgICAgICAgIjAuMTE3MTk5LCAwLjE4OTg2MSwgMC4yNjEzMjcsIDAuMzEyMzY5LCAwLjM5NDAyMiwgMC40NjU0OTMsIDAuNTY3NTg4IiwgXAotICAgICAgICAgICIwLjEyNzk3OCwgMC4yMDA2MzksIDAuMjcyMTA4LCAwLjMyMzE4OCwgMC40MDQ4MDMsIDAuNDc2MjU5LCAwLjU3ODMzNCIsIFwKLSAgICAgICAgICAiMC4xMzY3NDYsIDAuMjA5NDE4LCAwLjI4MDg1MSwgMC4zMzE5MTksIDAuNDEzNTc4LCAwLjQ4NTA1MSwgMC41ODcyMDIiLCBcCi0gICAgICAgICAgIjAuMTQ0MDI0LCAwLjIxNjYyLCAwLjI4ODA5OCwgMC4zMzkxNzMsIDAuNDIwNzA2LCAwLjQ5MjI1MywgMC41OTQzNDgiLCBcCi0gICAgICAgICAgIjAuMTUzNzQ2LCAwLjIyNjM0OSwgMC4yOTc4MjEsIDAuMzQ4ODYsIDAuNDMwNTAzLCAwLjUwMTk0NywgMC42MDQwMTEiLCBcCi0gICAgICAgICAgIjAuMTYxMzQ0LCAwLjIzMzg5NywgMC4zMDUzODYsIDAuMzU2MjExLCAwLjQzODA2MSwgMC41MDk1MDEsIDAuNjExMzY4Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDMyOTQ1LCAwLjE3NjAxNywgMC4zMjI3OTQsIDAuNDI4NjI4LCAwLjU5NTQyNCwgMC43NDQ4MDcsIDAuOTU0NDg0IiwgXAotICAgICAgICAgICIwLjAzMjkzMSwgMC4xNzU3ODUsIDAuMzIzMDc4LCAwLjQyNzk4NCwgMC41OTcxNDEsIDAuNzQzODEzLCAwLjk1Mzk0MSIsIFwKLSAgICAgICAgICAiMC4wMzI5MzksIDAuMTc2MDEyLCAwLjMyMjc3MiwgMC40Mjg2MjMsIDAuNTk2ODUsIDAuNzQ0NzMzLCAwLjk1NTQ3MSIsIFwKLSAgICAgICAgICAiMC4wMzI5NDIsIDAuMTc1NzY3LCAwLjMyMjY4NCwgMC40MjgzMDUsIDAuNTk3MTc4LCAwLjc0MzczOCwgMC45NTM5MjMiLCBcCi0gICAgICAgICAgIjAuMDMyOTE0LCAwLjE3NTk3NywgMC4zMjI3NTYsIDAuNDI4NTk5LCAwLjU5NTczMSwgMC43NDM4OTEsIDAuOTUzODM3IiwgXAotICAgICAgICAgICIwLjAzMjg2MywgMC4xNzYwMjMsIDAuMzIyNzE1LCAwLjQyNzg5NSwgMC41OTY5NzUsIDAuNzQzNjc2LCAwLjk1NDM3MiIsIFwKLSAgICAgICAgICAiMC4wMzMwNDcsIDAuMTc1ODU5LCAwLjMyMzAwNywgMC40Mjc5NDksIDAuNTk2OTI5LCAwLjc0NDQ1LCAwLjk1NTIwMyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwNjk1NSwgMC4xODE2OTYsIDAuMjU1MDc0LCAwLjMwNzUyLCAwLjM5MTQ3MywgMC40NjQ4OTcsIDAuNTY5NzA2IiwgXAotICAgICAgICAgICIwLjExNjY5LCAwLjE5MTQxLCAwLjI2NDg1OSwgMC4zMTczMDYsIDAuNDAxMjQxLCAwLjQ3NDY4MywgMC41Nzk0OTEiLCBcCi0gICAgICAgICAgIjAuMTI3MDI5LCAwLjIwMTY1OSwgMC4yNzUxMzIsIDAuMzI3NTU2LCAwLjQxMTQ2NCwgMC40ODQ5MTIsIDAuNTg5NzM2IiwgXAotICAgICAgICAgICIwLjEzNDg0NSwgMC4yMDk0ODMsIDAuMjgyOTU0LCAwLjMzNTM3NSwgMC40MTkyODgsIDAuNDkyNzM5LCAwLjU5NzU2NiIsIFwKLSAgICAgICAgICAiMC4xNDEyOTQsIDAuMjE1OTM2LCAwLjI4OTM4NSwgMC4zNDE4NDYsIDAuNDI1NzM1LCAwLjQ5OTA0MSwgMC42MDQwMzQiLCBcCi0gICAgICAgICAgIjAuMTQ5Nzc0LCAwLjIyNDI0MSwgMC4yOTc2ODUsIDAuMzUwMzg3LCAwLjQzNDAxLCAwLjUwNzY2OSwgMC42MTI1MTgiLCBcCi0gICAgICAgICAgIjAuMTU2MjEyLCAwLjIzMTAwNSwgMC4zMDQ0NTEsIDAuMzU2ODgzLCAwLjQ0MDY1LCAwLjUxNDA1NCwgMC42MTkwNDMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzI0NjUsIDAuMTc3Njk4LCAwLjMyNTM3MywgMC40MzI2MTgsIDAuNjAxMjM0LCAwLjc1MDAzMSwgMC45NjUwNTEiLCBcCi0gICAgICAgICAgIjAuMDMyNDY0LCAwLjE3NzY0LCAwLjMyNTM5MSwgMC40MzI2MDEsIDAuNjAxMzM2LCAwLjc1MDExOCwgMC45NjQ5NyIsIFwKLSAgICAgICAgICAiMC4wMzI0ODMsIDAuMTc3NDA5LCAwLjMyNTUwMywgMC40MzI2MDUsIDAuNjAxODg2LCAwLjc0OTk0NSwgMC45NjQ5NjciLCBcCi0gICAgICAgICAgIjAuMDMyNDgzLCAwLjE3NzU3MSwgMC4zMjUzMTYsIDAuNDMxODU2LCAwLjYwMTg4OSwgMC43NDk5NjcsIDAuOTY0OTk1IiwgXAotICAgICAgICAgICIwLjAzMjQ2NiwgMC4xNzczOTEsIDAuMzI1NjI2LCAwLjQzMjYzLCAwLjYwMTc3MSwgMC43NTE4NDcsIDAuOTY1MDUyIiwgXAotICAgICAgICAgICIwLjAzMjQ4LCAwLjE3NzY0MiwgMC4zMjU4NTEsIDAuNDMyNTY0LCAwLjYwMTc4LCAwLjc1MDUzNiwgMC45NjQ2OTQiLCBcCi0gICAgICAgICAgIjAuMDMyNSwgMC4xNzc0OCwgMC4zMjU4MjUsIDAuNDMyMTk5LCAwLjYwMTQyNCwgMC43NTA1NTIsIDAuOTY0Mzk3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIlMwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5MjQyOCwgMC4xNjUwODIsIDAuMjM2NTQ2LCAwLjI4NzU4NiwgMC4zNjkyNDUsIDAuNDQwNzA4LCAwLjU0MjgxIiwgXAotICAgICAgICAgICIwLjEwMTE4MSwgMC4xNzM4MTQsIDAuMjQ1MjYxLCAwLjI5NjM2MywgMC4zNzc5ODIsIDAuNDQ5NDQxLCAwLjU1MTU0NCIsIFwKLSAgICAgICAgICAiMC4xMTI1NTUsIDAuMTg1MjEzLCAwLjI1NjY3OCwgMC4zMDc3NCwgMC4zODkzNzYsIDAuNDYwODQsIDAuNTYyOTM2IiwgXAotICAgICAgICAgICIwLjEyMzg1LCAwLjE5NjQ2NSwgMC4yNjc5MzMsIDAuMzE4OTk1LCAwLjQwMDYzLCAwLjQ3MjAyNywgMC41NzQxNzciLCBcCi0gICAgICAgICAgIjAuMTM0NTIzLCAwLjIwNzA4MSwgMC4yNzg2MjcsIDAuMzI5NTc4LCAwLjQxMTMyMywgMC40ODI3ODEsIDAuNTg0ODYzIiwgXAotICAgICAgICAgICIwLjE0OTEyMiwgMC4yMjE3NzYsIDAuMjkzMjAzLCAwLjM0NDMxMSwgMC40MjU5MDQsIDAuNDk3Mzk3LCAwLjU5OTQ4OCIsIFwKLSAgICAgICAgICAiMC4xNjAzMjUsIDAuMjMyOTM0LCAwLjMwNDUxOCwgMC4zNTU0MTgsIDAuNDM3MjE0LCAwLjUwODU1NCwgMC42MTA2MjciKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzI5MDQsIDAuMTc1NzUzLCAwLjMyMzA3LCAwLjQyODQ3NiwgMC41OTcxNzYsIDAuNzQzODQ3LCAwLjk1MzM1MiIsIFwKLSAgICAgICAgICAiMC4wMzI4OTcsIDAuMTc1NzY0LCAwLjMyMjU3MiwgMC40Mjc2NjgsIDAuNTk3MTgyLCAwLjc0Mzg1NSwgMC45NTMzNDUiLCBcCi0gICAgICAgICAgIjAuMDMyODg1LCAwLjE3NTc1OCwgMC4zMjMwNjEsIDAuNDI4NTY1LCAwLjU5NzE3LCAwLjc0Mzg2NSwgMC45NTM4ODUiLCBcCi0gICAgICAgICAgIjAuMDMyOTM4LCAwLjE3NTk5NiwgMC4zMjI2OTUsIDAuNDI3MTYsIDAuNTk3MTI1LCAwLjc0NDUyOCwgMC45NTU0NzYiLCBcCi0gICAgICAgICAgIjAuMDMyODU4LCAwLjE3NTk5NiwgMC4zMjI3MDYsIDAuNDI4NDAyLCAwLjU5NzEwMywgMC43NDQ3MDgsIDAuOTU1NDY1IiwgXAotICAgICAgICAgICIwLjAzMzEyNiwgMC4xNzYwNTIsIDAuMzIzMDE0LCAwLjQyODUxNywgMC41OTcwODksIDAuNzQzNzc0LCAwLjk1MzgxNiIsIFwKLSAgICAgICAgICAiMC4wMzMyOTcsIDAuMTc1ODk5LCAwLjMyMzA3NywgMC40Mjc4NTYsIDAuNTk3MTAzLCAwLjc0NDYxNCwgMC45NTUzNDkiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTEzODYsIDAuMTY2MTAyLCAwLjIzOTU0NywgMC4yOTIwMDIsIDAuMzc1OTE3LCAwLjQ0OTM1LCAwLjU1NDE2NiIsIFwKLSAgICAgICAgICAiMC4xMDA0MzEsIDAuMTc1MTY0LCAwLjI0ODYyNSwgMC4zMDEwNiwgMC4zODQ5OTQsIDAuNDU4NDE5LCAwLjU2MzIzMyIsIFwKLSAgICAgICAgICAiMC4xMTIxMjEsIDAuMTg2ODQ5LCAwLjI2MDMwOSwgMC4zMTI3NDUsIDAuMzk2NjQ5LCAwLjQ3MDEwNywgMC41NzQ5MTkiLCBcCi0gICAgICAgICAgIjAuMTIzODE4LCAwLjE5ODUwNSwgMC4yNzE5NzIsIDAuMzI0MzkzLCAwLjQwODMxMywgMC40ODE3NTUsIDAuNTg2NTcxIiwgXAotICAgICAgICAgICIwLjEzNTA1NCwgMC4yMDk3MjUsIDAuMjgzMTg2LCAwLjMzNTYzMiwgMC40MTk1MjQsIDAuNDkyOTYyLCAwLjU5Nzc4NyIsIFwKLSAgICAgICAgICAiMC4xNTA4ODUsIDAuMjI1NjA4LCAwLjI5OTA2NSwgMC4zNTE1MDgsIDAuNDM1NDQxLCAwLjUwODg3MSwgMC42MTM3MDEiLCBcCi0gICAgICAgICAgIjAuMTYzMTcxLCAwLjIzNzg3NSwgMC4zMTEzMiwgMC4zNjM3ODMsIDAuNDQ3Njg3LCAwLjUyMTE1OSwgMC42MjU5NTQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzI1MTcsIDAuMTc3Mzk1LCAwLjMyNjE4MywgMC40MzI2MjYsIDAuNjAxOTA0LCAwLjc1MDAzMiwgMC45NjQ4NzQiLCBcCi0gICAgICAgICAgIjAuMDMyNTA1LCAwLjE3NzY1NiwgMC4zMjUyOTgsIDAuNDMyNjEyLCAwLjYwMTM5NiwgMC43NDk5NzcsIDAuOTY0OTE2IiwgXAotICAgICAgICAgICIwLjAzMjUwOCwgMC4xNzc2NDcsIDAuMzI1NjEzLCAwLjQzMjYwNywgMC42MDI3ODcsIDAuNzQ5OTkzLCAwLjk2NDkiLCBcCi0gICAgICAgICAgIjAuMDMyNTA3LCAwLjE3NzY4NCwgMC4zMjYzMTQsIDAuNDMyNjIyLCAwLjYwMTk4OCwgMC43NDk5NjgsIDAuOTY0OTk2IiwgXAotICAgICAgICAgICIwLjAzMjUwMywgMC4xNzc2NDEsIDAuMzI1NDc0LCAwLjQzMjY0MywgMC42MDI5MTgsIDAuNzUyMDM3LCAwLjk2MzEyMSIsIFwKLSAgICAgICAgICAiMC4wMzI3MjgsIDAuMTc3Njk5LCAwLjMyNjA5MSwgMC40MzE5NzgsIDAuNjAyMDQ5LCAwLjc0OTk5MSwgMC45NjQ5MzQiLCBcCi0gICAgICAgICAgIjAuMDMyOTAzLCAwLjE3NzY3NiwgMC4zMjYyNDQsIDAuNDMyNjgsIDAuNjAxODk5LCAwLjc1MDAwNCwgMC45NjQ5NjkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNzUzNSwgMC4wMDc2NzcsIDAuMDA3Njk3LCAwLjAwNzcwMywgMC4wMDc3MDgsIDAuMDA3NzExLCAwLjAwNzcxNyIsIFwKLSAgICAgICAgICAiMC4wMDc1MjMsIDAuMDA3NjY2LCAwLjAwNzY4NSwgMC4wMDc2OSwgMC4wMDc2OTUsIDAuMDA3Njk4LCAwLjAwNzciLCBcCi0gICAgICAgICAgIjAuMDA3NTE3LCAwLjAwNzY2NSwgMC4wMDc2ODYsIDAuMDA3NjkyLCAwLjAwNzY4NywgMC4wMDc2NzgsIDAuMDA3NjkyIiwgXAotICAgICAgICAgICIwLjAwNzUwOCwgMC4wMDc2NDksIDAuMDA3NjcxLCAwLjAwNzY3NiwgMC4wMDc2ODMsIDAuMDA3Njg0LCAwLjAwNzY4NiIsIFwKLSAgICAgICAgICAiMC4wMDc0OTUsIDAuMDA3NjQ0LCAwLjAwNzY2NiwgMC4wMDc2NzMsIDAuMDA3Njc5LCAwLjAwNzY4MywgMC4wMDc2ODYiLCBcCi0gICAgICAgICAgIjAuMDA3NDkyLCAwLjAwNzY0NywgMC4wMDc2NywgMC4wMDc2NzgsIDAuMDA3NjgzLCAwLjAwNzY5LCAwLjAwNzY5MSIsIFwKLSAgICAgICAgICAiMC4wMDc1MDMsIDAuMDA3NjQ2LCAwLjAwNzY2OCwgMC4wMDc2NzUsIDAuMDA3NjgxLCAwLjAwNzY4NCwgMC4wMDc2ODciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNjA2OSwgMC4wMDYyNzcsIDAuMDA2MzA4LCAwLjAwNjMxOCwgMC4wMDYzMjYsIDAuMDA2MzMsIDAuMDA2MzM1IiwgXAotICAgICAgICAgICIwLjAwNjA0OSwgMC4wMDYyNTgsIDAuMDA2Mjg5LCAwLjAwNjI5OCwgMC4wMDYzMDcsIDAuMDA2MzExLCAwLjAwNjMxNSIsIFwKLSAgICAgICAgICAiMC4wMDYwMzcsIDAuMDA2MjQ2LCAwLjAwNjI3NywgMC4wMDYyODcsIDAuMDA2Mjk1LCAwLjAwNjI5OSwgMC4wMDYzMDMiLCBcCi0gICAgICAgICAgIjAuMDA2MDIzLCAwLjAwNjIzNCwgMC4wMDYyNjUsIDAuMDA2Mjc1LCAwLjAwNjI4NCwgMC4wMDYyODgsIDAuMDA2MjkyIiwgXAotICAgICAgICAgICIwLjAwNjAxMSwgMC4wMDYyMjUsIDAuMDA2MjU5LCAwLjAwNjI3LCAwLjAwNjI3OSwgMC4wMDYyODQsIDAuMDA2Mjg4IiwgXAotICAgICAgICAgICIwLjAwNjAyLCAwLjAwNjIzNiwgMC4wMDYyNzEsIDAuMDA2MjgxLCAwLjAwNjI5MSwgMC4wMDYyOTYsIDAuMDA2MyIsIFwKLSAgICAgICAgICAiMC4wMDYwMzQsIDAuMDA2MjMzLCAwLjAwNjI2NiwgMC4wMDYyNzUsIDAuMDA2Mjg1LCAwLjAwNjI4OSwgMC4wMDYyOTQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNzY3LCAwLjAwNzgxMywgMC4wMDc4MzQsIDAuMDA3ODM5LCAwLjAwNzg0NCwgMC4wMDc4NDcsIDAuMDA3ODUxIiwgXAotICAgICAgICAgICIwLjAwNzY1OCwgMC4wMDc4LCAwLjAwNzgyMSwgMC4wMDc4MjgsIDAuMDA3ODMxLCAwLjAwNzgzNywgMC4wMDc4MzgiLCBcCi0gICAgICAgICAgIjAuMDA3NjUzLCAwLjAwNzc5MiwgMC4wMDc4MTUsIDAuMDA3ODE5LCAwLjAwNzgyNCwgMC4wMDc4MzgsIDAuMDA3ODMiLCBcCi0gICAgICAgICAgIjAuMDA3NjQyLCAwLjAwNzc4NCwgMC4wMDc4MDgsIDAuMDA3ODE3LCAwLjAwNzgyMSwgMC4wMDc4MjEsIDAuMDA3ODI5IiwgXAotICAgICAgICAgICIwLjAwNzYzMiwgMC4wMDc3ODIsIDAuMDA3ODA0LCAwLjAwNzgwNywgMC4wMDc4MTcsIDAuMDA3ODIxLCAwLjAwNzgyNyIsIFwKLSAgICAgICAgICAiMC4wMDc2MjYsIDAuMDA3Nzc2LCAwLjAwNzc5OCwgMC4wMDc4MDUsIDAuMDA3ODEyLCAwLjAwNzgxNiwgMC4wMDc4MTkiLCBcCi0gICAgICAgICAgIjAuMDA3NjQ0LCAwLjAwNzc3OCwgMC4wMDc4MDMsIDAuMDA3ODEsIDAuMDA3ODE2LCAwLjAwNzgxOSwgMC4wMDc4MjMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNTk1NSwgMC4wMDYxNjUsIDAuMDA2MTk3LCAwLjAwNjIwNywgMC4wMDYyMTYsIDAuMDA2MjIsIDAuMDA2MjI1IiwgXAotICAgICAgICAgICIwLjAwNTkzNSwgMC4wMDYxNDUsIDAuMDA2MTc3LCAwLjAwNjE4NywgMC4wMDYxOTYsIDAuMDA2MiwgMC4wMDYyMDUiLCBcCi0gICAgICAgICAgIjAuMDA1OTIyLCAwLjAwNjEzMiwgMC4wMDYxNjQsIDAuMDA2MTc0LCAwLjAwNjE4MywgMC4wMDYxODgsIDAuMDA2MTkyIiwgXAotICAgICAgICAgICIwLjAwNTkwOSwgMC4wMDYxMjEsIDAuMDA2MTU0LCAwLjAwNjE2NCwgMC4wMDYxNzMsIDAuMDA2MTc4LCAwLjAwNjE4MiIsIFwKLSAgICAgICAgICAiMC4wMDU4OTgsIDAuMDA2MTE0LCAwLjAwNjE0OCwgMC4wMDYxNTksIDAuMDA2MTY5LCAwLjAwNjE3MywgMC4wMDYxNzgiLCBcCi0gICAgICAgICAgIjAuMDA1OTE1LCAwLjAwNjEyOSwgMC4wMDYxNjMsIDAuMDA2MTc0LCAwLjAwNjE4NCwgMC4wMDYxOSwgMC4wMDYxOTQiLCBcCi0gICAgICAgICAgIjAuMDA1OTAyLCAwLjAwNjExNywgMC4wMDYxNTIsIDAuMDA2MTYzLCAwLjAwNjE3NCwgMC4wMDYxNzksIDAuMDA2MTg0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUzAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA3Mjk3LCAwLjAwNzQzNywgMC4wMDc0NTcsIDAuMDA3NDYzLCAwLjAwNzQ2OCwgMC4wMDc0NzEsIDAuMDA3NDc0IiwgXAotICAgICAgICAgICIwLjAwNzI3OSwgMC4wMDc0MTksIDAuMDA3NDQ3LCAwLjAwNzQ0NCwgMC4wMDc0NSwgMC4wMDc0NCwgMC4wMDc0NDQiLCBcCi0gICAgICAgICAgIjAuMDA3MjgsIDAuMDA3NDIxLCAwLjAwNzQ0MSwgMC4wMDc0NDQsIDAuMDA3NDUsIDAuMDA3NDU1LCAwLjAwNzQ2IiwgXAotICAgICAgICAgICIwLjAwNzI4MywgMC4wMDc0MjMsIDAuMDA3NDQyLCAwLjAwNzQ0OCwgMC4wMDc0NDMsIDAuMDA3NDY1LCAwLjAwNzQ1OCIsIFwKLSAgICAgICAgICAiMC4wMDcyODYsIDAuMDA3NDI4LCAwLjAwNzQ0OSwgMC4wMDc0NjEsIDAuMDA3NDY1LCAwLjAwNzQ2MywgMC4wMDc0NzQiLCBcCi0gICAgICAgICAgIjAuMDA3MzA3LCAwLjAwNzQ2MSwgMC4wMDc0ODIsIDAuMDA3NDksIDAuMDA3NDkxLCAwLjAwNzQ5OSwgMC4wMDc1MDEiLCBcCi0gICAgICAgICAgIjAuMDA3MzQyLCAwLjAwNzQ4MiwgMC4wMDc0OTcsIDAuMDA3NTAxLCAwLjAwNzUwOCwgMC4wMDc1MTcsIDAuMDA3NTA5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDc4MDcsIDAuMDA4MDE2LCAwLjAwODA0NywgMC4wMDgwNTYsIDAuMDA4MDY0LCAwLjAwODA2OCwgMC4wMDgwNzMiLCBcCi0gICAgICAgICAgIjAuMDA3NzkzLCAwLjAwODAwMSwgMC4wMDgwMzIsIDAuMDA4MDQxLCAwLjAwODA0OSwgMC4wMDgwNTMsIDAuMDA4MDU4IiwgXAotICAgICAgICAgICIwLjAwNzc5MiwgMC4wMDgwMDEsIDAuMDA4MDMzLCAwLjAwODA0MiwgMC4wMDgwNTEsIDAuMDA4MDU1LCAwLjAwODA1OSIsIFwKLSAgICAgICAgICAiMC4wMDc3OTksIDAuMDA4MDA3LCAwLjAwODAzOCwgMC4wMDgwNDgsIDAuMDA4MDU2LCAwLjAwODA2LCAwLjAwODA2NSIsIFwKLSAgICAgICAgICAiMC4wMDc3OTksIDAuMDA4MDEzLCAwLjAwODA0NiwgMC4wMDgwNTUsIDAuMDA4MDY0LCAwLjAwODA2NCwgMC4wMDgwNzMiLCBcCi0gICAgICAgICAgIjAuMDA3ODM2LCAwLjAwODA0NSwgMC4wMDgwODIsIDAuMDA4MDg3LCAwLjAwODA5OCwgMC4wMDgxLCAwLjAwODEwNCIsIFwKLSAgICAgICAgICAiMC4wMDc4NTUsIDAuMDA4MDYzLCAwLjAwODA5MywgMC4wMDgxMDIsIDAuMDA4MTA3LCAwLjAwODExMSwgMC4wMDgxMTkiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IE5BTkQ0QkJYMSAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKE5BTkQ0QkJYMSkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjE5ODMxMzsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQU4pICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYxODY1OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYxODEyNTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2MTg2NTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA0ODcsIDAuMDAwNDYxLCAwLjAwMDQ2MywgMC4wMDA0NjQsIDAuMDAwNDc0LCAwLjAwMDQ5OSwgMC4wMDA1MjQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDE2MDMsIDAuMDAxNTg0LCAwLjAwMTU4MywgMC4wMDE1ODgsIDAuMDAxNiwgMC4wMDE2MjcsIDAuMDAxNjQ5Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCTikgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjExMTI5OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYxMTA2ODsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2MTExMjk7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNDMxLCAwLjAwMDQwNiwgMC4wMDA0MDIsIDAuMDAwNDA4LCAwLjAwMDQxOSwgMC4wMDA0NDYsIDAuMDAwNDcxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxNjQ0LCAwLjAwMTYyNSwgMC4wMDE2MjMsIDAuMDAxNjI4LCAwLjAwMTY0LCAwLjAwMTY2NiwgMC4wMDE2ODgiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEMpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDkxNzE0MzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA5MTcxNDM7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwOTE1MjY4OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDQwOSwgMC4wMDA0MDksIDAuMDAwNDA5LCAwLjAwMDQwOSwgMC4wMDA0MDksIDAuMDAwNDA5LCAwLjAwMDQwOSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDQzMywgMC4wMDA0MTMsIDAuMDAwNDExLCAwLjAwMDQxMSwgMC4wMDA0MSwgMC4wMDA0MSwgMC4wMDA0MSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwOTM4OTkzOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDkzODM3NTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA5Mzg5OTM7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjQ5LCAwLjAwMDI0OSwgMC4wMDAyNDksIDAuMDAwMjQ5LCAwLjAwMDI0OSwgMC4wMDAyNDksIDAuMDAwMjQ4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNDY0LCAwLjAwMDQ2NCwgMC4wMDA0NjQsIDAuMDAwNDY1LCAwLjAwMDQ2NSwgMC4wMDA0NjUsIDAuMDAwNDY1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuMDY5MjMyNzsKLSAgICBmdW5jdGlvbiA6ICIoISgoKCghQk4pICghQU4pKSBDKSBEKSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkFOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNzE4OTUsIDAuMDk2MzUzLCAwLjIzNDAxNCwgMC4zNTUwOTUsIDAuNTE2NzQzLCAwLjgzOTUwNiwgMS4wNDE3IiwgXAotICAgICAgICAgICIwLjA4MjA1MSwgMC4xMDY1MDEsIDAuMjQ0MTE3LCAwLjM2NTM4MSwgMC41MjY3NzMsIDAuODUwMTc3LCAxLjA1MTciLCBcCi0gICAgICAgICAgIjAuMDkzNDgxLCAwLjExNzkzLCAwLjI1NTYwNCwgMC4zNzY3OTcsIDAuNTM4MTg5LCAwLjg2MTY0NCwgMS4wNjI5OCIsIFwKLSAgICAgICAgICAiMC4xMDMxOTYsIDAuMTI3NjMzLCAwLjI2NTE4MiwgMC4zODY0MDksIDAuNTQ4MDgxLCAwLjg3MDY1NSwgMS4wNzI2MSIsIFwKLSAgICAgICAgICAiMC4xMTEyMzgsIDAuMTM1NzAzLCAwLjI3MzMyNywgMC4zOTQ1ODIsIDAuNTU2MDA4LCAwLjg3ODg2OCwgMS4wODExOCIsIFwKLSAgICAgICAgICAiMC4xMjIyNTUsIDAuMTQ2NTU5LCAwLjI4NDA4MSwgMC40MDUzMTEsIDAuNTY2NzQsIDAuODg5NzA4LCAxLjA5MTQ0IiwgXAotICAgICAgICAgICIwLjEzMDg2NCwgMC4xNTU0MjIsIDAuMjkyNDIzLCAwLjQxNDIxMywgMC41NzUxOTgsIDAuODk4NjgsIDEuMDk5NzUiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTAzOTI0LCAwLjE1MzY0MiwgMC40MzYwNjMsIDAuNjg0OTAyLCAxLjAxNjgyLCAxLjY4MTM5LCAyLjA5Njk0IiwgXAotICAgICAgICAgICIwLjEwMzkyMSwgMC4xNTM2NSwgMC40MzU5MTUsIDAuNjg1MzQ4LCAxLjAxNzEsIDEuNjgxODgsIDIuMDk2NTQiLCBcCi0gICAgICAgICAgIjAuMTA0MDU1LCAwLjE1MzU4NCwgMC40MzU4NzEsIDAuNjg1MzQxLCAxLjAxNzA4LCAxLjY4MTksIDIuMDk2OTkiLCBcCi0gICAgICAgICAgIjAuMTA0MzYxLCAwLjE1Mzc2NiwgMC40MzU3NiwgMC42ODQ5NCwgMS4wMTc0OCwgMS42ODE3OCwgMi4wOTY0MSIsIFwKLSAgICAgICAgICAiMC4xMDQ2NDEsIDAuMTU0MDAzLCAwLjQzNTc4NiwgMC42ODUwNjYsIDEuMDE2OTksIDEuNjgxMjEsIDIuMDk3MDciLCBcCi0gICAgICAgICAgIjAuMTA1MzY4LCAwLjE1NDMzOSwgMC40MzYxMzQsIDAuNjg1MDQ2LCAxLjAxNjk2LCAxLjY4MTk5LCAyLjA5NjQ2IiwgXAotICAgICAgICAgICIwLjEwNjE2OSwgMC4xNTQ3MDMsIDAuNDM1OTc1LCAwLjY4NDg3OCwgMS4wMTcwOCwgMS42ODEyOSwgMi4wOTY0NCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMDU4OTcsIDAuMjkzNDIsIDAuNzg4OTkxLCAxLjIyNjA1LCAxLjgwOTQ4LCAyLjk3NDUsIDMuNzAyNTMiLCBcCi0gICAgICAgICAgIjAuMjE1NjMzLCAwLjMwMzE4MiwgMC43OTg4OTgsIDEuMjM2MjYsIDEuODIwMTMsIDIuOTg0MjcsIDMuNzEyMjIiLCBcCi0gICAgICAgICAgIjAuMjI1OTY4LCAwLjMxMzUzNywgMC44MDk1NzIsIDEuMjQ3MywgMS44MjkyNCwgMi45OTUzOCwgMy43MjI2NCIsIFwKLSAgICAgICAgICAiMC4yMzQyNDksIDAuMzIxODg2LCAwLjgxNzYxLCAxLjI1NSwgMS44Mzg4OSwgMy4wMDMxNywgMy43MzEyNCIsIFwKLSAgICAgICAgICAiMC4yNDEwODMsIDAuMzI4Njg0LCAwLjgyNDgxOCwgMS4yNjIxMSwgMS44NDU5OCwgMy4wMTAwMSwgMy43MzgxIiwgXAotICAgICAgICAgICIwLjI1MDE5NywgMC4zMzc4NDksIDAuODMzNjc0LCAxLjI3MDkxLCAxLjg1NDEzLCAzLjAxOTI3LCAzLjc0NzU1IiwgXAotICAgICAgICAgICIwLjI1NzAwOCwgMC4zNDQ2NDMsIDAuODQwOTE2LCAxLjI3Nzc4LCAxLjg2MTIsIDMuMDI2MjEsIDMuNzU0MzEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzM3Nzk3LCAwLjUwNzIzLCAxLjQ2OTMzLCAyLjMxNzgyLCAzLjQ1NTMyLCA1LjcxMjgxLCA3LjEyMzQ4IiwgXAotICAgICAgICAgICIwLjMzODA4MSwgMC41MDc1MDIsIDEuNDcxMTcsIDIuMzIxNSwgMy40NTcxNCwgNS43MTI2NiwgNy4xMjUzOCIsIFwKLSAgICAgICAgICAiMC4zMzc4MzksIDAuNTA3NzMyLCAxLjQ3MTgsIDIuMzE2MywgMy40NTM0NywgNS43MTU0NiwgNy4xMjI5IiwgXAotICAgICAgICAgICIwLjMzODA3MiwgMC41MDc3MzIsIDEuNDY5NDIsIDIuMzIxMDEsIDMuNDU2OTIsIDUuNzEzMjUsIDcuMTIzMDciLCBcCi0gICAgICAgICAgIjAuMzM3ODU1LCAwLjUwNzE3NiwgMS40NzE4NCwgMi4zMjE2OSwgMy40NDcxMSwgNS43MTMyOCwgNy4xMjMxMyIsIFwKLSAgICAgICAgICAiMC4zMzgwNTIsIDAuNTA3MjU2LCAxLjQ3MDcyLCAyLjMxODAxLCAzLjQ1MDIsIDUuNzEzMzMsIDcuMTIzNTMiLCBcCi0gICAgICAgICAgIjAuMzM3NzE5LCAwLjUwODA5OCwgMS40Njc4OCwgMi4zMTgxOCwgMy40NDgzNSwgNS43MTMyNiwgNy4xMjM0MyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCTiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDcyNTExLCAwLjA5NzE4NSwgMC4yMzY0OTUsIDAuMzU5MTk5LCAwLjUyMzE3OCwgMC44NTA0NTMsIDEuMDU1NjEiLCBcCi0gICAgICAgICAgIjAuMDgyNjg4LCAwLjEwNzM3MSwgMC4yNDY4MDUsIDAuMzY5NTk3LCAwLjUzMzI4NCwgMC44NjA5MywgMS4wNjU1NiIsIFwKLSAgICAgICAgICAiMC4wOTQ0MzYsIDAuMTE5MTA5LCAwLjI1ODM3NywgMC4zODEyOTcsIDAuNTQ0OTY5LCAwLjg3MjQ4OSwgMS4wNzczNyIsIFwKLSAgICAgICAgICAiMC4xMDQxMDQsIDAuMTI4NzY5LCAwLjI2ODAzNiwgMC4zOTEwMDEsIDAuNTU0NjIyLCAwLjg4MjMwMiwgMS4wODY4NCIsIFwKLSAgICAgICAgICAiMC4xMTI1NjgsIDAuMTM3MjYyLCAwLjI3NjY1NywgMC4zOTkzOTQsIDAuNTYzMTk0LCAwLjg5MDU1OCwgMS4wOTU3NSIsIFwKLSAgICAgICAgICAiMC4xMjM5MDMsIDAuMTQ4NDYyLCAwLjI4NzczNSwgMC40MTA1MiwgMC41NzQyODQsIDAuOTAxNjcsIDEuMTA2MzgiLCBcCi0gICAgICAgICAgIjAuMTMyMzk3LCAwLjE1NzIwNCwgMC4yOTYzMTIsIDAuNDE5MjAxLCAwLjU4MzY4OSwgMC45MTAxODgsIDEuMTE1NDQiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTAzNjY2LCAwLjE1NCwgMC40NDA0ODgsIDAuNjkzMDAxLCAxLjAyOTgzLCAxLjcwMzk3LCAyLjEyNTYiLCBcCi0gICAgICAgICAgIjAuMTAzNjU4LCAwLjE1NDAzNiwgMC40NDA0MjksIDAuNjkyOTg2LCAxLjAyOTkzLCAxLjcwNDUyLCAyLjEyNTk3IiwgXAotICAgICAgICAgICIwLjEwMzczOCwgMC4xNTQwNiwgMC40NDAyOTgsIDAuNjkzMDMsIDEuMDI5OTQsIDEuNzA0NjIsIDIuMTI1OTIiLCBcCi0gICAgICAgICAgIjAuMTA0MTI4LCAwLjE1NDIxNywgMC40NDAyNjgsIDAuNjkzMjA4LCAxLjAyOTk0LCAxLjcwNDY0LCAyLjEyNjA2IiwgXAotICAgICAgICAgICIwLjEwNDQ1LCAwLjE1NDQ5OCwgMC40NDAzMDIsIDAuNjkzMjI4LCAxLjAyOTkyLCAxLjcwNDE1LCAyLjEyNTk5IiwgXAotICAgICAgICAgICIwLjEwNTE2NSwgMC4xNTQ4MTEsIDAuNDQwNDI2LCAwLjY5MzAzNCwgMS4wMzAzNSwgMS43MDQxOCwgMi4xMjU2OSIsIFwKLSAgICAgICAgICAiMC4xMDYwMTQsIDAuMTU1MjUxLCAwLjQ0MDM3NCwgMC42OTMyMTYsIDEuMDMwMSwgMS43MDQsIDIuMTI1MTgiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjA0MjYsIDAuMjkxNzU2LCAwLjc4NzUwMiwgMS4yMjUwMSwgMS44MDgwNiwgMi45NzMwOSwgMy43MDA3NyIsIFwKLSAgICAgICAgICAiMC4yMTQwMTIsIDAuMzAxNDgxLCAwLjc5NzUxOSwgMS4yMzQ2MSwgMS44MTY5LCAyLjk4MzI4LCAzLjcxMDY4IiwgXAotICAgICAgICAgICIwLjIyNDUzMywgMC4zMTIwNzIsIDAuODA3OTI2LCAxLjI0NTI5LCAxLjgyODA4LCAyLjk5NDA2LCAzLjcyMTEzIiwgXAotICAgICAgICAgICIwLjIzMzAzNSwgMC4zMjA2ODMsIDAuODE2ODQ1LCAxLjI1MzQ4LCAxLjgzNzA2LCAzLjAwMjA4LCAzLjczMDEzIiwgXAotICAgICAgICAgICIwLjI0MDE5MSwgMC4zMjc3MDEsIDAuODI0MDE2LCAxLjI2MTI3LCAxLjg0NTE0LCAzLjAwOTE3LCAzLjczNzIiLCBcCi0gICAgICAgICAgIjAuMjQ5NTQyLCAwLjMzNzI4OCwgMC44MzMwMDcsIDEuMjcwNDIsIDEuODUzNTksIDMuMDE4NjIsIDMuNzQ2ODgiLCBcCi0gICAgICAgICAgIjAuMjU2NjE4LCAwLjM0NDI1OSwgMC44NDAzMDcsIDEuMjc3NiwgMS44NjAzNSwgMy4wMjU4OCwgMy43NTM4OCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMzc4NTksIDAuNTA3NzQyLCAxLjQ3MTM4LCAyLjMyMjEsIDMuNDQ3MzIsIDUuNzA3NCwgNy4xMjU0NCIsIFwKLSAgICAgICAgICAiMC4zMzc5ODEsIDAuNTA3Mjg3LCAxLjQ3MTg5LCAyLjMxNjY2LCAzLjQ1MDY3LCA1LjcxNTU2LCA3LjEyNTUyIiwgXAotICAgICAgICAgICIwLjMzNzkyNiwgMC41MDcyOTYsIDEuNDY5NDMsIDIuMzE3NDksIDMuNDU0MjksIDUuNzA2NzYsIDcuMTI1MjMiLCBcCi0gICAgICAgICAgIjAuMzM3NDQ1LCAwLjUwNzc1NywgMS40Njc4OCwgMi4zMTc5OSwgMy40NTUzNywgNS43MTI2MiwgNy4xMjM0OCIsIFwKLSAgICAgICAgICAiMC4zMzcwOTMsIDAuNTA3MjU4LCAxLjQ3MTk2LCAyLjMyMTczLCAzLjQ0NzA5LCA1LjcxMzI1LCA3LjEyMzA3IiwgXAotICAgICAgICAgICIwLjMzODA3LCAwLjUwNzI2MiwgMS40NzE5OCwgMi4zMTc4OSwgMy40NTQzOCwgNS43MTM3NCwgNy4xMjM2MiIsIFwKLSAgICAgICAgICAiMC4zMzc3MjksIDAuNTA3NjAyLCAxLjQ2ODEyLCAyLjMyMDg2LCAzLjQ1LCA1LjcxMzIzLCA3LjEyNTQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDUzMTg0LCAwLjA3Nzc3OCwgMC4yMTcxMDcsIDAuMzM5OTcsIDAuNTAzNTAxLCAwLjgzMDg4NiwgMS4wMzYxMSIsIFwKLSAgICAgICAgICAiMC4wNjMwNzgsIDAuMDg3NjkzLCAwLjIyNjkzNiwgMC4zNDk2NTQsIDAuNTEzNDE4LCAwLjg0MTE1MiwgMS4wNDU0NSIsIFwKLSAgICAgICAgICAiMC4wNzU4NTgsIDAuMTAwNDgzLCAwLjIzOTY0NCwgMC4zNjIyMzgsIDAuNTI2MTU4LCAwLjg1Mzc0MywgMS4wNTg1MyIsIFwKLSAgICAgICAgICAiMC4wODgyODEsIDAuMTEyNDYxLCAwLjI1MTY5MiwgMC4zNzQ0NzIsIDAuNTM4MTY4LCAwLjg2MzkzMSwgMS4wNjg5OSIsIFwKLSAgICAgICAgICAiMC4xMDA5MzEsIDAuMTI1NDA0LCAwLjI2NDIxMywgMC4zODY4MjcsIDAuNTUwNTk0LCAwLjg3NzY3OCwgMS4wODAzOCIsIFwKLSAgICAgICAgICAiMC4xMTk2NzUsIDAuMTQ1NzEzLCAwLjI4Mzk4NCwgMC40MDcwNjcsIDAuNTcwNDAxLCAwLjg5ODAzOSwgMS4wOTk4NyIsIFwKLSAgICAgICAgICAiMC4xMzM4NTMsIDAuMTYyOTYyLCAwLjMwMTUwNCwgMC40MjQ1OTksIDAuNTg3OTIyLCAwLjkxNTM2MiwgMS4xMTcwNSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDA5MjYsIDAuMTUxNTAzLCAwLjQzODA2MywgMC42OTA4MzYsIDEuMDI3NTYsIDEuNzAxOTQsIDIuMTIzOTgiLCBcCi0gICAgICAgICAgIjAuMTAxMDM1LCAwLjE1MTQ0OCwgMC40Mzc5LCAwLjY5MDc0LCAxLjAyNzgxLCAxLjcwMjA2LCAyLjEyMzI1IiwgXAotICAgICAgICAgICIwLjEwNDQ0NSwgMC4xNTI4NDcsIDAuNDM3ODUzLCAwLjY5MDQ5MSwgMS4wMjc3NiwgMS43MDIyMSwgMi4xMjI4OCIsIFwKLSAgICAgICAgICAiMC4xMTA3NzcsIDAuMTU3NDU4LCAwLjQzNzk4NSwgMC42OTA4MzIsIDEuMDI3NzcsIDEuNzAyLCAyLjEyMjk3IiwgXAotICAgICAgICAgICIwLjExODIxNywgMC4xNjMyMTEsIDAuNDM4NDgzLCAwLjY5MDc3NCwgMS4wMjc3MywgMS43MDI0OCwgMi4xMjI2OCIsIFwKLSAgICAgICAgICAiMC4xMzE5NywgMC4xNzQ2MTcsIDAuNDQyMzUxLCAwLjY5MTAwNCwgMS4wMjc3OCwgMS43MDE5MSwgMi4xMjMxNSIsIFwKLSAgICAgICAgICAiMC4xNDUxNjYsIDAuMTg2MjIxLCAwLjQ0Nzc3MSwgMC42OTI2MjgsIDEuMDI3ODIsIDEuNzAyMTUsIDIuMTIyMzYiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTgyNjc1LCAwLjI3MDE1NywgMC43NjU4NTYsIDEuMjAzNTcsIDEuNzg1NzIsIDIuOTUxNzcsIDMuNjc4ODEiLCBcCi0gICAgICAgICAgIjAuMTkwNzA4LCAwLjI3ODI5LCAwLjc3NDAwNywgMS4yMTE1NCwgMS43OTUxNywgMi45NTk1OSwgMy42ODc2NyIsIFwKLSAgICAgICAgICAiMC4yMDA4NDcsIDAuMjg4NTU2LCAwLjc4NDU4MiwgMS4yMjIxMywgMS44MDQ4MywgMi45NzA0MywgMy42OTgyOCIsIFwKLSAgICAgICAgICAiMC4yMTA5NzIsIDAuMjk4NzY0LCAwLjc5NDc0NSwgMS4yMzIyMiwgMS44MTUyNywgMi45ODEwNiwgMy43MDg1NSIsIFwKLSAgICAgICAgICAiMC4yMjEyMTcsIDAuMzA3OTQ0LCAwLjgwNTIzLCAxLjI0MzA5LCAxLjgyNjU2LCAyLjk5MTAyLCAzLjcxOTE0IiwgXAotICAgICAgICAgICIwLjIzNzUwOCwgMC4zMjUzNCwgMC44MjE4NzEsIDEuMjU5MTYsIDEuODQyOTksIDMuMDA4MDUsIDMuNzM1OTEiLCBcCi0gICAgICAgICAgIjAuMjUyMjgzLCAwLjMzOTc0MywgMC44MzYyMjcsIDEuMjczOTksIDEuODU2NjgsIDMuMDIyMzMsIDMuNzUwNDQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMzM4MTE5LCAwLjUwODA5NiwgMS40NzE3MiwgMi4zMjI4MywgMy40NTQyMiwgNS43MTU2NSwgNy4xMjUxOSIsIFwKLSAgICAgICAgICAiMC4zMzgwNzYsIDAuNTA4MTY3LCAxLjQ2ODE4LCAyLjMyMTU4LCAzLjQ0Njc1LCA1LjcxMzMzLCA3LjEyMzMxIiwgXAotICAgICAgICAgICIwLjMzNzQ4NywgMC41MDcyNjMsIDEuNDY5NTUsIDIuMzIxODMsIDMuNDU0NDYsIDUuNzA4NzMsIDcuMTIzODUiLCBcCi0gICAgICAgICAgIjAuMzM4MTk1LCAwLjUwNzcwMSwgMS40NjkzNywgMi4zMTgwNywgMy40NDc2NiwgNS43MTUwOSwgNy4xMjU0NSIsIFwKLSAgICAgICAgICAiMC4zMzkzMSwgMC41MDcxOTksIDEuNDY5MzMsIDIuMzIyMDMsIDMuNDU2OTEsIDUuNzEzMjksIDcuMTIzMzQiLCBcCi0gICAgICAgICAgIjAuMzQyNjkxLCAwLjUwOTcwOCwgMS40NzI1NywgMi4zMTY1OSwgMy40NTYwMSwgNS43MTAzMSwgNy4xMjU2MyIsIFwKLSAgICAgICAgICAiMC4zNDgxMDEsIDAuNTEyNDk5LCAxLjQ3MjA4LCAyLjMyMDk1LCAzLjQ1NywgNS43MTQ1MywgNy4xMjMxNyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJEIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTE2MzIsIDAuMDc2MTgxLCAwLjIxNTM1NywgMC4zMzgzNjIsIDAuNTAyMjI5LCAwLjgyOTk2OCwgMS4wMzM5OSIsIFwKLSAgICAgICAgICAiMC4wNjE1ODUsIDAuMDg2MTk4LCAwLjIyNTQwOCwgMC4zNDgxMDgsIDAuNTExODQxLCAwLjgzOTAzNywgMS4wNDQ4MSIsIFwKLSAgICAgICAgICAiMC4wNzQyNTcsIDAuMDk4ODU3LCAwLjIzODAzNiwgMC4zNjA3NjMsIDAuNTI0Njg2LCAwLjg1MjI2NiwgMS4wNTYzMSIsIFwKLSAgICAgICAgICAiMC4wODY4NTMsIDAuMTExMDEsIDAuMjUwMjM5LCAwLjM3Mjg4LCAwLjUzNjU5MywgMC44NjI0NzIsIDEuMDY3MDEiLCBcCi0gICAgICAgICAgIjAuMDk5NjU0LCAwLjEyNDA0NCwgMC4yNjI4MTksIDAuMzg1NDE1LCAwLjU0OTExNywgMC44NzQ1OTcsIDEuMDc5MjkiLCBcCi0gICAgICAgICAgIjAuMTE4MDM2LCAwLjE0NDQzMiwgMC4yODI2NTQsIDAuNDA1Nzc3LCAwLjU2OTA4MiwgMC44OTQ2NjYsIDEuMDk5MzUiLCBcCi0gICAgICAgICAgIjAuMTMxNzM1LCAwLjE2MTU4OSwgMC4zMDAyMDYsIDAuNDIzNDQ1LCAwLjU4Njc1MywgMC45MTIxNzcsIDEuMTE2MyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTkzNzQsIDAuMTQ5OTMsIDAuNDM2OTMxLCAwLjY4OTM5OSwgMS4wMjY2NCwgMS43MDEwNiwgMi4xMjE4NCIsIFwKLSAgICAgICAgICAiMC4wOTk0NzIsIDAuMTQ5NzIsIDAuNDM2Mjk2LCAwLjY4ODg1NCwgMS4wMjY5NCwgMS43MDMsIDIuMTIyMiIsIFwKLSAgICAgICAgICAiMC4xMDMxMTIsIDAuMTUxMzI0LCAwLjQzNjUwNywgMC42ODg4NTYsIDEuMDI2NTgsIDEuNzAwMzIsIDIuMTI0NzkiLCBcCi0gICAgICAgICAgIjAuMTA5MjYzLCAwLjE1NjEyOSwgMC40MzY1MSwgMC42OTAxMDksIDEuMDI1ODIsIDEuNzAyOTIsIDIuMTIwOTEiLCBcCi0gICAgICAgICAgIjAuMTE2NzIxLCAwLjE2MTY3OCwgMC40Mzc2MywgMC42ODg5OCwgMS4wMjYyOCwgMS43MDMwNSwgMi4xMjUyOCIsIFwKLSAgICAgICAgICAiMC4xMzAyODEsIDAuMTczMDA0LCAwLjQ0MTQyLCAwLjY4OTQwMSwgMS4wMjYwMSwgMS43MDI4MSwgMi4xMjUxMSIsIFwKLSAgICAgICAgICAiMC4xNDQ0NzgsIDAuMTg0MzE4LCAwLjQ0NjkyNSwgMC42OTExMjMsIDEuMDI3NjIsIDEuNzAwNzUsIDIuMTI1OTUiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTc2MDc0LCAwLjI2MzU3OCwgMC43NTkzNTEsIDEuMTk2NDIsIDEuNzc4ODIsIDIuOTQ1MjUsIDMuNjcyNDQiLCBcCi0gICAgICAgICAgIjAuMTg0MTA0LCAwLjI3MTc4NiwgMC43Njc0MjcsIDEuMjA0NjIsIDEuNzg3MjgsIDIuOTUyODEsIDMuNjgwOTYiLCBcCi0gICAgICAgICAgIjAuMTk0MTA0LCAwLjI4MTc4NSwgMC43Nzc3OTMsIDEuMjE1MywgMS43OTg4NiwgMi45NjMzOSwgMy42OTE0OSIsIFwKLSAgICAgICAgICAiMC4yMDQ1NzQsIDAuMjkyNDM5LCAwLjc4ODc5NSwgMS4yMjYxNCwgMS44MDkyNCwgMi45NzQwMywgMy43MDIxMyIsIFwKLSAgICAgICAgICAiMC4yMTQ4NTUsIDAuMzAyNDQ0LCAwLjc5ODcwNywgMS4yMzYwOSwgMS44MTkzOSwgMi45ODQ0NywgMy43MTI0NSIsIFwKLSAgICAgICAgICAiMC4yMzE1NywgMC4zMTkxNywgMC44MTUxNTQsIDEuMjUyMjUsIDEuODM1OCwgMy4wMDA5MiwgMy43MjkwNCIsIFwKLSAgICAgICAgICAiMC4yNDY2ODUsIDAuMzMzNzQyLCAwLjgyOTY2NiwgMS4yNjcwMiwgMS44NDk5NywgMy4wMTU1MywgMy43NDM2OCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMzgwNywgMC41MDczMDUsIDEuNDY4MTEsIDIuMzE4NDYsIDMuNDQ5NzcsIDUuNzE1NTgsIDcuMTIzIiwgXAotICAgICAgICAgICIwLjMzNzQxNCwgMC41MDc4MjIsIDEuNDY5MTksIDIuMzE4MDksIDMuNDU2NDEsIDUuNzE0NiwgNy4xMjUzNiIsIFwKLSAgICAgICAgICAiMC4zMzgwMTIsIDAuNTA4MTY3LCAxLjQ3MDk2LCAyLjMyMTYsIDMuNDU2NDgsIDUuNzEzMzgsIDcuMTIzNDEiLCBcCi0gICAgICAgICAgIjAuMzM3NDMsIDAuNTA3OTY0LCAxLjQ3MjA0LCAyLjMyMjA4LCAzLjQ0NzQ1LCA1LjcxMzM5LCA3LjEyMzI1IiwgXAotICAgICAgICAgICIwLjMzOTYwOSwgMC41MDcxNzcsIDEuNDY4NDgsIDIuMzIxMzIsIDMuNDU1NzUsIDUuNzExMTQsIDcuMTIzNTkiLCBcCi0gICAgICAgICAgIjAuMzQ1MDA3LCAwLjUxMDM3OSwgMS40NzA5NiwgMi4zMTg1MiwgMy40NTQ3MiwgNS43MTQ1OSwgNy4xMjU1MiIsIFwKLSAgICAgICAgICAiMC4zNTE5MDUsIDAuNTEzNDA4LCAxLjQ2OTQsIDIuMzIwNDQsIDMuNDUwMDgsIDUuNzEzMjEsIDcuMTIzMzciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzMTEzLCAwLjAwMzExMywgMC4wMDMxMTMsIDAuMDAzMTE1LCAwLjAwMzExMywgMC4wMDMxMTEsIDAuMDAzMTE0IiwgXAotICAgICAgICAgICIwLjAwMzA4NiwgMC4wMDMwODcsIDAuMDAzMDg3LCAwLjAwMzA4NywgMC4wMDMwODcsIDAuMDAzMDg2LCAwLjAwMzA4NSIsIFwKLSAgICAgICAgICAiMC4wMDMwODQsIDAuMDAzMDg1LCAwLjAwMzA4NiwgMC4wMDMwODYsIDAuMDAzMDg2LCAwLjAwMzA4NSwgMC4wMDMwODUiLCBcCi0gICAgICAgICAgIjAuMDAzMDg2LCAwLjAwMzA4NywgMC4wMDMwODksIDAuMDAzMDg5LCAwLjAwMzA4OSwgMC4wMDMwODksIDAuMDAzMDg4IiwgXAotICAgICAgICAgICIwLjAwMzA5OCwgMC4wMDMwOTksIDAuMDAzMTAxLCAwLjAwMzEwMSwgMC4wMDMxLCAwLjAwMzEsIDAuMDAzMDk5IiwgXAotICAgICAgICAgICIwLjAwMzEyMiwgMC4wMDMxMjQsIDAuMDAzMTI2LCAwLjAwMzEyNiwgMC4wMDMxMjYsIDAuMDAzMTI1LCAwLjAwMzEyNSIsIFwKLSAgICAgICAgICAiMC4wMDMxNDUsIDAuMDAzMTQ2LCAwLjAwMzE0MiwgMC4wMDMxNDksIDAuMDAzMTQzLCAwLjAwMzE0OCwgMC4wMDMxNDEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDMwMjUsIDAuMDAzMDI4LCAwLjAwMzAzMiwgMC4wMDMwMzMsIDAuMDAzMDM0LCAwLjAwMzAzNCwgMC4wMDMwMzQiLCBcCi0gICAgICAgICAgIjAuMDAyOTk4LCAwLjAwMzAwMywgMC4wMDMwMSwgMC4wMDMwMTIsIDAuMDAzMDEzLCAwLjAwMzAxMywgMC4wMDMwMTMiLCBcCi0gICAgICAgICAgIjAuMDAyOTk1LCAwLjAwMzAwMiwgMC4wMDMwMTMsIDAuMDAzMDE1LCAwLjAwMzAxNiwgMC4wMDMwMTgsIDAuMDAzMDE4IiwgXAotICAgICAgICAgICIwLjAwMjk5MiwgMC4wMDMsIDAuMDAzMDEzLCAwLjAwMzAxNiwgMC4wMDMwMTgsIDAuMDAzMDE5LCAwLjAwMzAyIiwgXAotICAgICAgICAgICIwLjAwMjk5OSwgMC4wMDMwMDgsIDAuMDAzMDI0LCAwLjAwMzAyNywgMC4wMDMwMjksIDAuMDAzMDMxLCAwLjAwMzAzMSIsIFwKLSAgICAgICAgICAiMC4wMDMwMTUsIDAuMDAzMDI1LCAwLjAwMzA0MiwgMC4wMDMwNDgsIDAuMDAzMDQ4LCAwLjAwMzA1LCAwLjAwMzA1MyIsIFwKLSAgICAgICAgICAiMC4wMDMwMzYsIDAuMDAzMDQ2LCAwLjAwMzA2NSwgMC4wMDMwNjgsIDAuMDAzMDczLCAwLjAwMzA3NSwgMC4wMDMwNzQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyODYzLCAwLjAwMjg2MywgMC4wMDI4NjQsIDAuMDAyODY0LCAwLjAwMjg2NCwgMC4wMDI4NjMsIDAuMDAyODYzIiwgXAotICAgICAgICAgICIwLjAwMjgzMSwgMC4wMDI4MzIsIDAuMDAyODM0LCAwLjAwMjgzNCwgMC4wMDI4MzQsIDAuMDAyODMzLCAwLjAwMjgzMyIsIFwKLSAgICAgICAgICAiMC4wMDI4MywgMC4wMDI4MzMsIDAuMDAyODM2LCAwLjAwMjgzNiwgMC4wMDI4MzYsIDAuMDAyODM2LCAwLjAwMjgzNiIsIFwKLSAgICAgICAgICAiMC4wMDI4NCwgMC4wMDI4NDMsIDAuMDAyODQ3LCAwLjAwMjg0OCwgMC4wMDI4NDgsIDAuMDAyODQ4LCAwLjAwMjg0NyIsIFwKLSAgICAgICAgICAiMC4wMDI4NDIsIDAuMDAyODQ1LCAwLjAwMjg0OSwgMC4wMDI4NDksIDAuMDAyODUsIDAuMDAyODQ5LCAwLjAwMjg0OSIsIFwKLSAgICAgICAgICAiMC4wMDI4NjUsIDAuMDAyODY5LCAwLjAwMjg3MywgMC4wMDI4NzQsIDAuMDAyODc1LCAwLjAwMjg3NSwgMC4wMDI4NzUiLCBcCi0gICAgICAgICAgIjAuMDAyODg5LCAwLjAwMjg5MiwgMC4wMDI4OTEsIDAuMDAyODkyLCAwLjAwMjksIDAuMDAyODkzLCAwLjAwMjg5NyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjk4OSwgMC4wMDI5OTIsIDAuMDAyOTk3LCAwLjAwMjk5OCwgMC4wMDI5OTksIDAuMDAyOTk5LCAwLjAwMjk5OSIsIFwKLSAgICAgICAgICAiMC4wMDI5NjIsIDAuMDAyOTY4LCAwLjAwMjk3NiwgMC4wMDI5NzgsIDAuMDAyOTc4LCAwLjAwMjk3OSwgMC4wMDI5NzkiLCBcCi0gICAgICAgICAgIjAuMDAyOTU1LCAwLjAwMjk2MywgMC4wMDI5NzQsIDAuMDAyOTc3LCAwLjAwMjk3OCwgMC4wMDI5NzgsIDAuMDAyOTgiLCBcCi0gICAgICAgICAgIjAuMDAyOTUyLCAwLjAwMjk2MSwgMC4wMDI5NzYsIDAuMDAyOTc5LCAwLjAwMjk4MSwgMC4wMDI5ODIsIDAuMDAyOTgzIiwgXAotICAgICAgICAgICIwLjAwMjk1OCwgMC4wMDI5NjYsIDAuMDAyOTg1LCAwLjAwMjk4OCwgMC4wMDI5OTEsIDAuMDAyOTkyLCAwLjAwMjk5MSIsIFwKLSAgICAgICAgICAiMC4wMDI5NzMsIDAuMDAyOTg2LCAwLjAwMzAwNSwgMC4wMDMwMSwgMC4wMDMwMTIsIDAuMDAzMDEzLCAwLjAwMzAxNSIsIFwKLSAgICAgICAgICAiMC4wMDI5OTIsIDAuMDAzMDA1LCAwLjAwMzAyNCwgMC4wMDMwMzEsIDAuMDAzMDM0LCAwLjAwMzAzNSwgMC4wMDMwMzgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDIzMDcsIDAuMDAyMzA4LCAwLjAwMjMwOSwgMC4wMDIzMDksIDAuMDAyMzA5LCAwLjAwMjMwOSwgMC4wMDIzMDkiLCBcCi0gICAgICAgICAgIjAuMDAyMzA1LCAwLjAwMjMwOSwgMC4wMDIzMTQsIDAuMDAyMzE1LCAwLjAwMjMxNiwgMC4wMDIzMTUsIDAuMDAyMzE1IiwgXAotICAgICAgICAgICIwLjAwMjMsIDAuMDAyMzA1LCAwLjAwMjMxNCwgMC4wMDIzMTYsIDAuMDAyMzE2LCAwLjAwMjMxOCwgMC4wMDIzMTciLCBcCi0gICAgICAgICAgIjAuMDAyMywgMC4wMDIzMDQsIDAuMDAyMzEzLCAwLjAwMjMxNSwgMC4wMDIzMTYsIDAuMDAyMzE4LCAwLjAwMjMxNyIsIFwKLSAgICAgICAgICAiMC4wMDIzMDEsIDAuMDAyMzA2LCAwLjAwMjMxNCwgMC4wMDIzMTUsIDAuMDAyMzE2LCAwLjAwMjMxNywgMC4wMDIzMTgiLCBcCi0gICAgICAgICAgIjAuMDAyMzA5LCAwLjAwMjMxMSwgMC4wMDIzMTQsIDAuMDAyMzE2LCAwLjAwMjMxNywgMC4wMDIzMTcsIDAuMDAyMzE4IiwgXAotICAgICAgICAgICIwLjAwMjMyLCAwLjAwMjMxOCwgMC4wMDIzMTcsIDAuMDAyMzE4LCAwLjAwMjMxOCwgMC4wMDIzMTgsIDAuMDAyMzE3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwODk2LCAwLjAwMDg5OCwgMC4wMDA5MDEsIDAuMDAwOTAxLCAwLjAwMDkwMiwgMC4wMDA5MDIsIDAuMDAwOTAyIiwgXAotICAgICAgICAgICIwLjAwMDg3NSwgMC4wMDA4ODMsIDAuMDAwODk1LCAwLjAwMDg5OCwgMC4wMDA5LCAwLjAwMDkwMSwgMC4wMDA5MDEiLCBcCi0gICAgICAgICAgIjAuMDAwODU1LCAwLjAwMDg2NywgMC4wMDA4ODgsIDAuMDAwODkzLCAwLjAwMDg5NiwgMC4wMDA4OTksIDAuMDAwODk5IiwgXAotICAgICAgICAgICIwLjAwMDg0MiwgMC4wMDA4NTYsIDAuMDAwODgzLCAwLjAwMDg4OSwgMC4wMDA4OTQsIDAuMDAwODk3LCAwLjAwMDg5OCIsIFwKLSAgICAgICAgICAiMC4wMDA4MzIsIDAuMDAwODQzLCAwLjAwMDg3NywgMC4wMDA4ODUsIDAuMDAwODkxLCAwLjAwMDg5NSwgMC4wMDA4OTciLCBcCi0gICAgICAgICAgIjAuMDAwODIzLCAwLjAwMDgzNiwgMC4wMDA4NjksIDAuMDAwODgsIDAuMDAwODg2LCAwLjAwMDg5MiwgMC4wMDA4OTQiLCBcCi0gICAgICAgICAgIjAuMDAwODIsIDAuMDAwODMxLCAwLjAwMDg2NCwgMC4wMDA4NzYsIDAuMDAwODgzLCAwLjAwMDg5LCAwLjAwMDg5MyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkQiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTkwMywgMC4wMDE5MDQsIDAuMDAxOTA2LCAwLjAwMTkwNiwgMC4wMDE5MDcsIDAuMDAxOTA3LCAwLjAwMTkwNyIsIFwKLSAgICAgICAgICAiMC4wMDE5MDMsIDAuMDAxOTA5LCAwLjAwMTkxNywgMC4wMDE5MTksIDAuMDAxOTIsIDAuMDAxOTIsIDAuMDAxOTIxIiwgXAotICAgICAgICAgICIwLjAwMTg5NCwgMC4wMDE5MDMsIDAuMDAxOTE1LCAwLjAwMTkxOSwgMC4wMDE5MiwgMC4wMDE5MjIsIDAuMDAxOTIzIiwgXAotICAgICAgICAgICIwLjAwMTg5MSwgMC4wMDE5MDEsIDAuMDAxOTE2LCAwLjAwMTkyLCAwLjAwMTkyMiwgMC4wMDE5MjgsIDAuMDAxOTI2IiwgXAotICAgICAgICAgICIwLjAwMTg5MSwgMC4wMDE5LCAwLjAwMTkxNSwgMC4wMDE5MTksIDAuMDAxOTIxLCAwLjAwMTkyNiwgMC4wMDE5MjUiLCBcCi0gICAgICAgICAgIjAuMDAxODkyLCAwLjAwMTksIDAuMDAxOTExLCAwLjAwMTkxOSwgMC4wMDE5MjEsIDAuMDAxOTI0LCAwLjAwMTkyNCIsIFwKLSAgICAgICAgICAiMC4wMDE5LCAwLjAwMTkwNCwgMC4wMDE5MTQsIDAuMDAxOTE5LCAwLjAwMTkyMSwgMC4wMDE5MjQsIDAuMDAxOTI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwODk1LCAwLjAwMDg5NywgMC4wMDA5MDEsIDAuMDAwOTAxLCAwLjAwMDkwMiwgMC4wMDA5MDIsIDAuMDAwOTAyIiwgXAotICAgICAgICAgICIwLjAwMDg3LCAwLjAwMDg4LCAwLjAwMDg5NCwgMC4wMDA4OTcsIDAuMDAwODk5LCAwLjAwMDksIDAuMDAwOTAxIiwgXAotICAgICAgICAgICIwLjAwMDg1MiwgMC4wMDA4NjUsIDAuMDAwODg3LCAwLjAwMDg5MywgMC4wMDA4OTYsIDAuMDAwODk4LCAwLjAwMDg5OSIsIFwKLSAgICAgICAgICAiMC4wMDA4NCwgMC4wMDA4NTMsIDAuMDAwODgxLCAwLjAwMDg4OCwgMC4wMDA4OTMsIDAuMDAwODk2LCAwLjAwMDg5OCIsIFwKLSAgICAgICAgICAiMC4wMDA4MzgsIDAuMDAwODQ5LCAwLjAwMDg3NywgMC4wMDA4ODUsIDAuMDAwODkxLCAwLjAwMDg5NSwgMC4wMDA4OTYiLCBcCi0gICAgICAgICAgIjAuMDAwODQxLCAwLjAwMDg0OCwgMC4wMDA4NzMsIDAuMDAwODgyLCAwLjAwMDg4OCwgMC4wMDA4OTMsIDAuMDAwODk1IiwgXAotICAgICAgICAgICIwLjAwMDg1LCAwLjAwMDg1MSwgMC4wMDA4NzEsIDAuMDAwODgsIDAuMDAwODg2LCAwLjAwMDg5MiwgMC4wMDA4OTQiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IE5PUjNYOCAqCi0gKiAtLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKE5PUjNYOCkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjgxOTg5OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDY1MDcyOTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDY0NTY5OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwNjUwNzI5OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjgwNiwgMC4wMDI5NjQsIDAuMDAzMDIsIDAuMDAzMDQsIDAuMDAzMDUyLCAwLjAwMzA5OSwgMC4wMDMxMjEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDU5NzMsIDAuMDA1OTc3LCAwLjAwNTk3OCwgMC4wMDU5NzksIDAuMDA1OTgsIDAuMDA1OTc5LCAwLjAwNTk4Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDY2NzQyODsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDY2MzEyNjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDY2NzQyODsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDI4MDgsIDAuMDAzMDY2LCAwLjAwMzExNCwgMC4wMDMxMjYsIDAuMDAzMTMzLCAwLjAwMzE1MywgMC4wMDMxNjMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDM0MjEsIDAuMDAzNDI0LCAwLjAwMzQyNCwgMC4wMDM0MjUsIDAuMDAzNDI1LCAwLjAwMzQyNiwgMC4wMDM0MjYiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEMpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwNjc0NTYxOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwNjc0NDc2OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwNjc0NTYxOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDg3NiwgMC4wMDA4NzUsIDAuMDAwODc2LCAwLjAwMDg3NiwgMC4wMDA4NzYsIDAuMDAwODc2LCAwLjAwMDg3NiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjgxNiwgMC4wMDI4MTYsIDAuMDAyODE3LCAwLjAwMjgxNSwgMC4wMDI4MTUsIDAuMDAyODE1LCAwLjAwMjgxNCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjc0MzQ1NzsKLSAgICBmdW5jdGlvbiA6ICIoISgoQStCKStDKSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQxNTIsIDAuMTQ0ODAyLCAwLjI0Nzg2OCwgMC4zMjE0NywgMC40Mzk0NDgsIDAuNTQxOTM0LCAwLjY4OTA2NyIsIFwKLSAgICAgICAgICAiMC4wNDk3MzEsIDAuMTUzMjg4LCAwLjI1NjQyNSwgMC4zMzAxOTIsIDAuNDQ3OTU3LCAwLjU1MDk4NywgMC42OTgxMjUiLCBcCi0gICAgICAgICAgIjAuMDU4NDgzLCAwLjE2MjA3MSwgMC4yNjUyOTcsIDAuMzM4OTEsIDAuNDU2NzM2LCAwLjU1OTg5NiwgMC43MDcyNjMiLCBcCi0gICAgICAgICAgIjAuMDY2MjI4LCAwLjE3MDIwMywgMC4yNzM0MzUsIDAuMzQ3MjM0LCAwLjQ2NTAyNCwgMC41Njc5NTEsIDAuNzE1MTc1IiwgXAotICAgICAgICAgICIwLjA3MzAxMSwgMC4xNzgyMDksIDAuMjgxNDgyLCAwLjM1NTE3NSwgMC40NzI5NzUsIDAuNTc2NDU0LCAwLjcyMzU2MyIsIFwKLSAgICAgICAgICAiMC4wODI1NywgMC4xOTA5MTEsIDAuMjk0MTMxLCAwLjM2NzgyNCwgMC40ODU2OTMsIDAuNTg4NzU2LCAwLjczNjQ0OSIsIFwKLSAgICAgICAgICAiMC4wODk4OTMsIDAuMjAxODgxLCAwLjMwNTE1LCAwLjM3ODg5NSwgMC40OTY4MDYsIDAuNjAwMDI2LCAwLjc0NzEyOSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2MTA3OCwgMC4yNjg0NDQsIDAuNDc1MDc4LCAwLjYyNDEwOCwgMC44NTkyMTQsIDEuMDY2MjcsIDEuMzYyMDgiLCBcCi0gICAgICAgICAgIjAuMDYxMTU1LCAwLjI2ODE3OSwgMC40NzU4ODQsIDAuNjIzNDU0LCAwLjg1OTM3MiwgMS4wNjg4LCAxLjM2NTEiLCBcCi0gICAgICAgICAgIjAuMDYyNTkzLCAwLjI2ODMwNSwgMC40NzU5MiwgMC42MjMwMzEsIDAuODU5NjQ1LCAxLjA2ODc4LCAxLjM2MjA4IiwgXAotICAgICAgICAgICIwLjA2NTMyMiwgMC4yNjg1MDUsIDAuNDc1MTM5LCAwLjYyNDE3OSwgMC44NjEyNCwgMS4wNjc5OCwgMS4zNjQxNyIsIFwKLSAgICAgICAgICAiMC4wNjkwMjIsIDAuMjcwMDAxLCAwLjQ3NTg3OSwgMC42MjM3MDIsIDAuODYwNjE5LCAxLjA2NjIyLCAxLjM2NTI2IiwgXAotICAgICAgICAgICIwLjA3NTg1NywgMC4yNzMwOSwgMC40Nzc0ODYsIDAuNjI0Mzc2LCAwLjg2MDYxOCwgMS4wNjY5LCAxLjM2NTQxIiwgXAotICAgICAgICAgICIwLjA4MTc5NCwgMC4yNzY5NiwgMC40Nzg3MzUsIDAuNjI1OTM2LCAwLjg2MDA0LCAxLjA2NjIxLCAxLjM2NDE1Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE3Nzk1LCAwLjA1NzA3OCwgMC4wOTUzMzYsIDAuMTIyNTU2LCAwLjE2NjA0MiwgMC4yMDQwNzksIDAuMjU4NDMiLCBcCi0gICAgICAgICAgIjAuMDI4MDcxLCAwLjA2NzExLCAwLjEwNTM2MiwgMC4xMzI1ODMsIDAuMTc2MDY5LCAwLjIxNDA4MiwgMC4yNjgzNTYiLCBcCi0gICAgICAgICAgIjAuMDQwMzA0LCAwLjA4MDEzNywgMC4xMTgzOTEsIDAuMTQ1MzcxLCAwLjE4ODczOSwgMC4yMjcwODYsIDAuMjgxMzM4IiwgXAotICAgICAgICAgICIwLjA0OTgxMywgMC4wOTMwODQsIDAuMTMxMzY5LCAwLjE1ODAyNSwgMC4yMDE0ODQsIDAuMjM5NzA4LCAwLjI5MzkyMiIsIFwKLSAgICAgICAgICAiMC4wNTc4NzIsIDAuMTA2MzQsIDAuMTQ0NDgxLCAwLjE3MTcyNSwgMC4yMTUxLCAwLjI1MzExLCAwLjMwNTQiLCBcCi0gICAgICAgICAgIjAuMDY5NzMzLCAwLjEyNjQ1MSwgMC4xNjQ4NjksIDAuMTkxOTUxLCAwLjIzNDY2LCAwLjI3MjU4NCwgMC4zMjczMTIiLCBcCi0gICAgICAgICAgIjAuMDc4MjEyLCAwLjE0MjM1OSwgMC4xODM1ODcsIDAuMjEwODMyLCAwLjI1Mzk3MSwgMC4yOTE5NjEsIDAuMzQ2MjYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjY1MjgsIDAuMTAyOTYxLCAwLjE3OTI5OCwgMC4yMzM5MTUsIDAuMzIxMzE0LCAwLjM5NzkxNywgMC41MDcxODQiLCBcCi0gICAgICAgICAgIjAuMDI5MTE3LCAwLjEwMjkyMiwgMC4xNzkzMDIsIDAuMjM0MDQ5LCAwLjMyMTMzOCwgMC4zOTc4MTYsIDAuNTA3MjI5IiwgXAotICAgICAgICAgICIwLjAzNjkxNCwgMC4xMDU3MDUsIDAuMTc5ODk5LCAwLjIzMzk2MywgMC4zMjEzMjIsIDAuMzk3ODUxLCAwLjUwNzA2MSIsIFwKLSAgICAgICAgICAiMC4wNDU5MiwgMC4xMTExODMsIDAuMTgyODk5LCAwLjIzNTY2NywgMC4zMjE2MDcsIDAuMzk3ODc3LCAwLjUwNzA3NiIsIFwKLSAgICAgICAgICAiMC4wNTQzNzksIDAuMTE3NzQ0LCAwLjE4NzM1MSwgMC4yMzkwMDgsIDAuMzIzMjY1LCAwLjM5ODQyNywgMC41MDcwNTgiLCBcCi0gICAgICAgICAgIjAuMDY1NjEzLCAwLjEzMDQ2NCwgMC4xOTcyMDMsIDAuMjQ3MDU5LCAwLjMyOTU1LCAwLjQwMjYxMywgMC41MDg4NjkiLCBcCi0gICAgICAgICAgIjAuMDc1NTU0LCAwLjE0MjcwOSwgMC4yMDY3NTUsIDAuMjU1NDcxLCAwLjMzNTU4NiwgMC40MDc0NTcsIDAuNTEyNTgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzgxNDgsIDAuMTQxNDIzLCAwLjI0NDU5NSwgMC4zMTgwOTksIDAuNDM1NzIsIDAuNTM4NTk0LCAwLjY4NjE2NiIsIFwKLSAgICAgICAgICAiMC4wNDYzNzcsIDAuMTQ5OTUyLCAwLjI1MzE0OSwgMC4zMjY5ODYsIDAuNDQ0NDUzLCAwLjU0Nzc5NCwgMC42OTQ1NzIiLCBcCi0gICAgICAgICAgIjAuMDU2MTYxLCAwLjE1OTgwNiwgMC4yNjMwNjQsIDAuMzM2NjU3LCAwLjQ1NDQyNSwgMC41NTc0MTQsIDAuNzA0NzEzIiwgXAotICAgICAgICAgICIwLjA2NTIyNiwgMC4xNjk2MSwgMC4yNzI4OTUsIDAuMzQ2NTcxLCAwLjQ2NDQ0MiwgMC41Njc1NywgMC43MTUxOTIiLCBcCi0gICAgICAgICAgIjAuMDczMTc4LCAwLjE3OTQyOCwgMC4yODI4NTgsIDAuMzU2NTQ5LCAwLjQ3NDYzOCwgMC41Nzc0MzEsIDAuNzI0NzM4IiwgXAotICAgICAgICAgICIwLjA4NDA1OSwgMC4xOTUyNzQsIDAuMjk4NjM5LCAwLjM3MjM3OSwgMC40OTAzMDEsIDAuNTkzNTcxLCAwLjc0MDg1IiwgXAotICAgICAgICAgICIwLjA5MjIyOCwgMC4yMDkwMzQsIDAuMzEyMzIsIDAuMzg2MTUzLCAwLjUwNDE5LCAwLjYwNzQyNywgMC43NTQ2MDYiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjEwNzMsIDAuMjY4NDM3LCAwLjQ3NDk5OSwgMC42MjI5NzcsIDAuODYwNjI5LCAxLjA2NzY5LCAxLjM2NTIyIiwgXAotICAgICAgICAgICIwLjA2MTM3LCAwLjI2ODQ1OSwgMC40NzU5OSwgMC42MjI3NDYsIDAuODU5NzE3LCAxLjA2NjE1LCAxLjM2NDEzIiwgXAotICAgICAgICAgICIwLjA2NDIzMSwgMC4yNjc5NzIsIDAuNDc1OTQyLCAwLjYyMzc0OCwgMC44NjA2NDYsIDEuMDY3OTYsIDEuMzYyNiIsIFwKLSAgICAgICAgICAiMC4wNjg5ODksIDAuMjY5MTUzLCAwLjQ3NTEzNCwgMC42MjM2OTgsIDAuODYxMTgzLCAxLjA2ODczLCAxLjM2MjAyIiwgXAotICAgICAgICAgICIwLjA3NTA3NywgMC4yNzA5NDIsIDAuNDc2MjA0LCAwLjYyNDEsIDAuODU5MjQxLCAxLjA2ODYyLCAxLjM2NTA2IiwgXAotICAgICAgICAgICIwLjA4NTI4OSwgMC4yNzYwNDQsIDAuNDc3MzYzLCAwLjYyNDQwOSwgMC44NTk2NzIsIDEuMDY4NiwgMS4zNjUwMyIsIFwKLSAgICAgICAgICAiMC4wOTM0OTIsIDAuMjgxODI5LCAwLjQ4MDU0MiwgMC42MjY0MjQsIDAuODU5OTIsIDEuMDY4NjYsIDEuMzY0MTciKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTYwNzUsIDAuMDUzNTUsIDAuMDkwNjcsIDAuMTE3MTk3LCAwLjE1OTUyOSwgMC4xOTY2MDQsIDAuMjQ5NTIiLCBcCi0gICAgICAgICAgIjAuMDI2MzA5LCAwLjA2MzY5NywgMC4xMDEwMTcsIDAuMTI3NDg4LCAwLjE2OTg2LCAwLjIwNjkxNywgMC4yNTk4NjkiLCBcCi0gICAgICAgICAgIjAuMDM3NTMyLCAwLjA3NjgwMiwgMC4xMTM5MzIsIDAuMTM5OTQ1LCAwLjE4MjUxNywgMC4yMTk4MTUsIDAuMjcyODQiLCBcCi0gICAgICAgICAgIjAuMDQ2MzIyLCAwLjA4OTgwNSwgMC4xMjYzMjQsIDAuMTUyODIsIDAuMTk1NzQ2LCAwLjIzMjcyOCwgMC4yODU3NDEiLCBcCi0gICAgICAgICAgIjAuMDUzNjg0LCAwLjEwMjY5MSwgMC4xMzk2OTIsIDAuMTY1NjM4LCAwLjIwNzc2NSwgMC4yNDUwODcsIDAuMjk3OTE2IiwgXAotICAgICAgICAgICIwLjA2NDI0NiwgMC4xMjI3MDIsIDAuMTYwNDA2LCAwLjE4NjY3OCwgMC4yMjk0NzIsIDAuMjY2NDg5LCAwLjMxOTM3MiIsIFwKLSAgICAgICAgICAiMC4wNzE5NjQsIDAuMTM3ODQ5LCAwLjE3OTMyNiwgMC4yMDU1MjUsIDAuMjQ3NzA1LCAwLjI4NDcwOCwgMC4zMzc2MDYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjI4NTIsIDAuMDk3NDIzLCAwLjE3MTkzMiwgMC4yMjUyNzQsIDAuMzEwNTk4LCAwLjM4NTEwNCwgMC40OTE2NzYiLCBcCi0gICAgICAgICAgIjAuMDI1OTc4LCAwLjA5NzQ0OCwgMC4xNzE5NTgsIDAuMjI1MjI4LCAwLjMxMDQ5MiwgMC4zODQ5ODUsIDAuNDkxNTIxIiwgXAotICAgICAgICAgICIwLjAzNDQ3LCAwLjEwMDQ4NiwgMC4xNzI2NDQsIDAuMjI1MjY2LCAwLjMxMDQ5MSwgMC4zODQ5ODQsIDAuNDkxNjUyIiwgXAotICAgICAgICAgICIwLjA0MzQ0OSwgMC4xMDYxMiwgMC4xNzYwMzUsIDAuMjI3MjEsIDAuMzEwNzE1LCAwLjM4NTAwNiwgMC40OTE1MDYiLCBcCi0gICAgICAgICAgIjAuMDUxNjc1LCAwLjExMzY2MywgMC4xODA1NzksIDAuMjMwOTkyLCAwLjMxMjkyNiwgMC4zODU5MzYsIDAuNDkxNTA1IiwgXAotICAgICAgICAgICIwLjA2MzAwMywgMC4xMjYyOTgsIDAuMTkwOTE1LCAwLjIzOTI5NSwgMC4zMTgzODgsIDAuMzg5ODg3LCAwLjQ5MzUzOSIsIFwKLSAgICAgICAgICAiMC4wNzI2ODYsIDAuMTM4OTY3LCAwLjIwMDY5NSwgMC4yNDc1NjYsIDAuMzI1Mzg4LCAwLjM5NTI2NiwgMC40OTc0OCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzMDY1OSwgMC4xMzQwNjIsIDAuMjM3MTQyLCAwLjMxMDY4MiwgMC40Mjg0NjQsIDAuNTMxNDE3LCAwLjY3OTM0IiwgXAotICAgICAgICAgICIwLjAzODY1NywgMC4xNDI0NTcsIDAuMjQ1NTY2LCAwLjMxOTI0NCwgMC40MzY5ODUsIDAuNTQwMTk1LCAwLjY4NzI1OSIsIFwKLSAgICAgICAgICAiMC4wNDk1MjksIDAuMTUyODYyLCAwLjI1NjA5OCwgMC4zMjk4NTYsIDAuNDQ3NjM4LCAwLjU1MDMyLCAwLjY5Nzc2MyIsIFwKLSAgICAgICAgICAiMC4wNTk2OTUsIDAuMTYzODY3LCAwLjI2NzA1NywgMC4zNDA3OTEsIDAuNDU4NjEzLCAwLjU2MTU4OCwgMC43MDkwMTgiLCBcCi0gICAgICAgICAgIjAuMDY3NTA1LCAwLjE3NDQxNSwgMC4yNzc1MzUsIDAuMzUxMjk0LCAwLjQ2OTIwMiwgMC41NzIyODQsIDAuNzE5MzkiLCBcCi0gICAgICAgICAgIjAuMDc4Mjg4LCAwLjE5MTk2MiwgMC4yOTUwMzMsIDAuMzY4NTYxLCAwLjQ4NjQ0MiwgMC41ODk5NDYsIDAuNzM2NzMiLCBcCi0gICAgICAgICAgIjAuMDg2ODMsIDAuMjA3NDEyLCAwLjMxMDIzNCwgMC4zODM4NTUsIDAuNTAxNTIsIDAuNjA0Njk0LCAwLjc1MjE5OCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2MDY4NCwgMC4yNjg0NzQsIDAuNDc1OTQ2LCAwLjYyMzc0NiwgMC44NTkyNDQsIDEuMDY2NTUsIDEuMzYyMDgiLCBcCi0gICAgICAgICAgIjAuMDYxNTIyLCAwLjI2ODQ5NCwgMC40NzUzNTYsIDAuNjI0MDk4LCAwLjg2MDY5MiwgMS4wNjY2MSwgMS4zNjI1NSIsIFwKLSAgICAgICAgICAiMC4wNjgwMDksIDAuMjY4MTE4LCAwLjQ3NTYyOSwgMC42MjQxNzEsIDAuODYxMjM5LCAxLjA2NjYyLCAxLjM2NDE3IiwgXAotICAgICAgICAgICIwLjA3NTk2OSwgMC4yNjk2NTcsIDAuNDc0ODQ3LCAwLjYyNDA4MiwgMC44NTk1NiwgMS4wNjc5NCwgMS4zNjUxNCIsIFwKLSAgICAgICAgICAiMC4wODUxMzQsIDAuMjczMTgxLCAwLjQ3NTI3OCwgMC42MjQwODEsIDAuODYxMjY4LCAxLjA2ODc1LCAxLjM2NDk3IiwgXAotICAgICAgICAgICIwLjA5ODEyNywgMC4yODA4NDIsIDAuNDc4NjkyLCAwLjYyMzY3MSwgMC44NjA1OTksIDEuMDY2MTMsIDEuMzY0MTciLCBcCi0gICAgICAgICAgIjAuMTA3OTczLCAwLjI4OTY2MiwgMC40ODQyNTIsIDAuNjI3NTI2LCAwLjg2MTAyNiwgMS4wNjY0OCwgMS4zNjUyNyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMzgwMiwgMC4wNTEwODMsIDAuMDg4MjM0LCAwLjExNDc3NywgMC4xNTcyMjQsIDAuMTk0Mzk4LCAwLjI0NzQzOSIsIFwKLSAgICAgICAgICAiMC4wMjQwMzcsIDAuMDYxMzIyLCAwLjA5ODUxNCwgMC4xMjUwNzUsIDAuMTY3NTIyLCAwLjIwNDY3LCAwLjI1Nzc2NCIsIFwKLSAgICAgICAgICAiMC4wMzQwOTQsIDAuMDc0Mzc2LCAwLjExMTU3OSwgMC4xMzc4NzIsIDAuMTgwNjIsIDAuMjE3NzkzLCAwLjI3MDgyNiIsIFwKLSAgICAgICAgICAiMC4wNDE5OTQsIDAuMDg3MzM3LCAwLjEyNDM4MiwgMC4xNTA1MjMsIDAuMTkzNTgzLCAwLjIzMDY1MywgMC4yODM4ODkiLCBcCi0gICAgICAgICAgIjAuMDQ4MjU3LCAwLjEwMDA3NCwgMC4xMzczNDMsIDAuMTYzODAxLCAwLjIwNTY0NiwgMC4yNDI3MzksIDAuMjk1NTg4IiwgXAotICAgICAgICAgICIwLjA1NzQsIDAuMTE5NDYyLCAwLjE1ODQ1OSwgMC4xODQ5OCwgMC4yMjcyNjMsIDAuMjY0NDAxLCAwLjMxNjI0NiIsIFwKLSAgICAgICAgICAiMC4wNjM4OTYsIDAuMTM0MDI2LCAwLjE3NTk5NCwgMC4yMDI2ODgsIDAuMjQ0OTE0LCAwLjI4MjU4NCwgMC4zMzU2NDMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjAwNzksIDAuMDk1NTk5LCAwLjE3MTEyNiwgMC4yMjQ0NiwgMC4zMTA1NDcsIDAuMzg2MTc3LCAwLjQ5MzM4NSIsIFwKLSAgICAgICAgICAiMC4wMjM4OCwgMC4wOTU1MjcsIDAuMTcxMDkxLCAwLjIyNDQ2NSwgMC4zMTEzNjQsIDAuMzg2NTE3LCAwLjQ5MzUxNiIsIFwKLSAgICAgICAgICAiMC4wMzMxNjQsIDAuMDk4ODE3LCAwLjE3MTQ4NiwgMC4yMjQ4MDcsIDAuMzEwODQ2LCAwLjM4NjExNywgMC40OTQ2NjUiLCBcCi0gICAgICAgICAgIjAuMDQxODM4LCAwLjEwNDc2MywgMC4xNzQ4NjQsIDAuMjI2OTY0LCAwLjMxMDc2NiwgMC4zODU2NjgsIDAuNDkzNTQ5IiwgXAotICAgICAgICAgICIwLjA1MDI5MiwgMC4xMTE4OTIsIDAuMTc5NzIzLCAwLjIzMDM2MSwgMC4zMTMxMTYsIDAuMzg3Nzg4LCAwLjQ5NDE5NiIsIFwKLSAgICAgICAgICAiMC4wNjIwMzUsIDAuMTI1NTE2LCAwLjE4OTU5NCwgMC4yMzg3NTcsIDAuMzE4NzU3LCAwLjM5MTg2MiwgMC40OTYzMDIiLCBcCi0gICAgICAgICAgIjAuMDcxNDg3LCAwLjEzOTIzNywgMC4xOTk4MzcsIDAuMjQ3NjI2LCAwLjMyNjYxNSwgMC4zOTczMjksIDAuNTAwNjE4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTk3MzksIDAuMDE5ODMzLCAwLjAxOTg0NiwgMC4wMTk4NSwgMC4wMTk4NTQsIDAuMDE5ODU2LCAwLjAxOTg1NSIsIFwKLSAgICAgICAgICAiMC4wMTk0ODcsIDAuMDE5NzI4LCAwLjAxOTc4MywgMC4wMTk4MDIsIDAuMDE5ODE4LCAwLjAxOTgyNywgMC4wMTk4MzUiLCBcCi0gICAgICAgICAgIjAuMDE5Mzc4LCAwLjAxOTYzMSwgMC4wMTk3MTEsIDAuMDE5NzQ0LCAwLjAxOTc3MywgMC4wMTk3OTMsIDAuMDE5ODA2IiwgXAotICAgICAgICAgICIwLjAxOTMzMywgMC4wMTk1NjMsIDAuMDE5NjU5LCAwLjAxOTY5NiwgMC4wMTk3MTgsIDAuMDE5NzU3LCAwLjAxOTc3NyIsIFwKLSAgICAgICAgICAiMC4wMTkzMTQsIDAuMDE5NTExLCAwLjAxOTYxMSwgMC4wMTk2NTYsIDAuMDE5NzEsIDAuMDE5NzIzLCAwLjAxOTczNiIsIFwKLSAgICAgICAgICAiMC4wMTkzLCAwLjAxOTQ2NSwgMC4wMTk1NjMsIDAuMDE5NjA5LCAwLjAxOTY2MSwgMC4wMTk2OTcsIDAuMDE5NzI3IiwgXAotICAgICAgICAgICIwLjAxOTMxMSwgMC4wMTk0NDEsIDAuMDE5NTM2LCAwLjAxOTU3OSwgMC4wMTk2MzEsIDAuMDE5NjYsIDAuMDE5Njk4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDU2NjUsIDAuMDA1Njc0LCAwLjAwNTY3MywgMC4wMDU2NzQsIDAuMDA1Njc0LCAwLjAwNTY3MywgMC4wMDU2NzMiLCBcCi0gICAgICAgICAgIjAuMDA1MzU5LCAwLjAwNTQzNywgMC4wMDU0NTcsIDAuMDA1NDYyLCAwLjAwNTQ2NSwgMC4wMDU0NywgMC4wMDU0NzEiLCBcCi0gICAgICAgICAgIjAuMDA1MjcyLCAwLjAwNTM4MywgMC4wMDU0MTQsIDAuMDA1NDA4LCAwLjAwNTQzNCwgMC4wMDU0MzcsIDAuMDA1NDM5IiwgXAotICAgICAgICAgICIwLjAwNTMyMywgMC4wMDUzNzcsIDAuMDA1Mzg2LCAwLjAwNTQsIDAuMDA1NDEsIDAuMDA1NDIsIDAuMDA1NDI0IiwgXAotICAgICAgICAgICIwLjAwNTQsIDAuMDA1NDA1LCAwLjAwNTQyLCAwLjAwNTQyMSwgMC4wMDU0MjksIDAuMDA1NDMzLCAwLjAwNTQwMSIsIFwKLSAgICAgICAgICAiMC4wMDU0NzYsIDAuMDA1NDgxLCAwLjAwNTQ4OCwgMC4wMDU0NywgMC4wMDU0NDQsIDAuMDA1NDQyLCAwLjAwNTQ1IiwgXAotICAgICAgICAgICIwLjAwNTY5NSwgMC4wMDU2MDUsIDAuMDA1NTczLCAwLjAwNTU0NCwgMC4wMDU1MTksIDAuMDA1NTA1LCAwLjAwNTQ5MSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDE3MDcsIDAuMDE3MTYyLCAwLjAxNzE3NCwgMC4wMTcxNzksIDAuMDE3MTgyLCAwLjAxNzE4NCwgMC4wMTcxODUiLCBcCi0gICAgICAgICAgIjAuMDE2ODE4LCAwLjAxNzA1NCwgMC4wMTcxMDgsIDAuMDE3MTI2LCAwLjAxNzE0OSwgMC4wMTcxNTIsIDAuMDE3MTYyIiwgXAotICAgICAgICAgICIwLjAxNjcxNSwgMC4wMTY5NTksIDAuMDE3MDQ1LCAwLjAxNzA3MSwgMC4wMTcwOTksIDAuMDE3MTI1LCAwLjAxNzEyMiIsIFwKLSAgICAgICAgICAiMC4wMTY2NzYsIDAuMDE2ODk1LCAwLjAxNjk4OCwgMC4wMTcwMjcsIDAuMDE3MDU4LCAwLjAxNzA4NiwgMC4wMTcxMDYiLCBcCi0gICAgICAgICAgIjAuMDE2NjY2LCAwLjAxNjg1MiwgMC4wMTY5NDcsIDAuMDE2OTg5LCAwLjAxNzAzNywgMC4wMTcwNTksIDAuMDE3MDg0IiwgXAotICAgICAgICAgICIwLjAxNjY3MywgMC4wMTY4MTEsIDAuMDE2OSwgMC4wMTY5NDQsIDAuMDE2OTkzLCAwLjAxNzAyNCwgMC4wMTcwNTIiLCBcCi0gICAgICAgICAgIjAuMDE2NzI1LCAwLjAxNjc5NywgMC4wMTY4NzcsIDAuMDE2OTE2LCAwLjAxNjk2OCwgMC4wMTY5OTksIDAuMDE3MDIzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDMxMzksIDAuMDAzMTg1LCAwLjAwMzE5LCAwLjAwMzE5MywgMC4wMDMxOTUsIDAuMDAzMTk1LCAwLjAwMzE5NiIsIFwKLSAgICAgICAgICAiMC4wMDI4NDMsIDAuMDAzMDg0LCAwLjAwMzEzNSwgMC4wMDMxNDksIDAuMDAzMTYzLCAwLjAwMzE3LCAwLjAwMzE3NSIsIFwKLSAgICAgICAgICAiMC4wMDI3MDksIDAuMDAzMDEsIDAuMDAzMDgzLCAwLjAwMzEsIDAuMDAzMTI5LCAwLjAwMzE0NCwgMC4wMDMxNTUiLCBcCi0gICAgICAgICAgIjAuMDAyNzA4LCAwLjAwMjk5NiwgMC4wMDMwMzQsIDAuMDAzMDY4LCAwLjAwMzExOSwgMC4wMDMxMzgsIDAuMDAzMTQ1IiwgXAotICAgICAgICAgICIwLjAwMjc4NCwgMC4wMDMwMTcsIDAuMDAzMDI5LCAwLjAwMzA0NywgMC4wMDMxMTUsIDAuMDAzMTM0LCAwLjAwMzE0NCIsIFwKLSAgICAgICAgICAiMC4wMDI4NjUsIDAuMDAyOTk5LCAwLjAwMzEwOCwgMC4wMDMxMTksIDAuMDAzMTA5LCAwLjAwMzEyMSwgMC4wMDMxMzYiLCBcCi0gICAgICAgICAgIjAuMDAzMDcyLCAwLjAwMzE1OCwgMC4wMDMxNDcsIDAuMDAzMTUsIDAuMDAzMTU3LCAwLjAwMzE2MiwgMC4wMDMxNjciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxNDIzNCwgMC4wMTQzNzMsIDAuMDE0MzkzLCAwLjAxNDM5OCwgMC4wMTQ0MDQsIDAuMDE0NDA2LCAwLjAxNDQwOCIsIFwKLSAgICAgICAgICAiMC4wMTM4NzgsIDAuMDE0MjE1LCAwLjAxNDI5MywgMC4wMTQzMjYsIDAuMDE0MzM5LCAwLjAxNDM1OCwgMC4wMTQzNjkiLCBcCi0gICAgICAgICAgIjAuMDEzODUzLCAwLjAxNDEwOCwgMC4wMTQyMTEsIDAuMDE0MjUxLCAwLjAxNDI5MSwgMC4wMTQzMTIsIDAuMDE0MzI3IiwgXAotICAgICAgICAgICIwLjAxMzg5LCAwLjAxNDAzNywgMC4wMTQxNDcsIDAuMDE0MTk1LCAwLjAxNDI0NCwgMC4wMTQyNzIsIDAuMDE0Mjk1IiwgXAotICAgICAgICAgICIwLjAxNDA2NSwgMC4wMTQwNDEsIDAuMDE0MTI5LCAwLjAxNDE3NywgMC4wMTQyMiwgMC4wMTQyNSwgMC4wMTQyNzUiLCBcCi0gICAgICAgICAgIjAuMDE0MzA0LCAwLjAxNDA3LCAwLjAxNDExOCwgMC4wMTQxNTQsIDAuMDE0MTk1LCAwLjAxNDIyNSwgMC4wMTQyNTYiLCBcCi0gICAgICAgICAgIjAuMDE0NTI3LCAwLjAxNDE0OCwgMC4wMTQxNDYsIDAuMDE0MTY3LCAwLjAxNDE5OSwgMC4wMTQyMjIsIDAuMDE0MjQ5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDAyMzYsIDAuMDAwNDI3LCAwLjAwMDQ1MSwgMC4wMDA0NTksIDAuMDAwNDY1LCAwLjAwMDQ2OSwgMC4wMDA0NzIiLCBcCi0gICAgICAgICAgIjAuMDAwMDYzLCAwLjAwMDQ0MiwgMC4wMDA1MzcsIDAuMDAwNTY4LCAwLjAwMDU5NSwgMC4wMDA2MDksIDAuMDAwNjIzIiwgXAotICAgICAgICAgICIwLjAwMDIsIDAuMDAwMzM1LCAwLjAwMDQ3NCwgMC4wMDA1MiwgMC4wMDA1NjYsIDAuMDAwNTg5LCAwLjAwMDYxIiwgXAotICAgICAgICAgICIwLjAwMDIyNiwgMC4wMDAyNjYsIDAuMDAwNDIzLCAwLjAwMDQ4LCAwLjAwMDUzNSwgMC4wMDA1NjksIDAuMDAwNTk0IiwgXAotICAgICAgICAgICIwLjAwMDA1OCwgMC4wMDAyODEsIDAuMDAwMzg4LCAwLjAwMDQ1LCAwLjAwMDUzMywgMC4wMDA1NjUsIDAuMDAwNTk0IiwgXAotICAgICAgICAgICIwLjAwMDE3NCwgMC4wMDAyODIsIDAuMDAwMzgxLCAwLjAwMDQ0MSwgMC4wMDA1MDEsIDAuMDAwNTM3LCAwLjAwMDU4MSIsIFwKLSAgICAgICAgICAiMC4wMDA0MjcsIDAuMDAwMzQxLCAwLjAwMDQzNCwgMC4wMDA0OCwgMC4wMDA1MjUsIDAuMDAwNTYxLCAwLjAwMDU4OCIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IE5PUjRCWEwgKgotICogLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoTk9SNEJYTCkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjA5NjI2NDc7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEFOKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2MzMyMDQ7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjMyOTIzOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDYzMzIwNDsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA1NTIsIDAuMDAwNTI1LCAwLjAwMDUzMiwgMC4wMDA1MzcsIDAuMDAwNTQ4LCAwLjAwMDU3NSwgMC4wMDA2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxMzg0LCAwLjAwMTM2MywgMC4wMDEzNiwgMC4wMDEzNjcsIDAuMDAxMzc5LCAwLjAwMTQwNiwgMC4wMDE0MjkiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDU5NzkyOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDU5NTAwOTsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA1OTc5MjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxMDQsIDAuMDAwMTA0LCAwLjAwMDEwNCwgMC4wMDAxMDQsIDAuMDAwMTA0LCAwLjAwMDEwNCwgMC4wMDAxMDQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxOCwgMC4wMDAxOCwgMC4wMDAxOCwgMC4wMDAxOCwgMC4wMDAxOCwgMC4wMDAxOCwgMC4wMDAxOCIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQykgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNjExMTM5OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDYwODU0ODsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA2MTExMzk7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMDgsIDAuMDAwMDgsIDAuMDAwMDgsIDAuMDAwMDgsIDAuMDAwMDgsIDAuMDAwMDgsIDAuMDAwMDgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxNzIsIDAuMDAwMTcyLCAwLjAwMDE3MiwgMC4wMDAxNzIsIDAuMDAwMTcyLCAwLjAwMDE3MiwgMC4wMDAxNzIiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEQpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY0NDQzNjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2NDQ0MzY7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjQ0MTkxOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDA1OCwgMC4wMDAwNTgsIDAuMDAwMDU4LCAwLjAwMDA1OCwgMC4wMDAwNTgsIDAuMDAwMDU4LCAwLjAwMDA1OCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDIxMywgMC4wMDAyMTMsIDAuMDAwMjEzLCAwLjAwMDIxMywgMC4wMDAyMTMsIDAuMDAwMjEzLCAwLjAwMDIxMyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjAzNzcyOTU7Ci0gICAgZnVuY3Rpb24gOiAiKCEoKCgoIUFOKStCKStDKStEKSkiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkFOIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMjE0NjcsIDAuMzczNDAxLCAwLjg0MjI3OCwgMS42MjQxNCwgMi40MDU2NiwgNC4yMjcxNSwgNS4yNjc4NiIsIFwKLSAgICAgICAgICAiMC4zMzE0MjcsIDAuMzgzNjkzLCAwLjg1MzA2MywgMS42MzQwMywgMi40MTU3MSwgNC4yMzcxOSwgNS4yNzc3IiwgXAotICAgICAgICAgICIwLjM0MTc2NCwgMC4zOTQyNDYsIDAuODYzMTU2LCAxLjY0NTg1LCAyLjQyNjA1LCA0LjI0NzUzLCA1LjI4ODUiLCBcCi0gICAgICAgICAgIjAuMzQ5OTM4LCAwLjQwMjEsIDAuODcxMjM4LCAxLjY1MjcsIDIuNDM1MjQsIDQuMjU2LCA1LjI5NjM3IiwgXAotICAgICAgICAgICIwLjM1NjkxNywgMC40MDg5MTQsIDAuODc3Nzg5LCAxLjY1OTk0LCAyLjQ0MTA0LCA0LjI2MjQ4LCA1LjMwMzIyIiwgXAotICAgICAgICAgICIwLjM2NjEwNywgMC40MTgwMjYsIDAuODg3MDM4LCAxLjY3MDA3LCAyLjQ1MDM2LCA0LjI3MTUzLCA1LjMxMjQ2IiwgXAotICAgICAgICAgICIwLjM3MzE2MiwgMC40MjUxNywgMC44OTQzNDEsIDEuNjc1MzgsIDIuNDU4NTIsIDQuMjc5MTgsIDUuMzE5ODYiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuNTg1MDMxLCAwLjY4ODgxMSwgMS42Mjc2MSwgMy4xODU1MSwgNC43NTYzOSwgOC4zODk0MSwgMTAuNDY1MyIsIFwKLSAgICAgICAgICAiMC41ODQ5MjQsIDAuNjg4MDA3LCAxLjYyNDc4LCAzLjE5MTk4LCA0Ljc1NjM0LCA4LjM4OTMxLCAxMC40NjY0IiwgXAotICAgICAgICAgICIwLjU4NDkwNCwgMC42ODgwNjksIDEuNjI4MDMsIDMuMTg2MzEsIDQuNzU2MzMsIDguMzg5MTgsIDEwLjQ2NDUiLCBcCi0gICAgICAgICAgIjAuNTg0MDE4LCAwLjY4OTI2OSwgMS42Mjc5NywgMy4xOTIwMSwgNC43NDY5LCA4LjM4OTMzLCAxMC40NjU2IiwgXAotICAgICAgICAgICIwLjU4NTEwOCwgMC42ODkyNjMsIDEuNjI0ODEsIDMuMTg1OTYsIDQuNzU2MTgsIDguMzg4OTgsIDEwLjQ2NTciLCBcCi0gICAgICAgICAgIjAuNTg1MDUzLCAwLjY4ODQzOCwgMS42Mjc2MywgMy4xODY1OSwgNC43NDc4NiwgOC4zODg4MSwgMTAuNDY2MyIsIFwKLSAgICAgICAgICAiMC41ODQ5NjcsIDAuNjg3OTk0LCAxLjYyNzgxLCAzLjE5MTUyLCA0Ljc0Njc4LCA4LjM4OTIyLCAxMC40NjY0Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwMDc1NywgMC4xMTQ3NDEsIDAuMjM5Nzg2LCAwLjQ0NzYxOSwgMC42NTUwNjcsIDEuMTM5NTcsIDEuNDE1OTMiLCBcCi0gICAgICAgICAgIjAuMTEwNDQ2LCAwLjEyNDQyNSwgMC4yNDk1MywgMC40NTczNjEsIDAuNjY0OTY5LCAxLjE0OTY4LCAxLjQyNjA4IiwgXAotICAgICAgICAgICIwLjEyMDQyNSwgMC4xMzQ0MDIsIDAuMjU5NTI0LCAwLjQ2NzM2MywgMC42NzUwNTQsIDEuMTU5MDIsIDEuNDM2MzEiLCBcCi0gICAgICAgICAgIjAuMTI4MDUyLCAwLjE0MjAzMSwgMC4yNjcwOTMsIDAuNDc0ODg4LCAwLjY4MjcxMSwgMS4xNjY5NiwgMS40NDM2MyIsIFwKLSAgICAgICAgICAiMC4xMzQ1OTUsIDAuMTQ4NTYyLCAwLjI3MzYxNCwgMC40ODEzMzMsIDAuNjg4NDg5LCAxLjE3MzMxLCAxLjQ1MDI4IiwgXAotICAgICAgICAgICIwLjE0MzM0NCwgMC4xNTcwNTYsIDAuMjgyMDYxLCAwLjQ5MDIsIDAuNjk3NjQzLCAxLjE4MTg0LCAxLjQ1ODI4IiwgXAotICAgICAgICAgICIwLjE0OTE2NiwgMC4xNjMwOTgsIDAuMjg4ODkyLCAwLjQ5NTkxNSwgMC43MDM2MDksIDEuMTg4MTgsIDEuNDY0ODUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTYxMjI1LCAwLjE4ODg5OCwgMC40MzgxNTIsIDAuODUzNjE3LCAxLjI2OTI1LCAyLjIzNzI3LCAyLjc5MTM4IiwgXAotICAgICAgICAgICIwLjE2MTIyNywgMC4xODg5ODksIDAuNDM4MTk2LCAwLjg1NDExNCwgMS4yNjk3NCwgMi4yMzkwOSwgMi43OTI2OCIsIFwKLSAgICAgICAgICAiMC4xNjEzMzIsIDAuMTg5MDA2LCAwLjQzODE4NywgMC44NTM3MTMsIDEuMjY5MzgsIDIuMjM5MzMsIDIuNzkzNDQiLCBcCi0gICAgICAgICAgIjAuMTYxNTEsIDAuMTg5MDAyLCAwLjQzODA5NiwgMC44NTM1ODUsIDEuMjY5NTMsIDIuMjM4ODcsIDIuNzkzOCIsIFwKLSAgICAgICAgICAiMC4xNjE2NDYsIDAuMTg5MjYsIDAuNDM4MzgsIDAuODUzNjY0LCAxLjI2OTA1LCAyLjIzOTQ5LCAyLjc5MjkiLCBcCi0gICAgICAgICAgIjAuMTYxODA5LCAwLjE4OTM5OCwgMC40MzgyODYsIDAuODUzNjA4LCAxLjI2OTIzLCAyLjIzODQ2LCAyLjc5MjM0IiwgXAotICAgICAgICAgICIwLjE2MjA2NywgMC4xODk2MTksIDAuNDM4MzM0LCAwLjg1MzY2MiwgMS4yNjk0MiwgMi4yMzg5MywgMi43OTI1NyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMDU2MTYsIDAuMzU4MDc5LCAwLjgyNzA0MSwgMS42MDk2OCwgMi4zODk4NywgNC4yMTEzNSwgNS4yNTIwOSIsIFwKLSAgICAgICAgICAiMC4zMTM3NDksIDAuMzY2MTYsIDAuODM1MjEzLCAxLjYxNzc0LCAyLjM5NzI2LCA0LjIxOTU1LCA1LjI2MDM5IiwgXAotICAgICAgICAgICIwLjMyMjUxMywgMC4zNzQ2NTYsIDAuODQ0NTc5LCAxLjYyNTkyLCAyLjQwNzYxLCA0LjIyODUxLCA1LjI2OTIiLCBcCi0gICAgICAgICAgIjAuMzMwNTk1LCAwLjM4Mjg4NSwgMC44NTE3OTYsIDEuNjM0MDIsIDIuNDE1ODEsIDQuMjM3MTMsIDUuMjc3NCIsIFwKLSAgICAgICAgICAiMC4zMzg0MDYsIDAuMzkwODE3LCAwLjg2MDIzNSwgMS42NDE2NSwgMi40MjM5MywgNC4yNDQ4OCwgNS4yODU1NSIsIFwKLSAgICAgICAgICAiMC4zNTA5OTEsIDAuNDAzMTA0LCAwLjg3MjQ1MSwgMS42NTQ4MSwgMi40MzcxLCA0LjI1NzYzLCA1LjI5ODIzIiwgXAotICAgICAgICAgICIwLjM2MTc4OCwgMC40MTQzMjgsIDAuODgzMjU0LCAxLjY2NTQ2LCAyLjQ0NjgxLCA0LjI2ODk4LCA1LjMwOTM0Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjU4NDkyMywgMC42ODgwMSwgMS42MjgxMSwgMy4xODY0NiwgNC43NTYzOCwgOC4zODkyNiwgMTAuNDY0NSIsIFwKLSAgICAgICAgICAiMC41ODQ1NSwgMC42ODk0MzgsIDEuNjI0NywgMy4xOTMxNCwgNC43NTAyLCA4LjM4OTE3LCAxMC40NjU1IiwgXAotICAgICAgICAgICIwLjU4NDg5NCwgMC42ODg0NjcsIDEuNjI0NzgsIDMuMTkyNDksIDQuNzQ2NjcsIDguMzg5MTksIDEwLjQ2NjUiLCBcCi0gICAgICAgICAgIjAuNTgzODg4LCAwLjY4OTMzOSwgMS42Mjc2MSwgMy4xOTI0NCwgNC43NDY4NiwgOC4zODQ3LCAxMC40NjYiLCBcCi0gICAgICAgICAgIjAuNTg0ODg3LCAwLjY4OTM3MywgMS42MjgxMiwgMy4xODY1LCA0Ljc0Njg1LCA4LjM4OTIsIDEwLjQ2NTQiLCBcCi0gICAgICAgICAgIjAuNTg0Nzg4LCAwLjY4OTUzOSwgMS42Mjc2NywgMy4xOTI1NiwgNC43NTc0MywgOC4zODkyLCAxMC40NjYzIiwgXAotICAgICAgICAgICIwLjU4NjU2NCwgMC42ODk1MzUsIDEuNjI3NTksIDMuMTg2NDYsIDQuNzQ4MjksIDguMzg5NCwgMTAuNDY1NyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODQ3MTMsIDAuMDk4NTkzLCAwLjIyMzM1NCwgMC40MzA5MiwgMC42MzgzNDUsIDEuMTIyNDUsIDEuMzk5MTYiLCBcCi0gICAgICAgICAgIjAuMDk0ODI3LCAwLjEwODcyMSwgMC4yMzM0NzYsIDAuNDQxMjI5LCAwLjY0ODgxNywgMS4xMzI5NiwgMS40MDk4MiIsIFwKLSAgICAgICAgICAiMC4xMDc4MzUsIDAuMTIxNzIzLCAwLjI0NjQ1LCAwLjQ1Mzk0NCwgMC42NjE2OTIsIDEuMTQ1NzYsIDEuNDIyNjIiLCBcCi0gICAgICAgICAgIjAuMTIwODA4LCAwLjEzNDY1NSwgMC4yNTkzNDEsIDAuNDY2OTI3LCAwLjY3NDczMywgMS4xNTcwNCwgMS40MzM1NiIsIFwKLSAgICAgICAgICAiMC4xMzM1OTYsIDAuMTQ3NDI3LCAwLjI3MTU1NSwgMC40NzkwMTIsIDAuNjg2NTY2LCAxLjE2NzgxLCAxLjQ0NTA5IiwgXAotICAgICAgICAgICIwLjE1NDIzNiwgMC4xNjc5MDEsIDAuMjkyMjA0LCAwLjQ5OTQ4MywgMC43MDY5NDQsIDEuMTg3NTksIDEuNDY0NTQiLCBcCi0gICAgICAgICAgIjAuMTcyMzY2LCAwLjE4NjE0NiwgMC4zMDk0ODksIDAuNTE3MjYzLCAwLjcyNDUyNCwgMS4yMDUxOSwgMS40ODE2NyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNTgwMTEsIDAuMTg1NzEsIDAuNDM1MDA4LCAwLjg1MDQ0NywgMS4yNjU5LCAyLjIzNjAzLCAyLjc5MDAyIiwgXAotICAgICAgICAgICIwLjE1ODA0MywgMC4xODU2OTEsIDAuNDM0OTk1LCAwLjg1MDcxOCwgMS4yNjYyMiwgMi4yMzU4NiwgMi43OTAyIiwgXAotICAgICAgICAgICIwLjE1ODgzOSwgMC4xODYxNjUsIDAuNDM1MTA0LCAwLjg1MDQ0MSwgMS4yNjYyMSwgMi4yMzU4NiwgMi43OTA2MiIsIFwKLSAgICAgICAgICAiMC4xNjIzNDEsIDAuMTg4ODkzLCAwLjQzNDk5NiwgMC44NTA0NDYsIDEuMjY2MzMsIDIuMjM1ODYsIDIuNzkwNDYiLCBcCi0gICAgICAgICAgIjAuMTY3Nzg2LCAwLjE5MzQwNywgMC40MzUyODcsIDAuODUwNjczLCAxLjI2NjMsIDIuMjM1MzMsIDIuNzkwMjkiLCBcCi0gICAgICAgICAgIjAuMTc4NTM1LCAwLjIwMzE0MSwgMC40Mzg2NjIsIDAuODUwNzE5LCAxLjI2NjE3LCAyLjIzNjA0LCAyLjc5MDA3IiwgXAotICAgICAgICAgICIwLjE4OTI2MSwgMC4yMTMxMjQsIDAuNDQzNzk3LCAwLjg1MDU4MywgMS4yNjY0NiwgMi4yMzU2LCAyLjc5MDAyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjI5ODkyNiwgMC4zNTEwMDcsIDAuODIwMDQ2LCAxLjYwMTU1LCAyLjM4NDA3LCA0LjIwNDg4LCA1LjI0NTMxIiwgXAotICAgICAgICAgICIwLjMwNzA3NywgMC4zNTkwODUsIDAuODI4Njk2LCAxLjYxMDYyLCAyLjM5MDQ3LCA0LjIxMjYsIDUuMjUzNDMiLCBcCi0gICAgICAgICAgIjAuMzE2NDM1LCAwLjM2ODU0NiwgMC44Mzc1MzQsIDEuNjE5NzcsIDIuNDAwOTQsIDQuMjIyNDEsIDUuMjYzMjgiLCBcCi0gICAgICAgICAgIjAuMzI1OTAzLCAwLjM3ODEzNCwgMC44NDcxOSwgMS42MjkwOSwgMi40MTA0MywgNC4yMzE4OSwgNS4yNzI2MyIsIFwKLSAgICAgICAgICAiMC4zMzUyOTgsIDAuMzg3NDcsIDAuODU2NjQ3LCAxLjYzOTMsIDIuNDIwNDQsIDQuMjQxOTMsIDUuMjgyMjQiLCBcCi0gICAgICAgICAgIjAuMzUwMzUyLCAwLjQwMjU4NywgMC44NzIyNzIsIDEuNjU0MjYsIDIuNDM2MTcsIDQuMjU3MTUsIDUuMjk3NjUiLCBcCi0gICAgICAgICAgIjAuMzYzNDUxLCAwLjQxNTk1NiwgMC44ODUxOTQsIDEuNjY2OSwgMi40NDkxNiwgNC4yNzAzNiwgNS4zMTExNCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC41ODQ5NiwgMC42ODgwOTYsIDEuNjI3ODcsIDMuMTkyMDYsIDQuNzU3MjQsIDguMzg5NTUsIDEwLjQ2NTciLCBcCi0gICAgICAgICAgIjAuNTg1MTA1LCAwLjY4Nzg4MywgMS42MjgzNiwgMy4xOTI5MiwgNC43NDk5NSwgOC4zODg4OSwgMTAuNDY2MyIsIFwKLSAgICAgICAgICAiMC41ODM5NTYsIDAuNjg5MjIsIDEuNjI0OTksIDMuMTg1NzYsIDQuNzU2MjMsIDguMzg5MDksIDEwLjQ2NjQiLCBcCi0gICAgICAgICAgIjAuNTgzOTA3LCAwLjY4NzkxNCwgMS42Mjc3LCAzLjE4NjU5LCA0Ljc1NjIxLCA4LjM4ODk4LCAxMC40NjU3IiwgXAotICAgICAgICAgICIwLjU4NDkyMiwgMC42ODc5NjIsIDEuNjI3NjcsIDMuMTkyODUsIDQuNzQ3ODEsIDguMzg0OSwgMTAuNDY2MiIsIFwKLSAgICAgICAgICAiMC41ODYxMzIsIDAuNjg4MzM1LCAxLjYyODEsIDMuMTkyNiwgNC43NDY5MSwgOC4zODkzLCAxMC40NjU4IiwgXAotICAgICAgICAgICIwLjU4ODI4MSwgMC42OTEyNTksIDEuNjI1MzksIDMuMTkxNywgNC43NTY2NSwgOC4zODksIDEwLjQ2NjMiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDgyNDM1LCAwLjA5NjMwMSwgMC4yMjA4NDQsIDAuNDI4MzI5LCAwLjYzNTc5OCwgMS4xMTk4MywgMS4zOTY2NSIsIFwKLSAgICAgICAgICAiMC4wOTI2NjUsIDAuMTA2NTQsIDAuMjMxMTEyLCAwLjQzODY5NSwgMC42NDYzMDgsIDEuMTMwNiwgMS40MDY3NiIsIFwKLSAgICAgICAgICAiMC4xMDU3MDUsIDAuMTE5NTUxLCAwLjI0NDExOCwgMC40NTE0ODYsIDAuNjU5MTg1LCAxLjE0MzMzLCAxLjQyMDEiLCBcCi0gICAgICAgICAgIjAuMTE4Njc0LCAwLjEzMjQ3OSwgMC4yNTcwMDMsIDAuNDYzOTk3LCAwLjY3MDM3NSwgMS4xNTQ2NywgMS40MzEwMyIsIFwKLSAgICAgICAgICAiMC4xMzE0NzQsIDAuMTQ1MjY3LCAwLjI2OTIyNCwgMC40NzY4MTYsIDAuNjgyNTg1LCAxLjE2NTQsIDEuNDQyNiIsIFwKLSAgICAgICAgICAiMC4xNTIwNTIsIDAuMTY1ODIsIDAuMjg5ODcsIDAuNDk4MTczLCAwLjcwNDQ0OSwgMS4xODU0NCwgMS40NjE4MSIsIFwKLSAgICAgICAgICAiMC4xNzAxODUsIDAuMTgzOTg3LCAwLjMwNzEzOSwgMC41MTQ4NTQsIDAuNzIyMDI5LCAxLjIwMjc5LCAxLjQ3OTM2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE1NTMwMSwgMC4xODMwMzcsIDAuNDMyMjY3LCAwLjg0NzY5MywgMS4yNjM2LCAyLjIzMjk4LCAyLjc4NzM1IiwgXAotICAgICAgICAgICIwLjE1NTI5NywgMC4xODI5OTMsIDAuNDMyMzM4LCAwLjg0Nzk2MywgMS4yNjM4OSwgMi4yMzM2NywgMi43ODc1IiwgXAotICAgICAgICAgICIwLjE1NjMzMywgMC4xODM0MzMsIDAuNDMyNDE3LCAwLjg0Nzk1NywgMS4yNjM4OCwgMi4yMzMyMywgMi43ODc3NiIsIFwKLSAgICAgICAgICAiMC4xNTk5NzUsIDAuMTg2MzMxLCAwLjQzMjI2MSwgMC44NDgwMzcsIDEuMjYzNDQsIDIuMjMzNDMsIDIuNzg3NTEiLCBcCi0gICAgICAgICAgIjAuMTY1NDQ3LCAwLjE5MTA1LCAwLjQzMjU4MiwgMC44NDgxMjUsIDEuMjYzMzMsIDIuMjMzMzcsIDIuNzg3MzYiLCBcCi0gICAgICAgICAgIjAuMTc2Mjc1LCAwLjIwMDk4OSwgMC40MzU5MTMsIDAuODQ4MTA4LCAxLjI2MzkyLCAyLjIzMzY5LCAyLjc4NzQiLCBcCi0gICAgICAgICAgIjAuMTg3MjQ2LCAwLjIxMDk1LCAwLjQ0MTIxOCwgMC44NDc5MDYsIDEuMjYzNSwgMi4yMzI0OCwgMi43ODcyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJEIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yODg5OTYsIDAuMzQxMDMzLCAwLjgwOTc5NSwgMS41OTI1OSwgMi4zNzI0MSwgNC4xOTQ5OCwgNS4yMzUyOCIsIFwKLSAgICAgICAgICAiMC4yOTcwOCwgMC4zNDg5OTcsIDAuODE4NDQ5LCAxLjU5OTgsIDIuMzgxNTEsIDQuMjAyOTIsIDUuMjQzNzQiLCBcCi0gICAgICAgICAgIjAuMzA3MDk1LCAwLjM1OTAwOSwgMC44Mjg5MzcsIDEuNjEwMDEsIDIuMzkyNTYsIDQuMjEzMzIsIDUuMjUzOCIsIFwKLSAgICAgICAgICAiMC4zMTY5LCAwLjM2OTMxOCwgMC44MzgyNTMsIDEuNjIwNTMsIDIuNDAyMTgsIDQuMjIzNTYsIDUuMjYzODciLCBcCi0gICAgICAgICAgIjAuMzI2OTYxLCAwLjM3OTA2NSwgMC44NDg1MTQsIDEuNjMwMzksIDIuNDEyNzMsIDQuMjMzNDgsIDUuMjc0MTUiLCBcCi0gICAgICAgICAgIjAuMzQzMjUyLCAwLjM5NTIzOSwgMC44NjQ1MzksIDEuNjQ3MTIsIDIuNDI4NzksIDQuMjQ5NywgNS4yOTAyNyIsIFwKLSAgICAgICAgICAiMC4zNTc0NTksIDAuNDA5NzIyLCAwLjg3ODY1LCAxLjY2MDM3LCAyLjQ0MjYyLCA0LjI2MzY4LCA1LjMwNDQ1Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjU4NTAxNywgMC42ODkyMjIsIDEuNjI3NiwgMy4xODU4OCwgNC43NDg4LCA4LjM4NTA1LCAxMC40NjYxIiwgXAotICAgICAgICAgICIwLjU4NTA3OSwgMC42ODgxNjIsIDEuNjI4MDYsIDMuMTg1OTgsIDQuNzU2NSwgOC4zODkzMSwgMTAuNDY2NyIsIFwKLSAgICAgICAgICAiMC41ODM4NTcsIDAuNjg5MTQsIDEuNjI0OTQsIDMuMTkyMTcsIDQuNzU3MjksIDguMzg5NDUsIDEwLjQ2NTgiLCBcCi0gICAgICAgICAgIjAuNTgzODIsIDAuNjg3ODYxLCAxLjYyNzY3LCAzLjE5MjUzLCA0Ljc0NjUyLCA4LjM4OTM5LCAxMC40NjU2IiwgXAotICAgICAgICAgICIwLjU4NDU1MywgMC42ODgxNjUsIDEuNjI3ODcsIDMuMTkyMywgNC43NTcyMiwgOC4zODkzNCwgMTAuNDY1NCIsIFwKLSAgICAgICAgICAiMC41ODYyOTksIDAuNjg5MywgMS42Mjc3LCAzLjE5MjgxLCA0Ljc0Njc5LCA4LjM4OTI1LCAxMC40NjU4IiwgXAotICAgICAgICAgICIwLjU4OTgsIDAuNjkxNzkyLCAxLjYyNzU1LCAzLjE5MTgxLCA0Ljc1Njc2LCA4LjM4OSwgMTAuNDY2MyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODAwNjYsIDAuMDkzODk4LCAwLjIxODM4NSwgMC40MjU5MDMsIDAuNjMzMjMsIDEuMTE3MjYsIDEuMzk0MDkiLCBcCi0gICAgICAgICAgIjAuMDkwMzU2LCAwLjEwNDE4OSwgMC4yMjg3MzMsIDAuNDM2MTI1LCAwLjY0MzQ5NywgMS4xMjc1MiwgMS40MDQ0NiIsIFwKLSAgICAgICAgICAiMC4xMDI5ODEsIDAuMTE2OTU0LCAwLjI0MTI4NiwgMC40NDgzOTEsIDAuNjU1NDkyLCAxLjEzODg4LCAxLjQxNjE4IiwgXAotICAgICAgICAgICIwLjExNTcwNCwgMC4xMjk1MjgsIDAuMjU0MzAxLCAwLjQ2MTYxOCwgMC42Njc4MywgMS4xNTA5MiwgMS40MjgwNyIsIFwKLSAgICAgICAgICAiMC4xMjkwMzksIDAuMTQyMjg5LCAwLjI2Njk5MywgMC40NzQzOCwgMC42ODAwNTYsIDEuMTY0MDksIDEuNDQwMzMiLCBcCi0gICAgICAgICAgIjAuMTQ5ODY1LCAwLjE2MzY4LCAwLjI4NzE0NiwgMC40OTQ2NzEsIDAuNzAzMjYxLCAxLjE4MzMyLCAxLjQ1OTU2IiwgXAotICAgICAgICAgICIwLjE2ODAzNCwgMC4xODE4NjcsIDAuMzA1MDYsIDAuNTEyNzQsIDAuNzE5ODk1LCAxLjIwMDU2LCAxLjQ3NzIyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE1MzIyNCwgMC4xODEwNCwgMC40MzA1NDYsIDAuODQ2NDg5LCAxLjI2MTg1LCAyLjIzMjIzLCAyLjc4OTgyIiwgXAotICAgICAgICAgICIwLjE1Mjk0OCwgMC4xODA4MTUsIDAuNDMwMzQ3LCAwLjg0NTk2LCAxLjI2NTQ2LCAyLjIzNzk1LCAyLjc4OTk0IiwgXAotICAgICAgICAgICIwLjE1Mzk5LCAwLjE4MTUwOCwgMC40MzEyNSwgMC44NDU3MDMsIDEuMjYyMzEsIDIuMjM4MDcsIDIuNzkxNTMiLCBcCi0gICAgICAgICAgIjAuMTU4MTY3LCAwLjE4NDY4OSwgMC40Mjk5NywgMC44NDU1MjgsIDEuMjY0OTEsIDIuMjMyMDcsIDIuNzkwNiIsIFwKLSAgICAgICAgICAiMC4xNjM1MywgMC4xODk2NjksIDAuNDMwMjk1LCAwLjg0Njg5MiwgMS4yNjE1NywgMi4yMzE1OCwgMi43ODY2IiwgXAotICAgICAgICAgICIwLjE3NDA0OSwgMC4xOTg4NTUsIDAuNDMzNzkyLCAwLjg0ODM3MywgMS4yNjIyNSwgMi4yMzQ2NywgMi43ODU5MSIsIFwKLSAgICAgICAgICAiMC4xODQ5NTIsIDAuMjA4NjY0LCAwLjQ0MDI3NywgMC44NDg0NDgsIDEuMjY0NjgsIDIuMjM4MjksIDIuNzg1MzkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBTiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyMTc4LCAwLjAwMjE3OCwgMC4wMDIxNzgsIDAuMDAyMTc5LCAwLjAwMjE3OCwgMC4wMDIxNzgsIDAuMDAyMTc2IiwgXAotICAgICAgICAgICIwLjAwMjE1MiwgMC4wMDIxNTIsIDAuMDAyMTUzLCAwLjAwMjE1MywgMC4wMDIxNTMsIDAuMDAyMTUzLCAwLjAwMjE1MSIsIFwKLSAgICAgICAgICAiMC4wMDIxNTksIDAuMDAyMTYsIDAuMDAyMTYxLCAwLjAwMjE2MiwgMC4wMDIxNjIsIDAuMDAyMTYyLCAwLjAwMjE2MSIsIFwKLSAgICAgICAgICAiMC4wMDIxNjEsIDAuMDAyMTYyLCAwLjAwMjE2NCwgMC4wMDIxNjQsIDAuMDAyMTY1LCAwLjAwMjE2NiwgMC4wMDIxNjQiLCBcCi0gICAgICAgICAgIjAuMDAyMTc1LCAwLjAwMjE3NiwgMC4wMDIxNzksIDAuMDAyMTc5LCAwLjAwMjE3OSwgMC4wMDIxODEsIDAuMDAyMTc4IiwgXAotICAgICAgICAgICIwLjAwMjIwMywgMC4wMDIyMDMsIDAuMDAyMjA3LCAwLjAwMjIwNywgMC4wMDIyMDgsIDAuMDAyMjA4LCAwLjAwMjIwNiIsIFwKLSAgICAgICAgICAiMC4wMDIyMjcsIDAuMDAyMjI4LCAwLjAwMjIzMSwgMC4wMDIyMjksIDAuMDAyMjMyLCAwLjAwMjIzMywgMC4wMDIyMyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjIyMSwgMC4wMDIyMjEsIDAuMDAyMjIxLCAwLjAwMjIyMSwgMC4wMDIyMjEsIDAuMDAyMjIsIDAuMDAyMjIiLCBcCi0gICAgICAgICAgIjAuMDAyMTk4LCAwLjAwMjE5OCwgMC4wMDIxOTgsIDAuMDAyMTk4LCAwLjAwMjE5OCwgMC4wMDIxOTcsIDAuMDAyMTk3IiwgXAotICAgICAgICAgICIwLjAwMjE5NSwgMC4wMDIxOTYsIDAuMDAyMTk2LCAwLjAwMjE5NiwgMC4wMDIxOTYsIDAuMDAyMTk1LCAwLjAwMjE5NSIsIFwKLSAgICAgICAgICAiMC4wMDIyMDUsIDAuMDAyMjA1LCAwLjAwMjIwNiwgMC4wMDIyMDUsIDAuMDAyMjA1LCAwLjAwMjIwNSwgMC4wMDIyMDUiLCBcCi0gICAgICAgICAgIjAuMDAyMjE2LCAwLjAwMjIxNywgMC4wMDIyMTgsIDAuMDAyMjE3LCAwLjAwMjIxMiwgMC4wMDIyMTcsIDAuMDAyMjE2IiwgXAotICAgICAgICAgICIwLjAwMjIzNywgMC4wMDIyNDEsIDAuMDAyMjQyLCAwLjAwMjIzNywgMC4wMDIyNDIsIDAuMDAyMjQxLCAwLjAwMjI0MSIsIFwKLSAgICAgICAgICAiMC4wMDIyNjMsIDAuMDAyMjY0LCAwLjAwMjI2MiwgMC4wMDIyNjQsIDAuMDAyMjY1LCAwLjAwMjI2NCwgMC4wMDIyNjQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDIwMSwgMC4wMDIwMSwgMC4wMDIwMTEsIDAuMDAyMDExLCAwLjAwMjAxMSwgMC4wMDIwMTEsIDAuMDAyMDA4IiwgXAotICAgICAgICAgICIwLjAwMjAwNCwgMC4wMDIwMDYsIDAuMDAyMDA4LCAwLjAwMjAxLCAwLjAwMjAxLCAwLjAwMjAxLCAwLjAwMjAwOSIsIFwKLSAgICAgICAgICAiMC4wMDE5OTksIDAuMDAyMDAxLCAwLjAwMjAwNiwgMC4wMDIwMDgsIDAuMDAyMDA5LCAwLjAwMjAxLCAwLjAwMjAwOCIsIFwKLSAgICAgICAgICAiMC4wMDE5OTUsIDAuMDAxOTk3LCAwLjAwMjAwNSwgMC4wMDIwMDgsIDAuMDAyMDA4LCAwLjAwMjAwOSwgMC4wMDIwMDgiLCBcCi0gICAgICAgICAgIjAuMDAxOTkyLCAwLjAwMTk5NCwgMC4wMDIwMDIsIDAuMDAyMDA2LCAwLjAwMjAwOCwgMC4wMDIwMSwgMC4wMDIwMDgiLCBcCi0gICAgICAgICAgIjAuMDAxOTg5LCAwLjAwMTk5LCAwLjAwMiwgMC4wMDIwMDQsIDAuMDAyMDA2LCAwLjAwMjAwOCwgMC4wMDIwMDYiLCBcCi0gICAgICAgICAgIjAuMDAxOTg3LCAwLjAwMTk4OCwgMC4wMDE5OTgsIDAuMDAyMDA0LCAwLjAwMjAwNywgMC4wMDIwMDgsIDAuMDAyMDA2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwMzkxLCAwLjAwMDM5MSwgMC4wMDAzOTEsIDAuMDAwMzkxLCAwLjAwMDM5LCAwLjAwMDM5MSwgMC4wMDAzOTEiLCBcCi0gICAgICAgICAgIjAuMDAwMzgxLCAwLjAwMDM4MSwgMC4wMDAzODIsIDAuMDAwMzgzLCAwLjAwMDM4MywgMC4wMDAzODMsIDAuMDAwMzgyIiwgXAotICAgICAgICAgICIwLjAwMDM3NywgMC4wMDAzNzgsIDAuMDAwMzgsIDAuMDAwMzgxLCAwLjAwMDM4MSwgMC4wMDAzODEsIDAuMDAwMzgxIiwgXAotICAgICAgICAgICIwLjAwMDM3NywgMC4wMDAzNzcsIDAuMDAwMzgsIDAuMDAwMzgxLCAwLjAwMDM4MSwgMC4wMDAzNzksIDAuMDAwMzc5IiwgXAotICAgICAgICAgICIwLjAwMDM3NiwgMC4wMDAzNzcsIDAuMDAwMzgxLCAwLjAwMDM4MSwgMC4wMDAzODEsIDAuMDAwMzc5LCAwLjAwMDM3OSIsIFwKLSAgICAgICAgICAiMC4wMDAzODUsIDAuMDAwMzg0LCAwLjAwMDM4MiwgMC4wMDAzODEsIDAuMDAwMzgxLCAwLjAwMDM3OSwgMC4wMDAzNzkiLCBcCi0gICAgICAgICAgIjAuMDAwMzkyLCAwLjAwMDM5MSwgMC4wMDAzODQsIDAuMDAwMzgzLCAwLjAwMDM4MiwgMC4wMDAzOCwgMC4wMDAzOCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTgxNiwgMC4wMDE4MTYsIDAuMDAxODE3LCAwLjAwMTgxNywgMC4wMDE4MTcsIDAuMDAxODE3LCAwLjAwMTgxNiIsIFwKLSAgICAgICAgICAiMC4wMDE4MTEsIDAuMDAxODEyLCAwLjAwMTgxNCwgMC4wMDE4MTYsIDAuMDAxODE2LCAwLjAwMTgxNywgMC4wMDE4MTUiLCBcCi0gICAgICAgICAgIjAuMDAxODA2LCAwLjAwMTgwNywgMC4wMDE4MTMsIDAuMDAxODE0LCAwLjAwMTgxNiwgMC4wMDE4MTYsIDAuMDAxODE0IiwgXAotICAgICAgICAgICIwLjAwMTgwMiwgMC4wMDE4MDQsIDAuMDAxODExLCAwLjAwMTgxNCwgMC4wMDE4MTQsIDAuMDAxODE2LCAwLjAwMTgxNSIsIFwKLSAgICAgICAgICAiMC4wMDE3OTksIDAuMDAxOCwgMC4wMDE4MSwgMC4wMDE4MTMsIDAuMDAxODE0LCAwLjAwMTgxNiwgMC4wMDE4MTQiLCBcCi0gICAgICAgICAgIjAuMDAxNzk2LCAwLjAwMTc5OCwgMC4wMDE4MDcsIDAuMDAxODExLCAwLjAwMTgxNCwgMC4wMDE4MTYsIDAuMDAxODE0IiwgXAotICAgICAgICAgICIwLjAwMTc5NSwgMC4wMDE3OTYsIDAuMDAxODA1LCAwLjAwMTgwOSwgMC4wMDE4MTIsIDAuMDAxODE1LCAwLjAwMTgxMyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDE5OCwgMC4wMDAxOTgsIDAuMDAwMTk4LCAwLjAwMDE5OCwgMC4wMDAxOTgsIDAuMDAwMTk4LCAwLjAwMDE5OCIsIFwKLSAgICAgICAgICAiMC4wMDAyMDEsIDAuMDAwMjAyLCAwLjAwMDIwNSwgMC4wMDAyMDYsIDAuMDAwMjA2LCAwLjAwMDIwNiwgMC4wMDAyMDYiLCBcCi0gICAgICAgICAgIjAuMDAwMTk5LCAwLjAwMDIsIDAuMDAwMjA1LCAwLjAwMDIwNiwgMC4wMDAyMDcsIDAuMDAwMjA3LCAwLjAwMDIwNyIsIFwKLSAgICAgICAgICAiMC4wMDAxOTgsIDAuMDAwMiwgMC4wMDAyMDQsIDAuMDAwMjA2LCAwLjAwMDIwOCwgMC4wMDAyMDgsIDAuMDAwMjA5IiwgXAotICAgICAgICAgICIwLjAwMDE5NywgMC4wMDAxOTksIDAuMDAwMjA2LCAwLjAwMDIwNiwgMC4wMDAyMDgsIDAuMDAwMjA5LCAwLjAwMDIwOSIsIFwKLSAgICAgICAgICAiMC4wMDAyMDUsIDAuMDAwMjA1LCAwLjAwMDIwNywgMC4wMDAyMDcsIDAuMDAwMjA4LCAwLjAwMDIwOSwgMC4wMDAyMDkiLCBcCi0gICAgICAgICAgIjAuMDAwMjExLCAwLjAwMDIxMSwgMC4wMDAyMDksIDAuMDAwMjA5LCAwLjAwMDIwOSwgMC4wMDAyMSwgMC4wMDAyMSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkQiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTYyMywgMC4wMDE2MjMsIDAuMDAxNjI0LCAwLjAwMTYyNSwgMC4wMDE2MjUsIDAuMDAxNjIyLCAwLjAwMTYyMyIsIFwKLSAgICAgICAgICAiMC4wMDE2MTYsIDAuMDAxNjE3LCAwLjAwMTYyMSwgMC4wMDE2MjMsIDAuMDAxNjI0LCAwLjAwMTYyNCwgMC4wMDE2MjMiLCBcCi0gICAgICAgICAgIjAuMDAxNjA5LCAwLjAwMTYxMSwgMC4wMDE2MTgsIDAuMDAxNjIxLCAwLjAwMTYyMiwgMC4wMDE2MjMsIDAuMDAxNjIzIiwgXAotICAgICAgICAgICIwLjAwMTYwNSwgMC4wMDE2MDcsIDAuMDAxNjE2LCAwLjAwMTYyLCAwLjAwMTYyMiwgMC4wMDE2MjMsIDAuMDAxNjIyIiwgXAotICAgICAgICAgICIwLjAwMTYwNCwgMC4wMDE2MDUsIDAuMDAxNjE0LCAwLjAwMTYxOSwgMC4wMDE2MjEsIDAuMDAxNjIzLCAwLjAwMTYyMSIsIFwKLSAgICAgICAgICAiMC4wMDE2MDQsIDAuMDAxNjA2LCAwLjAwMTYxMywgMC4wMDE2MTgsIDAuMDAxNjIsIDAuMDAxNjIzLCAwLjAwMTYyMSIsIFwKLSAgICAgICAgICAiMC4wMDE2MDgsIDAuMDAxNjA4LCAwLjAwMTYxMywgMC4wMDE2MTcsIDAuMDAxNjE5LCAwLjAwMTYyMiwgMC4wMDE2MiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDAyMSwgMC4wMDAwMjEsIDAuMDAwMDIzLCAwLjAwMDAyMywgMC4wMDAwMjMsIDAuMDAwMDIzLCAwLjAwMDAyMyIsIFwKLSAgICAgICAgICAiMC4wMDAwMywgMC4wMDAwMzEsIDAuMDAwMDM2LCAwLjAwMDAzOCwgMC4wMDAwMzgsIDAuMDAwMDM5LCAwLjAwMDAzOSIsIFwKLSAgICAgICAgICAiMC4wMDAwMjgsIDAuMDAwMDMsIDAuMDAwMDM3LCAwLjAwMDA0LCAwLjAwMDA0NCwgMC4wMDAwNDUsIDAuMDAwMDQ1IiwgXAotICAgICAgICAgICIwLjAwMDAyNiwgMC4wMDAwMjksIDAuMDAwMDM2LCAwLjAwMDA0LCAwLjAwMDA0MywgMC4wMDAwNDYsIDAuMDAwMDQ2IiwgXAotICAgICAgICAgICIwLjAwMDAyNiwgMC4wMDAwMjcsIDAuMDAwMDM2LCAwLjAwMDA0LCAwLjAwMDA0MywgMC4wMDAwNDUsIDAuMDAwMDQ2IiwgXAotICAgICAgICAgICIwLjAwMDAyNywgMC4wMDAwMjksIDAuMDAwMDM2LCAwLjAwMDA0LCAwLjAwMDA0MSwgMC4wMDAwNDYsIDAuMDAwMDQ2IiwgXAotICAgICAgICAgICIwLjAwMDAyOSwgMC4wMDAwMzEsIDAuMDAwMDM3LCAwLjAwMDA0MSwgMC4wMDAwNDIsIDAuMDAwMDQ2LCAwLjAwMDA0NiIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogTk9SNFg0ICoKLSAqIC0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoTk9SNFg0KSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuNTQyMzQ0OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDMwODIwMzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDMwNTM2ODsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDMwODIwMzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDEzMDcsIDAuMDAxMzk4LCAwLjAwMTQ0NywgMC4wMDE0NjgsIDAuMDAxNDgyLCAwLjAwMTQ4OCwgMC4wMDE0OTciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDU2NzIsIDAuMDA1Njc1LCAwLjAwNTY3MywgMC4wMDU2NzUsIDAuMDA1Njc1LCAwLjAwNTY3NSwgMC4wMDU2NzYiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMzA0NTU0OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMzAyMDM2OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMzA0NTU0OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTI4LCAwLjAwMTM4NSwgMC4wMDE0NDMsIDAuMDAxNDcxLCAwLjAwMTQ4OCwgMC4wMDE1MDksIDAuMDAxNTI0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzNzE0LCAwLjAwMzcxNSwgMC4wMDM3MTYsIDAuMDAzNzE2LCAwLjAwMzcxNiwgMC4wMDM3MTYsIDAuMDAzNzE2Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihDKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDI5NjUwNzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDI5NDI1MjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDI5NjUwNzsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDEzMTcsIDAuMDAxNDUzLCAwLjAwMTQ5OCwgMC4wMDE1MTcsIDAuMDAxNTI3LCAwLjAwMTUzNCwgMC4wMDE1NCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTgwMSwgMC4wMDE4MDEsIDAuMDAxODAyLCAwLjAwMTgwMiwgMC4wMDE4MDIsIDAuMDAxODAyLCAwLjAwMTgwMyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAzMDUzNTU7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAzMDUzMTc7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAzMDUzNTU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzYsIDAuMDAwMzYsIDAuMDAwMzYxLCAwLjAwMDM2MSwgMC4wMDAzNjEsIDAuMDAwMzYxLCAwLjAwMDM2MSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTMyOCwgMC4wMDEzMjgsIDAuMDAxMzI4LCAwLjAwMTMyOCwgMC4wMDEzMjgsIDAuMDAxMzI4LCAwLjAwMTMyNyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjI2NzY2NTsKLSAgICBmdW5jdGlvbiA6ICIoISgoKEErQikrQykrRCkpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4ODM1NSwgMC4zNjk3MjgsIDAuNjUwMTI5LCAwLjg1MTUxMSwgMS4xNzI0OSwgMS40NTMzMiwgMS44NTUzNCIsIFwKLSAgICAgICAgICAiMC4wOTY3NDUsIDAuMzc4NCwgMC42NTk0MDIsIDAuODYwNDEsIDEuMTgxMzgsIDEuNDYzNTQsIDEuODY0MDQiLCBcCi0gICAgICAgICAgIjAuMTA1NjE4LCAwLjM4NzY0MywgMC42Njg5NjcsIDAuODY5NjY1LCAxLjE5MDU4LCAxLjQ3MTk5LCAxLjg3MjIiLCBcCi0gICAgICAgICAgIjAuMTEzNDc3LCAwLjM5NTI3OCwgMC42NzY2NjksIDAuODc3MTU2LCAxLjE5ODA4LCAxLjQ4MDU2LCAxLjg4MDg4IiwgXAotICAgICAgICAgICIwLjEyMDc0NiwgMC40MDI1NDUsIDAuNjgzODU2LCAwLjg4NDk2OSwgMS4yMDY3MSwgMS40ODYyNywgMS44ODg3NiIsIFwKLSAgICAgICAgICAiMC4xMzE1MTMsIDAuNDEzNTc2LCAwLjY5NTIyMiwgMC44OTU1OTYsIDEuMjE2NjcsIDEuNDk4NDksIDEuODk5OTgiLCBcCi0gICAgICAgICAgIjAuMTM5ODc2LCAwLjQyMjY5NywgMC43MDQwODEsIDAuOTA1MDUsIDEuMjI2MzEsIDEuNTA3LCAxLjkwODQ0Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTM0ODg0LCAwLjY5NzA5MywgMS4yNTk1MSwgMS42NjQ5NiwgMi4zMDkwNiwgMi44NzI3MywgMy42Nzg2MiIsIFwKLSAgICAgICAgICAiMC4xMzQ4OTYsIDAuNjk4NDQ2LCAxLjI2MDA0LCAxLjY2NDk2LCAyLjMwOTAzLCAyLjg2ODAxLCAzLjY3ODQyIiwgXAotICAgICAgICAgICIwLjEzNSwgMC42OTg2NTUsIDEuMjU5ODksIDEuNjY1MSwgMi4zMDkxLCAyLjg3MzI5LCAzLjY3MzY2IiwgXAotICAgICAgICAgICIwLjEzNTYzMiwgMC42OTg0OCwgMS4yNjIzNiwgMS42NjE3NiwgMi4zMDg3MywgMi44NjcxNywgMy42NzgxOSIsIFwKLSAgICAgICAgICAiMC4xMzY3NTQsIDAuNjk4NDA5LCAxLjI2MjE5LCAxLjY2NTEzLCAyLjMwNDkyLCAyLjg2OTQ0LCAzLjY3MDYxIiwgXAotICAgICAgICAgICIwLjEzOTU4MSwgMC42OTg1NDUsIDEuMjYyNDYsIDEuNjY0NzEsIDIuMzA4OTIsIDIuODczMzYsIDMuNjc4NzIiLCBcCi0gICAgICAgICAgIjAuMTQzMTUyLCAwLjY5ODA4OSwgMS4yNTk2OSwgMS42NjQ4NSwgMi4zMDQ4NCwgMi44NzI0OSwgMy42Nzc4OSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyNTA4OSwgMC4xMDE2LCAwLjE3NTYxMSwgMC4yMjgyNjYsIDAuMzEyMzYxLCAwLjM4NTg4OCwgMC40OTA3ODkiLCBcCi0gICAgICAgICAgIjAuMDM1NDI1LCAwLjExMTY1NCwgMC4xODUzNjYsIDAuMjM4MDEyLCAwLjMyMjEzOSwgMC4zOTU2MTIsIDAuNTAwNTkxIiwgXAotICAgICAgICAgICIwLjA0ODg1NSwgMC4xMjQyMTgsIDAuMTk4MjY5LCAwLjI1MDg4MSwgMC4zMzQ5NzgsIDAuNDA4NDYyLCAwLjUxMjQ0OSIsIFwKLSAgICAgICAgICAiMC4wNjA4MiwgMC4xMzcwMjksIDAuMjExMTcxLCAwLjI2MzgwNiwgMC4zNDc4MTIsIDAuNDIxMzE4LCAwLjUyNjI2OCIsIFwKLSAgICAgICAgICAiMC4wNzEwODIsIDAuMTQ5NzA1LCAwLjIyMzY0MywgMC4yNzY1NjYsIDAuMzYwNTQyLCAwLjQzMzk4MywgMC41Mzg4OCIsIFwKLSAgICAgICAgICAiMC4wODQ5MjMsIDAuMTcxMDAzLCAwLjI0NDExNiwgMC4yOTY2NzgsIDAuMzgxMTg1LCAwLjQ1NDU3MiwgMC41NTkzMzciLCBcCi0gICAgICAgICAgIjAuMDk1ODE1LCAwLjE4OTM3MSwgMC4yNjE5NzUsIDAuMzE0NTQzLCAwLjM5ODU5NywgMC40NzI2MSwgMC41NzczOTUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDI0MjEsIDAuMTkxMjQzLCAwLjMzOTc4OSwgMC40NDU1MiwgMC42MTUxMzEsIDAuNzYzNzUxLCAwLjk3NTU3NSIsIFwKLSAgICAgICAgICAiMC4wNDM3NzUsIDAuMTkxMjA4LCAwLjMzOTU0MiwgMC40NDU3OTYsIDAuNjE1MzE0LCAwLjc2MzY4MywgMC45NzU1NzUiLCBcCi0gICAgICAgICAgIjAuMDQ5OTE2LCAwLjE5MTQ2LCAwLjMzOTUyLCAwLjQ0NTQ5NCwgMC42MTUxMDMsIDAuNzYzNjEsIDAuOTc1NTY5IiwgXAotICAgICAgICAgICIwLjA1ODIyMywgMC4xOTM5ODYsIDAuMzM5NzYxLCAwLjQ0NTY2MiwgMC42MTU0MzIsIDAuNzYzNzk3LCAwLjk3NTY1NCIsIFwKLSAgICAgICAgICAiMC4wNjc0NDUsIDAuMTk4Njg1LCAwLjM0MTIxMywgMC40NDU2NjYsIDAuNjE1MDk5LCAwLjc2MzkwOSwgMC45NzU1ODciLCBcCi0gICAgICAgICAgIjAuMDgxODUyLCAwLjIwNzQ3NywgMC4zNDY0OTMsIDAuNDQ4NzM0LCAwLjYxNTUzOCwgMC43NjM1MTcsIDAuOTc1NTM4IiwgXAotICAgICAgICAgICIwLjA5MzI1MSwgMC4yMTcwMjcsIDAuMzUzMDgxLCAwLjQ1Mzc2NywgMC42MTc5MzYsIDAuNzY0MTc1LCAwLjk3NTUzNyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4MzczNiwgMC4zNjQ5MTcsIDAuNjQ2NDQ5LCAwLjg0NjYxLCAxLjE2ODMsIDEuNDQ4NCwgMS44NTE1MyIsIFwKLSAgICAgICAgICAiMC4wOTE5MDMsIDAuMzczNTE5LCAwLjY1NDk4MSwgMC44NTUyODYsIDEuMTc2NzksIDEuNDU3MDUsIDEuODU5OSIsIFwKLSAgICAgICAgICAiMC4xMDA4NTIsIDAuMzgyNjkzLCAwLjY2NDAwNywgMC44NjQ3MjgsIDEuMTg2MTIsIDEuNDY4LCAxLjg2ODMyIiwgXAotICAgICAgICAgICIwLjEwOTMwNSwgMC4zOTEzMjcsIDAuNjcyNjMyLCAwLjg3MzM1OSwgMS4xOTUyNywgMS40NzU4OCwgMS44NzgyMiIsIFwKLSAgICAgICAgICAiMC4xMTczNywgMC4zOTkxOTIsIDAuNjgwNTc3LCAwLjg4MTA5LCAxLjIwMjkyLCAxLjQ4MzAzLCAxLjg4NjE1IiwgXAotICAgICAgICAgICIwLjEyOTU0MSwgMC40MTE4MTMsIDAuNjkzMDQ5LCAwLjg5MzgxMiwgMS4yMTU1OCwgMS40OTU4MywgMS44OTc4NyIsIFwKLSAgICAgICAgICAiMC4xMzkxMywgMC40MjI3OCwgMC43MDQ0NDQsIDAuOTA1NDI3LCAxLjIyNjQ0LCAxLjUwNzg0LCAxLjkwOTciKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMzQ2NTcsIDAuNjk4MzY2LCAxLjI2MjU0LCAxLjY2NDY4LCAyLjMwOTQzLCAyLjg2NzU4LCAzLjY3OTMxIiwgXAotICAgICAgICAgICIwLjEzNDg5LCAwLjY5ODM5MywgMS4yNjI0NCwgMS42NjE1OCwgMi4zMDkyNSwgMi44Njc1LCAzLjY3OTAyIiwgXAotICAgICAgICAgICIwLjEzNTE2OSwgMC42OTgzOTcsIDEuMjYyMjYsIDEuNjYxNzksIDIuMzA5MjksIDIuODczODcsIDMuNjc4MjMiLCBcCi0gICAgICAgICAgIjAuMTM2MzA5LCAwLjY5ODU4OSwgMS4yNjIzOSwgMS42NjQ5OSwgMi4zMDQ5LCAyLjg3MzMzLCAzLjY3MDciLCBcCi0gICAgICAgICAgIjAuMTM4MzcyLCAwLjY5ODQwOSwgMS4yNjIyNSwgMS42NjQ2NCwgMi4zMDk0NiwgMi44NzI0MSwgMy42NzkyNyIsIFwKLSAgICAgICAgICAiMC4xNDMwNjEsIDAuNjk3MzM0LCAxLjI2MjAzLCAxLjY2MTU3LCAyLjMwOTM2LCAyLjg3MDIxLCAzLjY3ODMzIiwgXAotICAgICAgICAgICIwLjE0ODY4OSwgMC42OTk2NzYsIDEuMjYyMzksIDEuNjY1MTgsIDIuMzA5MiwgMi44NzMzMywgMy42NzkwMiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyNDM1MSwgMC4wOTkyNSwgMC4xNzI5NjEsIDAuMjI1NDk3LCAwLjMwOTUwMiwgMC4zODI5OTIsIDAuNDg3OTE5IiwgXAotICAgICAgICAgICIwLjAzNDU2MiwgMC4xMDkzMzcsIDAuMTgyNzExLCAwLjIzNTI1NCwgMC4zMTkyMjQsIDAuMzkyNzY2LCAwLjQ5NzYyNCIsIFwKLSAgICAgICAgICAiMC4wNDc2OTksIDAuMTIxOTY4LCAwLjE5NjEwNSwgMC4yNDg2OCwgMC4zMzI2OTIsIDAuNDA2MTE1LCAwLjUxMTAyMiIsIFwKLSAgICAgICAgICAiMC4wNTg5ODUsIDAuMTM0NzI5LCAwLjIwODQxOSwgMC4yNjExMzYsIDAuMzQ1MDc0LCAwLjQxODM3NiwgMC41MjM0NSIsIFwKLSAgICAgICAgICAiMC4wNjg3MzksIDAuMTQ4MDc3LCAwLjIyMTE1NywgMC4yNzQ0OTQsIDAuMzU4NDI3LCAwLjQzMTkxNywgMC41MzY5NCIsIFwKLSAgICAgICAgICAiMC4wODIwMTIsIDAuMTY4NjU1LCAwLjI0MTQxNCwgMC4yOTM4ODYsIDAuMzc4MjI2LCAwLjQ1MTY3MywgMC41NTYzODciLCBcCi0gICAgICAgICAgIjAuMDkyNTc5LCAwLjE4Njc5NSwgMC4yNTkyMjgsIDAuMzExNjcxLCAwLjM5NTY0NiwgMC40Njk1NDYsIDAuNTc0MzYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzkxNSwgMC4xODc1MDUsIDAuMzM2MDA0LCAwLjQ0MjEsIDAuNjExODQ0LCAwLjc2MDM3LCAwLjk3MzA0NCIsIFwKLSAgICAgICAgICAiMC4wNDA2NjEsIDAuMTg3NDk3LCAwLjMzNjAzMywgMC40NDIzMzQsIDAuNjExOTA2LCAwLjc2MDM2NCwgMC45NzI3NDUiLCBcCi0gICAgICAgICAgIjAuMDQ3MDI1LCAwLjE4Nzg3OCwgMC4zMzYwMDQsIDAuNDQyMjM4LCAwLjYxMjAxMSwgMC43NjA3NzEsIDAuOTcyNTA1IiwgXAotICAgICAgICAgICIwLjA1NTY5OCwgMC4xOTA2OCwgMC4zMzYxMjgsIDAuNDQyMDg4LCAwLjYxMjE2LCAwLjc2MDQxMiwgMC45NzI3MzUiLCBcCi0gICAgICAgICAgIjAuMDY0NzYzLCAwLjE5NTA4OCwgMC4zMzc4MTgsIDAuNDQyMzA1LCAwLjYxMTg5MSwgMC43NjAzMzMsIDAuOTcyNTY1IiwgXAotICAgICAgICAgICIwLjA3ODczLCAwLjIwNDY5NCwgMC4zNDM0NzMsIDAuNDQ1NTIyLCAwLjYxMjI3OSwgMC43NjA1NDEsIDAuOTcyODA2IiwgXAotICAgICAgICAgICIwLjA4OTA3NiwgMC4yMTQzMjksIDAuMzUwNDQsIDAuNDUwNjQ3LCAwLjYxNDc1NCwgMC43NjEwMzQsIDAuOTcyNTE0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDc1MTUyLCAwLjM1NjE0OCwgMC42Mzc0NDcsIDAuODM4MTkzLCAxLjE2MDE2LCAxLjQ0MDM3LCAxLjg0MTEiLCBcCi0gICAgICAgICAgIjAuMDgzMDg5LCAwLjM2NDg0LCAwLjY0NTU2MywgMC44NDYzNCwgMS4xNjczNSwgMS40NDg0MywgMS44NDk1NiIsIFwKLSAgICAgICAgICAiMC4wOTI2NjIsIDAuMzc0NDkxLCAwLjY1NTYzNywgMC44NTY3OTEsIDEuMTc3OTgsIDEuNDU4MDgsIDEuODYwNzUiLCBcCi0gICAgICAgICAgIjAuMTAyMTUxLCAwLjM4NDEyNywgMC42NjU4MTcsIDAuODY1ODE0LCAxLjE4NzM0LCAxLjQ2ODE0LCAxLjg3MDIxIiwgXAotICAgICAgICAgICIwLjExMTU5MiwgMC4zOTM3MTIsIDAuNjc0OTI5LCAwLjg3NjE4MSwgMS4xOTc1NSwgMS40Nzc1OCwgMS44ODA1NyIsIFwKLSAgICAgICAgICAiMC4xMjYwOTQsIDAuNDA4ODkzLCAwLjY4OTk0MywgMC44OTEzMDQsIDEuMjEyODYsIDEuNDkyOTcsIDEuODk1MTEiLCBcCi0gICAgICAgICAgIjAuMTM3NjU5LCAwLjQyMjM5MiwgMC43MDM5OSwgMC45MDQ1ODYsIDEuMjI1OTgsIDEuNTA3ODUsIDEuOTA4MDMiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMzQ2MDgsIDAuNjk2NzEyLCAxLjI1ODY2LCAxLjY2NDg0LCAyLjMwNDgsIDIuODcyOTgsIDMuNjcxNDciLCBcCi0gICAgICAgICAgIjAuMTM0NTksIDAuNjk3MTA0LCAxLjI2MDExLCAxLjY2MTgyLCAyLjMwODc5LCAyLjg2NzI1LCAzLjY3NzY1IiwgXAotICAgICAgICAgICIwLjEzNTIyNSwgMC42OTg0MzUsIDEuMjU5OCwgMS42NjE2MiwgMi4zMDkzOSwgMi44Njk3MSwgMy42Nzg4MyIsIFwKLSAgICAgICAgICAiMC4xMzc3MjEsIDAuNjk4NTA2LCAxLjI1OTczLCAxLjY2MzM3LCAyLjMwOTEzLCAyLjg2NzQ1LCAzLjY3ODY1IiwgXAotICAgICAgICAgICIwLjE0MTM5NywgMC42OTg0MjgsIDEuMjYyMTEsIDEuNjYxNDksIDIuMzA5NTUsIDIuODY3NjUsIDMuNjc5MTgiLCBcCi0gICAgICAgICAgIjAuMTQ5NTA1LCAwLjY5ODY5MSwgMS4yNjE5NCwgMS42NjQ5NywgMi4zMDk1LCAyLjg2OTU5LCAzLjY3ODQyIiwgXAotICAgICAgICAgICIwLjE1ODYwNywgMC42OTk5NjMsIDEuMjYyMTksIDEuNjYxODEsIDIuMzA4OTgsIDIuODczNTUsIDMuNjczNTYiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMjI2MTUsIDAuMDk2NTU0LCAwLjE3MDE1MiwgMC4yMjI2MjUsIDAuMzA2NjA2LCAwLjM4MDMwMSwgMC40ODUwNDkiLCBcCi0gICAgICAgICAgIjAuMDMyODk4LCAwLjEwNjc3LCAwLjE4MDEwNywgMC4yMzI2MiwgMC4zMTY2MzEsIDAuMzkwMDUyLCAwLjQ5NTA4NSIsIFwKLSAgICAgICAgICAiMC4wNDU2MywgMC4xMTk0MTgsIDAuMTkzMDcsIDAuMjQ1NTUzLCAwLjMyOTU1LCAwLjQwMjEwMSwgMC41MDY5OTEiLCBcCi0gICAgICAgICAgIjAuMDU2MTgxLCAwLjEzMjc4LCAwLjIwNTkyMywgMC4yNTg1MDYsIDAuMzQyMzkxLCAwLjQxNjQyNiwgMC41MjA2OTgiLCBcCi0gICAgICAgICAgIjAuMDY1MDkzLCAwLjE0NTc0NCwgMC4yMTg1MTMsIDAuMjcxMDM1LCAwLjM1NTE4NywgMC40MjkyNDEsIDAuNTM0MjM2IiwgXAotICAgICAgICAgICIwLjA3ODEwOSwgMC4xNjYwNzIsIDAuMjQwMDI4LCAwLjI5MjQ2NSwgMC4zNzYzODUsIDAuNDQ4ODU0LCAwLjU1MzgyOSIsIFwKLSAgICAgICAgICAiMC4wODc1MzksIDAuMTg0MzAzLCAwLjI1NjUzMiwgMC4zMDg5ODYsIDAuMzkyOTIzLCAwLjQ2Njg0NSwgMC41NzE3MTUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzU2MjQsIDAuMTg0MjY4LCAwLjMzMzAyNiwgMC40MzkwOTksIDAuNjA4OTY3LCAwLjc1NzgxOCwgMC45NzA0NDciLCBcCi0gICAgICAgICAgIjAuMDM3NTU3LCAwLjE4NDI3NywgMC4zMzMwNzQsIDAuNDM5MjAzLCAwLjYwODk4OCwgMC43NTc2NzcsIDAuOTY5OTIyIiwgXAotICAgICAgICAgICIwLjA0NDQ4NywgMC4xODQ3NjQsIDAuMzMzMDAzLCAwLjQzOTE0NCwgMC42MDkwMjgsIDAuNzU3NTczLCAwLjk2OTkxNSIsIFwKLSAgICAgICAgICAiMC4wNTM1MDQsIDAuMTg3NDQ3LCAwLjMzMzA5LCAwLjQzOTE5NywgMC42MDkxMzYsIDAuNzU3Nzk5LCAwLjk2OTkxNiIsIFwKLSAgICAgICAgICAiMC4wNjMxNzQsIDAuMTkxOTM5LCAwLjMzNDgzOSwgMC40MzkzNzQsIDAuNjA4OTQ5LCAwLjc1Nzk1MSwgMC45Njk5NCIsIFwKLSAgICAgICAgICAiMC4wNzU2ODksIDAuMjAxOTM3LCAwLjMzOTk5NCwgMC40NDIyOTcsIDAuNjA5MzY1LCAwLjc1NzYxOSwgMC45NzAxNTEiLCBcCi0gICAgICAgICAgIjAuMDg2OTI5LCAwLjIxMTgwOCwgMC4zNDczNzQsIDAuNDQ3Njg0LCAwLjYxMTk4MSwgMC43NTgzLCAwLjk2OTk1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkQiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDYwNDY3LCAwLjM0MTg2LCAwLjYyMzA2OSwgMC44MjM1NjksIDEuMTQ1MDQsIDEuNDI2ODksIDEuODI3MTkiLCBcCi0gICAgICAgICAgIjAuMDY4MDY1LCAwLjM1MDE0NiwgMC42MzE2MjksIDAuODMxNjg4LCAxLjE1MzI1LCAxLjQzNDA0LCAxLjgzNTY5IiwgXAotICAgICAgICAgICIwLjA3ODI3OCwgMC4zNjAzMjcsIDAuNjQxMzExLCAwLjg0MTkxMSwgMS4xNjM2OSwgMS40NDQ1NCwgMS44NDU5OCIsIFwKLSAgICAgICAgICAiMC4wODg2MzYsIDAuMzcwMzAxLCAwLjY1MTUyOSwgMC44NTE4MzUsIDEuMTczMzEsIDEuNDU0ODYsIDEuODU1OTkiLCBcCi0gICAgICAgICAgIjAuMDk5NTQ3LCAwLjM4MDQ5NiwgMC42NjIxMDcsIDAuODYyNTEsIDEuMTgzNjIsIDEuNDY1MDYsIDEuODY2MTYiLCBcCi0gICAgICAgICAgIjAuMTE1ODk0LCAwLjM5NjkxOSwgMC42NzgyMDYsIDAuODc4ODYzLCAxLjIwMDI2LCAxLjQ4MjA1LCAxLjg4MjI2IiwgXAotICAgICAgICAgICIwLjEyODE4MiwgMC40MTE1MzMsIDAuNjkyNDg5LCAwLjg5MzI1LCAxLjIxNDgxLCAxLjQ5NTQxLCAxLjg5ODU4Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTMzNTMxLCAwLjY5ODQ0OCwgMS4yNjIzMiwgMS42NjE3OCwgMi4zMDkzLCAyLjg2Nzk4LCAzLjY3ODIzIiwgXAotICAgICAgICAgICIwLjEzMjI2MSwgMC42OTg1NDYsIDEuMjYyNTcsIDEuNjYzMDgsIDIuMzA5MTgsIDIuODY3NDMsIDMuNjc4MzciLCBcCi0gICAgICAgICAgIjAuMTM0ODMsIDAuNjk4NTc1LCAxLjI2MjA4LCAxLjY2NDUsIDIuMzA5MzMsIDIuODczMDEsIDMuNjc4MzIiLCBcCi0gICAgICAgICAgIjAuMTQwMjksIDAuNjk4MzMxLCAxLjI2MjA2LCAxLjY2MDg4LCAyLjMwNjUxLCAyLjg3MzA0LCAzLjY3MTMiLCBcCi0gICAgICAgICAgIjAuMTQ3MDgsIDAuNjk2ODkxLCAxLjI2MjM3LCAxLjY2NDY2LCAyLjMwODgsIDIuODcyOTksIDMuNjcxNzkiLCBcCi0gICAgICAgICAgIjAuMTU5NzQzLCAwLjY5ODE5LCAxLjI2MjA5LCAxLjY2MTgsIDIuMzA5MDEsIDIuODczNTEsIDMuNjczMzgiLCBcCi0gICAgICAgICAgIjAuMTcxMDA1LCAwLjY5OTUyNSwgMS4yNTk2NSwgMS42NjE5MSwgMi4zMDkxMiwgMi44NzI0NSwgMy42NzEyOSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxOTc5LCAwLjA5MzM1NywgMC4xNjY4NTcsIDAuMjE5MzQ1LCAwLjMwMzUxMiwgMC4zNzY5NDQsIDAuNDgxODU2IiwgXAotICAgICAgICAgICIwLjAzMDEyNSwgMC4xMDM2NjMsIDAuMTc3MiwgMC4yMjk2ODIsIDAuMzEzNjk1LCAwLjM4NzI3OCwgMC40OTIyMTUiLCBcCi0gICAgICAgICAgIjAuMDQyMjU3LCAwLjExNjMzNCwgMC4xODk5MTgsIDAuMjQyMzcsIDAuMzI1NzAxLCAwLjM5OTIxNSwgMC41MDQxMzEiLCBcCi0gICAgICAgICAgIjAuMDUyMDM1LCAwLjEyOTY2MSwgMC4yMDI2MzksIDAuMjU1Mjk1LCAwLjMzOTE5NiwgMC40MTI5MjYsIDAuNTE2NjE5IiwgXAotICAgICAgICAgICIwLjA2MDI3OSwgMC4xNDIyOTgsIDAuMjE1MzgxLCAwLjI2NzkwMywgMC4zNTIxMjEsIDAuNDI1MzY3LCAwLjUzMDQzOCIsIFwKLSAgICAgICAgICAiMC4wNzEyMjYsIDAuMTYzMjE3LCAwLjIzNjkwNywgMC4yODkzMTEsIDAuMzczMjg4LCAwLjQ0NjA5MywgMC41NTA4ODUiLCBcCi0gICAgICAgICAgIjAuMDc5OTI4LCAwLjE4MTU1NCwgMC4yNTQ1NjIsIDAuMzA2MDUyLCAwLjM5MDAwMSwgMC40NjQwMjUsIDAuNTY5OTA1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDMyMTEyLCAwLjE4MTQyOCwgMC4zMzA3MjEsIDAuNDM3Mzk1LCAwLjYwNjQzNiwgMC43NTU2OTQsIDAuOTY3OTI1IiwgXAotICAgICAgICAgICIwLjAzNDU3LCAwLjE4MTQzNywgMC4zMjk4MTEsIDAuNDM3MzkzLCAwLjYwNjMwNywgMC43NTU2NDEsIDAuOTY4Njc0IiwgXAotICAgICAgICAgICIwLjA0MjI0MSwgMC4xODE5NTMsIDAuMzMwNTE1LCAwLjQzNzM1MSwgMC42MDgwMzUsIDAuNzU1NjUxLCAwLjk2ODUzOCIsIFwKLSAgICAgICAgICAiMC4wNTE2NjMsIDAuMTg0NjkyLCAwLjMzMDQwMiwgMC40MzcyOTMsIDAuNjA3OTg3LCAwLjc1NTg2NywgMC45Njc4NjUiLCBcCi0gICAgICAgICAgIjAuMDYxMDM0LCAwLjE4OTYxMSwgMC4zMzIyMDcsIDAuNDM2NDk5LCAwLjYwNjIzMiwgMC43NTQ5NjEsIDAuOTY4Mjc3IiwgXAotICAgICAgICAgICIwLjA3NDk4NywgMC4xOTkxNzgsIDAuMzM4MDMzLCAwLjQzOTg1NSwgMC42MDY3ODEsIDAuNzU1NDgyLCAwLjk2ODI5MSIsIFwKLSAgICAgICAgICAiMC4wODY0NTYsIDAuMjA5MjU0LCAwLjM0NDM1MSwgMC40NDQ4ODksIDAuNjExMDk5LCAwLjc1NzkyLCAwLjk2ODUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxNDY5NSwgMC4wMTQ3MjgsIDAuMDE0NzMyLCAwLjAxNDczNCwgMC4wMTQ3MzMsIDAuMDE0NzM0LCAwLjAxNDczNCIsIFwKLSAgICAgICAgICAiMC4wMTQ1OTEsIDAuMDE0Njk4LCAwLjAxNDcxLCAwLjAxNDcyLCAwLjAxNDcyNSwgMC4wMTQ3MjksIDAuMDE0NzI5IiwgXAotICAgICAgICAgICIwLjAxNDUyNywgMC4wMTQ2NjEsIDAuMDE0Njg2LCAwLjAxNDcsIDAuMDE0NzA4LCAwLjAxNDcxMiwgMC4wMTQ3MTciLCBcCi0gICAgICAgICAgIjAuMDE0NTAzLCAwLjAxNDYzOCwgMC4wMTQ2NzYsIDAuMDE0NjgzLCAwLjAxNDcwMSwgMC4wMTQ3MDcsIDAuMDE0NzEiLCBcCi0gICAgICAgICAgIjAuMDE0NDg0LCAwLjAxNDYxOCwgMC4wMTQ2NjIsIDAuMDE0Njc3LCAwLjAxNDY4NywgMC4wMTQ2OTgsIDAuMDE0NzAyIiwgXAotICAgICAgICAgICIwLjAxNDQ2NywgMC4wMTQ1OTEsIDAuMDE0NjM5LCAwLjAxNDY1OCwgMC4wMTQ2NzUsIDAuMDE0NjgzLCAwLjAxNDY5OCIsIFwKLSAgICAgICAgICAiMC4wMTQ0NjIsIDAuMDE0NTczLCAwLjAxNDYyNCwgMC4wMTQ2NDUsIDAuMDE0NjY3LCAwLjAxNDY4MiwgMC4wMTQ2ODkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzk5LCAwLjAwMzk5LCAwLjAwMzk4OSwgMC4wMDM5ODksIDAuMDAzOTg4LCAwLjAwMzk5LCAwLjAwMzk4OCIsIFwKLSAgICAgICAgICAiMC4wMDM4NDcsIDAuMDAzODU2LCAwLjAwMzg0NiwgMC4wMDM4NDcsIDAuMDAzODQ3LCAwLjAwMzg0NiwgMC4wMDM4NDciLCBcCi0gICAgICAgICAgIjAuMDAzODA5LCAwLjAwMzgyNCwgMC4wMDM4MjgsIDAuMDAzODI3LCAwLjAwMzgyNSwgMC4wMDM4MjgsIDAuMDAzODEiLCBcCi0gICAgICAgICAgIjAuMDAzNzk4LCAwLjAwMzgwNCwgMC4wMDM4MDUsIDAuMDAzODEzLCAwLjAwMzgxMSwgMC4wMDM4MTEsIDAuMDAzODEzIiwgXAotICAgICAgICAgICIwLjAwMzgxNywgMC4wMDM4MSwgMC4wMDM4MSwgMC4wMDM4MTYsIDAuMDAzODEyLCAwLjAwMzgxLCAwLjAwMzgwOSIsIFwKLSAgICAgICAgICAiMC4wMDM5MDYsIDAuMDAzODQsIDAuMDAzODE1LCAwLjAwMzgxMywgMC4wMDM4MTcsIDAuMDAzODEzLCAwLjAwMzgxIiwgXAotICAgICAgICAgICIwLjAwNCwgMC4wMDM4NzEsIDAuMDAzODMxLCAwLjAwMzgyNSwgMC4wMDM4MjIsIDAuMDAzODIyLCAwLjAwMzgxNiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEyMzk2LCAwLjAxMjQyOCwgMC4wMTI0MzIsIDAuMDEyNDMzLCAwLjAxMjQzNCwgMC4wMTI0MzYsIDAuMDEyNDMxIiwgXAotICAgICAgICAgICIwLjAxMjI5MSwgMC4wMTIzOTksIDAuMDEyNDA4LCAwLjAxMjQyLCAwLjAxMjQyOSwgMC4wMTI0MzQsIDAuMDEyNDI5IiwgXAotICAgICAgICAgICIwLjAxMjIzMywgMC4wMTIzNjYsIDAuMDEyMzk0LCAwLjAxMjQwMiwgMC4wMTI0MTEsIDAuMDEyNDE3LCAwLjAxMjQyMSIsIFwKLSAgICAgICAgICAiMC4wMTIyMDIsIDAuMDEyMzQsIDAuMDEyMzc3LCAwLjAxMjM5MSwgMC4wMTI0MDEsIDAuMDEyNDA4LCAwLjAxMjQxNSIsIFwKLSAgICAgICAgICAiMC4wMTIxODUsIDAuMDEyMzE4LCAwLjAxMjM2MSwgMC4wMTIzNzUsIDAuMDEyMzkxLCAwLjAxMjQsIDAuMDEyNDA2IiwgXAotICAgICAgICAgICIwLjAxMjE2OCwgMC4wMTIyOSwgMC4wMTIzMzksIDAuMDEyMzU3LCAwLjAxMjM3NiwgMC4wMTIzODUsIDAuMDEyMzk2IiwgXAotICAgICAgICAgICIwLjAxMjE2NCwgMC4wMTIyNjksIDAuMDEyMzI0LCAwLjAxMjM0NCwgMC4wMTIzNjIsIDAuMDEyMzcxLCAwLjAxMjM4NCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyNzk2LCAwLjAwMjc5OSwgMC4wMDI3OTksIDAuMDAyNzk5LCAwLjAwMjc5OSwgMC4wMDI3OTksIDAuMDAyNzk4IiwgXAotICAgICAgICAgICIwLjAwMjY5MSwgMC4wMDI3MjksIDAuMDAyNzI3LCAwLjAwMjcyOSwgMC4wMDI3MywgMC4wMDI3MzIsIDAuMDAyNzMxIiwgXAotICAgICAgICAgICIwLjAwMjYzNSwgMC4wMDI3LCAwLjAwMjcxNCwgMC4wMDI3MTcsIDAuMDAyNzIxLCAwLjAwMjcyMiwgMC4wMDI3MjIiLCBcCi0gICAgICAgICAgIjAuMDAyNjE3LCAwLjAwMjY4MiwgMC4wMDI3MDEsIDAuMDAyNzA2LCAwLjAwMjcwOCwgMC4wMDI3MTEsIDAuMDAyNzEyIiwgXAotICAgICAgICAgICIwLjAwMjYyNywgMC4wMDI2ODUsIDAuMDAyNjkzLCAwLjAwMjcxLCAwLjAwMjcxMywgMC4wMDI3MTQsIDAuMDAyNzE1IiwgXAotICAgICAgICAgICIwLjAwMjY4OSwgMC4wMDI3MjIsIDAuMDAyNzEzLCAwLjAwMjcxNCwgMC4wMDI3MTgsIDAuMDAyNzE4LCAwLjAwMjcxNSIsIFwKLSAgICAgICAgICAiMC4wMDI2OTIsIDAuMDAyNzU4LCAwLjAwMjczMSwgMC4wMDI3MjcsIDAuMDAyNzI1LCAwLjAwMjcyNywgMC4wMDI3MjMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMDQ1OSwgMC4wMTA0OTEsIDAuMDEwNDkxLCAwLjAxMDQ5NiwgMC4wMTA0OTUsIDAuMDEwNDk4LCAwLjAxMDQ5NyIsIFwKLSAgICAgICAgICAiMC4wMTAzNTMsIDAuMDEwNDYsIDAuMDEwNDc3LCAwLjAxMDQ4MiwgMC4wMTA0NzYsIDAuMDEwNDk4LCAwLjAxMDQ5NyIsIFwKLSAgICAgICAgICAiMC4wMTAyOTMsIDAuMDEwNDI4LCAwLjAxMDQ2MSwgMC4wMTA0NjYsIDAuMDEwNDc4LCAwLjAxMDQ3OSwgMC4wMTA0ODYiLCBcCi0gICAgICAgICAgIjAuMDEwMjY1LCAwLjAxMDQwMiwgMC4wMTA0MzYsIDAuMDEwNDUxLCAwLjAxMDQ2MywgMC4wMTA0NzIsIDAuMDEwNDczIiwgXAotICAgICAgICAgICIwLjAxMDI0OSwgMC4wMTAzODEsIDAuMDEwNDIzLCAwLjAxMDQzOCwgMC4wMTA0NTIsIDAuMDEwNDYyLCAwLjAxMDQ2NyIsIFwKLSAgICAgICAgICAiMC4wMTAyNCwgMC4wMTAzNTUsIDAuMDEwNDAxLCAwLjAxMDQyMiwgMC4wMTA0NCwgMC4wMTA0NSwgMC4wMTA0NiIsIFwKLSAgICAgICAgICAiMC4wMTAyNDcsIDAuMDEwMzQxLCAwLjAxMDM4OCwgMC4wMTA0MDgsIDAuMDEwNDI4LCAwLjAxMDQzOCwgMC4wMTA0NTEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTQ4OSwgMC4wMDE1MDMsIDAuMDAxNTA0LCAwLjAwMTUwNSwgMC4wMDE1MDUsIDAuMDAxNTA1LCAwLjAwMTUwNSIsIFwKLSAgICAgICAgICAiMC4wMDE0NDEsIDAuMDAxNTM2LCAwLjAwMTU1MSwgMC4wMDE1NTUsIDAuMDAxNTU5LCAwLjAwMTU2MSwgMC4wMDE1NjIiLCBcCi0gICAgICAgICAgIjAuMDAxMzk2LCAwLjAwMTUyOCwgMC4wMDE1NSwgMC4wMDE1NTcsIDAuMDAxNTYzLCAwLjAwMTU3MSwgMC4wMDE1NzUiLCBcCi0gICAgICAgICAgIjAuMDAxMzk3LCAwLjAwMTUxNSwgMC4wMDE1MzgsIDAuMDAxNTUxLCAwLjAwMTU2LCAwLjAwMTU2NCwgMC4wMDE1NjkiLCBcCi0gICAgICAgICAgIjAuMDAxNDE4LCAwLjAwMTUxLCAwLjAwMTUzNSwgMC4wMDE1NDgsIDAuMDAxNTU4LCAwLjAwMTU2NCwgMC4wMDE1NjgiLCBcCi0gICAgICAgICAgIjAuMDAxMzcxLCAwLjAwMTUzOCwgMC4wMDE1NDMsIDAuMDAxNTUzLCAwLjAwMTU2MSwgMC4wMDE1NzIsIDAuMDAxNTc1IiwgXAotICAgICAgICAgICIwLjAwMTQyMywgMC4wMDE1NjgsIDAuMDAxNTY2LCAwLjAwMTU3MiwgMC4wMDE1NzcsIDAuMDAxNTgxLCAwLjAwMTU4MiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkQiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA4Mjk1LCAwLjAwODM0NiwgMC4wMDgzNTIsIDAuMDA4MzUzLCAwLjAwODM1NiwgMC4wMDgzNDUsIDAuMDA4MzUzIiwgXAotICAgICAgICAgICIwLjAwODEzOSwgMC4wMDgyOTgsIDAuMDA4MzIzLCAwLjAwODMzMiwgMC4wMDgzMzcsIDAuMDA4MzQzLCAwLjAwODM0NCIsIFwKLSAgICAgICAgICAiMC4wMDgxMDIsIDAuMDA4MjYxLCAwLjAwODI5OCwgMC4wMDgzMSwgMC4wMDgzMjIsIDAuMDA4MzI5LCAwLjAwODMzNCIsIFwKLSAgICAgICAgICAiMC4wMDgwOTEsIDAuMDA4MjI4LCAwLjAwODI3NSwgMC4wMDgyOTIsIDAuMDA4MzA5LCAwLjAwODMxNiwgMC4wMDgzMjYiLCBcCi0gICAgICAgICAgIjAuMDA4MTI3LCAwLjAwODIxMSwgMC4wMDgyNTksIDAuMDA4Mjc3LCAwLjAwODI5OCwgMC4wMDgzMDYsIDAuMDA4MzE2IiwgXAotICAgICAgICAgICIwLjAwODIxNiwgMC4wMDgyMDUsIDAuMDA4MjQ2LCAwLjAwODI2NSwgMC4wMDgyODQsIDAuMDA4Mjk2LCAwLjAwODMwNiIsIFwKLSAgICAgICAgICAiMC4wMDgzMDksIDAuMDA4MjEyLCAwLjAwODI0NCwgMC4wMDgyNiwgMC4wMDgyNzgsIDAuMDA4MjksIDAuMDA4MzAyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDAxMTQsIDAuMDAwMTc4LCAwLjAwMDE4NSwgMC4wMDAxODcsIDAuMDAwMTg4LCAwLjAwMDE4OSwgMC4wMDAxOSIsIFwKLSAgICAgICAgICAiMC4wMDAwNjQsIDAuMDAwMjY0LCAwLjAwMDI5LCAwLjAwMDI5OCwgMC4wMDAzMDUsIDAuMDAwMzA4LCAwLjAwMDMxMSIsIFwKLSAgICAgICAgICAiMC4wMDAwMTgsIDAuMDAwMjYxLCAwLjAwMDI5OCwgMC4wMDAzMTEsIDAuMDAwMzM0LCAwLjAwMDM0MSwgMC4wMDAzNDgiLCBcCi0gICAgICAgICAgIjAuMDAwMDMsIDAuMDAwMjM3LCAwLjAwMDI5MywgMC4wMDAzMDgsIDAuMDAwMzIzLCAwLjAwMDMzMiwgMC4wMDAzNSIsIFwKLSAgICAgICAgICAiMC4wMDAwMTIsIDAuMDAwMjQyLCAwLjAwMDI4NiwgMC4wMDAzMDUsIDAuMDAwMzIxLCAwLjAwMDMzMywgMC4wMDAzNDEiLCBcCi0gICAgICAgICAgIjAuMDAwMDY0LCAwLjAwMDI0MiwgMC4wMDAyODUsIDAuMDAwMzAzLCAwLjAwMDMyLCAwLjAwMDMzMywgMC4wMDAzNDIiLCBcCi0gICAgICAgICAgIjAuMDAwMTU0LCAwLjAwMDI1NSwgMC4wMDAyOTYsIDAuMDAwMzEsIDAuMDAwMzI3LCAwLjAwMDMzNiwgMC4wMDAzNDIiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IE9BMjJYTCAqCi0gKiAtLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKE9BMjJYTCkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjEwMjU0NTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQTApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYwMTg2NzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MDA5ODg7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjAxODY3OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDIyNiwgMC4wMDAyMjYsIDAuMDAwMjI2LCAwLjAwMDIyNiwgMC4wMDAyMjYsIDAuMDAwMjI2LCAwLjAwMDIyNiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDIyNywgMC4wMDAyMjcsIDAuMDAwMjI3LCAwLjAwMDIyNywgMC4wMDAyMjcsIDAuMDAwMjI3LCAwLjAwMDIyNyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQTEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY0NDU5MTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2NDQ1OTE7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjQyOTk2OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDIyNiwgMC4wMDAyMjYsIDAuMDAwMjI2LCAwLjAwMDIyNiwgMC4wMDAyMjYsIDAuMDAwMjI2LCAwLjAwMDIyNiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDIyNywgMC4wMDAyMjcsIDAuMDAwMjI3LCAwLjAwMDIyNywgMC4wMDAyMjcsIDAuMDAwMjI3LCAwLjAwMDIyNyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQjApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY1MDIzNjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2NDcyODg7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjUwMjM2OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDQ3NiwgMC4wMDA0NzYsIDAuMDAwNDc2LCAwLjAwMDQ3NiwgMC4wMDA0NzYsIDAuMDAwNDc2LCAwLjAwMDQ3NiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDI1NywgMC4wMDAyNTcsIDAuMDAwMjU3LCAwLjAwMDI1NywgMC4wMDAyNTcsIDAuMDAwMjU3LCAwLjAwMDI1NyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQjEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY0MjgyODsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2NDI2NzE7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjQyODI4OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDQ3NiwgMC4wMDA0NzYsIDAuMDAwNDc2LCAwLjAwMDQ3NiwgMC4wMDA0NzYsIDAuMDAwNDc2LCAwLjAwMDQ3NiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDI1NywgMC4wMDAyNTcsIDAuMDAwMjU3LCAwLjAwMDI1NywgMC4wMDAyNTcsIDAuMDAwMjU3LCAwLjAwMDI1NyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjE0OTY4NTsKLSAgICBmdW5jdGlvbiA6ICIoKEEwK0ExKSAoQjArQjEpKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTAiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEzMzA2MywgMC4xNDcyNTksIDAuMjc0Njg1LCAwLjQ4NjY0NSwgMC42OTg1NzcsIDEuMTkyODQsIDEuNDc1MzEiLCBcCi0gICAgICAgICAgIjAuMTQyODQ4LCAwLjE1NzAzNiwgMC4yODQ0NjMsIDAuNDk2NDI0LCAwLjcwODMxOCwgMS4yMDI3MSwgMS40ODUwNSIsIFwKLSAgICAgICAgICAiMC4xNTQzOTEsIDAuMTY4NTkyLCAwLjI5NjAyNSwgMC41MDc5ODcsIDAuNzE5OTE0LCAxLjIxNDE4LCAxLjQ5NjY1IiwgXAotICAgICAgICAgICIwLjE2NTEwMiwgMC4xNzkzMDksIDAuMzA2NzQ0LCAwLjUxODcxMSwgMC43MzA1OTMsIDEuMjI0OTEsIDEuNTA3MzciLCBcCi0gICAgICAgICAgIjAuMTc1NjU1LCAwLjE4OTg1MywgMC4zMTcyNzYsIDAuNTI5MzU5LCAwLjc0MTE4LCAxLjIzNTQ5LCAxLjUxODA1IiwgXAotICAgICAgICAgICIwLjE5MTA3MiwgMC4yMDUyOTYsIDAuMzMyNzI1LCAwLjU0NDcwNSwgMC43NTY1ODQsIDEuMjUxMDMsIDEuNTMzMzEiLCBcCi0gICAgICAgICAgIjAuMjAzMzIyLCAwLjIxNzUwNSwgMC4zNDQ5NTMsIDAuNTU2OTQ2LCAwLjc2ODgwOSwgMS4yNjMxOSwgMS41NDU1MyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNTU4MzQsIDAuMTg0MzUxLCAwLjQ0NDAxMSwgMC44Nzk1MjQsIDEuMzE0OTcsIDIuMzI4NywgMi45MTIwMiIsIFwKLSAgICAgICAgICAiMC4xNTU4MzEsIDAuMTg0NTQxLCAwLjQ0NDIyOCwgMC44Nzk0ODQsIDEuMzEzOCwgMi4zMzA4NywgMi45MTEyOSIsIFwKLSAgICAgICAgICAiMC4xNTU4MjYsIDAuMTg0MzQsIDAuNDQzOTE1LCAwLjg3ODg5LCAxLjMxNTI2LCAyLjMyODY5LCAyLjkwODI4IiwgXAotICAgICAgICAgICIwLjE1NTg0MSwgMC4xODQzMjgsIDAuNDQzODc0LCAwLjg3OTExLCAxLjMxNDY4LCAyLjMyODg4LCAyLjkxMTM4IiwgXAotICAgICAgICAgICIwLjE1NTkxNSwgMC4xODQ0NzEsIDAuNDQ0MzM2LCAwLjg3ODM4MywgMS4zMTQ2OCwgMi4zMjgzNiwgMi45MTE4MSIsIFwKLSAgICAgICAgICAiMC4xNTYyNjgsIDAuMTg0ODg3LCAwLjQ0NDIwMiwgMC44Nzk2NDcsIDEuMzEzNTMsIDIuMzMxMTYsIDIuOTExMSIsIFwKLSAgICAgICAgICAiMC4xNTY3NDEsIDAuMTg1MTYzLCAwLjQ0NDE0NSwgMC44Nzk2NDIsIDEuMzE0OSwgMi4zMzEwMywgMi45MTEzIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEzNTY2NCwgMC4xNDk2ODEsIDAuMjc0NzgsIDAuNDgyNjM3LCAwLjY5MDE3NywgMS4xNzQzNywgMS40NTEwNCIsIFwKLSAgICAgICAgICAiMC4xNDQxNzYsIDAuMTU4MTk4LCAwLjI4MzI4NiwgMC40OTExMDQsIDAuNjk4NzA0LCAxLjE4Mjk0LCAxLjQ1OTQ5IiwgXAotICAgICAgICAgICIwLjE1Mzk1OSwgMC4xNjc5OTQsIDAuMjkzMDg5LCAwLjUwMDkzOCwgMC43MDg1NDIsIDEuMTkyODQsIDEuNDY5MjciLCBcCi0gICAgICAgICAgIjAuMTYzNDgyLCAwLjE3NzUxNiwgMC4zMDI2MTUsIDAuNTEwNDY2LCAwLjcxODA1MSwgMS4yMDIzNCwgMS40Nzg4IiwgXAotICAgICAgICAgICIwLjE3MjU0LCAwLjE4NjU1NywgMC4zMTE2NzQsIDAuNTE5NTUsIDAuNzI3MDgxLCAxLjIxMTI3LCAxLjQ4Nzg4IiwgXAotICAgICAgICAgICIwLjE4NTcyMywgMC4xOTk3NTksIDAuMzI0OTAxLCAwLjUzMjc4MiwgMC43NDAzMDcsIDEuMjI0NSwgMS41MDExMSIsIFwKLSAgICAgICAgICAiMC4xOTYxMzUsIDAuMjEwMTc2LCAwLjMzNTMxMiwgMC41NDMxNjksIDAuNzUwNzQ3LCAxLjIzNDkzLCAxLjUxMTU0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE1MjQ5MSwgMC4xNzk0NjMsIDAuNDI3MDEzLCAwLjg0MjgzLCAxLjI1OTg1LCAyLjIzMjQyLCAyLjc4ODMxIiwgXAotICAgICAgICAgICIwLjE1MjQ4MywgMC4xNzk0NzIsIDAuNDI3MDA3LCAwLjg0MjkxMSwgMS4yNTk3NCwgMi4yMzE5NywgMi43ODg2NiIsIFwKLSAgICAgICAgICAiMC4xNTI0NDYsIDAuMTc5NDYyLCAwLjQyNzAwNSwgMC44NDI5NjgsIDEuMjU5NDUsIDIuMjMyMTcsIDIuNzg4MzIiLCBcCi0gICAgICAgICAgIjAuMTUyNDY0LCAwLjE3OTQ0OSwgMC40MjcwMDUsIDAuODQzMDAyLCAxLjI1OTY3LCAyLjIzMjc1LCAyLjc4ODMyIiwgXAotICAgICAgICAgICIwLjE1MjYzNiwgMC4xNzk1MzMsIDAuNDI2NjA1LCAwLjg0Mjk5MywgMS4yNTk4OCwgMi4yMzI3NiwgMi43ODY4MyIsIFwKLSAgICAgICAgICAiMC4xNTMwODcsIDAuMTc5OTQ2LCAwLjQyNzE5NiwgMC44NDI4NTEsIDEuMjU5ODgsIDIuMjMwNTMsIDIuNzg4OCIsIFwKLSAgICAgICAgICAiMC4xNTM3MDQsIDAuMTgwNDYxLCAwLjQyNzIyNiwgMC44NDI5NjksIDEuMjU5ODEsIDIuMjI5ODYsIDIuNzg4NzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTEiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEyNzg0NywgMC4xNDIwMDgsIDAuMjY5Mjg5LCAwLjQ4MTIxOSwgMC42OTMwNDcsIDEuMTg3MywgMS40Njk3MiIsIFwKLSAgICAgICAgICAiMC4xMzc1NzYsIDAuMTUxNzMzLCAwLjI3OTAxMSwgMC40OTA5MDIsIDAuNzAyNzU3LCAxLjE5Njk1LCAxLjQ3OTU4IiwgXAotICAgICAgICAgICIwLjE0ODkzMywgMC4xNjMxLCAwLjI5MDM5NywgMC41MDIyNjcsIDAuNzE0MTIsIDEuMjA4NTQsIDEuNDkwNzciLCBcCi0gICAgICAgICAgIjAuMTU5NDgsIDAuMTczNjUyLCAwLjMwMDk1OCwgMC41MTI4MzMsIDAuNzI0NzI1LCAxLjIxODkxLCAxLjUwMTM0IiwgXAotICAgICAgICAgICIwLjE2OTY2NywgMC4xODM4NDYsIDAuMzExMTQ0LCAwLjUyMzAyNSwgMC43MzQ4NzMsIDEuMjI5MTIsIDEuNTExNTMiLCBcCi0gICAgICAgICAgIjAuMTg0NTIzLCAwLjE5ODY5MywgMC4zMjU5ODUsIDAuNTM3ODc0LCAwLjc0OTgxNSwgMS4yNDM5OCwgMS41MjY0MSIsIFwKLSAgICAgICAgICAiMC4xOTYxMjIsIDAuMjEwMzEyLCAwLjMzNzYxMiwgMC41NDk1MTQsIDAuNzYxMzgsIDEuMjU1NiwgMS41MzgwMiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNTU0OTEsIDAuMTgzOTEzLCAwLjQ0MzkwNSwgMC44Nzk0MTMsIDEuMzEyNzEsIDIuMzI4MzUsIDIuOTA5MTIiLCBcCi0gICAgICAgICAgIjAuMTU1NTE0LCAwLjE4Mzg2OSwgMC40NDM3NzYsIDAuODc5MTE0LCAxLjMxMzMzLCAyLjMzMDEyLCAyLjkxMjE0IiwgXAotICAgICAgICAgICIwLjE1NTM5MSwgMC4xODM5NzgsIDAuNDQzNzU1LCAwLjg3OTE3NSwgMS4zMTQ5NCwgMi4zMzE0OCwgMi45MTE3OCIsIFwKLSAgICAgICAgICAiMC4xNTU0MDgsIDAuMTgzOTg0LCAwLjQ0MzcwNSwgMC44Nzg1MTQsIDEuMzE1MDEsIDIuMzI4NjgsIDIuOTA4MjkiLCBcCi0gICAgICAgICAgIjAuMTU1NTc2LCAwLjE4NDI0OSwgMC40NDM2NTgsIDAuODc4OTM3LCAxLjMxNDEyLCAyLjMzMDYzLCAyLjkwODUzIiwgXAotICAgICAgICAgICIwLjE1NTk2NSwgMC4xODQ2MTYsIDAuNDQ0Mjc0LCAwLjg3ODg4MSwgMS4zMTQ5MiwgMi4zMjgwOCwgMi45MDc5MiIsIFwKLSAgICAgICAgICAiMC4xNTY1MzYsIDAuMTg0ODkzLCAwLjQ0NDI2NiwgMC44NzkzNTgsIDEuMzEzMjUsIDIuMzMwNzksIDIuOTA4NzQiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTMyMjQ2LCAwLjE0NjI2NiwgMC4yNzEzNjEsIDAuNDc5MjE4LCAwLjY4Njc1OSwgMS4xNzA5NSwgMS40NDc2MyIsIFwKLSAgICAgICAgICAiMC4xNDA5MjIsIDAuMTU0OTM4LCAwLjI4MDA0MywgMC40ODc5MTIsIDAuNjk1NDQ3LCAxLjE3OTY0LCAxLjQ1NjI1IiwgXAotICAgICAgICAgICIwLjE1MjMzMiwgMC4xNjYzNiwgMC4yOTE0NjIsIDAuNDk5MzIxLCAwLjcwNjg3MywgMS4xOTEwNywgMS40Njc2OCIsIFwKLSAgICAgICAgICAiMC4xNjM2NzksIDAuMTc3NzEyLCAwLjMwMjgxNywgMC41MTA2NzQsIDAuNzE4MjQxLCAxLjIwMjUyLCAxLjQ3OTAyIiwgXAotICAgICAgICAgICIwLjE3NDM3OSwgMC4xODgzOTcsIDAuMzEzNTIyLCAwLjUyMTM4OCwgMC43Mjg5NCwgMS4yMTMxMywgMS40ODk4NCIsIFwKLSAgICAgICAgICAiMC4xODk3MiwgMC4yMDM3MzIsIDAuMzI4ODY1LCAwLjUzNjc0MSwgMC43NDQzODIsIDEuMjI4NDcsIDEuNTA1MTUiLCBcCi0gICAgICAgICAgIjAuMjAxNTA4LCAwLjIxNTU2NiwgMC4zNDA2ODQsIDAuNTQ4NTU5LCAwLjc1NjE0MiwgMS4yNDAzOSwgMS41MTY5NCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNTI0OTQsIDAuMTc5NDczLCAwLjQyNzAxOSwgMC44NDI4OTIsIDEuMjU5ODYsIDIuMjMyNjQsIDIuNzg3OTUiLCBcCi0gICAgICAgICAgIjAuMTUyNDg2LCAwLjE3OTQzOCwgMC40MjcwMTMsIDAuODQyODIsIDEuMjU5ODcsIDIuMjMwNzgsIDIuNzg3MjYiLCBcCi0gICAgICAgICAgIjAuMTUyNTAzLCAwLjE3OTQ3OSwgMC40MjcwMTIsIDAuODQyOTk5LCAxLjI1OTg4LCAyLjIzMjU1LCAyLjc4NjI2IiwgXAotICAgICAgICAgICIwLjE1MjQ4MSwgMC4xNzk0NjMsIDAuNDI3MDAzLCAwLjg0MzAyNiwgMS4yNTk5LCAyLjIzMjQ3LCAyLjc4ODMzIiwgXAotICAgICAgICAgICIwLjE1MjU5OSwgMC4xNzk1MTksIDAuNDI3MDE1LCAwLjg0MjkzMywgMS4yNTk4NCwgMi4yMzExLCAyLjc4ODU0IiwgXAotICAgICAgICAgICIwLjE1MzE1MywgMC4xODAwMzYsIDAuNDI3MTcxLCAwLjg0MzAwMywgMS4yNTg4NCwgMi4yMzA5NSwgMi43ODgzNyIsIFwKLSAgICAgICAgICAiMC4xNTM4NjksIDAuMTgwNTkzLCAwLjQyNzI3NCwgMC44NDI2NTYsIDEuMjU5NzUsIDIuMjMyNDYsIDIuNzg4NDQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjAiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEyMzA1OCwgMC4xMzcyNDMsIDAuMjY0NjcxLCAwLjQ3NjY3NCwgMC42ODg1NDQsIDEuMTgyNzgsIDEuNDY1MjYiLCBcCi0gICAgICAgICAgIjAuMTMyMTY0LCAwLjE0NjM2MywgMC4yNzM3OTYsIDAuNDg1NzU5LCAwLjY5NzY1NywgMS4xOTE5NCwgMS40NzQ0MiIsIFwKLSAgICAgICAgICAiMC4xNDM5ODksIDAuMTU4MTkxLCAwLjI4NTYyNywgMC40OTc1OTUsIDAuNzA5NjE2LCAxLjIwMzc4LCAxLjQ4NjI1IiwgXAotICAgICAgICAgICIwLjE1NTY4MiwgMC4xNjk4NjksIDAuMjk3Mjg5LCAwLjUwOTMyLCAwLjcyMTIwNiwgMS4yMTU1MiwgMS40OTgxNCIsIFwKLSAgICAgICAgICAiMC4xNjY1NjEsIDAuMTgwNzY1LCAwLjMwODE5OSwgMC41MjAxOCwgMC43MzIwNzksIDEuMjI2MzksIDEuNTA4ODQiLCBcCi0gICAgICAgICAgIjAuMTgyMDczLCAwLjE5NjI2OSwgMC4zMjM3MTYsIDAuNTM1NzA0LCAwLjc0NzU3MSwgMS4yNDE4OCwgMS41MjQzIiwgXAotICAgICAgICAgICIwLjE5NDEwMiwgMC4yMDgzMDYsIDAuMzM1ODA1LCAwLjU0Nzc5OSwgMC43NTk2NjgsIDEuMjUzOTIsIDEuNTM2MzUiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTU1ODI5LCAwLjE4NDI4NywgMC40NDQ2MjcsIDAuODc4NjM4LCAxLjMxNDcyLCAyLjMzMTEsIDIuOTA4OSIsIFwKLSAgICAgICAgICAiMC4xNTU4MjUsIDAuMTg0MzMxLCAwLjQ0Mzg4MiwgMC44Nzg4OTEsIDEuMzE1MTgsIDIuMzI4OTYsIDIuOTA4MzYiLCBcCi0gICAgICAgICAgIjAuMTU1ODI3LCAwLjE4NDMxMywgMC40NDM4MSwgMC44Nzg4MDgsIDEuMzE1MTgsIDIuMzI4ODEsIDIuOTA4MzYiLCBcCi0gICAgICAgICAgIjAuMTU1ODkzLCAwLjE4NDQ4MywgMC40NDQ1NTUsIDAuODc5MTI3LCAxLjMxNDc4LCAyLjMyODQ3LCAyLjkxMTkiLCBcCi0gICAgICAgICAgIjAuMTU1OTc4LCAwLjE4NDY5MywgMC40NDQwMTEsIDAuODc5MzQzLCAxLjMxMzgzLCAyLjMzMDc0LCAyLjkwODIzIiwgXAotICAgICAgICAgICIwLjE1NjQzMywgMC4xODQ4NywgMC40NDQ2MTUsIDAuODc5NjU0LCAxLjMxNDY1LCAyLjMzMDI0LCAyLjkwODI3IiwgXAotICAgICAgICAgICIwLjE1NjkwNywgMC4xODUzNjgsIDAuNDQ0NDQ3LCAwLjg3OTcyNywgMS4zMTUsIDIuMzMwODcsIDIuOTExMzQiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTIzMjgyLCAwLjEzNzE2MSwgMC4yNjE2NDgsIDAuNDY5MTA2LCAwLjY3NjU2NywgMS4xNjA2NiwgMS40MzczOCIsIFwKLSAgICAgICAgICAiMC4xMzE4MDUsIDAuMTQ1Njg0LCAwLjI3MDE5OCwgMC40Nzc2OTEsIDAuNjg1MTQyLCAxLjE2OTI5LCAxLjQ0NTk2IiwgXAotICAgICAgICAgICIwLjE0MTQ0NCwgMC4xNTUzMjYsIDAuMjc5ODMzLCAwLjQ4NzM1LCAwLjY5NDc5OSwgMS4xNzg4OCwgMS40NTU2MiIsIFwKLSAgICAgICAgICAiMC4xNTA1MDgsIDAuMTY0NCwgMC4yODg5MDQsIDAuNDk2MzU3LCAwLjcwMzg4NywgMS4xODgxMSwgMS40NjUyNCIsIFwKLSAgICAgICAgICAiMC4xNTg4NzQsIDAuMTcyNzgsIDAuMjk3Mjc5LCAwLjUwNDcyMSwgMC43MTIyNDQsIDEuMTk2NTUsIDEuNDcyOTgiLCBcCi0gICAgICAgICAgIjAuMTcwNzg0LCAwLjE4NDY4MSwgMC4zMDkyMDQsIDAuNTE2NzQ0LCAwLjcyNDE4NywgMS4yMDgyNSwgMS40ODQ5NCIsIFwKLSAgICAgICAgICAiMC4xNzk4OTcsIDAuMTkzODEyLCAwLjMxODM1LCAwLjUyNTc2NiwgMC43MzMzNzUsIDEuMjE3NzEsIDEuNDk0NTYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTUwNzExLCAwLjE3NzY4NiwgMC40MjU0OSwgMC44NDIwNTcsIDEuMjU5MjMsIDIuMjI1OTIsIDIuNzg3OTciLCBcCi0gICAgICAgICAgIjAuMTUwNzExLCAwLjE3NzY0NiwgMC40MjQ4MTksIDAuODQwODUzLCAxLjI1ODYzLCAyLjIzMTk3LCAyLjc4Njk0IiwgXAotICAgICAgICAgICIwLjE1MDcyNSwgMC4xNzc4MzgsIDAuNDI1MDU1LCAwLjg0MjE2NiwgMS4yNTg1NSwgMi4yMjg0NCwgMi43ODAxMiIsIFwKLSAgICAgICAgICAiMC4xNTA4NjEsIDAuMTc3NzY1LCAwLjQyNTUxOSwgMC44NDE2NywgMS4yNTg0NywgMi4yMjcwOCwgMi43OTE4NyIsIFwKLSAgICAgICAgICAiMC4xNTEyLCAwLjE3ODA3OCwgMC40MjU1ODQsIDAuODQyMTUzLCAxLjI1ODU5LCAyLjIyNzM4LCAyLjc4NTM0IiwgXAotICAgICAgICAgICIwLjE1MTkzOSwgMC4xNzg3ODUsIDAuNDI1Njg3LCAwLjg0MDI4NSwgMS4yNTU0OCwgMi4yMjY2MiwgMi43ODgwMSIsIFwKLSAgICAgICAgICAiMC4xNTI3MjUsIDAuMTc5NDY1LCAwLjQyNTk5NywgMC44NDE5NjMsIDEuMjU1OCwgMi4yMjY3NCwgMi43ODEzMSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTE3NTc3LCAwLjEzMTczOSwgMC4yNTkwMTgsIDAuNDcwODc4LCAwLjY4Mjc1MSwgMS4xNzY5NSwgMS40NTkzOSIsIFwKLSAgICAgICAgICAiMC4xMjY2ODEsIDAuMTQwODQ2LCAwLjI2ODEyNiwgMC40Nzk5ODgsIDAuNjkxODI4LCAxLjE4NjA1LCAxLjQ2ODQ4IiwgXAotICAgICAgICAgICIwLjEzODI4OCwgMC4xNTI0NTMsIDAuMjc5NzQ5LCAwLjQ5MTYxOCwgMC43MDM1MiwgMS4xOTc2OSwgMS40ODAxMiIsIFwKLSAgICAgICAgICAiMC4xNDk2MzMsIDAuMTYzNzg3LCAwLjI5MTA3NywgMC41MDMwNTQsIDAuNzE0ODM4LCAxLjIwOTA4LCAxLjQ5MTUyIiwgXAotICAgICAgICAgICIwLjE1OTcwNywgMC4xNzM4OSwgMC4zMDExNzgsIDAuNTEzMDU2LCAwLjcyNDkwNiwgMS4yMTkxNSwgMS41MDE1NiIsIFwKLSAgICAgICAgICAiMC4xNzQ1NTEsIDAuMTg4NzE5LCAwLjMxNTk5LCAwLjUyNzg2MywgMC43Mzk3MzMsIDEuMjM0MDEsIDEuNTE2MzgiLCBcCi0gICAgICAgICAgIjAuMTg1NDU1LCAwLjE5OTYxMywgMC4zMjY5MDUsIDAuNTM4ODI0LCAwLjc1MDcxNiwgMS4yNDQ5NywgMS41MjczNSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNTUzNjYsIDAuMTgzOTUyLCAwLjQ0NDAxOSwgMC44NzkwMTMsIDEuMzE1LCAyLjMzMDc0LCAyLjkwOTE1IiwgXAotICAgICAgICAgICIwLjE1NTQ4NSwgMC4xODM5NCwgMC40NDM0MTcsIDAuODc5MDQ3LCAxLjMxMzUzLCAyLjMzMTAzLCAyLjkxMTcyIiwgXAotICAgICAgICAgICIwLjE1NTM2LCAwLjE4Mzk1MiwgMC40NDM1MjUsIDAuODc4NDgxLCAxLjMxNTAzLCAyLjMzMDczLCAyLjkwODEiLCBcCi0gICAgICAgICAgIjAuMTU1Mzg5LCAwLjE4NDA2MiwgMC40NDM2NTgsIDAuODc5NDk1LCAxLjMxNDQ1LCAyLjMzMDQxLCAyLjkwNjkxIiwgXAotICAgICAgICAgICIwLjE1NTY0OSwgMC4xODQzMjYsIDAuNDQzNjQ3LCAwLjg3ODMyMiwgMS4zMTMyOCwgMi4zMjgyNSwgMi45MTA3NSIsIFwKLSAgICAgICAgICAiMC4xNTYxNDgsIDAuMTg0NjE4LCAwLjQ0NDMzMSwgMC44NzkzMzgsIDEuMzE0OTUsIDIuMzI5MDEsIDIuOTE5MjgiLCBcCi0gICAgICAgICAgIjAuMTU2NzAxLCAwLjE4NDk0MiwgMC40NDQ0MjQsIDAuODc4Mzk0LCAxLjMxNDgyLCAyLjMyNzE4LCAyLjkwOCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTk1MzgsIDAuMTMzNDIzLCAwLjI1NzkzLCAwLjQ2NTM3MSwgMC42NzI5MDksIDEuMTU3MDQsIDEuNDMzNzYiLCBcCi0gICAgICAgICAgIjAuMTI4MzU0LCAwLjE0MjIzNSwgMC4yNjY3NSwgMC40NzQxOTQsIDAuNjgxNzQxLCAxLjE2NTkyLCAxLjQ0MjM4IiwgXAotICAgICAgICAgICIwLjEzOTU3MSwgMC4xNTM0NTYsIDAuMjc3OTc0LCAwLjQ4NTQ1MywgMC42OTI5MjksIDEuMTc3MzMsIDEuNDUzNjUiLCBcCi0gICAgICAgICAgIjAuMTUwMTQsIDAuMTY0MDMzLCAwLjI4ODU2NCwgMC40OTYwMzQsIDAuNzAzNjc1LCAxLjE4NzkzLCAxLjQ2NTUxIiwgXAotICAgICAgICAgICIwLjE1OTU2NCwgMC4xNzM0NjgsIDAuMjk4MDAxLCAwLjUwNTQ1OSwgMC43MTI5NzgsIDEuMTk3MzEsIDEuNDczNzUiLCBcCi0gICAgICAgICAgIjAuMTczMjAyLCAwLjE4NzEzNywgMC4zMTE2NjMsIDAuNTE5MjY2LCAwLjcyNjY5NSwgMS4yMTA4OCwgMS40ODc3IiwgXAotICAgICAgICAgICIwLjE4MzM4NCwgMC4xOTczNSwgMC4zMjE4ODYsIDAuNTI5NDg2LCAwLjczNzAwMiwgMS4yMjEyMSwgMS40OTc5OCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNTA2OTcsIDAuMTc3NjAyLCAwLjQyNTUzNiwgMC44NDE5OTksIDEuMjU4NDgsIDIuMjI2NywgMi43ODczIiwgXAotICAgICAgICAgICIwLjE1MDY5OSwgMC4xNzc3NzcsIDAuNDI1NDkzLCAwLjg0MjE1LCAxLjI1ODQzLCAyLjIzMTU3LCAyLjc4MDM3IiwgXAotICAgICAgICAgICIwLjE1MDc0MiwgMC4xNzc2NzMsIDAuNDI1NDkxLCAwLjg0MjExNCwgMS4yNTkzMSwgMi4yMjY3OCwgMi43ODE0MyIsIFwKLSAgICAgICAgICAiMC4xNTA5MjMsIDAuMTc3ODM3LCAwLjQyNTUyMiwgMC44NDE2MjgsIDEuMjU2NDIsIDIuMjI2ODYsIDIuNzg0NTEiLCBcCi0gICAgICAgICAgIjAuMTUxMzI5LCAwLjE3ODMyNywgMC40MjU2MDYsIDAuODQyMDE0LCAxLjI1ODY0LCAyLjIyODM4LCAyLjc4MDI0IiwgXAotICAgICAgICAgICIwLjE1MjI2LCAwLjE3ODk5OCwgMC40MjUzMTcsIDAuODQxNTQzLCAxLjI1NTc3LCAyLjIyNzI4LCAyLjc4NzI4IiwgXAotICAgICAgICAgICIwLjE1MzA2NCwgMC4xNzk3NjksIDAuNDI2MDUxLCAwLjg0MTYyNywgMS4yNTYzNSwgMi4yMjcyLCAyLjc4MTM5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTQ4NywgMC4wMDE0ODgsIDAuMDAxNDkzLCAwLjAwMTQ5NiwgMC4wMDE0OTYsIDAuMDAxNDk3LCAwLjAwMTQ5NiIsIFwKLSAgICAgICAgICAiMC4wMDE0NjksIDAuMDAxNDcsIDAuMDAxNDc1LCAwLjAwMTQ3NywgMC4wMDE0NzgsIDAuMDAxNDc4LCAwLjAwMTQ3OSIsIFwKLSAgICAgICAgICAiMC4wMDE0NTcsIDAuMDAxNDU5LCAwLjAwMTQ2NSwgMC4wMDE0NjcsIDAuMDAxNDY3LCAwLjAwMTQ2OCwgMC4wMDE0NjgiLCBcCi0gICAgICAgICAgIjAuMDAxNDUsIDAuMDAxNDUyLCAwLjAwMTQ1OCwgMC4wMDE0NjEsIDAuMDAxNDYyLCAwLjAwMTQ2MiwgMC4wMDE0NjMiLCBcCi0gICAgICAgICAgIjAuMDAxNDQ2LCAwLjAwMTQ0OCwgMC4wMDE0NTUsIDAuMDAxNDU4LCAwLjAwMTQ1OSwgMC4wMDE0NTksIDAuMDAxNDU5IiwgXAotICAgICAgICAgICIwLjAwMTQ0MSwgMC4wMDE0NDMsIDAuMDAxNDUxLCAwLjAwMTQ1NCwgMC4wMDE0NTUsIDAuMDAxNDU2LCAwLjAwMTQ1NiIsIFwKLSAgICAgICAgICAiMC4wMDE0MzksIDAuMDAxNDQxLCAwLjAwMTQ0OSwgMC4wMDE0NTMsIDAuMDAxNDU0LCAwLjAwMTQ1NSwgMC4wMDE0NTUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDM0MTcsIDAuMDAzNDE5LCAwLjAwMzQyNSwgMC4wMDM0MjgsIDAuMDAzNDI5LCAwLjAwMzQzLCAwLjAwMzQzIiwgXAotICAgICAgICAgICIwLjAwMzQwNCwgMC4wMDM0MDYsIDAuMDAzNDEzLCAwLjAwMzQxNSwgMC4wMDM0MTUsIDAuMDAzNDE3LCAwLjAwMzQxNyIsIFwKLSAgICAgICAgICAiMC4wMDMzOTUsIDAuMDAzMzk4LCAwLjAwMzQwNSwgMC4wMDM0MDgsIDAuMDAzNDA5LCAwLjAwMzQxLCAwLjAwMzQxIiwgXAotICAgICAgICAgICIwLjAwMzM5MSwgMC4wMDMzOTQsIDAuMDAzNDAyLCAwLjAwMzQwNSwgMC4wMDM0MDYsIDAuMDAzNDA3LCAwLjAwMzQwNyIsIFwKLSAgICAgICAgICAiMC4wMDMzOSwgMC4wMDMzOTIsIDAuMDAzNCwgMC4wMDM0MDQsIDAuMDAzNDA1LCAwLjAwMzQwNywgMC4wMDM0MDciLCBcCi0gICAgICAgICAgIjAuMDAzMzg4LCAwLjAwMzM5LCAwLjAwMzQsIDAuMDAzNDA0LCAwLjAwMzQwNiwgMC4wMDM0MDcsIDAuMDAzNDA3IiwgXAotICAgICAgICAgICIwLjAwMzM4OSwgMC4wMDMzOTEsIDAuMDAzNDAxLCAwLjAwMzQwNywgMC4wMDM0MDksIDAuMDAzNDExLCAwLjAwMzQxMSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkExIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDEyOTUsIDAuMDAxMjk2LCAwLjAwMTMsIDAuMDAxMzAyLCAwLjAwMTMwMiwgMC4wMDEzMDMsIDAuMDAxMzAzIiwgXAotICAgICAgICAgICIwLjAwMTI3MSwgMC4wMDEyNzMsIDAuMDAxMjc3LCAwLjAwMTI3OCwgMC4wMDEyNzksIDAuMDAxMjc5LCAwLjAwMTI3OSIsIFwKLSAgICAgICAgICAiMC4wMDEyNTEsIDAuMDAxMjUyLCAwLjAwMTI1NywgMC4wMDEyNTksIDAuMDAxMjU5LCAwLjAwMTI1OSwgMC4wMDEyNiIsIFwKLSAgICAgICAgICAiMC4wMDEyMzgsIDAuMDAxMjQsIDAuMDAxMjQ2LCAwLjAwMTI0OCwgMC4wMDEyNDksIDAuMDAxMjUsIDAuMDAxMjQ5IiwgXAotICAgICAgICAgICIwLjAwMTIzMSwgMC4wMDEyMzMsIDAuMDAxMjQsIDAuMDAxMjQyLCAwLjAwMTI0MiwgMC4wMDEyNDMsIDAuMDAxMjQzIiwgXAotICAgICAgICAgICIwLjAwMTIyNSwgMC4wMDEyMjcsIDAuMDAxMjM0LCAwLjAwMTIzNiwgMC4wMDEyMzgsIDAuMDAxMjM4LCAwLjAwMTIzOCIsIFwKLSAgICAgICAgICAiMC4wMDEyMjIsIDAuMDAxMjI0LCAwLjAwMTIzMiwgMC4wMDEyMzUsIDAuMDAxMjM2LCAwLjAwMTIzNiwgMC4wMDEyMzciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDMyMiwgMC4wMDMyMjIsIDAuMDAzMjI4LCAwLjAwMzIzMSwgMC4wMDMyMzEsIDAuMDAzMjMyLCAwLjAwMzIzMiIsIFwKLSAgICAgICAgICAiMC4wMDMyLCAwLjAwMzIwMiwgMC4wMDMyMDksIDAuMDAzMjEyLCAwLjAwMzIxMiwgMC4wMDMyMTMsIDAuMDAzMjE0IiwgXAotICAgICAgICAgICIwLjAwMzE5MywgMC4wMDMxOTUsIDAuMDAzMjAzLCAwLjAwMzIwNiwgMC4wMDMyMDcsIDAuMDAzMjA4LCAwLjAwMzIwOSIsIFwKLSAgICAgICAgICAiMC4wMDMxOTIsIDAuMDAzMTk1LCAwLjAwMzIwNCwgMC4wMDMyMDgsIDAuMDAzMjA5LCAwLjAwMzIxLCAwLjAwMzIxMSIsIFwKLSAgICAgICAgICAiMC4wMDMxOTUsIDAuMDAzMTk4LCAwLjAwMzIwOSwgMC4wMDMyMTMsIDAuMDAzMjE1LCAwLjAwMzIxNiwgMC4wMDMyMTciLCBcCi0gICAgICAgICAgIjAuMDAzMjEsIDAuMDAzMjEzLCAwLjAwMzIyNCwgMC4wMDMyMywgMC4wMDMyMzIsIDAuMDAzMjMzLCAwLjAwMzIzNCIsIFwKLSAgICAgICAgICAiMC4wMDMyMjYsIDAuMDAzMjI5LCAwLjAwMzI0LCAwLjAwMzI0NiwgMC4wMDMyNDgsIDAuMDAzMjUsIDAuMDAzMjUxIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTQ4NiwgMC4wMDE0ODcsIDAuMDAxNDkyLCAwLjAwMTQ5NCwgMC4wMDE0OTUsIDAuMDAxNDk1LCAwLjAwMTQ5NiIsIFwKLSAgICAgICAgICAiMC4wMDE0NjUsIDAuMDAxNDY2LCAwLjAwMTQ3MiwgMC4wMDE0NzUsIDAuMDAxNDc1LCAwLjAwMTQ3NiwgMC4wMDE0NzYiLCBcCi0gICAgICAgICAgIjAuMDAxNDYxLCAwLjAwMTQ2MywgMC4wMDE0NjksIDAuMDAxNDcyLCAwLjAwMTQ3MiwgMC4wMDE0NzQsIDAuMDAxNDczIiwgXAotICAgICAgICAgICIwLjAwMTQ2MywgMC4wMDE0NjUsIDAuMDAxNDcyLCAwLjAwMTQ3NiwgMC4wMDE0NzcsIDAuMDAxNDc4LCAwLjAwMTQ3OCIsIFwKLSAgICAgICAgICAiMC4wMDE0NjksIDAuMDAxNDcxLCAwLjAwMTQ3OSwgMC4wMDE0ODMsIDAuMDAxNDg0LCAwLjAwMTQ4NSwgMC4wMDE0ODYiLCBcCi0gICAgICAgICAgIjAuMDAxNDg0LCAwLjAwMTQ4NiwgMC4wMDE0OTUsIDAuMDAxNSwgMC4wMDE1MDEsIDAuMDAxNTAzLCAwLjAwMTUwMyIsIFwKLSAgICAgICAgICAiMC4wMDE1MDIsIDAuMDAxNTA1LCAwLjAwMTUxNCwgMC4wMDE1MTgsIDAuMDAxNTIsIDAuMDAxNTIyLCAwLjAwMTUyMiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjQ3LCAwLjAwMjQ3LCAwLjAwMjQ3MywgMC4wMDI0NzMsIDAuMDAyNDc0LCAwLjAwMjQ3NCwgMC4wMDI0NzQiLCBcCi0gICAgICAgICAgIjAuMDAyNDU0LCAwLjAwMjQ1NSwgMC4wMDI0NTcsIDAuMDAyNDU4LCAwLjAwMjQ1OCwgMC4wMDI0NTgsIDAuMDAyNDU5IiwgXAotICAgICAgICAgICIwLjAwMjQ0NCwgMC4wMDI0NDUsIDAuMDAyNDQ4LCAwLjAwMjQ0OSwgMC4wMDI0NDksIDAuMDAyNDQ5LCAwLjAwMjQ1IiwgXAotICAgICAgICAgICIwLjAwMjQzOSwgMC4wMDI0NCwgMC4wMDI0NDQsIDAuMDAyNDQ1LCAwLjAwMjQ0NiwgMC4wMDI0NDYsIDAuMDAyNDQ2IiwgXAotICAgICAgICAgICIwLjAwMjQzOCwgMC4wMDI0MzksIDAuMDAyNDQzLCAwLjAwMjQ0NSwgMC4wMDI0NDUsIDAuMDAyNDQ1LCAwLjAwMjQ0NiIsIFwKLSAgICAgICAgICAiMC4wMDI0MzgsIDAuMDAyNDQsIDAuMDAyNDQ0LCAwLjAwMjQ0NiwgMC4wMDI0NDcsIDAuMDAyNDQ4LCAwLjAwMjQ0OCIsIFwKLSAgICAgICAgICAiMC4wMDI0NDIsIDAuMDAyNDQ0LCAwLjAwMjQ1LCAwLjAwMjQ1MiwgMC4wMDI0NTIsIDAuMDAyNDUzLCAwLjAwMjQ1MyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIxIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDEyNywgMC4wMDEyNzIsIDAuMDAxMjc2LCAwLjAwMTI3NywgMC4wMDEyNzgsIDAuMDAxMjc4LCAwLjAwMTI3OCIsIFwKLSAgICAgICAgICAiMC4wMDEyNDYsIDAuMDAxMjQ4LCAwLjAwMTI1MiwgMC4wMDEyNTQsIDAuMDAxMjU0LCAwLjAwMTI1NSwgMC4wMDEyNTUiLCBcCi0gICAgICAgICAgIjAuMDAxMjM0LCAwLjAwMTIzNiwgMC4wMDEyNDIsIDAuMDAxMjQ0LCAwLjAwMTI0NSwgMC4wMDEyNDYsIDAuMDAxMjQ2IiwgXAotICAgICAgICAgICIwLjAwMTIzMiwgMC4wMDEyMzQsIDAuMDAxMjQxLCAwLjAwMTI0NCwgMC4wMDEyNDUsIDAuMDAxMjQ2LCAwLjAwMTI0NyIsIFwKLSAgICAgICAgICAiMC4wMDEyMzgsIDAuMDAxMjQxLCAwLjAwMTI0OSwgMC4wMDEyNTIsIDAuMDAxMjUzLCAwLjAwMTI1NCwgMC4wMDEyNTQiLCBcCi0gICAgICAgICAgIjAuMDAxMjQ1LCAwLjAwMTI0NywgMC4wMDEyNTYsIDAuMDAxMjU5LCAwLjAwMTI2LCAwLjAwMTI2MSwgMC4wMDEyNjIiLCBcCi0gICAgICAgICAgIjAuMDAxMjU3LCAwLjAwMTI1OSwgMC4wMDEyNjgsIDAuMDAxMjcyLCAwLjAwMTI3NCwgMC4wMDEyNzYsIDAuMDAxMjc2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyMjY5LCAwLjAwMjI3LCAwLjAwMjI3NCwgMC4wMDIyNzUsIDAuMDAyMjc1LCAwLjAwMjI3NiwgMC4wMDIyNzYiLCBcCi0gICAgICAgICAgIjAuMDAyMjUsIDAuMDAyMjUxLCAwLjAwMjI1NSwgMC4wMDIyNTcsIDAuMDAyMjU3LCAwLjAwMjI1OCwgMC4wMDIyNTgiLCBcCi0gICAgICAgICAgIjAuMDAyMjQzLCAwLjAwMjI0NCwgMC4wMDIyNSwgMC4wMDIyNTIsIDAuMDAyMjUyLCAwLjAwMjI1MywgMC4wMDIyNTMiLCBcCi0gICAgICAgICAgIjAuMDAyMjQ0LCAwLjAwMjI0NiwgMC4wMDIyNTIsIDAuMDAyMjU1LCAwLjAwMjI1NiwgMC4wMDIyNTcsIDAuMDAyMjU3IiwgXAotICAgICAgICAgICIwLjAwMjI1NCwgMC4wMDIyNTYsIDAuMDAyMjYzLCAwLjAwMjI2NiwgMC4wMDIyNjcsIDAuMDAyMjY4LCAwLjAwMjI2OSIsIFwKLSAgICAgICAgICAiMC4wMDIyNiwgMC4wMDIyNjIsIDAuMDAyMjcsIDAuMDAyMjczLCAwLjAwMjI3NSwgMC4wMDIyNzYsIDAuMDAyMjc2IiwgXAotICAgICAgICAgICIwLjAwMjI3NiwgMC4wMDIyNzgsIDAuMDAyMjg0LCAwLjAwMjI4OCwgMC4wMDIyOTEsIDAuMDAyMjkzLCAwLjAwMjI5MyIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBPQUkyMjJYTCAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoT0FJMjIyWEwpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4xMTc5ODsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQTApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYzNjc0NTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MzU4MDk7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjM2NzQ1OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDIyNiwgMC4wMDAyMjYsIDAuMDAwMjI2LCAwLjAwMDIyNiwgMC4wMDAyMjYsIDAuMDAwMjI2LCAwLjAwMDIyNiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDIyNywgMC4wMDAyMjcsIDAuMDAwMjI3LCAwLjAwMDIyNywgMC4wMDAyMjcsIDAuMDAwMjI3LCAwLjAwMDIyNyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQTEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYzOTQ2ODsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2Mzk0Njg7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjM3NDY1OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDIyNywgMC4wMDAyMjYsIDAuMDAwMjI2LCAwLjAwMDIyNiwgMC4wMDAyMjYsIDAuMDAwMjI2LCAwLjAwMDIyNiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDIyNywgMC4wMDAyMjcsIDAuMDAwMjI3LCAwLjAwMDIyNywgMC4wMDAyMjcsIDAuMDAwMjI3LCAwLjAwMDIyNyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQjApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY4OTMyODsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2ODgwNTg7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjg5MzI4OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDIyNiwgMC4wMDAyMjYsIDAuMDAwMjI2LCAwLjAwMDIyNiwgMC4wMDAyMjYsIDAuMDAwMjI2LCAwLjAwMDIyNiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDIyNywgMC4wMDAyMjcsIDAuMDAwMjI3LCAwLjAwMDIyNywgMC4wMDAyMjcsIDAuMDAwMjI3LCAwLjAwMDIyNyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQjEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY2NDQzOTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2NjQ0Mzk7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjYyNjEzOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDIyNiwgMC4wMDAyMjYsIDAuMDAwMjI2LCAwLjAwMDIyNiwgMC4wMDAyMjYsIDAuMDAwMjI2LCAwLjAwMDIyNiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDIyNywgMC4wMDAyMjcsIDAuMDAwMjI3LCAwLjAwMDIyNywgMC4wMDAyMjcsIDAuMDAwMjI3LCAwLjAwMDIyNyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQzApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDcxNzYwOTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA3MTQ5NzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDA3MTc2MDk7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzU0LCAwLjAwMDM1NCwgMC4wMDAzNTQsIDAuMDAwMzU1LCAwLjAwMDM1NCwgMC4wMDAzNTQsIDAuMDAwMzU0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjU3LCAwLjAwMDI1NywgMC4wMDAyNTgsIDAuMDAwMjU3LCAwLjAwMDI1NywgMC4wMDAyNTcsIDAuMDAwMjU3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihDMSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwNzM4OTY7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNzM4OTY7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNzM4OTQ4OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDM1NCwgMC4wMDAzNTQsIDAuMDAwMzU0LCAwLjAwMDM1NCwgMC4wMDAzNTQsIDAuMDAwMzU0LCAwLjAwMDM1NCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDI1NywgMC4wMDAyNTcsIDAuMDAwMjU3LCAwLjAwMDI1NywgMC4wMDAyNTcsIDAuMDAwMjU3LCAwLjAwMDI1NyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjA1OTkyNzY7Ci0gICAgZnVuY3Rpb24gOiAiKCEoKChDMCtDMSkgKEEwK0ExKSkgKEIwK0IxKSkpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTc3NTI1LCAwLjIwNDMzOCwgMC40NDQ2NDUsIDAuODQzODgsIDEuMjQzMTUsIDIuMTczOTQsIDIuNzA1NjEiLCBcCi0gICAgICAgICAgIjAuMTg2MTIxLCAwLjIxMjkyOCwgMC40NTMxMTcsIDAuODUyNjAzLCAxLjI1MTY1LCAyLjE4MjM5LCAyLjcxMzc4IiwgXAotICAgICAgICAgICIwLjE5NjA1NCwgMC4yMjI5MDQsIDAuNDYzMTMxLCAwLjg2Mjc4NSwgMS4yNjE2OSwgMi4xOTI1NywgMi43MjM2NyIsIFwKLSAgICAgICAgICAiMC4yMDU4OTIsIDAuMjMyNTE1LCAwLjQ3MzA0MiwgMC44NzI2MjMsIDEuMjcxNjEsIDIuMjAyNDcsIDIuNzMzNzIiLCBcCi0gICAgICAgICAgIjAuMjE1NjYsIDAuMjQyNTI4LCAwLjQ4MjgxMiwgMC44ODI2NjksIDEuMjgxNzMsIDIuMjEyNDcsIDIuNzQzNDMiLCBcCi0gICAgICAgICAgIjAuMjMxMjMyLCAwLjI1ODI1OCwgMC40OTg3NzMsIDAuODk4NDY3LCAxLjI5NzQ2LCAyLjIyODE2LCAyLjc1OTUxIiwgXAotICAgICAgICAgICIwLjI0NDk5NywgMC4yNzE3OCwgMC41MTI3NTcsIDAuOTEyMDQ3LCAxLjMxMTU4LCAyLjI0MjQ2LCAyLjc3MzUxIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjM0NDI3MSwgMC4zOTgxNDEsIDAuODgzMzg0LCAxLjY5MTI2LCAyLjQ5OTUyLCA0LjM4NTAxLCA1LjQ2MTg0IiwgXAotICAgICAgICAgICIwLjM0NDI0NCwgMC4zOTgxNDgsIDAuODgzMjg4LCAxLjY5MTI5LCAyLjQ5OTEsIDQuMzg0OTcsIDUuNDYyMjgiLCBcCi0gICAgICAgICAgIjAuMzQ0MjkyLCAwLjM5ODE0NCwgMC44ODMxOTksIDEuNjkxNjMsIDIuNDk4OSwgNC4zODQ4MiwgNS40NjE3IiwgXAotICAgICAgICAgICIwLjM0NDQ4MywgMC4zOTgyMTQsIDAuODgzMzI3LCAxLjY5MTYxLCAyLjQ5OTAzLCA0LjM4NDg1LCA1LjQ2MDYyIiwgXAotICAgICAgICAgICIwLjM0NTc1NSwgMC4zOTkwOTMsIDAuODgzMjY3LCAxLjY5MTI2LCAyLjQ5OTE1LCA0LjM4NDk0LCA1LjQ2MTYzIiwgXAotICAgICAgICAgICIwLjM0OTU4OCwgMC40MDIyMTEsIDAuODgzMzI1LCAxLjY5MTEzLCAyLjQ5OTIsIDQuMzg0NjcsIDUuNDYyNDYiLCBcCi0gICAgICAgICAgIjAuMzU0NDQsIDAuNDA2MjYyLCAwLjg4MzcxOCwgMS42OTEyNSwgMi40OTkyMSwgNC4zODUyNiwgNS40NjE1NyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yNTg3ODMsIDAuMjk2MjM5LCAwLjYzMzg2NiwgMS4xOTc0NCwgMS43NjQ0MywgMy4wODM3NywgMy44Mzc4OSIsIFwKLSAgICAgICAgICAiMC4yNjg1NjksIDAuMzA2MDU5LCAwLjY0MzgyMywgMS4yMDc4NCwgMS43NzM0MiwgMy4wOTM4OCwgMy44NDc5IiwgXAotICAgICAgICAgICIwLjI3OTM3OCwgMC4zMTcwMDYsIDAuNjU0NTI2LCAxLjIxODA4LCAxLjc4NDU4LCAzLjEwNDk0LCAzLjg1ODc5IiwgXAotICAgICAgICAgICIwLjI4OTY1NSwgMC4zMjcxOTUsIDAuNjY0OTA4LCAxLjIyODUxLCAxLjc5NDcsIDMuMTE1NjYsIDMuODY5MDgiLCBcCi0gICAgICAgICAgIjAuMjk5MTcsIDAuMzM2NzUsIDAuNjc0NzU5LCAxLjIzNzkzLCAxLjgwNDMyLCAzLjEyNTI4LCAzLjg3ODYzIiwgXAotICAgICAgICAgICIwLjMxMzk1NSwgMC4zNTE1MzQsIDAuNjg5MzA3LCAxLjI1MjY2LCAxLjgxOTU1LCAzLjEzOTM3LCAzLjg5MzQ1IiwgXAotICAgICAgICAgICIwLjMyNjU5OCwgMC4zNjQyMjYsIDAuNzAxOTE1LCAxLjI2NTk4LCAxLjgzMjY1LCAzLjE1MjQyLCAzLjkwNjM4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjQ0MTMzNywgMC41MTQ2MzIsIDEuMTc4MTgsIDIuMjg4MTcsIDMuMzk4NDYsIDUuOTg4MzUsIDcuNDY3MjMiLCBcCi0gICAgICAgICAgIjAuNDQxNDQsIDAuNTE0NjE4LCAxLjE3ODE3LCAyLjI4OTM5LCAzLjM5ODE3LCA1Ljk4NTk3LCA3LjQ2NDI2IiwgXAotICAgICAgICAgICIwLjQ0MTEyNywgMC41MTQ1ODQsIDEuMTc4MjMsIDIuMjg4NzgsIDMuMzk4MDksIDUuOTg1OSwgNy40NjYxNSIsIFwKLSAgICAgICAgICAiMC40NDEyMiwgMC41MTQ2MTgsIDEuMTc4MzIsIDIuMjg4NywgMy4zOTc5NCwgNS45ODY0LCA3LjQ2ODkiLCBcCi0gICAgICAgICAgIjAuNDQxMTMzLCAwLjUxNDYxMywgMS4xNzg0NCwgMi4yODg1NiwgMy4zOTc5NCwgNS45ODY1MiwgNy40NjU0IiwgXAotICAgICAgICAgICIwLjQ0MTk0NCwgMC41MTUwNTYsIDEuMTc4MTksIDIuMjg4NTEsIDMuMzk5MDYsIDUuOTg2NjIsIDcuNDY4NTUiLCBcCi0gICAgICAgICAgIjAuNDQzMjQyLCAwLjUxNjA5NCwgMS4xNzg5MiwgMi4yODk4NiwgMy4zOTk4OSwgNS45ODY5MSwgNy40NjQ1MSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTc0MjU1LCAwLjIwMTA1NiwgMC40NDE0MjksIDAuODQwNTY3LCAxLjIzOTgzLCAyLjE3MDUyLCAyLjcwMjEzIiwgXAotICAgICAgICAgICIwLjE4MzIyNywgMC4yMTAwNzYsIDAuNDUwMjI3LCAwLjg0OTkyNSwgMS4yNDg4NCwgMi4xNzk1NiwgMi43MTEyOCIsIFwKLSAgICAgICAgICAiMC4xOTQzNDEsIDAuMjIxMTc2LCAwLjQ2MTI5NCwgMC44NjA4MTEsIDEuMjYwMTgsIDIuMTkxMDEsIDIuNzIyMTYiLCBcCi0gICAgICAgICAgIjAuMjA1NzA2LCAwLjIzMjIwOCwgMC40NzI4NSwgMC44NzIyODgsIDEuMjcxMzYsIDIuMjAyMTUsIDIuNzMzNDMiLCBcCi0gICAgICAgICAgIjAuMjE3MDgyLCAwLjI0Mzg2MSwgMC40ODQyMDIsIDAuODgzNzQ3LCAxLjI4Mjk1LCAyLjIxMzYzLCAyLjc0NDU4IiwgXAotICAgICAgICAgICIwLjIzNTIzMywgMC4yNjIwNCwgMC41MDIzNjYsIDAuOTAxNTAzLCAxLjMwMTA0LCAyLjIzMTQ1LCAyLjc2MjgxIiwgXAotICAgICAgICAgICIwLjI1MTM3MywgMC4yNzgwNzYsIDAuNTE4MjQsIDAuOTE3NTMxLCAxLjMxNjc2LCAyLjI0Nzg4LCAyLjc3ODY2Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjM0NDI4OSwgMC4zOTgxNCwgMC44ODMzMTYsIDEuNjkxNjEsIDIuNDk5MDEsIDQuMzg1MDYsIDUuNDYxNSIsIFwKLSAgICAgICAgICAiMC4zNDQyMTcsIDAuMzk4MTI1LCAwLjg4MzM0NiwgMS42OTEyMywgMi40OTk1MiwgNC4zODUsIDUuNDYxODIiLCBcCi0gICAgICAgICAgIjAuMzQ0MjE5LCAwLjM5ODExOSwgMC44ODMyOTksIDEuNjkxNjEsIDIuNDk5NjcsIDQuMzg0NTMsIDUuNDYxMDciLCBcCi0gICAgICAgICAgIjAuMzQ0NTMyLCAwLjM5ODE4OCwgMC44ODMzMzMsIDEuNjkxNjEsIDIuNDk5NTcsIDQuMzg1MTQsIDUuNDYyOCIsIFwKLSAgICAgICAgICAiMC4zNDY1OTEsIDAuMzk5MzU4LCAwLjg4MzMwMSwgMS42OTE2MSwgMi40OTg5NywgNC4zODUyNywgNS40NjA5NiIsIFwKLSAgICAgICAgICAiMC4zNTI3MjYsIDAuNDA0MjYsIDAuODgzMzE3LCAxLjY5MTMsIDIuNDk4OTcsIDQuMzg0ODIsIDUuNDYyMDMiLCBcCi0gICAgICAgICAgIjAuMzYwMTI4LCAwLjQxMDYyMSwgMC44ODM1ODgsIDEuNjkxNjIsIDIuNDk4NzksIDQuMzg1MDgsIDUuNDYxMjMiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjUyMTk3LCAwLjI4OTcwNCwgMC42MjcxOSwgMS4xOTA2NiwgMS43NTc0NiwgMy4wNzcwMSwgMy44MzExMiIsIFwKLSAgICAgICAgICAiMC4yNjIxMDksIDAuMjk5ODAyLCAwLjYzNzMxOCwgMS4yMDEyNCwgMS43Njc0OCwgMy4wODcxNywgMy44NDE0MiIsIFwKLSAgICAgICAgICAiMC4yNzMwMzcsIDAuMzEwNTg4LCAwLjY0ODI2MiwgMS4yMTIxNCwgMS43NzgwMSwgMy4wOTkwMywgMy44NTI1MiIsIFwKLSAgICAgICAgICAiMC4yODMxNDQsIDAuMzIwNjkyLCAwLjY1ODQzNCwgMS4yMjIwNiwgMS43ODgyNiwgMy4xMDkyNiwgMy44NjI2NyIsIFwKLSAgICAgICAgICAiMC4yOTI2MzEsIDAuMzMwMTc1LCAwLjY2ODI2MywgMS4yMzE0NSwgMS43OTc4NiwgMy4xMTg4NywgMy44NzIyMyIsIFwKLSAgICAgICAgICAiMC4zMDcyMjUsIDAuMzQ0ODY4LCAwLjY4Mjc4LCAxLjI0NjE1LCAxLjgxMzA0LCAzLjEzMjk3LCAzLjg4NzA0IiwgXAotICAgICAgICAgICIwLjMxOTc4OCwgMC4zNTc0MzYsIDAuNjk1MzI3LCAxLjI1OTQ0LCAxLjgyNjEyLCAzLjE0NjAxLCAzLjg5OTk4Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjQzMzU4LCAwLjUwNjY4LCAxLjE2OTkxLCAyLjI4MDcyLCAzLjM5MTE0LCA1Ljk3OTYyLCA3LjQ1ODgzIiwgXAotICAgICAgICAgICIwLjQzMzMzNSwgMC41MDY4OTQsIDEuMTcwNDMsIDIuMjgwODcsIDMuMzkxNjMsIDUuOTc4LCA3LjQ1NzQxIiwgXAotICAgICAgICAgICIwLjQzMzU5MSwgMC41MDY2NjgsIDEuMTcwMDMsIDIuMjgxMTEsIDMuMzkwODEsIDUuOTc3MDUsIDcuNDYwNCIsIFwKLSAgICAgICAgICAiMC40MzMzMjIsIDAuNTA2Njc4LCAxLjE3MDIyLCAyLjI4MDM0LCAzLjM5MDkxLCA1Ljk3Nzc1LCA3LjQ2MDI4IiwgXAotICAgICAgICAgICIwLjQzMzQ0OCwgMC41MDY2OCwgMS4xNzAxOSwgMi4yODAxOSwgMy4zOTA4NiwgNS45NzcwMSwgNy40NTY5IiwgXAotICAgICAgICAgICIwLjQzNDEzLCAwLjUwNzE3NCwgMS4xNjk5MSwgMi4yODAyMSwgMy4zOTA1OSwgNS45NzgwOCwgNy40NTk5OCIsIFwKLSAgICAgICAgICAiMC40MzU2MDksIDAuNTA4MTQ5LCAxLjE3MDY3LCAyLjI4MTU0LCAzLjM5MTQ1LCA1Ljk3ODQ0LCA3LjQ2MDYyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIwIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNjg3MDYsIDAuMTk1NDg2LCAwLjQzNTIzLCAwLjgzNDQ1NSwgMS4yMzQwNiwgMi4xNjQ1MSwgMi42OTUyOSIsIFwKLSAgICAgICAgICAiMC4xNzc1MzEsIDAuMjA0MjUzLCAwLjQ0NDA4MiwgMC44NDMyNjcsIDEuMjQyNjUsIDIuMTcyOTEsIDIuNzA0MjciLCBcCi0gICAgICAgICAgIjAuMTg3NDY0LCAwLjIxNDE2MywgMC40NTQwNjQsIDAuODUzMjYzLCAxLjI1Mjc1LCAyLjE4MzA1LCAyLjcxNDYiLCBcCi0gICAgICAgICAgIjAuMTk3MjQ0LCAwLjIyNDAwOCwgMC40NjQwMzQsIDAuODYzMjE0LCAxLjI2MjY0LCAyLjE5MzAyLCAyLjcyNDIxIiwgXAotICAgICAgICAgICIwLjIwNzA5NiwgMC4yMzQwMTgsIDAuNDczNzQ1LCAwLjg3MzAyLCAxLjI3MjMxLCAyLjIwMjczLCAyLjczMzg1IiwgXAotICAgICAgICAgICIwLjIyMjY5MywgMC4yNDk1MzUsIDAuNDg5Njk5LCAwLjg4OTA0NiwgMS4yODgzNywgMi4yMTg2OSwgMi43NDk5NCIsIFwKLSAgICAgICAgICAiMC4yMzYzNzQsIDAuMjYzMTM0LCAwLjUwMzE0NiwgMC45MDI1MDIsIDEuMzAyLCAyLjIzMzE0LCAyLjc2NDE0Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMzMzM5NSwgMC4zODczNjUsIDAuODcyMjEyLCAxLjY3OTc3LCAyLjQ4Nzk5LCA0LjM3Mzc5LCA1LjQ1MTc4IiwgXAotICAgICAgICAgICIwLjMzMzQzMywgMC4zODcyNiwgMC44NzIxNTEsIDEuNjgwMTQsIDIuNDg3ODUsIDQuMzczMSwgNS40NTE5MiIsIFwKLSAgICAgICAgICAiMC4zMzMzODMsIDAuMzg3MjM1LCAwLjg3MjIxMywgMS42Nzk4MiwgMi40ODc4LCA0LjM3Mjk5LCA1LjQ1MTgzIiwgXAotICAgICAgICAgICIwLjMzMzczOCwgMC4zODczNjYsIDAuODcyMTQ1LCAxLjY4MDAzLCAyLjQ4NzczLCA0LjM3MzgzLCA1LjQ1MTk5IiwgXAotICAgICAgICAgICIwLjMzNTE4OCwgMC4zODgzOTgsIDAuODcyMTM0LCAxLjY4MDAxLCAyLjQ4Nzc4LCA0LjM3MzI1LCA1LjQ1MTg5IiwgXAotICAgICAgICAgICIwLjMzOTIxNCwgMC4zOTE4MTksIDAuODcyMTIsIDEuNjgwMDUsIDIuNDg3NzUsIDQuMzcyOTcsIDUuNDUyMDEiLCBcCi0gICAgICAgICAgIjAuMzQ0Mzg3LCAwLjM5NjA2NiwgMC44NzI2MzcsIDEuNjgsIDIuNDg3NjUsIDQuMzczODcsIDUuNDUxNjYiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjUwNTk1LCAwLjI4ODI4MywgMC42MjU5MTEsIDEuMTg5NTUsIDEuNzU1NjQsIDMuMDc1NjQsIDMuODI5NzkiLCBcCi0gICAgICAgICAgIjAuMjU5ODk1LCAwLjI5NzQ4MywgMC42MzUxMzcsIDEuMTk4NDIsIDEuNzY1MzEsIDMuMDg1NTQsIDMuODM5NDIiLCBcCi0gICAgICAgICAgIjAuMjcxMDMzLCAwLjMwODYwNCwgMC42NDYyNywgMS4yMTAyNCwgMS43NzYsIDMuMDk2MTIsIDMuODUwMzQiLCBcCi0gICAgICAgICAgIjAuMjgxOTA5LCAwLjMxOTUwMywgMC42NTcwODUsIDEuMjIwNzksIDEuNzg3NzYsIDMuMTA3MDQsIDMuODYxMTciLCBcCi0gICAgICAgICAgIjAuMjkyNDM1LCAwLjMzMDEyNywgMC42Njc2NDEsIDEuMjMxMjcsIDEuNzk3MjMsIDMuMTE4MDIsIDMuODcxODgiLCBcCi0gICAgICAgICAgIjAuMzA5NTU1LCAwLjM0NzIxOCwgMC42ODQ5MjUsIDEuMjQ4ODksIDEuODE1NDIsIDMuMTM1NTQsIDMuODg5MzciLCBcCi0gICAgICAgICAgIjAuMzI0NDI1LCAwLjM2MTk2OSwgMC42OTk4MTksIDEuMjYzMjEsIDEuODI5MjksIDMuMTQ5NzgsIDMuOTAzOTYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuNDQxMTIyLCAwLjUxNDc4NiwgMS4xNzgyNywgMi4yODgzOCwgMy4zOTg1NCwgNS45ODk1NCwgNy40NjgwOCIsIFwKLSAgICAgICAgICAiMC40NDExOTEsIDAuNTE0ODkyLCAxLjE3ODE4LCAyLjI4ODMsIDMuMzk4MzUsIDUuOTg2NzUsIDcuNDY4NyIsIFwKLSAgICAgICAgICAiMC40NDExMjUsIDAuNTE0NjE3LCAxLjE3ODQyLCAyLjI4OTAzLCAzLjM5NzkyLCA1Ljk4NTk3LCA3LjQ2ODM3IiwgXAotICAgICAgICAgICIwLjQ0MTI2OCwgMC41MTQ3NDMsIDEuMTc4NTMsIDIuMjg4MTksIDMuMzk5NjQsIDUuOTg4NzMsIDcuNDY3MTEiLCBcCi0gICAgICAgICAgIjAuNDQxMzk2LCAwLjUxNDU5NywgMS4xNzgxOSwgMi4yODg3MywgMy4zOTg2MSwgNS45ODY1OSwgNy40Njg2MSIsIFwKLSAgICAgICAgICAiMC40NDIyMzMsIDAuNTE1MDk1LCAxLjE3ODgyLCAyLjI4ODg0LCAzLjM5ODU5LCA1Ljk4NjMsIDcuNDYzNjIiLCBcCi0gICAgICAgICAgIjAuNDQ0ODkyLCAwLjUxNjc1OSwgMS4xNzg0NywgMi4yODg2NywgMy4zOTcxOCwgNS45ODc5NiwgNy40NjcwOCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTY0OTM5LCAwLjE5MTYxMywgMC40MzE0NTMsIDAuODMwNzg3LCAxLjIzMDE0LCAyLjE2MDYzLCAyLjY5MTcyIiwgXAotICAgICAgICAgICIwLjE3Mzk0LCAwLjIwMDYzNCwgMC40NDA1MjIsIDAuODM5NzgxLCAxLjIzOTE3LCAyLjE2OTQ0LCAyLjcwMDk2IiwgXAotICAgICAgICAgICIwLjE4NTE3MiwgMC4yMTE5MjcsIDAuNDUxNzM5LCAwLjg1MDk0OSwgMS4yNTAzNSwgMi4xODEwMSwgMi43MTE4IiwgXAotICAgICAgICAgICIwLjE5NjUyMywgMC4yMjMyODcsIDAuNDYzMTA0LCAwLjg2MjI1MiwgMS4yNjE3MSwgMi4xOTE5NiwgMi43MjMyMSIsIFwKLSAgICAgICAgICAiMC4yMDc5NTUsIDAuMjM0NTkxLCAwLjQ3NDUyOCwgMC44NzM3MTksIDEuMjczMTgsIDIuMjAzNzgsIDIuNzM0NjgiLCBcCi0gICAgICAgICAgIjAuMjI2MTEyLCAwLjI1MjgwNCwgMC40OTI1ODcsIDAuODkxOTA3LCAxLjI5MTMyLCAyLjIyMTgxLCAyLjc1MjcxIiwgXAotICAgICAgICAgICIwLjI0MjIwNywgMC4yNjg3OTksIDAuNTA4NTUsIDAuOTA3ODY4LCAxLjMwNzIyLCAyLjIzNzUzLCAyLjc2ODU1Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMzMzM5NywgMC4zODcyODUsIDAuODcyMDU1LCAxLjY4MDE5LCAyLjQ4Nzk5LCA0LjM3MzY5LCA1LjQ1MjAzIiwgXAotICAgICAgICAgICIwLjMzMzM3LCAwLjM4NzMyNCwgMC44NzIwNDQsIDEuNjgwMjIsIDIuNDg3ODEsIDQuMzczMDIsIDUuNDUyNjIiLCBcCi0gICAgICAgICAgIjAuMzMzNDAxLCAwLjM4NzMzLCAwLjg3MTkxNiwgMS42ODAwMywgMi40ODc4MSwgNC4zNzQ3MSwgNS40NTE4OCIsIFwKLSAgICAgICAgICAiMC4zMzM5MTEsIDAuMzg3MzM1LCAwLjg3MjAwOSwgMS42Nzk5MSwgMi40ODc2MiwgNC4zNzI5MSwgNS40NTE4MSIsIFwKLSAgICAgICAgICAiMC4zMzYzNTIsIDAuMzg4OTEsIDAuODcyMTQzLCAxLjY3OTcxLCAyLjQ4Nzk3LCA0LjM3NDk1LCA1LjQ1MTExIiwgXAotICAgICAgICAgICIwLjM0MjkzNywgMC4zOTQyNTIsIDAuODcxOTg1LCAxLjY3OTk1LCAyLjQ4NzgsIDQuMzcyMTksIDUuNDUxODQiLCBcCi0gICAgICAgICAgIjAuMzUwNzI1LCAwLjQwMDk0OSwgMC44NzI1NjQsIDEuNjgwMTMsIDIuNDg3ODEsIDQuMzcyODcsIDUuNDUxMjIiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjQ1MTE4LCAwLjI4MzAwMywgMC42MjI4OTMsIDEuMTg5NDYsIDEuNzU1MjIsIDMuMDc1NDcsIDMuODI5NjEiLCBcCi0gICAgICAgICAgIjAuMjU0NjExLCAwLjI5MjQ3NCwgMC42MzI1MTcsIDEuMTk4NDcsIDEuNzY0NDMsIDMuMDg1MTUsIDMuODM5NDQiLCBcCi0gICAgICAgICAgIjAuMjY1NzkzLCAwLjMwMzU5NywgMC42NDM2NzYsIDEuMjEwNDEsIDEuNzc2MzksIDMuMDk3LCAzLjg1MDciLCBcCi0gICAgICAgICAgIjAuMjc2NDE0LCAwLjMxNDMwOCwgMC42NTQ1MzUsIDEuMjIwOTQsIDEuNzg3OTIsIDMuMTA3MjQsIDMuODYxMzgiLCBcCi0gICAgICAgICAgIjAuMjg2ODI1LCAwLjMyNDgzNCwgMC42NjQ5NjUsIDEuMjMxNDQsIDEuNzk3NDMsIDMuMTE4MywgMy44NzIwOCIsIFwKLSAgICAgICAgICAiMC4zMDM2ODgsIDAuMzQxNjY1LCAwLjY4MjA2OSwgMS4yNDkwOCwgMS44MTU1NSwgMy4xMzU3MywgMy44ODk1NiIsIFwKLSAgICAgICAgICAiMC4zMTg0MTMsIDAuMzU2NDYzLCAwLjY5Njg0MywgMS4yNjMyNCwgMS44Mjk0MywgMy4xNDk5NCwgMy45MDQxNCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC40MzY0NjksIDAuNTEwNzcyLCAxLjE3NzExLCAyLjI4NzE3LCAzLjM5NzA4LCA1Ljk4NzYxLCA3LjQ2NTk4IiwgXAotICAgICAgICAgICIwLjQzNjcxOCwgMC41MTA0ODYsIDEuMTc2NzIsIDIuMjg3MDMsIDMuMzk2NDcsIDUuOTg0ODMsIDcuNDY3NDkiLCBcCi0gICAgICAgICAgIjAuNDM2NzQ2LCAwLjUxMDQ5OSwgMS4xNzcxMiwgMi4yODc1MSwgMy4zOTY3MywgNS45ODUxNCwgNy40NjQ4NSIsIFwKLSAgICAgICAgICAiMC40MzY1OTcsIDAuNTEwNzE0LCAxLjE3NzAzLCAyLjI4Njg2LCAzLjM5ODEyLCA1Ljk4NzE0LCA3LjQ2NTcxIiwgXAotICAgICAgICAgICIwLjQzNjQ5NSwgMC41MTA2MzcsIDEuMTc3MDIsIDIuMjg3NDIsIDMuMzk3MzEsIDUuOTg1MDcsIDcuNDY3MjgiLCBcCi0gICAgICAgICAgIjAuNDM3ODE5LCAwLjUxMTAzOSwgMS4xNzc2NiwgMi4yODcxNiwgMy4zOTcyNCwgNS45ODU0LCA3LjQ2MjU3IiwgXAotICAgICAgICAgICIwLjQ0MDMzOSwgMC41MTMwNTEsIDEuMTc3MTQsIDIuMjg2MywgMy4zOTU5MiwgNS45ODY2NywgNy40NjU1NCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTU2MjgyLCAwLjE4Mjk5MiwgMC40MjI3MTksIDAuODIyNDE2LCAxLjIyMTY5LCAyLjE1MjIsIDIuNjgzOTIiLCBcCi0gICAgICAgICAgIjAuMTY1MDQ0LCAwLjE5MTY2LCAwLjQzMTU3NiwgMC44MzExMTIsIDEuMjMwMzcsIDIuMTYwOTYsIDIuNjkyMzciLCBcCi0gICAgICAgICAgIjAuMTc0OTA4LCAwLjIwMTY4OCwgMC40NDE1MjgsIDAuODQxMTI0LCAxLjI0MDUsIDIuMTcxMDUsIDIuNzAyMzUiLCBcCi0gICAgICAgICAgIjAuMTg0NzMzLCAwLjIxMTYwMiwgMC40NTE0MSwgMC44NTEwNTEsIDEuMjUwNDIsIDIuMTgxMTcsIDIuNzEyMTQiLCBcCi0gICAgICAgICAgIjAuMTk0NTMyLCAwLjIyMTMxLCAwLjQ2MTI3LCAwLjg2MDk3NCwgMS4yNjA0MiwgMi4xOTExNiwgMi43MjIxMSIsIFwKLSAgICAgICAgICAiMC4yMTAyNzcsIDAuMjM2OTI3LCAwLjQ3NjI1MywgMC44NzY1MzgsIDEuMjc1OTEsIDIuMjA2NTQsIDIuNzM4MDEiLCBcCi0gICAgICAgICAgIjAuMjIzODc3LCAwLjI1MDU5MiwgMC40OTExMzQsIDAuODkxMDU4LCAxLjI5MDU2LCAyLjIyMTI4LCAyLjc1MjMyIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMyMjM4NSwgMC4zNzYxOTQsIDAuODYwMzQ0LCAxLjY2NzkzLCAyLjQ3NDk5LCA0LjM2MDA4LCA1LjQzODMxIiwgXAotICAgICAgICAgICIwLjMyMjQ5MywgMC4zNzYxODMsIDAuODYwMzksIDEuNjY3NjUsIDIuNDc1MTQsIDQuMzU5ODQsIDUuNDM1NCIsIFwKLSAgICAgICAgICAiMC4zMjI0MjUsIDAuMzc2MTg2LCAwLjg2MDQwNSwgMS42Njc2NywgMi40NzU1MiwgNC4zNjAzNCwgNS40MzU1NCIsIFwKLSAgICAgICAgICAiMC4zMjMwMSwgMC4zNzY0MDIsIDAuODYwNDQ4LCAxLjY2NzY2LCAyLjQ3NTU5LCA0LjM2MDY5LCA1LjQzODAxIiwgXAotICAgICAgICAgICIwLjMyNDc1NiwgMC4zNzc3NSwgMC44NjAzMDUsIDEuNjY3ODEsIDIuNDc1MzMsIDQuMzYwNjYsIDUuNDM1MjYiLCBcCi0gICAgICAgICAgIjAuMzI5NTI1LCAwLjM4MTQ0MywgMC44NjAzNjQsIDEuNjY3NiwgMi40NzUyNCwgNC4zNjAzOSwgNS40MzU0NCIsIFwKLSAgICAgICAgICAiMC4zMzQ4MzIsIDAuMzg2MTA0LCAwLjg2MDk5NywgMS42Njc2MSwgMi40NzUyNSwgNC4zNjA2NCwgNS40MzczOSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMzIzNTQsIDAuMjY5OTM4LCAwLjYwNzUwOSwgMS4xNjk1OSwgMS43MzY2MywgMy4wNTY2LCAzLjgxMDYyIiwgXAotICAgICAgICAgICIwLjI0MTI4NiwgMC4yNzg4MywgMC42MTYyNjMsIDEuMTc4NjksIDEuNzQ0NTksIDMuMDY1MjQsIDMuODE5NDIiLCBcCi0gICAgICAgICAgIjAuMjUyMzYsIDAuMjg5OTI2LCAwLjYyNzUwOCwgMS4xOTA1LCAxLjc1NjY1LCAzLjA3NjQxLCAzLjgzMDU2IiwgXAotICAgICAgICAgICIwLjI2MTYzNywgMC4zMDA1MTksIDAuNjM3OTksIDEuMjAwNCwgMS43NjYyNywgMy4wODc4MSwgMy44NDEyNiIsIFwKLSAgICAgICAgICAiMC4yNzM4NTgsIDAuMzExNDE1LCAwLjY0OTE5NCwgMS4yMTE0MiwgMS43Nzc2NCwgMy4wOTgyMywgMy44NTIwNyIsIFwKLSAgICAgICAgICAiMC4yOTE1MjEsIDAuMzI5MjAyLCAwLjY2NjY2NywgMS4yMjkyMSwgMS43OTUxMSwgMy4xMTU2MiwgMy44Njk3OSIsIFwKLSAgICAgICAgICAiMC4zMDcxNjgsIDAuMzQ0NTg1LCAwLjY4MTk4NiwgMS4yNDQ2MSwgMS44MTE1OSwgMy4xMzE3MywgMy44ODU1MyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC40NDEzNjUsIDAuNTE0NjAzLCAxLjE3NzMyLCAyLjI4NzA5LCAzLjM5NzE5LCA1Ljk4NDcsIDcuNDY3OCIsIFwKLSAgICAgICAgICAiMC40NDExMTYsIDAuNTE0OTc3LCAxLjE3NzAzLCAyLjI4NzA0LCAzLjM5NTU5LCA1Ljk4NjI1LCA3LjQ2NzM4IiwgXAotICAgICAgICAgICIwLjQ0MTE3NiwgMC41MTQ4MzMsIDEuMTc2OTgsIDIuMjg3NzcsIDMuMzk3MDMsIDUuOTg4MzQsIDcuNDY2NjQiLCBcCi0gICAgICAgICAgIjAuNDQwODc5LCAwLjUxNDQ5OCwgMS4xNzcxNiwgMi4yODcxNywgMy4zOTU2MSwgNS45ODU3NCwgNy40Njc2MiIsIFwKLSAgICAgICAgICAiMC40NDA3NDUsIDAuNTE0MjY5LCAxLjE3NzEsIDIuMjg2MjksIDMuMzk3MjMsIDUuOTg0NzEsIDcuNDY3MDQiLCBcCi0gICAgICAgICAgIjAuNDQzNzMxLCAwLjUxNTY1OSwgMS4xNzcwMiwgMi4yODY0LCAzLjM5NjE4LCA1Ljk4NDQsIDcuNDY2MjEiLCBcCi0gICAgICAgICAgIjAuNDQ4MjkyLCAwLjUxOTEyNywgMS4xNzcwMiwgMi4yODcyNSwgMy4zOTkyNSwgNS45ODU4MiwgNy40NjI3NCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDMSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTUzMzAyLCAwLjE3OTg4NCwgMC40MTk2ODcsIDAuODE5MjA5LCAxLjIxODU1LCAyLjE0OTEzLCAyLjY4MDU4IiwgXAotICAgICAgICAgICIwLjE2MjMyMiwgMC4xODkxOTYsIDAuNDI4OTI0LCAwLjgyODQ1MywgMS4yMjc4MywgMi4xNTgzMiwgMi42ODk4OCIsIFwKLSAgICAgICAgICAiMC4xNzM3NDUsIDAuMjAwMjQ4LCAwLjQ0MDIwMywgMC44Mzk3NTIsIDEuMjM5MDksIDIuMTY5OTIsIDIuNzAwOTMiLCBcCi0gICAgICAgICAgIjAuMTg0OTg4LCAwLjIxMTY0MiwgMC40NTE1OCwgMC44NTEyMDQsIDEuMjUwNTUsIDIuMTgxMjMsIDIuNzEyNDUiLCBcCi0gICAgICAgICAgIjAuMTk2Mzk3LCAwLjIyMjk4MiwgMC40NjI5NjQsIDAuODYyNDQ0LCAxLjI2MTg5LCAyLjE5MjY1LCAyLjcyMzk1IiwgXAotICAgICAgICAgICIwLjIxNDUyOSwgMC4yNDEyMzUsIDAuNDgxMDMsIDAuODgwNjk5LCAxLjI4MDA2LCAyLjIxMDczLCAyLjc0MTgiLCBcCi0gICAgICAgICAgIjAuMjMwNjcxLCAwLjI1NzEsIDAuNDk2OTQyLCAwLjg5NjYzMiwgMS4yOTU5NywgMi4yMjY0MywgMi43NTc3NyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMjI0NDUsIDAuMzc2MTk0LCAwLjg2MDM1NiwgMS42Njc2NywgMi40NzUxOSwgNC4zNTk4NCwgNS40MzY0MiIsIFwKLSAgICAgICAgICAiMC4zMjI0MjgsIDAuMzc2MzAzLCAwLjg2MDQ2NCwgMS42Njc3MiwgMi40NzUwNCwgNC4zNjA1MywgNS40MzU4MyIsIFwKLSAgICAgICAgICAiMC4zMjI1MTksIDAuMzc2MjIyLCAwLjg2MDQ0MiwgMS42Njc2NywgMi40NzUyNywgNC4zNjAwMSwgNS40MzgwNyIsIFwKLSAgICAgICAgICAiMC4zMjMyMzYsIDAuMzc2NDE3LCAwLjg2MDM3NiwgMS42Njc5NCwgMi40NzU0LCA0LjM2MDU1LCA1LjQzNTQ4IiwgXAotICAgICAgICAgICIwLjMyNjA4OSwgMC4zNzgyOTksIDAuODYwNDYxLCAxLjY2Nzc5LCAyLjQ3NTQsIDQuMzYwNjQsIDUuNDM3NTYiLCBcCi0gICAgICAgICAgIjAuMzMzMjk4LCAwLjM4NDIxMiwgMC44NjAzNTcsIDEuNjY3NTMsIDIuNDc1NDEsIDQuMzYwNDcsIDUuNDM2ODciLCBcCi0gICAgICAgICAgIjAuMzQxNjI0LCAwLjM5MTI3NCwgMC44NjA4ODcsIDEuNjY3NTQsIDIuNDc0ODksIDQuMzYwMDUsIDUuNDM3MTQiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMjI3OTczLCAwLjI2NTg0NSwgMC42MDU5NDUsIDEuMTcxODksIDEuNzM4NzUsIDMuMDU4ODEsIDMuODEyMzQiLCBcCi0gICAgICAgICAgIjAuMjM3MTEzLCAwLjI3NDk3LCAwLjYxNDkzMywgMS4xODExMiwgMS43NDcwNCwgMy4wNjc0NCwgMy44MjE5MSIsIFwKLSAgICAgICAgICAiMC4yNDgxMzEsIDAuMjg2MDAxLCAwLjYyNjE1OSwgMS4xOTI5NCwgMS43NTkxNywgMy4wNzg5MiwgMy44MzMwOSIsIFwKLSAgICAgICAgICAiMC4yNTczNTYsIDAuMjk2NTQ0LCAwLjYzNjY0MywgMS4yMDI4OSwgMS43Njg4NywgMy4wOTAzMywgMy44NDM3OSIsIFwKLSAgICAgICAgICAiMC4yNjk1NDEsIDAuMzA3Mzk1LCAwLjY0NzkyOSwgMS4yMTM4MywgMS43ODAyOCwgMy4xMDA0MSwgMy44NTQ1OSIsIFwKLSAgICAgICAgICAiMC4yODcxMjQsIDAuMzI1MTAzLCAwLjY2NTI3NCwgMS4yMzE2LCAxLjc5NzU2LCAzLjExODEzLCAzLjg3MjMyIiwgXAotICAgICAgICAgICIwLjMwMjcxLCAwLjM0MDQ0MSwgMC42ODA1NzgsIDEuMjQ2OTcsIDEuODE0MTYsIDMuMTM0MjYsIDMuODg4MDUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuNDM3NjQ4LCAwLjUxMTY2OSwgMS4xNzg3NywgMi4yODg2NiwgMy40MDYyNiwgNS45ODYwMiwgNy40Njc3NSIsIFwKLSAgICAgICAgICAiMC40Mzc2NDQsIDAuNTExOTQsIDEuMTc4NTMsIDIuMjg4NDIsIDMuMzk2OTYsIDUuOTg1OTksIDcuNDY4NzgiLCBcCi0gICAgICAgICAgIjAuNDM3NjI1LCAwLjUxMTk1MSwgMS4xNzkxMywgMi4yODkwMywgMy4zOTg1NiwgNS45ODk4NiwgNy40Njc2NyIsIFwKLSAgICAgICAgICAiMC40MzczMzksIDAuNTExNTkxLCAxLjE3ODkyLCAyLjI4ODUxLCAzLjM5ODk5LCA1Ljk4NzA5LCA3LjQ2ODg3IiwgXAotICAgICAgICAgICIwLjQzNzE5NywgMC41MTEzNjgsIDEuMTc4MTIsIDIuMjg4NTQsIDMuMzk4MjcsIDUuOTg4MTEsIDcuNDY4MzUiLCBcCi0gICAgICAgICAgIjAuNDQwMzQzLCAwLjUxMjgyNCwgMS4xNzg5OCwgMi4yODg3MiwgMy4zOTc0OSwgNS45ODU3MSwgNy40Njc1NyIsIFwKLSAgICAgICAgICAiMC40NDUyMjIsIDAuNTE2NDAyLCAxLjE3ODg5LCAyLjI4ODYsIDMuMzk5OTgsIDUuOTg3MTUsIDcuNDY0MDYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzNzYxLCAwLjAwMzc2MSwgMC4wMDM3NiwgMC4wMDM3NTcsIDAuMDAzNzU3LCAwLjAwMzc1MSwgMC4wMDM3NSIsIFwKLSAgICAgICAgICAiMC4wMDM3NTEsIDAuMDAzNzUyLCAwLjAwMzc1MSwgMC4wMDM3NSwgMC4wMDM3NDgsIDAuMDAzNzQyLCAwLjAwMzc0MSIsIFwKLSAgICAgICAgICAiMC4wMDM3NDksIDAuMDAzNzQ4LCAwLjAwMzc0OCwgMC4wMDM3NDcsIDAuMDAzNzQ1LCAwLjAwMzc0LCAwLjAwMzczOSIsIFwKLSAgICAgICAgICAiMC4wMDM3NDcsIDAuMDAzNzQ2LCAwLjAwMzc0OCwgMC4wMDM3NDUsIDAuMDAzNzQ0LCAwLjAwMzc0LCAwLjAwMzczOSIsIFwKLSAgICAgICAgICAiMC4wMDM3NDUsIDAuMDAzNzQ1LCAwLjAwMzc0NiwgMC4wMDM3NDYsIDAuMDAzNzQ0LCAwLjAwMzc0LCAwLjAwMzczOCIsIFwKLSAgICAgICAgICAiMC4wMDM3NDUsIDAuMDAzNzQ1LCAwLjAwMzc0NiwgMC4wMDM3NDUsIDAuMDAzNzQzLCAwLjAwMzczOSwgMC4wMDM3MzciLCBcCi0gICAgICAgICAgIjAuMDAzNzQ0LCAwLjAwMzc0NSwgMC4wMDM3NDYsIDAuMDAzNzQ1LCAwLjAwMzc0MywgMC4wMDM3MzksIDAuMDAzNzM3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwOTcxLCAwLjAwMDk3MiwgMC4wMDA5NzEsIDAuMDAwOTcxLCAwLjAwMDk3LCAwLjAwMDk2OCwgMC4wMDA5NjciLCBcCi0gICAgICAgICAgIjAuMDAwOTYzLCAwLjAwMDk2MywgMC4wMDA5NjQsIDAuMDAwOTYzLCAwLjAwMDk2MywgMC4wMDA5NjIsIDAuMDAwOTYxIiwgXAotICAgICAgICAgICIwLjAwMDk1OCwgMC4wMDA5NTksIDAuMDAwOTYyLCAwLjAwMDk2MiwgMC4wMDA5NjIsIDAuMDAwOTYxLCAwLjAwMDk2IiwgXAotICAgICAgICAgICIwLjAwMDk1NSwgMC4wMDA5NTYsIDAuMDAwOTYsIDAuMDAwOTYxLCAwLjAwMDk2MSwgMC4wMDA5NiwgMC4wMDA5NTkiLCBcCi0gICAgICAgICAgIjAuMDAwOTUyLCAwLjAwMDk1MywgMC4wMDA5NTgsIDAuMDAwOTYsIDAuMDAwOTYsIDAuMDAwOTYsIDAuMDAwOTU5IiwgXAotICAgICAgICAgICIwLjAwMDk0OCwgMC4wMDA5NSwgMC4wMDA5NTYsIDAuMDAwOTU5LCAwLjAwMDk1OSwgMC4wMDA5NTksIDAuMDAwOTU4IiwgXAotICAgICAgICAgICIwLjAwMDk0NSwgMC4wMDA5NDcsIDAuMDAwOTU0LCAwLjAwMDk1OCwgMC4wMDA5NTksIDAuMDAwOTU4LCAwLjAwMDk1OCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkExIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDM1NzEsIDAuMDAzNTcxLCAwLjAwMzU3LCAwLjAwMzU2OSwgMC4wMDM1NjcsIDAuMDAzNTYyLCAwLjAwMzU2MiIsIFwKLSAgICAgICAgICAiMC4wMDM1NjEsIDAuMDAzNTYxLCAwLjAwMzU2LCAwLjAwMzU1OSwgMC4wMDM1NTcsIDAuMDAzNTUzLCAwLjAwMzU1MiIsIFwKLSAgICAgICAgICAiMC4wMDM1NTYsIDAuMDAzNTU3LCAwLjAwMzU1OCwgMC4wMDM1NTcsIDAuMDAzNTU1LCAwLjAwMzU1MSwgMC4wMDM1NDgiLCBcCi0gICAgICAgICAgIjAuMDAzNTU1LCAwLjAwMzU1MiwgMC4wMDM1NTYsIDAuMDAzNTU2LCAwLjAwMzU1NCwgMC4wMDM1NSwgMC4wMDM1NDciLCBcCi0gICAgICAgICAgIjAuMDAzNTU0LCAwLjAwMzU1NSwgMC4wMDM1NTYsIDAuMDAzNTU0LCAwLjAwMzU1MywgMC4wMDM1NDksIDAuMDAzNTQ3IiwgXAotICAgICAgICAgICIwLjAwMzU1NiwgMC4wMDM1NTYsIDAuMDAzNTU2LCAwLjAwMzU1NSwgMC4wMDM1NTMsIDAuMDAzNTUsIDAuMDAzNTQ2IiwgXAotICAgICAgICAgICIwLjAwMzU1OSwgMC4wMDM1NTksIDAuMDAzNTU3LCAwLjAwMzU1NSwgMC4wMDM1NTQsIDAuMDAzNTQ5LCAwLjAwMzU0NiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDc5LCAwLjAwMDc5LCAwLjAwMDc5MSwgMC4wMDA3OTEsIDAuMDAwNzkxLCAwLjAwMDc5LCAwLjAwMDc4OSIsIFwKLSAgICAgICAgICAiMC4wMDA3ODksIDAuMDAwNzkxLCAwLjAwMDc5NSwgMC4wMDA3OTUsIDAuMDAwNzk2LCAwLjAwMDc5NSwgMC4wMDA3OTUiLCBcCi0gICAgICAgICAgIjAuMDAwNzgyLCAwLjAwMDc4NCwgMC4wMDA3OTIsIDAuMDAwNzk1LCAwLjAwMDc5NiwgMC4wMDA3OTYsIDAuMDAwNzk1IiwgXAotICAgICAgICAgICIwLjAwMDc3NSwgMC4wMDA3NzgsIDAuMDAwNzg5LCAwLjAwMDc5MywgMC4wMDA3OTUsIDAuMDAwNzk1LCAwLjAwMDc5NSIsIFwKLSAgICAgICAgICAiMC4wMDA3NjgsIDAuMDAwNzcyLCAwLjAwMDc4NiwgMC4wMDA3OTIsIDAuMDAwNzkzLCAwLjAwMDc5NSwgMC4wMDA3OTQiLCBcCi0gICAgICAgICAgIjAuMDAwNzYsIDAuMDAwNzY0LCAwLjAwMDc4MSwgMC4wMDA3ODksIDAuMDAwNzkyLCAwLjAwMDc5MywgMC4wMDA3OTMiLCBcCi0gICAgICAgICAgIjAuMDAwNzU0LCAwLjAwMDc1OCwgMC4wMDA3NzcsIDAuMDAwNzg2LCAwLjAwMDc5LCAwLjAwMDc5MywgMC4wMDA3OTMiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCMCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAzMDE3LCAwLjAwMzAxNywgMC4wMDMwMTcsIDAuMDAzMDE2LCAwLjAwMzAxNSwgMC4wMDMwMTIsIDAuMDAzMDExIiwgXAotICAgICAgICAgICIwLjAwMzAxNSwgMC4wMDMwMTUsIDAuMDAzMDE2LCAwLjAwMzAxNSwgMC4wMDMwMTUsIDAuMDAzMDEyLCAwLjAwMzAwOSIsIFwKLSAgICAgICAgICAiMC4wMDMwMTEsIDAuMDAzMDEyLCAwLjAwMzAxNSwgMC4wMDMwMTUsIDAuMDAzMDE0LCAwLjAwMzAxMiwgMC4wMDMwMSIsIFwKLSAgICAgICAgICAiMC4wMDMwMDksIDAuMDAzMDEsIDAuMDAzMDEzLCAwLjAwMzAxNCwgMC4wMDMwMTQsIDAuMDAzMDEyLCAwLjAwMzAxMSIsIFwKLSAgICAgICAgICAiMC4wMDMwMDcsIDAuMDAzMDA4LCAwLjAwMzAxMiwgMC4wMDMwMTMsIDAuMDAzMDEzLCAwLjAwMzAxMSwgMC4wMDMwMSIsIFwKLSAgICAgICAgICAiMC4wMDMwMDUsIDAuMDAzMDA2LCAwLjAwMzAxMSwgMC4wMDMwMTIsIDAuMDAzMDEyLCAwLjAwMzAxMSwgMC4wMDMwMSIsIFwKLSAgICAgICAgICAiMC4wMDMwMDQsIDAuMDAzMDA1LCAwLjAwMzAxLCAwLjAwMzAxMiwgMC4wMDMwMTIsIDAuMDAzMDExLCAwLjAwMzAxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwOTcxLCAwLjAwMDk3MiwgMC4wMDA5NzEsIDAuMDAwOTcxLCAwLjAwMDk3LCAwLjAwMDk2OCwgMC4wMDA5NjciLCBcCi0gICAgICAgICAgIjAuMDAwOTYyLCAwLjAwMDk2MywgMC4wMDA5NjQsIDAuMDAwOTYzLCAwLjAwMDk2NCwgMC4wMDA5NjIsIDAuMDAwOTYxIiwgXAotICAgICAgICAgICIwLjAwMDk1OCwgMC4wMDA5NTksIDAuMDAwOTYxLCAwLjAwMDk2MiwgMC4wMDA5NjIsIDAuMDAwOTYxLCAwLjAwMDk2IiwgXAotICAgICAgICAgICIwLjAwMDk1NSwgMC4wMDA5NTYsIDAuMDAwOTYsIDAuMDAwOTYxLCAwLjAwMDk2MSwgMC4wMDA5NiwgMC4wMDA5NTkiLCBcCi0gICAgICAgICAgIjAuMDAwOTUyLCAwLjAwMDk1MywgMC4wMDA5NTgsIDAuMDAwOTYsIDAuMDAwOTYsIDAuMDAwOTYsIDAuMDAwOTU5IiwgXAotICAgICAgICAgICIwLjAwMDk0OCwgMC4wMDA5NSwgMC4wMDA5NTYsIDAuMDAwOTU5LCAwLjAwMDk1OSwgMC4wMDA5NTksIDAuMDAwOTU4IiwgXAotICAgICAgICAgICIwLjAwMDk0NiwgMC4wMDA5NDgsIDAuMDAwOTU1LCAwLjAwMDk1OCwgMC4wMDA5NTksIDAuMDAwOTU4LCAwLjAwMDk1NyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIxIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDI4MjEsIDAuMDAyODIxLCAwLjAwMjgyMSwgMC4wMDI4MiwgMC4wMDI4MTksIDAuMDAyODE3LCAwLjAwMjgxNSIsIFwKLSAgICAgICAgICAiMC4wMDI4MTgsIDAuMDAyODE4LCAwLjAwMjgxOSwgMC4wMDI4MTksIDAuMDAyODE4LCAwLjAwMjgxNiwgMC4wMDI4MTUiLCBcCi0gICAgICAgICAgIjAuMDAyODE1LCAwLjAwMjgxNSwgMC4wMDI4MTcsIDAuMDAyODE4LCAwLjAwMjgxNywgMC4wMDI4MTUsIDAuMDAyODE0IiwgXAotICAgICAgICAgICIwLjAwMjgxMiwgMC4wMDI4MTMsIDAuMDAyODE2LCAwLjAwMjgxNywgMC4wMDI4MTcsIDAuMDAyODE1LCAwLjAwMjgxNCIsIFwKLSAgICAgICAgICAiMC4wMDI4MTEsIDAuMDAyODEyLCAwLjAwMjgxNiwgMC4wMDI4MTcsIDAuMDAyODE2LCAwLjAwMjgxNSwgMC4wMDI4MTQiLCBcCi0gICAgICAgICAgIjAuMDAyODEyLCAwLjAwMjgxMywgMC4wMDI4MTYsIDAuMDAyODE3LCAwLjAwMjgxNywgMC4wMDI4MTUsIDAuMDAyODEzIiwgXAotICAgICAgICAgICIwLjAwMjgxNCwgMC4wMDI4MTUsIDAuMDAyODE3LCAwLjAwMjgxNywgMC4wMDI4MTcsIDAuMDAyODE1LCAwLjAwMjgxMyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDc1NSwgMC4wMDA3NTUsIDAuMDAwNzU2LCAwLjAwMDc1NiwgMC4wMDA3NTUsIDAuMDAwNzU1LCAwLjAwMDc1NCIsIFwKLSAgICAgICAgICAiMC4wMDA3NTQsIDAuMDAwNzU1LCAwLjAwMDc1OSwgMC4wMDA3NjEsIDAuMDAwNzYxLCAwLjAwMDc2LCAwLjAwMDc2IiwgXAotICAgICAgICAgICIwLjAwMDc0NiwgMC4wMDA3NDksIDAuMDAwNzU3LCAwLjAwMDc2LCAwLjAwMDc2MSwgMC4wMDA3NjEsIDAuMDAwNzYiLCBcCi0gICAgICAgICAgIjAuMDAwNzQsIDAuMDAwNzQzLCAwLjAwMDc1NCwgMC4wMDA3NTgsIDAuMDAwNzYsIDAuMDAwNzYsIDAuMDAwNzYiLCBcCi0gICAgICAgICAgIjAuMDAwNzMzLCAwLjAwMDczNywgMC4wMDA3NTEsIDAuMDAwNzU3LCAwLjAwMDc1OCwgMC4wMDA3NiwgMC4wMDA3NiIsIFwKLSAgICAgICAgICAiMC4wMDA3MjUsIDAuMDAwNzI5LCAwLjAwMDc0NiwgMC4wMDA3NTQsIDAuMDAwNzU3LCAwLjAwMDc1OSwgMC4wMDA3NTkiLCBcCi0gICAgICAgICAgIjAuMDAwNzE5LCAwLjAwMDcyMywgMC4wMDA3NDIsIDAuMDAwNzUyLCAwLjAwMDc1NSwgMC4wMDA3NTcsIDAuMDAwNzU4Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQzAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMjEwNCwgMC4wMDIxMDQsIDAuMDAyMTA1LCAwLjAwMjEwNSwgMC4wMDIxMDUsIDAuMDAyMTA1LCAwLjAwMjEwNSIsIFwKLSAgICAgICAgICAiMC4wMDIxMDksIDAuMDAyMTEsIDAuMDAyMTEyLCAwLjAwMjExMywgMC4wMDIxMTQsIDAuMDAyMTEyLCAwLjAwMjExMiIsIFwKLSAgICAgICAgICAiMC4wMDIxMDYsIDAuMDAyMTA3LCAwLjAwMjExMywgMC4wMDIxMTUsIDAuMDAyMTE1LCAwLjAwMjExNiwgMC4wMDIxMTUiLCBcCi0gICAgICAgICAgIjAuMDAyMTAyLCAwLjAwMjEwNSwgMC4wMDIxMTIsIDAuMDAyMTE1LCAwLjAwMjExNiwgMC4wMDIxMTYsIDAuMDAyMTE2IiwgXAotICAgICAgICAgICIwLjAwMjEsIDAuMDAyMTAyLCAwLjAwMjExLCAwLjAwMjExNCwgMC4wMDIxMTUsIDAuMDAyMTE3LCAwLjAwMjExNiIsIFwKLSAgICAgICAgICAiMC4wMDIwOTcsIDAuMDAyMDk5LCAwLjAwMjEwNiwgMC4wMDIxMTMsIDAuMDAyMTE1LCAwLjAwMjExNiwgMC4wMDIxMTciLCBcCi0gICAgICAgICAgIjAuMDAyMDk1LCAwLjAwMjA5NywgMC4wMDIxMDgsIDAuMDAyMTEzLCAwLjAwMjExNSwgMC4wMDIxMTYsIDAuMDAyMTE3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAwOTcsIDAuMDAwOTcsIDAuMDAwOTcsIDAuMDAwOTcsIDAuMDAwOTY5LCAwLjAwMDk2OCwgMC4wMDA5NjYiLCBcCi0gICAgICAgICAgIjAuMDAwOTYxLCAwLjAwMDk2MiwgMC4wMDA5NjMsIDAuMDAwOTYzLCAwLjAwMDk2MywgMC4wMDA5NjIsIDAuMDAwOTYiLCBcCi0gICAgICAgICAgIjAuMDAwOTU3LCAwLjAwMDk1OCwgMC4wMDA5NjEsIDAuMDAwOTYyLCAwLjAwMDk2MSwgMC4wMDA5NiwgMC4wMDA5NTkiLCBcCi0gICAgICAgICAgIjAuMDAwOTUzLCAwLjAwMDk1OCwgMC4wMDA5NiwgMC4wMDA5NjEsIDAuMDAwOTYxLCAwLjAwMDk2LCAwLjAwMDk1OSIsIFwKLSAgICAgICAgICAiMC4wMDA5NTcsIDAuMDAwOTU4LCAwLjAwMDk2LCAwLjAwMDk2MSwgMC4wMDA5NiwgMC4wMDA5NTksIDAuMDAwOTU5IiwgXAotICAgICAgICAgICIwLjAwMDk1OCwgMC4wMDA5NTksIDAuMDAwOTYsIDAuMDAwOTYsIDAuMDAwOTYsIDAuMDAwOTU5LCAwLjAwMDk1OCIsIFwKLSAgICAgICAgICAiMC4wMDA5NjIsIDAuMDAwOTYyLCAwLjAwMDk2MSwgMC4wMDA5NjEsIDAuMDAwOTYsIDAuMDAwOTU5LCAwLjAwMDk1OCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMxIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDE5MTQsIDAuMDAxOTE0LCAwLjAwMTkxNSwgMC4wMDE5MTYsIDAuMDAxOTE1LCAwLjAwMTkxNiwgMC4wMDE5MTYiLCBcCi0gICAgICAgICAgIjAuMDAxOTE4LCAwLjAwMTkxOSwgMC4wMDE5MjIsIDAuMDAxOTI0LCAwLjAwMTkyNSwgMC4wMDE5MjUsIDAuMDAxOTI1IiwgXAotICAgICAgICAgICIwLjAwMTkxNSwgMC4wMDE5MTcsIDAuMDAxOTIzLCAwLjAwMTkyNSwgMC4wMDE5MjYsIDAuMDAxOTI3LCAwLjAwMTkyNiIsIFwKLSAgICAgICAgICAiMC4wMDE5MTMsIDAuMDAxOTE1LCAwLjAwMTkyMiwgMC4wMDE5MjUsIDAuMDAxOTI2LCAwLjAwMTkyNywgMC4wMDE5MjciLCBcCi0gICAgICAgICAgIjAuMDAxOTExLCAwLjAwMTkxMywgMC4wMDE5MjEsIDAuMDAxOTI1LCAwLjAwMTkyNiwgMC4wMDE5MjcsIDAuMDAxOTI3IiwgXAotICAgICAgICAgICIwLjAwMTkxMSwgMC4wMDE5MTMsIDAuMDAxOTIxLCAwLjAwMTkyNCwgMC4wMDE5MjYsIDAuMDAxOTI3LCAwLjAwMTkyNyIsIFwKLSAgICAgICAgICAiMC4wMDE5MTQsIDAuMDAxOTE1LCAwLjAwMTkyMSwgMC4wMDE5MjUsIDAuMDAxOTI2LCAwLjAwMTkyNywgMC4wMDE5MjciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDA4MTMsIDAuMDAwODEzLCAwLjAwMDgxNCwgMC4wMDA4MTQsIDAuMDAwODE0LCAwLjAwMDgxMywgMC4wMDA4MTIiLCBcCi0gICAgICAgICAgIjAuMDAwODExLCAwLjAwMDgxMywgMC4wMDA4MTcsIDAuMDAwODE4LCAwLjAwMDgxOSwgMC4wMDA4MTgsIDAuMDAwODE4IiwgXAotICAgICAgICAgICIwLjAwMDgwNCwgMC4wMDA4MDYsIDAuMDAwODE1LCAwLjAwMDgxOCwgMC4wMDA4MTgsIDAuMDAwODE4LCAwLjAwMDgxOCIsIFwKLSAgICAgICAgICAiMC4wMDA3OTgsIDAuMDAwODAzLCAwLjAwMDgxMywgMC4wMDA4MTcsIDAuMDAwODE4LCAwLjAwMDgxOCwgMC4wMDA4MTgiLCBcCi0gICAgICAgICAgIjAuMDAwNzk3LCAwLjAwMDgsIDAuMDAwODExLCAwLjAwMDgxNiwgMC4wMDA4MTcsIDAuMDAwODE4LCAwLjAwMDgxOCIsIFwKLSAgICAgICAgICAiMC4wMDA3OTUsIDAuMDAwNzk3LCAwLjAwMDgwOCwgMC4wMDA4MTQsIDAuMDAwODE2LCAwLjAwMDgxNywgMC4wMDA4MTciLCBcCi0gICAgICAgICAgIjAuMDAwNzk1LCAwLjAwMDc5NywgMC4wMDA4MDgsIDAuMDAwODEzLCAwLjAwMDgxNSwgMC4wMDA4MTcsIDAuMDAwODE3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLSAqCi0gKiBEZXNpZ24gOiBYT1IzWDEgKgotICogLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChYT1IzWDEpIHsKLSAgYXJlYSA6IDAuMDsKLSAgY2VsbF9sZWFrYWdlX3Bvd2VyIDogMC4zMjY2Njk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDc5OTYzMzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA3OTg5NDE7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNzk5NjMzOwotICB9Ci0gIHBpbihCKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDIyMDU2MzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDIyMDQzNzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDIyMDU2MzsKLSAgfQotICBwaW4oQykgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNDMzMDk7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNDMyMzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDE0MzMwOTsKLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjIxNjc1NzsKLSAgICBmdW5jdGlvbiA6ICIoKEFeQileQykiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE0ODk1NywgMC4xNzQ4MzYsIDAuMzEzMDI0LCAwLjQzMzk3NywgMC41OTUyNjIsIDAuOTE3NTgzLCAxLjExOTExIiwgXAotICAgICAgICAgICIwLjE1ODkxOCwgMC4xODQ4MDEsIDAuMzIyOTkyLCAwLjQ0MzkwNSwgMC42MDUyMzgsIDAuOTI3NTM0LCAxLjEyOTA4IiwgXAotICAgICAgICAgICIwLjE3MTU2NywgMC4xOTc0NTgsIDAuMzM1NjQzLCAwLjQ1NjU2LCAwLjYxNzg5MSwgMC45NDA1NjUsIDEuMTQxNzUiLCBcCi0gICAgICAgICAgIjAuMTg0MDA3LCAwLjIwOTg5MywgMC4zNDgwOTksIDAuNDY5MDI5LCAwLjYzMDIxLCAwLjk1MjcxMywgMS4xNTQ1NCIsIFwKLSAgICAgICAgICAiMC4xOTYzNzcsIDAuMjIyMjcxLCAwLjM2MDQ5OSwgMC40ODEzOTIsIDAuNjQyNzEyLCAwLjk2NTM1MSwgMS4xNjY2NSIsIFwKLSAgICAgICAgICAiMC4yMTUxNTIsIDAuMjQxMDQ4LCAwLjM3OTI3MSwgMC41MDAyMDUsIDAuNjYxMzU4LCAwLjk4Mzg1NiwgMS4xODU3NiIsIFwKLSAgICAgICAgICAiMC4yMzAzOTEsIDAuMjU2MzA5LCAwLjM5NDU2NSwgMC41MTU0NjIsIDAuNjc2NjUyLCAwLjk5OTM5OSwgMS4yMDA4MiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDI0NDgsIDAuMTUwMDM2LCAwLjQyNjc1MSwgMC42NzQ4NzgsIDEuMDA1NjUsIDEuNjc0NiwgMi4wOTE1NyIsIFwKLSAgICAgICAgICAiMC4xMDI0OTMsIDAuMTUwMDM5LCAwLjQyNjc0NywgMC42NzQ4NjksIDEuMDA1NjMsIDEuNjc0NTQsIDIuMDg3NjMiLCBcCi0gICAgICAgICAgIjAuMTAyNDcsIDAuMTUwMDUxLCAwLjQyNjQxMiwgMC42NzUwOTYsIDEuMDA2MjksIDEuNjcxMzcsIDIuMDkwNjMiLCBcCi0gICAgICAgICAgIjAuMTAyNTQzLCAwLjE1MDA2NiwgMC40MjY3NjMsIDAuNjc1MjIxLCAxLjAwNzc3LCAxLjY3MTA1LCAyLjA4ODY2IiwgXAotICAgICAgICAgICIwLjEwMjU4NSwgMC4xNDk5NDksIDAuNDI2Nzc5LCAwLjY3NTAwOCwgMS4wMDc3OSwgMS42NzEzNCwgMi4wOTAyMyIsIFwKLSAgICAgICAgICAiMC4xMDI3MTksIDAuMTUwMTg4LCAwLjQyNjc4OSwgMC42NzUyMjgsIDEuMDA3NjMsIDEuNjc0NTksIDIuMDg4NjMiLCBcCi0gICAgICAgICAgIjAuMTAzMTEzLCAwLjE1MDQ1MiwgMC40MjY4NjUsIDAuNjc1MDE3LCAxLjAwNzE0LCAxLjY3MzQ3LCAyLjA4NzQ0Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE0NzYzMiwgMC4xNzg4MjYsIDAuMzQ5NTA2LCAwLjQ5OTUyNSwgMC42OTk1NjMsIDEuMDk5ODEsIDEuMzUwMzciLCBcCi0gICAgICAgICAgIjAuMTU3MjgsIDAuMTg4NDc4LCAwLjM1OTE1OSwgMC41MDkxOCwgMC43MDkyMiwgMS4xMDk0NywgMS4zNjAwMyIsIFwKLSAgICAgICAgICAiMC4xNjkzNjQsIDAuMjAwNTUsIDAuMzcxMjQxLCAwLjUyMTI4MywgMC43MjEzMjUsIDEuMTIxNjEsIDEuMzcxOTUiLCBcCi0gICAgICAgICAgIjAuMTgxMDQ2LCAwLjIxMjI0MSwgMC4zODI5NDIsIDAuNTMyOTk2LCAwLjczMzAzNCwgMS4xMzMxNSwgMS4zODM3MyIsIFwKLSAgICAgICAgICAiMC4xOTE5OCwgMC4yMjMxODUsIDAuMzkzODk3LCAwLjU0MzkyOSwgMC43NDQwNDcsIDEuMTQ0MjEsIDEuMzk0NDkiLCBcCi0gICAgICAgICAgIjAuMjA4MjY4LCAwLjIzOTQ3OSwgMC40MTAxOTMsIDAuNTYwMjQ0LCAwLjc2MDMwNiwgMS4xNjA1NiwgMS40MTA1OSIsIFwKLSAgICAgICAgICAiMC4yMjEyMTYsIDAuMjUyNDYzLCAwLjQyMzE5OSwgMC41NzMyNDIsIDAuNzczMzEzLCAxLjE3MzU0LCAxLjQyMzk0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExODMwMSwgMC4xNzYxNDYsIDAuNTEyODI3LCAwLjgxMzY0NSwgMS4yMTYwNiwgMi4wMjAzNiwgMi41MTkxMSIsIFwKLSAgICAgICAgICAiMC4xMTgzMiwgMC4xNzYxNTUsIDAuNTEyODUyLCAwLjgxMzY2OCwgMS4yMTYwNSwgMi4wMjA3OSwgMi41MTkxOSIsIFwKLSAgICAgICAgICAiMC4xMTgyOTYsIDAuMTc2MTYzLCAwLjUxMjcwOSwgMC44MTM3MTUsIDEuMjE2MDYsIDIuMDE5MTQsIDIuNTIzODciLCBcCi0gICAgICAgICAgIjAuMTE4Mjc3LCAwLjE3NjE4MSwgMC41MTI2MzcsIDAuODEzNjY5LCAxLjIxNjA3LCAyLjAyMTgxLCAyLjUxODYxIiwgXAotICAgICAgICAgICIwLjExODM0NSwgMC4xNzYyMjEsIDAuNTEzMDQ1LCAwLjgxMzc0NiwgMS4yMTY0MSwgMi4wMTY5NywgMi41MjE0NyIsIFwKLSAgICAgICAgICAiMC4xMTg2NzQsIDAuMTc2NDIxLCAwLjUxMjk2NSwgMC44MTM2OSwgMS4yMTYwNywgMi4wMjA5MiwgMi41MTg2NCIsIFwKLSAgICAgICAgICAiMC4xMTkxNjIsIDAuMTc2NzU1LCAwLjUxMjg0NiwgMC44MTM5ODIsIDEuMjE2MDcsIDIuMDIwNjEsIDIuNTE4NzciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTgxMzY2LCAwLjIwNzI0NCwgMC4zNDUzODUsIDAuNDY2MzM2LCAwLjYyNzYxMiwgMC45NTAyMjEsIDEuMTUxNTYiLCBcCi0gICAgICAgICAgIjAuMTkxMzM5LCAwLjIxNzIyNCwgMC4zNTUzNTQsIDAuNDc2MjY4LCAwLjYzNzU3OCwgMC45NjAxNjksIDEuMTYxNTYiLCBcCi0gICAgICAgICAgIjAuMjAzODc1LCAwLjIyOTc2MSwgMC4zNjc4OTEsIDAuNDg4ODA0LCAwLjY1MDExNiwgMC45NzI3MTEsIDEuMTc0MDciLCBcCi0gICAgICAgICAgIjAuMjE1MzMsIDAuMjQxMjA3LCAwLjM3OTM0NSwgMC41MDAyNjksIDAuNjYxNTc5LCAwLjk4NDIwNCwgMS4xODU0OCIsIFwKLSAgICAgICAgICAiMC4yMjU3OCwgMC4yNTE2NiwgMC4zODk4MDEsIDAuNTEwNzM2LCAwLjY3MjAzNCwgMC45OTQ2NSwgMS4xOTU2OCIsIFwKLSAgICAgICAgICAiMC4yNDAxMjMsIDAuMjY1OTkxLCAwLjQwNDE0MSwgMC41MjUwNywgMC42ODYzNzgsIDEuMDA5LCAxLjIxMDAzIiwgXAotICAgICAgICAgICIwLjI1MTU2NywgMC4yNzczOTYsIDAuNDE1NTM2LCAwLjUzNjQzNCwgMC42OTc3NjEsIDEuMDIwMzQsIDEuMjIxNzYiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTAyNTg5LCAwLjE1MDA1MywgMC40MjYzMjcsIDAuNjc1MjM2LCAxLjAwNTc2LCAxLjY3MTQyLCAyLjA5MDM2IiwgXAotICAgICAgICAgICIwLjEwMjU5NCwgMC4xNTAwMzgsIDAuNDI2MzI0LCAwLjY3Mzk2NCwgMS4wMDU3OCwgMS42NzE0NywgMi4wOTAzOCIsIFwKLSAgICAgICAgICAiMC4xMDI2LCAwLjE1MDA0MiwgMC40MjYzMjYsIDAuNjczOTMxLCAxLjAwNTc3LCAxLjY3MjM4LCAyLjA5MDM0IiwgXAotICAgICAgICAgICIwLjEwMjU5MywgMC4xNTAwNTYsIDAuNDI2MzMsIDAuNjc1MTY0LCAxLjAwNTcyLCAxLjY3MTQyLCAyLjA5MDQ2IiwgXAotICAgICAgICAgICIwLjEwMjU5LCAwLjE1MDA1NCwgMC40MjYzMzIsIDAuNjc1MTg2LCAxLjAwNTc0LCAxLjY3MTM5LCAyLjA5MTE0IiwgXAotICAgICAgICAgICIwLjEwMjU5MSwgMC4xNTAwNTQsIDAuNDI2MzM4LCAwLjY3NTE2LCAxLjAwNTcyLCAxLjY3MTM3LCAyLjA5MTE0IiwgXAotICAgICAgICAgICIwLjEwMjYxMSwgMC4xNTAwNDksIDAuNDI2MzE5LCAwLjY3NDk5MiwgMS4wMDU3OCwgMS42NzE0MywgMi4wODg2NiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xOTgwMzgsIDAuMjI5Njg4LCAwLjQwMDY5NywgMC41NTA3MjksIDAuNzUwODI2LCAxLjE1MDk4LCAxLjQwMTQzIiwgXAotICAgICAgICAgICIwLjIwODA5NSwgMC4yMzk3MzIsIDAuNDEwNzUsIDAuNTYwNzgxLCAwLjc2MDg4NiwgMS4xNjEwNSwgMS40MTE0NSIsIFwKLSAgICAgICAgICAiMC4yMjA5NzEsIDAuMjUyNjA3LCAwLjQyMzYyNiwgMC41NzM2NTcsIDAuNzczNzYzLCAxLjE3MzkzLCAxLjQyNDMyIiwgXAotICAgICAgICAgICIwLjIzMzc5NSwgMC4yNjUzOTIsIDAuNDM2MzkzLCAwLjU4NjQzMSwgMC43ODY1MjQsIDEuMTg2NjgsIDEuNDM3MTEiLCBcCi0gICAgICAgICAgIjAuMjQ1NzIsIDAuMjc3MzQ5LCAwLjQ0ODM5MiwgMC41OTg0MjcsIDAuNzk4NTI4LCAxLjE5ODY4LCAxLjQ0OTEiLCBcCi0gICAgICAgICAgIjAuMjYyNzgxLCAwLjI5NDQwOCwgMC40NjU0MzgsIDAuNjE1NDc4LCAwLjgxNTU4MywgMS4yMTU3NiwgMS40NjYxMiIsIFwKLSAgICAgICAgICAiMC4yNzY0MzIsIDAuMzA4MDQyLCAwLjQ3OTA1MiwgMC42MjkwOSwgMC44MjkxNywgMS4yMjkzLCAxLjQ4MDExIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEyMTAwMywgMC4xNzg1MDQsIDAuNTEzMzksIDAuODE0MjY5LCAxLjIxNjY2LCAyLjAxNjYzLCAyLjUxOTYiLCBcCi0gICAgICAgICAgIjAuMTIxMDA2LCAwLjE3ODQ2OSwgMC41MTMzMzYsIDAuODE0MjI3LCAxLjIxNjY0LCAyLjAxOSwgMi41MjIxIiwgXAotICAgICAgICAgICIwLjEyMTAwNiwgMC4xNzg0NjksIDAuNTEzNjI2LCAwLjgxNDIyMSwgMS4yMTY2NCwgMi4wMTU2OSwgMi41MjIxIiwgXAotICAgICAgICAgICIwLjEyMDk4OSwgMC4xNzg0NzIsIDAuNTEzMzUxLCAwLjgxNDI2NSwgMS4yMTY2LCAyLjAyMTA3LCAyLjUyNTUzIiwgXAotICAgICAgICAgICIwLjEyMTAwMywgMC4xNzg0NjcsIDAuNTEzNjI4LCAwLjgxNDI1LCAxLjIxNjY0LCAyLjAyMjAxLCAyLjUyMTQ1IiwgXAotICAgICAgICAgICIwLjEyMTAxNSwgMC4xNzg0MjksIDAuNTEzNzg1LCAwLjgxMzAwOSwgMS4yMTY2NCwgMi4wMTYzMiwgMi41MjIiLCBcCi0gICAgICAgICAgIjAuMTIwOTgzLCAwLjE3ODQ5NCwgMC41MTMzODcsIDAuODEyNzkxLCAxLjIxNjUzLCAyLjAyMTk3LCAyLjUxODEzIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEzMTE5MywgMC4xNTY4NSwgMC4yOTQ3ODMsIDAuNDE1NjgsIDAuNTc2OTU4LCAwLjg5OTQyNCwgMS4xMDA5OSIsIFwKLSAgICAgICAgICAiMC4xNDA1NDYsIDAuMTY2MjA3LCAwLjMwNDE1OSwgMC40MjUwNDYsIDAuNTg2MjUyLCAwLjkwODcwNCwgMS4xMTA3NCIsIFwKLSAgICAgICAgICAiMC4xNTE3OTMsIDAuMTc3NTEyLCAwLjMxNTQ1MiwgMC40MzY0MDIsIDAuNTk3NjQ1LCAwLjkyMDEyNCwgMS4xMjIwMSIsIFwKLSAgICAgICAgICAiMC4xNjI4ODUsIDAuMTg4NTQ5LCAwLjMyNjUxOSwgMC40NDc0MDYsIDAuNjA4NjE4LCAwLjkzMTA2NSwgMS4xMzI5OSIsIFwKLSAgICAgICAgICAiMC4xNzQwNzMsIDAuMTk5NzM0LCAwLjMzNzcwMywgMC40NTg1OTIsIDAuNjE5Nzg3LCAwLjk0MjI2NSwgMS4xNDQwNCIsIFwKLSAgICAgICAgICAiMC4xOTExMDksIDAuMjE2Nzk4LCAwLjM1NDkzNiwgMC40NzU4MzIsIDAuNjM3MTk3LCAwLjk1OTUwOSwgMS4xNjExOCIsIFwKLSAgICAgICAgICAiMC4yMDUxMywgMC4yMzExMTQsIDAuMzY5MzE5LCAwLjQ5MDIsIDAuNjUxNDA5LCAwLjk3NDEwNSwgMS4xNzU0OCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDIyNjIsIDAuMTQ5ODQ4LCAwLjQyNjI4NSwgMC42NzQyMzQsIDEuMDA1OTYsIDEuNjcxMzYsIDIuMDkwNzMiLCBcCi0gICAgICAgICAgIjAuMTAyMjksIDAuMTQ5ODUyLCAwLjQyNjI4OCwgMC42NzQyMTQsIDEuMDA3NjUsIDEuNjc0NTcsIDIuMDkwNDgiLCBcCi0gICAgICAgICAgIjAuMTAyMjg4LCAwLjE0OTg0OCwgMC40MjYyODcsIDAuNjc0OTAzLCAxLjAwNTY4LCAxLjY3MTM2LCAyLjA5MDY1IiwgXAotICAgICAgICAgICIwLjEwMjI4MywgMC4xNDk4MDgsIDAuNDI2Mjc4LCAwLjY3NDk5MiwgMS4wMDc2NCwgMS42NzQ1NCwgMi4wOTAyOCIsIFwKLSAgICAgICAgICAiMC4xMDIzNDMsIDAuMTQ5ODUyLCAwLjQyNjMzNywgMC42NzQ2MDksIDEuMDA3NzcsIDEuNjczNjksIDIuMDkwOTQiLCBcCi0gICAgICAgICAgIjAuMTAyNjAxLCAwLjE1MDEwMiwgMC40MjYzNjIsIDAuNjc0MTM0LCAxLjAwNTY5LCAxLjY3NDI4LCAyLjA5MTE0IiwgXAotICAgICAgICAgICIwLjEwMzI1MiwgMC4xNTA0MzksIDAuNDI2ODYzLCAwLjY3NDgzOCwgMS4wMDYzMywgMS42NzE0MSwgMi4wOTAwNyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNDU5NzUsIDAuMTc3NjE1LCAwLjM0ODYwNiwgMC40OTg2NTYsIDAuNjk4NzIzLCAxLjA5ODg2LCAxLjM0OTc1IiwgXAotICAgICAgICAgICIwLjE1NTIzMSwgMC4xODY4NTIsIDAuMzU3ODQ2LCAwLjUwNzkyNCwgMC43MDc5NjEsIDEuMTA4MSwgMS4zNTg5NiIsIFwKLSAgICAgICAgICAiMC4xNjYzNDgsIDAuMTk3OTM4LCAwLjM2ODk0MywgMC41MTg5ODUsIDAuNzE5MDU4LCAxLjExOTE4LCAxLjM3MDAxIiwgXAotICAgICAgICAgICIwLjE3NzIzMywgMC4yMDg4OTMsIDAuMzc5ODkxLCAwLjUyOTkyNSwgMC43MzAwMzQsIDEuMTMwMjEsIDEuMzgwNTQiLCBcCi0gICAgICAgICAgIjAuMTg3ODksIDAuMjE5NTA3LCAwLjM5MDUzOSwgMC41NDA1ODYsIDAuNzQwNzA0LCAxLjE0MTA4LCAxLjM5MTA1IiwgXAotICAgICAgICAgICIwLjIwNDA3MywgMC4yMzU2OTIsIDAuNDA2NzE5LCAwLjU1Njc2NCwgMC43NTY4NSwgMS4xNTY5OCwgMS40MDcwNSIsIFwKLSAgICAgICAgICAiMC4yMTY4MDYsIDAuMjQ4NTI2LCAwLjQxOTYxNCwgMC41Njk2NTMsIDAuNzY5NzI4LCAxLjE3MDMzLCAxLjQxOTkzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEyMTE2OCwgMC4xNzg1NjgsIDAuNTEzMzcsIDAuODE0Mzk5LCAxLjIxNjU5LCAyLjAxNjU2LCAyLjUxODk0IiwgXAotICAgICAgICAgICIwLjEyMTE1NSwgMC4xNzg1ODMsIDAuNTEzMzg2LCAwLjgxNDU1NCwgMS4yMTY1OCwgMi4wMTY1LCAyLjUyMDIiLCBcCi0gICAgICAgICAgIjAuMTIxMjA3LCAwLjE3ODYwNSwgMC41MTM0MiwgMC44MTQzMTYsIDEuMjE2NTUsIDIuMDE2NjcsIDIuNTE4NzciLCBcCi0gICAgICAgICAgIjAuMTIxMjA3LCAwLjE3ODU2LCAwLjUxMzMzMywgMC44MTI5ODcsIDEuMjE2NjYsIDIuMDE3NzEsIDIuNTIxOSIsIFwKLSAgICAgICAgICAiMC4xMjExNDUsIDAuMTc4NTU1LCAwLjUxMzM0MywgMC44MTI5ODYsIDEuMjE2NjcsIDIuMDIwNTgsIDIuNTIwNSIsIFwKLSAgICAgICAgICAiMC4xMjE0NjEsIDAuMTc4NzkyLCAwLjUxMzM2NiwgMC44MTI2NCwgMS4yMTY1MiwgMi4wMjIwNiwgMi41MTg1MiIsIFwKLSAgICAgICAgICAiMC4xMjIwNDgsIDAuMTc5MTMsIDAuNTEzMjg0LCAwLjgxMzk3NiwgMS4yMTY0MiwgMi4wMjE2NCwgMi41MjQzOSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMzc3NTIsIDAuMTYzNTgzLCAwLjMwMTcxMywgMC40MjI2MzUsIDAuNTgzOTM1LCAwLjkwNjUxMywgMS4xMDc4OSIsIFwKLSAgICAgICAgICAiMC4xNDc1NjQsIDAuMTczNDM4LCAwLjMxMTU2MiwgMC40MzI0NzIsIDAuNTkzNzk1LCAwLjkxNjQsIDEuMTE3NzUiLCBcCi0gICAgICAgICAgIjAuMTU5MTUsIDAuMTg1MDI5LCAwLjMyMzE1NCwgMC40NDQwNzUsIDAuNjA1MzksIDAuOTI3OTk5LCAxLjEyOTM0IiwgXAotICAgICAgICAgICIwLjE2OTU5MywgMC4xOTU0NTgsIDAuMzMzNjAxLCAwLjQ1NDUxNCwgMC42MTU4NDYsIDAuOTM4NDkyLCAxLjEzOTciLCBcCi0gICAgICAgICAgIjAuMTc4MDEsIDAuMjAzOTAyLCAwLjM0MjAyOSwgMC40NjI5NzMsIDAuNjI0MjY5LCAwLjk0Njg5MSwgMS4xNDgxOCIsIFwKLSAgICAgICAgICAiMC4xODkxMzUsIDAuMjE1MDIxLCAwLjM1MzEyNywgMC40NzQwNTQsIDAuNjM1MzczLCAwLjk1Nzk5NywgMS4xNTkyNyIsIFwKLSAgICAgICAgICAiMC4xOTczMDYsIDAuMjIzMTU2LCAwLjM2MTMyOSwgMC40ODIxOTcsIDAuNjQzNTU0LCAwLjk2NjI4NCwgMS4xNjczOSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDI2MzcsIDAuMTUwMDU5LCAwLjQyNjMyMywgMC42NzUxNTEsIDEuMDA1NzYsIDEuNjcxNDIsIDIuMDkwMjkiLCBcCi0gICAgICAgICAgIjAuMTAyNjE4LCAwLjE1MDAzMiwgMC40MjYzMzYsIDAuNjczODM1LCAxLjAwNzU1LCAxLjY3MTQ0LCAyLjA5MDMiLCBcCi0gICAgICAgICAgIjAuMTAyNiwgMC4xNTAwNTIsIDAuNDI2MzM0LCAwLjY3NDAzNywgMS4wMDU3MSwgMS42NzE0LCAyLjA5MDIzIiwgXAotICAgICAgICAgICIwLjEwMjU4MiwgMC4xNTAwNTUsIDAuNDI2MzY2LCAwLjY3NTA0NSwgMS4wMDU2NywgMS42NzEzNywgMi4wOTA1MSIsIFwKLSAgICAgICAgICAiMC4xMDI1NTYsIDAuMTUwMDI0LCAwLjQyNjMxOCwgMC42NzUxOTYsIDEuMDA3NzQsIDEuNjcxMzYsIDIuMDkwMjUiLCBcCi0gICAgICAgICAgIjAuMTAyNTQ3LCAwLjE1MDA1OCwgMC40MjYzMjUsIDAuNjc1MDcsIDEuMDA3NTcsIDEuNjcxMzYsIDIuMDkwMjciLCBcCi0gICAgICAgICAgIjAuMTAyNDA5LCAwLjE0OTg3OSwgMC40MjY2MjYsIDAuNjc0MjA2LCAxLjAwNTc4LCAxLjY3MzM4LCAyLjA5MTIiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTQ2MTIzLCAwLjE3NzU2OCwgMC4zNDg0NDMsIDAuNDk4NTAyLCAwLjY5ODU0MSwgMS4wOTg2NywgMS4zNDk0MSIsIFwKLSAgICAgICAgICAiMC4xNTY0ODMsIDAuMTg3OTg3LCAwLjM1ODg2OCwgMC41MDg4OTUsIDAuNzA4OTgyLCAxLjEwOTEzLCAxLjM1OTk3IiwgXAotICAgICAgICAgICIwLjE2ODg1NywgMC4yMDAzNTIsIDAuMzcxMjM4LCAwLjUyMTI4MiwgMC43MjEzNiwgMS4xMjE0NSwgMS4zNzIzOCIsIFwKLSAgICAgICAgICAiMC4xNzk5MTEsIDAuMjExMzg1LCAwLjM4MjI1OCwgMC41MzIzMDIsIDAuNzMyMzYyLCAxLjEzMjQ3LCAxLjM4MzE5IiwgXAotICAgICAgICAgICIwLjE4OTAxNiwgMC4yMjA0ODcsIDAuMzkxMzYxLCAwLjU0MTQwMiwgMC43NDE0NjcsIDEuMTQxNTgsIDEuMzkyMjgiLCBcCi0gICAgICAgICAgIjAuMjAxMzQ3LCAwLjIzMjgwNSwgMC40MDM2NjYsIDAuNTUzNzExLCAwLjc1Mzc3NSwgMS4xNTM4OSwgMS40MDQ1NyIsIFwKLSAgICAgICAgICAiMC4yMTA2MzcsIDAuMjQyMTI0LCAwLjQxMzAwMiwgMC41NjMwNDgsIDAuNzYzMTIzLCAxLjE2MzI0LCAxLjQxMzU5Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEyMDQ3NywgMC4xNzc5MjksIDAuNTEzMTYyLCAwLjgxNDM4MywgMS4yMTY1MiwgMi4wMTkyLCAyLjUyMTcxIiwgXAotICAgICAgICAgICIwLjEyMDQ1OCwgMC4xNzc4NDIsIDAuNTEzMDE0LCAwLjgxNDEwNCwgMS4yMTY1MiwgMi4wMjA2MiwgMi41MTc4OSIsIFwKLSAgICAgICAgICAiMC4xMjA0MTksIDAuMTc3ODYxLCAwLjUxMjk5LCAwLjgxMzAwMSwgMS4yMTY1MSwgMi4wMjIwMywgMi41MjA2IiwgXAotICAgICAgICAgICIwLjEyMDM5NywgMC4xNzc5MDcsIDAuNTEzMDA5LCAwLjgxMjc2NSwgMS4yMTY0LCAyLjAyMjAxLCAyLjUxODE3IiwgXAotICAgICAgICAgICIwLjEyMDM3MywgMC4xNzc4NjMsIDAuNTEyOTU2LCAwLjgxMjcyOSwgMS4yMTY0MSwgMi4wMjIwMiwgMi41MTgyMSIsIFwKLSAgICAgICAgICAiMC4xMjA0MTQsIDAuMTc3OTI2LCAwLjUxMjk0MSwgMC44MTI3NjMsIDEuMjE2MzksIDIuMDIxOTgsIDIuNTE4MyIsIFwKLSAgICAgICAgICAiMC4xMjAyMzgsIDAuMTc3NzA4LCAwLjUxMzUzMywgMC44MTQxMTUsIDEuMjE2NCwgMi4wMjIwMiwgMi41MTk5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4OTU4LCAwLjExNTMxNSwgMC4yNTMzMjksIDAuMzc0MjQsIDAuNTM1NDg2LCAwLjg1ODA0NywgMS4wNTk0IiwgXAotICAgICAgICAgICIwLjA5ODgwOSwgMC4xMjQ1NTMsIDAuMjYyNTYyLCAwLjM4MzQ5MiwgMC41NDQ3MjYsIDAuODY3Mjc2LCAxLjA2ODg2IiwgXAotICAgICAgICAgICIwLjExMDUxNiwgMC4xMzYyMzQsIDAuMjc0MjMyLCAwLjM5NTExNSwgMC41NTY0MDcsIDAuODc4OTkyLCAxLjA4MDQiLCBcCi0gICAgICAgICAgIjAuMTIxNzA3LCAwLjE0NzM5NCwgMC4yODUzNzMsIDAuNDA2Mjc5LCAwLjU2NzU3OCwgMC44OTAzODIsIDEuMDkxNDciLCBcCi0gICAgICAgICAgIjAuMTMxNTg4LCAwLjE1NzMwNCwgMC4yOTUyOTEsIDAuNDE2MTg0LCAwLjU3NzQ3NiwgMC45MDAwNzMsIDEuMTAxNCIsIFwKLSAgICAgICAgICAiMC4xNDU0ODgsIDAuMTcxMjA2LCAwLjMwOTMwOCwgMC40MzAxOTMsIDAuNTkxNTAyLCAwLjkxNDE0OCwgMS4xMTUzOSIsIFwKLSAgICAgICAgICAiMC4xNTYyNzgsIDAuMTgyMDcsIDAuMzIwMjExLCAwLjQ0MTE0MSwgMC42MDIyODcsIDAuOTI1MDAyLCAxLjEyNjU0Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwMTI0OCwgMC4xNDkxMjUsIDAuNDI1OTQxLCAwLjY3NTEzNSwgMS4wMDc5MywgMS42NzE1NCwgMi4wOTAzOCIsIFwKLSAgICAgICAgICAiMC4xMDEwNDUsIDAuMTQ4OTgsIDAuNDI1OTgxLCAwLjY3NTEzNSwgMS4wMDc5LCAxLjY3MTUyLCAyLjA4OTEiLCBcCi0gICAgICAgICAgIjAuMTAwNjUzLCAwLjE0ODY5MSwgMC40MjU4OTEsIDAuNjc0MTM0LCAxLjAwNTc0LCAxLjY3MTQ1LCAyLjA5MDMxIiwgXAotICAgICAgICAgICIwLjEwMDQ0LCAwLjE0ODQ4LCAwLjQyNjIyOCwgMC42NzQwMzMsIDEuMDA1NzMsIDEuNjcyMjYsIDIuMDkwMjciLCBcCi0gICAgICAgICAgIjAuMTAwNTg1LCAwLjE0ODU1NiwgMC40MjU5MzcsIDAuNjc0MDQ2LCAxLjAwNzY4LCAxLjY3MTQ0LCAyLjA5MDE1IiwgXAotICAgICAgICAgICIwLjEwMTE3LCAwLjE0ODk0MywgMC40MjU5MDksIDAuNjc0NzgsIDEuMDA1NzYsIDEuNjcxMzcsIDIuMDkwMjgiLCBcCi0gICAgICAgICAgIjAuMTAyMDAyLCAwLjE0OTQxNiwgMC40MjY2NzIsIDAuNjc1MjM3LCAxLjAwNzY0LCAxLjY3MTQyLCAyLjA4NzUzIik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwMzMxMSwgMC4xMzQ2OTEsIDAuMzA1NDM4LCAwLjQ1NTQ0NCwgMC42NTU1NzUsIDEuMDU1NTYsIDEuMzA2MjMiLCBcCi0gICAgICAgICAgIjAuMTEyMTcyLCAwLjE0MzU0OSwgMC4zMTQyOTYsIDAuNDY0MzIsIDAuNjY0MzYyLCAxLjA2NTAyLCAxLjMxNTM0IiwgXAotICAgICAgICAgICIwLjEyMzM1LCAwLjE1NDczNCwgMC4zMjU1LCAwLjQ3NTU4LCAwLjY3NTU2LCAxLjA3NTY1LCAxLjMyNjQ4IiwgXAotICAgICAgICAgICIwLjEzMzczMiwgMC4xNjUwNjgsIDAuMzM1ODU0LCAwLjQ4NTg5NSwgMC42ODU5NSwgMS4wODYwNywgMS4zMzYxNyIsIFwKLSAgICAgICAgICAiMC4xNDI3MTgsIDAuMTc0MTEsIDAuMzQ0OTU0LCAwLjQ5NDk4NiwgMC42OTQ5OTUsIDEuMDk1MSwgMS4zNDU4NCIsIFwKLSAgICAgICAgICAiMC4xNTUyODgsIDAuMTg2NzY5LCAwLjM1NzY0NywgMC41MDc2NywgMC43MDc3MzYsIDEuMTA3ODUsIDEuMzU4NTUiLCBcCi0gICAgICAgICAgIjAuMTY0Njc5LCAwLjE5NjI4OSwgMC4zNjcyNTgsIDAuNTE3MzgyLCAwLjcxNzM3MywgMS4xMTc1NiwgMS4zNjgwMiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTk0NTQsIDAuMTc3MjcxLCAwLjUxMzYyOCwgMC44MTMwMDgsIDEuMjEzNTYsIDIuMDIxOTUsIDIuNTE4NTgiLCBcCi0gICAgICAgICAgIjAuMTE5MzE0LCAwLjE3NzE2NSwgMC41MTI4OTYsIDAuODEzODk1LCAxLjIxNjQsIDIuMDE5NjYsIDIuNTE5ODUiLCBcCi0gICAgICAgICAgIjAuMTE4OTg0LCAwLjE3Njk2LCAwLjUxMjU0MywgMC44MTM0NzMsIDEuMjE2MzMsIDIuMDIxOTMsIDIuNTE5MjgiLCBcCi0gICAgICAgICAgIjAuMTE4ODQ3LCAwLjE3NjgzMSwgMC41MTI5OTMsIDAuODEzMTIxLCAxLjIxNjM0LCAyLjAyMjA2LCAyLjUyMDIyIiwgXAotICAgICAgICAgICIwLjExODk4NywgMC4xNzY5NzYsIDAuNTEzMDI4LCAwLjgxNDExNCwgMS4yMTYzNCwgMi4wMjE5OCwgMi41MTg2NiIsIFwKLSAgICAgICAgICAiMC4xMTk0OTksIDAuMTc3MzMyLCAwLjUxMzAwMSwgMC44MTI3NTIsIDEuMjE2MzksIDIuMDIyMDMsIDIuNTE4NTEiLCBcCi0gICAgICAgICAgIjAuMTE5ODc2LCAwLjE3Nzc4NiwgMC41MTI5OTMsIDAuODEyNTE0LCAxLjIxNjcsIDIuMDE3NTEsIDIuNTE4OTUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDk3MTI4LCAwLjEyMjczNCwgMC4yNjA2MDYsIDAuMzgxNDg5LCAwLjU0MjY3OSwgMC44NjUwMjYsIDEuMDY2ODIiLCBcCi0gICAgICAgICAgIjAuMTA3MDI5LCAwLjEzMjY2MiwgMC4yNzA1MjUsIDAuMzkxNDEyLCAwLjU1MjcxLCAwLjg3NTIzMywgMS4wNzY3OSIsIFwKLSAgICAgICAgICAiMC4xMTgwNTEsIDAuMTQzNjIsIDAuMjgxNDgxLCAwLjQwMjM2OSwgMC41NjM2NzMsIDAuODg2NTcxLCAxLjA4NzY2IiwgXAotICAgICAgICAgICIwLjEyNjE2MywgMC4xNTE3NTIsIDAuMjg5NjEzLCAwLjQxMDUwNCwgMC41NzE3MDQsIDAuODk0NzI5LCAxLjA5NTY3IiwgXAotICAgICAgICAgICIwLjEzMjU0LCAwLjE1ODE0NSwgMC4yOTU5OCwgMC40MTY4NzcsIDAuNTc4MDksIDAuOTAxMDg0LCAxLjEwMjA2IiwgXAotICAgICAgICAgICIwLjE0MTQ4NywgMC4xNjY4NywgMC4zMDQ3MzgsIDAuNDI1NjkzLCAwLjU4NjkzOSwgMC45MDkzNjQsIDEuMTExNjIiLCBcCi0gICAgICAgICAgIjAuMTQ3ODEsIDAuMTczNDQxLCAwLjMxMTEzOSwgMC40MzIwMjYsIDAuNTkzMTkyLCAwLjkxNTc0NSwgMS4xMTc1NiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDA4MzQsIDAuMTQ4NTY0LCAwLjQyNjEzNiwgMC42NzM5NTcsIDEuMDA3NiwgMS42NzE5NSwgMi4wODcxOCIsIFwKLSAgICAgICAgICAiMC4xMDA4LCAwLjE0ODU3NywgMC40MjU3NDIsIDAuNjczOTk2LCAxLjAwNzczLCAxLjY3MDg0LCAyLjA4ODgyIiwgXAotICAgICAgICAgICIwLjEwMDY0MiwgMC4xNDg0NjEsIDAuNDI1NzEzLCAwLjY3Mzk4NCwgMS4wMDc3MywgMS42NzQ1MiwgMi4wOTAyMyIsIFwKLSAgICAgICAgICAiMC4xMDA0OCwgMC4xNDgzOCwgMC40MjU4NzcsIDAuNjczOTc3LCAxLjAwNzY5LCAxLjY3MjE2LCAyLjA5MTQ5IiwgXAotICAgICAgICAgICIwLjEwMDIzLCAwLjE0ODE2OSwgMC40MjYwNTEsIDAuNjczOTkyLCAxLjAwNzcxLCAxLjY3MTk2LCAyLjA5MTUyIiwgXAotICAgICAgICAgICIwLjEwMDAwOCwgMC4xNDc5NDUsIDAuNDI1NzA4LCAwLjY3NDYyMiwgMS4wMDc3LCAxLjY3MTA2LCAyLjA4NzI3IiwgXAotICAgICAgICAgICIwLjA5OTk5NiwgMC4xNDc3NDgsIDAuNDI1Nzg4LCAwLjY3NDM5MSwgMS4wMDYxMywgMS42NzQ1NCwgMi4wODgzMyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTAwNzYsIDAuMTQxNTc0LCAwLjMxMjQ3NSwgMC40NjI0OTgsIDAuNjYyNTM2LCAxLjA2MjcsIDEuMzEyNzkiLCBcCi0gICAgICAgICAgIjAuMTIwNTM1LCAwLjE1MjA3OCwgMC4zMjI5NzMsIDAuNDcyOTkzLCAwLjY3MzAzOSwgMS4wNzMxNSwgMS4zMjM5NCIsIFwKLSAgICAgICAgICAiMC4xMzIxOSwgMC4xNjM3MjYsIDAuMzM0NjIzLCAwLjQ4NDY0NCwgMC42ODQ2OTcsIDEuMDg0ODEsIDEuMzM1MTIiLCBcCi0gICAgICAgICAgIjAuMTQxMzE2LCAwLjE3Mjc3OSwgMC4zNDM2OTUsIDAuNDkzNzI1LCAwLjY5Mzc0OCwgMS4wOTQxOCwgMS4zNDQ1MiIsIFwKLSAgICAgICAgICAiMC4xNDg3NzQsIDAuMTgwMjY3LCAwLjM1MTE3NiwgMC41MDEyMDQsIDAuNzAxMjQ4LCAxLjEwMTM2LCAxLjM1MjEzIiwgXAotICAgICAgICAgICIwLjE1ODg1OSwgMC4xOTAzMSwgMC4zNjEyNTEsIDAuNTExMjczLCAwLjcxMTMyLCAxLjExMTQ0LCAxLjM2MjE3IiwgXAotICAgICAgICAgICIwLjE2NjYzNCwgMC4xOTc5ODEsIDAuMzY4ODg4LCAwLjUxODk0OSwgMC43MTkwNjUsIDEuMTE5MSwgMS4zNjk2MiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTk5MTcsIDAuMTc3Nzk3LCAwLjUxMzg5LCAwLjgxMjU0NywgMS4yMTY1NCwgMi4wMjE3NCwgMi41MjU1IiwgXAotICAgICAgICAgICIwLjExOTk2LCAwLjE3Nzc5MiwgMC41MTMwMDcsIDAuODEzNTk5LCAxLjIxNjQ1LCAyLjAyMjEsIDIuNTE4NzYiLCBcCi0gICAgICAgICAgIjAuMTE5ODIyLCAwLjE3NzY5NywgMC41MTI1MDYsIDAuODEyODg5LCAxLjIxNjQzLCAyLjAyMjA3LCAyLjUyMTM1IiwgXAotICAgICAgICAgICIwLjExOTcyOCwgMC4xNzc1NjcsIDAuNTEyNTc3LCAwLjgxMzIyOSwgMS4yMTYyOCwgMi4wMTkxNywgMi41MTgzNyIsIFwKLSAgICAgICAgICAiMC4xMTk1MjQsIDAuMTc3NDQ1LCAwLjUxMjcwMiwgMC44MTI4OCwgMS4yMTYzNywgMi4wMjE5OCwgMi41MTgzNiIsIFwKLSAgICAgICAgICAiMC4xMTkyMjYsIDAuMTc3MTksIDAuNTEzNzc5LCAwLjgxMzU0MywgMS4yMTYzOSwgMi4wMjIwNCwgMi41MTk4MiIsIFwKLSAgICAgICAgICAiMC4xMTkwOCwgMC4xNzcxNjMsIDAuNTEzNjY1LCAwLjgxNDQ1NCwgMS4yMTM5NiwgMi4wMTg5LCAyLjUxOTE2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA5NDg5LCAwLjAwOTQ5OSwgMC4wMDk1MTcsIDAuMDA5NTIxLCAwLjAwOTUyMywgMC4wMDk1MjYsIDAuMDA5NTI2IiwgXAotICAgICAgICAgICIwLjAwOTQ2NCwgMC4wMDk0NzQsIDAuMDA5NDkxLCAwLjAwOTQ5NiwgMC4wMDk0OTksIDAuMDA5NTAxLCAwLjAwOTUwMSIsIFwKLSAgICAgICAgICAiMC4wMDk0NTMsIDAuMDA5NDYzLCAwLjAwOTQ4MSwgMC4wMDk0ODUsIDAuMDA5NDg3LCAwLjAwOTQ5LCAwLjAwOTQ5IiwgXAotICAgICAgICAgICIwLjAwOTQ0OSwgMC4wMDk0NTksIDAuMDA5NDc3LCAwLjAwOTQ4MSwgMC4wMDk0ODMsIDAuMDA5NDg1LCAwLjAwOTQ4NiIsIFwKLSAgICAgICAgICAiMC4wMDk0NiwgMC4wMDk0NjksIDAuMDA5NDg3LCAwLjAwOTQ5MiwgMC4wMDk0OTQsIDAuMDA5NDk2LCAwLjAwOTQ5NyIsIFwKLSAgICAgICAgICAiMC4wMDk0OCwgMC4wMDk0OSwgMC4wMDk1MDksIDAuMDA5NTEzLCAwLjAwOTUxNiwgMC4wMDk1MTgsIDAuMDA5NTE5IiwgXAotICAgICAgICAgICIwLjAwOTUsIDAuMDA5NTEsIDAuMDA5NTI4LCAwLjAwOTUzMywgMC4wMDk1MzUsIDAuMDA5NTM4LCAwLjAwOTUzOSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwOTI0OSwgMC4wMDkyNjQsIDAuMDA5MjkzLCAwLjAwOTMsIDAuMDA5MzA0LCAwLjAwOTMwOCwgMC4wMDkzMDkiLCBcCi0gICAgICAgICAgIjAuMDA5MjExLCAwLjAwOTIyNiwgMC4wMDkyNTQsIDAuMDA5MjYxLCAwLjAwOTI2NiwgMC4wMDkyNjksIDAuMDA5MjciLCBcCi0gICAgICAgICAgIjAuMDA5MTkzLCAwLjAwOTIwOCwgMC4wMDkyMzcsIDAuMDA5MjQ0LCAwLjAwOTI0OCwgMC4wMDkyNTIsIDAuMDA5MjUzIiwgXAotICAgICAgICAgICIwLjAwOTE5NSwgMC4wMDkyMSwgMC4wMDkyMzgsIDAuMDA5MjQ1LCAwLjAwOTI0OSwgMC4wMDkyNTMsIDAuMDA5MjU0IiwgXAotICAgICAgICAgICIwLjAwOTIwMywgMC4wMDkyMTgsIDAuMDA5MjQ3LCAwLjAwOTI1NCwgMC4wMDkyNTgsIDAuMDA5MjYyLCAwLjAwOTI2MyIsIFwKLSAgICAgICAgICAiMC4wMDkyMzMsIDAuMDA5MjQ4LCAwLjAwOTI3NywgMC4wMDkyODUsIDAuMDA5Mjg5LCAwLjAwOTI5MywgMC4wMDkyOTQiLCBcCi0gICAgICAgICAgIjAuMDA5MjUxLCAwLjAwOTI2NSwgMC4wMDkyOTUsIDAuMDA5MzAyLCAwLjAwOTMwNywgMC4wMDkzMTEsIDAuMDA5MzEyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA3NzYyLCAwLjAwNzc3MSwgMC4wMDc3ODcsIDAuMDA3NzksIDAuMDA3NzkyLCAwLjAwNzc5NCwgMC4wMDc3OTQiLCBcCi0gICAgICAgICAgIjAuMDA3NzYxLCAwLjAwNzc3MSwgMC4wMDc3ODYsIDAuMDA3NzkyLCAwLjAwNzc5MiwgMC4wMDc3OTQsIDAuMDA3Nzk0IiwgXAotICAgICAgICAgICIwLjAwNzgxMywgMC4wMDc4MjIsIDAuMDA3ODM5LCAwLjAwNzg0NCwgMC4wMDc4NDYsIDAuMDA3ODQ3LCAwLjAwNzg0OCIsIFwKLSAgICAgICAgICAiMC4wMDc4NTUsIDAuMDA3ODY0LCAwLjAwNzg4MiwgMC4wMDc4ODYsIDAuMDA3ODg4LCAwLjAwNzg5MSwgMC4wMDc4OTEiLCBcCi0gICAgICAgICAgIjAuMDA3OTU2LCAwLjAwNzk2NSwgMC4wMDc5ODIsIDAuMDA3OTg2LCAwLjAwNzk4OSwgMC4wMDc5OTEsIDAuMDA3OTkyIiwgXAotICAgICAgICAgICIwLjAwODAxNiwgMC4wMDgwMjYsIDAuMDA4MDQyLCAwLjAwODA0NiwgMC4wMDgwNDksIDAuMDA4MDUyLCAwLjAwODA1MiIsIFwKLSAgICAgICAgICAiMC4wMDgxMDQsIDAuMDA4MTEzLCAwLjAwODEzLCAwLjAwODEzNSwgMC4wMDgxMzgsIDAuMDA4MTQsIDAuMDA4MTQxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2MDY0LCAwLjAwNjA3OCwgMC4wMDYxMDMsIDAuMDA2MTA5LCAwLjAwNjExMiwgMC4wMDYxMTUsIDAuMDA2MTE2IiwgXAotICAgICAgICAgICIwLjAwNjAzMSwgMC4wMDYwNDYsIDAuMDA2MDcxLCAwLjAwNjA3NywgMC4wMDYwOCwgMC4wMDYwODMsIDAuMDA2MDg0IiwgXAotICAgICAgICAgICIwLjAwNjA5LCAwLjAwNjEwNCwgMC4wMDYxMywgMC4wMDYxMzYsIDAuMDA2MTQsIDAuMDA2MTQ0LCAwLjAwNjE0NSIsIFwKLSAgICAgICAgICAiMC4wMDYxMjUsIDAuMDA2MTM5LCAwLjAwNjE2NSwgMC4wMDYxNzIsIDAuMDA2MTc2LCAwLjAwNjE3OSwgMC4wMDYxOCIsIFwKLSAgICAgICAgICAiMC4wMDYyMTUsIDAuMDA2MjI4LCAwLjAwNjI1NSwgMC4wMDYyNjEsIDAuMDA2MjY2LCAwLjAwNjI2OSwgMC4wMDYyNyIsIFwKLSAgICAgICAgICAiMC4wMDYzMjIsIDAuMDA2MzM1LCAwLjAwNjM2MiwgMC4wMDYzNjksIDAuMDA2MzczLCAwLjAwNjM3NywgMC4wMDYzNzgiLCBcCi0gICAgICAgICAgIjAuMDA2MzkzLCAwLjAwNjQwNiwgMC4wMDY0MzMsIDAuMDA2NDQsIDAuMDA2NDQ1LCAwLjAwNjQ0OSwgMC4wMDY0NSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkMiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMzY5NywgMC4wMDM3MDQsIDAuMDAzNzE0LCAwLjAwMzcxNywgMC4wMDM3MTUsIDAuMDAzNzE5LCAwLjAwMzcxOCIsIFwKLSAgICAgICAgICAiMC4wMDM3MDYsIDAuMDAzNzEzLCAwLjAwMzcyNCwgMC4wMDM3MjYsIDAuMDAzNzI3LCAwLjAwMzcyOCwgMC4wMDM3MjkiLCBcCi0gICAgICAgICAgIjAuMDAzNzUxLCAwLjAwMzc1OCwgMC4wMDM3NywgMC4wMDM3NzIsIDAuMDAzNzczLCAwLjAwMzc3NSwgMC4wMDM3NzYiLCBcCi0gICAgICAgICAgIjAuMDAzNzkzLCAwLjAwMzgsIDAuMDAzODEzLCAwLjAwMzgxNywgMC4wMDM4MTYsIDAuMDAzODE4LCAwLjAwMzgxOSIsIFwKLSAgICAgICAgICAiMC4wMDM4NDksIDAuMDAzODU2LCAwLjAwMzg2OSwgMC4wMDM4NzMsIDAuMDAzODczLCAwLjAwMzg3NSwgMC4wMDM4NzYiLCBcCi0gICAgICAgICAgIjAuMDAzOTIsIDAuMDAzOTIsIDAuMDAzOTMyLCAwLjAwMzk0NCwgMC4wMDM5NDUsIDAuMDAzOTQsIDAuMDAzOTQiLCBcCi0gICAgICAgICAgIjAuMDAzOTc0LCAwLjAwMzk5NywgMC4wMDQwMDcsIDAuMDA0MDExLCAwLjAwNCwgMC4wMDQwMTcsIDAuMDA0MDAyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyOTE0LCAwLjAwMjkyNSwgMC4wMDI5NDEsIDAuMDAyOTQ0LCAwLjAwMjk0NiwgMC4wMDI5NDgsIDAuMDAyOTQ4IiwgXAotICAgICAgICAgICIwLjAwMjkyMywgMC4wMDI5MzQsIDAuMDAyOTUsIDAuMDAyOTU0LCAwLjAwMjk1NiwgMC4wMDI5NTgsIDAuMDAyOTU4IiwgXAotICAgICAgICAgICIwLjAwMjk4NCwgMC4wMDI5OTUsIDAuMDAzMDEzLCAwLjAwMzAxNywgMC4wMDMwMiwgMC4wMDMwMjIsIDAuMDAzMDIyIiwgXAotICAgICAgICAgICIwLjAwMzAyNCwgMC4wMDMwMzUsIDAuMDAzMDU0LCAwLjAwMzA1OCwgMC4wMDMwNjEsIDAuMDAzMDYzLCAwLjAwMzA2NCIsIFwKLSAgICAgICAgICAiMC4wMDMwNzMsIDAuMDAzMDg0LCAwLjAwMzEwMywgMC4wMDMxMDgsIDAuMDAzMTExLCAwLjAwMzExMywgMC4wMDMxMTQiLCBcCi0gICAgICAgICAgIjAuMDAzMTYsIDAuMDAzMTcxLCAwLjAwMzE5MSwgMC4wMDMxOTYsIDAuMDAzMTk5LCAwLjAwMzIwMSwgMC4wMDMyMDIiLCBcCi0gICAgICAgICAgIjAuMDAzMjIyLCAwLjAwMzIzMiwgMC4wMDMyNTIsIDAuMDAzMjU4LCAwLjAwMzI2MSwgMC4wMDMyNjMsIDAuMDAzMjY0Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IENMS01YMlg4ICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChDTEtNWDJYOCkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjQxMjQ2OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIHBpbihBKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA3NjYwNTU7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNzY0MDAxOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDc2NjA1NTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAzMDIsIDAuMDAwMzA5LCAwLjAwMDMxMiwgMC4wMDAzMTMsIDAuMDAwMzE0LCAwLjAwMDMxNCwgMC4wMDAzMTQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAzMzIsIDAuMDAwMzI4LCAwLjAwMDMyOCwgMC4wMDAzMjgsIDAuMDAwMzI3LCAwLjAwMDMyNywgMC4wMDAzMjciKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDcxMTkwOTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA3MDk1MDk7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNzExOTA5OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDMxMiwgMC4wMDAzMTcsIDAuMDAwMzE4LCAwLjAwMDMxOSwgMC4wMDAzMTksIDAuMDAwMzE5LCAwLjAwMDMyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMzMyLCAwLjAwMDMyOCwgMC4wMDAzMjgsIDAuMDAwMzI4LCAwLjAwMDMyNywgMC4wMDAzMjgsIDAuMDAwMzI4Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTMCkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNDY5ODk7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNDY5NTc7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNDY5ODk7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwMjY2LCAwLjAwMDIzNiwgMC4wMDAyNCwgMC4wMDAyNDUsIDAuMDAwMjYxLCAwLjAwMDI4MSwgMC4wMDAzMDUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDIxMDYsIDAuMDAyMDg2LCAwLjAwMjA4NCwgMC4wMDIwOSwgMC4wMDIxMDEsIDAuMDAyMTI3LCAwLjAwMjE1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihZKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDIuMTMwMjg7Ci0gICAgZnVuY3Rpb24gOiAiKChTMCBCKSArICghUzAgQSkpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IHBvc2l0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMDQwODMsIDAuMTQ0MDAxLCAwLjE2ODAyMSwgMC4xOTU4MTEsIDAuMjIyNDQxLCAwLjI0ODYxOSwgMC4yNzQ3MTEiLCBcCi0gICAgICAgICAgIjAuMTEyOTY2LCAwLjE1Mjc0LCAwLjE3Njg0LCAwLjIwNDU3MiwgMC4yMzEyODksIDAuMjU3NTIyLCAwLjI4MzYyNyIsIFwKLSAgICAgICAgICAiMC4xMjM4MjUsIDAuMTYzNTgyLCAwLjE4NzY4OCwgMC4yMTU0MzcsIDAuMjQyMTE1LCAwLjI2ODQxLCAwLjI5NDQ1NiIsIFwKLSAgICAgICAgICAiMC4xMzQ4MDMsIDAuMTc0NTYzLCAwLjE5ODY2MywgMC4yMjYzOTQsIDAuMjUzMDk1LCAwLjI3OTM5NiwgMC4zMDU0NDgiLCBcCi0gICAgICAgICAgIjAuMTQ1NjAzLCAwLjE4NTM1MiwgMC4yMDk0NTIsIDAuMjM3MjA4LCAwLjI2MzgyMSwgMC4yOTAwOTcsIDAuMzE2MTkyIiwgXAotICAgICAgICAgICIwLjE2MjMwNiwgMC4yMDIwMTMsIDAuMjI2MTM2LCAwLjI1Mzg1OSwgMC4yODA1MDIsIDAuMzA2Nzc4LCAwLjMzMjg0NCIsIFwKLSAgICAgICAgICAiMC4xNzY1MjQsIDAuMjE2MzU1LCAwLjI0MDU1MywgMC4yNjgyNzQsIDAuMjk0OTksIDAuMzIxMzMsIDAuMzQ3MzY0Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0MzY1MSwgMC4wOTU1ODEsIDAuMTM1MTg1LCAwLjE4NTQwMiwgMC4yMzYzLCAwLjI4NzgsIDAuMzM5NzYzIiwgXAotICAgICAgICAgICIwLjA0MzcyNiwgMC4wOTU1NDksIDAuMTM1MTgzLCAwLjE4NTM0LCAwLjIzNjMxMiwgMC4yODc4MzMsIDAuMzM5NzY3IiwgXAotICAgICAgICAgICIwLjA0MzQ2OSwgMC4wOTU0NjksIDAuMTM1MTUzLCAwLjE4NTE3NSwgMC4yMzYzMjIsIDAuMjg3NTk3LCAwLjMzOTc2MyIsIFwKLSAgICAgICAgICAiMC4wNDMyNDQsIDAuMDk1NDA0LCAwLjEzNTA4OCwgMC4xODUyOTIsIDAuMjM2MjgsIDAuMjg3Njk3LCAwLjMzOTc1IiwgXAotICAgICAgICAgICIwLjA0MzIyNCwgMC4wOTUyNzMsIDAuMTM1MDc3LCAwLjE4NTMzNywgMC4yMzYyNzksIDAuMjg3NzE1LCAwLjMzOTcwNSIsIFwKLSAgICAgICAgICAiMC4wNDM2MjEsIDAuMDk1Nzg4LCAwLjEzNTM2OSwgMC4xODUzMjksIDAuMjM2NDAzLCAwLjI4NzgxLCAwLjMzOTc3MiIsIFwKLSAgICAgICAgICAiMC4wNDQ0NTQsIDAuMDk2LCAwLjEzNTU3MiwgMC4xODU2OSwgMC4yMzY1ODYsIDAuMjg4MDU4LCAwLjMzOTg4NiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTE0ODQsIDAuMTUyNzM5LCAwLjE3Nzk3MSwgMC4yMDcyOTIsIDAuMjM1MzQ4LCAwLjI2MzA0MSwgMC4yOTA0MjIiLCBcCi0gICAgICAgICAgIjAuMTIwMTEyLCAwLjE2MTM1OCwgMC4xODY3MDIsIDAuMjE1ODI5LCAwLjI0NDA1NywgMC4yNzE3MTUsIDAuMjk5MTQ5IiwgXAotICAgICAgICAgICIwLjEzMDE0MSwgMC4xNzEzNTcsIDAuMTk2NzIsIDAuMjI1OTU4LCAwLjI1NDA5MSwgMC4yODE3NjcsIDAuMzA5MTg1IiwgXAotICAgICAgICAgICIwLjE0MDA3NCwgMC4xODEzNjIsIDAuMjA2NTk5LCAwLjIzNTg3MSwgMC4yNjM5ODEsIDAuMjkxNjA2LCAwLjMxOTA3MyIsIFwKLSAgICAgICAgICAiMC4xNTAwNjYsIDAuMTkxMjEsIDAuMjE2NTU4LCAwLjI0NTc3MywgMC4yNzM4ODgsIDAuMzAxNTE5LCAwLjMyODk1OCIsIFwKLSAgICAgICAgICAiMC4xNjUxMTksIDAuMjA2NTI3LCAwLjIzMTc5MiwgMC4yNjA5NzcsIDAuMjg5MTI2LCAwLjMxNjc2MSwgMC4zNDQyMiIsIFwKLSAgICAgICAgICAiMC4xNzc5NiwgMC4yMTkyOTksIDAuMjQ0Njg3LCAwLjI3MzkyLCAwLjMwMjAyMywgMC4zMjk2NjEsIDAuMzU3MTE0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0NDc3NiwgMC4wOTkwNjEsIDAuMTQwMTE3LCAwLjE5MjE4NSwgMC4yNDQ4OCwgMC4yOTgxLCAwLjM1MTc3IiwgXAotICAgICAgICAgICIwLjA0NDkwMiwgMC4wOTg5NzYsIDAuMTQwMTk0LCAwLjE5MjA0NiwgMC4yNDQ4NzQsIDAuMjk4MTE2LCAwLjM1MTc2MSIsIFwKLSAgICAgICAgICAiMC4wNDQ4MzIsIDAuMDk4ODk5LCAwLjE0MDE0LCAwLjE5MjA5NywgMC4yNDQ4NjIsIDAuMjk4MDA4LCAwLjM1MTc1NiIsIFwKLSAgICAgICAgICAiMC4wNDQ4NTcsIDAuMDk4OTI1LCAwLjE0MDA2NCwgMC4xOTIwODMsIDAuMjQ0ODMsIDAuMjk4MDg1LCAwLjM1MTczNSIsIFwKLSAgICAgICAgICAiMC4wNDQ2NjMsIDAuMDk4Nzc2LCAwLjE0MDA0MSwgMC4xOTIwOTgsIDAuMjQ0Nzg2LCAwLjI5ODAzNywgMC4zNTE3MzYiLCBcCi0gICAgICAgICAgIjAuMDQ1NDY5LCAwLjA5OTIyOSwgMC4xNDAzNTgsIDAuMTkyMjgzLCAwLjI0NDk3LCAwLjI5ODE0OCwgMC4zNTE4MDYiLCBcCi0gICAgICAgICAgIjAuMDQ2MTI5LCAwLjA5OTQ3NiwgMC4xNDA2NjEsIDAuMTkyNTgsIDAuMjQ1MTY4LCAwLjI5ODIyOCwgMC4zNTE5MzkiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTA0MjAzLCAwLjE0Mzg0MiwgMC4xNjc5NSwgMC4xOTU3NTIsIDAuMjIyMzEsIDAuMjQ4NTgxLCAwLjI3NDYzNSIsIFwKLSAgICAgICAgICAiMC4xMTMxMDQsIDAuMTUyODcyLCAwLjE3NzAyLCAwLjIwNDc3NSwgMC4yMzEzOTUsIDAuMjU3NjI1LCAwLjI4MzY3NSIsIFwKLSAgICAgICAgICAiMC4xMjQwMTksIDAuMTYzNzk5LCAwLjE4Nzg5OSwgMC4yMTU2MTksIDAuMjQyMzIzLCAwLjI2ODYxNSwgMC4yOTQ2NjUiLCBcCi0gICAgICAgICAgIjAuMTM1MDY0LCAwLjE3NDgwNSwgMC4xOTg4OTQsIDAuMjI2NjA2LCAwLjI1MzMxOSwgMC4yNzk2MjgsIDAuMzA1Njk0IiwgXAotICAgICAgICAgICIwLjE0NTk3NywgMC4xODU2NDMsIDAuMjA5NzQ1LCAwLjIzNzQ4OSwgMC4yNjQxMjQsIDAuMjkwMzg3LCAwLjMxNjQ5NiIsIFwKLSAgICAgICAgICAiMC4xNjMwOCwgMC4yMDI4NzgsIDAuMjI2ODk5LCAwLjI1NDY3LCAwLjI4MTI5NSwgMC4zMDc1NzQsIDAuMzMzNjMyIiwgXAotICAgICAgICAgICIwLjE3Njk4NSwgMC4yMTY4MDgsIDAuMjQxMDA2LCAwLjI2ODY5NSwgMC4yOTUzODksIDAuMzIxNjc5LCAwLjM0NzcxMyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDM0MiwgMC4wOTU1MzksIDAuMTM1MjMyLCAwLjE4NTQ4NCwgMC4yMzY0MDcsIDAuMjg3ODE2LCAwLjMzOTg1MSIsIFwKLSAgICAgICAgICAiMC4wNDM2MzUsIDAuMDk1NTI2LCAwLjEzNTIxMiwgMC4xODU0MzksIDAuMjM2MzM2LCAwLjI4Nzc3NywgMC4zMzk4MjIiLCBcCi0gICAgICAgICAgIjAuMDQzNTkzLCAwLjA5NTUyMiwgMC4xMzUyMTIsIDAuMTg1MzY0LCAwLjIzNjM4MSwgMC4yODc2MzIsIDAuMzM5ODI1IiwgXAotICAgICAgICAgICIwLjA0MzI3LCAwLjA5NTQ0MiwgMC4xMzUxMjUsIDAuMTg1MzMxLCAwLjIzNjMyOCwgMC4yODc3NTcsIDAuMzM5ODA4IiwgXAotICAgICAgICAgICIwLjA0MzI0NywgMC4wOTUyNTEsIDAuMTM0OTg0LCAwLjE4NTM0NSwgMC4yMzYyOTEsIDAuMjg3Nzc5LCAwLjMzOTczOSIsIFwKLSAgICAgICAgICAiMC4wNDM5MDYsIDAuMDk1NTk2LCAwLjEzNTI4NCwgMC4xODU0NzIsIDAuMjM2MzkzLCAwLjI4NzgxOSwgMC4zMzk4MjUiLCBcCi0gICAgICAgICAgIjAuMDQ0NDQ3LCAwLjA5NjAwMSwgMC4xMzU2MzUsIDAuMTg1NzU4LCAwLjIzNjYzOCwgMC4yODgxMzMsIDAuMzM5OTgiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTEyNzczLCAwLjE1NDAzOCwgMC4xNzkzNzMsIDAuMjA4NjUyLCAwLjIzNjgxNiwgMC4yNjQ0NDMsIDAuMjkxOTA4IiwgXAotICAgICAgICAgICIwLjEyMTQ0NywgMC4xNjI3NCwgMC4xODgxMTEsIDAuMjE3Mjk1LCAwLjI0NTQ4NiwgMC4yNzMxNCwgMC4zMDA1OCIsIFwKLSAgICAgICAgICAiMC4xMzEzMTksIDAuMTcyNTc2LCAwLjE5Nzk3OSwgMC4yMjcyMDUsIDAuMjU1Mzc5LCAwLjI4MzA1NywgMC4zMTA1MjMiLCBcCi0gICAgICAgICAgIjAuMTQxMzMzLCAwLjE4MjU3OSwgMC4yMDc5NTcsIDAuMjM3MTksIDAuMjY1MzQyLCAwLjI5MzAzNywgMC4zMjA0NjUiLCBcCi0gICAgICAgICAgIjAuMTUxMTI4LCAwLjE5MjM0MiwgMC4yMTc3MTYsIDAuMjQ2OTk3LCAwLjI3NTA2LCAwLjMwMjc0LCAwLjMzMDE1OCIsIFwKLSAgICAgICAgICAiMC4xNjYzMjQsIDAuMjA3ODM3LCAwLjIzMzE2NSwgMC4yNjI0MzIsIDAuMjkwNTE0LCAwLjMxODIwMiwgMC4zNDU2MDYiLCBcCi0gICAgICAgICAgIjAuMTc5MTcsIDAuMjIwNTg1LCAwLjI0NjAxOSwgMC4yNzUxNDIsIDAuMzAzMjk5LCAwLjMzMDk1OSwgMC4zNTgzOTMiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQ0OTQ2LCAwLjA5OTE2MiwgMC4xNDAzMzksIDAuMTkyMjkzLCAwLjI0NDk5OSwgMC4yOTgyMzEsIDAuMzUxODYzIiwgXAotICAgICAgICAgICIwLjA0NTAwNSwgMC4wOTkxNTcsIDAuMTQwMzY5LCAwLjE5MjIzMywgMC4yNDUwMTMsIDAuMjk4MjQxLCAwLjM1MTg2OSIsIFwKLSAgICAgICAgICAiMC4wNDQ5ODUsIDAuMDk5MDI3LCAwLjE0MDMsIDAuMTkyMTc5LCAwLjI0NDk4LCAwLjI5ODE2NCwgMC4zNTE4MTUiLCBcCi0gICAgICAgICAgIjAuMDQ1MDAyLCAwLjA5OTAyNCwgMC4xNDAyNjYsIDAuMTkyMjQ1LCAwLjI0NDk3NSwgMC4yOTgxNTIsIDAuMzUxODUxIiwgXAotICAgICAgICAgICIwLjA0NDgwNCwgMC4wOTg4OTQsIDAuMTQwMjIsIDAuMTkyMjUzLCAwLjI0NDk1MSwgMC4yOTgyMDQsIDAuMzUxODQ3IiwgXAotICAgICAgICAgICIwLjA0NTU5MiwgMC4wOTkyMzksIDAuMTQwMzk4LCAwLjE5MjM3NiwgMC4yNDUwMjgsIDAuMjk4MjksIDAuMzUxODUyIiwgXAotICAgICAgICAgICIwLjA0NjA2LCAwLjA5OTgwOCwgMC4xNDA4NDgsIDAuMTkyNjMsIDAuMjQ1MjgyLCAwLjI5ODQ2MSwgMC4zNTIwMzIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUzAiOwotICAgICAgdGltaW5nX3NlbnNlIDogcG9zaXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA5NzY2MywgMC4xMzc0ODksIDAuMTYxNDczLCAwLjE4OTIyMSwgMC4yMTU5MTcsIDAuMjQyMTgzLCAwLjI2ODI3NSIsIFwKLSAgICAgICAgICAiMC4xMDY4MzksIDAuMTQ2NzI4LCAwLjE3MDcyMywgMC4xOTg0OTgsIDAuMjI1MTIxLCAwLjI1MTM5MiwgMC4yNzc0NzgiLCBcCi0gICAgICAgICAgIjAuMTE4NTQxLCAwLjE1ODMxNCwgMC4xODIzNzEsIDAuMjEwMTUyLCAwLjIzNjc4OCwgMC4yNjMwNTMsIDAuMjg5MTUxIiwgXAotICAgICAgICAgICIwLjEzMDI4MywgMC4xNjk5OTIsIDAuMTk0MDgxLCAwLjIyMTgwMiwgMC4yNDg1MDEsIDAuMjc0ODAyLCAwLjMwMDg1MiIsIFwKLSAgICAgICAgICAiMC4xNDIzNzcsIDAuMTgyMDY3LCAwLjIwNjE0NiwgMC4yMzM5MTksIDAuMjYwNTU0LCAwLjI4NjgyNCwgMC4zMTI5MjkiLCBcCi0gICAgICAgICAgIjAuMTYxMzMxLCAwLjIwMTE0LCAwLjIyNTE0NCwgMC4yNTI4NDEsIDAuMjc5NTMsIDAuMzA1Nzk5LCAwLjMzMTg5MSIsIFwKLSAgICAgICAgICAiMC4xNzc0MTEsIDAuMjE3MzQ4LCAwLjI0MTUwOCwgMC4yNjkyMjMsIDAuMjk2MDE4LCAwLjMyMjI1MywgMC4zNDgzMTYiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQzMjU0LCAwLjA5NTQ2NiwgMC4xMzUwODEsIDAuMTg1MzI4LCAwLjIzNjMyOSwgMC4yODc4MjksIDAuMzM5Nzg2IiwgXAotICAgICAgICAgICIwLjA0MzM1NSwgMC4wOTU0NTUsIDAuMTM1MTIyLCAwLjE4NTM3MiwgMC4yMzYzMjYsIDAuMjg3Nzc4LCAwLjMzOTc3MyIsIFwKLSAgICAgICAgICAiMC4wNDMzMzYsIDAuMDk1Mzk4LCAwLjEzNTA2NCwgMC4xODUzNzEsIDAuMjM2MzEyLCAwLjI4Nzc5MSwgMC4zMzk3MzYiLCBcCi0gICAgICAgICAgIjAuMDQzMjQ0LCAwLjA5NTQxNCwgMC4xMzUxMSwgMC4xODUzMjEsIDAuMjM2MzI5LCAwLjI4NzU3LCAwLjMzOTc4NyIsIFwKLSAgICAgICAgICAiMC4wNDMyNjIsIDAuMDk1MzI0LCAwLjEzNTA1NCwgMC4xODUzNiwgMC4yMzYzMDMsIDAuMjg3NzkyLCAwLjMzOTcxOCIsIFwKLSAgICAgICAgICAiMC4wNDM4NTYsIDAuMDk1Njk4LCAwLjEzNTMxLCAwLjE4NTQ1NiwgMC4yMzYzOTYsIDAuMjg3ODYyLCAwLjMzOTc5OCIsIFwKLSAgICAgICAgICAiMC4wNDU1MjQsIDAuMDk2NDc4LCAwLjEzNTkxNSwgMC4xODU5MzUsIDAuMjM2NzIxLCAwLjI4ODEzNywgMC4zNDAwNDQiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTA1MjE1LCAwLjE0NjQxMywgMC4xNzE3ODIsIDAuMjAxMDY1LCAwLjIyOTEyLCAwLjI1NjgwNywgMC4yODQyNTIiLCBcCi0gICAgICAgICAgIjAuMTE0MTg0LCAwLjE1NTUyMiwgMC4xODA3NzYsIDAuMjEwMDM4LCAwLjIzODEwMSwgMC4yNjU3NjcsIDAuMjkzMiIsIFwKLSAgICAgICAgICAiMC4xMjU2MTgsIDAuMTY2OTQ1LCAwLjE5MjIxMSwgMC4yMjE0NTIsIDAuMjQ5NTIzLCAwLjI3NzE4OCwgMC4zMDQ2MjQiLCBcCi0gICAgICAgICAgIjAuMTM3MTE5LCAwLjE3ODMwOSwgMC4yMDM2ODMsIDAuMjMyOSwgMC4yNjEwMjgsIDAuMjg4NzA1LCAwLjMxNjEyMyIsIFwKLSAgICAgICAgICAiMC4xNDg4MywgMC4xODk5NTksIDAuMjE1MzA0LCAwLjI0NDUxMywgMC4yNzI2MzUsIDAuMzAwMjYzLCAwLjMyNzc0MSIsIFwKLSAgICAgICAgICAiMC4xNjczMTUsIDAuMjA4NTgyLCAwLjIzMzgzNSwgMC4yNjMwNTEsIDAuMjkxMTU4LCAwLjMxODg0OSwgMC4zNDYyNzMiLCBcCi0gICAgICAgICAgIjAuMTgyODg4LCAwLjIyNDE3LCAwLjI0OTUzNCwgMC4yNzg3NDksIDAuMzA2OTExLCAwLjMzNDUzMywgMC4zNjIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQ0ODk1LCAwLjA5ODgyLCAwLjE0MDAzNiwgMC4xOTIxMzIsIDAuMjQ0NzM3LCAwLjI5Nzg4OCwgMC4zNTE3MDgiLCBcCi0gICAgICAgICAgIjAuMDQ0NzI4LCAwLjA5ODg4NiwgMC4xNDAwNjksIDAuMTkyMTE4LCAwLjI0NDgxNiwgMC4yOTgwNDYsIDAuMzUxNzA2IiwgXAotICAgICAgICAgICIwLjA0NDcxLCAwLjA5ODg5LCAwLjE0MDA4MiwgMC4xOTIxMjcsIDAuMjQ0ODIzLCAwLjI5ODA5NiwgMC4zNTE3MTciLCBcCi0gICAgICAgICAgIjAuMDQ0NzIxLCAwLjA5ODgwOSwgMC4xNDAwOTksIDAuMTkyMSwgMC4yNDQ4MzUsIDAuMjk4MDI1LCAwLjM1MTc0MiIsIFwKLSAgICAgICAgICAiMC4wNDQ2NzIsIDAuMDk4NzczLCAwLjE0MDA0MiwgMC4xOTE5NjgsIDAuMjQ0Nzg4LCAwLjI5ODA0NywgMC4zNTE4MzIiLCBcCi0gICAgICAgICAgIjAuMDQ1MTUxLCAwLjA5OTA0OSwgMC4xNDAxNzksIDAuMTkyMDk4LCAwLjI0NDg2OSwgMC4yOTgxNTEsIDAuMzUxODcxIiwgXAotICAgICAgICAgICIwLjA0NjI4LCAwLjA5OTU4OCwgMC4xNDA2NzUsIDAuMTkyNTQ2LCAwLjI0NTE3NywgMC4yOTgzOCwgMC4zNTE5MjciKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUzAiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExNTYxNywgMC4xNTUzODUsIDAuMTc5NDk2LCAwLjIwNzIwNiwgMC4yMzM5MzIsIDAuMjYwMDk3LCAwLjI4NjIwNyIsIFwKLSAgICAgICAgICAiMC4xMjU1MjEsIDAuMTY1Mjg4LCAwLjE4OTQwMSwgMC4yMTcxMjQsIDAuMjQzODM4LCAwLjI3MDAwNCwgMC4yOTYxMTEiLCBcCi0gICAgICAgICAgIjAuMTM2NDM2LCAwLjE3NjIzMSwgMC4yMDAzMzUsIDAuMjI4MTM1LCAwLjI1NDc4NCwgMC4yODA5NTQsIDAuMzA3MDQ3IiwgXAotICAgICAgICAgICIwLjE0NTI1NCwgMC4xODUwNTEsIDAuMjA5MTQ0LCAwLjIzNjg3NSwgMC4yNjM1NzMsIDAuMjg5NzQ1LCAwLjMxNTg1NyIsIFwKLSAgICAgICAgICAiMC4xNTI1NTQsIDAuMTkyMjY1LCAwLjIxNjM3OCwgMC4yNDQxMzMsIDAuMjcwNzk2LCAwLjI5NzAyOCwgMC4zMjMxNTMiLCBcCi0gICAgICAgICAgIjAuMTYyMjMzLCAwLjIwMjEyNiwgMC4yMjYyMzgsIDAuMjUzODQyLCAwLjI4MDYwMiwgMC4zMDY4NzcsIDAuMzMyODQzIiwgXAotICAgICAgICAgICIwLjE2OTU5MSwgMC4yMDkzOTIsIDAuMjMzNDkzLCAwLjI2MTMyOCwgMC4yODgsIDAuMzE0MzE2LCAwLjM0MDM1NCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDMzOTksIDAuMDk1NDMzLCAwLjEzNTE0MywgMC4xODUxOTgsIDAuMjM2MzExLCAwLjI4NzgwNCwgMC4zMzk3NDMiLCBcCi0gICAgICAgICAgIjAuMDQzNDU0LCAwLjA5NTQzOCwgMC4xMzUxNDUsIDAuMTg1MjU2LCAwLjIzNjMxMywgMC4yODc4MDUsIDAuMzM5NzQ0IiwgXAotICAgICAgICAgICIwLjA0MzQ1MiwgMC4wOTU0LCAwLjEzNTEwMywgMC4xODUzNTMsIDAuMjM2MjkyLCAwLjI4NzYyMiwgMC4zMzk3NCIsIFwKLSAgICAgICAgICAiMC4wNDM0MDksIDAuMDk1MzkyLCAwLjEzNTEwOCwgMC4xODUzMDgsIDAuMjM2MjkyLCAwLjI4Nzc5MywgMC4zMzk3MzMiLCBcCi0gICAgICAgICAgIjAuMDQzMjUxLCAwLjA5NTI1LCAwLjEzNDk0LCAwLjE4NTMyMSwgMC4yMzYyNDcsIDAuMjg3Nzg4LCAwLjMzOTczIiwgXAotICAgICAgICAgICIwLjA0MzQ1OCwgMC4wOTU1NjksIDAuMTM1MjI0LCAwLjE4NTQxOCwgMC4yMzYzNDMsIDAuMjg3NzkxLCAwLjMzOTcyNCIsIFwKLSAgICAgICAgICAiMC4wNDMyMDIsIDAuMDk1NDMsIDAuMTM1MTM1LCAwLjE4NTQ3MywgMC4yMzY0NDMsIDAuMjg3OTU3LCAwLjMzOTg3MiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMjIxODcsIDAuMTYzNTI3LCAwLjE4ODg5OSwgMC4yMTgxMzEsIDAuMjQ2Mjk3LCAwLjI3Mzk4OCwgMC4zMDE0NjEiLCBcCi0gICAgICAgICAgIjAuMTMyNTk5LCAwLjE3Mzg4MSwgMC4xOTkyMjcsIDAuMjI4NDQzLCAwLjI1NjU5MywgMC4yODQyMiwgMC4zMTE2ODkiLCBcCi0gICAgICAgICAgIjAuMTQ0MDgsIDAuMTg1MzYyLCAwLjIxMDc0MSwgMC4yMzk5OTQsIDAuMjY4MTM4LCAwLjI5NTgxNywgMC4zMjMyMzciLCBcCi0gICAgICAgICAgIjAuMTUzMzMzLCAwLjE5NDY0OCwgMC4yMjAwMjEsIDAuMjQ5MjYzLCAwLjI3NzQxMywgMC4zMDUxMDEsIDAuMzMyNTQ2IiwgXAotICAgICAgICAgICIwLjE2MTU3NiwgMC4yMDI5MzcsIDAuMjI4MjQsIDAuMjU3NDczLCAwLjI4NTY3MSwgMC4zMTMzNDgsIDAuMzQwNzY5IiwgXAotICAgICAgICAgICIwLjE3MjUxLCAwLjIxMzgyMiwgMC4yMzkxNjYsIDAuMjY4MzY0LCAwLjI5NjUxNywgMC4zMjQxODMsIDAuMzUxNjI1IiwgXAotICAgICAgICAgICIwLjE4MDc2LCAwLjIyMjAzLCAwLjI0NzM3NywgMC4yNzY1OTYsIDAuMzA0NzEyLCAwLjMzMjUzLCAwLjM1OTk4OCIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDUxODUsIDAuMDk4ODI3LCAwLjE0MDMyNiwgMC4xOTIyMjYsIDAuMjQ0OTk4LCAwLjI5ODI3NSwgMC4zNTE4MDkiLCBcCi0gICAgICAgICAgIjAuMDQ0OTYzLCAwLjA5OTE1MSwgMC4xNDAzMjQsIDAuMTkyMjc5LCAwLjI0NDk5MiwgMC4yOTgyMjEsIDAuMzUxODUyIiwgXAotICAgICAgICAgICIwLjA0NDk3LCAwLjA5OTA4LCAwLjE0MDMwNywgMC4xOTIyLCAwLjI0NDk5NCwgMC4yOTgxMzYsIDAuMzUxODU4IiwgXAotICAgICAgICAgICIwLjA0NTA3NywgMC4wOTkwNDUsIDAuMTQwMjg0LCAwLjE5MjE4NCwgMC4yNDQ5ODEsIDAuMjk4MTYyLCAwLjM1MTgwMyIsIFwKLSAgICAgICAgICAiMC4wNDQ4NzUsIDAuMDk4OTQ2LCAwLjE0MDIzOSwgMC4xOTIyMzMsIDAuMjQ0OTUxLCAwLjI5ODExNSwgMC4zNTE4MzYiLCBcCi0gICAgICAgICAgIjAuMDQ1MTg2LCAwLjA5ODk4NSwgMC4xNDAyNTcsIDAuMTkyMjM1LCAwLjI0NDk2NSwgMC4yOTgxODYsIDAuMzUxODI2IiwgXAotICAgICAgICAgICIwLjA0NDc4NCwgMC4wOTkyMTQsIDAuMTQwNDc5LCAwLjE5MjUyOCwgMC4yNDUxOCwgMC4yOTg0NjIsIDAuMzUxODkyIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA4NzQ5LCAwLjAwODg2NCwgMC4wMDg5NTYsIDAuMDA5MDI1LCAwLjAwOTA3LCAwLjAwOTA5NCwgMC4wMDkxMTgiLCBcCi0gICAgICAgICAgIjAuMDA4NzU4LCAwLjAwODg1OCwgMC4wMDg5NDQsIDAuMDA5MDExLCAwLjAwOTA1NCwgMC4wMDkwODIsIDAuMDA5MTA1IiwgXAotICAgICAgICAgICIwLjAwODcwNSwgMC4wMDg4MTksIDAuMDA4OTExLCAwLjAwODk4MSwgMC4wMDkwMjQsIDAuMDA5MDU2LCAwLjAwOTA4IiwgXAotICAgICAgICAgICIwLjAwODY3LCAwLjAwODc4NiwgMC4wMDg4ODEsIDAuMDA4OTU3LCAwLjAwOTAwMiwgMC4wMDkwMzcsIDAuMDA5MDYiLCBcCi0gICAgICAgICAgIjAuMDA4NzMzLCAwLjAwODgsIDAuMDA4ODgyLCAwLjAwODk0OSwgMC4wMDg5OTUsIDAuMDA5MDMsIDAuMDA5MDUiLCBcCi0gICAgICAgICAgIjAuMDA4NzIxLCAwLjAwODc3MywgMC4wMDg4NSwgMC4wMDg5MiwgMC4wMDg5NjMsIDAuMDA5MDA4LCAwLjAwOTAyNyIsIFwKLSAgICAgICAgICAiMC4wMDg3NDMsIDAuMDA4NzU4LCAwLjAwODgzMywgMC4wMDg5MDUsIDAuMDA4OTUxLCAwLjAwODk5LCAwLjAwOTAxOCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwOTg2LCAwLjAxMDAxNywgMC4wMTAxMzksIDAuMDEwMjM1LCAwLjAxMDI5NSwgMC4wMTAzMzYsIDAuMDEwMzY1IiwgXAotICAgICAgICAgICIwLjAwOTg5NCwgMC4wMTAwMjEsIDAuMDEwMTM3LCAwLjAxMDIyOSwgMC4wMTAyODgsIDAuMDEwMzI5LCAwLjAxMDM1OCIsIFwKLSAgICAgICAgICAiMC4wMDk4NDIsIDAuMDA5OTg2LCAwLjAxMDEwNywgMC4wMTAyMDMsIDAuMDEwMjY1LCAwLjAxMDMwOCwgMC4wMTAzMzkiLCBcCi0gICAgICAgICAgIjAuMDA5ODAyLCAwLjAwOTk1NywgMC4wMTAwNzgsIDAuMDEwMTc3LCAwLjAxMDI0MSwgMC4wMTAyODYsIDAuMDEwMzE5IiwgXAotICAgICAgICAgICIwLjAwOTg0NiwgMC4wMDk5NjUsIDAuMDEwMDc3LCAwLjAxMDE3MiwgMC4wMTAyMzQsIDAuMDEwMjc5LCAwLjAxMDMxMiIsIFwKLSAgICAgICAgICAiMC4wMDk4OCwgMC4wMDk5NywgMC4wMTAwNjksIDAuMDEwMTU4LCAwLjAxMDIyLCAwLjAxMDI2NSwgMC4wMTAyOTkiLCBcCi0gICAgICAgICAgIjAuMDA5OTEsIDAuMDA5OTQsIDAuMDEwMDM2LCAwLjAxMDEyNywgMC4wMTAxOTIsIDAuMDEwMjM5LCAwLjAxMDI3NiIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwODU4MSwgMC4wMDg2NSwgMC4wMDg3MTksIDAuMDA4NzcxLCAwLjAwODgwMiwgMC4wMDg4MywgMC4wMDg4NDIiLCBcCi0gICAgICAgICAgIjAuMDA4NTMsIDAuMDA4NjE0LCAwLjAwODY5LCAwLjAwODc0NiwgMC4wMDg3NzcsIDAuMDA4Nzk4LCAwLjAwODgxIiwgXAotICAgICAgICAgICIwLjAwODUyNywgMC4wMDg2LCAwLjAwODY3MiwgMC4wMDg3MywgMC4wMDg3NiwgMC4wMDg3ODMsIDAuMDA4ODAxIiwgXAotICAgICAgICAgICIwLjAwODQ4NSwgMC4wMDg1NjgsIDAuMDA4NjQyLCAwLjAwODcwMSwgMC4wMDg3MzksIDAuMDA4NzY1LCAwLjAwODc4NCIsIFwKLSAgICAgICAgICAiMC4wMDg1MDQsIDAuMDA4NTY0LCAwLjAwODYzMywgMC4wMDg2OSwgMC4wMDg3MjUsIDAuMDA4NzU2LCAwLjAwODc3NSIsIFwKLSAgICAgICAgICAiMC4wMDg1NDUsIDAuMDA4NTcsIDAuMDA4NjMzLCAwLjAwODY4OSwgMC4wMDg3MjMsIDAuMDA4NzUzLCAwLjAwODc3MiIsIFwKLSAgICAgICAgICAiMC4wMDg1NTksIDAuMDA4NTQzLCAwLjAwODYwNywgMC4wMDg2NjYsIDAuMDA4NzA0LCAwLjAwODczNiwgMC4wMDg3NTciKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTAxMzksIDAuMDEwMjM5LCAwLjAxMDMzOCwgMC4wMTA0MTYsIDAuMDEwNDY1LCAwLjAxMDQ5OSwgMC4wMTA1MjMiLCBcCi0gICAgICAgICAgIjAuMDEwMTI1LCAwLjAxMDIyOSwgMC4wMTAzMjgsIDAuMDEwNDA2LCAwLjAxMDQ1NiwgMC4wMTA0OSwgMC4wMTA1MTQiLCBcCi0gICAgICAgICAgIjAuMDEwMDczLCAwLjAxMDE5NSwgMC4wMTAyOTksIDAuMDEwMzgyLCAwLjAxMDQzNSwgMC4wMTA0NzEsIDAuMDEwNDk3IiwgXAotICAgICAgICAgICIwLjAxMDA0OSwgMC4wMTAxNzIsIDAuMDEwMjc3LCAwLjAxMDM2MiwgMC4wMTA0MTcsIDAuMDEwNDU1LCAwLjAxMDQ4MyIsIFwKLSAgICAgICAgICAiMC4wMTAwNTYsIDAuMDEwMTYzLCAwLjAxMDI2NCwgMC4wMTAzNDgsIDAuMDEwNDA0LCAwLjAxMDQ0MywgMC4wMTA0NzIiLCBcCi0gICAgICAgICAgIjAuMDEwMTM2LCAwLjAxMDE2MiwgMC4wMTAyNTUsIDAuMDEwMzM2LCAwLjAxMDM5MSwgMC4wMTA0MzEsIDAuMDEwNDYxIiwgXAotICAgICAgICAgICIwLjAxMDEzNiwgMC4wMTAxOCwgMC4wMTAyNTcsIDAuMDEwMzE5LCAwLjAxMDM3NSwgMC4wMTA0MTYsIDAuMDEwNDQ3Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiUzAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAxMDczOSwgMC4wMTA4NTksIDAuMDEwOTUsIDAuMDExMDIxLCAwLjAxMTA2NiwgMC4wMTEwOTQsIDAuMDExMTE4IiwgXAotICAgICAgICAgICIwLjAxMDczMiwgMC4wMTA4NTIsIDAuMDEwOTQ1LCAwLjAxMTAxMywgMC4wMTEwNTgsIDAuMDExMDg4LCAwLjAxMTExIiwgXAotICAgICAgICAgICIwLjAxMDczNiwgMC4wMTA4NTcsIDAuMDEwOTQ5LCAwLjAxMTAyLCAwLjAxMTA2NSwgMC4wMTEwOTMsIDAuMDExMTE3IiwgXAotICAgICAgICAgICIwLjAxMDczNSwgMC4wMTA4NjIsIDAuMDEwOTU2LCAwLjAxMTAyNywgMC4wMTEwNjksIDAuMDExMSwgMC4wMTExMjUiLCBcCi0gICAgICAgICAgIjAuMDEwNzM4LCAwLjAxMDg3LCAwLjAxMDk2NiwgMC4wMTEwMzYsIDAuMDExMDgyLCAwLjAxMTExMywgMC4wMTExMzQiLCBcCi0gICAgICAgICAgIjAuMDEwNzYzLCAwLjAxMDg4NiwgMC4wMTA5ODEsIDAuMDExMDU5LCAwLjAxMTEwMSwgMC4wMTExMzIsIDAuMDExMTYxIiwgXAotICAgICAgICAgICIwLjAxMDc5NiwgMC4wMTA5MiwgMC4wMTEwMTIsIDAuMDExMDg1LCAwLjAxMTEyOSwgMC4wMTExNTYsIDAuMDExMTgyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA5NTcyLCAwLjAwOTY5NywgMC4wMDk4MDIsIDAuMDA5ODg2LCAwLjAwOTk0MSwgMC4wMDk5NzksIDAuMDEwMDA3IiwgXAotICAgICAgICAgICIwLjAwOTU3NiwgMC4wMDk2ODgsIDAuMDA5NzkyLCAwLjAwOTg3NSwgMC4wMDk5MjksIDAuMDA5OTY3LCAwLjAwOTk5NCIsIFwKLSAgICAgICAgICAiMC4wMDk1NzUsIDAuMDA5NjkzLCAwLjAwOTc5OSwgMC4wMDk4ODMsIDAuMDA5OTM3LCAwLjAwOTk3NCwgMC4wMTAwMDIiLCBcCi0gICAgICAgICAgIjAuMDA5NTcsIDAuMDA5NzAzLCAwLjAwOTgxMSwgMC4wMDk4OTYsIDAuMDA5OTUxLCAwLjAwOTk4OSwgMC4wMTAwMTciLCBcCi0gICAgICAgICAgIjAuMDA5NTUzLCAwLjAwOTY5NSwgMC4wMDk4MDQsIDAuMDA5ODkyLCAwLjAwOTk0OSwgMC4wMDk5ODcsIDAuMDEwMDE1IiwgXAotICAgICAgICAgICIwLjAwOTU5OCwgMC4wMDk3MzQsIDAuMDA5ODM5LCAwLjAwOTkyMywgMC4wMDk5NzcsIDAuMDEwMDE1LCAwLjAxMDA0NSIsIFwKLSAgICAgICAgICAiMC4wMDk2MjIsIDAuMDA5NzUsIDAuMDA5ODUxLCAwLjAwOTkzOSwgMC4wMDk5OTYsIDAuMDEwMDM1LCAwLjAxMDA2MyIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IERGRkhRWDQgKgotICogLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoREZGSFFYNCkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjQ5MjAyNDsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBmZiAoTjMwLFFCSU5UKSB7Ci0gICAgbmV4dF9zdGF0ZSA6ICJEIjsKLSAgICBjbG9ja2VkX29uIDogIkNLIjsKLSAgfQotICBwaW4oQ0spICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYwNzIwOTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MDcxMzQ7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjA3MjA5OwotICAgIGNsb2NrIDogdHJ1ZTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDMxMzEsIDAuMDAzMTA4LCAwLjAwMzA5OCwgMC4wMDMxLCAwLjAwMzEwNywgMC4wMDMxMzcsIDAuMDAzMTQ0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA4MTY5LCAwLjAwODE1LCAwLjAwODE0NSwgMC4wMDgxNDgsIDAuMDA4MTU3LCAwLjAwODE3LCAwLjAwODE4NiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IG1pbl9wdWxzZV93aWR0aDsKLSAgICAgIHdoZW4gOiAiIUQiOwotICAgICAgc2RmX2NvbmQgOiAiRCA9PSAxJ2IwIjsKLSAgICAgIHJpc2VfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjEyODA3NywgMC4xMzgyNzYsIDAuMTUxMjIyLCAwLjE2Mzg3LCAwLjE3NTY2OCwgMC4xOTIxODYsIDAuMjA1MzE0Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQod2lkdGhfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4xMDg2MDksIDAuMTE4NTI1LCAwLjEzMTAxOSwgMC4xNDMwNzksIDAuMTU0MTU0LCAwLjE2OTI0MSwgMC4xODA5MTkiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEQpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDgxMTQ2MzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA4MDkwOTk7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwODExNDYzOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMjY3MywgMC4wMDI2MzksIDAuMDAyNjIyLCAwLjAwMjYxNSwgMC4wMDI2MTgsIDAuMDAyNjI1LCAwLjAwMjYzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzNTk4LCAwLjAwMzU3OSwgMC4wMDM1NjgsIDAuMDAzNTYzLCAwLjAwMzU1NywgMC4wMDM1NiwgMC4wMDM1NjQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMTI1LCAtMC4wMDc1LCAwLjAwNSwgMC4wMTEyNSwgMC4wMTc1LCAwLjAyNzUsIDAuMDMiLCBcCi0gICAgICAgICAgIi0wLjAyMzc1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMCwgMC4wMDYyNSwgMC4wMTYyNSwgMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMjUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLCAwLjAxLCAwLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAtMC4wMDI1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAwODc1LCAwIiwgXAotICAgICAgICAgICItMC4wNTg3NSwgLTAuMDUzNzUsIC0wLjA0MTI1LCAtMC4wMzUsIC0wLjAyODc1LCAtMC4wMTg3NSwgLTAuMDEiLCBcCi0gICAgICAgICAgIi0wLjA2NzUsIC0wLjA2MjUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDI3NSwgLTAuMDE4NzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzMTI1LCAwLjA0MjUsIDAuMDU1LCAwLjA2NzUsIDAuMDczNzUsIDAuMDksIDAuMDk4NzUiLCBcCi0gICAgICAgICAgIjAuMDIsIDAuMDMxMjUsIDAuMDQzNzUsIDAuMDU2MjUsIDAuMDY4NzUsIDAuMDc4NzUsIDAuMDkzNzUiLCBcCi0gICAgICAgICAgIjAuMDEzNzUsIDAuMDI1LCAwLjAzNzUsIDAuMDUsIDAuMDU2MjUsIDAuMDcyNSwgMC4wODc1IiwgXAotICAgICAgICAgICIwLjAwNzUsIDAuMDE4NzUsIDAuMDMxMjUsIDAuMDQzNzUsIDAuMDUsIDAuMDY2MjUsIDAuMDgxMjUiLCBcCi0gICAgICAgICAgIjAuMDAxMjUsIDAuMDEyNSwgMC4wMjUsIDAuMDM3NSwgMC4wNSwgMC4wNiwgMC4wNzUiLCBcCi0gICAgICAgICAgIi0wLjAwMjUsIDAuMDA4NzUsIDAuMDE1LCAwLjAyNzUsIDAuMDQsIDAuMDU2MjUsIDAuMDY1IiwgXAotICAgICAgICAgICItMC4wMDUsIDAsIDAuMDEyNSwgMC4wMjUsIDAuMDM3NSwgMC4wNDc1LCAwLjA2MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDM3NSwgMC4wMjYyNSwgMC4wMTM3NSwgMC4wMDc1LCAwLjAwMTI1LCAtMC4wMDg3NSwgLTAuMDE3NSIsIFwKLSAgICAgICAgICAiMC4wNDI1LCAwLjAzMTI1LCAwLjAyNSwgMC4wMTg3NSwgMC4wMTI1LCAwLjAwMjUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICIwLjA1NSwgMC4wNDM3NSwgMC4wMzc1LCAwLjAyNSwgMC4wMTg3NSwgMC4wMDg3NSwgMCIsIFwKLSAgICAgICAgICAiMC4wNjc1LCAwLjA1NjI1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDMxMjUsIDAuMDIxMjUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4wNzM3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA0Mzc1LCAwLjAzNzUsIDAuMDI3NSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4wOSwgMC4wNzg3NSwgMC4wNjYyNSwgMC4wNiwgMC4wNDc1LCAwLjAzNzUsIDAuMDM1IiwgXAotICAgICAgICAgICIwLjA5ODc1LCAwLjA4NzUsIDAuMDc1LCAwLjA2ODc1LCAwLjA1NjI1LCAwLjA0NjI1LCAwLjA0Mzc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2MjUsIC0wLjAwNSwgLTAuMDE3NSwgLTAuMDMsIC0wLjA0MjUsIC0wLjA1ODc1LCAtMC4wNzM3NSIsIFwKLSAgICAgICAgICAiMC4wMTc1LCAwLjAwNjI1LCAtMC4wMDYyNSwgLTAuMDI1LCAtMC4wMzEyNSwgLTAuMDUzNzUsIC0wLjA2MjUiLCBcCi0gICAgICAgICAgIjAuMDIzNzUsIDAuMDEyNSwgMCwgLTAuMDEyNSwgLTAuMDI1LCAtMC4wNDEyNSwgLTAuMDU2MjUiLCBcCi0gICAgICAgICAgIjAuMDM2MjUsIDAuMDI1LCAwLjAxMjUsIC0wLjAwNjI1LCAtMC4wMTI1LCAtMC4wMzUsIC0wLjA0Mzc1IiwgXAotICAgICAgICAgICIwLjA0MjUsIDAuMDMxMjUsIDAuMDE4NzUsIDAuMDA2MjUsIC0wLjAwNjI1LCAtMC4wMjI1LCAtMC4wMzc1IiwgXAotICAgICAgICAgICIwLjA1MjUsIDAuMDQxMjUsIDAuMDI4NzUsIDAuMDE2MjUsIDAuMDAzNzUsIC0wLjAxMjUsIC0wLjAyNzUiLCBcCi0gICAgICAgICAgIjAuMDYxMjUsIDAuMDUsIDAuMDM3NSwgMC4wMjUsIDAuMDEyNSwgLTAuMDAzNzUsIC0wLjAxODc1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihRKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDEuMDI4OwotICAgIGZ1bmN0aW9uIDogIk4zMCI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3NlbnNlIDogbm9uX3VuYXRlOwotICAgICAgdGltaW5nX3R5cGUgOiByaXNpbmdfZWRnZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTM1ODksIDAuMTg1MTk3LCAwLjI1NjA3NiwgMC4zMDY2NDgsIDAuMzg3Njk0LCAwLjQ1ODU4MSwgMC41NTk4NDIiLCBcCi0gICAgICAgICAgIjAuMTIzNzE3LCAwLjE5NTMyNCwgMC4yNjYxOTgsIDAuMzE2ODA5LCAwLjM5NzgyLCAwLjQ2ODcwOCwgMC41Njk5NjgiLCBcCi0gICAgICAgICAgIjAuMTM2Njk4LCAwLjIwODE5NSwgMC4yNzkwODEsIDAuMzI5NzA0LCAwLjQxMDY5MiwgMC40ODE1OCwgMC41ODI4NjUiLCBcCi0gICAgICAgICAgIjAuMTQ5MTU4LCAwLjIyMDc3MiwgMC4yOTE2MzcsIDAuMzQyMjk3LCAwLjQyMzI3NiwgMC40OTQwOCwgMC41OTU0MTkiLCBcCi0gICAgICAgICAgIjAuMTYwOTU3LCAwLjIzMjU0NSwgMC4zMDM0MDgsIDAuMzU0MDU4LCAwLjQzNTA2OCwgMC41MDU5NTQsIDAuNjA3MjExIiwgXAotICAgICAgICAgICIwLjE3NzExNywgMC4yNDg3NDIsIDAuMzE5NjA5LCAwLjM3MDI1NiwgMC40NTEyNDcsIDAuNTIyMTI2LCAwLjYyMzQwMSIsIFwKLSAgICAgICAgICAiMC4xOTAyMjIsIDAuMjYxODM5LCAwLjMzMjcwNywgMC4zODMzNjksIDAuNDY0MzQ3LCAwLjUzNTI1OCwgMC42MzY0NzkiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzEwMTEsIDAuMTczOTUzLCAwLjMyMDEzMiwgMC40MjMzNjcsIDAuNTkyMDAxLCAwLjczNzQzLCAwLjk0NzE4IiwgXAotICAgICAgICAgICIwLjAzMTA1NSwgMC4xNzM5NDYsIDAuMzIwMTIzLCAwLjQyNDE2MSwgMC41OTE5OTksIDAuNzM3NDI5LCAwLjk0NzE0OCIsIFwKLSAgICAgICAgICAiMC4wMzEwNDcsIDAuMTczOTUxLCAwLjMyMDEzNSwgMC40MjQ3MzgsIDAuNTkwODg2LCAwLjczNzQ3NSwgMC45NDYzNTUiLCBcCi0gICAgICAgICAgIjAuMDMxMDI4LCAwLjE3Mzk1MywgMC4zMTk3MDgsIDAuNDI0NzQ5LCAwLjU5MjAxNywgMC43Mzc5ODIsIDAuOTQ2MzUiLCBcCi0gICAgICAgICAgIjAuMDMxMDUyLCAwLjE3Mzk1MSwgMC4zMTk3NTMsIDAuNDI0NzMzLCAwLjU5MDg4NywgMC43Mzc0MywgMC45NDYzNDMiLCBcCi0gICAgICAgICAgIjAuMDMxMDQ0LCAwLjE3Mzk1LCAwLjMyMDAzOSwgMC40MjQ3MTMsIDAuNTkxOTkyLCAwLjczODA3MywgMC45NDY0MDkiLCBcCi0gICAgICAgICAgIjAuMDMxMDc3LCAwLjE3Mzk1LCAwLjMxOTcyNywgMC40MjQ3MzIsIDAuNTkxOTc4LCAwLjczNzIyMywgMC45NDcxMDciKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMjgwNzcsIDAuMjAyMzE4LCAwLjI3NTY4NSwgMC4zMjgwODIsIDAuNDExOTEyLCAwLjQ4NTI2MiwgMC41ODk5OTciLCBcCi0gICAgICAgICAgIjAuMTM4Mjc2LCAwLjIxMjUxNSwgMC4yODU5MTEsIDAuMzM4MjczLCAwLjQyMjEwNSwgMC40OTU0MjcsIDAuNjAwMTk4IiwgXAotICAgICAgICAgICIwLjE1MTIyMiwgMC4yMjU0NjYsIDAuMjk4ODU1LCAwLjM1MTIzNCwgMC40MzUwODUsIDAuNTA4Mzk4LCAwLjYxMzE4IiwgXAotICAgICAgICAgICIwLjE2Mzg3LCAwLjIzODEwNiwgMC4zMTE1MDEsIDAuMzYzODczLCAwLjQ0NzY5NiwgMC41MjEwMjQsIDAuNjI1Nzg2IiwgXAotICAgICAgICAgICIwLjE3NTY2OCwgMC4yNDk5MDksIDAuMzIzMjc1LCAwLjM3NTY3MiwgMC40NTk1MDIsIDAuNTMyODU1LCAwLjYzNzY2NSIsIFwKLSAgICAgICAgICAiMC4xOTIxODYsIDAuMjY2NDM2LCAwLjMzOTgxNSwgMC4zOTIxOTQsIDAuNDc2MDE2LCAwLjU0OTM2OCwgMC42NTQxOTEiLCBcCi0gICAgICAgICAgIjAuMjA1MzE0LCAwLjI3OTU1OSwgMC4zNTI5NDgsIDAuNDA1MzI3LCAwLjQ4OTE1MiwgMC41NjI1MDYsIDAuNjY3MzEzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDMwOTEyLCAwLjE3NjUzMSwgMC4zMjU0MDcsIDAuNDMxNzQ4LCAwLjYwMDkzLCAwLjc0ODk0MiwgMC45NjI0OTUiLCBcCi0gICAgICAgICAgIjAuMDMwOTIxLCAwLjE3NjU2OCwgMC4zMjQ0MDMsIDAuNDMxNzE3LCAwLjYwMDgzNSwgMC43NTA4LCAwLjk2MTcxMyIsIFwKLSAgICAgICAgICAiMC4wMzA5MDgsIDAuMTc2NTk5LCAwLjMyNTQ5NywgMC40MzE3NjIsIDAuNjAyMDA0LCAwLjc0OTY5MiwgMC45NjE0NjUiLCBcCi0gICAgICAgICAgIjAuMDMwOTEzLCAwLjE3NjU1OSwgMC4zMjQ0NjUsIDAuNDMxNzQ2LCAwLjYwMDgzNCwgMC43NTA4NTEsIDAuOTYzNjEyIiwgXAotICAgICAgICAgICIwLjAzMDkwOSwgMC4xNzY1MjgsIDAuMzI1MDkzLCAwLjQzMTc0MSwgMC42MDA5MDYsIDAuNzQ5MDkxLCAwLjk2MDg0MiIsIFwKLSAgICAgICAgICAiMC4wMzA5MjEsIDAuMTc2NzkzLCAwLjMyNTQ5MSwgMC40MzE3NDMsIDAuNjAwNzI1LCAwLjc1MDA1NywgMC45NjE1NDgiLCBcCi0gICAgICAgICAgIjAuMDMwOTA2LCAwLjE3NjYxOCwgMC4zMjU1MDYsIDAuNDMxNzU5LCAwLjYwMTk4NywgMC43NDkwMzksIDAuOTYxMDc2Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEwNzMyLCAwLjAxMDgyLCAwLjAxMDgwMSwgMC4wMTA3OTMsIDAuMDEwNzgsIDAuMDEwNzcxLCAwLjAxMDc2NyIsIFwKLSAgICAgICAgICAiMC4wMTA3MDcsIDAuMDEwNzk0LCAwLjAxMDc3NSwgMC4wMTA3NjQsIDAuMDEwNzUzLCAwLjAxMDc0NywgMC4wMTA3NDEiLCBcCi0gICAgICAgICAgIjAuMDEwNjkzLCAwLjAxMDc4MiwgMC4wMTA3NjMsIDAuMDEwNzUzLCAwLjAxMDc0MiwgMC4wMTA3MzYsIDAuMDEwNzI5IiwgXAotICAgICAgICAgICIwLjAxMDY4NCwgMC4wMTA3NzcsIDAuMDEwNzU5LCAwLjAxMDc0OSwgMC4wMTA3MzcsIDAuMDEwNzMsIDAuMDEwNzIzIiwgXAotICAgICAgICAgICIwLjAxMDY4OSwgMC4wMTA3OCwgMC4wMTA3NjIsIDAuMDEwNzUzLCAwLjAxMDc0MSwgMC4wMTA3MzQsIDAuMDEwNzI2IiwgXAotICAgICAgICAgICIwLjAxMDcxNCwgMC4wMTA4MTIsIDAuMDEwNzk3LCAwLjAxMDc4OCwgMC4wMTA3NzYsIDAuMDEwNzY5LCAwLjAxMDc2MSIsIFwKLSAgICAgICAgICAiMC4wMTA3MjUsIDAuMDEwODIsIDAuMDEwODA1LCAwLjAxMDc5NSwgMC4wMTA3ODMsIDAuMDEwNzc1LCAwLjAxMDc2OSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDExMDE3LCAwLjAxMTIxNywgMC4wMTEyNDQsIDAuMDExMjUzLCAwLjAxMTI2LCAwLjAxMTI2NCwgMC4wMTEyNjciLCBcCi0gICAgICAgICAgIjAuMDEwOTk2LCAwLjAxMTE5MywgMC4wMTEyMTksIDAuMDExMjI4LCAwLjAxMTIzNSwgMC4wMTEyMzgsIDAuMDExMjQyIiwgXAotICAgICAgICAgICIwLjAxMDk4NiwgMC4wMTExODcsIDAuMDExMjE1LCAwLjAxMTIyNCwgMC4wMTEyMzEsIDAuMDExMjM0LCAwLjAxMTIzOCIsIFwKLSAgICAgICAgICAiMC4wMTEwMDYsIDAuMDExMjA0LCAwLjAxMTIzLCAwLjAxMTIzOCwgMC4wMTEyNDYsIDAuMDExMjQ5LCAwLjAxMTI1MyIsIFwKLSAgICAgICAgICAiMC4wMTEwMTcsIDAuMDExMjE3LCAwLjAxMTI0NCwgMC4wMTEyNTMsIDAuMDExMjYsIDAuMDExMjY0LCAwLjAxMTI2NyIsIFwKLSAgICAgICAgICAiMC4wMTEwODIsIDAuMDExMjc4LCAwLjAxMTMwNSwgMC4wMTEzMTMsIDAuMDExMzIsIDAuMDExMzI0LCAwLjAxMTMyNiIsIFwKLSAgICAgICAgICAiMC4wMTEwODgsIDAuMDExMjkxLCAwLjAxMTMxOSwgMC4wMTEzMjYsIDAuMDExMzM0LCAwLjAxMTMzOCwgMC4wMTEzNDEiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IE5PUjNYNCAqCi0gKiAtLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKE5PUjNYNCkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjQxMTU7Ci0gIHJhaWxfY29ubmVjdGlvbiggVkRELCBSQUlMX1ZERCApOwotICByYWlsX2Nvbm5lY3Rpb24oIFZTUywgUkFJTF9WU1MgKTsKLSAgcGluKEEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMzYwMjEzOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMzU3ODE1OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMzYwMjEzOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTQwNSwgMC4wMDE0ODYsIDAuMDAxNTE0LCAwLjAwMTUzMiwgMC4wMDE1NDQsIDAuMDAxNTUsIDAuMDAxNTY1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAyOTgsIDAuMDAyOTgyLCAwLjAwMjk4MiwgMC4wMDI5ODIsIDAuMDAyOTgyLCAwLjAwMjk4MiwgMC4wMDI5ODMiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEIpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMzQ4NjMxOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMzQ2NjA1OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMzQ4NjMxOwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMTQwMiwgMC4wMDE1MzgsIDAuMDAxNTYxLCAwLjAwMTU2NSwgMC4wMDE1NywgMC4wMDE1ODIsIDAuMDAxNTg3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAxNzIxLCAwLjAwMTcyMywgMC4wMDE3MjMsIDAuMDAxNzIzLCAwLjAwMTcyMywgMC4wMDE3MjQsIDAuMDAxNzI0Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihDKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDMyODYxNzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDMyODYxNzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDMyODU4ODsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA0MzYsIDAuMDAwNDM2LCAwLjAwMDQzNiwgMC4wMDA0MzYsIDAuMDAwNDM2LCAwLjAwMDQzNiwgMC4wMDA0MzYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDEzNiwgMC4wMDEzNiwgMC4wMDEzNjEsIDAuMDAxMzU5LCAwLjAwMTM2LCAwLjAwMTM1OSwgMC4wMDEzNTkiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4zODA2ODY7Ci0gICAgZnVuY3Rpb24gOiAiKCEoKEErQikrQykpIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1NTcwOSwgMC4yNTg5MDksIDAuNDYxNjkxLCAwLjYwNjIsIDAuODM4NDA3LCAxLjA0MDk1LCAxLjMzMTY3IiwgXAotICAgICAgICAgICIwLjA2Mzg1MiwgMC4yNjcxMDYsIDAuNDcwMTM2LCAwLjYxNDk0OCwgMC44NDY3ODIsIDEuMDQ5MTcsIDEuMzM5NjYiLCBcCi0gICAgICAgICAgIjAuMDcyNDY5LCAwLjI3NTg3NiwgMC40Nzg3MTcsIDAuNjIzOTMxLCAwLjg1NTY1OSwgMS4wNTg1MSwgMS4zNDg2MiIsIFwKLSAgICAgICAgICAiMC4wODA1NjgsIDAuMjg0MTMyLCAwLjQ4NzA1LCAwLjYzMTY5MSwgMC44NjQ0NjEsIDEuMDY2NywgMS4zNTYyNyIsIFwKLSAgICAgICAgICAiMC4wODc5OTksIDAuMjkxODg3LCAwLjQ5NTEwMSwgMC42Mzk3OTUsIDAuODcyMzk5LCAxLjA3NDM0LCAxLjM2NDgiLCBcCi0gICAgICAgICAgIjAuMDk4NjAzLCAwLjMwNDQzNywgMC41MDc1NSwgMC42NTI0NjcsIDAuODg0Njc3LCAxLjA4Njk4LCAxLjM3NjcyIiwgXAotICAgICAgICAgICIwLjEwNjg5OSwgMC4zMTUzODUsIDAuNTE4MzI5LCAwLjY2MzMzLCAwLjg5NTM0LCAxLjA5ODcyLCAxLjM4NzY4Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDkwMDYzLCAwLjQ5Njc4MiwgMC45MDQ2NDIsIDEuMTk0NzYsIDEuNjYxMDEsIDIuMDcwNzUsIDIuNjQ3MyIsIFwKLSAgICAgICAgICAiMC4wOTAwNTYsIDAuNDk3NzUxLCAwLjkwMzU0NiwgMS4xOTY5NCwgMS42NjMwOCwgMi4wNjc1OCwgMi42NTAxOCIsIFwKLSAgICAgICAgICAiMC4wOTEwNDcsIDAuNDk2NjA1LCAwLjkwNDk3OSwgMS4xOTcxNiwgMS42NjMxNSwgMi4wNzA5NiwgMi42NTAzNSIsIFwKLSAgICAgICAgICAiMC4wOTMyNCwgMC40OTY2NDgsIDAuOTA1NzA1LCAxLjE5NTEyLCAxLjY1OTE1LCAyLjA3MSwgMi42NDg0MSIsIFwKLSAgICAgICAgICAiMC4wOTYzMjUsIDAuNDk3NjU2LCAwLjkwNTc4MSwgMS4xOTQ3NSwgMS42NTkxOSwgMi4wNjkzLCAyLjY1MDI4IiwgXAotICAgICAgICAgICIwLjEwMjk3NiwgMC40OTkxNjgsIDAuOTA1NTc2LCAxLjE5NjgzLCAxLjY2MzMyLCAyLjA2NjYxLCAyLjY0ODYiLCBcCi0gICAgICAgICAgIjAuMTA5NDc4LCAwLjUwMDYyNCwgMC45MDUzOCwgMS4xOTQ2NiwgMS42NTk3LCAyLjA3MTIxLCAyLjY1MTM1Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDIyOTgzLCAwLjA5NzI1MSwgMC4xNzA2MDYsIDAuMjIyOTIsIDAuMzA2NTgsIDAuMzc5NzEzLCAwLjQ4NDQwNiIsIFwKLSAgICAgICAgICAiMC4wMzMxNzcsIDAuMTA3MzAyLCAwLjE4MDM4LCAwLjIzMjczLCAwLjMxNjQyMSwgMC4zODk1MzQsIDAuNDk0MDQ5IiwgXAotICAgICAgICAgICIwLjA0NjA4MSwgMC4xMjAzNSwgMC4xOTMzODIsIDAuMjQ1Njc5LCAwLjMyOTI5MSwgMC40MDE2MDEsIDAuNTA2MDY5IiwgXAotICAgICAgICAgICIwLjA1NjkyMywgMC4xMzI2MjIsIDAuMjA2MTY5LCAwLjI1ODQxNCwgMC4zNDE5MDIsIDAuNDE1MTY2LCAwLjUxOTYiLCBcCi0gICAgICAgICAgIjAuMDY2MTYxLCAwLjE0NTM4OSwgMC4yMTkwNzQsIDAuMjcxMjU1LCAwLjM1NDc3MywgMC40Mjc4MzUsIDAuNTMyMzgyIiwgXAotICAgICAgICAgICIwLjA3OTE2MiwgMC4xNjcxODUsIDAuMjM5MTksIDAuMjkxNDE5LCAwLjM3NTQyOSwgMC40NDg0ODksIDAuNTUyODExIiwgXAotICAgICAgICAgICIwLjA4OTY0NywgMC4xODUwMzksIDAuMjU4NDY0LCAwLjMxMDc3NywgMC4zOTM1NzksIDAuNDY3NTEzLCAwLjU3MjExMyIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzNjIzMywgMC4xODMxNTQsIDAuMzMwMjExLCAwLjQzNTI0NCwgMC42MDM2LCAwLjc1MDQxOSwgMC45NjA1ODkiLCBcCi0gICAgICAgICAgIjAuMDM4MTUsIDAuMTgzMTYxLCAwLjMzMDM4NywgMC40MzUzNDksIDAuNjAzMzE2LCAwLjc1MDMzOCwgMC45NjA0ODYiLCBcCi0gICAgICAgICAgIjAuMDQ1MDM4LCAwLjE4MzU5OCwgMC4zMzAzNzMsIDAuNDM1MzQsIDAuNjAzNTQ0LCAwLjc1MDM0NSwgMC45NjAzNjYiLCBcCi0gICAgICAgICAgIjAuMDUzOTE4LCAwLjE4Njc5NSwgMC4zMzA0NjQsIDAuNDM1MzQ0LCAwLjYwMzMzNiwgMC43NTA1MjEsIDAuOTYwMzY1IiwgXAotICAgICAgICAgICIwLjA2MzQyMywgMC4xOTE2MDYsIDAuMzMyMDg1LCAwLjQzNTUzNCwgMC42MDMyNzcsIDAuNzUwMzA1LCAwLjk2MDM3MSIsIFwKLSAgICAgICAgICAiMC4wNzcwNzEsIDAuMjAwMjU2LCAwLjMzNzk4MiwgMC40Mzg4NDcsIDAuNjAzODA0LCAwLjc1MDMxLCAwLjk2MDM1NCIsIFwKLSAgICAgICAgICAiMC4wODY2MzYsIDAuMjEwNTY4LCAwLjM0Mzg5NiwgMC40NDMyNzIsIDAuNjA2MzAzLCAwLjc1MDkzOSwgMC45NjA2MTQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTI1NDcsIDAuMjU1NjgzLCAwLjQ1ODQzNywgMC42MDMyMDEsIDAuODM1MDg4LCAxLjAzNzQ4LCAxLjMyODM2IiwgXAotICAgICAgICAgICIwLjA2MDc1LCAwLjI2NDAwNywgMC40NjcxNzcsIDAuNjExODMzLCAwLjg0MzgxLCAxLjA0NjU1LCAxLjMzNzEiLCBcCi0gICAgICAgICAgIjAuMDcwNjAxLCAwLjI3NDEwNiwgMC40NzcyMTMsIDAuNjIxNjg1LCAwLjg1MzczNiwgMS4wNTYwNCwgMS4zNDczIiwgXAotICAgICAgICAgICIwLjA4MDI0MSwgMC4yODM5NDEsIDAuNDg2ODQ1LCAwLjYzMTY0NCwgMC44NjMzNywgMS4wNjY5NSwgMS4zNTYyNiIsIFwKLSAgICAgICAgICAiMC4wODk0MTEsIDAuMjkzNjc5LCAwLjQ5NjkyNSwgMC42NDE1NCwgMC44NzMzNDMsIDEuMDc2NDQsIDEuMzY2NTMiLCBcCi0gICAgICAgICAgIjAuMTAyNjczLCAwLjMwOTQ0MiwgMC41MTI2MzYsIDAuNjU3ODQ2LCAwLjg4OTQ0NywgMS4wOTE5OCwgMS4zODE1OSIsIFwKLSAgICAgICAgICAiMC4xMTIyMzgsIDAuMzIzMjE3LCAwLjUyNjQwOCwgMC42NzE0ODMsIDAuOTAzMTk3LCAxLjEwNjI0LCAxLjM5NTkzIik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDkwMDIzLCAwLjQ5NjY5NiwgMC45MDU3MDQsIDEuMTk2ODUsIDEuNjYzMDYsIDIuMDY3NCwgMi42NDczNyIsIFwKLSAgICAgICAgICAiMC4wOTAxMTQsIDAuNDk3NzUxLCAwLjkwMzU3LCAxLjE5Mzk4LCAxLjY2MDk0LCAyLjA3MDksIDIuNjQ3MzEiLCBcCi0gICAgICAgICAgIjAuMDkyMTY3LCAwLjQ5NzkwMywgMC45MDM1ODMsIDEuMTk1MzYsIDEuNjYzMDksIDIuMDY3NTUsIDIuNjQ3MzYiLCBcCi0gICAgICAgICAgIjAuMDk2MDAzLCAwLjQ5NzkyMywgMC45MDU2NDcsIDEuMTk2NzksIDEuNjYwMDYsIDIuMDY2MDksIDIuNjQ3MTUiLCBcCi0gICAgICAgICAgIjAuMTAxMjQ1LCAwLjQ5Nzk4MSwgMC45MDM0MzEsIDEuMTk2MDYsIDEuNjU5OTYsIDIuMDcwODUsIDIuNjQ3NDMiLCBcCi0gICAgICAgICAgIjAuMTExNTAzLCAwLjQ5OTcxMywgMC45MDU2ODcsIDEuMTk0MTUsIDEuNjYyOTksIDIuMDY4MDUsIDIuNjUxMzYiLCBcCi0gICAgICAgICAgIjAuMTIxMjI0LCAwLjUwMjgxNCwgMC45MDUyNDMsIDEuMTk2OSwgMS42NiwgMi4wNzA2NCwgMi42NDgzMyIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAyMTIwOCwgMC4wOTM3ODgsIDAuMTY2MDg3LCAwLjIxNzY0LCAwLjMwMDI3NywgMC4zNzIzOTIsIDAuNDc1Nzk0IiwgXAotICAgICAgICAgICIwLjAzMTQxNCwgMC4xMDM5MzQsIDAuMTc2MjU1LCAwLjIyNzg1NywgMC4zMTAzOTMsIDAuMzgyNTM2LCAwLjQ4NTcwNiIsIFwKLSAgICAgICAgICAiMC4wNDM5NzEsIDAuMTE2NjI1LCAwLjE4OTAxNiwgMC4yNDA1ODMsIDAuMzIzNDE4LCAwLjM5NTU3NywgMC40OTc0ODIiLCBcCi0gICAgICAgICAgIjAuMDU0MzE3LCAwLjEyOTM4NSwgMC4yMDE2ODMsIDAuMjUzMTk3LCAwLjMzNTYxMiwgMC40MDc5NywgMC41MTA5MzQiLCBcCi0gICAgICAgICAgIjAuMDYyOTM0LCAwLjE0Mjc2MywgMC4yMTQ1OTIsIDAuMjY2MDcsIDAuMzQ4NDQ1LCAwLjQyMDU5OSwgMC41MjM2NzkiLCBcCi0gICAgICAgICAgIjAuMDc1MzQ0LCAwLjE2MzM0MywgMC4yMzU5NiwgMC4yODc0NTUsIDAuMzY5MDc3LCAwLjQ0MTA3NSwgMC41NDQyNSIsIFwKLSAgICAgICAgICAiMC4wODQ1MDYsIDAuMTgxODEsIDAuMjU0MDYyLCAwLjMwNDA1OSwgMC4zODgxMzksIDAuNDYwMzA4LCAwLjU2MzQ2MiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzMjkwNSwgMC4xNzgwMTMsIDAuMzIzMjUxLCAwLjQyNjk5NCwgMC41OTI4MjUsIDAuNzM4MDcyLCAwLjk0NTQyMiIsIFwKLSAgICAgICAgICAiMC4wMzUxNzYsIDAuMTc4MDM2LCAwLjMyMzE0OSwgMC40MjY3OTksIDAuNTkyNjIzLCAwLjczNzc5NSwgMC45NDUwNzEiLCBcCi0gICAgICAgICAgIjAuMDQyNTE3LCAwLjE3ODYwNywgMC4zMjMyLCAwLjQyNjkwMiwgMC41OTI3LCAwLjczODA5NywgMC45NDUwMjUiLCBcCi0gICAgICAgICAgIjAuMDUxNzM4LCAwLjE4MTg0NywgMC4zMjMzNjIsIDAuNDI2Nzc4LCAwLjU5MjYwOSwgMC43Mzc4NTgsIDAuOTQ1MDA4IiwgXAotICAgICAgICAgICIwLjA2MDkyMywgMC4xODYzOSwgMC4zMjUyNzUsIDAuNDI3MTYzLCAwLjU5MjYxNywgMC43MzgwNzYsIDAuOTQ1MDY5IiwgXAotICAgICAgICAgICIwLjA3Mzc5NywgMC4xOTY0MTQsIDAuMzMwNTY0LCAwLjQzMDQyNSwgMC41OTMyNjgsIDAuNzM3NjgyLCAwLjk0NTE5MyIsIFwKLSAgICAgICAgICAiMC4wODQ3MywgMC4yMDY1NywgMC4zMzcyMjUsIDAuNDM1OTAyLCAwLjU5NTUzOCwgMC43Mzg0NzQsIDAuOTQ1MDYiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDUzOTIsIDAuMjQ4NDE4LCAwLjQ1MTYyMiwgMC41OTYxMDgsIDAuODI4MzA5LCAxLjAzMDc2LCAxLjMyMTUzIiwgXAotICAgICAgICAgICIwLjA1MzQ1MywgMC4yNTY5MDEsIDAuNDU5NzQ3LCAwLjYwNTAzNCwgMC44MzY1NDEsIDEuMDM5NzMsIDEuMzI4ODciLCBcCi0gICAgICAgICAgIjAuMDY0MDQ4LCAwLjI2NzQxOCwgMC40NzA1NTksIDAuNjE0OTQsIDAuODQ2OTY3LCAxLjA1MDMsIDEuMzM5NDciLCBcCi0gICAgICAgICAgIjAuMDc0ODYzLCAwLjI3ODM4LCAwLjQ4MTE5MywgMC42MjYyMjIsIDAuODU3OTg5LCAxLjA2MTcyLCAxLjM1MDMzIiwgXAotICAgICAgICAgICIwLjA4NTQ3NiwgMC4yODg3NjYsIDAuNDkxODIxLCAwLjYzNjgyMywgMC44Njg3NDEsIDEuMDcxNCwgMS4zNjA5MyIsIFwKLSAgICAgICAgICAiMC4wOTg5ODksIDAuMzA2MTk4LCAwLjUwOTAxNiwgMC42NTQwMjIsIDAuODg1OTQ3LCAxLjA4ODg1LCAxLjM3ODM3IiwgXAotICAgICAgICAgICIwLjEwOTY2OSwgMC4zMjEzNzMsIDAuNTI0MTQ0LCAwLjY2OTM2LCAwLjkwMDgzLCAxLjEwMzU4LCAxLjM5MzciKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wODk5MTIsIDAuNDk3NzUxLCAwLjkwMzU3OSwgMS4xOTY4MywgMS42NTg5MywgMi4wNzA3OCwgMi42NDcyOSIsIFwKLSAgICAgICAgICAiMC4wODk4ODYsIDAuNDk3NzYzLCAwLjkwMzg2OCwgMS4xOTQxMywgMS42NTk4NywgMi4wNjgzOCwgMi42NTMwNCIsIFwKLSAgICAgICAgICAiMC4wOTQzNjIsIDAuNDk3MDU0LCAwLjkwNTczMSwgMS4xOTQ4NywgMS42NjAxMywgMi4wNjgyNCwgMi42NDg1IiwgXAotICAgICAgICAgICIwLjEwMDQ3OSwgMC40OTc0NTEsIDAuOTA0ODc3LCAxLjE5NjA5LCAxLjY2MTc5LCAyLjA2NjA4LCAyLjY0OTI0IiwgXAotICAgICAgICAgICIwLjEwOTMwNywgMC40OTc1NzcsIDAuOTA1NTYxLCAxLjE5NDA5LCAxLjY2MzA5LCAyLjA2NjkxLCAyLjY1Mjk3IiwgXAotICAgICAgICAgICIwLjEyMzQyNSwgMC41MDA0OSwgMC45MDQ5MzEsIDEuMTk2NzUsIDEuNjYyOTQsIDIuMDcwODIsIDIuNjQ4MTUiLCBcCi0gICAgICAgICAgIjAuMTM1OTQzLCAwLjUwNTM2OSwgMC45MDUxMjYsIDEuMTk3MDgsIDEuNjYxNzMsIDIuMDY2NzQsIDIuNjQ4NDYiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTg5MjgsIDAuMDkxNDU1LCAwLjE2MzkzOSwgMC4yMTU3LCAwLjI5ODQyNywgMC4zNzA5MDksIDAuNDc0NjU0IiwgXAotICAgICAgICAgICIwLjAyOTIyMiwgMC4xMDE3MjYsIDAuMTc0MjA4LCAwLjIyNTkzMiwgMC4zMDg3MTMsIDAuMzgxMTA5LCAwLjQ4NDc0NyIsIFwKLSAgICAgICAgICAiMC4wNDEyNjEsIDAuMTE0NzM3LCAwLjE4NzIyMSwgMC4yMzg5MjcsIDAuMzIxNzQ5LCAwLjM5NDIxNSwgMC40OTY4MjgiLCBcCi0gICAgICAgICAgIjAuMDUwNTI5LCAwLjEyNzEzMywgMC4xOTk2MDQsIDAuMjUxNDY0LCAwLjMzNDE4MSwgMC40MDY2NSwgMC41MDkxNzgiLCBcCi0gICAgICAgICAgIjAuMDU4ODM1LCAwLjE0MDQ3NCwgMC4yMTMwNDcsIDAuMjY0ODI5LCAwLjM0NzYxNSwgMC40MjAxNCwgMC41MjM1OCIsIFwKLSAgICAgICAgICAiMC4wNjk2NTksIDAuMTYxNTUxLCAwLjIzMjczLCAwLjI4NDM4OSwgMC4zNjc2MSwgMC40NDAxMTMsIDAuNTQzMzU2IiwgXAotICAgICAgICAgICIwLjA3ODE3MSwgMC4xNzk5NDEsIDAuMjUxOTc1LCAwLjMwMzY0OCwgMC4zODY0NDksIDAuNDU3NzU1LCAwLjU2MTIzIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDMwMzY1LCAwLjE3NzQ4MiwgMC4zMjM4ODcsIDAuNDI4NjU3LCAwLjU5NjA3NiwgMC43NDQ2NTcsIDAuOTUyNzA1IiwgXAotICAgICAgICAgICIwLjAzMzAyOCwgMC4xNzc0NTksIDAuMzIzNjM0LCAwLjQyOTU1NywgMC41OTc1MTgsIDAuNzQ0NTY3LCAwLjk1MjgiLCBcCi0gICAgICAgICAgIjAuMDQwOTcxLCAwLjE3NzczMywgMC4zMjQ1MjcsIDAuNDI5NDYsIDAuNTk3NDM4LCAwLjc0MjUyOCwgMC45NTI3NzIiLCBcCi0gICAgICAgICAgIjAuMDUwODQ1LCAwLjE4MTI5NywgMC4zMjQxMzksIDAuNDI4ODI0LCAwLjU5NjAxNywgMC43NDM1NzcsIDAuOTUyNDIyIiwgXAotICAgICAgICAgICIwLjA1OTUwNCwgMC4xODU4MzksIDAuMzI1NjY0LCAwLjQyODY4OSwgMC41OTc3MDksIDAuNzQzMTIsIDAuOTUyNTk1IiwgXAotICAgICAgICAgICIwLjA3Mzc5OCwgMC4xOTUyNzIsIDAuMzMxODk4LCAwLjQzMjY5NiwgMC41OTgyOTcsIDAuNzQyODY3LCAwLjk1Mjg4NSIsIFwKLSAgICAgICAgICAiMC4wODQ1MSwgMC4yMDUzODYsIDAuMzM4MjUsIDAuNDM3ODIsIDAuNjAwNjMsIDAuNzQ1NTc1LCAwLjk1NDg3MyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDEwMTUyLCAwLjAxMDE4OCwgMC4wMTAxOTIsIDAuMDEwMTkyLCAwLjAxMDE5NCwgMC4wMTAxOTQsIDAuMDEwMTkxIiwgXAotICAgICAgICAgICIwLjAxMDA0MiwgMC4wMTAxNTYsIDAuMDEwMTc0LCAwLjAxMDE4MSwgMC4wMTAxODUsIDAuMDEwMTg3LCAwLjAxMDE4OSIsIFwKLSAgICAgICAgICAiMC4wMDk5ODIsIDAuMDEwMTIyLCAwLjAxMDE1NSwgMC4wMTAxNjMsIDAuMDEwMTcyLCAwLjAxMDE3NiwgMC4wMTAxODEiLCBcCi0gICAgICAgICAgIjAuMDA5OTU0LCAwLjAxMDA5NSwgMC4wMTAxMzQsIDAuMDEwMTQ3LCAwLjAxMDE2LCAwLjAxMDE2NiwgMC4wMTAxNzMiLCBcCi0gICAgICAgICAgIjAuMDA5OTM5LCAwLjAxMDA3NSwgMC4wMTAxMTMsIDAuMDEwMTMsIDAuMDEwMTUxLCAwLjAxMDE1OSwgMC4wMTAxNzEiLCBcCi0gICAgICAgICAgIjAuMDA5OTI0LCAwLjAxMDA0OCwgMC4wMTAwOTMsIDAuMDEwMTE3LCAwLjAxMDEzOCwgMC4wMTAxNDYsIDAuMDEwMTU4IiwgXAotICAgICAgICAgICIwLjAwOTkzNSwgMC4wMTAwMzMsIDAuMDEwMDgyLCAwLjAxMDA5MSwgMC4wMTAxMjUsIDAuMDEwMTM0LCAwLjAxMDE0NCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyNzEsIDAuMDAyNzE1LCAwLjAwMjcxNSwgMC4wMDI3MTUsIDAuMDAyNzE1LCAwLjAwMjcxMywgMC4wMDI3MTUiLCBcCi0gICAgICAgICAgIjAuMDAyNTc0LCAwLjAwMjYwOSwgMC4wMDI2MDcsIDAuMDAyNjA4LCAwLjAwMjYxLCAwLjAwMjYxLCAwLjAwMjYxIiwgXAotICAgICAgICAgICIwLjAwMjU0LCAwLjAwMjU5MiwgMC4wMDI1OTYsIDAuMDAyNTk2LCAwLjAwMjYsIDAuMDAyNTg4LCAwLjAwMjU4OSIsIFwKLSAgICAgICAgICAiMC4wMDI1NDgsIDAuMDAyNTg3LCAwLjAwMjU5NiwgMC4wMDI1OTYsIDAuMDAyNTk4LCAwLjAwMjU5OSwgMC4wMDI1OTkiLCBcCi0gICAgICAgICAgIjAuMDAyNjIyLCAwLjAwMjU5MywgMC4wMDI2MDEsIDAuMDAyNiwgMC4wMDI1OTcsIDAuMDAyNTk3LCAwLjAwMjU5OCIsIFwKLSAgICAgICAgICAiMC4wMDI3MTcsIDAuMDAyNjE4LCAwLjAwMjYwNiwgMC4wMDI2MDQsIDAuMDAyNjA2LCAwLjAwMjYwNCwgMC4wMDI2IiwgXAotICAgICAgICAgICIwLjAwMjcxNiwgMC4wMDI2NjQsIDAuMDAyNjQ1LCAwLjAwMjYzNSwgMC4wMDI2MTksIDAuMDAyNjIzLCAwLjAwMjYxOCIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA4ODEzLCAwLjAwODg0OSwgMC4wMDg4NTQsIDAuMDA4ODU0LCAwLjAwODg1NywgMC4wMDg4NTYsIDAuMDA4ODU3IiwgXAotICAgICAgICAgICIwLjAwODcwNCwgMC4wMDg4MTcsIDAuMDA4ODM0LCAwLjAwODgzOCwgMC4wMDg4NDUsIDAuMDA4ODQ4LCAwLjAwODg0OSIsIFwKLSAgICAgICAgICAiMC4wMDg2NDYsIDAuMDA4Nzc5LCAwLjAwODgxLCAwLjAwODgyMywgMC4wMDg4MzIsIDAuMDA4ODM3LCAwLjAwODg0IiwgXAotICAgICAgICAgICIwLjAwODYyLCAwLjAwODc1OCwgMC4wMDg3OTYsIDAuMDA4ODAzLCAwLjAwODgxNiwgMC4wMDg4MjgsIDAuMDA4ODM0IiwgXAotICAgICAgICAgICIwLjAwODYwOSwgMC4wMDg3MzcsIDAuMDA4NzgxLCAwLjAwODc5NiwgMC4wMDg4MTEsIDAuMDA4ODIsIDAuMDA4ODI3IiwgXAotICAgICAgICAgICIwLjAwODYxMywgMC4wMDg3MTUsIDAuMDA4NzYxLCAwLjAwODc3OSwgMC4wMDg3OTgsIDAuMDA4ODA4LCAwLjAwODgxOSIsIFwKLSAgICAgICAgICAiMC4wMDg2MjIsIDAuMDA4NzA1LCAwLjAwODc1MywgMC4wMDg3NjksIDAuMDA4Nzg4LCAwLjAwODc5OSwgMC4wMDg4MDkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTUyOSwgMC4wMDE1NDgsIDAuMDAxNTUsIDAuMDAxNTUsIDAuMDAxNTUsIDAuMDAxNTUxLCAwLjAwMTU1MSIsIFwKLSAgICAgICAgICAiMC4wMDE0MTYsIDAuMDAxNTE4LCAwLjAwMTUzMywgMC4wMDE1MzcsIDAuMDAxNTQxLCAwLjAwMTU0MywgMC4wMDE1NDUiLCBcCi0gICAgICAgICAgIjAuMDAxMzQ4LCAwLjAwMTQ5MSwgMC4wMDE1MTgsIDAuMDAxNTI2LCAwLjAwMTUzNCwgMC4wMDE1MzcsIDAuMDAxNTM4IiwgXAotICAgICAgICAgICIwLjAwMTMzNywgMC4wMDE0NzIsIDAuMDAxNTE3LCAwLjAwMTUyMywgMC4wMDE1MzIsIDAuMDAxNTM1LCAwLjAwMTUzOSIsIFwKLSAgICAgICAgICAiMC4wMDEzNTksIDAuMDAxNDcxLCAwLjAwMTUxNSwgMC4wMDE1MjMsIDAuMDAxNTMsIDAuMDAxNTMzLCAwLjAwMTUzNyIsIFwKLSAgICAgICAgICAiMC4wMDEzOCwgMC4wMDE1MTEsIDAuMDAxNTEsIDAuMDAxNTE5LCAwLjAwMTUzNCwgMC4wMDE1NCwgMC4wMDE1MzkiLCBcCi0gICAgICAgICAgIjAuMDAxNDY2LCAwLjAwMTU0NCwgMC4wMDE1MzYsIDAuMDAxNTM3LCAwLjAwMTU0LCAwLjAwMTU0MywgMC4wMDE1NDQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNzM5NCwgMC4wMDc0NDcsIDAuMDA3NDU1LCAwLjAwNzQ1NiwgMC4wMDc0NTMsIDAuMDA3NDU4LCAwLjAwNzQ1OSIsIFwKLSAgICAgICAgICAiMC4wMDcyMzgsIDAuMDA3NCwgMC4wMDc0MjIsIDAuMDA3NDM1LCAwLjAwNzQzOSwgMC4wMDc0NDQsIDAuMDA3NDQ3IiwgXAotICAgICAgICAgICIwLjAwNzE5NCwgMC4wMDczNTksIDAuMDA3Mzk4LCAwLjAwNzQxMywgMC4wMDc0MjMsIDAuMDA3NDMxLCAwLjAwNzQzNCIsIFwKLSAgICAgICAgICAiMC4wMDcxNjgsIDAuMDA3MzM0LCAwLjAwNzM4LCAwLjAwNzM5NCwgMC4wMDc0MTIsIDAuMDA3NDIsIDAuMDA3NDI4IiwgXAotICAgICAgICAgICIwLjAwNzI1OSwgMC4wMDczMjEsIDAuMDA3MzY1LCAwLjAwNzM4MiwgMC4wMDc0MDIsIDAuMDA3NDExLCAwLjAwNzQyIiwgXAotICAgICAgICAgICIwLjAwNzM1NiwgMC4wMDczMTUsIDAuMDA3MzU2LCAwLjAwNzM3MSwgMC4wMDczOTEsIDAuMDA3NDAxLCAwLjAwNzQxMiIsIFwKLSAgICAgICAgICAiMC4wMDc0NTksIDAuMDA3MzMxLCAwLjAwNzM1OCwgMC4wMDczNzEsIDAuMDA3MzkyLCAwLjAwNzM5OCwgMC4wMDc0MDkiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDE1NywgMC4wMDAyMjgsIDAuMDAwMjM1LCAwLjAwMDIzNywgMC4wMDAyMzksIDAuMDAwMjQsIDAuMDAwMjQxIiwgXAotICAgICAgICAgICIwLjAwMDA1MiwgMC4wMDAyNzEsIDAuMDAwMywgMC4wMDAzMDgsIDAuMDAwMzE2LCAwLjAwMDMyLCAwLjAwMDMyNCIsIFwKLSAgICAgICAgICAiMC4wMDAwMzYsIDAuMDAwMjQsIDAuMDAwMjg1LCAwLjAwMDMsIDAuMDAwMzEzLCAwLjAwMDMxOSwgMC4wMDAzMzgiLCBcCi0gICAgICAgICAgIjAuMDAwMDMsIDAuMDAwMjE1LCAwLjAwMDI3NiwgMC4wMDAyOSwgMC4wMDAzMTEsIDAuMDAwMzIsIDAuMDAwMzM3IiwgXAotICAgICAgICAgICIwLjAwMDA2MSwgMC4wMDAyLCAwLjAwMDI1NiwgMC4wMDAyNzgsIDAuMDAwMjk4LCAwLjAwMDMwOSwgMC4wMDAzMTkiLCBcCi0gICAgICAgICAgIjAuMDAwMDcxLCAwLjAwMDE5OCwgMC4wMDAyNiwgMC4wMDAyODIsIDAuMDAwMzAzLCAwLjAwMDMxMywgMC4wMDAzMjMiLCBcCi0gICAgICAgICAgIjAuMDAwMTI0LCAwLjAwMDE3NywgMC4wMDAyMzksIDAuMDAwMjg5LCAwLjAwMDMwNSwgMC4wMDAyOTgsIDAuMDAwMzExIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qIC0tLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IEVERkZUUlgyICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0tICovCi1jZWxsIChFREZGVFJYMikgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjU4ODczNzsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBmZiAoTjMwLFFCSU5UKSB7Ci0gICAgbmV4dF9zdGF0ZSA6ICIoKCghKCghRCkgRSkpICghKCghRSkgKCFOMzApKSkpIFJOKSI7Ci0gICAgY2xvY2tlZF9vbiA6ICJDSyI7Ci0gIH0KLSAgcGluKENLKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2MjI5Nzc7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjIyNTQ7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjIyOTc3OwotICAgIGNsb2NrIDogdHJ1ZTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDI5MjcsIDAuMDAyOTAxLCAwLjAwMjg4NywgMC4wMDI4ODksIDAuMDAyOTAxLCAwLjAwMjkxOSwgMC4wMDI5NDIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDY2OSwgMC4wMDY2NjksIDAuMDA2NjU4LCAwLjAwNjY2LCAwLjAwNjY2NSwgMC4wMDY2ODgsIDAuMDA2NzA0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogbWluX3B1bHNlX3dpZHRoOwotICAgICAgd2hlbiA6ICIhRCYhRSYhUk4iOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX0VfRVFfMF9BTl9STl9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMTYzNzY4LCAwLjE3NDAwMSwgMC4xODY3MTQsIDAuMTk5MDc5LCAwLjIxMDMwMiwgMC4yMjU3NjMsIDAuMjM3NzgiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjEwNjAwNiwgMC4xMTU3ODYsIDAuMTI4NDE1LCAwLjE0MDEsIDAuMTUwMzQ0LCAwLjE2NDQ5NSwgMC4xNzUxNTQiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKEQpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDYxNDMyODsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2MTQzMjg7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjE0Mjg4OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNTI5OCwgMC4wMDUyNjUsIDAuMDA1MjU2LCAwLjAwNTI2MiwgMC4wMDUyNjksIDAuMDA1MjkyLCAwLjAwNTMxMyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNDk1NSwgMC4wMDQ5MzEsIDAuMDA0OTI0LCAwLjAwNDkyOCwgMC4wMDQ5MzYsIDAuMDA0OTYyLCAwLjAwNDk4MiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJFJlJOIjsKLSAgICAgIHNkZl9jb25kIDogIkVfRVFfMV9BTl9STl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjA4MTI1LCAtMC4wNzYyNSwgLTAuMDYzNzUsIC0wLjA1NzUsIC0wLjA1MTI1LCAtMC4wNDc1LCAtMC4wMzg3NSIsIFwKLSAgICAgICAgICAiLTAuMDkyNSwgLTAuMDgxMjUsIC0wLjA3NSwgLTAuMDY4NzUsIC0wLjA2MjUsIC0wLjA1MjUsIC0wLjA1IiwgXAotICAgICAgICAgICItMC4xMDUsIC0wLjA5Mzc1LCAtMC4wODc1LCAtMC4wODEyNSwgLTAuMDc1LCAtMC4wNjUsIC0wLjA2MjUiLCBcCi0gICAgICAgICAgIi0wLjExMTI1LCAtMC4xMDYyNSwgLTAuMDkzNzUsIC0wLjA4NzUsIC0wLjA4MTI1LCAtMC4wNzc1LCAtMC4wNjg3NSIsIFwKLSAgICAgICAgICAiLTAuMTE3NSwgLTAuMTEyNSwgLTAuMSwgLTAuMDkzNzUsIC0wLjA4NzUsIC0wLjA4Mzc1LCAtMC4wNzUiLCBcCi0gICAgICAgICAgIi0wLjEyNzUsIC0wLjEyMjUsIC0wLjExLCAtMC4xMDM3NSwgLTAuMTAzNzUsIC0wLjA5Mzc1LCAtMC4wODUiLCBcCi0gICAgICAgICAgIi0wLjEzNjI1LCAtMC4xMzEyNSwgLTAuMTE4NzUsIC0wLjExMjUsIC0wLjEwNjI1LCAtMC4xMDI1LCAtMC4wOTM3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjAzMTI1LCAtMC4wMjYyNSwgLTAuMDEzNzUsIC0wLjAwMTI1LCAwLjAxMTI1LCAwLjAyMTI1LCAwLjAzNjI1IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIDAsIDAuMDE2MjUsIDAuMDI1IiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA0Mzc1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIDAuMDAzNzUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDYxMjUsIC0wLjA1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIC0wLjAwMjUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA2NzUsIC0wLjA2MjUsIC0wLjA1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAwODc1LCAwIiwgXAotICAgICAgICAgICItMC4wNzc1LCAtMC4wNjYyNSwgLTAuMDUzNzUsIC0wLjA0NzUsIC0wLjAzNSwgLTAuMDE4NzUsIC0wLjAxIiwgXAotICAgICAgICAgICItMC4wODYyNSwgLTAuMDc1LCAtMC4wNjI1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjAyNzUsIC0wLjAxODc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJFJlJOIjsKLSAgICAgIHNkZl9jb25kIDogIkVfRVFfMV9BTl9STl9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEyNSwgMC4xMTM3NSwgMC4xMDEyNSwgMC4wOTUsIDAuMDg4NzUsIDAuMDc4NzUsIDAuMDc2MjUiLCBcCi0gICAgICAgICAgIjAuMTM2MjUsIDAuMTI1LCAwLjExMjUsIDAuMTA2MjUsIDAuMSwgMC4wOSwgMC4wODEyNSIsIFwKLSAgICAgICAgICAiMC4xNDI1LCAwLjEzMTI1LCAwLjEyNSwgMC4xMTg3NSwgMC4xMTI1LCAwLjEwMjUsIDAuMDkzNzUiLCBcCi0gICAgICAgICAgIjAuMTU1LCAwLjE0Mzc1LCAwLjEzMTI1LCAwLjEyNSwgMC4xMTg3NSwgMC4xMDg3NSwgMC4xIiwgXAotICAgICAgICAgICIwLjE2MTI1LCAwLjE1LCAwLjEzNzUsIDAuMTMxMjUsIDAuMTI1LCAwLjExNSwgMC4xMTI1IiwgXAotICAgICAgICAgICIwLjE3MTI1LCAwLjE2LCAwLjE0NzUsIDAuMTQxMjUsIDAuMTM1LCAwLjEyNSwgMC4xMjI1IiwgXAotICAgICAgICAgICIwLjE4LCAwLjE2ODc1LCAwLjE1NjI1LCAwLjE1LCAwLjE0Mzc1LCAwLjEzMzc1LCAwLjEyNSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA3NSwgMC4wNjM3NSwgMC4wNTEyNSwgMC4wMzg3NSwgMC4wMjYyNSwgMC4wMSwgMC4wMDEyNSIsIFwKLSAgICAgICAgICAiMC4wODYyNSwgMC4wNzUsIDAuMDYyNSwgMC4wNSwgMC4wMzc1LCAwLjAyMTI1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICIwLjA5MjUsIDAuMDgxMjUsIDAuMDY4NzUsIDAuMDU2MjUsIDAuMDQzNzUsIDAuMDI3NSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4xMDUsIDAuMDkzNzUsIDAuMDgxMjUsIDAuMDY4NzUsIDAuMDU2MjUsIDAuMDQsIDAuMDI1IiwgXAotICAgICAgICAgICIwLjExMTI1LCAwLjEsIDAuMDg3NSwgMC4wNzUsIDAuMDYyNSwgMC4wNDYyNSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4xMjEyNSwgMC4xMSwgMC4wOTc1LCAwLjA3ODc1LCAwLjA3MjUsIDAuMDU2MjUsIDAuMDQxMjUiLCBcCi0gICAgICAgICAgIjAuMTIzNzUsIDAuMTEyNSwgMC4xLCAwLjA4NzUsIDAuMDc1LCAwLjA1ODc1LCAwLjA1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihFKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDEzMDg2NzsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDEzMDg2NzsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDEzMDc4NjsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDU3NjcsIDAuMDA1NzQ0LCAwLjAwNTczNywgMC4wMDU3NDYsIDAuMDA1NzU3LCAwLjAwNTc4LCAwLjAwNTgwMyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNjc0OCwgMC4wMDY3MTMsIDAuMDA2NzA2LCAwLjAwNjcxMywgMC4wMDY3MjUsIDAuMDA2NzY0LCAwLjAwNjc5OCIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJSTiI7Ci0gICAgICBzZGZfY29uZCA6ICJSTiA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wNDM3NSwgLTAuMDMyNSwgLTAuMDIsIC0wLjAwNzUsIDAuMDA1LCAwLjAxNSwgMC4wMyIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNDM3NSwgLTAuMDMxMjUsIC0wLjAxODc1LCAtMC4wMDYyNSwgMC4wMSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDYxMjUsIC0wLjA1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMDI1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wNzM3NSwgLTAuMDYyNSwgLTAuMDUsIC0wLjAzNzUsIC0wLjAyNSwgLTAuMDE1LCAwIiwgXAotICAgICAgICAgICItMC4wOCwgLTAuMDc1LCAtMC4wNjI1LCAtMC4wNSwgLTAuMDM3NSwgLTAuMDIxMjUsIC0wLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjA5NjI1LCAtMC4wODUsIC0wLjA3MjUsIC0wLjA2LCAtMC4wNDc1LCAtMC4wMzc1LCAtMC4wMjI1IiwgXAotICAgICAgICAgICItMC4xMDUsIC0wLjA5Mzc1LCAtMC4wODEyNSwgLTAuMDY4NzUsIC0wLjA2MjUsIC0wLjA0NjI1LCAtMC4wMzc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDUsIC0wLjAzODc1LCAtMC4wMjYyNSwgLTAuMDEzNzUsIC0wLjAwMTI1LCAwLjAwODc1LCAwLjAyMzc1IiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAxMjUsIDAuMDAzNzUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDY3NSwgLTAuMDU2MjUsIC0wLjA0Mzc1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMDg3NSwgMCIsIFwKLSAgICAgICAgICAiLTAuMDczNzUsIC0wLjA2ODc1LCAtMC4wNTYyNSwgLTAuMDQzNzUsIC0wLjAzMTI1LCAtMC4wMjEyNSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA4LCAtMC4wNzUsIC0wLjA2MjUsIC0wLjA1LCAtMC4wMzc1LCAtMC4wMjc1LCAtMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wOSwgLTAuMDg1LCAtMC4wNzI1LCAtMC4wNiwgLTAuMDQ3NSwgLTAuMDM3NSwgLTAuMDIyNSIsIFwKLSAgICAgICAgICAiLTAuMDk4NzUsIC0wLjA4NzUsIC0wLjA3NSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA0LCAtMC4wMzEyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiUk4iOwotICAgICAgc2RmX2NvbmQgOiAiUk4gPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTQzNzUsIDAuMTMyNSwgMC4xMjYyNSwgMC4xMTM3NSwgMC4xMDc1LCAwLjA5NzUsIDAuMDk1IiwgXAotICAgICAgICAgICIwLjE1NSwgMC4xNDM3NSwgMC4xMzEyNSwgMC4xMjUsIDAuMTE4NzUsIDAuMTA4NzUsIDAuMTA2MjUiLCBcCi0gICAgICAgICAgIjAuMTY3NSwgMC4xNTYyNSwgMC4xNDM3NSwgMC4xMzc1LCAwLjEzMTI1LCAwLjEyMTI1LCAwLjExMjUiLCBcCi0gICAgICAgICAgIjAuMTczNzUsIDAuMTYyNSwgMC4xNTYyNSwgMC4xNDM3NSwgMC4xMzc1LCAwLjEzMzc1LCAwLjEyNSIsIFwKLSAgICAgICAgICAiMC4xOCwgMC4xNjg3NSwgMC4xNjI1LCAwLjE1NjI1LCAwLjE1LCAwLjE0LCAwLjEzMTI1IiwgXAotICAgICAgICAgICIwLjE5LCAwLjE4NSwgMC4xNzI1LCAwLjE2NjI1LCAwLjE2LCAwLjE1LCAwLjE0MTI1IiwgXAotICAgICAgICAgICIwLjE5ODc1LCAwLjE4NzUsIDAuMTgxMjUsIDAuMTc1LCAwLjE2ODc1LCAwLjE1ODc1LCAwLjE1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDg3NSwgMC4wNzYyNSwgMC4wNywgMC4wNjM3NSwgMC4wNTc1LCAwLjA0NzUsIDAuMDQ1IiwgXAotICAgICAgICAgICIwLjA5MjUsIDAuMDg3NSwgMC4wNzUsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNTg3NSwgMC4wNSIsIFwKLSAgICAgICAgICAiMC4xMDUsIDAuMSwgMC4wODc1LCAwLjA4MTI1LCAwLjA3NSwgMC4wNjUsIDAuMDYyNSIsIFwKLSAgICAgICAgICAiMC4xMTc1LCAwLjEwNjI1LCAwLjEsIDAuMDkzNzUsIDAuMDg3NSwgMC4wNzc1LCAwLjA3NSIsIFwKLSAgICAgICAgICAiMC4xMywgMC4xMTg3NSwgMC4xMTI1LCAwLjEwNjI1LCAwLjEsIDAuMDksIDAuMDgxMjUiLCBcCi0gICAgICAgICAgIjAuMTQ2MjUsIDAuMTM1LCAwLjEyODc1LCAwLjEyMjUsIDAuMTE2MjUsIDAuMTA2MjUsIDAuMDk3NSIsIFwKLSAgICAgICAgICAiMC4xNTUsIDAuMTUsIDAuMTM3NSwgMC4xMzEyNSwgMC4xMjUsIDAuMTE1LCAwLjExMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFEpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC41MjY1OTI7Ci0gICAgZnVuY3Rpb24gOiAiTjMwIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBub25fdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJpc2luZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMjk2ODIsIDAuMjMzNjg1LCAwLjMxNTk1MSwgMC40MTkyMDgsIDAuNTIxODQ1LCAwLjYyNDczNCwgMC43Mjc4MDIiLCBcCi0gICAgICAgICAgIjAuMTM5ODQ2LCAwLjI0Mzk0NSwgMC4zMjY0MzcsIDAuNDI5MTA2LCAwLjUzMjA1NSwgMC42MzQ5ODcsIDAuNzM4MjM3IiwgXAotICAgICAgICAgICIwLjE1MjQ1LCAwLjI1NjU1OCwgMC4zMzkzODksIDAuNDQxNjQ0LCAwLjU0NDUxNywgMC42NDc0NzgsIDAuNzUwODY4IiwgXAotICAgICAgICAgICIwLjE2NDc3MiwgMC4yNjg4MzgsIDAuMzUxNjQzLCAwLjQ1NDAwMiwgMC41NTY5MTcsIDAuNjU5Nzc3LCAwLjc2MzE5OCIsIFwKLSAgICAgICAgICAiMC4xNzU4MjksIDAuMjc5OTAyLCAwLjM2MjM3MSwgMC40NjQ5MDcsIDAuNTY4Mjc2LCAwLjY3MDg2MiwgMC43NzM5ODkiLCBcCi0gICAgICAgICAgIjAuMTkxMiwgMC4yOTUyMzYsIDAuMzc3NjIxLCAwLjQ4MDc0LCAwLjU4MzQwNywgMC42ODYyNTUsIDAuNzg5Mzc4IiwgXAotICAgICAgICAgICIwLjIwMjk5OSwgMC4zMDY3NDksIDAuMzg5Mjc2LCAwLjQ5MjUyLCAwLjU5NTEzNiwgMC42OTgxODcsIDAuODAxNTY5Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1Mzk4OCwgMC4yNjMxNjQsIDAuNDM0MDI1LCAwLjY0ODgwMiwgMC44NjEzNCwgMS4wNzU4OSwgMS4yODk2IiwgXAotICAgICAgICAgICIwLjA1Mzk4NiwgMC4yNjI5OTMsIDAuNDMzNzM5LCAwLjY0ODA3OSwgMC44NjE2NjEsIDEuMDc1NiwgMS4yOTE0OCIsIFwKLSAgICAgICAgICAiMC4wNTM1OTgsIDAuMjYyOTg1LCAwLjQzMzc3NCwgMC42NDc2NzUsIDAuODYxOTMsIDEuMDc1OTgsIDEuMjkxNDciLCBcCi0gICAgICAgICAgIjAuMDUzNzk2LCAwLjI2MzE4NywgMC40MzM4OSwgMC42NDc2MTIsIDAuODYxNzQ5LCAxLjA3NTk0LCAxLjI5MTQ2IiwgXAotICAgICAgICAgICIwLjA1Mzk4NCwgMC4yNjMxNzUsIDAuNDMzNzczLCAwLjY0NzkzMywgMC44NjI4NjQsIDEuMDc1OTksIDEuMjg5NTEiLCBcCi0gICAgICAgICAgIjAuMDU0LCAwLjI2MzI5NSwgMC40MzQwNTEsIDAuNjQ4NzkzLCAwLjg2MTY5NywgMS4wNzU5MywgMS4yODk1MSIsIFwKLSAgICAgICAgICAiMC4wNTM2MTEsIDAuMjYzNjIzLCAwLjQzNDAwNSwgMC42NDg3NzcsIDAuODYxNzYzLCAxLjA3NTUzLCAxLjI5MTMiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTQzMDMsIDAuMjQ4MTUsIDAuMzMwODg0LCAwLjQzNDYzLCAwLjUzODM1MywgMC42NDE5NjQsIDAuNzQ1ODExIiwgXAotICAgICAgICAgICIwLjE1MzI1NCwgMC4yNTgzMjYsIDAuMzQxNDk5LCAwLjQ0NTMxNywgMC41NDg1MTcsIDAuNjUyMjQ5LCAwLjc1NjM2NiIsIFwKLSAgICAgICAgICAiMC4xNjU5ODIsIDAuMjcxMDg2LCAwLjM1NDM0OCwgMC40NTc3OTgsIDAuNTYxMzIyLCAwLjY2NTIyMiwgMC43Njg4ODciLCBcCi0gICAgICAgICAgIjAuMTc4MzM5LCAwLjI4MzQ1MSwgMC4zNjY3MDIsIDAuNDY5OTQzLCAwLjU3MzY4MiwgMC42Nzc1ODcsIDAuNzgxMjQ3IiwgXAotICAgICAgICAgICIwLjE4OTU2NywgMC4yOTQ2NywgMC4zNzc5MiwgMC40ODExOTIsIDAuNTg0OTA3LCAwLjY4ODgzMSwgMC43OTI0NzUiLCBcCi0gICAgICAgICAgIjAuMjA1MDExLCAwLjMxMDEyLCAwLjM5MzM2OSwgMC40OTY2MiwgMC42MDAzNjIsIDAuNzA0MzA0LCAwLjgwNzkyNCIsIFwKLSAgICAgICAgICAiMC4yMTcwNCwgMC4zMjIxMiwgMC40MDUzMDUsIDAuNTA4NjQ4LCAwLjYxMjQyNCwgMC43MTYwODcsIDAuODE5OTU3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1MjkxNCwgMC4yNTg0MzcsIDAuNDI2NjIzLCAwLjYzNzA3OSwgMC44NDczMDMsIDEuMDU4MTMsIDEuMjY4MjgiLCBcCi0gICAgICAgICAgIjAuMDUyODUyLCAwLjI1ODg5MywgMC40MjYzNywgMC42MzcwODIsIDAuODQ2MTkzLCAxLjA1Nzg2LCAxLjI2ODY3IiwgXAotICAgICAgICAgICIwLjA1MjgyNSwgMC4yNTg3OTcsIDAuNDI2MTY0LCAwLjYzNzA4MywgMC44NDczNDQsIDEuMDU3ODcsIDEuMjY4MzIiLCBcCi0gICAgICAgICAgIjAuMDUyODU3LCAwLjI1ODQyNywgMC40MjYzNzYsIDAuNjM3MTE2LCAwLjg0NTY1LCAxLjA1NzkxLCAxLjI2ODMiLCBcCi0gICAgICAgICAgIjAuMDUyOTI5LCAwLjI1ODc4OCwgMC40MjYxNTYsIDAuNjM3MDgzLCAwLjg0NzM0NiwgMS4wNTc5MSwgMS4yNjgzMiIsIFwKLSAgICAgICAgICAiMC4wNTI3NDYsIDAuMjU4NDcxLCAwLjQyNTY3MSwgMC42MzY4NzMsIDAuODQ3MzA5LCAxLjA1ODA2LCAxLjI2ODM0IiwgXAotICAgICAgICAgICIwLjA1MjgxOCwgMC4yNTg3NjMsIDAuNDI2MzkxLCAwLjYzNzExNSwgMC44NDczMzIsIDEuMDU2MTcsIDEuMjY4MzEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA1MDkxLCAwLjAwNTExLCAwLjAwNTEwMywgMC4wMDUwOTcsIDAuMDA1MDkyLCAwLjAwNTA4OSwgMC4wMDUwOSIsIFwKLSAgICAgICAgICAiMC4wMDUwNzYsIDAuMDA1MDk1LCAwLjAwNTA4OCwgMC4wMDUwODIsIDAuMDA1MDc4LCAwLjAwNTA3NiwgMC4wMDUwNzQiLCBcCi0gICAgICAgICAgIjAuMDA1MDY4LCAwLjAwNTA4NywgMC4wMDUwOCwgMC4wMDUwNzQsIDAuMDA1MDcsIDAuMDA1MDY3LCAwLjAwNTA2NiIsIFwKLSAgICAgICAgICAiMC4wMDUwNjksIDAuMDA1MDksIDAuMDA1MDgyLCAwLjAwNTA3NiwgMC4wMDUwNzIsIDAuMDA1MDcsIDAuMDA1MDY3IiwgXAotICAgICAgICAgICIwLjAwNTA3NSwgMC4wMDUwOTcsIDAuMDA1MDksIDAuMDA1MDgzLCAwLjAwNTA3OSwgMC4wMDUwNzYsIDAuMDA1MDc0IiwgXAotICAgICAgICAgICIwLjAwNTA3OSwgMC4wMDUxMDMsIDAuMDA1MDk2LCAwLjAwNTA5LCAwLjAwNTA4NiwgMC4wMDUwODIsIDAuMDA1MDgiLCBcCi0gICAgICAgICAgIjAuMDA1MDk1LCAwLjAwNTEyMSwgMC4wMDUxMTMsIDAuMDA1MTA2LCAwLjAwNTEwMiwgMC4wMDUwOTksIDAuMDA1MDk3Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2MTA1LCAwLjAwNjE1MywgMC4wMDYxNTksIDAuMDA2MTYsIDAuMDA2MTYxLCAwLjAwNjE2MiwgMC4wMDYxNiIsIFwKLSAgICAgICAgICAiMC4wMDYwOTIsIDAuMDA2MTQsIDAuMDA2MTQ0LCAwLjAwNjE0NywgMC4wMDYxNDcsIDAuMDA2MTQ4LCAwLjAwNjE0OCIsIFwKLSAgICAgICAgICAiMC4wMDYwOSwgMC4wMDYxMzgsIDAuMDA2MTQzLCAwLjAwNjE0NSwgMC4wMDYxNDYsIDAuMDA2MTQ3LCAwLjAwNjE0NyIsIFwKLSAgICAgICAgICAiMC4wMDYwOTYsIDAuMDA2MTQ0LCAwLjAwNjE0OSwgMC4wMDYxNTEsIDAuMDA2MTUyLCAwLjAwNjE1MiwgMC4wMDYxNTMiLCBcCi0gICAgICAgICAgIjAuMDA2MTA5LCAwLjAwNjE1NywgMC4wMDYxNjIsIDAuMDA2MTY0LCAwLjAwNjE2NSwgMC4wMDYxNjYsIDAuMDA2MTY2IiwgXAotICAgICAgICAgICIwLjAwNjExNywgMC4wMDYxNjUsIDAuMDA2MTcxLCAwLjAwNjE3MywgMC4wMDYxNzQsIDAuMDA2MTczLCAwLjAwNjE3NSIsIFwKLSAgICAgICAgICAiMC4wMDYxNDYsIDAuMDA2MTk0LCAwLjAwNjE5OSwgMC4wMDYyMDEsIDAuMDA2MjAyLCAwLjAwNjIwMiwgMC4wMDYyMDQiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFFOKSAgewotICAgIGRpcmVjdGlvbiA6IG91dHB1dDsKLSAgICBvdXRwdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwOwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwOwotICAgIG1heF9jYXBhY2l0YW5jZSA6IDAuNTE1NDUzOwotICAgIGZ1bmN0aW9uIDogIlFCSU5UIjsKLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBub25fdW5hdGU7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHJpc2luZ19lZGdlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNjQzMTYsIDAuMjY3MjEyLCAwLjM0OTYwMywgMC40NTI1ODIsIDAuNTU1NTczLCAwLjY1ODYyMiwgMC43NjE1NDYiLCBcCi0gICAgICAgICAgIjAuMTc0NTIzLCAwLjI3NzQ3NywgMC4zNTk4ODksIDAuNDYyOTMxLCAwLjU2NTg2OSwgMC42Njg4NDMsIDAuNzcxOTM0IiwgXAotICAgICAgICAgICIwLjE4NzI1OCwgMC4yOTAyMTMsIDAuMzcyNjU4LCAwLjQ3NTU1NiwgMC41Nzg1NzYsIDAuNjgxNTY1LCAwLjc4NDU0OSIsIFwKLSAgICAgICAgICAiMC4xOTk2MzcsIDAuMzAyNTY3LCAwLjM4NTAwOSwgMC40ODc5MzksIDAuNTkwOTI2LCAwLjY5MzkxOSwgMC43OTY5IiwgXAotICAgICAgICAgICIwLjIxMDgzMiwgMC4zMTM3OTQsIDAuMzk2MjM0LCAwLjQ5OTE2NSwgMC42MDIxNTUsIDAuNzA1MTU3LCAwLjgwODEzIiwgXAotICAgICAgICAgICIwLjIyNjMwNiwgMC4zMjkyNDUsIDAuNDExNjg2LCAwLjUxNDYxOSwgMC42MTc2MDUsIDAuNzIwNjIxLCAwLjgyMzU4MyIsIFwKLSAgICAgICAgICAiMC4yMzgzMTMsIDAuMzQxMjY2LCAwLjQyMzY4MywgMC41MjY2NDMsIDAuNjI5NjI1LCAwLjczMjYyNywgMC44MzU2MSIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTExODcsIDAuMjYyODQ4LCAwLjQzNDMyLCAwLjY0ODgwOCwgMC44NjMwODMsIDEuMDc3OTcsIDEuMjkyMjUiLCBcCi0gICAgICAgICAgIjAuMDUxMTgyLCAwLjI2Mjg1NywgMC40MzQwNTgsIDAuNjQ4ODEsIDAuODYyNDQ3LCAxLjA3Nzg2LCAxLjI5MjM1IiwgXAotICAgICAgICAgICIwLjA1MTE2OCwgMC4yNjI4NiwgMC40MzQwNTcsIDAuNjQ5MTksIDAuODYzMDgxLCAxLjA3Nzg2LCAxLjI5MjI4IiwgXAotICAgICAgICAgICIwLjA1MTE4NSwgMC4yNjI4NDYsIDAuNDM0ODYyLCAwLjY0ODgzOCwgMC44NjIzODYsIDEuMDc3ODgsIDEuMjkyMjUiLCBcCi0gICAgICAgICAgIjAuMDUxMTcyLCAwLjI2Mjg1OCwgMC40MzQwNTksIDAuNjQ4ODM0LCAwLjg2MzA4MiwgMS4wNzc4NiwgMS4yOTIyOCIsIFwKLSAgICAgICAgICAiMC4wNTExNjcsIDAuMjYyODUxLCAwLjQzNDA2MiwgMC42NDg5MjksIDAuODYzMDU5LCAxLjA3Nzk3LCAxLjI5MjI5IiwgXAotICAgICAgICAgICIwLjA1MTE4NCwgMC4yNjI4NTksIDAuNDM0MDYyLCAwLjY0ODgzOSwgMC44NjMwNzMsIDEuMDc2NjQsIDEuMjkyMjgiKTsKLSAgICAgIH0KLSAgICAgIGNlbGxfZmFsbChkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTUzMDUzLCAwLjI1NjgzMiwgMC4zMzk4NCwgMC40NDM1NjUsIDAuNTQ3Mjk4LCAwLjY1MTA0MSwgMC43NTQ3NTUiLCBcCi0gICAgICAgICAgIjAuMTYzMjEzLCAwLjI2Njk2OCwgMC4zNDk5OCwgMC40NTM2ODUsIDAuNTU3NDE0LCAwLjY2MTE1MSwgMC43NjQ4NjIiLCBcCi0gICAgICAgICAgIjAuMTc1ODIxLCAwLjI3OTYxLCAwLjM2MjY2NywgMC40NjYzMywgMC41NzAwNzEsIDAuNjczNzk2LCAwLjc3NzUwOSIsIFwKLSAgICAgICAgICAiMC4xODgxMzQsIDAuMjkxOTMyLCAwLjM3NDk3OCwgMC40Nzg2NTYsIDAuNTgyMzksIDAuNjg2MTI3LCAwLjc4OTgzOCIsIFwKLSAgICAgICAgICAiMC4xOTkxOTksIDAuMzAyOTksIDAuMzg1OTU1LCAwLjQ4OTcwNywgMC41OTMzODYsIDAuNjk3MTgyLCAwLjgwMDg4NCIsIFwKLSAgICAgICAgICAiMC4yMTQ1NzIsIDAuMzE4MzQ4LCAwLjQwMTM2NSwgMC41MDUwNzYsIDAuNjA4ODA1LCAwLjcxMjU1LCAwLjgxNjI2IiwgXAotICAgICAgICAgICIwLjIyNjM3LCAwLjMzMDEzOCwgMC40MTMxNTYsIDAuNTE2ODc1LCAwLjYyMDYwOSwgMC43MjQzMzYsIDAuODI4MTAyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDYsIDAuMSwgMC4xNSwgMC4yLCAwLjI1LCAwLjMiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1MDM4OCwgMC4yNTgwODIsIDAuNDI2MDc2LCAwLjYzNjg2NywgMC44NDQ3MSwgMS4wNTY0MiwgMS4yNjYzMyIsIFwKLSAgICAgICAgICAiMC4wNTAzOTMsIDAuMjU3OTk3LCAwLjQyNjAyMywgMC42MzY1NDcsIDAuODQ2MTQ5LCAxLjA1NjI4LCAxLjI2NzY1IiwgXAotICAgICAgICAgICIwLjA1MDM3OSwgMC4yNTc5OTYsIDAuNDI1NzEsIDAuNjM2MTI3LCAwLjg0NjMyLCAxLjA1NjQzLCAxLjI2NzYzIiwgXAotICAgICAgICAgICIwLjA1MDMzNiwgMC4yNTgwMTUsIDAuNDI1OTExLCAwLjYzNjA4NiwgMC44NDYyMjIsIDEuMDU2MzUsIDEuMjY3NjQiLCBcCi0gICAgICAgICAgIjAuMDUwMzg2LCAwLjI1ODAxNCwgMC40MjYsIDAuNjM2MjA5LCAwLjg0NzA3OSwgMS4wNTY0NCwgMS4yNjYyNSIsIFwKLSAgICAgICAgICAiMC4wNTAzODYsIDAuMjU4MDg2LCAwLjQyNjAzMywgMC42MzY4NTMsIDAuODQ2MTcyLCAxLjA1NjQyLCAxLjI2NjI4IiwgXAotICAgICAgICAgICIwLjA1MDM3OCwgMC4yNTgzMDUsIDAuNDI2MTAxLCAwLjYzNjgxNywgMC44NDYyMjksIDEuMDU2MjEsIDEuMjY3NjgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wNiwgMC4xLCAwLjE1LCAwLjIsIDAuMjUsIDAuMyIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2MTA1LCAwLjAwNjE1MywgMC4wMDYxNTksIDAuMDA2MTYsIDAuMDA2MTYxLCAwLjAwNjE2MiwgMC4wMDYxNiIsIFwKLSAgICAgICAgICAiMC4wMDYwOTIsIDAuMDA2MTQsIDAuMDA2MTQ0LCAwLjAwNjE0NywgMC4wMDYxNDcsIDAuMDA2MTQ4LCAwLjAwNjE0OCIsIFwKLSAgICAgICAgICAiMC4wMDYwOSwgMC4wMDYxMzgsIDAuMDA2MTQzLCAwLjAwNjE0NSwgMC4wMDYxNDYsIDAuMDA2MTQ3LCAwLjAwNjE0NyIsIFwKLSAgICAgICAgICAiMC4wMDYwOTYsIDAuMDA2MTQ0LCAwLjAwNjE0OSwgMC4wMDYxNTEsIDAuMDA2MTUyLCAwLjAwNjE1MiwgMC4wMDYxNTMiLCBcCi0gICAgICAgICAgIjAuMDA2MTA5LCAwLjAwNjE1NywgMC4wMDYxNjIsIDAuMDA2MTY0LCAwLjAwNjE2NSwgMC4wMDYxNjYsIDAuMDA2MTY2IiwgXAotICAgICAgICAgICIwLjAwNjExNywgMC4wMDYxNjUsIDAuMDA2MTcxLCAwLjAwNjE3MywgMC4wMDYxNzQsIDAuMDA2MTczLCAwLjAwNjE3NSIsIFwKLSAgICAgICAgICAiMC4wMDYxNDYsIDAuMDA2MTk0LCAwLjAwNjE5OSwgMC4wMDYyMDEsIDAuMDA2MjAyLCAwLjAwNjIwMiwgMC4wMDYyMDQiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA2LCAwLjEsIDAuMTUsIDAuMiwgMC4yNSwgMC4zIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDUwOTEsIDAuMDA1MTEsIDAuMDA1MTAzLCAwLjAwNTA5NywgMC4wMDUwOTIsIDAuMDA1MDg5LCAwLjAwNTA5IiwgXAotICAgICAgICAgICIwLjAwNTA3NiwgMC4wMDUwOTUsIDAuMDA1MDg4LCAwLjAwNTA4MiwgMC4wMDUwNzgsIDAuMDA1MDc2LCAwLjAwNTA3NCIsIFwKLSAgICAgICAgICAiMC4wMDUwNjgsIDAuMDA1MDg3LCAwLjAwNTA4LCAwLjAwNTA3NCwgMC4wMDUwNywgMC4wMDUwNjcsIDAuMDA1MDY2IiwgXAotICAgICAgICAgICIwLjAwNTA2OSwgMC4wMDUwOSwgMC4wMDUwODIsIDAuMDA1MDc2LCAwLjAwNTA3MiwgMC4wMDUwNywgMC4wMDUwNjciLCBcCi0gICAgICAgICAgIjAuMDA1MDc1LCAwLjAwNTA5NywgMC4wMDUwOSwgMC4wMDUwODMsIDAuMDA1MDc5LCAwLjAwNTA3NiwgMC4wMDUwNzQiLCBcCi0gICAgICAgICAgIjAuMDA1MDc5LCAwLjAwNTEwMywgMC4wMDUwOTYsIDAuMDA1MDksIDAuMDA1MDg2LCAwLjAwNTA4MiwgMC4wMDUwOCIsIFwKLSAgICAgICAgICAiMC4wMDUwOTUsIDAuMDA1MTIxLCAwLjAwNTExMywgMC4wMDUxMDYsIDAuMDA1MTAyLCAwLjAwNTA5OSwgMC4wMDUwOTciKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFJOKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA1OTM2MTc7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNTkzMzg7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNTkzNjE3OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNjM2MSwgMC4wMDYzMzEsIDAuMDA2MzI2LCAwLjAwNjMzNiwgMC4wMDYzNDYsIDAuMDA2MzcxLCAwLjAwNjM5MyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNTc1NSwgMC4wMDU3MzMsIDAuMDA1NzI4LCAwLjAwNTczMSwgMC4wMDU3NDIsIDAuMDA1NzY3LCAwLjAwNTc5MSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRCYhRSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fRV9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjEyNSwgLTAuMTEzNzUsIC0wLjEwNzUsIC0wLjEwMTI1LCAtMC4wOTUsIC0wLjA4NSwgLTAuMDgyNSIsIFwKLSAgICAgICAgICAiLTAuMTM2MjUsIC0wLjEyNSwgLTAuMTE4NzUsIC0wLjExMjUsIC0wLjEwNjI1LCAtMC4wOTYyNSwgLTAuMDkzNzUiLCBcCi0gICAgICAgICAgIi0wLjE0MjUsIC0wLjEzNzUsIC0wLjEyNSwgLTAuMTE4NzUsIC0wLjExMjUsIC0wLjEwODc1LCAtMC4xIiwgXAotICAgICAgICAgICItMC4xNTUsIC0wLjE0Mzc1LCAtMC4xMzc1LCAtMC4xMzEyNSwgLTAuMTI1LCAtMC4xMTUsIC0wLjExMjUiLCBcCi0gICAgICAgICAgIi0wLjE2MTI1LCAtMC4xNSwgLTAuMTQzNzUsIC0wLjEzNzUsIC0wLjEzMTI1LCAtMC4xMjEyNSwgLTAuMTE4NzUiLCBcCi0gICAgICAgICAgIi0wLjE3MTI1LCAtMC4xNiwgLTAuMTUzNzUsIC0wLjE0NzUsIC0wLjE0MTI1LCAtMC4xMzEyNSwgLTAuMTI4NzUiLCBcCi0gICAgICAgICAgIi0wLjE4LCAtMC4xNjg3NSwgLTAuMTYyNSwgLTAuMTU2MjUsIC0wLjE1LCAtMC4xNCwgLTAuMTM3NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJEJkUiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8xX0FOX0VfRVFfMSA9PSAxJ2IxIjsKLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMjUsIC0wLjAxMzc1LCAtMC4wMDEyNSwgMC4wMTEyNSwgMC4wMTc1LCAwLjAzMzc1LCAwLjA0MjUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMjUsIC0wLjAxMjUsIDAsIDAuMDA2MjUsIDAuMDIyNSwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjAzNzUsIC0wLjAyNSwgLTAuMDEyNSwgMCwgMC4wMSwgMC4wMjUiLCBcCi0gICAgICAgICAgIi0wLjA1NSwgLTAuMDQzNzUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgMC4wMDM3NSwgMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wNjEyNSwgLTAuMDUsIC0wLjAzNzUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAwMjUsIDAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA3MTI1LCAtMC4wNiwgLTAuMDQ3NSwgLTAuMDM1LCAtMC4wMjI1LCAtMC4wMTI1LCAtMC4wMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDczNzUsIC0wLjA2ODc1LCAtMC4wNTYyNSwgLTAuMDQzNzUsIC0wLjAzMTI1LCAtMC4wMjEyNSwgLTAuMDA2MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFEJiFFIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9FX0VRXzAgPT0gMSdiMSI7Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDY4NzUsIDAuMDU3NSwgMC4wNDUsIDAuMDMyNSwgMC4wMiwgMC4wMDM3NSwgLTAuMDExMjUiLCBcCi0gICAgICAgICAgIjAuMDgsIDAuMDY4NzUsIDAuMDUsIDAuMDM3NSwgMC4wMjUsIDAuMDE1LCAwIiwgXAotICAgICAgICAgICIwLjA4NjI1LCAwLjA3NSwgMC4wNjI1LCAwLjA1LCAwLjAzNzUsIDAuMDIxMjUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4wOTI1LCAwLjA4NzUsIDAuMDY4NzUsIDAuMDU2MjUsIDAuMDQzNzUsIDAuMDI3NSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiMC4xMDUsIDAuMDkzNzUsIDAuMDc1LCAwLjA2MjUsIDAuMDUsIDAuMDQsIDAuMDI1IiwgXAotICAgICAgICAgICIwLjEwODc1LCAwLjA5NzUsIDAuMDg1LCAwLjA3MjUsIDAuMDYsIDAuMDQzNzUsIDAuMDM1IiwgXAotICAgICAgICAgICIwLjExNzUsIDAuMTA2MjUsIDAuMDkzNzUsIDAuMDgxMjUsIDAuMDY4NzUsIDAuMDUyNSwgMC4wNDM3NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiRCZFIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMV9BTl9FX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMTUsIDAuMTM4NzUsIDAuMTMyNSwgMC4xMjYyNSwgMC4xMiwgMC4xMSwgMC4xMDEyNSIsIFwKLSAgICAgICAgICAiMC4xNjEyNSwgMC4xNSwgMC4xNDM3NSwgMC4xMzEyNSwgMC4xMjUsIDAuMTE1LCAwLjExMjUiLCBcCi0gICAgICAgICAgIjAuMTczNzUsIDAuMTYyNSwgMC4xNSwgMC4xNDM3NSwgMC4xMzc1LCAwLjEyNzUsIDAuMTI1IiwgXAotICAgICAgICAgICIwLjE4LCAwLjE2ODc1LCAwLjE2MjUsIDAuMTUsIDAuMTQzNzUsIDAuMTQsIDAuMTMxMjUiLCBcCi0gICAgICAgICAgIjAuMTg2MjUsIDAuMTc1LCAwLjE2ODc1LCAwLjE2MjUsIDAuMTU2MjUsIDAuMTQ2MjUsIDAuMTM3NSIsIFwKLSAgICAgICAgICAiMC4xOTYyNSwgMC4xODUsIDAuMTc4NzUsIDAuMTcyNSwgMC4xNiwgMC4xNTYyNSwgMC4xNDc1IiwgXAotICAgICAgICAgICIwLjIwNSwgMC4xOTM3NSwgMC4xODc1LCAwLjE3NSwgMC4xNjg3NSwgMC4xNTg3NSwgMC4xNTYyNSIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogU0VERkZIUVgxICoKLSAqIC0tLS0tLS0tLS0tLS0tLS0tLSAqLwotY2VsbCAoU0VERkZIUVgxKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuNTg0MDA0OwotICByYWlsX2Nvbm5lY3Rpb24oIFZERCwgUkFJTF9WREQgKTsKLSAgcmFpbF9jb25uZWN0aW9uKCBWU1MsIFJBSUxfVlNTICk7Ci0gIGZmIChOMzAsUUJJTlQpIHsKLSAgICBuZXh0X3N0YXRlIDogIigoU0UgU0kpICsgKCFTRSAoKEUgRCkgKyAoIUUgKCEoIU4zMCkpKSkpKSI7Ci0gICAgY2xvY2tlZF9vbiA6ICJDSyI7Ci0gIH0KLSAgcGluKENLKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA2NTEyMjU7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwNjUxMDI4OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDY1MTIyNTsKLSAgICBjbG9jayA6IHRydWU7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAzMzQxLCAwLjAwMzMxNSwgMC4wMDMzMDcsIDAuMDAzMzA2LCAwLjAwMzMxNSwgMC4wMDMzMzgsIDAuMDAzMzYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDcxNjEsIDAuMDA3MTQxLCAwLjAwNzEzOCwgMC4wMDcxNTQsIDAuMDA3MTg4LCAwLjAwNzIzNSwgMC4wMDcyNzQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBtaW5fcHVsc2Vfd2lkdGg7Ci0gICAgICB3aGVuIDogIiFEJiFFJlNFJiFTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fRV9FUV8wX0FOX1NFX0VRXzFfQU5fU0lfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludCh3aWR0aF90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjE0OTc2NCwgMC4xNjAwMDQsIDAuMTcyODQ2LCAwLjE4NDg5MiwgMC4xOTU2ODgsIDAuMjEwNzUxLCAwLjIyMjMyOSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHdpZHRoX3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDkzODIzLCAwLjEwMzc5NywgMC4xMTYxMDUsIDAuMTI3ODIxLCAwLjEzODAyNywgMC4xNTE4NzQsIDAuMTYyNTA3Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihEKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDA4NjY1NTE7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAwODYzMDQxOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDg2NjU1MTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDQ1MSwgMC4wMDQ0ODIsIDAuMDA0NDY5LCAwLjAwNDQ2MSwgMC4wMDQ0NTgsIDAuMDA0NDU5LCAwLjAwNDQ2NSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwODQ0MiwgMC4wMDg0MjYsIDAuMDA4NDE4LCAwLjAwODQxNCwgMC4wMDg0MTMsIDAuMDA4NDE2LCAwLjAwODQxOSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJFJiFTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJFX0VRXzFfQU5fU0VfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wODEyNSwgLTAuMDc2MjUsIC0wLjA3LCAtMC4wNjM3NSwgLTAuMDU3NSwgLTAuMDUzNzUsIC0wLjA0NSIsIFwKLSAgICAgICAgICAiLTAuMDkyNSwgLTAuMDg3NSwgLTAuMDgxMjUsIC0wLjA3NSwgLTAuMDY4NzUsIC0wLjA1ODc1LCAtMC4wNTYyNSIsIFwKLSAgICAgICAgICAiLTAuMTA1LCAtMC4wOTM3NSwgLTAuMDg3NSwgLTAuMDgxMjUsIC0wLjA4MTI1LCAtMC4wNzEyNSwgLTAuMDY4NzUiLCBcCi0gICAgICAgICAgIi0wLjExMTI1LCAtMC4xMDYyNSwgLTAuMSwgLTAuMDkzNzUsIC0wLjA4NzUsIC0wLjA4Mzc1LCAtMC4wNzUiLCBcCi0gICAgICAgICAgIi0wLjEyMzc1LCAtMC4xMTg3NSwgLTAuMTEyNSwgLTAuMTA2MjUsIC0wLjEsIC0wLjA5LCAtMC4wODc1IiwgXAotICAgICAgICAgICItMC4xNCwgLTAuMTM1LCAtMC4xMjg3NSwgLTAuMTIyNSwgLTAuMTE2MjUsIC0wLjEwNjI1LCAtMC4xMDM3NSIsIFwKLSAgICAgICAgICAiLTAuMTU1LCAtMC4xNSwgLTAuMTM3NSwgLTAuMTMxMjUsIC0wLjEzMTI1LCAtMC4xMjEyNSwgLTAuMTE4NzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMzc1LCAtMC4wMjYyNSwgLTAuMDIsIC0wLjAwNzUsIC0wLjAwMTI1LCAwLjAwODc1LCAwLjAxNzUiLCBcCi0gICAgICAgICAgIi0wLjA0MjUsIC0wLjAzNzUsIC0wLjAyNSwgLTAuMDE4NzUsIC0wLjAxMjUsIDAuMDAzNzUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDA4NzUsIDAiLCBcCi0gICAgICAgICAgIi0wLjA2NzUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAxNSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIi0wLjA3Mzc1LCAtMC4wNjg3NSwgLTAuMDU2MjUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMjc1LCAtMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDgzNzUsIC0wLjA3ODc1LCAtMC4wNjYyNSwgLTAuMDYsIC0wLjA1Mzc1LCAtMC4wNDM3NSwgLTAuMDI4NzUiLCBcCi0gICAgICAgICAgIi0wLjA5MjUsIC0wLjA4NzUsIC0wLjA4MTI1LCAtMC4wNjg3NSwgLTAuMDYyNSwgLTAuMDUyNSwgLTAuMDQzNzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIkUmIVNFIjsKLSAgICAgIHNkZl9jb25kIDogIkVfRVFfMV9BTl9TRV9FUV8wID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjExODc1LCAwLjEwNzUsIDAuMDk1LCAwLjA4ODc1LCAwLjA4MjUsIDAuMDcyNSwgMC4wNyIsIFwKLSAgICAgICAgICAiMC4xMjM3NSwgMC4xMTg3NSwgMC4xMDYyNSwgMC4xLCAwLjA5Mzc1LCAwLjA4Mzc1LCAwLjA4MTI1IiwgXAotICAgICAgICAgICIwLjEzNjI1LCAwLjEyNSwgMC4xMTg3NSwgMC4xMDYyNSwgMC4xMDYyNSwgMC4wOTYyNSwgMC4wODc1IiwgXAotICAgICAgICAgICIwLjE0ODc1LCAwLjEzNzUsIDAuMTI1LCAwLjExODc1LCAwLjExMjUsIDAuMTA4NzUsIDAuMSIsIFwKLSAgICAgICAgICAiMC4xNjEyNSwgMC4xNSwgMC4xMzc1LCAwLjEzMTI1LCAwLjEyNSwgMC4xMTUsIDAuMTEyNSIsIFwKLSAgICAgICAgICAiMC4xNzc1LCAwLjE2NjI1LCAwLjE1Mzc1LCAwLjE0NzUsIDAuMTQxMjUsIDAuMTMxMjUsIDAuMTI4NzUiLCBcCi0gICAgICAgICAgIjAuMTg2MjUsIDAuMTgxMjUsIDAuMTY4NzUsIDAuMTYyNSwgMC4xNTYyNSwgMC4xNDYyNSwgMC4xMzc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoc2V0dXBfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDkzNzUsIDAuMDgyNSwgMC4wNywgMC4wNTc1LCAwLjA0NSwgMC4wMzUsIDAuMDIiLCBcCi0gICAgICAgICAgIjAuMDk4NzUsIDAuMDkzNzUsIDAuMDc1LCAwLjA2ODc1LCAwLjA1NjI1LCAwLjA0LCAwLjAzMTI1IiwgXAotICAgICAgICAgICIwLjExMTI1LCAwLjEsIDAuMDg3NSwgMC4wNzUsIDAuMDYyNSwgMC4wNTI1LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIjAuMTIzNzUsIDAuMTEyNSwgMC4xLCAwLjA4NzUsIDAuMDc1LCAwLjA1ODc1LCAwLjA1IiwgXAotICAgICAgICAgICIwLjEzLCAwLjExODc1LCAwLjEwNjI1LCAwLjA5Mzc1LCAwLjA4NzUsIDAuMDcxMjUsIDAuMDU2MjUiLCBcCi0gICAgICAgICAgIjAuMTQ2MjUsIDAuMTM1LCAwLjEyMjUsIDAuMTEsIDAuMDk3NSwgMC4wODc1LCAwLjA3MjUiLCBcCi0gICAgICAgICAgIjAuMTU1LCAwLjE0Mzc1LCAwLjEzMTI1LCAwLjExODc1LCAwLjExMjUsIDAuMDk2MjUsIDAuMDg3NSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oRSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxNDQ0MzI7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxNDQzMDk7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxNDQ0MzI7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA3ODY2LCAwLjAwNzg0NCwgMC4wMDc4NDMsIDAuMDA3ODQxLCAwLjAwNzg0OCwgMC4wMDc4NzEsIDAuMDA3ODkxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDA5NDc0LCAwLjAwOTQyOCwgMC4wMDk0MjgsIDAuMDA5NDIyLCAwLjAwOTQyOSwgMC4wMDk0NjksIDAuMDA5NTExIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogaG9sZF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJTRSA9PSAxJ2IwIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wODc1LCAtMC4wNzYyNSwgLTAuMDYzNzUsIC0wLjA1NzUsIC0wLjA0NSwgLTAuMDI4NzUsIC0wLjAyIiwgXAotICAgICAgICAgICItMC4wOTI1LCAtMC4wODc1LCAtMC4wNzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNCwgLTAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjEwNSwgLTAuMSwgLTAuMDg3NSwgLTAuMDc1LCAtMC4wNjg3NSwgLTAuMDUyNSwgLTAuMDQzNzUiLCBcCi0gICAgICAgICAgIi0wLjExNzUsIC0wLjExMjUsIC0wLjEsIC0wLjA4NzUsIC0wLjA3NSwgLTAuMDY1LCAtMC4wNSIsIFwKLSAgICAgICAgICAiLTAuMTMsIC0wLjExODc1LCAtMC4xMDYyNSwgLTAuMDkzNzUsIC0wLjA4NzUsIC0wLjA3MTI1LCAtMC4wNjI1IiwgXAotICAgICAgICAgICItMC4xNCwgLTAuMTM1LCAtMC4xMjI1LCAtMC4xMSwgLTAuMDk3NSwgLTAuMDgxMjUsIC0wLjA3MjUiLCBcCi0gICAgICAgICAgIi0wLjE0ODc1LCAtMC4xNDM3NSwgLTAuMTMxMjUsIC0wLjExODc1LCAtMC4xMDYyNSwgLTAuMDk2MjUsIC0wLjA4MTI1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDMxMjUsIC0wLjAyLCAtMC4wMTM3NSwgLTAuMDAxMjUsIDAuMDA1LCAwLjAxNSwgMC4wMjM3NSIsIFwKLSAgICAgICAgICAiLTAuMDM2MjUsIC0wLjAzMTI1LCAtMC4wMTg3NSwgLTAuMDEyNSwgMCwgMC4wMSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDQ4NzUsIC0wLjA0Mzc1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMTI1LCAtMC4wMDI1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wNjEyNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMTUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wNjc1LCAtMC4wNjI1LCAtMC4wNSwgLTAuMDQzNzUsIC0wLjAzNzUsIC0wLjAyMTI1LCAtMC4wMTI1IiwgXAotICAgICAgICAgICItMC4wODM3NSwgLTAuMDcyNSwgLTAuMDY2MjUsIC0wLjA2LCAtMC4wNTM3NSwgLTAuMDM3NSwgLTAuMDI4NzUiLCBcCi0gICAgICAgICAgIi0wLjA4NjI1LCAtMC4wODEyNSwgLTAuMDc1LCAtMC4wNjg3NSwgLTAuMDYyNSwgLTAuMDUyNSwgLTAuMDQzNzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIiFTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJTRSA9PSAxJ2IwIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xMTI1LCAwLjEwMTI1LCAwLjA4ODc1LCAwLjA4MjUsIDAuMDc2MjUsIDAuMDY2MjUsIDAuMDYzNzUiLCBcCi0gICAgICAgICAgIjAuMTE3NSwgMC4xMTI1LCAwLjEsIDAuMDkzNzUsIDAuMDg3NSwgMC4wNzc1LCAwLjA3NSIsIFwKLSAgICAgICAgICAiMC4xMywgMC4xMTg3NSwgMC4xMTI1LCAwLjEwNjI1LCAwLjEsIDAuMDksIDAuMDgxMjUiLCBcCi0gICAgICAgICAgIjAuMTQyNSwgMC4xMzEyNSwgMC4xMjUsIDAuMTEyNSwgMC4xMTI1LCAwLjEwMjUsIDAuMDkzNzUiLCBcCi0gICAgICAgICAgIjAuMTU1LCAwLjE0Mzc1LCAwLjEzNzUsIDAuMTI1LCAwLjExODc1LCAwLjExNSwgMC4xMDYyNSIsIFwKLSAgICAgICAgICAiMC4xNzEyNSwgMC4xNiwgMC4xNTM3NSwgMC4xNDc1LCAwLjE0MTI1LCAwLjEzMTI1LCAwLjEyMjUiLCBcCi0gICAgICAgICAgIjAuMTg2MjUsIDAuMTc1LCAwLjE2ODc1LCAwLjE2MjUsIDAuMTU2MjUsIDAuMTQ2MjUsIDAuMTM3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEwNjI1LCAwLjEwMTI1LCAwLjA5NSwgMC4wODg3NSwgMC4wODI1LCAwLjA3MjUsIDAuMDciLCBcCi0gICAgICAgICAgIjAuMTE3NSwgMC4xMTI1LCAwLjEwNjI1LCAwLjEsIDAuMDkzNzUsIDAuMDgzNzUsIDAuMDgxMjUiLCBcCi0gICAgICAgICAgIjAuMTMsIDAuMTI1LCAwLjExMjUsIDAuMTA2MjUsIDAuMTA2MjUsIDAuMDk2MjUsIDAuMDkzNzUiLCBcCi0gICAgICAgICAgIjAuMTM2MjUsIDAuMTMxMjUsIDAuMTI1LCAwLjExODc1LCAwLjExMjUsIDAuMTA4NzUsIDAuMSIsIFwKLSAgICAgICAgICAiMC4xNDg3NSwgMC4xMzc1LCAwLjEzMTI1LCAwLjEyNSwgMC4xMTg3NSwgMC4xMTUsIDAuMTA2MjUiLCBcCi0gICAgICAgICAgIjAuMTU4NzUsIDAuMTQ3NSwgMC4xNDEyNSwgMC4xMzUsIDAuMTI4NzUsIDAuMTI1LCAwLjExNjI1IiwgXAotICAgICAgICAgICIwLjE2NzUsIDAuMTU2MjUsIDAuMTUsIDAuMTQzNzUsIDAuMTM3NSwgMC4xMzM3NSwgMC4xMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFEpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMC4yNjE0NzsKLSAgICBmdW5jdGlvbiA6ICJOMzAiOwotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5vbl91bmF0ZTsKLSAgICAgIHRpbWluZ190eXBlIDogcmlzaW5nX2VkZ2U7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjEzMTAyNiwgMC4xNTUzNjMsIDAuMjkzMDQ4LCAwLjQxNDQ4LCAwLjU3NjQzMiwgMC45MDAyNTYsIDEuMTAyNjciLCBcCi0gICAgICAgICAgIjAuMTQxMTc3LCAwLjE2NTUxMywgMC4zMDMxODUsIDAuNDI0NjMyLCAwLjU4NjU4NSwgMC45MTA0MSwgMS4xMTI4OCIsIFwKLSAgICAgICAgICAiMC4xNTQwMTcsIDAuMTc4MzUxLCAwLjMxNjAyMiwgMC40Mzc0ODMsIDAuNTk5NDY0LCAwLjkyMzI0LCAxLjEyNTcyIiwgXAotICAgICAgICAgICIwLjE2NTk0NCwgMC4xOTAyNzcsIDAuMzI3OTQ3LCAwLjQ0OTQwNSwgMC42MTEzNTMsIDAuOTM1MTcsIDEuMTM3NTEiLCBcCi0gICAgICAgICAgIjAuMTc2NTQ3LCAwLjIwMDg4MiwgMC4zMzg1NTQsIDAuNDYwMDA5LCAwLjYyMiwgMC45NDU3ODMsIDEuMTQ4MjciLCBcCi0gICAgICAgICAgIjAuMTkxNDE4LCAwLjIxNTc1NiwgMC4zNTM0MjUsIDAuNDc0ODcyLCAwLjYzNjc5OCwgMC45NjA2ODEsIDEuMTYzMTIiLCBcCi0gICAgICAgICAgIjAuMjAyODI0LCAwLjIyNzE1OSwgMC4zNjQ4MzksIDAuNDg2MjYzLCAwLjY0ODI0NCwgMC45NzIxMiwgMS4xNzQ1MiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wOTIyODEsIDAuMTQxNjA3LCAwLjQyNDQzNSwgMC42NzM3NjEsIDEuMDA4NjgsIDEuNjc2MTYsIDIuMDkzNDciLCBcCi0gICAgICAgICAgIjAuMDkyMjgyLCAwLjE0MTYwOCwgMC40MjQ0MywgMC42NzQxMzYsIDEuMDA4NTksIDEuNjc2MTgsIDIuMDkzNDgiLCBcCi0gICAgICAgICAgIjAuMDkyMjc3LCAwLjE0MTU4LCAwLjQyNDQ0MSwgMC42NzQwNjMsIDEuMDA2NzEsIDEuNjc2MTQsIDIuMDkzNTEiLCBcCi0gICAgICAgICAgIjAuMDkyMjU3LCAwLjE0MTU3NywgMC40MjQ0MzQsIDAuNjczNDYyLCAxLjAwODYsIDEuNjc2MTYsIDIuMDkzMjIiLCBcCi0gICAgICAgICAgIjAuMDkyMjc5LCAwLjE0MTU4MiwgMC40MjQ0MzYsIDAuNjczNDUzLCAxLjAwNjc0LCAxLjY3NjE3LCAyLjA5MzU5IiwgXAotICAgICAgICAgICIwLjA5MjI4NywgMC4xNDE2MTQsIDAuNDI0NDIxLCAwLjY3NDY3OSwgMS4wMDg0OSwgMS42NzYyMywgMi4wODk2IiwgXAotICAgICAgICAgICIwLjA5MjI4MiwgMC4xNDE1OCwgMC40MjQ0MjMsIDAuNjc0MDY1LCAxLjAwODI5LCAxLjY3NjI0LCAyLjA5MzM0Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDE2LCAwLjA1LCAwLjA4LCAwLjEyLCAwLjIsIDAuMjUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE0OTc2NCwgMC4xNzQ1NzEsIDAuMzE0ODMzLCAwLjQzODU5NCwgMC42MDM1MDQsIDAuOTMzNDM2LCAxLjEzOTUzIiwgXAotICAgICAgICAgICIwLjE2MDAwNCwgMC4xODQ4MTIsIDAuMzI1MDc0LCAwLjQ0ODgxLCAwLjYxMzc0MywgMC45NDM2NjQsIDEuMTQ5NzYiLCBcCi0gICAgICAgICAgIjAuMTcyODkzLCAwLjE5NzY5NywgMC4zMzc5NjUsIDAuNDYxNzI4LCAwLjYyNjYwOCwgMC45NTY1NjgsIDEuMTYyNzIiLCBcCi0gICAgICAgICAgIjAuMTg0ODkyLCAwLjIwOTY5OSwgMC4zNDk5NiwgMC40NzM3MTgsIDAuNjM4NjQ5LCAwLjk2ODU1MywgMS4xNzQ2NyIsIFwKLSAgICAgICAgICAiMC4xOTU2ODgsIDAuMjIwNDk2LCAwLjM2MDc1NiwgMC40ODQ0NzksIDAuNjQ5NDE5LCAwLjk3OTM1NCwgMS4xODU1MiIsIFwKLSAgICAgICAgICAiMC4yMTA3NTEsIDAuMjM1NTU5LCAwLjM3NTgxOSwgMC40OTk1NDYsIDAuNjY0NTEzLCAwLjk5NDQyMSwgMS4yMDA2MyIsIFwKLSAgICAgICAgICAiMC4yMjIzMjksIDAuMjQ3MTM1LCAwLjM4NzM5NCwgMC41MTExMjEsIDAuNjc2MDg2LCAxLjAwNjAxLCAxLjIxMjIiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTYsIDAuMDUsIDAuMDgsIDAuMTIsIDAuMiwgMC4yNSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDkyMDE1LCAwLjE0MTE1OCwgMC40MjIyMDMsIDAuNjcyNjU0LCAxLjAwNTYsIDEuNjcwMDMsIDIuMDgzMjYiLCBcCi0gICAgICAgICAgIjAuMDkxOTg0LCAwLjE0MTE2NiwgMC40MjIxODcsIDAuNjcyNzMsIDEuMDA1NjQsIDEuNjcxMjksIDIuMDg2ODQiLCBcCi0gICAgICAgICAgIjAuMDkxOTg1LCAwLjE0MTE4MSwgMC40MjMxNDQsIDAuNjcyNjIxLCAxLjAwNTU3LCAxLjY3MTQxLCAyLjA4NjkzIiwgXAotICAgICAgICAgICIwLjA5MjAxMSwgMC4xNDExOTgsIDAuNDIzMTI5LCAwLjY3MTQ3MiwgMS4wMDU1MiwgMS42NzE0OCwgMi4wODcwMiIsIFwKLSAgICAgICAgICAiMC4wOTE5ODMsIDAuMTQxMjA1LCAwLjQyMjg5LCAwLjY3MTU4OCwgMS4wMDU2MSwgMS42NjgxNywgMi4wODc2MyIsIFwKLSAgICAgICAgICAiMC4wOTE5ODcsIDAuMTQxMTcxLCAwLjQyMjk2MiwgMC42NzE1NTEsIDEuMDA1NSwgMS42NjgyNywgMi4wODY5NCIsIFwKLSAgICAgICAgICAiMC4wOTE5ODgsIDAuMTQxMTc0LCAwLjQyMjk2MSwgMC42NzE1NTYsIDEuMDA1NTEsIDEuNjY4OSwgMi4wODY5MyIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTA5NDYsIDAuMDEwOTUyLCAwLjAxMDk2LCAwLjAxMDk2MiwgMC4wMTA5NjMsIDAuMDEwOTYzLCAwLjAxMDk2NCIsIFwKLSAgICAgICAgICAiMC4wMTA5MTUsIDAuMDEwOTIxLCAwLjAxMDkyOSwgMC4wMTA5MzIsIDAuMDEwOTMzLCAwLjAxMDkzMywgMC4wMTA5MzMiLCBcCi0gICAgICAgICAgIjAuMDEwODk4LCAwLjAxMDkwNSwgMC4wMTA5MTMsIDAuMDEwOTE1LCAwLjAxMDkxNiwgMC4wMTA5MTYsIDAuMDEwOTE3IiwgXAotICAgICAgICAgICIwLjAxMDg5OCwgMC4wMTA5MDQsIDAuMDEwOTEzLCAwLjAxMDkxNCwgMC4wMTA5MTYsIDAuMDEwOTE2LCAwLjAxMDkxNiIsIFwKLSAgICAgICAgICAiMC4wMTA5MTgsIDAuMDEwOTI1LCAwLjAxMDkzNCwgMC4wMTA5MzYsIDAuMDEwOTM2LCAwLjAxMDkzNywgMC4wMTA5MzciLCBcCi0gICAgICAgICAgIjAuMDEwOTMyLCAwLjAxMDkzOSwgMC4wMTA5NDcsIDAuMDEwOTQ5LCAwLjAxMDk1LCAwLjAxMDk1MSwgMC4wMTA5NTEiLCBcCi0gICAgICAgICAgIjAuMDEwOTYxLCAwLjAxMDk2OCwgMC4wMTA5NzcsIDAuMDEwOTc4LCAwLjAxMDk3OSwgMC4wMTA5OCwgMC4wMTA5ODEiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxNiwgMC4wNSwgMC4wOCwgMC4xMiwgMC4yLCAwLjI1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMTEwNjksIDAuMDExMDc4LCAwLjAxMTA5LCAwLjAxMTA5MiwgMC4wMTEwOTQsIDAuMDExMDk1LCAwLjAxMTA5NSIsIFwKLSAgICAgICAgICAiMC4wMTEwNDQsIDAuMDExMDUzLCAwLjAxMTA2NCwgMC4wMTEwNjcsIDAuMDExMDY4LCAwLjAxMTA2OSwgMC4wMTEwNjkiLCBcCi0gICAgICAgICAgIjAuMDExMDQyLCAwLjAxMTA1LCAwLjAxMTA2MywgMC4wMTEwNjQsIDAuMDExMDY2LCAwLjAxMTA2NywgMC4wMTEwNjciLCBcCi0gICAgICAgICAgIjAuMDExMDY2LCAwLjAxMTA3NSwgMC4wMTEwODcsIDAuMDExMDg5LCAwLjAxMTA5LCAwLjAxMTA5MSwgMC4wMTEwOTIiLCBcCi0gICAgICAgICAgIjAuMDExMTA0LCAwLjAxMTExMiwgMC4wMTExMjQsIDAuMDExMTI3LCAwLjAxMTEyOCwgMC4wMTExMjksIDAuMDExMTI5IiwgXAotICAgICAgICAgICIwLjAxMTE0MywgMC4wMTExNTMsIDAuMDExMTY1LCAwLjAxMTE2NywgMC4wMTExNjgsIDAuMDExMTY5LCAwLjAxMTE3IiwgXAotICAgICAgICAgICIwLjAxMTE5NCwgMC4wMTEyMDMsIDAuMDExMjE0LCAwLjAxMTIxNiwgMC4wMTEyMTgsIDAuMDExMjE5LCAwLjAxMTIxOSIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oU0UpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMTQxODY4OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMTQxNzUyOwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMTQxODY4OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNTgsIDAuMDA1Nzg5LCAwLjAwNTc5NCwgMC4wMDU3OTksIDAuMDA1ODEzLCAwLjAwNTgzLCAwLjAwNTg1OSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNzMxOSwgMC4wMDcyNjMsIDAuMDA3MjQ0LCAwLjAwNzI2MiwgMC4wMDcyNjcsIDAuMDA3MzEyLCAwLjAwNzM2NiIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRCYhRSYhU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX0VfRVFfMF9BTl9TSV9FUV8wID09IDEnYjEiOwotICAgICAgZmFsbF9jb25zdHJhaW50KGhvbGRfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIi0wLjA1NjI1LCAtMC4wNTEyNSwgLTAuMDQ1LCAtMC4wMzg3NSwgLTAuMDMyNSwgLTAuMDIyNSwgLTAuMDIiLCBcCi0gICAgICAgICAgIi0wLjA2NzUsIC0wLjA2MjUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDQzNzUsIC0wLjAzMzc1LCAtMC4wMzEyNSIsIFwKLSAgICAgICAgICAiLTAuMDgsIC0wLjA3NSwgLTAuMDYyNSwgLTAuMDU2MjUsIC0wLjA1NjI1LCAtMC4wNDYyNSwgLTAuMDQzNzUiLCBcCi0gICAgICAgICAgIi0wLjA5MjUsIC0wLjA4MTI1LCAtMC4wNzUsIC0wLjA2ODc1LCAtMC4wNjg3NSwgLTAuMDU4NzUsIC0wLjA1NjI1IiwgXAotICAgICAgICAgICItMC4wOTg3NSwgLTAuMDkzNzUsIC0wLjA4NzUsIC0wLjA4MTI1LCAtMC4wNzUsIC0wLjA3MTI1LCAtMC4wNjI1IiwgXAotICAgICAgICAgICItMC4xMTUsIC0wLjEwMzc1LCAtMC4wOTc1LCAtMC4wOTEyNSwgLTAuMDg1LCAtMC4wODEyNSwgLTAuMDcyNSIsIFwKLSAgICAgICAgICAiLTAuMTIzNzUsIC0wLjExMjUsIC0wLjEwNjI1LCAtMC4xLCAtMC4xLCAtMC4wOSwgLTAuMDg3NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRCYhRSZTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fRV9FUV8wX0FOX1NJX0VRXzEgPT0gMSdiMSI7Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDA2MjUsIC0wLjAwMTI1LCAwLjAxMTI1LCAwLjAyMzc1LCAwLjAzLCAwLjA0LCAwLjA0ODc1IiwgXAotICAgICAgICAgICItMC4wMTc1LCAtMC4wMDYyNSwgMCwgMC4wMTI1LCAwLjAxODc1LCAwLjAzNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiLTAuMDMsIC0wLjAxODc1LCAtMC4wMDYyNSwgMCwgMC4wMTI1LCAwLjAyMjUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjAzNjI1LCAtMC4wMzEyNSwgLTAuMDE4NzUsIC0wLjAwNjI1LCAwLCAwLjAxLCAwLjAxODc1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDM3NSwgLTAuMDMxMjUsIC0wLjAxODc1LCAtMC4wMTI1LCAwLjAwMzc1LCAwLjAxMjUiLCBcCi0gICAgICAgICAgIi0wLjA1ODc1LCAtMC4wNTM3NSwgLTAuMDQxMjUsIC0wLjAzNSwgLTAuMDIyNSwgLTAuMDEyNSwgLTAuMDAzNzUiLCBcCi0gICAgICAgICAgIi0wLjA2NzUsIC0wLjA2MjUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDIxMjUsIC0wLjAxMjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBob2xkX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUQmRSZTSSI7Ci0gICAgICBzZGZfY29uZCA6ICJEX0VRXzBfQU5fRV9FUV8xX0FOX1NJX0VRXzEgPT0gMSdiMSI7Ci0gICAgICByaXNlX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDM3NSwgLTAuMDMyNSwgLTAuMDI2MjUsIC0wLjAyLCAtMC4wMTM3NSwgLTAuMDAzNzUsIDAuMDA1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDQzNzUsIC0wLjAzMTI1LCAtMC4wMjUsIC0wLjAxODc1LCAtMC4wMTUsIC0wLjAwNjI1IiwgXAotICAgICAgICAgICItMC4wNjEyNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDI3NSwgLTAuMDE4NzUiLCBcCi0gICAgICAgICAgIi0wLjA3Mzc1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDUsIC0wLjA0Mzc1LCAtMC4wMzM3NSwgLTAuMDMxMjUiLCBcCi0gICAgICAgICAgIi0wLjA4NjI1LCAtMC4wNzUsIC0wLjA2ODc1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDQ2MjUsIC0wLjA0Mzc1IiwgXAotICAgICAgICAgICItMC4wOTYyNSwgLTAuMDkxMjUsIC0wLjA4NSwgLTAuMDc4NzUsIC0wLjA3MjUsIC0wLjA2MjUsIC0wLjA1Mzc1IiwgXAotICAgICAgICAgICItMC4xMTEyNSwgLTAuMSwgLTAuMDkzNzUsIC0wLjA4NzUsIC0wLjA4MTI1LCAtMC4wNzc1LCAtMC4wNjg3NSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJEJkUmIVNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMV9BTl9FX0VRXzFfQU5fU0lfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wMjUsIC0wLjAxMzc1LCAtMC4wMDEyNSwgMC4wMDUsIDAuMDE3NSwgMC4wMjc1LCAwLjAzNjI1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDI1LCAtMC4wMTI1LCAwLCAwLjAwNjI1LCAwLjAxNjI1LCAwLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wNDg3NSwgLTAuMDM3NSwgLTAuMDI1LCAtMC4wMTI1LCAtMC4wMDYyNSwgMC4wMDM3NSwgMC4wMTg3NSIsIFwKLSAgICAgICAgICAiLTAuMDU1LCAtMC4wNSwgLTAuMDM3NSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDAyNSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiLTAuMDY3NSwgLTAuMDU2MjUsIC0wLjA0Mzc1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAxNSwgMCIsIFwKLSAgICAgICAgICAiLTAuMDc3NSwgLTAuMDY2MjUsIC0wLjA2LCAtMC4wNDc1LCAtMC4wMzUsIC0wLjAyNSwgLTAuMDE2MjUiLCBcCi0gICAgICAgICAgIi0wLjA4NjI1LCAtMC4wODEyNSwgLTAuMDY4NzUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDMzNzUsIC0wLjAyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUQmIUUmIVNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9FX0VRXzBfQU5fU0lfRVFfMCA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjI1LCAwLjA1MTI1LCAwLjAzODc1LCAwLjAyNjI1LCAwLjAyLCAwLjAwMzc1LCAtMC4wMTEyNSIsIFwKLSAgICAgICAgICAiMC4wNzM3NSwgMC4wNjI1LCAwLjA1LCAwLjAzNzUsIDAuMDI1LCAwLjAxNSwgMCIsIFwKLSAgICAgICAgICAiMC4wODYyNSwgMC4wNzUsIDAuMDYyNSwgMC4wNSwgMC4wMzc1LCAwLjAyNzUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4wOTg3NSwgMC4wODc1LCAwLjA3NSwgMC4wNjI1LCAwLjA1LCAwLjAzMzc1LCAwLjAyNSIsIFwKLSAgICAgICAgICAiMC4xMDUsIDAuMDkzNzUsIDAuMDgxMjUsIDAuMDY4NzUsIDAuMDU2MjUsIDAuMDQ2MjUsIDAuMDMxMjUiLCBcCi0gICAgICAgICAgIjAuMTE1LCAwLjEwMzc1LCAwLjA5MTI1LCAwLjA4NSwgMC4wNzI1LCAwLjA1NjI1LCAwLjA0NzUiLCBcCi0gICAgICAgICAgIjAuMTIzNzUsIDAuMTEyNSwgMC4xLCAwLjA5Mzc1LCAwLjA4MTI1LCAwLjA2NSwgMC4wNTYyNSIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IHNldHVwX3Jpc2luZzsKLSAgICAgIHdoZW4gOiAiIUQmIUUmU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8wX0FOX0VfRVFfMF9BTl9TSV9FUV8xID09IDEnYjEiOwotICAgICAgcmlzZV9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA2MjUsIDAuMDU3NSwgMC4wNDUsIDAuMDM4NzUsIDAuMDMyNSwgMC4wMjI1LCAwLjAyIiwgXAotICAgICAgICAgICIwLjA3Mzc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDUsIDAuMDQzNzUsIDAuMDMzNzUsIDAuMDI1IiwgXAotICAgICAgICAgICIwLjA4NjI1LCAwLjA3NSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1NjI1LCAwLjA0NjI1LCAwLjAzNzUiLCBcCi0gICAgICAgICAgIjAuMDk4NzUsIDAuMDg3NSwgMC4wODEyNSwgMC4wNjg3NSwgMC4wNjI1LCAwLjA1ODc1LCAwLjA1IiwgXAotICAgICAgICAgICIwLjExMTI1LCAwLjEsIDAuMDg3NSwgMC4wODEyNSwgMC4wNzUsIDAuMDY1LCAwLjA2MjUiLCBcCi0gICAgICAgICAgIjAuMTI3NSwgMC4xMTYyNSwgMC4xMDM3NSwgMC4wOTc1LCAwLjA5MTI1LCAwLjA4MTI1LCAwLjA3ODc1IiwgXAotICAgICAgICAgICIwLjE0MjUsIDAuMTMxMjUsIDAuMTE4NzUsIDAuMTEyNSwgMC4xMDYyNSwgMC4wOTYyNSwgMC4wODc1Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICIhRCZFJlNJIjsKLSAgICAgIHNkZl9jb25kIDogIkRfRVFfMF9BTl9FX0VRXzFfQU5fU0lfRVFfMSA9PSAxJ2IxIjsKLSAgICAgIGZhbGxfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNTYyNSwgMC4wNDUsIDAuMDMyNSwgMC4wMjYyNSwgMC4wMTM3NSwgLTAuMDAyNSwgLTAuMDExMjUiLCBcCi0gICAgICAgICAgIjAuMDY3NSwgMC4wNTYyNSwgMC4wNDM3NSwgMC4wMzEyNSwgMC4wMTg3NSwgMC4wMDg3NSwgLTAuMDA2MjUiLCBcCi0gICAgICAgICAgIjAuMDgsIDAuMDY4NzUsIDAuMDU2MjUsIDAuMDQzNzUsIDAuMDMxMjUsIDAuMDE1LCAwLjAwNjI1IiwgXAotICAgICAgICAgICIwLjA4NjI1LCAwLjA4MTI1LCAwLjA2ODc1LCAwLjA1NjI1LCAwLjA0Mzc1LCAwLjAyNzUsIDAuMDE4NzUiLCBcCi0gICAgICAgICAgIjAuMDk4NzUsIDAuMDg3NSwgMC4wNzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNCwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4xMTUsIDAuMTAzNzUsIDAuMDkxMjUsIDAuMDc4NzUsIDAuMDcyNSwgMC4wNTYyNSwgMC4wNDEyNSIsIFwKLSAgICAgICAgICAiMC4xMywgMC4xMTg3NSwgMC4xMDYyNSwgMC4wOTM3NSwgMC4wODEyNSwgMC4wNjUsIDAuMDU2MjUiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQ0siOwotICAgICAgdGltaW5nX3R5cGUgOiBzZXR1cF9yaXNpbmc7Ci0gICAgICB3aGVuIDogIkQmRSYhU0kiOwotICAgICAgc2RmX2NvbmQgOiAiRF9FUV8xX0FOX0VfRVFfMV9BTl9TSV9FUV8wID09IDEnYjEiOwotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4NzUsIDAuMDgyNSwgMC4wNywgMC4wNjM3NSwgMC4wNTc1LCAwLjA0NzUsIDAuMDM4NzUiLCBcCi0gICAgICAgICAgIjAuMDk4NzUsIDAuMDg3NSwgMC4wODEyNSwgMC4wNzUsIDAuMDY4NzUsIDAuMDU4NzUsIDAuMDUiLCBcCi0gICAgICAgICAgIjAuMTExMjUsIDAuMSwgMC4wOTM3NSwgMC4wODc1LCAwLjA4MTI1LCAwLjA3MTI1LCAwLjA2MjUiLCBcCi0gICAgICAgICAgIjAuMTIzNzUsIDAuMTEyNSwgMC4xMDYyNSwgMC4wOTM3NSwgMC4wODc1LCAwLjA4Mzc1LCAwLjA3NSIsIFwKLSAgICAgICAgICAiMC4xMzYyNSwgMC4xMjUsIDAuMTEyNSwgMC4xMDYyNSwgMC4xLCAwLjA5LCAwLjA4NzUiLCBcCi0gICAgICAgICAgIjAuMTQ2MjUsIDAuMTM1LCAwLjEyMjUsIDAuMTE2MjUsIDAuMTEsIDAuMTA2MjUsIDAuMDk3NSIsIFwKLSAgICAgICAgICAiMC4xNTUsIDAuMTQzNzUsIDAuMTM3NSwgMC4xMjUsIDAuMTE4NzUsIDAuMTE1LCAwLjEwNjI1Iik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihTSSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAwOTA1NDg0OwotICAgIHJpc2VfY2FwYWNpdGFuY2UgOiAwLjAwMDkwMTk0OwotICAgIGZhbGxfY2FwYWNpdGFuY2UgOiAwLjAwMDkwNTQ4NDsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDMzNzksIDAuMDAzMzQ3LCAwLjAwMzMzMSwgMC4wMDMzMjIsIDAuMDAzMzIsIDAuMDAzMzI2LCAwLjAwMzMzMyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwNjMyMywgMC4wMDYzMDUsIDAuMDA2Mjk1LCAwLjAwNjI5MiwgMC4wMDYyOSwgMC4wMDYyOTksIDAuMDA2MyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDSyI7Ci0gICAgICB0aW1pbmdfdHlwZSA6IGhvbGRfcmlzaW5nOwotICAgICAgd2hlbiA6ICJTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJTRSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChob2xkX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICItMC4wNDM3NSwgLTAuMDM4NzUsIC0wLjAzMjUsIC0wLjAyNjI1LCAtMC4wMiwgLTAuMDEsIC0wLjAwMTI1IiwgXAotICAgICAgICAgICItMC4wNTUsIC0wLjA1LCAtMC4wMzc1LCAtMC4wMzEyNSwgLTAuMDI1LCAtMC4wMjEyNSwgLTAuMDEyNSIsIFwKLSAgICAgICAgICAiLTAuMDY3NSwgLTAuMDU2MjUsIC0wLjA1LCAtMC4wNDM3NSwgLTAuMDM3NSwgLTAuMDI3NSwgLTAuMDI1IiwgXAotICAgICAgICAgICItMC4wNzM3NSwgLTAuMDY4NzUsIC0wLjA2MjUsIC0wLjA1NjI1LCAtMC4wNSwgLTAuMDQsIC0wLjAzMTI1IiwgXAotICAgICAgICAgICItMC4wODYyNSwgLTAuMDgxMjUsIC0wLjA2ODc1LCAtMC4wNjI1LCAtMC4wNTYyNSwgLTAuMDUyNSwgLTAuMDQzNzUiLCBcCi0gICAgICAgICAgIi0wLjEwMjUsIC0wLjA5MTI1LCAtMC4wODUsIC0wLjA3ODc1LCAtMC4wNzI1LCAtMC4wNjg3NSwgLTAuMDYiLCBcCi0gICAgICAgICAgIi0wLjExMTI1LCAtMC4xMDYyNSwgLTAuMSwgLTAuMDkzNzUsIC0wLjA4NzUsIC0wLjA3NzUsIC0wLjA2ODc1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX2NvbnN0cmFpbnQoaG9sZF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiLTAuMDEyNSwgLTAuMDAxMjUsIDAuMDExMjUsIDAuMDIzNzUsIDAuMDMsIDAuMDQsIDAuMDU1IiwgXAotICAgICAgICAgICItMC4wMTc1LCAtMC4wMDYyNSwgMCwgMC4wMTI1LCAwLjAyNSwgMC4wMzUsIDAuMDQzNzUiLCBcCi0gICAgICAgICAgIi0wLjAzLCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAuMDA2MjUsIDAuMDEyNSwgMC4wMjg3NSwgMC4wMzc1IiwgXAotICAgICAgICAgICItMC4wMzYyNSwgLTAuMDI1LCAtMC4wMTg3NSwgLTAuMDA2MjUsIDAuMDA2MjUsIDAuMDE2MjUsIDAuMDI1IiwgXAotICAgICAgICAgICItMC4wNDI1LCAtMC4wMzc1LCAtMC4wMjUsIC0wLjAxMjUsIC0wLjAwNjI1LCAwLjAxLCAwLjAxODc1IiwgXAotICAgICAgICAgICItMC4wNTg3NSwgLTAuMDQ3NSwgLTAuMDM1LCAtMC4wMjI1LCAtMC4wMTYyNSwgLTAuMDA2MjUsIDAuMDA4NzUiLCBcCi0gICAgICAgICAgIi0wLjA2NzUsIC0wLjA1NjI1LCAtMC4wNDM3NSwgLTAuMDMxMjUsIC0wLjAyNSwgLTAuMDE1LCAwIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkNLIjsKLSAgICAgIHRpbWluZ190eXBlIDogc2V0dXBfcmlzaW5nOwotICAgICAgd2hlbiA6ICJTRSI7Ci0gICAgICBzZGZfY29uZCA6ICJTRSA9PSAxJ2IxIjsKLSAgICAgIHJpc2VfY29uc3RyYWludChzZXR1cF90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNjg3NSwgMC4wNjM3NSwgMC4wNTEyNSwgMC4wNDUsIDAuMDM4NzUsIDAuMDI4NzUsIDAuMDI2MjUiLCBcCi0gICAgICAgICAgIjAuMDgsIDAuMDY4NzUsIDAuMDYyNSwgMC4wNTYyNSwgMC4wNSwgMC4wNCwgMC4wMzEyNSIsIFwKLSAgICAgICAgICAiMC4wOTI1LCAwLjA4MTI1LCAwLjA2ODc1LCAwLjA2MjUsIDAuMDU2MjUsIDAuMDUyNSwgMC4wNDM3NSIsIFwKLSAgICAgICAgICAiMC4xMDUsIDAuMDkzNzUsIDAuMDgxMjUsIDAuMDc1LCAwLjA2ODc1LCAwLjA1ODc1LCAwLjA1NjI1IiwgXAotICAgICAgICAgICIwLjExMTI1LCAwLjEsIDAuMDkzNzUsIDAuMDg3NSwgMC4wODEyNSwgMC4wNzEyNSwgMC4wNjI1IiwgXAotICAgICAgICAgICIwLjEyNzUsIDAuMTE2MjUsIDAuMTEsIDAuMTAzNzUsIDAuMDk3NSwgMC4wODc1LCAwLjA3ODc1IiwgXAotICAgICAgICAgICIwLjE0MjUsIDAuMTMxMjUsIDAuMTE4NzUsIDAuMTEyNSwgMC4xMDYyNSwgMC4wOTYyNSwgMC4wOTM3NSIpOwotICAgICAgfQotICAgICAgZmFsbF9jb25zdHJhaW50KHNldHVwX3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA1LCAwLjAzODc1LCAwLjAyNjI1LCAwLjAxMzc1LCAwLjAwMTI1LCAtMC4wMTUsIC0wLjAyMzc1IiwgXAotICAgICAgICAgICIwLjA1NSwgMC4wNDM3NSwgMC4wMzEyNSwgMC4wMTg3NSwgMC4wMTI1LCAtMC4wMDM3NSwgLTAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4wNjc1LCAwLjA1NjI1LCAwLjA0Mzc1LCAwLjAzMTI1LCAwLjAxODc1LCAwLjAwODc1LCAtMC4wMDYyNSIsIFwKLSAgICAgICAgICAiMC4wNzM3NSwgMC4wNjI1LCAwLjA1LCAwLjA0Mzc1LCAwLjAzMTI1LCAwLjAxNSwgMC4wMDYyNSIsIFwKLSAgICAgICAgICAiMC4wODYyNSwgMC4wNzUsIDAuMDYyNSwgMC4wNSwgMC4wMzc1LCAwLjAyNzUsIDAuMDEyNSIsIFwKLSAgICAgICAgICAiMC4wOTYyNSwgMC4wOTEyNSwgMC4wNzI1LCAwLjA2NjI1LCAwLjA1Mzc1LCAwLjAzNzUsIDAuMDI4NzUiLCBcCi0gICAgICAgICAgIjAuMTExMjUsIDAuMSwgMC4wODc1LCAwLjA3NSwgMC4wNjI1LCAwLjA0NjI1LCAwLjAzNzUiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLS0tICoKLSAqIERlc2lnbiA6IENMS0FORDJYNCAqCi0gKiAtLS0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKENMS0FORDJYNCkgewotICBhcmVhIDogMC4wOwotICBjZWxsX2xlYWthZ2VfcG93ZXIgOiAwLjI0NzYwNDsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQSkgIHsKLSAgICBkaXJlY3Rpb24gOiBpbnB1dDsKLSAgICBpbnB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDAuMDAxMzI1OTI7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDAuMDAxMzI1OTI7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAxMzIwMTk7Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByaXNlX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNDExLCAwLjAwMDQxLCAwLjAwMDQxLCAwLjAwMDQxLCAwLjAwMDQxLCAwLjAwMDQxLCAwLjAwMDQxIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKHBhc3NpdmVfZW5lcmd5X3RlbXBsYXRlXzd4MSkgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIHZhbHVlcyAoIjAuMDAwNDM2LCAwLjAwMDQxNSwgMC4wMDA0MTMsIDAuMDAwNDEyLCAwLjAwMDQxMiwgMC4wMDA0MTIsIDAuMDAwNDEyIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHBpbihCKSAgewotICAgIGRpcmVjdGlvbiA6IGlucHV0OwotICAgIGlucHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMC4wMDEyNzQ0MjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDEyNzQ0MjsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMC4wMDEyNzM5NTsKLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJpc2VfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDAxMDYsIDAuMDAwMTA1LCAwLjAwMDEwNSwgMC4wMDAxMDUsIDAuMDAwMTA1LCAwLjAwMDEwNSwgMC4wMDAxMDUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIocGFzc2l2ZV9lbmVyZ3lfdGVtcGxhdGVfN3gxKSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgdmFsdWVzICgiMC4wMDA1MiwgMC4wMDA1MjEsIDAuMDAwNTIxLCAwLjAwMDUyMSwgMC4wMDA1MjEsIDAuMDAwNTIsIDAuMDAwNTIiKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcGluKFkpICB7Ci0gICAgZGlyZWN0aW9uIDogb3V0cHV0OwotICAgIG91dHB1dF9zaWduYWxfbGV2ZWwgOiBSQUlMX1ZERDsKLSAgICBjYXBhY2l0YW5jZSA6IDA7Ci0gICAgcmlzZV9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDA7Ci0gICAgbWF4X2NhcGFjaXRhbmNlIDogMS4wNDMyNDsKLSAgICBmdW5jdGlvbiA6ICIoQSBCKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDYzNzYsIDAuMTIwMDg2LCAwLjE5MjMwMSwgMC4yNDM4NywgMC4zMjY0NCwgMC4zOTg1NjIsIDAuNTAxNzQxIiwgXAotICAgICAgICAgICIwLjA1NTM4OSwgMC4xMjkwNjcsIDAuMjAxMjk3LCAwLjI1Mjg0OCwgMC4zMzU0MjMsIDAuNDA3NTQ3LCAwLjUxMDgxNCIsIFwKLSAgICAgICAgICAiMC4wNjU4MzcsIDAuMTM5NDk5LCAwLjIxMTcwOSwgMC4yNjMzMzIsIDAuMzQ1ODI4LCAwLjQxODMxMiwgMC41MjEzMDgiLCBcCi0gICAgICAgICAgIjAuMDc1MTk4LCAwLjE0OTAzNiwgMC4yMjEyNjQsIDAuMjcyODMzLCAwLjM1NTQzNCwgMC40Mjc1NjIsIDAuNTMwNzg4IiwgXAotICAgICAgICAgICIwLjA4MzQ4NiwgMC4xNTc0ODIsIDAuMjI5Njk1LCAwLjI4MTMwNCwgMC4zNjM5MzEsIDAuNDM1OTczLCAwLjUzOTMzNCIsIFwKLSAgICAgICAgICAiMC4wOTUwMjgsIDAuMTY5NDU5LCAwLjI0MTY2NSwgMC4yOTMyNjcsIDAuMzc1ODUxLCAwLjQ0NzkxLCAwLjU1MTA0OCIsIFwKLSAgICAgICAgICAiMC4xMDM3MzUsIDAuMTc4MzQ2LCAwLjI1MDUzNSwgMC4zMDIwNzksIDAuMzg0NjI2LCAwLjQ1Njc2MiwgMC41NTk5NzQiKTsKLSAgICAgIH0KLSAgICAgIHJpc2VfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMzI2OTksIDAuMTc3OCwgMC4zMjU0MjMsIDAuNDMyODYzLCAwLjYwMTc5MywgMC43NTI0MjEsIDAuOTYzOTg2IiwgXAotICAgICAgICAgICIwLjAzMjU4OCwgMC4xNzc3ODIsIDAuMzI1NzYyLCAwLjQzMjE4NywgMC42MDE4MTYsIDAuNzUyMDgxLCAwLjk2MzU4NSIsIFwKLSAgICAgICAgICAiMC4wMzI5MywgMC4xNzc3OTUsIDAuMzI2MzEsIDAuNDMxOTI0LCAwLjYwMTk4OSwgMC43NTExMjEsIDAuOTYzNTg2IiwgXAotICAgICAgICAgICIwLjAzMzc1NiwgMC4xNzc5MjgsIDAuMzI1OTYsIDAuNDMyNzkxLCAwLjYwMjExMywgMC43NTE5MTYsIDAuOTYzNiIsIFwKLSAgICAgICAgICAiMC4wMzQ1NzUsIDAuMTc4MDQ0LCAwLjMyNjQ0NCwgMC40MzE5OTcsIDAuNjAyMTIsIDAuNzUyNDEyLCAwLjk2MzYyMiIsIFwKLSAgICAgICAgICAiMC4wMzU4NjEsIDAuMTc4NDMyLCAwLjMyNjA4MywgMC40MzIwNTcsIDAuNjAyMTM2LCAwLjc1MTg5MSwgMC45NjUwMjMiLCBcCi0gICAgICAgICAgIjAuMDM3MjI3LCAwLjE3ODcwNCwgMC4zMjY2NTUsIDAuNDMyNDE3LCAwLjYwMjA4NywgMC43NTIyOTcsIDAuOTYzMTY3Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDQ5NTgsIDAuMTI0NTg3LCAwLjE5ODA2MSwgMC4yNTA1MjksIDAuMzM0MzcyLCAwLjQwNzc4OSwgMC41MTI1NzYiLCBcCi0gICAgICAgICAgIjAuMDU5MzI3LCAwLjEzNDM0MywgMC4yMDc4NjQsIDAuMjYwMjg2LCAwLjM0NDE1NywgMC40MTc1NTQsIDAuNTIyMzYxIiwgXAotICAgICAgICAgICIwLjA3MTUzOCwgMC4xNDY1ODgsIDAuMjIwMTIxLCAwLjI3MjU0NywgMC4zNTY0MTQsIDAuNDI5OCwgMC41MzQ2MzIiLCBcCi0gICAgICAgICAgIjAuMDgzMDg3LCAwLjE1ODE4NywgMC4yMzE2OTIsIDAuMjg0MTYxLCAwLjM2ODAxNCwgMC40NDE0MDUsIDAuNTQ2MjMyIiwgXAotICAgICAgICAgICIwLjA5MzIzOSwgMC4xNjg1NDQsIDAuMjQyMDQzLCAwLjI5NDUyNCwgMC4zNzgzODksIDAuNDUxNzYsIDAuNTU2NTkyIiwgXAotICAgICAgICAgICIwLjEwNzA0MywgMC4xODI4MzEsIDAuMjU2MjksIDAuMzA4NzMyLCAwLjM5MjYxMSwgMC40NjYwMDksIDAuNTcwODI5IiwgXAotICAgICAgICAgICIwLjExNzY3LCAwLjE5Mzc1MiwgMC4yNjcxNzYsIDAuMzE5NjIsIDAuNDAzNTMsIDAuNDc2ODY5LCAwLjU4MTY4NSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzMjU5NSwgMC4xNzcyNTEsIDAuMzI1NTk3LCAwLjQzMjM0MiwgMC42MDIzNDQsIDAuNzQ5NTgyLCAwLjk2MzY4IiwgXAotICAgICAgICAgICIwLjAzMjU5NCwgMC4xNzc0NTYsIDAuMzI1NDI3LCAwLjQzMjM2OSwgMC42MDE2NDQsIDAuNzUwNjU0LCAwLjk2MjcwNSIsIFwKLSAgICAgICAgICAiMC4wMzI3NDEsIDAuMTc3NDU0LCAwLjMyNTQyMywgMC40MzIzNjcsIDAuNjAyNTIxLCAwLjc1MTIwOSwgMC45NjI3NjUiLCBcCi0gICAgICAgICAgIjAuMDMzNDUsIDAuMTc3ODA4LCAwLjMyNTY4MywgMC40MzIzMTIsIDAuNjAyNTIyLCAwLjc1MDk0NCwgMC45NjM5MTQiLCBcCi0gICAgICAgICAgIjAuMDM0NjE3LCAwLjE3Nzc3OSwgMC4zMjYxNzksIDAuNDMyMjgyLCAwLjYwMjU4MiwgMC43NTE0NSwgMC45NjM1OTMiLCBcCi0gICAgICAgICAgIjAuMDM2NTA0LCAwLjE3ODEwNywgMC4zMjYyMjEsIDAuNDMyMzc2LCAwLjYwMjIxNywgMC43NTE0NzQsIDAuOTY0Mjk0IiwgXAotICAgICAgICAgICIwLjAzODE0NiwgMC4xNzg3NzcsIDAuMzI2MjA3LCAwLjQzMTk1OSwgMC42MDIxMSwgMC43NTA5MSwgMC45NjQxNjQiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQiI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBwb3NpdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wNDQzMjUsIDAuMTE4MDA4LCAwLjE5MDIxNiwgMC4yNDE4NjcsIDAuMzI0MzY5LCAwLjM5NjQ5MSwgMC40OTk5MzUiLCBcCi0gICAgICAgICAgIjAuMDUzNTQ0LCAwLjEyNzI0MiwgMC4xOTk0NzcsIDAuMjUxMDI3LCAwLjMzMzU5MiwgMC40MDU3MTQsIDAuNTA4NjQ3IiwgXAotICAgICAgICAgICIwLjA2NTA4MiwgMC4xMzg3NDYsIDAuMjEwOTk4LCAwLjI2MjU1LCAwLjM0NTA4MiwgMC40MTcyOTYsIDAuNTIwNDY3IiwgXAotICAgICAgICAgICIwLjA3NDkzNywgMC4xNDg5MDcsIDAuMjIxMTI2LCAwLjI3MjcxOCwgMC4zNTUzNTMsIDAuNDI3NTE1LCAwLjUzMDY2MyIsIFwKLSAgICAgICAgICAiMC4wODM4NTgsIDAuMTU3OTA1LCAwLjIzMDEyMywgMC4yODE3MjIsIDAuMzY0MjkyLCAwLjQzNjM5NiwgMC41Mzk3NzMiLCBcCi0gICAgICAgICAgIjAuMDk1NDk5LCAwLjE2OTg1OSwgMC4yNDIwNDksIDAuMjkzNjM4LCAwLjM3NjExNiwgMC40NDgzMywgMC41NTE0NzMiLCBcCi0gICAgICAgICAgIjAuMTA0MzkzLCAwLjE3ODg1NSwgMC4yNTEwNiwgMC4zMDI2MTgsIDAuMzg1MDgsIDAuNDU3Mjc3LCAwLjU2MDQ3NyIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAzMjY0OCwgMC4xNzc3NjYsIDAuMzI2NDA0LCAwLjQzMjA2NSwgMC42MDIxNTUsIDAuNzUyMDE3LCAwLjk2MzgxMyIsIFwKLSAgICAgICAgICAiMC4wMzI1OTQsIDAuMTc3Nzc5LCAwLjMyNTc2OCwgMC40MzI1ODksIDAuNjAxODk3LCAwLjc1MjM4MiwgMC45NjI0MjMiLCBcCi0gICAgICAgICAgIjAuMDMzMDAxLCAwLjE3NzgwMSwgMC4zMjU4MzUsIDAuNDMyNzc1LCAwLjYwMTk4NiwgMC43NTA3NzMsIDAuOTYzMDgzIiwgXAotICAgICAgICAgICIwLjAzNDI0LCAwLjE3Nzg3MSwgMC4zMjYwMjEsIDAuNDMyODg4LCAwLjYwMjExLCAwLjc1MDk1NiwgMC45NjM1ODciLCBcCi0gICAgICAgICAgIjAuMDM1MzUzLCAwLjE3ODI5NCwgMC4zMjY1MTEsIDAuNDMyMTM3LCAwLjYwMjI2NywgMC43NTA3OTUsIDAuOTYzNjQyIiwgXAotICAgICAgICAgICIwLjAzNzIxLCAwLjE3ODc2NiwgMC4zMjY2LCAwLjQzMjI2NSwgMC42MDMxOTUsIDAuNzUyNDI0LCAwLjk2MzM5NSIsIFwKLSAgICAgICAgICAiMC4wMzkwMTEsIDAuMTc5MTY4LCAwLjMyNjgzLCAwLjQzMzEwNCwgMC42MDMyMDgsIDAuNzUyMzE3LCAwLjk2MzM1MSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA0Njg5NSwgMC4xMjE3OTcsIDAuMTk1MjMxLCAwLjI0NzY4OSwgMC4zMzE1NjIsIDAuNDA0OTM0LCAwLjUwOTc2OCIsIFwKLSAgICAgICAgICAiMC4wNTY1MDksIDAuMTMxMzUxLCAwLjIwNDgxMywgMC4yNTcyMSwgMC4zNDExMjMsIDAuNDE0NTUsIDAuNTE5Mjg4IiwgXAotICAgICAgICAgICIwLjA2ODczMSwgMC4xNDM0OTcsIDAuMjE2OTc1LCAwLjI2OTM3NSwgMC4zNTMzMTcsIDAuNDI2NzQ5LCAwLjUzMTYwMSIsIFwKLSAgICAgICAgICAiMC4wNzk3OCwgMC4xNTQzOTgsIDAuMjI3NzY0LCAwLjI4MDIxNCwgMC4zNjQxMzIsIDAuNDM3NjIzLCAwLjU0MjU1NSIsIFwKLSAgICAgICAgICAiMC4wODg5NzksIDAuMTY0MjU3LCAwLjIzNzY4NSwgMC4yOTAxNTMsIDAuMzc0MTI3LCAwLjQ0NzQzMSwgMC41NTI0MTMiLCBcCi0gICAgICAgICAgIjAuMTAyMzIsIDAuMTc3ODIyLCAwLjI1MTQwNSwgMC4zMDM4MzgsIDAuMzg3NzA1LCAwLjQ2MTE1MywgMC41NjYxMDMiLCBcCi0gICAgICAgICAgIjAuMTEyMzEyLCAwLjE4Nzk2MSwgMC4yNjEzMTYsIDAuMzEzNzM0LCAwLjM5NzYxOCwgMC40NzA5NjcsIDAuNTc2MTA1Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDMyNDMxLCAwLjE3NzQyNSwgMC4zMjUzMDYsIDAuNDMyMjkyLCAwLjYwMTQwMywgMC43NTEzODQsIDAuOTY0MjM2IiwgXAotICAgICAgICAgICIwLjAzMjMyNSwgMC4xNzcyMjUsIDAuMzI1MTA5LCAwLjQzMjI4NCwgMC42MDIwNDgsIDAuNzQ5ODgzLCAwLjk2NDM0NCIsIFwKLSAgICAgICAgICAiMC4wMzI1OTgsIDAuMTc3NTMyLCAwLjMyNTEyLCAwLjQzMjI3MSwgMC42MDA3NjEsIDAuNzUwMzEsIDAuOTYyMzQyIiwgXAotICAgICAgICAgICIwLjAzMzU1OSwgMC4xNzc3MzcsIDAuMzI1NDY1LCAwLjQzMjM2MywgMC42MDA3OTQsIDAuNzUwNzI1LCAwLjk2MTk5NyIsIFwKLSAgICAgICAgICAiMC4wMzUyOTksIDAuMTc3NzE4LCAwLjMyNjA0MiwgMC40MzEzNjQsIDAuNjAxMDk1LCAwLjc1MTMyOCwgMC45NjIwNDgiLCBcCi0gICAgICAgICAgIjAuMDM3MjQsIDAuMTc4NDQxLCAwLjMyNjI1NywgMC40MzI0OTIsIDAuNjAyNTk4LCAwLjc0OTI1NCwgMC45NjIwNDIiLCBcCi0gICAgICAgICAgIjAuMDM4NDgxLCAwLjE3ODcwNiwgMC4zMjYzODgsIDAuNDMyNTU0LCAwLjYwMTczNCwgMC43NTE1NjgsIDAuOTYxODczIik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQSI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDQ4MDEsIDAuMDA0OTIsIDAuMDA0OTMyLCAwLjAwNDkzOSwgMC4wMDQ5MzksIDAuMDA0OTM1LCAwLjAwNDk0MiIsIFwKLSAgICAgICAgICAiMC4wMDQ3MzksIDAuMDA0ODczLCAwLjAwNDg4OSwgMC4wMDQ4OTEsIDAuMDA0ODk1LCAwLjAwNDksIDAuMDA0OSIsIFwKLSAgICAgICAgICAiMC4wMDQ3MDEsIDAuMDA0ODQ2LCAwLjAwNDg2MiwgMC4wMDQ4NjgsIDAuMDA0ODc0LCAwLjAwNDg3NSwgMC4wMDQ4NzgiLCBcCi0gICAgICAgICAgIjAuMDA0NjkyLCAwLjAwNDgyNywgMC4wMDQ4NDcsIDAuMDA0ODU3LCAwLjAwNDg2MiwgMC4wMDQ4NjYsIDAuMDA0ODY5IiwgXAotICAgICAgICAgICIwLjAwNDY2NiwgMC4wMDQ4MTgsIDAuMDA0ODQ3LCAwLjAwNDg1MywgMC4wMDQ4NjEsIDAuMDA0ODY0LCAwLjAwNDg2NyIsIFwKLSAgICAgICAgICAiMC4wMDQ2NzIsIDAuMDA0ODE5LCAwLjAwNDg0OSwgMC4wMDQ4NiwgMC4wMDQ4NjgsIDAuMDA0ODczLCAwLjAwNDg4MiIsIFwKLSAgICAgICAgICAiMC4wMDQ2NzYsIDAuMDA0ODMsIDAuMDA0ODU2LCAwLjAwNDg3MSwgMC4wMDQ4ODUsIDAuMDA0ODg2LCAwLjAwNDg5NCIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDgsIDAuMTUsIDAuMiwgMC4yOCwgMC4zNSwgMC40NSIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDA2OTEsIDAuMDA3MDk4LCAwLjAwNzEyMiwgMC4wMDcxMjksIDAuMDA3MTM1LCAwLjAwNzEzOCwgMC4wMDcxNDEiLCBcCi0gICAgICAgICAgIjAuMDA2ODI4LCAwLjAwNzAzMywgMC4wMDcwNjIsIDAuMDA3MDcxLCAwLjAwNzA3OSwgMC4wMDcwODMsIDAuMDA3MDg3IiwgXAotICAgICAgICAgICIwLjAwNjgwMywgMC4wMDcwMTQsIDAuMDA3MDUxLCAwLjAwNzA2MywgMC4wMDcwNzQsIDAuMDA3MDc5LCAwLjAwNzA4NCIsIFwKLSAgICAgICAgICAiMC4wMDY3OSwgMC4wMDcwMDYsIDAuMDA3MDUxLCAwLjAwNzA2NywgMC4wMDcwOCwgMC4wMDcwODcsIDAuMDA3MDk0IiwgXAotICAgICAgICAgICIwLjAwNjgsIDAuMDA3MDExLCAwLjAwNzA2MSwgMC4wMDcwNzgsIDAuMDA3MDkzLCAwLjAwNzEwMSwgMC4wMDcxMDkiLCBcCi0gICAgICAgICAgIjAuMDA2ODQ3LCAwLjAwNzA0NSwgMC4wMDcwOTgsIDAuMDA3MTE3LCAwLjAwNzEzNSwgMC4wMDcxNDUsIDAuMDA3MTU0IiwgXAotICAgICAgICAgICIwLjAwNjg5MSwgMC4wMDcwODEsIDAuMDA3MTM5LCAwLjAwNzE1OSwgMC4wMDcxNzksIDAuMDA3MTg5LCAwLjAwNzIiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJCIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjA4LCAwLjE1LCAwLjIsIDAuMjgsIDAuMzUsIDAuNDUiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwNDc5NSwgMC4wMDQ5MjksIDAuMDA0OTQsIDAuMDA0OTQ2LCAwLjAwNDk0OCwgMC4wMDQ5NDcsIDAuMDA0OTUyIiwgXAotICAgICAgICAgICIwLjAwNDcxOCwgMC4wMDQ4NjMsIDAuMDA0ODg3LCAwLjAwNDg5LCAwLjAwNDg5NiwgMC4wMDQ5MDIsIDAuMDA0OSIsIFwKLSAgICAgICAgICAiMC4wMDQ3LCAwLjAwNDg0NSwgMC4wMDQ4NjksIDAuMDA0ODczLCAwLjAwNDg4NSwgMC4wMDQ4ODgsIDAuMDA0ODkxIiwgXAotICAgICAgICAgICIwLjAwNDcwMiwgMC4wMDQ4NDYsIDAuMDA0ODgxLCAwLjAwNDg5LCAwLjAwNDg5OSwgMC4wMDQ5MDEsIDAuMDA0OTA5IiwgXAotICAgICAgICAgICIwLjAwNDcxOCwgMC4wMDQ4NiwgMC4wMDQ4ODksIDAuMDA0ODk5LCAwLjAwNDkxLCAwLjAwNDkxNSwgMC4wMDQ5MTgiLCBcCi0gICAgICAgICAgIjAuMDA0NzM2LCAwLjAwNDg4NCwgMC4wMDQ5MTUsIDAuMDA0OTMzLCAwLjAwNDk0NCwgMC4wMDQ5NTMsIDAuMDA0OTU3IiwgXAotICAgICAgICAgICIwLjAwNDc4MiwgMC4wMDQ5MjMsIDAuMDA0OTYzLCAwLjAwNDk4LCAwLjAwNDk5MSwgMC4wMDQ5OTQsIDAuMDA1MDA2Iik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wOCwgMC4xNSwgMC4yLCAwLjI4LCAwLjM1LCAwLjQ1Iik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDYxNzIsIDAuMDA2MzY1LCAwLjAwNjM4OCwgMC4wMDYzOTUsIDAuMDA2NDAxLCAwLjAwNjQwNCwgMC4wMDY0MDciLCBcCi0gICAgICAgICAgIjAuMDA2MDU3LCAwLjAwNjI3NCwgMC4wMDYzMDIsIDAuMDA2MzExLCAwLjAwNjMxOSwgMC4wMDYzMjMsIDAuMDA2MzI2IiwgXAotICAgICAgICAgICIwLjAwNTk5OCwgMC4wMDYyMjUsIDAuMDA2MjY1LCAwLjAwNjI3OCwgMC4wMDYyODksIDAuMDA2Mjk1LCAwLjAwNjMiLCBcCi0gICAgICAgICAgIjAuMDA1OTkzLCAwLjAwNjIzNywgMC4wMDYyNzksIDAuMDA2MjkzLCAwLjAwNjMwNiwgMC4wMDYzMTIsIDAuMDA2MzE4IiwgXAotICAgICAgICAgICIwLjAwNjA3MywgMC4wMDYyNTksIDAuMDA2MzA2LCAwLjAwNjMyMSwgMC4wMDYzMzYsIDAuMDA2MzQzLCAwLjAwNjM1IiwgXAotICAgICAgICAgICIwLjAwNjA3NiwgMC4wMDYyNTEsIDAuMDA2MzAxLCAwLjAwNjMxNywgMC4wMDYzMzQsIDAuMDA2MzQzLCAwLjAwNjM1MSIsIFwKLSAgICAgICAgICAiMC4wMDYwNjcsIDAuMDA2Mjg0LCAwLjAwNjMzOSwgMC4wMDYzNTgsIDAuMDA2Mzc1LCAwLjAwNjM4NSwgMC4wMDYzOTciKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyogLS0tLS0tLS0tLS0tLS0tLS0gKgotICogRGVzaWduIDogT0FJMjExWEwgKgotICogLS0tLS0tLS0tLS0tLS0tLS0gKi8KLWNlbGwgKE9BSTIxMVhMKSB7Ci0gIGFyZWEgOiAwLjA7Ci0gIGNlbGxfbGVha2FnZV9wb3dlciA6IDAuMDgzNDkwMjsKLSAgcmFpbF9jb25uZWN0aW9uKCBWREQsIFJBSUxfVkREICk7Ci0gIHJhaWxfY29ubmVjdGlvbiggVlNTLCBSQUlMX1ZTUyApOwotICBwaW4oQTApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDU5Nzg2NTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA1OTY5MDE7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNTk3ODY1OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDIyNiwgMC4wMDAyMjYsIDAuMDAwMjI2LCAwLjAwMDIyNiwgMC4wMDAyMjYsIDAuMDAwMjI2LCAwLjAwMDIyNiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDIyNywgMC4wMDAyMjcsIDAuMDAwMjI3LCAwLjAwMDIyNywgMC4wMDAyMjcsIDAuMDAwMjI3LCAwLjAwMDIyNyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQTEpICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY2ODM0MjsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2NjgzNDI7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjY2NjI1OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDIyNiwgMC4wMDAyMjYsIDAuMDAwMjI2LCAwLjAwMDIyNiwgMC4wMDAyMjYsIDAuMDAwMjI2LCAwLjAwMDIyNiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDIyNywgMC4wMDAyMjcsIDAuMDAwMjI3LCAwLjAwMDIyNywgMC4wMDAyMjcsIDAuMDAwMjI3LCAwLjAwMDIyNyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQjApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY4NDgyOTsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2ODQ4Mjk7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjgzNjU1OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDIyNiwgMC4wMDAyMjYsIDAuMDAwMjI2LCAwLjAwMDIyNiwgMC4wMDAyMjYsIDAuMDAwMjI2LCAwLjAwMDIyNiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDIyNywgMC4wMDAyMjcsIDAuMDAwMjI3LCAwLjAwMDIyNywgMC4wMDAyMjcsIDAuMDAwMjI3LCAwLjAwMDIyNyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oQzApICB7Ci0gICAgZGlyZWN0aW9uIDogaW5wdXQ7Ci0gICAgaW5wdXRfc2lnbmFsX2xldmVsIDogUkFJTF9WREQ7Ci0gICAgY2FwYWNpdGFuY2UgOiAwLjAwMDY2NTQwNDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMC4wMDA2NjQ5Mzg7Ci0gICAgZmFsbF9jYXBhY2l0YW5jZSA6IDAuMDAwNjY1NDA0OwotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmlzZV9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDEzMiwgMC4wMDAxMzIsIDAuMDAwMTMyLCAwLjAwMDEzMiwgMC4wMDAxMzIsIDAuMDAwMTMyLCAwLjAwMDEzMiIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihwYXNzaXZlX2VuZXJneV90ZW1wbGF0ZV83eDEpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICB2YWx1ZXMgKCIwLjAwMDI1NywgMC4wMDAyNTcsIDAuMDAwMjU3LCAwLjAwMDI1NywgMC4wMDAyNTcsIDAuMDAwMjU3LCAwLjAwMDI1NyIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBwaW4oWSkgIHsKLSAgICBkaXJlY3Rpb24gOiBvdXRwdXQ7Ci0gICAgb3V0cHV0X3NpZ25hbF9sZXZlbCA6IFJBSUxfVkREOwotICAgIGNhcGFjaXRhbmNlIDogMDsKLSAgICByaXNlX2NhcGFjaXRhbmNlIDogMDsKLSAgICBmYWxsX2NhcGFjaXRhbmNlIDogMDsKLSAgICBtYXhfY2FwYWNpdGFuY2UgOiAwLjA1OTkxMzsKLSAgICBmdW5jdGlvbiA6ICIoISgoKEEwK0ExKSBCMCkgQzApKSI7Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTAiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE2MjYsIDAuMTg5MzE5LCAwLjQyOTA0NywgMC44MjgzOTIsIDEuMjI3MjgsIDIuMTU3NCwgMi42ODg4MyIsIFwKLSAgICAgICAgICAiMC4xNzEyMDYsIDAuMTk3OTE0LCAwLjQzNzQ2NCwgMC44MzY3NzQsIDEuMjM1NDIsIDIuMTY1ODEsIDIuNjk2NTciLCBcCi0gICAgICAgICAgIjAuMTgxMTMxLCAwLjIwNzg2OSwgMC40NDc2NDIsIDAuODQ2ODYyLCAxLjI0NTY4LCAyLjE3NTIzLCAyLjcwNzI1IiwgXAotICAgICAgICAgICIwLjE5MDk1OCwgMC4yMTc3MjcsIDAuNDU3NTg5LCAwLjg1NjUyNCwgMS4yNTUyNiwgMi4xODU5OSwgMi43MTczNiIsIFwKLSAgICAgICAgICAiMC4yMDA4NDYsIDAuMjI3NTQ0LCAwLjQ2NzQsIDAuODY2MzY0LCAxLjI2NDk0LCAyLjE5NTM5LCAyLjcyNzAxIiwgXAotICAgICAgICAgICIwLjIxNjU4OCwgMC4yNDMxMDEsIDAuNDgyNjA0LCAwLjg4MjQ5NiwgMS4yODA5NiwgMi4yMTIzMywgMi43NDMiLCBcCi0gICAgICAgICAgIjAuMjMwNjYzLCAwLjI1Njg1NywgMC40OTY5NTEsIDAuODk2MDg4LCAxLjI5NDg2LCAyLjIyNTk3LCAyLjc1NjY0Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjMwODcxNSwgMC4zNjI0OTUsIDAuODQ3NTgxLCAxLjY1NTk4LCAyLjQ2NDY4LCA0LjM1MDQsIDUuNDI3NzYiLCBcCi0gICAgICAgICAgIjAuMzA4NzExLCAwLjM2MjQxMywgMC44NDc3OTQsIDEuNjU2MDIsIDIuNDY0NjEsIDQuMzQ5NjUsIDUuNDMwMDciLCBcCi0gICAgICAgICAgIjAuMzA4Njg1LCAwLjM2MjQwNSwgMC44NDc2NjMsIDEuNjU2NSwgMi40NjQzNCwgNC4zNTEzNCwgNS40MjgyIiwgXAotICAgICAgICAgICIwLjMwOTEwOCwgMC4zNjI0MDEsIDAuODQ4MTUyLCAxLjY1NjcxLCAyLjQ2NTI1LCA0LjM1MTIzLCA1LjQyNzYzIiwgXAotICAgICAgICAgICIwLjMxMDY2OCwgMC4zNjM5MzgsIDAuODQ3OTY2LCAxLjY1NjA2LCAyLjQ2NDE0LCA0LjM1MTQyLCA1LjQyODYzIiwgXAotICAgICAgICAgICIwLjMxNDgyNywgMC4zNjY5OSwgMC44NDc2MDUsIDEuNjU2LCAyLjQ2NDc5LCA0LjM1MDk0LCA1LjQyODI0IiwgXAotICAgICAgICAgICIwLjMyMDQwNSwgMC4zNzE4MSwgMC44NDc4NjcsIDEuNjU1ODQsIDIuNDY0MjksIDQuMzUwMzYsIDUuNDI4OCIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMjc2MTEsIDAuMjY1MDg3LCAwLjYwMjUwNSwgMS4xNjQ4NywgMS43MjYxMSwgMy4wMzcxOSwgMy43ODQ3MyIsIFwKLSAgICAgICAgICAiMC4yMzcwOTksIDAuMjc0NDc2LCAwLjYxMTk5NiwgMS4xNzM4MSwgMS43MzY0MSwgMy4wNDU4NSwgMy43OTQyMyIsIFwKLSAgICAgICAgICAiMC4yNDcxMTUsIDAuMjg0NTYyLCAwLjYyMjE0MiwgMS4xODM5NCwgMS43NDY1NiwgMy4wNTYwMywgMy44MDQ0OCIsIFwKLSAgICAgICAgICAiMC4yNTYzODksIDAuMjkzODY3LCAwLjYzMTE1MywgMS4xOTM1NiwgMS43NTU2LCAzLjA2NTc3LCAzLjgxMzgzIiwgXAotICAgICAgICAgICIwLjI2NTM4MywgMC4zMDI5MzQsIDAuNjQwMzYyLCAxLjIwMjIyLCAxLjc2NDM3LCAzLjA3NDM5LCAzLjgyMjk1IiwgXAotICAgICAgICAgICIwLjI3OTYsIDAuMzE3MTczLCAwLjY1NDYzNSwgMS4yMTY1NiwgMS43Nzg0MywgMy4wODg5NCwgMy44Mzc0MyIsIFwKLSAgICAgICAgICAiMC4yOTE5OTYsIDAuMzI5NTk1LCAwLjY2NzI5OSwgMS4yMjkzNiwgMS43OTE3NiwgMy4xMDE0MSwgMy44NTAxNiIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC40MTI1ODMsIDAuNDg1ODksIDEuMTQ2NDIsIDIuMjQ3MDQsIDMuMzQ1MiwgNS45MTA0MiwgNy4zNzU5MSIsIFwKLSAgICAgICAgICAiMC40MTI1MzEsIDAuNDg1NzMsIDEuMTQ2MTQsIDIuMjQ2NTQsIDMuMzQ2ODEsIDUuOTEwNiwgNy4zNzgyNSIsIFwKLSAgICAgICAgICAiMC40MTI1NTksIDAuNDg2MDg2LCAxLjE0NTg2LCAyLjI0NTU0LCAzLjM0NzA1LCA1LjkxMjA2LCA3LjM3NzM2IiwgXAotICAgICAgICAgICIwLjQxMjQ4NSwgMC40ODYwNDQsIDEuMTQ2NjYsIDIuMjQ2NCwgMy4zNDYsIDUuOTEwMzksIDcuMzc4IiwgXAotICAgICAgICAgICIwLjQxMjcsIDAuNDg1ODk5LCAxLjE0NjE2LCAyLjI0NjQsIDMuMzQ1MjgsIDUuOTA5ODEsIDcuMzc4NjQiLCBcCi0gICAgICAgICAgIjAuNDE0NDg0LCAwLjQ4NzEyMywgMS4xNDY0NywgMi4yNDYwNSwgMy4zNDU2NCwgNS45MDkzNywgNy4zNzgwNCIsIFwKLSAgICAgICAgICAiMC40MTY3OTYsIDAuNDg4OTkxLCAxLjE0NjA1LCAyLjI0NjQ2LCAzLjM0NTY2LCA1LjkxMzQyLCA3LjM3OTExIik7Ci0gICAgICB9Ci0gICAgfQotICAgIHRpbWluZygpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkExIjsKLSAgICAgIHRpbWluZ19zZW5zZSA6IG5lZ2F0aXZlX3VuYXRlOwotICAgICAgY2VsbF9yaXNlKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNTkwNzksIDAuMTg1ODE3LCAwLjQyNTY2MiwgMC44MjQ3MTQsIDEuMjIzMDMsIDIuMTUzMjksIDIuNjg1NjYiLCBcCi0gICAgICAgICAgIjAuMTY4MDY4LCAwLjE5NDc2NCwgMC40MzQ0MiwgMC44MzM1MjYsIDEuMjMyODgsIDIuMTYzNzgsIDIuNjk0NDgiLCBcCi0gICAgICAgICAgIjAuMTc5MTUyLCAwLjIwNTg1OSwgMC40NDU1NDksIDAuODQ0NjE0LCAxLjI0MzI0LCAyLjE3MzAyLCAyLjcwNTEzIiwgXAotICAgICAgICAgICIwLjE5MDUyLCAwLjIxNzIzNiwgMC40NTcwMTUsIDAuODU2NDE5LCAxLjI1NDY3LCAyLjE4NTQxLCAyLjcxNjc3IiwgXAotICAgICAgICAgICIwLjIwMTg4MSwgMC4yMjg2MzQsIDAuNDY4MzAzLCAwLjg2Nzc4NywgMS4yNjY3MiwgMi4xOTY2LCAyLjcyODM3IiwgXAotICAgICAgICAgICIwLjIyMDE1OCwgMC4yNDY4MjksIDAuNDg2NTA4LCAwLjg4NTQwMiwgMS4yODM5LCAyLjIxNDEsIDIuNzQ2IiwgXAotICAgICAgICAgICIwLjIzNjMxMSwgMC4yNjI3OTMsIDAuNTAyNTE0LCAwLjkwMTUzNywgMS4zMDA2NiwgMi4yMzE1MSwgMi43NjEzNiIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4zMDgzNjUsIDAuMzYyNjczLCAwLjg0NzU0NywgMS42NTYwOCwgMi40NjQ5OSwgNC4zNTExNCwgNS40Mjg0NyIsIFwKLSAgICAgICAgICAiMC4zMDgzODIsIDAuMzYyMjk2LCAwLjg0NzM3MywgMS42NTYxNiwgMi40NjQ0NCwgNC4zNTA2NSwgNS40MyIsIFwKLSAgICAgICAgICAiMC4zMDg1MDMsIDAuMzYyMjgsIDAuODQ3NTE0LCAxLjY1NjQ0LCAyLjQ2NDM5LCA0LjM1MjMzLCA1LjQyODc2IiwgXAotICAgICAgICAgICIwLjMwOTEzNSwgMC4zNjI3NjIsIDAuODQ4MTIyLCAxLjY1NiwgMi40NjUyNSwgNC4zNTAzNywgNS40Mjc2NSIsIFwKLSAgICAgICAgICAiMC4zMTE5MywgMC4zNjQyNTUsIDAuODQ3NDg4LCAxLjY1NTk5LCAyLjQ2NDQsIDQuMzUwOTIsIDUuNDI3MTYiLCBcCi0gICAgICAgICAgIjAuMzE4Nzc2LCAwLjM3MDA2NiwgMC44NDc3NDUsIDEuNjU1OTUsIDIuNDY0MTYsIDQuMzUxMjYsIDUuNDI4OTMiLCBcCi0gICAgICAgICAgIjAuMzI2NTY4LCAwLjM3Njg2LCAwLjg0ODEzMiwgMS42NTYwMSwgMi40NjQ0MSwgNC4zNTA2MywgNS40MzEyNiIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMTgyMzEsIDAuMjU1NDEsIDAuNTg4NDQzLCAxLjE0NDU4LCAxLjY5OTU5LCAyLjk5NTI3LCAzLjczNDkyIiwgXAotICAgICAgICAgICIwLjIyODAxNywgMC4yNjQ5NTQsIDAuNTk4NzE5LCAxLjE1MzkyLCAxLjcwOTI0LCAzLjAwNDU3LCAzLjc0NDU0IiwgXAotICAgICAgICAgICIwLjIzODAxMiwgMC4yNzUwMTYsIDAuNjA4NzUzLCAxLjE2NDEzLCAxLjcyMDUsIDMuMDE1MDEsIDMuNzU0OTIiLCBcCi0gICAgICAgICAgIjAuMjQ3MTUxLCAwLjI4NDMzMiwgMC42MTc3OTgsIDEuMTczOTksIDEuNzI5NCwgMy4wMjQ5NiwgMy43NjQyOSIsIFwKLSAgICAgICAgICAiMC4yNTYxOTMsIDAuMjkzMzY2LCAwLjYyNjk1MiwgMS4xODI1MSwgMS43Mzc2NywgMy4wMzQ0NCwgMy43NzMyNCIsIFwKLSAgICAgICAgICAiMC4yNzA0MjgsIDAuMzA3NjU0LCAwLjY0MTM0OCwgMS4xOTY5MywgMS43NTI0NCwgMy4wNDgwOSwgMy43ODgwOCIsIFwKLSAgICAgICAgICAiMC4yODI5MzUsIDAuMzE5OTUyLCAwLjY1MzkyOSwgMS4yMDk0MiwgMS43NjU3LCAzLjA2MDk0LCAzLjgwMDgyIik7Ci0gICAgICB9Ci0gICAgICBmYWxsX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjQwMDQ0NiwgMC40NzIxOTksIDEuMTI2NDksIDIuMjExMDksIDMuMzA3OTgsIDUuODM0NzksIDcuMjgzMTQiLCBcCi0gICAgICAgICAgIjAuNDAyNzUzLCAwLjQ3Mjk2MiwgMS4xMjQwNiwgMi4yMTcxMywgMy4zMDcxNiwgNS44MzgxLCA3LjI4Mjk0IiwgXAotICAgICAgICAgICIwLjQwMjU5LCAwLjQ3MzAyLCAxLjEyNDM2LCAyLjIxNzEyLCAzLjI5ODA0LCA1LjgzNzk4LCA3LjI4MjM5IiwgXAotICAgICAgICAgICIwLjQwMDcxOCwgMC40NzIxOTEsIDEuMTI3MDMsIDIuMjExMjUsIDMuMjk4NTgsIDUuODM4ODUsIDcuMjgyNTgiLCBcCi0gICAgICAgICAgIjAuNDAyNTk0LCAwLjQ3NTQzNCwgMS4xMjUwNiwgMi4yMTI2OSwgMy4zMDY3MywgNS44MzkxMSwgNy4yODIyNiIsIFwKLSAgICAgICAgICAiMC40MDI3ODgsIDAuNDc0NTQ2LCAxLjEyNywgMi4yMTY1LCAzLjMwNDIyLCA1LjgzNzk3LCA3LjI4MjQ2IiwgXAotICAgICAgICAgICIwLjQwNTM5MiwgMC40NzY1NTcsIDEuMTI2MTQsIDIuMjE2ODIsIDMuMzA3OTIsIDUuODM0NjQsIDcuMjgyNjEiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGltaW5nKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQjAiOwotICAgICAgdGltaW5nX3NlbnNlIDogbmVnYXRpdmVfdW5hdGU7Ci0gICAgICBjZWxsX3Jpc2UoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjA4MjYxNCwgMC4wOTY3ODcsIDAuMjIzOTc2LCAwLjQzNTk0MSwgMC42NDc4ODYsIDEuMTQyNTgsIDEuNDI1MjEiLCBcCi0gICAgICAgICAgIjAuMDkyNTksIDAuMTA2NzU5LCAwLjIzNDAxLCAwLjQ0NTkwMSwgMC42NTc4OTUsIDEuMTUyNjcsIDEuNDM0ODkiLCBcCi0gICAgICAgICAgIjAuMTA0NiwgMC4xMTg4ODksIDAuMjQ1OTg0LCAwLjQ1NzAwMiwgMC42Njg5OTQsIDEuMTYzNTgsIDEuNDQ2MDEiLCBcCi0gICAgICAgICAgIjAuMTE2OTQ4LCAwLjEzMTA3OSwgMC4yNTgzMTksIDAuNDcwMjU5LCAwLjY4MTY4MSwgMS4xNzUyNywgMS40NTc4NiIsIFwKLSAgICAgICAgICAiMC4xMjk2OTEsIDAuMTQzODAxLCAwLjI3MDc4NCwgMC40ODI1MzcsIDAuNjk0NTE0LCAxLjE4NzI4LCAxLjQ3MDM3IiwgXAotICAgICAgICAgICIwLjE0OTgxMywgMC4xNjM5NywgMC4yOTAzNzcsIDAuNTAyMzE0LCAwLjcxNDE0OCwgMS4yMDcyNiwgMS40ODkxNCIsIFwKLSAgICAgICAgICAiMC4xNjcyMTQsIDAuMTgxNjk4LCAwLjMwNzY4NywgMC41MTk3NjUsIDAuNzMxNDQ0LCAxLjIyMzgzLCAxLjUwNjk0Iik7Ci0gICAgICB9Ci0gICAgICByaXNlX3RyYW5zaXRpb24oZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjE2NjAwOSwgMC4xOTQ5NjEsIDAuNDU1Mzk3LCAwLjg4OTc5NiwgMS4zMjM5NywgMi4zMzc4MSwgMi45MTcxIiwgXAotICAgICAgICAgICIwLjE2NTk2OSwgMC4xOTQ5MzcsIDAuNDU1NDgsIDAuODg5NzExLCAxLjMyNDE0LCAyLjMzNzg3LCAyLjkxNzMxIiwgXAotICAgICAgICAgICIwLjE2NzM0LCAwLjE5NTU1OCwgMC40NTU0NDQsIDAuODg5NjMxLCAxLjMyNDAxLCAyLjMzNzkyLCAyLjkxNzA0IiwgXAotICAgICAgICAgICIwLjE3MTU1MiwgMC4xOTg5MzUsIDAuNDU1MzcxLCAwLjg4OTc2NiwgMS4zMjM5MSwgMi4zMzgyNCwgMi45MTcxNSIsIFwKLSAgICAgICAgICAiMC4xNzcwODIsIDAuMjAzODQ5LCAwLjQ1NTg5MSwgMC44ODk3NjUsIDEuMzI0MTMsIDIuMzM3MzUsIDIuOTE3NDYiLCBcCi0gICAgICAgICAgIjAuMTg4MTk2LCAwLjIxMzk4LCAwLjQ1OTU0LCAwLjg4OTU4NCwgMS4zMjQxNCwgMi4zMzc4LCAyLjkxNzA5IiwgXAotICAgICAgICAgICIwLjE5OTM2OCwgMC4yMjQ0MTUsIDAuNDY0OTI4LCAwLjg4OTcxNCwgMS4zMjM5MSwgMi4zMzc3MiwgMi45MTcwOSIpOwotICAgICAgfQotICAgICAgY2VsbF9mYWxsKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4yMjE5ODgsIDAuMjU5NDksIDAuNTk2NzgyLCAxLjE1ODcsIDEuNzIxMjMsIDMuMDMwODIsIDMuNzc5MjUiLCBcCi0gICAgICAgICAgIjAuMjMwNjIxLCAwLjI2ODA3MiwgMC42MDU1NCwgMS4xNjcxNSwgMS43Mjk2OSwgMy4wMzk4OCwgMy43ODgxMiIsIFwKLSAgICAgICAgICAiMC4yNDExMzcsIDAuMjc4Njk2LCAwLjYxNjIzNSwgMS4xNzc5NCwgMS43NDAyOSwgMy4wNTA3LCAzLjc5ODkzIiwgXAotICAgICAgICAgICIwLjI1MTY5NiwgMC4yODkyODUsIDAuNjI2OTE4LCAxLjE4ODg0LCAxLjc1MTAxLCAzLjA2MSwgMy44MDk1NiIsIFwKLSAgICAgICAgICAiMC4yNjIxOTIsIDAuMjk5NDI2LCAwLjYzNzMzOSwgMS4xOTk4MywgMS43NjIxOSwgMy4wNzE5NSwgMy44MjAzOSIsIFwKLSAgICAgICAgICAiMC4yNzkyODQsIDAuMzE2ODU0LCAwLjY1NDQ2MSwgMS4yMTY3NywgMS43NzkwMiwgMy4wODk0MSwgMy44Mzc3OCIsIFwKLSAgICAgICAgICAiMC4yOTM2NDMsIDAuMzMxMzQ4LCAwLjY2OTIyOCwgMS4yMzE1MiwgMS43OTMxOSwgMy4xMDM4NiwgMy44NTIzOSIpOwotICAgICAgfQotICAgICAgZmFsbF90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC40MTI2MTIsIDAuNDg1OTQ2LCAxLjE0NjM2LCAyLjI0NTU4LCAzLjM0Njc5LCA1LjkxMTg2LCA3LjM3NzQ4IiwgXAotICAgICAgICAgICIwLjQxMjUxNiwgMC40ODU3NDcsIDEuMTQ1OTUsIDIuMjQ2MDIsIDMuMzQ1NTIsIDUuOTEwMzUsIDcuMzc2NDkiLCBcCi0gICAgICAgICAgIjAuNDEyNjkyLCAwLjQ4NjA4NSwgMS4xNDU5MSwgMi4yNDYwMywgMy4zNDUzNywgNS45MDk0NiwgNy4zNzYwOCIsIFwKLSAgICAgICAgICAiMC40MTI1MzcsIDAuNDg1ODI5LCAxLjE0NjEsIDIuMjQ2MTcsIDMuMzQ2NjEsIDUuOTA5MywgNy4zNzg1NCIsIFwKLSAgICAgICAgICAiMC40MTI4MzYsIDAuNDg1Nzk4LCAxLjE0NjQ2LCAyLjI0NjI2LCAzLjM0NywgNS45MTA4OSwgNy4zNzkwMSIsIFwKLSAgICAgICAgICAiMC40MTU3OCwgMC40ODc2ODksIDEuMTQ2NjgsIDIuMjQ2MTUsIDMuMzQ2OTksIDUuOTEwNDUsIDcuMzc5MjkiLCBcCi0gICAgICAgICAgIjAuNDE5NDQ5LCAwLjQ5MDc4OSwgMS4xNDY2MSwgMi4yNDYzNSwgMy4zNDQ3NCwgNS45MTE0OCwgNy4zNzY3MyIpOwotICAgICAgfQotICAgIH0KLSAgICB0aW1pbmcoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJDMCI7Ci0gICAgICB0aW1pbmdfc2Vuc2UgOiBuZWdhdGl2ZV91bmF0ZTsKLSAgICAgIGNlbGxfcmlzZShkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDgwOTMxLCAwLjA5NTA4MywgMC4yMjIyNiwgMC40MzQxMDUsIDAuNjQ2NDQ4LCAxLjE0MDYzLCAxLjQyMzciLCBcCi0gICAgICAgICAgIjAuMDkwNzk5LCAwLjEwNDkzNywgMC4yMzIxMzQsIDAuNDQ0MDYxLCAwLjY1NjEzMiwgMS4xNTA4LCAxLjQzMzEiLCBcCi0gICAgICAgICAgIjAuMTAyOTgzLCAwLjExNzE0MywgMC4yNDQzMTksIDAuNDU1MzcsIDAuNjY3Mjg3LCAxLjE2MTg2LCAxLjQ0NDg2IiwgXAotICAgICAgICAgICIwLjExNTMwOSwgMC4xMjk0NDUsIDAuMjU2NjkyLCAwLjQ2ODU1MywgMC42NzkzNTksIDEuMTczODksIDEuNDU2NTciLCBcCi0gICAgICAgICAgIjAuMTI4MTU4LCAwLjE0MjI1NiwgMC4yNjkxODMsIDAuNDgwODU0LCAwLjY5MTU0NiwgMS4xODU5MiwgMS40Njg2NCIsIFwKLSAgICAgICAgICAiMC4xNDgyLCAwLjE2MjM3LCAwLjI4ODcwNiwgMC41MDA3NjgsIDAuNzEyNDgyLCAxLjIwNjE0LCAxLjQ4ODA0IiwgXAotICAgICAgICAgICIwLjE2NTUxNCwgMC4xNzk4ODYsIDAuMzA2MDUyLCAwLjUxODE2LCAwLjcyOTc5MSwgMS4yMjI1NCwgMS41MDU4OCIpOwotICAgICAgfQotICAgICAgcmlzZV90cmFuc2l0aW9uKGRlbGF5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4xNjQxMTcsIDAuMTkzMDAyLCAwLjQ1MzQzNCwgMC44ODc3NzEsIDEuMzIyMzQsIDIuMzM2NTgsIDIuOTE2MjciLCBcCi0gICAgICAgICAgIjAuMTY0MTAxLCAwLjE5MzAxNywgMC40NTM0OSwgMC44ODc3OSwgMS4zMjIzNywgMi4zMzY0NywgMi45MTQ4MSIsIFwKLSAgICAgICAgICAiMC4xNjU0OTUsIDAuMTkzNjk1LCAwLjQ1MzM0NiwgMC44ODc4NTMsIDEuMzIxOTQsIDIuMzM2MzksIDIuOTE0NzEiLCBcCi0gICAgICAgICAgIjAuMTY5NzY4LCAwLjE5NzE0NCwgMC40NTMzODcsIDAuODg3NjcxLCAxLjMyMjI3LCAyLjMzNjE0LCAyLjkxNjcyIiwgXAotICAgICAgICAgICIwLjE3NTMzMywgMC4yMDIwMTQsIDAuNDUzODE4LCAwLjg4NzgzNiwgMS4zMjIzNywgMi4zMzYyNiwgMi45MTQ4MiIsIFwKLSAgICAgICAgICAiMC4xODY1MjksIDAuMjEyMjEzLCAwLjQ1NzU0NCwgMC44ODc3OTksIDEuMzIyMDIsIDIuMzM1NDUsIDIuOTE1MjMiLCBcCi0gICAgICAgICAgIjAuMTk3NzY5LCAwLjIyMjU1OSwgMC40NjI5ODYsIDAuODg3OTEzLCAxLjMyMjA1LCAyLjMzNjI1LCAyLjkxNTU3Iik7Ci0gICAgICB9Ci0gICAgICBjZWxsX2ZhbGwoZGVsYXlfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjIxNzMxOSwgMC4yNTQ5MjQsIDAuNTkyMTg1LCAxLjE1NDMzLCAxLjcxNTk2LCAzLjAyNjE4LCAzLjc3NDY1IiwgXAotICAgICAgICAgICIwLjIyNjA0NywgMC4yNjM0NzksIDAuNjAxMTU5LCAxLjE2Mjg1LCAxLjcyNTIxLCAzLjAzNTQ0LCAzLjc4MzI2IiwgXAotICAgICAgICAgICIwLjIzNjY4MiwgMC4yNzQzMzMsIDAuNjExNzIxLCAxLjE3NDA5LCAxLjczNTMsIDMuMDQ2NjQsIDMuNzk0NDUiLCBcCi0gICAgICAgICAgIjAuMjQ2MzA3LCAwLjI4NTExNywgMC42MjI0ODMsIDEuMTg0NzIsIDEuNzQ3MDMsIDMuMDU2NzcsIDMuODA1MzMiLCBcCi0gICAgICAgICAgIjAuMjU4Mzg2LCAwLjI5NTkzOCwgMC42MzM2OTgsIDEuMTk1OTMsIDEuNzU4MzksIDMuMDY3ODgsIDMuODE2MzIiLCBcCi0gICAgICAgICAgIjAuMjc1ODgzLCAwLjMxMzUxOSwgMC42NTA5MTksIDEuMjEyODksIDEuNzc1NDYsIDMuMDg2MTMsIDMuODMzOTYiLCBcCi0gICAgICAgICAgIjAuMjkxNDA0LCAwLjMyODg2MiwgMC42NjYzMzIsIDEuMjI4NTksIDEuNzkwMDQsIDMuMTAwNjMsIDMuODQ5MTUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfdHJhbnNpdGlvbihkZWxheV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuNDEyNjk4LCAwLjQ4NTkwNywgMS4xNDYyOSwgMi4yNDU4NCwgMy4zNDU3LCA1LjkxMjYsIDcuMzc3NzQiLCBcCi0gICAgICAgICAgIjAuNDEyNTM1LCAwLjQ4NTczNCwgMS4xNDU4NywgMi4yNDYzNSwgMy4zNDU2MSwgNS45MTA0LCA3LjM3ODMxIiwgXAotICAgICAgICAgICIwLjQxMjQwNywgMC40ODU4OTcsIDEuMTQ1OTEsIDIuMjQ2OTUsIDMuMzQ0NzIsIDUuOTEwNywgNy4zNzg3NSIsIFwKLSAgICAgICAgICAiMC40MTIzNCwgMC40ODU4MTcsIDEuMTQ2MjEsIDIuMjQ2MTcsIDMuMzQ2MzEsIDUuOTA5MjUsIDcuMzc4NjEiLCBcCi0gICAgICAgICAgIjAuNDEyOTg3LCAwLjQ4NTc2MSwgMS4xNDU4LCAyLjI0NjQsIDMuMzQ3MiwgNS45MTA5NCwgNy4zNzYwNiIsIFwKLSAgICAgICAgICAiMC40MTY5MjMsIDAuNDg4NTg1LCAxLjE0NjU2LCAyLjI0NjEzLCAzLjM0NTYzLCA1LjkwODYxLCA3LjM3OTA4IiwgXAotICAgICAgICAgICIwLjQyMjUxNSwgMC40OTI2NiwgMS4xNDYyLCAyLjI0NjY2LCAzLjM0NDc2LCA1LjkwOTMsIDcuMzc2ODgiKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaW50ZXJuYWxfcG93ZXIoKSB7Ci0gICAgICByZWxhdGVkX3BpbiA6ICJBMCI7Ci0gICAgICByaXNlX3Bvd2VyKGVuZXJneV90ZW1wbGF0ZV83eDcpIHsKLSAgICAgICAgaW5kZXhfMSAoIjAuMDA4LCAwLjA0LCAwLjA4LCAwLjEyLCAwLjE2LCAwLjIyNCwgMC4yOCIpOwotICAgICAgICBpbmRleF8yICgiMC4wMSwgMC4wMTIsIDAuMDMsIDAuMDYsIDAuMDksIDAuMTYsIDAuMiIpOwotICAgICAgICB2YWx1ZXMgKCBcCi0gICAgICAgICAgIjAuMDAyMTUxLCAwLjAwMjE1MSwgMC4wMDIxNSwgMC4wMDIxNDksIDAuMDAyMTQ5LCAwLjAwMjE0NywgMC4wMDIxNDUiLCBcCi0gICAgICAgICAgIjAuMDAyMTQyLCAwLjAwMjE0MiwgMC4wMDIxNDIsIDAuMDAyMTQyLCAwLjAwMjE0MywgMC4wMDIxMzYsIDAuMDAyMTM3IiwgXAotICAgICAgICAgICIwLjAwMjEzOSwgMC4wMDIxNCwgMC4wMDIxNCwgMC4wMDIxNCwgMC4wMDIxMzksIDAuMDAyMTM3LCAwLjAwMjEzNiIsIFwKLSAgICAgICAgICAiMC4wMDIxMzgsIDAuMDAyMTM4LCAwLjAwMjEzOSwgMC4wMDIxMzksIDAuMDAyMTM4LCAwLjAwMjEzOCwgMC4wMDIxMzYiLCBcCi0gICAgICAgICAgIjAuMDAyMTM2LCAwLjAwMjEzNywgMC4wMDIxMzksIDAuMDAyMTM5LCAwLjAwMjEzOCwgMC4wMDIxMzcsIDAuMDAyMTM2IiwgXAotICAgICAgICAgICIwLjAwMjEzNiwgMC4wMDIxMzcsIDAuMDAyMTM2LCAwLjAwMjEzOCwgMC4wMDIxMzgsIDAuMDAyMTM3LCAwLjAwMjEzNSIsIFwKLSAgICAgICAgICAiMC4wMDIxMzcsIDAuMDAyMTM3LCAwLjAwMjEzOCwgMC4wMDIxMzksIDAuMDAyMTM4LCAwLjAwMjEzNiwgMC4wMDIxMzUiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDA2MTUsIDAuMDAwNjE1LCAwLjAwMDYxNSwgMC4wMDA2MTQsIDAuMDAwNjE1LCAwLjAwMDYxNSwgMC4wMDA2MTQiLCBcCi0gICAgICAgICAgIjAuMDAwNjA2LCAwLjAwMDYwNiwgMC4wMDA2MDgsIDAuMDAwNjA4LCAwLjAwMDYwNywgMC4wMDA2MDgsIDAuMDAwNjA3IiwgXAotICAgICAgICAgICIwLjAwMDYwMSwgMC4wMDA2MDIsIDAuMDAwNjA1LCAwLjAwMDYwNiwgMC4wMDA2MDYsIDAuMDAwNjA2LCAwLjAwMDYwNiIsIFwKLSAgICAgICAgICAiMC4wMDA1OTgsIDAuMDAwNTk5LCAwLjAwMDYwNCwgMC4wMDA2MDUsIDAuMDAwNjA2LCAwLjAwMDYwNiwgMC4wMDA2MDYiLCBcCi0gICAgICAgICAgIjAuMDAwNTk1LCAwLjAwMDU5NiwgMC4wMDA2MDIsIDAuMDAwNjA0LCAwLjAwMDYwNSwgMC4wMDA2MDUsIDAuMDAwNjA1IiwgXAotICAgICAgICAgICIwLjAwMDU5MSwgMC4wMDA1OTMsIDAuMDAwNiwgMC4wMDA2MDMsIDAuMDAwNjA0LCAwLjAwMDYwNSwgMC4wMDA2MDUiLCBcCi0gICAgICAgICAgIjAuMDAwNTg5LCAwLjAwMDU5MSwgMC4wMDA1OTksIDAuMDAwNjAyLCAwLjAwMDYwNCwgMC4wMDA2MDQsIDAuMDAwNjA0Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQTEiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTk1OCwgMC4wMDE5NTgsIDAuMDAxOTU4LCAwLjAwMTk1NywgMC4wMDE5NTcsIDAuMDAxOTU3LCAwLjAwMTk1NCIsIFwKLSAgICAgICAgICAiMC4wMDE5NDgsIDAuMDAxOTQ5LCAwLjAwMTk0OSwgMC4wMDE5NSwgMC4wMDE5NDksIDAuMDAxOTQ3LCAwLjAwMTk0NiIsIFwKLSAgICAgICAgICAiMC4wMDE5NDUsIDAuMDAxOTQ1LCAwLjAwMTk0NywgMC4wMDE5NDcsIDAuMDAxOTQ2LCAwLjAwMTk0NSwgMC4wMDE5NDQiLCBcCi0gICAgICAgICAgIjAuMDAxOTQ0LCAwLjAwMTk0NCwgMC4wMDE5NDYsIDAuMDAxOTQ2LCAwLjAwMTk0NiwgMC4wMDE5NDQsIDAuMDAxOTQzIiwgXAotICAgICAgICAgICIwLjAwMTk0NCwgMC4wMDE5NDQsIDAuMDAxOTQ1LCAwLjAwMTk0NiwgMC4wMDE5NDUsIDAuMDAxOTQ0LCAwLjAwMTk0MyIsIFwKLSAgICAgICAgICAiMC4wMDE5NDYsIDAuMDAxOTQ2LCAwLjAwMTk0NiwgMC4wMDE5NDYsIDAuMDAxOTQ1LCAwLjAwMTk0NCwgMC4wMDE5NDMiLCBcCi0gICAgICAgICAgIjAuMDAxOTUsIDAuMDAxOTUsIDAuMDAxOTQ4LCAwLjAwMTk0NywgMC4wMDE5NDYsIDAuMDAxOTQzLCAwLjAwMTk0MyIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDQxNSwgMC4wMDA0MTYsIDAuMDAwNDE3LCAwLjAwMDQxNywgMC4wMDA0MTcsIDAuMDAwNDE3LCAwLjAwMDQxNyIsIFwKLSAgICAgICAgICAiMC4wMDA0MTQsIDAuMDAwNDE1LCAwLjAwMDQyLCAwLjAwMDQyMiwgMC4wMDA0MjMsIDAuMDAwNDIzLCAwLjAwMDQyMyIsIFwKLSAgICAgICAgICAiMC4wMDA0MDYsIDAuMDAwNDA4LCAwLjAwMDQxOCwgMC4wMDA0MjEsIDAuMDAwNDIyLCAwLjAwMDQyNCwgMC4wMDA0MjQiLCBcCi0gICAgICAgICAgIjAuMDAwMzk4LCAwLjAwMDQwMiwgMC4wMDA0MTQsIDAuMDAwNDIsIDAuMDAwNDIxLCAwLjAwMDQyMywgMC4wMDA0MjQiLCBcCi0gICAgICAgICAgIjAuMDAwMzkyLCAwLjAwMDM5NiwgMC4wMDA0MTEsIDAuMDAwNDE4LCAwLjAwMDQyLCAwLjAwMDQyMywgMC4wMDA0MjMiLCBcCi0gICAgICAgICAgIjAuMDAwMzgzLCAwLjAwMDM4OCwgMC4wMDA0MDYsIDAuMDAwNDE1LCAwLjAwMDQxOCwgMC4wMDA0MjEsIDAuMDAwNDIyIiwgXAotICAgICAgICAgICIwLjAwMDM3NywgMC4wMDAzODIsIDAuMDAwNDAzLCAwLjAwMDQxMywgMC4wMDA0MTcsIDAuMDAwNDIxLCAwLjAwMDQyMSIpOwotICAgICAgfQotICAgIH0KLSAgICBpbnRlcm5hbF9wb3dlcigpIHsKLSAgICAgIHJlbGF0ZWRfcGluIDogIkIwIjsKLSAgICAgIHJpc2VfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDE1NzMsIDAuMDAxNTczLCAwLjAwMTU3MywgMC4wMDE1NzMsIDAuMDAxNTczLCAwLjAwMTU3MywgMC4wMDE1NzMiLCBcCi0gICAgICAgICAgIjAuMDAxNTcyLCAwLjAwMTU3MiwgMC4wMDE1NzQsIDAuMDAxNTc0LCAwLjAwMTU3NSwgMC4wMDE1NzcsIDAuMDAxNTc1IiwgXAotICAgICAgICAgICIwLjAwMTU3LCAwLjAwMTU3MSwgMC4wMDE1NzQsIDAuMDAxNTc1LCAwLjAwMTU3NSwgMC4wMDE1NzYsIDAuMDAxNTc2IiwgXAotICAgICAgICAgICIwLjAwMTU2OSwgMC4wMDE1NywgMC4wMDE1NzMsIDAuMDAxNTc1LCAwLjAwMTU3NSwgMC4wMDE1NzUsIDAuMDAxNTc1IiwgXAotICAgICAgICAgICIwLjAwMTU3LCAwLjAwMTU3MSwgMC4wMDE1NzQsIDAuMDAxNTc1LCAwLjAwMTU3NSwgMC4wMDE1NzQsIDAuMDAxNTc0IiwgXAotICAgICAgICAgICIwLjAwMTU3MywgMC4wMDE1NzQsIDAuMDAxNTc0LCAwLjAwMTU3NSwgMC4wMDE1NzYsIDAuMDAxNTc1LCAwLjAwMTU3NSIsIFwKLSAgICAgICAgICAiMC4wMDE1NzgsIDAuMDAxNTc4LCAwLjAwMTU3NiwgMC4wMDE1NzYsIDAuMDAxNTc2LCAwLjAwMTU3NiwgMC4wMDE1NzYiKTsKLSAgICAgIH0KLSAgICAgIGZhbGxfcG93ZXIoZW5lcmd5X3RlbXBsYXRlXzd4NykgewotICAgICAgICBpbmRleF8xICgiMC4wMDgsIDAuMDQsIDAuMDgsIDAuMTIsIDAuMTYsIDAuMjI0LCAwLjI4Iik7Ci0gICAgICAgIGluZGV4XzIgKCIwLjAxLCAwLjAxMiwgMC4wMywgMC4wNiwgMC4wOSwgMC4xNiwgMC4yIik7Ci0gICAgICAgIHZhbHVlcyAoIFwKLSAgICAgICAgICAiMC4wMDA2MzMsIDAuMDAwNjMzLCAwLjAwMDYzNCwgMC4wMDA2MzQsIDAuMDAwNjMyLCAwLjAwMDYzMywgMC4wMDA2MzMiLCBcCi0gICAgICAgICAgIjAuMDAwNjI1LCAwLjAwMDYyNiwgMC4wMDA2MywgMC4wMDA2MzIsIDAuMDAwNjMzLCAwLjAwMDYzMywgMC4wMDA2MzMiLCBcCi0gICAgICAgICAgIjAuMDAwNjE3LCAwLjAwMDYxOSwgMC4wMDA2MjcsIDAuMDAwNjMsIDAuMDAwNjMxLCAwLjAwMDYzMiwgMC4wMDA2MzIiLCBcCi0gICAgICAgICAgIjAuMDAwNjEsIDAuMDAwNjEzLCAwLjAwMDYyNCwgMC4wMDA2MjksIDAuMDAwNjMsIDAuMDAwNjMxLCAwLjAwMDYzMSIsIFwKLSAgICAgICAgICAiMC4wMDA2MDYsIDAuMDAwNjA4LCAwLjAwMDYyMSwgMC4wMDA2MjcsIDAuMDAwNjI5LCAwLjAwMDYzMSwgMC4wMDA2MzEiLCBcCi0gICAgICAgICAgIjAuMDAwNjAxLCAwLjAwMDYwMywgMC4wMDA2MTcsIDAuMDAwNjI0LCAwLjAwMDYyNywgMC4wMDA2MjksIDAuMDAwNjMiLCBcCi0gICAgICAgICAgIjAuMDAwNTk4LCAwLjAwMDYwMSwgMC4wMDA2MTUsIDAuMDAwNjIzLCAwLjAwMDYyNiwgMC4wMDA2MjksIDAuMDAwNjI5Iik7Ci0gICAgICB9Ci0gICAgfQotICAgIGludGVybmFsX3Bvd2VyKCkgewotICAgICAgcmVsYXRlZF9waW4gOiAiQzAiOwotICAgICAgcmlzZV9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMTMyNiwgMC4wMDEzMjYsIDAuMDAxMzI4LCAwLjAwMTMyOCwgMC4wMDEzMjgsIDAuMDAxMzI4LCAwLjAwMTMyOCIsIFwKLSAgICAgICAgICAiMC4wMDEzMjcsIDAuMDAxMzI3LCAwLjAwMTMzMSwgMC4wMDEzMzIsIDAuMDAxMzMzLCAwLjAwMTMzNCwgMC4wMDEzMzMiLCBcCi0gICAgICAgICAgIjAuMDAxMzIzLCAwLjAwMTMyNSwgMC4wMDEzMzEsIDAuMDAxMzM0LCAwLjAwMTMzNCwgMC4wMDEzMzUsIDAuMDAxMzM1IiwgXAotICAgICAgICAgICIwLjAwMTMyMSwgMC4wMDEzMjMsIDAuMDAxMzI5LCAwLjAwMTMzMiwgMC4wMDEzMzQsIDAuMDAxMzM1LCAwLjAwMTMzNSIsIFwKLSAgICAgICAgICAiMC4wMDEzMjEsIDAuMDAxMzIyLCAwLjAwMTMyOSwgMC4wMDEzMzIsIDAuMDAxMzM0LCAwLjAwMTMzNSwgMC4wMDEzMzUiLCBcCi0gICAgICAgICAgIjAuMDAxMzIzLCAwLjAwMTMyMywgMC4wMDEzMjksIDAuMDAxMzMyLCAwLjAwMTMzMywgMC4wMDEzMzUsIDAuMDAxMzM1IiwgXAotICAgICAgICAgICIwLjAwMTMyNSwgMC4wMDEzMjYsIDAuMDAxMzI5LCAwLjAwMTMzMiwgMC4wMDEzMzMsIDAuMDAxMzM1LCAwLjAwMTMzNSIpOwotICAgICAgfQotICAgICAgZmFsbF9wb3dlcihlbmVyZ3lfdGVtcGxhdGVfN3g3KSB7Ci0gICAgICAgIGluZGV4XzEgKCIwLjAwOCwgMC4wNCwgMC4wOCwgMC4xMiwgMC4xNiwgMC4yMjQsIDAuMjgiKTsKLSAgICAgICAgaW5kZXhfMiAoIjAuMDEsIDAuMDEyLCAwLjAzLCAwLjA2LCAwLjA5LCAwLjE2LCAwLjIiKTsKLSAgICAgICAgdmFsdWVzICggXAotICAgICAgICAgICIwLjAwMDYzMiwgMC4wMDA2MzMsIDAuMDAwNjM0LCAwLjAwMDYzNCwgMC4wMDA2MzQsIDAuMDAwNjMzLCAwLjAwMDYzMyIsIFwKLSAgICAgICAgICAiMC4wMDA2MjQsIDAuMDAwNjI1LCAwLjAwMDYzMSwgMC4wMDA2MzIsIDAuMDAwNjMzLCAwLjAwMDYzMywgMC4wMDA2MzMiLCBcCi0gICAgICAgICAgIjAuMDAwNjE2LCAwLjAwMDYxOCwgMC4wMDA2MjcsIDAuMDAwNjMsIDAuMDAwNjMxLCAwLjAwMDYzMiwgMC4wMDA2MzIiLCBcCi0gICAgICAgICAgIjAuMDAwNjA4LCAwLjAwMDYxMywgMC4wMDA2MjQsIDAuMDAwNjI4LCAwLjAwMDYzLCAwLjAwMDYzMSwgMC4wMDA2MzEiLCBcCi0gICAgICAgICAgIjAuMDAwNjA5LCAwLjAwMDYxMSwgMC4wMDA2MjIsIDAuMDAwNjI3LCAwLjAwMDYyOSwgMC4wMDA2MzEsIDAuMDAwNjMxIiwgXAotICAgICAgICAgICIwLjAwMDYwOSwgMC4wMDA2MTEsIDAuMDAwNjIsIDAuMDAwNjI2LCAwLjAwMDYyOCwgMC4wMDA2MywgMC4wMDA2MyIsIFwKLSAgICAgICAgICAiMC4wMDA2MTIsIDAuMDAwNjEzLCAwLjAwMDYyLCAwLjAwMDYyNSwgMC4wMDA2MjcsIDAuMDAwNjI5LCAwLjAwMDYzIik7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLX0KZGlmZiAtLWdpdCBhL2Zsb3cvcG5yL0VYQU1QTEVTL0lOTk9WVVMvREVTSUdOL1JFQURNRSBiL2Zsb3cvcG5yL0VYQU1QTEVTL0lOTk9WVVMvREVTSUdOL1JFQURNRQpkZWxldGVkIGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggYjdjZWViMC4uMDAwMDAwMAotLS0gYS9mbG93L3Buci9FWEFNUExFUy9JTk5PVlVTL0RFU0lHTi9SRUFETUUKKysrIC9kZXYvbnVsbApAQCAtMSw1OSArMCwwIEBACi0KLQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZvdW5kYXRpb24gRmxvd3MKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWZXJzaW9uIDogMTcuMTAtcDAwM18xCi0KLVRoZSBzY3JpcHRzIHByb3ZpZGVkIGhlcmUgYXJlIGludGVuZGVkIHRvIGJlIHVzZWQgYnkgQ2FkZW5jZSBBRXMgYXMgdGhlIHN0YXJ0aW5nIAotcG9pbnQgZm9yIGFzc2lzdGluZyBjdXN0b21lcnMgaW4gYnVpbGRpbmcgYW4gaW1wbGVtZW50YXRpb24gZW52aXJvbm1lbnQgd2l0aCBJbm5vdnVzLgotVGhleSBwcm92aWRlIGEgd29ya2luZyBleGFtcGxlIGNvbnRhaW5pbmcgZ3VpZGVsaW5lcyBhbmQgcmVjb21lbmRhdGlvbnMgZm9yIGNvbW1hbmQgCi1zZXF1ZW5jZXMgYW5kIG9wdGlvbnMuICBTb21lIGN1c3RvbWl6YXRpb24gaXMgZXhwZWN0ZWQgYXMgZWFjaCBjdXN0b21lciBhbmQgZGVzaWduIAotd2lsbCBoYXZlIHVuaXF1ZSByZXF1aXJlbWVudHMuIFRoZSBnb2FsIHdhcyB0byBjYXB0dXJlIGEgZ2VuZXJhbCBtZXRob2RvbG9neSBmcm9tIAotd2hpY2ggdG8gYnVpbGQgdXBvbi4KLQotICAgICAgICAgICAgICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotCi1UaGUgZm91bmRhdGlvbiBmbG93cyByZXNpZGUgaW4gdGhlIFNDUklQVFMgZGlyZWN0b3J5IChjcmVhdGVkIGJ5IHdyaXRlRmxvd1RlbXBsYXRlKS4gIAotVGhpcyBkaXJlY3RvcnkgY2FuIGJlIHJlbmFtZWQgYW5kL29yIG1vdmVkIGJ1dCB0aGUgY29udGVudHMgd2l0aGluIHRoZSBTQ1JJUFRTCi1kaXJlY3RvcnkgbXVzdCByZW1pYW4gdW5jaGFuZ2VkLiAgVGhlIHNjcmlwdHMgZGlyZWN0b3J5IGlzIGFjY2Vzc2VkIGJ5IHRoZQotdmFyaWFibGUgInZhcnMoc2NyaXB0X3Jvb3QpIDxwYXRoPiIgaW4gdGhlIHNldHVwLnRjbC4KLQotVGhlIHNldHVwLnRjbCBpcyB0aGUgbWFpbiBpbnB1dCBmaWxlIHRvIHRoZSBmb3VuZGF0aW9uIGZsb3cuIEl0IGRlZmluZXMgYWxsIAotdGhlIGlucHV0IGRhdGEgcmVxdWlyZWQgdG8gcnVuIGVhY2ggb2YgdGhlIGZvdW5kYXRpb24gZmxvd3MuIAotCi1BZGRpdGlvbmFsbHksIGFuIGVkaV9jb25maWcudGNsIG11c3QgYmUgY3JlYXRlZCB0b3NldCBmbG93IHZhcmlhYmxlcywgCi1kZXNpcmVkIGNvbW1hbmQgb3B0aW9ucywgYW5kIG9wdGlvbmFsIHBsdWctaW5zLiAgCi0KLUZpbmFsbHksIGZvciBMUC9DUEYgZmxvd3MsIGFuIGFkZGl0aW9uYWwgY29uZmlnIGZpbGUgKGxwX2NvbmZpZy50Y2wpIGNhbiAKLW9wdGlvbmFsbHkgYmUgdXNlZCB0byBoZWxwIGF1dG9tYXRlIHNvbWUgbG93IHBvd2VyIHJlbGF0ZWQgdGFza3MuCi0KLSAgICAgICAgICAgICAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLQotVGhlIFRFTVBMQVRFUyBkaXJlY3RvcnkgY29udGFpbnMgdGVtcGxhdGVzIGZvciBhbGwgb2YgdGhlc2UgZmlsZXMgd2hpY2ggY2FuCi1iZSBtYW51YWxseSBjb3BpZWQgYW5kIGVkaXRlZDoKLSAgCi0JVEVNUExBVEVTL0lOTk9WVVMvc2V0dXAudGNsCi0JVEVNUExBVEVTL0lOTk9WVVMvaW5ub3Z1c19jb25maWcudGNsIAotCVRFTVBMQVRFUy9JTk5PVlVTL2xwX2NvbmZpZy50Y2wgCi0KLVRoZXJlIGlzIGFsc28gYSB1dGlsaXR5IHRoYXQgY2FuIGJlIHVzZWQgdG8gZ2VuZXJhdGUgdGhlc2UgZmlsZXMgYmFzZWQgb24gCi1leGlzdGluZyBkZXNpZ24gZGF0YS4gIFRvIGdlbmVyYXRlLCBydW4gRURJLCBsb2FkIGFuIGluaXRpYWwgZGF0YWJhc2UsIAotYW5kICdzb3VyY2UgU0NSSVBUUy9nZW5fc2V0dXAudGNsJyBvciBydW4gdGhlIG5ldyBjb21tYW5kIGdlbmVyYXRlRkZTZXR1cEZpbGUuCi0KLVRoaXMgd2lsbCBnZW5lcmF0ZSBhICouYXV0by50Y2wgZmlsZXMgd2hpY2ggY2FuIGJlIHJldmlld2VkL2VkaXRlZAotYW5kIHRoZW4gcmVuYW1lZC4gCi0KLSAgICAgICAgICAgICAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLQotVGhlIEVYQU1QTEVTIGRpcmVjdG9yeSBjb250YWlucyBzb21lIGV4YW1wbGUgY29uZmlndWF0aW9uIGZpbGVzIGFzIHdlbGwgYXMKLXNvbWUgc2FtcGxlIHBsdWctaW5zLgotCi0gICAgICAgICAgICAgICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0KLVRvIGdlbmVyYXRlIHRoZSBmb3VuZGF0aW9uIGZsb3cgc2NyaXB0cyBiYXNlZCBvbiB5b3VyIHNldHVwICwgZG8gdGhlIGZvbGxvd2luZzoKLQotCXRjbHNoIDxwYXRoX3RvPi9TQ1JJUFRTL2dlbl9mbG93LnRjbCAtbSA8ZmxhdCB8IGhpZXIgPiA8c3RlcHM+Ci0KLSAgICB3aGVyZSA8c3RlcHM+ID0gc2luZ2xlIHN0ZXAsIHN0ZXAgcmFuZ2UsIG9yICdhbGwnCi0KLVRvIGV4ZWN1dGUgdGhlIGZsb3csIHJ1biAnbWFrZSA8dGFyZ2V0PicKZGlmZiAtLWdpdCBhL2Zsb3cvcG5yL0VYQU1QTEVTL0lOTk9WVVMvREVTSUdOL1NDUklQVFMvRVRDL0lOTk9WVVMvTWFrZWZpbGUucGFydGl0aW9uIGIvZmxvdy9wbnIvRVhBTVBMRVMvSU5OT1ZVUy9ERVNJR04vU0NSSVBUUy9FVEMvSU5OT1ZVUy9NYWtlZmlsZS5wYXJ0aXRpb24KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDk5MjM5ZjQuLjAwMDAwMDAKLS0tIGEvZmxvdy9wbnIvRVhBTVBMRVMvSU5OT1ZVUy9ERVNJR04vU0NSSVBUUy9FVEMvSU5OT1ZVUy9NYWtlZmlsZS5wYXJ0aXRpb24KKysrIC9kZXYvbnVsbApAQCAtMSw0NSArMCwwIEBACi1WRVJTSU9OPTE3LjEwLXAwMDNfMQotVlBBVEg9Li9tYWtlCi1TTEVFUFRJTUUgPSAxMAotCi1SRUFMVEFSR0VUPSQoVEFSR0VUOnNpbmdsZT0kKEZGX1NUT1ApKQotCi1CTE9DS19UQVJHRVRTID0gJChCTE9DS1M6PS4kKFJFQUxUQVJHRVQpKQotCi1ibG9ja3M6IGJsb2Nrc18kKFJFQUxUQVJHRVQpCi0KLWJsb2Nrc18kKFJFQUxUQVJHRVQpOiAkKEJMT0NLX1RBUkdFVFMpCi0JQGVycj0wIDtcCi0gICAgZm9yIGIgaW4gJChCTE9DS1MpIDsgZG8gXAotICAgICAgZWNobyAiSU5GTzogV2FpdGluZyBmb3IgYmxvY2sgJCRiIGNvbXBsZXRpb24uLi4uIiA7XAotICAgICAgd2hpbGUgWyAhIC1yICQkYi8kKFZQQVRIKS9ibG9ja18kKFJFQUxUQVJHRVQpLkRPTkUgXSA7IGRvIHNsZWVwICQoU0xFRVBUSU1FKSA7IGRvbmUgOyBcCi0gICAgICBpZiBbIC1yICQkYi8kKFZQQVRIKS9ibG9ja18kKFJFQUxUQVJHRVQpLkZBSUxFRCBdIDsgdGhlbiBcCi0gICAgICAgIGVjaG8gIkVSUk9SOiBCbG9jayAkJGIgZmFpbGVkIiA7XAotICAgICAgICAgL2Jpbi9jYXQgJCRiLyQoVlBBVEgpL2Jsb2NrXyQoUkVBTFRBUkdFVCkuRkFJTEVEIDsgXAotICAgICAgICAgL2Jpbi9ybSAtZiAkJGIvJChWUEFUSCkvYmxvY2tfJChSRUFMVEFSR0VUKS5ET05FIDsgXAotICAgICAgICBlcnI9MSA7IFwKLSAgICAgIGVsc2UgXAotICAgICAgICBlY2hvICJJTkZPOiBCbG9jayAkJGIgQ29tcGxldGVkIiA7XAotICAgICAgICAvYmluL2NhdCAkJGIvJChWUEFUSCkvYmxvY2tfJChSRUFMVEFSR0VUKS5QQVNTIDsgXAotICAgICAgICAvYmluL3RvdWNoICQoVlBBVEgpLyQkYi4kKFJFQUxUQVJHRVQpIDsgXAotICAgICAgZmkgO1wKLSAgICBkb25lIDtcCi0gICAgaWYgWyAkJGVyciA9IDAgXSA7IHRoZW4gXAotICAgICAgL2Jpbi90b3VjaCAkKFZQQVRIKS8kQCA7XAotICAgIGZpIDtcCi0gICAgZXhpdCAkJGVycgotCi0KLSUuJChSRUFMVEFSR0VUKSA6Ci0JQGNkICQqIDsgXAotICAgICAgaWYgWyAtciAkKFZQQVRIKS8uUlVOTklORyBdIDsgdGhlbiBcCi0gICAgICAgIGVjaG8gIklORk86IFNraXBwaW5nIGJsb2NrICQqIHdoaWNoIHNlZW1zIHRvIHN0aWxsIGJlIHJ1bm5pbmcgKHNlZSBgcHdkYC9tYWtlLy5SVU5OSU5HKSIgOyBcCi0gICAgICAgIC9iaW4vaGVhZCAtMSAkKFZQQVRIKS8uUlVOTklORyA7XAotICAgICAgICBleGl0IDEgO1wKLSAgICAgIGVsc2UgXAotICAgICAgICBlY2hvICJJTkZPOiBQcm9jZXNzaW5nIGJsb2NrICQqLi4uIiA7XAotICAgICAgICAkKFNVQk1JVCkgJChNQUtFKSBWUEFUSD0kKFZQQVRIKSBibG9ja18kKFJFQUxUQVJHRVQpIFRBUkdFVD0kKFRBUkdFVCkgO1wKLSAgICAgIGZpCi0KLSQoQkxPQ0tTKTogCi0JVlBBVEg9JChWUEFUSCk7IEAkKE1BS0UpICRALiQoUkVBTFRBUkdFVCkKZGlmZiAtLWdpdCBhL2Zsb3cvcG5yL0VYQU1QTEVTL0lOTk9WVVMvREVTSUdOL1NDUklQVFMvRVRDL0lOTk9WVVMvY2hlY2tfdmFycy50Y2wgYi9mbG93L3Buci9FWEFNUExFUy9JTk5PVlVTL0RFU0lHTi9TQ1JJUFRTL0VUQy9JTk5PVlVTL2NoZWNrX3ZhcnMudGNsCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAxYTY1NzdiLi4wMDAwMDAwCi0tLSBhL2Zsb3cvcG5yL0VYQU1QTEVTL0lOTk9WVVMvREVTSUdOL1NDUklQVFMvRVRDL0lOTk9WVVMvY2hlY2tfdmFycy50Y2wKKysrIC9kZXYvbnVsbApAQCAtMSw0NDMgKzAsMCBAQAotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotIyAgICAgICAgICAgICAgICAgICAgICAgQ0FERU5DRSBDT1BZUklHSFQgTk9USUNFCi0jICAgICAgICAgqSAyMDA4LTIwMTMgQ2FkZW5jZSBEZXNpZ24gU3lzdGVtcywgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIwotIyBUaGlzIEZvdW5kYXRpb24gRmxvdyBpcyBwcm92aWRlZCBhcyBhbiBleGFtcGxlIG9mIGhvdyB0byBwZXJmb3JtIHNwZWNpYWxpemVkCi0jIHRhc2tzLgotIwotIyBUaGlzIHdvcmsgbWF5IG5vdCBiZSBjb3BpZWQsIHJlLXB1Ymxpc2hlZCwgdXBsb2FkZWQsIG9yIGRpc3RyaWJ1dGVkIGluIGFueSB3YXksCi0jIGluIGFueSBtZWRpdW0sIHdoZXRoZXIgaW4gd2hvbGUgb3IgaW4gcGFydCwgd2l0aG91dCBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24KLSMgZnJvbSBDYWRlbmNlLiBOb3R3aXRoc3RhbmRpbmcgYW55IHJlc3RyaWN0aW9ucyBoZXJlaW4sIHN1YmplY3QgdG8gY29tcGxpYW5jZQotIyB3aXRoIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB0aGUgQ2FkZW5jZSBzb2Z0d2FyZSBsaWNlbnNlIGFncmVlbWVudCB1bmRlcgotIyB3aGljaCB0aGlzIG1hdGVyaWFsIHdhcyBwcm92aWRlZCwgdGhpcyBtYXRlcmlhbCBtYXkgYmUgY29waWVkIGFuZCBpbnRlcm5hbGx5Ci0jIGRpc3RyaWJ1dGVkIHNvbGVseSBmb3IgaW50ZXJuYWwgcHVycG9zZXMgZm9yIHVzZSB3aXRoIENhZGVuY2UgdG9vbHMuCi0jCi0jIFRoaXMgd29yayBpcyBDYWRlbmNlIGludGVsbGVjdHVhbCBwcm9wZXJ0eSBhbmQgbWF5IHVuZGVyIG5vIGNpcmN1bXN0YW5jZXMgYmUKLSMgZ2l2ZW4gdG8gdGhpcmQgcGFydGllcywgbmVpdGhlciBpbiBvcmlnaW5hbCBub3IgaW4gbW9kaWZpZWQgdmVyc2lvbnMsIHdpdGhvdXQKLSMgZXhwbGljaXQgd3JpdHRlbiBwZXJtaXNzaW9uIGZyb20gQ2FkZW5jZS4gVGhlIGluZm9ybWF0aW9uIGNvbnRhaW5lZCBoZXJlaW4gaXMKLSMgdGhlIHByb3ByaWV0YXJ5IGFuZCBjb25maWRlbnRpYWwgaW5mb3JtYXRpb24gb2YgQ2FkZW5jZSBvciBpdHMgbGljZW5zb3JzLCBhbmQKLSMgaXMgc3VwcGxpZWQgc3ViamVjdCB0bywgYW5kIG1heSBiZSB1c2VkIG9ubHkgYnkgQ2FkZW5jZSdzIGN1cnJlbnQgY3VzdG9tZXJzCi0jIGluIGFjY29yZGFuY2Ugd2l0aCwgYSBwcmV2aW91c2x5IGV4ZWN1dGVkIGxpY2Vuc2UgYWdyZWVtZW50IGJldHdlZW4gQ2FkZW5jZQotIyBhbmQgaXRzIGN1c3RvbWVyLgotIwotIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIyBUSElTIE1BVEVSSUFMIElTIFBST1ZJREVEIEJZIENBREVOQ0UgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRAotIyBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRgotIyBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELgotIyBJTiBOTyBFVkVOVCBTSEFMTCBDQURFTkNFIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwKLSMgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwKLSMgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SCi0jIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgIE1BVEVSSUFMLCBFVkVOIElGCi0jIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCi1pZiAge1tpbmZvIGV4aXN0cyB2YXJzKGNoZWNrX3ZhcnMpXSAmJiAkdmFycyhjaGVja192YXJzKX0gewotCi0gICBzZXQgb3AgW29wZW4gJHZhcnMoc2NyaXB0X2RpcikvY2hlY2tfdmFycy5ycHQgd10KLSAgIAotICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycyhvcGNvbmRzKV19IHsKLSAgICAgIHNldCB2YXJzKG9wY29uZHMpICIiCi0gICB9ICAgCi0KLSAgIHNldCB2YWxpZF9wcmVmaXhlcyAiXAotICAgICAgJHZhcnMobGlicmFyeV9zZXRzKSBcCi0gICAgICAkdmFycyhyY19jb3JuZXJzKSBcCi0gICAgICAkdmFycyhvcGNvbmRzKSBcCi0gICAgICAkdmFycyhkZWxheV9jb3JuZXJzKSBcCi0gICAgICAkdmFycyhjb25zdHJhaW50X21vZGVzKSBcCi0gICAgICAkdmFycyhzZXR1cF9hbmFseXNpc192aWV3cykgXAotICAgICAgJHZhcnMoaG9sZF9hbmFseXNpc192aWV3cykgXAotICAgICAgbGlicmFyeV9zZXQgXAotICAgICAgY2RiX2ZpbGUgXAotICAgICAgZWNob19maWxlIFwKLSAgICAgIHRpbWVsaWIgXAotICAgICAgcmNfY29ybmVyIFwKLSAgICAgIGRlbGF5X2Nvcm5lciBcCi0gICAgICBjb25zdHJhaW50X21vZGUgXAotICAgICAgd2VsbHRhcHMgXAotICAgICAgZmlsbGVyX2NlbGxzIFwKLSAgICAgIG1haWwgXAotICAgICAgcGFydGl0aW9uIFwKLSAgICAgIGluaXQgXAotICAgICAgcGxhY2UgXAotICAgICAgcHJlY3RzIFwKLSAgICAgIGN0cyBcCi0gICAgICBwb3N0Y3RzIFwKLSAgICAgIHBvc3RjdHNfaG9sZCBcCi0gICAgICByb3V0ZSBcCi0gICAgICBwb3N0cm91dGUgXAotICAgICAgcG9zdHJvdXRlX2hvbGQgIFwKLSAgICAgIHBvc3Ryb3V0ZV9zaSBcCi0gICAgICBwb3N0cm91dGVfc2lfaG9sZCBcCi0gICAgICBzaWdub2ZmIFwKLSAgICAgIGFzc2VtYmxlIFwgCi0gICAgICB0aWVfY2VsbHMgXAotICAgICAgZmlsbGVyX2NlbGxzIFwKLSAgICAgIHdlbGx0YXBzIFwKLSAgICAgIHNlY29uZGFyeV9wZyBcCi0gICAgICBhbHdheXNfb25fbmV0cyBcCi0gICAgICBsc2YgY3VzdG9tIHJzaCBcIAotICAgICAgdGFncyBcCi0gICAiCi0gICAKLSAgIHNldCB2YWxpZF9zdWZmaXhlcyAiXAotICAgICAgdGltaW5nIHNpIG1pbiBtYXhcCi0gICAgICBsaWJyYXJ5X3NldCBcCi0gICAgICByY19jb3JuZXIgXAotICAgICAgUCBWIFQgY2FwX3RhYmxlIHF4X3RlY2hfZmlsZSBxeF9saWJfZGlyXAotICAgICAgZGVmX3Jlc19mYWN0b3IgZGVmX2NhcF9mYWN0b3IgZGVmX2Nsa19jYXBfZmFjdG9yIFwKLSAgICAgIGRldF9yZXNfZmFjdG9yIGRldF9jYXBfZmFjdG9yIGRldF9jbGtfY2FwX2ZhY3RvciBcCi0gICAgICB4Y2FwX2ZhY3RvciBcCi0gICAgICBwcmVfcm91dGVfcmVzX2ZhY3RvciBwcmVfcm91dGVfY2xrX3Jlc19mYWN0b3IgIHByZV9yb3V0ZV9jYXBfZmFjdG9yICBwcmVfcm91dGVfY2xrX2NhcF9mYWN0b3IgIFwKLSAgICAgIHBvc3Rfcm91dGVfcmVzX2ZhY3RvciBwb3N0X3JvdXRlX2Nsa19yZXNfZmFjdG9yICBwb3N0X3JvdXRlX2NhcF9mYWN0b3IgIHBvc3Rfcm91dGVfY2xrX2NhcF9mYWN0b3IgIAotICAgICAgcG9zdF9yb3V0ZV94Y2FwX2ZhY3RvciAgXAotICAgICAgc2NhbGVfdGNsIFwgCi0gICAgICBkZWxheV9jb3JuZXIgXAotICAgICAgZGF0YV9jZWxsX2xhdGUgZGF0YV9jZWxsX2Vhcmx5IGRhdGFfbmV0X2xhdGUgZGF0YV9uZXRfZWFybHkgXAotICAgICAgY2xvY2tfY2VsbF9sYXRlIGNsb2NrX2NlbGxfZWFybHkgY2xvY2tfbmV0X2xhdGUgY2xvY2tfbmV0X2Vhcmx5IFwKLSAgICAgIGNlbGxfY2hlY2tfbGF0ZSBjZWxsX2NoZWNrX2Vhcmx5IFwKLSAgICAgIG9wY29uZCAgb3Bjb25kX2xpYnJhcnkgcG93ZXJfZG9tYWlucyBcCi0gICAgICBjb25zdHJhaW50X21vZGUgXAotICAgICAgZGVyYXRlX3RjbCBcCi0gICAgICBwcmVfY3RzX3NkYyBwb3N0X2N0c19zZGMgIGluY3JfY3RzX3NkYyBcIAotICAgICAgYWN0aXZlX3NldHVwX3ZpZXdzIGFjdGl2ZV9ob2xkX3ZpZXdzIFwKLSAgICAgIHByZV9lbmRjYXAgcG9zdF9lbmRjYXAgXAotICAgICAgY2VsbF9pbnRlcnZhbCByb3dfb2Zmc2V0IGNoZWNrZXJib2FyZCB2ZXJpZnlfcnVsZSBcCi0gICAgICBtYXhfZ2FwIGNlbGxfaW50ZXJ2YWwgY2hlY2tlcl9ib2FyZCAgXAotICAgICAgbWF4X2Rpc3RhbmNlIG1heF9mYW5vdXQgbWF4X3RyYW4gbWF4X2RlbGF5IFwgCi0gICAgICBhbHdheXNfb25fYnVmZmVycyBjZWxsX3Bpbl9wYWlycyBuZXRzIG5vbl9kZWZhdWx0X3J1bGUgXAotICAgICAgc3dpdGNoYWJsZSBzd2l0Y2hfdHlwZSBjaGVja2VyX2JvYXJkIGJhY2tfdG9fYmFja19jaGFpbiBcCi0gICAgICBsb29wX2JhY2tfYXRfZW5kIGNoZWNrX2hlaWdodCB2ZXJpZnlfcm93cyBlbmFibGVfY2hhaW4gXAotICAgICAgcHJlX3RjbCBwb3N0X3RjbCByZXBsYWNlX3RjbCBza2lwIFwKLSAgICAgIHRvIHN0ZXBzIGxpYnJhcnlfZmlsZSBcCi0gICAgICBzY3JpcHQgcXVldWUgaG9zdF9saXN0IGFyZ3MgcmVzb3VyY2UgXAotICAgICAgdmVyYm9zZSB2ZXJib3NpdHlfbGV2ZWwgXAotICAgICAgd2VsbHRhcHMsIHRpZV9jZWxscywgZmlsbGVyX2NlbGxzIFwKLSAgICAgIHBhY19tb2RlIGlsbV9kaXIgbGVmX2ZpbGUgXAotICAgICAgc3RhcnRpbmdfZGJzIGFzc2VtYmxlX2RicyBcCi0gICAgICBsYXRlbmN5X3NkYyBjdHNfc3BlYyBcCi0gICAgICBlZGlfY29uZmlnX3RjbCBxb3JfdGNsIFwKLSAgICAgIHJwdF9kaXIgc2tpcCBwcmVfdGNsIHBvc3RfdGNsIFwKLSAgICIKLQotICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKHBvd2VyX2RvbWFpbnMpXX0gewotICAgICAgYXBwZW5kIHZhbGlkX3ByZWZpeGVzICR2YXJzKHBvd2VyX2RvbWFpbnMpCi0gICAgICBhcHBlbmQgdmFsaWRfc3VmZml4ZXMgImJib3ggbWF4X2dhcCByc19leHRzIgotICAgfQotCi0gICBzZXQgdmFsaWRfbWlkZml4ZXMgIlwKLSAgICAgIHNldF9kaXN0cmlidXRlX2hvc3QgXAotICAgICAgc2V0X211bHRpX2NwdV91c2FnZSBcCi0gICAgICBzZXRfZGlzdHJpYnV0ZV9ob3N0IFwKLSAgICAgIHNldF9tdWx0aV9jcHVfdXNhZ2UgXAotICAgICAgc2V0X3JjX2ZhY3RvciBcCi0gICAgICBkZXJhdGVfdGltaW5nIFwKLSAgICAgIGNyZWF0ZV9yY19jb3JuZXIgXAotICAgICAgY3JlYXRlX2xpYnJhcnlfc2V0IFwKLSAgICAgIGNyZWF0ZV9kZWxheV9jb3JuZXIgXAotICAgICAgY3JlYXRlX2NvbnN0cmFpbnRfbW9kZSBcCi0gICAgICBjcmVhdGVfYW5hbHlzaXNfdmlldyBcCi0gICAgICB1cGRhdGVfZGVsYXlfY29ybmVyIFwKLSAgICAgIHVwZGF0ZV9saWJyYXJ5X3NldCBcCi0gICAgICBkZXJhdGVfdGltaW5nIFwKLSAgICAgIHNldF9kZWZhdWx0X3ZpZXcgXAotICAgICAgc2V0X3Bvd2VyX2FuYWx5c2lzX21vZGUgXAotICAgICAgbG9hZF9jb25maWcgXAotICAgICAgbG9hZF9mbG9vcnBsYW4gXAotICAgICAgZ2VuZXJhdGVfdHJhY2tzIFwKLSAgICAgIGxvYWRfY3BmIFwKLSAgICAgIGNvbW1pdF9jcGYgXAotICAgICAgcmVhZF9hY3Rpdml0eV9maWxlIFwKLSAgICAgIHNwZWNpZnlfaWxtIFwKLSAgICAgIGxvYWRfaWxtX25vbl9zZGNfZmlsZSBcCi0gICAgICBpbml0aWFsaXplX3RpbWluZyBcCi0gICAgICBsb2FkX3NjYW4gXAotICAgICAgc3BlY2lmeV9zcGFyZV9nYXRlcyBcCi0gICAgICBzZXRfZG9udF91c2UgXAotICAgICAgc2V0X21heF9yb3V0ZV9sYXllciBcCi0gICAgICBzZXRfZGVzaWduX21vZGUgXAotICAgICAgaW5zZXJ0X3dlbGx0YXBzX2VuZGNhcHMgXAotICAgICAgbG9hZF9jb25maWcgXAotICAgICAgdGltZV9kZXNpZ24gXAotICAgICAgY2hlY2tfZGVzaWduIFwKLSAgICAgIGNoZWNrX3RpbWluZyBcCi0gICAgICByZXBvcnRfcG93ZXJfZG9tYWlucyBcCi0gICAgICBzZXRfZGlzdHJpYnV0ZV9ob3N0IFwKLSAgICAgIHNldF9tdWx0aV9jcHVfdXNhZ2UgXAotICAgICAgcmVzdG9yZV9kZXNpZ24gXAotICAgICAgaW5pdGlhbGl6ZV9zdGVwIFwKLSAgICAgICAgIHNldF9kZXNpZ25fbW9kZSBcCi0gICAgICAgICBzZXRfZGVsYXlfY2FsX21vZGUgXAotICAgICAgICAgc2V0X3BsYWNlX21vZGUgXAotICAgICAgICAgc2V0X29wdF9tb2RlIFwKLSAgICAgICAgIGNsZWFudXBfc3BlY2lmeV9jbG9ja190cmVlIFwKLSAgICAgICAgIHNwZWNpZnlfY2xvY2tfdHJlZSBcCi0gICAgICBzcGVjaWZ5X2p0YWcgXAotICAgICAgcGxhY2VfanRhZyBcCi0gICAgICBwbGFjZV9kZXNpZ24gXAotICAgICAgYWRkX3RpZV9jZWxscyBcCi0gICAgICB0aW1lX2Rlc2lnbiBcCi0gICAgICBzYXZlX2Rlc2lnbiBcCi0gICAgICByZXBvcnRfcG93ZXIgXAotICAgICAgdmVyaWZ5X3Bvd2VyX2RvbWFpbiBcCi0gICAgICBydW5fY2xwIFwKLSAgICAgIHNldF9kaXN0cmlidXRlX2hvc3QgXAotICAgICAgc2V0X211bHRpX2NwdV91c2FnZSBcCi0gICAgICBpbml0aWFsaXplX3N0ZXAgXAotICAgICAgICAgc2V0X2Rlc2lnbl9tb2RlIFwKLSAgICAgICAgIHNldF9pbG1fdHlwZSBcCi0gICAgICAgICBjbGVhbnVwX3NwZWNpZnlfY2xvY2tfdHJlZSBcCi0gICAgICAgICBjcmVhdGVfY2xvY2tfdHJlZV9zcGVjIFwKLSAgICAgICAgIHNwZWNpZnlfY2xvY2tfdHJlZSBcCi0gICAgICAgICBzZXRfdXNlZnVsX3NrZXdfbW9kZSBcCi0gICAgICAgICBzZXRfb3B0X21vZGUgXAotICAgICAgICAgc2V0X2Rlc2lnbl9tb2RlIFwKLSAgICAgICAgIHNldF9kZWxheV9jYWxfbW9kZSBcCi0gICAgICAgICBzZXRfZG9udF91c2UgXAotICAgICAgb3B0X2Rlc2lnbiBcCi0gICAgICBja19jbG9uZV9nYXRlIFwKLSAgICAgIHNhdmVfZGVzaWduIFwKLSAgICAgIHJlcG9ydF9wb3dlciBcCi0gICAgICB2ZXJpZnlfcG93ZXJfZG9tYWluIFwKLSAgICAgIHJ1bl9jbHAgXAotICAgICAgc2V0X2Rpc3RyaWJ1dGVfaG9zdCBcCi0gICAgICBzZXRfbXVsdGlfY3B1X3VzYWdlIFwKLSAgICAgIGluaXRpYWxpemVfc3RlcCBcCi0gICAgICAgICBzZXRfZGVzaWduX21vZGUgXAotICAgICAgICAgc2V0X2N0c19tb2RlIFwKLSAgICAgICAgIHNldF9uYW5vcm91dGVfbW9kZSBcCi0gICAgICBlbmFibGVfY2xvY2tfZ2F0ZV9jZWxscyBcCi0gICAgICBjbG9ja19kZXNpZ24gXAotICAgICAgZGlzYWJsZV9jbG9ja19nYXRlX2NlbGxzIFwKLSAgICAgIHJ1bl9jbG9ja19lY28gXAotICAgICAgdXBkYXRlX3RpbWluZyBcCi0gICAgICB0aW1lX2Rlc2lnbiBcCi0gICAgICBzYXZlX2Rlc2lnbiBcCi0gICAgICByZXBvcnRfcG93ZXIgXAotICAgICAgdmVyaWZ5X3Bvd2VyX2RvbWFpbiBcCi0gICAgICBydW5fY2xwIFwKLSAgICAgIHNldF9kaXN0cmlidXRlX2hvc3QgXAotICAgICAgc2V0X211bHRpX2NwdV91c2FnZSBcCi0gICAgICBpbml0aWFsaXplX3N0ZXAgXAotICAgICAgICAgc2V0X2Rlc2lnbl9tb2RlIFwKLSAgICAgICAgIHNldF9kZWxheV9jYWxfbW9kZSBcCi0gICAgICAgICBzZXRfYW5hbHlzaXNfbW9kZSBcCi0gICAgICAgICBzZXRfb3B0X21vZGUgXAotICAgICAgb3B0X2Rlc2lnbiBcCi0gICAgICBzYXZlX2Rlc2lnbiBcCi0gICAgICByZXBvcnRfcG93ZXIgXAotICAgICAgdmVyaWZ5X3Bvd2VyX2RvbWFpbiBcCi0gICAgICBydW5fY2xwIFwKLSAgICAgIHNldF9kaXN0cmlidXRlX2hvc3QgXAotICAgICAgc2V0X211bHRpX2NwdV91c2FnZSBcCi0gICAgICBpbml0aWFsaXplX3N0ZXAgXAotICAgICAgICAgc2V0X2RvbnRfdXNlIFwKLSAgICAgICAgIHNldF9vcHRfbW9kZSBcCi0gICAgICBvcHRfZGVzaWduIFwKLSAgICAgIHNhdmVfZGVzaWduIFwKLSAgICAgIHJlcG9ydF9wb3dlciBcCi0gICAgICB2ZXJpZnlfcG93ZXJfZG9tYWluIFwKLSAgICAgIHJ1bl9jbHAgXAotICAgICAgc2V0X2Rpc3RyaWJ1dGVfaG9zdCBcCi0gICAgICBzZXRfbXVsdGlfY3B1X3VzYWdlIFwKLSAgICAgIGluaXRpYWxpemVfc3RlcCBcCi0gICAgICAgICBzZXRfbmFub3JvdXRlX21vZGUgXAotICAgICAgICAgYWRkX2ZpbGxlcl9jZWxscyBcCi0gICAgICByb3V0ZV9zZWNvbmRhcnlfcGdfbmV0cyBcCi0gICAgICBjaGVja19wbGFjZSBcCi0gICAgICByb3V0ZV9kZXNpZ24gXAotICAgICAgcnVuX2Nsb2NrX2VjbyBcCi0gICAgICBzcHJlYWRfd2lyZXMgXAotICAgICAgaW5pdGlhbGl6ZV90aW1pbmcgXAotICAgICAgdGltZV9kZXNpZ24gXAotICAgICAgc2F2ZV9kZXNpZ24gXAotICAgICAgcmVwb3J0X3Bvd2VyIFwKLSAgICAgIHZlcmlmeV9wb3dlcl9kb21haW4gXAotICAgICAgcnVuX2NscCBcCi0gICAgICBzZXRfZGlzdHJpYnV0ZV9ob3N0IFwKLSAgICAgIHNldF9tdWx0aV9jcHVfdXNhZ2UgXAotICAgICAgaW5pdGlhbGl6ZV9zdGVwIFwKLSAgICAgICAgIHNldF9kZXNpZ25fbW9kZSBcCi0gICAgICAgICBzZXRfZXh0cmFjdF9yY19tb2RlIFwKLSAgICAgICAgIHNldF9hbmFseXNpc19tb2RlIFwKLSAgICAgICAgIHNldF9kZWxheV9jYWxfbW9kZSBcCi0gICAgICBhZGRfbWV0YWxmaWxsIFwKLSAgICAgIGRlbGV0ZV9maWxsZXJfY2VsbHMgXAotICAgICAgb3B0X2Rlc2lnbiBcCi0gICAgICBhZGRfZmlsbGVyX2NlbGxzIFwKLSAgICAgIHRyaW1fbWV0YWxmaWxsIFwKLSAgICAgIHNhdmVfZGVzaWduIFwKLSAgICAgIHJlcG9ydF9wb3dlciBcCi0gICAgICB2ZXJpZnlfcG93ZXJfZG9tYWluIFwKLSAgICAgIHJ1bl9jbHAgXAotICAgICAgc2V0X2Rpc3RyaWJ1dGVfaG9zdCBcCi0gICAgICBzZXRfbXVsdGlfY3B1X3VzYWdlIFwKLSAgICAgIGluaXRpYWxpemVfc3RlcCBcCi0gICAgICAgICBzZXRfZG9udF91c2VfbW9kZSBcCi0gICAgICAgICBzZXRfb3B0X21vZGUgXAotICAgICAgZGVsZXRlX2ZpbGxlcl9jZWxscyBcCi0gICAgICBvcHRfZGVzaWduIFwKLSAgICAgIGFkZF9maWxsZXJfY2VsbHMgXAotICAgICAgdHJpbV9tZXRhbGZpbGwgXAotICAgICAgc2F2ZV9kZXNpZ24gXAotICAgICAgcmVwb3J0X3Bvd2VyIFwKLSAgICAgIHZlcmlmeV9wb3dlcl9kb21haW4gXAotICAgICAgcnVuX2NscCBcCi0gICAgICBzZXRfZGlzdHJpYnV0ZV9ob3N0IFwKLSAgICAgIHNldF9tdWx0aV9jcHVfdXNhZ2UgXAotICAgICAgaW5pdGlhbGl6ZV9zdGVwIFwKLSAgICAgICAgIHNldF9kZXNpZ25fbW9kZSBcCi0gICAgICAgICBzZXRfZXh0cmFjdF9yY19tb2RlIFwKLSAgICAgICAgIHNldF9zaV9tb2RlIFwKLSAgICAgICAgIHNldF9hbmFseXNpc19tb2RlIFwKLSAgICAgICAgIHNldF9kZWxheV9jYWxfbW9kZSBcCi0gICAgICBhZGRfbWV0YWxmaWxsIFwKLSAgICAgIGRlbGV0ZV9maWxsZXJfY2VsbHMgXAotICAgICAgb3B0X2Rlc2lnbiBcCi0gICAgICBhZGRfZmlsbGVyX2NlbGxzIFwKLSAgICAgIHRyaW1fbWV0YWxmaWxsIFwKLSAgICAgIHNhdmVfZGVzaWduIFwKLSAgICAgIHJlcG9ydF9wb3dlciBcCi0gICAgICB2ZXJpZnlfcG93ZXJfZG9tYWluIFwKLSAgICAgIHJ1bl9jbHAgXAotICAgICAgc2V0X2Rpc3RyaWJ1dGVfaG9zdCBcCi0gICAgICBzZXRfbXVsdGlfY3B1X3VzYWdlIFwKLSAgICAgIGluaXRpYWxpemVfc3RlcCBcCi0gICAgICAgICBzZXRfZGVzaWduX21vZGUgXAotICAgICAgICAgc2V0X2RvbnRfdXNlIFwKLSAgICAgICAgIHNldF9vcHRfbW9kZSBcCi0gICAgICAgICBzZXRfZXh0cmFjdF9yY19tb2RlIFwKLSAgICAgICAgIHNldF9zaV9tb2RlIFwKLSAgICAgICAgIHNldF9kZWxheV9jYWxfbW9kZSBcCi0gICAgICAgICBzZXRfYW5hbHlzaXNfbW9kZSBcCi0gICAgICBhZGRfbWV0YWxmaWxsIFwKLSAgICAgIGRlbGV0ZV9maWxsZXJfY2VsbHMgXAotICAgICAgb3B0X2Rlc2lnbiBcCi0gICAgICBhZGRfZmlsbGVyX2NlbGxzIFwKLSAgICAgIHRyaW1fbWV0YWxmaWxsIFwKLSAgICAgIHNhdmVfZGVzaWduIFwKLSAgICAgIHJlcG9ydF9wb3dlciBcCi0gICAgICB2ZXJpZnlfcG93ZXJfZG9tYWluIFwKLSAgICAgIHJ1bl9jbHAgXAotICAgICAgc2V0X2Rpc3RyaWJ1dGVfaG9zdCBcCi0gICAgICBzZXRfbXVsdGlfY3B1X3VzYWdlIFwKLSAgICAgIGluaXRpYWxpemVfdGltaW5nIFwKLSAgICAgIGluaXRpYWxpemVfc3RlcCBcCi0gICAgICAgICBzZXRfYW5hbHlzaXNfbW9kZSBcCi0gICAgICAgICBzZXRfZXh0cmFjdF9yY19tb2RlIFwKLSAgICAgIGV4dHJhY3RfcmMgXAotICAgICAgZHVtcF9zcGVmIFwKLSAgICAgIHRpbWVfZGVzaWduX3NldHVwIFwKLSAgICAgIHRpbWVfZGVzaWduX2hvbGQgXAotICAgICAgc3RyZWFtX291dCBcCi0gICAgICBzYXZlX29hX2Rlc2lnbiBcCi0gICAgICBjcmVhdGVfaWxtIFwKLSAgICAgIHN1bW1hcnlfcmVwb3J0IFwKLSAgICAgIHZlcmlmeV9jb25uZWN0aXZpdHkgXAotICAgICAgdmVyaWZ5X2dlb21ldHJ5IFwKLSAgICAgIHZlcmlmeV9tZXRhbF9kZW5zaXR5IFwKLSAgICAgIHZlcmlmeV9wcm9jZXNzX2FudGVubmEgXAotICAgICAgc2F2ZV9kZXNpZ24gXAotICAgICAgcmVwb3J0X3Bvd2VyIFwKLSAgICAgIHZlcmlmeV9wb3dlcl9kb21haW4gXAotICAgICAgcnVuX2NscCBcCi0gICAgICBpbml0aWFsaXplX3RpbWluZyBcCi0gICAgICBsb2FkX2NwZiBcCi0gICAgICBjb21taXRfY3BmIFwKLSAgICAgIHJ1bl9jbHBfaW5pdCBcCi0gICAgICBzYXZlX2luaXRfZGJzIFwKLSAgICAgIHNldF9idWRnZXRpbmdfbW9kZSBcCi0gICAgICB1cGRhdGVfY29uc3RyYWludF9tb2RlIFwKLSAgICAgIHNldF9wdG5fdXNlcl9jbnNfZmlsZSBcCi0gICAgICBzZXRfcGxhY2VfbW9kZSBcCi0gICAgICBwbGFjZV9kZXNpZ24gXAotICAgICAgc2F2ZV9wbGFjZV9kYnMgXAotICAgICAgdHJpYWxfcm91dGUgXAotICAgICAgYXNzaWduX3B0bl9waW5zIFwKLSAgICAgIGNoZWNrX3Bpbl9hc3NpZ25tZW50IFwKLSAgICAgIHJlcG9ydF91bmFsaWduZWRfbmV0cyBcCi0gICAgICBzZXRfcHRuX3Bpbl9zdGF0dXMgXAotICAgICAgZGVyaXZlX3RpbWluZ19idWRnZXQgXAotICAgICAgc2F2ZV9idWRnZXRfZGJzIFwKLSAgICAgIHJ1bl9jbHAgXAotICAgICAgcGFydGl0aW9uIFwKLSAgICAgIHNhdmVfcGFydGl0aW9uIFwKLSAgICAgIGFzc2VtYmxlX2Rlc2lnbiBcCi0gICAgICBzcGVjaWZ5X2lsbSBcCi0gICAgICBsb2FkX2lsbV9ub25fc2RjX2ZpbGUgXAotICAgICAgbG9hZF9jcGYgXAotICAgICAgY29tbWl0X2NwZiBcCi0gICAgICBpbml0aWFsaXplX3RpbWluZyBcCi0gICAgICB1cGRhdGVfdGltaW5nIFwKLSAgICAgIHByZV9wYWNfdmVyaWZ5X2Nvbm5lY3Rpdml0eSBcCi0gICAgICBwcmVfcGFjX3ZlcmlmeV9nZW9tZXRyeSBcCi0gICAgICBzZXRfbW9kdWxlX3ZpZXcgXAotICAgICAgZGVsZXRlX2ZpbGxlcl9jZWxscyBcCi0gICAgICBvcHRfZGVzaWduIFwKLSAgICAgIGFkZF9maWxsZXJfY2VsbHMgXAotICAgICAgcG9zdF9wYWNfdmVyaWZ5X2Nvbm5lY3Rpdml0eSBcCi0gICAgICBwb3N0X3BhY192ZXJpZnlfZ2VvbWV0cnkgXAotICAgIgotICAgCi0gICBzZXQgcHJlZml4X2NvdW50IDAKLSAgIHNldCBtaWRmaXhfY291bnQgMAotICAgc2V0IHN1ZmZpeF9jb3VudCAwCi0gICAKLSAgIGZvcmVhY2ggdmFyaWFibGUgW2FycmF5IG5hbWVzIHZhcnNdIHsKLSAgICAgIHNldCBzcGxpdCBbc3BsaXQgJHZhcmlhYmxlICIsIl0KLSAgICAgIGlmIHtbbGxlbmd0aCAkc3BsaXRdID09IDF9IHsKLSAgICAgICAgIGNvbnRpbnVlCi0gICAgICB9IGVsc2VpZiB7W2xsZW5ndGggJHNwbGl0XSA9PSAyfSB7Ci0gICAgICAgICBzZXQgcHJlZml4IFtsaW5kZXggJHNwbGl0IDBdCi0gICAgICAgICBzZXQgc3VmZml4IFtsaW5kZXggJHNwbGl0IDFdCi0gICAgICAgICBwdXRzICRvcCAiQ2hlY2tpbmcgJHByZWZpeCArICRzdWZmaXgiCi0gICAgICAgICBpZiB7W2xzZWFyY2ggJHZhbGlkX3ByZWZpeGVzICRwcmVmaXhdID09IC0xfSB7Ci0gICAgICAgICAgICBpbmNyIHByZWZpeF9jb3VudAotICAgICAgICAgICAgcHV0cyAkb3AgIjxGRj4gRVJST1IgVW5rbm93biBwcmVmaXggLT4gJHByZWZpeCAoJHZhcmlhYmxlKSIKLSAgICAgICAgICAgIHB1dHMgIjxGRj4gRVJST1IgVW5rbm93biBwcmVmaXggLT4gJHByZWZpeCAoJHZhcmlhYmxlKSIKLSAgICMgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIEVSUk9SOiBBIHZlcmlsb2cgbmV0bGlzdCBmaWxlIG11c3QgYmUgZGVmaW5lZFxuIgotICAgICAgICAgICAgc2V0IGVycm9ycygkZXJyb3JfY291bnQpICJVbmtub3duIHByZWZpeCAtPiAkcHJlZml4ICgkdmFyaWFibGUpIgotICAgICAgICAgICAgaW5jciBlcnJvcl9jb3VudAotICAgICAgICAgfSAKLSAgICAgICAgIGlmIHtbbHNlYXJjaCAkdmFsaWRfc3VmZml4ZXMgJHN1ZmZpeF0gPT0gLTF9IHsKLSAgICAgICAgICAgIGluY3Igc3VmZml4X2NvdW50Ci0gICAgICAgICAgICBwdXRzICRvcCAiPEZGPiBFUlJPUiBVbmtub3duIHN1ZmZpeCAtPiAkc3VmZml4ICgkdmFyaWFibGUpIgotICAgICAgICAgICAgcHV0cyAiPEZGPiBFUlJPUiBVbmtub3duIHN1ZmZpeCAtPiAkc3VmZml4ICgkdmFyaWFibGUpIgotICAgICAgICAgICAgc2V0IGVycm9ycygkZXJyb3JfY291bnQpICJVbmtub3duIHN1ZmZpeCAtPiAkcHJlZml4ICgkdmFyaWFibGUpIgotICAgICAgICAgICAgaW5jciBlcnJvcl9jb3VudAotICAgICAgICAgfQotICAgICAgfSBlbHNlaWYge1tsbGVuZ3RoICRzcGxpdF0gPT0gM30gewotICAgICAgICAgc2V0IHByZWZpeCBbbGluZGV4ICRzcGxpdCAwXQotICAgICAgICAgc2V0IG1pZGZpeCBbbGluZGV4ICRzcGxpdCAxXQotICAgICAgICAgc2V0IHN1ZmZpeCBbbGluZGV4ICRzcGxpdCAyXQotICAgICAgICAgcHV0cyAkb3AgIkNoZWNraW5nICRwcmVmaXggKyAkbWlkZml4ICsgJHN1ZmZpeCIKLSAgICAgICAgIGlmIHtbbHNlYXJjaCAkdmFsaWRfcHJlZml4ZXMgJHByZWZpeF0gPT0gLTF9IHsKLSAgICAgICAgICAgIGluY3IgcHJlZml4X2NvdW50Ci0gICAgICAgICAgICBwdXRzICRvcCAiPEZGPiBFUlJPUiBVbmtub3duIHByZWZpeCAtPiAkcHJlZml4ICgkdmFyaWFibGUpIgotICAgICAgICAgICAgcHV0cyAiPEZGPiBFUlJPUiBVbmtub3duIHByZWZpeCAtPiAkcHJlZml4ICgkdmFyaWFibGUpIgotICAgICAgICAgICAgc2V0IGVycm9ycygkZXJyb3JfY291bnQpICJVbmtub3duIHByZWZpeCAtPiAkcHJlZml4ICgkdmFyaWFibGUpIgotICAgICAgICAgICAgaW5jciBlcnJvcl9jb3VudAotICAgICAgICAgfSAKLSAgICAgICAgIGlmIHtbbHNlYXJjaCAkdmFsaWRfbWlkZml4ZXMgJG1pZGZpeF0gPT0gLTF9IHsKLSAgICAgICAgICAgIGluY3IgbWlkZml4X2NvdW50Ci0gICAgICAgICAgICBwdXRzICRvcCAiPEZGPiBFUlJPUiBVbmtub3duIG1pZGZpeCAtPiAkcHJlZml4ICgkdmFyaWFibGUpIgotICAgICAgICAgICAgcHV0cyAiPEZGPiBFUlJPUiBVbmtub3duIG1pZGZpeCAtPiAkcHJlZml4ICgkdmFyaWFibGUpIgotICAgICAgICAgICAgc2V0IGVycm9ycygkZXJyb3JfY291bnQpICJVbmtub3duIG1pZGZpeCAtPiAkbWlkZml4ICgkdmFyaWFibGUpIgotICAgICAgICAgICAgaW5jciBlcnJvcl9jb3VudAotICAgICAgICAgfSAKLSAgICAgICAgIGlmIHtbbHNlYXJjaCAkdmFsaWRfc3VmZml4ZXMgJHN1ZmZpeF0gPT0gLTF9IHsKLSAgICAgICAgICAgIGluY3Igc3VmZml4X2NvdW50Ci0gICAgICAgICAgICBwdXRzICRvcCAiPEZGPiBXQVJOSU5HIFVua25vd24gc3VmZml4IC0+ICRzdWZmaXggKCR2YXJpYWJsZSkiCi0gICAgICAgICAgICBwdXRzICI8RkY+IFdBUk5JTkcgVW5rbm93biBzdWZmaXggLT4gJHN1ZmZpeCAoJHZhcmlhYmxlKSIKLSAgICAgICAgICAgIHNldCBlcnJvcnMoJGVycm9yX2NvdW50KSAiVW5rbm93biBzdWZmaXggLT4gJHByZWZpeCAoJHZhcmlhYmxlKSIKLSAgICAgICAgICAgIGluY3IgZXJyb3JfY291bnQKLSAgICAgICAgIH0KLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgICBjb250aW51ZQotICAgICAgfQotICAgfQotICAgCi0gICBjbG9zZSAkb3AKLQotfQpkaWZmIC0tZ2l0IGEvZmxvdy9wbnIvRVhBTVBMRVMvSU5OT1ZVUy9ERVNJR04vU0NSSVBUUy9FVEMvSU5OT1ZVUy9kZWZhdWx0cy50Y2wgYi9mbG93L3Buci9FWEFNUExFUy9JTk5PVlVTL0RFU0lHTi9TQ1JJUFRTL0VUQy9JTk5PVlVTL2RlZmF1bHRzLnRjbApkZWxldGVkIGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggNjUxZWIyZi4uMDAwMDAwMAotLS0gYS9mbG93L3Buci9FWEFNUExFUy9JTk5PVlVTL0RFU0lHTi9TQ1JJUFRTL0VUQy9JTk5PVlVTL2RlZmF1bHRzLnRjbAorKysgL2Rldi9udWxsCkBAIC0xLDExNyArMCwwIEBACi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0jIERlZmluZSBvcHRpb24gZGVmYXVsdHMgYW5kIGluaXRpYWxpemUgdW5kZWZpbmVkIHZhcmlhYmxlcwotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotc2V0IGZsb3dfZGVmYXVsdHMoZmZmX2luZm9fbGV2ZWwpIDAKLXNldCBmbG93X2RlZmF1bHRzKGRlYnVnKSAwCi1zZXQgZmxvd19kZWZhdWx0cyhmcmVlemVfdmFycykgZmFsc2UKLSNzZXQgZmxvd19kZWZhdWx0cyhub3Z1cykgZmFsc2UKLXNldCBmbG93X2RlZmF1bHRzKHBhcmVudCkgZWRpCi1zZXQgZmxvd19kZWZhdWx0cyhhYnV0dGVkX2Rlc2lnbikgZmFsc2UgCi1zZXQgZmxvd19kZWZhdWx0cyhoaWVyX2Zsb3dfdHlwZSkgMXBhc3MgCi1zZXQgZmxvd19kZWZhdWx0cyhuZXRsaXN0X3R5cGUpIHZlcmlsb2cKLXNldCBmbG93X2RlZmF1bHRzKGlsbV9saXN0KSAiIiAgICAgIAotc2V0IGZsb3dfZGVmYXVsdHMoY29kZWdlbikgZmFsc2UKLXNldCBmbG93X2RlZmF1bHRzKGNhcHR1cmVfbWV0cmljcykgdHJ1ZQotc2V0IGZsb3dfZGVmYXVsdHMocmVwb3J0X3J1bl90aW1lKSB0cnVlCi1zZXQgZmxvd19kZWZhdWx0cyhyZXBvcnRfc3lzdGVtX2luZm8pIHRydWUKLXNldCBmbG93X2RlZmF1bHRzKGVuYWJsZV9xb3JfY2hlY2spIGZhbHNlCi1zZXQgZmxvd19kZWZhdWx0cyhiYXRjaCkgdHJ1ZQotc2V0IGZsb3dfZGVmYXVsdHMocmMpIGZhbHNlCi1zZXQgZmxvd19kZWZhdWx0cyh2ZXJib3NlKSBmYWxzZQotc2V0IGZsb3dfZGVmYXVsdHMocnVuX2xlYykgdHJ1ZQotc2V0IGZsb3dfZGVmYXVsdHMoc2tpcF9jdHMpIGZhbHNlCi1zZXQgZmxvd19kZWZhdWx0cyhlbmFibGVfY2VsdGljX3N0ZXBzKSBmYWxzZQotc2V0IGZsb3dfZGVmYXVsdHMoc2tpcF9zaWdub2ZmX2NoZWNrcykgZmFsc2UKLXNldCBmbG93X2RlZmF1bHRzKHJ1bl9jbHApIHRydWUKLSNzZXQgZmxvd19kZWZhdWx0cyhkYnNfZm9ybWF0KSBvYQotc2V0IGZsb3dfZGVmYXVsdHMoaGlnaF90aW1pbmdfZWZmb3J0KSBmYWxzZQotc2V0IGZsb3dfZGVmYXVsdHMoZmxvd19lZmZvcnQpIHN0YW5kYXJkCi0jc2V0IGZsb3dfZGVmYXVsdHMoZmxvd19lZmZvcnQpIG5vbmUKLXNldCBmbG93X2RlZmF1bHRzKHBvd2VyX2VmZm9ydCkgbm9uZQotc2V0IGZsb3dfZGVmYXVsdHMoZ2VuZXJhdGVfdHJhY2tzKSB0cnVlCi1zZXQgZmxvd19kZWZhdWx0cyhhZGRfdHJhY2tzKSB0cnVlCi1zZXQgZmxvd19kZWZhdWx0cyhnZW5lcmF0ZV9mbG93X3N0ZXBzKSBmYWxzZQotc2V0IGZsb3dfZGVmYXVsdHMoZW5hYmxlX3JjcCkgZmFsc2UKLXNldCBmbG93X2RlZmF1bHRzKGVuYWJsZV9wYW0pIGZhbHNlCi1zZXQgZmxvd19kZWZhdWx0cyhlbmFibGVfYW9jdikgZmFsc2UKLXNldCBmbG93X2RlZmF1bHRzKGVuYWJsZV9zb2N2KSBmYWxzZQotc2V0IGZsb3dfZGVmYXVsdHMoZW5hYmxlX29jdikgcHJlX2N0cwotc2V0IGZsb3dfZGVmYXVsdHMoZW5hYmxlX2NwcHIpIG5vbmUKLXNldCBmbG93X2RlZmF1bHRzKGVuYWJsZV9zcykgZmFsc2UKLXNldCBmbG93X2RlZmF1bHRzKGVuYWJsZV9zaV9hd2FyZSkgdHJ1ZQotc2V0IGZsb3dfZGVmYXVsdHMoZW5hYmxlX3BhYykgZmFsc2UKLXNldCBmbG93X2RlZmF1bHRzKGVuYWJsZV9mbGV4aWxtKSBmYWxzZQotc2V0IGZsb3dfZGVmYXVsdHMoZW5hYmxlX25yZ3IpIGZhbHNlCi1zZXQgZmxvd19kZWZhdWx0cyhlbmFibGVfc2lnbm9mZl9lY28pIGZhbHNlCi1zZXQgZmxvd19kZWZhdWx0cyhibGFja19ib3gpIHRydWUKLXNldCBmbG93X2RlZmF1bHRzKHBhY19zY3JhdGNoX2RpcikgIlBBQ19TQ1JBVENIIgotc2V0IGZsb3dfZGVmYXVsdHMoZWNvX2RpcikgIkVDTyIKLXNldCBmbG93X2RlZmF1bHRzKGJ1ZGdldF9tb2RlKSBnaWdhX29wdAotc2V0IGZsb3dfZGVmYXVsdHModXNlX3Byb3RvX25ldF9kZWxheV9tb2RlbCkgZmFsc2UKLXNldCBmbG93X2RlZmF1bHRzKHVzZV9mbGV4bW9kZWxzKSBmYWxzZQotc2V0IGZsb3dfZGVmYXVsdHMoZmxleG1vZGVsX2FzX3B0bikgdHJ1ZQotc2V0IGZsb3dfZGVmYXVsdHMoZmxleG1vZGVsX2FydF9iYXNlZCkgdHJ1ZQotc2V0IGZsb3dfZGVmYXVsdHMoY3JlYXRlX2ZsZXhmaWxsZXJfYmxvY2thZ2UpIGZhbHNlCi1zZXQgZmxvd19kZWZhdWx0cyhmbGV4bW9kZWxfcHJvdG90eXBlKSBmYWxzZQotc2V0IGZsb3dfZGVmYXVsdHMoZmxleG1vZGVsX3Byb3RvdHlwZV9mbG93X3N0eWxlKSAidG9wX3RvX2JvdHRvbSIKLXNldCBmbG93X2RlZmF1bHRzKGZsZXhtb2RlbF9wcm90b3R5cGVfY29uZ2VzdGlvbl9hd2FyZSkgZmFsc2UKLXNldCBmbG93X2RlZmF1bHRzKGZsZXhtb2RlbF9wcm90b3R5cGVfdGltaW5nX2F3YXJlKSBmYWxzZQotc2V0IGZsb3dfZGVmYXVsdHMoZmxleG1vZGVsX3Byb3RvdHlwZV91c2VyX2NvbnRyYWludHMpICJ1c2VyX2NvbnN0cmFpbnRzLnR4dCIKLSMgICBzZXQgZmxvd19kZWZhdWx0cyhjbG9ja19lY28pIG5vbmUKLSMgICBzZXQgZmxvd19kZWZhdWx0cyhjbG9ja19nYXRlX2Nsb25lKSBmYWxzZQotc2V0IGZsb3dfZGVmYXVsdHMobWV0YWxmaWxsKSBmYWxzZQotc2V0IGZsb3dfZGVmYXVsdHMoY3BmX3RpbWluZykgZmFsc2UKLXNldCBmbG93X2RlZmF1bHRzKGNwZl9rZWVwX3Jvd3MpIGZhbHNlCi1zZXQgZmxvd19kZWZhdWx0cyhjcGZfcG93ZXJfZG9tYWluKSBmYWxzZQotc2V0IGZsb3dfZGVmYXVsdHMoY3BmX3Bvd2VyX3N3aXRjaCkgZmFsc2UKLXNldCBmbG93X2RlZmF1bHRzKGNwZl9pc29sYXRpb24pIGZhbHNlCi1zZXQgZmxvd19kZWZhdWx0cyhjcGZfc3RhdGVfcmV0ZW50aW9uKSBmYWxzZQotc2V0IGZsb3dfZGVmYXVsdHMoY3BmX2xldmVsX3NoaWZ0ZXIpIGZhbHNlCi1zZXQgZmxvd19kZWZhdWx0cyhpZWVlMTgwMV90aW1pbmcpIGZhbHNlCi1zZXQgZmxvd19kZWZhdWx0cyhpZWVlMTgwMV9rZWVwX3Jvd3MpIGZhbHNlCi1zZXQgZmxvd19kZWZhdWx0cyhpZWVlMTgwMV9wb3dlcl9kb21haW4pIGZhbHNlCi1zZXQgZmxvd19kZWZhdWx0cyhpZWVlMTgwMV9wb3dlcl9zd2l0Y2gpIGZhbHNlCi1zZXQgZmxvd19kZWZhdWx0cyhpZWVlMTgwMV9pc29sYXRpb24pIGZhbHNlCi1zZXQgZmxvd19kZWZhdWx0cyhpZWVlMTgwMV9zdGF0ZV9yZXRlbnRpb24pIGZhbHNlCi1zZXQgZmxvd19kZWZhdWx0cyhpZWVlMTgwMV9sZXZlbF9zaGlmdGVyKSBmYWxzZQotc2V0IGZsb3dfZGVmYXVsdHMoaW5zZXJ0X2ZlZWR0aHJvdWdoKSB0cnVlCi1zZXQgZmxvd19kZWZhdWx0cyhyZXBvcnRfcG93ZXIpIGZhbHNlCi0jc2V0IGZsb3dfZGVmYXVsdHMoaW5fcGxhY2Vfb3B0KSBmYWxzZQotI3NldCBmbG93X2RlZmF1bHRzKG5vX3ByZV9wbGFjZV9vcHQpIGZhbHNlCi1zZXQgZmxvd19kZWZhdWx0cyhwbGFjZV9vcHRfZGVzaWduKSB0cnVlCi1zZXQgZmxvd19kZWZhdWx0cyhwbGFjZV9pb19waW5zKSBmYWxzZQotc2V0IGZsb3dfZGVmYXVsdHMocGxhY2VtZW50X2Jhc2VkX3B0bikgZmFsc2UKLXNldCBmbG93X2RlZmF1bHRzKHVwZGF0ZV9pb19sYXRlbmN5KSB0cnVlCi1zZXQgZmxvd19kZWZhdWx0cyhyb3V0ZV9jbG9ja19uZXRzKSB0cnVlCi1zZXQgZmxvd19kZWZhdWx0cyh0cmFja19vcHQpIGZhbHNlCi1zZXQgZmxvd19kZWZhdWx0cyhjdHNfZW5naW5lKSBjY29wdAotc2V0IGZsb3dfZGVmYXVsdHMoY2NvcHRfZWZmb3J0KSBsb3cKLXNldCBmbG93X2RlZmF1bHRzKHNraXBfY3RzKSBmYWxzZQotc2V0IGZsb3dfZGVmYXVsdHMoZml4X2hvbGQpICJwb3N0Y3RzIHBvc3Ryb3V0ZSBwb3N0cm91dGVfc2kiCi1zZXQgZmxvd19kZWZhdWx0cyhmaXhfaG9sZF9pZ25vcmVfaW9zKSBmYWxzZQotc2V0IGZsb3dfZGVmYXVsdHMocHJlcm91dGVfb3B0X2Rlc2lnbikgZmFsc2UKLXNldCBmbG93X2RlZmF1bHRzKHBvc3RjdHNfc2V0dXBfaG9sZCkgZmFsc2UKLXNldCBmbG93X2RlZmF1bHRzKHJvdXRlX29wdF9kZXNpZ24pIGZhbHNlCi1zZXQgZmxvd19kZWZhdWx0cyhwb3N0cm91dGVfc2V0dXBfaG9sZCkgdHJ1ZQotI3NldCBmbG93X2RlZmF1bHRzKHBvc3Ryb3V0ZV9zcHJlYWRfd2lyZXMpIGZhbHNlCi1zZXQgZmxvd19kZWZhdWx0cyh2ZXJpZnlfbGl0aG8pIGZhbHNlCi1zZXQgZmxvd19kZWZhdWx0cyhmaXhfbGl0aG8pIGZhbHNlCi0jc2V0IGZsb3dfZGVmYXVsdHMocG9zdHJvdXRlX2V4dHJhY3Rpb25fZWZmb3J0KSBsb3cKLXNldCBmbG93X2RlZmF1bHRzKHNpZ25vZmZfZXh0cmFjdGlvbl9lZmZvcnQpIGhpZ2gKLXNldCBmbG93X2RlZmF1bHRzKGhvc3RzKSAxCi1zZXQgZmxvd19kZWZhdWx0cyh0aHJlYWRzKSAxCi1zZXQgZmxvd19kZWZhdWx0cyhsb2NhbF9jcHVzKSAxCi1zZXQgZmxvd19kZWZhdWx0cyhyZW1vdGVfaG9zdHMpIDAKLXNldCBmbG93X2RlZmF1bHRzKGNwdXNfcGVyX3JlbW90ZV9ob3N0KSAxCi1zZXQgZmxvd19kZWZhdWx0cyhiYWNrdXBfZGF0YSkgMAotc2V0IGZsb3dfZGVmYXVsdHMoc2F2ZV9jb25zdHJhaW50cykgMAotc2V0IGZsb3dfZGVmYXVsdHModXNlcl9jb21tZW50cykgMAotc2V0IGZsb3dfZGVmYXVsdHMocGxhY2UsdGltZV9kZXNpZ24sc2tpcCkgdHJ1ZQotc2V0IGZsb3dfZGVmYXVsdHMoY3RzLHRpbWVfZGVzaWduLHNraXApIHRydWUKLXNldCBmbG93X2RlZmF1bHRzKHJvdXRlLHRpbWVfZGVzaWduLHNraXApIHRydWUKLXNldCBmbG93X2RlZmF1bHRzKHJvdXRlLGNoZWNrX3BsYWNlLHNraXApIHRydWUKLXNldCBmbG93X2RlZmF1bHRzKG1ha2VfdG9vbCkgZW5jb3VudGVyCi1zZXQgZmxvd19kZWZhdWx0cyhtYWtlX3Rvb2xfYXJncykgIi02NCAtbm93aW4iCi1zZXQgZmxvd19kZWZhdWx0cyhtYWtlX3N5bl90b29sKSBnZW51cwotc2V0IGZsb3dfZGVmYXVsdHMobWFrZV9zeW5fdG9vbF9hcmdzKSAiLTY0Igotc2V0IGZsb3dfZGVmYXVsdHMobWFrZV9icm93c2VyKSBuZXRzY2FwZQpkaWZmIC0tZ2l0IGEvZmxvdy9wbnIvRVhBTVBMRVMvSU5OT1ZVUy9ERVNJR04vU0NSSVBUUy9FVEMvSU5OT1ZVUy9nZW5fb3B0aW9ucy50Y2wgYi9mbG93L3Buci9FWEFNUExFUy9JTk5PVlVTL0RFU0lHTi9TQ1JJUFRTL0VUQy9JTk5PVlVTL2dlbl9vcHRpb25zLnRjbApkZWxldGVkIGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggNTAyNjIyZC4uMDAwMDAwMAotLS0gYS9mbG93L3Buci9FWEFNUExFUy9JTk5PVlVTL0RFU0lHTi9TQ1JJUFRTL0VUQy9JTk5PVlVTL2dlbl9vcHRpb25zLnRjbAorKysgL2Rldi9udWxsCkBAIC0xLDE2MyArMCwwIEBACi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0jICAgICAgICAgICAgICAgICAgICAgICBDQURFTkNFIENPUFlSSUdIVCBOT1RJQ0UKLSMgICAgICAgICCpIDIwMDgtMjAxMyBDYWRlbmNlIERlc2lnbiBTeXN0ZW1zLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0jCi0jIFRoaXMgRm91bmRhdGlvbiBGbG93IGlzIHByb3ZpZGVkIGFzIGFuIGV4YW1wbGUgb2YgaG93IHRvIHBlcmZvcm0gc3BlY2lhbGl6ZWQKLSMgdGFza3MuCi0jCi0jIFRoaXMgd29yayBtYXkgbm90IGJlIGNvcGllZCwgcmUtcHVibGlzaGVkLCB1cGxvYWRlZCwgb3IgZGlzdHJpYnV0ZWQgaW4gYW55IHdheSwKLSMgaW4gYW55IG1lZGl1bSwgd2hldGhlciBpbiB3aG9sZSBvciBpbiBwYXJ0LCB3aXRob3V0IHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbgotIyBmcm9tIENhZGVuY2UuIE5vdHdpdGhzdGFuZGluZyBhbnkgcmVzdHJpY3Rpb25zIGhlcmVpbiwgc3ViamVjdCB0byBjb21wbGlhbmNlCi0jIHdpdGggdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mIHRoZSBDYWRlbmNlIHNvZnR3YXJlIGxpY2Vuc2UgYWdyZWVtZW50IHVuZGVyCi0jIHdoaWNoIHRoaXMgbWF0ZXJpYWwgd2FzIHByb3ZpZGVkLCB0aGlzIG1hdGVyaWFsIG1heSBiZSBjb3BpZWQgYW5kIGludGVybmFsbHkKLSMgZGlzdHJpYnV0ZWQgc29sZWx5IGZvciBpbnRlcm5hbCBwdXJwb3NlcyBmb3IgdXNlIHdpdGggQ2FkZW5jZSB0b29scy4KLSMKLSMgVGhpcyB3b3JrIGlzIENhZGVuY2UgaW50ZWxsZWN0dWFsIHByb3BlcnR5IGFuZCBtYXkgdW5kZXIgbm8gY2lyY3Vtc3RhbmNlcyBiZQotIyBnaXZlbiB0byB0aGlyZCBwYXJ0aWVzLCBuZWl0aGVyIGluIG9yaWdpbmFsIG5vciBpbiBtb2RpZmllZCB2ZXJzaW9ucywgd2l0aG91dAotIyBleHBsaWNpdCB3cml0dGVuIHBlcm1pc3Npb24gZnJvbSBDYWRlbmNlLiBUaGUgaW5mb3JtYXRpb24gY29udGFpbmVkIGhlcmVpbiBpcwotIyB0aGUgcHJvcHJpZXRhcnkgYW5kIGNvbmZpZGVudGlhbCBpbmZvcm1hdGlvbiBvZiBDYWRlbmNlIG9yIGl0cyBsaWNlbnNvcnMsIGFuZAotIyBpcyBzdXBwbGllZCBzdWJqZWN0IHRvLCBhbmQgbWF5IGJlIHVzZWQgb25seSBieSBDYWRlbmNlJ3MgY3VycmVudCBjdXN0b21lcnMKLSMgaW4gYWNjb3JkYW5jZSB3aXRoLCBhIHByZXZpb3VzbHkgZXhlY3V0ZWQgbGljZW5zZSBhZ3JlZW1lbnQgYmV0d2VlbiBDYWRlbmNlCi0jIGFuZCBpdHMgY3VzdG9tZXIuCi0jCi0jLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0jIFRISVMgTUFURVJJQUwgSVMgUFJPVklERUQgQlkgQ0FERU5DRSAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVECi0jIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GCi0jIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuCi0jIElOIE5PIEVWRU5UIFNIQUxMIENBREVOQ0UgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTAotIyBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLAotIyBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUICAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IKLSMgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyAgTUFURVJJQUwsIEVWRU4gSUYKLSMgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0KLXByb2MgZ2VuX29wdGlvbnMge2ZpbGV9IHsKLQotICAgZ2xvYmFsIG5hbWVzCi0gICBnbG9iYWwgbm90ZXMKLSAgIGdsb2JhbCBkZWZhdWx0Ci0gICBnbG9iYWwgdHlwZQotICAgZ2xvYmFsIGNhdGVnb3J5Ci0KLSAgIHNldCBuYW1lcyBbbGlzdF0KLQotICAgc2V0IGlwIFtvcGVuICRmaWxlXQotICAgd2hpbGUge1tnZXRzICRpcCB0ZW1wXT49MH0gewotICAgICAgaWYge1tyZWdleHAgIl4jIiAkdGVtcF19IHsgY29udGludWUgfQotICAgICAgc2V0IGxpbmUgW3NwbGl0ICR0ZW1wICJcXiJdCi0gICAgICBwdXRzICRsaW5lCi0gICAgICBzZXQgdmFyIFtsaW5kZXggJGxpbmUgMF0KLSAgICAgIGxhcHBlbmQgbmFtZXMgJHZhcgotICAgICAgc2V0IGNhdGVnb3J5KCR2YXIpIFtsaW5kZXggJGxpbmUgMV0KLSAgICAgIHNldCB0eXBlKCR2YXIpIFtsaW5kZXggJGxpbmUgMl0KLSAgICAgIHNldCBkZWZhdWx0KCR2YXIpIFtsaW5kZXggJGxpbmUgM10KLSAgICAgIHNldCBub3RlcygkdmFyKSBbbGluZGV4ICRsaW5lIDRdCi0gICB9Ci0gICBjbG9zZSAkaXAKLQotICAgcHV0cyAiW2xsZW5ndGggJG5hbWVzXSB2YXJpYWJsZXMgcHJvY2Vzc2VkIgotCi0gICBzZXQgb3AgW29wZW4gb3B0aW9ucy50Y2wgd10KLSAgIGZvcmVhY2ggdmFyICRuYW1lcyB7Ci0gICAgICBzd2l0Y2ggLWdsb2IgJHZhciAgewotICAgICAgICAgImxpYnJhcnlfc2V0cyIgewotICAgICAgICAgICAgcHV0cyAkb3AgInNldCB2YXJzKCR2YXIpIFxbbGlzdCBsaWJyYXJ5X3NldFxdIgotICAgICAgICAgfQotICAgICAgICAgIjxsaWJyYXJ5X3NldCoiIHsKLSAgICAgICAgICAgIHJlZ3N1YiAiPCIgJHZhciAiIiB0ZW1wCi0gICAgICAgICAgICByZWdzdWIgIj4iICR0ZW1wICIiIHN2YXIKLSAgICAgICAgICAgIHB1dHMgJG9wICJzZXQgdmFycygkc3ZhcikgJG5vdGVzKCR2YXIpIgotICAgICAgICAgfSAKLSAgICAgICAgICJyY19jb3JuZXJzIiB7Ci0gICAgICAgICAgICBwdXRzICRvcCAic2V0IHZhcnMoJHZhcikgXFtsaXN0IHJjX2Nvcm5lclxdIgotICAgICAgICAgfQotICAgICAgICAgIjxyY19jb3JuZXIqIiB7Ci0gICAgICAgICAgICByZWdzdWIgIjwiICR2YXIgIiIgdGVtcAotICAgICAgICAgICAgcmVnc3ViICI+IiAkdGVtcCAiIiBzdmFyCi0gICAgICAgICAgICBzd2l0Y2ggLWdsb2IgW2xpbmRleCBbc3BsaXQgJHN2YXIgIiwiXSAxXSB7Ci0gICAgICAgICAgICAgICAiY2FwX3RhYmxlIiB7IAotICAgICAgICAgICAgICAgICAgcHV0cyAkb3AgInNldCB2YXJzKCRzdmFyKSAkbm90ZXMoJHZhcikiCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAicXhfdGVjaF9maWxlIiB7IAotICAgICAgICAgICAgICAgICAgcHV0cyAkb3AgInNldCB2YXJzKCRzdmFyKSAkbm90ZXMoJHZhcikiCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAiZGVmYXVsdCIgewotICAgICAgICAgICAgICAgICAgaWYge1tyZWdleHAgInBvc3Rfcm91dGUiICRzdmFyXX0gewotICAgICAgICAgICAgICAgICAgICAgcHV0cyAkb3AgInNldCB2YXJzKCRzdmFyKSB7MS4wMCAxLjAwIDEuMDB9IgotICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgIHB1dHMgJG9wICJzZXQgdmFycygkc3ZhcikgMS4wMCIKLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0gCi0gICAgICAgICAiZGVsYXlfY29ybmVycyIgewotICAgICAgICAgICAgcHV0cyAkb3AgInNldCB2YXJzKCR2YXIpIFxbbGlzdCBkZWxheV9jb3JuZXJcXSIKLSAgICAgICAgIH0KLSAgICAgICAgICI8ZGVsYXlfY29ybmVyKiIgewotICAgICAgICAgICAgcmVnc3ViICI8IiAkdmFyICIiIHRlbXAKLSAgICAgICAgICAgIHJlZ3N1YiAiPiIgJHRlbXAgIiIgdmFyCi0gICAgICAgICAgICBzd2l0Y2ggLWdsb2IgW2xpbmRleCBbc3BsaXQgJHZhciAiLCJdIDFdIHsKLSAgICAgICAgICAgICAgICJyY19jb3JuZXIiIHsKLSAgICAgICAgICAgICAgICAgIHB1dHMgJG9wICJzZXQgdmFycygkdmFyKSB7cmNfY29ybmVyfSIKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICJsaWJyYXJ5X3NldCIgewotICAgICAgICAgICAgICAgICAgcHV0cyAkb3AgInNldCB2YXJzKCR2YXIpIHtsaWJyYXJ5X3NldH0iCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAiZGVmYXVsdCIgewotICAgICAgICAgICAgICAgICAgcHV0cyAkb3AgInNldCB2YXJzKCR2YXIpIDEuMDAiCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9IAotICAgICAgICAgfQotICAgICAgICAgImNvbnN0cmFpbnRfbW9kZXMiIHsKLSAgICAgICAgICAgIHB1dHMgJG9wICJzZXQgdmFycygkdmFyKSBcW2xpc3QgY29uc3RyYWludF9tb2RlXF0iCi0gICAgICAgICB9Ci0gICAgICAgICAiPGNvbnN0cmFpbnRfbW9kZSoiIHsKLSAgICAgICAgICAgIHJlZ3N1YiAiPCIgJHZhciAiIiB0ZW1wCi0gICAgICAgICAgICByZWdzdWIgIj4iICR0ZW1wICIiIHZhcgotICAgICAgICAgICAgc3dpdGNoIC1nbG9iIFtsaW5kZXggW3NwbGl0ICR2YXIgIiwiXSAxXSB7Ci0gICAgICAgICAgICAgICAicHJlX2N0c19zZGMiIHsKLSAgICAgICAgICAgICAgICAgIHB1dHMgJG9wICJzZXQgdmFycygkdmFyKSB7c2RjX2ZpbGV9IgotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgInBvc3RfY3RzX3NkYyIgewotICAgICAgICAgICAgICAgICAgcHV0cyAkb3AgInNldCB2YXJzKCR2YXIpIHtzZGNfZmlsZX0iCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9IAotICAgICAgICAgfQotICAgICAgICAgIipzZXR1cCp2aWV3KiIgewotICAgICAgICAgICAgcHV0cyAkb3AgInNldCB2YXJzKCR2YXIpIHtzZXR1cF92aWV3fSIKLSAgICAgICAgICAgIHB1dHMgJG9wICJzZXQgdmFycyhzZXR1cF92aWV3LGRlbGF5X2Nvcm5lcikge2RlbGF5X2Nvcm5lcn0iCi0gICAgICAgICAgICBwdXRzICRvcCAic2V0IHZhcnMoc2V0dXBfdmlldyxjb25zdHJhaW50X21vZGUpIHtjb25zdHJhaW50X21vZGV9IgotICAgICAgICAgfQotICAgICAgICAgIipob2xkKnZpZXcqIiB7Ci0gICAgICAgICAgICBwdXRzICRvcCAic2V0IHZhcnMoJHZhcikge2hvbGRfdmlld30iCi0gICAgICAgICAgICBwdXRzICRvcCAic2V0IHZhcnMoaG9sZF92aWV3LGRlbGF5X2Nvcm5lcikge2RlbGF5X2Nvcm5lcn0iCi0gICAgICAgICAgICBwdXRzICRvcCAic2V0IHZhcnMoaG9sZF92aWV3LGNvbnN0cmFpbnRfbW9kZSkge2NvbnN0cmFpbnRfbW9kZX0iCi0gICAgICAgICB9Ci0gICAgICAgICAiYW5hbHlzaXNfdmlld3MiIHsKLSAgICAgICAgICAgIHB1dHMgJG9wICJzZXQgdmFycyhhbmFseXNpc192aWV3cykge3NldHVwX3ZpZXcgaG9sZF92aWV3fSIKLSAgICAgICAgIH0KLSAgICAgICAgIGRlZmF1bHQgewotICAgICAgICAgICAgaWYgeyR0eXBlKCR2YXIpID09ICJlbnVtIn0gewotICAgICAgICAgICAgICAgcHV0cyAkb3AgInNldCB2YXJzKCR2YXIpICRub3RlcygkdmFyKSIKLSAgICAgICAgICAgIH0gZWxzZWlmIHskdHlwZSgkdmFyKSA9PSAibGlzdCJ9IHsKLSAgICAgICAgICAgICAgIHJlZ3N1YiAiPCIgJG5vdGVzKCR2YXIpICIiIHRlbXAKLSAgICAgICAgICAgICAgIHJlZ3N1YiAiPiIgJHRlbXAgIiIgbm90ZXMoJHZhcikKLSAgICAgICAgICAgICAgIHJlZ3N1YiAieyIgJG5vdGVzKCR2YXIpICIiIHRlbXAKLSAgICAgICAgICAgICAgIHJlZ3N1YiAifSIgJHRlbXAgIiIgbm90ZXMoJHZhcikKLSAgICAgICAgICAgICAgIHB1dHMgJG9wICJzZXQgdmFycygkdmFyKSB7bGlzdCBvZiAkbm90ZXMoJHZhcil9IgotICAgICAgICAgICAgfSBlbHNlaWYgeyRjYXRlZ29yeSgkdmFyKSA9PSAicGx1Zy1pbiJ9IHsKLSAgICAgICAgICAgICAgIHB1dHMgJG9wICJzZXQgdmFycygkdmFyKSAkbm90ZXMoJHZhcikiCi0gICAgICAgICAgICB9IGVsc2VpZiB7JGRlZmF1bHQoJHZhcikgIT0gIlVOREVGSU5FRCJ9IHsKLSAgICAgICAgICAgICAgIHB1dHMgJG9wICJzZXQgdmFycygkdmFyKSAkZGVmYXVsdCgkdmFyKSIKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBwdXRzICRvcCAic2V0IHZhcnMoJHZhcikgeyR0eXBlKCR2YXIpfSIKLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0KLSAgICAgIH0KLSAgIH0KLSAgIGNsb3NlICRvcAotCi19Ci0KLWdlbl9vcHRpb25zICRhcmd2CmRpZmYgLS1naXQgYS9mbG93L3Buci9FWEFNUExFUy9JTk5PVlVTL0RFU0lHTi9TQ1JJUFRTL0VUQy9JTk5PVlVTL2dlbmVyaWMuY29uZiBiL2Zsb3cvcG5yL0VYQU1QTEVTL0lOTk9WVVMvREVTSUdOL1NDUklQVFMvRVRDL0lOTk9WVVMvZ2VuZXJpYy5jb25mCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDc1NQppbmRleCA5OTg1MzIxLi4wMDAwMDAwCi0tLSBhL2Zsb3cvcG5yL0VYQU1QTEVTL0lOTk9WVVMvREVTSUdOL1NDUklQVFMvRVRDL0lOTk9WVVMvZ2VuZXJpYy5jb25mCisrKyAvZGV2L251bGwKQEAgLTEsMTc3ICswLDAgQEAKLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSMgICAgICAgICAgICAgICAgICAgICAgIENBREVOQ0UgQ09QWVJJR0hUIE5PVElDRQotIyAgICAgICDvv70gMjAwOC0yMDA5IENhZGVuY2UgRGVzaWduIFN5c3RlbXMsIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSMKLSMgVGhpcyBGb3VuZGF0aW9uIEZsb3cgaXMgcHJvdmlkZWQgYXMgYW4gZXhhbXBsZSBvZiBob3cgdG8gcGVyZm9ybSBzcGVjaWFsaXplZAotIyB0YXNrcyB3aXRoaW4gSW5ub3Z1cyBTeXN0ZW0uCi0jCi0jIFRoaXMgd29yayBtYXkgbm90IGJlIGNvcGllZCwgcmUtcHVibGlzaGVkLCB1cGxvYWRlZCwgb3IgZGlzdHJpYnV0ZWQgaW4gYW55IHdheSwKLSMgaW4gYW55IG1lZGl1bSwgd2hldGhlciBpbiB3aG9sZSBvciBpbiBwYXJ0LCB3aXRob3V0IHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbgotIyBmcm9tIENhZGVuY2UuIE5vdHdpdGhzdGFuZGluZyBhbnkgcmVzdHJpY3Rpb25zIGhlcmVpbiwgc3ViamVjdCB0byBjb21wbGlhbmNlCi0jIHdpdGggdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mIHRoZSBDYWRlbmNlIHNvZnR3YXJlIGxpY2Vuc2UgYWdyZWVtZW50IHVuZGVyCi0jIHdoaWNoIHRoaXMgbWF0ZXJpYWwgd2FzIHByb3ZpZGVkLCB0aGlzIG1hdGVyaWFsIG1heSBiZSBjb3BpZWQgYW5kIGludGVybmFsbHkKLSMgZGlzdHJpYnV0ZWQgc29sZWx5IGZvciBpbnRlcm5hbCBwdXJwb3NlcyBmb3IgdXNlIHdpdGggQ2FkZW5jZSB0b29scy4KLSMKLSMgVGhpcyB3b3JrIGlzIENhZGVuY2UgaW50ZWxsZWN0dWFsIHByb3BlcnR5IGFuZCBtYXkgdW5kZXIgbm8gY2lyY3Vtc3RhbmNlcyBiZQotIyBnaXZlbiB0byB0aGlyZCBwYXJ0aWVzLCBuZWl0aGVyIGluIG9yaWdpbmFsIG5vciBpbiBtb2RpZmllZCB2ZXJzaW9ucywgd2l0aG91dAotIyBleHBsaWNpdCB3cml0dGVuIHBlcm1pc3Npb24gZnJvbSBDYWRlbmNlLiBUaGUgaW5mb3JtYXRpb24gY29udGFpbmVkIGhlcmVpbiBpcwotIyB0aGUgcHJvcHJpZXRhcnkgYW5kIGNvbmZpZGVudGlhbCBpbmZvcm1hdGlvbiBvZiBDYWRlbmNlIG9yIGl0cyBsaWNlbnNvcnMsIGFuZAotIyBpcyBzdXBwbGllZCBzdWJqZWN0IHRvLCBhbmQgbWF5IGJlIHVzZWQgb25seSBieSBDYWRlbmNlJ3MgY3VycmVudCBjdXN0b21lcnMKLSMgaW4gYWNjb3JkYW5jZSB3aXRoLCBhIHByZXZpb3VzbHkgZXhlY3V0ZWQgbGljZW5zZSBhZ3JlZW1lbnQgYmV0d2VlbiBDYWRlbmNlCi0jIGFuZCBpdHMgY3VzdG9tZXIuCi0jCi0jLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0jIFRISVMgTUFURVJJQUwgSVMgUFJPVklERUQgQlkgQ0FERU5DRSAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVECi0jIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GCi0jIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuCi0jIElOIE5PIEVWRU5UIFNIQUxMIENBREVOQ0UgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTAotIyBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLAotIyBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUICAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IKLSMgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyAgTUFURVJJQUwsIEVWRU4gSUYKLSMgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0KLWdsb2JhbCB2YXJzCi1nbG9iYWwgcmRhX0lucHV0Ci0jaWYgeyR2YXJzKGZsb3cpID09ICJkZWZhdWx0In0gewotIyAgIHNldCB2YXJzKGNhcHRibF9maWxlKSAkdmFycyh3Y19jYXBfdGFibGUpCi0jfQotc2V0IHJkYV9JbnB1dChhc3NpZ25fYnVmZmVyKSAkdmFycyhhc3NpZ25fYnVmZmVyKQotc2V0IHJkYV9JbnB1dChkb3VibGVfYmFjaykgJHZhcnMoZG91YmxlX2JhY2spCi1zZXQgcmRhX0lucHV0KGZsaXBfZmlyc3QpICR2YXJzKGZsaXBfZmlyc3Rfcm93KQotc2V0IHJkYV9JbnB1dChpbXBvcnRfbW9kZSkgJHZhcnMoaW1wb3J0X21vZGUpCi1zZXQgcmRhX0lucHV0KHVpX2FyZWFpb2xpYikgJHZhcnMoYXJlYV9pb19saWIpCi1zZXQgcmRhX0lucHV0KHVpX2FzcGVjdF9yYXRpbykgJHZhcnMoYXNwZWN0X3JhdGlvKQotc2V0IHJkYV9JbnB1dCh1aV9ibGtsaWIpICR2YXJzKGJsa19saWIpCi1zZXQgcmRhX0lucHV0KHVpX2J1Zl9mb290cHJpbnQpICR2YXJzKGJ1Zl9mb290cHJpbnQpCi1zZXQgcmRhX0lucHV0KHVpX2NhcF91bml0KSAkdmFycyhjYXBfdW5pdCkKLXNldCByZGFfSW5wdXQodWlfY2FwdGJsX2ZpbGUpICR2YXJzKGNhcHRibF9maWxlKQotc2V0IHJkYV9JbnB1dCh1aV9jZGJfZmlsZSkgJHZhcnMoY2RiX2ZpbGUpCi1zZXQgcmRhX0lucHV0KHVpX2NkYl9maWxlLG1heCkgJHZhcnMoY2RiX2ZpbGUsbWF4KQotc2V0IHJkYV9JbnB1dCh1aV9jZGJfZmlsZSxtaW4pICR2YXJzKGNkYl9maWxlLG1pbikKLXNldCByZGFfSW5wdXQodWlfY2VsbGxpYikgJHZhcnMoY2VsbGxpYikKLXNldCByZGFfSW5wdXQodWlfY29yZV9jbnRsKSAkdmFycyhjb3JlX2NvbnRyb2wpCi1zZXQgcmRhX0lucHV0KHVpX2NvcmVfaGVpZ2h0KSAkdmFycyhjb3JlX2hlaWdodCkKLXNldCByZGFfSW5wdXQodWlfY29yZV90b19ib3R0b20pICR2YXJzKGNvcmVfdG9fYm90dG9tKQotc2V0IHJkYV9JbnB1dCh1aV9jb3JlX3RvX2xlZnQpICR2YXJzKGNvcmVfdG9fbGVmdCkKLXNldCByZGFfSW5wdXQodWlfY29yZV90b19yaWdodCkgJHZhcnMoY29yZV90b19yaWdodCkKLXNldCByZGFfSW5wdXQodWlfY29yZV90b190b3ApICR2YXJzKGNvcmVfdG9fdG9wKQotc2V0IHJkYV9JbnB1dCh1aV9jb3JlX3V0aWwpICR2YXJzKGNvcmVfdXRpbCkKLXNldCByZGFfSW5wdXQodWlfY29yZV93aWR0aCkgJHZhcnMoY29yZV93aWR0aCkKLXNldCByZGFfSW5wdXQodWlfY3RzX2NlbGxfZm9vdHByaW50KSAkdmFycyhjdHNfY2VsbF9mb290cHJpbnQpCi1zZXQgcmRhX0lucHV0KHVpX2N0c19jZWxsX2xpc3QpICR2YXJzKGN0c19jZWxsX2xpc3QpCi1pZiB7W2luZm8gZXhpc3RzIHZhcnMoY291cGxpbmdfY190aHJlc2gpXX0gewotICAgc2V0IHJkYV9JbnB1dCh1aV9jcGxfY190aHJlc2gpICR2YXJzKGNvdXBsaW5nX2NfdGhyZXNoKQotfQotaWYge1tpbmZvIGV4aXN0cyB2YXJzKGRlZl9jYXBfZmFjdG9yKV19IHsKLSAgIHNldCByZGFfSW5wdXQodWlfcHJlUm91dGVfY2FwKSAkdmFycyhkZWZfY2FwX2ZhY3RvcikKLX0KLWlmIHtbaW5mbyBleGlzdHMgdmFycyhkZXRfY2FwX2ZhY3RvcildfSB7Ci0gICBzZXQgcmRhX0lucHV0KHVpX3Bvc3RSb3V0ZV9jYXApICR2YXJzKGRldF9jYXBfZmFjdG9yKQotfQotaWYge1tpbmZvIGV4aXN0cyB2YXJzKGRlZl9yZXNfZmFjdG9yKV19IHsKLSAgIHNldCByZGFfSW5wdXQodWlfcHJlUm91dGVfcmVzKSAkdmFycyhkZWZfcmVzX2ZhY3RvcikKLX0KLWlmIHtbaW5mbyBleGlzdHMgdmFycyhkZXRfcmVzX2ZhY3RvcildfSB7Ci0gICBzZXQgcmRhX0lucHV0KHVpX3Bvc3RSb3V0ZV9yZXMpICR2YXJzKGRldF9yZXNfZmFjdG9yKQotfQotaWYge1tpbmZvIGV4aXN0cyB2YXJzKGRldF94Y2FwX2ZhY3RvcildfSB7Ci0gICBzZXQgcmRhX0lucHV0KHVpX3hjYXBfc2NhbGUpICR2YXJzKGRldF94Y2FwX2ZhY3RvcikKLX0KLXNldCByZGFfSW5wdXQodWlfZGVsYXlfZm9vdHByaW50KSAkdmFycyhkZWxfZm9vdHByaW50KQotc2V0IHJkYV9JbnB1dCh1aV9kZWxheV9saW1pdCkgJHZhcnMoZGVsYXlfbGltaXQpCi1zZXQgcmRhX0lucHV0KHVpX2RwYXRoKSAkdmFycyhkYXRhX3BhdGgpCi1zZXQgcmRhX0lucHV0KHVpX2VjaG9fZmlsZSkgJHZhcnMoZWNob19maWxlKQotc2V0IHJkYV9JbnB1dCh1aV9lY2hvX2ZpbGUsbWF4KSAkdmFycyhlY2hvX2ZpbGUsbWF4KQotc2V0IHJkYV9JbnB1dCh1aV9lY2hvX2ZpbGUsbWluKSAkdmFycyhlY2hvX2ZpbGUsbWluKQotc2V0IHJkYV9JbnB1dCh1aV9leGNfbmV0KSAkdmFycyhleGNsdWRlX25ldHMpCi1zZXQgcmRhX0lucHV0KHVpX2dkc19maWxlKSAiIgotc2V0IHJkYV9JbnB1dCh1aV9nZW5fZm9vdHByaW50KSAkdmFycyhnZW5fZm9vdHByaW50KQotI3NldCB2YXJzKGlsbV9kaXIpICIiCi0jaWYge1tpbmZvIGV4aXN0cyB2YXJzKGlsbV9saXN0KV19IHsKLSMgICBmb3JlYWNoIGNlbGwgJHZhcnMoaWxtX2xpc3QpIHsKLSMgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJGNlbGwsaWxtX2RpcildfSB7Ci0jICAgICAgICAgbGFwcGVuZCB2YXJzKGlsbV9kaXIpICRjZWxsCi0jICAgICAgICAgbGFwcGVuZCB2YXJzKGlsbV9kaXIpICR2YXJzKCRjZWxsLGlsbV9kaXIpCi0jICAgICAgfSBlbHNlIHsKLSMgICAgICAgICBQdXRzICI8RkY+IFdBUk5JTkc6IElMTSBESVJFQ1RPUlkgTUlTU0lORyBGT1IgJGNlbGwgLi4uIFNLSVBQSU5HIgotIyAgICAgIH0KLSMgICB9Ci0jfQotI3NldCByZGFfSW5wdXQodWlfaWxtZGlyKSAkdmFycyhpbG1fZGlyKQotI3NldCByZGFfSW5wdXQodWlfaWxtbGlzdCkgJHZhcnMoaWxtX2xpc3QpCi0jc2V0IHJkYV9JbnB1dCh1aV9pbG1zcGVmKSAkdmFycyhpbG1fc3BlZikKLXNldCByZGFfSW5wdXQodWlfaWxtZGlyKSB7fQotc2V0IHJkYV9JbnB1dCh1aV9pbG1saXN0KSB7fQotc2V0IHJkYV9JbnB1dCh1aV9pbG1zcGVmKSB7fQotc2V0IHJkYV9JbnB1dCh1aV9pbl90cmFuX2RlbGF5KSAkdmFycyhkZWZhdWx0X3NsZXcpCi1zZXQgcmRhX0lucHV0KHVpX2ludl9mb290cHJpbnQpICR2YXJzKGludl9mb290cHJpbnQpCi1zZXQgcmRhX0lucHV0KHVpX2lvT3JpKSAkdmFycyhpb19vcmllbnRhdGlvbikKLXNldCByZGFfSW5wdXQodWlfaW9fZmlsZSkgJHZhcnMoaW9fZmlsZSkKLXNldCByZGFfSW5wdXQodWlfaW9saWIpICR2YXJzKGlvX2xpYikKLXNldCByZGFfSW5wdXQodWlfaXNIb3JUcmFja0hhbGZQaXRjaCkgJHZhcnMoaG9yX3RyYWNrX2hhbGZfcGl0Y2gpCi1zZXQgcmRhX0lucHV0KHVpX2lzT3JpZ0NlbnRlcikgJHZhcnMoY2VudGVyX29yaWdpbikKLXNldCByZGFfSW5wdXQodWlfaXNWZXJUcmFja0hhbGZQaXRjaCkgJHZhcnModmVyX3RyYWNrX2hhbGZfcGl0Y2gpCi1zZXQgcmRhX0lucHV0KHVpX2lzVmVydGljYWxSb3cpICR2YXJzKHZlcnRpY2FsX3Jvd3MpCi1zZXQgcmRhX0lucHV0KHVpX2tib3hsaWIpICR2YXJzKGtib3hfbGliKQotc2V0IHJkYV9JbnB1dCh1aV9sYXRlbmN5X2ZpbGUpICR2YXJzKGxhdGVuY3lfZmlsZSkKLWlmIHtbaW5mbyBleGlzdHMgdmFycyhsZWZfZmlsZXMpXX0gewotICAgc2V0IHJkYV9JbnB1dCh1aV9sZWZmaWxlKSAkdmFycyhsZWZfZmlsZXMpCi19Ci1zZXQgcmRhX0lucHV0KHVpX2xvY3ZsaWIpICR2YXJzKGxvY3ZfbGliKQotc2V0IHJkYV9JbnB1dCh1aV9tYXhfaW9faGVpZ2h0KSAkdmFycyhtYXhfaW9faGVpZ2h0KQotc2V0IHJkYV9JbnB1dCh1aV9uZXRfZGVsYXkpICR2YXJzKGRlZmF1bHRfbmV0X2RlbGF5KQotc2V0IHJkYV9JbnB1dCh1aV9uZXRfbG9hZCkgJHZhcnMoZGVmYXVsdF9uZXRfbG9hZCkKLWlmIHtbaW5mbyBleGlzdHMgdmFycyhuZXRsaXN0KV19IHsKLSAgIHNldCByZGFfSW5wdXQodWlfbmV0bGlzdCkgJHZhcnMobmV0bGlzdCkKLX0KLXNldCByZGFfSW5wdXQodWlfbmV0bGlzdHR5cGUpICR2YXJzKG5ldGxpc3RfdHlwZSkKLXNldCByZGFfSW5wdXQodWlfb2FfYWJzdHJhY3RuYW1lKSAkdmFycyhvYV9hYnN0cmFjdF9uYW1lKQotc2V0IHJkYV9JbnB1dCh1aV9vYV9sYXlvdXRuYW1lKSAkdmFycyhvYV9sYXlvdXRfbmFtZSkKLXNldCByZGFfSW5wdXQodWlfb2Ffb2EybGVmdmVyc2lvbikgJHZhcnMob2EybGVmdmVyc2lvbikKLXNldCByZGFfSW5wdXQodWlfb2FfcmVmbGliKSAkdmFycyhvYV9yZWZfbGliKQotc2V0IHJkYV9JbnB1dCh1aV9vYV9kZXNpZ25MaWIpICR2YXJzKG9hX2Rlc2lnbl9saWIpCi1zZXQgcmRhX0lucHV0KHVpX29hX2Rlc2lnbkNlbGwpICR2YXJzKG9hX2Rlc2lnbl9jZWxsKQotc2V0IHJkYV9JbnB1dCh1aV9vYV9kZXNpZ25WaWV3KSAkdmFycyhvYV9kZXNpZ25fdmlldykKLQotI2lmIHtbaW5mbyBleGlzdHMgdmFycyhwZ19jb25uZWN0aW9ucyldfSB7Ci0jICAgc2V0IHJkYV9JbnB1dCh1aV9wZ19jb25uZWN0aW9ucykgJHZhcnMocGdfY29ubmVjdGlvbnMpCi0jICAgZm9yZWFjaCBjb25uZWN0aW9uICR2YXJzKHBnX2Nvbm5lY3Rpb25zKSB7Ci0jICAgICAgc2V0IHJkYV9JbnB1dCgkY29ubmVjdGlvbikgJHZhcnMoJGNvbm5lY3Rpb24pCi0jICAgfQotI30KLXNldCByZGFfSW5wdXQodWlfcHdybmV0KSAkdmFycyhwb3dlcl9uZXRzKQotc2V0IHJkYV9JbnB1dCh1aV9nbmRuZXQpICR2YXJzKGdyb3VuZF9uZXRzKQotc2V0IHJkYV9JbnB1dCh1aV9xeGNvbmZfZmlsZSkgJHZhcnMocXhjb25mX2ZpbGUpCi1zZXQgcmRhX0lucHV0KHVpX3F4bGF5ZXJtYXBfZmlsZSkgJHZhcnMocXhsYXllcm1hcF9maWxlKQotc2V0IHJkYV9JbnB1dCh1aV9xeGxpYl9maWxlKSAkdmFycyhxeGxpYl9maWxlKQotc2V0IHJkYV9JbnB1dCh1aV9xeHRlY2hfZmlsZSkgJHZhcnMocXh0ZWNoX2ZpbGUpCi1pZiB7W2luZm8gZXhpc3RzIHZhcnMocmVsYXRpdmVfY190aHJlc2gpXX0gewotICAgc2V0IHJkYV9JbnB1dCh1aV9yZWxfY190aHJlc2gpICR2YXJzKHJlbGF0aXZlX2NfdGhyZXNoKQotfQotc2V0IHJkYV9JbnB1dCh1aV9yb3dfaGVpZ2h0KSAkdmFycyhyb3dfaGVpZ2h0KQotc2V0IHJkYV9JbnB1dCh1aV9ydGxsaXN0KSAkdmFycyhydGxfbGlzdCkKLXNldCByZGFfSW5wdXQodWlfc2NoZWR1bGluZ19maWxlKSAkdmFycyhzY2hlZHVsaW5nX2ZpbGUpCi1zZXQgcmRhX0lucHV0KHVpX3NldHRvcCkgJHZhcnMoc2V0X3RvcF9jZWxsKQotc2V0IHJkYV9JbnB1dCh1aV9zaHJfc2NhbGUpICR2YXJzKHNocl9zY2FsZSkKLXNldCByZGFfSW5wdXQodWlfc2lnc3Rvcm1saWIpICR2YXJzKHNpZ25hbHN0b3JtX2xpYikKLXNldCByZGFfSW5wdXQodWlfc21vZERhdGEpICR2YXJzKHNtb2RfZGF0YSkKLXNldCByZGFfSW5wdXQodWlfc21vZERlZikgJHZhcnMoc21vZF9kZWYpCi1zZXQgcmRhX0lucHV0KHVpX3RlY2hfZmlsZSkgJHZhcnModGVjaF9maWxlKQotc2V0IHJkYV9JbnB1dCh1aV90aW1lX3VuaXQpICR2YXJzKHRpbWVfdW5pdCkKLXNldCByZGFfSW5wdXQodWlfdGltZWxpYikgJHZhcnModGltZWxpYikKLXNldCByZGFfSW5wdXQodWlfdGltZWxpYixtYXgpICR2YXJzKHRpbWVsaWIsbWF4KQotc2V0IHJkYV9JbnB1dCh1aV90aW1lbGliLG1pbikgJHZhcnModGltZWxpYixtaW4pCi1pZiB7W2luZm8gZXhpc3RzIHZhcnModGltaW5nY29uX2ZpbGUpXX0gewotICAgc2V0IHJkYV9JbnB1dCh1aV90aW1pbmdjb25fZmlsZSkgJHZhcnModGltaW5nY29uX2ZpbGUpCi19Ci1pZiB7W2luZm8gZXhpc3RzIHZhcnModGltaW5nY29uX2ZpbGUsZnVsbCldfSB7Ci0gICBzZXQgcmRhX0lucHV0KHVpX3RpbWluZ2Nvbl9maWxlLGZ1bGwpICR2YXJzKHRpbWluZ2Nvbl9maWxlLGZ1bGwpCi19Ci1zZXQgcmRhX0lucHV0KHVpX3RvcGNlbGwpICR2YXJzKGRlc2lnbikKLWlmIHtbaW5mbyBleGlzdHMgdmFycyh0b3RhbF9jX3RocmVzaCldfSB7Ci0gICBzZXQgcmRhX0lucHV0KHVpX3RvdF9jX3RocmVzaCkgJHZhcnModG90YWxfY190aHJlc2gpCi19Ci1zZXQgcmRhX0lucHV0KHVpX3ZpZXdfZGVmaW5pdGlvbl9maWxlKSAkdmFycyh2aWV3X2RlZmluaXRpb25fZmlsZSkKLXNldCByZGFfSW5wdXQodWlfeHR3Zl9maWxlKSAkdmFycyh4dGFsa190d2ZfZmlsZSkKZGlmZiAtLWdpdCBhL2Zsb3cvcG5yL0VYQU1QTEVTL0lOTk9WVVMvREVTSUdOL1NDUklQVFMvRVRDL0lOTk9WVVMvaGVhZGVyLnRjbCBiL2Zsb3cvcG5yL0VYQU1QTEVTL0lOTk9WVVMvREVTSUdOL1NDUklQVFMvRVRDL0lOTk9WVVMvaGVhZGVyLnRjbApkZWxldGVkIGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggNTZlODk2Yi4uMDAwMDAwMAotLS0gYS9mbG93L3Buci9FWEFNUExFUy9JTk5PVlVTL0RFU0lHTi9TQ1JJUFRTL0VUQy9JTk5PVlVTL2hlYWRlci50Y2wKKysrIC9kZXYvbnVsbApAQCAtMSw0MCArMCwwIEBACi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0jICAgICAgICAgICAgICAgICAgICAgICBDQURFTkNFIENPUFlSSUdIVCBOT1RJQ0UKLSMgICAgICAgICCpIDIwMDgtMjAxMyBDYWRlbmNlIERlc2lnbiBTeXN0ZW1zLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0jCi0jIFRoaXMgRm91bmRhdGlvbiBGbG93IGlzIHByb3ZpZGVkIGFzIGFuIGV4YW1wbGUgb2YgaG93IHRvIHBlcmZvcm0gc3BlY2lhbGl6ZWQKLSMgdGFza3MuCi0jCi0jIFRoaXMgd29yayBtYXkgbm90IGJlIGNvcGllZCwgcmUtcHVibGlzaGVkLCB1cGxvYWRlZCwgb3IgZGlzdHJpYnV0ZWQgaW4gYW55IHdheSwKLSMgaW4gYW55IG1lZGl1bSwgd2hldGhlciBpbiB3aG9sZSBvciBpbiBwYXJ0LCB3aXRob3V0IHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbgotIyBmcm9tIENhZGVuY2UuIE5vdHdpdGhzdGFuZGluZyBhbnkgcmVzdHJpY3Rpb25zIGhlcmVpbiwgc3ViamVjdCB0byBjb21wbGlhbmNlCi0jIHdpdGggdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mIHRoZSBDYWRlbmNlIHNvZnR3YXJlIGxpY2Vuc2UgYWdyZWVtZW50IHVuZGVyCi0jIHdoaWNoIHRoaXMgbWF0ZXJpYWwgd2FzIHByb3ZpZGVkLCB0aGlzIG1hdGVyaWFsIG1heSBiZSBjb3BpZWQgYW5kIGludGVybmFsbHkKLSMgZGlzdHJpYnV0ZWQgc29sZWx5IGZvciBpbnRlcm5hbCBwdXJwb3NlcyBmb3IgdXNlIHdpdGggQ2FkZW5jZSB0b29scy4KLSMKLSMgVGhpcyB3b3JrIGlzIENhZGVuY2UgaW50ZWxsZWN0dWFsIHByb3BlcnR5IGFuZCBtYXkgdW5kZXIgbm8gY2lyY3Vtc3RhbmNlcyBiZQotIyBnaXZlbiB0byB0aGlyZCBwYXJ0aWVzLCBuZWl0aGVyIGluIG9yaWdpbmFsIG5vciBpbiBtb2RpZmllZCB2ZXJzaW9ucywgd2l0aG91dAotIyBleHBsaWNpdCB3cml0dGVuIHBlcm1pc3Npb24gZnJvbSBDYWRlbmNlLiBUaGUgaW5mb3JtYXRpb24gY29udGFpbmVkIGhlcmVpbiBpcwotIyB0aGUgcHJvcHJpZXRhcnkgYW5kIGNvbmZpZGVudGlhbCBpbmZvcm1hdGlvbiBvZiBDYWRlbmNlIG9yIGl0cyBsaWNlbnNvcnMsIGFuZAotIyBpcyBzdXBwbGllZCBzdWJqZWN0IHRvLCBhbmQgbWF5IGJlIHVzZWQgb25seSBieSBDYWRlbmNlJ3MgY3VycmVudCBjdXN0b21lcnMKLSMgaW4gYWNjb3JkYW5jZSB3aXRoLCBhIHByZXZpb3VzbHkgZXhlY3V0ZWQgbGljZW5zZSBhZ3JlZW1lbnQgYmV0d2VlbiBDYWRlbmNlCi0jIGFuZCBpdHMgY3VzdG9tZXIuCi0jCi0jLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0jIFRISVMgTUFURVJJQUwgSVMgUFJPVklERUQgQlkgQ0FERU5DRSAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVECi0jIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GCi0jIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuCi0jIElOIE5PIEVWRU5UIFNIQUxMIENBREVOQ0UgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTAotIyBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLAotIyBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUICAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IKLSMgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyAgTUFURVJJQUwsIEVWRU4gSUYKLSMgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0KLSMhL3Vzci9iaW4vdGNsc2gKLXNldCB2YXJzKGpvdXJuYWwpIHRydWUKLXNldCB2YXJzKGRic19kaXIpIEpOTAotc2V0IGVudihWUEFUSCkgam1ha2UKLXByb2MgUHV0cyBhcmdzIHt9IAotcHJvYyBzbGVlcCBhcmdzIHsgfQpkaWZmIC0tZ2l0IGEvZmxvdy9wbnIvRVhBTVBMRVMvSU5OT1ZVUy9ERVNJR04vU0NSSVBUUy9FVEMvSU5OT1ZVUy9tYXBfYXR0ci50Y2wgYi9mbG93L3Buci9FWEFNUExFUy9JTk5PVlVTL0RFU0lHTi9TQ1JJUFRTL0VUQy9JTk5PVlVTL21hcF9hdHRyLnRjbApkZWxldGVkIGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMzM2YmQ0My4uMDAwMDAwMAotLS0gYS9mbG93L3Buci9FWEFNUExFUy9JTk5PVlVTL0RFU0lHTi9TQ1JJUFRTL0VUQy9JTk5PVlVTL21hcF9hdHRyLnRjbAorKysgL2Rldi9udWxsCkBAIC0xLDI0MSArMCwwIEBACi0jIFBvdGVudGlhbCBmbG93IGNvbnRyb2wKLSMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotCi0jc2V0IGhlbHAoc3RlcHMpIGZsb3dfc3RlcHMKLQotI3NldCBhdHRyKGVuYWJsZV9hb2N2KSAidGltaW5nX2VuYWJsZV9hb2N2X2FuYWx5c2lzIgotI3NldCBhdHRyKGVuYWJsZV9jcHByKSAidGltaW5nX2FuYWx5c2lzX2NwcHIiCi0jc2V0IGF0dHIoZW5hYmxlX29jdikgInRpbWluZ19hbmFseXNpc190eXBlIgotI3NldCBhdHRyKGVuYWJsZV9zaV9hd2FyZSkgInRpbWluZ19hbmFseXNpc19zaV9hd2FyZSIKLQotI3NldCBhdHRyKGVuYWJsZV9wYWMpIGJvb2xlYW4gKGRlbGV0ZSkKLSNzZXQgYXR0cihlbmFibGVfZGxtKSBib29sZWFuIChkZWxldGUpCi0jc2V0IGF0dHIoZW5hYmxlX2ZsZXhpbG0pIGJvb2xlYW4KLSNzZXQgYXR0cihhYnV0dGVkX2Rlc2lnbikgPwotI3NldCBhdHRyKGluc2VydF9mZWVkdGhyb3VnaCkgPwotI3NldCBhdHRyKHBzX3BtKSA/Ci0jc2V0IGF0dHIodXNlX3BzX3BtKSA/Ci0jc2V0IGF0dHIoZW5hYmxlX2ZsZXhpbG0pID8KLSNzZXQgYXR0cih1c2VfZmxleG1vZGVscykgPwotI3NldCBhdHRyKGZsZXhtb2RlbF9hc19wdG4pID8KLSNzZXQgYXR0cihmbGV4bW9kZWxfYXJ0X2Jhc2VkKSA/Ci0KLSNzZXQgYXR0cihmaXhfaG9sZCkgYm9vbGVhbgotI3NldCBhdHRyKGZpeF9saXRobykgYm9vbGVhbgotI3NldCBhdHRyKGhpZ2hfdGltaW5nX2VmZm9ydCkgYm9vbGVhbgotI3NldCBhdHRyKHJ1bl9jbHApIGJvb2xlYW4KLSNzZXQgYXR0cihydW5fbGVjKSBib29sZWFuCi0jc2V0IGF0dHIoc2tpcF9jdHMpIGJvb2xlYW4KLSNzZXQgYXR0cihza2lwX3NpKSBib29sZWFuCi0jc2V0IGF0dHIoc2tpcF9zaWdub2ZmX2NoZWNrcykgYm9vbGVhbgotI3NldCBoZWxwKGhpZXJfZmxvd190eXBlKSAiMXBhc3MgMnBhc3MiCi0jc2V0IGhlbHAoYmxhY2tfYm94KSAiVFJVRSBmYWxzZSIKLSNzZXQgYXR0cihwYXJ0aXRpb25fZGlyKSAiUEFSVElUSU9OIGRpcmVjdG9yeSIKLQotIyBMaWJyYXJ5IFNldHVwIChkcm9wIG9yIG1vdmUpCi0jIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSNzZXQgYXR0cihsaWJyYXJ5X3NldHMpICJMaXN0IG9mIGxpYnJhcnkgc2V0cyIKLSNzZXQgYXR0cih0aW1pbmcpICJMaXN0IG9mIGxpYnJhcnkgZmlsZXMiICAKLSNzZXQgYXR0cihhb2N2KSAiQU9DViB0YWJsZSBmaWxlIgotI3NldCBhdHRyKHNpKSAgIkxpc3Qgb2YgQ0RCIGZpbGVzIgotI3NldCBhdHRyKHJjX2Nvcm5lcnMpICJMaXN0IG9mIFJDIGNvcm5lcnMiCi0jc2V0IGF0dHIoUCkgIlByb2Nlc3MgbXVsdGlwbGllciIKLSNzZXQgYXR0cihUKSAiVGVtcGVyYXR1cmUiCi0jc2V0IGF0dHIoVikgIlZvbHRhZ2UiIAotI3NldCBhdHRyKGNhcF90YWJsZSkgIkNhcHRhYmxlIGZpbGUiCi0jc2V0IGF0dHIocG9zdF9yb3V0ZV9jYXBfZmFjdG9yKSAiZmxvYXQgKHRyaXBsZXQpIgotI3NldCBhdHRyKHBvc3Rfcm91dGVfY2xrX2NhcF9mYWN0b3IpICJmbG9hdCAodHJpcGxldCkiCi0jc2V0IGF0dHIocG9zdF9yb3V0ZV9jbGtfcmVzX2ZhY3RvcikgImZsb2F0ICh0cmlwbGV0KSIKLSNzZXQgYXR0cihwb3N0X3JvdXRlX3Jlc19mYWN0b3IpICJmbG9hdCIKLSNzZXQgYXR0cihwcmVfcm91dGVfY2FwX2ZhY3RvcikgImZsb2F0IgotI3NldCBhdHRyKHByZV9yb3V0ZV9jbGtfY2FwX2ZhY3RvcikgImZsb2F0IgotI3NldCBhdHRyKHByZV9yb3V0ZV9jbGtfcmVzX2ZhY3RvcikgImZsb2F0IgotI3NldCBhdHRyKHByZV9yb3V0ZV9yZXNfZmFjdG9yKSAiZmxvYXQiCi0jc2V0IGF0dHIocXhfdGVjaF9maWxlKSAiUVJDIHRlY2hmaWxlIgotI3NldCBhdHRyKG9wY29uZHMpICJMaXN0IG9mIG9wY29uZHMiCi0jc2V0IGF0dHIoUCkgIlByb2Nlc3MgbXVsdGlwbGllciIgCi0jc2V0IGF0dHIoVCkgIlRlbXBlcmF0dXJlIgotI3NldCBhdHRyKFYpICJWb2x0YWdlIgotI3NldCBhdHRyKGxpYnJhcnlfZmlsZSkgIkxpYnJhcnkgZmlsZSIKLSNzZXQgYXR0cihkZWxheV9jb3JuZXJzKSAiTGlzdCBvZiBkZWxheSBjb3JuZXJzIgotI3NldCBhdHRyKGxpYnJhcnlfc2V0KSAiTGlicmFyeSBzZXQiCi0jc2V0IGF0dHIocmNfY29ybmVyKSAiUkMgY29ybmVyIgotI3NldCBhdHRyKHBvd2VyX2RvbWFpbnMpICJMaXN0IG9mIHBvd2VyIGRvbWFpbnMiCi0jc2V0IGF0dHIoY2xvY2tfY2VsbF9lYXJseSkgIkZsb2F0IgotI3NldCBhdHRyKGNsb2NrX2NlbGxfbGF0ZSkgIkZsb2F0IgotI3NldCBhdHRyKGNsb2NrX25ldF9lYXJseSkgIkZsb2F0IgotI3NldCBhdHRyKGNsb2NrX25ldF9sYXRlKSAiRmxvYXQiCi0jc2V0IGF0dHIoZGF0YV9jZWxsX2Vhcmx5KSAiRmxvYXQiCi0jc2V0IGF0dHIoZGF0YV9jZWxsX2xhdGUpICJGbG9hdCIKLSNzZXQgYXR0cihkYXRhX25ldF9lYXJseSkgIkZsb2F0IgotI3NldCBhdHRyKGRhdGFfbmV0X2xhdGUpICJGbG9hdCIKLSNzZXQgYXR0cihjb25zdHJhaW50X21vZGVzKSAiTGlzdCBvZiBjb25zdHJhaW50IG1vZGVzIgotI3NldCBhdHRyKHByZV9jdHNfc2RjKSAiTGlzdCBvZiBTREMgZmlsZXMiCi0jc2V0IGF0dHIocG9zdF9jdHNfc2RjKSAiTGlzdCBvZiBTREMgZmlsZXMiIAotI3NldCBhdHRyKGluY3JfY3RzX3NkYykgIkxpc3Qgb2YgU0RDIGZpbGVzIChpbmNyZW1lbnRhbCkiIAotI3NldCBhdHRyKGlsbV9ub25fc2RjX2ZpbGUpICJMaXN0IG9mIElMTSBjb25zdHJhaW50cyIKLSNzZXQgYXR0cihzZXR1cF9hbmFseXNpc192aWV3cykgIkxpc3Qgb2YgYW5hbHlzaXMgdmlld3MiIAotI3NldCBhdHRyKGhvbGRfYW5hbHlzaXNfdmlld3MpICJMaXN0IG9mIGFuYWx5c2lzIHZpZXdzIiAKLSNzZXQgYXR0cihjb25zdHJhaW50X21vZGUpICJDb25zdHJhaW50IG1vZGUiCi0jc2V0IGF0dHIoZGVsYXlfY29ybmVyKSAiRGVsYXkgY29ybmVyIgotIwotI3NldCBhdHRyKGFjdGl2ZV9zZXR1cF92aWV3cykgIkxpc3Qgb2YgYWN0aXZlIHNldHVwIHZpZXdzIgotI3NldCBhdHRyKGFjdGl2ZV9ob2xkX3ZpZXdzKSAiTGlzdCBvZiBhY3RpdmUgaG9sZCB2aWV3cyIKLSNzZXQgYXR0cihhY3RpdmVfc2V0dXBfdmlld3MpICJMaXN0IG9mIGFjdGl2ZSBzZXR1cCB2aWV3cyBwZXIgc3RlcCIKLSNzZXQgYXR0cihhY3RpdmVfaG9sZF92aWV3cykgIkxpc3Qgb2YgYWN0aXZlIGhvbGQgdmlld3MgcGVyIHN0ZXAiCi0jCi0jc2V0IGF0dHIoZGVmYXVsdF9zZXR1cF92aWV3KSAiRGVmYXVsdCBzZXR1cCB2aWV3IgotI3NldCBhdHRyKGRlZmF1bHRfaG9sZF92aWV3KSAiRGVmYXVsdCBob2xkIHZpZXciCi0KLSMgRGVzaWduIEluaXRpYWxpemF0aW9uCi1zZXQgaGVscChuZXRsaXN0KSAiaW5pdF92ZXJpbG9nIgotI3NldCBoZWxwKG5ldGxpc3RfdHlwZSkgIlZFUklMT0cgdmhkbCIKLXNldCBoZWxwKGRlc2lnbikgImluaXRfdG9wX2NlbGwiCi1zZXQgYXR0cihkZWZfZmlsZXMpICJmbG93X2RlZl9maWxlcyIKLXNldCBhdHRyKG9hX2Rlc2lnbl9saWIpIGluaXRfb2FfZGVzaWduX2xpYgotc2V0IGF0dHIob2FfZGVzaWduX2NlbGwpIGluaXRfb2FfZGVzaWduX2NlbGwKLXNldCBhdHRyKG9hX2Rlc2lnbl92aWV3KSAgaW5pdF9vYV9kZXNpZ25fdmlldwotI3NldCBhdHRyKGlsbV9saXN0KSBmbG93X2lsbV9saXN0Ci0jc2V0IGF0dHIoaWxtX2RpcikgZmxvd19pbG1fZGlyX2xpc3QKLSNzZXQgYXR0cihsZWZfZmlsZSkgZmxvd19pbG1fbGVmX2ZpbGVzCi0jc2V0IGF0dHIoc2V0dXBfbGliKSBmbG93X2lsbV9zZXR1cF9saWIKLXNldCBhdHRyKG1heF9yb3V0ZV9sYXllcikgcm91dGVfdHJpYWxfbWF4X3JvdXRlX2xheWVyCi1zZXQgYXR0cihnZW5lcmF0ZV90cmFja3MpIGFkZF90cmFja3MKLSNzZXQgYXR0cihob25vcl9waXRjaCkgPwotCi0jIFBsYWNlCi1zZXQgYXR0cihwbGFjZV9pb19waW5zKSBwbGFjZV9nbG9iYWxfcGxhY2VfaW9fcGlucwotc2V0IGF0dHIoY2xvY2tfZ2F0ZV9hd2FyZSkgcGxhY2VfZ2xvYmFsX2Nsb2NrX2dhdGVfYXdhcmUKLSNzZXQgYXR0cihjbG9ja19nYXRlX2Nsb25lKSA/IAotc2V0IGF0dHIoY29uZ2VzdGlvbl9lZmZvcnQpIHBsYWNlX2dsb2JhbF9jb25nX2VmZm9ydAotCi0KLSMgUG93ZXIKLXNldCBhdHRyKGFjdGl2aXR5X2ZpbGUpICJGaWxlIG5hbWUiCi1zZXQgYXR0cihhY3Rpdml0eV9maWxlX2Zvcm1hdCkgIlRDRiBWQ0QgU0FJRiIKLXNldCBhdHRyKHBvd2VyX2FuYWx5c2lzX3ZpZXcpICJBbmFseXNpcyB2aWV3IGZvciBwb3dlciBhbmFseXNpcyIKLXNldCBhdHRyKHBvd2VyX2RvbWFpbnMpICJMaXN0IG9mIHBvd2VyIGRvbWFpbnMiCi0KLXNldCBhdHRyKGNwZl9maWxlKSBpbml0X2NwZl9maWxlCi0jc2V0IGF0dHIoaWVlZTE4MDFfZmlsZSkgPwotCi1zZXQgYXR0cihwb3dlcl9uZXRzKSAiTGlzdCBvZiBwb3dlciBuZXRzIgotc2V0IGF0dHIoZ3JvdW5kX25ldHMpICJMaXN0IG9mIGdyb3VuZCBuZXRzIgotc2V0IGF0dHIoZ2xvYmFsX25ldHMpICJMaXN0IG9mIGdsb2JhbCBuZXRzIgotc2V0IGF0dHIobW9kdWxlKSAiTW9kdWxlIGZvciBnbG9iYWwgbmV0Igotc2V0IGF0dHIocGlucykgIlBvd2VyIHBpbnMgZm9yIGdsb2JhbCBuZXQiCi1zZXQgYXR0cih0aWVoaSkgIlRpZWhpIGdsb2JhbCBuZXQiIAotc2V0IGF0dHIodGllbG8pICJUaWVsbyBnbG9iYWwgbmV0IiAKLQotCi0jIENsb2NrCi1zZXQgYXR0cihjdHNfZW5naW5lKSBjdHNfZW5naW5lCi0jc2V0IGF0dHIoY3RzX2ludGVncmF0aW9uKSA/Ci1zZXQgYXR0cihjdHNfY2VsbHMpICJMaXN0IG9mIENUUyBjZWxscyIKLXNldCBhdHRyKGN0c19idWZmZXJfY2VsbHMpICJMaXN0IG9mIENUUyBidWZmZXIgY2VsbHMiCi1zZXQgYXR0cihjdHNfaW52ZXJ0ZXJfY2VsbHMpICJMaXN0IG9mIENUUyBpbnZlcnRlciBjZWxscyIKLXNldCBhdHRyKGNsb2NrX2dhdGVfY2VsbHMpICJMaXN0IG9mIENUUyBjbG9jayBnYXRlIGNlbGxzIgotc2V0IGF0dHIoY3RzX3VzZV9pbnZlcnRlcnMpICJ0cnVlIGZhbHNlIgotc2V0IGF0dHIoY2xrX2xlYWZfYm90dG9tX2xheWVyKSBjdHNfcm91dGVfbGVhZl9ib3R0b21fcHJlZmVycmVkX2xheWVyCi1zZXQgYXR0cihjbGtfbGVhZl90b3BfbGF5ZXIpIGN0c19yb3V0ZV9sZWFmX3RvcF9wcmVmZXJyZWRfbGF5ZXIKLXNldCBhdHRyKGNsa19sZWFmX2V4dHJhX3NwYWNlKSBjdHNfcm91dGVfbGVhZl9wcmVmZXJyZWRfZXh0cmFfc3BhY2UKLXNldCBhdHRyKGNsa19sZWFmX25kcikgY3RzX3JvdXRlX2xlYWZfbm9uX2RlZmF1bHRfcnVsZQotc2V0IGF0dHIoY2xrX21heF9za2V3KSAiRmxvYXQgKG5hbm9zZWNvbmRzKSIKLXNldCBhdHRyKGNsa19tYXhfc2xldykgIkZsb2F0IChuYW5vc2Vjb25kcykiCi1zZXQgYXR0cihjbGtfdHJlZV9ib3R0b21fbGF5ZXIpIGN0c19yb3V0ZV9ib3R0b21fcHJlZmVycmVkX2xheWVyCi1zZXQgYXR0cihjbGtfdHJlZV9leHRyYV9zcGFjZSkgY3RzX3JvdXRlX3RvcF9wcmVmZXJyZWRfbGF5ZXIKLXNldCBhdHRyKHJvdXRlX2Nsb2NrX25ldHMpIGN0c19yb3V0ZV9jbGtfbmV0Ci1zZXQgYXR0cihjbGtfdHJlZV9uZHIpIGN0c19yb3V0ZV9ub25fZGVmYXVsdF9ydWxlCi1zZXQgYXR0cihjbGtfdHJlZV9zaGllbGRfbmV0KSBjY29wdF9yb3V0ZV90b3Bfc2hpZWxkaW5nX25ldAotc2V0IGF0dHIoY2xrX3RyZWVfc2hpZWxkX3RocmVzaCkgY2NvcHRfdG9wX25ldF9taW5fZmFub3V0Ci1zZXQgYXR0cih1cGRhdGVfaW9fbGF0ZW5jeSkgY2NvcHRfbW9kaWZ5X2Nsb2NrX2xhdGVuY3kKLQotc2V0IGF0dHIoY2xvY2tfZWNvKSAidHJ1ZSBGQUxTRSIKLQotIyBPcHQKLXNldCBhdHRyKGFsbF9lbmRfcG9pbnRzKSBvcHRfYWxsX2VuZF9wb2ludHMKLSNzZXQgYXR0cihjbG9ja19nYXRlX2F3YXJlX29wdCkgPwotI3NldCBhdHRyKGNyaXRpY2FsX3JhbmdlKSA/Ci0jc2V0IGF0dHIoY29uZ2VzdGlvbl9lZmZvcnQpID8KLXNldCBhdHRyKGR5bmFtaWNfcG93ZXJfZWZmb3J0KSBvcHRfZHluYW1pY19wb3dlcl9lZmZvcnQKLXNldCBhdHRyKGxlYWthZ2VfcG93ZXJfZWZmb3J0KSBvcHRfbGVha2FnZV9wb3dlcl9lZmZvcnQKLXNldCBhdHRyKHByZXNlcnZlX2Fzc2VydGlvbnMpIG9wdF9wcmVzZXJ2ZV9waW5zX3dpdGhfdGltaW5nX2NvbnN0cmFpbnRzCi1zZXQgYXR0cihyZXNpemVfc2hpZnRlcl9hbmRfaXNvX2luc3RzKSBvcHRfcmVzaXplX2xldmVsX3NoaWZ0ZXJfYW5kX2lzb19pbnN0YW5jZXMKLXNldCBhdHRyKGZpeF9ob2xkX2FsbG93X3Ruc19kZWdyYWRhdGlvbikgb3B0X2ZpeF9ob2xkX2FsbG93X3NldHVwX3Ruc19kZWdyYWRhdGlvbgotc2V0IGF0dHIoZml4X2hvbGRfaWdub3JlX2lvcykgb3B0X2ZpeF9ob2xkX2lnbm9yZV9wYXRoX2dyb3Vwcwotc2V0IGF0dHIodXNlZnVsX3NrZXcpIG9wdF91c2VmdWxfc2tldwotCi0jIFJvdXRlCi1zZXQgYXR0cihtdWx0aV9jdXRfZWZmb3J0KSByb3V0ZV9kZXRhaWxfdXNlX211bHRpX2N1dF92aWFfZWZmb3J0Ci1zZXQgYXR0cihsaXRob19kcml2ZW5fcm91dGluZykgcm91dGVfZGV0YWlsX3Bvc3Rfcm91dGVfbGl0aG9fcmVwYWlyCi1zZXQgYXR0cihwb3N0cm91dGVfc3ByZWFkX3dpcmVzKSByb3V0ZV9kZXRhaWxfcG9zdF9yb3V0ZV9zcHJlYWRfd2lyZQotI3NldCBhdHRyKHJvdXRlX3NlY29uZGFyeV9wZ19uZXRzKSAidHJ1ZSBGQUxTRSIKLSNzZXQgYXR0cihzZWNvbmRhcnlfcGdfbmV0cykgIkxpc3Qgb2YgZ2xvYmFsIG5ldHMgZm9yIHNlY29uZGFyeSBwb3dlci9ncm91bmQiCi0KLSMgRXh0cmFjdGlvbgotc2V0IGF0dHIocG9zdHJvdXRlX2V4dHJhY3Rpb25fZWZmb3J0KSBleHRyYWN0X3JjX2VmZm9ydF9sZXZlbAotc2V0IGF0dHIoc2lnbm9mZl9leHRyYWN0aW9uX2VmZm9ydCkgZXh0cmFjdF9yY19lZmZvcnRfbGV2ZWwKLXNldCBhdHRyKGNvdXBsaW5nX2NfdGhyZXNoKSBleHRyYWN0X3JjX2NvdXBsaW5nX2NhcF90aAotc2V0IGF0dHIodG90YWxfY190aHJlc2gpIGV4dHJhY3RfcmNfdG90YWxfY2FwX3RoCi1zZXQgYXR0cihyZWxhdGl2ZV9jX3RocmVzaCkgZXh0cmFjdF9yY19yZWxhdGl2ZV9jYXBfdGgKLQotIyBERk0KLSNzZXQgYXR0cih2ZXJpZnlfbGl0aG8pICJ0cnVlIEZBTFNFIgotI3NldCBhdHRyKGxwYV90ZWNoX2ZpbGUpICJMUEEgdGVjaCBmaWxlIgotI3NldCBhdHRyKG1ldGFsZmlsbCkgInRydWUgRkFMU0UiCi0jc2V0IGF0dHIobWV0YWxmaWxsX3RjbCkgIk1ldGFsZmlsbCBwbHVnLWluIgotI3NldCBhdHRyKGdkc19maWxlcykgIkdEUyBmaWxlIGxpc3QiCi0jc2V0IGF0dHIoZ2RzX2xheWVyX21hcCkgIkdEUyBsYXllciBtYXAiCi0jc2V0IGF0dHIoZ2RzX2ZpbGVzKSAiT2FzaXMgZmlsZSBsaXN0IgotI3NldCBhdHRyKGdkc19sYXllcl9tYXApICJPYXNpcyBsYXllciBtYXAiCi0KLSMgTm9pc2UKLSNzZXQgYXR0cihzaV9hbmFseXNpc190eXBlKSAiREVGQVVMVCBwZXNzaW1pc3RpYyIKLXNldCBhdHRyKGRlbHRhX2RlbGF5X3RocmVzaG9sZCkgc2lfZGVsYXlfZGVsdGFfdGhyZXNob2xkCi0jc2V0IGF0dHIoYWNjZXB0YWJsZV93bnMpIHNpX2FjY2VwdGFibGVfd25zCi0KLSMgRGF0YWJhc2UKLXNldCBhdHRyKGRic19kaXIpICJEYXRhYmFzZSBkaXJlY3RvcnkiCi1zZXQgYXR0cihkYnNfZm9ybWF0KSAiRkUgb2EiCi1zZXQgYXR0cihvYV9sYXlvdXRfbmFtZSkgIk9BIExheW91dCB2aWV3IG5hbWUiCi1zZXQgYXR0cihvYV9hYnN0cmFjdF9uYW1lKSAiT0EgQWJzdHJhY3QgdmlldyBuYW1lIgotc2V0IGF0dHIoc2F2ZV9jb25zdHJhaW50cykgInRydWUgRkFMU0UgKFNhdmUgY29uc3RyYWludHMgd2l0aCBEQlM/KSIKLXNldCBhdHRyKHNhdmVfcmMpICJ0cnVlIEZBTFNFIChTYXZlIFJDREIgd2l0aCBEQlM/KSIKLQotIyBSZXBvcnRpbmcKLXNldCBhdHRyKHJwdF9kaXIpICJSZXBvcnRzIGRpcmVjdG9yeSIKLXNldCBhdHRyKHJlcG9ydF9wb3dlcikgIlRSVUUgZmFsc2UiCi1zZXQgYXR0cihjYXB0dXJlX21ldHJpY3MpIGNhcHR1cmVfbWV0cmljcwotCi0jIE1pc2MKLXNldCBhdHRyKHRvKSAiTWFpbCBhZGRyZXNzZXMiCi1zZXQgYXR0cihzdGVwcykgIkxpc3Qgb2Ygc3RlcHMiCi0KLXNldCBhdHRyKHBsdWdfZGlyKSAiUGx1Zy1pbiBkaXJlY3RvcnkiCi1zZXQgYXR0cih0bXBfZGlyKSAiVE1QIGRpcmVjdG9yeSIKLXNldCBhdHRyKGxvZ19kaXIpICJMT0cgZGlyZWN0b3J5IgotCi0KLXNldCBhdHRyKGRpc3RyaWJ1dGUpICJMT0NBTCBsc2YgcnNoIGN1c3RvbSIKLXNldCBhdHRyKGxvY2FsX2NwdXMpICJMaXN0IG9mIGhvc3RzIgotc2V0IGF0dHIocmVtb3RlX2hvc3RzKSAiSW50ZWdlciAobnVtYmVyIG9mIGhvc3RzKSIKLXNldCBhdHRyKGNwdXNfcGVyX3JlbW90ZV9ob3N0KSAiSW50ZWdlciAobnVtYmVyIG9mIGNwdXMpIgotCi0KLSNzZXQgYXR0cihhc3NpZ25fYnVmZmVyKSA/Ci0jc2V0IGF0dHIoYXNzaWduX2J1ZmZlcl9jZWxsKSA/Ci0jc2V0IGF0dHIoYWx3YXlzX29uX2J1ZmZlcnMpICJMaXN0IG9mIEFPTiBidWZmZXJzIgotI3NldCBhdHRyKGRlbGF5X2NlbGxzKSAiTGlzdCBvZiBkZWxheSBjZWxscyIKLSNzZXQgYXR0cihkb250X3VzZV9saXN0KSAiTGlzdCBvZiBkb250IHVzZSBjZWxscyIKLSNzZXQgYXR0cihkb250X3VzZV9maWxlKSAiRmlsZSB3L3NldERvbnRVc2UgY29tbWFuZHMiCi0jc2V0IGF0dHIod2VsbHRhcHMpICJXZWxsdGFwIGNlbGxzIgotI3NldCBhdHRyKGNlbGxfaW50ZXJ2YWwpICJGbG9hdDogKGludGVydmFsKSBkaXN0YW5jZSBpbiBtaWNyb25zIgotI3NldCBhdHRyKGNoZWNrZXJib2FyZCkgInRydWUgRkFMU0UiCi0jc2V0IGF0dHIoc3BhcmVfY2VsbHMpICJMaXN0IG9mIHNwYXJlIG1vZHVsZXMiCi0jc2V0IGF0dHIoanRhZ19jZWxscykgIkxpc3Qgb2YganRhZyBtb2R1bGVzIgotI3NldCBhdHRyKGp0YWdfcm93cykgIkxpc3Qgb2Ygcm93cyB0byByZXNlcnZlIGZvciBqdGFnIHBsYWNlbWVudCIKLSNzZXQgYXR0cihmaWxsZXJfY2VsbHMpICJMaXN0IG9mIGZpbGxlciBjZWxscyIKLSNzZXQgYXR0cihza2V3X2J1ZmZlcnMpICJMaXN0IG9mIGJ1ZmZlcnMgZm9yIHVzZWZ1bCBza2V3IgotI3NldCBhdHRyKHRpZV9jZWxscykgIkxpc3Qgb2YgdGllIGNlbGxzIgotI3NldCBhdHRyKG1heF9kaXN0YW5jZSkgIkZsb2F0OiBkaXN0YW5jZSBpbiBtaWNyb25zIgotI3NldCBhdHRyKG1heF9mYW5vdXQpICJJbnRlcmdlcjogZmFub3V0IG51bWJlciIKZGlmZiAtLWdpdCBhL2Zsb3cvcG5yL0VYQU1QTEVTL0lOTk9WVVMvREVTSUdOL1NDUklQVFMvRVRDL0lOTk9WVVMvbWFwX29wdGlvbnMudGNsIGIvZmxvdy9wbnIvRVhBTVBMRVMvSU5OT1ZVUy9ERVNJR04vU0NSSVBUUy9FVEMvSU5OT1ZVUy9tYXBfb3B0aW9ucy50Y2wKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IGRjMjg4MWYuLjAwMDAwMDAKLS0tIGEvZmxvdy9wbnIvRVhBTVBMRVMvSU5OT1ZVUy9ERVNJR04vU0NSSVBUUy9FVEMvSU5OT1ZVUy9tYXBfb3B0aW9ucy50Y2wKKysrIC9kZXYvbnVsbApAQCAtMSw2OCArMCwwIEBACi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0jICAgICAgICAgICAgICAgICAgICAgICBDQURFTkNFIENPUFlSSUdIVCBOT1RJQ0UKLSMgICAgICAgICCpIDIwMDgtMjAxMyBDYWRlbmNlIERlc2lnbiBTeXN0ZW1zLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0jCi0jIFRoaXMgRm91bmRhdGlvbiBGbG93IGlzIHByb3ZpZGVkIGFzIGFuIGV4YW1wbGUgb2YgaG93IHRvIHBlcmZvcm0gc3BlY2lhbGl6ZWQKLSMgdGFza3MuCi0jCi0jIFRoaXMgd29yayBtYXkgbm90IGJlIGNvcGllZCwgcmUtcHVibGlzaGVkLCB1cGxvYWRlZCwgb3IgZGlzdHJpYnV0ZWQgaW4gYW55IHdheSwKLSMgaW4gYW55IG1lZGl1bSwgd2hldGhlciBpbiB3aG9sZSBvciBpbiBwYXJ0LCB3aXRob3V0IHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbgotIyBmcm9tIENhZGVuY2UuIE5vdHdpdGhzdGFuZGluZyBhbnkgcmVzdHJpY3Rpb25zIGhlcmVpbiwgc3ViamVjdCB0byBjb21wbGlhbmNlCi0jIHdpdGggdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mIHRoZSBDYWRlbmNlIHNvZnR3YXJlIGxpY2Vuc2UgYWdyZWVtZW50IHVuZGVyCi0jIHdoaWNoIHRoaXMgbWF0ZXJpYWwgd2FzIHByb3ZpZGVkLCB0aGlzIG1hdGVyaWFsIG1heSBiZSBjb3BpZWQgYW5kIGludGVybmFsbHkKLSMgZGlzdHJpYnV0ZWQgc29sZWx5IGZvciBpbnRlcm5hbCBwdXJwb3NlcyBmb3IgdXNlIHdpdGggQ2FkZW5jZSB0b29scy4KLSMKLSMgVGhpcyB3b3JrIGlzIENhZGVuY2UgaW50ZWxsZWN0dWFsIHByb3BlcnR5IGFuZCBtYXkgdW5kZXIgbm8gY2lyY3Vtc3RhbmNlcyBiZQotIyBnaXZlbiB0byB0aGlyZCBwYXJ0aWVzLCBuZWl0aGVyIGluIG9yaWdpbmFsIG5vciBpbiBtb2RpZmllZCB2ZXJzaW9ucywgd2l0aG91dAotIyBleHBsaWNpdCB3cml0dGVuIHBlcm1pc3Npb24gZnJvbSBDYWRlbmNlLiBUaGUgaW5mb3JtYXRpb24gY29udGFpbmVkIGhlcmVpbiBpcwotIyB0aGUgcHJvcHJpZXRhcnkgYW5kIGNvbmZpZGVudGlhbCBpbmZvcm1hdGlvbiBvZiBDYWRlbmNlIG9yIGl0cyBsaWNlbnNvcnMsIGFuZAotIyBpcyBzdXBwbGllZCBzdWJqZWN0IHRvLCBhbmQgbWF5IGJlIHVzZWQgb25seSBieSBDYWRlbmNlJ3MgY3VycmVudCBjdXN0b21lcnMKLSMgaW4gYWNjb3JkYW5jZSB3aXRoLCBhIHByZXZpb3VzbHkgZXhlY3V0ZWQgbGljZW5zZSBhZ3JlZW1lbnQgYmV0d2VlbiBDYWRlbmNlCi0jIGFuZCBpdHMgY3VzdG9tZXIuCi0jCi0jLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0jIFRISVMgTUFURVJJQUwgSVMgUFJPVklERUQgQlkgQ0FERU5DRSAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVECi0jIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GCi0jIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuCi0jIElOIE5PIEVWRU5UIFNIQUxMIENBREVOQ0UgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTAotIyBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLAotIyBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUICAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IKLSMgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyAgTUFURVJJQUwsIEVWRU4gSUYKLSMgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0KLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0jIE1hcCBvcHRpb24gbmFtZXMgLi4uCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotc2V0IG1hcChzd2l0Y2hfaW5zdGFuY2UpICAgIHN3aXRjaE1vZHVsZUluc3RhbmNlCi1zZXQgbWFwKGlucHV0X2VuYWJsZV9waW4pICAgZW5hYmxlUGluSW4KLXNldCBtYXAob3V0cHV0X2VuYWJsZV9waW4pICBlbmFibGVQaW5PdXQKLXNldCBtYXAoaW5wdXRfZW5hYmxlX25ldCkgICBlbmFibGVOZXRJbgotc2V0IG1hcChvdXRwdXRfZW5hYmxlX25ldCkgIGVuYWJsZU5ldE91dAotc2V0IG1hcChzd2l0Y2hfY2VsbCkgICAgICAgIGdsb2JhbFN3aXRjaENlbGxOYW1lCi1zZXQgbWFwKHRvcF9vZmZzZXQpICAgICAgICAgdG9wT2Zmc2V0Ci1zZXQgbWFwKGJvdHRvbV9vZmZzZXQpICAgICAgYm90dG9tT2Zmc2V0Ci1zZXQgbWFwKHJpZ2h0X29mZnNldCkgICAgICAgcmlnaHRPZmZzZXQKLXNldCBtYXAobGVmdF9vZmZzZXQpICAgICAgICBsZWZ0T2Zmc2V0Ci1zZXQgbWFwKGhvcml6b25hbF9waXRjaCkgICAgaG9yaXpvbnRhbFBpdGNoCi1zZXQgbWFwKGNvbHVtbl9oZWlnaHQpICAgICAgaGVpZ2h0Ci1zZXQgbWFwKHNraXBfcm93cykgICAgICAgICAgc2tpcFJvd3MKLXNldCBtYXAodG9wX3JpbmcpICAgICAgICAgICB0b3BTaWRlCi1zZXQgbWFwKGJvdHRvbV9yaW5nKSAgICAgICAgYm90dG9tU2lkZQotc2V0IG1hcChyaWdodF9yaW5nKSAgICAgICAgIHJpZ2h0U2lkZQotc2V0IG1hcChsZWZ0X3JpbmcpICAgICAgICAgIGxlZnRTaWRlCi1zZXQgbWFwKGNvcm5lcl9jZWxsX2xpc3QpICAgY29ybmVyQ2VsbExpc3QKLXNldCBtYXAodG9wX2ZpbGxlcl9jZWxsKSAgICBmaWxsZXJDZWxsTmFtZVRvcAotc2V0IG1hcChib3R0b21fZmlsbGVyX2NlbGwpIGZpbGxlckNlbGxOYW1lQm90dG9tCi1zZXQgbWFwKGxlZnRfZmlsbGVyX2NlbGwpICAgZmlsbGVyQ2VsbE5hbWVMZWZ0Ci1zZXQgbWFwKHJpZ2h0X2ZpbGxlcl9jZWxsKSAgZmlsbGVyQ2VsbE5hbWVSaWdodAotc2V0IG1hcCh0b3Bfc3dpdGNoX2NlbGwpICAgIHN3aXRjaENlbGxOYW1lVG9wCi1zZXQgbWFwKGJvdHRvbV9zd2l0Y2hfY2VsbCkgc3dpdGNoQ2VsbE5hbWVCb3R0b20KLXNldCBtYXAobGVmdF9zd2l0Y2hfY2VsbCkgICBzd2l0Y2hDZWxsTmFtZUxlZnQKLXNldCBtYXAocmlnaHRfc3dpdGNoX2NlbGwpICBzd2l0Y2hDZWxsTmFtZVJpZ2h0Ci1zZXQgbWFwKHRvcF9zd2l0Y2hlcykgICAgICAgdG9wTnVtU3dpdGNoCi1zZXQgbWFwKGJvdHRvbV9zd2l0Y2hlcykgICAgYm90dG9tTnVtU3dpdGNoCi1zZXQgbWFwKGxlZnRfc3dpdGNoZXMpICAgICAgbGVmdE51bVN3aXRjaAotc2V0IG1hcChyaWdodF9zd2l0Y2hlcykgICAgIHJpZ2h0TnVtU3dpdGNoCi0KZGlmZiAtLWdpdCBhL2Zsb3cvcG5yL0VYQU1QTEVTL0lOTk9WVVMvREVTSUdOL1NDUklQVFMvRVRDL0lOTk9WVVMvbWFwcGVkX3ZhcnMudGNsIGIvZmxvdy9wbnIvRVhBTVBMRVMvSU5OT1ZVUy9ERVNJR04vU0NSSVBUUy9FVEMvSU5OT1ZVUy9tYXBwZWRfdmFycy50Y2wKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDIzMjNhNGQuLjAwMDAwMDAKLS0tIGEvZmxvdy9wbnIvRVhBTVBMRVMvSU5OT1ZVUy9ERVNJR04vU0NSSVBUUy9FVEMvSU5OT1ZVUy9tYXBwZWRfdmFycy50Y2wKKysrIC9kZXYvbnVsbApAQCAtMSwzODUgKzAsMCBAQAotc2V0IGhlbHAoY2F0ZWdvcmllcykgImZsb3cgaGllciBkYnMgc3ludGggaW5pdCBpbG0gbW1tYyBwb3dlciBwbGFjZSBvcHQgY3RzIGhvbGQgcm91dGUgZXh0cmFjdCBub2lzZSByZXBvcnQgZGlzdHJpYnV0ZSBtaXNjIgotc2V0IGhlbHAoYWxsLGNhdGVnb3JpZXMpICRoZWxwKGNhdGVnb3JpZXMpCi1zZXQgaGVscChzeW50aCxjYXRlZ29yaWVzKSAic3ludGgiCi1zZXQgaGVscChpbG0sY2F0ZWdvcmllcykgImlsbSIKLXNldCBoZWxwKGluaXQsY2F0ZWdvcmllcykgImluaXQgaWxtIG1tbWMgcG93ZXIgcmVwb3J0Igotc2V0IGhlbHAocGxhY2UsY2F0ZWdvcmllcykgInBsYWNlIGRicyByZXBvcnQiCi1zZXQgaGVscChwcmVjdHMsY2F0ZWdvcmllcykgIm9wdCBkYnMgcmVwb3J0Igotc2V0IGhlbHAoY3RzLGNhdGVnb3JpZXMpICJjdHMgZGJzIHJlcG9ydCIKLXNldCBoZWxwKG9wdCxjYXRlZ29yaWVzKSAib3B0Igotc2V0IGhlbHAocG9zdGN0cyxjYXRlZ29yaWVzKSAib3B0IGRicyByZXBvcnQiCi1zZXQgaGVscChwb3N0Y3RzX2hvbGQsY2F0ZWdvcmllcykgIm9wdCBob2xkIGRicyByZXBvcnQiCi0jc2V0IGhlbHAoaG9sZCkgIm9wdCBob2xkIGRicyByZXBvcnQiCi1zZXQgaGVscChyb3V0ZSxjYXRlZ29yaWVzKSAicm91dGUgZGJzIHJlcG9ydCIKLXNldCBoZWxwKHBvc3Ryb3V0ZSxjYXRlZ29yaWVzKSAib3B0IGV4dHJhY3Qgbm9pc2UgZGJzIHJlcG9ydCIKLXNldCBoZWxwKHBvc3Ryb3V0ZV9ob2xkLGNhdGVnb3JpZXMpICJyb3V0ZSBleHRyYWN0IG5vaXNlIGhvbGQgZGJzIHJlcG9ydCIKLXNldCBoZWxwKHNpZ25vZmYsY2F0ZWdvcmllcykgImV4dHJhY3Qgbm9pc2UiCi1zZXQgaGVscChmbG93LGNhdGVnb3JpZXMpICJmbG93Igotc2V0IGhlbHAoY29udHJvbCxjYXRlZ29yaWVzKSAiZmxvdyIKLXNldCBoZWxwKG1tbWMsY2F0ZWdvcmllcykgIm1tbWMiCi1zZXQgaGVscCh0aW1pbmcsY2F0ZWdvcmllcykgIm1tbWMiCi1zZXQgaGVscChub2lzZSxjYXRlZ29yaWVzKSAibm9pc2UiCi1zZXQgaGVscChkYnMsY2F0ZWdvcmllcykgImRicyIKLXNldCBoZWxwKHBvd2VyLGNhdGVnb3JpZXMpICJwb3dlciIKLXNldCBoZWxwKGRpc3RyaWJ1dGUsY2F0ZWdvcmllcykgImRpc3RyaWJ1dGUiCi1zZXQgaGVscChtaXNjLGNhdGVnb3JpZXMpICJtaXNjIgotc2V0IGNvbG9yKGZsb3cpICNjY2ZmNjYKLXNldCBjb2xvcihkYnMpICNmZmNjNjYKLXNldCBjb2xvcihpbml0KSAjY2NmZjY2Ci1zZXQgY29sb3IobW1tYykgI2ZmY2M2Ngotc2V0IGNvbG9yKHBvd2VyKSAjY2NmZjY2Ci1zZXQgY29sb3IocGxhY2UpICNmZmNjNjYKLXNldCBjb2xvcihvcHQpICNjY2ZmNjYKLXNldCBjb2xvcihjdHMpICNmZmNjNjYKLXNldCBjb2xvcihyb3V0ZSkgI2NjZmY2Ngotc2V0IGNvbG9yKGV4dHJhY3QpICNmZmNjNjYKLXNldCBjb2xvcihub2lzZSkgI2NjZmY2Ngotc2V0IGNvbG9yKHJlcG9ydCkgI2ZmY2M2Ngotc2V0IGNvbG9yKGRpc3RyaWJ1dGUpICNjY2ZmNjYKLXNldCBjb2xvcihtaXNjKSAjZmZjYzY2Ci0jIEZsb3cgQ29udHJvbAotc2V0IGhlbHAoZmxvdyxub25lLHN0ZXBzKSAiZGVmYXVsdDogaW5pdCBwbGFjZSBwcmVjdHMgY3RzIHBvc3RjdHMgcG9zdGN0c19ob2xkIHJvdXRlIHBvc3Ryb3V0ZSBwb3N0cm91dGVfaG9sZCBzaWdub2ZmIgotc2V0IGhlbHAoZmxvdyxub25lLG1vZGUpICAiRkxBVCBoaWVyIHVzZXIiIAotc2V0IGhlbHAoZmxvdyxub25lLGZsYXQpICAibm9uZSBwYXJ0aWFsIGZ1bGwiCi0jc2V0IGhlbHAoZmxvdyxmbG93KSAgIm1tbWMiCi1zZXQgaGVscChmbG93LG5vbmUsaGllcl9mbG93X3R5cGUpICIxcGFzcyAycGFzcyIKLXNldCBoZWxwKGZsb3csbm9uZSxibGFja19ib3gpICJUUlVFIGZhbHNlIgotc2V0IGhlbHAoZmxvdyxpbnNlcnRfcGFydGl0aW9uX2ZlZWR0aHJvdWdoLGluc2VydF9mZWVkdGhyb3VnaCkgIlRSVUUgZmFsc2UiCi1zZXQgaGVscChmbG93LHNldF9wbGFjZV9tb2RlLHBsYWNlbWVudF9iYXNlZF9wdG4pICJ0cnVlIEZBTFNFIgotc2V0IGhlbHAoZmxvdyxjcmVhdGVfcHJvdG9fbW9kZWwsdXNlX2ZsZXhtb2RlbHMpICJ0cnVlIEZBTFNFIgotc2V0IGhlbHAoZmxvdyxjcmVhdGVfcHNfcGVyX21pY3Jvbl9tb2RlbCx1c2VfcHJvdG9fbmV0X2RlbGF5X21vZGVsKSAidHJ1ZSBGQUxTRSIKLXNldCBoZWxwKGZsb3csZGVyaXZlX3RpbWluZ19idWRnZXQsYnVkZ2V0X21vZGUpICJ0cmlhbF9pcG8gcHJvdG9fbmV0X2RlbGF5X21vZGVsIGdpZ2Ffb3B0Igotc2V0IGhlbHAoZmxvdyxyZXBsYWNlX3Byb3RvX21vZGVsLGZsZXhtb2RlbF9hc19wdG4pICJ0cnVlIEZBTFNFIgotc2V0IGhlbHAoZmxvdyxjcmVhdGVfcHJvdG9fbW9kZWwsZmxleG1vZGVsX2FydF9iYXNlZCkgInRydWUgRkFMU0UiCi0KLXNldCBoZWxwKGZsb3csc2V0X2FuYWx5c2lzX21vZGUsZW5hYmxlX2FvY3YpICJ0cnVlIEZBTFNFIgotc2V0IGhlbHAoZmxvdyxzZXRfYW5hbHlzaXNfbW9kZSxlbmFibGVfY3BwcikgInRydWUgRkFMU0UiCi1zZXQgaGVscChmbG93LHNldF9hbmFseXNpc19tb2RlLGVuYWJsZV9vY3YpICJwcmVfcHJlY3RzIHByZV9wb3N0Y3RzIHByZV9wb3N0cm91dGUgUFJFX1BPU1RST1VURV9IT0xEIHByZV9zaWdub2ZmIGZhbHNlIgotc2V0IGhlbHAoZmxvdyxzZXRfZGVsYXlfY2FsX21vZGUsZW5hYmxlX3NpX2F3YXJlKSAidHJ1ZSBGQUxTRSIKLXNldCBoZWxwKGZsb3csc2V0X2RlbGF5X2NhbF9tb2RlLGVuYWJsZV9zcykgInByZV9wbGFjZSBwcmVfcHJlY3RzIHByZV9wb3N0Y3RzIHByZV9wb3N0cm91dGUgcHJlX3Bvc3Ryb3V0ZV9ob2xkIHByZV9zaWdub2ZmIEZBTFNFIgotCi1zZXQgaGVscChmbG93LG5vbmUsZW5hYmxlX3BhYykgInRydWUgRkFMU0UiCi1zZXQgaGVscChmbG93LG5vbmUsZW5hYmxlX2RsbSkgInRydWUgRkFMU0UiCi1zZXQgaGVscChmbG93LG5vbmUsZml4X2hvbGQpICJUUlVFIGZhbHNlIgotc2V0IGhlbHAoZmxvdyxub25lLGZpeF9saXRobykgInRydWUgRkFMU0UiCi1zZXQgaGVscChmbG93LG5vbmUsaGlnaF90aW1pbmdfZWZmb3J0KSAidHJ1ZSBGQUxTRSIKLXNldCBoZWxwKGZsb3csbm9uZSxydW5fY2xwKSAiVFJVRSBmYWxzZSIKLXNldCBoZWxwKGZsb3csbm9uZSxydW5fbGVjKSAidHJ1ZSBGQUxTRSIKLXNldCBoZWxwKGZsb3csbm9uZSxza2lwX2N0cykgInRydWUgRkFMU0UiCi1zZXQgaGVscChmbG93LG5vbmUsc2tpcF9zaSkgInRydWUgRkFMU0UiCi1zZXQgaGVscChmbG93LG5vbmUsc2tpcF9zaWdub2ZmX2NoZWNrcykgInRydWUgRkFMU0UiCi0KLXNldCBoZWxwKGZsb3csbm9uZSxhYm9ydCkgInRydWUgRkFMU0UiCi1zZXQgaGVscChmbG93LG5vbmUsYmF0Y2gpICJUUlVFIGZhbHNlIiAKLXNldCBoZWxwKGZsb3csbm9uZSxzYXZlX29uX2NhdGNoKSAiVFJVRSBmYWxzZSIgCi1zZXQgaGVscChmbG93LG5vbmUsY2F0Y2hfZXJyb3JzKSAiVFJVRSBmYWxzZSIgCi0KLSMgTGlicmFyeSBTZXR1cAotc2V0IGhlbHAobW1tYyxjcmVhdGVfbGlicmFyeV9zZXQsbGlicmFyeV9zZXRzKSAiTGlzdCBvZiBsaWJyYXJ5IHNldHMiCi1zZXQgaGVscChtbW1jLGNyZWF0ZV9saWJyYXJ5X3NldCw8bHM+LHRpbWluZykgIkxpc3Qgb2YgbGlicmFyeSBmaWxlcyIgIAotc2V0IGhlbHAobW1tYyxjcmVhdGVfbGlicmFyeV9zZXQsPGxzPixhb2N2KSAiQU9DViB0YWJsZSBmaWxlIgotc2V0IGhlbHAobW1tYyxjcmVhdGVfbGlicmFyeV9zZXQsPGxzPixzaSkgICJMaXN0IG9mIENEQiBmaWxlcyIKLXNldCBoZWxwKG1tbWMsY3JlYXRlX3JjX2Nvcm5lcixyY19jb3JuZXJzKSAiTGlzdCBvZiBSQyBjb3JuZXJzIgotc2V0IGhlbHAobW1tYyxjcmVhdGVfcmNfY29ybmVyLDxyYz4sUCkgIlByb2Nlc3MgbXVsdGlwbGllciIKLXNldCBoZWxwKG1tbWMsY3JlYXRlX3JjX2Nvcm5lciw8cmM+LFQpICJUZW1wZXJhdHVyZSIKLXNldCBoZWxwKG1tbWMsY3JlYXRlX3JjX2Nvcm5lciw8cmM+LFYpICJWb2x0YWdlIiAKLXNldCBoZWxwKG1tbWMsY3JlYXRlX3JjX2Nvcm5lciw8cmM+LGNhcF90YWJsZSkgIkNhcHRhYmxlIGZpbGUiCi1zZXQgaGVscChtbW1jLGNyZWF0ZV9yY19jb3JuZXIsPHJjPixwb3N0X3JvdXRlX2NhcF9mYWN0b3IpICJmbG9hdCAodHJpcGxldCkiCi1zZXQgaGVscChtbW1jLGNyZWF0ZV9yY19jb3JuZXIsPHJjPixwb3N0X3JvdXRlX2Nsa19jYXBfZmFjdG9yKSAiZmxvYXQgKHRyaXBsZXQpIgotc2V0IGhlbHAobW1tYyxjcmVhdGVfcmNfY29ybmVyLDxyYz4scG9zdF9yb3V0ZV9jbGtfcmVzX2ZhY3RvcikgImZsb2F0ICh0cmlwbGV0KSIKLXNldCBoZWxwKG1tbWMsY3JlYXRlX3JjX2Nvcm5lciw8cmM+LHBvc3Rfcm91dGVfcmVzX2ZhY3RvcikgImZsb2F0Igotc2V0IGhlbHAobW1tYyxjcmVhdGVfcmNfY29ybmVyLDxyYz4scHJlX3JvdXRlX2NhcF9mYWN0b3IpICJmbG9hdCIKLXNldCBoZWxwKG1tbWMsY3JlYXRlX3JjX2Nvcm5lciw8cmM+LHByZV9yb3V0ZV9jbGtfY2FwX2ZhY3RvcikgImZsb2F0Igotc2V0IGhlbHAobW1tYyxjcmVhdGVfcmNfY29ybmVyLDxyYz4scHJlX3JvdXRlX2Nsa19yZXNfZmFjdG9yKSAiZmxvYXQiCi1zZXQgaGVscChtbW1jLGNyZWF0ZV9yY19jb3JuZXIsPHJjPixwcmVfcm91dGVfcmVzX2ZhY3RvcikgImZsb2F0Igotc2V0IGhlbHAobW1tYyxjcmVhdGVfcmNfY29ybmVyLDxyYz4scXhfdGVjaF9maWxlKSAiUVJDIHRlY2hmaWxlIgotc2V0IGhlbHAobW1tYyxjcmVhdGVfb3BfY29uZCxvcGNvbmRzKSAiTGlzdCBvZiBvcGNvbmRzIgotc2V0IGhlbHAobW1tYyxjcmVhdGVfb3BfY29uZCw8b3Bjb25kPixQKSAiUHJvY2VzcyBtdWx0aXBsaWVyIiAKLXNldCBoZWxwKG1tbWMsY3JlYXRlX29wX2NvbmQsPG9wY29uZD4sVCkgIlRlbXBlcmF0dXJlIgotc2V0IGhlbHAobW1tYyxjcmVhdGVfb3BfY29uZCw8b3Bjb25kPixWKSAiVm9sdGFnZSIKLXNldCBoZWxwKG1tbWMsY3JlYXRlX29wX2NvbmQsPG9wY29uZD4sbGlicmFyeV9maWxlKSAiTGlicmFyeSBmaWxlIgotc2V0IGhlbHAobW1tYyxjcmVhdGVfZGVsYXlfY29ybmVyLGRlbGF5X2Nvcm5lcnMpICJMaXN0IG9mIGRlbGF5IGNvcm5lcnMiCi1zZXQgaGVscChtbW1jLGNyZWF0ZV9kZWxheV9jb3JuZXIsPGRjPixsaWJyYXJ5X3NldCkgIkxpYnJhcnkgc2V0Igotc2V0IGhlbHAobW1tYyxjcmVhdGVfZGVsYXlfY29ybmVyLDxkYz4scmNfY29ybmVyKSAiUkMgY29ybmVyIgotc2V0IGhlbHAobW1tYyx1cGRhdGVfZGVsYXlfY29ybmVyLDxkYz4scG93ZXJfZG9tYWlucykgIkxpc3Qgb2YgcG93ZXIgZG9tYWlucyIKLXNldCBoZWxwKG1tbWMsY3JlYXRlX2RlbGF5X2Nvcm5lciw8ZGM+LGNsb2NrX2NlbGxfZWFybHkpICJGbG9hdCIKLXNldCBoZWxwKG1tbWMsY3JlYXRlX2RlbGF5X2Nvcm5lciw8ZGM+LGNsb2NrX2NlbGxfbGF0ZSkgIkZsb2F0Igotc2V0IGhlbHAobW1tYyxjcmVhdGVfZGVsYXlfY29ybmVyLDxkYz4sY2xvY2tfbmV0X2Vhcmx5KSAiRmxvYXQiCi1zZXQgaGVscChtbW1jLGNyZWF0ZV9kZWxheV9jb3JuZXIsPGRjPixjbG9ja19uZXRfbGF0ZSkgIkZsb2F0Igotc2V0IGhlbHAobW1tYyxjcmVhdGVfZGVsYXlfY29ybmVyLDxkYz4sZGF0YV9jZWxsX2Vhcmx5KSAiRmxvYXQiCi1zZXQgaGVscChtbW1jLGNyZWF0ZV9kZWxheV9jb3JuZXIsPGRjPixkYXRhX2NlbGxfbGF0ZSkgIkZsb2F0Igotc2V0IGhlbHAobW1tYyxjcmVhdGVfZGVsYXlfY29ybmVyLDxkYz4sZGF0YV9uZXRfZWFybHkpICJGbG9hdCIKLXNldCBoZWxwKG1tbWMsY3JlYXRlX2RlbGF5X2Nvcm5lciw8ZGM+LGRhdGFfbmV0X2xhdGUpICJGbG9hdCIKLXNldCBoZWxwKG1tbWMsY3JlYXRlX2NvbnN0cmFpbnRfbW9kZSxjb25zdHJhaW50X21vZGVzKSAiTGlzdCBvZiBjb25zdHJhaW50IG1vZGVzIgotc2V0IGhlbHAobW1tYyxjcmVhdGVfY29uc3RyYWludF9tb2RlLDxjbT4scHJlX2N0c19zZGMpICJMaXN0IG9mIFNEQyBmaWxlcyIKLXNldCBoZWxwKG1tbWMsdXBkYXRlX2NvbnN0cmFpbnRfbW9kZSw8Y20+LHBvc3RfY3RzX3NkYykgIkxpc3Qgb2YgU0RDIGZpbGVzIiAKLXNldCBoZWxwKG1tbWMsdXBkYXRlX2NvbnN0cmFpbnRfbW9kZSw8Y20+LGluY3JfY3RzX3NkYykgIkxpc3Qgb2YgU0RDIGZpbGVzIChpbmNyZW1lbnRhbCkiIAotc2V0IGhlbHAobW1tYyx1cGRhdGVfY29uc3RyYWludF9tb2RlLDxjbT4saWxtX25vbl9zZGNfZmlsZSkgIkxpc3Qgb2YgSUxNIGNvbnN0cmFpbnRzIgotc2V0IGhlbHAobW1tYyxjcmVhdGVfYW5hbHlzaXNfdmlldyxzZXR1cF9hbmFseXNpc192aWV3cykgIkxpc3Qgb2YgYW5hbHlzaXMgdmlld3MiIAotc2V0IGhlbHAobW1tYyxjcmVhdGVfYW5hbHlzaXNfdmlldyxob2xkX2FuYWx5c2lzX3ZpZXdzKSAiTGlzdCBvZiBhbmFseXNpcyB2aWV3cyIgCi1zZXQgaGVscChtbW1jLGNyZWF0ZV9hbmFseXNpc192aWV3LDxhdj4sY29uc3RyYWludF9tb2RlKSAiQ29uc3RyYWludCBtb2RlIgotc2V0IGhlbHAobW1tYyxjcmVhdGVfYW5hbHlzaXNfdmlldyw8YXY+LGRlbGF5X2Nvcm5lcikgIkRlbGF5IGNvcm5lciIKLQotc2V0IGhlbHAobW1tYyxzZXRfYW5hbHlzaXNfdmlldyxhY3RpdmVfc2V0dXBfdmlld3MpICJMaXN0IG9mIGFjdGl2ZSBzZXR1cCB2aWV3cyIKLXNldCBoZWxwKG1tbWMsc2V0X2FuYWx5c2lzX3ZpZXcsYWN0aXZlX2hvbGRfdmlld3MpICJMaXN0IG9mIGFjdGl2ZSBob2xkIHZpZXdzIgotc2V0IGhlbHAobW1tYyxzZXRfYW5hbHlzaXNfdmlldyw8c3RlcD4sYWN0aXZlX3NldHVwX3ZpZXdzKSAiTGlzdCBvZiBhY3RpdmUgc2V0dXAgdmlld3MgcGVyIHN0ZXAiCi1zZXQgaGVscChtbW1jLHNldF9hbmFseXNpc192aWV3LDxzdGVwPixhY3RpdmVfaG9sZF92aWV3cykgIkxpc3Qgb2YgYWN0aXZlIGhvbGQgdmlld3MgcGVyIHN0ZXAiCi0KLXNldCBoZWxwKG1tbWMsc2V0X2FuYWx5c2lzX3ZpZXcsZGVmYXVsdF9zZXR1cF92aWV3KSAiRGVmYXVsdCBzZXR1cCB2aWV3Igotc2V0IGhlbHAobW1tYyxzZXRfYW5hbHlzaXNfdmlldyxkZWZhdWx0X2hvbGRfdmlldykgIkRlZmF1bHQgaG9sZCB2aWV3IgotCi0jIFN5bnRoZXNpcwotc2V0IGhlbHAoc3ludGgsc2V0X2F0dHJpYnV0ZSxlbmFibGVfcGFtKSAidHJ1ZSBGQUxTRSIKLXNldCBoZWxwKHN5bnRoLHJlYWRfaGRsLHN5bl9sb2FkX3J0bF90Y2wpICJGaWxlIHRvIGxvYWQvZWxhYm9yYXRlIFJUTCIKLXNldCBoZWxwKHN5bnRoLHJlYWRfaGRsLGhkbF9zZWFyY2hfcGF0aCkgIlZlcmlsb2cgUlRMIHNlYXJjaCBwYXRoIgotc2V0IGhlbHAoc3ludGgscmVhZF9oZGwsaGRsX2ZpbGVfbGlzdCkgIlZlcmlsb2cgUlRMIGZpbGVzIgotc2V0IGhlbHAoc3ludGgscmVhZF9zZGMsY29uc3RyYWludF9tb2RlcykgIkxpc3Qgb2YgY29uc3RyYWludCBtb2RlcyAoZGVmYXVsdCB3aWxsIGJlIHVzZWQpIgotc2V0IGhlbHAoc3ludGgscmVhZF9zZGMsPGNtPixwcmVfY3RzX3NkYykgIkxpc3Qgb2YgU0RDIGZpbGVzIgotc2V0IGhlbHAoc3ludGgscmVhZF9kZWYsZGVmX2ZpbGVzKSAiTGlzdCBvZiBkZWYgZmlsZXMiCi1zZXQgaGVscChzeW50aCxzZXRfYXR0cmlidXRlLGNsb2NrX2dhdGVfY2VsbHMpICJMaXN0IG9mIElDRyBjZWxscyIKLXNldCBoZWxwKHN5bnRoLHNldF9hdHRyaWJ1dGUscG9zdGxvYWRfc3luX3BsYWNlX3RjbCkgIlJDUCBwcmUtcGxhY2UgcGx1Zy1pbiIKLXNldCBoZWxwKHN5bnRoLHNldF9hdHRyaWJ1dGUscHJlZXhwb3J0X3N5bl9wbGFjZV90Y2wpICJSQ1AgcG9zdC1wbGFjZSBwbHVnLWluIgotc2V0IGhlbHAoc3ludGgsc2V0X2F0dHJpYnV0ZSxwcmVhbm5vdGF0aW9uX3N5bl9wbGFjZV90Y2wpICJSQ1AgcHJlLWltcG9ydCBwbHVnLWluIgotIyBEZXNpZ24gSW5pdGlhbGl6YXRpb24KLXNldCBoZWxwKGluaXQsaW5pdF9kZXNpZ24sbmV0bGlzdCkgIk5ldGxpc3QgZmlsZXMiCi1zZXQgaGVscChpbml0LGluaXRfZGVzaWduLG5ldGxpc3RfdHlwZSkgIlZFUklMT0cgdmhkbCIKLXNldCBoZWxwKGluaXQsaW5pdF9kZXNpZ24sZGVzaWduKSAiRGVzaWduIG5hbWUiCi1zZXQgaGVscChpbml0LGRlZl9pbixkZWZfZmlsZXMpICJMaXN0IG9mIGRlZiBmaWxlcyIKLXNldCBoZWxwKGluaXQsaW5pdF9kZXNpZ24sb2FfZGVzaWduX2xpYikgIlN0YXJ0aW5nIE9BIGRlc2lnbiBsaWJyYXJ5Igotc2V0IGhlbHAoaW5pdCxpbml0X2Rlc2lnbixvYV9kZXNpZ25fY2VsbCkgIlN0YXJ0aW5nIE9BIGRlc2lnbiBjZWxsIgotc2V0IGhlbHAoaW5pdCxpbml0X2Rlc2lnbixvYV9kZXNpZ25fdmlldykgICJTdGFydGluZyBPQSBkZXNpZ24gdmlldyIKLXNldCBoZWxwKGluaXQsc3BlY2lmeV9pbG0saWxtX2xpc3QpICJMaXN0IG9mIElMTXMiCi1zZXQgaGVscChpbml0LHNwZWNpZnlfaWxtLDxpbG0+LGlsbV9kaXIpICJJTE0gZGlyZWN0b3J5IGZvciA8aWxtPiIKLXNldCBoZWxwKGluaXQsc3BlY2lmeV9pbG0sPGlsbT4sbGVmX2ZpbGUpICJMRUYgZmlsZSBmb3IgPGlsbT4iCi1zZXQgaGVscChpbml0LHNwZWNpZnlfaWxtLDxpbG0+LHNldHVwX2xpYikgIkJsYWNrYm94IExJQiBmaWxlIGZvciA8aWxtPiIKLXNldCBoZWxwKGluaXQsbm9uZSxlbmFibGVfZmxleGlsbSkgIkVuYWJsZSB0aGUgZmxleElsbSBoaWVyYXJjaGljYWwgZmxvdyIKLXNldCBoZWxwKGluaXQsc2V0X2Rlc2lnbl9tb2RlLHByb2Nlc3MpICJQcm9jZXNzIG5vZGUgKDQ1bm1zLCBlLmcuKSIKLXNldCBoZWxwKGluaXQsc2V0X21heF9yb3V0ZV9sYXllcixtYXhfcm91dGVfbGF5ZXIpICJJbnRlZ2VyIgotc2V0IGhlbHAoaW5pdCxnZW5lcmF0ZV90cmFja3MsZ2VuZXJhdGVfdHJhY2tzKSAidHJ1ZSBGQUxTRSIKLXNldCBoZWxwKGluaXQsZ2VuZXJhdGVfdHJhY2tzLGhvbm9yX3BpdGNoKSAidHJ1ZSBGQUxTRSIKLXNldCBoZWxwKGluaXQsaW5pdF9kZXNpZ24sYXNzaWduX2J1ZmZlcikgIjEgLWJ1ZmZlciA8YnVmZmVyPiIKLSNzZXQgaGVscChpbml0LGluaXRfZGVzaWduLGFzc2lnbl9idWZmZXJfY2VsbCkgIjxidWZmZXI+Igotc2V0IGhlbHAoaW5pdCxzZXRfZG9udF91c2UsYWx3YXlzX29uX2J1ZmZlcnMpICJMaXN0IG9mIEFPTiBidWZmZXJzIgotc2V0IGhlbHAoaW5pdCxzZXRfZG9udF91c2UsZGVsYXlfY2VsbHMpICJMaXN0IG9mIGRlbGF5IGNlbGxzIgotc2V0IGhlbHAoaW5pdCxzZXRfZG9udF91c2UsZG9udF91c2VfbGlzdCkgIkxpc3Qgb2YgZG9udCB1c2UgY2VsbHMiCi1zZXQgaGVscChpbml0LHNldF9kb250X3VzZSxkb250X3VzZV9maWxlKSAiRmlsZSB3L3NldERvbnRVc2UgY29tbWFuZHMiCi1zZXQgaGVscChpbml0LGFkZF9lbmRfY2FwLGVuZGNhcHMpICJFbmRjYXAgY2VsbHMiCi1zZXQgaGVscChpbml0LGFkZF93ZWxsX3RhcCx3ZWxsdGFwcykgIldlbGx0YXAgY2VsbHMiCi1zZXQgaGVscChpbml0LGFkZF93ZWxsX3RhcCx3ZWxsdGFwcyxjZWxsX2ludGVydmFsKSAiRmxvYXQ6IChpbnRlcnZhbCkgZGlzdGFuY2UgaW4gbWljcm9ucyIKLXNldCBoZWxwKGluaXQsYWRkX3dlbGxfdGFwLHdlbGx0YXBzLGNoZWNrZXJib2FyZCkgInRydWUgRkFMU0UiCi0KLSMgSUxNIFJlbGF0ZWQKLXNldCBoZWxwKGlsbSxzcGVjaWZ5X2lsbSxpbG1fbGlzdCkgIkxpc3Qgb2YgSUxNcyIKLXNldCBoZWxwKGlsbSxzcGVjaWZ5X2lsbSw8aWxtPixpbG1fZGlyKSAiSUxNIGRpcmVjdG9yeSBmb3IgPGlsbT4iCi1zZXQgaGVscChpbG0sc3BlY2lmeV9pbG0sPGlsbT4sbGVmX2ZpbGUpICJMRUYgZmlsZSBmb3IgPGlsbT4iCi1zZXQgaGVscChpbG0sc3BlY2lmeV9pbG0sPGlsbT4sc2V0dXBfbGliKSAiQmxhY2tib3ggTElCIGZpbGUgZm9yIDxpbG0+Igotc2V0IGhlbHAoaWxtLHVwZGF0ZV9jb25zdHJhaW50X21vZGUsPGNtPixpbG1fbm9uX3NkY19maWxlKSAiTGlzdCBvZiBJTE0gY29uc3RyYWludHMiCi1zZXQgaGVscChpbG0sbm9uZSxlbmFibGVfZmxleGlsbSkgIkVuYWJsZSB0aGUgZmxleElsbSBoaWVyYXJjaGljYWwgZmxvdyIKLQotIyBQbGFjZQotc2V0IGhlbHAocGxhY2Usc2V0X3BsYWNlX21vZGUscGxhY2VfaW9fcGlucykgInRydWUgRkFMU0UiCi1zZXQgaGVscChwbGFjZSxzZXRfcGxhY2VfbW9kZSxjbG9ja19nYXRlX2F3YXJlKSAidHJ1ZSBGQUxTRSIKLXNldCBoZWxwKHBsYWNlLHNldF9wbGFjZV9tb2RlLGNsb2NrX2dhdGVfY2xvbmUpICJ0cnVlIEZBTFNFIgotc2V0IGhlbHAocGxhY2Usc2V0X3BsYWNlX21vZGUsY29uZ2VzdGlvbl9lZmZvcnQpICJsb3cgbWVkaXVtIGhpZ2ggQVVUTyIKLXNldCBoZWxwKHBsYWNlLHNwZWNpZnlfc3BhcmVfZ2F0ZSxzcGFyZV9jZWxscykgIkxpc3Qgb2Ygc3BhcmUgbW9kdWxlcyIKLXNldCBoZWxwKHBsYWNlLHBsYWNlX2p0YWcsanRhZ19jZWxscykgIkxpc3Qgb2YganRhZyBtb2R1bGVzIgotc2V0IGhlbHAocGxhY2UscGxhY2VfanRhZyxqdGFnX3Jvd3MpICJMaXN0IG9mIHJvd3MgdG8gcmVzZXJ2ZSBmb3IganRhZyBwbGFjZW1lbnQiCi1zZXQgaGVscChwbGFjZSxzZXRfZmlsbGVyX21vZGUsZmlsbGVyX2NlbGxzKSAiTGlzdCBvZiBmaWxsZXIgY2VsbHMiCi1zZXQgaGVscChwbGFjZSxzZXRfdXNlZnVsX3NrZXdfbW9kZSxza2V3X2J1ZmZlcnMpICJMaXN0IG9mIGJ1ZmZlcnMgZm9yIHVzZWZ1bCBza2V3Igotc2V0IGhlbHAocGxhY2Usc2V0X3RpZV9oaWxvX21vZGUsdGllX2NlbGxzKSAiTGlzdCBvZiB0aWUgY2VsbHMiCi1zZXQgaGVscChwbGFjZSxzZXRfdGllX2hpbG9fbW9kZSx0aWVfY2VsbHMsbWF4X2Rpc3RhbmNlKSAiRmxvYXQ6IGRpc3RhbmNlIGluIG1pY3JvbnMiCi1zZXQgaGVscChwbGFjZSxzZXRfdGllX2hpbG9fbW9kZSx0aWVfY2VsbHMsbWF4X2Zhbm91dCkgIkludGVyZ2VyOiBmYW5vdXQgbnVtYmVyIgotc2V0IGhlbHAocGxhY2Usc2V0X2Rlc2lnbl9tb2RlLGZsb3dfZWZmb3J0KSAiZXhwcmVzcyBTVEFOREFSRCBleHRyZW1lIgotc2V0IGhlbHAocGxhY2Usc2V0X2Rlc2lnbl9tb2RlLHBvd2VyX2VmZm9ydCkgInRydWUgRkFMU0UiCi0KLSMgUG93ZXIKLXNldCBoZWxwKG1tbWMsbm9uZSxjcGZfdGltaW5nKSAidHJ1ZSBGQUxTRSIKLQotc2V0IGhlbHAocG93ZXIscmVhZF9hY3Rpdml0eV9maWxlLGFjdGl2aXR5X2ZpbGUpICJGaWxlIG5hbWUiCi1zZXQgaGVscChwb3dlcixyZWFkX2FjdGl2aXR5X2ZpbGUsYWN0aXZpdHlfZmlsZV9mb3JtYXQpICJUQ0YgVkNEIFNBSUYiCi1zZXQgaGVscChwb3dlcixzZXRfcG93ZXJfYW5hbHlzaXNfdmlldyxwb3dlcl9hbmFseXNpc192aWV3KSAiQW5hbHlzaXMgdmlldyBmb3IgcG93ZXIgYW5hbHlzaXMiCi1zZXQgaGVscChwb3dlcixub25lLHBvd2VyX2RvbWFpbnMpICJMaXN0IG9mIHBvd2VyIGRvbWFpbnMiCi1zZXQgaGVscChwb3dlcixzZXRfZGVzaWduX21vZGUsZmxvd19lZmZvcnQpICJleHByZXNzIFNUQU5EQVJEIGV4dHJlbWUiCi1zZXQgaGVscChwb3dlcixzZXRfZGVzaWduX21vZGUscG93ZXJfZWZmb3J0KSAidHJ1ZSBGQUxTRSIKLQotc2V0IGhlbHAocG93ZXIsbG9hZF9jcGYsY3BmX2ZpbGUpICJGaWxlIG5hbWUiIAotc2V0IGhlbHAocG93ZXIsbG9hZF9jcGYsY3BmX2lzb2xhdGlvbikgIlRSVUUgb3IgZmFsc2UgKENvbW1pdCBpc29sYXRpb24gcnVsZXM/KSIKLXNldCBoZWxwKHBvd2VyLGxvYWRfY3BmLGNwZl9rZWVwX3Jvd3MpICJUUlVFIG9yIGZhbHNlIChLZWVwIHJvd3M/KSIKLXNldCBoZWxwKHBvd2VyLGxvYWRfY3BmLGNwZl9sZXZlbF9zaGlmdGVyKSAiVFJVRSBvciBmYWxzZSAoQ29tbWl0IGxldmVsIHNoaWZ0ZXIgcnVsZXM/KSIKLXNldCBoZWxwKHBvd2VyLGxvYWRfY3BmLGNwZl9wb3dlcl9kb21haW4pICJUUlVFIG9yIGZhbHNlIChDb21taXQgcG93ZXIgZG9tYWlucz8pIgotc2V0IGhlbHAocG93ZXIsbG9hZF9jcGYsY3BmX3Bvd2VyX3N3aXRjaCkgIlRSVUUgb2YgZmFsc2UgKENvbW1pdCBwb3dlciBzd2l0Y2ggcnVsZXM/KSIKLXNldCBoZWxwKHBvd2VyLGxvYWRfY3BmLGNwZl9zdGF0ZV9yZXRlbnRpb24pICJUUlVFIG9yIGZhbHNlIChDb21taXQgc3RhdGUgcmV0ZW50aW9uIHJ1bGVzPykiCi1zZXQgaGVscChwb3dlcixsb2FkX2llZWUxODAxLGllZWUxODAxX2ZpbGUpICJGaWxlIG5hbWUiIAotc2V0IGhlbHAocG93ZXIsbG9hZF9pZWVlMTgwMSxpZWVlMTgwMV9pc29sYXRpb24pICJUUlVFIG9yIGZhbHNlIChDb21taXQgaXNvbGF0aW9uIHJ1bGVzPykiCi1zZXQgaGVscChwb3dlcixsb2FkX2llZWUxODAxLGllZWUxODAxX2tlZXBfcm93cykgIlRSVUUgb3IgZmFsc2UgKEtlZXAgcm93cz8pIgotc2V0IGhlbHAocG93ZXIsbG9hZF9pZWVlMTgwMSxpZWVlMTgwMV9sZXZlbF9zaGlmdGVyKSAiVFJVRSBvciBmYWxzZSAoQ29tbWl0IGxldmVsIHNoaWZ0ZXIgcnVsZXM/KSIKLXNldCBoZWxwKHBvd2VyLGxvYWRfaWVlZTE4MDEsaWVlZTE4MDFfcG93ZXJfZG9tYWluKSAiVFJVRSBvciBmYWxzZSAoQ29tbWl0IHBvd2VyIGRvbWFpbnM/KSIKLXNldCBoZWxwKHBvd2VyLGxvYWRfaWVlZTE4MDEsaWVlZTE4MDFfcG93ZXJfc3dpdGNoKSAiVFJVRSBvZiBmYWxzZSAoQ29tbWl0IHBvd2VyIHN3aXRjaCBydWxlcz8pIgotc2V0IGhlbHAocG93ZXIsbG9hZF9pZWVlMTgwMSxpZWVlMTgwMV9zdGF0ZV9yZXRlbnRpb24pICJUUlVFIG9yIGZhbHNlIChDb21taXQgc3RhdGUgcmV0ZW50aW9uIHJ1bGVzPykiCi0KLXNldCBoZWxwKHBvd2VyLGdsb2JhbF9uZXRfY29ubmVjdCxwb3dlcl9uZXRzKSAiTGlzdCBvZiBwb3dlciBuZXRzIgotc2V0IGhlbHAocG93ZXIsZ2xvYmFsX25ldF9jb25uZWN0LGdyb3VuZF9uZXRzKSAiTGlzdCBvZiBncm91bmQgbmV0cyIKLXNldCBoZWxwKHBvd2VyLGdsb2JhbF9uZXRfY29ubmVjdCxnbG9iYWxfbmV0cykgIkxpc3Qgb2YgZ2xvYmFsIG5ldHMiCi1zZXQgaGVscChwb3dlcixnbG9iYWxfbmV0X2Nvbm5lY3QsPGdsb2JhbF9uZXQ+LG1vZHVsZSkgIk1vZHVsZSBmb3IgZ2xvYmFsIG5ldCIKLXNldCBoZWxwKHBvd2VyLGdsb2JhbF9uZXRfY29ubmVjdCw8Z2xvYmFsX25ldD4scGlucykgIlBvd2VyIHBpbnMgZm9yIGdsb2JhbCBuZXQiCi1zZXQgaGVscChwb3dlcixnbG9iYWxfbmV0X2Nvbm5lY3QsPGdsb2JhbF9uZXQ+LHRpZWhpKSAiVGllaGkgZ2xvYmFsIG5ldCIgCi1zZXQgaGVscChwb3dlcixnbG9iYWxfbmV0X2Nvbm5lY3QsPGdsb2JhbF9uZXQ+LHRpZWxvKSAiVGllbG8gZ2xvYmFsIG5ldCIgCi0KLQotCi0jIENsb2NrCi1zZXQgaGVscChjdHMsY3RzX2VuZ2luZSkgImN0cyBDQ09QVCBjY29wdF9jdHMiCi1zZXQgaGVscChjdHMsY3RzX2ludGVncmF0aW9uKSAibmF0aXZlIHNjcmlwdGVkIgotc2V0IGhlbHAoY3RzLHNwZWNpZnlfY2xvY2tfdHJlZSxjdHNfY2VsbHMpICJMaXN0IG9mIENUUyBjZWxscyIKLXNldCBoZWxwKGN0cyxzZXRfY2NvcHRfbW9kZSxjdHNfYnVmZmVyX2NlbGxzKSAiTGlzdCBvZiBDVFMgYnVmZmVyIGNlbGxzIgotc2V0IGhlbHAoY3RzLHNldF9jY29wdF9tb2RlLGN0c19pbnZlcnRlcl9jZWxscykgIkxpc3Qgb2YgQ1RTIGludmVydGVyIGNlbGxzIgotc2V0IGhlbHAoY3RzLHNldF9jY29wdF9tb2RlLGNsb2NrX2dhdGVfY2VsbHMpICJMaXN0IG9mIENUUyBjbG9jayBnYXRlIGNlbGxzIgotc2V0IGhlbHAoY3RzLHNldF9jY29wdF9tb2RlLGN0c191c2VfaW52ZXJ0ZXJzKSAidHJ1ZSBmYWxzZSIKLXNldCBoZWxwKGN0cyxzZXRfY3RzL2Njb3B0X21vZGUsY2xrX2xlYWZfYm90dG9tX2xheWVyKSAiTGF5ZXIgbnVtYmVyIgotc2V0IGhlbHAoY3RzLHNldF9jdHMvY2NvcHRfbW9kZSxjbGtfbGVhZl90b3BfbGF5ZXIpICJMYXllciBudW1iZXIiCi1zZXQgaGVscChjdHMsc2V0X2N0cy9jY29wdF9tb2RlLGNsa19sZWFmX2V4dHJhX3NwYWNlKSAiSW50ZWdlciAodHJhY2tzKSIKLXNldCBoZWxwKGN0cyxzZXRfY3RzL2Njb3B0X21vZGUsY2xrX2xlYWZfbmRyKSAiVmFsaWQgTkRSIG5hbWUiCi1zZXQgaGVscChjdHMsc2V0X2Njb3B0X21vZGUsY2xrX21heF9za2V3KSAiRmxvYXQgKG5hbm9zZWNvbmRzKSIKLXNldCBoZWxwKGN0cyxzZXRfY2NvcHRfbW9kZSxjbGtfbWF4X3NsZXcpICJGbG9hdCAobmFub3NlY29uZHMpIgotc2V0IGhlbHAoY3RzLHNldF9jdHMvY2NvcHRfbW9kZSxjbGtfdHJlZV9ib3R0b21fbGF5ZXIpICJMYXllciBudW1iZXIiCi1zZXQgaGVscChjdHMsc2V0X2N0cy9jY29wdF9tb2RlLGNsa190cmVlX3RvcF9sYXllcikgIkxheWVyIG51bWJlciIKLXNldCBoZWxwKGN0cyxzZXRfY3RzL2Njb3B0X21vZGUsY2xrX3RyZWVfZXh0cmFfc3BhY2UpICJJbnRlZ2VyICh0cmFja3MpIgotc2V0IGhlbHAoY3RzLHNldF9jdHMvY2NvcHRfbW9kZSxjbGtfdHJlZV9uZHIpICJWYWxpZCBORFIgbmFtZSIKLXNldCBoZWxwKGN0cyxzZXRfY2NvcHRfbW9kZSxjbGtfdHJlZV9zaGllbGRfbmV0KSAiR2xvYmFsIHNoaWVsZCBuZXQiCi1zZXQgaGVscChjdHMsc2V0X2Njb3B0X21vZGUsY2xrX3RyZWVfc2hpZWxkX3RocmVzaCkgIlVudXNlZCBhdCB0aGUgbW9tZW50Igotc2V0IGhlbHAoY3RzLHNldF9jdHMvY2NvcHRfbW9kZSx1cGRhdGVfaW9fbGF0ZW5jeSkgIkFkanVzdCBJTyBsYXRlbmNpZXMiCi1zZXQgaGVscChmbG93LGNjb3B0X2Rlc2lnbixwb3N0Y3RzX3NldHVwX2hvbGQpICJ0cnVlIEZBTFNFIgotc2V0IGhlbHAoY3RzLGNrX2VjbyxjbG9ja19lY28pICJ0cnVlIEZBTFNFIgotc2V0IGhlbHAoY3RzLHNldF9kZXNpZ25fbW9kZSxmbG93X2VmZm9ydCkgImV4cHJlc3MgU1RBTkRBUkQgZXh0cmVtZSIKLXNldCBoZWxwKGN0cyxzZXRfZGVzaWduX21vZGUscG93ZXJfZWZmb3J0KSAidHJ1ZSBGQUxTRSIKLQotIyBPcHQKLXNldCBoZWxwKG9wdCxzZXRfb3B0X21vZGUsYWxsX2VuZF9wb2ludHMpICJ0cnVlIEZBTFNFIgotc2V0IGhlbHAocGxhY2Usc2V0X3BsYWNlX21vZGUsY2xvY2tfZ2F0ZV9hd2FyZV9vcHQpICJ0cnVlIEZBTFNFIgotc2V0IGhlbHAob3B0LHNldF9vcHRfbW9kZSxjcml0aWNhbF9yYW5nZSkgInRydWUgRkFMU0UiCi1zZXQgaGVscChvcHQsc2V0X29wdF9tb2RlLGNvbmdlc3Rpb25fZWZmb3J0KSAibG93IG1lZGl1bSBoaWdoIEFVVE8iCi1zZXQgaGVscChvcHQsc2V0X29wdF9tb2RlLGR5bmFtaWNfcG93ZXJfZWZmb3J0KSAibG93IGhpZ2giCi1zZXQgaGVscChvcHQsc2V0X29wdF9tb2RlLGxlYWthZ2VfcG93ZXJfZWZmb3J0KSAibG93IGhpZ2giCi1zZXQgaGVscChvcHQsc2V0X29wdF9tb2RlLHByZXNlcnZlX2Fzc2VydGlvbnMpICJ0cnVlIEZBTFNFIiAKLXNldCBoZWxwKG9wdCxzZXRfb3B0X21vZGUscmVzaXplX3NoaWZ0ZXJfYW5kX2lzb19pbnN0cykgInRydWUgRkFMU0UiIAotc2V0IGhlbHAob3B0LHNldF9vcHRfbW9kZSxmaXhfaG9sZF9hbGxvd190bnNfZGVncmFkYXRpb24pICJ0cnVlIEZBTFNFIgotc2V0IGhlbHAob3B0LHNldF9vcHRfbW9kZSxmaXhfaG9sZF9pZ25vcmVfaW9zKSAidHJ1ZSBGQUxTRSIKLXNldCBoZWxwKG9wdCxzZXRfb3B0X21vZGUsdXNlZnVsX3NrZXcpICJ0cnVlIEZBTFNFIgotc2V0IGhlbHAob3B0LHNldF9kZXNpZ25fbW9kZSxmbG93X2VmZm9ydCkgImV4cHJlc3MgU1RBTkRBUkQgZXh0cmVtZSIKLXNldCBoZWxwKG9wdCxzZXRfZGVzaWduX21vZGUscG93ZXJfZWZmb3J0KSAidHJ1ZSBGQUxTRSIKLQotIyBIb2xkCi1zZXQgaGVscChmbG93LG5vbmUsZml4X2hvbGQpICJUUlVFIGZhbHNlIgotc2V0IGhlbHAoZmxvdyxjY29wdF9kZXNpZ24scG9zdGN0c19zZXR1cF9ob2xkKSAidHJ1ZSBGQUxTRSIKLXNldCBoZWxwKGZsb3csb3B0X2Rlc2lnbixwb3N0cm91dGVfc2V0dXBfaG9sZCkgIlRSVUUgZmFsc2UiCi1zZXQgaGVscChob2xkLHNldF9vcHRfbW9kZSxmaXhfaG9sZF9hbGxvd190bnNfZGVncmFkYXRpb24pICJ0cnVlIEZBTFNFIgotc2V0IGhlbHAoaG9sZCxzZXRfb3B0X21vZGUsZml4X2hvbGRfaWdub3JlX2lvcykgInRydWUgRkFMU0UiCi1zZXQgaGVscChob2xkLHNldF9hbmFseXNpc192aWV3LGFjdGl2ZV9ob2xkX3ZpZXdzKSAiTGlzdCBvZiBhY3RpdmUgaG9sZCB2aWV3cyIKLXNldCBoZWxwKGhvbGQsc2V0X2FuYWx5c2lzX3ZpZXcsPHN0ZXA+LGFjdGl2ZV9ob2xkX3ZpZXdzKSAiTGlzdCBvZiBhY3RpdmUgaG9sZCB2aWV3cyBwZXIgc3RlcCIKLXNldCBoZWxwKG1tbWMsc2V0X2FuYWx5c2lzX3ZpZXcsZGVmYXVsdF9zZXR1cF92aWV3KSAiRGVmYXVsdCBzZXR1cCB2aWV3Igotc2V0IGhlbHAoaG9sZCxzZXRfYW5hbHlzaXNfdmlldyxkZWZhdWx0X2hvbGRfdmlldykgIkRlZmF1bHQgaG9sZCB2aWV3IgotCi0jIFJvdXRlCi1zZXQgaGVscChyb3V0ZSxzZXRfbmFub3JvdXRlX21vZGUsbXVsdGlfY3V0X2VmZm9ydCkgIk1FRElVTSBoaWdoIgotc2V0IGhlbHAocm91dGUsc2V0X25hbm9yb3V0ZV9tb2RlLGxpdGhvX2RyaXZlbl9yb3V0aW5nKSAidHJ1ZSBGQUxTRSIKLXNldCBoZWxwKHJvdXRlLHNldF9uYW5vcm91dGVfbW9kZSxwb3N0cm91dGVfc3ByZWFkX3dpcmVzKSAidHJ1ZSBGQUxTRSIKLXNldCBoZWxwKHJvdXRlLHNldF9jdHNfbW9kZSxyb3V0ZV9jbG9ja19uZXRzKSAiVFJVRSBmYWxzZSIKLXNldCBoZWxwKHJvdXRlLHNldF9wZ19waW5fdXNlX3NpZ25hbF9yb3V0ZSxzZWNvbmRhcnlfcGcsY2VsbF9waW5fcGFpcnMpICJMaXN0IG9mIGNlbGw6cGluIHBhaXJzIgotc2V0IGhlbHAocm91dGUscm91dGVfcGdfcGluX3VzZV9zaWduYWxfcm91dGUscm91dGVfc2Vjb25kYXJ5X3BnX25ldHMpICJ0cnVlIEZBTFNFIgotc2V0IGhlbHAocm91dGUscm91dGVfcGdfcGluX3VzZV9zaWduYWxfcm91dGUsc2Vjb25kYXJ5X3BnX25ldHMpICJMaXN0IG9mIGdsb2JhbCBuZXRzIGZvciBzZWNvbmRhcnkgcG93ZXIvZ3JvdW5kIgotc2V0IGhlbHAocm91dGUscm91dGVfZGVzaWduLGluX3JvdXRlX29wdCkgIkZBTFNFIHRydWUiCi0KLSMgRXh0cmFjdGlvbgotc2V0IGhlbHAoZXh0cmFjdCxzZXRfZXh0cmFjdF9yY19tb2RlLHBvc3Ryb3V0ZV9leHRyYWN0aW9uX2VmZm9ydCkgIkxPVyBtZWRpdW0gaGlnaCIKLXNldCBoZWxwKGV4dHJhY3Qsc2V0X2V4dHJhY3RfcmNfbW9kZSxzaWdub2ZmX2V4dHJhY3Rpb25fZWZmb3J0KSAibG93IG1lZGl1bSBISUdIIgotc2V0IGhlbHAoZXh0cmFjdCxzZXRfZXh0cmFjdF9yY19tb2RlLGNvdXBsaW5nX2NfdGhyZXNoKSAiRmxvYXQiCi1zZXQgaGVscChleHRyYWN0LHNldF9leHRyYWN0X3JjX21vZGUsdG90YWxfY190aHJlc2gpICJGbG9hdCIKLXNldCBoZWxwKGV4dHJhY3Qsc2V0X2V4dHJhY3RfcmNfbW9kZSxyZWxhdGl2ZV9jX3RocmVzaCkgIkZsb2F0IgotCi0jIERGTQotc2V0IGhlbHAoZGZtLHZlcmlmeV9saXRobyx2ZXJpZnlfbGl0aG8pICJ0cnVlIEZBTFNFIgotc2V0IGhlbHAoZGZtLHZlcmlmeV9saXRobyxscGFfdGVjaF9maWxlKSAiTFBBIHRlY2ggZmlsZSIKLXNldCBoZWxwKGRmbSx0cmltX21ldGFsX2ZpbGwsbWV0YWxmaWxsKSAidHJ1ZSBGQUxTRSIKLXNldCBoZWxwKGRmbSxub25lLG1ldGFsZmlsbF90Y2wpICJNZXRhbGZpbGwgcGx1Zy1pbiIKLXNldCBoZWxwKGRmbSxzdHJlYW1PdXQsZ2RzX2ZpbGVzKSAiR0RTIGZpbGUgbGlzdCIKLXNldCBoZWxwKGRmbSxzdHJlYW1PdXQsZ2RzX2xheWVyX21hcCkgIkdEUyBsYXllciBtYXAiCi1zZXQgaGVscChkZm0sb2FzaXNPdXQsZ2RzX2ZpbGVzKSAiT2FzaXMgZmlsZSBsaXN0Igotc2V0IGhlbHAoZGZtLG9hc2lzT3V0LGdkc19sYXllcl9tYXApICJPYXNpcyBsYXllciBtYXAiCi0KLSMgTm9pc2UKLXNldCBoZWxwKG5vaXNlLHNldF9zaV9tb2RlLHNpX2FuYWx5c2lzX3R5cGUpICJERUZBVUxUIHBlc3NpbWlzdGljIgotc2V0IGhlbHAobm9pc2Usc2V0X3NpX21vZGUsZGVsdGFfZGVsYXlfdGhyZXNob2xkKSAiRmxvYXQgKG5hbm9zZWNvbmRzKSIKLXNldCBoZWxwKG5vaXNlLHNldF9zaV9tb2RlLGFjY2VwdGFibGVfd25zKSAiRmxvYXQgKG5hbm9zZWNvbmRzKSIKLQotIyBEYXRhYmFzZQotc2V0IGhlbHAoZGJzLG5vbmUsZGJzX2RpcikgIkRhdGFiYXNlIGRpcmVjdG9yeSIKLXNldCBoZWxwKGRicyxzYXZlX2Rlc2lnbixkYnNfZm9ybWF0KSAiRkUgb2EiCi1zZXQgaGVscChkYnMsc2F2ZV9kZXNpZ24sb2FfbGF5b3V0X25hbWUpICJPQSBMYXlvdXQgdmlldyBuYW1lIgotc2V0IGhlbHAoZGJzLHNhdmVfZGVzaWduLG9hX2Fic3RyYWN0X25hbWUpICJPQSBBYnN0cmFjdCB2aWV3IG5hbWUiCi1zZXQgaGVscChkYnMsc2F2ZV9kZXNpZ24sc2F2ZV9jb25zdHJhaW50cykgInRydWUgRkFMU0UgKFNhdmUgY29uc3RyYWludHMgd2l0aCBEQlM/KSIKLXNldCBoZWxwKGRicyxzYXZlX2Rlc2lnbixzYXZlX3JjKSAidHJ1ZSBGQUxTRSAoU2F2ZSBSQ0RCIHdpdGggREJTPykiCi0KLSMgUmVwb3J0aW5nCi1zZXQgaGVscChyZXBvcnQsbm9uZSxycHRfZGlyKSAiUmVwb3J0cyBkaXJlY3RvcnkiCi1zZXQgaGVscChyZXBvcnQsbm9uZSxyZXBvcnRfcG93ZXIpICJUUlVFIGZhbHNlIgotc2V0IGhlbHAocmVwb3J0LG5vbmUscmVwb3J0X3J1bl90aW1lKSAiVFJVRSBmYWxzZSIKLXNldCBoZWxwKHJlcG9ydCxub25lLHJlcG9ydF9zeXN0ZW1faW5mbykgInRydWUgRkFMU0UiCi0jc2V0IGhlbHAocmVwb3J0LGZsb3dfc3VtbWFyeSkgCi1zZXQgaGVscChyZXBvcnQsbm9uZSxjYXB0dXJlX21ldHJpY3MpICJ0cnVlIEZBTFNFIgotc2V0IGhlbHAocmVwb3J0LG5vbmUsY2hlY2tfc2V0dXApICJUUlVFIGZhbHNlIgotc2V0IGhlbHAocmVwb3J0LG5vbmUsaHRtbF9zdW1tYXJ5KSAiSFRNTCBzdW1tYXJ5IGZpbGUiCi1zZXQgaGVscChyZXBvcnQsbm9uZSx0aW1lX2luZm9fZGIpICJUaW1lIGluZm8gREIgZmlsZSIKLXNldCBoZWxwKHJlcG9ydCxub25lLHRpbWVfaW5mb19ycHQpICJUaW1lIGluZm8gcmVwb3J0IGZpbGUiCi0KLQotIyBNaXNjCi1zZXQgaGVscChtaXNjLG1haWwsdG8pICJNYWlsIGFkZHJlc3NlcyIKLXNldCBoZWxwKG1pc2MsbWFpbCxzdGVwcykgIkxpc3Qgb2Ygc3RlcHMiCi0KLXNldCBoZWxwKG1pc2Msbm9uZSxwbHVnX2RpcikgIlBsdWctaW4gZGlyZWN0b3J5Igotc2V0IGhlbHAobWlzYyxub25lLHRtcF9kaXIpICJUTVAgZGlyZWN0b3J5Igotc2V0IGhlbHAobWlzYyxub25lLGxvZ19kaXIpICJMT0cgZGlyZWN0b3J5IgotCi1zZXQgaGVscChtaXNjLG5vbmUsdmVyc2lvbikgIklubm92dXMgdmVyc2lvbiIKLXNldCBoZWxwKG1pc2Msbm9uZSx2cGF0aCkgIk1ha2Ugc2VtYXBob3JlIGRpcmVjdG9yeSIKLXNldCBoZWxwKG1pc2Msbm9uZSxwYWNfc2NyYXRjaF9kaXIpICJQQUMgc2NyYXRjaCBkaXJlY3RvcnkgKFBBQ19TQ1JBVENIX0RJUikiCi1zZXQgaGVscChtaXNjLG5vbmUscGFydGl0aW9uX2RpcikgIlBBUlRJVElPTiBkaXJlY3RvcnkiCi0KLXNldCBoZWxwKG1pc2Msbm9uZSxhYnV0dGVkX2Rlc2lnbikgIkFidXR0ZWQgaGllcmFyY2hpY2FsIGRlc2lnbiBmbG93Igotc2V0IGhlbHAobWlzYyxub25lLGluc2VydF9mZWVkdGhyb3VnaCkgIkluc2VydCBmZWVkdGhyb3VnaCBkdXJpbmcgaGllcmFyY2hpY2FsIGZsb3dzIgotc2V0IGhlbHAobWlzYyxzZXRfYnVkZ2V0X21vZGUsYnVkZ2V0X21vZGUpICJUUklBTF9JUE8sIGdpZ2Ffb3B0LCBwc19wbSIKLXNldCBoZWxwKG1pc2Msbm9uZSx1c2VfcHNfcG0pICJVc2UgcHMgcGVyIG1pY3JvbiBkdXJpbmcgaGllcmFyY2hpY2FsIGZsb3dzIgotc2V0IGhlbHAobWlzYyxub25lLGVuYWJsZV9mbGV4aWxtKSAiRW5hYmxlIHRoZSBmbGV4SWxtIGhpZXJhcmNoaWNhbCBmbG93Igotc2V0IGhlbHAobWlzYyxub25lLHVzZV9mbGV4bW9kZWxzKSAiVXNlIGZsZXhNb2RlbHMgZHVyaW5nIGhpZXJhcmNoaWNhbCBmbG93Igotc2V0IGhlbHAobWlzYyxub25lLGZsZXhtb2RlbF9hc19wdG4pICJUcmVhdCBmbGV4TW9kZWxzIGFzIHBhcnRpdGlvbnMiCi1zZXQgaGVscChtaXNjLG5vbmUsZmxleG1vZGVsX2FydF9iYXNlZCkgIlRyZWF0IGZsZXhNb2RlbHMgYXMgQVJUIgotCi1zZXQgaGVscChkaXN0cmlidXRlLHNldF9kaXN0cmlidXRlX2hvc3QsZGlzdHJpYnV0ZSkgIkxPQ0FMIGxzZiByc2ggY3VzdG9tIgotc2V0IGhlbHAoZGlzdHJpYnV0ZSxzZXRfbXVsdGlfY3B1X3VzYWdlLGxvY2FsX2NwdXMpICJMaXN0IG9mIGhvc3RzIgotc2V0IGhlbHAoZGlzdHJpYnV0ZSxzZXRfbXVsdGlfY3B1X3VzYWdlLHJlbW90ZV9ob3N0cykgIkludGVnZXIgKG51bWJlciBvZiBob3N0cykiCi1zZXQgaGVscChkaXN0cmlidXRlLHNldF9tdWx0aV9jcHVfdXNhZ2UsY3B1c19wZXJfcmVtb3RlX2hvc3QpICJJbnRlZ2VyIChudW1iZXIgb2YgY3B1cykiCi1zZXQgaGVscChkaXN0cmlidXRlLHNldF9kaXN0cmlidXRlX2hvc3QsbHNmLHF1ZXVlKSAiTFNGIHF1ZXVlIgotc2V0IGhlbHAoZGlzdHJpYnV0ZSxzZXRfZGlzdHJpYnV0ZV9ob3N0LGxzZixyZXNvdXJjZSkgIkxTRiByZXNvdXJjZXMiCi1zZXQgaGVscChkaXN0cmlidXRlLHNldF9kaXN0cmlidXRlX2hvc3QsbHNmLGFyZ3MpICJMU0YgYXJncyIKLXNldCBoZWxwKGRpc3RyaWJ1dGUsc2V0X2Rpc3RyaWJ1dGVfaG9zdCxyc2gsaG9zdF9saXN0KSAiTGlzdCBvZiBob3N0cyIKLXNldCBoZWxwKGRpc3RyaWJ1dGUsc2V0X2Rpc3RyaWJ1dGVfaG9zdCxjdXN0b20sc2NyaXB0KSAiQ3VzdG9tIGxhdW5jaCBzY3JpcHQiCi0KLXNldCBoZWxwKG1ha2UsbWFrZSxtYWtlX3Rvb2wpICJFbmNvdW50ZXIgZXhlY3V0YWJsZSIKLXNldCBoZWxwKG1ha2UsbWFrZSxtYWtlX3Rvb2xfYXJncykgIkVuY291bnRlciBhcmdzIgotc2V0IGhlbHAobWFrZSxtYWtlLG1ha2Vfc3luX3Rvb2wpICJSQyBleGVjdXRhYmxlIgotc2V0IGhlbHAobWFrZSxtYWtlLG1ha2Vfc3luX3Rvb2xfYXJncykgIlJDIGFyZ3MiCi1zZXQgaGVscChtYWtlLG1ha2UsbWFrZV9icm93c2VyKSAiQnJvd3NlciIKLQotc2V0IGhlbHAoaGllcixjYXRlZ29yaWVzKSBoaWVyCi1zZXQgaGVscChoaWVyLG5vbmUscGFyaXRpdGlvbl9saXN0KSAiTGlzdCBvZiBwYXJ0aXRpb25zIgotc2V0IGhlbHAoaGllcixub25lLGhpZXJfZmxvd190eXBlKSAiMXBhc3MgMnBhc3MiCi1zZXQgaGVscChoaWVyLG5vbmUsYmxhY2tfYm94KSAiVFJVRSBmYWxzZSIKLXNldCBoZWxwKGhpZXIsaW5zZXJ0X3BhcnRpdGlvbl9mZWVkdGhyb3VnaCxpbnNlcnRfZmVlZHRocm91Z2gpICJUUlVFIGZhbHNlIgotc2V0IGhlbHAoaGllcixzZXRfcGxhY2VfbW9kZSxwbGFjZW1lbnRfYmFzZWRfcHRuKSAidHJ1ZSBGQUxTRSIKLXNldCBoZWxwKGhpZXIsY3JlYXRlX3Byb3RvX21vZGVsLHVzZV9mbGV4bW9kZWxzKSAidHJ1ZSBGQUxTRSIKLXNldCBoZWxwKGhpZXIsY3JlYXRlX3BzX3Blcl9taWNyb25fbW9kZWwsdXNlX3Byb3RvX25ldF9kZWxheV9tb2RlbCkgInRydWUgRkFMU0UiCi1zZXQgaGVscChoaWVyLGRlcml2ZV90aW1pbmdfYnVkZ2V0LGJ1ZGdldF9tb2RlKSAidHJpYWxfaXBvIHByb3RvX25ldF9kZWxheV9tb2RlbCBnaWdhX29wdCIKLXNldCBoZWxwKGhpZXIscmVwbGFjZV9wcm90b19tb2RlbCxmbGV4bW9kZWxfYXNfcHRuKSAidHJ1ZSBGQUxTRSIKLXNldCBoZWxwKGhpZXIsY3JlYXRlX3Byb3RvX21vZGVsLGZsZXhtb2RlbF9hcnRfYmFzZWQpICJ0cnVlIEZBTFNFIgotc2V0IGhlbHAoaGllcixzZXRfZGVzaWduX21vZGUsdXNlX25yZ3IpICJ0cnVlIEZBTFNFIgotCmRpZmYgLS1naXQgYS9mbG93L3Buci9FWEFNUExFUy9JTk5PVlVTL0RFU0lHTi9TQ1JJUFRTL0VUQy9JTk5PVlVTL25vdnVzX3VkbS50Y2wgYi9mbG93L3Buci9FWEFNUExFUy9JTk5PVlVTL0RFU0lHTi9TQ1JJUFRTL0VUQy9JTk5PVlVTL25vdnVzX3VkbS50Y2wKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDNkMGFjZmYuLjAwMDAwMDAKLS0tIGEvZmxvdy9wbnIvRVhBTVBMRVMvSU5OT1ZVUy9ERVNJR04vU0NSSVBUUy9FVEMvSU5OT1ZVUy9ub3Z1c191ZG0udGNsCisrKyAvZGV2L251bGwKQEAgLTEsMTY5ICswLDAgQEAKLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSMgICAgICAgICAgICAgICAgICAgICAgIENBREVOQ0UgQ09QWVJJR0hUIE5PVElDRQotIyAgICAgICAgIKkgMjAwOC0yMDEzIENhZGVuY2UgRGVzaWduIFN5c3RlbXMsIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSMKLSMgVGhpcyBGb3VuZGF0aW9uIEZsb3cgaXMgcHJvdmlkZWQgYXMgYW4gZXhhbXBsZSBvZiBob3cgdG8gcGVyZm9ybSBzcGVjaWFsaXplZAotIyB0YXNrcy4KLSMKLSMgVGhpcyB3b3JrIG1heSBub3QgYmUgY29waWVkLCByZS1wdWJsaXNoZWQsIHVwbG9hZGVkLCBvciBkaXN0cmlidXRlZCBpbiBhbnkgd2F5LAotIyBpbiBhbnkgbWVkaXVtLCB3aGV0aGVyIGluIHdob2xlIG9yIGluIHBhcnQsIHdpdGhvdXQgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uCi0jIGZyb20gQ2FkZW5jZS4gTm90d2l0aHN0YW5kaW5nIGFueSByZXN0cmljdGlvbnMgaGVyZWluLCBzdWJqZWN0IHRvIGNvbXBsaWFuY2UKLSMgd2l0aCB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgdGhlIENhZGVuY2Ugc29mdHdhcmUgbGljZW5zZSBhZ3JlZW1lbnQgdW5kZXIKLSMgd2hpY2ggdGhpcyBtYXRlcmlhbCB3YXMgcHJvdmlkZWQsIHRoaXMgbWF0ZXJpYWwgbWF5IGJlIGNvcGllZCBhbmQgaW50ZXJuYWxseQotIyBkaXN0cmlidXRlZCBzb2xlbHkgZm9yIGludGVybmFsIHB1cnBvc2VzIGZvciB1c2Ugd2l0aCBDYWRlbmNlIHRvb2xzLgotIwotIyBUaGlzIHdvcmsgaXMgQ2FkZW5jZSBpbnRlbGxlY3R1YWwgcHJvcGVydHkgYW5kIG1heSB1bmRlciBubyBjaXJjdW1zdGFuY2VzIGJlCi0jIGdpdmVuIHRvIHRoaXJkIHBhcnRpZXMsIG5laXRoZXIgaW4gb3JpZ2luYWwgbm9yIGluIG1vZGlmaWVkIHZlcnNpb25zLCB3aXRob3V0Ci0jIGV4cGxpY2l0IHdyaXR0ZW4gcGVybWlzc2lvbiBmcm9tIENhZGVuY2UuIFRoZSBpbmZvcm1hdGlvbiBjb250YWluZWQgaGVyZWluIGlzCi0jIHRoZSBwcm9wcmlldGFyeSBhbmQgY29uZmlkZW50aWFsIGluZm9ybWF0aW9uIG9mIENhZGVuY2Ugb3IgaXRzIGxpY2Vuc29ycywgYW5kCi0jIGlzIHN1cHBsaWVkIHN1YmplY3QgdG8sIGFuZCBtYXkgYmUgdXNlZCBvbmx5IGJ5IENhZGVuY2UncyBjdXJyZW50IGN1c3RvbWVycwotIyBpbiBhY2NvcmRhbmNlIHdpdGgsIGEgcHJldmlvdXNseSBleGVjdXRlZCBsaWNlbnNlIGFncmVlbWVudCBiZXR3ZWVuIENhZGVuY2UKLSMgYW5kIGl0cyBjdXN0b21lci4KLSMKLSMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSMgVEhJUyBNQVRFUklBTCBJUyBQUk9WSURFRCBCWSBDQURFTkNFICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQKLSMgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YKLSMgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4KLSMgSU4gTk8gRVZFTlQgU0hBTEwgQ0FERU5DRSBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMCi0jIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksCi0jIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUgotIyBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTICBNQVRFUklBTCwgRVZFTiBJRgotIyBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLWlmIHtbaW5mbyBleGlzdHMgdmFycyhuZXRsaXN0KV19IHsKLSAgIHNldCBpbml0KHZlcmlsb2cpICAgICAgICAgICAgICAgICAgJHZhcnMobmV0bGlzdCkKLX0KLWlmIHtbaW5mbyBleGlzdHMgdmFycyhzZXRfdG9wX21vZHVsZSldfSB7Ci0gICBzZXQgaW5pdChkZXNpZ25fc2V0dG9wKSAgICAgICAgICAgICR2YXJzKHNldF90b3BfbW9kdWxlKQotfQotaWYge1tpbmZvIGV4aXN0cyB2YXJzKGRlc2lnbildfSB7Ci0gICBzZXQgaW5pdCh0b3BfY2VsbCkgICAgICAgICAgICAgICAgICR2YXJzKGRlc2lnbikKLSMgICBzZXQgaW5pdCh0b3BjZWxsKSAgICAgICAgICAgICAgICAgICR2YXJzKGRlc2lnbikKLX0KLSNzZXQgaW5pdChuZXRsaXN0X3R5cGUpICAgICAgICAgICAgICAgICR2YXJzKG5ldGxpc3RfdHlwZSkKLWlmIHtbaW5mbyBleGlzdHMgdmFycyhvYV9kZXNpZ25fbGliKV19IHsKLSAgIHNldCBpbml0KG9hX2xpYikgICAgICAgICAgICAgICAgICAgJHZhcnMob2FfZGVzaWduX2xpYikKLX0KLWlmIHtbaW5mbyBleGlzdHMgdmFycyhvYV9kZXNpZ25fY2VsbCldfSB7Ci0gICBzZXQgaW5pdChvYV9jZWxsKSAgICAgICAgICAgICAgICAgICR2YXJzKG9hX2Rlc2lnbl9jZWxsKQotfQotaWYge1tpbmZvIGV4aXN0cyB2YXJzKG9hX2Rlc2lnbl92aWV3KV19IHsKLSAgIHNldCBpbml0KG9hX3ZpZXcpICAgICAgICAgICAgICAgICAgJHZhcnMob2FfZGVzaWduX3ZpZXcpCi19Ci1pZiB7W2luZm8gZXhpc3RzIHZhcnMob2FfcmVmX2xpYildfSB7Ci0gICBzZXQgaW5pdChvYV9yZWZfbGliKSAgICAgICAgICAgICAgICR2YXJzKG9hX3JlZl9saWIpCi19Ci1pZiB7W2luZm8gZXhpc3RzIHZhcnMob2FfYWJzdHJhY3RfbmFtZSldfSB7Ci0gICBzZXQgaW5pdChhYnN0cmFjdF92aWV3KSAgICAgICAgICAgICR2YXJzKG9hX2Fic3RyYWN0X25hbWUpCi19Ci1pZiB7W2luZm8gZXhpc3RzIHZhcnMob2FfYWJzdHJhY3RfdmlldyldfSB7Ci0gICBzZXQgaW5pdChhYnN0cmFjdF92aWV3KSAgICAgICAgICAgICR2YXJzKG9hX2Fic3RyYWN0X3ZpZXcpCi19Ci1pZiB7W2luZm8gZXhpc3RzIHZhcnMob2FfbGF5b3V0X25hbWUpXX0gewotICAgc2V0IGluaXQobGF5b3V0X3ZpZXcpICAgICAgICAgICAgICAkdmFycyhvYV9sYXlvdXRfbmFtZSkKLX0KLWlmIHtbaW5mbyBleGlzdHMgdmFycyhvYV9sYXlvdXRfdmlldyldfSB7Ci0gICBzZXQgaW5pdChsYXlvdXRfdmlldykgICAgICAgICAgICAgICR2YXJzKG9hX2xheW91dF92aWV3KQotfQotaWYge1tpbmZvIGV4aXN0cyB2YXJzKHBvd2VyX25ldHMpXX0gewotICAgc2V0IGluaXQocHdyX25ldCkgICAgICAgICAgICAgICAgICAkdmFycyhwb3dlcl9uZXRzKQotfQotaWYge1tpbmZvIGV4aXN0cyB2YXJzKGdyb3VuZF9uZXRzKV19IHsKLSAgIHNldCBpbml0KGduZF9uZXQpICAgICAgICAgICAgICAgICAgJHZhcnMoZ3JvdW5kX25ldHMpCi19Ci1zZXQgaW5pdChtbW1jX2ZpbGUpICAgICAgICAgICAgICAgICAgICR2YXJzKHNjcmlwdF9kaXIpL3ZpZXdfZGVmaW5pdGlvbi50Y2wKLWlmIHtbaW5mbyBleGlzdHMgdmFycyhjcGZfZmlsZSldfSB7Ci0gICBzZXQgaW5pdChjcGZfZmlsZSkgICAgICAgICAgICAgICAgICR2YXJzKGNwZl9maWxlKQotfQotaWYge1tpbmZvIGV4aXN0cyB2YXJzKGlvX2ZpbGUpXX0gewotICAgc2V0IGluaXQoaW9fZmlsZSkgICAgICAgICAgICAgICAgICAkdmFycyhpb19maWxlKQotfQotaWYge1tpbmZvIGV4aXN0cyB2YXJzKGxlZl9maWxlcyldICYmICR2YXJzKGxlZl9maWxlcykgIT0gIk5PTkUifSB7Ci0gICBzZXQgaW5pdChsZWZfZmlsZSkgICAgICAgICAgICAgICAgICR2YXJzKGxlZl9maWxlcykKLX0KLWlmIHtbaW5mbyBleGlzdHMgdmFycyhjYXBfdW5pdCldfSB7Ci0gICBzZXQgaW5pdChjYXBfdW5pdCkgICAgICAgICAgICAgICAgICR2YXJzKGNhcF91bml0KQotfQotaWYge1tpbmZvIGV4aXN0cyB2YXJzKHRpbWVfdW5pdCldfSB7Ci0gICBzZXQgaW5pdCh0aW1lX3VuaXQpICAgICAgICAgICAgICAgICR2YXJzKHRpbWVfdW5pdCkKLX0KLWlmIHtbbGluZGV4IFtzcGxpdCAkdmFycyh2ZXJzaW9uKSAiLiJdICAwXSA8PSAxNH0gewotICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGFzc2lnbl9idWZmZXIpXX0gewotICAgICAgaWYgeygkdmFycyhhc3NpZ25fYnVmZmVyKSAhPSAxKSAmJiAoW3N0cmluZyB0b2xvd2VyICR2YXJzKGFzc2lnbl9idWZmZXIpXSAhPSAidHJ1ZSIpICYmIFwKLSAgICAgICAgICAoW3N0cmluZyB0b2xvd2VyICR2YXJzKGFzc2lnbl9idWZmZXIpXSAhPSAiZmFsc2UiKSAmJiAoJHZhcnMoYXNzaWduX2J1ZmZlcikgIT0gMCl9IHsKLSAgICAgICAgIGlmIHtbbGxlbmd0aCAkdmFycyhhc3NpZ25fYnVmZmVyKV0gPT0gMX0gewotICAgICAgICAgICAgICAgc2V0IGluaXQoYXNzaWduX2J1ZmZlcikgICAgICAgICAgICAiMSAtYnVmZmVyICR2YXJzKGFzc2lnbl9idWZmZXIpIgotICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHNldCBpbml0KGFzc2lnbl9idWZmZXIpICAgICAgICAgICAgJHZhcnMoYXNzaWduX2J1ZmZlcikKLSAgICAgICAgIH0KLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBzZXQgaW5pdChhc3NpZ25fYnVmZmVyKSAgICAgICAgICAgICR2YXJzKGFzc2lnbl9idWZmZXIpCi0gICAgICB9Ci0gICB9Ci19Ci0KLWlmIHtbaW5mbyBleGlzdHMgdmFycyhidWZfZm9vdHByaW50KV19IHsKLSAgIHNldCBvcHQoYnVmX2Zvb3RwcmludCkgICAgICAgICAgICAgICR2YXJzKGJ1Zl9mb290cHJpbnQpCi19Ci1pZiB7W2luZm8gZXhpc3RzIHZhcnMoaW52X2Zvb3RwcmludCldfSB7Ci0gICBzZXQgb3B0KGludl9mb290cHJpbnQpICAgICAgICAgICAgICAkdmFycyhpbnZfZm9vdHByaW50KQotfQotaWYge1tpbmZvIGV4aXN0cyB2YXJzKGRlbF9mb290cHJpbnQpXX0gewotICAgc2V0IG9wdChkZWxheV9mb290cHJpbnQpICAgICAgICAgICAgJHZhcnMoZGVsX2Zvb3RwcmludCkKLX0KLWlmIHtbaW5mbyBleGlzdHMgdmFycyhjdHNfY2VsbF9mb290cHJpbnQpXX0gewotICAgc2V0IGN0cyhjdHNfY2VsbF9mb290cHJpbnQpICAgICAgICAgJHZhcnMoY3RzX2NlbGxfZm9vdHByaW50KQotfQotaWYge1tpbmZvIGV4aXN0cyB2YXJzKGN0c19jZWxsX2xpc3QpXX0gewotICAgc2V0IGN0cyhjZWxsX2xpc3QpICAgICAgICAgICAgICAgICAgJHZhcnMoY3RzX2NlbGxfbGlzdCkKLX0KLWlmIHtbaW5mbyBleGlzdHMgdmFycyhkZWxheV9saW1pdCldfSB7Ci0gICBzZXQgZGVsYXljYWwoZGVsYXlfbGltaXQpICAgICAgICAgICAgICAgICAkdmFycyhkZWxheV9saW1pdCkKLX0KLWlmIHtbaW5mbyBleGlzdHMgdmFycyhkZWZhdWx0X25ldF9kZWxheSldfSB7Ci0gICBzZXQgZGVsYXljYWwobmV0X2RlbGF5KSAgICAgICAgICAgICAgICAgICAkdmFycyhkZWZhdWx0X25ldF9kZWxheSkKLX0KLWlmIHtbaW5mbyBleGlzdHMgdmFycyhkZWZhdWx0X25ldF9sb2FkKV19IHsKLSAgIHNldCBkZWxheWNhbChuZXRfbG9hZCkgICAgICAgICAgICAgICAgICAgICR2YXJzKGRlZmF1bHRfbmV0X2xvYWQpCi19Ci1pZiB7W2luZm8gZXhpc3RzIHZhcnMoZGVmYXVsdF9zbGV3KV19IHsKLSAgIHNldCBkZWxheWNhbChpbl90cmFuX2RlbGF5KSAgICAgICAgICAgICAgICR2YXJzKGRlZmF1bHRfc2xldykKLX0KLWlmIHtbaW5mbyBleGlzdHMgdmFycyhleGNsdWRlX25ldHMpXX0gewotICAgc2V0IGRlbGF5Y2FsKGV4Y2x1ZGVfbmV0KSAkdmFycyhleGNsdWRlX25ldHMpCi19Ci1pZiB7W2luZm8gZXhpc3RzIHZhcnMoZGVsYXlfbGltaXQpXX0gewotICAgc2V0IGRlbGF5Y2FsKHVzZV9kZWZhdWx0X2RlbGF5X2xpbWl0KSAkdmFycyhkZWxheV9saW1pdCkKLX0KLWlmIHtbaW5mbyBleGlzdHMgdmFycyhkZWZhdWx0X25ldF9kZWxheSldfSB7Ci0gICBzZXQgZGVsYXljYWwoZGVmYXVsdF9uZXRfZGVsYXkpICR2YXJzKGRlZmF1bHRfbmV0X2RlbGF5KQotfQotaWYge1tpbmZvIGV4aXN0cyB2YXJzKGRlZmF1bHRfbmV0X2xvYWQpXX0gewotICAgc2V0IGRlbGF5Y2FsKGRlZmF1bHRfbmV0X2xvYWQpICR2YXJzKGRlZmF1bHRfbmV0X2xvYWQpCi19Ci1pZiB7W2luZm8gZXhpc3RzIHZhcnMoaW5wdXRfdHJhbnNpdGlvbl9kZWxheSldfSB7Ci0gICBzZXQgZGVsYXljYWwoaW5wdXRfdHJhbnNpdGlvbl9kZWxheSkgJHZhcnMoaW5wdXRfdHJhbnNpdGlvbl9kZWxheSkKLX0KLQotaWYge1tpbmZvIGV4aXN0cyB2YXJzKHNocmlua19mYWN0b3IpXX0gewotICAgc2V0IGV4dHJhY3Qoc2hyaW5rX2ZhY3RvcikgJHZhcnMoc2hyaW5rX2ZhY3RvcikKLX0KLQotIyBpbml0X29hX3NlYXJjaF9saWIKLQotIyBjb25mIHZhcmlhYmxlcz8KLSNyZGFfSW5wdXQodWlfaWxtZGlyKQlTcGVjaWZpZXMgdGhlIGRpcmVjdG9yeSBmcm9tIHdoaWNoIHRvIHJlYWQgdGhlIElMTSBmaWxlcy4JCi0jcmRhX0lucHV0KHVpX2ZtZGlyKQlTcGVjaWZpZWQgdGhlIGZsZXggbW9kZWwgZGlyCQotI3JkYV9JbnB1dCh1aV9jb25mX29hX29hMmxlZnZlcnNpb24pCUZvciBuYXRpdmUgb2EybGVmIHRyYW5zbGF0b3IuCQotI2tlZXBfZmlsZXMJa2VlcHMgdGVtcCBmaWxlcwkKLSNSVEwgQ29tcGlsZXIgUmVsYXRlZCAoaW4gdXNlKQkJCi0jc2V0IHJkYV9JbnB1dCh1aV9uZXRsaXN0dHlwZSkge1JUTH0JCQotI3JkYV9JbnB1dCh1aV9ydGxfdmVyaWxvZ19saXN0KSAJCQotI3NldCByZGFfSW5wdXQodWlfcnRsX3Zlcmlsb2dfdmVyc2lvbikJCQotI3NldCByZGFfSW5wdXQodWlfcnRsX3Zlcmlsb2dfY2FzZSkge29yaWd9CQkKLSNzZXQgcmRhX0lucHV0KHVpX3J0bF92aGRsX2xpc3QpIHt9CQkKLSNzZXQgcmRhX0lucHV0KHVpX3J0bF92aGRsX3ZlcnNpb24pCQkKLSNzZXQgcmRhX0lucHV0KHVpX3J0bF92aGRsX2Nhc2UpIHtvcmlnfQkJCi0jcmRhX0lucHV0KHVpX3J0bGxpc3QpCQkKLSNyZGFfSW5wdXQodWlfcnRsX3BhdGgpCQkKZGlmZiAtLWdpdCBhL2Zsb3cvcG5yL0VYQU1QTEVTL0lOTk9WVVMvREVTSUdOL1NDUklQVFMvRVRDL0lOTk9WVVMvb3ZlcmxheS50Y2wgYi9mbG93L3Buci9FWEFNUExFUy9JTk5PVlVTL0RFU0lHTi9TQ1JJUFRTL0VUQy9JTk5PVlVTL292ZXJsYXkudGNsCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDc1NQppbmRleCA4YzBjYTc3Li4wMDAwMDAwCi0tLSBhL2Zsb3cvcG5yL0VYQU1QTEVTL0lOTk9WVVMvREVTSUdOL1NDUklQVFMvRVRDL0lOTk9WVVMvb3ZlcmxheS50Y2wKKysrIC9kZXYvbnVsbApAQCAtMSw1MDYgKzAsMCBAQAotICAgcHJvYyBjcmVhdGVfcmNfY29ybmVyIHthcmdzfSB7Ci0gICAgICBnbG9iYWwgdmFycwotCi0gICAgICBmZl9tYXA6OnNlZWRfb3B0aW9ucyAiY3JlYXRlX3JjX2Nvcm5lciAkYXJncyIKLSAgIH0KLSAgIAotICAgcHJvYyBjcmVhdGVfbGlicmFyeV9zZXQge2FyZ3N9IHsKLSAgICAgIGdsb2JhbCB2YXJzCi0KLSAgICAgZmZfbWFwOjpzZWVkX29wdGlvbnMgImNyZWF0ZV9saWJyYXJ5X3NldCAkYXJncyIKLSAgIH0gCi0gICAKLSAgIHByb2MgY3JlYXRlX3RpbWluZ19jb25kaXRpb24ge2FyZ3N9IHsKLSAgICAgIGdsb2JhbCB2YXJzCi0KLSAgICAgIGZmX21hcDo6c2VlZF9vcHRpb25zICJjcmVhdGVfdGltaW5nX2NvbmRpdGlvbiAkYXJncyIKLSAgIH0KLSAgIAotICAgcHJvYyBjcmVhdGVfZGVsYXlfY29ybmVyIHthcmdzfSB7Ci0gICAgICBnbG9iYWwgdmFycwotCi0gICAgICBmZl9tYXA6OnNlZWRfb3B0aW9ucyAiY3JlYXRlX2RlbGF5X2Nvcm5lciAkYXJncyIKLSAgIH0KLSAgIAotICAgcHJvYyB1cGRhdGVfZGVsYXlfY29ybmVyIHthcmdzfSB7Ci0gICAgICBnbG9iYWwgdmFycwotCi0gICAgICBmZl9tYXA6OnNlZWRfb3B0aW9ucyAidXBkYXRlX2RlbGF5X2Nvcm5lciAkYXJncyIKLSAgIH0KLSAgIAotICAgcHJvYyBjcmVhdGVfY29uc3RyYWludF9tb2RlIHthcmdzfSB7Ci0gICAgICBnbG9iYWwgdmFycwotCi0gICAgICBmZl9tYXA6OnNlZWRfb3B0aW9ucyAiY3JlYXRlX2NvbnN0cmFpbnRfbW9kZSAkYXJncyIKLSAgIH0KLSAgIAotICAgcHJvYyBjcmVhdGVfYW5hbHlzaXNfdmlldyB7YXJnc30gewotICAgICAgZ2xvYmFsIHZhcnMKLQotICAgICAgZmZfbWFwOjpzZWVkX29wdGlvbnMgImNyZWF0ZV9hbmFseXNpc192aWV3ICRhcmdzIgotICAgfQotICAgCi0gICBwcm9jIHNldF9hbmFseXNpc192aWV3IHthcmdzfSB7Ci0gICAgICBnbG9iYWwgdmFycwotCi0gICAgICBmZl9tYXA6OnNlZWRfb3B0aW9ucyAic2V0X2FuYWx5c2lzX3ZpZXcgJGFyZ3MiCi0gICB9Ci0gICAKLSAgIHByb2MgYWxsX2FuYWx5c2lzX3ZpZXdzIHt9IHsKLSAgICAgIHJldHVybiAiIgotICAgfQotICAgCi0gICBwcm9jIHNldF9wb3dlcl9hbmFseXNpc192aWV3IHthcmdzfSB7Ci0gICAgICBnbG9iYWwgdmFycwotCi0gICAgICBmZl9tYXA6OnNlZWRfb3B0aW9ucyAic2V0X3Bvd2VyX2FuYWx5c2lzX3ZpZXcgJGFyZ3MiCi0gICB9Ci0gICAKLW5hbWVzcGFjZSBldmFsIGZmX21hcCB7Ci0KLSAgIHByb2Mgc2VlZF9vcHRpb25zIHtjb21tYW5kX3N0cmluZ30gewotCi0gICAgICBnbG9iYWwgdmFycwotCi0gICAgICBzZXQgY29tbWFuZCBbbGluZGV4ICRjb21tYW5kX3N0cmluZyAwXQotICAgICAgc2V0IGFyZ3MgW2xyZXBsYWNlICRjb21tYW5kX3N0cmluZyAwIDBdCi0KLSAgICAgIHN3aXRjaCAkY29tbWFuZCB7Ci0gICAgICAgICBzZXRNdWx0aUNwdVVzYWdlIHsKLSAgICAgICAgICAgIHdoaWxlIHtbbGxlbmd0aCAkYXJnc10gPiAwfSB7Ci0gICAgICAgICAgICAgICBzZXQgb3B0aW9uIFtsaW5kZXggJGFyZ3MgMF0KLSAgICAgICAgICAgICAgIHNldCBhcmdzIFtscmVwbGFjZSAkYXJncyAwIDBdCi0gICAgICAgICAgICAgICBzd2l0Y2ggLXJlZ2V4cCAtLSAkb3B0aW9uIHsKLSAgICAgICAgICAgICAgICAgIGxvY2FsQ3B1IHsKLSAgICAgICAgICAgICAgICAgICAgIHNldCB2YXJzKGxvY2FsX2NwdXMpIFtsaW5kZXggJGFyZ3MgMF0KLSAgICAgICAgICAgICAgICAgICAgIHNldCBhcmdzIFtscmVwbGFjZSAkYXJncyAwIDBdCi0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICByZW1vdGVIb3N0cyB7Ci0gICAgICAgICAgICAgICAgICAgICBzZXQgdmFycyhyZW1vdGVfaG9zdHMpIFtsaW5kZXggJGFyZ3MgMF0KLSAgICAgICAgICAgICAgICAgICAgIHNldCBhcmdzIFtscmVwbGFjZSAkYXJncyAwIDBdCi0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICBjcHVQZXJSZW1vdGVIb3N0IHsKLSAgICAgICAgICAgICAgICAgICAgIHNldCB2YXJzKGNwdV9wZXJfcmVtb3RlX2hvc3QpIFtsaW5kZXggJGFyZ3MgMF0KLSAgICAgICAgICAgICAgICAgICAgIHNldCBhcmdzIFtscmVwbGFjZSAkYXJncyAwIDBdCi0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9IAotICAgICAgICAgfQotICAgICAgICAgc2V0RGVzaWduTW9kZSB7Ci0gICAgICAgICAgICB3aGlsZSB7W2xsZW5ndGggJGFyZ3NdID4gMH0gewotICAgICAgICAgICAgICAgc2V0IG9wdGlvbiBbbGluZGV4ICRhcmdzIDBdCi0gICAgICAgICAgICAgICBzZXQgYXJncyBbbHJlcGxhY2UgJGFyZ3MgMCAwXQotICAgICAgICAgICAgICAgc3dpdGNoIC1yZWdleHAgLS0gJG9wdGlvbiB7Ci0gICAgICAgICAgICAgICAgICBwcm9jZXNzIHsKLSAgICAgICAgICAgICAgICAgICAgIHNldCB2YXJzKHByb2Nlc3MpIFtsaW5kZXggJGFyZ3MgMF0KLSAgICAgICAgICAgICAgICAgICAgIHNldCBhcmdzIFtscmVwbGFjZSAkYXJncyAwIDBdCi0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9IAotICAgICAgICAgfQotICAgICAgICAgc2V0RGVsYXlDYWxNb2RlIHsKLSAgICAgICAgICAgIHdoaWxlIHtbbGxlbmd0aCAkYXJnc10gPiAwfSB7Ci0gICAgICAgICAgICAgICBzZXQgb3B0aW9uIFtsaW5kZXggJGFyZ3MgMF0KLSAgICAgICAgICAgICAgIHNldCBhcmdzIFtscmVwbGFjZSAkYXJncyAwIDBdCi0gICAgICAgICAgICAgICBzd2l0Y2ggLXJlZ2V4cCAtLSAkb3B0aW9uIHsKLSAgICAgICAgICAgICAgICAgIGVuZ2luZSB7Ci0gICAgICAgICAgICAgICAgICAgICBpZiB7W3N0cmluZyB0b2xvd2VyIFtsaW5kZXggJGFyZ3MgMF0gPT0gImFhZSJ9IHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHNldCB2YXJzKGVuYWJsZV9zaV9hd2FyZSkgdHJ1ZSAgCi0gICAgICAgICAgICAgICAgICAgICAgICBzZXQgYXJncyBbbHJlcGxhY2UgJGFyZ3MgMCAwXQotICAgICAgICAgICAgICAgICAgICAgfSAKLSAgICAgICAgICAgICAgICAgICAgIGlmIHtbc3RyaW5nIHRvbG93ZXIgW2xpbmRleCAkYXJncyAwXSA9PSAic2lnbmFsc3Rvcm0ifSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBzZXQgdmFycyhlbmFibGVfc3MpIHRydWUgIAotICAgICAgICAgICAgICAgICAgICAgICAgc2V0IGFyZ3MgW2xyZXBsYWNlICRhcmdzIDAgMF0KLSAgICAgICAgICAgICAgICAgICAgIH0gCi0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9IAotICAgICAgICAgfQotICAgICAgICAgc2V0QW5hbHlzaXNNb2RlIHsKLSAgICAgICAgICAgIHdoaWxlIHtbbGxlbmd0aCAkYXJnc10gPiAwfSB7Ci0gICAgICAgICAgICAgICBzZXQgb3B0aW9uIFtsaW5kZXggJGFyZ3MgMF0KLSAgICAgICAgICAgICAgIHNldCBhcmdzIFtscmVwbGFjZSAkYXJncyAwIDBdCi0gICAgICAgICAgICAgICBzd2l0Y2ggLXJlZ2V4cCAtLSAkb3B0aW9uIHsKLSAgICAgICAgICAgICAgICAgIGNwcHIgewotICAgICAgICAgICAgICAgICAgICAgc2V0IHZhcnMoZW5hYmxlX2NwcHIpIFtsaW5kZXggJGFyZ3MgMF0KLSAgICAgICAgICAgICAgICAgICAgIHNldCBhcmdzIFtscmVwbGFjZSAkYXJncyAwIDBdCi0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICBhb2N2IHsKLSAgICAgICAgICAgICAgICAgICAgIHNldCB2YXJzKGVuYWJsZV9hb2N2KSBbbGluZGV4ICRhcmdzIDBdCi0gICAgICAgICAgICAgICAgICAgICBzZXQgYXJncyBbbHJlcGxhY2UgJGFyZ3MgMCAwXQotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgb25DaGlwVmFyaWF0aW9uIHsKLSAgICAgICAgICAgICAgICAgICAgIHNldCB2YXJzKGVuYWJsZV9vY3YpIFtsaW5kZXggJGFyZ3MgMF0KLSAgICAgICAgICAgICAgICAgICAgIHNldCBhcmdzIFtscmVwbGFjZSAkYXJncyAwIDBdCi0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9IAotICAgICAgICAgfQotICAgICAgICAgc2V0UGxhY2VNb2RlIHsKLSAgICAgICAgICAgIHdoaWxlIHtbbGxlbmd0aCAkYXJnc10gPiAwfSB7Ci0gICAgICAgICAgICAgICBzZXQgb3B0aW9uIFtsaW5kZXggJGFyZ3MgMF0KLSAgICAgICAgICAgICAgIHNldCBhcmdzIFtscmVwbGFjZSAkYXJncyAwIDBdCi0gICAgICAgICAgICAgICBzd2l0Y2ggLXJlZ2V4cCAtLSAkb3B0aW9uIHsKLSAgICAgICAgICAgICAgICAgIHBsYWNlSW9QaW5zIHsKLSAgICAgICAgICAgICAgICAgICAgIHNldCB2YXJzKHBsYWNlX2lvX3BpbnMpIFtsaW5kZXggJGFyZ3MgMF0KLSAgICAgICAgICAgICAgICAgICAgIHNldCBhcmdzIFtscmVwbGFjZSAkYXJncyAwIDBdCi0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICBjb25nRWZmb3J0IHsKLSAgICAgICAgICAgICAgICAgICAgIHNldCB2YXJzKGNvbmdlc3Rpb25fZWZmb3J0KSBbbGluZGV4ICRhcmdzIDBdCi0gICAgICAgICAgICAgICAgICAgICBzZXQgYXJncyBbbHJlcGxhY2UgJGFyZ3MgMCAwXQotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfSAKLSAgICAgICAgIH0KLSAgICAgICAgIHNldE9wdE1vZGUgewotICAgICAgICAgICAgd2hpbGUge1tsbGVuZ3RoICRhcmdzXSA+IDB9IHsKLSAgICAgICAgICAgICAgIHNldCBvcHRpb24gW2xpbmRleCAkYXJncyAwXQotICAgICAgICAgICAgICAgc2V0IGFyZ3MgW2xyZXBsYWNlICRhcmdzIDAgMF0KLSAgICAgICAgICAgICAgIHN3aXRjaCAtcmVnZXhwIC0tICRvcHRpb24gewotICAgICAgICAgICAgICAgICAgYWxsRW5kUG9pbnRzIHsKLSAgICAgICAgICAgICAgICAgICAgIHNldCB2YXJzKGFsbF9lbmRfcG9pbnRzKSBbbGluZGV4ICRhcmdzIDBdCi0gICAgICAgICAgICAgICAgICAgICBzZXQgYXJncyBbbHJlcGxhY2UgJGFyZ3MgMCAwXQotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgcHJlc2VydmVBc3NzZXJ0aW9ucyB7Ci0gICAgICAgICAgICAgICAgICAgICBzZXQgdmFycyhwcmVzZXJ2ZV9hc3NlcnRpb25zKSBbbGluZGV4ICRhcmdzIDBdCi0gICAgICAgICAgICAgICAgICAgICBzZXQgYXJncyBbbHJlcGxhY2UgJGFyZ3MgMCAwXQotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgbGVha2FnZVBvd2VyRWZmb3J0IHsKLSAgICAgICAgICAgICAgICAgICAgIHNldCB2YXJzKGxlYWthZ2VfcG93ZXJfZWZmb3J0KSBbbGluZGV4ICRhcmdzIDBdCi0gICAgICAgICAgICAgICAgICAgICBzZXQgYXJncyBbbHJlcGxhY2UgJGFyZ3MgMCAwXQotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgZHluYW1pY1Bvd2VyRWZmb3J0IHsKLSAgICAgICAgICAgICAgICAgICAgIHNldCB2YXJzKGxlYWthZ2VfcG93ZXJfZWZmb3J0KSBbbGluZGV4ICRhcmdzIDBdCi0gICAgICAgICAgICAgICAgICAgICBzZXQgYXJncyBbbHJlcGxhY2UgJGFyZ3MgMCAwXQotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfSAKLSAgICAgICAgIH0KLSAgICAgICAgIHNldENUU01vZGUgewotICAgICAgICAgICAgd2hpbGUge1tsbGVuZ3RoICRhcmdzXSA+IDB9IHsKLSAgICAgICAgICAgICAgIHNldCBvcHRpb24gW2xpbmRleCAkYXJncyAwXQotICAgICAgICAgICAgICAgc2V0IGFyZ3MgW2xyZXBsYWNlICRhcmdzIDAgMF0KLSAgICAgICAgICAgICAgIHN3aXRjaCAtcmVnZXhwIC0tICRvcHRpb24gewotICAgICAgICAgICAgICAgICAgcm91dGVDbGtOZXRzIHsKLSAgICAgICAgICAgICAgICAgICAgIHNldCB2YXJzKHJvdXRlX2Nsb2NrX25ldHMpIFtsaW5kZXggJGFyZ3MgMF0KLSAgICAgICAgICAgICAgICAgICAgIHNldCBhcmdzIFtscmVwbGFjZSAkYXJncyAwIDBdCi0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9IAotICAgICAgICAgfQotICAgICAgICAgc2V0RmlsbGVyTW9kZSB7Ci0gICAgICAgICAgICB3aGlsZSB7W2xsZW5ndGggJGFyZ3NdID4gMH0gewotICAgICAgICAgICAgICAgc2V0IG9wdGlvbiBbbGluZGV4ICRhcmdzIDBdCi0gICAgICAgICAgICAgICBzZXQgYXJncyBbbHJlcGxhY2UgJGFyZ3MgMCAwXQotICAgICAgICAgICAgICAgc3dpdGNoIC1yZWdleHAgLS0gJG9wdGlvbiB7Ci0gICAgICAgICAgICAgICAgICBjb3JlIHsKLSAgICAgICAgICAgICAgICAgICAgIHNldCB2YXJzKGZpbGxlcl9jZWxscykgW2xpbmRleCAkYXJncyAwXQotICAgICAgICAgICAgICAgICAgICAgc2V0IGFyZ3MgW2xyZXBsYWNlICRhcmdzIDAgMF0KLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0gCi0gICAgICAgICB9Ci0gICAgICAgICBzZXROYW5vUm91dGVNb2RlIHsKLSAgICAgICAgICAgIHdoaWxlIHtbbGxlbmd0aCAkYXJnc10gPiAwfSB7Ci0gICAgICAgICAgICAgICBzZXQgb3B0aW9uIFtsaW5kZXggJGFyZ3MgMF0KLSAgICAgICAgICAgICAgIHNldCBhcmdzIFtscmVwbGFjZSAkYXJncyAwIDBdCi0gICAgICAgICAgICAgICBzd2l0Y2ggLXJlZ2V4cCAtLSAkb3B0aW9uIHsKLSAgICAgICAgICAgICAgICAgIGRyb3V0ZU11bHRpQ3V0VmlhRWZmb3J0IHsKLSAgICAgICAgICAgICAgICAgICAgIHNldCB2YXJzKG11bHRpX2N1dF9lZmZvcnQpIFtsaW5kZXggJGFyZ3MgMF0KLSAgICAgICAgICAgICAgICAgICAgIHNldCBhcmdzIFtscmVwbGFjZSAkYXJncyAwIDBdCi0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9IAotICAgICAgICAgfQotICAgICAgICAgY3JlYXRlX3JjX2Nvcm5lciB7Ci0gICAgICAgICAgICB3aGlsZSB7W2xsZW5ndGggJGFyZ3NdID4gMH0gewotICAgICAgICAgICAgICAgc2V0IG9wdGlvbiBbbGluZGV4ICRhcmdzIDBdCi0gICAgICAgICAgICAgICBzZXQgYXJncyBbbHJlcGxhY2UgJGFyZ3MgMCAwXQotICAgICAgICAgICAgICAgc3dpdGNoIC1yZWdleHAgLS0gJG9wdGlvbiB7Ci0gICAgICAgICAgICAgICAgICAtbmFtZSB7Ci0gICAgICAgICAgICAgICAgICAgICBzZXQgcmNfY29ybmVyIFtsaW5kZXggJGFyZ3MgMF0KLSAgICAgICAgICAgICAgICAgICAgIHB1dHMgIjxGRj4gICAgKCBGb3VuZCByYyBjb3JuZXIgJHJjX2Nvcm5lciApIiAKLSAgICAgICAgICAgICAgICAgICAgIGlmIHshW2luZm8gZXhpc3RzIHZhcnMocmNfY29ybmVycyldfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBzZXQgdmFycyhyY19jb3JuZXJzKSBbbGlzdCAkcmNfY29ybmVyXQotICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIHtbbHNlYXJjaCAkdmFycyhyY19jb3JuZXJzKSAkcmNfY29ybmVyXSA9PSAtMX0gewotICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFwcGVuZCB2YXJzKHJjX2Nvcm5lcnMpICRyY19jb3JuZXIKLSAgICAgICAgICAgICAgICAgICAgICAgIH0gIAotICAgICAgICAgICAgICAgICAgICAgfSAgCi0gICAgICAgICAgICAgICAgICAgICBzZXQgYXJncyBbbHJlcGxhY2UgJGFyZ3MgMCAwXQotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgLVQgewotICAgICAgICAgICAgICAgICAgICAgc2V0IHZhcnMoJHJjX2Nvcm5lcixUKSBbbGluZGV4ICRhcmdzIDBdCi0gICAgICAgICAgICAgICAgICAgICBzZXQgYXJncyBbbHJlcGxhY2UgJGFyZ3MgMCAwXQotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgLVRlbXBlcmF0dXJlIHsKLSAgICAgICAgICAgICAgICAgICAgIHNldCB2YXJzKCRyY19jb3JuZXIsVCkgW2xpbmRleCAkYXJncyAwXQotICAgICAgICAgICAgICAgICAgICAgc2V0IGFyZ3MgW2xyZXBsYWNlICRhcmdzIDAgMF0KLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIC1jYXBfdGFibGUgewotICAgICAgICAgICAgICAgICAgICAgc2V0IHZhcnMoJHJjX2Nvcm5lcixjYXBfdGFibGUpIFtsaW5kZXggJGFyZ3MgMF0KLSAgICAgICAgICAgICAgICAgICAgIHNldCBhcmdzIFtscmVwbGFjZSAkYXJncyAwIDBdCi0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAtYXRmX3RhYmxlIHsKLSAgICAgICAgICAgICAgICAgICAgIHNldCB2YXJzKCRyY19jb3JuZXIsYXRmX3RhYmxlKSBbbGluZGV4ICRhcmdzIDBdCi0gICAgICAgICAgICAgICAgICAgICBzZXQgYXJncyBbbHJlcGxhY2UgJGFyZ3MgMCAwXQotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgLXF4X3RlY2hfZmlsZSB7Ci0gICAgICAgICAgICAgICAgICAgICBzZXQgdmFycygkcmNfY29ybmVyLHF4X3RlY2hfZmlsZSkgW2xpbmRleCAkYXJncyAwXQotICAgICAgICAgICAgICAgICAgICAgc2V0IGFyZ3MgW2xyZXBsYWNlICRhcmdzIDAgMF0KLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIC1xcmNfdGVjaCB7Ci0gICAgICAgICAgICAgICAgICAgICBzZXQgdmFycygkcmNfY29ybmVyLHF4X3RlY2hfZmlsZSkgW2xpbmRleCAkYXJncyAwXQotICAgICAgICAgICAgICAgICAgICAgc2V0IGFyZ3MgW2xyZXBsYWNlICRhcmdzIDAgMF0KLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIC1wcmVSb3V0ZV9yZXMgewotICAgICAgICAgICAgICAgICAgICAgIHNldCB2YXJzKCRyY19jb3JuZXIscHJlX3JvdXRlX3Jlc19mYWN0b3IpIFtsaW5kZXggJGFyZ3MgMF0KLSAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAtcHJlUm91dGVfY2FwIHsKLSAgICAgICAgICAgICAgICAgICAgICBzZXQgdmFycygkcmNfY29ybmVyLHByZV9yb3V0ZV9jYXBfZmFjdG9yKSBbbGluZGV4ICRhcmdzIDBdCi0gICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgLXByZVJvdXRlX2Nsa3JlcyB7Ci0gICAgICAgICAgICAgICAgICAgICAgc2V0IHZhcnMoJHJjX2Nvcm5lcixwcmVfcm91dGVfY2xrX3Jlc19mYWN0b3IpIFtsaW5kZXggJGFyZ3MgMF0KLSAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAtcHJlUm91dGVfY2xrY2FwIHsKLSAgICAgICAgICAgICAgICAgICAgICBzZXQgdmFycygkcmNfY29ybmVyLHByZV9yb3V0ZV9jbGtfY2FwX2ZhY3RvcikgW2xpbmRleCAkYXJncyAwXQotICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIC1wb3N0Um91dGVfcmVzIHsKLSAgICAgICAgICAgICAgICAgICAgICBzZXQgdmFycygkcmNfY29ybmVyLHBvc3Rfcm91dGVfcmVzX2ZhY3RvcikgW2xpbmRleCAkYXJncyAwXQotICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIC1wb3N0Um91dGVfY2FwIHsKLSAgICAgICAgICAgICAgICAgICAgICBzZXQgdmFycygkcmNfY29ybmVyLHBvc3Rfcm91dGVfY2FwX2ZhY3RvcikgW2xpbmRleCAkYXJncyAwXQotICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIC1wb3N0Um91dGVfcmVzIHsKLSAgICAgICAgICAgICAgICAgICAgICBzZXQgdmFycygkcmNfY29ybmVyLHBvc3Rfcm91dGVfY2xrX3Jlc19mYWN0b3IpIFtsaW5kZXggJGFyZ3MgMF0KLSAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAtcG9zdFJvdXRlX2Nsa2NhcCB7Ci0gICAgICAgICAgICAgICAgICAgICAgc2V0IHZhcnMoJHJjX2Nvcm5lcixwb3N0X3JvdXRlX2Nsa19jYXBfZmFjdG9yKSBbbGluZGV4ICRhcmdzIDBdCi0gICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgLXBvc3RSb3V0ZV9jbGtyZXMgewotICAgICAgICAgICAgICAgICAgICAgIHNldCB2YXJzKCRyY19jb3JuZXIscG9zdF9yb3V0ZV9jbGtfcmVzX2ZhY3RvcikgW2xpbmRleCAkYXJncyAwXQotICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIC1wb3N0Um91dGVfeGNhcCB7Ci0gICAgICAgICAgICAgICAgICAgICAgc2V0IHZhcnMoJHJjX2Nvcm5lcixwb3N0X3JvdXRlX3hjYXBfZmFjdG9yKSBbbGluZGV4ICRhcmdzIDBdCi0gICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfSAKLSAgICAgICAgIH0KLSAgICAgICAgIGNyZWF0ZV9saWJyYXJ5X3NldCB7Ci0gICAgICAgICAgICB3aGlsZSB7W2xsZW5ndGggJGFyZ3NdID4gMH0gewotICAgICAgICAgICAgICAgc2V0IG9wdGlvbiBbbGluZGV4ICRhcmdzIDBdCi0gICAgICAgICAgICAgICBzZXQgYXJncyBbbHJlcGxhY2UgJGFyZ3MgMCAwXQotICAgICAgICAgICAgICAgc3dpdGNoIC1yZWdleHAgLS0gJG9wdGlvbiB7Ci0gICAgICAgICAgICAgICAgICAtbmFtZSB7Ci0gICAgICAgICAgICAgICAgICAgICBzZXQgbGlicmFyeV9zZXQgW2xpbmRleCAkYXJncyAwXQotICAgICAgICAgICAgICAgICAgICAgcHV0cyAiPEZGPiAgICAoIEZvdW5kIGxpYnJhcnkgc2V0ICRsaWJyYXJ5X3NldCApIiAKLSAgICAgICAgICAgICAgICAgICAgIGlmIHshW2luZm8gZXhpc3RzIHZhcnMobGlicmFyeV9zZXRzKV19IHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHNldCB2YXJzKGxpYnJhcnlfc2V0cykgW2xpc3QgJGxpYnJhcnlfc2V0XQotICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIHtbbHNlYXJjaCAkdmFycyhsaWJyYXJ5X3NldHMpICRsaWJyYXJ5X3NldF0gPT0gLTF9IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhcHBlbmQgdmFycyhsaWJyYXJ5X3NldHMpICRsaWJyYXJ5X3NldAotICAgICAgICAgICAgICAgICAgICAgICAgfSAgCi0gICAgICAgICAgICAgICAgICAgICB9ICAKLSAgICAgICAgICAgICAgICAgICAgIHNldCBhcmdzIFtscmVwbGFjZSAkYXJncyAwIDBdCi0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAtdGltaW5nIHsKLSAgICAgICAgICAgICAgICAgICAgIHNldCB2YXJzKCRsaWJyYXJ5X3NldCx0aW1pbmcpIFtsaW5kZXggJGFyZ3MgMF0KLSAgICAgICAgICAgICAgICAgICAgIHNldCBhcmdzIFtscmVwbGFjZSAkYXJncyAwIDBdCi0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9IAotICAgICAgICAgfQotICAgICAgICAgY3JlYXRlX3RpbWluZ19jb25kaXRpb24gewotICAgICAgICAgICAgd2hpbGUge1tsbGVuZ3RoICRhcmdzXSA+IDB9IHsKLSAgICAgICAgICAgICAgIHNldCBvcHRpb24gW2xpbmRleCAkYXJncyAwXQotICAgICAgICAgICAgICAgc2V0IGFyZ3MgW2xyZXBsYWNlICRhcmdzIDAgMF0KLSAgICAgICAgICAgICAgIHN3aXRjaCAtcmVnZXhwIC0tICRvcHRpb24gewotICAgICAgICAgICAgICAgICAgLW5hbWUgewotICAgICAgICAgICAgICAgICAgICAgc2V0IHRpbWluZ19jb25kaXRpb24gW2xpbmRleCAkYXJncyAwXQotICAgICAgICAgICAgICAgICAgICAgcHV0cyAiPEZGPiAgICAoIEZvdW5kIHRpbWluZyBjb25kaXRpb24gJHRpbWluZ19jb25kaXRpb24gKSIgCi0gICAgICAgICAgICAgICAgICAgICBpZiB7IVtpbmZvIGV4aXN0cyB2YXJzKHRpbWluZ19jb25kaXRpb25zKV19IHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHNldCB2YXJzKHRpbWluZ19jb25kaXRpb25zKSAkdGltaW5nX2NvbmRpdGlvbgotICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIHtbbHNlYXJjaCAkdmFycyh0aW1pbmdfY29uZGl0aW9ucykgJHRpbWluZ19jb25kaXRpb25dID09IC0xfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICBsYXBwZW5kIHZhcnModGltaW5nX2NvbmRpdGlvbnMpIFtsaXN0ICR0aW1pbmdfY29uZGl0aW9uXQotICAgICAgICAgICAgICAgICAgICAgICAgfSAgCi0gICAgICAgICAgICAgICAgICAgICB9ICAKLSAgICAgICAgICAgICAgICAgICAgIHNldCBhcmdzIFtscmVwbGFjZSAkYXJncyAwIDBdCi0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAtbGlicmFyeV9zZXQgewotICAgICAgICAgICAgICAgICAgICAgc2V0IHZhcnMoJHRpbWluZ19jb25kaXRpb24sbGlicmFyeV9zZXQpIFtsaW5kZXggJGFyZ3MgMF0KLSAgICAgICAgICAgICAgICAgICAgIHNldCBhcmdzIFtscmVwbGFjZSAkYXJncyAwIDBdCi0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9IAotICAgICAgICAgfQotICAgICAgICAgY3JlYXRlX2RlbGF5X2Nvcm5lciB7Ci0gICAgICAgICAgICB3aGlsZSB7W2xsZW5ndGggJGFyZ3NdID4gMH0gewotICAgICAgICAgICAgICAgc2V0IG9wdGlvbiBbbGluZGV4ICRhcmdzIDBdCi0gICAgICAgICAgICAgICBzZXQgYXJncyBbbHJlcGxhY2UgJGFyZ3MgMCAwXQotICAgICAgICAgICAgICAgc3dpdGNoIC1yZWdleHAgLS0gJG9wdGlvbiB7Ci0gICAgICAgICAgICAgICAgICAtbmFtZSB7Ci0gICAgICAgICAgICAgICAgICAgICBzZXQgZGVsYXlfY29ybmVyIFtsaW5kZXggJGFyZ3MgMF0KLSAgICAgICAgICAgICAgICAgICAgIHB1dHMgIjxGRj4gICAgKCBGb3VuZCBkZWxheSBjb3JuZXIgJGRlbGF5X2Nvcm5lciApIiAKLSAgICAgICAgICAgICAgICAgICAgIGlmIHshW2luZm8gZXhpc3RzIHZhcnMoZGVsYXlfY29ybmVycyldfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBzZXQgdmFycyhkZWxheV9jb3JuZXJzKSAkZGVsYXlfY29ybmVyCi0gICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICAgaWYge1tsc2VhcmNoICR2YXJzKGRlbGF5X2Nvcm5lcnMpICRkZWxheV9jb3JuZXJdID09IC0xfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICBsYXBwZW5kIHZhcnMoZGVsYXlfY29ybmVycykgW2xpc3QgJGRlbGF5X2Nvcm5lcl0KLSAgICAgICAgICAgICAgICAgICAgICAgIH0gIAotICAgICAgICAgICAgICAgICAgICAgfSAgCi0gICAgICAgICAgICAgICAgICAgICBzZXQgYXJncyBbbHJlcGxhY2UgJGFyZ3MgMCAwXQotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgLXRpbWluZ19jb25kaXRpb24gewotICAgICAgICAgICAgICAgICAgICAgc2V0IHZhcnMoJGRlbGF5X2Nvcm5lcix0aW1pbmdfY29uZGl0aW9uKSBbbGluZGV4ICRhcmdzIDBdCi0gICAgICAgICAgICAgICAgICAgICBzZXQgYXJncyBbbHJlcGxhY2UgJGFyZ3MgMCAwXQotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgLXJjX2Nvcm5lciB7Ci0gICAgICAgICAgICAgICAgICAgICBzZXQgdmFycygkZGVsYXlfY29ybmVyLHJjX2Nvcm5lcikgW2xpbmRleCAkYXJncyAwXQotICAgICAgICAgICAgICAgICAgICAgc2V0IGFyZ3MgW2xyZXBsYWNlICRhcmdzIDAgMF0KLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIC1saWJyYXJ5X3NldCB7Ci0gICAgICAgICAgICAgICAgICAgICBzZXQgdmFycygkZGVsYXlfY29ybmVyLGxpYnJhcnlfc2V0KSBbbGluZGV4ICRhcmdzIDBdCi0gICAgICAgICAgICAgICAgICAgICBzZXQgYXJncyBbbHJlcGxhY2UgJGFyZ3MgMCAwXQotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfSAKLSAgICAgICAgIH0KLSAgICAgICAgIHVwZGF0ZV9kZWxheV9jb3JuZXIgewotICAgICAgICAgICAgd2hpbGUge1tsbGVuZ3RoICRhcmdzXSA+IDB9IHsKLSAgICAgICAgICAgICAgIHNldCBvcHRpb24gW2xpbmRleCAkYXJncyAwXQotICAgICAgICAgICAgICAgc2V0IGFyZ3MgW2xyZXBsYWNlICRhcmdzIDAgMF0KLSAgICAgICAgICAgICAgIHN3aXRjaCAtcmVnZXhwIC0tICRvcHRpb24gewotICAgICAgICAgICAgICAgICAgLW5hbWUgewotICAgICAgICAgICAgICAgICAgICAgc2V0IGRlbGF5X2Nvcm5lciBbbGluZGV4ICRhcmdzIDBdCi0gICAgICAgICAgICAgICAgICAgICBwdXRzICI8RkY+ICAgICggRm91bmQgZGVsYXkgY29ybmVyICRkZWxheV9jb3JuZXIgKSIgCi0gICAgICAgICAgICAgICAgICAgICBpZiB7IVtpbmZvIGV4aXN0cyB2YXJzKGRlbGF5X2Nvcm5lcnMpXX0gewotICAgICAgICAgICAgICAgICAgICAgICAgc2V0IHZhcnMoZGVsYXlfY29ybmVycykgJGRlbGF5X2Nvcm5lcgotICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIHtbbHNlYXJjaCAkdmFycyhkZWxheV9jb3JuZXJzKSAkZGVsYXlfY29ybmVyXSA9PSAtMX0gewotICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFwcGVuZCB2YXJzKGRlbGF5X2Nvcm5lcnMpIFtsaXN0ICRkZWxheV9jb3JuZXJdCi0gICAgICAgICAgICAgICAgICAgICAgICB9ICAKLSAgICAgICAgICAgICAgICAgICAgIH0gIAotICAgICAgICAgICAgICAgICAgICAgc2V0IGFyZ3MgW2xyZXBsYWNlICRhcmdzIDAgMF0KLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIC10aW1pbmdfY29uZGl0aW9uIHsKLSAgICAgICAgICAgICAgICAgICAgIHNldCB2YXJzKCRkZWxheV9jb3JuZXIsdGltaW5nX2NvbmRpdGlvbikgW2xpbmRleCAkYXJncyAwXQotICAgICAgICAgICAgICAgICAgICAgc2V0IGFyZ3MgW2xyZXBsYWNlICRhcmdzIDAgMF0KLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIC1yY19jb3JuZXIgewotICAgICAgICAgICAgICAgICAgICAgc2V0IHZhcnMoJGRlbGF5X2Nvcm5lcixyY19jb3JuZXIpIFtsaW5kZXggJGFyZ3MgMF0KLSAgICAgICAgICAgICAgICAgICAgIHNldCBhcmdzIFtscmVwbGFjZSAkYXJncyAwIDBdCi0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAtcG93ZXJfZG9tYWluIHsKLSAgICAgICAgICAgICAgICAgICAgIGlmIHshW2luZm8gZXhpc3RzIHZhcnMoJGRlbGF5X2Nvcm5lcixwb3dlcl9kb21haW5zKV19IHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHNldCB2YXJzKCRkZWxheV9jb3JuZXIscG93ZXJfZG9tYWlucykgW2xpbmRleCAkYXJncyAwXQotICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGxhcHBlbmQgdmFycygkZGVsYXlfY29ybmVyLHBvd2VyX2RvbWFpbnMpIFtsaW5kZXggJGFyZ3MgMF0KLSAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgIGlmIHshW2luZm8gZXhpc3RzIHZhcnMocG93ZXJfZG9tYWlucyldfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBzZXQgdmFycyhwb3dlcl9kb21haW5zKSBbbGluZGV4ICRhcmdzIDBdCi0gICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICAgaWYge1tsc2VhcmNoICR2YXJzKHBvd2VyX2RvbWFpbnMpIFtsaW5kZXggJGFyZ3MgMF1dID09IC0xfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICBsYXBwZW5kIHZhcnMocG93ZXJfZG9tYWlucykgW2xpbmRleCAkYXJncyAwXQotICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgc2V0IGFyZ3MgW2xyZXBsYWNlICRhcmdzIDAgMF0KLSAgICAgICAgICAgICAgICAgICAgIHB1dHMgIjxGRj4gICAgKCBGb3VuZCBwb3dlciBkb21haW4gJGRlbGF5X2Nvcm5lciApIiAKLSAgICAgICAgICAgICAgICAgICAgIGlmIHshW2luZm8gZXhpc3RzIHZhcnMoZGVsYXlfY29ybmVycyldfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBzZXQgdmFycyhkZWxheV9jb3JuZXJzKSAkZGVsYXlfY29ybmVyCi0gICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICAgaWYge1tsc2VhcmNoICR2YXJzKGRlbGF5X2Nvcm5lcnMpICRkZWxheV9jb3JuZXJdID09IC0xfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICBsYXBwZW5kIHZhcnMoZGVsYXlfY29ybmVycykgW2xpc3QgJGRlbGF5X2Nvcm5lcl0KLSAgICAgICAgICAgICAgICAgICAgICAgIH0gIAotICAgICAgICAgICAgICAgICAgICAgfSAgCi0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9IAotICAgICAgICAgfQotICAgICAgICAgY3JlYXRlX2NvbnN0cmFpbnRfbW9kZSB7Ci0gICAgICAgICAgICB3aGlsZSB7W2xsZW5ndGggJGFyZ3NdID4gMH0gewotICAgICAgICAgICAgICAgc2V0IG9wdGlvbiBbbGluZGV4ICRhcmdzIDBdCi0gICAgICAgICAgICAgICBzZXQgYXJncyBbbHJlcGxhY2UgJGFyZ3MgMCAwXQotICAgICAgICAgICAgICAgc3dpdGNoIC1yZWdleHAgLS0gJG9wdGlvbiB7Ci0gICAgICAgICAgICAgICAgICAtbmFtZSB7Ci0gICAgICAgICAgICAgICAgICAgICBzZXQgY29uc3RyYWludF9tb2RlIFtsaW5kZXggJGFyZ3MgMF0KLSAgICAgICAgICAgICAgICAgICAgIHB1dHMgIjxGRj4gICAgKCBGb3VuZCBjb25zdHJhaW50IG1vZGUgJGNvbnN0cmFpbnRfbW9kZSApIiAKLSAgICAgICAgICAgICAgICAgICAgIGlmIHshW2luZm8gZXhpc3RzIHZhcnMoY29uc3RyYWludF9tb2RlcyldfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBzZXQgdmFycyhjb25zdHJhaW50X21vZGVzKSBbbGlzdCAkY29uc3RyYWludF9tb2RlXQotICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIHtbbHNlYXJjaCAkdmFycyhjb25zdHJhaW50X21vZGVzKSAkY29uc3RyYWludF9tb2RlXSA9PSAtMX0gewotICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFwcGVuZCB2YXJzKGNvbnN0cmFpbnRfbW9kZXMpICRjb25zdHJhaW50X21vZGUKLSAgICAgICAgICAgICAgICAgICAgICAgIH0gIAotICAgICAgICAgICAgICAgICAgICAgfSAgCi0gICAgICAgICAgICAgICAgICAgICBzZXQgYXJncyBbbHJlcGxhY2UgJGFyZ3MgMCAwXQotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgLXNkY19maWxlcyB7Ci0gICAgICAgICAgICAgICAgICAgICBzZXQgdmFycygkY29uc3RyYWludF9tb2RlLHNkY19maWxlcykgW2xpbmRleCAkYXJncyAwXQotICAgICAgICAgICAgICAgICAgICAgc2V0IHZhcnMoJGNvbnN0cmFpbnRfbW9kZSxwcmVfY3RzX3NkYykgW2xpbmRleCAkYXJncyAwXQotICAgICAgICAgICAgICAgICAgICAgc2V0IGFyZ3MgW2xyZXBsYWNlICRhcmdzIDAgMF0KLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIC1pbG1fc2RjX2ZpbGVzIHsKLSAgICAgICAgICAgICAgICAgICAgIHNldCB2YXJzKCRjb25zdHJhaW50X21vZGUsaWxtX3NkY19maWxlcykgW2xpbmRleCAkYXJncyAwXQotICAgICAgICAgICAgICAgICAgICAgc2V0IGFyZ3MgW2xyZXBsYWNlICRhcmdzIDAgMF0KLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0gCi0gICAgICAgICB9Ci0gICAgICAgICBjcmVhdGVfYW5hbHlzaXNfdmlldyB7Ci0gICAgICAgICAgICB3aGlsZSB7W2xsZW5ndGggJGFyZ3NdID4gMH0gewotICAgICAgICAgICAgICAgc2V0IG9wdGlvbiBbbGluZGV4ICRhcmdzIDBdCi0gICAgICAgICAgICAgICBzZXQgYXJncyBbbHJlcGxhY2UgJGFyZ3MgMCAwXQotICAgICAgICAgICAgICAgc3dpdGNoIC1yZWdleHAgLS0gJG9wdGlvbiB7Ci0gICAgICAgICAgICAgICAgICAtbmFtZSB7Ci0gICAgICAgICAgICAgICAgICAgICBzZXQgYW5hbHlzaXNfdmlldyBbbGluZGV4ICRhcmdzIDBdCi0gICAgICAgICAgICAgICAgICAgICBpZiB7IVtpbmZvIGV4aXN0cyB2YXJzKGFuYWx5c2lzX3ZpZXdzKV19IHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHNldCB2YXJzKGFuYWx5c2lzX3ZpZXdzKSBbbGlzdCAkYW5hbHlzaXNfdmlld10KLSAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiB7W2xzZWFyY2ggJHZhcnMoYW5hbHlzaXNfdmlld3MpICRhbmFseXNpc192aWV3XSA9PSAtMX0gewotICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFwcGVuZCB2YXJzKGFuYWx5c2lzX3ZpZXdzKSAkYW5hbHlzaXNfdmlldwotICAgICAgICAgICAgICAgICAgICAgICAgfSAgCi0gICAgICAgICAgICAgICAgICAgICB9ICAKLSAgICAgICAgICAgICAgICAgICAgIHNldCBhcmdzIFtscmVwbGFjZSAkYXJncyAwIDBdCi0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAtY29uc3RyYWludF9tb2RlIHsKLSAgICAgICAgICAgICAgICAgICAgIHNldCB2YXJzKCRhbmFseXNpc192aWV3LGNvbnN0cmFpbnRfbW9kZSkgW2xpbmRleCAkYXJncyAwXQotICAgICAgICAgICAgICAgICAgICAgc2V0IGFyZ3MgW2xyZXBsYWNlICRhcmdzIDAgMF0KLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIC1kZWxheV9jb3JuZXIgewotICAgICAgICAgICAgICAgICAgICAgc2V0IHZhcnMoJGFuYWx5c2lzX3ZpZXcsZGVsYXlfY29ybmVyKSBbbGluZGV4ICRhcmdzIDBdCi0gICAgICAgICAgICAgICAgICAgICBzZXQgYXJncyBbbHJlcGxhY2UgJGFyZ3MgMCAwXQotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfSAKLSAgICAgICAgIH0KLSAgICAgICAgIHNldF9hbmFseXNpc192aWV3IHsKLSAgICAgICAgICAgIHdoaWxlIHtbbGxlbmd0aCAkYXJnc10gPiAwfSB7Ci0gICAgICAgICAgICAgICBzZXQgb3B0aW9uIFtsaW5kZXggJGFyZ3MgMF0KLSAgICAgICAgICAgICAgIHNldCBhcmdzIFtscmVwbGFjZSAkYXJncyAwIDBdCi0gICAgICAgICAgICAgICBzd2l0Y2ggLXJlZ2V4cCAtLSAkb3B0aW9uIHsKLSAgICAgICAgICAgICAgICAgIC1zZXR1cCB7Ci0gICAgICAgICAgICAgICAgICAgICBzZXQgdmFycyhzZXR1cF9hbmFseXNpc192aWV3cykgW2xpbmRleCAkYXJncyAwXQotICAgICAgICAgICAgICAgICAgICAgc2V0IGFyZ3MgW2xyZXBsYWNlICRhcmdzIDAgMF0KLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIC1ob2xkIHsKLSAgICAgICAgICAgICAgICAgICAgIHNldCB2YXJzKGhvbGRfYW5hbHlzaXNfdmlld3MpIFtsaW5kZXggJGFyZ3MgMF0KLSAgICAgICAgICAgICAgICAgICAgIHNldCBhcmdzIFtscmVwbGFjZSAkYXJncyAwIDBdCi0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9IAotICAgICAgICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycyhhY3RpdmVfc2V0dXBfdmlld3MpXX0gewotICAgICAgICAgICAgICAgc2V0IHZhcnMoYWN0aXZlX3NldHVwX3ZpZXdzKSAkdmFycyhzZXR1cF9hbmFseXNpc192aWV3cykKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIHshW2luZm8gZXhpc3RzIHZhcnMoYWN0aXZlX2hvbGRfdmlld3MpXX0gewotICAgICAgICAgICAgICAgc2V0IHZhcnMoYWN0aXZlX2hvbGRfdmlld3MpICR2YXJzKGhvbGRfYW5hbHlzaXNfdmlld3MpCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiB7IVtpbmZvIGV4aXN0cyB2YXJzKGRlZmF1bHRfc2V0dXBfdmlldyldfSB7Ci0gICAgICAgICAgICAgICBzZXQgdmFycyhkZWZhdWx0X3NldHVwX3ZpZXcpIFtsaW5kZXggJHZhcnMoc2V0dXBfYW5hbHlzaXNfdmlld3MpIDBdCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiB7IVtpbmZvIGV4aXN0cyB2YXJzKGRlZmF1bHRfaG9sZF92aWV3KV19IHsKLSAgICAgICAgICAgICAgIHNldCB2YXJzKGRlZmF1bHRfaG9sZF92aWV3KSBbbGluZGV4ICR2YXJzKGhvbGRfYW5hbHlzaXNfdmlld3MpIDBdCi0gICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0gICAgICB9Ci0gICB9Ci19CmRpZmYgLS1naXQgYS9mbG93L3Buci9FWEFNUExFUy9JTk5PVlVTL0RFU0lHTi9TQ1JJUFRTL0VUQy9JTk5PVlVTL3JkYV9kZWZhdWx0cy50Y2wgYi9mbG93L3Buci9FWEFNUExFUy9JTk5PVlVTL0RFU0lHTi9TQ1JJUFRTL0VUQy9JTk5PVlVTL3JkYV9kZWZhdWx0cy50Y2wKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IGM2YWRlZjAuLjAwMDAwMDAKLS0tIGEvZmxvdy9wbnIvRVhBTVBMRVMvSU5OT1ZVUy9ERVNJR04vU0NSSVBUUy9FVEMvSU5OT1ZVUy9yZGFfZGVmYXVsdHMudGNsCisrKyAvZGV2L251bGwKQEAgLTEsMTE1ICswLDAgQEAKLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSMgICAgICAgICAgICAgICAgICAgICAgIENBREVOQ0UgQ09QWVJJR0hUIE5PVElDRQotIyAgICAgICAgIKkgMjAwOC0yMDEzIENhZGVuY2UgRGVzaWduIFN5c3RlbXMsIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSMKLSMgVGhpcyBGb3VuZGF0aW9uIEZsb3cgaXMgcHJvdmlkZWQgYXMgYW4gZXhhbXBsZSBvZiBob3cgdG8gcGVyZm9ybSBzcGVjaWFsaXplZAotIyB0YXNrcy4KLSMKLSMgVGhpcyB3b3JrIG1heSBub3QgYmUgY29waWVkLCByZS1wdWJsaXNoZWQsIHVwbG9hZGVkLCBvciBkaXN0cmlidXRlZCBpbiBhbnkgd2F5LAotIyBpbiBhbnkgbWVkaXVtLCB3aGV0aGVyIGluIHdob2xlIG9yIGluIHBhcnQsIHdpdGhvdXQgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uCi0jIGZyb20gQ2FkZW5jZS4gTm90d2l0aHN0YW5kaW5nIGFueSByZXN0cmljdGlvbnMgaGVyZWluLCBzdWJqZWN0IHRvIGNvbXBsaWFuY2UKLSMgd2l0aCB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgdGhlIENhZGVuY2Ugc29mdHdhcmUgbGljZW5zZSBhZ3JlZW1lbnQgdW5kZXIKLSMgd2hpY2ggdGhpcyBtYXRlcmlhbCB3YXMgcHJvdmlkZWQsIHRoaXMgbWF0ZXJpYWwgbWF5IGJlIGNvcGllZCBhbmQgaW50ZXJuYWxseQotIyBkaXN0cmlidXRlZCBzb2xlbHkgZm9yIGludGVybmFsIHB1cnBvc2VzIGZvciB1c2Ugd2l0aCBDYWRlbmNlIHRvb2xzLgotIwotIyBUaGlzIHdvcmsgaXMgQ2FkZW5jZSBpbnRlbGxlY3R1YWwgcHJvcGVydHkgYW5kIG1heSB1bmRlciBubyBjaXJjdW1zdGFuY2VzIGJlCi0jIGdpdmVuIHRvIHRoaXJkIHBhcnRpZXMsIG5laXRoZXIgaW4gb3JpZ2luYWwgbm9yIGluIG1vZGlmaWVkIHZlcnNpb25zLCB3aXRob3V0Ci0jIGV4cGxpY2l0IHdyaXR0ZW4gcGVybWlzc2lvbiBmcm9tIENhZGVuY2UuIFRoZSBpbmZvcm1hdGlvbiBjb250YWluZWQgaGVyZWluIGlzCi0jIHRoZSBwcm9wcmlldGFyeSBhbmQgY29uZmlkZW50aWFsIGluZm9ybWF0aW9uIG9mIENhZGVuY2Ugb3IgaXRzIGxpY2Vuc29ycywgYW5kCi0jIGlzIHN1cHBsaWVkIHN1YmplY3QgdG8sIGFuZCBtYXkgYmUgdXNlZCBvbmx5IGJ5IENhZGVuY2UncyBjdXJyZW50IGN1c3RvbWVycwotIyBpbiBhY2NvcmRhbmNlIHdpdGgsIGEgcHJldmlvdXNseSBleGVjdXRlZCBsaWNlbnNlIGFncmVlbWVudCBiZXR3ZWVuIENhZGVuY2UKLSMgYW5kIGl0cyBjdXN0b21lci4KLSMKLSMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSMgVEhJUyBNQVRFUklBTCBJUyBQUk9WSURFRCBCWSBDQURFTkNFICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQKLSMgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YKLSMgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4KLSMgSU4gTk8gRVZFTlQgU0hBTEwgQ0FERU5DRSBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMCi0jIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksCi0jIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUgotIyBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTICBNQVRFUklBTCwgRVZFTiBJRgotIyBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLWlmIHtbbGluZGV4IFtzcGxpdCAkdmFycyh2ZXJzaW9uKSAiLiJdICAwXSA+IDEwfSB7Ci0gICBpZiB7W2xpbmRleCBbc3BsaXQgJHZhcnModmVyc2lvbikgIi4iXSAgMF0gPCAxNX0gewotICAgICAgc2V0IHJkYV9kZWZhdWx0cyhhc3NpZ25fYnVmZmVyKSB7MX0KLSAgIH0KLSAgIHNldCByZGFfZGVmYXVsdHMoaW1wb3J0X21vZGUpIHstdHJlYXRVbmRlZmluZWRDZWxsQXNCYm94IDAgLWtlZXBFbXB0eU1vZHVsZSAxIC11c2VMZWZEZWY1NiAxIH0KLSAgIHNldCByZGFfZGVmYXVsdHModW5pcXVpZnlfbmV0bGlzdCkgezF9Ci19IGVsc2UgewotICAgc2V0IHJkYV9kZWZhdWx0cyhhc3NpZ25fYnVmZmVyKSB7MX0KLSAgIHNldCByZGFfZGVmYXVsdHMoc2hyX3NjYWxlKSB7MS4wfQotICAgc2V0IHJkYV9kZWZhdWx0cyhkZWxheV9saW1pdCkgezEwMDB9Ci0gICBzZXQgcmRhX2RlZmF1bHRzKGRlZmF1bHRfbmV0X2RlbGF5KSB7MTAwMC4wcHN9Ci0gICBzZXQgcmRhX2RlZmF1bHRzKGRlZmF1bHRfbmV0X2xvYWQpIHswLjVwZn0KLSAgIHNldCByZGFfZGVmYXVsdHMoZGVmYXVsdF9zbGV3KSB7MHBzfQotICAgc2V0IHJkYV9kZWZhdWx0cyhmbGlwX2ZpcnN0X3JvdykgezF9Ci0gICBzZXQgcmRhX2RlZmF1bHRzKGNvcmVfY29udHJvbCkge2FzcGVjdH0KLSAgIHNldCByZGFfZGVmYXVsdHMoaW1wb3J0X21vZGUpIHstdHJlYXRVbmRlZmluZWRDZWxsQXNCYm94IDAgLWtlZXBFbXB0eU1vZHVsZSAxIC11c2VMZWZEZWY1NiAxIH0KLSAgIHNldCByZGFfZGVmYXVsdHMoY29yZV91dGlsKSB7MC43fQotICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKG5ldGxpc3RfdHlwZSldfSB7Ci0gICAgICBzZXQgcmRhX2RlZmF1bHRzKG5ldGxpc3RfdHlwZSkgJHZhcnMobmV0bGlzdF90eXBlKQotICAgfSBlbHNlIHsKLSAgICAgIHNldCByZGFfZGVmYXVsdHMobmV0bGlzdF90eXBlKSBWZXJpbG9nCi0gICB9Ci0gICBzZXQgcmRhX2RlZmF1bHRzKHVuaXF1aWZ5X25ldGxpc3QpIHsxfQotICAgc2V0IHJkYV9kZWZhdWx0cyhydGxfbGlzdCkgIiIKLSAgIHNldCByZGFfZGVmYXVsdHMoaWxtX2RpcikgIiIKLSAgIHNldCByZGFfZGVmYXVsdHMoaWxtX2xpc3QpICIiCi0gICBzZXQgcmRhX2RlZmF1bHRzKGlsbV9zcGVmKSAiIgotICAgc2V0IHJkYV9kZWZhdWx0cyhzZXRfdG9wX2NlbGwpIHswfQotICAgc2V0IHJkYV9kZWZhdWx0cyhjZWxsbGliKSAiIgotICAgc2V0IHJkYV9kZWZhdWx0cyhpb19saWIpICIiCi0gICBzZXQgcmRhX2RlZmF1bHRzKGFyZWFfaW9fbGliKSAiIgotICAgc2V0IHJkYV9kZWZhdWx0cyhibGtfbGliKSAiIgotICAgc2V0IHJkYV9kZWZhdWx0cyhrYm94X2xpYikgIiIKLSAgIHNldCByZGFfZGVmYXVsdHMob2EybGVmdmVyc2lvbikge30KLSAgIHNldCByZGFfZGVmYXVsdHModmlld19kZWZpbml0aW9uX2ZpbGUpICIiCi0gICBzZXQgcmRhX2RlZmF1bHRzKHNtb2RfZGVmKSAiIgotICAgc2V0IHJkYV9kZWZhdWx0cyhzbW9kX2RhdGEpICIiCi0gICBzZXQgcmRhX2RlZmF1bHRzKGxvY3ZfbGliKSAiIgotICAgc2V0IHJkYV9kZWZhdWx0cyhkYXRhX3BhdGgpICIiCi0gICBzZXQgcmRhX2RlZmF1bHRzKHRlY2hfZmlsZSkgIiIKLSAgIHNldCByZGFfZGVmYXVsdHMoaW9fZmlsZSkgIiIKLSAgIHNldCByZGFfZGVmYXVsdHMobGF0ZW5jeV9maWxlKSAiIgotICAgc2V0IHJkYV9kZWZhdWx0cyhzY2hlZHVsaW5nX2ZpbGUpICIiCi0gICBzZXQgcmRhX2RlZmF1bHRzKGJ1Zl9mb290cHJpbnQpIHt9Ci0gICBzZXQgcmRhX2RlZmF1bHRzKGRlbF9mb290cHJpbnQpIHt9Ci0gICBzZXQgcmRhX2RlZmF1bHRzKGludl9mb290cHJpbnQpIHt9Ci0gICBzZXQgcmRhX2RlZmF1bHRzKGN0c19jZWxsX2Zvb3RwcmludCkge30KLSAgIHNldCByZGFfZGVmYXVsdHMoY3RzX2NlbGxfbGlzdCkge30KLSAgIHNldCByZGFfZGVmYXVsdHMoYXNwZWN0X3JhdGlvKSB7MS4wfQotICAgc2V0IHJkYV9kZWZhdWx0cyhjb3JlX2hlaWdodCkge30KLSAgIHNldCByZGFfZGVmYXVsdHMoY29yZV93aWR0aCkge30KLSAgIHNldCByZGFfZGVmYXVsdHMoY29yZV90b19sZWZ0KSB7fQotICAgc2V0IHJkYV9kZWZhdWx0cyhjb3JlX3RvX3JpZ2h0KSB7fQotICAgc2V0IHJkYV9kZWZhdWx0cyhjb3JlX3RvX3RvcCkge30KLSAgIHNldCByZGFfZGVmYXVsdHMoY29yZV90b19ib3R0b20pIHt9Ci0gICBzZXQgcmRhX2RlZmF1bHRzKG1heF9pb19oZWlnaHQpIHswfQotICAgc2V0IHJkYV9kZWZhdWx0cyhyb3dfaGVpZ2h0KSB7fQotICAgc2V0IHJkYV9kZWZhdWx0cyhob3JfdHJhY2tfaGFsZl9waXRjaCkgezB9Ci0gICBzZXQgcmRhX2RlZmF1bHRzKHZlcl90cmFja19oYWxmX3BpdGNoKSB7MX0KLSAgIHNldCByZGFfZGVmYXVsdHMoaW9fb3JpZW50YXRpb24pIHtSMH0KLSAgIHNldCByZGFfZGVmYXVsdHMoY2VudGVyX29yaWdpbikgezB9Ci0gICBzZXQgcmRhX2RlZmF1bHRzKHZlcnRpY2FsX3Jvd3MpIHswfQotICAgc2V0IHJkYV9kZWZhdWx0cyhleGNsdWRlX25ldHMpICIiCi0gICBzZXQgcmRhX2RlZmF1bHRzKHRpbWVfdW5pdCkge25vbmV9Ci0gICBzZXQgcmRhX2RlZmF1bHRzKGNhcF91bml0KSB7fQotICAgc2V0IHJkYV9kZWZhdWx0cyhvYV9yZWZfbGliKSAiIgotICAgc2V0IHJkYV9kZWZhdWx0cyhvYV9hYnN0cmFjdF9uYW1lKSB7fQotICAgc2V0IHJkYV9kZWZhdWx0cyhvYV9sYXlvdXRfbmFtZSkge30KLSAgIHNldCByZGFfZGVmYXVsdHMob2FfZGVzaWduX2xpYikge30KLSAgIHNldCByZGFfZGVmYXVsdHMob2FfZGVzaWduX2NlbGwpIHt9Ci0gICBzZXQgcmRhX2RlZmF1bHRzKG9hX2Rlc2lnbl92aWV3KSB7fQotICAgc2V0IHJkYV9kZWZhdWx0cyhzaWduYWxzdG9ybV9saWIpICIiCi0gICBzZXQgcmRhX2RlZmF1bHRzKGVjaG9fZmlsZSxtaW4pICIiCi0gICBzZXQgcmRhX2RlZmF1bHRzKGVjaG9fZmlsZSxtYXgpICIiCi0gICBzZXQgcmRhX2RlZmF1bHRzKGVjaG9fZmlsZSkgIiIKLSAgIHNldCByZGFfZGVmYXVsdHMoeHRhbGtfdHdmX2ZpbGUpICIiCi0gICBzZXQgcmRhX2RlZmF1bHRzKGRvdWJsZV9iYWNrKSB7MX0KLSAgIHNldCByZGFfZGVmYXVsdHMoZ2VuX2Zvb3RwcmludCkgezB9Ci0gICBzZXQgcmRhX2RlZmF1bHRzKHB3cm5ldCkgIiIKLSAgIHNldCByZGFfZGVmYXVsdHMoZ25kbmV0KSAiIgotICAgc2V0IHJkYV9kZWZhdWx0cyhnZHNfZmlsZXMpICIiCi19CmRpZmYgLS1naXQgYS9mbG93L3Buci9FWEFNUExFUy9JTk5PVlVTL0RFU0lHTi9TQ1JJUFRTL0VUQy9JTk5PVlVTL3JlbmFtZS50Y2wgYi9mbG93L3Buci9FWEFNUExFUy9JTk5PVlVTL0RFU0lHTi9TQ1JJUFRTL0VUQy9JTk5PVlVTL3JlbmFtZS50Y2wKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDQwMmZkZTIuLjAwMDAwMDAKLS0tIGEvZmxvdy9wbnIvRVhBTVBMRVMvSU5OT1ZVUy9ERVNJR04vU0NSSVBUUy9FVEMvSU5OT1ZVUy9yZW5hbWUudGNsCisrKyAvZGV2L251bGwKQEAgLTEsNDQ0ICswLDAgQEAKLWlmIHshW2luZm8gZXhpc3RzIHZhcnMobGludCldfSB7Ci0gICBzZXQgdmFycyhsaW50KSAwCi19Ci0KLSMgT3ZlcmxvYWQgY29tbWFuZCBiZWhhdmlvcgotCi1jYXRjaCB7cmVuYW1lIHNldERlc2lnbk1vZGUgc2V0RGVzaWduTW9kZU9yaWd9Ci1jYXRjaCB7cmVuYW1lIHNldERlbGF5Q2FsTW9kZSBzZXREZWxheUNhbE1vZGVPcmlnfQotY2F0Y2gge3JlbmFtZSBzZXRUaWVIaUxvTW9kZSBzZXRUaWVIaUxvTW9kZU9yaWd9Ci1jYXRjaCB7cmVuYW1lIHNldFBsYWNlTW9kZSBzZXRQbGFjZU1vZGVPcmlnfQotY2F0Y2gge3JlbmFtZSBzZXRDVFNNb2RlIHNldENUU01vZGVPcmlnfQotY2F0Y2gge3JlbmFtZSBzZXRDQ09wdE1vZGUgc2V0Q0NPcHRNb2RlT3JpZ30KLWNhdGNoIHtyZW5hbWUgc2V0RmlsbGVyTW9kZSBzZXRGaWxsZXJNb2RlT3JpZ30KLWNhdGNoIHtyZW5hbWUgc2V0TmFub1JvdXRlTW9kZSBzZXROYW5vUm91dGVNb2RlT3JpZ30KLWNhdGNoIHtyZW5hbWUgc2V0RXh0cmFjdFJDTW9kZSBzZXRFeHRyYWN0UkNNb2RlT3JpZ30KLWNhdGNoIHtyZW5hbWUgc2V0U0lNb2RlIHNldFNJTW9kZU9yaWd9Ci0KLWNhdGNoIHtyZW5hbWUgY3JlYXRlX2xpYnJhcnlfc2V0IGNyZWF0ZV9saWJyYXJ5X3NldF9vcmlnfQotY2F0Y2gge3JlbmFtZSBjcmVhdGVfcmNfY29ybmVyIGNyZWF0ZV9yY19jb3JuZXJfb3JpZ30KLWNhdGNoIHtyZW5hbWUgY3JlYXRlX2RlbGF5X2Nvcm5lciBjcmVhdGVfZGVsYXlfY29ybmVyX29yaWd9Ci1jYXRjaCB7cmVuYW1lIGNyZWF0ZV9jb25zdHJhaW50X21vZGUgY3JlYXRlX2NvbnN0cmFpbnRfbW9kZV9vcmlnfQotY2F0Y2gge3JlbmFtZSBjcmVhdGVfYW5hbHlzaXNfdmlldyBjcmVhdGVfYW5hbHlzaXNfdmlld19vcmlnfQotCi1wcm9jIHNldERlc2lnbk1vZGUge2FyZ3N9IHsKLSAgIGdsb2JhbCB2YXJzCi0gICBpZiB7JHZhcnMobGludCl9IHsgCi0gICAgICBmZl9lZGk6OnNlZWRfY29tbWFuZHMgInNldERlc2lnbk1vZGUgJGFyZ3MiCi0gICB9IGVsc2UgewotICAgICAgc2V0RGVzaWduTW9kZU9yaWcgJGFyZ3MKLSAgIH0KLX0KLXByb2Mgc2V0RGVsYXlDYWxNb2RlIHthcmdzfSB7Ci0gICBnbG9iYWwgdmFycwotICAgaWYgeyR2YXJzKGxpbnQpfSB7IAotICAgICAgZmZfZWRpOjpzZWVkX2NvbW1hbmRzICJzZXREZWxheUNhbE1vZGUgJGFyZ3MiCi0gICB9IGVsc2UgewotICAgICAgc2V0RGVsYXlDYWxNb2RlT3JpZyAkYXJncwotICAgfQotfQotcHJvYyBzZXRUaWVIaUxvTW9kZSB7YXJnc30gewotICAgZ2xvYmFsIHZhcnMKLSAgIGlmIHskdmFycyhsaW50KX0geyAKLSAgICAgIGZmX2VkaTo6c2VlZF9jb21tYW5kcyAic2V0VGllSGlMb01vZGUgJGFyZ3MiCi0gICB9IGVsc2UgewotICAgICAgc2V0VGllSGlMb01vZGVPcmlnICRhcmdzCi0gICB9Ci19Ci1wcm9jIHNldFBsYWNlTW9kZSB7YXJnc30gewotICAgZ2xvYmFsIHZhcnMKLSAgIGlmIHskdmFycyhsaW50KX0geyAKLSAgICAgIGZmX2VkaTo6c2VlZF9jb21tYW5kcyAic2V0UGxhY2VNb2RlICRhcmdzIgotICAgfSBlbHNlIHsKLSAgICAgIHNldFBsYWNlTW9kZU9yaWcgJGFyZ3MKLSAgIH0KLX0KLXByb2Mgc2V0Q1RTTW9kZSAge2FyZ3N9IHsKLSAgIGdsb2JhbCB2YXJzCi0gICBpZiB7JHZhcnMobGludCl9IHsgCi0gICAgICBmZl9lZGk6OnNlZWRfY29tbWFuZHMgInNldENUU01vZGUgJGFyZ3MiCi0gICB9IGVsc2UgewotICAgICAgc2V0Q1RTTW9kZU9yaWcgJGFyZ3MKLSAgIH0KLX0KLXByb2Mgc2V0Q0NPcHRNb2RlICB7YXJnc30gewotICAgZ2xvYmFsIHZhcnMKLSAgIGlmIHskdmFycyhsaW50KX0geyAKLSAgICAgIGZmX2VkaTo6c2VlZF9jb21tYW5kcyAic2V0Q0NPcHRNb2RlICRhcmdzIgotICAgfSBlbHNlIHsKLSAgICAgIHNldENDT3B0TW9kZU9yaWcgJGFyZ3MKLSAgIH0KLX0KLXByb2Mgc2V0RmlsbGVyTW9kZSAge2FyZ3N9IHsKLSAgIGdsb2JhbCB2YXJzCi0gICBpZiB7JHZhcnMobGludCl9IHsgCi0gICAgICBmZl9lZGk6OnNlZWRfY29tbWFuZHMgInNldEZpbGxlck1vZGUgJGFyZ3MiCi0gICB9IGVsc2UgewotICAgICAgc2V0RmlsbGVyTW9kZU9yaWcgJGFyZ3MKLSAgIH0KLX0KLXByb2Mgc2V0TmFub1JvdXRlTW9kZSAge2FyZ3N9IHsKLSAgIGdsb2JhbCB2YXJzCi0gICBpZiB7JHZhcnMobGludCl9IHsgCi0gICAgICBmZl9lZGk6OnNlZWRfY29tbWFuZHMgInNldE5hbm9Sb3V0ZU1vZGUgJGFyZ3MiCi0gICB9IGVsc2UgewotICAgICAgc2V0TmFub1JvdXRlTW9kZU9yaWcgJGFyZ3MKLSAgIH0KLX0KLXByb2Mgc2V0RXh0cmFjdFJDTW9kZSAge2FyZ3N9IHsKLSAgIGdsb2JhbCB2YXJzCi0gICBpZiB7JHZhcnMobGludCl9IHsgCi0gICAgICBmZl9lZGk6OnNlZWRfY29tbWFuZHMgInNldEV4dHJhY3RSQ01vZGUgJGFyZ3MiCi0gICB9IGVsc2UgewotICAgICAgc2V0RXh0cmFjdFJDTW9kZU9yaWcgJGFyZ3MKLSAgIH0KLX0KLXByb2Mgc2V0U0lNb2RlICB7YXJnc30gewotICAgZ2xvYmFsIHZhcnMKLSAgIGlmIHskdmFycyhsaW50KX0geyAKLQkgIGZmX2VkaTo6c2VlZF9jb21tYW5kcyAic2V0U0lNb2RlICRhcmdzIgotICAgfSBlbHNlIHsKLQkgIHNldFNJTW9kZU9yaWcgJGFyZ3MKLSAgIH0KLX0KLQotcHJvYyBjcmVhdGVfcmNfY29ybmVyIHthcmdzfSB7Ci0gICBnbG9iYWwgdmFycwotICAgaWYgeyR2YXJzKGxpbnQpfSB7IAotICAgICAgZmZfZWRpOjpzZWVkX29wdGlvbnMgImNyZWF0ZV9yY19jb3JuZXIgJGFyZ3MiCi0gICB9IGVsc2UgewotICAgICAgY3JlYXRlX2xpYnJhcnlfc2V0ICRhcmdzCi0gICB9Ci19Ci0KLXByb2MgY3JlYXRlX2xpYnJhcnlfc2V0IHthcmdzfSB7Ci0gICBnbG9iYWwgdmFycwotICAgaWYgeyR2YXJzKGxpbnQpfSB7IAotICAgICAgZmZfZWRpOjpzZWVkX29wdGlvbnMgImNyZWF0ZV9saWJyYXJ5X3NldCAkYXJncyIKLSAgIH0gZWxzZSB7Ci0gICAgICBjcmVhdGVfbGlicmFyeV9zZXQgJGFyZ3MKLSAgIH0KLX0KLQotcHJvYyBjcmVhdGVfZGVsYXlfY29ybmVyIHthcmdzfSB7Ci0gICBnbG9iYWwgdmFycwotICAgaWYgeyR2YXJzKGxpbnQpfSB7IAotICAgICAgZmZfZWRpOjpzZWVkX29wdGlvbnMgImNyZWF0ZV9kZWxheV9jb3JuZXIgJGFyZ3MiCi0gICB9IGVsc2UgewotICAgICAgY3JlYXRlX2RlbGF5X2Nvcm5lciAkYXJncwotICAgfQotfQotCi1wcm9jIGNyZWF0ZV9jb25zdHJhaW50X21vZGUge2FyZ3N9IHsKLSAgIGdsb2JhbCB2YXJzCi0gICBpZiB7JHZhcnMobGludCl9IHsgCi0gICAgICBmZl9lZGk6OnNlZWRfb3B0aW9ucyAiY3JlYXRlX2NvbnN0cmFpbnRfbW9kZSAkYXJncyIKLSAgIH0gZWxzZSB7Ci0gICAgICBjcmVhdGVfY29uc3RyYWludF9tb2RlICRhcmdzCi0gICB9Ci19Ci0KLXByb2MgY3JlYXRlX2FuYWx5c2lzX3ZpZXcge2FyZ3N9IHsKLSAgIGdsb2JhbCB2YXJzCi0gICBpZiB7JHZhcnMobGludCl9IHsgCi0gICAgICBmZl9lZGk6OnNlZWRfb3B0aW9ucyAiY3JlYXRlX2FuYWx5c2lzX3ZpZXcgJGFyZ3MiCi0gICB9IGVsc2UgewotICAgICAgY3JlYXRlX2FuYWx5c2lzX3ZpZXcgJGFyZ3MKLSAgIH0KLX0KLQotbmFtZXNwYWNlIGV2YWwgZmZfZWRpIHsKLQotICAgcHJvYyBzZWVkX29wdGlvbnMge2NvbW1hbmRfc3RyaW5nfSB7Ci0KLSAgICAgIGdsb2JhbCB2YXJzCi0KLSAgICAgIHNldCBjb21tYW5kIFtsaW5kZXggJGNvbW1hbmRfc3RyaW5nIDBdCi0gICAgICBzZXQgYXJncyBbbHJlcGxhY2UgJGNvbW1hbmRfc3RyaW5nIDAgMF0KLQotICAgICAgc3dpdGNoICRjb21tYW5kIHsKLSAgICAgICAgIHNldERlc2lnbk1vZGUgewotICAgICAgICAgICAgd2hpbGUge1tsbGVuZ3RoICRhcmdzXSA+IDB9IHsKLSAgICAgICAgICAgICAgIHNldCBvcHRpb24gW2xpbmRleCAkYXJncyAwXQotICAgICAgICAgICAgICAgc2V0IGFyZ3MgW2xyZXBsYWNlICRhcmdzIDAgMF0KLSAgICAgICAgICAgICAgIHN3aXRjaCAtcmVnZXhwIC0tICRvcHRpb24gewotICAgICAgICAgICAgICAgICAgcHJvY2VzcyB7Ci0gICAgICAgICAgICAgICAgICAgICBzZXQgdmFycyhwcm9jZXNzKSBbbGluZGV4ICRhcmdzIDBdCi0gICAgICAgICAgICAgICAgICAgICBzZXQgYXJncyBbbHJlcGxhY2UgJGFyZ3MgMCAwXQotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfSAKLSAgICAgICAgIH0KLSAgICAgICAgIHNldFBsYWNlTW9kZSB7Ci0gICAgICAgICAgICB3aGlsZSB7W2xsZW5ndGggJGFyZ3NdID4gMH0gewotICAgICAgICAgICAgICAgc2V0IG9wdGlvbiBbbGluZGV4ICRhcmdzIDBdCi0gICAgICAgICAgICAgICBzZXQgYXJncyBbbHJlcGxhY2UgJGFyZ3MgMCAwXQotICAgICAgICAgICAgICAgc3dpdGNoIC1yZWdleHAgLS0gJG9wdGlvbiB7Ci0gICAgICAgICAgICAgICAgICBwbGFjZUlvUGlucyB7Ci0gICAgICAgICAgICAgICAgICAgICBzZXQgdmFycyhwbGFjZV9pb19waW5zKSBbbGluZGV4ICRhcmdzIDBdCi0gICAgICAgICAgICAgICAgICAgICBzZXQgYXJncyBbbHJlcGxhY2UgJGFyZ3MgMCAwXQotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgY29uZ0VmZm9ydCB7Ci0gICAgICAgICAgICAgICAgICAgICBzZXQgdmFycyhjb25nZXN0aW9uX2VmZm9ydCkgW2xpbmRleCAkYXJncyAwXQotICAgICAgICAgICAgICAgICAgICAgc2V0IGFyZ3MgW2xyZXBsYWNlICRhcmdzIDAgMF0KLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0gCi0gICAgICAgICB9Ci0gICAgICAgICBzZXRPcHRNb2RlIHsKLSAgICAgICAgICAgIHdoaWxlIHtbbGxlbmd0aCAkYXJnc10gPiAwfSB7Ci0gICAgICAgICAgICAgICBzZXQgb3B0aW9uIFtsaW5kZXggJGFyZ3MgMF0KLSAgICAgICAgICAgICAgIHNldCBhcmdzIFtscmVwbGFjZSAkYXJncyAwIDBdCi0gICAgICAgICAgICAgICBzd2l0Y2ggLXJlZ2V4cCAtLSAkb3B0aW9uIHsKLSAgICAgICAgICAgICAgICAgIGFsbEVuZFBvaW50cyB7Ci0gICAgICAgICAgICAgICAgICAgICBzZXQgdmFycyhhbGxfZW5kX3BvaW50cykgW2xpbmRleCAkYXJncyAwXQotICAgICAgICAgICAgICAgICAgICAgc2V0IGFyZ3MgW2xyZXBsYWNlICRhcmdzIDAgMF0KLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIHByZXNlcnZlQXNzc2VydGlvbnMgewotICAgICAgICAgICAgICAgICAgICAgc2V0IHZhcnMocHJlc2VydmVfYXNzZXJ0aW9ucykgW2xpbmRleCAkYXJncyAwXQotICAgICAgICAgICAgICAgICAgICAgc2V0IGFyZ3MgW2xyZXBsYWNlICRhcmdzIDAgMF0KLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIGxlYWthZ2VQb3dlckVmZm9ydCB7Ci0gICAgICAgICAgICAgICAgICAgICBzZXQgdmFycyhsZWFrYWdlX3Bvd2VyX2VmZm9ydCkgW2xpbmRleCAkYXJncyAwXQotICAgICAgICAgICAgICAgICAgICAgc2V0IGFyZ3MgW2xyZXBsYWNlICRhcmdzIDAgMF0KLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIGR5bmFtaWNQb3dlckVmZm9ydCB7Ci0gICAgICAgICAgICAgICAgICAgICBzZXQgdmFycyhsZWFrYWdlX3Bvd2VyX2VmZm9ydCkgW2xpbmRleCAkYXJncyAwXQotICAgICAgICAgICAgICAgICAgICAgc2V0IGFyZ3MgW2xyZXBsYWNlICRhcmdzIDAgMF0KLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0gCi0gICAgICAgICB9Ci0gICAgICAgICBzZXRDVFNNb2RlIHsKLSAgICAgICAgICAgIHdoaWxlIHtbbGxlbmd0aCAkYXJnc10gPiAwfSB7Ci0gICAgICAgICAgICAgICBzZXQgb3B0aW9uIFtsaW5kZXggJGFyZ3MgMF0KLSAgICAgICAgICAgICAgIHNldCBhcmdzIFtscmVwbGFjZSAkYXJncyAwIDBdCi0gICAgICAgICAgICAgICBzd2l0Y2ggLXJlZ2V4cCAtLSAkb3B0aW9uIHsKLSAgICAgICAgICAgICAgICAgIHJvdXRlQ2xrTmV0cyB7Ci0gICAgICAgICAgICAgICAgICAgICBzZXQgdmFycyhyb3V0ZV9jbG9ja19uZXRzKSBbbGluZGV4ICRhcmdzIDBdCi0gICAgICAgICAgICAgICAgICAgICBzZXQgYXJncyBbbHJlcGxhY2UgJGFyZ3MgMCAwXQotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfSAKLSAgICAgICAgIH0KLSAgICAgICAgIHNldE5hbm9Sb3V0ZU1vZGUgewotICAgICAgICAgICAgd2hpbGUge1tsbGVuZ3RoICRhcmdzXSA+IDB9IHsKLSAgICAgICAgICAgICAgIHNldCBvcHRpb24gW2xpbmRleCAkYXJncyAwXQotICAgICAgICAgICAgICAgc2V0IGFyZ3MgW2xyZXBsYWNlICRhcmdzIDAgMF0KLSAgICAgICAgICAgICAgIHN3aXRjaCAtcmVnZXhwIC0tICRvcHRpb24gewotICAgICAgICAgICAgICAgICAgZHJvdXRlTXVsdGlDdXRWaWFFZmZvcnQgewotICAgICAgICAgICAgICAgICAgICAgc2V0IHZhcnMobXVsdGlfY3V0X2VmZm9ydCkgW2xpbmRleCAkYXJncyAwXQotICAgICAgICAgICAgICAgICAgICAgc2V0IGFyZ3MgW2xyZXBsYWNlICRhcmdzIDAgMF0KLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0gCi0gICAgICAgICB9Ci0gICAgICAgICBjcmVhdGVfcmNfY29ybmVyIHsKLSAgICAgICAgICAgIHdoaWxlIHtbbGxlbmd0aCAkYXJnc10gPiAwfSB7Ci0gICAgICAgICAgICAgICBzZXQgb3B0aW9uIFtsaW5kZXggJGFyZ3MgMF0KLSAgICAgICAgICAgICAgIHNldCBhcmdzIFtscmVwbGFjZSAkYXJncyAwIDBdCi0gICAgICAgICAgICAgICBzd2l0Y2ggLXJlZ2V4cCAtLSAkb3B0aW9uIHsKLSAgICAgICAgICAgICAgICAgIC1uYW1lIHsKLSAgICAgICAgICAgICAgICAgICAgIHNldCByY19jb3JuZXIgW2xpbmRleCAkYXJncyAwXQotICAgICAgICAgICAgICAgICAgICAgUHV0cyAiPEZGPiBGb3VuZCByYyBjb3JuZXIgJHJjX2Nvcm5lciIgCi0gICAgICAgICAgICAgICAgICAgICBpZiB7IVtpbmZvIGV4aXN0cyB2YXJzKHJjX2Nvcm5lcnMpXX0gewotICAgICAgICAgICAgICAgICAgICAgICAgc2V0IHZhcnMocmNfY29ybmVycykgJHJjX2Nvcm5lcgotICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCB2YXJzKHJjX2Nvcm5lcnMpICRyY19jb3JuZXIKLSAgICAgICAgICAgICAgICAgICAgIH0gIAotICAgICAgICAgICAgICAgICAgICAgc2V0IGFyZ3MgW2xyZXBsYWNlICRhcmdzIDAgMF0KLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIC1UIHsKLSAgICAgICAgICAgICAgICAgICAgIHNldCB2YXJzKCRyY19jb3JuZXIsVCkgW2xpbmRleCAkYXJncyAwXQotICAgICAgICAgICAgICAgICAgICAgc2V0IGFyZ3MgW2xyZXBsYWNlICRhcmdzIDAgMF0KLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIC1jYXBfdGFibGUgewotICAgICAgICAgICAgICAgICAgICAgc2V0IHZhcnMoJHJjX2Nvcm5lcixjYXBfdGFibGUpIFtsaW5kZXggJGFyZ3MgMF0KLSAgICAgICAgICAgICAgICAgICAgIHNldCBhcmdzIFtscmVwbGFjZSAkYXJncyAwIDBdCi0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAtcXhfdGVjaF9maWxlIHsKLSAgICAgICAgICAgICAgICAgICAgIHNldCB2YXJzKCRyY19jb3JuZXIscXhfdGVjaF9maWxlKSBbbGluZGV4ICRhcmdzIDBdCi0gICAgICAgICAgICAgICAgICAgICBzZXQgYXJncyBbbHJlcGxhY2UgJGFyZ3MgMCAwXQotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgLXByZVJvdXRlX3JlcyB7Ci0gICAgICAgICAgICAgICAgICAgICAgc2V0IHZhcnMoJHJjX2Nvcm5lcixwcmVfcm91dGVfcmVzX2ZhY3RvcikgW2xpbmRleCAkYXJncyAwXQotICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIC1wcmVSb3V0ZV9jYXAgewotICAgICAgICAgICAgICAgICAgICAgIHNldCB2YXJzKCRyY19jb3JuZXIscHJlX3JvdXRlX2NhcF9mYWN0b3IpIFtsaW5kZXggJGFyZ3MgMF0KLSAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAtcHJlUm91dGVfY2xrcmVzIHsKLSAgICAgICAgICAgICAgICAgICAgICBzZXQgdmFycygkcmNfY29ybmVyLHByZV9yb3V0ZV9jbGtfcmVzX2ZhY3RvcikgW2xpbmRleCAkYXJncyAwXQotICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIC1wcmVSb3V0ZV9jbGtjYXAgewotICAgICAgICAgICAgICAgICAgICAgIHNldCB2YXJzKCRyY19jb3JuZXIscHJlX3JvdXRlX2Nsa19jYXBfZmFjdG9yKSBbbGluZGV4ICRhcmdzIDBdCi0gICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgLXBvc3RSb3V0ZV9yZXMgewotICAgICAgICAgICAgICAgICAgICAgIHNldCB2YXJzKCRyY19jb3JuZXIscG9zdF9yb3V0ZV9yZXNfZmFjdG9yKSBbbGluZGV4ICRhcmdzIDBdCi0gICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgLXBvc3RSb3V0ZV9jYXAgewotICAgICAgICAgICAgICAgICAgICAgIHNldCB2YXJzKCRyY19jb3JuZXIscG9zdF9yb3V0ZV9jYXBfZmFjdG9yKSBbbGluZGV4ICRhcmdzIDBdCi0gICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgLXBvc3RSb3V0ZV9yZXMgewotICAgICAgICAgICAgICAgICAgICAgIHNldCB2YXJzKCRyY19jb3JuZXIscG9zdF9yb3V0ZV9jbGtfcmVzX2ZhY3RvcikgW2xpbmRleCAkYXJncyAwXQotICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIC1wb3N0Um91dGVfY2xrY2FwIHsKLSAgICAgICAgICAgICAgICAgICAgICBzZXQgdmFycygkcmNfY29ybmVyLHBvc3Rfcm91dGVfY2xrX2NhcF9mYWN0b3IpIFtsaW5kZXggJGFyZ3MgMF0KLSAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAtcG9zdFJvdXRlX2Nsa3JlcyB7Ci0gICAgICAgICAgICAgICAgICAgICAgc2V0IHZhcnMoJHJjX2Nvcm5lcixwb3N0X3JvdXRlX2Nsa19yZXNfZmFjdG9yKSBbbGluZGV4ICRhcmdzIDBdCi0gICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgLXBvc3RSb3V0ZV94Y2FwIHsKLSAgICAgICAgICAgICAgICAgICAgICBzZXQgdmFycygkcmNfY29ybmVyLHBvc3Rfcm91dGVfeGNhcF9mYWN0b3IpIFtsaW5kZXggJGFyZ3MgMF0KLSAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9IAotICAgICAgICAgfQotICAgICAgICAgY3JlYXRlX2xpYnJhcnlfc2V0IHsKLSAgICAgICAgICAgIHdoaWxlIHtbbGxlbmd0aCAkYXJnc10gPiAwfSB7Ci0gICAgICAgICAgICAgICBzZXQgb3B0aW9uIFtsaW5kZXggJGFyZ3MgMF0KLSAgICAgICAgICAgICAgIHNldCBhcmdzIFtscmVwbGFjZSAkYXJncyAwIDBdCi0gICAgICAgICAgICAgICBzd2l0Y2ggLXJlZ2V4cCAtLSAkb3B0aW9uIHsKLSAgICAgICAgICAgICAgICAgIC1uYW1lIHsKLSAgICAgICAgICAgICAgICAgICAgIHNldCBsaWJyYXJ5X3NldCBbbGluZGV4ICRhcmdzIDBdCi0gICAgICAgICAgICAgICAgICAgICBQdXRzICI8RkY+IEZvdW5kIGxpYnJhcnkgc2V0ICRsaWJyYXJ5X3NldCIgCi0gICAgICAgICAgICAgICAgICAgICBpZiB7IVtpbmZvIGV4aXN0cyB2YXJzKGxpYnJhcnlfc2V0cyldfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBzZXQgdmFycyhsaWJyYXJ5X3NldHMpICRsaWJyYXJ5X3NldAotICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCB2YXJzKGxpYnJhcnlfc2V0cykgJGxpYnJhcnlfc2V0Ci0gICAgICAgICAgICAgICAgICAgICB9ICAKLSAgICAgICAgICAgICAgICAgICAgIHNldCBhcmdzIFtscmVwbGFjZSAkYXJncyAwIDBdCi0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAtdGltaW5nIHsKLSAgICAgICAgICAgICAgICAgICAgIHNldCB2YXJzKCRsaWJyYXJ5X3NldCx0aW1pbmcpIFtsaW5kZXggJGFyZ3MgMF0KLSAgICAgICAgICAgICAgICAgICAgIHNldCBhcmdzIFtscmVwbGFjZSAkYXJncyAwIDBdCi0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9IAotICAgICAgICAgfQotICAgICAgICAgY3JlYXRlX2RlbGF5X2Nvcm5lciB7Ci0gICAgICAgICAgICB3aGlsZSB7W2xsZW5ndGggJGFyZ3NdID4gMH0gewotICAgICAgICAgICAgICAgc2V0IG9wdGlvbiBbbGluZGV4ICRhcmdzIDBdCi0gICAgICAgICAgICAgICBzZXQgYXJncyBbbHJlcGxhY2UgJGFyZ3MgMCAwXQotICAgICAgICAgICAgICAgc3dpdGNoIC1yZWdleHAgLS0gJG9wdGlvbiB7Ci0gICAgICAgICAgICAgICAgICAtbmFtZSB7Ci0gICAgICAgICAgICAgICAgICAgICBzZXQgZGVsYXlfY29ybmVyIFtsaW5kZXggJGFyZ3MgMF0KLSAgICAgICAgICAgICAgICAgICAgIFB1dHMgIjxGRj4gRm91bmQgZGVsYXkgY29ybmVyICRkZWxheV9jb3JuZXIiIAotICAgICAgICAgICAgICAgICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycyhkZWxheV9jb3JuZXJzKV19IHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHNldCB2YXJzKGRlbGF5X2Nvcm5lcnMpICRkZWxheV9jb3JuZXIKLSAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgdmFycyhkZWxheV9jb3JuZXJzKSAkZGVsYXlfY29ybmVyCi0gICAgICAgICAgICAgICAgICAgICB9ICAKLSAgICAgICAgICAgICAgICAgICAgIHNldCBhcmdzIFtscmVwbGFjZSAkYXJncyAwIDBdCi0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAtbGlicmFyeV9zZXQgewotICAgICAgICAgICAgICAgICAgICAgc2V0IHZhcnMoJGRlbGF5X2Nvcm5lcixsaWJyYXJ5X3NldCkgW2xpbmRleCAkYXJncyAwXQotICAgICAgICAgICAgICAgICAgICAgc2V0IGFyZ3MgW2xyZXBsYWNlICRhcmdzIDAgMF0KLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIC1yY19jb3JuZXIgewotICAgICAgICAgICAgICAgICAgICAgc2V0IHZhcnMoJGRlbGF5X2Nvcm5lcixyY19jb3JuZXIpIFtsaW5kZXggJGFyZ3MgMF0KLSAgICAgICAgICAgICAgICAgICAgIHNldCBhcmdzIFtscmVwbGFjZSAkYXJncyAwIDBdCi0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9IAotICAgICAgICAgfQotICAgICAgICAgY3JlYXRlX2NvbnN0cmFpbnRfbW9kZSB7Ci0gICAgICAgICAgICB3aGlsZSB7W2xsZW5ndGggJGFyZ3NdID4gMH0gewotICAgICAgICAgICAgICAgc2V0IG9wdGlvbiBbbGluZGV4ICRhcmdzIDBdCi0gICAgICAgICAgICAgICBzZXQgYXJncyBbbHJlcGxhY2UgJGFyZ3MgMCAwXQotICAgICAgICAgICAgICAgc3dpdGNoIC1yZWdleHAgLS0gJG9wdGlvbiB7Ci0gICAgICAgICAgICAgICAgICAtbmFtZSB7Ci0gICAgICAgICAgICAgICAgICAgICBzZXQgY29uc3RyYWludF9tb2RlIFtsaW5kZXggJGFyZ3MgMF0KLSAgICAgICAgICAgICAgICAgICAgIFB1dHMgIjxGRj4gRm91bmQgY29uc3RyYWludCBtb2RlICRjb25zdHJhaW50X21vZGUiIAotICAgICAgICAgICAgICAgICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycyhjb25zdHJhaW50X21vZGVzKV19IHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHNldCB2YXJzKGNvbnN0cmFpbnRfbW9kZXMpICRjb25zdHJhaW50X21vZGUKLSAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgdmFycyhkZWxheV9jb3JuZXJzKSAkY29uc3RyYWludF9tb2RlCi0gICAgICAgICAgICAgICAgICAgICB9ICAKLSAgICAgICAgICAgICAgICAgICAgIHNldCBhcmdzIFtscmVwbGFjZSAkYXJncyAwIDBdCi0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAtc2RjX2ZpbGVzIHsKLSAgICAgICAgICAgICAgICAgICAgIHNldCB2YXJzKCRjb25zdHJhaW50X21vZGUsc2RjX2ZpbGVzKSBbbGluZGV4ICRhcmdzIDBdCi0gICAgICAgICAgICAgICAgICAgICBzZXQgdmFycygkY29uc3RyYWludF9tb2RlLHByZV9jdHNfc2RjKSBbbGluZGV4ICRhcmdzIDBdCi0gICAgICAgICAgICAgICAgICAgICBzZXQgYXJncyBbbHJlcGxhY2UgJGFyZ3MgMCAwXQotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgLWlsbV9zZGNfZmlsZXMgewotICAgICAgICAgICAgICAgICAgICAgc2V0IHZhcnMoJGNvbnN0cmFpbnRfbW9kZSxpbG1fc2RjX2ZpbGVzKSBbbGluZGV4ICRhcmdzIDBdCi0gICAgICAgICAgICAgICAgICAgICBzZXQgYXJncyBbbHJlcGxhY2UgJGFyZ3MgMCAwXQotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfSAKLSAgICAgICAgIH0KLSAgICAgICAgIGNyZWF0ZV9hbmFseXNpc192aWV3IHsKLSAgICAgICAgICAgIHdoaWxlIHtbbGxlbmd0aCAkYXJnc10gPiAwfSB7Ci0gICAgICAgICAgICAgICBzZXQgb3B0aW9uIFtsaW5kZXggJGFyZ3MgMF0KLSAgICAgICAgICAgICAgIHNldCBhcmdzIFtscmVwbGFjZSAkYXJncyAwIDBdCi0gICAgICAgICAgICAgICBzd2l0Y2ggLXJlZ2V4cCAtLSAkb3B0aW9uIHsKLSAgICAgICAgICAgICAgICAgIC1uYW1lIHsKLSAgICAgICAgICAgICAgICAgICAgIHNldCBhbmFseXNpc192aWV3IFtsaW5kZXggJGFyZ3MgMF0KLSAgICAgICAgICAgICAgICAgICAgIGlmIHshW2luZm8gZXhpc3RzIHZhcnMoY29uc3RyYWludF9tb2RlcyldfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBzZXQgdmFycyhhbmFseXNpc192aWV3cykgJGFuYWx5c2lzX3ZpZXcKLSAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgdmFycyhhbmFseXNpc192aWV3cykgJGFuYWx5c2lzX3ZpZXcKLSAgICAgICAgICAgICAgICAgICAgIH0gIAotICAgICAgICAgICAgICAgICAgICAgc2V0IGFyZ3MgW2xyZXBsYWNlICRhcmdzIDAgMF0KLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIC1jb25zdHJhaW50X21vZGUgewotICAgICAgICAgICAgICAgICAgICAgc2V0IHZhcnMoJGFuYWx5c2lzX3ZpZXcsY29uc3RyYWludF9tb2RlKSBbbGluZGV4ICRhcmdzIDBdCi0gICAgICAgICAgICAgICAgICAgICBzZXQgYXJncyBbbHJlcGxhY2UgJGFyZ3MgMCAwXQotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgLWRlbGF5X2Nvcm5lciB7Ci0gICAgICAgICAgICAgICAgICAgICBzZXQgdmFycygkYW5hbHlzaXNfdmlldyxkZWxheV9jb3JuZXIpIFtsaW5kZXggJGFyZ3MgMF0KLSAgICAgICAgICAgICAgICAgICAgIHNldCBhcmdzIFtscmVwbGFjZSAkYXJncyAwIDBdCi0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9IAotICAgICAgICAgfQotICAgICAgfQotICAgfQotCi0gICBwcm9jIHNlZWRfY29tbWFuZHMge2NvbW1hbmRfc3RyaW5nfSB7Ci0KLSAgICAgIGdsb2JhbCB2YXJzCi0KLSAgICAgIHNldCBjb21tYW5kIFtsaW5kZXggJGNvbW1hbmRfc3RyaW5nIDBdCi0gICAgICBzZXQgYXJncyBbbHJlcGxhY2UgJGNvbW1hbmRfc3RyaW5nIDAgMF0KLQotICAgICAgUHV0cyAiPEZGPiBQcm9jZXNzaW5nIG1vZGUgY29tbWFuZHMgJGNvbW1hbmQgLi4uIiAKLQotICAgICAgc3dpdGNoICRjb21tYW5kIHsKLSAgICAgICAgIHNldERlc2lnbk1vZGUgewotICAgICAgICAgICAgc2V0IHZhcnMoc2V0X2Rlc2lnbl9tb2RlKSAkY29tbWFuZF9zdHJpbmcKLSAgICAgICAgIH0KLSAgICAgICAgIHNldFRpZUhpTG9Nb2RlIHsKLSAgICAgICAgICAgIHNldCB2YXJzKHNldF90aWVoaWxvX21vZGUpICRjb21tYW5kX3N0cmluZwotICAgICAgICAgfQotICAgICAgICAgc2V0UGxhY2VNb2RlIHsKLSAgICAgICAgICAgIHNldCB2YXJzKHNldF9wbGFjZV9tb2RlKSAkY29tbWFuZF9zdHJpbmcKLSAgICAgICAgIH0KLSAgICAgICAgIHNldERlbGF5Q2FsTW9kZSB7Ci0gICAgICAgICAgICBzZXQgdmFycyhzZXRfZGVsYXlfY2FsX21vZGUpICRjb21tYW5kX3N0cmluZwotICAgICAgICAgfQotICAgICAgICAgc2V0T3B0TW9kZSB7Ci0gICAgICAgICAgICBzZXQgdmFycyhzZXRfb3B0X21vZGUpICRjb21tYW5kX3N0cmluZwotICAgICAgICAgfQotICAgICAgICAgc2V0Q1RTTW9kZSB7Ci0gICAgICAgICAgICBzZXQgdmFycyhzZXRfY3RzX21vZGUpICRjb21tYW5kX3N0cmluZwotICAgICAgICAgfQotICAgICAgICAgc2V0Q0NPcHRNb2RlIHsKLSAgICAgICAgICAgIHNldCB2YXJzKHNldF9jY29wdF9tb2RlKSAkY29tbWFuZF9zdHJpbmcKLSAgICAgICAgIH0KLSAgICAgICAgIHNldEZpbGxlck1vZGUgewotICAgICAgICAgICAgc2V0IHZhcnMoc2V0X2ZpbGxlcl9tb2RlKSAkY29tbWFuZF9zdHJpbmcKLSAgICAgICAgIH0KLSAgICAgICAgIHNldE5hbm9Sb3V0ZU1vZGUgewotICAgICAgICAgICAgc2V0IHZhcnMoc2V0X3JvdXRlX21vZGUpICRjb21tYW5kX3N0cmluZwotICAgICAgICAgfQotICAgICAgICAgc2V0RXh0cmFjdFJDTW9kZSB7Ci0gICAgICAgICAgICBzZXQgdmFycyhzZXRfZXh0cmFjdF9yY19tb2RlKSAkY29tbWFuZF9zdHJpbmcKLSAgICAgICAgIH0KLSAgICAgICAgIHNldFNJTW9kZSB7Ci0gICAgICAgICAgICBzZXQgdmFycyhzZXRfc2lfbW9kZSkgJGNvbW1hbmRfc3RyaW5nCi0gICAgICAgICB9Ci0gICAgICB9Ci0gICB9Ci19CmRpZmYgLS1naXQgYS9mbG93L3Buci9FWEFNUExFUy9JTk5PVlVTL0RFU0lHTi9TQ1JJUFRTL0VUQy9JTk5PVlVTL3J1Ymljb24udGNsIGIvZmxvdy9wbnIvRVhBTVBMRVMvSU5OT1ZVUy9ERVNJR04vU0NSSVBUUy9FVEMvSU5OT1ZVUy9ydWJpY29uLnRjbApkZWxldGVkIGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggYmRlMjI4OS4uMDAwMDAwMAotLS0gYS9mbG93L3Buci9FWEFNUExFUy9JTk5PVlVTL0RFU0lHTi9TQ1JJUFRTL0VUQy9JTk5PVlVTL3J1Ymljb24udGNsCisrKyAvZGV2L251bGwKQEAgLTEsNjM2ICswLDAgQEAKLXNldCByIFtjYXRjaCB7aW5mbyBsZXZlbCBbZXhwciBbaW5mbyBsZXZlbF0gLTFdfSBlXQotCi1pZiB7JHJ9IHsKLQotICAgc2V0IHZhcnMobGludCkgMQotIyBPdmVybG9hZCBjb21tYW5kIGJlaGF2aW9yCi0gICBjYXRjaCB7cmVuYW1lIHNldERlc2lnbk1vZGUgc2V0RGVzaWduTW9kZU9yaWd9Ci0gICBjYXRjaCB7cmVuYW1lIHNldEFuYWx5c2lzTW9kZSBzZXRBbmFseXNpc01vZGVPcmlnfQotICAgY2F0Y2gge3JlbmFtZSBzZXREZWxheUNhbE1vZGUgc2V0RGVsYXlDYWxNb2RlT3JpZ30KLSAgIGNhdGNoIHtyZW5hbWUgc2V0VGllSGlMb01vZGUgc2V0VGllSGlMb01vZGVPcmlnfQotICAgY2F0Y2gge3JlbmFtZSBzZXRQbGFjZU1vZGUgc2V0UGxhY2VNb2RlT3JpZ30KLSAgIGNhdGNoIHtyZW5hbWUgc2V0Q1RTTW9kZSBzZXRDVFNNb2RlT3JpZ30KLSAgIGNhdGNoIHtyZW5hbWUgc2V0Q0NPcHRNb2RlIHNldENDT3B0TW9kZU9yaWd9Ci0gICBjYXRjaCB7cmVuYW1lIHNldEZpbGxlck1vZGUgc2V0RmlsbGVyTW9kZU9yaWd9Ci0gICBjYXRjaCB7cmVuYW1lIHNldE5hbm9Sb3V0ZU1vZGUgc2V0TmFub1JvdXRlTW9kZU9yaWd9Ci0gICBjYXRjaCB7cmVuYW1lIHNldEV4dHJhY3RSQ01vZGUgc2V0RXh0cmFjdFJDTW9kZU9yaWd9Ci0gICBjYXRjaCB7cmVuYW1lIHNldFNJTW9kZSBzZXRTSU1vZGVPcmlnfQotICAgICAgCi0gICBjYXRjaCB7cmVuYW1lIGNyZWF0ZV9saWJyYXJ5X3NldCBjcmVhdGVfbGlicmFyeV9zZXRfb3JpZ30KLSAgIGNhdGNoIHtyZW5hbWUgY3JlYXRlX3JjX2Nvcm5lciBjcmVhdGVfcmNfY29ybmVyX29yaWd9Ci0gICBjYXRjaCB7cmVuYW1lIGNyZWF0ZV9kZWxheV9jb3JuZXIgY3JlYXRlX2RlbGF5X2Nvcm5lcl9vcmlnfQotICAgY2F0Y2gge3JlbmFtZSBjcmVhdGVfY29uc3RyYWludF9tb2RlIGNyZWF0ZV9jb25zdHJhaW50X21vZGVfb3JpZ30KLSAgIGNhdGNoIHtyZW5hbWUgY3JlYXRlX2FuYWx5c2lzX3ZpZXcgY3JlYXRlX2FuYWx5c2lzX3ZpZXdfb3JpZ30KLSAgIGNhdGNoIHtyZW5hbWUgc2V0X2FuYWx5c2lzX3ZpZXcgc2V0X2FuYWx5c2lzX3ZpZXdfb3JpZ30KLSAgIGNhdGNoIHtyZW5hbWUgc2V0X3Bvd2VyX2FuYWx5c2lzX3ZpZXcgc2V0X3Bvd2VyX2FuYWx5c2lzX3ZpZXdfb3JpZ30KLSAgIAotICAgcHJvYyBzZXREZXNpZ25Nb2RlIHthcmdzfSB7Ci0gICAgICBnbG9iYWwgdmFycwotICAgICAgaWYgeyR2YXJzKGxpbnQpfSB7IAotICAgICAgICAgZmZfZWRpOjpzZWVkX2NvbW1hbmRzICJzZXREZXNpZ25Nb2RlICRhcmdzIgotICAgICAgICAgZmZfZWRpOjpzZWVkX29wdGlvbnMgInNldERlc2lnbk1vZGUgJGFyZ3MiCi0gICAgICB9IGVsc2UgewotICAgICAgICAgc2V0RGVzaWduTW9kZU9yaWcgJGFyZ3MKLSAgICAgIH0KLSAgIH0KLSAgIHByb2Mgc2V0QW5hbHlzaXNNb2RlIHthcmdzfSB7Ci0gICAgICBnbG9iYWwgdmFycwotICAgICAgaWYgeyR2YXJzKGxpbnQpfSB7IAotICAgICAgICAgZmZfZWRpOjpzZWVkX2NvbW1hbmRzICJzZXRBbmFseXNpc01vZGUgJGFyZ3MiCi0gICAgICAgICBmZl9lZGk6OnNlZWRfb3B0aW9ucyAic2V0QW5hbHlzaXNNb2RlICRhcmdzIgotICAgICAgfSBlbHNlIHsKLSAgICAgICAgIHNldEFuYWx5c2lzTW9kZU9yaWcgJGFyZ3MKLSAgICAgIH0KLSAgIH0KLSAgIHByb2Mgc2V0RGVsYXlDYWxNb2RlIHthcmdzfSB7Ci0gICAgICBnbG9iYWwgdmFycwotICAgICAgaWYgeyR2YXJzKGxpbnQpfSB7IAotICAgICAgICAgZmZfZWRpOjpzZWVkX2NvbW1hbmRzICJzZXREZWxheUNhbE1vZGUgJGFyZ3MiCi0gICAgICB9IGVsc2UgewotICAgICAgICAgc2V0RGVsYXlDYWxNb2RlT3JpZyAkYXJncwotICAgICAgfQotICAgfQotICAgcHJvYyBzZXRUaWVIaUxvTW9kZSB7YXJnc30gewotICAgICAgZ2xvYmFsIHZhcnMKLSAgICAgIGlmIHskdmFycyhsaW50KX0geyAKLSAgICAgICAgIGZmX2VkaTo6c2VlZF9jb21tYW5kcyAic2V0VGllSGlMb01vZGUgJGFyZ3MiCi0gICAgICB9IGVsc2UgewotICAgICAgICAgc2V0VGllSGlMb01vZGVPcmlnICRhcmdzCi0gICAgICB9Ci0gICB9Ci0gICBwcm9jIHNldFBsYWNlTW9kZSB7YXJnc30gewotICAgICAgZ2xvYmFsIHZhcnMKLSAgICAgIGlmIHskdmFycyhsaW50KX0geyAKLSAgICAgICAgIGZmX2VkaTo6c2VlZF9jb21tYW5kcyAic2V0UGxhY2VNb2RlICRhcmdzIgotICAgICAgfSBlbHNlIHsKLSAgICAgICAgIHNldFBsYWNlTW9kZU9yaWcgJGFyZ3MKLSAgICAgIH0KLSAgIH0KLSAgIHByb2Mgc2V0Q1RTTW9kZSAge2FyZ3N9IHsKLSAgICAgIGdsb2JhbCB2YXJzCi0gICAgICBpZiB7JHZhcnMobGludCl9IHsgCi0gICAgICAgICBmZl9lZGk6OnNlZWRfY29tbWFuZHMgInNldENUU01vZGUgJGFyZ3MiCi0gICAgICB9IGVsc2UgewotICAgICAgICAgc2V0Q1RTTW9kZU9yaWcgJGFyZ3MKLSAgICAgIH0KLSAgIH0KLSAgIHByb2Mgc2V0Q0NPcHRNb2RlICB7YXJnc30gewotICAgICAgZ2xvYmFsIHZhcnMKLSAgICAgIGlmIHskdmFycyhsaW50KX0geyAKLSAgICAgICAgIGZmX2VkaTo6c2VlZF9jb21tYW5kcyAic2V0Q0NPcHRNb2RlICRhcmdzIgotICAgICAgfSBlbHNlIHsKLSAgICAgICAgIHNldENDT3B0TW9kZU9yaWcgJGFyZ3MKLSAgICAgIH0KLSAgIH0KLSAgIHByb2Mgc2V0RmlsbGVyTW9kZSAge2FyZ3N9IHsKLSAgICAgIGdsb2JhbCB2YXJzCi0gICAgICBpZiB7JHZhcnMobGludCl9IHsgCi0gICAgICAgICBmZl9lZGk6OnNlZWRfY29tbWFuZHMgInNldEZpbGxlck1vZGUgJGFyZ3MiCi0gICAgICB9IGVsc2UgewotICAgICAgICAgc2V0RmlsbGVyTW9kZU9yaWcgJGFyZ3MKLSAgICAgIH0KLSAgIH0KLSAgIHByb2Mgc2V0TmFub1JvdXRlTW9kZSAge2FyZ3N9IHsKLSAgICAgIGdsb2JhbCB2YXJzCi0gICAgICBpZiB7JHZhcnMobGludCl9IHsgCi0gICAgICAgICBmZl9lZGk6OnNlZWRfY29tbWFuZHMgInNldE5hbm9Sb3V0ZU1vZGUgJGFyZ3MiCi0gICAgICB9IGVsc2UgewotICAgICAgICAgc2V0TmFub1JvdXRlTW9kZU9yaWcgJGFyZ3MKLSAgICAgIH0KLSAgIH0KLSAgIHByb2Mgc2V0RXh0cmFjdFJDTW9kZSAge2FyZ3N9IHsKLSAgICAgIGdsb2JhbCB2YXJzCi0gICAgICBpZiB7JHZhcnMobGludCl9IHsgCi0gICAgICAgICBmZl9lZGk6OnNlZWRfY29tbWFuZHMgInNldEV4dHJhY3RSQ01vZGUgJGFyZ3MiCi0gICAgICB9IGVsc2UgewotICAgICAgICAgc2V0RXh0cmFjdFJDTW9kZU9yaWcgJGFyZ3MKLSAgICAgIH0KLSAgIH0KLSAgIHByb2Mgc2V0U0lNb2RlICB7YXJnc30gewotICAgICAgZ2xvYmFsIHZhcnMKLSAgICAgIGlmIHskdmFycyhsaW50KX0geyAKLSAgIAkgIGZmX2VkaTo6c2VlZF9jb21tYW5kcyAic2V0U0lNb2RlICRhcmdzIgotICAgICAgfSBlbHNlIHsKLSAgIAkgIHNldFNJTW9kZU9yaWcgJGFyZ3MKLSAgICAgIH0KLSAgIH0KLSAgIAotICAgcHJvYyBjcmVhdGVfcmNfY29ybmVyIHthcmdzfSB7Ci0gICAgICBnbG9iYWwgdmFycwotICAgICAgaWYgeyR2YXJzKGxpbnQpfSB7IAotICAgICAgICAgZmZfZWRpOjpzZWVkX29wdGlvbnMgImNyZWF0ZV9yY19jb3JuZXIgJGFyZ3MiCi0gICAgICB9IGVsc2UgewotICAgICAgICAgY3JlYXRlX3JjX2Nvcm5lcl9vcmlnICRhcmdzCi0gICAgICB9Ci0gICB9Ci0gICAKLSAgIHByb2MgY3JlYXRlX2xpYnJhcnlfc2V0IHthcmdzfSB7Ci0gICAgICBnbG9iYWwgdmFycwotICAgICAgaWYgeyR2YXJzKGxpbnQpfSB7IAotICAgICAgICAgZmZfZWRpOjpzZWVkX29wdGlvbnMgImNyZWF0ZV9saWJyYXJ5X3NldCAkYXJncyIKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgICBjcmVhdGVfbGlicmFyeV9zZXRfb3JpZyAkYXJncwotICAgICAgfQotICAgfQotICAgCi0gICBwcm9jIGNyZWF0ZV9kZWxheV9jb3JuZXIge2FyZ3N9IHsKLSAgICAgIGdsb2JhbCB2YXJzCi0gICAgICBpZiB7JHZhcnMobGludCl9IHsgCi0gICAgICAgICBmZl9lZGk6OnNlZWRfb3B0aW9ucyAiY3JlYXRlX2RlbGF5X2Nvcm5lciAkYXJncyIKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgICBjcmVhdGVfZGVsYXlfY29ybmVyX29yaWcgJGFyZ3MKLSAgICAgIH0KLSAgIH0KLSAgIAotICAgcHJvYyBjcmVhdGVfY29uc3RyYWludF9tb2RlIHthcmdzfSB7Ci0gICAgICBnbG9iYWwgdmFycwotICAgICAgaWYgeyR2YXJzKGxpbnQpfSB7IAotICAgICAgICAgZmZfZWRpOjpzZWVkX29wdGlvbnMgImNyZWF0ZV9jb25zdHJhaW50X21vZGUgJGFyZ3MiCi0gICAgICB9IGVsc2UgewotICAgICAgICAgY3JlYXRlX2NvbnN0cmFpbnRfbW9kZV9vcmlnICRhcmdzCi0gICAgICB9Ci0gICB9Ci0gICAKLSAgIHByb2MgY3JlYXRlX2FuYWx5c2lzX3ZpZXcge2FyZ3N9IHsKLSAgICAgIGdsb2JhbCB2YXJzCi0gICAgICBpZiB7JHZhcnMobGludCl9IHsgCi0gICAgICAgICBmZl9lZGk6OnNlZWRfb3B0aW9ucyAiY3JlYXRlX2FuYWx5c2lzX3ZpZXcgJGFyZ3MiCi0gICAgICB9IGVsc2UgewotICAgICAgICAgY3JlYXRlX2FuYWx5c2lzX3ZpZXdfb3JpZyAkYXJncwotICAgICAgfQotICAgfQotICAgCi0gICBwcm9jIHNldF9hbmFseXNpc192aWV3IHthcmdzfSB7Ci0gICAgICBnbG9iYWwgdmFycwotICAgICAgaWYgeyR2YXJzKGxpbnQpfSB7IAotICAgICAgICAgZmZfZWRpOjpzZWVkX29wdGlvbnMgInNldF9hbmFseXNpc192aWV3ICRhcmdzIgotICAgICAgfSBlbHNlIHsKLSAgICAgICAgIHNldF9hbmFseXNpc192aWV3X29yaWcgJGFyZ3MKLSAgICAgIH0KLSAgIH0KLSAgIAotICAgcHJvYyBzZXRfcG93ZXJfYW5hbHlzaXNfdmlldyB7YXJnc30gewotICAgICAgZ2xvYmFsIHZhcnMKLSAgICAgIGlmIHskdmFycyhsaW50KX0geyAKLSAgICAgICAgIGZmX2VkaTo6c2VlZF9vcHRpb25zICJzZXRfcG93ZXJfYW5hbHlzaXNfdmlldyAkYXJncyIKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgICBzZXRfcG93ZXJfYW5hbHlzaXNfdmlldyAkYXJncwotICAgICAgfQotICAgfQotICAgCi0gICBuYW1lc3BhY2UgZXZhbCBmZl9lZGkgewotICAgCi0gICAgICBwcm9jIHNlZWRfb3B0aW9ucyB7Y29tbWFuZF9zdHJpbmd9IHsKLSAgIAotICAgICAgICAgZ2xvYmFsIHZhcnMKLSAgIAotICAgICAgICAgc2V0IGNvbW1hbmQgW2xpbmRleCAkY29tbWFuZF9zdHJpbmcgMF0KLSAgICAgICAgIHNldCBhcmdzIFtscmVwbGFjZSAkY29tbWFuZF9zdHJpbmcgMCAwXQotICAgCi0gICAgICAgICBzd2l0Y2ggJGNvbW1hbmQgewotICAgICAgICAgICAgc2V0RGVzaWduTW9kZSB7Ci0gICAgICAgICAgICAgICB3aGlsZSB7W2xsZW5ndGggJGFyZ3NdID4gMH0gewotICAgICAgICAgICAgICAgICAgc2V0IG9wdGlvbiBbbGluZGV4ICRhcmdzIDBdCi0gICAgICAgICAgICAgICAgICBzZXQgYXJncyBbbHJlcGxhY2UgJGFyZ3MgMCAwXQotICAgICAgICAgICAgICAgICAgc3dpdGNoIC1yZWdleHAgLS0gJG9wdGlvbiB7Ci0gICAgICAgICAgICAgICAgICAgICBwcm9jZXNzIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHNldCB2YXJzKHByb2Nlc3MpIFtsaW5kZXggJGFyZ3MgMF0KLSAgICAgICAgICAgICAgICAgICAgICAgIHNldCBhcmdzIFtscmVwbGFjZSAkYXJncyAwIDBdCi0gICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICB9IAotICAgICAgICAgICAgfQotICAgICAgICAgICAgc2V0RGVsYXlDYWxNb2RlIHsKLSAgICAgICAgICAgICAgIHdoaWxlIHtbbGxlbmd0aCAkYXJnc10gPiAwfSB7Ci0gICAgICAgICAgICAgICAgICBzZXQgb3B0aW9uIFtsaW5kZXggJGFyZ3MgMF0KLSAgICAgICAgICAgICAgICAgIHNldCBhcmdzIFtscmVwbGFjZSAkYXJncyAwIDBdCi0gICAgICAgICAgICAgICAgICBzd2l0Y2ggLXJlZ2V4cCAtLSAkb3B0aW9uIHsKLSAgICAgICAgICAgICAgICAgICAgIGVuZ2luZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiB7W3N0cmluZyB0b2xvd2VyIFtsaW5kZXggJGFyZ3MgMF0gPT0gImFhZSJ9IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldCB2YXJzKGVuYWJsZV9zaV9hd2FyZSkgdHJ1ZSAgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBzZXQgYXJncyBbbHJlcGxhY2UgJGFyZ3MgMCAwXQotICAgICAgICAgICAgICAgICAgICAgICAgfSAKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIHtbc3RyaW5nIHRvbG93ZXIgW2xpbmRleCAkYXJncyAwXSA9PSAic2lnbmFsc3Rvcm0ifSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICBzZXQgdmFycyhlbmFibGVfc3MpIHRydWUgIAotICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0IGFyZ3MgW2xyZXBsYWNlICRhcmdzIDAgMF0KLSAgICAgICAgICAgICAgICAgICAgICAgIH0gCi0gICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICB9IAotICAgICAgICAgICAgfQotICAgICAgICAgICAgc2V0QW5hbHlzaXNNb2RlIHsKLSAgICAgICAgICAgICAgIHdoaWxlIHtbbGxlbmd0aCAkYXJnc10gPiAwfSB7Ci0gICAgICAgICAgICAgICAgICBzZXQgb3B0aW9uIFtsaW5kZXggJGFyZ3MgMF0KLSAgICAgICAgICAgICAgICAgIHNldCBhcmdzIFtscmVwbGFjZSAkYXJncyAwIDBdCi0gICAgICAgICAgICAgICAgICBzd2l0Y2ggLXJlZ2V4cCAtLSAkb3B0aW9uIHsKLSAgICAgICAgICAgICAgICAgICAgIGNwcHIgewotICAgICAgICAgICAgICAgICAgICAgICAgc2V0IHZhcnMoZW5hYmxlX2NwcHIpIFtsaW5kZXggJGFyZ3MgMF0KLSAgICAgICAgICAgICAgICAgICAgICAgIHNldCBhcmdzIFtscmVwbGFjZSAkYXJncyAwIDBdCi0gICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICBhb2N2IHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHNldCB2YXJzKGVuYWJsZV9hb2N2KSBbbGluZGV4ICRhcmdzIDBdCi0gICAgICAgICAgICAgICAgICAgICAgICBzZXQgYXJncyBbbHJlcGxhY2UgJGFyZ3MgMCAwXQotICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgb25DaGlwVmFyaWF0aW9uIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHNldCB2YXJzKGVuYWJsZV9vY3YpIFtsaW5kZXggJGFyZ3MgMF0KLSAgICAgICAgICAgICAgICAgICAgICAgIHNldCBhcmdzIFtscmVwbGFjZSAkYXJncyAwIDBdCi0gICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICB9IAotICAgICAgICAgICAgfQotICAgICAgICAgICAgc2V0UGxhY2VNb2RlIHsKLSAgICAgICAgICAgICAgIHdoaWxlIHtbbGxlbmd0aCAkYXJnc10gPiAwfSB7Ci0gICAgICAgICAgICAgICAgICBzZXQgb3B0aW9uIFtsaW5kZXggJGFyZ3MgMF0KLSAgICAgICAgICAgICAgICAgIHNldCBhcmdzIFtscmVwbGFjZSAkYXJncyAwIDBdCi0gICAgICAgICAgICAgICAgICBzd2l0Y2ggLXJlZ2V4cCAtLSAkb3B0aW9uIHsKLSAgICAgICAgICAgICAgICAgICAgIHBsYWNlSW9QaW5zIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHNldCB2YXJzKHBsYWNlX2lvX3BpbnMpIFtsaW5kZXggJGFyZ3MgMF0KLSAgICAgICAgICAgICAgICAgICAgICAgIHNldCBhcmdzIFtscmVwbGFjZSAkYXJncyAwIDBdCi0gICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICBjb25nRWZmb3J0IHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHNldCB2YXJzKGNvbmdlc3Rpb25fZWZmb3J0KSBbbGluZGV4ICRhcmdzIDBdCi0gICAgICAgICAgICAgICAgICAgICAgICBzZXQgYXJncyBbbHJlcGxhY2UgJGFyZ3MgMCAwXQotICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgfSAKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHNldE9wdE1vZGUgewotICAgICAgICAgICAgICAgd2hpbGUge1tsbGVuZ3RoICRhcmdzXSA+IDB9IHsKLSAgICAgICAgICAgICAgICAgIHNldCBvcHRpb24gW2xpbmRleCAkYXJncyAwXQotICAgICAgICAgICAgICAgICAgc2V0IGFyZ3MgW2xyZXBsYWNlICRhcmdzIDAgMF0KLSAgICAgICAgICAgICAgICAgIHN3aXRjaCAtcmVnZXhwIC0tICRvcHRpb24gewotICAgICAgICAgICAgICAgICAgICAgYWxsRW5kUG9pbnRzIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHNldCB2YXJzKGFsbF9lbmRfcG9pbnRzKSBbbGluZGV4ICRhcmdzIDBdCi0gICAgICAgICAgICAgICAgICAgICAgICBzZXQgYXJncyBbbHJlcGxhY2UgJGFyZ3MgMCAwXQotICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgcHJlc2VydmVBc3NzZXJ0aW9ucyB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBzZXQgdmFycyhwcmVzZXJ2ZV9hc3NlcnRpb25zKSBbbGluZGV4ICRhcmdzIDBdCi0gICAgICAgICAgICAgICAgICAgICAgICBzZXQgYXJncyBbbHJlcGxhY2UgJGFyZ3MgMCAwXQotICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgbGVha2FnZVBvd2VyRWZmb3J0IHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHNldCB2YXJzKGxlYWthZ2VfcG93ZXJfZWZmb3J0KSBbbGluZGV4ICRhcmdzIDBdCi0gICAgICAgICAgICAgICAgICAgICAgICBzZXQgYXJncyBbbHJlcGxhY2UgJGFyZ3MgMCAwXQotICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgZHluYW1pY1Bvd2VyRWZmb3J0IHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHNldCB2YXJzKGxlYWthZ2VfcG93ZXJfZWZmb3J0KSBbbGluZGV4ICRhcmdzIDBdCi0gICAgICAgICAgICAgICAgICAgICAgICBzZXQgYXJncyBbbHJlcGxhY2UgJGFyZ3MgMCAwXQotICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgfSAKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHNldENUU01vZGUgewotICAgICAgICAgICAgICAgd2hpbGUge1tsbGVuZ3RoICRhcmdzXSA+IDB9IHsKLSAgICAgICAgICAgICAgICAgIHNldCBvcHRpb24gW2xpbmRleCAkYXJncyAwXQotICAgICAgICAgICAgICAgICAgc2V0IGFyZ3MgW2xyZXBsYWNlICRhcmdzIDAgMF0KLSAgICAgICAgICAgICAgICAgIHN3aXRjaCAtcmVnZXhwIC0tICRvcHRpb24gewotICAgICAgICAgICAgICAgICAgICAgcm91dGVDbGtOZXRzIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHNldCB2YXJzKHJvdXRlX2Nsb2NrX25ldHMpIFtsaW5kZXggJGFyZ3MgMF0KLSAgICAgICAgICAgICAgICAgICAgICAgIHNldCBhcmdzIFtscmVwbGFjZSAkYXJncyAwIDBdCi0gICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICB9IAotICAgICAgICAgICAgfQotICAgICAgICAgICAgc2V0TmFub1JvdXRlTW9kZSB7Ci0gICAgICAgICAgICAgICB3aGlsZSB7W2xsZW5ndGggJGFyZ3NdID4gMH0gewotICAgICAgICAgICAgICAgICAgc2V0IG9wdGlvbiBbbGluZGV4ICRhcmdzIDBdCi0gICAgICAgICAgICAgICAgICBzZXQgYXJncyBbbHJlcGxhY2UgJGFyZ3MgMCAwXQotICAgICAgICAgICAgICAgICAgc3dpdGNoIC1yZWdleHAgLS0gJG9wdGlvbiB7Ci0gICAgICAgICAgICAgICAgICAgICBkcm91dGVNdWx0aUN1dFZpYUVmZm9ydCB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBzZXQgdmFycyhtdWx0aV9jdXRfZWZmb3J0KSBbbGluZGV4ICRhcmdzIDBdCi0gICAgICAgICAgICAgICAgICAgICAgICBzZXQgYXJncyBbbHJlcGxhY2UgJGFyZ3MgMCAwXQotICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgfSAKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGNyZWF0ZV9yY19jb3JuZXIgewotICAgICAgICAgICAgICAgd2hpbGUge1tsbGVuZ3RoICRhcmdzXSA+IDB9IHsKLSAgICAgICAgICAgICAgICAgIHNldCBvcHRpb24gW2xpbmRleCAkYXJncyAwXQotICAgICAgICAgICAgICAgICAgc2V0IGFyZ3MgW2xyZXBsYWNlICRhcmdzIDAgMF0KLSAgICAgICAgICAgICAgICAgIHN3aXRjaCAtcmVnZXhwIC0tICRvcHRpb24gewotICAgICAgICAgICAgICAgICAgICAgLW5hbWUgewotICAgICAgICAgICAgICAgICAgICAgICAgc2V0IHJjX2Nvcm5lciBbbGluZGV4ICRhcmdzIDBdCi0gICAgICAgICAgICAgICAgICAgICAgICBQdXRzICI8RkY+IC4uLiBGb3VuZCByYyBjb3JuZXIgJHJjX2Nvcm5lciIgCi0gICAgICAgICAgICAgICAgICAgICAgICBpZiB7IVtpbmZvIGV4aXN0cyB2YXJzKHJjX2Nvcm5lcnMpXX0gewotICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0IHZhcnMocmNfY29ybmVycykgW2xpc3QgJHJjX2Nvcm5lcl0KLSAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICBpZiB7W2xzZWFyY2ggJHZhcnMocmNfY29ybmVycykgJHJjX2Nvcm5lcl0gPT0gLTF9IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhcHBlbmQgdmFycyhyY19jb3JuZXJzKSAkcmNfY29ybmVyCi0gICAgICAgICAgICAgICAgICAgICAgICAgICB9ICAKLSAgICAgICAgICAgICAgICAgICAgICAgIH0gIAotICAgICAgICAgICAgICAgICAgICAgICAgc2V0IGFyZ3MgW2xyZXBsYWNlICRhcmdzIDAgMF0KLSAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgIC1UIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHNldCB2YXJzKCRyY19jb3JuZXIsVCkgW2xpbmRleCAkYXJncyAwXQotICAgICAgICAgICAgICAgICAgICAgICAgc2V0IGFyZ3MgW2xyZXBsYWNlICRhcmdzIDAgMF0KLSAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgIC1jYXBfdGFibGUgewotICAgICAgICAgICAgICAgICAgICAgICAgc2V0IHZhcnMoJHJjX2Nvcm5lcixjYXBfdGFibGUpIFtsaW5kZXggJGFyZ3MgMF0KLSAgICAgICAgICAgICAgICAgICAgICAgIHNldCBhcmdzIFtscmVwbGFjZSAkYXJncyAwIDBdCi0gICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAtYXRmX3RhYmxlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHNldCB2YXJzKCRyY19jb3JuZXIsYXRmX3RhYmxlKSBbbGluZGV4ICRhcmdzIDBdCi0gICAgICAgICAgICAgICAgICAgICAgICBzZXQgYXJncyBbbHJlcGxhY2UgJGFyZ3MgMCAwXQotICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgLXF4X3RlY2hfZmlsZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBzZXQgdmFycygkcmNfY29ybmVyLHF4X3RlY2hfZmlsZSkgW2xpbmRleCAkYXJncyAwXQotICAgICAgICAgICAgICAgICAgICAgICAgc2V0IGFyZ3MgW2xyZXBsYWNlICRhcmdzIDAgMF0KLSAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgIC1wcmVSb3V0ZV9yZXMgewotICAgICAgICAgICAgICAgICAgICAgICAgIHNldCB2YXJzKCRyY19jb3JuZXIscHJlX3JvdXRlX3Jlc19mYWN0b3IpIFtsaW5kZXggJGFyZ3MgMF0KLSAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAtcHJlUm91dGVfY2FwIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICBzZXQgdmFycygkcmNfY29ybmVyLHByZV9yb3V0ZV9jYXBfZmFjdG9yKSBbbGluZGV4ICRhcmdzIDBdCi0gICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgLXByZVJvdXRlX2Nsa3JlcyB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgc2V0IHZhcnMoJHJjX2Nvcm5lcixwcmVfcm91dGVfY2xrX3Jlc19mYWN0b3IpIFtsaW5kZXggJGFyZ3MgMF0KLSAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAtcHJlUm91dGVfY2xrY2FwIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICBzZXQgdmFycygkcmNfY29ybmVyLHByZV9yb3V0ZV9jbGtfY2FwX2ZhY3RvcikgW2xpbmRleCAkYXJncyAwXQotICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgIC1wb3N0Um91dGVfcmVzIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICBzZXQgdmFycygkcmNfY29ybmVyLHBvc3Rfcm91dGVfcmVzX2ZhY3RvcikgW2xpbmRleCAkYXJncyAwXQotICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgIC1wb3N0Um91dGVfY2FwIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICBzZXQgdmFycygkcmNfY29ybmVyLHBvc3Rfcm91dGVfY2FwX2ZhY3RvcikgW2xpbmRleCAkYXJncyAwXQotICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgIC1wb3N0Um91dGVfcmVzIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICBzZXQgdmFycygkcmNfY29ybmVyLHBvc3Rfcm91dGVfY2xrX3Jlc19mYWN0b3IpIFtsaW5kZXggJGFyZ3MgMF0KLSAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAtcG9zdFJvdXRlX2Nsa2NhcCB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgc2V0IHZhcnMoJHJjX2Nvcm5lcixwb3N0X3JvdXRlX2Nsa19jYXBfZmFjdG9yKSBbbGluZGV4ICRhcmdzIDBdCi0gICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgLXBvc3RSb3V0ZV9jbGtyZXMgewotICAgICAgICAgICAgICAgICAgICAgICAgIHNldCB2YXJzKCRyY19jb3JuZXIscG9zdF9yb3V0ZV9jbGtfcmVzX2ZhY3RvcikgW2xpbmRleCAkYXJncyAwXQotICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgIC1wb3N0Um91dGVfeGNhcCB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgc2V0IHZhcnMoJHJjX2Nvcm5lcixwb3N0X3JvdXRlX3hjYXBfZmFjdG9yKSBbbGluZGV4ICRhcmdzIDBdCi0gICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgfSAKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGNyZWF0ZV9saWJyYXJ5X3NldCB7Ci0gICAgICAgICAgICAgICB3aGlsZSB7W2xsZW5ndGggJGFyZ3NdID4gMH0gewotICAgICAgICAgICAgICAgICAgc2V0IG9wdGlvbiBbbGluZGV4ICRhcmdzIDBdCi0gICAgICAgICAgICAgICAgICBzZXQgYXJncyBbbHJlcGxhY2UgJGFyZ3MgMCAwXQotICAgICAgICAgICAgICAgICAgc3dpdGNoIC1yZWdleHAgLS0gJG9wdGlvbiB7Ci0gICAgICAgICAgICAgICAgICAgICAtbmFtZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBzZXQgbGlicmFyeV9zZXQgW2xpbmRleCAkYXJncyAwXQotICAgICAgICAgICAgICAgICAgICAgICAgUHV0cyAiPEZGPiAuLi4gRm91bmQgbGlicmFyeSBzZXQgJGxpYnJhcnlfc2V0IiAKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIHshW2luZm8gZXhpc3RzIHZhcnMobGlicmFyeV9zZXRzKV19IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldCB2YXJzKGxpYnJhcnlfc2V0cykgW2xpc3QgJGxpYnJhcnlfc2V0XQotICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIHtbbHNlYXJjaCAkdmFycyhsaWJyYXJ5X3NldHMpICRsaWJyYXJ5X3NldF0gPT0gLTF9IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhcHBlbmQgdmFycyhsaWJyYXJ5X3NldHMpICRsaWJyYXJ5X3NldAotICAgICAgICAgICAgICAgICAgICAgICAgICAgfSAgCi0gICAgICAgICAgICAgICAgICAgICAgICB9ICAKLSAgICAgICAgICAgICAgICAgICAgICAgIHNldCBhcmdzIFtscmVwbGFjZSAkYXJncyAwIDBdCi0gICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAtdGltaW5nIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHNldCB2YXJzKCRsaWJyYXJ5X3NldCx0aW1pbmcpIFtsaW5kZXggJGFyZ3MgMF0KLSAgICAgICAgICAgICAgICAgICAgICAgIHNldCBhcmdzIFtscmVwbGFjZSAkYXJncyAwIDBdCi0gICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICB9IAotICAgICAgICAgICAgfQotICAgICAgICAgICAgY3JlYXRlX2RlbGF5X2Nvcm5lciB7Ci0gICAgICAgICAgICAgICB3aGlsZSB7W2xsZW5ndGggJGFyZ3NdID4gMH0gewotICAgICAgICAgICAgICAgICAgc2V0IG9wdGlvbiBbbGluZGV4ICRhcmdzIDBdCi0gICAgICAgICAgICAgICAgICBzZXQgYXJncyBbbHJlcGxhY2UgJGFyZ3MgMCAwXQotICAgICAgICAgICAgICAgICAgc3dpdGNoIC1yZWdleHAgLS0gJG9wdGlvbiB7Ci0gICAgICAgICAgICAgICAgICAgICAtbmFtZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBzZXQgZGVsYXlfY29ybmVyIFtsaW5kZXggJGFyZ3MgMF0KLSAgICAgICAgICAgICAgICAgICAgICAgIFB1dHMgIjxGRj4gLi4uIEZvdW5kIGRlbGF5IGNvcm5lciAkZGVsYXlfY29ybmVyIiAKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIHshW2luZm8gZXhpc3RzIHZhcnMoZGVsYXlfY29ybmVycyldfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICBzZXQgdmFycyhkZWxheV9jb3JuZXJzKSAkZGVsYXlfY29ybmVyCi0gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYge1tsc2VhcmNoICR2YXJzKGRlbGF5X2Nvcm5lcnMpICRkZWxheV9jb3JuZXJdID09IC0xfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXBwZW5kIHZhcnMoZGVsYXlfY29ybmVycykgW2xpc3QgJGRlbGF5X2Nvcm5lcl0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gIAotICAgICAgICAgICAgICAgICAgICAgICAgfSAgCi0gICAgICAgICAgICAgICAgICAgICAgICBzZXQgYXJncyBbbHJlcGxhY2UgJGFyZ3MgMCAwXQotICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgLWxpYnJhcnlfc2V0IHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHNldCB2YXJzKCRkZWxheV9jb3JuZXIsbGlicmFyeV9zZXQpIFtsaW5kZXggJGFyZ3MgMF0KLSAgICAgICAgICAgICAgICAgICAgICAgIHNldCBhcmdzIFtscmVwbGFjZSAkYXJncyAwIDBdCi0gICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAtcmNfY29ybmVyIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHNldCB2YXJzKCRkZWxheV9jb3JuZXIscmNfY29ybmVyKSBbbGluZGV4ICRhcmdzIDBdCi0gICAgICAgICAgICAgICAgICAgICAgICBzZXQgYXJncyBbbHJlcGxhY2UgJGFyZ3MgMCAwXQotICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgfSAKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGNyZWF0ZV9jb25zdHJhaW50X21vZGUgewotICAgICAgICAgICAgICAgd2hpbGUge1tsbGVuZ3RoICRhcmdzXSA+IDB9IHsKLSAgICAgICAgICAgICAgICAgIHNldCBvcHRpb24gW2xpbmRleCAkYXJncyAwXQotICAgICAgICAgICAgICAgICAgc2V0IGFyZ3MgW2xyZXBsYWNlICRhcmdzIDAgMF0KLSAgICAgICAgICAgICAgICAgIHN3aXRjaCAtcmVnZXhwIC0tICRvcHRpb24gewotICAgICAgICAgICAgICAgICAgICAgLW5hbWUgewotICAgICAgICAgICAgICAgICAgICAgICAgc2V0IGNvbnN0cmFpbnRfbW9kZSBbbGluZGV4ICRhcmdzIDBdCi0gICAgICAgICAgICAgICAgICAgICAgICBQdXRzICI8RkY+IC4uLiBGb3VuZCBjb25zdHJhaW50IG1vZGUgJGNvbnN0cmFpbnRfbW9kZSIgCi0gICAgICAgICAgICAgICAgICAgICAgICBpZiB7IVtpbmZvIGV4aXN0cyB2YXJzKGNvbnN0cmFpbnRfbW9kZXMpXX0gewotICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0IHZhcnMoY29uc3RyYWludF9tb2RlcykgW2xpc3QgJGNvbnN0cmFpbnRfbW9kZV0KLSAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICBpZiB7W2xzZWFyY2ggJHZhcnMoY29uc3RyYWludF9tb2RlcykgJGNvbnN0cmFpbnRfbW9kZV0gPT0gLTF9IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhcHBlbmQgdmFycyhjb25zdHJhaW50X21vZGVzKSAkY29uc3RyYWludF9tb2RlCi0gICAgICAgICAgICAgICAgICAgICAgICAgICB9ICAKLSAgICAgICAgICAgICAgICAgICAgICAgIH0gIAotICAgICAgICAgICAgICAgICAgICAgICAgc2V0IGFyZ3MgW2xyZXBsYWNlICRhcmdzIDAgMF0KLSAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgIC1zZGNfZmlsZXMgewotICAgICAgICAgICAgICAgICAgICAgICAgc2V0IHZhcnMoJGNvbnN0cmFpbnRfbW9kZSxzZGNfZmlsZXMpIFtsaW5kZXggJGFyZ3MgMF0KLSAgICAgICAgICAgICAgICAgICAgICAgIHNldCB2YXJzKCRjb25zdHJhaW50X21vZGUscHJlX2N0c19zZGMpIFtsaW5kZXggJGFyZ3MgMF0KLSAgICAgICAgICAgICAgICAgICAgICAgIHNldCBhcmdzIFtscmVwbGFjZSAkYXJncyAwIDBdCi0gICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAtaWxtX3NkY19maWxlcyB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBzZXQgdmFycygkY29uc3RyYWludF9tb2RlLGlsbV9zZGNfZmlsZXMpIFtsaW5kZXggJGFyZ3MgMF0KLSAgICAgICAgICAgICAgICAgICAgICAgIHNldCBhcmdzIFtscmVwbGFjZSAkYXJncyAwIDBdCi0gICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICB9IAotICAgICAgICAgICAgfQotICAgICAgICAgICAgY3JlYXRlX2FuYWx5c2lzX3ZpZXcgewotICAgICAgICAgICAgICAgd2hpbGUge1tsbGVuZ3RoICRhcmdzXSA+IDB9IHsKLSAgICAgICAgICAgICAgICAgIHNldCBvcHRpb24gW2xpbmRleCAkYXJncyAwXQotICAgICAgICAgICAgICAgICAgc2V0IGFyZ3MgW2xyZXBsYWNlICRhcmdzIDAgMF0KLSAgICAgICAgICAgICAgICAgIHN3aXRjaCAtcmVnZXhwIC0tICRvcHRpb24gewotICAgICAgICAgICAgICAgICAgICAgLW5hbWUgewotICAgICAgICAgICAgICAgICAgICAgICAgc2V0IGFuYWx5c2lzX3ZpZXcgW2xpbmRleCAkYXJncyAwXQotICAgICAgICAgICAgICAgICAgICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycyhhbmFseXNpc192aWV3cyldfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICBzZXQgdmFycyhhbmFseXNpc192aWV3cykgW2xpc3QgJGFuYWx5c2lzX3ZpZXddCi0gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYge1tsc2VhcmNoICR2YXJzKGFuYWx5c2lzX3ZpZXdzKSAkYW5hbHlzaXNfdmlld10gPT0gLTF9IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhcHBlbmQgdmFycyhhbmFseXNpc192aWV3cykgJGFuYWx5c2lzX3ZpZXcKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gIAotICAgICAgICAgICAgICAgICAgICAgICAgfSAgCi0gICAgICAgICAgICAgICAgICAgICAgICBzZXQgYXJncyBbbHJlcGxhY2UgJGFyZ3MgMCAwXQotICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgLWNvbnN0cmFpbnRfbW9kZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBzZXQgdmFycygkYW5hbHlzaXNfdmlldyxjb25zdHJhaW50X21vZGUpIFtsaW5kZXggJGFyZ3MgMF0KLSAgICAgICAgICAgICAgICAgICAgICAgIHNldCBhcmdzIFtscmVwbGFjZSAkYXJncyAwIDBdCi0gICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAtZGVsYXlfY29ybmVyIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHNldCB2YXJzKCRhbmFseXNpc192aWV3LGRlbGF5X2Nvcm5lcikgW2xpbmRleCAkYXJncyAwXQotICAgICAgICAgICAgICAgICAgICAgICAgc2V0IGFyZ3MgW2xyZXBsYWNlICRhcmdzIDAgMF0KLSAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIH0gCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBzZXRfYW5hbHlzaXNfdmlldyB7Ci0gICAgICAgICAgICAgICB3aGlsZSB7W2xsZW5ndGggJGFyZ3NdID4gMH0gewotICAgICAgICAgICAgICAgICAgc2V0IG9wdGlvbiBbbGluZGV4ICRhcmdzIDBdCi0gICAgICAgICAgICAgICAgICBzZXQgYXJncyBbbHJlcGxhY2UgJGFyZ3MgMCAwXQotICAgICAgICAgICAgICAgICAgc3dpdGNoIC1yZWdleHAgLS0gJG9wdGlvbiB7Ci0gICAgICAgICAgICAgICAgICAgICAtc2V0dXAgewotICAgICAgICAgICAgICAgICAgICAgICAgc2V0IHZhcnMoc2V0dXBfYW5hbHlzaXNfdmlld3MpIFtsaW5kZXggJGFyZ3MgMF0KLSAgICAgICAgICAgICAgICAgICAgICAgIHNldCBhcmdzIFtscmVwbGFjZSAkYXJncyAwIDBdCi0gICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAtaG9sZCB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBzZXQgdmFycyhob2xkX2FuYWx5c2lzX3ZpZXdzKSBbbGluZGV4ICRhcmdzIDBdCi0gICAgICAgICAgICAgICAgICAgICAgICBzZXQgYXJncyBbbHJlcGxhY2UgJGFyZ3MgMCAwXQotICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgfSAKLSAgICAgICAgICAgICAgIGlmIHshW2luZm8gZXhpc3RzIHZhcnMoYWN0aXZlX3NldHVwX3ZpZXdzKV19IHsKLSAgICAgICAgICAgICAgICAgIHNldCB2YXJzKGFjdGl2ZV9zZXR1cF92aWV3cykgJHZhcnMoc2V0dXBfYW5hbHlzaXNfdmlld3MpCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICBpZiB7IVtpbmZvIGV4aXN0cyB2YXJzKGFjdGl2ZV9ob2xkX3ZpZXdzKV19IHsKLSAgICAgICAgICAgICAgICAgIHNldCB2YXJzKGFjdGl2ZV9ob2xkX3ZpZXdzKSAkdmFycyhob2xkX2FuYWx5c2lzX3ZpZXdzKQotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycyhkZWZhdWx0X3NldHVwX3ZpZXcpXX0gewotICAgICAgICAgICAgICAgICAgc2V0IHZhcnMoZGVmYXVsdF9zZXR1cF92aWV3KSBbbGluZGV4ICR2YXJzKHNldHVwX2FuYWx5c2lzX3ZpZXdzKSAwXQotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAgfQotICAgICAgfQotICAgCi0gICAgICBwcm9jIHNlZWRfY29tbWFuZHMge2NvbW1hbmRfc3RyaW5nfSB7Ci0gICAKLSAgICAgICAgIGdsb2JhbCB2YXJzCi0gICAKLSAgICAgICAgIHNldCBjb21tYW5kIFtsaW5kZXggJGNvbW1hbmRfc3RyaW5nIDBdCi0gICAgICAgICBzZXQgYXJncyBbbHJlcGxhY2UgJGNvbW1hbmRfc3RyaW5nIDAgMF0KLSAgIAotICAgICAgICAgUHV0cyAiPEZGPiBQcm9jZXNzaW5nIG1vZGUgY29tbWFuZHMgJGNvbW1hbmQgLi4uIiAKLSAgIAotICAgICAgICAgc3dpdGNoICRjb21tYW5kIHsKLSAgICAgICAgICAgIHNldERlc2lnbk1vZGUgewotICAgICAgICAgICAgICAgc2V0IHZhcnMoc2V0X2Rlc2lnbl9tb2RlKSAkY29tbWFuZF9zdHJpbmcKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHNldERlbGF5Q2FsTW9kZSB7Ci0gICAgICAgICAgICAgICBzZXQgdmFycyhzZXRfZGVsYXlfY2FsX21vZGUpICRjb21tYW5kX3N0cmluZwotICAgICAgICAgICAgfQotICAgICAgICAgICAgc2V0QW5hbHlzaXNNb2RlIHsKLSAgICAgICAgICAgICAgIHNldCB2YXJzKHNldF9hbmFseXNpc19tb2RlKSAkY29tbWFuZF9zdHJpbmcKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHNldFRpZUhpTG9Nb2RlIHsKLSAgICAgICAgICAgICAgIHNldCB2YXJzKHNldF90aWVoaWxvX21vZGUpICRjb21tYW5kX3N0cmluZwotICAgICAgICAgICAgfQotICAgICAgICAgICAgc2V0UGxhY2VNb2RlIHsKLSAgICAgICAgICAgICAgIHNldCB2YXJzKHNldF9wbGFjZV9tb2RlKSAkY29tbWFuZF9zdHJpbmcKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHNldERlbGF5Q2FsTW9kZSB7Ci0gICAgICAgICAgICAgICBzZXQgdmFycyhzZXRfZGVsYXlfY2FsX21vZGUpICRjb21tYW5kX3N0cmluZwotICAgICAgICAgICAgfQotICAgICAgICAgICAgc2V0T3B0TW9kZSB7Ci0gICAgICAgICAgICAgICBzZXQgdmFycyhzZXRfb3B0X21vZGUpICRjb21tYW5kX3N0cmluZwotICAgICAgICAgICAgfQotICAgICAgICAgICAgc2V0Q1RTTW9kZSB7Ci0gICAgICAgICAgICAgICBzZXQgdmFycyhzZXRfY3RzX21vZGUpICRjb21tYW5kX3N0cmluZwotICAgICAgICAgICAgfQotICAgICAgICAgICAgc2V0Q0NPcHRNb2RlIHsKLSAgICAgICAgICAgICAgIHNldCB2YXJzKHNldF9jY29wdF9tb2RlKSAkY29tbWFuZF9zdHJpbmcKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHNldEZpbGxlck1vZGUgewotICAgICAgICAgICAgICAgc2V0IHZhcnMoc2V0X2ZpbGxlcl9tb2RlKSAkY29tbWFuZF9zdHJpbmcKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHNldE5hbm9Sb3V0ZU1vZGUgewotICAgICAgICAgICAgICAgc2V0IHZhcnMoc2V0X3JvdXRlX21vZGUpICRjb21tYW5kX3N0cmluZwotICAgICAgICAgICAgfQotICAgICAgICAgICAgc2V0RXh0cmFjdFJDTW9kZSB7Ci0gICAgICAgICAgICAgICBzZXQgdmFycyhzZXRfZXh0cmFjdF9yY19tb2RlKSAkY29tbWFuZF9zdHJpbmcKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHNldFNJTW9kZSB7Ci0gICAgICAgICAgICAgICBzZXQgdmFycyhzZXRfc2lfbW9kZSkgJGNvbW1hbmRfc3RyaW5nCi0gICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0gICAgICB9Ci0gICB9Ci19Ci1wcm9jIHNldEZsb3dNb2RlIHthcmdzfSB7Ci0gICBnbG9iYWwgdmFycwotICAgd2hpbGUge1tsbGVuZ3RoICRhcmdzXSA+IDB9IHsKLSAgICAgIHNldCBvcHRpb24gW2xpbmRleCAkYXJncyAwXQotICAgICAgc2V0IGFyZ3MgW2xyZXBsYWNlICRhcmdzIDAgMF0KLSAgICAgIHN3aXRjaCAtcmVnZXhwIC0tICRvcHRpb24gewotICAgICAgICAgbG9nX2RpciB7Ci0gICAgICAgICAgICBzZXQgdmFycyhsb2dfZGlyKSBbbGluZGV4ICRhcmdzIDBdCi0gICAgICAgICAgICBzZXQgYXJncyBbbHJlcGxhY2UgJGFyZ3MgMCAwXQotICAgICAgICAgICAgUHV0cyAiPEZGPiAuLi4gU2V0dGluZyBsb2cgZGlyZWN0b3J5IHRvICR2YXJzKGxvZ19kaXIpIgotICAgICAgICAgfQotICAgICAgICAgcnB0X2RpciB7Ci0gICAgICAgICAgICBzZXQgdmFycyhycHRfZGlyKSBbbGluZGV4ICRhcmdzIDBdCi0gICAgICAgICAgICBzZXQgYXJncyBbbHJlcGxhY2UgJGFyZ3MgMCAwXQotICAgICAgICAgICAgUHV0cyAiPEZGPiAuLi4gU2V0dGluZyByZXBvcnQgZGlyZWN0b3J5IHRvICR2YXJzKHJwdF9kaXIpIgotICAgICAgICAgfQotICAgICAgICAgZGJzX2RpciB7Ci0gICAgICAgICAgICBzZXQgdmFycyhkYnNfZGlyKSBbbGluZGV4ICRhcmdzIDBdCi0gICAgICAgICAgICBzZXQgYXJncyBbbHJlcGxhY2UgJGFyZ3MgMCAwXQotICAgICAgICAgICAgUHV0cyAiPEZGPiAuLi4gU2V0dGluZyBkYnMgZGlyZWN0b3J5IHRvICR2YXJzKGRic19kaXIpIgotICAgICAgICAgfQotICAgICAgICAgY3BmX3RpbWluZyB7Ci0gICAgICAgICAgICBzZXQgdmFycyhjcGZfdGltaW5nKSBbbGluZGV4ICRhcmdzIDBdCi0gICAgICAgICAgICBzZXQgYXJncyBbbHJlcGxhY2UgJGFyZ3MgMCAwXQotICAgICAgICAgfQotICAgICAgICAgY3RzX2VuZ2luZSB7Ci0gICAgICAgICAgICBzZXQgdmFycyhjdHNfZW5naW5lKSBbbGluZGV4ICRhcmdzIDBdCi0gICAgICAgICAgICBzZXQgYXJncyBbbHJlcGxhY2UgJGFyZ3MgMCAwXQotICAgICAgICAgfQotICAgICAgICAgZW5hYmxlX2NlbHRpY19zdGVwcyB7Ci0gICAgICAgICAgICBzZXQgdmFycyhlbmFibGVfY2VsdGljX3N0ZXBzKSBbbGluZGV4ICRhcmdzIDBdCi0gICAgICAgICAgICBzZXQgYXJncyBbbHJlcGxhY2UgJGFyZ3MgMCAwXQotICAgICAgICAgfQotICAgICAgICAgZW5hYmxlX2RsbSB7Ci0gICAgICAgICAgICBzZXQgdmFycyhlbmFibGVfZGxtKSBbbGluZGV4ICRhcmdzIDBdCi0gICAgICAgICAgICBzZXQgYXJncyBbbHJlcGxhY2UgJGFyZ3MgMCAwXQotICAgICAgICAgfQotICAgICAgICAgZml4X2hvbGQgewotICAgICAgICAgICAgc2V0IHZhcnMoZml4X2hvbGQpIFtsaW5kZXggJGFyZ3MgMF0KLSAgICAgICAgICAgIHNldCBhcmdzIFtscmVwbGFjZSAkYXJncyAwIDBdCi0gICAgICAgICB9Ci0gICAgICAgICBmaXhfbGl0aG8gewotICAgICAgICAgICAgc2V0IHZhcnMoZml4X2xpdGhvKSBbbGluZGV4ICRhcmdzIDBdCi0gICAgICAgICAgICBzZXQgYXJncyBbbHJlcGxhY2UgJGFyZ3MgMCAwXQotICAgICAgICAgfQotICAgICAgICAgbW9kZSB7Ci0gICAgICAgICAgICBzZXQgdmFycyhtb2RlKSBbbGluZGV4ICRhcmdzIDBdCi0gICAgICAgICAgICBzZXQgYXJncyBbbHJlcGxhY2UgJGFyZ3MgMCAwXQotICAgICAgICAgfQotICAgICAgICAgc2F2ZV9jb25zdHJhaW50cyB7Ci0gICAgICAgICAgICBzZXQgdmFycyhzYXZlX2NvbnN0cmFpbnRzKSBbbGluZGV4ICRhcmdzIDBdCi0gICAgICAgICAgICBzZXQgYXJncyBbbHJlcGxhY2UgJGFyZ3MgMCAwXQotICAgICAgICAgfQotICAgICAgICAgc2F2ZV9yYyB7Ci0gICAgICAgICAgICBzZXQgdmFycyhzYXZlX3JjKSBbbGluZGV4ICRhcmdzIDBdCi0gICAgICAgICAgICBzZXQgYXJncyBbbHJlcGxhY2UgJGFyZ3MgMCAwXQotICAgICAgICAgfQotICAgICAgICAgc2tpcF9jdHMgewotICAgICAgICAgICAgc2V0IHZhcnMoc2tpcF9jdHMpIFtsaW5kZXggJGFyZ3MgMF0KLSAgICAgICAgICAgIHNldCBhcmdzIFtscmVwbGFjZSAkYXJncyAwIDBdCi0gICAgICAgICB9Ci0gICAgICAgICBza2lwX3NpZ25vZmZfY2hlY2tzIHsKLSAgICAgICAgICAgIHNldCB2YXJzKHNraXBfc2lnbm9mZl9jaGVja3MpIFtsaW5kZXggJGFyZ3MgMF0KLSAgICAgICAgICAgIHNldCBhcmdzIFtscmVwbGFjZSAkYXJncyAwIDBdCi0gICAgICAgICB9Ci0gICAgICAgICBzdGVwcyB7Ci0gICAgICAgICAgICBzZXQgc3RlcHMgW2xpbmRleCAkYXJncyAwXQotICAgICAgICAgICAgc2V0IGFyZ3MgW2xyZXBsYWNlICRhcmdzIDAgMF0KLSAgICAgICAgIH0KLSAgICAgIH0KLSAgIH0KLSAgIGlmIHtbc3RyaW5nIHRvbG93ZXIgJHZhcnMobW9kZSldID09ICJ1c2VyIn0gewotICAgICAgaWYge1tpbmZvIGV4aXN0cyBzdGVwc119IHsKLSAgICAgICAgIHNldCB2YXJzKHN0ZXBzKSAkc3RlcHMKLSAgICAgIH0KLSAgIH0KLX0KZGlmZiAtLWdpdCBhL2Zsb3cvcG5yL0VYQU1QTEVTL0lOTk9WVVMvREVTSUdOL1NDUklQVFMvRVRDL0lOTk9WVVMvdWRtLnRjbCBiL2Zsb3cvcG5yL0VYQU1QTEVTL0lOTk9WVVMvREVTSUdOL1NDUklQVFMvRVRDL0lOTk9WVVMvdWRtLnRjbApkZWxldGVkIGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggNTcwM2U3Zi4uMDAwMDAwMAotLS0gYS9mbG93L3Buci9FWEFNUExFUy9JTk5PVlVTL0RFU0lHTi9TQ1JJUFRTL0VUQy9JTk5PVlVTL3VkbS50Y2wKKysrIC9kZXYvbnVsbApAQCAtMSwxNTkgKzAsMCBAQAotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotIyAgICAgICAgICAgICAgICAgICAgICAgQ0FERU5DRSBDT1BZUklHSFQgTk9USUNFCi0jICAgICAgICAgqSAyMDA4LTIwMTMgQ2FkZW5jZSBEZXNpZ24gU3lzdGVtcywgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIwotIyBUaGlzIEZvdW5kYXRpb24gRmxvdyBpcyBwcm92aWRlZCBhcyBhbiBleGFtcGxlIG9mIGhvdyB0byBwZXJmb3JtIHNwZWNpYWxpemVkCi0jIHRhc2tzLgotIwotIyBUaGlzIHdvcmsgbWF5IG5vdCBiZSBjb3BpZWQsIHJlLXB1Ymxpc2hlZCwgdXBsb2FkZWQsIG9yIGRpc3RyaWJ1dGVkIGluIGFueSB3YXksCi0jIGluIGFueSBtZWRpdW0sIHdoZXRoZXIgaW4gd2hvbGUgb3IgaW4gcGFydCwgd2l0aG91dCBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24KLSMgZnJvbSBDYWRlbmNlLiBOb3R3aXRoc3RhbmRpbmcgYW55IHJlc3RyaWN0aW9ucyBoZXJlaW4sIHN1YmplY3QgdG8gY29tcGxpYW5jZQotIyB3aXRoIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB0aGUgQ2FkZW5jZSBzb2Z0d2FyZSBsaWNlbnNlIGFncmVlbWVudCB1bmRlcgotIyB3aGljaCB0aGlzIG1hdGVyaWFsIHdhcyBwcm92aWRlZCwgdGhpcyBtYXRlcmlhbCBtYXkgYmUgY29waWVkIGFuZCBpbnRlcm5hbGx5Ci0jIGRpc3RyaWJ1dGVkIHNvbGVseSBmb3IgaW50ZXJuYWwgcHVycG9zZXMgZm9yIHVzZSB3aXRoIENhZGVuY2UgdG9vbHMuCi0jCi0jIFRoaXMgd29yayBpcyBDYWRlbmNlIGludGVsbGVjdHVhbCBwcm9wZXJ0eSBhbmQgbWF5IHVuZGVyIG5vIGNpcmN1bXN0YW5jZXMgYmUKLSMgZ2l2ZW4gdG8gdGhpcmQgcGFydGllcywgbmVpdGhlciBpbiBvcmlnaW5hbCBub3IgaW4gbW9kaWZpZWQgdmVyc2lvbnMsIHdpdGhvdXQKLSMgZXhwbGljaXQgd3JpdHRlbiBwZXJtaXNzaW9uIGZyb20gQ2FkZW5jZS4gVGhlIGluZm9ybWF0aW9uIGNvbnRhaW5lZCBoZXJlaW4gaXMKLSMgdGhlIHByb3ByaWV0YXJ5IGFuZCBjb25maWRlbnRpYWwgaW5mb3JtYXRpb24gb2YgQ2FkZW5jZSBvciBpdHMgbGljZW5zb3JzLCBhbmQKLSMgaXMgc3VwcGxpZWQgc3ViamVjdCB0bywgYW5kIG1heSBiZSB1c2VkIG9ubHkgYnkgQ2FkZW5jZSdzIGN1cnJlbnQgY3VzdG9tZXJzCi0jIGluIGFjY29yZGFuY2Ugd2l0aCwgYSBwcmV2aW91c2x5IGV4ZWN1dGVkIGxpY2Vuc2UgYWdyZWVtZW50IGJldHdlZW4gQ2FkZW5jZQotIyBhbmQgaXRzIGN1c3RvbWVyLgotIwotIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIyBUSElTIE1BVEVSSUFMIElTIFBST1ZJREVEIEJZIENBREVOQ0UgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRAotIyBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRgotIyBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELgotIyBJTiBOTyBFVkVOVCBTSEFMTCBDQURFTkNFIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwKLSMgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwKLSMgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SCi0jIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgIE1BVEVSSUFMLCBFVkVOIElGCi0jIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotaWYge1tpbmZvIGV4aXN0cyB2YXJzKG5ldGxpc3QpXX0gewotICAgc2V0IGluaXQodmVyaWxvZykgICAgICAgICAgICAgICAgICAkdmFycyhuZXRsaXN0KQotICAgc2V0IG5pbml0KHZlcmlsb2cpICAgICAgICAgICAgICAgICAkdmFycyhuZXRsaXN0KQotfQotaWYge1tpbmZvIGV4aXN0cyB2YXJzKHNldF90b3BfbW9kdWxlKV19IHsKLSAgIHNldCBpbml0KGRlc2lnbl9zZXR0b3ApICAgICAgICAgICAgJHZhcnMoc2V0X3RvcF9tb2R1bGUpCi0gICBzZXQgbmluaXQoZGVzaWduX3NldF90b3ApICAgICAgICAgICR2YXJzKHNldF90b3BfbW9kdWxlKQotfQotaWYge1tpbmZvIGV4aXN0cyB2YXJzKGRlc2lnbildfSB7Ci0gICBzZXQgaW5pdCh0b3BfY2VsbCkgICAgICAgICAgICAgICAgICR2YXJzKGRlc2lnbikKLX0KLSNzZXQgaW5pdChuZXRsaXN0X3R5cGUpICAgICAgICAgICAgICAgICR2YXJzKG5ldGxpc3RfdHlwZSkKLWlmIHtbaW5mbyBleGlzdHMgdmFycyhvYV9kZXNpZ25fbGliKV19IHsKLSAgIHNldCBpbml0KG9hX2Rlc2lnbl9saWIpICAgICAgICAgICAgICAgICAgICR2YXJzKG9hX2Rlc2lnbl9saWIpCi0gICBzZXQgbmluaXQob2FfZGVzaWduX2xpYikgICAgICAgICAgICAgICAgICAgJHZhcnMob2FfZGVzaWduX2xpYikKLX0KLWlmIHtbaW5mbyBleGlzdHMgdmFycyhvYV9kZXNpZ25fY2VsbCldfSB7Ci0gICBzZXQgaW5pdChvYV9kZXNpZ25fY2VsbCkgICAgICAgICAgICAgICAgICAkdmFycyhvYV9kZXNpZ25fY2VsbCkKLSAgIHNldCBuaW5pdChvYV9kZXNpZ25fY2VsbCkgICAgICAgICAgICAgICAgICAkdmFycyhvYV9kZXNpZ25fY2VsbCkKLX0KLWlmIHtbaW5mbyBleGlzdHMgdmFycyhvYV9kZXNpZ25fdmlldyldfSB7Ci0gICBzZXQgaW5pdChvYV9kZXNpZ25fdmlldykgICAgICAgICAgICAgICAgICAkdmFycyhvYV9kZXNpZ25fdmlldykKLSAgIHNldCBuaW5pdChvYV9kZXNpZ25fdmlldykgICAgICAgICAgICAgICAgICAkdmFycyhvYV9kZXNpZ25fdmlldykKLX0KLWlmIHtbaW5mbyBleGlzdHMgdmFycyhvYV9yZWZfbGliKV19IHsKLSAgIHNldCBpbml0KG9hX3JlZl9saWIpICAgICAgICAgICAgICAgJHZhcnMob2FfcmVmX2xpYikKLSAgIHNldCBuaW5pdChvYV9yZWZfbGliKSAgICAgICAgICAgICAgICR2YXJzKG9hX3JlZl9saWIpCi19Ci1pZiB7W2luZm8gZXhpc3RzIHZhcnMob2FfYWJzdHJhY3RfbmFtZSldfSB7Ci0gICBzZXQgaW5pdChhYnN0cmFjdF9uYW1lKSAgICAgICAgICAgICR2YXJzKG9hX2Fic3RyYWN0X25hbWUpCi0gICBzZXQgbmluaXQoYWJzdHJhY3RfbmFtZSkgICAgICAgICAgICAkdmFycyhvYV9hYnN0cmFjdF9uYW1lKQotfQotaWYge1tpbmZvIGV4aXN0cyB2YXJzKG9hX2Fic3RyYWN0X3ZpZXcpXX0gewotICAgc2V0IGluaXQoYWJzdHJhY3RfdmlldykgICAgICAgICAgICAkdmFycyhvYV9hYnN0cmFjdF92aWV3KQotICAgc2V0IG5pbml0KGFic3RyYWN0X3ZpZXcpICAgICAgICAgICAgJHZhcnMob2FfYWJzdHJhY3RfdmlldykKLX0KLWlmIHtbaW5mbyBleGlzdHMgdmFycyhvYV9sYXlvdXRfbmFtZSldfSB7Ci0gICBzZXQgaW5pdChsYXlvdXRfdmlldykgICAgICAgICAgICAgICR2YXJzKG9hX2xheW91dF9uYW1lKQotICAgc2V0IG5pbml0KGxheW91dF92aWV3KSAgICAgICAgICAgICAgJHZhcnMob2FfbGF5b3V0X25hbWUpCi19Ci1pZiB7W2luZm8gZXhpc3RzIHZhcnMocG93ZXJfbmV0cyldfSB7Ci0gICBzZXQgaW5pdChwd3JfbmV0KSAgICAgICAgICAgICAgICAgICR2YXJzKHBvd2VyX25ldHMpCi19Ci1pZiB7W2luZm8gZXhpc3RzIHZhcnMoZ3JvdW5kX25ldHMpXX0gewotICAgc2V0IGluaXQoZ25kX25ldCkgICAgICAgICAgICAgICAgICAkdmFycyhncm91bmRfbmV0cykKLX0KLXNldCBpbml0KG1tbWNfZmlsZSkgICAgICAgICAgICAgICAgICAgJHZhcnMoc2NyaXB0X2Rpcikvdmlld19kZWZpbml0aW9uLnRjbAotc2V0IG5pbml0KG1tbWNfZmlsZSkgICAgICAgICAgICAgICAgICAkdmFycyhzY3JpcHRfZGlyKS92aWV3X2RlZmluaXRpb24udGNsCi1pZiB7W2luZm8gZXhpc3RzIHZhcnMoY3BmX2ZpbGUpXX0gewotICAgc2V0IGluaXQoY3BmX2ZpbGUpICAgICAgICAgICAgICAgICAkdmFycyhjcGZfZmlsZSkKLSAgIHNldCBuaW5pdChjcGZfZmlsZSkgICAgICAgICAgICAgICAgJHZhcnMoY3BmX2ZpbGUpCi19Ci1pZiB7W2luZm8gZXhpc3RzIHZhcnMoaW9fZmlsZSldfSB7Ci0gICBzZXQgaW5pdChpb19maWxlKSAgICAgICAgICAgICAgICAgICR2YXJzKGlvX2ZpbGUpCi19Ci1pZiB7W2luZm8gZXhpc3RzIHZhcnMobGVmX2ZpbGVzKV0gJiYgJHZhcnMobGVmX2ZpbGVzKSAhPSAiTk9ORSJ9IHsKLSAgIHNldCBpbml0KGxlZl9maWxlKSAgICAgICAgICAgICAgICAgJHZhcnMobGVmX2ZpbGVzKQotICAgc2V0IG5pbml0KGxlZl9maWxlKSAgICAgICAgICAgICAgICAkdmFycyhsZWZfZmlsZXMpCi19Ci1pZiB7W2luZm8gZXhpc3RzIHZhcnMoY2FwX3VuaXQpXX0gewotICAgc2V0IGluaXQoY2FwX3VuaXQpICAgICAgICAgICAgICAgICAkdmFycyhjYXBfdW5pdCkKLX0KLWlmIHtbaW5mbyBleGlzdHMgdmFycyh0aW1lX3VuaXQpXX0gewotICAgc2V0IGluaXQodGltZV91bml0KSAgICAgICAgICAgICAgICAkdmFycyh0aW1lX3VuaXQpCi19Ci0KLSNpZiB7W2luZm8gZXhpc3RzIHZhcnMoYXNzaWduX2J1ZmZlcildfSB7Ci0jICAgaWYgeygkdmFycyhhc3NpZ25fYnVmZmVyKSAhPSAxKSAmJiAoW3N0cmluZyB0b2xvd2VyICR2YXJzKGFzc2lnbl9idWZmZXIpXSAhPSAidHJ1ZSIpICYmIChbc3RyaW5nIHRvbG93ZXIgJHZhcnMoYXNzaWduX2J1ZmZlcildICE9ICJmYWxzZSIpICYmICgkdmFycyhhc3NpZ25fYnVmZmVyKSAhPSAwKX0gewotIyAgICAgIGlmIHtbbGxlbmd0aCAkdmFycyhhc3NpZ25fYnVmZmVyKV0gPT0gMX0gewotIyAgICAgICAgIHNldCBpbml0KGFzc2lnbl9idWZmZXIpICAgICAgICAgICAgIjEgLWJ1ZmZlciAkdmFycyhhc3NpZ25fYnVmZmVyKSIKLSMgICAgICB9IGVsc2UgewotIyAgICAgICAgIHNldCBpbml0KGFzc2lnbl9idWZmZXIpICAgICAgICAgICAgJHZhcnMoYXNzaWduX2J1ZmZlcikKLSMgICAgICB9Ci0jICAgfSBlbHNlIHsKLSMgICAgICAgICBzZXQgaW5pdChhc3NpZ25fYnVmZmVyKSAgICAgICAgICAgICR2YXJzKGFzc2lnbl9idWZmZXIpCi0jICAgfQotI30KLQotaWYge1tpbmZvIGV4aXN0cyB2YXJzKGJ1Zl9mb290cHJpbnQpXX0gewotICAgc2V0IG9wdChidWZfZm9vdHByaW50KSAgICAgICAgICAgICAgJHZhcnMoYnVmX2Zvb3RwcmludCkKLX0KLWlmIHtbaW5mbyBleGlzdHMgdmFycyhpbnZfZm9vdHByaW50KV19IHsKLSAgIHNldCBvcHQoaW52X2Zvb3RwcmludCkgICAgICAgICAgICAgICR2YXJzKGludl9mb290cHJpbnQpCi19Ci1pZiB7W2luZm8gZXhpc3RzIHZhcnMoZGVsX2Zvb3RwcmludCldfSB7Ci0gICBzZXQgb3B0KGRlbGF5X2Zvb3RwcmludCkgICAgICAgICAgICAkdmFycyhkZWxfZm9vdHByaW50KQotfQotaWYge1tpbmZvIGV4aXN0cyB2YXJzKGN0c19jZWxsX2Zvb3RwcmludCldfSB7Ci0gICBzZXQgY3RzKGN0c19jZWxsX2Zvb3RwcmludCkgICAgICAgICAkdmFycyhjdHNfY2VsbF9mb290cHJpbnQpCi19Ci1pZiB7W2luZm8gZXhpc3RzIHZhcnMoY3RzX2NlbGxfbGlzdCldfSB7Ci0gICBzZXQgY3RzKGNlbGxfbGlzdCkgICAgICAgICAgICAgICAgICAkdmFycyhjdHNfY2VsbF9saXN0KQotfQotaWYge1tpbmZvIGV4aXN0cyB2YXJzKGRlbGF5X2xpbWl0KV19IHsKLSAgIHNldCBkZWxheWNhbChkZWxheV9saW1pdCkgICAgICAgICAgICAgICAgICR2YXJzKGRlbGF5X2xpbWl0KQotfQotaWYge1tpbmZvIGV4aXN0cyB2YXJzKGRlZmF1bHRfbmV0X2RlbGF5KV19IHsKLSAgIHNldCBkZWxheWNhbChuZXRfZGVsYXkpICAgICAgICAgICAgICAgICAgICR2YXJzKGRlZmF1bHRfbmV0X2RlbGF5KQotfQotaWYge1tpbmZvIGV4aXN0cyB2YXJzKGRlZmF1bHRfbmV0X2xvYWQpXX0gewotICAgc2V0IGRlbGF5Y2FsKG5ldF9sb2FkKSAgICAgICAgICAgICAgICAgICAgJHZhcnMoZGVmYXVsdF9uZXRfbG9hZCkKLX0KLWlmIHtbaW5mbyBleGlzdHMgdmFycyhkZWZhdWx0X3NsZXcpXX0gewotICAgc2V0IGRlbGF5Y2FsKGluX3RyYW5fZGVsYXkpICAgICAgICAgICAgICAgJHZhcnMoZGVmYXVsdF9zbGV3KQotfQotaWYge1tpbmZvIGV4aXN0cyB2YXJzKGV4Y2x1ZGVfbmV0cyldfSB7Ci0gICBzZXQgZGVsYXljYWwoZXhjbHVkZV9uZXQpICR2YXJzKGV4Y2x1ZGVfbmV0cykKLX0KLWlmIHtbaW5mbyBleGlzdHMgdmFycyhkZWxheV9saW1pdCldfSB7Ci0gICBzZXQgZGVsYXljYWwodXNlX2RlZmF1bHRfZGVsYXlfbGltaXQpICR2YXJzKGRlbGF5X2xpbWl0KQotfQotaWYge1tpbmZvIGV4aXN0cyB2YXJzKGRlZmF1bHRfbmV0X2RlbGF5KV19IHsKLSAgIHNldCBkZWxheWNhbChkZWZhdWx0X25ldF9kZWxheSkgJHZhcnMoZGVmYXVsdF9uZXRfZGVsYXkpCi19Ci1pZiB7W2luZm8gZXhpc3RzIHZhcnMoZGVmYXVsdF9uZXRfbG9hZCldfSB7Ci0gICBzZXQgZGVsYXljYWwoZGVmYXVsdF9uZXRfbG9hZCkgJHZhcnMoZGVmYXVsdF9uZXRfbG9hZCkKLX0KLWlmIHtbaW5mbyBleGlzdHMgdmFycyhpbnB1dF90cmFuc2l0aW9uX2RlbGF5KV19IHsKLSAgIHNldCBkZWxheWNhbChpbnB1dF90cmFuc2l0aW9uX2RlbGF5KSAkdmFycyhpbnB1dF90cmFuc2l0aW9uX2RlbGF5KQotfQotCi1pZiB7W2luZm8gZXhpc3RzIHZhcnMoc2hyaW5rX2ZhY3RvcildfSB7Ci0gICBzZXQgZXh0cmFjdChzaHJpbmtfZmFjdG9yKSAkdmFycyhzaHJpbmtfZmFjdG9yKQotfQotCi0jIGluaXRfb2Ffc2VhcmNoX2xpYgpkaWZmIC0tZ2l0IGEvZmxvdy9wbnIvRVhBTVBMRVMvSU5OT1ZVUy9ERVNJR04vU0NSSVBUUy9FVEMvSU5OT1ZVUy91dGlscy50Y2wgYi9mbG93L3Buci9FWEFNUExFUy9JTk5PVlVTL0RFU0lHTi9TQ1JJUFRTL0VUQy9JTk5PVlVTL3V0aWxzLnRjbApkZWxldGVkIGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggODgxOTFkZi4uMDAwMDAwMAotLS0gYS9mbG93L3Buci9FWEFNUExFUy9JTk5PVlVTL0RFU0lHTi9TQ1JJUFRTL0VUQy9JTk5PVlVTL3V0aWxzLnRjbAorKysgL2Rldi9udWxsCkBAIC0xLDExMTEgKzAsMCBAQAotIyAlQ29weXJpZ2h0Tm90aWNlCi0KLW5hbWVzcGFjZSBldmFsIGZmX3Byb2NzOjogewotCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0jIFByb2NlZHVyZSB0byBzZWVkIGNlcnRhaW4gZmxvdyB2YXJpYWJsZXMgdG8gYSBrbm93biBkZWZhdWx0IHZhbHVlIGFzIHdlbGwKLSMgYXMgZGF0YSB2YXJpYWJsZXMgcmVxdWlyZWQgdG8gc2VlZCB0aGUgZ2VuZXJpYyBjb25maWd1cmF0aW9uIGZpbGUKLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLQotICAgcHJvYyBsb2FkX3BhdGhfZ3JvdXBzIHtmaWxlfSB7Ci0KLSAgICAgIHJlYWRfZGNfc2NyaXB0ICRmaWxlCi0KLSAgIH0gCi0KLSAgIHByb2Mgc291cmNlX3BsdWcge3BsdWdpbiB7YWJvcnQgMX19IHsKLQotICAgICAgZ2xvYmFsIHZhcnMKLSAgICAgIGdsb2JhbCBwbHVnaW5fZXJyb3IKLSAgICAgIGdsb2JhbCBlcnJvckluZm8KLSAgICAgIGdsb2JhbCByZXR1cm5fY29kZQotCi0gIAotICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCRwbHVnaW4pXX0gewotICAgICAgICAgUHV0cyAiPEZGPiBMT0FESU5HICckcGx1Z2luJyBQTFVHLUlOIEZJTEUocykgIgotICAgICAgICAgZm9yZWFjaCBwbHVnaW4gJHZhcnMoJHBsdWdpbikgewotICAgICAgICAgICAgaWYge1tmaWxlIGV4aXN0cyAkcGx1Z2luXX0gewotICAgICAgICAgICAgICAgUHV0cyAiPEZGPiAtPiAkcGx1Z2luIgotICAgICAgICAgICAgICAgaWYgeyBbIGNhdGNoIHsgdXBsZXZlbCBzb3VyY2UgJHBsdWdpbiB9IHBsdWdpbl9lcnJvciBdIH0gewotICAgICAgICAgICAgICAgICAgUHV0cyAiPEZGPiA9PT09PT09PT09PT09IFBMVUctSU4gRVJST1IgPT09PT09PT09PT09PT09PT09IgotICAgICAgICAgICAgICAgICAgUHV0cyAiPEZGPiAkZXJyb3JJbmZvIgotICAgICAgICAgICAgICAgICAgUHV0cyAiPEZGPiAkcGx1Z2luX2Vycm9yIgotICAgICAgICAgICAgICAgICAgUHV0cyAiPEZGPiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09IgotICAgICAgICAgICAgICAgICAgc2V0IHJldHVybl9jb2RlIDk5Ci0gICAgICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMobWFpbCx0byldfSB7Ci0gICAgICAgICAgICAgICAgICAgICBzZXQgbXNnICJGcm9tOiBbZXhlYyB3aG9hbWldICIKLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBtc2cgXG4gIlRvOiAiIFtqb2luICR2YXJzKG1haWwsdG8pICxdCi0gICAgICAgICAgICAgICAgICAgICBhcHBlbmQgbXNnIFxuICJDYzogIiBbam9pbiAiIiAsXQotICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIG1zZyBcbiAiU3ViamVjdDogIiAiRkY6ICR2YXJzKGRlc2lnbiksICR2YXJzKHN0ZXApIGZhaWxlZCAoW3B3ZF0pIgotICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIG1zZyBcblxuICRlcnJvckluZm8KLSAgICAgICAgICAgICAgICAgICAgIGV4ZWMgL3Vzci9saWIvc2VuZG1haWwgLW9pIC10IDw8ICRtc2cKLSAgICAgICAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgICAgICAgaWYgeyRhYm9ydH0gewotICAgICAgICAgICAgICAgICAgICAgZXhpdCAkcmV0dXJuX2NvZGUKLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBpZiB7W2ZpbGUgZXhpc3RzICR2YXJzKHBsdWdfZGlyKS8kcGx1Z2luXX0gewotICAgICAgICAgICAgICAgICAgUHV0cyAiPEZGPiAtPiAkdmFycyhwbHVnX2RpcikvJHBsdWdpbiIKLSAgICAgICAgICAgICAgICAgIGlmIHsgWyBjYXRjaCB7IHVwbGV2ZWwgc291cmNlICR2YXJzKHBsdWdfZGlyKS8kcGx1Z2luIH0gcGx1Z2luX2Vycm9yIF0gfSB7Ci0gICAgICAgICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMobWFpbCx0byldfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBzZXQgbXNnICJGcm9tOiBbZXhlYyB3aG9hbWldICIKLSAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBtc2cgXG4gIlRvOiAiIFtqb2luICR2YXJzKG1haWwsdG8pICxdCi0gICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgbXNnIFxuICJDYzogIiBbam9pbiAiIiAsXQotICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIG1zZyBcbiAiU3ViamVjdDogIiAiRkY6ICR2YXJzKGRlc2lnbiksICR2YXJzKHN0ZXApIGZhaWxlZCAoW3B3ZF0pIgotICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIG1zZyBcblxuICRlcnJvckluZm8KLSAgICAgICAgICAgICAgICAgICAgICAgIGV4ZWMgL3Vzci9saWIvc2VuZG1haWwgLW9pIC10IDw8ICRtc2cKLSAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgIHNldCByZXR1cm5fY29kZSA5OQotICAgICAgICAgICAgICAgICAgICAgaWYgeyRhYm9ydH0gewotICAgICAgICAgICAgICAgICAgICAgICAgZXhpdCAkcmV0dXJuX2NvZGUKLSAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0KLSAgICAgIH0KLSAgIH0KLSAgIAotICAgcHJvYyByZXBvcnRfdGltZSB7fSB7Ci0gICAgICBnbG9iYWwgdmFycwotICAgCi0gICAgICBzZXQgcnVuX3RpbWUgW2V4cHIgW2Nsb2NrIHNlY29uZHNdIC0gJHZhcnMoJHZhcnMoc3RlcCksc3RhcnRfdGltZSldCi0gICAKLSAgICAgIGlmIHskcnVuX3RpbWUgPiA4NjQwMH0gewotICAgICAgICAgc2V0IGRheXMgW2V4cHIgJHJ1bl90aW1lIC8gODY0MDBdCi0gICAgICB9IGVsc2UgewotICAgICAgICAgc2V0IGRheXMgMAotICAgICAgfQotICAgICAgc2V0IHJ1bl90aW1lIFtjbG9jayBmb3JtYXQgJHJ1bl90aW1lIC1mb3JtYXQgJUg6JU06JVMgLWdtdCB0cnVlXQotICAgICAgUHV0cyAiPEZGPiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09IgotICAgICAgUHV0cyAiPEZGPiAgICAgICAgICBDT01QTEVURUQgU1RFUCA6ICR2YXJzKHN0ZXApIgotICAgICAgUHV0cyAiPEZGPiAgICAgICAgIEVMQVBTRUQgUlVOVElNRSA6ICRkYXlzIGRheXMsICRydW5fdGltZSIKLSAgICAgIFB1dHMgIjxGRj4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSIKLSAgIH0KLSAgIAotICAgcHJvYyBtb2RpZnlfcG93ZXJfZG9tYWlucyB7fSB7Ci0gICAKLSAgICAgZ2xvYmFsIHZhcnMKLSAgICAgCi0gICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAjIyMgbW9kaWZ5IHBvd2VyIGRvbWFpbgotICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgIAotICAgICAgc2V0IHZhcnMocG93ZXJfZG9tYWlucykgW2ZmX3Byb2NzOjpnZXRfcG93ZXJfZG9tYWluc10KLSAgICAgICAKLSAgICAgIGZvcmVhY2ggZG9tYWluICR2YXJzKHBvd2VyX2RvbWFpbnMpIHsKLSAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkZG9tYWluLGJib3gpXSB8fCBcCi0gICAgICAgICAgICAgW2luZm8gZXhpc3RzIHZhcnMoJGRvbWFpbixyc19leHRzKV0gfHwgXAotICAgICAgICAgICAgIFtpbmZvIGV4aXN0cyB2YXJzKCRkb21haW4sbWluX2dhcHMpXX0gewotICAgICAgICAgICAgUHV0cyAiPEZGPiBNb2RpZnlpbmcgcG93ZXIgZG9tYWluICRkb21haW4gLi4uIgotICAgICAgICAgICAgc2V0IGNvbW1hbmQgIm1vZGlmeVBvd2VyRG9tYWluQXR0ciAkZG9tYWluICIKLSAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkZG9tYWluLGJib3gpXX0gewotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIi1ib3ggJHZhcnMoJGRvbWFpbixiYm94KSAiCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJGRvbWFpbixyc19leHRzKV19IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICItcnNFeHRzICR2YXJzKCRkb21haW4scnNfZXh0cykgIgotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCRkb21haW4sbWluX2dhcHMpXX0gewotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIi1taW5HYXBzICR2YXJzKCRkb21haW4sbWluX2dhcHMpICIKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGV2YWwgJGNvbW1hbmQKLSAgICAgICAgIH0KLSAgICAgIH0KLSAgIH0KLSAgIHByb2MgYWRkX3Bvd2VyX3N3aXRjaGVzIHt7ZG9tYWlucyAiIn19IHsKLSAgIAotICAgICBnbG9iYWwgdmFycwotICAgICBnbG9iYWwgbWFwCi0gICAgIAotICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgIyMjIGFkZCBwb3dlciBzd2l0Y2gKLSAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgIAotICAgICAgc291cmNlICR2YXJzKHNjcmlwdF9yb290KS9FVEMvRURJL21hcF9vcHRpb25zLnRjbAotICAgCi0gICAgICBpZiB7JGRvbWFpbnMgPT0gIiJ9IHsKLSAgICAgICAgIHNldCBkb21haW5zIFtmZl9wcm9jczo6Z2V0X3Bvd2VyX2RvbWFpbnNdCi0gICAgICB9Ci0gICAKLSAgICAgIGZvcmVhY2ggZG9tYWluICRkb21haW5zIHsKLSAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkZG9tYWluLHN3aXRjaGFibGUpXSAmJiAkdmFycygkZG9tYWluLHN3aXRjaGFibGUpfSB7Ci0gICAgICAKLSAgICAgICAgICAgIGRlbGV0ZVBvd2VyU3dpdGNoIC0kdmFycygkZG9tYWluLHN3aXRjaF90eXBlKSAtcG93ZXJEb21haW4gJGRvbWFpbgotICAgICAgCi0gICAgICAgICAgICBzZXQgY29tbWFuZCAiYWRkUG93ZXJTd2l0Y2ggLXBvd2VyRG9tYWluICRkb21haW4gLSR2YXJzKCRkb21haW4sc3dpdGNoX3R5cGUpICIKLQotICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCRkb21haW4sZGlzdHJpYnV0ZSldICYmICR2YXJzKCRkb21haW4sZGlzdHJpYnV0ZSl9IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICItZGlzdHJpYnV0ZSAiCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJGRvbWFpbixjaGVja2VyX2JvYXJkKV0gJiYgJHZhcnMoJGRvbWFpbixjaGVja2VyX2JvYXJkKX0gewotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIi1jaGVja2VyQm9hcmQgIgotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCRkb21haW4sYmFja190b19iYWNrX2NoYWluKV0gJiYgJHZhcnMoJGRvbWFpbixiYWNrX3RvX2JhY2tfY2hhaW4pfSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiLWJhY2tUb0JhY2tDaGFpbiAiCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJGRvbWFpbixsb29wX2JhY2tfYXRfZW5kKV0gJiYgJHZhcnMoJGRvbWFpbixsb29wX2JhY2tfYXRfZW5kKX0gewotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIi1sb29wYmFja0F0RW5kICIKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkZG9tYWluLGNoZWNrX2hlaWdodCldICYmICEkdmFycygkZG9tYWluLGNoZWNrX2hlaWdodCl9IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICItbm9Eb3VibGVIZWlnaHRDaGVjayAiCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJGRvbWFpbix2ZXJpZnlfcm93cyldICYmICEkdmFycygkZG9tYWluLHZlcmlmeV9yb3dzKX0gewotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIi1ub1Jvd1ZlcmlmeSAiCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJGRvbWFpbixlbmFibGVfY2hhaW4pXSAmJiAhJHZhcnMoJGRvbWFpbixlbmFibGVfY2hhaW4pfSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiLW5vRW5hYmxlQ2hhaW4gIgotICAgICAgICAgICAgfQotICAgICAgICAgICAgCi0gICAgICAgICAgICBmb3JlYWNoIG9wdGlvbiBbYXJyYXkgbmFtZXMgbWFwXSB7Ci0gICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJGRvbWFpbiwkb3B0aW9uKV19IHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICItJG1hcCgkb3B0aW9uKSAkdmFycygkZG9tYWluLCRvcHRpb24pICIKLSAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgCi0gICAgICAgICAgICBldmFsICRjb21tYW5kCi0gICAgICAgICB9Ci0gICAgICB9Ci0gICB9Ci0KLSAgIHByb2MgZ2V0X3Bvd2VyX2RvbWFpbnMge30gewotICAgICBzZXQgcG93ZXJfZG9tYWlucyBbbGlzdF0KLSAgICAgZGJGb3JFYWNoUG93ZXJEb21haW4gW2RiZ0hlYWRdIHBkIHsKLSAgICAgICAgaWYge1tkYkdyb3VwSEluc3RMaXN0IFtkYlBvd2VyRG9tYWluTmFtZSAkcGRdXSAhPSAiMHgwIn0gewotICAgICAgICAgICBsYXBwZW5kIHBvd2VyX2RvbWFpbnMgW2RiUG93ZXJEb21haW5OYW1lICRwZF0KLSAgICAgICAgfQotICAgICB9Ci0gICAgIHJldHVybiAkcG93ZXJfZG9tYWlucwotICAgfQotICAgICAKLSAgIHByb2Mgcm91dGVfc2Vjb25kYXJ5X3BnX25ldHMge30gewotICAgICAKLSAgICAgUHV0cyAiPEZGPiBST1VUSU5HIFNFQ09OREFSWSBQT1dFUiBORVRTIC4uLiIKLSAgICAgCi0gICAgIGdsb2JhbCB2YXJzCi0gICAgIAotICAgICAjIEVuYWJsZSBnbG9iYWwgcGluIHBhaXJzIChpZiBkZWZpbmVkKQotICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoc2Vjb25kYXJ5X3BnLGNlbGxfcGluX3BhaXJzKV19IHsKLSAgICAgICAgc2V0UEdQaW5Vc2VTaWduYWxSb3V0ZSAkdmFycyhzZWNvbmRhcnlfcGcsY2VsbF9waW5fcGFpcnMpCi0gICAgIAotICAgICAgICAjIEJ1aWxkIGNvbW1hbmRzIGZvciBpbmRpdmlkdWFsIG5ldHMgKGlmIGRlZmluZWQpCi0gICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhzZWNvbmRhcnlfcGcsbmV0cyldfSB7Ci0gICAgICAgICAgIGZvcmVhY2ggbmV0ICR2YXJzKHNlY29uZGFyeV9wZyxuZXRzKSB7Ci0gICAgICAgICAgICAgICMgU2V0IG9wdGlvbnMgdG8gZ2xvYmFscyBpZiB0aGV5IGV4aXN0Ci0gICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkbmV0LHBhdHRlcm4pXX0gewotICAgICAgICAgICAgICAgICBzZXQgcGF0dGVybiAkdmFycygkbmV0LHBhdHRlcm4pCi0gICAgICAgICAgICAgIH0gZWxzZWlmIHtbaW5mbyBleGlzdHMgdmFycyhzZWNvbmRhcnlfcGcscGF0dGVybildfSB7Ci0gICAgICAgICAgICAgICAgIHNldCBwYXR0ZXJuICR2YXJzKHNlY29uZGFyeV9wZyxwYXR0ZXJuKQotICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkbmV0LG1heF9mYW5vdXQpXX0gewotICAgICAgICAgICAgICAgICBzZXQgbWF4X2Zhbm91dCAkdmFycygkbmV0LG1heF9mYW5vdXQpCi0gICAgICAgICAgICAgIH0gZWxzZWlmIHtbaW5mbyBleGlzdHMgdmFycyhzZWNvbmRhcnlfcGcsbWF4X2Zhbm91dCldfSB7Ci0gICAgICAgICAgICAgICAgIHNldCBtYXhfZmFub3V0ICR2YXJzKHNlY29uZGFyeV9wZyxtYXhfZmFub3V0KQotICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkbmV0LG5vbl9kZWZhdWx0X3J1bGUpXX0gewotICAgICAgICAgICAgICAgICBzZXQgbm9uX2RlZmF1bHRfcnVsZSAkdmFycygkbmV0LG5vbl9kZWZhdWx0X3J1bGUpCi0gICAgICAgICAgICAgIH0gZWxzZWlmIHtbaW5mbyBleGlzdHMgdmFycyhzZWNvbmRhcnlfcGcsbm9uX2RlZmF1bHRfcnVsZSldfSB7Ci0gICAgICAgICAgICAgICAgIHNldCBub25fZGVmYXVsdF9ydWxlICR2YXJzKHNlY29uZGFyeV9wZyxub25fZGVmYXVsdF9ydWxlKQotICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkbmV0LGNlbGxfcGluX3BhaXJzKV19IHsKLSAgICAgICAgICAgICAgICAgc2V0UEdQaW5Vc2VTaWduYWxSb3V0ZSAkdmFycygkbmV0LGNlbGxfcGluX3BhaXJzKQotICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgIHNldCB2YXJzKCRuZXQsY29tbWFuZCkgInJvdXRlUEdQaW5Vc2VTaWduYWxSb3V0ZSAtbmV0cyAkbmV0IgotICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHBhdHRlcm5dfSB7IAotICAgICAgICAgICAgICAgICBzZXQgdmFycygkbmV0LGNvbW1hbmQpIFtmb3JtYXQgIiVzIC1wYXR0ZXJuICVzIiAkdmFycygkbmV0LGNvbW1hbmQpICRwYXR0ZXJuXQotICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgbWF4X2Zhbm91dF19IHsgCi0gICAgICAgICAgICAgICAgIHNldCB2YXJzKCRuZXQsY29tbWFuZCkgW2Zvcm1hdCAiJXMgLW1heEZhbm91dCAlcyIgJHZhcnMoJG5ldCxjb21tYW5kKSAkbWF4X2Zhbm91dF0KLSAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIG5vbl9kZWZhdWx0X3J1bGVdfSB7IAotICAgICAgICAgICAgICAgICBzZXQgdmFycygkbmV0LGNvbW1hbmQpIFtmb3JtYXQgIiVzIC1ub25EZWZhdWx0UnVsZSAlcyIgJHZhcnMoJG5ldCxjb21tYW5kKSAkbm9uX2RlZmF1bHRfcnVsZV0KLSAgICAgICAgICAgICAgfQotICAgICAgICAgICB9Ci0gICAgICAgICAgIGZvcmVhY2ggbmV0ICR2YXJzKHNlY29uZGFyeV9wZyxuZXRzKSB7Ci0gICAgICAgICAgICAgIGV2YWwgJHZhcnMoJG5ldCxjb21tYW5kKQotICAgICAgICAgICB9Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgIHNldCBjb21tYW5kICJyb3V0ZVBHUGluVXNlU2lnbmFsUm91dGUiCi0gICAgICAgICAgICMgU2V0IG9wdGlvbnMgdG8gZ2xvYmFscyBpZiB0aGV5IGV4aXN0Ci0gICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhzZWNvbmRhcnlfcGcscGF0dGVybildfSB7Ci0gICAgICAgICAgICAgIHNldCBjb21tYW5kIFtmb3JtYXQgIiVzIC1wYXR0ZXJuICR2YXJzKHNlY29uZGFyeV9wZyxwYXR0ZXJuKSIgJGNvbW1hbmRdCi0gICAgICAgICAgIH0KLSAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKHNlY29uZGFyeV9wZyxtYXhfZmFub3V0KV19IHsKLSAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgW2Zvcm1hdCAiJXMgLW1heEZhbm91dCAkdmFycyhzZWNvbmRhcnlfcGcsbWF4X2Zhbm91dCkiICRjb21tYW5kXQotICAgICAgICAgICB9Ci0gICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhzZWNvbmRhcnlfcGcsbm9uX2RlZmF1bHRfcnVsZSldfSB7Ci0gICAgICAgICAgICAgIHNldCBjb21tYW5kIFtmb3JtYXQgIiVzIC1ub25EZWZhdWx0UnVsZSAkdmFycyhzZWNvbmRhcnlfcGcsbm9uX2RlZmF1bHRfcnVsZSkiICRjb21tYW5kXQotICAgICAgICAgICB9Ci0gICAgICAgICAgICBldmFsICRjb21tYW5kCi0gICAgICAgIH0KLSAgICAgfSBlbHNlIHsKLSAgICAgICBQdXRzICI8RkY+ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSIKLSAgICAgICBQdXRzICI8RkY+IEVSUk9SOiBObyBjZWxsL3BpbiBwYWlycyBkZWZpbmVkIC4uLiBwbGVhc2UgZGVmaW5lIGNlbGwvcGluIHBhaXJzIgotICAgICAgIFB1dHMgIjxGRj4gICAgICAgIGluIHlvdXIgc2V0dXAudGNsIHVzaW5nIHZhcnMoc2Vjb25kYXJ5X3BnLGNlbGxfcGluX3BhaXJzKSIKLSAgICAgICBQdXRzICI8RkY+ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSIKLSAgICAgfQotICAgfQotCi0gICBwcm9jIGluc2VydF93ZWxsdGFwc19lbmRjYXBzIHt9IHsKLSAgIAotICAgICAgZ2xvYmFsIHZhcnMKLSAgIAotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgIyBJbnNlcnQgd2VsbHRhcHMgYW5kIHByZS9wb3N0IGVuZGNhcHMKLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhjcGZfZmlsZSldICYmIChbaW5mbyBleGlzdHMgdmFycyhwb3dlcl9kb21haW5zKV0gJiYgKFtsbGVuZ3RoICR2YXJzKHBvd2VyX2RvbWFpbnMpXSA+IDApKX0gewotICAgICAgICAgc2V0IHZhcnMocG93ZXJfZG9tYWlucykgWzo6ZmZfcHJvY3M6OmdldF9wb3dlcl9kb21haW5zXQotICAgICAgICAgZm9yZWFjaCBkb21haW4gJHZhcnMocG93ZXJfZG9tYWlucykgewotICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCRkb21haW4scHJlX2VuZGNhcCldICYmIAotICAgICAgICAgICAgICAgIFtpbmZvIGV4aXN0cyB2YXJzKCRkb21haW4scG9zdF9lbmRjYXApXX0gewotICAgICAgICAgICAgICAgYWRkRW5kQ2FwIC1wcmVmaXggJGRvbWFpbiBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgLXByZUNhcCAkdmFycygkZG9tYWluLHByZV9lbmRjYXApIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAtcG9zdENhcCAkdmFycygkZG9tYWluLHBvc3RfZW5kY2FwKSBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgLXBvd2VyRG9tYWluICRkb21haW4gCi0gICAgICAgICAgICB9IGVsc2VpZiB7W2luZm8gZXhpc3RzIHZhcnMocHJlX2VuZGNhcCldICYmIAotICAgICAgICAgICAgICAgICAgICAgIFtpbmZvIGV4aXN0cyB2YXJzKHBvc3RfZW5kY2FwKV19IHsKLSAgICAgICAgICAgICAgICAgIGFkZEVuZENhcCAtcHJlZml4ICRkb21haW4gXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIC1wcmVDYXAgJHZhcnMocHJlX2VuZGNhcCkgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIC1wb3N0Q2FwICR2YXJzKHBvc3RfZW5kY2FwKSBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgLXBvd2VyRG9tYWluICRkb21haW4gCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJGRvbWFpbix3ZWxsdGFwcyldIHx8IFtpbmZvIGV4aXN0cyB2YXJzKHdlbGx0YXBzKV19IHsKLSAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkZG9tYWluLHdlbGx0YXBzKV19IHsKLSAgICAgICAgICAgICAgICAgIHNldCBjb21tYW5kICJhZGRXZWxsVGFwIC1wcmVmaXggJGRvbWFpbiAtY2VsbCAkdmFycygkZG9tYWluLHdlbGx0YXBzKSAtcG93ZXJEb21haW4gJGRvbWFpbiIKLSAgICAgICAgICAgICAgICAgIHNldCB2Y29tbWFuZCAidmVyaWZ5V2VsbFRhcCAtY2VsbHMgJHZhcnMoJGRvbWFpbix3ZWxsdGFwcykgLXBvd2VyRG9tYWluICRkb21haW4gLXJlcG9ydCAkdmFycyhycHRfZGlyKS93ZWxsdGFwLnJwdCIKLSAgICAgICAgICAgICAgIH0gZWxzZWlmIHtbaW5mbyBleGlzdHMgdmFycyh3ZWxsdGFwcyldfSB7Ci0gICAgICAgICAgICAgICAgICBzZXQgY29tbWFuZCAiYWRkV2VsbFRhcCAtcHJlZml4ICRkb21haW4gLWNlbGwgJHZhcnMod2VsbHRhcHMpIC1wb3dlckRvbWFpbiAkZG9tYWluIgotICAgICAgICAgICAgICAgICAgc2V0IHZjb21tYW5kICJ2ZXJpZnlXZWxsVGFwIC1jZWxscyAkdmFycyh3ZWxsdGFwcykgLXBvd2VyRG9tYWluICRkb21haW4gLXJlcG9ydCAkdmFycyhycHRfZGlyKS93ZWxsdGFwLnJwdCIKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkZG9tYWluLHdlbGx0YXBzLG1heF9nYXApXSB8fCBbaW5mbyBleGlzdHMgdmFycygkZG9tYWluLHdlbGx0YXBzLGNlbGxfaW50ZXJ2YWwpXX0gewotICAgICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCRkb21haW4sd2VsbHRhcHMsbWF4X2dhcCldfSB7Ci0gICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiIC1tYXhHYXAgJHZhcnMoJGRvbWFpbix3ZWxsdGFwcyxtYXhfZ2FwKSIKLSAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAtY2VsbEludGVydmFsICR2YXJzKCRkb21haW4sd2VsbHRhcHMsY2VsbF9pbnRlcnZhbCkiCi0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICB9IGVsc2VpZiB7W2luZm8gZXhpc3RzIHZhcnMod2VsbHRhcHMsbWF4X2dhcCldIHx8IFtpbmZvIGV4aXN0cyB2YXJzKHdlbGx0YXBzLGNlbGxfaW50ZXJ2YWwpXX0gewotICAgICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKHdlbGx0YXBzLG1heF9nYXApXX0gewotICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAtbWF4R2FwICR2YXJzKHdlbGx0YXBzLG1heF9nYXApIgotICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiIC1jZWxsSW50ZXJ2YWwgJHZhcnMod2VsbHRhcHMsY2VsbF9pbnRlcnZhbCkiCi0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJGRvbWFpbix3ZWxsdGFwcyxyb3dfb2Zmc2V0KV19IHsKLSAgICAgICAgICAgICAgICAgIGlmIHskdmFycygkZG9tYWluLHdlbGx0YXBzLHJvd19vZmZzZXQpfSB7Ci0gICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiIC1pblJvd09mZnNldCAkdmFycygkZG9tYWluLHdlbGx0YXBzLHJvd19vZmZzZXQpIgotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgfSBlbHNlaWYge1tpbmZvIGV4aXN0cyB2YXJzKHdlbGx0YXBzLHJvd19vZmZzZXQpXX0gewotICAgICAgICAgICAgICAgICAgaWYgeyR2YXJzKHdlbGx0YXBzLHJvd19vZmZzZXQpfSB7Ci0gICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiIC1pblJvd09mZnNldCAkdmFycyh3ZWxsdGFwcyxyb3dfb2Zmc2V0KSIKLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkZG9tYWluLHdlbGx0YXBzLGNoZWNrZXJib2FyZCldfSB7Ci0gICAgICAgICAgICAgICAgICBpZiB7JHZhcnMoJGRvbWFpbix3ZWxsdGFwcyxjaGVja2VyYm9hcmQpfSB7Ci0gICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiIC1jaGVja2VyYm9hcmQiCi0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICB9IGVsc2VpZiB7W2luZm8gZXhpc3RzIHZhcnMod2VsbHRhcHMsY2hlY2tlcmJvYXJkKV19IHsKLSAgICAgICAgICAgICAgICAgIGlmIHskdmFycyh3ZWxsdGFwcyxjaGVja2VyYm9hcmQpfSB7Ci0gICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiIC1jaGVja2VyYm9hcmQiCi0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICBldmFsICRjb21tYW5kCi0gICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMod2VsbHRhcHMsdmVyaWZ5X3J1bGUpXX0gewotICAgICAgICAgICAgICAgICAgYXBwZW5kIHZjb21tYW5kICIgLXJ1bGUgJHZhcnMod2VsbHRhcHMsdmVyaWZ5X3J1bGUpIgotICAgICAgICAgICAgICAgICAgZXZhbCAkdmNvbW1hbmQKLSAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICBwdXRzICI8RkY+IENhbm5vdCBydW4gdmVyaWZ5V2VsbFRhcCBiZWNhdXNlIHZhcnMod2VsbHRhcHMsdmVyaWZ5X3J1bGUpIGlzIG5vdCBkZWZpbmVkIgotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAgfQotICAgICAgfSBlbHNlIHsKLSAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhwcmVfZW5kY2FwKV0gJiYgCi0gICAgICAgICAgICAgW2luZm8gZXhpc3RzIHZhcnMocG9zdF9lbmRjYXApXX0gewotICAgICAgICAgICAgYWRkRW5kQ2FwIC1wcmVmaXggRU5EQ0FQIFwKLSAgICAgICAgICAgICAgICAgICAgICAtcHJlQ2FwICR2YXJzKHByZV9lbmRjYXApIFwKLSAgICAgICAgICAgICAgICAgICAgICAtcG9zdENhcCAkdmFycyhwb3N0X2VuZGNhcCkKLSAgICAgICAgIH0KLSAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyh3ZWxsdGFwcyldfSB7Ci0gICAgICAgICAgICBzZXQgY29tbWFuZCAiYWRkV2VsbFRhcCAtcHJlZml4IFdFTExUQVAgLWNlbGwgJHZhcnMod2VsbHRhcHMpICIKLSAgICAgICAgICAgIHNldCB2Y29tbWFuZCAidmVyaWZ5V2VsbFRhcCAtY2VsbHMgJHZhcnMod2VsbHRhcHMpIC1yZXBvcnQgJHZhcnMocnB0X2Rpcikvd2VsbHRhcC5ycHQiCi0gICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMod2VsbHRhcHMsbWF4X2dhcCldIHx8IFtpbmZvIGV4aXN0cyB2YXJzKHdlbGx0YXBzLGNlbGxfaW50ZXJ2YWwpXX0gewotICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKHdlbGx0YXBzLG1heF9nYXApXX0gewotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAtbWF4R2FwICR2YXJzKHdlbGx0YXBzLG1heF9nYXApIgotICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgLWNlbGxJbnRlcnZhbCAkdmFycyh3ZWxsdGFwcyxjZWxsX2ludGVydmFsKSIKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyh3ZWxsdGFwcyxyb3dfb2Zmc2V0KV19IHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgLWluUm93T2Zmc2V0ICR2YXJzKHdlbGx0YXBzLHJvd19vZmZzZXQpIgotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKHdlbGx0YXBzLGNoZWNrZXJib2FyZCldfSB7Ci0gICAgICAgICAgICAgICBpZiB7JHZhcnMod2VsbHRhcHMsY2hlY2tlcmJvYXJkKX0gewotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAtY2hlY2tlcmJvYXJkIgotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAgICAgZXZhbCAkY29tbWFuZAotICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKHdlbGx0YXBzLHZlcmlmeV9ydWxlKV19IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCB2Y29tbWFuZCAiIC1ydWxlICR2YXJzKHdlbGx0YXBzLHZlcmlmeV9ydWxlKSIKLSAgICAgICAgICAgICAgIGV2YWwgJHZjb21tYW5kCi0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgcHV0cyAiPEZGPiBDQU5OT1QgUlVOIHZlcmlmeVdlbGxUYXAgQkVDQVVTRSB2YXJzKHdlbGx0YXBzLHZlcmlmeV9ydWxlKSBJUyBOT1QgREVGSU5FRCIKLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0KLSAgICAgIH0KLSAgIH0KLQotICAgcHJvYyBidWZmZXJfYWx3YXlzX29uX25ldHMge30gewotCi0gICAgICBnbG9iYWwgdmFycwotICAgICAgZ2xvYmFsIGVycm9ycwotICAgICAgZ2xvYmFsIGJ0c19uZXRzCi0KLQotICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycyhwb3dlcl9kb21haW5zKV19IHsKLSAgICAgICAgIHNldCB2YXJzKHBvd2VyX2RvbWFpbnMpIFs6OmZmX3Byb2NzOjpnZXRfcG93ZXJfZG9tYWluc10KLSAgICAgIH0KLSAgICAgIHNldCBwZF9idWZmZXJfbGlzdCBbbGlzdF0KLSAgICAgIGZvcmVhY2ggZG9tYWluICR2YXJzKHBvd2VyX2RvbWFpbnMpIHsKLSAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkZG9tYWluLGFsd2F5c19vbl9idWZmZXJzKV19IHsKLSAgICAgICAgICAgIHNldCB2YWwgW2NvbmNhdCAkZG9tYWluICR2YXJzKCRkb21haW4sYWx3YXlzX29uX2J1ZmZlcnMpXQotICAgICAgICAgICAgbGFwcGVuZCBwZF9idWZmZXJfbGlzdCAkdmFsCi0gICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGFsd2F5c19vbl9idWZmZXJzKV19IHsKLSAgICAgICAgICAgICAgIHNldCB2YWwgW2NvbmNhdCAkZG9tYWluICR2YXJzKGFsd2F5c19vbl9idWZmZXJzKV0KLSAgICAgICAgICAgICAgIGxhcHBlbmQgcGRfYnVmZmVyX2xpc3QgJHZhbAotICAgICAgICAgICAgfQotICAgICAgICAgfQotICAgICAgfQotICAgICAgaWYgeyRwZF9idWZmZXJfbGlzdCA9PSAiIn0gewotICAgICAgICAgUHV0cyAiPEZGPiBFUlJPUjogTm8gYWx3YXlzLW9uIGJ1ZmZlcnMgZGVmaW5lZCIgCi0gICAgICAgICByZXR1cm4KLSAgICAgIH0gCi0KLSAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGFsd2F5c19vbl9uZXRzKV19IHsKLSAgICAgICAgc2V0IGJ0c19uZXRzIFtsaXN0XQotICAgICAgICBmb3JlYWNoIG5ldCAkdmFycyhhbHdheXNfb25fbmV0cykgewotICAgICAgICAgIHNldCB0ZW1wIFtqb2luIFtkYkZpbmROZXRzQnlOYW1lICRuZXRdXQotICAgICAgICAgIGxhcHBlbmQgYnRzX25ldHMgJHRlbXAKLSAgICAgICAgfSAKLQotIyAgICAgICAgc2V0IHRlbXAgW2xpc3RdCi0jICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoYWx3YXlzX29uX25ldHMsbWF4X2Zhbm91dCldfSB7Ci0jICAgICAgICAgICBzZXQgbWF4X2Zhbm91dCAkdmFycyhhbHdheXNfb25fbmV0cyxtYXhfZmFub3V0KQotIyAgICAgICAgICAgZm9yZWFjaCBuZXQgW2pvaW4gJGJ0c19uZXRzXSB7Ci0jICAgICAgICAgICAgICBpZiB7W2V4cHIgW2xsZW5ndGggW2RiRmluZEluc3RzT25OZXQgJG5ldF1dIC0gMV0gPiAkbWF4X2Zhbm91dH0gewotIyAgICAgICAgICAgICAgICAgbGFwcGVuZCB0ZW1wICRuZXQKLSMgICAgICAgICAgICAgIH0KLSMgICAgICAgICAgIH0KLSMgICAgICAgICAgIHNldCBidHNfbmV0cyBbam9pbiAkdGVtcF0KLSMgICAgICAgIH0KLSMKLSAgICAgICAgc2V0IGJ0c19uZXRzIFtqb2luICRidHNfbmV0c10KLQotICAgICAgICBQdXRzICI8RkY+ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSIKLSAgICAgICAgUHV0cyAiPEZGPiAgICAgICAgICAgIEJ1ZmZlcmluZyBhbHdheXMtb24gbmV0cyIKLSAgICAgICAgUHV0cyAiPEZGPiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0iCi0gICAgICAgIFB1dHMgIjxGRj4gICAgICAgICAgICAgICBOZXRzIC4uLiIKLSAgICAgICAgZm9yZWFjaCBuZXQgJGJ0c19uZXRzIHsKLSAgICAgICAgICAgUHV0cyAiPEZGPiAgICAgICAgICAgICAgICAgICAgICAgICRuZXQiCi0gICAgICAgIH0KLQotICAgICAgICBzZXQgY29tbWFuZCAiYnVmZmVyVHJlZVN5bnRoZXNpcyAtcHJlZml4IEJUUyIKLSAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAtbmV0cyBcW2xpc3QgJGJ0c19uZXRzXF0iCi0gICAgICAgIGFwcGVuZCBjb21tYW5kICIgLXBvd2VyRG9tYWluQnVmTGlzdCBcW2xpc3QgJHBkX2J1ZmZlcl9saXN0XF0iCi0KLSAgICAgICAgaWYgeyFbY2F0Y2gge3NldCBhcmcgJHZhcnMoYWx3YXlzX29uX25ldHMsbWF4X3RyYW4pfV19IHsKLSAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAtbWF4VHJhbiAkYXJnIgotICAgICAgICAgICBQdXRzICI8RkY+ICAgICAgICAgICAgTWF4IFRyYW4gLT4gJGFyZyIKLSAgICAgICAgfQotICAgICAgICBpZiB7IVtjYXRjaCB7c2V0IGFyZyAkdmFycyhhbHdheXNfb25fbmV0cyxtYXhfZmFub3V0KX1dfSB7Ci0gICAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgLW1heEZhbm91dCAkYXJnIgotICAgICAgICAgICBQdXRzICI8RkY+ICAgICAgICAgIE1heCBGYW5vdXQgLT4gJGFyZyIKLSAgICAgICAgfQotICAgICAgICBpZiB7IVtjYXRjaCB7c2V0IGFyZyAkdmFycyhhbHdheXNfb25fbmV0cyxtYXhfc2tldyl9XX0gewotICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiIC1tYXhTa2V3ICRhcmciCi0gICAgICAgICAgIFB1dHMgIjxGRj4gICAgICAgICAgICBNYXggU2tldyAtPiAkYXJnIgotICAgICAgICB9Ci0gICAgICAgIGlmIHshW2NhdGNoIHtzZXQgYXJnICR2YXJzKGFsd2F5c19vbl9uZXRzLG1heF9kZWxheSl9XX0gewotICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiIC1tYXhEZWxheSAkYXJnIgotICAgICAgICAgICBQdXRzICI8RkY+ICAgICAgICAgICBNYXggRGVsYXkgLT4gJGFyZyIKLSAgICAgICAgfQotCi0gICAgICAgIFB1dHMgIjxGRj4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09IgotCi0gICAgICAgIGV2YWwgJGNvbW1hbmQKLQotICAgICB9IGVsc2UgewotCi0gICAgICAgIFB1dHMgIjxGRj4gTm8gYWx3YXlzIG9uIG5ldHMgc3BlY2lmaWVkIgotICAgICAgICBQdXRzICI8RkY+IFBsZWFzZSBzZXQgdmFycyhhbHdheXNfb25fbmV0cykgaW4geW91ciBzZXR1cC50Y2wiCi0gICAgIH0KLSAgfQotCi0gICBwcm9jIGdldF9pY2dfcGlucyB7fSB7Ci0gICAKLSAgICAgZ2xvYmFsIHZhcnMKLSAgICAgUHV0cyAiPEZGPiBJTkZPOiBFeGVjdXRpbmcgZ2V0X2ljZ19waW5zIgotICAgICBmb3JlYWNoX2luX2NvbGxlY3Rpb24gcGluIFtnZXRfbGliX3BpbnMgJHZhcnMoaWNnLGJhc2VfbmFtZSkqLypdIHsKLSAgICAgICBpZiB7W2dldF9wcm9wZXJ0eSAkcGluIGRpcmVjdGlvbl09PSJpbiImJltnZXRfcHJvcGVydHkgJHBpbiBpc19jbG9ja19nYXRpbmdfZW5hYmxlXT09InRydWUifSB7Ci0gICAgICAgICBzZXQgbmFtZSBbZmlsZSB0YWlsIFtnZXRfcHJvcGVydHkgJHBpbiBuYW1lXV0KLSAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgZW5hYmxlXT09MSYmJG5hbWUhPSRlbmFibGV9IHsKLSAgICAgICAgICAgUHV0cyAiPEZGPiBFUlJPUjogV2hpbGUgc2VhcmNoaW5nIGFsbCBpY2dzLCBlbmFibGUgcGluIGZvciBbZ2V0X3Byb3BlcnR5ICRwaW4gbmFtZV0gZG9lcyBub3QgbWF0Y2ggZXhpc3RpbmcgJGVuYWJsZSIKLSAgICAgICAgICAgI2V4aXQgOTkKLSAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgIHNldCBlbmFibGUgJG5hbWUKLSAgICAgICAgIH0KLSAgICAgICB9IGVsc2VpZiB7KFtnZXRfcHJvcGVydHkgJHBpbiBkaXJlY3Rpb25dID09ICJvdXQiKX0gewotICAgICAgICAgc2V0IG5hbWUgW2ZpbGUgdGFpbCBbZ2V0X3Byb3BlcnR5ICRwaW4gbmFtZV1dCi0gICAgICAgICBpZiB7W2luZm8gZXhpc3RzIGNsa291dF09PTEmJiRuYW1lIT0kY2xrb3V0fSB7Ci0gICAgICAgICAgIFB1dHMgIjxGRj4gRVJST1I6IFdoaWxlIHNlYXJjaGluZyBhbGwgaWNncywgY2xrb3V0IHBpbiBmb3IgW2dldF9wcm9wZXJ0eSAkcGluIG5hbWVdIGRvZXMgbm90IG1hdGNoIGV4aXN0aW5nICRjbGtvdXQiCi0gICAgICAgICAgICNleGl0IDk5Ci0gICAgICAgICB9IGVsc2UgewotICAgICAgICAgICBzZXQgY2xrb3V0ICRuYW1lCi0gICAgICAgICB9Ci0gICAgICAgfSBlbHNlaWYgeyhbZ2V0X3Byb3BlcnR5ICRwaW4gZGlyZWN0aW9uXSA9PSAiaW4iKSAmJiAoW2dldF9wcm9wZXJ0eSAkcGluIGlzX2Nsb2NrXSA9PSAidHJ1ZSIpfSB7Ci0gICAgICAgICBzZXQgbmFtZSBbZmlsZSB0YWlsIFtnZXRfcHJvcGVydHkgJHBpbiBuYW1lXV0KLSAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgY2xraW5dPT0xJiYkbmFtZSE9JGNsa2lufSB7Ci0gICAgICAgICAgIFB1dHMgIjxGRj4gRVJST1I6IFdoaWxlIHNlYXJjaGluZyBhbGwgaWNncywgY2xraW4gcGluIGZvciBbZ2V0X3Byb3BlcnR5ICRwaW4gbmFtZV0gZG9lcyBub3QgbWF0Y2ggZXhpc3RpbmcgJGNsa2luIgotICAgICAgICAgICAjZXhpdCA5OQotICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgc2V0IGNsa2luICRuYW1lCi0gICAgICAgICB9Ci0gICAgICAgfQotICAgICB9Ci0gICAgIGlmIHtbaW5mbyBleGlzdHMgY2xrb3V0XT09MH0gewotICAgICAgIFB1dHMgIjxGRj4gRVJST1I6IG91dHB1dCBwaW4gb2YgaWNnICR2YXJzKGljZyxiYXNlX25hbWUpIHdhcyBub3QgZm91bmQsIGV4aXRpbmciCi0gICAgICAgI2V4aXQgOTkKLSAgICAgfQotICAgICBpZiB7W2luZm8gZXhpc3RzIGNsa2luXT09MH0gewotICAgICAgIFB1dHMgIjxGRj4gRVJST1I6IGNsayBwaW4gb2YgaWNnICR2YXJzKGljZyxiYXNlX25hbWUpIHdhcyBub3QgZm91bmQsIGV4aXRpbmciCi0gICAgICAgI2V4aXQgOTkKLSAgICAgfQotICAgICBpZiB7W2luZm8gZXhpc3RzIGVuYWJsZV09PTB9IHsKLSAgICAgICBQdXRzICI8RkY+IEVSUk9SOiBlbmFibGUgcGluIG9mIGljZyAkdmFycyhpY2csYmFzZV9uYW1lKSB3YXMgbm90IGZvdW5kLCBleGl0aW5nIgotICAgICAgICNleGl0IDk5Ci0gICAgIH0KLSAgICAgc2V0IHZhcnMoaWNnLG91dHB1dF9waW4pICRjbGtvdXQKLSAgICAgc2V0IHZhcnMoaWNnLGlucHV0X3BpbikgICRlbmFibGUKLSAgICAgc2V0IHZhcnMoaWNnLGNsb2NrX3BpbikgICRjbGtpbgotICAgICBQdXRzICI8RkY+IElORk86IEZpbmlzaGVkIGV4ZWN1dGluZyBnZXRfaWNnX3BpbnMiCi0gICAKLSAgIH0KLQotICAgcHJvYyBnZXRfYnVmX3BpbnMge30gewotICAgCi0gICAgIGdsb2JhbCB2YXJzCi0gICAgIFB1dHMgIjxGRj4gSU5GTzogRXhlY3V0aW5nIGdldF9idWZfcGlucyIKLSAgICAgZm9yZWFjaF9pbl9jb2xsZWN0aW9uIHBpbiBbZ2V0X2xpYl9waW5zICR2YXJzKGFuY2hvcl9idWZmZXIpLypdIHsKLSAgICAgICBpZiB7W2dldF9wcm9wZXJ0eSAkcGluIGRpcmVjdGlvbl09PSJpbiJ9IHsKLSAgICAgICAgIHNldCBpbiBbZmlsZSB0YWlsIFtnZXRfcHJvcGVydHkgJHBpbiBuYW1lXV0KLSAgICAgICB9IGVsc2VpZiB7W2dldF9wcm9wZXJ0eSAkcGluIGRpcmVjdGlvbl0gPT0gIm91dCJ9IHsKLSAgICAgICAgIHNldCBvdXQgW2ZpbGUgdGFpbCBbZ2V0X3Byb3BlcnR5ICRwaW4gbmFtZV1dCi0gICAgICAgfQotICAgICB9Ci0gICAgIGlmIHtbaW5mbyBleGlzdHMgb3V0XT09MH0gewotICAgICAgIFB1dHMgIjxGRj4gRVJST1I6IG91dHB1dCBwaW4gb2YgYW5jaG9yIGJ1ZmZlciAkdmFycyhhbmNob3JfYnVmZmVyKSB3YXMgbm90IGZvdW5kLCBleGl0aW5nIgotICAgICAgICNleGl0IDk5Ci0gICAgIH0KLSAgICAgaWYge1tpbmZvIGV4aXN0cyBpbl09PTB9IHsKLSAgICAgICBQdXRzICI8RkY+IEVSUk9SOiBpbnB1dCBwaW4gb2YgYW5jaG9yIGJ1ZmZlciAkdmFycyhhbmNob3JfYnVmZmVyKSB3YXMgbm90IGZvdW5kLCBleGl0aW5nIgotICAgICAgICNleGl0IDk5Ci0gICAgIH0KLSAgICAgc2V0IHZhcnMoYW5jaG9yX2J1ZmZlcixvdXRwdXRfcGluKSAkb3V0Ci0gICAgIHNldCB2YXJzKGFuY2hvcl9idWZmZXIsaW5wdXRfcGluKSAgJGluCi0gICAgIHNldCB2YXJzKGJ1ZixvdXRwdXRfcGluKSAkb3V0Ci0gICAgIHNldCB2YXJzKGJ1ZixpbnB1dF9waW4pICAkaW4KLSAgIAotICAgICBQdXRzICI8RkY+IElORk86IEZpbmlzaGVkIGV4ZWN1dGluZyBnZXRfYnVmX3BpbnMiCi0gICAKLSAgIH0KLQotICAgcHJvYyBnZXRfcmVnX3BpbnMge30gewotICAgCi0gICAgICBnbG9iYWwgdmFycyAKLSAgICAgIFB1dHMgIjxGRj4gSU5GTzogRXhlY3V0aW5nIGdldF9yZWdfcGlucyIKLSAgICAgIHNldCBnb3RfcGluIGZhbHNlCi0gICAgICBmb3JlYWNoX2luX2NvbGxlY3Rpb24gcmVnIFthbGxfcmVnaXN0ZXJzXSB7Ci0gICAgICAgICBpZiB7JGdvdF9waW59IHsKLSAgICAgICAgICAgIHJldHVybgotICAgICAgICAgfQotICAgICAgICAgZm9yZWFjaF9pbl9jb2xsZWN0aW9uIHBpbiBbZ2V0X3BpbnMgW2dldF9wcm9wZXJ0eSAkcmVnIGhpZXJhcmNoaWNhbF9uYW1lXS8qXSB7Ci0gICAgICAgICAgICBpZiBbZ2V0X3Byb3BlcnR5ICRwaW4gaXNfY2xvY2tdIHsKLSAgICAgICAgICAgICAgIHNldCB2YXJzKHJlZyxjbG9ja19waW4pIFtmaWxlIHRhaWwgW2dldF9wcm9wZXJ0eSAkcGluIGhpZXJhcmNoaWNhbF9uYW1lXV0KLSAgICAgICAgICAgICAgIHNldCBnb3RfcGluIHRydWUKLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0KLSAgICAgIH0KLSAgICAgIFB1dHMgIjxGRj4gSU5GTzogRmluaXNoZWQgZXhlY3V0aW5nIGdldF9yZWdfcGlucyIKLSAgIH0KLQotICAgcHJvYyBnZXRfdGVjaF9waW5faW5mbyB7fSB7Ci0gICAKLSAgICAgIGdsb2JhbCB2YXJzCi0gICAKLSAgICAgIGdldF9pY2dfcGlucwotICAgICAgZ2V0X2J1Zl9waW5zCi0gICAgICBnZXRfcmVnX3BpbnMKLSAgIAotICAgICAgc2V0IG9wIFtvcGVuIC5mZi5waW5zLnRjbCB3XQotICAgICAgZm9yZWFjaCB0eXBlIHtpY2cgYnVmIHJlZ30gewotICAgICAgICAgZm9yZWFjaCBwaW4ge2Nsb2NrIGVuYWJsZSBpbnB1dCBvdXRwdXR9IHsKLSAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkdHlwZSwke3Bpbn1fcGluKV19IHsKLSAgICAgICAgICAgICAgIHB1dHMgJG9wICJzZXQgdmFycygkdHlwZSwke3Bpbn1fcGluKSAkdmFycygkdHlwZSwke3Bpbn1fcGluKSIKLSAgICAgICAgICAgICAgIFB1dHMgIjxGRj4gSU5GTzogRm91bmQgJHR5cGUgJHBpbiAtPiAkdmFycygkdHlwZSwke3Bpbn1fcGluKSIgCi0gICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0gICAgICB9Ci0gICAgICBjbG9zZSAkb3AKLSAgIH0KLQotICAgcHJvYyBnZXRfYWxsX3VzYWJsZV9idWZpbnZzIHt9IHsKLSAgIAotIyAgICAgUHV0cyAiSU5GTzogRXhlY3V0aW5nIGdldF9hbGxfdXNhYmxlX2J1ZmludnMiCi0gICAgICBzZXQgYnVmX2xpc3QgIiIKLSAgICAgIHNldCBpbnZfbGlzdCAiIgotICAgICAgc2V0IGNlbGxfdHlwZXMgIFtkYkdldCBoZWFkLmFsbENlbGxzLm5hbWUgKl0gCi0gICAgICBmb3JlYWNoIGNlbGwgJGNlbGxfdHlwZXMgewotICAgICAgICAgc2V0IGNlbGxfaWQgWyBkYkdldENlbGxCeU5hbWUgICRjZWxsXQotICAgICAgICAgaWYgeyBbZGJJc0NlbGxEb250VXNlICRjZWxsX2lkXSB9IHsgY29udGludWUgfQotICAgICAgICAgaWYgeyBbZGJJc0NlbGxEb250VG91Y2ggJGNlbGxfaWRdIH0geyBjb250aW51ZSB9Ci0gICAgICAgICBpZiB7IFtkYklzQ2VsbFNlcXVlbnRpYWwgJGNlbGxfaWRdIH0geyBjb250aW51ZSB9Ci0gICAgICAgICBpZiB7IFs6OkNQRjo6aXNBbHdheXNPbkNlbGwgJGNlbGxdIH0geyBjb250aW51ZSB9Ci0gICAgICAgICBpZiAgeyBbIGRiSXNDZWxsQnVmZmVyICRjZWxsX2lkXSAgfSB7Ci0gICAgICAgICAgICBsYXBwZW5kIGJ1Zl9saXN0ICRjZWxsCi0gICAgICAgICB9IGVsc2VpZiB7IFsgIGRiSXNDZWxsSW52ZXJ0ZXIgJGNlbGxfaWQgXSB9IHsKLSAgICAgICAgICAgIGxhcHBlbmQgaW52X2xpc3QgICRjZWxsCi0gICAgICAgICB9Ci0gICAgICB9Ci0jICAgICBQdXRzICJJTkZPOiBGb3VuZCBbbGxlbmd0aCAkYnVmX2xpc3RdIGJ1ZmZlcnMgYW5kIFtsbGVuZ3RoICRpbnZfbGlzdF0gaW52ZXJ0ZXJzIgotIyAgICAgUHV0cyAiSU5GTzogRmluaXNoZWQgZXhlY3V0aW5nIGdldF9hbGxfdXNhYmxlX2J1ZmludnMiCi0gICAgIHJldHVybiBbbGlzdCAkYnVmX2xpc3QgJGludl9saXN0XQotICAgCi0gICB9Ci0gICBwcm9jIGFzc2lnbl9jdHNfY2VsbHMge30gewotCi0jICBQdXRzICJJTkZPOiBFeGVjdXRpbmcgYXNzaWduX2N0c19jZWxscyIKLQotICAgICAgZ2xvYmFsIHZhcnMKLSAgICAgIGlmIHshW2luZm8gZXhpc3RzIHZhcnMoY3RzX2NlbGxzKV19IHsKLSAgICAgICAgIHNldCByYyBbOjpmZl9wcm9jczo6Z2V0X2FsbF91c2FibGVfYnVmaW52c10KLSAgICAgICAgIHNldCB2YXJzKGN0c19jZWxscykgW2NvbmNhdCAkcmNdCi0gICAgICB9IGVsc2UgewotICAgICAgICAgc2V0IGdvdF9vbmUgMAotICAgICAgICAgZm9yZWFjaCBjZWxsICR2YXJzKGN0c19jZWxscykgewotICAgICAgICAgICAgaWYge1tkYkdldENlbGxCeU5hbWUgJGNlbGxdIT0iMHgwIn0gewotICAgICAgICAgICAgICAgc2V0IGdvdF9vbmUgMQotICAgICAgICAgICAgfQotICAgICAgICAgfQotICAgICAgICAgaWYgeyRnb3Rfb25lPT0wfSB7Ci0gICAgICAgICAgICBQdXRzICI8RkY+IFdBUk5JTkc6IHRoZXJlIGlzIG5vIHZhbGlkIGNlbGwgaW4gdmFycyhjdHNfY2VsbHMpLCB3aWxsIGF1dG8gc2V0IHRvIGFsbCB1c2FibGUgYnVmZmVycy9pbnZlcnRlcnMiCi0gICAgICAgICAgICBzZXQgcmMgWzo6ZmZfcHJvY3M6OmdldF9hbGxfdXNhYmxlX2J1ZmludnNdCi0gICAgICAgICAgICBzZXQgdmFycyhjdHNfY2VsbHMpIFtjb25jYXQgJHJjXQotICAgICAgICAgfQotICAgICAgfQotICAgICAgc2V0IHZhcnMoY3RzX2ludmVydGVyX2NlbGxzKSBbbGlzdF0KLSAgICAgIHNldCB2YXJzKGN0c19idWZmZXJfY2VsbHMpIFtsaXN0XQotICAgICAgZm9yZWFjaCBjZWxsIHskdmFycyhjdHNfY2VsbHMpfSB7Ci0gICAgICAgICBpZiB7IFtkYklzQ2VsbEJ1ZmZlciAkY2VsbF9pZF0gfSB7Ci0gICAgICAgICAgICBsYXBwZW5kIHZhcnMoY3RzX2J1ZmZlcl9jZWxscykgJGNlbGwKLSAgICAgICAgIH0gZWxzZWlmIHsgW2RiSXNDZWxsSW52ZXJ0ZXIgJGNlbGxfaWRdIH0gewotICAgICAgICAgICAgbGFwcGVuZCB2YXJzKGN0c19pbnZlcnRlcl9jZWxscykgJGNlbGwKLSAgICAgICAgIH0KLSAgICAgIH0KLSMgICAgICBQdXRzICJJTkZPOiBGaW5pc2hlZCBleGVjdXRpbmcgYXNzaWduX2N0c19jZWxscyIKLSAgIH0KLQotICAgcHJvYyBlbmFibGVfbW1tYyB7fSB7Ci0gICAKLSAgICAgUHV0cyAiPEZGPiBJTkZPOiBFeGVjdXRpbmcgZW5hYmxlX21tbWMiCi0gICAgIGdsb2JhbCB2YXJzCi0gICAgICMgY29uZmlybSBkZWZhdWx0IHZpZXcgZGVmaW5lZAotICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoZGVmYXVsdF9zZXR1cF92aWV3KV09PTB9IHsKLSAgICAgICBQdXRzICJFUlJPUjogZGVmYXVsdCB2aWV3IHZhcnMoZGVmYXVsdF9zZXR1cF92aWV3KSBub3QgZGVmaW5lZCwgZXhpdGluZyIKLSAgICAgICAjZXhpdCA5OQotICAgICB9Ci0gICAgIHNldCB2aWV3ICR2YXJzKGRlZmF1bHRfc2V0dXBfdmlldykKLSAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCR2aWV3LGRlbGF5X2Nvcm5lcildPT0wfSB7Ci0gICAgICAgUHV0cyAiPEZGPiBFUlJPUjogZGVmYXVsdCBkZWxheV9jb3JuZXIgdmFycygkdmlldyxkZWxheV9jb3JuZXIpIG5vdCBkZWZpbmVkLCBleGl0aW5nIgotICAgICAgICNleGl0IDk5Ci0gICAgIH0KLSAgICAgc2V0IGRjICR2YXJzKCR2aWV3LGRlbGF5X2Nvcm5lcikgIAotICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJGRjLGxpYnJhcnlfc2V0KV09PTB9IHsKLSAgICAgICBQdXRzICI8RkY+IEVSUk9SOiBkZWZhdWx0IGxpYnJhcnlfc2V0IHZhcnMoJGRjLGxpYnJhcnlfc2V0KSBub3QgZGVmaW5lZCwgZXhpdGluZyIKLSAgICAgICAjZXhpdCA5OQotICAgICB9IAotICAgICBzZXQgbGlic2V0ICR2YXJzKCRkYyxsaWJyYXJ5X3NldCkKLSAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCRkYyxyY19jb3JuZXIpXT09MH0gewotICAgICAgIFB1dHMgIjxGRj4gRVJST1I6IGRlZmF1bHQgcmNfY29ybmVyIHZhcnMoJGRjLHJjX2Nvcm5lcikgbm90IGRlZmluZWQsIGV4aXRpbmciCi0gICAgICAgI2V4aXQgOTkKLSAgICAgfQotICAgICBzZXQgcmMgJHZhcnMoJGRjLHJjX2Nvcm5lcikKLSAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCR2aWV3LGNvbnN0cmFpbnRfbW9kZSldPT0wfSB7Ci0gICAgICAgUHV0cyAiPEZGPiBFUlJPUjogZGVmYXVsdCBjb25zdHJhaW50X21vZGUgdmFycygkdmlldyxjb25zdHJhaW50X21vZGUpIG5vdCBkZWZpbmVkLCBleGl0aW5nIgotICAgICAgICNleGl0IDk5Ci0gICAgIH0KLSAgICAgc2V0IG1vZGUgJHZhcnMoJHZpZXcsY29uc3RyYWludF9tb2RlKSAgCi0gICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkbW9kZSxwcmVfY3RzX3NkYyldPT0wfSB7Ci0gICAgICAgUHV0cyAiPEZGPiBFUlJPUjogcHJlX2N0c19zZGMgZm9yIGNvbnN0cmFpbnRfbW9kZSAkbW9kZSBpbiB2YXJzKCRtb2RlLHByZV9jdHNfc2RjKSwgZXhpdGluZyIKLSAgICAgICAjZXhpdCA5OQotICAgICB9Ci0gICAKLSAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCRsaWJzZXQsdGltaW5nKV09PTB9IHsKLSAgICAgICBQdXRzICI8RkY+IEVSUk9SOiBsaWJyYXJ5X3NldCAkbGlic2V0IGxpYnJhcmllcyBub3QgZGVmaW5lZCBpbiB2YXJzKCRsaWJzZXQsdGltaW5nKSwgZXhpdGluZyIKLSAgICAgICAjZXhpdCA5OQotICAgICB9Ci0gICAgIGNyZWF0ZV9saWJyYXJ5X3NldCAtbmFtZSAkbGlic2V0IC10aW1pbmcgJHZhcnMoJGxpYnNldCx0aW1pbmcpCi0gICAKLSAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCRyYyxjYXBfdGFibGUpXT09MH0gewotICAgICAgIFB1dHMgIjxGRj4gRVJST1I6IGNhcF90YWJsZSBmb3IgcmNfY29ybmVyICRyYyBub3QgZGVmaW5lZCwgZXhpdGluZyIKLSAgICAgICAjZXhpdCA5OQotICAgICB9Ci0gICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkcmMscHJlX3JvdXRlX3Jlc19mYWN0b3IpXT09MH0gewotICAgICAgIFB1dHMgIjxGRj4gV0FSTklORzogcHJlX3JvdXRlX3Jlc19mYWN0b3IgZm9yIHJjX2Nvcm5lciAkcmMgbm90IGRlZmluZWQsIHNldHRpbmcgdG8gMS4wIgotICAgICAgIHNldCB2YXJzKCRyYyxwcmVfcm91dGVfcmVzX2ZhY3RvcikgMS4wCi0gICAgIH0KLSAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCRyYyxwcmVfcm91dGVfY2FwX2ZhY3RvcildPT0wfSB7Ci0gICAgICAgUHV0cyAiPEZGPiBXQVJOSU5HOiBwcmVfcm91dGVfY2FwX2ZhY3RvciBmb3IgcmNfY29ybmVyICRyYyBub3QgZGVmaW5lZCwgc2V0dGluZyB0byAxLjAiCi0gICAgICAgc2V0IHZhcnMoJHJjLHByZV9yb3V0ZV9jYXBfZmFjdG9yKSAxLjAKLSAgICAgfQotICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJHJjLFQpXT09MH0gewotICAgICAgIFB1dHMgIjxGRj4gV0FSTklORzogdGVtcGVyYXR1cmUgZm9yIHJjX2Nvcm5lciAkcmMgbm90IGRlZmluZWQsIHNldHRpbmcgdG8gMjUiCi0gICAgICAgc2V0IHZhcnMoJHJjLHByZV9yb3V0ZV9jYXBfZmFjdG9yKSAyNQotICAgICB9Ci0gICAgIGNyZWF0ZV9yY19jb3JuZXIgLW5hbWUgJHJjIFwKLSAgICAgICAgICAgICAgICAgICAgICAtY2FwX3RhYmxlICR2YXJzKCRyYyxjYXBfdGFibGUpICBcCi0gICAgICAgICAgICAgICAgICAgICAgLXByZVJvdXRlX3JlcyAkdmFycygkcmMscHJlX3JvdXRlX3Jlc19mYWN0b3IpICBcCi0gICAgICAgICAgICAgICAgICAgICAgLXByZVJvdXRlX2NhcCAkdmFycygkcmMscHJlX3JvdXRlX2NhcF9mYWN0b3IpICBcCi0gICAgICAgICAgICAgICAgICAgICAgLVQgJHZhcnMoJHJjLFQpCi0gICAKLSAgICAgY3JlYXRlX2RlbGF5X2Nvcm5lciAtbmFtZSAkZGMgLWxpYnJhcnlfc2V0ICRsaWJzZXQgLXJjX2Nvcm5lciAkcmMKLSAgICAgaWYge1tmaWxlIGlzZmlsZSBbbGluZGV4IHZhcnMoJG1vZGUscHJlX2N0c19zZGMpIDBdXX0gewotICAgICAgIGlmIHtbbHNlYXJjaCBbYWxsX2NvbnN0cmFpbnRfbW9kZXNdICRtb2RlXSA9PSAtMX0gewotICAgICAgICAgIGNyZWF0ZV9jb25zdHJhaW50X21vZGUgLW5hbWUgJG1vZGUgLXNkY19maWxlcyAkdmFycygkbW9kZSxwcmVfY3RzX3NkYykKLSAgICAgICB9IGVsc2UgewotICAgICAgICAgIHVwZGF0ZV9jb25zdHJhaW50X21vZGUgLW5hbWUgJG1vZGUgLXNkY19maWxlcyAkdmFycygkbW9kZSxwcmVfY3RzX3NkYykKLSAgICAgICB9Ci0gICAgIH0KLSAgIAotICAgICBjcmVhdGVfYW5hbHlzaXNfdmlldyAtbmFtZSAkdmlldyAtY29uc3RyYWludF9tb2RlICRtb2RlIC1kZWxheV9jb3JuZXIgJGRjCi0gICAgIHNldF9hbmFseXNpc192aWV3IC1zZXR1cCBbbGlzdCAkdmlld10gLWhvbGQgW2xpc3QgJHZpZXddCi0gICAgIGZvcmVhY2ggb2JqZWN0ICJjZWxsIG5ldCIgewotICAgICAgIGZvcmVhY2ggbW9kZSAiZWFybHkgbGF0ZSIgewotICAgICAgICAgZm9yZWFjaCB0eXBlICJkYXRhIGNsb2NrIiB7Ci0gICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkZGMsJHt0eXBlfV8ke29iamVjdH1fJHttb2RlfSldfSB7Ci0gICAgICAgICAgICAgc2V0IGdlbmVyYXRlZCAxCi0gICAgICAgICAgICAgc2V0X3RpbWluZ19kZXJhdGUgLWRlbGF5X2Nvcm5lciAkZGMgLSR0eXBlIC0ke29iamVjdH1fZGVsYXkgLSRtb2RlICR2YXJzKCRkYywke3R5cGV9XyR7b2JqZWN0fV8ke21vZGV9KQotICAgICAgICAgICB9Ci0gICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkZGMsJHtvYmplY3R9XyR7dHlwZX1fJHttb2RlfSldfSB7Ci0gICAgICAgICAgICAgc2V0X3RpbWluZ19kZXJhdGUgLWRlbGF5X2Nvcm5lciAkZGMgLSR0eXBlIC0ke29iamVjdH1fZGVsYXkgLSRtb2RlICR2YXJzKCRkYywke29iamVjdH1fJHt0eXBlfV8ke21vZGV9KQotICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0gICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJGRjLGNlbGxfY2hlY2tfJHttb2RlfSldfSB7Ci0gICAgICAgICAgIHNldF90aW1pbmdfZGVyYXRlIC1kZWxheV9jb3JuZXIgJGRjIC1jZWxsX2NoZWNrIC0kbW9kZSAkdmFycygkZGMsY2VsbF9jaGVja18ke21vZGV9KQotICAgICAgICAgfQotICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCRkYyxjaGVja19jZWxsXyR7bW9kZX0pXX0gewotICAgICAgICAgICAgc2V0X3RpbWluZ19kZXJhdGUgLWRlbGF5X2Nvcm5lciAkZGMgLWNlbGxfY2hlY2sgLSRtb2RlICR2YXJzKCRkYyxjaGVja19jZWxsXyR7bW9kZX0pCi0gICAgICAgICB9Ci0gICAgICAgfQotICAgICB9Ci0gICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhkZXJhdGVfdGNsKV0mJltmaWxlIGlzZmlsZSAkdmFycyhkZXJhdGVfdGNsKV19IHsKLSAgICAgICBzb3VyY2UgJHZhcnMoZGVyYXRlX3RjbCkKLSAgICAgfQotICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJGRjLGRlcmF0ZV90Y2wpXSYmW2ZpbGUgaXNmaWxlICR2YXJzKCRkYyxkZXJhdGVfdGNsKV19IHsKLSAgICAgICBzb3VyY2UgJHZhcnMoJGRjLGRlcmF0ZV90Y2wpCi0gICAgIH0KLSAgICAgUHV0cyAiPEZGPiBJTkZPOiBGaW5pc2hlZCBleGVjdXRpbmcgZW5hYmxlX21tbWMiCi0gICAKLSAgIH0KLQotICAgcHJvYyBidWlsZF9ndWlkZXMge30gewotICAgCi0gICAgIFB1dHMgIjxGRj4gSU5GTzogQ3JlYXRpbmcgZmxvb3JwbGFuIGd1aWRlcyAuLi4iCi0gICAgIGdsb2JhbCB2YXJzCi0gICAgIHVubG9nQ29tbWFuZCBhZGRJbnN0VG9JbnN0R3JvdXAKLSAgICAgdW5sb2dDb21tYW5kIGNyZWF0ZUluc3RHcm91cAotICAgICB1bmxvZ0NvbW1hbmQgZGVsZXRlSW5zdEdyb3VwCi0gICAgIHVubG9nQ29tbWFuZCBzZXRPYmpGUGxhbkJveExpc3QKLSAgICAgc3VwcHJlc3NNZXNzYWdlIEVOQ1NZQy0xOTYyCi0gICAgIHN1cHByZXNzTWVzc2FnZSBFTkNTWUMtNzkxCi0gICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhndWlkZXMpXT09MSYmW2xsZW5ndGggJHZhcnMoZ3VpZGVzKV0+MH0gewotICAgICAgIGZvcmVhY2ggZ3VpZGUgJHZhcnMoZ3VpZGVzKSB7Ci0gICAgICAgICAjIENoZWNrIHRvIG1ha2Ugc3VyZSBndWlkZSBoYXMgYSBib3VuZCBhbmQgc29tZSBpbmNsdWRlcwotICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGd1aWRlLCRndWlkZSxib3VuZHMpXT09MHx8W2xsZW5ndGggJHZhcnMoZ3VpZGUsJGd1aWRlLGJvdW5kcyldPDR9IHsKLSAgICAgICAgICAgUHV0cyAiPEZGPiBXQVJOSU5HOiBHdWlkZSAkZ3VpZGUgZG9lcyBub3QgaGF2ZSBhIHByb3Blcmx5IHNwZWNpZmllZCBib3VuZCwgZ3VpZGUgbm90IGNyZWF0ZWQiCi0gICAgICAgICB9IGVsc2VpZiB7W2luZm8gZXhpc3RzIHZhcnMoZ3VpZGUsJGd1aWRlLGluY2x1ZGUpXT09MHx8W2xsZW5ndGggJHZhcnMoZ3VpZGUsJGd1aWRlLGluY2x1ZGUpXTwxfSB7Ci0gICAgICAgICAgIFB1dHMgIjxGRj4gV0FSTklORzogR3VpZGUgJGd1aWRlIGRvZXMgbm90IGhhdmUgYW55IGluY2x1ZGVzLCBndWlkZSBub3QgY3JlYXRlZCIKLSAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgIGNhdGNoIHtkZWxldGVJbnN0R3JvdXAgJGd1aWRlfQotICAgICAgICAgICBjYXRjaCB7dW5zZXQgaW5zdHN9Ci0gICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhndWlkZSwkZ3VpZGUsZXhjbHVkZSldPT0wfSB7Ci0gICAgICAgICAgICAgc2V0IHZhcnMoZ3VpZGUsJGd1aWRlLGV4Y2x1ZGUpICIiCi0gICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgcmVnc3ViIC1hbGwgIlxcXCoiICR2YXJzKGd1aWRlLCRndWlkZSxleGNsdWRlKSAiXC5cKiIgZXhjbHVkZXMKLSAgICAgICAgICAgfQotICAgICAgICAgICBmb3JlYWNoIGluY2x1ZGUgJHZhcnMoZ3VpZGUsJGd1aWRlLGluY2x1ZGUpIHsKLSAgICAgICAgICAgICBmb3JlYWNoIGkgW2RiRmluZEluc3RzQnlOYW1lICR7aW5jbHVkZX0qXSB7Ci0gICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoZ3VpZGUsJGd1aWRlLGV4Y2x1ZGUpXT09MSYmW2xsZW5ndGggJHZhcnMoZ3VpZGUsJGd1aWRlLGV4Y2x1ZGUpXT4wJiZbcmVnZXhwIFtqb2luICRleGNsdWRlcyB8XSAkaV08MX0gewotICAgICAgICAgICAgICAgICBzZXQgaW5zdHMoJGkpIDEKLSAgICAgICAgICAgICAgIH0gZWxzZWlmIHtbbGxlbmd0aCAkdmFycyhndWlkZSwkZ3VpZGUsZXhjbHVkZSldPDF9IHsKLSAgICAgICAgICAgICAgICAgc2V0IGluc3RzKCRpKSAxCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgfQotICAgICAgICAgICB9Ci0gICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgaW5zdHNdPT0xJiZbbGxlbmd0aCBbYXJyYXkgbmFtZXMgaW5zdHNdXT4wfSB7Ci0gICAgICAgICAgICAgc2V0IHgxIFtsaW5kZXggJHZhcnMoZ3VpZGUsJGd1aWRlLGJvdW5kcykgMF0KLSAgICAgICAgICAgICBzZXQgeTEgW2xpbmRleCAkdmFycyhndWlkZSwkZ3VpZGUsYm91bmRzKSAxXQotICAgICAgICAgICAgIHNldCB4MiBbbGluZGV4ICR2YXJzKGd1aWRlLCRndWlkZSxib3VuZHMpIDJdCi0gICAgICAgICAgICAgc2V0IHkyIFtsaW5kZXggJHZhcnMoZ3VpZGUsJGd1aWRlLGJvdW5kcykgM10KLSAgICAgICAgICAgICBjcmVhdGVJbnN0R3JvdXAgJGd1aWRlIC1ndWlkZSAkeDEgJHkxICR4MiAkeTIgCi0gICAgICAgICAgICAgc2V0IGMgMAotICAgICAgICAgICAgIGZvcmVhY2ggaSBbYXJyYXkgbmFtZXMgaW5zdHNdIHsKLSAgICAgICAgICAgICAgIGFkZEluc3RUb0luc3RHcm91cCAkZ3VpZGUgJGkKLSAgICAgICAgICAgICAgIGluY3IgYwotICAgICAgICAgICAgIH0gCi0gICAgICAgICAgICAgc2V0IGNtZCAic2V0T2JqRlBsYW5Cb3hMaXN0IEdyb3VwICRndWlkZSIKLSAgICAgICAgICAgICBmb3JlYWNoIGkgJHZhcnMoZ3VpZGUsJGd1aWRlLGJvdW5kcykgewotICAgICAgICAgICAgICAgc2V0IGNtZCAiJHtjbWR9ICRpIgotICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICBjYXRjaCB7ZXZhbCAkY21kfQotICAgICAgICAgICAgIFB1dHMgIjxGRj4gSU5GTzogQWRkZWQgJGMgaW5zdGFuY2VzIHRvIGd1aWRlICRndWlkZSIKLSAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICBQdXRzICI8RkY+IFdBUk5JTkc6IFNwZWNpZmllZCBndWlkZSAkZ3VpZGUgaGFzIG5vIGluc3RhbmNlcywgbm90IGNyZWF0aW5nIgotICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0gICAgICAgfQotICAgICB9IGVsc2UgewotICAgICAgIFB1dHMgIjxGRj4gSU5GTzogTm8gZ3VpZGVzIHNwZWNpZmllZCAuLi4gZXhpdGluZyIKLSAgICAgfQotICAgICBsb2dDb21tYW5kIGFkZEluc3RUb0luc3RHcm91cAotICAgICBsb2dDb21tYW5kIGNyZWF0ZUluc3RHcm91cAotICAgICBsb2dDb21tYW5kIGRlbGV0ZUluc3RHcm91cAotICAgICBsb2dDb21tYW5kIHNldE9iakZQbGFuQm94TGlzdAotICAgICBQdXRzICI8RkY+IElORk86IEZpbmlzaGVkIGV4ZWN1dGluZyBidWlsZF9ndWlkZXMiCi0gICAKLSAgIH0KLQotICAgcHJvYyBhZGRfYmxvY2thZ2VzIHt9IHsKLSAgIAotICAgICAgUHV0cyAiPEZGPklORk86IENyZWF0aW5nIGJsb2NrYWdlcyAuLi4iCi0gICAKLSAgICAgIGdsb2JhbCB2YXJzCi0gICAKLSAgICAgIGlmIHshW2luZm8gZXhpc3RzIHZhcnMoYmxvY2thZ2VzKV19IHsKLSAgICAgICAgIHB1dHMgIjxGRj5JTkZPOiBObyBibG9ja2FnZXMgaW5mbyBkZWZpbmVkIC4uLiBleGlzdGluZyIKLSAgICAgICAgIHJldHVybgotICAgICAgfQotICAgICAgc2V0IGNvbW1hbmRzICIiCi0gICAgICBmb3JlYWNoIGJsb2NrYWdlICR2YXJzKGJsb2NrYWdlcykgewotICAgICAgICAgc3dpdGNoICR2YXJzKGJsb2NrYWdlLCRibG9ja2FnZSx0eXBlKSB7Ci0gICAgICAgICAgICBoYXJkIHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiY3JlYXRlT2JzdHJ1Y3QgJHZhcnMoYmxvY2thZ2UsJGJsb2NrYWdlLGJvdW5kcykgLW5hbWUgJGJsb2NrYWdlXG4iCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBzb2Z0IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiY3JlYXRlT2JzdHJ1Y3QgJHZhcnMoYmxvY2thZ2UsJGJsb2NrYWdlLGJvdW5kcykgLW5hbWUgJGJsb2NrYWdlIC10eXBlIHNvZnRcbiIKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHBhcnRpYWwgewotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJjcmVhdGVPYnN0cnVjdCAkdmFycyhibG9ja2FnZSwkYmxvY2thZ2UsYm91bmRzKSAtbmFtZSAkYmxvY2thZ2UgLXR5cGUgc29mdFxuIgotICAgICAgICAgICAgfQotICAgICAgICAgfQotICAgICAgfQotICAgCi0gICAgICBldmFsICRjb21tYW5kcwotICAgCi0gICAgICBQdXRzICI8RkY+SU5GTzogRmluaXNoZWQgZXhlY3V0aW5nIGFkZF9ibG9ja2FnZXMgLi4uIgotICAgfQotCi0gICBwcm9jIHNhdmVfcmVzdWx0cyB7e3N0ZXAgIiJ9fSB7Ci0KLSAgICAgIGdsb2JhbCB2YXJzCi0gICAgICBnbG9iYWwgZXJyb3JzCi0gICAgICBnbG9iYWwgZW52Ci0KLSAgICAgIGlmIHskc3RlcCAhPSAiIn0gewotICAgICAgICAgc2V0IHZhcnMoc3RlcCkgJHN0ZXAKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgICBQdXRzICI8RkY+IEFyZ3VtZW50ICdzdGVwJyByZXF1aXJlZCAuLi4iCi0gICAgICAgICByZXR1cm4KLSAgICAgIH0KLQotICAgICAgc2V0IGNvbW1hbmRzICIiCi0KLSAgICAgIHNldCBhcmdzICIiCi0gICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoc2F2ZV9yYyldICYmICR2YXJzKHNhdmVfcmMpfSB7Ci0gICAgICAgICBpZiB7W3JlZ2V4cCAicm91dGUiICR2YXJzKHN0ZXApXX0gewotICAgICAgICAgICAgYXBwZW5kIGFyZ3MgIiAtcmMiCi0gICAgICAgICAgfQotICAgICAgfQotICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKHNhdmVfY29uc3RyYWludHMpXSAmJiAkdmFycyhzYXZlX2NvbnN0cmFpbnRzKX0gewotICAgICAgICAgYXBwZW5kIGFyZ3MgIiAtdGNvbiIKLSAgICAgIH0KLSAgCi0gICAgICAjIEJDTDogQWRkZWQgc3Vic3QgYXJvdW5kIHZhcnMoZGJzX2RpcikgdG8gcmVzb2x2ZSB2YXJzKHJ1bmRpcikKLSAgICAgIHNldCBkaXIgW3N1YnN0ICR2YXJzKGRic19kaXIpXQotICAgICAgc2V0IGRlc2lnbiAkdmFycyhkZXNpZ24pCi0gICAgICBpZiB7W3N0cmluZyBjb21wYXJlIC1ub2Nhc2UgJHZhcnMoZGJzX2Zvcm1hdCkgIm9hIl09PTB9IHsKLSAgICAgICAgIGlmIHtbbGluZGV4IFtzcGxpdCAkdmFycyh2ZXJzaW9uKSAiLiJdICAwXSA+IDEwfSB7Ci0gICAgICAgICAgICBpZiB7JGhpZXJ9IHsKLSAgICAgICAgICAgICAgIHNldCBjb21tYW5kICJzYXZlRGVzaWduICRhcmdzIC1jZWxsdmlldyB7JHZhcnMob2FfcGFydGl0aW9uX2xpYikgJHZhcnMoZGVzaWduKSAkdmFycyhzdGVwKX1cbiIKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBzZXQgY29tbWFuZCAic2F2ZURlc2lnbiAkYXJncyAtY2VsbHZpZXcgeyR2YXJzKG9hX2Rlc2lnbl9saWIpICR2YXJzKGRlc2lnbikgJHZhcnMoc3RlcCl9XG4iCi0gICAgICAgICAgICB9Ci0gICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgc2V0IGNvbW1hbmQgInNhdmVPYURlc2lnbiAkdmFycyhvYV9kZXNpZ25fbGliKSAkZGVzaWduICR2YXJzKHN0ZXApXG4iCi0gICAgICAgICB9Ci0gICAgICB9IGVsc2UgewotICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKHJlbGF0aXZlX3BhdGgpXSAmJiAkdmFycyhyZWxhdGl2ZV9wYXRoKX0gewotICAgICAgICAgICAgYXBwZW5kIGFyZ3MgIiAtcmVsYXRpdmVQYXRoIgotICAgICAgICAgfQotICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGFic29sdXRlX2xpYl9wYXRoKV0gJiYgJHZhcnMoYWJzb2x1dGVfbGliX3BhdGgpfSB7Ci0gICAgICAgICAgICBhcHBlbmQgYXJncyAiIC1hYnNvbHV0ZUxpYlBhdGgiCi0gICAgICAgICB9Ci0gICAgICAgICBzZXQgY29tbWFuZCAic2F2ZURlc2lnbiAkYXJncyAkZGlyLyR2YXJzKHN0ZXApLmVuYyAtY29tcHJlc3NcbiIKLSAgICAgIH0KLQotICAgICAgYXBwZW5kIGNvbW1hbmRzICRjb21tYW5kCi0KLSAgICAgIGlmIHshW2luZm8gZXhpc3RzIGVudihWUEFUSCldfSB7Ci0gICAgICAgICBzZXQgZW52KFZQQVRIKSAibWFrZSIKLSAgICAgIH0KLQotICAgICAgaWYgeyR2YXJzKG1ha2VmaWxlKX0gewotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJleGVjIC9iaW4vdG91Y2ggJGVudihWUEFUSCkvJHN0ZXBcbiIKLSAgICAgIH0KLQotICAgICAgc2V0IGhlYWRlciAiIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIgotICAgICAgYXBwZW5kIGhlYWRlciAiIyA8RkY+IEdFTkVSQVRJTkcgUkVQT1JUU1xuIgotICAgICAgYXBwZW5kIGhlYWRlciAiIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIgotCi0gICAgICBpZiB7JHZhcnMocmVwb3J0X3Bvd2VyKX0gewotICAgICAgICAgc2V0IGNvbW1hbmQgInJlcG9ydF9wb3dlciAtb3V0ZmlsZSAkdmFycyhycHRfZGlyKS8kdmFycyhzdGVwKS5wb3dlci5ycHRcbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAkY29tbWFuZAotICAgICAgfQotCi0gICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoY3BmX2ZpbGUpXSAmJiAoW2luZm8gZXhpc3RzIHZhcnMocG93ZXJfZG9tYWlucyldICYmIChbbGxlbmd0aCAkdmFycyhwb3dlcl9kb21haW5zKV0gPiAwKSl9IHsKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAkaGVhZGVyCi0gICAgICAgICBzZXQgaGVhZGVyICIiCi0KLSAgICAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICAgICMgVmVyaWZ5IHBvd2VyIGRvbWFpbgotICAgICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCi0gICAgICAgICBzZXQgY29tbWFuZCAidmVyaWZ5UG93ZXJEb21haW4gLWJpbmQgLWdjb25uIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAtaXNvTmV0UEQgJHZhcnMocnB0X2RpcikvJHZhcnMoc3RlcCkuaXNvbmV0cy5ycHQiCi0gICAgICAgICBhcHBlbmQgY29tbWFuZCAiIC14TmV0UEQgJHZhcnMocnB0X2RpcikvJHZhcnMoc3RlcCkueG5ldHMucnB0XG4iCi0KLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAkY29tbWFuZAotCi0gICAgICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAgICAjIFJ1biBDTFAKLSAgICAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLQotICAgICAgICAgaWYgeyR2YXJzKHJ1bl9jbHApICYmIChbYXV0b19leGVjb2sgbGVjXSAhPSAiIil9IHsKLSAgICAgICAgICAgIHNldCBjb21tYW5kICJydW5DTFAgIgotICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGNscF9vcHRpb25zKV19IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICR2YXJzKGNscF9vcHRpb25zKQotICAgICAgICAgICAgfQotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIlxuIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICRjb21tYW5kCi0gICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycyhjbHBfd2FybmluZyldfSB7Ci0gICAgICAgICAgICAgICBwdXRzICI8RkY+IFdBUk5JTkc6IFVOQUJMRSBUTyBSVU4gQ0xQIC4uLiBQTEVBU0UgTUFLRSBTVVJFIElUIElTIElOIFlPVVIgUEFUSCIKLSAgICAgICAgICAgICAgIHNldCB2YXJzKGNscF93YXJuaW5nKSB0cnVlCi0gICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0gICAgICB9Ci0KLSMgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiNcbiIKLSMgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgSE9VU0VLRUVQSU5HXG4iCi0jICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjXG4iCi0KLSAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhtYWlsLHRvKV19IHsKLSAgICAgICAgIGlmIHshW2luZm8gZXhpc3RzIHZhcnMobWFpbCxzdGVwcyldIHx8IFwKLSAgICAgICAgICAgICAoW2luZm8gZXhpc3RzIHZhcnMobWFpbCxzdGVwcyldICYmIChbbHNlYXJjaCAkdmFycyhtYWlsLHN0ZXBzKSAkdmFycyhzdGVwKV0gIT0gLTEpKX0gewotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJQdXRzIFwiPEZGPiBNQUlMSU5HIFJFU1VMVFMgVE8gJHZhcnMobWFpbCx0bylcIlxuIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJpZiB7XFtmaWxlIGV4aXN0cyAkdmFycyhycHRfZGlyKS8kdmFycyhzdGVwKS5zdW1tYXJ5XF19IHtcbiIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiICAgZXhlYyAvYmluL21haWwgLXMgXCJGRjogJHZhcnMoZGVzaWduKSwgJHZhcnMoc3RlcCkgY29tcGxldGVkIChcW3B3ZFxdKVwiIDwgJHZhcnMocnB0X2RpcikvJHZhcnMoc3RlcCkuc3VtbWFyeSAkdmFycyhtYWlsLHRvKVxuIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJ9IGVsc2Uge1xuIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIgICBleGVjIC9iaW4vbWFpbCAtcyBcIkZGOiAkdmFycyhkZXNpZ24pLCAkdmFycyhzdGVwKSBjb21wbGV0ZWQgKFxbcHdkXF0pXCIgPCAvZGV2L251bGwgJHZhcnMobWFpbCx0bylcbiIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAifVxuIgotICAgICAgICAgfQotICAgICAgfQotCi0jICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJleGVjIC9iaW4vdG91Y2ggXCRlbnYoVlBBVEgpLyR2YXJzKHN0ZXApXG4iCi0KLSAgICAgIGFwcGVuZCBjb21tYW5kcyBbOjpGRjo6c291cmNlX3BsdWcgZmluYWxfYWx3YXlzX3NvdXJjZV90Y2xdCi0KLSAgICAgIGlmIHskdmFycyhtYWtlZmlsZSl9IHsgCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgImlmIHtcW2luZm8gZXhpc3RzIGVudihWUEFUSClcXX0ge1xuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJleGVjIC9iaW4vdG91Y2ggXCRlbnYoVlBBVEgpLyR2YXJzKHN0ZXApXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIn1cbiIKLSAgICAgIH0KLQotICAgICAgdXBsZXZlbCAjMCBldmFsICRjb21tYW5kcwotICAgfQotCi0gIHByb2MgbG9hZF9hcHBsZXQge2FyZ3N9IHsKLQotICAgIHNldCBkZWZBcHBsZXROUyAiOjphcHBsZXQiCi0gICAgc2V0IGRlZlNldmVyaXR5ICJlcnJvciIKLSAgICBzZXQgZGVmYXVsdExvY2FsSW5zdGFsbCAkOjpucyhhcHBsZXQpOjpsb2NhbEluc3RhbGwKLSAgICBzZXQgZGVmYXVsdExvY2FsU2VydmVyICQ6Om5zKGFwcGxldCk6OmxvY2FsU2VydmVyCi0gICAgc2V0IHJlcUFwcGxldFZlcnNpb24gIiIKLQotICAgIHN3aXRjaCAtLSBbcGFyc2Vfb3B0aW9ucyBbY2FsbGluZ19wcm9jXSB7fSAkYXJncyBcCi0gICAgICAiLXZlcnNpb24gc29zIHJlcXVpcmVkIHZlcnNpb24gb2YgYXBwbGV0IChlcXVhbCBvciBncmVhdGVyKSIgcmVxQXBwbGV0VmVyc2lvbiBcCi0gICAgICAiLXNldmVyaXR5IHNvcyBzZXZlcml0eSAoZXJyb3J8d2FybmluZ3xpbmZvKSIgc2V2ZXJpdHkgXAotICAgICAgIi1uYW1lc3BhY2Ugc29zIG5hbWVzcGFjZSB0byBzZWFyY2ggZm9yIGFwcGxldCIgYXBwbGV0TlMgXAotICAgICAgInNycyBuYW1lIG9mIGFwcGxldCIgYXBwbGV0TmFtZV0gewotICAgICAgICAgIC0yIHsgcmV0dXJuIH0KLSAgICAgICAgICAwIHsgcmV0dXJuIC1jb2RlIGVycm9yIH0KLSAgICB9Ci0KLSAgICBpZiB7JGFwcGxldE5TIGVxICIifSB7Ci0gICAgICAgIHNldCBhcHBsZXROUyAkZGVmQXBwbGV0TlMKLSAgICB9Ci0KLSAgICBpZiB7JHNldmVyaXR5IGVxICIifSB7Ci0gICAgICBzZXQgc2V2ZXJpdHkgJGRlZlNldmVyaXR5Ci0gICAgfQotICAgCi0gICAgIyBDaGVjayB0byBzZWUgaWYgdGhlIGFwcGxldCBoYXBwZW5lZCB0byBhbHJlYWR5IGJlIGxvYWRlZC4gSWYgc28sIGNoZWNrCi0gICAgIyB3aGV0aGVyIHRoZXJlIGlzIGEgbWluaW11bSB2ZXJzaW9uIHJlcXVpcmVtZW50IG1ldC4gSWYgeWVzLCBza2lwIHRoZSByZXN0IG9mIHRoZSBhcHBsZXQKLSAgICAjIElmIHRoZSBhcHBsZXQgYWxyZWFkeSBkb2VzIG5vdCBtZWV0IHRoZSBtaW5pbXVtIHZlcnNpb24gcmVxdWlyZW1lbnQsIHVubG9hZCBpdCAodXNpbmcgcGFja2FnZSBmb3JnZXQpCi0gICAgaWYgeyFbY2F0Y2gge3NldCBwcm92aWRlZFZlcnNpb24gW3BhY2thZ2UgcHJlc2VudCAke2FwcGxldE5TfTo6JGFwcGxldE5hbWVdfSBlcnJvck1lc3NhZ2VdfSB7Ci0gICAgICBpZiB7JHJlcUFwcGxldFZlcnNpb24gbmUgIiJ9IHsKLSAgICAgICAgaWYge1twYWNrYWdlIHZjb21wYXJlICRwcm92aWRlZFZlcnNpb24gJHJlcUFwcGxldFZlcnNpb25dID09IC0xfSB7Ci0gICAgICAgICAgcHV0cyAibG9hZF9hcHBsZXQgSU5GTzogYXBwbGV0ICRhcHBsZXROYW1lIHdhcyBhbHJlYWR5IGxvYWRlZCwgYnV0IGl0J3MgdmVyc2lvbiAoJHByb3ZpZGVkVmVyc2lvbikgZGlkIG5vdCBtZWV0IHRoZSBtaW5pbXVtIHJlcXVpcmVkIHZlcnNpb24gKCRyZXFBcHBsZXRWZXJzaW9uKSIKLSAgICAgICAgICBwdXRzICJsb2FkX2FwcGxldCBJTkZPOiBUaGlzIHZlcnNpb24gb2YgdGhlICRhcHBsZXROYW1lIGFwcGxldCB3aWxsIGJlIHJlbW92ZWQgYW5kIHRoZSBsb2FkX2FwcGxldCB3aWxsIHNlYXJjaCBmb3IgYSBuZXdlciB2ZXJzaW9uIG9mICRhcHBsZXROYW1lLi4uIgotICAgICAgICAgIHBhY2thZ2UgZm9yZ2V0ICR7YXBwbGV0TlN9OjokYXBwbGV0TmFtZQotICAgICAgICB9IGVsc2UgewotCSAgcHV0cyAibG9hZF9hcHBsZXQgSU5GTzogRm91bmQgJGFwcGxldE5hbWUgYWxyZWFkeSBsb2FkZWQgYW5kIGl0J3MgdmVyc2lvbiAoJHByb3ZpZGVkVmVyc2lvbikgYWxyZWFkeSBtZWV0cyB0aGUgbWluaW11bSByZXF1aXJlZCB2ZXJzaW9uICgkcmVxQXBwbGV0VmVyc2lvbikuIFNraXBwaW5nIGxvYWQuLi4iCi0JICByZXR1cm4KLSAgICAgICAgfQotICAgICAgfSBlbHNlIHsKLQlwdXRzICJsb2FkX2FwcGxldCBJTkZPOiBGb3VuZCAkYXBwbGV0TmFtZSBhbHJlYWR5IGxvYWRlZCB3aXRoIHZlcnNpb24gKCRwcm92aWRlZFZlcnNpb24pLiBTa2lwcGluZyBhcHBsZXQgbG9hZC4uLiIKLQlyZXR1cm4KLSAgICAgIH0KLSAgICB9Ci0KLSAgICAjIFRoZXJlIGlzIG5vIHByZXZpb3VzbHkgbG9hZGVkIGFwcGxldC4gQ29udGludWUgd2l0aCB0aGlzIHByb2MuLi4KLSAgICBzZXQgRm91bmRNaW5WZXJzaW9uUGF0aCAwCi0gICAgc2V0IGZpbmFsU2VhcmNoUGF0aCAiIiAKLSAgICBzZXQgZmFpbGVkUGF0aHMgIiIKLSAgICAjIEJlY2F1c2UgSW5ub3Z1cyBoYXMgaXQncyBvd24gZ2V0X2F0dHJpYnV0ZSBjb21tYW5kIG5vdywgd2UgbmVlZCB0byBzZXQgdGhpcyBkZXBlbmRpbmcgb24gd2hhdCB0b29sIHdlIGFyZSBpbgotICAgIGlmIHtbZ2V0X3Rvb2xdIGVxICJyYyJ9IHsKLSAgICAgIHNldCBzZWFyY2hQYXRoTGlzdCBbZ2V0X2F0dHJpYnV0ZSBhcHBsZXRfc2VhcmNoX3BhdGggL10KLSAgICB9IGVsc2UgewotICAgICAgc2V0IHNlYXJjaFBhdGhMaXN0IFskOjpucyhjb21wYXQpOjpnZXRfYXR0cmlidXRlIGFwcGxldF9zZWFyY2hfcGF0aCAvXQotICAgIH0KLSAgICBzZXQgYXBwbGV0U2VhcmNoUGF0aENvdW50IFtsbGVuZ3RoICRzZWFyY2hQYXRoTGlzdF0KLQotICAgIHNldCBvcmlnYXBwbGV0U2VhcmNoUGF0aENvdW50ICRhcHBsZXRTZWFyY2hQYXRoQ291bnQKLSAgICBzZXQgb3JpZ1NlYXJjaFBhdGggIiIKLSAgICAjIEZpcnN0IHBhc3M6IGRldGVybWluZSB3aGljaCBhcHBsZXQgaW5zdGFsbGF0aW9ucyBtZWV0IG1pbiByZXF1aXJlZCB2ZXJzaW9uLCBpZiBhbnkKLSAgICAjIFRoaXMgZm9yIGxvb3AgZG9lcyBub3QgbG9hZCB0aGUgYXBwbGV0cywgaXQgb25seSBkZXRlcm1pbmVzIGEgZmluYWwgc2VhcmNoIHBhdGggdG8gdXNlCi0gICAgIyBJZiBub25lIG9mIHRoZSBzZWFyY2ggcGF0aHMgY29udGFpbiB0aGUgbWluaW11bSB2ZXJzaW9uLCBhbmQgc2V2ZXJpdHkgY29kZSBpcyBlcnJvciwgdGhpcyBwcm9jCi0gICAgIyB3aWxsIHJldHVybiBpbnNpZGUgdGhpcyBmb3JlYWNoIGxvb3Agd2l0aCBjb2RlIGVycm9yCi0gICAgaWYgeyRhcHBsZXRTZWFyY2hQYXRoQ291bnQgPiAxfSB7Ci0gICAgICBwdXRzICJsb2FkX2FwcGxldCBJTkZPOiBDaGVja2luZyBhbGwgYXBwbGV0IHNlYXJjaCBwYXRocyBmb3IgdmVyc2lvbnMgb2YgJGFwcGxldE5hbWUiCi0gICAgfQotICAgIGZvcmVhY2ggcGF0aENvbXBvbmVudCAkc2VhcmNoUGF0aExpc3QgewotICAgICAgaW5jciBhcHBsZXRTZWFyY2hQYXRoQ291bnQgLTEKLSAgICAgIGlmIHskb3JpZ2FwcGxldFNlYXJjaFBhdGhDb3VudCA+IDF9IHsKLSAgICAgICAgcHV0cyAtbm9uZXdsaW5lICIgICRwYXRoQ29tcG9uZW50IC4uLiIKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgIHB1dHMgLW5vbmV3bGluZSAibG9hZF9hcHBsZXQgSU5GTzogQ2hlY2tpbmcgYXBwbGV0X3NlYXJjaF9wYXRoOiAkcGF0aENvbXBvbmVudCAuLi4iCi0gICAgICB9Ci0gICAgICAjIElmIHRoZSBwYXRoIGNvbXBvbmVudCBpcyA8ZGVmYXVsdD4gcmVwbGFjZSB3aXRoIHRoZSBhcHBsZXQgZGVzaWduYXRlZCBzZWFyY2ggcGF0aCB2YWx1ZSB1c2luZyAiVXBkYXRlU2VhY2hQYXRoIgotICAgICAgaWYge1tzdHJpbmcgbWF0Y2ggIjxkZWZhdWx0PiIgJHBhdGhDb21wb25lbnRdfSB7Ci0gICAgICAgIHNldCBwYXRoQ29tcG9uZW50IFskOjpucyhhcHBsZXQpOjpVcGRhdGVTZWFyY2hQYXRoICRwYXRoQ29tcG9uZW50XQotICAgICAgfQotICAgICAgbGFwcGVuZCBvcmlnU2VhcmNoUGF0aCAkcGF0aENvbXBvbmVudAotICAgICAgaWYge1tmaWxlIGlzZGlyZWN0b3J5ICRwYXRoQ29tcG9uZW50XX0gewotCWlmIHtbZmlsZSBpc2ZpbGUgJHBhdGhDb21wb25lbnQvLnNlcnZJbmZvXX0gewotCSAgaWYge1tnZXRfdG9vbF0gZXEgInJjIn0gewotICAgICAgICAgICAgc2V0IHNvdXJjZUNvbW1hbmQgdGNsX3NvdXJjZQotCSAgfSBlbHNlIHsKLQkgICAgc2V0IHNvdXJjZUNvbW1hbmQgc291cmNlCi0JICB9Ci0JICAgc2V0IGVycm9yTXNnICIiCi0JICBpZiB7W2NhdGNoIHskc291cmNlQ29tbWFuZCAkcGF0aENvbXBvbmVudC8uc2VydkluZm99IGVycm9yTXNnXSB8fCAhW2luZm8gZXhpc3RzIGFwcEluZm8oJHthcHBsZXROU306OiR7YXBwbGV0TmFtZX0sdmVyc2lvbildfSB7Ci0JICAgIGlmIHskZXJyb3JNc2cgbmUgIiJ9IHsKLQkgICAgICBwdXRzICIgJGVycm9yTXNnIgotCSAgICB9IGVsc2UgewotCSAgICAgIHB1dHMgIiBCQUQgQVBQTEVUIFNFUlZFUiAoY29ycnVwdGVkIC5zZXJ2SW5mbyBmaWxlKSIKLQkgICAgfQotICAgICAgICAgIH0gZWxzZSB7Ci0JICAgIGlmIHskcmVxQXBwbGV0VmVyc2lvbiBlcSAiIiB9IHsKLQkgICAgICBsYXBwZW5kIG1pblZlcnNpb25TZWFyY2hQYXRoICRwYXRoQ29tcG9uZW50ICAKLQkgICAgICBzZXQgRm91bmRNaW5WZXJzaW9uUGF0aCAxCi0JICAgIH0gZWxzZWlmIHtbcGFja2FnZSB2Y29tcGFyZSAkYXBwSW5mbygke2FwcGxldE5TfTo6JHthcHBsZXROYW1lfSx2ZXJzaW9uKSAkcmVxQXBwbGV0VmVyc2lvbl0gIT0gLTF9IHsKLQkgICAgICAgIGxhcHBlbmQgbWluVmVyc2lvblNlYXJjaFBhdGggJHBhdGhDb21wb25lbnQgIAotCSAgICAgICAgc2V0IEZvdW5kTWluVmVyc2lvblBhdGggMQotIAkgICAgfSBlbHNlIHsKLQkgICAgICBsYXBwZW5kIGZhaWxlZFBhdGhzICRwYXRoQ29tcG9uZW50Ci0JICAgICAgc2V0IGZhaWxlZFBhdGh2ZXIoJHBhdGhDb21wb25lbnQpICRhcHBJbmZvKCR7YXBwbGV0TlN9Ojoke2FwcGxldE5hbWV9LHZlcnNpb24pCi0JICAgIH0KLQkgICAgcHV0cyAiIEZvdW5kICRhcHBJbmZvKCR7YXBwbGV0TlN9Ojoke2FwcGxldE5hbWV9LHZlcnNpb24pIgotICAgICAgICAgIH0KLQl9IGVsc2UgewotCSAgcHV0cyAiIEJBRCBBUFBMRVQgSU5TVEFMTCIKLSAgICAgICAgfQotICAgICAgfSBlbHNlIHsKLQlwdXRzICIgIE5PTkVYSVNURU5UIEFQUExFVCBTRVJWRVIiCi0gICAgICB9Ci0gICAgfTsjIGVuZCBmaXJzdCBmb3JlYWNoIGxvb3AgKGRpc3RpbGxpbmcgZmluYWwgbWluaW11bSB2ZXJzaW9uIGFwcGxldF9zZWFyY2hfcGF0aAotCi0gICAgIyBTZWNvbmQgcGFzczogYXR0ZW1wdCB0byBsb2FkIGFwcGxldCBpbiBlYWNoIHZhbGlkIHNlYXJjaF9wYXRoIHVudGlsIGEgc3VjY2Vzc2Z1bCBhcHBsZXQgbG9hZCBvY2N1cnMKLSAgICAjIFRoaXMgZm9yIGxvb3AgbXVzdCBsZWFkIHRvIGEgc3VjY2Vzc2Z1bCBvdXRjb21lIChsb2FkZWQgYXBwbGV0KSBvciBhbiBlcnJvciB3aWxsIGJlIGlzc3VlZAotICAgIGlmIHskRm91bmRNaW5WZXJzaW9uUGF0aH0gewotICAgICAgZm9yZWFjaCBzZWFyY2hQYXRoICRtaW5WZXJzaW9uU2VhcmNoUGF0aCB7Ci0gICAgICAgIHNldF9hdHRyaWJ1dGUgLXF1aWV0IGFwcGxldF9zZWFyY2hfcGF0aCAkc2VhcmNoUGF0aCAvCi0gICAgICAgIGlmIHtbY2F0Y2gge2FwcGxldCBsb2FkICRhcHBsZXROYW1lfSBlcnJvck1zZ119IHsKLSAgICAgICAgICBwdXRzICJsb2FkX2FwcGxldCBJTkZPOiBWZXJzaW9uIGNoZWNrIHBhc3NlZCBvbiBhcHBsZXQgaW5zdGFsbCAkYXBwbGV0TmFtZSBidXQgYXBwbGV0IGxvYWQgZmFpbGVkLiIKLSAgICAgICAgICBpZiB7JGFwcGxldFNlYXJjaFBhdGhDb3VudCA+IDB9IHsKLSAgICAgICAgICAgIHB1dHMgImxvYWRfYXBwbGV0OiBUcnlpbmcgbmV4dCBhcHBsZXRfc2VhcmNoX3BhdGguLi4iCi0gICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHB1dHMgImxvYWRfYXBwbGV0OiBFUlJPUjogRmFpbGVkIHRvIGxvYWQgYXBwbGV0ICRhcHBsZXROYW1lLiBQbGVhc2UgY2hlY2sgeW91ciBhcHBsZXRfc2VhcmNoX3BhdGggYW5kIGFwcGxldCBpbnN0YWxsYXRpb24ocykuIgotCSAgICBzZXRfYXR0cmlidXRlIC1xdWlldCBhcHBsZXRfc2VhcmNoX3BhdGggJG9yaWdTZWFyY2hQYXRoIC8KLSAgICAgICAgICAgIHJldHVybiAtY29kZSBlcnJvcgotICAgICAgICAgIH0KLSAgICAgICAgfSBlbHNlIHsKLQkgIGlmIHtbY2F0Y2gge3NldCBwcm92aWRlZFZlcnNpb24gW3BhY2thZ2UgcHJlc2VudCAke2FwcGxldE5TfTo6JGFwcGxldE5hbWVdfSBlcnJvck1lc3NhZ2VdfSB7Ci0gICAgICAgICAgICBwdXRzICJsb2FkX2FwcGxldDogRVJST1I6IGFwcGxldCAkYXBwbGV0TmFtZSBsb2FkZWQgY29ycmVjdGx5LCBidXQgdGhlIGFwcGxldCBkaWQgbm90IGNvcnJlY3RseSBwcm92aWRlIGEgcGFja2FnZSB2ZXJzaW9uLiBUcnlpbmcgbmV4dCBzZWFyY2ggcGF0aC4uLiIKLQkgIH0gZWxzZSB7Ci0gICAgICAgICAgICBwdXRzICJsb2FkX2FwcGxldDogSU5GTzogQXBwbGV0ICRhcHBsZXROYW1lICRwcm92aWRlZFZlcnNpb24gc3VjY2Vzc2Z1bGx5IGxvYWRlZCBmcm9tIGFwcGxldCBpbnN0YWxsYXRpb24gYXQgJHBhdGhDb21wb25lbnQsIG1lZXRpbmcgbWluIHZlcnNpb24gcmVxdWlyZW1lbnQgKCRyZXFBcHBsZXRWZXJzaW9uKSIKLQkgICAgc2V0X2F0dHJpYnV0ZSAtcXVpZXQgYXBwbGV0X3NlYXJjaF9wYXRoICRvcmlnU2VhcmNoUGF0aCAvCi0JICAgIHJldHVybgotCSAgfQotICAgICAgICB9Ci0gICAgICB9Ci0gICAgfSBlbHNlIHsKLSAgICAgICMgRGlkbid0IGZpbmQgYW55IHNlYXJjaHkgcGF0aHMgd2l0aCBtaW5pbXVtIGFwcGxldCBpbnN0YWxsZWQuCi0gICAgICBzd2l0Y2ggLWV4YWN0IC0tICRzZXZlcml0eSB7Ci0gICAgICAgIGVycm9yIHsKLSAgICAgICAgICBwdXRzICJsb2FkX2FwcGxldCBFUlJPUjogTWluaW11bSBhcHBsZXQgdmVyc2lvbiBmb3IgYXBwbGV0ICRhcHBsZXROYW1lIGlzICRyZXFBcHBsZXRWZXJzaW9uLCBidXQgbm8gYXBwbGV0IHdhcyBmb3VuZCBtZWV0aW5nIHRoaXMgcmVxdWlyZW1lbnQuIgotCX0KLSAgICAgICAgd2FybmluZyB7Ci0gICAgICAgICAgcHV0cyAibG9hZF9hcHBsZXQgV0FSTklORzogTWluaW11bSBhcHBsZXQgdmVyc2lvbiBmb3IgYXBwbGV0ICRhcHBsZXROYW1lIGlzICRyZXFBcHBsZXRWZXJzaW9uLCBidXQgbm8gYXBwbGV0IHdhcyBmb3VuZCBtZWV0aW5nIHRoaXMgcmVxdWlyZW1lbnQuIgotCX0KLSAgICAgICAgaW5mbyB7Ci0gICAgICAgICAgcHV0cyAibG9hZF9hcHBsZXQgSU5GTzogTWluaW11bSBhcHBsZXQgdmVyc2lvbiBmb3IgYXBwbGV0ICRhcHBsZXROYW1lIGlzICRyZXFBcHBsZXRWZXJzaW9uLCBidXQgbm8gYXBwbGV0IHdhcyBmb3VuZCBtZWV0aW5nIHRoaXMgcmVxdWlyZW1lbnQuIgotCX0KLSAgICAgIH0KLSAgICAgIHB1dHMgImxvYWRfYXBwbGV0IElORk86IFNlYXJjaCByZXN1bHRzOiIKLSAgICAgIGZvcmVhY2ggc2VhcmNoUGF0aCAkZmFpbGVkUGF0aHMgewotICAgICAgICBwdXRzICIgIGFwcGxldF9zZWFyY2hfcGF0aDogJHNlYXJjaFBhdGgsICRhcHBsZXROYW1lIHZlcnNpb24gZm91bmQ6ICRmYWlsZWRQYXRodmVyKCRzZWFyY2hQYXRoKSIKLSAgICAgIH0KLSAgICAgIHB1dHMgImxvYWRfYXBwbGV0IElORk86IE5vdGUgYXBwbGV0IHNlYXJjaCBwYXRoIHRoYXQgd2FzIHNldDoiCi0gICAgICBwdXRzICIgICRvcmlnU2VhcmNoUGF0aCIgCi0gICAgICBzd2l0Y2ggLWV4YWN0IC0tICRzZXZlcml0eSB7Ci0gICAgICAgIGVycm9yIHsKLQkgIHNldF9hdHRyaWJ1dGUgLXF1aWV0IGFwcGxldF9zZWFyY2hfcGF0aCAkb3JpZ1NlYXJjaFBhdGggLwotICAgICAgICAgIHJldHVybiAtY29kZSA5OQotICAgICAgICB9Ci0gICAgICB9Ci0gICAgfQotICAgIHNldF9hdHRyaWJ1dGUgLXF1aWV0IGFwcGxldF9zZWFyY2hfcGF0aCAkb3JpZ1NlYXJjaFBhdGggLwotICB9Ci0KLX0KZGlmZiAtLWdpdCBhL2Zsb3cvcG5yL0VYQU1QTEVTL0lOTk9WVVMvREVTSUdOL1NDUklQVFMvRVRDL0lOTk9WVVMvdmFycy50eHQgYi9mbG93L3Buci9FWEFNUExFUy9JTk5PVlVTL0RFU0lHTi9TQ1JJUFRTL0VUQy9JTk5PVlVTL3ZhcnMudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAzNjM4MmNjLi4wMDAwMDAwCi0tLSBhL2Zsb3cvcG5yL0VYQU1QTEVTL0lOTk9WVVMvREVTSUdOL1NDUklQVFMvRVRDL0lOTk9WVVMvdmFycy50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwxNzQgKzAsMCBAQAotc2NyaXB0X3Jvb3ReZGlyZWN0b3J5XnN0cmluZ15TQ1JJUFRTXnt2YWxpZCBkaXJlY3Rvcnl9DQotZGJzX2Rpcl5kaXJlY3Rvcnlec3RyaW5nXkRCU157dmFsaWQgZGlyZWN0b3J5fQ0KLXJwdF9kaXJeZGlyZWN0b3J5XnN0cmluZ15SUFRee3ZhbGlkIGRpcmVjdG9yeX0NCi1odG1sX2Rpcl5kaXJlY3Rvcnlec3RyaW5nXkhUTUxee3ZhbGlkIGRpcmVjdG9yeX0NCi1wbHVnX2Rpcl5kaXJlY3Rvcnlec3RyaW5nXlBMVUdee3ZhbGlkIGRpcmVjdG9yeX0NCi1wcm9jZXNzXnRlY2hub2xvZ3lec3RyaW5nXjkwbm1ee1ZhbGlkIHJhbmdlIGJldHdlZW4gMTBubSBhbmQgMjUwIG5tfQ0KLWxlZl9maWxlc150ZWNobm9sb2d5Xmxpc3ReVU5ERUZJTkVEXntsZWYgZmlsZXN9DQotbmV0bGlzdF5kZXNpZ25ec3RyaW5nXlVOREVGSU5FRF57dmFsaWQgZmlsZSBuYW1lfQ0KLWRlc2lnbl5kZXNpZ25ec3RyaW5nXlVOREVGSU5FRF57dmFsaWQgZmlsZSBuYW1lfQ0KLWZwX2ZpbGVeZGVzaWduXnN0cmluZ15VTkRFRklORURee3ZhbGlkIGZpbGUgbmFtZX0NCi1kZWZfZmlsZXNeZGVzaWduXmxpc3ReVU5ERUZJTkVEXnt2YWxpZCBmaWxlIG5hbWVzfQ0KLWlsbV9saXN0XmlsbV5saXN0XlVOREVGSU5FRF57aWxtc30NCi08aWxtPixpbG1fZGlyXmlsbV5zdHJpbmdeVU5ERUZJTkVEXntpbG0gZGlyZWN0b3J5fQ0KLTxpbG0+LGxlZl9maWxlXmlsbV5zdHJpbmdeVU5ERUZJTkVEXntsZWYgZmlsZX0NCi1wb3dlcl9uZXRzXmRlc2lnbl5saXN0XlVOREVGSU5FRF57bmV0IG5hbWVzfQ0KLWdyb3VuZF9uZXRzXmRlc2lnbl5saXN0XlVOREVGSU5FRF57bmV0IG5hbWVzfQ0KLXN0YXJ0aW5nX2Ric15kZXNpZ25ec3RyaW5nXlVOREVGSU5FRF57dmFsaWQgRkUgZGF0YWJhc2V9DQotZGF0YWJhc2VfZm9ybWF0XmRlc2lnbl5zdHJpbmdeRkVee0ZFIHwgT0F9DQotb2FfcmVmX2xpYl5kZXNpZ25ec3RyaW5nXlVOREVGSU5FRF57dmFsaWQgT0EgbGlicmFyeX0NCi1vYV9kZXNpZ25fbGliXmRlc2lnbl5zdHJpbmdeVU5ERUZJTkVEXnt2YWxpZCBPQSBsaWJyYXJ5fQ0KLW9hX2Fic3RyYWN0X25hbWVebWFudWZhY3R1cmluZ15zdHJpbmdeVU5ERUZJTkVEXnt2YWxpZCB2aWV3IG5hbWV9DQotb2FfbGF5b3V0X25hbWVebWFudWZhY3R1cmluZ15zdHJpbmdeVU5ERUZJTkVEXnt2YWxpZCB2aWV3IG5hbWV9DQotY3RzX3NwZWNeZGVzaWduXmxpc3ReVU5ERUZJTkVEXntjdHMgc3BlYyBmaWxlc30NCi1jdHNfY2VsbHNeY2xvY2tebGlzdF5VTkRFRklORURee2Nsb2NrIGNlbGxzfQ0KLWVuYWJsZV9zc15hbmFseXNpc15lbnVtXkZBTFNFXntwcmVfcGxhY2UgfCAgcHJlX3ByZWN0cyB8ICBwcmVfcG9zdGN0cyB8ICBwcmVfcG9zdHJvdXRlIHwgIHByZV9wb3N0cm91dGVfc2kgfCAgcHJlX3NpZ25vZmYgfCAgZmFsc2V9DQotZmxvd15mbG93XmVudW1eZGVmYXVsdF57ZGVmYXVsdCB8ICBwcl9tbW1jIHwgIG1tbWN9DQotZW5hYmxlX29jdl5hbmFseXNpc15lbnVtXnByZV9wb3N0cm91dGVee2ZhbHNlIHwgcHJlX3Bvc3RjdHMgfCBwcmVfcG9zdHJvdXRlIHwgcHJlX3Bvc3Ryb3V0ZV9zaSB8IHByZV9zaWdub2ZmfQ0KLWxpYnJhcnlfc2V0c15saWJyYXJ5Xmxpc3ReVU5ERUZJTkVEXntsaWJyYXJ5IHNldHN9DQotPGxpYnJhcnlfc2V0PixzaV5saWJyYXJ5Xmxpc3ReVU5ERUZJTkVEXntjZGIgZmlsZXN9DQotPGxpYnJhcnlfc2V0Pix0aW1pbmdebGlicmFyeV5saXN0XlVOREVGSU5FRF57bGlicmFyeSBmaWxlc30NCi1yY19jb3JuZXJzXnRlY2hub2xvZ3lebGlzdF5VTkRFRklORURee3JjIGNvcm5lcnN9DQotPHJjX2Nvcm5lcj4sVF50ZWNobm9sb2d5XmludGVnZXJeMTI1Xnt0ZW1wZXJhdHVyZX0NCi08cmNfY29ybmVyPixjYXBfdGFibGVedGVjaG5vbG9neV5maWxlXlVOREVGSU5FRF57Y2FwIHRhYmxlfQ0KLTxyY19jb3JuZXI+LHF4X3RlY2hfZmlsZV50ZWNobm9sb2d5XmZpbGVeVU5ERUZJTkVEXnt0ZWNobm9sb2d5IGZpbGV9DQotPHJjX2Nvcm5lcj4scHJlX3JvdXRlX2NhcF9mYWN0b3JedGVjaG5vbG9neV5GTE9BVF4xLjAwXntGTE9BVH0NCi08cmNfY29ybmVyPixwcmVfcm91dGVfY2xrX2NhcF9mYWN0b3JedGVjaG5vbG9neV5GTE9BVF4xLjAwXntGTE9BVH0NCi08cmNfY29ybmVyPixwcmVfcm91dGVfY2xrX3Jlc19mYWN0b3JedGVjaG5vbG9neV5GTE9BVF4xLjAwXntGTE9BVH0NCi08cmNfY29ybmVyPixwcmVfcm91dGVfcmVzX2ZhY3Rvcl50ZWNobm9sb2d5XkZMT0FUXjEuMDBee0ZMT0FUfQ0KLTxyY19jb3JuZXI+LHBvc3Rfcm91dGVfY2FwX2ZhY3Rvcl50ZWNobm9sb2d5XkZMT0FUIFRSSVBMRV4iMS4wMCAxLjAwIDEuMDAiXntGTE9BVCBUUklQTEVUfQ0KLTxyY19jb3JuZXI+LHBvc3Rfcm91dGVfY2xrX2NhcF9mYWN0b3JedGVjaG5vbG9neV5GTE9BVCBUUklQTEVeIjEuMDAgMS4wMCAxLjAwIl57RkxPQVQgVFJJUExFVH0NCi08cmNfY29ybmVyPixwb3N0X3JvdXRlX2Nsa19yZXNfZmFjdG9yXnRlY2hub2xvZ3leRkxPQVQgVFJJUExFXiIxLjAwIDEuMDAgMS4wMCJee0ZMT0FUIFRSSVBMRVR9DQotPHJjX2Nvcm5lcj4scG9zdF9yb3V0ZV9yZXNfZmFjdG9yXnRlY2hub2xvZ3leRkxPQVQgVFJJUExFXiIxLjAwIDEuMDAgMS4wMCJee0ZMT0FUIFRSSVBMRVR9DQotPHJjX2Nvcm5lcj4scG9zdF9yb3V0ZV94Y2FwX2ZhY3Rvcl50ZWNobm9sb2d5XkZMT0FUIFRSSVBMRV4iMS4wMCAxLjAwIDEuMDAiXntGTE9BVCBUUklQTEVUfQ0KLWRlbGF5X2Nvcm5lcnNebGlicmFyeV5saXN0XlVOREVGSU5FRF57ZGVsYXkgY29ybmVyc30NCi08ZGVsYXlfY29ybmVyPixsaWJyYXJ5X3NldF5saWJyYXJ5Xmxpc3ReVU5ERUZJTkVEXnt2YWxpZCBsaWJyYXJ5IHNldHN9DQotPGRlbGF5X2Nvcm5lcj4scmNfY29ybmVyXnRlY2hub2xvZ3lec3RyaW5nXlVOREVGSU5FRF57dmFsaWQgZGVsYXkgY29ybmVyfQ0KLTxkZWxheV9jb3JuZXI+LGNsb2NrX2NlbGxfZWFybHledGltaW5nXkZMT0FUXlVOREVGSU5FRF57RkxPQVR9DQotPGRlbGF5X2Nvcm5lcj4sY2xvY2tfY2VsbF9sYXRlXnRpbWluZ15GTE9BVF5VTkRFRklORURee0ZMT0FUfQ0KLTxkZWxheV9jb3JuZXI+LGNsb2NrX25ldF9lYXJseV50aW1pbmdeRkxPQVReVU5ERUZJTkVEXntGTE9BVH0NCi08ZGVsYXlfY29ybmVyPixjbG9ja19uZXRfbGF0ZV50aW1pbmdeRkxPQVReVU5ERUZJTkVEXntGTE9BVH0NCi08ZGVsYXlfY29ybmVyPixkYXRhX2NlbGxfZWFybHledGltaW5nXkZMT0FUXlVOREVGSU5FRF57RkxPQVR9DQotPGRlbGF5X2Nvcm5lcj4sZGF0YV9jZWxsX2xhdGVedGltaW5nXkZMT0FUXlVOREVGSU5FRF57RkxPQVR9DQotPGRlbGF5X2Nvcm5lcj4sZGF0YV9uZXRfZWFybHledGltaW5nXkZMT0FUXlVOREVGSU5FRF57RkxPQVR9DQotPGRlbGF5X2Nvcm5lcj4sZGF0YV9uZXRfbGF0ZV50aW1pbmdeRkxPQVReVU5ERUZJTkVEXntGTE9BVH0NCi08ZGVsYXlfY29ybmVyPixvcGNvbmRedGltaW5nXnN0cmluZ15VTkRFRklORURee3ZhbGlkIG9wY29uZCBuYW1lfQ0KLTxkZWxheV9jb3JuZXI+LG9wY29uZF9saWJyYXJ5XnRpbWluZ15zdHJpbmdeVU5ERUZJTkVEXnt2YWxpZCBsaWJyYXJ5IG5hbWV9DQotY29uc3RyYWludF9tb2Rlc15kZXNpZ25ebGlzdF5VTkRFRklORURee2NvbnN0cmFpbnQgbW9kZXN9DQotPGNvbnN0cmFpbnRfbW9kZT4scHJlX2N0c19zZGNeZGVzaWduXmxpc3ReVU5ERUZJTkVEXnt2YWxpZCBmaWxlIG5hbWVzfQ0KLTxjb25zdHJhaW50X21vZGU+LGluY3JfY3RzX3NkY15kZXNpZ25ebGlzdF5VTkRFRklORURee3ZhbGlkIGZpbGUgbmFtZXN9DQotPGNvbnN0cmFpbnRfbW9kZT4scG9zdF9jdHNfc2RjXmRlc2lnbl5saXN0XlVOREVGSU5FRF57dmFsaWQgZmlsZSBuYW1lc30NCi1lbmFibGVfY3Bwcl5hbmFseXNpc15lbnVtXm5vbmVee25vbmUgfCBzZXR1cCB8IGhvbGQgfCBib3RofQ0KLWFuYWx5c2lzX3ZpZXdzXmxpYnJhcnlebGlzdF5VTkRFRklORURee2FuYWx5c2lzIHZpZXdzfQ0KLWhvbGRfYW5hbHlzaXNfdmlld3NedGltaW5nXmxpc3ReVU5ERUZJTkVEXnthbmFseXNpcyB2aWV3c30NCi1zZXR1cF9hbmFseXNpc192aWV3c150aW1pbmdebGlzdF5VTkRFRklORURee2FuYWx5c2lzIHZpZXdzfQ0KLTxhbmFseXNpc192aWV3Pixjb25zdHJhaW50X21vZGVedGltaW5nXnN0cmluZ15VTkRFRklORURee2NvbnN0cmFpbnQgbW9kZX0NCi08YW5hbHlzaXNfdmlldz4sZGVsYXlfY29ybmVyXnRpbWluZ15zdHJpbmdeVU5ERUZJTkVEXntkZWxheSBjb3JuZXJ9DQotZGVmYXVsdF9ob2xkX3ZpZXdedGltaW5nXnN0cmluZ15VTkRFRklORURee2FuYWx5c2lzIHZpZXd9DQotZGVmYXVsdF9zZXR1cF92aWV3XnRpbWluZ15zdHJpbmdeVU5ERUZJTkVEXnthbmFseXNpcyB2aWV3fQ0KLWFjdGl2ZV9ob2xkX3ZpZXdzXnRpbWluZ15saXN0XlVOREVGSU5FRF57YW5hbHlzaXMgdmlld3N9DQotYWN0aXZlX3NldHVwX3ZpZXdzXnRpbWluZ15saXN0XlVOREVGSU5FRF57YW5hbHlzaXMgdmlld3N9DQotcG93ZXJfYW5hbHlzaXNfdmlld15wb3dlcl5zdHJpbmdee2RlZmF1bHQgc2V0dXAgdmlld31ee2FuYWx5c2lzIHZpZXd9DQotI2NwZl9maWxlXmRlc2lnbl5zdHJpbmdeVU5ERUZJTkVEXnt2YWxpZCBmaWxlIG5hbWV9DQotY3BmX2tlZXBfcm93c15kZXNpZ25eYm9vbGVhbl5GQUxTRV57VFJVRSB8IEZBTFNFfQ0KLWNwZl9wb3dlcl9kb21haW5eZGVzaWduXmJvb2xlYW5eRkFMU0Vee1RSVUUgfCBGQUxTRX0NCi1jcGZfcG93ZXJfc3dpdGNoXmRlc2lnbl5ib29sZWFuXkZBTFNFXntUUlVFIHwgRkFMU0V9DQotY3BmX2lzb2xhdGlvbl5kZXNpZ25eYm9vbGVhbl5GQUxTRV57VFJVRSB8IEZBTFNFfQ0KLWNwZl9zdGF0ZV9yZXRlbnRpb25eZGVzaWduXmJvb2xlYW5eRkFMU0Vee1RSVUUgfCBGQUxTRX0NCi1jcGZfbGV2ZWxfc2hpZnRlcl5kZXNpZ25eYm9vbGVhbl5GQUxTRV57VFJVRSB8IEZBTFNFfQ0KLWxlYWthZ2VfcG93ZXJfZWZmb3J0XmRlc2lnbl5ib29sZWFuXlVOREVGSU5FRF57VFJVRSB8IEZBTFNFfQ0KLWR5bmFtaWNfcG93ZXJfZWZmb3J0XmRlc2lnbl5ib29sZWFuXlVOREVGSU5FRF57VFJVRSB8IEZBTFNFfQ0KLXJlcG9ydF9wb3dlcl5wb3dlcl5ib29sZWFuXkZBTFNFXntUUlVFIHwgRkFMU0V9DQotYWN0aXZpdHlfZmlsZV5kZXNpZ25ec3RyaW5nXlVOREVGSU5FRF57YWN0aXZpdHkgZmlsZX0NCi1hY3Rpdml0eV9maWxlX3R5cGVeZGVzaWduXmVudW1eVENGXntUQ0YgfCAgVkNEIHwgIFNBSUZ9DQotd2VsbHRhcHNeaW5pdF5saXN0XlVOREVGSU5FRF57d2VsbHRhcCBjZWxsc30NCi13ZWxsdGFwcyxjZWxsX2ludGVydmFsXmluaXReRkxPQVReVU5ERUZJTkVEXnttaWNyb25zfQ0KLXdlbGx0YXBzLG1heF9nYXBeaW5pdF5GTE9BVF5VTkRFRklORURee21pY3JvbnN9DQotd2VsbHRhcHMscm93X29mZnNldF5pbml0XmludGVnZXJeVU5ERUZJTkVEXnttaWNyb25zfQ0KLXdlbGx0YXBzLGNoZWNrZXJib2FyZF5pbml0XmJvb2xlYW5eVU5ERUZJTkVEXntUUlVFIHwgRkFMU0V9DQotanRhZ19jZWxsc15pbml0Xmxpc3ReVU5ERUZJTkVEXntqdGFnIGNlbGxzfQ0KLWp0YWdfcm93c15pbml0XmludGVnZXJeVU5ERUZJTkVEXntyb3dzfQ0KLWluX3BsYWNlX29wdF5wbGFjZV5ib29sZWFuXkZBTFNFXntUUlVFIHwgRkFMU0V9DQotbm9fcHJlX3BsYWNlX29wdF5wbGFjZV5ib29sZWFuXkZBTFNFXntUUlVFIHwgRkFMU0V9DQotcGxhY2VfaW9fcGluc15wbGFjZV5ib29sZWFuXkZBTFNFXntUUlVFIHwgRkFMU0V9DQotdGllX2NlbGxzXnBsYWNlXmxpc3ReVU5ERUZJTkVEXnt0aWUgY2VsbHN9DQotdGllX2NlbGxzLG1heF9kaXN0YW5jZV5wbGFjZV5GTE9BVF5VTkRFRklORURee0ZMT0FUIGluIG1pY3JvbnN9DQotdGllX2NlbGxzLG1heF9mYW5vdXRecGxhY2VeaW50ZWdlcl5VTkRFRklORURee2ludGVnZXIgaW4gbWljcm9uc30NCi1maWxsZXJfY2VsbHNecm91dGVebGlzdF5VTkRFRklORURee2ZpbGxlciBjZWxsc30NCi1jb25nZXN0aW9uX2VmZm9ydF5pbml0XmVudW1eVU5ERUZJTkVEXntsb3cgfCBtZWRpdW0gfCBoaWdofQ0KLXNrZXdfYnVmZmVyc15jbG9ja15saXN0XlVOREVGSU5FRF57Y2xvY2sgY2VsbHN9DQotY2xvY2tfZ2F0ZV9hd2FyZV5jbG9ja15ib29sZWFuXkZBTFNFXntUUlVFIHwgRkFMU0V9DQotY2xvY2tfZ2F0ZV9jbG9uZV5jbG9ja15ib29sZWFuXkZBTFNFXntUUlVFIHwgRkFMU0V9DQotYXNzaWduX2J1ZmZlcl5pbml0XmJvb2xlYW5eRkFMU0Vee1RSVUUgfCBGQUxTRX0NCi1oaWdoX3RpbWluZ19lZmZvcnReaW5pdF5ib29sZWFuXkZBTFNFXntUUlVFIHwgRkFMU0V9DQotZG9udF91c2VfbGlzdF5pbml0Xmxpc3ReVU5ERUZJTkVEXntkb250IHVzZSBjZWxsc30NCi11c2VfbGlzdF5pbml0Xmxpc3ReVU5ERUZJTkVEXntjZWxscyB0byB1c2V9DQotY3JpdGljYWxfcmFuZ2Veb3B0XkZMT0FUXlVOREVGSU5FRF57cmFuZ2UgYmV0d2VlbiAwLjAgYW5kIDEuMH0NCi11c2VmdWxfc2tld15vcHReYm9vbGVhbl5VTkRFRklORURee1RSVUUgfCBGQUxTRX0NCi1wcmVzZXJ2ZV9hc3NlcnRpb25zXm9wdF5ib29sZWFuXlVOREVGSU5FRF57VFJVRSB8IEZBTFNFfQ0KLXJlc2l6ZV9zaGlmdGVyX2FuZF9pc29faW5zdHNeb3B0XmJvb2xlYW5eVU5ERUZJTkVEXntUUlVFIHwgRkFMU0V9DQotZml4X2hvbGReaG9sZF5ib29sZWFuXlRSVUVee1RSVUUgfCBGQUxTRX0NCi1maXhfaG9sZF9pZ25vcmVfaW9zXmhvbGReYm9vbGVhbl5GQUxTRV57VFJVRSB8IEZBTFNFfQ0KLWZpeF9ob2xkX2FsbG93X3Ruc19kZWdyYWRhdGlvbl5ob2xkXmJvb2xlYW5eRkFMU0Vee1RSVUUgfCBGQUxTRX0NCi1yb3V0ZV9jbG9ja19uZXRzXmNsb2NrXmJvb2xlYW5eVFJVRV57VFJVRSB8IEZBTFNFfQ0KLWNsb2NrX2Vjb15jbG9ja15lbnVtXm5vbmVee25vbmUgfCBwb3N0Y3RzIHwgcG9zdHJvdXRlIHwgYm90aH0NCi1tYXhfcm91dGVfbGF5ZXJedGVjaG5vbG9neV5pbnRlZ2VyXlVOREVGSU5FRF57aW50ZWdlcn0NCi1nZW5lcmF0ZV90cmFja3NeaW5pdF5ib29sZWFuXlRSVUVee1RSVUUgfCBGQUxTRX0NCi1wb3N0cm91dGVfZXh0cmFjdGlvbl9lZmZvcnRecm91dGVeZW51bV5VTkRFRklORURee2xvdyB8IG1lZGl1bSB8IGhpZ2h9DQotbXVsdGljdXRfdmlhX2VmZm9ydF5yb3V0ZV5lbnVtXlVOREVGSU5FRF57bG93IHwgbWVkaXVtIHwgaGlnaH0NCi1saXRob19kcml2ZW5fcm91dGluZ15yb3V0ZV5ib29sZWFuXkZBTFNFXntUUlVFIHwgRkFMU0V9DQotcG9zdHJvdXRlX3NwcmVhZF93aXJlc15yb3V0ZV5ib29sZWFuXkZBTFNFXntUUlVFIHwgRkFMU0V9DQotZGVsdGFfZGVsYXlfdGhyZXNob2xkXm5vaXNlXkZMT0FUXlVOREVGSU5FRF57RkxPQVQgaW4gbmFub3NlY29uZHN9DQotY2VsdGljX3NldHRpbmdzXm5vaXNlXnN0cmluZ15VTkRFRklORURee3ZhbGlkIGNlbHRpYyBjb21tYW5kc30NCi1jb3VwbGluZ19jX3RocmVzaF5ub2lzZV5GTE9BVF5VTkRFRklORURee0ZMT0FUfQ0KLXJlbGF0aXZlX2NfdGhyZXNoXm5vaXNlXkZMT0FUXlVOREVGSU5FRF57RkxPQVR9DQotdG90YWxfY190aHJlc2hebm9pc2VeRkxPQVReVU5ERUZJTkVEXntGTE9BVH0NCi1zaV9hbmFseXNpc190eXBlXm5vaXNlXmVudW1eVU5ERUZJTkVEXntkZWZhdWx0IHwgcGVzc2ltaXN0aWN9DQotc2lnbm9mZl9leHRyYWN0aW9uX2VmZm9ydF5ub2lzZV5lbnVtXmhpZ2hee25vbmUgfCBsb3cgfCBoaWdofQ0KLW1ldGFsZmlsbF5tYW51ZmFjdHVyaW5nXmVudW1eRkFMU0Vee3ByZV9wb3N0cm91dGUgfCAgcHJlX3Bvc3Ryb3V0ZV9zaSB8ICBwcmVfc2lnbm9mZiB8ICBmYWxzZX0NCi1tZXRhbGZpbGxfdGNsXm1hbnVmYWN0dXJpbmdec3RyaW5nXlVOREVGSU5FRF57dmFsaWQgZmlsZSBuYW1lfQ0KLWdkc19maWxlc15tYW51ZmFjdHVyaW5nXmxpc3ReVU5ERUZJTkVEXntnZHMgZmlsZXN9DQotZ2RzX21hcF9maWxlXm1hbnVmYWN0dXJpbmdec3RyaW5nXlVOREVGSU5FRF57dmFsaWQgZmlsZSBuYW1lc30NCi1sb2NhbF9jcHVzXm11bHRpY3B1XmludGVnZXJeMV57aW50ZWdlcn0NCi1yZW1vdGVfaG9zdHNebXVsdGljcHVeaW50ZWdlcl4wXntpbnRlZ2VyfQ0KLWNwdXNfcGVyX3JlbW90ZV9ob3N0Xm11bHRpY3B1XmludGVnZXJeMV57aW50ZWdlcn0NCi1hbHdheXNfc291cmNlX3RjbF5wbHVnLWluXnN0cmluZ15VTkRFRklORURee3ZhbGlkIGZpbGUgbmFtZX0NCi1maW5hbF9hbHdheXNfc291cmNlX3RjbF5wbHVnLWluXnN0cmluZ15VTkRFRklORURee3ZhbGlkIGZpbGUgbmFtZX0NCi1wcmVfYXNzaWduX3Bpbl90Y2xecGx1Zy1pbl5zdHJpbmdeVU5ERUZJTkVEXnt2YWxpZCBmaWxlIG5hbWV9DQotcG9zdF9hc3NpZ25fcGluX3RjbF5wbHVnLWluXnN0cmluZ15VTkRFRklORURee3ZhbGlkIGZpbGUgbmFtZX0NCi1wcmVfcGFydGl0aW9uX3RjbF5wbHVnLWluXnN0cmluZ15VTkRFRklORURee3ZhbGlkIGZpbGUgbmFtZX0NCi1wb3N0X3BhcnRpdGlvbl90Y2xecGx1Zy1pbl5zdHJpbmdeVU5ERUZJTkVEXnt2YWxpZCBmaWxlIG5hbWV9DQotcHJlX2luaXRfdGNsXnBsdWctaW5ec3RyaW5nXlVOREVGSU5FRF57dmFsaWQgZmlsZSBuYW1lfQ0KLXBvc3RfaW5pdF90Y2xecGx1Zy1pbl5zdHJpbmdeVU5ERUZJTkVEXnt2YWxpZCBmaWxlIG5hbWV9DQotcHJlX3BsYWNlX3RjbF5wbHVnLWluXnN0cmluZ15VTkRFRklORURee3ZhbGlkIGZpbGUgbmFtZX0NCi1wbGFjZV90Y2xecGx1Zy1pbl5zdHJpbmdeVU5ERUZJTkVEXnt2YWxpZCBmaWxlIG5hbWV9DQotcG9zdF9wbGFjZV90Y2xecGx1Zy1pbl5zdHJpbmdeVU5ERUZJTkVEXnt2YWxpZCBmaWxlIG5hbWV9DQotcHJlX2N0c190Y2xecGx1Zy1pbl5zdHJpbmdeVU5ERUZJTkVEXnt2YWxpZCBmaWxlIG5hbWV9DQotY3RzX3RjbF5wbHVnLWluXnN0cmluZ15VTkRFRklORURee3ZhbGlkIGZpbGUgbmFtZX0NCi1wb3N0X2N0c190Y2xecGx1Zy1pbl5zdHJpbmdeVU5ERUZJTkVEXnt2YWxpZCBmaWxlIG5hbWV9DQotcHJlX3Bvc3RjdHNfdGNsXnBsdWctaW5ec3RyaW5nXlVOREVGSU5FRF57dmFsaWQgZmlsZSBuYW1lfQ0KLXBvc3RfcG9zdGN0c190Y2xecGx1Zy1pbl5zdHJpbmdeVU5ERUZJTkVEXnt2YWxpZCBmaWxlIG5hbWV9DQotcHJlX3Bvc3RjdHNfaG9sZF90Y2xecGx1Zy1pbl5zdHJpbmdeVU5ERUZJTkVEXnt2YWxpZCBmaWxlIG5hbWV9DQotcG9zdF9wb3N0Y3RzX2hvbGRfdGNsXnBsdWctaW5ec3RyaW5nXlVOREVGSU5FRF57dmFsaWQgZmlsZSBuYW1lfQ0KLXByZV9wcmVjdHNfdGNsXnBsdWctaW5ec3RyaW5nXlVOREVGSU5FRF57dmFsaWQgZmlsZSBuYW1lfQ0KLXBvc3RfcHJlY3RzX3RjbF5wbHVnLWluXnN0cmluZ15VTkRFRklORURee3ZhbGlkIGZpbGUgbmFtZX0NCi1wcmVfcm91dGVfdGNsXnBsdWctaW5ec3RyaW5nXlVOREVGSU5FRF57dmFsaWQgZmlsZSBuYW1lfQ0KLXBvc3Rfcm91dGVfdGNsXnBsdWctaW5ec3RyaW5nXlVOREVGSU5FRF57dmFsaWQgZmlsZSBuYW1lfQ0KLXByZV9wb3N0cm91dGVfdGNsXnBsdWctaW5ec3RyaW5nXlVOREVGSU5FRF57dmFsaWQgZmlsZSBuYW1lfQ0KLXBvc3RfcG9zdHJvdXRlX3RjbF5wbHVnLWluXnN0cmluZ15VTkRFRklORURee3ZhbGlkIGZpbGUgbmFtZX0NCi1wcmVfcG9zdHJvdXRlX2hvbGRfdGNsXnBsdWctaW5ec3RyaW5nXlVOREVGSU5FRF57dmFsaWQgZmlsZSBuYW1lfQ0KLXBvc3RfcG9zdHJvdXRlX2hvbGRfdGNsXnBsdWctaW5ec3RyaW5nXlVOREVGSU5FRF57dmFsaWQgZmlsZSBuYW1lfQ0KLXByZV9wb3N0cm91dGVfc2lfaG9sZF90Y2xecGx1Zy1pbl5zdHJpbmdeVU5ERUZJTkVEXnt2YWxpZCBmaWxlIG5hbWV9DQotcG9zdF9wb3N0cm91dGVfc2lfaG9sZF90Y2xecGx1Zy1pbl5zdHJpbmdeVU5ERUZJTkVEXnt2YWxpZCBmaWxlIG5hbWV9DQotcHJlX3Bvc3Ryb3V0ZV9zaV90Y2xecGx1Zy1pbl5zdHJpbmdeVU5ERUZJTkVEXnt2YWxpZCBmaWxlIG5hbWV9DQotcG9zdF9wb3N0cm91dGVfc2lfdGNsXnBsdWctaW5ec3RyaW5nXlVOREVGSU5FRF57dmFsaWQgZmlsZSBuYW1lfQ0KLXByZV9zaWdub2ZmX3RjbF5wbHVnLWluXnN0cmluZ15VTkRFRklORURee3ZhbGlkIGZpbGUgbmFtZX0NCi1wb3N0X3NpZ25vZmZfdGNsXnBsdWctaW5ec3RyaW5nXlVOREVGSU5FRF57dmFsaWQgZmlsZSBuYW1lfQ0KLXByZV9hc3NlbWJsZV90Y2xecGx1Zy1pbl5zdHJpbmdeVU5ERUZJTkVEXnt2YWxpZCBmaWxlIG5hbWV9DQotcG9zdF9hc3NlbWJsZV90Y2xecGx1Zy1pbl5zdHJpbmdeVU5ERUZJTkVEXnt2YWxpZCBmaWxlIG5hbWV9DQotYWJvcnReZmxvd15ib29sZWFuXkZBTFNFXntUUlVFIHwgRkFMU0V9DQotbWFpbCx0b15mbG93Xmxpc3ReVU5ERUZJTkVEXntlbWFpbCBhZGRyZXNzZXN9DQotbWFpbCxzdGVwc15mbG93Xmxpc3ReVU5ERUZJTkVEXntzdGVwc30NCi0jZW5hYmxlX3BhY15hc3NlbWJseV5ib29sZWFuXkZBTFNFXntUUlVFIHwgRkFMU0V9DQotI3BhcnRpdGlvbl9saXN0XmRlc2lnbl5saXN0XlVOREVGSU5FRF57ZGVzaWduIHBhcnRpdGlvbnN9DQotIzxwYXJ0aXRpb24+LHBhY19tb2RlXmFzc2VtYmx5XmVudW1ecmVhZF9vbmx5XntyZWFkX29ubHkgfCBpbnRlZmFjZSB8IGFsbCB8IGlsbX0NCmRpZmYgLS1naXQgYS9mbG93L3Buci9FWEFNUExFUy9JTk5PVlVTL0RFU0lHTi9TQ1JJUFRTL0VUQy9jb21tb25fZGVmYXVsdHMudGNsIGIvZmxvdy9wbnIvRVhBTVBMRVMvSU5OT1ZVUy9ERVNJR04vU0NSSVBUUy9FVEMvY29tbW9uX2RlZmF1bHRzLnRjbApkZWxldGVkIGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggNDZjNDQ1Yi4uMDAwMDAwMAotLS0gYS9mbG93L3Buci9FWEFNUExFUy9JTk5PVlVTL0RFU0lHTi9TQ1JJUFRTL0VUQy9jb21tb25fZGVmYXVsdHMudGNsCisrKyAvZGV2L251bGwKQEAgLTEsMTIgKzAsMCBAQAotICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgIyBEZWZpbmUgb3B0aW9uIGRlZmF1bHRzIGFuZCBpbml0aWFsaXplIHVuZGVmaW5lZCB2YXJpYWJsZXMKLSAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLQotc2V0IGZsb3dfZGVmYXVsdHMocnVuZGlyKSAuCi1zZXQgZmxvd19kZWZhdWx0cyhzY3JpcHRfZGlyKSBGRgotc2V0IGZsb3dfZGVmYXVsdHMocGx1Z19kaXIpIFBMVUcKLXNldCBmbG93X2RlZmF1bHRzKHJwdF9kaXIpIFJQVAotc2V0IGZsb3dfZGVmYXVsdHMoZGJzX2RpcikgREJTCi1zZXQgZmxvd19kZWZhdWx0cyhsb2dfZGlyKSBMT0cKLXNldCBmbG93X2RlZmF1bHRzKGh0bWxfZGlyKSBIVE1MCi1zZXQgZmxvd19kZWZhdWx0cyh2cGF0aCkgbWFrZQpkaWZmIC0tZ2l0IGEvZmxvdy9wbnIvRVhBTVBMRVMvSU5OT1ZVUy9ERVNJR04vU0NSSVBUUy9FVEMvc3RhdHVzLmRhdCBiL2Zsb3cvcG5yL0VYQU1QTEVTL0lOTk9WVVMvREVTSUdOL1NDUklQVFMvRVRDL3N0YXR1cy5kYXQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDhkZmExZDguLjAwMDAwMDAKLS0tIGEvZmxvdy9wbnIvRVhBTVBMRVMvSU5OT1ZVUy9ERVNJR04vU0NSSVBUUy9FVEMvc3RhdHVzLmRhdAorKysgL2Rldi9udWxsCkBAIC0xLDEzICswLDAgQEAKLQotCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSMgSG9zdCBJRDogJGluZm8oaG9zdC5uYW1lKQotIyBPUzogICAgICAkaW5mbyhob3N0LmRpc3RyaWJ1dGlvbikgJGluZm8oaG9zdC5vcykgJGluZm8oaG9zdC5vc3ZlcikgJGluZm8oaG9zdC5tYWNoaW5lKQotIyBDUFU6ICAgICBbZXhwciAkaW5mbyhjcHUudG90YWwpIC8gJGluZm8oY3B1LmNwdWNvcmVzKV0gLS0gJGluZm8oY3B1Lm1vZGVsbmFtZSkgQCAkaW5mbyhjcHUuY3B1TUh6KSBNSHoKLSMgTUVNOiAgICAgW3NpemUgJGluZm8obWVtLnRvdGFsKV0KLSMgU1dBUDogICAgW3NpemUgJGluZm8obWVtLnN3YXAudG90YWwpXQotIyBUSU1FOiAgICBbY2xvY2sgZm9ybWF0IFtjbG9jayBzZWNvbmRzXSAtZm9ybWF0ICIlSDolTTolUyAlWiJdCi0jIFVQVElNRTogICRpbmZvKHVwdGltZS5tb24pIG1vbnRoW3Npbmd1bGFyICRpbmZvKHVwdGltZS5tb24pXSwgJGluZm8odXB0aW1lLndrcykgd2Vla1tzaW5ndWxhciAkaW5mbyh1cHRpbWUud2tzKV0sICRpbmZvKHVwdGltZS5kYXkpIGRheVtzaW5ndWxhciAkaW5mbyh1cHRpbWUuZGF5KV0sICRpbmZvKHVwdGltZS5ocnMpIGhvdXJbc2luZ3VsYXIgJGluZm8odXB0aW1lLmhycyldLCAkaW5mbyh1cHRpbWUubWluKSBtaW51dGVbc2luZ3VsYXIgJGluZm8odXB0aW1lLm1pbildLCBhbmQgJGluZm8odXB0aW1lLnNlYykgc2Vjb25kW3Npbmd1bGFyICRpbmZvKHVwdGltZS5zZWMpXQotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0KLQpkaWZmIC0tZ2l0IGEvZmxvdy9wbnIvRVhBTVBMRVMvSU5OT1ZVUy9ERVNJR04vU0NSSVBUUy9FVEMvdXRpbHMudGNsIGIvZmxvdy9wbnIvRVhBTVBMRVMvSU5OT1ZVUy9ERVNJR04vU0NSSVBUUy9FVEMvdXRpbHMudGNsCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDc1NQppbmRleCBlMTE1MjYwLi4wMDAwMDAwCi0tLSBhL2Zsb3cvcG5yL0VYQU1QTEVTL0lOTk9WVVMvREVTSUdOL1NDUklQVFMvRVRDL3V0aWxzLnRjbAorKysgL2Rldi9udWxsCkBAIC0xLDUwMzUgKzAsMCBAQAotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotIyAgICAgICAgICAgICAgICAgICAgICAgQ0FERU5DRSBDT1BZUklHSFQgTk9USUNFCi0jICAgICAgICAgqSAyMDA4LTIwMTMgQ2FkZW5jZSBEZXNpZ24gU3lzdGVtcywgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIwotIyBUaGlzIEZvdW5kYXRpb24gRmxvdyBpcyBwcm92aWRlZCBhcyBhbiBleGFtcGxlIG9mIGhvdyB0byBwZXJmb3JtIHNwZWNpYWxpemVkCi0jIHRhc2tzLgotIwotIyBUaGlzIHdvcmsgbWF5IG5vdCBiZSBjb3BpZWQsIHJlLXB1Ymxpc2hlZCwgdXBsb2FkZWQsIG9yIGRpc3RyaWJ1dGVkIGluIGFueSB3YXksCi0jIGluIGFueSBtZWRpdW0sIHdoZXRoZXIgaW4gd2hvbGUgb3IgaW4gcGFydCwgd2l0aG91dCBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24KLSMgZnJvbSBDYWRlbmNlLiBOb3R3aXRoc3RhbmRpbmcgYW55IHJlc3RyaWN0aW9ucyBoZXJlaW4sIHN1YmplY3QgdG8gY29tcGxpYW5jZQotIyB3aXRoIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB0aGUgQ2FkZW5jZSBzb2Z0d2FyZSBsaWNlbnNlIGFncmVlbWVudCB1bmRlcgotIyB3aGljaCB0aGlzIG1hdGVyaWFsIHdhcyBwcm92aWRlZCwgdGhpcyBtYXRlcmlhbCBtYXkgYmUgY29waWVkIGFuZCBpbnRlcm5hbGx5Ci0jIGRpc3RyaWJ1dGVkIHNvbGVseSBmb3IgaW50ZXJuYWwgcHVycG9zZXMgZm9yIHVzZSB3aXRoIENhZGVuY2UgdG9vbHMuCi0jCi0jIFRoaXMgd29yayBpcyBDYWRlbmNlIGludGVsbGVjdHVhbCBwcm9wZXJ0eSBhbmQgbWF5IHVuZGVyIG5vIGNpcmN1bXN0YW5jZXMgYmUKLSMgZ2l2ZW4gdG8gdGhpcmQgcGFydGllcywgbmVpdGhlciBpbiBvcmlnaW5hbCBub3IgaW4gbW9kaWZpZWQgdmVyc2lvbnMsIHdpdGhvdXQKLSMgZXhwbGljaXQgd3JpdHRlbiBwZXJtaXNzaW9uIGZyb20gQ2FkZW5jZS4gVGhlIGluZm9ybWF0aW9uIGNvbnRhaW5lZCBoZXJlaW4gaXMKLSMgdGhlIHByb3ByaWV0YXJ5IGFuZCBjb25maWRlbnRpYWwgaW5mb3JtYXRpb24gb2YgQ2FkZW5jZSBvciBpdHMgbGljZW5zb3JzLCBhbmQKLSMgaXMgc3VwcGxpZWQgc3ViamVjdCB0bywgYW5kIG1heSBiZSB1c2VkIG9ubHkgYnkgQ2FkZW5jZSdzIGN1cnJlbnQgY3VzdG9tZXJzCi0jIGluIGFjY29yZGFuY2Ugd2l0aCwgYSBwcmV2aW91c2x5IGV4ZWN1dGVkIGxpY2Vuc2UgYWdyZWVtZW50IGJldHdlZW4gQ2FkZW5jZQotIyBhbmQgaXRzIGN1c3RvbWVyLgotIwotIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIyBUSElTIE1BVEVSSUFMIElTIFBST1ZJREVEIEJZIENBREVOQ0UgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRAotIyBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRgotIyBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELgotIyBJTiBOTyBFVkVOVCBTSEFMTCBDQURFTkNFIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwKLSMgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwKLSMgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SCi0jIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgIE1BVEVSSUFMLCBFVkVOIElGCi0jIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCi1wYWNrYWdlIHByb3ZpZGUgZm91bmRhdGlvbl9mbG93IDEuMAotCi1uYW1lc3BhY2UgZXZhbCBGRk1NOjogewotCi0gICBzZXQgdmFsaWRNb2RlcyBbbGlzdCAiZmxhdCIgImhpZXIiICJ0b3BfZG93biIgImJvdHRvbV91cCIgInVzZXIiXQotCi0gICBzZXQgbWlzc2luZ0ZpbGVzICI8RkY+IEVSUk9SOiBDb3VsZCBub3QgZmluZCBGb3VuZGF0aW9uIEZsb3cgc2NyaXB0IGZpbGVzIGluIGRpcmVjdG9yeSBcIiVzXCIiCi0KLSAgIHNldCBtaXNzaW5nU2V0dXBGaWxlICI8RkY+IEVSUk9SOiBDb3VsZCBub3QgZmluZCBzZXR1cC50Y2wgaW4gZGlyZWN0b3J5IFwiJXNcIiIKLQotICAgc2V0IG1pc3NpbmdSQyAiPEZGPiBFUlJPUjogQ291bGQgbm90IGZpbmQgJ3JjJyBleGVjdXRhYmxlIgotCi0gICBzZXQgbm9Nb2RlICI8RkY+IEVSUk9SOiBcIi1tXCIgb3B0aW9uIHNwZWNpZmllZCB3aXRob3V0IGEgcnVudGltZSBtb2RlIgotCi0gICBzZXQgbm9GbGF0ICI8RkY+IEVSUk9SOiBcIi1mXCIgb3B0aW9uIHNwZWNpZmllZCB3aXRob3V0IGEgdmFsaWQgb3B0aW9uIgotCi0gICBzZXQgbm9WZXJzaW9uICI8RkY+IEVSUk9SOiBcIi12XCIgb3B0aW9uIHNwZWNpZmllZCB3aXRob3V0IGEgdmFsaWQgb3B0aW9uIgotCi0gICBzZXQgbm9QYXRoICI8RkY+IEVSUk9SOiBcIi1kXCIgb3B0aW9uIHNwZWNpZmllZCB3aXRob3V0IGEgZGlyZWN0b3J5IHBhdGgiCi0KLSAgIHNldCBub1N0eWxlICI8RkY+IEVSUk9SOiBcIi15XCIgb3B0aW9uIHNwZWNpZmllZCB3aXRob3V0IGEgc3R5bGUgb3B0aW9uIFxbZGF0ZXxpbmNyZW1lbnRcXSIKLQotICAgc2V0IG5vUnVuZGlyICI8RkY+IEVSUk9SOiBcIi11XCIgb3B0aW9uIHNwZWNpZmllZCB3aXRob3V0IGEgZGlyZWN0b3J5IHBhdGgiCi0KLSAgIHNldCBub1NldHVwUGF0aCAiPEZGPiBFUlJPUjogXCItc1wiIG9wdGlvbiBzcGVjaWZpZWQgd2l0aG91dCBhIGRpcmVjdG9yeSBwYXRoIgotCi0gICBzZXQgbm9BcHBsZXRQYXRoICI8RkY+IEVSUk9SOiBcIi1hXCIgb3B0aW9uIHNwZWNpZmllZCB3aXRob3V0IGEgZGlyZWN0b3J5IHBhdGgiCi0KLSAgIHNldCBub3N5bnRoX2Zsb3cgIjxGRj4gV0FSTklORzogXCItclwiIG9wdGlvbiBzcGVjaWZpZWQgd2l0aG91dCBhIHN5bnRoZXNpcyBmbG93IgotCi0gICBzZXQgbm9TdWNoUGF0aCAiPEZGPiBFUlJPUjogRGlyZWN0b3J5IHBhdGggXCIlc1wiIG5vdCBmb3VuZC4iCi0KLSAgIHNldCB1bmtub3duTW9kZSAiPEZGPiBFUlJPUjogVW5rbm93biBydW50aW1lIG1vZGUgc3BlY2lmaWVkIFwiJXNcIiAiCi0KLSAgIHNldCB1bmtub3duT3B0aW9uICI8RkY+IEVSUk9SOiBVbnJlY29nbml6ZWQgb3B0aW9uIFwiJXNcIiAiCi0KLSAgIAotICAgc2V0IHVzYWdlICIKLVVzYWdlOiB0Y2xzaCA8cGF0aF90bz4vU0NSSVBUUy9nZW5fZmxvdy50Y2wgPG9wdGlvbnM+IHN0ZXAgP3N0ZXA/IC4uLiA/c3RlcD8KLSAgIFRoZSBcInN0ZXBcIiBpcyB0aGUgcG9ydGlvbiBvZiB0aGUgZmxvdyB0aGF0IHlvdSB3YW50IHRvIGV4ZWN1dGUuICBUbyBmaW5kCi0gICB0aGUgdmFsaWQgbGlzdCBvZiBzdGVwcyBmb3IgYSBnaXZlbiBtb2RlLCBzaW1wbHkgb21pdCB0aGUgc3RlcCBmcm9tIHRoZQotICAgY29tbWFuZC1saW5lIGludm9jYXRpb24uICBZb3UgY2FuIGFsc28gc3BlY2lmeSBzdGVwIGFzIGVpdGhlciBvZiB0aGUgdHdvCi0gICBmb3JtczoKLSAgICAgICBhLWIgOiBFeGVjdXRlIGFsbCBzdGVwcyBiZXR3ZWVuIHN0ZXAgYSBhbmQgYiwgaW5jbHVzaXZlCi0gICAgICAgYS0gIDogRXhlY3V0ZSBhbGwgc3RlcHMgaW4gdGhlIGZsb3cgZnJvbSBzdGVwIGEsIGluY2x1c2l2ZQotICAgT2J2aW91c2x5LCBcImFcIiBhbmQgXCJiXCIgc2hvdWxkIGJlIHZhbGlkIHN0ZXBzIGZvciB0aGUgc3BlY2lmaWMgbW9kZS4KLQotICAgT3B0aW9ucyBtYXkgYmUgb25lIG9yIG1vcmUgb2YgdGhlIGZvbGxvd2luZzoKLSAgICAgLWggfCAtLWhlbHAgICAgIDogUHJpbnQgdGhpcyBtZXNzYWdlCi0gICAgIC1IIHwgLS1IZWxwICAgICA6IFByaW50IHN0ZXAgaGVscAotICAgICAtbSB8IC0tbW9kZSAgICAgOiBTZXQgdGhlIHNjcmlwdCBtb2RlLiAgVGhlIGRlZmF1bHQgaXMgXCJmbGF0XCIuCi0gICAgICAgICAgICAgICAgICAgICAgIFZhbGlkIG1vZGVzIGFyZTogJHZhbGlkTW9kZXMKLSAgICAgLWQgfCAtLWRpciAgICAgIDogT3V0cHV0IGRpcmVjdG9yeSBmb3IgZ2VuZXJhdGVkIHNjcmlwdHMuCi0gICAgIC1mIHwgLS1mbGF0ICAgICA6IExldmVsIG9mIHVucm9sbGluZyAuLi4gZnVsbCwgcGFydGlhbCwgbm9uZQotICAgICAtbiB8IC0tbm9tYWtlICAgOiBTa2lwIE1ha2VmaWxlIGdlbmVyYXRpb24KLSAgICAgLXkgfCAtLXN0eWxlICAgIDogUnVuZGlyIG5hbWluZyBzdHlsZSBcW2RhdGV8aW5jcmVtZW50XF0KLSAgICAgLXIgfCAtLXJ0bCAgICAgIDogRW5hYmxlIFJUTCBTY3JpcHQgR2VuZXJhdGlvbgotICAgICAtTiB8IC0tTm92dXMgIDogRW5hYmxlIG5vdnVzX3VpIGZsb3draXQgZ2VuZXJhdGlvbgotICAgICAtcyB8IC0tc2V0dXAgICAgOiBQcm92aWRlIHRoZSBkaXJlY3RvcnkgY29udGFpbmluZyB0aGUgc2V0dXAudGNsIHNldHVwIGZpbGUKLSAgICAgLXUgfCAtLXJ1bmRpciAgIDogRGlyZWN0b3J5IHRvIGV4ZWN1dGUgdGhlIGZsb3cKLSAgICAgICAgICAgICAgICAgICAgICAgcmVxdXJpZWQgdG8gcnVuIHRoZSBGb3VuZGF0aW9uIEZsb3cuICAKLSAgICAgLXYgfCAtLXZlcnNpb24gIDogVGFyZ2V0IHZlcnNpb24gKDE3LjEuMCwgMTYuMi4wLCAxNi4xLjAsIDE1LjIuMCwgMTUuMS4wLCAuLi4pCi0gICAgIC1WIHwgLS1WZXJib3NlICA6IFZlcmJvc2UgbW9kZQotCi0gICAgRXhhbXBsZXM6Ci0gICAgLS0tLS0tLS0tCi0KLSAgICB0Y2xzaCBTQ1JJUFRTL2dlbl9pbm5vdnVzX2Zsb3cudGNsIGFsbAotCi0gICAgdGNsc2ggU0NSSVBUUy9nZW5faW5ub3Z1c19mbG93LnRjbCAtbSB0b3BfZG93biBhbGwKLQotICAgIHRjbHNoIFNDUklQVFMvZ2VuX2lubm92dXNfZmxvdy50Y2wgLWQgcHJlY3RzX3NjcmlwdHMgaW5pdC1wcmVjdHMKLQotICAgIHRjbHNoIFNDUklQVFMvZ2VuX2lubm92dXNfZmxvdy50Y2wgLXUgd29yay9ydW4gLXkgZGF0ZSAtciBkZWZhdWx0X3N5bnRoZXNpc19mbG93XzNzdGVwIGFsbAotCi0iCi19Ci0KLW5hbWVzcGFjZSBldmFsIEZGOjogewotICAgdmFyaWFibGUgdmFsaWRfdmVyc2lvbnMgewotICAgICAgMTcuMS4wCi0gICAgICAxNi4yLjAgMTYuMS4wCi0gICAgICAxNS4yLjAgMTUuMS4wCi0gICAgICAxNC4yLjAgMTQuMS4wIAotICAgICAgMTMuMi4wIDEzLjEuMAotICAgICAgMTIuMS4wCi0gICAgICAxMS4xLjMgMTEuMS4yIDExLjEuMSAxMS4xLjAKLSAgICAgIDEwLjEuMyAxMC4xLjIgMTAuMS4xIDEwLjEuMAotICAgICAgOS4xLjMgOS4xLjIKLSAgIH0KLQotICAgcHJvYyB3cmFwX2NvbW1hbmQge3RhZyBjb21tYW5kfSB7Ci0KLSAgICAgIGdsb2JhbCB2YXJzCi0gICAgICBnbG9iYWwgZW52Ci0gICAgICBnbG9iYWwgZXJyb3JzCi0KLSMgICAgICBpZiB7JHZhcnMoZGVidWcpfSB7Ci0jICAgICAgICAgcHV0cyAiPEZGPiBXcmFwcGluZyBjb21tYW5kOiAkY29tbWFuZCBpbiBzdGVwICR2YXJzKHN0ZXApIC4uLiIKLSMgICAgICB9Ci0KLSAgICAgIGlmIHshW2luZm8gZXhpc3RzIHZhcnModGFncyx2ZXJib3NlKV19IHsKLSAgICAgICAgIHNldCB2ZXJib3NlIEZBTFNFCi0gICAgICB9ICBlbHNlIHsKLSAgICAgICAgIHNldCB2ZXJib3NlICR2YXJzKHRhZ3MsdmVyYm9zZSkKLSAgICAgIH0KLQotICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycyh0YWdzLHZlcmJvc2l0eV9sZXZlbCldfSB7Ci0gICAgICAgICBzZXQgdmVyYm9zaXR5X2xldmVsIExPVwotICAgICAgfSBlbHNlIHsKLSAgICAgICAgIHN3aXRjaCBbc3RyaW5nIHRvdXBwZXIgJHZhcnModGFncyx2ZXJib3NpdHlfbGV2ZWwpXSB7IAotICAgICAgICAgICAgIkxPVyIgewotICAgICAgICAgICAgICAgc2V0IHZlcmJvc2l0eV9sZXZlbCBMT1cKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgICJISUdIIiB7Ci0gICAgICAgICAgICAgICBzZXQgdmVyYm9zaXR5X2xldmVsIEhJR0gKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGRlZmF1bHQgewotICAgICAgICAgICAgICAgc2V0IHZlcmJvc2l0eV9sZXZlbCBMT1cKLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0KLSAgICAgIH0KLQotICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCR0YWcscHJlX3RjbCldIHx8IFwKLSAgICAgICAgICBbaW5mbyBleGlzdHMgdmFycygkdGFnLHBvc3RfdGNsKV0gfHwgXAotICAgICAgICAgIFtpbmZvIGV4aXN0cyB2YXJzKCR0YWcsc2tpcCldIHx8IFwKLSAgICAgICAgICBbaW5mbyBleGlzdHMgdmFycygkdGFnLHJlcGxhY2VfdGNsKV19IHsKLSAgICAgICAgIGlmIHshW2luZm8gZXhpc3RzIHZhcnModGFnZ2VkKV19IHsKLSAgICAgICAgICAgIHNldCB2YXJzKHRhZ2dlZCkgW2xpc3RdCi0gICAgICAgICB9Ci0gICAgICB9Ci0KLSAgICAgIGlmIHskdmVyYm9zaXR5X2xldmVsID09ICJISUdIIn0gewotICAgICAgICAgc2V0IGNvbW1hbmRzICIjIDxCRUdJTiBUQUc+ICR0YWdcbiIKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgICBzZXQgY29tbWFuZHMgIiIKLSAgICAgIH0KLSMgICAgICBzZXQgY29tbWFuZHMgIiIKLSAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkdGFnLHNraXApXSAmJiAkdmFycygkdGFnLHNraXApfSB7Ci0gICAgICAgICBsYXBwZW5kIHZhcnModGFnZ2VkKSAkdGFnLHNraXAKLSAgICAgICAgIHJlZ3N1YiAgLWFsbCAiXFxcbiIgIlxuXG4kY29tbWFuZFxuIiAiXG4jICIgc2tpcAotIyAgICAgICAgIGFwcGVuZCBza2lwICJcbiIKLSAgICAgICAgIGlmIHskdmVyYm9zZX0gewotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJcbiMgPGJlZ2luIHRhZyAkdGFnLHNraXA+IgotICAgICAgICAgfSAKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAkc2tpcAotICAgICAgICAgaWYgeyR2ZXJib3NlfSB7Ci0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIjxlbmQgdGFnICR0YWcsc2tpcD5cblxuIgotICAgICAgICAgfQotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJcbiIKLSAgICAgICAgIGlmIHskdmVyYm9zZX0gewotICAgICAgICAgICAgcmV0dXJuICRjb21tYW5kcwotICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHJldHVybgotICAgICAgICAgfQotICAgICAgfQotCi0gICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJHRhZyxwcmVfdGNsKV19IHsKLSAgICAgICAgIGlmIHtbZmlsZSBleGlzdHMgJHZhcnMoJHRhZyxwcmVfdGNsKV19IHsKLSAgICAgICAgICAgIGxhcHBlbmQgdmFycyh0YWdnZWQpICR0YWcscHJlX3RjbAotICAgICAgICAgICAgaWYgeyR2YXJzKGZsYXQpID09ICJmdWxsIn0gewotICAgICAgICAgICAgICAgc2V0IGlwIFtvcGVuICR2YXJzKCR0YWcscHJlX3RjbCkgcl0KLSAgICAgICAgICAgICAgIGlmIHskdmVyYm9zZX0gewotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJcbiMgPGJlZ2luIHRhZyAkdGFnLHByZV90Y2w+XG4iCi0gICAgICAgICAgICAgICB9IAotICAgICAgICAgICAgICAgd2hpbGUge1tnZXRzICRpcCBsaW5lXT49MH0gewotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIkbGluZVxuIgotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgY2xvc2UgJGlwCi0gICAgICAgICAgICAgICBpZiB7JHZlcmJvc2V9IHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyA8ZW5kIHRhZyAkdGFnLHByZV90Y2w+XG5cbiIKLSAgICAgICAgICAgICAgIH0gCi0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJzb3VyY2UgJHZhcnMoJHRhZyxwcmVfdGNsKVxuIgotICAgICAgICAgICAgfQotICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHB1dHMgIjxGRj4gRVJST1I6ICR0YWcgcHJlX3RjbCBmaWxlICgkdmFycygkdGFnLHByZV90Y2wpKSBub3QgZm91bmQiCi0gICAgICAgICAgICBzZXQgZXJyb3JzKCR2YXJzKGVycm9yX2NvdW50KSkgIiR0YWcgcHJlX3RjbCBmaWxlICgkdmFycygkdGFnLHByZV90Y2wpKSBub3QgZm91bmQiCi0gICAgICAgICAgICBpbmNyIHZhcnMoZXJyb3JfY291bnQpCi0gICAgICAgICAgICBpZiB7JHZlcmJvc2V9IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyA8ZW5kIHRhZyAkdGFnLHByZV90Y2w+XG5cbiIKLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0KLSAgICAgIH0KLSAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkdGFnLHJlcGxhY2VfdGNsKV19IHsKLSAgICAgICAgIGlmIHtbZmlsZSBleGlzdHMgJHZhcnMoJHRhZyxyZXBsYWNlX3RjbCldfSB7Ci0gICAgICAgICAgICBsYXBwZW5kIHZhcnModGFnZ2VkKSAkdGFnLHJlcGxhY2VfdGNsCi0gICAgICAgICAgICBzZXQgaXAgW29wZW4gJHZhcnMoJHRhZyxyZXBsYWNlX3RjbCkgcl0KLSAgICAgICAgICAgIGlmIHskdmVyYm9zZX0gewotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJcbiMgPGJlZ2luIHRhZyAkdGFnLHJlcGxhY2VfdGNsPlxuIgotICAgICAgICAgICAgfSAKLSAgICAgICAgICAgIHdoaWxlIHtbZ2V0cyAkaXAgbGluZV0+PTB9IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiJGxpbmVcbiIKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGNsb3NlICRpcAotICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHB1dHMgIjxGRj4gRVJST1I6ICR0YWcgcmVwbGFjZV90Y2wgZmlsZSAoJHZhcnMoJHRhZyxyZXBsYWNlX3RjbCkpIG5vdCBmb3VuZCIKLSAgICAgICAgICAgIHNldCBlcnJvcnMoJHZhcnMoZXJyb3JfY291bnQpKSAiJHRhZyByZXBsYWNlX3RjbCBmaWxlICgkdmFycygkdGFnLHJlcGxhY2VfdGNsKSkgbm90IGZvdW5kIgotICAgICAgICAgICAgaW5jciB2YXJzKGVycm9yX2NvdW50KQotICAgICAgICAgfQotICAgICAgICAgaWYgeyR2ZXJib3NlfSB7Ci0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgPGVuZCB0YWcgJHRhZyxyZXBsYWNlX3RjbD5cblxuIgotICAgICAgICAgfQotICAgICAgfSBlbHNlIHsKLSAgICAgICAgICMgSW5zZXJ0IG9yaWdpbmFsIGNvbW1hbmQgaGVyZQotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICRjb21tYW5kCi0gICAgICB9Ci0KLSAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkdGFnLHBvc3RfdGNsKV19IHsKLSAgICAgICAgIGlmIHtbZmlsZSBleGlzdHMgJHZhcnMoJHRhZyxwb3N0X3RjbCldfSB7Ci0gICAgICAgICAgICBsYXBwZW5kIHZhcnModGFnZ2VkKSAkdGFnLHBvc3RfdGNsCi0gICAgICAgICAgICBpZiB7JHZlcmJvc2V9IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiXG4jIDxiZWdpbiB0YWcgJHRhZyxwb3N0X3RjbD5cbiIKLSAgICAgICAgICAgIH0gCi0gICAgICAgICAgICBpZiB7JHZhcnMoZmxhdCkgPT0gImZ1bGwifSB7Ci0gICAgICAgICAgICAgICBzZXQgaXAgW29wZW4gJHZhcnMoJHRhZyxwb3N0X3RjbCkgcl0KLSAgICAgICAgICAgICAgIHdoaWxlIHtbZ2V0cyAkaXAgbGluZV0+PTB9IHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiJGxpbmVcbiIKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIGNsb3NlICRpcAotIyAgICAgICAgICAgICAgIGlmIHskdmVyYm9zZX0gewotIyAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIzw8PFxuIgotIyAgICAgICAgICAgICAgIH0gCi0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJzb3VyY2UgJHZhcnMoJHRhZyxwb3N0X3RjbClcbiIKLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBwdXRzICI8RkY+IEVSUk9SOiAkdGFnIHBvc3RfdGNsIGZpbGUgKCR2YXJzKCR0YWcscG9zdF90Y2wpKSBub3QgZm91bmQiCi0gICAgICAgICAgICBzZXQgZXJyb3JzKCR2YXJzKGVycm9yX2NvdW50KSkgIiR0YWcgcG9zdF90Y2wgZmlsZSAoJHZhcnMoJHRhZyxwb3N0X3RjbCkpIG5vdCBmb3VuZCIKLSAgICAgICAgICAgIGluY3IgdmFycyhlcnJvcl9jb3VudCkKLSAgICAgICAgIH0KLSAgICAgICAgIGlmIHskdmVyYm9zZX0gewotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjIDxlbmQgdGFnICR0YWcscG9zdF90Y2w+XG5cbiIKLSAgICAgICAgIH0KLSAgICAgIH0KLSAgICAgIGlmIHskdmVyYm9zaXR5X2xldmVsID09ICJISUdIIn0gewotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJcbiMgPEVORCBUQUc+ICR0YWdcbiIKLSAgICAgIH0KLQotICAgICAgcmV0dXJuICRjb21tYW5kcwotICAgfQotCi0gICBwcm9jIGdldF9saW5lX21hdGNoIHtwYXR0ZXJuIGZpbGV9IHsKLQotICAgICAgc2V0IGlwIFtvcGVuICRmaWxlIHJdCi0KLSAgICAgIHdoaWxlIHtbZ2V0cyAkaXAgbGluZV0+PTB9IHsKLSAgICAgICAgIGlmIHtbcmVnZXhwICIkcGF0dGVybiIgJGxpbmVdPjB9IHsKLSAgICAgICAgICAgc2V0IG1hdGNoICRsaW5lCi0gICAgICAgICB9Ci0gICAgICB9Ci0KLSAgICAgcmV0dXJuICRtYXRjaAotICAgfQotCi0gICBwcm9jIHNpbmd1bGFyIHt2YWwge2ZhbHNlICJzIn0ge3RydWUgIiJ9fSB7Ci0gICAgIGlmIHskdmFsPT0xfSB7IHJldHVybiAkdHJ1ZSB9IGVsc2UgeyByZXR1cm4gJGZhbHNlIH0KLSAgIH0KLQotICAgcHJvYyBzaXplIHt2YWwge3N1ZmZpeCAiYnl0ZSJ9fSB7Ci0gICAgIHNldCBsZXZlbCAwCi0gICAgIHNldCBwcmVmaXhlcyBbbGlzdCAiIiBraWxvIG1lZ2EgZ2lnYSB0ZXJhIHBldGFdCi0gICAgIHdoaWxlIHskdmFsPjEwMjR9IHsKLSAgICAgICBzZXQgdmFsIFtleHByICR2YWwvMTAyNC4wXQotICAgICAgIGluY3IgbGV2ZWwKLSAgICAgfQotICAgICBzZXQgdmFsIFtleHByIGludCgkdmFsKzAuNSldCi0gICAgIHJldHVybiAiJHZhbCBbbGluZGV4ICRwcmVmaXhlcyAkbGV2ZWxdJHN1ZmZpeFtzaW5ndWxhciAkdmFsXSIKLSAgIH0KLQotICAgcHJvYyBzeXN0ZW1faW5mbyB7fSB7Ci0KLSAgICAgIGdsb2JhbCB2YXJzCi0KLSAgICAgIHNldCB1bmFtZSBbZXhlYyB1bmFtZV0KLQotICAgICAgaWYge1tsc2VhcmNoICJMaW51eCIgJHVuYW1lXSAhPSAtMX0gewotCi0gICAgICAgICBzZXQgaW5GaWxlICIkdmFycyhzY3JpcHRfcm9vdCkvRVRDL3N0YXR1cy5kYXQiCi0KLSAgICAgICAgIGlmIHshW2ZpbGUgZXhpc3RzICRpbkZpbGVdfSB7Ci0gICAgICAgICAgICAgcmV0dXJuCi0gICAgICAgICB9Ci0KLSAgICAgICAgIHNldCB1cElkIFtvcGVuICIvcHJvYy91cHRpbWUiIHJdCi0gICAgICAgICBzZXQgaW5mbyh1cHRpbWUpIFtsaW5kZXggW3NwbGl0IFtnZXRzICR1cElkXSAuXSAwXQotICAgICAgICAgY2xvc2UgJHVwSWQKLQotICAgICAgICAgZm9yZWFjaCB7dmFyIHZhbH0ge21vbiAyNTkyMDAwIHdrcyA2MDQ4MDAgZGF5IDg2NDAwIGhycyAzNjAwIG1pbiA2MCBzZWMgMX0gewotICAgICAgICAgICBzZXQgaW5mbyh1cHRpbWUuJHt2YXJ9KSBbZXhwciAkaW5mbyh1cHRpbWUpLyR7dmFsfV0KLSAgICAgICAgICAgc2V0IGluZm8odXB0aW1lKSBbZXhwciAkaW5mbyh1cHRpbWUpLSgkaW5mbyh1cHRpbWUuJHt2YXJ9KSoke3ZhbH0pXQotICAgICAgICAgfQotCi0gICAgICAgICBzZXQgaW5mbyhob3N0LmZxZG4pIFtpbmZvIGhvc3RuYW1lXQotICAgICAgICAgc2V0IGluZm8oaG9zdC5uYW1lKSBbbGluZGV4IFtzcGxpdCAkaW5mbyhob3N0LmZxZG4pIC5dIDBdCi0gICAgICAgICBzZXQgaW5mbyhob3N0LmRvbWFpbikgW3N0cmluZyByYW5nZSAkaW5mbyhob3N0LmZxZG4pIFtleHByIFtzdHJpbmcgbGVuZ3RoICRpbmZvKGhvc3QubmFtZSldKzFdIGVuZF0KLSAgICAgICAgIHNldCBpbmZvKGhvc3Qub3MpICQ6OnRjbF9wbGF0Zm9ybShvcykKLSAgICAgICAgIHNldCBpbmZvKGhvc3Qub3N2ZXIpICQ6OnRjbF9wbGF0Zm9ybShvc1ZlcnNpb24pCi0gICAgICAgICBzZXQgaW5mbyhob3N0Lm1hY2hpbmUpICQ6OnRjbF9wbGF0Zm9ybShtYWNoaW5lKQotCi0gICAgICAgICBpZiB7JGluZm8oaG9zdC5vcyk9PSJMaW51eCJ9IHsKLSAgICAgICAgICAgaWYge1tmaWxlIGV4aXN0cyAvZXRjL3NsYWNrd2FyZS12ZXJzaW9uXX0geyBzZXQgaW5mbyhob3N0LmRpc3RyaWJ1dGlvbikgIlNsYWNrd2FyZSIgfQotICAgICAgICAgICBpZiB7W2ZpbGUgZXhpc3RzIC9ldGMvcmVkaGF0LXJlbGVhc2VdfSB7IHNldCBpbmZvKGhvc3QuZGlzdHJpYnV0aW9uKSAiUmVkSGF0IiB9Ci0gICAgICAgICAgIGlmIHtbZmlsZSBleGlzdHMgL2V0Yy9tYW5kcmFrZS1yZWxlYXNlXX0geyBzZXQgaW5mbyhob3N0LmRpc3RyaWJ1dGlvbikgIk1hbmRyYWtlIiB9Ci0gICAgICAgICAgIGlmIHshW2luZm8gZXhpc3RzIGluZm8oaG9zdC5kaXN0cmlidXRpb24pXX0geyBzZXQgaW5mbyhob3N0LmRpc3RyaWJ1dGlvbikgIlVua25vd24iIH0KLSAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgIHJldHVybgotICAgICAgICAgfQotCi0gICAgICAgICBzZXQgY3B1SWQgW29wZW4gIi9wcm9jL2NwdWluZm8iIHJdCi0gICAgICAgICBzZXQgaW5mbyhjcHUudG90YWwpIDAKLSAgICAgICAgIHNldCBpbmZvKGNwdS5jcHVjb3JlcykgMQotICAgICAgICAgd2hpbGUgeyFbZW9mICRjcHVJZF19IHsKLSAgICAgICAgICAgZ2V0cyAkY3B1SWQgbG4KLSAgICAgICAgICAgc2V0IGxuIFtzcGxpdCAkbG4gOl0KLSAgICAgICAgICAgc2V0IGl0ZW0gW3N0cmluZyB0cmltIFtsaW5kZXggJGxuIDBdXQotICAgICAgICAgICBzZXQgdmFsdWUgW3N0cmluZyB0cmltIFtsaW5kZXggJGxuIDFdXQotICAgICAgICAgICBzZXQgaW5mbyhjcHUuW2xpbmRleCAkaXRlbSAwXVtsaW5kZXggJGl0ZW0gMV0pICR2YWx1ZQotICAgICAgICAgICBpZiB7W2xpbmRleCAkaXRlbSAwXSA9PSAicHJvY2Vzc29yIn0ge2luY3IgaW5mbyhjcHUudG90YWwpfQotICAgICAgICAgfQotICAgICAgICAgY2xvc2UgJGNwdUlkCi0KLSAgICAgICAgIHNldCBtZW1JZCBbb3BlbiAiL3Byb2MvbWVtaW5mbyIgcl0KLSAgICAgICAgIHNldCBpbmZvKG1lbS5mcmVlKSAwCi0gICAgICAgICB3aGlsZSB7IVtlb2YgJG1lbUlkXX0gewotICAgICAgICAgICBnZXRzICRtZW1JZCBsbgotICAgICAgICAgICBzZXQgbG4gW3NwbGl0ICRsbiA6XQotICAgICAgICAgICBzZXQgaXRlbSBbc3RyaW5nIHRyaW0gW2xpbmRleCAkbG4gMF1dCi0gICAgICAgICAgIGNhdGNoIHsgc2V0IHZhbHVlIFtleHByIFtzdHJpbmcgdHJpbSBbbGluZGV4IFtsaW5kZXggJGxuIDFdIDBdXSoxMDI0XSB9Ci0gICAgICAgICAgIHN3aXRjaCAtLSAiJGl0ZW0iIHsKLSAgICAgICAgICAgICBNZW1Ub3RhbCB7IHNldCBpbmZvKG1lbS50b3RhbCkgJHZhbHVlIH0KLSAgICAgICAgICAgICBTd2FwVG90YWwgeyBzZXQgaW5mbyhtZW0uc3dhcC50b3RhbCkgJHZhbHVlIH0KLSAgICAgICAgICAgICBTd2FwRnJlZSB7IHNldCBpbmZvKG1lbS5zd2FwLmZyZWUpICR2YWx1ZSB9Ci0gICAgICAgICAgICAgTWVtRnJlZSB7IGluY3IgaW5mbyhtZW0uZnJlZSkgJHZhbHVlIH0KLSAgICAgICAgICAgICBDYWNoZWQgeyBpbmNyIGluZm8obWVtLmZyZWUpICR2YWx1ZSB9Ci0gICAgICAgICAgICAgQnVmZmVycyB7IGluY3IgaW5mbyhtZW0uZnJlZSkgJHZhbHVlIH0KLSAgICAgICAgICAgfQotICAgICAgICAgfQotCi0gICAgICAgICBzZXQgcGFyc2VJZCBbb3BlbiAkaW5GaWxlIHJdCi0gICAgICAgICB3aGlsZSAxIHsKLSAgICAgICAgICAgZ2V0cyAkcGFyc2VJZCBsbgotICAgICAgICAgICBpZiB7W2VvZiAkcGFyc2VJZF19IHsgYnJlYWsgfQotICAgICAgICAgICBjYXRjaCB7IHB1dHMgW3N1YnN0ICRsbl0gfSBlcnIKLSAgICAgICAgIH0KLSAgICAgICAgIGNsb3NlICRwYXJzZUlkCi0gICAgICB9Ci0gICB9Ci0KLSAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICMgVGhpcyByb3V0aW5lIGl0ZXJhdGVzIG92ZXIgdmFyaWFibGVzIHRoYXQgbWFpbnRhaW4gbGlzdHMgb2YgZmlsZXMuICBJZgotICAgIyBhbnkgZWxlbWVudCBvZiB0aGUgbGlzdCBpcyBhIHdpbGRjYXJkLCB0aGF0IGVudHJ5IGlzIHJlcGxhY2VkIHdpdGggdGhlCi0gICAjIFRjbCBjb21tYW5kIHRoYXQgd2lsbCBleHBhbmQgdGhlIG5hbWUgYXQgcnVudGltZQotICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCi0gICBwcm9jIHByb2Nlc3NfZmlsZV9saXN0cyB7fSB7Ci0KLSAgICAgIGdsb2JhbCB2YXJzCi0KLSAgICAgIGlmIHshW2luZm8gZXhpc3RzIHZhcnMoZ2xvYmJlZCldfSB7Ci0gICAgICAgICBzZXQgdmFycyhnbG9iYmVkKSBmYWxzZQotICAgICAgfQotICAgICAgaWYgeyR2YXJzKGdsb2JiZWQpfSB7Ci0gICAgICAgICByZXR1cm4KLSAgICAgIH0KLSAgICAgIHNldCB2YXJzKGdsb2JiZWQpIHRydWUKLQotICAgICAgaWYge1tyZWdleHAgIl4xMSIgJHZhcnModmVyc2lvbildfSB7Ci0gICAgICAgICByZXR1cm4KLSAgICAgIH0KLSAgICAgICMgQkNMOiBSZW1vdmVkIGRlZl9maWxlcyBmcm9tIHRoaXMgbGlzdAotICAgICAgc2V0IHZhcl9pbmRpY2VzIFtsaXN0ICJjdHNfc3BlYyIgImxlZl9maWxlcyIgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ0aW1pbmciICJzaSIgImVjc20iICJjdHNfc2RjIl0KLQotICAgICAgIyBCQ0w6IEFkZCBkZWZfZmlsZXMgdG8gbGlzdCBvbmx5IGlmIGl0IGRvZXNuJ3QgaGF2ZSBbc3Vic3RdIGluIHRoZSBuYW1lIChvdGhlciB3aXNlIHdlIG5lZWQgdG8ga2VlcCBbc3Vic3QuLi4gdW5leHBhbmRlZCkKLSAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhkZWZfZmlsZXMpXSAmJiAhW3JlZ2V4cCB7XFtzdWJzdCBcJHZhcnN9ICR2YXJzKGRlZl9maWxlcyldfSB7bGFwcGVuZCB2YXJfaW5kaWNlcyBkZWZfZmlsZXN9Ci0KLSAgICAgIGZvcmVhY2ggaW5kZXggJHZhcl9pbmRpY2VzIHsKLSAgICAgICAgIHNldCBhbGxfbmFtZXMgW2FycmF5IG5hbWVzIHZhcnMgLWdsb2IgIiokaW5kZXgiXQotICAgICAgICAgZm9yZWFjaCBuYW1lICRhbGxfbmFtZXMgewotICAgICAgICAgICAgc2V0IGV4cGFuZGVkX2ZpbGVzICIiCi0gICAgICAgICAgICAjIEJDTDogQWRkZWQgc3Vic3QgYXJvdW5kIGZpbmFsIHZhcmlhYmxlIHRvIHJlc29sdmUgdmFycyhydW5kaXIpIHJlZmVyZW5jZXMKLSAgICAgICAgICAgIGZvcmVhY2ggZmlsZSBbc3Vic3QgJHZhcnMoJG5hbWUpXSB7Ci0gICAgICAgICAgICAgICBpZiB7KFtzdHJpbmcgZmlyc3QgIioiICRmaWxlXSAhPSAtMSkgfHwKLSAgICAgICAgICAgICAgICAgICAoW3N0cmluZyBmaXJzdCAiPyIgJGZpbGVdICE9IC0xKX0gewotICAgICAgICAgICAgICAgICAgaWYgeyFbY2F0Y2gge3NldCBmaWxlcyBbZ2xvYiAkZmlsZV19XX0gewotICAgICAgICAgICAgICAgICAgICAgbGFwcGVuZCBleHBhbmRlZF9maWxlcyAkZmlsZXMKLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICBsYXBwZW5kIGV4cGFuZGVkX2ZpbGVzICRmaWxlCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBzZXQgdmFycygkbmFtZSkgJGV4cGFuZGVkX2ZpbGVzCi0gICAgICAgICB9Ci0gICAgICB9Ci0gICB9Ci0KLSAgIHByb2MgZ2V0X3JlcXVpcmVkX3Byb2NzIHtmaWxlfSB7Ci0gICAgICAjCi0gICAgICAjIEdpdmVuIGEgbGlzdCBvZiByZXF1aXJlZCBwcm9jZWR1cmVzLCByZXR1cm4gdGhlIGxpbmVzIHRoYXQgcmVwcmVzZW50Ci0gICAgICAjIHRob3NlIHByb2NlZHVyZXMgZnJvbSB0aGUgdXRpbHMudGNsIGZpbGUKLSAgICAgICMKLQotICAgICAgZ2xvYmFsIHZhcnMKLSAgICAgIGdsb2JhbCBlcnJvcnMKLQotICAgICAgIwotICAgICAgIyBSZWFkIHRoZSBmaWxlIGFuZCBnYXRoZXIgYWxsIG9mIHRoZSBjb250ZW50cwotICAgICAgIwotCi0gICAgICBzZXQgYWxsX2xpbmVzICIiCi0gICAgICBzZXQgbGVuZ3RoIDAKLSAgICAgIHNldCBpcCBbb3BlbiAkZmlsZV0KLSAgICAgIHdoaWxlIHtbZ2V0cyAkaXAgbGluZV0+PTB9IHsKLSAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhub3Z1cyldICYmICR2YXJzKG5vdnVzKX0gewotICAgICAgICAgICAgc2V0IHV0aWxzX2xpbmVzKCRsZW5ndGgpIFtyZWdzdWIgIlB1dHMiICRsaW5lICJwdXRzIl0KLSAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBzZXQgdXRpbHNfbGluZXMoJGxlbmd0aCkgJGxpbmUKLSAgICAgICAgIH0KLSAgICAgICAgIGluY3IgbGVuZ3RoCi0gICAgICB9Ci0gICAgICBjbG9zZSAkaXAKLQotICAgICAgIwotICAgICAgIyBJdGVyYXRlIGFjcm9zcyBlYWNoIGxpbmUgYW5kIHB1bGwgb3V0IHJlbGV2YW50IHByb2NlZHVyZXMKLSAgICAgICMKLQotICAgICAgc2V0IGxpbmVzICIiCi0gICAgICBzZXQgaSAwCi0gICAgICB3aGlsZSB7JGkgPCAkbGVuZ3RofSB7Ci0gICAgICAgICBzZXQgbGluZSAkdXRpbHNfbGluZXMoJGkpCi0gICAgICAgICBmb3JlYWNoIHByb2MgJHZhcnMocmVxdWlyZWRfcHJvY3MpIHsKLSAgICAgICAgICAgIGlmIHtbcmVnZXhwICJwcm9jICRwcm9jIiAkbGluZV0gPiAwfSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgbGluZXMgIiAkbGluZVxuIgotICAgICAgICAgICAgICAgaW5jciBpCi0gICAgICAgICAgICAgICB3aGlsZSB7JGkgPCAkbGVuZ3RofSB7Ci0gICAgICAgICAgICAgICAgICBzZXQgbGluZSAkdXRpbHNfbGluZXMoJGkpCi0gICAgICAgICAgICAgICAgICBpZiB7W3JlZ2V4cCAicHJvYyAiICRsaW5lXSA+IDB9IHsKLSAgICAgICAgICAgICAgICAgICAgIGluY3IgaSAtMQotICAgICAgICAgICAgICAgICAgICAgYnJlYWsKLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIGlmIHshW3JlZ2V4cCAiXiMiIFtzdHJpbmcgdHJpbWxlZnQgJGxpbmVdIF0gJiYgKCRpICE9IFtleHByICRsZW5ndGgtMV0pfSB7Ci0gICAgICAgICAgICAgICAgICAgICBhcHBlbmQgbGluZXMgIiRsaW5lXG4iCi0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICBpbmNyIGkKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIGJyZWFrCi0gICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0gICAgICAgICBpbmNyIGkKLSAgICAgIH0KLQotICAgICAgc2V0IGxpbmVzIFtzdHJpbmcgdHJpbXJpZ2h0ICRsaW5lc10KLSAgICAgIHJldHVybiAiJGxpbmVzXG4iCi0gICB9Ci0KLQotICAgcHJvYyBzb3VyY2VfcGx1ZyB7cGx1Z2luIHthYm9ydCAxfX0gewotCi0gICAgICBnbG9iYWwgdmFycwotICAgICAgZ2xvYmFsIGVudgotICAgICAgZ2xvYmFsIHdhcm5pbmdzCi0gICAgICBnbG9iYWwgcGx1Z2luX2Vycm9yCi0gICAgICBnbG9iYWwgZXJyb3JJbmZvCi0gICAgICBnbG9iYWwgcmV0dXJuX2NvZGUKLQotICAgICAgIyBBZGRlZCBmb3IgRVRTL0VQUwotICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycyhmbGF0KV19IHsKLSAgICAgICAgIHNldCB2YXJzKGZsYXQpIGZ1bGwKLSAgICAgIH0KLQotICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGNvZGVnZW4pXSAmJiAhJHZhcnMoY29kZWdlbil9IHsKLSAgICAgICAgIHNldCB2YXJzKGZsYXQpIGZ1bGwKLSAgICAgIH0KLSAgCi0gICAgICBzZXQgZmxhdCAkdmFycyhmbGF0KQotCi0gICAgICBpZiB7JHZhcnMoZ2VuZXJhdGVfZmxvd19zdGVwcyl9IHsKLSAgICAgICAgICNzZXQgdmFycyhmbGF0KSBmdWxsCi0gICAgICB9Ci0KLSAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyh2ZXJib3NlKV0gJiYgJHZhcnModmVyYm9zZSl9IHsKLSAgICAgICAgIHNldCB2ZXJib3NlIHRydWUKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgICBzZXQgdmVyYm9zZSBmYWxzZQotICAgICAgfQotCi0gICAgICBzZXQgY29tbWFuZHMgInB1dHMgXCI8RkY+IFBsdWdpbiAtPiAkcGx1Z2luXCJcbiIKLSAgICAgIHNldCBub19jb21tZW50cyAiIgotCi0gICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJHBsdWdpbildfSB7Ci0gICAgICAgICBpZiB7IVtpbmZvIGV4aXN0cyB2YXJzKHBsdWdpbnMpXX0gewotICAgICAgICAgICAgc2V0IHZhcnMocGx1Z2lucykgW2xpc3RdCi0gICAgICAgICB9Ci0gICAgICAgICBpZiB7W2xzZWFyY2ggJHZhcnMocGx1Z2lucykgJHBsdWdpbl0gPT0gLTF9IHsKLSAgICAgICAgICAgIHNldCBzdWZmaXggW2xpbmRleCBbc3BsaXQgJHBsdWdpbiAiLCJdIDFdCi0gICAgICAgICAgICBpZiB7KCRzdWZmaXggIT0gImRlcmF0ZV90Y2wiKSAmJiAoJHN1ZmZpeCAhPSAic2NhbGVfdGNsIil9IHsKLSAgICAgICAgICAgICAgIGxhcHBlbmQgdmFycyhwbHVnaW5zKSAkcGx1Z2luCi0gICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0gICAgICAgICBzZXQgZm91bmQgMCAKLSAgICAgICAgIHNldCBwbHVnX2xpc3QgW10KLSAgICAgICAgIGZvcmVhY2ggcGx1Z19maWxlICR2YXJzKCRwbHVnaW4pIHsKLSAgICAgICAgICAgIGlmIHtbZmlsZSBleGlzdHMgJHBsdWdfZmlsZV19IHsKLSAgICAgICAgICAgICAgIHNldCBmb3VuZCAxIAotICAgICAgICAgICAgICAgbGFwcGVuZCBwbHVnX2xpc3QgJHBsdWdfZmlsZQotICAgICAgICAgICAgICAgY29udGludWUgCi0gICAgICAgICAgICB9IGVsc2VpZiB7W2ZpbGUgZXhpc3RzICR2YXJzKHBsdWdfZGlyKS8kcGx1Z19maWxlXX0gewotICAgICAgICAgICAgICAgICAgc2V0IGZvdW5kIDEgCi0jICAgICAgICAgICAgICAgICAgbGFwcGVuZCBwbHVnX2xpc3QgJHBsdWdfZmlsZQotICAgICAgICAgICAgICAgICAgIGxhcHBlbmQgcGx1Z19saXN0ICR2YXJzKHBsdWdfZGlyKS8kcGx1Z19maWxlCi0gICAgICAgICAgICAgICAgICBjb250aW51ZSAKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBpZiB7W2ZpbGUgZXhpc3RzICR2YXJzKGN3ZCkvJHBsdWdfZmlsZV19IHsKLSAgICAgICAgICAgICAgICAgIHNldCBmb3VuZCAxIAotICAgICAgICAgICAgICAgICAgbGFwcGVuZCBwbHVnX2xpc3QgJHZhcnMoY3dkKS8kcGx1Z19maWxlCi0gICAgICAgICAgICAgICAgICBjb250aW51ZSAKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0KLSAgICAgICAgIGlmIHshJGZvdW5kfSB7Ci0gICAgICAgICAgICBpZiB7IVtpbmZvIGV4aXN0cyB2YXJzKG1pc3NpbmdfcGx1Z2lucyldfSB7Ci0gICAgICAgICAgICAgICBzZXQgdmFycyhtaXNzaW5nX3BsdWdpbnMpIFtsaXN0XQotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYge1tsc2VhcmNoICR2YXJzKG1pc3NpbmdfcGx1Z2lucykgJHBsdWdpbl0gPT0gLTF9IHsKLSAgICAgICAgICAgICAgIGxhcHBlbmQgdmFycyhtaXNzaW5nX3BsdWdpbnMpICRwbHVnaW4KLSAgICAgICAgICAgICAgIHNldCB3YXJuaW5ncygkdmFycyh3YXJuaW5nX2NvdW50KSkgIlBsdWctaW4gJHBsdWdpbiBkZWZpbmVkIGJ1dCBmaWxlKHMpIG5vdCBmb3VuZCIKLSAgICAgICAgICAgICAgIGluY3IgdmFycyh3YXJuaW5nX2NvdW50KQotICAgICAgICAgICAgfQotICAgICAgICAgfQotICAgICAgICAgaWYgeyR2YXJzKGZsYXQpID09ICJwYXJ0aWFsIn0gewotICAgICAgICAgICAgZm9yZWFjaCBwbHVnX2ZpbGUgJHBsdWdfZmlsZSB7Ci0gICAgICAgICAgICAgICBpZiB7W2ZpbGUgZXhpc3RzICRwbHVnX2ZpbGVdfSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgInB1dHMgXCI8RkY+IExPQURJTkcgXCckcGx1Z19maWxlXCcgUExVRy1JTiBGSUxFKHMpIFwiXG4iCi0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgImlmIHsgXFsgY2F0Y2ggeyBzb3VyY2UgJHBsdWdfZmlsZSB9IHBsdWdpbl9lcnJvciBcXSB9IHtcbiIKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiICAgcHV0cyBcIjxGRj4gPT09PT09PT09PT09PSBQTFVHLUlOIEVSUk9SID09PT09PT09PT09PT09PT09PVwiXG4iCi0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiAgIHB1dHMgXCI8RkY+IFwkZXJyb3JJbmZvXCJcbiIKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiICAgcHV0cyBcIjxGRj4gXCRwbHVnaW5fZXJyb3JcIlxuIgotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIgICBwdXRzIFwiPEZGPiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XCJcbiIKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiICAgc2V0IHJldHVybl9jb2RlIDk5XG4iCi0gICAgICAgICAgICAgICAgICBpZiB7JGFib3J0fSB7Ci0gICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiAgICBleGl0IFwkcmV0dXJuX2NvZGVcbiIKLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAifVxuIgotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAgfSBlbHNlaWYgeyR2YXJzKGZsYXQpID09ICJmdWxsIn0gewotICAgICAgICAgICAgaWYgeyEkZm91bmR9IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiZmZfcHJvY3M6OnNvdXJjZV9wbHVnICRwbHVnaW5cbiIKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBpZiB7JHZlcmJvc2UgJiYgIVtyZWdleHAgIiwiICRwbHVnaW5dfSB7Ci0gICAgICAgICAgICAgICAgICBzZXQgY29tbWFuZHMgIlxuIyA8YmVnaW4gcGx1Zy1pbiAkcGx1Z2luPlxuIgotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycyhwbHVnX2ZpbGVzKV19IHsKLSAgICAgICAgICAgICAgICAgIHNldCB2YXJzKHBsdWdfZmlsZXMpIFtsaXN0XQotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgZm9yZWFjaCBwbHVnX2ZpbGUgJHBsdWdfbGlzdCB7Ci0gICAgICAgICAgICAgICAgICBpZiB7W2ZpbGUgZXhpc3RzICRwbHVnX2ZpbGVdfSB7Ci0jICAgICAgICAgICAgICAgICAgICAgaWYgeyR2ZXJib3NlfSB7Ci0jICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjPj4+XG4iCi0jICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjIDxiZWdpbiAkcGx1Z19maWxlPlxuIgotICAgICAgICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKG9sZF9wbHVnaW5zKV0gJiYgJHZhcnMob2xkX3BsdWdpbnMpICYmIChbbHNlYXJjaCAkdmFycyhlZGlfcGx1Z2lucykgJHBsdWdpbl0gIT0gLTEpfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgImV2YWxfZW5jIFx7XG4iCi0gICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICBpZiB7W2xzZWFyY2ggJHZhcnMocGx1Z19maWxlcykgJHBsdWdpbl0gPT0gLTF9IHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHNldCBzdWZmaXggW2xpbmRleCBbc3BsaXQgJHBsdWdpbiAiLCJdIDFdCi0gICAgICAgICAgICAgICAgICAgICAgICBpZiB7KCRzdWZmaXggIT0gImRlcmF0ZV90Y2wiKSAmJiAoJHN1ZmZpeCAhPSAic2NhbGVfdGNsIil9IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhcHBlbmQgdmFycyhwbHVnX2ZpbGVzKSAiJHBsdWdpbiIKLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgIHNldCBpcCBbb3BlbiAkcGx1Z19maWxlIHJdCi0gICAgICAgICAgICAgICAgICAgICB3aGlsZSB7W2dldHMgJGlwIGxpbmVdPj0wfSB7Ci0jICAgICAgICAgICAgICAgICAgICAgICAgaWYgeyFbcmVnZXhwICJeJCIgJGxpbmVdfSB7IAotICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgeyR2YXJzKGdlbmVyYXRlX2Zsb3dfc3RlcHMpfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiAgICRsaW5lXG4iCi0gICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIkbGluZVxuIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgeyFbcmVnZXhwICJeIyIgJGxpbmVdfSB7IAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIG5vX2NvbW1lbnRzICIgICAkbGluZVxuIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotIyAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgIGNsb3NlICRpcAotICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjIDxlbmQgJHBsdWdfZmlsZT5cbiIKLSAgICAgICAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhvbGRfcGx1Z2lucyldICYmICR2YXJzKG9sZF9wbHVnaW5zKSAmJiAoW2xzZWFyY2ggJHZhcnMoZWRpX3BsdWdpbnMpICRwbHVnaW5dICE9IC0xKX0gewotICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJcfVxuIgotICAgICAgICAgICAgICAgICAgICAgfQotIyAgICAgICAgICAgICAgICAgICAgIGlmIHskdmVyYm9zZX0gewotIyAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIzw8PFxuIgotIyAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIH0gZWxzZWlmIHtbZmlsZSBleGlzdHMgJHZhcnMocGx1Z19kaXIpLyRwbHVnX2ZpbGVdfSB7Ci0jICAgICAgICAgICAgICAgICAgICAgaWYgeyR2ZXJib3NlfSB7Ci0jICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjPj4+XG4iCi0jICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgaWYge1tsc2VhcmNoICR2YXJzKHBsdWdfZmlsZXMpICRwbHVnaW5dID09IC0xfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBzZXQgc3VmZml4IFtsaW5kZXggW3NwbGl0ICRwbHVnaW4gIiwiXSAxXQotICAgICAgICAgICAgICAgICAgICAgICAgaWYgeygkc3VmZml4ICE9ICJkZXJhdGVfdGNsIikgJiYgKCRzdWZmaXggIT0gInNjYWxlX3RjbCIpfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICBsYXBwZW5kIHZhcnMocGx1Z19maWxlcykgIiRwbHVnaW4iCi0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICBzZXQgaXAgW29wZW4gJHZhcnMocGx1Z19kaXIpLyRwbHVnX2ZpbGUgcl0KLSAgICAgICAgICAgICAgICAgICAgIHdoaWxlIHtbZ2V0cyAkaXAgbGluZV0+PTB9IHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIHshW3JlZ2V4cCAiXiQiICRsaW5lXX0geyAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiJGxpbmVcbiIKLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIHshW3JlZ2V4cCAiXiMiICRsaW5lXX0geyAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBub19jb21tZW50cyAiICAgJGxpbmVcbiIKLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgIGNsb3NlICRpcAotIyAgICAgICAgICAgICAgICAgICAgIGlmIHskdmVyYm9zZX0gewotIyAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIzw8PFxuIgotIyAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIH0gCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICBpZiB7JHZlcmJvc2UgJiYgIVtyZWdleHAgIiwiICRwbHVnaW5dfSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgPGVuZCBwbHVnLWluICRwbHVnaW4+XG5cbiIKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgImZmX3Byb2NzOjpzb3VyY2VfcGx1ZyAkcGx1Z2luXG4iCi0gICAgICAgICB9Ci0gICAgICB9Ci0gICAgICBzZXQgdmFycyhmbGF0KSAkZmxhdAotICAgICAgaWYgeyR2YXJzKGdlbmVyYXRlX2Zsb3dfc3RlcHMpICYmICgkbm9fY29tbWVudHMgIT0gIiIpICYmICFbcmVnZXhwIGZmX3Byb2NzICRjb21tYW5kc10gJiYgIVtyZWdleHAgZGVyYXRlX3RjbCAkcGx1Z2luXX0gewotICAgICAgICAgaWYgeyRub19jb21tZW50cyA9PSAiIn0gewotICAgICAgICAgICAgc2V0IGNvbW1hbmRzICIiCi0gICAgICAgICB9Ci0gICAgICAgICBpZiB7W2xpbmRleCBbc3BsaXQgJHZhcnModmVyc2lvbikgIi4iXSAgMF0gPiAxNH0gewotICAgICAgICAgICBpZiB7IVtmaWxlIGV4aXN0cyAkdmFycyhjd2QpLy5wbHVnaW5zXX0gewotICAgICAgICAgICAgICBzZXQgb3AgW29wZW4gJHZhcnMoY3dkKS8ucGx1Z2lucyB3XQotICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICBzZXQgb3AgW29wZW4gJHZhcnMoY3dkKS8ucGx1Z2lucyBhXQotICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgaWYge1tyZWdleHAgIl5wcmVfJHZhcnMoc3RlcCkiICRwbHVnaW5dICYmICgkdmFycyhzdGVwKSAhPSAicGFydGl0aW9uX3BsYWNlIil9IHsKLSAgICAgICAgICAgICAgc2V0IHR5cGUgYmVnaW5fdGNsCi0gICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgIGlmIHtbcmVnZXhwICJecG9zdF8kdmFycyhzdGVwKSIgJHBsdWdpbl0gJiYgKCR2YXJzKHN0ZXApICE9ICJwYXJ0aXRpb25fcGxhY2UiKX0gewotICAgICAgICAgICAgICAgICBzZXQgdHlwZSBlbmRfdGNsCi0gICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgaWYge1tyZWdleHAgIl5zeW4iICRwbHVnaW5dIHx8IFtyZWdleHAgIl5hbHdheXMiICRwbHVnaW5dIHx8IFtyZWdleHAgIl5maW5hbF9hbHdheXMiICRwbHVnaW5dIHx8IFtyZWdleHAgIl5wcmVfc3luIiAkcGx1Z2luXX0gewotICAgICAgICAgICAgICAgICAgc2V0IHR5cGUgaW1wb3J0IAotICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICBpZiB7JHZhcnMoc3RlcCkgIT0gInBhcnRpdGlvbl9wbGFjZSJ9IHsKLSAgICAgICAgICAgICAgICAgICAgIHNldCB0eXBlIHNraXAgCi0gICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgc2V0IHR5cGUgaW1wb3J0Ci0gICAgICAgICAgICAgICAgICB9IAotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgfQotICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgc2V0IHN0ZXBfcGx1ZyBbZm9ybWF0ICVzXyVzICR2YXJzKHN0ZXApICRwbHVnaW5dCi0gICAgICAgICAgIGlmIHshW2luZm8gZXhpc3RzIHZhcnMocHJvY2Vzc2VkX3BsdWdpbnMpXX0gewotICAgICAgICAgICAgICBzZXQgdmFycyhwcm9jZXNzZWRfcGx1Z2lucykgW2xpc3RdCi0gICAgICAgICAgICAgIGxhcHBlbmQgdmFycyhwcm9jZXNzZWRfcGx1Z2lucykgJHN0ZXBfcGx1ZwotICAgICAgICAgICB9IGVsc2UgewotIyAgICAgICAgICAgICAgcHV0cyAiJHZhcnMocHJvY2Vzc2VkX3BsdWdpbnMpIDogJHN0ZXBfcGx1ZyIKLSAgICAgICAgICAgICAgaWYge1tsc2VhcmNoICR2YXJzKHByb2Nlc3NlZF9wbHVnaW5zKSAkc3RlcF9wbHVnXSA9PSAtMX0gewotICAgICAgICAgICAgICAgICBsYXBwZW5kIHZhcnMocHJvY2Vzc2VkX3BsdWdpbnMpICRzdGVwX3BsdWcKLSAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgaWYgeygkdmFycyhzdGVwKSAhPSAicGFydGl0aW9uX3BsYWNlIikgJiYgIVtyZWdleHAgImFsd2F5cyIgJHBsdWdpbl19IHsKLSAgICAgICAgICAgICAgICAgICAgc2V0IHR5cGUgc2tpcAotICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgIH0KLSAgICAgICAgICAgfQotICAgICAgICAgICBpZiB7JHR5cGUgIT0gInNraXAifSB7Ci0jICAgICAgICAgICAgICBpZiB7JHR5cGUgPT0gImltcG9ydCJ9IHsKLSMgICAgICAgICAgICAgICAgIHNldCBpcCBbb3BlbiAkcGx1Z19maWxlIHJdCi0jICAgICAgICAgICAgICAgICB3aGlsZSB7W2dldHMgJGlwIGxpbmVdPj0wfSB7Ci0jICAgICAgICAgICAgICAgICAgICBpZiB7IVtyZWdleHAgIl4kIiAkbGluZV19IHsgCi0jICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiAgICRsaW5lXG4iCi0jICAgICAgICAgICAgICAgICAgICAgICBpZiB7IVtyZWdleHAgIl4jIiAkbGluZV19IHsgCi0jICAgICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgbm9fY29tbWVudHMgIiAgICRsaW5lXG4iCi0jICAgICAgICAgICAgICAgICAgICAgICB9Ci0jICAgICAgICAgICAgICAgICAgICB9Ci0jICAgICAgICAgICAgICAgICB9Ci0jICAgICAgICAgICAgICAgICBjbG9zZSAkaXAKLSAgICAgICAgICAgICAgICAgcmV0dXJuICRjb21tYW5kcwotICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMob2xkX3BsdWdpbnMpXSAmJiAhW3JlZ2V4cCBzeW5fICR2YXJzKHN0ZXApXX0gewotICAgICAgICAgICAgICAgICAgICAgc2V0IHRlbXAgInNldF9kYiBmbG93X3N0ZXA6JHZhcnMoc3RlcCkgLiR0eXBlIHsgZXZhbF9lbmMge1xuIgotICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIHRlbXAgJG5vX2NvbW1lbnRzCi0gICAgICAgICAgICAgICAgICAgICBhcHBlbmQgdGVtcCAifX1cbiIKLSAgICAgICAgICAgICAgICAgICAgIHB1dHMgJG9wICR0ZW1wCi0gICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICBzZXQgdGVtcCAic2V0X2RiIGZsb3dfc3RlcDokdmFycyhzdGVwKSAuJHR5cGUge1xuIgotICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIHRlbXAgJG5vX2NvbW1lbnRzCi0gICAgICAgICAgICAgICAgICAgICBhcHBlbmQgdGVtcCAifVxuIgotICAgICAgICAgICAgICAgICAgICAgcHV0cyAkb3AgJHRlbXAKLSAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICB9Ci0gICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgIHB1dHMgIlNraXBwaW5nIHBsdWdpbiAkcGx1Z2luIGFzIGl0IGNhbm5vdCBiZSAob3IgYWxyZWFkeSBoYXMgYmVlbikgdGllZCB0byBhIGZsb3dfc3RlcCBhdHRyaWJ1dGUiCi0gICAgICAgICAgIH0KLSAgICAgICAgICAgY2xvc2UgJG9wCi0gICAgICAgICB9IGVsc2UgewotICAgICAgICAgICByZXR1cm4gJGNvbW1hbmRzCi0gICAgICAgICB9Ci0gICAgICB9IGVsc2UgewotICAgICAgICByZXR1cm4gJGNvbW1hbmRzCi0gICAgICB9Ci0gICB9Ci0KLSAgIG5hbWVzcGFjZSBleHBvcnQgZ2V0X3Rvb2wgCi0gICBwcm9jIGdldF90b29sIHt9IHsKLSAgICAgc2V0IHRvb2xfbmFtZSAiIgotICAgICBzZXQgcGF0aF90b19leGUgW2luZm8gbmFtZW9mZXhlY3V0YWJsZV0KLSAgICAgaWYge1tyZWdleHAgey9yYyg2NCk/KC1cdyk/JH0gJHBhdGhfdG9fZXhlXX0gewotICAgICAgIHNldCB0b29sX25hbWUgInJjIgotICAgICB9IGVsc2VpZiB7W3JlZ2V4cCB7L2dlbnVzKDY0KT8oLVx3KT8kfSAkcGF0aF90b19leGVdfSB7Ci0gICAgICAgc2V0IHRvb2xfbmFtZSAicmMiCi0gICAgIH0gZWxzZWlmIHtbcmVnZXhwIHsuKlwvKExFQ3xsZWMpfSAkcGF0aF90b19leGVdfSB7Ci0gICAgICAgc2V0IHRvb2xfbmFtZSAibGVjIgotICAgICB9IGVsc2VpZiB7W3JlZ2V4cCB7LipcL3ZlcmlmeX0gJHBhdGhfdG9fZXhlXX0gewotICAgICAgIHNldCB0b29sX25hbWUgImNscCIKLSAgICAgfSBlbHNlaWYge1tyZWdleHAgey4qXC9DQ0R9ICRwYXRoX3RvX2V4ZV19IHsKLSAgICAgICBzZXQgdG9vbF9uYW1lICJjY2QiCi0gICAgIH0gZWxzZWlmIHtbcmVnZXhwIHsuKlwvY3Rvc30gJHBhdGhfdG9fZXhlXX0gewotICAgICAgIHNldCB0b29sX25hbWUgImN0b3MiCi0gICAgIH0gZWxzZWlmIHtbcmVnZXhwIHsuKlwvdGNsc2h9ICRwYXRoX3RvX2V4ZV19IHsKLSAgICAgICBzZXQgdG9vbF9uYW1lICJ0Y2xzaCIKLSAgICAgfSBlbHNlaWYge1tyZWdleHAgey4qXC9pbm5vdnVzfSAkcGF0aF90b19leGVdfSB7Ci0gICAgICAgc2V0IHRvb2xfbmFtZSAiZWRpIgotICAgICB9IGVsc2VpZiB7W3JlZ2V4cCB7LipcL2VuY291bnRlcn0gJHBhdGhfdG9fZXhlXX0gewotICAgICAgIHNldCB0b29sX25hbWUgImVkaSIKLSAgICAgfSBlbHNlaWYge1tyZWdleHAgey4qXC92ZWxvY2l0eX0gJHBhdGhfdG9fZXhlXX0gewotICAgICAgIHNldCB0b29sX25hbWUgImVkaSIKLSAgICAgfSBlbHNlaWYge1tyZWdleHAgey4qXC9uY3NpbX0gJHBhdGhfdG9fZXhlXX0gewotICAgICAgIHNldCB0b29sX25hbWUgImllcyIKLSAgICAgfQotICAgICByZXR1cm4gJHRvb2xfbmFtZQotICAgfQotCi0gICBwcm9jIHNvdXJjZV9maWxlIHtmaWxlIHthYm9ydCAxfX0gewotICAgICAgZ2xvYmFsIHZhcnMKLSAgICAgIGdsb2JhbCBzb3VyY2VfZXJyb3IKLSAgICAgIGdsb2JhbCBlcnJvckluZm8KLSAgICAgIGdsb2JhbCByZXR1cm5fY29kZQotCi0jICAgICAgcHV0cyAiPEZGPiBMT0FESU5HICckZmlsZScgRklMRSIKLSAgICAgIGlmIHtbZmlsZSBleGlzdHMgJGZpbGVdfSB7Ci0gICAgICAgICBpZiB7W2luZm8gY29tbWFuZCBGRjo6Z2V0X3Rvb2xdIG5lICIiICYmIFtGRjo6Z2V0X3Rvb2xdIGVxICJyYyIgfSB7Ci0gICAgICAgICAgICAgc2V0IHNvdXJjZVJlc3VsdCBbY2F0Y2ggeyB1cGxldmVsIHRjbF9zb3VyY2UgJGZpbGUgfSBzb3VyY2VfZXJyb3IgXQotICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICBzZXQgc291cmNlUmVzdWx0IFtjYXRjaCB7IHVwbGV2ZWwgc291cmNlICRmaWxlIH0gc291cmNlX2Vycm9yIF0KLSAgICAgICAgIH0KLSAgICAgICAgIGlmIHsgJHNvdXJjZVJlc3VsdCB9IHsKLSAgICAgICAgICAgIHB1dHMgIjxGRj4gPT09PT09PT09PT09PT09IFRDTCBFUlJPUiA9PT09PT09PT09PT09PT09PT09PSIKLSAgICAgICAgICAgIHB1dHMgIjxGRj4gRXJyb3IgbG9hZGluZyAkZmlsZSBmaWxlIgotICAgICAgICAgICAgcHV0cyAiPEZGPiAkZXJyb3JJbmZvIgotICAgICAgICAgICAgcHV0cyAiPEZGPiAkc291cmNlX2Vycm9yIgotICAgICAgICAgICAgcHV0cyAiPEZGPiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09IgotICAgICAgICAgICAgc2V0IHJldHVybl9jb2RlIDk5Ci0gICAgICAgICAgICBpZiB7JGFib3J0fSB7Ci0gICAgICAgICAgICAgICBleGl0ICRyZXR1cm5fY29kZQotICAgICAgICAgICAgfQotICAgICAgICAgfQotICAgICAgfQotICAgfQotCi0gICBwcm9jIGdldF9ieV9zdWZmaXgge3Bhc3NlZF9hcnJheSB7c3VmZml4ICIifX0gewotICAgICAgIwotICAgICAgIyBHZXQgdGhlIGxpc3Qgb2YgYXJyYXkgaW5kaWNlcyB0aGF0IGhhdmUgYSBzdWZmaXggb2YgdGhlCi0gICAgICAjIHBhc3NlZCBzdHJpbmcgc2VxdWVuY2UKLSAgICAgICMKLQotICAgICAgdXB2YXIgJHBhc3NlZF9hcnJheSB0aGVfYXJyYXkKLQotICAgICAgIwotICAgICAgIyBJZiB0aGVyZSBpcyBubyBzdWZmaXgsIHJldHVybiBldmVyeSBuYW1lCi0gICAgICAjCi0KLSAgICAgIGlmIHtbc3RyaW5nIGxlbmd0aCAkc3VmZml4XSA9PSAwfSB7Ci0gICAgICAgICByZXR1cm4gYXJyYXkgbmFtZXMgdGhlX2FycmF5Ci0gICAgICB9Ci0KLSAgICAgICMKLSAgICAgICMgSWYgdGhlcmUgaXMgYSBzdWZmaXgsIGZpbmQgdGhlIG1hdGNoaW5nIG5hbWVzIGFuZCByZXR1cm4KLSAgICAgICMgdGhlIGxpc3Qgb2YgdGhvc2UgbmFtZXMgKHdpdGhvdXQgdGhlIHN1ZmZpeCBhdHRhY2hlZCB0byBpdCkuCi0gICAgICAjIFRoaXMgaXMgbW9zdCBoZWxwZnVsIHdoZW4gbG9va2luZyBmb3IgIm11bHRpLWRpbWVuc2lvbmFsIGFycmF5Ci0gICAgICAjIGluZGljZXMiIChpbiBxdW90ZXMgYmVjYXVzZSBUY2wgZG9lc24ndCBzdXBwb3J0IG11bHRpcGxlCi0gICAgICAjIGRpbWVuc2lvbnMgZm9yIGFycmF5IGluZGljZXMpCi0gICAgICAjCi0KLSAgICAgIHNldCBzdWZmaXhfbGVuZ3RoIFtzdHJpbmcgbGVuZ3RoICRzdWZmaXhdCi0gICAgICBzZXQgYWxsX25hbWVzIFthcnJheSBuYW1lcyB0aGVfYXJyYXkgLWdsb2IgIiokc3VmZml4Il0KLSAgICAgIHNldCBuYW1lcyBbbGlzdF0KLSAgICAgIGZvcmVhY2ggbmFtZSAkYWxsX25hbWVzIHsKLSAgICAgICAgIHNldCBsZW5ndGggW3N0cmluZyBsZW5ndGggJG5hbWVdCi0gICAgICAgICBzZXQgaW5kZXggW3N0cmluZyByYW5nZSAkbmFtZSAwIFtleHByICRsZW5ndGggLSAkc3VmZml4X2xlbmd0aCAtIDFdXQotICAgICAgICAgbGFwcGVuZCBuYW1lcyAkaW5kZXgKLSAgICAgIH0KLSAgICAgIHJldHVybiAkbmFtZXMKLSAgIH0KLQotICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAjIFV0aWxpdHkgcHJvY2VkdXJlcyBvbiBsaXN0cwotICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0KLSAgIHByb2MgbGludGVyc2VjdGlvbiB7bGlzdGEgbGlzdGJ9IHsKLSAgICAgICMKLSAgICAgICMgUmV0dXJuIHRoZSBpbnRlcnNlY3Rpb24gb2YgbGlzdGEgYW5kIGxpc3RiLCByZW1vdmluZyBhbnkgZHVwbGljYXRlcwotICAgICAgIwotCi0gICAgICBzZXQgaW50ZXJzZWN0IFtsaXN0XQotICAgICAgZm9yZWFjaCBhICRsaXN0YSB7Ci0gICAgICAgICBpZiB7KFtsc2VhcmNoICRsaXN0YiAkYV0gIT0gLTEpICYmIFwKLSAgICAgICAgICAgICAgICAoW2xzZWFyY2ggJGludGVyc2VjdCAkYV0gPT0gLTEpfSB7Ci0gICAgICAgICAgICBsYXBwZW5kIGludGVyc2VjdCAkYQotICAgICAgICAgfQotICAgICAgfQotICAgICAgcmV0dXJuICRpbnRlcnNlY3QKLSAgIH0KLQotCi0gICBwcm9jIGx1bmlvbiB7bGlzdGEgbGlzdGJ9IHsKLSAgICAgICMKLSAgICAgICMgUmV0dXJuIHRoZSB1bmlvbiBvZiBsaXN0YSBhbmQgbGlzdGIsIHJlbW92aW5nIGFueSBkdXBsaWNhdGVzCi0gICAgICAjCi0KLSAgICAgIHNldCB1bmlvbiBbbGlzdF0KLSAgICAgIGZvcmVhY2ggYSAkbGlzdGEgewotICAgICAgICAgaWYge1tsc2VhcmNoICR1bmlvbiAkYV0gPT0gLTF9IHsKLSAgICAgICAgICAgIGxhcHBlbmQgdW5pb24gJGEKLSAgICAgICAgIH0KLSAgICAgIH0KLSAgICAgIGZvcmVhY2ggYiAkbGlzdGIgewotICAgICAgICAgaWYge1tsc2VhcmNoICR1bmlvbiAkYl0gPT0gLTF9IHsKLSAgICAgICAgICAgIGxhcHBlbmQgdW5pb24gJGIKLSAgICAgICAgIH0KLSAgICAgIH0KLSAgICAgIHJldHVybiAkdW5pb24KLSAgIH0KLQotICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAjIFV0aWxpdGllcyB0byBoYW5kbGUgZGlmZmVyZW50IGNvbnRyb2wgc3RydWN0dXJlIG91dHB1dCAoaWYtdGhlbi1lbHNlLAotICAgIyBmb3JlYWNoLCBldGMuKQotICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0KLSAgIHByb2MgZm9yX2VhY2gge3ZhciB2YXJfbGlzdCBjb2RlX2Jsb2NrfSB7Ci0gICAgICAjCi0gICAgICAjIFJldHVybiBhIHN0cmluZyBmb3IgYSBUY2wgZm9yZWFjaCBibG9jawotICAgICAgIwotCi0gICAgICBzZXQgY29kZSAiIgotICAgICAgaWYgeyFbbGxlbmd0aCAkY29kZV9ibG9ja119IHsKLSAgICAgICAgIHJldHVybiAkY29kZQotICAgICAgfQotCi0gICAgICBzZXQgY29kZSAiZm9yZWFjaCAkdmFyICR2YXJfbGlzdCBce1xuIgotICAgICAgZm9yZWFjaCBsaW5lIFtnZXRMaW5lcyAkY29kZV9ibG9ja10gewotICAgICAgICAgYXBwZW5kIGNvZGUgIiAgICRsaW5lIgotICAgICAgfQotICAgICAgYXBwZW5kIGNvZGUgIlx9XG4iCi0gICAgICByZXR1cm4gJGNvZGUKLSAgIH0KLQotICAgcHJvYyBnZXRfbGluZXMge2NvZGVfYmxvY2t9IHsKLSAgICAgICMKLSAgICAgICMgUmV0dXJuIGEgbGlzdCBvZiBsaW5lcyBmcm9tIHRoZSBzdHJpbmdzIGluIGNvZGVfYmxvY2sKLSAgICAgICMKLQotICAgICAgc2V0IGJsb2NrIFtsaXN0XQotICAgICAgd2hpbGUge1tsbGVuZ3RoICRjb2RlX2Jsb2NrXX0gewotICAgICAgICAgc2V0IGluZGV4IFtzdHJpbmcgZmlyc3QgIlxuIiAkY29kZV9ibG9ja10KLSAgICAgICAgIGlmIHskaW5kZXggPT0gLTF9IHsKLSAgICAgICAgICAgIHNldCBpbmRleCBbc3RyaW5nIGxlbmd0aCAkY29kZV9ibG9ja10KLSAgICAgICAgIH0KLSAgICAgICAgIHNldCBsaW5lIFtzdHJpbmcgcmFuZ2UgJGNvZGVfYmxvY2sgMCAkaW5kZXhdCi0gICAgICAgICBzZXQgY29kZV9ibG9jayBbc3RyaW5nIHJhbmdlICRjb2RlX2Jsb2NrIFtleHByICRpbmRleCArIDFdIGVuZF0KLQotICAgICAgICAgaWYge1tzdHJpbmcgaW5kZXggJGxpbmUgZW5kXSAhPSAiXG4ifSB7Ci0gICAgICAgICAgICBhcHBlbmQgbGluZSAiXG4iCi0gICAgICAgICB9Ci0gICAgICAgICBsYXBwZW5kIGJsb2NrICRsaW5lCi0gICAgICB9Ci0KLSAgICAgIHJldHVybiAkYmxvY2sKLSAgIH0KLQotICAgcHJvYyBpZl9lbHNlIHtjb25kIHRoZW5fYmxvY2sge2Vsc2VfYmxvY2sgIiJ9fSB7Ci0gICAgICAjCi0gICAgICAjIE91dHB1dCBhIFRjbCBpZi10aGVuLWVsc2UgYmxvY2sgd2l0aCB0aGUgcGFzc2VkIGRhdGEuCi0gICAgICAjCi0KLSAgICAgIHNldCBjb21tYW5kICJpZiBceyRjb25kXH0gXHtcbiIKLSAgICAgIGZvcmVhY2ggbGluZSBbZ2V0X2xpbmVzICR0aGVuX2Jsb2NrXSB7Ci0gICAgICAgICBhcHBlbmQgY29tbWFuZCAiICAgJGxpbmUiCi0gICAgICB9Ci0gICAgICBpZiB7W2xsZW5ndGggJGVsc2VfYmxvY2tdfSB7Ci0gICAgICAgICBhcHBlbmQgY29tbWFuZCAiXH0gZWxzZSBce1xuIgotICAgICAgICAgZm9yZWFjaCBsaW5lIFtnZXRfbGluZXMgJGVsc2VfYmxvY2tdIHsKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgICAkbGluZSIKLSAgICAgICAgIH0KLSAgICAgIH0KLSAgICAgIGFwcGVuZCBjb21tYW5kICJcfVxuIgotICAgICAgcmV0dXJuICRjb21tYW5kCi0gICB9Ci0KLSAgIHByb2MgcHJldHR5X3ByaW50X2xpc3RzIHtsaW5lIGRlYnVnfSB7Ci0gICAgICAjCi0gICAgICAjIElmIHRoZXJlIGlzIGFuIGV4cGxpY2l0IFRjbCBsaXN0IGluIHRoZSBsaW5lLCB3ZSBtYXkgd2FudCB0bwotICAgICAgIyBzZXBhcmF0ZSBpdCBvdXQgaW50byBtdWx0aXBsZSBsaW5lcy4gIEl0IHdpbGwgdHVybiBhIGxpc3QgZnJvbQotICAgICAgIyAgICAgICBbbGlzdCBhIGIgY10KLSAgICAgICMgaW50bwotICAgICAgIyAgICAgICBbbGlzdCBhIFwKLSAgICAgICMgICAgICAgICAgICAgYiBcCi0gICAgICAjICAgICAgICAgICAgIGNdCi0gICAgICAjIFRoYXQgbWF5IG5vdCBsb29rIGxpa2UgbXVjaCwgYnV0IGZvciBsaXN0cyB0aGF0IGhhdmUgcmVhbGx5ICpiaWcqCi0gICAgICAjIHRleHQgZW50cmllcywgaXQgbWFrZXMgaXQgbG9vayBhIGxvdCBuaWNlcgotICAgICAgIwotICAgICAgIyBJZiB0aGVyZSBpcyBubyBsaXN0IGluIHRoZSBsaW5lLCBkbyBub3RoaW5nCi0gICAgICAjCi0KLSAgICAgIHNldCBlbmRDaGFyIFtzdHJpbmcgaW5kZXggJGxpbmUgZW5kXQotICAgICAgc2V0IGxpbmUgW3N0cmluZyB0cmltcmlnaHQgJGxpbmVdCi0gICAgICBpZiB7JGVuZENoYXIgPT0gIlxuIn0gewotICAgICAgICAgYXBwZW5kIGxpbmUgIlxuIgotICAgICAgfQotICAgICAgc2V0IGxpc3RQb3MgW3N0cmluZyBmaXJzdCAiXFtsaXN0ICIgJGxpbmVdCi0gICAgICBpZiB7JGxpc3RQb3MgPT0gLTF9IHsKLSAgICAgICAgIHJldHVybiAkbGluZQotICAgICAgfQotICAgICAgc2V0IG9yaWdpbmFsICRsaW5lCi0KLSAgICAgICMKLSAgICAgICMgSW5pdGlhbGl6ZSB0aGUgbGluZSB3aXRoIHRoZSBjb250ZW50cyBvZiB0aGUgbGluZSB1cCB0byBhbmQgaW5jbHVkaW5nCi0gICAgICAjIHRoZSAiW2xpc3QgIiB0ZXh0LiAgQWxzbyBkZXRlcm1pbmUgdGhlIGFtb3VudCBvZiBpbmRlbnRhdGlvbiBpbiB0aGUKLSAgICAgICMgbGluZSBzbyB0aGF0IHdlIGtub3cgd2hhdCB0byBkbyBmb3Igc3Vic2VxdWVudCBsaW5lcwotICAgICAgIwotCi0gICAgICBpbmNyIGxpc3RQb3MgNQotICAgICAgc2V0IG5leHRMaW5lIFtzdHJpbmcgcmFuZ2UgJGxpbmUgMCAkbGlzdFBvc10KLSAgICAgIHNldCBpbmRlbnQgW3N0cmluZyByZXBlYXQgIiAiIFtzdHJpbmcgbGVuZ3RoICRuZXh0TGluZV1dCi0gICAgICBzZXQgbGluZSBbc3RyaW5nIHRyaW1sZWZ0IFtzdHJpbmcgcmFuZ2UgJGxpbmUgJGxpc3RQb3MgZW5kXV0KLQotICAgICAgIwotICAgICAgIyBNYWtlIHN1cmUgdGhhdCB0aGVyZSBpcyBubyBzcGFjZSBiZXR3ZWVuIHRoZSBjbG9zZSBicmFjZSBpbiB0aGUgbGlzdAotICAgICAgIyBhbmQgdGhlIGxhc3QgdGV4dCBpbiB0aGUgbGlzdC4gIFRoaXMgd2lsbCBoZWxwIHdpdGggcHJvY2Vzc2luZyAoYmVsb3cpCi0gICAgICAjCi0KLSAgICAgIHNldCBsaW5lIFtzdHJpbmcgdHJpbXJpZ2h0ICRsaW5lXQotICAgICAgaWYge1tzdHJpbmcgaW5kZXggJGxpbmUgZW5kXSAhPSAiXF0ifSB7Ci0gICAgICAgICByZXR1cm4gJG9yaWdpbmFsCi0gICAgICB9Ci0gICAgICBzZXQgbGluZSBbc3RyaW5nIHJhbmdlICRsaW5lIDAgW2V4cHIgW3N0cmluZyBsZW5ndGggJGxpbmVdIC0gMl1dCi0gICAgICBzZXQgbGluZSBbc3RyaW5nIHRyaW1yaWdodCAkbGluZV0KLSAgICAgIGFwcGVuZCBsaW5lICJcXVxuIgotCi0gICAgICAjCi0gICAgICAjIFBhcnNlIGVhY2ggZWxlbWVudCBpbiB0aGUgbGlzdAotICAgICAgIwotCi0gICAgICBzZXQgcHJpbnRTdHJpbmcgIiIKLSAgICAgIHdoaWxlIHtbc3RyaW5nIGxlbmd0aCAkbGluZV19IHsKLSAgICAgICAgICMKLSAgICAgICAgICMgR2V0IHRoZSBuZXh0IGl0ZW0gaW4gdGhlIGxpc3QKLSAgICAgICAgICMKLQotICAgICAgICAgc2V0IHNwYWNlIFtzdHJpbmcgZmlyc3QgIiAiICRsaW5lXQotICAgICAgICAgaWYgeyRzcGFjZSA9PSAtMX0gewotICAgICAgICAgICAgc2V0IHNwYWNlIFtzdHJpbmcgbGVuZ3RoICRsaW5lXQotICAgICAgICAgfQotICAgICAgICAgc2V0IGFyZyBbc3RyaW5nIHJhbmdlICRsaW5lIDAgJHNwYWNlXQotICAgICAgICAgYXBwZW5kIG5leHRMaW5lICRhcmcKLQotICAgICAgICAgIwotICAgICAgICAgIyBSZW1vdmUgdGhhdCBpdGVtIGZyb20gdGhlIGxpbmUKLSAgICAgICAgICMKLQotICAgICAgICAgc2V0IGxpbmUgW3N0cmluZyByYW5nZSAkbGluZSBbZXhwciAkc3BhY2UgKyAxXSBlbmRdCi0gICAgICAgICBzZXQgbGluZSBbc3RyaW5nIHRyaW1sZWZ0ICRsaW5lXQotICAgICAgICAgaWYge1tzdHJpbmcgbGVuZ3RoICRsaW5lXX0gewotICAgICAgICAgICAgaWYge1tzdHJpbmcgbGVuZ3RoICRuZXh0TGluZV0gPiA4MH0gewotICAgICAgICAgICAgICAgYXBwZW5kIHByaW50U3RyaW5nICIkbmV4dExpbmVcXFxuIgotICAgICAgICAgICAgICAgc2V0IG5leHRMaW5lICRpbmRlbnQKLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0KLSAgICAgIH0KLSAgICAgIGFwcGVuZCBwcmludFN0cmluZyAkbmV4dExpbmUKLSAgICAgIHJldHVybiAkcHJpbnRTdHJpbmcKLSAgIH0KLQotICAgcHJvYyBwcmV0dHlfcHJpbnQge2NvbW1hbmRzIGZvcm1hdF9vcHRpb25zIHtkZWJ1ZyAwfX0gewotCi0gICAgICBnbG9iYWwgdmFycwotCi0gICAgICAjCi0gICAgICAjIFByZXR0eSBwcmludCB0aGUgbGluZXMsIG9uZSBieSBvbmUuICBUaGUgZm9sbG93aW5nIHdpbGwgYmUgZG9uZToKLSAgICAgICMgICBvIElmIHRoZSBsaW5lIGlzIGdyZWF0ZXIgdGhhbiA4MCBjb2x1bW5zLCB3ZSB3aWxsIGJyZWFrIGl0IHVwCi0gICAgICAjICAgICBhbG9uZyB0aGUgb3B0aW9ucyAoLW9wdGlvbikgYW5kIGluZGVudAotICAgICAgIyAgIG8gRml4IGFueSBpbmRlbnRhdGlvbgotICAgICAgIwotCi0gICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoY2F0Y2hfZXJyb3JzKV0gJiYgJHZhcnMoY2F0Y2hfZXJyb3JzKX0gewotICAgICAgICAgc2V0IGluZGVudCAzCi0gICAgICB9IGVsc2UgewotICAgICAgICAgc2V0IGluZGVudCAwCi0gICAgICB9Ci0gICAgICBzZXQgbGluZXMgIiIKLSAgICAgIHNldCBsZW4gW3N0cmluZyBsZW5ndGggJGNvbW1hbmRzXQotICAgICAgd2hpbGUgeyRsZW4gPiAwfSB7Ci0gICAgICAgICAjCi0gICAgICAgICAjIEhhbmRsZSB0aGUgc2ltcGxlIGNhc2UuICBJZiB0aGUgbGVhZGluZyBjaGFyYWN0ZXIgaXMgYSBjYXJyaWFnZQotICAgICAgICAgIyByZXR1cm4sIGFwcGVuZCBhIGJsYW5rIGxpbmUgdG8gdGhlIHByZXR0eS1wcmludGVkIGxpbmVzIGFuZAotICAgICAgICAgIyBjb250aW51ZSBvbgotICAgICAgICAgIwotCi0gICAgICAgICBzZXQgY3IgW3N0cmluZyBmaXJzdCAiXG4iICRjb21tYW5kc10KLSAgICAgICAgIGlmIHshJGNyfSB7Ci0gICAgICAgICAgICBzZXQgY29tbWFuZHMgW3N0cmluZyByYW5nZSAkY29tbWFuZHMgMSBlbmRdCi0gICAgICAgICAgICBpbmNyIGxlbiAtMQotICAgICAgICAgICAgYXBwZW5kIGxpbmVzICJcbiIKLSAgICAgICAgICAgIGNvbnRpbnVlCi0gICAgICAgICB9Ci0KLSAgICAgICAgICMKLSAgICAgICAgICMgSWYgd2UgZGlkbid0IGZpbmQgYSBjYXJyaWFnZSByZXR1cm4gaW4gdGhlIHN0cmluZywgdGhlIGVudGlyZSB0aGluZwotICAgICAgICAgIyBpcyBhIHNpbmdsZSBsaW5lLiAgT3RoZXJ3aXNlLCByZW1vdmUgdGhlIG5leHQgbGluZSBmcm9tIHRoZSBzZXQgb2YKLSAgICAgICAgICMgbGluZXMuICBJZiBpdCBzdGlsbCBlbmRzIHVwIGJlaW5nIGEgYmxhbmsgbGluZSwgYXBwZW5kIHRoZSBibGFuawotICAgICAgICAgIyBsaW5lIHRvIHRoZSBwcmV0dHktcHJpbnRlZCBzdHJpbmcgYW5kIGNvbnRpbnVlIG9uCi0gICAgICAgICAjCi0KLSAgICAgICAgIGlmIHskY3IgPT0gLTF9IHsKLSAgICAgICAgICAgIHNldCBsaW5lICRjb21tYW5kcwotICAgICAgICAgICAgc2V0IGNvbW1hbmRzICIiCi0gICAgICAgICAgICBzZXQgbGVuIDAKLSAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBzZXQgbGluZSBbc3RyaW5nIHJhbmdlICRjb21tYW5kcyAwICRjcl0KLSAgICAgICAgICAgIHNldCBjb21tYW5kcyBbc3RyaW5nIHJhbmdlICRjb21tYW5kcyBbaW5jciBjcl0gZW5kXQotICAgICAgICAgICAgc2V0IGxlbiBbZXhwciAkbGVuIC0gJGNyXQotICAgICAgICAgfQotICAgICAgICAgc2V0IGxpbmUgW3N0cmluZyB0cmltcmlnaHQgJGxpbmVdCi0gICAgICAgICBpZiB7IVtzdHJpbmcgbGVuZ3RoICRsaW5lXX0gewotICAgICAgICAgICAgYXBwZW5kIGxpbmVzICJcbiIKLSAgICAgICAgICAgIGNvbnRpbnVlCi0gICAgICAgICB9Ci0KLSAgICAgICAgICMKLSAgICAgICAgICMgV2UgaGF2ZSBhIHJlYWwgbGluZSB3aXRoIHJlYWwgdGV4dC4gIElmIHRoZXJlIGlzIG5vIHF1b3RlIGluIHRoZQotICAgICAgICAgIyBzdHJpbmcsIGNvbXByZXNzIG11bHRpcGxlIGJsYW5rIHNwYWNlcyB0byBhIHNpbmdsZSBibGFuayBzcGFjZQotICAgICAgICAgIwotCi0gICAgICAgICBzZXQgbGluZSBbc3RyaW5nIHRyaW1sZWZ0ICRsaW5lXQotICAgICAgICAgaWYge1tzdHJpbmcgZmlyc3QgIlwiIiAkbGluZV0gPT0gLTF9IHsKLSAgICAgICAgICAgIHNldCBsaW5lIFtyZWdzdWIgLWFsbCB7XHMrfSAkbGluZSAiICJdCi0gICAgICAgICB9Ci0KLSAgICAgICAgICMKLSAgICAgICAgICMgQXBwbHkgdGhlIHByb3BlciBhbW91bnQgb2YgaW5kZW50YXRpb24KLSAgICAgICAgICMKLQotICAgICAgICAgc2V0IGlzUHV0IFtzdHJpbmcgZXF1YWwgLW5vY2FzZSAtbGVuZ3RoIDUgJGxpbmUgInB1dHMgIl0KLSAgICAgICAgIHNldCBmaXJzdENoYXIgW3N0cmluZyBpbmRleCAkbGluZSAwXQotICAgICAgICAgaWYgeyRmaXJzdENoYXIgPT0gIlx9In0gewotICAgICAgICAgICAgaW5jciBpbmRlbnQgLTMKLSAgICAgICAgIH0KLSAgICAgICAgIHNldCBibGFua3MgW3N0cmluZyByZXBlYXQgIiAiICRpbmRlbnRdCi0gICAgICAgICBzZXQgbGluZSAiJHtibGFua3N9JHtsaW5lfSIKLSAgICAgICAgIGlmIHtbc3RyaW5nIGluZGV4ICRsaW5lIGVuZF0gPT0gIlx7In0gewotICAgICAgICAgICAgaW5jciBpbmRlbnQgMwotICAgICAgICAgfQotCi0gICAgICAgICAjCi0gICAgICAgICAjIElmIHRoZSBmaXJzdCBjaGFyYWN0ZXIgaXMgYSBkYXNoLCB3ZSBoYXZlIGFscmVhZHkgYnJva2VuIHRoZSBsaW5lCi0gICAgICAgICAjIHVwIGZvciBwcmV0dHkgcHJpbnRpbmcuCi0gICAgICAgICAjCi0KLSAgICAgICAgIGlmIHskZmlyc3RDaGFyID09ICItIn0gewotICAgICAgICAgICAgYXBwZW5kIGxpbmVzICIgICAkbGluZVxuIgotICAgICAgICAgICAgY29udGludWUKLSAgICAgICAgIH0KLQotICAgICAgICAgIwotICAgICAgICAgIyBEb24ndCBib3RoZXIgZm9ybWF0dGluZyBjb21tZW50cyBvciBzaG9ydCBsaW5lcy4gIEFsc28sIGlmIHRoZQotICAgICAgICAgIyByb3V0aW5lIGhhcyBiZWVuIHRvbGQgbm90IHRvIGZvcm1hdCB0aGUgY29tbWFuZCBsaW5lIG9wdGlvbnMsIGp1c3QKLSAgICAgICAgICMgb3V0cHV0IHRoZSBsaW5lCi0gICAgICAgICAjCi0KLSAgICAgICAgIHNldCBsaW5lTGVuIFtzdHJpbmcgbGVuZ3RoICRsaW5lXQotICAgICAgICAgaWYgeyRpc1B1dCB8fCAoJGZpcnN0Q2hhciA9PSAiXCMiKSB8fAotICAgICAgICAgICAgICgkbGluZUxlbiA8IDgwKSB8fCAhJGZvcm1hdF9vcHRpb25zfSB7Ci0gICAgICAgICAgICBhcHBlbmQgbGluZXMgIiRsaW5lXG4iCi0gICAgICAgICAgICBjb250aW51ZQotICAgICAgICAgfQotCi0gICAgICAgICAjCi0gICAgICAgICAjIFRoZSBsaW5lIGxlbmd0aCBpcyBvdmVyIDgwLCBhbmQgaXQncyBhIHJlYWwgSW5ub3Z1cyBjb21tYW5kLCBhbmQgaXQncwotICAgICAgICAgIyBub3QgYSBwcmludCAocHV0cykgc3RhdGVtZW50LiAgU3RhcnQgaW5kZW50aW5nIG9uIHRoZSAtb3B0aW9uCi0gICAgICAgICAjIG9wdGlvbnMuICBUaGUgZmlyc3QgIi1vcHRpb24iIHNob3VsZCBiZSBvbiB0aGUgc2FtZSBsaW5lIGFzIHRoZQotICAgICAgICAgIyBjb21tYW5kLiAgQWxsIHN1YnNlcXVlbnQgb3B0aW9ucyBzaG91bGQgYmUgb24gdGhlaXIgb3duIGxpbmUsCi0gICAgICAgICAjIHNsaWdodGx5IGluZGVudGVkIGZyb20gdGhlIGJhc2ljIGNvbW1hbmQKLSAgICAgICAgICMKLQotICAgICAgICAgc2V0IGZpcnN0RGFzaCBbc3RyaW5nIGZpcnN0ICIgLSIgJGxpbmVdCi0gICAgICAgICBpZiB7JGZpcnN0RGFzaCA9PSAtMX0gewotICAgICAgICAgICAgYXBwZW5kIGxpbmVzICIkbGluZVxuIgotICAgICAgICAgICAgY29udGludWUKLSAgICAgICAgIH0KLQotICAgICAgICAgc2V0IGRhc2ggW3N0cmluZyBmaXJzdCAiIC0iICRsaW5lIFtpbmNyIGZpcnN0RGFzaF1dCi0gICAgICAgICBzZXQgbGVhZGluZyAiIgotICAgICAgICAgd2hpbGUgeyRkYXNoICE9IC0xfSB7Ci0gICAgICAgICAgICBzZXQgZnJhZ21lbnQgW3N0cmluZyByYW5nZSAkbGluZSAwIFtleHByICRkYXNoIC0gMV1dCi0gICAgICAgICAgICBhcHBlbmQgbGluZXMgXAotICAgICAgICAgICAgICAgW3ByZXR0eV9wcmludF9saXN0cyAiJHtsZWFkaW5nfSR7ZnJhZ21lbnR9IFxcXG4iICRkZWJ1Z10KLSAgICAgICAgICAgIHNldCBsZWFkaW5nICIkYmxhbmtzICAgIgotICAgICAgICAgICAgc2V0IGxpbmUgW3N0cmluZyByYW5nZSAkbGluZSBbZXhwciAkZGFzaCArIDFdIGVuZF0KLSAgICAgICAgICAgIHNldCBsaW5lIFtzdHJpbmcgdHJpbWxlZnQgJGxpbmVdCi0gICAgICAgICAgICBzZXQgZGFzaCBbc3RyaW5nIGZpcnN0ICIgLSIgJGxpbmVdCi0gICAgICAgICB9Ci0gICAgICAgICBhcHBlbmQgbGluZXMgW3ByZXR0eV9wcmludF9saXN0cyAiJHtsZWFkaW5nfSR7bGluZX1cbiIgJGRlYnVnXQotICAgICAgfQotICAgICAgcmV0dXJuICRsaW5lcwotICAgfQotCi0gICBwcm9jIHN0cmlwX2xpbmVzIHtjb21tYW5kcyBtYXJrZXJzfSB7Ci0gICAgICAjCi0gICAgICAjIFRoaXMgcm91dGluZSBzdHJpcHMgb3V0IGxpbmVzIGZyb20gJGNvbW1hbmRzIHdoZW4gdGhleSBzdGFydCB3aXRoCi0gICAgICAjIGFueSBvZiB0aGUgbGlzdCBlbGVtZW50cyBpbiAkbWFya2VycwotICAgICAgIwotCi0gICAgICBzZXQgbGluZXMgIiIKLSAgICAgIHdoaWxlIHtbc3RyaW5nIGxlbmd0aCAkY29tbWFuZHNdID4gMH0gewotICAgICAgICAgIwotICAgICAgICAgIyBHZXQgdGhlIG5leHQgbGluZSBmcm9tIHRoZSBzZXQgb2YgY29tbWFuZHMKLSAgICAgICAgICMKLQotICAgICAgICAgc2V0IGNyIFtzdHJpbmcgZmlyc3QgIlxuIiAkY29tbWFuZHNdCi0gICAgICAgICBpZiB7JGNyID09IC0xfSB7Ci0gICAgICAgICAgICBzZXQgbGluZSAkY29tbWFuZHMKLSAgICAgICAgICAgIHNldCBjb21tYW5kcyAiIgotICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHNldCBsaW5lIFtzdHJpbmcgcmFuZ2UgJGNvbW1hbmRzIDAgJGNyXQotICAgICAgICAgICAgc2V0IGNvbW1hbmRzIFtzdHJpbmcgcmFuZ2UgJGNvbW1hbmRzIFtpbmNyIGNyXSBlbmRdCi0gICAgICAgICB9Ci0KLSAgICAgICAgICMKLSAgICAgICAgICMgSWYgdGhlIGxpbmUgc3RhcnRzIHdpdGggYSBtYXJrZXIsIGlnbm9yZSB0aGUgbGluZQotICAgICAgICAgIwotCi0gICAgICAgICBzZXQgdHJpbW1lZCBbc3RyaW5nIHRyaW1sZWZ0ICRsaW5lXQotICAgICAgICAgc2V0IG1hdGNoZWQgZmFsc2UKLSAgICAgICAgIGZvcmVhY2ggbWFya2VyICRtYXJrZXJzIHsKLSAgICAgICAgICAgIHNldCBsZW4gW3N0cmluZyBsZW5ndGggJG1hcmtlcl0KLSAgICAgICAgICAgIGlmIHtbc3RyaW5nIGVxdWFsIC1ub2Nhc2UgLWxlbmd0aCAkbGVuICRtYXJrZXIgJHRyaW1tZWRdfSB7Ci0gICAgICAgICAgICAgICBzZXQgbWF0Y2hlZCB0cnVlCi0gICAgICAgICAgICAgICBicmVhawotICAgICAgICAgICAgfQotICAgICAgICAgfQotICAgICAgICAgaWYgeyRtYXRjaGVkfSB7Ci0gICAgICAgICAgICBjb250aW51ZQotICAgICAgICAgfQotICAgICAgICAgYXBwZW5kIGxpbmVzICRsaW5lCi0gICAgICB9Ci0KLSAgICAgIHJldHVybiAkbGluZXMKLSAgIH0KLQotICAgcHJvYyBnZW5fbWFrZWZpbGUge3N0ZXBzIHR5cGV9IHsKLSAgICAgIGdsb2JhbCB2YXJzCi0gICAgICBnbG9iYWwgZGVzYwotICAgICAgZ2xvYmFsIGVudgotICAgICAgZ2xvYmFsIGVycm9ycwotCi0gICAgICBpZiB7ISR2YXJzKG1ha2VmaWxlKX0gewotICAgICAgICAgcmV0dXJuCi0gICAgICB9Ci0KLSAgICAgIHNldCBkZXNjKHN5bl9tYXApICJUZWNobm9sb2d5IE1hcHBpbmciCi0gICAgICBzZXQgZGVzYyhzeW5faW5jcikgIkluY3JlbWVudGFsIFN5bnRoZXNpcyIKLSAgICAgIHNldCBkZXNjKHN5bl9wbGFjZSkgIlBsYWNlbWVudC9QaHlzaWNhbCBTeW50aGVzaXMiCi0gICAgICBzZXQgZGVzYyhpbml0KSAiRGVzaWduIEltcG9ydCAvIEluaXRpYWxpemF0aW9uIgotICAgICAgaWYgeyR2YXJzKHJjKX0gewotICAgICAgICAgc2V0IGRlc2MocGxhY2UpICJMZWdhbGl6YXRpb24iCi0gICAgICB9IGVsc2UgewotICAgICAgICAgc2V0IGRlc2MocGxhY2UpICJDZWxsIFBsYWNlbWVudCIKLSAgICAgIH0KLSAgICAgIHNldCBkZXNjKHByZWN0cykgIlByZUNUUyBPcHRpbWl6YXRpb24iCi0gICAgICBzZXQgZGVzYyhjdHMpICJDbG9jayBUcmVlIFN5bnRoZXNpcyIKLSAgICAgIHNldCBkZXNjKHBvc3RjdHMpICJQb3N0Q1RTIE9wdGltaXphdGlvbiIKLSAgICAgIHNldCBkZXNjKHBvc3RjdHNfaG9sZCkgIlBvc3RDVFMgSG9sZCBGaXhpbmciCi0gICAgICBzZXQgZGVzYyhyb3V0ZSkgIkdsb2JhbC9EZXRhaWwgUm91dGUiCi0gICAgICBzZXQgZGVzYyhwb3N0cm91dGUpICJQb3N0Um91dGUgT3B0aW1pemF0aW9uIgotICAgICAgc2V0IGRlc2MocG9zdHJvdXRlX2hvbGQpICJQb3N0Um91dGUgSG9sZCBGaXhpbmciCi0gICAgICBzZXQgZGVzYyhwb3N0cm91dGVfc2lfaG9sZCkgIlNJIEhvbGQgRml4aW5nIgotICAgICAgc2V0IGRlc2MocG9zdHJvdXRlX3NpKSAiU0kgT3B0aW1pemF0aW9uIgotICAgICAgc2V0IGRlc2Moc2lnbm9mZikgIlNpZ25vZmYgVGltaW5nIC8gVmVyaWZ5IgotCi0gICAgICBpZiB7JHZhcnMoZGVidWcpfSB7Ci0gICAgICAgICBwdXRzICI8REVCVUc+IEdlbmVyYXRpbmcgJHR5cGUgbWFrZWZpbGUgaW4gW2V4ZWMgcHdkXSBmb3Igc3RlcHMgJHN0ZXBzIC4uLiIKLSMgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMocGFydGl0aW9uX2RpcildfSB7Ci0jICAgICAgICAgICAgcHV0cyAidmFycyhwYXJ0aXRpb25fZGlyKSAtPiAkdmFycyhwYXJ0aXRpb25fZGlyKSIKLSMgICAgICAgICAgICBwdXRzICJbZmlsZSB0YWlsIFtmaWxlIGRpcm5hbWUgW2V4ZWMgcHdkXV1dID09ICR2YXJzKHBhcnRpdGlvbl9kaXIpIgotIyAgICAgICAgICAgIHB1dHMgIltmaWxlIGRpcm5hbWUgW2V4ZWMgcHdkXV0gPT0gW2ZpbGUgbm9ybWFsaXplICR2YXJzKHBhcnRpdGlvbl9kaXIpXSIKLSMgICAgICAgICB9Ci0gICAgICB9Ci0KLSAgICAgIHB1dHMgIi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iCi0gICAgICBwdXRzICI8RkY+IEdlbmVyYXRpbmcgJHR5cGUgTWFrZWZpbGUgZm9yIFtsbGVuZ3RoICRzdGVwc10gc3RlcHMiCi0gICAgICBwdXRzICI8RkY+IERpcmVjdG9yeTogW3B3ZF0iCi0gICAgICBwdXRzICI8RkY+ICAgICBTdGVwczogJHN0ZXBzIgotIyAgICAgIHB1dHMgIi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iCi0gICAgICAjIEJDTDogTm90ZSAtIHRoZSBNYWtlZmlsZSBuZWVkcyB0byBiZSBmaXhlZCB0byB0aGUgcnVuZGlyIGhlcmUsIGFzIGl0IHdpbGwgYmUgZHVtcGVkIGluIHRoZSBmaW5hbCBleHBvcnRlZAotICAgICAgIyB2YXJzLnRjbAotICAgICAgaWYgeyR2YXJzKG1ha2UpID09ICJhbGwifSB7Ci0gICAgICAgICBpZiB7KFtmaWxlIHRhaWwgW2ZpbGUgZGlybmFtZSBbZXhlYyBwd2RdXV0gPT0gJHZhcnMocGFydGl0aW9uX2RpcikpIHx8IFwKLSAgICAgICAgICAgICAoW2ZpbGUgdGFpbCBbZmlsZSBkaXJuYW1lIFtleGVjIHB3ZF1dXSA9PSAkdmFycyhwYXJ0aXRpb25fZGlyX3Bhc3MyKSl9IHsKLSAgICAgICAgICAgIHNldCB2YXJzKG1ha2VmaWxlX25hbWUpICJNYWtlZmlsZSIKLSAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBzZXQgdmFycyhtYWtlZmlsZV9uYW1lKSAiXCR2YXJzKHJ1bmRpcikvTWFrZWZpbGUiCi0gICAgICAgICB9Ci0gICAgICB9IGVsc2UgewotICAgICAgICAgaWYge1tmaWxlIHRhaWwgW2ZpbGUgZGlybmFtZSBbZXhlYyBwd2RdXV0gPT0gJHZhcnMocGFydGl0aW9uX2Rpcil9IHsKLSAgICAgICAgICAgIHNldCB2YXJzKG1ha2VmaWxlX25hbWUpICJNYWtlZmlsZS4kdmFycyhhcmd2KSIKLSAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBzZXQgdmFycyhtYWtlZmlsZV9uYW1lKSAiXCR2YXJzKHJ1bmRpcikvTWFrZWZpbGUuJHZhcnMoYXJndikiCi0gICAgICAgICB9Ci0gICAgICB9Ci0KLSAgICAgIHJlZ3N1YiAtYWxsICIgIiAkdmFycyhtYWtlZmlsZV9uYW1lKSAiXyIgdmFycyhtYWtlZmlsZV9uYW1lKQotCi0gICAgICBzZXQgb3AgW29wZW4gW3N1YnN0ICR2YXJzKG1ha2VmaWxlX25hbWUpXSB3XQotIyAgICAgIGlmIHskdmFycyhkZWJ1Zyl9IHsKLSMgICAgICAgICBwdXRzICI8REVCVUc+IE9wZW5pbmcgZmlsZTogJHZhcnMobWFrZWZpbGVfbmFtZSkgaW4gW2V4ZWMgcHdkXSAtPiAkb3AiCi0jICAgICAgfQotIyAgICAgIHNldCBzdG9wIHNpZ25vZmYKLSAgICAgIHNldCBzdG9wIFtsaW5kZXggJHZhcnMoc3RlcHMpIFtleHByIFtsbGVuZ3RoICR2YXJzKHN0ZXBzKV0tMV1dCi0gICAgICBpZiB7JHZhcnMocmMpICYmIFtpbmZvIGV4aXN0cyB2YXJzKHJjX3N0ZXBzKV19IHsKLSAgICAgICAgIHNldCBzdGFydCBbbGluZGV4ICR2YXJzKHJjX3N0ZXBzKSAwXQotICAgICAgfSBlbHNlIHsKLSAgICAgICAgIHNldCBzdGFydCBbbGluZGV4ICR2YXJzKHN0ZXBzKSAwXQotICAgICAgfQotCi0gICAgICBpZiB7JHR5cGUgPT0gImhpZXIifSB7Ci0gICAgICAgICBzZXQgdHlwZSB0b3BfZG93bgotICAgICAgICAgaWYgeyR2YXJzKGhpZXJfZmxvd190eXBlKSA9PSAiMnBhc3MifSB7Ci0gICAgICAgICAgICBzZXQgdHlwZSAycGFzcwotICAgICAgICAgICAgaWYgeyR2YXJzKGVuYWJsZV9mbGV4aWxtKX0gewotICAgICAgICAgICAgICBzZXQgdHlwZSBmbGV4aWxtCi0gICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0gICAgICB9Ci0gICAgICBpZiB7JHR5cGUgPT0gInVzZXIifSB7IHNldCB0eXBlIGZsYXQgfQotCi0KLSAgICAgIHN3aXRjaCAkdHlwZSB7Ci0KLSAgICAgICAgICJmbGF0IiB7Ci0gICAgICAgICAgICBzZXQgZXhlY3V0ZV9zdHJpbmcgW2pvaW4gJHZhcnMoZXhlY3V0ZV9zdHJpbmcpXQotICAgICAgICAgICAgcHV0cyAkb3AgIlZFUlNJT049MTcuMTAtcDAwM18xIgotICAgICAgICAgICAgcHV0cyAkb3AgIlZQQVRIPSRlbnYoVlBBVEgpIgotICAgICAgICAgICAgcHV0cyAkb3AgIlRDTFNIPVtsaW5kZXggJGV4ZWN1dGVfc3RyaW5nIDBdIgotICAgICAgICAgICAgcHV0cyAkb3AgIkdFTl9GTE9XPVs6OkZGOjpyZWxQYXRoVG8gW2ZpbGUgbm9ybWFsaXplIFtzdWJzdCBbbGluZGV4ICRleGVjdXRlX3N0cmluZyAxXV1dIFtmaWxlIG5vcm1hbGl6ZSBbc3Vic3QgJHZhcnMocnVuZGlyKV1dXSIKLSAgICAgICAgICAgIHB1dHMgJG9wICJTRVRVUF9QQVRIPVtyZWxQYXRoVG8gW2ZpbGUgbm9ybWFsaXplIFtzdWJzdCAkdmFycyhzZXR1cF9wYXRoKV1dIFtmaWxlIG5vcm1hbGl6ZSBbc3Vic3QgJHZhcnMocnVuZGlyKV1dXSIKLSAgICAgICAgICAgIHB1dHMgJG9wICJUT09MPSR2YXJzKG1ha2VfdG9vbCkiCi0gICAgICAgICAgICBwdXRzICRvcCAiQVJHUz0kdmFycyhtYWtlX3Rvb2xfYXJncykiCi0gICAgICAgICAgICBwdXRzICRvcCAiRlNURVBTPSRzdGVwcyIKLSAgICAgICAgICAgIGlmIHskdmFycyhyYyl9IHsKLSAgICAgICAgICAgICAgIHB1dHMgJG9wICJTWU5fVE9PTD0kdmFycyhtYWtlX3N5bl90b29sKSIKLSAgICAgICAgICAgICAgIHB1dHMgJG9wICJTWU5fQVJHUz0kdmFycyhtYWtlX3N5bl90b29sX2FyZ3MpIgotICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoc3luX2xvZ19kaXIpXX0gewotICAgICAgICAgICAgICAgICBwdXRzICRvcCAiU1lOX0xPRz1bcmVsUGF0aFRvIFtmaWxlIG5vcm1hbGl6ZSBbc3Vic3QgJHZhcnMoc3luX2xvZ19kaXIpXV0gW2ZpbGUgbm9ybWFsaXplICR2YXJzKHJ1bmRpcildXSIKLSAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYge1tyZWdleHAgJHZhcnMocGFydGl0aW9uX2RpcikgW2ZpbGUgdGFpbCBbZmlsZSBkaXJuYW1lIFtwd2RdXV1dfSB7Ci0gICAgICAgICAgICAgICBwdXRzICRvcCAiU0NSSVBUUz0kdmFycyhzY3JpcHRfZGlyKSIKLSAgICAgICAgICAgICAgIHB1dHMgJG9wICJMT0c9JHZhcnMobG9nX2RpcikiCi0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgIyBCQ0w6IEFkZGVkIHRoZSBmb2xsb3dpbmcgaW4gb3JkZXIgdG8gZml4IHRoZSBkaWZmZXJlbmNlIGluIGxvY2F0aW9uIGJldHdlZW4gdGhlIHJ1bmRpciBhbmQgc2NyaXB0cyBsb2NhdGlvbgotICAgICAgICAgICAgICAgcHV0cyAkb3AgIlNDUklQVFM9W3JlbFBhdGhUbyBbZmlsZSBub3JtYWxpemUgJHZhcnMoc2NyaXB0X2RpcildIFtmaWxlIG5vcm1hbGl6ZSAkdmFycyhydW5kaXIpXV0iCi0gICAgICAgICAgICAgICAjIEJDTDogQWRkZWQgc3Vic3QgdG8gcmVzb2x2ZSB2YXJzKHJ1bmRpcikKLSAgICAgICAgICAgICAgICMgQkNMOiBUaGVuIG1vZGlmaWVkIHRvIG1ha2UgcmVsYXRpdmUgdG8gdGhlIHJ1bmRpcgotICAgICAgICAgICAgICAgcHV0cyAkb3AgIkxPRz1bcmVsUGF0aFRvIFtmaWxlIG5vcm1hbGl6ZSBbc3Vic3QgJHZhcnMobG9nX2RpcildXSBbZmlsZSBub3JtYWxpemUgJHZhcnMocnVuZGlyKV1dIgotICAgICAgICAgICAgfQotICAgICAgICAgICAgcHV0cyAkb3AgIkJST1dTRVI9JHZhcnMobWFrZV9icm93c2VyKSIKLSAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhtYWtlX3VwZGF0ZSldfSB7Ci0gICAgICAgICAgICAgICBwdXRzICRvcCAiVVBEQVRFPSR2YXJzKG1ha2VfdXBkYXRlKSIKLSAgICAgICAgICAgIH0gZWxzZWlmIHtbZmlsZSB0YWlsIFtmaWxlIGRpcm5hbWUgW3B3ZF1dXSAhPSAiJHZhcnMocGFydGl0aW9uX2RpcikifSB7Ci0gICAgICAgICAgICAgICBwdXRzICRvcCAiVVBEQVRFPXllcyIKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHB1dHMgJG9wICIiCi0KLSAgICAgICAgICAgIHB1dHMgJG9wICJTVEVQUyA9IFtmb3JtYXQgInZlcnNpb24gc2V0dXAgJXMgZG9fY2xlYW51cCIgJHN0ZXBzXSIKLSAgICAgICAgICAgIHB1dHMgJG9wICJGRl9TVEFSVCA9ICRzdGFydCIKLSAgICAgICAgICAgIHB1dHMgJG9wICJGRl9TVE9QID0gJHN0b3AiCi0gICAgICAgICAgICBwdXRzICRvcCAiIgotICAgICAgICAgICAgcHV0cyAkb3AgW2Zvcm1hdCAiYWxsOiB2ZXJzaW9uIHNldHVwICVzIGRvX2NsZWFudXAiICRzdGVwc10KLSAgICAgICAgICAgIHB1dHMgJG9wICIiCi0gICAgICAgICAgICBwdXRzICRvcCAidmVyc2lvbjoiCi0gICAgICAgICAgICBwdXRzICRvcCAiXHRAZWNobyBcIlwjIEZvdW5kYXRpb24gRmxvd3MgVmVyc2lvbiBcJChWRVJTSU9OKVwiIgotICAgICAgICAgICAgcHV0cyAkb3AgIiIKLSAgICAgICAgICAgIHB1dHMgJG9wICJoZWxwOiIKLSAgICAgICAgICAgIHB1dHMgJG9wICJcdEBlY2hvIFwiPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XCIiCi0gICAgICAgICAgICBwdXRzICRvcCAiXHRAZWNobyBcIiAgICAgICAgICAgXCQoVkVSU0lPTikgIEZvdW5kYXRpb24gRmxvd3NcIiIKLSAgICAgICAgICAgIHB1dHMgJG9wICJcdEBlY2hvIFwiPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XCIiCi0gICAgICAgICAgICBwdXRzICRvcCAiXHRAZWNobyBcIiAgIE1ha2VmaWxlIFRhcmdldHNcIiIKLSAgICAgICAgICAgIHB1dHMgJG9wICJcdEBlY2hvIFwiPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XCIiCi0gICAgICAgICAgICBwdXRzICRvcCAiXHRAZWNobyBcIiAgICAgICAgICAgICAgIHNldHVwIDogU2V0dXAgUnVuIERpcmVjdG9yeVwiIgotICAgICAgICAgICAgaWYgeyR2YXJzKHJjKSAmJiBbaW5mbyBleGlzdHMgdmFycyhyY19zdGVwcyldfSB7Ci0gICAgICAgICAgICAgICBmb3JlYWNoIHN0ZXAgJHZhcnMocmNfc3RlcHMpIHsKLSAgICAgICAgICAgICAgICAgcHV0cyAkb3AgIlx0QGVjaG8gXCIgICAgICAgICAgICAgJHN0ZXAgOiAkZGVzYygkc3RlcClcIiIKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGZvcmVhY2ggc3RlcCAkc3RlcHMgewotIyAgICAgICAgICAgICAgcHV0cyAkb3AgIlx0QGVjaG8gXCIgICAgICAgICAgICAgJHN0ZXAgOiAkZGVzYygkc3RlcClcIiIKLSAgICAgICAgICAgICAgaWYgeyFbaW5mbyBleGlzdHMgZGVzYygkc3RlcCldfSB7Ci0gICAgICAgICAgICAgICAgc2V0IGRlc2MoJHN0ZXApICJObyBpbmZvcm1hdGlvbiBmb3IgdGhpcyBzdGVwIgotICAgICAgICAgICAgICB9IAotICAgICAgICAgICAgICBzZXQgdGVtcCBbZm9ybWF0ICIlKzIxcyA6ICUtNDVzIiAkc3RlcCAkZGVzYygkc3RlcCldCi0gICAgICAgICAgICAgIHB1dHMgJG9wICJcdEBlY2hvICR0ZW1wIgotICAgICAgICAgICAgfQotICAgICAgICAgICAgcHV0cyAkb3AgIlx0QGVjaG8gXCItLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cIiIKLSAgICAgICAgICAgIHB1dHMgJG9wICJcdEBlY2hvIFwiICAgICAgICAgICAgICAgICBhbGwgOiBBbGwgZGVzaWduIHN0ZXBzXCIiCi0gICAgICAgICAgICBwdXRzICRvcCAiXHRAZWNobyBcIiAgICAgICAgICAgICAgc2ltcGxlIDogU2luZ2xlIHNjcmlwdCAoYWxsIHN0ZXBzIGluIGEgc2luZ2xlIHNlc3Npb24pIC0gbm8gc3RvcC9zdGFydFwiIgotICAgICAgICAgICAgcHV0cyAkb3AgIlx0QGVjaG8gXCIgICAgICAgICAgICAgIHNpbmdsZSA6IFNpbmdsZSBzY3JpcHQgKGFsbCBzdGVwcyBpbiBhIHNpbmdsZSBzZXNzaW9uKVwiIgotICAgICAgICAgICAgcHV0cyAkb3AgIlx0QGVjaG8gXCI9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cIiIKLSAgICAgICAgICAgIHB1dHMgJG9wICJcdEBlY2hvIFwiICAgTWFrZWZpbGUgT3B0aW9uc1wiIgotICAgICAgICAgICAgcHV0cyAkb3AgIlx0QGVjaG8gXCI9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cIiIKLSAgICAgICAgICAgIHB1dHMgJG9wICJcdEBlY2hvIFwiICAgVlBBVEggOiBNYWtlIGRpcmVjdG9yeSAgICAoZGVmYXVsdCBtYWtlKVwiIgotICAgICAgICAgICAgaWYgeyR2YXJzKG5vdnVzKX0gIHsgCi0gICAgICAgICAgICAgICBwdXRzICRvcCAiXHRAZWNobyBcIiAgICBUT09MIDogSU5OT1ZVUyBleGVjdXRhYmxlIChkZWZhdWx0IGlubm92dXMpXCIiCi0gICAgICAgICAgICAgICBwdXRzICRvcCAiXHRAZWNobyBcIiAgICBBUkdTIDogSU5OT1ZVUyBhcmd1bWVudHMgIChkZWZhdWx0IC1ub3dpbiAtNjQpXCIiCi0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgcHV0cyAkb3AgIlx0QGVjaG8gXCIgICAgVE9PTCA6IElOTk9WVVMgZXhlY3V0YWJsZSAgICAgKGRlZmF1bHQgaW5ub3Z1cylcIiIKLSAgICAgICAgICAgICAgIHB1dHMgJG9wICJcdEBlY2hvIFwiICAgIEFSR1MgOiBJTk5PVlVTIGFyZ3VtZW50cyAgICAgIChkZWZhdWx0IC1ub3dpbiAtNjQpXCIiCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiB7JHZhcnMocmMpfSB7Ci0gICAgICAgICAgICAgICBwdXRzICRvcCAiXHRAZWNobyBcIlNZTl9UT09MIDogR0VOVVMgZXhlY3V0YWJsZSAgICAgIChkZWZhdWx0IGdlbnVzKVwiIgotICAgICAgICAgICAgICAgcHV0cyAkb3AgIlx0QGVjaG8gXCJTWU5fQVJHUyA6IEdFTlVTIGFyZ3VtZW50cyAgICAgICAoZGVmYXVsdCAtNjQpXCIiCi0gICAgICAgICAgICAgICBwdXRzICRvcCAiXHRAZWNobyBcIlNZTl9MT0cgIDogR0VOVVMgbG9nIGRpciAgICAgICAgIChkZWZhdWx0IFJDL2xvZ3MvPHN0YWdlPi5sb2cpXCIiCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiB7W2ZpbGUgdGFpbCBbZmlsZSBkaXJuYW1lIFtwd2RdXV0gIT0gIiR2YXJzKHBhcnRpdGlvbl9kaXIpIn0gewotICAgICAgICAgICAgICAgcHV0cyAkb3AgIlx0QGVjaG8gXCIgIFVQREFURSA6IFVwZGF0ZSBzY3JpcHRzICAgIChkZWZhdWx0IHllcylcIiIKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHB1dHMgJG9wICJcdEBlY2hvIFwiIFNDUklQVFMgOiBTY3JpcHQgZGlyZWN0b3J5ICAoZGVmYXVsdCAkdmFycyhzY3JpcHRfZGlyKSlcIiIKLSAgICAgICAgICAgIHB1dHMgJG9wICJcdEBlY2hvIFwiICAgICBMT0cgOiBMb2dmaWxlIGRpcmVjdG9yeSAoZGVmYXVsdCBbc3Vic3QgJHZhcnMobG9nX2RpcikpXVwiIgotICAgICAgICAgICAgcHV0cyAkb3AgIlx0QGVjaG8gXCI9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cIiIKLSAgICAgICAgICAgIHB1dHMgJG9wICIiCi0jICAgICAgICAgICAgaWYge1tmaWxlIHRhaWwgW2ZpbGUgZGlybmFtZSBbcHdkXV1dICE9ICIkdmFycyhwYXJ0aXRpb25fZGlyKSJ9IHsKLSMgICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMocGx1Z19maWxlcyldfSB7Ci0jICAgICAgICAgICAgICAgICAgcHV0cyAkb3AgImZsb3c6ICR2YXJzKGNvbmZpZ19maWxlcykgJHZhcnMocGx1Z19maWxlcykiCi0jICAgICAgICAgICAgICAgfSBlbHNlIHsKLSMgICAgICAgICAgICAgICAgICBwdXRzICRvcCAiZmxvdzogJHZhcnMoY29uZmlnX2ZpbGVzKSIKLSMgICAgICAgICAgICAgICB9Ci0jICAgICAgICAgICAgICAgcHV0cyAkb3AgIlx0QGlmIFxbIFwkKFVQREFURSkgPT0geWVzIF0gOyB0aGVuIFxcIgotIyAgICAgICAgICAgICAgIHB1dHMgJG9wICJcdFx0W2xpbmRleCAkZXhlY3V0ZV9zdHJpbmcgMF0gW2xpbmRleCAkZXhlY3V0ZV9zdHJpbmcgMV0gLW0gZmxhdCBhbGwgOyBcXCIKLSMgICAgICAgICAgICAgICBwdXRzICRvcCAiXHRcdC9iaW4vdG91Y2ggXCQoVlBBVEgpL1wkQCA7IFxcIgotIyAgICAgICAgICAgICAgIHB1dHMgJG9wICJcdGVsc2UgXFwiCi0jICAgICAgICAgICAgICAgcHV0cyAkb3AgIlx0XHRlY2hvICdTS0lQUElORyBGTE9XIFVQREFURSAuLi4nIDsgXFwiCi0jICAgICAgICAgICAgICAgcHV0cyAkb3AgIlx0ZmkiCi0jICAgICAgICAgICB9IGVsc2UgewotIyAgICAgICAgICAgICAgIHB1dHMgJG9wICJmbG93OiIKLSMgICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIHB1dHMgJG9wICJcbnNpbXBsZTogc2V0dXAiCi0gICAgICAgICAgICBpZiB7JHZhcnMoc3RlcF9hcmcpID09ICJhbGwifSB7Ci0gICAgICAgICAgICAgICBwdXRzICRvcCAiXHRGRl9TVE9QPVwkKEZGX1NUT1ApOyBWUEFUSD1cJChWUEFUSCk7IGV4cG9ydCBWUEFUSDsgXCQoVE9PTCkgLWluaXQgXCQoU0NSSVBUUykvSU5OT1ZVUy9ydW5fc2ltcGxlLnRjbCAtbG9nIFwkKExPRykvc2ltcGxlLmxvZyBcJChBUkdTKSIKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBwdXRzICRvcCAiXHRGRl9TVE9QPVwkKEZGX1NUT1ApOyBWUEFUSD1cJChWUEFUSCk7IGV4cG9ydCBWUEFUSDsgXCQoVE9PTCkgLWluaXQgXCQoU0NSSVBUUykvSU5OT1ZVUy9ydW5fc2ltcGxlLiR2YXJzKHN0ZXBfYXJnKS50Y2wgLWxvZyBcJChMT0cpL3NpbXBsZS4kdmFycyhzdGVwX2FyZykubG9nIFwkKEFSR1MpIgotICAgICAgICAgICAgfQotICAgICAgICAgICAgcHV0cyAkb3AgIiIKLSAgICAgICAgICAgIHB1dHMgJG9wICJcbnNpbmdsZTogc2V0dXAiCi0gICAgICAgICAgICBwdXRzICRvcCAiXHRGRl9TVE9QPVwkKEZGX1NUT1ApOyBWUEFUSD1cJChWUEFUSCk7IGV4cG9ydCBWUEFUSDsgXCQoVE9PTCkgLWluaXQgXCQoU0NSSVBUUykvSU5OT1ZVUy9ydW5fYWxsLnRjbCAtbG9nIFwkKExPRykvc2luZ2xlLmxvZyBcJChBUkdTKSIKLSAgICAgICAgICAgIHB1dHMgJG9wICIiCi0gICAgICAgICAgICBwdXRzICRvcCAic2V0dXA6IgotICAgICAgICAgICAgcHV0cyAkb3AgIlx0QC9iaW4vbWtkaXIgLXAgXCQoVlBBVEgpIFwkKExPRykiCi0gICAgICAgICAgICBwdXRzICRvcCAiXHRAL2Jpbi90b3VjaCBcJChWUEFUSCkvXCRAIgotICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGVuYWJsZV9sZGIpXSAmJiAkdmFycyhlbmFibGVfbGRiKX0gewotICAgICAgICAgICAgICAgcHV0cyAkb3AgIlx0XCQoVE9PTCkgLWluaXQgXCQoU0NSSVBUUykvSU5OT1ZVUy9ydW5fY29tcGlsZS50Y2wgLWxvZyBcJChMT0cpL2NvbXBpbGUubG9nIC13aW4gXCQoQVJHUykiCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBwdXRzICRvcCAiIiAKLQotCi0gICAgICAgICAgICBzZXQgcHJpb3Jfc3RlcCAic2V0dXAiCi0KLSAgICAgICAgICAgIHNldCBhcmdfbGlzdCAiLW4gIgotIyAgICAgICAgICAgIGlmIHskdmFycyhub3Z1cyl9IHsKLSMgICAgICAgICAgICAgICBhcHBlbmQgYXJnX2xpc3QgIi1OICIgCi0jICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgeyR2YXJzKHZlcmJvc2UpfSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgYXJnX2xpc3QgIi1WICIgCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiB7JHZhcnMoZWRpKX0gewotICAgICAgICAgICAgICAgYXBwZW5kIGFyZ19saXN0ICItZSAiIAotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgeyR2YXJzKHJjKX0gewotICAgICAgICAgICAgICAgYXBwZW5kIGFyZ19saXN0ICItciAiIAotICAgICAgICAgICAgfQotICAgICAgICAgICAgIyBSQyBTdGVwcywgaWYgYW55LCBhbHdheXMgZ28gZmlyc3QKLSAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhyY19zdGVwcyldICYmICR2YXJzKHJjX3N0ZXBzKSBuZSAiIn0gewotICAgICAgICAgICAgICBmb3JlYWNoIHN0ZXAgJHZhcnMocmNfc3RlcHMpIHsKLSAgICAgICAgICAgICAgICBwdXRzICRvcCAiJHN0ZXA6ICRwcmlvcl9zdGVwIgotICAgICAgICAgICAgICAgIHB1dHMgJG9wICJcdEBta2RpciAtcCBcJChTWU5fTE9HKTsiCi0gICAgICAgICAgICAgICAgaWYgeyFbcmVnZXhwICR2YXJzKHBhcnRpdGlvbl9kaXIpIFtmaWxlIHRhaWwgW2ZpbGUgZGlybmFtZSBbcHdkXV1dXX0gewotICAgICAgICAgICAgICAgICAgIHB1dHMgJG9wICJcdEBpZiBcWyBcIlwkKFVQREFURSlcIiA9IFwieWVzXCIgXSA7IHRoZW4gXFwiCi0gICAgICAgICAgICAgICAgICAgaWYge1tmaWxlIG5vcm1hbGl6ZSAuXSBuZSBbZmlsZSBub3JtYWxpemUgJHZhcnMocnVuZGlyKV19IHsKLSAgICAgICAgICAgICAgICAgICAgIHB1dHMgJG9wICJcdFx0Y2QgW3JlbFBhdGhUbyBbZmlsZSBub3JtYWxpemUgLl0gW2ZpbGUgbm9ybWFsaXplICR2YXJzKHJ1bmRpcildXTsgW2xpbmRleCAkZXhlY3V0ZV9zdHJpbmcgMF0gWzo6RkY6OnJlbFBhdGhUbyBbZmlsZSBub3JtYWxpemUgW3N1YnN0IFtsaW5kZXggJGV4ZWN1dGVfc3RyaW5nIDFdXV0gW2ZpbGUgbm9ybWFsaXplIFtzdWJzdCAkdmFycyhydW5kaXIpXV1dIC1tIGZsYXQgLWQgW3JlbFBhdGhUbyBbZmlsZSBub3JtYWxpemUgJHZhcnMoc2NyaXB0X2RpcildIFtmaWxlIG5vcm1hbGl6ZSAkdmFycyhydW5kaXIpXV0gLXYgJHZhcnModmVyc2lvbikgLXMgW3JlbFBhdGhUbyBbZmlsZSBub3JtYWxpemUgW3N1YnN0ICR2YXJzKHNldHVwX3BhdGgpXV0gW2ZpbGUgbm9ybWFsaXplIFtzdWJzdCAkdmFycyhydW5kaXIpXV1dIC15IG5vbmUgLXUgW3JlbFBhdGhUbyBbZmlsZSBub3JtYWxpemUgJHZhcnMocnVuZGlyKV0gW2ZpbGUgbm9ybWFsaXplIC5dXSAkYXJnX2xpc3QgJHN0ZXAgOyBcXCIKLQkJICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgIHB1dHMgJG9wICJcdFx0W2xpbmRleCAkZXhlY3V0ZV9zdHJpbmcgMF0gWzo6RkY6OnJlbFBhdGhUbyBbZmlsZSBub3JtYWxpemUgW3N1YnN0IFtsaW5kZXggJGV4ZWN1dGVfc3RyaW5nIDFdXV0gW2ZpbGUgbm9ybWFsaXplIFtzdWJzdCAkdmFycyhydW5kaXIpXV1dIC1tIGZsYXQgLWQgW3JlbFBhdGhUbyBbZmlsZSBub3JtYWxpemUgJHZhcnMoc2NyaXB0X2RpcildIFtmaWxlIG5vcm1hbGl6ZSAkdmFycyhydW5kaXIpXV0gLXYgJHZhcnModmVyc2lvbikgLXMgW3JlbFBhdGhUbyBbZmlsZSBub3JtYWxpemUgW3N1YnN0ICR2YXJzKHNldHVwX3BhdGgpXV0gW2ZpbGUgbm9ybWFsaXplIFtzdWJzdCAkdmFycyhydW5kaXIpXV1dIC15IG5vbmUgJGFyZ19saXN0ICRzdGVwIDsgXFwiCi0JCSAgIH0KLSAgICAgICAgICAgICAgICAgICBwdXRzICRvcCAiXHRmaSIKLSAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIHB1dHMgJG9wICJcdFZQQVRIPVwkKFZQQVRIKTsgZXhwb3J0IFZQQVRIOyBcJChTWU5fVE9PTCkgLWYgXCQoU0NSSVBUUykvR0VOVVMvJHN0ZXAudGNsIC1sb2dmaWxlIFwkKFNZTl9MT0cpLyRzdGVwLmxvZyAtY21kZmlsZSBcJChTWU5fTE9HKS8kc3RlcC5jbWQgXCQoU1lOX0FSR1MpIgotICAgICAgICAgICAgICAgIHNldCBwcmlvcl9zdGVwICRzdGVwCi0gICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgZm9yZWFjaCBzdGVwICRzdGVwcyB7Ci0gICAgICAgICAgICAgICMgVGhlc2Ugc3RlcHMgc2hvdWxkIG5vdCBhbHNvIGJlIHJjX3N0ZXBzOgotICAgICAgICAgICAgICBpZiB7IVtpbmZvIGV4aXN0cyB2YXJzKHJjX3N0ZXBzKV0gfHwgW2xzZWFyY2ggJHZhcnMocmNfc3RlcHMpICRzdGVwXSA9PSAiLTEifSB7Ci0gICAgICAgICAgICAgICAgIHB1dHMgJG9wICIkc3RlcDogJHByaW9yX3N0ZXAiCi0gICAgICAgICAgICAgICAgIHB1dHMgJG9wICJcdEBta2RpciAtcCBcJChMT0cpOyIKLSMgICAgICAgICAgICAgICAgcHV0cyAkb3AgIlx0QFwkKE1BS0UpIC1mIE1ha2VmaWxlIGZsb3ciCi0gICAgICAgICAgICAgICAgaWYgeyFbcmVnZXhwICR2YXJzKHBhcnRpdGlvbl9kaXIpIFtmaWxlIHRhaWwgW2ZpbGUgZGlybmFtZSBbcHdkXV1dXX0gewotICAgICAgICAgICAgICAgICAgIHB1dHMgJG9wICJcdEBpZiBcWyBcIlwkKFVQREFURSlcIiA9IFwieWVzXCIgXSA7IHRoZW4gXFwiCi0gICAgICAgICAgICAgICAgICAgICAjIGNkIHRvIGZmX2V4ZV9kaXIgaGVyZSBvbmx5IGlmIHZhcnMocnVuZGlyKSBuZSB2YXJzKGZmX2V4ZV9kaXIpCi0gICAgICAgICAgICAgICAgICAgICBpZiB7W2ZpbGUgbm9ybWFsaXplIC5dIG5lIFtmaWxlIG5vcm1hbGl6ZSAkdmFycyhydW5kaXIpXX0gewotICAgICAgICAgICAgICAgICAgICAgICBwdXRzICRvcCAiXHRcdGNkIFtyZWxQYXRoVG8gW2ZpbGUgbm9ybWFsaXplIC5dIFtmaWxlIG5vcm1hbGl6ZSAkdmFycyhydW5kaXIpXV07IFtsaW5kZXggJGV4ZWN1dGVfc3RyaW5nIDBdIFs6OkZGOjpyZWxQYXRoVG8gW2ZpbGUgbm9ybWFsaXplIFtzdWJzdCBbbGluZGV4ICRleGVjdXRlX3N0cmluZyAxXV1dIFtmaWxlIG5vcm1hbGl6ZSBbc3Vic3QgJHZhcnMocnVuZGlyKV1dXSAtbSAkdmFycyhtb2RlKSAtZCBbcmVsUGF0aFRvIFtmaWxlIG5vcm1hbGl6ZSAkdmFycyhzY3JpcHRfZGlyKV0gW2ZpbGUgbm9ybWFsaXplICR2YXJzKHJ1bmRpcildXSAtdiAkdmFycyh2ZXJzaW9uKSAtcyBbcmVsUGF0aFRvIFtmaWxlIG5vcm1hbGl6ZSBbc3Vic3QgJHZhcnMoc2V0dXBfcGF0aCldXSBbZmlsZSBub3JtYWxpemUgW3N1YnN0ICR2YXJzKHJ1bmRpcildXV0gLXkgbm9uZSAtdSBbcmVsUGF0aFRvIFtmaWxlIG5vcm1hbGl6ZSAkdmFycyhydW5kaXIpXSBbZmlsZSBub3JtYWxpemUgLl1dICRhcmdfbGlzdCAkc3RlcCA7IFxcIgotCQkgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgIHB1dHMgJG9wICJcdFx0W2xpbmRleCAkZXhlY3V0ZV9zdHJpbmcgMF0gWzo6RkY6OnJlbFBhdGhUbyBbZmlsZSBub3JtYWxpemUgW3N1YnN0IFtsaW5kZXggJGV4ZWN1dGVfc3RyaW5nIDFdXV0gW2ZpbGUgbm9ybWFsaXplIFtzdWJzdCAkdmFycyhydW5kaXIpXV1dIC1tICR2YXJzKG1vZGUpIC1kIFtyZWxQYXRoVG8gW2ZpbGUgbm9ybWFsaXplICR2YXJzKHNjcmlwdF9kaXIpXSBbZmlsZSBub3JtYWxpemUgJHZhcnMocnVuZGlyKV1dIC12ICR2YXJzKHZlcnNpb24pIC1zIFtyZWxQYXRoVG8gW2ZpbGUgbm9ybWFsaXplIFtzdWJzdCAkdmFycyhzZXR1cF9wYXRoKV1dIFtmaWxlIG5vcm1hbGl6ZSBbc3Vic3QgJHZhcnMocnVuZGlyKV1dXSAteSBub25lICRhcmdfbGlzdCAkc3RlcCA7IFxcIgotCQkgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICMgTmVlZCB0byBhZGQgY29kZSB0byBjZCBiYWNrIHRvIHJ1bmRpciBoZXJlCi0gICAgICAgICAgICAgICAgICAgcHV0cyAkb3AgIlx0ZmkiCi0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIGlmIHtbcmVnZXhwICJec3luIiAkc3RlcF19IHsgCi0gICAgICAgICAgICAgICAgICAgcHV0cyAkb3AgIlx0VlBBVEg9XCQoVlBBVEgpOyBleHBvcnQgVlBBVEg7IFwkKFNZTl9UT09MKSAtZiBcJChTQ1JJUFRTKS9HRU5VUy9ydW5fJHN0ZXAudGNsIC1sb2dmaWxlIFwkKExPRykvJHN0ZXAubG9nIC1jbWRmaWxlIFwkKExPRykvJHN0ZXAuY21kIFwkKFNZTl9BUkdTKSIKLSAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgIHB1dHMgJG9wICJcdFZQQVRIPVwkKFZQQVRIKTsgZXhwb3J0IFZQQVRIOyBcJChUT09MKSAtaW5pdCBcJChTQ1JJUFRTKS9JTk5PVlVTL3J1bl8kc3RlcC50Y2wgLWxvZyBcJChMT0cpLyRzdGVwLmxvZyAtb3ZlcndyaXRlIFwkKEFSR1MpIgotICAgICAgICAgICAgICAgIH0gCi0jICAgICAgICAgICAgICAgIHB1dHMgJG9wICJcdC9iaW4vdG91Y2ggXCQoVlBBVEgpLyRzdGVwXG4iCi0gICAgICAgICAgICAgICAgc2V0IHByaW9yX3N0ZXAgJHN0ZXAKLSAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotCi0jICAgICAgICAgICAgcHV0cyAkb3AgImh0bWw6IgotIyAgICAgICAgICAgIHB1dHMgJG9wICJcdEZGVkFSUz0kdmFycyhzY3JpcHRfZGlyKS92YXJzLnRjbDsgZXhwb3J0IEZGVkFSUzsgL3Vzci9iaW4vdGNsc2ggXCQoU0NSSVBUUykvSU5OT1ZVUy9nZW5faHRtbC50Y2wgLjsgY2QgJHZhcnMoaHRtbF9kaXIpOyBcJChCUk9XU0VSKSBmaWxlOmBwd2RgL2luZGV4Lmh0bWwiCi0jICAgICAgICAgICAgcHV0cyAkb3AgIiIKLSAgICAgICAgICAgIHB1dHMgJG9wICJkZWJ1Z18lOiIKLSAgICAgICAgICAgIHB1dHMgJG9wICJcdFZQQVRIPVwkKFZQQVRIKTsgZXhwb3J0IFNURVA9XCQqIDsgZXhwb3J0IFZQQVRIOyBcJChUT09MKSAtaW5pdCBcJChTQ1JJUFRTKS9JTk5PVlVTL3J1bl9kZWJ1Zy50Y2wgLWxvZyBcJChMT0cpL1wkQC5sb2cgLXdpbiBcJChBUkdTOi1ub3dpbj0pIgotICAgICAgICAgICAgcHV0cyAkb3AgIiIKLSAgICAgICAgICAgIHB1dHMgJG9wICJsZWNfJToiCi0gICAgICAgICAgICBwdXRzICRvcCAiXHRleHBvcnQgU1RFUD1cJCogOyBsZWMgLTY0IC14bCAtRG9maWxlIFwkKFNDUklQVFMpL0lOTk9WVVMvcnVuX2xlYy50Y2wgLU5PR3VpIC1MT0dmaWxlIFwkKExPRykvXCRALmxvZyIKLSAgICAgICAgICAgIHB1dHMgJG9wICIiCi0gICAgICAgICAgICBwdXRzICRvcCAiaGVscF8lOiIKLSAgICAgICAgICAgIHB1dHMgJG9wICJcdFtsaW5kZXggJGV4ZWN1dGVfc3RyaW5nIDBdIFwkKEdFTl9GTE9XKSAtSCBcJCoiCi0gICAgICAgICAgICBwdXRzICRvcCAiIgotIyAgICAgICAgICAgIHB1dHMgJG9wICIuUEhPTlk6IGNsZWFuIGh0bWwiCi0gICAgICAgICAgICBwdXRzICRvcCAiLlBIT05ZOiBjbGVhbiIKLSAgICAgICAgICAgIHB1dHMgJG9wICIiCi0gICAgICAgICAgICBwdXRzICRvcCAiY2xlYW46IgotICAgICAgICAgICAgcHV0cyAkb3AgIlx0L2Jpbi9tdiAqLnJwdCAkdmFycyhycHRfZGlyKSA7XFwiCi0gICAgICAgICAgICBwdXRzICRvcCAiXHQvYmluL3JtIC1mciBleHRMb2dEaXIqIF9fcXJjLmxvZyAqY3RzX3RyYWNlICoucnB0Lm9sZCAqZGVsZXRlKiBwbGFjZW1lbnRSZXBvcnRzKiAqLnJndWlkZSAqX21tbWMgXFxcblx0Kl9jb25zdHIucHQgLmNvbnN0ciogLkZFKiAucm91dGluZyogLnRpbWluZ19maWxlKiAudGRybG9nKiIKLSAgICAgICAgICAgIHB1dHMgJG9wICIiCi0gICAgICAgICAgICBwdXRzICRvcCAiZG9fY2xlYW51cDogc2lnbm9mZiIKLSAgICAgICAgICAgIHB1dHMgJG9wICJcdFwkKE1BS0UpIGNsZWFuIgotICAgICAgICAgICAgcHV0cyAkb3AgIlx0L2Jpbi90b3VjaCBcJChWUEFUSCkvXCRAIgotICAgICAgICAgICAgcHV0cyAkb3AgIiIKLSAgICAgICAgICAgIHB1dHMgJG9wICJyZXNldCA6IHZlcnNpb24iCi0gICAgICAgICAgICBwdXRzICRvcCAiXHQvYmluL3JtIC1mciBcJChWUEFUSCkvKiBleHRMb2dEaXIqIF9fcXJjLmxvZyAqY3RzX3RyYWNlICoucnB0Lm9sZCAqZGVsZXRlKiBwbGFjZW1lbnRSZXBvcnRzKiAqLnJndWlkZSAqX21tbWMiCi0gICAgICAgICAgICBwdXRzICRvcCAiXHRAZm9yIGZpbGUgaW4gXCQoU1RFUFMpIDsgXFwiCi0gICAgICAgICAgICBwdXRzICRvcCAiXHRkbyBcXCIKLSAgICAgICAgICAgIHB1dHMgJG9wICJcdFx0aWYgXFsgLXIgXCQoVlBBVEgpL1wkXCRmaWxlIFxdIDsgdGhlbiBcXCIKLSAgICAgICAgICAgIHB1dHMgJG9wICJcdFx0XHQvYmluL3JtIFwkKFZQQVRIKS9cJFwkZmlsZSA7IFxcIgotICAgICAgICAgICAgcHV0cyAkb3AgIlx0XHRmaSBcXCIKLSAgICAgICAgICAgIHB1dHMgJG9wICJcdGRvbmUiCi0gICAgICAgICAgICBwdXRzICRvcCAiIgotICAgICAgICAgICAgcHV0cyAkb3AgImJsb2NrXyU6IHNldHVwIgotICAgICAgICAgICAgcHV0cyAkb3AgIlx0QGlmIFxbIFwieFwkKlwiID0gXCJ4c2luZ2xlXCIgXF0gOyB0aGVuIFxcIgotICAgICAgICAgICAgcHV0cyAkb3AgIlx0XHRmZl9zdG9wPVwkKEZGX1NUT1ApOyBcXCIKLSAgICAgICAgICAgIHB1dHMgJG9wICJcdFx0dGFyZ2V0PVwiXCRAIChmcm9tOiBcJChGRl9TVEFSVCkgdG86IFwkKEZGX1NUT1ApKVwiOyBcXCIKLSAgICAgICAgICAgIHB1dHMgJG9wICJcdGVsc2UgXFwiCi0gICAgICAgICAgICBwdXRzICRvcCAiXHRcdGZmX3N0b3A9XCQqIDsgXFwiCi0gICAgICAgICAgICBwdXRzICRvcCAiXHRcdHRhcmdldD1cJEA7IFxcIgotICAgICAgICAgICAgcHV0cyAkb3AgIlx0Zmk7IFxcIgotICAgICAgICAgICAgcHV0cyAkb3AgIlx0aWYgXFsgLXIgXCQoVlBBVEgpLy5SVU5OSU5HIFxdIDsgdGhlbiBcXCIKLSAgICAgICAgICAgIHB1dHMgJG9wICJcdFx0ZWNobyBcIklORk86IEEgYnVpbGQgc2VlbXMgdG8gYmUgcnVubmluZyBhbHJlYWR5Li4uIGNoZWNrIFwkKFZQQVRIKS8uUlVOTklORyBmaWxlIGFuZCByZW1vdmUgdGhhdCBmaWxlIGlmIHRoZSBwcm9jZXNzIGlzIGRlYWRcIiA7IFxcIgotICAgICAgICAgICAgcHV0cyAkb3AgIlx0XHQvYmluL2hlYWQgLTEgIFwkKFZQQVRIKS8uUlVOTklORyA7IFxcIgotICAgICAgICAgICAgcHV0cyAkb3AgIlx0XHRleGl0IC0xIDsgXFwiCi0gICAgICAgICAgICBwdXRzICRvcCAiXHRlbHNlIFxcIgotICAgICAgICAgICAgcHV0cyAkb3AgIlx0XHQvYmluL3JtIC1mIFwkKFZQQVRIKS9ibG9ja19cJFwkXHtmZl9zdG9wXH0uRE9ORSBcJChWUEFUSCkvYmxvY2tfXCRcJFx7ZmZfc3RvcFx9LkZBSUxFRCBcJChWUEFUSCkvYmxvY2tfXCRcJFx7ZmZfc3RvcFx9LlBBU1MgOyBcXCIKLSAgICAgICAgICAgIHB1dHMgJG9wICJcdFx0KGVjaG8gXCIjIFN0YXJ0ZWQgYnVpbGRpbmcgXCRcJFx7dGFyZ2V0XH0gYXQgXCJgL2Jpbi9kYXRlYFwiIG9uIFwiYC9iaW4vaG9zdG5hbWVgXCIgUElEOiBcJFwkXCRcJFwiIDsgXCQoTUFLRSkgXCQoVEFSR0VUKSApICY+XCQoVlBBVEgpLy5SVU5OSU5HIDsgXFwiCi0gICAgICAgICAgICBwdXRzICRvcCAiXHRcdGlmIFxbIC1yIFwkKFZQQVRIKS9cJFwkXHtmZl9zdG9wXH0gXF0gOyB0aGVuIFxcIgotICAgICAgICAgICAgcHV0cyAkb3AgIlx0XHRcdGlmIFxbIC1yIFwkKFZQQVRIKS8uUlVOTklORyBcXSA7IHRoZW4gXFwiCi0gICAgICAgICAgICBwdXRzICRvcCAiXHRcdFx0XHQvYmluL212IFwkKFZQQVRIKS8uUlVOTklORyBcJChWUEFUSCkvYmxvY2tfXCRcJFx7ZmZfc3RvcFx9LlBBU1MgOyBcXCIKLSAgICAgICAgICAgIHB1dHMgJG9wICJcdFx0XHRcdC9iaW4vdG91Y2ggXCQoVlBBVEgpL2Jsb2NrX1wkXCRce2ZmX3N0b3BcfSA7IFxcIgotICAgICAgICAgICAgcHV0cyAkb3AgIlx0XHRcdFx0L2Jpbi90b3VjaCBcJChWUEFUSCkvYmxvY2tfXCRcJFx7ZmZfc3RvcFx9LkRPTkUgOyBcXCIKLSAgICAgICAgICAgIHB1dHMgJG9wICJcdFx0XHRlbHNlIFxcIgotICAgICAgICAgICAgcHV0cyAkb3AgIlx0XHRcdFx0ZWNobyBcIiMgU29tZXRoaW5nIGRpZCBub3Qgd29yayBwcm9wZXJseVwiID4gXCQoVlBBVEgpL2Jsb2NrX1wkXCRce2ZmX3N0b3BcfS5GQUlMRUQgOyBcXCIKLSAgICAgICAgICAgIHB1dHMgJG9wICJcdFx0XHRcdC9iaW4vdG91Y2ggXCQoVlBBVEgpL2Jsb2NrX1wkXCRce2ZmX3N0b3BcfS5ET05FIDsgXFwiCi0gICAgICAgICAgICBwdXRzICRvcCAiXHRcdFx0XHRleGl0IC0xOyBcXCIKLSAgICAgICAgICAgIHB1dHMgJG9wICJcdFx0XHRmaSA7IFxcIgotICAgICAgICAgICAgcHV0cyAkb3AgIlx0XHRlbHNlIFxcIgotICAgICAgICAgICAgcHV0cyAkb3AgIlx0XHRcdGlmIFxbIC1yIFwkKFZQQVRIKS8uUlVOTklORyBcXSA7IHRoZW4gXFwiCi0gICAgICAgICAgICBwdXRzICRvcCAiXHRcdFx0XHQvYmluL212IFwkKFZQQVRIKS8uUlVOTklORyBcJChWUEFUSCkvYmxvY2tfXCRcJFx7ZmZfc3RvcFx9LkZBSUxFRCA7IFxcIgotICAgICAgICAgICAgcHV0cyAkb3AgIlx0XHRcdGVsc2UgXFwiCi0gICAgICAgICAgICBwdXRzICRvcCAiXHRcdFx0XHRlY2hvIFwiIyBTb21ldGhpbmcgZGlkIG5vdCB3b3JrIHByb3Blcmx5XCIgPiBcJChWUEFUSCkvYmxvY2tfXCRcJFx7ZmZfc3RvcFx9LkZBSUxFRCA7IFxcIgotICAgICAgICAgICAgcHV0cyAkb3AgIlx0XHRcdGZpIDsgXFwiCi0gICAgICAgICAgICBwdXRzICRvcCAiXHRcdFx0L2Jpbi90b3VjaCBcJChWUEFUSCkvYmxvY2tfXCRcJFx7ZmZfc3RvcFx9LkRPTkUgOyBcXCIKLSAgICAgICAgICAgIHB1dHMgJG9wICJcdFx0XHRleGl0IC0xIDsgXFwiCi0gICAgICAgICAgICBwdXRzICRvcCAiXHRcdGZpIDsgXFwiCi0gICAgICAgICAgICBwdXRzICRvcCAiXHRmaSIKLQotICAgICAgICAgICAgaWYgeyR2YXJzKGdlbmVyYXRlX2Zsb3dfc3RlcHMpICYmIFtpbmZvIGV4aXN0cyB2YXJzKGZsb3dfc3RlcHMpXX0gewotICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGZsb3dfc3RlcHMsZmxhdCldfSB7Ci0gICAgICAgICAgICAgICAgICBzZXQgZnAxIFtvcGVuICR2YXJzKHNjcmlwdF9kaXIpL2Zsb3dfY29uZmlnLnRjbCB3XQotICAgICAgICAgICAgICAgICAgc2V0IGZwMiBbb3BlbiAkdmFycyhzY3JpcHRfZGlyKS9mbG93X3N0ZXBzLnRjbCB3XQotICAgICAgICAgICAgICAgICAgcHV0cyAkZnAxICJzZXRfZGIgZmxvd19kYXRhYmFzZV9kaXJlY3RvcnkgJHZhcnMoZGJzX2RpcikiCi0gICAgICAgICAgICAgICAgICBwdXRzICRmcDEgInNldF9kYiBmbG93X3JlcG9ydF9kaXJlY3RvcnkgJHZhcnMocnB0X2RpcikiCi0gICAgICAgICAgICAgICAgICBwdXRzICRmcDEgInNldF9kYiBmbG93X2xvZ19kaXJlY3RvcnkgJHZhcnMobG9nX2RpcikiCi0gICAgICAgICAgICAgICAgICBwdXRzICRmcDIgW3JlZ3N1YiAiY3JlYXRlX2Zsb3dfc3RlcCAtbmFtZSBpbml0ICIgJHZhcnMoZmxvd19zdGVwcyxmbGF0KSAiY3JlYXRlX2Zsb3dfc3RlcCAtbmFtZSBpbml0X2Rlc2lnbiAiXQotICAgICAgICAgICAgICAgICAgcHV0cyAkZnAxICJcbnNldF9kYiBmbG93X21haWxfdG8gW2V4ZWMgd2hvYW1pXSIKLSAgICAgICAgICAgICAgICAgIHB1dHMgJGZwMSAic2V0X2RiIGZsb3dfbWFpbF9vbl9lcnJvciB0cnVlXG4iCi0gICAgICAgICAgICAgICAgICBpZiB7JHZhcnModG9wKX0gewotICAgICAgICAgICAgICAgICAgICAgc2V0IHZhcnMoZmxvd19uYW1lKSB0b3AKLSAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICBzZXQgdmFycyhmbG93X25hbWUpIGJsb2NrCi0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICBpZiB7W2ZpbGUgZXhpc3RzICR2YXJzKGN3ZCkvLnBsdWdpbnNdfSB7Ci0gICAgICAgICAgICAgICAgICAgICBzZXQgaXAgW29wZW4gJHZhcnMoY3dkKS8ucGx1Z2lucyByXQotICAgICAgICAgICAgICAgICAgICAgd2hpbGUge1tnZXRzICRpcCBsaW5lXT49MH0geyAKLSAgICAgICAgICAgICAgICAgICAgICAgIHB1dHMgJGZwMSAkbGluZSAKLSAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgIGNsb3NlICRpcAotIyAgICAgICAgICAgICAgICAgICAgIGZpbGUgZGVsZXRlICR2YXJzKGN3ZCkvLnBsdWdpbnMgCi0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICBjbG9zZSAkZnAxCi0gICAgICAgICAgICAgICAgICBwdXRzICRmcDIgImNyZWF0ZV9mbG93X3N0ZXAgLW5hbWUgaW5pdF9mbG9vcnBsYW4geyB9IgotICAgICAgICAgICAgICAgICAgY2xvc2UgJGZwMgotICAgICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKHBhcnRpdGlvbl9saXN0KV19IHsKLSAgICAgICAgICAgICAgICAgICAgIGlmIHsoJHZhcnMoZGVzaWduKSA9PSBbbGluZGV4ICR2YXJzKHBhcnRpdGlvbl9saXN0KSAwXSkgfHwgJHZhcnModG9wKX0gewotICAgICAgICAgICAgICAgICAgICAgICAgc2V0IGhwIFtvcGVuICR2YXJzKHNjcmlwdF9kaXIpLy5oaWVyc3RlcHMudGNsIHddCi0gICAgICAgICAgICAgICAgICAgICAgICBpZiB7JHZhcnModG9wKX0gewotICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0IHRlbXAgW3JlZ3N1YiAtYWxsICJjcmVhdGVfZmxvd19zdGVwIC1uYW1lIGluaXQiICR2YXJzKGZsb3dfc3RlcHMsZmxhdCkgImNyZWF0ZV9mbG93X3N0ZXAgLW5hbWUgdG9wX2luaXQiXQotICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0IHRlbXAyIFtyZWdzdWIgLWFsbCAiY3JlYXRlX2Zsb3dfc3RlcCAtbmFtZSBwcmVjdHMiICR0ZW1wICJjcmVhdGVfZmxvd19zdGVwIC1uYW1lIHRvcF9wcmVjdHMiXQotICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0IHRlbXAzIFtyZWdzdWIgLWFsbCAiY3JlYXRlX2Zsb3dfc3RlcCAtbmFtZSBwbGFjZSIgJHRlbXAyICJjcmVhdGVfZmxvd19zdGVwIC1uYW1lIHRvcF9wbGFjZSJdCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBzZXQgdGVtcDQgW3JlZ3N1YiAtYWxsICJjcmVhdGVfZmxvd19zdGVwIC1uYW1lIGN0cyIgJHRlbXAzICJjcmVhdGVfZmxvd19zdGVwIC1uYW1lIHRvcF9jdHMiXQotICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0IHZhcnMoZmxvd19zdGVwcyxmbGF0KSBbcmVnc3ViIC1hbGwgImNyZWF0ZV9mbG93X3N0ZXAgLW5hbWUgc2lnbm9mZiIgJHRlbXA0ICJjcmVhdGVfZmxvd19zdGVwIC1uYW1lIHRvcF9zaWdub2ZmIl0KLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgIHB1dHMgJGhwICR2YXJzKGZsb3dfc3RlcHMsZmxhdCkKLSAgICAgICAgICAgICAgICAgICAgICAgIGNsb3NlICRocAotICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgdW5zZXQgdmFycyhmbG93X3N0ZXBzKQotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgeyR2YXJzKGdlbmVyYXRlX2Zsb3dfc3RlcHMpfSB7Ci0gICAgICAgICAgICAgICBpZiB7W2xzZWFyY2ggJHN0ZXBzICJhc3NlbWJsZSJdICE9IC0xfSB7Ci0gICAgICAgICAgICAgICAgICBzZXQgc3RlcHMgW2xyZXBsYWNlICRzdGVwcyBlbmQgZW5kXQotICAgICAgICAgICAgICAgfSAKLSAgICAgICAgICAgICAgIHNldCBmcCBbb3BlbiBydW5fZmxvdy50Y2wgd10KLSAgICAgICAgICAgICAgIHB1dHMgJGZwICJzb3VyY2UgJHZhcnMoc2NyaXB0X2RpcikvZmxvd19zdGVwcy50Y2wiCi0gICAgICAgICAgICAgICBwdXRzICRmcCAiaWYgXHtcW2ZpbGUgZXhpc3RzICR2YXJzKHNjcmlwdF9kaXIpL3BsdWdfc3RlcHMudGNsXF1cfSBceyIKLSAgICAgICAgICAgICAgIHB1dHMgJGZwICIgIHNvdXJjZSAkdmFycyhzY3JpcHRfZGlyKS9wbHVnX3N0ZXBzLnRjbCIKLSAgICAgICAgICAgICAgIHB1dHMgJGZwICJcfSIKLSAgICAgICAgICAgICAgIGlmIHtbZmlsZSB0YWlsIFtwd2RdXSA9PSAkdmFycyh0b3BfY2VsbCl9IHsKLSAgICAgICAgICAgICAgICAgICBpZiB7W2ZpbGUgdGFpbCBbZmlsZSBkaXJuYW1lIFtwd2RdXV0gPT0gIiR2YXJzKHBhcnRpdGlvbl9kaXIpIn0gewotICAgICAgICAgICAgICAgICAgICAgIHNldCB2YXJzKGZsb3dfbmFtZSkgInRvcCIKLSAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgIHNldCB2YXJzKGZsb3dfbmFtZSkgInRvcF9wYXNzMiIKLSAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICBzZXQgdG9wX3N0ZXBzICIgJHN0ZXBzIgotICAgICAgICAgICAgICAgICAgZm9yZWFjaCBzICJpbml0IHBsYWNlIHByZWN0cyBjdHMgc2lnbm9mZiIgewotICAgICAgICAgICAgICAgICAgICAgc2V0IHRlbXAgW3JlZ3N1YiAiICRzIiAkdG9wX3N0ZXBzICIgdG9wXyRzIl0KLSAgICAgICAgICAgICAgICAgICAgIHNldCB0b3Bfc3RlcHMgJHRlbXAgCi0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgcHV0cyAkZnAgImNyZWF0ZV9mbG93IFxcXG4gICAtbmFtZSAkdmFycyhmbG93X25hbWUpXFxcbiAgIC10b29sICR2YXJzKG1ha2VfdG9vbClcXFxuICAgLXRvb2xfb3B0aW9ucyB7LWxvZyAkdmFycyhmbG93X25hbWUpLmxvZ31cXFxuICAgXFtsaXN0ICR0b3Bfc3RlcHNcXVxuIgotICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgIHNldCBkaXIgW2ZpbGUgdGFpbCBbcHdkXV0KLSAgICAgICAgICAgICAgICAgIHNldCBwZGlyIFtmaWxlIHRhaWwgW2ZpbGUgdGFpbCAkZGlyXV0KLSAgICAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhwYXJ0aXRpb25fbGlzdCldfSB7Ci0gICAgICAgICAgICAgICAgICAgICBpZiB7KFtmaWxlIHRhaWwgW3B3ZF1dID09IFtsaW5kZXggJHZhcnMocGFydGl0aW9uX2xpc3QpIDBdKX0gewotICAgICAgICAgICAgICAgICAgICAgICAgaWYge1tmaWxlIHRhaWwgW2ZpbGUgZGlybmFtZSBbcHdkXV1dID09ICIkdmFycyhwYXJ0aXRpb25fZGlyKSJ9IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldCB2YXJzKGZsb3dfbmFtZSkgImJsb2NrIgotICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICBzZXQgdmFycyhmbG93X25hbWUpICJibG9ja19wYXNzMiIKLSAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICAgcHV0cyAkZnAgImNyZWF0ZV9mbG93IFxcXG4gICAtbmFtZSAkdmFycyhmbG93X25hbWUpXFxcbiAgIC10b29sICR2YXJzKG1ha2VfdG9vbClcXFxuICAgLXRvb2xfb3B0aW9ucyB7LWxvZyAkdmFycyhmbG93X25hbWUpLmxvZ31cXFxuICAgXFtsaXN0ICRzdGVwc1xdXG4iCi0gICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgaWYgeyEkdmFycyhyYyl9IHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHNldCB2YXJzKGZsb3dfbmFtZSkgImlubm92dXMiCi0gICAgICAgICAgICAgICAgICAgICAgICBwdXRzICRmcCAic291cmNlICR2YXJzKHNjcmlwdF9kaXIpL2Zsb3dfY29uZmlnLnRjbCIKLSAgICAgICAgICAgICAgICAgICAgICAgIHB1dHMgJGZwICJjcmVhdGVfZmxvdyBcXFxuICAgLW5hbWUgJHZhcnMoZmxvd19uYW1lKVxcXG4gICAtdG9vbCAkdmFycyhtYWtlX3Rvb2wpXFxcbiAgIC10b29sX29wdGlvbnMgey1sb2cgJHZhcnMoZmxvd19uYW1lKS5sb2d9XFxcbiAgIFxbbGlzdCAkc3RlcHNcXVxuIgotICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHNldCByY19zdGVwcyBbbGlzdF0KLSAgICAgICAgICAgICAgICAgICAgICAgIHNldCBlZGlfc3RlcHMgW2xpc3RdCi0gICAgICAgICAgICAgICAgICAgICAgICBmb3JlYWNoIHMgJHN0ZXBzIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIHtbcmVnZXhwIHN5bl8gJHNdfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXBwZW5kIHJjX3N0ZXBzICRzCi0gICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFwcGVuZCBlZGlfc3RlcHMgJHMKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgIHNldCB2YXJzKGZsb3dfbmFtZSkgImdlbnVzIgotIyAgICAgICAgICAgICAgICAgICAgICAgIHB1dHMgJGZwICJzb3VyY2UgJHZhcnMoc2NyaXB0X2RpcikvZmxvd19zdGVwcy50Y2wiCi0gICAgICAgICAgICAgICAgICAgICAgICBwdXRzICRmcCAic291cmNlICR2YXJzKHNjcmlwdF9kaXIpL2Zsb3dfY29uZmlnLnRjbCIKLSAgICAgICAgICAgICAgICAgICAgICAgIHB1dHMgJGZwICJjcmVhdGVfZmxvdyBcXFxuICAgLW5hbWUgJHZhcnMoZmxvd19uYW1lKVxcXG4gICAtdG9vbCAkdmFycyhtYWtlX3N5bl90b29sKVxcXG4gICAtdG9vbF9vcHRpb25zIHstbG9nICR2YXJzKGZsb3dfbmFtZSkubG9nfVxcXG4gICBcW2xpc3QgJHJjX3N0ZXBzXF1cbiIKLSAgICAgICAgICAgICAgICAgICAgICAgIHNldCB2YXJzKGZsb3dfbmFtZSkgImlubm92dXMiCi0gICAgICAgICAgICAgICAgICAgICAgICBwdXRzICRmcCAiY3JlYXRlX2Zsb3cgXFxcbiAgIC1uYW1lICR2YXJzKGZsb3dfbmFtZSlcXFxuICAgLXRvb2wgJHZhcnMobWFrZV90b29sKVxcXG4gICAtdG9vbF9vcHRpb25zIHstbG9nICR2YXJzKGZsb3dfbmFtZSkubG9nfVxcXG4gICBcW2xpc3QgJGVkaV9zdGVwc1xdXG4iCi0gICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICBjbG9zZSAkZnAKLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0KLSAgICAgICAgICJib3R0b21fdXAiIHsKLSAgICAgICAgICAgIHB1dHMgJG9wICJWRVJTSU9OPTE3LjEwLXAwMDNfMSIKLSAgICAgICAgICAgIHB1dHMgJG9wICJWUEFUSD0kZW52KFZQQVRIKSIKLSAgICAgICAgICAgIHB1dHMgJG9wICJUT09MPSR2YXJzKG1ha2VfdG9vbCkiCi0gICAgICAgICAgICBwdXRzICRvcCAiU0NSSVBUUz0kdmFycyhzY3JpcHRfZGlyKSIKLSAgICAgICAgICAgIHB1dHMgJG9wICJMT0c9JHZhcnMobG9nX2RpcikiCi0gICAgICAgICAgICBwdXRzICRvcCAiQlJPV1NFUj0kdmFycyhtYWtlX2Jyb3dzZXIpIgotICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKG1ha2VfdXBkYXRlKV19IHsKLSAgICAgICAgICAgICAgIHB1dHMgJG9wICJVUERBVEU9JHZhcnMobWFrZV91cGRhdGUpIgotICAgICAgICAgICAgfSBlbHNlaWYge1tmaWxlIHRhaWwgW2ZpbGUgZGlybmFtZSBbcHdkXV1dICE9ICIkdmFycyhwYXJ0aXRpb25fZGlyKSJ9IHsKLSAgICAgICAgICAgICAgIHB1dHMgJG9wICJVUERBVEU9eWVzIgotICAgICAgICAgICAgfQotICAgICAgICAgICAgcHV0cyAkb3AgIiIKLSAgICAgICAgICAgIHB1dHMgJG9wICJBUkdTPSR2YXJzKG1ha2VfdG9vbF9hcmdzKSIKLSAgICAgICAgICAgIHB1dHMgJG9wICJTVEVQUyA9IFtmb3JtYXQgInZlcnNpb24gc2V0dXAgJXMgZG9fY2xlYW51cCIgJHN0ZXBzXSIKLSAgICAgICAgICAgIHB1dHMgJG9wICJGRl9TVE9QID0gc2lnbm9mZiIKLSAgICAgICAgICAgIHB1dHMgJG9wICJGRl9TVEFSVCA9IGluaXQiCi0gICAgICAgICAgICBwdXRzICRvcCAiIgotICAgICAgICAgICAgcHV0cyAkb3AgW2Zvcm1hdCAiYWxsOiB2ZXJzaW9uIHNldHVwICVzIGRvX2NsZWFudXAiICRzdGVwc10KLSAgICAgICAgICAgIHB1dHMgJG9wICIiCi0gICAgICAgICAgICBwdXRzICRvcCAidmVyc2lvbjoiCi0gICAgICAgICAgICBwdXRzICRvcCAiXHRAZWNobyBcIlwjIEZvdW5kYXRpb24gRmxvd3MgVmVyc2lvbiBcJChWRVJTSU9OKVwiIgotICAgICAgICAgICAgcHV0cyAkb3AgIiIKLSAgICAgICAgICAgIHB1dHMgJG9wICJoZWxwOiIKLSAgICAgICAgICAgIHB1dHMgJG9wICJcdEBlY2hvIFwiPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XCIiCi0gICAgICAgICAgICBwdXRzICRvcCAiXHRAZWNobyBcIiAgICAgICAgICAgXCQoVkVSU0lPTikgIEZvdW5kYXRpb24gRmxvd3NcIiIKLSAgICAgICAgICAgIHB1dHMgJG9wICJcdEBlY2hvIFwiPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XCIiCi0gICAgICAgICAgICBwdXRzICRvcCAiXHRAZWNobyBcIiAgIE1ha2VmaWxlIFRhcmdldHNcIiIKLSAgICAgICAgICAgIHB1dHMgJG9wICJcdEBlY2hvIFwiPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XCIiCi0gICAgICAgICAgICBwdXRzICRvcCAiXHRAZWNobyBcIiAgICAgICAgICAgICAgIHNldHVwIDogU2V0dXAgUnVuIERpcmVjdG9yeVwiIgotICAgICAgICAgICAgcHV0cyAkb3AgIlx0QGVjaG8gXCIgICAgICAgICAgICAgICAgaW5pdCA6IENyZWF0ZSBJbml0aWFsIERhdGFiYXNlXCIiCi0gICAgICAgICAgICBwdXRzICRvcCAiXHRAZWNobyBcIiAgICAgICAgICAgICAgIHBsYWNlIDogQ2VsbCBQbGFjZW1lbnRcIiIKLSAgICAgICAgICAgIHB1dHMgJG9wICJcdEBlY2hvIFwiICAgICAgICAgICAgICBwcmVjdHMgOiBQcmVDVFMgT3B0aW1pemF0aW9uXCIiCi0gICAgICAgICAgICBwdXRzICRvcCAiXHRAZWNobyBcIiAgICAgICAgICAgICAgICAgY3RzIDogQ2xvY2sgVHJlZSBTeW50aGVzaXNcIiIKLSAgICAgICAgICAgIHB1dHMgJG9wICJcdEBlY2hvIFwiICAgICAgICAgICAgIHBvc3RjdHMgOiBQb3N0Q1RTIE9wdGltaXphdGlvblwiIgotICAgICAgICAgICAgcHV0cyAkb3AgIlx0QGVjaG8gXCIgICAgICAgIHBvc3RjdHNfaG9sZCA6IFBvc3RDVFMgT29sZCBGaXhpbmdcIiIKLSAgICAgICAgICAgIHB1dHMgJG9wICJcdEBlY2hvIFwiICAgICAgICAgICAgICAgcm91dGUgOiBHbG9iYWwvRGV0YWlsIFJvdXRlXCIiCi0gICAgICAgICAgICBwdXRzICRvcCAiXHRAZWNobyBcIiAgICAgICAgICAgcG9zdHJvdXRlIDogUG9zdFJvdXRlIE9wdGltaXphdGlvblwiIgotICAgICAgICAgICAgcHV0cyAkb3AgIlx0QGVjaG8gXCIgICAgICBwb3N0cm91dGVfaG9sZCA6IFBvc3RSb3V0ZSBIb2xkIEZpeGluZ1wiIgotICAgICAgICAgICAgcHV0cyAkb3AgIlx0QGVjaG8gXCIgICBwb3N0cm91dGVfc2lfaG9sZCA6IFNJIEhvbGQgRml4aW5nXCIiCi0gICAgICAgICAgICBwdXRzICRvcCAiXHRAZWNobyBcIiAgICAgICAgcG9zdHJvdXRlX3NpIDogU0kgT3B0aW1pemF0aW9uXCIiCi0gICAgICAgICAgICBwdXRzICRvcCAiXHRAZWNobyBcIiAgICAgICAgICAgICBzaWdub2ZmIDogU2lnbm9mZiBUaW1pbmcgLyBWZXJpZnlcIiIKLSAgICAgICAgICAgIHB1dHMgJG9wICJcdEBlY2hvIFwiICAgICAgICAgICAgYXNzZW1ibGUgOiBEZXNpZ24gQXNzZW1ibHkgLyBWZXJpZnlcIiIKLSAgICAgICAgICAgIHB1dHMgJG9wICJcdEBlY2hvIFwiLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXCIiCi0gICAgICAgICAgICBwdXRzICRvcCAiXHRAZWNobyBcIiAgICAgICAgICAgICAgICAgYWxsIDogQWxsIGRlc2lnbiBzdGVwc1wiIgotICAgICAgICAgICAgcHV0cyAkb3AgIlx0QGVjaG8gXCIgICAgICAgICAgICAgIHNpbXBsZSA6IFNpbmdsZSBzY3JpcHQgKGFsbCBzdGVwcyBpbiBhIHNpbmdsZSBzZXNzaW9uKSAtIG5vIHN0b3Avc3RhcnRcIiIKLSAgICAgICAgICAgIHB1dHMgJG9wICJcdEBlY2hvIFwiICAgICAgICAgICAgICBzaW5nbGUgOiBTaW5nbGUgc2NyaXB0IChhbGwgc3RlcHMgaW4gYSBzaW5nbGUgc2Vzc2lvbilcIiIKLSAgICAgICAgICAgIHB1dHMgJG9wICJcdEBlY2hvIFwiPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XCIiCi0gICAgICAgICAgICBwdXRzICRvcCAiXHRAZWNobyBcIiAgIE1ha2VmaWxlIE9wdGlvbnNcIiIKLSAgICAgICAgICAgIHB1dHMgJG9wICJcdEBlY2hvIFwiPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XCIiCi0gICAgICAgICAgICBwdXRzICRvcCAiXHRAZWNobyBcIiAgIFZQQVRIIDogTWFrZSBkaXJlY3RvcnkgICAgKGRlZmF1bHQgbWFrZSlcIiIKLSAgICAgICAgICAgIGlmIHskdmFycyhub3Z1cyl9IHsKLSAgICAgICAgICAgICAgIHB1dHMgJG9wICJcdEBlY2hvIFwiICAgIFRPT0wgOiBJTk5PVlVTIGV4ZWN1dGFibGUgKGRlZmF1bHQgaW5ub3Z1cylcIiIKLSAgICAgICAgICAgICAgIHB1dHMgJG9wICJcdEBlY2hvIFwiICAgIEFSR1MgOiBJTk5PVlVTIGFyZ3VtZW50cyAgKGRlZmF1bHQgLW5vd2luIC02NClcIiIKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBwdXRzICRvcCAiXHRAZWNobyBcIiAgICBUT09MIDogSU5OT1ZVUyBleGVjdXRhYmxlICAgICAoZGVmYXVsdCBpbm5vdnVzKVwiIgotICAgICAgICAgICAgICAgcHV0cyAkb3AgIlx0QGVjaG8gXCIgICAgQVJHUyA6IElOTk9WVVMgYXJndW1lbnRzICAgICAgKGRlZmF1bHQgLW5vd2luIC02NClcIiIKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIHtbZmlsZSB0YWlsIFtmaWxlIGRpcm5hbWUgW3B3ZF1dXSAhPSAiJHZhcnMocGFydGl0aW9uX2RpcikifSB7Ci0gICAgICAgICAgICAgICBwdXRzICRvcCAiXHRAZWNobyBcIiAgVVBEQVRFIDogVXBkYXRlIHNjcmlwdHMgICAgKGRlZmF1bHQgeWVzKVwiIgotICAgICAgICAgICAgfQotIyAgICAgICAgICAgIHB1dHMgJG9wICJcdEBlY2hvIFwiIEJST1dTRVIgOiBIVE1MIGJyb3dzZXIgICAgICAoZGVmYXVsdCBuZXRzY2FwZSlcIiIKLSAgICAgICAgICAgIHB1dHMgJG9wICJcdEBlY2hvIFwiIFNDUklQVFMgOiBTY3JpcHQgZGlyZWN0b3J5ICAoZGVmYXVsdCAkdmFycyhzY3JpcHRfZGlyKSlcIiIKLSAgICAgICAgICAgIHB1dHMgJG9wICJcdEBlY2hvIFwiICAgICBMT0cgOiBMb2dmaWxlIGRpcmVjdG9yeSAoZGVmYXVsdCAkdmFycyhsb2dfZGlyKSlcIiIKLSAgICAgICAgICAgIHB1dHMgJG9wICJcdEBlY2hvIFwiPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XCIiCi0gICAgICAgICAgICBwdXRzICRvcCAiIgotIyAgICAgICAgICAgIGlmIHtbZmlsZSB0YWlsIFtmaWxlIGRpcm5hbWUgW3B3ZF1dXSAhPSAiJHZhcnMocGFydGl0aW9uX2RpcikifSB7Ci0jICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKHBsdWdfZmlsZXMpXX0gewotIyAgICAgICAgICAgICAgICAgIHB1dHMgJG9wICJmbG93OiAkdmFycyhjb25maWdfZmlsZXMpICR2YXJzKHBsdWdfZmlsZXMpIgotIyAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0jICAgICAgICAgICAgICAgICAgcHV0cyAkb3AgImZsb3c6ICR2YXJzKGNvbmZpZ19maWxlcykiCi0jICAgICAgICAgICAgICAgfQotIyAgICAgICAgICAgICAgIHB1dHMgJG9wICJcdEBpZiBcWyBcJChVUERBVEUpID09IHllcyBdIDsgdGhlbiBcXCIKLSMgICAgICAgICAgICAgICBwdXRzICRvcCAiXHRcdFtsaW5kZXggJGV4ZWN1dGVfc3RyaW5nIDBdIFtsaW5kZXggJGV4ZWN1dGVfc3RyaW5nIDFdIC1tIGZsYXQgYWxsIDsgXFwiCi0jICAgICAgICAgICAgICAgcHV0cyAkb3AgIlx0XHQvYmluL3RvdWNoIFwkKFZQQVRIKS9cJEAgOyBcXCIKLSMgICAgICAgICAgICAgICBwdXRzICRvcCAiXHRlbHNlIFxcIgotIyAgICAgICAgICAgICAgIHB1dHMgJG9wICJcdFx0ZWNobyAnU0tJUFBJTkcgRkxPVyBVUERBVEUgLi4uJyA7IFxcIgotIyAgICAgICAgICAgICAgIHB1dHMgJG9wICJcdGZpIgotIyAgICAgICAgICAgIH0gZWxzZSB7Ci0jICAgICAgICAgICAgICAgcHV0cyAkb3AgImZsb3c6IgotIyAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgcHV0cyAkb3AgIlxuc2ltcGxlOiBzZXR1cCIKLSAgICAgICAgICAgIGlmIHskdmFycyhzdGVwX2FyZykgPT0gImFsbCJ9IHsKLSAgICAgICAgICAgICAgIHB1dHMgJG9wICJcdEZGX1NUT1A9XCQoRkZfU1RPUCk7IFZQQVRIPVwkKFZQQVRIKTsgZXhwb3J0IFZQQVRIOyBcJChUT09MKSAtaW5pdCBcJChTQ1JJUFRTKS9JTk5PVlVTL3J1bl9zaW1wbGUudGNsIC1sb2cgXCQoTE9HKS9zaW1wbGUubG9nIFwkKEFSR1MpIgotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIHB1dHMgJG9wICJcdEZGX1NUT1A9XCQoRkZfU1RPUCk7IFZQQVRIPVwkKFZQQVRIKTsgZXhwb3J0IFZQQVRIOyBcJChUT09MKSAtaW5pdCBcJChTQ1JJUFRTKS9JTk5PVlVTL3J1bl9zaW1wbGUuJHZhcnMoc3RlcF9hcmcpLnRjbCAtbG9nIFwkKExPRykvc2ltcGxlLiR2YXJzKHN0ZXBfYXJnKS5sb2cgXCQoQVJHUykiCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBwdXRzICRvcCAiIgotICAgICAgICAgICAgcHV0cyAkb3AgIlxuc2luZ2xlOiBzZXR1cCIKLSAgICAgICAgICAgIHB1dHMgJG9wICJcdEZGX1NUT1A9XCQoRkZfU1RPUCk7IFZQQVRIPVwkKFZQQVRIKTsgZXhwb3J0IFZQQVRIOyBcJChUT09MKSAtaW5pdCBcJChTQ1JJUFRTKS9JTk5PVlVTL3J1bl9hbGwudGNsIC1sb2cgXCQoTE9HKS9zaW5nbGUubG9nIFwkKEFSR1MpIgotICAgICAgICAgICAgcHV0cyAkb3AgIiIKLSAgICAgICAgICAgIHB1dHMgJG9wICJzZXR1cDoiCi0gICAgICAgICAgICBwdXRzICRvcCAiXHRAL2Jpbi9ta2RpciAtcCBcJChWUEFUSCkgXCQoTE9HKSIKLSAgICAgICAgICAgIHB1dHMgJG9wICJcdEAvYmluL3RvdWNoIFwkKFZQQVRIKS9cJEAiCi0gICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoZW5hYmxlX2xkYildICYmICR2YXJzKGVuYWJsZV9sZGIpfSB7Ci0gICAgICAgICAgICAgICBwdXRzICRvcCAiXHRcJChUT09MKSAtaW5pdCBcJChTQ1JJUFRTKS9JTk5PVlVTL3J1bl9jb21waWxlLnRjbCAtbG9nIFwkKExPRykvY29tcGlsZS5sb2cgLXdpbiBcJChBUkdTKSIKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHB1dHMgJG9wICIiIAotCi0gICAgICAgICAgICBzZXQgcHJpb3Jfc3RlcCAic2V0dXAiCi0gICAgICAgICAgICBmb3JlYWNoIHN0ZXAgJHN0ZXBzIHsKLSAgICAgICAgICAgICAgIHB1dHMgJG9wICIkc3RlcDogJHByaW9yX3N0ZXAiCi0jICAgICAgICAgICAgICAgcHV0cyAkb3AgIlx0QFwkKE1BS0UpIC1mIE1ha2VmaWxlIGZsb3ciCi0gICAgICAgICAgICAgICBpZiB7W2ZpbGUgZGlybmFtZSBbcHdkXV0gIT0gIiR2YXJzKHBhcnRpdGlvbl9kaXIpIn0gewotICAgICAgICAgICAgICAgICAgcHV0cyAkb3AgIlx0QGlmIFxbIFwkKFVQREFURSkgPT0geWVzIF0gOyB0aGVuIFxcIgotICAgICAgICAgICAgICAgICAgcHV0cyAkb3AgIlx0XHRbbGluZGV4ICRleGVjdXRlX3N0cmluZyAwXSBbbGluZGV4ICRleGVjdXRlX3N0cmluZyAxXSAtbiAtbSBib3R0b21fdXAgJHN0ZXAgOyBcXCIKLSAgICAgICAgICAgICAgICAgIHB1dHMgJG9wICJcdGZpIgotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgcHV0cyAkb3AgIlx0VlBBVEg9XCQoVlBBVEgpOyBleHBvcnQgVlBBVEg7IFwkKFRPT0wpIC1pbml0IFwkKFNDUklQVFMpL0lOTk9WVVMvcnVuXyRzdGVwLnRjbCAtbG9nIFwkKExPRykvJHN0ZXAubG9nIC1vdmVyd3JpdGUgXCQoQVJHUykiCi0gICAgICAgICAgICAgICBwdXRzICRvcCAiXHQvYmluL3RvdWNoIFwkKFZQQVRIKS8kc3RlcFxuIgotICAgICAgICAgICAgICAgc2V0IHByaW9yX3N0ZXAgJHN0ZXAKLSAgICAgICAgICAgIH0KLQotIyAgICAgICAgICAgIHB1dHMgJG9wICJodG1sOiIKLSMgICAgICAgICAgICBwdXRzICRvcCAiXHRGRlNURVBTPVwkKFNURVBTKTsgZXhwb3J0IEZGU1RFUFM7IEZGTE9HRElSPVwkKExPRyk7IGV4cG9ydCBGRkxPR0RJUjsgL3Vzci9iaW4vdGNsc2ggXCQoU0NSSVBUUykvSU5OT1ZVUy9nZW5faHRtbC50Y2wgLjsgY2QgSFRNTDsgXCQoQlJPV1NFUikgZmlsZTpgcHdkYC9pbmRleC5odG1sIgotIyAgICAgICAgICAgIHB1dHMgJG9wICIiCi0gICAgICAgICAgICBwdXRzICRvcCAiZGVidWdfJToiCi0gICAgICAgICAgICBwdXRzICRvcCAiXHRWUEFUSD1cJChWUEFUSCk7IGV4cG9ydCBTVEVQPVwkKiA7IGV4cG9ydCBWUEFUSDsgXCQoVE9PTCkgLWluaXQgXCQoU0NSSVBUUykvSU5OT1ZVUy9ydW5fZGVidWcudGNsIC1sb2cgXCQoTE9HKS9cJEAubG9nIC13aW4gXCQoQVJHUzotbm93aW49KSIKLSAgICAgICAgICAgIHB1dHMgJG9wICIiCi0gICAgICAgICAgICBwdXRzICRvcCAibGVjXyU6IgotICAgICAgICAgICAgcHV0cyAkb3AgIlx0ZXhwb3J0IFNURVA9XCQqIDsgbGVjIC02NCAteGwgLURvZmlsZSBcJChTQ1JJUFRTKS9JTk5PVlVTL3J1bl9sZWMudGNsIC1OT0d1aSAtTE9HZmlsZSBcJChMT0cpL1wkQC5sb2ciCi0gICAgICAgICAgICBwdXRzICRvcCAiIgotIyAgICAgICAgICAgIHB1dHMgJG9wICIuUEhPTlk6IGNsZWFuIGh0bWwiCi0gICAgICAgICAgICBwdXRzICRvcCAiLlBIT05ZOiBjbGVhbiIKLSAgICAgICAgICAgIHB1dHMgJG9wICIiCi0gICAgICAgICAgICBwdXRzICRvcCAiY2xlYW46IgotICAgICAgICAgICAgcHV0cyAkb3AgIlx0L2Jpbi9tdiAqLnJwdCAkdmFycyhycHRfZGlyKSA7XFwiCi0gICAgICAgICAgICBwdXRzICRvcCAiXHQvYmluL3JtIC1mciBleHRMb2dEaXIqIF9fcXJjLmxvZyAqY3RzX3RyYWNlICoucnB0Lm9sZCAqZGVsZXRlKiBwbGFjZW1lbnRSZXBvcnRzKiAqLnJndWlkZSAqX21tbWMgXFxcblx0Kl9jb25zdHIucHQgLmNvbnN0ciogLkZFKiAucm91dGluZyogLnRpbWluZ19maWxlKiAudGRybG9nKiIKLSAgICAgICAgICAgIHB1dHMgJG9wICIiCi0gICAgICAgICAgICBwdXRzICRvcCAiZG9fY2xlYW51cDogc2lnbm9mZiIKLSAgICAgICAgICAgIHB1dHMgJG9wICJcdFwkKE1BS0UpIGNsZWFuIgotICAgICAgICAgICAgcHV0cyAkb3AgIlx0L2Jpbi90b3VjaCBcJChWUEFUSCkvXCRAIgotICAgICAgICAgICAgcHV0cyAkb3AgIiIKLSAgICAgICAgICAgIHB1dHMgJG9wICJyZXNldCA6IHZlcnNpb24iCi0gICAgICAgICAgICBwdXRzICRvcCAiXHQvYmluL3JtIC1mciBcJChWUEFUSCkvKiBleHRMb2dEaXIqIF9fcXJjLmxvZyAqY3RzX3RyYWNlICoucnB0Lm9sZCAqZGVsZXRlKiBwbGFjZW1lbnRSZXBvcnRzKiAqLnJndWlkZSAqX21tbWMiCi0gICAgICAgICAgICBwdXRzICRvcCAiXHRAZm9yIGZpbGUgaW4gXCQoU1RFUFMpIDsgXFwiCi0gICAgICAgICAgICBwdXRzICRvcCAiXHRkbyBcXCIKLSAgICAgICAgICAgIHB1dHMgJG9wICJcdFx0aWYgXFsgLXIgXCQoVlBBVEgpL1wkXCRmaWxlIFxdIDsgdGhlbiBcXCIKLSAgICAgICAgICAgIHB1dHMgJG9wICJcdFx0XHQvYmluL3JtIFwkKFZQQVRIKS9cJFwkZmlsZSA7IFxcIgotICAgICAgICAgICAgcHV0cyAkb3AgIlx0XHRmaSBcXCIKLSAgICAgICAgICAgIHB1dHMgJG9wICJcdGRvbmUiCi0gICAgICAgICAgICBwdXRzICRvcCAiIgotICAgICAgICAgICAgcHV0cyAkb3AgImJsb2NrXyU6IHNldHVwIgotICAgICAgICAgICAgcHV0cyAkb3AgIlx0QGlmIFxbIFwieFwkKlwiID0gXCJ4c2luZ2xlXCIgXF0gOyB0aGVuIFxcIgotICAgICAgICAgICAgcHV0cyAkb3AgIlx0XHRmZl9zdG9wPVwkKEZGX1NUT1ApOyBcXCIKLSAgICAgICAgICAgIHB1dHMgJG9wICJcdFx0dGFyZ2V0PVwiXCRAIChmcm9tOiBcJChGRl9TVEFSVCkgdG86IFwkKEZGX1NUT1ApKVwiOyBcXCIKLSAgICAgICAgICAgIHB1dHMgJG9wICJcdGVsc2UgXFwiCi0gICAgICAgICAgICBwdXRzICRvcCAiXHRcdGZmX3N0b3A9XCQqIDsgXFwiCi0gICAgICAgICAgICBwdXRzICRvcCAiXHRcdHRhcmdldD1cJEA7IFxcIgotICAgICAgICAgICAgcHV0cyAkb3AgIlx0Zmk7IFxcIgotICAgICAgICAgICAgcHV0cyAkb3AgIlx0aWYgXFsgLXIgXCQoVlBBVEgpLy5SVU5OSU5HIFxdIDsgdGhlbiBcXCIKLSAgICAgICAgICAgIHB1dHMgJG9wICJcdFx0ZWNobyBcIklORk86IEEgYnVpbGQgc2VlbXMgdG8gYmUgcnVubmluZyBhbHJlYWR5Li4uIGNoZWNrIFwkKFZQQVRIKS8uUlVOTklORyBmaWxlIGFuZCByZW1vdmUgdGhhdCBmaWxlIGlmIHRoZSBwcm9jZXNzIGlzIGRlYWRcIiA7IFxcIgotICAgICAgICAgICAgcHV0cyAkb3AgIlx0XHQvYmluL2hlYWQgLTEgIFwkKFZQQVRIKS8uUlVOTklORyA7IFxcIgotICAgICAgICAgICAgcHV0cyAkb3AgIlx0XHRleGl0IC0xIDsgXFwiCi0gICAgICAgICAgICBwdXRzICRvcCAiXHRlbHNlIFxcIgotICAgICAgICAgICAgcHV0cyAkb3AgIlx0XHQvYmluL3JtIC1mIFwkKFZQQVRIKS9ibG9ja19cJFwkXHtmZl9zdG9wXH0uRE9ORSBcJChWUEFUSCkvYmxvY2tfXCRcJFx7ZmZfc3RvcFx9LkZBSUxFRCBcJChWUEFUSCkvYmxvY2tfXCRcJFx7ZmZfc3RvcFx9LlBBU1MgOyBcXCIKLSAgICAgICAgICAgIHB1dHMgJG9wICJcdFx0KGVjaG8gXCIjIFN0YXJ0ZWQgYnVpbGRpbmcgXCRcJFx7dGFyZ2V0XH0gYXQgXCJgL2Jpbi9kYXRlYFwiIG9uIFwiYC9iaW4vaG9zdG5hbWVgXCIgUElEOiBcJFwkXCRcJFwiIDsgXCQoTUFLRSkgXCQoVEFSR0VUKSApICY+XCQoVlBBVEgpLy5SVU5OSU5HIDsgXFwiCi0gICAgICAgICAgICBwdXRzICRvcCAiXHRcdGlmIFxbIC1yIFwkKFZQQVRIKS9cJFwkXHtmZl9zdG9wXH0gXF0gOyB0aGVuIFxcIgotICAgICAgICAgICAgcHV0cyAkb3AgIlx0XHRcdGlmIFxbIC1yIFwkKFZQQVRIKS8uUlVOTklORyBcXSA7IHRoZW4gXFwiCi0gICAgICAgICAgICBwdXRzICRvcCAiXHRcdFx0XHQvYmluL212IFwkKFZQQVRIKS8uUlVOTklORyBcJChWUEFUSCkvYmxvY2tfXCRcJFx7ZmZfc3RvcFx9LlBBU1MgOyBcXCIKLSAgICAgICAgICAgIHB1dHMgJG9wICJcdFx0XHRcdC9iaW4vdG91Y2ggXCQoVlBBVEgpL2Jsb2NrX1wkXCRce2ZmX3N0b3BcfSA7IFxcIgotICAgICAgICAgICAgcHV0cyAkb3AgIlx0XHRcdFx0L2Jpbi90b3VjaCBcJChWUEFUSCkvYmxvY2tfXCRcJFx7ZmZfc3RvcFx9LkRPTkUgOyBcXCIKLSAgICAgICAgICAgIHB1dHMgJG9wICJcdFx0XHRlbHNlIFxcIgotICAgICAgICAgICAgcHV0cyAkb3AgIlx0XHRcdFx0ZWNobyBcIiMgU29tZXRoaW5nIGRpZCBub3Qgd29yayBwcm9wZXJseVwiID4gXCQoVlBBVEgpL2Jsb2NrX1wkXCRce2ZmX3N0b3BcfS5GQUlMRUQgOyBcXCIKLSAgICAgICAgICAgIHB1dHMgJG9wICJcdFx0XHRcdC9iaW4vdG91Y2ggXCQoVlBBVEgpL2Jsb2NrX1wkXCRce2ZmX3N0b3BcfS5ET05FIDsgXFwiCi0gICAgICAgICAgICBwdXRzICRvcCAiXHRcdFx0XHRleGl0IC0xOyBcXCIKLSAgICAgICAgICAgIHB1dHMgJG9wICJcdFx0XHRmaSA7IFxcIgotICAgICAgICAgICAgcHV0cyAkb3AgIlx0XHRlbHNlIFxcIgotICAgICAgICAgICAgcHV0cyAkb3AgIlx0XHRcdGlmIFxbIC1yIFwkKFZQQVRIKS8uUlVOTklORyBcXSA7IHRoZW4gXFwiCi0gICAgICAgICAgICBwdXRzICRvcCAiXHRcdFx0XHQvYmluL212IFwkKFZQQVRIKS8uUlVOTklORyBcJChWUEFUSCkvYmxvY2tfXCRcJFx7ZmZfc3RvcFx9LkZBSUxFRCA7IFxcIgotICAgICAgICAgICAgcHV0cyAkb3AgIlx0XHRcdGVsc2UgXFwiCi0gICAgICAgICAgICBwdXRzICRvcCAiXHRcdFx0XHRlY2hvIFwiIyBTb21ldGhpbmcgZGlkIG5vdCB3b3JrIHByb3Blcmx5XCIgPiBcJChWUEFUSCkvYmxvY2tfXCRcJFx7ZmZfc3RvcFx9LkZBSUxFRCA7IFxcIgotICAgICAgICAgICAgcHV0cyAkb3AgIlx0XHRcdGZpIDsgXFwiCi0gICAgICAgICAgICBwdXRzICRvcCAiXHRcdFx0L2Jpbi90b3VjaCBcJChWUEFUSCkvYmxvY2tfXCRcJFx7ZmZfc3RvcFx9LkRPTkUgOyBcXCIKLSAgICAgICAgICAgIHB1dHMgJG9wICJcdFx0XHRleGl0IC0xIDsgXFwiCi0gICAgICAgICAgICBwdXRzICRvcCAiXHRcdGZpIDsgXFwiCi0gICAgICAgICAgICBwdXRzICRvcCAiXHRmaSIKLQotICAgICAgICAgICAgaWYgeyR2YXJzKGdlbmVyYXRlX2Zsb3dfc3RlcHMpICYmIFtpbmZvIGV4aXN0cyB2YXJzKGZsb3dfc3RlcHMpXX0gewotICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGZsb3dfc3RlcHMsZmxhdCldfSB7Ci0gICAgICAgICAgICAgICAgICBzZXQgZnAxIFtvcGVuICR2YXJzKHNjcmlwdF9kaXIpL2Zsb3dfY29uZmlnLnRjbCB3XQotICAgICAgICAgICAgICAgICAgc2V0IGZwMiBbb3BlbiAkdmFycyhzY3JpcHRfZGlyKS9mbG93X3N0ZXBzLnRjbCB3XQotICAgICAgICAgICAgICAgICAgcHV0cyAkZnAxICJzZXRfZGIgZmxvd19kYXRhYmFzZV9kaXJlY3RvcnkgJHZhcnMoZGJzX2RpcikiCi0gICAgICAgICAgICAgICAgICBwdXRzICRmcDEgInNldF9kYiBmbG93X3JlcG9ydF9kaXJlY3RvcnkgJHZhcnMocnB0X2RpcikiCi0gICAgICAgICAgICAgICAgICBwdXRzICRmcDEgInNldF9kYiBmbG93X2xvZ19kaXJlY3RvcnkgJHZhcnMobG9nX2RpcikiCi0gICAgICAgICAgICAgICAgICBwdXRzICRmcDIgJHZhcnMoZmxvd19zdGVwcyxmbGF0KQotICAgICAgICAgICAgICAgICAgcHV0cyAkZnAxICJcbnNldF9kYiBmbG93X21haWxfdG8gW2V4ZWMgd2hvYW1pXSIKLSAgICAgICAgICAgICAgICAgIHB1dHMgJGZwMSAic2V0X2RiIGZsb3dfbWFpbF9vbl9lcnJvciB0cnVlXG4iCi0gICAgICAgICAgICAgICAgICBpZiB7JHZhcnModG9wKX0gewotICAgICAgICAgICAgICAgICAgICAgc2V0IHZhcnMoZmxvd19uYW1lKSB0b3AKLSAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICBzZXQgdmFycyhmbG93X25hbWUpIGJsb2NrCi0gICAgICAgICAgICAgICAgICB9Ci0jICAgICAgICAgICAgICAgICAgcHV0cyAkZnAgImNyZWF0ZV9mbG93IFxcXG4gICAtbmFtZSAkdmFycyhmbG93X25hbWUpXFxcbiAgIC10b29sICR2YXJzKG1ha2VfdG9vbClcXFxuICAgLXRvb2xfb3B0aW9ucyB7LWxvZyAkdmFycyhmbG93X25hbWUpLmxvZ31cXFxuICAgXFtsaXN0IFtGRjo6YWRqdXN0X3N0ZXBzXVxdXG4iCi0jICAgICAgICAgICAgICAgICAgcHV0cyAkaHAgImNyZWF0ZV9mbG93IFxcXG4gICAtbmFtZSAkdmFycyhmbG93X25hbWUpXFxcbiAgIC10b29sICR2YXJzKG1ha2VfdG9vbClcXFxuICAgLXRvb2xfb3B0aW9ucyB7LWxvZyAkdmFycyhmbG93X25hbWUpLmxvZ31cXFxuICAgXFtsaXN0ICRzdGVwc1xdXG4iCi0jICAgICAgICAgICAgICAgICAgcHV0cyAkZnAgInJ1bl9mbG93IC1mbG93ICR2YXJzKGZsb3dfbmFtZSkiCi0gICAgICAgICAgICAgICAgICBpZiB7W2ZpbGUgZXhpc3RzICR2YXJzKGN3ZCkvLnBsdWdpbnNdfSB7Ci0gICAgICAgICAgICAgICAgICAgICBzZXQgaXAgW29wZW4gJHZhcnMoY3dkKS8ucGx1Z2lucyByXQotICAgICAgICAgICAgICAgICAgICAgd2hpbGUge1tnZXRzICRpcCBsaW5lXT49MH0geyAKLSAgICAgICAgICAgICAgICAgICAgICAgIHB1dHMgJGZwMSAkbGluZSAKLSAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgIGNsb3NlICRpcAotICAgICAgICAgICAgICAgICAgICAgZmlsZSBkZWxldGUgJHZhcnMoY3dkKS8ucGx1Z2lucyAKLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIGNsb3NlICRmcDEKLSAgICAgICAgICAgICAgICAgIGNsb3NlICRmcDIKLSAgICAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhwYXJ0aXRpb25fbGlzdCldfSB7Ci0gICAgICAgICAgICAgICAgICAgICBpZiB7KCR2YXJzKGRlc2lnbikgPT0gW2xpbmRleCAkdmFycyhwYXJ0aXRpb25fbGlzdCkgMF0pIHx8ICR2YXJzKHRvcCl9IHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHNldCBocCBbb3BlbiAkdmFycyhzY3JpcHRfZGlyKS8uaGllcnN0ZXBzLnRjbCB3XQotICAgICAgICAgICAgICAgICAgICAgICAgaWYgeyR2YXJzKHRvcCl9IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldCB0ZW1wIFtyZWdzdWIgLWFsbCAiY3JlYXRlX2Zsb3dfc3RlcCAtbmFtZSBpbml0IiAkdmFycyhmbG93X3N0ZXBzLGZsYXQpICJjcmVhdGVfZmxvd19zdGVwIC1uYW1lIHRvcF9pbml0Il0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldCB0ZW1wMiBbcmVnc3ViIC1hbGwgImNyZWF0ZV9mbG93X3N0ZXAgLW5hbWUgY3RzIiAkdGVtcCAiY3JlYXRlX2Zsb3dfc3RlcCAtbmFtZSB0b3BfY3RzIl0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldCB2YXJzKGZsb3dfc3RlcHMsZmxhdCkgW3JlZ3N1YiAtYWxsICJjcmVhdGVfZmxvd19zdGVwIC1uYW1lIHNpZ25vZmYiICR0ZW1wMiAiY3JlYXRlX2Zsb3dfc3RlcCAtbmFtZSB0b3Bfc2lnbm9mZiJdCi0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICBwdXRzICRocCAkdmFycyhmbG93X3N0ZXBzLGZsYXQpCi0gICAgICAgICAgICAgICAgICAgICAgICBpZiB7JHZhcnModG9wKX0gewotICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0IHRvcF9zdGVwcyAiICRzdGVwcyIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcmVhY2ggcyAiIGluaXQgcHJlY3RzIGN0cyBzaWdub2ZmIiB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXQgdGVtcCBbcmVnc3ViICIgJHMiICR0b3Bfc3RlcHMgIiB0b3BfJHMiXQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0IHRvcF9zdGVwcyAkdGVtcCAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSMjICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0IHRlbXAgW3JlZ3N1YiAiaW5pdCIgW0ZGOjphZGp1c3Rfc3RlcHNdICJ0b3BfaW5pdCJdCi0jICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0IHRlbXAgW3JlZ3N1YiAiaW5pdCIgJHN0ZXBzICJ0b3BfaW5pdCJdCi0jICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0IHRlbXAyIFtyZWdzdWIgIiBwcmVjdHMgIiAkdGVtcCAiIHRvcF9wcmVjdHMgIl0KLSMgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXQgdGVtcDMgW3JlZ3N1YiAiIGN0cyAiICR0ZW1wMiAiIHRvcF9jdHMgIl0KLSMgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXQgdG9wX3N0ZXBzIFtyZWdzdWIgInNpZ25vZmYiICR0ZW1wMyAidG9wX3NpZ25vZmYiXQotICAgICAgICAgICAgICAgICAgICAgICAgICAgcHV0cyAkaHAgImNyZWF0ZV9mbG93IFxcXG4gICAtbmFtZSAkdmFycyhmbG93X25hbWUpXFxcbiAgIC10b29sICR2YXJzKG1ha2VfdG9vbClcXFxuICAgLXRvb2xfb3B0aW9ucyB7LWxvZyAkdmFycyhmbG93X25hbWUpLmxvZ31cXFxuICAgXFtsaXN0ICR0b3Bfc3RlcHNcXVxuIgotICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSMgICAgICAgICAgICAgICAgICAgICAgICAgICBwdXRzICRocCAiY3JlYXRlX2Zsb3cgXFxcbiAgIC1uYW1lICR2YXJzKGZsb3dfbmFtZSlcXFxuICAgLXRvb2wgJHZhcnMobWFrZV90b29sKVxcXG4gICAtdG9vbF9vcHRpb25zIHstbG9nICR2YXJzKGZsb3dfbmFtZSkubG9nfVxcXG4gICBcW2xpc3QgW0ZGOjphZGp1c3Rfc3RlcHNdXF1cbiIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1dHMgJGhwICJjcmVhdGVfZmxvdyBcXFxuICAgLW5hbWUgJHZhcnMoZmxvd19uYW1lKVxcXG4gICAtdG9vbCAkdmFycyhtYWtlX3Rvb2wpXFxcbiAgIC10b29sX29wdGlvbnMgey1sb2cgJHZhcnMoZmxvd19uYW1lKS5sb2d9XFxcbiAgIFxbbGlzdCAkc3RlcHNcXVxuIgotICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgY2xvc2UgJGhwCi0gICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICB1bnNldCB2YXJzKGZsb3dfc3RlcHMpCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0gICAgICAgICAidG9wX2Rvd24iIHsKLSAgICAgICAgICAgIHB1dHMgJG9wICJWRVJTSU9OPTE3LjEwLXAwMDNfMSIKLSAgICAgICAgICAgIHB1dHMgJG9wICJWUEFUSD0uL21ha2UiCi0gICAgICAgICAgICBwdXRzICRvcCAiVE9PTD0kdmFycyhtYWtlX3Rvb2wpIgotICAgICAgICAgICAgcHV0cyAkb3AgIlNDUklQVFM9JHZhcnMoc2NyaXB0X2RpcikiCi0gICAgICAgICAgICBwdXRzICRvcCAiTE9HPSR2YXJzKGxvZ19kaXIpIgotICAgICAgICAgICAgcHV0cyAkb3AgIkFSR1M9JHZhcnMobWFrZV90b29sX2FyZ3MpIgotICAgICAgICAgICAgcHV0cyAkb3AgIlBBUkFMTEVMPS1qMiIKLSAgICAgICAgICAgIHB1dHMgJG9wICJTVUJNSVQ9XCJcIiIKLSAgICAgICAgICAgIHB1dHMgJG9wICJUQVJHRVQ9c2lnbm9mZiIKLSAgICAgICAgICAgIHB1dHMgJG9wICJGRl9TVE9QPXNpZ25vZmYiCi0gICAgICAgICAgICBwdXRzICRvcCAiU1RFUFMgPSBbZm9ybWF0ICJ2ZXJzaW9uIHNldHVwICVzIGRvX2NsZWFudXAiICRzdGVwc10iCi0gICAgICAgICAgICBwdXRzICRvcCAiIgotIyAgICAgICAgICAgIHB1dHMgJG9wICJUT1A9YC9iaW4vZ3JlcCBcIl5zZXQgdmFycyhkZXNpZ24pXCIgJHZhcnMoc2V0dXBfdGNsKSB8IC9iaW4vYXdrICcgeyBwcmludGYoXCIlc1xcblwiLFwkXCQzKSB9ICdgIgotICAgICAgICAgICAgcHV0cyAkb3AgIlRPUD0kdmFycyhkZXNpZ24pIgotICAgICAgICAgICAgcHV0cyAkb3AgIiIKLSAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyh1c2VfZmxleG1vZGVscyldICYmICR2YXJzKHVzZV9mbGV4bW9kZWxzKX0gewotICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGZsZXhtb2RlbF9wcm90b3R5cGUpXSAmJiAkdmFycyhmbGV4bW9kZWxfcHJvdG90eXBlKX0gewotICAgICAgICAgICAgICAgICAgcHV0cyAkb3AgImFsbDogc2V0dXAgbW9kZWxfZ2VuIHByb3RvdHlwZSBwYXJ0aXRpb25fcGxhY2UgYXNzaWduX3BpbiBwYXJ0aXRpb24gYmxvY2tzLlwkKFRBUkdFVCkgdG9wLlwkKFRBUkdFVCkgYXNzZW1ibGUiCi0gICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgcHV0cyAkb3AgImFsbDogc2V0dXAgbW9kZWxfZ2VuIHBhcnRpdGlvbl9wbGFjZSBhc3NpZ25fcGluIHBhcnRpdGlvbiBibG9ja3MuXCQoVEFSR0VUKSB0b3AuXCQoVEFSR0VUKSBhc3NlbWJsZSIKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBwdXRzICRvcCAiYWxsOiBzZXR1cCBwYXJ0aXRpb25fcGxhY2UgYXNzaWduX3BpbiBwYXJ0aXRpb24gYmxvY2tzLlwkKFRBUkdFVCkgdG9wLlwkKFRBUkdFVCkgYXNzZW1ibGUiCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBwdXRzICRvcCAiIgotICAgICAgICAgICAgcHV0cyAkb3AgImhlbHA6IgotICAgICAgICAgICAgcHV0cyAkb3AgIlx0QGVjaG8gXCI9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cIiIKLSAgICAgICAgICAgIHB1dHMgJG9wICJcdEBlY2hvIFwiICAgICAgICAgICBcJChWRVJTSU9OKSAgRm91bmRhdGlvbiBGbG93c1wiIgotICAgICAgICAgICAgcHV0cyAkb3AgIlx0QGVjaG8gXCI9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cIiIKLSAgICAgICAgICAgIHB1dHMgJG9wICJcdEBlY2hvIFwiIE1ha2VmaWxlIFRhcmdldHNcIiIKLSAgICAgICAgICAgIHB1dHMgJG9wICJcdEBlY2hvIFwiPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XCIiCi0gICAgICAgICAgICBwdXRzICRvcCAiXHRAZWNobyBcIiAgICAgICAgICAgICAgYWxsIDogUnVuIGNvbXBsZXRlIGZsb3cgKGRlZmF1bHQpXCIiCi0gICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnModXNlX2ZsZXhtb2RlbHMpXSAmJiAkdmFycyh1c2VfZmxleG1vZGVscyl9IHsKLSAgICAgICAgICAgICAgIHB1dHMgJG9wICJcdEBlY2hvIFwiICAgICAgICBtb2RlbF9nZW4gOiBHZW5lcmF0ZSBmbGV4bW9kZWxzXCIiCi0gICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoZmxleG1vZGVsX3Byb3RvdHlwZSldICYmICR2YXJzKGZsZXhtb2RlbF9wcm90b3R5cGUpfSB7Ci0gICAgICAgICAgICAgICAgICBwdXRzICRvcCAiXHRAZWNobyBcIiAgICAgICAgcHJvdG90eXBlIDogRmxleG1vZGVsIHByb3RvdHlwZVwiIgotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAgICAgcHV0cyAkb3AgIlx0QGVjaG8gXCIgIHBhcnRpdGlvbl9wbGFjZSA6IEluaXRpYWwgcGxhY2VtZW50ICYgZmVlZHRocm91Z2hcIiIKLSAgICAgICAgICAgIHB1dHMgJG9wICJcdEBlY2hvIFwiICAgICAgIGFzc2lnbl9waW4gOiBQaW4gYXNzaWdubWVudFwiIgotICAgICAgICAgICAgcHV0cyAkb3AgIlx0QGVjaG8gXCIgICAgICAgIHBhcnRpdGlvbiA6IFBhcnRpdGlvbiBkZXNpZ25cIiIKLSAgICAgICAgICAgIHB1dHMgJG9wICJcdEBlY2hvIFwiICBibG9ja3MuPHRhcmdldD4gOiBJbXBsZW1lbnQgYmxvY2tzXCIiCi0gICAgICAgICAgICBwdXRzICRvcCAiXHRAZWNobyBcIiAgICAgICAgIGFzc2VtYmxlIDogQXNzZW1ibGUgZGVzaWduXCIiCi0gICAgICAgICAgICBwdXRzICRvcCAiXHRAZWNobyBcIj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVwiIgotICAgICAgICAgICAgcHV0cyAkb3AgIlx0QGVjaG8gXCIgTWFrZWZpbGUgT3B0aW9uc1wiIgotICAgICAgICAgICAgcHV0cyAkb3AgIlx0QGVjaG8gXCI9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cIiIKLSAgICAgICAgICAgIHB1dHMgJG9wICJcdEBlY2hvIFwiICAgVlBBVEggIDogTWFrZSBkaXJlY3RvcnkgICAgIChkZWZhdWx0IG1ha2UpXCIiCi0gICAgICAgICAgICBwdXRzICRvcCAiXHRAZWNobyBcIiAgU1VCTUlUICA6IExTRiBsYXVuY2ggY29tbWFuZCAoZGVmYXVsdCAnJylcIiIKLSAgICAgICAgICAgIHB1dHMgJG9wICJcdEBlY2hvIFwiIFBBUkFMTEVMIDogTnVtYmVyIG9mIG1hY2hpbmVzIChkZWZhdWx0IC1qMilcIiIKLSAgICAgICAgICAgIGlmIHskdmFycyhub3Z1cyl9IHsKLSAgICAgICAgICAgICAgIHB1dHMgJG9wICJcdEBlY2hvIFwiICAgIFRPT0wgIDogSU5OT1ZVUyBleGVjdXRhYmxlIChkZWZhdWx0IGlubm92dXMpXCIiCi0gICAgICAgICAgICAgICBwdXRzICRvcCAiXHRAZWNobyBcIiAgICBBUkdTICA6IElOTk9WVVMgYXJndW1lbnRzICAoZGVmYXVsdCAtbm93aW4gLTY0KVwiIgotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIHB1dHMgJG9wICJcdEBlY2hvIFwiICAgIFRPT0wgIDogSU5OT1ZVUyBleGVjdXRhYmxlICAgICAoZGVmYXVsdCBpbm5vdnVzKVwiIgotICAgICAgICAgICAgICAgcHV0cyAkb3AgIlx0QGVjaG8gXCIgICAgQVJHUyAgOiBJTk5PVlVTIGFyZ3VtZW50cyAgICAgIChkZWZhdWx0IC1ub3dpbiAtNjQpXCIiCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBwdXRzICRvcCAiXHRAZWNobyBcIiBTQ1JJUFRTICA6IFNjcmlwdCBkaXJlY3RvcnkgICAoZGVmYXVsdCAkdmFycyhzY3JpcHRfZGlyKSlcIiIKLSAgICAgICAgICAgIHB1dHMgJG9wICJcdEBlY2hvIFwiICAgICBMT0cgIDogTG9nZmlsZSBkaXJlY3RvcnkgIChkZWZhdWx0ICR2YXJzKGxvZ19kaXIpKVwiIgotICAgICAgICAgICAgcHV0cyAkb3AgIlx0QGVjaG8gXCI9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cIiIKLSAgICAgICAgICAgIHB1dHMgJG9wICIiCi0jICAgICAgICAgICAgcHV0cyAkb3AgImZsb3c6ICR2YXJzKGNvbmZpZ19maWxlcykiCi0jICAgICAgICAgICAgcHV0cyAkb3AgIlx0ZXhlY3V0ZV9zdHJpbmciCi0jICAgICAgICAgICAgcHV0cyAkb3AgIlx0QC9iaW4vdG91Y2ggXCQoVlBBVEgpL1wkQCIKLSAgICAgICAgICAgIHB1dHMgJG9wICJhc3NlbWJsZTogdG9wLlwkKFRBUkdFVCkiCi0gICAgICAgICAgICBwdXRzICRvcCAiXHRWUEFUSD1cJChWUEFUSCk7IGV4cG9ydCBWUEFUSDsgXCQoVE9PTCkgXCQoQVJHUykgLWluaXQgXCQoU0NSSVBUUykvSU5OT1ZVUy9ydW5fYXNzZW1ibGUudGNsIC1sb2cgXCQoTE9HKS9hc3NlbWJsZS5sb2cgLW92ZXJ3cml0ZSIKLSAgICAgICAgICAgIHB1dHMgJG9wICJcdC9iaW4vdG91Y2ggXCQoVlBBVEgpL2Fzc2VtYmxlIgotICAgICAgICAgICAgcHV0cyAkb3AgIiIKLSAgICAgICAgICAgIHB1dHMgJG9wICJ0b3AuXCQoVEFSR0VUKSA6IGJsb2Nrcy5cJChUQVJHRVQpIgotICAgICAgICAgICAgcHV0cyAkb3AgIlx0Y2QgJHZhcnMocGFydGl0aW9uX2RpcikvXCQoVE9QKTsgXCQoTUFLRSkgLWYgTWFrZWZpbGUgRkZfU1RPUD1cJChGRl9TVE9QKSBcJChUQVJHRVQpICIKLSAgICAgICAgICAgIHB1dHMgJG9wICJcdC9iaW4vdG91Y2ggXCQoVlBBVEgpL1wkQCIKLSAgICAgICAgICAgIHB1dHMgJG9wICIiCi0gICAgICAgICAgICBwdXRzICRvcCAiYmxvY2tzLlwkKFRBUkdFVCkgOiBwYXJ0aXRpb24iCi0gICAgICAgICAgICBwdXRzICRvcCAiXHRjZCAkdmFycyhwYXJ0aXRpb25fZGlyKTsgVlBBVEg9XCQoVlBBVEgpOyBleHBvcnQgVlBBVEg7IFwkKE1BS0UpIFwkKFBBUkFMTEVMKSBibG9ja3MgRkZfU1RPUD1cJChGRl9TVE9QKSBUQVJHRVQ9XCQoVEFSR0VUKSIKLSAgICAgICAgICAgIHB1dHMgJG9wICJcdC9iaW4vdG91Y2ggXCQoVlBBVEgpL1wkQCIKLSAgICAgICAgICAgIHB1dHMgJG9wICIiCi0gICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnModXNlX2ZsZXhtb2RlbHMpXSAmJiAkdmFycyh1c2VfZmxleG1vZGVscyl9IHsKLSAgICAgICAgICAgICAgIHB1dHMgJG9wICJtb2RlbF9nZW4gOiBzZXR1cCIKLSAgICAgICAgICAgICAgIHB1dHMgJG9wICJcdFZQQVRIPVwkKFZQQVRIKTsgZXhwb3J0IFZQQVRIOyBcJChUT09MKSBcJChBUkdTKSAtaW5pdCBcJChTQ1JJUFRTKS9JTk5PVlVTL3J1bl9tb2RlbF9nZW4udGNsIC1sb2cgXCQoTE9HKS9tb2RlbF9nZW4ubG9nIC1vdmVyd3JpdGUiCi0gICAgICAgICAgICAgICBwdXRzICRvcCAiXHQvYmluL3RvdWNoIFwkKFZQQVRIKS9tb2RlbF9nZW4iCi0gICAgICAgICAgICAgICBwdXRzICRvcCAiIgotICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGZsZXhtb2RlbF9wcm90b3R5cGUpXSAmJiAkdmFycyhmbGV4bW9kZWxfcHJvdG90eXBlKX0gewotICAgICAgICAgICAgICAgICAgcHV0cyAkb3AgInByb3RvdHlwZSA6IG1vZGVsX2dlbiIKLSAgICAgICAgICAgICAgICAgIHB1dHMgJG9wICJcdFZQQVRIPVwkKFZQQVRIKTsgZXhwb3J0IFZQQVRIOyBcJChUT09MKSBcJChBUkdTKSAtaW5pdCBcJChTQ1JJUFRTKS9JTk5PVlVTL3J1bl9wcm90b3R5cGUudGNsIC1sb2cgXCQoTE9HKS9wcm90b3R5cGUubG9nIC1vdmVyd3JpdGUiCi0gICAgICAgICAgICAgICAgICBwdXRzICRvcCAiXHQvYmluL3RvdWNoIFwkKFZQQVRIKS9wcm90b3R5cGUiCi0gICAgICAgICAgICAgICAgICBwdXRzICRvcCAiIgotICAgICAgICAgICAgICAgICAgcHV0cyAkb3AgInBhcnRpdGlvbl9wbGFjZSA6IHByb3RvdHlwZSIKLSAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICBwdXRzICRvcCAicGFydGl0aW9uX3BsYWNlIDogbW9kZWxfZ2VuIgotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIHB1dHMgJG9wICJwYXJ0aXRpb25fcGxhY2UgOiAgc2V0dXAiCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBwdXRzICRvcCAiXHRWUEFUSD1cJChWUEFUSCk7IGV4cG9ydCBWUEFUSDsgXCQoVE9PTCkgXCQoQVJHUykgLWluaXQgXCQoU0NSSVBUUykvSU5OT1ZVUy9ydW5fcGFydGl0aW9uX3BsYWNlLnRjbCAtbG9nIFwkKExPRykvcGFydGl0aW9uX3BsYWNlLmxvZyAtb3ZlcndyaXRlIgotICAgICAgICAgICAgcHV0cyAkb3AgIlx0L2Jpbi90b3VjaCBcJChWUEFUSCkvcGFydGl0aW9uX3BsYWNlIgotICAgICAgICAgICAgcHV0cyAkb3AgIiIKLSAgICAgICAgICAgIHB1dHMgJG9wICJhc3NpZ25fcGluIDogIHBhcnRpdGlvbl9wbGFjZSIKLSAgICAgICAgICAgIHB1dHMgJG9wICJcdFZQQVRIPVwkKFZQQVRIKTsgZXhwb3J0IFZQQVRIOyBcJChUT09MKSBcJChBUkdTKSAtaW5pdCBcJChTQ1JJUFRTKS9JTk5PVlVTL3J1bl9hc3NpZ25fcGluLnRjbCAtbG9nIFwkKExPRykvYXNzaWduX3Bpbi5sb2cgLW92ZXJ3cml0ZSIKLSAgICAgICAgICAgIHB1dHMgJG9wICJcdC9iaW4vdG91Y2ggXCQoVlBBVEgpL2Fzc2lnbl9waW4iCi0gICAgICAgICAgICBwdXRzICRvcCAiIgotICAgICAgICAgICAgcHV0cyAkb3AgInBhcnRpdGlvbiA6IGFzc2lnbl9waW4iCi0gICAgICAgICAgICBwdXRzICRvcCAiXHRWUEFUSD1cJChWUEFUSCk7IGV4cG9ydCBWUEFUSDsgXCQoVE9PTCkgXCQoQVJHUykgLWluaXQgXCQoU0NSSVBUUykvSU5OT1ZVUy9ydW5fcGFydGl0aW9uLnRjbCAtbG9nIFwkKExPRykvcGFydGl0aW9uLmxvZyAtb3ZlcndyaXRlIgotICAgICAgICAgICAgcHV0cyAkb3AgIlx0L2Jpbi90b3VjaCBcJChWUEFUSCkvcGFydGl0aW9uIgotICAgICAgICAgICAgcHV0cyAkb3AgIiIKLSAgICAgICAgICAgIHB1dHMgJG9wICJzaW5nbGU6IgotICAgICAgICAgICAgcHV0cyAkb3AgIlx0QFwkKE1BS0UpIFRBUkdFVD1zaW5nbGUgRkZfU1RPUD1cJChGRl9TVE9QKSIKLSAgICAgICAgICAgIHB1dHMgJG9wICIiCi0gICAgICAgICAgICBwdXRzICRvcCAiZGVidWdfJToiCi0gICAgICAgICAgICBwdXRzICRvcCAiXHRleHBvcnQgU1RFUD1cJCogOyBWUEFUSD1cJChWUEFUSCk7IGV4cG9ydCBWUEFUSDsgXCQoVE9PTCkgLWluaXQgXCQoU0NSSVBUUykvSU5OT1ZVUy9ydW5fZGVidWcudGNsIC1sb2cgXCQoTE9HKS9cJEAubG9nIC13aW4gXCQoQVJHUzotbm93aW49KSIKLSAgICAgICAgICAgIHB1dHMgJG9wICIiCi0gICAgICAgICAgICBwdXRzICRvcCAicmVzZXQ6IgotICAgICAgICAgICAgcHV0cyAkb3AgIlx0QC9iaW4vcm0gLWYgXCQoVlBBVEgpLyogJHZhcnMocGFydGl0aW9uX2RpcikvKi9cJChWUEFUSCkvKiAkdmFycyhwYXJ0aXRpb25fZGlyKS8qL1wkKFZQQVRIKS8uUlVOTklORyIKLSAgICAgICAgICAgIHB1dHMgJG9wICIiCi0gICAgICAgICAgICBwdXRzICRvcCAic2V0dXA6IgotICAgICAgICAgICAgcHV0cyAkb3AgIiNcdC9iaW4vcm0gLWZyICR2YXJzKHBhcnRpdGlvbl9kaXIpIFwkKFZQQVRIKSBMT0ciCi0gICAgICAgICAgICBwdXRzICRvcCAiXHQvYmluL21rZGlyIC1wICBcJChWUEFUSCkgTE9HIgotICAgICAgICAgICAgcHV0cyAkb3AgIlx0L2Jpbi90b3VjaCBcJChWUEFUSCkvc2V0dXAiCi0KLSAgICAgICAgICAgIGlmIHskdmFycyhnZW5lcmF0ZV9mbG93X3N0ZXBzKSAmJiBbaW5mbyBleGlzdHMgdmFycyhmbG93X3N0ZXBzKV19IHsKLSAgICAgICAgICAgICAgIHNldCBmcCBbb3BlbiBydW5fZmxvdy50Y2wgd10KLSMgICAgICAgICAgICAgICBwdXRzICRmcCAic291cmNlICR2YXJzKHNjcmlwdF9kaXIpL2Zsb3dfc3RlcHMudGNsIgotICAgICAgICAgICAgICAgc2V0IGZwMSBbb3BlbiAkdmFycyhzY3JpcHRfZGlyKS9mbG93X2NvbmZpZy50Y2wgd10KLSAgICAgICAgICAgICAgIHNldCBmcDIgW29wZW4gJHZhcnMoc2NyaXB0X2RpcikvZmxvd19zdGVwcy50Y2wgd10KLSMgICAgICAgICAgICAgICBwdXRzICRmcDEgInNldF9kYiBmbG93X3N0ZXA6YXNzZW1ibGUgLnNraXBfZGIgdHJ1ZSIKLSMgICAgICAgICAgICAgICBwdXRzICRmcDEgInNldF9kYiBmbG93X3N0ZXA6cGFydGl0aW9uIC5za2lwX2RiIHRydWUiCi0gICAgICAgICAgICAgICBwdXRzICRmcDEgInNldF9kYiBmbG93X2RhdGFiYXNlX2RpcmVjdG9yeSAkdmFycyhkYnNfZGlyKSIKLSAgICAgICAgICAgICAgIHB1dHMgJGZwMSAic2V0X2RiIGZsb3dfcmVwb3J0X2RpcmVjdG9yeSAkdmFycyhycHRfZGlyKSIKLSAgICAgICAgICAgICAgIHB1dHMgJGZwMSAic2V0X2RiIGZsb3dfbG9nX2RpcmVjdG9yeSAkdmFycyhsb2dfZGlyKSIKLSAgICAgICAgICAgICAgIHB1dHMgJGZwMSAiXG5zZXRfZGIgZmxvd19tYWlsX3RvIFtleGVjIHdob2FtaV0iCi0gICAgICAgICAgICAgICBwdXRzICRmcDEgInNldF9kYiBmbG93X21haWxfb25fZXJyb3IgdHJ1ZVxuIgotICAgICAgICAgICAgICAgZm9yZWFjaCBwIFtjb25jYXQgJHZhcnMocGFydGl0aW9uX2xpc3QpICR2YXJzKGRlc2lnbildIHsKLSMgICAgICAgICAgICAgICAgICBzZXQgdmFycyhmbG93X25hbWUpICRwCi0gICAgICAgICAgICAgICAgICBpZiB7W2ZpbGUgZXhpc3RzICR2YXJzKHBhcnRpdGlvbl9kaXIpLyRwLyR2YXJzKHNjcmlwdF9kaXIpLy5oaWVyc3RlcHMudGNsXX0gewotICAgICAgICAgICAgICAgICAgICAgcHV0cyAkZnAyICIjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gJHAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iIAotICAgICAgICAgICAgICAgICAgICAgc2V0IGlwIFtvcGVuICR2YXJzKHBhcnRpdGlvbl9kaXIpLyRwLyR2YXJzKHNjcmlwdF9kaXIpLy5oaWVyc3RlcHMudGNsIHJdCi0gICAgICAgICAgICAgICAgICAgICBpZiB7JHAgIT0gJHZhcnMoZGVzaWduKX0gewotICAgICAgICAgICAgICAgICAgICAgICAgd2hpbGUge1tnZXRzICRpcCBsaW5lXT49MH0geyAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1dHMgJGZwMiAkbGluZSAKLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICB3aGlsZSB7W2dldHMgJGlwIGxpbmVdPj0wfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICBpZiB7W3JlZ2V4cCAiY3JlYXRlX2Zsb3dfc3RlcCAtbmFtZSB0b3BfIiAkbGluZV19IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1dHMgJGZwMiAkbGluZSAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdoaWxlIHtbZ2V0cyAkaXAgbGluZV0+PTB9IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIHtbcmVnZXhwICJeXH0iICRsaW5lXX0gewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHV0cyAkZnAyICRsaW5lIAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdXRzICRmcDIgJGxpbmUgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICBpZiB7W2ZpbGUgZXhpc3RzICR2YXJzKHBhcnRpdGlvbl9kaXIpLyRwL3J1bl9mbG93LnRjbF19IHsKLSAgICAgICAgICAgICAgICAgICAgIHNldCBpcCBbb3BlbiAkdmFycyhwYXJ0aXRpb25fZGlyKS8kcC9ydW5fZmxvdy50Y2wgcl0KLSAgICAgICAgICAgICAgICAgICAgIHdoaWxlIHtbZ2V0cyAkaXAgbGluZV0+PTB9IHsgCi0gICAgICAgICAgICAgICAgICAgICAgICBwdXRzICRmcCAkbGluZSAKLSAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhwYXJ0aXRpb25fZGlyX3Bhc3MyKV0gJiYgW2ZpbGUgZXhpc3RzICR2YXJzKHBhcnRpdGlvbl9kaXJfcGFzczIpLyRwL3J1bl9mbG93LnRjbF19IHsKLSAgICAgICAgICAgICAgICAgICAgIHNldCBpcCBbb3BlbiAkdmFycyhwYXJ0aXRpb25fZGlyX3Bhc3MyKS8kcC9ydW5fZmxvdy50Y2wgcl0KLSAgICAgICAgICAgICAgICAgICAgIHdoaWxlIHtbZ2V0cyAkaXAgbGluZV0+PTB9IHsgCi0gICAgICAgICAgICAgICAgICAgICAgICBwdXRzICRmcCAkbGluZSAKLSAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIHB1dHMgJGZwMiAiIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIEhJRVIgU1RFUFMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iIAotICAgICAgICAgICAgICAgcHV0cyAkZnAyICR2YXJzKGZsb3dfc3RlcHMsaGllcikKLSAgICAgICAgICAgICAgIHNldCBhc3RlcHMgW0ZGOjphZGp1c3Rfc3RlcHNdCi0jICAgICAgICAgICAgICAgc2V0IHZhcnMoZmxvd19uYW1lKSAkdmFycyhkZXNpZ24pCi0jICAgICAgICAgICAgICAgcHV0cyAkZnAgImNyZWF0ZV9mbG93IFxcXG4gICAtbmFtZSAkdmFycyhmbG93X25hbWUpXFxcbiAgIC10b29sICR2YXJzKG1ha2VfdG9vbClcXFxuICAgLXRvb2xfb3B0aW9ucyB7LWxvZyAkdmFycyhmbG93X25hbWUpLmxvZ31cXFxuICAgXFtsaXN0ICRhc3RlcHNcXVxuIgotICAgICAgICAgICAgICAgc2V0IHBzdGVwcyBbbGlzdF0KLSAgICAgICAgICAgICAgIHNldCBic3RlcHMgW2xpc3RdCi0gICAgICAgICAgICAgICBmb3JlYWNoIHMgJGFzdGVwcyB7Ci0gICAgICAgICAgICAgICAgICBpZiB7KFtsc2VhcmNoICR2YXJzKGZzdGVwcykgJHNdICE9IC0xKSAmJiAoJHMgIT0gImFzc2VtYmxlIil9IHsKLSAgICAgICAgICAgICAgICAgICAgIGxhcHBlbmQgYnN0ZXBzICRzCi0gICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgaWYgeyRzICE9ICJhc3NlbWJsZSJ9IHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGxhcHBlbmQgcHN0ZXBzICRzCi0gICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICBzZXQgdmFycyhmbG93X25hbWUpIGZpbmFsX2Fzc2VtYmx5Ci0gICAgICAgICAgICAgICBwdXRzICRmcCAiY3JlYXRlX2Zsb3cgXFxcbiAgIC1uYW1lICR2YXJzKGZsb3dfbmFtZSlcXFxuICAgLXRvb2wgJHZhcnMobWFrZV90b29sKVxcXG4gICAtdG9vbF9vcHRpb25zIHstbG9nICR2YXJzKGZsb3dfbmFtZSkubG9nfVxcXG4gICBcW2xpc3QgYXNzZW1ibGVcXVxuIgotICAgICAgICAgICAgICAgc2V0IHZhcnMoZmxvd19uYW1lKSBwYXJ0aXRpb25pbmcKLSAgICAgICAgICAgICAgIHB1dHMgJGZwICJjcmVhdGVfZmxvdyBcXFxuICAgLW5hbWUgJHZhcnMoZmxvd19uYW1lKVxcXG4gICAtdG9vbCAkdmFycyhtYWtlX3Rvb2wpXFxcbiAgIC10b29sX29wdGlvbnMgey1sb2cgJHZhcnMoZmxvd19uYW1lKS5sb2d9XFxcbiAgIFxbbGlzdCAkcHN0ZXBzXF1cbiIKLSAgICAgICAgICAgICAgIHVuc2V0IHZhcnMoZmxvd19zdGVwcykKLSMgICAgICAgICAgICAgICBzZXQgdmFycyhmbG93X25hbWUpICR2YXJzKGRlc2lnbikKLSMgICAgICAgICAgICAgICBwdXRzICRmcCAiY3JlYXRlX2Zsb3cgXFxcbiAgIC1uYW1lICR2YXJzKGZsb3dfbmFtZSlcXFxuICAgLXRvb2wgJHZhcnMobWFrZV90b29sKVxcXG4gICAtdG9vbF9vcHRpb25zIHstbG9nICR2YXJzKGZsb3dfbmFtZSkubG9nfVxcXG4gICBcW2xpc3QgJGJzdGVwc1xdXG4iCi0gICAgICAgICAgICAgICBpZiB7W2ZpbGUgZXhpc3RzICR2YXJzKGN3ZCkvLnBsdWdpbnNdfSB7Ci0gICAgICAgICAgICAgICAgIHNldCBpcCBbb3BlbiAkdmFycyhjd2QpLy5wbHVnaW5zIHJdCi0gICAgICAgICAgICAgICAgIHdoaWxlIHtbZ2V0cyAkaXAgbGluZV0+PTB9IHsgCi0gICAgICAgICAgICAgICAgICAgIHB1dHMgJGZwMSAkbGluZSAKLSAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICBjbG9zZSAkaXAKLSAgICAgICAgICAgICAgICAgZmlsZSBkZWxldGUgJHZhcnMoY3dkKS8ucGx1Z2lucyAKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIGlmIHshW2luZm8gZXhpc3RzIHZhcnMocnVuX2Zsb3cpXX0gewotICAgICAgICAgICAgICAgICAgcHV0cyAkZnAgInNvdXJjZSAkdmFycyhzY3JpcHRfZGlyKS9mbG93X2NvbmZpZy50Y2wiCi0gICAgICAgICAgICAgICAgICBzZXQgdmFycyhydW5fZmxvdykgRE9ORQotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgY2xvc2UgJGZwCi0gICAgICAgICAgICAgICBjbG9zZSAkZnAxCi0gICAgICAgICAgICAgICBjbG9zZSAkZnAyCi0gICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0gICAgICAgICAiMnBhc3MiIHsKLSAgICAgICAgICAgIHNldCBvcDEgW29wZW4gTWFrZWZpbGUucGFzczEgd10gCi0gICAgICAgICAgICBwdXRzICRvcDEgIlZFUlNJT049MTcuMTAtcDAwM18xIgotICAgICAgICAgICAgcHV0cyAkb3AxICJWUEFUSD0uL21ha2UiCi0gICAgICAgICAgICBwdXRzICRvcDEgIlRPT0w9JHZhcnMobWFrZV90b29sKSIKLSAgICAgICAgICAgIHB1dHMgJG9wMSAiU0NSSVBUUz0kdmFycyhzY3JpcHRfZGlyKSIKLSAgICAgICAgICAgIHB1dHMgJG9wMSAiTE9HPSR2YXJzKGxvZ19kaXIpIgotICAgICAgICAgICAgcHV0cyAkb3AxICJBUkdTPSR2YXJzKG1ha2VfdG9vbF9hcmdzKSIKLSAgICAgICAgICAgIHB1dHMgJG9wMSAiUEFSQUxMRUw9LWoyIgotICAgICAgICAgICAgcHV0cyAkb3AxICJTVUJNSVQ9XCJcIiIKLSAgICAgICAgICAgIHB1dHMgJG9wMSAiVEFSR0VUPWN0cyIKLSAgICAgICAgICAgIHB1dHMgJG9wMSAiRkZfU1RPUD1jdHMiCi0gICAgICAgICAgICBwdXRzICRvcDEgIlNURVBTID0gW2Zvcm1hdCAidmVyc2lvbiBzZXR1cCAlcyBkb19jbGVhbnVwIiAkc3RlcHNdIgotICAgICAgICAgICAgcHV0cyAkb3AxICIiCi0jICAgICAgICAgICAgcHV0cyAkb3AxICJUT1A9YC9iaW4vZ3JlcCBcIl5zZXQgdmFycyhkZXNpZ24pXCIgJHZhcnMoc2V0dXBfdGNsKSB8IC9iaW4vYXdrICcgeyBwcmludGYoXCIlc1xcblwiLFwkXCQzKSB9ICdgIgotICAgICAgICAgICAgcHV0cyAkb3AxICJUT1A9JHZhcnMoZGVzaWduKSIKLSAgICAgICAgICAgIHB1dHMgJG9wMSAiIgotICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKHVzZV9mbGV4bW9kZWxzKV0gJiYgJHZhcnModXNlX2ZsZXhtb2RlbHMpfSB7Ci0gICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoZmxleG1vZGVsX3Byb3RvdHlwZSldICYmICR2YXJzKGZsZXhtb2RlbF9wcm90b3R5cGUpfSB7Ci0gICAgICAgICAgICAgICAgICBwdXRzICRvcDEgImFsbDogc2V0dXAgcHJvdG90eXBlIG1vZGVsX2dlbiBwYXJ0aXRpb25fcGxhY2UgYXNzaWduX3BpbiBwYXJ0aXRpb24gYmxvY2tzLlwkKFRBUkdFVCkgdG9wLlwkKFRBUkdFVCkiCi0gICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgcHV0cyAkb3AxICJhbGw6IHNldHVwIG1vZGVsX2dlbiBwYXJ0aXRpb25fcGxhY2UgYXNzaWduX3BpbiBwYXJ0aXRpb24gYmxvY2tzLlwkKFRBUkdFVCkgdG9wLlwkKFRBUkdFVCkiCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgcHV0cyAkb3AxICJhbGw6IHNldHVwIHBhcnRpdGlvbl9wbGFjZSBhc3NpZ25fcGluIHBhcnRpdGlvbiBibG9ja3MuXCQoVEFSR0VUKSB0b3AuXCQoVEFSR0VUKSIKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHB1dHMgJG9wMSAiXHRAZWNobyBcIiBNYWtlZmlsZSBUYXJnZXRzXCIiCi0gICAgICAgICAgICBwdXRzICRvcDEgIlx0QGVjaG8gXCI9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cIiIKLSAgICAgICAgICAgIHB1dHMgJG9wMSAiXHRAZWNobyBcIiAgICAgICAgICAgICAgYWxsIDogUnVuIGNvbXBsZXRlIGZsb3cgKGRlZmF1bHQpXCIiCi0gICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnModXNlX2ZsZXhtb2RlbHMpXSAmJiAkdmFycyh1c2VfZmxleG1vZGVscyl9IHsKLSAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhmbGV4bW9kZWxfcHJvdG90eXBlKV0gJiYgJHZhcnMoZmxleG1vZGVsX3Byb3RvdHlwZSl9IHsKLSAgICAgICAgICAgICAgICAgIHB1dHMgJG9wICJcdEBlY2hvIFwiICAgICAgICBwcm90b3R5cGUgOiBGbGV4bW9kZWwgcHJvdG90eXBlXCIiCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICBwdXRzICRvcCAiXHRAZWNobyBcIiAgICAgICAgbW9kZWxfZ2VuIDogR2VuZXJhdGUgZmxleG1vZGVsc1wiIgotICAgICAgICAgICAgfQotICAgICAgICAgICAgcHV0cyAkb3AxICJcdEBlY2hvIFwiICBwYXJ0aXRpb25fcGxhY2UgOiBJbml0aWFsIHBsYWNlbWVudCAmIGZlZWR0aHJvdWdoXCIiCi0gICAgICAgICAgICBwdXRzICRvcDEgIlx0QGVjaG8gXCIgICAgICAgYXNzaWduX3BpbiA6IFBpbiBhc3NpZ25tZW50XCIiCi0gICAgICAgICAgICBwdXRzICRvcDEgIlx0QGVjaG8gXCIgICAgICAgIHBhcnRpdGlvbiA6IFBhcnRpdGlvbiBkZXNpZ25cIiIKLSAgICAgICAgICAgIHB1dHMgJG9wMSAiXHRAZWNobyBcIiAgYmxvY2tzLjx0YXJnZXQ+IDogSW1wbGVtZW50IGJsb2Nrc1wiIgotICAgICAgICAgICAgaWYgeyR2YXJzKGVuYWJsZV9mbGV4aWxtKX0gewotICAgICAgICAgICAgICAgcHV0cyAkb3AxICJcdEBlY2hvIFwiICAgICAgICAgIGZsZXhpbG0gOiBQcmVDVFMgRExNIGZsb3dcIiIKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBwdXRzICRvcDEgIlx0QGVjaG8gXCIgICAgICByZWJ1ZGdldCA6IFJlYnVkZ2V0IGNvbnN0cmFpbnRzXCIiCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBwdXRzICRvcDEgIlx0QGVjaG8gXCI9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cIiIKLSAgICAgICAgICAgIHB1dHMgJG9wMSAiXHRAZWNobyBcIiBNYWtlZmlsZSBPcHRpb25zXCIiCi0gICAgICAgICAgICBwdXRzICRvcDEgIlx0QGVjaG8gXCI9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cIiIKLSAgICAgICAgICAgIHB1dHMgJG9wMSAiXHRAZWNobyBcIiAgIFZQQVRIICA6IE1ha2UgZGlyZWN0b3J5ICAgICAoZGVmYXVsdCBtYWtlKVwiIgotICAgICAgICAgICAgcHV0cyAkb3AxICJcdEBlY2hvIFwiICBTVUJNSVQgIDogTFNGIGxhdW5jaCBjb21tYW5kIChkZWZhdWx0ICcnKVwiIgotICAgICAgICAgICAgcHV0cyAkb3AxICJcdEBlY2hvIFwiIFBBUkFMTEVMIDogTnVtYmVyIG9mIG1hY2hpbmVzIChkZWZhdWx0IC1qMilcIiIKLSAgICAgICAgICAgIGlmIHskdmFycyhub3Z1cyl9IHsKLSAgICAgICAgICAgICAgIHB1dHMgJG9wMSAiXHRAZWNobyBcIiAgICBUT09MICA6IElOTk9WVVMgZXhlY3V0YWJsZSAoZGVmYXVsdCBpbm5vdnVzKVwiIgotICAgICAgICAgICAgICAgcHV0cyAkb3AxICJcdEBlY2hvIFwiICAgIEFSR1MgIDogSU5OT1ZVUyBhcmd1bWVudHMgIChkZWZhdWx0IC1ub3Z1c191aSAtNjQpXCIiCi0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgcHV0cyAkb3AxICJcdEBlY2hvIFwiICAgIFRPT0wgIDogSU5OT1ZVUyBleGVjdXRhYmxlICAgICAoZGVmYXVsdCBpbm5vdnVzKVwiIgotICAgICAgICAgICAgICAgcHV0cyAkb3AxICJcdEBlY2hvIFwiICAgIEFSR1MgIDogSU5OT1ZVUyBhcmd1bWVudHMgICAgICAoZGVmYXVsdCAtbm93aW4gLTY0KVwiIgotICAgICAgICAgICAgfQotICAgICAgICAgICAgcHV0cyAkb3AxICJcdEBlY2hvIFwiIFNDUklQVFMgIDogU2NyaXB0IGRpcmVjdG9yeSAgIChkZWZhdWx0ICR2YXJzKHNjcmlwdF9kaXIpKVwiIgotICAgICAgICAgICAgcHV0cyAkb3AxICJcdEBlY2hvIFwiICAgICBMT0cgIDogTG9nZmlsZSBkaXJlY3RvcnkgIChkZWZhdWx0ICR2YXJzKGxvZ19kaXIpKVwiIgotICAgICAgICAgICAgcHV0cyAkb3AxICJcdEBlY2hvIFwiPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XCIiCi0gICAgICAgICAgICBwdXRzICRvcDEgIiIKLSMgICAgICAgICAgICBwdXRzICRvcDEgImZsb3c6ICR2YXJzKGNvbmZpZ19maWxlcykiCi0jICAgICAgICAgICAgcHV0cyAkb3AxICJcdGV4ZWN1dGVfc3RyaW5nIgotIyAgICAgICAgICAgIHB1dHMgJG9wMSAiXHRAL2Jpbi90b3VjaCBcJChWUEFUSCkvXCRAIgotICAgICAgICAgICAgcHV0cyAkb3AxICJ0b3AuXCQoVEFSR0VUKSA6IGJsb2Nrcy5cJChUQVJHRVQpIgotICAgICAgICAgICAgcHV0cyAkb3AxICJcdGNkICR2YXJzKHBhcnRpdGlvbl9kaXIpL1wkKFRPUCk7IFwkKE1BS0UpIC1mIE1ha2VmaWxlIEZGX1NUT1A9XCQoRkZfU1RPUCkgXCQoVEFSR0VUKSAiCi0gICAgICAgICAgICBwdXRzICRvcDEgIlx0L2Jpbi90b3VjaCBcJChWUEFUSCkvXCRAIgotICAgICAgICAgICAgcHV0cyAkb3AxICIiCi0gICAgICAgICAgICBwdXRzICRvcDEgImJsb2Nrcy5cJChUQVJHRVQpIDogcGFydGl0aW9uIgotICAgICAgICAgICAgcHV0cyAkb3AxICJcdGNkICR2YXJzKHBhcnRpdGlvbl9kaXIpOyBWUEFUSD1cJChWUEFUSCk7IGV4cG9ydCBWUEFUSDsgXCQoTUFLRSkgXCQoUEFSQUxMRUwpIGJsb2NrcyBGRl9TVE9QPVwkKEZGX1NUT1ApIFRBUkdFVD1cJChUQVJHRVQpIgotICAgICAgICAgICAgcHV0cyAkb3AxICJcdC9iaW4vdG91Y2ggXCQoVlBBVEgpL1wkQCIKLSAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyh1c2VfZmxleG1vZGVscyldICYmICR2YXJzKHVzZV9mbGV4bW9kZWxzKX0gewotICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGZsZXhtb2RlbF9wcm90b3R5cGUpXSAmJiAkdmFycyhmbGV4bW9kZWxfcHJvdG90eXBlKX0gewotICAgICAgICAgICAgICAgICAgcHV0cyAkb3AxICJwcm90b3R5cGUgOiBzZXR1cCIKLSAgICAgICAgICAgICAgICAgIHB1dHMgJG9wMSAiXHRWUEFUSD1cJChWUEFUSCk7IGV4cG9ydCBWUEFUSDsgXCQoVE9PTCkgXCQoQVJHUykgLWluaXQgXCQoU0NSSVBUUykvSU5OT1ZVUy9ydW5fcHJvdG90eXBlLnRjbCAtbG9nIFwkKExPRykvcHJvdG90eXBlLmxvZyAtb3ZlcndyaXRlIgotICAgICAgICAgICAgICAgICAgcHV0cyAkb3AxICJcdC9iaW4vdG91Y2ggXCQoVlBBVEgpL3Byb3RvdHlwZSIKLSAgICAgICAgICAgICAgICAgIHB1dHMgJG9wMSAiIgotICAgICAgICAgICAgICAgICAgcHV0cyAkb3AxICJtb2RlbF9nZW4gOiBwcm90b3R5cGUiCi0gICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgcHV0cyAkb3AxICJtb2RlbF9nZW4gOiBzZXR1cCIKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIHB1dHMgJG9wMSAiXHRWUEFUSD1cJChWUEFUSCk7IGV4cG9ydCBWUEFUSDsgXCQoVE9PTCkgXCQoQVJHUykgLWluaXQgXCQoU0NSSVBUUykvSU5OT1ZVUy9ydW5fbW9kZWxfZ2VuLnRjbCAtbG9nIFwkKExPRykvbW9kZWxfZ2VuLmxvZyAtb3ZlcndyaXRlIgotICAgICAgICAgICAgICAgcHV0cyAkb3AxICJcdC9iaW4vdG91Y2ggXCQoVlBBVEgpL21vZGVsX2dlbiIKLSAgICAgICAgICAgICAgIHB1dHMgJG9wMSAiIgotICAgICAgICAgICAgICAgcHV0cyAkb3AxICJwYXJ0aXRpb25fcGxhY2UgOiBtb2RlbF9nZW4iCi0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgcHV0cyAkb3AxICJwYXJ0aXRpb25fcGxhY2UgOiAgc2V0dXAiCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBwdXRzICRvcDEgIlx0VlBBVEg9XCQoVlBBVEgpOyBleHBvcnQgVlBBVEg7IFwkKFRPT0wpIFwkKEFSR1MpIC1pbml0IFwkKFNDUklQVFMpL0lOTk9WVVMvcnVuX3BhcnRpdGlvbl9wbGFjZS50Y2wgLWxvZyBcJChMT0cpL3BhcnRpdGlvbl9wbGFjZS5sb2cgLW92ZXJ3cml0ZSIKLSAgICAgICAgICAgIHB1dHMgJG9wMSAiXHQvYmluL3RvdWNoIFwkKFZQQVRIKS9wYXJ0aXRpb25fcGxhY2UiCi0gICAgICAgICAgICBwdXRzICRvcDEgIiIKLSAgICAgICAgICAgIHB1dHMgJG9wMSAiYXNzaWduX3BpbiA6ICBwYXJ0aXRpb25fcGxhY2UiCi0gICAgICAgICAgICBwdXRzICRvcDEgIlx0VlBBVEg9XCQoVlBBVEgpOyBleHBvcnQgVlBBVEg7IFwkKFRPT0wpIFwkKEFSR1MpIC1pbml0IFwkKFNDUklQVFMpL0lOTk9WVVMvcnVuX2Fzc2lnbl9waW4udGNsIC1sb2cgXCQoTE9HKS9hc3NpZ25fcGluLmxvZyAtb3ZlcndyaXRlIgotICAgICAgICAgICAgcHV0cyAkb3AxICJcdC9iaW4vdG91Y2ggXCQoVlBBVEgpL2Fzc2lnbl9waW4iCi0gICAgICAgICAgICBwdXRzICRvcDEgIiIKLSAgICAgICAgICAgIHB1dHMgJG9wMSAicGFydGl0aW9uIDogIGFzc2lnbl9waW4iCi0gICAgICAgICAgICBwdXRzICRvcDEgIlx0VlBBVEg9XCQoVlBBVEgpOyBleHBvcnQgVlBBVEg7IFwkKFRPT0wpIFwkKEFSR1MpIC1pbml0IFwkKFNDUklQVFMpL0lOTk9WVVMvcnVuX3BhcnRpdGlvbi50Y2wgLWxvZyBcJChMT0cpL3BhcnRpdGlvbi5sb2cgLW92ZXJ3cml0ZSIKLSAgICAgICAgICAgIHB1dHMgJG9wMSAiXHQvYmluL3RvdWNoIFwkKFZQQVRIKS9wYXJ0aXRpb24iCi0gICAgICAgICAgICBwdXRzICRvcDEgIiIKLSAgICAgICAgICAgIHB1dHMgJG9wMSAic2luZ2xlOiIKLSAgICAgICAgICAgIHB1dHMgJG9wMSAiXHRAXCQoTUFLRSkgVEFSR0VUPXNpbmdsZSBGRl9TVE9QPVwkKEZGX1NUT1ApIgotICAgICAgICAgICAgcHV0cyAkb3AxICIiCi0gICAgICAgICAgICBwdXRzICRvcDEgImRlYnVnXyU6IgotICAgICAgICAgICAgcHV0cyAkb3AxICJcdGV4cG9ydCBTVEVQPVwkKiA7IFZQQVRIPVwkKFZQQVRIKTsgZXhwb3J0IFZQQVRIOyBcJChUT09MKSAtaW5pdCBcJChTQ1JJUFRTKS9JTk5PVlVTL3J1bl9kZWJ1Zy50Y2wgLWxvZyBcJChMT0cpL1wkQC5sb2cgLXdpbiBcJChBUkdTOi1ub3dpbj0pIgotICAgICAgICAgICAgcHV0cyAkb3AxICIiCi0gICAgICAgICAgICBwdXRzICRvcDEgInJlc2V0OiIKLSAgICAgICAgICAgIHB1dHMgJG9wMSAiXHRAL2Jpbi9ybSAtZiBcJChWUEFUSCkvKiAkdmFycyhwYXJ0aXRpb25fZGlyKS8qL1wkKFZQQVRIKS8qICR2YXJzKHBhcnRpdGlvbl9kaXIpLyovXCQoVlBBVEgpLy5SVU5OSU5HIgotICAgICAgICAgICAgcHV0cyAkb3AxICIiCi0gICAgICAgICAgICBwdXRzICRvcDEgInNldHVwOiIKLSAgICAgICAgICAgIHB1dHMgJG9wMSAiI1x0L2Jpbi9ybSAtZnIgJHZhcnMocGFydGl0aW9uX2RpcikgXCQoVlBBVEgpIExPRyIKLSAgICAgICAgICAgIHB1dHMgJG9wMSAiXHQvYmluL21rZGlyIC1wICBcJChWUEFUSCkgTE9HIgotICAgICAgICAgICAgcHV0cyAkb3AxICJcdC9iaW4vdG91Y2ggXCQoVlBBVEgpL3NldHVwIgotICAgICAgICAgICAgY2xvc2UgJG9wMQotICAgICAgICAgICAgc2V0IG9wMiBbb3BlbiBNYWtlZmlsZS5wYXNzMiB3XQotICAgICAgICAgICAgcHV0cyAkb3AyICJWRVJTSU9OPTE3LjEwLXAwMDNfMSIKLSAgICAgICAgICAgIHB1dHMgJG9wMiAiVlBBVEg9Li9tYWtlIgotICAgICAgICAgICAgcHV0cyAkb3AyICJUT09MPSR2YXJzKG1ha2VfdG9vbCkiCi0gICAgICAgICAgICBwdXRzICRvcDIgIlNDUklQVFM9JHZhcnMoc2NyaXB0X2RpcikiCi0gICAgICAgICAgICBwdXRzICRvcDIgIkxPRz0kdmFycyhsb2dfZGlyKSIKLSAgICAgICAgICAgIHB1dHMgJG9wMiAiQVJHUz0kdmFycyhtYWtlX3Rvb2xfYXJncykiCi0gICAgICAgICAgICBwdXRzICRvcDIgIlBBUkFMTEVMPS1qMiIKLSAgICAgICAgICAgIHB1dHMgJG9wMiAiU1VCTUlUPVwiXCIiCi0gICAgICAgICAgICBwdXRzICRvcDIgIlRBUkdFVD1zaWdub2ZmIgotICAgICAgICAgICAgcHV0cyAkb3AyICJGRl9TVE9QPXNpZ25vZmYiCi0gICAgICAgICAgICBwdXRzICRvcDIgIlNURVBTID0gW2Zvcm1hdCAidmVyc2lvbiBzZXR1cCAlcyBkb19jbGVhbnVwIiAkc3RlcHNdIgotICAgICAgICAgICAgcHV0cyAkb3AyICIiCi0jICAgICAgICAgICAgcHV0cyAkb3AyICJUT1A9YC9iaW4vZ3JlcCBcIl5zZXQgdmFycyhkZXNpZ24pXCIgJHZhcnMoc2V0dXBfdGNsKSB8IC9iaW4vYXdrICcgeyBwcmludGYoXCIlc1xcblwiLFwkXCQzKSB9ICdgIgotICAgICAgICAgICAgcHV0cyAkb3AyICJUT1A9JHZhcnMoZGVzaWduKSIKLSAgICAgICAgICAgIHB1dHMgJG9wMiAiIgotICAgICAgICAgICAgaWYgeyR2YXJzKGVuYWJsZV9mbGV4aWxtKX0gewotICAgICAgICAgICAgICAgcHV0cyAkb3AyICJhbGw6IHNldHVwIHJlYnVkZ2V0IGJsb2Nrcy5cJChUQVJHRVQpIHRvcC5cJChUQVJHRVQpIGFzc2VtYmxlIgotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIHB1dHMgJG9wMiAiYWxsOiBzZXR1cCByZWJ1ZGdldCBibG9ja3MuXCQoVEFSR0VUKSB0b3AuXCQoVEFSR0VUKSBhc3NlbWJsZSIKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHB1dHMgJG9wMiAiIgotICAgICAgICAgICAgcHV0cyAkb3AyICJoZWxwOiIKLSAgICAgICAgICAgIHB1dHMgJG9wMiAiXHRAZWNobyBcIj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVwiIgotICAgICAgICAgICAgcHV0cyAkb3AyICJcdEBlY2hvIFwiICAgICAgICAgICBcJChWRVJTSU9OKSAgRm91bmRhdGlvbiBGbG93c1wiIgotICAgICAgICAgICAgcHV0cyAkb3AyICJcdEBlY2hvIFwiPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XCIiCi0gICAgICAgICAgICBwdXRzICRvcDIgIlx0QGVjaG8gXCIgTWFrZWZpbGUgVGFyZ2V0c1wiIgotICAgICAgICAgICAgcHV0cyAkb3AyICJcdEBlY2hvIFwiPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XCIiCi0gICAgICAgICAgICBwdXRzICRvcDIgIlx0QGVjaG8gXCIgICAgICAgICAgICAgIGFsbCA6IFJ1biBjb21wbGV0ZSBmbG93IChkZWZhdWx0KVwiIgotICAgICAgICAgICAgaWYgeyR2YXJzKGVuYWJsZV9mbGV4aWxtKX0gewotICAgICAgICAgICAgICAgcHV0cyAkb3AyICJcdEBlY2hvIFwiICAgICAgICAgcmVidWRnZXQgOiBSZWJ1ZGdldCBkZXNpZ25cIiIKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHB1dHMgJG9wMiAiXHRAZWNobyBcIiAgYmxvY2tzLjx0YXJnZXQ+IDogSW1wbGVtZW50IGJsb2Nrc1wiIgotICAgICAgICAgICAgcHV0cyAkb3AyICJcdEBlY2hvIFwiICAgICAgICAgYXNzZW1ibGUgOiBBc3NlbWJsZSBkZXNpZ25cIiIKLSAgICAgICAgICAgIHB1dHMgJG9wMiAiXHRAZWNobyBcIj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVwiIgotICAgICAgICAgICAgcHV0cyAkb3AyICJcdEBlY2hvIFwiIE1ha2VmaWxlIE9wdGlvbnNcIiIKLSAgICAgICAgICAgIHB1dHMgJG9wMiAiXHRAZWNobyBcIj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVwiIgotICAgICAgICAgICAgcHV0cyAkb3AyICJcdEBlY2hvIFwiICAgVlBBVEggIDogTWFrZSBkaXJlY3RvcnkgICAgIChkZWZhdWx0IG1ha2UpXCIiCi0gICAgICAgICAgICBwdXRzICRvcDIgIlx0QGVjaG8gXCIgIFNVQk1JVCAgOiBMU0YgbGF1bmNoIGNvbW1hbmQgKGRlZmF1bHQgJycpXCIiCi0gICAgICAgICAgICBwdXRzICRvcDIgIlx0QGVjaG8gXCIgUEFSQUxMRUwgOiBOdW1iZXIgb2YgbWFjaGluZXMgKGRlZmF1bHQgLWoyKVwiIgotICAgICAgICAgICAgaWYgeyR2YXJzKG5vdnVzKX0gewotICAgICAgICAgICAgICAgcHV0cyAkb3AyICJcdEBlY2hvIFwiICAgIFRPT0wgIDogSU5OT1ZVUyBleGVjdXRhYmxlIChkZWZhdWx0IGlubm92dXMpXCIiCi0gICAgICAgICAgICAgICBwdXRzICRvcDIgIlx0QGVjaG8gXCIgICAgQVJHUyAgOiBJTk5PVlVTIGFyZ3VtZW50cyAgKGRlZmF1bHQgLW5vdnVzX3VpIC02NClcIiIKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBwdXRzICRvcDIgIlx0QGVjaG8gXCIgICAgVE9PTCAgOiBJTk5PVlVTIGV4ZWN1dGFibGUgICAgIChkZWZhdWx0IGlubm92dXMpXCIiCi0gICAgICAgICAgICAgICBwdXRzICRvcDIgIlx0QGVjaG8gXCIgICAgQVJHUyAgOiBJTk5PVlVTIGFyZ3VtZW50cyAgICAgIChkZWZhdWx0IC1ub3dpbiAtNjQpXCIiCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBwdXRzICRvcDIgIlx0QGVjaG8gXCIgU0NSSVBUUyAgOiBTY3JpcHQgZGlyZWN0b3J5ICAgKGRlZmF1bHQgJHZhcnMoc2NyaXB0X2RpcikpXCIiCi0gICAgICAgICAgICBwdXRzICRvcDIgIlx0QGVjaG8gXCIgICAgIExPRyAgOiBMb2dmaWxlIGRpcmVjdG9yeSAgKGRlZmF1bHQgJHZhcnMobG9nX2RpcikpXCIiCi0gICAgICAgICAgICBwdXRzICRvcDIgIlx0QGVjaG8gXCI9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cIiIKLSAgICAgICAgICAgIHB1dHMgJG9wMiAiIgotIyAgICAgICAgICAgIHB1dHMgJG9wMiAiZmxvdzogJHZhcnMoY29uZmlnX2ZpbGVzKSIKLSMgICAgICAgICAgICBwdXRzICRvcDIgIlx0ZXhlY3V0ZV9zdHJpbmciCi0jICAgICAgICAgICAgcHV0cyAkb3AyICJcdEAvYmluL3RvdWNoIFwkKFZQQVRIKS9cJEAiCi0gICAgICAgICAgICBwdXRzICRvcDIgImFzc2VtYmxlOiB0b3AuXCQoVEFSR0VUKSIKLSAgICAgICAgICAgIHB1dHMgJG9wMiAiXHRWUEFUSD1cJChWUEFUSCk7IGV4cG9ydCBWUEFUSDsgXCQoVE9PTCkgXCQoQVJHUykgLWluaXQgXCQoU0NSSVBUUykvSU5OT1ZVUy9ydW5fYXNzZW1ibGUudGNsIC1sb2cgXCQoTE9HKS9hc3NlbWJsZS5sb2cgLW92ZXJ3cml0ZSIKLSAgICAgICAgICAgIHB1dHMgJG9wMiAiXHQvYmluL3RvdWNoIFwkKFZQQVRIKS9hc3NlbWJsZSIKLSAgICAgICAgICAgIHB1dHMgJG9wMiAiIgotICAgICAgICAgICAgcHV0cyAkb3AyICJ0b3AuXCQoVEFSR0VUKSA6IGJsb2Nrcy5cJChUQVJHRVQpIgotICAgICAgICAgICAgcHV0cyAkb3AyICJcdGNkICR2YXJzKHBhcnRpdGlvbl9kaXJfcGFzczIpL1wkKFRPUCk7IFwkKE1BS0UpIC1mIE1ha2VmaWxlIEZGX1NUT1A9XCQoRkZfU1RPUCkgXCQoVEFSR0VUKSAiCi0gICAgICAgICAgICBwdXRzICRvcDIgIlx0L2Jpbi90b3VjaCBcJChWUEFUSCkvXCRAIgotICAgICAgICAgICAgcHV0cyAkb3AyICIiCi0gICAgICAgICAgICBwdXRzICRvcDIgImJsb2Nrcy5cJChUQVJHRVQpIDogcmVidWRnZXQiCi0gICAgICAgICAgICBwdXRzICRvcDIgIlx0Y2QgJHZhcnMocGFydGl0aW9uX2Rpcl9wYXNzMik7IFZQQVRIPVwkKFZQQVRIKTsgZXhwb3J0IFZQQVRIOyBcJChNQUtFKSBcJChQQVJBTExFTCkgYmxvY2tzIEZGX1NUT1A9XCQoRkZfU1RPUCkgVEFSR0VUPVwkKFRBUkdFVCkiCi0gICAgICAgICAgICBwdXRzICRvcDIgIlx0L2Jpbi90b3VjaCBcJChWUEFUSCkvXCRAIgotICAgICAgICAgICAgcHV0cyAkb3AyICIiCi0gICAgICAgICAgICBwdXRzICRvcDEgInJlYnVkZ2V0IDogdG9wLmN0cyIKLSAgICAgICAgICAgIHB1dHMgJG9wMSAiXHRWUEFUSD1cJChWUEFUSCk7IGV4cG9ydCBWUEFUSDsgXCQoVE9PTCkgXCQoQVJHUykgLWluaXQgXCQoU0NSSVBUUykvSU5OT1ZVUy9ydW5fcmVidWRnZXQudGNsIC1sb2cgXCQoTE9HKS9yZWJ1ZGdldC5sb2cgLW92ZXJ3cml0ZSIKLSAgICAgICAgICAgIHB1dHMgJG9wMSAiXHQvYmluL3RvdWNoIFwkKFZQQVRIKS9yZWJ1ZGdldCIKLSAgICAgICAgICAgIHB1dHMgJG9wMSAiIgotICAgICAgICAgICAgcHV0cyAkb3AyICJzaW5nbGU6IgotICAgICAgICAgICAgcHV0cyAkb3AyICJcdEBcJChNQUtFKSBUQVJHRVQ9c2luZ2xlIEZGX1NUT1A9XCQoRkZfU1RPUCkiCi0gICAgICAgICAgICBwdXRzICRvcDIgIiIKLSAgICAgICAgICAgIHB1dHMgJG9wMiAiZGVidWdfJToiCi0gICAgICAgICAgICBwdXRzICRvcDIgIlx0ZXhwb3J0IFNURVA9XCQqIDsgVlBBVEg9XCQoVlBBVEgpOyBleHBvcnQgVlBBVEg7IFwkKFRPT0wpIC1pbml0IFwkKFNDUklQVFMpL0lOTk9WVVMvcnVuX2RlYnVnLnRjbCAtbG9nIFwkKExPRykvXCRALmxvZyAtd2luIFwkKEFSR1M6LW5vd2luPSkiCi0gICAgICAgICAgICBwdXRzICRvcDIgIiIKLSAgICAgICAgICAgIHB1dHMgJG9wMiAicmVzZXQ6IgotICAgICAgICAgICAgcHV0cyAkb3AyICJcdEAvYmluL3JtIC1mIFwkKFZQQVRIKS8qICR2YXJzKHBhcnRpdGlvbl9kaXJfcGFzczIpLyovXCQoVlBBVEgpLyogJHZhcnMocGFydGl0aW9uX2Rpcl9wYXNzMikvKi9cJChWUEFUSCkvLlJVTk5JTkciCi0gICAgICAgICAgICBwdXRzICRvcDIgIiIKLSAgICAgICAgICAgIHB1dHMgJG9wMiAic2V0dXA6IgotICAgICAgICAgICAgcHV0cyAkb3AyICIjXHQvYmluL3JtIC1mciAkdmFycyhwYXJ0aXRpb25fZGlyX3Bhc3MyKSBcJChWUEFUSCkgTE9HIgotICAgICAgICAgICAgcHV0cyAkb3AyICJcdC9iaW4vbWtkaXIgLXAgIFwkKFZQQVRIKSBMT0ciCi0gICAgICAgICAgICBjbG9zZSAkb3AyCi0KLSAgICAgICAgICAgIHB1dHMgJG9wICJpbmNsdWRlIE1ha2VmaWxlLnBhc3MxIgotICAgICAgICAgICAgcHV0cyAkb3AgImluY2x1ZGUgTWFrZWZpbGUucGFzczIiCi0KLSAgICAgICAgICAgIGlmIHskdmFycyhnZW5lcmF0ZV9mbG93X3N0ZXBzKSAmJiBbaW5mbyBleGlzdHMgdmFycyhmbG93X3N0ZXBzKV19IHsKLSAgICAgICAgICAgICAgIHNldCBmcDEgW29wZW4gJHZhcnMoc2NyaXB0X2RpcikvZmxvd19jb25maWcudGNsIHddCi0gICAgICAgICAgICAgICBzZXQgZnAyIFtvcGVuICR2YXJzKHNjcmlwdF9kaXIpL2Zsb3dfc3RlcHMudGNsIHddCi0gICAgICAgICAgICAgICBwdXRzICRmcDEgInNldF9kYiBmbG93X2RhdGFiYXNlX2RpcmVjdG9yeSAkdmFycyhkYnNfZGlyKSIKLSAgICAgICAgICAgICAgIHB1dHMgJGZwMSAic2V0X2RiIGZsb3dfcmVwb3J0X2RpcmVjdG9yeSAkdmFycyhycHRfZGlyKSIKLSAgICAgICAgICAgICAgIHB1dHMgJGZwMSAic2V0X2RiIGZsb3dfbG9nX2RpcmVjdG9yeSAkdmFycyhsb2dfZGlyKSIKLSAgICAgICAgICAgICAgIHB1dHMgJGZwMSAiXG5zZXRfZGIgZmxvd19tYWlsX3RvIFtleGVjIHdob2FtaV0iCi0gICAgICAgICAgICAgICBwdXRzICRmcDEgInNldF9kYiBmbG93X21haWxfb25fZXJyb3IgdHJ1ZVxuIgotIyAgICAgICAgICAgICAgIHB1dHMgJGZwICR2YXJzKGZsb3dfc3RlcHMpCi0gICAgICAgICAgICAgICBmb3JlYWNoIHAgW2NvbmNhdCAkdmFycyhwYXJ0aXRpb25fbGlzdCkgJHZhcnMoZGVzaWduKV0gewotIyAgICAgICAgICAgICAgICAgIHNldCB2YXJzKGZsb3dfbmFtZSkgJHAKLSAgICAgICAgICAgICAgICAgIGlmIHtbZmlsZSBleGlzdHMgJHZhcnMocGFydGl0aW9uX2RpcikvJHAvJHZhcnMoc2NyaXB0X2RpcikvLmhpZXJzdGVwcy50Y2xdfSB7Ci0jICAgICAgICAgICAgICAgICAgICAgcHV0cyAkZnAyICIjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gJHAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iIAotICAgICAgICAgICAgICAgICAgICAgc2V0IGlwIFtvcGVuICR2YXJzKHBhcnRpdGlvbl9kaXIpLyRwLyR2YXJzKHNjcmlwdF9kaXIpLy5oaWVyc3RlcHMudGNsIHJdCi0gICAgICAgICAgICAgICAgICAgICBpZiB7JHAgIT0gJHZhcnMoZGVzaWduKX0gewotICAgICAgICAgICAgICAgICAgICAgICAgd2hpbGUge1tnZXRzICRpcCBsaW5lXT49MH0geyAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1dHMgJGZwMiAkbGluZSAKLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICB3aGlsZSB7W2dldHMgJGlwIGxpbmVdPj0wfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICBpZiB7W3JlZ2V4cCAiY3JlYXRlX2Zsb3dfc3RlcCAtbmFtZSB0b3BfIiAkbGluZV19IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1dHMgJGZwMiAkbGluZSAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdoaWxlIHtbZ2V0cyAkaXAgbGluZV0+PTB9IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIHtbcmVnZXhwICJeXH0iICRsaW5lXX0gewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHV0cyAkZnAyICRsaW5lIAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdXRzICRmcDIgJGxpbmUgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICBpZiB7W2ZpbGUgZXhpc3RzICR2YXJzKHBhcnRpdGlvbl9kaXIpLyRwL3J1bl9mbG93LnRjbF19IHsKLSAgICAgICAgICAgICAgICAgICAgIHNldCBpcCBbb3BlbiAkdmFycyhwYXJ0aXRpb25fZGlyKS8kcC9ydW5fZmxvdy50Y2wgcl0KLSAgICAgICAgICAgICAgICAgICAgIHdoaWxlIHtbZ2V0cyAkaXAgbGluZV0+PTB9IHsgCi0gICAgICAgICAgICAgICAgICAgICAgICBwdXRzICRmcCAkbGluZSAKLSAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhwYXJ0aXRpb25fZGlyX3Bhc3MyKV0gJiYgW2ZpbGUgZXhpc3RzICR2YXJzKHBhcnRpdGlvbl9kaXJfcGFzczIpLyRwL3J1bl9mbG93LnRjbF19IHsKLSAgICAgICAgICAgICAgICAgICAgIHNldCBpcCBbb3BlbiAkdmFycyhwYXJ0aXRpb25fZGlyX3Bhc3MyKS8kcC9ydW5fZmxvdy50Y2wgcl0KLSAgICAgICAgICAgICAgICAgICAgIHdoaWxlIHtbZ2V0cyAkaXAgbGluZV0+PTB9IHsgCi0gICAgICAgICAgICAgICAgICAgICAgICBwdXRzICRmcCAkbGluZSAKLSAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIHB1dHMgJGZwMiAiIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIEhJRVIgU1RFUFMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iIAotICAgICAgICAgICAgICAgcHV0cyAkZnAyICR2YXJzKGZsb3dfc3RlcHMsaGllcikKLSAgICAgICAgICAgICAgIHNldCB2YXJzKGZsb3dfbmFtZSkgJHZhcnMoZGVzaWduKQotICAgICAgICAgICAgICAgc2V0IGFzdGVwcyBbRkY6OmFkanVzdF9zdGVwc10KLSMgICAgICAgICAgICAgICBwdXRzICRmcCAiY3JlYXRlX2Zsb3cgXFxcbiAgIC1uYW1lICR2YXJzKGZsb3dfbmFtZSlcXFxuICAgLXRvb2wgJHZhcnMobWFrZV90b29sKVxcXG4gICAtdG9vbF9vcHRpb25zIHstbG9nICR2YXJzKGZsb3dfbmFtZSkubG9nfVxcXG4gICBcW2xpc3QgJGFzdGVwc1xdXG4iCi0gICAgICAgICAgICAgICBzZXQgcHN0ZXBzIFtsaXN0XQotICAgICAgICAgICAgICAgc2V0IGJzdGVwcyBbbGlzdF0KLSAgICAgICAgICAgICAgIGZvcmVhY2ggcyAkYXN0ZXBzIHsKLSAgICAgICAgICAgICAgICAgIGlmIHsoW2xzZWFyY2ggJHZhcnMoZnN0ZXBzKSAkc10gIT0gLTEpICYmICgkcyAhPSAiYXNzZW1ibGUiKX0gewotICAgICAgICAgICAgICAgICAgICAgbGFwcGVuZCBic3RlcHMgJHMKLSAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICBpZiB7JHMgIT0gImFzc2VtYmxlIn0gewotICAgICAgICAgICAgICAgICAgICAgICAgbGFwcGVuZCBwc3RlcHMgJHMKLSAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIHNldCB2YXJzKGZsb3dfbmFtZSkgZmluYWxfYXNzZW1ibHkKLSAgICAgICAgICAgICAgIHB1dHMgJGZwICJjcmVhdGVfZmxvdyBcXFxuICAgLW5hbWUgJHZhcnMoZmxvd19uYW1lKVxcXG4gICAtdG9vbCAkdmFycyhtYWtlX3Rvb2wpXFxcbiAgIC10b29sX29wdGlvbnMgey1sb2cgJHZhcnMoZmxvd19uYW1lKS5sb2d9XFxcbiAgIFxbbGlzdCBhc3NlbWJsZVxdXG4iCi0gICAgICAgICAgICAgICBzZXQgdmFycyhmbG93X25hbWUpIHBhcnRpdGlvbmluZwotICAgICAgICAgICAgICAgcHV0cyAkZnAgImNyZWF0ZV9mbG93IFxcXG4gICAtbmFtZSAkdmFycyhmbG93X25hbWUpXFxcbiAgIC10b29sICR2YXJzKG1ha2VfdG9vbClcXFxuICAgLXRvb2xfb3B0aW9ucyB7LWxvZyAkdmFycyhmbG93X25hbWUpLmxvZ31cXFxuICAgXFtsaXN0ICRwc3RlcHNcXVxuIgotIyAgICAgICAgICAgICAgIHB1dHMgJGZwICJydW5fZmxvdyAtZmxvdyAkdmFycyhmbG93X25hbWUpIgotICAgICAgICAgICAgICAgdW5zZXQgdmFycyhmbG93X3N0ZXBzKQotIyAgICAgICAgICAgICAgIHNldCB2YXJzKGZsb3dfbmFtZSkgJHZhcnMoZGVzaWduKQotIyAgICAgICAgICAgICAgIHB1dHMgJGZwICJjcmVhdGVfZmxvdyBcXFxuICAgLW5hbWUgJHZhcnMoZmxvd19uYW1lKVxcXG4gICAtdG9vbCAkdmFycyhtYWtlX3Rvb2wpXFxcbiAgIC10b29sX29wdGlvbnMgey1sb2cgJHZhcnMoZmxvd19uYW1lKS5sb2d9XFxcbiAgIFxbbGlzdCAkYnN0ZXBzXF1cbiIKLSAgICAgICAgICAgICAgIGlmIHtbZmlsZSBleGlzdHMgJHZhcnMoY3dkKS8ucGx1Z2luc119IHsKLSAgICAgICAgICAgICAgICAgIHNldCBpcCBbb3BlbiAkdmFycyhjd2QpLy5wbHVnaW5zIHJdCi0gICAgICAgICAgICAgICAgICB3aGlsZSB7W2dldHMgJGlwIGxpbmVdPj0wfSB7IAotICAgICAgICAgICAgICAgICAgICAgcHV0cyAkZnAxICRsaW5lIAotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgY2xvc2UgJGlwCi0gICAgICAgICAgICAgICAgICBmaWxlIGRlbGV0ZSAkdmFycyhjd2QpLy5wbHVnaW5zIAotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgY2xvc2UgJGZwCi0gICAgICAgICAgICAgICBjbG9zZSAkZnAxCi0gICAgICAgICAgICAgICBjbG9zZSAkZnAyCi0gICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0gICAgICAgICAiZmxleGlsbSIgewotICAgICAgICAgICAgcHV0cyAkb3AgIlZFUlNJT049MTcuMTAtcDAwM18xIgotICAgICAgICAgICAgcHV0cyAkb3AgIlZQQVRIPS4vbWFrZSIKLSAgICAgICAgICAgIHB1dHMgJG9wICJUT09MPSR2YXJzKG1ha2VfdG9vbCkiCi0gICAgICAgICAgICBwdXRzICRvcCAiU0NSSVBUUz1GRiIKLSAgICAgICAgICAgIHB1dHMgJG9wICJMT0c9TE9HIgotICAgICAgICAgICAgcHV0cyAkb3AgIkFSR1M9JHZhcnMobWFrZV90b29sX2FyZ3MpIgotICAgICAgICAgICAgcHV0cyAkb3AgIlBBUkFMTEVMPS1qMiIKLSAgICAgICAgICAgIHB1dHMgJG9wICJTVUJNSVQ9XCJcIiIKLSAgICAgICAgICAgIHB1dHMgJG9wICJUQVJHRVQ9YXNzZW1ibGUiCi0gICAgICAgICAgICBwdXRzICRvcCAiRkZfU1RPUD1hc3NlbWJsZSIKLSAgICAgICAgICAgIHB1dHMgJG9wICJTVEVQUyA9IHZlcnNpb24gc2V0dXAgZG9fY2xlYW51cCIKLSAgICAgICAgICAgIHB1dHMgJG9wICIiCi0jICAgICAgICAgICAgcHV0cyAkb3AgIlRPUD1gL2Jpbi9ncmVwIFwiXnNldCB2YXJzKGRlc2lnbilcIiAkdmFycyhzZXR1cF90Y2wpIHwgL2Jpbi9hd2sgJyB7IHByaW50ZihcIiVzXFxuXCIsXCRcJDMpIH0gJ2AiCi0gICAgICAgICAgICBwdXRzICRvcCAiVE9QPSR2YXJzKGRlc2lnbikiCi0gICAgICAgICAgICBwdXRzICRvcCAiIgotICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKHVzZV9mbGV4bW9kZWxzKV0gJiYgJHZhcnModXNlX2ZsZXhtb2RlbHMpfSB7Ci0gICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoZmxleG1vZGVsX3Byb3RvdHlwZSldICYmICR2YXJzKGZsZXhtb2RlbF9wcm90b3R5cGUpfSB7Ci0gICAgICAgICAgICAgICAgICBwdXRzICRvcCAiYWxsOiBzZXR1cCBwcm90b3R5cGUgbW9kZWxfZ2VuIHBhcnRpdGlvbl9wbGFjZSBhc3NpZ25fcGluIHBhcnRpdGlvbiBibG9ja3MucHJlY3RzIHRvcC5wcmVjdHMgYXNzZW1ibGVfZmxleGlsbSBibG9ja3Muc2lnbm9mZiB0b3Auc2lnbm9mZiBhc3NlbWJsZSIKLSAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICBwdXRzICRvcCAiYWxsOiBzZXR1cCBtb2RlbF9nZW4gcGFydGl0aW9uX3BsYWNlIGFzc2lnbl9waW4gcGFydGl0aW9uIGJsb2Nrcy5wcmVjdHMgdG9wLnByZWN0cyBhc3NlbWJsZV9mbGV4aWxtIGJsb2Nrcy5zaWdub2ZmIHRvcC5zaWdub2ZmIGFzc2VtYmxlIgotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIHB1dHMgJG9wICJhbGw6IHNldHVwIHBhcnRpdGlvbl9wbGFjZSBhc3NpZ25fcGluIHBhcnRpdGlvbiBibG9ja3MucHJlY3RzIHRvcC5wcmVjdHMgYXNzZW1ibGVfZmxleGlsbSBibG9ja3Muc2lnbm9mZiB0b3Auc2lnbm9mZiBhc3NlbWJsZSIKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgcHV0cyAkb3AgIiIKLSAgICAgICAgICAgIHB1dHMgJG9wICJoZWxwOiIKLSAgICAgICAgICAgIHB1dHMgJG9wICJcdEBlY2hvIFwiPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XCIiCi0gICAgICAgICAgICBwdXRzICRvcCAiXHRAZWNobyBcIiAgICAgICAgICAgXCQoVkVSU0lPTikgIEZvdW5kYXRpb24gRmxvd3NcIiIKLSAgICAgICAgICAgIHB1dHMgJG9wICJcdEBlY2hvIFwiPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XCIiCi0gICAgICAgICAgICBwdXRzICRvcCAiXHRAZWNobyBcIiBNYWtlZmlsZSBUYXJnZXRzXCIiCi0gICAgICAgICAgICBwdXRzICRvcCAiXHRAZWNobyBcIj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVwiIgotICAgICAgICAgICAgcHV0cyAkb3AgIlx0QGVjaG8gXCIgICAgICAgICAgICAgIGFsbCA6IFJ1biBjb21wbGV0ZSBmbG93IChkZWZhdWx0KVwiIgotICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKHVzZV9mbGV4bW9kZWxzKV0gJiYgJHZhcnModXNlX2ZsZXhtb2RlbHMpfSB7Ci0gICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoZmxleG1vZGVsX3Byb3RvdHlwZSldICYmICR2YXJzKGZsZXhtb2RlbF9wcm90b3R5cGUpfSB7Ci0gICAgICAgICAgICAgICAgICBwdXRzICRvcCAiXHRAZWNobyBcIiAgICAgICAgcHJvdG90eXBlIDogRmxleG1vZGVsIHByb3RvdHlwZVwiIgotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgcHV0cyAkb3AgIlx0QGVjaG8gXCIgICAgICAgIG1vZGVsX2dlbiA6IEdlbmVyYXRlIGZsZXhtb2RlbHNcIiIKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHB1dHMgJG9wICJcdEBlY2hvIFwiICBwYXJ0aXRpb25fcGxhY2UgOiBJbml0aWFsIHBsYWNlbWVudCAmIGZlZWR0aHJvdWdoXCIiCi0gICAgICAgICAgICBwdXRzICRvcCAiXHRAZWNobyBcIiAgICAgICBhc3NpZ25fcGluIDogUGluIGFzc2lnbm1lbnRcIiIKLSAgICAgICAgICAgIHB1dHMgJG9wICJcdEBlY2hvIFwiICAgICAgICBwYXJ0aXRpb24gOiBQYXJ0aXRpb24gZGVzaWduXCIiCi0gICAgICAgICAgICBwdXRzICRvcCAiXHRAZWNobyBcIiAgICAgYmxvY2sucHJlY3RzIDogSW1wbGVtZW50IGJsb2NrcyB0byBwcmVDVFMgYW5kIGdlbmVyYXRlIGZsZXhJbG1cIiIKLSAgICAgICAgICAgIHB1dHMgJG9wICJcdEBlY2hvIFwiICAgICAgIHRvcC5wcmVjdHMgOiBmbGV4SWxtIHByZWN0cyBvcHRpbWl6YXRpb24gYW5kIGZsZXhJbG0gRUNPXCIiCi0gICAgICAgICAgICBwdXRzICRvcCAiXHRAZWNobyBcIiBhc3NlbWJsZV9mbGV4aWxtIDogQ2hlY2sgYXNzZW1ibGVkIHByZUNUUyB0aW1pbmdcIiIKLSAgICAgICAgICAgIHB1dHMgJG9wICJcdEBlY2hvIFwiICAgIGJsb2NrLnNpZ25vZmYgOiBpbXBsZW1lbnQgYmxvY2tzXCIiCi0gICAgICAgICAgICBwdXRzICRvcCAiXHRAZWNobyBcIiAgICAgIHRvcC5zaWdub2ZmIDogaW1wbGVtZW50IHRvcFwiIgotICAgICAgICAgICAgcHV0cyAkb3AgIlx0QGVjaG8gXCIgICAgICAgICBhc3NlbWJsZSA6IGZpbmFsIGNoaXAgYXNzZW1ibHlcIiIKLSAgICAgICAgICAgIHB1dHMgJG9wICJcdEBlY2hvIFwiPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XCIiCi0gICAgICAgICAgICBwdXRzICRvcCAiXHRAZWNobyBcIiBNYWtlZmlsZSBPcHRpb25zXCIiCi0gICAgICAgICAgICBwdXRzICRvcCAiXHRAZWNobyBcIj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVwiIgotICAgICAgICAgICAgcHV0cyAkb3AgIlx0QGVjaG8gXCIgICBWUEFUSCAgOiBNYWtlIGRpcmVjdG9yeSAgICAgKGRlZmF1bHQgbWFrZSlcIiIKLSAgICAgICAgICAgIHB1dHMgJG9wICJcdEBlY2hvIFwiICBTVUJNSVQgIDogTFNGIGxhdW5jaCBjb21tYW5kIChkZWZhdWx0ICcnKVwiIgotICAgICAgICAgICAgcHV0cyAkb3AgIlx0QGVjaG8gXCIgUEFSQUxMRUwgOiBOdW1iZXIgb2YgbWFjaGluZXMgKGRlZmF1bHQgLWoyKVwiIgotICAgICAgICAgICAgaWYgeyR2YXJzKG5vdnVzKX0gewotICAgICAgICAgICAgICAgcHV0cyAkb3AgIlx0QGVjaG8gXCIgICAgVE9PTCAgOiBJTk5PVlVTIGV4ZWN1dGFibGUgKGRlZmF1bHQgaW5ub3Z1cylcIiIKLSAgICAgICAgICAgICAgIHB1dHMgJG9wICJcdEBlY2hvIFwiICAgIEFSR1MgIDogSU5OT1ZVUyBhcmd1bWVudHMgIChkZWZhdWx0IC1ub3Z1c191aSAtNjQpXCIiCi0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgcHV0cyAkb3AgIlx0QGVjaG8gXCIgICAgVE9PTCAgOiBJTk5PVlVTIGV4ZWN1dGFibGUgICAgIChkZWZhdWx0IGlubm92dXMpXCIiCi0gICAgICAgICAgICAgICBwdXRzICRvcCAiXHRAZWNobyBcIiAgICBBUkdTICA6IElOTk9WVVMgYXJndW1lbnRzICAgICAgKGRlZmF1bHQgLW5vd2luIC02NClcIiIKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHB1dHMgJG9wICJcdEBlY2hvIFwiIFNDUklQVFMgIDogU2NyaXB0IGRpcmVjdG9yeSAgIChkZWZhdWx0IEZGKVwiIgotICAgICAgICAgICAgcHV0cyAkb3AgIlx0QGVjaG8gXCIgICAgIExPRyAgOiBMb2dmaWxlIGRpcmVjdG9yeSAgKGRlZmF1bHQgTE9HKVwiIgotICAgICAgICAgICAgcHV0cyAkb3AgIlx0QGVjaG8gXCI9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cIiIKLSAgICAgICAgICAgIHB1dHMgJG9wICJhc3NlbWJsZTogdG9wLnNpZ25vZmYiCi0gICAgICAgICAgICBwdXRzICRvcCAiXHRWUEFUSD1cJChWUEFUSCk7IGV4cG9ydCBWUEFUSDsgXCQoVE9PTCkgXCQoQVJHUykgLWluaXQgXCQoU0NSSVBUUykvSU5OT1ZVUy9ydW5fYXNzZW1ibGUudGNsIC1sb2cgXCQoTE9HKS9hc3NlbWJsZS5sb2cgLW92ZXJ3cml0ZSIKLSAgICAgICAgICAgIHB1dHMgJG9wICJcdC9iaW4vdG91Y2ggXCQoVlBBVEgpL2Fzc2VtYmxlIgotICAgICAgICAgICAgcHV0cyAkb3AgIiIKLSAgICAgICAgICAgIHB1dHMgJG9wICJ0b3Auc2lnbm9mZiA6IGJsb2Nrcy5zaWdub2ZmIgotICAgICAgICAgICAgcHV0cyAkb3AgIlx0Y2QgUEFSVElUSU9OX1BSRUNUUy9cJChUT1ApOyBcJChNQUtFKSAtZiBNYWtlZmlsZSBGRl9TVE9QPXNpZ25vZmYgc2lnbm9mZiIKLSAgICAgICAgICAgIHB1dHMgJG9wICIJL2Jpbi90b3VjaCBcJChWUEFUSCkvXCRAIgotICAgICAgICAgICAgcHV0cyAkb3AgIiIKLSAgICAgICAgICAgIHB1dHMgJG9wICJibG9ja3Muc2lnbm9mZiA6IGFzc2VtYmxlX2ZsZXhpbG0iCi0gICAgICAgICAgICBwdXRzICRvcCAiXHRjZCBQQVJUSVRJT05fUFJFQ1RTOyBWUEFUSD1cJChWUEFUSCk7IGV4cG9ydCBWUEFUSDsgXCQoTUFLRSkgXCQoUEFSQUxMRUwpIGJsb2NrcyBGRl9TVE9QPXNpZ25vZmYgVEFSR0VUPXNpZ25vZmYiCi0gICAgICAgICAgICBwdXRzICRvcCAiCS9iaW4vdG91Y2ggXCQoVlBBVEgpL1wkQCIKLSAgICAgICAgICAgIHB1dHMgJG9wICIiCi0gICAgICAgICAgICBwdXRzICRvcCAiYXNzZW1ibGVfZmxleGlsbSA6IHRvcC5wcmVjdHMiCi0gICAgICAgICAgICBwdXRzICRvcCAiXHRWUEFUSD1cJChWUEFUSCk7IGV4cG9ydCBWUEFUSDsgXCQoVE9PTCkgXCQoQVJHUykgLWluaXQgXCQoU0NSSVBUUykvSU5OT1ZVUy9ydW5fYXNzZW1ibGVfZmxleGlsbS50Y2wgLWxvZyBcJChMT0cpL2Fzc2VtYmxlX2ZsZXhpbG0ubG9nIC1vdmVyd3JpdGUiCi0gICAgICAgICAgICBwdXRzICRvcCAiXHQvYmluL3RvdWNoIFwkKFZQQVRIKS9hc3NlbWJsZV9mbGV4aWxtIgotICAgICAgICAgICAgcHV0cyAkb3AgIiIKLSAgICAgICAgICAgIHB1dHMgJG9wICJ0b3AucHJlY3RzIDogYmxvY2tzLnByZWN0cyIKLSAgICAgICAgICAgIGlmIHskdmFycyhwbGFjZV9vcHRfZGVzaWduKX0gewotICAgICAgICAgICAgICAgcHV0cyAkb3AgIlx0Y2QgUEFSVElUSU9OL1wkKFRPUCk7IFwkKE1BS0UpIC1mIE1ha2VmaWxlIEZGX1NUT1A9cGxhY2UgcGxhY2UgIgotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIHB1dHMgJG9wICJcdGNkIFBBUlRJVElPTi9cJChUT1ApOyBcJChNQUtFKSAtZiBNYWtlZmlsZSBGRl9TVE9QPXByZWN0cyBwcmVjdHMgIgotICAgICAgICAgICAgfQotICAgICAgICAgICAgcHV0cyAkb3AgIlx0L2Jpbi90b3VjaCBcJChWUEFUSCkvXCRAIgotICAgICAgICAgICAgcHV0cyAkb3AgIlx0L2Jpbi9jcCAtcmYgUEFSVElUSU9OX0ZMRVhJTE0vKiBQQVJUSVRJT05fUFJFQ1RTIgotICAgICAgICAgICAgcHV0cyAkb3AgIlx0L2Jpbi9ybSAtcmYgUEFSVElUSU9OX0ZMRVhJTE0iCi0gICAgICAgICAgICBwdXRzICRvcCAiIgotICAgICAgICAgICAgcHV0cyAkb3AgImJsb2Nrcy5wcmVjdHMgOiBwYXJ0aXRpb24iCi0gICAgICAgICAgICBpZiB7JHZhcnMocGxhY2Vfb3B0X2Rlc2lnbil9IHsKLSAgICAgICAgICAgICAgIHB1dHMgJG9wICJcdGNkIFBBUlRJVElPTjsgVlBBVEg9XCQoVlBBVEgpOyBleHBvcnQgVlBBVEg7IFwkKE1BS0UpIFwkKFBBUkFMTEVMKSBibG9ja3MgRkZfU1RPUD1wbGFjZSBUQVJHRVQ9cGxhY2UiCi0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgcHV0cyAkb3AgIlx0Y2QgUEFSVElUSU9OOyBWUEFUSD1cJChWUEFUSCk7IGV4cG9ydCBWUEFUSDsgXCQoTUFLRSkgXCQoUEFSQUxMRUwpIGJsb2NrcyBGRl9TVE9QPXByZWN0cyBUQVJHRVQ9cHJlY3RzIgotICAgICAgICAgICAgfQotICAgICAgICAgICAgcHV0cyAkb3AgIlx0L2Jpbi90b3VjaCBcJChWUEFUSCkvXCRAIgotICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKHVzZV9mbGV4bW9kZWxzKV0gJiYgJHZhcnModXNlX2ZsZXhtb2RlbHMpfSB7Ci0gICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoZmxleG1vZGVsX3Byb3RvdHlwZSldICYmICR2YXJzKGZsZXhtb2RlbF9wcm90b3R5cGUpfSB7Ci0gICAgICAgICAgICAgICAgICBwdXRzICRvcCAicHJvdG90eXBlIDogc2V0dXAiCi0gICAgICAgICAgICAgICAgICBwdXRzICRvcCAiXHRWUEFUSD1cJChWUEFUSCk7IGV4cG9ydCBWUEFUSDsgXCQoVE9PTCkgXCQoQVJHUykgLWluaXQgXCQoU0NSSVBUUykvSU5OT1ZVUy9ydW5fcHJvdG90eXBlLnRjbCAtbG9nIFwkKExPRykvcHJvdG90eXBlLmxvZyAtb3ZlcndyaXRlIgotICAgICAgICAgICAgICAgICAgcHV0cyAkb3AgIlx0L2Jpbi90b3VjaCBcJChWUEFUSCkvcHJvdG90eXBlIgotICAgICAgICAgICAgICAgICAgcHV0cyAkb3AgIiIKLSAgICAgICAgICAgICAgICAgIHB1dHMgJG9wICJtb2RlbF9nZW4gOiBwcm90b3R5cGUiCi0gICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgcHV0cyAkb3AgIm1vZGVsX2dlbiA6IHNldHVwIgotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgcHV0cyAkb3AgIlx0VlBBVEg9XCQoVlBBVEgpOyBleHBvcnQgVlBBVEg7IFwkKFRPT0wpIFwkKEFSR1MpIC1pbml0IFwkKFNDUklQVFMpL0lOTk9WVVMvcnVuX21vZGVsX2dlbi50Y2wgLWxvZyBcJChMT0cpL21vZGVsX2dlbi5sb2cgLW92ZXJ3cml0ZSIKLSAgICAgICAgICAgICAgIHB1dHMgJG9wICJcdC9iaW4vdG91Y2ggXCQoVlBBVEgpL21vZGVsX2dlbiIKLSAgICAgICAgICAgICAgIHB1dHMgJG9wICIiCi0gICAgICAgICAgICAgICBwdXRzICRvcCAicGFydGl0aW9uX3BsYWNlIDogbW9kZWxfZ2VuIgotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIHB1dHMgJG9wICJwYXJ0aXRpb25fcGxhY2UgOiAgc2V0dXAiCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBwdXRzICRvcCAiXHRWUEFUSD1cJChWUEFUSCk7IGV4cG9ydCBWUEFUSDsgXCQoVE9PTCkgXCQoQVJHUykgLWluaXQgXCQoU0NSSVBUUykvSU5OT1ZVUy9ydW5fcGFydGl0aW9uX3BsYWNlLnRjbCAtbG9nIFwkKExPRykvcGFydGl0aW9uX3BsYWNlLmxvZyAtb3ZlcndyaXRlIgotICAgICAgICAgICAgcHV0cyAkb3AgIlx0L2Jpbi90b3VjaCBcJChWUEFUSCkvcGFydGl0aW9uX3BsYWNlIgotICAgICAgICAgICAgcHV0cyAkb3AgIiIKLSAgICAgICAgICAgIHB1dHMgJG9wICJhc3NpZ25fcGluIDogIHBhcnRpdGlvbl9wbGFjZSIKLSAgICAgICAgICAgIHB1dHMgJG9wICIJVlBBVEg9XCQoVlBBVEgpOyBleHBvcnQgVlBBVEg7IFwkKFRPT0wpIFwkKEFSR1MpIC1pbml0IFwkKFNDUklQVFMpL0lOTk9WVVMvcnVuX2Fzc2lnbl9waW4udGNsIC1sb2cgXCQoTE9HKS9hc3NpZ25fcGluLmxvZyAtb3ZlcndyaXRlIgotICAgICAgICAgICAgcHV0cyAkb3AgIgkvYmluL3RvdWNoIFwkKFZQQVRIKS9hc3NpZ25fcGluIgotICAgICAgICAgICAgcHV0cyAkb3AgIiIKLSAgICAgICAgICAgIHB1dHMgJG9wICJwYXJ0aXRpb24gOiAgYXNzaWduX3BpbiIKLSAgICAgICAgICAgIHB1dHMgJG9wICJcdFZQQVRIPVwkKFZQQVRIKTsgZXhwb3J0IFZQQVRIOyBcJChUT09MKSBcJChBUkdTKSAtaW5pdCBcJChTQ1JJUFRTKS9JTk5PVlVTL3J1bl9wYXJ0aXRpb24udGNsIC1sb2cgXCQoTE9HKS9wYXJ0aXRpb24ubG9nIC1vdmVyd3JpdGUiCi0gICAgICAgICAgICBwdXRzICRvcCAiCS9iaW4vdG91Y2ggXCQoVlBBVEgpL3BhcnRpdGlvbiIKLSAgICAgICAgICAgIHB1dHMgJG9wICIiCi0gICAgICAgICAgICBwdXRzICRvcCAic2luZ2xlOiIKLSAgICAgICAgICAgIHB1dHMgJG9wICJcdEBcJChNQUtFKSBUQVJHRVQ9c2luZ2xlIEZGX1NUT1A9c2lnbm9mZiIKLSAgICAgICAgICAgIHB1dHMgJG9wICIiCi0gICAgICAgICAgICBwdXRzICRvcCAiZGVidWdfJToiCi0gICAgICAgICAgICBwdXRzICRvcCAiXHRleHBvcnQgU1RFUD1cJCogOyBWUEFUSD1cJChWUEFUSCk7IGV4cG9ydCBWUEFUSDsgXCQoVE9PTCkgLWluaXQgXCQoU0NSSVBUUykvSU5OT1ZVUy9ydW5fZGVidWcudGNsIC1sb2cgXCQoTE9HKS9cJEAubG9nIC13aW4gXCQoQVJHUzotbm93aW49KSIKLSAgICAgICAgICAgIHB1dHMgJG9wICIiCi0gICAgICAgICAgICBwdXRzICRvcCAicmVzZXQ6IgotICAgICAgICAgICAgcHV0cyAkb3AgIlx0QC9iaW4vcm0gLWYgXCQoVlBBVEgpLyogUEFSVElUSU9OLyovXCQoVlBBVEgpLyogUEFSVElUSU9OLyovXCQoVlBBVEgpLy5SVU5OSU5HIgotICAgICAgICAgICAgcHV0cyAkb3AgIlx0QC9iaW4vcm0gLWYgXCQoVlBBVEgpLyogUEFSVElUSU9OX1BSRUNUUy8qL1wkKFZQQVRIKS8qIFBBUlRJVElPTl9QUkVDVFMvKi9cJChWUEFUSCkvLlJVTk5JTkciCi0gICAgICAgICAgICBwdXRzICRvcCAiIgotICAgICAgICAgICAgcHV0cyAkb3AgInNldHVwOiIKLSAgICAgICAgICAgIHB1dHMgJG9wICIjXHQvYmluL3JtIC1mciBQQVJUSVRJT04gXCQoVlBBVEgpIExPRyIKLSAgICAgICAgICAgIHB1dHMgJG9wICJcdC9iaW4vbWtkaXIgLXAgIFwkKFZQQVRIKSBMT0ciCi0gICAgICAgICAgICBwdXRzICRvcCAiXHQvYmluL3RvdWNoIFwkKFZQQVRIKS9zZXR1cCIKLQotICAgICAgICAgICAgaWYgeyR2YXJzKGdlbmVyYXRlX2Zsb3dfc3RlcHMpICYmIFtpbmZvIGV4aXN0cyB2YXJzKGZsb3dfc3RlcHMpXX0gewotICAgICAgICAgICAgICAgc2V0IGZwIFtvcGVuIHJ1bl9mbG93LnRjbCB3XQotICAgICAgICAgICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycyhydW5fZmxvdyldfSB7Ci0jICAgICAgICAgICAgICAgICAgcHV0cyAkZnAgInNvdXJjZSAkdmFycyhzY3JpcHRfZGlyKS9mbG93X3N0ZXBzLnRjbCIKLSAgICAgICAgICAgICAgICAgIHB1dHMgJGZwICJzb3VyY2UgJHZhcnMoc2NyaXB0X2RpcikvZmxvd19jb25maWcudGNsIgotICAgICAgICAgICAgICAgICAgc2V0IHZhcnMocnVuX2Zsb3cpIERPTkUKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIHNldCBmcDEgW29wZW4gJHZhcnMoc2NyaXB0X2RpcikvZmxvd19jb25maWcudGNsIHddCi0gICAgICAgICAgICAgICBzZXQgZnAyIFtvcGVuICR2YXJzKHNjcmlwdF9kaXIpL2Zsb3dfc3RlcHMudGNsIHddCi0gICAgICAgICAgICAgICBwdXRzICRmcDEgInNldF9kYiBmbG93X2RhdGFiYXNlX2RpcmVjdG9yeSAkdmFycyhkYnNfZGlyKSIKLSAgICAgICAgICAgICAgIHB1dHMgJGZwMSAic2V0X2RiIGZsb3dfcmVwb3J0X2RpcmVjdG9yeSAkdmFycyhycHRfZGlyKSIKLSAgICAgICAgICAgICAgIHB1dHMgJGZwMSAic2V0X2RiIGZsb3dfbG9nX2RpcmVjdG9yeSAkdmFycyhsb2dfZGlyKSIKLSAgICAgICAgICAgICAgIHB1dHMgJGZwMSAiXG5zZXRfZGIgZmxvd19tYWlsX3RvIFtleGVjIHdob2FtaV0iCi0gICAgICAgICAgICAgICBwdXRzICRmcDEgInNldF9kYiBmbG93X21haWxfb25fZXJyb3IgdHJ1ZVxuIgotIyAgICAgICAgICAgICAgIHB1dHMgJGZwICR2YXJzKGZsb3dfc3RlcHMpCi0gICAgICAgICAgICAgICBmb3JlYWNoIHAgW2NvbmNhdCAkdmFycyhwYXJ0aXRpb25fbGlzdCkgJHZhcnMoZGVzaWduKV0gewotIyAgICAgICAgICAgICAgICAgIHNldCB2YXJzKGZsb3dfbmFtZSkgJHAKLSAgICAgICAgICAgICAgICAgIGlmIHtbZmlsZSBleGlzdHMgJHZhcnMocGFydGl0aW9uX2RpcikvJHAvJHZhcnMoc2NyaXB0X2RpcikvLmhpZXJzdGVwcy50Y2xdfSB7Ci0jICAgICAgICAgICAgICAgICAgICAgcHV0cyAkZnAyICIjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gJHAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iIAotICAgICAgICAgICAgICAgICAgICAgc2V0IGlwIFtvcGVuICR2YXJzKHBhcnRpdGlvbl9kaXIpLyRwLyR2YXJzKHNjcmlwdF9kaXIpLy5oaWVyc3RlcHMudGNsIHJdCi0gICAgICAgICAgICAgICAgICAgICBpZiB7JHAgIT0gJHZhcnMoZGVzaWduKX0gewotICAgICAgICAgICAgICAgICAgICAgICAgd2hpbGUge1tnZXRzICRpcCBsaW5lXT49MH0geyAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1dHMgJGZwMiAkbGluZSAKLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICB3aGlsZSB7W2dldHMgJGlwIGxpbmVdPj0wfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICBpZiB7W3JlZ2V4cCAiY3JlYXRlX2Zsb3dfc3RlcCAtbmFtZSB0b3BfIiAkbGluZV19IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1dHMgJGZwMiAkbGluZSAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdoaWxlIHtbZ2V0cyAkaXAgbGluZV0+PTB9IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIHtbcmVnZXhwICJeXH0iICRsaW5lXX0gewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHV0cyAkZnAyICRsaW5lIAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdXRzICRmcDIgJGxpbmUgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICBpZiB7W2ZpbGUgZXhpc3RzICR2YXJzKHBhcnRpdGlvbl9kaXIpLyRwL3J1bl9mbG93LnRjbF19IHsKLSAgICAgICAgICAgICAgICAgICAgIHNldCBpcCBbb3BlbiAkdmFycyhwYXJ0aXRpb25fZGlyKS8kcC9ydW5fZmxvdy50Y2wgcl0KLSAgICAgICAgICAgICAgICAgICAgIHdoaWxlIHtbZ2V0cyAkaXAgbGluZV0+PTB9IHsgCi0gICAgICAgICAgICAgICAgICAgICAgICBwdXRzICRmcCAkbGluZSAKLSAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhwYXJ0aXRpb25fZGlyX3Bhc3MyKV0gJiYgW2ZpbGUgZXhpc3RzICR2YXJzKHBhcnRpdGlvbl9kaXJfcGFzczIpLyRwL3J1bl9mbG93LnRjbF19IHsKLSAgICAgICAgICAgICAgICAgICAgIHNldCBpcCBbb3BlbiAkdmFycyhwYXJ0aXRpb25fZGlyX3Bhc3MyKS8kcC9ydW5fZmxvdy50Y2wgcl0KLSAgICAgICAgICAgICAgICAgICAgIHdoaWxlIHtbZ2V0cyAkaXAgbGluZV0+PTB9IHsgCi0gICAgICAgICAgICAgICAgICAgICAgICBwdXRzICRmcCAkbGluZSAKLSAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIHB1dHMgJGZwMiAiIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIEhJRVIgU1RFUFMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iIAotICAgICAgICAgICAgICAgcHV0cyAkZnAyICR2YXJzKGZsb3dfc3RlcHMsaGllcikKLSAgICAgICAgICAgICAgIHNldCB2YXJzKGZsb3dfbmFtZSkgJHZhcnMoZGVzaWduKQotICAgICAgICAgICAgICAgc2V0IGFzdGVwcyBbRkY6OmFkanVzdF9zdGVwc10KLSMgICAgICAgICAgICAgICBwdXRzICRmcCAiY3JlYXRlX2Zsb3cgXFxcbiAgIC1uYW1lICR2YXJzKGZsb3dfbmFtZSlcXFxuICAgLXRvb2wgJHZhcnMobWFrZV90b29sKVxcXG4gICAtdG9vbF9vcHRpb25zIHstbG9nICR2YXJzKGZsb3dfbmFtZSkubG9nfVxcXG4gICBcW2xpc3QgJGFzdGVwc1xdXG4iCi0gICAgICAgICAgICAgICBzZXQgcHN0ZXBzIFtsaXN0XQotICAgICAgICAgICAgICAgc2V0IGJzdGVwcyBbbGlzdF0KLSAgICAgICAgICAgICAgIGZvcmVhY2ggcyAkYXN0ZXBzIHsKLSAgICAgICAgICAgICAgICAgIGlmIHsoW2xzZWFyY2ggJHZhcnMoZnN0ZXBzKSAkc10gIT0gLTEpICYmICgkcyAhPSAiYXNzZW1ibGUiKX0gewotICAgICAgICAgICAgICAgICAgICAgbGFwcGVuZCBic3RlcHMgJHMKLSAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICBpZiB7IVtyZWdleHAgIl5hc3NlbWJsZSIgJHNdfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBsYXBwZW5kIHBzdGVwcyAkcwotICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgc2V0IHZhcnMoZmxvd19uYW1lKSBpbnRlcm1lZGlhdGVfYXNzZW1ibHkKLSAgICAgICAgICAgICAgIHB1dHMgJGZwICJjcmVhdGVfZmxvdyBcXFxuICAgLW5hbWUgJHZhcnMoZmxvd19uYW1lKVxcXG4gICAtdG9vbCAkdmFycyhtYWtlX3Rvb2wpXFxcbiAgIC10b29sX29wdGlvbnMgey1sb2cgJHZhcnMoZmxvd19uYW1lKS5sb2d9XFxcbiAgIFxbbGlzdCBhc3NlbWJsZV9mbGV4aWxtXF1cbiIKLSAgICAgICAgICAgICAgIHNldCB2YXJzKGZsb3dfbmFtZSkgZmluYWxfYXNzZW1ibHkKLSAgICAgICAgICAgICAgIHB1dHMgJGZwICJjcmVhdGVfZmxvdyBcXFxuICAgLW5hbWUgJHZhcnMoZmxvd19uYW1lKVxcXG4gICAtdG9vbCAkdmFycyhtYWtlX3Rvb2wpXFxcbiAgIC10b29sX29wdGlvbnMgey1sb2cgJHZhcnMoZmxvd19uYW1lKS5sb2d9XFxcbiAgIFxbbGlzdCBhc3NlbWJsZVxdXG4iCi0gICAgICAgICAgICAgICBzZXQgdmFycyhmbG93X25hbWUpIHBhcnRpdGlvbmluZwotICAgICAgICAgICAgICAgcHV0cyAkZnAgImNyZWF0ZV9mbG93IFxcXG4gICAtbmFtZSAkdmFycyhmbG93X25hbWUpXFxcbiAgIC10b29sICR2YXJzKG1ha2VfdG9vbClcXFxuICAgLXRvb2xfb3B0aW9ucyB7LWxvZyAkdmFycyhmbG93X25hbWUpLmxvZ31cXFxuICAgXFtsaXN0ICRwc3RlcHNcXVxuIgotIyAgICAgICAgICAgICAgIHB1dHMgJGZwICJydW5fZmxvdyAtZmxvdyAkdmFycyhmbG93X25hbWUpIgotICAgICAgICAgICAgICAgdW5zZXQgdmFycyhmbG93X3N0ZXBzKQotIyAgICAgICAgICAgICAgIHNldCB2YXJzKGZsb3dfbmFtZSkgJHZhcnMoZGVzaWduKQotIyAgICAgICAgICAgICAgIHB1dHMgJGZwICJjcmVhdGVfZmxvdyBcXFxuICAgLW5hbWUgJHZhcnMoZmxvd19uYW1lKVxcXG4gICAtdG9vbCAkdmFycyhtYWtlX3Rvb2wpXFxcbiAgIC10b29sX29wdGlvbnMgey1sb2cgJHZhcnMoZmxvd19uYW1lKS5sb2d9XFxcbiAgIFxbbGlzdCAkYnN0ZXBzXF1cbiIKLSAgICAgICAgICAgICAgIGlmIHtbZmlsZSBleGlzdHMgJHZhcnMoY3dkKS8ucGx1Z2luc119IHsKLSAgICAgICAgICAgICAgICAgIHNldCBpcCBbb3BlbiAkdmFycyhjd2QpLy5wbHVnaW5zIHJdCi0gICAgICAgICAgICAgICAgICB3aGlsZSB7W2dldHMgJGlwIGxpbmVdPj0wfSB7IAotICAgICAgICAgICAgICAgICAgICAgcHV0cyAkZnAxICRsaW5lIAotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgY2xvc2UgJGlwCi0gICAgICAgICAgICAgICAgICBmaWxlIGRlbGV0ZSAkdmFycyhjd2QpLy5wbHVnaW5zIAotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgY2xvc2UgJGZwCi0gICAgICAgICAgICAgICBjbG9zZSAkZnAxCi0gICAgICAgICAgICAgICBjbG9zZSAkZnAyCi0gICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0gICAgICB9Ci0KLSAgICAgIGNsb3NlICRvcAotCi0gICB9Ci0KLSAgIHByb2Mgc2V0X3N0ZXBzIHttb2RlIGZvcm1hdH0gewotICAgICAgIwotICAgICAgIyBTZXRzIHRoZSB2YXJzKCkgYXJyYXkgYmFzZWQgb24gdGhlIG1vZGUvZm9ybWF0IHBhc3NlZCBpbgotICAgICAgIwotCi0gICAgICBnbG9iYWwgdmFycwotICAgICAgZ2xvYmFsIGVycm9ycwotCi0gICAgICBpZiB7JG1vZGUgPT0gImhpZXIiIH0gewotICAgICAgICAgc2V0IG1vZGUgInRvcF9kb3duIgotICAgICAgICAgaWYgeyR2YXJzKGhpZXJfZmxvd190eXBlKSA9PSAiMnBhc3MifSB7Ci0gICAgICAgICAgICBzZXQgbW9kZSAiMnBhc3MiCi0gICAgICAgICB9Ci0gICAgICB9Ci0KLSAgICAgIHN3aXRjaCAkbW9kZSB7Ci0gICAgICAgICAidXNlciIgewotICAgICAgICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycyhzdGVwcyldfSB7Ci0gICAgICAgICAgICAgICBwdXRzICI8RkY+IEVSUk9SOiBGb3IgdXNlciBtb2RlLCB2YXJzKHN0ZXBzKSBtdXN0IGJlIHByb3ZpZGVkIgotICAgICAgICAgICAgICAgZXhpdAotICAgICAgICAgICAgfQotICAgICAgICAgfQotICAgICAgICAgImZsYXQiIHsKLSAgICAgICAgICAgIHNldCB2YXJzKHN0ZXBzKSBbbGlzdCAiaW5pdCIgInBsYWNlIiAicHJlY3RzIiAiY3RzIiAicG9zdGN0cyIgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJwb3N0Y3RzX2hvbGQiICJyb3V0ZSIgInBvc3Ryb3V0ZSIgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJwb3N0cm91dGVfaG9sZCIgInBvc3Ryb3V0ZV9zaV9ob2xkIiBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInBvc3Ryb3V0ZV9zaSIgInNpZ25vZmYiXQotICAgICAgICAgICAgaWYgeyR2YXJzKHByZXJvdXRlX29wdF9kZXNpZ24pfSB7Ci0gICAgICAgICAgICAgICBzZXQgdmFycyhzdGVwcykgW2xyZXBsYWNlICR2YXJzKHN0ZXBzKSBbbHNlYXJjaCAkdmFycyhzdGVwcykgInBsYWNlIl0gW2xzZWFyY2ggJHZhcnMoc3RlcHMpICJjdHMiXSBwcmVyb3V0ZV0KLSAgICAgICAgICAgIH0KLSMgICAgICAgICAgICBpZiB7JHZhcnMocm91dGVfb3B0X2Rlc2lnbil9IHsKLSMgICAgICAgICAgICAgICBzZXQgdmFycyhzdGVwcykgW2xyZXBsYWNlICR2YXJzKHN0ZXBzKSBbbHNlYXJjaCAkdmFycyhzdGVwcykgInJvdXRlIl0gW2xzZWFyY2ggJHZhcnMoc3RlcHMpICJwb3N0cm91dGUiXSByb3V0ZV9vcHRfZGVzaWduXQotIyAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmICR2YXJzKHJjKSB7Ci0gICAgICAgICAgICAgICBpZiB7JHZhcnMoZW5hYmxlX3JjcCl9IHsgCi0gICAgICAgICAgICAgICAgICBzZXQgdmFycyhzdGVwcykgW2NvbmNhdCAic3luX21hcCIgInN5bl9pbmNyIiAic3luX3BsYWNlIiAkdmFycyhzdGVwcyldCi0gICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgc2V0IHZhcnMoc3RlcHMpIFtjb25jYXQgInN5bl9tYXAiICJzeW5faW5jciIgJHZhcnMoc3RlcHMpXQotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAgfQotCi0gICAgICAgICAidG9wX2Rvd24iIHsKLSAgICAgICAgICAgICAgIHNldCB2YXJzKHN0ZXBzKSBbbGlzdCAicGFydGl0aW9uX3BsYWNlIiAiYXNzaWduX3BpbiIgInBhcnRpdGlvbiIgImluaXQiICJwbGFjZSIgInByZWN0cyIgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiY3RzIiAicG9zdGN0cyIgInBvc3RjdHNfaG9sZCIgInJvdXRlIiBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJwb3N0cm91dGUiICJwb3N0cm91dGVfaG9sZCIgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicG9zdHJvdXRlX3NpX2hvbGQiICJwb3N0cm91dGVfc2kiIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInNpZ25vZmYiICJhc3NlbWJsZSJdCi0gICAgICAgICAgICAgICBzZXQgdmFycyhoc3RlcHMpIFtsaXN0ICJhc3NlbWJsZSIgInBhcnRpdGlvbl9wbGFjZSIgImFzc2lnbl9waW4iICJwYXJ0aXRpb24iXQotICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKHVzZV9mbGV4bW9kZWxzKV0gJiYgJHZhcnModXNlX2ZsZXhtb2RlbHMpfSB7Ci0gICAgICAgICAgICAgICAgICAjIEluc2VydCB0aGUgbW9kZWxfZ2VuIHN0ZXAgYmVmb3JlIHBhcnRpdGlvbl9wbGFjZQotICAgICAgICAgICAgICAgICAgZm9yZWFjaCB2YXJuYW1lIHtzdGVwcyBoc3RlcHN9IHsKLSAgICAgICAgICAgICAgICAgICAgIHNldCBvbGQgJHZhcnMoJHZhcm5hbWUpCi0gICAgICAgICAgICAgICAgICAgICBzZXQgdmFycygkdmFybmFtZSkgW2xpbnNlcnQgJG9sZCBbbHNlYXJjaCAkb2xkICJwYXJ0aXRpb25fcGxhY2UiXSAibW9kZWxfZ2VuIl0KLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhmbGV4bW9kZWxfcHJvdG90eXBlKV0gJiYgJHZhcnMoZmxleG1vZGVsX3Byb3RvdHlwZSl9IHsKLSAgICAgICAgICAgICAgICAgICAgICMgSW5zZXJ0IHRoZSBwcm90b3R5cGUgc3RlcCBiZWZvcmUgcGFydGl0aW9uX3BsYWNlCi0gICAgICAgICAgICAgICAgICAgICBmb3JlYWNoIHZhcm5hbWUge3N0ZXBzIGhzdGVwc30gewotICAgICAgICAgICAgICAgICAgICAgICAgc2V0IG9sZCAkdmFycygkdmFybmFtZSkKLSAgICAgICAgICAgICAgICAgICAgICAgIHNldCB2YXJzKCR2YXJuYW1lKSBbbGluc2VydCAkb2xkIFtsc2VhcmNoICRvbGQgInBhcnRpdGlvbl9wbGFjZSJdICJwcm90b3R5cGUiXQotICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAgICBzZXQgdmFycyhmc3RlcHMpIFtsaXN0ICJpbml0IiAicGxhY2UiICJwcmVjdHMiICJjdHMiICJwb3N0Y3RzIiBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJwb3N0Y3RzX2hvbGQiICJyb3V0ZSIgInBvc3Ryb3V0ZSIgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicG9zdHJvdXRlX2hvbGQiICJwb3N0cm91dGVfc2lfaG9sZCIgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicG9zdHJvdXRlX3NpIiAic2lnbm9mZiJdCi0gICAgICAgICB9Ci0gICAgICAgICAiMXBhc3MiIHsKLSAgICAgICAgICAgICAgIHNldCB2YXJzKHN0ZXBzKSBbbGlzdCAicGFydGl0aW9uX3BsYWNlIiAiYXNzaWduX3BpbiIgInBhcnRpdGlvbiIgImluaXQiICJwbGFjZSIgInByZWN0cyIgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiY3RzIiAicG9zdGN0cyIgInBvc3RjdHNfaG9sZCIgInJvdXRlIiBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJwb3N0cm91dGUiICJwb3N0cm91dGVfaG9sZCIgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicG9zdHJvdXRlX3NpX2hvbGQiICJwb3N0cm91dGVfc2kiIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInNpZ25vZmYiICJhc3NlbWJsZSJdCi0gICAgICAgICAgICAgICBzZXQgdmFycyhoc3RlcHMpIFtsaXN0ICJhc3NlbWJsZSIgInBhcnRpdGlvbl9wbGFjZSIgImFzc2lnbl9waW4iICJwYXJ0aXRpb24iXQotICAgICAgICAgICAgICAgc2V0IHZhcnMoZnN0ZXBzKSBbbGlzdCAiaW5pdCIgInBsYWNlIiAicHJlY3RzIiAiY3RzIiAicG9zdGN0cyIgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicG9zdGN0c19ob2xkIiAicm91dGUiICJwb3N0cm91dGUiIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInBvc3Ryb3V0ZV9ob2xkIiAicG9zdHJvdXRlX3NpX2hvbGQiIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInBvc3Ryb3V0ZV9zaSIgInNpZ25vZmYiXQotICAgICAgICAgfQotICAgICAgICAgIjJwYXNzIiB7Ci0gICAgICAgICAgICBpZiB7JHZhcnMoZW5hYmxlX2ZsZXhpbG0pfSB7Ci0gICAgICAgICAgICAgICBzZXQgdmFycyhzdGVwcykgW2xpc3QgInBhcnRpdGlvbl9wbGFjZSIgImFzc2lnbl9waW4iICJwYXJ0aXRpb24iICJpbml0IiAicGxhY2UiICJwcmVjdHMiICJhc3NlbWJsZV9mbGV4aWxtIiBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImN0cyIgInBvc3RjdHMiICJwb3N0Y3RzX2hvbGQiICJyb3V0ZSIgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJwb3N0cm91dGUiICJwb3N0cm91dGVfaG9sZCIgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJwb3N0cm91dGVfc2lfaG9sZCIgInBvc3Ryb3V0ZV9zaSIgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzaWdub2ZmIiAiYXNzZW1ibGUiXQotICAgICAgICAgICAgICAgc2V0IHZhcnMoaHN0ZXBzKSBbbGlzdCAiYXNzZW1ibGUiICJhc3NlbWJsZV9mbGV4aWxtIiAicGFydGl0aW9uX3BsYWNlIiAiYXNzaWduX3BpbiIgInBhcnRpdGlvbiJdCi0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgc2V0IHZhcnMoc3RlcHMpIFtsaXN0ICJwYXJ0aXRpb25fcGxhY2UiICJhc3NpZ25fcGluIiAicGFydGl0aW9uIiAiaW5pdCIgInBsYWNlIiAicHJlY3RzIiBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImN0cyIgInJlYnVkZ2V0IiAicG9zdGN0cyIgInBvc3RjdHNfaG9sZCIgInJvdXRlIiBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInBvc3Ryb3V0ZSIgInBvc3Ryb3V0ZV9ob2xkIiBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInBvc3Ryb3V0ZV9zaV9ob2xkIiAicG9zdHJvdXRlX3NpIiBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInNpZ25vZmYiICJhc3NlbWJsZSJdCi0gICAgICAgICAgICAgICBzZXQgdmFycyhoc3RlcHMpIFtsaXN0ICJhc3NlbWJsZSIgInJlYnVkZ2V0IiAicGFydGl0aW9uX3BsYWNlIiAiYXNzaWduX3BpbiIgInBhcnRpdGlvbiJdCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnModXNlX2ZsZXhtb2RlbHMpXSAmJiAkdmFycyh1c2VfZmxleG1vZGVscyl9IHsKLSAgICAgICAgICAgICAgICMgSW5zZXJ0IHRoZSBtb2RlbF9nZW4gc3RlcCBiZWZvcmUgcGFydGl0aW9uX3BsYWNlCi0gICAgICAgICAgICAgICBmb3JlYWNoIHZhcm5hbWUge3N0ZXBzIGhzdGVwc30gewotICAgICAgICAgICAgICAgICAgc2V0IG9sZCAkdmFycygkdmFybmFtZSkKLSAgICAgICAgICAgICAgICAgIHNldCB2YXJzKCR2YXJuYW1lKSBbbGluc2VydCAkb2xkIFtsc2VhcmNoICRvbGQgInBhcnRpdGlvbl9wbGFjZSJdICJtb2RlbF9nZW4iXQotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGZsZXhtb2RlbF9wcm90b3R5cGUpXSAmJiAkdmFycyhmbGV4bW9kZWxfcHJvdG90eXBlKX0gewotICAgICAgICAgICAgICAgICAgIyBJbnNlcnQgdGhlIHByb3RvdHlwZSBzdGVwIGJlZm9yZSBwYXJ0aXRpb25fcGxhY2UKLSAgICAgICAgICAgICAgICAgIGZvcmVhY2ggdmFybmFtZSB7c3RlcHMgaHN0ZXBzfSB7Ci0gICAgICAgICAgICAgICAgICAgICBzZXQgb2xkICR2YXJzKCR2YXJuYW1lKQotICAgICAgICAgICAgICAgICAgICAgc2V0IHZhcnMoJHZhcm5hbWUpIFtsaW5zZXJ0ICRvbGQgW2xzZWFyY2ggJG9sZCAicGFydGl0aW9uX3BsYWNlIl0gInByb3RvdHlwZSJdCi0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBzZXQgdmFycyhmc3RlcHMpIFtsaXN0ICJpbml0IiAicGxhY2UiICJwcmVjdHMiICJjdHMiICJwb3N0Y3RzIiBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJwb3N0Y3RzX2hvbGQiICJyb3V0ZSIgInBvc3Ryb3V0ZSIgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicG9zdHJvdXRlX2hvbGQiICJwb3N0cm91dGVfc2lfaG9sZCIgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicG9zdHJvdXRlX3NpIiAic2lnbm9mZiJdCi0gICAgICAgICB9Ci0gICAgICAgICAiYm90dG9tX3VwIiB7Ci0gICAgICAgICAgICBzZXQgdmFycyhzdGVwcykgW2xpc3QgImluaXQiICJwbGFjZSIgInByZWN0cyIgImN0cyIgInBvc3RjdHMiIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicG9zdGN0c19ob2xkIiAicm91dGUiICJwb3N0cm91dGUiIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicG9zdHJvdXRlX2hvbGQiICJwb3N0cm91dGVfc2lfaG9sZCIgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJwb3N0cm91dGVfc2kiICJzaWdub2ZmIiAiYXNzZW1ibGUiXQotICAgICAgICAgICAgc2V0IHZhcnMoaHN0ZXBzKSBbbGlzdCAiYXNzZW1ibGUiXQotICAgICAgICAgICAgc2V0IHZhcnMoZnN0ZXBzKSBbbGlzdCAiaW5pdCIgInBsYWNlIiAicHJlY3RzIiAiY3RzIiAicG9zdGN0cyIgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicG9zdGN0c19ob2xkIiAicm91dGUiICJwb3N0cm91dGUiIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInBvc3Ryb3V0ZV9ob2xkIiAicG9zdHJvdXRlX3NpX2hvbGQiIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInBvc3Ryb3V0ZV9zaSIgInNpZ25vZmYiXQotICAgICAgICAgfQotCi0gICAgICAgICAiZGVmYXVsdCIgewotICAgICAgICAgICAgcHV0cyAiSW50ZXJuYWwgZXJyb3I6IFVua25vd24gbW9kZSBcIiR2YXJzKG1vZGUpXCIuICBBYm9ydGluZy4iCi0gICAgICAgICAgICBleGl0IC0xMTEKLSAgICAgICAgIH0KLSAgICAgIH0KLQotICAgICAgaWYgeyEkdmFycyhlbmFibGVfY2VsdGljX3N0ZXBzKSB9IHsKLSAgICAgICAgIGZvcmVhY2ggc3RlcCBbbGlzdCAicG9zdHJvdXRlX3NpIiAicG9zdHJvdXRlX3NpX2hvbGQiXSB7Ci0gICAgICAgICAgICBzZXQgaW5kZXggW2xzZWFyY2ggJHZhcnMoc3RlcHMpICRzdGVwXQotICAgICAgICAgICAgaWYgeyRpbmRleCAhPSAtMX0gewotICAgICAgICAgICAgICAgc2V0IHZhcnMoc3RlcHMpIFtscmVwbGFjZSAkdmFycyhzdGVwcykgJGluZGV4ICRpbmRleF0KLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0KLSAgICAgIH0KLSAgIH0KLQotICBwcm9jIGZsYXR0ZW5fY3VybGllc19pbl9saXN0IGxpc3Qge3N0cmluZyBtYXAge1x7ICIiIFx9ICIifSAkbGlzdH0KLQotICAjCi0gICMgZ2VuX2luY3JfZmlsZW5hbWUoc2NyaXB0TmFtZUJhc2UpCi0gICMgQnVkYSBMZXVuZywgMTEvMjAxMQotICAjIGFyZ3M6Ci0gICMgICRzY3JpcHROYW1lQmFzZTogPHBhdGg+L2Jhc2VuYW1lIG9mIGRpcgotICAjIEByZXR1cm46IG5ldyBiYXNlIG5hbWUKLSAgIwotICAjIERlc2NyaXB0aW9uOiBHZW5lcmF0ZXMgYSBuZXcgb3V0cHV0IGZpbGUgbmFtZSB1c2luZyB0aGUgaW5wdXQKLSAgIyBhcmd1bWVudCBhcyBhIGJhc2VuYW1lLiBUaGlzIHByb2MgbG9va3MgZm9yIGFsbCBmaWxlcyBpbiB0aGUKLSAgIyBzYW1lIGRpcmVjdG9yeSBhcyB0aGUgYXJndW1lbnQgd2l0aCBhIG1hdGNoaW5nIGJhc2VuYW1lLgotICAjIEl0IHRoZW4gbG9va3MgZm9yIGEgdHJhaWxpbmcgaW50ZWdlciBzdWZmaXgsIGFuZCBjb21wYXJlcwotICAjIGFsbCBtYXRjaGluZyBmaWxlcyB0byBmaW5kIHRoZSBsYXJnZXN0IGludGVnZXIuIAotICAjIEl0IHJldHVybnMgYSBuZXcgZmlsZSBuYW1lIG9mIHRoZSBmb3JtIDxwYXRoPi88YmFzZW5hbWU+PGxhcmdlc3QgaW50ICsgMT4KLSAgIwotICAjIEV4YW1wbGUgVXNhZ2U6IGlucHV0IGFyZ3VtZW50IHNldHVwLnRjbAotICAjIGZpbGVzIGluIGRpcjogc2V0dXAudGNsIHNldHVwLnRjbDEKLSAgIyBAcmV0dXJuOiBzZXR1cC50Y2wyCi0gICMKLQotICBwcm9jIGdlbl9pbmNyX2ZpbGVuYW1lIHtzY3JpcHROYW1lQmFzZX0gewotICAgIHNldCBmaWxlX2xpc3QgW2dsb2IgLW5vY29tcGxhaW4gW3NldCBzY3JpcHROYW1lQmFzZV0qXQotICAgIGlmIHtbbGxlbmd0aCAkZmlsZV9saXN0XSA+IDB9IHsKLSAgICAgIHNldCBoaWdoTnVtIDEKLSAgICAgIGZvcmVhY2ggZmlsZSAkZmlsZV9saXN0IHsKLSAgICAgICAgc2V0IHJlICJbc2V0IHNjcmlwdE5hbWVCYXNlXShcW1xbOmRpZ2l0OlxdXF0rKVwkIgotICAgICAgICBpZiB7W3JlZ2V4cCAkcmUgJGZpbGUgZnVsbCBudW1dfSB7Ci0gICAgICAgICAgaWYgeyRudW0gPj0gJGhpZ2hOdW19IHsKLSAgICAgICAgICAgIHNldCBoaWdoTnVtIFtpbmNyIG51bV0KLSAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICAgIH0KLSAgICAgIHNldCBzY3JpcHROYW1lICRzY3JpcHROYW1lQmFzZSRoaWdoTnVtCi0gICAgfSBlbHNlIHsKLSAgICAgIHNldCBzY3JpcHROYW1lICJbc2V0IHNjcmlwdE5hbWVCYXNlXSIKLSAgICB9Ci0gICAgcmV0dXJuICRzY3JpcHROYW1lCi0gIH0KLQotICAjCi0gICMgZ2VuX25ld19ydW5kaXIge2FyZ3N9Ci0gICMgQnVkYSBMZXVuZywgMTEvMjAxMQotICAjIGFyZ3M6Ci0gICMgIC1kaXIgPHN0cmluZz46IGRpciBuYW1lIHRvIGNoYW5nZQotICAjICAtc3R5bGUgW2luY3JlbWVudHxkYXRlfGN1c3RvbV06IG5hbWluZyBzdHlsZSB0byB1c2UgW2luY3JlbWVudHxkYXRlfGN1c3RvbV0KLSAgIyAgLWRhdGVfc3R5bGUgPHN0cmluZz4gKHJlcXVpcmVkIHdoZW4gc3R5bGU9ZGF0ZSk6IHRjbCBjb21tYW5kcyB0byBjcmVhdGUgYSBkYXRlIHN0cmluZwotICAjICAtY3VzdG9tIDxzdHJpbmc+IChvcHRpb25hbCk6IGEgY3VzdG9tIHN0cmluZyB0byBwcmVwZW5kIG9yIHBvc3RwZW5kIHRvIHRoZSBkaXIKLSAgIyAgLW5hbWVfY2hhbmdlX29yZGVyIFtwcmVmaXh8c3VmZml4XSAocmVxdWlyZWQgd2hlbiBjdXN0b21TdHJpbmcgaXMgZGVmaW5lZCk6IFtwcmVmaXh8c3VmZml4XQotICAjIEByZXR1cm46IG5ldyBkaXIgbmFtZQotICAjCi0gICMgRGVzY3JpcHRpb246IEdlbmVyYXRlcyBhIG5ldyBkaXJlY3RvcnkgbmFtZSBiYXNlZCBvbiB0aGUgYmFzZW5hbWUKLSAgIyBhbmQgb3B0aW9ucyBwcm92aWRlZC4gVGhlIG9wdGlvbnMgYWxsb3dlZCBhcmU6Ci0gICMKLSAgIyBzdHlsZToKLSAgIyAgKiBpbmNyZW1lbnQ6IGFkZCBhbiBpbnRlZ2VyIHRvIHRoZSBydW5kaXIgYmFzZWQgb24gZGlycyBmb3VuZCBpbiBbZGlybmFtZSAkZGlyXQotICAjICAqIGRhdGU6IGFkZCBhIGRhdGUgc3RyaW5nIHRvIHRoZSBydW5kaXIgbmFtZSwgdXNpbmcgdmFycyhkYXRlX3N0eWxlKSB0byBjb250cm9sIHRoZSBmb3JtYXR0aW5nCi0gICMgICogY3VzdG9tOiBhZGQgYSBjdXN0b20gc3RyaW5nIHRvIHRoZSBydW5kaXIgbmFtZQotICAjIG5hbWVDaGFuZ2VPcmRlcjogICAKLSAgIyAgKiBwcmVmaXg6IGFkZCB0aGUgY3VzdG9tIHN0cmluZyB0byB0aGUgYmVnaW5uaW5nIG9mIHRoZSBydW5kaXIKLSAgIyAgKiBzdWZmaXg6IGFkZCB0aGUgY3VzdG9tIHN0cmluZyB0byB0aGUgZW5kIG9mIHRoZSBydW5kaXIKLSAgIwotICAjIE5PVEU6IGluY3JlbWVudCwgZGF0ZSwgYW5kIGN1c3RvbSBhcmUgbXV0dWFsbHkgZXhjbHVzaXZlIG9wdGlvbnMKLSAgIwotICAjIEV4YW1wbGUgVXNhZ2U6IAotICAjIGdlbl9uZXdfcnVuZGlyIHdvcmsvcnVuIGluY3JlbWVudAotICAjIChkaXJzIHdpdGggbWF0Y2hpbmcgYmFzZW5hbWUgOiB3b3JrL3J1bjEgd29yay9ydW4yKQotICAjIEByZXR1cm46IHdvcmsvcnVuMwotICAjCi0gICMgZ2VuX25ld19ydW5kaXIgd29yay9ydW4gZGF0ZQotICAjIEByZXR1cm46IHdvcmsvcnVuXzIwMTEtMTEtMjNfMTJfMDlfNTggCi0gICMKLSAgIyBnZW5fbmV3X3J1bmRpciB3b3JrL3J1biBjdXN0b20gcmNwX2hpZ2hfZWZmIHByZWZpeAotICAjIEByZXR1cm46IHdvcmsvcmNwX2hpZ2hfZWZmX3J1bgotCi0gIHByb2MgZ2VuX25ld19ydW5kaXIge2FyZ3Z9IHsKLQotICAgICAgZ2xvYmFsIHZhcnMKLSAgICAgIGdsb2JhbCBkYXJncwotICAgICAgZ2xvYmFsIGZhcmdzCi0gICAgICAjCi0gICAgICAjIFByb2MgZGVmYXVsdHMKLSAgICAgICMgTm90ZSB0aGF0IGRlZmF1bHRzIGxpdmUgaW4gdGhlIGRlZmF1bHRfc2V0dXAudGNsLCBidXQgd2hlbiBnZW5fbmV3X3J1bmRpciBpcyBjYWxsZWQsIHRoYXQgc2V0dXAudGNsIGhhcyBub3QgeWV0IGJlZW4gbG9hZGVkCi0gICAgICAjIFRoZXNlIGRlZmF1bHRzIG11c3Qgc3RheSBzeW5jaHJvbml6ZWQgdG8gIHRoZSBkZWZhdWx0X3NldHVwLnRjbCB2YXJzKCkgZXF1aXZhbGVudHMKLSAgICAgICMKLSAgICAgIHNldCBkZWZfZGF0ZV9zdHlsZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJcW2Nsb2NrIGZvcm1hdCBcW2Nsb2NrIHNlY29uZHNcXSAtZm9ybWF0IFwiJVktJW0tJWRfJUhfJU1fJVNcIiBcXSIKLSAgICAgICMgVXNlIHRoZSBmb2xsb3dpbmcgaWYgeW91IHdhbnQgYSBjdXN0b20gcHJlZml4L3N1ZmZpeCBhZGRlZCB0byB0aGUgcnVuZGlyCi0gICAgICBzZXQgZGVmX2N1c3RvbV9ydW5kaXJfbmFtZV9hcHBlbmQgICAgICAgICAgICAgICAgICAiIgotICAgICAgIyB2YXJzKHJ1bmRpcl9uYW1lY2hhbmdlX21ldGhvZCkgW3ByZWZpeHxzdWZmaXhdCi0gICAgICBzZXQgZGVmX3J1bmRpcl9uYW1lY2hhbmdlX21ldGhvZCAgICAgICAgICAgICAgICAgICAic3VmZml4IgotCi0gICAgICAjCi0gICAgICAjIEFyZyBwcm9jZXNzaW5nCi0gICAgICAjCi0KLSAgICAgIHdoaWxlIHtbbGxlbmd0aCAkYXJndl0gPiAwfSB7Ci0gICAgICAgICBzZXQgb3B0aW9uIFtsaW5kZXggJGFyZ3YgMF0KLSAgICAgICAgIHNldCBhcmd2IFtscmVwbGFjZSAkYXJndiAwIDBdCi0gICAgICAgICBzd2l0Y2ggLXJlZ2V4cCAtLSAkb3B0aW9uIHsKLSAgICAgICAgICAgIF4tKGR8LWRpcikkIHsKLSAgICAgICAgICAgICAgIHNldCBkYXNoX2Rfc2NyaXB0X2RpciBbbGluZGV4ICRhcmd2IDBdCi0gICAgICAgICAgICAgICBzZXQgYXJndiBbbHJlcGxhY2UgJGFyZ3YgMCAwXQotICAgICAgICAgICAgfQotICAgICAgICAgICAgXi0oeXwtc3R5bGUpJCB7Ci0gICAgICAgICAgICAgIHNldCBkYXNoX3lfc3R5bGVfdHlwZSBbbGluZGV4ICRhcmd2IDBdCi0gICAgICAgICAgICAgIHNldCBhcmd2IFtscmVwbGFjZSAkYXJndiAwIDBdCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBeLSh1fC1ydW5kaXIpJCB7Ci0gICAgICAgICAgICAgICBzZXQgZGFzaF91X3J1bmRpcl9iYXNlIFtsaW5kZXggJGFyZ3YgMF0KLSAgICAgICAgICAgICAgIHNldCBhcmd2IFtscmVwbGFjZSAkYXJndiAwIDBdCi0gICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0gICAgICB9IDsgIyBlbmQgd2hpbGUgKHByb2Nlc3NpbmcgYXJncykKLQotICAgICAgc2V0IGRiZ01zZyAiPEZGLUlOVD4gZ2VuX25ld19ydW5kaXIoKTogIgotCi0gICAgICAjCi0gICAgICAjIExvYWQgdmFycy4gVGhpcyB3aWxsIG92ZXJ3cml0ZSBhbnkgRkYgZGVmYXVsdHMsIGJ1dCBub3QgdGhlIC11Ly15IG9wdGlvbnMKLSAgICAgICMgT25seSBsb29raW5nIGZvciB0aGUgZm9sbG93aW5nOgotICAgICAgIyB2YXJzKHJ1bmRpcl9iYXNlKSAoLXUgdGFrZXMgcHJlY2VkZW5jZSkgCi0gICAgICAjIHZhcnMocnVuZGlyKSAtIG92ZXJyaWRlcyB2YXJzKHJ1bmRpcl9iYXNlKSBhbmQgLXUvLXkKLSAgICAgICMgdmFycyhhdXRvX2luY3JlbWVudF9ydW5kaXJfc3R5bGUpICgteSB0YWtlcyBwcmVjZWRlbmNlKQotICAgICAgIyB2YXJzKGRhdGVfc3R5bGUpIChubyBnZW5faW5ub3Z1c19mbG93LnRjbCBvcHRpb24pCi0gICAgICAjIHZhcnMoY3VzdG9tX3J1bmRpcl9uYW1lX2FwcGVuZCkgKG5vIGdlbl9pbm5vdnVzX2Zsb3cudGNsIG9wdGlvbikKLSAgICAgICMgdmFycyhydW5kaXJfbmFtZWNoYW5nZV9tZXRob2QpIChubyBnZW5faW5ub3Z1c19mbG93LnRjbCBvcHRpb24pCi0gICAgICAjCi0gICAgICBGRl9OT1ZVUzo6ZXhlY3V0ZV9mbG93ICJzb3VyY2Vfb25seSIgdHJ1ZSAiIgotICAgCi0gICAgICAjIE5PVEU6IGFmdGVyIHRoZSBhYm92ZSBleGVjdXRlcywgZGFyZ3MgYW5kIGZhcmdzIGhhdmUgYWxsIGJlZW4gYW5hbHl6ZWQsIGFuZCB2YXJzIGV4aXN0IGZvciBhbGwgdGhvc2UgZW50cmllcwotICAgICAgIyBpbiBvdGhlciB3b3Jkcywgd2Ugbm8gbG9uZ2VyIGNhcmUgYWJvdXQgZGFyZ3MocnVuZGlyKSwgb25seSB2YXJzKHJ1bmRpcikuLi4KLSAgIAotICAgICAgIyBJbiBjYXNlIHRoZSB1c2VyIGRlZmluZWQgdGhlc2UgaW4gdGhlaXIgc2V0dXAudGNsCi0gICAgICBpZiB7IVtpbmZvIGV4aXN0cyB2YXJzKGRhdGVfc3R5bGUpXX0gewotICAgICAgICAgc2V0IGRhdGVfc3R5bGUgJGRlZl9kYXRlX3N0eWxlCi0gICAgICB9Ci0gICAgICBpZiB7IVtpbmZvIGV4aXN0cyB2YXJzKGN1c3RvbV9ydW5kaXJfbmFtZV9hcHBlbmQpXX0gewotICAgICAgICAgc2V0IHZhcnMoY3VzdG9tX3J1bmRpcl9uYW1lX2FwcGVuZCkgJGRlZl9jdXN0b21fcnVuZGlyX25hbWVfYXBwZW5kCi0gICAgICB9Ci0gICAgICBpZiB7IVtpbmZvIGV4aXN0cyB2YXJzKHJ1bmRpcl9uYW1lY2hhbmdlX21ldGhvZCldfSB7Ci0gICAgICAgICBzZXQgdmFycyhydW5kaXJfbmFtZWNoYW5nZV9tZXRob2QpICRkZWZfcnVuZGlyX25hbWVjaGFuZ2VfbWV0aG9kCi0gICAgICB9Ci0gICAKLSAgICAgICMKLSAgICAgICMgU2V0IHRoZSBydW5kaXIgb3JpZ2luYWwgbmFtZQotICAgICAgIyBQcmlvcml0eToKLSAgICAgICMgMSkgdmFycyhydW5kaXIpCi0gICAgICAjIDIpIGRhc2hfdV9ydW5kaXJfYmFzZQotICAgICAgIyAzKSB2YXJzKHJ1bmRpcl9iYXNlKQotICAgICAgIyA0KSBkZWZfcnVuZGlyCi0gICAKLSAgICAgICMgaWYgdmFycyhydW5kaXIpIGVxIGRhcmdzKHJ1bmRpciksIHRoZW4gYmFzaWNhbGx5IHRoZSB1c2VyIGhhcyBub3Qgc3BlY2lmaWVkIGEgdmFycyhydW5kaXIpLCBvciB0aGV5IHNldCBpdCB0byAuCi0gICAgICAjIHVzZSBmaWxlIG5vcm1hbGl6ZSB0byBoYW5kbGUgIi4vIiB2cyAiLiIKLSAgICAgIGlmIHtbZmlsZSBub3JtYWxpemUgJHZhcnMocnVuZGlyKV0gZXEgW2ZpbGUgbm9ybWFsaXplICRkYXJncyhydW5kaXIpXX0gewotICAgICAgICBpZiB7IVtpbmZvIGV4aXN0cyBkYXNoX3VfcnVuZGlyX2Jhc2VdfSB7Ci0gICAgICAgICAgIGlmIHshW2luZm8gZXhpc3RzIHZhcnMocnVuZGlyX2Jhc2UpXX0gewotICAgICAgICAgICAgIHNldCBydW5kaXJfb3JpZ25hbWUgJGRhcmdzKHJ1bmRpcikKLSAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICBzZXQgcnVuZGlyX29yaWduYW1lICR2YXJzKHJ1bmRpcl9iYXNlKQotICAgICAgICAgICB9IAotICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKHJ1bmRpcl9iYXNlKV0gJiYgJHZhcnMocnVuZGlyX2Jhc2UpIG5lICRkYXNoX3VfcnVuZGlyX2Jhc2V9IHsKLSAgICAgICAgICAgICAjIENvbmZsaWN0IGJldHdlZW4gLXUgYW5kIHNldHVwLnRjbC4gLXUgd2lucwotICAgICAgICAgICAgIHB1dHMgIjxGRj4gV0FSTklORyBcIi11ICRkYXNoX3VfcnVuZGlyX2Jhc2VcIiBvdmVycmlkaW5nIGNvbmZpZyB2YXJpYWJsZSB2YXJzKHJ1bmRpcl9iYXNlKSAoJHZhcnMocnVuZGlyX2Jhc2UpKSIKLSAgICAgICAgICAgICBwdXRzICIgICAgICAgICAgICAgVG8gcHJldmVudCB0aGlzIGJlaGF2aW9yLCBkbyBub3QgdXNlIHRoZSBcIi11XCIgb3B0aW9uIChGRiB3aWxsIHVzZSB2YXJzKHJ1bmRpcl9iYXNlKSBmcm9tIHlvdXIgY29uZmlnIGZpbGUpLiIKLSAgICAgICAgICAgfQotICAgICAgICAgICBzZXQgcnVuZGlyX29yaWduYW1lICRkYXNoX3VfcnVuZGlyX2Jhc2UKLSAgICAgICAgIH0gCi0gICAgICB9IGVsc2UgewotICAgICAgICAgIyBUaGUgZm9sbG93aW5nIGhhbmRsZSBjb25mbGljdHMgYmV0d2VlbiB2YXJzKHJ1bmRpcikgYW5kIC11IG9yIHZhcnMocnVuZGlyX2Jhc2UpCi0gICAgICAgICBpZiB7W2luZm8gZXhpc3RzIGRhc2hfdV9ydW5kaXJfYmFzZV19IHsgCi0gICAgICAgICAgIGlmIHskdmFycyhydW5kaXIpIG5lICRkYXJncyhydW5kaXIpICYmICR2YXJzKHJ1bmRpcikgbmUgJGRhc2hfdV9ydW5kaXJfYmFzZX0gewotICAgICAgICAgICAgIHB1dHMgIjxGRj4gV0FSTklORyB2YXJzKHJ1bmRpcikgXCIkdmFycyhydW5kaXIpXCIgb3ZlcnJpZGluZyBcIi11ICRkYXNoX3VfcnVuZGlyX2Jhc2VcIiBvcHRpb24uIgotICAgICAgICAgICAgIHB1dHMgIiAgICAgICAgICAgICBUbyBwcmV2ZW50IHRoaXMgYmVoYXZpb3IsIGRvIG5vdCBzZXQgdmFycyhydW5kaXIpIGluIHlvdXIgY29uZmlnIGZpbGUuIgotICAgICAgICAgICB9IGVsc2VpZiB7W2luZm8gZXhpc3RzIHZhcnMocnVuZGlyX2Jhc2UpXX0gewotICAgICAgICAgICAgIHB1dHMgIjxGRj4gV0FSTklORyB2YXJzKHJ1bmRpcikgXCIkdmFycyhydW5kaXIpXCIgb3ZlcnJpZGluZyBjb25maWcgdmFyaWFibGUgdmFycyhydW5kaXJfYmFzZSkgXCIkdmFycyhydW5kaXJfYmFzZSlcIiIKLSAgICAgICAgICAgICBwdXRzICIgICAgICAgICAgICAgVG8gcHJldmVudCB0aGlzIGJlaGF2aW9yLCBkbyBub3Qgc2V0IHZhcnMocnVuZGlyKSBpbiB5b3VyIGNvbmZpZyBmaWxlLiIKLSAgICAgICAgICAgfQotICAgICAgICAgfQotICAgICAgICAgc2V0IHJ1bmRpcl9vcmlnbmFtZSAkdmFycyhydW5kaXIpCi0gICAgICB9Ci0gICAgICAjCi0gICAgICAjIFNldCB0aGUgcnVuZGlyIG5hbWluZyBzdHlsZQotICAgICAgIyBQcmlvcml0eToKLSAgICAgICMgMSkgdmFycyhhdXRvX2luY3JlbWVudF9ydW5kaXJfc3R5bGUpCi0gICAgICAjIDIpIGRhc2hfeV9zdHlsZV90eXBlCi0gICAgICAjIDMpIGRlZl9hdXRvX2luY3JlbWVudF9ydW5kaXJfc3R5bGUKLSAgICAgICAKLSAgICAgIGlmIHshW2luZm8gZXhpc3RzIHZhcnMoYXV0b19pbmNyZW1lbnRfcnVuZGlyX3N0eWxlKV19IHsKLSAgICAgICAgIGlmIHshW2luZm8gZXhpc3RzIGRhc2hfeV9zdHlsZV90eXBlXX0gewotICAgICAgICAgICBzZXQgc3R5bGVUeXBlICRkYXJncyhzdHlsZSkKLSAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgIHNldCBzdHlsZVR5cGUgJGRhc2hfeV9zdHlsZV90eXBlCi0gICAgICAgICB9IAotICAgICAgfSBlbHNlIHsgCi0gICAgICAgICAjIHZhcnMoYXV0b19pbmNyZW1lbnRfcnVuZGlyX3N0eWxlKSB3YXMgc2V0IGluIHRoZSBzZXR1cC50Y2wKLSAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgZGFzaF95X3N0eWxlX3R5cGVdICYmICRkYXNoX3lfc3R5bGVfdHlwZSBuZSAkdmFycyhhdXRvX2luY3JlbWVudF9ydW5kaXJfc3R5bGUpfSB7Ci0gICAgICAgICAgICMgQ29uZmxpY3QgYmV0d2VlbiAteSBhbmQgc2V0dXAudGNsLiAteSB3aW5zCi0gICAgICAgICAgIHB1dHMgIjxGRj4gV0FSTklORyBcIi15ICRkYXNoX3lfc3R5bGVfdHlwZVwiIG92ZXJyaWRpbmcgY29uZmlnIHZhcmlhYmxlIHZhcnMoYXV0b19pbmNyZW1lbnRfcnVuZGlyX3N0eWxlKSAoJHZhcnMoYXV0b19pbmNyZW1lbnRfcnVuZGlyX3N0eWxlKSkiCi0gICAgICAgICAgIHB1dHMgIiAgICAgICAgICAgICBUbyBwcmV2ZW50IHRoaXMgYmVoYXZpb3IsIGRvIG5vdCB1c2UgdGhlIFwiLXlcIiBvcHRpb24gKEZGIHdpbGwgdXNlIHZhcnMoYXV0b19pbmNyZW1lbnRfcnVuZGlyX3N0eWxlKSBmcm9tIHlvdXIgY29uZmlnIGZpbGUpLiIKLSAgICAgICAgIHNldCBzdHlsZVR5cGUgJGRhc2hfeV9zdHlsZV90eXBlCi0gICAgICAgICB9IGVsc2UgewotICAgICAgICAgICBzZXQgc3R5bGVUeXBlICR2YXJzKGF1dG9faW5jcmVtZW50X3J1bmRpcl9zdHlsZSkKLSAgICAgICAgIH0KLSAgICAgIH0KLSAgIAotICAgICAgIwotICAgICAgIyBJZiBpbmNyZW1lbnQgaXMgc3BlY2lmaWVkLCAtdSAvIHZhcnMocnVuZGlyKSBpcyByZXF1aXJlZCA7IG90aGVyd2lzZSBlcnJvciBhbmQgZXhpdDoKLSAgICAgICMKLSAgICAgIGlmIHskc3R5bGVUeXBlIGVxICJpbmNyZW1lbnQiICYmIChbZmlsZSB0YWlsICRydW5kaXJfb3JpZ25hbWVdIGVxICIiIHx8IFtmaWxlIG5vcm1hbGl6ZSAkcnVuZGlyX29yaWduYW1lXSBlcSBbZmlsZSBub3JtYWxpemUgLl0pfSB7Ci0gICAgICAgICBwdXRzICI8RkY+IEVSUk9SOiBSdW5kaXIgbmFtaW5nIHN0eWxlIHdhcyBzZXQgdG8gXCJpbmNyZW1lbnRcIiwgYnV0IHJ1bmRpciBldmFsdWF0ZWQgdG8gXCIuXCIgZHVlIHRvOiIKLSAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhydW5kaXIpXSAmJiBbZmlsZSBub3JtYWxpemUgJHZhcnMocnVuZGlyKV0gZXEgW2ZpbGUgbm9ybWFsaXplIC5dfSB7IAotICAgICAgICAgICBwdXRzICIgICAgICAgICAgICBzZXR0aW5nIHZhcnMocnVuZGlyKSB0byBcIiR2YXJzKHJ1bmRpcilcIiBpbiB5b3VyIGNvbmZpZ3VyYXRpb24gZmlsZS4iCi0gICAgICAgICB9IGVsc2VpZiB7W2luZm8gZXhpc3RzIGRhc2hfdV9ydW5kaXJfYmFzZV0gJiYgW2ZpbGUgbm9ybWFsaXplICRkYXNoX3VfcnVuZGlyX2Jhc2VdIGVxIFtmaWxlIG5vcm1hbGl6ZSAuXX0geyAKLSAgICAgICAgICAgcHV0cyAiICAgICAgICAgICAgdGhlIFwiLXVcIiAkZGFzaF91X3J1bmRpcl9iYXNlIGFyZ3VtZW50IHRvIGdlbl9pbm5vdnVzX2Zsb3cudGNsIgotICAgICAgICAgfSBlbHNlaWYge1tpbmZvIGV4aXN0cyB2YXJzKHJ1bmRpcl9iYXNlKV0gJiYgW2ZpbGUgbm9ybWFsaXplICR2YXJzKHJ1bmRpcl9iYXNlKV0gZXEgW2ZpbGUgbm9ybWFsaXplIC5dfSB7IAotICAgICAgICAgICBwdXRzICIgICAgICAgICAgICBzZXR0aW5nIHZhcnMocnVuZGlyX2Jhc2UpIHRvIFwiJHZhcnMocnVuZGlyX2Jhc2UpXCIgaW4geW91ciBjb25maWd1cmF0aW9uIGZpbGUuIgotICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgcHV0cyAiICAgICAgICAgICAgdGhlIGRlZmF1bHQgcnVuZGlyIHNldHRpbmcgd2hpY2ggaXMgXCIkZGVmX3J1bmRpclwiIgotICAgICAgICAgfQotICAgICAgICAgcHV0cyAiICAgICAgICAgICAgVG8gcHJldmVudCB0aGlzIGVycm9yLCB1c2UgdGhlIC11IGFyZ3VtZW50IHRvIHNwZWNpZnkgYSBydW5kaXIgYmFzZSwgb3Igc3BlY2lmeSBhIHZhcnMocnVuZGlyX2Jhc2UpIGluIHlvdXIgc2V0dXAudGNsIgotICAgICAgICAgZXhpdCA5OQotICAgICAgfQotICAgCi0gICAgICAjIAotICAgICAgIyBHZW5lcmF0ZSBuZXcgcnVuZGlyIGlmIHZhbGlkIHN0eWxlIGRlZmluZWQKLSAgICAgICMgCi0gICAKLSAgICAgICMgIC1kYXRlX3N0eWxlIDxzdHJpbmc+IChyZXF1aXJlZCB3aGVuIHN0eWxlPWRhdGUpOiB0Y2wgY29tbWFuZHMgdG8gY3JlYXRlIGEgZGF0ZSBzdHJpbmcKLSAgICAgICMgIC1jdXN0b20gPHN0cmluZz4gKG9wdGlvbmFsKTogYSBjdXN0b20gc3RyaW5nIHRvIHByZXBlbmQgb3IgcG9zdHBlbmQgdG8gdGhlIGRpcgotICAgICAgIyAgLW5hbWVfY2hhbmdlX29yZGVyIFtwcmVmaXh8c3VmZml4XSAocmVxdWlyZWQgd2hlbiBjdXN0b21TdHJpbmcgaXMgZGVmaW5lZCk6IFtwcmVmaXh8c3VmZml4XQotICAgCi0gICAgICAjIFJlbW92ZSBhbnkgIi8vIiBpbiB0aGUgcGF0aAotICAgICAgcmVnc3ViIC1hbGwge1wvXC99ICRydW5kaXJfb3JpZ25hbWUgey99IHJ1bmRpcl9vcmlnbmFtZQotICAgCi0gICAgICBzZXQgcnVuZGlyX2Jhc2VuYW1lIFtmaWxlIHRhaWwgJHJ1bmRpcl9vcmlnbmFtZV0KLSAgICAgIHNldCBydW5kaXJfZGlybmFtZSBbZmlsZSBkaXJuYW1lICRydW5kaXJfb3JpZ25hbWVdCi0gICAKLSAgICAgIGlmIHskc3R5bGVUeXBlIG5lICJub25lIn0gewotICAgICAgICAgc3dpdGNoIC1leGFjdCAtLSAkc3R5bGVUeXBlIHsKLSAgICAgICAgICAgZGF0ZSB7Ci0gICAgICAgICAgICAgaWYgeyR2YXJzKHJ1bmRpcl9uYW1lY2hhbmdlX21ldGhvZCkgZXEgInByZWZpeCJ9IHsKLSAgICAgICAgICAgICAgIHNldCBuZXdfYmFzZW5hbWUgW3N1YnN0ICRkYXRlX3N0eWxlXV8ke3J1bmRpcl9iYXNlbmFtZX0KLSAgICAgICAgICAgICB9IGVsc2VpZiB7JHZhcnMocnVuZGlyX25hbWVjaGFuZ2VfbWV0aG9kKSBlcSAic3VmZml4In0gewotICAgICAgICAgICAgICAgc2V0IG5ld19iYXNlbmFtZSAke3J1bmRpcl9iYXNlbmFtZX1fW3N1YnN0ICRkYXRlX3N0eWxlXQotICAgICAgICAgICAgIH0KLSAgICAgICAgICAgfQotICAgICAgICAgICBpbmNyZW1lbnQgewotICAgICAgICAgICAgIHNldCBuZXdfYmFzZW5hbWUgW2ZpbGUgdGFpbCBbRkY6Omdlbl9pbmNyX2ZpbGVuYW1lICRydW5kaXJfb3JpZ25hbWVdXQotICAgICAgICAgICB9Ci0gICAgICAgICAgIGN1c3RvbSB7Ci0gICAgICAgICAgICAgaWYgeyR2YXJzKGN1c3RvbV9ydW5kaXJfbmFtZV9hcHBlbmQpIG5lICIifSB7Ci0gICAgICAgICAgICAgICBpZiB7JHZhcnMocnVuZGlyX25hbWVjaGFuZ2VfbWV0aG9kKSBlcSAicHJlZml4In0gewotICAgICAgICAgICAgICAgICBzZXQgbmV3X2Jhc2VuYW1lIFtzdWJzdCAkdmFycyhjdXN0b21fcnVuZGlyX25hbWVfYXBwZW5kKV1fJHtydW5kaXJfYmFzZW5hbWV9Ci0gICAgICAgICAgICAgICB9IGVsc2VpZiB7JHZhcnMocnVuZGlyX25hbWVjaGFuZ2VfbWV0aG9kKSBlcSAic3VmZml4In0gewotICAgICAgICAgICAgICAgICBzZXQgbmV3X2Jhc2VuYW1lICR7cnVuZGlyX2Jhc2VuYW1lfV9bc3Vic3QgJHZhcnMoY3VzdG9tX3J1bmRpcl9uYW1lX2FwcGVuZCldCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIHB1dHMgIjxGRj4gTk9URTogdmFycyhjdXN0b21fcnVuZGlyX25hbWVfYXBwZW5kKSBzZXQgdG8gXCJcIi4gTm8gbW9kaWZpY2F0aW9uIHRvIHJ1bmRpciB3aWxsIG9jY3VyLiIKLSAgICAgICAgICAgICAgIHNldCBuZXdfYmFzZW5hbWUgJHJ1bmRpcl9iYXNlbmFtZQotICAgICAgICAgICAgIH0KLSAgICAgICAgICAgfQotICAgICAgICAgICBkZWZhdWx0IHsKLSAgICAgICAgICAgICAjIFRoaXMgc2hvdWxkIG5ldmVyIGhhcHBlbiEgKGluZGljYXRlcyBpbmNvcnJlY3QgdXNhZ2Ugd2l0aGluIGdlbl9pbm5vdnVzX2Zsb3cudGNsISkgICAgCi0gICAgICAgICAgICAgcHV0cyAiJGRiZ01zZyBXQVJOSU5HOiBVbmtub3duIG9wdGlvbiBmb3Igc3R5bGVUeXBlLiBVc2luZyBkZWZhdWx0IChub25lKSIKLSAgICAgICAgICAgfQotICAgICAgICAgfQotICAgICAgICAgc2V0IHZhcnMocnVuZGlyKSBbZmlsZSBub3JtYWxpemUgW2pvaW4gIiRydW5kaXJfZGlybmFtZSAkbmV3X2Jhc2VuYW1lIiAiLyJdXQotICAgICAgICAgc2V0IHZhcnMobmV3X3J1bmRpcl9iYXNlbmFtZSkgJG5ld19iYXNlbmFtZQotICAgICAgfSBlbHNlIHsKLSAgICAgICAgIHNldCB2YXJzKHJ1bmRpcikgW2ZpbGUgbm9ybWFsaXplICRydW5kaXJfb3JpZ25hbWVdCi0gICAgICB9Ci0gICAgICByZXR1cm4gJHZhcnMocnVuZGlyKSAKLSAgIH07IyBlbmQgcHJvYyBnZW5fbmV3X3J1bmRpcgotCi0gIHByb2MgcmVsUGF0aFRvIHt0YXJnZXQgY3VycmVudH0gewotICAgICNwdXRzICJjYWxsaW5nIHJlbFBhdGhUbyAkdGFyZ2V0ICRjdXJyZW50IgotICAgIHNldCBjYyBbZmlsZSBzcGxpdCBbZmlsZSBub3JtYWxpemUgJGN1cnJlbnRdXQotICAgIHNldCB0dCBbZmlsZSBzcGxpdCBbZmlsZSBub3JtYWxpemUgJHRhcmdldF1dCi0gICAgaWYgeyFbc3RyaW5nIGVxdWFsIFtsaW5kZXggJGNjIDFdIFtsaW5kZXggJHR0IDFdXX0gewotICAgICAgICAjIG5vdCBvbiAqbip4IHRoZW4KLSAgICAgICAgI3JldHVybiAtY29kZSBlcnJvciAiRkY6OnJlbFBhdGhUbygpOiBFUlJPUiAkdGFyZ2V0IG5vdCBvbiBzYW1lIHZvbHVtZSBhcyAkY3VycmVudCIKLSAgICAgICAgcmV0dXJuIFtmaWxlIG5vcm1hbGl6ZSAkdGFyZ2V0XSAKLSAgICB9Ci0gICAgc2V0IHByZWZpeCAiIgotICAgIHdoaWxlIHtbc3RyaW5nIGVxdWFsIFtsaW5kZXggJGNjIDBdIFtsaW5kZXggJHR0IDBdXSAmJiBbbGxlbmd0aCAkY2NdID4gMH0gewotICAgICAgIyBkaXNjYXJkIG1hdGNoaW5nIGNvbXBvbmVudHMgZnJvbSB0aGUgZnJvbnQgKGJ1dCBkb24ndAotICAgICAgIyBkbyB0aGUgbGFzdCBjb21wb25lbnQgaW4gY2FzZSB0aGUgdHdvIGZpbGVzIGFyZSB0aGUgc2FtZSkKLSAgICAgIHNldCBjYyBbbHJlcGxhY2UgJGNjIDAgMF0KLSAgICAgIHNldCB0dCBbbHJlcGxhY2UgJHR0IDAgMF0KLSAgICB9Ci0KLSAgICAjaWYge1tsbGVuZ3RoICRjY10gPT0gMX0gewotICAgICMgICMganVzdCB0aGUgZmlsZSBuYW1lLCBzbyB0YXJnZXQgaXMgbG93ZXIgZG93biAob3IgaW4gc2FtZSBwbGFjZSkKLSAgICAjICBzZXQgcHJlZml4ICIuIgotICAgICN9ICAgCi0gICAgIyBzdGVwIHVwIHRoZSB0cmVlIChzdGFydCBmcm9tIDEgdG8gYXZvaWQgY291bnRpbmcgZmlsZSBpdHNlbGYKLSAgICBmb3Ige3NldCBpIDF9IHskaSA8PSBbbGxlbmd0aCAkY2NdfSB7aW5jciBpfSB7Ci0gICAgICAgIGFwcGVuZCBwcmVmaXggIiAuLiIKLSAgICB9Ci0gICAgIyBzdGljayBpdCBhbGwgdG9nZXRoZXIgKHRoZSBldmFsIGlzIHRvIGZsYXR0ZW4gdGhlIHRhcmdldCBsaXN0KQotICAgIGlmIHskY2MgZXEgJHR0fSB7Ci0gICAgICByZXR1cm4gIi4iCi0gICAgfSBlbHNlIHsKLSAgICAgIHJldHVybiBbZXZhbCBmaWxlIGpvaW4gJHByZWZpeCAkdHRdCi0gICAgfQotICB9Ci0KLSAgcHJvYyBmbGF0dGVuX2xpc3QgbGlzdCB7c3RyaW5nIG1hcCB7XHsgIiIgXH0gIiJ9ICRsaXN0fQotICBwcm9jIHJlbW92ZV9vdXRlcl9icmFjZXMge2FyZ3N9IHsKLSAgICBpZiB7W3JlZ3N1YiB7Xlx7fSAkYXJncyAiIiB0bXBdfSB7c2V0IGFyZ3MgJHRtcH0KLSAgICBpZiB7W3JlZ3N1YiB7XH0kfSAkYXJncyAiIiB0bXBdfSB7c2V0IGFyZ3MgJHRtcH0KLSAgICByZXR1cm4gJGFyZ3MKLSAgfQotCi0gIHByb2MgcmVsYXRpdml6ZUZpbGVPckRpciB7YXJnc30gewotICAgICNwdXRzICJyZWxhdGl2aXplRmlsZU9yRGlyICRhcmdzIgotICAgIHNldCBOZXdEaXJOYW1lICIiCi0gICAgc2V0IGFyck5hbWUgInZhcnMiCi0gICAgc2V0IFZhckRpck5hbWUgIiIKLSAgICBzZXQgc2tpcFZhcmlhYmxlVXNhZ2VJblJlZmVyZW5jZSAwCi0gICAgc2V0IG11c3RFeGlzdCAwCi0gICAgc2V0IHNraXBMaXN0IHt9Ci0gICAgc2V0IGV4YWN0VmFyICIiCi0gICAgc2V0IGV4YWN0U3ViRGlyTWF0Y2ggIiIKLSAgICBzZXQgdmFyVG9TdWIgIiIKLSAgICBzZXQgc2tpcERpckxpc3QgIiIKLQotICAgIHdoaWxlIHtbbGxlbmd0aCAkYXJnc10gPiAwfSB7Ci0gICAgICBzZXQgb3B0aW9uIFtsaW5kZXggJGFyZ3MgMF0KLSAgICAgIHNldCBhcmdzIFtscmVwbGFjZSAkYXJncyAwIDBdCi0gICAgICBzd2l0Y2ggLWV4YWN0IC0tICRvcHRpb24gewotICAgICAgICAgLWFyciB7Ci0gICAgICAgICAgICBzZXQgYXJyTmFtZSBbbGluZGV4ICRhcmdzIDBdCi0gICAgICAgICAgICBzZXQgYXJncyBbbHJlcGxhY2UgJGFyZ3MgMCAwXQotICAgICAgICAgfQotICAgICAgICAgLXZhcmRpciB7Ci0gICAgICAgICAgICBzZXQgVmFyRGlyTmFtZSBbbGluZGV4ICRhcmdzIDBdCi0gICAgICAgICAgICBzZXQgYXJncyBbbHJlcGxhY2UgJGFyZ3MgMCAwXQotICAgICAgICAgfQotICAgICAgICAgLW5ld2RpciB7Ci0gICAgICAgICAgIHNldCBOZXdEaXJOYW1lIFtsaW5kZXggJGFyZ3MgMF0KLSAgICAgICAgICAgc2V0IGFyZ3MgW2xyZXBsYWNlICRhcmdzIDAgMF0KLSAgICAgICAgIH0KLSAgICAgICAgIC1za2lwVmFyaWFibGVVc2FnZUluUmVmZXJlbmNlIHsKLSAgICAgICAgICAgIHNldCBza2lwVmFyaWFibGVVc2FnZUluUmVmZXJlbmNlIDEKLSAgICAgICAgIH0KLSAgICAgICAgIC1tdXN0RXhpc3QgewotICAgICAgICAgICAgc2V0IG11c3RFeGlzdCAxCi0gICAgICAgICB9Ci0gICAgICAgICAtc2tpcFZhciB7Ci0gICAgICAgICAgICBsYXBwZW5kIHNraXBMaXN0IFtsaW5kZXggJGFyZ3MgMF0KLSAgICAgICAgICAgIHNldCBhcmdzIFtscmVwbGFjZSAkYXJncyAwIDBdCi0gICAgICAgICB9Ci0gICAgICAgICAtc2tpcERpciB7Ci0gICAgICAgICAgICBsYXBwZW5kIHNraXBEaXJMaXN0IFtsaW5kZXggJGFyZ3MgMF0KLSAgICAgICAgICAgIHNldCBhcmdzIFtscmVwbGFjZSAkYXJncyAwIDBdCi0gICAgICAgICB9Ci0gICAgICAgICAtdmFyIHsKLSAgICAgICAgICAgIHNldCB2YXJUb1N1YiBbbGluZGV4ICRhcmdzIDBdCi0gICAgICAgICAgICBzZXQgYXJncyBbbHJlcGxhY2UgJGFyZ3MgMCAwXQotICAgICAgICAgfQotICAgICAgICAgLWV4YWN0U3ViRGlyTWF0Y2ggewotICAgICAgICAgICAgc2V0IGV4YWN0U3ViRGlyTWF0Y2ggW2xpbmRleCAkYXJncyAwXQotICAgICAgICAgICAgc2V0IGFyZ3MgW2xyZXBsYWNlICRhcmdzIDAgMF0KLSAgICAgICAgIH0KLSAgICAgIH0KLSAgICB9OyMgZW5kIHdoaWxlIChwcm9jZXNzaW5nIGFyZ3MpCi0KLSAgICAjIEFsd2F5cyBza2lwIHRoZSBWYXJEaXJOYW1lIHdoZW4gYW5hbHl6aW5nIHZhcmlhYmxlcyBpbiB0aGUgYXJyYXkKLSAgICBsYXBwZW5kIHNraXBMaXN0ICRWYXJEaXJOYW1lCi0KLSAgICAjIE5lZWQgdG8gY29udmVydCBhIGxpc3Qgb2YgZmlsZXMgdG8gcmVsYXRpdmUgcGF0aHMgKFRCRCkKLSAgICBnbG9iYWwgJGFyck5hbWUKLSAgICAjIENoZWNrIGlmIHRoZSB2YXJkaXIgKGtleSkgZXhpc3RzIGluIHRoZSBhcnJheS4gSWYgbm90LCBleGl0Ci0gICAgaWYgeyRWYXJEaXJOYW1lIGVxICIifSB7Ci0gICAgICByZXR1cm4gLWNvZGUgZXJyb3IgInJlbGF0aXZpemVGaWxlT3JEaXIoKSBjYWxsZWQgdy9vdXQgLXZhcmRpciBhcmd1bWVudC4gRXhpdGluZyAuLi4iCi0gICAgfQotICAgIGlmIHskTmV3RGlyTmFtZSBlcSAiIn0gewotICAgICAgc2V0IE5ld0Rpck5hbWUgJFZhckRpck5hbWUKLSAgICB9Ci0KLSAgICBzZXQgcmVsYXRpdml6ZUNvbnZNZXNnTGlzdCB7fQotICAgIGlmIHtbaW5mbyBleGlzdHMgJHthcnJOYW1lfSgkVmFyRGlyTmFtZSldfSB7Ci0gICAgICBmb3JlYWNoIGFyZyBbbHNvcnQgLWRpY3Rpb25hcnkgW2FycmF5IG5hbWVzICRhcnJOYW1lXV0gewotICAgICAgICBpZiB7JHZhclRvU3ViIGVxICIiIHx8ICR2YXJUb1N1YiBlcSAkYXJnfSB7Ci0gICAgICAgICAgIyBmb3JlYWNoIGtleSAoZW50cnkpIGluIHRoZSBhcnJheSwgbG9vayBmb3IgZmlsZXMvZm9sZGVycwotICAgICAgICAgIHNldCByZSAiIgotICAgICAgICAgICNwdXRzICJsc2VhcmNoICRza2lwTGlzdCAkYXJnIgotICAgICAgICAgICMgRmlyc3QgY2hlY2sgYmxhY2sgbGlzdAotICAgICAgICAgIGlmIHtbbHNlYXJjaCAkc2tpcExpc3QgJGFyZ10gPT0gLTF9IHsKLSAgICAgICAgICAgIGlmIHshW3JlZ2V4cCB7XFt9IFtzZXQgJHthcnJOYW1lfSgkYXJnKV1dfSB7Ci0gICAgICAgICAgICAgICMgb25seSBjb250aW51ZSBpZiB0aGUgdmFyaWFibGUgaXMgbm90IHRoZSB2YXJkaXIgKGtleSkgaXRzZWxmLCBhbmQgdGhlIHZhbHVlIG9mIHRoZSB2YXJpYWJsZSBkb2Vzbid0IGhhdmUgYSAkIGluIGl0Ci0gICAgICAgICAgICAgICNwdXRzICJyZWxhdGl2aXplRmlsZU9yRGlyKCkgY2hlY2tpbmcgJHthcnJOYW1lfSgkYXJnKSAoY3VycmVudDogLT5bc2V0ICR7YXJyTmFtZX0oJGFyZyldPC0pIgotICAgICAgICAgICAgICBzZXQgdG1wVmFsdWUgIiIKLSAgICAgICAgICAgICAgIwotICAgICAgICAgICAgICAjIFByb2Nlc3MgYWxsIG1lbWJlcnMgb2YgdGhlICRhcnJOYW1lKGFyZykgKGNvdWxkIGJlIGEgbGlzdCksIGFuZCBzdWJzdCBlYWNoIG9uZQotICAgICAgICAgICAgICAjCi0gICAgICAgICAgICAgIHNldCBmaWxlRm91bmQgMAotICAgICAgICAgICAgICBzZXQgcmUgIltmaWxlIG5vcm1hbGl6ZSBbc2V0ICR7YXJyTmFtZX0oJFZhckRpck5hbWUpXV1cLyguKikiCi0gICAgICAgICAgICAgIGZvcmVhY2ggcG9zc2libGVGaWxlIFtzZXQgJHthcnJOYW1lfSgkYXJnKV0gewotICAgICAgICAgICAgICAgIGlmIHskbXVzdEV4aXN0fSB7Ci0gICAgICAgICAgICAgICAgICAjIFRoZSBmaWxlIG9yIGRpciBtdXN0IGV4aXN0IGFmdGVyIG5vcm1hbGl6YXRpb24KLSAgICAgICAgICAgICAgICAgICNwdXRzICJDaGVja2luZyBmb3IgZXhpc3RlbmNlIG9mIFtmaWxlIG5vcm1hbGl6ZSBbc3Vic3QgJHBvc3NpYmxlRmlsZV1dIgotICAgICAgICAgICAgICAgICAgaWYgeyFbY2F0Y2gge2ZpbGUgZXhpc3RzIFtmaWxlIG5vcm1hbGl6ZSBbc3Vic3QgJHBvc3NpYmxlRmlsZV1dfV19IHsKLSAgICAgICAgICAgICAgICAgICAgaWYge1tmaWxlIGV4aXN0cyBbZmlsZSBub3JtYWxpemUgW3N1YnN0ICRwb3NzaWJsZUZpbGVdXV19IHsKLSAgICAgICAgICAgICAgICAgICAgICAjcHV0cyAiRXhpc3RzOiBbZmlsZSBub3JtYWxpemUgW3N1YnN0ICRwb3NzaWJsZUZpbGVdXSIKLSAgICAgICAgICAgICAgICAgICAgICBzZXQgZmlsZSBbZmlsZSBub3JtYWxpemUgW3N1YnN0ICRwb3NzaWJsZUZpbGVdXQotICAgICAgICAgICAgICAgICAgICAgIHNldCBzaXplIFtmaWxlIHNpemUgJGZpbGVdCi0gICAgICAgICAgICAgICAgICAgICAgc2V0IG10aW1lIFtmaWxlIG10aW1lICRmaWxlXQotICAgICAgICAgICAgICAgICAgICAgIHNldCB0eXBlIFtmaWxlIHR5cGUgJGZpbGVdCi0gICAgICAgICAgICAgICAgICAgICAgI3B1dHMgImZpbGUgJGZpbGUgc2l6ZTogJHNpemUsIG10aW1lOiAkbXRpbWUgdHlwZTogJHR5cGUiCi0gICAgICAgICAgICAgICAgICAgIHNldCBmaWxlRm91bmQgMQotICAgICAgICAgICAgICAgICAgICAjcHV0cyAiQ2hlY2tpbmcgZm9yIHBhdGggdG8gZmlsZTogLT5bZmlsZSBub3JtYWxpemUgW3N1YnN0ICRwb3NzaWJsZUZpbGVdXTwtIGZyb20gLT5bZmlsZSBub3JtYWxpemUgW3NldCAke2Fyck5hbWV9KCRWYXJEaXJOYW1lKV1dPC0iCi0gICAgICAgICAgICAgICAgICAgIHNldCByZWxQYXRoVmFsdWUgW3JlbFBhdGhUbyBbZmlsZSBub3JtYWxpemUgW3N1YnN0ICRwb3NzaWJsZUZpbGVdXSBbZmlsZSBub3JtYWxpemUgW3N1YnN0IFtzZXQgJHthcnJOYW1lfSgkVmFyRGlyTmFtZSldXV1dCi0gICAgICAgICAgICAgICAgICAgICAgI3B1dHMgInJlbFBhdGhWYWx1ZTogJHJlbFBhdGhWYWx1ZSIKLSAgICAgICAgICAgICAgICAgICAgc2V0IHNraXBEdWVUb1NraXBEaXIgMAotICAgICAgICAgICAgICAgICAgICBpZiB7JHNraXBEaXJMaXN0IG5lICIifSB7Ci0gICAgICAgICAgICAgICAgICAgICAgZm9yZWFjaCBkaXIgJHNraXBEaXJMaXN0IHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHNldCByZTMgIltmaWxlIG5vcm1hbGl6ZSBbc3Vic3QgJGRpcl1dLyguKikiCi0gICAgICAgICAgICAgICAgICAgICAgICBpZiB7W3JlZ2V4cCAkcmUzIFtmaWxlIG5vcm1hbGl6ZSBbc3Vic3QgJHBvc3NpYmxlRmlsZV1dIGZ1bGwgcmVsYXRpdmVQb3J0aW9uXX0gewotICAgICAgICAgICAgICAgICAgICAgICAgICBzZXQgc2tpcER1ZVRvU2tpcERpciAxCi0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgIGlmIHshJHNraXBEdWVUb1NraXBEaXJ9IHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIHskZXhhY3RTdWJEaXJNYXRjaCBuZSAiIn0gewotICAgICAgICAgICAgICAgICAgICAgICAgICBzZXQgcmUyICIkZXhhY3RTdWJEaXJNYXRjaC8oLiopIgotICAgICAgICAgICAgICAgICAgICAgICAgICAjIHRoZSBub3JtYWxpemVkIHBhdGggb2YgdGhlIHBvc3NpYmxlIGZpbGUgaGFzIHRvIG1hdGNoIHRoZSBub3JtYWxpemVkIHBhdGggb2YgdGhlIHN1YmRpci4uLgotICAgICAgICAgICAgICAgICAgICAgICAgaWYge1tyZWdleHAgJHJlMiBbZmlsZSBub3JtYWxpemUgW3N1YnN0ICRwb3NzaWJsZUZpbGVdXSBmdWxsIHJlbGF0aXZlUG9ydGlvbl19IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiB7JHJlbFBhdGhWYWx1ZSBuZSBbZmlsZSBub3JtYWxpemUgJHBvc3NpYmxlRmlsZV19IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiB7JHNraXBWYXJpYWJsZVVzYWdlSW5SZWZlcmVuY2V9IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhcHBlbmQgdG1wVmFsdWUgJHJlbFBhdGhWYWx1ZQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXBwZW5kIHRtcFZhbHVlICJcJCR7YXJyTmFtZX0oJFZhckRpck5hbWUpLyRyZWxQYXRoVmFsdWUiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhcHBlbmQgdG1wVmFsdWUgJHBvc3NpYmxlRmlsZQotICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhcHBlbmQgdG1wVmFsdWUgJHBvc3NpYmxlRmlsZQotICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICAgICAjcHV0cyAic2tpcFZhcmlhYmxlVXNhZ2VJblJlZmVyZW5jZTogJHNraXBWYXJpYWJsZVVzYWdlSW5SZWZlcmVuY2UiCi0gICAgICAgICAgICAgICAgICAgICAgICAgIGlmIHskcmVsUGF0aFZhbHVlIG5lIFtmaWxlIG5vcm1hbGl6ZSAkcG9zc2libGVGaWxlXX0gewotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIHskc2tpcFZhcmlhYmxlVXNhZ2VJblJlZmVyZW5jZX0gewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFwcGVuZCB0bXBWYWx1ZSAkcmVsUGF0aFZhbHVlCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhcHBlbmQgdG1wVmFsdWUgIlwkJHthcnJOYW1lfSgkVmFyRGlyTmFtZSkvJHJlbFBhdGhWYWx1ZSIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFwcGVuZCB0bXBWYWx1ZSAkcG9zc2libGVGaWxlCi0gICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgI3B1dHMgImZpbmFsIHZhbHVlOiAtPiR0bXBWYWx1ZTwtIgotICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgIGxhcHBlbmQgdG1wVmFsdWUgJHBvc3NpYmxlRmlsZQotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgIyBjb3VsZCBub3QgYmUgdGVzdGVkIGFzIGEgZmlsZSwgc28ganVzdCBsYXBwZW5kIHRoZSBlbnRpcmUgc3RyaW5nCi0gICAgICAgICAgICAgICAgICAgICAgbGFwcGVuZCB0bXBWYWx1ZSAkcG9zc2libGVGaWxlCi0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICMgY291bGQgbm90IGJlIHRlc3RlZCBhcyBhIGZpbGUsIHNvIGp1c3QgbGFwcGVuZCB0aGUgZW50aXJlIHN0cmluZwotICAgICAgICAgICAgICAgICAgICBsYXBwZW5kIHRtcFZhbHVlICRwb3NzaWJsZUZpbGUKLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgIyBUaGUgZmlsZSBvciBkaXIgbmVlZCBub3QgZXhpc3QsIGJ1dCB0aGUgdmFyZGlyIG11c3QgYmUgYSBzdWJkaXIgKGkuZS4sIHRoZXJlIG11c3QgYmUgYSBzdWJkaXIgdGhhdCBkb2VzIGV4aXN0KQotICAgICAgICAgICAgICAgICAgI3B1dHMgIkNoZWNraW5nIHBvc3NpYmxlIGZpbGU6IC0+W3N1YnN0ICRwb3NzaWJsZUZpbGVdPC0gYWdhaW5zdCByZWd1bGFyIGV4cHJlc3Npb24gLT4kcmU8LSIKLSAgICAgICAgICAgICAgICAgIGlmIHtbcmVnZXhwICRyZSBbc3Vic3QgJHBvc3NpYmxlRmlsZV0gZnVsbCByZWxhdGl2aXplZFBvcnRpb25dfSB7Ci0gICAgICAgICAgICAgICAgICAgIGlmIHskcmVsYXRpdml6ZWRQb3J0aW9uIGVxICIifSB7IHNldCByZWxhdGl2aXplZFBvcnRpb24gIi4ifQotICAgICAgICAgICAgICAgICAgICBzZXQgZmlsZUZvdW5kIDEKLSAgICAgICAgICAgICAgICAgICAgaWYgeyRza2lwVmFyaWFibGVVc2FnZUluUmVmZXJlbmNlfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgbGFwcGVuZCB0bXBWYWx1ZSAkcmVsYXRpdml6ZWRQb3J0aW9uCi0gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgbGFwcGVuZCB0bXBWYWx1ZSAiXCQke2Fyck5hbWV9KCRWYXJEaXJOYW1lKS8kcmVsYXRpdml6ZWRQb3J0aW9uIgotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgIGlmIHtbZmxhdHRlbl9saXN0ICRwb3NzaWJsZUZpbGVdIG5lIFtmbGF0dGVuX2xpc3QgJHRtcFZhbHVlXX0gewotICAgICAgICAgICAgICAgICAgICAgICNwdXRzICI8RkY+IElORk8gQ29udmVydGVkIGZpbGUgJHBvc3NpYmxlRmlsZSB0byB1c2UgYSByZWxhdGl2ZSBwYXRoIHRvIGRldGVybWluZSBpdCdzIGxvY2F0aW9uOiAkdG1wVmFsdWUiCi0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgIGxhcHBlbmQgdG1wVmFsdWUgJHBvc3NpYmxlRmlsZQotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAjIElmIHRoZSBhYm92ZSBmb3IgbG9vcCBkaWRuJ3QgZmluZCBhbnkgZmlsZXMsIHNpbXBseSByZXNldCB0aGUgYXJyTmFtZShhcmcpIHN0YXRlbWVudAotICAgICAgICAgICAgICBpZiB7JGZpbGVGb3VuZH0gewotICAgICAgICAgICAgICAgICMgQ2xlYW4gdXAgb3JpZ2luYWwgYXJyTmFtZShhcmcpIGFuZCBzdWJiJ2VkIHZhbHVlIHRvIHByZXBhcmUgZm9yIGNvbXBhcmlzb24KLSAgICAgICAgICAgICAgICBzZXQgdGVzdEFyZyBbZmxhdHRlbl9saXN0IFtzZXQgJHthcnJOYW1lfSgkYXJnKV1dCi0gICAgICAgICAgICAgICAgcmVnc3ViIC1hbGwge1sgXHJcdFxuXFxdK30gJHRlc3RBcmcgIiAiIHRlc3RBcmcKLSAgICAgICAgICAgICAgICByZWdzdWIge15ccysoLiopfSAkdGVzdEFyZyB7XDF9IHRlc3RBcmcKLSAgICAgICAgICAgICAgICByZWdzdWIgeyguKilccyskfSAkdGVzdEFyZyB7XDF9IHRlc3RBcmcKLQotICAgICAgICAgICAgICAgIHNldCB0bXBWYWx1ZSBbZmxhdHRlbl9saXN0ICR0bXBWYWx1ZV0KLSAgICAgICAgICAgICAgICByZWdzdWIgLWFsbCB7WyBcclx0XG5dK30gJHRtcFZhbHVlICIgIiB0bXBWYWx1ZQotICAgICAgICAgICAgICAgIHJlZ3N1YiB7XlxzKyguKil9ICR0bXBWYWx1ZSB7XDF9IHRtcFZhbHVlCi0gICAgICAgICAgICAgICAgcmVnc3ViIHsoLiopXHMrJH0gJHRtcFZhbHVlIHtcMX0gdG1wVmFsdWUKLSAgICAgICAgICAgICAgICBpZiB7JHRtcFZhbHVlIG5lICIiICYmICR0bXBWYWx1ZSBuZSAkdGVzdEFyZ30gewotICAgICAgICAgICAgICAgICAgI3B1dHMgIjxGRj4gSU5GTyBPcmlnaW5hbCB2YWx1ZSBmb3IgYXJyTmFtZSgkYXJnKTogLT4kdGVzdEFyZzwtIgotICAgICAgICAgICAgICAgICAgaWYgeyRyZWxhdGl2aXplQ29udk1lc2dMaXN0IGVxICIifSB7Ci0gICAgICAgICAgICAgICAgICAgICBsYXBwZW5kIHJlbGF0aXZpemVDb252TWVzZ0xpc3QgIiMgVmFyaWFibGUgY29udmVyc2lvbiBmb3IgcGF0aHMgcmVsYXRpdmUgdG8gXCQke2Fyck5hbWV9KCRWYXJEaXJOYW1lKSAoW3NldCAke2Fyck5hbWV9KCRWYXJEaXJOYW1lKV0pIgotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgbGFwcGVuZCByZWxhdGl2aXplQ29udk1lc2dMaXN0ICI8RkY+IElORk8gQ29udmVydGVkIGZpbGUgdmFyaWFibGUgW3N1YnN0ICRhcnJOYW1lXSgkYXJnKSBmcm9tIFtzZXQgJHthcnJOYW1lfSgkYXJnKV0gdG8gJHRtcFZhbHVlIgotICAgICAgICAgICAgICAgICAgc2V0ICR7YXJyTmFtZX0oJGFyZykgJHRtcFZhbHVlCi0gICAgICAgICAgICAgICAgICAjcHV0cyAiPEZGPiBJTkZPIEZpbmFsIHZhbHVlIGZvciBhcnJOYW1lKCRhcmcpOiAgICAtPiR0bXBWYWx1ZTwtIgotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAgIH0KLSAgICAgICAgfQotICAgICAgfQotICAgIH0KLSAgICBpZiB7W2xsZW5ndGggJHJlbGF0aXZpemVDb252TWVzZ0xpc3RdID4gMX0gewotICAgICAgbGFwcGVuZCByZWxhdGl2aXplQ29udk1lc2dMaXN0ICIjIFRvdGFsIGNvbnZlcnRlZCBmb3IgdmFyaWFibGUgW3NldCAke2Fyck5hbWV9KCRWYXJEaXJOYW1lKV06W2V4cHIge1tsbGVuZ3RoICRyZWxhdGl2aXplQ29udk1lc2dMaXN0XS0xfV0iCi0gICAgfQotICAgIHJldHVybiAkcmVsYXRpdml6ZUNvbnZNZXNnTGlzdAotICB9Ci0gICBwcm9jIGRlbm9ybWFsaXplX3J1bmRpciB7fSB7Ci0KLSAgICAgIGdsb2JhbCB2YXJzCi0KLSAgICAgICNzZXQgb3AgW29wZW4gJHZhcnMocnVuZGlyKS8uZmYudGNsIHddCi0gICAgICAjIyBCQ0w6IGFkZGVkIEZvdW5kYXRpb24gRmxvdyBleGVjdXRpb24gZGlyCi0gICAgICAjcHV0cyAkb3AgIiMgRm91bmRhdGlvbiBGbG93IENvZGVnZW4gUmVjb3JkLiIKLSAgICAgICNwdXRzICRvcCAiIyBFeGVjdXRlZCBvbiBbZXhlYyBkYXRlXSBieSB1c2VyOiBbZXhlYyB3aG9hbWldIgotICAgICAgI3B1dHMgJG9wICIjIENvcHlyaWdodCAyMDExLCBDYWRlbmNlIERlc2lnbiBTeXN0ZW1zLCBJbmMuIgotICAgICAgI3B1dHMgJG9wICIjIEFsbCBSaWdodHMgUmVzZXJ2ZWQiCi0gICAgICAjcHV0cyAkb3AgIiIKLSAgICAgICNwdXRzICRvcCAiIyBJbnB1dHMgdG8gY29kZSBnZW5lcmF0aW9uOiIKLSAgICAgICNwdXRzICRvcCAiIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIgotICAgICAgI3B1dHMgJG9wICJzZXQgdmFycyhmZl9leGVfZGlyKSBcIltleGVjIHB3ZF1cIiIKLSAgICAgICMjcHV0cyAkb3AgInNldCB2YXJzKGZmX2RpcikgW2ZpbGUgZGlybmFtZSAkdmFycyhzY3JpcHRfcGF0aCldIgotICAgICAgIyMgQkNMOiByZW1vdmVkIGZmX2RpciwgY2hhbmdlZCB0byBzY3JpcHRfcGF0aCAoZmZfZGlyIHdhcyByZWFsbHkgcmVkdW5kYW50KQotICAgICAgI3B1dHMgJG9wICJzZXQgdmFycyhzY3JpcHRfcGF0aCkgXCJbZmlsZSBub3JtYWxpemUgJHZhcnMoc2NyaXB0X3BhdGgpXVwiIgotICAgICAgIyMgQkNMOiBhZGRlZCB2YXJpYWJsZSByZWZlcmVuY2luZyBvZiBjb25maWdfZmlsZXMKLSAgICAgICNzZXQgY3dkICIiCi0gICAgICAjY2F0Y2gge3NldCBjd2QgW2V4ZWMgcHdkXX0KLSAgICAgICNmb3JlYWNoIGNvbmZpZ0ZpbGUgW3N1YnN0ICR2YXJzKGNvbmZpZ19maWxlcyldIHsKLSAgICAgICMgICNwdXRzICJQcm9jZXNzaW5nICRjb25maWdGaWxlIgotICAgICAgIyAgaWYge1tmaWxlIGRpcm5hbWUgW2ZpbGUgbm9ybWFsaXplICRjb25maWdGaWxlXV0gZXEgJGN3ZH0gewotICAgICAgIyAgICBsYXBwZW5kIGNvbmZpZ0ZpbGVMaXN0ICJcW3N1YnN0IFwkdmFycyhmZl9leGVfZGlyKVxdL1tmaWxlIHRhaWwgJGNvbmZpZ0ZpbGVdIgotICAgICAgIyAgfSBlbHNlaWYge1tGRjo6cmVsUGF0aFRvIFtmaWxlIG5vcm1hbGl6ZSAkY29uZmlnRmlsZV0gJGN3ZF0gZXEgW2ZpbGUgbm9ybWFsaXplIFtzdWJzdCAkY29uZmlnRmlsZV1dfSB7Ci0gICAgICAjICAgIGxhcHBlbmQgY29uZmlnRmlsZUxpc3QgW2ZpbGUgbm9ybWFsaXplICRjb25maWdGaWxlXQotICAgICAgIyAgfSBlbHNlIHsKLSAgICAgICMgICAgIyBVc2UgdGhlIHJlbGF0aXZlIHBhdGggbmFtZSBmcm9tIGZmX2V4ZV9kaXIKLSAgICAgICMgICAgbGFwcGVuZCBjb25maWdGaWxlTGlzdCAiXFtzdWJzdCBcJHZhcnMoZmZfZXhlX2RpcilcXS9bRkY6OnJlbFBhdGhUbyBbZmlsZSBub3JtYWxpemUgW3N1YnN0ICRjb25maWdGaWxlXV0gJGN3ZF0iCi0gICAgICAjICB9Ci0gICAgICAjfQotICAgICAgI3B1dHMgJG9wICJzZXQgdmFycyhjb25maWdfZmlsZXMpIFwiW0ZGOjpmbGF0dGVuX2xpc3QgJGNvbmZpZ0ZpbGVMaXN0XVwiIgotICAgICAgIyMgQkNMOiBhZGRlZCB2YXJpYWJsZSByZWZlcmVuY2luZyBvZiBwbHVnIGRpcnMKLSAgICAgICNpZiB7W2ZpbGUgZGlybmFtZSBbZmlsZSBub3JtYWxpemUgJHZhcnMocGx1Z19kaXIpXV0gZXEgJGN3ZH0gewotICAgICAgIyAgIyBwbHVnX2RpciBpcyBsb2NhdGVkIGluIGZmX2V4ZV9kaXIKLSAgICAgICMgIHB1dHMgJG9wICJzZXQgdmFycyhwbHVnX2RpcikgXCJcJHZhcnMoZmZfZXhlX2RpcikvJHZhcnMocGx1Z19kaXIpXCIiCi0gICAgICAjfSBlbHNlaWYge1tGRjo6cmVsUGF0aFRvIFtmaWxlIG5vcm1hbGl6ZSAkdmFycyhwbHVnX2RpcildICRjd2RdIGVxIFtmaWxlIG5vcm1hbGl6ZSAkdmFycyhwbHVnX2RpcildfSB7Ci0gICAgICAjICAjIHBsdWdfZGlyIGNhbm5vdCBiZSByZWZlcmVuY2VkIHVzaW5nIGEgcmVsYXRpdmUgcGF0aAotICAgICAgIyAgcHV0cyAkb3AgInNldCB2YXJzKHBsdWdfZGlyKSBcIltmaWxlIG5vcm1hbGl6ZSAkdmFycyhwbHVnX2RpcildXCIiCi0gICAgICAjfSBlbHNlIHsKLSAgICAgICMgICMgVXNlIHRoZSByZWxhdGl2ZSBwYXRoIG5hbWUgZnJvbSBmZl9leGVfZGlyCi0gICAgICAjICBwdXRzICRvcCAic2V0IHZhcnMocGx1Z19kaXIpIFwiXCR2YXJzKGZmX2V4ZV9kaXIpL1tGRjo6cmVsUGF0aFRvIFtmaWxlIG5vcm1hbGl6ZSAkdmFycyhwbHVnX2RpcildICRjd2RdXCIiCi0gICAgICAjfQotICAgICAgI2lmIHtbaW5mbyBleGlzdHMgdmFycyhyY19wbHVnX2RpcildfSB7Ci0gICAgICAjICAgaWYge1tmaWxlIGRpcm5hbWUgW2ZpbGUgbm9ybWFsaXplICR2YXJzKHJjX3BsdWdfZGlyKV1dIGVxICRjd2R9IHsKLSAgICAgICMgICAgICMgcmNfcGx1Z19kaXIgaXMgbG9jYXRlZCBpbiBmZl9leGVfZGlyCi0gICAgICAjICAgICBwdXRzICRvcCAic2V0IHZhcnMocmNfcGx1Z19kaXIpIFwiXCR2YXJzKGZmX2V4ZV9kaXIpLyR2YXJzKHJjX3BsdWdfZGlyKVwiIgotICAgICAgIyAgIH0gZWxzZWlmIHtbRkY6OnJlbFBhdGhUbyBbZmlsZSBub3JtYWxpemUgJHZhcnMocmNfcGx1Z19kaXIpXSAkY3dkXSBlcSBbZmlsZSBub3JtYWxpemUgJHZhcnMocmNfcGx1Z19kaXIpXX0gewotICAgICAgIyAgICAjIHJjX3BsdWdfZGlyIGNhbm5vdCBiZSByZWZlcmVuY2VkIHVzaW5nIGEgcmVsYXRpdmUgcGF0aAotICAgICAgIyAgICBwdXRzICRvcCAic2V0IHZhcnMocmNfcGx1Z19kaXIpIFwiW2ZpbGUgbm9ybWFsaXplICR2YXJzKHJjX3BsdWdfZGlyKV1cIiIKLSAgICAgICMgIH0gZWxzZSB7Ci0gICAgICAjICAgICMgVXNlIHRoZSByZWxhdGl2ZSBwYXRoIG5hbWUgZnJvbSBmZl9leGVfZGlyCi0gICAgICAjICAgIHB1dHMgJG9wICJzZXQgdmFycyhyY19wbHVnX2RpcikgXCJcJHZhcnMoZmZfZXhlX2RpcikvW0ZGOjpyZWxQYXRoVG8gW2ZpbGUgbm9ybWFsaXplICR2YXJzKHJjX3BsdWdfZGlyKV0gJGN3ZF1cIiIKLSAgICAgICMgICB9Ci0gICAgICAjfQotICAgICAgIyMgQkNMOiBhZGRlZCB2YXJzKHJ1bmRpcikKLSAgICAgICNwdXRzICRvcCAiIgotICAgICAgI3B1dHMgJG9wICIjIE91dHB1dHMgZnJvbSBjb2RlIGdlbmVyYXRpb246IgotICAgICAgI3B1dHMgJG9wICIjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iCi0gICAgICAjcHV0cyAkb3AgInNldCB2YXJzKHJ1bmRpcikgXCJcW2ZpbGUgbm9ybWFsaXplIFxbZmlsZSBkaXJuYW1lIFxbaW5mbyBzY3JpcHRcXVxdXF1cIiIKLSAgICAgICNwdXRzICRvcCAic2V0IHZhcnMoY29kZWdlbl9kaXIpIFwiW0ZGOjpyZWxQYXRoVG8gW2ZpbGUgbm9ybWFsaXplICR2YXJzKHNjcmlwdF9kaXIpXSBbZmlsZSBub3JtYWxpemUgJHZhcnMocnVuZGlyKV1dXCIiCi0gICAgICAjcHV0cyAkb3AgInNldCB2YXJzKHNjcmlwdF9kaXIpIFwiW0ZGOjpyZWxQYXRoVG8gW2ZpbGUgbm9ybWFsaXplICR2YXJzKHNjcmlwdF9kaXIpXSBbZmlsZSBub3JtYWxpemUgJHZhcnMocnVuZGlyKV1dXCIiCi0gICAgICAjY2xvc2UgJG9wCi0KLSAgICAgIGlmIHskdmFycyh1c2VyX21vZGUpID09ICJoaWVyIn0gewotICAgICAgICAgI2ZvcmVhY2ggYmxvY2sgW2NvbmNhdCAkdmFycyhkZXNpZ24pICR2YXJzKHBhcnRpdGlvbl9saXN0KV0gewotICAgICAgICAgIyAgIGZpbGUgY29weSAtZm9yY2UgLmZmLnRjbCAkdmFycyhwYXJ0aXRpb25fZGlyKS8kYmxvY2sKLSAgICAgICAgICN9Ci0jICAgICAgICAgaWYgeygkdmFycyhoaWVyX2Zsb3dfdHlwZSkgPT0gIjJwYXNzIikgJiYgISR2YXJzKGVuYWJsZV9mbGV4aWxtKX0gewotIyAgICAgICAgICAgIGZvcmVhY2ggYmxvY2sgW2NvbmNhdCAkdmFycyhkZXNpZ24pICR2YXJzKHBhcnRpdGlvbl9saXN0KV0gewotIyAgICAgICAgICAgICAgIGZpbGUgY29weSAtZm9yY2UgJHZhcnMocGFydGl0aW9uX2RpcikvJGJsb2NrL01ha2VmaWxlLnBhc3MyICR2YXJzKHBhcnRpdGlvbl9kaXJfcGFzczIpLyRibG9jay9NYWtlZmlsZQotIyAgICAgICAgICAgICAgIGZpbGUgY29weSAtZm9yY2UgJHZhcnMocGFydGl0aW9uX2RpcikvJGJsb2NrL01ha2VmaWxlLnBhc3MyICR2YXJzKHNjcmlwdF9kaXIpLyRibG9jay5NYWtlZmlsZQotIyAgICAgICAgICAgICAgIGZpbGUgZGVsZXRlICR2YXJzKHBhcnRpdGlvbl9kaXIpLyRibG9jay9NYWtlZmlsZS5wYXNzMgotIyAgICAgICAgICAgIH0KLSMgICAgICAgICB9Ci0gICAgICB9Ci0gICB9Ci0KLSAgIHByb2MgY2hlY2tfdGNsX3ZlcnNpb24ge30gewotICAgICAgc2V0IHRjbF92ZXJzaW9uIFtpbmZvIHRjbHZlcnNpb25dCi0gICAgICBzZXQgdHZlcnNpb24gW3NwbGl0ICR0Y2xfdmVyc2lvbiAiLiJdCi0gICAgICBzZXQgbWFqb3IgW2xpbmRleCAkdHZlcnNpb24gMF0KLSAgICAgIHNldCBtaW5vciBbbGluZGV4ICR0dmVyc2lvbiAxXQotICAgICAgc2V0IHZhbGlkX3ZlcnNpb24gMQotICAgICAgaWYgeyRtYWpvciAhPSAiOCJ9IHsKLSAgICAgICAgIHNldCB2YWxpZF92ZXJzaW9uIDAKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgICBpZiB7W2V4cHIgJG1pbm9yXSA8IDR9IHsKLSAgICAgICAgICAgIHNldCB2YWxpZF92ZXJzaW9uIDAKLSAgICAgICAgIH0KLSAgICAgIH0KLSAgICAgIGlmIHshJHZhbGlkX3ZlcnNpb259IHsKLSAgICAgICAgIHB1dHMgIi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iCi0gICAgICAgICBwdXRzICI8RkY+IEVSUk9SOiBUQ0wgVkVSU0lPTiBNVVNUIEJFIDguNCBPUiBHUkVBVEVSLiIKLSAgICAgICAgIHB1dHMgIiAgICAgICAgICAgIFlPVVIgVENMIFZFUlNJT04gSVMgJHRjbF92ZXJzaW9uLiIKLSAgICAgICMgICBwdXRzICIgICAgICAgICAgICBQTEVBU0UgUlVOIFRIRSBGTE9XIEdFTkVSQVRPUiBVU0lORyIKLSAgICAgICMgICBwdXRzICIgICAgICAgICAgICBJTk5PVlVTIChXSVRIIC1lIE9QVElPTikiCi0gICAgICAgICBwdXRzICItLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIgotICAgICAgICAgZXhpdCAtMQotICAgICAgfSBlbHNlIHsKLSMgICAgICAgICBwdXRzICItLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIgotIyAgICAgICAgIHB1dHMgIjxGRj4gIFRDTCBWRVJTSU9OIC0+ICR0Y2xfdmVyc2lvbiIKLSMgICAgICAgICBwdXRzICItLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIgotICAgICAgfQotICAgfQotCi0gICBwcm9jIGNyZWF0ZV9mbG93IHthcmd2fSB7Ci0gICAKLSAgICAgIGdsb2JhbCB2YXJzCi0gICAgICBnbG9iYWwgaW5mb3MKLSAgICAgIGdsb2JhbCB3YXJuaW5ncwotICAgICAgZ2xvYmFsIGVycm9ycwotICAgICAgZ2xvYmFsIGNoZWNrCi0gICAgICBnbG9iYWwgZGFyZ3MgCi0gICAgICBnbG9iYWwgZmFyZ3MgCi0gICAgICBnbG9iYWwgYXJndjAKLSAgICAgIGdsb2JhbCBlbnYKLQotICAgICAgc2V0IG9yaWdfYXJndiAkYXJndgotICAgCi0gICAgICBpbnRlcnAgYWxpYXMge30gUHV0cyB7fSBwdXRzCi0KLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgIyBQYXJzZSB0aGUgYXJndW1lbnRzIHBhc3NlZCBpbiB0byB0aGUgc2NyaXB0LiAgVGhlc2Ugc2V0IHVwIHRoZSBlbnZpcm9ubWVudCAjCi0gICAgICAjIGZvciB0aGUgcmVzdCBvZiB0aGUgc3lzdGVtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMKLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgCi0gICAgICBzZXQgdmFycyhhcmdfbGlzdCkgW2xpc3QgXAotICAgICAgICAgY29kZWdlbiBcCi0gICAgICAgICBlZGkgXAotICAgICAgICAgZmxhdCBcCi0gICAgICAgICBtYWtlZmlsZSBcCi0gICAgICAgICBtb2RlIFwKLSAgICAgICAgIHJjIFwKLSAgICAgICAgIG5vdnVzIFwKLSAgICAgICAgIHN5bnRoX2Zsb3cgXAotICAgICAgICAgcnVuZGlyIFwKLSAgICAgICAgIHNjcmlwdF9kaXIgXAotICAgICAgICAgc3R5bGUgXAotICAgICAgICAgdXNlcl9tb2RlIFwKLSAgICAgICAgIHZlcmJvc2UgXAotICAgICAgICAgdmVyc2lvbiBcCi0gICAgICBdCi0gICAgICAKLSAgICAgIHNldCB2YXJzKGNoZWNrX3NldHVwKSAxCi0gICAKLSAgICAgIGlmIHshW2luZm8gZXhpc3RzIHZhcnMoc2NyaXB0X3BhdGgpXX0gewotICAgICAgICAgc2V0IHZhcnMoc2NyaXB0X3BhdGgpICIiCi0gICAgICB9Ci0gICAgICBzZXQgbm9ybWFsaXplZCBbZmlsZSBub3JtYWxpemUgJGFyZ3YwXQotICAgICAgaWYge1tmaWxlIGlzZGlyZWN0b3J5ICRub3JtYWxpemVkXX0gewotICAgICAgICAgc2V0IGRlZmF1bHRfc2NyaXB0X3BhdGggJG5vcm1hbGl6ZWQKLSAgICAgIH0gZWxzZWlmIHtbZmlsZSBpc2RpcmVjdG9yeSBbZmlsZSBkaXJuYW1lICRub3JtYWxpemVkXV19IHsKLSAgICAgICAgIHNldCBkZWZhdWx0X3NjcmlwdF9wYXRoIFtmaWxlIGRpcm5hbWUgJG5vcm1hbGl6ZWRdCi0gICAgICB9Ci0gICAKLSAgICAgIGlmIHtbaW5mbyBleGlzdHMgZW52KEZGX1NFVFVQX1BBVEgpXSAmJiBbZmlsZSBleGlzdHMgJGVudihGRl9TRVRVUF9QQVRIKV19IHsKLSAgICAgICAgIHNldCBzZXR1cF9wYXRoICRlbnYoRkZfU0VUVVBfUEFUSCkKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgICBzZXQgc2V0dXBfcGF0aCAiLiIKLSAgICAgIH0KLSAgIAotICAgICAgaWYgeyFbaW5mbyBleGlzdHMgYXJndl0gfHwgIVtsbGVuZ3RoICRhcmd2XX0gewotICAgICAgICAgc2V0IGFyZ3YgIi1oIgotICAgICAgfQotICAgCi0gICAgICBzZXQgdmFycyhmb3JtYXRfbGluZXMpIHRydWUKLSAgIAotICAgICAgd2hpbGUge1tzdHJpbmcgbWF0Y2ggIi0qIiBbbGluZGV4ICRhcmd2IDBdXX0gewotICAgICAgICAgaWYgeyFbbGxlbmd0aCAkYXJndl19IHsKLSAgICAgICAgICAgIGJyZWFrCi0gICAgICAgICB9Ci0gICAgICAgICBzZXQgb3B0aW9uIFtsaW5kZXggJGFyZ3YgMF0KLSAgICAgICAgIHNldCBhcmd2IFtscmVwbGFjZSAkYXJndiAwIDBdCi0gICAKLSAgICAgICAgIHN3aXRjaCAtcmVnZXhwIC0tICRvcHRpb24gewotICAgICAgICAgICAgXi0oaHwtaGVscCkkIHsKLSAgICAgICAgICAgICAgIHB1dHMgJEZGTU06OnVzYWdlCi0gICAgICAgICAgICAgICBleGl0IDAKLSAgICAgICAgICAgIH0KLSAgIAotICAgICAgICAgICAgXi0obXwtbW9kZSkkIHsKLSAgICAgICAgICAgICAgICMKLSAgICAgICAgICAgICAgICMgU3BlY2lmeSB0aGUgcnVudGltZSBtb2RlLgotICAgICAgICAgICAgICAgIwotICAgCi0gICAgICAgICAgICAgICBpZiB7W2xsZW5ndGggJGFyZ3ZdfSB7Ci0gICAgICAgICAgICAgICAgICBzZXQgbmV3TW9kZSBbbGluZGV4ICRhcmd2IDBdCi0gICAgICAgICAgICAgICAgICBzZXQgYXJndiBbbHJlcGxhY2UgJGFyZ3YgMCAwXQotICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgIHB1dHMgJEZGTU06Om5vTW9kZQotICAgICAgICAgICAgICAgICAgcHV0cyAkRkZNTTo6dXNhZ2UKLSAgICAgICAgICAgICAgICAgIGV4aXQgLTEKLSAgICAgICAgICAgICAgIH0KLSAgIAotICAgICAgICAgICAgICAgIwotICAgICAgICAgICAgICAgIyBUaGUgbW9kZSBuZWVkcyB0byBiZSBvbmUgb2YgdGhlIHJlY29nbml6ZWQgbW9kZXMKLSAgICAgICAgICAgICAgICMKLSAgIAotICAgICAgICAgICAgICAgaWYge1tsc2VhcmNoIFtjb25jYXQgInVzZXIiICJoaWVyIiAkRkZNTTo6dmFsaWRNb2Rlc10gJG5ld01vZGVdID09IC0xfSB7Ci0gICAgICAgICAgICAgICAgICBwdXRzIFtmb3JtYXQgJEZGTU06OnVua25vd25Nb2RlICRuZXdNb2RlXQotICAgICAgICAgICAgICAgICAgcHV0cyAkRkZNTTo6dXNhZ2UKLSAgICAgICAgICAgICAgICAgIGV4aXQgLTExMQotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgc2V0IG1vZGUgJG5ld01vZGUKLSAgICAgICAgICAgICAgIHB1dHMgIjxGRj4gRkxPVyBNT0RFID09ICRtb2RlIgotICAgICAgICAgICAgfQotICAgICAgICAgICAgXi0obnwtbm9tYWtlKSQgewotICAgICAgICAgICAgICAgIwotICAgICAgICAgICAgICAgIyBTa2lwIE1ha2VmaWxlIGdlbmVyYXRpb24KLSAgICAgICAgICAgICAgICMKLSAgIAotICAgICAgICAgICAgICAgc2V0IG1ha2VmaWxlIGZhbHNlCi0gICAgICAgICAgICAgICBwdXRzICI8RkY+IEdFTkVSQVRFIE1BS0VGSUxFID09ICRtYWtlZmlsZSIKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIF4tKHJ8LXJ0bCkkIHsKLSAgICAgICAgICAgICAgICMKLSAgICAgICAgICAgICAgICMgRW5hYmxlIEdlbnVzIENvZGVnZW4KLSAgICAgICAgICAgICAgICMKLSAgIAotICAgICAgICAgICAgICAgc2V0IHJjIHRydWUKLSAgICAgICAgICAgICAgIHB1dHMgIjxGRj4gUlRsIFNDUklQVFMgPT0gJHJjIgotICAgICAgICAgICAgfQotICAgICAgICAgICAgXi0oTnwtTm92dXMpJCB7Ci0gICAgICAgICAgICAgICAjCi0gICAgICAgICAgICAgICAjIEVuYWJsZSBOb3Z1cyBTeW50YXgKLSAgICAgICAgICAgICAgICMKLSAgIAotICAgICAgICAgICAgICAgc2V0IG5vdnVzIHRydWUKLSAgICAgICAgICAgICAgIHB1dHMgIjxGRj4gTk9WVVMgU0NSSVBUUyA9PSAkbm92dXMiCi0gICAgICAgICAgICB9Ci0jICAgICAgICAgICAgXi0obHwtZmxvdykkIHsKLSMgICAgICAgICAgICAgICBpZiB7W2xsZW5ndGggJGFyZ3ZdfSB7Ci0jICAgICAgICAgICAgICAgICAgc2V0IHN5bnRoX2Zsb3cgW2xpbmRleCAkYXJndiAwXQotIyAgICAgICAgICAgICAgICAgIHNldCBhcmd2IFtscmVwbGFjZSAkYXJndiAwIDBdCi0jICAgICAgICAgICAgICAgfSBlbHNlIHsKLSMgICAgICAgICAgICAgICAgICBwdXRzICRGRk1NOjpub3N5bnRoX2Zsb3cKLSMgICAgICAgICAgICAgICB9Ci0jICAgICAgICAgICAgfQotIyAgICAgICAgICAgIF4tKGF8YXBwbGV0cykkIHsKLSMgICAgICAgICAgICAgICAjCi0jICAgICAgICAgICAgICAgIyBEZWZpbmUgdGhlIGFwcGxldHMgZGlyZWN0b3J5IHBhdGgKLSMgICAgICAgICAgICAgICAjCi0jICAgCi0jICAgICAgICAgICAgICAgaWYge1tsbGVuZ3RoICRhcmd2XX0gewotIyAgICAgICAgICAgICAgICAgIHNldCBhcHBsZXRzRGlyIFtsaW5kZXggJGFyZ3YgMF0KLSMgICAgICAgICAgICAgICAgICBzZXQgYXJndiBbbHJlcGxhY2UgJGFyZ3YgMCAwXQotIyAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0jICAgICAgICAgICAgICAgICAgcHV0cyAkRkZNTTo6bm9BcHBsZXRQYXRoCi0jICAgICAgICAgICAgICAgICAgZXhpdCAtMQotIyAgICAgICAgICAgICAgIH0KLSMgICAKLSMgICAgICAgICAgICAgICBwdXRzICI8RkY+IEFQUExFVFMgRElSRUNUT1JZID09ICRhcHBsZXRzRGlyIgotIyAgICAgICAgICAgICAgIHNldCB2YXJzKGFwcGxldHNfZGlyKSAkYXBwbGV0c0RpcgotIyAgICAgICAgICAgIH0KLSAgICAgICAgICAgIF4tKHZ8LXZlcnNpb24pJCB7Ci0gICAgICAgICAgICAgICAjCi0gICAgICAgICAgICAgICAjIFNldCB0aGUgdGFyZ2V0IElubm92dXMgdmVyc2lvbgotICAgICAgICAgICAgICAgIwotICAgCi0gICAKLSAgICAgICAgICAgICAgIGlmIHtbbGxlbmd0aCAkYXJndl19IHsKLSAgICAgICAgICAgICAgICAgIHNldCB2ZXJzaW9uIFtsaW5kZXggJGFyZ3YgMF0KLSAgICAgICAgICAgICAgICAgIHNldCBhcmd2IFtscmVwbGFjZSAkYXJndiAwIDBdCi0gICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgcHV0cyAkRkZNTTo6bm9WZXJzaW9uCi0gICAgICAgICAgICAgICAgICBleGl0IC0xCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICBpZiB7KFtsc2VhcmNoICRGRjo6dmFsaWRfdmVyc2lvbnMgJHZlcnNpb25dIDwgMCl9IHsKLSAgICAgICAgICAgICAgICAgIHB1dHMgJEZGTU06Om5vVmVyc2lvbgotICAgICAgICAgICAgICAgICAgZXhpdCAtMQotICAgICAgICAgICAgICAgfQotIyAgICAgICAgICAgICAgcHV0cyAiPEZGPiBWRVJTSU9OID09ICR2ZXJzaW9uIgotICAgICAgICAgICAgfQotICAgICAgICAgICAgXi0oZnwtZmxhdCkkIHsKLSAgICAgICAgICAgICAgICMKLSAgICAgICAgICAgICAgICMgR2V0IHRoZSBwYXRoIHRvIHRoZSBzY3JpcHRzLgotICAgICAgICAgICAgICAgIwotICAgCi0gICAgICAgICAgICAgICBpZiB7W2xsZW5ndGggJGFyZ3ZdfSB7Ci0gICAgICAgICAgICAgICAgICBzZXQgbmV3RmxhdCBbbGluZGV4ICRhcmd2IDBdCi0gICAgICAgICAgICAgICAgICBzZXQgYXJndiBbbHJlcGxhY2UgJGFyZ3YgMCAwXQotICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgIHB1dHMgJEZGTU06Om5vRmxhdAotICAgICAgICAgICAgICAgICAgZXhpdCAtMQotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgaWYgeygkbmV3RmxhdCAhPSAiZnVsbCIpICYmICgkbmV3RmxhdCAhPSAicGFydGlhbCIpICYmICgkbmV3RmxhdCAhPSAibm9uZSIpfSB7Ci0gICAgICAgICAgICAgICAgICBwdXRzICRGRk1NOjpub0ZsYXQKLSAgICAgICAgICAgICAgICAgIGV4aXQgLTEKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIHB1dHMgIjxGRj4gRkxBVCA9PSAkbmV3RmxhdCIKLSAgICAgICAgICAgICAgIHNldCBmbGF0ICRuZXdGbGF0Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBeLShlfC1lZGkpJCB7Ci0gICAgICAgICAgICAgICAjCi0gICAgICAgICAgICAgICAjIEVuYWJsZSBJbm5vdnVzIG1vZGUKLSAgICAgICAgICAgICAgICMKLSAgIAotICAgICAgICAgICAgICAgaWYge1tsbGVuZ3RoICRhcmd2XX0gewotICAgICAgICAgICAgICAgICAgc2V0IGVkaSB0cnVlCi0jICAgICAgICAgICAgICAgICBzZXQgYXJndiBbbHJlcGxhY2UgJGFyZ3YgMCAwXQotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgcHV0cyAiPEZGPiBJTk5PVlVTID09ICR2YXJzKGVkaSkiCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBeLShkfC1kaXIpJCB7Ci0gICAgICAgICAgICAgICAjCi0gICAgICAgICAgICAgICAjIERlZmluZSBvdXRwdXQgZGlyZWN0b3J5IHBhdGgKLSAgICAgICAgICAgICAgICMKLSAgIAotICAgICAgICAgICAgICAgaWYge1tsbGVuZ3RoICRhcmd2XX0gewotICAgICAgICAgICAgICAgICAgc2V0IHNjcmlwdERpciBbbGluZGV4ICRhcmd2IDBdCi0gICAgICAgICAgICAgICAgICBzZXQgYXJndiBbbHJlcGxhY2UgJGFyZ3YgMCAwXQotICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgIHB1dHMgJEZGTU06Om5vUGF0aAotICAgICAgICAgICAgICAgICAgZXhpdCAtMQotICAgICAgICAgICAgICAgfQotICAgCi0gICAgICAgICAgICAgICBwdXRzICI8RkY+IE9VVFBVVCBESVJFQ1RPUlkgPT0gJHNjcmlwdERpciIKLSAgIAotICAgICAgICAgICAgfQotICAgICAgICAgICAgXi0oeXwtc3R5bGUpJCB7Ci0gICAgICAgICAgICAgICAjCi0gICAgICAgICAgICAgICAjIERlZmluZSBydW5kaXIgZGlyZWN0b3J5IG5hbWluZyBzdHlsZQotICAgICAgICAgICAgICAgIyAtZCBtdXN0IGJlIHByb3ZpZGVkLCBzaW5jZSB0aGlzIHdpbGwgcmVkZWZpbmUgdmFycyhzY3JpcHRfZGlyKQotICAgICAgICAgICAgICAgIwotICAgCi0gICAgICAgICAgICAgICBpZiB7W2xsZW5ndGggJGFyZ3ZdfSB7Ci0gICAgICAgICAgICAgICAgICBzZXQgc3R5bGVUeXBlIFtsaW5kZXggJGFyZ3YgMF0KLSAgICAgICAgICAgICAgICAgIHN3aXRjaCAtcmVnZXhwIC0tICRzdHlsZVR5cGUgeyAKLSAgICAgICAgICAgICAgICAgICAgKGluY3JlbWVudHxkYXRlfG5vbmUpIHsKLSAgICAgICAgICAgICAgICAgICAgICBzZXQgYXJndiBbbHJlcGxhY2UgJGFyZ3YgMCAwXQotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgIGRlZmF1bHQgewotICAgICAgICAgICAgICAgICAgICAgIHB1dHMgW2Zvcm1hdCAkRkZNTTo6dW5rbm93bk9wdGlvbiAiLXkgJHN0eWxlVHlwZSJdCi0gICAgICAgICAgICAgICAgICAgICAgcHV0cyAkRkZNTTo6dXNhZ2UKLSAgICAgICAgICAgICAgICAgICAgICBleGl0IC0xCi0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICBwdXRzICRGRk1NOjpub1N0eWxlCi0gICAgICAgICAgICAgICAgICBleGl0IC0xCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICBwdXRzICI8RkY+IERJUkVDVE9SWSBOQU1JTkcgU1RZTEUgPT0gJHN0eWxlVHlwZSIKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIF4tKHV8LXJ1bmRpcikkIHsKLSAgICAgICAgICAgICAgICMKLSAgICAgICAgICAgICAgICMgRGVmaW5lIGV4ZWN1dGlvbiAocnVuKSBkaXIKLSAgICAgICAgICAgICAgICMgVGhpcyBvcHRpb24gc3VwZXJjZWVkcyAtZCAoJHZhcnMoc2NyaXB0X2RpcikgaXMgb3ZlcnJpZGRlbiB0byAkdmFycyhydW5kaXIpL0ZGKQotICAgICAgICAgICAgICAgIwotICAgCi0gICAgICAgICAgICAgICBpZiB7W2xsZW5ndGggJGFyZ3ZdfSB7Ci0gICAgICAgICAgICAgICAgICBzZXQgcnVuRGlyIFtsaW5kZXggJGFyZ3YgMF0KLSAgICAgICAgICAgICAgICAgIHNldCBhcmd2IFtscmVwbGFjZSAkYXJndiAwIDBdCi0gICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgcHV0cyAkRkZNTTo6bm9SdW5kaXIKLSAgICAgICAgICAgICAgICAgIGV4aXQgLTEKLSAgICAgICAgICAgICAgIH0KLSAgIAotICAgICAgICAgICAgICAgcHV0cyAiPEZGPiBSVU5ESVIgQkFTRSA9PSAkcnVuRGlyIgotICAgICAgICAgICAgfQotICAgICAgICAgICAgXi0oc3wtc2V0dXApJCB7Ci0gICAgICAgICAgICAgICAjCi0gICAgICAgICAgICAgICAjIEdldCB0aGUgcGF0aCB0byB0aGUgZGlyZWN0b3J5IGNvbnRhaW5pbmcgdGhlIHNldHVwLnRjbCBjb250cm9sCi0gICAgICAgICAgICAgICAjIGZpbGUKLSAgICAgICAgICAgICAgICMKLSAgIAotICAgICAgICAgICAgICAgaWYge1tsbGVuZ3RoICRhcmd2XX0gewotICAgICAgICAgICAgICAgICAgc2V0IG5ld1BhdGggW2xpbmRleCAkYXJndiAwXQotICAgICAgICAgICAgICAgICAgc2V0IGFyZ3YgW2xyZXBsYWNlICRhcmd2IDAgMF0KLSAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICBwdXRzICRGRk1NOjpub1NldHVwUGF0aAotICAgICAgICAgICAgICAgICAgcHV0cyAkRkZNTTo6dXNhZ2UKLSAgICAgICAgICAgICAgICAgIGV4aXQgLTEKLSAgICAgICAgICAgICAgIH0KLSAgIAotICAgICAgICAgICAgICAgIwotICAgICAgICAgICAgICAgIyBEb2VzIHRoZSBwYXRoIGV4aXN0PyAgSWYgbm90LCBlcnJvciBvdXQuICBNYWtlIHN1cmUgdGhhdCB0aGUgcGF0aAotICAgICAgICAgICAgICAgIyBleGlzdHMgYW5kIGNvbnRhaW5zIHRoZSBzb3VyY2UgZmlsZXMKLSAgICAgICAgICAgICAgICMKLSAgIAotICAgICAgICAgICAgICAgaWYgeyFbZmlsZSBleGlzdHMgJG5ld1BhdGhdfSB7Ci0gICAgICAgICAgICAgICAgICBwdXRzIFtmb3JtYXQgJEZGTU06Om5vU3VjaFBhdGggJG5ld1BhdGhdCi0gICAgICAgICAgICAgICAgICBwdXRzICRGRk1NOjp1c2FnZQotICAgICAgICAgICAgICAgICAgZXhpdCAtMQotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgc2V0IHNldHVwX3BhdGggJG5ld1BhdGgKLSAgICAgICAgICAgICAgIHB1dHMgIjxGRj4gU0VUVVAgUEFUSCA9PSAkc2V0dXBfcGF0aCIKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIF4tKFZ8LVZlcmJvc2UpJCB7Ci0gICAgICAgICAgICAgICAjCi0gICAgICAgICAgICAgICAjIEVuYWJsZSBWZXJib3NlIG1vZGUKLSAgICAgICAgICAgICAgICMKLSAgIAotICAgICAgICAgICAgICAgaWYge1tsbGVuZ3RoICRhcmd2XX0gewotICAgICAgICAgICAgICAgICAgc2V0IHZhcnModmVyYm9zZSkgdHJ1ZQotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgcHV0cyAiPEZGPiBWRVJCT1NFID09ICR2YXJzKHZlcmJvc2UpIgotICAgICAgICAgICAgfQotICAgICAgICAgICAgXi0oSHwtSGVscCkkIHsKLSAgICAgICAgICAgICAgICMKLSAgICAgICAgICAgICAgICMgUHJpbnQgc3RlcCBoZWxwCi0gICAgICAgICAgICAgICAjCi0gICAKLSAgICAgICAgICAgICAgIGlmIHtbbGxlbmd0aCAkYXJndl19IHsKLSAgICAgICAgICAgICAgICAgIHNldCB2YXJzKGhlbHApIHRydWUKLSAgICAgICAgICAgICAgIH0KLSMgICAgICAgICAgICAgICBwdXRzICI8RkY+IEhFTFAgPT0gJHZhcnMoaGVscCkiCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBkZWZhdWx0IHsKLSAgICAgICAgICAgICAgIHB1dHMgW2Zvcm1hdCAkRkZNTTo6dW5rbm93bk9wdGlvbiAkb3B0aW9uXQotICAgICAgICAgICAgICAgcHV0cyAkRkZNTTo6dXNhZ2UKLSAgICAgICAgICAgICAgIGV4aXQgLTEKLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0KLSAgICAgIH0KLSAgIAotICAgICAgaWYgeyFbZmlsZSBleGlzdHMgJHNldHVwX3BhdGgvc2V0dXAudGNsXX0gewotICAgICAgICAgcHV0cyBbZm9ybWF0ICRGRk1NOjptaXNzaW5nU2V0dXBGaWxlICRzZXR1cF9wYXRoXQotICAgICAgICAgZXhpdCAtMQotICAgICAgfSBlbHNlIHsKLSAgICAgICAgIHNldCB2YXJzKHNldHVwX3BhdGgpICRzZXR1cF9wYXRoCi0gICAgICB9Ci0gIAotICAgICAgIwotICAgICAgIyBTb3VyY2UgdGhlIG90aGVyIFRjbCBmaWxlcyB0byBleGVjdXRlIHRoZSBmbG93LiAgVGhlbiBkbyBzbwotICAgICAgIwotICAgCi0gICAgICBzb3VyY2UgIiR2YXJzKHNjcmlwdF9wYXRoKS9FVEMvdXRpbHMudGNsIgotICAgCi0gICAgICAjCi0gICAgICAjIEdldCBuZXcgcnVuZGlyICh1c2luZyAtdS8teSBhbmQgcG9zc2libHkgdXNlciB2YXJpYWJsZXMpCi0gICAgICAjCi0gICAgICAjIE5PVEU6IGRhcmdzOiBkZWZhdWx0IGFyZ3MKLSAgICAgICMgICAgICAgZmFyZ3M6IGZsb3cgYXJncyBzcGVjaWZpZWQgb24gY29tbWFuZCBsaW5lCi0gICAKLSAgICAgIGlmIHshW2luZm8gZXhpc3RzIGZpcnN0XX0gewotICAgICAgICAgIyBCQ0w6IE1vdmVkIHRoaXMgY29kZSBiZWZvcmUgZ2VuX25ld19ydW5kaXIgc2luY2UgZGFyZ3MobW9kZSkgbXVzdCBiZSBzZXQgYmVmb3JlIGV4ZWN1dGluZyBleGVjdXRlX2Zsb3cKLSAgICAgICAgIGlmIHshW2luZm8gZXhpc3RzIG1vZGVdfSB7Ci0gICAgICAgICAgICBzZXQgbW9kZSBmbGF0Ci0gICAgICAgICAgICBzZXQgZGFyZ3ModXNlcl9tb2RlKSBmbGF0IAotICAgICAgICAgICAgc2V0IGRhcmdzKG1vZGUpIGZsYXQgCi0gICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgaWYgeyRtb2RlID09ICJmbGF0IiB8fCAkbW9kZSA9PSAidXNlciJ9IHsKLSAgICAgICAgICAgICAgIHNldCBmYXJncyh1c2VyX21vZGUpIGZsYXQgIAotICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBzZXQgZmFyZ3ModXNlcl9tb2RlKSBoaWVyIAotICAgICAgICAgICAgIH0KLSMgICAgICAgICAgIHNldCBmYXJncyh1c2VyX21vZGUpIGZsYXQgIAotICAgICAgICAgfSAKLSAgICAgICAgIGlmIHshW2luZm8gZXhpc3RzIG1ha2VmaWxlXX0gewotICAgICAgICAgICAgc2V0IGRhcmdzKG1ha2VmaWxlKSB0cnVlCi0gICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgc2V0IGZhcmdzKG1ha2VmaWxlKSAkbWFrZWZpbGUKLSAgICAgICAgIH0KLSAgICAgICAgIGlmIHshW2luZm8gZXhpc3RzIHJjXX0gewotICAgICAgICAgICAgc2V0IGRhcmdzKHJjKSBmYWxzZQotICAgICAgICAgICAgc2V0IHJjIGZhbHNlCi0gICAgICAgICB9IGVsc2UgeyAKLSAgICAgICAgICAgIHNldCBmYXJncyhyYykgJHJjIAotICAgICAgICAgfQotICAgICAgICAgaWYgeyFbaW5mbyBleGlzdHMgbm92dXNdfSB7Ci0gICAgICAgICAgICBzZXQgZGFyZ3Mobm92dXMpIGZhbHNlCi0gICAgICAgICAgICBzZXQgbm92dXMgZmFsc2UKLSAgICAgICAgIH0gZWxzZSB7IAotICAgICAgICAgICAgc2V0IGZhcmdzKG5vdnVzKSAkbm92dXMgCi0gICAgICAgICB9Ci0gICAgICAgICBpZiB7IVtpbmZvIGV4aXN0cyBzeW50aF9mbG93XX0gewotICAgICAgICAgICAgc2V0IGRhcmdzKHN5bnRoX2Zsb3cpIGRlZmF1bHRfc3ludGhlc2lzX2Zsb3dfM3N0ZXAKLSAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBzZXQgZmFyZ3Moc3ludGhfZmxvdykgJHN5bnRoX2Zsb3cKLSAgICAgICAgIH0KLSAgICAgICAgIGlmIHshW2luZm8gZXhpc3RzIHZlcnNpb25dfSB7Ci0gICAgICAgICAgICBzZXQgZGFyZ3ModmVyc2lvbikgMTcuMS4wCi0gICAgICAgICB9IGVsc2UgeyAKLSAgICAgICAgICAgIHNldCBmYXJncyh2ZXJzaW9uKSAkdmVyc2lvbgotICAgICAgICAgfQotICAgICAgICAgaWYgeyFbaW5mbyBleGlzdHMgZWRpXX0gewotICAgICAgICAgICAgc2V0IGRhcmdzKGVkaSkgZmFsc2UKLSAgICAgICAgIH0gZWxzZSB7IAotICAgICAgICAgICAgc2V0IGZhcmdzKGVkaSkgJGVkaQotICAgICAgICAgfQotICAgICAgICAgaWYgeyFbaW5mbyBleGlzdHMgZmxhdF19IHsKLSAgICAgICAgICAgIHNldCBkYXJncyhmbGF0KSBvZmYKLSAgICAgICAgIH0gZWxzZSB7IAotICAgICAgICAgICAgc2V0IGZhcmdzKGZsYXQpICRmbGF0Ci0gICAgICAgICB9Ci0gICAgICAgICBpZiB7IVtpbmZvIGV4aXN0cyB2ZXJib3NlXX0gewotICAgICAgICAgICAgc2V0IGRhcmdzKHZlcmJvc2UpIGZhbHNlCi0gICAgICAgICB9IGVsc2UgeyAKLSAgICAgICAgICAgIHNldCBmYXJncyh2ZXJib3NlKSAkdmVyYm9zZQotICAgICAgICAgfQotICAgICAgICAgaWYgeyFbaW5mbyBleGlzdHMgc2NyaXB0RGlyXX0gewotICAgICAgICAgICAgc2V0IGRhcmdzKHNjcmlwdF9kaXIpIEZGCi0gICAgICAgICB9IGVsc2UgeyAKLSAgICAgICAgICAgIHNldCBmYXJncyhzY3JpcHRfZGlyKSAkc2NyaXB0RGlyCi0gICAgICAgICB9Ci0gICAgICAgICBzZXQgZGFyZ3MocnVuZGlyKSBbZmlsZSBub3JtYWxpemUgLl0gCi0gICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHJ1bkRpcl19IHsKLSAgICAgICAgICAgICMgQkNMOiBpZiBydW5EaXIgaXMgc2V0LCBpdCdzIGEgZmxvdyBhcmcKLSAgICAgICAgICAgIHNldCBmYXJncyhydW5kaXIpICRydW5EaXIKLSAgICAgICAgIH0KLSAgICAgICAgIGlmIHshW2luZm8gZXhpc3RzIHN0eWxlVHlwZV19IHsKLSAgICAgICAgICAgIHNldCBkYXJncyhzdHlsZSkgbm9uZQotICAgICAgICAgfSBlbHNlIHsgCi0gICAgICAgICAgICBzZXQgZmFyZ3Moc3R5bGUpICRzdHlsZVR5cGUKLSAgICAgICAgIH0KLSAgICAgICAgIAotICAgICAgICAgIyBCQ0w6IFdlIGFyZSBydW5uaW5nIGNvZGVnZW4sIHNvIHNldCBmYXJncyhjb2RlZ2VuKSB0byB0cnVlCi0gICAgICAgICBzZXQgZmFyZ3MoY29kZWdlbikgdHJ1ZQotICAgICAgICAgc2V0IGZhcmdzKG1vZGUpICRtb2RlCi0gICAgICAgICBzZXQgdmFycyhjd2QpIFtwd2RdCi0gICAgICAKLSAgICAgICAgIHNldCBmaXJzdCAwCi0gICAKLSAgICAgICAgICMgQkNMOiAocG90ZW50aWFsbHkpIGdlbmVyYXRlIGEgbmV3IHJ1bmRpcgotICAgICAgICAgc2V0IGZhcmdzKHJ1bmRpcikgW2ZpbGUgbm9ybWFsaXplIFtGRjo6Z2VuX25ld19ydW5kaXIgJG9yaWdfYXJndl1dCi0gICAKLSMgICAgICAgICAjIElmIHRoZSB1c2VyIHBhc3NlZCBhIC15IGFuZCAtdSwgbW92ZSB0aGUgLXkgKGNvZGVnZW4gZGlyIG91dHB1dCkgdG8gdW5kZXJuZWl0aCB0aGUgLXUgKHJ1bmRpcikKLSMgICAgICAgICAjIGFuZCBtZXNzYWdlIHVzZXIKLSMgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIGZhcmdzKHJ1bmRpcildICYmICR2YXJzKHJ1bmRpcikgbmUgIiIgJiYgW2ZpbGUgbm9ybWFsaXplICRmYXJncyhydW5kaXIpXSBuZSBbZmlsZSBub3JtYWxpemUgLl19IHsKLSMgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgc2NyaXB0RGlyXX0gewotIyAgICAgICAgICAgICAgcHV0cyAiPEZGPiBOT1RFOiBjb2RlZ2VuIG91dHB1dCBkaXIgKC15ICRzY3JpcHREaXIpIHVzZWQgd2l0aCBydW5kaXIgc3BlY2lmaWNhdGlvbiBvZjogJGZhcmdzKHJ1bmRpcikuIgotIyAgICAgICAgICAgICAgcHV0cyAiPEZGPiAgICAgICBGRiB3aWxsIG1vdmUgdGhlIGNvZGVnZW4gZGlyIHVuZGVyIHRoZSBydW5kaXI6ICAkdmFycyhydW5kaXIpL1tmaWxlIHRhaWwgJHZhcnMoc2NyaXB0X2RpcildIgotIyAgICAgICAgICAgICAgc2V0IGZhcmdzKHNjcmlwdF9kaXIpIFtmaWxlIG5vcm1hbGl6ZSAkdmFycyhydW5kaXIpL1tmaWxlIHRhaWwgJHZhcnMoc2NyaXB0X2RpcildXQotIyAgICAgICAgICAgICAgc2V0IHZhcnMoc2NyaXB0X2RpcikgJGZhcmdzKHNjcmlwdF9kaXIpCi0jICAgICAgICAgICB9IGVsc2VpZiB7W2luZm8gZXhpc3RzIHZhcnMoc2NyaXB0X2RpcildICYmICR2YXJzKHNjcmlwdF9kaXIpIGVxICJGRiJ9IHsKLSMgICAgICAgICAgICAgICMgdmFycyhzY3JpcHRfZGlyKSBpcyB0aGUgZGVmYXVsdCwgc28ganVzdCBtb3ZlIGl0Ci0jICAgICAgICAgICAgICBzZXQgZmFyZ3Moc2NyaXB0X2RpcikgW2ZpbGUgbm9ybWFsaXplICR2YXJzKHJ1bmRpcikvRkZdCi0jICAgICAgICAgICAgICBzZXQgdmFycyhzY3JpcHRfZGlyKSAkZmFyZ3Moc2NyaXB0X2RpcikKLSMgICAgICAgICAgIH0KLSMgICAgICAgICB9IGVsc2UgewotIyAgICAgICAgICAgIyBydW5kaXIgaXMgLi8sIHNvIHNldCAKLSMgICAgICAgICAgIGlmIHshW2luZm8gZXhpc3RzIHNjcmlwdERpcl19IHsKLSMgICAgICAgICAgICAgc2V0IGRhcmdzKHNjcmlwdF9kaXIpICJGRiIKLSMgICAgICAgICAgICAgc2V0IHZhcnMoc2NyaXB0X2RpcikgJGRhcmdzKHNjcmlwdF9kaXIpCi0jICAgICAgICAgICB9IGVsc2UgewotIyAgICAgICAgICAgICBzZXQgdmFycyhzY3JpcHRfZGlyKSAkc2NyaXB0RGlyCi0jICAgICAgICAgICB9Ci0jICAgICAgICAgfQotICAgICAgICAgIyBCQ0w6IEFkZGVkIHN1YnN0IHRvIHJlc29sdmUgdmFycyhydW5kaXIpCi0jIEdERyAtIHRoaXMgaXMgZG9uZSBtdWx0aXBsZSB0aW1lcwotICAgICAgICAgI2NhdGNoIHtmaWxlIG1rZGlyIFtzdWJzdCAkdmFycyhzY3JpcHRfZGlyKV19Ci0gICAgICB9Ci0KLSAgICAgICMKLSAgICAgICMgRGV0ZXJtaW5lIHRoZSBzdGVwcyB0aGF0IGNhbiBiZSBleGVjdXRlZCBiYXNlZCB1cG9uIHRoZSBtb2RlIHBhc3NlZCBpbgotICAgICAgIwotICAgICAgRkY6OnNldF9zdGVwcyAkbW9kZSAkdmFycyhmb3JtYXRfbGluZXMpCi0gICAgICBzZXQgdXNlcl9zdGVwcyBbbGlzdF0KLSAgICAgIGlmIHshW2xsZW5ndGggJGFyZ3ZdfSB7Ci0gICAgICAgICAjCi0gICAgICAgICAjIElmIHRoZXJlIGlzIG5vIGFyZ3VtZW50LCBwcmludCBvdXQgdGhlIGxpc3Qgb2YgdmFsaWQgc3RlcHMgZm9yIHRoZSBtb2RlCi0gICAgICAgICAjCi0gICAgICAgICAjIHNldCBzdGVwIGFsbAotICAgICAgICAgIyAgIHB1dHMgIlZhbGlkIHN0ZXBzIGFyZTogc291cmNlIGNoZWNrIGFsbCAkdmFycyhzdGVwcykiCi0gICAgICAgICAjICAgZXhpdAotICAgCi0gICAgICAgICBwdXRzICRGRk1NOjp1c2FnZQotICAgICAgICAgcHV0cyAiICAgU3RlcCBhcmd1bWVudCBtaXNzaW5nIC4uLiB2YWxpZCBzdGVwcyBhcmU6XG4iCi0gICAgICAgICAgZm9yZWFjaCBzICIkdmFycyhzdGVwcykgYWxsIiB7Ci0gICAgICAgICAgICBwdXRzICIgICAgICRzIgotICAgICAgICAgfQotICAgICAgICAgZXhpdAotCi0gICAgICB9IGVsc2UgewotCi0gICAgICAgICAjCi0gICAgICAgICAjIENyZWF0ZSBhIGxpc3Qgb2YgdGhlIHVzZXItc3BlY2lmaWVkIHN0ZXBzLiAgVGhleSBjYW4gYmUgaW4gdGhlIGZvcm0gb2YKLSAgICAgICAgICMgICAgIDxzdGVwMT4gPHN0ZXAyPiAuLi4gPHN0ZXBuPgotICAgICAgICAgIyAgICAgPHN0ZXAxPiA8c3RlcDM+LTxzdGVwNT4gPHN0ZXA3PiAuLi4KLSAgICAgICAgICMgICAgIDxzdGVwMT4tPHN0ZXBuPgotICAgICAgICAgIyBUaGVyZSBhcmUsIG9mIGNvdXJzZSwgYWRkaXRpb25hbCB2YXJpYW50cy4gIFRoZSB0aGluZyBpcywgaWYgdGhlcmUgaXMgYQotICAgICAgICAgIyBkYXNoIGJldHdlZW4gdHdvIHN0ZXBzLCB3ZSB3YW50IHRvIGV4cGFuZCB0aGUgZGFzaCBpbnRvIHRoZSBzZXQgb2YgYWxsCi0gICAgICAgICAjIHN0ZXBzIGJldHdlZW4gdGhlIHR3byBsaXN0ZWQuCi0gICAgICAgICAjCi0gIAotICAgICAgICAgc2V0IHZhcnMoc3RlcF9hcmcpICRhcmd2Ci0gICAgICAgICBmb3JlYWNoIHN0ZXAgJGFyZ3YgewotICAgICAgICAgICAgc2V0IGRhc2ggW3N0cmluZyBmaXJzdCAiLSIgJHN0ZXBdCi0gICAgICAgICAgICBpZiB7JGRhc2ggPT0gLTF9IHsKLSAgICAgICAgICAgICAgIGxhcHBlbmQgdXNlcl9zdGVwcyAkc3RlcAotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIHNldCBmaXJzdF9zdGVwIFtzdHJpbmcgcmFuZ2UgJHN0ZXAgMCBbZXhwciAkZGFzaCAtIDFdXQotICAgICAgICAgICAgICAgc2V0IGxhc3Rfc3RlcCBbc3RyaW5nIHJhbmdlICRzdGVwIFtleHByICRkYXNoICsgMV0gZW5kXQotICAgICAgICAgICAgICAgaWYgeyRsYXN0X3N0ZXAgPT0gIiJ9IHsKLSAgICAgICAgICAgICAgICAgIHNldCBsYXN0X3N0ZXAgW2xpbmRleCAkdmFycyhzdGVwcykgZW5kXQotICAgICAgICAgICAgICAgfQotICAgCi0gICAgICAgICAgICAgICBzZXQgZmlyc3RfaW5kZXggW2xzZWFyY2ggJHZhcnMoc3RlcHMpICRmaXJzdF9zdGVwXQotICAgICAgICAgICAgICAgc2V0IGxhc3RfaW5kZXggW2xzZWFyY2ggJHZhcnMoc3RlcHMpICRsYXN0X3N0ZXBdCi0gICAgICAgICAgICAgICBpZiB7JGZpcnN0X2luZGV4ID09IC0xfSB7Ci0gICAgICAgICAgICAgICAgICBwdXRzICJFcnJvcjogVW5rbm93biBzdGVwICRmaXJzdF9zdGVwIGZvciBtb2RlICRtb2RlIgotICAgICAgICAgICAgICAgICAgZXhpdCAtMTExCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICBpZiB7JGxhc3RfaW5kZXggPT0gLTF9IHsKLSAgICAgICAgICAgICAgICAgIHB1dHMgIkVycm9yOiBVbmtub3duIHN0ZXAgJGxhc3Rfc3RlcCBmb3IgbW9kZSAkbW9kZSIKLSAgICAgICAgICAgICAgICAgIGV4aXQgLTExMQotICAgICAgICAgICAgICAgfQotICAgCi0gICAgICAgICAgICAgICBzZXQgc3RlcHMgW2xyYW5nZSAkdmFycyhzdGVwcykgJGZpcnN0X2luZGV4ICRsYXN0X2luZGV4XQotICAgICAgICAgICAgICAgc2V0IHVzZXJfc3RlcHMgW2NvbmNhdCAkdXNlcl9zdGVwcyAkc3RlcHNdCi0gICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0gICAgICB9Ci0gIAotICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGhlbHApXSAmJiAkdmFycyhoZWxwKX0gewotICAgICAgICAgZm9yZWFjaCBzdGVwICR1c2VyX3N0ZXBzIHsKLSAgICAgICAgICAgIEZGOjpoZWxwICRzdGVwCi0gICAgICAgICB9Ci0gICAgICAgICBleGl0Ci0gICAgICB9Ci0gICAKLSAgICAgIHNldCB2YXJzKG1ha2UpICR1c2VyX3N0ZXBzCi0gICAgICBzZXQgdmFycyhhcmd2KSAkYXJndgotICAgCi0gICAgICAjc2V0IHVzZXJfc3RlcHMgW0ZGOjpzZXR1cF9mbG93ICRhcmd2IF0KLSAgIAotICAgICAgIwotICAgICAgIyBFeGVjdXRlIHRoZSBmbG93IGZvciBldmVyeSBzdGVwIHRoYXQgdGhlIHVzZXIgc3BlY2lmaWVkLgotICAgICAgIwotICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKHJ1bmRpcildfSB7Ci0gICAgICAgICBzZXQgY3dkIFtleGVjIHB3ZF0gIAotICAgICAgICAgZmlsZSBta2RpciAkdmFycyhydW5kaXIpCi0gICAgICAgICBmb3JlYWNoIGZpbGUgW2xpc3Qgc2V0dXAudGNsIGlubm92dXNfY29uZmlnLnRjbCBscF9jb25maWcudGNsIHJjX2NvbmZpZy50Y2xdIHsgCi0gICAgICAgICAgICBpZiB7W2ZpbGUgaXNmaWxlICRmaWxlXX0gewotICAgICAgICAgICAgICAgZmlsZSBjb3B5IC1mb3JjZSAkZmlsZSAkdmFycyhydW5kaXIpCi0gICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0gICAgICAgICBjZCAkdmFycyhydW5kaXIpCi0gICAgICB9Ci0gICAgIAotICAgICAgc2V0IG1vZGUgJHZhcnMobW9kZSkKLSAgICAgIGZvcmVhY2ggc3RlcCAkdXNlcl9zdGVwcyB7Ci0gICAgICAgICBpZiB7JG1vZGUgPT0gImhpZXIifSB7IHNldCBtb2RlIHRvcF9kb3duIH0KLSAgICAgICAgIHN3aXRjaCAkbW9kZSB7Ci0gICAgICAgICAgICAidXNlciIgewotICAgICAgICAgICAgICAgaWYgeyR2YXJzKG5vdnVzKX0gewotICAgICAgICAgICAgICAgICAgRkZfTk9WVVM6OmV4ZWN1dGVfZmxvdyAkc3RlcCAkdmFycyhmb3JtYXRfbGluZXMpCi0gICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgRkZfRURJOjpleGVjdXRlX2Zsb3cgJHN0ZXAgJHZhcnMoZm9ybWF0X2xpbmVzKQotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAgICAgImZsYXQiIHsKLSAgICAgICAgICAgICAgIGlmIHskdmFycyhub3Z1cyl9IHsKLSAgICAgICAgICAgICAgICAgIEZGX05PVlVTOjpleGVjdXRlX2Zsb3cgJHN0ZXAgJHZhcnMoZm9ybWF0X2xpbmVzKQotICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgIEZGX0VESTo6ZXhlY3V0ZV9mbG93ICRzdGVwICR2YXJzKGZvcm1hdF9saW5lcykKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgICJ0b3BfZG93biIgewotICAgICAgICAgICAgICAgaWYgeyR2YXJzKG5vdnVzKX0gewotICAgICAgICAgICAgICAgICAgRkZfTk9WVVM6OmV4ZWN1dGVfZmxvdyAkc3RlcCAkdmFycyhmb3JtYXRfbGluZXMpCi0gICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgRkZfRURJOjpleGVjdXRlX2Zsb3cgJHN0ZXAgJHZhcnMoZm9ybWF0X2xpbmVzKQotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAgICAgImJvdHRvbV91cCIgewotICAgICAgICAgICAgICAgaWYgeyR2YXJzKG5vdnVzKX0gewotICAgICAgICAgICAgICAgICAgRkZfTk9WVVM6OmV4ZWN1dGVfZmxvdyAkc3RlcCAkdmFycyhmb3JtYXRfbGluZXMpCi0gICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgRkZfRURJOjpleGVjdXRlX2Zsb3cgJHN0ZXAgJHZhcnMoZm9ybWF0X2xpbmVzKQotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAgICAgImRlZmF1bHQiIHsKLSAgICAgICAgICAgICAgIHB1dHMgW2Zvcm1hdCAkRkZNTTo6dW5rbm93bk1vZGUgbW9kZV0KLSAgICAgICAgICAgICAgIHB1dHMgJEZGTU06OnVzYWdlCi0gICAgICAgICAgICAgICBleGl0IC0xMTEKLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0KLSAgICAgIH0KLSAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhmbG93X3N0ZXBzKV19IHsKLSAgICAgICAgIHVuc2V0IHZhcnMoZmxvd19zdGVwcykKLSAgICAgIH0KLSAgICAgIGlmIHtbZmlsZSBpc2ZpbGUgJHZhcnMoc2NyaXB0X2RpcikvSU5OT1ZVUy8uaGVhZF19IHsKLSAgICAgICAgIGlmIHskdmFycyhzdGVwX2FyZykgPT0gImFsbCJ9IHsKLSAgICAgICAgICAgIHNldCBvcCBbb3BlbiAkdmFycyhzY3JpcHRfZGlyKS9JTk5PVlVTL3J1bl9zaW1wbGUudGNsIHddCi0gICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgc2V0IG9wIFtvcGVuICR2YXJzKHNjcmlwdF9kaXIpL0lOTk9WVVMvcnVuX3NpbXBsZS4kdmFycyhzdGVwX2FyZykudGNsIHddCi0gICAgICAgICB9Ci0gICAgICAgICBwdXRzICRvcCAiIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIgotICAgICAgICAgcHV0cyAkb3AgIiMgICAgICAgICAgICAgICAgICAgICAgIFNJTkdMRSBTQ1JJUFQgRkxPVyIKLSAgICAgICAgIHB1dHMgJG9wICIjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMiCi0gICAgICAgICBwdXRzICRvcCAiXG5zb3VyY2UgJHZhcnMoc2NyaXB0X2RpcikvdmFycy50Y2wiCi0gICAgICAgICBwdXRzICRvcCAic291cmNlICR2YXJzKHNjcmlwdF9kaXIpL3Byb2NzLnRjbFxuIgotICAgICAgICAgc2V0IGlwIFtvcGVuICR2YXJzKHNjcmlwdF9kaXIpL0lOTk9WVVMvLmhlYWRdCi0gICAgICAgICB3aGlsZSB7W2dldHMgJGlwIGxpbmVdPj0wfSB7Ci0gICAgICAgICAgICBwdXRzICRvcCAkbGluZSAKLSAgICAgICAgIH0KLSAgICAgICAgIGNsb3NlICRpcAotICAgICAgICAgc2V0IGlwIFtvcGVuICR2YXJzKHNjcmlwdF9kaXIpL0lOTk9WVVMvLmxvYWRfW2xpbmRleCAkdmFycyhic3RlcHMpIDBdXQotICAgICAgICAgd2hpbGUge1tnZXRzICRpcCBsaW5lXT49MH0gewotICAgICAgICAgICAgcHV0cyAkb3AgJGxpbmUgCi0gICAgICAgICB9Ci0gICAgICAgICBjbG9zZSAkaXAKLSAgICAgICAgIGZvcmVhY2ggc3RlcCAkdmFycyhic3RlcHMpIHsKLSAgICAgICAgICAgIGlmIHsoJHN0ZXAgPT0gImxlYyIpIHx8ICgkc3RlcCA9PSAiZGVidWciKX0gewotICAgICAgICAgICAgICAgY29udGludWUKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHNldCBpcCBbb3BlbiAkdmFycyhzY3JpcHRfZGlyKS9JTk5PVlVTLy4kc3RlcF0KLSAgICAgICAgICAgIHdoaWxlIHtbZ2V0cyAkaXAgbGluZV0+PTB9IHsKLSAgICAgICAgICAgICAgIHB1dHMgJG9wICRsaW5lIAotICAgICAgICAgICAgfQotICAgICAgICAgICAgY2xvc2UgJGlwCi0gICAgICAgICAgICBmaWxlIGRlbGV0ZSAkdmFycyhzY3JpcHRfZGlyKS9JTk5PVlVTLy4kc3RlcCAgCi0gICAgICAgICAgICBmaWxlIGRlbGV0ZSAkdmFycyhzY3JpcHRfZGlyKS9JTk5PVlVTLy5sb2FkXyRzdGVwCi0gICAgICAgICB9IAotICAgICAgICAgcHV0cyAkb3AgImV4aXQiCi0gICAgICAgICBjbG9zZSAkb3AKLSMgICAgICAgIGZpbGUgbWtkaXIgJHZhcnMoc2NyaXB0X2RpcikvSU5OT1ZVUy9TSU1QTEUKLSMgICAgICAgIGZvcmVhY2ggc3RlcCAkdmFycyhic3RlcHMpIHsKLSMgICAgICAgICAgIGlmIHsoJHN0ZXAgPT0gImxlYyIpICB8fCAoJHN0ZXAgPT0gImRlYnVnIil9IHsKLSMgICAgICAgICAgICAgIGNvbnRpbnVlCi0jICAgICAgICAgICB9Ci0jICAgICAgICAgICBzZXQgb3AgW29wZW4gJHZhcnMoc2NyaXB0X2RpcikvSU5OT1ZVUy9TSU1QTEUvcnVuXyRzdGVwLnRjbCB3XQotIyAgICAgICAgICAgcHV0cyAkb3AgIiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyIKLSMgICAgICAgICAgIHB1dHMgJG9wICIjICAgICAgICAgICAgICAgICAgICAgIFNJTVBMRSBTVEVQIFNDUklQVCIKLSMgICAgICAgICAgIHB1dHMgJG9wICIjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMiCi0jICAgICAgICAgICBwdXRzICRvcCAiXG5zb3VyY2UgJHZhcnMoc2NyaXB0X2RpcikvdmFycy50Y2wiCi0jICAgICAgICAgICBwdXRzICRvcCAic291cmNlICR2YXJzKHNjcmlwdF9kaXIpL3Byb2NzLnRjbFxuIgotIyAgICAgICAgICAgc2V0IGlwIFtvcGVuICAkdmFycyhzY3JpcHRfZGlyKS9JTk5PVlVTLy5oZWFkXQotIyAgICAgICAgICAgd2hpbGUge1tnZXRzICRpcCBsaW5lXT49MH0gewotIyAgICAgICAgICAgICAgcHV0cyAkb3AgJGxpbmUgCi0jICAgICAgICAgICB9Ci0jICAgICAgICAgICBjbG9zZSAkaXAKLSMjICAgICAgICAgICBmaWxlIGRlbGV0ZSAkdmFycyhzY3JpcHRfZGlyKS9JTk5PVlVTLy5oZWFkICAKLSMgICAgICAgICAgIHNldCBpcCBbb3BlbiAkdmFycyhzY3JpcHRfZGlyKS9JTk5PVlVTLy5sb2FkXyRzdGVwXQotIyAgICAgICAgICAgd2hpbGUge1tnZXRzICRpcCBsaW5lXT49MH0gewotIyAgICAgICAgICAgICAgcHV0cyAkb3AgJGxpbmUgCi0jICAgICAgICAgICB9Ci0jICAgICAgICAgICBjbG9zZSAkaXAKLSMgICAgICAgICAgIHNldCBpcCBbb3BlbiAgJHZhcnMoc2NyaXB0X2RpcikvSU5OT1ZVUy8uJHN0ZXBdCi0jICAgICAgICAgICB3aGlsZSB7W2dldHMgJGlwIGxpbmVdPj0wfSB7Ci0jICAgICAgICAgICAgICBwdXRzICRvcCAkbGluZSAKLSMgICAgICAgICAgIH0KLSMgICAgICAgICAgIGNsb3NlICRpcAotIyAgICAgICAgICAgcHV0cyAkb3AgImV4aXQiCi0jICAgICAgICAgICBjbG9zZSAkb3AKLSMgICAgICAgICAgIGZpbGUgZGVsZXRlICR2YXJzKHNjcmlwdF9kaXIpL0lOTk9WVVMvLiRzdGVwICAKLSMgICAgICAgICAgIGZpbGUgZGVsZXRlICR2YXJzKHNjcmlwdF9kaXIpL0lOTk9WVVMvLmxvYWRfJHN0ZXAKLSMgICAgICAgIH0KLSAgICAgICAgICBmaWxlIGRlbGV0ZSAkdmFycyhzY3JpcHRfZGlyKS9JTk5PVlVTLy5oZWFkICAKLSAgICAgIH0KLQotICAgICAgIyAtLS0tLS0tLS0tLQotCi0jICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKHNjcmlwdF9kaXIpXX0gewotIyAgICAgICAgIGZpbGUgZGVsZXRlICR2YXJzKHNjcmlwdF9kaXIpL0lOTk9WVVMvZ2VuX2h0bWwudGNsCi0jICAgICAgICAgZmlsZSBjb3B5IFtzdWJzdCAkdmFycyhzY3JpcHRfcGF0aCkvSU5OT1ZVUy9nZW5faHRtbC50Y2xdIFtzdWJzdCAkdmFycyhzY3JpcHRfZGlyKS9JTk5PVlVTL2dlbl9odG1sLnRjbF0KLSMgICAgICB9Ci0gICAgICBwdXRzICItLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIgotICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKHBsdWdfZmlsZXMpXSAmJiAoJHZhcnMocGx1Z19maWxlcykgIT0gIiIpfSB7Ci0gICAgICAgICBwdXRzICJcbiAgICAgICAgICAgICAgICBQbHVnLWlucyBJbXBvcnRlZCIKLSAgICAgICAgIHB1dHMgIiAgICAgICAgICAgICAgIC0tLS0tLS0tLS0tLS0tLS0tLSIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCi0gICAgICAgICBmb3JlYWNoIGZpbGUgJHZhcnMocGx1Z19maWxlcykgewotICAgICAgICAgICAgcHV0cyAiICAgICAgICAgICAgICAgPiAkZmlsZSIKLSAgICAgICAgIH0KLSAgICAgIH0KLSAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhwbHVnaW5zX2RlZmluZWQpXSAmJiAoJHZhcnMocGx1Z2luc19kZWZpbmVkKSAhPSAiIil9IHsKLSAgICAgICAgICAgIHNldCBwbHVnaW5zX2RlZmluZWQgW2xsZW5ndGggJHZhcnMocGx1Z2luc19kZWZpbmVkKV0KLSAgICAgICAgICAgIGlmIHskdmFycyh2ZXJib3NlKX0gewotICAgICAgICAgICAgICAgcHV0cyAiXG4gICAgICAgICAgICAgICAgUGx1Zy1pbnMgRGVmaW5lZCIKLSAgICAgICAgICAgICAgIHB1dHMgIiAgICAgICAgICAgICAgIC0tLS0tLS0tLS0tLS0tLS0tLSIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICBmb3JlYWNoIGZpbGUgW2pvaW4gJHZhcnMocGx1Z2luc19kZWZpbmVkKV0gewotICAgICAgICAgICAgICAgICAgcHV0cyAiICAgICAgICAgICAgICAgPiAkZmlsZSIKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBzZXQgcGx1Z2luc19kZWZpbmVkIDAKLSAgICAgICAgIH0KLSAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhwbHVnaW5zX2ZvdW5kKV0gJiYgKCR2YXJzKHBsdWdpbnNfZm91bmQpICE9ICIiKX0gewotICAgICAgICAgICAgc2V0IHBsdWdpbnNfZm91bmQgW2xsZW5ndGggJHZhcnMocGx1Z2luc19mb3VuZCldCi0gICAgICAgICAgICBpZiB7JHZhcnModmVyYm9zZSl9IHsKLSAgICAgICAgICAgICAgIHB1dHMgIlxuICAgICAgICAgICAgICAgICBQbHVnLWlucyBGb3VuZCIKLSAgICAgICAgICAgICAgIHB1dHMgIiAgICAgICAgICAgICAgIC0tLS0tLS0tLS0tLS0tLS0tLSIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICBmb3JlYWNoIGZpbGUgW2pvaW4gJHZhcnMocGx1Z2luc19mb3VuZCldIHsKLSAgICAgICAgICAgICAgICAgIHB1dHMgIiAgICAgICAgICAgICAgID4gJGZpbGUiCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgc2V0IHBsdWdpbnNfZm91bmQgMAotICAgICAgICAgfQotICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKG1pc3NpbmdfcGx1Z2lucyldICYmICgkdmFycyhtaXNzaW5nX3BsdWdpbnMpICE9ICIiKX0gewotICAgICAgICAgICAgc2V0IG1pc3NpbmdfcGx1Z2lucyBbbGxlbmd0aCAkdmFycyhtaXNzaW5nX3BsdWdpbnMpXQotICAgICAgICAgICAgcHV0cyAiXG4gICAgICAgICAgICAgICAgIE1pc3NpbmcgUGx1Zy1pbnMiCi0gICAgICAgICAgICBwdXRzICIgICAgICAgICAgICAgICAtLS0tLS0tLS0tLS0tLS0tLS0iICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgZm9yZWFjaCBmaWxlIFtqb2luICR2YXJzKG1pc3NpbmdfcGx1Z2lucyldIHsKLSAgICAgICAgICAgICAgIHB1dHMgIiAgICAgICAgICAgICAgID4gJGZpbGUiCi0gICAgICAgICAgICB9Ci0gICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgc2V0IG1pc3NpbmdfcGx1Z2lucyAwCi0gICAgICAgICB9Ci0gICAgICAjICAgICAgcHV0cyAiLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIKLSAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyh0YWdnZWQpXSAmJiAoJHZhcnModGFnZ2VkKSAhPSAiIil9IHsKLSAgICAgICAgIHB1dHMgIlxuICAgICAgICAgICAgICAgIFRhZ2dlZCBDb21tYW5kcyIKLSAgICAgICAgIHB1dHMgIiAgICAgICAgICAgICAgIC0tLS0tLS0tLS0tLS0tLS0tLSIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCi0gICAgICAgICBmb3JlYWNoIGZpbGUgJHZhcnModGFnZ2VkKSB7Ci0gICAgICAgICAgICBwdXRzICIgICAgICAgICAgICAgICA+ICRmaWxlIgotICAgICAgICAgfQotCi0gICAgICAgICBzZXQgdmFycyhtaXNzaW5nX3RhZ3MpIFtsaXN0XQotICAgICAgICAgZm9yZWFjaCB2YXIgW2FycmF5IG5hbWVzIHZhcnNdIHsKLSAgICAgICAgICAgaWYge1tsbGVuZ3RoIFtzcGxpdCAkdmFyICIsIl1dID09IDN9IHsKLSAgICAgICAgICAgICBzZXQgc3VmZml4IFtsaW5kZXggW3NwbGl0ICR2YXIgIiwiXSAyXQotICAgICAgICAgICAgIGlmIHsoJHN1ZmZpeCA9PSAicHJlX3RjbCIpIHx8ICgkc3VmZml4ID09ICJwb3N0X3RjbCIpIHx8ICgkc3VmZml4ID09ICJyZXBsYWNlX3RjbCIpfSB7Ci0gICAgICAgICAgICAgICBpZiB7W2xzZWFyY2ggJHZhcnModGFnZ2VkKSAkdmFyXSA9PSAtMX0gewotICAgICAgICAgICAgICAgICBsYXBwZW5kIHZhcnMobWlzc2luZ190YWdzKSAkdmFyCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgfQotICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0gICAgICAgICBpZiB7W2xsZW5ndGggJHZhcnMobWlzc2luZ190YWdzKV0gPiAwfSB7IAotICAgICAgICAgICBwdXRzICJcbiAgICAgICAgICAgICAgICBVbnJlY29nbml6ZWQgVGFncyIKLSAgICAgICAgICAgcHV0cyAiICAgICAgICAgICAgICAgLS0tLS0tLS0tLS0tLS0tLS0tIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgZm9yZWFjaCB0YWcgJHZhcnMobWlzc2luZ190YWdzKSB7Ci0gICAgICAgICAgICAgIHB1dHMgIiAgICAgICAgICAgICAgID4gJHRhZyIKLSAgICAgICAgICAgfQotICAgICAgICAgfQotICAgICAgfQotICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGluZm9fY291bnQpXSAmJiAoJHZhcnMoaW5mb19jb3VudCkgPiAwKX0gewotICAgICAgICAgcHV0cyAiXG4gICAgICAgICAgICAgICAgICAgSW5mbyBTdW1tYXJ5IgotICAgICAgICAgcHV0cyAiICAgICAgICAgICAgICAgICAgLS0tLS0tLS0tLS0tLS0tIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKLSAgICAgICAgIGZvciB7c2V0IGkgMH0geyRpPCR2YXJzKGluZm9fY291bnQpfSB7aW5jciBpfSB7Ci0gICAgICAgICAgICBwdXRzICIgICAgKFtleHByICRpICsgMV0pICRpbmZvcygkaSkiCi0gICAgICAgICB9Ci0gICAgICB9Ci0gICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMod2FybmluZ19jb3VudCldICYmICgkdmFycyh3YXJuaW5nX2NvdW50KSA+IDApfSB7Ci0gICAgICAgICBwdXRzICJcbiAgICAgICAgICAgICAgICAgIFdhcm5pbmcgU3VtbWFyeSIKLSAgICAgICAgIHB1dHMgIiAgICAgICAgICAgICAgICAgIC0tLS0tLS0tLS0tLS0tLSIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCi0gICAgICAgICBmb3Ige3NldCBpIDB9IHskaTwkdmFycyh3YXJuaW5nX2NvdW50KX0ge2luY3IgaX0gewotICAgICAgICAgICAgcHV0cyAiICAgIChbZXhwciAkaSArIDFdKSAkd2FybmluZ3MoJGkpIgotICAgICAgICAgfQotICAgICAgfQotICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGVycm9yX2NvdW50KV0gJiYgKCR2YXJzKGVycm9yX2NvdW50KSA+IDApfSB7Ci0gICAgICAgICBwdXRzICJcbiAgICAgICAgICAgICAgICAgICBFcnJvciBTdW1tYXJ5IgotICAgICAgICAgcHV0cyAiICAgICAgICAgICAgICAgICAgIC0tLS0tLS0tLS0tLS0tLSIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCi0gICAgICAgICBmb3Ige3NldCBpIDB9IHskaTwkdmFycyhlcnJvcl9jb3VudCl9IHtpbmNyIGl9IHsKLSAgICAgICAgICAgIHB1dHMgIiAgICAoW2V4cHIgJGkgKyAxXSkgJGVycm9ycygkaSkiCi0gICAgICAgICB9Ci0gICAgICAgICBpZiB7JHZhcnMoYWJvcnQpfSB7Ci0gICAgICAgICAgICBwdXRzICJcbiIKLSAgICAgICAgICAgIHB1dHMgIi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iCi0gICAgICAgICAgICBwdXRzICI8RkY+IENPREUgR0VORVJBVElPTiBGQUlMRUQiCi0gICAgICAgICAgICBwdXRzICItLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIgotICAgICAgICAgICAgZXhpdCAxCi0gICAgICAgICB9Ci0gICAgICB9Ci0gICAgICBpZiB7JHZhcnMobWFrZSkgIT0gImFsbCJ9IHsKLSAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhjdXN0b21fc3RlcHMpXX0gewotICAgICAgICAgICAgRkY6Omdlbl9tYWtlZmlsZSAkdmFycyhjdXN0b21fc3RlcHMpICR2YXJzKG1vZGUpCi0gICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgRkY6Omdlbl9tYWtlZmlsZSAkdmFycyhtYWtlKSAkdmFycyhtb2RlKQotICAgICAgICAgfQotICAgICAgfQotCi0KLSMgICAgICBpZiB7KCR2YXJzKHVzZXJfbW9kZSkgPT0gImhpZXIiKSAmJiAkdmFycyhlbmFibGVfZmxleGlsbSl9IHsKLSMgICAgICAgICBmb3JlYWNoIHBhcnQgJHZhcnMocGFydGl0aW9uX2xpc3QpIHsKLSMgICAgICAgICAgICBmaWxlIGNvcHkgJHZhcnMocGFydGl0aW9uX2Rpcl9wYXNzMikvJHBhcnQvTWFrZWZpbGUgJHZhcnMocGFydGl0aW9uX2Rpcl9wYXNzMikvJHBhcnQuTWFrZWZpbGUKLSMgICAgICAgICB9IAotIyAgICAgIH0KLSAgICAgIAotICAgICAgcHV0cyAiXG4iCi0gICAgICBwdXRzICItLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIgotICAgICAgcHV0cyAiPEZGPiBDT0RFIEdFTkVSQVRJT04gQ09NUExFVEUiCi0gICAgICBwdXRzICI8RkY+IC4uLiBWRVJTSU9OICAtPiAkdmFycyh2ZXJzaW9uKSIKLSAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhydW5kaXIpXX0gewotICAgICAgICAgcHV0cyAiPEZGPiAuLi4gUlVOIERJUkVDVE9SWSAgLT4gJHZhcnMocnVuZGlyKSIKLSAgICAgIH0KLSAgICAgIHB1dHMgIjxGRj4gLi4uIFNDUklQVFMgIC0+ICR2YXJzKHNjcmlwdF9kaXIpIgotICAgICAgcHV0cyAiPEZGPiAuLi4gUExVR0lOUyAgLT4gJHBsdWdpbnNfZGVmaW5lZCBkZWZpbmVkLCAkcGx1Z2luc19mb3VuZCBmb3VuZCIKLSAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhjaGVja192YXJzKV0gJiYgJHZhcnMoY2hlY2tfdmFycyl9IHsKLSAgICAgICAgIHB1dHMgIjxGRj4gLi4uIFJFUE9SVFMgIC0+ICR2YXJzKHNjcmlwdF9kaXIpL2NoZWNrLnJwdCIKLSAgICAgICAgIHB1dHMgIjxGRj4gLi4uICAgICAgICAgIC0+ICR2YXJzKHNjcmlwdF9kaXIpL2NoZWNrX3ZhcnMucnB0IgotICAgICAgfSBlbHNlIHsKLSAgICAgICAgIHB1dHMgIjxGRj4gLi4uIFJFUE9SVCAgIC0+ICR2YXJzKHNjcmlwdF9kaXIpL2NoZWNrLnJwdCIKLSAgICAgIH0KLSAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhtYWtlZmlsZV9uYW1lKV0gJiYgW2ZpbGUgaXNmaWxlIFtzdWJzdCAkdmFycyhtYWtlZmlsZV9uYW1lKV1dfSB7Ci0gICAgICAgICBwdXRzICI8RkY+IC4uLiBNQUtFRklMRSAtPiBbcmVsUGF0aFRvIFtzdWJzdCAkdmFycyhtYWtlZmlsZV9uYW1lKV0gW3N1YnN0ICR2YXJzKHJ1bmRpcildXSIKLSAgICAgIH0KLSAgICAgIAotICAgICAgcHV0cyAiLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIKLQotICAgICAgRkY6OmR1bXBfdmFycwotCi0gICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMocnVuZGlyKV19IHsKLSAgICAgICAgIGNkICRjd2QKLSAgICAgIH0KLSAgIH0KLQotICAgcHJvYyBkdW1wX3ZhcnMge30gewotCi0gICAgICBnbG9iYWwgdmFycwotICAgICAgZ2xvYmFsIGVudgotCi0gICAgICAjIAotICAgICAgIyBDcmVhdGUgYSBwcm9jcy50Y2wgZmlsZSB3aXRoIGZmIHV0aWxpdGllcyB0aGF0IGFyZSBuZWVkIGJ5IHRoZSBmbG93Ci0gICAgICAjIAotCi0gICAgICBpZiB7IVtpbmZvIGV4aXN0cyB2YXJzKHByb2NfZmlsZSldfSB7Ci0KLSAgICAgICAgIHB1dHMgIjxGRj4gQ3JlYXRpbmcgJHZhcnMoc2NyaXB0X2RpcikvcHJvY3MudGNsIgotICAgICAgICAgc2V0IHNhdmUgJHZhcnMocmVxdWlyZWRfcHJvY3MpCi0gICAgICAgICBzZXQgb2YgW29wZW4gJHZhcnMoc2NyaXB0X2RpcikvcHJvY3MudGNsIHddCi0gICAgICAgICBzZXQgZmZfcHJvY3MgIlxubmFtZXNwYWNlIGV2YWwgZmZfcHJvY3M6OiB7XG4iCi0gICAgICAgICBhcHBlbmQgZmZfcHJvY3MgW2dldF9yZXF1aXJlZF9wcm9jcyAkdmFycyhzY3JpcHRfcGF0aCkvRVRDL0lOTk9WVVMvdXRpbHMudGNsXQotICAgICAgICAgYXBwZW5kIGZmX3Byb2NzIFtnZXRfcmVxdWlyZWRfcHJvY3MgJHZhcnMoc2NyaXB0X3BhdGgpL0VUQy91dGlscy50Y2xdCi0gICAgICAgICBzZXQgdmFycyhyZXF1aXJlZF9wcm9jcykgInNvdXJjZV9wbHVnIgotICAgICAgICAgYXBwZW5kIGZmX3Byb2NzIFtnZXRfcmVxdWlyZWRfcHJvY3MgJHZhcnMoc2NyaXB0X3BhdGgpL0VUQy9JTk5PVlVTL3V0aWxzLnRjbF0KLSMgICAgICAgICBhcHBlbmQgZmZfcHJvY3MgIiAgIG5hbWVzcGFjZSBleHBvcnQgbG9hZF9hcHBsZXRcbiIKLSAgICAgICAgIGFwcGVuZCBmZl9wcm9jcyAifVxuIgotICAgICAgICAgcHV0cyAkb2YgJGZmX3Byb2NzCi0gICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnModXNlX2ZsZXhtb2RlbHMpXSAmJiAkdmFycyh1c2VfZmxleG1vZGVscyl9IHsKLSAgICAgICAgICAgIHB1dHMgJG9mIHsKLSAgICAgICAgICAgICAgICMgRmxleG1vZGVsIGRlZmF1bHRzCi0gICAgICAgICAgICAgICBjYXRjaCB7Ci0gICAgICAgICAgICAgICAgICBzZXRQbGFjZURlc2lnbk1vZGVfZmYgLWNsb25lUGxhY2Ugbm9Qb3N0UGxhY2UgIDsjUkVNT1ZFIGFmdGVyIGZpeGluZyBDQ1IgOTc0MTAzCi0gICAgICAgICAgICAgICAgICBzZXQgbWliOjpGRV9tYWpvcl92ZXJzaW9uICBbc3RyaW5nIHJhbmdlIFtnZXRWZXJzaW9uXSAwIDFdCi0gICAgICAgICAgICAgICAgICBzZXQgbWliOjpGRV9taW5vcl92ZXJzaW9uICBbc3RyaW5nIHJhbmdlIFtnZXRWZXJzaW9uXSAzIDRdICAgICAgCi0gICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMgRGVmYXVsdCBwcml2YXRlIHZhciBzZXR0aW5ncyBmb3IgcHJvdG8gZmxvdyAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAgICAgICAgICAgICBzZXQgdHJpYWxSb3V0ZVByaXZhdGU6Omhvbm9yUHRuUGluU3BlYyAxICA7I3NvIFRSIGFkZHMgYmxvY2thZ2VzIHN0cmFkZGxpbmcgcHRuIGJvdW5kYXJ5IGJlZm9yZSByb3V0aW5nCi0gICAgICAgICAgICAgICAgICBzZXQgdHJpYWxSb3V0ZVByaXZhdGU6OmVuYWJsZUZsZXhDZWxsIDEgOyNlbmFibGUgZmxleGZpbGxlcl9yb3V0ZV9ibG9ja2FnZSBmb3IgYmV0dGVyIGNvbmdlc3Rpb24vcGxhY2VtZW50IGNvcnJlbGF0aW9uIHRvIGZ1bGwgbmV0bGlzdC4KLSAgICAgICAgICAgICAgICAgIHNldCB0cmlhbFJvdXRlUHJpdmF0ZTo6dXNlQ29sb3JNYXAgIDEgIDsjZW5hYmxlIG11Y2ggZmFzdGVyIGhhbmRsZVBhcnRpdGlvbkNvbXBsZXggYWxnb3JpdGhtCi0gICAgICAgICAgICAgICAgICBzZXQgdHJpYWxSb3V0ZVByaXZhdGU6Om92ZXJmbG93TGltaXQgNCA7I0dpdmluZyB1cCBwaGFzZSAxIHRyaWFsUm91dGUgcHJlbWF0dXJlbHkgd2hlbiB0aGUgb3ZlcmZsb3cgaXMgbW9yZSB0aGFuIDEwJQotICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMgSGlkZSBzZXR0aW5nIHZhcmlhYmxlcyBpbiB0aGUgcHJvdG90eXBpbmcgc2NyaXB0ICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAgICAgICAgICAgICBzZXRWYXIgdGltaW5nX2xpYnJhcnlfc3VwcG9ydF9taXNtYXRjaGVkX2FyY3MgMAotICAgICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgICAgICAgICAgICAgIyBQcm9jZWR1cmUgdG8gY2hlY2sgZm9yIHVzaW5nIGNvcnJlY3QgcHJvdG90eXBpbmcga2l0Ci0gICAgICAgICAgICAgICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgICAgICAgICAgICAgcHJvYyBtaWI6OmNoZWNrX3Byb3Rva2l0X3ZlcnNpb24ge3tjdXJyZW50X2tpdF92ZXJzaW9uICIifX0gewotICAgICAgICAgICAgICAgICAgICAgaWYge1tsc2VhcmNoICRtaWI6OnByb3Rva2l0X3ZlcnNpb24gJGN1cnJlbnRfa2l0X3ZlcnNpb25dID09IC0xfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBQdXRzICIqV0FSTiogQ29ycmVjdCBwcm90b3R5cGluZyBraXQgc2hvdWxkIGJlIHVzZWQgdG8gYXZvaWQgdW4tZXhwZWN0ZWQgcHJvYmxlbXMiCi0gICAgICAgICAgICAgICAgICAgICAgICBQdXRzICIgICAgICAgVGhpcyBJbm5vdnVzIGJ1aWxkIHJlcXVpcmVzIHByb3RvdHlwaW5nIGtpdCB2ZXJzaW9uIFtscmFuZ2UgJG1pYjo6cHJvdG9raXRfdmVyc2lvbiAwIDRdIgotICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICAgIG1pYjo6Y2hlY2tfcHJvdG9raXRfdmVyc2lvbiAiRURJMTMuMjAtMCIgIAotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAgfQotICAgICAgICAgc2V0IHZhcnMocmVxdWlyZWRfcHJvY3MpICRzYXZlCi0KLSAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhjcGZfZmlsZSldfSB7Ci0gICAgICAgICAgICBwdXRzICRvZiAiIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iCi0gICAgICAgICAgICBwdXRzICRvZiAiIyBCYWNrd2FyZHMgY29tcGF0aWJpbGl0eSAuLi4iCi0gICAgICAgICAgICBwdXRzICRvZiAiIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iCi0gICAgICAgICAgICBwdXRzICRvZiAiY2F0Y2gge2FsaWFzIGZmX21vZGlmeV9wb3dlcl9kb21haW5zIGZmX3Byb2NzOjptb2RpZnlfcG93ZXJfZG9tYWluc30iCi0gICAgICAgICAgICBwdXRzICRvZiAiY2F0Y2gge2FsaWFzIGZmX2FkZF9wb3dlcl9zd2l0Y2hlcyBmZl9wcm9jczo6YWRkX3Bvd2VyX3N3aXRjaGVzfSIKLSAgICAgICAgICAgIHB1dHMgJG9mICJjYXRjaCB7YWxpYXMgZmZfcm91dGVfc2Vjb25kYXJ5X3BnX25ldHMgZmZfcHJvY3M6OnJvdXRlX3NlY29uZGFyeV9wZ19uZXRzfSIKLSAgICAgICAgICAgIHB1dHMgJG9mICJjYXRjaCB7YWxpYXMgZmZfZ2V0X3Bvd2VyX2RvbWFpbnMgZmZfcHJvY3M6OmdldF9wb3dlcl9kb21haW5zfSIKLSAgICAgICAgICAgIHB1dHMgJG9mICJjYXRjaCB7YWxpYXMgZmZfYnVmZmVyX2Fsd2F5c19vbl9uZXRzIGZmX3Byb2NzOjpidWZmZXJfYWx3YXlzX29uX25ldHN9IgotICAgICAgICAgICAgcHV0cyAkb2YgImNhdGNoIHthbGlhcyBmZl9pbnNlcnRfd2VsbHRhcHNfZW5kY2FwcyBmZl9wcm9jczo6aW5zZXJ0X3dlbGx0YXBzX2VuZGNhcHN9IgotICAgICAgICAgICAgaWYgeyR2YXJzKG5vdnVzKX0geyAKLSAgICAgICAgICAgICAgIHB1dHMgJG9mICJjYXRjaCB7YWxpYXMgRkZfTk9WVVM6Om1vZGlmeV9wb3dlcl9kb21haW5zIGZmX3Byb2NzOjptb2RpZnlfcG93ZXJfZG9tYWluc30iCi0gICAgICAgICAgICAgICBwdXRzICRvZiAiY2F0Y2gge2FsaWFzIEZGX05PVlVTOjphZGRfcG93ZXJfc3dpdGNoZXMgZmZfcHJvY3M6OmFkZF9wb3dlcl9zd2l0Y2hlc30iCi0gICAgICAgICAgICAgICBwdXRzICRvZiAiY2F0Y2gge2FsaWFzIEZGX05PVlVTOjpyb3V0ZV9zZWNvbmRhcnlfcGdfbmV0cyBmZl9wcm9jczo6cm91dGVfc2Vjb25kYXJ5X3BnX25ldHN9IgotICAgICAgICAgICAgICAgcHV0cyAkb2YgImNhdGNoIHthbGlhcyBGRl9OT1ZVUzo6Z2V0X3Bvd2VyX2RvbWFpbnMgZmZfcHJvY3M6OmdldF9wb3dlcl9kb21haW5zfSIKLSAgICAgICAgICAgICAgIHB1dHMgJG9mICJjYXRjaCB7YWxpYXMgRkZfTk9WVVM6OmJ1ZmZlcl9hbHdheXNfb25fbmV0cyBmZl9wcm9jczo6YnVmZmVyX2Fsd2F5c19vbl9uZXRzfSIKLSAgICAgICAgICAgICAgIHB1dHMgJG9mICJjYXRjaCB7YWxpYXMgRkZfTk9WVVM6Omluc2VydF93ZWxsdGFwc19lbmRjYXBzIGZmX3Byb2NzOjppbnNlcnRfd2VsbHRhcHNfZW5kY2Fwc30iCi0gICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBwdXRzICRvZiAiY2F0Y2gge2FsaWFzIEZGX0VESTo6bW9kaWZ5X3Bvd2VyX2RvbWFpbnMgZmZfcHJvY3M6Om1vZGlmeV9wb3dlcl9kb21haW5zfSIKLSAgICAgICAgICAgICAgIHB1dHMgJG9mICJjYXRjaCB7YWxpYXMgRkZfRURJOjphZGRfcG93ZXJfc3dpdGNoZXMgZmZfcHJvY3M6OmFkZF9wb3dlcl9zd2l0Y2hlc30iCi0gICAgICAgICAgICAgICBwdXRzICRvZiAiY2F0Y2gge2FsaWFzIEZGX0VESTo6cm91dGVfc2Vjb25kYXJ5X3BnX25ldHMgZmZfcHJvY3M6OnJvdXRlX3NlY29uZGFyeV9wZ19uZXRzfSIKLSAgICAgICAgICAgICAgIHB1dHMgJG9mICJjYXRjaCB7YWxpYXMgRkZfRURJOjpnZXRfcG93ZXJfZG9tYWlucyBmZl9wcm9jczo6Z2V0X3Bvd2VyX2RvbWFpbnN9IgotICAgICAgICAgICAgICAgcHV0cyAkb2YgImNhdGNoIHthbGlhcyBGRl9FREk6OmJ1ZmZlcl9hbHdheXNfb25fbmV0cyBmZl9wcm9jczo6YnVmZmVyX2Fsd2F5c19vbl9uZXRzfSIKLSAgICAgICAgICAgICAgIHB1dHMgJG9mICJjYXRjaCB7YWxpYXMgRkZfRURJOjppbnNlcnRfd2VsbHRhcHNfZW5kY2FwcyBmZl9wcm9jczo6aW5zZXJ0X3dlbGx0YXBzX2VuZGNhcHN9IgotICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0KLSAgICAgICAgIGNsb3NlICRvZgotICAgICAgICAgc2V0IHZhcnMocHJvY19maWxlKSAxCi0gICAgICB9Ci0jICAgICAgaWYge1tmaWxlIHRhaWwgW2ZpbGUgZGlybmFtZSBbcHdkXV1dID09ICIkdmFycyhwYXJ0aXRpb25fZGlyKSJ9IHsKLSMgICAgICAgICBzZXQgb3AgW29wZW4gJHZhcnMoc2NyaXB0X2RpcikvdmFycy50Y2wgYV0KLSMgICAgICAgICBpZiB7JHZhcnModXNlcl9tb2RlKSA9PSAiaGllciJ9IHsKLSMgICAgICAgICAgICBpZiB7W2ZpbGUgdGFpbCBbZmlsZSBkaXJuYW1lIFtleGVjIHB3ZF1dXSA9PSAkdmFycyhwYXJ0aXRpb25fZGlyKX0gewotIyAgICAgICAgICAgICAgIHB1dHMgJG9wICJzb3VyY2UgJHZhcnMobm9ybV9zY3JpcHRfcGF0aCkvRVRDL2FwcGxldC50Y2wiCi0jICAgICAgICAgICAgICAgI3B1dHMgJG9wICJzb3VyY2UgLi4vLi4vJHZhcnMoc2NyaXB0X3BhdGgpL0VUQy9jb21wYXRpYmlsaXR5LnRjbCIKLSMgICAgICAgICAgICAgICBwdXRzICRvcCAic2V0X2F0dHJpYnV0ZSBhcHBsZXRfc2VhcmNoX3BhdGggJHZhcnMobm9ybV9zY3JpcHRfcGF0aCkvRVRDL2FwcGxldHMgLyIKLSMgICAgICAgICAgICB9IGVsc2UgewotIyAgICAgICAgICAgICAgIHB1dHMgJG9wICJzb3VyY2UgJHZhcnMoc2NyaXB0X3BhdGgpL0VUQy9hcHBsZXQudGNsIgotIyAgICAgICAgICAgICAgICNwdXRzICRvcCAic291cmNlIC4uLy4uLyR2YXJzKHNjcmlwdF9wYXRoKS9FVEMvY29tcGF0aWJpbGl0eS50Y2wiCi0jICAgICAgICAgICAgICAgcHV0cyAkb3AgInNldF9hdHRyaWJ1dGUgYXBwbGV0X3NlYXJjaF9wYXRoICR2YXJzKHNjcmlwdF9wYXRoKS9FVEMvYXBwbGV0cyAvIgotIyAgICAgICAgICAgIH0KLSMgICAgICAgICB9Ci0jICAgICAgICAgcHV0cyAkb3AgImFwcGxldCBsb2FkIG1lYXN1cmUiCi0jICAgICAgICAgcHV0cyAkb3AgImFwcGxldCBsb2FkIHRpbWVfaW5mbyIKLSMgICAgICAgICBjbG9zZSAkb3AKLSMgICAgICAgICByZXR1cm4KLSMgICAgICB9Ci0gICAgICBpZiB7W2ZpbGUgbm9ybWFsaXplICR2YXJzKHJ1bmRpcildIG5lIFtmaWxlIG5vcm1hbGl6ZSAuXX0gewotICAgICAgICBzZXQgcmVsYXRpdml6ZVZhciAxCi0gICAgICB9IGVsc2UgewotICAgICAgICBzZXQgcmVsYXRpdml6ZVZhciAwCi0gICAgICB9Ci0jICAgICAgaWYgeyRyZWxhdGl2aXplVmFyfSB7Ci0jICAgICAgICBwdXRzICI8RkY+IEZpbmFsaXppbmcgRm91bmRhdGlvbiBGbG93IFZhcmlhYmxlcyBmb3IgZmluYWwgcnVuZGlyOiBbcmVsUGF0aFRvIFtmaWxlIG5vcm1hbGl6ZSAkdmFycyhydW5kaXIpXSBbZmlsZSBub3JtYWxpemUgLl1dIgotIyAgICAgIH0KLQotICAgICAgIyBCQ0w6IHN1YnN0aXR1dGUgcGx1Z2RpcnMgYW5kIGNvZGVnZW4gZGlyIHdpdGggdmFyaWFibGUgcmVmZXJlbmNpbmcgKGkuZS4sIHJlcGxhY2UgYWN0dWFsIGRpciB3aXRoIFtzdWJzdCAkdmFycyg8ZGlyPildKSBiZWZvcmUgd3JpdGluZyB2YXJzLnRjbAotICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycyhmZl9leGVfZGlyKV19IHsKLSAgICAgICAgIHNldCB2YXJzKGZmX2V4ZV9kaXIpIFtleGVjIHB3ZF0KLSAgICAgIH0KLQotICAgICAgIyBCQ0w6IFRoZSBmb2xsb3dpbmcgYXJlIHNldCB1c2luZyB2YXJpYWJsZXMgaW4gdGhlIGdlbmVyYXRlZCAuZmYudGNsLCBhbmQgYXJlIHRoZXJlZm9yZSBwdWxsZWQgb3V0IG9mIHRoZSBnZW5lcmF0ZWQgdmFycy50Y2wKLSAgICAgIHNldCBza2lwVmFyTGlzdCB7ZmZfZXhlX2RpciBydW5kaXIgcGx1Z19kaXIgcmNfcGx1Z19kaXIgbGVjX3BsdWdfZGlyIHNjcmlwdF9kaXIgZmxvd19zdGVwcyBmbG93X3N0ZXBzLGZsYXQgZmxvd19zdGVwcyxoaWVyfQotCi0gICAgICAjIEJDTDogQ2hhbmdlZCB0byB0Y2wgZmlsZSBta2RpcgotICAgICAgZmlsZSBta2RpciAkdmFycyhzY3JpcHRfZGlyKQotI0dHCi0gICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoc3R5bHVzX2NvbnZlcnQpXSAmJiAkdmFycyhzdHlsdXNfY29udmVydCl9IHsKLSAgICAgICAgc2V0IGFuY2hvcihwbGFjZSkgImJlZm9yZSBydW5fcGxhY2Vfb3B0IgotICAgICAgICBzZXQgYW5jaG9yKHByZWN0cykgImJlZm9yZSBydW5fcGxhY2Vfb3B0IgotICAgICAgICBzZXQgYW5jaG9yKGN0cykgImJlZm9yZSBhZGRfY2xvY2tfc3BlYyIKLSAgICAgICAgc2V0IGFuY2hvcihwb3N0Y3RzKSAiYmVmb3JlIGFkZF9jbG9ja19zcGVjIgotICAgICAgICBzZXQgYW5jaG9yKHBvc3RjdHNfaG9sZCkgImJlZm9yZSBhZGRfY2xvY2tfc3BlYyIKLSAgICAgICAgc2V0IGFuY2hvcihyb3V0ZSkgImJlZm9yZSBydW5fcm91dGUiCi0gICAgICAgIHNldCBhbmNob3IocG9zdHJvdXRlKSAiYmVmb3JlIHJ1bl9vcHRfcG9zdHJvdXRlIgotICAgICAgICBzZXQgYW5jaG9yKHBvc3Ryb3V0ZV9ob2xkKSAiYmVmb3JlIHJ1bl9vcHRfcG9zdHJvdXRlIgotCi0gICAgICAgIHNldCBvcCBbb3BlbiAkdmFycyhzY3JpcHRfZGlyKS9mbG93X3N0ZXBzLnRjbCB3XQotICAgICAgICBmb3JlYWNoIHN0ZXAgW0ZGOjphZGp1c3Rfc3RlcHNdIHsKLSAgICAgICAgICBpZiB7IVtpbmZvIGV4aXN0cyBhbmNob3IoJHN0ZXApXX0geyAKLSAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkc3RlcCxjb21tYW5kcyldfSB7Ci0gICAgICAgICAgICAgIHVuc2V0IHZhcnMoJHN0ZXAsY29tbWFuZHMpCi0gICAgICAgICAgICAgIGNvbnRpbnVlIAotICAgICAgICAgICAgfQotICAgICAgICAgIH0KLSAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJHN0ZXAsY29tbWFuZHMpXX0gewotICAgICAgICAgICAgcHV0cyAkb3AgImNyZWF0ZV9mbG93X3N0ZXAgLW5hbWUgcHJlXyRzdGVwIC1vd25lciBjYWRlbmNlIFx7IgotICAgICAgICAgICAgcHV0cyAkb3AgJHZhcnMoJHN0ZXAsY29tbWFuZHMpCi0gICAgICAgICAgICBwdXRzICRvcCAiXH0iCi0gICAgICAgICAgICB1bnNldCB2YXJzKCRzdGVwLGNvbW1hbmRzKQotICAgICAgICAgICAgcHV0cyAkb2YgImVkaXRfZmxvdyAtYXBwZW5kIGZsb3dfc3RlcDpwcmVfJHN0ZXAgLVtsaW5kZXggJGFuY2hvcigkc3RlcCkgMF0gZmxvd19zdGVwOltsaW5kZXggJGFuY2hvcigkc3RlcCkgMV0iCi0gICAgICAgICAgfQotICAgICAgICB9Ci0KLSMgICAgICAgIHNldCBvcCBbb3BlbiBzY3JpcHRzL2Zsb3dfY29uZmlnLnRjbCBhXQotIyAgICAgICAgcHV0cyAkb3AgInNvdXJjZSAkdmFycyhzY3JpcHRfZGlyKS9mbG93X3N0ZXBzLnRjbCIKLSAgICAgICAgY2xvc2UgJG9wCi0KLSAgICAgICAgIEZGOjpjcmVhdGVfY29kZWdlbl9maWxlCi0gICAgICAgICBzZXQgb3AgW29wZW4gY29kZWdlbl9jcmVhdGUudHh0IGFdCi0gICAgICAgICBwdXRzICRvcCAiY29kZWdlbjo6dGVtcGxhdGUgLi9zY3JpcHRzL2Zsb3dfY29uZmlnLnRlbXBsYXRlIFx7IgotICAgICAgICAgcHV0cyAkb3AgIiAgcGxhY2Vob2xkZXIgXHs8PCBQTEFDRUhPTERFUjogUEFSQVNJVElDIExPQUQgT1BUSU9OUyA+Plx9IFx7IC1hbGxfcmNfY29ybmVyIC1yY2RiIHJjZGIvJHZhcnMoZGVzaWduKS5yY2RiLmQgXH0iCi0gICAgICAgICBwdXRzICRvcCAiICBhcHBlbmQgXHsiCi0gICAgICAgICBwdXRzICRvcCAiY3JlYXRlX2Zsb3dfc3RlcCAtbmFtZSB3cml0ZV9wYXJhc2l0aWNzIC1vd25lciBjYWRlbmNlICBceyIKLSAgICAgICAgIHB1dHMgJG9wICIgICAgZmlsZSBta2RpciByY2RiIgotICAgICAgICAgcHV0cyAkb3AgIiAgICB3cml0ZV9yYyByY2RiLyR2YXJzKGRlc2lnbikucmNkYi5kIgotICAgICAgICAgcHV0cyAkb3AgIlx9IgotICAgICAgICAgcHV0cyAkb3AgImVkaXRfZmxvdyAtYWZ0ZXIgZmxvd19zdGVwOnJ1bl9vcHRfcG9zdHJvdXRlIC1hcHBlbmQgZmxvd19zdGVwOndyaXRlX3BhcmFzaXRpY3MiCi0gICAgICAgICBmb3JlYWNoIGZpbGUgIiR2YXJzKHNjcmlwdF9kaXIpL2Zsb3dfc3RlcHMudGNsICR2YXJzKHNjcmlwdF9kaXIpL3BsdWdfc3RlcHMudGNsIiB7Ci0gICAgICAgICAgIGlmIHtbZmlsZSBleGlzdHMgJGZpbGVdfSB7Ci0gICAgICAgICAgICAgc2V0IGlwIFtvcGVuICRmaWxlIHJdCi0gICAgICAgICAgICAgd2hpbGUge1tnZXRzICRpcCBsaW5lXT49MH0gewotICAgICAgICAgICAgICAgIHB1dHMgJG9wICIkbGluZSIKLSAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgY2xvc2UgJGlwCi0gICAgICAgICAgIH0KLSAgICAgICAgIH0KLQotICAgICAgICAgcHV0cyAkb3AgIiAgXH0iCi0gICAgICAgICBwdXRzICRvcCAiXH0iCi0gICAgICAgICBjbG9zZSAkb3AKLSAgICAgIH0KLSAgICAgIGZvcmVhY2ggdmFyIFthcnJheSBuYW1lcyB2YXJzXSB7Ci0gICAgICAgIGlmIHtbcmVnZXhwICIsY29tbWFuZHMkIiAkdmFyXX0gewotICAgICAgICAgIHVuc2V0IHZhcnMoJHZhcikKLSAgICAgICAgfQotICAgICAgfQotIyAgICAgIGZvcmVhY2ggc3RlcCAkdmFycyhzdGVwcykgewotIyAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCRzdGVwLGNvbW1hbmRzKV19IHsKLSMgICAgICAgICAgdW5zZXQgdmFycygkc3RlcCxjb21tYW5kcykKLSMgICAgICAgIH0KLSMgICAgICB9Ci0gICAgICBzZXQgb3AgW29wZW4gJHZhcnMoc2NyaXB0X2RpcikvdmFycy50Y2wgd10KLQotICAgICAgcHV0cyAkb3AgIiMgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyAjIgotICAgICAgcHV0cyAkb3AgIiMgRm91bmRhdGlvbiBGbG93IENvZGVnZW4gVmFycyBSZWNvcmQiCi0gICAgICBwdXRzICRvcCAiIyBFeGVjdXRlZCBvbiBbY2xvY2sgZm9ybWF0IFtjbG9jayBzZWNvbmRzXSAtZm9ybWF0ICIlSTolTTolUyAlcCglYiVkKSJdIGJ5IHVzZXI6IFtleGVjIHdob2FtaV0iCi0gICAgICBwdXRzICRvcCAiIyBDb3B5cmlnaHQgMjAwOC0yMDEyLCBDYWRlbmNlIERlc2lnbiBTeXN0ZW1zLCBJbmMuIgotICAgICAgcHV0cyAkb3AgIiMgQWxsIFJpZ2h0cyBSZXNlcnZlZCIKLSAgICAgIHB1dHMgJG9wICIjICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMgIyIKLSAgICAgIHB1dHMgJG9wICIiCi0gICAgICBwdXRzICRvcCAiIyBUaGlzIGZpbGUgY29udGFpbnMgYWxsIGRlZmF1bHQgKHNlZWRlZCkgdmFyaWFibGVzIGFuZCB1c2VyLWRlZmluZWQgdmFyaWFibGVzIHRoYXQgd2VyZSByZXNvbHZlZCBkdXJpbmcgY29kZSBnZW5lcmF0aW9uLiIKLQotICAgICAgcHV0cyAkb3AgImlmIHshXFtpbmZvIGV4aXN0cyB2YXJzXF19IHsiCi0gICAgICBwdXRzICRvcCAiICAgZ2xvYmFsIHZhcnMiCi0gICAgICBwdXRzICRvcCAifSIKLSAgICAgIHB1dHMgJG9wICJnbG9iYWwgZW52IgotIyAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyh1c2VyX2FycmF5cyldfSB7Ci0jICAgICAgICAgZm9yZWFjaCBhcnJheSAkdmFycyh1c2VyX2FycmF5cykgewotIyAgICAgICAgICAgIHB1dHMgJG9wICJnbG9iYWwgJGFycmF5IgotIyAgICAgICAgIH0KLSMgICAgICB9Ci0KLSAgICAgICMgUHJpbnQgdmFyaWFibGVzIHdoaWNoIG1heSBiZSByZWZlcmVuY2VkIGJ5IG90aGVyIHZhcmlhYmxlcwotICAgICAgIyBOb3RlOiBHZW5lcmFsIG1ldGhvZG9sb2d5IGlzIHRvIG5vdCB1c2UgbW9yZSB0aGFuIG9uZSB2YXJpYWJsZSByZWZlcmVuY2UgKGkuZS4sIGRvbid0IGFsbG93IG11bHRpcGxlIHZhcmlhYmxlIGRlcmVmZXJlbmNpbmcpCi0gICAgICBwdXRzICRvcCAic2V0IGVudihWUEFUSCkgJGVudihWUEFUSCkiCi0gICAgICBwdXRzICRvcCAic2V0IHZhcnMoZmZfZXhlX2RpcikgXCIkdmFycyhmZl9leGVfZGlyKVwiIgotICAgICAgcHV0cyAkb3AgInNldCB2YXJzKHJ1bmRpcikgXCIkdmFycyhydW5kaXIpXCIiCi0gICAgICBwdXRzICRvcCAic2V0IHZhcnMoc2NyaXB0X2RpcikgXCIkdmFycyhzY3JpcHRfZGlyKVwiIgotICAgICAgcHV0cyAkb3AgIiIKLQotIyBHREcgLi4uCi0jICAgICAgaWYgeyRyZWxhdGl2aXplVmFyfSB7Ci0jICAgICAgICBzZXQgcmVsYXRpdml6ZU1lc2dMb2cgIiIKLSMgICAgICAgICMgRmlyc3QgcmVsYXRpdml6ZSBmZl9leGVfZGlyLiBJZ25vcmUgcGx1ZyB2YXJpYWJsZXMgZm9yIG5vdyAobWF5YmUgdGhpcyBjYW4gYmUgcmVsYXhlZD8pCi0jICAgICAgICAjIEFsbCBmaWxlcyBpbiB0aGlzIGZpcnN0IHJlbGF0aXZpemF0aW9uIHRhc2sgbXVzdCBleGlzdC4gU2tpcCBhbnl0aGluZyB0aGF0IGlzIGxvY2F0ZWQgaW4gdmFycyhydW5kaXIpLgotIyAgICAgICAgc2V0IHJlbGF0aXZpemVNZXNnTG9nICIkcmVsYXRpdml6ZU1lc2dMb2cgW0ZGOjpyZW1vdmVfb3V0ZXJfYnJhY2VzIFwKLSMgICAgICAgICAgIFtGRjo6cmVsYXRpdml6ZUZpbGVPckRpciAtdmFyZGlyIGZmX2V4ZV9kaXIgLW11c3RFeGlzdCAtc2tpcFZhciBzY3JpcHRfZGlyIC1za2lwVmFyIGZmX2V4ZV9kaXIgXAotIyAgICAgICAgICAgICAgLXNraXBWYXIgcmNfcGx1Z19kaXIgLXNraXBWYXIgbGVjX3BsdWdfZGlyIC1za2lwVmFyIHBsdWdfZGlyIC1za2lwVmFyIHJ1bmRpciAtc2tpcERpciBbZmlsZSBub3JtYWxpemUgJHZhcnMocnVuZGlyKV1dXSIKLSMgICAgICAgICMgUmVsYXRpdml6ZSBhbGwgZmlsZXMgaW4gcnVuZGlyLiBTa2lwIHZhcmlhYmxlIHJlZmVyZW5jaW5nLCBtZWFuaW5nIGRvIG5vdCBpbmNsdWRlICR2YXJzKHJ1bmRpcikgaW4gdGhlIGZpbmFsIHZhcmlhYmxlIHZhbHVlCi0jICAgICAgICBzZXQgcmVsYXRpdml6ZU1lc2dMb2cgIiRyZWxhdGl2aXplTWVzZ0xvZyBbRkY6OnJlbW92ZV9vdXRlcl9icmFjZXMgW0ZGOjpyZWxhdGl2aXplRmlsZU9yRGlyIC12YXJkaXIgcnVuZGlyIC1za2lwVmFyaWFibGVVc2FnZUluUmVmZXJlbmNlIC1za2lwVmFyIHNjcmlwdF9kaXJdXSIKLSMgICAgICAgICMgU3dhcCBvdXQgdGhlIGludmlkaXVhbCBwbHVnIGRpciB2YXJpYWJsZXMKLSMgICAgICAgIGZvcmVhY2ggZGlyICJyY19wbHVnX2RpciBsZWNfcGx1Z19kaXIgcGx1Z19kaXIiIHsKLSMgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCRkaXIpXX0gIHsKLSMgICAgICAgICAgICAgIyBSZWxhdGl2aXplIHRoZSBwbHVnaW4gKHN5bl9sb2FkX3J0bCBnb2VzIGZyb20gLi9wbHVnL0dFTlVTL3N5bl9sb2FkX3J0bC50Y2wgdG8gJHZhcnMocmNfcGx1Z19kaXIpL3N5bl9sb2FkX3J0bC50Y2wpCi0jICAgICAgICAgICAgIHNldCByZWxhdGl2aXplTWVzZ0xvZyAiJHJlbGF0aXZpemVNZXNnTG9nIFtGRjo6cmVtb3ZlX291dGVyX2JyYWNlcyBcCi0jICAgICAgICAgICAgICAgIFtGRjo6cmVsYXRpdml6ZUZpbGVPckRpciAtdmFyZGlyICRkaXIgLW11c3RFeGlzdCBcCi0jICAgICAgICAgICAgICAgIC1leGFjdFN1YkRpck1hdGNoIFtmaWxlIG5vcm1hbGl6ZSAkdmFycygkZGlyKV1dXSIKLSMgICAgICAgICAgICAgIyBub3JtYWxpemUgdGhlIHBsdWcgZGlycwotIyAgICAgICAgICAgICBzZXQgdmFycygkZGlyKSBbZmlsZSBub3JtYWxpemUgW3N1YnN0ICR2YXJzKCRkaXIpXV0KLSMgICAgICAgICAgfQotIyAgICAgICAgfQotIyAgICAgIH0KLSAgICAgICMgUHJpbnQgcGx1Z2luIHZhcmlhYmxlcwotICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKHBsdWdfZGlyKV19ICAgICB7cHV0cyAkb3AgInNldCB2YXJzKHBsdWdfZGlyKSBcIiR2YXJzKHBsdWdfZGlyKVwiIn0KLSAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhyY19wbHVnX2RpcildfSAge3B1dHMgJG9wICJzZXQgdmFycyhyY19wbHVnX2RpcikgXCIkdmFycyhyY19wbHVnX2RpcilcIiJ9Ci0gICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMobGVjX3BsdWdfZGlyKV19IHtwdXRzICRvcCAic2V0IHZhcnMobGVjX3BsdWdfZGlyKSBcIiR2YXJzKGxlY19wbHVnX2RpcilcIiJ9Ci0gICAgICBwdXRzICRvcCAiXG4iCi0KLSAgICAgICMgQWN0dWFsbHkgcHJpbnQgb3V0IGFsbCB0aGUgb3RoZXIgdmFyaWFibGVzCi0gICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoaW5pdF9jb21tYW5kcyldfSB7dW5zZXQgdmFycyhpbml0X2NvbW1hbmRzKX0KLSAgICAgIGZvcmVhY2ggdmFyIFtsc29ydCBbYXJyYXkgbmFtZXMgdmFyc11dIHsKLSAgICAgICAgICMgQkNMOiBPbmx5IHdyaXRlIG91dCB2YXJpYWJsZSB2YWx1ZXMgaW4gY3VybGllcyBpZiBub3QgdXNpbmcgW3N1YnN0IC4uLl0KLSAgICAgICAgIGlmIHtbbHNlYXJjaCAkc2tpcFZhckxpc3QgJHZhcl0gPT0gLTF9IHsKLSAgICAgICAgICAgaWYge1tyZWdleHAge1wkfSAkdmFycygkdmFyKV19IHsKLSAgICAgICAgICAgICBwdXRzICRvcCAic2V0IHZhcnMoJHZhcikgXCIkdmFycygkdmFyKVwiIgotICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgIHB1dHMgJG9wICJzZXQgdmFycygkdmFyKSBceyR2YXJzKCR2YXIpXH0iCi0gICAgICAgICAgIH0KLSAgICAgICAgIH0KLSAgICAgIH0KLQotICAgICAgIyBQcmludCBhbGlhc2VzCi0gICAgICBwdXRzICRvcCAic2V0IHZhcnMocmVzdG9yZV9kZXNpZ24pIHt0cnVlfSIKLQotICAgICAgIyBMb2FkIGFwcGxldHMKLSMgICAgICBwdXRzICRvcCAic291cmNlICR2YXJzKHNjcmlwdF9wYXRoKS9FVEMvYXBwbGV0LnRjbCIKLSMgICAgICBwdXRzICRvcCAic291cmNlIC4uLy4uLyR2YXJzKHNjcmlwdF9wYXRoKS9FVEMvY29tcGF0aWJpbGl0eS50Y2wiCi0jICAgICAgcHV0cyAkb3AgInNldF9hdHRyaWJ1dGUgYXBwbGV0X3NlYXJjaF9wYXRoICR2YXJzKHNjcmlwdF9wYXRoKS9FVEMvYXBwbGV0cyAvIgotIyAgICAgIHB1dHMgJG9wICJhcHBsZXQgbG9hZCBnZW5lcmF0ZV9yZXBvcnQiCi0jICAgICAgcHV0cyAkb3AgImFwcGxldCBsb2FkIG1lYXN1cmUiCi0jICAgICAgcHV0cyAkb3AgImFwcGxldCBsb2FkIHRpbWVfaW5mbyIKLQotICAgICAgY2xvc2UgJG9wCi0KLSMgICAgICBpZiB7JHJlbGF0aXZpemVWYXJ9IHsKLSMgICAgICAgICMgV3JpdGUgb3V0IG1lc3NhZ2luZyByZWxhdGVkIHRvIHJlbGF0aXZpemVGaWxlT3JEaXIgb3V0cHV0Ci0jICAgICAgICBzZXQgb3AgW29wZW4gJHZhcnMoc2NyaXB0X2RpcikvcmVsYXRpdml6ZV92YXJzLnJwdCB3XQotIyAgICAgICAgcHV0cyAkb3AgIiMgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyAjIgotIyAgICAgICAgcHV0cyAkb3AgIiMgRm91bmRhdGlvbiBGbG93IFZhcmlhYmxlIFJlbGF0aXZpemF0aW9uIFJlcG9ydCIKLSMgICAgICAgIHB1dHMgJG9wICIjIEV4ZWN1dGVkIG9uIFtjbG9jayBmb3JtYXQgW2Nsb2NrIHNlY29uZHNdIC1mb3JtYXQgIiVJOiVNOiVTICVwKCViJWQpIl0gYnkgdXNlcjogW2V4ZWMgd2hvYW1pXSIKLSMgICAgICAgIHB1dHMgJG9wICIjIENvcHlyaWdodCAyMDA4LTIwMTIsIENhZGVuY2UgRGVzaWduIFN5c3RlbXMsIEluYy4iCi0jICAgICAgICBwdXRzICRvcCAiIyBBbGwgUmlnaHRzIFJlc2VydmVkIgotIyAgICAgICAgcHV0cyAkb3AgIiMgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyAjIgotIyAgICAgICAgZm9yZWFjaCBsaW5lICRyZWxhdGl2aXplTWVzZ0xvZyB7Ci0jICAgICAgICAgIHB1dHMgJG9wICRsaW5lCi0jICAgICAgICB9Ci0jICAgICAgICBjbG9zZSAkb3AKLSMgICAgICB9Ci0KLSAgIH0KLQotICAgcHJvYyBjbGVhbnVwX2RvdGZpbGVzIHt9IHsKLQotICAgICAgZ2xvYmFsIHZhcnMKLQotICAgICAgaWYgeyR2YXJzKHVzZXJfbW9kZSkgIT0gImhpZXIifSB7Ci0gICAgICAgICByZXR1cm4KLSAgICAgIH0KLQotICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKHJ1bmRpcildfSB7IAotICAgICAgICAgY2QgJHZhcnMocnVuZGlyKQotICAgICAgfQotCi0gICAgICBmb3JlYWNoIGZpbGUgW2dsb2IgJHZhcnMoc2NyaXB0X2RpcikvSU5OT1ZVUy8uKl0gewotICAgICAgICAgaWYge1tmaWxlIGlzZmlsZSAkZmlsZV0gJiYgKCFbcmVnZXhwICIubmZzIiAkZmlsZV0pfSB7Ci0gICAgICAgICAgICBmaWxlIGRlbGV0ZSAkZmlsZQotICAgICAgICAgICAgaWYgeyR2YXJzKGRlYnVnKX0gewotICAgICAgICAgICAgICAgcHV0cyAiPEZGPiBEZWxldGluZyAkZmlsZSAuLi4iCi0gICAgICAgICAgICB9ICAgCi0gICAgICAgICB9Ci0gICAgICB9Ci0gICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMocGFydGl0aW9uX2RpcildICYmIFtpbmZvIGV4aXN0cyB2YXJzKHBhcnRpdGlvbl9saXN0KV19IHsgCi0gICAgICAgICBpZiB7W2ZpbGUgaXNkaXJlY3RvcnkgJHZhcnMocGFydGl0aW9uX2RpcildfSB7Ci0gICAgICAgICAgICBmb3JlYWNoIHBhcnQgW2NvbmNhdCAkdmFycyhkZXNpZ24pICR2YXJzKHBhcnRpdGlvbl9saXN0KV0gewotICAgICAgICAgICAgICAgZm9yZWFjaCBmaWxlIFtnbG9iICR2YXJzKHBhcnRpdGlvbl9kaXIpLyRwYXJ0LyR2YXJzKHNjcmlwdF9kaXIpL0lOTk9WVVMvLipdIHsKLSAgICAgICAgICAgICAgICAgIGlmIHtbZmlsZSBpc2ZpbGUgJGZpbGVdICYmICghW3JlZ2V4cCAiLm5mcyIgJGZpbGVdKX0gewotICAgICAgICAgICAgICAgICAgICAgZmlsZSBkZWxldGUgJGZpbGUKLSAgICAgICAgICAgICAgICAgICAgIGlmIHskdmFycyhkZWJ1Zyl9IHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHB1dHMgIjxGRj4gRGVsZXRpbmcgJGZpbGUgLi4uIgotICAgICAgICAgICAgICAgICAgICAgfSAgIAotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgaWYgeygkdmFycyhoaWVyX2Zsb3dfdHlwZSkgPT0gIjJwYXNzIil9IHsKLSAgICAgICAgICAgICAgICAgIGlmIHtbZmlsZSBpc2RpcmVjdG9yeSAkdmFycyhwYXJ0aXRpb25fZGlyX3Bhc3MyKV19IHsKLSAgICAgICAgICAgICAgICAgICAgIGNhdGNoIHtzZXQgZG90ZmlsZXMgW2dsb2IgJHZhcnMocGFydGl0aW9uX2Rpcl9wYXNzMikvJHBhcnQvJHZhcnMoc2NyaXB0X2RpcikvSU5OT1ZVUy8uKl19Ci0gICAgICAgICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIGRvdGZpbGVzXX0gewotICAgICAgICAgICAgICAgICAgICAgZm9yZWFjaCBmaWxlIFtnbG9iICR2YXJzKHBhcnRpdGlvbl9kaXJfcGFzczIpLyRwYXJ0LyR2YXJzKHNjcmlwdF9kaXIpL0lOTk9WVVMvLipdIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIHtbZmlsZSBpc2ZpbGUgJGZpbGVdICYmICghW3JlZ2V4cCAiLm5mcyIgJGZpbGVdKX0gewotICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsZSAgZGVsZXRlICRmaWxlCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBpZiB7JHZhcnMoZGVidWcpfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdXRzICI8RkY+IERlbGV0aW5nICRmaWxlIC4uLiIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gICAKLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0KLSAgICAgIH0KLSAgIH0KLQotICAgcHJvYyBnZW5fZmxvdyB7YXJnc30gewotCi0gICAgICBnbG9iYWwgdmFycwotCi0gICAgICBpZiB7IVtpbmZvIGV4aXN0cyB2YXJzKGV4ZWN1dGVfc3RyaW5nKV19IHsKLSAgICAgICAgIHNldCB2YXJzKGV4ZWN1dGVfc3RyaW5nKSAiRkY6Omdlbl9mbG93ICRhcmdzIgotICAgICAgfQotCi0gICAgICAjIEFsbG93IHJlLWVudHJhbmNlCi0KLSAgICAgICAgIHNldCB2YXJfbGlzdCBbbGlzdCBzb3VyY2VkIGJzdGVwcyB3YXJuaW5ncyBlcnJvcnMgaW5mb3Mgd2FybmluZ19jb3VudCBlcnJvcl9jb3VudCBpbmZvX2NvdW50IFwKLSAgICAgICAgICAgICAgICAgICAgICAgIHBsdWdpbnNfZGVmaW5lZCBwbHVnaW5zX2ZvdW5kIG1pc3NpbmdfcGx1Z2lucyB0YWdnZWQgbWlzc2luZ190YWdzXQotCi0gICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoYXJnX2xpc3QpXX0geyAKLSAgICAgICAgIHNldCByZXNldF9saXN0IFtjb25jYXQgJHZhcnMoYXJnX2xpc3QpICR2YXJfbGlzdF0KLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgICBzZXQgcmVzZXRfbGlzdCAkdmFyX2xpc3QKLSAgICAgIH0KLQotICAgICAgZm9yZWFjaCB2YXIgJHJlc2V0X2xpc3QgewotICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCR2YXIpXX0gewotICAgICAgICAgICAgdW5zZXQgdmFycygkdmFyKQotICAgICAgICAgfQotICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyBkYXJncygkdmFyKV19IHsKLSAgICAgICAgICAgIHVuc2V0IHZhcnMoJHZhcikKLSAgICAgICAgIH0KLSAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgZGFyZ3MoJHZhcildfSB7Ci0gICAgICAgICAgICB1bnNldCB2YXJzKCR2YXIpCi0gICAgICAgICB9Ci0gICAgICB9Ci0KLSAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhmbGF0KV19IHsKLSAgICAgICAgIHNldCBzYXZlICR2YXJzKGZsYXQpCi0gICAgICB9Ci0KLSAgICAgIHB1dHMgIj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0iCi0gICAgICBwdXRzICI8RkY+ICAgICAgRm91bmRhdGlvbiBGbG93IENvZGUgR2VuZXJhdG9yIgotICAgICAgcHV0cyAiPEZGPiAgICAgICAgVmVyc2lvbiA6IDE3LjEwLXAwMDNfMSIKLSAgICAgIHB1dHMgIj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0iCi0KLSAgICAgICMgQ2hlY2sgVENMIHZlcnNpb24KLQotICAgICAgRkY6OmNoZWNrX3RjbF92ZXJzaW9uCi0KLSAgICAgICMgQ3JlYXRlIGZsb3cgc2NyaXB0cwotCi0gICAgICBGRjo6Y3JlYXRlX2Zsb3cgJGFyZ3MKLQotICAgICAgIyBBZGp1c3QgdmFyaWFibGVzIHNvIHRoZSBydW4gZGlyIGNhbiBiZSByZWxvY2F0ZWQKLQotICAgICAgRkY6OmRlbm9ybWFsaXplX3J1bmRpcgotCi0gICAgICBpZiB7W2luZm8gZXhpc3RzIHNhdmVdfSB7Ci0gICAgICAgICBzZXQgdmFycyhmbGF0KSAkc2F2ZQotICAgICAgfSBlbHNlIHsKLSAgICAgICAgIHVuc2V0IHZhcnMoZmxhdCkKLSAgICAgIH0KLQotICAgICAgRkY6OmNsZWFudXBfZG90ZmlsZXMKLQotICAgICAgaWYgeyhbaW5mbyBjb21tYW5kIEZGOjpnZXRfdG9vbF0gbmUgIiIpICYmIChbRkY6OmdldF90b29sXSBlcSAiZWRpIil9IHsKLSAgICAgICAgIHB1dHMgIjxGRj4gTG9hZGluZyAkdmFycyhzY3JpcHRfZGlyKS9wcm9jcy50Y2wgLi4uIgotICAgICAgICAgdXBsZXZlbCAjMCBzb3VyY2UgJHZhcnMoc2NyaXB0X2RpcikvcHJvY3MudGNsCi0gICAgICB9Ci0KLSAgICAgIGlmIHskdmFycyhnZW5lcmF0ZV9mbG93X3N0ZXBzKX0gewotICAgICAgICAgZmlsZSBkZWxldGUgLWZvcmNlICR2YXJzKHNjcmlwdF9kaXIpL0lOTk9WVVMKLSAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhwYXJ0aXRpb25fZGlyKV0gJiYgW2luZm8gZXhpc3RzIHZhcnMocGFydGl0aW9uX2xpc3QpXX0geyAKLSAgICAgICAgICAgIGlmIHtbZmlsZSBpc2RpcmVjdG9yeSAkdmFycyhwYXJ0aXRpb25fZGlyKV19IHsKLSAgICAgICAgICAgICAgIGZvcmVhY2ggcGFydCBbY29uY2F0ICR2YXJzKGRlc2lnbikgJHZhcnMocGFydGl0aW9uX2xpc3QpXSB7Ci0gICAgICAgICAgICAgICAgICBpZiBbZmlsZSBpc2RpcmVjdG9yeSAkdmFycyhwYXJ0aXRpb25fZGlyKS8kcGFydC8kdmFycyhzY3JpcHRfZGlyKS9JTk5PVlVTXSB7Ci0gICAgICAgICAgICAgICAgICAgICBmaWxlIGRlbGV0ZSAtZm9yY2UgJHZhcnMocGFydGl0aW9uX2RpcikvJHBhcnQvJHZhcnMoc2NyaXB0X2RpcikvSU5OT1ZVUwotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAgfQotICAgICAgfQotCi0gICB9Ci0KLSAgIHByb2Mgc2VlZF9hbGxfdmFycyB7fSB7Ci0gICAgICMgZGVmYXVsdHMKLSAgICAgc2V0IHNjcmlwdF9wYXRoICIiCi0gICAgIHNldCBzY3JpcHRfZGlyICIiCi0gICAgIHNldCBzZXR1cF9wYXRoICIiCi0gICAgIHNldCBzeW50aF9mbG93ICIiCi0gICAgIHNldCBmb3JtYXRfbGluZXMgIiIKLSAgICAgc2V0IHN0ZXAgIiIKLSAgCi0gICAgICMgYXJnIHByb2Nlc3NpbmcKLSAgICAgd2hpbGUge1tsbGVuZ3RoICRhcmdzXSA+IDB9IHsKLSAgICAgICBzZXQgb3B0aW9uIFtsaW5kZXggJGFyZ3MgMF0KLSAgICAgICBzZXQgYXJncyBbbHJlcGxhY2UgJGFyZ3MgMCAwXQotICAgICAgIHN3aXRjaCAtZXhhY3QgLS0gJG9wdGlvbiB7Ci0gICAgICAgICAgLXNjcmlwdF9wYXRoIHsKLSAgICAgICAgICAgICBzZXQgc2NyaXB0X3BhdGggW2xpbmRleCAkYXJncyAwXQotICAgICAgICAgICAgIHNldCBhcmdzIFtscmVwbGFjZSAkYXJncyAwIDBdCi0gICAgICAgICAgfQotICAgICAgICAgIC1zY3JpcHRfZGlyIHsKLSAgICAgICAgICAgICBzZXQgc2NyaXB0X2RpciBbbGluZGV4ICRhcmdzIDBdCi0gICAgICAgICAgICAgc2V0IGFyZ3MgW2xyZXBsYWNlICRhcmdzIDAgMF0KLSAgICAgICAgICB9Ci0gICAgICAgICAgLXNldHVwX3BhdGggewotICAgICAgICAgICAgc2V0IHNldHVwX3BhdGggW2xpbmRleCAkYXJncyAwXQotICAgICAgICAgICAgc2V0IGFyZ3MgW2xyZXBsYWNlICRhcmdzIDAgMF0KLSAgICAgICAgICB9Ci0gICAgICAgICAgLXN5bnRoX2Zsb3cgewotICAgICAgICAgICAgc2V0IHN5bnRoX2Zsb3cgW2xpbmRleCAkYXJncyAwXQotICAgICAgICAgICAgc2V0IGFyZ3MgW2xyZXBsYWNlICRhcmdzIDAgMF0KLSAgICAgICAgICB9Ci0gICAgICAgICAgLWZvcm1hdF9saW5lcyB7Ci0gICAgICAgICAgICBzZXQgc3ludGhfZmxvdyBbbGluZGV4ICRhcmdzIDBdCi0gICAgICAgICAgICBzZXQgYXJncyBbbHJlcGxhY2UgJGFyZ3MgMCAwXQotICAgICAgICAgIH0KLSAgICAgICAgICAtc3RlcCB7Ci0gICAgICAgICAgICBzZXQgc3RlcCBbbGluZGV4ICRhcmdzIDBdCi0gICAgICAgICAgICBzZXQgYXJncyBbbHJlcGxhY2UgJGFyZ3MgMCAwXQotICAgICAgICAgIH0KLSAgICAgICB9Ci0gICAgIH07IyBlbmQgd2hpbGUgKHByb2Nlc3NpbmcgYXJncykKLSAgIH0KLQotICBuYW1lc3BhY2UgZXhwb3J0IGxvYWRfYXBwbGV0Ci0gIHByb2MgbG9hZF9hcHBsZXQge2FyZ3N9IHsKLSAgICBzZXQgZGVmQXBwbGV0TlMgIjo6YXBwbGV0IgotICAgIHNldCBkZWZTZXZlcml0eSAiZXJyb3IiCi0gICAgc2V0IGRlZmF1bHRMb2NhbEluc3RhbGwgJDo6bnMoYXBwbGV0KTo6bG9jYWxJbnN0YWxsCi0gICAgc2V0IGRlZmF1bHRMb2NhbFNlcnZlciAkOjpucyhhcHBsZXQpOjpsb2NhbFNlcnZlcgotICAgIHNldCByZXFBcHBsZXRWZXJzaW9uICIiCi0KLSAgICBzd2l0Y2ggLS0gW3BhcnNlX29wdGlvbnMgW2NhbGxpbmdfcHJvY10ge30gJGFyZ3MgXAotICAgICAgIi12ZXJzaW9uIHNvcyByZXF1aXJlZCB2ZXJzaW9uIG9mIGFwcGxldCAoZXF1YWwgb3IgZ3JlYXRlcikiIHJlcUFwcGxldFZlcnNpb24gXAotICAgICAgIi1zZXZlcml0eSBzb3Mgc2V2ZXJpdHkgKGVycm9yfHdhcm5pbmd8aW5mbykiIHNldmVyaXR5IFwKLSAgICAgICItbmFtZXNwYWNlIHNvcyBuYW1lc3BhY2UgdG8gc2VhcmNoIGZvciBhcHBsZXQiIGFwcGxldE5TIFwKLSAgICAgICJzcnMgbmFtZSBvZiBhcHBsZXQiIGFwcGxldE5hbWVdIHsKLSAgICAgICAgICAtMiB7IHJldHVybiB9Ci0gICAgICAgICAgMCB7IHJldHVybiAtY29kZSBlcnJvciB9Ci0gICAgfQotCi0gICAgaWYgeyRhcHBsZXROUyBlcSAiIn0gewotICAgICAgICBzZXQgYXBwbGV0TlMgJGRlZkFwcGxldE5TCi0gICAgfQotCi0gICAgaWYgeyRzZXZlcml0eSBlcSAiIn0gewotICAgICAgc2V0IHNldmVyaXR5ICRkZWZTZXZlcml0eQotICAgIH0KLSAgIAotICAgICMgQ2hlY2sgdG8gc2VlIGlmIHRoZSBhcHBsZXQgaGFwcGVuZWQgdG8gYWxyZWFkeSBiZSBsb2FkZWQuIElmIHNvLCBjaGVjawotICAgICMgd2hldGhlciB0aGVyZSBpcyBhIG1pbmltdW0gdmVyc2lvbiByZXF1aXJlbWVudCBtZXQuIElmIHllcywgc2tpcCB0aGUgcmVzdCBvZiB0aGUgYXBwbGV0Ci0gICAgIyBJZiB0aGUgYXBwbGV0IGFscmVhZHkgZG9lcyBub3QgbWVldCB0aGUgbWluaW11bSB2ZXJzaW9uIHJlcXVpcmVtZW50LCB1bmxvYWQgaXQgKHVzaW5nIHBhY2thZ2UgZm9yZ2V0KQotICAgIGlmIHshW2NhdGNoIHtzZXQgcHJvdmlkZWRWZXJzaW9uIFtwYWNrYWdlIHByZXNlbnQgJHthcHBsZXROU306OiRhcHBsZXROYW1lXX0gZXJyb3JNZXNzYWdlXX0gewotICAgICAgaWYgeyRyZXFBcHBsZXRWZXJzaW9uIG5lICIifSB7Ci0gICAgICAgIGlmIHtbcGFja2FnZSB2Y29tcGFyZSAkcHJvdmlkZWRWZXJzaW9uICRyZXFBcHBsZXRWZXJzaW9uXSA9PSAtMX0gewotICAgICAgICAgIHB1dHMgImxvYWRfYXBwbGV0IElORk86IGFwcGxldCAkYXBwbGV0TmFtZSB3YXMgYWxyZWFkeSBsb2FkZWQsIGJ1dCBpdCdzIHZlcnNpb24gKCRwcm92aWRlZFZlcnNpb24pIGRpZCBub3QgbWVldCB0aGUgbWluaW11bSByZXF1aXJlZCB2ZXJzaW9uICgkcmVxQXBwbGV0VmVyc2lvbikiCi0gICAgICAgICAgcHV0cyAibG9hZF9hcHBsZXQgSU5GTzogVGhpcyB2ZXJzaW9uIG9mIHRoZSAkYXBwbGV0TmFtZSBhcHBsZXQgd2lsbCBiZSByZW1vdmVkIGFuZCB0aGUgbG9hZF9hcHBsZXQgd2lsbCBzZWFyY2ggZm9yIGEgbmV3ZXIgdmVyc2lvbiBvZiAkYXBwbGV0TmFtZS4uLiIKLSAgICAgICAgICBwYWNrYWdlIGZvcmdldCAke2FwcGxldE5TfTo6JGFwcGxldE5hbWUKLSAgICAgICAgfSBlbHNlIHsKLQkgIHB1dHMgImxvYWRfYXBwbGV0IElORk86IEZvdW5kICRhcHBsZXROYW1lIGFscmVhZHkgbG9hZGVkIGFuZCBpdCdzIHZlcnNpb24gKCRwcm92aWRlZFZlcnNpb24pIGFscmVhZHkgbWVldHMgdGhlIG1pbmltdW0gcmVxdWlyZWQgdmVyc2lvbiAoJHJlcUFwcGxldFZlcnNpb24pLiBTa2lwcGluZyBsb2FkLi4uIgotCSAgcmV0dXJuCi0gICAgICAgIH0KLSAgICAgIH0gZWxzZSB7Ci0JcHV0cyAibG9hZF9hcHBsZXQgSU5GTzogRm91bmQgJGFwcGxldE5hbWUgYWxyZWFkeSBsb2FkZWQgd2l0aCB2ZXJzaW9uICgkcHJvdmlkZWRWZXJzaW9uKS4gU2tpcHBpbmcgYXBwbGV0IGxvYWQuLi4iCi0JcmV0dXJuCi0gICAgICB9Ci0gICAgfQotCi0gICAgIyBUaGVyZSBpcyBubyBwcmV2aW91c2x5IGxvYWRlZCBhcHBsZXQuIENvbnRpbnVlIHdpdGggdGhpcyBwcm9jLi4uCi0gICAgc2V0IEZvdW5kTWluVmVyc2lvblBhdGggMAotICAgIHNldCBmaW5hbFNlYXJjaFBhdGggIiIgCi0gICAgc2V0IGZhaWxlZFBhdGhzICIiCi0gICAgIyBCZWNhdXNlIElubm92dXMgaGFzIGl0J3Mgb3duIGdldF9hdHRyaWJ1dGUgY29tbWFuZCBub3csIHdlIG5lZWQgdG8gc2V0IHRoaXMgZGVwZW5kaW5nIG9uIHdoYXQgdG9vbCB3ZSBhcmUgaW4KLSAgICBpZiB7W2dldF90b29sXSBlcSAicmMifSB7Ci0gICAgICBzZXQgc2VhcmNoUGF0aExpc3QgW2dldF9hdHRyaWJ1dGUgYXBwbGV0X3NlYXJjaF9wYXRoIC9dCi0gICAgfSBlbHNlIHsKLSAgICAgIHNldCBzZWFyY2hQYXRoTGlzdCBbJDo6bnMoY29tcGF0KTo6Z2V0X2F0dHJpYnV0ZSBhcHBsZXRfc2VhcmNoX3BhdGggL10KLSAgICB9Ci0gICAgc2V0IGFwcGxldFNlYXJjaFBhdGhDb3VudCBbbGxlbmd0aCAkc2VhcmNoUGF0aExpc3RdCi0KLSAgICBzZXQgb3JpZ2FwcGxldFNlYXJjaFBhdGhDb3VudCAkYXBwbGV0U2VhcmNoUGF0aENvdW50Ci0gICAgc2V0IG9yaWdTZWFyY2hQYXRoICIiCi0gICAgIyBGaXJzdCBwYXNzOiBkZXRlcm1pbmUgd2hpY2ggYXBwbGV0IGluc3RhbGxhdGlvbnMgbWVldCBtaW4gcmVxdWlyZWQgdmVyc2lvbiwgaWYgYW55Ci0gICAgIyBUaGlzIGZvciBsb29wIGRvZXMgbm90IGxvYWQgdGhlIGFwcGxldHMsIGl0IG9ubHkgZGV0ZXJtaW5lcyBhIGZpbmFsIHNlYXJjaCBwYXRoIHRvIHVzZQotICAgICMgSWYgbm9uZSBvZiB0aGUgc2VhcmNoIHBhdGhzIGNvbnRhaW4gdGhlIG1pbmltdW0gdmVyc2lvbiwgYW5kIHNldmVyaXR5IGNvZGUgaXMgZXJyb3IsIHRoaXMgcHJvYwotICAgICMgd2lsbCByZXR1cm4gaW5zaWRlIHRoaXMgZm9yZWFjaCBsb29wIHdpdGggY29kZSBlcnJvcgotICAgIGlmIHskYXBwbGV0U2VhcmNoUGF0aENvdW50ID4gMX0gewotICAgICAgcHV0cyAibG9hZF9hcHBsZXQgSU5GTzogQ2hlY2tpbmcgYWxsIGFwcGxldCBzZWFyY2ggcGF0aHMgZm9yIHZlcnNpb25zIG9mICRhcHBsZXROYW1lIgotICAgIH0KLSAgICBmb3JlYWNoIHBhdGhDb21wb25lbnQgJHNlYXJjaFBhdGhMaXN0IHsKLSAgICAgIGluY3IgYXBwbGV0U2VhcmNoUGF0aENvdW50IC0xCi0gICAgICBpZiB7JG9yaWdhcHBsZXRTZWFyY2hQYXRoQ291bnQgPiAxfSB7Ci0gICAgICAgIHB1dHMgLW5vbmV3bGluZSAiICAkcGF0aENvbXBvbmVudCAuLi4iCi0gICAgICB9IGVsc2UgewotICAgICAgICBwdXRzIC1ub25ld2xpbmUgImxvYWRfYXBwbGV0IElORk86IENoZWNraW5nIGFwcGxldF9zZWFyY2hfcGF0aDogJHBhdGhDb21wb25lbnQgLi4uIgotICAgICAgfQotICAgICAgIyBJZiB0aGUgcGF0aCBjb21wb25lbnQgaXMgPGRlZmF1bHQ+IHJlcGxhY2Ugd2l0aCB0aGUgYXBwbGV0IGRlc2lnbmF0ZWQgc2VhcmNoIHBhdGggdmFsdWUgdXNpbmcgIlVwZGF0ZVNlYWNoUGF0aCIKLSAgICAgIGlmIHtbc3RyaW5nIG1hdGNoICI8ZGVmYXVsdD4iICRwYXRoQ29tcG9uZW50XX0gewotICAgICAgICBzZXQgcGF0aENvbXBvbmVudCBbJDo6bnMoYXBwbGV0KTo6VXBkYXRlU2VhcmNoUGF0aCAkcGF0aENvbXBvbmVudF0KLSAgICAgIH0KLSAgICAgIGxhcHBlbmQgb3JpZ1NlYXJjaFBhdGggJHBhdGhDb21wb25lbnQKLSAgICAgIGlmIHtbZmlsZSBpc2RpcmVjdG9yeSAkcGF0aENvbXBvbmVudF19IHsKLQlpZiB7W2ZpbGUgaXNmaWxlICRwYXRoQ29tcG9uZW50Ly5zZXJ2SW5mb119IHsKLQkgIGlmIHtbZ2V0X3Rvb2xdIGVxICJyYyJ9IHsKLSAgICAgICAgICAgIHNldCBzb3VyY2VDb21tYW5kIHRjbF9zb3VyY2UKLQkgIH0gZWxzZSB7Ci0JICAgIHNldCBzb3VyY2VDb21tYW5kIHNvdXJjZQotCSAgfQotCSAgIHNldCBlcnJvck1zZyAiIgotICAgICAgICAgIGFycmF5IHVuc2V0IGFwcEluZm8KLQkgIGlmIHtbY2F0Y2ggeyRzb3VyY2VDb21tYW5kICRwYXRoQ29tcG9uZW50Ly5zZXJ2SW5mb30gZXJyb3JNc2ddIHx8ICFbaW5mbyBleGlzdHMgYXBwSW5mbygke2FwcGxldE5TfTo6JHthcHBsZXROYW1lfSx2ZXJzaW9uKV19IHsKLQkgICAgaWYgeyRlcnJvck1zZyBuZSAiIn0gewotCSAgICAgIHB1dHMgIiAkZXJyb3JNc2ciCi0JICAgIH0gZWxzZSB7Ci0JICAgICAgcHV0cyAiIEJBRCBBUFBMRVQgU0VSVkVSIChjb3JydXB0ZWQgLnNlcnZJbmZvIGZpbGUpIgotCSAgICB9Ci0gICAgICAgICAgfSBlbHNlIHsKLQkgICAgaWYgeyRyZXFBcHBsZXRWZXJzaW9uIGVxICIiIH0gewotCSAgICAgIGxhcHBlbmQgbWluVmVyc2lvblNlYXJjaFBhdGggJHBhdGhDb21wb25lbnQgIAotCSAgICAgIHNldCBGb3VuZE1pblZlcnNpb25QYXRoIDEKLQkgICAgfSBlbHNlaWYge1twYWNrYWdlIHZjb21wYXJlICRhcHBJbmZvKCR7YXBwbGV0TlN9Ojoke2FwcGxldE5hbWV9LHZlcnNpb24pICRyZXFBcHBsZXRWZXJzaW9uXSAhPSAtMX0gewotCSAgICAgICAgbGFwcGVuZCBtaW5WZXJzaW9uU2VhcmNoUGF0aCAkcGF0aENvbXBvbmVudCAgCi0JICAgICAgICBzZXQgRm91bmRNaW5WZXJzaW9uUGF0aCAxCi0gCSAgICB9IGVsc2UgewotCSAgICAgIGxhcHBlbmQgZmFpbGVkUGF0aHMgJHBhdGhDb21wb25lbnQKLQkgICAgICBzZXQgZmFpbGVkUGF0aHZlcigkcGF0aENvbXBvbmVudCkgJGFwcEluZm8oJHthcHBsZXROU306OiR7YXBwbGV0TmFtZX0sdmVyc2lvbikKLQkgICAgfQotCSAgICBwdXRzICIgRm91bmQgJGFwcEluZm8oJHthcHBsZXROU306OiR7YXBwbGV0TmFtZX0sdmVyc2lvbikiCi0gICAgICAgICAgfQotCX0gZWxzZSB7Ci0JICBwdXRzICIgQkFEIEFQUExFVCBJTlNUQUxMIgotICAgICAgICB9Ci0gICAgICB9IGVsc2UgewotCXB1dHMgIiAgTk9ORVhJU1RFTlQgQVBQTEVUIFNFUlZFUiIKLSAgICAgIH0KLSAgICB9OyMgZW5kIGZpcnN0IGZvcmVhY2ggbG9vcCAoZGlzdGlsbGluZyBmaW5hbCBtaW5pbXVtIHZlcnNpb24gYXBwbGV0X3NlYXJjaF9wYXRoCi0KLSAgICAjIFNlY29uZCBwYXNzOiBhdHRlbXB0IHRvIGxvYWQgYXBwbGV0IGluIGVhY2ggdmFsaWQgc2VhcmNoX3BhdGggdW50aWwgYSBzdWNjZXNzZnVsIGFwcGxldCBsb2FkIG9jY3VycwotICAgICMgVGhpcyBmb3IgbG9vcCBtdXN0IGxlYWQgdG8gYSBzdWNjZXNzZnVsIG91dGNvbWUgKGxvYWRlZCBhcHBsZXQpIG9yIGFuIGVycm9yIHdpbGwgYmUgaXNzdWVkCi0gICAgaWYgeyRGb3VuZE1pblZlcnNpb25QYXRofSB7Ci0gICAgICBmb3JlYWNoIHNlYXJjaFBhdGggJG1pblZlcnNpb25TZWFyY2hQYXRoIHsKLSAgICAgICAgc2V0X2F0dHJpYnV0ZSAtcXVpZXQgYXBwbGV0X3NlYXJjaF9wYXRoICRzZWFyY2hQYXRoIC8KLSAgICAgICAgaWYge1tjYXRjaCB7YXBwbGV0IGxvYWQgJGFwcGxldE5hbWV9IGVycm9yTXNnXX0gewotICAgICAgICAgIHB1dHMgImxvYWRfYXBwbGV0IElORk86IFZlcnNpb24gY2hlY2sgcGFzc2VkIG9uIGFwcGxldCBpbnN0YWxsICRhcHBsZXROYW1lIGJ1dCBhcHBsZXQgbG9hZCBmYWlsZWQuIgotICAgICAgICAgIGlmIHskYXBwbGV0U2VhcmNoUGF0aENvdW50ID4gMH0gewotICAgICAgICAgICAgcHV0cyAibG9hZF9hcHBsZXQ6IFRyeWluZyBuZXh0IGFwcGxldF9zZWFyY2hfcGF0aC4uLiIKLSAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgcHV0cyAibG9hZF9hcHBsZXQ6IEVSUk9SOiBGYWlsZWQgdG8gbG9hZCBhcHBsZXQgJGFwcGxldE5hbWUuIFBsZWFzZSBjaGVjayB5b3VyIGFwcGxldF9zZWFyY2hfcGF0aCBhbmQgYXBwbGV0IGluc3RhbGxhdGlvbihzKS4iCi0JICAgIHNldF9hdHRyaWJ1dGUgLXF1aWV0IGFwcGxldF9zZWFyY2hfcGF0aCAkb3JpZ1NlYXJjaFBhdGggLwotICAgICAgICAgICAgcmV0dXJuIC1jb2RlIGVycm9yCi0gICAgICAgICAgfQotICAgICAgICB9IGVsc2UgewotCSAgaWYge1tjYXRjaCB7c2V0IHByb3ZpZGVkVmVyc2lvbiBbcGFja2FnZSBwcmVzZW50ICR7YXBwbGV0TlN9OjokYXBwbGV0TmFtZV19IGVycm9yTWVzc2FnZV19IHsKLSAgICAgICAgICAgIHB1dHMgImxvYWRfYXBwbGV0OiBFUlJPUjogYXBwbGV0ICRhcHBsZXROYW1lIGxvYWRlZCBjb3JyZWN0bHksIGJ1dCB0aGUgYXBwbGV0IGRpZCBub3QgY29ycmVjdGx5IHByb3ZpZGUgYSBwYWNrYWdlIHZlcnNpb24uIFRyeWluZyBuZXh0IHNlYXJjaCBwYXRoLi4uIgotCSAgfSBlbHNlIHsKLSAgICAgICAgICAgIHB1dHMgImxvYWRfYXBwbGV0OiBJTkZPOiBBcHBsZXQgJGFwcGxldE5hbWUgJHByb3ZpZGVkVmVyc2lvbiBzdWNjZXNzZnVsbHkgbG9hZGVkIGZyb20gYXBwbGV0IGluc3RhbGxhdGlvbiBhdCAkcGF0aENvbXBvbmVudCwgbWVldGluZyBtaW4gdmVyc2lvbiByZXF1aXJlbWVudCAoJHJlcUFwcGxldFZlcnNpb24pIgotCSAgICBzZXRfYXR0cmlidXRlIC1xdWlldCBhcHBsZXRfc2VhcmNoX3BhdGggJG9yaWdTZWFyY2hQYXRoIC8KLQkgICAgcmV0dXJuCi0JICB9Ci0gICAgICAgIH0KLSAgICAgIH0KLSAgICB9IGVsc2UgewotICAgICAgIyBEaWRuJ3QgZmluZCBhbnkgc2VhcmNoeSBwYXRocyB3aXRoIG1pbmltdW0gYXBwbGV0IGluc3RhbGxlZC4KLSAgICAgIHN3aXRjaCAtZXhhY3QgLS0gJHNldmVyaXR5IHsKLSAgICAgICAgZXJyb3IgewotICAgICAgICAgIHB1dHMgImxvYWRfYXBwbGV0IEVSUk9SOiBNaW5pbXVtIGFwcGxldCB2ZXJzaW9uIGZvciBhcHBsZXQgJGFwcGxldE5hbWUgaXMgJHJlcUFwcGxldFZlcnNpb24sIGJ1dCBubyBhcHBsZXQgd2FzIGZvdW5kIG1lZXRpbmcgdGhpcyByZXF1aXJlbWVudC4iCi0JfQotICAgICAgICB3YXJuaW5nIHsKLSAgICAgICAgICBwdXRzICJsb2FkX2FwcGxldCBXQVJOSU5HOiBNaW5pbXVtIGFwcGxldCB2ZXJzaW9uIGZvciBhcHBsZXQgJGFwcGxldE5hbWUgaXMgJHJlcUFwcGxldFZlcnNpb24sIGJ1dCBubyBhcHBsZXQgd2FzIGZvdW5kIG1lZXRpbmcgdGhpcyByZXF1aXJlbWVudC4iCi0JfQotICAgICAgICBpbmZvIHsKLSAgICAgICAgICBwdXRzICJsb2FkX2FwcGxldCBJTkZPOiBNaW5pbXVtIGFwcGxldCB2ZXJzaW9uIGZvciBhcHBsZXQgJGFwcGxldE5hbWUgaXMgJHJlcUFwcGxldFZlcnNpb24sIGJ1dCBubyBhcHBsZXQgd2FzIGZvdW5kIG1lZXRpbmcgdGhpcyByZXF1aXJlbWVudC4iCi0JfQotICAgICAgfQotICAgICAgcHV0cyAibG9hZF9hcHBsZXQgSU5GTzogU2VhcmNoIHJlc3VsdHM6IgotICAgICAgZm9yZWFjaCBzZWFyY2hQYXRoICRmYWlsZWRQYXRocyB7Ci0gICAgICAgIHB1dHMgIiAgYXBwbGV0X3NlYXJjaF9wYXRoOiAkc2VhcmNoUGF0aCwgJGFwcGxldE5hbWUgdmVyc2lvbiBmb3VuZDogJGZhaWxlZFBhdGh2ZXIoJHNlYXJjaFBhdGgpIgotICAgICAgfQotICAgICAgcHV0cyAibG9hZF9hcHBsZXQgSU5GTzogTm90ZSBhcHBsZXQgc2VhcmNoIHBhdGggdGhhdCB3YXMgc2V0OiIKLSAgICAgIHB1dHMgIiAgJG9yaWdTZWFyY2hQYXRoIiAKLSAgICAgIHN3aXRjaCAtZXhhY3QgLS0gJHNldmVyaXR5IHsKLSAgICAgICAgZXJyb3IgewotCSAgc2V0X2F0dHJpYnV0ZSAtcXVpZXQgYXBwbGV0X3NlYXJjaF9wYXRoICRvcmlnU2VhcmNoUGF0aCAvCi0gICAgICAgICAgcmV0dXJuIC1jb2RlIDk5Ci0gICAgICAgIH0KLSAgICAgIH0KLSAgICB9Ci0gICAgc2V0X2F0dHJpYnV0ZSAtcXVpZXQgYXBwbGV0X3NlYXJjaF9wYXRoICRvcmlnU2VhcmNoUGF0aCAvCi0gIH0KLSAgcHJvYyBnZW5lcmF0ZV9yZXBvcnRzIHthcmdzfSB7Ci0gICAgICBldmFsIFtmb3JtYXQgIiVzICVzIiBnZW5lcmF0ZV9yZXBvcnQgJGFyZ3NdCi0gIH0gIAotICBwcm9jIHJ1bnRpbWVfaW5mbyB7YXJnc30gewotICAgICAgZXZhbCBbZm9ybWF0ICIlcyAlcyIgdGltZV9pbmZvICRhcmdzXQotICB9Ci0gIHByb2MgY2FwdHVyZV9tZXRyaWNzIHt9IHsKLSAgICAgIGdsb2JhbCB2YXJzIAotCi0gICAgICBzZXQgY29tbWFuZHMgIiIgCi0gICAgICBhcHBlbmQgY29tbWFuZHMgIm1lYXN1cmUgcW9yIC1uYW1lICR2YXJzKHN0ZXApICR2YXJzKGh0bWxfc3VtbWFyeSlcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyAidGltZV9pbmZvIC10YWJsZSBmZl9leHQgLXN0YW1wICR2YXJzKHN0ZXApXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgInRpbWVfaW5mbyAtdGFibGUgZmZfZXh0IC1yZXBvcnRcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyAicmVkaXJlY3QgJHZhcnModGltZV9pbmZvX3JwdCkge3RpbWVfaW5mbyAtdGFibGUgZmZfZXh0IC1yZXBvcnR9XG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgInRpbWVfaW5mbyAtcXVpZXQgLXRhYmxlIGZmX2V4dCAtc2F2ZSAkdmFycyh0aW1lX2luZm9fZGIpXG4iCi0KLSAgICAgIHJldHVybiAkY29tbWFuZHMKLSAgfSAKLQotICBwcm9jIGhlbHAge3N0ZXB9IHsKLQotICAgICAgZ2xvYmFsIHZhcnMKLSAKLSAgICAgIHNvdXJjZSAkdmFycyhzY3JpcHRfcGF0aCkvRVRDL0lOTk9WVVMvbWFwcGVkX3ZhcnMudGNsCi0KLSAgICAgIGlmIHshW2luZm8gZXhpc3RzIGhlbHAoJHN0ZXAsY2F0ZWdvcmllcyldfSB7Ci0gICAgICAgICBwdXRzICI8RkY+IEVSUk9SOiBJbnZhbGlkIHN0ZXAvY2F0ZWdvcnkgLi4uIHZhbGlkIG9wdGlvbnMgYXJlOiIKLSAgICAgICAgIGZvcmVhY2ggY2F0ICRoZWxwKGNhdGVnb3JpZXMpIHsKLSAgICAgICAgICAgIHB1dHMgIiAgICAgICAgICAgICRjYXQiICAgICAgICAgICAgCi0gICAgICAgICB9Ci0gICAgICAgICByZXR1cm4KLSAgICAgIH0gCi0KLSAgICAgIHNldCBsZW5ndGggW3N0cmluZyBsZW5ndGggJHN0ZXBdCi0gICAgICBwdXRzICIgICBbc3RyaW5nIHJlcGVhdCA9IDExMF0iCi0gICAgICBwdXRzIFtmb3JtYXQgIiAgICUrNTVzIDogJS00MnMiICJ2YXJpYWJsZSAoY29tbWFuZCkiIHZhbHVlc10KLSMgICAgICBwdXRzICIgICBWYXJpYWJsZXMgYWZmZWN0aW5nICckc3RlcCcgPT4gdmFyaWFibGUgKGNvbW1hbmQpIDogdmFsdWVzIgotIyAgICAgIHB1dHMgIiAgIFtzdHJpbmcgcmVwZWF0ID0gMTEwXSIKLSMgICAgICBwdXRzICIgICBbc3RyaW5nIHJlcGVhdCAtIFtleHByIDUzLSgkbGVuZ3RoLzIpXV0gJHN0ZXAgW3N0cmluZyByZXBlYXQgLSBbZXhwciA0Ny0oJGxlbmd0aC8yKV1dIgotCi0gICAgICBmb3JlYWNoIGNhdCAkaGVscCgkc3RlcCxjYXRlZ29yaWVzKSB7Ci0gICAgICAgICBzZXQgbGVuZ3RoIFtzdHJpbmcgbGVuZ3RoICRjYXRdCi0gICAgICAgICBwdXRzICIgICBbc3RyaW5nIHJlcGVhdCAtIFtleHByIDUzLSgkbGVuZ3RoLzIpXV0gJGNhdCBbc3RyaW5nIHJlcGVhdCAtIFtleHByIDQ3LSgkbGVuZ3RoLzIpXV0iCi0gICAgICAgICBmb3JlYWNoIHZhciBbbHNvcnQgW2FycmF5IG5hbWVzIGhlbHBdXSB7Ci0gICAgICAgICAgICBpZiB7W3JlZ2V4cCAkY2F0LCAkdmFyXX0gewotICAgICAgICAgICAgICAgaWYgeyRjYXQgbmUgW2xpbmRleCBbc3BsaXQgJHZhciAiLCJdIDBdfSB7IGNvbnRpbnVlIH0KLSAgICAgICAgICAgICAgIHNldCBjb21tYW5kIFtsaW5kZXggW3NwbGl0ICR2YXIgIiwiXSAxXQotICAgICAgICAgICAgICAgaWYge1tsbGVuZ3RoIFtzcGxpdCAkdmFyICIsIl1dID4gM30gewotICAgICAgICAgICAgICAgICAgc2V0IHZhcmlhYmxlIFtmb3JtYXQgIiVzLCVzIiBbbGluZGV4IFtzcGxpdCAkdmFyICIsIl0gMl0gW2xpbmRleCBbc3BsaXQgJHZhciAiLCJdIDNdXQotICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgIHNldCB2YXJpYWJsZSBbbGluZGV4IFtzcGxpdCAkdmFyICIsIl0gMl0KLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIHNldCB2YWx1ZXMgJGhlbHAoJHZhcikKLSAgICAKLSAgICAgICAgICAgICAgIGlmIHskY29tbWFuZCAhPSAiY2F0ZWdvcmllcyJ9IHsgCi0gICAgICAgICAgICAgICAgICBwdXRzIFtmb3JtYXQgIiAgICUrNTVzIDogJS00MnMiICIkdmFyaWFibGUgKCRjb21tYW5kKSIgJHZhbHVlc10KLSAgICAgICAgICAgICAgIH0gCi0gICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0gICAgICB9Ci0gICAgICBwdXRzICIgICBbc3RyaW5nIHJlcGVhdCA9IDExMF0iCi0gICB9Ci0KLSAgIyBBIHByb2NlZHVyZSB0byBkZXRlcm1pbmUgaWYgdGhlIGN1cnJlbnQgZmxvdyBpcyBsb3cgcG93ZXIgKGkuZS4sIENQRiBvciBJRUVFIDE4MDEgYmFzZWQpIAotICBwcm9jIGlzX2xwX2Zsb3cge30gewotICAgICAgZ2xvYmFsIHZhcnMKLSAgICAgIHJldHVybiBbZXhwciB7W2luZm8gZXhpc3RzIHZhcnMoY3BmX2ZpbGUpXSAmJiAkdmFycyhjcGZfZmlsZSkgIT0gIiJ9IHx8IFwKLSAgICAgICAgICAgICAgICB7W2luZm8gZXhpc3RzIHZhcnMoaWVlZTE4MDFfZmlsZSldICYmICR2YXJzKGllZWUxODAxX2ZpbGUpICE9ICIifV0KLSAgfQotICBwcm9jIGFkanVzdF9zdGVwcyB7fSB7Ci0gICAKLSAgICAgIGdsb2JhbCB2YXJzCi0gICAKLSAgICAgIHNldCBuZXdfc3RlcHMgW2xpc3RdCi0gICAKLSAgICAgIHNldCBmaXJzdCAxCi0KLSAgICAgIGZvcmVhY2ggc3RlcCAkdmFycyhzdGVwcykgewotICAgCi0gICAgICAgICBpZiB7W3JlZ2V4cCBfaG9sZCAkc3RlcF19IHsKLSAgICAgICAgICAgIGlmIHsoW2xzZWFyY2ggJHZhcnMoZml4X2hvbGQpIFtyZWdzdWIgX2hvbGQgJHN0ZXAgIiJdXTwwKX0gewotICAgICAgICAgICAgICAgY29udGludWUKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBpZiB7KCR2YXJzKHN0ZXApID09ICJwb3N0Y3RzX2hvbGQiKSAmJiAkdmFycyhza2lwX2N0cyl9IHsKLSAgICAgICAgICAgICAgICAgIGNvbnRpbnVlCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0gIAotICAgICAgICAgaWYgeygkc3RlcCA9PSAicHJlY3RzIikgJiYgJHZhcnMocGxhY2Vfb3B0X2Rlc2lnbil9IHsKLSAgICAgICAgICAgIGlmIHshKCgkdmFycyh1c2VyX21vZGUpID09ICJoaWVyIikgJiYgKFtmaWxlIHRhaWwgW3B3ZF1dID09ICR2YXJzKHRvcF9jZWxsKSkgJiYgJHZhcnMoZW5hYmxlX2ZsZXhpbG0pKX0gewotICAgICAgICAgICAgICAgY29udGludWUKLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0KLSAgICAgICAgIGlmIHsoJHN0ZXAgPT0gImN0cyIpICYmICR2YXJzKHNraXBfY3RzKX0gewotICAgICAgICAgICAgY29udGludWUKLSAgICAgICAgIH0KLSAgICAgICAgIGlmIHsoJHN0ZXAgPT0gInBvc3RjdHMiKX0gewotICAgICAgICAgICAgaWYgeyR2YXJzKHNraXBfY3RzKX0gewotICAgICAgICAgICAgICAgY29udGludWUKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIHtbcmVnZXhwICJeY2NvcHQiIFtzdHJpbmcgdG9sb3dlciAkdmFycyhjdHNfZW5naW5lKV1dfSB7Ci0gICAgICAgICAgICAgICBpZiB7JHZhcnMoY3RzX2VuZ2luZSkgIT0gImNjb3B0X2N0cyJ9IHsKLSAgICAgICAgICAgICAgICAgIGNvbnRpbnVlCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0gICAgICAgICBpZiB7KCRzdGVwID09ICJwb3N0Y3RzX2hvbGQiKSAmJiAkdmFycyhwb3N0Y3RzX3NldHVwX2hvbGQpICYmICgkdmFycyhjdHNfZW5naW5lKSAhPSAiY2NvcHRfY3RzIil9IHsKLSAgICAgICAgICAgIGNvbnRpbnVlCi0gICAgICAgICB9Ci0gICAgICAgICBpZiB7KCRzdGVwID09ICJwb3N0cm91dGVfaG9sZCIpICYmICR2YXJzKHBvc3Ryb3V0ZV9zZXR1cF9ob2xkKX0gewotICAgICAgICAgICAgY29udGludWUKLSAgICAgICAgIH0KLSAgICAgICAgIGxhcHBlbmQgbmV3X3N0ZXBzICRzdGVwCi0gICAgICB9Ci0KLSAgICAgIHJldHVybiAkbmV3X3N0ZXBzCi0gICB9Ci0gIHByb2MgY3JlYXRlX2NvZGVnZW5fZmlsZSB7fSB7Ci0KLSAgICAgIGdsb2JhbCB2YXJzCi0KLSAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhzdHlsdXNfY29udmVydCldICYmICR2YXJzKHN0eWx1c19jb252ZXJ0KSAmJiBbaW5mbyBleGlzdHMgdmFycyhwbHVnaW5zX2RlZmluZWQpXX0gewotICAgICAgICBGRl9OT1ZVUzo6Y29udmVydF9wbHVnaW5zCi0gICAgICAgIHNldCBvcCBbb3BlbiBjb2RlZ2VuX2NyZWF0ZS50eHQgd10KLSAgICAgICAgcHV0cyAkb3AgIiMhL2dyaWQvY29tbW9uL3BrZ3MvdGNsdGsvdjguNWIzL2Jpbi90Y2xzaCIKLSAgICAgICAgcHV0cyAkb3AgInNvdXJjZSAvdm9scy9kc2dfdHJhY2tlci9pbm5vdnVzL2ZlL3NyYy9mbG93a2l0L3Rlc3RzL2NvZGVnZW5fZmxvd2tpdF90ZW1wbGF0ZV9tb2RpZmllci5saWIudGNsIgotCi0gICAgICAgIHNldCB0aW1pbmdfbGlicyAkdmFycygkdmFycygkdmFycygkdmFycyhkZWZhdWx0X3NldHVwX3ZpZXcpLGRlbGF5X2Nvcm5lciksbGlicmFyeV9zZXQpLHRpbWluZykKLSAgICAgICAgc2V0IHFyY190ZWNoICR2YXJzKCR2YXJzKCR2YXJzKCR2YXJzKGRlZmF1bHRfc2V0dXBfdmlldyksZGVsYXlfY29ybmVyKSxyY19jb3JuZXIpLHF4X3RlY2hfZmlsZSkKLSAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCR2YXJzKCR2YXJzKGRlZmF1bHRfc2V0dXBfdmlldyksY29uc3RyYWludF9tb2RlKSxzeW50aF9zZGMpXX0gewotICAgICAgICAgIHNldCBzZGNfZmlsZXMgJHZhcnMoJHZhcnMoJHZhcnMoZGVmYXVsdF9zZXR1cF92aWV3KSxjb25zdHJhaW50X21vZGUpLHN5bnRoX3NkYykKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICBzZXQgc2RjX2ZpbGVzICR2YXJzKCR2YXJzKCR2YXJzKGRlZmF1bHRfc2V0dXBfdmlldyksY29uc3RyYWludF9tb2RlKSxwcmVfY3RzX3NkYykKLSAgICAgICAgfQotICAgICAgICBwdXRzICRvcCAiY29kZWdlbjo6dGVtcGxhdGUgLi9zY3JpcHRzL2Rlc2lnbl9jb25maWcudGVtcGxhdGUgXHsiCi0gICAgICAgIHB1dHMgJG9wICIgIHBsYWNlaG9sZGVyIFx7PDwgUExBQ0VIT0xERVI6IFBBVEggVE8gVElNSU5HIExJQlMgPj5cfSBceyBcLiBcfSIgCi0gICAgICAgIHB1dHMgJG9wICIgIHBsYWNlaG9sZGVyIFx7PDwgUExBQ0VIT0xERVI6IFBBVEggVE8gTEVGIEZJTEVTID4+XH0gXHsgXC4gXH0iCi0gICAgICAgIHB1dHMgJG9wICIgIHBsYWNlaG9sZGVyIFx7PDwgUExBQ0VIT0xERVI6IFBBVEggVE8gVEVDSCBGSUxFUyA+Plx9IFx7IFwuIFx9IgotICAgICAgICBwdXRzICRvcCAiICBwbGFjZWhvbGRlciBcezw8IFBMQUNFSE9MREVSOiBMSVNUIE9GIFRJTUlORyBMSUJSQVJJRVMgPj5cfSBce1x7JHRpbWluZ19saWJzXH1cfSIKLSAgICAgICAgcHV0cyAkb3AgIiAgcGxhY2Vob2xkZXIgXHs8PCBQTEFDRUhPTERFUjogTElTVCBPRiBMRUYgRklMRVMgPj5cfSBce1x7JHZhcnMobGVmX2ZpbGVzKVx9XH0iCi0gICAgICAgIHB1dHMgJG9wICIgIHBsYWNlaG9sZGVyIFx7PDwgUExBQ0VIT0xERVI6IFBST0NFU1MgTk9ERSA+Plx9IFx7JHZhcnMocHJvY2VzcylcfSIKLSAgICAgICAgcHV0cyAkb3AgIiAgcGxhY2Vob2xkZXIgXHs8PCBQTEFDRUhPTERFUjogUVJDIFRFQ0ggRklMRSA+Plx9IFx7JHFyY190ZWNoXH0iCi0gICAgICAgIHB1dHMgJG9wICIgIGRlbGV0ZV9wbGFjZWhvbGRlciBcezw8IFBMQUNFSE9MREVSOiBwYXR0ZXJuID4+XH0iCi0gICAgICAgIHB1dHMgJG9wICIgIGRlbGV0ZSBce29wZXJhdGluZ19jb25kaXRpb25cfSIKLSAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKHN5bl9sb2FkX3J0bF90Y2wpXSAmJiBbZmlsZSBpc2ZpbGUgJHZhcnMoc3luX2xvYWRfcnRsX3RjbCldfSB7Ci0jICAgICAgICAgIHB1dHMgJG9wICIgIGFwcGVuZF9hZnRlciBcey0gUmVhZCBoZGwgZGVzaWduLCBGbG93IFN0ZXAgTmFtZTogcmVhZF9oZGxcfSBceyIKLSAgICAgICAgICBwdXRzICRvcCAiICBhcHBlbmRfYWZ0ZXIgXHs8PCBQTEFDRUhPTERFUjogREVTSUdOIEhETCBMT0FEIE9QVElPTlMgPj5cfSBceyIKLSAgICAgICAgICBzZXQgaXAgW29wZW4gJHZhcnMoc3luX2xvYWRfcnRsX3RjbCkgcl0KLSAgICAgICAgICB3aGlsZSB7W2dldHMgJGlwIGxpbmVdPj0wfSB7Ci0gICAgICAgICAgICBwdXRzICRvcCAiICAgJGxpbmUiCi0gICAgICAgICAgfQotICAgICAgICAgIGNsb3NlICRpcAotICAgICAgICAgIHB1dHMgJG9wICIgIFx9IgotICAgICAgICAgIHB1dHMgJG9wICIgIGRlbGV0ZV9wbGFjZWhvbGRlciBcezw8IFBMQUNFSE9MREVSOiBERVNJR04gSERMIExPQUQgT1BUSU9OUyA+Plx9IgotICAgICAgICB9IGVsc2UgewotICAgICAgICAgIHB1dHMgJG9wICIgIGRlbGV0ZV9wbGFjZWhvbGRlciBcezw8IFBMQUNFSE9MREVSOiBERVNJR04gSERMIExPQUQgT1BUSU9OUyA+Plx9IgotICAgICAgICB9Ci0gICAgICAgICBwdXRzICRvcCAiICBwbGFjZWhvbGRlciBcezw8IFBMQUNFSE9MREVSOiBFTEFCT1JBVElPTiBPUFRJT05TID4+XH0gXHskdmFycyhkZXNpZ24pXH0iCi0gICAgICAgICBwdXRzICRvcCAiICBwbGFjZWhvbGRlciBcezw8IFBMQUNFSE9MREVSOiBTREMgRklMRVMgPj5cfSBceyRzZGNfZmlsZXNcfSIKLSAgICAgICAgIHB1dHMgJG9wICIgIHBsYWNlaG9sZGVyIFx7PDwgUExBQ0VIT0xERVI6IFBIWVNJQ0FMIERBVEEgTE9BRCBPUFRJT05TID4+XH0gXHstbGVmIFx7ICR2YXJzKGxlZl9maWxlcykgXH1cfSIKLSAgICAgICAgIHB1dHMgJG9wICIgIHBsYWNlaG9sZGVyIFx7PDwgUExBQ0VIT0xERVI6IERFU0lHTiBEQVRBIExPQUQgT1BUSU9OUyA+Plx9IFx7JHZhcnMobmV0bGlzdClcfSIKLSAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhkZWZfZmlsZXMpXX0gewotICAgICAgICAgICBwdXRzICRvcCAiICBwbGFjZWhvbGRlciBcezw8IFBMQUNFSE9MREVSOiBERUYgTE9BRCBPUFRJT05TID4+XH0gXHskdmFycyhkZWZfZmlsZXMpXH0iCi0gICAgICAgICB9IGVsc2UgewotICAgICAgICAgICBwdXRzICRvcCAiICBkZWxldGVfcGxhY2Vob2xkZXIgXHs8PCBQTEFDRUhPTERFUjogREVGIExPQUQgT1BUSU9OUyA+Plx9IgotICAgICAgICAgfQotICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGZwX2ZpbGUpXX0gewotICAgICAgICAgICBwdXRzICRvcCAiICBwbGFjZWhvbGRlciBcezw8IFBMQUNFSE9MREVSOiBGUExBTiBMT0FEIE9QVElPTlMgPj5cfSBceyR2YXJzKGZwX2ZpbGUpXH0iCi0gICAgICAgICB9IGVsc2UgewotICAgICAgICAgICBwdXRzICRvcCAiICBkZWxldGVfcGxhY2Vob2xkZXIgXHs8PCBQTEFDRUhPTERFUjogRlBMQU4gTE9BRCBPUFRJT05TID4+XH0iCi0gICAgICAgICB9Ci0gICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoY3BmX2ZpbGUpXX0gewotICAgICAgICAgICBwdXRzICRvcCAiICBwbGFjZWhvbGRlciBcezw8IFBMQUNFSE9MREVSOiBQT1dFUiBJTlRFTlQgTE9BRCBPUFRJT05TID4+XH0gXHskdmFycyhjcGZfZmlsZSlcfSIKLSAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgIHB1dHMgJG9wICIgIGRlbGV0ZV9wbGFjZWhvbGRlciBcezw8IFBMQUNFSE9MREVSOiBQT1dFUiBJTlRFTlQgTE9BRCBPUFRJT05TID4+XH0iCi0gICAgICAgICB9Ci0gICAgICAgICBwdXRzICRvcCAiICBkZWxldGVfcGxhY2Vob2xkZXIgXHs8PCBQTEFDRUhPTERFUjogQ0xPQ0sgTEVBRiBST1VURSBSVUxFID4+XH0iCi0gICAgICAgICBwdXRzICRvcCAiICBkZWxldGVfcGxhY2Vob2xkZXIgXHs8PCBQTEFDRUhPTERFUjogQ0xPQ0sgVFJVTksgUk9VVEUgUlVMRSA+Plx9IgotICAgICAgICAgcHV0cyAkb3AgIiAgZGVsZXRlX3BsYWNlaG9sZGVyIFx7PDwgUExBQ0VIT0xERVI6IENMT0NLIFRPUCBST1VURSBSVUxFID4+XH0iCi0gICAgICAgICBwdXRzICRvcCAiXH0iCi0gICAgICAgICBwdXRzICRvcCAiY29kZWdlbjo6dGVtcGxhdGUgLi9zY3JpcHRzL2dlbnVzX2NvbmZpZy50ZW1wbGF0ZSBceyIKLSAgICAgICAgIHB1dHMgJG9wICJcfSIgCi0gICAgICAgICBwdXRzICRvcCAiY29kZWdlbjo6dGVtcGxhdGUgLi9zY3JpcHRzL2lubm92dXNfY29uZmlnLnRlbXBsYXRlIFx7IgotICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKHByb2Nlc3MpXX0gewotICAgICAgICAgICBwdXRzICRvcCAiICBwbGFjZWhvbGRlciBcezw8IFBMQUNFSE9MREVSOiBQUk9DRVNTIE5PREUgPj5cfSBceyR2YXJzKHByb2Nlc3MpXH0iCi0gICAgICAgICB9IGVsc2UgewotICAgICAgICAgICBwdXRzICRvcCAiICBkZWxldGVfcGxhY2Vob2xkZXIgXHs8PCBQTEFDRUhPTERFUjogUFJPQ0VTUyBOT0RFID4+XH0iCi0gICAgICAgICB9Ci0gICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoZmxvd19lZmZvcnQpXX0gewotICAgICAgICAgICBwdXRzICRvcCAiICBwbGFjZWhvbGRlciBcezw8IFBMQUNFSE9MREVSOiBGTE9XIEVGRk9SVCBMRVZFTCA+Plx9IFx7JHZhcnMoZmxvd19lZmZvcnQpXH0iCi0gICAgICAgICB9IGVsc2UgewotICAgICAgICAgICBwdXRzICRvcCAiICBkZWxldGVfcGxhY2Vob2xkZXIgXHs8PCBQTEFDRUhPTERFUjogRkxPVyBFRkZPUlQgTEVWRUwgPj5cfSIKLSAgICAgICAgIH0KLSAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyh0aWVfY2VsbHMpXX0gewotICAgICAgICAgICBwdXRzICRvcCAiICBwbGFjZWhvbGRlciBcezw8IFBMQUNFSE9MREVSOiBUSUVPRkYgQkFTRV9DRUxMIE5BTUVTID4+XH0gXHtceyR2YXJzKHRpZV9jZWxscylcfVx9IgotICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgcHV0cyAkb3AgIiAgZGVsZXRlX3BsYWNlaG9sZGVyIFx7PDwgUExBQ0VIT0xERVI6IFRJRU9GRiBCQVNFX0NFTEwgTkFNRVMgPj5cfSIKLSAgICAgICAgIH0KLSAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhjdHNfdGFyZ2V0X3NsZXcpXX0gewotICAgICAgICAgICBwdXRzICRvcCAiICBwbGFjZWhvbGRlciBcezw8IFBMQUNFSE9MREVSOiBDTE9DSyBUUkFOU0lUSU9OIFRJTUUgVEFSR0VUID4+XH0gXHskdmFycyhjdHNfdGFyZ2V0X3NsZXcpXH0iCi0gICAgICAgICB9IGVsc2UgewotICAgICAgICAgICBwdXRzICRvcCAiICBkZWxldGVfcGxhY2Vob2xkZXIgXHs8PCBQTEFDRUhPTERFUjogQ0xPQ0sgVFJBTlNJVElPTiBUSU1FIFRBUkdFVCA+Plx9IgotICAgICAgICAgfQotICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGN0c190YXJnZXRfc2tldyldfSB7Ci0gICAgICAgICAgIHB1dHMgJG9wICIgIHBsYWNlaG9sZGVyIFx7PDwgUExBQ0VIT0xERVI6IENMT0NLIFNLRVcgVEFSR0VUID4+XH0gXHskdmFycyhjdHNfdGFyZ2V0X3NrZXcpXH0iCi0gICAgICAgICB9IGVsc2UgewotICAgICAgICAgICBwdXRzICRvcCAiICBkZWxldGVfcGxhY2Vob2xkZXIgXHs8PCBQTEFDRUhPTERFUjogQ0xPQ0sgU0tFVyBUQVJHRVQgPj5cfSIKLSAgICAgICAgIH0KLSAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhjdHNfYnVmZmVyX2NlbGxzKV19IHsKLSAgICAgICAgICAgcHV0cyAkb3AgIiAgcGxhY2Vob2xkZXIgXHs8PCBQTEFDRUhPTERFUjogQ0xPQ0sgQlVGRkVSIEJBU0VfQ0VMTFMgTkFNRVMgPj5cfSBce1x7JHZhcnMoY3RzX2J1ZmZlcl9jZWxscylcfVx9IgotICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgcHV0cyAkb3AgIiAgZGVsZXRlX3BsYWNlaG9sZGVyIFx7PDwgUExBQ0VIT0xERVI6IENMT0NLIEJVRkZFUiBCQVNFX0NFTExTIE5BTUVTID4+XH0iCi0gICAgICAgICB9Ci0gICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoY3RzX2ludmVydGVyX2NlbGxzKV19IHsKLSAgICAgICAgICAgcHV0cyAkb3AgIiAgcGxhY2Vob2xkZXIgXHs8PCBQTEFDRUhPTERFUjogQ0xPQ0sgSU5WRVJURVIgQkFTRV9DRUxMUyBOQU1FUyA+Plx9IFx7XHskdmFycyhjdHNfaW52ZXJ0ZXJfY2VsbHMpXH1cfSIKLSAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgIHB1dHMgJG9wICIgIGRlbGV0ZV9wbGFjZWhvbGRlciBcezw8IFBMQUNFSE9MREVSOiBDTE9DSyBJTlZFUlRFUiBCQVNFX0NFTExTIE5BTUVTID4+XH0iCi0gICAgICAgICB9Ci0gICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoY3RzX2Nsb2NrX2dhdGluZ19jZWxscyldfSB7Ci0gICAgICAgICAgIHB1dHMgJG9wICIgIHBsYWNlaG9sZGVyIFx7PDwgUExBQ0VIT0xERVI6IENMT0NLIEdBVElORyBCQVNFX0NFTExTIE5BTUVTID4+XH0gXHtceyR2YXJzKGN0c19jbG9ja19nYXRpbmdfY2VsbHMpXH1cfSIKLSAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgIHB1dHMgJG9wICIgIGRlbGV0ZV9wbGFjZWhvbGRlciBcezw8IFBMQUNFSE9MREVSOiBDTE9DSyBHQVRJTkcgQkFTRV9DRUxMUyBOQU1FUyA+Plx9IgotICAgICAgICAgfQotICAgICAgICAgcHV0cyAkb3AgIiAgZGVsZXRlX3BsYWNlaG9sZGVyIFx7PDwgUExBQ0VIT0xERVI6IFJPVVRFIFRZUEUgTkFNRSBGT1IgQ0xPQ0sgTEVBRiBORVRTID4+XH0iCi0gICAgICAgICBwdXRzICRvcCAiICBkZWxldGVfcGxhY2Vob2xkZXIgXHs8PCBQTEFDRUhPTERFUjogUk9VVEUgVFlQRSBOQU1FIEZPUiBDTE9DSyBUUlVOSyBORVRTID4+XH0iCi0gICAgICAgICBwdXRzICRvcCAiICBkZWxldGVfcGxhY2Vob2xkZXIgXHs8PCBQTEFDRUhPTERFUjogUk9VVEUgVFlQRSBOQU1FIEZPUiBDTE9DSyBUT1AgTkVUUyA+Plx9IgotICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGZpbGxlcl9jZWxscyldfSB7Ci0gICAgICAgICAgIHB1dHMgJG9wICIgIHBsYWNlaG9sZGVyIFx7PDwgUExBQ0VIT0xERVI6IEZJTExFUiBCQVNFX0NFTEwgTkFNRVMgPj5cfSBce1x7JHZhcnMoZmlsbGVyX2NlbGxzKVx9XH0iCi0gICAgICAgICB9IGVsc2UgewotICAgICAgICAgICBwdXRzICRvcCAiICBkZWxldGVfcGxhY2Vob2xkZXIgXHs8PCBQTEFDRUhPTERFUjogRklMTEVSIEJBU0VfQ0VMTCBOQU1FUyA+Plx9IgotICAgICAgICAgfQotICAgICAgICAgcHV0cyAkb3AgIlx9IgotICAgICAgICAgcHV0cyAkb3AgImNvZGVnZW46OnRlbXBsYXRlIC4vc2NyaXB0cy90ZW1wdXNfY29uZmlnLnRlbXBsYXRlIFx7IgotICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKHByb2Nlc3MpXX0gewotICAgICAgICAgICBwdXRzICRvcCAiICBwbGFjZWhvbGRlciBcezw8IFBMQUNFSE9MREVSOiBQUk9DRVNTIE5PREUgPj5cfSBceyR2YXJzKHByb2Nlc3MpXH0iCi0gICAgICAgICB9IGVsc2UgewotICAgICAgICAgICBwdXRzICRvcCAiICBkZWxldGVfcGxhY2Vob2xkZXIgXHs8PCBQTEFDRUhPTERFUjogUFJPQ0VTUyBOT0RFID4+XH0iCi0gICAgICAgICB9Ci0gICAgICAgICBwdXRzICRvcCAiXH0iCi0gICAgICAgICBjbG9zZSAkb3AKLSAgICAgIH0KLSAgfQotfTsjIGVuZCBuYW1lc3BhY2UgRkYKZGlmZiAtLWdpdCBhL2Zsb3cvcG5yL0VYQU1QTEVTL0lOTk9WVVMvREVTSUdOL1NDUklQVFMvR0lGL2JsYW5rLnBuZyBiL2Zsb3cvcG5yL0VYQU1QTEVTL0lOTk9WVVMvREVTSUdOL1NDUklQVFMvR0lGL2JsYW5rLnBuZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMGUzNTdkNS4uMDAwMDAwMAotLS0gYS9mbG93L3Buci9FWEFNUExFUy9JTk5PVlVTL0RFU0lHTi9TQ1JJUFRTL0dJRi9ibGFuay5wbmcKKysrIC9kZXYvbnVsbApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9mbG93L3Buci9FWEFNUExFUy9JTk5PVlVTL0RFU0lHTi9TQ1JJUFRTL0dJRi9jYWxjLmdpZiBiL2Zsb3cvcG5yL0VYQU1QTEVTL0lOTk9WVVMvREVTSUdOL1NDUklQVFMvR0lGL2NhbGMuZ2lmCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwZDFjNmVlLi4wMDAwMDAwCi0tLSBhL2Zsb3cvcG5yL0VYQU1QTEVTL0lOTk9WVVMvREVTSUdOL1NDUklQVFMvR0lGL2NhbGMuZ2lmCisrKyAvZGV2L251bGwKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvZmxvdy9wbnIvRVhBTVBMRVMvSU5OT1ZVUy9ERVNJR04vU0NSSVBUUy9HSUYvY2FsYy5wbmcgYi9mbG93L3Buci9FWEFNUExFUy9JTk5PVlVTL0RFU0lHTi9TQ1JJUFRTL0dJRi9jYWxjLnBuZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggOWYzMmExZi4uMDAwMDAwMAotLS0gYS9mbG93L3Buci9FWEFNUExFUy9JTk5PVlVTL0RFU0lHTi9TQ1JJUFRTL0dJRi9jYWxjLnBuZworKysgL2Rldi9udWxsCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL2Zsb3cvcG5yL0VYQU1QTEVTL0lOTk9WVVMvREVTSUdOL1NDUklQVFMvR0lGL2Nsb2Nrcy5wbmcgYi9mbG93L3Buci9FWEFNUExFUy9JTk5PVlVTL0RFU0lHTi9TQ1JJUFRTL0dJRi9jbG9ja3MucG5nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDc1NQppbmRleCA2ZTg2Mzk2Li4wMDAwMDAwCi0tLSBhL2Zsb3cvcG5yL0VYQU1QTEVTL0lOTk9WVVMvREVTSUdOL1NDUklQVFMvR0lGL2Nsb2Nrcy5wbmcKKysrIC9kZXYvbnVsbApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9mbG93L3Buci9FWEFNUExFUy9JTk5PVlVTL0RFU0lHTi9TQ1JJUFRTL0dJRi9kZW5zaXR5LnBuZyBiL2Zsb3cvcG5yL0VYQU1QTEVTL0lOTk9WVVMvREVTSUdOL1NDUklQVFMvR0lGL2RlbnNpdHkucG5nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDc1NQppbmRleCBhYmM1YjBkLi4wMDAwMDAwCi0tLSBhL2Zsb3cvcG5yL0VYQU1QTEVTL0lOTk9WVVMvREVTSUdOL1NDUklQVFMvR0lGL2RlbnNpdHkucG5nCisrKyAvZGV2L251bGwKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvZmxvdy9wbnIvRVhBTVBMRVMvSU5OT1ZVUy9ERVNJR04vU0NSSVBUUy9HSUYvaGVhZGVyLnBuZyBiL2Zsb3cvcG5yL0VYQU1QTEVTL0lOTk9WVVMvREVTSUdOL1NDUklQVFMvR0lGL2hlYWRlci5wbmcKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDQ3NDM0ZWIuLjAwMDAwMDAKLS0tIGEvZmxvdy9wbnIvRVhBTVBMRVMvSU5OT1ZVUy9ERVNJR04vU0NSSVBUUy9HSUYvaGVhZGVyLnBuZworKysgL2Rldi9udWxsCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL2Zsb3cvcG5yL0VYQU1QTEVTL0lOTk9WVVMvREVTSUdOL1NDUklQVFMvR0lGL2xvZy5naWYgYi9mbG93L3Buci9FWEFNUExFUy9JTk5PVlVTL0RFU0lHTi9TQ1JJUFRTL0dJRi9sb2cuZ2lmCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDc1NQppbmRleCA1NjhhMDk5Li4wMDAwMDAwCi0tLSBhL2Zsb3cvcG5yL0VYQU1QTEVTL0lOTk9WVVMvREVTSUdOL1NDUklQVFMvR0lGL2xvZy5naWYKKysrIC9kZXYvbnVsbApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9mbG93L3Buci9FWEFNUExFUy9JTk5PVlVTL0RFU0lHTi9TQ1JJUFRTL0dJRi9sb2cucG5nIGIvZmxvdy9wbnIvRVhBTVBMRVMvSU5OT1ZVUy9ERVNJR04vU0NSSVBUUy9HSUYvbG9nLnBuZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggZGE1NzAyMy4uMDAwMDAwMAotLS0gYS9mbG93L3Buci9FWEFNUExFUy9JTk5PVlVTL0RFU0lHTi9TQ1JJUFRTL0dJRi9sb2cucG5nCisrKyAvZGV2L251bGwKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvZmxvdy9wbnIvRVhBTVBMRVMvSU5OT1ZVUy9ERVNJR04vU0NSSVBUUy9HSUYvbG9nby5naWYgYi9mbG93L3Buci9FWEFNUExFUy9JTk5PVlVTL0RFU0lHTi9TQ1JJUFRTL0dJRi9sb2dvLmdpZgpkZWxldGVkIGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMTg1YmFmNi4uMDAwMDAwMAotLS0gYS9mbG93L3Buci9FWEFNUExFUy9JTk5PVlVTL0RFU0lHTi9TQ1JJUFRTL0dJRi9sb2dvLmdpZgorKysgL2Rldi9udWxsCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL2Zsb3cvcG5yL0VYQU1QTEVTL0lOTk9WVVMvREVTSUdOL1NDUklQVFMvR0lGL3Bvd2VyLmdpZiBiL2Zsb3cvcG5yL0VYQU1QTEVTL0lOTk9WVVMvREVTSUdOL1NDUklQVFMvR0lGL3Bvd2VyLmdpZgpkZWxldGVkIGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggZThmMjMyMi4uMDAwMDAwMAotLS0gYS9mbG93L3Buci9FWEFNUExFUy9JTk5PVlVTL0RFU0lHTi9TQ1JJUFRTL0dJRi9wb3dlci5naWYKKysrIC9kZXYvbnVsbApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9mbG93L3Buci9FWEFNUExFUy9JTk5PVlVTL0RFU0lHTi9TQ1JJUFRTL0dJRi9wb3dlci5wbmcgYi9mbG93L3Buci9FWEFNUExFUy9JTk5PVlVTL0RFU0lHTi9TQ1JJUFRTL0dJRi9wb3dlci5wbmcKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDE1Zjc3NTMuLjAwMDAwMDAKLS0tIGEvZmxvdy9wbnIvRVhBTVBMRVMvSU5OT1ZVUy9ERVNJR04vU0NSSVBUUy9HSUYvcG93ZXIucG5nCisrKyAvZGV2L251bGwKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvZmxvdy9wbnIvRVhBTVBMRVMvSU5OT1ZVUy9ERVNJR04vU0NSSVBUUy9HSUYvc3BlZWQuZ2lmIGIvZmxvdy9wbnIvRVhBTVBMRVMvSU5OT1ZVUy9ERVNJR04vU0NSSVBUUy9HSUYvc3BlZWQuZ2lmCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDc1NQppbmRleCBjNDU0MWI5Li4wMDAwMDAwCi0tLSBhL2Zsb3cvcG5yL0VYQU1QTEVTL0lOTk9WVVMvREVTSUdOL1NDUklQVFMvR0lGL3NwZWVkLmdpZgorKysgL2Rldi9udWxsCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL2Zsb3cvcG5yL0VYQU1QTEVTL0lOTk9WVVMvREVTSUdOL1NDUklQVFMvR0lGL3NwZWVkLnBuZyBiL2Zsb3cvcG5yL0VYQU1QTEVTL0lOTk9WVVMvREVTSUdOL1NDUklQVFMvR0lGL3NwZWVkLnBuZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggZjY2MzExNS4uMDAwMDAwMAotLS0gYS9mbG93L3Buci9FWEFNUExFUy9JTk5PVlVTL0RFU0lHTi9TQ1JJUFRTL0dJRi9zcGVlZC5wbmcKKysrIC9kZXYvbnVsbApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9mbG93L3Buci9FWEFNUExFUy9JTk5PVlVTL0RFU0lHTi9TQ1JJUFRTL0dJRi9zdGVwLnBuZyBiL2Zsb3cvcG5yL0VYQU1QTEVTL0lOTk9WVVMvREVTSUdOL1NDUklQVFMvR0lGL3N0ZXAucG5nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDc1NQppbmRleCBiOGQ4N2E5Li4wMDAwMDAwCi0tLSBhL2Zsb3cvcG5yL0VYQU1QTEVTL0lOTk9WVVMvREVTSUdOL1NDUklQVFMvR0lGL3N0ZXAucG5nCisrKyAvZGV2L251bGwKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvZmxvdy9wbnIvRVhBTVBMRVMvSU5OT1ZVUy9ERVNJR04vU0NSSVBUUy9HSUYvc3VtbWFyeS5wbmcgYi9mbG93L3Buci9FWEFNUExFUy9JTk5PVlVTL0RFU0lHTi9TQ1JJUFRTL0dJRi9zdW1tYXJ5LnBuZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDg3MTdmMC4uMDAwMDAwMAotLS0gYS9mbG93L3Buci9FWEFNUExFUy9JTk5PVlVTL0RFU0lHTi9TQ1JJUFRTL0dJRi9zdW1tYXJ5LnBuZworKysgL2Rldi9udWxsCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL2Zsb3cvcG5yL0VYQU1QTEVTL0lOTk9WVVMvREVTSUdOL1NDUklQVFMvR0lGL3RpbWUuZ2lmIGIvZmxvdy9wbnIvRVhBTVBMRVMvSU5OT1ZVUy9ERVNJR04vU0NSSVBUUy9HSUYvdGltZS5naWYKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IGQ4NjkyOWQuLjAwMDAwMDAKLS0tIGEvZmxvdy9wbnIvRVhBTVBMRVMvSU5OT1ZVUy9ERVNJR04vU0NSSVBUUy9HSUYvdGltZS5naWYKKysrIC9kZXYvbnVsbApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9mbG93L3Buci9FWEFNUExFUy9JTk5PVlVTL0RFU0lHTi9TQ1JJUFRTL0dJRi90aW1lLnBuZyBiL2Zsb3cvcG5yL0VYQU1QTEVTL0lOTk9WVVMvREVTSUdOL1NDUklQVFMvR0lGL3RpbWUucG5nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDc1NQppbmRleCA0ZjgxMjk5Li4wMDAwMDAwCi0tLSBhL2Zsb3cvcG5yL0VYQU1QTEVTL0lOTk9WVVMvREVTSUdOL1NDUklQVFMvR0lGL3RpbWUucG5nCisrKyAvZGV2L251bGwKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvZmxvdy9wbnIvRVhBTVBMRVMvSU5OT1ZVUy9ERVNJR04vU0NSSVBUUy9HSUYvdmlvbC5naWYgYi9mbG93L3Buci9FWEFNUExFUy9JTk5PVlVTL0RFU0lHTi9TQ1JJUFRTL0dJRi92aW9sLmdpZgpkZWxldGVkIGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggOWNhYjg0ZC4uMDAwMDAwMAotLS0gYS9mbG93L3Buci9FWEFNUExFUy9JTk5PVlVTL0RFU0lHTi9TQ1JJUFRTL0dJRi92aW9sLmdpZgorKysgL2Rldi9udWxsCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL2Zsb3cvcG5yL0VYQU1QTEVTL0lOTk9WVVMvREVTSUdOL1NDUklQVFMvSU5OT1ZVUy9wcm9jcy50Y2wgYi9mbG93L3Buci9FWEFNUExFUy9JTk5PVlVTL0RFU0lHTi9TQ1JJUFRTL0lOTk9WVVMvcHJvY3MudGNsCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAxOWRkNmE0Li4wMDAwMDAwCi0tLSBhL2Zsb3cvcG5yL0VYQU1QTEVTL0lOTk9WVVMvREVTSUdOL1NDUklQVFMvSU5OT1ZVUy9wcm9jcy50Y2wKKysrIC9kZXYvbnVsbApAQCAtMSwyNzg0MyArMCwwIEBACi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0jICAgICAgICAgICAgICAgICAgICAgICBDQURFTkNFIENPUFlSSUdIVCBOT1RJQ0UKLSMgICAgICAgICCpIDIwMDgtMjAxMyBDYWRlbmNlIERlc2lnbiBTeXN0ZW1zLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0jCi0jIFRoaXMgRm91bmRhdGlvbiBGbG93IGlzIHByb3ZpZGVkIGFzIGFuIGV4YW1wbGUgb2YgaG93IHRvIHBlcmZvcm0gc3BlY2lhbGl6ZWQKLSMgdGFza3MuCi0jCi0jIFRoaXMgd29yayBtYXkgbm90IGJlIGNvcGllZCwgcmUtcHVibGlzaGVkLCB1cGxvYWRlZCwgb3IgZGlzdHJpYnV0ZWQgaW4gYW55IHdheSwKLSMgaW4gYW55IG1lZGl1bSwgd2hldGhlciBpbiB3aG9sZSBvciBpbiBwYXJ0LCB3aXRob3V0IHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbgotIyBmcm9tIENhZGVuY2UuIE5vdHdpdGhzdGFuZGluZyBhbnkgcmVzdHJpY3Rpb25zIGhlcmVpbiwgc3ViamVjdCB0byBjb21wbGlhbmNlCi0jIHdpdGggdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mIHRoZSBDYWRlbmNlIHNvZnR3YXJlIGxpY2Vuc2UgYWdyZWVtZW50IHVuZGVyCi0jIHdoaWNoIHRoaXMgbWF0ZXJpYWwgd2FzIHByb3ZpZGVkLCB0aGlzIG1hdGVyaWFsIG1heSBiZSBjb3BpZWQgYW5kIGludGVybmFsbHkKLSMgZGlzdHJpYnV0ZWQgc29sZWx5IGZvciBpbnRlcm5hbCBwdXJwb3NlcyBmb3IgdXNlIHdpdGggQ2FkZW5jZSB0b29scy4KLSMKLSMgVGhpcyB3b3JrIGlzIENhZGVuY2UgaW50ZWxsZWN0dWFsIHByb3BlcnR5IGFuZCBtYXkgdW5kZXIgbm8gY2lyY3Vtc3RhbmNlcyBiZQotIyBnaXZlbiB0byB0aGlyZCBwYXJ0aWVzLCBuZWl0aGVyIGluIG9yaWdpbmFsIG5vciBpbiBtb2RpZmllZCB2ZXJzaW9ucywgd2l0aG91dAotIyBleHBsaWNpdCB3cml0dGVuIHBlcm1pc3Npb24gZnJvbSBDYWRlbmNlLiBUaGUgaW5mb3JtYXRpb24gY29udGFpbmVkIGhlcmVpbiBpcwotIyB0aGUgcHJvcHJpZXRhcnkgYW5kIGNvbmZpZGVudGlhbCBpbmZvcm1hdGlvbiBvZiBDYWRlbmNlIG9yIGl0cyBsaWNlbnNvcnMsIGFuZAotIyBpcyBzdXBwbGllZCBzdWJqZWN0IHRvLCBhbmQgbWF5IGJlIHVzZWQgb25seSBieSBDYWRlbmNlJ3MgY3VycmVudCBjdXN0b21lcnMKLSMgaW4gYWNjb3JkYW5jZSB3aXRoLCBhIHByZXZpb3VzbHkgZXhlY3V0ZWQgbGljZW5zZSBhZ3JlZW1lbnQgYmV0d2VlbiBDYWRlbmNlCi0jIGFuZCBpdHMgY3VzdG9tZXIuCi0jCi0jLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0jIFRISVMgTUFURVJJQUwgSVMgUFJPVklERUQgQlkgQ0FERU5DRSAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVECi0jIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GCi0jIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuCi0jIElOIE5PIEVWRU5UIFNIQUxMIENBREVOQ0UgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTAotIyBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLAotIyBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUICAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IKLSMgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyAgTUFURVJJQUwsIEVWRU4gSUYKLSMgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0KLXBhY2thZ2UgcHJvdmlkZSBmb3VuZGF0aW9uX2Zsb3cgMS4wCi0KLW5hbWVzcGFjZSBldmFsIEZGX05PVlVTOjogewotCi0gICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAjIFByb2NlZHVyZSB0byBzZWVkIGNlcnRhaW4gZmxvdyB2YXJpYWJsZXMgdG8gYSBrbm93biBkZWZhdWx0IHZhbHVlIGFzIHdlbGwKLSAgICMgYXMgZGF0YSB2YXJpYWJsZXMgcmVxdWlyZWQgdG8gc2VlZCB0aGUgZ2VuZXJpYyBjb25maWd1cmF0aW9uIGZpbGUKLSAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLQotCi0gICBwcm9jIHNlZWRfdmFyaWFibGVzIHt7Zm9yY2UgMH19IHsKLQotICAgICAgZ2xvYmFsIHZhcnMKLSAgICAgIGdsb2JhbCByZGFfZGVmYXVsdHMKLSAgICAgIGdsb2JhbCB1ZG0KLSAgICAgIGdsb2JhbCBlbnYKLSAgICAgIGdsb2JhbCBpbmZvcwotICAgICAgZ2xvYmFsIHdhcm5pbmdzCi0gICAgICBnbG9iYWwgZXJyb3JzCi0gICAgICBnbG9iYWwgZmFyZ3MgCi0gICAgICBnbG9iYWwgZGFyZ3MgCi0KLSAgICAgIGlmIHskZm9yY2V9IHsKLSAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhzZWVkKV19IHsKLSAgICAgICAgICAgIHVuc2V0IHZhcnMoc2VlZCkKLSAgICAgICAgIH0KLSAgICAgIH0KLQotICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycyhzZWVkKV19IHsKLQotICAgICAgICAgcHV0cyAiPEZGPiBTZWVkaW5nIHZhcmlhYmxlcyAuLi4iCi0KLSAgICAgICAgIGlmIHshW2luZm8gZXhpc3RzIHZhcnMod2FybmluZ19jb3VudCldfSB7Ci0gICAgICAgICAgICBzZXQgdmFycyh3YXJuaW5nX2NvdW50KSAwCi0gICAgICAgICB9Ci0gICAgICAgICBpZiB7IVtpbmZvIGV4aXN0cyB2YXJzKGVycm9yX2NvdW50KV19IHsKLSAgICAgICAgICAgIHNldCB2YXJzKGVycm9yX2NvdW50KSAwCi0gICAgICAgICB9Ci0gICAgICAgICBpZiB7IVtpbmZvIGV4aXN0cyB2YXJzKGluZm9fY291bnQpXX0gewotICAgICAgICAgICAgc2V0IHZhcnMoaW5mb19jb3VudCkgMAotICAgICAgICAgfQotCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAjIFNldCB2YXJzKHZlcnNpb24pIHRvICIxNy4xLjAiIGlmIG5vdCBkZWZpbmVkCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAgICBpZiB7IVtpbmZvIGV4aXN0cyB2YXJzKHZlcnNpb24pXX0gewotICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyBmYXJncyh2ZXJzaW9uKV19IHsKLSMgICAgICAgICAgICAgICBwdXRzICI8RkY+IElORk86IFZhcmlhYmxlIHZhcnModmVyc2lvbikgbm90IGRlZmluZWQgLSBzZXR0aW5nIHRvICckZmFyZ3ModmVyc2lvbiknIgotICAgICAgICAgICAgICAgc2V0IHZhcnModmVyc2lvbikgJGZhcmdzKHZlcnNpb24pCi0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgc2V0IHZhcnModmVyc2lvbikgJGRhcmdzKHZlcnNpb24pCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBzZXQgdmFycyhmbG93KSBtbW1jCi0gICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgaWYgeyhbbHNlYXJjaCAkRkY6OnZhbGlkX3ZlcnNpb25zICR2YXJzKHZlcnNpb24pXSA8IDApfSB7Ci0gICAgICAgICAgICAgICBzZXQgbXNnICJWZXJzaW9uICckdmFycyh2ZXJzaW9uKScgbm90IHN1cHBvcnRlZCAtIHNldHRpbmcgdG8gJzE3LjEuMCciCi0gICAgICAgICAgICAgICBwdXRzICI8RkY+IFdBUk5JTkc6ICRtc2ciCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgICRtc2dcbiIKLSAgICAgICAgICAgICAgIHNldCB3YXJuaW5ncygkdmFycyh3YXJuaW5nX2NvdW50KSkgJG1zZwotICAgICAgICAgICAgICAgaW5jciB2YXJzKHdhcm5pbmdfY291bnQpCi0gICAgICAgICAgICAgICBzZXQgdmFycyhmbG93KSBtbW1jCi0gICAgICAgICAgICAgICBzZXQgdmFycyh2ZXJzaW9uKSAiMTcuMS4wIgotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIGlmIHtbbGluZGV4IFtzcGxpdCAkdmFycyh2ZXJzaW9uKSAiLiJdICAwXSA+IDEwfSB7Ci0gICAgICAgICAgICAgICAgICBzZXQgdmFycyhmbG93KSBtbW1jCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0KLSAgICAgICAgIGlmIHtbcmVnZXhwICI5LjEiICR2YXJzKHZlcnNpb24pXX0gewotICAgICAgICAgICAgc2V0IHZhcnMoZW5hYmxlX2xkYikgRkFMU0UKLSAgICAgICAgIH0KLQotIyAgICAgICAgIGlmIHtbbGluZGV4IFtzcGxpdCAkdmFycyh2ZXJzaW9uKSAiLiJdICAwXSA+IDE0fSB7Ci0jICAgICAgICAgICAgc2V0IHZhcnMobm92dXMpIHRydWUKLSMgICAgICAgICB9IGVsc2UgewotIyAgICAgICAgICAgIHNldCB2YXJzKG5vdnVzKSBmYWxzZQotIyAgICAgICAgIH0KLQotICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgZmFyZ3Mobm92dXMpXX0gewotICAgICAgICAgICAgIHNldCB2YXJzKG5vdnVzKSAkZmFyZ3Mobm92dXMpCi0gICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICBzZXQgdmFycyhub3Z1cykgJGRhcmdzKG5vdnVzKQotICAgICAgICAgIH0KLQotIyBUb29sIHNob3VsZCBhbHdheXMgYmUgaW5ub3Z1cyBmb3IgMTUueCBhcyBlbmNvdW50ZXIgaXMgZ29pbmcgYXdheQotICAgICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycyhtYWtlX3Rvb2wpXX0gewotICAgICAgICAgICBpZiB7W2xpbmRleCBbc3BsaXQgJHZhcnModmVyc2lvbikgIi4iXSAgMF0gPiAxNH0gewotICAgICAgICAgICAgICBzZXQgdmFycyhtYWtlX3Rvb2wpIGlubm92dXMKLSAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgc2V0IHZhcnMobWFrZV90b29sKSBlbmNvdW50ZXIKLSAgICAgICAgICAgfQotICAgICAgICAgfQotCi0gICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoZW5hYmxlX2xkYildICYmICR2YXJzKGVuYWJsZV9sZGIpfSB7Ci0gICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMocmFuX2NvbXBpbGUpXX0gewotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRl9OT1ZVUzo6cnVuX2NvbXBpbGVdIAotICAgICAgICAgICAgfQotICAgICAgICAgfQotCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAjIFNldCB2YXJzKGZsb3cpIHRvICJtbW1jIiBpZiBub3QgZGVmaW5lZAotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycyhmbG93KV19IHsKLSAgICAgICAgICAgIHB1dHMgIjxGRj4gSU5GTzogVmFyaWFibGUgdmFycyhmbG93KSBub3QgZGVmaW5lZCAtIHNldHRpbmcgdG8gJ21tbWMnIgotICAgICAgICAgICAgc2V0IHZhcnMoZmxvdykgbW1tYwotICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIGlmIHsoW2xzZWFyY2ggW2xpc3QgImRlZmF1bHQiICJwcl9tbW1jIiAibW1tYyJdICR2YXJzKGZsb3cpXSA8IDApfSB7Ci0gICAgICAgICAgICAgICBwdXRzICI8RkY+IFdBUk5JTkc6IEZsb3cgdHlwZSAnJHZhcnMoZmxvdyknIG5vdCBzdXBwb3J0ZWQgLSBzZXR0aW5nIHRvICdtbW1jJyIKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgV0FSTklORzogRmxvdyB0eXBlICckdmFycyhmbG93KScgbm90IHN1cHBvcnRlZCAtIHNldHRpbmcgdG8gJ21tbWMnXG4iCi0gICAgICAgICAgICAgICBzZXQgd2FybmluZ3MoJHZhcnMod2FybmluZ19jb3VudCkpICJGbG93IHR5cGUgJyR2YXJzKGZsb3cpJyBub3Qgc3VwcG9ydGVkIC0gc2V0dGluZyB0byAnbW1tYyciCi0gICAgICAgICAgICAgICBpbmNyIHZhcnMod2FybmluZ19jb3VudCkKLSAgICAgICAgICAgICAgIHNldCB2YXJzKGZsb3cpIG1tbWMKLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0KLQotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgIyBNYWtlIHN1cmUgYWxsIHNjYWxpbmcgZmFjdG9ycyBhcmUgZWl0aGVyIHNldCBvciBhcmUgMS4wIC4uLiBhbHNvCi0gICAgICAjIHN1cHBvcnQgYmFja3dhcmRzIGNvbXBhdGliaWxpdHkgb2Ygb2xkIG5hbWVzCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAgICBzZXQgbWFwKHByZV9yb3V0ZV9yZXNfZmFjdG9yKSBkZWZfcmVzX2ZhY3RvcgotICAgICAgICAgc2V0IG1hcChwcmVfcm91dGVfY2xrX3Jlc19mYWN0b3IpIGRlZl9jbGtfcmVzX2ZhY3RvcgotICAgICAgICAgc2V0IG1hcChwcmVfcm91dGVfY2FwX2ZhY3RvcikgZGVmX2NhcF9mYWN0b3IKLSAgICAgICAgIHNldCBtYXAocHJlX3JvdXRlX2Nsa19jYXBfZmFjdG9yKSBkZWZfY2xrX2NhcF9mYWN0b3IKLSAgICAgICAgIHNldCBtYXAocG9zdF9yb3V0ZV9yZXNfZmFjdG9yKSBkZXRfcmVzX2ZhY3RvcgotICAgICAgICAgc2V0IG1hcChwb3N0X3JvdXRlX2Nsa19yZXNfZmFjdG9yKSBkZXRfY2xrX3Jlc19mYWN0b3IKLSAgICAgICAgIHNldCBtYXAocG9zdF9yb3V0ZV9jYXBfZmFjdG9yKSBkZXRfY2FwX2ZhY3RvcgotICAgICAgICAgc2V0IG1hcChwb3N0X3JvdXRlX2Nsa19jYXBfZmFjdG9yKSBkZXRfY2xrX2NhcF9mYWN0b3IKLSAgICAgICAgIHNldCBtYXAocG9zdF9yb3V0ZV94Y2FwX2ZhY3RvcikgeGNhcF9mYWN0b3IKLQotICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKHZpZXdfZGVmaW5pdGlvbl90Y2wpXSAmJiAhW2luZm8gZXhpc3RzIHZhcnMocGFyc2VkX3ZpZXdfZGVmaW5pdGlvbl90Y2wpXX0gewotICAgICAgICAgICAgaWYgeyFbZmlsZSBleGlzdHMgJHZhcnModmlld19kZWZpbml0aW9uX3RjbCldfSB7Ci0gICAgICAgICAgICAgICBwdXRzICI8RkY+IEVSUk9SOiBWaWV3IGRlZmluaXRpb24gZmlsZSAkdmFycyh2aWV3X2RlZmluaXRpb25fdGNsKSBkb2VzIG5vdCBleGlzdCAuLi4gY2Fubm90IGNvbnRpbnVlIgotICAgICAgICAgICAgICAgZXhpdAotICAgICAgICAgICAgfQotICAgICAgICAgICAgc291cmNlICR2YXJzKHNjcmlwdF9wYXRoKS9FVEMvSU5OT1ZVUy9vdmVybGF5LnRjbAotICAgICAgICAgICAgcHV0cyAiPEZGPiBQYXJzaW5nIHVzZXIgdmlldyBkZWZpbml0aW9uIGZpbGUgLi4uIgotICAgICAgICAgICAgc2V0IHJjIFtjYXRjaCB7c291cmNlICR2YXJzKHZpZXdfZGVmaW5pdGlvbl90Y2wpfV0KLSMgICAgICAgICAgICBwdXRzICItLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIgotICAgICAgICAgICAgaWYgeyR2YXJzKG5vdnVzKX0gewotICAgICAgICAgICAgICAgZm9yZWFjaCB2YXIgImxpYnJhcnlfc2V0cyByY19jb3JuZXJzIGRlbGF5X2Nvcm5lcnMgdGltaW5nX2NvbmRpdGlvbnMgc2V0dXBfYW5hbHlzaXNfdmlld3MgaG9sZF9hbmFseXNpc192aWV3cyBwb3dlcl9kb21haW5zIiB7Ci0gICAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkdmFyKV19IHsKLSAgICAgICAgICAgICAgICAgICBzZXQgaW5mb3MoJHZhcnMoaW5mb19jb3VudCkpICJWYXJpYWJsZSB2YXJzKCR2YXIpIGhhcyBiZWVuIHNldCB0byBcIiR2YXJzKCR2YXIpXCIiCi0gICAgICAgICAgICAgICAgICAgaW5jciB2YXJzKGluZm9fY291bnQpCi0gICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgZm9yZWFjaCB2YXIgImxpYnJhcnlfc2V0cyByY19jb3JuZXJzIGRlbGF5X2Nvcm5lcnMgc2V0dXBfYW5hbHlzaXNfdmlld3MgaG9sZF9hbmFseXNpc192aWV3cyBwb3dlcl9kb21haW5zIiB7Ci0gICAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkdmFyKV19IHsKLSAgICAgICAgICAgICAgICAgICBzZXQgaW5mb3MoJHZhcnMoaW5mb19jb3VudCkpICJWYXJpYWJsZSB2YXJzKCR2YXIpIGhhcyBiZWVuIHNldCB0byBcIiR2YXJzKCR2YXIpXCIiCi0gICAgICAgICAgICAgICAgICAgaW5jciB2YXJzKGluZm9fY291bnQpCi0gICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICB9Ci0jICAgICAgICAgICAgcHV0cyAkcmMKLSMgICAgICAgICAgICBwdXRzICItLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIgotICAgICAgICAgICAgc2V0IHZhcnMocGFyc2VkX3ZpZXdfZGVmaW5pdGlvbl90Y2wpIHRydWUKLSAgICAgICAgIH0KLQotIyAgICAgICAgIGlmIHshW2luZm8gZXhpc3RzIHZhcnModmlld19kZWZpbml0aW9uX3RjbCldfSB7Ci0KLSAgICAgICAgICAgIGZvcmVhY2ggcmNfY29ybmVyICR2YXJzKHJjX2Nvcm5lcnMpIHsKLSAgICAgICAgICAgICAgIGZvcmVhY2ggb3B0aW9uICJwcmVfcm91dGVfcmVzX2ZhY3RvciBwcmVfcm91dGVfY2xrX3Jlc19mYWN0b3IgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc3Rfcm91dGVfcmVzX2ZhY3RvciBwb3N0X3JvdXRlX2Nsa19yZXNfZmFjdG9yIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmVfcm91dGVfY2FwX2ZhY3RvciBwcmVfcm91dGVfY2xrX2NhcF9mYWN0b3IgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc3Rfcm91dGVfY2FwX2ZhY3RvciBwb3N0X3JvdXRlX2Nsa19jYXBfZmFjdG9yIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3N0X3JvdXRlX3hjYXBfZmFjdG9yIiB7Ci0gICAgICAgICAgICAgICAgICBpZiB7IVtpbmZvIGV4aXN0cyB2YXJzKCRyY19jb3JuZXIsJG9wdGlvbildICYmIFtpbmZvIGV4aXN0cyB2YXJzKCRyY19jb3JuZXIsJG1hcCgkb3B0aW9uKSldfSB7Ci0gICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIElORk86IFZhcmlhYmxlICRtYXAoJG9wdGlvbikgaGFzIGJlZW4gY2hhbmdlZCB0byAkb3B0aW9uIC4uLiBwbGVhc2UgdXBkYXRlXG4iCi0gICAgICAgICAgICAgICAgICAgICBzZXQgaW5mb3MoJHZhcnMoaW5mb19jb3VudCkpICJWYXJpYWJsZSAkbWFwKCRvcHRpb24pIGhhcyBiZWVuIGNoYW5nZWQgdG8gJG9wdGlvbiAuLi4gcGxlYXNlIHVwZGF0ZSIKLSAgICAgICAgICAgICAgICAgICAgIGluY3IgdmFycyhpbmZvX2NvdW50KQotICAgICAgICAgICAgICAgICAgICAgc2V0IHZhcnMoJHJjX2Nvcm5lciwkb3B0aW9uKSAkdmFycygkcmNfY29ybmVyLCRtYXAoJG9wdGlvbikpCi0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAKLSAgICAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICAgICMgVGhlIGZvbGxvd2luZyB3aWxsIGJlIHVzZWQgdG8gc2VlZCB0aGUgY29uZmlnIGZpbGUKLSAgICAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgIAotICAgICAgICAgICAgaWYgeyFbRkY6OmlzX2xwX2Zsb3ddfSB7Ci0KLSAgICAgICAgICAgICAgIHNldCBtYXhfbGlicyBbbGlzdF0KLSAgICAgICAgICAgICAgIHNldCBtaW5fbGlicyBbbGlzdF0KLSAgIAotICAgICAgICAgICAgICAgc2V0IGNvdW50IDAKLSAgIAotICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCR2YXJzKCR2YXJzKGRlZmF1bHRfc2V0dXBfdmlldyksZGVsYXlfY29ybmVyKSxsaWJyYXJ5X3NldCldfSB7Ci0gICAgICAgICAgICAgICAgICBmb3JlYWNoIGxpYiAkdmFycygkdmFycygkdmFycygkdmFycyhkZWZhdWx0X3NldHVwX3ZpZXcpLGRlbGF5X2Nvcm5lciksbGlicmFyeV9zZXQpLHRpbWluZykgewotICAgICAgICAgICAgICAgICAgICAgaWYge1tsc2VhcmNoICRtYXhfbGlicyAkbGliXSA9PSAtMX0gewotICAgICAgICAgICAgICAgICAgICAgICAgbGFwcGVuZCBtYXhfbGlicyAkbGliCi0gICAgICAgICAgICAgICAgICAgICAgICBpbmNyIGNvdW50Ci0gICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCR2YXJzKCR2YXJzKGRlZmF1bHRfc2V0dXBfdmlldyksZGVsYXlfY29ybmVyKSxsYXRlX2xpYnJhcnlfc2V0KV19IHsKLSAgICAgICAgICAgICAgICAgICAgIGZvcmVhY2ggbGliICR2YXJzKCR2YXJzKCR2YXJzKCR2YXJzKGRlZmF1bHRfc2V0dXBfdmlldyksZGVsYXlfY29ybmVyKSxsYXRlX2xpYnJhcnlfc2V0KSx0aW1pbmcpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIHtbbHNlYXJjaCAkbWF4X2xpYnMgJGxpYl0gPT0gLTF9IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhcHBlbmQgbWF4X2xpYnMgJGxpYgotICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5jciBjb3VudAotICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgfQotICAgCi0gICAgICAgICAgICAgICBpZiB7IVtpbmZvIGV4aXN0cyB2YXJzKHRpbWVsaWIsbWF4KV19IHsKLSAgICAgICAgICAgICAgICAgIHNldCB2YXJzKHRpbWVsaWIsbWF4KSAkbWF4X2xpYnMKLSAgICAgICAgICAgICAgIH0KLSAgIAotICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCR2YXJzKCR2YXJzKGRlZmF1bHRfaG9sZF92aWV3KSxkZWxheV9jb3JuZXIpLGxpYnJhcnlfc2V0KV19IHsKLSAgICAgICAgICAgICAgICAgIGZvcmVhY2ggbGliICR2YXJzKCR2YXJzKCR2YXJzKCR2YXJzKGRlZmF1bHRfaG9sZF92aWV3KSxkZWxheV9jb3JuZXIpLGxpYnJhcnlfc2V0KSx0aW1pbmcpIHsKLSAgICAgICAgICAgICAgICAgICAgIGlmIHtbbHNlYXJjaCAkbWluX2xpYnMgJGxpYl0gPT0gLTF9IHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGxhcHBlbmQgbWluX2xpYnMgJGxpYgotICAgICAgICAgICAgICAgICAgICAgICAgaW5jciBjb3VudAotICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkdmFycygkdmFycyhkZWZhdWx0X2hvbGRfdmlldyksZGVsYXlfY29ybmVyKSxlYXJseV9saWJyYXJ5X3NldCldfSB7Ci0gICAgICAgICAgICAgICAgICAgICBmb3JlYWNoIGxpYiAkdmFycygkdmFycygkdmFycygkdmFycyhkZWZhdWx0X2hvbGRfdmlldyksZGVsYXlfY29ybmVyKSxlYXJseV9saWJyYXJ5X3NldCksdGltaW5nKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiB7W2xzZWFyY2ggJG1pbl9saWJzICRsaWJdID09IC0xfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICBsYXBwZW5kIG1pbl9saWJzICRsaWIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGluY3IgY291bnQKLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIH0KLSAgIAotICAgICAgICAgICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycyh0aW1lbGliLG1pbildfSB7Ci0gICAgICAgICAgICAgICAgICBzZXQgdmFycyh0aW1lbGliLG1pbikgJG1pbl9saWJzCi0gICAgICAgICAgICAgICB9Ci0gICAKLSAgICAgICAgICAgICAgIGlmIHshW2luZm8gZXhpc3RzIHZhcnModGltZWxpYildfSB7Ci0gICAgICAgICAgICAgICAgICBzZXQgdmFycyh0aW1lbGliKSAiIgotICAgICAgICAgICAgICAgfQotICAgCi0gICAgICAgICAgICAgICBzZXQgdmFycyhjZGJfZmlsZSkgIiIKLSAgICAgICAgICAgICAgIHNldCB2YXJzKGNkYl9maWxlLG1pbikgIiIKLSAgICAgICAgICAgICAgIHNldCB2YXJzKGNkYl9maWxlLG1heCkgIiIKLSAgIAotICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCR2YXJzKCR2YXJzKGRlZmF1bHRfc2V0dXBfdmlldyksZGVsYXlfY29ybmVyKSxsaWJyYXJ5X3NldCldfSB7Ci0gICAgICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJHZhcnMoJHZhcnMoJHZhcnMoZGVmYXVsdF9zZXR1cF92aWV3KSxkZWxheV9jb3JuZXIpLGxpYnJhcnlfc2V0KSxzaSldfSB7Ci0gICAgICAgICAgICAgICAgICAgICBzZXQgdmFycyhjZGJfZmlsZSxtYXgpICR2YXJzKCR2YXJzKCR2YXJzKCR2YXJzKGRlZmF1bHRfc2V0dXBfdmlldyksZGVsYXlfY29ybmVyKSxsaWJyYXJ5X3NldCksc2kpCi0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICB9IGVsc2VpZiB7W2luZm8gZXhpc3RzIHZhcnMoJHZhcnMoJHZhcnMoZGVmYXVsdF9zZXR1cF92aWV3KSxkZWxheV9jb3JuZXIpLGxhdGVfbGlicmFyeV9zZXQpXX0gewotICAgICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyBhcnMoJHZhcnMoJHZhcnMoJHZhcnMoZGVmYXVsdF9zZXR1cF92aWV3KSxkZWxheV9jb3JuZXIpLGxhdGVfbGlicmFyeV9zZXQpLHNpKV19IHsKLSAgICAgICAgICAgICAgICAgICAgIHNldCB2YXJzKGNkYl9maWxlLG1heCkgJHZhcnMoJHZhcnMoJHZhcnMoJHZhcnMoZGVmYXVsdF9zZXR1cF92aWV3KSxkZWxheV9jb3JuZXIpLGxhdGVfbGlicmFyeV9zZXQpLHNpKQotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgIHNldCB2YXJzKGNkYl9maWxlLG1heCkgIiIKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkdmFycygkdmFycyhkZWZhdWx0X2hvbGRfdmlldyksZGVsYXlfY29ybmVyKSxsaWJyYXJ5X3NldCldfSB7Ci0gICAgICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJHZhcnMoJHZhcnMoJHZhcnMoZGVmYXVsdF9ob2xkX3ZpZXcpLGRlbGF5X2Nvcm5lciksbGlicmFyeV9zZXQpLHNpKV19IHsKLSAgICAgICAgICAgICAgICAgICAgIHNldCB2YXJzKGNkYl9maWxlLG1pbikgJHZhcnMoJHZhcnMoJHZhcnMoJHZhcnMoZGVmYXVsdF9ob2xkX3ZpZXcpLGRlbGF5X2Nvcm5lciksbGlicmFyeV9zZXQpLHNpKQotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgfSBlbHNlaWYge1tpbmZvIGV4aXN0cyB2YXJzKCR2YXJzKCR2YXJzKGRlZmF1bHRfaG9sZF92aWV3KSxkZWxheV9jb3JuZXIpLGVhcmx5X2xpYnJhcnlfc2V0KV19IHsKLSAgICAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkdmFycygkdmFycygkdmFycyhkZWZhdWx0X2hvbGRfdmlldyksZGVsYXlfY29ybmVyKSxlYXJseV9saWJyYXJ5X3NldCksc2kpXX0gewotICAgICAgICAgICAgICAgICAgICAgc2V0IHZhcnMoY2RiX2ZpbGUsbWluKSAkdmFycygkdmFycygkdmFycygkdmFycyhkZWZhdWx0X2hvbGRfdmlldyksZGVsYXlfY29ybmVyKSxlYXJseV9saWJyYXJ5X3NldCksc2kpCi0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgc2V0IHZhcnMoY2RiX2ZpbGUsbWluKSAiIgotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCR2YXJzKCR2YXJzKGRlZmF1bHRfc2V0dXBfdmlldyksY29uc3RyYWludF9tb2RlKSxwcmVfY3RzX3NkYyldfSB7Ci0gICAgICAgICAgICAgICAgICBpZiB7JHZhcnMoZmxvdykgIT0gIm1tbWMifSB7Ci0gICAgICAgICAgICAgICAgICAgICBzZXQgdmFycyh0aW1pbmdjb25fZmlsZSkgJHZhcnMoJHZhcnMoJHZhcnMoZGVmYXVsdF9zZXR1cF92aWV3KSxjb25zdHJhaW50X21vZGUpLHByZV9jdHNfc2RjKQotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgc2V0IHZhcnMocHJlX2N0c19zZGMpICR2YXJzKCR2YXJzKCR2YXJzKGRlZmF1bHRfc2V0dXBfdmlldyksY29uc3RyYWludF9tb2RlKSxwcmVfY3RzX3NkYykKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkdmFycygkdmFycyhkZWZhdWx0X3NldHVwX3ZpZXcpLGNvbnN0cmFpbnRfbW9kZSkscHJlX2N0c19pbG1fc2RjKV19IHsKLSAgICAgICAgICAgICAgICAgIGlmIHskdmFycyhmbG93KSAhPSAibW1tYyJ9IHsKLSAgICAgICAgICAgICAgICAgICAgIHNldCB2YXJzKHRpbWluZ2Nvbl9maWxlLGZ1bGwpICR2YXJzKCR2YXJzKCR2YXJzKGRlZmF1bHRfc2V0dXBfdmlldyksY29uc3RyYWludF9tb2RlKSxwcmVfY3RzX2lsbV9zZGMpCi0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJHZhcnMoJHZhcnMoZGVmYXVsdF9zZXR1cF92aWV3KSxjb25zdHJhaW50X21vZGUpLGluY3JfY3RzX3NkYyldfSB7Ci0gICAgICAgICAgICAgICAgICBzZXQgdmFycyhpbmNyX2N0c19zZGMpICR2YXJzKCR2YXJzKCR2YXJzKGRlZmF1bHRfc2V0dXBfdmlldyksY29uc3RyYWludF9tb2RlKSxpbmNyX2N0c19zZGMpCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJHZhcnMoJHZhcnMoZGVmYXVsdF9zZXR1cF92aWV3KSxjb25zdHJhaW50X21vZGUpLHBvc3RfY3RzX3NkYyldfSB7Ci0gICAgICAgICAgICAgICAgICBzZXQgdmFycyhwb3N0X2N0c19zZGMpICR2YXJzKCR2YXJzKCR2YXJzKGRlZmF1bHRfc2V0dXBfdmlldyksY29uc3RyYWludF9tb2RlKSxwb3N0X2N0c19zZGMpCi0gICAgICAgICAgICAgICB9Ci0gICAKLSAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkdmFycygkdmFycygkdmFycyhkZWZhdWx0X2hvbGRfdmlldyksZGVsYXlfY29ybmVyKSxyY19jb3JuZXIpLGNhcF90YWJsZSldICYmXAotICAgICAgICAgICAgICAgICAgIFtpbmZvIGV4aXN0cyB2YXJzKCR2YXJzKCR2YXJzKCR2YXJzKGRlZmF1bHRfc2V0dXBfdmlldyksZGVsYXlfY29ybmVyKSxyY19jb3JuZXIpLGNhcF90YWJsZSldfSB7Ci0gICAgICAgICAgICAgICAgICBzZXQgdmFycyhjYXB0YmxfZmlsZSkgW2NvbmNhdCBcCi0gICAgICAgICAgICAgICAgICAgICAgICItYmVzdCIgJHZhcnMoJHZhcnMoJHZhcnMoJHZhcnMoZGVmYXVsdF9ob2xkX3ZpZXcpLGRlbGF5X2Nvcm5lcikscmNfY29ybmVyKSxjYXBfdGFibGUpIFwKLSAgICAgICAgICAgICAgICAgICAgICAgIi13b3JzdCIgJHZhcnMoJHZhcnMoJHZhcnMoJHZhcnMoZGVmYXVsdF9zZXR1cF92aWV3KSxkZWxheV9jb3JuZXIpLHJjX2Nvcm5lciksY2FwX3RhYmxlKSBcCi0gICAgICAgICAgICAgICAgICAgICAgXQotICAgICAgICAgICAgICAgICAgc2V0IHZhcnMod2NfY2FwX3RhYmxlKSAkdmFycygkdmFycygkdmFycygkdmFycyhkZWZhdWx0X3NldHVwX3ZpZXcpLGRlbGF5X2Nvcm5lcikscmNfY29ybmVyKSxjYXBfdGFibGUpCi0gICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCR2YXJzKCR2YXJzKCR2YXJzKGRlZmF1bHRfc2V0dXBfdmlldyksZGVsYXlfY29ybmVyKSxyY19jb3JuZXIpLGNhcF90YWJsZSldfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgc2V0IHZhcnMoY2FwdGJsX2ZpbGUpIFtjb25jYXQgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAiLWJlc3QiICR2YXJzKCR2YXJzKCR2YXJzKCR2YXJzKGRlZmF1bHRfc2V0dXBfdmlldyksZGVsYXlfY29ybmVyKSxyY19jb3JuZXIpLGNhcF90YWJsZSkgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAiLXdvcnN0IiAkdmFycygkdmFycygkdmFycygkdmFycyhkZWZhdWx0X3NldHVwX3ZpZXcpLGRlbGF5X2Nvcm5lcikscmNfY29ybmVyKSxjYXBfdGFibGUpIFwKLSAgICAgICAgICAgICAgICAgICAgICBdCi0gICAgICAgICAgICAgICAgICAgICAgc2V0IHZhcnMod2NfY2FwX3RhYmxlKSAkdmFycygkdmFycygkdmFycygkdmFycyhkZWZhdWx0X3NldHVwX3ZpZXcpLGRlbGF5X2Nvcm5lcikscmNfY29ybmVyKSxjYXBfdGFibGUpCi0gICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgc2V0IHZhcnMoY2FwdGJsX2ZpbGUpICIiCi0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgc2V0IHZhcnModGltZWxpYikgIiIKLSAgICAgICAgICAgICAgIHNldCB2YXJzKGNkYl9maWxlKSAiIgotICAgICAgICAgICAgICAgc2V0IHZhcnModGltZWxpYixtYXgpICIiCi0gICAgICAgICAgICAgICBzZXQgdmFycyhjZGJfZmlsZSxtYXgpICIiCi0gICAgICAgICAgICAgICBzZXQgdmFycyh0aW1lbGliLG1pbikgIiIKLSAgICAgICAgICAgICAgIHNldCB2YXJzKGNkYl9maWxlLG1pbikgIiIKLSAgICAgICAgICAgICAgIHNldCBmb3VuZF9tYXggMCAKLSAgICAgICAgICAgICAgIHNldCBmb3VuZF9taW4gMCAKLSAgIAotICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKHNldHVwX2FuYWx5c2lzX3ZpZXdzKV0gJiYgW2luZm8gZXhpc3RzIHZhcnMoaG9sZF9hbmFseXNpc192aWV3cyldfSB7Ci0gICAgICAgICAgICAgICAgICBmb3JlYWNoIHZpZXcgJHZhcnMoc2V0dXBfYW5hbHlzaXNfdmlld3MpIHsKLSAgICAgICAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkdmFycygkdmlldyxkZWxheV9jb3JuZXIpLGxpYnJhcnlfc2V0KV19IHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkdmFycygkdmFycygkdmlldyxkZWxheV9jb3JuZXIpLGxpYnJhcnlfc2V0KSx0aW1pbmcpXX0gewotICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yZWFjaCBmaWxlICR2YXJzKCR2YXJzKCR2YXJzKCR2aWV3LGRlbGF5X2Nvcm5lciksbGlicmFyeV9zZXQpLHRpbWluZykgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYge1tsc2VhcmNoICR2YXJzKHRpbWVsaWIsbWF4KSAkZmlsZV0gPT0gLTF9IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhcHBlbmQgdmFycyh0aW1lbGliLG1heCkgJGZpbGUKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldCBmb3VuZF9tYXggMQotICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1dHMgIjxGRj4gV0FSTklORzogVmFyaWFibGUgdmFycygkdmFycygkdmFycygkdmlldyxkZWxheV9jb3JuZXIpLGxpYnJhcnlfc2V0KSx0aW1pbmcpIG5vdCBkZWZpbmVkIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0IHdhcm5pbmdzKCR2YXJzKHdhcm5pbmdfY291bnQpKSAiVmFyaWFibGUgdmFycygkdmFycygkdmFycygkdmlldyxkZWxheV9jb3JuZXIpLGxpYnJhcnlfc2V0KSx0aW1pbmcpIG5vdCBkZWZpbmVkIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5jciB2YXJzKHdhcm5pbmdfY291bnQpCi0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycygkdmFycygkdmlldyxkZWxheV9jb3JuZXIpLGVhcmx5X2xpYnJhcnlfc2V0KV19IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdXRzICI8RkY+IFdBUk5JTkc6IFZhcmlhYmxlIHZhcnMoJHZhcnMoJHZpZXcsZGVsYXlfY29ybmVyKSxsaWJyYXJ5X3NldCkgbm90IGRlZmluZWQiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0IHdhcm5pbmdzKCR2YXJzKHdhcm5pbmdfY291bnQpKSAiVmFyaWFibGUgdmFycygkdmFycygkdmlldyxkZWxheV9jb3JuZXIpLGxpYnJhcnlfc2V0KSBub3QgZGVmaW5lZCIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmNyIHZhcnMod2FybmluZ19jb3VudCkKLSAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgZm9yZWFjaCB2aWV3ICR2YXJzKGhvbGRfYW5hbHlzaXNfdmlld3MpIHsKLSAgICAgICAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkdmFycygkdmlldyxkZWxheV9jb3JuZXIpLGxpYnJhcnlfc2V0KV19IHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkdmFycygkdmFycygkdmlldyxkZWxheV9jb3JuZXIpLGxpYnJhcnlfc2V0KSx0aW1pbmcpXX0gewotICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yZWFjaCBmaWxlICR2YXJzKCR2YXJzKCR2YXJzKCR2aWV3LGRlbGF5X2Nvcm5lciksbGlicmFyeV9zZXQpLHRpbWluZykgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYge1tsc2VhcmNoICR2YXJzKHRpbWVsaWIsbWluKSAkZmlsZV0gPT0gLTF9IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhcHBlbmQgdmFycyh0aW1lbGliLG1pbikgJGZpbGUKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldCBmb3VuZF9taW4gMQotICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1dHMgIjxGRj4gV0FSTklORzogdmFycygkdmFycygkdmFycygkdmlldyxkZWxheV9jb3JuZXIpLGxpYnJhcnlfc2V0KSx0aW1pbmcpIG5vdCBkZWZpbmVkIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0IHdhcm5pbmdzKCR2YXJzKHdhcm5pbmdfY291bnQpKSAiVmFyaWFibGUgdmFycygkdmFycygkdmFycygkdmlldyxkZWxheV9jb3JuZXIpLGxpYnJhcnlfc2V0KSx0aW1pbmcpIG5vdCBkZWZpbmVkIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5jciB2YXJzKHdhcm5pbmdfY291bnQpCi0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycygkdmFycygkdmlldyxkZWxheV9jb3JuZXIpLGVhcmx5X2xpYnJhcnlfc2V0KV19IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1dHMgIjxGRj4gV0FSTklORzogdmFycygkdmFycygkdmlldyxkZWxheV9jb3JuZXIpLGVhcmx5X2xpYnJhcnlfc2V0KSBub3QgZGVmaW5lZCIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldCB3YXJuaW5ncygkdmFycyh3YXJuaW5nX2NvdW50KSkgIlZhcmlhYmxlIHZhcnMoJHZhcnMoJHZpZXcsZGVsYXlfY29ybmVyKSxlYXJseV9saWJyYXJ5X3NldCkgbm90IGRlZmluZWQiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBpbmNyIHZhcnMod2FybmluZ19jb3VudCkKLSAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMocG93ZXJfYW5hbHlzaXNfdmlldyldICYmICgkdmFycyhwb3dlcl9hbmFseXNpc192aWV3KSAhPSAiIil9IHsKLSAgICAgICAgICAgICAgICAgICAgIHNldCB2aWV3ICR2YXJzKHBvd2VyX2FuYWx5c2lzX3ZpZXcpCi0gICAgICAgICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJHZhcnMoJHZpZXcsZGVsYXlfY29ybmVyKSxsaWJyYXJ5X3NldCldfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiB7IVtpbmZvIGV4aXN0cyB2YXJzKCR2YXJzKCR2YXJzKCR2aWV3LGRlbGF5X2Nvcm5lciksbGlicmFyeV9zZXQpLHRpbWluZyldfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICBwdXRzICI8RkY+IFdBUk5JTkc6IHZhcnMoJHZhcnMoJHZhcnMoJHZpZXcsZGVsYXlfY29ybmVyKSxsaWJyYXJ5X3NldCksdGltaW5nKSBub3QgZGVmaW5lZCIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldCB3YXJuaW5ncygkdmFycyh3YXJuaW5nX2NvdW50KSkgIlZhcmlhYmxlIHZhcnMoJHZhcnMoJHZhcnMoJHZpZXcsZGVsYXlfY29ybmVyKSxsaWJyYXJ5X3NldCksdGltaW5nKSBub3QgZGVmaW5lZCIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGluY3IgdmFycyh3YXJuaW5nX2NvdW50KQotICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIHshW2luZm8gZXhpc3RzIHZhcnMoJHZhcnMoJHZpZXcsZGVsYXlfY29ybmVyKSxlYXJseV9saWJyYXJ5X3NldCldfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICBwdXRzICI8RkY+IFdBUk5JTkc6IHZhcnMoJHZhcnMoJHZpZXcsZGVsYXlfY29ybmVyKSxlYXJseV9saWJyYXJ5X3NldCkgbm90IGRlZmluZWQiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBzZXQgd2FybmluZ3MoJHZhcnMod2FybmluZ19jb3VudCkpICJWYXJpYWJsZSB2YXJzKCR2YXJzKCR2aWV3LGRlbGF5X2Nvcm5lciksZWFybHlfbGlicmFyeV9zZXQpIG5vdCBkZWZpbmVkIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5jciB2YXJzKHdhcm5pbmdfY291bnQpCi0gICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgfQotICAgCi0gICAgICAgICAgICAgICBpZiB7ISRmb3VuZF9taW4gfHwgISRmb3VuZF9tYXh9IHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgV0FSTklORzogRWl0aGVyIHNldHVwIG9yIGhvbGQgYW5hbHlzaXMgdmlld3MgaW5hZGVxdWF0ZWx5IGRlZmluZWQiCi0gICAgICAgICAgICAgICAgICBzZXQgd2FybmluZ3MoJHZhcnMod2FybmluZ19jb3VudCkpICJFaXRoZXIgc2V0dXAgb3IgaG9sZCBhbmFseXNpcyB2aWV3cyBpbmFkZXF1YXRlbHkgZGVmaW5lZCIKLSAgICAgICAgICAgICAgICAgIGluY3IgdmFycyh3YXJuaW5nX2NvdW50KQotICAgICAgICAgICAgICAgICAgc2V0IHZhcnModGltZWxpYixtaW4pICIiCi0gICAgICAgICAgICAgICAgICBzZXQgdmFycyh0aW1lbGliLG1heCkgIiIKLSAgICAgICAgICAgICAgICAgIGZvcmVhY2ggbGlicmFyeV9zZXQgJHZhcnMobGlicmFyeV9zZXRzKSB7Ci0gICAgICAgICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJGxpYnJhcnlfc2V0LHRpbWluZyldfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBzZXQgdmFycyh0aW1lbGliKSBbY29uY2F0ICR2YXJzKHRpbWVsaWIpICR2YXJzKCRsaWJyYXJ5X3NldCx0aW1pbmcpXQotICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCRsaWJyYXJ5X3NldCxzaSldfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBzZXQgdmFycyhjZGJfZmlsZSkgW2NvbmNhdCAkdmFycyhjZGJfZmlsZSkgJHZhcnMoJGxpYnJhcnlfc2V0LHNpKV0KLSAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIHNldCB2YXJzKGNhcHRibF9maWxlKSAiIgotICAgICAgICAgICAgICAgc2V0IHZhcnModGltaW5nY29uX2ZpbGUpICIiCi0gICAgICAjICAgICAgICAgICBzZXQgdmFycyhwcmVfcm91dGVfcmVzX2ZhY3RvcikgMS4wCi0gICAgICAjICAgICAgICAgICBzZXQgdmFycyhwb3N0X3JvdXRlX3Jlc19mYWN0b3IpIDEuMAotICAgICAgIyAgICAgICAgICAgc2V0IHZhcnMocHJlX3JvdXRlX2NhcF9mYWN0b3IpIDEuMAotICAgICAgIyAgICAgICAgICAgc2V0IHZhcnMocG9zdF9yb3V0ZV9jYXBfZmFjdG9yKSAxLjAKLSAgICAgICMgICAgICAgICAgIHNldCB2YXJzKHByZV9yb3V0ZV9jbGtfcmVzX2ZhY3RvcikgMS4wCi0gICAgICAjICAgICAgICAgICBzZXQgdmFycyhwb3N0X3JvdXRlX2Nsa19yZXNfZmFjdG9yKSAxLjAKLSAgICAgICMgICAgICAgICAgIHNldCB2YXJzKHByZV9yb3V0ZV9jbGtfY2FwX2ZhY3RvcikgMS4wCi0gICAgICAjICAgICAgICAgICBzZXQgdmFycyhwb3N0X3JvdXRlX2Nsa19jYXBfZmFjdG9yKSAxLjAKLSAgICAgICMgICAgICAgICAgIHNldCB2YXJzKHBvc3Rfcm91dGVfeGNhcF9mYWN0b3IpIDEuMAotICAgICAgIyAgICAgICAgIHNldCB2YXJzKHF4dGVjaF9maWxlKSAiIgotICAgICAgIyAgICAgICAgIHNldCB2YXJzKHF4Y29uZl9maWxlKSAiIgotICAgICAgIyAgICAgICAgIHNldCB2YXJzKHF4bGliX2ZpbGUpICIiCi0gICAgICAjICAgICAgICAgc2V0IHZhcnMocXhsYXllcm1hcF9maWxlKSAiIgotICAgICAgICAgICAgfQotICAgCi0gICAgICAgICAgICBzZXQgbWFwKHF4X3RlY2hfZmlsZSkgcXh0ZWNoX2ZpbGUKLSAgICAgICAgICAgIHNldCBtYXAocXhfY29uZl9maWxlKSBxeGNvbmZfZmlsZQotICAgICAgICAgICAgc2V0IG1hcChxeF9saWJfZmlsZSkgcXhsaWJfZmlsZQotICAgCi0gICAgICAgICAgICBmb3JlYWNoIG9wdGlvbiAicXhfdGVjaF9maWxlIHF4X2NvbmZfZmlsZSBxeF9saWJfZmlsZSIgewotICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCR2YXJzKCR2YXJzKCR2YXJzKGRlZmF1bHRfc2V0dXBfdmlldyksZGVsYXlfY29ybmVyKSxyY19jb3JuZXIpLCRvcHRpb24pXX0gewotICAgICAgICAgICAgICAgICAgc2V0IHZhcnMoJG1hcCgkb3B0aW9uKSkgJHZhcnMoJHZhcnMoJHZhcnMoJHZhcnMoZGVmYXVsdF9zZXR1cF92aWV3KSxkZWxheV9jb3JuZXIpLHJjX2Nvcm5lciksJG9wdGlvbikKLSAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICBzZXQgdmFycygkbWFwKCRvcHRpb24pKSAiIgotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycyhxeF9sYXllcm1hcF9maWxlKV19IHsKLSAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhxcmNfbGF5ZXJfbWFwKV19IHsKLSAgICAgICAgICAgICAgICAgIHNldCB2YXJzKHF4bGF5ZXJtYXBfZmlsZSkgJHZhcnMocXJjX2xheWVyX21hcCkKLSAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICBzZXQgdmFycyhxeGxheWVybWFwX2ZpbGUpICIiCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgc2V0IHZhcnMocXhsYXllcm1hcF9maWxlKSAkdmFycyhxeF9sYXllcm1hcF9maWxlKQotICAgICAgICAgICAgICAgc2V0IHZhcnMocXJjX2xheWVyX21hcCkgJHZhcnMocXhfbGF5ZXJtYXBfZmlsZSkgCi0gICAgICAgICAgICB9Ci0jICAgICAgICAgfQotCi0gICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAjIEJhY2t3YXJkcyBjb21wYXRpYmlsaXR5Ci0gICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMobGVha2FnZV9lZmZvcnQpXSAmJiAhW2luZm8gZXhpc3RzIHZhcnMobGVha2FnZV9wb3dlcl9lZmZvcnQpXX0gewotICAgICAgICAgICAgc2V0IHZhcnMobGVha2FnZV9wb3dlcl9lZmZvcnQpICR2YXJzKGxlYWthZ2VfZWZmb3J0KQotICAgICAgICAgfQotICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGVuYWJsZV9jcHByKV0gJiYgKCgkdmFycyhlbmFibGVfY3BwcikgPT0gMCkgfHwgKCR2YXJzKGVuYWJsZV9jcHByKSA9PSBmYWxzZSkpfSB7Ci0gICAgICAgICAgICBzZXQgdmFycyhlbmFibGVfY3Bwcikgbm9uZQotICAgICAgICAgfQotICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGVuYWJsZV9jcHByKV0gJiYgKCgkdmFycyhlbmFibGVfY3BwcikgPT0gMSkgfHwgKCR2YXJzKGVuYWJsZV9jcHByKSA9PSB0cnVlKSl9IHsKLSAgICAgICAgICAgIHNldCB2YXJzKGVuYWJsZV9jcHByKSBib3RoCi0gICAgICAgICB9Ci0gICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoZGVmX2ZpbGUpXX0gewotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICBXQVJOSU5HOiBWYXJpYWJsZSBkZWZfZmlsZSBoYXMgYmVlbiBjaGFuZ2VkIHRvIGRlZl9maWxlcyAuLi4gcGxlYXNlIHVwZGF0ZVxuIgotICAgICAgICAgICAgc2V0IHdhcm5pbmdzKCR2YXJzKHdhcm5pbmdfY291bnQpKSAiVmFyaWFibGUgZGVmX2ZpbGUgaGFzIGJlZW4gY2hhbmdlZCB0byBkZWZfZmlsZXMgLi4uIHBsZWFzZSB1cGRhdGUiCi0gICAgICAgICAgICBpbmNyIHZhcnMod2FybmluZ19jb3VudCkKLSAgICAgICAgICAgIHNldCB2YXJzKGRlZl9maWxlcykgJHZhcnMoZGVmX2ZpbGUpCi0gICAgICAgICB9Ci0KLSAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICMgU2VlZCB0aGUgcmVzdCBvZiB0aGUgY29uZmlnIHZhcmlhYmxlcyBhbGxvd2luZyB1c2VyIG92ZXJyaWRlcyAuLi4KLSAgICMgRGVmYXVsdCB2YWx1ZXMgZm9yIGFsbCB2YXJpYWJsZXMgYXJlIGluIGRlZmF1bHRzLnRjbAotICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCi0gICAgICAgICBpZiB7IVtpbmZvIGV4aXN0cyB2YXJzKHNjcmlwdF9wYXRoKV19IHsKLSAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhzY3JpcHRfcm9vdCldfSB7Ci0gICAgICAgICAgICAgICBzZXQgdmFycyhzY3JpcHRfcGF0aCkgJHZhcnMoc2NyaXB0X3Jvb3QpCi0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgcHV0cyAiPEZGPiBFUlJPUjogVmFyaWFibGUgdmFycyhzY3JpcHRfcm9vdCkgbm90IGRlZmluZWQiCi0gICAgICAgICAgICAgICBleGl0ICAxCi0gICAgICAgICAgICB9Ci0gICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycyhzY3JpcHRfcm9vdCldfSB7Ci0gICAgICAgICAgICAgICBzZXQgdmFycyhzY3JpcHRfcm9vdCkgJHZhcnMoc2NyaXB0X3BhdGgpCi0gICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0gICAgICAgICBpZiB7IVtpbmZvIGV4aXN0cyB2YXJzKHNldHVwX3BhdGgpXX0gewotICAgICAgICAgICAgICAgc2V0IHZhcnMoc2V0dXBfcGF0aCkgIi4iCi0gICAgICAgICB9Ci0gICAgICAgICBpZiB7W2luZm8gY29tbWFuZCBGRkY6OmdldF90b29sXSBuZSAiIiAmJiBbRkZGOjpnZXRfdG9vbF0gZXEgInJjIn0gewotICAgICAgICAgICB0Y2xfc291cmNlICR2YXJzKHNjcmlwdF9wYXRoKS9FVEMvSU5OT1ZVUy9yZGFfZGVmYXVsdHMudGNsCi0gICAgICAgICB9IGVsc2UgewotICAgICAgICAgICBzb3VyY2UgJHZhcnMoc2NyaXB0X3BhdGgpL0VUQy9jb21tb25fZGVmYXVsdHMudGNsCi0gICAgICAgICAgIHNvdXJjZSAkdmFycyhzY3JpcHRfcGF0aCkvRVRDL0lOTk9WVVMvZGVmYXVsdHMudGNsCi0gICAgICAgICAgIHNvdXJjZSAkdmFycyhzY3JpcHRfcGF0aCkvRVRDL0lOTk9WVVMvcmRhX2RlZmF1bHRzLnRjbAotICAgICAgICAgfQotCi0gICAgICAgICBpZiB7JHZhcnMobm92dXMpfSB7Ci0gICAgICAgICAgICBGRl9OT1ZVUzo6ZHVtcF9ub3Z1c19hdHRyaWJ1dGVzCi0gICAgICAgICB9Ci0KLSAgICAgICAgIGZvcmVhY2ggb3B0aW9uIFthcnJheSBuYW1lcyByZGFfZGVmYXVsdHNdIHsKLSAgICAgICAgICAgIGlmIHshW2luZm8gZXhpc3RzIHZhcnMoJG9wdGlvbildfSB7Ci0gICAgICAgICAgICAgICBzZXQgdmFycygkb3B0aW9uKSAkcmRhX2RlZmF1bHRzKCRvcHRpb24pCi0gICAgICAgICAgICB9ICBlbHNlIHsKLSAgICAgICAgICAgICAgIGlmIHskdmFycygkb3B0aW9uKSAhPSAkcmRhX2RlZmF1bHRzKCRvcHRpb24pfSB7Ci0jICAgICAgICAgICAgICAgICAgcHV0cyAiIyA8RkY+IElORk86IFVzZXIgb3ZlcnJpZGUgb2YgJG9wdGlvbiB0byAkdmFycygkb3B0aW9uKSIKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0KLQotICAgICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycyhjcHVzX3Blcl9yZW1vdGVfaG9zdCldICYmIFtpbmZvIGV4aXN0cyB2YXJzKGNwdV9wZXJfcmVtb3RlX2hvc3QpXX0gewotICAgICAgICAgICAgcHV0cyAiPEZGPiBJTkZPOiBTZXR0aW5nICd2YXJzKGNwdXNfcGVyX3JlbW90ZV9ob3N0KScgdG8gJ3ZhcnMoY3B1X3Blcl9yZW1vdGVfaG9zdCknIgotICAgICAgICAgICAgcHV0cyAiPEZGPiBJTkZPOiAgICAgICAgICAgICAgICAgIF4iCi0gICAgICAgICAgICBwdXRzICI8RkY+IElORk86IFBsZWFzZSB1cGRhdGUgeW91ciBzZXR1cCB0byBjcHVzX3Blcl9yZW1vdGUgLi4uIgotICAgICAgICAgICAgc2V0IHZhcnMoY3B1c19wZXJfcmVtb3RlX2hvc3QpICR2YXJzKGNwdV9wZXJfcmVtb3RlX2hvc3QpCi0gICAgICAgICB9Ci0KLSAgICAgICAgIGlmIHshW2luZm8gZXhpc3RzIHZhcnMoZmxleG1vZGVsX2FydF9iYXNlZCldfSB7Ci0gICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoZmxleG1vZGVsX2FzX3B0bildICYmICR2YXJzKGZsZXhtb2RlbF9hc19wdG4pfSB7Ci0gICAgICAgICAgICAgICBzZXQgZmxvd19kZWZhdWx0cyhmbGV4bW9kZWxfYXJ0X2Jhc2VkKSAxCi0gICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0gICAgICAgICBpZiB7IVtpbmZvIGV4aXN0cyB2YXJzKGhpZ2hfdGltaW5nX2VmZm9ydCldfSB7Ci0gICAgICAgICAgICBzZXQgdmFycyhoaWdoX3RpbWluZ19lZmZvcnQpICRmbG93X2RlZmF1bHRzKGhpZ2hfdGltaW5nX2VmZm9ydCkKLSAgICAgICAgIH0KLSAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhjbG9ja19lY28pXSAmJiAoJHZhcnMoY2xvY2tfZWNvKSA9PSAicG9zdGN0cyIpfSB7Ci0gICAgICAgICAgICBzZXQgdmFycyhjbG9ja19lY28pICJwb3N0X2N0cyIKLSAgICAgICAgIH0KLSAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhjbG9ja19lY28pXSAmJiAoJHZhcnMoY2xvY2tfZWNvKSA9PSAicG9zdHJvdXRlIil9IHsKLSAgICAgICAgICAgIHNldCB2YXJzKGNsb2NrX2VjbykgInBvc3Rfcm91dGUiCi0gICAgICAgICB9Ci0gICAgICAgICBpZiB7W3JlZ2V4cCAiOS4xIiAkdmFycyh2ZXJzaW9uKV19IHsgCi0gICAgICAgICAgICBpZiB7JHZhcnMoaGlnaF90aW1pbmdfZWZmb3J0KX0gewotICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGNyaXRpY2FsX3JhbmdlKV0gJiYgKCR2YXJzKGNyaXRpY2FsX3JhbmdlKSAhPSAxLjApfSB7Ci0gICAgICAgICAgICAgICAgICBwdXRzICI8RkY+IEhpZ2ggdGltaW5nIGVmZm9ydCBlbmFibGVkIGJ1dCBjcml0aWNhbF9yYW5nZSBvdmVycmlkZGVuIGJ5IHVzZXIgc2V0dGluZ3MiCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoY2xvY2tfZWNvKV0gJiYgKCR2YXJzKGNsb2NrX2VjbykgIT0gInBvc3RfY3RzIil9IHsKLSAgICAgICAgICAgICAgICAgIHB1dHMgIjxGRj4gSGlnaCB0aW1pbmcgZWZmb3J0IGVuYWJsZWQgYnV0IGNsb2NrX2VjbyBvdmVycmlkZGVuIGJ5IHVzZXIgc2V0dGluZ3MiCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoaW5fcGxhY2Vfb3B0KV0gJiYgISR2YXJzKGluX3BsYWNlX29wdCl9IHsKLSAgICAgICAgICAgICAgICAgIHB1dHMgIjxGRj4gSGlnaCB0aW1pbmcgZWZmb3J0IGVuYWJsZWQgYnV0IGluX3BsYWNlX29wdCBvdmVycmlkZGVuIGJ5IHVzZXIgc2V0dGluZ3MiCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0gICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoY3RzX2VuZ2luZSldICYmIChbc3RyaW5nIHRvbG93ZXIgJHZhcnMoY3RzX2VuZ2luZSldID09ICJjdHMiKX0gewotICAgICAgICAgICAgc2V0IGZsb3dfZGVmYXVsdHModXBkYXRlX2lvX2xhdGVuY3kpIGZhbHNlCi0jICAgICAgICAgICAgc2V0IHZhcnMoY3RzLHVwZGF0ZV90aW1pbmcsc2tpcCkgdHJ1ZQotICAgICAgICAgfQotCi0gICAgICAgICBmb3JlYWNoIG9wdGlvbiBbYXJyYXkgbmFtZXMgZmxvd19kZWZhdWx0c10gewotICAgICAgICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycygkb3B0aW9uKV19IHsKLSAgICAgICAgICAgICAgIHNldCB2YXJzKCRvcHRpb24pICRmbG93X2RlZmF1bHRzKCRvcHRpb24pCi0gICAgICAgICAgICAgICBpZiB7JHZhcnMoaGlnaF90aW1pbmdfZWZmb3J0KSAmJiBbcmVnZXhwICI5LjEiICR2YXJzKHZlcnNpb24pXX0gewotICAgICAgICAgICAgICAgICAgc2V0IHZhcnMoaW5fcGxhY2Vfb3B0KSB0cnVlCi0gICAgICAgICAgICAgICAgICBzZXQgdmFycyhjcml0aWNhbF9yYW5nZSkgMS4wCi0jICAgICAgICAgICAgICAgICAgc2V0IHZhcnModXNlZnVsX3NrZXcpIHRydWUKLSAgICAgICAgICAgICAgICAgIHNldCB2YXJzKGNsb2NrX2VjbykgcG9zdF9jdHMKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBzZXQgdXNlcigkb3B0aW9uKSAkdmFycygkb3B0aW9uKQotICAgICAgICAgICAgfQotICAgICAgICAgfQotCi0jICAgICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdXNlcihjY29wdF9lZmZvcnQpXSAmJiAoJHZhcnMoY3RzX2VuZ2luZSkgPT0gImNjb3B0Iil9IHsKLSMgICAgICAgICAgICBzZXQgdmFycyhjY29wdF9lZmZvcnQpIGxvdwotIyAgICAgICAgIH0KLQotICAgICAgICAgaWYgeyFbaW5mbyBleGlzdHMgZmxvd19kZWZhdWx0cyh0aW1lX2luZm9fZGIpXX0gewotICAgICAgICAgICAgc2V0IGZsb3dfZGVmYXVsdHModGltZV9pbmZvX2RiKSAkZmxvd19kZWZhdWx0cyhycHRfZGlyKS90aW1lX2luZm8uZGIKLSAgICAgICAgIH0KLSAgICAgICAgIGlmIHshW2luZm8gZXhpc3RzIGZsb3dfZGVmYXVsdHModGltZV9pbmZvX2Z1bGxfcnB0KV19IHsKLSAgICAgICAgICAgIHNldCBmbG93X2RlZmF1bHRzKHRpbWVfaW5mb19mdWxsX3JwdCkgJGZsb3dfZGVmYXVsdHMocnB0X2RpcikvdGltZV9pbmZvX2Z1bGwucnB0Ci0gICAgICAgICB9Ci0gICAgICAgICBpZiB7IVtpbmZvIGV4aXN0cyBmbG93X2RlZmF1bHRzKGh0bWxfc3VtbWFyeSldfSB7Ci0gICAgICAgICAgICBzZXQgZmxvd19kZWZhdWx0cyhodG1sX3N1bW1hcnkpICRmbG93X2RlZmF1bHRzKHJwdF9kaXIpL3N1bW1hcnkuaHRtbAotICAgICAgICAgfQotCi0gICAgICAgICBpZiB7IVtpbmZvIGV4aXN0cyB2YXJzKGVuYWJsZV9zaV9hd2FyZSldfSB7Ci0jICAgICAgICAgICAgaWYge1tyZWdzdWIgIm5tIiAkdmFycyhwcm9jZXNzKSAiIl0gPD0gNjV9IHsKLSMgICAgICAgICAgICAgICBzZXQgdmFycyhlbmFibGVfc2lfYXdhcmUpIHRydWUKLSMgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgc2V0IHZhcnMoZW5hYmxlX3NpX2F3YXJlKSBmYWxzZQotIyAgICAgICAgICAgIH0KLSAgICAgICAgIH0KLQotCi0gICAgICAgICBpZiB7IVtpbmZvIGV4aXN0cyB2YXJzKGRic19mb3JtYXQpXX0gewotICAgICAgICAgICAgaWYge1tzdHJpbmcgY29tcGFyZSAtbm9jYXNlICR2YXJzKG5ldGxpc3RfdHlwZSkgInZlcmlsb2ciXT49MH0gewotICAgICAgICAgICAgICAgc2V0IHZhcnMoZGJzX2Zvcm1hdCkgZmUKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBzZXQgdmFycyhkYnNfZm9ybWF0KSBvYQotICAgICAgICAgICAgfQotICAgICAgICAgfQotICAgICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycyhwYXJ0aXRpb25fZGlyKV19IHsgCi0gICAgICAgICAgICBzZXQgdmFycyhwYXJ0aXRpb25fZGlyKSBQQVJUSVRJT04KLSAgICAgICAgIH0KLSAgICAgICAgIGlmIHshW2luZm8gZXhpc3RzIHZhcnMocGFydGl0aW9uX2Rpcl9wYXNzMildfSB7IAotICAgICAgICAgICAgaWYgeyR2YXJzKGVuYWJsZV9mbGV4aWxtKX0gewotICAgICAgICAgICAgICAgc2V0IHZhcnMocGFydGl0aW9uX2Rpcl9wYXNzMikgJHZhcnMocGFydGl0aW9uX2RpcilfUFJFQ1RTCi0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgc2V0IHZhcnMocGFydGl0aW9uX2Rpcl9wYXNzMikgJHZhcnMocGFydGl0aW9uX2RpcilfQ1RTCi0gICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0gICAgICAgICBpZiB7JHZhcnModXNlcl9tb2RlKSA9PSAiaGllciJ9IHsKLSAgICAgICAgICAgIEZGX05PVlVTOjpub3JtYWxpemVfZmlsZXMKLSAgICAgICAgICAgIGlmIHskdmFycyhlbmFibGVfZmxleGlsbSl9IHsKLSMgICAgICAgICAgICAgICBzZXQgdmFycyhjdHMsc3RhcnRpbmdfZGJzKSAiXFtnbG9iICpfcG9zdF9lY28uZW5jXF0iCi0jICAgICAgICAgICAgICAgIyBETE0gaXMgYSB0d28gcGFzcyBmbG93IGJ1dCB1c2VyIGRvZXNuJ3QgbmVlZCB0byBzcGVjaWZ5IGl0Ci0gICAgICAgICAgICAgICBzZXQgdmFycyhoaWVyX2Zsb3dfdHlwZSkgIjJwYXNzIgotIyAgICAgICAgICAgICAgIHNldCB2YXJzKHBsYWNlX29wdF9kZXNpZ24pIGZhbHNlCi0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgaWYgeyR2YXJzKGhpZXJfZmxvd190eXBlKSA9PSAiMnBhc3MifSB7Ci0gICAgICAgICAgICAgICAgICBzZXQgdmFycyhwb3N0Y3RzLHN0YXJ0aW5nX2RicykgLgotICAgICAgICAgICAgICAgfQotIyAgICAgICAgICAgIH0KLSAgICAgICAgIH0KLSAgICAgICAgIGlmIHtbc3RyaW5nIGNvbXBhcmUgLW5vY2FzZSAkdmFycyhkYnNfZm9ybWF0KSAib2EiXT09MH0gewotICAgICAgICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycyhvYV9hYnN0cmFjdF9uYW1lKV19IHsgc2V0IHZhcnMob2FfYWJzdHJhY3RfbmFtZSkgYWJzdHJhY3R9Ci0gICAgICAgICAgICBpZiB7IVtpbmZvIGV4aXN0cyB2YXJzKG9hX2xheW91dF9uYW1lKV19IHsgc2V0IHZhcnMob2FfbGF5b3V0X25hbWUpIGxheW91dH0KLSAgICAgICAgICAgIGlmIHshW2luZm8gZXhpc3RzIHZhcnMob2FfZGVzaWduX2NlbGwpXX0geyBzZXQgdmFycyhvYV9kZXNpZ25fY2VsbCkgJHZhcnMoZGVzaWduKX0KLSAgICAgICAgICAgIGlmIHshW2luZm8gZXhpc3RzIHZhcnMob2FfZGVzaWduX3ZpZXcpXX0geyBzZXQgdmFycyhvYV9kZXNpZ25fdmlldykgIiJ9Ci0gICAgICAgICAgICBpZiB7IVtpbmZvIGV4aXN0cyB2YXJzKG9hX3BhcnRpdGlvbl9saWIpXX0geyBzZXQgdmFycyhvYV9wYXJ0aXRpb25fbGliKSBPQV9QVE5fTElCfQotICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIGlmIHshW2luZm8gZXhpc3RzIHZhcnMob2FfYWJzdHJhY3RfbmFtZSldfSB7IHNldCB2YXJzKG9hX2Fic3RyYWN0X25hbWUpICIifQotICAgICAgICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycyhvYV9sYXlvdXRfbmFtZSldfSB7IHNldCB2YXJzKG9hX2xheW91dF9uYW1lKSAiIn0KLSAgICAgICAgICAgIGlmIHshW2luZm8gZXhpc3RzIHZhcnMob2FfZGVzaWduX2NlbGwpXX0geyBzZXQgdmFycyhvYV9kZXNpZ25fY2VsbCkgIiJ9Ci0gICAgICAgICAgICBpZiB7IVtpbmZvIGV4aXN0cyB2YXJzKG9hX2Rlc2lnbl92aWV3KV19IHsgc2V0IHZhcnMob2FfZGVzaWduX3ZpZXcpICIifQotICAgICAgICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycyhvYV9kZXNpZ25fbGliKV19IHsgc2V0IHZhcnMob2FfZGVzaWduX2xpYikgIiJ9Ci0gICAgICAgICB9Ci0KLSAgICAgICAgIGlmIHsoW3N0cmluZyB0b2xvd2VyICR2YXJzKGZpeF9ob2xkKV0gPT0gInRydWUiKSB8fCAoJHZhcnMoZml4X2hvbGQpID09IDEpfSB7Ci0gICAgICAgICAgICBzZXQgaW5mb3MoJHZhcnMoaW5mb19jb3VudCkpICJDaGFuZ2luZyB2YXJzKGZpeF9ob2xkKSBmcm9tICR2YXJzKGZpeF9ob2xkKSB0byBcIiRmbG93X2RlZmF1bHRzKGZpeF9ob2xkKVwiIgotICAgICAgICAgICAgaW5jciB2YXJzKGluZm9fY291bnQpCi0gICAgICAgICAgICBzZXQgdmFycyhmaXhfaG9sZCkgJGZsb3dfZGVmYXVsdHMoZml4X2hvbGQpCi0gICAgICAgICB9Ci0gICAgICAgICBpZiB7KFtzdHJpbmcgdG9sb3dlciAkdmFycyhlbmFibGVfb2N2KV0gPT0gInRydWUiKSB8fCAoJHZhcnMoZW5hYmxlX29jdikgPT0gMSl9IHsKLSAgICAgICAgICAgIHNldCBpbmZvcygkdmFycyhpbmZvX2NvdW50KSkgIkNoYW5naW5nIHZhcnMoZW5hYmxlX29jdikgZnJvbSBcIiR2YXJzKGVuYWJsZV9vY3YpXCIgdG8gXCJwcmVfcGxhY2VcIiIKLSAgICAgICAgICAgIGluY3IgdmFycyhpbmZvX2NvdW50KQotICAgICAgICAgICAgc2V0IHZhcnMoZW5hYmxlX29jdikgcHJlX3BsYWNlCi0gICAgICAgICB9IGVsc2VpZiB7KCR2YXJzKGVuYWJsZV9vY3YpID09ICJub25lIikgfHwgKCR2YXJzKGVuYWJsZV9vY3YpID09IDApfSB7Ci0gICAgICAgICAgICBzZXQgaW5mb3MoJHZhcnMoaW5mb19jb3VudCkpICJDaGFuZ2luZyB2YXJzKGVuYWJsZV9vY3YpIGZyb20gXCIkdmFycyhlbmFibGVfb2N2KVwiIHRvIFwiZmFsc2VcIiIKLSAgICAgICAgICAgIGluY3IgdmFycyhpbmZvX2NvdW50KQotICAgICAgICAgICAgc2V0IHZhcnMoZW5hYmxlX29jdikgZmFsc2UKLSAgICAgICAgIH0KLSAgICAgICAgIGlmIHtbbGluZGV4IFtzcGxpdCAkdmFycyh2ZXJzaW9uKSAiLiJdICAwXSA+IDExfSB7Ci0gICAgICAgICAgICBpZiB7W3N0cmluZyB0b2xvd2VyICR2YXJzKGVuYWJsZV9vY3YpXSA9PSAiZmFsc2UifSB7Ci0gICAgICAgICAgICAgICBpZiB7W2xpbmRleCBbc3BsaXQgJHZhcnModmVyc2lvbikgIi4iXSAgMF0gPCAxNX0gewotICAgICAgICAgICAgICAgICAgc2V0IGluZm9zKCR2YXJzKGluZm9fY291bnQpKSAiQ2hhbmdpbmcgdmFycyhlbmFibGVfb2N2KSBmcm9tIFwiJHZhcnMoZW5hYmxlX29jdilcIiB0byBcInByZV9wb3N0cm91dGVcIiIKLSAgICAgICAgICAgICAgICAgIGluY3IgdmFycyhpbmZvX2NvdW50KQotICAgICAgICAgICAgICAgICAgc2V0IHZhcnMoZW5hYmxlX29jdikgInByZV9wb3N0cm91dGUiCi0gICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgc2V0IGluZm9zKCR2YXJzKGluZm9fY291bnQpKSAiQ2hhbmdpbmcgdmFycyhlbmFibGVfb2N2KSBmcm9tIFwiJHZhcnMoZW5hYmxlX29jdilcIiB0byBcInByZV9jdHNcIiIKLSAgICAgICAgICAgICAgICAgIGluY3IgdmFycyhpbmZvX2NvdW50KQotICAgICAgICAgICAgICAgICAgc2V0IHZhcnMoZW5hYmxlX29jdikgInByZV9wbGFjZSIKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0KLSAgICAgICAgIGlmIHsoW3N0cmluZyB0b2xvd2VyICR2YXJzKGVuYWJsZV9zcyldID09ICJ0cnVlIikgfHwgKCR2YXJzKGVuYWJsZV9zcykgPT0gMSl9IHsKLSAgICAgICAgICAgIHNldCBpbmZvcygkdmFycyhpbmZvX2NvdW50KSkgIkNoYW5naW5nIHZhcnMoZW5hYmxlX3NzKSBmcm9tICR2YXJzKGVuYWJsZV9zcykgdG8gXCJwcmVfcG9zdHJvdXRlXCIiCi0gICAgICAgICAgICBpbmNyIHZhcnMoaW5mb19jb3VudCkKLSAgICAgICAgICAgIHNldCB2YXJzKGVuYWJsZV9zcykgcHJlX3Bvc3Ryb3V0ZQotICAgICAgICAgfSBlbHNlaWYgeygkdmFycyhlbmFibGVfc3MpID09ICJub25lIikgfHwgKCR2YXJzKGVuYWJsZV9zcykgPT0gMCl9IHsKLSAgICAgICAgICAgIHNldCBpbmZvcygkdmFycyhpbmZvX2NvdW50KSkgIkNoYW5naW5nIHZhcnMoZW5hYmxlX3NzKSBmcm9tICR2YXJzKGVuYWJsZV9zcykgdG8gXCJmYWxzZVwiIgotICAgICAgICAgICAgaW5jciB2YXJzKGluZm9fY291bnQpCi0gICAgICAgICAgICBzZXQgdmFycyhlbmFibGVfc3MpIGZhbHNlCi0gICAgICAgICB9Ci0gICAgICAgICBpZiB7KFtzdHJpbmcgdG9sb3dlciAkdmFycyhtZXRhbGZpbGwpXSA9PSAibm9uZSIpIHx8IChbc3RyaW5nIHRvbG93ZXIgJHZhcnMobWV0YWxmaWxsKV0gPT0gImZhbHNlIiAmJiAkdmFycyhtZXRhbGZpbGwpICE9ICJmYWxzZSIpIHx8ICgkdmFycyhtZXRhbGZpbGwpID09IDApfSB7Ci0gICAgICAgICAgICBzZXQgaW5mb3MoJHZhcnMoaW5mb19jb3VudCkpICJDaGFuZ2luZyB2YXJzKG1ldGFsZmlsbCkgZnJvbSAkdmFycyhtZXRhbGZpbGwpIHRvIFwiZmFsc2VcIiIKLSAgICAgICAgICAgIGluY3IgdmFycyhpbmZvX2NvdW50KQotICAgICAgICAgICAgc2V0IHZhcnMobWV0YWxmaWxsKSBmYWxzZQotICAgICAgICAgfQotICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGNsb2NrX2VjbyldfSB7Ci0gICAgICAgICAgICBpZiB7KCR2YXJzKGNsb2NrX2VjbykgPT0gInRydWUiKSB8fCAoJHZhcnMoY2xvY2tfZWNvKSA9PSAxKX0gewotICAgICAgICAgICAgICAgc2V0IGluZm9zKCR2YXJzKGluZm9fY291bnQpKSAiQ2hhbmdpbmcgdmFycyhjbG9ja19lY28pIGZyb20gJHZhcnMoY2xvY2tfZWNvKSB0byBcInBvc3RfY3RzXCIiCi0gICAgICAgICAgICAgICBpbmNyIHZhcnMoaW5mb19jb3VudCkKLSAgICAgICAgICAgICAgIHNldCB2YXJzKGNsb2NrX2VjbykgcG9zdF9jdHMKLSAgICAgICAgICAgIH0gZWxzZWlmIHsoJHZhcnMoY2xvY2tfZWNvKSA9PSAiZmFsc2UiKSB8fCAoJHZhcnMoY2xvY2tfZWNvKSA9PSAwKX0gewotICAgICAgICAgICAgICAgc2V0IGluZm9zKCR2YXJzKGluZm9fY291bnQpKSAiQ2hhbmdpbmcgdmFycyhjbG9ja19lY28pIGZyb20gJHZhcnMoY2xvY2tfZWNvKSB0byBcIm5vbmVcIiIKLSAgICAgICAgICAgICAgIGluY3IgdmFycyhpbmZvX2NvdW50KQotICAgICAgICAgICAgICAgc2V0IHZhcnMoY2xvY2tfZWNvKSBub25lCi0gICAgICAgICAgICB9IGVsc2VpZiB7KCR2YXJzKGNsb2NrX2VjbykgPT0gInByZXJvdXRlIikgfHwgKCR2YXJzKGNsb2NrX2VjbykgPT0gInByZV9yb3V0ZSIpfSB7Ci0gICAgICAgICAgICAgICBzZXQgaW5mb3MoJHZhcnMoaW5mb19jb3VudCkpICJDaGFuZ2luZyB2YXJzKGNsb2NrX2VjbykgZnJvbSAkdmFycyhjbG9ja19lY28pIHRvIFwicG9zdF9jdHNcIiIKLSAgICAgICAgICAgICAgIGluY3IgdmFycyhpbmZvX2NvdW50KQotICAgICAgICAgICAgICAgc2V0IHZhcnMoY2xvY2tfZWNvKSBwb3N0X2N0cwotICAgICAgICAgICAgfSBlbHNlaWYgeyR2YXJzKGNsb2NrX2VjbykgPT0gInBvc3Ryb3V0ZSJ9IHsKLSAgICAgICAgICAgICAgIHNldCBpbmZvcygkdmFycyhpbmZvX2NvdW50KSkgIkNoYW5naW5nIHZhcnMoY2xvY2tfZWNvKSBmcm9tICR2YXJzKGNsb2NrX2VjbykgdG8gXCJwb3N0X3JvdXRlXCIiCi0gICAgICAgICAgICAgICBpbmNyIHZhcnMoaW5mb19jb3VudCkKLSAgICAgICAgICAgICAgIHNldCB2YXJzKGNsb2NrX2VjbykgcG9zdF9yb3V0ZQotICAgICAgICAgICAgfQotICAgICAgICAgfQotICAgICAgICAgaWYgeyhbc3RyaW5nIHRvbG93ZXIgJHZhcnMoZmxvd19lZmZvcnQpXSA9PSAibm9uZSIpIHx8IChbc3RyaW5nIHRvbG93ZXIgJHZhcnMoZmxvd19lZmZvcnQpXSA9PSAiZGVmYXVsdCIpfSB7Ci0gICAgICAgICAgICBhcHBlbmQgd2FybmluZ3MoJHZhcnMod2FybmluZ19jb3VudCkpICJDaGFuZ2luZyB2YXJzKGZsb3dfZWZmb3J0KSBmcm9tICckdmFycyhmbG93X2VmZm9ydCknIHRvICdzdGFuZGFyZCciCi0gICAgICAgICAgICBpbmNyIHZhcnMod2FybmluZ19jb3VudCkKLSAgICAgICAgICAgIHNldCB2YXJzKGZsb3dfZWZmb3J0KSBzdGFuZGFyZAotICAgICAgICAgfQotICAgICAgICAgaWYgeyhbc3RyaW5nIHRvbG93ZXIgJHZhcnModXNlX2ZsZXhtb2RlbHMpXSA9PSAidHJ1ZSIpIHx8ICgkdmFycyh1c2VfZmxleG1vZGVscykgPT0gMSl9IHsKLSAgICAgICAgICAgIHNldCB2YXJzKHVzZV9mbGV4bW9kZWxzKSAxCi0gICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgc2V0IHZhcnModXNlX2ZsZXhtb2RlbHMpIDAKLSAgICAgICAgIH0KLSMgICAgICAgICBpZiB7JHZhcnModXNlX2ZsZXhtb2RlbHMpICYmICR2YXJzKHBsYWNlX29wdF9kZXNpZ24pfSB7Ci0jICAgICAgICAgICAgc2V0IHdhcm5pbmdzKCR2YXJzKHdhcm5pbmdfY291bnQpKSAiU2V0dGluZyB2YXJzKHBsYWNlX29wdF9kZXNpZ24pIHRvICdmYWxzZScgYXMgdmFycyh1c2VfZmxleG1vZGVscykgaXMgdHJ1ZSIKLSMgICAgICAgICAgICBpbmNyIHZhcnMod2FybmluZ19jb3VudCkKLSMgICAgICAgICAgICBzZXQgdmFycyhwbGFjZV9vcHRfZGVzaWduKSBmYWxzZQotIyAgICAgICAgIH0KLSAgICAgICAgIGlmIHsoW3N0cmluZyB0b2xvd2VyICR2YXJzKGZsZXhtb2RlbF9hc19wdG4pXSA9PSAidHJ1ZSIpIHx8ICgkdmFycyhmbGV4bW9kZWxfYXNfcHRuKSA9PSAxKX0gewotICAgICAgICAgICAgc2V0IHZhcnMoZmxleG1vZGVsX2FzX3B0bikgMQotICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHNldCB2YXJzKGZsZXhtb2RlbF9hc19wdG4pIDAKLSAgICAgICAgIH0KLSAgICAgICAgIGlmIHsoW3N0cmluZyB0b2xvd2VyICR2YXJzKHBsYWNlbWVudF9iYXNlZF9wdG4pXSA9PSAidHJ1ZSIpIHx8ICgkdmFycyhwbGFjZW1lbnRfYmFzZWRfcHRuKSA9PSAxKX0gewotICAgICAgICAgICAgc2V0IHZhcnMocGxhY2VtZW50X2Jhc2VkX3B0bikgMQotICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHNldCB2YXJzKHBsYWNlbWVudF9iYXNlZF9wdG4pIDAKLSAgICAgICAgIH0KLSAgICAgICAgIGlmIHsoW3N0cmluZyB0b2xvd2VyICR2YXJzKGFidXR0ZWRfZGVzaWduKV0gPT0gInRydWUiKSB8fCAoJHZhcnMoYWJ1dHRlZF9kZXNpZ24pID09IDEpfSB7Ci0gICAgICAgICAgICBzZXQgdmFycyhhYnV0dGVkX2Rlc2lnbikgMQotICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHNldCB2YXJzKGFidXR0ZWRfZGVzaWduKSAwCi0gICAgICAgICB9Ci0gICAgICAgICBpZiB7KFtzdHJpbmcgdG9sb3dlciAkdmFycyhpbnNlcnRfZmVlZHRocm91Z2gpXSA9PSAidHJ1ZSIpIHx8ICgkdmFycyhpbnNlcnRfZmVlZHRocm91Z2gpID09IDEpfSB7Ci0gICAgICAgICAgICBzZXQgdmFycyhpbnNlcnRfZmVlZHRocm91Z2gpIDEKLSAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBzZXQgdmFycyhpbnNlcnRfZmVlZHRocm91Z2gpIDAKLSAgICAgICAgIH0KLSAgICAgICAgIGlmIHshW2luZm8gZXhpc3RzIHZhcnMocmVzaXplX3NoaWZ0ZXJfYW5kX2lzb19pbnN0cyldIHx8ICR2YXJzKHJlc2l6ZV9zaGlmdGVyX2FuZF9pc29faW5zdHMpID09ICIifSB7Ci0gICAgICAgICAgICBzZXQgdmFycyhyZXNpemVfc2hpZnRlcl9hbmRfaXNvX2luc3RzKSB0cnVlCi0gICAgICAgICB9Ci0gICAgICAgICBpZiB7IVtpbmZvIGV4aXN0cyB2YXJzKGFjdGl2aXR5X2ZpbGVfZm9ybWF0KV0gfHwgJHZhcnMoYWN0aXZpdHlfZmlsZV9mb3JtYXQpID09ICIifSB7Ci0gICAgICAgICAgICBzZXQgdmFycyhhY3Rpdml0eV9maWxlX2Zvcm1hdCkgVENGCi0gICAgICAgICB9Ci0gICAgICAgICBpZiB7IVtpbmZvIGV4aXN0cyB2YXJzKHBvd2VyX25ldHMpXX0gewotICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKHB3cm5ldCldfSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIElORk86IFZhcmlhYmxlIHB3cm5ldCBoYXMgYmVlbiBjaGFuZ2VkIHRvIHBvd2VyX25ldHMgLi4uIHBsZWFzZSB1cGRhdGVcbiIKLSAgICAgICAgICAgICAgIHNldCBpbmZvcygkdmFycyhpbmZvX2NvdW50KSkgIlZhcmlhYmxlIHB3cm5ldCBoYXMgYmVlbiBjaGFuZ2VkIHRvIHBvd2VyX25ldHMgLi4uIHBsZWFzZSB1cGRhdGUiCi0gICAgICAgICAgICAgICBpbmNyIHZhcnMoaW5mb19jb3VudCkKLSAgICAgICAgICAgICAgIHNldCB2YXJzKHBvd2VyX25ldHMpICR2YXJzKHB3cm5ldCkKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBzZXQgdmFycyhwb3dlcl9uZXRzKSAiIgotICAgICAgICAgICAgfQotICAgICAgICAgfQotICAgICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycyhncm91bmRfbmV0cyldfSB7Ci0gICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoZ25kbmV0KV19IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgSU5GTzogVmFyaWFibGUgZ25kbmV0IGhhcyBiZWVuIGNoYW5nZWQgdG8gZ3JvdW5kX25ldHMgLi4uIHBsZWFzZSB1cGRhdGVcbiIKLSAgICAgICAgICAgICAgIHNldCBpbmZvcygkdmFycyhpbmZvX2NvdW50KSkgIlZhcmlhYmxlIGduZG5ldCBoYXMgYmVlbiBjaGFuZ2VkIHRvIGdyb3VuZF9uZXRzIC4uLiBwbGVhc2UgdXBkYXRlIgotICAgICAgICAgICAgICAgaW5jciB2YXJzKGluZm9fY291bnQpCi0gICAgICAgICAgICAgICBzZXQgdmFycyhncm91bmRfbmV0cykgJHZhcnMoZ25kbmV0KQotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIHNldCB2YXJzKGdyb3VuZF9uZXRzKSAiIgotICAgICAgICAgICAgfQotICAgICAgICAgfQotICAgICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycyhzdXBlcmhvc3RzKV19IHsKLSAgICAgICAgICAgIHNldCB2YXJzKHN1cGVyaG9zdHMpIDAKLSAgICAgICAgIH0KLQotICAgICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycyhzdXBlcnRocmVhZHMpXX0gewotICAgICAgICAgICAgc2V0IHZhcnMoc3VwZXJ0aHJlYWRzKSAxCi0gICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgaWYgeygkdmFycyh0aHJlYWRzKSA+IDEpICYmICgkdmFycyhzdXBlcnRocmVhZHMpID09IDEpfSB7Ci0gICAgICAgICAgICAgICBzZXQgdmFycyhzdXBlcnRocmVhZHMpICR2YXJzKHRocmVhZHMpCi0gICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0gICAgICAgICBpZiB7IVtpbmZvIGV4aXN0cyB2YXJzKG1ha2VmaWxlKV19IHsKLSAgICAgICAgICAgIHNldCB2YXJzKG1ha2VmaWxlKSAxCi0gICAgICAgICB9Ci0gICAgICAgICBpZiB7IVtpbmZvIGV4aXN0cyB2YXJzKGZsYXQpXX0gewotICAgICAgICAgICAgc2V0IHZhcnMoZmxhdCkgbm9uZQotICAgICAgICAgfQotICAgICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycyhhYm9ydCldfSB7Ci0gICAgICAgICAgICBzZXQgdmFycyhhYm9ydCkgMAotICAgICAgICAgfQotICAgICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycyhjYXRjaF9lcnJvcnMpXX0gewotICAgICAgICAgICAgc2V0IHZhcnMoY2F0Y2hfZXJyb3JzKSAxCi0gICAgICAgICB9Ci0gICAgICAgICBpZiB7IVtpbmZvIGV4aXN0cyB2YXJzKHJlc3RvcmVfZGVzaWduKV19IHsKLSAgICAgICAgICAgIHNldCB2YXJzKHJlc3RvcmVfZGVzaWduKSAxCi0gICAgICAgICB9Ci0gICAgICAgICBpZiB7JHZhcnMoY2F0Y2hfZXJyb3JzKX0gewotICAgICAgICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycyhzYXZlX29uX2NhdGNoKV19IHsKLSAgICAgICAgICAgICAgIHNldCB2YXJzKHNhdmVfb25fY2F0Y2gpIDEKLSAgICAgICAgICAgIH0gCi0gICAgICAgICAgICBpZiB7IVtpbmZvIGV4aXN0cyB2YXJzKGV4aXRfb25fZXJyb3IpXX0gewotICAgICAgICAgICAgICAgc2V0IHZhcnMoZXhpdF9vbl9lcnJvcikgMQotICAgICAgICAgICAgfSAKLSAgICAgICAgIH0KLSAgICAgICAgIGlmIHshW2luZm8gZXhpc3RzIGVudihWUEFUSCldfSB7Ci0gICAgICAgICAgICBzZXQgZW52KFZQQVRIKSAkZmxvd19kZWZhdWx0cyh2cGF0aCkKLSAgICAgICAgICAgIHB1dHMgIjxGRj4gSU5GTzogU2V0dGluZyBlbnYoVlBBVEgpIHRvICRmbG93X2RlZmF1bHRzKHZwYXRoKSIKLSAgICAgICAgIH0KLSAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhjcGZfZmlsZSldfSB7Ci0gICAgICAgICAgICBpZiB7IVtpbmZvIGV4aXN0cyB2YXJzKGNwZl90aW1pbmcpXX0gewotICAgICAgICAgICAgICAgc2V0IHZhcnMoY3BmX3RpbWluZykgdHJ1ZQotIyAgICAgICAgICAgICAgIHNldCB2YXJzKGZsYXQpIHRydWUKLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBzZXQgdmFycyhjcGZfdGltaW5nKSBmYWxzZQotICAgICAgICAgfQotCi0gICAgICAgICBpZiB7ISR2YXJzKGNvZGVnZW4pfSB7IAotICAgICAgICAgICAgaWYge1tGRjo6aXNfbHBfZmxvd119IHsKLSAgICAgICAgICAgICAgIGNhdGNoIHthbGlhcyBmZl9tb2RpZnlfcG93ZXJfZG9tYWlucyBGRl9OT1ZVUzo6bW9kaWZ5X3Bvd2VyX2RvbWFpbnN9Ci0gICAgICAgICAgICAgICBjYXRjaCB7YWxpYXMgZmZfYWRkX3Bvd2VyX3N3aXRjaGVzIEZGX05PVlVTOjphZGRfcG93ZXJfc3dpdGNoZXN9Ci0gICAgICAgICAgICAgICBjYXRjaCB7YWxpYXMgZmZfcm91dGVfc2Vjb25kYXJ5X3BnX25ldHMgRkZfTk9WVVM6OnJvdXRlX3NlY29uZGFyeV9wZ19uZXRzfQotICAgICAgICAgICAgICAgY2F0Y2gge2FsaWFzIGZmX2dldF9wb3dlcl9kb21haW5zIEZGX05PVlVTOjpnZXRfcG93ZXJfZG9tYWluc30KLSAgICAgICAgICAgICAgIGNhdGNoIHthbGlhcyBmZl9idWZmZXJfYWx3YXlzX29uX25ldHMgRkZfTk9WVVM6OmJ1ZmZlcl9hbHdheXNfb25fbmV0c30KLSAgICAgICAgICAgICAgIGNhdGNoIHthbGlhcyBmZl9pbnNlcnRfd2VsbHRhcHNfZW5kY2FwcyBGRl9OT1ZVUzo6aW5zZXJ0X3dlbGx0YXBzX2VuZGNhcHN9Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBzZXQgZmxvd19kZWZhdWx0cyhzY3JpcHRfZGlyKSAiLiIKLSAgICAgICAgfQotCi0jIFJlbWVtYmVyIHRoZXNlIGZvciBzdGVwIGJhc2VkIHJlcG9ydGluZyAuLi4KLSAgICAgICAgIHNldCB2YXJzKG9yaWdfcnB0X2RpcikgICR2YXJzKHJwdF9kaXIpCi0gICAgICAgICBzZXQgdmFycyhvcmlnX2xvZ19kaXIpICAkdmFycyhsb2dfZGlyKQotICAgICAgICAgc2V0IHZhcnMob3JpZ19kYnNfZGlyKSAgJHZhcnMoZGJzX2RpcikKLQotIyBBZGQgdGhlc2UgZm9yIGdldCBtZXRyaWMKLSAgICAgICAgIGlmIHshW2luZm8gZXhpc3RzIHZhcnMoaHRtbF9zdW1tYXJ5KV19IHsKLSAgICAgICAgICAgIHNldCB2YXJzKGh0bWxfc3VtbWFyeSkgICR2YXJzKHJwdF9kaXIpL3N1bW1hcnkuaHRtbAotICAgICAgICAgfQotICAgICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycyh0aW1lX2luZm9fZGIpXX0gewotICAgICAgICAgICAgc2V0IHZhcnModGltZV9pbmZvX2RiKSAgJHZhcnMocnB0X2RpcikvdGltZV9pbmZvLmRiCi0gICAgICAgICB9Ci0gICAgICAgICBpZiB7IVtpbmZvIGV4aXN0cyB2YXJzKHRpbWVfaW5mb19ycHQpXX0gewotICAgICAgICAgICAgc2V0IHZhcnModGltZV9pbmZvX3JwdCkgICR2YXJzKHJwdF9kaXIpL3RpbWVfaW5mby5ycHQKLSAgICAgICAgIH0KLQotICAgICAgICAgaWYge1tpbmZvIGNvbW1hbmQgRkZGOjpnZXRfdG9vbF0gbmUgIiIgJiYgW0ZGRjo6Z2V0X3Rvb2xdIGVxICJyYyJ9IHsKLSAgICAgICAgICAgdGNsX3NvdXJjZSAkdmFycyhzY3JpcHRfcGF0aCkvRVRDL0lOTk9WVVMvdWRtLnRjbAotICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgc291cmNlICR2YXJzKHNjcmlwdF9wYXRoKS9FVEMvSU5OT1ZVUy91ZG0udGNsCi0gICAgICAgICB9Ci0gICAgICAgICBpZiB7ISR2YXJzKHJjKSB8fCAoJHZhcnMocmMpICYmICFbaW5mbyBleGlzdHMgdmFycyhyY19zdGVwcyldKX0gewotICAgICAgICAgICAgc2V0IHZhcnMoc2VlZCkgMQotICAgICAgICAgfQotICAgICAgfQotCi0jICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycyh2aWV3X2RlZmluaXRpb25fdGNsKV19IHsKLSAgICAgICAgIEZGX05PVlVTOjpub3JtYWxpemVfY29uc3RyYWludHMgCi0jICAgICAgfQotCi0gICAgICBpZiB7JHZhcnMoZ2VuZXJhdGVfZmxvd19zdGVwcyl9IHsKLSMgICAgICAgICBzZXQgdmFycyhza2lwX3NpZ25vZmZfY2hlY2tzKSB0cnVlCi0gICAgICAgICBGRl9OT1ZVUzo6bm9ybWFsaXplX2ZpbGVzIAotICAgICAgfQotCi0jICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKHZpZXdfZGVmaW5pdGlvbl90Y2wpXX0gewotIyAgICAgICAgIHNldCB2YXJzKHNraXBfc2lnbm9mZl9jaGVja3MpIGZhbHNlCi0jICAgICAgfQotICAgICAgIyAgUkMgU3R1ZmYgLi4uCi0gICAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotICAgICAgaWYgeyR2YXJzKHJjKX0gewotICAgICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycyhvdmZfZGlyKV19IHsgc2V0IHZhcnMob3ZmX2RpcikgT1ZGIH0KLSAgICAgICAgIGlmIHshW2luZm8gZXhpc3RzIHZhcnMobGVjX2RpcildfSB7IHNldCB2YXJzKGxlY19kaXIpIExFQyB9Ci0gICAgICAgICBpZiB7IVtpbmZvIGV4aXN0cyB2YXJzKGVuYWJsZV9yY3ApXX0geyBzZXQgdmFycyhlbmFibGVfcmNwKSAwIH0KLSAgICAgICAgIGlmIHshW2luZm8gZXhpc3RzIHZhcnMoZW5hYmxlX3BhbSldfSB7IHNldCB2YXJzKGVuYWJsZV9wYW0pIDAgfQotICAgICAgICAgc2V0IHZhcnMoc3luX21hcCxzZXRfbGliX2F0dHJpYnV0ZXMsc2tpcCkgdHJ1ZQotICAgICAgICAgc2V0IHZhcnMoc3luX21hcCxzZXRfbWlzY19hdHRyaWJ1dGVzLHNraXApIHRydWUKLSAgICAgICAgIHNldCB2YXJzKHN5bl9tYXAsc2V0X2hkbF9hdHRyaWJ1dGVzLHNraXApIHRydWUKLSAgICAgICAgIHNldCB2YXJzKHN5bl9tYXAsc2V0X2ljZ19hdHRyaWJ1dGVzLHNraXApIHRydWUKLSAgICAgICAgIHNldCB2YXJzKHN5bl9tYXAsc2V0X2RmdF9hdHRyaWJ1dGVzLHNraXApIHRydWUKLSAgICAgICAgIHNldCB2YXJzKHN5bl9pbmNyLHNldF9vcHRfYXR0cmlidXRlcyxza2lwKSB0cnVlCi0KLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICMgU2V0IG5ldGxpc3QgYW5kIGRlZiB2YXJpYWJsZXMgd2hlbiBSQyAvIFJDUCBlbmFibGVkCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAgICBpZiB7JHZhcnMoZW5hYmxlX3JjcCl9IHsKLSAgICAgICAgICAgIHNldCB2YXJzKG5ldGxpc3QpICR2YXJzKGRic19kaXIpL3N5bl9wbGFjZS9zeW5fcGxhY2Uudi5negotIyAgICAgICAgICAgIHNldCB2YXJzKGRlZl9maWxlcykgJHZhcnMoZGJzX2Rpcikvc3luX3BsYWNlLmRlZi5negotICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHNldCB2YXJzKG5ldGxpc3QpICR2YXJzKGRic19kaXIpL3N5bl9pbmNyL3N5bl9pbmNyLnYuZ3oKLSMgICAgICAgICAgICBzZXQgdmFycyhkZWZfZmlsZXMpICR2YXJzKGRic19kaXIpL3N5bl9pbmNyL3N5bl9pbmNyLmRlZi5negotICAgICAgICAgfQotICAgICAgfQotCi0gICAgICBpZiB7JHZhcnMobm92dXMpfSB7Ci0gICAgICAgICAjc2V0IHZhcnMobWFrZV90b29sX2FyZ3MpICItbm93aW4gLTY0IgotICAgICAgICAgc2V0IHZhcnMobWFrZV9zeW5fdG9vbF9hcmdzKSAiLTY0IgotICAgICAgICAgc2V0IHZhcnMoZ2VuZXJhdGVfZmxvd19zdGVwcykgdHJ1ZQotICAgICAgfSBlbHNlIHsKLSAgICAgICAgICNzZXQgdmFycyhtYWtlX3Rvb2xfYXJncykgIi1ub3dpbiAtNjQiCi0gICAgICAgICBzZXQgdmFycyhtYWtlX3N5bl90b29sX2FyZ3MpICItNjQgLWxlZ2FjeV91aSIKLSAgICAgICAgIHNldCB2YXJzKGdlbmVyYXRlX2Zsb3dfc3RlcHMpIHRydWUKLSAgICAgIH0gCi0KLSAgIH0KLQotICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgIyBQcm9jZWR1cmUgdG8gY2hlY2sgdGhlIGZsb3cgdmFyaWFibGVzIGRlZmluZWQgaW4gdGhlIHNldHVwLnRjbAotICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCi0gICBwcm9jIGNoZWNrX3NldHVwIHt9IHsKLQotICAgICAgZ2xvYmFsIHZhcnMKLSAgICAgIGdsb2JhbCB0dmFycwotICAgICAgZ2xvYmFsIGVycm9ycwotICAgICAgZ2xvYmFsIHdhcm5pbmdzCi0gICAgICBnbG9iYWwgaW5mb3MKLSAgICAgIGdsb2JhbCBjaGVjawotCi0gICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoY2hlY2tfc2V0dXApXSAgJiYgISR2YXJzKGNoZWNrX3NldHVwKX0gewotICAgICAgICAgcmV0dXJuCi0gICAgICB9Ci0KLSAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyh3YXJuaW5nX2NvdW50KV19IHsKLSAgICAgICAgIHNldCB3YXJuaW5nX2NvdW50ICR2YXJzKHdhcm5pbmdfY291bnQpCi0gICAgICB9IGVsc2UgewotICAgICAgICAgc2V0IHdhcm5pbmdfY291bnQgMAotICAgICAgfQotICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGVycm9yX2NvdW50KV19IHsKLSAgICAgICAgIHNldCBlcnJvcl9jb3VudCAkdmFycyhlcnJvcl9jb3VudCkKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgICBzZXQgZXJyb3JfY291bnQgMAotICAgICAgfQotICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGluZm9fY291bnQpXX0gewotICAgICAgICAgc2V0IGluZm9fY291bnQgJHZhcnMoaW5mb19jb3VudCkKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgICBzZXQgaW5mb19jb3VudCAwCi0gICAgICB9Ci0KLSAgICAgIGlmIHskdmFycyhwbGFjZV9vcHRfZGVzaWduKSAmJiAkdmFycyhlbmFibGVfZmxleGlsbSl9IHsKLSAgICAgICAgIHNldCB3YXJuaW5ncygkd2FybmluZ19jb3VudCkgIkZlYXR1cmUgdmFycyhwbGFjZV9vcHRfZGVzaWduKSBub3Qgc3VwcG9ydCBmb3IgdG9wIGxldmVsIGltcGxlbWVudGF0aW9uIHdoZW4gdmFycyhlbmFibGVfZmxleGlsbSkgaXMgdHJ1ZSIKLSAgICAgICAgIGluY3Igd2FybmluZ19jb3VudAotICAgICAgfQotCi0gICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMocG93ZXJfYW5hbHlzaXNfdmlldyldfSB7Ci0gICAgICAgICBpZiB7W2xzZWFyY2ggW2NvbmNhdCAkdmFycyhzZXR1cF9hbmFseXNpc192aWV3cykgJHZhcnMoaG9sZF9hbmFseXNpc192aWV3cyldICR2YXJzKHBvd2VyX2FuYWx5c2lzX3ZpZXcpXSA9PSAtMX0gewotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICBFUlJPUjogUG93ZXIgYW5hbHlzaXMgdmlldyAkdmFycyhwb3dlcl9hbmFseXNpc192aWV3KSBpcyBub3QgYSBkZWZpbmVkIHZpZXdcbiIKLSAgICAgICAgICAgIHNldCBlcnJvcnMoJGVycm9yX2NvdW50KSAiUG93ZXIgYW5hbHlzaXMgdmlldyAkdmFycyhwb3dlcl9hbmFseXNpc192aWV3KSBpcyBub3QgYSBkZWZpbmVkIHZpZXciCi0gICAgICAgICAgICBpbmNyIGVycm9yX2NvdW50Ci0gICAgICAgICB9Ci0gICAgICB9Ci0KLSAgICAgIHNldCB2YWxpZCBbbGlzdCB0cmlhbF9pcG8gZ2lnYV9vcHQgcHJvdG9fbmV0X2RlbGF5X21vZGVsXQotICAgICAgaWYge1tsc2VhcmNoICR2YWxpZCBbc3RyaW5nIHRvbG93ZXIgJHZhcnMoYnVkZ2V0X21vZGUpXV0gPT0gLTF9IHsKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgRVJST1I6IFZhcmlhYmxlIHZhcnMoYnVkZ2V0X21vZGUpIGhhcyBpbGxlZ2FsIHZhbHVlICR2YXJzKGJ1ZGdldF9tb2RlKVxuIgotICAgICAgICAgc2V0IGVycm9ycygkZXJyb3JfY291bnQpICJWYXJpYWJsZSB2YXJzKGJ1ZGdldF9tb2RlKSBoYXMgaWxsZWdhbCB2YWx1ZSAkdmFycyhidWRnZXRfbW9kZSkiCi0gICAgICAgICBpbmNyIGVycm9yX2NvdW50Ci0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgICAgICAgICBNdXN0IGJlIG9uZSBvZiAnJHZhbGlkJ1xuIgotICAgICAgfQotICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGN0c19lbmdpbmUpXX0gewotICAgICAgICAgaWYge1tzdHJpbmcgdG9sb3dlciAkdmFycyhjdHNfZW5naW5lKV0gPT0gImNjb3B0ZGVzaWduIn0geyAKLSAgICAgICAgICAgIHNldCB2YXJzKGN0c19lbmdpbmUpIGNjb3B0IAotICAgICAgICAgfSAKLSAgICAgICAgIGlmIHtbc3RyaW5nIHRvbG93ZXIgJHZhcnMoY3RzX2VuZ2luZSldID09ICJjbG9ja2Rlc2lnbiJ9IHsgCi0gICAgICAgICAgICBzZXQgdmFycyhjdHNfZW5naW5lKSBjdHMgCi0gICAgICAgICB9Ci0gICAgICAgICBzZXQgdmFsaWQgW2xpc3QgY2NvcHQgY2NvcHRfY3RzXQotICAgICAgICAgaWYge1tsc2VhcmNoICR2YWxpZCBbc3RyaW5nIHRvbG93ZXIgJHZhcnMoY3RzX2VuZ2luZSldXSA9PSAtMX0gewotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICBFUlJPUjogVmFyaWFibGUgdmFycyhjdHNfZW5naW5lKSBoYXMgaWxsZWdhbCB2YWx1ZSAkdmFycyhjdHNfZW5naW5lKVxuIgotICAgICAgICAgICAgc2V0IGVycm9ycygkZXJyb3JfY291bnQpICJWYXJpYWJsZSB2YXJzKGN0c19lbmdpbmUpIGhhcyBpbGxlZ2FsIHZhbHVlICR2YXJzKGN0c19lbmdpbmUpIgotICAgICAgICAgICAgaW5jciBlcnJvcl9jb3VudAotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICAgICAgICAgTXVzdCBiZSBvbmUgb2YgJyR2YWxpZCdcbiIKLSAgICAgICAgIH0KLSAgICAgIH0KLQotICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGNjb3B0X2ludGVncmF0aW9uKV19IHsKLSAgICAgICAgIHNldCB2YWxpZCB7c2NyaXB0ZWQgbmF0aXZlfQotICAgICAgICAgaWYge1tsc2VhcmNoICR2YWxpZCAkdmFycyhjY29wdF9pbnRlZ3JhdGlvbildID09IC0xfSB7Ci0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIEVSUk9SOiBWYXJpYWJsZSB2YXJzKGN0c19lbmdpbmUpIGhhcyBpbGxlZ2FsIHZhbHVlICR2YXJzKGN0c19lbmdpbmUpXG4iCi0gICAgICAgICAgICBzZXQgZXJyb3JzKCRlcnJvcl9jb3VudCkgIlZhcmlhYmxlIHZhcnMoY3RzX2VuZ2luZSkgaGFzIGlsbGVnYWwgdmFsdWUgJHZhcnMoY3RzX2VuZ2luZSkiCi0gICAgICAgICAgICBpbmNyIGVycm9yX2NvdW50Ci0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgICAgICAgICBNdXN0IGJlIG9uZSBvZiAnJHZhbGlkJ1xuIgotICAgICAgICAgfQotICAgICAgfSBlbHNlIHsKLSAgICAgICAgICMgRGVmYXVsdCB0byBuYXRpdmUgaW50ZWdyYXRpb24KLSAgICAgICAgIHNldCB2YXJzKGNjb3B0X2ludGVncmF0aW9uKSAibmF0aXZlIgotICAgICAgfQotCi0gICAgICBpZiB7W2xpbmRleCBbc3BsaXQgJHZhcnModmVyc2lvbikgIi4iXSAgMF0gPiAxMH0gewotICAgICAgICAgZm9yZWFjaCB2YXIgW2FycmF5IG5hbWVzIHZhcnNdIHsKLSAgICAgICAgICAgIHNldCBzYXZlX3ZhcnMoJHZhcikgJHZhcnMoJHZhcikKLSAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdHZhcnMoJHZhcildfSB7Ci0gICAgICAgICAgICAgICBzZXQgdmFycygkdmFyKSAkdHZhcnMoJHZhcikKLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0KLSAgICAgIH0KLQotICAgICAgc2V0IGNvbW1hbmRzICAiIgotCi0gICAgICBzZXQgY2hlY2soZmlsZXMpIFtsaXN0XQotICAgICAgc2V0IGNoZWNrKGludGVnZXJzKSBbbGlzdF0KLQotCi0gICAgICBpZiB7IVtpbmZvIGV4aXN0cyB2YXJzKGFib3J0KV19IHsKLSAgICAgICAgIHNldCB2YXJzKGFib3J0KSAwCi0gICAgICB9Ci0KLSAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhjaGVja192YXJzKV0gJiYgJHZhcnMoY2hlY2tfdmFycyl9IHsKLSAgICAgICAgIHNvdXJjZSAkdmFycyhzY3JpcHRfcm9vdCkvRVRDL0lOTk9WVVMvY2hlY2tfdmFycy50Y2wKLSAgICAgIH0KLQotICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgIiMgICAgICAgICAgICAgICBSZXF1aXJlZCBWYXJpYWJsZXNcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuIgotICAgICAgc2V0IGNvdW50IDAKLSAgICAgIGZvcmVhY2ggcmVxdWlyZWQgImZwX3RjbF9maWxlIGZwX2ZpbGUgZGVmX2ZpbGVzIiB7Ci0gICAgICAgICAjIEJDTDogTm90ZSAtIFRoaXMgY29kZSByZW1vdmVkIGFzIHRoZSBSQyBGb3VuZGF0aW9uIEZsb3cgd2lsbCBzZXQgdmFycyhkZWZfZmlsZXMpIHdoZW4gaXQKLSAgICAgICAgICMgaXNuJ3QgZGVmaW5lZCBpbiB0aGUgdXNlcidzIHNldHVwLnRjbAotICAgICAgICAgI2lmIHskdmFycyhyYykgJiYgIVtpbmZvIGV4aXN0cyB2YXJzKGRlZl9maWxlcyldfSB7Ci0gICAgICAgICAjICAgc2V0IHZhcnMoZGVmX2ZpbGVzKSAkdmFycyhkYnNfZGlyKS8kdmFycyhkZXNpZ24pLnN5bl9wbGFjZWQuZGVmLmd6Ci0gICAgICAgICAjfQotICAgICAgICAgaWYgeyEkdmFycyhyYyl9IHsKLSAgICAgICAgICAgIyBCQ0w6IE9ubHkgY2hlY2sgZm9yIHZhcnMoZGVmX2ZpbGVzKSBpZiBub3QgaW4gUkMgbW9kZQotICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJHJlcXVpcmVkKV0gJiYgKCR2YXJzKCRyZXF1aXJlZCkgIT0gIiIpfSB7Ci0gICAgICAgICAgICAgIGlmIHskcmVxdWlyZWQgPT0gImRlZl9maWxlcyJ9IHsKLSAgICAgICAgICAgICAgICAgc2V0IGZpcnN0IDEKLSAgICAgICAgICAgICAgICAgIyBCQ0w6IEFkZGVkIHN1YnN0IGFyb3VuZCB2YXJzKGRlZl9maWxlcykgdG8gcmVzb2x2ZSB2YXJzKHJ1bmRpcikKLSAgICAgICAgICAgICAgICAgZm9yZWFjaCBmaWxlIFtzdWJzdCAkdmFycyhkZWZfZmlsZXMpXSB7Ci0gICAgICAgICAgICAgICAgICAgIGlmIHskZmlyc3QgPT0gMX0gewotICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIElORk86ICAgICRyZXF1aXJlZCA9ICRmaWxlXG4iCi0gICAgICAgICAgICAgICAgICAgICAgIHNldCBmaXJzdCAwCi0gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgSU5GTzogICAgICAgICAgICAgICAgJGZpbGUiCi0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgaWYgeyEkdmFycyhyYyl9IHsgCi0gICAgICAgICAgICAgICAgICAgICAgIGxhcHBlbmQgY2hlY2soZmlsZXMpICRmaWxlCi0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICBsYXBwZW5kIGNoZWNrKGZpbGVzKSAkdmFycygkcmVxdWlyZWQpCi0gICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgSU5GTzogICAgJHJlcXVpcmVkID0gJHZhcnMoJHJlcXVpcmVkKVxuIgotICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgIGluY3IgY291bnQKLSAgICAgICAgICAgfQotICAgICAgICAgfQotICAgICAgfQotICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGZwX3RjbF9wcm9jKV19IHsKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgSU5GTzogICAgZnBfdGNsX3Byb2MgPSAkdmFycyhmcF90Y2xfcHJvYylcbiIKLSAgICAgICAgIGluY3IgY291bnQKLSAgICAgIH0KLQotICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKG9hX2ZwKV19IHsgCi0gICAgICAgICBpZiB7W2xsZW5ndGggJHZhcnMob2FfZnApXSA9PSAzfSB7Ci0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIElORk86ICAgICAgICAgIG9hX2ZwID0gJHZhcnMob2FfZnApXG4iCi0gICAgICAgICAgICBpbmNyIGNvdW50Ci0gICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICBFUlJPUjogT0EgZmxvb3JwbGFuIHZhcmlhYmxlIChvYV9mcCkgc2hvdWxkIGJlICdsaWIgY2VsbCB2aWV3JyIKLSAgICAgICAgICAgIHNldCBlcnJvcnMoJGVycm9yX2NvdW50KSAiT0EgZmxvb3JwbGFuIHZhcmlhYmxlIChvYV9mcCkgc2hvdWxkIGJlICdsaWIgY2VsbCB2aWV3JyIKLSAgICAgICAgICAgIGluY3IgZXJyb3JfY291bnQKLSAgICAgICAgIH0KLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgICBpZiB7JGNvdW50ID09IDB9IHsKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgV0FSTklORzogTmVpdGhlciBmcF9maWxlLCBkZWZfZmlsZXMsIGZwX3RjbF9maWxlLCBmcF90Y2xfcHJvYyBhcmUgZGVmaW5lZFxuIgotICAgICAgICAgICAgc2V0IHdhcm5pbmdzKCR3YXJuaW5nX2NvdW50KSAiRWl0aGVyIGZwX2ZpbGUsIGRlZl9maWxlcywgZnBfdGNsX2ZpbGUsIGZwX3RjbF9wcm9jIHNob3VsZCBiZSBkZWZpbmVkIgotICAgICAgICAgICAgaW5jciB3YXJuaW5nX2NvdW50Ci0gICAgICAgICB9Ci0gICAgICB9Ci0KLSAgICAgIGlmIHtbc3RyaW5nIGNvbXBhcmUgLW5vY2FzZSAkdmFycyhuZXRsaXN0X3R5cGUpICJ2ZXJpbG9nIl0+PTB9IHsKLSAgICAgICAgICMgQkNMOiBOb3RlIC0gVGhpcyBjb2RlIHJlbW92ZWQgYXMgdGhlIFJDIEZvdW5kYXRpb24gRmxvdyB3aWxsIHNldCB2YXJzKGRlZl9uZXRsaXN0KSB3aGVuIGl0Ci0gICAgICAgICAjIGlzbid0IGRlZmluZWQgaW4gdGhlIHVzZXIncyBzZXR1cC50Y2wKLSAgICAgICAgICNpZiB7JHZhcnMocmMpICYmICFbaW5mbyBleGlzdHMgdmFycyhuZXRsaXN0KV19IHsKLSAgICAgICAgICMgICBzZXQgdmFycyhuZXRsaXN0KSAkdmFycyhkYnNfZGlyKS8kdmFycyhkZXNpZ24pLnN5bl9wbGFjZWQudi5negotICAgICAgICAgI30KLSAgICAgICAgIGlmIHshJHZhcnMocmMpfSB7Ci0gICAgICAgICAgICMgQkNMOiBPbmx5IGNoZWNrIGZvciB2YXJzKG5ldGxpc3QpIGlmIG5vdCBpbiBSQyBtb2RlCi0gICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhuZXRsaXN0KV19IHsKLSAgICAgICAgICAgICAgIyBCQ0w6IEFkZGVkIHN1YnN0IGFyb3VuZCB2YXJzKG5ldGxpc3QpCi0gICAgICAgICAgICAgIGZvcmVhY2ggZmlsZSBbc3Vic3QgJHZhcnMobmV0bGlzdCldIHsKLSAgICAgICAgICAgICAgICAgaWYgeyEkdmFycyhyYyl9IHsKLSAgICAgICAgICAgICAgICAgICAgbGFwcGVuZCBjaGVjayhmaWxlcykgJGZpbGUKLSAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgSU5GTzogICAgbmV0bGlzdCA9ICR2YXJzKG5ldGxpc3QpXG4iCi0gICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgIGlmIHsoJHZhcnMobmV0bGlzdF90eXBlKSA9PSAiVmVyaWxvZyIpfSB7Ci0gICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgRVJST1I6IEEgdmVyaWxvZyBuZXRsaXN0IGZpbGUgbXVzdCBiZSBkZWZpbmVkXG4iCi0gICAgICAgICAgICAgICAgIHNldCBlcnJvcnMoJGVycm9yX2NvdW50KSAiQSB2ZXJpbG9nIG5ldGxpc3QgZmlsZSBtdXN0IGJlIGRlZmluZWQiCi0gICAgICAgICAgICAgICAgIGluY3IgZXJyb3JfY291bnQKLSAgICAgICAgICAgICAgfQotICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0gICAgICB9IGVsc2VpZiB7W3N0cmluZyBjb21wYXJlIC1ub2Nhc2UgJHZhcnMobmV0bGlzdF90eXBlKSAib2EiXT09MH0gewotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICBJTkZPOiAgICBuZXRsaXN0X3R5cGUgPSAkdmFycyhuZXRsaXN0X3R5cGUpXG4iCi0gICAgICAgICBmb3JlYWNoIHJlcXVpcmVkICJvYV9yZWZfbGliIG9hX2Rlc2lnbl9saWIgb2FfZGVzaWduX2NlbGwgb2FfZGVzaWduX3ZpZXciIHsKLSAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkcmVxdWlyZWQpXSAmJiAoJHZhcnMoJHJlcXVpcmVkKSAhPSAiIil9IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgSU5GTzogICAgICAgJHJlcXVpcmVkID0gJHZhcnMoJHJlcXVpcmVkKVxuIgotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgRVJST1I6IFZhcmlhYmxlICRyZXF1aXJlZCBtdXN0IGJlIGRlZmluZWQgd2hlbiBuZXRsaXN0X3R5cGUgaXMgb3BlbiBhY2Nlc3MiCi0gICAgICAgICAgICAgICBzZXQgZXJyb3JzKCRlcnJvcl9jb3VudCkgIlZhcmlhYmxlICRyZXF1aXJlZCBtdXN0IGJlIGRlZmluZWQgd2hlbiBuZXRsaXN0X3R5cGUgaXMgb3BlbiBhY2Nlc3MiCi0gICAgICAgICAgICAgICBpbmNyIGVycm9yX2NvdW50Ci0gICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0gICAgICB9Ci0gICAgICBpZiB7W3N0cmluZyBjb21wYXJlIC1ub2Nhc2UgJHZhcnMoZGJzX2Zvcm1hdCkgIm9hIl09PTB9IHsKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgSU5GTzogICAgZGJzX2Zvcm1hdCA9ICR2YXJzKGRic19mb3JtYXQpXG4iCi0gICAgICAgICBmb3JlYWNoIHJlcXVpcmVkICJvYV9yZWZfbGliIG9hX2Rlc2lnbl9saWIgb2FfYWJzdHJhY3RfbmFtZSBvYV9sYXlvdXRfbmFtZSIgewotICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCRyZXF1aXJlZCldICYmICgkdmFycygkcmVxdWlyZWQpICE9ICIiKX0gewotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICBJTkZPOiAgICAgICAkcmVxdWlyZWQgPSAkdmFycygkcmVxdWlyZWQpXG4iCi0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICBFUlJPUjogVmFyaWFibGUgJHJlcXVpcmVkIG11c3QgYmUgZGVmaW5lZCB3aGVuIGRic19mb3JtYXQgaXMgb3BlbiBhY2Nlc3MiCi0gICAgICAgICAgICAgICBzZXQgZXJyb3JzKCRlcnJvcl9jb3VudCkgIlZhcmlhYmxlICRyZXF1aXJlZCBtdXN0IGJlIGRlZmluZWQgd2hlbiBkYnNfZm9ybWF0IGlzIG9wZW4gYWNjZXNzIgotICAgICAgICAgICAgICAgaW5jciBlcnJvcl9jb3VudAotICAgICAgICAgICAgfQotICAgICAgICAgfQotICAgICAgfQotICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGVuYWJsZV9sdnMpXSAmJiAkdmFycyhlbmFibGVfbHZzKX0gewotICAgICAgICAgaWYge1tzdHJpbmcgY29tcGFyZSAtbm9jYXNlICR2YXJzKGRic19mb3JtYXQpICJvYSJdIT0wfSB7Ci0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIFdBUk5JTkc6IFZhcmlhYmxlIGVuYWJsZV9sdnMgaXMgb25seSBhbGxvd2VkIHdoZW4gZGJzX2Zvcm1hdCBpcyBvcGVuIGFjY2VzcyIKLSAgICAgICAgICAgIHNldCB3YXJuaW5ncygkd2FybmluZ19jb3VudCkgIlZhcmlhYmxlIGVuYWJsZV9sdnMgaXMgb25seSBhbGxvd2VkIHdoZW4gZGJzX2Zvcm1hdCBpcyBvcGVuIGFjY2VzcyIKLSAgICAgICAgICAgIGluY3Igd2FybmluZ19jb3VudAotICAgICAgICAgICAgc2V0IHZhcnMoZW5hYmxlX2x2cykgZmFsc2UKLSAgICAgICAgIH0KLSAgICAgIH0KLQotIyAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhuZXRsaXN0KV19IHsKLSMgICAgICAgICBmb3JlYWNoIGZpbGUgJHZhcnMobmV0bGlzdCkgewotIyAgICAgICAgICAgIGxhcHBlbmQgY2hlY2soZmlsZXMpICRmaWxlCi0jICAgICAgICAgfQotIyAgICAgIH0gZWxzZSB7Ci0jICAgICAgICAgaWYgeyR2YXJzKG5ldGxpc3RfdHlwZSkgPT0gIlZlcmlsb2cifSB7Ci0jICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICBFUlJPUjogQSB2ZXJpbG9nIG5ldGxpc3QgZmlsZSBtdXN0IGJlIGRlZmluZWRcbiIKLSMgICAgICAgICAgICBzZXQgZXJyb3JzKCRlcnJvcl9jb3VudCkgIkEgdmVyaWxvZyBuZXRsaXN0IGZpbGUgbXVzdCBiZSBkZWZpbmVkIgotIyAgICAgICAgICAgIGluY3IgZXJyb3JfY291bnQKLSMKLSMgICAgICAgICB9Ci0jICAgICAgfQotCi0gICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoY3RzX3NwZWMpXSAmJiAoJHZhcnMoY3RzX2VuZ2luZSkgPT0gImNjb3B0Iil9IHsKLSMgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIEVSUk9SOiBWYXJpYWJsZSBjdHNfc3BlYyBkZWZpbmVkIGFuZCBjdHNfZW5naW5lIGlzIHNldCB0byBjY29wdFxuIgotIyAgICAgICAgIHNldCBlcnJvcnMoJGVycm9yX2NvdW50KSAiVmFyaWFibGUgY3RzX3NwZWMgZGVmaW5lZCBhbmQgY3RzX2VuZ2luZSBpcyBzZXQgdG8gY2NvcHQiCi0jICAgICAgICAgaW5jciBlcnJvcl9jb3VudAotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICBXQVJOSU5HOiBWYXJpYWJsZSBjdHNfc3BlYyBkZWZpbmVkIGFuZCBjdHNfZW5naW5lIGlzIHNldCB0byBjY29wdFxuIgotICAgICAgICAgc2V0IHdhcm5pbmdzKCR3YXJuaW5nX2NvdW50KSAiVmFyaWFibGUgY3RzX3NwZWMgZGVmaW5lZCBhbmQgY3RzX2VuZ2luZSBpcyBzZXQgdG8gY2NvcHQiCi0gICAgICAgICBpbmNyIHdhcm5pbmdfY291bnQKLSAgICAgICAgIGZvcmVhY2ggZmlsZSAkdmFycyhjdHNfc3BlYykgewotICAgICAgICAgICAgbGFwcGVuZCBjaGVjayhmaWxlcykgJGZpbGUKLSAgICAgICAgIH0KLSAgICAgIH0KLQotIyAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhjcGZfZmlsZSldICYmICR2YXJzKGNwZl90aW1pbmcpfSB7Ci0jICAgICAgICAgc2V0IHJlcXVpcmVkX2xpc3QgImZsb3cgcHJvY2VzcyBsaWJyYXJ5X3NldHMgcmNfY29ybmVycyBkZWxheV9jb3JuZXJzIgotIyAgICAgIH0gZWxzZSB7Ci0gICAgICAgICBzZXQgcmVxdWlyZWRfbGlzdCAiZmxvdyBwcm9jZXNzIGxpYnJhcnlfc2V0cyByY19jb3JuZXJzIGRlbGF5X2Nvcm5lcnMgc2V0dXBfYW5hbHlzaXNfdmlld3MgXAotICAgICAgICAgICAgICAgICAgICAgICBob2xkX2FuYWx5c2lzX3ZpZXdzIGFjdGl2ZV9zZXR1cF92aWV3cyBhY3RpdmVfaG9sZF92aWV3cyBkZWZhdWx0X3NldHVwX3ZpZXcgZGVmYXVsdF9ob2xkX3ZpZXciCi0jICAgICAgfQotCi0gICAgICBmb3JlYWNoIHJlcXVpcmVkICRyZXF1aXJlZF9saXN0IHsKLSAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkcmVxdWlyZWQpXSAmJiAoJHZhcnMoJHJlcXVpcmVkKSAhPSAiIil9IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgSU5GTzogICAgJHJlcXVpcmVkID0gJHZhcnMoJHJlcXVpcmVkKVxuIgotICAgICAgICAgICAgICAgaWYgeyRyZXF1aXJlZCA9PSAiZmxvdyJ9IHsKLSAgICAgICAgICAgICAgICAgIGlmIHsoW2luZm8gZXhpc3RzIHZhcnMocGFydGl0aW9uX2xpc3QpXSB8fCAoJHZhcnMoaWxtX2xpc3QpICE9ICIiKSkgJiYgKCR2YXJzKGZsb3cpICE9ICJtbW1jIil9IHsKLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgRVJST1I6IEZsb3cgdmFyaWFibGUgdmFycyhmbG93KSBtdXN0IGJlIFwibW1tY1wiIHdoZW4gSUxNcyBhcmUgZGVmaW5lZFxuIgotICAgICAgICAgICAgICAgICAgICAgc2V0IGVycm9ycygkZXJyb3JfY291bnQpICIjICBFUlJPUjogRmxvdyB2YXJpYWJsZSB2YXJzKGZsb3cpIG11c3QgYmUgXCJtbW1jXCIgd2hlbiBJTE1zIGFyZSBkZWZpbmVkIgotICAgICAgICAgICAgICAgICAgICAgaW5jciBlcnJvcl9jb3VudAotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgfQotICAgICAgICAgfQotICAgICAgfQotCi0jICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycyh2aWV3X2RlZmluaXRpb25fdGNsKV19IHsKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICAgICAgICAgICAgICAgICBMaWJyYXJ5IFNldHNcbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuIgotICAgICAgICAgZm9yZWFjaCBsaWJyYXJ5X3NldCAkdmFycyhsaWJyYXJ5X3NldHMpIHsKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgSU5GTzogJGxpYnJhcnlfc2V0OlxuIgotICAgICAgICAgICAgZm9yZWFjaCByZXF1aXJlZCAidGltaW5nIiB7Ci0gICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJGxpYnJhcnlfc2V0LCRyZXF1aXJlZCldICYmICgkdmFycygkbGlicmFyeV9zZXQsJHJlcXVpcmVkKSAhPSAiIil9IHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgSU5GTzogICAgJHJlcXVpcmVkID0gXG4iCi0gICAgICAgICAgICAgICAgICBmb3JlYWNoIGxpYiAkdmFycygkbGlicmFyeV9zZXQsJHJlcXVpcmVkKSB7Ci0gICAjICAgICAgICAgICAgICAgICAgbGFwcGVuZCBjaGVjayhmaWxlcykgJGxpYgotICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICBJTkZPOiAgICAgICAkbGliXG4iCi0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgaWYge1tGRjo6aXNfbHBfZmxvd119IHsKLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgV0FSTklORzogVmFyaWFibGUgdmFycygkbGlicmFyeV9zZXQsJHJlcXVpcmVkKSBub3QgZGVmaW5lZFxuIgotICAgICAgICAgICAgICAgICAgICAgc2V0IHdhcm5pbmdzKCR3YXJuaW5nX2NvdW50KSAiVmFyaWFibGUgdmFycygkbGlicmFyeV9zZXQsJHJlcXVpcmVkKSBub3QgZGVmaW5lZCIKLSAgICAgICAgICAgICAgICAgICAgIGluY3Igd2FybmluZ19jb3VudAotICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgRVJST1I6IFJlcXVpcmVkIHZhcmlhYmxlIHZhcnMoJGxpYnJhcnlfc2V0LCRyZXF1aXJlZCkgbm90IGRlZmluZWQgb3IgZW1wdHlcbiIKLSAgICAgICAgICAgICAgICAgICAgIHNldCBlcnJvcnMoJGVycm9yX2NvdW50KSAiUmVxdWlyZWQgdmFyaWFibGUgdmFycygkbGlicmFyeV9zZXQsJHJlcXVpcmVkKSBub3QgZGVmaW5lZCBvciBlbXB0eSIKLSAgICAgICAgICAgICAgICAgICAgIGluY3IgZXJyb3JfY291bnQKLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkbGlicmFyeV9zZXQsYW9jdildfSB7Ci0gICAgICAgICAgICAgICBmb3JlYWNoIGZpbGUgJHZhcnMoJGxpYnJhcnlfc2V0LGFvY3YpIHsKLSAgICAgICAgICAgICAgICAgIGlmIHshW2ZpbGUgZXhpc3RzICRmaWxlXX0gewotICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICBXQVJOSU5HOiBBT0NWIHRhYmxlIGZpbGUgZG9lcyBub3QgZXhpc3QgKCRmaWxlKVxuIgotICAgICAgICAgICAgICAgICAgICAgc2V0IHdhcm5pbmdzKCR3YXJuaW5nX2NvdW50KSAiQU9DViB0YWJsZSBmaWxlIGRvZXMgbm90IGV4aXN0ICgkZmlsZSkiCi0gICAgICAgICAgICAgICAgICAgICBpbmNyIHdhcm5pbmdfY291bnQKLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBpZiB7JHZhcnMoZW5hYmxlX2FvY3YpfSB7Ci0gICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIFdBUk5JTkc6IEFPQ1YgZW5hYmxlZCwgYnV0IHRhYmxlIG5vdCBwcm92aWRlZCBmb3IgJGxpYnJhcnlfc2V0XG4iCi0gICAgICAgICAgICAgICAgICAgICBzZXQgd2FybmluZ3MoJHdhcm5pbmdfY291bnQpICJBT0NWIGVuYWJsZWQsIGJ1dCB0YWJsZSBub3QgcHJvdmlkZWQgZm9yICRsaWJyYXJ5X3NldCIKLSAgICAgICAgICAgICAgICAgICAgIGluY3Igd2FybmluZ19jb3VudAotICAgICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJGxpYnJhcnlfc2V0LHNvY3YpXX0gewotICAgICAgICAgICAgICAgZm9yZWFjaCBmaWxlICR2YXJzKCRsaWJyYXJ5X3NldCxzb2N2KSB7Ci0gICAgICAgICAgICAgICAgICBpZiB7IVtmaWxlIGV4aXN0cyAkZmlsZV19IHsKLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgV0FSTklORzogU09DViB0YWJsZSBmaWxlIGRvZXMgbm90IGV4aXN0ICgkZmlsZSlcbiIKLSAgICAgICAgICAgICAgICAgICAgIHNldCB3YXJuaW5ncygkd2FybmluZ19jb3VudCkgIlNPQ1YgdGFibGUgZmlsZSBkb2VzIG5vdCBleGlzdCAoJGZpbGUpIgotICAgICAgICAgICAgICAgICAgICAgaW5jciB3YXJuaW5nX2NvdW50Ci0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgaWYgeyR2YXJzKGVuYWJsZV9zb2N2KX0gewotICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICBXQVJOSU5HOiBTT0NWIGVuYWJsZWQsIGJ1dCB0YWJsZSBub3QgcHJvdmlkZWQgZm9yICRsaWJyYXJ5X3NldFxuIgotICAgICAgICAgICAgICAgICAgICAgc2V0IHdhcm5pbmdzKCR3YXJuaW5nX2NvdW50KSAiU09DViBlbmFibGVkLCBidXQgdGFibGUgbm90IHByb3ZpZGVkIGZvciAkbGlicmFyeV9zZXQiCi0gICAgICAgICAgICAgICAgICAgICBpbmNyIHdhcm5pbmdfY291bnQKLSAgICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCRsaWJyYXJ5X3NldCxzaSldfSB7Ci0gICAgICAgICAgICAgICBmb3JlYWNoIGZpbGUgJHZhcnMoJGxpYnJhcnlfc2V0LHNpKSB7Ci0gICAgICAgICAgICAgICAgICBpZiB7IVtmaWxlIGV4aXN0cyAkZmlsZV19IHsKLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgV0FSTklORzogQ0RCIGZpbGUgZG9lcyBub3QgZXhpc3QgKCRmaWxlKVxuIgotICAgICAgICAgICAgICAgICAgICAgc2V0IHdhcm5pbmdzKCR3YXJuaW5nX2NvdW50KSAiQ0RCIGZpbGUgZG9lcyBub3QgZXhpc3QgKCRmaWxlKSIKLSAgICAgICAgICAgICAgICAgICAgIGluY3Igd2FybmluZ19jb3VudAotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfSAKLSAgICAgICAgIH0KLSMgICAgICB9Ci0KLSAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICAgICAgICAgICAgICAgICBMRUYgRmlsZXNcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuIgotICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGxlZl9maWxlcyldfSB7Ci0gICAgICAgICBmb3JlYWNoIGZpbGUgJHZhcnMobGVmX2ZpbGVzKSB7Ci0gICAjICAgIGxhcHBlbmQgY2hlY2soZmlsZXMpICRmaWxlCi0gICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICBJTkZPOiAkZmlsZVxuIgotICAgICAgICAgfQotICAgICAgfSBlbHNlIHsKLSAgICAgICAgIGlmIHsoW3N0cmluZyB0b2xvd2VyICR2YXJzKG5ldGxpc3RfdHlwZSldID09ICJ2ZXJpbG9nIikgJiYgKCFbaW5mbyBleGlzdHMgdmFycyhvYV9yZWZfbGliKV0pfSB7Ci0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIEVSUk9SOiBSZXF1aXJlZCB2YXJpYWJsZSB2YXJzKGxlZl9maWxlcykgbm90IGRlZmluZWRcbiIKLSAgICAgICAgICAgIHNldCBlcnJvcnMoJGVycm9yX2NvdW50KSAiUmVxdWlyZWQgdmFyaWFibGUgdmFycyhsZWZfZmlsZXMpIG5vdCBkZWZpbmVkIgotICAgICAgICAgICAgaW5jciBlcnJvcl9jb3VudAotICAgICAgICAgfQotICAgICAgfQotCi0gICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMocGFydGl0aW9uX2xpc3QpXX0gewotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgICAgICAgICAgICAgICAgIEhpZXJhcmNoaWNhbCBcbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICBJTkZPOiBwYXJ0aXRpb25zID0gJHZhcnMocGFydGl0aW9uX2xpc3QpXG4iCi0gICAgICAgICBzZXQgY3RzX3NwZWMgW0ZGOjpnZXRfYnlfc3VmZml4IHZhcnMgIixjdHNfc3BlYyJdIAotICAgICAgICAgaWYgeyRjdHNfc3BlYyAhPSAiIn0gewotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICAgQ1RTIFNwZWNzIDogXG4iCi0gICAgICAgICAgICBmb3JlYWNoIHBhcnRpdGlvbiAkY3RzX3NwZWMgewotICAgICAgICAgICAgICAgbGFwcGVuZCBjaGVjayhmaWxlcykgJHZhcnMoJHBhcnRpdGlvbixjdHNfc3BlYykKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgICAgICRwYXJ0aXRpb24gLT4gJHZhcnMoJHBhcnRpdGlvbixjdHNfc3BlYylcbiIKLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0KLSAgICAgICAgIHNldCBsYXRlbmN5X3NkYyBbRkY6OmdldF9ieV9zdWZmaXggdmFycyAiLGxhdGVuY3lfc2RjIl0KLSAgICAgICAgIGlmIHskbGF0ZW5jeV9zZGMgIT0gIiJ9IHsKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgIExhdGVuY3kgU0RDcyA6XG4iCi0gICAgICAgICAgICBmb3JlYWNoIHBhcnRpdGlvbiAkbGF0ZW5jeV9zZGMgewotICAgICAgICAgICAgICAgbGFwcGVuZCBjaGVjayhmaWxlcykgJHZhcnMoJHBhcnRpdGlvbixsYXRlbmN5X3NkYykKLSAgICAgICAgICAgICAgIGlmIHtbbGxlbmd0aCBbc3BsaXQgJHBhcnRpdGlvbiAiLCJdXSA9PSAxfSB7ICAKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgICAgICRwYXJ0aXRpb24gLT4gJHZhcnMoJHBhcnRpdGlvbixsYXRlbmN5X3NkYylcbiIKLSAgICAgICAgICAgICAgIH0gZWxzZSB7IAotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICAgICAgW2xpbmRleCBbc3BsaXQgJHBhcnRpdGlvbiAiLCJdIDBdIChbbGluZGV4IFtzcGxpdCAkcGFydGl0aW9uICIsIl0gMV0pIC0+ICR2YXJzKCRwYXJ0aXRpb24sbGF0ZW5jeV9zZGMpXG4iCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0gICAgICB9Ci0gICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoZW5hYmxlX3BhYyldICYmICR2YXJzKGVuYWJsZV9wYWMpfSB7Ci0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIFdBUk5JTkc6IFBBQyBpcyBvYnNvbGV0ZSBhbmQgd2lsbCBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHZlcnNpb24uIENvbnNpZGVyIHVzaW5nIFNpZ24tb2ZmIEVDTy4iCi0gICAgICAgICBzZXQgd2FybmluZ3MoJHdhcm5pbmdfY291bnQpICJQQUMgaXMgb2Jzb2xldGUgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSB2ZXJzaW9uLiBDb25zaWRlciB1c2luZyBTaWduLW9mZiBFQ08uIgotICAgICAgICAgaW5jciB3YXJuaW5nX2NvdW50Ci0gICAgICAgICBzZXQgcGFjX21vZGUgW0ZGOjpnZXRfYnlfc3VmZml4IHZhcnMgIixwYWNfbW9kZSJdCi0gICAgICAgICBpZiB7JHBhY19tb2RlICE9ICIifSB7Ci0gICAgICAgICAgICBzZXQgcGFjX2xpc3QgW2xpc3QgInJlYWRfb25seSIgImludGVyZmFjZSIgImlsbSIgImFsbCJdCi0gICAgICAgICAgICBmb3JlYWNoIHBhYyAkcGFjX21vZGUgewotICAgICAgICAgICAgICAgaWYge1tsc2VhcmNoICRwYWNfbGlzdCAkdmFycygkcGFjLHBhY19tb2RlKV0gPT0gLTF9IHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgRVJST1I6ICRwYWMgcGFjX21vZGUgaW52YWxpZCB2YWx1ZTsgbXVzdCBiZSBvbmUgb2YgXCckcGFjX2xpc3RcJ1xuIgotICAgICAgICAgICAgICAgICAgc2V0IGVycm9ycygkZXJyb3JfY291bnQpICIkcGFjIHBhY19tb2RlIGludmFsaWQgdmFsdWU7IG11c3QgYmUgb25lIG9mIFwnJHBhY19saXN0XCciIAotICAgICAgICAgICAgICAgICAgaW5jciBlcnJvcl9jb3VudAotICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0gICAgICB9Ci0gICAgICBpZiB7W0ZGOjppc19scF9mbG93XX0gewotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgICAgICAgICAgICAgICAgTG93IFBvd2VyIFxuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4iCi0gICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoaWVlZTE4MDFfZmlsZSldfSB7Ci0gICAgICAgICAgICAgc2V0IHdhcm5pbmdzKCR3YXJuaW5nX2NvdW50KSAiVXNpbmcgdmFycyhpZWVlMTgwMV9maWxlKSByZXF1aXJlcyB0aGUgZm9sbG93aW5nIGxpbWl0ZWQgYWNjZXNzIGZlYXR1cmUgOiBtdnNTdXBwb3J0SUVFRTE4MDEiCi0gICAgICAgICAgICAgaW5jciB3YXJuaW5nX2NvdW50Ci0gICAgICAgICB9Ci0gICAgICAgICBzZXQgbnVtX3Bvd2VyX2ludGVudF9maWxlcyAwCi0gICAgICAgICBmb3JlYWNoIHYge2NwZl9maWxlIGllZWUxODAxX2ZpbGV9IHsKLSAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkdildfSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIElORk86ICR2ID0gJHZhcnMoJHYpXG4iCi0gICAgICAgICAgICAgICBsYXBwZW5kIGNoZWNrKGZpbGVzKSAkdmFycygkdikKLSAgICAgICAgICAgICAgIGluY3IgbnVtX3Bvd2VyX2ludGVudF9maWxlcwotICAgICAgICAgICAgfQotICAgICAgICAgfQotICAgICAgICAgaWYgeyRudW1fcG93ZXJfaW50ZW50X2ZpbGVzID4gMX0gewotICAgICAgICAgICAgc2V0IGVycm9ycygkZXJyb3JfY291bnQpICJ2YXJzKGNwZl9maWxlKSBhbmQgdmFycyhpZWVlMTgwMV9maWxlKSBtYXkgbm90IGJvdGggYmUgc3BlY2lmaWVkLiIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgRVJST1I6ICRlcnJvcnMoJGVycm9yX2NvdW50KVxuIgotICAgICAgICAgICAgaW5jciBlcnJvcl9jb3VudAotICAgICAgICAgfQotCi0gICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMocG93ZXJfZG9tYWlucyldICYmICgkdmFycyhwb3dlcl9kb21haW5zKSAhPSAiIil9IHsKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgSU5GTzogcG93ZXJfZG9tYWlucyA9ICAkdmFycyhwb3dlcl9kb21haW5zKVxuIgotICAgICAgICAgICAgZm9yZWFjaCBkb21haW4gJHZhcnMocG93ZXJfZG9tYWlucykgewotICAgICAgICAgICAgICAgc2V0IHByaW50KCRkb21haW4pIDEKLSAgICAgICAgICAgICAgIGZvcmVhY2ggb3B0aW9uYWwgImZpbGxlcl9jZWxscyB0aWVfY2VsbHMgZW5kY2FwcyB3ZWxsdGFwcyIgewotICAgICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCRkb21haW4sJG9wdGlvbmFsKV0gJiYgKCR2YXJzKCRkb21haW4sJG9wdGlvbmFsKSAhPSAiIil9IHsKLSAgICAgICAgICAgICAgICAgICAgIGlmIHskcHJpbnQoJGRvbWFpbil9IHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgSU5GTzogICAgJGRvbWFpbjpcbiIKLSAgICAgICAgICAgICAgICAgICAgICAgIHNldCBwcmludCgkZG9tYWluKSAwCi0gICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIElORk86ICAgICAgICRvcHRpb25hbCA9ICR2YXJzKCRkb21haW4sJG9wdGlvbmFsKVxuIgotICAgICAgICAgICAgICAgICAgfQotIyAgICAgICAgICAgICAgICAgaWYgeyRvcHRpb25hbCA9PSAiZmlsbGVyX2NlbGxzfSB7Ci0jICAgICAgICAgICAgICAgICAgICAgc2V0IHByb2Nlc3MgW3JlZ3N1YiAibm0iICR2YXJzKHByb2Nlc3MpICIiXQotIyAgICAgICAgICAgICAgICAgICAgIGlmIHtbZXhwciAkcHJvY2VzcyA8PSAyOCldICYmIFtpbmZvIGV4aXN0cyB2YXJzKGZpbGxlcl9jZWxscyxtaW5fZ2FwKV19IHsKLSMgICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIEVSUk9SOiBGb3IgcHJvY2VzcyBub2RlIDwgMjhubSwgdmFyaWFibGUgdmFycyhmaWxsZXJfY2VsbHMsbWluX2dhcCkgaXMgcmVxdWlyZWRcbiIKLSMgICAgICAgICAgICAgICAgICAgICAgICBzZXQgZXJyb3JzKCRlcnJvcl9jb3VudCkgIkZvciBwcm9jZXNzIG5vZGUgPCAyOG5tLCB2YXJpYWJsZSB2YXJzKGZpbGxlcl9jZWxscyxtaW5fZ2FwKSBpcyByZXF1aXJlZCIKLSMgICAgICAgICAgICAgICAgICAgICAgICBpbmNyIGVycm9yX2NvdW50Ci0jICAgICAgICAgICAgICAgICAgICAgfQotIyAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIFdBUk5JTkc6IFJlY29tbWVuZGVkIHZhcmlhYmxlIHZhcnMocG93ZXJfZG9tYWlucykgbm90IGRlZmluZWRcbiIKLSAgICAgICAgICAgIHNldCB3YXJuaW5ncygkd2FybmluZ19jb3VudCkgIlJlY29tbWVuZGVkIHZhcmlhYmxlIHZhcnMocG93ZXJfZG9tYWlucykgbm90IGRlZmluZWQiCi0gICAgICAgICAgICBpbmNyIHdhcm5pbmdfY291bnQKLSAgICAgICAgIH0KLSAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhwb3dlcl9hbmFseXNpc192aWV3KV0gJiYgKCR2YXJzKHBvd2VyX2FuYWx5c2lzX3ZpZXcpICE9ICIiKX0gewotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICBJTkZPOiBwb3dlcl9hbmFseXNpc192aWV3ID0gICR2YXJzKHBvd2VyX2FuYWx5c2lzX3ZpZXcpXG4iCi0gICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICBXQVJOSU5HOiBSZWNvbW1lbmRlZCB2YXJpYWJsZSB2YXJzKHBvd2VyX2FuYWx5c2lzX3ZpZXcpIG5vdCBkZWZpbmVkXG4iCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgICAgICAgICAgIFdpbGwgZGVmYXVsdCB0byB0aGUgZGVmYXVsdCBzZXR1cCBhbmFseXNpcyB2aWV3XG4iCi0gICAgICAgICAgICBzZXQgd2FybmluZ3MoJHdhcm5pbmdfY291bnQpICJSZWNvbW1lbmRlZCB2YXJpYWJsZSB2YXJzKHBvd2VyX2FuYWx5c2lzX3ZpZXcpIG5vdCBkZWZpbmVkIgotICAgICAgICAgICAgaW5jciB3YXJuaW5nX2NvdW50Ci0gICAgICAgICB9Ci0gICAgICB9Ci0KLSMgICAgICBpZiB7IVtpbmZvIGV4aXN0cyB2YXJzKHZpZXdfZGVmaW5pdGlvbl90Y2wpXX0gewotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgICAgICAgICAgICAgICAgICBSQyBDb3JuZXJzXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiIKLSAgICAgICAgIHNldCBjaGVjayhyY19jb3JuZXJzKSBbbGlzdF0KLSAgICAgICAgIGZvcmVhY2ggcmNfY29ybmVyICR2YXJzKHJjX2Nvcm5lcnMpIHsKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgSU5GTzogJHJjX2Nvcm5lcjpcbiIKLSAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkcmNfY29ybmVyLGNhcF90YWJsZSldICYmICgkdmFycygkcmNfY29ybmVyLGNhcF90YWJsZSkgIT0gIiIpfSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIElORk86ICAgIGNhcF90YWJsZSA9ICR2YXJzKCRyY19jb3JuZXIsY2FwX3RhYmxlKVxuIgotICAgICAgICAgICAgICAgbGFwcGVuZCBjaGVjayhyY19jb3JuZXJzKSAkdmFycygkcmNfY29ybmVyLGNhcF90YWJsZSkKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBpZiB7IVtpbmZvIGV4aXN0cyB2YXJzKCRyY19jb3JuZXIscXhfdGVjaF9maWxlKV19IHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgRVJST1I6IFZhcmlhYmxlIHZhcnMoJHJjX2Nvcm5lcixjYXBfdGFibGUpIG9yIHZhcnMoJHJjX2Nvcm5lcixxeF90ZWNoX2ZpbGUpIG11c3QgYmUgZGVmaW5lZFxuIgotICAgICAgICAgICAgICAgICAgc2V0IGVycm9ycygkZXJyb3JfY291bnQpICJWYXJpYWJsZSB2YXJzKCRyY19jb3JuZXIsY2FwX3RhYmxlKSBvciB2YXJzKCRyY19jb3JuZXIscXhfdGVjaF9maWxlKSBtdXN0IGJlIGRlZmluZWQiCi0gICAgICAgICAgICAgICAgICBpbmNyIGVycm9yX2NvdW50Ci0gICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICBpZiB7W2xpbmRleCBbc3BsaXQgJHZhcnModmVyc2lvbikgIi4iXSAgMF0gPCAxNX0gewotICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgSU5GTzogVmFyaWFibGUgdmFycygkcmNfY29ybmVyLGNhcF90YWJsZSkgbm90IGRlZmluZWRcbiIKLSAgICAgICAgICAgICAgICAgICBzZXQgaW5mb3MoJGluZm9fY291bnQpICJWYXJpYWJsZSB2YXJzKCRyY19jb3JuZXIsY2FwX3RhYmxlKSBub3QgZGVmaW5lZCIKLSAgICAgICAgICAgICAgICAgICBpbmNyIGluZm9fY291bnQKLSAgICAgICAgICAgICAgICAgfSAKLSAgICAgICAgICAgICAgIH0gCi0gICAgICAgICAgICB9Ci0jICAgICAgICAgICAgaWYgeyR2YXJzKGN0c19lbmdpbmUpICE9ICJjdHMifSB7Ci0jICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCRyY19jb3JuZXIsYXRmX2ZpbGUpXSAmJiAoJHZhcnMoJHJjX2Nvcm5lcixhdGZfZmlsZSkgIT0gIiIpfSB7Ci0jICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICBJTkZPOiAgICAgYXRmX2ZpbGUgPSAkdmFycygkcmNfY29ybmVyLGF0Zl9maWxlKVxuIgotIyAgICAgICAgICAgICAgICAgIGxhcHBlbmQgY2hlY2socmNfY29ybmVycykgJHZhcnMoJHJjX2Nvcm5lcixhdGZfZmlsZSkKLSMgICAgICAgICAgICAgICB9IGVsc2UgewotIyAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgV0FSTklORzogUmVjb21tZW5kZWQgdmFyaWFibGUgdmFycygkcmNfY29ybmVyLGF0Zl9maWxlKSBub3QgZGVmaW5lZFxuIgotIyAgICAgICAgICAgICAgICAgIHNldCB3YXJuaW5ncygkd2FybmluZ19jb3VudCkgIlJlY29tbWVuZGVkIHZhcmlhYmxlIHZhcnMoJHJjX2Nvcm5lcixhdGZfZmlsZSkgbm90IGRlZmluZWQiCi0jICAgICAgICAgICAgICAgICAgaW5jciB3YXJuaW5nX2NvdW50Ci0jICAgICAgICAgICAgICAgfQotIyAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkcmNfY29ybmVyLFQpXSAmJiAoJHZhcnMoJHJjX2Nvcm5lcixUKSAhPSAiIil9IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgSU5GTzogICAgdGVtcGVyYXR1cmUgPSAkdmFycygkcmNfY29ybmVyLFQpXG4iCi0gICAgICAgICAgICAgICBzZXQgdmFycygkcmNfY29ybmVyLHRlbXBlcmF0dXJlKSAkdmFycygkcmNfY29ybmVyLFQpCi0gICAgICAgICAgICAgICBsYXBwZW5kIGNoZWNrKGludGVnZXJzKSAiJHJjX2Nvcm5lcixUIgotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgV0FSTklORzogUmVjb21tZW5kZWQgdmFyaWFibGUgdmFycygkcmNfY29ybmVyLFQpIG5vdCBkZWZpbmVkXG4iCi0gICAgICAgICAgICAgICBzZXQgd2FybmluZ3MoJHdhcm5pbmdfY291bnQpICJSZWNvbW1lbmRlZCB2YXJpYWJsZSB2YXJzKCRyY19jb3JuZXIsVCkgbm90IGRlZmluZWQiCi0gICAgICAgICAgICAgICBpbmNyIHdhcm5pbmdfY291bnQKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkcmNfY29ybmVyLHF4X3RlY2hfZmlsZSldICYmICgkdmFycygkcmNfY29ybmVyLHF4X3RlY2hfZmlsZSkgIT0gIiIpfSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIElORk86ICAgIHF4X3RlY2hfZmlsZSA9ICR2YXJzKCRyY19jb3JuZXIscXhfdGVjaF9maWxlKVxuIgotICAgICAgICAgICAgICAgc2V0IHZhcnMoJHJjX2Nvcm5lcixxcmNfdGVjaCkgJHZhcnMoJHJjX2Nvcm5lcixxeF90ZWNoX2ZpbGUpCi0gICAgICAgICAgICAgICBsYXBwZW5kIGNoZWNrKHJjX2Nvcm5lcnMpICR2YXJzKCRyY19jb3JuZXIscXhfdGVjaF9maWxlKQotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhwb3N0cm91dGVfZXh0cmFjdGlvbl9lZmZvcnQpXSAmJiAoJHZhcnMocG9zdHJvdXRlX2V4dHJhY3Rpb25fZWZmb3J0KSAhPSAibG93Iil9IHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgRVJST1I6IHF4X3RlY2hfZmlsZSBub3QgZGVmaW5lZCBmb3IgJHJjX2Nvcm5lciBhbmQgcG9zdHJvdXRlX2V4dHJhY3Rpb25fZWZmb3J0IGlzIHNldCB0byAkdmFycyhwb3N0cm91dGVfZXh0cmFjdGlvbl9lZmZvcnQpXG4iCi0gICAgICAgICAgICAgICAgICBzZXQgZXJyb3JzKCRlcnJvcl9jb3VudCkgInF4X3RlY2hfZmlsZSBub3QgZGVmaW5lZCBmb3IgJHJjX2Nvcm5lciBhbmQgcG9zdHJvdXRlX2V4dHJhY3Rpb25fZWZmb3J0IGlzIHNldCB0byAkdmFycyhwb3N0cm91dGVfZXh0cmFjdGlvbl9lZmZvcnQpIgotICAgICAgICAgICAgICAgICAgaW5jciBlcnJvcl9jb3VudAotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKHNpZ25vZmZfZXh0cmFjdGlvbl9lZmZvcnQpXSAmJiAoJHZhcnMoc2lnbm9mZl9leHRyYWN0aW9uX2VmZm9ydCkgIT0gImxvdyIpfSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIEVSUk9SOiBxeF90ZWNoX2ZpbGUgbm90IGRlZmluZWQgZm9yICRyY19jb3JuZXIgYW5kIHNpZ25vZmZfZXh0cmFjdGlvbl9lZmZvcnQgaXMgc2V0IHRvICR2YXJzKHNpZ25vZmZfZXh0cmFjdGlvbl9lZmZvcnQpXG4iCi0gICAgICAgICAgICAgICAgICBzZXQgZXJyb3JzKCRlcnJvcl9jb3VudCkgInF4X3RlY2hfZmlsZSBub3QgZGVmaW5lZCBmb3IgJHJjX2Nvcm5lciBhbmQgc2lnbm9mZl9leHRyYWN0aW9uX2VmZm9ydCBpcyBzZXQgdG8gJHZhcnMoc2lnbm9mZl9leHRyYWN0aW9uX2VmZm9ydCkiCi0gICAjICAgICAgICAgICAgICAgc2V0IGVycm9ycygkZXJyb3JfY291bnQpICJSZXF1aXJlZCB2YXJpYWJsZSB2YXJzKCRyY19jb3JuZXIsY2FwX3RhYmxlKSBub3QgZGVmaW5lZCIKLSAgICAgICAgICAgICAgICAgIGluY3IgZXJyb3JfY291bnQKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0KLSAgIAotICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKG9wY29uZHMpXX0gewotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4iCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgICAgICAgICAgICAgT3BlcmF0aW5nIENvbmRpdGlvbnNcbiIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuIgotICAgICAgICAgICAgZm9yZWFjaCBvcGNvbmQgJHZhcnMob3Bjb25kcykgewotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICBJTkZPOiAkb3Bjb25kOlxuIgotICAgICAgICAgICAgICAgZm9yZWFjaCByZXF1aXJlZCAiUCBWIFQiIHsKLSAgICAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkb3Bjb25kLCRyZXF1aXJlZCldICYmICgkdmFycygkb3Bjb25kLCRyZXF1aXJlZCkgIT0gIiIpfSB7Ci0gICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIElORk86ICAgICRyZXF1aXJlZCA9ICR2YXJzKCRvcGNvbmQsJHJlcXVpcmVkKVxuIgotICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgRVJST1I6IFJlcXVpcmVkIHZhcmlhYmxlIHZhcnMoJG9wY29uZCwkcmVxdWlyZWQpIG5vdCBkZWZpbmVkXG4iCi0gICAgICAgICAgICAgICAgICAgICBzZXQgZXJyb3JzKCRlcnJvcl9jb3VudCkgIlJlcXVpcmVkIHZhcmlhYmxlIHZhcnMoJG9wY29uZCwkcmVxdWlyZWQpIG5vdCBkZWZpbmVkIgotICAgICAgICAgICAgICAgICAgICAgaW5jciBlcnJvcl9jb3VudAotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAgfQotICAKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICAgICAgICAgICAgICAgVGltaW5nIENvbmRpdGlvbnNcbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuIgotICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKHRpbWluZ19jb25kaXRpb25zKV19IHsKLSAgICAgICAgICAgICBmb3JlYWNoIHRpbWluZ19jb25kaXRpb24gJHZhcnModGltaW5nX2NvbmRpdGlvbnMpIHsKLSAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIElORk86ICR0aW1pbmdfY29uZGl0aW9uOlxuIgotICAgICAgICAgICAgICAgIGlmIHshW0ZGOjppc19scF9mbG93XX0gewotICAgICAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkdGltaW5nX2NvbmRpdGlvbixsaWJyYXJ5X3NldCldICYmICgkdmFycygkdGltaW5nX2NvbmRpdGlvbixsaWJyYXJ5X3NldCkgIT0gIiIpfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICBJTkZPOiAgICBsaWJyYXJ5X3NldCA9ICR2YXJzKCR0aW1pbmdfY29uZGl0aW9uLGxpYnJhcnlfc2V0KVxuIgotICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgZm9yZWFjaCBhZGRpdGlvbmFsICJlYXJseV9saWJyYXJ5X3NldCBsYXRlX2xpYnJhcnlfc2V0IiB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCR0aW1pbmdfY29uZGl0aW9uLCRhZGRpdGlvbmFsKV0gJiYgKCR2YXJzKCR0aW1pbmdfY29uZGl0aW9uLCRhZGRpdGlvbmFsKSAhPSAiIil9IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIElORk86ICAgICRhZGRpdGlvbmFsID0gJHZhcnMoJHRpbWluZ19jb25kaXRpb24sJGFkZGl0aW9uYWwpXG4iCi0gICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIEVSUk9SOiBSZXF1aXJlZCB2YXJpYWJsZSB2YXJzKCR0aW1pbmdfY29uZGl0aW9uLGxpYnJhcnlfc2V0KSBhbmQgdmFycygkdGltaW5nX2NvbmRpdGlvbiwkYWRkaXRpb25hbCkgbm90IGRlZmluZWRcbiIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXQgZXJyb3JzKCRlcnJvcl9jb3VudCkgIlJlcXVpcmVkIHZhcmlhYmxlIHZhcnMoJHRpbWluZ19jb25kaXRpb24sbGlicmFyeV9zZXQpIGFuZCB2YXJzKCR0aW1pbmdfY29uZGl0aW9uLCRhZGRpdGlvbmFsKSBub3QgZGVmaW5lZFxuIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluY3IgZXJyb3JfY291bnQKLSAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgZm9yZWFjaCBvcHRpb25hbCAib3Bjb25kIG9wY29uZF9saWJyYXJ5IGVhcmx5X29wY29uZF9saWJyYXJ5IGxhdGVfb3Bjb25kX2xpYnJhcnkiIHsKLSAgICAgICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJHRpbWluZ19jb25kaXRpb24sJG9wdGlvbmFsKV0gJiYgKCR2YXJzKCR0aW1pbmdfY29uZGl0aW9uLCRvcHRpb25hbCkgIT0gIiIpfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICBJTkZPOiAgICAkb3B0aW9uYWwgPSAkdmFycygkdGltaW5nX2NvbmRpdGlvbiwkb3B0aW9uYWwpXG4iCi0gICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICB9IAotICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICBmb3JlYWNoIGRlbGF5X2Nvcm5lciAkdmFycyhkZWxheV9jb3JuZXJzKSB7Ci0gICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICBJTkZPOiAkZGVsYXlfY29ybmVyOlxuIgotICAgICAgICAgICAgICAgIGlmIHshW0ZGOjppc19scF9mbG93XX0gewotICAgICAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkZGVsYXlfY29ybmVyLGxpYnJhcnlfc2V0KV0gJiYgKCR2YXJzKCRkZWxheV9jb3JuZXIsbGlicmFyeV9zZXQpICE9ICIiKX0gewotICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgSU5GTzogICAgbGlicmFyeV9zZXQgPSAkdmFycygkZGVsYXlfY29ybmVyLGxpYnJhcnlfc2V0KVxuIgotICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgZm9yZWFjaCBhZGRpdGlvbmFsICJlYXJseV9saWJyYXJ5X3NldCBsYXRlX2xpYnJhcnlfc2V0IiB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCRkZWxheV9jb3JuZXIsJGFkZGl0aW9uYWwpXSAmJiAoJHZhcnMoJGRlbGF5X2Nvcm5lciwkYWRkaXRpb25hbCkgIT0gIiIpfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICBJTkZPOiAgICAkYWRkaXRpb25hbCA9ICR2YXJzKCRkZWxheV9jb3JuZXIsJGFkZGl0aW9uYWwpXG4iCi0gICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIEVSUk9SOiBSZXF1aXJlZCB2YXJpYWJsZSB2YXJzKCRkZWxheV9jb3JuZXIsbGlicmFyeV9zZXQpIGFuZCB2YXJzKCRkZWxheV9jb3JuZXIsJGFkZGl0aW9uYWwpIG5vdCBkZWZpbmVkXG4iCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0IGVycm9ycygkZXJyb3JfY291bnQpICJSZXF1aXJlZCB2YXJpYWJsZSB2YXJzKCRkZWxheV9jb3JuZXIsbGlicmFyeV9zZXQpIGFuZCB2YXJzKCRkZWxheV9jb3JuZXIsJGFkZGl0aW9uYWwpIG5vdCBkZWZpbmVkXG4iCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5jciBlcnJvcl9jb3VudAotICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBmb3JlYWNoIG9wdGlvbmFsICJvcGNvbmQgb3Bjb25kX2xpYnJhcnkgZWFybHlfb3Bjb25kX2xpYnJhcnkgbGF0ZV9vcGNvbmRfbGlicmFyeSIgewotICAgICAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkZGVsYXlfY29ybmVyLCRvcHRpb25hbCldICYmICgkdmFycygkZGVsYXlfY29ybmVyLCRvcHRpb25hbCkgIT0gIiIpfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICBJTkZPOiAgICAkb3B0aW9uYWwgPSAkdmFycygkZGVsYXlfY29ybmVyLCRvcHRpb25hbClcbiIKLSAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgIH0gCi0gICAgICAgICB9Ci0gICAKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICAgICAgICAgICAgICAgRGVsYXkgQ29ybmVyc1xuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4iCi0gICAgICAgICBzZXQgZ29vZF9jb3JuZXJzIFtsaXN0XQotICAgICAgICAgZm9yZWFjaCBkZWxheV9jb3JuZXIgJHZhcnMoZGVsYXlfY29ybmVycykgewotICAgICAgICAgICAgc2V0IGFyZ3MgMAotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICBJTkZPOiAkZGVsYXlfY29ybmVyOlxuIgotICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCRkZWxheV9jb3JuZXIscmNfY29ybmVyKV0gJiYgKCR2YXJzKCRkZWxheV9jb3JuZXIscmNfY29ybmVyKSAhPSAiIil9IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgSU5GTzogICAgcmNfY29ybmVyID0gJHZhcnMoJGRlbGF5X2Nvcm5lcixyY19jb3JuZXIpXG4iCi0gICAgICAgICAgICAgICBpbmNyIGFyZ3MKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIEVSUk9SOiBSZXF1aXJlZCB2YXJpYWJsZSB2YXJzKCRkZWxheV9jb3JuZXIscmNfY29ybmVyKSBub3QgZGVmaW5lZFxuIgotICAgICAgICAgICAgICAgc2V0IGVycm9ycygkZXJyb3JfY291bnQpICJSZXF1aXJlZCB2YXJpYWJsZSB2YXJzKCRkZWxheV9jb3JuZXIscmNfY29ybmVyKSBub3QgZGVmaW5lZCIKLSAgICAgICAgICAgICAgIGluY3IgZXJyb3JfY291bnQKLSAgICAgICAgICAgIH0KLSAgIAotICAgICAgICAgICAgaWYgeyghW0ZGOjppc19scF9mbG93XSkgfHwgKFtGRjo6aXNfbHBfZmxvd10gJiYgISR2YXJzKGNwZl90aW1pbmcpKX0gewotICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKHRpbWluZ19jb25kaXRpb25zKV19IHsgOyAjIERvbid0IHJlcXVpcmUgdGhpcyBhcyB3ZSBjYW4gY29uc3RydWN0IC4uLgotICAgICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCRkZWxheV9jb3JuZXIsdGltaW5nX2NvbmRpdGlvbildICYmICgkdmFycygkZGVsYXlfY29ybmVyLHRpbWluZ19jb25kaXRpb24pICE9ICIiKX0gewotICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICBJTkZPOiAgICB0aW1pbmdfY29uZGl0aW9uID0gJHZhcnMoJGRlbGF5X2Nvcm5lcix0aW1pbmdfY29uZGl0aW9uKVxuIgotICAgICAgICAgICAgICAgICAgICAgaW5jciBhcmdzCi0gICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgZm9yZWFjaCBhZGRpdGlvbmFsICJlYXJseV90aW1pbmdfY29uZGl0aW9uIGxhdGVfdGltaW5nX2NvbmRpdGlvbiIgewotICAgICAgICAgICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCRkZWxheV9jb3JuZXIsJGFkZGl0aW9uYWwpXSAmJiAoJHZhcnMoJGRlbGF5X2Nvcm5lciwkYWRkaXRpb25hbCkgIT0gIiIpfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIElORk86ICAgICRhZGRpdGlvbmFsID0gJHZhcnMoJGRlbGF5X2Nvcm5lciwkYWRkaXRpb25hbClcbiIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGluY3IgYXJncwotICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgRVJST1I6IFJlcXVpcmVkIHZhcmlhYmxlIHZhcnMoJGRlbGF5X2Nvcm5lcix0aW1pbmdfY29uZGl0aW9uKSBhbmQgdmFycygkZGVsYXlfY29ybmVyLCRhZGRpdGlvbmFsKSBub3QgZGVmaW5lZFxuIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0IGVycm9ycygkZXJyb3JfY291bnQpICJSZXF1aXJlZCB2YXJpYWJsZSB2YXJzKCRkZWxheV9jb3JuZXIsdGltaW5nX2NvbmRpdGlvbikgYW5kIHZhcnMoJGRlbGF5X2Nvcm5lciwkYWRkaXRpb25hbCkgbm90IGRlZmluZWRcbiIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGluY3IgZXJyb3JfY291bnQKLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGZvcmVhY2ggb3B0aW9uYWwgInBvd2VyX2RvbWFpbnMiIHsKLSAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkZGVsYXlfY29ybmVyLCRvcHRpb25hbCldICYmICgkdmFycygkZGVsYXlfY29ybmVyLCRvcHRpb25hbCkgIT0gIiIpfSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIElORk86ICAgICRvcHRpb25hbCA9ICR2YXJzKCRkZWxheV9jb3JuZXIsJG9wdGlvbmFsKVxuIgotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgeyEkdmFycyhjcGZfdGltaW5nKSAmJiAoJGFyZ3MgPiAxKX0gewotICAgICAgICAgICAgICAgbGFwcGVuZCBnb29kX2Nvcm5lcnMgJGRlbGF5X2Nvcm5lcgotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIGlmIHskYXJncyA+IDB9IHsKLSAgICAgICAgICAgICAgICAgIGxhcHBlbmQgZ29vZF9jb3JuZXJzICRkZWxheV9jb3JuZXIKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0KLQotICAgICAgICAgc2V0IHZhcnMoZ29vZF9jb3JuZXJzKSAkZ29vZF9jb3JuZXJzCi0gICAgICAgICBzZXQgY2hlY2soY29uc3RyYWludF9tb2RlcykgW2xpc3RdCi0gICAgICAgICBpZiB7W0ZGOjppc19scF9mbG93XX0gewotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4iCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgICAgICAgICAgICAgQ29uc3RyYWludCBNb2Rlc1xuIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4iCi0gICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoY29uc3RyYWludF9tb2RlcyldfSB7Ci0gICAgICAgICAgICAgICBmb3JlYWNoIG1vZGUgJHZhcnMoY29uc3RyYWludF9tb2RlcykgewotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICBJTkZPOiAkbW9kZTpcbiIKLSAgICAgICAgICAgICAgICAgIGZvcmVhY2ggb3RoZXIgInByZV9jdHNfc2RjIGluY3JfY3RzX3NkYyBwb3N0X2N0c19zZGMiIHsKLSAgICAgICAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkbW9kZSwkb3RoZXIpXSAmJiAoJHZhcnMoJG1vZGUsJG90aGVyKSAhPSAiIil9IHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgSU5GTzogICAgJG90aGVyID0gJHZhcnMoJG1vZGUsJG90aGVyKVxuIgotICAgICAgICAgICAgICAgICAgICAgICAgbGFwcGVuZCBjaGVjayhjb25zdHJhaW50X21vZGVzKSAkdmFycygkbW9kZSwkb3RoZXIpCi0gICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICAgaWYgeyEkdmFycyhjcGZfdGltaW5nKX0gewotICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgeygkb3RoZXIgPT0gInByZV9jdHNfc2RjIikgJiYgJHZhcnMocmMpfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXQgdmFycygkbW9kZSwkb3RoZXIpICR2YXJzKGRic19kaXIpLyR2YXJzKGRlc2lnbikuc3luX3BsYWNlZC4kbW9kZS5zZGMKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZWlmIHsoJG90aGVyID09ICJwcmVfY3RzX3NkYyIpICYmICEkdmFycyhyYyl9IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyBFUlJPUjogICAgVmFyaWFibGUgdmFycygkbW9kZSwkb3RoZXIpIG5vdCBkZWZpbmVkXG4iCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXQgZXJyb3JzKCRlcnJvcl9jb3VudCkgIlZhcmlhYmxlIHZhcnMoJG1vZGUsJG90aGVyKSBub3QgZGVmaW5lZCIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluY3IgZXJyb3JfY291bnQKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiB7KCRvdGhlciA9PSAicHJlX2N0c19zZGMiKSB8fCAoKCRvdGhlciA9PSAicG9zdF9jdHNfc2RjIikgJiYgIVtpbmZvIGV4aXN0cyB2YXJzKCRtb2RlLGluY3JfY3RzX3NkYyldKX0gewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICBJTkZPOiAgICBWYXJpYWJsZSB2YXJzKCRtb2RlLCRvdGhlcikgbm90IGRlZmluZWRcbiIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgSU5GTzogICAgVmFyaWFibGUgdmFycygkbW9kZSwkb3RoZXIpIG5vdCBkZWZpbmVkXG4iCi0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICBJTkZPOiBObyBjb25zdHJhaW50IG1vZGUgaW5mb3JtYXRpb24gZGVmaW5lZFxuIgotICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICAgICAgICBQb3N0IENUUyBsYXRlbmN5IGFkanVzdG1lbnQgbXVzdCBiZVxuIgotICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICAgICAgICBtYW5hZ2VkIGJ5IHRoZSB1c2VyIHZpYSBwbHVnLWluc1xuIgotICAgICAgICAgICAgfQotICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICAgICAgICAgICAgIENvbnN0cmFpbnQgTW9kZXNcbiIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuIgotICAgICAgICAgICAgaWYgeyR2YXJzKHJjKX0gewotICAgICAgICAgICAgICAgc2V0IHJlcXVpcmVkX2xpc3QgInN5bnRoX3NkYyBwcmVfY3RzX3NkYyIKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBzZXQgcmVxdWlyZWRfbGlzdCAicHJlX2N0c19zZGMiCi0gICAgICAgICAgICB9IAotICAgICAgICAgICAgZm9yZWFjaCBtb2RlICR2YXJzKGNvbnN0cmFpbnRfbW9kZXMpIHsKLSAgICAgICAgICAgICAgIHNldCBmb3VuZCAwCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIElORk86ICRtb2RlOlxuIgotICAgICAgICAgICAgICAgZm9yZWFjaCByZXF1aXJlZCAkcmVxdWlyZWRfbGlzdCB7Ci0gICAgICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJG1vZGUsJHJlcXVpcmVkKV0gJiYgKCR2YXJzKCRtb2RlLCRyZXF1aXJlZCkgIT0gIiIpfSB7Ci0gICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIElORk86ICAgICRyZXF1aXJlZCA9ICR2YXJzKCRtb2RlLCRyZXF1aXJlZClcbiIKLSAgICAgICAgICAgICAgICAgICAgIGxhcHBlbmQgY2hlY2soY29uc3RyYWludF9tb2RlcykgJHZhcnMoJG1vZGUsJHJlcXVpcmVkKQotICAgICAgICAgICAgICAgICAgICAgaW5jciBmb3VuZAotICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgIGlmIHtbbGxlbmd0aCAkcmVxdWlyZWRfbGlzdF0gPT0gMX0gewotICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICBFUlJPUjogUmVxdWlyZWQgdmFyaWFibGUgdmFycygkbW9kZSwkcmVxdWlyZWQpIG5vdCBkZWZpbmVkXG4iCi0gICAgICAgICAgICAgICAgICAgICAgICBzZXQgZXJyb3JzKCRlcnJvcl9jb3VudCkgIlJlcXVpcmVkIHZhcmlhYmxlIHZhcnMoJG1vZGUsJHJlcXVpcmVkKSBub3QgZGVmaW5lZCIKLSAgICAgICAgICAgICAgICAgICAgICAgIGluY3IgZXJyb3JfY291bnQKLSAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIGlmIHsoW2xsZW5ndGggJHJlcXVpcmVkX2xpc3RdID4gMSkgJiYgKCRmb3VuZCA9PSAwKX0gewotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICBFUlJPUjogT25lIG9mIHRoZSByZXF1aXJlZCB2YXJpYWJsZXMgKCRyZXF1aXJlZF9saXN0KSBub3QgZGVmaW5lZFxuIgotICAgICAgICAgICAgICAgICAgc2V0IGVycm9ycygkZXJyb3JfY291bnQpICJPbmUgb2YgdGhlIHJlcXVpcmVkIHZhcmlhYmxlcyAoJHJlcXVpcmVkX2xpc3QpIG5vdCBkZWZpbmVkIgotICAgICAgICAgICAgICAgICAgaW5jciBlcnJvcl9jb3VudAotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgZm9yZWFjaCBvdGhlciAicG9zdF9jdHNfc2RjIGluY3JfY3RzX3NkYyIgewotICAgICAgICAgICAgICAgICAgaWYgeyRvdGhlciA9PSAicG9zdF9jdHNfc2RjIiAmJiAhW2luZm8gZXhpc3RzIHZhcnMoJG90aGVyKV19IHsKLSAgICAgICAgICAgICAgICAgICAgIGlmIHshW2luZm8gZXhpc3RzIHZhcnMoJG1vZGUsJG90aGVyKV19IHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgSU5GTzogICAgVmFyaWFibGUgdmFycygkbW9kZSwkb3RoZXIpIG5vdCBkZWZpbmVkXG4iCi0gICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICBJTkZPOiAgICAkb3RoZXIgPSAkdmFycygkbW9kZSwkb3RoZXIpXG4iCi0gICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCRtb2RlLCRvdGhlcildICYmICgkdmFycygkbW9kZSwkb3RoZXIpICE9ICIiKX0gewotICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICBJTkZPOiAgICAkb3RoZXIgPSAkdmFycygkbW9kZSwkb3RoZXIpXG4iCi0gICAgICAgICAgICAgICAgICAgICAgICBsYXBwZW5kIGNoZWNrKGNvbnN0cmFpbnRfbW9kZXMpICR2YXJzKCRtb2RlLCRvdGhlcikKLSAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIElORk86ICAgIFZhcmlhYmxlIHZhcnMoJG1vZGUsJG90aGVyKSBub3QgZGVmaW5lZFxuIgotICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAgfQotICAgCi0gICAgICAgICBpZiB7IVtpbmZvIGV4aXN0cyB2YXJzKGhvbGRfYW5hbHlzaXNfdmlld3MpXX0gewotICAgICAgICAgICAgc2V0IHZhcnMoaG9sZF9hbmFseXNpc192aWV3cykgIiIKLSAgICAgICAgIH0KLSAgICAgICAgIGlmIHshW2luZm8gZXhpc3RzIHZhcnMocG93ZXJfYW5hbHlzaXNfdmlldyldfSB7Ci0gICAgICAgICAgICBzZXQgdmFycyhwb3dlcl9hbmFseXNpc192aWV3KSAiIgotICAgICAgICAgfQotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgICAgICAgICAgICAgQW5hbHlzaXMgVmlld3NcbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuIgotICAgICAgICAgaWYge1tGRjo6aXNfbHBfZmxvd119IHsKLSAgICAgICAgICAgIGZvcmVhY2ggYW5hbHlzaXNfdmlldyBbY29uY2F0ICR2YXJzKHNldHVwX2FuYWx5c2lzX3ZpZXdzKSAkdmFycyhob2xkX2FuYWx5c2lzX3ZpZXdzKSAkdmFycyhwb3dlcl9hbmFseXNpc192aWV3KV0gewotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICBJTkZPOiAkYW5hbHlzaXNfdmlldzpcbiIKLSAgICAgICAgICAgICAgIGZvcmVhY2ggb3RoZXIgImRlbGF5X2Nvcm5lciBjb25zdHJhaW50X21vZGUiIHsKLSAgICAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkYW5hbHlzaXNfdmlldywkb3RoZXIpXSAmJiAoJHZhcnMoJGFuYWx5c2lzX3ZpZXcsJG90aGVyKSAhPSAiIil9IHsKLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgSU5GTzogICAgJG90aGVyID0gJHZhcnMoJGFuYWx5c2lzX3ZpZXcsJG90aGVyKVxuIgotICAgICAgICAgICAgICAgICAgICAgbGFwcGVuZCBjaGVjayhhbmFseXNpc192aWV3KSAkdmFycygkYW5hbHlzaXNfdmlldywkb3RoZXIpCi0gICAgICAgICAgICAgICAgICB9IAotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHNldCBjaGVjayhhbmFseXNpc192aWV3cykgW2xpc3RdCi0gICAgICAgICAgICBmb3JlYWNoIGFuYWx5c2lzX3ZpZXcgW2NvbmNhdCAkdmFycyhzZXR1cF9hbmFseXNpc192aWV3cykgJHZhcnMoaG9sZF9hbmFseXNpc192aWV3cykgJHZhcnMocG93ZXJfYW5hbHlzaXNfdmlldyldIHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgSU5GTzogJGFuYWx5c2lzX3ZpZXc6XG4iCi0gICAgICAgICAgICAgICBmb3JlYWNoIHJlcXVpcmVkICJkZWxheV9jb3JuZXIgY29uc3RyYWludF9tb2RlIiB7Ci0gICAgICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJGFuYWx5c2lzX3ZpZXcsJHJlcXVpcmVkKV0gJiYgKCR2YXJzKCRhbmFseXNpc192aWV3LCRyZXF1aXJlZCkgIT0gIiIpfSB7Ci0gICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIElORk86ICAgICRyZXF1aXJlZCA9ICR2YXJzKCRhbmFseXNpc192aWV3LCRyZXF1aXJlZClcbiIKLSAgICAgICAgICAgICAgICAgICAgIGxhcHBlbmQgY2hlY2soYW5hbHlzaXNfdmlldykgJHZhcnMoJGFuYWx5c2lzX3ZpZXcsJHJlcXVpcmVkKQotICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgRVJST1I6IFJlcXVpcmVkIHZhcmlhYmxlIHZhcnMoJGFuYWx5c2lzX3ZpZXcsJHJlcXVpcmVkKSBub3QgZGVmaW5lZFxuIgotICAgICAgICAgICAgICAgICAgICAgc2V0IGVycm9ycygkZXJyb3JfY291bnQpICJSZXF1aXJlZCB2YXJpYWJsZSB2YXJzKCRhbmFseXNpc192aWV3LCRyZXF1aXJlZCkgbm90IGRlZmluZWQiCi0gICAgICAgICAgICAgICAgICAgICBpbmNyIGVycm9yX2NvdW50Ci0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0jICAgICAgfQotCi0gICAgICBhcHBlbmQgY29tbWFuZHMgIiMgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgICAgICAgICAgICBSZWNvbW1lbmRlZCBWYXJpYWJsZXNcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuIgotICAgICAgZm9yZWFjaCByZWNvbW1lbmRlZCAic2Nhbl9kZWYgZ2RzX2xheWVyX21hcCIgewotICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCRyZWNvbW1lbmRlZCldICYmICgkdmFycygkcmVjb21tZW5kZWQpICE9ICIiKX0gewotICAgICAgICAgICAgbGFwcGVuZCBjaGVjayhmaWxlcykgJHZhcnMoJHJlY29tbWVuZGVkKQotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICBJTkZPOiAkcmVjb21tZW5kZWQgPSAkdmFycygkcmVjb21tZW5kZWQpXG4iCi0gICAgICAgICB9Ci0gICAgICB9Ci0gICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoZ2RzX2ZpbGVzKV0gJiYgKCR2YXJzKGdkc19maWxlcykgIT0gIiIpfSB7Ci0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIElORk86IGdkc19maWxlcyA9ICR2YXJzKGdkc19maWxlcylcbiIKLSAgICAgICAgIGZvcmVhY2ggZmlsZSAkdmFycyhnZHNfZmlsZXMpIHsKLSAgICAgICAgICAgIGxhcHBlbmQgY2hlY2soZmlsZXMpICRmaWxlCi0gICAgICAgICB9Ci0gICAgICB9Ci0KLSAgICAgIGZvcmVhY2ggcmVjb21tZW5kZWQgIm1heF9yb3V0ZV9sYXllciBmaWxsZXJfY2VsbHMgdGllX2NlbGxzIGRvbnRfdXNlX2xpc3QgYW50ZW5uYV9kaW9kZSIgewotICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCRyZWNvbW1lbmRlZCldICYmICgkdmFycygkcmVjb21tZW5kZWQpICE9ICIiKX0gewotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICBJTkZPOiAkcmVjb21tZW5kZWQgPSAkdmFycygkcmVjb21tZW5kZWQpXG4iCi0gICAgICAgICAgICBpZiB7JHJlY29tbWVuZGVkID09ICJ0aWVfY2VsbHMifSB7Ci0gICAgICAgICAgICAgICBpZiB7W2xsZW5ndGggJHZhcnModGllX2NlbGxzKV0gPiAyfSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIEVSUk9SOiBSZWNvbW1lbmRlZCB2YXJpYWJsZSB2YXJzKCRyZWNvbW1lbmRlZCkgaGFzIG1vcmUgdGhhbiB0d28gY2VsbHNcbiIKLSAgICAgICAgICAgICAgICAgIHNldCBlcnJvcnMoJGVycm9yX2NvdW50KSAiUmVjb21tZW5kZWQgdmFyaWFibGUgdmFycygkcmVjb21tZW5kZWQpIGhhcyBtb3JlIHRoYW4gdHdvIGNlbGxzIgotICAgICAgICAgICAgICAgICAgaW5jciBlcnJvcl9jb3VudAotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgeyRyZWNvbW1lbmRlZCA9PSAiYW50ZW5uYV9kaW9kZSJ9IHsKLSAgICAgICAgICAgICAgIGlmIHtbbGxlbmd0aCAkdmFycyhhbnRlbm5hX2Rpb2RlKV0gPiAxfSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIEVSUk9SOiBSZWNvbW1lbmRlZCB2YXJpYWJsZSB2YXJzKCRyZWNvbW1lbmRlZCkgaGFzIG1vcmUgdGhhbiBvbmUgY2VsbHNcbiIKLSAgICAgICAgICAgICAgICAgIHNldCBlcnJvcnMoJGVycm9yX2NvdW50KSAiUmVjb21tZW5kZWQgdmFyaWFibGUgdmFycygkcmVjb21tZW5kZWQpIGhhcyBtb3JlIHRoYW4gb25lIGNlbGxzIgotICAgICAgICAgICAgICAgICAgaW5jciBlcnJvcl9jb3VudAotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgeyRyZWNvbW1lbmRlZCA9PSAibWF4X3JvdXRlX2xheWVyIn0gewotICAgICAgICAgICAgICAgbGFwcGVuZCBjaGVjayhpbnRlZ2VycykgIiRyZWNvbW1lbmRlZCIKLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBpZiB7KCRyZWNvbW1lbmRlZCA9PSAiZG9udF91c2VfbGlzdCIpfSB7Ci0gICAgICAgICAgICAgICBpZiB7IVtpbmZvIGV4aXN0cyB2YXJzKGRvbnRfdXNlX2ZpbGUpXX0gewotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICBXQVJOSU5HOiBSZWNvbW1lbmRlZCB2YXJpYWJsZXMgZG9udF91c2VfbGlzdCBhbmQgZG9udF91c2VfZmlsZSBub3QgZGVmaW5lZFxuIgotICAgICAgICAgICAgICAgICAgc2V0IHdhcm5pbmdzKCR3YXJuaW5nX2NvdW50KSAiUmVjb21tZW5kZWQgdmFyaWFibGVzIGRvbnRfdXNlX2xpc3QgYW5kIGRvbnRfdXNlX2ZpbGUgbm90IGRlZmluZWQiCi0gICAgICAgICAgICAgICAgICBpbmNyIHdhcm5pbmdfY291bnQKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIFdBUk5JTkc6IFJlY29tbWVuZGVkIHZhcmlhYmxlIHZhcnMoJHJlY29tbWVuZGVkKSBub3QgZGVmaW5lZFxuIgotICAgICAgICAgICAgICAgc2V0IHdhcm5pbmdzKCR3YXJuaW5nX2NvdW50KSAiUmVjb21tZW5kZWQgdmFyaWFibGUgdmFycygkcmVjb21tZW5kZWQpIG5vdCBkZWZpbmVkIgotICAgICAgICAgICAgICAgaW5jciB3YXJuaW5nX2NvdW50Ci0gICAgICAgICAgICB9ICAKLSAgICAgICAgIH0KLSAgICAgIH0KLSAgICAgIGZvcmVhY2ggb3B0aW9uYWwgInNpemVfb25seV9maWxlIGRvbnRfdXNlX2ZpbGUiIHsKLSAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkb3B0aW9uYWwpXX0gewotICAgICAgICAgICAgbGFwcGVuZCBjaGVjayhmaWxlcykgJHZhcnMoJG9wdGlvbmFsKQotICAgICAgICAgfQotICAgICAgfQotCi0gICAgICBhcHBlbmQgY29tbWFuZHMgIiMgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgICAgICAgICAgICAgICAgT3RoZXIgVmFyaWFibGVzXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgIiMgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiIKLSAgICAgIGZvcmVhY2ggb3RoZXIgImp0YWdfY2VsbHMganRhZ19yb3dzIHNwYXJlX2NlbGxzIiB7Ci0gICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJG90aGVyKV0gJiYgKCR2YXJzKCRvdGhlcikgIT0gIiIpfSB7Ci0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIElORk86ICRvdGhlciA9ICR2YXJzKCRvdGhlcilcbiIKLSAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIElORk86IFZhcmlhYmxlIHZhcnMoJG90aGVyKSBub3QgZGVmaW5lZFxuIgotICAgICAgICAgfQotICAgICAgfQotCi0jICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycyh2aWV3X2RlZmluaXRpb25fdGNsKV19IHsKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICAgICAgICAgICAgICAgICBTY2FsZSBGYWN0b3JzXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiIKLSAgICAgICAgIGZvcmVhY2ggcmNfY29ybmVyICR2YXJzKHJjX2Nvcm5lcnMpIHsKLSAgICAgICAgICAgIHNldCBpIDAKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgSU5GTzogJHJjX2Nvcm5lcjpcbiIKLSAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkcmNfY29ybmVyLHNjYWxlX3RjbCldfSB7Ci0gICAgICAgICAgICAgICBpZiB7W2ZpbGUgZXhpc3RzICR2YXJzKCRyY19jb3JuZXIsc2NhbGVfdGNsKV19IHsKLSAgICAgICAgICAgICAgICAgIGluY3IgaQotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICBJTkZPOiAgIHNjYWxpbmcgZmlsZSA9ICR2YXJzKCRyY19jb3JuZXIsc2NhbGVfdGNsKVxuIgotICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgIHB1dHMgIjxGRj4gRVJST1I6IFNjYWxpbmcgZmlsZSAkdmFycygkcmNfY29ybmVyLHNjYWxlX3RjbCkgZm9yIHJjIGNvcm5lciAkcmNfY29ybmVyIGRlZmluZWQgYnV0IGRvZXMgbm90IGV4aXN0IgotICAgICAgICAgICAgICAgICAgc2V0IGVycm9ycygkZXJyb3JfY291bnQpICJTY2FsaW5nIGZpbGUgJHZhcnMoJHJjX2Nvcm5lcixzY2FsZV90Y2wpIGZvciByYyBjb3JuZXIgJHJjX2Nvcm5lciBkZWZpbmVkIGJ1dCBkb2VzIG5vdCBleGlzdCIKLSAgICAgICAgICAgICAgICAgIGluY3IgZXJyb3JfY291bnQKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBmb3JlYWNoIG90aGVyICJwcmVfcm91dGVfcmVzX2ZhY3RvciBwb3N0X3JvdXRlX3Jlc19mYWN0b3IgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJlX3JvdXRlX2NhcF9mYWN0b3IgcG9zdF9yb3V0ZV9jYXBfZmFjdG9yIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByZV9yb3V0ZV9jbGtfcmVzX2ZhY3RvciBwb3N0X3JvdXRlX2Nsa19yZXNfZmFjdG9yIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByZV9yb3V0ZV9jbGtfY2FwX2ZhY3RvciBwb3N0X3JvdXRlX2Nsa19jYXBfZmFjdG9yIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc3Rfcm91dGVfeGNhcF9mYWN0b3IiIHsKLSAgICAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkcmNfY29ybmVyLCRvdGhlcildfSB7Ci0gICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIElORk86ICAgICRvdGhlciA9ICR2YXJzKCRyY19jb3JuZXIsJG90aGVyKVxuIgotICAgICAgICAgICAgICAgICAgICAgaW5jciBpCi0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiB7JGkgPT0gMH0gewotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICBXQVJOSU5HOiBObyBzY2FsZSBmYWN0b3JzIHNldCBmb3IgcmMgY29ybmVyICgkcmNfY29ybmVyKVxuIgotICAgICAgICAgICAgICAgc2V0IHdhcm5pbmdzKCR3YXJuaW5nX2NvdW50KSAiTm8gc2NhbGUgZmFjdG9ycyBzZXQgZm9yIHJjIGNvcm5lciAoJHJjX2Nvcm5lcikiCi0gICAgICAgICAgICAgICBpbmNyIHdhcm5pbmdfY291bnQKLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0KLSAgIAotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgICAgICAgICAgICAgICAgRGVyYXRpbmcgRmFjdG9yc1xuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4iCi0gICAgICAgICBzZXQgaSAwCi0gICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoZGVyYXRlX3RjbCldfSB7Ci0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIElORk86ICAgIGRlcmF0ZSBmaWxlID0gJHZhcnMoZGVyYXRlX3RjbClcbiIKLSAgICAgICAgICAgIGxhcHBlbmQgY2hlY2soZmlsZXMpICR2YXJzKGRlcmF0ZV90Y2wpCi0gICAgICAgICAgICBpbmNyIGkKLSAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBmb3JlYWNoIGRlbGF5X2Nvcm5lciAkdmFycyhkZWxheV9jb3JuZXJzKSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIElORk86ICRkZWxheV9jb3JuZXI6XG4iCi0gICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJGRlbGF5X2Nvcm5lcixkZXJhdGVfdGNsKV19IHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgSU5GTzogICAgZGVyYXRlIGZpbGUgPSAkdmFycygkZGVsYXlfY29ybmVyLGRlcmF0ZV90Y2wpXG4iCi0gICAgICAgICAgICAgICAgICBsYXBwZW5kIGNoZWNrKGZpbGVzKSAkdmFycygkZGVsYXlfY29ybmVyLGRlcmF0ZV90Y2wpCi0gICAgICAgICAgICAgICAgICBpbmNyIGkKLSAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoZGVyYXRlX3RjbCldfSB7Ci0gICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIElORk86ICAgIGRlcmF0ZSBmaWxlID0gJHZhcnMoZGVyYXRlX3RjbClcbiIKLSAgICAgICAgICAgICAgICAgICAgIGxhcHBlbmQgY2hlY2soZmlsZXMpICR2YXJzKGRlcmF0ZV90Y2wpCi0gICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgZm9yZWFjaCBvdGhlciAiZWFybHlfZGF0YV9jZWxsIGVhcmx5X2Nsb2NrX2NlbGwgZWFybHlfY2VsbF9jaGVjayBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXRlX2RhdGFfY2VsbCBsYXRlX2Nsb2NrX2NlbGwgbGF0ZV9jZWxsX2NoZWNrIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGFfY2VsbF9lYXJseSBjbG9ja19jZWxsX2Vhcmx5IGNlbGxfY2hlY2tfZWFybHkgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YV9jZWxsX2xhdGUgY2xvY2tfY2VsbF9sYXRlIGNlbGxfY2hlY2tfbGF0ZSIgewotICAgICAgICAgICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCRkZWxheV9jb3JuZXIsJG90aGVyKV19IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgSU5GTzogICAgJG90aGVyID0gJHZhcnMoJGRlbGF5X2Nvcm5lciwkb3RoZXIpXG4iCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBpbmNyIGkKLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIGlmIHskaSA9PSAwfSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIFdBUk5JTkc6IE5vIGRlcmF0aW5nIGZhY3RvcnMgc2V0IGZvciBkZWxheSBjb3JuZXIgKCRkZWxheV9jb3JuZXIpXG4iCi0gICAgICAgICAgICAgICAgICBzZXQgd2FybmluZ3MoJHdhcm5pbmdfY291bnQpICJObyBkZXJhdGluZyBmYWN0b3JzIHNldCBmb3IgZGVsYXkgY29ybmVyICgkZGVsYXlfY29ybmVyKSIKLSAgICAgICAgICAgICAgICAgIGluY3Igd2FybmluZ19jb3VudAotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAgfQotIyAgICAgIH0KLSAgICAgIGlmIHshW3JlZ2V4cCAiOS4xIiAkdmFycyh2ZXJzaW9uKV19IHsKLQotICAgICAgICAgc2V0IHZhbGlkICJUUlVFIEZBTFNFIHRydWUgZmFsc2UgYXV0byIKLQotICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGVuYWJsZV9zaV9hd2FyZSldfSB7Ci0gICAgICAgICAgICBpZiB7W2xzZWFyY2ggJHZhbGlkICR2YXJzKGVuYWJsZV9zaV9hd2FyZSldID09IC0xfSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIEVSUk9SOiBWYXJpYWJsZSB2YXJzKGVuYWJsZV9zaV9hd2FyZSkgaGFzIGlsbGVnYWwgdmFsdWVcbiIKLSAgICAgICAgICAgICAgIHNldCBlcnJvcnMoJGVycm9yX2NvdW50KSAiVmFyaWFibGUgdmFycyhlbmFibGVfc2lfYXdhcmUpIGhhcyBpbGxlZ2FsIHZhbHVlIgotICAgICAgICAgICAgICAgICAgaW5jciBlcnJvcl9jb3VudAotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICAgICAgICAgTXVzdCBiZSBvbmUgb2YgJyR2YWxpZCdcbiIKLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0KLSAgICAgIH0KLQotICAgICAgc2V0IHZhbGlkIFtsaXN0IHRydWUgZmFsc2VdCi0gICAgICBmb3JlYWNoIHZhciAiZml4X2hvbGRfaWdub3JlX2lvcyBmaXhfaG9sZF9hbGxvd190bnNfZGVncmFkYXRpb24iIHsKLSAgICAgICAgIGlmIHshW2luZm8gZXhpc3RzIHZhcnMoJHZhcildfSB7Ci0gICAgICAgICAgICBjb250aW51ZQotICAgICAgICAgfQotICAgICAgICAgaWYge1tsc2VhcmNoICR2YWxpZCBbc3RyaW5nIHRvbG93ZXIgJHZhcnMoJHZhcildXSA9PSAtMX0gewotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICBFUlJPUjogVmFyaWFibGUgdmFycygkdmFyKSBoYXMgaWxsZWdhbCB2YWx1ZSAkdmFycygkdmFyKVxuIgotICAgICAgICAgICAgc2V0IGVycm9ycygkZXJyb3JfY291bnQpICJWYXJpYWJsZSB2YXJzKCR2YXIpIGhhcyBpbGxlZ2FsIHZhbHVlICR2YXJzKCR2YXIpIgotICAgICAgICAgICAgaW5jciBlcnJvcl9jb3VudAotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICAgICAgICAgTXVzdCBiZSBvbmUgb2YgJyR2YWxpZCdcbiIKLSAgICAgICAgIH0KLSAgICAgIH0KLQotICAgICAgc2V0IHZhbGlkICJwcmVfcGxhY2UgcHJlX3ByZWN0cyBwcmVfY3RzIHByZV9wb3N0Y3RzIHByZV9wb3N0cm91dGUgcHJlX3Bvc3Ryb3V0ZV9zaSBwcmVfc2lnbm9mZiB0cnVlIGZhbHNlIgotICAgICAgZm9yZWFjaCBvcHRpb24gIm1ldGFsZmlsbCBlbmFibGVfb2N2IGVuYWJsZV9zcyIgewotICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCRvcHRpb24pXX0gewotICAgICAgICAgICAgaWYge1tsc2VhcmNoICR2YWxpZCAkdmFycygkb3B0aW9uKV0gPT0gLTF9IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgRVJST1I6IFZhcmlhYmxlIHZhcnMoJG9wdGlvbikgaGFzIGlsbGVnYWwgdmFsdWUgKCR2YXJzKCRvcHRpb24pKVxuIgotICAgICAgICAgICAgICAgc2V0IGVycm9ycygkZXJyb3JfY291bnQpICJWYXJpYWJsZSB2YXJzKCRvcHRpb24pIGhhcyBpbGxlZ2FsIHZhbHVlICgkdmFycygkb3B0aW9uKSkiCi0gICAgICAgICAgICAgICBpbmNyIGVycm9yX2NvdW50Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgICAgICAgICBNdXN0IGJlIG9uZSBvZiAnJHZhbGlkJ1xuIgotICAgICAgICAgICAgfQotICAgICAgICAgfQotICAgICAgfQotCi0gICAgICBzZXQgcGFjcyBbRkY6OmdldF9ieV9zdWZmaXggdmFycyAiLHBhY19tb2RlIl0gCi0gICAgICBzZXQgdmFsaWQgInJlYWRfb25seSBpbnRlcmZhY2UgYWxsIgotCi0gICAgICBmb3JlYWNoIHBhYyAkcGFjcyB7Ci0gICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMocGFjX21vZGUpXX0gewotICAgICAgICAgICAgaWYge1tsc2VhcmNoICR2YWxpZCAkdmFycyhwYWNfbW9kZSldID09IC0xfSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIEVSUk9SOiBWYXJpYWJsZSB2YXJzKHBhY19tb2RlKSBoYXMgaWxsZWdhbCB2YWx1ZVxuIgotICAgICAgICAgICAgICAgc2V0IGVycm9ycygkZXJyb3JfY291bnQpICJWYXJpYWJsZSB2YXJzKHBhY19tb2RlKSBoYXMgaWxsZWdhbCB2YWx1ZSIKLSAgICAgICAgICAgICAgIGluY3IgZXJyb3JfY291bnQKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgICAgICAgIE11c3QgYmUgb25lIG9mICckdmFsaWQnXG4iCi0gICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0gICAgICB9Ci0KLSAgICAgIHNldCB2YWxpZCAiZGVmYXVsdCBwZXNzaW1pc3RpYyIKLQotICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKHNpX2FuYWx5c2lzX3R5cGUpXX0gewotICAgICAgICAgaWYge1tsc2VhcmNoICR2YWxpZCAkdmFycyhzaV9hbmFseXNpc190eXBlKV0gPT0gLTF9IHsKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgRVJST1I6IFZhcmlhYmxlIHZhcnMoc2lfYW5hbHlzaXNfdHlwZSkgaGFzIGlsbGVnYWwgdmFsdWVcbiIKLSAgICAgICAgICAgIHNldCBlcnJvcnMoJGVycm9yX2NvdW50KSAiVmFyaWFibGUgdmFycyhzaV9hbmFseXNpc190eXBlKSBoYXMgaWxsZWdhbCB2YWx1ZSIKLSAgICAgICAgICAgIGluY3IgZXJyb3JfY291bnQKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgICAgICAgIE11c3QgYmUgb25lIG9mICckdmFsaWQnXG4iCi0gICAgICAgICB9Ci0gICAgICB9Ci0KLSAgICAgIHNldCB2YWxpZCAicG9zdF9jdHMgcG9zdF9yb3V0ZSBib3RoIG5vbmUiCi0KLSAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhjbG9ja19lY28pXX0gewotICAgICAgICAgaWYge1tsc2VhcmNoICR2YWxpZCAkdmFycyhjbG9ja19lY28pXSA9PSAtMX0gewotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICBFUlJPUjogVmFyaWFibGUgdmFycyhjbG9ja19lY28pIGhhcyBpbGxlZ2FsIHZhbHVlXG4iCi0gICAgICAgICAgICBzZXQgZXJyb3JzKCRlcnJvcl9jb3VudCkgIlZhcmlhYmxlIHZhcnMoY2xvY2tfZWNvKSBoYXMgaWxsZWdhbCB2YWx1ZSIKLSAgICAgICAgICAgIGluY3IgZXJyb3JfY291bnQKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgICAgICAgIE11c3QgYmUgb25lIG9mICckdmFsaWQnXG4iCi0gICAgICAgICB9Ci0gICAgICB9Ci0jICAgICAgaWYgeyR2YXJzKGVuYWJsZV9mbGV4aWxtKX0gewotIyAgICAgICAgIHNldCB3YXJuaW5ncygkd2FybmluZ19jb3VudCkgIlVzaW5nIHZhcnMoZW5hYmxlX2ZsZXhpbG0pIHJlcXVpcmVzIHRoZSBmb2xsb3dpbmcgbGltaXRlZCBhY2Nlc3MgZmVhdHVyZSA6IGVuY0ZsZXhJTE0iCi0jICAgICAgICAgaW5jciB3YXJuaW5nX2NvdW50Ci0jICAgICAgICAgaWYgeyR2YXJzKHBsYWNlX29wdF9kZXNpZ24pfSB7Ci0jICAgICAgICAgICAgc2V0IHdhcm5pbmdzKCR3YXJuaW5nX2NvdW50KSAiU2V0dGluZyB2YXJzKHBsYWNlX29wdF9kZXNpZ24pIHRvICdmYWxzZScgYXMgdmFycyhlbmFibGVfZmxleGlsbSkgaXMgdHJ1ZSIKLSMgICAgICAgICAgICBpbmNyIHdhcm5pbmdfY291bnQKLSMgICAgICAgICAgICBzZXQgdmFycyhwbGFjZV9vcHRfZGVzaWduKSBmYWxzZQotIyAgICAgICAgIH0KLSMgICAgICB9Ci0gICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAjIFRoZSByZGFfSW5wdXQodWlfcGdfY29ubmVjdGlvbnMpIHZhcmlhYmxlIGlzIGEgc3BlY2lhbCBjYXNlIGFzIGRlcGVuZGluZwotICAgIyBvbiB0aGUgdmFsdWUgb2YgdGhpcyB2YXJpYWJsZSwgb3RoZXIgJ3VzZXIgZGVmaW5lZCcgdmFyaWFibGVzIG11c3QgYmUKLSAgICMgZHluYW1pY2FsbHkgY2hlY2tlZAotICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgI2lmIHtbaW5mbyBleGlzdHMgdmFycyhwZ19jb25uZWN0aW9ucyldfSB7Ci0gICAjICAgZm9yZWFjaCBvcHRpb24gJHZhcnMocGdfY29ubmVjdGlvbnMpIHsKLSAgICMgICAgICBpZiB7IVtpbmZvIGV4aXN0cyB2YXJzKCRvcHRpb24pXX0gewotICAgIyAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgRVJST1I6IFRoZSBwL2cgY29ubmVjdGlvbiBkZWZpbml0aW9uIGlzIGluY29tcGxldGUiCi0gICAjICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIgICAgICAgICAgICAgUGxlYXNlIGFkZCAnc2V0IHZhcnMoJG9wdGlvbikgPGdsb2JhbF9uZXQ+JyB0byB5b3VyIHNldHVwLnRjbCIKLSAgICMgICAgICAgICBzZXQgZXJyb3JzKCRlcnJvcl9jb3VudCkgIlRoZSBwL2cgY29ubmVjdGlvbiBkZWZpbml0aW9uIGlzIGluY29tcGxldGU7IHZhcmlhYmxlIHZhcnMoJG9wdGlvbikgaXMgcmVxdWlyZWQiCi0gICAjICAgICAgICAgaW5jciBlcnJvcl9jb3VudAotICAgIyAgICAgIH0KLSAgICMgICB9Ci0gICAjfQotCi0gICAgICBzZXQgY2hlY2socGx1Z2lucykgW2xpc3RdCi0gICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMobWV0YWxmaWxsKV0gJiYgKCR2YXJzKG1ldGFsZmlsbCkgIT0gZmFsc2UpfSB7Ci0gICAgICAgICBzZXQgY2hlY2socGx1Z2lucykgbWV0YWxmaWxsX3RjbAotICAgICAgfQotICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgIiMgICAgICAgICAgICAgICAgUGx1Zy1pbnNcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuIgotICAgICAgc2V0IHJjX3BsdWdpbnMgInN5bl9pbml0X3RjbCBzeW5fbG9hZF9ydGxfdGNsIHByZV9zeW5fbG9hZF9saWJfdGNsIHBvc3Rfc3luX2xvYWRfbGliX3RjbCBcCi0gICAgICAgICAgICAgICAgICAgICAgcHJlX3N5bl9lbGFiX3RjbCBwb3N0X3N5bl9lbGFiX3RjbCBzeW5fZGZ0X3NldHVwX3RjbCBwcmVfc3luX2dlbl90Y2wgXAotICAgICAgICAgICAgICAgICAgICAgIHBvc3Rfc3luX2dlbl90Y2wgcHJlX3N5bl9tYXBfdGNsIHBvc3Rfc3luX21hcF90Y2wgcG9zdF9zeW5fZGZ0X3RjbCBcCi0gICAgICAgICAgICAgICAgICAgICAgcHJlX3N5bl9pbmNyX3RjbCBwb3N0X3N5bl9pbmNyX3RjbCBwcmVfc3luX3BsYWNlX3RjbCBwb3N0bG9hZF9zeW5fcGxhY2VfdGNsIFwKLSAgICAgICAgICAgICAgICAgICAgICBwcmVleHBvcnRfc3luX3BsYWNlX3RjbCBwcmVhbm5vdGF0aW9uX3N5bl9wbGFjZV90Y2wgcG9zdF9zeW5fcGxhY2VfdGNsIHByZV9zeW5fZXhpdF90Y2wiCi0gICAgICBzZXQgZWRpX3BsdWdpbnMgImFsd2F5c19zb3VyY2VfdGNsIHByZV9pbml0X3RjbCBwb3N0X2luaXRfdGNsIFwKLSAgICAgICAgICAgICAgICAgICAgICAgcHJlX3BsYWNlX3RjbCBwbGFjZV90Y2wgcG9zdF9wbGFjZV90Y2wgcHJlX2N0c190Y2wgY3RzX3RjbCBwb3N0X2N0c190Y2wgXAotICAgICAgICAgICAgICAgICAgICAgICBwcmVfcHJlY3RzX3RjbCBwb3N0X3ByZWN0c190Y2wgcHJlX3Bvc3RjdHNfdGNsIHBvc3RfcG9zdGN0c190Y2wgXAotICAgICAgICAgICAgICAgICAgICAgICBwcmVfcG9zdGN0c19ob2xkX3RjbCBwb3N0X3Bvc3RjdHNfaG9sZF90Y2wgcHJlX3JvdXRlX3RjbCBwb3N0X3JvdXRlX3RjbCBcCi0gICAgICAgICAgICAgICAgICAgICAgIHByZV9wb3N0cm91dGVfdGNsIHBvc3RfcG9zdHJvdXRlX3RjbCBwcmVfcG9zdHJvdXRlX2hvbGRfdGNsIHBvc3RfcG9zdHJvdXRlX2hvbGRfdGNsIFwKLSAgICAgICAgICAgICAgICAgICAgICAgcHJlX3Bvc3Ryb3V0ZV9zaV90Y2wgcG9zdF9wb3N0cm91dGVfc2lfdGNsIHByZV9wb3N0cm91dGVfc2lfaG9sZF90Y2wgCi0gICAgICAgICAgICAgICAgICAgICAgIHBvc3RfcG9zdHJvdXRlX3NpX2hvbGRfdGNsIHByZV9zaWdub2ZmX3RjbCBwb3N0X3NpZ25vZmZfdGNsIFwKLSAgICAgICAgICAgICAgICAgICAgICAgcHJlX3JlYnVkZ2V0X3RjbCBwb3N0X3JlYnVkZ2V0X3RjbCBwcmVfZmxleGlsbV90Y2wgcG9zdF9mbGV4aWxtX3RjbCBcCi0gICAgICAgICAgICAgICAgICAgICAgIHByZV9hc3NlbWJsZV90Y2wgcG9zdF9hc3NlbWJsZV90Y2wgcHJlX21vZGVsX2dlbl90Y2wgcG9zdF9tb2RlbF9nZW5fdGNsIFwKLSAgICAgICAgICAgICAgICAgICAgICAgcHJlX3BhcnRpdGlvbl9wbGFjZV90Y2wgcG9zdF9wYXJ0aXRpb25fcGxhY2VfdGNsIHByZV9hc3NlbWJsZV9mbGV4X2lsbV90Y2wgcG9zdF9hc3NlbWJsZV9mbGV4aWxtX3RjbCBcCi0gICAgICAgICAgICAgICAgICAgICAgIHByZV9wYXJ0aXRpb25fdGNsIHBvc3RfcGFydGl0aW9uX3RjbCIKLSAgICAgICAKLSAgICAgIHNldCB2YXJzKHJjX3BsdWdpbnMpICRyY19wbHVnaW5zIAotICAgICAgc2V0IHZhcnMoZWRpX3BsdWdpbnMpICRlZGlfcGx1Z2lucyAKLSAgICAgICAKLSAgICAgIGlmIHskdmFycyhyYyl9IHsKLSAgICAgICAgIHNldCBwbHVnaW5fbGlzdCBbam9pbiBbY29uY2F0ICRyY19wbHVnaW5zICRlZGlfcGx1Z2luc11dCi0gICAgICB9IGVsc2UgewotICAgICAgICAgc2V0IHBsdWdpbl9saXN0ICRlZGlfcGx1Z2lucwotICAgICAgfQotICAgICAgZm9yZWFjaCBwbHVnaW4gJHBsdWdpbl9saXN0IHsKLSAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkcGx1Z2luKV0gJiYgKCR2YXJzKCRwbHVnaW4pICE9ICIiKX0gewotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICBJTkZPOiBQbHVnLWluICRwbHVnaW4gPSAkdmFycygkcGx1Z2luKVxuIgotICAgICAgICAgICAgbGFwcGVuZCBjaGVjayhwbHVnaW5zKSAkcGx1Z2luCi0gICAgICAgICAgICBsYXBwZW5kIHZhcnMocGx1Z2luc19kZWZpbmVkKSAkcGx1Z2luIAotICAgICAgICAgfQotICAgICAgfQotICAgICAgaWYgeyR2YXJzKG5vdnVzKSAmJiBbaW5mbyBleGlzdHMgdmFycyhwbHVnaW5zX2RlZmluZWQpXX0gewotICAgICAgICAgRkZfTk9WVVM6OmNvbnZlcnRfcGx1Z2lucwotICAgICAgfQotCi0gICAgICBzZXQgZGlzdChsc2YpICJxdWV1ZSByZXNvdXJjZSBhcmdzIgotICAgICAgc2V0IGRpc3QoY3VzdG9tKSAic2NyaXB0IgotICAgICAgc2V0IGRpc3QocnNoKSAiaG9zdF9saXN0IgotICAgICAgc2V0IGRpc3QobG9jYWwpICIiCi0KLSAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhkaXN0cmlidXRlKV19IHsKLSAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgZGlzdCgkdmFycyhkaXN0cmlidXRlKSldfSB7Ci0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgICAgICAgICAgICAgIERpc3RyaWJ1dGlvbiBTZXR1cFxuIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4iCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIElORk86IE1vZGUgPSAkdmFycyhkaXN0cmlidXRlKVxuIgotICAgICAgICAgICAgZm9yZWFjaCBvcHRpb24gJGRpc3QoJHZhcnMoZGlzdHJpYnV0ZSkpIHsKLSAgICAgICAgICAgICAgIGlmIHshW2luZm8gZXhpc3RzIHZhcnMoJHZhcnMoZGlzdHJpYnV0ZSksJG9wdGlvbildfSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIEVSUk9SOiBSZXF1aXJlZCB2YXJpYWJsZSB2YXJzKCR2YXJzKGRpc3RyaWJ1dGUpLCRvcHRpb24pIG5vdCBkZWZpbmVkXG4iCi0gICAgICAgICAgICAgICAgICBzZXQgZXJyb3JzKCRlcnJvcl9jb3VudCkgIlJlcXVpcmVkIHZhcmlhYmxlIHZhcnMoJHZhcnMoZGlzdHJpYnV0ZSksJG9wdGlvbikgbm90IGRlZmluZWQiCi0gICAgICAgICAgICAgICAgICBpbmNyIGVycm9yX2NvdW50Ci0gICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICBJTkZPOiAgICAkb3B0aW9uID0gJHZhcnMoJHZhcnMoZGlzdHJpYnV0ZSksJG9wdGlvbilcbiIKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIEVSUk9SOiBEaXN0cmlidXRpb24gbW9kZSAkdmFycyhkaXN0cmlidXRlKSBub3Qgc3VwcG9ydGVkXG4iCi0gICAgICAgICAgICBzZXQgZXJyb3JzKCRlcnJvcl9jb3VudCkgIkRpc3RyaWJ1dGlvbiBtb2RlICR2YXJzKGRpc3RyaWJ1dGUpIG5vdCBzdXBwb3J0ZWQiCi0gICAgICAgICAgICBpbmNyIGVycm9yX2NvdW50Ci0gICAgICAgICB9Ci0gICAgICB9IGVsc2UgewotICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGhvc3RzKV0gJiYgKCR2YXJzKGhvc3RzKSA+IDEpfSB7Ci0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiNXQVJOSU5HOiBWYXJpYWJsZSB2YXJzKGhvc3RzKSA+IDEgYnV0IHZhcnMoZGlzdHJpYnV0ZSkgbm90IGRlZmluZWRcbiIKLSAgICAgICAgICAgIHNldCB3YXJuaW5ncygkd2FybmluZ19jb3VudCkgIlZhcmlhYmxlIHZhcnMoaG9zdHMpID4gMSBidXQgdmFycyhkaXN0cmlidXRlKSBub3QgZGVmaW5lZCIKLSAgICAgICAgICAgIGluY3Igd2FybmluZ19jb3VudAotICAgICAgICAgfQotICAgICAgfQotCi0gICAgICBhcHBlbmQgY29tbWFuZHMgIiMgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgICAgICAgICAgICAgIFR5cGUgQ2hlY2tcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuIgotICAgICAgZm9yZWFjaCBpbnRlZ2VyICRjaGVjayhpbnRlZ2VycykgewotICAgICAgICAgaWYgeyFbc3RyaW5nIGlzIGludGVnZXIgLXN0cmljdCAkdmFycygkaW50ZWdlcildfSB7Ci0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIEVSUk9SOiBWYXJpYWJsZXMgaXMgbm90IGFuIGludGVnZXIgKCRpbnRlZ2VyKSAuLi5cbiIKLSAgICAgICAgICAgIHNldCBlcnJvcnMoJGVycm9yX2NvdW50KSAiVmFyaWFibGVzIGlzIG5vdCBhbiBpbnRlZ2VyICgkaW50ZWdlcikgLi4uIgotICAgICAgICAgICAgaW5jciBlcnJvcl9jb3VudAotICAgICAgICAgfQotICAgICAgfSAKLSAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICAgICAgICAgICAgICAgRmlsZSBDaGVja1xuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4iCi0gICAgICBzZXQgZmlsZXMgMAotICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICBJTkZPOiBDaGVja2luZyBkZXNpZ24gZmlsZXMgLi4uXG4iCi0gICAgICBmb3JlYWNoIGZpbGUgJGNoZWNrKGZpbGVzKSB7Ci0gICAjICAgYXBwZW5kIGNvbW1hbmRzICIjICBJTkZPOiAgICAkZmlsZSAuLi5cbiIKLSAgICAgICAgIGlmIHshW2ZpbGUgZXhpc3RzICRmaWxlXX0gewotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICBFUlJPUjogRmlsZSBkb2VzIG5vdCBleGlzdCAoJGZpbGUpIC4uLlxuIgotICAgICAgICAgICAgc2V0IGVycm9ycygkZXJyb3JfY291bnQpICJGaWxlIGRvZXMgbm90IGV4aXN0ICgkZmlsZSkiCi0gICAgICAgICAgICBpbmNyIGVycm9yX2NvdW50Ci0gICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgaW5jciBmaWxlcwotICAgICAgICAgfQotICAgICAgfQotICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICBJTkZPOiAgICAuLi4gZm91bmQgJGZpbGVzIGZpbGVzXG4iCi0gICAgICBzZXQgZmlsZXMgMAotICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICBJTkZPOiBDaGVja2luZyBMRUYgZmlsZXMgLi4uXG4iCi0gICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMobGVmX2ZpbGVzKV19IHsKLSAgICAgICAgIGZvcmVhY2ggZmlsZSAkdmFycyhsZWZfZmlsZXMpIHsKLSAgICAgICAgICAgIGlmIHshW2ZpbGUgZXhpc3RzICRmaWxlXX0gewotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICBFUlJPUjogRmlsZSBkb2VzIG5vdCBleGlzdCAoJGZpbGUpXG4iCi0gICAgICAgICAgICAgICBzZXQgZXJyb3JzKCRlcnJvcl9jb3VudCkgIkZpbGUgZG9lcyBub3QgZXhpc3QgKCRmaWxlKSIKLSAgICAgICAgICAgICAgIGluY3IgZXJyb3JfY291bnQKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBpbmNyIGZpbGVzCi0gICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIElORk86ICAgIC4uLiBmb3VuZCAoJGZpbGVzL1tsbGVuZ3RoICR2YXJzKGxlZl9maWxlcyldKSBsZWYgZmlsZXNcbiIKLSAgICAgIH0KLSAgICAgIHNldCBmaWxlcyAwCi0gICAgICBzZXQgdG90YWwgMAotIyAgICAgIGlmIHshW2luZm8gZXhpc3RzIHZhcnModmlld19kZWZpbml0aW9uX3RjbCldfSB7Ci0jICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycyhjcGZfZmlsZSldfSB7Ci0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIElORk86IENoZWNraW5nIGxpYnJhcnkgc2V0cyAuLi5cbiIKLSAgICAgICAgIGZvcmVhY2ggbGlicmFyeV9zZXQgJHZhcnMobGlicmFyeV9zZXRzKSB7Ci0gICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoZW5hYmxlX2xkYildICYmICR2YXJzKGVuYWJsZV9sZGIpfSB7Ci0gICAgICAgICAgICAgICBzZXQgdGVtcF9saXN0ICR2YXJzKCRsaWJyYXJ5X3NldCx0aW1pbmcsb3JpZykKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBzZXQgdGVtcF9saXN0ICR2YXJzKCRsaWJyYXJ5X3NldCx0aW1pbmcpCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBmb3JlYWNoIGZpbGUgJHRlbXBfbGlzdCB7Ci0gICAgICAgICAgICAgICBpbmNyIHRvdGFsCi0gICAgICAgICAgICAgICBpZiB7IVtmaWxlIGV4aXN0cyAkZmlsZV19IHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgRVJST1I6IEZpbGUgZG9lcyBub3QgZXhpc3QgKCRmaWxlKVxuIgotIyAgICAgICAgICAgICAgICAgIHNldCBlcnJvcnMoJGVycm9yX2NvdW50KSAiRmlsZSBkb2VzIG5vdCBleGlzdCAoJGZpbGUpIgotIyAgICAgICAgICAgICAgICAgIGluY3IgZXJyb3JfY291bnQKLSAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICBpbmNyIGZpbGVzCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9IAotICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCRsaWJyYXJ5X3NldCxzaSldfSB7Ci0gICAgICAgICAgICAgICBmb3JlYWNoIGZpbGUgJHZhcnMoJGxpYnJhcnlfc2V0LHNpKSB7Ci0gICAgICAgICAgICAgICAgICBpbmNyIHRvdGFsCi0gICAgICAgICAgICAgICAgICBpZiB7IVtmaWxlIGV4aXN0cyAkZmlsZV19IHsKLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgV0FSTklORzogQ0RCIGZpbGUgZG9lcyBub3QgZXhpc3QgKCRmaWxlKVxuIgotIyAgICAgICAgICAgICAgICAgICAgIHNldCB3YXJuaW5ncygkd2FybmluZ19jb3VudCkgIkNEQiBmaWxlIGRvZXMgbm90IGV4aXN0ICgkZmlsZSkiCi0jICAgICAgICAgICAgICAgICAgICAgaW5jciB3YXJuaW5nX2NvdW50Ci0gICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgaW5jciBmaWxlcwotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIGlmIHshJHZhcnMoZW5hYmxlX3NpX2F3YXJlKX0gewotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICBXQVJOSU5HOiBDREIgbGlicmFyaWVzIG5vdCBkZWZpbmVkIGZvciAkbGlicmFyeV9zZXQgbGlicmFyeSBzZXRcbiIKLSAgICAgICAgICAgICAgICAgIHNldCB3YXJuaW5ncygkd2FybmluZ19jb3VudCkgIkNEQiBsaWJyYXJpZXMgbm90IGRlZmluZWQgZm9yICRsaWJyYXJ5X3NldCBsaWJyYXJ5IHNldCIKLSAgICAgICAgICAgICAgICAgIGluY3Igd2FybmluZ19jb3VudAotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAgfQotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICBJTkZPOiAgICAuLi4gZm91bmQgKCRmaWxlcy8kdG90YWwpIGxpYnJhcnkgZmlsZXNcbiIKLSAgICAgICAgIGlmIHskdG90YWwgIT0gJGZpbGVzfSB7Ci0gICAgICAgICAgICBzZXQgZXJyb3JzKCRlcnJvcl9jb3VudCkgIltleHByICR0b3RhbCAtICRmaWxlc10gdGltaW5nIGxpYnJhcnkgZmlsZXMgd2VyZSBub3QgZm91bmQgIgotICAgICAgICAgICAgaW5jciBlcnJvcl9jb3VudAotICAgICAgICAgfQotICAgICAgICAgc2V0IGZpbGVzIDAKLSMgICAgICB9Ci0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIElORk86IENoZWNraW5nIHJjIGNvcm5lcnMgLi4uXG4iCi0gICAgICAgICBmb3JlYWNoIGZpbGUgJGNoZWNrKHJjX2Nvcm5lcnMpIHsKLSAgICAgICAgICAgIGlmIHshW2ZpbGUgZXhpc3RzICRmaWxlXX0gewotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICBFUlJPUjogRmlsZSBkb2VzIG5vdCBleGlzdCAoJGZpbGUpXG4iCi0gICAgICAgICAgICAgICBzZXQgZXJyb3JzKCRlcnJvcl9jb3VudCkgIkZpbGUgZG9lcyBub3QgZXhpc3QgKCRmaWxlKSIKLSAgICAgICAgICAgICAgIGluY3IgZXJyb3JfY291bnQKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBpbmNyIGZpbGVzCi0gICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIElORk86ICAgIC4uLiBmb3VuZCAkZmlsZXMgZmlsZXNcbiIKLSAgICAgICAgIHNldCBmaWxlcyAwCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIElORk86IENoZWNraW5nIGNvbnN0cmFpbnQgbW9kZXMgLi4uXG4iCi0gICAgICAgICBmb3JlYWNoIGZpbGVfbGlzdCAkY2hlY2soY29uc3RyYWludF9tb2RlcykgewotICAgICAgICAgICAgZm9yZWFjaCBmaWxlICRmaWxlX2xpc3QgewotICAgICAgICAgICAgICAgaWYgeyFbZmlsZSBleGlzdHMgJGZpbGVdfSB7Ci0gICAgICAgICAgICAgICAgICBpZiB7IVtpbmZvIGV4aXN0cyB2YXJzKGNwZl9maWxlKV0gfHwgKFtpbmZvIGV4aXN0cyB2YXJzKGNwZl9maWxlKV0gJiYgISR2YXJzKGNwZl90aW1pbmcpKX0gewotICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICBFUlJPUjogRmlsZSBkb2VzIG5vdCBleGlzdCAoJGZpbGUpXG4iCi0gICAgICAgICAgICAgICAgICAgICBzZXQgZXJyb3JzKCRlcnJvcl9jb3VudCkgIkZpbGUgZG9lcyBub3QgZXhpc3QgKCRmaWxlKSIKLSAgICAgICAgICAgICAgICAgICAgIGluY3IgZXJyb3JfY291bnQKLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICBpbmNyIGZpbGVzCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0jICAgICAgfQotICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICBJTkZPOiAgICAuLi4gZm91bmQgJGZpbGVzIGZpbGVzXG4iCi0gICAgICBzZXQgZmlsZXMgMAotICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgSU5GTzogQ2hlY2tpbmcgcGx1Z2luIGZpbGVzIC4uLlxuIgotICAgICAgZm9yZWFjaCBwbHVnICRjaGVjayhwbHVnaW5zKSB7Ci0gICAgICAgICBzZXQgZmlsZSAkdmFycygkcGx1ZykKLSAgICAgICAgIGlmIHshW2ZpbGUgZXhpc3RzICRmaWxlXSAmJiAhW2ZpbGUgZXhpc3RzICR2YXJzKHBsdWdfZGlyKS8kZmlsZV19IHsKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgV0FSTklORzogRmlsZSBkb2VzIG5vdCBleGlzdCAoJGZpbGUpIC4uLiBjb250aW51aW5nXG4iCi0gICAgICAgICAgICBsYXBwZW5kIHZhcnMobWlzc2luZ19wbHVnaW5zKSAkcGx1ZyAKLSAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBsYXBwZW5kIHZhcnMocGx1Z2luc19mb3VuZCkgJHBsdWcgCi0gICAgICAgICAgICBpbmNyIGZpbGVzCi0gICAgICAgICAgICBpZiB7ISR2YXJzKGVuYWJsZV9jZWx0aWNfc3RlcHMpfSB7IAotICAgICAgICAgICAgICAgaWYge1tyZWdleHAgInBvc3Ryb3V0ZV9zaSIgJHBsdWddfSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgd2FybmluZ3MoJHdhcm5pbmdfY291bnQpICJQbHVnLWluICRwbHVnIHdpbGwgYmUgc2tpcHBlZCBmb3Igc2lBd2FyZSBmbG93IgotICAgICAgICAgICAgICAgICAgaW5jciB3YXJuaW5nX2NvdW50Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIFdBUk5JTkc6IFBsdWctaW4gJHBsdWcgd2lsbCBiZSBza2lwcGVkIGZvciBzaUF3YXJlIGZsb3dcbiIKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgICAgICAgICAgVG8gZW5hYmxlIGNlbHRpYyBiYXNlZCBTSSBmbG93LCB1c2UgdmFycyhlbmFibGVfY2VsdGljX3N0ZXBzKVxuIgotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAgfQotICAgICAgfQotICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICBJTkZPOiAgICAuLi4gZm91bmQgJGZpbGVzIGZpbGVzXG4iCi0KLSAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgICAgICAgICAgICAgICAgICAgRmxvdyBPcHRpb25zXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgIiMgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4iCi0gICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMocGFydGl0aW9uX2xpc3QpXX0gewotICAgICAgICAgc2V0IGZsb3cgaGllcmFyY2hpY2FsCi0gICAgICB9IGVsc2UgewotICAgICAgICAgc2V0IGZsb3cgZmxhdAotICAgICAgfQotICAgICAgc2V0IHZhbGlkIFtsaXN0IG5vbmUgZGVmYXVsdCBzdGFuZGFyZCBleHByZXNzIGV4dHJlbWVdCi0gICAgICBpZiB7W2xzZWFyY2ggJHZhbGlkIFtzdHJpbmcgdG9sb3dlciAkdmFycyhmbG93X2VmZm9ydCldXSA9PSAtMX0gewotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICBFUlJPUjogVmFyaWFibGUgdmFycyhmbG93X2VmZm9ydCkgaGFzIGlsbGVnYWwgdmFsdWUgJHZhcnMoZmxvd19lZmZvcnQpXG4iCi0gICAgICAgICBzZXQgZXJyb3JzKCRlcnJvcl9jb3VudCkgIlZhcmlhYmxlIHZhcnMoZmxvd19lZmZvcnQpIGhhcyBpbGxlZ2FsIHZhbHVlICR2YXJzKGZsb3dfZWZmb3J0KSIKLSAgICAgICAgIGluY3IgZXJyb3JfY291bnQKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgICAgICAgIE11c3QgYmUgb25lIG9mICckdmFsaWQnXG4iCi0gICAgICB9Ci0gICAgICBhcHBlbmQgY29tbWFuZHMgIiMgICAgICAgICAgICAgICAgICAgIEZsb3cgPSAkZmxvd1xuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICAgICAgICAgICAgICAgICAgRmxhdm9yID0gJHZhcnMoZmxvdylcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgICAgICAgICAgICAgICAgIEVmZm9ydCA9ICR2YXJzKGZsb3dfZWZmb3J0KVxuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICAgICAgICAgICAgICAgICAgICBQbGFjZW1lbnQgT3B0aW9uc1xuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIgotICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKHBsYWNlX29wdF9kZXNpZ24pXX0gewotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICAgICAgICBQbGFjZSBPcHQgRGVzaWduID0gJHZhcnMocGxhY2Vfb3B0X2Rlc2lnbilcbiIKLSAgICAgIH0KLSAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhpbl9wbGFjZV9vcHQpXX0gewotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICAgICAgICAgICAgSW4gUGxhY2UgT3B0ID0gJHZhcnMoaW5fcGxhY2Vfb3B0KVxuIgotICAgICAgfQotICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKG5vX3ByZV9wbGFjZV9vcHQpXX0gewotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICAgICAgICAgTm8gUHJlUGxhY2UgT3B0ID0gJHZhcnMobm9fcHJlX3BsYWNlX29wdClcbiIKLSAgICAgIH0KLSAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhwbGFjZV9pb19waW5zKV19IHsKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgICAgICAgICAgUGxhY2UgSU8gUGlucyA9ICR2YXJzKHBsYWNlX2lvX3BpbnMpXG4iCi0gICAgICB9Ci0gICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoY2xvY2tfZ2F0ZV9hd2FyZSldfSB7Ci0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgICAgICAgIENsb2NrIEdhdGUgQXdhcmUgPSAkdmFycyhjbG9ja19nYXRlX2F3YXJlKVxuIgotICAgICAgfQotICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGNvbmdlc3Rpb25fZWZmb3J0KV19IHsKLSAgICAgICAgIGlmIHskdmFycyhjb25nZXN0aW9uX2VmZm9ydCkgPT0gIm5vbmUifSB7Ci0gICAgICAgICAgICB1bnNldCB2YXJzKGNvbmdlc3Rpb25fZWZmb3J0KSAgCi0gICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICAgICAgIENvbmdlc3Rpb24gRWZmb3J0ID0gJHZhcnMoY29uZ2VzdGlvbl9lZmZvcnQpXG4iCi0gICAgICAgICB9Ci0gICAgICB9Ci0gICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgIiMgICAgICAgICAgICAgICAgICAgQ2xvY2sgVHJlZSBPcHRpb25zXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgIiMgICAgICAgIFJvdXRlIENsb2NrIE5ldHMgPSAkdmFycyhyb3V0ZV9jbG9ja19uZXRzKVxuIgotICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGNsb2NrX2VjbyldfSB7Ci0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgICAgICAgICAgICAgICBDbG9jayBFQ08gPSAkdmFycyhjbG9ja19lY28pXG4iCi0gICAgICB9Ci0gICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgIiMgICAgICAgICAgICAgICAgIE9wdGltaXphdGlvbiBPcHRpb25zXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4iCi0gICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMobGVha2FnZV9lZmZvcnQpXX0gewotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICAgICAgICAgIExlYWthZ2UgRWZmb3J0ID0gJHZhcnMobGVha2FnZV9lZmZvcnQpXG4iCi0gICAgICB9Ci0gICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMocHJlc2VydmVfYXNzZXJ0aW9ucyldfSB7Ci0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgICAgIFByZXNlcnZlIEFzc2VydGlvbnMgPSAkdmFycyhwcmVzZXJ2ZV9hc3NlcnRpb25zKVxuIgotICAgICAgfQotICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKHVzZWZ1bF9za2V3KV19IHsKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgICAgICAgICAgICBVc2VmdWwgU2tldyA9ICR2YXJzKHVzZWZ1bF9za2V3KVxuIgotICAgICAgfQotICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGNyaXRpY2FsX3JhbmdlKV19IHsKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgICAgICAgICBDcml0aWNhbCBSYW5nZSA9ICR2YXJzKGNyaXRpY2FsX3JhbmdlKVxuIgotICAgICAgfQotICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGFsbF9lbmRfcG9pbnRzKV19IHsKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgICAgICAgICBBbGwgRW5kIFBvaW50cyA9ICR2YXJzKGFsbF9lbmRfcG9pbnRzKVxuIgotICAgICAgfQotICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKHNpemVfb25seV9maWxlKV19IHsKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgICAgICAgICBTaXplIE9ubHkgRmlsZSA9ICR2YXJzKHNpemVfb25seV9maWxlKVxuIgotICAgICAgfQotICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGRvbnRfdXNlX2ZpbGUpXX0gewotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICAgICAgICAgIERvbid0IFVzZSBGaWxlID0gJHZhcnMoZG9udF91c2VfZmlsZSlcbiIKLSAgICAgIH0KLSAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhza2V3X2J1ZmZlcnMpXX0gewotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICAgICAgICAgICAgU2tldyBCdWZmZXJzID0gJHZhcnMoc2tld19idWZmZXJzKVxuIgotICAgICAgfQotICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGVuYWJsZV9wYWMpXX0gewotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICAgICAgICAgICAgICBFbmFibGUgUEFDID0gJHZhcnMoZW5hYmxlX3BhYylcbiIKLSAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhwYXJ0aXRpb25fbGlzdCldfSB7Ci0gICAgICAgICAgICBmb3JlYWNoIHBhYyAkdmFycyhwYXJ0aXRpb25fbGlzdCkgewotICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCRwYWMscGFjX21vZGUpXX0gewotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICAgICAgICAgICAgICAgICAgICRwYWMgLT4gJHZhcnMoJHBhYyxwYWNfbW9kZSlcbiIKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0KLSAgICAgIH0KLSAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgICAgICAgICAgICAgICAgIEhvbGQgRml4aW5nIE9wdGlvbnNcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgICAgICAgICAgICAgICBGaXggSG9sZCA9ICR2YXJzKGZpeF9ob2xkKVxuIgotICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGZpeF9ob2xkX2VmZm9ydCldfSB7Ci0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgICAgICAgICBGaXggSG9sZCBFZmZvcnQgPSAkdmFycyhmaXhfaG9sZF9lZmZvcnQpXG4iCi0gICAgICB9Ci0gICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoZml4X2hvbGRfaWdub3JlX2lvcyldfSB7Ci0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgICAgICAgICAgICAgSWdub3JlIElPcyAgPSAkdmFycyhmaXhfaG9sZF9pZ25vcmVfaW9zKVxuIgotICAgICAgfQotICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGZpeF9ob2xkX2FsbG93X3Ruc19kZWdyYWRhdGlvbildfSB7Ci0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgICBBbGxvdyBUTlMgRGVncmFkYXRpb24gPSAkdmFycyhmaXhfaG9sZF9hbGxvd190bnNfZGVncmFkYXRpb24pXG4iCi0gICAgICB9Ci0gICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgIiMgICAgICAgICAgICAgICAgICAgICBUaW1pbmcgT3B0aW9uc1xuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICAgICAgICAgICAgIEVuYWJsZSBDUFBSID0gJHZhcnMoZW5hYmxlX2NwcHIpXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgIiMgICAgICAgICAgICAgIEVuYWJsZSBPQ1YgPSAkdmFycyhlbmFibGVfb2N2KVxuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICAgICAgICAgICAgIEVuYWJsZSBBT0NWID0gJHZhcnMoZW5hYmxlX2FvY3YpXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgIiMgICAgICAgICAgICAgRW5hYmxlIFNPQ1YgPSAkdmFycyhlbmFibGVfc29jdilcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgICAgICAgICAgICAgIEVuYWJsZSBTUyA9ICR2YXJzKGVuYWJsZV9zcylcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgICAgICAgICAgICAgICAgICAgUm91dGluZyBPcHRpb25zXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4iCi0gICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnModHJhY2tfb3B0KV19IHsKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgICBJbiBSb3V0ZSBPcHRpbWl6YXRpb24gPSAkdmFycyh0cmFja19vcHQpXG4iCi0jICAgICAgICAgaWYgeyR2YXJzKHRyYWNrX29wdCl9IHsKLSMgICAgICAgICAgICBzZXQgdmFycyhlbmFibGVfc2lfYXdhcmUpIHRydWUKLSMgICAgICAgICAgICBpZiB7IVtpbmZvIGV4aXN0cyB2YXJzKHRxdWFudHVzX2ZpbGUpXX0gewotIyAgICAgICAgICAgICAgIHNldCBlcnJvcnMoJGVycm9yX2NvdW50KSAidFF1YW50dXMgZmlsZSAtIHZhcnModHF1YW50dXNfZmlsZSkgLSByZXF1aXJlZCB3aGVuIHZhcnModHJhY2tfb3B0KSBzZXQgdG8gdHJ1ZSIKLSMgICAgICAgICAgICAgICBpbmNyIGVycm9yX2NvdW50Ci0jICAgICAgICAgICAgfQotIyAgICAgICAgIH0KLSAgICAgIH0KLSAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhtdWx0aV9jdXRfZWZmb3J0KV19IHsKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgICAgICAgTXVsdGktQ3V0IEVmZm9ydCA9ICR2YXJzKG11bHRpX2N1dF9lZmZvcnQpXG4iCi0gICAgICB9Ci0gICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMobGl0aG9fZHJpdmVuX3JvdXRpbmcpXX0gewotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICAgIExpdGhvIERyaXZlbiBSb3V0aW5nID0gJHZhcnMobGl0aG9fZHJpdmVuX3JvdXRpbmcpXG4iCi0gICAgICB9Ci0gICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoYW50ZW5uYV9kaW9kZSldICYmICgkdmFycyhhbnRlbm5hX2Rpb2RlKSAhPSAiIil9IHsKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgICAgICAgICAgQW50ZW5uYSBEaW9kZSA9ICR2YXJzKGFudGVubmFfZGlvZGUpXG4iCi0gICAgICB9Ci0gICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMocmVsYXRpdmVfY190aHJlc2gpXSB8fCBcCi0gICAgICAgICAgW2luZm8gZXhpc3RzIHZhcnModG90YWxfY190aHJlc2gpXSB8fCBcCi0gICAgICAgICAgW2luZm8gZXhpc3RzIHZhcnMoY291cGxpbmdfY190aHJlc2gpXSB8fFwKLSAgICAgICAgICBbaW5mbyBleGlzdHMgdmFycyhwb3N0cm91dGVfZXh0cmFjdGlvbl9lZmZvcnQpXSB8fFwKLSAgICAgICAgICBbaW5mbyBleGlzdHMgdmFycyhzaWdub2ZmX2V4dHJhY3Rpb25fZWZmb3J0KV19IHsKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgICAgICAgICAgICAgICAgICBFeHRyYWN0aW9uIE9wdGlvbnNcbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiIKLSAgICAgIH0KLSAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhyZWxhdGl2ZV9jX3RocmVzaCldfSB7Ci0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgICAgUmVsYXRpdmUgQyBUaHJlc2hvbGQgPSAkdmFycyhyZWxhdGl2ZV9jX3RocmVzaClcbiIKLSAgICAgIH0KLSAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyh0b3RhbF9jX3RocmVzaCldfSB7Ci0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgICAgICAgVG90YWwgQyBUaHJlc2hvbGQgPSAkdmFycyh0b3RhbF9jX3RocmVzaClcbiIKLSAgICAgIH0KLSAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhjb3VwbGluZ19jX3RocmVzaCldfSB7Ci0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgICAgQ291cGxpbmcgQyBUaHJlc2hvbGQgPSAkdmFycyhjb3VwbGluZ19jX3RocmVzaClcbiIKLSAgICAgIH0KLSAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhwb3N0cm91dGVfZXh0cmFjdGlvbl9lZmZvcnQpXX0gewotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICBQb3N0cm91dGUgRWZmb3J0IExldmVsID0gJHZhcnMocG9zdHJvdXRlX2V4dHJhY3Rpb25fZWZmb3J0KVxuIgotICAgICAgfQotICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKHNpZ25vZmZfZXh0cmFjdGlvbl9lZmZvcnQpXX0gewotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICAgIFNpZ25vZmYgRWZmb3J0IExldmVsID0gJHZhcnMoc2lnbm9mZl9leHRyYWN0aW9uX2VmZm9ydClcbiIKLSAgICAgIH0KLQotICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICAgICAgICAgICAgICAgICAgICAgICAgREZNIE9wdGlvbnNcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiIKLSAgICAgIHNldCBjaGVja19scGFfdGVjaCAwCi0gICAgICBzZXQgY2hlY2tfbHBhX2NvbmYgMAotICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGZpeF9saXRobyldICYmICR2YXJzKGZpeF9saXRobyl9IHsKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgICAgICAgICAgICAgIEZpeCBMaXRobyA9ICR2YXJzKGZpeF9saXRobylcbiIKLSAgICAgICAgIHNldCBjaGVja19scGFfY29uZiAxCi0gICAgICAgICBzZXQgdmFycyh2ZXJpZnlfbGl0aG8pIHRydWUKLSAgICAgIH0KLSAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyh2ZXJpZnlfbGl0aG8pXSAmJiAkdmFycyh2ZXJpZnlfbGl0aG8pfSB7Ci0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgICAgICAgICAgICBWZXJpZnkgTGl0aG8gPSAkdmFycyh2ZXJpZnlfbGl0aG8pXG4iCi0gICAgICAgICBzZXQgY2hlY2tfbHBhX3RlY2ggMQotICAgICAgfQotICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGxwYV90ZWNoX2ZpbGUpXX0gewotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICAgICAgICAgICBMUEEgVGVjaCBGaWxlID0gJHZhcnMobHBhX3RlY2hfZmlsZSlcbiIKLSAgICAgIH0gCi0gICAgICBpZiB7JGNoZWNrX2xwYV90ZWNofSB7IAotICAgICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycyhscGFfdGVjaF9maWxlKV19IHsKLSAgICAgICAgICAgIHNldCBlcnJvcnMoJGVycm9yX2NvdW50KSAiTFBBIHRlY2ggZmlsZSBub3QgZGVmaW5lZCAuLi4iCi0gICAgICAgICAgICBpbmNyIGVycm9yX2NvdW50Ci0gICAgICAgICB9Ci0gICAgICB9Ci0gICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMobHBhX2NvbmZfZmlsZSldfSB7Ci0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgICAgICAgICAgIExQQSBDb25mIEZpbGUgPSAkdmFycyhscGFfY29uZl9maWxlKVxuIgotICAgICAgfQotICAgICAgaWYgeyRjaGVja19scGFfY29uZn0geyAKLSAgICAgICAgIGlmIHshW2luZm8gZXhpc3RzIHZhcnMobHBhX2NvbmZfZmlsZSldfSB7Ci0gICAgICAgICAgICBzZXQgZXJyb3JzKCRlcnJvcl9jb3VudCkgIkxQQSBjb25mIGZpbGUgbm90IGRlZmluZWQgLi4uIgotICAgICAgICAgICAgaW5jciBlcnJvcl9jb3VudAotICAgICAgICAgfQotICAgICAgfQotICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICAgICAgICAgICAgICAgIFNpZ25hbCBJbnRlZ3JpdHkgT3B0aW9uc1xuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICAgICAgICAgICAgICAgICBQcm9jZXNzID0gJHZhcnMocHJvY2VzcylcbiIKLSAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhkZWx0YV9kZWxheV90aHJlc2hvbGQpXX0gewotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICAgRGVsdGEgRGVsYXkgVGhyZXNob2xkID0gJHZhcnMoZGVsdGFfZGVsYXlfdGhyZXNob2xkKVxuIgotICAgICAgfQotICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGNlbHRpY19zZXR0aW5ncyldfSB7Ci0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgICAgICAgICBDZWx0aWMgU2V0dGluZ3MgPSAkdmFycyhjZWx0aWNfc2V0dGluZ3MpXG4iCi0gICAgICB9Ci0gICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoc2lfYW5hbHlzaXNfdHlwZSldfSB7Ci0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgICAgICAgICAgIEFuYWx5c2lzIFR5cGUgPSAkdmFycyhzaV9hbmFseXNpc190eXBlKVxuIgotICAgICAgfQotICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGFjY2VwdGFibGVfd25zKV19IHsKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgICAgICAgICAgQW5hbHlzaXMgVHlwZSA9ICR2YXJzKGFjY2VwdGFibGVfd25zKVxuIgotICAgICAgfQotCi0gICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoZGlzdHJpYnV0ZSldfSB7Ci0gICAgICAgICBpZiB7W2luZm8gZXhpc3RzIGRpc3QoJHZhcnMoZGlzdHJpYnV0ZSkpXX0gewotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICAgICAgICAgICAgICAgICAgIE11bHRpcGxlIENQVXNcbiIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgICAgICAgICAgICAgICAgICAgTW9kZSA9ICR2YXJzKGRpc3RyaWJ1dGUpXG4iCi0gICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMobG9jYWxfY3B1cyldfSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgICAgICBDUFVzIE9uIExvY2FsIEhvc3QgPSAkdmFycyhsb2NhbF9jcHVzKVxuIgotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKHJlbW90ZV9ob3N0cyldfSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIE51bWJlciBvZiBSZW1vdGUgSG9zdHMgPSAkdmFycyhyZW1vdGVfaG9zdHMpXG4iCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoY3B1c19wZXJfcmVtb3RlX2hvc3QpXX0gewotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICAgIENQVXMgUGVyIFJlbW90ZSBIb3N0ID0gJHZhcnMoY3B1c19wZXJfcmVtb3RlX2hvc3QpXG4iCi0gICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0gICAgICB9IGVsc2UgewotICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGxvY2FsX2NwdXMpXX0gewotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICAgICAgICAgICAgICAgICAgIE11bHRpcGxlIENQVXNcbiIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgICAgIENQVXMgT24gTG9jYWwgSG9zdCA9ICR2YXJzKGxvY2FsX2NwdXMpXG4iCi0gICAgICAgICB9Ci0gICAgICB9Ci0gICAgICBpZiB7JHZhcnMoaGlnaF90aW1pbmdfZWZmb3J0KX0gewotICAgICAgICAgaWYge1tsaW5kZXggW3NwbGl0ICR2YXJzKHZlcnNpb24pICIuIl0gIDBdIDwgMTV9IHsKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgICAgICAgICA8PDwgSElHSCBFRkZPUlQgRkxPVyBFTkFCTEVEID4+PlxuIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIgotICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgV0FSTklORzogVmFyaWFibGUgdmFycyhoaWdoX3RpbWluZ19lZmZvcnQpIG5vdCBzdXBwb3J0ZWQgYW55bW9yZS4gUGxlYXNlIHVzZSB2YXJzKGZsb3dfZWZmb3J0KS5cbiIKLSAgICAgICAgICAgIHNldCB3YXJuaW5ncygkd2FybmluZ19jb3VudCkgIlZhcmlhYmxlIHZhcnMoaGlnaF90aW1pbmdfZWZmb3J0KSBub3Qgc3VwcG9ydGVkIGFueW1vcmUuIFBsZWFzZSB1c2UgdmFycyhmbG93X2VmZm9ydCkuIgotICAgICAgICAgICAgaW5jciB3YXJuaW5nX2NvdW50Ci0gICAgICAgICB9Ci0gICAgICB9Ci0KLSAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgICBBYm9ydCBvbiBTZXR1cCBFcnJvciA9ICR2YXJzKGFib3J0KVxuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuIgotCi0gICAgICBpZiB7W2xpbmRleCBbc3BsaXQgJHZhcnModmVyc2lvbikgIi4iXSAgMF0gPiAxMH0gewotICAgICAgICAgZm9yZWFjaCB2YXIgW2FycmF5IG5hbWVzIHNhdmVfdmFyc10gewotICAgICAgICAgICAgc2V0IHZhcnMoJHZhcikgJHNhdmVfdmFycygkdmFyKQotICAgICAgICAgfQotICAgICAgfQotICAgICAgc2V0IGNvbW1hbmQgIiIKLSAgICAgIHNldCB2YXJzKGluZm9fY291bnQpICRpbmZvX2NvdW50Ci0gICAgICBpZiB7JGluZm9fY291bnQgPiAwfSB7Ci0gICAgICAgICBhcHBlbmQgY29tbWFuZCAiIyAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kICIjICAgICAgICAgICAgICAgICAgIEluZm8gU3VtbWFyeVxuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiMgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4iCi0KLSAgICAgICAgIGZvciB7c2V0IGkgMH0geyRpPCRpbmZvX2NvdW50fSB7aW5jciBpfSB7Ci0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiIyAgKFtleHByICRpICsgMV0pICRpbmZvcygkaSlcbiIKLSAgICAgICAgIH0KLSAgICAgICAgIGFwcGVuZCBjb21tYW5kICIjICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIgotCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgJGNvbW1hbmQKLSAgICAgIH0KLSAgICAgIHNldCB2YXJzKHdhcm5pbmdfY291bnQpICR3YXJuaW5nX2NvdW50Ci0gICAgICBpZiB7JHdhcm5pbmdfY291bnQgPiAwfSB7Ci0gICAgICAgICBhcHBlbmQgY29tbWFuZCAiIyAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kICIjICAgICAgICAgICAgICAgICAgIFdhcm5pbmcgU3VtbWFyeVxuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiMgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4iCi0KLSAgICAgICAgIGZvciB7c2V0IGkgMH0geyRpPCR3YXJuaW5nX2NvdW50fSB7aW5jciBpfSB7Ci0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiIyAgKFtleHByICRpICsgMV0pICR3YXJuaW5ncygkaSlcbiIKLSAgICAgICAgIH0KLSAgICAgICAgIGFwcGVuZCBjb21tYW5kICIjICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIgotCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgJGNvbW1hbmQKLSAgICAgIH0KLSAgICAgIHNldCB2YXJzKGVycm9yX2NvdW50KSAkZXJyb3JfY291bnQKLSAgICAgIGlmIHskZXJyb3JfY291bnQgPiAwfSB7Ci0gICAgICAgICBhcHBlbmQgY29tbWFuZCAiIyAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kICIjICAgICAgICAgICAgICAgICAgICBFcnJvciBTdW1tYXJ5XG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZCAiIyAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiIKLQotICAgICAgICAgZm9yIHtzZXQgaSAwfSB7JGk8JGVycm9yX2NvdW50fSB7aW5jciBpfSB7Ci0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiIyAgKFtleHByICRpICsgMV0pICRlcnJvcnMoJGkpXG4iCi0gICAgICAgICB9Ci0gICAgICAgICBhcHBlbmQgY29tbWFuZCAiIyAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiIKLQotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICRjb21tYW5kCi0KLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgICAgICAgICAgICAgICAgICAgU0VUVVAgQ0hFQ0sgUEFTU0VEXG4iCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4iCi0gICAgICB9Ci0KLSAgICAgIGZpbGUgbWtkaXIgJHZhcnMoc2NyaXB0X2RpcikKLSAgICAgIHNldCBvcCBbb3BlbiAkdmFycyhzY3JpcHRfZGlyKS9jaGVjay5ycHQgd10KLSMgICAgICBpZiB7JHZhcnMobm92dXMpfSB7Ci0jICAgICAgICAgRkZfTk9WVVM6OmR1bXBfbm92dXNfYXR0cmlidXRlcwotIyAgICAgIH0KLQotICAgICAgcHV0cyAkb3AgJGNvbW1hbmRzCi0KLSAgICAgIGNsb3NlICRvcAotCi0gICAgICBpZiB7JHZhcnMoYWJvcnQpICYmICgkZXJyb3JfY291bnQgPiAwKX0gewotICAgICAgICAgcHV0cyAiPEZGPiBBYm9ydGluZyBkdWUgdG8gcHJldmlvdXMgZXJyb3JzIC4uLiIKLSAgICAgICAgIHB1dHMgIjxGRj4gU2VlICR2YXJzKHNjcmlwdF9kaXIpL2NoZWNrLnJwdCBmb3IgZGV0YWlscyIKLSAgICAgICAgIHB1dHMgIiIKLSAgICAgICAgIHB1dHMgIiAgICAgICAgICAgICAgICAgIEVycm9yIFN1bW1hcnkiCi0gICAgICAgICBwdXRzICIgICAgICAgICAgICAgICAgICAtLS0tLS0tLS0tLS0tIgotCi0gICAgICAgICBmb3Ige3NldCBpIDB9IHskaTwkZXJyb3JfY291bnR9IHtpbmNyIGl9IHsKLSAgICAgICAgICAgIHB1dHMgIiAgIChbZXhwciAkaSArIDFdKSAkZXJyb3JzKCRpKSIKLSAgICAgICAgIH0KLSAgICAgICAgIHB1dHMgIi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iCi0gICAgICAgICBleGl0IC0xCi0gICAgICB9Ci0KLSAgICAgIGlmIHshJHZhcnMoY29kZWdlbil9IHsKLSAgICAgICAgIGlmIHshW0ZGOjppc19scF9mbG93XX0gewotICAgICAgICAgICAgcmV0dXJuCi0gICAgICAgICB9Ci0gICAgICAgICBzZXQgdmFycyhyZXF1aXJlZF9wcm9jcykgImdldF9jbG9ja19wb3J0cyBnZXRfcG93ZXJfZG9tYWlucyBtb2RpZnlfcG93ZXJfZG9tYWlucyBhZGRfcG93ZXJfc3dpdGNoZXMgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb3V0ZV9zZWNvbmRhcnlfcGdfbmV0cyBidWZmZXJfYWx3YXlzX29uX25ldHMgaW5zZXJ0X3dlbGx0YXBzX2VuZGNhcHMiCi0gICAgICB9Ci0KLSAgICAgIHNldCB2YXJzKGNoZWNrX3NldHVwKSAwCi0KLSAgICAgICMgUmVjb3JkIGVycm9ycyBmb3IgbGF0ZXIgcHJvY2Vzc2luZwotICAgICAgc2V0IHZhcnMoY2hlY2tfc2V0dXBfZXJyb3JzKSB7fQotICAgICAgZm9yIHtzZXQgaSAwfSB7JGk8JGVycm9yX2NvdW50fSB7aW5jciBpfSB7Ci0gICAgICAgICBsYXBwZW5kIHZhcnMoY2hlY2tfc2V0dXBfZXJyb3JzKSAkZXJyb3JzKCRpKQotICAgICAgfQotICAgfQotCi0gICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAjIFByb2NlZHVyZSB0byBkZXRlcm1pbmUgZmxvdyBmbGF2b3IsIGNoZWNrIGZvciBpbG1zLCBldGMuCi0gICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0KLSAgIHByb2MgY2hlY2tfZmxvdyB7fSB7Ci0gICAKLSAgICAgIGdsb2JhbCB2YXJzCi0gICAKLSAgICAgIHNldCB2YXJzKGlsbSkgMAotICAgICAgc2V0IHZhcnModG9wKSAwCi0gICAKLSAgICAgIGlmIHshW2luZm8gZXhpc3RzIHZhcnMocGFydGl0aW9uX2xpc3QpXSB8fCAoW2luZm8gZXhpc3RzIHZhcnMocGFydGl0aW9uX2xpc3QpXSAmJiBcCi0gICAgICAgICAgIChbZmlsZSB0YWlsIFtmaWxlIGRpcm5hbWUgW3B3ZF1dXSAhPSAiJHZhcnMocGFydGl0aW9uX2RpcikiKSl9IHsKLQotICAgICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycyhwYXJ0aXRpb25fbGlzdCldfSB7Ci0gICAgICAgICAgICBzZXQgdmFycyhmbGF2b3IpIGZsYXQKLSAgICAgICAgICAgIGlmIHshW2luZm8gZXhpc3RzIHZhcnMobW9kZSldfSB7Ci0gICAgICAgICAgICAgICBzZXQgdmFycyhtb2RlKSAiZmxhdCIKLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBzZXQgdmFycyhmbGF2b3IpIGhpZXIKLSAgICAgICAgICAgIGlmIHshW2luZm8gZXhpc3RzIHZhcnMobW9kZSldfSB7Ci0gICAgICAgICAgICAgICBzZXQgdmFycyhtb2RlKSAidG9wX2Rvd24iCi0gICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0gICAgIAotICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKHBhcnRpdGlvbl9saXN0KV0gJiYgKCR2YXJzKG1vZGUpID09ICJib3R0b21fdXAiKX0gewotICAgICAgICAgICAgc2V0IHZhcnMoaWxtKSAxCi0gICAgICAgICB9Ci0gICAKLSAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhpbG1fbGlzdCldICYmICgkdmFycyhpbG1fbGlzdCkgIT0gIiIpfSB7Ci0gICAgICAgICAgICBzZXQgdmFycyhpbG0pIDEKLSAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBzZXQgdmFycyhpbG0pIDAKLSAgICAgICAgIH0KLSAgIAotICAgICAgfSBlbHNlIHsKLSAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhwYXJ0aXRpb25fbGlzdCldfSB7Ci0gICAgICAgICAgICBzZXQgcHRuIFtmaWxlIHRhaWwgW3B3ZF1dCi0gICAgICAgICAgICBzZXQgdmFycyhwdG4pICRwdG4KLSAgICAgICAgICAgIGlmIHsoW2ZpbGUgdGFpbCBbZmlsZSBkaXJuYW1lIFtwd2RdXV0gPT0gIiR2YXJzKHBhcnRpdGlvbl9kaXIpIikgJiYKLSAgICAgICAgICAgICAgICAoW2xzZWFyY2ggJHZhcnMocGFydGl0aW9uX2xpc3QpICRwdG5dID09IC0xKX0gewotICAgICAgICAgICAgICAgc2V0IHZhcnMoaWxtKSAxCi0gICAgICAgICAgICAgICBzZXQgdmFycyh0b3ApIDEKLSMgICAgICAgICAgICAgICBGRl9OT1ZVUzo6bm9ybWFsaXplX2NvbnN0cmFpbnRzCi0gICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0gICAgICB9Ci0gICAgICBpZiB7JHZhcnMoZGVidWcpfSB7Ci0gICAgICAgICBwdXRzICI8REVCVUc+IEZsb3cgLT4gJHZhcnMoZmxhdm9yKSA6IFN0ZXAgLT4gJHZhcnMoc3RlcCkgOiBJTE0gLT4gJHZhcnMoaWxtKSIKLSAgICAgIH0KLSAgIH0KLQotICAgcHJvYyBydW5fY29tcGlsZSB7fSB7Ci0KLSAgICAgIGdsb2JhbCB2YXJzCi0KLSAgICAgIGZpbGUgbWtkaXIgJHZhcnMoc2NyaXB0X2RpcikvSU5OT1ZVUwotICAgICAgc2V0IG9wIFtvcGVuICR2YXJzKHNjcmlwdF9kaXIpL0lOTk9WVVMvcnVuX2NvbXBpbGUudGNsIHddCi0KLSAgICAgIHNldCBjb21tYW5kcyAiIgotCi0gICAgICBpZiB7IVtpbmZvIGV4aXN0cyB2YXJzKGxkYl9kaXIpXX0gewotICAgICAgICAgc2V0IHZhcnMobGRiX2RpcikgTERCCi0gICAgICB9Ci0gICAgICBmaWxlIG1rZGlyICR2YXJzKGxkYl9kaXIpCi0gICAgICBzZXQgZG9uZV9saXN0IFtsaXN0XQotCi0gICAgICBmb3JlYWNoIHNldCAkdmFycyhsaWJyYXJ5X3NldHMpIHsKLSAgICAgICAgIHNldCBmaWxlX2xpc3QgW2xpc3RdCi0gICAgICAgICBmb3JlYWNoIGZpbGUgJHZhcnMoJHNldCx0aW1pbmcpIHsKLSAgICAgICAgICAgIGlmIHtbbHNlYXJjaCAkZG9uZV9saXN0ICRmaWxlXSA9PSAtMX0gewotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJ3cml0ZV9sZGIgLWxpYnJhcnkgJGZpbGUgLW91dGZpbGUgJHZhcnMobGRiX2RpcikvW2ZpbGUgdGFpbCAkZmlsZS5sZGJdXG4iCi0gICAgICAgICAgICAgICBsYXBwZW5kIGRvbmVfbGlzdCAkZmlsZQotICAgICAgICAgICAgfQotICAgICAgICAgICAgbGFwcGVuZCBmaWxlX2xpc3QgJHZhcnMobGRiX2RpcikvW2ZpbGUgdGFpbCAkZmlsZV0ubGRiCi0gICAgICAgICB9Ci0gICAgICAgICBzZXQgdmFycygkc2V0LHRpbWluZyxvcmlnKSAkdmFycygkc2V0LHRpbWluZykKLSAgICAgICAgIHNldCB2YXJzKCRzZXQsdGltaW5nKSAkZmlsZV9saXN0Ci0gICAgICB9Ci0KLSAgICAgIHB1dHMgJG9wICIkY29tbWFuZHNcbmV4aXRcbiIKLSAgICAgIGNsb3NlICRvcAotCi0gICAgICBzZXQgdmFycyhyYW5fY29tcGlsZSkgMQotICAgfQotCi0KLSMgICAjIEdlbmVyYXRlIHRoZSBjb21tYW5kIHRvIHZlcmlmeSBnZW9tZXRyeS4gVGhpcyBpcyB2ZXJpZnlHZW9tZXRyeQotIyAgICMgZm9yIHRyYWRpdGlvbmFsIHByb2Nlc3NlcywgdmVyaWZ5X2RyYyBmb3IgMjBubSBhbmQgYmVsb3cuCi0jICAgcHJvYyB2ZXJpZnlfZ2VvbWV0cnlfY29tbWFuZCB7fSB7Ci0jICAgICAgZ2xvYmFsIHZhcnMKLSMgICAgICBzZXQgcHJvY2VzcyBbcmVnc3ViICJubSIgJHZhcnMocHJvY2VzcykgIiJdCi0jICAgICAgaWYgeyRwcm9jZXNzID4gMjB9IHsKLSMgICAgICAgICByZXR1cm4gInZlcmlmeUdlb21ldHJ5IgotIyAgICAgIH0gZWxzZSB7Ci0jICAgICAgICAgcmV0dXJuICJ2ZXJpZnlfZHJjIgotIyAgICAgIH0KLSMgICB9Ci0KLQotICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgIyBQcm9jZWR1cmUgdG8gaW5pdGlhbGl6ZSB0aGUgZm91bmRhdGlvbiBmbG93IAotICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCi0gICBwcm9jIGluaXRpYWxpemVfZmxvdyB7fSB7Ci0gICAgICBnbG9iYWwgdmFycwotICAgICAgZ2xvYmFsIGVudgotCi0gICAgICBzZXQgY29tbWFuZHMgIiIKLQotICAgICAgRkZfTk9WVVM6OnNlZWRfdmFyaWFibGVzIDEKLSAgICAgIEZGX05PVlVTOjpjaGVja19zZXR1cAotCi0gICAgICBpZiB7W2luZm8gZXhpc3QgZW52KFZQQVRIKV19IHsKLSAgICAgICAgIGZpbGUgbWtkaXIgJGVudihWUEFUSCkKLSAgICAgIH0KLQotICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGNhcHR1cmVfbWV0cmljcyldICYmICR2YXJzKGNhcHR1cmVfbWV0cmljcyl9IHsgCi0gICAgICAgICBpZiB7W2xpbmRleCBbc3BsaXQgJHZhcnModmVyc2lvbikgIi4iXSAgMF0gPCAxNH0gewotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJcbiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4iCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgTG9hZGluZyBhcHBsZXRzIGZvciBtZXRyaWNzIGNhcHR1cmUgLi4uXG4iCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4iCi0gICAgICAgICAgICBpZiB7W2ZpbGUgdGFpbCBbZmlsZSBkaXJuYW1lIFtleGVjIHB3ZF1dXSA9PSAkdmFycyhwYXJ0aXRpb25fZGlyKX0gewotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJzb3VyY2UgJHZhcnMobm9ybV9zY3JpcHRfcGF0aCkvRVRDL2FwcGxldC50Y2xcbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAic291cmNlICR2YXJzKG5vcm1fc2NyaXB0X3BhdGgpL0VUQy9jb21wYXRpYmlsaXR5LnRjbFxuIgotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJzZXRfZGIgYXBwbGV0X3NlYXJjaF9wYXRoICR2YXJzKG5vcm1fc2NyaXB0X3BhdGgpL0VUQy9hcHBsZXRzXG4iCi0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJzb3VyY2UgXCR2YXJzKHNjcmlwdF9wYXRoKS9FVEMvYXBwbGV0LnRjbFxuIgotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJzb3VyY2UgXCR2YXJzKHNjcmlwdF9wYXRoKS9FVEMvY29tcGF0aWJpbGl0eS50Y2xcbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAic2V0X2RiIGFwcGxldF9zZWFyY2hfcGF0aCBcJHZhcnMoc2NyaXB0X3BhdGgpL0VUQy9hcHBsZXRzXG4iCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgImFwcGxldCBsb2FkIG1lYXN1cmVcbiIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiYXBwbGV0IGxvYWQgdGltZV9pbmZvXG4iCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiaWYge1xbZmlsZSBleGlzdHMgJHZhcnModGltZV9pbmZvX2RiKVxdfSB7XG4iCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiAgIHRpbWVfaW5mbyAtcXVpZXQgLXRhYmxlIGZmX2V4dCAtbG9hZCAkdmFycyh0aW1lX2luZm9fZGIpXG4iCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIn1cbiIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuIgotICAgICAgICAgfQotICAgICAgfQotCi0jICAgICAgYXBwZW5kIGNvbW1hbmRzICIjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4iCi0jICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICAgICAgICAgICAgICAgICBSVU4gU0NSSVBUIEZPUiBTVEVQICdbc3RyaW5nIHRvdXBwZXIgJHZhcnMoc3RlcCldJ1xuIgotIyAgICAgIGFwcGVuZCBjb21tYW5kcyAiIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIgotICAgICAgaWYgeyR2YXJzKHJlcG9ydF9zeXN0ZW1faW5mbyl9IHsKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiZmZfcHJvY3M6OnN5c3RlbV9pbmZvXG4iCi0gICAgICB9Ci0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGX05PVlVTOjppbml0aWFsaXplX211bHRpY3B1XQotCi0gICAgICBpZiB7JHZhcnMoY29kZWdlbil9IHsKLSAgICAgICAgIHJldHVybiAkY29tbWFuZHMKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgdXBsZXZlbCAjMCBldmFsICRjb21tYW5kcwotICAgICAgfQotICAgfQotCi0gICBwcm9jIGxvYWRfZGVzaWduIHtzdGVwIHtjdXJyZW50X3N0ZXAgIiJ9IHtmb3JtYXQgMX19IHsKLQotICAgICAgZ2xvYmFsIGVudgotICAgICAgZ2xvYmFsIHZhcnMKLSAgICAgIGdsb2JhbCBlcnJvcnMKLSAgICAgIGdsb2JhbCB3YXJuaW5ncwotCi0gICAgICBpZiB7W3JlZ2V4cCBzeW5fICRzdGVwXX0gewotICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCRjdXJyZW50X3N0ZXAsc3RhcnRpbmdfZGJzKV19IHsKLSAgICAgICAgICAgIGlmIHtbZmlsZSBpc2ZpbGUgJHZhcnMoJGN1cnJlbnRfc3RlcCxzdGFydGluZ19kYnMpXX0gewotICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgInJlYWRfZGIgJHZhcnMoJGN1cnJlbnRfc3RlcCxzdGFydGluZ19kYnMpIFxuIgotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIHB1dHMgIjxGRj4gU3RhcnRpbmcgREJTICgkdmFycygkY3VycmVudF9zdGVwLHN0YXJ0aW5nX2RicykpIGRlZmluZWQgYnV0IGRvZXMgbm90IGV4aXN0IgotICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgInJlYWRfZGIgJHZhcnMoJGN1cnJlbnRfc3RlcCxzdGFydGluZ19kYnMpIFxuIgotICAgICAgICAgICAgICAgc2V0IHdhcm5pbmdzKCR2YXJzKHdhcm5pbmdfY291bnQpKSAiU3RhcnRpbmcgREJTICgkdmFycygkY3VycmVudF9zdGVwLHN0YXJ0aW5nX2RicykpIGRlZmluZWQgYnV0IGRvZXMgbm90IGV4aXN0IgotICAgICAgICAgICAgICAgaW5jciB2YXJzKHdhcm5pbmdfY291bnQpCi0gICAgICAgICAgICB9Ci0gICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgc2V0IGNvbW1hbmQgInJlYWRfZGIgJHZhcnMoZGJzX2RpcikvJHN0ZXAuZGJcbiIKLSAgICAgICAgIH0KLSAgICAgICAgIHJldHVybiAiXG4kY29tbWFuZCIKLSAgICAgIH0KLQotICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGhpZXIpXX0gewotICAgICAgICAgc2V0IGhpZXIgdHJ1ZQotICAgICAgfSBlbHNlIHsKLSAgICAgICAgIHNldCBoaWVyIGZhbHNlCi0gICAgICB9Ci0KLSAgICAgIGlmIHskY3VycmVudF9zdGVwID09ICIifSB7Ci0gICAgICAgICBzZXQgY3VycmVudF9zdGVwICRzdGVwCi0gICAgICB9Ci0KLSMgICAgICBpZiB7JHN0ZXAgPT0iIn0gewotIyAgICAgICAgIHNldCBzdGVwICR2YXJzKHN0ZXApCi0jICAgICAgfQotIyAgICAgIGlmIHshW2luZm8gZXhpc3RzIHZhcnMoc3RlcCldfSB7Ci0jICAgICAgICAgc2V0IHZhcnMoc3RlcCkgJHN0ZXAKLSMgICAgICB9Ci0gICAgICBpZiB7ISR2YXJzKGNvZGVnZW4pfSB7Ci0gICAgICAgICBzZXQgcmVzdG9yZV9kZXNpZ24gdHJ1ZQotICAgICAgfQotICAgICAgc2V0IGRlc2lnbiAkdmFycyhkZXNpZ24pCi0KLSAgICAgICMgQnVpbGQgcmVzdG9yZV9kZXNpZ24gY29tbWFuZCBzdHJpbmcKLSAgICAgICMgLi4uIGNoZWNrIGZpcnN0IGZvciBzdGFydGluZ19kYnMKLSAgICAgICMgLi4uIGlmIG5vdCB3ZSBuZWVkIHRvIGtub3cgdGhlIGRlc2lnbiBuYW1lIGFzIHRoaXMgbWF5IGJlIGEgCi0gICAgICAjICAgICByZWN1cnNpdmUgY2FsbCBpbiBhIGhpZXJhcmhpY2FsIGZsb3cKLQotICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCRjdXJyZW50X3N0ZXAsc3RhcnRpbmdfZGJzKV19IHsKLSAgICAgICAgIGlmIHtbc3RyaW5nIGNvbXBhcmUgLW5vY2FzZSAkdmFycyhkYnNfZm9ybWF0KSAib2EiXT09MH0gewotICAgICAgICAgICAgIyBJbnRlcnByZXQgdGhlIHN0YXJ0aW5nIERCUyBhcyBhbiBPQSB0cmlwbGUKLSAgICAgICAgICAgIHNldCByZXN0b3JlX2NvbW1hbmQgIltsaXN0IHJlYWRfZGIgLWNlbGx2aWV3ICR2YXJzKCRjdXJyZW50X3N0ZXAsc3RhcnRpbmdfZGJzKV1cbiIKLSAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBpZiB7W2ZpbGUgaXNkaXJlY3RvcnkgJHZhcnMoJGN1cnJlbnRfc3RlcCxzdGFydGluZ19kYnMpXX0gewotICAgICAgICAgICAgICAgc2V0IHJlc3RvcmVfY29tbWFuZCAicmVhZF9kYiAkdmFycygkY3VycmVudF9zdGVwLHN0YXJ0aW5nX2RicykgXG4iCi0gICAgICAgICAgICB9IGVsc2VpZiB7W2ZpbGUgZXhpc3RzICR2YXJzKCRjdXJyZW50X3N0ZXAsc3RhcnRpbmdfZGJzKV19IHsKLSAgICAgICAgICAgICAgIHNldCByZXN0b3JlX2NvbW1hbmQgInJlYWRfZGIgJHZhcnMoJGN1cnJlbnRfc3RlcCxzdGFydGluZ19kYnMpIFxuIgotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIHB1dHMgIjxGRj4gU3RhcnRpbmcgREJTICgkdmFycygkY3VycmVudF9zdGVwLHN0YXJ0aW5nX2RicykpIGRlZmluZWQgYnV0IGRvZXMgbm90IGV4aXN0IgotICAgICAgICAgICAgICAgc2V0IHJlc3RvcmVfY29tbWFuZCAicmVhZF9kYiAkdmFycygkY3VycmVudF9zdGVwLHN0YXJ0aW5nX2RicykgXG4iCi0gICAgICAgICAgICAgICBzZXQgd2FybmluZ3MoJHZhcnMod2FybmluZ19jb3VudCkpICJTdGFydGluZyBEQlMgKCR2YXJzKCRjdXJyZW50X3N0ZXAsc3RhcnRpbmdfZGJzKSkgZGVmaW5lZCBidXQgZG9lcyBub3QgZXhpc3QiCi0gICAgICAgICAgICAgICBpbmNyIHZhcnMod2FybmluZ19jb3VudCkKLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0KLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAjIEJDTDogQWRkZWQgc3Vic3QgYXJvdW5kIHZhcnMoZGJzX2RpcikgdG8gcmVzb2x2ZSB2YXJzKHJ1bmRpcikKLSAgICAgICAgIHNldCBkaXIgW3N1YnN0ICR2YXJzKGRic19kaXIpXQotICAgICAgICAgIyBBZGRpbmcgdGhpcyBmb3IgUFYgLi4uCi0gICAgICAgICBpZiB7ISR2YXJzKGNvZGVnZW4pfSB7Ci0gICAgICAgICAgICBpZiB7W2ZpbGUgZXhpc3RzICRkaXIvJHN0ZXAuZW5jXX0gewotICAgICAgICAgICAgICAgIyBCQ0w6IENoYW5nZWQgIkRCUyIgdG8gJGRpcgotICAgICAgICAgICAgICAgaWYgeyFbY2F0Y2gge3NldCBmb28gW2dsb2IgJGRpci8kc3RlcC5lbmMvKi5jb25mXX1dfSB7Ci0gICAgICAgICAgICAgICAgICAjIEJDTDogQ2hhbmdlZCAiREJTIiB0byAkZGlyCi0gICAgICAgICAgICAgICAgICByZWdzdWIgIlxcXC5jb25mIiBbZ2xvYiAkZGlyLyRzdGVwLmVuYy8qLmNvbmZdICIiIHRlbXAKLSAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAjIEJDTDogQ2hhbmdlZCAiREJTIiB0byAkZGlyCi0gICAgICAgICAgICAgICAgICBpZiB7IVtjYXRjaCB7c2V0IGZvbyBbZ2xvYiAkZGlyLyRzdGVwLmVuYy8qLmdsb2JhbHNdfV19IHsKLSAgICAgICAgICAgICAgICAgICAgICMgQkNMOiBDaGFuZ2VkICJEQlMiIHRvICRkaXIKLSAgICAgICAgICAgICAgICAgICAgIHJlZ3N1YiAiXFxcLmdsb2JhbHMiIFtnbG9iICRkaXIvJHN0ZXAuZW5jLyouZ2xvYmFsc10gIiIgdGVtcAotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgaWYgeyRkZXNpZ24gIT0gW2ZpbGUgdGFpbCAkdGVtcF19IHsKLSAgICAgICAgICAgICAgICAgIHNldCB2YXJzKGRlc2lnbikgW2ZpbGUgdGFpbCAkdGVtcF0KLSAgICAgICAgICAgICAgICAgIHB1dHMgIjxGRj4gVXBkYXRpbmcgZGVzaWduIG5hbWUgdG8gJGRlc2lnbiIKLSAgICAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhwYXJ0aXRpb25fbGlzdCldfSB7Ci0gICAgICAgICAgICAgICAgICAgICBpZiB7W2xzZWFyY2ggJHZhcnMocGFydGl0aW9uX2xpc3QpIFtmaWxlIHRhaWwgW3B3ZF1dXSAhPSAtMX0gewotICAgICAgICAgICAgICAgICAgICAgc2V0IGRlc2lnbiBbZmlsZSB0YWlsIFtwd2RdXQotICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIHB1dHMgIjxGRj4gU3RhcnRpbmcgREJTICRkaXIvJHN0ZXAuZW5jIGRlZmluZWQgYnV0IGRvZXMgbm90IGV4aXN0IgotICAgICAgICAgICAgICAgZXhpdCAtMQotICAgICAgICAgICAgfQotICAgICAgICAgfQotICAgICAgICAgCi0gICAgICAgICAjIE9mIGNvdXJzZSwgdGhlIGNvbW1hbmQgd2lsbCBkZXBlbmQgb24gdGhlIGRhdGFiYXNlIGZvcm1hdCAuLi4gYW5kIHRoZSB2ZXJzaW9uCi0gICAgICAgICBpZiB7W3N0cmluZyBjb21wYXJlIC1ub2Nhc2UgJHZhcnMoZGJzX2Zvcm1hdCkgIm9hIl09PTB9IHsKLSAgICAgICAgICAgIGlmIHskaGllcn0gewotICAgICAgICAgICAgICBzZXQgcmVzdG9yZV9jb21tYW5kICJyZWFkX2RiIC1jZWxsdmlldyBcW2xpc3QgJHZhcnMob2FfcGFydGl0aW9uX2xpYikgJGRlc2lnbiAkc3RlcFxdXG4iCi0gICAgICAgICAgICB9IGVsc2UgeyAKLSAgICAgICAgICAgICAgc2V0IHJlc3RvcmVfY29tbWFuZCAicmVhZF9kYiAtY2VsbHZpZXcgXFtsaXN0ICR2YXJzKG9hX2Rlc2lnbl9saWIpICRkZXNpZ24gJHN0ZXBcXVxuIgotICAgICAgICAgICAgfQotICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIGlmIHskdmFycyh1c2VyX21vZGUpID09ICJoaWVyIiAmJiAoJHZhcnMoaGllcl9mbG93X3R5cGUpID09ICIycGFzcyIpfSB7Ci0gICAgICAgICAgICAgICBpZiB7JHZhcnMoc3RlcCkgPT0gImN0cyIgJiYgJHZhcnMoZW5hYmxlX2ZsZXhpbG0pfSB7Ci0gICAgICAgICAgICAgICAgICBpZiB7KFtsc2VhcmNoICR2YXJzKHBhcnRpdGlvbl9saXN0KSAkdmFycyhkZXNpZ24pXSAhPSAtMSl9ICB7Ci0gICAgICAgICAgICAgICAgICAgICBzZXQgcmVzdG9yZV9jb21tYW5kICJyZWFkX2RiICR7ZGVzaWdufV9wb3N0X2Vjby5lbmMgXG4iCi0gICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgc2V0IHJlc3RvcmVfY29tbWFuZCAicmVhZF9kYiAuIFxuIgotICAgICAgICAgICAgICAgICAgfSAgCi0gICAgICAgICAgICAgICB9IGVsc2VpZiB7JHZhcnMoc3RlcCkgPT0gInBvc3RjdHMiICYmICEkdmFycyhlbmFibGVfZmxleGlsbSl9IHsKLSAgICAgICAgICAgICAgICAgIHNldCByZXN0b3JlX2NvbW1hbmQgInJlYWRfZGIgLiBcbiIKLSAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICBzZXQgcmVzdG9yZV9jb21tYW5kICJyZWFkX2RiICRkaXIvJHN0ZXAuZW5jIFxuIgotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIGlmIHskdmFycyhzdGVwKSAhPSAicGFydGl0aW9uX3BsYWNlIn0gewotICAgICAgICAgICAgICAgICAgc2V0IHJlc3RvcmVfY29tbWFuZCAicmVhZF9kYiAkZGlyLyRzdGVwLmVuY1xuIgotICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgIGlmIHskdmFycyh1c2VfZmxleG1vZGVscyl9IHsKLSAgICAgICAgICAgICAgICAgICAgc2V0IHJlc3RvcmVfY29tbWFuZCAicmVhZF9kYiAkZGlyLyRzdGVwLmVuY1xuIgotICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuICIiCi0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0gICAgICB9Ci0gICAgICAjIFBhc3MgdGhlIGNvbW1hbmQgdGhyb3VnaCB0aGUgd3JhcHBlciBhbmQgdGhlbiBtYWtlIGl0IGNvbmRpdGlvbmFsIHNvIGl0IGNhbiAKLSAgICAgICMgYmUgZGlzYWJsZWQgaW4gYSBzaW5nbGUgcHJvY2VzcyBmbG93Ci0gICAgICBzZXQgcmVzdG9yZV9jb21tYW5kIFtGRjo6d3JhcF9jb21tYW5kICRjdXJyZW50X3N0ZXAscmVzdG9yZV9kZXNpZ24gJHJlc3RvcmVfY29tbWFuZF0KLSAgICAgIHNldCBjb25kX3Jlc3RvcmVfY29tbWFuZCAiaWYge1wkdmFycyhyZXN0b3JlX2Rlc2lnbil9IHtcbiRyZXN0b3JlX2NvbW1hbmRcbn0iCi0KLSAgICAgIGlmIHshJGZvcm1hdH0gewotICAgICAgICAgaWYgeyR2YXJzKGNvZGVnZW4pfSB7Ci0jICAgICAgICAgICAgcmV0dXJuICRjb25kX3Jlc3RvcmVfY29tbWFuZAotICAgICAgICAgICAgcmV0dXJuICRyZXN0b3JlX2NvbW1hbmQKLSAgICAgICAgIH0gZWxzZSB7Ci0jICAgICAgICAgICAgIGV2YWwgJGNvbmRfcmVzdG9yZV9jb21tYW5kCi0gICAgICAgICAgICAgZXZhbCAkcmVzdG9yZV9jb21tYW5kCi0gICAgICAgICB9Ci0gICAgICB9IGVsc2UgewotICAgICAgICAgaWYgeyR2YXJzKGNhdGNoX2Vycm9ycyl9IHsKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiXG5pZiB7XCR2YXJzKHJlc3RvcmVfZGVzaWduKX0ge1xuIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIgICBpZiB7XFtjYXRjaCB7XG4kcmVzdG9yZV9jb21tYW5kfVxdfSB7XG4iCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiAgICAgIHB1dHMgXCI8RkY+IEVSUk9SIExPQURJTkcgREFUQUJBU0UgRlJPTSBTVEVQICRzdGVwIC4uLiBFWElUSU5HXCJcbiIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiICAgICAgZXhpdCAtMVxuIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIgICB9XG4iCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIn1cbiIKLSAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiRyZXN0b3JlX2NvbW1hbmQiCi0gICAgICAgICB9Ci0KLSAgICAgICAgIGlmIHskdmFycyhjYXB0dXJlX21ldHJpY3MpfSB7Ci0gICAgICAgICAgICBpZiB7W2xpbmRleCBbc3BsaXQgJHZhcnModmVyc2lvbikgIi4iXSAgMF0gPiAxM30gewotICAgICAgICAgICAgICAgaWYgeyR2YXJzKHN0ZXApICE9ICJkZWJ1ZyJ9IHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiXG5lbmFibGVfbWV0cmljcyAtb25cbiIKLSMgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgInB1c2hfc25hcHNob3Rfc3RhY2tcbiIKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0KLQotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6c291cmNlX3BsdWcgYWx3YXlzX3NvdXJjZV90Y2xdCi0KLSAgICAgICAgIGlmIHskdmFycyhjb2RlZ2VuKX0gewotICAgICAgICAgICAgcmV0dXJuICRjb21tYW5kcwotICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICB1cGxldmVsICMwIGV2YWwgJGNvbW1hbmRzCi0gICAgICAgICB9Ci0gICAgICB9Ci0gICB9Ci0KLSAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICMgU2V0dXAgcHJvY2VkdXJlIGZvciBydW4qIHN0ZXBzCi0gICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0KLSAgIHByb2MgaW5pdGlhbGl6ZV9zdGVwIHtzdGVwfSB7Ci0KLSAgICAgIGdsb2JhbCB2YXJzCi0gICAgICBnbG9iYWwgZW52Ci0gICAgICBnbG9iYWwgZXJyb3JzCi0gICAgICBnbG9iYWwgd2FybmluZ3MKLQotICAgICAgaWYgeyFbaW5mbyBleGlzdHMgc3RlcF19IHsKLSAgICAgICAgIHNldCBzdGVwICR2YXJzKHN0ZXApCi0gICAgICB9Ci0KLSAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkc3RlcCxycHRfZGlyKV19IHsKLSAgICAgICAgIHNldCB2YXJzKHJwdF9kaXIpICR2YXJzKCRzdGVwLHJwdF9kaXIpCi0gICAgICAgICBmaWxlIG1rZGlyICR2YXJzKCRzdGVwLHJwdF9kaXIpCi0gICAgICB9IGVsc2UgewotICAgICAgICAgc2V0IHZhcnMocnB0X2RpcikgJHZhcnMob3JpZ19ycHRfZGlyKQotICAgICAgfQotCi0gICAgICBpZiB7IVtpbmZvIGV4aXN0cyB2YXJzKHdhcm5pbmdfY291bnQpXX0gewotICAgICAgICAgc2V0IHZhcnMod2FybmluZ19jb3VudCkgMAotICAgICAgfQotICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycyhlcnJvcl9jb3VudCldfSB7Ci0gICAgICAgICBzZXQgdmFycyhlcnJvcl9jb3VudCkgMAotICAgICAgfQotCi0gICAgICBzZXQgY29tbWFuZHMgIiIKLSAgICAgIGlmIHskdmFycyh2ZXJib3NlKX0gewotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgU1RFUCAkc3RlcFxuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjXG4iCi0gICAgICB9Ci0KLSAgICAgIGlmIHshW2luZm8gZXhpc3RzIHZhcnMob25seV9vcHRpb25zKV0gfHwgKFtpbmZvIGV4aXN0cyB2YXJzKG9ubHlfb3B0aW9ucyldICYmICEkdmFycyhvbmx5X29wdGlvbnMpKX0gewotCi0gICAgICAgICBzZXQgdXBkYXRlX3NldHVwIDAKLSAgICAgICAgIHNldCB1cGRhdGVfaG9sZCAwCi0gICAKLSAgICAgICAgIHNldCBjb21tYW5kICIiCi0gICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJHN0ZXAsYWN0aXZlX3NldHVwX3ZpZXdzKV0gJiYgKFtsbGVuZ3RoICR2YXJzKCRzdGVwLGFjdGl2ZV9zZXR1cF92aWV3cyldPjApfSB7Ci0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAic2V0IHNldHVwX2FuYWx5c2lzX3ZpZXdzIFwiJHZhcnMoJHN0ZXAsYWN0aXZlX3NldHVwX3ZpZXdzKVwiXG4iCi0gICAgICAgICAgICBzZXQgdXBkYXRlX3NldHVwIDEKLSAgICAgICAgIH0KLSAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkc3RlcCxhY3RpdmVfaG9sZF92aWV3cyldICYmIChbbGxlbmd0aCAkdmFycygkc3RlcCxhY3RpdmVfaG9sZF92aWV3cyldPjApfSB7Ci0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAic2V0IGhvbGRfYW5hbHlzaXNfdmlld3MgXCIkdmFycygkc3RlcCxhY3RpdmVfaG9sZF92aWV3cylcIlxuIgotICAgICAgICAgICAgc2V0IHVwZGF0ZV9ob2xkIDEKLSAgICAgICAgIH0KLSAgIAotICAgICAgICAgc2V0IGNvbW1lbnRzICIiCi0gICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgVGhlIGFjdGl2ZSBhbmFseXNpcyB2aWV3cyBhcmUgY29udHJvbGxlZCBieSB0aGUgZm9sbG93aW5nIHZhcmlhYmxlczpcbiIgIAotICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKCRzdGVwLGFjdGl2ZV9zZXR1cF92aWV3cylcbiIKLSAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMoJHN0ZXAsYWN0aXZlX2hvbGRfdmlld3MpXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWVudHMgIiNcbiIKLSAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjI1xuIgotICAgICAgICAgaWYgeyR1cGRhdGVfc2V0dXAgfHwgJHVwZGF0ZV9ob2xkfSB7Ci0gICAgICAgICAgICBpZiB7JHZhcnModmVyYm9zZSl9IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiI1xuIgotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjIDxGRj4gVVBEQVRJTkcgQU5BTFlTSVMgVklFV1MgLi4uXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiNcbiIKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIHshJHVwZGF0ZV9zZXR1cCAmJiAkdXBkYXRlX2hvbGR9IHsKLSAgICMgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAic2V0X2FuYWx5c2lzX3ZpZXcgLXNldHVwIFxbYWxsX3NldHVwX2FuYWx5c2lzX3ZpZXdzXF0gLWhvbGQgXFtsaXN0IFwkaG9sZF9hbmFseXNpc192aWV3c1xdXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAic2V0X2FuYWx5c2lzX3ZpZXcgLXNldHVwIFxbYWxsX3NldHVwX2FuYWx5c2lzX3ZpZXdzXF0gLWhvbGQgXCRob2xkX2FuYWx5c2lzX3ZpZXdzXG4iCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiB7JHVwZGF0ZV9zZXR1cCAmJiAhJHVwZGF0ZV9ob2xkfSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAic2V0X2FuYWx5c2lzX3ZpZXcgLXNldHVwIFwkc2V0dXBfYW5hbHlzaXNfdmlld3MgLWhvbGQgXFthbGxfaG9sZF9hbmFseXNpc192aWV3c1xdXG4iCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiB7JHVwZGF0ZV9zZXR1cCAmJiAkdXBkYXRlX2hvbGR9IHsKLSAgICMgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAic2V0X2FuYWx5c2lzX3ZpZXcgLXNldHVwIFxbbGlzdCBcJHNldHVwX2FuYWx5c2lzX3ZpZXdzXF0gLWhvbGQgXFtsaXN0IFwkaG9sZF9hbmFseXNpc192aWV3c1xdXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAic2V0X2FuYWx5c2lzX3ZpZXcgLXNldHVwIFwkc2V0dXBfYW5hbHlzaXNfdmlld3MgLWhvbGQgXCRob2xkX2FuYWx5c2lzX3ZpZXdzXG4iCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgJGNvbW1lbnRzCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiRjb21tYW5kXG4iCi0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgc2V0X2FuYWx5c2lzX3ZpZXcgLXNldHVwIFwkdmFycygkc3RlcCxhY3RpdmVfc2V0dXBfdmlld3MpIC1ob2xkIFwkdmFycygkc3RlcCxhY3RpdmVfaG9sZF92aWV3cylcbiIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiI1xuIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICRjb21tZW50cwotICAgICAgICB9Ci0gICAgICAgICBzZXQgcHJvY2VzcyBbcmVnc3ViICJubSIgJHZhcnMocHJvY2VzcykgIiJdCi0gICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKHByb2Nlc3MpXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKGZsb3dfZWZmb3J0KVxuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJzZXRfZGIgZGVzaWduX3Byb2Nlc3Nfbm9kZSAkcHJvY2Vzc1xuIgotICAgICAgICAgaWYge1tzdHJpbmcgdG9sb3dlciAkdmFycyhmbG93X2VmZm9ydCldICE9ICJzdGFuZGFyZCJ9IHsKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAic2V0X2RiIGRlc2lnbl9mbG93X2VmZm9ydCBbc3RyaW5nIHRvbG93ZXIgJHZhcnMoZmxvd19lZmZvcnQpXVxuIgotICAgICAgICAgfQotICAgICAgfQotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgIyBDaGVjayBpZiBpbiB0b3AgbGV2ZWwgcGFydGl0aW9uIChpbG0pIGZsb3cKLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLQotICAgICAgRkZfTk9WVVM6OmNoZWNrX2Zsb3cKLQotIyAgICAgIGlmIHskdmFycyhyZXBvcnRfcnVuX3RpbWUpfSB7Ci0jICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJzZXQgdmFycygkc3RlcCxzdGFydF90aW1lKSBcW2Nsb2NrIHNlY29uZHNcXVxuIgotIyAgICAgIH0KLQotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgIyBMb2FkIHRoZSByZWNvbW1lbmRlZCBjb21tYW5kIG1vZGUgc2V0dGluZ3MgZm9yIHN0ZXAKLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLQotIyAgICAgIGFwcGVuZCBjb21tYW5kcyAiI1xuIgotIyAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyBERUZJTklORyBNT0RFIFNFVFRJTkdTXG4iCi0jICAgICAgYXBwZW5kIGNvbW1hbmRzICIjXG4iCi0KLSAgICAgIHNldCBjb21tZW50cyAiIgotICAgICAgc2V0IHVjb21tZW50cyAiIgotCi0gICAgICBzd2l0Y2ggJHN0ZXAgewotCi0gICAgICAgICAicGxhY2UiIHsKLSAgICAgICAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICAgICAgICMgU2V0IHBsYWNlbWVudCBvcHRpb25zIC4uLgotICAgICAgICAgICAgIyAtIFNldCBvcHRpbWl6YXRpb24gb3B0aW9ucyBpZiBpblBsYWNlT3B0IGlzIGVuYWJsZWQKLSAgICAgICAgICAgICMgLSBMb2FkIHRoZSBDVFMgc3BlYyBmb3IgY2xvY2sgZ2F0ZSBhd2FyZSBwbGFjZW1lbnQKLSAgICAgICAgICAgICMgLSBQbGFjZSBKVEFHIGNlbGxzIGlmIHJlcXVlc3RlZAotICAgICAgICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgICAgICAgc2V0IGFyZ3MgIiIgCi0gICAgICAgICAgICBpZiB7KCR2YXJzKGVuYWJsZV9vY3YpID09ICJwcmVfcGxhY2UiKSB8fCAoKCR2YXJzKGVuYWJsZV9vY3YpID09ICJwcmVfcHJlY3RzIikgJiYgKCR2YXJzKHBsYWNlX29wdF9kZXNpZ24pIHx8ICR2YXJzKHByZXJvdXRlX29wdF9kZXNpZ24pKSl9IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMoZW5hYmxlX29jdilcbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBhcmdzICJzZXRfZGIgdGltaW5nX2FuYWx5c2lzX3R5cGUgb2N2XG4iCi0gICAgICAgICAgICAgICBpZiB7JHZhcnMoZW5hYmxlX2FvY3YpfSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKGVuYWJsZV9hb2N2KVxuIgotICAgICAgICAgICAgICAgICAgYXBwZW5kIGFyZ3MgInNldF9kYiB0aW1pbmdfYW5hbHlzaXNfYW9jdiB0cnVlXG4iCi0gICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMoZW5hYmxlX2FvY3YpXG4iCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICBpZiB7JHZhcnMoZW5hYmxlX3NvY3YpfSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKGVuYWJsZV9zb2N2KVxuIgotICAgICAgICAgICAgICAgICAgYXBwZW5kIGFyZ3MgInNldF9kYiB0aW1pbmdfYW5hbHlzaXNfc29jdiB0cnVlXG4iCi0gICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMoZW5hYmxlX3NvY3YpXG4iCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMoZW5hYmxlX29jdikgXCIkdmFycyhlbmFibGVfb2N2KVwiXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhlbmFibGVfYW9jdikgXCJ0cnVlXCJcbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKGVuYWJsZV9zb2N2KSBcInRydWVcIlxuIgotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgeyRhcmdzICE9ICIifSB7Ci0gICAgICAgICAgICAgICBzZXQgY29tbWFuZCAiJGFyZ3NcbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCBwcmVjdHMsc2V0X2FuYWx5c2lzX21vZGUgJGNvbW1hbmRdCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBzZXQgYXJncyAiIgotICAgICAgICAgICAgaWYgeyFbY2F0Y2gge3NldCBhcmcgJHZhcnMoY29uZ2VzdGlvbl9lZmZvcnQpfV19IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBhcmdzICJzZXRfZGIgcGxhY2VfZ2xvYmFsX2NvbmdfZWZmb3J0ICRhcmdcbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMoY29uZ2VzdGlvbl9lZmZvcnQpXG4iCi0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMoY29uZ2VzdGlvbl9lZmZvcnQpIFwiYXV0byBsb3cgbWVkaXVtIGhpZ2hcIlxuIgotICAgICAgICAgICAgfQotIyAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhjbG9ja19nYXRlX2F3YXJlKV0gJiYgICR2YXJzKGNsb2NrX2dhdGVfYXdhcmUpfSB7Ci0jICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhjbG9ja19nYXRlX2F3YXJlKVxuIgotIyAgICAgICAgICAgICAgIGFwcGVuZCBhcmdzICIgLXBsYWNlX2dsb2JhbF9jbG9ja19nYXRlX2F3YXJlIHRydWUiCi0jICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgeyFbY2F0Y2gge3NldCBhcmcgJHZhcnMoY2xvY2tfZ2F0ZV9hd2FyZSl9XX0gewotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhjbG9ja19nYXRlX2F3YXJlKVxuIgotICAgICAgICAgICAgICAgYXBwZW5kIGFyZ3MgInNldF9kYiBwbGFjZV9nbG9iYWxfY2xvY2tfZ2F0ZV9hd2FyZSAkYXJnXG4iCi0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMoY2xvY2tfZ2F0ZV9hd2FyZSkgXCJ0cnVlXCJcbiIKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIHshW2NhdGNoIHtzZXQgYXJnICR2YXJzKHBsYWNlX2dsb2JhbF9wbGFjZV9pb19waW5zKX1dfSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKHBsYWNlX2dsb2JhbF9wbGFjZV9pb19waW5zKVxuIgotICAgICAgICAgICAgICAgYXBwZW5kIGFyZ3MgInNldF9kYiBwbGFjZV9nbG9iYWxfcGxhY2VfaW9fcGlucyAgJGFyZ1xuIgotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKHBsYWNlX2dsb2JhbF9wbGFjZV9pb19waW5zKSBcInRydWVcIlxuIgotICAgICAgICAgICAgfQotIyAgICAgICAgICAgIHNldCBwcm9jZXNzIFtyZWdzdWIgIm5tIiAkdmFycyhwcm9jZXNzKSAiIl0KLSMgICAgICAgICAgICBpZiB7W2V4cHIgJHByb2Nlc3MgPCAyOF0gJiYgW2luZm8gZXhpc3RzIHZhcnMoZmlsbGVyX2NlbGxzLG1pbl9nYXApXX0gewotIyAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMoZmlsbGVyX2NlbGxzLG1pbl9nYXApXG4iCi0jICAgICAgICAgICAgICAgYXBwZW5kIGFyZ3MgIiAtZmlsbGVyR2FwTWluR2FwICR2YXJzKGZpbGxlcl9jZWxscyxtaW5fZ2FwKSAtZmlsbGVyR2FwRWZmb3J0IGhpZ2hcbiIKLSMgICAgICAgICAgICB9IGVsc2UgewotIyAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKGZpbGxlcl9jZWxscyxtaW5fZ2FwKSBcIjxtaWNyb25zPlwiXG4iCi0jICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMoZmlsbGVyX2NlbGxzLGdhcF9lZmZvcnQpIFwiPGxvdyBtZWRpdW0gaGlnaD4gXCJcbiIKLSMgICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGlmIHskYXJncyAhPSAiIn0gewotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kIHBsYWNlLHNldF9wbGFjZV9tb2RlICRhcmdzXQotICAgICAgICAgICAgfQotICAgICAgICAgICAgc2V0IGFyZ3MgIiIKLSAgICAgICAgICAgIGlmIHsoW2luZm8gZXhpc3RzIHZhcnMoaW5fcGxhY2Vfb3B0KV0gJiYgJHZhcnMoaW5fcGxhY2Vfb3B0KSkgfHwgJHZhcnMocGxhY2Vfb3B0X2Rlc2lnbil9IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMoaW5fcGxhY2Vfb3B0KVxuIgotICAgICAgICAgICAgICAgaWYge1tsaW5kZXggW3NwbGl0ICR2YXJzKHZlcnNpb24pICIuIl0gIDBdIDwgMTZ9IHsKLSAgICAgICAgICAgICAgICAgIGlmIHshW2NhdGNoIHtzZXQgYXJnICR2YXJzKHByZXNlcnZlX2Fzc2VydGlvbnMpfV19IHsKLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMocHJlc2VydmVfYXNzZXJ0aW9ucylcbiIKLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBhcmdzICJzZXRfZGIgb3B0X3ByZXNlcnZlX3BpbnNfd2l0aF90aW1pbmdfY29uc3RyYWludHMgJGFyZ1xuIgotICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKHByZXNlcnZlX2Fzc2VydGlvbnMpIFwidHJ1ZVwiXG4iCi0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICBpZiB7IVtjYXRjaCB7c2V0IGFyZyAkdmFycyhwb3dlcl9lZmZvcnQpfV19IHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMocG93ZXJfZWZmb3J0KVxuIgotICAgICAgICAgICAgICAgICAgYXBwZW5kIGFyZ3MgInNldF9kYiBvcHRfcG93ZXJfZWZmb3J0ICRhcmdcbiIKLSAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhwb3dlcl9lZmZvcnQpIFwibG93IG9yIGhpZ2hcIlxuIgotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgaWYgeyFbY2F0Y2gge3NldCBhcmcgJHZhcnMocG93ZXJfcmF0aW8pfV19IHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMocG93ZXJfcmF0aW8pXG4iCi0gICAgICAgICAgICAgICAgICBhcHBlbmQgYXJncyAic2V0X2RiIG9wdF9sZWFrYWdlX3RvX2R5bmFtaWNfcmF0aW8gJGFyZ1xuIgotICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKHBvd2VyX3JhdGlvKSBcIjAuMCB0byAxLjBcIlxuIgotICAgICAgICAgICAgICAgfQotIyAgICAgICAgICAgICAgIGlmIHshW2NhdGNoIHtzZXQgYXJnICR2YXJzKGNsb2NrX2dhdGVfYXdhcmVfb3B0KX1dfSB7Ci0jICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhjbG9ja19nYXRlX2F3YXJlX29wdClcbiIKLSMgICAgICAgICAgICAgICAgICBhcHBlbmQgYXJncyAic2V0X2RiIG9wdF9jbG9ja19nYXRlX2F3YXJlICRhcmdcbiIKLSMgICAgICAgICAgICAgICB9IGVsc2UgewotIyAgICAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKGNsb2NrX2dhdGVfYXdhcmVfb3B0KSBcInRydWVcIlxuIgotIyAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIGlmIHshW2NhdGNoIHtzZXQgYXJnICR2YXJzKGNyaXRpY2FsX3JhbmdlKX1dfSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKGNyaXRpY2FsX3JhbmdlKVxuIgotICAgICAgICAgICAgICAgICAgYXBwZW5kIGFyZ3MgIiAtY3JpdGljYWxSYW5nZSAkYXJnIgotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGFsbF9lbmRfcG9pbnRzKV0gJiYgJHZhcnMoYWxsX2VuZF9wb2ludHMpfSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKGFsbF9lbmRfcG9pbnRzKVxuIgotICAgICAgICAgICAgICAgICAgYXBwZW5kIGFyZ3MgInNldF9kYiBvcHRfYWxsX2VuZF9wb2ludHMgdHJ1ZVxuIgotICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKGFsbF9lbmRfcG9pbnRzKSBcInRydWVcIlxuIgotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgaWYgeyFbY2F0Y2gge3NldCBhcmcgJHZhcnMoc2l6ZV9vbmx5X2ZpbGUpfV19IHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMoc2l6ZV9vbmx5X2ZpbGUpXG4iCi0gICAgICAgICAgICAgICAgICBhcHBlbmQgYXJncyAic2V0X2RiIG9wdF9zaXplX29ubHlfZmlsZSAkYXJnXG4iCi0gICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMoc2l6ZV9vbmx5X2ZpbGUpIFwiPGZpbGU+XCJcbiIKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIGlmIHshW2NhdGNoIHtzZXQgYXJnICR2YXJzKGZpeF9mYW5vdXRfbG9hZCl9XX0gewotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhmaXhfZmFub3V0X2xvYWQpXG4iCi0gICAgICAgICAgICAgICAgICBhcHBlbmQgYXJncyAic2V0X2RiIG9wdF9maXhfZmFub3V0X2xvYWQgJGFyZ1xuIgotICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKGZpeF9mYW5vdXRfbG9hZCkgXCI8ZmlsZT5cIlxuIgotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgaWYgeyFbY2F0Y2gge3NldCBhcmcgJHZhcnModXNlZnVsX3NrZXcpfV19IHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnModXNlZnVsX3NrZXcpXG4iCi0gICAgICAgICAgICAgICAgICBpZiB7JHZhcnMoY2NvcHRfZWZmb3J0KSA9PSAibG93In0gewotICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGFyZ3MgInNldF9kYiBvcHRfdXNlZnVsX3NrZXcgJGFyZ1xuIgotICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGFyZ3MgInNldF9kYiBvcHRfdXNlZnVsX3NrZXdfZGVsYXlfcHJlX2N0cyB0cnVlXG4iCi0gICAgICAgICAgICAgICAgICAgICBpZiB7JHZhcnModXNlZnVsX3NrZXcpICYmICFbY2F0Y2gge3NldCBhcmcgJHZhcnMoc2tld19idWZmZXJzKX1dfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKHNrZXdfYnVmZmVycylcbiIKLSAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBhcmdzICJzZXRfZGIgb3B0X3VzZWZ1bF9za2V3X2NlbGxzICR2YXJzKHNrZXdfYnVmZmVycylcbiIKLSAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCBwcmVjdHMsc2V0X3VzZWZ1bF9za2V3X21vZGUgJGNvbW1hbmRdCi0gICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjIDxGRj4gVmFyaWFibGUgdmFycyh1c2VmdWxfc2tldykgaWdub3JlZCB3aGVuIHZhcnMoY2NvcHRfZWZmb3J0KSBpcyAkdmFycyhjY29wdF9lZmZvcnQpXG4iCi0gICAgICAgICAgICAgICAgICAgICBzZXQgd2FybmluZ3MoJHZhcnMod2FybmluZ19jb3VudCkpICJWYXJpYWJsZSB2YXJzKHVzZWZ1bF9za2V3KSBpZ25vcmVkIHdoZW4gdmFycyhjY29wdF9lZmZvcnQpIGlzICR2YXJzKGNjb3B0X2VmZm9ydClcbiIKLSAgICAgICAgICAgICAgICAgICAgIGluY3IgdmFycyh3YXJuaW5nX2NvdW50KQotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKHVzZWZ1bF9za2V3KSBcInRydWVcIlxuIgotICAgICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMoc2tld19idWZmZXJzKSBcIjxsaXN0IG9mIGJ1ZmZlcnM+XCJcbiIKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIGlmIHskYXJncyAhPSAiIn0gewotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kIHBsYWNlLHNldF9vcHRfbW9kZSAkYXJnc10KLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgCi0jICAgICAgICAgICAgc2V0IGNvbW1hbmQgW0ZGX05PVlVTOjphZGRfdGllX2NlbGxzIHRydWUgZmFsc2VdCi0jICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kIHBsYWNlLGFkZF90aWVfY2VsbHMgJGNvbW1hbmRdCi0KLSAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhqdGFnX2NlbGxzKV0gJiYKLSAgICAgICAgICAgICAgICBbaW5mbyBleGlzdHMgdmFycyhqdGFnX3Jvd3MpXX0gewotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhqdGFnX2NlbGxzKSwgdmFycyhqdGFnX3Jvd3MpXG4iCi0jICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjIFBMQUNJTkcgSlRBRyBDRUxMU1xuIgotICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgIiIKLSAgICAgICAgICAgICAgIGZvcmVhY2ggaW5zdCAkdmFycyhqdGFnX2NlbGxzKSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAic3BlY2lmeV9qdGFnIC1pbnN0ICRpbnN0XG4iCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgcGxhY2Usc3BlY2lmeV9qdGFnICRjb21tYW5kXQotICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgInBsYWNlX2p0YWcgLW5yX3JvdyAkdmFycyhqdGFnX3Jvd3MpXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgcGxhY2UscGxhY2VfanRhZyAkY29tbWFuZF0KLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0KLQotICAgICAgICAgInByZWN0cyIgewotICAgICAgICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgICAgICAgIyBTZXQgb3B0aW1pemF0aW9uIG9wdGlvbnMgLi4uCi0gICAgICAgICAgICAjIEVuYWJsZSBzaWduYWxTdG9ybSBpZiByZXF1ZXN0ZWQgKHJlcXVpcmVkIGZvciBFQ1NNL0NDUyBmbG93cykKLSAgICAgICAgICAgICMgRm9yIGxvdyBwb3dlciBmbG93cywgbWFrZSBzdXJlIGFsd2F5cy1vbiBidWZmZXJzIGFyZSBlbmFibGVkCi0gICAgICAgICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0KLSAgICAgICAgICAgIHNldCBhcmdzICIiIAotICAgICAgICAgICAgaWYgeyR2YXJzKGZsb3cpID09ICJtbW1jIn0gewotICAgICAgICAgICAgICAgaWYgeyR2YXJzKGVuYWJsZV9vY3YpID09ICJwcmVfcHJlY3RzIn0gewotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhlbmFibGVfb2N2KVxuIgotICAgICAgICAgICAgICAgICAgYXBwZW5kIGFyZ3MgInNldF9kYiB0aW1pbmdfYW5hbHlzaXNfdHlwZSBvY3ZcbiIKLSAgICAgICAgICAgICAgICAgIGlmIHskdmFycyhlbmFibGVfYW9jdil9IHsKLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMoZW5hYmxlX2FvY3YpXG4iCi0gICAgICAgICAgICAgICAgICAgICBhcHBlbmQgYXJncyAic2V0X2RiIHRpbWluZ19hbmFseXNpc19hb2N2IHRydWVcbiIKLSAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhlbmFibGVfYW9jdilcbiIKLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIGlmIHskdmFycyhlbmFibGVfc29jdil9IHsKLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMoZW5hYmxlX3NvY3YpXG4iCi0gICAgICAgICAgICAgICAgICAgICBhcHBlbmQgYXJncyAic2V0X2RiIHRpbWluZ19hbmFseXNpc19zb2N2IHRydWVcbiIKLSAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhlbmFibGVfc29jdilcbiIKLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhlbmFibGVfb2N2KSBcInByZV9wcmVjdHNcIlxuIgotICAgICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMoZW5hYmxlX2FvY3YpIFwidHJ1ZVwiXG4iCi0gICAgICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhlbmFibGVfc29jdikgXCJ0cnVlXCJcbiIKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIHskYXJncyAhPSAiIn0gewotICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgIiRhcmdzXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgcHJlY3RzLHNldF9hbmFseXNpc19tb2RlICRjb21tYW5kXQotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBzZXQgYXJncyAiIgotICAgICAgICAgICAgaWYge1tsaW5kZXggW3NwbGl0ICR2YXJzKHZlcnNpb24pICIuIl0gIDBdIDwgMTd9IHsKLSAgICAgICAgICAgICAgIGlmIHshW2NhdGNoIHtzZXQgYXJnICR2YXJzKHByZXNlcnZlX2Fzc2VydGlvbnMpfV19IHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMocHJlc2VydmVfYXNzZXJ0aW9ucylcbiIKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBhcmdzICJzZXRfZGIgb3B0X3ByZXNlcnZlX3BpbnNfd2l0aF90aW1pbmdfY29uc3RyYWludHMgJGFyZ1xuIgotICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKHByZXNlcnZlX2Fzc2VydGlvbnMpIFwidHJ1ZVwiXG4iCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9IAotICAgICAgICAgICAgaWYgeyFbY2F0Y2gge3NldCBhcmcgJHZhcnMobGVha2FnZV9wb3dlcl9lZmZvcnQpfV19IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMobGVha2FnZV9wb3dlcl9lZmZvcnQpXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgYXJncyAic2V0X2RiIG9wdF9sZWFrYWdlX3Bvd2VyX2VmZm9ydCAkYXJnXG4iCi0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMobGVha2FnZV9wb3dlcl9lZmZvcnQpIFwibG93IG9yIGhpZ2hcIlxuIgotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgeyFbY2F0Y2gge3NldCBhcmcgJHZhcnMoZHluYW1pY19wb3dlcl9lZmZvcnQpfV19IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMoZHluYW1pY19wb3dlcl9lZmZvcnQpXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgYXJncyAic2V0X2RiIG9wdF9keW5hbWljX3Bvd2VyX2VmZm9ydCAkYXJnXG4iCi0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMoZHluYW1pY19wb3dlcl9lZmZvcnQpIFwibG93IG9yIGhpZ2hcIlxuIgotICAgICAgICAgICAgfQotIyAgICAgICAgICAgIGlmIHshW2NhdGNoIHtzZXQgYXJnICR2YXJzKGNsb2NrX2dhdGVfYXdhcmVfb3B0KX1dfSB7Ci0jICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhjbG9ja19nYXRlX2F3YXJlX29wdClcbiIKLSMgICAgICAgICAgICAgICBhcHBlbmQgYXJncyAic2V0X2RiIG9wdF9jbG9ja19nYXRlX2F3YXJlICRhcmdcbiIKLSMgICAgICAgICAgICB9IGVsc2UgewotIyAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKGNsb2NrX2dhdGVfYXdhcmVfb3B0KSBcInRydWVcIlxuIgotIyAgICAgICAgICAgIH0KLSMgICAgICAgICAgICBpZiB7IVtjYXRjaCB7c2V0IGFyZyAkdmFycyhjcml0aWNhbF9yYW5nZSl9XX0gewotIyAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMoY3JpdGljYWxfcmFuZ2UpXG4iCi0jICAgICAgICAgICAgICAgYXBwZW5kIGFyZ3MgInNldF9kYiBvcHRfY3JpdGljYWxfcmFuZ2UgJGFyZ1xuIgotIyAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhhbGxfZW5kX3BvaW50cyldICYmICR2YXJzKGFsbF9lbmRfcG9pbnRzKX0gewotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhhbGxfZW5kX3BvaW50cylcbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBhcmdzICJzZXRfZGIgb3B0X2FsbF9lbmRfcG9pbnRzICR2YXJzKGFsbF9lbmRfcG9pbnRzKVxuIgotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKGFsbF9lbmRfcG9pbnRzKSBcInRydWVcIlxuIgotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgeyFbY2F0Y2gge3NldCBhcmcgJHZhcnMoc2l6ZV9vbmx5X2ZpbGUpfV19IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMoc2l6ZV9vbmx5X2ZpbGUpXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgYXJncyAic2V0X2RiIG9wdF9zaXplX29ubHlfZmlsZSAkYXJnXG4iCi0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMoc2l6ZV9vbmx5X2ZpbGUpIFwiPGZpbGU+XCJcbiIKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIHshW2NhdGNoIHtzZXQgYXJnICR2YXJzKGZpeF9mYW5vdXRfbG9hZCl9XX0gewotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhmaXhfZmFub3V0X2xvYWQpXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgYXJncyAic2V0X2RiIG9wdF9maXhfZmFub3V0X2xvYWQgJGFyZ1xuIgotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKGZpeF9mYW5vdXRfbG9hZCkgXCI8ZmlsZT5cIlxuIgotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgeyFbY2F0Y2gge3NldCBhcmcgJHZhcnModXNlZnVsX3NrZXcpfV19IHsKLSAgICAgICAgICAgICAgIGlmIHskdmFycyhjY29wdF9lZmZvcnQpID09ICJsb3cifSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKHVzZWZ1bF9za2V3KVxuIgotICAgICAgICAgICAgICAgICAgYXBwZW5kIGFyZ3MgInNldF9kYiBvcHRfdXNlZnVsX3NrZXcgJGFyZ1xuIgotICAgICAgICAgICAgICAgICAgICAgaWYgeyR2YXJzKHVzZWZ1bF9za2V3KSAmJiAhW2NhdGNoIHtzZXQgYXJnICR2YXJzKHNrZXdfYnVmZmVycyl9XX0gewotICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhza2V3X2J1ZmZlcnMpXG4iCi0gICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgYXJncyAic2V0X2RiIG9wdF91c2VmdWxfc2tld19jZWxscyAkdmFycyhza2V3X2J1ZmZlcnMpXG4iCi0gICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgcHJlY3RzLHNldF91c2VmdWxfc2tld19tb2RlICRjb21tYW5kXQotICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyA8RkY+IFZhcmlhYmxlIHZhcnModXNlZnVsX3NrZXcpIGlnbm9yZWQgd2hlbiB2YXJzKGNjb3B0X2VmZm9ydCkgaXMgJHZhcnMoY2NvcHRfZWZmb3J0KVxuIgotICAgICAgICAgICAgICAgICAgICAgc2V0IHdhcm5pbmdzKCR2YXJzKHdhcm5pbmdfY291bnQpKSAiVmFyaWFibGUgdmFycyh1c2VmdWxfc2tldykgaWdub3JlZCB3aGVuIHZhcnMoY2NvcHRfZWZmb3J0KSBpcyAkdmFycyhjY29wdF9lZmZvcnQpXG4iCi0gICAgICAgICAgICAgICAgICAgICBpbmNyIHZhcnMod2FybmluZ19jb3VudCkKLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyh1c2VmdWxfc2tldykgXCJ0cnVlXCJcbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKHNrZXdfYnVmZmVycykgXCI8bGlzdCBvZiBidWZmZXJzPlwiXG4iCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiB7W0ZGOjppc19scF9mbG93XX0gewotICAgICAgICAgICAgICAgaWYgeyFbY2F0Y2gge3NldCBhcmcgJHZhcnMocmVzaXplX3NoaWZ0ZXJfYW5kX2lzb19pbnN0cyl9XX0gewotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhyZXNpemVfbGV2ZWxfc2hpZnRlcl9hbmRfaXNvX2luc3RzKVxuIgotICAgICAgICAgICAgICAgICAgYXBwZW5kIGFyZ3MgInNldF9kYiBvcHRfcmVzaXplX2xldmVsX3NoaWZ0ZXJfYW5kX2lzb19pbnN0cyAkYXJnXG4iCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiB7JGFyZ3MgIT0gIiJ9IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCBwcmVjdHMsc2V0X29wdF9tb2RlICRhcmdzXQotICAgICAgICAgICAgfQotCi0jICAgICAgICAgICAgaWYgeyR2YXJzKGVuYWJsZV9zcykgPT0gInByZV9wcmVjdHMifSB7Ci0jICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhlbmFibGVfc3MpXG4iCi0jICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgInNldERlbGF5Q2FsTW9kZSAtZW5naW5lIHNpZ25hbFN0b3JtXG4iCi0jICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kIHByZWN0cyxzZXRfZGVsYXlfY2FsX21vZGUgJGNvbW1hbmRdCi0jICAgICAgICAgICAgfSBlbHNlIHsKLSMgICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhlbmFibGVfc3MpIFwicHJlX3ByZWN0c1wiXG4iCi0jICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYge1tGRjo6aXNfbHBfZmxvd119IHsKLSAgICAgICAgICAgICAgIHNldCBjb21tYW5kICIiCi0gICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoYWx3YXlzX29uX2J1ZmZlcnMpXX0gewotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhhbHdheXNfb25fYnVmZmVycylcbiIKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJzZXRfaW50ZXJhY3RpdmVfY29uc3RyYWludF9tb2RlcyBcW2FsbF9jb25zdHJhaW50X21vZGVzIC1hY3RpdmVcXVxuIgotICAgICAgICAgICAgICAgICAgZm9yZWFjaCBidWZmZXIgJHZhcnMoYWx3YXlzX29uX2J1ZmZlcnMpIHsKLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJzZXRfZG9udF91c2UgZmFsc2UgJGJ1ZmZlclxuIgotICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgInNldF9kb250X3RvdWNoIGZhbHNlICRidWZmZXJcbiIKLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIGZvcmVhY2ggZG9tYWluIFtGRjo6Z2V0X2J5X3N1ZmZpeCB2YXJzICIsYWx3YXlzX29uX2J1ZmZlcnMiXSB7Ci0gICAgICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJGRvbWFpbixhbHdheXNfb25fYnVmZmVycyldfSB7Ci0gICAgICAgICAgICAgICAgICAgICBmb3JlYWNoIGJ1ZmZlciAkdmFycygkZG9tYWluLGFsd2F5c19vbl9idWZmZXJzKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAic2V0X2RvbnRfdXNlIGZhbHNlICRidWZmZXJcbiIKLSAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJzZXRfZG9udF90b3VjaCBmYWxzZSAkYnVmZmVyXG4iCi0gICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICBpZiB7JGNvbW1hbmQgIT0gIiJ9IHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCBwcmVjdHMsc2V0X2RvbnRfdXNlICRjb21tYW5kXQotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAgfQotCi0gICAgICAgICAiY3RzIiB7Ci0gICAgICAgICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAgICAgICAjIFNldCBDVFMgb3B0aW9ucyAuLi4gdGhpcyBpbmNsdWRlcyBuYW5vcm91dGUgb3B0aW9ucyBhcyB0aGUgY2xvY2sKLSAgICAgICAgICAgICMgbmV0IGlzIHR5cGljYWxseSByb3V0ZWQgZHVyaW5nIENUUy4gRm9yIGhpZXJhcmNoaWNhbCBmbG93cywgdGhlCi0gICAgICAgICAgICAjIGNsb2NrIHRyZWUgc3BlYyBpcyBkZWZpbmVkIHBlciBwYXJ0aXRpb24gLgotICAgICAgICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCi0gICAgICAgICAgICBzZXQgYXJncyAiIgotICAgICAgICAgICAgaWYgeyR2YXJzKGVuYWJsZV9vY3YpID09ICJwcmVfY3RzIn0gewotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhlbmFibGVfb2N2KVxuIgotICAgICAgICAgICAgICAgYXBwZW5kIGFyZ3MgInNldF9kYiB0aW1pbmdfYW5hbHlzaXNfdHlwZSBvY3ZcbiIKLSAgICAgICAgICAgICAgIGlmIHskdmFycyhlbmFibGVfYW9jdil9IHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMoZW5hYmxlX2FvY3YpXG4iCi0gICAgICAgICAgICAgICAgICBhcHBlbmQgYXJncyAic2V0X2RiIHRpbWluZ19hbmFseXNpc19hb2N2IHRydWVcbiIKLSAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhlbmFibGVfYW9jdilcbiIKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIGlmIHskdmFycyhlbmFibGVfc29jdil9IHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMoZW5hYmxlX3NvY3YpXG4iCi0gICAgICAgICAgICAgICAgICBhcHBlbmQgYXJncyAic2V0X2RiIHRpbWluZ19hbmFseXNpc19zb2N2IHRydWVcbiIKLSAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhlbmFibGVfc29jdilcbiIKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhlbmFibGVfb2N2KSBcInByZV9jdHNcIlxuIgotICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMoZW5hYmxlX2FvY3YpIFwidHJ1ZVwiXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhlbmFibGVfc29jdikgXCJ0cnVlXCJcbiIKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIHskYXJncyAhPSAiIn0gewotICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgIiRhcmdzXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgcG9zdGN0cyxzZXRfYW5hbHlzaXNfbW9kZSAkY29tbWFuZF0KLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgc2V0IGNvbW1hbmQgIiIKLSMgICAgICAgICAgICBpZiB7IVtjYXRjaCB7c2V0IGFyZyAkdmFycyhyb3V0ZV9jbG9ja19uZXRzKX1dfSB7Ci0jICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhyb3V0ZV9jbG9ja19uZXRzKVxuIgotIyAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJzZXRfZGIgY3RzX3JvdXRlX2Nsb2NrX3RyZWVfbmV0cyAkYXJnXG4iCi0jICAgICAgICAgICAgfSBlbHNlIHsKLSMgICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhyb3V0ZV9jbG9ja19uZXRzKVxuIgotIyAgICAgICAgICAgIH0KLSMgICAgICAgICAgICBpZiB7JHZhcnMoY3RzX2VuZ2luZSkgPT0gImN0cyJ9IHsKLSMgICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoY2xrX3RyZWVfdG9wX2xheWVyKV0gJiYgJHZhcnMoY2xrX3RyZWVfdG9wX2xheWVyKSAhPSB7fX0gewotIyAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMoY2xrX3RyZWVfdG9wX2xheWVyKVxuIgotIyAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJzZXRfZGIgY3RzX3JvdXRlX3RvcF9wcmVmZXJyZWRfbGF5ZXIgJHZhcnMoY2xrX3RyZWVfdG9wX2xheWVyKVxuIgotIyAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0jICAgICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMoY2xrX3RyZWVfdG9wX2xheWVyKVxuIgotIyAgICAgICAgICAgICAgIH0KLSMgICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoY2xrX3RyZWVfYm90dG9tX2xheWVyKV0gJiYgJHZhcnMoY2xrX3RyZWVfYm90dG9tX2xheWVyKSAhPSB7fX0gewotIyAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMoY2xrX3RyZWVfYm90dG9tX2xheWVyKVxuIgotIyAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJzZXRfZGIgY3RzX3JvdXRlX2JvdHRvbV9wcmVmZXJyZWRfbGF5ZXIgJHZhcnMoY2xrX3RyZWVfYm90dG9tX2xheWVyKVxuIgotIyAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0jICAgICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMoY2xrX3RyZWVfYm90dG9tX2xheWVyKVxuIgotIyAgICAgICAgICAgICAgIH0KLSMgICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoY2xrX2xlYWZfdG9wX2xheWVyKV0gJiYgJHZhcnMoY2xrX2xlYWZfdG9wX2xheWVyKSAhPSB7fX0gewotIyAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMoY2xrX2xlYWZfdG9wX2xheWVyKVxuIgotIyAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJzZXRfZGIgY3RzX3JvdXRlX2xlYWZfdG9wX3ByZWZlcnJlZF9sYXllciAkdmFycyhjbGtfbGVhZl90b3BfbGF5ZXIpXG4iCi0jICAgICAgICAgICAgICAgfSBlbHNlIHsKLSMgICAgICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhjbGtfbGVhZl90b3BfbGF5ZXIpXG4iCi0jICAgICAgICAgICAgICAgfQotIyAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhjbGtfbGVhZl9ib3R0b21fbGF5ZXIpXSAmJiAkdmFycyhjbGtfbGVhZl9ib3R0b21fbGF5ZXIpICE9IHt9fSB7Ci0jICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhjbGtfbGVhZl9ib3R0b21fbGF5ZXIpXG4iCi0jICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgInNldF9kYiBjdHNfcm91dGVfbGVhZl9ib3R0b21fcHJlZmVycmVkX2xheWVyICR2YXJzKGNsa19sZWFmX2JvdHRvbV9sYXllcilcbiIKLSMgICAgICAgICAgICAgICB9IGVsc2UgewotIyAgICAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKGNsa19sZWFmX2JvdHRvbV9sYXllcilcbiIKLSMgICAgICAgICAgICAgICB9Ci0jICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGNsa190cmVlX25kcildICYmICR2YXJzKGNsa190cmVlX25kcikgIT0ge319IHsKLSMgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKGNsa190cmVlX25kcilcbiIKLSMgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAic2V0X2RiIGN0c19yb3V0ZV9ub25fZGVmYXVsdF9ydWxlICR2YXJzKGNsa190cmVlX25kcilcbiIKLSMgICAgICAgICAgICAgICB9IGVsc2UgewotIyAgICAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKGNsa190cmVlX25kcilcbiIKLSMgICAgICAgICAgICAgICB9Ci0jICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGNsa190cmVlX2V4dHJhX3NwYWNlKV0gJiYgJHZhcnMoY2xrX3RyZWVfZXh0cmFfc3BhY2UpICE9IHt9fSB7Ci0jICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhjbGtfdHJlZV9leHRyYV9zcGFjZSlcbiIKLSMgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAic2V0X2RiIGN0c19yb3V0ZV9wcmVmZXJyZWRfZXh0cmFfc3BhY2UgJHZhcnMoY2xrX3RyZWVfZXh0cmFfc3BhY2UpIgotIyAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0jICAgICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMoY2xrX3RyZWVfZXh0cmFfc3BhY2UpXG4iCi0jICAgICAgICAgICAgICAgfQotIyAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhjbGtfbGVhZl9uZHIpXSAmJiAkdmFycyhjbGtfbGVhZl9uZHIpICE9IHt9fSB7Ci0jICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhjbGtfbGVhZl9uZHIpXG4iCi0jICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgInNldF9kYiBjdHNfcm91dGVfbGVhZl9ub25fZGVmYXVsdF9ydWxlICR2YXJzKGNsa19sZWFmX25kcikiCi0jICAgICAgICAgICAgICAgfSBlbHNlIHsKLSMgICAgICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhjbGtfbGVhZl9uZHIpXG4iCi0jICAgICAgICAgICAgICAgfQotIyAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhjbGtfbGVhZl9leHRyYV9zcGFjZSldICYmICR2YXJzKGNsa19sZWFmX2V4dHJhX3NwYWNlKSAhPSB7fX0gewotIyAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMoY2xrX2xlYWZfZXh0cmFfc3BhY2UpXG4iCi0jICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgInNldF9kYiBjdHNfcm91dGVfbGVhZl9wcmVmZXJyZWRfZXh0cmFfc3BhY2UgJHZhcnMoY2xrX2xlYWZfZXh0cmFfc3BhY2UpIgotIyAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0jICAgICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMoY2xrX2xlYWZfZXh0cmFfc3BhY2UpXG4iCi0jICAgICAgICAgICAgICAgfQotIyAgICAgICAgICAgICAgIGlmIHskY29tbWFuZCAhPSAiIn0gewotIyAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJcbiIKLSMgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgY3RzLHNldF9jdHNfbW9kZSAkY29tbWFuZF0KLSMgICAgICAgICAgICAgICB9Ci0jICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIHNldCBhcmdzICIiCi0gICAgICAgICAgICAgICBzZXQgY29tbWFuZCAiIgotICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGNsa19sZWFmX3RvcF9sYXllcildICYmICR2YXJzKGNsa19sZWFmX3RvcF9sYXllcikgIT0ge319IHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMoY2xrX2xlYWZfdG9wX2xheWVyKVxuIgotICAgICAgICAgICAgICAgICAgYXBwZW5kIGFyZ3MgIi10b3BfcHJlZmVycmVkX2xheWVyICR2YXJzKGNsa19sZWFmX3RvcF9sYXllcikgIgotICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKGNsa19sZWFmX3RvcF9sYXllcilcbiIKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhjbGtfbGVhZl9ib3R0b21fbGF5ZXIpXSAmJiAkdmFycyhjbGtfbGVhZl9ib3R0b21fbGF5ZXIpICE9IHt9fSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKGNsa19sZWFmX2JvdHRvbV9sYXllcilcbiIKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBhcmdzICItYm90dG9tX3ByZWZlcnJlZF9sYXllciAkdmFycyhjbGtfbGVhZl9ib3R0b21fbGF5ZXIpICIKLSAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhjbGtfbGVhZl9ib3R0b21fbGF5ZXIpXG4iCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoY2xrX2xlYWZfbmRyKV0gJiYgJHZhcnMoY2xrX2xlYWZfbmRyKSAhPSB7fX0gewotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhjbGtfbGVhZl9uZHIpXG4iCi0gICAgICAgICAgICAgICAgICBhcHBlbmQgYXJncyAiLW5vbl9kZWZhdWx0X3J1bGUgJHZhcnMoY2xrX2xlYWZfbmRyKSAiCi0gICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMoY2xrX2xlYWZfbmRyKVxuIgotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgaWYgeyRhcmdzICE9ICIifSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiY3JlYXRlX3JvdXRlX3R5cGUgLW5hbWUgbGVhZiAiCi0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAkYXJncwotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgc2V0IGFyZ3MgIiIKLSAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhjbGtfdHJlZV90b3BfbGF5ZXIpXSAmJiAkdmFycyhjbGtfdHJlZV90b3BfbGF5ZXIpICE9IHt9fSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKGNsa190cmVlX3RvcF9sYXllcilcbiIKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBhcmdzICItdG9wX3ByZWZlcnJlZF9sYXllciAkdmFycyhjbGtfdHJlZV90b3BfbGF5ZXIpICIKLSAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhjbGtfdHJlZV90b3BfbGF5ZXIpXG4iCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoY2xrX3RyZWVfYm90dG9tX2xheWVyKV0gJiYgJHZhcnMoY2xrX3RyZWVfYm90dG9tX2xheWVyKSAhPSB7fX0gewotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhjbGtfdHJlZV9ib3R0b21fbGF5ZXIpXG4iCi0gICAgICAgICAgICAgICAgICBhcHBlbmQgYXJncyAiLWJvdHRvbV9wcmVmZXJyZWRfbGF5ZXIgJHZhcnMoY2xrX3RyZWVfYm90dG9tX2xheWVyKSAiCi0gICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMoY2xrX3RyZWVfYm90dG9tX2xheWVyKVxuIgotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGNsa190cmVlX25kcildICYmICR2YXJzKGNsa190cmVlX25kcikgIT0ge319IHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMoY2xrX3RyZWVfbmRyKVxuIgotICAgICAgICAgICAgICAgICAgYXBwZW5kIGFyZ3MgIi1ub25fZGVmYXVsdF9ydWxlICR2YXJzKGNsa190cmVlX25kcikgIgotICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKGNsa190cmVlX25kcilcbiIKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIGlmIHskYXJncyAhPSAiIn0gewotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIlxuY3JlYXRlX3JvdXRlX3R5cGUgLW5hbWUgdHJlZSAiCi0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAkYXJncwotICAgICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAgICBpZiB7JGNvbW1hbmQgIT0gIiJ9IHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJcbiIKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCBjdHMsc2V0X2N0c19tb2RlICRjb21tYW5kXQotICAgICAgICAgICAgICAgfQotIyAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgc2V0IGNvbW1hbmQgIiIKLSAgICAgICAgICAgIGlmIHtbc3RyaW5nIHRvbG93ZXIgJHZhcnMoY3RzX2VuZ2luZSldICE9ICJjdHMifSB7Ci0jICAgICAgICAgICAgICAgRkZfTk9WVVM6OmFzc2lnbl9jdHNfY2VsbHMKLSMgICAgICAgICAgICAgICBmb3JlYWNoIGNvcm5lciAkdmFycyhyY19jb3JuZXJzKSB7Ci0jICAgICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCRjb3JuZXIsYXRmX2ZpbGUpXX0gewotIyAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAidXBkYXRlX2Njb3B0X3JjX2Nvcm5lciAtbmFtZSAkY29ybmVyIC1hdGYgJHZhcnMoJGNvcm5lcixhdGZfZmlsZSlcbiIKLSMgICAgICAgICAgICAgICAgICB9Ci0jICAgICAgICAgICAgICAgfQotIyAgICAgICAgICAgICAgIGlmIHskY29tbWFuZCAhPSAiIn0gewotIyAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJcbiIKLSMgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgY3RzLHVwZGF0ZV9jY29wdF9yY19jb3JuZXIgJGNvbW1hbmRdCi0jICAgICAgICAgICAgICAgfQotIyAgICAgICAgICAgICAgIHNldCBjb21tYW5kICIiCi0jICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGNjb3B0X2ludGVncmF0aW9uKV19IHsKLSMgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKGNjb3B0X2ludGVncmF0aW9uKVxuIgotIyAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJzZXRfZGIgY2NvcHRfaW50ZWdyYXRpb24gXCIkdmFycyhjY29wdF9pbnRlZ3JhdGlvbilcIlxuIgotIyAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0jICAgICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMoY2NvcHRfaW50ZWdyYXRpb24pXG4iCi0jICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGN0c19pbnZlcnRlcl9jZWxscyldfSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKGN0c19pbnZlcnRlcl9jZWxscylcbiIKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJzZXRfZGIgY3RzX2ludmVydGVyX2NlbGxzIFwiJHZhcnMoY3RzX2ludmVydGVyX2NlbGxzKVwiXG4iCi0gICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMoY3RzX2ludmVydGVyX2NlbGxzKVxuIgotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGN0c19idWZmZXJfY2VsbHMpXX0gewotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhjdHNfYnVmZmVyX2NlbGxzKVxuIgotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgInNldF9kYiBjdHNfYnVmZmVyX2NlbGxzIFwiJHZhcnMoY3RzX2J1ZmZlcl9jZWxscylcIlxuIgotICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKGN0c19idWZmZXJfY2VsbHMpXG4iCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoY2xvY2tfZ2F0ZV9jZWxscyldfSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKGNsb2NrX2dhdGVfY2VsbHMpXG4iCi0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAic2V0X2RiIGN0c19jbG9ja19nYXRpbmdfY2VsbHMgXCIkdmFycyhjbG9ja19nYXRlX2NlbGxzKVwiXG4iCi0gICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMoY2xvY2tfZ2F0ZV9jZWxscylcbiIKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhjdHNfdXNlX2ludmVydGVycyldfSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKGN0c191c2VfaW52ZXJ0ZXJzKVxuIgotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgInNldF9kYiBjdHNfdXNlX2ludmVydGVycyBbc3RyaW5nIHRvbG93ZXIgJHZhcnMoY3RzX3VzZV9pbnZlcnRlcnMpXVxuIgotICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKGN0c191c2VfaW52ZXJ0ZXJzKVxuIgotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKHVwZGF0ZV9pb19sYXRlbmN5KV19IHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnModXBkYXRlX2lvX2xhdGVuY3kpXG4iCi0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAic2V0X2RiIGN0c191cGRhdGVfaW9fbGF0ZW5jeSAkdmFycyh1cGRhdGVfaW9fbGF0ZW5jeSlcbiIKLSAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyh1cGRhdGVfaW9fbGF0ZW5jeSlcbiIKLSAgICAgICAgICAgICAgIH0KLSMgICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoY3RzX2lvX29wdCldfSB7Ci0jICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhjdHNfaW9fb3B0KVxuIgotIyAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJzZXRfZGIgY2NvcHRfaW9fb3B0IFtzdHJpbmcgdG9sb3dlciAkdmFycyhjdHNfaW9fb3B0KV1cbiIKLSMgICAgICAgICAgICAgICB9IGVsc2UgewotIyAgICAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKGN0c19pb19vcHQpXG4iCi0jICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGNjb3B0X2VmZm9ydCldfSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKGNjb3B0X2VmZm9ydClcbiIKLSAgICAgICAgICAgICAgICAgIGlmIHtbc3RyaW5nIHRvbG93ZXIgJHZhcnMoY2NvcHRfZWZmb3J0KV0gIT0gImxvdyJ9IHsKLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJzZXRfY2NvcHRfZWZmb3J0ICR2YXJzKGNjb3B0X2VmZm9ydClcbiIKLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhjY29wdF9lZmZvcnQpXG4iCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoY3RzX3RhcmdldF9za2V3KV19IHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMoY3RzX3RhcmdldF9za2V3KVxuIgotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgInNldF9kYiBjdHNfdGFyZ2V0X3NrZXcgJHZhcnMoY3RzX3RhcmdldF9za2V3KVxuIgotICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKGN0c190YXJnZXRfc2tldylcbiIKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhjdHNfdGFyZ2V0X3NsZXcpXX0gewotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhjdHNfdGFyZ2V0X3NsZXcpXG4iCi0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAic2V0X2RiIGN0c190YXJnZXRfbWF4X3RyYW5zaXRpb25fdGltZSAkdmFycyhjdHNfdGFyZ2V0X3NsZXcpXG4iCi0gICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMoY3RzX3RhcmdldF9zbGV3KVxuIgotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKHByZV9jY29wdF90Y2wpXX0gewotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhwcmVfY2NvcHRfdGNsKVxuIgotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgInNldF9kYiBjY29wdF9wcmVfdGNsIFx7IHNvdXJjZSAkdmFycyhwcmVfY2NvcHRfdGNsKSBcfVxuIgotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKHBvc3RfY2NvcHRfdGNsKV19IHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMocG9zdF9jY29wdF90Y2wpXG4iCi0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAic2V0X2RiIGNjb3B0X3Bvc3RfdGNsIFx7IHNvdXJjZSAkdmFycyhwb3N0X2Njb3B0X3RjbCkgXH1cbiIKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJcbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCBjdHMsc2V0X2Njb3B0X21vZGUgJGNvbW1hbmRdCi0jICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgImNyZWF0ZV9yb3V0ZV90eXBlIHRydW5rICIKLSMgICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoY2xrX3RyZWVfbmRyKV19IHsKLSMgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKGNsa190cmVlX25kcilcbiIKLSMgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiLW5vbl9kZWZhdWx0X3J1bGUgJHZhcnMoY2xrX3RyZWVfbmRyKSIKLSMgICAgICAgICAgICAgICB9IGVsc2UgewotIyAgICAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKGNsa190cmVlX25kcilcbiIKLSMgICAgICAgICAgICAgICB9Ci0jICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGNsa190cmVlX3NoaWVsZF9uZXQpXX0gewotIyAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMoY2xrX3RyZWVfc2hpZWxkX25ldClcbiIKLSMgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiLXNoaWVsZF9uZXQgJHZhcnMoY2xrX3RyZWVfc2hpZWxkX25ldCkiCi0jICAgICAgICAgICAgICAgfSBlbHNlIHsKLSMgICAgICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhjbGtfdHJlZV9zaGllbGRfbmV0KVxuIgotIyAgICAgICAgICAgICAgIH0KLSMgICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoY2xrX3RyZWVfdG9wX2xheWVyKV19IHsKLSMgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKGNsa190cmVlX3RvcF9sYXllcilcbiIKLSMgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiLXRvcF9wcmVmZXJyZWRfbGF5ZXIgJHZhcnMoY2xrX3RyZWVfdG9wX2xheWVyKVxuIgotIyAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0jICAgICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMoY2xrX3RyZWVfdG9wX2xheWVyKVxuIgotIyAgICAgICAgICAgICAgIH0KLSMgICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoY2xrX3RyZWVfYm90dG9tX2xheWVyKV19IHsKLSMgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiLWJvdHRvbV9wcmVmZXJyZWQgJHZhcnMoY2xrX3RyZWVfYm90dG9tX2xheWVyKVxuIgotIyAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0jICAgICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMoY2xrX3RyZWVfYm90dG9tX2xheWVyKVxuIgotIyAgICAgICAgICAgICAgIH0KLSMgICAgICAgICAgICAgICBpZiB7JGNvbW1hbmQgIT0gImNyZWF0ZV9yb3V0ZV90eXBlIHRydW5rICJ9IHsKLSMgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJcbiIKLSMgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCBjdHMsY3JlYXRlX3JvdXRlX3R5cGUgJGNvbW1hbmRdCi0jICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAgICAgc2V0IGFyZ3MgIiIKLSAgICAgICAgICAgIGlmIHshW2NhdGNoIHtzZXQgYXJnICR2YXJzKG11bHRpX2N1dF9lZmZvcnQpfV19IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMobXVsdGlfY3V0X2VmZm9ydClcbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBhcmdzICJzZXRfZGIgcm91dGVfZGVzaWduX2RldGFpbF91c2VfbXVsdGlfY3V0X3ZpYV9lZmZvcnQgJGFyZ1xuIgotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKG11bHRpX2N1dF9lZmZvcnQpXG4iCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiB7IVtjYXRjaCB7c2V0IGFyZyAkdmFycyhsaXRob19kcml2ZW5fcm91dGluZyl9XX0gewotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhsaXRob19kcml2ZW5fcm91dGluZylcbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBhcmdzICJzZXRfZGIgcm91dGVfZGVzaWduX3dpdGhfbGl0aG9fZHJpdmVuICRhcmdcbiIKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhsaXRob19kcml2ZW5fcm91dGluZylcbiIKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIHskYXJncyAhPSAiIn0gewotICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgIiRhcmdzXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgY3RzLHNldF9uYW5vcm91dGVfbW9kZSAkY29tbWFuZF0KLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgaWYgeyhbaW5mbyBleGlzdHMgdmFycyhwYXJ0aXRpb25fbGlzdCldKSAmJgotICAgICAgICAgICAgICAgIChbZmlsZSB0YWlsIFtmaWxlIGRpcm5hbWUgW3B3ZF1dXSA9PSAiJHZhcnMocGFydGl0aW9uX2RpcikiKX0gewotICAgICAgICAgICAgICAgc2V0IHB0biBbZmlsZSB0YWlsIFtwd2RdXQotICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCRwdG4sY3RzX3NwZWMpXX0gewotICAgICAgICAgICAgICAgICAgc2V0IHZhcnMoY3RzX3NwZWMpICR2YXJzKCRwdG4sY3RzX3NwZWMpCi0gICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgaWYgeyRwdG4gIT0gJHZhcnMoZGVzaWduKX0gewotICAgICAgICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGN0c19zcGVjKV19IHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHVuc2V0IHZhcnMoY3RzX3NwZWMpCi0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAgfQotCi0gICAgICAgICAicG9zdGN0cyIgewotICAgICAgICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgICAgICAgIyBPcHRpb25hbGx5IGVuYWJsZSBjcHByLCBzaWduYWxTdG9ybSwgYW5kIG9uQ2hpcFZhcmlhdGlvbiAoaWYKLSAgICAgICAgICAgICMgTU1NQykKLSAgICAgICAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLQotICAgICAgICAgICAgc2V0IGFyZ3MgIiIgCi0gICAgICAgICAgICBpZiB7JHZhcnMoZW5hYmxlX2NwcHIpICE9ICJmYWxzZSJ9IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMoZW5hYmxlX2NwcHIpXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgYXJncyAic2V0X2RiIHRpbWluZ19hbmFseXNpc19jcHByICR2YXJzKGVuYWJsZV9jcHByKVxuIgotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKGVuYWJsZV9jcHByKVxuIgotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgeyR2YXJzKGZsb3cpID09ICJtbW1jIn0gewotICAgICAgICAgICAgICAgaWYgeyR2YXJzKGVuYWJsZV9vY3YpID09ICJwcmVfcG9zdGN0cyJ9IHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMoZW5hYmxlX29jdilcbiIKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBhcmdzICJzZXRfZGIgdGltaW5nX2FuYWx5c2lzX3R5cGUgb2N2XG4iCi0gICAgICAgICAgICAgICAgICBpZiB7JHZhcnMoZW5hYmxlX2FvY3YpfSB7Ci0gICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKGVuYWJsZV9hb2N2KVxuIgotICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGFyZ3MgInNldF9kYiB0aW1pbmdfYW5hbHlzaXNfYW9jdiB0cnVlXG4iCi0gICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMoZW5hYmxlX2FvY3YpXG4iCi0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICBpZiB7JHZhcnMoZW5hYmxlX3NvY3YpfSB7Ci0gICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKGVuYWJsZV9zb2N2KVxuIgotICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGFyZ3MgInNldF9kYiB0aW1pbmdfYW5hbHlzaXNfc29jdiB0cnVlXG4iCi0gICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMoZW5hYmxlX3NvY3YpXG4iCi0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMoZW5hYmxlX29jdikgXCJwcmVfcG9zdGN0c1wiXG4iCi0gICAgICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhlbmFibGVfYW9jdikgXCJ0cnVlXCJcbiIKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKGVuYWJsZV9zb2N2KSBcInRydWVcIlxuIgotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgeyRhcmdzICE9ICIifSB7Ci0gICAgICAgICAgICAgICBzZXQgY29tbWFuZCAiJGFyZ3NcbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCBwb3N0Y3RzLHNldF9hbmFseXNpc19tb2RlICRjb21tYW5kXQotICAgICAgICAgICAgfQotCi0jICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGN0c19zcGVjKV19IHsKLSMgICAgICAgICAgICAgICBpZiB7IVtjYXRjaCB7c2V0IGFyZyAkdmFycyhjbG9ja19nYXRlX2Nsb25lKX1dfSB7Ci0jICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhjbG9ja19nYXRlX2Nsb25lKVxuIgotIyAgICAgICAgICAgICAgICAgIHNldCBjb21tYW5kICJzZXRfZGIgb3B0X3Bvc3RfY3RzX2Nsb2NrX2dhdGVfY2xvbmluZyAkYXJnXG4iCi0jICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kIHBvc3RjdHMsc2V0X29wdF9tb2RlICRjb21tYW5kXQotIyAgICAgICAgICAgICAgIH0KLSMgICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0KLSAgICAgICAgICJwb3N0Y3RzX2hvbGQiIHsKLSAgICAgICAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICAgICAgICMgU2V0IGhvbGQgZml4aW5nIG9wdGlvbnMgLi4uCi0gICAgICAgICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0KLSAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhkZWxheV9jZWxscyldfSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKGRlbGF5X2NlbGxzKVxuIgotICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgIiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJzZXRfaW50ZXJhY3RpdmVfY29uc3RyYWludF9tb2RlcyBcW2FsbF9jb25zdHJhaW50X21vZGVzIC1hY3RpdmVcXVxuIgotICAgICAgICAgICAgICAgZm9yZWFjaCBkZWxheV9jZWxsICR2YXJzKGRlbGF5X2NlbGxzKSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAic2V0X2RvbnRfdXNlIGZhbHNlICRkZWxheV9jZWxsXG4iCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICBpZiB7JGNvbW1hbmQgIT0gIiJ9IHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCBwb3N0Y3RzX2hvbGQsc2V0X2RvbnRfdXNlICRjb21tYW5kXQotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKGRlbGF5X2NlbGxzKVxuIgotICAgICAgICAgICAgfQotICAgICAgICAgICAgc2V0IGFyZ3MgIiIKLSAgICAgICAgICAgIGlmIHshW2NhdGNoIHtzZXQgYXJnICR2YXJzKGZpeF9ob2xkX2FsbG93X3Ruc19kZWdyYWRhdGlvbil9XX0gewotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhmaXhfaG9sZF9hbGxvd190bnNfZGVncmFkYXRpb24pXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgYXJncyAiI3NldF9kYiBvcHRfZml4X2hvbGRfYWxsb3dfc2V0dXBfdG5zX2RlZ3JhZGUgJGFyZ1xuIgotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKGZpeF9ob2xkX2FsbG93X3Ruc19kZWdyYWRhdGlvbilcbiIKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIHskdmFycyhmaXhfaG9sZF9pZ25vcmVfaW9zKX0gewotICAgICAgICAgICAgICAgI2FwcGVuZCBjb21tYW5kcyAic2V0QW5hbHlzaXNNb2RlIC1ob25vckNsb2NrRG9tYWlucyB0cnVlXG4iIAotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhmaXhfaG9sZF9pZ25vcmVfaW9zKVxuIgotICAgICAgICAgICAgICAgYXBwZW5kIGFyZ3MgIiNzZXRfZGIgb3B0X2ZpeF9ob2xkX2lnbm9yZV9wYXRoX2dyb3VwcyB7aW4ycmVnIHJlZzJvdXQgaW4yb3V0fVxuIgotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKGZpeF9ob2xkX2lnbm9yZV9pb3MpXG4iCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiB7JGFyZ3MgIT0gIiJ9IHsKLSAgICAgICAgICAgICAgIHNldCBjb21tYW5kICIkYXJnc1xuIgotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kIHBvc3RjdHNfaG9sZCxzZXRfb3B0X21vZGUgJGNvbW1hbmRdCi0gICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0KLSAgICAgICAgICJyb3V0ZSIgewotICAgICAgICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgICAgICAgIyBTZXQgcm91dGluZyBvcHRpb25zICAuLi4KLSAgICAgICAgICAgICMgUmVjb21tZW5kYXRpb25zIGZvciBtdWx0aWN1dCB2aWEgaW5zZXJ0aW9uIGFuZCBsaXRobyBkcml2ZW4KLSAgICAgICAgICAgICMgcm91dGluZy4gIFRoZXNlIGFsbCBpbmN1ciBydW50aW1lIHBlbmFsdGllcyBidXQgaGF2ZSB5aWVsZAotICAgICAgICAgICAgIyBhZHZhbnRhZ2VzIHNvIGFyZSBpbmNsdWRlZCBoZXJlLiBUaGUgcm91dGVXaXRoTGl0aG9Ecml2ZW4gb3B0aW9uCi0gICAgICAgICAgICAjIGlzIHJlY29tbWVuZGVkIGZvciA0NW5tIGJ1dCBtYXkgYWxzbyBiZSB1c2VkIGF0IDY1bm0uIFRoZQotICAgICAgICAgICAgIyAtZHJvdXRlVXNlTXVsdGlDdXRWaWFFZmZvcnQgY2FuIGJlIHNldCB0byBoaWdoIGlmIG5lZWRlZDsKLSAgICAgICAgICAgICMgZXhwZWN0IGFuIGF2ZXJhZ2Ugb2YgNSUgY292ZXJhZ2UgaW1wcm92ZW1lbnQgd2l0aCBhbiBhdmVyYWdlIDEwJQotICAgICAgICAgICAgIyBydW50aW1lIGhpdCB2ZXJzdXMgbWVkaXVtCi0gICAgICAgICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0KLSAgICAgICAgICAgIGlmIHsoJHZhcnMoZW5hYmxlX2NwcHIpICE9ICJmYWxzZSIpICYmICR2YXJzKHRyYWNrX29wdCl9IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMoZW5hYmxlX2NwcHIpXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgYXJncyAic2V0X2RiIHRpbWluZ19hbmFseXNpc19jcHByICR2YXJzKGVuYWJsZV9jcHByKVxuIgotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKGVuYWJsZV9jcHByKVxuIgotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgeyR2YXJzKGVuYWJsZV9zaV9hd2FyZSl9IHsKLSAgICAgICAgICAgICAgIHNldCBjb21tYW5kICJzZXRfZGIgZGVsYXljYWxfZW5hYmxlX3NpIHRydWVcbiAiCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgcG9zdHJvdXRlLHNldF9kZWxheV9jYWxfbW9kZSAkY29tbWFuZF0KLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMoZW5hYmxlX3NpX2F3YXJlKVxuIgotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKGVuYWJsZV9zaV9hd2FyZSlcbiIKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHNldCBhcmdzICIiCi0gICAgICAgICAgICBpZiB7IVtjYXRjaCB7c2V0IGFyZyAkdmFycyhtdWx0aV9jdXRfZWZmb3J0KX1dfSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKG11bHRpX2N1dF9lZmZvcnQpXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgYXJncyAic2V0X2RiIHJvdXRlX2Rlc2lnbl9kZXRhaWxfdXNlX211bHRpX2N1dF92aWFfZWZmb3J0ICRhcmdcbiIKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhtdWx0aV9jdXRfZWZmb3J0KVxuIgotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgeyFbY2F0Y2gge3NldCBhcmcgJHZhcnMobGl0aG9fZHJpdmVuX3JvdXRpbmcpfV19IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMobGl0aG9fZHJpdmVuX3JvdXRpbmcpXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgYXJncyAic2V0X2RiIHJvdXRlX2Rlc2lnbl93aXRoX2xpdGhvX2RyaXZlbiAkYXJnXG4iCi0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMobGl0aG9fZHJpdmVuX3JvdXRpbmcpXG4iCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiB7IVtjYXRjaCB7c2V0IGFyZyAkdmFycyhhbnRlbm5hX2Rpb2RlKX1dfSB7Ci0gICAgICAgICAgICAgICBpZiB7JHZhcnMoYW50ZW5uYV9kaW9kZSkgIT0gIiJ9IHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMoYW50ZW5uYV9kaW9kZSlcbiIKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBhcmdzICJzZXRfZGIgcm91dGVfZGVzaWduX2FudGVubmFfY2VsbF9uYW1lICRhcmdcbiIKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBhcmdzICJzZXRfZGIgcm91dGVfZGVzaWduX2FudGVubmFfZGlvZGVfaW5zZXJ0aW9uIHRydWVcbiIKLSAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhhbnRlbm5hX2Rpb2RlKVxuIgotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKGFudGVubmFfZGlvZGUpXG4iCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiB7JGFyZ3MgIT0gIiJ9IHsKLSAgICAgICAgICAgICAgIHNldCBjb21tYW5kICIkYXJnc1xuIgotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kIHJvdXRlLHNldF9uYW5vcm91dGVfbW9kZSAkY29tbWFuZF0KLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0KLQotICAgICAgICAgInBvc3Ryb3V0ZSIgewotICAgICAgICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgICAgICAgIyBTZXQgZXh0cmFjdGlvbiBlZmZvcnQgZm9yIHBvc3Ryb3V0ZSBvcHRpbWl6YXRpb24KLSAgICAgICAgICAgICMgRW5hYmxlIHNpZ25hbFN0b3JtIGlmIHJlcXVlc3RlZAotICAgICAgICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCi0gICAgICAgICAgICBzZXQgY29tbWFuZCAic2V0X2RiIGV4dHJhY3RfcmNfZW5naW5lIHBvc3Rfcm91dGVcbiIKLSAgICAgICAgICAgIGlmIHshW2NhdGNoIHtzZXQgYXJnICR2YXJzKHBvc3Ryb3V0ZV9leHRyYWN0aW9uX2VmZm9ydCl9XX0gewotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhwb3N0cm91dGVfZXh0cmFjdGlvbl9lZmZvcnQpXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAic2V0X2RiIGV4dHJhY3RfcmNfZWZmb3J0X2xldmVsICRhcmdcbiIKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhwb3N0cm91dGVfZXh0cmFjdGlvbl9lZmZvcnQpXG4iCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiB7IVtjYXRjaCB7c2V0IGFyZyAkdmFycyh0b3RhbF9jX3RocmVzaCl9XX0gewotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyh0b3RhbF9jX3RocmVzaClcbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJzZXRfZGIgZXh0cmFjdF9yY190b3RhbF9jYXBfdGhyZXNob2xkICRhcmdcbiIKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyh0b3RhbF9jX3RocmVzaClcbiIKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIHshW2NhdGNoIHtzZXQgYXJnICR2YXJzKHJlbGF0aXZlX2NfdGhyZXNoKX1dfSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKHJlbGF0aXZlX2NfdGhyZXNoKVxuIgotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgInNldF9kYiBleHRyYWN0X3JjX3JlbGF0aXZlX2NhcF90aHJlc2hvbGQgJGFyZ1xuIgotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKHJlbGF0aXZlX2NfdGhyZXNoKVxuIgotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgeyFbY2F0Y2gge3NldCBhcmcgJHZhcnMoY291cGxpbmdfY190aHJlc2gpfV19IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMoY291cGxpbmdfY190aHJlc2gpXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAic2V0X2RiIGV4dHJhY3RfcmNfY291cGxpbmdfY2FwX3RocmVzaG9sZCAkYXJnXG4iCi0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMocmVsYXRpdmVfY190aHJlc2gpXG4iCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiB7IVtjYXRjaCB7c2V0IGFyZyAkdmFycyhxcmNfbGF5ZXJfbWFwKX1dfSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKHFyY19sYXllcl9tYXApXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAic2V0X2RiIGV4dHJhY3RfcmNfbGVmX3RlY2hfZmlsZV9tYXAgJGFyZyIKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhxcmNfbGF5ZXJfbWFwKVxuIgotICAgICAgICAgICAgfQotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIlxuIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kIHBvc3Ryb3V0ZSxzZXRfZXh0cmFjdF9yY19tb2RlICRjb21tYW5kXQotICAgICAgICAgICAgIAotCi0gICAgICAgICAgICBzZXQgYXJncyAiIgotICAgICAgICAgICAgaWYgeygkdmFycyhlbmFibGVfb2N2KSA9PSAicHJlX3Bvc3Ryb3V0ZSIpIHx8ICgkdmFycyhlbmFibGVfb2N2KSA9PSAicHJlX3Bvc3RjdHMiKX0gewotICAgICAgICAgICAgICAgaWYgeyR2YXJzKGZsb3cpICE9ICJkZWZhdWx0In0gewotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhlbmFibGVfb2N2KVxuIgotICAgICAgICAgICAgICAgICAgYXBwZW5kIGFyZ3MgInNldF9kYiB0aW1pbmdfYW5hbHlzaXNfdHlwZSBvY3ZcbiIKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIGlmIHskdmFycyhlbmFibGVfYW9jdil9IHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMoZW5hYmxlX2FvY3YpXG4iCi0gICAgICAgICAgICAgICAgICBhcHBlbmQgYXJncyAic2V0X2RiIHRpbWluZ19hbmFseXNpc19hb2N2IHRydWVcbiIKLSAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhlbmFibGVfYW9jdilcbiIKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIGlmIHskdmFycyhlbmFibGVfc29jdil9IHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMoZW5hYmxlX3NvY3YpXG4iCi0gICAgICAgICAgICAgICAgICBhcHBlbmQgYXJncyAic2V0X2RiIHRpbWluZ19hbmFseXNpc19zb2N2IHRydWVcbiIKLSAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhlbmFibGVfc29jdilcbiIKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhlbmFibGVfb2N2KSBcInByZV9wb3N0cm91dGVcIlxuIgotICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMoZW5hYmxlX2FvY3YpIFwidHJ1ZVwiXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhlbmFibGVfc29jdikgXCJ0cnVlXCJcbiIKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIHskdmFycyhlbmFibGVfY3BwcikgIT0gImZhbHNlIn0gewotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhlbmFibGVfY3BwcilcbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBhcmdzICJzZXRfZGIgdGltaW5nX2FuYWx5c2lzX2NwcHIgJHZhcnMoZW5hYmxlX2NwcHIpXG4iCi0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMoZW5hYmxlX2NwcHIpXG4iCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiB7JGFyZ3MgIT0gIiJ9IHsKLSAgICAgICAgICAgICAgIHNldCBjb21tYW5kICIkYXJnc1xuIgotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kIHBvc3Ryb3V0ZSxzZXRfYW5hbHlzaXNfbW9kZSAkY29tbWFuZF0KLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgaWYge1tyZWdleHAgIjkuMSIgJHZhcnModmVyc2lvbildfSB7Ci0gICAgICAgICAgICAgICBpZiB7JHZhcnMoZW5hYmxlX3NzKSA9PSAicHJlX3Bvc3Ryb3V0ZSJ9IHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMoZW5hYmxlX3NzKVxuIgotICAgICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgInNldERlbGF5Q2FsTW9kZSAtZW5naW5lIHNpZ25hbFN0b3JtIC1zaWdub2ZmIHRydWUgIgotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kIHBvc3Ryb3V0ZSxzZXRfZGVsYXlfY2FsX21vZGUgJGNvbW1hbmRdCi0gICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMoZW5hYmxlX3NzKSBcInByZV9wb3N0cm91dGVcIlxuIgotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfSBlbHNlIHsgCi0gICAgICAgICAgICAgICBpZiB7JHZhcnMoZW5hYmxlX3NpX2F3YXJlKX0gewotICAgICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgInNldF9kYiBkZWxheWNhbF9lbmFibGVfc2kgdHJ1ZVxuICIKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCBwb3N0cm91dGUsc2V0X2RlbGF5X2NhbF9tb2RlICRjb21tYW5kXQotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhlbmFibGVfc2lfYXdhcmUpXG4iCi0gICAgICAgICAgICAgICAgICBpZiB7JHZhcnMoZW5hYmxlX3NzKSA9PSAicHJlX3Bvc3Ryb3V0ZSJ9IHsKLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyA8RkY+IFZhcmlhYmxlIHZhcnMoZW5hYmxlX3NzKSBpZ25vcmVkIHdoZW4gdmFycyhlbmFibGVfc2lfYXdhcmUpIGlzIHNldFxuIgotICAgICAgICAgICAgICAgICAgICAgc2V0IHdhcm5pbmdzKCR2YXJzKHdhcm5pbmdfY291bnQpKSAiVmFyaWFibGUgdmFycyhlbmFibGVfc3MpIGlnbm9yZWQgd2hlbiB2YXJzKGVuYWJsZV9zaV9hd2FyZSkgaXMgc2V0XG4iCi0gICAgICAgICAgICAgICAgICAgICBpbmNyIHZhcnMod2FybmluZ19jb3VudCkKLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhlbmFibGVfc2lfYXdhcmUpXG4iCi0gICAgICAgICAgICAgICAgICBpZiB7JHZhcnMoZW5hYmxlX3NzKSA9PSAicHJlX3Bvc3Ryb3V0ZSJ9IHsKLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMoZW5hYmxlX3NzKVxuIgotIyAgICAgICAgICAgICAgICAgICAgIHNldCBjb21tYW5kICJzZXREZWxheUNhbE1vZGUgLWVuZ2luZSBzaWduYWxTdG9ybSAtc2lnbm9mZiB0cnVlIC1zaUF3YXJlIGZhbHNlXG4iCi0jICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kIHBvc3Ryb3V0ZSxzZXRfZGVsYXlfY2FsX21vZGUgJGNvbW1hbmRdCi0gICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgIiNzZXRfZGIgZGVsYXljYWxfZW5hYmxlX3NpIGZhbHNlXG4iCi0jICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kIHBvc3Ryb3V0ZSxzZXRfZGVsYXlfY2FsX21vZGUgJGNvbW1hbmRdCi0gICAgICAgICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhlbmFibGVfc3MpIFwicHJlX3Bvc3Ryb3V0ZVwiXG4iCi0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0KLSAgICAgICAgICJwb3N0cm91dGVfaG9sZCIgewotICAgICAgICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgICAgICAgIyBTZXQgaG9sZCBmaXhpbmcgb3B0aW9ucyAuLi4KLSAgICAgICAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLQotICAgICAgICAgICAgc2V0IGNvbW1hbmQgInNldF9kYiBleHRyYWN0X3JjX2VuZ2luZSBwb3N0X3JvdXRlXG4iCi0gICAgICAgICAgICBpZiB7IVtjYXRjaCB7c2V0IGFyZyAkdmFycyhwb3N0cm91dGVfZXh0cmFjdGlvbl9lZmZvcnQpfV19IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMocG9zdHJvdXRlX2V4dHJhY3Rpb25fZWZmb3J0KVxuIgotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgInNldF9kYiBleHRyYWN0X3JjX2VmZm9ydF9sZXZlbCAkYXJnXG4iCi0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMocG9zdHJvdXRlX2V4dHJhY3Rpb25fZWZmb3J0KVxuIgotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgeyFbY2F0Y2gge3NldCBhcmcgJHZhcnModG90YWxfY190aHJlc2gpfV19IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnModG90YWxfY190aHJlc2gpXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAic2V0X2RiIGV4dHJhY3RfcmNfdG90YWxfY2FwX3RocmVzaG9sZCAkYXJnXG4iCi0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnModG90YWxfY190aHJlc2gpXG4iCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiB7IVtjYXRjaCB7c2V0IGFyZyAkdmFycyhyZWxhdGl2ZV9jX3RocmVzaCl9XX0gewotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhyZWxhdGl2ZV9jX3RocmVzaClcbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJzZXRfZGIgZXh0cmFjdF9yY19yZWxhdGl2ZV9jYXBfdGhyZXNob2xkICRhcmdcbiIKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhyZWxhdGl2ZV9jX3RocmVzaClcbiIKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIHshW2NhdGNoIHtzZXQgYXJnICR2YXJzKGNvdXBsaW5nX2NfdGhyZXNoKX1dfSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKGNvdXBsaW5nX2NfdGhyZXNoKVxuIgotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgInNldF9kYiBleHRyYWN0X3JjX2NvdXBsaW5nX2NhcF90aHJlc2hvbGQgJGFyZ1xuIgotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKGNvdXBsaW5nX2NfdGhyZXNoKVxuIgotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgeyFbY2F0Y2gge3NldCBhcmcgJHZhcnMocXJjX2xheWVyX21hcCl9XX0gewotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhxcmNfbGF5ZXJfbWFwKVxuIgotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgInNldF9kYiBleHRyYWN0X3JjX2xlZl90ZWNoX2ZpbGVfbWFwICRhcmciCi0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMocXJjX2xheWVyX21hcClcbiIKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJcbiIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCBwb3N0cm91dGVfaG9sZCxzZXRfZXh0cmFjdF9yY19tb2RlICRjb21tYW5kXQotICAgICAgICAgICAgc2V0IGNvbW1hbmQgIiIgCi0gICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoZGVsYXlfY2VsbHMpXX0gewotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgInNldF9pbnRlcmFjdGl2ZV9jb25zdHJhaW50X21vZGVzIFxbYWxsX2NvbnN0cmFpbnRfbW9kZXMgLWFjdGl2ZVxdXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKGRlbGF5X2NlbGxzKVxuIgotICAgICAgICAgICAgICAgZm9yZWFjaCBkZWxheV9jZWxsICR2YXJzKGRlbGF5X2NlbGxzKSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAic2V0X2RvbnRfdXNlIGZhbHNlICRkZWxheV9jZWxsXG4iCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMoZGVsYXlfY2VsbHMpXG4iCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiB7JGNvbW1hbmQgIT0gIiJ9IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCBwb3N0cm91dGVfaG9sZCxzZXRfZG9udF91c2VfbW9kZSAkY29tbWFuZF0KLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgc2V0IGFyZ3MgIiIKLSAgICAgICAgICAgIGlmIHshW2NhdGNoIHtzZXQgYXJnICR2YXJzKGZpeF9ob2xkX2FsbG93X3Ruc19kZWdyYWRhdGlvbil9XX0gewotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhmaXhfaG9sZF9hbGxvd190bnNfZGVncmFkYXRpb24pXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgYXJncyAiI3NldF9kYiBvcHRfZml4X2hvbGRfYWxsb3dfc2V0dXBfdG5zX2RlZ3JhZGUgJGFyZ1xuIgotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKGZpeF9ob2xkX2FsbG93X3Ruc19kZWdyYWRhdGlvbilcbiIKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIHskdmFycyhmaXhfaG9sZF9pZ25vcmVfaW9zKX0gewotICAgICAgICAgICAgICAgI2FwcGVuZCBjb21tYW5kcyAic2V0QW5hbHlzaXNNb2RlIC1ob25vckNsb2NrRG9tYWlucyB0cnVlXG4iIAotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhmaXhfaG9sZF9pZ25vcmVfaW9zKVxuIgotICAgICAgICAgICAgICAgYXBwZW5kIGFyZ3MgIiNzZXRfZGIgb3B0X2ZpeF9ob2xkX2lnbm9yZV9wYXRoX2dyb3VwcyB7aW4ycmVnIHJlZzJvdXQgaW4yb3V0fSIKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhmaXhfaG9sZF9pZ25vcmVfaW9zKVxuIgotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgeyRhcmdzICE9ICIifSB7Ci0gICAgICAgICAgICAgICBzZXQgY29tbWFuZCAiJGFyZ3NcbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCBwb3N0cm91dGVfaG9sZCxzZXRfb3B0X21vZGUgJGNvbW1hbmRdCi0gICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0KLSAgICAgICAgICJwb3N0cm91dGVfc2kiIHsKLSAgICAgICAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICAgICAgICMgU2V0IG5vaXNlLCBleHRyYWN0aW9uLCBhbmQgU0kgb3B0aW9ucyAuLi4KLSAgICAgICAgICAgICMgRW5hYmxlIHNpZ25hbFN0b3JtIGlmIHJlcXVlc3RlZAotICAgICAgICAgICAgIyBFbmFibGUgb25DaGlwVmFyaWF0aW9uIChpZiBNTU1DKQotICAgICAgICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCi0gICAgICAgICAgICBzZXQgY29tbWFuZCAic2V0X2RiIGV4dHJhY3RfcmNfY291cGxlZCB0cnVlXG4iCi0gICAgICAgICAgICBpZiB7IVtjYXRjaCB7c2V0IGFyZyAkdmFycyh0b3RhbF9jX3RocmVzaCl9XX0gewotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyh0b3RhbF9jX3RocmVzaClcbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJzZXRfZGIgZXh0cmFjdF9yY190b3RhbF9jYXBfdGhyZXNob2xkICRhcmdcbiIKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyh0b3RhbF9jX3RocmVzaClcbiIKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIHshW2NhdGNoIHtzZXQgYXJnICR2YXJzKHJlbGF0aXZlX2NfdGhyZXNoKX1dfSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKHJlbGF0aXZlX2NfdGhyZXNoKVxuIgotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgInNldF9kYiBleHRyYWN0X3JjX3JlbGF0aXZlX2NhcF90aHJlc2hvbGQgJGFyZ1xuIgotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKHJlbGF0aXZlX2NfdGhyZXNoKVxuIgotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgeyFbY2F0Y2gge3NldCBhcmcgJHZhcnMoY291cGxpbmdfY190aHJlc2gpfV19IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMoY291cGxpbmdfY190aHJlc2gpXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAic2V0X2RiIGV4dHJhY3RfcmNfY291cGxpbmdfY2FwX3RocmVzaG9sZCAkYXJnXG4iCi0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMoY291cGxpbmdfY190aHJlc2gpXG4iCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiB7IVtjYXRjaCB7c2V0IGFyZyAkdmFycyhxcmNfbGF5ZXJfbWFwKX1dfSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKHFyY19sYXllcl9tYXApXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAic2V0X2RiIGV4dHJhY3RfcmNfbGVmX3RlY2hfZmlsZV9tYXAgJGFyZ1xuIgotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKHFyY19sYXllcl9tYXApXG4iCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiXG4iCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgcG9zdHJvdXRlX3NpLHNldF9leHRyYWN0X3JjX21vZGUgJGNvbW1hbmRdCi0KLSAgICAgICAgICAgIHNldCBhcmdzICIiCi0gICAgICAgICAgICBpZiB7IVtjYXRjaCB7c2V0IGFyZyAkdmFycyhkZWx0YV9kZWxheV90aHJlc2hvbGQpfV19IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMoZGVsdGFfZGVsYXlfdGhyZXNob2xkKVxuIgotICAgICAgICAgICAgICAgYXBwZW5kIGFyZ3MgInNldF9kYiBzaV9kZWxheV9kZWx0YV90aHJlc2hvbGQgJGFyZ1xuIgotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKGRlbHRhX2RlbGF5X3RocmVzaG9sZClcbiIKLSAgICAgICAgICAgIH0KLSMgICAgICAgICAgICBpZiB7IVtjYXRjaCB7c2V0IGFyZyAkdmFycyhjZWx0aWNfc2V0dGluZ3MpfV19IHsKLSMgICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKGNlbHRpY19zZXR0aW5ncylcbiIKLSMgICAgICAgICAgICAgICBhcHBlbmQgYXJncyAiIC1pbnNDZWx0SUNQcmVUY2wgXCIkYXJnXCIiCi0jICAgICAgICAgICAgfSBlbHNlIHsKLSMgICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhjZWx0aWNfc2V0dGluZ3MpXG4iCi0jICAgICAgICAgICAgfQotIyAgICAgICAgICAgIGlmIHshW2NhdGNoIHtzZXQgYXJnICR2YXJzKHNpX2FuYWx5c2lzX3R5cGUpfV19IHsKLSMgICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKHNpX2FuYWx5c2lzX3R5cGUpXG4iCi0jICAgICAgICAgICAgICAgYXBwZW5kIGFyZ3MgIiAtYW5hbHlzaXNUeXBlICRhcmciCi0jICAgICAgICAgICAgfSBlbHNlIHsKLSMgICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhzaV9hbmFseXNpc190eXBlKVxuIgotIyAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIHskdmFycyhoaWdoX3RpbWluZ19lZmZvcnQpICYmIFtyZWdleHAgIjkuMSIgJHZhcnModmVyc2lvbildfSB7Ci0jICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhoaWdoX3RpbWluZ19lZmZvcnQpXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgYXJncyAic2V0X2RiIHNpX2FjY2VwdGFibGVfd25zIDBcbiIKLSAgICAgICAgICAgIH0gZWxzZWlmIHtbaW5mbyBleGlzdHMgdmFycyhhY2NlcHRhYmxlX3ducyldfSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgYXJncyAic2V0X2RiIHNpX2FjY2VwdGFibGVfd25zICR2YXJzKGFjY2VwdGFibGVfd25zKVxuIgotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgeyRhcmdzICE9ICIifSB7Ci0gICAgICAgICAgICAgICBzZXQgY29tbWFuZCAiJGFyZ3NcbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCBwb3N0cm91dGVfc2ksc2V0X3NpX21vZGUgJGNvbW1hbmRdCi0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIHNldCBhcmdzICIiCi0gICAgICAgICAgICBpZiB7JHZhcnMoZW5hYmxlX29jdikgPT0gInByZV9wb3N0cm91dGVfc2kifSB7Ci0gICAgICAgICAgICAgICBpZiB7JHZhcnMoZmxvdykgIT0gImRlZmF1bHQifSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKGVuYWJsZV9vY3YpXG4iCi0gICAgICAgICAgICAgICAgICBhcHBlbmQgYXJncyAic2V0X2RiIHRpbWluZ19hbmFseXNpc190eXBlIG9jdlxuIgotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgaWYgeyR2YXJzKGVuYWJsZV9hb2N2KX0gewotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhlbmFibGVfYW9jdilcbiIKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBhcmdzICJzZXRfZGIgdGltaW5nX2FuYWx5c2lzX2FvY3YgdHJ1ZVxuIgotICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKGVuYWJsZV9hb2N2KVxuIgotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgaWYgeyR2YXJzKGVuYWJsZV9zb2N2KX0gewotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhlbmFibGVfc29jdilcbiIKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBhcmdzICJzZXRfZGIgdGltaW5nX2FuYWx5c2lzX3NvY3YgdHJ1ZVxuIgotICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKGVuYWJsZV9zb2N2KVxuIgotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKGVuYWJsZV9vY3YpIFwicHJlX3Bvc3Ryb3V0ZV9zaVwiXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhlbmFibGVfYW9jdikgXCJ0cnVlXCJcbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKGVuYWJsZV9zb2N2KSBcInRydWVcIlxuIgotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgeyR2YXJzKGVuYWJsZV9jcHByKSAhPSAiZmFsc2UifSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKGVuYWJsZV9jcHByKVxuIgotICAgICAgICAgICAgICAgYXBwZW5kIGFyZ3MgInNldF9kYiB0aW1pbmdfYW5hbHlzaXNfY3BwciAkdmFycyhlbmFibGVfY3BwcilcbiIKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhlbmFibGVfY3BwcilcbiIKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIHskYXJncyAhPSAiIn0gewotICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgIiRhcmdzXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgcG9zdHJvdXRlX3NpLHNldF9hbmFseXNpc19tb2RlICRjb21tYW5kXQotICAgICAgICAgICAgfQotCi0jICAgICAgICAgICAgaWYgeyR2YXJzKGVuYWJsZV9zcykgPT0gInByZV9wb3N0cm91dGVfc2kifSB7Ci0jICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhlbmFibGVfc3MpXG4iCi0jICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgInNldERlbGF5Q2FsTW9kZSAtZW5naW5lIHNpZ25hbFN0b3JtXG4iCi0jICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kIHBvc3Ryb3V0ZV9zaSxzZXRfZGVsYXlfY2FsX21vZGUgJGNvbW1hbmRdCi0jICAgICAgICAgICAgfSBlbHNlIHsKLSMgICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhlbmFibGVfc3MpIFwicHJlX3Bvc3Ryb3V0ZV9zaVwiXG4iCi0jICAgICAgICAgICAgfQotIyAgICAgICAgIH0KLQotICAgICAgICAgInBvc3Ryb3V0ZV9zaV9ob2xkIiB7Ci0gICAgICAgICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAgICAgICAjIFNldCBob2xkIGZpeGluZyBvcHRpb25zIC4uLgotICAgICAgICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCi0gICAgICAgICAgICBzZXQgY29tbWFuZCAiIiAKLSAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhkZWxheV9jZWxscyldfSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAic2V0X2ludGVyYWN0aXZlX2NvbnN0cmFpbnRfbW9kZXMgXFthbGxfY29uc3RyYWludF9tb2RlcyAtYWN0aXZlXF1cbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMoZGVsYXlfY2VsbHMpXG4iCi0gICAgICAgICAgICAgICBmb3JlYWNoIGRlbGF5X2NlbGwgJHZhcnMoZGVsYXlfY2VsbHMpIHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJzZXRfZG9udF91c2UgZmFsc2UgJGRlbGF5X2NlbGxcbiIKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhkZWxheV9jZWxscylcbiIKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIHskY29tbWFuZCAhPSAiIn0gewotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kIHBvc3Ryb3V0ZV9ob2xkLHNldF9kb250X3VzZV9tb2RlICRjb21tYW5kXQotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBzZXQgYXJncyAiIgotICAgICAgICAgICAgaWYgeyFbY2F0Y2gge3NldCBhcmcgJHZhcnMoZml4X2hvbGRfYWxsb3dfdG5zX2RlZ3JhZGF0aW9uKX1dfSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKGZpeF9ob2xkX2FsbG93X3Ruc19kZWdyYWRhdGlvbilcbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBhcmdzICIjc2V0X2RiIG9wdF9maXhfaG9sZF9hbGxvd19zZXR1cF90bnNfZGVncmFkZSAkYXJnXG4iCi0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMoZml4X2hvbGRfYWxsb3dfdG5zX2RlZ3JhZGF0aW9uKVxuIgotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgeyR2YXJzKGZpeF9ob2xkX2lnbm9yZV9pb3MpfSB7Ci0gICAgICAgICAgICAgICAjYXBwZW5kIGNvbW1hbmRzICJzZXRBbmFseXNpc01vZGUgLWhvbm9yQ2xvY2tEb21haW5zIHRydWVcbiIgCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKGZpeF9ob2xkX2lnbm9yZV9pb3MpXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgYXJncyAiI3NldF9kYiBvcHRfZml4X2hvbGRfaWdub3JlX3BhdGhfZ3JvdXBzIHtpbjJyZWcgcmVnMm91dCBpbjJvdXR9IgotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKGZpeF9ob2xkX2lnbm9yZV9pb3MpXG4iCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBzZXQgY29tbWFuZCAiIgotICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGRlbGF5X2NlbGxzKV19IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJzZXRfaW50ZXJhY3RpdmVfY29uc3RyYWludF9tb2RlcyBcW2FsbF9jb25zdHJhaW50X21vZGVzIC1hY3RpdmVcXVxuIgotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhkZWxheV9jZWxscylcbiIKLSAgICAgICAgICAgICAgIGZvcmVhY2ggZGVsYXlfY2VsbCAkdmFycyhkZWxheV9jZWxscykgewotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgInNldF9kb250X3VzZSBmYWxzZSAkZGVsYXlfY2VsbFxuIgotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKGRlbGF5X2NlbGxzKVxuIgotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgeyRhcmdzICE9ICIifSB7Ci0gICAgICAgICAgICAgICBzZXQgY29tbWFuZCAiJGFyZ3NcbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCBwb3N0cm91dGVfc2lfaG9sZCxzZXRfb3B0X21vZGUgJGNvbW1hbmRdCi0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICAgICAgICMgU2V0IG5vaXNlLCBleHRyYWN0aW9uLCBhbmQgU0kgb3B0aW9ucyAuLi4KLSAgICAgICAgICAgICMgRW5hYmxlIHNpZ25hbFN0b3JtIGlmIHJlcXVlc3RlZAotICAgICAgICAgICAgIyBFbmFibGUgb25DaGlwVmFyaWF0aW9uIChpZiBNTU1DKQotICAgICAgICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCi0gICAgICAgICAgICBzZXQgY29tbWFuZCAic2V0X2RiIGV4dHJhY3RfcmNfY291cGxlZCB0cnVlXG4iCi0gICAgICAgICAgICBpZiB7IVtjYXRjaCB7c2V0IGFyZyAkdmFycyh0b3RhbF9jX3RocmVzaCl9XX0gewotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyh0b3RhbF9jX3RocmVzaClcbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJzZXRfZGIgZXh0cmFjdF9yY190b3RhbF9jYXBfdGhyZXNob2xkICRhcmdcbiIKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyh0b3RhbF9jX3RocmVzaClcbiIKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIHshW2NhdGNoIHtzZXQgYXJnICR2YXJzKHJlbGF0aXZlX2NfdGhyZXNoKX1dfSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKHJlbGF0aXZlX2NfdGhyZXNoKVxuIgotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgInNldF9kYiBleHRyYWN0X3JjX3JlbGF0aXZlX2NhcF90aHJlc2hvbGQgJGFyZ1xuIgotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKHJlbGF0aXZlX2NfdGhyZXNoKVxuIgotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgeyFbY2F0Y2gge3NldCBhcmcgJHZhcnMoY291cGxpbmdfY190aHJlc2gpfV19IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMoY291cGxpbmdfY190aHJlc2gpXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAic2V0X2RiIGV4dHJhY3RfcmNfY291cGxpbmdfY2FwX3RocmVzaG9sZCAkYXJnXG4iCi0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMoY291cGxpbmdfY190aHJlc2gpXG4iCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiB7IVtjYXRjaCB7c2V0IGFyZyAkdmFycyhxcmNfbGF5ZXJfbWFwKX1dfSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKHFyY19sYXllcl9tYXApXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAic2V0X2RiIGV4dHJhY3RfcmNfbGVmX3RlY2hfZmlsZV9tYXAgJGFyZ1xuIgotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKHFyY19sYXllcl9tYXApXG4iCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiXG4iCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgcG9zdHJvdXRlX3NpX2hvbGQsc2V0X2V4dHJhY3RfcmNfbW9kZSAkY29tbWFuZF0KLQotICAgICAgICAgICAgc2V0IGFyZ3MgIiIKLSAgICAgICAgICAgIGlmIHshW2NhdGNoIHtzZXQgYXJnICR2YXJzKGRlbHRhX2RlbGF5X3RocmVzaG9sZCl9XX0gewotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhkZWx0YV9kZWxheV90aHJlc2hvbGQpXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgYXJncyAic2V0X2RiIHNpX2RlbGF5X2RlbHRhX3RocmVzaG9sZCAkYXJnXG4iCi0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMoZGVsdGFfZGVsYXlfdGhyZXNob2xkKVxuIgotICAgICAgICAgICAgfQotIyAgICAgICAgICAgIGlmIHshW2NhdGNoIHtzZXQgYXJnICR2YXJzKGNlbHRpY19zZXR0aW5ncyl9XX0gewotIyAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMoY2VsdGljX3NldHRpbmdzKVxuIgotIyAgICAgICAgICAgICAgIGFwcGVuZCBhcmdzICIgLWluc0NlbHRJQ1ByZVRjbCBcIiRhcmdcIiIKLSMgICAgICAgICAgICB9IGVsc2UgewotIyAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKGNlbHRpY19zZXR0aW5ncylcbiIKLSMgICAgICAgICAgICB9Ci0jICAgICAgICAgICAgaWYgeyFbY2F0Y2gge3NldCBhcmcgJHZhcnMoc2lfYW5hbHlzaXNfdHlwZSl9XX0gewotIyAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMoc2lfYW5hbHlzaXNfdHlwZSlcbiIKLSMgICAgICAgICAgICAgICBhcHBlbmQgYXJncyAiIC1hbmFseXNpc1R5cGUgJGFyZyIKLSMgICAgICAgICAgICB9IGVsc2UgewotIyAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKHNpX2FuYWx5c2lzX3R5cGUpXG4iCi0jICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgeyR2YXJzKGhpZ2hfdGltaW5nX2VmZm9ydCkgJiYgW3JlZ2V4cCAiOS4xIiAkdmFycyh2ZXJzaW9uKV19IHsKLSMgICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKGhpZ2hfdGltaW5nX2VmZm9ydClcbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBhcmdzICJzZXRfZGIgc2lfYWNjZXB0YWJsZV93bnMgMFxuIgotICAgICAgICAgICAgfSBlbHNlaWYge1tpbmZvIGV4aXN0cyB2YXJzKGFjY2VwdGFibGVfd25zKV19IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBhcmdzICJzZXRfZGIgc2lfYWNjZXB0YWJsZV93bnMgJHZhcnMoYWNjZXB0YWJsZV93bnMpXG4iCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiB7JGFyZ3MgIT0gIiJ9IHsKLSAgICAgICAgICAgICAgIHNldCBjb21tYW5kICJzZXRTSU1vZGUgJGFyZ3NcbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCBwb3N0cm91dGVfc2lfaG9sZCxzZXRfc2lfbW9kZSAkY29tbWFuZF0KLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIHskdmFycyhlbmFibGVfc3MpID09ICJwcmVfcG9zdHJvdXRlX3NpIn0gewotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhlbmFibGVfc3MpXG4iCi0gICAgICAgICAgICAgICBzZXQgY29tbWFuZCAic2V0RGVsYXlDYWxNb2RlIC1lbmdpbmUgc2lnbmFsU3Rvcm1cbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCBwb3N0cm91dGVfc2lfaG9sZCxzZXRfZGVsYXlfY2FsX21vZGUgJGNvbW1hbmRdCi0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMoZW5hYmxlX3NzKSBcInByZV9wb3N0cm91dGVfc2lcIlxuIgotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgeyR2YXJzKGVuYWJsZV9vY3YpID09ICJwcmVfcG9zdHJvdXRlX3NpIn0gIHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMoZW5hYmxlX29jdilcbiIKLSAgICAgICAgICAgICAgIGlmIHskdmFycyhmbG93KSAhPSAiZGVmYXVsdCJ9IHsKLSAgICAgICAgICAgICAgICAgIHNldCBjb21tYW5kICJzZXRfZGIgdGltaW5nX2FuYWx5c2lzX3R5cGUgb2N2XG4iCi0gICAgICAgICAgICAgICAgICBpZiB7JHZhcnMoZW5hYmxlX2FvY3YpfSB7Ci0gICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKGVuYWJsZV9hb2N2KVxuIgotICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIi1hb2N2IHRydWUgIgotICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKGVuYWJsZV9hb2N2KVxuIgotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kIHBvc3Ryb3V0ZV9zaV9ob2xkLHNldF9hbmFseXNpc19tb2RlICRjb21tYW5kXQotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKGVuYWJsZV9vY3YpIFwicHJlX3Bvc3Ryb3V0ZV9zaVwiXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhlbmFibGVfb2N2KSBcInRydWVcIlxuIgotICAgICAgICAgICAgfQotICAgICAgICAgfQotCi0gICAgICAgICAic2lnbm9mZiIgewotICAgICAgICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgICAgICAgIyBGb3IgdGhlIGRlZmF1bHQgZmxvdywgc3dpdGNoIHRvIE1NTUMgZm9yIGZpbmFsIFNUQSB0byBzdXBwb3J0Ci0gICAgICAgICAgICAjIG11bHRpcGxlIFJDIGNvcm5lcnMuICBBbHNvLCBlbmFibGUgQ0NFIChzaWdub2ZmKSBleHRyYWN0aW9uIGlmCi0gICAgICAgICAgICAjIHRoZSBRUkMgdGVjaGZpbGUgZXhpc3RzCi0gICAgICAgICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAgICAgICBpZiB7JHZhcnMoZmxvdykgPT0gImRlZmF1bHQifSB7Ci0gICAgICAgICAgICAgICBpZiB7JHZhcnModmVyYm9zZSl9IHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiI1xuIgotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjIDxGRj4gVVBEQVRJTkcgVElNSU5HIEVOVklST05NRU5UIgotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjXG4iCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICBzZXQgY29tbWFuZCBbRkZfTk9WVVM6OmluaXRpYWxpemVfdGltaW5nIG1tbWNdCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgc2lnbm9mZixpbml0aWFsaXplX3RpbWluZyAkY29tbWFuZF0KLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgICAgICAgIyBTZXQgbm9pc2UsIGV4dHJhY3Rpb24sIGFuZCBTSSBvcHRpb25zIC4uLgotICAgICAgICAgICAgIyBFbmFibGUgc2lnbmFsU3Rvcm0gaWYgcmVxdWVzdGVkCi0gICAgICAgICAgICAjIEVuYWJsZSBvbkNoaXBWYXJpYXRpb24gKGlmIE1NTUMpCi0gICAgICAgICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0KLSAgICAgICAgICAgIHNldCBjb21tYW5kICJzZXRfZGIgZXh0cmFjdF9yY19jb3VwbGVkIHRydWVcbiIKLSAgICAgICAgICAgIGlmIHshW2NhdGNoIHtzZXQgYXJnICR2YXJzKHRvdGFsX2NfdGhyZXNoKX1dfSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKHRvdGFsX2NfdGhyZXNoKVxuIgotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgInNldF9kYiBleHRyYWN0X3JjX3RvdGFsX2NhcF90aHJlc2hvbGQgJGFyZ1xuIgotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKHRvdGFsX2NfdGhyZXNoKVxuIgotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgeyFbY2F0Y2gge3NldCBhcmcgJHZhcnMocmVsYXRpdmVfY190aHJlc2gpfV19IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMocmVsYXRpdmVfY190aHJlc2gpXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAic2V0X2RiIGV4dHJhY3RfcmNfcmVsYXRpdmVfY2FwX3RocmVzaG9sZCAkYXJnXG4iCi0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMocmVsYXRpdmVfY190aHJlc2gpXG4iCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiB7IVtjYXRjaCB7c2V0IGFyZyAkdmFycyhjb3VwbGluZ19jX3RocmVzaCl9XX0gewotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhjb3VwbGluZ19jX3RocmVzaClcbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJzZXRfZGIgZXh0cmFjdF9yY19jb3VwbGluZ19jYXBfdGhyZXNob2xkICRhcmdcbiIKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhjb3VwbGluZ19jX3RocmVzaClcbiIKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIHshW2NhdGNoIHtzZXQgYXJnICR2YXJzKHFyY19sYXllcl9tYXApfV19IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMocXJjX2xheWVyX21hcClcbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJzZXRfZGIgZXh0cmFjdF9yY19sZWZfdGVjaF9maWxlX21hcCAkYXJnXG4iCi0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMocXJjX2xheWVyX21hcClcbiIKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJcbiIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCBzaWdub2ZmLHNldF9leHRyYWN0X3JjX21vZGUgJGNvbW1hbmRdCi0KLSAgICAgICAgICAgIHNldCBhcmdzICIiCi0gICAgICAgICAgICBpZiB7IVtjYXRjaCB7c2V0IGFyZyAkdmFycyhkZWx0YV9kZWxheV90aHJlc2hvbGQpfV19IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMoZGVsdGFfZGVsYXlfdGhyZXNob2xkKVxuIgotICAgICAgICAgICAgICAgYXBwZW5kIGFyZ3MgInNldF9kYiBzaV9kZWxheV9kZWx0YV90aHJlc2hvbGQgJGFyZyIKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhkZWx0YV9kZWxheV90aHJlc2hvbGQpXG4iCi0gICAgICAgICAgICB9Ci0jICAgICAgICAgICAgaWYgeyFbY2F0Y2gge3NldCBhcmcgJHZhcnMoY2VsdGljX3NldHRpbmdzKX1dfSB7Ci0jICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhjZWx0aWNfc2V0dGluZ3MpXG4iCi0jICAgICAgICAgICAgICAgYXBwZW5kIGFyZ3MgIiAtaW5zQ2VsdElDUHJlVGNsIFwiJGFyZ1wiIgotIyAgICAgICAgICAgIH0gZWxzZSB7Ci0jICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMoY2VsdGljX3NldHRpbmdzKVxuIgotIyAgICAgICAgICAgIH0KLSMgICAgICAgICAgICBpZiB7IVtjYXRjaCB7c2V0IGFyZyAkdmFycyhzaV9hbmFseXNpc190eXBlKX1dfSB7Ci0jICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhzaV9hbmFseXNpc190eXBlKVxuIgotIyAgICAgICAgICAgICAgIGFwcGVuZCBhcmdzICIgLWFuYWx5c2lzVHlwZSAkYXJnIgotIyAgICAgICAgICAgIH0gZWxzZSB7Ci0jICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMoc2lfYW5hbHlzaXNfdHlwZSlcbiIKLSMgICAgICAgICAgICB9Ci0gICAgICAgICAgICBzZXQgYXJncyAiIgotICAgICAgICAgICAgaWYgeyR2YXJzKGVuYWJsZV9vY3YpICE9ICJmYWxzZSJ9IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMoZW5hYmxlX29jdilcbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBhcmdzICJzZXRfZGIgdGltaW5nX2FuYWx5c2lzX3R5cGUgb2N2XG4iCi0gICAgICAgICAgICAgICBpZiB7JHZhcnMoZW5hYmxlX2FvY3YpfSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKGVuYWJsZV9hb2N2KVxuIgotICAgICAgICAgICAgICAgICAgYXBwZW5kIGFyZ3MgInNldF9kYiB0aW1pbmdfYW5hbHlzaXNfYW9jdiB0cnVlXG4iCi0gICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMoZW5hYmxlX2FvY3YpXG4iCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICBpZiB7JHZhcnMoZW5hYmxlX3NvY3YpfSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKGVuYWJsZV9zb2N2KVxuIgotICAgICAgICAgICAgICAgICAgYXBwZW5kIGFyZ3MgInNldF9kYiB0aW1pbmdfYW5hbHlzaXNfc29jdiB0cnVlXG4iCi0gICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMoZW5hYmxlX3NvY3YpXG4iCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMoZW5hYmxlX29jdikgXCJwcmVfc2lnbm9mZlwiXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhlbmFibGVfYW9jdikgXCJ0cnVlXCJcbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKGVuYWJsZV9zb2N2KSBcInRydWVcIlxuIgotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgeyR2YXJzKGVuYWJsZV9jcHByKSAhPSAiZmFsc2UifSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKGVuYWJsZV9jcHByKVxuIgotICAgICAgICAgICAgICAgYXBwZW5kIGFyZ3MgInNldF9kYiB0aW1pbmdfYW5hbHlzaXNfY3BwciAkdmFycyhlbmFibGVfY3BwcilcbiIKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhlbmFibGVfY3BwcilcbiIKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIHskYXJncyAhPSAiIn0gewotICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgIiRhcmdzXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgc2lnbm9mZixzZXRfYW5hbHlzaXNfbW9kZSAkY29tbWFuZF0KLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIHtbcmVnZXhwICI5LjEiICR2YXJzKHZlcnNpb24pXX0gewotICAgICAgICAgICAgICAgaWYgeyR2YXJzKGVuYWJsZV9zcykgPT0gInByZV9zaWdub2ZmIn0gewotICAgICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgInNldERlbGF5Q2FsTW9kZSAtZW5naW5lIHNpZ25hbFN0b3JtIC1zaWdub2ZmIHRydWVcbiIKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCBzaWdub2ZmLHNldF9kZWxheV9jYWxfbW9kZSAkY29tbWFuZF0KLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMoZW5hYmxlX3NzKVxuIgotICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKGVuYWJsZV9zcykgXCJwcmVfc2lnbm9mZlwiXG4iCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9IGVsc2UgewotIyAgICAgICAgICAgICAgIGlmIHskdmFycyhlbmFibGVfc2lfYXdhcmUpfSB7Ci0jICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhlbmFibGVfc2lfYXdhcmUpXG4iCi0jICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIi1zaUF3YXJlIHRydWUgLWVuZ2luZSBhYWVcbiAiCi0gICAgICAgICAgICAgICAgICBpZiB7JHZhcnMoZW5hYmxlX3NzKSA9PSAicHJlX3NpZ25vZmYifSB7Ci0gICAgICAgICAgICAgICAgICAgICBzZXQgY29tbWFuZCAic2V0RGVsYXlDYWxNb2RlIC1lbmdpbmUgc2lnbmFsU3Rvcm0gLXNpZ25vZmYgdHJ1ZVxuIgotICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kIHNpZ25vZmYsc2V0X2RlbGF5X2NhbF9tb2RlICRjb21tYW5kXQotIyAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiPEZGPiBWYXJpYWJsZSB2YXJzKGVuYWJsZV9zcykgaWdub3JlZCB3aGVuIHZhcnMoZW5hYmxlX3NpX2F3YXJlKSBpcyBzZXRcbiIKLSMgICAgICAgICAgICAgICAgICAgICBzZXQgd2FybmluZ3MoJHZhcnMod2FybmluZ19jb3VudCkpICJWYXJpYWJsZSB2YXJzKGVuYWJsZV9zcykgaWdub3JlZCB3aGVuIHZhcnMoZW5hYmxlX3NpX2F3YXJlKSBpcyBzZXRcbiIKLSMgICAgICAgICAgICAgICAgICAgICBpbmNyIHZhcnMod2FybmluZ19jb3VudCkKLSAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhlbmFibGVfc3MpIFwicHJlX3NpZ25vZmZcIlxuIgotICAgICAgICAgICAgICAgICAgfQotIyAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0jICAgICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMoZW5hYmxlX3NpX2F3YXJlKVxuIgotIyAgICAgICAgICAgICAgICAgIGlmIHskdmFycyhlbmFibGVfc3MpID09ICJwcmVfc2lnbm9mZiJ9IHsKLSMgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKGVuYWJsZV9zcylcbiIKLSMgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiLWVuZ2luZSBzaWduYWxTdG9ybSAtc2lnbm9mZiB0cnVlICIKLSMgICAgICAgICAgICAgICAgICB9IGVsc2UgewotIyAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKGVuYWJsZV9zcykgXCJwcmVfc2lnbm9mZlwiXG4iCi0jICAgICAgICAgICAgICAgICAgfQotIyAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgaWYgeyR2YXJzKHNraXBfc2lnbm9mZl9jaGVja3MpfSB7Ci0gICAgICAgICAgICAgICBzZXQgY29tbWFuZCAic2V0X2RiIGV4dHJhY3RfcmNfZW5naW5lIHBvc3Rfcm91dGVcbnNldF9kYiBleHRyYWN0X3JjX2VmZm9ydF9sZXZlbCAkdmFycyhzaWdub2ZmX2V4dHJhY3Rpb25fZWZmb3J0KVxuc2V0X2RiIGV4dHJhY3RfcmNfY291cGxlZCB0cnVlXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgc2lnbm9mZixzZXRfZXh0cmFjdF9yY19tb2RlICRjb21tYW5kXQotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAic2V0IHZhcnMoYWN0aXZlX3JjX2Nvcm5lcnMpIFxbbGlzdFxdXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgImZvcmVhY2ggdmlldyBcW2FsbF9hbmFseXNpc192aWV3c1xdIHtcbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiICAgc2V0IGNvcm5lciBcW2dldF9kZWxheV9jb3JuZXIgXFtnZXRfYW5hbHlzaXNfdmlldyBcJHZpZXcgLWRlbGF5X2Nvcm5lclxdIC1yY19jb3JuZXJcXVxuIgotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIgICBpZiB7XFtsc2VhcmNoIFwkdmFycyhhY3RpdmVfcmNfY29ybmVycykgXCRjb3JuZXJcXSA9PSAtMSB9IHtcbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiICAgICAgbGFwcGVuZCB2YXJzKGFjdGl2ZV9yY19jb3JuZXJzKSBcJGNvcm5lclxuIgotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIgICB9XG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIn1cbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAicHV0cyBcIjxGRj4gQUNUSVZFIFJDIENPUk5FUiBMSVNUOiBcJHZhcnMoYWN0aXZlX3JjX2Nvcm5lcnMpXCJcbiIKLSAgIAotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJzZXQgZW1wdHlfY29ybmVycyBcW2xpc3RcXVxuIgotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJmb3JlYWNoIGNvcm5lciBcJHZhcnMoYWN0aXZlX3JjX2Nvcm5lcnMpIHtcbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiICAgaWYgeyFcW2ZpbGUgZXhpc3RzIFxbZ2V0X3JjX2Nvcm5lciBcJGNvcm5lciAtcXJjX3RlY2hcXVxdfSB7XG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiAgICAgIGxhcHBlbmQgZW1wdHlfY29ybmVycyBcJGNvcm5lclxuIgotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIgICB9XG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIn1cbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiaWYge1xbbGxlbmd0aCBcJGVtcHR5X2Nvcm5lcnNcXSA9PSAwfSB7XG4iCi0gICAgICAgICAgICAgICBzZXQgY29tbWFuZCAiICAgc2V0X2RiIGV4dHJhY3RfcmNfZW5naW5lIHBvc3Rfcm91dGVcbiAgIHNldF9kYiBleHRyYWN0X3JjX2VmZm9ydF9sZXZlbCAkdmFycyhzaWdub2ZmX2V4dHJhY3Rpb25fZWZmb3J0KVxuICAgc2V0X2RiIGV4dHJhY3RfcmNfY291cGxlZCB0cnVlXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgc2lnbm9mZixzZXRfZXh0cmFjdF9yY19tb2RlICRjb21tYW5kXQotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJ9IGVsc2Uge1xuIgotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIgICAgICBwdXRzIFwiPEZGPiBDQU4nVCBSVU4gU0lHTk9GRiBFWFRSQUNUSU9OIEJFQ0FVU0UgcXhfdGVjaF9maWxlIElTIE5PVCBERUZJTkVEIEZPUiB0aGVzZSBjb3JuZXJzOiBcJGVtcHR5X2Nvcm5lcnNcIlxuIgotICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgIiAgIHNldF9kYiBleHRyYWN0X3JjX2VuZ2luZSBwb3N0X3JvdXRlXG4gICBzZXRfZGIgZXh0cmFjdF9yY19lZmZvcnRfbGV2ZWwgbG93XG4gICBzZXRfZGIgZXh0cmFjdF9yY19jb3VwbGVkIHRydWVcbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCBzaWdub2ZmLHNldF9leHRyYWN0X3JjX21vZGUgJGNvbW1hbmRdCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIn1cbiIKLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0KLSAgICAgIH0KLSAgICAgIGlmIHtbaW5mbyBleGlzdHMgdWNvbW1lbnRzXX0gewotICAgICAgICAgaWYgeyR1Y29tbWVudHMgPT0gIiJ9IHsKLSAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyh1Y29tbWVudHMpXX0gewotICAgICAgICAgICAgICAgdW5zZXQgdmFycyh1Y29tbWVudHMpCi0gICAgICAgICAgICB9Ci0gICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgc2V0IHZhcnModWNvbW1lbnRzKSAkdWNvbW1lbnRzCi0gICAgICAgICB9Ci0gICAgICB9Ci0gICAgICBpZiB7W2luZm8gZXhpc3RzIGNvbW1lbnRzXX0gewotICAgICAgICAgaWYgeyRjb21tZW50cyA9PSAiIn0gewotICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGNvbW1lbnRzKV19IHsKLSAgICAgICAgICAgICAgIHVuc2V0IHZhcnMoY29tbWVudHMpCi0gICAgICAgICAgICB9Ci0gICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgc2V0IHZhcnMoY29tbWVudHMpICRjb21tZW50cyAKLSAgICAgICAgIH0KLSAgICAgIH0KLSAgICAgIHJldHVybiAkY29tbWFuZHMKLSAgIH0KLQotICAgcHJvYyBzYXZlX3Jlc3VsdHMge3tzdGVwICIifSB7Zm9ybWF0IDB9fSB7Ci0KLSAgICAgIGdsb2JhbCB2YXJzCi0gICAgICBnbG9iYWwgZXJyb3JzCi0gICAgICBnbG9iYWwgZW52Ci0KLSAgICAgIGlmIHtbcmVnZXhwIHN5bl8gJHN0ZXBdfSB7Ci0gICAgICAgICBzZXQgY29tbWFuZHMgIiIKLSAgICAgICAgIGlmIHskdmFycyhyZXBvcnRfcnVuX3RpbWUpfSB7Ci0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgImZmX3Byb2NzOjpyZXBvcnRfdGltZVxuIgotICAgICAgICAgfQotICAgICAgICAgcmV0dXJuICRjb21tYW5kcwotICAgICAgfQotCi0gICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoaGllcildfSB7Ci0gICAgICAgICBzZXQgaGllciB0cnVlCi0gICAgICB9IGVsc2UgewotICAgICAgICAgc2V0IGhpZXIgZmFsc2UKLSAgICAgIH0KLSAgICAgIGlmIHskc3RlcCAhPSAiIn0gewotICAgICAgICAgc2V0IHZhcnMoc3RlcCkgJHN0ZXAKLSAgICAgIH0KLQotICAgICAgaWYgeyR2YXJzKGRlYnVnKX0gewotICAgICAgICAgcHV0cyAiPERFQlVHPiBTYXZpbmcgcmVzdWx0cyBmb3IgJHZhcnMoc3RlcCkgLi4uIgotICAgICAgfQotCi0gICAgICBzZXQgY29tbWFuZHMgIiIKLSAgICAgIGlmIHskdmFycyhiYXRjaCl9IHsKLQotICAgICAgICAgaWYgeyR2YXJzKHZlcmJvc2UpfSB7Ci0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiNcbiIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyBTQVZJTkcgUkVTVUxUU1xuIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjXG4iCi0gICAgICAgICB9Ci0KLSMgICAgICAgICBpZiB7W3JlZ2V4cCBfaG9sZCAkdmFycyhzdGVwKV0gJiYgKCFbbHNlYXJjaCAkdmFycyhmaXhfaG9sZCkgJHZhcnMoc3RlcCldIDwwKX0gewotIyAgIAotIyAgICAgICAgICAgIGlmIHshJGZvcm1hdH0gewotIyAgICAgICAgICAgICAgIHNldCBjb21tYW5kcyAiIgotIyAgICAgICAgICAgIH0gZWxzZSB7Ci0jICAgICAgICAgICAgICAgaWYgeyR2YXJzKHJlcG9ydF9ydW5fdGltZSl9IHsKLSMgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIkZGX05PVlVTOjpyZXBvcnRfdGltZSAkdmFycyhzdGVwKVxuIgotIyAgICAgICAgICAgICAgIH0KLSMgICAgICAgICAgICB9Ci0jICAgICAgICAgICAgaWYgeyR2YXJzKGNvZGVnZW4pfSB7Ci0jICAgICAgICAgICAgICAgcmV0dXJuICRjb21tYW5kcwotIyAgICAgICAgICAgIH0gZWxzZSB7Ci0jICAgICAgICAgICAgICAgIHVwbGV2ZWwgIzAgZXZhbCAkY29tbWFuZHMKLSMgICAgICAgICAgICB9Ci0jICAgICAgICAgfSAKLQotICAgICAgICAgc2V0IGhlYWRlciAiIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIgotICAgICAgICAgYXBwZW5kIGhlYWRlciAiIyA8RkY+IEdFTkVSQVRJTkcgUkVQT1JUU1xuIgotICAgICAgICAgYXBwZW5kIGhlYWRlciAiIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIgotICAgCi0gICAgICAgICBpZiB7JHZhcnMocmVwb3J0X3Bvd2VyKX0gewotICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKHBvd2VyX2FuYWx5c2lzX3ZpZXcpXSAmJiAoJHZhcnMocG93ZXJfYW5hbHlzaXNfdmlldykgIT0gIiIpfSB7Ci0gICAgICAgICAgICAgICBzZXQgY29tbWFuZCAicmVwb3J0X3Bvd2VyIC12aWV3ICR2YXJzKHBvd2VyX2FuYWx5c2lzX3ZpZXcpIC1vdXRfZmlsZSAkdmFycyhycHRfZGlyKS8kdmFycyhzdGVwKS5wb3dlci5ycHRcbiIKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBzZXQgY29tbWFuZCAicmVwb3J0X3Bvd2VyIC1vdXRfZmlsZSAkdmFycyhycHRfZGlyKS8kdmFycyhzdGVwKS5wb3dlci5ycHRcbiIKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxyZXBvcnRfcG93ZXIgJGNvbW1hbmRdCi0gICAgICAgICB9Ci0gICAKLSAgICAgICAgIGlmIHtbRkY6OmlzX2xwX2Zsb3ddICYmIFtpbmZvIGV4aXN0cyB2YXJzKHBvd2VyX2RvbWFpbnMpXSAmJiBbbGxlbmd0aCAkdmFycyhwb3dlcl9kb21haW5zKV0gPiAxfSB7Ci0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgJGhlYWRlcgotICAgICAgICAgICAgc2V0IGhlYWRlciAiIgotICAgCi0gICAgICAgICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAgICAgICAjIFZlcmlmeSBwb3dlciBkb21haW4KLSAgICAgICAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgIAotIyAgICAgICAgICAgIHNldCBjb21tYW5kICJjaGVja19wb3dlcl9kb21haW5zIC1iaW5kIC1nY29ubiIKLSMgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiIC1pc29fbmV0X3BkICR2YXJzKHJwdF9kaXIpLyR2YXJzKHN0ZXApLmlzb25ldHMucnB0IgotIyAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgLXhfbmV0X3BkICR2YXJzKHJwdF9kaXIpLyR2YXJzKHN0ZXApLnhuZXRzLnJwdFxuIgotCi0jICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICRzdGVwLGNoZWNrX3Bvd2VyX2RvbWFpbiAkY29tbWFuZF0KLSAgIAotICAgICAgICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgICAgICAgIyBSdW4gQ0xQCi0gICAgICAgICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAKLSAgICAgICAgICAgIGlmIHskdmFycyhydW5fY2xwKSAmJiAoW2F1dG9fZXhlY29rIGxlY10gIT0gIiIpfSB7Ci0gICAgICAgICAgICAgICBzZXQgY29tbWFuZCAicnVuX2NscCAiCi0gICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoY2xwX29wdGlvbnMpXX0gewotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgJHZhcnMoY2xwX29wdGlvbnMpCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHN0ZXAscnVuX2NscCAkY29tbWFuZF0KLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBpZiB7IVtpbmZvIGV4aXN0cyB2YXJzKGNscF93YXJuaW5nKV19IHsKLSAgICAgICAgICAgICAgICAgIHB1dHMgIjxGRj4gV0FSTklORzogVU5BQkxFIFRPIFJVTiBDTFAgLi4uIFBMRUFTRSBNQUtFIFNVUkUgSVQgSVMgSU4gWU9VUiBQQVRIIgotICAgICAgICAgICAgICAgICAgc2V0IHZhcnMoY2xwX3dhcm5pbmcpIHRydWUKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0KLQotICAgICAgICAgc2V0IG1hcChpbml0KSB1bnBsYWNlZAotICAgICAgICAgc2V0IG1hcChwbGFjZSkgcGxhY2VkCi0gICAgICAgICBzZXQgbWFwKHBhcnRpdGlvbl9wbGFjZSkgcGxhY2VkCi0gICAgICAgICBzZXQgbWFwKG1vZGVsX2dlbikgcGxhY2VkCi0gICAgICAgICBzZXQgbWFwKGFzc2lnbl9waW4pIHBsYWNlZAotICAgICAgICAgI3NldCBtYXAocGFydGl0aW9uKSB7fQotICAgICAgICAgc2V0IG1hcChwcmVjdHMpIHBsYWNlZAotICAgICAgICAgc2V0IG1hcChjdHMpIGNsb2NrX3N5bnRoZXNpemVkCi0gICAgICAgICBzZXQgbWFwKHBvc3RjdHMpIGNsb2NrX3N5bnRoZXNpemVkCi0gICAgICAgICBzZXQgbWFwKHBvc3RjdHNfaG9sZCkgY2xvY2tfc3ludGhlc2l6ZWQKLSAgICAgICAgIHNldCBtYXAocm91dGUpIGNsb2NrX3N5bnRoZXNpemVkX3JvdXRlZAotICAgICAgICAgc2V0IG1hcChwb3N0cm91dGUpIGNsb2NrX3N5bnRoZXNpemVkX3JvdXRlZAotICAgICAgICAgc2V0IG1hcChwb3N0cm91dGVfaG9sZCkgY2xvY2tfc3ludGhlc2l6ZWRfcm91dGVkCi0gICAgICAgICBzZXQgbWFwKHNpZ25vZmYpIGNsb2NrX3N5bnRoZXNpemVkX3JvdXRlZAotICAgICAgICAgc2V0IG1hcChhc3NlbWJsZSkgcGxhY2VkX3JvdXRlZAotCi0gICAgICAgICBpZiB7JHZhcnMoY2FwdHVyZV9tZXRyaWNzKSAmJiAoJHZhcnMoc3RlcCkgIT0gImRlYnVnIil9IHsKLSAgICAgICAgICAgIGlmIHtbbGluZGV4IFtzcGxpdCAkdmFycyh2ZXJzaW9uKSAiLiJdICAwXSA+IDEzfSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgInBvcF9zbmFwc2hvdF9zdGFja1xuIgotICAgICAgICAgICAgICAgaWYge1tsaW5kZXggW3NwbGl0ICR2YXJzKHZlcnNpb24pICIuIl0gIDBdID4gMTZ9IHsKLSAgICAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgbWFwKCRzdGVwKV19IHsKLSAgICAgICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGNvbXB1dGVfbWV0cmljcyldICYmICR2YXJzKGNvbXB1dGVfbWV0cmljcyl9IHsKLSAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgImNyZWF0ZV9zbmFwc2hvdCAtbmFtZSAkdmFycyhzdGVwKSAtY2F0ZWdvcmllcyBcW2RpY3QgZ2V0IFxbZ2V0X2RiIG1ldHJpY19jYXRlZ29yeV9zdGF0dXNfbWFwXF0gJG1hcCgkc3RlcClcXVxuIgotICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiY3JlYXRlX3NuYXBzaG90IC1uYW1lICR2YXJzKHN0ZXApIC1jYXRlZ29yaWVzIGRlc2lnblxuIgotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgImNyZWF0ZV9zbmFwc2hvdCAtbmFtZSAkdmFycyhzdGVwKSAtY2F0ZWdvcmllcyBkZXNpZ25cbiIKLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgImNyZWF0ZV9zbmFwc2hvdCAtbmFtZSAkdmFycyhzdGVwKSAtY2F0ZWdvcmllcyBkZXNpZ25cbiIKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAicmVwb3J0X21ldHJpYyAtZmlsZSAkdmFycyhycHRfZGlyKS9tZXRyaWNzLmh0bWwgLWZvcm1hdCBodG1sXG4iCi0gICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0gICAKLSAgICAgICAgIGlmIHsoJHN0ZXAgIT0gInBhcnRpdGlvbiIpICYmICgkc3RlcCAhPSAicmVidWRnZXQiKSAmJiAoJHN0ZXAgIT0gImZsZXhpbG0iKX0gewotICAgICAgICAgICAgc2V0IGFyZ3MgIiIKLSAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhzYXZlX3JjKV0gJiYgJHZhcnMoc2F2ZV9yYyl9IHsKLSAgICAgICAgICAgICAgIGlmIHtbcmVnZXhwICJyb3V0ZSIgJHZhcnMoc3RlcCldfSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgYXJncyAiIC1yYyIKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoc2F2ZV9jb25zdHJhaW50cyldICYmICR2YXJzKHNhdmVfY29uc3RyYWludHMpfSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgYXJncyAiIC10Y29uIgotICAgICAgICAgICAgfQotICAgICAKLSAgICAgICAgICAgICMgQkNMOiBBZGRlZCBzdWJzdCBhcm91bmQgdmFycyhkYnNfZGlyKSB0byByZXNvbHZlIHZhcnMocnVuZGlyKQotICAgICAgICAgICAgc2V0IGRpciBbc3Vic3QgJHZhcnMoZGJzX2RpcildCi0gICAgICAgICAgICBzZXQgZGVzaWduICR2YXJzKGRlc2lnbikKLSAgICAgICAgICAgIGlmIHtbc3RyaW5nIGNvbXBhcmUgLW5vY2FzZSAkdmFycyhkYnNfZm9ybWF0KSAib2EiXT09MH0gewotICAgICAgICAgICAgICAgaWYge1tsaW5kZXggW3NwbGl0ICR2YXJzKHZlcnNpb24pICIuIl0gIDBdID4gMTB9IHsKLSAgICAgICAgICAgICAgICAgIGlmIHskaGllcn0gewotICAgICAgICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgIndyaXRlX2RiICRhcmdzIC1vYV9saWJfY2VsbF92aWV3IHskdmFycyhvYV9wYXJ0aXRpb25fbGliKSAkdmFycyhkZXNpZ24pICR2YXJzKHN0ZXApfVxuIgotICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgIHNldCBjb21tYW5kICJ3cml0ZV9kYiAkYXJncyAtb2FfbGliX2NlbGxfdmlldyB7JHZhcnMob2FfZGVzaWduX2xpYikgJHZhcnMoZGVzaWduKSAkdmFycyhzdGVwKX1cbiIKLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIH0gCi0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKHJlbGF0aXZlX3BhdGgpXSAmJiAkdmFycyhyZWxhdGl2ZV9wYXRoKX0gewotICAgICAgICAgICAgICAgICAgYXBwZW5kIGFyZ3MgIiAtcmVsYXRpdmVfcGF0aCIKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhhYnNvbHV0ZV9saWJfcGF0aCldICYmICR2YXJzKGFic29sdXRlX2xpYl9wYXRoKX0gewotICAgICAgICAgICAgICAgICAgYXBwZW5kIGFyZ3MgIiAtYWJzb2x1dGVfbGliX3BhdGgiCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICBzZXQgY29tbWFuZCAid3JpdGVfZGIgJGFyZ3MgJGRpci8kdmFycyhzdGVwKS5lbmNcbiIKLSAgICAgICAgICAgIH0KLSAgIAotICAgICAgICAgICAgaWYgeyEoKCR2YXJzKHN0ZXApID09ICJtb2RlbF9nZW4iKSAmJiAkdmFycyh1c2VfZmxleG1vZGVscykgJiYgJHZhcnMoZmxleG1vZGVsX2FydF9iYXNlZCkpfSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHN0ZXAsc2F2ZV9kZXNpZ24gJGNvbW1hbmRdCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHN0ZXAsc2F2ZV9sZWNfbmV0bGlzdCAid3JpdGVfbmV0bGlzdCAkdmFycyhkYnNfZGlyKS9MRUMvJHN0ZXAudi5nelxuIl0KLSAgICAgICAgICAgIH0KLSAgIAotICAgICAgICAgfQotCi0gICAgICAgICBpZiB7IVtpbmZvIGV4aXN0cyBlbnYoVlBBVEgpXX0gewotICAgICAgICAgICAgc2V0IGVudihWUEFUSCkgIm1ha2UiCi0gICAgICAgICB9Ci0KLSAgICAgICAgIGlmIHshJHZhcnMoZ2VuZXJhdGVfZmxvd19zdGVwcyl9IHsKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiaWYge1xbaW5mbyBleGlzdHMgZW52KFZQQVRIKVxdfSB7IgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJleGVjIC9iaW4vdG91Y2ggXCRlbnYoVlBBVEgpLyR2YXJzKHN0ZXApIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJ9XG4iCi0gICAgICAgICB9Ci0gICAKLSMgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiNcbiIKLSMgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgSE9VU0VLRUVQSU5HXG4iCi0jICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjXG4iCi0gICAKLSAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhtYWlsLHRvKV19IHsKLSAgICAgICAgICAgIHN3aXRjaCAkdmFycyhzdGVwKSB7Ci0gICAgICAgICAgICAgICBpbml0ICAgICB7IHNldCBzdW1tYXJ5X2ZpbGUgcHJlcGxhY2Uuc3VtbWFyeSB9Ci0gICAgICAgICAgICAgICBhc3NlbWJsZSB7IHNldCBzdW1tYXJ5X2ZpbGUgc2lnbm9mZi5zdW1tYXJ5IH0KLSAgICAgICAgICAgICAgIGRlZmF1bHQgIHsgc2V0IHN1bW1hcnlfZmlsZSAkdmFycyhzdGVwKS5zdW1tYXJ5IH0KLSAgICAgICAgICAgIH0gCi0gICAgICAgICAgICBpZiB7IVtpbmZvIGV4aXN0cyB2YXJzKG1haWwsc3RlcHMpXSB8fCBcCi0gICAgICAgICAgICAgICAgKFtpbmZvIGV4aXN0cyB2YXJzKG1haWwsc3RlcHMpXSAmJiAoW2xzZWFyY2ggJHZhcnMobWFpbCxzdGVwcykgJHZhcnMoc3RlcCldICE9IC0xKSl9IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAicHV0cyBcIjxGRj4gTUFJTElORyBSRVNVTFRTIFRPICR2YXJzKG1haWwsdG8pXCJcbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiaWYge1xbZmlsZSBleGlzdHMgJHZhcnMocnB0X2RpcikvJHN1bW1hcnlfZmlsZVxdfSB7XG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiAgIGV4ZWMgL2Jpbi9tYWlsIC1zIFwiRkY6ICR2YXJzKGRlc2lnbiksICR2YXJzKHN0ZXApIGNvbXBsZXRlZCAoXFtwd2RcXSlcIiA8ICR2YXJzKHJwdF9kaXIpLyRzdW1tYXJ5X2ZpbGUgJHZhcnMobWFpbCx0bylcbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAifSBlbHNlaWYge1xbZmlsZSBleGlzdHMgJHZhcnMocnB0X2RpcikvJHtzdW1tYXJ5X2ZpbGV9Lmd6XF19IHtcbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiICAgZ3VuemlwIC1jICR2YXJzKHJwdF9kaXIpLyR7c3VtbWFyeV9maWxlfS5neiBcfCBleGVjIC9iaW4vbWFpbCAtcyBcIkZGOiAkdmFycyhkZXNpZ24pLCAkdmFycyhzdGVwKSBjb21wbGV0ZWQgKFxbcHdkXF0pXCIgJHZhcnMobWFpbCx0bylcbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAifSBlbHNlIHtcbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiICAgZXhlYyAvYmluL21haWwgLXMgXCJGRjogJHZhcnMoZGVzaWduKSwgJHZhcnMoc3RlcCkgY29tcGxldGVkIChcW3B3ZFxdKVwiIDwgL2Rldi9udWxsICR2YXJzKG1haWwsdG8pXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIn1cbiIKLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0KLSAgIAotIyAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiZXhlYyAvYmluL3RvdWNoIFwkZW52KFZQQVRIKS8kdmFycyhzdGVwKVxuIgotICAgCi0gICAgICAgICBpZiB7JGZvcm1hdH0gewotICAgICAgICAgICAgaWYgeyR2YXJzKHJlcG9ydF9ydW5fdGltZSl9IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiZmZfcHJvY3M6OnJlcG9ydF90aW1lXG4iCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiB7JHZhcnMoY2FwdHVyZV9tZXRyaWNzKX0gewotICAgICAgICAgICAgICAgaWYge1tsaW5kZXggW3NwbGl0ICR2YXJzKHZlcnNpb24pICIuIl0gIDBdIDwgMTR9IHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbZXZhbCBGRjo6Y2FwdHVyZV9tZXRyaWNzXQotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAgfQotICAgCi0gICAgICAgICBpZiB7JHZhcnMoZW5hYmxlX3Fvcl9jaGVjayl9IHsKLSMgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJHN0ZXAscW9yX3RjbF19IHsKLSMgICAgICAgICAgICAgICBzZXQgcW9yX2ZpbGUgJHZhcnMoJHN0ZXAscW9yX3RjbCkKLSMgICAgICAgICAgICAgICBpZiB7W2ZpbGUgZXhpc3RzICRxb3JfZmlsZV19IHsKLSMgICAgICAgICAgICAgICAgICBzZXQgcW9yIFtjYXRjaCB7ZXhlYyAkcW9yX2ZpbGV9IG1zZ10KLSMgICAgICAgICAgICAgICAgICBzZXQgbWFrZV9maWxlIFtvcGVuICR0aGlzX3NlbWFwaG9yZSB3XQotIyAgICAgICAgICAgICAgICAgIHB1dHMgJG1ha2VfZmlsZSAiJHFvciIKLSMgICAgICAgICAgICAgICAgICBjbG9zZSAkbWFrZV9maWxlCi0jICAgICAgICAgICAgICAgfQotIyAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkc3RlcCxxb3JfdGNsKV19IHsKLSAgICAgICAgICAgICAgIGlmIHtbZmlsZSBleGlzdHMgJHZhcnMoJHN0ZXAscW9yX3RjbCldfSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjpzb3VyY2VfcGx1ZyAke3N0ZXB9LHFvcl90Y2xdCi0gICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICI8RkY+IFdBUk5JTkc6IFFPUiBmaWxlICR2YXJzKCRzdGVwLHFvcl90Y2wpIGRvZXMgbm90IGV4aXN0IgotICAgICAgICAgICAgICAgICAgc2V0IHdhcm5pbmdzKCR3YXJuaW5nX2NvdW50KSAiV0FSTklORzogUU9SIGZpbGUgJHZhcnMoJHN0ZXAscW9yX3RjbCkgZG9lcyBub3QgZXhpc3QiCi0gICAgICAgICAgICAgICAgICBpbmNyIHdhcm5pbmdfY291bnQKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBpZiB7JHZhcnMobWFrZWZpbGUpICYmICEkdmFycyhnZW5lcmF0ZV9mbG93X3N0ZXBzKX0gewotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJcbmlmIHtcW2luZm8gZXhpc3RzIGVudihWUEFUSClcXX0ge1xuIgotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIgICBleGVjIC9iaW4vdG91Y2ggXCRlbnYoVlBBVEgpLyR7c3RlcH1fcW9yXG4iCi0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIn1cbiIKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0KLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OnNvdXJjZV9wbHVnIGZpbmFsX2Fsd2F5c19zb3VyY2VfdGNsXQotCi0gICAgICB9IGVsc2UgewotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJwdXRzIFwiPEZGPiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XCJcbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAicHV0cyBcIjxGRj4gSU5GTzogUnVubmluZyBpbiBpbnRlcmFjdGl2ZSBtb2RlIC4uLlwiXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgInB1dHMgXCI8RkY+ICAgICAgIFBsZWFzZSBydW4gJ0ZGX05PVlVTOjpzYXZlX3Jlc3VsdHMgPGN1cnJlbnRfc3RlcD4nIFwiXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgInB1dHMgXCI8RkY+ICAgICAgIHRvIHByZXBhcmUgYSBkYXRhYmFzZSBmb3IgdGhlIG5leHQgc3RlcFwiXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgInB1dHMgXCI8RkY+ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cIlxuIgotICAgICAgICAgaWYgeyR2YXJzKG1ha2VmaWxlKSAmJiAhJHZhcnMoZ2VuZXJhdGVfZmxvd19zdGVwcyl9IHsgCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgImlmIHtcW2luZm8gZXhpc3RzIGVudihWUEFUSClcXX0ge1xuIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJleGVjIC9iaW4vdG91Y2ggXCRlbnYoVlBBVEgpLyR2YXJzKHN0ZXApXG4iCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIn1cbiIKLSAgICAgICAgIH0KLSAgICAgIH0KLQotICAgICAgaWYgeyR2YXJzKGNvZGVnZW4pfSB7Ci0gICAgICAgICByZXR1cm4gJGNvbW1hbmRzCi0gICAgICB9IGVsc2UgewotICAgICAgICAgdXBsZXZlbCAjMCBldmFsICRjb21tYW5kcwotICAgICAgfQotCi0gICB9Ci0KLSAgIHByb2MgaW5pdGlhbGl6ZV9tdWx0aWNwdSB7fSB7Ci0KLSAgIGdsb2JhbCB2YXJzCi0KLSAgICAgIHNldCBjb21tYW5kcyAiIgotIyAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiI1xuIgotIyAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgU0VUVElORyBVUCBNVUxUSSBQUk9DRVNTIERJU1RSSUJVVElPTiBBTkQgVEhSRUFESU5HXG4iCi0jICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjXG4iCi0KLSAgICAgIGdsb2JhbCB2YXJzCi0KLSAgICAgIGlmIHtbcmVnZXhwIHN5bl8gJHZhcnMoc3RlcCldfSB7Ci0gICAgICAgICByZXR1cm4gIiIKLSAgICAgIH0KLQotICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGRpc3RyaWJ1dGVfdGltZW91dCldfSB7Ci0gICAgICAgICBzZXQgY29tbWFuZCAic2V0X2Rpc3RyaWJ1dGVkX2hvc3RzIC10aW1lX291dCAkdmFycyhkaXN0cmlidXRlX3RpbWVvdXQpICIKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgICBzZXQgY29tbWFuZCAic2V0X2Rpc3RyaWJ1dGVkX2hvc3RzICIKLSAgICAgIH0KLQotICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGRpc3RyaWJ1dGUpXX0gewotICAgICAgICAgc3dpdGNoICR2YXJzKGRpc3RyaWJ1dGUpIHsKLSAgICAgICAgICAgICJyc2giIHsKLSMgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIFJVTk5JTkcgUlNIIG9uICR2YXJzKHJzaCxob3N0X2xpc3QpXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiLXJzaCAtYWRkIFxbbGlzdCAkdmFycyhyc2gsaG9zdF9saXN0KVxdXG4iCi0gICAgICAgICAgICAgICBzZXQgdmFycyhyZW1vdGVfaG9zdHMpIFtsbGVuZ3RoICR2YXJzKHJzaCxob3N0X2xpc3QpXQotICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICJsb2NhbCIgewotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIi1sb2NhbFxuIgotICAgICAgICAgICAgfQotICAgICAgICAgICAgImN1c3RvbSIgewotIyAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgUlVOTklORyBDVVNUT00gKCR2YXJzKGN1c3RvbSxzY3JpcHQpKVxuIgotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIi1jdXN0b20gLWN1c3RvbV9zY3JpcHQgeyAkdmFycyhjdXN0b20sc2NyaXB0KSB9XG4iCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICAibHNmIiB7Ci0jICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICBSVU5OSU5HIExTRiAoJHZhcnMobHNmLHF1ZXVlKSwgJHZhcnMobHNmLHJlc291cmNlKSwgJHZhcnMobHNmLGFyZ3MpXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiLWxzZiAtcXVldWUgJHZhcnMobHNmLHF1ZXVlKSAtcmVzb3VyY2UgeyAkdmFycyhsc2YscmVzb3VyY2UpIH0gLWxzZl9hcmdzIHsgJHZhcnMobHNmLGFyZ3MpIH1cbiIKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGRlZmF1bHQgewotICAgICAgICAgICAgICAgIHB1dHMgICI8RkY+IERJU1RSSUJVVElPTiBUWVBFICR2YXJzKGRpc3RyaWJ1dGUpIE5PVCBTVVBQT1JURURcbiIKLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0KLQotIyAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAkY29tbWFuZAotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHNldF9kaXN0cmlidXRlZF9ob3N0cyAkY29tbWFuZF0KLQotICAgICAgICAgc2V0IGNvbW1hbmQgInNldF9tdWx0aV9jcHVfdXNhZ2UgIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIi1sb2NhbF9jcHUgJHZhcnMobG9jYWxfY3B1cykgIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIi1yZW1vdGVfaG9zdCAkdmFycyhyZW1vdGVfaG9zdHMpICIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kICItY3B1X3Blcl9yZW1vdGVfaG9zdCAkdmFycyhjcHVzX3Blcl9yZW1vdGVfaG9zdClcbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxzZXRfbXVsdGlfY3B1X3VzYWdlICRjb21tYW5kXQotCi0gICAgICB9IGVsc2UgewotCi0gICAgICAgICBhcHBlbmQgY29tbWFuZCAiLWxvY2FsXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksc2V0X2Rpc3RyaWJ1dGVkX2hvc3RzICRjb21tYW5kXQotCi0gICAgICAgICBzZXQgY29tbWFuZCAic2V0X211bHRpX2NwdV91c2FnZSAtbG9jYWxfY3B1ICR2YXJzKGxvY2FsX2NwdXMpXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksc2V0X211bHRpX2NwdV91c2FnZSAkY29tbWFuZF0KLQotICAgICAgfQotCi0gICAgICByZXR1cm4gJGNvbW1hbmRzCi0KLSAgIH0KLSAgIHByb2MgZGVyYXRlX3RpbWluZyAge3t0eXBlIG1pbm1heH19IHsKLQotICAgICAgZ2xvYmFsIHZhcnMKLSAgICAgIGdsb2JhbCBlcnJvcnMKLQotIyAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyh2aWV3X2RlZmluaXRpb25fdGNsKV19IHsKLSMgICAgICAgICByZXR1cm4gIiIKLSMgICAgICB9Ci0KLSMgICAgICBpZiB7JHZhcnMoZW5hYmxlX2FvY3YpfSB7Ci0jICAgICAgICAgc2V0IGNvbW1hbmRzICIiCi0jICAgICAgICAgZm9yZWFjaCBjb3JuZXIgJHZhcnMoZGVsYXlfY29ybmVycykgewotIyAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAicmVzZXRfdGltaW5nX2RlcmF0ZSAtZGVsYXlfY29ybmVyICRjb3JuZXJcbiIKLSMgICAgICAgICB9ICAgCi0jICAgICAgICAgcmV0dXJuICRjb21tYW5kcwotIyAgICAgIH0KLQotICAgICAgc2V0IGNvbW1hbmRzICJwdXRzIFwiPEZGPiBERVJBVElORyBERUxBWSBDT1JORVJTIC4uLlwiXG4iCi0gICAgICBpZiB7JHZhcnModmVyYm9zZSl9IHsKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiI1xuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICBERVJBVElORyBERUxBWSBDT1JORVJTICgkdHlwZSkgLi4uXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiNcbiIKLSAgICAgIH0KLSAgICAgIHN3aXRjaCAkdHlwZSB7Ci0gICAgICAgICAibW1tYyIgewotICAgICAgICAgICAgc2V0IGZvdW5kX2Nvcm5lciAwCi0gICAgICAgICAgICBmb3JlYWNoIGNvcm5lciAkdmFycyhkZWxheV9jb3JuZXJzKSB7Ci0gICAgICAgICAgICAgICBzZXQgZGVyYXRlX2ZpbGUgMAotICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQoJGNvcm5lcikgIiIKLSAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkY29ybmVyLGRlcmF0ZV90Y2wpXX0gewotICAgICAgICAgICAgICAgICAgc2V0IGRlcmF0ZV9maWxlIDEKLSAgICAgICAgICAgICAgICAgIGluY3IgZm91bmRfY29ybmVyIDEKLSAgICAgICAgICAgICAgICAgIGlmIHtbZmlsZSBleGlzdHMgJHZhcnMoJGNvcm5lcixkZXJhdGVfdGNsKV19IHsKLSAgICAgICAgICAgICAgICAgICAgIGlmIHskY29tbWFuZCgkY29ybmVyKSA9PSAiIn0gewotICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQoJGNvcm5lcikgW0ZGOjpzb3VyY2VfcGx1ZyAiJGNvcm5lcixkZXJhdGVfdGNsIl0KLSAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIGlmIHshJGRlcmF0ZV9maWxlfSB7Ci0gICAgICAgICAgICAgICAgICBmb3JlYWNoIG9iamVjdCAiY2VsbCBuZXQiIHsKLSAgICAgICAgICAgICAgICAgICAgIGZvcmVhY2ggbW9kZSAiZWFybHkgbGF0ZSIgewotICAgICAgICAgICAgICAgICAgICAgICAgZm9yZWFjaCB0eXBlICJkYXRhIGNsb2NrIiB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJGNvcm5lciwke3R5cGV9XyR7b2JqZWN0fV8ke21vZGV9KV19IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kKCRjb3JuZXIpICIgICBzZXRfdGltaW5nX2RlcmF0ZSAtJHR5cGUgLSR7b2JqZWN0fV9kZWxheSAtJG1vZGUgLWRlbGF5X2Nvcm5lciAkY29ybmVyICR2YXJzKCRjb3JuZXIsJHt0eXBlfV8ke29iamVjdH1fJHttb2RlfSlcbiIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldCBmb3VuZF9jb3JuZXIgMQotICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCRjb3JuZXIsJHtvYmplY3R9XyR7dHlwZX1fJHttb2RlfSldfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCgkY29ybmVyKSAiICAgc2V0X3RpbWluZ19kZXJhdGUgLSR0eXBlIC0ke29iamVjdH1fZGVsYXkgLSRtb2RlIC1kZWxheV9jb3JuZXIgJGNvcm5lciAkdmFycygkY29ybmVyLCR7b2JqZWN0fV8ke3R5cGV9XyR7bW9kZX0pXG4iCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXQgZm91bmRfY29ybmVyIDEKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkY29ybmVyLGNlbGxfY2hlY2tfJHttb2RlfSldfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCgkY29ybmVyKSAiICAgc2V0X3RpbWluZ19kZXJhdGUgLWNlbGxfY2hlY2sgLSRtb2RlIC1kZWxheV9jb3JuZXIgJGNvcm5lciAkdmFycygkY29ybmVyLGNlbGxfY2hlY2tfJHttb2RlfSlcbiIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldCBmb3VuZF9jb3JuZXIgMQotICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCRjb3JuZXIsY2hlY2tfY2VsbF8ke21vZGV9KV19IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kKCRjb3JuZXIpICIgICBzZXRfdGltaW5nX2RlcmF0ZSAtY2VsbF9jaGVjayAtJG1vZGUgLWRlbGF5X2Nvcm5lciAkY29ybmVyICR2YXJzKCRjb3JuZXIsY2hlY2tfY2VsbF8ke21vZGV9KVxuIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0IGZvdW5kX2Nvcm5lciAxCi0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAgICAgICAjIFRoZXJlIGNhbiBvbmx5IGJlIG9uZSBpbG1fbm9uX3NkY19maWxlLCBzbyBuZWVkIHRvIGNvbWJpbmUgdGhlbSB3aXRoIAotICAgICAgICAgICAgIyB0aGUgdGltaW5nIGRlcmF0ZSBjb21tYW5kcyBpZiBib3RoIGV4aXN0cwotICAgICAgICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgICAgICAgaWYgeyRmb3VuZF9jb3JuZXI+MH0gewotICAgICAgICAgICAgICAgaWYgJHZhcnMoaWxtKSB7Ci0gICAgICAgICAgICAgICAgICBzZXQgb3AgW29wZW4gLmlsbV9ub25fc2RjX2ZpbGUudGNsIHddCi0gICAgICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoaWxtX25vbl9zZGNfZmlsZSldICYmIFtmaWxlIGV4aXN0cyAkdmFycyhpbG1fbm9uX3NkY19maWxlKV19IHsgCi0gICAgICAgICAgICAgICAgICAgICBzZXQgZmhyIFtvcGVuICR2YXJzKGlsbV9ub25fc2RjX2ZpbGUpIHJdCi0gICAgICAgICAgICAgICAgICAgICBwdXRzICRvcCAiIyIKLSAgICAgICAgICAgICAgICAgICAgIHB1dHMgJG9wICIjIENvbnRlbnRzIG9mICR2YXJzKGlsbV9ub25fc2RjX2ZpbGUpIgotICAgICAgICAgICAgICAgICAgICAgcHV0cyAkb3AgIiMiCi0gICAgICAgICAgICAgICAgICAgICB3aGlsZSB7W2dldHMgJGZociBsaW5lXT49MH0gewotICAgICAgICAgICAgICAgICAgICAgICAgcHV0cyAkb3AgIiAgICRsaW5lIgotICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgY2xvc2UgJGZocgotICAgICAgICAgICAgICAgICAgICAgcHV0cyAkb3AgIiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIKLSAgICAgICAgICAgICAgICAgICAgIHNldCB2YXJzKHNhdmVfaWxtX25vbl9zZGNfZmlsZSkgJHZhcnMoaWxtX25vbl9zZGNfZmlsZSkKLSAgICAgICAgICAgICAgICAgICAgIHVuc2V0IHZhcnMoaWxtX25vbl9zZGNfZmlsZSkKLSAgICAgICAgICAgICAgICAgIH0gCi0gICAgICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoZGVyYXRlX3RjbCldfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBwdXRzICRvcCAic291cmNlICR2YXJzKGRlcmF0ZV90Y2wpIgotICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgIGZvcmVhY2ggY29ybmVyICR2YXJzKGRlbGF5X2Nvcm5lcnMpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHB1dHMgJG9wICRjb21tYW5kKCRjb3JuZXIpCi0gICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICBjbG9zZSAkb3AKLSMgICAgICAgICAgICAgICAgICBpZiB7W2xpbmRleCBbc3BsaXQgJHZhcnModmVyc2lvbikgIi4iXSAgMF0gPD0gMTB9IHsKLSMgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgImxvYWRUaW1pbmdDb24gLWlsbU5vblNkY0ZpbGUgLmlsbV9ub25fc2RjX2ZpbGUudGNsXG4iCi0jICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSMgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgInNldElsbU5vblNkY0NvbnN0cmFpbnRGaWxlIC5pbG1fbm9uX3NkY19maWxlLnRjbFxuIgotIyAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoZGVyYXRlX3RjbCldfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjpzb3VyY2VfcGx1ZyBkZXJhdGVfdGNsXQotICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJcbiIKLSAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgInNldCBhY3RpdmVfY29ybmVycyBcW2FsbF9kZWxheV9jb3JuZXJzXF1cbiIKLSAgICAgICAgICAgICAgICAgICAgIGZvcmVhY2ggY29ybmVyICR2YXJzKGRlbGF5X2Nvcm5lcnMpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIHskY29tbWFuZCgkY29ybmVyKSAhPSAiIn0gewotICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJpZiB7XFtsc2VhcmNoIFwkYWN0aXZlX2Nvcm5lcnMgJGNvcm5lclxdICE9IC0xfSB7XG4iCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgJGNvbW1hbmQoJGNvcm5lcikKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAifVxuIgotICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhkZXJhdGVfdGNsKV19IHsKLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OnNvdXJjZV9wbHVnIGRlcmF0ZV90Y2xdCi0gICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIlxuIgotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAgfQotICAgICAgICAgIm1pbm1heCIgewotCi0gICAgICAgICAgICBzZXQgY29ybmVycyhtaW4pICR2YXJzKCR2YXJzKGRlZmF1bHRfaG9sZF92aWV3KSxkZWxheV9jb3JuZXIpCi0gICAgICAgICAgICBzZXQgY29ybmVycyhtYXgpICR2YXJzKCR2YXJzKGRlZmF1bHRfc2V0dXBfdmlldyksZGVsYXlfY29ybmVyKQotCi0gICAgICAgICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgICAgICAgIyBEZXJhdGUgdGltaW5nIGlmIGRlcmF0aW5nIGZhY3RvcnMgYXJlIGRlZmluZWQKLSAgICAgICAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAgICAgICBmb3JlYWNoIG9iamVjdCAiY2VsbCBuZXQiIHsKLSAgICAgICAgICAgICAgIGZvcmVhY2ggY29ybmVyICJtaW4gbWF4IiB7Ci0gICAgICAgICAgICAgICAgICBmb3JlYWNoIHR5cGUgImRhdGEgY2xvY2siIHsKLSAgICAgICAgICAgICAgICAgICAgIGZvcmVhY2ggbW9kZSAiZWFybHkgbGF0ZSIgewotICAgICAgICAgICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCRjb3JuZXJzKCRjb3JuZXIpLCR7dHlwZX1fJHtvYmplY3R9XyR7bW9kZX0pXX0gewotICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJzZXRfdGltaW5nX2RlcmF0ZSAtJGNvcm5lciAtJHR5cGUgLSR7b2JqZWN0fV9kZWxheSAtJG1vZGUgJHZhcnMoJGNvcm5lcnMoJGNvcm5lciksJHt0eXBlfV8ke29iamVjdH1fJHttb2RlfSlcbiIKLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkY29ybmVycygkY29ybmVyKSwke29iamVjdH1fJHt0eXBlfV8ke21vZGV9KV19IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAic2V0X3RpbWluZ19kZXJhdGUgLSRjb3JuZXIgLSR0eXBlIC0ke29iamVjdH1fZGVsYXkgLSRtb2RlICR2YXJzKCRjb3JuZXJzKCRjb3JuZXIpLCR7b2JqZWN0fV8ke3R5cGV9XyR7bW9kZX0pXG4iCi0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBmb3JlYWNoIGNvcm5lciAibWluIG1heCIgewotICAgICAgICAgICAgICAgZm9yZWFjaCBtb2RlICJlYXJseSBsYXRlIiB7Ci0gICAgICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJGNvcm5lcnMoJGNvcm5lciksY2VsbF9jaGVja18ke21vZGV9KV19IHsKLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAic2V0X3RpbWluZ19kZXJhdGUgLWNlbGxfY2hlY2sgLSRtb2RlICR2YXJzKCRjb3JuZXJzKCRjb3JuZXIpLGNlbGxfY2hlY2tfJHttb2RlfSlcbiIKLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkY29ybmVycygkY29ybmVyKSxjaGVja19jZWxsXyR7bW9kZX0pXX0gewotICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJzZXRfdGltaW5nX2RlcmF0ZSAtY2VsbF9jaGVjayAtJG1vZGUgJHZhcnMoJGNvcm5lcnMoJGNvcm5lciksY2hlY2tfY2VsbF8ke21vZGV9KVxuIgotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAgfQotICAgICAgICAgZGVmYXVsdCB7Ci0gICAgICAgICAgICBwdXRzICI8RkY+IElOVkFMSUQgT1BUSU9OIC4uLiBNVVNUIEJFIEVJVEhFUiBtaW5tYXggT1IgbW1tYyIKLSAgICAgICAgIH0KLSAgICAgIH0KLSAgICAgIGlmIHtbbGluZGV4IFtzcGxpdCAkdmFycyh2ZXJzaW9uKSAiLiJdICAwXSA+IDEwfSB7Ci0gICAgICAgICBzZXQgb3AgW29wZW4gJHZhcnMoc2NyaXB0X2RpcikvdGltaW5nZGVyYXRlLnNkYyB3XQotICAgICAgICAgcHV0cyAkb3AgJGNvbW1hbmRzCi0gICAgICAgICBjbG9zZSAkb3AKLSAgICAgICAgIGlmIHshJHZhcnMobm92dXMpICYmIChbZmlsZSB0YWlsIFtmaWxlIGRpcm5hbWUgW3B3ZF1dXSAhPSAiJHZhcnMocGFydGl0aW9uX2RpcikiKX0gewotICAgICAgICAgICAgc2V0IGNvbW1hbmRzICJzb3VyY2UgJHZhcnMoc2NyaXB0X2RpcikvdGltaW5nZGVyYXRlLnNkY1xuIgotICAgICAgICAgfSAKLSAgICAgIH0gCi0gICAgICByZXR1cm4gJGNvbW1hbmRzCi0gICB9Ci0gICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAjIFRoZSBjb2RlIGJlbG93IHVwZGF0ZXMgdGltaW5nIGRlcGVuZGluZyBvbiB3aGV0aGVyIHRoZSBjdXJyZW50IG1vZHVsZSBpcwotICAgIyAtIHRvcCBwYXJ0aXRpb24gaW4gYSBoaWVyYXJjaGljYWwgZmxvdwotICAgIyAtIHBhcnRpdGlvbiBpbiBhIGhpZXJhcmNoaWNhbCBmbG93Ci0gICAjIC0gY2hpcCBvciBibG9jayBpbiBhIGZsYXQgZmxvdwotICAgIyBUaW1pbmcgaXMgdXBkYXRlZCBieSBpbmNyZW1lbnRhbGx5IGFkZGluZyB0aGUgdmFycyhpbmNyX2N0c19zZGMpIHRvIGVhY2gKLSAgICMgY29uc3RyYWludCBtb2RlIHRoYXQgaGFzIG9uZSBkZWZpbmVkCi0gICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0KLSAgIHByb2MgdXBkYXRlX3RpbWluZyB7e3R5cGUgbW1tY30ge3N3aXRjaF90b19wcm9wYWdhdGVkIHRydWV9fSB7Ci0KLSAgICAgIGdsb2JhbCB2YXJzCi0KLSAgICAgIGlmIHshW2luZm8gZXhpc3RzIHZhcnMoY29uc3RyYWludF9tb2RlcyldfSB7Ci0gICAgICAgICByZXR1cm4KLSAgICAgIH0KLQotICAgICAgc2V0IGNvbW1hbmRzICJwdXRzIFwiPEZGPiBVUERBVElORyBUSU1JTkcgLi4uXCJcbiIKLQotICAgICAgc2V0IHB0biBbZmlsZSB0YWlsIFtwd2RdXQotICAgICAgc2V0IHBhcmVudCBbZmlsZSB0YWlsIFtmaWxlIGRpcm5hbWUgW3B3ZF1dXQotICAgICAgc2V0IHVwZGF0ZSB0cnVlCi0gICAgICBzZXQgdG9wIGZhbHNlCi0gICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMocGFydGl0aW9uX2xpc3QpXSAmJiAoJHBhcmVudCA9PSAiJHZhcnMocGFydGl0aW9uX2RpcikiKX0gewotICAgICAgICAgaWYge1tsc2VhcmNoICR2YXJzKHBhcnRpdGlvbl9saXN0KSAkcHRuXSAhPSAtMX0gewotIyAgICAgICAgICAgIHNldCBpbG0gZmFsc2UKLSAgICAgICAgICAgIHNldCB1cGRhdGUgZmFsc2UKLSAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBzZXQgdG9wIHRydWUKLSAgICAgICAgIH0KLSAgICAgIH0KLQotIyAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgSUxNICR2YXJzKGlsbSksIFVQREFURSAkdXBkYXRlXG4iCi0KLSAgICAgIGlmIHskc3dpdGNoX3RvX3Byb3BhZ2F0ZWR9IHsKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAic2V0IG9wIFxbb3BlbiBwcm9wLnNkYyB3XF1cbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAicHV0cyBcJG9wIFwic2V0X3Byb3BhZ2F0ZWRfY2xvY2sgXFxcW2FsbF9jbG9ja3NcXFxdXCJcbiIKLSAgICAgICAgIGlmIHskdmFycyhpbG0pfSB7Ci0gICAgICAgICAgICBpZiB7JHZhcnMoZmxhdCkgIT0gIm5vbmUifSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGX0VESTo6Z2V0X2Nsb2NrX3BvcnRzXQotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAic2V0IGNsb2NrX3BvcnRzIFxbRkZfRURJOjpnZXRfY2xvY2tfcG9ydHNcXVxuIgotICAgICAgICAgICAgfQotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJpZiB7XFtsbGVuZ3RoIFwkY2xvY2tfcG9ydHNcXSA+IDB9IHtcbiIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiICAgZm9yZWFjaCBwb3J0IFwkY2xvY2tfcG9ydHMge1xuIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIgICAgICBwdXRzIFwkb3AgXCJzZXRfcHJvcGFnYXRlZF9jbG9jayBcJHBvcnRcIlxuIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIgICB9XG4iCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIn1cbiIKLSAgICAgICAgIH0KLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiY2xvc2UgXCRvcFxuIgotICAgICAgfQotCi0gICAgICBzd2l0Y2ggJHR5cGUgewotCi0gICAgICAgICAibWlubWF4IiB7Ci0gICAgICAgICAgICBpZiB7JHZhcnMoaWxtKSAmJiAkdXBkYXRlfSB7Ci0gICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoaW5jcl9jdHNfc2RjKV19IHsKLSAgICAgICAgICAgICAgICAgIGZvcmVhY2ggZmlsZSAkdmFycyhpbmNyX2N0c19zZGMpIHsKLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAibG9hZFRpbWluZ0NvbiAtaWxtIC1pbmNyICRmaWxlXG4iCi0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICB9IGVsc2VpZiB7W2luZm8gZXhpc3RzIHZhcnMocG9zdF9jdHNfc2RjKV19IHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJ1bmxvYWRUaW1pbmdDb25cbiIKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAibG9hZFRpbWluZ0NvbiAgW2xpbmRleCAkdmFycyhwb3N0X2N0c19zZGMpIDBdXG4iCi0gICAgICAgICAgICAgICAgICBmb3JlYWNoIHNkYyBbbHJhbmdlICR2YXJzKHBvc3RfY3RzX3NkYykgMSBlbmRdIHsKLSAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJsb2FkVGltaW5nQ29uIC1pbG0gLWluY3IgJHNkY1xuIgotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgaWYgeyRzd2l0Y2hfdG9fcHJvcGFnYXRlZH0gewotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJsb2FkVGltaW5nQ29uIC1pbG0gLWluY3IgcHJvcC5zZGNcbiIKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBpZiB7JHVwZGF0ZX0gewotICAgICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGluY3JfY3RzX3NkYyldfSB7Ci0gICAgICAgICAgICAgICAgICAgICBmb3JlYWNoIGZpbGUgJHZhcnMoaW5jcl9jdHNfc2RjKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgImxvYWRUaW1pbmdDb24gLWluY3IgJGZpbGVcbiIKLSAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIH0gZWxzZWlmIHtbaW5mbyBleGlzdHMgdmFycyhwb3N0X2N0c19zZGMpXX0gewotICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJ1bmxvYWRUaW1pbmdDb25cbiIKLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAibG9hZFRpbWluZ0NvbiBbbGluZGV4ICR2YXJzKHBvc3RfY3RzX3NkYykgMF1cbiIKLSAgICAgICAgICAgICAgICAgICAgIGZvcmVhY2ggc2RjIFtscmFuZ2UgJHZhcnMocG9zdF9jdHNfc2RjKSAxIGVuZF0gewotICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgImxvYWRUaW1pbmdDb24gLWluY3IgJHNkY1xuIgotICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgaWYgeyRzd2l0Y2hfdG9fcHJvcGFnYXRlZH0gewotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJsb2FkVGltaW5nQ29uIC1pbmNyIHByb3Auc2RjXG4iCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0gICAgICAgICAibW1tYyIgewotIyAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyh1cGRhdGVfaW9fbGF0ZW5jeSldICYmICR2YXJzKHVwZGF0ZV9pb19sYXRlbmN5KX0gewotIyAgICAgICAgICAgICAgIHVwZGF0ZV9pb19sYXRlbmN5Ci0jICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgeyRzd2l0Y2hfdG9fcHJvcGFnYXRlZH0gewotICAgICAgICAgICAgICAgc2V0IHByb3Bfc2RjICJwcm9wLnNkYyIKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBzZXQgcHJvcF9zZGMgIiIKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgZm9yZWFjaCBtb2RlICR2YXJzKGNvbnN0cmFpbnRfbW9kZXMpIHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiaWYge1xbbHNlYXJjaCBcW2FsbF9jb25zdHJhaW50X21vZGVzXF0gJG1vZGVcXSAhPSAtMX0ge1xuIgotICAgICAgICAgICAgICAgaWYgeyR1cGRhdGV9IHsKLSAgICAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkbW9kZSxpbmNyX2N0c19zZGMpXX0gewotICAgICAgICAgICAgICAgICAgICAgaWYgeyR2YXJzKGlsbSl9IHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAic2V0IHZhcnMoJG1vZGUscG9zdF9jdHNfc2RjX2xpc3QpIFxbY29uY2F0IFxbZ2V0X2NvbnN0cmFpbnRfbW9kZSAkbW9kZSAtaWxtX3NkY19maWxlc1xdICR2YXJzKCRtb2RlLGluY3JfY3RzX3NkYykgJHByb3Bfc2RjXF1cbiIKLSAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgInNldCB2YXJzKCRtb2RlLHBvc3RfY3RzX3NkY19saXN0KSBcW2NvbmNhdCBcW2dldF9jb25zdHJhaW50X21vZGUgJG1vZGUgLXNkY19maWxlc1xdICR2YXJzKCRtb2RlLGluY3JfY3RzX3NkYykgJHByb3Bfc2RjXF1cbiIKLSAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkbW9kZSxwb3N0X2N0c19zZGMpXX0gewotICAgICAgICAgICAgICAgICAgICAgICAgcHV0cyAgIjxGRj4gV0FSTklORzogQk9USCB2YXJzKCRtb2RlLGluY3JfY3RzX3NkYykgQU5EIHZhcnMoJG1vZGUscG9zdF9jdHNfc2RjKSBBUkUgREVGSU5FRCAuLi4iCi0gICAgICAgICAgICAgICAgICAgICAgICBwdXRzICAiPEZGPiAgICAgICAgICBVU0lORyB2YXJzKCRtb2RlLGluY3JfY3RzX3NkYykiCi0gICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCRtb2RlLHBvc3RfY3RzX3NkYyldfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgInNldCB2YXJzKCRtb2RlLHBvc3RfY3RzX3NkY19saXN0KSBcW2NvbmNhdCAkdmFycygkbW9kZSxwb3N0X2N0c19zZGMpICRwcm9wX3NkY1xdXG4iCi0gICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICAgaWYgeyR2YXJzKGlsbSl9IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIHskdmFycyhjdHNfZW5naW5lKSA9PSAiY3RzIiB8fCAoJHZhcnMoc3RlcCkgPT0gImFzc2VtYmxlIil9IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAic2V0IHZhcnMoJG1vZGUscG9zdF9jdHNfc2RjX2xpc3QpIFxbY29uY2F0IFxbZ2V0X2NvbnN0cmFpbnRfbW9kZSAkbW9kZSAtaWxtX3NkY19maWxlc1xdICRwcm9wX3NkY1xdXG4iCi0gICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgeyR2YXJzKHN0ZXApICE9ICJhc3NlbWJsZSJ9IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAiIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIHskdmFycyhjdHNfZW5naW5lKSA9PSAiY3RzIiB8fCAoJHZhcnMoc3RlcCkgPT0gImFzc2VtYmxlIil9IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAic2V0IHZhcnMoJG1vZGUscG9zdF9jdHNfc2RjX2xpc3QpIFxbY29uY2F0IFxbZ2V0X2NvbnN0cmFpbnRfbW9kZSAkbW9kZSAtc2RjX2ZpbGVzXF0gJHByb3Bfc2RjXF1cbiIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiB7JHZhcnMoc3RlcCkgIT0gImFzc2VtYmxlIn0gewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICIiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgaWYgeyR2YXJzKGlsbSl9IHsKLSAgICAgICAgICAgICAgICAgICAgIGlmIHskdmFycyhjdHNfZW5naW5lKSA9PSAiY3RzIn0gewotICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJzZXQgdmFycygkbW9kZSxwb3N0X2N0c19zZGNfbGlzdCkgXFtjb25jYXQgXFtnZXRfY29uc3RyYWludF9tb2RlICRtb2RlIC1pbG1fc2RjX2ZpbGVzXF0gJHByb3Bfc2RjXF1cbiIKLSAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiB7W3JlZ2V4cCAiXmFzc2VtYmxlIiAkdmFycyhzdGVwKV19IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICIiCi0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgaWYgeyR2YXJzKGN0c19lbmdpbmUpID09ICJjdHMifSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgInNldCB2YXJzKCRtb2RlLHBvc3RfY3RzX3NkY19saXN0KSBcW2NvbmNhdCBcW2dldF9jb25zdHJhaW50X21vZGUgJG1vZGUgLXNkY19maWxlc1xdICRwcm9wX3NkY1xdXG4iCi0gICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotIyAgICAgICAgICAgICAgICAgICAgICAgIGlmIHtbcmVnZXhwICJeYXNzZW1ibGUiICR2YXJzKHN0ZXApXX0gewotICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gIiIKLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAifVxuIgotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBpZiB7ISR2YXJzKGlsbSl9IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAic2V0IHJlc3RvcmUgXFtnZXRfZGIgdGltaW5nX2RlZmVyX21tbWNfb2JqX3VwZGF0ZXNcXVxuIgotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJzZXRfZGIgdGltaW5nX2RlZmVyX21tbWNfb2JqX3VwZGF0ZXMgdHJ1ZVxuIgotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBpZiB7JHZhcnMoaWxtKX0gewotICAgICAgICAgICAgICAgZXhlYyAvYmluL3RvdWNoIGVtcHR5LnNkYwotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJmb3JlYWNoIG1vZGUgXFthbGxfY29uc3RyYWludF9tb2Rlc1xdIHtcbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiICAgaWYge1xbaW5mbyBleGlzdHMgdmFycyhcJG1vZGUscG9zdF9jdHNfc2RjX2xpc3QpXF19IHtcbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiICAgICAgdXBkYXRlX2NvbnN0cmFpbnRfbW9kZSAtbmFtZSBcJG1vZGUgLWlsbV9zZGNfZmlsZXMgXCR2YXJzKFwkbW9kZSxwb3N0X2N0c19zZGNfbGlzdClcbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiICAgfSBlbHNlIHtcbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiICAgICAgZm9yZWFjaCB2aWV3IFxbYWxsX2FuYWx5c2lzX3ZpZXdzXSB7XG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiAgICAgICAgIHNldCBtIFxbcmVnc3ViIF9cJHZpZXcgXCRtb2RlIFwiXCJcXVxuIgotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIgICAgICAgICBpZiB7XFtpbmZvIGV4aXN0cyB2YXJzKFwkbSxwb3N0X2N0c19zZGNfbGlzdClcXX0ge1xuIgotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIgICAgICAgICAgICB1cGRhdGVfY29uc3RyYWludF9tb2RlIC1uYW1lIFwkbW9kZSAtaWxtX3NkY19maWxlcyBcJHZhcnMoXCRtLHBvc3RfY3RzX3NkY19saXN0KVxuIgotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIgICAgICAgICB9XG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiAgICAgIH0gXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiAgIH0gXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIn0gXG4iCi0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJmb3JlYWNoIG1vZGUgXFthbGxfY29uc3RyYWludF9tb2Rlc1xdIFx7XG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiAgIGlmIFx7XFtpbmZvIGV4aXN0cyB2YXJzKFwkbW9kZSxwb3N0X2N0c19zZGNfbGlzdClcXVx9IFx7XG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiAgICAgIHVwZGF0ZV9jb25zdHJhaW50X21vZGUgLW5hbWUgXCRtb2RlIC1zZGNfZmlsZXMgXCR2YXJzKFwkbW9kZSxwb3N0X2N0c19zZGNfbGlzdClcbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiICAgXH0gZWxzZSBce1xuIgotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIgICAgICBmb3JlYWNoIHZpZXcgXFthbGxfYW5hbHlzaXNfdmlld3NdIFx7XG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiAgICAgICAgIHNldCBtIFxbcmVnc3ViIF9cJHZpZXcgXCRtb2RlIFwiXCJcXVxuIgotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIgICAgICAgICBpZiBce1xbaW5mbyBleGlzdHMgdmFycyhcJG0scG9zdF9jdHNfc2RjX2xpc3QpXF1cfSBce1xuIgotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIgICAgICAgICAgICB1cGRhdGVfY29uc3RyYWludF9tb2RlIC1uYW1lIFwkbW9kZSAtc2RjX2ZpbGVzIFwkdmFycyhcJG0scG9zdF9jdHNfc2RjX2xpc3QpXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiAgICAgICAgIFx9XG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiAgICAgIFx9IFxuIgotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIgICBcfSBcbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiXH0gXG4iCi0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGlmIHshJHZhcnMoaWxtKX0gewotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJzZXRfYW5hbHlzaXNfdmlldyAtdXBkYXRlX3RpbWluZ1xuIgotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJzZXRfZGIgdGltaW5nX2RlZmVyX21tbWNfb2JqX3VwZGF0ZXMgXCRyZXN0b3JlXG4iCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBzZXQgdGhpc19pbmRleCBbbHNlYXJjaCAkdmFycyhzdGVwcykgJHZhcnMoc3RlcCldCi0gICAgICAgICAgICBzZXQgcHJpb3IgW2xpbmRleCAkdmFycyhzdGVwcykgW2V4cHIgJHRoaXNfaW5kZXggLSAxXV0KLSAgICAgICAgICAgICMgQkNMOiBBZGRlZCBzdWJzdCBhcm91bmQgdmFycyhkYnNfZGlyKQotICAgICAgICAgICAgaWYge1tmaWxlIGlzZmlsZSBbc3Vic3QgJHZhcnMoZGJzX2RpcildLyRwcmlvci5lbmMuZGF0L21tbWMvcGF0aGdyb3VwLnNkY119IHsKLSAgICAgICAgICAgICAgICMgQkNMOiBBZGRlZCBzdWJzdCBhcm91bmQgdmFycyhkYnNfZGlyKQotICAgICAgICAgICAgICAgc2V0IHZhcnMocGF0aF9ncm91cF9zZGMpIFtzdWJzdCAkdmFycyhkYnNfZGlyKV0vJHByaW9yLmVuYy5kYXQvbW1tYy9wYXRoZ3JvdXAuc2RjCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgImZmX3Byb2NzOjpsb2FkX3BhdGhfZ3JvdXBzICR2YXJzKHBhdGhfZ3JvdXBfc2RjKVxuIgotICAgICAgICAgICAgfQotICAgICAgICAgfQotICAgICAgICAgZGVmYXVsdCB7Ci0gICAgICAgICAgICBwdXRzICR2YXJzKGNvZGdlbl9sb2cpICI8RkY+IElOVkFMSUQgT1BUSU9OIC4uLiBNVVNUIEJFIEVJVEhFUiBtaW5tYXggT1IgbW1tYyIKLSAgICAgICAgIH0KLSAgICAgIH0KLSAgICAgIHJldHVybiAkY29tbWFuZHMKLSAgIH0KLQotICAgcHJvYyBpbml0aWFsaXplX3RpbWluZyB7e3R5cGUgbW1tY319IHsKLQotICAgICAgZ2xvYmFsIHZhcnMKLSAgICAgIGdsb2JhbCBlbnYKLSAgICAgIGdsb2JhbCBpbml0Ci0gICAgICBnbG9iYWwgd2FybmluZ3MKLQotIyAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyh2aWV3X2RlZmluaXRpb25fdGNsKV19IHsKLSMgICAgICAgICByZXR1cm4gIiIKLSMgICAgICB9Ci0KLSAgICAgIGlmIHskdmFycyh2ZXJib3NlKX0gewotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIElOSVRJQUxJWklORyBbc3RyaW5nIHRvdXBwZXIgJHR5cGVdIFRJTUlOR1xuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjXG4iCi0gICAgICB9Ci0KLSAgICAgIGlmIHskdmFycyhkZWJ1Zyl9IHsKLSAgICAgICAgICBwdXRzICI8REVCVUc+IEV4ZWN1dGluZyBwcm9jOiBpbml0aWFsaXplX3RpbWluZyAuLi4iCi0gICAgICB9Ci0KLSAgICAgIHN3aXRjaCAkdHlwZSB7Ci0gICAgICAgICBtaW5tYXggewotIyAgICAgICAgICAgIGlmIHsoW2xsZW5ndGggJHZhcnMocmNfY29ybmVycyldID4gMSl9IHsKLSMgICAgICAgICAgICAgICBwdXRzICAiPEZGPiBXQVJOSU5HOiBUSEUgXCJkZWZhdWx0XCIgRkxPVyBTSE9VTEQgT05MWSBIQVZFIEEgU0lOR0xFIFJDIENPUk5FUiIKLSMgICAgICAgICAgICAgICBwdXRzICAiPEZGPiAgICAgICAgICBCVVQgW2xsZW5ndGggJHZhcnMocmNfY29ybmVycyldIENPUk5FUlMgQVJFIERFRklORUQgKCR2YXJzKHJjX2Nvcm5lcnMpKSIKLSMgICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICAgICAgICMgRGVmaW5lIFJDIGNvcm5lcnMgYW5kIHNldCB0aGUgYXBwcm9wcmlhdGUgdGVtcGVyYXR1cmVzLiAgVGhpcwotICAgICAgICAgICAgIyByZXF1aXJlcyB0aGF0IHRoZSBjYXAgdGFibGVzIHVzZSAtYmVzdC8td29yc3Qgc3ludGF4IGluIHRoZQotICAgICAgICAgICAgIyBjb25maWd1cmF0aW9uIGZpbGUuICBTY2FsaW5nIGZhY3RvcnMgc2hvdWxkIGJlIGRlcml2ZWQgdXNpbmcKLSAgICAgICAgICAgICMgT3N0cmljaCBWYWx1ZXMgZm9yIHRoZSBkZWZhdWx0IHRpbWluZyBlbnZpcm9ubWVudCBpcyBkZXJpdmVkCi0gICAgICAgICAgICAjIGZyb20gdGhlIGRlZmF1bHQgc2V0dXAgYW5kIGhvbGQgYW5hbHlzaXMgdmlld3MKLSAgICAgICAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLQotICAgICAgICAgICAgc2V0IGNvcm5lcnMobWluKSAkdmFycygkdmFycyhkZWZhdWx0X2hvbGRfdmlldyksZGVsYXlfY29ybmVyKQotICAgICAgICAgICAgc2V0IGNvcm5lcnMobWF4KSAkdmFycygkdmFycyhkZWZhdWx0X3NldHVwX3ZpZXcpLGRlbGF5X2Nvcm5lcikKLSAgICAgICAgICAgIHNldCBjb3JuZXIgJHZhcnMoJGNvcm5lcnMobWF4KSxyY19jb3JuZXIpCi0KLSMgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgZW52KEZGX0tJVF9QQVRIKV19IHsKLSAgICAgICAgICAgIGlmIHshW2NhdGNoIHtzZXQgbWF4ICR2YXJzKCR2YXJzKCRjb3JuZXJzKG1heCkscmNfY29ybmVyKSxUKX1dICYmCi0gICAgICAgICAgICAgICAgIVtjYXRjaCB7c2V0IG1pbiAkdmFycygkdmFycygkY29ybmVycyhtaW4pLHJjX2Nvcm5lciksVCl9XX0gewotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFwKLSAgICAgICAgICAgICAgICAgICJkZWZpbmVSQ0Nvcm5lciAtbGF0ZSB3b3JzdCAkbWF4IC1lYXJseSBiZXN0ICRtaW5cbiIKLSAgICAgICAgICAgIH0KLSMgICAgICAgICAgIH0gZWxzZSB7Ci0jICAgICAgICAgICAgICBwdXRzICI8RkY+IFVTSU5HIFNJTkdMRSBSQyBDT1JORVIgJHZhcnMoJGNvcm5lcnMobWF4KSxyY19jb3JuZXIpIgotIyAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCR2YXJzKCRjb3JuZXJzKG1heCkscmNfY29ybmVyKSxUKV19IHsKLSMgICAgICAgICAgICAgICAgIHNldEV4dHJhY3RSQ01vZGUgLXNjT3BUZW1wICR2YXJzKCR2YXJzKCRjb3JuZXJzKG1heCkscmNfY29ybmVyKSxUKQotIyAgICAgICAgICAgICAgfQotIyAgICAgICAgICAgfQotCi0gICAgICAgICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAgICAgICAjIFNldCBzY2FsaW5nIGZhY3RvcnMgLi4uIGZvciBwcmUtcm91dGUgb3B0aW1pemF0aW9uLCB0aGUgZGV0YWlsZWQKLSAgICAgICAgICAgICMgY2FwIGZhY3RvciBpcyBzZXQgdG8gdGhlIGRldGFpbGVkIGNsb2NrIGNhcCBmYWN0b3IuICBUaGlzIHdpbGwKLSAgICAgICAgICAgICMgYmUgcmVzZXQgcG9zdC1yb3V0ZQotICAgICAgICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCi0gICAgICAgICAgIHNldCBhcmdzICIiCi0gICAgICAgICAgICBpZiB7IVtjYXRjaCB7c2V0IGFyZyAkdmFycygkY29ybmVyLHByZV9yb3V0ZV9yZXNfZmFjdG9yKX1dfSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgYXJncyAiIC1wcmVSb3V0ZV9yZXMgJGFyZyIKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIHshW2NhdGNoIHtzZXQgYXJnICR2YXJzKCRjb3JuZXIscHJlX3JvdXRlX2NhcF9mYWN0b3IpfV19IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBhcmdzICIgLXByZVJvdXRlX2NhcCAkYXJnIgotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgeyFbY2F0Y2gge3NldCBhcmcgJHZhcnMoJGNvcm5lcixwcmVfcm91dGVfY2xrX3Jlc19mYWN0b3IpfV19IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBhcmdzICIgLXByZVJvdXRlX2Nsa3JlcyAkYXJnIgotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgeyFbY2F0Y2gge3NldCBhcmcgJHZhcnMoJGNvcm5lcixwcmVfcm91dGVfY2xrX2NhcF9mYWN0b3IpfV19IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBhcmdzICIgLXByZVJvdXRlX2Nsa2NhcCAkYXJnIgotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgeyFbY2F0Y2gge3NldCBhcmcgJHZhcnMoJGNvcm5lcixwb3N0X3JvdXRlX3Jlc19mYWN0b3IpfV19IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBhcmdzICIgLXBvc3RSb3V0ZV9yZXMgIgotICAgICAgICAgICAgICAgaWYge1tsbGVuZ3RoICRhcmddID4gMX0gewotICAgICAgICAgICAgICAgICAgYXBwZW5kIGFyZ3MgIlwiW2xpbmRleCAkYXJnIDJdLFtsaW5kZXggJGFyZyAxXSxbbGluZGV4ICRhcmcgMF1cIiIKLSAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgYXJncyAkYXJnCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiB7IVtjYXRjaCB7c2V0IGFyZyAkdmFycygkY29ybmVyLHBvc3Rfcm91dGVfY2FwX2ZhY3Rvcil9XX0gewotICAgICAgICAgICAgICAgYXBwZW5kIGFyZ3MgIiAtcG9zdFJvdXRlX2NhcCAiCi0gICAgICAgICAgICAgICBpZiB7W2xsZW5ndGggJGFyZ10gPiAxfSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgYXJncyAiXCJbbGluZGV4ICRhcmcgMl0sW2xpbmRleCAkYXJnIDFdLFtsaW5kZXggJGFyZyAwXVwiIgotICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBhcmdzICRhcmcKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIHshW2NhdGNoIHtzZXQgYXJnICR2YXJzKCRjb3JuZXIscG9zdF9yb3V0ZV9jbGtfcmVzX2ZhY3Rvcil9XX0gewotICAgICAgICAgICAgICAgYXBwZW5kIGFyZ3MgIiAtcG9zdFJvdXRlX2Nsa3JlcyAiCi0gICAgICAgICAgICAgICBpZiB7W2xsZW5ndGggJGFyZ10gPiAxfSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgYXJncyAiXCJbbGluZGV4ICRhcmcgMl0sW2xpbmRleCAkYXJnIDFdLFtsaW5kZXggJGFyZyAwXVwiIgotICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBhcmdzICRhcmcKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIHshW2NhdGNoIHtzZXQgYXJnICR2YXJzKCRjb3JuZXIscG9zdF9yb3V0ZV9jbGtfY2FwX2ZhY3Rvcil9XX0gewotICAgICAgICAgICAgICAgYXBwZW5kIGFyZ3MgIiAtcG9zdFJvdXRlX2Nsa2NhcCAiCi0gICAgICAgICAgICAgICBpZiB7W2xsZW5ndGggJGFyZ10gPiAxfSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgYXJncyAiXCJbbGluZGV4ICRhcmcgMl0sW2xpbmRleCAkYXJnIDFdLFtsaW5kZXggJGFyZyAwXVwiIgotICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBhcmdzICRhcmcKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIHshW2NhdGNoIHtzZXQgYXJnICR2YXJzKCRjb3JuZXIscG9zdF9yb3V0ZV94Y2FwX2ZhY3Rvcil9XX0gewotICAgICAgICAgICAgICAgYXBwZW5kIGFyZ3MgIiAtcG9zdFJvdXRlX3hjYXAgIgotICAgICAgICAgICAgICAgaWYge1tsbGVuZ3RoICRhcmddID4gMX0gewotICAgICAgICAgICAgICAgICAgYXBwZW5kIGFyZ3MgIlwiW2xpbmRleCAkYXJnIDJdLFtsaW5kZXggJGFyZyAxXSxbbGluZGV4ICRhcmcgMF1cIiIKLSAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgYXJncyAkYXJnCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiB7JGFyZ3MgIT0gIiJ9IHsKLSAgICAgICAgICAgICAgIHNldCBjb21tYW5kICJzZXRSQ0ZhY3RvciAkYXJnc1xuIgotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHNldF9yY19mYWN0b3IgJGNvbW1hbmRdCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBzZXQgY29tbWFuZCBbRkZfTk9WVVM6OmRlcmF0ZV90aW1pbmcgbWlubWF4XQotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLGRlcmF0ZV90aW1pbmcgJGNvbW1hbmRdCi0gICAgICAgICB9Ci0gICAgICAgICBtbW1jIHsKLSAgICAgICAgICAgIGlmIHskdmFycyh2ZXJib3NlKX0gewotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIENSRUFUSU5HIFJDIENPUk5FUlMgLi4uXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiNcbiIKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGZvcmVhY2ggcmMgJHZhcnMocmNfY29ybmVycykgewotIyAgICAgICAgICAgICAgIHNldCBjb21tYW5kICJcbiIKLSAgICAgICAgICAgICAgIHNldCBjb21tYW5kICIiCi0gICAgICAgICAgICAgICBzZXQgbm9uX2NvbW1hbmQgIiIKLSAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkcmMsc2NhbGVfdGNsKV19IHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJjcmVhdGVfcmNfY29ybmVyIC1uYW1lICRyYyIKLSMgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiIC1jYXBfdGFibGUgJHZhcnMoJHJjLGNhcF90YWJsZSkgIgotICAgICAgICAgICAgICAgICAgZm9yZWFjaCBvcHRpb24gImNhcF90YWJsZSB0ZW1wZXJhdHVyZSBxcmNfdGVjaCIgewotICAgICAgICAgICAgICAgICAgICAgaWYgeyFbY2F0Y2gge3NldCBhcmcgJHZhcnMoJHJjLCRvcHRpb24pfV19IHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgLSRvcHRpb24gJGFyZyIKLSAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJcbiIKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kIFtGRjo6c291cmNlX3BsdWcgIiRyYyxzY2FsZV90Y2wiXQotICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJjcmVhdGVfcmNfY29ybmVyIC1uYW1lICRyYyIKLSAgICAgICAgICAgICAgICAgIGZvcmVhY2ggb3B0aW9uICJjYXBfdGFibGUgdGVtcGVyYXR1cmUgcXJjX3RlY2giIHsKLSAgICAgICAgICAgICAgICAgICAgIGlmIHshW2NhdGNoIHtzZXQgYXJnICR2YXJzKCRyYywkb3B0aW9uKX1dfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiIC0kb3B0aW9uICRhcmciCi0gICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICB9Ci0jICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIlxuIgotIyAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgLWNhcF90YWJsZSAkdmFycygkcmMsY2FwX3RhYmxlKSAiCi0gICAgICAgICAgICAgICAgICBpZiB7IVtjYXRjaCB7c2V0IGFyZyAkdmFycygkcmMscHJlX3JvdXRlX3Jlc19mYWN0b3IpfV19IHsKLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgLXByZV9yb3V0ZV9yZXMgJGFyZyIKLSAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICBhcHBlbmQgbm9uX2NvbW1hbmQgIiMgLXByZV9yb3V0ZV9yZXMgXCR2YXJzKCRyYyxwcmVfcm91dGVfcmVzX2ZhY3RvcilcbiIKLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIGlmIHshW2NhdGNoIHtzZXQgYXJnICR2YXJzKCRyYyxwcmVfcm91dGVfY2FwX2ZhY3Rvcil9XX0gewotICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAtcHJlX3JvdXRlX2NhcCAkYXJnIgotICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBub25fY29tbWFuZCAiIyAtcHJlX3JvdXRlX2NhcCBcJHZhcnMoJHJjLHByZV9yb3V0ZV9jYXBfZmFjdG9yKVxuIgotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgaWYgeyFbY2F0Y2gge3NldCBhcmcgJHZhcnMoJHJjLHByZV9yb3V0ZV9jbGtfcmVzX2ZhY3Rvcil9XX0gewotICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAtcHJlX3JvdXRlX2Nsb2NrX3JlcyAkYXJnIgotICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBub25fY29tbWFuZCAiIyAtcHJlX3JvdXRlX2Nsb2NrX3JlcyBcJHZhcnMoJHJjLHByZV9yb3V0ZV9jbGtfcmVzX2ZhY3RvcilcbiIKLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIGlmIHshW2NhdGNoIHtzZXQgYXJnICR2YXJzKCRyYyxwcmVfcm91dGVfY2xrX2NhcF9mYWN0b3IpfV19IHsKLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgLXByZV9yb3V0ZV9jbG9ja19jYXAgJGFyZyIKLSAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICBhcHBlbmQgbm9uX2NvbW1hbmQgIiMgLXByZV9yb3V0ZV9jbG9ja19jYXAgXCR2YXJzKCRyYyxwcmVfcm91dGVfY2xrX2NhcF9mYWN0b3IpXG4iCi0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICBpZiB7IVtjYXRjaCB7c2V0IGFyZyAkdmFycygkcmMscG9zdF9yb3V0ZV9yZXNfZmFjdG9yKX1dfSB7Ci0gICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiIC1wb3N0X3JvdXRlX3JlcyAiCi0gICAgICAgICAgICAgICAgICAgICBpZiB7W2xsZW5ndGggJGFyZ10gPiAxfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiXCIkYXJnXCIiCi0gICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgJGFyZwotICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBub25fY29tbWFuZCAiIyAtcG9zdF9yb3V0ZV9yZXMgXCR2YXJzKCRyYyxwb3N0X3JvdXRlX3Jlc19mYWN0b3IpXG4iCi0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICBpZiB7IVtjYXRjaCB7c2V0IGFyZyAkdmFycygkcmMscG9zdF9yb3V0ZV9jYXBfZmFjdG9yKX1dfSB7Ci0gICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiIC1wb3N0X3JvdXRlX2NhcCAiCi0gICAgICAgICAgICAgICAgICAgICBpZiB7W2xsZW5ndGggJGFyZ10gPiAxfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiXCIkYXJnXCIiCi0gICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgJGFyZwotICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBub25fY29tbWFuZCAiIyAtcG9zdF9yb3V0ZV9yZXMgXCR2YXJzKCRyYyxwb3N0X3JvdXRlX2NhcF9mYWN0b3IpXG4iCi0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICBpZiB7IVtjYXRjaCB7c2V0IGFyZyAkdmFycygkcmMscG9zdF9yb3V0ZV9jbGtfcmVzX2ZhY3Rvcil9XX0gewotICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAtcG9zdF9yb3V0ZV9jbG9ja19yZXMgIgotICAgICAgICAgICAgICAgICAgICAgaWYge1tsbGVuZ3RoICRhcmddID4gMX0gewotICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIlwiJGFyZ1wiIgotICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICRhcmcKLSAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICBhcHBlbmQgbm9uX2NvbW1hbmQgIiMgLXBvc3Rfcm91dGVfY2xvY2tfcmVzIFwkdmFycygkcmMscG9zdF9yb3V0ZV9jbGtfcmVzX2ZhY3RvcilcbiIKLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIGlmIHshW2NhdGNoIHtzZXQgYXJnICR2YXJzKCRyYyxwb3N0X3JvdXRlX2Nsa19jYXBfZmFjdG9yKX1dfSB7Ci0gICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiIC1wb3N0X3JvdXRlX2Nsb2NrX2NhcCAiCi0gICAgICAgICAgICAgICAgICAgICBpZiB7W2xsZW5ndGggJGFyZ10gPiAxfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiXCIkYXJnXCIiCi0gICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgJGFyZwotICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBub25fY29tbWFuZCAiIyAtcG9zdF9yb3V0ZV9jbG9ja19jYXAgXCR2YXJzKCRyYyxwb3N0X3JvdXRlX2Nsa19jYXBfZmFjdG9yKVxuIgotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgaWYgeyFbY2F0Y2gge3NldCBhcmcgJHZhcnMoJHJjLHBvc3Rfcm91dGVfY3Jvc3NfY2FwKX1dfSB7Ci0gICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiIC1wb3N0X3JvdXRlX2Nyb3NzX2NhcCAiCi0gICAgICAgICAgICAgICAgICAgICBpZiB7W2xsZW5ndGggJGFyZ10gPiAxfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiXCIkYXJnXCIiCi0gICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgJGFyZwotICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBub25fY29tbWFuZCAiIyAtcG9zdF9yb3V0ZV9jcm9zc19jYXAgXCR2YXJzKCRyYyxwb3N0X3JvdXRlX3hjYXBfZmFjdG9yKVxuIgotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIlxuIgotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLGNyZWF0ZV9yY19jb3JuZXIgJGNvbW1hbmRdCi0gICAgICAgICAgICAgICBpZiB7JG5vbl9jb21tYW5kICE9ICIifSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiIKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyBBZGRpdGlvbmFsICh1bnVzZWQpIG9wdGlvbnMgLi4uLlxuIgotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4iCi0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgJG5vbl9jb21tYW5kCi0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiIKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIHshW2luZm8gZXhpc3RzIHZhcnModmlld19kZWZpbml0aW9uX3RjbCldfSB7Ci0gICAgICAgICAgICAgICBpZiB7IVtpbmZvIGV4aXN0cyB2YXJzKGNwZl9maWxlKV0gfHwgKFtpbmZvIGV4aXN0cyB2YXJzKGNwZl9maWxlKV0gJiYgISR2YXJzKGNwZl90aW1pbmcpKX0gewotICAgICAgICAgICAgICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgICAgICAgICAgICAgIyBDUEZfVElNSU5HID09IEZBTFNFCi0gICAgICAgICAgICAgICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAgICAgICAgICAgICBzZXQgY29tbWFuZCAiIgotICAgICAgICAgICAgICAgICAgaWYgeyR2YXJzKHZlcmJvc2UpfSB7Ci0gICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiI1xuIgotICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiMgPEZGPiBDUkVBVElORyBMSUJSQVJZIFNFVFMgLi4uXG4iCi0gICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiI1xuIgotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICRjb21tYW5kCi0gICAgICAgICAgICAgICAgICBmb3JlYWNoIHNldCAkdmFycyhsaWJyYXJ5X3NldHMpIHsKLSAgICAgICAgICAgICAgICAgICAgIHNldCBjb21tYW5kICIiCi0gICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiY3JlYXRlX2xpYnJhcnlfc2V0IC1uYW1lICRzZXQgLXRpbWluZyBcW2xpc3QgIgotICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiR2YXJzKCRzZXQsdGltaW5nKSAiCi0gICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiXF1cbiIKLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxjcmVhdGVfbGlicmFyeV9zZXQgJGNvbW1hbmRdCi0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMob3Bjb25kcyldfSB7Ci0gICAgICAgICAgICAgICAgICAgICBpZiB7JHZhcnModmVyYm9zZSl9IHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICIjXG4iCi0gICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiIyA8RkY+IENSRUFUSU5HIE9QRVJBVElORyBDT05ESVRJT05TIC4uLlxuIgotICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiNcbiIKLSAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgIGZvcmVhY2ggb3Bjb25kICR2YXJzKG9wY29uZHMpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHNldCBjb21tYW5kICJjcmVhdGVfb3Bjb25kIC1uYW1lICRvcGNvbmQiCi0gICAgICAgICAgICAgICAgICAgICAgICAjIFdlIGFscmVhZHkgY2hlY2tlZCBzbyB3ZSBrbm93IHRoZXNlIG9wdGlvbnMgZXhpc3QKLSAgICAgICAgICAgICAgICAgICAgICAgIHNldCBtYXAoUCkgcHJvY2VzcwotICAgICAgICAgICAgICAgICAgICAgICAgc2V0IG1hcChWKSB2b2x0YWdlCi0gICAgICAgICAgICAgICAgICAgICAgICBzZXQgbWFwKFQpIHRlbXBlcmF0dXJlCi0gICAgICAgICAgICAgICAgICAgICAgICBmb3JlYWNoIG9wdGlvbiAiUCBWIFQiIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgLSRtYXAoJG9wdGlvbikgJHZhcnMoJG9wY29uZCwkb3B0aW9uKSIKLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJcbiIKLSAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxjcmVhdGVfb3Bjb25kICRjb21tYW5kXQotICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgIiIKLSAgICAgICAgICAgICAgICAgIGlmIHskdmFycyh2ZXJib3NlKX0gewotICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiNcbiIKLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICIjIDxGRj4gQ1JFQVRJTkcgREVMQVkgQ09STkVSUyAuLi5cbiIKLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICIjXG4iCi0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgJGNvbW1hbmQKLSAgICAgICAgICAgICAgICAgIGZvcmVhY2ggYyAkdmFycyhkZWxheV9jb3JuZXJzKSB7Ci0gICAgICAgICAgICAgICAgICAgICBzZXQgY29tbWFuZCAiY3JlYXRlX3RpbWluZ19jb25kaXRpb24gLW5hbWUgdF8kYyIKLSAgICAgICAgICAgICAgICAgICAgIHNldCBkY29tbWFuZCAiY3JlYXRlX2RlbGF5X2Nvcm5lciAtbmFtZSAkYyIKLSAgICAgICAgICAgICAgICAgICAgIGlmIHshW2NhdGNoIHtzZXQgYXJnICR2YXJzKCRjLGxpYnJhcnlfc2V0KX1dfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiIC1saWJyYXJ5X3NldCAkYXJnIgotICAgICAgICAgICAgICAgICAgICAgfSBlbHNlaWYgeyFbY2F0Y2gge3NldCBlYXJseSAkdmFycygkYyxlYXJseV9saWJyYXJ5X3NldCl9XSAmJgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICFbY2F0Y2gge3NldCBsYXRlICR2YXJzKCRjLGxhdGVfbGlicmFyeV9zZXQpfV19IHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgLWVhcmx5X2xpYnJhcnlfc2V0ICRlYXJseSIKLSAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgLWxhdGVfbGlicmFyeV9zZXQgJGxhdGUiCi0gICAgICAgICAgICAgICAgICAgICB9ICBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHB1dHMgIjxGRj4gRVJST1I6IExpYnJhcnkgc2V0cyBmb3IgdGltaW5nIGNvbmRpdGlvbiAkYyBub3QgZGVmaW5lZCBwcm9wZXJseSIKLSAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBkY29tbWFuZCAiIC1yY19jb3JuZXIgJHZhcnMoJGMscmNfY29ybmVyKSIKLSAgICAgICAgICAgICAgICAgICAgIGlmIHshW2NhdGNoIHtzZXQgb3Bjb25kICR2YXJzKCRjLG9wY29uZCl9XSAmJiAhW2NhdGNoIHtzZXQgbGlicmFyeSAkdmFycygkYyxvcGNvbmRfbGlicmFyeSl9XX0gewotICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAtb3Bjb25kX2xpYnJhcnkgJGxpYnJhcnkiCi0gICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiIC1vcGNvbmQgJG9wY29uZCIKLSAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiB7IVtjYXRjaCB7c2V0IGVhcmx5ICR2YXJzKCRjLGVhcmx5X29wY29uZF9saWJyYXJ5KX1dICYmCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIVtjYXRjaCB7c2V0IGxhdGUgJHZhcnMoJGMsbGF0ZV9vcGNvbmRfbGlicmFyeSl9XX0gewotICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAtZWFybHlfb3Bjb25kX2xpYnJhcnkgJGVhcmx5IgotICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAtbGF0ZV9vcGNvbmRfbGlicmFyeSAkbGF0ZSIKLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIHshW2NhdGNoIHtzZXQgZWFybHlfb3Bjb25kICR2YXJzKCRjLGVhcmx5X29wY29uZCl9XSAmJgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICFbY2F0Y2gge3NldCBsYXRlX29wY29uZCAkdmFycygkYyxsYXRlX29wY29uZCl9XX0gewotICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAtZWFybHlfb3Bjb25kICRlYXJseV9vcGNvbmQiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiIC1sYXRlX29wY29uZCAkbGF0ZV9vcGNvbmQiCi0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiXG4iCi0gICAgICAgICAgICAgICAgICAgICBhcHBlbmQgZGNvbW1hbmQgIiAtdGltaW5nX2NvbmRpdGlvbiB7IgotICAgICAgICAgICAgICAgICAgICAgaWYge1tjYXRjaCB7c2V0IGRvbWFpbnMgJHZhcnMoJGMscG93ZXJfZG9tYWlucyl9XX0gewotICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGRjb21tYW5kICJ0XyRjIgotICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHNldCBhdHRyaWJ1dGVfbGlzdCAibGlicmFyeV9zZXQgb3Bjb25kX2xpYnJhcnkgb3Bjb25kIGlyZHJvcF9maWxlIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF0ZV9saWJyYXJ5X3NldCBlYXJseV9saWJyYXJ5X3NldCBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhdGVfb3Bjb25kX2xpYnJhcnkgZWFybHlfb3Bjb25kX2xpYnJhcnkgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXRlX29wY29uZCBlYXJseV9vcGNvbmQgbGF0ZV9pcmRyb3BfZmlsZSBlYXJseV9pcmRyb3BfZmlsZSIKLSAgICAgICAgICAgICAgICAgICAgICAgIGZvcmVhY2ggZG9tYWluICRkb21haW5zIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBkY29tbWFuZCAiIHRfJGMiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgZGNvbW1hbmQgIiAkZG9tYWluQHRfJGMiCi0gICAjICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiIHVwZGF0ZV9kZWxheV9jb3JuZXIgLW5hbWUgJGMgLXBvd2VyX2RvbWFpbiBcIiRkb21haW5cIiIKLSAgICMgICAgICAgICAgICAgICAgICAgICAgICBmb3JlYWNoIGF0dHIgJGF0dHJpYnV0ZV9saXN0IHsKLSAgICMgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJGMsJGRvbWFpbiwkYXR0cildfSB7Ci0gICAjICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAtJGF0dHIgJHZhcnMoJGMsJGRvbWFpbiwkYXR0cikiCi0gICAjICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gCi0gICAjICAgICAgICAgICAgICAgICAgICAgICAgfSAKLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICMgICAgICAgICAgICAgICAgICAgICAgIGlmIHshW2NhdGNoIHtzZXQgb3Bjb25kICR2YXJzKCRkb21haW4sb3Bjb25kKX1dICYmCi0gICAjICAgICAgICAgICAgICAgICAgICAgICAgICAgIVtjYXRjaCB7c2V0IGxpYnJhcnkgJHZhcnMoJGRvbWFpbixvcGNvbmRfbGlicmFyeSl9XX0gewotICAgIyAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAtb3Bjb25kX2xpYnJhcnkgJGxpYnJhcnkiCi0gICAjICAgICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiIC1vcGNvbmQgJG9wY29uZCIKLSAgICMgICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICB9IAotICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGRjb21tYW5kICIgfVxuIgotICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLGNyZWF0ZV90aW1pbmdfY29uZGl0aW9uICRjb21tYW5kXQotICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLGNyZWF0ZV9kZWxheV9jb3JuZXIgJGRjb21tYW5kXQotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgIiIKLSAgICAgICAgICAgICAgICAgIGlmIHskdmFycyh2ZXJib3NlKX0gewotICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiNcbiIKLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICIjIDxGRj4gQ1JFQVRJTkcgQ09OU1RSQUlOVCBNT0RFUyAuLi5cbiIKLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICIjXG4iCi0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgJGNvbW1hbmQKLSAgIAotICAgICAgICAgICAgICAgICAgIyBWYXJpYWJsZSBjY29tbWFuZCBjYXB0dXJlcyB0aGUgY29uc3RyYWludCBjcmVhdGlvbiBmb3IgdGhlIHZpZXdfZGVmaW5pdGlvbi50Y2wgCi0gICAgICAgICAgICAgICAgICAjIFZhcmlhYmxlIHVjb21tYW5kIGNhcHR1cmUgdGhlIGNvbnN0cmFpbnQgdXBkYXRlcyBmb3IgaGllci9pbG0gZmxvd3MKLSAgICAgICAgICAgICAgICAgICMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gCi0gICAgICAgICAgICAgICAgICBzZXQgY2NvbW1hbmQgIiIKLSAgIAotICAgICAgICAgICAgICAgICAgc2V0IGFjdGl2ZV92aWV3cyBbbGlzdF0KLSAgICAgICAgICAgICAgICAgIHNldCBhY3RpdmVfbW9kZXMgW2xpc3RdCi0gICAKLSAgICAgICAgICAgICAgICAgICMgR2V0IG1vZGVzIGFjdHVhbGx5IHVzZWQgLi4uIChjaGFuZ2VkIGZyb20gYWN0aXZlIHRvIGFsbCB2aWV3cykKLSAgICAgICAgICAgICAgICAgIGZvcmVhY2ggdmlldyBbY29uY2F0ICR2YXJzKHNldHVwX2FuYWx5c2lzX3ZpZXdzKSAkdmFycyhob2xkX2FuYWx5c2lzX3ZpZXdzKV0gewotICAgICAgICAgICAgICAgICAgICAgaWYge1tsc2VhcmNoICRhY3RpdmVfdmlld3MgJHZpZXddID09IC0xfSB7Ci0gICAjICAgICAgICAgICAgICAgICAgICAgbGFwcGVuZCBhY3RpdmVfdmlld3MgJHZpZXcKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIHtbbHNlYXJjaCAkYWN0aXZlX21vZGVzICR2YXJzKCR2aWV3LGNvbnN0cmFpbnRfbW9kZSldID09IC0xfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICBsYXBwZW5kIGFjdGl2ZV9tb2RlcyAkdmFycygkdmlldyxjb25zdHJhaW50X21vZGUpCi0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICB9Ci0gICAKLSAgICAgICAgICAgICAgICAgIHNldCBmbGF0dGVuX2lsbSAwCi0gICAgICAgICAgICAgICAgICBmb3JlYWNoIGNvbnN0cmFpbnRfbW9kZSAkYWN0aXZlX21vZGVzIHsKLSAgICAgICAgICAgICAgICAgICAgIGlmIHshJHZhcnMoaWxtKX0gewotICAgICAgICAgICAgICAgICAgICAgICAgIyBEZWZhdWx0IGZsYXQgZmxvdwotICAgICAgICAgICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCRjb25zdHJhaW50X21vZGUscHJlX2N0c19zZGMpXX0gewotICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgICJjcmVhdGVfY29uc3RyYWludF9tb2RlIC1uYW1lICRjb25zdHJhaW50X21vZGUgIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIi1zZGNfZmlsZXMgXFtsaXN0ICR2YXJzKCRjb25zdHJhaW50X21vZGUscHJlX2N0c19zZGMpXF0gIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIlxuIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNjb21tYW5kIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLGNyZWF0ZV9jb25zdHJhaW50X21vZGUgJGNvbW1hbmRdCi0gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycygkY29uc3RyYWludF9tb2RlLHN5bnRoX3NkYyldICYmICR2YXJzKHJjKX0gewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHV0cyAiQ29uc3RyYWludCBmaWxlIG5vdCBmb3VuZCBmb3IgJGNvbnN0cmFpbnRfbW9kZSAuLi4iIAotICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgaWYgeyR2YXJzKHJjKX0gewotICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCRjb25zdHJhaW50X21vZGUsc3ludGhfc2RjKV19IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldCBjb21tYW5kICAiY3JlYXRlX2NvbnN0cmFpbnRfbW9kZSAtbmFtZSAkY29uc3RyYWludF9tb2RlICIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICItc2RjX2ZpbGVzIFxbbGlzdCAkdmFycygkY29uc3RyYWludF9tb2RlLHN5bnRoX3NkYylcXSAiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiXG4iCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY2NvbW1hbmQgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksY3JlYXRlX2NvbnN0cmFpbnRfbW9kZSAkY29tbWFuZF0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldCB2YXJzKGRlZmF1bHRfc3ludGhlc2lzX21vZGUpICRjb25zdHJhaW50X21vZGUKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiB7IVtpbmZvIGV4aXN0cyB2YXJzKCRjb25zdHJhaW50X21vZGUscHJlX2N0c19zZGMpXX0gewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHV0cyAiQ29uc3RyYWludCBmaWxlIG5vdCBmb3VuZCBmb3IgJGNvbnN0cmFpbnRfbW9kZSAuLi4iIAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycyhkZWZhdWx0X3N5bnRoZXNpc19tb2RlKV19IHsgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdXRzICI8RVJST1I+IDogUGxlYXNlIGRlZmluZSBhIHN5bnRoX3NkYyBmb3Igb25lIG9mIHRoZSBjb25zdHJhaW50IG1vZGVzIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhpdAotICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICMgSUxNIGZsb3cKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhwYXJ0aXRpb25fbGlzdCldfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICBzZXQgc2RjcyAiIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBIaWVyYXJjaHkgKyBJTE1zCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJGNvbnN0cmFpbnRfbW9kZSxwcmVfY3RzX2lsbV9zZGMpXX0gewotICAgIyAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIi1zZGNfZmlsZXMgXFtsaXN0ICR2YXJzKCRjb25zdHJhaW50X21vZGUscHJlX2N0c19zZGMpXF0gIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhlYyAvYmluL3RvdWNoIGVtcHR5LnNkYwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIHNkY3MgIi1zZGNfZmlsZXMgZW1wdHkuc2RjICIgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgc2RjcyAiLWlsbV9zZGNfZmlsZXMgXFtsaXN0ICR2YXJzKCRjb25zdHJhaW50X21vZGUscHJlX2N0c19pbG1fc2RjKVxdXG4iCi0gICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhlYyAvYmluL3RvdWNoIGVtcHR5LnNkYwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIHNkY3MgIi1zZGNfZmlsZXMgZW1wdHkuc2RjICIgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgc2RjcyAiLWlsbV9zZGNfZmlsZXMgXFtsaXN0ICR2YXJzKCRjb25zdHJhaW50X21vZGUscHJlX2N0c19zZGMpXF1cbiIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIHskdmFycyh0b3ApfSB7IAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdWNvbW1hbmRdfSB7IHNldCB1Y29tbWFuZCAiIn0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldCBjb21tYW5kICAidXBkYXRlX2NvbnN0cmFpbnRfbW9kZSAtbmFtZSAkY29uc3RyYWludF9tb2RlICIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICRzZGNzCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1hbmQgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksdXBkYXRlX2NvbnN0cmFpbnRfbW9kZSAkY29tbWFuZF0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldCBkeW5hbWljX3VwZGF0ZSAxCi0gICAjICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWUKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXQgY29tbWFuZCAgImNyZWF0ZV9jb25zdHJhaW50X21vZGUgLW5hbWUgJGNvbnN0cmFpbnRfbW9kZSAiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAkc2RjcwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNjb21tYW5kIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLGNyZWF0ZV9jb25zdHJhaW50X21vZGUgJGNvbW1hbmRdCi0gICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBJTE0gb25seQotICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgICJjcmVhdGVfY29uc3RyYWludF9tb2RlIC1uYW1lICRjb25zdHJhaW50X21vZGUgIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCRjb25zdHJhaW50X21vZGUscHJlX2N0c19pbG1fc2RjKV19IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4ZWMgL2Jpbi90b3VjaCBlbXB0eS5zZGMKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBzZGNzICItc2RjX2ZpbGVzIGVtcHR5LnNkYyAiIAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIHNkY3MgIi1pbG1fc2RjX2ZpbGVzIFxbbGlzdCAkdmFycygkY29uc3RyYWludF9tb2RlLHByZV9jdHNfaWxtX3NkYylcXVxuIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4ZWMgL2Jpbi90b3VjaCBlbXB0eS5zZGMKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBzZGNzICItc2RjX2ZpbGVzIGVtcHR5LnNkYyAiIAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIHNkY3MgIi1pbG1fc2RjX2ZpbGVzIFxbbGlzdCAkdmFycygkY29uc3RyYWludF9tb2RlLHByZV9jdHNfc2RjKVxdXG4iCi0gICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAkc2RjcwotICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNjb21tYW5kIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLGNyZWF0ZV9jb25zdHJhaW50X21vZGUgJGNvbW1hbmRdCi0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICB9Ci0gICAKLSAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICRjY29tbWFuZAotICAgCi0gICAgICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIGR5bmFtaWNfdXBkYXRlXSAmJiAkZHluYW1pY191cGRhdGV9IHsKLSAgICMgICAgICAgICAgICAgICAgICBzZXQgY29tbWFuZCAiIgotICAgIyAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJmb3JlYWNoIG1vZGUgXFthbGxfY29uc3RyYWludF9tb2Rlc1xdIHtcbiIKLSAgICMgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiICAgdXBkYXRlX2NvbnN0cmFpbnRfbW9kZSAtbmFtZSBcJG1vZGUgLXNkY19maWxlcyBlbXB0eS5zZGMgXFxcbiIKLSAgICMgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiICAgICAgLWlsbV9zZGNfZmlsZXMgXFtnZXRfY29uc3RyYWludF9tb2RlIFwkbW9kZSAtc2RjX2ZpbGVzXF1cbiIKLSAgICMgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAifVxuIgotICAgIyAgICAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWFuZCBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSx1cGRhdGVfY29uc3RyYWludF9tb2RlICRjb21tYW5kXQotICAgCi0gICAgICAgICAgICAgICAgICAgICBzZXQgY29tbWFuZCAiIgotICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgImZvcmVhY2ggbW9kZSBcW2FsbF9jb25zdHJhaW50X21vZGVzXSBce1xuIgotICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAgIGZvcmVhY2ggdmlldyBcW2FsbF9hbmFseXNpc192aWV3c10gXHtcbiIKLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgICAgICBzZXQgbSBcW3JlZ3N1YiBfXCR2aWV3IFwkbW9kZSBcIlwiXF1cbiIKLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgICAgICBpZiBceyggXCRtICE9IFwkbW9kZSApICYmICggXFtsc2VhcmNoIFxbYWxsX2NvbnN0cmFpbnRfbW9kZXNcXSBcJG1cXSAhPSAtMSkgXH0gXHtcbiIKLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgICAgICAgICB1cGRhdGVfY29uc3RyYWludF9tb2RlIC1uYW1lIFwkbW9kZSAtc2RjX2ZpbGVzIGVtcHR5LnNkYyAtaWxtX3NkY19maWxlcyBcW2dldF9jb25zdHJhaW50X21vZGUgXCRtIC1pbG1fc2RjX2ZpbGVzXF1cbiIKLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgICAgICBcfVxuIgotICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAgIFx9IFxuIgotICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIlx9IFxuIgotICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tYW5kIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLGR5bmFtaWNfdXBkYXRlICRjb21tYW5kXQotICAgCi0gICAgICAgICAgICAgICAgICAgICBpZiB7JHZhcnMoaWxtKX0gewotICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tYW5kIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLGZsYXR0ZW5faWxtICJmbGF0dGVuX2lsbVxuIl0KLSAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIH0gCi0KLSAgICAgICAgICAgICAgICAgIGlmIHsoJHZhcnModXNlcl9tb2RlKSA9PSAiaGllciIpICYmICFbaW5mbyBleGlzdHMgdmFycyh2aWV3X2RlZmluaXRpb25fdGNsKV19IHsKLSAgICAgICAgICAgICAgICAgICAgIGlmIHsoJHZhcnMoc3RlcCkgPT0gImFzc2VtYmxlIikgfHwgKCR2YXJzKHN0ZXApID09ICJyZWJ1ZGdldCIpIHx8ICgkdmFycyhzdGVwKSA9PSAiYXNzZW1ibGVfZmxleGlsbSIpIHx8ICgkdmFycyhzdGVwKSA9PSAicGFydGl0aW9uX3BsYWNlIikgfHwgKCR2YXJzKHN0ZXApID09ICJtb2RlbF9nZW4iKX0gewotICAgICAgICAgICAgICAgICAgICAgICAgIyBDcmVhdGUgbW1tYyBmaWxlIGZvciBwYXJ0aXRpb24gYW5kIGFzc2VtYmxlIHN0ZXAKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhjcGZfZmlsZSldICYmICR2YXJzKGNwZl90aW1pbmcpfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICBzZXQgbW1tY19maWxlICR2YXJzKHNjcmlwdF9kaXIpL2luY3Jfdmlld19kZWZpbml0aW9uLnRjbAotICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0IG9wIFtvcGVuICRtbW1jX2ZpbGUgd10KLSAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1dHMgJG9wIFtGRjo6cHJldHR5X3ByaW50ICRjb21tYW5kcyAxXQotICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xvc2UgJG9wCi0gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKHZpZXdfZGVmaW5pdGlvbl90Y2wpXX0gewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0IG1tbWNfZmlsZSAkdmFycyh2aWV3X2RlZmluaXRpb25fdGNsKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldCBtbW1jX2ZpbGUgJHZhcnMoc2NyaXB0X2Rpcikvdmlld19kZWZpbml0aW9uLnRjbAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0IG9wIFtvcGVuICRtbW1jX2ZpbGUgd10KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1dHMgJG9wIFtGRjo6cHJldHR5X3ByaW50ICRjb21tYW5kcyAxXQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xvc2UgJG9wCi0gICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICAjcmV0dXJuICRjb21tYW5kcwotICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICMgUmV0dXJuIG9ubHkgY29uc3RyYWludCBtb2RlIHVwZGF0ZXMgZm9yIHRvcCBsZXZlbCBmbG93Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHVjb21tYW5kXX0gewotICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICR1Y29tbWFuZAotICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyh2aWV3X2RlZmluaXRpb25fdGNsKV19IHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdWNvbW1hbmRdfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJHVjb21tYW5kCi0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICBpZiB7IVtpbmZvIGV4aXN0cyB2YXJzKHBvd2VyX2FuYWx5c2lzX3ZpZXcpXX0gewotICAgICAgICAgICAgICAgICAgICAgc2V0IHZhcnMocG93ZXJfYW5hbHlzaXNfdmlldykgIiIKLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIHNldCB2YXJzKGFsbF9hbmFseXNpc192aWV3cykgXAotICAgICAgICAgICAgICAgICAgICAgW2xzb3J0IC11bmlxdWUgW2NvbmNhdCAkdmFycyhzZXR1cF9hbmFseXNpc192aWV3cykgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkdmFycyhob2xkX2FuYWx5c2lzX3ZpZXdzKSBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICR2YXJzKHBvd2VyX2FuYWx5c2lzX3ZpZXcpXV0KLSAgICAgICAgICAgICAgICAgIHNldCBjb21tYW5kICIiCi0gICAgICAgICAgICAgICAgICBpZiB7JHZhcnModmVyYm9zZSl9IHsKLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICIjXG4iCi0gICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiIyA8RkY+IENSRUFUSU5HIEFOQUxZU0lTIFZJRVdTIC4uLlxuIgotICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiNcbiIKLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIGZvcmVhY2ggdmlldyAkdmFycyhhbGxfYW5hbHlzaXNfdmlld3MpIHsKLSMgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiaWYge1xbbHNlYXJjaCBcW2FsbF9hbmFseXNpc192aWV3c1xdICR2aWV3XF0gPT0gLTF9IHtcbiIKLSAgICAgICAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhkZWZhdWx0X3N5bnRoZXNpc19tb2RlKV0gJiYgKCR2YXJzKCR2aWV3LGNvbnN0cmFpbnRfbW9kZSkgPT0gJHZhcnMoZGVmYXVsdF9zeW50aGVzaXNfbW9kZSkpfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBzZXQgdmFycyhkZWZhdWx0X3N5bnRoZXNpc192aWV3KSAkdmlldwotICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgImNyZWF0ZV9hbmFseXNpc192aWV3IgotICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAgIC1uYW1lICR2aWV3IgotICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAgIC1jb25zdHJhaW50X21vZGUgJHZhcnMoJHZpZXcsY29uc3RyYWludF9tb2RlKSIKLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgICAtZGVsYXlfY29ybmVyICR2YXJzKCR2aWV3LGRlbGF5X2Nvcm5lcilcbiIKLSMgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAifVxuIgotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLGNyZWF0ZV9hbmFseXNpc192aWV3ICRjb21tYW5kXQotICAgICAgICAgICAgICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycyhnZW5fcG9zdGxvYWQpXX0geyAKLSAgICAgICAgICAgICAgICAgICAgIGlmIHtbbGluZGV4IFtzcGxpdCAkdmFycyh2ZXJzaW9uKSAiLiJdICAwXSA8PSAxMH0gewotICAgICAgICAgICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgIiIKLSAgICAgICAgICAgICAgICAgICAgICAgIGZvcmVhY2ggYyAkdmFycyhkZWxheV9jb3JuZXJzKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICBpZiB7IVtjYXRjaCB7c2V0IGRvbWFpbnMgJHZhcnMoJGMscG93ZXJfZG9tYWlucyl9XX0gewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yZWFjaCBkb21haW4gJGRvbWFpbnMgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiB1cGRhdGVfZGVsYXlfY29ybmVyIC1uYW1lICRjIC1wb3dlcl9kb21haW4gXCIkZG9tYWluXCJcbiIKLSAgICAgICAgICMgICAgICAgICAgICAgICAgICAgICAgICBpZiB7IVtjYXRjaCB7c2V0IG9wY29uZCAkdmFycygkZG9tYWluLG9wY29uZCl9XSAmJgotICAgICAgICAgIyAgICAgICAgICAgICAgICAgICAgICAgICAgICAhW2NhdGNoIHtzZXQgbGlicmFyeSAkdmFycygkZG9tYWluLG9wY29uZF9saWJyYXJ5KX1dfSB7Ci0gICAgICAgICAjICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAtb3Bjb25kX2xpYnJhcnkgJGxpYnJhcnkiCi0gICAgICAgICAjICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAtb3Bjb25kICRvcGNvbmQiCi0gICAgICAgICAjICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kIGluaXQsdXBkYXRlX2RlbGF5X2Nvcm5lciAkY29tbWFuZF0KLSAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAgICAgICAgICAgICAjIENQRl9USU1JTkcgPT0gVFJVRQotICAgICAgICAgICAgICAgICAgIyBTaW5jZSB0aGUgZGVsYXkgY29ybmVyIG5hbWVzIGFyZSBkZXJpdmVkIGZyb20gdGhlIENQRiwgdGhleQotICAgICAgICAgICAgICAgICAgIyBhcmUgbm90IGtub3duLiAgSG93ZXZlciwgdGhleSBjYW4gYmUgcmV0cmlldmVkIGZyb20gdGhlCi0gICAgICAgICAgICAgICAgICAjIGFuYWx5c2lzX3ZpZXdzCi0gICAgICAgICAgICAgICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAKLSAgICMgICAgICAgICAgICAgICBpZiB7JHZhcnModmVyYm9zZSl9IHsKLSAgICMgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIFVQREFUSU5HIERFTEFZIENPUk5FUlMgIC4uLlxuIgotICAgIyAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIGlmIHshW2luZm8gZXhpc3RzIHZhcnMoZGVsYXlfY29ybmVycyldfSB7Ci0gICAgICAgICAgICAgICAgICAgICBzZXQgdmFycyhkZWxheV9jb3JuZXJzKSBbRkY6OltnZXRfYnlfc3VmZml4IHZhcnMgIixyY19jb3JuZXIiXV0KLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIHNldCBjb21tYW5kICIiCi0gICAgICAgICAgICAgICAgICBmb3JlYWNoIGNvcm5lciAkdmFycyhkZWxheV9jb3JuZXJzKSB7Ci0gICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiaWYge1xbbHNlYXJjaCAtZXhhY3QgXFthbGxfZGVsYXlfY29ybmVyc1xdICRjb3JuZXJcXSAhPSAtMX0ge1xuIgotICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAgIHVwZGF0ZV9kZWxheV9jb3JuZXIgLW5hbWUgJGNvcm5lciAtcmNfY29ybmVyICR2YXJzKCRjb3JuZXIscmNfY29ybmVyKVxuIgotICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIn1cbiIKLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSx1cGRhdGVfZGVsYXlfY29ybmVyICRjb21tYW5kXQotICAgICAgICAgICAgICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgICAgICAgICAgICAgIyBVcGRhdGUgY29uc3RyYWludHMgbW9kZXMgaWYgYW4gSUxNIGZsb3cKLSAgICAgICAgICAgICAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICAgICAgICAgICAgIHNldCBjY29tbWFuZCAiIgotICAgICAgICAgICAgICAgICAgZm9yZWFjaCBjb25zdHJhaW50X21vZGUgJHZhcnMoY29uc3RyYWludF9tb2RlcykgewotICAgICAgICAgICAgICAgICAgICAgaWYgeyR2YXJzKGlsbSl9IHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhwYXJ0aXRpb25fbGlzdCldfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICBzZXQgY29tbWFuZCAgInVwZGF0ZV9jb25zdHJhaW50X21vZGUgLW5hbWUgJGNvbnN0cmFpbnRfbW9kZSAiCi0gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgICJjcmVhdGVfY29uc3RyYWludF9tb2RlIC1uYW1lICRjb25zdHJhaW50X21vZGUgIgotICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCRjb25zdHJhaW50X21vZGUscHJlX2N0c19pbG1fc2RjKV19IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICItc2RjX2ZpbGVzIFxbbGlzdCAkdmFycygkY29uc3RyYWludF9tb2RlLHByZV9jdHNfc2RjKVxdICIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICItaWxtX3NkY19maWxlcyBcW2xpc3QgJHZhcnMoJGNvbnN0cmFpbnRfbW9kZSxwcmVfY3RzX2lsbV9zZGMpXF0gIgotICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4ZWMgL2Jpbi90b3VjaCBlbXB0eS5zZGMKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICItc2RjX2ZpbGVzIGVtcHR5LnNkYyAiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiLWlsbV9zZGNfZmlsZXMgXFtsaXN0ICR2YXJzKCRjb25zdHJhaW50X21vZGUscHJlX2N0c19zZGMpXF0gIgotICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIlxuIgotICAgICAgICAgICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKHBhcnRpdGlvbl9saXN0KV19IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjY29tbWFuZCBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSx1cGRhdGVfY29uc3RyYWludF9tb2RlICRjb21tYW5kXQotICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjY29tbWFuZCBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxjcmVhdGVfY29uc3RyYWludF9tb2RlICRjb21tYW5kXQotICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgfQotICAgCi0gICAgICAgICAgICAgICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAgICAgICAgICAgICAjIFJldHVybiBlYXJseSBmb3IgcGFydGl0aW9uIGltcGxlbWVudGF0aW9uIGZsb3dzIC4uLgotICAgICAgICAgICAgICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgICAgICAgICAgICAgaWYgeygoJHZhcnMobW9kZSkgPT0gImhpZXIiKSB8fCAoW2luZm8gZXhpc3RzIHZhcnMoaGllcildICYmICR2YXJzKGhpZXIpKSkgJiYgKCR2YXJzKHN0ZXApICE9ICJwYXJ0aXRpb24iKX0gewotICAgICAgICAgICAgICAgICAgICAgc2V0IGNvbW1hbmRzICRjY29tbWFuZAotICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICRjb21tYW5kcwotICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAkY2NvbW1hbmQKLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgICAgICAgIyBVcGRhdGUgbGlicmFyeV9zZXRzIHdpdGggU0kgbGlicmFyaWVzIGlmIGRlZmluZWQKLSAgICAgICAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLQotIyAgICAgICAgICAgIGlmIHskdmFycyh2ZXJib3NlKX0gewotIyAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgVVBEQVRJTkcgTElCUkFSWSBTRVRTICAuLi5cbiIKLSMgICAgICAgICAgICB9Ci0gICAgICAgICAgICBzZXQgY29tbWFuZCAiIgotICAgICAgICAgICAgZm9yZWFjaCBzZXQgJHZhcnMobGlicmFyeV9zZXRzKSB7Ci0gICAgICAgICAgICAgICBpZiB7KFtpbmZvIGV4aXN0cyB2YXJzKCRzZXQsc2kpXSAmJiAoJHZhcnMoJHNldCxzaSkgIT0gIiIpKSB8fCBcCi0gICAgICAgICAgICAgICAgICAgKFtpbmZvIGV4aXN0cyB2YXJzKCRzZXQsc29jdildICYmICgkdmFycygkc2V0LHNvY3YpICE9ICIiKSkgfHwgXAotICAgICAgICAgICAgICAgICAgIChbaW5mbyBleGlzdHMgdmFycygkc2V0LGFvY3YpXSAmJiAoJHZhcnMoJHNldCxhb2N2KSAhPSAiIikpfSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAidXBkYXRlX2xpYnJhcnlfc2V0IC1uYW1lICRzZXQiCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJHNldCxzb2N2KV0gJiYgKCR2YXJzKCRzZXQsc29jdikgIT0gIiIpfSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiIC1zb2N2IFxbbGlzdCIKLSAgICAgICAgICAgICAgICAgIGZvcmVhY2ggZmlsZSAkdmFycygkc2V0LHNvY3YpIHsKLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgJGZpbGUiCi0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiXF0iCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJHNldCxhb2N2KV0gJiYgKCR2YXJzKCRzZXQsYW9jdikgIT0gIiIpfSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiIC1hb2N2IFxbbGlzdCIKLSAgICAgICAgICAgICAgICAgIGZvcmVhY2ggZmlsZSAkdmFycygkc2V0LGFvY3YpIHsKLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgJGZpbGUiCi0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiXF0iCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJHNldCxzaSldICYmICgkdmFycygkc2V0LHNpKSAhPSAiIil9IHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgLXNpIFxbbGlzdCIKLSAgICAgICAgICAgICAgICAgIGZvcmVhY2ggZmlsZSAkdmFycygkc2V0LHNpKSB7Ci0gICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiICRmaWxlIgotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIlxdIgotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIlxuIgotICAgICAgICAgICAgfQotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHVwZGF0ZV9saWJyYXJ5X3NldCAkY29tbWFuZF0KLQotIyAgICAgICAgICAgIGlmIHskdmFycyhmbG93KSAhPSAibW1tYyJ9IHsKLSMgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGX05PVlVTOjp1cGRhdGVfdGltaW5nIG1tbWNdCi0jICAgICAgICAgICAgfQotIyAgICAgICAgICAgIHNldCBjb21tYW5kIFtGRl9OT1ZVUzo6ZGVyYXRlX3RpbWluZyBtbW1jXQotIyAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxkZXJhdGVfdGltaW5nICRjb21tYW5kXQotCi0gICAgICAgICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAgICAgICAjIERlZmluZSBzZXR1cCAvIGhvbGQgYW5hbHlzaXMgdmlld3MgYW5kIGVuYWJsZSB0aGUgZGVmYXVsdCB2aWV3cwotICAgICAgICAgICAgIyBmb3IgZWFjaAotICAgICAgICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgInNldF9hbmFseXNpc192aWV3IgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIgLXNldHVwIFxbbGlzdCAkdmFycyhhY3RpdmVfc2V0dXBfdmlld3MpXF0iCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiAtaG9sZCBcW2xpc3QgJHZhcnMoYWN0aXZlX2hvbGRfdmlld3MpXF1cbiIKLSAgICAgICAgICAgIGZpbGUgbWtkaXIgJHZhcnMoc2NyaXB0X2RpcikKLSAgICAgICAgICAgIGlmIHtbbGluZGV4IFtzcGxpdCAkdmFycyh2ZXJzaW9uKSAiLiJdICAwXSA8PSAxMH0gewotICAgICAgICAgICAgICAgaWYgeyR2YXJzKGZsYXQpICE9ICJmdWxsIn0gewotICAgICAgICAgICAgICAgICAgc2V0IG9wIFtvcGVuICR2YXJzKHNjcmlwdF9kaXIpL21tbWMudGNsIHddCi0gICAgICAgICAgICAgICAgICBwdXRzICRvcCBbRkY6OnByZXR0eV9wcmludCAkY29tbWFuZHMgMV0KLSAgICAgICAgICAgICAgICAgIGNsb3NlICRvcAotICAgICAgICAgICAgICAgICAgc2V0IGNvbW1hbmRzICJzb3VyY2UgXCR2YXJzKHNjcmlwdF9kaXIpL21tbWMudGNsXG4iCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGNwZl9maWxlKV0gJiYgJHZhcnMoY3BmX3RpbWluZyl9IHsKLSAgICAgICAgICAgICAgICAgIHNldCBtbW1jX2ZpbGUgJHZhcnMoc2NyaXB0X2RpcikvaW5jcl92aWV3X2RlZmluaXRpb24udGNsCi0gICAgICAgICAgICAgICAgICBzZXQgb3AgW29wZW4gJG1tbWNfZmlsZSB3XQotICAgICAgICAgICAgICAgICAgcHV0cyAkb3AgW0ZGOjpwcmV0dHlfcHJpbnQgJGNvbW1hbmRzIDFdCi0gICAgICAgICAgICAgICAgICBjbG9zZSAkb3AKLSAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnModmlld19kZWZpbml0aW9uX3RjbCldfSB7Ci0gICAgICAgICAgICAgICAgICAgICBzZXQgbW1tY19maWxlICR2YXJzKHZpZXdfZGVmaW5pdGlvbl90Y2wpCi0gICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgc2V0IG1tbWNfZmlsZSAkdmFycyhzY3JpcHRfZGlyKS92aWV3X2RlZmluaXRpb24udGNsCi0gICAgICAgICAgICAgICAgICAgICBzZXQgdmFycyh2aWV3X2RlZmluaXRpb25fdGNsKSAkbW1tY19maWxlCi0gICAgICAgICAgICAgICAgICAgICBzZXQgb3AgW29wZW4gJG1tbWNfZmlsZSB3XQotICAgICAgICAgICAgICAgICAgICAgcHV0cyAkb3AgW0ZGOjpwcmV0dHlfcHJpbnQgJGNvbW1hbmRzIDFdCi0gICAgICAgICAgICAgICAgICAgICBjbG9zZSAkb3AKLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIHJldHVybgotICAgICAgICAgICAgfQotICAgICAgICAgfQotICAgICAgICAgZGVmYXVsdCB7Ci0gICAgICAgICAgICBwdXRzICAiPEZGPiBJTlZBTElEIE9QVElPTiAuLi4gTVVTVCBCRSBFSVRIRVIgbWlubWF4IE9SIG1tbWMiCi0gICAgICAgICB9Ci0gICAgICB9Ci0gICAgICByZXR1cm4gJGNvbW1hbmRzCi0gICB9Ci0KLSAgIHByb2MgdXBkYXRlX3JjX2Nvcm5lcnMge30gewotCi0gICAgICBnbG9iYWwgdmFycwotCi0gICAgICBmb3JlYWNoIHJjX2Nvcm5lciBbYWxsX3JjX2Nvcm5lcnNdIHsKLSAgICAgICAgIGlmIHskcmNfY29ybmVyICE9ICJkZWZhdWx0X3JjX2Nvcm5lciJ9IHsKLSAgICAgICAgICAgIHNldCB1cGRhdGUgZmFsc2UKLSAgICAgICAgICAgIHNldCBjb21tYW5kICJ1cGRhdGVfcmNfY29ybmVyIC1uYW1lICRyY19jb3JuZXIgIgotICAgICAgICAgICAgaWYge1tnZXRfcmNfY29ybmVyICRyY19jb3JuZXIgLWNhcF90YWJsZV0gIT0gJHZhcnMoJHJjX2Nvcm5lcixjYXBfdGFibGUpfSB7Ci0gICAgICAgICAgICAgICBzZXQgdXBkYXRlIHRydWUKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICItY2FwX3RhYmxlICR2YXJzKCRyY19jb3JuZXIsY2FwX3RhYmxlKSAiCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiB7W2dldF9yY19jb3JuZXIgJHJjX2Nvcm5lciAtcHJlUm91dGVfcmVzXSAhPSAkdmFycygkcmNfY29ybmVyLHByZV9yb3V0ZV9yZXNfZmFjdG9yKX0gewotICAgICAgICAgICAgICAgc2V0IHVwZGF0ZSB0cnVlCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiLXByZVJvdXRlX3JlcyAkdmFycygkcmNfY29ybmVyLHByZV9yb3V0ZV9yZXNfZmFjdG9yKSAiCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiB7W2dldF9yY19jb3JuZXIgJHJjX2Nvcm5lciAtcHJlUm91dGVfY2FwXSAhPSAkdmFycygkcmNfY29ybmVyLHByZV9yb3V0ZV9jYXBfZmFjdG9yKX0gewotICAgICAgICAgICAgICAgc2V0IHVwZGF0ZSB0cnVlCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiLXByZVJvdXRlX2NhcCAkdmFycygkcmNfY29ybmVyLHByZV9yb3V0ZV9jYXBfZmFjdG9yKSAiCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiB7W2dldF9yY19jb3JuZXIgJHJjX2Nvcm5lciAtcG9zdFJvdXRlX3Jlc10gIT0gJHZhcnMoJHJjX2Nvcm5lcixwb3N0X3JvdXRlX3Jlc19mYWN0b3IpfSB7Ci0gICAgICAgICAgICAgICBzZXQgdXBkYXRlIHRydWUKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICItcG9zdFJvdXRlX3JlcyBcIiR2YXJzKCRyY19jb3JuZXIscG9zdF9yb3V0ZV9yZXNfZmFjdG9yKVwiICIKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIHtbZ2V0X3JjX2Nvcm5lciAkcmNfY29ybmVyIC1wb3N0Um91dGVfY2FwXSAhPSAkdmFycygkcmNfY29ybmVyLHBvc3Rfcm91dGVfY2FwX2ZhY3Rvcil9IHsKLSAgICAgICAgICAgICAgIHNldCB1cGRhdGUgdHJ1ZQotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIi1wb3N0Um91dGVfY2FwIFwiJHZhcnMoJHJjX2Nvcm5lcixwb3N0X3JvdXRlX2NhcF9mYWN0b3IpXCIgIgotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYge1tnZXRfcmNfY29ybmVyICRyY19jb3JuZXIgLXByZVJvdXRlX2Nsa3Jlc10gIT0gJHZhcnMoJHJjX2Nvcm5lcixwcmVfcm91dGVfY2xrX3Jlc19mYWN0b3IpfSB7Ci0gICAgICAgICAgICAgICBzZXQgdXBkYXRlIHRydWUKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICItcHJlUm91dGVfY2xrcmVzICR2YXJzKCRyY19jb3JuZXIscHJlX3JvdXRlX2Nsa19yZXNfZmFjdG9yKSAiCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiB7W2dldF9yY19jb3JuZXIgJHJjX2Nvcm5lciAtcHJlUm91dGVfY2xrY2FwXSAhPSAkdmFycygkcmNfY29ybmVyLHByZV9yb3V0ZV9jbGtfY2FwX2ZhY3Rvcil9IHsKLSAgICAgICAgICAgICAgIHNldCB1cGRhdGUgdHJ1ZQotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIi1wcmVSb3V0ZV9jbGtjYXAgJHZhcnMoJHJjX2Nvcm5lcixwcmVfcm91dGVfY2xrX2NhcF9mYWN0b3IpICIKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIHtbZ2V0X3JjX2Nvcm5lciAkcmNfY29ybmVyIC1wb3N0Um91dGVfY2xrcmVzXSAhPSAkdmFycygkcmNfY29ybmVyLHBvc3Rfcm91dGVfY2xrX3Jlc19mYWN0b3IpfSB7Ci0gICAgICAgICAgICAgICBzZXQgdXBkYXRlIHRydWUKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICItcG9zdFJvdXRlX2Nsa3JlcyBcIiR2YXJzKCRyY19jb3JuZXIscG9zdF9yb3V0ZV9jbGtfcmVzX2ZhY3RvcilcIiAiCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiB7W2dldF9yY19jb3JuZXIgJHJjX2Nvcm5lciAtcG9zdFJvdXRlX2Nsa2NhcF0gIT0gJHZhcnMoJHJjX2Nvcm5lcixwb3N0X3JvdXRlX2Nsa19jYXBfZmFjdG9yKX0gewotICAgICAgICAgICAgICAgc2V0IHVwZGF0ZSB0cnVlCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiLXBvc3RSb3V0ZV9jbGtjYXAgXCIkdmFycygkcmNfY29ybmVyLHBvc3Rfcm91dGVfY2xrX2NhcF9mYWN0b3IpXCIgIgotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYge1tnZXRfcmNfY29ybmVyICRyY19jb3JuZXIgLXBvc3RSb3V0ZV94Y2FwXSAhPSAkdmFycygkcmNfY29ybmVyLHBvc3Rfcm91dGVfeGNhcF9mYWN0b3IpfSB7Ci0gICAgICAgICAgICAgICBzZXQgdXBkYXRlIHRydWUKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICItcG9zdFJvdXRlX3hjYXAgXCIkdmFycygkcmNfY29ybmVyLHBvc3Rfcm91dGVfeGNhcF9mYWN0b3IpXCIgIgotICAgICAgICAgICAgfQotICAgICAgICAgICAgZm9yZWFjaCBvcHRpb24gIlQgcXhfdGVjaF9maWxlIHF4X2NvbmZfZmlsZSBxeF9saWJfZmlsZSIgewotICAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkcmNfY29ybmVyLCRvcHRpb24pXX0gewotICAgICAgICAgICAgICAgICAgIGlmIHtbZ2V0X3JjX2Nvcm5lciAkcmNfY29ybmVyIC0kb3B0aW9uXSAhPSAkdmFycygkcmNfY29ybmVyLCRvcHRpb24pfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgc2V0IHVwZGF0ZSB0cnVlCi0gICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIi0kb3B0aW9uICR2YXJzKCRyY19jb3JuZXIsJG9wdGlvbikgIgotICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiB7JHVwZGF0ZX0gewotICAgICAgICAgICAgICAgdXBsZXZlbCAjMCBldmFsICRjb21tYW5kCi0gICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0gICAgICB9Ci0gICB9Ci0gICBwcm9jIHJlc2V0X3JjX2Nvcm5lcnMge30gewotCi0gICAgICBnbG9iYWwgdmFycwotCi0gICAgICBmb3JlYWNoIGNvcm5lciAkdmFycyhyY19jb3JuZXJzKSB7Ci0gICAgICAgICB1cGRhdGVfcmNfY29ybmVyIC1uYW1lICRjb3JuZXIgXAotICAgICAgICAgICAgLXByZVJvdXRlX3JlcyAxLjAgXAotICAgICAgICAgICAgLXByZVJvdXRlX2Nsa3JlcyAxLjAgXAotICAgICAgICAgICAgLXByZVJvdXRlX2NhcCAxLjAgXAotICAgICAgICAgICAgLXByZVJvdXRlX2Nsa2NhcCAxLjAgXAotICAgICAgICAgICAgLXBvc3RSb3V0ZV9yZXMgMS4wIFwKLSAgICAgICAgICAgIC1wb3N0Um91dGVfY2xrcmVzIDEuMCBcCi0gICAgICAgICAgICAtcG9zdFJvdXRlX2NhcCAxLjAgXAotICAgICAgICAgICAgLXBvc3RSb3V0ZV9jbGtfYXAgMS4wIFwKLSAgICAgICAgICAgIC1wb3N0Um91dGVfeGNhcCAxLjAKLSAgICAgIH0KLSAgIH0KLSAgIHByb2MgYWRkX3ZpZXdzIHt9IHsKLQotICAgICAgZ2xvYmFsIHZhcnMKLQotICAgICAgcHV0cyAiPEZGPiBDUkVBVElORyBSQyBDT1JORVJTIC4uLiIKLSAgICAgIGZvcmVhY2ggcmNfY29ybmVyICR2YXJzKHJjX2Nvcm5lcnMpIHsKLSAgICAgICAgIGlmIHtbbHNlYXJjaCBbYWxsX3JjX2Nvcm5lcnNdICRyY19jb3JuZXJdID09IC0xfSB7Ci0gICAgICAgICAgICBzZXQgY29tbWFuZCAiY3JlYXRlX3JjX2Nvcm5lciAtbmFtZSAkcmNfY29ybmVyICIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICItY2FwX3RhYmxlICR2YXJzKCRyY19jb3JuZXIsY2FwX3RhYmxlKVxdICIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICItcHJlUm91dGVfcmVzICR2YXJzKCRyY19jb3JuZXIscHJlX3JvdXRlX3Jlc19mYWN0b3IpICIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICItcHJlUm91dGVfY2xrcmVzICR2YXJzKCRyY19jb3JuZXIscHJlX3JvdXRlX2Nsa19yZXNfZmFjdG9yKSAiCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiLXByZVJvdXRlX2NhcCAkdmFycygkcmNfY29ybmVyLHByZV9yb3V0ZV9jYXBfZmFjdG9yKSAiCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiLXByZVJvdXRlX2Nsa2NhcCAkdmFycygkcmNfY29ybmVyLHByZV9yb3V0ZV9jbGtfY2FwX2ZhY3RvcikgIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIi1wb3N0Um91dGVfcmVzIFwiJHZhcnMoJHJjX2Nvcm5lcixwb3N0X3JvdXRlX3Jlc19mYWN0b3IpXCIgIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIi1wb3N0Um91dGVfY2xrcmVzIFwiJHZhcnMoJHJjX2Nvcm5lcixwb3N0X3JvdXRlX2Nsa19yZXNfZmFjdG9yKVwiICIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICItcG9zdFJvdXRlX2NhcCBcIiR2YXJzKCRyY19jb3JuZXIscG9zdF9yb3V0ZV9jYXBfZmFjdG9yKVwiICIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICItcG9zdFJvdXRlX2Nsa2NhcCBcIiR2YXJzKCRyY19jb3JuZXIscG9zdF9yb3V0ZV9jbGtfY2FwX2ZhY3RvcilcIiAiCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiLXBvc3RSb3V0ZV94Y2FwICR2YXJzKCRyY19jb3JuZXIscG9zdF9yb3V0ZV94Y2FwX2ZhY3RvcikgIgotICAgICAgICAgICAgZm9yZWFjaCBvcHRpb24gIlQgcXhfdGVjaF9maWxlIHF4X2NvbmZfZmlsZSBxeF9saWJfZmlsZSIgewotICAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkcmNfY29ybmVyLCRvcHRpb24pXX0gewotICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIi0kb3B0aW9uICR2YXJzKCRyY19jb3JuZXIsJG9wdGlvbikgIgotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHVwbGV2ZWwgIzAgZXZhbCAkY29tbWFuZAotICAgICAgICAgfQotICAgICAgfQotCi0gICAgICBpZiB7IVtGRjo6aXNfbHBfZmxvd10gfHwgXAotICAgICAgICAgIChbRkY6OmlzX2xwX2Zsb3ddICYmIChbbGxlbmd0aCBbYWxsX2FuYWx5c2lzX3ZpZXdzXV0gPT0gMikpfSB7Ci0KLSAgICAgICAgIHB1dHMgIjxGRj4gQ1JFQVRJTkcgTElCUkFSWSBTRVRTIC4uLiIKLSAgICAgICAgIGZvcmVhY2ggbGlicmFyeV9zZXQgJHZhcnMobGlicmFyeV9zZXRzKSB7Ci0gICAgICAgICAgICBpZiB7W2xzZWFyY2ggW2FsbF9saWJyYXJ5X3NldHNdICRsaWJyYXJ5X3NldF0gPT0gLTF9IHsKLSAgICAgICAgICAgICAgIGNyZWF0ZV9saWJyYXJ5X3NldCAtbmFtZSAkbGlicmFyeV9zZXQgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC10aW1pbmcgJHZhcnMoJGxpYnJhcnlfc2V0LHRpbWluZykKLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0KLQotICAgICAgICAgcHV0cyAiPEZGPiBDUkVBVElORyBERUxBWSBDT1JORVJTIC4uLlxuIgotICAgICAgICAgZm9yZWFjaCBkZWxheV9jb3JuZXIgJHZhcnMoZGVsYXlfY29ybmVycykgewotICAgICAgICAgICAgaWYge1tsc2VhcmNoIFthbGxfZGVsYXlfY29ybmVyc10gJGRlbGF5X2Nvcm5lcl0gPT0gLTF9IHsKLSAgICAgICAgICAgICAgIHNldCBjb21tYW5kICJjcmVhdGVfZGVsYXlfY29ybmVyIC1uYW1lICRkZWxheV9jb3JuZXIgIgotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIi1saWJyYXJ5X3NldCAkdmFycygkZGVsYXlfY29ybmVyLGxpYnJhcnlfc2V0KSAiCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiLXJjX2Nvcm5lciAkdmFycygkZGVsYXlfY29ybmVyLHJjX2Nvcm5lcikgIgotICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCRkZWxheV9jb3JuZXIsb3Bjb25kKV0gJiYgW2luZm8gZXhpc3RzIHZhcnMoJGRlbGF5X2Nvcm5lcixvcGNvbmRfbGlicmFyeSldfSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiLW9wY29uZF9saWJyYXJ5ICR2YXJzKCRkZWxheV9jb3JuZXIsb3Bjb25kX2xpYnJhcnkpICIKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICItb3Bjb25kICR2YXJzKCRkZWxheV9jb3JuZXIsb3Bjb25kKSAiCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICB1cGxldmVsICMwIGV2YWwgJGNvbW1hbmQKLSAgICAgICAgICAgICAgIGlmIHshW2NhdGNoIHtzZXQgZG9tYWlucyAkdmFycygkYyxwb3dlcl9kb21haW5zKX1dfSB7Ci0gICAgICAgICAgICAgICAgICBzZXQgY29tbWFuZCAiIHVwZGF0ZV9kZWxheV9jb3JuZXIgLW5hbWUgJGMgLXBvd2VyX2RvbWFpbnMgXCIkZG9tYWluc1wiIgotICAgICAgICAgICAgICAgICAgdXBsZXZlbCAjMCBldmFsICRjb21tYW5kCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0KLSAgICAgICAgIHB1dHMgIjxGRj4gVVBEQVRJTkcgQ09OU1RSQUlOVCBNT0RFUyAuLi4iCi0gICAgICAgICBmb3JlYWNoIG1vZGUgJHZhcnMoY29uc3RyYWludF9tb2RlcykgewotICAgICAgICAgICAgaWYge1tsc2VhcmNoIFthbGxfY29uc3RyYWludF9tb2Rlc10gJG1vZGVdID09IC0xfSB7Ci0gICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJG1vZGUscHJlX2N0c19zZGMsZnVsbCldfSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgImNyZWF0ZV9jb25zdHJhaW50X21vZGUgIgotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIgLW5hbWUgJG1vZGUgIgotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIgLXNkY19maWxlcyAkdmFycygkbW9kZSxwcmVfY3RzX3NkYyxmdWxsKVxuIgotICAgICAgICAgICAgICAgfSBlbHNlaWYge1tpbmZvIGV4aXN0cyB2YXJzKCRtb2RlLHByZV9jdHNfc2RjKX0gewotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJjcmVhdGVfY29uc3RyYWludF9tb2RlICIKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIC1uYW1lICRtb2RlICIKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIC1zZGNfZmlsZXMgJHZhcnMoJG1vZGUscHJlX2N0c19zZGMpXG4iCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0KLSAgICAgICAgIHNldCB2YXJzKGFsbF9hbmFseXNpc192aWV3cykgW2xzb3J0IC11bmlxIFtjb25jYXQgJHZhcnMoc2V0dXBfYW5hbHlzaXNfdmlld3MpICR2YXJzKGhvbGRfYW5hbHlzaXNfdmlld3MpXV0KLSAgICAgICAgIHB1dHMgIjxGRj4gVVBEQVRJTkcgQU5BTFlTSVMgVklFV1MgLi4uIgotCi0gICAgICAgICBmb3JlYWNoIGFuYWx5c2lzX3ZpZXcgJHZhcnMoYWxsX2FuYWx5c2lzX3ZpZXdzKSB7Ci0gICAgICAgICAgICBpZiB7W2xzZWFyY2ggW2FsbF9hbmFseXNpc192aWV3c10gJGFuYWx5c2lzX3ZpZXddID09IC0xfSB7Ci0gICAgICAgICAgICAgICBjcmVhdGVfYW5hbHlzaXNfdmlldyAtbmFtZSAkYW5hbHlzaXNfdmlldyBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtY29uc3RyYWludF9tb2RlICR2YXJzKCRhbmFseXNpc192aWV3LGNvbnN0cmFpbnRfbW9kZSkgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLWRlbGF5X2Nvcm5lciAkdmFycygkYW5hbHlzaXNfdmlldyxkZWxheV9jb3JuZXIpCi0gICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0gICAgICB9IGVsc2UgewotCi0gICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAjIFNpbmNlIHRoZSBkZWxheSBjb3JuZXIgbmFtZXMgYXJlIGRlcml2ZWQgZnJvbSB0aGUgQ1BGLCB0aGV5IGFyZSBub3QKLSAgICMga25vd24uICBIb3dldmVyLCB0aGV5IGNhbiBiZSByZXRyaWV2ZWQgZnJvbSB0aGUgYW5hbHlzaXNfdmlld3MKLSAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICAgIHB1dHMgIjxGRj4gVVBEQVRJTkcgREVMQVkgQ09STkVSUyAgLi4uIgotICAgICAgICAgZm9yZWFjaCBjb3JuZXIgJHZhcnMoZGVsYXlfY29ybmVycykgewotICAgICAgICAgICAgcHV0cyAiVXBkYXRpbmcgZGVsYXkgY29ybmVyICRjb3JuZXIgd2l0aCBSQyBDb3JuZXIgJHZhcnMoJGNvcm5lcixyY19jb3JuZXIpIC4uLiIKLSAgICAgICAgICAgIHVwZGF0ZV9kZWxheV9jb3JuZXIgLW5hbWUgJGNvcm5lciAtcmNfY29ybmVyICR2YXJzKCRjb3JuZXIscmNfY29ybmVyKQotICAgICAgICAgfQotICAgICAgfQotCi0gICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAjIFVwZGF0ZSBsaWJyYXJ5X3NldHMgd2l0aCBTSSBsaWJyYXJpZXMgaWYgZGVmaW5lZAotICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgcHV0cyAiPEZGPiBVUERBVElORyBMSUJSQVJZIFNFVFMgIC4uLiIKLSAgICAgIGZvcmVhY2ggbGlicmFyeV9zZXQgJHZhcnMobGlicmFyeV9zZXRzKSB7Ci0gICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJGxpYnJhcnlfc2V0LHNpKV0gJiYgKCR2YXJzKCRsaWJyYXJ5X3NldCxzaSkgIT0gIiIpfSB7Ci0gICAgICAgICAgICB1cGRhdGVfbGlicmFyeV9zZXQgLW5hbWUgJGxpYnJhcnlfc2V0IFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtc2kgJHZhcnMoJGxpYnJhcnlfc2V0LHNpKQotICAgICAgICAgfQotICAgICAgfQotICAgICAgZm9yZWFjaCBsaWJyYXJ5X3NldCAkdmFycyhsaWJyYXJ5X3NldHMpIHsKLSAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkbGlicmFyeV9zZXQsYW9jdildICYmICgkdmFycygkbGlicmFyeV9zZXQsYW9jdikgIT0gIiIpfSB7Ci0gICAgICAgICAgICB1cGRhdGVfbGlicmFyeV9zZXQgLW5hbWUgJGxpYnJhcnlfc2V0IFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtYW9jdiAkdmFycygkbGlicmFyeV9zZXQsYW9jdikKLSAgICAgICAgIH0KLSAgICAgIH0KLSAgICAgIGZvcmVhY2ggbGlicmFyeV9zZXQgJHZhcnMobGlicmFyeV9zZXRzKSB7Ci0gICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJGxpYnJhcnlfc2V0LHNvY3YpXSAmJiAoJHZhcnMoJGxpYnJhcnlfc2V0LHNvY3YpICE9ICIiKX0gewotICAgICAgICAgICAgdXBkYXRlX2xpYnJhcnlfc2V0IC1uYW1lICRsaWJyYXJ5X3NldCBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLXNvY3YgJHZhcnMoJGxpYnJhcnlfc2V0LHNvY3YpCi0gICAgICAgICB9Ci0gICAgICB9Ci0KLSAgICAgIHNldF9pbnRlcmFjdGl2ZV9jb25zdHJhaW50X21vZGVzIFthbGxfY29uc3RyYWludF9tb2RlcyAtYWN0aXZlXQotCi0gICAgICBwdXRzICI8RkY+IERFUkFUSU5HIERFTEFZIENPUk5FUlMgLi4uIgotICAgICAgRkZfTk9WVVM6OmRlcmF0ZV90aW1pbmcgbW1tYwotCi0jICAgICAgaWYgeyR2YXJzKGZsb3cpICE9ICJtbW1jIn0gewotIyAgICAgICAgIEZGX05PVlVTOjp1cGRhdGVfdGltaW5nIG1tbWMKLSMgICAgICB9Ci0KLSAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICMgRGVmaW5lIHNldHVwIC8gaG9sZCBhbmFseXNpcyB2aWV3cyBhbmQgZW5hYmxlIHRoZSBkZWZhdWx0IHZpZXdzIGZvciBlYWNoCi0gICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICBzZXRfYW5hbHlzaXNfdmlldyAtc2V0dXAgJHZhcnMoYWN0aXZlX3NldHVwX3ZpZXdzKSAtaG9sZCAkdmFycyhhY3RpdmVfaG9sZF92aWV3cykKLSAgICAgIHNldF9kZWZhdWx0X3ZpZXcgLXNldHVwICR2YXJzKGRlZmF1bHRfc2V0dXBfdmlldykgLWhvbGQgJHZhcnMoZGVmYXVsdF9ob2xkX3ZpZXcpCi0gICB9Ci0KLSAgIHByb2MgZ2V0X3Bvd2VyX2RvbWFpbnNfY29kZSB7fSB7Ci0KLSAgICAgIGdsb2JhbCB2YXJzCi0KLSAgICAgIHNldCBjb21tYW5kcyAic2V0IGRvbWFpbnMgXFtsaXN0IFxbZ2V0X2RiIHBvd2VyX2RvbWFpbnNcXVxdXG4iCi0jICAgICAgYXBwZW5kIGNvbW1hbmRzICJkYkZvckVhY2hwb3dlcl9kb21haW4gXFtkYmdIZWFkXF0gZG9tYWluIHtcbiIKLSMgICAgICBhcHBlbmQgY29tbWFuZHMgIiAgIGlmIHtcW2RiR3JvdXBISW5zdExpc3QgXFtkYnBvd2VyX2RvbWFpbk5hbWUgXCRkb21haW5cXVxdICE9IFwiMHgwXCJ9IHtcbiIKLSMgICAgICBhcHBlbmQgY29tbWFuZHMgIiAgICAgIGxhcHBlbmQgZG9tYWlucyBcW2RicG93ZXJfZG9tYWluTmFtZSBcJGRvbWFpblxdXG4iCi0jICAgICAgYXBwZW5kIGNvbW1hbmRzICIgICB9XG4iCi0jICAgICAgYXBwZW5kIGNvbW1hbmRzICJ9XG4iCi0gICAgICByZXR1cm4gJGNvbW1hbmRzCi0gICB9Ci0KLQotICAgcHJvYyBnZXRfY2xvY2tfcG9ydHMge30gewotCi0gICAgICBnbG9iYWwgdmFycwotCi0gICAgICBzZXQgY29tbWFuZHMgIiIKLQotICAgICAgaWYgeyEkdmFycyhjb2RlZ2VuKSB8fCAoJHZhcnMoY29kZWdlbikgJiYgKCR2YXJzKGZsYXQpICE9ICJub25lIikpfSB7Ci0KLSAgICAgICAgIGlmIHskdmFycyhpbG0pfSB7Ci0gICAgICAgICAgICBpZiB7JHZhcnMoc3RlcCkgIT0gImN0cyJ9IHsgCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgInNldElsbVR5cGUgLW1vZGVsIHNpXG4iCi0gICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgInNldCBjbG9ja19wb3J0cyBcW2xpc3RcXVxuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJzZXQgY2xvY2tzIFxbZ2V0X2Nsb2NrcyAqXF1cbiIKLQotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJmb3JlYWNoX2luX2NvbGxlY3Rpb24gY2xvY2sgXCRjbG9ja3Mge1xuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIgICBzZXQgc291cmNlcyAgXFtnZXRfcHJvcGVydHkgXCRjbG9jayBzb3VyY2VzXF1cbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiICAgZm9yZWFjaF9pbl9jb2xsZWN0aW9uIHNvdXJjZSBcJHNvdXJjZXMge1xuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIgICAgIHNldCBzb3VyY2VfbmFtZSBcW2dldF9wcm9wZXJ0eSBcJHNvdXJjZSBoaWVyYXJjaGljYWxfbmFtZVxdXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiAgICAgc2V0IHNvdXJjZV90eXBlIFxbZ2V0X3Byb3BlcnR5IFwkc291cmNlIG9iamVjdF90eXBlXF1cbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiICAgICBpZiB7XCRzb3VyY2VfdHlwZSA9PSBcInBvcnRcIn0ge1xuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIgICAgICAgbGFwcGVuZCBjbG9ja19wb3J0cyBcJHNvdXJjZV9uYW1lXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiAgICB9XG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiAgfVxuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJ9XG4iCi0gICAgICB9IGVsc2UgewotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJGRjo6Z2V0X2Nsb2NrX3BvcnRzXG4iCi0gICAgICB9Ci0gICAgICByZXR1cm4gJGNvbW1hbmRzCi0gICB9Ci0KLSAgIHByb2MgYWRkX3RpZV9jZWxscyB7e21vZGUgdHJ1ZX0ge2FkZCB0cnVlfX0gewotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgIyBUaGlzIHByb2NlZHVyZSBpbnNlcnRzIHRpZSBoaS9sbyBjZWxscyBiYXNlZCBvbiBpbmZvcm1hdGlvbiBpbiB0aGUKLSAgICAgICMgc2V0dXAudGNsCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0KLSAgICAgIGdsb2JhbCB2YXJzCi0gICAgICBnbG9iYWwgZXJyb3JzCi0KLSAgICAgIHNldCBjb21tYW5kcyAiIgotICAgICAgaWYgeyR2YXJzKHZlcmJvc2UpfSB7Ci0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiNcbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyBBRERJTkcgVElFIENFTExTXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiNcbiIKLSAgICAgIH0KLQotICAgICAgc2V0IGFyZ3MgIiIKLSAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyh0aWVfY2VsbHMsbWF4X2Rpc3RhbmNlKV19IHsKLSAgICAgICAgIGFwcGVuZCBhcmdzICJzZXRfZGIgYWRkX3RpZW9mZnNfbWF4X2Rpc3RhbmNlICR2YXJzKHRpZV9jZWxscyxtYXhfZGlzdGFuY2UpXG4iCi0gICAgICB9Ci0gICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnModGllX2NlbGxzLG1heF9mYW5vdXQpXX0gewotICAgICAgICAgYXBwZW5kIGFyZ3MgInNldF9kYiBhZGRfdGllb2Zmc19tYXhfZmFub3V0ICR2YXJzKHRpZV9jZWxscyxtYXhfZmFub3V0KVxuIgotICAgICAgfQotCi0gICAgICBpZiB7W0ZGOjppc19scF9mbG93XSAmJiAoW2luZm8gZXhpc3RzIHZhcnMocG93ZXJfZG9tYWlucyldICYmIChbbGxlbmd0aCAkdmFycyhwb3dlcl9kb21haW5zKV0gPiAxKSl9IHsKLQotICAgICAgICAgIyBHZXQgdGhlIHNldCBvZiB0aWUgY2VsbHMgdG8gdXNlLCBib3RoIGRvbWFpbi1zcGVjaWZpYyBhbmQgZ2VuZXJpYy4KLQotICAgICAgICAgc2V0IGFsbF90aWVfY2VsbHMgW2xpc3RdCi0KLSAgICAgICAgIHNldCBoYXNfZGVmYXVsdCBmYWxzZQotICAgICAgICAgaWYgeyFbY2F0Y2gge3NldCBkZWZhdWx0X2NlbGxzICR2YXJzKHRpZV9jZWxscyl9XX0gewotICAgICAgICAgICAgc2V0IGhhc19kZWZhdWx0IHRydWUKLSAgICAgICAgICAgIGxhcHBlbmQgYWxsX3RpZV9jZWxscyAkdmFycyh0aWVfY2VsbHMpCi0gICAgICAgICB9Ci0gICAgICAgICBzZXQgaGFzX3NwZWNpZmljIGZhbHNlCi0gICAgICAgICBmb3JlYWNoIGRvbWFpbiBbRkY6OmdldF9ieV9zdWZmaXggdmFycyAiLHRpZV9jZWxscyJdIHsKLSAgICAgICAgICAgIHNldCBjZWxscyAkdmFycygkZG9tYWluLHRpZV9jZWxscykKLSAgICAgICAgICAgIGxhcHBlbmQgYWxsX3RpZV9jZWxscyAkdmFycygkZG9tYWluLHRpZV9jZWxscykKLSAgICAgICAgICAgIGlmIHshW2xsZW5ndGggJGNlbGxzXX0gewotICAgICAgICAgICAgICAgY29udGludWUKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHNldCBoYXNfc3BlY2lmaWMgdHJ1ZQotIyAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJzZXQgdGllX2NlbGxzKCRkb21haW4pIFxbbGlzdCAkY2VsbHNcXVxuIgotIyAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAkY29tbWFuZAotICAgICAgICAgfQotCi0gICAgICAgICAjCi0gICAgICAgICAjIElmIHRoZXJlIGFyZSBubyB0aWUgY2VsbHMgYXQgYWxsLCB0aGVyZSdzIG5vdGhpbmcgdG8gZG8KLSAgICAgICAgICMKLQotICAgICAgICAgaWYgeyEkaGFzX2RlZmF1bHQgJiYgISRoYXNfc3BlY2lmaWN9IHsKLSAgICAgICAgICAgIHJldHVybiAiIgotICAgICAgICAgfQotCi0gICAgICAgICBzZXQgYWxsX3RpZV9jZWxscyBbbHNvcnQgLXVuaXF1ZSBbam9pbiAkYWxsX3RpZV9jZWxsc11dCi0KLSAgICAgICAgICMKLSAgICAgICAgICMgSWYgdGhlcmUgYXJlIG5vIGRvbWFpbi1zcGVjaWZpYyBlbnRyaWVzLCBsaWZlIGlzIHJlYWwgc2ltcGxlCi0gICAgICAgICAjCi0KLSMgICAgICAgICBpZiB7ISRoYXNfc3BlY2lmaWN9IHsKLSMgICAgICAgICAgICBzZXQgY29tbWFuZCAiXG5zZXRfZGIgYWRkX3RpZW9mZnNfY2VsbHMgXCIkZGVmYXVsdF9jZWxsc1wiXG4kYXJncyIKLSMgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksc2V0X3RpZV9oaV9sb19tb2RlICRjb21tYW5kXQotIyAgICAgICAgICAgIGlmIHskYWRkfSB7Ci0jICAgICAgICAgICAgICAgZm9yZWFjaCBjZWxsICRkZWZhdWx0X2NlbGxzIHsKLSMgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgInNldERvbnRVc2UgJGNlbGwgZmFsc2VcbiIKLSMgICAgICAgICAgICAgICB9Ci0jICAgICAgICAgICAgICAgaWYge1tsbGVuZ3RoICR2YXJzKHBvd2VyX2RvbWFpbnMpXSA+IDB9IHsKLSMgICAgICAgICAgICAgICAgICBmb3JlYWNoIGRvbWFpbiAkdmFycyhwb3dlcl9kb21haW5zKSB7Ci0jICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICAiICAgY2F0Y2gge2FkZF90aWVvZmZzIC1wb3dlcl9kb21haW4gJGRvbWFpbiAtcHJlZml4ICRkb21haW59XG4iCi0jICAgICAgICAgICAgICAgICAgfQotIyAgICAgICAgICAgICAgIH0KLSMgICAgICAgICAgICAgICBmb3JlYWNoIGNlbGwgJGRlZmF1bHRfY2VsbHMgewotIyAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAic2V0RG9udFVzZSAkY2VsbCB0cnVlXG4iCi0jICAgICAgICAgICAgICAgfQotIyAgICAgICAgICAgIH0KLSMgICAgICAgICB9IGVsc2UgewotIyAgICAgICAgICAgIGZvcmVhY2ggY2VsbCAkZGVmYXVsdF9jZWxscyB7Ci0jICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJzZXREb250VXNlICRjZWxsIGZhbHNlXG4iCi0jICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYge1tsbGVuZ3RoICR2YXJzKHBvd2VyX2RvbWFpbnMpXSA+IDB9IHsKLSAgICAgICAgICAgICAgIGZvcmVhY2ggZG9tYWluICR2YXJzKHBvd2VyX2RvbWFpbnMpIHsKLSAgICAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkZG9tYWluLHRpZV9jZWxscyldfSB7Ci0gICAgICAgICAgICAgICAgICAgICBzZXQgY29tbWFuZCAiXG5zZXRfZGIgYWRkX3RpZW9mZnNfY2VsbHMgXCIkdmFycygkZG9tYWluLHRpZV9jZWxscylcIlxuJGFyZ3MiCi0gICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyBkZWZhdWx0X2NlbGxzXX0geyAKLSAgICAgICAgICAgICAgICAgICAgICAgIHNldCBjb21tYW5kICJcbnNldF9kYiBhZGRfdGllb2Zmc19jZWxscyBcIiRkZWZhdWx0X2NlbGxzXCJcbiRhcmdzIgotICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlCi0gICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksc2V0X3RpZV9oaV9sb19tb2RlICRjb21tYW5kXQotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICAiICAgY2F0Y2gge2FkZF90aWVvZmZzIC1wb3dlcl9kb21haW4gJGRvbWFpbiAtcHJlZml4ICRkb21haW59XG4iCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0jICAgICAgICAgICAgZm9yZWFjaCBjZWxsICRkZWZhdWx0X2NlbGxzIHsKLSMgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgInNldERvbnRVc2UgJGNlbGwgdHJ1ZVxuIgotIyAgICAgICAgICAgIH0KLSMgICAgICAgICB9Ci0gICAgICB9IGVsc2VpZiB7IVtjYXRjaCB7c2V0IGNlbGxzICR2YXJzKHRpZV9jZWxscyl9XX0gewotICAgICAgICAgc2V0IGNvbW1hbmQgIlxuc2V0X2RiIGFkZF90aWVvZmZzX2NlbGxzIFwiJGNlbGxzXCJcbiRhcmdzIgotIyAgICAgICAgIGlmIHskbW9kZX0gewotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHNldF90aWVfaGlfbG9fbW9kZSAkY29tbWFuZF0KLSMgICAgICAgICB9Ci0gICAgICAgICAgc2V0IGNvbW1hbmQgIiIKLSMgICAgICAgICBhcHBlbmQgY29tbWFuZCAiZm9yZWFjaCBjZWxsIFx7JGNlbGxzXH0ge1xuIgotIyAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgICBzZXREb250VXNlIFwkY2VsbCBmYWxzZVxuIgotIyAgICAgICAgIGFwcGVuZCBjb21tYW5kICJ9XG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZCAiYWRkX3RpZW9mZnNcbiIKLSMgICAgICAgICBhcHBlbmQgY29tbWFuZCAiZm9yZWFjaCBjZWxsIFx7JGNlbGxzXH0ge1xuIgotIyAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgICBzZXREb250VXNlIFwkY2VsbCB0cnVlXG4iCi0jICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIn1cbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAkY29tbWFuZAotICAgICAgfSBlbHNlIHsKLSAgICAgICAgIHNldCBjb21tYW5kcyAiIgotICAgICAgfQotCi0gICAgICByZXR1cm4gJGNvbW1hbmRzCi0gICB9Ci0KLSAgIHByb2MgYWRkX2ZpbGxlcl9jZWxscyB7fSB7Ci0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAjIFRoaXMgcHJvY2VkdXJlIGluc2VydHMgdGllIGhpL2xvIGNlbGxzIGJhc2VkIG9uIGluZm9ybWF0aW9uIGluIHRoZQotICAgICAgIyBzZXR1cC50Y2wKLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLQotICAgICAgZ2xvYmFsIHZhcnMKLSAgICAgIGdsb2JhbCBlcnJvcnMKLQotICAgICAgc2V0IGNvbW1hbmRzICIiCi0KLSAgICAgIHNldCBjY29tbWFuZHMgIiIKLSAgICAgIGlmIHskdmFycyh2ZXJib3NlKX0gewotICAgICAgICAgYXBwZW5kIGNjb21tYW5kcyAiI1xuIgotICAgICAgICAgYXBwZW5kIGNjb21tYW5kcyAiIyBBREQgRklMTEVSIENFTExTXG4iCi0gICAgICAgICBhcHBlbmQgY2NvbW1hbmRzICIjXG4iCi0gICAgICB9Ci0KLSAgICAgIGFwcGVuZCBjb21tYW5kcyAkY2NvbW1hbmRzCi0KLSAgICAgIGlmIHtbRkY6OmlzX2xwX2Zsb3ddICYmIChbaW5mbyBleGlzdHMgdmFycyhwb3dlcl9kb21haW5zKV0gJiYgKFtsbGVuZ3RoICR2YXJzKHBvd2VyX2RvbWFpbnMpXSA+IDEpKX0gewotCi0gICAgICAgICAjIEdldCB0aGUgc2V0IG9mIGZpbGxlciBjZWxscyB0byB1c2UsIGJvdGggZG9tYWluLXNwZWNpZmljIGFuZCBnZW5lcmljLgotCi0gICAgICAgICBzZXQgYWxsX2ZpbGxlcl9jZWxscyBbbGlzdF0KLQotICAgICAgICAgc2V0IGhhc19kZWZhdWx0IGZhbHNlCi0gICAgICAgICBpZiB7IVtjYXRjaCB7c2V0IGRlZmF1bHRfY2VsbHMgJHZhcnMoZmlsbGVyX2NlbGxzKX1dfSB7Ci0gICAgICAgICAgICBzZXQgaGFzX2RlZmF1bHQgdHJ1ZQotICAgICAgICAgICAgbGFwcGVuZCBhbGxfZmlsbGVyX2NlbGxzICR2YXJzKGZpbGxlcl9jZWxscykKLSAgICAgICAgIH0KLSAgICAgICAgIHNldCBoYXNfc3BlY2lmaWMgZmFsc2UKLSAgICAgICAgIGZvcmVhY2ggZG9tYWluIFtGRjo6Z2V0X2J5X3N1ZmZpeCB2YXJzICIsZmlsbGVyX2NlbGxzIl0gewotICAgICAgICAgICAgc2V0IGNlbGxzICR2YXJzKCRkb21haW4sZmlsbGVyX2NlbGxzKQotICAgICAgICAgICAgbGFwcGVuZCBhbGxfZmlsbGVyX2NlbGxzICR2YXJzKCRkb21haW4sZmlsbGVyX2NlbGxzKQotICAgICAgICAgICAgaWYgeyFbbGxlbmd0aCAkY2VsbHNdfSB7Ci0gICAgICAgICAgICAgICBjb250aW51ZQotICAgICAgICAgICAgfQotICAgICAgICAgICAgc2V0IGhhc19zcGVjaWZpYyB0cnVlCi0jICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgInNldCBmaWxsZXJfY2VsbHMoJGRvbWFpbikgXFtsaXN0ICRjZWxsc1xdXG4iCi0jICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICRjb21tYW5kCi0gICAgICAgICB9Ci0KLSAgICAgICAgICMKLSAgICAgICAgICMgSWYgdGhlcmUgYXJlIG5vIGZpbGxlciBjZWxscyBhdCBhbGwsIHRoZXJlJ3Mgbm90aGluZyB0byBkbwotICAgICAgICAgIwotCi0gICAgICAgICBpZiB7ISRoYXNfZGVmYXVsdCAmJiAhJGhhc19zcGVjaWZpY30gewotICAgICAgICAgICAgcmV0dXJuICIiCi0gICAgICAgICB9Ci0KLSAgICAgICAgIHNldCBhbGxfZmlsbGVyX2NlbGxzIFtsc29ydCAtdW5pcXVlIFtqb2luICRhbGxfZmlsbGVyX2NlbGxzXV0KLQotICAgICAgICAgIwotICAgICAgICAgIyBJZiB0aGVyZSBhcmUgbm8gZG9tYWluLXNwZWNpZmljIGVudHJpZXMsIGxpZmUgaXMgcmVhbCBzaW1wbGUKLSAgICAgICAgICMKLQotIyAgICAgICAgIGlmIHshJGhhc19zcGVjaWZpY30gewotIyAgICAgICAgICAgIHNldCBjb21tYW5kICJzZXRfZGIgYWRkX2ZpbGxlcnNfY2VsbHMgXCIkZGVmYXVsdF9jZWxsc1wiXG5zZXRfZGIgYWRkX2ZpbGxlcnNfcHJlZml4IEZJTExcbiIKLSMgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksc2V0X2ZpbGxlcl9tb2RlICRjb21tYW5kXQotIyAgICAgICAgICAgIGlmIHskYWRkfSB7Ci0jICAgICAgICAgICAgICAgZm9yZWFjaCBjZWxsICRkZWZhdWx0X2NlbGxzIHsKLSMgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgInNldERvbnRVc2UgJGNlbGwgZmFsc2VcbiIKLSMgICAgICAgICAgICAgICB9Ci0jICAgICAgICAgICAgICAgaWYge1tsbGVuZ3RoICR2YXJzKHBvd2VyX2RvbWFpbnMpXSA+IDB9IHsKLSMgICAgICAgICAgICAgICAgICBmb3JlYWNoIGRvbWFpbiAkdmFycyhwb3dlcl9kb21haW5zKSB7Ci0jICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICAiICAgY2F0Y2gge2FkZF9maWxsZXJzIC1wb3dlcl9kb21haW4gJGRvbWFpbn1cbiIKLSMgICAgICAgICAgICAgICAgICB9Ci0jICAgICAgICAgICAgICAgfQotIyAgICAgICAgICAgICAgIGZvcmVhY2ggY2VsbCAkZGVmYXVsdF9jZWxscyB7Ci0jICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJzZXREb250VXNlICRjZWxsIHRydWVcbiIKLSMgICAgICAgICAgICAgICB9Ci0jICAgICAgICAgICAgfQotIyAgICAgICAgIH0gZWxzZSB7Ci0jICAgICAgICAgICAgZm9yZWFjaCBjZWxsICRkZWZhdWx0X2NlbGxzIHsKLSMgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgInNldERvbnRVc2UgJGNlbGwgZmFsc2VcbiIKLSMgICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiB7W2xsZW5ndGggJHZhcnMocG93ZXJfZG9tYWlucyldID4gMH0gewotICAgICAgICAgICAgICAgc2V0IGRlZmF1bHQgMAotICAgICAgICAgICAgICAgZm9yZWFjaCBkb21haW4gJHZhcnMocG93ZXJfZG9tYWlucykgewotICAgICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCRkb21haW4sZmlsbGVyX2NlbGxzKV19IHsKLSAgICAgICAgICAgICAgICAgICAgIHNldCBjb21tYW5kICJzZXRfZGIgYWRkX2ZpbGxlcnNfY2VsbHMgXCIkdmFycygkZG9tYWluLGZpbGxlcl9jZWxscylcIlxuc2V0X2RiIGFkZF9maWxsZXJzX3ByZWZpeCBGSUxMXG4iCi0gICAgICAgICAgICAgICAgICAgICBzZXQgZGVmYXVsdCAwCi0gICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyBkZWZhdWx0X2NlbGxzXX0gewotICAgICAgICAgICAgICAgICAgICAgICAgaWYgeyEkZGVmYXVsdH0gewotICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgInNldF9kYiBhZGRfZmlsbGVyc19jZWxscyBcIiRkZWZhdWx0X2NlbGxzXCJcbnNldF9kYiBhZGRfZmlsbGVyc19wcmVmaXggRklMTFxuIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0IGRlZmF1bHQgMQotICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICBzZXQgY29tbWFuZCAiIgotICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZQotICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHNldF9maWxsZXJfbW9kZSAkY29tbWFuZF0KLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAgIiAgIGNhdGNoIHthZGRfZmlsbGVycyAtcG93ZXJfZG9tYWluICRkb21haW59XG4iCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0jICAgICAgICAgICAgZm9yZWFjaCBjZWxsICRkZWZhdWx0X2NlbGxzIHsKLSMgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgInNldERvbnRVc2UgJGNlbGwgdHJ1ZVxuIgotIyAgICAgICAgICAgIH0KLSMgICAgICAgfQotICAgfSBlbHNlaWYgeyFbY2F0Y2gge3NldCBjZWxscyAkdmFycyhmaWxsZXJfY2VsbHMpfV19IHsKLSAgICAgICAgIHNldCBjb21tYW5kICJzZXRfZGIgYWRkX2ZpbGxlcnNfY2VsbHMgXCIkY2VsbHNcIlxuc2V0X2RiIGFkZF9maWxsZXJzX3ByZWZpeCBGSUxMXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksc2V0X2ZpbGxlcl9tb2RlICRjb21tYW5kXQotICAgICAgICAgICAgc2V0IGNvbW1hbmQgImFkZF9maWxsZXJzXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgJGNvbW1hbmQKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgICBzZXQgY29tbWFuZHMgIiIKLSAgICAgIH0KLQotICAgICAgcmV0dXJuICRjb21tYW5kcwotICAgfQotCi0gICBwcm9jIGRlbGV0ZV9maWxsZXJfY2VsbHMge30gewotCi0gICAgICBnbG9iYWwgdmFycwotCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAjIFJlbW92ZSBmaWxsZXIgY2VsbHMKLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLQotICAgICAgc2V0IGNvbW1hbmQgImRlbGV0ZV9maWxsZXJcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxkZWxldGVfZmlsbGVyX2NlbGxzICRjb21tYW5kXQotICAgICAgcmV0dXJuICRjb21tYW5kcwotICAgfQotCi0gICBwcm9jIGluc2VydF93ZWxsdGFwc19lbmRjYXBzIHt7b3V0bGluZSBmYWxzZX19IHsKLQotICAgICAgZ2xvYmFsIHZhcnMKLQotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgIyBJbnNlcnQgd2VsbHRhcHMgYW5kIHByZS9wb3N0IGVuZGNhcHMKLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLQotICAgICAgZ2xvYmFsIHZhcnMKLSAgICAgIGdsb2JhbCBlcnJvcnMKLSAgICAgIGdsb2JhbCB3YXJuaW5ncwotCi0gICAgICBzZXQgY29tbWFuZHMgIiIKLQotICAgICAgaWYge1tGRjo6aXNfbHBfZmxvd10gJiYgKFtpbmZvIGV4aXN0IHZhcnMocG93ZXJfZG9tYWlucyldICYmIChbbGxlbmd0aCAkdmFycyhwb3dlcl9kb21haW5zKV0gPiAxKSl9IHsKLQotICAgICAgICAgaWYgeyR2YXJzKGZsYXQpID09ICJmdWxsIn0gewotICAgICAgICAgICAgIwotICAgICAgICAgICAgIyBKdXN0IGxpa2UgdGllIGFuZCBmaWxsZXIgY2VsbHMsIHdlIGNhbiBoYXZlIHBvd2VyIGRvbWFpbi1zcGVjaWZpYwotICAgICAgICAgICAgIyBjZWxscyBhbmQgc2V0dGluZ3MgdGhhdCB3ZSBuZWVkIHRvIHdvcnJ5IGFib3V0LgotICAgICAgICAgICAgIwotICAgCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGX05PVlVTOjpnZXRfcG93ZXJfZG9tYWluc19jb2RlXQotICAgCi0gICAgICAgICAgICAjCi0gICAgICAgICAgICAjIEdldCB0aGUgc2V0IG9mIGRvbWFpbnMgdGhhdCB3ZSBuZWVkIHRvIHdvcnJ5IGFib3V0Ci0gICAgICAgICAgICAjCi0gICAKLSAgICAgICAgICAgIHNldCBwcmUgW0ZGOjpnZXRfYnlfc3VmZml4IHZhcnMgIixwcmVfZW5kY2FwIl0KLSAgICAgICAgICAgIHNldCBwb3N0IFtGRjo6Z2V0X2J5X3N1ZmZpeCB2YXJzICIscG9zdF9lbmRjYXAiXQotICAgICAgICAgICAgc2V0IGVuZGNhcHMgW0ZGOjpsaW50ZXJzZWN0aW9uICRwcmUgJHBvc3RdCi0gICAgICAgICAgICBzZXQgd2VsbHRhcHMgW0ZGOjpnZXRfYnlfc3VmZml4IHZhcnMgIix3ZWxsdGFwcyJdCi0gICAKLSAgICAgICAgICAgICMKLSAgICAgICAgICAgICMgRm9yIGV2ZXJ5IGRvbWFpbiBpbiB0aGUgdW5pb24sIHdlIG5lZWQgdG8gaXNzdWUgc3RhdGVtZW50cyBpZiB0aGF0Ci0gICAgICAgICAgICAjIGRvbWFpbiBpcyBvbmUgb2YgdGhlIHBvd2VyIGRvbWFpbnMgaW4gdGhlIGRlc2lnbgotICAgICAgICAgICAgIwotICAgICAgICAgICAgIyBOT1RFOiBXZSByZWFsbHkgZG9uJ3QgbmVlZCB0byB3b3JyeSBhYm91dCBpbmRlbnRpbmcgdGhlIGNvbW1hbmRzCi0gICAgICAgICAgICAjICAgICAgIHRvIGxvb2sgbmljZSBzaW5jZSB0aGUgb3V0cHV0IHJvdXRpbmUgd2lsbCBmb3JtYXQgaXQgY29ycmVjdGx5Ci0gICAgICAgICAgICAjCi0gICAKLSAgICAgICAgICAgIHNldCBkb21haW5zIFtGRjo6bHVuaW9uICRlbmRjYXBzICR3ZWxsdGFwc10KLQotICAgICAgICAgICAgZm9yZWFjaCBkb21haW4gJGRvbWFpbnMgewotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJpZiB7XFtsc2VhcmNoIFwkZG9tYWlucyAkZG9tYWluXF0gIT0gLTF9IHtcbiIKLSAgIAotICAgICAgICAgICAgICAgIwotICAgICAgICAgICAgICAgIyBIYW5kbGUgdGhlIGVuZCBjYXBzCi0gICAgICAgICAgICAgICAjCi0gICAKLSAgICAgICAgICAgICAgIHNldCBzdGRfYXJncyAiLXByZWZpeCAkZG9tYWluIC1wb3dlcl9kb21haW4gJGRvbWFpbiIKLSAgICAgICAgICAgICAgIHNldCBhZGQgImFkZF9lbmRjYXBzICRzdGRfYXJncyIKLSAgICAgICAgICAgICAgIGlmIHshW2NhdGNoIHtzZXQgcHJlICR2YXJzKCRkb21haW4scHJlX2VuZGNhcCl9XSAmJgotICAgICAgICAgICAgICAgICAgICFbY2F0Y2gge3NldCBwb3N0ICR2YXJzKCRkb21haW4scG9zdF9lbmRjYXApfV19IHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiJGFkZCAtc3RhcnRfcm93X2NhcCAkcHJlIC1lbmRfcm93X2NhcCAkcG9zdFxuIgotICAgICAgICAgICAgICAgfSBlbHNlaWYgeyFbY2F0Y2gge3NldCBwcmUgJHZhcnMocHJlX2VuZGNhcCl9XSAmJgotICAgICAgICAgICAgICAgICAgICAgICAgICFbY2F0Y2gge3NldCBwb3N0ICR2YXJzKHBvc3RfZW5kY2FwKX1dfSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiRhZGQgLXN0YXJ0X3Jvd19jYXAgJHByZSAtZW5kX3Jvd19jYXAgJHBvc3RcbiIKLSAgICAgICAgICAgICAgIH0KLSAgIAotICAgICAgICAgICAgICAgc2V0IHRhcHMgIiIKLSAgICAgICAgICAgICAgIGlmIHtbY2F0Y2gge3NldCB0YXBzICR2YXJzKCRkb21haW4sd2VsbHRhcHMpfV19IHsKLSAgICAgICAgICAgICAgICAgIGNhdGNoIHtzZXQgdGFwcyAkdmFycyh3ZWxsdGFwcyl9Ci0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICBpZiB7JHRhcHMgPT0gIiJ9IHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiXH1cbiIKLSAgICAgICAgICAgICAgICAgIGNvbnRpbnVlCi0gICAgICAgICAgICAgICB9Ci0gICAKLSAgICAgICAgICAgICAgICMKLSAgICAgICAgICAgICAgICMgSGFuZGxlIHdlbGwgdGFwcwotICAgICAgICAgICAgICAgIwotICAgCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgImFkZF93ZWxsX3RhcHMgJHN0ZF9hcmdzIC1jZWxsIFxbbGlzdCAkdGFwc1xdIgotICAgCi0gICAgICAgICAgICAgICBpZiB7IVtjYXRjaCB7c2V0IGkgJHZhcnMoJGRvbWFpbix3ZWxsdGFwcyxjZWxsX2ludGVydmFsKX1dfSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiAtY2VsbF9pbnRlcnZhbCAkaSIKLSAgICAgICAgICAgICAgIH0gZWxzZWlmIHshW2NhdGNoIHtzZXQgaSAkdmFycyh3ZWxsdGFwcyxjZWxsX2ludGVydmFsKX1dfSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiAtY2VsbF9pbnRlcnZhbCAkaSIKLSAgICAgICAgICAgICAgIH0KLSAgIAotICAgICAgICAgICAgICAgaWYgeyFbY2F0Y2gge3NldCBvZmZzZXQgJHZhcnMoJGRvbWFpbix3ZWxsdGFwcyxyb3dfb2Zmc2V0KX1dIHx8Ci0gICAgICAgICAgICAgICAgICAgIVtjYXRjaCB7c2V0IG9mZnNldCAkdmFycyh3ZWxsdGFwcyxyb3dfb2Zmc2V0KX1dfSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiAtaW5fcm93X29mZnNldCAkb2Zmc2V0IgotICAgICAgICAgICAgICAgfQotICAgCi0gICAgICAgICAgICAgICBpZiB7IVtjYXRjaCB7c2V0IGNoZWNrZXIgJHZhcnMoJGRvbWFpbix3ZWxsdGFwcyxjaGVja2VyYm9hcmQpfV0gfHwKLSAgICAgICAgICAgICAgICAgICAhW2NhdGNoIHtzZXQgY2hlY2tlciAkdmFycyh3ZWxsdGFwcyxjaGVja2VyYm9hcmQpfV19IHsKLSAgICAgICAgICAgICAgICAgIGlmIHskY2hlY2tlcn0gewotICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIgLWNoZWNrZXJfYm9hcmQiCi0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIlxuIgotICAgCi0gICAgICAgICAgICAgICAjCi0gICAgICAgICAgICAgICAjIEFkZCBhIHZlcmlmeSBzdGVwLCBpZiByZXF1ZXN0ZWQKLSAgICAgICAgICAgICAgICMKLSAgIAotIyAgICAgICAgICAgICAgIGlmIHshW2NhdGNoIHtzZXQgcnVsZSAkdmFycygkZG9tYWluLHdlbGx0YXBzLHZlcmlmeV9ydWxlKX1dIHx8Ci0jICAgICAgICAgICAgICAgICAgICFbY2F0Y2gge3NldCBydWxlICR2YXJzKHdlbGx0YXBzLHZlcmlmeV9ydWxlKX1dfSB7Ci0jICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJjaGVja193ZWxsX3RhcCAtY2VsbHMgXFtsaXN0ICR0YXBzXF0iCi0jICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIgLXBvd2VyX2RvbWFpbiAkZG9tYWluIgotIyAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIC1yZXBvcnQgJHZhcnMocnB0X2RpcikvJGRvbWFpbi53ZWxsdGFwLnJwdFxuIgotIyAgICAgICAgICAgICAgIH0KLSAgIAotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJ9XG4iCi0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgICMKLSAgICAgICAgICAgICMgV2UndmUgdGFrZW4gY2FyZSBvZiBhbGwgb2YgdGhlIGRvbWFpbnMgdGhhdCB3ZSBoYXZlIGV4cGxpY2l0Ci0gICAgICAgICAgICAjIHNldHRpbmdzIGZvci4gIEhvd2V2ZXIsIHdlIG1heSBzdGlsbCBoYXZlIGRvbWFpbnMgaW4gdGhlIGRlc2lnbgotICAgICAgICAgICAgIyB0aGF0IHdlIGtub3cgbm90aGluZyBleHBsaWNpdCBhYm91dC4gIFdlIG5lZWQgdG8gaGFuZGxlIHRoZXNlCi0gICAgICAgICAgICAjIHdpdGggYSBkaWZmZXJlbnQgc2V0IG9mIGNvZGUuCi0gICAgICAgICAgICAjCi0gICAgICAgICAgICAjIFdlIGFyZSBnb2luZyB0byBjaGVhdC4gIFNpbmNlIHRoZSBjb2RlIHdlIG5lZWQgaXMgYWxyZWFkeSB3cml0dGVuCi0gICAgICAgICAgICAjIChiZWxvdyksIHdlIGFyZSBnb2luZyB0byByZWN1cnNpdmVseSBjYWxsIHRoaXMgcm91dGluZSB0byBnZXQKLSAgICAgICAgICAgICMgdGhlIHNrZWxldG9uIHRoYXQgd2UgbmVlZCBhbmQgd3JhcCBpdCB1cCBpbnRvIGEgZm9yLWxvb3AuICBUaGlzCi0gICAgICAgICAgICAjIHNob3VsZCBnZXQgdXMgc29tZXRoaW5nIHRoYXQgbG9va3MgbGlrZSB0aGUgZm9sbG93aW5nOgotICAgICAgICAgICAgIyAgICAgICBzZXQgcHJvY2Vzc2VkIFtsaXN0IGRvbWFpbjEgZG9tYWluMiBkb21haW4zXQotICAgICAgICAgICAgIyAgICAgICBmb3JlYWNoIGRvbWFpbiAkZG9tYWlucyB7Ci0gICAgICAgICAgICAjICAgICAgICAgIGlmIHtbbHNlYXJjaCAkcHJvY2Vzc2VkX2RvbWFpbnMgJGRvbWFpbl0gPT0gLTF9IHsKLSAgICAgICAgICAgICMgICAgICAgICAgICAgYWRkRW5kQ2FwIC1wb3dlcl9kb21haW4gJGRvbWFpbiAtcHJlZml4ICRkb21haW4gLi4uCi0gICAgICAgICAgICAjICAgICAgICAgICAgIGFkZFdlbGxUYXAgLXBvd2VyX2RvbWFpbiAkZG9tYWluIC1wcmVmaXggJGRvbWFpbiAuLi4KLSAgICAgICAgICAgICMgICAgICAgICAgICAgdmVyaWZ5V2VsbFRhcCAtcG93ZXJfZG9tYWluICRkb21haW4gLi4uCi0gICAgICAgICAgICAjICAgICAgICAgIH0KLSAgICAgICAgICAgICMgICAgICAgfQotICAgICAgICAgICAgIwotICAgICAgICAgICAgIyBOT1RFOiBUaGUgb3V0cHV0IHJvdXRpbmUgd2lsbCB0YWtlIGNhcmUgb2YgbWFraW5nIHRoaXMgbG9vayBwcmV0dHkKLSAgICAgICAgICAgICMgICAgICAgYXQgdGhlIGVuZC4gIFdlIGRvbid0IG5lZWQgdG8gd29ycnkgYWJvdXQgaW5kZW50YXRpb24gZm9yCi0gICAgICAgICAgICAjICAgICAgIHRoZSBpbnNlcnRlZCBjb21tYW5kcwotICAgICAgICAgICAgIwotICAgCi0jICAgICAgICAgICAgc2V0IHNhdmUgJHZhcnMoY3BmX2ZpbGUpCi0jICAgICAgICAgICAgdW5zZXQgdmFycyhjcGZfZmlsZSkKLSMgICAgICAgICAgICBzZXQgZGVmYXVsdF9pbnNlcnQgW2luc2VydF93ZWxsdGFwc19lbmRjYXBzIHRydWVdCi0jICAgICAgICAgICAgaWYgeyRkZWZhdWx0X2luc2VydCAhPSAiIn0gewotIyAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAic2V0IHByb2Nlc3NlZF9kb21haW5zIFxbbGlzdCAkZG9tYWluc1xdXG4iCi0jICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJmb3JlYWNoIGRvbWFpbiBcJGRvbWFpbnMge1xuIgotIyAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiICAgaWYge1xbbHNlYXJjaCBcJHByb2Nlc3NlZF9kb21haW5zIFwkZG9tYWluXF0gPT0gLTF9IHtcbiIKLSMgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiAgICAgICRkZWZhdWx0X2luc2VydCIKLSMgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiAgIH1cbiIKLSMgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIn1cbiIKLSMgICAgICAgICAgICB9Ci0jICAgICAgICAgICAgc2V0IHZhcnMoY3BmX2ZpbGUpICRzYXZlCi0gICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJmZl9wcm9jczo6aW5zZXJ0X3dlbGx0YXBzX2VuZGNhcHNcbiIKLSAgICAgICAgIH0KLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAjCi0gICAgICAgICAjIFRoZXJlIGlzIG5vIENQRiBmaWxlIHRoYXQgd2UgbmVlZCB0byB3b3JyeSBhYm91dC4gIEhvd2V2ZXIsIGlmCi0gICAgICAgICAjICRvdXRsaW5lIGlzIHRydWUsIGl0IG1lYW5zIHRoYXQgdGhlIGNvZGUgKGFib3ZlKSB0aGF0IGhhbmRsZXMgcG93ZXIKLSAgICAgICAgICMgZG9tYWlucyBjYWxsZWQgdGhpcyByb3V0aW5lIHJlY3Vyc2l2ZWx5LCBhbmQgd2UgbmVlZCB0byBjaGFuZ2UKLSAgICAgICAgICMgdGhlIGNvbW1hbmRzIGEgbGl0dGxlIGJpdCB0byBpbmNsdWRlIHZhcmlhYmxlcyBmb3IgcG93ZXIgZG9tYWlucwotICAgICAgICAgIwotICAgICAgICAgIyBTdGFydCB3aXRoIHRoZSBzaW1wbGUgY2FzZTogZW5kY2FwcwotICAgICAgICAgIwotCi0gICAgICAgICBpZiB7IVtjYXRjaCB7c2V0IHByZSAkdmFycyhwcmVfZW5kY2FwKX1dICYmCi0gICAgICAgICAgICAgIVtjYXRjaCB7c2V0IHBvc3QgJHZhcnMocG9zdF9lbmRjYXApfV19IHsKLQotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJhZGRfZW5kY2FwcyAtc3RhcnRfcm93X2NhcCAkcHJlIC1lbmRfcm93X2NhcCAkcG9zdCIKLSAgICAgICAgICAgIGlmIHshJG91dGxpbmV9IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIC1wcmVmaXggRU5EQ0FQXG4iCi0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIgLXByZWZpeCBcJGRvbWFpbiAtcG93ZXJfZG9tYWluIFwkZG9tYWluXG4iCi0gICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0KLSAgICAgICAgICMKLSAgICAgICAgICMgTm93IHByb2Nlc3Mgd2VsbHRhcHMKLSAgICAgICAgICMKLQotICAgICAgICAgaWYgeyFbY2F0Y2gge3NldCB0YXBzICR2YXJzKHdlbGx0YXBzKX1dfSB7Ci0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgImFkZF93ZWxsX3RhcHMgLWNlbGwgXFtsaXN0ICR0YXBzXF0iCi0gICAgICAgICAgICBpZiB7ISRvdXRsaW5lfSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiAtcHJlZml4IFdFTExUQVAiCi0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIgLXByZWZpeCBcJGRvbWFpbiAtcG93ZXJfZG9tYWluIFwkZG9tYWluIgotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBpZiB7IVtjYXRjaCB7c2V0IG1heF9nYXAgJHZhcnMod2VsbHRhcHMsbWF4X2dhcCl9XX0gewotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIgLW1heF9nYXAgJG1heF9nYXAiCi0gICAgICAgICAgICB9IGVsc2VpZiB7IVtjYXRjaCB7c2V0IGludGVydmFsICR2YXJzKHdlbGx0YXBzLGNlbGxfaW50ZXJ2YWwpfV19IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIC1jZWxsX2ludGVydmFsICRpbnRlcnZhbCIKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgaWYgeyFbY2F0Y2gge3NldCBvZmZzZXQgJHZhcnMod2VsbHRhcHMscm93X29mZnNldCl9XX0gewotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIgLWluX3Jvd19vZmZzZXQgJG9mZnNldCIKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgaWYgeyFbY2F0Y2gge3NldCBjaGVja2VyICR2YXJzKHdlbGx0YXBzLGNoZWNrZXJib2FyZCl9XX0gewotICAgICAgICAgICAgICAgaWYgeyRjaGVja2VyfSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiAtY2hlY2tlcl9ib2FyZCIKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiXG4iCi0KLSAgICAgICAgICAgICMKLSAgICAgICAgICAgICMgSWYgYSB2ZXJpZnkgcmVxdWVzdCBoYXMgYmVlbiBtYWRlLCBjcmVhdGUgdGhlIGNvbW1hbmQgdG8KLSAgICAgICAgICAgICMgZG8gc28uICBBZ2FpbiwgdGFrZSBpbnRvIGFjY291bnQgdGhlIHBvdGVudGlhbCBmb3IgYSByZWN1cnNpdmUKLSAgICAgICAgICAgICMgY2FsbCB0byB0aGlzIHJvdXRpbmUuCi0gICAgICAgICAgICAjCi0KLSMgICAgICAgICAgICBpZiB7IVtjYXRjaCB7c2V0IHJ1bGUgJHZhcnMod2VsbHRhcHMsdmVyaWZ5X3J1bGUpfV19IHsKLSMgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgImNoZWNrX3dlbGxfdGFwIC1jZWxscyBcW2xpc3QgJHRhcHNcXSAiCi0jICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIgLXJlcG9ydCAkdmFycyhycHRfZGlyKS8iCi0jICAgICAgICAgICAgICAgaWYgeyEkb3V0bGluZX0gewotIyAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAid2VsbHRhcC5ycHRcbiIKLSMgICAgICAgICAgICAgICB9IGVsc2UgewotIyAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiXCRkb21haW4ud2VsbHRhcC5ycHQgLXBvd2VyX2RvbWFpbiBcJGRvbWFpblxuIgotIyAgICAgICAgICAgICAgIH0KLSMgICAgICAgICAgICB9IGVsc2VpZiB7ISRvdXRsaW5lfSB7Ci0jIyAgICAgICAgICAgICAgIHB1dHMgICI8RkY+IENhbm5vdCBydW4gdmVyaWZ5V2VsbFRhcCBiZWNhdXNlIHZhcnMod2VsbHRhcHMsdmVyaWZ5X3J1bGUpIGlzIG5vdCBkZWZpbmVkIgotIyAgICAgICAgICAgICAgIHNldCB3YXJuaW5ncygkdmFycyh3YXJuaW5nX2NvdW50KSkgIkNhbm5vdCBydW4gdmVyaWZ5V2VsbFRhcCBiZWNhdXNlIHZhcnMod2VsbHRhcHMsdmVyaWZ5X3J1bGUpIGlzIG5vdCBkZWZpbmVkIgotIyAgICAgICAgICAgICAgIGluY3IgdmFycyh3YXJuaW5nX2NvdW50KQotIyAgICAgICAgICAgIH0KLSAgICAgICAgIH0KLSAgICAgIH0KLQotICAgICAgIwotICAgICAgIyBJZiB3ZSBjcmVhdGVkIGFueSBjb21tYW5kcyB0byBiZSBleGVjdXRlZCwgcHJlZml4IHRoZSBjb21tYW5kcyB3aXRoIGEKLSAgICAgICMgaGVhZGVyCi0gICAgICAjCi0KLSAgICAgIGlmIHsoJGNvbW1hbmRzICE9ICIiKSAmJiAhJG91dGxpbmV9IHsKLSAgICAgICAgIHNldCBib2R5ICRjb21tYW5kcwotCi0gICAgICAgICBzZXQgY29tbWFuZHMgIiIKLSAgICAgICAgIGlmIHskdmFycyh2ZXJib3NlKX0gewotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjXG4iCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgSU5TRVJUSU5HIFdFTExUQVBTIEFORC9PUiBFTkRDQVBTXG4iCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiNcbiIKLSAgICAgICAgIH0KLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAkYm9keQotICAgICAgfQotCi0gICAgICByZXR1cm4gJGNvbW1hbmRzCi0gICB9Ci0KLSAgIHByb2Mgcm91dGVfc2Vjb25kYXJ5X3BnX25ldHMge30gewotCi0gICAgICBnbG9iYWwgdmFycwotICAgICAgZ2xvYmFsIGVycm9ycwotCi0gICAgICAjCi0gICAgICAjIERvbid0IHRyeSB0byByb3V0ZSB1bmxlc3MgdGhlIHByb3BlciBmbGFncyBhcmUgaW4gcGxhY2UgdG8gZG8gc28KLSAgICAgICMKLQotICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycyhyb3V0ZV9zZWNvbmRhcnlfcGdfbmV0cyldIHx8Ci0gICAgICAgICAgISR2YXJzKHJvdXRlX3NlY29uZGFyeV9wZ19uZXRzKX0gewotICAgICAgICAgcmV0dXJuICIiCi0gICAgICB9Ci0KLSAgICAgIHNldCBjb21tYW5kcyAiIyA8RkY+IFJPVVRJTkcgU0VDT05EQVJZIFBPV0VSIE5FVFMgLi4uXG4iCi0KLSAgICAgICMKLSAgICAgICMgRW5hYmxlIGdsb2JhbCBwaW4gcGFpcnMgKGlmIGRlZmluZWQpCi0gICAgICAjCi0KLSAgICAgIGlmIHtbY2F0Y2gge3NldCBhcmcgJHZhcnMoc2Vjb25kYXJ5X3BnLGNlbGxfcGluX3BhaXJzKX1dfSB7Ci0gICAgICAgICBwdXRzICI8RkY+ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0iCi0gICAgICAgICBwdXRzICI8RkY+IEVSUk9SOiBObyBjZWxsL3BpbiBwYWlycyBkZWZpbmVkLiAgUGxlYXNlIGRlZmluZSBjZWxsL3BpbiIKLSAgICAgICAgIHB1dHMgIjxGRj4gICAgICAgIHBhaXJzIGluIHlvdXIgc2V0dXAudGNsIHVzaW5nIHRoZSB2YXJpYWJsZSIKLSAgICAgICAgIHB1dHMgIjxGRj4gICAgICAgIHZhcnMoc2Vjb25kYXJ5X3BnLGNlbGxfcGluX3BhaXJzKSIKLSAgICAgICAgIHB1dHMgIjxGRj4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSIKLSAgICAgICAgIGlmIHskdmFycyhjb2RlZ2VuKX0gewotICAgICAgICAgICAgcmV0dXJuICRjb21tYW5kcwotICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICB1cGxldmVsICMwIGV2YWwgJGNvbW1hbmRzCi0gICAgICAgICB9Ci0gICAgICB9Ci0gICAgICBhcHBlbmQgY29tbWFuZHMgInNldF9wZ19waW5zX3VzZV9zaWduYWxfcm91dGUgJGFyZ1xuIgotCi0gICAgICAjCi0gICAgICAjIEJ1aWxkIGNvbW1hbmRzIGZvciBpbmRpdmlkdWFsIG5ldHMgKGlmIGRlZmluZWQpCi0gICAgICAjCi0KLSAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhzZWNvbmRhcnlfcGcsbmV0cyldfSB7Ci0gICAgICAgICBmb3JlYWNoIG5ldCAkdmFycyhzZWNvbmRhcnlfcGcsbmV0cykgewotICAgICAgICAgICAgaWYgeyFbY2F0Y2gge3NldCBhcmcgJHZhcnMoJG5ldCxjZWxsX3Bpbl9wYWlycyl9XX0gewotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJzZXRfcGdfcGluc191c2Vfc2lnbmFsX3JvdXRlICRhcmdcbiIKLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0KLSAgICAgICAgIHNldCBuZXRzICR2YXJzKHNlY29uZGFyeV9wZyxuZXRzKQotICAgICAgICAgc2V0IG5ldEZvcm1hdCAiIC1uZXRzICVzIgotICAgICAgfSBlbHNlIHsKLSAgICAgICAgIHNldCBuZXRzIFtsaXN0ICJzZWNvbmRhcnlfcGciXQotICAgICAgICAgc2V0IG5ldEZvcm1hdCAiIgotICAgICAgfQotCi0gICAgICBmb3JlYWNoIG5ldCAkbmV0cyB7Ci0gICAgICAgICBzZXQgcm91dGUgInJvdXRlX3NlY29uZGFyeV9wZ19waW5zIgotICAgICAgICAgYXBwZW5kIHJvdXRlIFtmb3JtYXQgJG5ldEZvcm1hdCAkbmV0XQotICAgICAgICAgY2F0Y2gge2FwcGVuZCByb3V0ZSAiIC1wYXR0ZXJuICR2YXJzKCRuZXQscGF0dGVybikifQotICAgICAgICAgY2F0Y2gge2FwcGVuZCByb3V0ZSAiIC1tYXhfcGluc19wZXJfdHJ1bmsgJHZhcnMoJG5ldCxtYXhfZmFub3V0KSJ9Ci0gICAgICAgICBjYXRjaCB7YXBwZW5kIHJvdXRlICIgLW5vbl9kZWZhdWx0X3J1bGUgJHZhcnMoJG5ldCxub25fZGVmYXVsdF9ydWxlKSJ9Ci0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiRyb3V0ZVxuIgotICAgICAgfQotICAgICAgcmV0dXJuICRjb21tYW5kcwotICAgfQotCi0gICBwcm9jIGFkZF9wb3dlcl9zd2l0Y2hlcyB7e2RvbWFpbnMgIiJ9fSB7Ci0KLSAgICAgIGdsb2JhbCB2YXJzCi0gICAgICBnbG9iYWwgZXJyb3JzCi0gICAgICBnbG9iYWwgbWFwCi0KLSAgICAgIHNvdXJjZSAkdmFycyhzY3JpcHRfcGF0aCkvRVRDL0lOT1ZVUy9tYXBfb3B0aW9ucy50Y2wKLQotICAgICAgaWYgeyRkb21haW5zID09ICIifSB7Ci0gICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRl9OT1ZVUzo6Z2V0X3Bvd2VyX2RvbWFpbnNfY29kZV0KLSMgICAgICAgICBldmFsIFtGRjo6Z2V0X3Bvd2VyX2RvbWFpbnNfY29kZV0KLSAgICAgIH0KLQotICAgICAgZm9yZWFjaCBkb21haW4gJGRvbWFpbnMgewotICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCRkb21haW4sc3dpdGNoYWJsZSldICYmCi0gICAgICAgICAgICAgJHZhcnMoJGRvbWFpbixzd2l0Y2hhYmxlKX0gewotICAgICAgICAgICAgc2V0IHR5cGUgJHZhcnMoJGRvbWFpbixzd2l0Y2hfdHlwZSkKLQotICAgICAgICAgICAgZGVsZXRlUG93ZXJTd2l0Y2ggLSR0eXBlIC1wb3dlcl9kb21haW4gJGRvbWFpbgotCi0gICAgICAgICAgICBzZXQgY29tbWFuZCAiYWRkUG93ZXJTd2l0Y2ggLXBvd2VyX2RvbWFpbiAkZG9tYWluIC0kdHlwZSIKLQotICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCRkb21haW4sY2hlY2tlcl9ib2FyZCldICYmCi0gICAgICAgICAgICAgICAgJHZhcnMoJGRvbWFpbixjaGVja2VyX2JvYXJkKX0gewotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAtY2hlY2tlckJvYXJkIgotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCRkb21haW4sYmFja190b19iYWNrX2NoYWluKV0gJiYKLSAgICAgICAgICAgICAgICAkdmFycygkZG9tYWluLGJhY2tfdG9fYmFja19jaGFpbil9IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgLWJhY2tUb0JhY2tDaGFpbiIKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkZG9tYWluLGxvb3BfYmFja19hdF9lbmQpXSAmJgotICAgICAgICAgICAgICAgICR2YXJzKCRkb21haW4sbG9vcF9iYWNrX2F0X2VuZCl9IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgLWxvb3BiYWNrQXRFbmQiCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJGRvbWFpbixjaGVja19oZWlnaHQpXSAmJgotICAgICAgICAgICAgICAgICEkdmFycygkZG9tYWluLGNoZWNrX2hlaWdodCl9IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgLW5vRG91YmxlSGVpZ2h0Q2hlY2siCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJGRvbWFpbix2ZXJpZnlfcm93cyldICYmCi0gICAgICAgICAgICAgICAgISR2YXJzKCRkb21haW4sdmVyaWZ5X3Jvd3MpfSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiIC1ub1Jvd1ZlcmlmeSIKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkZG9tYWluLGVuYWJsZV9jaGFpbildICYmCi0gICAgICAgICAgICAgICAgISR2YXJzKCRkb21haW4sZW5hYmxlX2NoYWluKX0gewotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAtbm9FbmFibGVDaGFpbiIKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgZm9yZWFjaCBvcHRpb24gW2FycmF5IG5hbWVzIG1hcF0gewotICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCRkb21haW4sJG9wdGlvbildfSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiIC0kbWFwKCRvcHRpb24pICR2YXJzKCRkb21haW4sJG9wdGlvbikiCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIHVwbGV2ZWwgIzAgZXZhbCAkY29tbWFuZAotICAgICAgICAgfQotICAgICAgfQotICAgfQotCi0gICBwcm9jIHJ1bl9jbG9ja19lY28ge2FyZ3N9IHsKLQotICAgICAgZ2xvYmFsIHZhcnMKLSAgICAgIGdsb2JhbCBlcnJvcnMKLQotICAgICAgaWYge1tsbGVuZ3RoICRhcmdzXSAhPSAxfSB7Ci0gICAgICAgICBwdXRzICI8RkY+IEludGVybmFsIGVycm9yIGluIHJ1bl9jbG9ja19lY28uICBXcm9uZyBudW1iZXIgb2YgYXJncy4iCi0gICAgICAgICBleGl0IC0xMTEKLSAgICAgIH0KLQotICAgICAgc2V0IGNvbW1hbmRzICIiCi0jICAgICAgYXBwZW5kIGNvbW1hbmRzICIjIDxGRj4gUlVOTklORyBDTE9DSyBFQ09cbiIKLSAgICAgIHN3aXRjaCAkYXJncyB7Ci0gICAgICAgICAicG9zdF9yb3V0ZSIgewotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRl9OT1ZVUzo6ZGVsZXRlX2ZpbGxlcl9jZWxsc10KLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiY2xvY2tfZWNvIC1wb3N0X3JvdXRlIC11c2Vfc3BlY19maWxlX2NlbGxzX29ubHlcbiIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkZfTk9WVVM6OmFkZF9maWxsZXJfY2VsbHNdCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgImNoYW5nZUNsb2NrU3RhdHVzIC1hbGwgLW5vX2ZpeGVkX25ldF93aXJlc1xuIgotICAgICAgICAgfQotICAgICAgICAgInBvc3RfY3RzIiB7IAotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJjbG9ja19lY28gLXBvc3RfY3RzIC11c2Vfc3BlY19maWxlX2NlbGxzX29ubHlcbiIKLSAgICAgICAgIH0KLSAgICAgICAgIGRlZmF1bHQgewotICAgICAgICAgICAgcHV0cyAiPEZGPiBJbnRlcm5hbCBlcnJvciBpbiBydW5fY2xvY2tfZWNvLiIKLSAgICAgICAgICAgIHB1dHMgIjxGRj4gSW52YWxpZCBhcmd1bWVudDsgdmFsaWQgYXJndW1lbnRzIGFyZSBwb3N0X2N0cyBhbmQgcG9zdF9yb3V0ZS4iCi0gICAgICAgICAgICBleGl0IC0xMTEKLSAgICAgICAgIH0KLSAgICAgIH0KLSAgICMgICBpZiB7JHZhcnMoY29kZWdlbil9IHsKLSAgICAgICAgIHJldHVybiAkY29tbWFuZHMKLSAgICMgICB9IGVsc2UgewotICAgIyAgICAgICB1cGxldmVsICMwIGV2YWwgJGNvbW1hbmRzCi0gICAjICAgfQotICAgfQotCi0gICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAjIE1haW4gZm91bmRhdGlvbiBmbG93IHN0ZXAgcHJvY2VkdXJlcwotICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCi0gICBwcm9jIHJ1bl9zeW5fbWFwIHt7Zm9ybWF0IDF9fSB7Ci0gICAKLSAgICAgIGdsb2JhbCB2YXJzCi0gICAgICBnbG9iYWwgZW52Ci0gICAgICBnbG9iYWwgZXJyb3JzCi0KLSAgICAgIHNldCB2YXJzKHN0ZXApIHN5bl9tYXAKLQotICAgICAgc2V0IGNvbW1hbmRzICIiCi0KLSMgICAgICBhcHBlbmQgY29tbWFuZHMgInNvdXJjZSAkdmFycyhzY3JpcHRfZGlyKS92YXJzLnRjbFxuIgotCi0gICAgICBhcHBlbmQgY29tbWFuZHMgInByb2MgUHV0cyB7YXJnc30ge3B1dHMgXCRhcmdzfVxuIgotCi0gICAgICBpZiB7JHZhcnMobm92dXMpfSB7Ci0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgInB1dHMgXFtnZXRfZGIgcHJvZ3JhbV92ZXJzaW9uIC9cXVxuIgotICAgICAgfSBlbHNlIHsKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAicHV0cyBcW2dldF9hdHRyIHByb2dyYW1fdmVyc2lvbiAvXF1cbiIKLSAgICAgIH0KLQotICAgICAgIyMgZW5hYmxlIG11bHRpIHByb2Nlc3NpbmcKLSAgICAgIGFwcGVuZCBjb21tYW5kcyAic2V0IGhvc3RsaXN0IFxbbHJlcGVhdCAkdmFycyhsb2NhbF9jcHVzKSBsb2NhbGhvc3RcXVxuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzICJzZXRfZGIgc3VwZXJfdGhyZWFkX3NlcnZlcnMgXCRob3N0bGlzdFxuIgotICAgICAKLSMgICAgICBpZiB7JHZhcnMoY2FwdHVyZV9tZXRyaWNzKX0gewotIyAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiXG5lbmFibGVfbWV0cmljcyAtb25cbiIKLSMgICAgICAgICBhcHBlbmQgY29tbWFuZHMgInB1c2hfc25hcHNob3Rfc3RhY2tcbiIKLSMgICAgICB9Ci0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjpzb3VyY2VfcGx1ZyBwcmVfc3luX3NldHVwX3RjbF0KLSAgICAgIAotICAgICAgICAgc2V0IGNvbW1hbmQgInNldF9kYiBpbmZvcm1hdGlvbl9sZXZlbCAxXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZCAic2V0X2RiIHNvdXJjZV92ZXJib3NlIGZhbHNlXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZCAic2V0X2RiIC1xdWlldCBwcmludF9lcnJvcl9pbmZvIGZhbHNlXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZCAic2V0X2RiIC1xdWlldCBlY2hvX2NvbW1hbmRzIGZhbHNlXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZCAic2V0X2RiIG1lc2dfY29sb3JpbmcgZmFsc2VcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kICJzZXRfZGIgcW9zX3JlcG9ydF9iYXNpY19jb3N0X2dyb3VwcyB0cnVlXG4iCi0KLSAgICAgICAgIHNldCBjb21tYW5kICJzZXRfZGIgbGliX2xlZl9jb25zaXN0ZW5jeV9jaGVja19lbmFibGUgdHJ1ZVxuIgotICAgICAgYXBwZW5kIGNvbW1hbmQgInNldF9kYiBzY3JpcHRfc2VhcmNoX3BhdGggey4vfVxuIgotICAgICAgCi0gICAgICBhcHBlbmQgY29tbWFuZCAic3VwcHJlc3NfbWVzc2FnZXMge0xCUi0zMCBMQlItMzEgTEJSLTE3MCBMQlItNzIgTEJSLTE1NSBQSFlTLTIxMCBQSFlTLTI1NiBMQlItMjAxIExCUi0zNCBMQlItODMgTEJSLTQwIExCUi0xNjIgTEJSLTEyMn1cbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kICJyZWRpcmVjdCAvZGV2L251bGwge3NldCBtYXBfZmFuY3lfbmFtZXMgMX1cbiIKLQotICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6c291cmNlX3BsdWcgcG9zdF9zeW5fc2V0dXBfdGNsXQotICAgICAgCi0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjpzb3VyY2VfcGx1ZyBwcmVfc3luX2xvYWRfbGliX3RjbF0KLQotICAgICAgc2V0IGNvbW1hbmQgW0ZGX05PVlVTOjppbml0aWFsaXplX3N0ZXAgJHZhcnMoc3RlcCldCi0gICAgICBzZXQgY29tbWFuZCBbRkZfTk9WVVM6OmluaXRpYWxpemVfdGltaW5nXQotCi0gICAgICBzZXQgY29tbWFuZCAiXG5yZWFkX21tbWMgJHZhcnModmlld19kZWZpbml0aW9uX3RjbClcblxuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHJlYWRfbW1tYyAkY29tbWFuZF0KLSAgICAgCi0gICAgICBzZXQgY29tbWFuZCAiIiAKLSAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhsZWZfZmlsZXMpXX0gewotICAgICAgICBhcHBlbmQgY29tbWFuZCAicmVhZF9waHlzaWNhbCAtbGVmIFwiXFxcbiIKLSAgICAgICAgZm9yZWFjaCBsZWYgJHZhcnMobGVmX2ZpbGVzKSB7Ci0gICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJcdCRsZWZcXFxuIgotICAgICAgICB9Ci0gICAgICAgIGFwcGVuZCBjb21tYW5kICJcIlxuIgotICAgICAgfQotICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHJlYWRfcGh5c2ljYWwgJGNvbW1hbmRdCi0gICAgICAKLSMgICAgICBmb3JlYWNoIGxpYiAkdmFycygkdmFycyhbc3RyaW5nIHRyaW0gJHZhcnMoJHZhcnMoJHZhcnMoZGVmYXVsdF9zZXR1cF92aWV3KSxkZWxheV9jb3JuZXIpLHRpbWluZ19jb25kaXRpb24pXSxsaWJyYXJ5X3NldCksdGltaW5nKSB7Ci0jICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAgICRsaWIgXFxcbiIKLSMgICAgICB9Ci0jICAgICAgYXBwZW5kIGNvbW1hbmQgIlwiXG4iCi0jICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHJlYWRfbGliICRjb21tYW5kXQotICAgICAgCi0jICAgICAgc2V0IGNvbW1hbmQgIlxuc2V0X2RiIGxlZl9saWJyYXJ5IFwiXFxcbiIKLSMgICAgICBmb3JlYWNoIGxlZiAkdmFycyhsZWZfZmlsZXMpIHsKLSMgICAgICAgICBhcHBlbmQgY29tbWFuZCAiICAgJGxlZiBcXFxuIgotIyAgICAgIH0KLSMgICAgICBhcHBlbmQgY29tbWFuZCAiXCJcbiIKLSMgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCkscmVhZF9sZWYgJGNvbW1hbmRdCi0gICAgICAKLSMgICAgICBzZXQgY29tbWFuZCAiXG5zZXRfZGIgcXJjX3RlY2hfZmlsZSAkdmFycygkdmFycygkdmFycygkdmFycyhkZWZhdWx0X3NldHVwX3ZpZXcpLGRlbGF5X2Nvcm5lcikscmNfY29ybmVyKSxxeF90ZWNoX2ZpbGUpXG4iCi0jICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHJlYWRfcXJjICRjb21tYW5kXQotICAgICAgCi0gICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoZG9udF91c2VfbGlzdCldICYmICR2YXJzKGRvbnRfdXNlX2xpc3QpICE9ICIiIH0gewotICAgICAgICAgZm9yZWFjaCBjZWxsICR2YXJzKGRvbnRfdXNlX2xpc3QpIHsKLSAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgInNldF9kYiBhdm9pZCB0cnVlIFxbZmluZCAvIC1saWJjZWxsICRjZWxsXF1cbiIKLSAgICAgICAgIH0KLSAgICAgIH0KLQotICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6c291cmNlX3BsdWcgcG9zdF9zeW5fbG9hZF9saWJfdGNsXQotCi0gICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoY3BmX2ZpbGUpXX0gewotICAgICAgICAgc2V0IGNvbW1hbmQgInJlYWRfcG93ZXJfaW50ZW50IC1tb2R1bGUgJHZhcnMoZGVzaWduKSAtY3BmICR2YXJzKGNwZl9maWxlKVxuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHJlYWRfcG93ZXJfaW50ZW50ICRjb21tYW5kXQotICAgICAgfQotCi0gICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoaWVlZTE4MDFfZmlsZSldfSB7Ci0gICAgICAgICBzZXQgY29tbWFuZCAicmVhZF9wb3dlcl9pbnRlbnQgLW1vZHVsZSAkdmFycyhkZXNpZ24pIC0xODAxICR2YXJzKGllZWUxODAxX2ZpbGUpXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCkscmVhZF9wb3dlcl9pbnRlbnQgJGNvbW1hbmRdCi0gICAgICB9Ci0gICAgIAotICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGhkbF9zZWFyY2hfcGF0aCldfSB7Ci0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgInNldF9kYiBoZGxfc2VhcmNoX3BhdGggXCIkdmFycyhoZGxfc2VhcmNoX3BhdGgpXCJcbiIKLSAgICAgIH0gCi0gICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoaGRsX2ZpbGVfbGlzdCldfSB7Ci0gICAgICAgICBzZXQgY29tbWFuZCAicmVhZF9oZGwgLXYyMDAxIFwiJHZhcnMoaGRsX2ZpbGVfbGlzdClcIlxuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHJlYWRfaGRsICRjb21tYW5kXQotICAgICAgfSBlbHNlIHsKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OnNvdXJjZV9wbHVnIHN5bl9sb2FkX3J0bF90Y2xdCi0gICAgICB9Ci0KLSAgICAgIGFwcGVuZCBjb21tYW5kcyAiXG4jc2V0IHJlYWRfZGVmX2xpYmNlbGxfbWlzbWF0Y2hfZXJyb3IgMFxuIgotICAgICAgCi0gICAgICAgICBzZXQgY29tbWFuZCAiI3NldF9kYiBnZW5fbW9kdWxlX3ByZWZpeCAgICAgICAgICAgICAgICBfR0VOVVNfXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZCAiI3NldF9kYiBoZGxfYXJyYXlfbmFtaW5nX3N0eWxlICAgICAgICAgICAlc18lZFxuIgotICAgICAgYXBwZW5kIGNvbW1hbmQgIiNzZXRfZGIgaGRsX3JlZ19uYW1pbmdfc3R5bGUgICAgICAgICAgICAgJXNfcmVnJXNcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kICIjc2V0X2RiIGhkbF91c2VfaWZfZ2VuZXJhdGVfcHJlZml4ICAgICAgIGZhbHNlXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZCAiI3NldF9kYiBoZGxfdXNlX2Zvcl9nZW5lcmF0ZV9wcmVmaXggICAgICB0cnVlXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZCAiI3NldF9kYiBoZGxfdXNlX2Jsb2NrX3ByZWZpeCAgICAgICAgICAgICBmYWxzZVxuIgotICAgICAgYXBwZW5kIGNvbW1hbmQgIiNzZXRfZGIgaGRsX21heF9sb29wX2xpbWl0ICAgICAgICAgICAgICAgODA5NlxuIgotICAgICAgYXBwZW5kIGNvbW1hbmQgIiNzZXRfZGIgaGRsX2dlbmVyYXRlX2luZGV4X3N0eWxlICAgICAgICAgJXNfJWRfXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZCAiI3NldF9kYiBoZGxfZ2VuZXJhdGVfc2VwYXJhdG9yICAgICAgICAgICBfXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZCAiI3NldF9kYiBoZGxfaW5zdGFuY2VfYXJyYXlfbmFtaW5nX3N0eWxlICAlc18lZF9cbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kICIjc2V0X2RiIGhkbF9wYXJhbWV0ZXJfbmFtaW5nX3N0eWxlICAgICAgIF8lcyVkXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZCAiI3NldF9kYiBoZGxfcmVjb3JkX25hbWluZ19zdHlsZSAgICAgICAgICAlc1xbJXNcXVxuIgotICAgICAgYXBwZW5kIGNvbW1hbmQgIiNzZXRfZGIgaGRsX3VzZV90ZWNoZWx0X2ZpcnN0ICAgICAgICAgICAgdHJ1ZVxuIgotICAgICAgYXBwZW5kIGNvbW1hbmQgIiNzZXRfZGIgaGRsX2Vycm9yX29uX2JsYWNrYm94ICAgICAgICAgICAgdHJ1ZVxuIgotICAgICAgYXBwZW5kIGNvbW1hbmQgIiNzZXRfZGIgaGRsX3RyYWNrX2ZpbGVuYW1lX3Jvd19jb2wgICAgICAgZmFsc2VcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kICIjc2V0X2RiIGhkbF9lbmFibGVfcHJvY19uYW1lICAgICAgICAgICAgIGZhbHNlXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZCAiI3NldF9kYiBoZGxfZXJyb3Jfb25fbGF0Y2ggICAgICAgICAgICAgICBmYWxzZVxuIgotICAgICAgYXBwZW5kIGNvbW1hbmQgIiNzZXRfZGIgaGRsX3VuY29ubmVjdGVkX2lucHV0X3BvcnRfdmFsdWUgbm9uZVxuIgotICAgICAgYXBwZW5kIGNvbW1hbmQgIiNzZXRfZGIgaGRsX3VuZHJpdmVuX291dHB1dF9wb3J0X3ZhbHVlICAgbm9uZVxuIgotICAgICAgYXBwZW5kIGNvbW1hbmQgIiNzZXRfZGIgaGRsX3VuZHJpdmVuX3NpZ25hbF92YWx1ZSAgICAgICAgbm9uZVxuIgotICAgICAgCi0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksc2V0X2hkbF9hdHRyaWJ1dGVzICRjb21tYW5kXQotCi0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjpzb3VyY2VfcGx1ZyBwcmVfc3luX2xvYWRfZWxhYl90Y2xdCi0gICAgICAKLSAgICAgIGFwcGVuZCBjb21tYW5kcyAiXG5lbGFib3JhdGUgJHZhcnMoZGVzaWduKVxuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLGVsYWJvcmF0ZSAkY29tbWFuZF0KLQotICAgICAgYXBwZW5kIGNvbW1hbmRzICJcbmluaXRfZGVzaWduXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksaW5pdF9kZXNpZ24gJGNvbW1hbmRdCi0KLSAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OnNvdXJjZV9wbHVnIHBvc3Rfc3luX2xvYWRfZWxhYl90Y2xdCi0KLSAgICAgIGFwcGVuZCBjb21tYW5kcyAid3JpdGVfZGIgJHZhcnMoZGVzaWduKSAtYWxsX3Jvb3RfYXR0cmlidXRlcyAtdG9fZmlsZSAkdmFycyhkYnNfZGlyKS9lbGFiLmRiXG4iCi0gICAgICAKLSAgICAgIGFwcGVuZCBjb21tYW5kcyAiY2hlY2tfZGVzaWduIC1tdWx0aXBsZV9kcml2ZXIgLXVuZHJpdmVuIC11bnJlc29sdmVkID4gJHZhcnMocnB0X2RpcikvY2hlY2tfZGVzaWduLnJwdFxuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzICJyZXBvcnQgZGF0YXBhdGggLWFsbCAtbWF4X3dpZHRoIHt7ZmlsZW5hbWUgNTEyfX0gPiAkdmFycyhycHRfZGlyKS9yZXBvcnRfZGF0YXBhdGgucnB0XG4iCi0gICAgICAKLSAgICAgIAotIyAgICAgIGFwcGVuZCBjb21tYW5kcyAiI3NldCB0cmVhdF9pbnZhbGlkX2Zyb21fdG9fYXNfdGhyb3VnaCAxXG4iCi0gICAgIAotICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGNsb2NrX2dhdGVfY2VsbHMpXX0gewotICAgICAgICAgICAgc2V0IGNvbW1hbmQgInNldF9kYiBscF9jbG9ja19nYXRpbmdfY2VsbCBcW2ZpbmQgL2xpYiogLWxpYmNlbGwgJHZhcnMoY2xvY2tfZ2F0ZV9jZWxscylcXVxuXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZCAic2V0X2RiIGxwX2luc2VydF9jbG9ja19nYXRpbmcgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLGluc2VydF9jbG9ja19nYXRpbmcgJGNvbW1hbmRdCi0gICAgICB9Ci0KLSAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhsZWFrYWdlX3Bvd2VyX2VmZm9ydCldICYmICgkdmFycyhsZWFrYWdlX3Bvd2VyX2VmZm9ydCkgIT0gIm5vbmUiKX0gewotICAgICAgICAgc2V0IGNvbW1hbmQgInNldF9kYiBscF9tdWx0aV92dF9vcHRpbWl6YXRpb25fZWZmb3J0ICAgICAgICAgICAgICAgICR2YXJzKGxlYWthZ2VfcG93ZXJfZWZmb3J0KVxuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLGxlYWthZ2VfcG93ZXJfZWZmb3J0ICRjb21tYW5kXQotICAgICAgfQotICAgICAgYXBwZW5kIGNvbW1hbmQgIiNzZXRfZGIgbHBfaW5zZXJ0X29wZXJhbmRfaXNvbGF0aW9uICAgICAgICAgICAgICAgICAgICBmYWxzZVxuIgotICAgICAgYXBwZW5kIGNvbW1hbmQgIiNzZXRfZGIgbHBfcG93ZXJfYW5hbHlzaXNfZWZmb3J0ICAgICAgICAgICAgICAgICAgICAgICBsb3dcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kICIjc2V0X2RiIGxwX2Nsb2NrX2dhdGluZ19oaWVyYXJjaGljYWwgICAgICAgICAgICAgICAgICAgZmFsc2VcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kICIjc2V0X2RiIGxwX2Nsb2NrX2dhdGluZ19hdXRvX2Nvc3RfZ3JvdXBfaW5pdGlhbF90YXJnZXQgMFxuIgotICAgICAgYXBwZW5kIGNvbW1hbmQgIiNzZXRfZGIgbHBfY2xvY2tfZ2F0aW5nX21heF9mbG9wcyAgICAgICAgICAgICAgICAgICAgICBpbmZpbml0eVxuIgotICAgICAgYXBwZW5kIGNvbW1hbmQgIiNzZXRfZGIgbHBfY2xvY2tfZ2F0aW5nX21pbl9mbG9wcyAgICAgICAgICAgICAgICAgICAgICAzXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZCAiI3NldF9kYiBscF9jbG9ja19nYXRpbmdfYXV0b19wYXRoX2FkanVzdCAgICAgICAgICAgICAgIGZpeGVkXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZCAiI3NldF9kYiBscF9jbG9ja19nYXRpbmdfYXV0b19wYXRoX2FkanVzdF9maXhlZF9kZWxheSAgIDE3NVxuIgotCi0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksc2V0X2ljZ19hdHRyaWJ1dGVzICRjb21tYW5kXQotCi0jICAgICAgYXBwZW5kIGNvbW1hbmQgIiNzZXRfZGIgbHBfcG93ZXJfb3B0aW1pemF0aW9uX3dlaWdodCBcIlwiXG4iCi0KLSAgICAgIAotICAgICAgIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gICAgICAjIERGVCBTZXR0aW5ncwotICAgICAgIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gICAgICAgICBzZXQgY29tbWFuZCAiI3NldF9kYiBkZnRfc2Nhbl9tYXBfbW9kZSAgICAgICAgICAgICAgICAgICAgICAgICBmb3JjZV9hbGxcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kICIjc2V0X2RiIGRmdF9zY2FuX3N0eWxlICAgICAgICAgICAgICAgICAgICAgICAgICAgIG11eGVkX3NjYW5cbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kICIjc2V0X2RiIGRmdF9wcmVmaXggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERGVF9cbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kICIjc2V0X2RiIHVzZV9zY2FuX3NlcXNfZm9yX25vbl9kZnQgICAgICAgICAgICAgICAgIHRydWVcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kICIjc2V0X2RiIGRmdF9zY2FuX21hcF9tb2RlICAgICAgICAgICAgICAgICAgICAgICAgIGZvcmNlX2FsbFxuIgotICAgICAgYXBwZW5kIGNvbW1hbmQgIiNzZXRfZGIgZGZ0X2Nvbm5lY3Rfc2hpZnRfZW5hYmxlX2R1cmluZ19tYXBwaW5nICAgdGllX29mZlxuIgotICAgICAgYXBwZW5kIGNvbW1hbmQgIiNzZXRfZGIgZGZ0X2Nvbm5lY3Rfc2Nhbl9kYXRhX3BpbnNfZHVyaW5nX21hcHBpbmcgbG9vcGJhY2tcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kICIjc2V0X2RiIGRmdF9zY2FuX291dHB1dF9wcmVmZXJlbmNlICAgICAgICAgICAgICAgIG5vbl9pbnZlcnRlZFxuIgotICAgICAgYXBwZW5kIGNvbW1hbmQgIiNzZXRfZGIgZGZ0X2xvY2t1cF9lbGVtZW50X3R5cGUgICAgICAgICAgICAgICAgICAgZWRnZV9zZW5zaXRpdmVcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kICIjc2V0X2RiIGRmdF9taXhfY2xvY2tfZWRnZXNfaW5fc2Nhbl9jaGFpbnMgICAgICAgIGZhbHNlXG4iCi0gICAgICAKLSAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxzZXRfZGZ0X2F0dHJpYnV0ZXMgJGNvbW1hbmRdCi0KLSAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OnNvdXJjZV9wbHVnIHN5bl9zZXR1cF9kZnRfdGNsXQotCi0gICAgICBzZXQgY29tbWFuZCAiIgotICAgICAgIyMgUkMgdGltaW5nIHN0aWxsIGNvbWVzIGZyb20gY3BmLCBJbm5vdnVzIHRpbWluZyBjb21lcyBmcm9tIHNldHVwLnRjbAotICAgICAgaWYgW2luZm8gZXhpc3RzIHZhcnMoY3BmX2ZpbGUpXSB7Ci0gICAgICAgIGFwcGVuZCBjb21tYW5kICJhcHBseV9wb3dlcl9pbnRlbnQgLXN1bW1hcnlcbiIKLSAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLGFwcGx5X3Bvd2VyX2ludGVudCAkY29tbWFuZF0KLSAgICAgIH0gZWxzZSB7Ci0jICAgICAgICBhcHBlbmQgY29tbWFuZCAic2V0IG1vZGUgW2xpbmRleCAkdmFycyhjb25zdHJhaW50X21vZGVzKSAwXVxuIgotIyAgICAgICAgYXBwZW5kIGNvbW1hbmQgImlmIHsgXFtmaW5kIC8gLW1vZGUgXCRtb2RlIFxdID09IFwiXCJ9IHtcbiIKLSMgICAgICAgIGFwcGVuZCBjb21tYW5kICIgICBjcmVhdGVfbW9kZSAtZGVmYXVsdCAtbmFtZSBcJG1vZGVcbiIKLSMgICAgICAgIGFwcGVuZCBjb21tYW5kICJ9XG4iCi0jICAgICAgICAjIyBOb3cgcG9wdWxhdGUgdGhlIHRpbWluZyBtb2RlcwotIyAgICAgICAgZm9yZWFjaCBtb2RlICR2YXJzKGNvbnN0cmFpbnRfbW9kZXMpIHsKLSMgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCRtb2RlLHN5bnRoX3NkYyldfSB7Ci0jICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJpZiB7IFxbZmluZCAvIC1tb2RlICRtb2RlXF0gPT0gXCJcIiB9IHtcbiIKLSMgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAgIGNyZWF0ZV9tb2RlIC1uYW1lICRtb2RlXG4iCi0jICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJ9XG4iCi0jICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJyZWFkX3NkYyAtbW9kZSAkbW9kZSAkdmFycygkbW9kZSxzeW50aF9zZGMpXG4iCi0jICAgICAgICAgICB9IGVsc2UgewotIyAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJG1vZGUscHJlX2N0c19zZGMpXX0gewotIyAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiaWYgeyBcW2ZpbmQgLyAtbW9kZSAkbW9kZVxdID09IFwiXCIgfSB7XG4iCi0jICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgICBjcmVhdGVfbW9kZSAtbmFtZSAkbW9kZVxuIgotIyAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAifVxuIgotIyAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAicmVhZF9zZGMgLW1vZGUgJG1vZGUgJHZhcnMoJG1vZGUscHJlX2N0c19zZGMpXG4iCi0jICAgICAgICAgICAgIH0KLSMgICAgICAgICAgfQotIyAgICAgICAgfQotIyAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLGFwcGx5X2NvbnN0cmFpbnRzICRjb21tYW5kXQotIyAgICAgICAgYXBwZW5kIGNvbW1hbmQgInB1dHMgXCJUaGUgbnVtYmVyIG9mIGV4Y2VwdGlvbnMgaXMgXFtsbGVuZ3RoIFxbZmluZCAvIC1leGNlcHRpb24gKlxdXF1cIlxuIgotCi0gICAgICAgICAgIHNldCBjb21tYW5kICJcbmRlZmluZV9jb3N0X2dyb3VwIC1uYW1lIGluMm91dFxuIgotICAgICAgICBhcHBlbmQgY29tbWFuZCAiZGVmaW5lX2Nvc3RfZ3JvdXAgLW5hbWUgaW4ycmVnXG4iCi0gICAgICAgIGFwcGVuZCBjb21tYW5kICJkZWZpbmVfY29zdF9ncm91cCAtbmFtZSByZWcyb3V0XG4iCi0gICAgICAgIGFwcGVuZCBjb21tYW5kICJkZWZpbmVfY29zdF9ncm91cCAtbmFtZSByZWcycmVnXG4iCi0KLSMgICAgICAgIHNldCBtb2RlIFtsaW5kZXggJHZhcnMoY29uc3RyYWludF9tb2RlcykgMF0KLSMgICAgICAgIHNldCBtb2RlICR2YXJzKGRlZmF1bHRfc3ludGhlc2lzX21vZGUpCi0gICAgICAgIHNldCBtb2RlICR2YXJzKGRlZmF1bHRfc3ludGhlc2lzX3ZpZXcpCi0KLSAgICAgICAgYXBwZW5kIGNvbW1hbmQgInBhdGhfZ3JvdXAgLW1vZGUgJG1vZGUgLWZyb20gXFthbGw6OmFsbF9pbnBzXF0gLXRvIFxbYWxsOjphbGxfb3V0c1xdIC1ncm91cCBpbjJvdXQgLW5hbWUgaW4yb3V0XG4iCi0gICAgICAgIGFwcGVuZCBjb21tYW5kICJwYXRoX2dyb3VwIC1tb2RlICRtb2RlIC1mcm9tIFxbYWxsOjphbGxfaW5wc1xdIC10byBcW2FsbDo6YWxsX3NlcXNcXSAtZ3JvdXAgaW4ycmVnIC1uYW1lIGluMnJlZ1xuIgotICAgICAgICBhcHBlbmQgY29tbWFuZCAicGF0aF9ncm91cCAtbW9kZSAkbW9kZSAtZnJvbSBcW2FsbDo6YWxsX3NlcXNcXSAtdG8gXFthbGw6OmFsbF9vdXRzXF0gLWdyb3VwIHJlZzJvdXQgLW5hbWUgcmVnMm91dFxuIgotICAgICAgICBhcHBlbmQgY29tbWFuZCAicGF0aF9ncm91cCAtbW9kZSAkbW9kZSAtZnJvbSBcW2FsbDo6YWxsX3NlcXNcXSAtdG8gXFthbGw6OmFsbF9zZXFzXF0gLWdyb3VwIHJlZzJyZWcgLW5hbWUgcmVnMnJlZ1xuIgotCi0jICAgICAgICBhcHBlbmQgY29tbWFuZCAicGF0aF9ncm91cCAtZnJvbSBcW2FsbDo6YWxsX2lucHNcXSAtdG8gXFthbGw6OmFsbF9vdXRzXF0gLWdyb3VwIGluMm91dCAtbmFtZSBpbjJvdXRcbiIKLSMgICAgICAgIGFwcGVuZCBjb21tYW5kICJwYXRoX2dyb3VwIC1mcm9tIFxbYWxsOjphbGxfaW5wc1xdIC10byBcW2FsbDo6YWxsX3NlcXNcXSAtZ3JvdXAgaW4ycmVnIC1uYW1lIGluMnJlZ1xuIgotIyAgICAgICAgYXBwZW5kIGNvbW1hbmQgInBhdGhfZ3JvdXAgLWZyb20gXFthbGw6OmFsbF9zZXFzXF0gLXRvIFxbYWxsOjphbGxfb3V0c1xdIC1ncm91cCByZWcyb3V0IC1uYW1lIHJlZzJvdXRcbiIKLSMgICAgICAgIGFwcGVuZCBjb21tYW5kICJwYXRoX2dyb3VwIC1mcm9tIFxbYWxsOjphbGxfc2Vxc1xdIC10byBcW2FsbDo6YWxsX3NlcXNcXSAtZ3JvdXAgcmVnMnJlZyAtbmFtZSByZWcycmVnXG4iCi0KLSAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLGNyZWF0ZV9wYXRoX2dyb3VwcyAkY29tbWFuZF0KLSAgICAgIH0KLQotCi0gICAgICBzZXQgY29tbWFuZCAiIgotICAgICAgc2V0IGZpcnN0IDEKLSAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhkZWZfZmlsZXMpXX0gewotICAgICAgICAgZm9yZWFjaCBmaWxlICR2YXJzKGRlZl9maWxlcykgewotICAgICAgICAgICAgaWYge1tmaWxlIGV4aXN0cyAkZmlsZV19IHsKLSAgICAgICAgICAgICAgIGlmIHskZmlyc3R9IHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJyZWFkX2RlZiAkZmlsZVxuIgotICAgICAgICAgICAgICAgICAgc2V0IGZpcnN0IDAKLSAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgInJlYWRfZGVmIC1pbmNyICRmaWxlXG4iCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCkscmVhZF9kZWYgJGNvbW1hbmRdCi0gICAgICB9Ci0gICAgICAKLSAgICAgIGFwcGVuZCBjb21tYW5kcyAicmVwb3J0IHRpbWluZyAtbGludFxuIgotCi0gICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMobWF4X3JvdXRlX2xheWVyKV19IHsKLSMgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIlxuc2V0X2RiIG51bWJlcl9vZl9yb3V0aW5nX2xheWVycyAkdmFycyhtYXhfcm91dGVfbGF5ZXIpIGRlc2lnbnMvJHZhcnMoZGVzaWduKVxuIgotICAgICAgfQotCi0jICAgICAgYXBwZW5kIGNvbW1hbmRzICIjZm9yZWFjaCBjZyBcW2ZpbmQgLyAtY29zdF9ncm91cCAqXF0ge1xuIgotIyAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgcmVwb3J0IHRpbWluZyAtY29zdF9ncm91cCBbbGlzdCBcJGNnXSA+PiAkdmFycyhycHRfZGlyKS9jb3N0X2dyb3VwLm1hcC5ycHRcbiIKLSMgICAgICBhcHBlbmQgY29tbWFuZHMgIiN9XG4iCi0gICAgICAKLSMgICAgICBhcHBlbmQgY29tbWFuZHMgIiNzZXRfcmVtb3ZlX2Fzc2lnbl9vcHRpb25zIC1za2lwX3VuY29uc3RyYWluZWRfcGF0aHMgLXBoeXNpY2FsXG4iCi0jICAgICAgYXBwZW5kIGNvbW1hbmRzICIjc2V0X2RiIHV0aWxpemF0aW9uIDAgXFtmaW5kIC8gLWxheWVyIE0xXF1cbiIKLQotICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6c291cmNlX3BsdWcgcHJlX3N5bl9nZW5fdGNsXQotCi0gICAgICBzZXQgY29tbWFuZCAiXG5zeW50aGVzaXplIC10b19nZW5lcmljIC1lZmZvcnQgbWVkaXVtXG5cbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxzeW4yZ2VuICRjb21tYW5kXQotICAgICAgCi0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjpzb3VyY2VfcGx1ZyBwb3N0X3N5bl9nZW5fdGNsXQotCi0gICAgICBhcHBlbmQgY29tbWFuZHMgIndyaXRlX2RiICR2YXJzKGRlc2lnbikgLWFsbF9yb290X2F0dHJpYnV0ZXMgLXRvX2ZpbGUgJHZhcnMoZGJzX2Rpcikvc3luX2dlbi5kYlxuIgotICAgICAKLSAgICAgIHNldCBjb21tYW5kICJcbnN5bnRoZXNpemUgLXRvX21hcCAtZWZmb3J0IGhpZ2ggLWNsb2NrX2dhdGluZ19vbmx5XG5cbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxzeW4yaWNnICRjb21tYW5kXQotICAgICAgCi0jICAgICAgc2V0IGNnX2NlbGxzICJcbiIKLSMgICAgICBmb3JlYWNoIGkgW2ZpbHRlciBsaWJjZWxsIC1pbnZlcnQgIiIgW2ZpbmQgLyAtaW5zdCBpbnN0YW5jZXNfc2VxLypdXSB7Ci0jICAgICAgIGlmIHtbZ2V0X2F0dHIgY2xvY2tfZ2F0aW5nX2ludGVncmF0ZWRfY2VsbCBbZ2V0X2F0dHIgbGliY2VsbCAkaV1dICE9ICIiIH0gewotIyAgICAgICAgIGxhcHBlbmQgY2dfY2VsbHMgJGkKLSMgICAgICAgfQotIyAgICAgIH0KLSMgICAgICBpZiB7ICRjZ19jZWxscyAhPSAiIiB9IHsKLSMgICAgICAgIHNldCBDR19BREpVU1QgW3BhdGhfYWRqdXN0IC1kZWxheSAtMTUwIC10byAkY2dfY2VsbHNdCi0jICAgICAgfQotICAgICAgCi0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjpzb3VyY2VfcGx1ZyBwcmVfc3luX21hcF90Y2xdCi0gICAgICAKLSAgICAgICMgU3ludGhlc2l6aW5nIHRvIGdhdGVzIHVzaW5nIGVmZm9ydCBsZXZlbCBkZWZpbmVkIGJ5IHZhcnMoc3luX21hcF9lZmZvcnQpLgotICAgICAgc2V0IGNvbW1hbmQgIlxuc3ludGhlc2l6ZSAtdG9fbWFwcGVkIC1lZmZvcnQgaGlnaCAtbm9faW5jcmVtZW50YWxcblxuIgotCi0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksc3luMm1hcCAkY29tbWFuZF0KLSAgICAgIAotICAgICAgICAgc2V0IGNvbW1hbmQgIiIgCi0gICAgICBhcHBlbmQgY29tbWFuZCAicmVwb3J0X2FyZWEgICAgICAgICAgID4gJHZhcnMocnB0X2RpcikvJHZhcnMoc3RlcCkuYXJlYS5ycHRcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kICJyZXBvcnRfZHAgICAgICAgICAgICAgPiAkdmFycyhycHRfZGlyKS8kdmFycyhzdGVwKS5kYXRhcGF0aC5ycHRcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kICJyZXBvcnRfdGltaW5nIC1tYXhfcGF0aHMgNSAgICAgICAgICAgICAtcGF0aF90eXBlIHN1bW1hcnkgICAgID4gJHZhcnMocnB0X2RpcikvJHZhcnMoc3RlcCkuc3RhcnRfZW5kX3NsYWNrLnJwdFxuIgotICAgICAgYXBwZW5kIGNvbW1hbmQgInJlcG9ydF90aW1pbmcgLW1heF9wYXRocyAxICAgLW53b3JzdCAxIC1wYXRoX3R5cGUgZnVsbF9jbG9jayAgPiAkdmFycyhycHRfZGlyKS8kdmFycyhzdGVwKS53b3JzdF9tYXhfcGF0aC5ycHRcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kICJyZXBvcnRfdGltaW5nIC1tYXhfcGF0aHMgNTAwIC1ud29yc3QgMSAtcGF0aF90eXBlIGZ1bGxfY2xvY2sgID4gJHZhcnMocnB0X2RpcikvJHZhcnMoc3RlcCkudG9wXzUwMF9wYXRocy5ycHRcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kICJyZXBvcnRfZ2F0ZXMgLXBvd2VyICAgPiAkdmFycyhycHRfZGlyKS8kdmFycyhzdGVwKS5nYXRlc19wb3dlci5ycHRcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kICJyZXBvcnRfY2xvY2tfZ2F0aW5nICAgPiAkdmFycyhycHRfZGlyKS8kdmFycyhzdGVwKS5jbG9ja2dhdGluZy5ycHRcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kICJyZXBvcnRfcG93ZXIgLWRlcHRoIDAgPiAkdmFycyhycHRfZGlyKS8kdmFycyhzdGVwKS5wb3dlci5ycHRcbiIKLQotICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLGdlbmVyYXRlX3JlcG9ydHMgJGNvbW1hbmRdCi0KLSAgICAgIGlmIHskdmFycyhjYXB0dXJlX21ldHJpY3MpfSB7Ci0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgInBvcF9zbmFwc2hvdF9zdGFja1xuIgotICAgICAgICAgaWYge1tsaW5kZXggW3NwbGl0ICR2YXJzKHZlcnNpb24pICIuIl0gIDBdID4gMTZ9IHsKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiY3JlYXRlX3NuYXBzaG90IC1uYW1lICR2YXJzKHN0ZXApIC1jYXRlZ29yaWVzIGRlc2lnblxuIgotICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiY3JlYXRlX3NuYXBzaG90IC1uYW1lICR2YXJzKHN0ZXApXG4iCi0gICAgICAgICB9Ci0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIndyaXRlX21ldHJpYyAtZm9ybWF0IHRjbCAtZmlsZSAkdmFycyhkYnNfZGlyKS8kdmFycyhzdGVwKS51bVxuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJyZXBvcnRfbWV0cmljIC1maWxlICR2YXJzKHJwdF9kaXIpLyR2YXJzKGRlc2lnbikuaHRtbCAtZm9ybWF0IGh0bWxcbiIKLSAgICAgIH0KLQotICAgICAgYXBwZW5kIGNvbW1hbmRzICJ3cml0ZV9kYiAkdmFycyhkZXNpZ24pIC1hbGxfcm9vdF9hdHRyaWJ1dGVzIC10b19maWxlICR2YXJzKGRic19kaXIpL3N5bl9tYXAuZGJcbiIKLSAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhtYWlsLHRvKV19IHsKLSAgICAgICAgIHNldCBzdW1tYXJ5X2ZpbGUgJHZhcnMoc3RlcCkuc3VtbWFyeQotICAgICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycyhtYWlsLHN0ZXBzKV0gfHwgXAotICAgICAgICAgICAgIChbaW5mbyBleGlzdHMgdmFycyhtYWlsLHN0ZXBzKV0gJiYgKFtsc2VhcmNoICR2YXJzKG1haWwsc3RlcHMpICR2YXJzKHN0ZXApXSAhPSAtMSkpfSB7Ci0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgInB1dHMgXCI8RkY+IE1BSUxJTkcgUkVTVUxUUyBUTyAkdmFycyhtYWlsLHRvKVwiXG4iCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgImlmIHtcW2ZpbGUgZXhpc3RzICR2YXJzKHJwdF9kaXIpLyRzdW1tYXJ5X2ZpbGVcXX0ge1xuIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIgICBleGVjIC9iaW4vbWFpbCAtcyBcIkZGOiAkdmFycyhkZXNpZ24pLCAkdmFycyhzdGVwKSBjb21wbGV0ZWQgKFxbc2hlbGwgcHdkXF0pXCIgPCAkdmFycyhycHRfZGlyKS8kc3VtbWFyeV9maWxlICR2YXJzKG1haWwsdG8pXG4iCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIn0gZWxzZWlmIHtcW2ZpbGUgZXhpc3RzICR2YXJzKHJwdF9kaXIpLyR7c3VtbWFyeV9maWxlfS5nelxdfSB7XG4iCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiAgIGV4ZWMgZ3VuemlwIC1jICR2YXJzKHJwdF9kaXIpLyR7c3VtbWFyeV9maWxlfS5neiBcfCAvYmluL21haWwgLXMgXCJGRjogJHZhcnMoZGVzaWduKSwgJHZhcnMoc3RlcCkgY29tcGxldGVkIChcW3B3ZFxdKVwiICR2YXJzKG1haWwsdG8pXG4iCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIn0gZWxzZSB7XG4iCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiAgIGV4ZWMgL2Jpbi9tYWlsIC1zIFwiRkY6ICR2YXJzKGRlc2lnbiksICR2YXJzKHN0ZXApIGNvbXBsZXRlZCAoXFtzaGVsbCBwd2RcXSlcIiA8IC9kZXYvbnVsbCAkdmFycyhtYWlsLHRvKVxuIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJ9XG4iCi0gICAgICAgICB9Ci0gICAgICB9Ci0KLSAgICAgIGFwcGVuZCBjb21tYW5kcyAiaWYge1xbaW5mbyBleGlzdHMgZW52KFZQQVRIKVxdfSB7IgotICAgICAgYXBwZW5kIGNvbW1hbmRzICJleGVjIC9iaW4vdG91Y2ggXCRlbnYoVlBBVEgpLyR2YXJzKHN0ZXApIgotICAgICAgYXBwZW5kIGNvbW1hbmRzICJ9XG4iCi0KLSAgICAgIHJldHVybiAkY29tbWFuZHMKLQotICAgfQotCi0gICBwcm9jIHJ1bl9zeW5faW5jciB7e2Zvcm1hdCAxfX0gewotCi0gICAgICBnbG9iYWwgdmFycwotICAgICAgZ2xvYmFsIGVudgotICAgICAgZ2xvYmFsIGVycm9ycwotCi0gICAgICBzZXQgdmFycyhzdGVwKSBzeW5faW5jcgotCi0gICAgICBzZXQgY29tbWFuZHMgIiIKLQotIyAgICAgIGFwcGVuZCBjb21tYW5kcyAic291cmNlICR2YXJzKHNjcmlwdF9kaXIpL3ZhcnMudGNsXG4iCi0KLSAgICAgIGFwcGVuZCBjb21tYW5kcyAicHJvYyBQdXRzIHthcmdzfSB7cHV0cyBcJGFyZ3N9XG4iCi0KLSAgICAgIGlmIHskdmFycyhub3Z1cyl9IHsKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAicHV0cyBcW2dldF9kYiBwcm9ncmFtX3ZlcnNpb24gL1xdXG4iCi0gICAgICB9IGVsc2UgewotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJwdXRzIFxbZ2V0X2F0dHIgcHJvZ3JhbV92ZXJzaW9uIC9cXVxuIgotICAgICAgfQotICAgICAKLSAgICAgICMjIGVuYWJsZSBtdWx0aSBwcm9jZXNzaW5nCi0gICAgICBhcHBlbmQgY29tbWFuZHMgInNldCBob3N0bGlzdCBcW2xyZXBlYXQgJHZhcnMobG9jYWxfY3B1cykgbG9jYWxob3N0XF1cbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyAic2V0X2RiIHN1cGVyX3RocmVhZF9zZXJ2ZXJzIFwkaG9zdGxpc3RcbiIKLSAgICAgCi0jICAgICAgaWYgeyR2YXJzKGNhcHR1cmVfbWV0cmljcyl9IHsKLSMgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIlxuZW5hYmxlX21ldHJpY3MgLW9uXG4iCi0jICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJwdXNoX3NuYXBzaG90X3N0YWNrXG4iCi0jICAgICAgfQotICAgICAgCi0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjpzb3VyY2VfcGx1ZyBwcmVfc3luX2luY3JfdGNsXQotICAgICAgCi0jICAgICAgYXBwZW5kIGNvbW1hbmRzICJjYXRjaCB7IHNldF9yZW1vdmVfYXNzaWduX29wdGlvbnMgLXNraXBfdW5jb25zdHJhaW5lZF9wYXRocyAtcGh5c2ljYWwgfVxuIgotIyAgICAgIGFwcGVuZCBjb21tYW5kcyAic2V0X2RiIHJlbW92ZV9hc3NpZ25zIHRydWVcbiIKLSAgICAgIAotICAgICAgaWYgeyR2YXJzKGVuYWJsZV9wYW0pfSB7Ci0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIlxuc2V0X2RiIHBoeXNpY2FsX2F3YXJlX3Jlc3RydWN0dXJpbmcgdHJ1ZVxuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJzZXRfZGIgcGh5c2ljYWxfYXdhcmVfc3RydWN0dXJpbmcgICB0cnVlXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgInNldF9kYiBwaHlzaWNhbF9hd2FyZV9tYXBwaW5nICAgICAgIHRydWVcbiIKLSAgICAgIH0KLSAgICAgIAotICAgICAgIyMjIyBPUFRJTUlaQVRJT04gRUZGT1JUIENPTlRST0wKLSAgICAgIGlmIHskdmFycyhoaWdoX3RpbWluZ19lZmZvcnQpfSB7Ci0gICAgICAgICAgICBzZXQgY29tbWFuZCAiXG5zZXRfZGIgdG5zX29wdG8gdHJ1ZVxuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmQgInNldF9kYiBpb3B0X2VuYWJsZV9wYXJhbGxlbGl6YXRpb24gdHJ1ZVxuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmQgInNldF9kYiB1bHRyYV9nbG9iYWxfbWFwcGluZyB0cnVlXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZCAic2V0X2RiIGlvcHRfdWx0cmFfb3B0aW1pemF0aW9uIHRydWVcbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxzZXRfaGlnaF9lZmZvcnRfYXR0cmlidXRlcyAkY29tbWFuZF0KLSAgICAgIH0KLQotICAgICAgICAgc2V0IGNvbW1hbmQgIiNzZXRfZGIgb3B0aW1pemVfbWVyZ2VfZmxvcHMgICAgICBmYWxzZVxuIgotICAgICAgYXBwZW5kIGNvbW1hbmQgIiNzZXRfZGIgb3B0aW1pemVfY29uc3RhbnRfMF9mbG9wcyB0cnVlXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZCAiI3NldF9kYiBvcHRpbWl6ZV9jb25zdGFudF8xX2Zsb3BzIGZhbHNlXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZCAiI3NldF9kYiBvcHRpbWl6ZV9jb25zdGFudF9sYXRjaGVzIGZhbHNlXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZCAiI3NldF9kYiBkZWxldGVfdW5sb2FkZWRfc2VxcyAgICAgIHRydWVcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kICIjc2V0X2RiIG9wdGltaXplX25ldF9hcmVhICAgICAgICAgZmFsc2VcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kICIjc2V0X2RiIGRwX2FyZWFfbW9kZSAgICAgICAgICAgICAgdHJ1ZVxuIgotICAgICAgYXBwZW5kIGNvbW1hbmQgIiNzZXRfZGIgYXV0b191bmdyb3VwICAgICAgICAgICAgICBub25lXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZCAiI3NldF9kYiBhdXRvX3VuZ3JvdXBfbWluX2VmZm9ydCAgIGxvd1xuIgotICAgICAgYXBwZW5kIGNvbW1hbmQgIiNzZXRfZGIgdW5ncm91cF9zZXBhcmF0b3IgICAgICAgICBcbiIKLSAgICAgIAotICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHNldF9vcHRfYXR0cmlidXRlcyAkY29tbWFuZF0KLQotICAgICAgIyMjIERldGFpbCBTdGF0cyB3aGlsZSBydW5uaW5nCi0jICAgICAgYXBwZW5kIGNvbW1hbmRzICIjc2V0IGlvcHRfc3RhdHMgMVxuIgotICAgICAgCi0gICAgICAjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSAgICAgICMgTWF4IGxlYWthZ2UgcG93ZXIgPwotICAgICAgIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0jICAgICAgYXBwZW5kIGNvbW1hbmRzICIjc2V0X2RiIG1heF9sZWFrYWdlX3Bvd2VyID9cbiIKLSAgICAgIHNldCBjb21tYW5kICJcbnN5bnRoZXNpemUgLXRvX21hcHBlZCAtZWZmb3J0IGhpZ2ggLWluY3JcblxuIgotCi0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksc3luMmluY3IgJGNvbW1hbmRdCi0KLSAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OnNvdXJjZV9wbHVnIHBvc3Rfc3luX2luY3JfdGNsXQotCi0jICAgICAgYXBwZW5kIGNvbW1hbmRzICJmb3JlYWNoIGNnIFxbZmluZCAvIC1jb3N0X2dyb3VwICpcXSB7XG4iCi0jICAgICAgYXBwZW5kIGNvbW1hbmRzICIgIHJlcG9ydCB0aW1pbmcgLWNvc3RfZ3JvdXAgXCRjZyA+PiAkdmFycyhycHRfZGlyKS9zeW5faW5jcl9cW2ZpbGUgdGFpbCBcJGNnXF0ucnB0XG4iCi0jICAgICAgYXBwZW5kIGNvbW1hbmRzICJ9XG4iCi0gICAgICAKLSAgICAgICAgICBzZXQgY29tbWFuZCAiIgotICAgICAgYXBwZW5kIGNvbW1hbmQgInJlcG9ydF9hcmVhICAgICAgICAgICA+ICR2YXJzKHJwdF9kaXIpLyR2YXJzKHN0ZXApLmFyZWEucnB0XG4iCi0gICAgICBhcHBlbmQgY29tbWFuZCAicmVwb3J0X2RwICAgICAgICAgICAgID4gJHZhcnMocnB0X2RpcikvJHZhcnMoc3RlcCkuZGF0YXBhdGgucnB0XG4iCi0gICAgICBhcHBlbmQgY29tbWFuZCAicmVwb3J0X3RpbWluZyAtbWF4X3BhdGhzIDUgICAgICAgICAgICAgLXBhdGhfdHlwZSBzdW1tYXJ5ICAgICA+ICR2YXJzKHJwdF9kaXIpLyR2YXJzKHN0ZXApLnN0YXJ0X2VuZF9zbGFjay5ycHRcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kICJyZXBvcnRfdGltaW5nIC1tYXhfcGF0aHMgMSAgIC1ud29yc3QgMSAtcGF0aF90eXBlIGZ1bGxfY2xvY2sgID4gJHZhcnMocnB0X2RpcikvJHZhcnMoc3RlcCkud29yc3RfbWF4X3BhdGgucnB0XG4iCi0gICAgICBhcHBlbmQgY29tbWFuZCAicmVwb3J0X3RpbWluZyAtbWF4X3BhdGhzIDUwMCAtbndvcnN0IDEgLXBhdGhfdHlwZSBmdWxsX2Nsb2NrICA+ICR2YXJzKHJwdF9kaXIpLyR2YXJzKHN0ZXApLnRvcF81MDBfcGF0aHMucnB0XG4iCi0gICAgICBhcHBlbmQgY29tbWFuZCAicmVwb3J0X2dhdGVzIC1wb3dlciAgID4gJHZhcnMocnB0X2RpcikvJHZhcnMoc3RlcCkuZ2F0ZXNfcG93ZXIucnB0XG4iCi0gICAgICBhcHBlbmQgY29tbWFuZCAicmVwb3J0X2Nsb2NrX2dhdGluZyAgID4gJHZhcnMocnB0X2RpcikvJHZhcnMoc3RlcCkuY2xvY2tnYXRpbmcucnB0XG4iCi0gICAgICBhcHBlbmQgY29tbWFuZCAicmVwb3J0X3Bvd2VyIC1kZXB0aCAwID4gJHZhcnMocnB0X2RpcikvJHZhcnMoc3RlcCkucG93ZXIucnB0XG4iCi0KLSAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxnZW5lcmF0ZV9yZXBvcnRzICRjb21tYW5kXQotCi0gICAgICBpZiB7JHZhcnMoY2FwdHVyZV9tZXRyaWNzKX0gewotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJwb3Bfc25hcHNob3Rfc3RhY2tcbiIKLSAgICAgICAgIGlmIHtbbGluZGV4IFtzcGxpdCAkdmFycyh2ZXJzaW9uKSAiLiJdICAwXSA+IDE2fSB7Ci0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgImNyZWF0ZV9zbmFwc2hvdCAtbmFtZSAkdmFycyhzdGVwKSAtY2F0ZWdvcmllcyBkZXNpZ25cbiIKLSAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgImNyZWF0ZV9zbmFwc2hvdCAtbmFtZSAkdmFycyhzdGVwKVxuIgotICAgICAgICAgfQotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJ3cml0ZV9tZXRyaWMgLWZvcm1hdCB0Y2wgLWZpbGUgJHZhcnMoZGJzX2RpcikvJHZhcnMoc3RlcCkudW1cbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAicmVwb3J0X21ldHJpYyAtZmlsZSAkdmFycyhycHRfZGlyKS8kdmFycyhkZXNpZ24pLmh0bWwgLWZvcm1hdCBodG1sXG4iCi0gICAgICB9Ci0KLSAgICAgICAgIHNldCBjb21tYW5kICJ3cml0ZV9kYiAkdmFycyhkZXNpZ24pIC1hbGxfcm9vdF9hdHRyaWJ1dGVzIC10b19maWxlICR2YXJzKGRic19kaXIpLyR2YXJzKHN0ZXApLmRiXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksd3JpdGVfZGIgJGNvbW1hbmRdCi0KLSAgICAgIGlmIHshJHZhcnMoZW5hYmxlX3JjcCl9IHsKLSAgICAgICAgICAgIHNldCBjb21tYW5kICJcbndyaXRlX2Rlc2lnbiAtaW5ub3Z1cyAtZ3ppcCAtYmFzZW5hbWUgJHZhcnMoZGJzX2RpcikvJHZhcnMoc3RlcCkvJHZhcnMoc3RlcClcbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kICJzZXQgZmlsZSBcW29wZW4gJHZhcnMoZGJzX2RpcikvJHZhcnMoc3RlcCkvJHZhcnMoc3RlcCkubm92dXNfc2V0dXAudGNsIHdcXVxuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmQgInB1dHMgXCRmaWxlIFwiZXZhbF9lbmMgXHtzb3VyY2UgJHZhcnMoZGJzX2RpcikvJHZhcnMoc3RlcCkvJHZhcnMoc3RlcCkuZW5jX3NldHVwLnRjbFx9XCJcbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kICJjbG9zZSBcJGZpbGVcblxuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHdyaXRlX2Rlc2lnbiAkY29tbWFuZF0KLSAgICAgIH0KLQotICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKG1haWwsdG8pXX0gewotICAgICAgICAgc2V0IHN1bW1hcnlfZmlsZSAkdmFycyhzdGVwKS5zdW1tYXJ5Ci0gICAgICAgICBpZiB7IVtpbmZvIGV4aXN0cyB2YXJzKG1haWwsc3RlcHMpXSB8fCBcCi0gICAgICAgICAgICAgKFtpbmZvIGV4aXN0cyB2YXJzKG1haWwsc3RlcHMpXSAmJiAoW2xzZWFyY2ggJHZhcnMobWFpbCxzdGVwcykgJHZhcnMoc3RlcCldICE9IC0xKSl9IHsKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAicHV0cyBcIjxGRj4gTUFJTElORyBSRVNVTFRTIFRPICR2YXJzKG1haWwsdG8pXCJcbiIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiaWYge1xbZmlsZSBleGlzdHMgJHZhcnMocnB0X2RpcikvJHN1bW1hcnlfZmlsZVxdfSB7XG4iCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiAgIGV4ZWMgL2Jpbi9tYWlsIC1zIFwiRkY6ICR2YXJzKGRlc2lnbiksICR2YXJzKHN0ZXApIGNvbXBsZXRlZCAoXFtzaGVsbCBwd2RcXSlcIiA8ICR2YXJzKHJwdF9kaXIpLyRzdW1tYXJ5X2ZpbGUgJHZhcnMobWFpbCx0bylcbiIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAifSBlbHNlaWYge1xbZmlsZSBleGlzdHMgJHZhcnMocnB0X2RpcikvJHtzdW1tYXJ5X2ZpbGV9Lmd6XF19IHtcbiIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiICAgZXhlYyBndW56aXAgLWMgJHZhcnMocnB0X2RpcikvJHtzdW1tYXJ5X2ZpbGV9Lmd6IFx8IC9iaW4vbWFpbCAtcyBcIkZGOiAkdmFycyhkZXNpZ24pLCAkdmFycyhzdGVwKSBjb21wbGV0ZWQgKFxbcHdkXF0pXCIgJHZhcnMobWFpbCx0bylcbiIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAifSBlbHNlIHtcbiIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiICAgZXhlYyAvYmluL21haWwgLXMgXCJGRjogJHZhcnMoZGVzaWduKSwgJHZhcnMoc3RlcCkgY29tcGxldGVkIChcW3NoZWxsIHB3ZFxdKVwiIDwgL2Rldi9udWxsICR2YXJzKG1haWwsdG8pXG4iCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIn1cbiIKLSAgICAgICAgIH0KLSAgICAgIH0KLQotICAgICAgYXBwZW5kIGNvbW1hbmRzICJpZiB7XFtpbmZvIGV4aXN0cyBlbnYoVlBBVEgpXF19IHsiCi0gICAgICBhcHBlbmQgY29tbWFuZHMgImV4ZWMgL2Jpbi90b3VjaCBcJGVudihWUEFUSCkvJHZhcnMoc3RlcCkiCi0gICAgICBhcHBlbmQgY29tbWFuZHMgIn1cbiIKLQotICAgICAgcmV0dXJuICRjb21tYW5kcwotCi0gICB9Ci0KLSAgIHByb2MgcnVuX3N5bl9wbGFjZSB7e2Zvcm1hdCAxfX0gewotCi0gICAgICBnbG9iYWwgdmFycwotICAgICAgZ2xvYmFsIGVudgotICAgICAgZ2xvYmFsIGVycm9ycwotCi0gICAgICBzZXQgdmFycyhzdGVwKSBzeW5fcGxhY2UKLQotICAgICAgc2V0IGNvbW1hbmRzICIiCi0KLSMgICAgICBhcHBlbmQgY29tbWFuZHMgInNvdXJjZSAkdmFycyhzY3JpcHRfZGlyKS92YXJzLnRjbFxuIgotCi0gICAgICBhcHBlbmQgY29tbWFuZHMgInByb2MgUHV0cyB7YXJnc30ge3B1dHMgXCRhcmdzfVxuIgotCi0gICAgICBpZiB7JHZhcnMobm92dXMpfSB7Ci0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgInB1dHMgXFtnZXRfZGIgcHJvZ3JhbV92ZXJzaW9uXF1cbiIKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgInB1dHMgXFtnZXRfYXR0ciBwcm9ncmFtX3ZlcnNpb25cXVxuIgotICAgICAgfQotICAgICAKLSAgICAgICMjIGVuYWJsZSBtdWx0aSBwcm9jZXNzaW5nCi0gICAgICBhcHBlbmQgY29tbWFuZHMgInNldCBob3N0bGlzdCBcW2xyZXBlYXQgJHZhcnMobG9jYWxfY3B1cykgbG9jYWxob3N0XF1cbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyAic2V0X2RiIHN1cGVyX3RocmVhZF9zZXJ2ZXJzIFwkaG9zdGxpc3RcbiIKLSAgICAgCi0jICAgICAgaWYgeyR2YXJzKGNhcHR1cmVfbWV0cmljcyl9IHsKLSMgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIlxuZW5hYmxlX21ldHJpY3MgLW9uXG4iCi0jICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJwdXNoX3NuYXBzaG90X3N0YWNrXG4iCi0jICAgICAgfQotCi0gICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMocG9zdGxvYWRfc3luX3BsYWNlX3RjbCldfSB7Ci0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgInNldF9kYiBlbmNfcG9zdGxvYWRfc2NyaXB0ICR2YXJzKHBvc3Rsb2FkX3N5bl9wbGFjZV90Y2wpXG4iCi0gICAgICB9Ci0gICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMocHJlZXhwb3J0X3N5bl9wbGFjZV90Y2wpXX0gewotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJzZXRfZGIgZW5jX3ByZWV4cG9ydF9zY3JpcHQgJHZhcnMocHJlZXhwb3J0X3N5bl9wbGFjZV90Y2wpXG4iCi0gICAgICB9Ci0gICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMocHJlYW5ub3RhdGlvbl9zeW5fcGxhY2VkX3RjbCldfSB7Ci0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgInNldF9kYiBlbmNfcHJlYW5ub3RhdGlvbl90Y2wgJHZhcnMocHJlYW5ub3RhdGlvbl9zeW5fcGxhY2VkX3RjbClcbiIKLSAgICAgIH0KLQotICAgICAgYXBwZW5kIGNvbW1hbmRzICJzZXRfZGIgZW5jX3RlbXBfZGlyIC4vSU5OT1ZVUy9yY3BfcnVuXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgInNldF9kYiBlbmNfZ3ppcF9pbnRlcmZhY2VfZmlsZXMgdHJ1ZVxuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzICJzZXRfZGIgcHFvc19wbGFjZW1lbnRfZWZmb3J0IG5vX3ZhbHVlXG4iCi0KLSMgICAgICBhcHBlbmQgY29tbWFuZHMgInNldCA6OnBoeXM6OnBxb3NfdG5zX29wdCAxXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgInNldF9kYiBpb3B0X2VuYWJsZV9wYXJhbGxlbGl6YXRpb24gZmFsc2VcbiIKLSAgICAgIAotIyAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhkZWZfZmlsZXMpXX0gewotIyAgICAgICAgIGZvcmVhY2ggZmlsZSAkdmFycyhkZWZfZmlsZXMpIHsKLSMgICAgICAgICAgICBpZiB7W2ZpbGUgZXhpc3RzICRmaWxlXX0gewotIyAgICAgICAgICAgICAgIHNldCBjb21tYW5kICJyZWFkX2RlZiAkdmFycyhkZWZfZmlsZXMpXG4iCi0jICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHJlYWRfZGVmICRjb21tYW5kXQotIyAgICAgICAgICAgIH0KLSMgICAgICAgICB9Ci0jICAgICAgfQotICAgICAgCi0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjpzb3VyY2VfcGx1ZyBwcmVfc3luX3BsYWNlX3RjbF0KLSAgICAgCi0gICAgICBzZXQgY29tbWFuZCAiXG5zeW50aGVzaXplIC10b19wbGFjZWQgLWVmZm9ydCBoaWdoIC1wcW9zX29ubHlcblxuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHN5bjJwbGFjZSAkY29tbWFuZF0KLQotICAgICAgc2V0IGNvbW1hbmQgIlxuc3ludGhlc2l6ZSAtdG9fcGxhY2VkIC1lZmZvcnQgaGlnaCAtaW5jclxuXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksc3luMnBsYWNlX2luY3IgJGNvbW1hbmRdCi0KLSAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OnNvdXJjZV9wbHVnIHBvc3Rfc3luX3BsYWNlX3RjbF0KLQotICAgICAgYXBwZW5kIGNvbW1hbmRzICI6OnBoeXM6OnFvc19zdGF0cyAtcXVpZXQgLXRhZyBzeW4ycGxhY2VkXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgIjo6cGh5czo6cW9zX3dyaXRlX3N0YXRzX2FycmF5ID4gJHZhcnMocnB0X2RpcikvcW9zX3N0YXRzLnFkYlxuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzICI6OnBoeXM6OnFvc19zdW1tYXJ5XG4iCi0KLSAgICAgIGFwcGVuZCBjb21tYW5kcyAiZm9yZWFjaCBjZyBcW2ZpbmQgLyAtY29zdF9ncm91cCAqXF0ge1xuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzICIgIHJlcG9ydCB0aW1pbmcgLWNvc3RfZ3JvdXAgXCRjZyA+PiAkdmFycyhycHRfZGlyKS9zeW5fcGxhY2VfXFtmaWxlIHRhaWwgXCRjZ1xdLnJwdFxuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzICJ9XG4iCi0gICAgICAKLSAgICAgIGFwcGVuZCBjb21tYW5kICJyZXBvcnRfYXJlYSAgICAgICAgICAgPiAkdmFycyhycHRfZGlyKS8kdmFycyhzdGVwKS5hcmVhLnJwdFxuIgotICAgICAgYXBwZW5kIGNvbW1hbmQgInJlcG9ydF9kcCAgICAgICAgICAgICA+ICR2YXJzKHJwdF9kaXIpLyR2YXJzKHN0ZXApLmRhdGFwYXRoLnJwdFxuIgotICAgICAgYXBwZW5kIGNvbW1hbmQgInJlcG9ydF90aW1pbmcgLW1heF9wYXRocyA1ICAgICAgICAgICAgIC1wYXRoX3R5cGUgc3VtbWFyeSAgICAgPiAkdmFycyhycHRfZGlyKS8kdmFycyhzdGVwKS5zdGFydF9lbmRfc2xhY2sucnB0XG4iCi0gICAgICBhcHBlbmQgY29tbWFuZCAicmVwb3J0X3RpbWluZyAtbWF4X3BhdGhzIDEgICAtbndvcnN0IDEgLXBhdGhfdHlwZSBmdWxsX2Nsb2NrICA+ICR2YXJzKHJwdF9kaXIpLyR2YXJzKHN0ZXApLndvcnN0X21heF9wYXRoLnJwdFxuIgotICAgICAgYXBwZW5kIGNvbW1hbmQgInJlcG9ydF90aW1pbmcgLW1heF9wYXRocyA1MDAgLW53b3JzdCAxIC1wYXRoX3R5cGUgZnVsbF9jbG9jayAgPiAkdmFycyhycHRfZGlyKS8kdmFycyhzdGVwKS50b3BfNTAwX3BhdGhzLnJwdFxuIgotICAgICAgYXBwZW5kIGNvbW1hbmQgInJlcG9ydF9nYXRlcyAtcG93ZXIgICA+ICR2YXJzKHJwdF9kaXIpLyR2YXJzKHN0ZXApLmdhdGVzX3Bvd2VyLnJwdFxuIgotICAgICAgYXBwZW5kIGNvbW1hbmQgInJlcG9ydF9jbG9ja19nYXRpbmcgICA+ICR2YXJzKHJwdF9kaXIpLyR2YXJzKHN0ZXApLmNsb2NrZ2F0aW5nLnJwdFxuIgotICAgICAgYXBwZW5kIGNvbW1hbmQgInJlcG9ydF9wb3dlciAtZGVwdGggMCA+ICR2YXJzKHJwdF9kaXIpLyR2YXJzKHN0ZXApLnBvd2VyLnJwdFxuIgotCi0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksZ2VuZXJhdGVfcmVwb3J0cyAkY29tbWFuZF0KLQotICAgICAgaWYgeyR2YXJzKGNhcHR1cmVfbWV0cmljcyl9IHsKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAicG9wX3NuYXBzaG90X3N0YWNrXG4iCi0gICAgICAgICBpZiB7W2xpbmRleCBbc3BsaXQgJHZhcnModmVyc2lvbikgIi4iXSAgMF0gPiAxNn0gewotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJjcmVhdGVfc25hcHNob3QgLW5hbWUgJHZhcnMoc3RlcCkgLWNhdGVnb3JpZXMgZGVzaWduXG4iCi0gICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJjcmVhdGVfc25hcHNob3QgLW5hbWUgJHZhcnMoc3RlcClcbiIKLSAgICAgICAgIH0KLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAid3JpdGVfbWV0cmljIC1mb3JtYXQgdGNsIC1maWxlICR2YXJzKGRic19kaXIpLyR2YXJzKHN0ZXApLnVtXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgInJlcG9ydF9tZXRyaWMgLWZpbGUgJHZhcnMocnB0X2RpcikvJHZhcnMoZGVzaWduKS5odG1sIC1mb3JtYXQgaHRtbFxuIgotICAgICAgfQotCi0gICAgICAgICBzZXQgY29tbWFuZCAid3JpdGVfZGIgJHZhcnMoZGVzaWduKSAtYWxsX3Jvb3RfYXR0cmlidXRlcyAtdG9fZmlsZSAkdmFycyhkYnNfZGlyKS8kdmFycyhzdGVwKS5kYlxuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHdyaXRlX2RiICRjb21tYW5kXQotCi0gICAgICBpZiB7JHZhcnMoZW5hYmxlX3JjcCl9IHsKLSAgICAgICAgICAgIHNldCBjb21tYW5kICJcbndyaXRlX2Rlc2lnbiAtaW5ub3Z1cyAtZ3ppcCAtYmFzZW5hbWUgJHZhcnMoZGJzX2RpcikvJHZhcnMoc3RlcCkvJHZhcnMoc3RlcClcbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kICJzZXQgZmlsZSBcW29wZW4gJHZhcnMoZGJzX2RpcikvJHZhcnMoc3RlcCkvJHZhcnMoc3RlcCkubm92dXNfc2V0dXAudGNsIHdcXVxuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmQgInB1dHMgXCRmaWxlIFwiZXZhbF9lbmMgXHtzb3VyY2UgJHZhcnMoZGJzX2RpcikvJHZhcnMoc3RlcCkvJHZhcnMoc3RlcCkuZW5jX3NldHVwLnRjbFx9XCJcbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kICJjbG9zZSBcJGZpbGVcblxuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHdyaXRlX2Rlc2lnbiAkY29tbWFuZF0KLSAgICAgIH0KLQotICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKG1haWwsdG8pXX0gewotICAgICAgICAgc2V0IHN1bW1hcnlfZmlsZSAkdmFycyhzdGVwKS5zdW1tYXJ5Ci0gICAgICAgICBpZiB7IVtpbmZvIGV4aXN0cyB2YXJzKG1haWwsc3RlcHMpXSB8fCBcCi0gICAgICAgICAgICAgKFtpbmZvIGV4aXN0cyB2YXJzKG1haWwsc3RlcHMpXSAmJiAoW2xzZWFyY2ggJHZhcnMobWFpbCxzdGVwcykgJHZhcnMoc3RlcCldICE9IC0xKSl9IHsKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAicHV0cyBcIjxGRj4gTUFJTElORyBSRVNVTFRTIFRPICR2YXJzKG1haWwsdG8pXCJcbiIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiaWYge1xbZmlsZSBleGlzdHMgJHZhcnMocnB0X2RpcikvJHN1bW1hcnlfZmlsZVxdfSB7XG4iCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiAgIGV4ZWMgL2Jpbi9tYWlsIC1zIFwiRkY6ICR2YXJzKGRlc2lnbiksICR2YXJzKHN0ZXApIGNvbXBsZXRlZCAoXFtzaGVsbCBwd2RcXSlcIiA8ICR2YXJzKHJwdF9kaXIpLyRzdW1tYXJ5X2ZpbGUgJHZhcnMobWFpbCx0bylcbiIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAifSBlbHNlaWYge1xbZmlsZSBleGlzdHMgJHZhcnMocnB0X2RpcikvJHtzdW1tYXJ5X2ZpbGV9Lmd6XF19IHtcbiIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiICAgZXhlYyBndW56aXAgLWMgJHZhcnMocnB0X2RpcikvJHtzdW1tYXJ5X2ZpbGV9Lmd6IFx8IC9iaW4vbWFpbCAtcyBcIkZGOiAkdmFycyhkZXNpZ24pLCAkdmFycyhzdGVwKSBjb21wbGV0ZWQgKFxbcHdkXF0pXCIgJHZhcnMobWFpbCx0bylcbiIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAifSBlbHNlIHtcbiIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiICAgZXhlYyAvYmluL21haWwgLXMgXCJGRjogJHZhcnMoZGVzaWduKSwgJHZhcnMoc3RlcCkgY29tcGxldGVkIChcW3NoZWxsIHB3ZFxdKVwiIDwgL2Rldi9udWxsICR2YXJzKG1haWwsdG8pXG4iCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIn1cbiIKLSAgICAgICAgIH0KLSAgICAgIH0KLQotICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHNjaGVkdWxlX2Zsb3cgJGNvbW1hbmRdCi0KLSAgICAgIGFwcGVuZCBjb21tYW5kcyAiaWYge1xbaW5mbyBleGlzdHMgZW52KFZQQVRIKVxdfSB7IgotICAgICAgYXBwZW5kIGNvbW1hbmRzICJleGVjIC9iaW4vdG91Y2ggXCRlbnYoVlBBVEgpLyR2YXJzKHN0ZXApIgotICAgICAgYXBwZW5kIGNvbW1hbmRzICJ9XG4iCi0KLSAgICAgIHJldHVybiAkY29tbWFuZHMKLQotICAgfQotCi0gICBwcm9jIHJ1bl9pbml0IHt7Zm9ybWF0IDF9fSB7Ci0KLSAgICAgIGdsb2JhbCB2YXJzCi0gICAgICBnbG9iYWwgZW52Ci0gICAgICBnbG9iYWwgZXJyb3JzCi0gICAgICBnbG9iYWwgd2FybmluZ3MKLSAgICAgIGdsb2JhbCBlbnYKLQotICAgICAgc2V0IGNvbW1hbmRzICIiCi0gICAgICBzZXQgdWNvbW1lbnRzICIiCi0gICAgICBzZXQgY29tbWVudHMgIiIKLQotICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKHZpZXdfZGVmaW5pdGlvbl90Y2wpXX0gewotICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyh2aWV3X2RlZmluaXRpb25fdGNsKVxuIgotICAgICAgfQotCi0gICAgICBpZiB7IVtpbmZvIGV4aXN0cyB2YXJzKHN0ZXApXSB8fCAoKCR2YXJzKHN0ZXApICE9ICJwYXJ0aXRpb25fcGxhY2UiKSAmJiAoJHZhcnMoc3RlcCkgIT0gIm1vZGVsX2dlbiIpICYmICgkdmFycyhzdGVwKSAhPSAicHJvdG90eXBlIikpfSB7IAotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJzZXQgdmFycyhzdGVwKSBpbml0XG4iCi0gICAgICAgICBzZXQgdmFycyhzdGVwKSBpbml0Ci0gICAgICB9IAotCi0gICAgICBpZiB7JHZhcnMocmVwb3J0X3J1bl90aW1lKX0gewotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJzZXQgdmFycygkdmFycyhzdGVwKSxzdGFydF90aW1lKSBcW2Nsb2NrIHNlY29uZHNcXVxuIgotICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhyZXBvcnRfcnVuX3RpbWUpXG4iCi0gICAgICB9IGVsc2UgewotICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMocmVwb3J0X3J1bl90aW1lKVxuIgotICAgICAgfQotCi0gICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJHZhcnMoc3RlcCkscnB0X2RpcildfSB7Ci0gICAgICAgICBzZXQgdmFycyhycHRfZGlyKSAkdmFycygkdmFycyhzdGVwKSxycHRfZGlyKQotICAgICAgICAgZmlsZSBta2RpciAkdmFycygkdmFycyhzdGVwKSxycHRfZGlyKQotICAgICAgfSBlbHNlIHsKLSAgICAgICAgIHNldCB2YXJzKHJwdF9kaXIpICR2YXJzKG9yaWdfcnB0X2RpcikKLSAgICAgIH0KLQotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgIyBNYWtlIHN1cmUgbmVjZXNzYXJ5IGRhdGEgaXMgZGVmaW5lZAotICAgICAgIyBDcmVhdGUgbWFrZSBkaXJlY3RvcnkgaWYgaXQgZG9lc24ndCBleGlzdHMKLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgIGlmIHshJHZhcnMoY29kZWdlbil9ICB7IAotICAgICAgICAgc2V0IGNvbW1hbmQgIkZGX05PVlVTOjpjaGVja19zZXR1cFxuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmQgInNsZWVwIDNcbiIKLSAgICAgICAgIHVwbGV2ZWwgIzAgZXZhbCAkY29tbWFuZCAKLSAgICAgIH0KLQotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgIyBNYWtlIHN1cmUgbmVjZXNzYXJ5IGRhdGEgaXMgZGVmaW5lZAotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCi0gICAgICBmb3JlYWNoIGRpciAiW3N1YnN0ICR2YXJzKGRic19kaXIpXSBbc3Vic3QgJHZhcnMocnB0X2RpcildIFtzdWJzdCAkdmFycyhsb2dfZGlyKV0iIHsKLSAgICAgICAgIHNldCBuZXdEaXIgW3N1YnN0ICRkaXJdCi0gICAgICAgICBpZiB7IVtmaWxlIGV4aXN0cyAkbmV3RGlyXX0gIHsKLSAgICAgICAgICAgIGZpbGUgbWtkaXIgJG5ld0RpcgotICAgICAgICAgfQotICAgICAgfQotCi0jICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGJ1ZmZlcl90aWVfYXNzaWduKV0gJiYgJHZhcnMoYnVmZmVyX3RpZV9hc3NpZ24pfSAgewotIyAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAic2V0X2RiIGluaXRfYnVmZmVyX3RpZV9hc3NpZ24gdHJ1ZVxuIgotIyAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMoYnVmZmVyX3RpZV9hc3NpZ24pXG4iCi0jICAgICAgfSBlbHNlIHsKLSMgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhidWZmZXJfdGllX2Fzc2lnbilcbiIKLSMgICAgICB9Ci0KLSAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhncm91bmRfbmV0cyldfSAgewotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJzZXRfZGIgaW5pdF9ncm91bmRfbmV0cyBcIiR2YXJzKGdyb3VuZF9uZXRzKVwiXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKGdyb3VuZF9uZXRzKVxuIgotICAgICAgfSBlbHNlIHsKLSAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKGdyb3VuZF9uZXRzKVxuIgotICAgICAgfQotCi0gICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMocG93ZXJfbmV0cyldfSAgewotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJzZXRfZGIgaW5pdF9wb3dlcl9uZXRzIFwiJHZhcnMocG93ZXJfbmV0cylcIlxuIgotICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhwb3dlcl9uZXRzKVxuIgotICAgICAgfSBlbHNlIHsKLSAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKHBvd2VyX25ldHMpXG4iCi0gICAgICB9Ci0KLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICMgTG9hZCBwcmUtaW5pdGlhbGl6YXRpYW9uIHBsdWctaW4gc2NyaXB0Ci0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjpzb3VyY2VfcGx1ZyBwcmVfaW5pdF90Y2xdCi0KLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICMgVGhlc2UgZmxvdyBzY3JpcHRzIHN1cHBvcnQgdGhlIGZvbGxvd2luZzoKLSAgICAgICMgLSBGbGF0IGNoaXAgb3IgYmxvY2sKLSAgICAgICMgLSBIaWVyYXJjaGljYWwgcGFydGl0aW9uCi0gICAgICAjIC0gVG9wIGxldmVsIHBhcnRpdGlvbgotICAgICAgIwotICAgICAgIyBUaGUgZGF0YSBsb2FkaW5nIG1lY2hhbmlzbSBhcmUgc2xpZ2h0bHkgZGlmZmVyZW50IGZvciBlYWNoIHNvIHdlIGRldGVybWluZQotICAgICAgIyBmaXJzdCBpZiB3ZSBhcmUgaW4gYSBoaWVyYXJjaGljYWwgZmxvdyAoaS5lLiB2YXJzKHBhcnRpdGlvbl9saXN0KSBpcwotICAgICAgIyBkZWZpbmVkIGFuZCwgaWYgc28sIHdoZXRoZXIgd2UgYXJlIGluIGEgaGllcmFyY2hpY2FsIHBhcnRpdGlvbiBmbG93Ci0gICAgICAjIG9yIGEgdG9wIHBhcnRpdGlvbiBmbG93IChpLmUuIGN3ZCA9PSAkdmFycyhkZXNpZ24pIC0gc2VlIGJlbG93KQotICAgICAgIwotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCi0gICAgICAgRkZfTk9WVVM6OmNoZWNrX2Zsb3cKLQotIyAgICAgIGFwcGVuZCBjb21tYW5kcyAiIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIgotIyAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgICAgICAgICAgICAgICAgICAgICAgICAgIEVYRUNVVElORyBGTE9XXG4iCi0jICAgICAgYXBwZW5kIGNvbW1hbmRzICIjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4iCi0KLSAgICAgIHNldCBoaWVyIDAKLSAgICAgIAotICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCR2YXJzKHN0ZXApLHN0YXJ0aW5nX2RicyldfSB7Ci0gICAgICAgICBpZiB7W3N0cmluZyBjb21wYXJlIC1ub2Nhc2UgJHZhcnMoZGJzX2Zvcm1hdCkgIm9hIl09PTB9IHsKLSAgICAgICAgICAgIyBJbnRlcnByZXQgdGhlIHN0YXJ0aW5nIERCUyBhcyBhbiBPQSB0cmlwbGUKLSAgICAgICAgICAgc2V0IHJlc3RvcmVfY29tbWFuZCAiW2xpc3QgcmVhZF9kYiAtY2VsbHZpZXcgJHZhcnMoJHZhcnMoc3RlcCksc3RhcnRpbmdfZGJzKV1cbiIKLSAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBpZiB7W2ZpbGUgaXNkaXJlY3RvcnkgJHZhcnMoJHZhcnMoc3RlcCksc3RhcnRpbmdfZGJzKV19IHsKLSAgICAgICAgICAgICAgc2V0IHJlc3RvcmVfY29tbWFuZCAicmVhZF9kYiAkdmFycygkdmFycyhzdGVwKSxzdGFydGluZ19kYnMpIFxuIgotICAgICAgICAgICAgfSBlbHNlaWYge1tmaWxlIGV4aXN0cyAkdmFycygkdmFycyhzdGVwKSxzdGFydGluZ19kYnMpXX0gewotICAgICAgICAgICAgICBzZXQgcmVzdG9yZV9jb21tYW5kICJyZWFkX2RiICR2YXJzKCR2YXJzKHN0ZXApLHN0YXJ0aW5nX2RicykgXG4iCi0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICBwdXRzICI8RkY+IFN0YXJ0aW5nIERCUyAoJHZhcnMoJHZhcnMoc3RlcCksc3RhcnRpbmdfZGJzKSkgZGVmaW5lZCBidXQgZG9lcyBub3QgZXhpc3QiCi0gICAgICAgICAgICAgIHNldCByZXN0b3JlX2NvbW1hbmQgInJlYWRfZGIgJHZhcnMoJHZhcnMoc3RlcCksc3RhcnRpbmdfZGJzKSBcbiIKLSAgICAgICAgICAgICAgc2V0IHdhcm5pbmdzKCR2YXJzKHdhcm5pbmdfY291bnQpKSAiU3RhcnRpbmcgREJTICgkdmFycygkdmFycyhzdGVwKSxzdGFydGluZ19kYnMpKSBkZWZpbmVkIGJ1dCBkb2VzIG5vdCBleGlzdCIKLSAgICAgICAgICAgICAgaW5jciB2YXJzKHdhcm5pbmdfY291bnQpCi0gICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0KLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxyZWFkX2RiICRyZXN0b3JlX2NvbW1hbmRdCi0KLSAgICAgIH0gZWxzZSB7Ci0KLSAgICAgICAgIGlmIHshW2luZm8gZXhpc3RzIHZhcnMocGFydGl0aW9uX2xpc3QpXSB8fCAoW2luZm8gZXhpc3RzIHZhcnMocGFydGl0aW9uX2xpc3QpXSAmJiBcCi0gICAgICAgICAgICAgIChbZmlsZSB0YWlsIFtmaWxlIGRpcm5hbWUgW3B3ZF1dXSAhPSAiJHZhcnMocGFydGl0aW9uX2RpcikiKSl9IHsKLSAgIAotICAgICAgICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgICAgICAgIyBQYXJ0aXRpb24gc3RlcCBvciBmbGF0IGluaXQgc3RlcAotICAgICAgICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAKLSAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhwYXJ0aXRpb25fbGlzdCldfSB7IAotICAgICAgICAgICAgICAgc2V0IGhpZXIgMQotICAgICAgICAgICAgfQotICAgCi0gICAgICAgICAgICBpZiB7JHZhcnModmVyYm9zZSl9IHsKLSAgICAgICAgICAgICAgIGlmIHshW2luZm8gZXhpc3RzIHZhcnMocGFydGl0aW9uX2xpc3QpXX0gewotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjXG4iCi0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgRkxBVCBJTVBMRU1FTlRBVElPTiBGTE9XXG4iCi0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiNcbiIKLSAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiNcbiIKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyBQQVJUSVRJT05JTkcgRkxPV1xuIgotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjXG4iCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAKLSAgICAgICAgICAgIGlmIHskdmFycyh2ZXJib3NlKX0gewotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgTE9BRElORyBERVNJR04gREFUQVxuIgotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjXG4iCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAgICAgICAjIExvYWQgZGVzaWduIGNvbmZpZ3VyYXRpb24gZmlsZQotICAgICAgICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgCi0gICAgICAgICAgICBpZiB7W2xpbmRleCBbc3BsaXQgJHZhcnModmVyc2lvbikgIi4iXSAwXSA8PSAxMH0gewotICAgICAgICAgICAgICAgc291cmNlICR2YXJzKHNjcmlwdF9wYXRoKS9FVEMvSU5OT1ZVUy9nZW5lcmljLmNvbmYKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIHskdmFycyhpbG0pfSB7Ci0gICAgICAgICAgICAgICBzZXQgaWxtX2xpc3QgJHZhcnMoaWxtX2xpc3QpCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKGlsbV9saXN0KSBcIjxsaXN0IG9mIElMTXM+XCJcbiIKLSAgICAgICAgICAgICAgIGlmIHskdmFycyhtb2RlKSA9PSAiYm90dG9tX3VwIn0gewotICAgICAgICAgICAgICAgICAgZm9yZWFjaCBwYXJ0ICR2YXJzKHBhcnRpdGlvbl9saXN0KSB7Ci0gICAgICAgICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJHBhcnQsaWxtX2RpcildfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKDxpbG0+LGlsbV9kaXIpIFwiPHBhdGggdG8gSUxNIGRpcmVjdG9yeT5cIlxuIgotICAgICAgICAgICAgICAgICAgICAgICAgaWYge1tsc2VhcmNoICRpbG1fbGlzdCAkcGFydF0gPT0gLTF9IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhcHBlbmQgaWxtX2xpc3QgJHBhcnQKLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIGZvcmVhY2ggaWxtICRpbG1fbGlzdCB7Ci0gICAgICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJGlsbSxsZWZfZmlsZSldICYmIFtmaWxlIGV4aXN0cyAkdmFycygkaWxtLGxlZl9maWxlKV19IHsKLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMoPGlsbT4sbGVmX2ZpbGUpIFwiPExFRiBmaWxlIGZvciBibG9jayBhc3NvY2lhdGVkIHdpdGggSUxNPlwiXG4iCi0gICAgICAgICAgICAgICAgICAgICBpZiB7W2xpbmRleCBbc3BsaXQgJHZhcnModmVyc2lvbikgIi4iXSAgMF0gPD0gMTB9IHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGxhcHBlbmQgcmRhX0lucHV0KHVpX2xlZmZpbGUpICR2YXJzKCRpbG0sbGVmX2ZpbGUpCi0gICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICAgaWYge1tzdHJpbmcgY29tcGFyZSAkdmFycyhkYnNfZm9ybWF0KSAiZmUiXT09MH0gewotICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFwcGVuZCB2YXJzKGxlZl9maWxlcykgJHZhcnMoJGlsbSxsZWZfZmlsZSkKLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICBwdXRzICI8RkY+IFdBUk5JTkc6IExFRiBmaWxlIGVpdGhlciBub3QgZGVmaW5lZCBvciBkb2Vzbid0IGV4aXN0IGZvciAkaWxtIgotICAgICAgICAgICAgICAgICAgICAgcHV0cyAiPEZGPiAgICAgICAgICBQbGVhc2UgbWFrZSBzdXJlIGl0IGlzIGluIHlvdXIgdmFycyhsZWZfZmlsZXMpIGxpc3QiCi0gICAgICAgICAgICAgICAgICAgICBzZXQgd2FybmluZ3MoJHZhcnMod2FybmluZ19jb3VudCkpICJMRUYgZmlsZSBlaXRoZXIgbm90IGRlZmluZWQgb3IgZG9lc24ndCBleGlzdCBmb3IgJGlsbVxuXHRQbGVhc2UgbWFrZSBzdXJlIGl0IGlzIGluIHlvdXIgdmFycyhsZWZfZmlsZXMpIGxpc3QiCi0gICAgICAgICAgICAgICAgICAgICBpbmNyIHZhcnMod2FybmluZ19jb3VudCkKLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkaWxtLHNldHVwX2xpYildICYmIFtmaWxlIGV4aXN0cyAkdmFycygkaWxtLHNldHVwX2xpYildfSB7Ci0gICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKDxpbG0+LHNldHVwX2xpYikgXCI8TElCIGZpbGUgZm9yIGJsb2NrIGFzc29jaWF0ZWQgd2l0aCBJTE0+XCJcbiIKLSAgICAgICAgICAgICAgICAgICAgIGlmIHtbbGluZGV4IFtzcGxpdCAkdmFycyh2ZXJzaW9uKSAiLiJdICAwXSA8PSAxMH0geyAKLSAgICAgICAgICAgICAgICAgICAgICAgIGxhcHBlbmQgcmRhX0lucHV0KHVpX3RpbWVsaWIpICR2YXJzKCRpbG0sc2V0dXBfbGliKQotICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIHtbc3RyaW5nIGNvbXBhcmUgJHZhcnMoZGJzX2Zvcm1hdCkgImZlIl09PTB9IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcmVhY2ggc2V0ICR2YXJzKGxpYnJhcnlfc2V0cykgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYge1tsc2VhcmNoICR2YXJzKCRzZXQsdGltaW5nKSAkdmFycygkaWxtLHNldHVwX2xpYildID09IC0xfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXBwZW5kIHZhcnMoJHNldCx0aW1pbmcpICR2YXJzKCRpbG0sc2V0dXBfbGliKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgIHB1dHMgIjxGRj4gV0FSTklORzogTElCIGZpbGUgZWl0aGVyIG5vdCBkZWZpbmVkIG9yIGRvZXNuJ3QgZXhpc3QgZm9yICRpbG0iCi0gICAgICAgICAgICAgICAgICAgICBwdXRzICI8RkY+ICAgICAgICAgIFBsZWFzZSBtYWtlIHN1cmUgaXQgaXMgaW4geW91ciBsaWJyYXJ5IHNldCBkZWZpbml0aW9ucyIKLSAgICAgICAgICAgICAgICAgICAgIHNldCB3YXJuaW5ncygkdmFycyh3YXJuaW5nX2NvdW50KSkgIkxJQiBmaWxlIGVpdGhlciBub3QgZGVmaW5lZCBvciBkb2Vzbid0IGV4aXN0IGZvciAkaWxtXG5cdFBsZWFzZSBtYWtlIHN1cmUgaXQgaXMgaW4geW91ciBsaWJyYXJ5IHNldCBkZWZpbml0aW9ucyIKLSAgICAgICAgICAgICAgICAgICAgIGluY3IgdmFycyh3YXJuaW5nX2NvdW50KQotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKGlsbV9saXN0KSBcIjxsaXN0IG9mIElMTXM+XCJcbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKDxpbG0+LGlsbV9kaXIpIFwiPHBhdGggdG8gSUxNIGRpcmVjdG9yeT5cIlxuIgotICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMoPGlsbT4sbGVmX2ZpbGUpIFwiPExFRiBmaWxlIGZvciBibG9jayBhc3NvY2lhdGVkIHdpdGggSUxNPlwiXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyg8aWxtPixzZXR1cF9saWIpIFwiPExJQiBmaWxlIGZvciBibG9jayBhc3NvY2lhdGVkIHdpdGggSUxNPlwiXG4iCi0gICAgICAgICAgICB9Ci0gICAKLSAgICAgICAgICAgIEZGX05PVlVTOjpkdW1wX2NvbmZpZwotICAgCi0gICAgICAgICAgICBpZiB7W3N0cmluZyBjb21wYXJlIC1ub2Nhc2UgJHZhcnMobmV0bGlzdF90eXBlKSAidmVyaWxvZyJdPj0wfSB7Ci0gICAgICAgICAgICAgICBzZXQgY29tbWFuZCAiIiAKLSAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyh2aWV3X2RlZmluaXRpb25fdGNsKV19IHsKLSAgICAgICAgICAgICAgICAgIHNldCBtbW1jX2ZpbGUgJHZhcnModmlld19kZWZpbml0aW9uX3RjbCkKLSAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICBzZXQgbW1tY19maWxlICR2YXJzKHNjcmlwdF9kaXIpL3ZpZXdfZGVmaW5pdGlvbi50Y2wKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJyZWFkX21tbWMgJG1tbWNfZmlsZVxuIgotICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGxlZl9maWxlcyldfSB7Ci0gICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJyZWFkX3BoeXNpY2FsIC1sZWYgXCJcXFxuIgotICAgICAgICAgICAgICAgICBmb3JlYWNoIGxlZiAkdmFycyhsZWZfZmlsZXMpIHsKLSMgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJyZWFkX3BoeXNpY2FsIC1sZWYgJGxlZlxuIgotICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiXHQkbGVmXFxcbiIKLSAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiXCJcbiIKLSAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMob2FfcmVmX2xpYildfSB7Ci0gICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAicmVhZF9waHlzaWNhbCAtb2FfcmVmX2xpYiAiCi0gICAgICAgICAgICAgICAgICAgICBmb3JlYWNoIGxpYiAkdmFycyhvYV9yZWZfbGliKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAgIiAkbGliIgotICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIlxuIgotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKG5ldGxpc3QpXX0gewotICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJyZWFkX25ldGxpc3QgJHZhcnMobmV0bGlzdClcbiIKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhjcGZfZmlsZSldfSB7Ci0gICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgInJlYWRfcG93ZXJfaW50ZW50IC1jcGYgJHZhcnMoY3BmX2ZpbGUpXG4iCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiaW5pdF9kZXNpZ25cbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxpbml0X2Rlc2lnbiAkY29tbWFuZF0KLSAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhwb3dlcl9hbmFseXNpc192aWV3KV0gJiYgKCR2YXJzKHBvd2VyX2FuYWx5c2lzX3ZpZXcpICE9ICIiKX0gewotICAgICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgInNldF9kYiBwb3dlcl9sZWFrYWdlX3Bvd2VyX3ZpZXcgJHZhcnMocG93ZXJfYW5hbHlzaXNfdmlldylcbiIKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJzZXRfZGIgcG93ZXJfZHluYW1pY19wb3dlcl92aWV3ICR2YXJzKHBvd2VyX2FuYWx5c2lzX3ZpZXcpXG4iCi0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksc2V0X3Bvd2VyX2FuYWx5c2lzX21vZGUgJGNvbW1hbmRdCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgaWYgeyRoaWVyfSB7Ci0gICAgICAgICAgICAgICAgICBpZiB7JHZhcnMoc3RlcCkgPT0gInBhcnRpdGlvbl9wbGFjZSJ9IHsgCi0gICAgICAgICAgICAgICAgICAgIHNldCBjb21tYW5kICJyZWFkX2RiIC1jZWxsdmlldyBcW2xpc3QgJHZhcnMob2FfZGVzaWduX2xpYikgJHZhcnMob2FfZGVzaWduX2NlbGwpICR2YXJzKG9hX2Rlc2lnbl92aWV3KVxdXG4iCi0gICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICBzZXQgY29tbWFuZCAicmVhZF9kYiAtY2VsbHZpZXcgXFtsaXN0ICR2YXJzKG9hX3BhcnRpdGlvbl9saWIpICR2YXJzKG9hX2Rlc2lnbl9jZWxsKSAkdmFycyhvYV9kZXNpZ25fdmlldylcXVxuIgotICAgICAgICAgICAgICAgICAgfSAKLSAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgIHNldCBjb21tYW5kICJyZWFkX2RiIC1jZWxsdmlldyBcW2xpc3QgJHZhcnMob2FfZGVzaWduX2xpYikgJHZhcnMob2FfZGVzaWduX2NlbGwpICR2YXJzKG9hX2Rlc2lnbl92aWV3KVxdXG4iCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCkscmVhZF9kYiAkY29tbWFuZF0KLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgICAgICAgIyBMb2FkICJhbHdheXMgc291cmNlIiBwbHVnLWluIHNjcmlwdAotICAgICAgICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6c291cmNlX3BsdWcgYWx3YXlzX3NvdXJjZV90Y2xdCi0gICAKLSAgICAgICAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICAgICAgICMgQ2hlY2sgZm9yIHRoZSBleGlzdGVuY2Ugb2YgZWl0aGVyIGEgZmxvb3JwbGFuIGZpbGUsIGEKLSAgICAgICAgICAgICMgREVGIGZpbGUsIG9yIGJvdGggYW5kIGxvYWQgdGhlbQotICAgICAgICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgICAgICAgc2V0IGNvbW1hbmQgIiIgCi0gICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoZnBfdGNsX2ZpbGUpXSB8fCBbaW5mbyBleGlzdHMgdmFycyhmcF90Y2xfcHJvYyldfSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKGZwX3RjbF9maWxlKVxuIgotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhmcF90Y2xfcHJvYylcbiIKLSAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhmcF90Y2xfZmlsZSldICYmICFbaW5mbyBleGlzdHMgdmFycyhmcF90Y2xfcHJvYyldfSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiZmZfcHJvY3M6OnNvdXJjZV9maWxlICR2YXJzKGZwX3RjbF9maWxlKVxuIgotICAgICAgICAgICAgICAgfSBlbHNlaWYgeyFbaW5mbyBleGlzdCB2YXJzKGZwX3RjbF9maWxlKV0gJiYgW2luZm8gZXhpc3RzIHZhcnMoZnBfdGNsX3Byb2MpXX0gewotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiR2YXJzKGZwX3RjbF9wcm9jKVxuIgotICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICIjICBFUlJPUjogQm90aCBmcF90Y2xfZmlsZSBhbmQgZnBfdGNsX3Byb2MgYXJlIGRlZmluZWQgYnV0IGFyZSBtdXR1YWxseSBleGNsdXNpdmVcbiIKLSAgICAgICAgICAgICAgICAgIHNldCBlcnJvcnMoJHZhcnMoZXJyb3JfY291bnQpKSAiQm90aCBmcF90Y2xfZmlsZSBhbmQgZnBfdGNsX3Byb2MgYXJlIGRlZmluZWQgYnV0IGFyZSBtdXR1YWxseSBleGNsdXNpdmUiCi0gICAgICAgICAgICAgICAgICBpbmNyIHZhcnMoZXJyb3JfY291bnQpCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMoZnBfdGNsX2ZpbGUpXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhmcF90Y2xfcHJvYylcbiIKLSAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhmcF9maWxlKV19IHsKLSAgICAgICAgICAgICAgICAgIGlmIHtbZmlsZSBleGlzdHMgJHZhcnMoZnBfZmlsZSldfSB7Ci0gICAjICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgInB1dHMgXCI8RkY+IExPQURJTkcgRlAgRklMRSAkdmFycyhmcF9maWxlKVwiXG4iCi0gICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAicmVhZF9mbG9vcnBsYW4gJHZhcnMoZnBfZmlsZSlcbiIKLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMoZnBfZmlsZSlcbiIKLSAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhmcF9maWxlKVxuIgotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKG9hX2ZwKV19IHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJvYUluICR2YXJzKG9hX2ZwKVxuIgotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhvYV9mcClcbiIKLSAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhvYV9mcClcbiIKLSAgICAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGRlZl9maWxlcyldfSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKGRlZl9maWxlcylcbiIKLSAgICAgICAgICAgICAgICAgIGlmIHskdmFycyhyYyl9IHsKLSAgICAgICAgICAgICAgICAgICAgIGlmIHskdmFycyhlbmFibGVfcmNwKX0gewotICAgICAgICAgICAgICAgICAgICAgICAgc2V0IHZhcnMobmV0bGlzdCkgICAkdmFycyhkYnNfZGlyKS9zeW5fcGxhY2Uvc3luX3BsYWNlLnYuZ3oKLSAgICAgICAgICAgICAgICAgICAgICAgIHNldCB2YXJzKGRlZl9maWxlcykgJHZhcnMoZGJzX2Rpcikvc3luX3BsYWNlL3N5bl9wbGFjZS5kZWYuZ3oKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhpbnNlcnRfZGZ0KV0gJiYgJHZhcnMoaW5zZXJ0X2RmdCl9IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhcHBlbmQgdmFycyhkZWZfZmlsZXMpICR2YXJzKGRic19kaXIpL3N5bl9wbGFjZS9zeW5fcGxhY2Uuc2Nhbi5kZWYuZ3oKLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBzZXQgdmFycyhuZXRsaXN0KSAgICR2YXJzKGRic19kaXIpL3N5bl9pbmNyL3N5bl9pbmNyLnYuZ3oKLSAgICAgICAgICAgICAgICAgICAgICAgIHNldCB2YXJzKGRlZl9maWxlcykgJHZhcnMoZGJzX2Rpcikvc3luX2luY3Ivc3luX2luY3IuZGVmLmd6Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoaW5zZXJ0X2RmdCldICYmICR2YXJzKGluc2VydF9kZnQpfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICBsYXBwZW5kIHZhcnMoZGVmX2ZpbGVzKSAkdmFycyhkYnNfZGlyKS9zeW5faW5jci9zeW5faW5jci5zY2FuLmRlZi5negotICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgZm9yZWFjaCBkZWZfZmlsZSAkdmFycyhkZWZfZmlsZXMpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJyZWFkX2RlZiAkZGVmX2ZpbGVcbiIKLSAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgZm9yZWFjaCBkZWZfZmlsZSAkdmFycyhkZWZfZmlsZXMpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIHtbZmlsZSBleGlzdHMgJGRlZl9maWxlXX0gewotICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgInJlYWRfZGVmICRkZWZfZmlsZVxuIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhkZWZfZmlsZXMpXG4iCi0gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMoZGVmX2ZpbGVzKVxuIgotICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMoZGVmX2ZpbGVzKVxuIgotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHJlYWRfZmxvb3JwbGFuICRjb21tYW5kXQotICAgCi0gICAgICAgICAgICBpZiB7KCR2YXJzKHBhcmVudCkgPT0gInJjIikgJiYgJHZhcnMocmMpfSB7Ci0gICAgICAgICAgICAgICBzZXQgY29tbWFuZHMgW0ZGOjpzb3VyY2VfcGx1ZyBhbHdheXNfc291cmNlX3RjbF0KLSAgICAgICAgICAgICAgIGlmIHskdmFycyhyZXBvcnRfcnVuX3RpbWUpfSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgInNldCB2YXJzKCR2YXJzKHN0ZXApLHN0YXJ0X3RpbWUpIFxbY2xvY2sgc2Vjb25kc1xdXG4iCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjpzb3VyY2VfcGx1ZyBwcmVfaW5pdF90Y2xdCi0gICAgICAgICAgICB9Ci0gICAKLSAgICMgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoZ3VpZGVzKV19IHsKLSAgICMgICAgICAgICAgICBzZXQgY29tbWFuZCAiXG5idWlsZF9ndWlkZXNcbiIKLSAgICMgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgaW5pdCxidWlsZF9ndWlkZXMgJGNvbW1hbmRdCi0gICAjICAgICAgICAgfQotICAgIyAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhibG9ja2FnZXMpXX0gewotICAgIyAgICAgICAgICAgIHNldCBjb21tYW5kICJcbmFkZF9ibG9ja2FnZXNcbiIKLSAgICMgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgaW5pdCxhZGRfYmxvY2thZ2VzICRjb21tYW5kXQotICAgIyAgICAgICAgIH0KLQotICAgICAgICAgICAgaWYgeyR2YXJzKGFkZF90cmFja3MpfSB7Ci0gICAgICAgICAgICAgICBzZXQgY29tbWFuZCAiYWRkX3RyYWNrc1xuIgotICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGhvbm9yX3BpdGNoKV0gJiYgJHZhcnMoaG9ub3JfcGl0Y2gpfSB7Ci0gICAgICAgICAgICAgICAgICBzZXQgY29tbWFuZCAiIGFkZF90cmFja3MgLWhvbm9yX3BpdGNoXG4iCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksYWRkX3RyYWNrcyAkY29tbWFuZF0KLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMoYWRkX3RyYWNrcylcbiIKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhhZGRfdHJhY2tzKVxuIgotICAgICAgICAgICAgfQotICAKLSAgICAgICAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICAgICAgICMgRGVmaW5lIHBvd2VyIGludGVudCBpZiBpdCBpcyBkZWZpbmVkIChsb3cgcG93ZXIgZmxvdykKLSAgICAgICAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLQotICAgIyAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkZfTk9WVVM6OmxvYWRfcG93ZXJfaW50ZW50XQotICAgCi0gICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoYWN0aXZpdHlfZmlsZSldfSB7Ci0gICAjICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICRoZWFkZXIKLSAgICMgICAgICAgICAgICBzZXQgaGVhZGVyICIiCi0gICAgICAgICAgICAgICBzZXQgY29tbWFuZCAicmVhZEFjdGl2aXR5RmlsZSAtZm9ybWF0ICR2YXJzKGFjdGl2aXR5X2ZpbGVfZm9ybWF0KSAkdmFycyhhY3Rpdml0eV9maWxlKVxuIgotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHJlYWRfYWN0aXZpdHlfZmlsZSAkY29tbWFuZF0KLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMoYWN0aXZpdHlfZmlsZSlcbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMoYWN0aXZpdHlfZmlsZV9mb3JtYXQpXG4iCi0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMoYWN0aXZpdHlfZmlsZSlcbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKGFjdGl2aXR5X2ZpbGVfZm9ybWF0KVxuIgotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAgICAgICAjIFNwZWNpZnkgSUxNcyBpZiBkZWZpbmVkCi0gICAgICAgICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIGlsbV9saXN0XSAmJiAoJGlsbV9saXN0ICE9ICIiKX0gewotICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgIiIKLSAgICAgICAgICAgICAgIGZvcmVhY2ggY2VsbCAkaWxtX2xpc3QgewotICAgICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCRjZWxsLGlsbV9kaXIpXSAmJiBbZmlsZSBpc2RpcmVjdG9yeSAkdmFycygkY2VsbCxpbG1fZGlyKV19IHsKLSAgICAgICAgICAgICAgICAgICAgIGlmIHtbbGluZGV4IFtzcGxpdCAkdmFycyh2ZXJzaW9uKSAiLiJdICAwXSA8PSAxMH0gewotICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgInJlYWRfaWxtIC1jZWxsICRjZWxsIC1kaXJlY3RvcnkgJHZhcnMoJGNlbGwsaWxtX2RpcilcbiIKLSAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgIGlmIHtbc3RyaW5nIGNvbXBhcmUgLW5vY2FzZSAkdmFycyhkYnNfZm9ybWF0KSAib2EiXT09MH0gewotICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgInJlYWRfaWxtIC1jZWxsICRjZWxsIC1vYV9jZWxsdmlldyB7JHZhcnMob2FfcGFydGl0aW9uX2xpYikgXFtnZXRfZGIgZGVzaWducyAubmFtZVxdIGlsbX1cbiIKLSAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAicmVhZF9pbG0gLWNlbGwgJGNlbGwgLWRpcmVjdG9yeSAkdmFycygkY2VsbCxpbG1fZGlyKVxuIgotICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgIHB1dHMgIjxGRj4gRVJST1I6IGlsbSBkaXJlY3RvcnkgbWlzc2luZyBmb3IgJGNlbGwiCi0gICAgICAgICAgICAgICAgICAgICBzZXQgZXJyb3JzKCR2YXJzKGVycm9yX2NvdW50KSkgIklMTSBkaXJlY3RvcnkgbWlzc2luZyBmb3IgJGNlbGwiCi0gICAgICAgICAgICAgICAgICAgICBpbmNyIHZhcnMoZXJyb3JfY291bnQpCi0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICBpZiB7JGNvbW1hbmQgIT0gIiJ9IHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxzcGVjaWZ5X2lsbSAkY29tbWFuZF0KLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgIAotIyAgICAgICAgICAgIGlmIHskdmFycyhpbG0pICYmIFtpbmZvIGV4aXN0cyB2YXJzKGlsbV9ub25fc2RjX2ZpbGUpXX0gewotIyAgICAgICAgICAgICAgIGlmIHtbZmlsZSBleGlzdHMgJHZhcnMoaWxtX25vbl9zZGNfZmlsZSldfSB7Ci0jICAgICAgICAgICAgICAgICAgaWYge1tsaW5kZXggW3NwbGl0ICR2YXJzKHZlcnNpb24pICIuIl0gIDBdIDw9IDEwfSB7Ci0jICAgICAgICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgImxvYWRUaW1pbmdDb24gLWlsbU5vblNkY0ZpbGUgJHZhcnMoaWxtX25vbl9zZGNfZmlsZSlcbiIKLSMgICAgICAgICAgICAgICAgICB9IGVsc2UgewotIyAgICAgICAgICAgICAgICAgICAgIHNldCBjb21tYW5kICJzZXRJbG1Ob25TZGNDb25zdHJhaW50RmlsZSAkdmFycyhpbG1fbm9uX3NkY19maWxlKVxuIgotIyAgICAgICAgICAgICAgICAgIH0KLSMgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksbG9hZF9pbG1fbm9uX3NkY19maWxlICRjb21tYW5kXQotIyAgICAgICAgICAgICAgIH0KLSMgICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKGlsbV9ub25fc2RjX2ZpbGUpXG4iCi0jICAgICAgICAgICAgfSBlbHNlIHsKLSMgICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhpbG1fbm9uX3NkY19maWxlKVxuIgotIyAgICAgICAgICAgIH0KLSAgIAotICAgICAgICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgICAgICAgIyBMb2FkIHRpbWluZyBlbnZpcm9tZW50IGJhc2VkIG9uIHRoZSBmbG93IHNldHRpbmcgaW4gdGhlCi0gICAgICAgICAgICAjIHNldHVwLnRjbCBmaWxlLiBJZiB0aGUgZmxvdyBpcyBtbW1jLCBsb2FkIHRoZSBtbW1jIHNldHVwCi0gICAgICAgICAgICAjIGhlcmUgZWxzZSBsb2FkIHRoZSBkZWZhdWx0IHRpbWluZyBlbnZpcm9ubWVudAotICAgICAgICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgIyAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiI1xuIgotICAgIyAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyBTRVRUSU5HIFVQIFRJTUlORyBFTlZJUk9OTUVOVFxuIgotICAgIyAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiI1xuIgotICAgICAgICAgICAgaWYgeyR2YXJzKGZsb3cpID09ICJtbW1jIn0gewotICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgW0ZGX05PVlVTOjppbml0aWFsaXplX3RpbWluZyBtbW1jXQotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIHNldCBjb21tYW5kIFtGRl9OT1ZVUzo6aW5pdGlhbGl6ZV90aW1pbmcgbWlubWF4XQotICAgICAgICAgICAgfQotICAgCi0gICAjICAgICBmb3JlYWNoIHZhciBbYXJyYXkgbmFtZSB2YXJzXSB7Ci0gICAjICAgICAgICBpZiB7KCR2YXIgIT0gInN0ZXAiKSAmJiAoJHZhciAhPSAibW9kZSIpICYmICgkdmFyICE9ICJpbG0iKSAmJiBcCi0gICAjICAgICAgICAgICAgKCR2YXIgIT0gImZsYXZvciIpICYmICgkdmFyICE9ICJ1c2VyX21vZGUiKSAmJiAoJHZhciAhPSAiZmxhdCIpICYmIFwKLSAgICMgICAgICAgICAgICAoJHZhciAhPSAicmVwb3J0X3J1bl90aW1lIikgJiYgKCR2YXIgIT0gIm1ha2VmaWxlIikgJiYgKCR2YXIgIT0gImNvZGVnZW4iKSAmJiBcCi0gICAjICAgICAgICAgICAgKCR2YXIgIT0gImJhY2t1cF9kYXRhIikgJiYgKCR2YXIgIT0gInZlcmJvc2UiKSAmJiAoJHZhciAhPSAiZm9ybWF0X2xpbmVzIikgJiYgXAotICAgIyAgICAgICAgICAgICgkdmFyICE9ICJ3YXJuaW5nX2NvdW50IikgJiYgKCR2YXIgIT0gImVycm9yX2NvdW50IikgJiYgKCR2YXIgIT0gInJjIikgJiYgXAotICAgIyAgICAgICAgICAgICgkdmFyICE9ICJhZGRfdHJhY2tzIikgJiYgKCR2YXIgIT0gImZpeF9ob2xkIikgJiYgKCR2YXIgIT0gImhvbm9yX3BpdGNoIikgJiYgXAotICAgIyAgICAgICAgICAgICgkdmFyICE9ICJzY3JpcHRfcGF0aCIpICYmICgkdmFyICE9ICJmaXhfaG9sZCIpICYmICgkdmFyICE9ICJob25vcl9waXRjaCIpICYmIFwKLSAgICMgICAgICAgICAgICAoJHZhciAhPSAic3RlcHMiKSAmJiAoJHZhciAhPSAic291cmNlZCIpICYmICgkdmFyICE9ICJ2ZXJzaW9uIil9IHsKLSAgICMgICAgICAgICAgIHNldCB2YXJzKCR2YXIpICJcXFwkdmFycygkdmFyKSIKLSAgICMgICAgICAgIH0KLSAgICMgICAgIH0KLSAgICAgIAotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLGluaXRpYWxpemVfdGltaW5nICRjb21tYW5kXQotICAgICAgICAgICAgaWYgeyR2YXJzKGZsb3cpID09ICJtbW1jIn0gewotICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgW0ZGX05PVlVTOjpkZXJhdGVfdGltaW5nIG1tbWNdCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksZGVyYXRlX3RpbWluZyAkY29tbWFuZF0KLSAgICAgICAgICAgIH0KLSAgIAotICAgICAgICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgICAgICAgIyBMb2FkIHNjYW4gREVGIGlmIGl0IGV4aXN0cwotICAgICAgICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKHNjYW5fZGVmKV19IHsKLSAgICAgICAgICAgICAgIGlmIHtbZmlsZSBleGlzdHMgJHZhcnMoc2Nhbl9kZWYpXX0gewotICAgICAgICAgICAgICAgICAgaWYgeyR2YXJzKHZlcmJvc2UpfSB7Ci0gICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiNcbiIKLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyA8RkY+IExPQURJTkcgU0NBTiBERUYgRklMRVxuIgotICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjXG4iCi0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICBzZXQgY29tbWFuZCAicmVhZF9kZWYgJHZhcnMoc2Nhbl9kZWYpXG4iCi0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksbG9hZF9zY2FuICRjb21tYW5kXQotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhzY2FuX2RlZilcbiIKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhzY2FuX2RlZilcbiIKLSAgICAgICAgICAgIH0KLSAgIAotICAgICAgICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgICAgICAgIyBTcGVjaWZ5IHNwYXJlIGdhdGVzIGZvciBwbGFjZW1lbnQgYW5kIG9wdGltaXphdGlvbiBjb25zaWRlcmF0aW9uOyB0aGlzIGFzc3VtZXMKLSAgICAgICAgICAgICMgdGhlIHNwYXJlIGNlbGxzIGFyZSBpbiB0aGUgbmV0bGlzdC4KLSAgICAgICAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgIAotICAgICAgICAgICAgc2V0IGNvbW1hbmQgIiIKLSAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhzcGFyZV9jZWxscyldfSB7Ci0gICAgICAgICAgICAgICBmb3JlYWNoIHNwYXJlX2NlbGwgJHZhcnMoc3BhcmVfY2VsbHMpIHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJzcGVjaWZ5X3NwYXJlX2dhdGUgLWluc3QgJHNwYXJlX2NlbGxcbiIKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMoc3BhcmVfY2VsbHMpXG4iCi0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMoc3BhcmVfY2VsbHMpXG4iCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksc3BlY2lmeV9zcGFyZV9nYXRlcyAkY29tbWFuZF0KLSAgIAotICAgICAgICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgICAgICAgIyBMb2FkIHRoZSByZWNvbW1lbmRlZCBjb21tYW5kIG1vZGUgc2V0dGluZ3MKLSAgICAgICAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICAgICAgIGlmIHskdmFycyh2ZXJib3NlKX0gewotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgREVGSU5JTkcgTU9ERSBTRVRUSU5HU1xuIgotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjXG4iCi0gICAgICAgICAgICB9Ci0gICAKLSAgICAgICAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICAgICAgICMgU2V0IGRvbid0IHVzZSBjZWxsczsgZGlzYWJsZSBzb21lIChjbG9jayBidWZmZXJzLCBzdHJvbmcgYnVmZmVycywgZXRjLiksCi0gICAgICAgICAgICAjIGVuYWJsZSBvdGhlcnMgdGhhdCBtYXkgaGF2ZSAiZG9udF91c2UgdHJ1ZSIgaW4gdGhlIGxpYnJhcnkgKGxpa2UgZGVsYXkgY2VsbHMKLSAgICAgICAgICAgICMgZm9yIGhvbGQgZml4aW5nKQotICAgICAgICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgICAgICAgc2V0IGNvbW1hbmQgIiIKLSAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhkb250X3VzZV9saXN0KV19IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJzZXRfaW50ZXJhY3RpdmVfY29uc3RyYWludF9tb2RlcyBcW2FsbF9jb25zdHJhaW50X21vZGVzIC1hY3RpdmVcXVxuIgotICAgICAgICAgICAgICAgZm9yZWFjaCBjZWxsICR2YXJzKGRvbnRfdXNlX2xpc3QpIHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJzZXRfZG9udF91c2UgdHJ1ZSAkY2VsbFxuIgotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhkb250X3VzZV9saXN0KVxuIgotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKGRvbnRfdXNlX2xpc3QpXG4iCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoZG9udF91c2VfZmlsZSldICYmIFtmaWxlIGV4aXN0cyAkdmFycyhkb250X3VzZV9maWxlKV19IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJzb3VyY2UgJHZhcnMoZG9udF91c2VfZmlsZSlcbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMoZG9udF91c2VfZmlsZSlcbiIKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhkb250X3VzZV9maWxlKVxuIgotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKHVzZV9saXN0KV19IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJzZXRfaW50ZXJhY3RpdmVfY29uc3RyYWludF9tb2RlcyBcW2FsbF9jb25zdHJhaW50X21vZGVzIC1hY3RpdmVcXVxuIgotICAgICAgICAgICAgICAgZm9yZWFjaCBjZWxsICR2YXJzKHVzZV9saXN0KSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAic2V0X2RvbnRfdXNlIGZhbHNlICRjZWxsXG4iCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKHVzZV9saXN0KVxuIgotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKHVzZV9saXN0KVxuIgotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgeyRjb21tYW5kICE9ICIifSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksc2V0X2RvbnRfdXNlICRjb21tYW5kXQotICAgICAgICAgICAgfQotICAgCi0gICAgICAgICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAgICAgICAjIFNldCBtYXhpbXVtIHJvdXRpbmcgbGF5ZXJzCi0gICAgICAgICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMobWF4X3JvdXRlX2xheWVyKV19IHsKLSAgICAgICAgICAgICAgIHNldCBjb21tYW5kICJzZXRfbWF4X3JvdXRlX2xheWVyICR2YXJzKG1heF9yb3V0ZV9sYXllcilcbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxzZXRfbWF4X3JvdXRlX2xheWVyICRjb21tYW5kXQotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhtYXhfcm91dGVfbGF5ZXIpXG4iCi0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMobWF4X3JvdXRlX2xheWVyKVxuIgotICAgICAgICAgICAgfQotICAgCi0gICAgICAgICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAgICAgICAjIFNldCBkZXNpZ24gbW9kZQotICAgICAgICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgICAgICAgc2V0IHByb2Nlc3MgW3JlZ3N1YiAibm0iICR2YXJzKHByb2Nlc3MpICIiXQotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJzZXRfZGIgZGVzaWduX3Byb2Nlc3Nfbm9kZSAkcHJvY2Vzc1xuIgotICAgICAgICAgICAgaWYge1tzdHJpbmcgdG9sb3dlciAkdmFycyhmbG93X2VmZm9ydCldICE9ICJzdGFuZGFyZCJ9IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAic2V0X2RiIGRlc2lnbl9mbG93X2VmZm9ydCBbc3RyaW5nIHRvbG93ZXIgJHZhcnMoZmxvd19lZmZvcnQpXVxuIgotICAgICAgICAgICAgfQotICAgCi0gICAgICAgICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAgICAgICAjIEluc2VydCB3ZWxsdGFwcyBhbmQgcHJlL3Bvc3QgZW5kY2FwcwotICAgICAgICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgICAgICAgaWYgeyhbRkY6OmdldF9ieV9zdWZmaXggdmFycyAid2VsbHRhcHMiXSAhPSAiIikgfHwKLSAgICAgICAgICAgICAgICAoKFtGRjo6Z2V0X2J5X3N1ZmZpeCB2YXJzICJwcmVfZW5kY2FwIl0gIT0gIiIpICYmCi0gICAgICAgICAgICAgICAgIChbRkY6OmdldF9ieV9zdWZmaXggdmFycyAicG9zdF9lbmRjYXAiXSAhPSAiIikpfSB7Ci0gICAgICAgICAgICAgICBzZXQgY29tbWFuZCBbRkZfTk9WVVM6Omluc2VydF93ZWxsdGFwc19lbmRjYXBzXQotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLGluc2VydF93ZWxsdGFwc19lbmRjYXBzICRjb21tYW5kXQotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyh3ZWxsdGFwcylcbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMocHJlX2VuZGNhcClcbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMocG9zdF9lbmRjYXApXG4iCi0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMod2VsbHRhcHMpXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhwcmVfZW5kY2FwKVxuIgotICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMocG9zdF9lbmRjYXApXG4iCi0gICAgICAgICAgICB9Ci0gICAKLSAgICAgICAgIH0gZWxzZSB7Ci0gICAKLSAgICAgICAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICAgICAgICMgUGFydGl0aW9uIGluaXQgc3RlcAotICAgICAgICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgCi0gICAgICAgICAgICBzZXQgcHRuIFtmaWxlIHRhaWwgW3B3ZF1dCi0gICAgICAgICAgICBzZXQgdmFycyhkZXNpZ24pICRwdG4KLSAgICAgICAgICAgIHNldCBza2lwX2NwZiBmYWxzZQotICAgIyAgICAgICAgIHNldCB2YXJzKGlsbSkgMAotICAgICAgICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgICAgICAgaWYge1tsc2VhcmNoICR2YXJzKHBhcnRpdGlvbl9saXN0KSAkcHRuXSA9PSAtMX0gewotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgICAgICAgIFRPUCAoJHB0bikgSU1QTEVNRU5UQVRJT04gRkxPV1xuIgotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4iCi0gICAgICAgICAgICAgICBpZiB7W2xpbmRleCBbc3BsaXQgJHZhcnModmVyc2lvbikgIi4iXSAgMF0gPD0gMTB9IHsKLSAgICAgICAgICAgICAgICAgIHNldCBjb21tYW5kICJsb2FkQ29uZmlnICRwdG4uY29uZiAwXG4iCi0gICAgICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoc2F2ZV9pbG1fbm9uX3NkY19maWxlKV19IHsKLSAgICAgICAgICAgICAgICAgICAgIHNldCB2YXJzKGlsbV9ub25fc2RjX2ZpbGUpICR2YXJzKHNhdmVfaWxtX25vbl9zZGNfZmlsZSkKLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJnbG9iYWwgcmRhX0lucHV0XG4iCi0gICAgICAgICAgICAgICAgICBmb3JlYWNoIHBhcnQgJHZhcnMocGFydGl0aW9uX2xpc3QpIHsKLSAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgImxhcHBlbmQgcmRhX0lucHV0KHVpX2xlZmZpbGUpIC4uLyRwYXJ0LyRwYXJ0LmFudGVubmEubGVmXG4iCi0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiY29tbWl0Q29uZmlnXG4iCi0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksbG9hZF9jb25maWcgJGNvbW1hbmRdCi0gICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgaWYge1tzdHJpbmcgY29tcGFyZSAkdmFycyhkYnNfZm9ybWF0KSAib2EiXT09MH0gewotICAgICAgICAgICAgICAgICAgICBzZXQgY29tbWFuZCAicmVhZF9kYiAtY2VsbHZpZXcgXFtsaXN0ICR2YXJzKG9hX3BhcnRpdGlvbl9saWIpICRwdG4gbGF5b3V0XF1cbiIKLSAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICBpZiB7JHZhcnModXNlX2ZsZXhtb2RlbHMpfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiB7JHZhcnMoZmxleG1vZGVsX2FzX3B0bil9IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIHtbbGluZGV4IFtzcGxpdCAkdmFycyh2ZXJzaW9uKSAiLiJdICAwXSA8IDE2fSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXQgY29tbWFuZCAicmVhZF9kYiAke3B0bn1fcHJvdG9fZWNvLmVuYy5kYXRcbiIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXQgY29tbWFuZCAicmVhZF9kYiAke3B0bn1fcHJvdG9fZnVsbC5lbmMuZGF0XG4iCi0gICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgInJlYWRfZGIgLlxuIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgImZmX3JlcGxhY2VfZmxleG1vZGVsX3dpdGhfZnVsbF9uZXRsaXN0XG4iCi0gICAgICAgICAgICAgICAgICAgICAgICB9IAotICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgInJlYWRfZGIgLlxuIgotICAgICAgICAgICAgICAgICAgICAgIH0gCi0gICAjICAgICAgICAgICAgICAgICAgZm9yZWFjaCBwYXJ0ICR2YXJzKHBhcnRpdGlvbl9saXN0KSB7Ci0gICAjICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiaWYge1xbZmlsZSBleGlzdHMgLi4vJHBhcnQvJHBhcnQuYW50ZW5uYS5sZWZcXX0ge1xuIgotICAgIyAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgImxvYWRMZWZGaWxlIC4uLyRwYXJ0LyRwYXJ0LmFudGVubmEubGVmXG4iCi0gICAjICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAifVxuIgotICAgIyAgICAgICAgICAgICAgICAgIH0KLSAgICMgICAgICAgICAgICAgICAgICBzZXQgY29tbWFuZCAic291cmNlICRwdG4uZ2xvYmFsc1xuIgotICAgIyAgICAgICAgICAgICAgICAgIGZvcmVhY2ggcGFydCAkdmFycyhwYXJ0aXRpb25fbGlzdCkgewotICAgIyAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgImxhcHBlbmQgaW5pdF9sZWZfZmlsZSAuLi8kcGFydC8kcGFydC5hbnRlbm5hLmxlZlxuIgotICAgIyAgICAgICAgICAgICAgICAgIH0KLSAgICMgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiaW5pdF9kZXNpZ25cbiIKLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxyZWFkX2RiICRjb21tYW5kXQotICAgICAgICAgICAgICAgICAgc2V0IHJlc3RvcmVfZGVzaWduIHRydWUKLSAgICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgICAgaWYgeyR2YXJzKGNhcHR1cmVfbWV0cmljcykgJiYgKCgkdmFycyhzdGVwKSA9PSAiaW5pdCIpIHx8ICgoJHZhcnMoc3RlcCkgPT0gInBhcnRpdGlvbl9wbGFjZSIpICYmICEkdmFycyh1c2VfZmxleG1vZGVscykpIHx8ICgkdmFycyhzdGVwKSA9PSAibW9kZWxfZ2VuIikpfSB7Ci0gICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgImVuYWJsZV9tZXRyaWNzIC1vblxuIgotICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJwdXNoX3NuYXBzaG90X3N0YWNrXG4iCi0gICAgICAgICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgICAgICAgICMgRmxleElMTSBmbG93Ci0gICAgICAgICAgICAgICAgICBpZiB7JHZhcnModG9wKX0gewotICAgICAgICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKHZpZXdfZGVmaW5pdGlvbl90Y2wpXX0gewotICAgICAgICAgICAgICAgICAgICAgICAgc2V0IG1tbWNfZmlsZSBbZmlsZSBub3JtYWxpemUgJHZhcnModmlld19kZWZpbml0aW9uX3RjbCldCi0gICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICAgc2V0IG1tbWNfZmlsZSBbZmlsZSBub3JtYWxpemUgJHZhcnMoc2NyaXB0X2Rpcikvdmlld19kZWZpbml0aW9uLnRjbF0KLSAgICAgICAgICAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgICAgICAgICBpZiB7JHZhcnMoZW5hYmxlX2ZsZXhpbG0pfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBzZXQgY29tbWFuZCAiIgotICAgICAgICAgICAgICAgICAgICAgICAgc2V0IGRpcnMgIiIKLSAgICAgICAgICAgICAgICAgICAgICAgIGZvcmVhY2ggYmxvY2sgJHZhcnMocGFydGl0aW9uX2xpc3QpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBkaXJzICJcXFxuICAgLWZsZXhfaWxtIHske2Jsb2NrfSAuLi8ke2Jsb2NrfS8ke2Jsb2NrfS5mbGV4aWxtfSIKLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgIHNldCBjb21tYW5kICJjb21taXRfbW9kdWxlX21vZGVsICRkaXJzXFxcbiIKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhjcGZfZmlsZSldfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiICAgLW1tbWNfZmlsZSAkdmFycyhtbW1jX2ZpbGUpXFxcbiIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgICAtY3BmX2ZpbGUgJHZhcnMoY3BmX2ZpbGUpXG4iCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBzZXQgc2tpcF9jcGYgdHJ1ZQotICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgICAtbW1tY19maWxlICR2YXJzKG1tbWNfZmlsZSlcbiIKLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxjb21taXRfbW9kdWxlX21vZGVsICRjb21tYW5kXQotICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgfSAgICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIgotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjIFBBUlRJVElPTiAoJHB0bikgSU1QTEVNRU5UQVRJT04gRkxPV1xuIgotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4iCi0KLSAgICAgICAgICAgICAgIGlmIHskdmFycyh1c2VfZmxleG1vZGVscyl9ICB7Ci0gICAgICAgICAgICAgICAgICBpZiB7JHZhcnMoZmxleG1vZGVsX2FzX3B0bil9IHsKLSAgICAgICAgICAgICAgICAgICAgIGlmIHtbbGluZGV4IFtzcGxpdCAkdmFycyh2ZXJzaW9uKSAiLiJdICAwXSA8IDE2fSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBzZXQgY29tbWFuZCAicmVhZF9kYiAke3B0bn1fcHJvdG9fZWNvLmVuYy5kYXRcbiIKLSAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBzZXQgY29tbWFuZCAicmVhZF9kYiAke3B0bn1fcHJvdG9fZnVsbC5lbmMuZGF0XG4iCi0gICAgICAgICAgICAgICAgICAgICB9Ci0jICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHJlc3RvcmVfZGVzaWduICRjb21tYW5kXQotICAgICAgICAgICAgICAgICAgfSBlbHNlIHsgCi0gICAgICAgICAgICAgICAgICAgICBzZXQgY29tbWFuZCAiZmZfcmVwbGFjZV9mbGV4bW9kZWxfd2l0aF9mdWxsX25ldGxpc3RcbiIKLSMgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksZmZfcmVwbGFjZV9mbGV4bW9kZWxfd2l0aF9mdWxsX25ldGxpc3QgJGNvbW1hbmRdCi0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgaWYge1tzdHJpbmcgY29tcGFyZSAkdmFycyhkYnNfZm9ybWF0KSAib2EiXT09MH0gewotICAgICAgICAgICAgICAgICAgICBzZXQgY29tbWFuZCAicmVhZF9kYiAtY2VsbF92aWV3IFxbbGlzdCAkdmFycyhvYV9wYXJ0aXRpb25fbGliKSAkcHRuIGxheW91dFxdXG4iCi0gICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgInJlYWRfZGIgLlxuIgotIyAgICAgICAgICAgICAgICAgIHNldCBjb21tYW5kICJzb3VyY2UgJHB0bi5nbG9iYWxzXG4iCi0jICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgImluaXRfZGVzaWduXG4iCi0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCkscmVzdG9yZV9kZXNpZ24gJGNvbW1hbmRdCi0gICAgICAgICAgICAgICAgICBzZXQgcmVzdG9yZV9kZXNpZ24gdHJ1ZQotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgCi0gICAgICAgICAgICBpZiB7JHZhcnMoY2FwdHVyZV9tZXRyaWNzKSAmJiAoKCR2YXJzKHN0ZXApID09ICJpbml0IikgfHwgKCgkdmFycyhzdGVwKSA9PSAicGFydGl0aW9uX3BsYWNlIikgJiYgISR2YXJzKHVzZV9mbGV4bW9kZWxzKSkgfHwgKCR2YXJzKHN0ZXApID09ICJtb2RlbF9nZW4iKSl9IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiZW5hYmxlX21ldHJpY3MgLW9uXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgInB1c2hfc25hcHNob3Rfc3RhY2tcbiIKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6c291cmNlX3BsdWcgYWx3YXlzX3NvdXJjZV90Y2xdCi0gICAKLSAgICAgICAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICAgICAgICMgTG9hZCBmbG9vcnBsYW4gZmlsZSBvciBERUY7IHVzZSBkZWZJbiB0byBsb2FkIGEgREVGIGZpbGUKLSAgICAgICAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICAgICAgIGlmIHtbc3RyaW5nIGNvbXBhcmUgJHZhcnMoZGJzX2Zvcm1hdCkgImZlIl09PTB9IHsKLSAgICAgICAgICAgICAgIGlmIHshW2luZm8gZXhpc3RzIHJlc3RvcmVfZGVzaWduXX0gewotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJyZWFkX2Zsb29ycGxhbiAkcHRuLmZwXG4iCi0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgInNvdXJjZSAkcHRuLm1vZGVcbiIKLSAgICAgICAgICAgICAgICAgIGlmIHtbZmlsZSBleGlzdHMgJHB0bi5zY2FuLmRlZl19IHsKLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAicHV0cyBcIjxGRj4gTE9BRElORyBTQ0FOIERFRiBGSUxFICRwdG4uc2Nhbi5kZWZcIlxuIgotICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJyZWFkX2RlZiAkcHRuLnNjYW4uZGVmXG4iCi0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAKLSAgICAgICAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICAgICAgICMgT3ZlcnJpZGUgbWF4aW11bSByb3V0aW5nIGxheWVyIGlmIGRlZmluZWQgZm9yIHRoZSBwYXJ0aXRpb24KLSAgICAgICAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkcHRuLG1heF9yb3V0ZV9sYXllcildfSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgInNldF9tYXhfcm91dGVfbGF5ZXIgKCRwdG4sbWF4X3JvdXRlX2xheWVyKVxuIgotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhtYXhfcm91dGVfbGF5ZXIpXG4iCi0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMobWF4X3JvdXRlX2xheWVyKVxuIgotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAgICAgICAjIFNwZWNpZnkgdGhlIElMTSBtb2RlbHMgZm9yIHRoZSB0b3AgcGFydGl0aW9uCi0gICAgICAgICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAgICAgICBpZiB7JHZhcnModG9wKX0gewotICAgICAgICAgICAgICAgaWYgeyEkdmFycyhlbmFibGVfZmxleGlsbSl9IHsKLSAgICAgICAgICAgICAgICAgIHNldCBjb21tYW5kICIiCi0gICAgICAgICAgICAgICAgICBmb3JlYWNoIHBhcnQgJHZhcnMocGFydGl0aW9uX2xpc3QpIHsKLSAgICAgICAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkcGFydCxpbG1fZGlyKV0gJiYgKCR2YXJzKGNvZGVnZW4pIHx8IFtmaWxlIGlzZGlyZWN0b3J5ICR2YXJzKCRwYXJ0LGlsbV9kaXIpXSl9IHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIHtbbGluZGV4IFtzcGxpdCAkdmFycyh2ZXJzaW9uKSAiLiJdICAwXSA8PSAxMH0gewotICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgInJlYWRfaWxtIC1jZWxsICRwYXJ0IC1kaXIgJHZhcnMoJHBhcnQsaWxtX2RpcilcbiIKLSAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgIGlmIHtbc3RyaW5nIGNvbXBhcmUgLW5vY2FzZSAkdmFycyhkYnNfZm9ybWF0KSAib2EiXT09MH0gewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgInJlYWRfaWxtIC1jZWxsICRwYXJ0IC1vYV9jZWxsdmlldyB7JHZhcnMob2FfcGFydGl0aW9uX2xpYikgXFtnZXRfZGIgZGVzaWducyAubmFtZVxdIGlsbX1cbiIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAicmVhZF9pbG0gLWNlbGwgJHBhcnQgLWRpcmVjdG9yeSAkdmFycygkcGFydCxpbG1fZGlyKVxuIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIHtbbGluZGV4IFtzcGxpdCAkdmFycyh2ZXJzaW9uKSAiLiJdICAwXSA8PSAxMH0gewotICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgInJlYWRfaWxtIC1jZWxsICRwYXJ0IC1kaXJlY3RvcnkgLi4vJHBhcnQvJHBhcnQuaWxtXG4iCi0gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICAgICBpZiB7W3N0cmluZyBjb21wYXJlIC1ub2Nhc2UgJHZhcnMoZGJzX2Zvcm1hdCkgIm9hIl09PTB9IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJyZWFkX2lsbSAtY2VsbCAkcGFydCAtb2FfY2VsbHZpZXcgeyR2YXJzKG9hX3BhcnRpdGlvbl9saWIpIFxbZ2V0X2RiIGRlc2lnbnMgLm5hbWVcXSBpbG19XG4iCi0gICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgInJlYWRfaWxtIC1jZWxsICRwYXJ0IC1kaXJlY3RvcnkgLi4vJHBhcnQvJHBhcnQuaWxtXG4iCi0gICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICBpZiB7JGNvbW1hbmQgIT0gIiJ9IHsKLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxzcGVjaWZ5X2lsbSAkY29tbWFuZF0KLSAgICAgICAgICAgICAgICAgIH0KLSMgICAgICAgICAgICAgICAgICBpZiB7JHZhcnMoaWxtKSAmJiBbaW5mbyBleGlzdHMgdmFycyhpbG1fbm9uX3NkY19maWxlKV19IHsKLSMgICAgICAgICAgICAgICAgICAgICBpZiB7W2ZpbGUgZXhpc3RzICR2YXJzKGlsbV9ub25fc2RjX2ZpbGUpXX0gewotIyAgICAgICAgICAgICAgICAgICAgICAgIGlmIHtbbGluZGV4IFtzcGxpdCAkdmFycyh2ZXJzaW9uKSAiLiJdICAwXSA8PSAxMH0gewotIyAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldCBjb21tYW5kICJsb2FkVGltaW5nQ29uIC1pbG1Ob25TZGNGaWxlICR2YXJzKGlsbV9ub25fc2RjX2ZpbGUpXG4iCi0jICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSMgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgInNldElsbU5vblNkY0NvbnN0cmFpbnRGaWxlICR2YXJzKGlsbV9ub25fc2RjX2ZpbGUpXG4iCi0jICAgICAgICAgICAgICAgICAgICAgICAgfQotIyAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxsb2FkX2lsbV9ub25fc2RjX2ZpbGUgJGNvbW1hbmRdCi0jICAgICAgICAgICAgICAgICAgICAgfQotIyAgICAgICAgICAgICAgICAgIH0KLSAgIAotICAgICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgW0ZGX05PVlVTOjppbml0aWFsaXplX3RpbWluZyBtbW1jXQotICAgIyAgICAgICAgICAgICAgIGlmIHshW2luZm8gZXhpc3RzIHZhcnMoY3BmX2ZpbGUpXX0gewotICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLGluaXRpYWxpemVfdGltaW5nICRjb21tYW5kXQotICAgIyAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAjICAgICAgICAgICAgICAgICAgc2V0IGRlZmVyX2NvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLGluaXRpYWxpemVfdGltaW5nICRjb21tYW5kXSAKLSAgICMgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAgICAgICAjIExvYWQgcG93ZXIgaW50ZW50IChpZiBpdCBpcyBkZWZpbmVkKQotICAgICAgICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgICAgICAgaWYgeyhbaW5mbyBleGlzdHMgdmFycyhjcGZfZmlsZSldKSAmJiAoJHZhcnMoY3BmX2ZpbGUpICE9ICIiKSAmJiAhJHNraXBfY3BmfSB7Ci0gICAgICAgICAgICAgICBzZXQgc2F2ZSAkdmFycyhjcGZfZmlsZSkKLSAgICAgICAgICAgICAgIGlmIHshJHZhcnModG9wKX0gewotICAgICAgICAgICAgICAgICAgc2V0IHZhcnMoY3BmX2ZpbGUpICIkcHRuLmNwZiIKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGX05PVlVTOjpsb2FkX3Bvd2VyX2ludGVudF0KLSAgICAgICAgICAgICAgICBzZXQgdmFycyhjcGZfZmlsZSkgJHNhdmUgCi0gICAgICAgICAgICB9IGVsc2VpZiB7W2luZm8gZXhpc3RzIHZhcnMoaWVlZTE4MDFfZmlsZSldfSB7Ci0gICAgICAgICAgICAgICBzZXQgc2F2ZSAkdmFycyhpZWVlMTgwMV9maWxlKQotICAgICAgICAgICAgICAgaWYgeyEkdmFycyh0b3ApfSB7Ci0gICAgICAgICAgICAgICAgICBzZXQgdmFycyhpZWVlMTgwMV9maWxlKSAiJHB0bi5jcGYiCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGX05PVlVTOjpsb2FkX3Bvd2VyX2ludGVudF0KLSAgICAgICAgICAgICAgIHNldCBjb21tYW5kICJyZWFkX3Bvd2VyX2ludGVudCAkdmFycyhpZWVlMTgwMV9maWxlKSAtMTgwMVxuIgotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKGNwZl9maWxlKVxuIgotICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMoaWVlZTE4MDFfZmlsZSlcbiIKLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0KLSAgICAgIH0KLQotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgIyBMb2FkIHBvc3QtaW5pdGlhbGl6YXRpb24gcGx1Zy1pbiBzY3JpcHQKLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OnNvdXJjZV9wbHVnIHBvc3RfaW5pdF90Y2wgMF0KLQotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgIyBDaGVjayBwcmUtcGxhY2UgdGltaW5nIChhbmQgZ2VuZXJhdGUgdGltaW5nIGdyYXBoIGZvciBwbGFjZW1lbnQpCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICBpZiB7KCR2YXJzKHN0ZXApICE9ICJtb2RlbF9nZW4iKSAmJiAoJHZhcnMoc3RlcCkgIT0gInBhcnRpdGlvbl9wbGFjZSIpfSB7Ci0gICAgICAgICBpZiB7IVtpbmZvIGV4aXN0cyB2YXJzKHRpbWVfZGVzaWduX29wdGlvbnMsc2V0dXApXX0gewotICAgICAgICAgICAgc2V0IGNvbW1hbmQgInRpbWVfZGVzaWduIC1wcmVfcGxhY2UgLXJlcG9ydF9wcmVmaXggcHJlcGxhY2UgLXJlcG9ydF9kaXIgJHZhcnMocnB0X2RpcilcbiIKLSAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBzZXQgY29tbWFuZCBbZm9ybWF0ICJ0aW1lX2Rlc2lnbiAtcHJlX3BsYWNlIC1yZXBvcnRfcHJlZml4IHByZXBsYWNlIC1yZXBvcnRfZGlyICR2YXJzKHJwdF9kaXIpICVzXG4iICR2YXJzKHRpbWVfZGVzaWduX29wdGlvbnMsc2V0dXApXQotICAgICAgICAgfQotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHRpbWVfZGVzaWduICRjb21tYW5kXQotICAgICAgfQotCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAjIENoZWNrIGRhdGEgc2V0dXAgKHNhbml0eSBjaGVjaykKLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgIHNldCBjb21tYW5kICJjaGVja19sZWdhY3lfZGVzaWduIC1hbGxcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxjaGVja19kZXNpZ24gJGNvbW1hbmRdCi0KLSAgICAgIGlmIHshJHZhcnMoaWxtKX0gewotICAgICAgICAgc2V0IGNvbW1hbmQgImNoZWNrX3RpbWluZ1xuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLGNoZWNrX3RpbWluZyAkY29tbWFuZF0KLSAgICAgIH0KLQotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgIyBHZW5lcmF0ZSByZXBvcnRzCi0gICAgICAjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gICAgICAjIFJlcG9ydCBwb3dlciBkb21haW4gZm9yIGxldmVsLXNoaWZ0ZXJzLCBpc29sYXRpb24gYW5kIHBnIG5ldHMKLSAgICAgICMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSAgICAgIGlmIHtbRkY6OmlzX2xwX2Zsb3ddICYmIChbaW5mbyBleGlzdHMgdmFycyhwb3dlcl9kb21haW5zKV0gJiYgKFtsbGVuZ3RoICR2YXJzKHBvd2VyX2RvbWFpbnMpXSA+IDEpKX0gewotIyAgICAgICAgIHNldCBjb21tYW5kICJzZXQgZG9tYWlucyBcW0ZGX05PVlVTOjpnZXRfcG93ZXJfZG9tYWluc19jb2RlXF1cbiIKLSMgICAgICAgICBzZXQgY29tbWFuZCBbRkZfTk9WVVM6OmdldF9wb3dlcl9kb21haW5zX2NvZGVdCi0KLSAgICAgICAgIGFwcGVuZCBjb21tYW5kICJmb3JlYWNoIGRvbWFpbiBcW2dldF9kYiBwb3dlcl9kb21haW5zIC5uYW1lXF0ge1xuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAgIHNldCBkb21haW5fZmlsZSBcW3JlZ3N1YiAtYWxsIHtcW1xdXFs8PnxcXC8/KjpcXX0gXCRkb21haW4gX1xdXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZCAiICAgcmVwb3J0X3Bvd2VyX2RvbWFpbnMgLXBvd2VyX2RvbWFpbiBcJGRvbWFpbiAtb3V0X2ZpbGUgJHZhcnMocnB0X2RpcikvXCR7ZG9tYWluX2ZpbGV9LnJwdCAtc2hpZnRlciAtaXNvX2luc3QgLXBnX25ldHNcbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgICByZXBvcnRfcG93ZXJfZG9tYWlucyAtcG93ZXJfZG9tYWluIFwkZG9tYWluIC1vdXRfZmlsZSAkdmFycyhycHRfZGlyKS9cJHtkb21haW5fZmlsZX1fYmluZGluZy5ycHQgLWJpbmRfbGliXG4iCi0KLSAgICAgICMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSAgICAgICMgUmVwb3J0IGxpYnJhcnkgYmluZGluZyBmb3IgcG93ZXIgZG9tYWlucwotICAgICAgIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIyAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgICBmb3JlYWNoIGFuYWx5c2lzX3ZpZXcgXFthbGxfYW5hbHlzaXNfdmlld3NcXSB7XG4iCi0jICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAgICAgIHNldF9kZWZhdWx0X3ZpZXcgLXNldHVwIFwkYW5hbHlzaXNfdmlld1xuIgotIyAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgICAgICByZXBvcnRfcG93ZXJfZG9tYWlucyAtcG93ZXJfZG9tYWluIFwkZG9tYWluIC1maWxlICR2YXJzKHJwdF9kaXIpL1wke2RvbWFpbl9maWxlfV9cJGFuYWx5c2lzX3ZpZXcucnB0IC1iaW5kX2xpYlxuIgotIyAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgICB9XG4iCi0KLSMgICAgICAgICBhcHBlbmQgY29tbWFuZCAiICAgICBzZXRfZGIgdGltaW5nX2FuYWx5c2lzX2NoZWNrX3R5cGUgaG9sZFxuIgotCi0jICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAgIGZvcmVhY2ggYW5hbHlzaXNfdmlldyBcW2FsbF9ob2xkX2FuYWx5c2lzX3ZpZXdzXF0ge1xuIgotIyAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgICAgICBzZXRfZGVmYXVsdF92aWV3IC1ob2xkIFwkYW5hbHlzaXNfdmlld1xuIgotIyAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgICAgICByZXBvcnRfcG93ZXJfZG9tYWlucyAtcG93ZXJfZG9tYWluIFwkZG9tYWluIC1maWxlICR2YXJzKHJwdF9kaXIpL1wke2RvbWFpbl9maWxlfV9cJGFuYWx5c2lzX3ZpZXcucnB0IC1iaW5kX2xpYlxuIgotIyAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgICB9XG4iCi0KLSMgICAgICAgICBhcHBlbmQgY29tbWFuZCAiICAgc2V0X2RiIHRpbWluZ19hbmFseXNpc19jaGVja190eXBlIHNldHVwXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZCAifVxuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHJlcG9ydF9wb3dlcl9kb21haW5zICRjb21tYW5kXQotICAgICAgICAgaWYgeyR2YXJzKGZsb3cpID09Im1tbWMifSB7Ci0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgInNldF9kZWZhdWx0X3ZpZXcgLXNldHVwICR2YXJzKGRlZmF1bHRfc2V0dXBfdmlldykgLWhvbGQgJHZhcnMoZGVmYXVsdF9ob2xkX3ZpZXcpXG4iCi0gICAgICAgICB9Ci0gICAgICB9Ci0KLSAgICAgIGlmIHtbaW5mbyBleGlzdHMgY29tbWVudHNdfSB7Ci0gICAgICAgICBpZiB7JGNvbW1lbnRzID09ICIifSB7Ci0gICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoY29tbWVudHMpXX0gewotICAgICAgICAgICAgICAgdW5zZXQgdmFycyhjb21tZW50cykKLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBzZXQgdmFycyhjb21tZW50cykgJGNvbW1lbnRzCi0gICAgICAgICB9Ci0gICAgICB9Ci0gICAgICBpZiB7W2luZm8gZXhpc3RzIHVjb21tZW50c119IHsKLSAgICAgICAgIGlmIHskdWNvbW1lbnRzID09ICIifSB7Ci0gICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnModWNvbW1lbnRzKV19IHsKLSAgICAgICAgICAgICAgIHVuc2V0IHZhcnModWNvbW1lbnRzKQotICAgICAgICAgICAgfQotICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHNldCB2YXJzKHVjb21tZW50cykgJHVjb21tZW50cwotICAgICAgICAgfQotICAgICAgfQotICAgICAgc2V0IGZjb21tYW5kcyBbRkZfTk9WVVM6Omluc2VydF9jb21tZW50c10gCi0gICAgICBhcHBlbmQgZmNvbW1hbmRzICRjb21tYW5kcwotCi0gICAgICBpZiB7JHZhcnMoY29kZWdlbil9IHsKLSAgICAgICAgIHJldHVybiAkZmNvbW1hbmRzCi0gICAgICB9IGVsc2UgewotICAgICAgICAgIHVwbGV2ZWwgIzAgZXZhbCAkY29tbWFuZHMKLSAgICAgIH0KLQotICAgfQotCi0gICBwcm9jIHJ1bl9wbGFjZSB7e2Zvcm1hdCAxfX0gewotCi0gICAgICBnbG9iYWwgdmFycwotICAgICAgZ2xvYmFsIGVudgotICAgICAgZ2xvYmFsIGVycm9ycwotCi0gICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMocGFyZW50KV0gJiYgKCR2YXJzKHBhcmVudCkgPT0gInJjIil9IHsKLSAgICAgICAgIHNldCB2YXJzKHN0ZXApIHJjcAotICAgICAgfSBlbHNlIHsKLSAgICAgICAgIGlmIHskdmFycyhzdGVwKSAhPSAicGFydGl0aW9uX3BsYWNlIn0gewotICAgICAgICAgICAgc2V0IHZhcnMoc3RlcCkgcGxhY2UKLSAgICAgICAgIH0KLSAgICAgIH0KLSAgICAgIHNldCBjb21tYW5kcyAiIgotIyAgICAgIGFwcGVuZCBjb21tYW5kcyAic2V0IHZhcnMoc3RlcCkgJHZhcnMoc3RlcClcbiIKLQotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgIyBJbml0aWFsaXplIHN0ZXAgLi4uCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICBzZXQgY29tbWFuZCBbRkZfTk9WVVM6OmluaXRpYWxpemVfc3RlcCBwbGFjZV0KLSAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkZfTk9WVVM6Omluc2VydF9jb21tZW50c10gCi0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksaW5pdGlhbGl6ZV9zdGVwICRjb21tYW5kXQotCi0gICAgICBhcHBlbmQgY29tbWFuZHMgInB1dHMgXCI8RkY+IFJVTk5JTkcgUExBQ0VNRU5UIC4uLlwiXG4iCi0KLSAgICAgIGlmIHskdmFycyh2ZXJib3NlKX0gewotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgUlVOTklORyBQTEFDRU1FTlRcbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiI1xuIgotICAgICAgfQotCi0gICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMocGFydGl0aW9uX2xpc3QpXSAmJiAoJHZhcnMoc3RlcCkgIT0gInBhcnRpdGlvbl9wbGFjZSIpICYmIFwKLSAgICAgICAgICAoKFtsc2VhcmNoICR2YXJzKHBhcnRpdGlvbl9saXN0KSAkdmFycyhkZXNpZ24pXSA9PSAtMSkgJiYgJHZhcnMoZW5hYmxlX2ZsZXhpbG0pKX0gewotICAgICAgICAgc2V0IGNvbW1hbmQgIiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kICJzZXRfZGIgb3B0X2hpZXJfb3B0X3N0YWdlIHByZV9jdHNcbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxzZXRfaGllcl9tb2RlICRjb21tYW5kXQotICAgICAgfQotCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAjIExvYWQgb3B0aW9uYWwgcHJlIHBsYWNlbWVudCBmaWxlIChwbHVnLWluKQotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCi0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjpzb3VyY2VfcGx1ZyBwcmVfcGxhY2VfdGNsXQotCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAjIFJ1biBzdGFuZGFyZCBjZWxsIHBsYWNlbWVudCBvciBsb2FkIHBsYWNlbWVudCBwbHVnLWluCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0KLSAgICAgIHNldCBjb21tYW5kICIiCi0gICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMocGxhY2VfdGNsKV19IHsKLSAgICAgICAgICBpZiB7W2ZpbGUgZXhpc3RzICR2YXJzKHBsYWNlX3RjbCldfSB7Ci0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZCBbRkY6OnNvdXJjZV9wbHVnIHBsYWNlX3RjbF0KLSAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgc2V0IGVycm9ycygkdmFycyhlcnJvcl9jb3VudCkpICJQbHVnLWluIHZhcnMocGxhY2VfdGNsKSBkZWZpbmVkIGJ1dCB0aGUgZmlsZSBkb2VzIG5vdCBleGlzdCIKLSAgICAgICAgICAgIGluY3IgdmFycyhlcnJvcl9jb3VudCkKLSMgICAgICAgICAgICBzZXQgdmFycyhhYm9ydCkgMQotICAgICAgICAgIH0KLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoc2RwX2ZpbGVzKV19IHsKLSAgICAgICAgICAgIGZvcmVhY2ggZmlsZSAkdmFycyhzZHBfZmlsZXMpIHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICIjcmVhZF9zZHBfZmlsZSAtZmlsZSAkZmlsZSAtaGllcl9wYXRoIDxpbnN0YW5jZT4gLW9yaWdpbiA8eCB5PiAtbGVmdF9vdmVyX2dyb3VwIDx0cnVlIHwgZmFsc2U+XG4iCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiI3BsYW5fZGVzaWduIC11c2VyX3NkcF9ncm91cFxuIgotICAgICAgICAgfQotICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKHBhcmVudCldICYmICgkdmFycyhwYXJlbnQpID09ICJyYyIpfSB7Ci0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAicGxhY2VfZGVzaWduIFxuIgotICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIGlmIHskdmFycyhwbGFjZV9vcHRfZGVzaWduKX0gewotIyAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhoaWVyKV19IHsKLSMgICAgICAgICAgICAgICAgICBpZiB7KCR2YXJzKHRvcCkgJiYgJHZhcnMoZW5hYmxlX2ZsZXhpbG0pKX0gewotIyAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJwbGFjZV9kZXNpZ24gIgotIyAgICAgICAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhub19wcmVfcGxhY2Vfb3B0KV0gJiYgJHZhcnMobm9fcHJlX3BsYWNlX29wdCl9IHsKLSMgICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiIC1ub19wcmVfcGxhY2Vfb3B0IgotIyAgICAgICAgICAgICAgICAgICAgIH0KLSMgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiXG4iCi0jICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSMgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAicGxhY2Vfb3B0X2Rlc2lnbiAtcmVwb3J0X2RpciAkdmFycyhycHRfZGlyKSAtcmVwb3J0X3ByZWZpeCAkdmFycyhzdGVwKVxuIgotIyAgICAgICAgICAgICAgICAgIH0KLSMgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgInBsYWNlX29wdF9kZXNpZ24gLXJlcG9ydF9kaXIgJHZhcnMocnB0X2RpcikgLXJlcG9ydF9wcmVmaXggJHZhcnMoc3RlcClcbiIKLSMgICAgICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAicGxhY2VfZGVzaWduICIKLSAgICAgICAgICAgICAgIGlmIHsoJHZhcnMoc3RlcCkgPT0gInBhcnRpdGlvbl9wbGFjZSIpICYmICR2YXJzKHVzZV9mbGV4bW9kZWxzKX0geyAgCi0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiIC1ub19wcmVfcGxhY2Vfb3B0IgotICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhub19wcmVfcGxhY2Vfb3B0KV0gJiYgJHZhcnMobm9fcHJlX3BsYWNlX29wdCl9IHsKLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgLW5vX3ByZV9wbGFjZV9vcHQiCi0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiXG4iCi0gICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0gICAgICB9Ci0KLSAgICAgIGlmIHtbaW5mbyBleGlzdCB2YXJzKHBhcmVudCldICYmICgkdmFycyhwYXJlbnQpICE9ICJyYyIpICYmICAkdmFycyhyYykgJiYgJHZhcnMoZW5hYmxlX3JjcCl9IHsKLSAgICAgICAgIHNldCBjb21tYW5kICJlY29fcGxhY2VcbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxlY29fcGxhY2UgJGNvbW1hbmRdCi0gICAgICB9IGVsc2UgewotIyAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhoaWVyX2Nhc2UpXSAmJiBbcmVnZXhwICJeMSIgJHZhcnMoaGllcl9jYXNlKV19IHsKLSMgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCkscGxhY2VfZGVzaWduICJwbGFjZV9kZXNpZ24gLW5vX3ByZV9wbGFjZV9vcHRcbiJdCi0jICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxwbGFjZV9kZXNpZ24gJGNvbW1hbmRdCi0jICAgICAgICAgfQotICAgICAgfQotCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAjIExvYWQgb3B0aW9uYWwgcG9zdCBwbGFjZW1lbnQgZmlsZSAocGx1Zy1pbikKLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLQotICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6c291cmNlX3BsdWcgcG9zdF9wbGFjZV90Y2wgMF0KLQotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgIyBBZGQgdGllIGNlbGxzIGZvciBsb2dpYyAwLzEgbmV0cwotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCi0gICAgICBzZXQgY29tbWFuZCBbRkZfTk9WVVM6OmFkZF90aWVfY2VsbHMgZmFsc2UgdHJ1ZV0KLSAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxhZGRfdGllX2NlbGxzICRjb21tYW5kXQotCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAjIENoZWNrIHBvc3QtcGxhY2UgdGltaW5nCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICBpZiB7IVtyZWdleHAgInBsYWNlX29wdF9kZXNpZ24iICRjb21tYW5kc10gJiYgKCR2YXJzKHN0ZXApID09ICJwbGFjZSIpfSB7Ci0gICAgICAgICBpZiB7IVtpbmZvIGV4aXN0cyB2YXJzKHRpbWVfZGVzaWduX29wdGlvbnMsc2V0dXApXX0gewotICAgICAgICAgICAgc2V0IGNvbW1hbmQgInRpbWVfZGVzaWduIC1wcmVfY3RzIC1yZXBvcnRfcHJlZml4IHBsYWNlIC1yZXBvcnRfZGlyICR2YXJzKHJwdF9kaXIpXG4iCi0gICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgc2V0IGNvbW1hbmQgW2Zvcm1hdCAidGltZV9kZXNpZ24gJXMgLXByZV9jdHMgLXJlcG9ydF9wcmVmaXggcGxhY2UgLXJlcG9ydF9kaXIgJHZhcnMocnB0X2RpcilcbiIgJHZhcnModGltZV9kZXNpZ25fb3B0aW9ucyxzZXR1cCldCi0gICAgICAgICB9Ci0gICAgICB9Ci0jICAgICAgaWYgeygkdmFycyhzdGVwKSA9PSAicGFydGl0aW9uX3BsYWNlIikgJiYgJHZhcnModXNlX2ZsZXhtb2RlbHMpfSB7Ci0jICAgICAgICAgaWYgeyFbcmVnZXhwICJwcm90byIgJGNvbW1hbmRdfSB7Ci0jICAgICAgICAgICAgcmVnc3ViICJ0aW1lX2Rlc2lnbiIgJGNvbW1hbmQgInRpbWVfZGVzaWduIC1wcm90byIgY29tbWFuZAotIyAgICAgICAgIH0KLSMgICAgICB9Ci0jICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHRpbWVfZGVzaWduICRjb21tYW5kXQotCi0gICAgICBpZiB7KCR2YXJzKHVzZXJfbW9kZSkgPT0gImhpZXIiKSAmJiAkdmFycyhwbGFjZV9vcHRfZGVzaWduKSAmJiAoJHZhcnMoc3RlcCkgIT0gInBhcnRpdGlvbl9wbGFjZSIpfSB7Ci0gICAgICAgICBzZXQgcHRuIFtmaWxlIHRhaWwgW3B3ZF1dCi0gICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMocGFydGl0aW9uX2xpc3QpXSAmJiAoW2xzZWFyY2ggJHZhcnMocGFydGl0aW9uX2xpc3QpICRwdG5dICE9IC0xKX0gewotICAgICAgICAgICAgaWYgeyR2YXJzKGVuYWJsZV9mbGV4aWxtKX0gewotICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgIndyaXRlX2lsbSAtb3B0X3N0YWdlIHByZWN0cyAtdHlwZV9mbGV4X2lsbSBmbGV4SWxtIC10b19kaXIgXFtnZXRfZGIgZGVzaWducyAubmFtZVxdLmZsZXhpbG1cbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSx3cml0ZV9mbGV4X2lsbSAkY29tbWFuZF0KLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBpZiB7ISR2YXJzKGJsYWNrX2JveCl9IHsKLSAgICAgICAgICAgICAgICAgIGlmIHtbc3RyaW5nIGNvbXBhcmUgLW5vY2FzZSAkdmFycyhkYnNfZm9ybWF0KSAiZmUiXT09MH0gewotICAgICAgICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgIndyaXRlX2lsbSAtb3B0X3N0YWdlIHByZWN0cyAtdHlwZV9mbGV4X2lsbSBpbG0gLW1vZGVsX3R5cGUgdGltaW5nIC10b19kaXIgXFtnZXRfZGIgZGVzaWducyAubmFtZVxdLmlsbSAtaG9sZFxuIgotICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgIHNldCBjb21tYW5kICJ3cml0ZV9pbG0gLW9wdF9zdGFnZSBwcmVjdHMgLXR5cGVfZmxleF9pbG0gaWxtIC1tb2RlbF90eXBlIHRpbWluZyAtb2FfY2VsbHZpZXcgeyR2YXJzKG9hX3BhcnRpdGlvbl9saWIpIFxbZ2V0X2RiIGRlc2lnbnMgLm5hbWVcXSBpbG19XG4iCi0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICB9IAotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHdyaXRlX2lsbSAkY29tbWFuZF0KLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBpZiB7JHZhcnMoZW5hYmxlX2ZsZXhpbG0pfSB7Ci0gICAgICAgICAgICAgICAjIFJlLWFzc2lnbiBwaW5zIGJhc2VkIG9uIG5ldyBuZXRsaXN0IGNoYW5nZXMKLSAgICAgICAgICAgICAgIGlmIHtbbGluZGV4IFtzcGxpdCAkdmFycyh2ZXJzaW9uKSAiLiJdICAwXSA8IDE2fSB7Ci0gICAgICAgICAgICAgICAgIHNldCBjb21tYW5kICIiCi0gICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJyb3V0ZV90cmlhbFxuIgotICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksdHJpYWxfcm91dGUxICRjb21tYW5kXQotICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgIiIKLSAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgInJvdXRlX2Vhcmx5X2dsb2JhbFxuIgotICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksZWFybHlfcm91dGUxICRjb21tYW5kXQotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgIiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJ0aW1lX2Rlc2lnbiAtcHJlX2N0cyAtcmVwb3J0X2RpciAkdmFycyhycHRfZGlyKSAtcmVwb3J0X3ByZWZpeCBhc3NlbWJsZV9mbGV4aWxtXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksdGltZV9kZXNpZ24gJGNvbW1hbmRdCi0gICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgIHNldCBjb21tYW5kICIiCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiYXNzaWduX3BhcnRpdGlvbl9waW5zXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksYXNzaWduX3BhcnRpdGlvbl9waW5zICRjb21tYW5kXQotICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICBzZXQgY29tbWFuZCAiIgotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgImNoZWNrX3Bpbl9hc3NpZ25tZW50XG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksY2hlY2tfcGluX2Fzc2lnbm1lbnQgJGNvbW1hbmRdCi0KLSAgICAgICAgICAgICAgIGlmIHtbbGluZGV4IFtzcGxpdCAkdmFycyh2ZXJzaW9uKSAiLiJdICAwXSA8IDE2fSB7Ci0gICAgICAgICAgICAgICAgIHNldCBjb21tYW5kICIiCi0gICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJzZXRfZGIgcm91dGVfdHJpYWxfaG9ub3JfcGluIHRydWVcbiIKLSAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHNldF90cmlhbF9yb3V0ZV9tb2RlMiAkY29tbWFuZF0KLSAgICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgIiIKLSAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgInJvdXRlX3RyaWFsXG4iCi0gICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSx0cmlhbF9yb3V0ZTIgJGNvbW1hbmRdCi0gICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICBzZXQgY29tbWFuZCAiIgotICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAic2V0X2RiIHJvdXRlX2Vhcmx5X2dsb2JhbF9ob25vcl9wYXJ0aXRpb25fcGluIC5cbiIKLSAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHNldF9yb3V0ZV9tb2RlMiAkY29tbWFuZF0KLSAgICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgIiIKLSAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgInJvdXRlX2Vhcmx5X2dsb2JhbFxuIgotICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksZWFybHlfcm91dGUyICRjb21tYW5kXQotICAgICAgICAgICAgICAgfSAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICBzZXQgY29tbWFuZCAiIgotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgImNyZWF0ZV90aW1pbmdfYnVkZ2V0XG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksY3JlYXRlX3RpbWluZ19idWRnZXQgJGNvbW1hbmRdCi0gICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgIiIKLSAgICAgICAgICAgICAgIHNldCBkaXJzICIiCi0gICAgICAgICAgICAgICBmb3JlYWNoIGJsb2NrICR2YXJzKHBhcnRpdGlvbl9saXN0KSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgZGlycyAiXFxcbiAgIC1nb2xkZW5fYmxvY2tfZGlyIC4uLyRibG9jay8kdmFycyhkYnNfZGlyKS9wbGFjZS5lbmMgIgotICAgICAgICAgICAgICAgfQotIyAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJ1cGRhdGVfcGFydGl0aW9uIFxcXG4gICAtZmxleF9pbG1fZWNvICRkaXJzIFxcXG4gICAtZmxleF9pbG1fZGlyIC4uLy4uLyR2YXJzKHBhcnRpdGlvbl9kaXIpX1BSRUNUUy8gXFxcbiAgIC1wb3N0X2Vjb19zdWZmaXggcG9zdF9lY28gLXBpbl9sb2NhdGlvblxuIgotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgInVwZGF0ZV9wYXJ0aXRpb24gXFxcbiAgIC1mbGV4X2lsbV9lY28gJGRpcnMgXFxcbiAgIC1mbGV4X2lsbV9kaXIgLi4vLi4vJHZhcnMocGFydGl0aW9uX2RpcilfRkxFWElMTS8gXFxcbiAgIC1wb3N0X2Vjb19zdWZmaXggcG9zdF9lY28gLXBpbl9sb2NhdGlvblxuIgotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHVwZGF0ZV9wYXJ0aXRpb24gJGNvbW1hbmRdCi0gICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0gICAgICB9Ci0KLSAgICAgIGlmIHskdmFycyhjb2RlZ2VuKX0gewotICAgICAgICAgcmV0dXJuICRjb21tYW5kcwotICAgICAgfSBlbHNlIHsKLSAgICAgICAgIHVwbGV2ZWwgIzAgZXZhbCAkY29tbWFuZHMKLSAgICAgIH0KLSAgIH0KLQotICAgcHJvYyBydW5fcHJlY3RzIHt7Zm9ybWF0IDF9fSB7Ci0KLSAgICAgIGdsb2JhbCB2YXJzCi0gICAgICBnbG9iYWwgZW52Ci0gICAgICBnbG9iYWwgZXJyb3JzCi0gICAgICBnbG9iYWwgd2FybmluZ3MKLQotICAgICAgaWYgeyR2YXJzKHBsYWNlX29wdF9kZXNpZ24pfSB7Ci0jICAgICAgICAgaWYgeyEoKCR2YXJzKHVzZXJfbW9kZSkgPT0gImhpZXIiKSAmJiAoW2ZpbGUgdGFpbCBbcHdkXV0gPT0gJHZhcnModG9wX2NlbGwpICYmICR2YXJzKGVuYWJsZV9mbGV4aWxtKSkpfSB7Ci0gICAgICAgICAgICByZXR1cm4gIiIKLSMgICAgICAgICB9IGVsc2UgewotIyAgICAgICAgICAgIHNldCB3YXJuaW5ncygkdmFycyh3YXJuaW5nX2NvdW50KSkgIkZlYXR1cmUgdmFycyhwbGFjZV9vcHRfZGVzaWduKSBub3Qgc3VwcG9ydCBmb3IgdG9wIGxldmVsIGltcGxlbWVudGF0aW9uIHdoZW4gdmFycyhlbmFibGVfZmxleGlsbSkgaXMgdHJ1ZSIKLSMgICAgICAgICAgICBpbmNyIHZhcnMod2FybmluZ19jb3VudCkKLSMgICAgICAgICB9Ci0gICAgICB9Ci0KLSAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhwYXJlbnQpXSAmJiAoJHZhcnMocGFyZW50KSA9PSAicmMiKX0gewotICAgICAgICAgc2V0IHZhcnMoc3RlcCkgcmNwCi0gICAgICB9IGVsc2UgewotICAgICAgICAgc2V0IHZhcnMoc3RlcCkgcHJlY3RzCi0gICAgICB9Ci0KLSAgICAgIHNldCBjb21tYW5kcyAiIgotIyAgICAgIGFwcGVuZCBjb21tYW5kcyAic2V0IHZhcnMoc3RlcCkgJHZhcnMoc3RlcClcbiIKLQotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgIyBJbml0aWFsaXplIHN0ZXAgLi4uCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0KLSAgICAgIHNldCBjb21tYW5kIFtGRl9OT1ZVUzo6aW5pdGlhbGl6ZV9zdGVwIHByZWN0c10KLSAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkZfTk9WVVM6Omluc2VydF9jb21tZW50c10gCi0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksaW5pdGlhbGl6ZV9zdGVwICRjb21tYW5kXQotCi0gICAgICBhcHBlbmQgY29tbWFuZHMgInB1dHMgXCI8RkY+IFJVTk5JTkcgUFJFLUNUUyBPUFRJTUlaQVRJT04gLi4uXCJcbiIKLQotICAgICAgaWYgeyR2YXJzKHZlcmJvc2UpfSB7Ci0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiNcbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyBSVU5OSU5HIFBSRS1DVFMgT1BUSU1JWkFUSU9OXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiNcbiIKLSAgICAgIH0KLQotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgIyBMb2FkIG9wdGlvbmFsIHByZSBDVFMgZmlsZSAocGx1Zy1pbikKLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLQotICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6c291cmNlX3BsdWcgcHJlX3ByZWN0c190Y2xdCi0KLSAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhwYXJlbnQpXSAmJiAoJHZhcnMocGFyZW50KSA9PSAicmMiKX0gewotICAgICAgICAgcmV0dXJuICRjb21tYW5kcwotICAgICAgfQotCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAjIFJ1biBwcmUtQ1RTIG9wdGltaXphdGlvbgotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCi0gICAgICBpZiB7KFtpbmZvIGV4aXN0cyB2YXJzKHBhcnRpdGlvbl9saXN0KV0pICYmIChbZmlsZSB0YWlsIFtmaWxlIGRpcm5hbWUgW3B3ZF1dXSA9PSAiJHZhcnMocGFydGl0aW9uX2RpcikiKX0gewotICAgICAgICAgc2V0IHB0biBbZmlsZSB0YWlsIFtwd2RdXQotICAgICAgICAgaWYgeyhbbHNlYXJjaCAkdmFycyhwYXJ0aXRpb25fbGlzdCkgJHB0bl0gPT0gLTEpICYmICR2YXJzKGVuYWJsZV9mbGV4aWxtKX0gewotICAgICAgICAgIyBUb3AgbGV2ZWwgZmxvdyBmb3IgZmxleElsbQotICAgICAgICAgICAgIyBSZWFkIFBvd2VyIEludGVudCBoZXJlIC4uLgotICAgICAgICAgICAgc2V0IGNvbW1hbmQgIiIKLSAgICAgICAgICAgIGZvcmVhY2ggYmxvY2sgJHZhcnMocGFydGl0aW9uX2xpc3QpIHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJzZXRfcGFydGl0aW9uX3Bpbl9zdGF0dXMgLXBhcnRpdGlvbiAkYmxvY2sgLXBpbnMgKiAtc3RhdHVzIHVucGxhY2VkXG4iCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksc2V0X3BhcnRpdGlvbl9waW5fc3RhdHVzICRjb21tYW5kXQotICAgICAgICAgICAKLSAgICAgICAgICAgIHNldCBjb21tYW5kICIiCi0gICAgICAgICAgICBpZiB7W2xpbmRleCBbc3BsaXQgJHZhcnModmVyc2lvbikgIi4iXSAgMF0gPCAxNn0gewotICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAic2V0X2RiIHJvdXRlX3RyaWFsX2hvbm9yX3BpbiBmYWxzZVxuc2V0X2RiIHJvdXRlX3RyaWFsX2hhbmRsZV9wYXJ0aXRpb25fY29tcGxleCB0cnVlXG4iCi0gICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxzZXRfdHJpYWxfcm91dGVfbW9kZTEgJGNvbW1hbmRdCi0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAic2V0X2RiIHJvdXRlX2Vhcmx5X2dsb2JhbF9ob25vcl9wYXJ0aXRpb25fcGluIHt9XG5zZXRfZGIgcm91dGVfZWFybHlfZ2xvYmFsX2hvbm9yX3BhcnRpdGlvbl9mZW5jZSAuXG4iCi0gICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxzZXRfcm91dGVfbW9kZTEgJGNvbW1hbmRdCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIHNldCBjb21tYW5kICIiCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAic2V0X2RiIG9wdF9oaWVyX29wdF9zdGFnZSBwcmVDVFNcbiIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxzZXRfaGllcl9tb2RlICRjb21tYW5kXQotICAgICAgICAgICAgCi0jICAgICAgICAgICAgc2V0IGNvbW1hbmQgIiIKLSMgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAic2V0X2RiIG9wdF9oYW5kbGVfcGFydGl0aW9uX2NvbXBsZXggdHJ1ZVxuIgotIyAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxzZXRfb3B0X21vZGUgJGNvbW1hbmRdCi0gICAgICAgICAgICAKLSMgICAgICAgICAgICBzZXQgY29tbWFuZCAiIgotIyAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJvcHRfZGVzaWduIC1wcmVfY3RzIC1yZXBvcnRfZGlyICR2YXJzKHJwdF9kaXIpIC1yZXBvcnRfcHJlZml4IGZsZXhpbG1cbiIKLSMgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksb3B0X2Rlc2lnbiAkY29tbWFuZF0KLSAgICAgICAgICAgIAotICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICMgTm9uIGZsZXhJbG0gdG9wIGZsb3cgYW5kIHBhcnRpdGlvbiBmbG93Ci0gICAgICAgICAgIHNldCBjb21tYW5kICJvcHRfZGVzaWduIC1wcmVfY3RzIC1yZXBvcnRfZGlyICR2YXJzKHJwdF9kaXIpIC1yZXBvcnRfcHJlZml4IHByZWN0c1xuIgotICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksb3B0X2Rlc2lnbiAkY29tbWFuZF0KLSAgICAgICAgIH0KLSAgICAgIH0gZWxzZSB7Ci0gICAgICAjIEZsYXQgZmxvdyAKLSAgICAgICAgc2V0IGNvbW1hbmQgIm9wdF9kZXNpZ24gLXByZV9jdHMgLXJlcG9ydF9kaXIgJHZhcnMocnB0X2RpcikgLXJlcG9ydF9wcmVmaXggcHJlY3RzXG4iCi0gICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxvcHRfZGVzaWduICRjb21tYW5kXQotICAgICAgfQotCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAjIExvYWQgb3B0aW9uYWwgcG9zdCBDVFMgZmlsZSAocGx1Zy1pbikKLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLQotICAgICAgc2V0IGNvbW1hbmQgIiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OnNvdXJjZV9wbHVnIHBvc3RfcHJlY3RzX3RjbCAwXQotCi0gICAgICBpZiB7KCR2YXJzKHVzZXJfbW9kZSkgPT0gImhpZXIiKX0gewotICAgICAgICAgc2V0IHB0biBbZmlsZSB0YWlsIFtwd2RdXQotICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKHBhcnRpdGlvbl9saXN0KV0gJiYgKFtsc2VhcmNoICR2YXJzKHBhcnRpdGlvbl9saXN0KSAkcHRuXSAhPSAtMSkgJiYgISR2YXJzKHBsYWNlX29wdF9kZXNpZ24pfSB7Ci0gICAgICAgICAgICBpZiB7JHZhcnMoZW5hYmxlX2ZsZXhpbG0pfSB7Ci0gICAgICAgICAgICAgICBzZXQgY29tbWFuZCAid3JpdGVfaWxtIC1vcHRfc3RhZ2UgcHJlY3RzIC10eXBlX2ZsZXhfaWxtIGZsZXhJbG0gLXRvX2RpciBcW2dldF9kYiBkZXNpZ25zIC5uYW1lXF0uZmxleGlsbVxuIgotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLGNyZWF0ZV9mbGV4X2lsbSAkY29tbWFuZF0KLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBpZiB7ISR2YXJzKGJsYWNrX2JveCl9IHsKLSAgICAgICAgICAgICAgICAgIGlmIHtbc3RyaW5nIGNvbXBhcmUgLW5vY2FzZSAkdmFycyhkYnNfZm9ybWF0KSAiZmUiXT09MH0gewotICAgICAgICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgIndyaXRlX2lsbSAtb3B0X3N0YWdlIHByZWN0cyAtdHlwZV9mbGV4X2lsbSBpbG0gLXRvX2RpciBcW2dldF9kYiBkZXNpZ25zIC5uYW1lXF0uaWxtXG4iCi0gICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgIndyaXRlX2lsbSAtb3B0X3N0YWdlIHByZWN0cyAtdHlwZV9mbGV4X2lsbSBpbG0gLW9hX2NlbGx2aWV3IHskdmFycyhvYV9wYXJ0aXRpb25fbGliKSBcW2dldF9kYiBkZXNpZ25zIC5uYW1lXF0gaWxtfVxuIgotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgfSAKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSx3cml0ZV9pbG0gJGNvbW1hbmRdCi0gICAgICAgICAgICB9Ci0gICAgICAgICB9IGVsc2UgeyA7ICMgVG9wIGxldmVsIHVuY29uZGl0aW9uYWwgKG5vIHBsYWNlX29wdF9kZXNpZ24gc3VwcG9ydCkgLi4uCi0gICAgICAgICAgICBpZiB7JHZhcnMoZW5hYmxlX2ZsZXhpbG0pfSB7Ci0gICAgICAgICAgICAgICBzZXQgY29tbWFuZCAiIgotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIndyaXRlX2RiICR2YXJzKGRic19kaXIpL3ByZWN0c19mbGV4aWxtLmVuY1xuIgotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHNhdmVfZGVzaWduICRjb21tYW5kXQotCi0gICAgICAgICAgICAgICAjIFJlLWFzc2lnbiBwaW5zIGJhc2VkIG9uIG5ldyBuZXRsaXN0IGNoYW5nZXMKLSAgICAgICAgICAgICAgIGlmIHtbbGluZGV4IFtzcGxpdCAkdmFycyh2ZXJzaW9uKSAiLiJdICAwXSA8IDE2fSB7Ci0gICAgICAgICAgICAgICAgIHNldCBjb21tYW5kICIiCi0gICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJyb3V0ZV90cmlhbFxuIgotICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksdHJpYWxfcm91dGUxICRjb21tYW5kXQotICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgIiIKLSAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgInJvdXRlX2Vhcmx5X2dsb2JhbFxuIgotICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksZWFybHlfcm91dGUxICRjb21tYW5kXQotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICBzZXQgY29tbWFuZCAiIgotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgInRpbWVfZGVzaWduIC1wcmVfY3RzIC1yZXBvcnRfZGlyICR2YXJzKHJwdF9kaXIpIC1yZXBvcnRfcHJlZml4IHByZWN0c19mbGV4aWxtXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksdGltZV9kZXNpZ24gJGNvbW1hbmRdCi0gICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgIHNldCBjb21tYW5kICIiCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiYXNzaWduX3BhcnRpdGlvbl9waW5zXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksYXNzaWduX3BhcnRpdGlvbl9waW5zICRjb21tYW5kXQotICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICBzZXQgY29tbWFuZCAiIgotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgImNoZWNrX3Bpbl9hc3NpZ25tZW50XG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksY2hlY2tfcGluX2Fzc2lnbm1lbnQgJGNvbW1hbmRdCi0gICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgIHNldCBjb21tYW5kICIiCi0gICAgICAgICAgICAgICBpZiB7W2xpbmRleCBbc3BsaXQgJHZhcnModmVyc2lvbikgIi4iXSAgMF0gPCAxNn0gewotICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAic2V0X2RiIHJvdXRlX3RyaWFsX2hvbm9yX3BpbiB0cnVlXG4iCi0gICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxzZXRfdHJpYWxfcm91dGVfbW9kZTIgJGNvbW1hbmRdCi0gICAgICAgICAgICAgICAgIHNldCBjb21tYW5kICIiCi0gICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJyb3V0ZV90cmlhbFxuIgotICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksdHJpYWxfcm91dGUyICRjb21tYW5kXQotICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgInNldF9kYiByb3V0ZV9lYXJseV9nbG9iYWxfaG9ub3JfcGFydGl0aW9uX3BpbiAuXG4iCi0gICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxzZXRfcm91dGVfbW9kZTIgJGNvbW1hbmRdCi0gICAgICAgICAgICAgICAgIHNldCBjb21tYW5kICIiCi0gICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJyb3V0ZV9lYXJseV9nbG9iYWxcbiIKLSAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLGVhcmx5X3JvdXRlMiAkY29tbWFuZF0KLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgCi0jICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgIiIKLSMgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAic2V0X2RiIGJ1ZGdldF9lbmFibGVfbXRfYnVkZ2V0aW5nIHRydWVcbiIKLSMgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksc2V0X2J1ZGdldGluZ19tb2RlICRjb21tYW5kXQotCi0gICAgICAgICAgICAgICBzZXQgY29tbWFuZCAiIgotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgImNyZWF0ZV90aW1pbmdfYnVkZ2V0XG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksY3JlYXRlX3RpbWluZ19idWRnZXQgJGNvbW1hbmRdCi0gICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgIHNldCBjb21tYW5kICIiCi0gICAgICAgICAgICAgICBzZXQgZGlycyAiIgotICAgICAgICAgICAgICAgZm9yZWFjaCBibG9jayAkdmFycyhwYXJ0aXRpb25fbGlzdCkgewotICAgICAgICAgICAgICAgICAgaWYgeyR2YXJzKHBsYWNlX29wdF9kZXNpZ24pfSB7Ci0gICAgICAgICAgICAgICAgICAgICBhcHBlbmQgZGlycyAiXFxcbiAgIC1nb2xkZW5fYmxvY2tfZGlyIC4uLyRibG9jay8kdmFycyhkYnNfZGlyKS9wbGFjZS5lbmMgIgotICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBkaXJzICJcXFxuICAgLWdvbGRlbl9ibG9ja19kaXIgLi4vJGJsb2NrLyR2YXJzKGRic19kaXIpL3ByZWN0cy5lbmMgIgotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgfQotIyAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJ1cGRhdGVfcGFydGl0aW9uIFxcXG4gICAtZmxleF9pbG1fZWNvICRkaXJzIFxcXG4gICAtZmxleF9pbG1fZGlyIC4uLy4uLyR2YXJzKHBhcnRpdGlvbl9kaXIpX1BSRUNUUy8gXFxcbiAgIC1wb3N0X2Vjb19zdWZmaXggcG9zdF9lY28gLXBpbl9sb2NhdGlvblxuIgotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgInVwZGF0ZV9wYXJ0aXRpb24gXFxcbiAgIC1mbGV4X2lsbV9lY28gJGRpcnMgXFxcbiAgIC1mbGV4X2lsbV9kaXIgLi4vLi4vJHZhcnMocGFydGl0aW9uX2RpcilfRkxFWElMTS8gXFxcbiAgIC1wb3N0X2Vjb19zdWZmaXggcG9zdF9lY28gLXBpbl9sb2NhdGlvblxuIgotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHVwZGF0ZV9wYXJ0aXRpb24gJGNvbW1hbmRdCi0gICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0gICAgICB9Ci0KLSAgICAgIGlmIHskdmFycyhjb2RlZ2VuKX0gewotICAgICAgICAgcmV0dXJuICRjb21tYW5kcwotICAgICAgfSBlbHNlIHsKLSAgICAgICAgICB1cGxldmVsICMwIGV2YWwgJGNvbW1hbmRzCi0gICAgICB9Ci0gICB9Ci0KLSAgIHByb2MgcnVuX2N0cyB7e2Zvcm1hdCAxfX0gewotCi0gICAgICBnbG9iYWwgdmFycwotICAgICAgZ2xvYmFsIGVycm9ycwotCi0gICAgICBpZiB7JHZhcnMoc2tpcF9jdHMpfSB7Ci0gICAgICAgICByZXR1cm4gIiIKLSAgICAgIH0KLQotICAgICAgc2V0IHZhcnMoc3RlcCkgY3RzCi0gICAgICBzZXQgY29tbWFuZHMgIiIKLSAgICAgIHNldCB1Y29tbWVudHMgIiIKLSMgICAgICBhcHBlbmQgY29tbWFuZHMgInNldCB2YXJzKHN0ZXApICR2YXJzKHN0ZXApXG4iCi0KLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICMgSW5pdGlhbGl6ZSBzdGVwIC4uLgotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCi0gICAgICBzZXQgY29tbWFuZCBbRkZfTk9WVVM6OmluaXRpYWxpemVfc3RlcCBjdHNdCi0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGX05PVlVTOjppbnNlcnRfY29tbWVudHNdIAotICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kIGN0cyxpbml0aWFsaXplX3N0ZXAgJGNvbW1hbmRdCi0KLSAgICAgIHNldCB2YXJzKG9ubHlfb3B0aW9ucykgdHJ1ZQotCi0gICAgICBpZiB7W3JlZ2V4cCAiXmNjb3B0IiAkdmFycyhjdHNfZW5naW5lKV19IHsKLSAgICAgICAgIHNldCBjb21tYW5kIFtGRl9OT1ZVUzo6aW5pdGlhbGl6ZV9zdGVwIHBvc3RjdHNdCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgcG9zdGN0cyxpbml0aWFsaXplX3N0ZXAgJGNvbW1hbmRdCi0gICAgICAgICBpZiB7JHZhcnMocG9zdGN0c19zZXR1cF9ob2xkKX0gewotICAgICAgICAgICAgc2V0IGNvbW1hbmQgW0ZGX05PVlVTOjppbml0aWFsaXplX3N0ZXAgcG9zdGN0c19ob2xkXQotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kIHBvc3RjdHNfaG9sZCxpbml0aWFsaXplX3N0ZXAgJGNvbW1hbmRdCi0gICAgICAgICB9Ci0gICAgICB9Ci0KLSAgICAgIHNldCB2YXJzKG9ubHlfb3B0aW9ucykgZmFsc2UKLQotICAgICAgaWYgeyR2YXJzKHRvcCkgJiYgKCR2YXJzKHVzZXJfbW9kZSkgPT0gImhpZXIiKSAmJiAoJHZhcnMoaGllcl9mbG93X3R5cGUpID09ICIycGFzcyIpICYmICR2YXJzKGVuYWJsZV9mbGV4aWxtKX0gewotICAgICAgICAgIyBSZWFkIFBvd2VyIEludGVudCBoZXJlIC4uLgotICAgICAgICAgc2V0IGNvbW1hbmQgIiIKLSAgICAgICAgIGZvcmVhY2ggcGFydCAkdmFycyhwYXJ0aXRpb25fbGlzdCkgewotICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCRwYXJ0LGlsbV9kaXIpXSAmJiAoJHZhcnMoY29kZWdlbikgfHwgW2ZpbGUgaXNkaXJlY3RvcnkgJHZhcnMoJHBhcnQsaWxtX2RpcildKX0gewotICAgICAgICAgICAgICAgaWYge1tsaW5kZXggW3NwbGl0ICR2YXJzKHZlcnNpb24pICIuIl0gIDBdIDw9IDEwfSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAicmVhZF9pbG0gLWNlbGwgJHBhcnQgLWRpciAkdmFycygkcGFydCxpbG1fZGlyKVxuIgotICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgaWYge1tzdHJpbmcgY29tcGFyZSAtbm9jYXNlICR2YXJzKGRic19mb3JtYXQpICJvYSJdPT0wfSB7Ci0gICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAicmVhZF9pbG0gLWNlbGwgJHBhcnQgLW9hX2NlbGx2aWV3IHskdmFycyhvYV9wYXJ0aXRpb25fbGliKSBcW2dldF9kYiBkZXNpZ25zIC5uYW1lXF0gaWxtfVxuIgotICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJyZWFkX2lsbSAtY2VsbCAkcGFydCAtZGlyZWN0b3J5ICR2YXJzKCRwYXJ0LGlsbV9kaXIpXG4iCi0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICBpZiB7W3N0cmluZyBjb21wYXJlIC1ub2Nhc2UgJHZhcnMoZGJzX2Zvcm1hdCkgIm9hIl09PTB9IHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJyZWFkX2lsbSAtY2VsbCAkcGFydFxuIgotICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJyZWFkX2lsbSAtY2VsbCAkcGFydCAtZGlyZWN0b3J5IC4uLyRwYXJ0LyRwYXJ0LmlsbVxuIgotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0KLSAgICAgICAgIGlmIHskY29tbWFuZCAhPSAiIn0gewotIyAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxzcGVjaWZ5X2lsbSAiJGNvbW1hbmRcbnNldF9kYiBpbG1fa2VlcF9mbGF0dGVuIHRydWVcbiJdCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksc3BlY2lmeV9pbG0gJGNvbW1hbmRdCi0gICAgICAgICB9Ci0KLSAgICAgICAgIHNldCBjb21tYW5kIFtGRl9OT1ZVUzo6aW5pdGlhbGl6ZV90aW1pbmcgbW1tY10KLSMgICAgICAgICBpZiB7IVtpbmZvIGV4aXN0cyB2YXJzKGNwZl9maWxlKV0gfHwgKFtpbmZvIGV4aXN0cyB2YXJzKGNwZl9maWxlKV0gJiYgISR2YXJzKGNwZl90aW1pbmcpKSB9IHsKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxpbml0aWFsaXplX3RpbWluZyAkY29tbWFuZF0KLSMgICAgICAgICB9IGVsc2UgewotIyAgICAgICAgICAgIHNldCBkZWZlcl9jb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxpbml0aWFsaXplX3RpbWluZyAkY29tbWFuZF0gCi0jICAgICAgICAgfQotICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkZfTk9WVVM6OmxvYWRfcG93ZXJfaW50ZW50XQotICAgICAgfQotCi0gICAgICBhcHBlbmQgY29tbWFuZHMgInB1dHMgXCI8RkY+IFJVTk5JTkcgQ0xPQ0sgVFJFRSBTWU5USEVTSVMgLi4uXCJcbiIKLQotICAgICAgaWYgeyR2YXJzKHZlcmJvc2UpfSB7Ci0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiNcbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyBSVU5OSU5HIENMT0NLIFRSRUUgU1lOVEhFU0lTXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiNcbiIKLSAgICAgIH0KLQotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgIyBMb2FkIHByZS1DVFMgZmlsZSAocGx1Zy1pbikKLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgIGlmIHskdmFycyhjdHNfZW5naW5lKSA9PSAiY3RzIn0gewotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6c291cmNlX3BsdWcgcHJlX2N0c190Y2xdCi0gICAgICB9Ci0KLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICMgUnVuIENUUwotICAgICAgIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotICAgICAgIyBHZW5lcmF0ZSB0aGUgY2xvY2sgdHJlZSB1c2luZyBjbG9ja0Rlc2lnbiB3aGljaDoKLSAgICAgICMgLSBsb2FkcyB0aGUgY2xvY2sgc3BlY2lmaWNhdGlvbiBmaWxlCi0gICAgICAjIC0gcmVtb3ZlcyBleGlzdGluZyBidWZmZXJzIGluIHRoZSBjbG9jayB0cmVlIChub3QgbWFya2VkIGRvbid0IHRvdWNoKTsKLSAgICAgICMgICBpZiBhIGNsb2NrIHRyZWUgaGFzIGJlZW4gcHJldmlvdXNseSBpbnNlcnRlZCwgdXNlIGNoYW5nZUNsb2NrU3RhdHVzCi0gICAgICAjICAgdG8gdW5maXggdGhlIHRyZWUgc28gdGhhdCBpdCBjYW4gYmUgcmVtb3ZlZAotICAgICAgIyAtIHVuZml4ZXMgdGhlIGNsb2NrIG5ldHMgYWZ0ZXIgdHJlZSBpbnNlcnRpb24KLSAgICAgICMgTmVlZCB0byBtYWtlIHN1cmUgdGhlIGNsb2NrIGdhdGluZyBjZWxscyBhcmUgdXNhYmxlIGR1cmluZyBjbG9ja0Rlc2lnbi4KLSAgICAgICMgRGlzYWJsZSB0aGVtIGFmdGVyd2FyZHMuCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0KLSAgICAgIHNldCBjbG9ja19nYXRlX2NlbGxzIFtsaXN0XQotICAgICAgc2V0IGNvbW1hbmQgIiIKLSAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhjbG9ja19nYXRlX2NlbGxzKV19IHsKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kICJzZXRfaW50ZXJhY3RpdmVfY29uc3RyYWludF9tb2RlcyBcW2FsbF9jb25zdHJhaW50X21vZGVzIC1hY3RpdmVcXVxuIgotICAgICAgICAgc2V0IGNsb2NrX2dhdGVfY2VsbHMgJHZhcnMoY2xvY2tfZ2F0ZV9jZWxscykKLSAgICAgICAgIGZvcmVhY2ggY2VsbCAkY2xvY2tfZ2F0ZV9jZWxscyB7Ci0gICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgInNldF9kb250X3VzZSBmYWxzZSAkY2VsbFxuIgotICAgICAgICAgfQotICAgICAgfQotICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kIGN0cyxlbmFibGVfY2xvY2tfZ2F0ZV9jZWxscyAkY29tbWFuZF0KLQotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgIyBSdW4gQ1RTCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0KLSAgICAgIHNldCBjb21tYW5kICIiCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAjIFJ1biBjY29wdERlc2lnbiAuLi4gY29udmVydCB0byBwcm9wYWdhdGVkIHRpbWluZyBmaXJzdCBpbiBzY3JpcHRlZCBpbnRlZ3JhdGlvbgotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGN0c190Y2wpXX0gewotICAgICAgICAgaWYge1tmaWxlIGV4aXN0cyAkdmFycyhjdHNfdGNsKV19IHsKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OnNvdXJjZV9wbHVnIHByZV9jdHNfdGNsXQotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6c291cmNlX3BsdWcgY3RzX3RjbF0KLSAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBzZXQgZXJyb3JzKCR2YXJzKGVycm9yX2NvdW50KSkgIlBsdWctaW4gdmFycyhjdHNfdGNsKSBkZWZpbmVkIGJ1dCB0aGUgZmlsZSBkb2VzIG5vdCBleGlzdCIKLSAgICAgICAgICAgIGluY3IgdmFycyhlcnJvcl9jb3VudCkKLSAgICAgICAgIH0KLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgICBzZXQgaXNfbmF0aXZlIFtleHByIHskdmFycyhjY29wdF9pbnRlZ3JhdGlvbikgPT0gIm5hdGl2ZSJ9XQotICAgICAgICAgc2V0IGNvbW1hbmQgW0ZGX05PVlVTOjp1cGRhdGVfdGltaW5nIG1tbWMgW2V4cHIgISRpc19uYXRpdmVdXQotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kIGN0cyx1cGRhdGVfdGltaW5nICRjb21tYW5kXQotICAgICAgICAgc2V0IGNvbW1hbmQgW0ZGX05PVlVTOjpkZXJhdGVfdGltaW5nIG1tbWNdCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksZGVyYXRlX3RpbWluZyAkY29tbWFuZF0KLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OnNvdXJjZV9wbHVnIHByZV9jdHNfdGNsXQotICAgICAgICAgaWYge1tyZWdleHAgIl5jY29wdCIgJHZhcnMoY3RzX2VuZ2luZSldfSB7Ci0gICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OnNvdXJjZV9wbHVnIHByZV9wb3N0Y3RzX3RjbCAwXQotICAgICAgICAgICBpZiB7JHZhcnMocG9zdGN0c19zZXR1cF9ob2xkKX0gewotICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjpzb3VyY2VfcGx1ZyBwcmVfcG9zdGN0c19ob2xkX3RjbF0KLSAgICAgICAgICAgfQotICAgICAgICAgfQotCi0gICAgICAgICAjIENyZWF0ZSBhIENDT3B0IGNsb2NrIHRyZWUgc3BlYyBpZiBydW5uaW5nIHdpdGggbmF0aXZlIGludGVncmF0aW9uCi0gICAgICAgICBpZiB7JHZhcnMoY2NvcHRfZWZmb3J0KSAhPSAibG93In0gewotIyAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxzZXRfY2NvcHRfbW9kZSAic2V0X2Njb3B0X21vZGUgLWVmZm9ydCAkdmFycyhjY29wdF9lZmZvcnQpXG4iXQotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHNldF9jY29wdF9lZmZvcnQgInNldF9jY29wdF9lZmZvcnQgLWVmZm9ydCAkdmFycyhjY29wdF9lZmZvcnQpXG4iXQotICAgICAgICAgfQotICAgICAgICAgc2V0IGNjb3B0X2NvbW1hbmQgImNjb3B0X2Rlc2lnbiIKLQotICAgICAgICAgaWYgeyR2YXJzKHBvc3RjdHNfc2V0dXBfaG9sZCl9IHsKLSAgICAgICAgICAgIGFwcGVuZCBjY29wdF9jb21tYW5kICIgLWhvbGQiCi0gICAgICAgICB9Ci0KLSAgICAgICAgIHNldCBjb21tYW5kICJjcmVhdGVfY2xvY2tfdHJlZV9zcGVjXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgY3RzLGNyZWF0ZV9jbG9ja190cmVlX3NwZWMgJGNvbW1hbmRdCi0KLSAgICAgICAgIGFwcGVuZCBjY29wdF9jb21tYW5kICJcbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCBjdHMsY2NvcHRfZGVzaWduICRjY29wdF9jb21tYW5kXQotCi0gICAgICB9Ci0KLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICMgTG9hZCBvcHRpb25hbCBwb3N0IENUUyBmaWxlIChwbHVnLWluKQotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCi0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjpzb3VyY2VfcGx1ZyBwb3N0X2N0c190Y2wgMF0KLSAgICAgIGlmIHtbcmVnZXhwICJeY2NvcHQiICR2YXJzKGN0c19lbmdpbmUpXX0gewotICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjpzb3VyY2VfcGx1ZyBwb3N0X3Bvc3RjdHNfdGNsIDBdCi0gICAgICAgIGlmIHskdmFycyhwb3N0Y3RzX3NldHVwX2hvbGQpfSB7Ci0gICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OnNvdXJjZV9wbHVnIHBvc3RfcG9zdGN0c19ob2xkX3RjbF0KLSAgICAgICAgfQotICAgICAgfQotCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAjIFJlc2V0IGNsb2NrIGdhdGluZyBjZWxsIHVzYWdlCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAjIENoZWNrIHBvc3QtY3RzIHRpbWluZwotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycyh0aW1lX2Rlc2lnbl9vcHRpb25zLHNldHVwKV19IHsKLSAgICAgICAgIHNldCBjb21tYW5kICJ0aW1lX2Rlc2lnbiAtcG9zdGN0cyAtcmVwb3J0X3ByZWZpeCBjdHMgLXJlcG9ydF9kaXIgJHZhcnMocnB0X2RpcilcbiIKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgICBzZXQgY29tbWFuZCBbZm9ybWF0ICJ0aW1lX2Rlc2lnbiAtcG9zdGN0cyAtcmVwb3J0X3ByZWZpeCBjdHMgLXJlcG9ydF9kaXIgJHZhcnMocnB0X2RpcikgJXNcbiIgJHZhcnModGltZV9kZXNpZ25fb3B0aW9ucyxzZXR1cCldCi0gICAgICB9Ci0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgY3RzLHRpbWVfZGVzaWduICRjb21tYW5kXQotCi0gICAgICBpZiB7KCR2YXJzKGhpZXJfZmxvd190eXBlKSA9PSAiMnBhc3MiKSAmJiAhJHZhcnMoZW5hYmxlX2ZsZXhpbG0pfSB7Ci0gICAgICAgICBzZXQgcHRuIFtmaWxlIHRhaWwgW3B3ZF1dCi0gICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMocGFydGl0aW9uX2xpc3QpXSAmJiAoW2xzZWFyY2ggJHZhcnMocGFydGl0aW9uX2xpc3QpICRwdG5dICE9IC0xKX0gewotICAgICAgICAgICAgaWYge1tzdHJpbmcgY29tcGFyZSAtbm9jYXNlICR2YXJzKGRic19mb3JtYXQpICJmZSJdPT0wfSB7Ci0gICAgICAgICAgICAgICBzZXQgY29tbWFuZCAid3JpdGVfaWxtIC1vcHRfc3RhZ2UgcG9zdGN0cyAtdHlwZV9mbGV4X2lsbSBpbG0gLXRvX2RpciBcW2dldF9kYiBkZXNpZ25zIC5uYW1lXF0uaWxtXG4iCi0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgIndyaXRlX2lsbSAtb3B0X3N0YWdlIHBvc3RjdHMgLXR5cGVfZmxleF9pbG0gaWxtIC1vYV9jZWxsdmlldyB7JHZhcnMob2FfcGFydGl0aW9uX2xpYikgXFtnZXRfZGIgZGVzaWducyAubmFtZVxdIGlsbX1cbiIKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSx3cml0ZV9pbG0gJGNvbW1hbmRdCi0gICAgICAgICB9Ci0gICAgICB9Ci0KLSAgICAgIGlmIHskdmFycyhjb2RlZ2VuKX0gewotICAgICAgICAgcmV0dXJuICRjb21tYW5kcwotICAgICAgfSBlbHNlIHsKLSAgICAgICAgICB1cGxldmVsICMwIGV2YWwgJGNvbW1hbmRzCi0gICAgICB9Ci0gICB9Ci0KLSAgIHByb2MgcnVuX3Bvc3RjdHMge3tmb3JtYXQgMX19IHsKLQotICAgICAgZ2xvYmFsIHZhcnMKLSAgICAgIGdsb2JhbCBlbnYKLSAgICAgIGdsb2JhbCBlcnJvcnMKLQotICAgICBpZiB7JHZhcnMoc2tpcF9jdHMpfSB7IHJldHVybiAiIiB9Ci0KLSMgICAgIGlmIHtbcmVnZXhwICJeY2NvcHQiIFtzdHJpbmcgdG9sb3dlciAkdmFycyhjdHNfZW5naW5lKV1dfSB7Ci0jICAgICAgICByZXR1cm4gIiIKLSMgICAgIH0KLSAgICAgaWYge1tzdHJpbmcgdG9sb3dlciAkdmFycyhjdHNfZW5naW5lKV0gPT0gImNjb3B0In0geyAKLSAgICAgICAgcmV0dXJuICIiCi0gICAgIH0KLQotICAgICAgc2V0IHZhcnMoc3RlcCkgcG9zdGN0cwotICAgICAgc2V0IGNvbW1hbmRzICIiCi0jICAgICAgYXBwZW5kIGNvbW1hbmRzICJzZXQgdmFycyhzdGVwKSAkdmFycyhzdGVwKVxuIgotIAotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgIyBJbml0aWFsaXplIHN0ZXAgLi4uCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0KLSAgICAgIHNldCBjb21tYW5kIFtGRl9OT1ZVUzo6aW5pdGlhbGl6ZV9zdGVwIHBvc3RjdHNdCi0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGX05PVlVTOjppbnNlcnRfY29tbWVudHNdIAotICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kIHBvc3RjdHMsaW5pdGlhbGl6ZV9zdGVwICRjb21tYW5kXQotCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAjIFNwZWNpZnkgdGhlIElMTSBtb2RlbHMgZm9yIHRoZSB0b3AgcGFydGl0aW9uIChvbmx5IGZvciAycGFzcyBmbG93KQotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgaWYgeyR2YXJzKHRvcCkgJiYgKCR2YXJzKHVzZXJfbW9kZSkgPT0gImhpZXIiKSAmJiAoJHZhcnMoaGllcl9mbG93X3R5cGUpID09ICIycGFzcyIpICYmICEkdmFycyhlbmFibGVfZmxleGlsbSl9IHsKLSMgICAgICAgICBpZiB7ISQodmFycyhibGFja19ib3gpfSB7IAotICAgICAgICAgICAgc2V0IGNvbW1hbmQgIiIKLSAgICAgICAgICAgIGZvcmVhY2ggcGFydCAkdmFycyhwYXJ0aXRpb25fbGlzdCkgewotICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCRwYXJ0LGlsbV9kaXIpXSAmJiAoJHZhcnMoY29kZWdlbikgfHwgW2ZpbGUgaXNkaXJlY3RvcnkgJHZhcnMoJHBhcnQsaWxtX2RpcildKX0gewotICAgICAgICAgICAgICAgICAgaWYge1tsaW5kZXggW3NwbGl0ICR2YXJzKHZlcnNpb24pICIuIl0gIDBdIDw9IDEwfSB7Ci0gICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAic3BlY2lmeUlsbSAtY2VsbCAkcGFydCAtZGlyICR2YXJzKCRwYXJ0LGlsbV9kaXIpXG4iCi0gICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICBpZiB7W3N0cmluZyBjb21wYXJlIC1ub2Nhc2UgJHZhcnMoZGJzX2Zvcm1hdCkgIm9hIl09PTB9IHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJzcGVjaWZ5SWxtIC1jZWxsICRwYXJ0XG4iCi0gICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgInNwZWNpZnlJbG0gLWNlbGwgJHBhcnQgLWRpciAkdmFycygkcGFydCxpbG1fZGlyKVxuIgotICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgIGlmIHtbbGluZGV4IFtzcGxpdCAkdmFycyh2ZXJzaW9uKSAiLiJdICAwXSA8PSAxMH0gewotICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgInNwZWNpZnlJbG0gLWNlbGwgJHBhcnQgLWRpciAuLi8kcGFydC8kcGFydC5pbG1cbiIKLSAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgIGlmIHtbc3RyaW5nIGNvbXBhcmUgLW5vY2FzZSAkdmFycyhkYnNfZm9ybWF0KSAib2EiXT09MH0gewotICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgInNwZWNpZnlJbG0gLWNlbGwgJHBhcnRcbiIKLSAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAic3BlY2lmeUlsbSAtY2VsbCAkcGFydCAtZGlyIC4uLyRwYXJ0LyRwYXJ0LmlsbVxuIgotICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgeyRjb21tYW5kICE9ICIifSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksc3BlY2lmeV9pbG0gJGNvbW1hbmRdCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiB7JHZhcnMoZmxvdykgPT0gIm1tbWMifSB7Ci0gICAgICAgICAgICAgICBzZXQgY29tbWFuZCBbRkZfTk9WVVM6OnVwZGF0ZV90aW1pbmcgbW1tY10KLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCBwb3N0Y3RzLHVwZGF0ZV90aW1pbmcgJGNvbW1hbmRdCi0gICAgICAgICAgICAgICBzZXQgY29tbWFuZCBbRkZfTk9WVVM6OmRlcmF0ZV90aW1pbmcgbW1tY10KLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxkZXJhdGVfdGltaW5nICRjb21tYW5kXQotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIHNldCBjb21tYW5kIFtGRl9OT1ZVUzo6dXBkYXRlX3RpbWluZyBtaW5tYXhdCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgcG9zdGN0cyx1cGRhdGVfdGltaW5nICRjb21tYW5kXQotICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgW0ZGX05PVlVTOjpkZXJhdGVfdGltaW5nIG1pbm1heF0KLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxkZXJhdGVfdGltaW5nICRjb21tYW5kXQotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgeyR2YXJzKGlsbSkgJiYgW2luZm8gZXhpc3RzIHZhcnMoaWxtX25vbl9zZGNfZmlsZSldfSB7Ci0gICAgICAgICAgICAgICBpZiB7W2ZpbGUgZXhpc3RzICR2YXJzKGlsbV9ub25fc2RjX2ZpbGUpXX0gewotICAgICAgICAgICAgICAgICAgaWYge1tsaW5kZXggW3NwbGl0ICR2YXJzKHZlcnNpb24pICIuIl0gIDBdIDw9IDEwfSB7Ci0gICAgICAgICAgICAgICAgICAgICBzZXQgY29tbWFuZCAibG9hZFRpbWluZ0NvbiAtaWxtTm9uU2RjRmlsZSAkdmFycyhpbG1fbm9uX3NkY19maWxlKVxuIgotICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgIHNldCBjb21tYW5kICJzZXRJbG1Ob25TZGNDb25zdHJhaW50RmlsZSAkdmFycyhpbG1fbm9uX3NkY19maWxlKVxuIgotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLGxvYWRfaWxtX25vbl9zZGNfZmlsZSAkY29tbWFuZF0KLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSMgICAgICAgICB9Ci0KLSMgICAgICAgICBzZXQgY29tbWFuZCBbRkZfTk9WVVM6OmluaXRpYWxpemVfdGltaW5nIG1tbWNdCi0jICAgICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycyhjcGZfZmlsZSldfSB7Ci0jICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLGluaXRpYWxpemVfdGltaW5nICRjb21tYW5kXQotIyAgICAgICAgIH0gZWxzZSB7Ci0jICAgICAgICAgICAgc2V0IGRlZmVyX2NvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLGluaXRpYWxpemVfdGltaW5nICRjb21tYW5kXSAKLSMgICAgICAgICB9Ci0gICAgICB9Ci0KLSAgICAgIGFwcGVuZCBjb21tYW5kcyAicHV0cyBcIjxGRj4gUlVOTklORyBQT1NULUNUUyBPUFRJTUlaQVRJT04gLi4uXCJcbiIKLQotICAgICAgaWYgeyR2YXJzKHZlcmJvc2UpfSB7Ci0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiNcbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyBSVU5OSU5HIFBPU1QtQ1RTIE9QVElNSVpBVElPTlxuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjXG4iCi0gICAgICB9Ci0KLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICMgTG9hZCBvcHRpb25hbCBwcmUgcG9zdENUUyBmaWxlIChwbHVnLWluKQotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCi0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjpzb3VyY2VfcGx1ZyBwcmVfcG9zdGN0c190Y2xdCi0KLSAgICAgIGlmIHskdmFycyhjdHNfZW5naW5lKSA9PSAiY2NvcHQiICYmICR2YXJzKGNjb3B0X2ludGVncmF0aW9uKSA9PSAibmF0aXZlIn0gewotICAgICAgICAgc2V0IGNvbW1hbmQgInB1dHMgXCI8RkY+IE5PIFBPU1QtQ1RTIE9QVElNSVpBVElPTiBSRVFVSVJFRCBGT1IgQ0NPUFQgTkFUSVZFIElOVEVHUkFUSU9OXCJcbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCBwb3N0Y3RzLG9wdF9kZXNpZ24gJGNvbW1hbmRdCi0gICAgICB9IGVsc2UgewotICAgICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgICAgIyBSdW4gcG9zdC1DVFMgb3B0aW1pemF0aW9uCi0gICAgICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAgICAKLSAgICAgICAgIHNldCBjb21tYW5kICJvcHRfZGVzaWduIC1wb3N0X2N0cyAtcmVwb3J0X2RpciAkdmFycyhycHRfZGlyKSAtcmVwb3J0X3ByZWZpeCBwb3N0Y3RzXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgcG9zdGN0cyxvcHRfZGVzaWduICRjb21tYW5kXQotICAgICAgfQotICAgICAgICAgCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAjIExvYWQgb3B0aW9uYWwgcG9zdCBwb3N0Q1RTIGZpbGUgKHBsdWctaW4pCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0KLSAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OnNvdXJjZV9wbHVnIHBvc3RfcG9zdGN0c190Y2wgMF0KLSAgICAgIGlmIHskdmFycyhjb2RlZ2VuKX0gewotICAgICAgICAgcmV0dXJuICRjb21tYW5kcwotICAgICAgfSBlbHNlIHsKLSAgICAgICAgICB1cGxldmVsICMwIGV2YWwgJGNvbW1hbmRzCi0gICAgICB9Ci0gICB9Ci0KLSAgIHByb2MgcnVuX3Bvc3RjdHNfaG9sZCB7e2Zvcm1hdCAxfX0gewotCi0gICAgICBnbG9iYWwgdmFycwotICAgICAgZ2xvYmFsIGVudgotICAgICAgZ2xvYmFsIGVycm9ycwotCi0gICAgICBpZiB7JHZhcnMoc2tpcF9jdHMpIHx8IChbbHNlYXJjaCAkdmFycyhmaXhfaG9sZCkgcG9zdGN0c10gPCAwKSB8fCAkdmFycyhwb3N0Y3RzX3NldHVwX2hvbGQpfSB7Ci0gICAgICAgICByZXR1cm4gIiIKLSAgICAgIH0KLQotICAgICAgc2V0IHZhcnMoc3RlcCkgcG9zdGN0c19ob2xkCi0gICAgICBzZXQgY29tbWFuZHMgIiIgCi0jICAgICAgYXBwZW5kIGNvbW1hbmRzICJzZXQgdmFycyhzdGVwKSAkdmFycyhzdGVwKVxuIgotCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAjIEluaXRpYWxpemUgc3RlcCAuLi4KLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLQotICAgICAgc2V0IGNvbW1hbmQgW0ZGX05PVlVTOjppbml0aWFsaXplX3N0ZXAgcG9zdGN0c19ob2xkXQotICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRl9OT1ZVUzo6aW5zZXJ0X2NvbW1lbnRzXSAKLSAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCBwb3N0Y3RzX2hvbGQsaW5pdGlhbGl6ZV9zdGVwICRjb21tYW5kXQotCi0gICAgICBhcHBlbmQgY29tbWFuZHMgInB1dHMgXCI8RkY+IFJVTk5JTkcgUE9TVC1DVFMgSE9MRCBGSVhJTkcgLi4uXCJcbiIKLQotICAgICAgaWYgeyR2YXJzKHZlcmJvc2UpfSB7Ci0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiNcbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyBSVU5OSU5HIFBPU1QtQ1RTIEhPTEQgRklYSU5HXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiNcbiIKLSAgICAgIH0KLQotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgIyBMb2FkIHByZS1wb3N0Q1RTIGhvbGQgZmlsZSAocGx1Zy1pbikKLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLQotICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6c291cmNlX3BsdWcgcHJlX3Bvc3RjdHNfaG9sZF90Y2xdCi0KLSAgICAgIHNldCBjb21tYW5kICJvcHRfZGVzaWduIC1wb3N0X2N0cyAtaG9sZCAtcmVwb3J0X2RpciAkdmFycyhycHRfZGlyKSAtcmVwb3J0X3ByZWZpeCBwb3N0Y3RzX2hvbGRcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCBwb3N0Y3RzX2hvbGQsb3B0X2Rlc2lnbiAkY29tbWFuZF0KLQotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgIyBMb2FkIHBvc3QtcG9zdENUUyBob2xkIGZpbGUgKHBsdWctaW4pCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0KLSAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OnNvdXJjZV9wbHVnIHBvc3RfcG9zdGN0c19ob2xkX3RjbCAwXQotCi0gICAgICBpZiB7JHZhcnMoY29kZWdlbil9IHsKLSAgICAgICAgIHJldHVybiAkY29tbWFuZHMKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgdXBsZXZlbCAjMCBldmFsICRjb21tYW5kcwotICAgICAgfQotICAgfQotCi0gICBwcm9jIHJ1bl9yb3V0ZSB7e2Zvcm1hdCAxfX0gewotCi0gICAgICBnbG9iYWwgdmFycwotICAgICAgZ2xvYmFsIGVudgotICAgICAgZ2xvYmFsIGVycm9ycwotCi0gICAgICBzZXQgdmFycyhzdGVwKSByb3V0ZQotICAgICAgc2V0IGNvbW1hbmRzICIiCi0jICAgICAgYXBwZW5kIGNvbW1hbmRzICJzZXQgdmFycyhzdGVwKSAkdmFycyhzdGVwKVxuIgotCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAjIEluaXRpYWxpemUgc3RlcCAuLi4KLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLQotICAgICAgc2V0IGNvbW1hbmQgW0ZGX05PVlVTOjppbml0aWFsaXplX3N0ZXAgcm91dGVdCi0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGX05PVlVTOjppbnNlcnRfY29tbWVudHNdIAotICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kIHJvdXRlLGluaXRpYWxpemVfc3RlcCAkY29tbWFuZF0KLSAgICAgIHNldCBjb21tYW5kIFtGRl9OT1ZVUzo6YWRkX2ZpbGxlcl9jZWxsc10KLSAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCByb3V0ZSxhZGRfZmlsbGVyX2NlbGxzICRjb21tYW5kXQotCi0gICAgICBhcHBlbmQgY29tbWFuZHMgInB1dHMgXCI8RkY+IFJVTk5JTkcgR0xPQkFML0RFVEFJTCBST1VUSU5HIC4uLlwiXG4iCi0KLSAgICAgIGlmIHskdmFycyh2ZXJib3NlKX0gewotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgUlVOTklORyBHTE9CQUwvREVUQUlMIFJPVVRJTkdcbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiI1xuIgotICAgICAgfQotCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAjIExvYWQgb3B0aW9uYWwgcHJlIHJvdXRlIGZpbGUgKHBsdWctaW4pCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0KLSAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OnNvdXJjZV9wbHVnIHByZV9yb3V0ZV90Y2xdCi0KLSAgICAgIHNldCBjb21tYW5kIFtGRl9OT1ZVUzo6cm91dGVfc2Vjb25kYXJ5X3BnX25ldHNdCi0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgcm91dGUscm91dGVfc2Vjb25kYXJ5X3BnX25ldHMgJGNvbW1hbmRdCi0KLSAgICAgIHNldCBjb21tYW5kICJjaGVja19wbGFjZSAkdmFycyhycHRfZGlyKS8kdmFycyhzdGVwKSxjaGVja19wbGFjZS5ycHRcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCByb3V0ZSxjaGVja19wbGFjZSAkY29tbWFuZF0KLQotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgIyBSb3V0ZSB0aGUgZGVzaWduCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0KLSAgICAgIHNldCBjb21tYW5kICIiCi0gICAgICBzZXQgYXJncyAiIgotICAgICAgaWYgeygkdmFycyhlbmFibGVfb2N2KSA9PSAicHJlX3Bvc3Ryb3V0ZSIpIHx8ICgkdmFycyhlbmFibGVfb2N2KSA9PSAicHJlX3Bvc3RjdHMiKX0gewotIyAgICAgICAgIGlmIHskdmFycyhmbG93KSAhPSAiZGVmYXVsdCJ9IHsKLSAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMoZW5hYmxlX29jdilcbiIKLSAgICAgICAgICAgIGFwcGVuZCBhcmdzICJzZXRfZGIgdGltaW5nX2FuYWx5c2lzX3R5cGUgb2N2XG4iCi0jICAgICAgICAgfQotICAgICAgICAgaWYgeyR2YXJzKGVuYWJsZV9hb2N2KX0gewotICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhlbmFibGVfYW9jdilcbiIKLSAgICAgICAgICAgIGFwcGVuZCBhcmdzICJzZXRfZGIgdGltaW5nX2FuYWx5c2lzX2FvY3YgdHJ1ZVxuIgotICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKGVuYWJsZV9hb2N2KVxuIgotICAgICAgICAgfQotICAgICAgfSBlbHNlIHsKLSAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKGVuYWJsZV9vY3YpIFwicHJlX3Bvc3Ryb3V0ZVwiXG4iCi0gICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhlbmFibGVfYW9jdikgXCJ0cnVlXCJcbiIKLSAgICAgIH0KLSAgICAgIGlmIHskYXJncyAhPSAiIn0gewotICAgICAgICAgc2V0IGNvbW1hbmQgIiRhcmdzXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgcm91dGUsc2V0X2FuYWx5c2lzX21vZGUgJGNvbW1hbmRdCi0gICAgICB9Ci0KLSAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhwb3N0cm91dGVfc3ByZWFkX3dpcmVzKV0gJiYgISR2YXJzKHBvc3Ryb3V0ZV9zcHJlYWRfd2lyZXMpfSB7Ci0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgInNldF9kYiByb3V0ZV9kZXNpZ25fZGV0YWlsX3Bvc3Rfcm91dGVfc3ByZWFkX3dpcmUgZmFsc2VcbiIKLSAgICAgIH0KLQotICAgICAgc2V0IGNvbW1hbmQgInJvdXRlX2Rlc2lnbiIKLSAgICAgIGlmIHskdmFycyh0cmFja19vcHQpfSB7Ci0gICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKHRyYWNrX29wdClcbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgLXRyYWNrX29wdCIKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyh0cmFja19vcHQpXG4iCi0gICAgICB9Ci0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgcm91dGUscm91dGVfZGVzaWduICIkY29tbWFuZFxuIl0KLQotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgIyBSdW4gY2tFQ08gaWYgcmVxdWVzdGVkCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0KLSAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhjbG9ja19lY28pXSAmJiAoKCR2YXJzKGNsb2NrX2VjbykgPT0gInBvc3Rfcm91dGUiKSB8fCAoJHZhcnMoY2xvY2tfZWNvKSA9PSAiYm90aCIpKX0gewotICAgICAgICAgc2V0IGNvbW1hbmQgW0ZGX05PVlVTOjpydW5fY2xvY2tfZWNvIHBvc3Rfcm91dGVdCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgcm91dGUscnVuX2Nsb2NrX2VjbyAkY29tbWFuZF0KLSAgICAgIH0KLQotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgIyBPcHRpb25hbGx5IHJ1biB3aXJlIHNwcmVhZGluZwotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCi0gICAgICBpZiB7W3JlZ3N1YiAibm0iICR2YXJzKHByb2Nlc3MpICIiXSA+PSAxNn0gewotICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMocG9zdHJvdXRlX3NwcmVhZF93aXJlcyldICYmICR2YXJzKHBvc3Ryb3V0ZV9zcHJlYWRfd2lyZXMpfSB7Ci0gICAgICAgICAgc2V0IGNvbW1hbmQgInNldF9kYiByb3V0ZV9kZXNpZ25fZGV0YWlsX3Bvc3Rfcm91dGVfc3ByZWFkX3dpcmUgdHJ1ZVxuc2V0X2RiIHJvdXRlX3dpdGhfdGltaW5nX2RyaXZlbiBmYWxzZVxuIgotICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJyb3V0ZURlc2lnbiAtd2lyZU9wdFxuIgotICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJzZXRfZGIgcm91dGVfZGVzaWduX2RldGFpbF9wb3N0X3JvdXRlX3NwcmVhZF93aXJlIGZhbHNlXG4iCi0gICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kIHJvdXRlLHNwcmVhZF93aXJlcyAkY29tbWFuZF0KLSAgICAgICAgfQotICAgICAgfQotCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAjIE9wdGlvbmFsbHkgcnVuIExQQQotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCi0gICAgICBpZiB7JHZhcnModmVyaWZ5X2xpdGhvKX0gewotICAgICAgICAgZmlsZSBta2RpciAkdmFycyhycHRfZGlyKS9MUEEvRE1DCi0gICAgICAgICBzZXQgY29tbWFuZCAiY2hlY2tfbGl0aG8gLXJvdXRpbmdfbGF5ZXJzX29ubHkgLXRlY2hGaWxlICR2YXJzKGxwYV90ZWNoX2ZpbGUpIC1kaXIgJHZhcnMocnB0X2RpcikvTFBBXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZCAidmlvbGF0aW9uQnJvd3NlciAtYWxsIC1ub19kaXNwbGF5X2ZhbHNlXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZCAibG9hZFZpb2xhdGlvblJlcG9ydCAtdHlwZSBDRE5MaXRobyAtZmlsZW5hbWUgJHZhcnMocnB0X2RpcikvTFBBL0RNQy9tZXJnZWQuaGlmXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgcm91dGUsdmVyaWZ5X2xpdGhvICRjb21tYW5kXQotICAgICAgfQotCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAjIFNldCBleHRyYWN0aW9uIG1vZGUgdG8gcG9zdHJvdXRlCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICBzZXQgY29tbWFuZCAic2V0X2RiIGV4dHJhY3RfcmNfZW5naW5lIHBvc3Rfcm91dGVcbiIKLSAgICAgIGlmIHshW2NhdGNoIHtzZXQgYXJnICR2YXJzKHBvc3Ryb3V0ZV9leHRyYWN0aW9uX2VmZm9ydCl9XX0gewotICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhwb3N0cm91dGVfZXh0cmFjdGlvbl9lZmZvcnQpXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZCAic2V0X2RiIGV4dHJhY3RfcmNfZWZmb3J0X2xldmVsICRhcmdcbiIKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhwb3N0cm91dGVfZXh0cmFjdGlvbl9lZmZvcnQpXG4iCi0gICAgICB9Ci0gICAgICBpZiB7IVtjYXRjaCB7c2V0IGFyZyAkdmFycyh0b3RhbF9jX3RocmVzaCl9XX0gewotICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyh0b3RhbF9jX3RocmVzaClcbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kICJzZXRfZGIgZXh0cmFjdF9yY190b3RhbF9jYXBfdGhyZXNob2xkICRhcmdcbiIKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyh0b3RhbF9jX3RocmVzaClcbiIKLSAgICAgIH0KLSAgICAgIGlmIHshW2NhdGNoIHtzZXQgYXJnICR2YXJzKHJlbGF0aXZlX2NfdGhyZXNoKX1dfSB7Ci0gICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKHJlbGF0aXZlX2NfdGhyZXNoKVxuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmQgInNldF9kYiBleHRyYWN0X3JjX3JlbGF0aXZlX2NhcF90aHJlc2hvbGQgJGFyZ1xuIgotICAgICAgfSBlbHNlIHsKLSAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKHJlbGF0aXZlX2NfdGhyZXNoKVxuIgotICAgICAgfQotICAgICAgaWYgeyFbY2F0Y2gge3NldCBhcmcgJHZhcnMoY291cGxpbmdfY190aHJlc2gpfV19IHsKLSAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMoY291cGxpbmdfY190aHJlc2gpXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZCAic2V0X2RiIGV4dHJhY3RfcmNfY291cGxpbmdfY2FwX3RocmVzaG9sZCAkYXJnXG4iCi0gICAgICB9IGVsc2UgewotICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMocmVsYXRpdmVfY190aHJlc2gpXG4iCi0gICAgICB9Ci0gICAgICBpZiB7IVtjYXRjaCB7c2V0IGFyZyAkdmFycyhxcmNfbGF5ZXJfbWFwKX1dfSB7Ci0gICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKHFyY19sYXllcl9tYXApXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZCAic2V0X2RiIGV4dHJhY3RfcmNfbGVmX3RlY2hfZmlsZV9tYXAgJGFyZyIKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhxcmNfbGF5ZXJfbWFwKVxuIgotICAgICAgfQotICAgICAgYXBwZW5kIGNvbW1hbmQgIlxuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kIHJvdXRlLHNldF9leHRyYWN0X3JjX21vZGUgJGNvbW1hbmRdCi0KLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICMgTG9hZCBvcHRpb25hbCBwb3N0IHJvdXRlIGZpbGUgKHBsdWctaW4pCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0KLSAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OnNvdXJjZV9wbHVnIHBvc3Rfcm91dGVfdGNsIDBdCi0KLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICMgVXBkYXRlIHRvIE1NTUMgaWYgZmxvdyBpcyAicHJfbW1tYyIKLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLQotICAgICAgaWYgeyR2YXJzKGZsb3cpICE9ICJkZWZhdWx0In0gewotICAgICAgICAgaWYgeyR2YXJzKGZsb3cpID09ICJwcl9tbW1jIn0gewotICAgICAgICAgICAgc2V0IGNvbW1hbmQgW0ZGX05PVlVTOjppbml0aWFsaXplX3RpbWluZyBtbW1jXQotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kIHJvdXRlLGluaXRpYWxpemVfdGltaW5nICRjb21tYW5kXQotICAgICAgICAgfQotICAgICAgfQotCi0gICAgICBpZiB7IVtpbmZvIGV4aXN0cyB2YXJzKHRpbWVfZGVzaWduX29wdGlvbnMsc2V0dXApXX0gewotICAgICAgICAgc2V0IGNvbW1hbmQgInRpbWVfZGVzaWduIC1wb3N0X3JvdXRlIC1yZXBvcnRfcHJlZml4IHJvdXRlIC1yZXBvcnRfZGlyICR2YXJzKHJwdF9kaXIpXG4iCi0gICAgICB9IGVsc2UgewotICAgICAgICAgc2V0IGNvbW1hbmQgW2Zvcm1hdCAidGltZV9kZXNpZ24gLXBvc3Rfcm91dGUgLXJlcG9ydF9wcmVmaXggcm91dGUgLXJlcG9ydF9kaXIgJHZhcnMocnB0X2RpcikgJXNcbiIgJHZhcnModGltZV9kZXNpZ25fb3B0aW9ucyxzZXR1cCldCi0gICAgICB9Ci0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgcm91dGUsdGltZV9kZXNpZ24gJGNvbW1hbmRdCi0KLSAgICAgIGlmIHskdmFycyhjb2RlZ2VuKX0gewotICAgICAgICAgcmV0dXJuICRjb21tYW5kcwotICAgICAgfSBlbHNlIHsKLSAgICAgICAgICB1cGxldmVsICMwIGV2YWwgJGNvbW1hbmRzCi0gICAgICB9Ci0gICB9Ci0KLSAgIHByb2MgcnVuX3Bvc3Ryb3V0ZSB7e2Zvcm1hdCAxfX0gewotCi0gICAgICBnbG9iYWwgdmFycwotICAgICAgZ2xvYmFsIGVudgotICAgICAgZ2xvYmFsIGVycm9ycwotCi0gICAgICBzZXQgdmFycyhzdGVwKSBwb3N0cm91dGUKLSAgICAgIHNldCBjb21tYW5kcyAgIiIKLSMgICAgICBhcHBlbmQgY29tbWFuZHMgInNldCB2YXJzKHN0ZXApICR2YXJzKHN0ZXApXG4iCi0KLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICMgSW5pdGlhbGl6ZSBzdGVwIC4uLgotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCi0gICAgICBzZXQgY29tbWFuZCBbRkZfTk9WVVM6OmluaXRpYWxpemVfc3RlcCBwb3N0cm91dGVdCi0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGX05PVlVTOjppbnNlcnRfY29tbWVudHNdIAotICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kIHBvc3Ryb3V0ZSxpbml0aWFsaXplX3N0ZXAgJGNvbW1hbmRdCi0KLSAgICAgIGlmIHskdmFycyhtZXRhbGZpbGwpID09ICJwcmVfcG9zdHJvdXRlIn0gewotICAgICAgICAgc2V0IGNvbW1hbmQgW0ZGOjpzb3VyY2VfcGx1ZyBtZXRhbGZpbGxfdGNsXQotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kIHBvc3Ryb3V0ZSxhZGRfbWV0YWxmaWxsICRjb21tYW5kXQotICAgICAgfQotCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAjIFJ1biBja0VDTyBpZiByZXF1ZXN0ZWQKLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLQotICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGNsb2NrX2VjbyldICYmICgoJHZhcnMoY2xvY2tfZWNvKSA9PSAicG9zdF9yb3V0ZSIpIHx8ICgkdmFycyhjbG9ja19lY28pID09ICJib3RoIikpfSB7Ci0gICAgICAgICBzZXQgY29tbWFuZCBbRkZfTk9WVVM6OnJ1bl9jbG9ja19lY28gcG9zdF9yb3V0ZV0KLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAicHV0cyBcIjxGRj4gUlVOTklORyBQT1NULVJPVVRFIENMT0NLIEVDTyAuLi5cIlxuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kIHJvdXRlLHJ1bl9jbG9ja19lY28gJGNvbW1hbmRdCi0gICAgICB9Ci0KLSAgICAgIGFwcGVuZCBjb21tYW5kcyAicHV0cyBcIjxGRj4gUlVOTklORyBQT1NULVJPVVRFIE9QVElNSVpBVElPTiAuLi5cIlxuIgotCi0gICAgICBpZiB7JHZhcnModmVyYm9zZSl9IHsKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiI1xuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjIFJVTk5JTkcgUE9TVC1ST1VURSBPUFRJTUlaQVRJT05cbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiI1xuIgotICAgICAgfQotCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAjIExvYWQgb3B0aW9uYWwgcHJlIHBvc3Ryb3V0ZSBmaWxlIChwbHVnLWluKQotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCi0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjpzb3VyY2VfcGx1ZyBwcmVfcG9zdHJvdXRlX3RjbF0KLSAgICAgIGlmIHskdmFycyhoaWdoX3RpbWluZ19lZmZvcnQpICYmIFtyZWdleHAgIjkuMSIgJHZhcnModmVyc2lvbildfSB7Ci0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIm9wdF9sZWFrYWdlX3Bvd2VyIC1maXhfdGltaW5nX29ubHlcbiIKLSAgICAgIH0KLSAgICAgIGlmIHskdmFycyhwb3N0cm91dGVfc2V0dXBfaG9sZCl9IHsKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OnNvdXJjZV9wbHVnIHByZV9wb3N0cm91dGVfaG9sZF90Y2xdCi0gICAgICAgICBzZXQgY29tbWFuZCAib3B0X2Rlc2lnbiAtcG9zdF9yb3V0ZSAtcmVwb3J0X2RpciAkdmFycyhycHRfZGlyKSAtcmVwb3J0X3ByZWZpeCBwb3N0cm91dGUgLXNldHVwIC1ob2xkXG4iCi0gICAgICB9IGVsc2UgewotICAgICAgICAgc2V0IGNvbW1hbmQgIm9wdF9kZXNpZ24gLXBvc3Rfcm91dGUgLXJlcG9ydF9kaXIgJHZhcnMocnB0X2RpcikgLXJlcG9ydF9wcmVmaXggcG9zdHJvdXRlXG4iCi0gICAgICB9Ci0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgcG9zdHJvdXRlLG9wdF9kZXNpZ24gJGNvbW1hbmRdCi0KLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICMgVHJpbSBtZXRhbCBmaWxsIGlmIGFkZGVkCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0KLSAgICAgIGlmIHskdmFycyhtZXRhbGZpbGwpID09ICJwcmVfcG9zdHJvdXRlIn0gewotICAgICAgICAgc2V0IGNvbW1hbmQgInRyaW1fbWV0YWxfZmlsbFxuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kIHBvc3Ryb3V0ZSx0cmltX21ldGFsX2ZpbGwgJGNvbW1hbmRdCi0gICAgICB9Ci0KLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICMgT3B0aW9uYWxseSBydW4gTFBBCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0KLSAgICAgIGlmIHskdmFycyh2ZXJpZnlfbGl0aG8pfSB7Ci0gICAgICAgICAjIEJDTDogQWRkZWQgc3Vic3QgdG8gaGFuZGxlIGRlcmVyZW5jaW5nIHZhcmlhYmxlcwotICAgICAgICAgZmlsZSBta2RpciBbc3Vic3QgJHZhcnMocnB0X2RpcildL0xQQS9ETUMKLSAgICAgICAgIHNldCBjb21tYW5kICJ2ZXJpZnlMaXRobyAtcm91dGluZ0xheWVyc09ubHkgLXRlY2hGaWxlICR2YXJzKGxwYV90ZWNoX2ZpbGUpIC1kaXIgJHZhcnMocnB0X2RpcikvTFBBXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZCAidmlvbGF0aW9uQnJvd3NlciAtYWxsIC1ub19kaXNwbGF5X2ZhbHNlXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZCAibG9hZFZpb2xhdGlvblJlcG9ydCAtdHlwZSBDRE5MaXRobyAtZmlsZW5hbWUgJHZhcnMocnB0X2RpcikvTFBBL0RNQy9tZXJnZWQuaGlmXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgcG9zdHJvdXRlLHZlcmlmeV9saXRobyAkY29tbWFuZF0KLSAgICAgIH0KLQotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgIyBMb2FkIG9wdGlvbmFsIHBvc3QgcG9zdFJvdXRlIGZpbGUgKHBsdWctaW4pCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0KLSAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OnNvdXJjZV9wbHVnIHBvc3RfcG9zdHJvdXRlX3RjbCAwXQotICAgICAgaWYgeyR2YXJzKHBvc3Ryb3V0ZV9zZXR1cF9ob2xkKX0gewotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6c291cmNlX3BsdWcgcG9zdF9wb3N0cm91dGVfaG9sZF90Y2xdCi0gICAgICB9Ci0gCi0gICAgICBpZiB7JHZhcnMoY29kZWdlbil9IHsKLSAgICAgICAgIHJldHVybiAkY29tbWFuZHMKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgdXBsZXZlbCAjMCBldmFsICRjb21tYW5kcwotICAgICAgfQotICAgfQotCi0gICBwcm9jIHJ1bl9wb3N0cm91dGVfaG9sZCB7e2Zvcm1hdCAxfX0gewotCi0gICAgICBnbG9iYWwgdmFycwotICAgICAgZ2xvYmFsIGVudgotICAgICAgZ2xvYmFsIGVycm9ycwotCi0gICAgICBpZiB7W2xzZWFyY2ggJHZhcnMoZml4X2hvbGQpIHBvc3Ryb3V0ZV0gPCAwfSB7Ci0gICAgICAgICByZXR1cm4gIiIKLSAgICAgIH0KLQotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgIyBJbml0aWFsaXplIHN0ZXAgLi4uCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0KLSAgICAgIHNldCB2YXJzKHN0ZXApIHBvc3Ryb3V0ZV9ob2xkCi0gICAgICBzZXQgY29tbWFuZHMgIiIKLSMgICAgICBhcHBlbmQgY29tbWFuZHMgInNldCB2YXJzKHN0ZXApICR2YXJzKHN0ZXApXG4iCi0KLSAgICAgIHNldCBjb21tYW5kIFtGRl9OT1ZVUzo6aW5pdGlhbGl6ZV9zdGVwIHBvc3Ryb3V0ZV9ob2xkXQotICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRl9OT1ZVUzo6aW5zZXJ0X2NvbW1lbnRzXSAKLSAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCBwb3N0cm91dGVfaG9sZCxpbml0aWFsaXplX3N0ZXAgJGNvbW1hbmRdCi0KLSAgICAgIGFwcGVuZCBjb21tYW5kcyAicHV0cyBcIjxGRj4gUlVOTklORyBQT1NULVJPVVRFIEhPTEQgRklYSU5HIC4uLlwiXG4iCi0KLSAgICAgIGlmIHskdmFycyh2ZXJib3NlKX0gewotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgUlVOTklORyBQT1NULVJPVVRFIEhPTEQgRklYSU5HXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiNcbiIKLSAgICAgIH0KLQotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgIyBMb2FkIG9wdGlvbmFsIHByZSBwb3N0Um91dGUgaG9sZCBmaWxlIChwbHVnLWluKQotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCi0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjpzb3VyY2VfcGx1ZyBwcmVfcG9zdHJvdXRlX2hvbGRfdGNsXQotICAgICAgc2V0IGNvbW1hbmQgIm9wdF9kZXNpZ24gLXBvc3Rfcm91dGUgLWhvbGQiCi0gICAgICBhcHBlbmQgY29tbWFuZCAiIC1yZXBvcnRfZGlyICR2YXJzKHJwdF9kaXIpIC1yZXBvcnRfcHJlZml4IHBvc3Ryb3V0ZV9ob2xkXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgcG9zdHJvdXRlX2hvbGQsb3B0X2Rlc2lnbiAkY29tbWFuZF0KLQotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgIyBUcmltIG1ldGFsIGZpbGwgaWYgYWRkZWQKLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLQotICAgICAgaWYgeyR2YXJzKG1ldGFsZmlsbCkgPT0gInByZV9wb3N0cm91dGUifSB7Ci0gICAgICAgICBzZXQgY29tbWFuZCAidHJpbV9tZXRhbF9maWxsXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgcG9zdHJvdXRlX2hvbGQsdHJpbV9tZXRhbF9maWxsICRjb21tYW5kXQotICAgICAgfQotCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAjIE9wdGlvbmFsbHkgcnVuIExQQQotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCi0gICAgICBpZiB7JHZhcnModmVyaWZ5X2xpdGhvKX0gewotICAgICAgICAgIyBCQ0w6IEFkZGVkIHN1YnN0IHRvIGhhbmRsZSBkZXJlcmVuY2luZyB2YXJpYWJsZXMKLSAgICAgICAgIGZpbGUgbWtkaXIgIFtzdWJzdCAkdmFycyhycHRfZGlyKV0vTFBBL0RNQwotICAgICAgICAgc2V0IGNvbW1hbmQgInZlcmlmeUxpdGhvIC1yb3V0aW5nTGF5ZXJzT25seSAtdGVjaEZpbGUgJHZhcnMobHBhX3RlY2hfZmlsZSkgLWRpciAkdmFycyhycHRfZGlyKS9MUEFcbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kICJ2aW9sYXRpb25Ccm93c2VyIC1hbGwgLW5vX2Rpc3BsYXlfZmFsc2VcbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kICJsb2FkVmlvbGF0aW9uUmVwb3J0IC10eXBlIENETkxpdGhvIC1maWxlbmFtZSAkdmFycyhycHRfZGlyKS9MUEEvRE1DL21lcmdlZC5oaWZcbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCBwb3N0cm91dGVfaG9sZCx2ZXJpZnlfbGl0aG8gJGNvbW1hbmRdCi0gICAgICB9Ci0KLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICMgTG9hZCBvcHRpb25hbCBwb3N0IHBvc3RSb3V0ZSBob2xkIGZpbGUgKHBsdWctaW4pCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0KLSAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OnNvdXJjZV9wbHVnIHBvc3RfcG9zdHJvdXRlX2hvbGRfdGNsIDBdCi0KLSAgICAgIGlmIHskdmFycyhjb2RlZ2VuKX0gewotICAgICAgICAgcmV0dXJuICRjb21tYW5kcwotICAgICAgfSBlbHNlIHsKLSAgICAgICAgICB1cGxldmVsICMwIGV2YWwgJGNvbW1hbmRzCi0gICAgICB9Ci0gICB9Ci0KLSAgIHByb2MgcnVuX3NpZ25vZmYge3tmb3JtYXQgMX19IHsKLQotICAgICAgZ2xvYmFsIHZhcnMKLSAgICAgIGdsb2JhbCBlbnYKLSAgICAgIGdsb2JhbCBlcnJvcnMKLSAgICAgIGdsb2JhbCBlbnYKLQotICAgICAgaWYgeyR2YXJzKHN0ZXApICE9ICJhc3NlbWJsZSJ9IHsKLSAgICAgICAgIHNldCB2YXJzKHN0ZXApIHNpZ25vZmYKLSAgICAgIH0KLSAgICAgIHNldCBjb21tYW5kcyAiIgotCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAjIE9wdGlvbmFsbHkgdmVyaWZ5L2ZpeCBsaXRobwotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgaWYgeyR2YXJzKGZpeF9saXRobyl9IHsKLSAgICAgICAgICMgQkNMOiBBZGRlZCBzdWJzdCB0byBoYW5kbGUgZGVyZXJlbmNpbmcgdmFyaWFibGVzCi0gICAgICAgICBmaWxlIG1rZGlyICBbc3Vic3QgJHZhcnMocnB0X2RpcildL0xQQS9ETUMKLSAgICAgICAgIHNldCBjb21tYW5kICJsb2FkVmlvbGF0aW9uUmVwb3J0IC10eXBlIENETkxpdGhvIC1maWxlbmFtZSAkdmFycyhycHRfZGlyKS9MUEEvRE1DL21lcmdlZC5oaWZcbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kICJzZXROYW5vUm91dGVNb2RlIC1kcm91dGVQb3N0Um91dGVMaXRob1JlcGFpciB0cnVlIFxcXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZCAiICAgICAgICAgICAgICAgICAtZHJvdXRlTWluaW1pemVUb3BvbG9neUNoYW5nZSB0cnVlXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZCAiZ2xvYmFsRGV0YWlsUm91dGVcbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kICJ3cml0ZUhpZiAtZmlsZSAkdmFycyhycHRfZGlyKS9MUEEvaW5jcl92ZXJpZnkuaGlmXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZCAidmVyaWZ5TGl0aG8gLXNpZ25PZmYgXFxcbiIgCi0gICAgICAgICBhcHBlbmQgY29tbWFuZCAiICAgICAgICAgICAgLWRpciAkdmFycyhkYnNfZGlyKS9MUEEyIFxcXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZCAiICAgICAgICAgICAgLWNwdSAkdmFycyhsb2NhbF9jcHVzKSBcXFxuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAgICAgICAgICAgIC1jb25maWcgJHZhcnMobHBhX2NvbmZfZmlsZSkgXFxcbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgICAgICAgICAgICAtaW5jckNoZWNrICR2YXJzKHJwdF9kaXIpL0xQQS9pbmNyX3ZlcmlmeS5oaWZcbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kICJ2aW9sYXRpb25Ccm93c2VyIC1hbGwgLW5vX2Rpc3BsYXlfZmFsc2VcbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kICJsb2FkVmlvbGF0aW9uUmVwb3J0IC10eXBlIENETkxpdGhvIC1maWxlbmFtZSAkdmFycyhycHRfZGlyKS9MUEEyL0RNQy9tZXJnZWQuaGlmXG4iCi0KLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCBzaWdub2ZmLGZpeF9saXRobyAkY29tbWFuZF0KLSAgICAgIH0KLQotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgIyBMb2FkIG9wdGlvbmFsIG1ldGFsZmlsbCBwbHVnLWluCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICBpZiB7JHZhcnMobWV0YWxmaWxsKSA9PSAicHJlX3NpZ25vZmYifSB7Ci0gICAgICAgICBzZXQgY29tbWFuZCBbRkY6OnNvdXJjZV9wbHVnIG1ldGFsZmlsbF90Y2xdCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgc2lnbm9mZixhZGRfbWV0YWxmaWxsICRjb21tYW5kXQotICAgICAgfQotCi0gICAgICBzZXQgY29tbWFuZCBbRkZfTk9WVVM6OmluaXRpYWxpemVfc3RlcCBzaWdub2ZmXQotICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRl9OT1ZVUzo6aW5zZXJ0X2NvbW1lbnRzXSAKLSMgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgc2lnbm9mZixpbml0aWFsaXplX3N0ZXAgJGNvbW1hbmRdCi0gICAgICBhcHBlbmQgY29tbWFuZHMgJGNvbW1hbmQKLQotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgIyBMb2FkIG9wdGlvbmFsIHByZSBzaWdub2ZmIGZpbGUgKHBsdWctaW4pCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjpzb3VyY2VfcGx1ZyBwcmVfc2lnbm9mZl90Y2xdCi0KLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICMgUnVuIFJDIEV4dHJhY3Rpb24KLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLQotICAgICAgYXBwZW5kIGNvbW1hbmRzICJwdXRzIFwiPEZGPiBSVU5OSU5HIEZJTkFMIFNJR05PRkYgLi4uXCJcbiIKLQotICAgICAgaWYgeyR2YXJzKHZlcmJvc2UpfSB7Ci0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiNcbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyBSVU5OSU5HIEZJTkFMIFNJR05PRkZcbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiI1xuIgotICAgICAgfQotCi0gICAgICBzZXQgY29tbWFuZCAiZXh0cmFjdF9yY1xuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kIHNpZ25vZmYsZXh0cmFjdF9yYyAkY29tbWFuZF0KLQotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgIyBEdW1wIFNQRUYgZm9yIHNpZ25vZmYgU1RBCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0KLSAgICAgIGlmIHskdmFycyhza2lwX3NpZ25vZmZfY2hlY2tzKX0gewotICAgICAgICAgc2V0IGNvbW1hbmQgIiIKLSAgICAgICAgIGZvcmVhY2ggY29ybmVyICR2YXJzKHJjX2Nvcm5lcnMpIHsKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kICJ3cml0ZV9wYXJhc2l0aWNzIC1yY19jb3JuZXIgJGNvcm5lciAtc3BlZl9maWxlICRjb3JuZXIuc3BlZi5nelxuIgotICAgICAgICAgfQotICAgICAgfSBlbHNlIHsKLSAgICAgICAgIHNldCBjb21tYW5kICJmb3JlYWNoIGNvcm5lciBcJHZhcnMoYWN0aXZlX3JjX2Nvcm5lcnMpIHtcbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgICB3cml0ZV9wYXJhc2l0aWNzIC1yY19jb3JuZXIgXCRjb3JuZXIgLXNwZWZfZmlsZSBcJGNvcm5lci5zcGVmLmd6XG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZCAifVxuIgotICAgICAgfSAKLSAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCBzaWdub2ZmLGR1bXBfc3BlZiAkY29tbWFuZF0KLQotICAgICAgaWYgeyR2YXJzKHN0ZXApID09ICJhc3NlbWJsZSIgJiYKLSAgICAgICAgICBbaW5mbyBleGlzdHMgdmFycyhlbmFibGVfc2lnbm9mZl9lY28pXSAmJiAkdmFycyhlbmFibGVfc2lnbm9mZl9lY28pfSB7Ci0gICAgICAgICBzZXQgY29tbWFuZCAidGltZV9zaWdub2ZmIC1yZXBvcnRfb25seSAtbm9fZWNvX2RiXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgc2lnbm9mZix0aW1lX3NpZ25vZmYgJGNvbW1hbmRdICAgICAgICAgCi0gICAgICB9IGVsc2UgewotICAgICAgICAgaWYgeyR2YXJzKGVuYWJsZV9zaV9hd2FyZSl9IHsKLSAgICAgICAgICAgIGlmIHshW2luZm8gZXhpc3RzIHZhcnModGltZV9kZXNpZ25fb3B0aW9ucyxzZXR1cCldfSB7Ci0gICAgICAgICAgICAgICBzZXQgY29tbWFuZCAidGltZV9kZXNpZ24gLXJlcG9ydF9wcmVmaXggc2lnbm9mZiAtc2lnbl9vZmYgLXJlcG9ydF9vbmx5IC1yZXBvcnRfZGlyICR2YXJzKHJwdF9kaXIpXG4iCi0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgW2Zvcm1hdCAidGltZV9kZXNpZ24gLXJlcG9ydF9wcmVmaXggc2lnbm9mZiAtc2lnbl9vZmYgLXJlcG9ydF9vbmx5IC1yZXBvcnRfZGlyICR2YXJzKHJwdF9kaXIpICVzXG4iICR2YXJzKHRpbWVfZGVzaWduX29wdGlvbnMsc2V0dXApXQotICAgICAgICAgICAgfQotICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIGlmIHshW2luZm8gZXhpc3RzIHZhcnModGltZV9kZXNpZ25fb3B0aW9ucyxzZXR1cCldfSB7Ci0gICAgICAgICAgICAgICBzZXQgY29tbWFuZCAidGltZV9kZXNpZ24gLXJlcG9ydF9wcmVmaXggc2lnbm9mZiAtc2lnbl9vZmYgLXNpIC1yZXBvcnRfb25seSAtcmVwb3J0X2RpciAkdmFycyhycHRfZGlyKVxuIgotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIHNldCBjb21tYW5kIFtmb3JtYXQgInRpbWVfZGVzaWduIC1yZXBvcnRfcHJlZml4IHNpZ25fb2ZmIC1zaWdub2ZmIC1zaSAtcmVwb3J0X29ubHkgLXJlcG9ydF9kaXIgJHZhcnMocnB0X2RpcikgJXNcbiIgJHZhcnModGltZV9kZXNpZ25fb3B0aW9ucyxzZXR1cCldCi0gICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgc2lnbm9mZix0aW1lX2Rlc2lnbl9zZXR1cCAkY29tbWFuZF0KLSAgICAgICAgIGlmIHskdmFycyhlbmFibGVfc2lfYXdhcmUpfSB7Ci0gICAgICAgICAgICBpZiB7IVtpbmZvIGV4aXN0cyB2YXJzKHRpbWVfZGVzaWduX29wdGlvbnMsaG9sZCldfSB7Ci0gICAgICAgICAgICAgICBzZXQgY29tbWFuZCAidGltZV9kZXNpZ24gLXJlcG9ydF9wcmVmaXggc2lnbm9mZiAtc2lnbl9vZmYgLXJlcG9ydF9vbmx5IC1ob2xkIC1yZXBvcnRfZGlyICR2YXJzKHJwdF9kaXIpXG4iCi0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgW2Zvcm1hdCAidGltZV9kZXNpZ24gLXJlcG9ydF9wcmVmaXggc2lnbm9mZiAtc2lnbl9vZmYgLXJlcG9ydF9vbmx5IC1ob2xkIC1yZXBvcnRfZGlyICR2YXJzKHJwdF9kaXIpICVzXG4iICR2YXJzKHRpbWVfZGVzaWduX29wdGlvbnMsaG9sZCldCi0gICAgICAgICAgICB9Ci0gICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycyh0aW1lX2Rlc2lnbl9vcHRpb25zLGhvbGQpXX0gewotICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgInRpbWVfZGVzaWduIC1yZXBvcnRfcHJlZml4IHNpZ25vZmYgLXNpZ25fb2ZmIC1zaSAtcmVwb3J0X29ubHkgLWhvbGQgIC1yZXBvcnRfZGlyICR2YXJzKHJwdF9kaXIpXG4iCi0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgW2Zvcm1hdCAidGltZV9kZXNpZ24gLXJlcG9ydF9wcmVmaXggc2lnbl9vZmYgLXNpZ25vZmYgLXNpIC1yZXBvcnRfb25seSAtaG9sZCAtcmVwb3J0X2RpciAkdmFycyhycHRfZGlyKSAlc1xuIiAkdmFycyh0aW1lX2Rlc2lnbl9vcHRpb25zLGhvbGQpXQotICAgICAgICAgICAgfQotICAgICAgICAgfQotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kIHNpZ25vZmYsdGltZV9kZXNpZ25faG9sZCAkY29tbWFuZF0KLSAgICAgIH0KLQotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgIyBEdW1wIEdEUyBhbmQvb3IgT0EgZGF0YSBiYXNlCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoZ2RzX2xheWVyX21hcCldfSB7Ci0gICAgICAgICBzZXQgY29tbWFuZCAid3JpdGVfc3RyZWFtICR2YXJzKGRlc2lnbikuZ2RzLmd6IC1tYXBfZmlsZSAkdmFycyhnZHNfbGF5ZXJfbWFwKSAiCi0gICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoZ2RzX2ZpbGVzKV19IHsKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICItbWVyZ2UgeyAiCi0gICAgICAgICAgICBmb3JlYWNoIGZpbGUgJHZhcnMoZ2RzX2ZpbGVzKSB7Ci0gICAgICAgICAgICAgICBpZiB7W2ZpbGUgZXhpc3RzICRmaWxlXX0gewotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiRmaWxlICIKLSAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICBwdXRzICAiPEZGPiBXQVJOSU5HOiBHRFMgRklMRSAkZmlsZSBET0VTIE5PVCBFWElTVCAuLi4uIFNLSVBQSU5HXG4iCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAifSIKLSAgICAgICAgIH0KLSAgICAgICAgIGFwcGVuZCBjb21tYW5kICJcbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCBzaWdub2ZmLHN0cmVhbV9vdXQgJGNvbW1hbmRdCi0gICAgICB9Ci0gICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMob2FzaXNfbGF5ZXJfbWFwKV19IHsKLSAgICAgICAgIHNldCBjb21tYW5kICJ3cml0ZV9vYXNpcyAkdmFycyhkZXNpZ24pLm9hc2lzLmd6IC1tYXBfZmlsZSAkdmFycyhvYXNpc19sYXllcl9tYXApICIKLSAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhvYXNpc19maWxlcyldfSB7Ci0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiLW1lcmdlIHsgIgotICAgICAgICAgICAgZm9yZWFjaCBmaWxlICR2YXJzKG9hc2lzX2ZpbGVzKSB7Ci0gICAgICAgICAgICAgICBpZiB7W2ZpbGUgZXhpc3RzICRmaWxlXX0gewotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiRmaWxlICIKLSAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICBwdXRzICAiPEZGPiBXQVJOSU5HOiBPQVNJUyBGSUxFICRmaWxlIERPRVMgTk9UIEVYSVNUIC4uLi4gU0tJUFBJTkdcbiIKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJ9IgotICAgICAgICAgfQotICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIlxuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kIHNpZ25vZmYsb2FzaXNfb3V0ICRjb21tYW5kXQotICAgICAgfQotCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAjIER1bXAgTW9kZWwgZm9yIFRvcCBMZXZlbCAoSGllcmFyY2hpY2FsIEZsb3cgT25seSkKLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgIHNldCBwdG4gW2ZpbGUgdGFpbCBbcHdkXV0KLSAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhwYXJ0aXRpb25fbGlzdCldfSB7Ci0gICAgICAgICBpZiB7KFtsc2VhcmNoICR2YXJzKHBhcnRpdGlvbl9saXN0KSAkcHRuXSAhPSAtMSl9IHsKLSAgICAgICAgICAgIGlmIHtbc3RyaW5nIGNvbXBhcmUgLW5vY2FzZSAkdmFycyhkYnNfZm9ybWF0KSAiZmUiXT09MH0gewotICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgIndyaXRlX2lsbSAtb3B0X3N0YWdlIHBvc3RjdHMgLXR5cGVfZmxleF9pbG0gaWxtIC10b19kaXIgXFtnZXRfZGIgZGVzaWducyAubmFtZVxdLmlsbVxuIgotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIGlmIHtbbGluZGV4IFtzcGxpdCAkdmFycyh2ZXJzaW9uKSAiLiJdICAwXSA+IDEwfSB7Ci0gICAgICAgICAgICAgICAgICBzZXQgY29tbWFuZCAid3JpdGVfaWxtIC1vcHRfc3RhZ2UgcG9zdGN0cyAtdHlwZV9mbGV4X2lsbSBpbG0gLW9hX2NlbGx2aWV3IHskdmFycyhvYV9wYXJ0aXRpb25fbGliKSBcW2dldF9kYiBkZXNpZ25zIC5uYW1lXF0gaWxtfVxuIgotICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgIHNldCBjb21tYW5kICJ3cml0ZV9pbG0gLW9wdF9zdGFnZSBwb3N0Y3RzIC10eXBlX2ZsZXhfaWxtIGlsbSAtdG9fZGlyIFxbZ2V0X2RiIGRlc2lnbnMgLm5hbWVcXS5pbG1cbiIKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0gCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgc2lnbm9mZix3cml0ZV9pbG0gJGNvbW1hbmRdCi0gICAgICAgICB9IGVsc2VpZiB7JHZhcnMoc3RlcCkgIT0gImFzc2VtYmxlIn0gewotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kIHNpZ25vZmYsdW5mbGF0dGVuX2lsbSAidW5mbGF0dGVuX2lsbVxuIl0KLSAgICAgICAgIH0KLSAgICAgIH0KLQotICAgICAgaWYgeyR2YXJzKHZlcmJvc2UpfSB7Ci0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiNcbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyBSVU5OSU5HIFZFUklGWSBDT01NQU5EU1xuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjXG4iCi0gICAgICB9Ci0KLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICMgUnVuIHZlcmlmeSBjb21tYW5kcwotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgaWYgeyEoW2luZm8gZXhpc3RzIHZhcnMoZW5hYmxlX3NpZ25vZmZfZWNvKV0gJiYgJHZhcnMoZW5hYmxlX3NpZ25vZmZfZWNvKSl9IHsKLSAgICAgICAgIHNldCBjb21tYW5kICJyZXBvcnRfc3VtbWFyeSAtb3V0X2RpciAkdmFycyhycHRfZGlyKVxuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kIHNpZ25vZmYscmVwb3J0X3N1bW1hcnkgJGNvbW1hbmRdCi0gICAgICB9Ci0gICAgICBzZXQgY29tbWFuZCAiY2hlY2tfY29ubmVjdGl2aXR5XG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgc2lnbm9mZixjaGVja19jb25uZWN0aXZpdHkgJGNvbW1hbmRdCi0gICAgICBzZXQgY29tbWFuZCAiY2hlY2tfZHJjXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgc2lnbm9mZixjaGVja19kcmMgJGNvbW1hbmRdCi0gICAgICBzZXQgY29tbWFuZCAiY2hlY2tfbWV0YWxfZGVuc2l0eVxuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kIHNpZ25vZmYsY2hlY2tfbWV0YWxfZGVuc2l0eSAkY29tbWFuZF0KLSAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhwYXJ0aXRpb25fbGlzdCldICYmIChbbHNlYXJjaCAkdmFycyhwYXJ0aXRpb25fbGlzdCkgJHB0bl0gIT0gLTEpfSB7Ci0gICAgICAgICBpZiB7W3N0cmluZyBjb21wYXJlICR2YXJzKGRic19mb3JtYXQpICJmZSJdPT0wfSB7Ci0gICAgICAgICAgIHNldCBjb21tYW5kICJjaGVja19wcm9jZXNzX2FudGVubmEgLWxlZl9maWxlICRwdG4uYW50ZW5uYS5sZWZcbiIKLSAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgIHNldCBjb21tYW5kICJjaGVja19wcm9jZXNzX2FudGVubmFcbiIKLSAgICAgICAgICMgTm90IHN1cmUgeWV0ICBob3cgc2F2ZV9hYnN0cmFjdCAgd291bGQgYmUgY2FsbGVkLSBza2lwIHRoaXMgZm9yIG5vdy4KLSAgICAgICAgIH0KLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgICBzZXQgY29tbWFuZCAiY2hlY2tfcHJvY2Vzc19hbnRlbm5hXG4iCi0gICAgICB9Ci0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgc2lnbm9mZix2ZXJpZnlfcHJvY2Vzc19hbnRlbm5hICRjb21tYW5kXQotCi0gICAgICBpZiB7KFtpbmZvIGV4aXN0cyB2YXJzKGVuYWJsZV9sdnMpXSAmJiAkdmFycyhlbmFibGVfbHZzKSkgJiYgKCR2YXJzKGRic19mb3JtYXQpID09ICJvYSIpfSB7Ci0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGX0VESTo6Y3JlYXRlX2x2c19kYXRhXQotICAgICAgfQotICAgICAgaWYgeyR2YXJzKG5vdnVzKX0gewotICAgICAgICBhcHBlbmQgY29tbWFuZHMgInNldF9mbG93a2l0X3dyaXRlX2RiX2FyZ3MgLWRlZlxuIgotICAgICAgfQotCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAjIExvYWQgb3B0aW9uYWwgcG9zdCBzaWdub2ZmIGZpbGUgKHBsdWctaW4pCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjpzb3VyY2VfcGx1ZyBwb3N0X3NpZ25vZmZfdGNsIDBdCi0KLSAgICAgIGlmIHskdmFycyhjb2RlZ2VuKX0gewotICAgICAgICAgcmV0dXJuICRjb21tYW5kcwotICAgICAgfSBlbHNlIHsKLSAgICAgICAgICB1cGxldmVsICMwIGV2YWwgJGNvbW1hbmRzCi0gICAgICB9Ci0KLSAgIH0KLQotICAgcHJvYyBydW5fYXNzZW1ibGUge3tmb3JtYXQgMX19IHsKLQotICAgICAgZ2xvYmFsIHZhcnMKLSAgICAgIGdsb2JhbCBlcnJvcnMKLSAgICAgIGdsb2JhbCBlbnYKLQotICAgICAgc2V0IHZhcnMoc3RlcCkgYXNzZW1ibGUKLSAgICAgIHNldCBjb21tYW5kcyAiIgotICAgICAgYXBwZW5kIGNvbW1hbmRzICJzZXQgdmFycyhzdGVwKSAkdmFycyhzdGVwKVxuIgotCi0gICAgICBGRl9OT1ZVUzo6aW5pdGlhbGl6ZV9zdGVwIGFzc2VtYmxlCi0KLSMgICAgICBpZiB7JHZhcnMocmVwb3J0X3J1bl90aW1lKX0gewotIyAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAic2V0IHZhcnMoJHZhcnMoc3RlcCksc3RhcnRfdGltZSkgXFtjbG9jayBzZWNvbmRzXF1cbiIKLSMgICAgICB9Ci0KLSAgICAgIGlmIHskdmFycyh2ZXJib3NlKX0gewotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgQVNTRU1CTElORyBERVNJR05cbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiI1xuIgotICAgICAgfQotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgIyBMb2FkICJwcmUgYXNzZW1ibGUiIHBsdWctaW4gc2NyaXB0Ci0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjpzb3VyY2VfcGx1ZyBwcmVfYXNzZW1ibGVfdGNsXQotCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAjIEFzc2VtYmxlIHRoZSBkZXNpZ24KLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgIHNldCB2YXJzKGlsbSkgZmFsc2UKLSAgICAgIHNldCBpbG1fbGlzdCBbbGlzdF0KLSAgICAgIHNldCBwYWNfbGlzdCBbbGlzdF0KLSAgICAgIGlmIHskdmFycyhlbmFibGVfcGFjKX0gewotICAgICAgICAgZm9yZWFjaCBwYXJ0ICR2YXJzKHBhcnRpdGlvbl9saXN0KSB7Ci0gICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJHBhcnQscGFjX21vZGUpXX0gIHsKLSAgICAgICAgICAgICAgIGlmIHskdmFycygkcGFydCxwYWNfbW9kZSkgPT0gImlsbSJ9IHsKLSAgICAgICAgICAgICAgICAgIGxhcHBlbmQgaWxtX2xpc3QgJHBhcnQKLSAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICBsYXBwZW5kIHBhY19saXN0ICRwYXJ0Ci0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0gICAgICB9Ci0gICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoaWxtX2xpc3QpXSAmJiAoJHZhcnMoaWxtX2xpc3QpICE9ICIiKX0gewotICAgICAgICAgZm9yZWFjaCBpbG0gJHZhcnMoaWxtX2xpc3QpIHsKLSAgICAgICAgICAgIGlmIHsoW2xzZWFyY2ggJGlsbV9saXN0ICRpbG1dID09IC0xKSAmJiAoW2xzZWFyY2ggJHBhY19saXN0ICRpbG1dID09IC0xKX0gewotICAgICAgICAgICAgICAgbGFwcGVuZCBpbG1fbGlzdCAkaWxtCi0gICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0gICAgICB9Ci0gICAgICBpZiB7JGlsbV9saXN0ICE9ICIifSB7Ci0gICAgICAgICBzZXQgdmFycyhpbG0pIHRydWUgCi0gICAgICB9Ci0KLSAgICAgIGlmIHskdmFycyhoaWVyX2Zsb3dfdHlwZSkgPT0gIjJwYXNzIn0gewotICAgICAgICAgc2V0IHBhcnRpdGlvbl9kaXIgJHZhcnMocGFydGl0aW9uX2Rpcl9wYXNzMikKLSAgICAgICB9IGVsc2UgewotICAgICAgICAgc2V0IHBhcnRpdGlvbl9kaXIgJHZhcnMocGFydGl0aW9uX2RpcikKLSAgICAgIH0KLSAgICAgIHNldCBkaXIgW2ZpbGUgdGFpbCBbc3Vic3QgJHZhcnMoZGJzX2RpcildXQotCi0gICAgICBpZiB7W2xpbmRleCBbc3BsaXQgJHZhcnModmVyc2lvbikgIi4iXSAgMF0gPiAxMH0gewotICAgICAgICAgc2V0IGNvbW1hbmQgW0ZGX05PVlVTOjppbml0aWFsaXplX3RpbWluZyBtbW1jXQotICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGNwZl9maWxlKV0gJiYgJHZhcnMoY3BmX3RpbWluZyl9IHsKLSAgICAgICAgICAgIHNldCBtbW1jX2ZpbGUgJHZhcnMoc2NyaXB0X2RpcikvaW5jcl92aWV3X2RlZmluaXRpb24udGNsCi0gICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKHZpZXdfZGVmaW5pdGlvbl90Y2wpXX0gewotICAgICAgICAgICAgICAgc2V0IG1tbWNfZmlsZSAkdmFycyh2aWV3X2RlZmluaXRpb25fdGNsKQotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIHNldCBtbW1jX2ZpbGUgJHZhcnMoc2NyaXB0X2Rpcikvdmlld19kZWZpbml0aW9uLnRjbAotICAgICAgICAgICAgfQotICAgICAgICAgfQotICAgICAgfQotICAgICAgaWYgeyhbc3RyaW5nIGNvbXBhcmUgLW5vY2FzZSAkdmFycyhkYnNfZm9ybWF0KSAib2EiXT09MCkgJiYgKFtsaW5kZXggW3NwbGl0ICR2YXJzKHZlcnNpb24pICIuIl0gIDBdID4gMTApfSB7Ci0KLSAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkdmFycyhkZXNpZ24pLGFzc2VtYmxlX3N0ZXApXX0gewotICAgICAgICAgICAgc2V0IGNvbW1hbmQgImFzc2VtYmxlX2Rlc2lnbiAtdG9wX2Rlc2lnbiB7JHZhcnMob2FfcGFydGl0aW9uX2xpYikgJHZhcnMoZGVzaWduKSAkdmFycygkdmFycyhkZXNpZ24pLGFzc2VtYmxlX3N0ZXApfSAtbW1tY19maWxlICRtbW1jX2ZpbGUiCi0gICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgc2V0IGNvbW1hbmQgImFzc2VtYmxlX2Rlc2lnbiAtdG9wX2Rlc2lnbiB7JHZhcnMob2FfcGFydGl0aW9uX2xpYikgJHZhcnMoZGVzaWduKSBzaWdub2ZmfSAtbW1tY19maWxlICRtbW1jX2ZpbGUiCi0gICAgICAgICB9Ci0gICAgICAgICBmb3JlYWNoIHBhcnQgJHZhcnMocGFydGl0aW9uX2xpc3QpIHsKLSAgICAgICAgICAgIGlmIHtbbHNlYXJjaCAkaWxtX2xpc3QgJHBhcnRdID09IC0xfSB7Ci0gICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJHBhcnQsYXNzZW1ibGVfc3RlcCldfSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiXFxcbiAgIC1ibG9jayB7JHZhcnMob2FfcGFydGl0aW9uX2xpYikgJHBhcnQgJHZhcnMoJHZhcnMoJHBhcnQpLGFzc2VtYmxlX3N0ZXApfSIKLSAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiXFxcbiAgIC1ibG9jayB7JHZhcnMob2FfcGFydGl0aW9uX2xpYikgJHBhcnQgc2lnbm9mZn0iCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0gICAgICB9IGVsc2UgewotIyAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCBhc3NlbWJsZSxpbml0aWFsaXplX3RpbWluZyAkY29tbWFuZF0KLSAgICAgICAgIGlmIHtbbGluZGV4IFtzcGxpdCAkdmFycyh2ZXJzaW9uKSAiLiJdICAwXSA+IDEwfSB7Ci0gICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoY3BmX2ZpbGUpXSAmJiAkdmFycyhjcGZfdGltaW5nKX0gewotICAgICAgICAgICAgICAgc2V0IGFzc2VtYmxlX2NvbW1hbmQgImFzc2VtYmxlX2Rlc2lnbiAtcG93ZXJfaW50ZW50X2ZpbGUgJHZhcnMoY3BmX2ZpbGUpIgotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIHNldCBhc3NlbWJsZV9jb21tYW5kICJhc3NlbWJsZV9kZXNpZ24gLW1tbWNfZmlsZSAkbW1tY19maWxlIgotICAgICAgICAgICAgfQotICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHNldCBhc3NlbWJsZV9jb21tYW5kICJhc3NlbWJsZV9kZXNpZ24iCi0gICAgICAgICB9Ci0gICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJHZhcnMoZGVzaWduKSxhc3NlbWJsZV9kYnMpXX0gewotICAgICAgICAgICAgc2V0IGNvbW1hbmQgIiRhc3NlbWJsZV9jb21tYW5kIC10b3BfZGlyICR2YXJzKCR2YXJzKGRlc2lnbiksYXNzZW1ibGVfZGJzKSIKLSAgICAgICAgIH0gZWxzZWlmIHtbaW5mbyBleGlzdHMgdmFycygkdmFycyhkZXNpZ24pLGFzc2VtYmxlX3N0ZXApXX0gewotICAgICAgICAgICAgc2V0IGNvbW1hbmQgIiRhc3NlbWJsZV9jb21tYW5kICRwYXJ0aXRpb25fZGlyLyR2YXJzKGRlc2lnbikvJGRpci8kdmFycygkdmFycyhkZXNpZ24pLGFzc2VtYmxlX3N0ZXApLmVuYyIKLSAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBpZiB7JHZhcnMoZ2VuZXJhdGVfZmxvd19zdGVwcyl9IHsKLSAgICAgICAgICAgICAgIHNldCBjb21tYW5kICIkYXNzZW1ibGVfY29tbWFuZCAtdG9wX2RpciAkcGFydGl0aW9uX2Rpci8kdmFycyhkZXNpZ24pLyRkaXIvdG9wLnRvcF9zaWdub2ZmLmVuYyAiCi0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgIiRhc3NlbWJsZV9jb21tYW5kIC10b3BfZGlyICRwYXJ0aXRpb25fZGlyLyR2YXJzKGRlc2lnbikvJGRpci9zaWdub2ZmLmVuYyAiCi0gICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0gICAgICAgICBmb3JlYWNoIHBhcnQgJHZhcnMocGFydGl0aW9uX2xpc3QpIHsKLSAgICAgICAgICAgIGlmIHtbbHNlYXJjaCAkaWxtX2xpc3QgJHBhcnRdID09IC0xfSB7Ci0gICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJHBhcnQsYXNzZW1ibGVfZGJzKV19IHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJcXFxuICAgLWJsb2NrX2RpciAkdmFycygkcGFydCxhc3NlbWJsZV9kYnMpIgotICAgICAgICAgICAgICAgfSBlbHNlaWYge1tpbmZvIGV4aXN0cyB2YXJzKCRwYXJ0LGFzc2VtYmxlX3N0ZXApXX0gewotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIlxcXG4gICAtYmxvY2tfZGlyICRwYXJ0aXRpb25fZGlyLyRwYXJ0LyRkaXIvJHZhcnMoJHBhcnQsYXNzZW1ibGVfc3RlcCkuZW5jIgotICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgIGlmIHskdmFycyhnZW5lcmF0ZV9mbG93X3N0ZXBzKX0gewotICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIlxcXG4gICAtYmxvY2tfZGlyICRwYXJ0aXRpb25fZGlyLyRwYXJ0LyRkaXIvYmxvY2suc2lnbm9mZi5lbmMiCi0gICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIlxcXG4gICAtYmxvY2tfZGlyICRwYXJ0aXRpb25fZGlyLyRwYXJ0LyRkaXIvc2lnbm9mZi5lbmMiCi0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0gICAgICB9Ci0gICAgICBpZiB7JHZhcnMoZW5hYmxlX3BhYyl9IHsKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kICJcXFxuIC1oaWVyRGlyICR2YXJzKHBhY19zY3JhdGNoX2RpcikiCi0gICAgICB9Ci0gICAgICBhcHBlbmQgY29tbWFuZCAiXG5cbiIKLQotICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kIGFzc2VtYmxlLGFzc2VtYmxlX2Rlc2lnbiAkY29tbWFuZF0KLSAgICAgIGlmIHsoW2xpbmRleCBbc3BsaXQgJHZhcnModmVyc2lvbikgIi4iXSAgMF0gPiAxMCkgJiYgJHZhcnMoY3BmX3RpbWluZyl9IHsKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAic291cmNlICRtbW1jX2ZpbGVcbiIKLSAgICAgIH0KLSAgICAgIGlmIHskdmFycyhmbG93KSA9PSAibW1tYyJ9IHsKLSAgICAgICAgIHNldCBjb21tYW5kIFtGRl9OT1ZVUzo6ZGVyYXRlX3RpbWluZyBtbW1jXQotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLGRlcmF0ZV90aW1pbmcgJGNvbW1hbmRdCi0gICAgICB9Ci0KLSAgICAgIGlmIHskdmFycyhjYXB0dXJlX21ldHJpY3MpfSB7Ci0gICAgICAgICBpZiB7W2xpbmRleCBbc3BsaXQgJHZhcnModmVyc2lvbikgIi4iXSAgMF0gPiAxM30gewotICAgICAgICAgICAgaWYgeyR2YXJzKHN0ZXApICE9ICJkZWJ1ZyJ9IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiZW5hYmxlX21ldHJpY3MgLW9uXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgInB1c2hfc25hcHNob3Rfc3RhY2tcbiIKLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0KLSAgICAgIH0KLQotICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6c291cmNlX3BsdWcgYWx3YXlzX3NvdXJjZV90Y2xdCi0KLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICMgTG9hZCAicG9zdCBhc3NlbWJsZSIgcGx1Zy1pbiBzY3JpcHQKLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OnNvdXJjZV9wbHVnIHBvc3RfYXNzZW1ibGVfdGNsIDBdCi0KLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICMgU3BlY2lmeSBJTE1zIGlmIGRlZmluZWQKLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgIGlmIHskdmFycyhpbG0pfSB7Ci0gICAgICAgICBpZiB7JHZhcnModmVyYm9zZSl9IHsKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiI1xuIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjIFNQRUNJRllJTkcgSUxNc1xuIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjXG4iCi0gICAgICAgICB9Ci0gICAgICAgICBzZXQgY29tbWFuZCAiIiAKLSAgICAgICAgIGZvcmVhY2ggY2VsbCAkaWxtX2xpc3QgewotICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCRjZWxsLGlsbV9kaXIpXSAmJiBbZmlsZSBpc2RpcmVjdG9yeSAkdmFycygkY2VsbCxpbG1fZGlyKV19IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJzcGVjaWZ5SWxtIC1jZWxsICRjZWxsIC1kaXIgJHZhcnMoJGNlbGwsaWxtX2RpcilcbiIKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBwdXRzICI8RkY+IFdBUk5JTkc6IElMTSBESVJFQ1RPUlkgTUlTU0lORyBGT1IgJGNlbGwgLi4uIFNLSVBQSU5HIgotICAgICAgICAgICAgfQotICAgICAgICAgfSAKLSAgCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgYXNzZW1ibGUsc3BlY2lmeV9pbG0gJGNvbW1hbmRdCi0gIAotICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGlsbV9ub25fc2RjX2ZpbGUpXX0gewotICAgICAgICAgICAgaWYge1tsaW5kZXggW3NwbGl0ICR2YXJzKHZlcnNpb24pICIuIl0gIDBdIDw9IDEwfSB7Ci0gICAgICAgICAgICAgICBzZXQgY29tbWFuZCAibG9hZFRpbWluZ0NvbiAtaWxtTm9uU2RjRmlsZSAkdmFycyhpbG1fbm9uX3NkY19maWxlKVxuIgotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIHNldCBjb21tYW5kICJzZXRJbG1Ob25TZGNDb25zdHJhaW50RmlsZSAkdmFycyhpbG1fbm9uX3NkY19maWxlKVxuIgotICAgICAgICAgICAgfQotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kIGFzc2VtYmxlLGxvYWRfaWxtX25vbl9zZGNfZmlsZSAkY29tbWFuZF0KLSAgICAgICAgIH0KLSAgICAgIH0KLQotIyAgICAgIGlmIHtbbGluZGV4IFtzcGxpdCAkdmFycyh2ZXJzaW9uKSAiLiJdICAwXSA8PSAxMH0gewotIyAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhjcGZfZmlsZSldfSB7Ci0jICAgICAgICAgICAgc2V0IGNvbW1hbmQgImxvYWRDUEYgJHZhcnMoY3BmX2ZpbGUpXG4iCi0jICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kIGFzc2VtYmxlLGxvYWRfY3BmICRjb21tYW5kXQotIyAgICAgICAgICAgIHNldCBjb21tYW5kICJjb21taXRDUEYiCi0jICAgICAgICAgICAgaWYgeyR2YXJzKGNwZl9rZWVwX3Jvd3MpfSB7Ci0jICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAta2VlcFJvd3MiCi0jICAgICAgICAgICAgfQotIyAgICAgICAgICAgIGlmIHskdmFycyhjcGZfcG93ZXJfZG9tYWluKX0gewotIyAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgLXBvd2VyX2RvbWFpbiIKLSMgICAgICAgICAgICB9Ci0jICAgICAgICAgICAgaWYgeyR2YXJzKGNwZl9pc29sYXRpb24pfSB7Ci0jICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAtaXNvbGF0aW9uIgotIyAgICAgICAgICAgIH0KLSMgICAgICAgICAgICBpZiB7JHZhcnMoY3BmX3N0YXRlX3JldGVudGlvbil9IHsKLSMgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiIC1zdGF0ZV9yZXRlbnRpb24iCi0jICAgICAgICAgICAgfQotIyAgICAgICAgICAgIGlmIHskdmFycyhjcGZfbGV2ZWxfc2hpZnRlcil9IHsKLSMgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiIC1sZXZlbF9zaGlmdGVyIgotIyAgICAgICAgICAgIH0KLSMgICAgICAgICAgICBpZiB7JHZhcnMoY3BmX3Bvd2VyX3N3aXRjaCl9IHsKLSMgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiIC1wb3dlcl9zd2l0Y2giCi0jICAgICAgICAgICAgfQotIyAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJcbiIKLSMgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgYXNzZW1ibGUsY29tbWl0X2NwZiAkY29tbWFuZF0KLSMgICAgICAgICB9Ci0jICAgICAgfQotCi0gICAgICBpZiB7W2xpbmRleCBbc3BsaXQgJHZhcnModmVyc2lvbikgIi4iXSAgMF0gPD0gMTB9IHsKLSAgICAgICAgIHNldCBjb21tYW5kIFtGRl9OT1ZVUzo6aW5pdGlhbGl6ZV90aW1pbmcgbW1tY10KLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCBhc3NlbWJsZSxpbml0aWFsaXplX3RpbWluZyAkY29tbWFuZF0KLSAgICAgIH0gZWxzZWlmIHtbaW5mbyBleGlzdHMgdmFycyhjcGZfZmlsZSldICYmICR2YXJzKGNwZl90aW1pbmcpfSB7Ci0gICAgICAgICBzZXQgY29tbWFuZCBbRkZfTk9WVVM6OmluaXRpYWxpemVfdGltaW5nIG1tbWNdCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgYXNzZW1ibGUsaW5pdGlhbGl6ZV90aW1pbmcgJGNvbW1hbmRdCi0gICAgICB9Ci0KLSAgICAgIHNldCBjb21tYW5kIFtGRl9OT1ZVUzo6dXBkYXRlX3RpbWluZyBtbW1jIF0KLSAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCBhc3NlbWJsZSx1cGRhdGVfdGltaW5nICRjb21tYW5kXQotCi0gICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoZW5hYmxlX3NpZ25vZmZfZWNvKV0gJiYgJHZhcnMoZW5hYmxlX3NpZ25vZmZfZWNvKX0gewotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6c291cmNlX3BsdWcgcHJlX3NpZ25vZmZfZWNvX3RjbCAwXQotICAgICAgICAgc2V0IGNvbW1hbmQgImNoZWNrX2Nvbm5lY3Rpdml0eVxuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kIGFzc2VtYmxlLHByZV9zaWdub2ZmX2Vjb192ZXJpZnlfY29ubmVjdGl2aXR5ICRjb21tYW5kXQotICAgICAgICAgc2V0IGNvbW1hbmQgImNoZWNrX2RyY1xuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kIGFzc2VtYmxlLHByZV9zaWdub2ZmX2Vjb192ZXJpZnlfZ2VvbWV0cnkgJGNvbW1hbmRdCi0KLSAgICAgICAgIGlmIHskdmFycyh2ZXJib3NlKX0gewotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjXG4iCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgUlVOTklORyBTSUdOLU9GRiBFQ09cbiIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiI1xuIgotICAgICAgICAgfQotCi0gICAgICAgICBzZXQgY29tbWFuZCBbRkZfTk9WVVM6OmRlbGV0ZV9maWxsZXJfY2VsbHNdCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgYXNzZW1ibGUsZGVsZXRlX2ZpbGxlcl9jZWxscyAkY29tbWFuZF0KLQotICAgICAgICAgc2V0IGNvbW1hbmQgImV4dHJhY3RfcmNcbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCBhc3NlbWJsZSxleHRyYWN0X3JjICRjb21tYW5kXQotCi0gICAgICAgICBzZXQgb3AgW29wZW4gcHRuLnR4dCB3XQotICAgICAgICAgZm9yZWFjaCBwdG4gJHZhcnMocGFydGl0aW9uX2xpc3QpIHsKLSAgICAgICAgICAgIHB1dHMgJG9wICIkcHRuIgotICAgICAgICAgfQotICAgICAgICAgY2xvc2UgJG9wIAotCi0gICAgICAgICBzZXQgY29tbWFuZCAic2V0X2RiIG9wdF9zaWdub2ZmX3BhcnRpdGlvbl9saXN0X2ZpbGUgXCJwdG4udHh0XCJcbiIgCi0gICAgICAgICBhcHBlbmQgY29tbWFuZCAic2V0X2RiIG9wdF9zaWdub2ZmX29wdGltaXplX3JlcGxpY2F0ZWRfbW9kdWxlcyB0cnVlXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgYXNzZW1ibGUsc2V0X3NpZ25vZmZfbW9kZSAkY29tbWFuZF0KLQotICAgICAgICAgc2V0IGNvbW1hbmQgInRpbWVfc2lnbm9mZiAtcmVwb3J0X29ubHlcbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCBhc3NlbWJsZSx0aW1lX3NpZ25vZmYgJGNvbW1hbmRdCi0gICAgICAgICBzZXQgY29tbWFuZCAib3B0X2Rlc2lnbl9zaWdub2ZmIC1zZXR1cCAtbm9fZWNvX3JvdXRlXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgYXNzZW1ibGUsc2lnbm9mZl9vcHRfZGVzaWduICRjb21tYW5kXQotICAgICAgICAgc2V0IGNvbW1hbmQgImFkZF9maWxsZXJcbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCBhc3NlbWJsZSxhZGRfZmlsbGVyX2NlbGxzICRjb21tYW5kXQotICAgICAgICAgc2V0IGNvbW1hbmQgImVjb19yb3V0ZSAtaGFuZGxlX3BhcnRpdGlvblxuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kIGFzc2VtYmxlLGVjb19yb3V0ZSAkY29tbWFuZF0KLQotICAgICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgICAgIyBPcHRpb25hbGx5IHJ1biBMUEEKLSAgICAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgIAotICAgICAgICAgaWYgeyR2YXJzKHZlcmlmeV9saXRobyl9IHsKLSAgICAgICAgICAgICMgQkNMOiBBZGRlZCBzdWJzdCB0byBoYW5kbGUgZGVyZXJlbmNpbmcgdmFyaWFibGVzCi0gICAgICAgICAgICBmaWxlIG1rZGlyICBbc3Vic3QgJHZhcnMocnB0X2RpcildL0xQQS9ETUMKLSAgICAgICAgICAgIHNldCBjb21tYW5kICJ2ZXJpZnlMaXRobyAtcm91dGluZ0xheWVyc09ubHkgLXRlY2hGaWxlICR2YXJzKGxwYV90ZWNoX2ZpbGUpIC1kaXIgJHZhcnMocnB0X2RpcikvTFBBXG4iCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAidmlvbGF0aW9uQnJvd3NlciAtYWxsIC1ub19kaXNwbGF5X2ZhbHNlXG4iCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAibG9hZFZpb2xhdGlvblJlcG9ydCAtdHlwZSBDRE5MaXRobyAtZmlsZW5hbWUgJHZhcnMocnB0X2RpcikvTFBBL0RNQy9tZXJnZWQuaGlmXG4iCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgYXNzZW1ibGUsdmVyaWZ5X2xpdGhvICRjb21tYW5kXQotICAgICAgICAgfQotCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjpzb3VyY2VfcGx1ZyBwb3N0X3NpZ25vZmZfZWNvX3RjbCAwXQotICAgICAgICAgc2V0IGNvbW1hbmQgImNoZWNrX2Nvbm5lY3Rpdml0eVxuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kIGFzc2VtYmxlLHBvc3Rfc2lnbm9mZl9lY29fdmVyaWZ5X2Nvbm5lY3Rpdml0eSAkY29tbWFuZF0KLSAgICAgICAgIHNldCBjb21tYW5kICJjaGVja19kcmNcbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCBhc3NlbWJsZSxwb3N0X3NpZ25vZmZfZWNvX3ZlcmlmeV9nZW9tZXRyeSAkY29tbWFuZF0KLSAgICAgIH0gZWxzZWlmIHskdmFycyhlbmFibGVfcGFjKX0gewotICAgICAgICAgc2V0IGNvbW1hbmQgImNoZWNrX2Nvbm5lY3Rpdml0eVxuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kIGFzc2VtYmxlLHByZV9wYWNfdmVyaWZ5X2Nvbm5lY3Rpdml0eSAkY29tbWFuZF0KLSAgICAgICAgIHNldCBjb21tYW5kICJjaGVja19kcmNcbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCBhc3NlbWJsZSxwcmVfcGFjX3ZlcmlmeV9nZW9tZXRyeSAkY29tbWFuZF0KLQotICAgICAgICAgaWYgeyR2YXJzKHZlcmJvc2UpfSB7Ci0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiNcbiIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyBERUZJTklORyBQQUMgTU9ERVNcbiIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiI1xuIgotICAgICAgICAgfQotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6c291cmNlX3BsdWcgcHJlX3BhY190Y2wgMF0KLSAgICAgICAgIHNldCBjb21tYW5kICIiCi0gICAgICAgICBmb3JlYWNoIHBhcnQgJHBhY19saXN0IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJzZXQgaGluc3QgXFtkYkhJbnN0TmFtZSBcW2RiQ2VsbEhJbnN0IFxbZGJHZXRDZWxsQnlOYW1lICRwYXJ0XF1cXVxdXG4iCi0gICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJHBhcnQscGFjX21vZGUpXX0gewotICAgICAgICAgICAgICAgaWYgeyR2YXJzKCRwYXJ0LHBhY19tb2RlKSA9PSAicmVhZF9vbmx5In0geyBzZXQgdmFycygkcGFydCxwYWNfbW9kZSkgInJlYWRPbmx5IiB9Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAic2V0TW9kdWxlVmlldyAtaGluc3QgXCRoaW5zdCAtdHlwZSAkdmFycygkcGFydCxwYWNfbW9kZSlcbiIKLSAgICAgICAgICAgIH0gCi0gICAgICAgICB9Ci0KLSAgICAgICAgIGFwcGVuZCBjb21tYW5kICJnZXRNb2R1bGVWaWV3XG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgYXNzZW1ibGUsc2V0X21vZHVsZV92aWV3ICRjb21tYW5kXQotCi0gICAgICAgICBpZiB7JHZhcnModmVyYm9zZSl9IHsKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiI1xuIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjIFJVTk5JTkcgUE9TVCBBU1NFTUJMWSBDTE9TVVJFXG4iCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiNcbiIKLSAgICAgICAgIH0KLSMgICAgICAgICBzZXQgY29tbWFuZCBbRkZfTk9WVVM6OmRlbGV0ZV9maWxsZXJfY2VsbHNdCi0jICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kIGFzc2VtYmxlLGRlbGV0ZV9maWxsZXJfY2VsbHMgJGNvbW1hbmRdCi0gICAgICAgICBzZXQgY29tbWFuZCAib3B0X2Rlc2lnbiAtcG9zdF9yb3V0ZSAtcmVwb3J0X2RpciAkdmFycyhycHRfZGlyKSAtcmVwb3J0X3ByZWZpeCBwYWNcbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCBhc3NlbWJsZSxvcHRfZGVzaWduICRjb21tYW5kXQotIyAgICAgICAgIHNldCBjb21tYW5kIFtGRl9OT1ZVUzo6YWRkX2ZpbGxlcl9jZWxsc10KLSMgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgYXNzZW1ibGUsYWRkX2ZpbGxlcl9jZWxscyAkY29tbWFuZF0KLQotICAgICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgICAgIyBPcHRpb25hbGx5IHJ1biBMUEEKLSAgICAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgIAotICAgICAgICAgaWYgeyR2YXJzKHZlcmlmeV9saXRobyl9IHsKLSAgICAgICAgICAgICMgQkNMOiBBZGRlZCBzdWJzdCB0byBoYW5kbGUgZGVyZXJlbmNpbmcgdmFyaWFibGVzCi0gICAgICAgICAgICBmaWxlIG1rZGlyICBbc3Vic3QgJHZhcnMocnB0X2RpcildL0xQQS9ETUMKLSAgICAgICAgICAgIHNldCBjb21tYW5kICJ2ZXJpZnlMaXRobyAtcm91dGluZ0xheWVyc09ubHkgLXRlY2hGaWxlICR2YXJzKGxwYV90ZWNoX2ZpbGUpIC1kaXIgJHZhcnMocnB0X2RpcikvTFBBXG4iCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAidmlvbGF0aW9uQnJvd3NlciAtYWxsIC1ub19kaXNwbGF5X2ZhbHNlXG4iCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAibG9hZFZpb2xhdGlvblJlcG9ydCAtdHlwZSBDRE5MaXRobyAtZmlsZW5hbWUgJHZhcnMocnB0X2RpcikvTFBBL0RNQy9tZXJnZWQuaGlmXG4iCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgYXNzZW1ibGUsdmVyaWZ5X2xpdGhvICRjb21tYW5kXQotICAgICAgICAgfQotCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjpzb3VyY2VfcGx1ZyBwb3N0X3BhY190Y2wgMF0KLSAgICAgICAgIHNldCBjb21tYW5kICJjaGVja19jb25uZWN0aXZpdHlcbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCBhc3NlbWJsZSxwb3N0X3BhY192ZXJpZnlfY29ubmVjdGl2aXR5ICRjb21tYW5kXQotICAgICAgICAgc2V0IGNvbW1hbmQgImNoZWNrX2RyY1xuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kIGFzc2VtYmxlLHBvc3RfcGFjX3ZlcmlmeV9nZW9tZXRyeSAkY29tbWFuZF0KLSAgICAgIH0KLQotICAgICAgaWYgeyEkdmFycyhjb2RlZ2VuKX0gewotICAgICAgICAgdXBsZXZlbCAjMCBldmFsICRjb21tYW5kcwotICAgICAgICAgc2V0IGNvbW1hbmRzICIiIAotICAgICAgfQotCi0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGX05PVlVTOjpydW5fc2lnbm9mZiAkZm9ybWF0XQotCi0jICAgICAgaWYgeyR2YXJzKG1ha2VmaWxlKX0geyAKLSMgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJpZiB7XFtpbmZvIGV4aXN0cyBlbnYoVlBBVEgpXF19IHtcbiIKLSMgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJleGVjIC9iaW4vdG91Y2ggXCRlbnYoVlBBVEgpL2Fzc2VtYmxlXG4iCi0jICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAifVxuIgotIyAgICAgICB9Ci0KLSAgICAgIGlmIHskdmFycyhjb2RlZ2VuKX0gewotICAgICAgICAgcmV0dXJuICRjb21tYW5kcwotICAgICAgfSBlbHNlIHsKLSAgICAgICAgIHVwbGV2ZWwgIzAgZXZhbCAkY29tbWFuZHMKLSAgICAgIH0KLSAgIH0KLQotICAgcHJvYyBydW5fcmVidWRnZXQge3tmb3JtYXQgMX19IHsKLQotICAgICAgZ2xvYmFsIHZhcnMKLSAgICAgIGdsb2JhbCBlcnJvcnMKLSAgICAgIGdsb2JhbCBlbnYKLQotICAgICAgc2V0IHZhcnMoc3RlcCkgcmVidWRnZXQKLSAgICAgIHNldCBjb21tYW5kcyAiIgotIyAgICAgIGFwcGVuZCBjb21tYW5kcyAic2V0IHZhcnMoc3RlcCkgJHZhcnMoc3RlcClcbiIKLQotICAgICAgRkZfTk9WVVM6OmluaXRpYWxpemVfc3RlcCAkdmFycyhzdGVwKQotCi0jICAgICAgaWYgeyR2YXJzKHJlcG9ydF9ydW5fdGltZSl9IHsKLSMgICAgICAgICBhcHBlbmQgY29tbWFuZHMgInNldCB2YXJzKCR2YXJzKHN0ZXApLHN0YXJ0X3RpbWUpIFxbY2xvY2sgc2Vjb25kc1xdXG4iCi0jICAgICAgfQotICAgICAgaWYgeyEkdmFycyhlbmFibGVfZmxleGlsbSl9IHsKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiXG5pZiB7XFtmaWxlIGlzZmlsZSAkdmFycyhwYWNfc2NyYXRjaF9kaXIpLy5wYWNGbG93TG9ja1xdfSB7XG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiAgIGZpbGUgZGVsZXRlICR2YXJzKHBhY19zY3JhdGNoX2RpcikvLnBhY0Zsb3dMb2NrXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIn1cbiIKLSAgICAgICB9IGVsc2UgewotIyAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiaWYge1xbZmlsZSBpc2ZpbGUgJHZhcnMoc2NyaXB0X2Rpcikvdmlld19kZWZpbml0aW9uLnRjbF19IHtcbiIKLSMgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiAgIGZpbGUgY29weSAtZm9yY2UgJHZhcnMoc2NyaXB0X2Rpcikvdmlld19kZWZpbml0aW9uLnRjbCAkdmFycyhwYXJ0aXRpb25fZGlyKS8kdmFycyhkZXNpZ24pL3ZpZXdEZWZpbml0aW9uLnRjbFxuIgotIyAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAifVxuIgotICAgICAgIH0KLQotICAgICAgaWYgeyR2YXJzKHZlcmJvc2UpfSB7Ci0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiNcbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyBBU1NFTUJMSU5HIERFU0lHTlxuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjXG4iCi0gICAgICB9Ci0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAjIExvYWQgInByZSByZWJ1ZGdldCIgcGx1Zy1pbiBzY3JpcHQKLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OnNvdXJjZV9wbHVnIHByZV9yZWJ1ZGdldF90Y2xdCi0KLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICMgR2V0IHRoZSBGbGV4SUxNIEVDTyBwYXRocwotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgaWYgeyR2YXJzKGVuYWJsZV9mbGV4aWxtKX0gewotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJpZiB7XFtmaWxlIGlzZmlsZSBcJGVudihWUEFUSCkvZmxleGlsbVxdfSB7XG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiAgIHNvdXJjZSBcJGVudihWUEFUSCkvZmxleGlsbVxuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJ9XG4iCi0gICAgICB9Ci0KLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICMgQXNzZW1ibGUgdGhlIGRlc2lnbgotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgc2V0IHZhcnMoaWxtKSBmYWxzZQotICAgICAgc2V0IGlsbV9saXN0IFtsaXN0XQotICAgICAgc2V0IHBhY19saXN0IFtsaXN0XQotICAgICAgaWYgeyR2YXJzKGVuYWJsZV9wYWMpfSB7Ci0gICAgICAgICBmb3JlYWNoIHBhcnQgJHZhcnMocGFydGl0aW9uX2xpc3QpIHsKLSAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkcGFydCxwYWNfbW9kZSldfSAgewotICAgICAgICAgICAgICAgaWYgeyR2YXJzKCRwYXJ0LHBhY19tb2RlKSA9PSAiaWxtIn0gewotICAgICAgICAgICAgICAgICAgbGFwcGVuZCBpbG1fbGlzdCAkcGFydAotICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgIGxhcHBlbmQgcGFjX2xpc3QgJHBhcnQKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0KLSAgICAgIH0KLSAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhpbG1fbGlzdCldICYmICgkdmFycyhpbG1fbGlzdCkgIT0gIiIpfSB7Ci0gICAgICAgICBmb3JlYWNoIGlsbSAkdmFycyhpbG1fbGlzdCkgewotICAgICAgICAgICAgaWYgeyhbbHNlYXJjaCAkaWxtX2xpc3QgJGlsbV0gPT0gLTEpICYmIChbbHNlYXJjaCAkcGFjX2xpc3QgJGlsbV0gPT0gLTEpfSB7Ci0gICAgICAgICAgICAgICBsYXBwZW5kIGlsbV9saXN0ICRpbG0KLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0KLSAgICAgIH0KLSAgICAgIGlmIHskaWxtX2xpc3QgIT0gIiJ9IHsKLSAgICAgICAgIHNldCB2YXJzKGlsbSkgdHJ1ZSAKLSAgICAgIH0KLQotICAgICAgIyBCQ0w6IEFkZGVkIHRhaWwgb2Ygc3Vic3Qgb2YgdmFycyhkYnNfZGlyKQotICAgICAgIyBOb3RlIC0gRURJRkYgSGllcmFyY2hpY2FsIGZsb3cgaXMgY3VycmVudGx5IElOQ09NUEFUSUJMRSB3aXRoIEZGIGRpciBzdHJ1Y3R1cmUKLSAgICAgICMgVGhlIGZvbGxvd2luZyBjb2RlIGFwcGVhcnMgdG8gcmVseSBvbiB2YXJzKGRic19kaXIpIGFsd2F5cyBiZWluZyB1bmRlciAkdmFycyhwYXJ0aXRpb25fZGlyKS8kdmFycyhkZXNpZ24pCi0gICAgICAjIFRoaXMgbmVlZHMgdG8gYmUgcmVjb25jaWxlZAotICAgICAgc2V0IGRpciBbZmlsZSB0YWlsIFtzdWJzdCAkdmFycyhkYnNfZGlyKV1dCi0KLSAgICAgIGlmIHtbbGluZGV4IFtzcGxpdCAkdmFycyh2ZXJzaW9uKSAiLiJdICAwXSA+IDEwfSB7Ci0gICAgICAgICBzZXQgY29tbWFuZCBbRkZfTk9WVVM6OmluaXRpYWxpemVfdGltaW5nIG1tbWNdCi0gICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoY3BmX2ZpbGUpXSAmJiAkdmFycyhjcGZfdGltaW5nKX0gewotICAgICAgICAgICAgc2V0IG1tbWNfZmlsZSAkdmFycyhzY3JpcHRfZGlyKS9pbmNyX3ZpZXdfZGVmaW5pdGlvbi50Y2wKLSAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnModmlld19kZWZpbml0aW9uX3RjbCldfSB7Ci0gICAgICAgICAgICAgICBzZXQgbW1tY19maWxlICR2YXJzKHZpZXdfZGVmaW5pdGlvbl90Y2wpCi0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgc2V0IG1tbWNfZmlsZSAkdmFycyhzY3JpcHRfZGlyKS92aWV3X2RlZmluaXRpb24udGNsCi0gICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0gICAgICB9Ci0gICAgICBpZiB7KFtzdHJpbmcgY29tcGFyZSAtbm9jYXNlICR2YXJzKGRic19mb3JtYXQpICJvYSJdPT0wKSAmJiAoW2xpbmRleCBbc3BsaXQgJHZhcnModmVyc2lvbikgIi4iXSAgMF0gPiAxMCl9IHsKLQotICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCR2YXJzKGRlc2lnbikscmVidWRnZXRfYXNzZW1ibGVfc3RlcCldfSB7Ci0gICAgICAgICAgICBzZXQgY29tbWFuZCAiYXNzZW1ibGVfZGVzaWduIC10b3BfZGVzaWduIHskdmFycyhvYV9wYXJ0aXRpb25fbGliKSAkdmFycyhkZXNpZ24pICR2YXJzKCR2YXJzKGRlc2lnbikscmVidWRnZXRfYXNzZW1ibGVfc3RlcCl9IC1tbW1jX2ZpbGUgJG1tbWNfZmlsZSIKLSAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBzZXQgY29tbWFuZCAiYXNzZW1ibGVfZGVzaWduIC10b3BfZGVzaWduIHskdmFycyhvYV9wYXJ0aXRpb25fbGliKSAkdmFycyhkZXNpZ24pIGN0c30gLW1tbWNfZmlsZSAkbW1tY19maWxlIgotICAgICAgICAgfQotICAgICAgICAgZm9yZWFjaCBwYXJ0ICR2YXJzKHBhcnRpdGlvbl9saXN0KSB7Ci0gICAgICAgICAgICBpZiB7W2xzZWFyY2ggJGlsbV9saXN0ICRwYXJ0XSA9PSAtMX0gewotICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCRwYXJ0LHJlYnVkZ2V0X2Fzc2VtYmxlX3N0ZXApXX0gewotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIlxcXG4gICAtYmxvY2sgeyR2YXJzKG9hX3BhcnRpdGlvbl9saWIpICRwYXJ0ICR2YXJzKCR2YXJzKCRwYXJ0KSxyZWJ1ZGdldF9hc3NlbWJsZV9zdGVwKX0iCi0gICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIlxcXG4gICAtYmxvY2sgeyR2YXJzKG9hX3BhcnRpdGlvbl9saWIpICRwYXJ0IGN0c30iCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0gICAgICB9IGVsc2UgewotIyAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCByZWJ1ZGdldCxpbml0aWFsaXplX3RpbWluZyAkY29tbWFuZF0KLSAgICAgICAgIGlmIHtbbGluZGV4IFtzcGxpdCAkdmFycyh2ZXJzaW9uKSAiLiJdICAwXSA+IDEwfSB7Ci0gICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoY3BmX2ZpbGUpXSAmJiAkdmFycyhjcGZfdGltaW5nKX0gewotICAgICAgICAgICAgICAgc2V0IGFzc2VtYmxlX2NvbW1hbmQgImFzc2VtYmxlX2Rlc2lnbiAtcG93ZXJfaW50ZW50X2ZpbGUgJHZhcnMoY3BmX2ZpbGUpIgotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIHNldCBhc3NlbWJsZV9jb21tYW5kICJhc3NlbWJsZV9kZXNpZ24gLW1tbWNfZmlsZSAkbW1tY19maWxlIgotICAgICAgICAgICAgfQotICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHNldCBhc3NlbWJsZV9jb21tYW5kICJhc3NlbWJsZV9kZXNpZ24iCi0gICAgICAgICB9Ci0gICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJHZhcnMoZGVzaWduKSxyZWJ1ZGdldF9hc3NlbWJsZV9kYnMpXX0gewotICAgICAgICAgICAgc2V0IGNvbW1hbmQgIiRhc3NlbWJsZV9jb21tYW5kIC10b3BfZGlyICR2YXJzKCR2YXJzKGRlc2lnbikscmVidWRnZXRfYXNzZW1ibGVfZGJzKSIKLSAgICAgICAgIH0gZWxzZWlmIHtbaW5mbyBleGlzdHMgdmFycygkdmFycyhkZXNpZ24pLHJlYnVkZ2V0X2Fzc2VtYmxlX3N0ZXApXX0gewotICAgICAgICAgICAgc2V0IGNvbW1hbmQgIiRhc3NlbWJsZV9jb21tYW5kICR2YXJzKHBhcnRpdGlvbl9kaXIpLyR2YXJzKGRlc2lnbikvJGRpci8kdmFycygkdmFycyhkZXNpZ24pLHJlYnVkZ2V0X2Fzc2VtYmxlX3N0ZXApLmVuYyIKLSAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBpZiB7JHZhcnMoZW5hYmxlX2ZsZXhpbG0pfSB7Ci0gICAgICAgICAgICAgICBpZiB7JHZhcnMoZ2VuZXJhdGVfZmxvd19zdGVwcyl9IHsKLSAgICAgICAgICAgICAgICAgIHNldCBjb21tYW5kICIkYXNzZW1ibGVfY29tbWFuZCBcXFxuICAgLXRvcF9kaXIgJHZhcnMocGFydGl0aW9uX2RpcilfRkxFWElMTS8kdmFycyhkZXNpZ24pICIKLSAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICBzZXQgY29tbWFuZCAiJGFzc2VtYmxlX2NvbW1hbmQgXFxcbiAgIC10b3BfZGlyICR2YXJzKHBhcnRpdGlvbl9kaXIpX0ZMRVhJTE0vJHZhcnMoZGVzaWduKSAiCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgaWYgeyR2YXJzKGdlbmVyYXRlX2Zsb3dfc3RlcHMpfSB7Ci0gICAgICAgICAgICAgICAgICBzZXQgY29tbWFuZCAiJGFzc2VtYmxlX2NvbW1hbmQgLXRvcF9kaXIgJHZhcnMocGFydGl0aW9uX2RpcikvJHZhcnMoZGVzaWduKS8kZGlyL3RvcC5jdHMuZW5jICIKLSAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICBzZXQgY29tbWFuZCAiJGFzc2VtYmxlX2NvbW1hbmQgLXRvcF9kaXIgJHZhcnMocGFydGl0aW9uX2RpcikvJHZhcnMoZGVzaWduKS8kZGlyL2N0cy5lbmMgIgotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAgfQotICAgICAgICAgZm9yZWFjaCBwYXJ0ICR2YXJzKHBhcnRpdGlvbl9saXN0KSB7Ci0gICAgICAgICAgICBpZiB7W2xzZWFyY2ggJGlsbV9saXN0ICRwYXJ0XSA9PSAtMX0gewotICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCRwYXJ0LHJlYnVkZ2V0X2Fzc2VtYmxlX2RicyldfSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiXFxcbiAgIC1ibG9ja19kaXIgJHZhcnMoJHBhcnQscmVidWRnZXRfYXNzZW1ibGVfZGJzKSIKLSAgICAgICAgICAgICAgIH0gZWxzZWlmIHtbaW5mbyBleGlzdHMgdmFycygkcGFydCxyZWJ1ZGdldF9hc3NlbWJsZV9zdGVwKV19IHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJcXFxuICAgLWJsb2NrX2RpciAkdmFycyhwYXJ0aXRpb25fZGlyKS8kcGFydC8kZGlyLyR2YXJzKCRwYXJ0LHJlYnVkZ2V0X2Fzc2VtYmxlX3N0ZXApLmVuYyIKLSAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICBpZiB7JHZhcnMoZW5hYmxlX2ZsZXhpbG0pfSB7Ci0gICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiXFxcbiAgIC1ibG9ja19kaXIgXCR2YXJzKCRwYXJ0LGNkdHYpICIKLSAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICBpZiB7JHZhcnMoZ2VuZXJhdGVfZmxvd19zdGVwcyl9IHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJcXFxuICAgLWJsb2NrX2RpciAkdmFycyhwYXJ0aXRpb25fZGlyKS8kcGFydC8kZGlyL2Jsb2NrLmN0cy5lbmMiCi0gICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIlxcXG4gICAtYmxvY2tfZGlyICR2YXJzKHBhcnRpdGlvbl9kaXIpLyRwYXJ0LyRkaXIvY3RzLmVuYyIKLSAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0KLSAgICAgIH0KLSAgICAgIGlmIHskdmFycyhlbmFibGVfcGFjKX0gewotICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIlxcXG4gLWhpZXJEaXIgJHZhcnMocGFjX3NjcmF0Y2hfZGlyKSIKLSAgICAgIH0KLSAgICAgIGFwcGVuZCBjb21tYW5kICJcbiIKLQotICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLGFzc2VtYmxlX2Rlc2lnbiAkY29tbWFuZF0KLSAgICAgIGlmIHsoW2xpbmRleCBbc3BsaXQgJHZhcnModmVyc2lvbikgIi4iXSAgMF0gPiAxMCkgJiYgJHZhcnMoY3BmX3RpbWluZyl9IHsKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAic291cmNlICRtbW1jX2ZpbGVcbiIKLSAgICAgIH0KLSAgICAgIGlmIHskdmFycyhmbG93KSA9PSAibW1tYyJ9IHsKLSAgICAgICAgIHNldCBjb21tYW5kIFtGRl9OT1ZVUzo6ZGVyYXRlX3RpbWluZyBtbW1jXQotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLGRlcmF0ZV90aW1pbmcgJGNvbW1hbmRdCi0gICAgICB9Ci0KLSAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OnNvdXJjZV9wbHVnIGFsd2F5c19zb3VyY2VfdGNsXQotCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAjIExvYWQgInBvc3QgcmVidWRnZXQiIHBsdWctaW4gc2NyaXB0Ci0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjpzb3VyY2VfcGx1ZyBwb3N0X3JlYnVkZ2V0X3RjbCAwXQotCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAjIFNwZWNpZnkgSUxNcyBpZiBkZWZpbmVkCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICBpZiB7JHZhcnMoaWxtKX0gewotICAgICAgICAgaWYgeyR2YXJzKHZlcmJvc2UpfSB7Ci0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiNcbiIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyBTUEVDSUZZSU5HIElMTXNcbiIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiI1xuIgotICAgICAgICAgfQotICAgICAgICAgc2V0IGNvbW1hbmQgIiIgCi0gICAgICAgICBmb3JlYWNoIGNlbGwgJGlsbV9saXN0IHsKLSAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkY2VsbCxpbG1fZGlyKV0gJiYgW2ZpbGUgaXNkaXJlY3RvcnkgJHZhcnMoJGNlbGwsaWxtX2RpcildfSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAic3BlY2lmeUlsbSAtY2VsbCAkY2VsbCAtZGlyICR2YXJzKCRjZWxsLGlsbV9kaXIpXG4iCi0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgcHV0cyAiPEZGPiBXQVJOSU5HOiBJTE0gRElSRUNUT1JZIE1JU1NJTkcgRk9SICRjZWxsIC4uLiBTS0lQUElORyIKLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0gCi0gIAotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHNwZWNpZnlfaWxtICRjb21tYW5kXQotICAKLSAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhpbG1fbm9uX3NkY19maWxlKV19IHsKLSAgICAgICAgICAgIGlmIHtbbGluZGV4IFtzcGxpdCAkdmFycyh2ZXJzaW9uKSAiLiJdICAwXSA8PSAxMH0gewotICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgImxvYWRUaW1pbmdDb24gLWlsbU5vblNkY0ZpbGUgJHZhcnMoaWxtX25vbl9zZGNfZmlsZSlcbiIKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBzZXQgY29tbWFuZCAic2V0SWxtTm9uU2RjQ29uc3RyYWludEZpbGUgJHZhcnMoaWxtX25vbl9zZGNfZmlsZSlcbiIKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxsb2FkX2lsbV9ub25fc2RjX2ZpbGUgJGNvbW1hbmRdCi0gICAgICAgICB9Ci0gICAgICB9Ci0KLSMgICAgICBpZiB7W2xpbmRleCBbc3BsaXQgJHZhcnModmVyc2lvbikgIi4iXSAgMF0gPD0gMTB9IHsKLSMgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoY3BmX2ZpbGUpXX0gewotIyAgICAgICAgICAgIHNldCBjb21tYW5kICJsb2FkQ1BGICR2YXJzKGNwZl9maWxlKVxuIgotIyAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxsb2FkX2NwZiAkY29tbWFuZF0KLSMgICAgICAgICAgICBzZXQgY29tbWFuZCAiY29tbWl0Q1BGIgotIyAgICAgICAgICAgIGlmIHskdmFycyhjcGZfa2VlcF9yb3dzKX0gewotIyAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgLWtlZXBSb3dzIgotIyAgICAgICAgICAgIH0KLSMgICAgICAgICAgICBpZiB7JHZhcnMoY3BmX3Bvd2VyX2RvbWFpbil9IHsKLSMgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiIC1wb3dlcl9kb21haW4iCi0jICAgICAgICAgICAgfQotIyAgICAgICAgICAgIGlmIHskdmFycyhjcGZfaXNvbGF0aW9uKX0gewotIyAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgLWlzb2xhdGlvbiIKLSMgICAgICAgICAgICB9Ci0jICAgICAgICAgICAgaWYgeyR2YXJzKGNwZl9zdGF0ZV9yZXRlbnRpb24pfSB7Ci0jICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAtc3RhdGVfcmV0ZW50aW9uIgotIyAgICAgICAgICAgIH0KLSMgICAgICAgICAgICBpZiB7JHZhcnMoY3BmX2xldmVsX3NoaWZ0ZXIpfSB7Ci0jICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAtbGV2ZWxfc2hpZnRlciIKLSMgICAgICAgICAgICB9Ci0jICAgICAgICAgICAgaWYgeyR2YXJzKGNwZl9wb3dlcl9zd2l0Y2gpfSB7Ci0jICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAtcG93ZXJfc3dpdGNoIgotIyAgICAgICAgICAgIH0KLSMgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiXG4iCi0jICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLGNvbW1pdF9jcGYgJGNvbW1hbmRdCi0jICAgICAgICAgfQotIyAgICAgIH0KLQotICAgICAgaWYge1tsaW5kZXggW3NwbGl0ICR2YXJzKHZlcnNpb24pICIuIl0gIDBdIDw9IDEwfSB7Ci0gICAgICAgICBzZXQgY29tbWFuZCBbRkZfTk9WVVM6OmluaXRpYWxpemVfdGltaW5nIG1tbWNdCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksaW5pdGlhbGl6ZV90aW1pbmcgJGNvbW1hbmRdCi0gICAgICB9IGVsc2VpZiB7W2luZm8gZXhpc3RzIHZhcnMoY3BmX2ZpbGUpXSAmJiAkdmFycyhjcGZfdGltaW5nKX0gewotICAgICAgICAgc2V0IGNvbW1hbmQgW0ZGX05PVlVTOjppbml0aWFsaXplX3RpbWluZyBtbW1jXQotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLGluaXRpYWxpemVfdGltaW5nICRjb21tYW5kXQotICAgICAgfQotCi0gICAgICBpZiB7ISR2YXJzKGVuYWJsZV9mbGV4aWxtKX0gewotICAgICAgICAgc2V0IGNvbW1hbmQgW0ZGX05PVlVTOjp1cGRhdGVfdGltaW5nIG1tbWMgXQotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHVwZGF0ZV90aW1pbmcgJGNvbW1hbmRdCi0gICAgICB9Ci0KLSAgICAgIGlmIHskdmFycyhlbmFibGVfcGFjKX0gewotCi0gICAgICAgICBpZiB7JHZhcnModmVyYm9zZSl9IHsKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiI1xuIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjIERFRklOSU5HIFBBQyBNT0RFU1xuIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjXG4iCi0gICAgICAgICB9Ci0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjpzb3VyY2VfcGx1ZyBwcmVfcGFjX3RjbCAwXQotICAgICAgICAgc2V0IGNvbW1hbmQgIiIKLSAgICAgICAgIGZvcmVhY2ggcGFydCAkcGFjX2xpc3QgewotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgInNldCBoaW5zdCBcW2RiSEluc3ROYW1lIFxbZGJDZWxsSEluc3QgXFtkYkdldENlbGxCeU5hbWUgJHBhcnRcXVxdXF1cbiIKLSAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkcGFydCxwYWNfbW9kZSldfSB7Ci0gICAgICAgICAgICAgICBpZiB7JHZhcnMoJHBhcnQscGFjX21vZGUpID09ICJyZWFkX29ubHkifSB7IHNldCB2YXJzKCRwYXJ0LHBhY19tb2RlKSAicmVhZE9ubHkiIH0KLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJzZXRNb2R1bGVWaWV3IC1oaW5zdCBcJGhpbnN0IC10eXBlICR2YXJzKCRwYXJ0LHBhY19tb2RlKVxuIgotICAgICAgICAgICAgfSAKLSAgICAgICAgIH0KLQotICAgICAgICAgYXBwZW5kIGNvbW1hbmQgImdldE1vZHVsZVZpZXdcbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxzZXRfbW9kdWxlX3ZpZXcgJGNvbW1hbmRdCi0KLSAgICAgICAgIGlmIHshJHZhcnMoZW5hYmxlX2ZsZXhpbG0pfSB7Ci0gICAgICAgICAgICBpZiB7JHZhcnModmVyYm9zZSl9IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiI1xuIgotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjIFJVTk5JTkcgUE9TVCBBU1NFTUJMWSBDTE9TVVJFXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiNcbiIKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHNldCBjb21tYW5kICJvcHRfZGVzaWduIC1wb3N0X2N0cyAtcmVwb3J0X2RpciAkdmFycyhycHRfZGlyKSAtcmVwb3J0X3ByZWZpeCBwYWNcbiIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxvcHRfZGVzaWduICRjb21tYW5kXQotICAgCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjpzb3VyY2VfcGx1ZyBwb3N0X3BhY190Y2wgMF0KLSAgICAgICAgIH0KLSAgICAgIH0KLQotICAgICAgaWYge1tsaW5kZXggW3NwbGl0ICR2YXJzKHZlcnNpb24pICIuIl0gIDBdIDwgMTZ9IHsKLSAgICAgICAgc2V0IGNvbW1hbmQgInNldF9kYiByb3V0ZV90cmlhbF9mbG9vcnBsYW5fbW9kZSB0cnVlXG5zZXRfZGIgcm91dGVfdHJpYWxfaG9ub3JfcGluIHRydWVcbiIKLSAgICAgICAgYXBwZW5kIGNvbW1hbmQgInJvdXRlX3RyaWFsXG4iCi0gICAgICB9IGVsc2UgewotICAgICAgICBzZXQgY29tbWFuZCAic2V0X2RiIHJvdXRlX3RyaWFsX2Zsb29ycGxhbl9tb2RlIHRydWVcbnNldF9kYiByb3V0ZV9lYXJseV9nbG9iYWxfaG9ub3JfcGFydGl0aW9uX3BpbiAuXG4iCi0gICAgICAgIGFwcGVuZCBjb21tYW5kICJyb3V0ZV9lYXJseV9nbG9iYWxcbiIKLSAgICAgIH0KLSAgICAgIGFwcGVuZCBjb21tYW5kICJjcmVhdGVfdGltaW5nX2J1ZGdldCAtbm9fdHJpYWxfaXBvIC1ub19jb25zdGFudF9tb2RlbFxuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLGNyZWF0ZV90aW1pbmdfYnVkZ2V0ICRjb21tYW5kXQotCi0gICAgICBpZiB7W3N0cmluZyBjb21wYXJlIC1ub2Nhc2UgJHZhcnMoZGJzX2Zvcm1hdCkgIm9hIl09PTB9IHsKLSAgICAgICAgIGlmIHtbbGluZGV4IFtzcGxpdCAkdmFycyh2ZXJzaW9uKSAiLiJdICAwXSA+IDEwfSB7Ci0gICAgICAgICAgICBzZXQgY29tbWFuZCAid3JpdGVfZGIgLW9hX2xpYl9jZWxsX3ZpZXcgeyR2YXJzKG9hX2Rlc2lnbl9saWIpICR2YXJzKGRlc2lnbikgYnVkZ2V0fVxuIgotICAgICAgICAgfQotICAgICAgfSBlbHNlIHsKLSAgICAgICAgIHNldCBjb21tYW5kICJ3cml0ZV9kYiAkdmFycyhkYnNfZGlyKS9idWRnZXQuZW5jXG4iCi0gICAgICB9Ci0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksc2F2ZV9idWRnZXRfZGJzICRjb21tYW5kXQotCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAjIFBhcnRpdGlvbiBhbmQgc2F2ZSB0aGUgcGFydGl0aW9ucyBpbnRvIHRoZQotICAgICAgIyBkaXJlY3RvcnkgUEFSVElUSU9OCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0jICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6c291cmNlX3BsdWcgcHJlX3BhcnRpdGlvbl90Y2xdCi0KLSMgICAgICBzZXQgY29tbWFuZCAic2V0IHB0bmdQdG5UaW1pbmdMaWJGb3JtYXQgbGliXG5wYXJ0aXRpb24gLWJ1aWxkU2NhblxuIgotICAgICAgc2V0IGNvbW1hbmQgInBhcnRpdGlvbiAtYnVpbGRTY2FuXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCkscGFydGl0aW9uICRjb21tYW5kXQotICAgICAgaWYge1tsaW5kZXggW3NwbGl0ICR2YXJzKHZlcnNpb24pICIuIl0gIDBdID4gMTB9IHsKLSAgICAgICAgIGlmIHsoW3N0cmluZyBjb21wYXJlICR2YXJzKGRic19mb3JtYXQpICJvYSJdPT0wKX0gewotICAgICAgICAgICAgaWYgeyR2YXJzKGhpZXJfZmxvd190eXBlKSA9PSAiMXBhc3MifSB7Ci0gICAgICAgICAgICAgICBzZXQgY29tbWFuZCAic2F2ZVBhcnRpdGlvbiAtcHRuTGliICR2YXJzKG9hX3BhcnRpdGlvbl9saWIpIC1kaXIgJHZhcnMocGFydGl0aW9uX2RpcilcbiIKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBzZXQgY29tbWFuZCAic2F2ZVBhcnRpdGlvbiAtcHRuTGliICR2YXJzKG9hX3BhcnRpdGlvbl9saWIpIC1kaXIgJHZhcnMocGFydGl0aW9uX2Rpcl9wYXNzMilcbiIKLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBpZiB7JHZhcnMoaGllcl9mbG93X3R5cGUpID09ICIxcGFzcyJ9IHsKLSAgICAgICAgICAgICAgIHNldCBjb21tYW5kICJzYXZlUGFydGl0aW9uIC1kaXIgJHZhcnMocGFydGl0aW9uX2RpcikgLWRlZiAtc2NhbkRlZlxuIgotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIHNldCBjb21tYW5kICJzYXZlUGFydGl0aW9uIC1kaXIgJHZhcnMocGFydGl0aW9uX2Rpcl9wYXNzMikgLWRlZiAtc2NhbkRlZlxuIgotICAgICAgICAgICAgfQotICAgICAgICAgfQotICAgICAgfSBlbHNlIHsKLSAgICAgICAgIHNldCBjb21tYW5kICJzYXZlUGFydGl0aW9uIC1kaXIgJHZhcnMocGFydGl0aW9uX2RpcikgLWRlZiAtc2NhbkRlZlxuIgotICAgICAgfQotICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHNhdmVfcGFydGl0aW9uICRjb21tYW5kXQotIyAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OnNvdXJjZV9wbHVnIHBvc3RfcGFydGl0aW9uX3RjbF0KLQotICAgICAgaWYgeyR2YXJzKHVzZV9mbGV4bW9kZWxzKSAmJiAkdmFycyhmbGV4bW9kZWxfYXNfcHRuKX0gewotIyAgICAgICAgIHNldCBjb21tYW5kICJyZXBsYWNlX3Byb3RvX21vZGVsIFxcXG4iCi0jICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAgIC1wcmVfZnRfZGlyICR2YXJzKGVjb19kaXIpL3ByZV9mdCBcXFxuIgotIyAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgICAtcG9zdF9mdF9kaXIgJHZhcnMoZWNvX2RpcikvcG9zdF9mdCBcXFxuIgotIyAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgICAtcHRuX2RpciAkdmFycyhwYXJ0aXRpb25fZGlyKSBcXFxuIgotIyAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgICAtcHRuX2Z1bGxfbmV0bGlzdF9kaXIgLi90ZW1wX25ldGxpc3RfZGlyIFxcXG4iCi0jICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAgIC1vdXRfZGlyICR2YXJzKHBhcnRpdGlvbl9kaXIpXG4iCi0KLSAgICAgICAgIHNldCBjb21tYW5kICJyZXBsYWNlX3Byb3RvX21vZGVsIFxcXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZCAiICAgLXB0bl9kaXIgJHZhcnMocGFydGl0aW9uX2RpcikgXFxcbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgICAtb3V0X2RpciAkdmFycyhwYXJ0aXRpb25fZGlyKVxuIgotCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCkscmVwbGFjZV9wcm90b19tb2RlbCAkY29tbWFuZF0KLSAgICAgIH0KLQotICAgICAgaWYgeyEkdmFycyhjb2RlZ2VuKX0gewotICAgICAgICAgdXBsZXZlbCAjMCBldmFsICRjb21tYW5kcwotICAgICAgICAgc2V0IGNvbW1hbmRzICIiIAotICAgICAgfQotCi0jICAgICAgaWYgeyR2YXJzKG1ha2VmaWxlKSAmJiAhJHZhcnMoZ2VuZXJhdGVfZmxvd19zdGVwcyl9IHsgCi0gICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJpZiB7XFtpbmZvIGV4aXN0cyBlbnYoVlBBVEgpXF19IHtcbiIKLSAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgImV4ZWMgL2Jpbi90b3VjaCBcJGVudihWUEFUSCkvJHZhcnMoc3RlcClcbiIKLSAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIn1cbiIKLSMgICAgICAgfQotCi0jICAgICAgaWYgeyR2YXJzKGVuYWJsZV9mbGV4aWxtKX0gewotIyAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyBDb3B5IE1ha2VmaWxlcyBpbiBjYXNlIHRoZXkgZ2V0IGRlbGV0ZWQgZHVyaW5nIHRoZSBmbG93IC4uLlxuIgotIyAgICAgICAgIGZvcmVhY2ggcGFydCBbY29uY2F0ICR2YXJzKGRlc2lnbikgJHZhcnMocGFydGl0aW9uX2xpc3QpXSB7Ci0jICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJmaWxlIGNvcHkgLWZvcmNlICR2YXJzKHNjcmlwdF9kaXIpLyRwYXJ0Lk1ha2VmaWxlICR2YXJzKHBhcnRpdGlvbl9kaXJfcGFzczIpLyRwYXJ0L01ha2VmaWxlXG4iCi0jICAgICAgICAgfQotIyAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiZmlsZSBjb3B5IC1mb3JjZSAkdmFycyhwYXJ0aXRpb25fZGlyKS9NYWtlZmlsZSAkdmFycyhwYXJ0aXRpb25fZGlyX3Bhc3MyKS9NYWtlZmlsZVxuIgotIyAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiZmlsZSBjb3B5IC1mb3JjZSAkdmFycyhwYXJ0aXRpb25fZGlyKS9NYWtlZmlsZS5wYXJ0aXRpb24gJHZhcnMocGFydGl0aW9uX2Rpcl9wYXNzMikvTWFrZWZpbGUucGFydGl0aW9uXG4iCi0jICAgICAgfQotCi0gICAgICBpZiB7JHZhcnMoY29kZWdlbil9IHsKLSAgICAgICAgIHJldHVybiAkY29tbWFuZHMKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgICB1cGxldmVsICMwIGV2YWwgJGNvbW1hbmRzCi0gICAgICB9Ci0gICB9Ci0KLSAgIHByb2MgcnVuX2Fzc2VtYmxlX2ZsZXhpbG0ge3tmb3JtYXQgMX19IHsKLQotICAgICAgZ2xvYmFsIHZhcnMKLSAgICAgIGdsb2JhbCBlcnJvcnMKLSAgICAgIGdsb2JhbCBlbnYKLQotICAgICAgc2V0IHZhcnMoc3RlcCkgYXNzZW1ibGVfZmxleGlsbQotICAgICAgc2V0IGNvbW1hbmRzICIiCi0jICAgICAgYXBwZW5kIGNvbW1hbmRzICJzZXQgdmFycyhzdGVwKSAkdmFycyhzdGVwKVxuIgotCi0gICAgICBGRl9OT1ZVUzo6aW5pdGlhbGl6ZV9zdGVwICR2YXJzKHN0ZXApCi0KLSAgICAgIGlmIHskdmFycyh2ZXJib3NlKX0gewotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgQVNTRU1CTElORyBERVNJR05cbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiI1xuIgotICAgICAgfQotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgIyBMb2FkICJwcmUgcmVidWRnZXQiIHBsdWctaW4gc2NyaXB0Ci0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjpzb3VyY2VfcGx1ZyBwcmVfcmVidWRnZXRfdGNsXQotCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAjIEFzc2VtYmxlIHRoZSBkZXNpZ24KLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgIHNldCB2YXJzKGlsbSkgZmFsc2UKLSAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhpbG1fbGlzdCldICYmICgkdmFycyhpbG1fbGlzdCkgIT0gIiIpfSB7Ci0gICAgICAgICBzZXQgdmFycyhpbG0pIHRydWUgCi0gICAgICB9IGVsc2UgewotICAgICAgICAgc2V0IHZhcnMoaWxtX2xpc3QpICIiCi0gICAgICB9Ci0KLSAgICAgICMgQkNMOiBBZGRlZCB0YWlsIG9mIHN1YnN0IG9mIHZhcnMoZGJzX2RpcikKLSAgICAgICMgTm90ZSAtIEVESUZGIEhpZXJhcmNoaWNhbCBmbG93IGlzIGN1cnJlbnRseSBJTkNPTVBBVElCTEUgd2l0aCBGRiBkaXIgc3RydWN0dXJlCi0gICAgICAjIFRoZSBmb2xsb3dpbmcgY29kZSBhcHBlYXJzIHRvIHJlbHkgb24gdmFycyhkYnNfZGlyKSBhbHdheXMgYmVpbmcgdW5kZXIgJHZhcnMocGFydGl0aW9uX2RpcikvJHZhcnMoZGVzaWduKQotICAgICAgIyBUaGlzIG5lZWRzIHRvIGJlIHJlY29uY2lsZWQKLSAgICAgIHNldCBkaXIgW2ZpbGUgdGFpbCBbc3Vic3QgJHZhcnMoZGJzX2RpcildXQotCi0gICAgICBpZiB7W2xpbmRleCBbc3BsaXQgJHZhcnModmVyc2lvbikgIi4iXSAgMF0gPiAxMH0gewotICAgICAgICAgc2V0IGNvbW1hbmQgW0ZGX05PVlVTOjppbml0aWFsaXplX3RpbWluZyBtbW1jXQotICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGNwZl9maWxlKV0gJiYgJHZhcnMoY3BmX3RpbWluZyl9IHsKLSAgICAgICAgICAgIHNldCBtbW1jX2ZpbGUgJHZhcnMoc2NyaXB0X2RpcikvaW5jcl92aWV3X2RlZmluaXRpb24udGNsCi0gICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKHZpZXdfZGVmaW5pdGlvbl90Y2wpXX0gewotICAgICAgICAgICAgICAgc2V0IG1tbWNfZmlsZSAkdmFycyh2aWV3X2RlZmluaXRpb25fdGNsKQotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIHNldCBtbW1jX2ZpbGUgJHZhcnMoc2NyaXB0X2Rpcikvdmlld19kZWZpbml0aW9uLnRjbAotICAgICAgICAgICAgfQotICAgICAgICAgfQotICAgICAgfQotICAgICAgaWYgeyhbc3RyaW5nIGNvbXBhcmUgLW5vY2FzZSAkdmFycyhkYnNfZm9ybWF0KSAib2EiXT09MCkgJiYgKFtsaW5kZXggW3NwbGl0ICR2YXJzKHZlcnNpb24pICIuIl0gIDBdID4gMTApfSB7Ci0KLSAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkdmFycyhkZXNpZ24pLHJlYnVkZ2V0X2Fzc2VtYmxlX3N0ZXApXX0gewotICAgICAgICAgICAgc2V0IGNvbW1hbmQgImFzc2VtYmxlX2Rlc2lnbiAtdG9wX2Rlc2lnbiB7JHZhcnMob2FfcGFydGl0aW9uX2xpYikgJHZhcnMoZGVzaWduKSAkdmFycygkdmFycyhkZXNpZ24pLHJlYnVkZ2V0X2Fzc2VtYmxlX3N0ZXApfSAtbW1tY19maWxlICRtbW1jX2ZpbGUiCi0gICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgc2V0IGNvbW1hbmQgImFzc2VtYmxlX2Rlc2lnbiAtdG9wX2Rlc2lnbiB7JHZhcnMob2FfcGFydGl0aW9uX2xpYikgJHZhcnMoZGVzaWduKSBjdHN9IC1tbW1jX2ZpbGUgJG1tbWNfZmlsZSIKLSAgICAgICAgIH0KLSAgICAgICAgIGZvcmVhY2ggcGFydCAkdmFycyhwYXJ0aXRpb25fbGlzdCkgewotICAgICAgICAgICAgaWYge1tsc2VhcmNoICRpbG1fbGlzdCAkcGFydF0gPT0gLTF9IHsKLSAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkcGFydCxyZWJ1ZGdldF9hc3NlbWJsZV9zdGVwKV19IHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJcXFxuICAgLWJsb2NrIHskdmFycyhvYV9wYXJ0aXRpb25fbGliKSAkcGFydCAkdmFycygkdmFycygkcGFydCkscmVidWRnZXRfYXNzZW1ibGVfc3RlcCl9IgotICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJcXFxuICAgLWJsb2NrIHskdmFycyhvYV9wYXJ0aXRpb25fbGliKSAkcGFydCBjdHN9IgotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAgfQotICAgICAgfSBlbHNlIHsKLSMgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgcmVidWRnZXQsaW5pdGlhbGl6ZV90aW1pbmcgJGNvbW1hbmRdCi0gICAgICAgICBpZiB7W2xpbmRleCBbc3BsaXQgJHZhcnModmVyc2lvbikgIi4iXSAgMF0gPiAxMH0gewotICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGNwZl9maWxlKV0gJiYgJHZhcnMoY3BmX3RpbWluZyl9IHsKLSAgICAgICAgICAgICAgIHNldCBhc3NlbWJsZV9jb21tYW5kICJhc3NlbWJsZV9kZXNpZ24gLWNwZl9maWxlICR2YXJzKGNwZl9maWxlKSIKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBzZXQgYXNzZW1ibGVfY29tbWFuZCAiYXNzZW1ibGVfZGVzaWduIC1tbW1jX2ZpbGUgJG1tbWNfZmlsZSIKLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBzZXQgYXNzZW1ibGVfY29tbWFuZCAiYXNzZW1ibGVfZGVzaWduIgotICAgICAgICAgfQotICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCR2YXJzKGRlc2lnbikscmVidWRnZXRfYXNzZW1ibGVfZGJzKV19IHsKLSAgICAgICAgICAgIHNldCBjb21tYW5kICIkYXNzZW1ibGVfY29tbWFuZCAtZGVmX21lcmdlIC10b3BfZGVzaWduICR2YXJzKCR2YXJzKGRlc2lnbikscmVidWRnZXRfYXNzZW1ibGVfZGJzKSIKLSAgICAgICAgIH0gZWxzZWlmIHtbaW5mbyBleGlzdHMgdmFycygkdmFycyhkZXNpZ24pLHJlYnVkZ2V0X2Fzc2VtYmxlX3N0ZXApXX0gewotICAgICAgICAgICAgc2V0IGNvbW1hbmQgIiRhc3NlbWJsZV9jb21tYW5kIC1kZWZfbWVyZ2UgJHZhcnMocGFydGl0aW9uX2RpcikvJHZhcnMoZGVzaWduKS8kZGlyLyR2YXJzKCR2YXJzKGRlc2lnbikscmVidWRnZXRfYXNzZW1ibGVfc3RlcCkuZW5jIgotICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIGlmIHskdmFycyhlbmFibGVfZmxleGlsbSl9IHsKLSMgICAgICAgICAgICAgICBzZXQgY29tbWFuZCAiJGFzc2VtYmxlX2NvbW1hbmQgXFxcbiAgIC10b3BfZGlyICR2YXJzKHBhcnRpdGlvbl9kaXJfcGFzczIpLyR2YXJzKGRlc2lnbikgIgotICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgIiRhc3NlbWJsZV9jb21tYW5kIFxcXG4gICAgLXRvcF9kaXIgJHZhcnMocGFydGl0aW9uX2RpcilfUFJFQ1RTLyR2YXJzKGRlc2lnbikgIgotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIHNldCBjb21tYW5kICIkYXNzZW1ibGVfY29tbWFuZCAtdG9wX2RpciAkdmFycyhwYXJ0aXRpb25fZGlyKS8kdmFycyhkZXNpZ24pLyRkaXIvY3RzLmVuYyAiCi0gICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0gICAgICAgICBmb3JlYWNoIHBhcnQgJHZhcnMocGFydGl0aW9uX2xpc3QpIHsKLSAgICAgICAgICAgIGlmIHtbbHNlYXJjaCAkdmFycyhpbG1fbGlzdCkgJHBhcnRdID09IC0xfSB7Ci0gICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJHBhcnQscmVidWRnZXRfYXNzZW1ibGVfZGJzKV19IHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJcXFxuICAgLWJsb2NrX2RpciAkdmFycygkcGFydCxyZWJ1ZGdldF9hc3NlbWJsZV9kYnMpIgotICAgICAgICAgICAgICAgfSBlbHNlaWYge1tpbmZvIGV4aXN0cyB2YXJzKCRwYXJ0LHJlYnVkZ2V0X2Fzc2VtYmxlX3N0ZXApXX0gewotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIlxcXG4gICAtYmxvY2tfZGlyICR2YXJzKHBhcnRpdGlvbl9kaXIpLyRwYXJ0LyRkaXIvJHZhcnMoJHBhcnQscmVidWRnZXRfYXNzZW1ibGVfc3RlcCkuZW5jIgotICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgIGlmIHskdmFycyhlbmFibGVfZmxleGlsbSl9IHsKLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJcXFxuICAgLWJsb2NrX2RpciAkdmFycyhwYXJ0aXRpb25fZGlyKV9QUkVDVFMvJHBhcnQvJHtwYXJ0fV9wb3N0X2Vjby5lbmMiCi0gICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIlxcXG4gICAtYmxvY2tfZGlyICR2YXJzKHBhcnRpdGlvbl9kaXIpLyRwYXJ0LyRkaXIvY3RzLmVuYyIKLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0KLSAgICAgIH0KLSAgICAgIGFwcGVuZCBjb21tYW5kICJcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxhc3NlbWJsZV9kZXNpZ24gJGNvbW1hbmRdCi0KLSAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OnNvdXJjZV9wbHVnIGFsd2F5c19zb3VyY2VfdGNsXQotCi0KLSAgICAgIHNldCBjb21tYW5kICIiCi0gICAgICAjIEFkZGl0aW9uYWwgdGltaW5nIHNldHVwCi0gICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJHZhcnMoZGVzaWduKSxsYXRlbmN5X3NkYyldfSB7Ci0gICAgICAgICBhcHBlbmQgY29tbWFuZCAiZm9yZWFjaCBtb2RlIFxbYWxsX2NvbnN0cmFpbnRfbW9kZXMgLWFjdGl2ZVxdIHtcbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgICBzZXQgc2RjX2ZpbGVzIFxbZ2V0X2NvbnN0cmFpbnRfbW9kZSBcJG1vZGUgLXNkY19maWxlc1xdXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZCAiICAgc2V0IHNkY19saXN0IFxbY29uY2F0IFwkc2RjX2ZpbGVzICR2YXJzKCR2YXJzKGRlc2lnbiksbGF0ZW5jeV9zZGMpXF1cbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgICB1cGRhdGVfY29uc3RyYWludF9tb2RlIC1uYW1lIFwkbW9kZSAtc2RjX2ZpbGVzIFwkc2RjX2xpc3RcbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kICJ9XG4iCi0KLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSx1cGRhdGVfY29uc3RyYWludF9tb2RlICRjb21tYW5kXQotICAgICAgfQotCi0gICAgICBmb3JlYWNoIHZpZXcgW2NvbmNhdCAkdmFycyhzZXR1cF9hbmFseXNpc192aWV3cykgJHZhcnMoaG9sZF9hbmFseXNpc192aWV3cyldIHsKLSAgICAgICAgIGZvcmVhY2ggcHRuICR2YXJzKHBhcnRpdGlvbl9saXN0KSB7Ci0gICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJHB0biwkdmlldyxsYXRlbmN5X3NkYyldfSB7Ci0gICAgICAgICAgICAgICBzZXQgbGF0ZW5jeSgkdmlldywkcHRuKSAkdmFycygkcHRuLCR2aWV3LGxhdGVuY3lfc2RjKQotICAgICAgICAgICAgfSBlbHNlaWYge1tpbmZvIGV4aXN0cyB2YXJzKCRwdG4sbGF0ZW5jeV9zZGMpXX0gewotICAgICAgICAgICAgICAgc2V0IGxhdGVuY3koJHZpZXcsJHB0bikgJHZhcnMoJHB0bixsYXRlbmN5X3NkYykKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBzZXQgbGF0ZW5jeSgkdmlldywkcHRuKSAibm9uZSIKLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0KLSAgICAgIH0KLSAgICAgIAotICAgICAgc2V0IGNvbW1hbmQgIiIKLSAgICAgIGZvcmVhY2ggdmlldyBbY29uY2F0ICR2YXJzKHNldHVwX2FuYWx5c2lzX3ZpZXdzKSAkdmFycyhob2xkX2FuYWx5c2lzX3ZpZXdzKV0gewotICAgICAgICAgZm9yZWFjaCBwdG4gJHZhcnMocGFydGl0aW9uX2xpc3QpIHsKLSAgICAgICAgICAgIGlmIHskbGF0ZW5jeSgkdmlldywkcHRuKSAhPSAibm9uZSJ9IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJzZXRfcGFydGl0aW9uX3VzZXJfY29uc3RyYWludHNfZmlsZSAtdmlldyAkdmlldyAtbmFtZSAkbGF0ZW5jeSgkdmlldywkcHRuKSAtcGFydGl0aW9uICRwdG5cbiIKLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0KLSAgICAgIH0KLQotICAgICAgaWYgeyRjb21tYW5kICE9ICIifSB7ICAgICAgCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksc2V0X3BhcnRpdGlvbl91c2VyX2NvbnN0cmFpbnRzX2ZpbGUgJGNvbW1hbmRdCi0gICAgICB9Ci0KLSAgICAgIGlmIHsoW2xpbmRleCBbc3BsaXQgJHZhcnModmVyc2lvbikgIi4iXSAgMF0gPiAxMCkgJiYgJHZhcnMoY3BmX3RpbWluZyl9IHsKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAic291cmNlICRtbW1jX2ZpbGVcbiIKLSAgICAgIH0KLSAgICAgIGlmIHskdmFycyhmbG93KSA9PSAibW1tYyJ9IHsKLSAgICAgICAgIHNldCBjb21tYW5kIFtGRl9OT1ZVUzo6ZGVyYXRlX3RpbWluZyBtbW1jXQotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLGRlcmF0ZV90aW1pbmcgJGNvbW1hbmRdCi0gICAgICB9Ci0KLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICMgTG9hZCAicG9zdCBhc3NlbWJsZV9mbGV4aWxtIiBwbHVnLWluIHNjcmlwdAotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6c291cmNlX3BsdWcgcG9zdF9mbGV4aWxtIDBdCi0KLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICMgU3BlY2lmeSBJTE1zIGlmIGRlZmluZWQKLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgIGlmIHskdmFycyhpbG0pfSB7Ci0gICAgICAgICBpZiB7JHZhcnModmVyYm9zZSl9IHsKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiI1xuIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjIFNQRUNJRllJTkcgSUxNc1xuIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjXG4iCi0gICAgICAgICB9Ci0gICAgICAgICBzZXQgY29tbWFuZCAiIiAKLSAgICAgICAgIGZvcmVhY2ggY2VsbCAkdmFycyhpbG1fbGlzdCkgewotICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCRjZWxsLGlsbV9kaXIpXSAmJiBbZmlsZSBpc2RpcmVjdG9yeSAkdmFycygkY2VsbCxpbG1fZGlyKV19IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJzcGVjaWZ5X2lsbSAtY2VsbCAkY2VsbCAtZGlyICR2YXJzKCRjZWxsLGlsbV9kaXIpXG4iCi0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgcHV0cyAiPEZGPiBXQVJOSU5HOiBJTE0gRElSRUNUT1JZIE1JU1NJTkcgRk9SICRjZWxsIC4uLiBTS0lQUElORyIKLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0gCi0gIAotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHNwZWNpZnlfaWxtICRjb21tYW5kXQotICAKLSAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhpbG1fbm9uX3NkY19maWxlKV19IHsKLSAgICAgICAgICAgIGlmIHtbbGluZGV4IFtzcGxpdCAkdmFycyh2ZXJzaW9uKSAiLiJdICAwXSA8PSAxMH0gewotICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgImxvYWRUaW1pbmdDb24gLWlsbU5vblNkY0ZpbGUgJHZhcnMoaWxtX25vbl9zZGNfZmlsZSlcbiIKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBzZXQgY29tbWFuZCAic2V0SWxtTm9uU2RjQ29uc3RyYWludEZpbGUgJHZhcnMoaWxtX25vbl9zZGNfZmlsZSlcbiIKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxsb2FkX2lsbV9ub25fc2RjX2ZpbGUgJGNvbW1hbmRdCi0gICAgICAgICB9Ci0gICAgICB9Ci0KLSMgICAgICBpZiB7W2xpbmRleCBbc3BsaXQgJHZhcnModmVyc2lvbikgIi4iXSAgMF0gPD0gMTB9IHsKLSMgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoY3BmX2ZpbGUpXX0gewotIyAgICAgICAgICAgIHNldCBjb21tYW5kICJsb2FkQ1BGICR2YXJzKGNwZl9maWxlKVxuIgotIyAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxsb2FkX2NwZiAkY29tbWFuZF0KLSMgICAgICAgICAgICBzZXQgY29tbWFuZCAiY29tbWl0Q1BGIgotIyAgICAgICAgICAgIGlmIHskdmFycyhjcGZfa2VlcF9yb3dzKX0gewotIyAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgLWtlZXBSb3dzIgotIyAgICAgICAgICAgIH0KLSMgICAgICAgICAgICBpZiB7JHZhcnMoY3BmX3Bvd2VyX2RvbWFpbil9IHsKLSMgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiIC1wb3dlcl9kb21haW4iCi0jICAgICAgICAgICAgfQotIyAgICAgICAgICAgIGlmIHskdmFycyhjcGZfaXNvbGF0aW9uKX0gewotIyAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgLWlzb2xhdGlvbiIKLSMgICAgICAgICAgICB9Ci0jICAgICAgICAgICAgaWYgeyR2YXJzKGNwZl9zdGF0ZV9yZXRlbnRpb24pfSB7Ci0jICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAtc3RhdGVfcmV0ZW50aW9uIgotIyAgICAgICAgICAgIH0KLSMgICAgICAgICAgICBpZiB7JHZhcnMoY3BmX2xldmVsX3NoaWZ0ZXIpfSB7Ci0jICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAtbGV2ZWxfc2hpZnRlciIKLSMgICAgICAgICAgICB9Ci0jICAgICAgICAgICAgaWYgeyR2YXJzKGNwZl9wb3dlcl9zd2l0Y2gpfSB7Ci0jICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAtcG93ZXJfc3dpdGNoIgotIyAgICAgICAgICAgIH0KLSMgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiXG4iCi0jICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLGNvbW1pdF9jcGYgJGNvbW1hbmRdCi0jICAgICAgICAgfQotIyAgICAgIH0KLQotICAgICAgaWYge1tsaW5kZXggW3NwbGl0ICR2YXJzKHZlcnNpb24pICIuIl0gIDBdIDw9IDEwfSB7Ci0gICAgICAgICBzZXQgY29tbWFuZCBbRkZfTk9WVVM6OmluaXRpYWxpemVfdGltaW5nIG1tbWNdCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksaW5pdGlhbGl6ZV90aW1pbmcgJGNvbW1hbmRdCi0gICAgICB9IGVsc2VpZiB7W2luZm8gZXhpc3RzIHZhcnMoY3BmX2ZpbGUpXSAmJiAkdmFycyhjcGZfdGltaW5nKX0gewotICAgICAgICAgc2V0IGNvbW1hbmQgW0ZGX05PVlVTOjppbml0aWFsaXplX3RpbWluZyBtbW1jXQotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLGluaXRpYWxpemVfdGltaW5nICRjb21tYW5kXQotICAgICAgfQotCi0gICAgICBpZiB7ISR2YXJzKGVuYWJsZV9mbGV4aWxtKX0gewotICAgICAgICAgc2V0IGNvbW1hbmQgW0ZGX05PVlVTOjp1cGRhdGVfdGltaW5nIG1tbWMgXQotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHVwZGF0ZV90aW1pbmcgJGNvbW1hbmRdCi0gICAgICB9Ci0KLSAgICAgIHNldCBjb21tYW5kICIiCi0gICAgICBmb3JlYWNoIG5hbWUgJHZhcnMocGFydGl0aW9uX2xpc3QpIHsKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kICJzZXRfcGFydGl0aW9uX3Bpbl9zdGF0dXMgLXBhcnRpdGlvbiAkbmFtZSAtcGlucyAqIC1zdGF0dXMgcGxhY2VkXG4iCi0gICAgICB9IAotICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHNldF9wYXJ0aXRpb25fcGluX3N0YXR1cyAkY29tbWFuZF0KLQotIyAgICAgIHNldCBjb21tYW5kICJkYl9kZWxldGVfcm91dGVfdHJpYWxcbiIKLSMgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksZGVsZXRlX3JvdXRlX3RyaWFsICRjb21tYW5kXQotCi0gICAgICBpZiB7W2xpbmRleCBbc3BsaXQgJHZhcnModmVyc2lvbikgIi4iXSAgMF0gPCAxNn0gewotICAgICAgICBzZXQgY29tbWFuZCAic2V0X2RiIHJvdXRlX3RyaWFsX2hhbmRsZV9wYXJ0aXRpb25fY29tcGxleCB0cnVlXG4iIAotICAgICAgICBhcHBlbmQgY29tbWFuZCAic2V0X2RiIHJvdXRlX3RyaWFsX2hvbm9yX3BpbiBmYWxzZVxuIgotICAgICAgICBhcHBlbmQgY29tbWFuZCAicm91dGVfdHJpYWxcbiIKLSAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHJvdXRlX3RyaWFsICRjb21tYW5kXQotICAgICAgfSBlbHNlIHsKLSAgICAgICAgc2V0IGNvbW1hbmQgInNldF9kYiBzZXRfZGIgcm91dGVfZWFybHlfZ2xvYmFsX2hvbm9yX3BhcnRpdGlvbl9mZW5jZSAuXG4iIAotICAgICAgICBhcHBlbmQgY29tbWFuZCAic2V0X2RiIHJvdXRlX2Vhcmx5X2dsb2JhbF9ob25vcl9wYXJ0aXRpb25fcGluIHt9XG4iCi0gICAgICAgIGFwcGVuZCBjb21tYW5kICJyb3V0ZV9lYXJseV9nbG9iYWxcbiIKLSAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLGVhcmx5X3JvdXRlICRjb21tYW5kXQotICAgICAgfQotCi0gICAgICBzZXQgY29tbWFuZCAiIgotICAgICAgYXBwZW5kIGNvbW1hbmQgImNyZWF0ZV9hY3RpdmVfbG9naWNfdmlldyAtdHlwZSBmbGF0X3RvcFxuIgotICAgICAgYXBwZW5kIGNvbW1hbmQgInRpbWVfZGVzaWduIC1wcmVfY3RzIC1yZXBvcnRfZGlyICR2YXJzKHJwdF9kaXIpIC1yZXBvcnRfcHJlZml4IGFzc2VtYmxlX3ByZWN0c19mbGV4aWxtXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZCAiY2xlYXJfYWN0aXZlX2xvZ2ljX3ZpZXdcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxjcmVhdGVfYWN0aXZlX2xvZ2ljX3ZpZXcgJGNvbW1hbmRdCi0KLSMgICAgICBhcHBlbmQgY29tbWFuZCAiZGVyaXZlX3RpbWluZ19idWRnZXQgLW5vX3RyaWFsX2lwbyAtbm9fY29uc3RhbnRfbW9kZWxcbiIKLSMgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksZGVyaXZlX3RpbWluZ19idWRnZXQgJGNvbW1hbmRdCi0KLSMgICAgICBpZiB7W3N0cmluZyBjb21wYXJlIC1ub2Nhc2UgJHZhcnMoZGJzX2Zvcm1hdCkgIm9hIl09PTB9IHsKLSMgICAgICAgICBpZiB7W2xpbmRleCBbc3BsaXQgJHZhcnModmVyc2lvbikgIi4iXSAgMF0gPiAxMH0gewotIyAgICAgICAgICAgIHNldCBjb21tYW5kICJ3cml0ZV9kYiAtY2VsbHZpZXcgeyR2YXJzKG9hX2Rlc2lnbl9saWIpICR2YXJzKGRlc2lnbikgYnVkZ2V0fVxuIgotIyAgICAgICAgIH0gZWxzZSB7Ci0jICAgICAgICAgICAgc2V0IGNvbW1hbmQgIndyaXRlX29hX2Rlc2lnbiAkdmFycyhvYV9kZXNpZ25fbGliKSAkdmFycyhkZXNpZ24pIGJ1ZGdldFxuIgotIyAgICAgICAgIH0KLSMgICAgICB9IGVsc2UgewotIyAgICAgICAgIHNldCBjb21tYW5kICJ3cml0ZV9kZXNpZ24gJHZhcnMoZGJzX2RpcikvYnVkZ2V0LmVuY1xuIgotIyAgICAgIH0KLSMgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksc2F2ZV9kZXNpZ24sYnVkZ2V0ICRjb21tYW5kXQotCi0gICAgICBhcHBlbmQgY29tbWFuZHMgIiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyA8RkY+IEdFTkVSQVRJTkcgUkVQT1JUU1xuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzICIjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4iCi0KLSAgICAgIGlmIHskdmFycyhyZXBvcnRfcG93ZXIpfSB7Ci0gICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMocG93ZXJfYW5hbHlzaXNfdmlldyldICYmICgkdmFycyhwb3dlcl9hbmFseXNpc192aWV3KSAhPSAiIil9IHsKLSAgICAgICAgICAgIHNldCBjb21tYW5kICJyZXBvcnRfcG93ZXIgLXZpZXcgJHZhcnMocG93ZXJfYW5hbHlzaXNfdmlldykgLW91dGZpbGUgJHZhcnMocnB0X2RpcikvJHZhcnMoc3RlcCkucG93ZXIucnB0XG4iCi0gICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgc2V0IGNvbW1hbmQgInJlcG9ydF9wb3dlciAtb3V0ZmlsZSAkdmFycyhycHRfZGlyKS8kdmFycyhzdGVwKS5wb3dlci5ycHRcbiIKLSAgICAgICAgIH0KLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxyZXBvcnRfcG93ZXIgJGNvbW1hbmRdCi0gICAgICB9Ci0KLSAgICAgIGlmIHtbRkY6OmlzX2xwX2Zsb3ddICYmIFtpbmZvIGV4aXN0cyB2YXJzKHBvd2VyX2RvbWFpbnMpXSAmJiBbbGxlbmd0aCAkdmFycyhwb3dlcl9kb21haW5zKV0gPiAxfSB7Ci0KLSAgICAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICAgICMgVmVyaWZ5IHBvd2VyIGRvbWFpbgotICAgICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCi0jICAgICAgICAgc2V0IGNvbW1hbmQgImNoZWNrX3Bvd2VyX2RvbWFpbnMgLWJpbmQgLWdjb25uIgotIyAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgLWlzb19uZXRfcGQgJHZhcnMocnB0X2RpcikvJHZhcnMoc3RlcCkuaXNvbmV0cy5ycHQiCi0jICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAteF9uZXRfcGQgJHZhcnMocnB0X2RpcikvJHZhcnMoc3RlcCkueG5ldHMucnB0XG4iCi0KLSMgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksY2hlY2tfcG93ZXJfZG9tYWluICRjb21tYW5kXQotCi0gICAgICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAgICAjIFJ1biBDTFAKLSAgICAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLQotICAgICAgICAgaWYgeyR2YXJzKHJ1bl9jbHApICYmIChbYXV0b19leGVjb2sgbGVjXSAhPSAiIil9IHsKLSAgICAgICAgICAgIHNldCBjb21tYW5kICJydW5fY2xwICIKLSAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhjbHBfb3B0aW9ucyldfSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAkdmFycyhjbHBfb3B0aW9ucykKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJcbiIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxydW5fY2xwICRjb21tYW5kXQotICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIGlmIHshW2luZm8gZXhpc3RzIHZhcnMoY2xwX3dhcm5pbmcpXX0gewotICAgICAgICAgICAgICAgcHV0cyAiPEZGPiBXQVJOSU5HOiBVTkFCTEUgVE8gUlVOIENMUCAuLi4gUExFQVNFIE1BS0UgU1VSRSBJVCBJUyBJTiBZT1VSIFBBVEgiCi0gICAgICAgICAgICAgICBzZXQgdmFycyhjbHBfd2FybmluZykgdHJ1ZQotICAgICAgICAgICAgfQotICAgICAgICAgfQotICAgICAgfQotICAgICAgaWYgeyEkdmFycyhjb2RlZ2VuKX0gewotICAgICAgICAgdXBsZXZlbCAjMCBldmFsICRjb21tYW5kcwotICAgICAgICAgc2V0IGNvbW1hbmRzICIiIAotICAgICAgfQotCi0gICAgICBpZiB7ISR2YXJzKGdlbmVyYXRlX2Zsb3dfc3RlcHMpfSB7IAotICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiaWYge1xbaW5mbyBleGlzdHMgZW52KFZQQVRIKVxdfSB7XG4iCi0gICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJleGVjIC9iaW4vdG91Y2ggXCRlbnYoVlBBVEgpLyR2YXJzKHN0ZXApXG4iCi0gICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJ9XG4iCi0gICAgICAgfQotCi0jICAgICAgaWYgeyR2YXJzKGVuYWJsZV9mbGV4aWxtKX0gewotIyAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyBDb3B5IE1ha2VmaWxlcyBpbiBjYXNlIHRoZXkgZ2V0IGRlbGV0ZWQgZHVyaW5nIHRoZSBmbG93IC4uLlxuIgotIyAgICAgICAgIGZvcmVhY2ggcGFydCBbY29uY2F0ICR2YXJzKGRlc2lnbikgJHZhcnMocGFydGl0aW9uX2xpc3QpXSB7Ci0jICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJmaWxlIGNvcHkgLWZvcmNlICR2YXJzKHNjcmlwdF9kaXIpLyRwYXJ0Lk1ha2VmaWxlICR2YXJzKHBhcnRpdGlvbl9kaXJfcGFzczIpLyRwYXJ0L01ha2VmaWxlXG4iCi0jICAgICAgICAgfQotIyAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiZmlsZSBjb3B5IC1mb3JjZSAkdmFycyhwYXJ0aXRpb25fZGlyKS9NYWtlZmlsZSAkdmFycyhwYXJ0aXRpb25fZGlyX3Bhc3MyKS9NYWtlZmlsZVxuIgotIyAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiZmlsZSBjb3B5IC1mb3JjZSAkdmFycyhwYXJ0aXRpb25fZGlyKS9NYWtlZmlsZS5wYXJ0aXRpb24gJHZhcnMocGFydGl0aW9uX2Rpcl9wYXNzMikvTWFrZWZpbGUucGFydGl0aW9uXG4iCi0jICAgICAgfQotCi0gICAgICBpZiB7JHZhcnMoY29kZWdlbil9IHsKLSAgICAgICAgIHJldHVybiAkY29tbWFuZHMKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgICB1cGxldmVsICMwIGV2YWwgJGNvbW1hbmRzCi0gICAgICB9Ci0gICB9Ci0KLSAgIHByb2MgcnVuX2ZsZXhpbG0ge3tmb3JtYXQgMX19IHsKLQotICAgICAgZ2xvYmFsIHZhcnMKLSAgICAgIGdsb2JhbCBlcnJvcnMKLSAgICAgIGdsb2JhbCBlbnYKLQotICAgICAgc2V0IHZhcnMoc3RlcCkgZmxleGlsbQotICAgICAgc2V0IGNvbW1hbmRzICIiCi0jICAgICAgYXBwZW5kIGNvbW1hbmRzICJzZXQgdmFycyhzdGVwKSAkdmFycyhzdGVwKVxuIgotCi0gICAgICBGRl9OT1ZVUzo6aW5pdGlhbGl6ZV9zdGVwIGZsZXhpbG0KLQotIyAgICAgIGlmIHskdmFycyhyZXBvcnRfcnVuX3RpbWUpfSB7Ci0jICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJzZXQgdmFycygkdmFycyhzdGVwKSxzdGFydF90aW1lKSBcW2Nsb2NrIHNlY29uZHNcXVxuIgotIyAgICAgIH0KLQotICAgICAgaWYgeyR2YXJzKHZlcmJvc2UpfSB7Ci0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiNcbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyBSRVNUT1JJTkcgREVTSUdOXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiNcbiIKLSAgICAgIH0KLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICMgTG9hZCAicHJlIGZsZXhpbG0iIHBsdWctaW4gc2NyaXB0Ci0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjpzb3VyY2VfcGx1ZyBwcmVfZmxleGlsbV90Y2xdCi0KLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICMgUmVzdG9yZSB0aGUgZGVzaWduCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICBzZXQgdmFycyhpbG0pIGZhbHNlCi0gICAgICBzZXQgaWxtX2xpc3QgW2xpc3RdCi0gICAgICBzZXQgcGFjX2xpc3QgW2xpc3RdCi0gICAgICBpZiB7JHZhcnMoZW5hYmxlX3BhYyl9IHsKLSAgICAgICAgIGZvcmVhY2ggcGFydCAkdmFycyhwYXJ0aXRpb25fbGlzdCkgewotICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCRwYXJ0LHBhY19tb2RlKV19ICB7Ci0gICAgICAgICAgICAgICBpZiB7JHZhcnMoJHBhcnQscGFjX21vZGUpID09ICJpbG0ifSB7Ci0gICAgICAgICAgICAgICAgICBsYXBwZW5kIGlsbV9saXN0ICRwYXJ0Ci0gICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgbGFwcGVuZCBwYWNfbGlzdCAkcGFydAotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAgfQotICAgICAgfQotICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGlsbV9saXN0KV0gJiYgKCR2YXJzKGlsbV9saXN0KSAhPSAiIil9IHsKLSAgICAgICAgIGZvcmVhY2ggaWxtICR2YXJzKGlsbV9saXN0KSB7Ci0gICAgICAgICAgICBpZiB7KFtsc2VhcmNoICRpbG1fbGlzdCAkaWxtXSA9PSAtMSkgJiYgKFtsc2VhcmNoICRwYWNfbGlzdCAkaWxtXSA9PSAtMSl9IHsKLSAgICAgICAgICAgICAgIGxhcHBlbmQgaWxtX2xpc3QgJGlsbQotICAgICAgICAgICAgfQotICAgICAgICAgfQotICAgICAgfQotICAgICAgaWYgeyRpbG1fbGlzdCAhPSAiIn0gewotICAgICAgICAgc2V0IHZhcnMoaWxtKSB0cnVlIAotICAgICAgfQotCi0gICAgICAjIEJDTDogQWRkZWQgdGFpbCBvZiBzdWJzdCBvZiB2YXJzKGRic19kaXIpCi0gICAgICAjIE5vdGUgLSBFRElGRiBIaWVyYXJjaGljYWwgZmxvdyBpcyBjdXJyZW50bHkgSU5DT01QQVRJQkxFIHdpdGggRkYgZGlyIHN0cnVjdHVyZQotICAgICAgIyBUaGUgZm9sbG93aW5nIGNvZGUgYXBwZWFycyB0byByZWx5IG9uIHZhcnMoZGJzX2RpcikgYWx3YXlzIGJlaW5nIHVuZGVyICR2YXJzKHBhcnRpdGlvbl9kaXIpLyR2YXJzKGRlc2lnbikKLSAgICAgICMgVGhpcyBuZWVkcyB0byBiZSByZWNvbmNpbGVkCi0gICAgICBzZXQgZGlyIFtmaWxlIHRhaWwgW3N1YnN0ICR2YXJzKGRic19kaXIpXV0KLQotICAgICAgaWYge1tsaW5kZXggW3NwbGl0ICR2YXJzKHZlcnNpb24pICIuIl0gIDBdID4gMTB9IHsKLSAgICAgICAgIHNldCBjb21tYW5kIFtGRl9OT1ZVUzo6aW5pdGlhbGl6ZV90aW1pbmcgbW1tY10KLSAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhjcGZfZmlsZSldICYmICR2YXJzKGNwZl90aW1pbmcpfSB7Ci0gICAgICAgICAgICBzZXQgbW1tY19maWxlICR2YXJzKHNjcmlwdF9kaXIpL2luY3Jfdmlld19kZWZpbml0aW9uLnRjbAotICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyh2aWV3X2RlZmluaXRpb25fdGNsKV19IHsKLSAgICAgICAgICAgICAgIHNldCBtbW1jX2ZpbGUgJHZhcnModmlld19kZWZpbml0aW9uX3RjbCkKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBzZXQgbW1tY19maWxlICR2YXJzKHNjcmlwdF9kaXIpL3ZpZXdfZGVmaW5pdGlvbi50Y2wKLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0KLSAgICAgIH0KLQotIyAgICAgIGFwcGVuZCBjb21tYW5kcyAic2V0TGltaXRlZEFjY2Vzc0ZlYXR1cmUgZW5jRmxleElMTSAxXG4iCi0KLSAgICAgIGFwcGVuZCBjb21tYW5kcyAiZmlsZSBjb3B5IC1mb3JjZSAkdmFycyhzY3JpcHRfZGlyKS92aWV3X2RlZmluaXRpb24udGNsICR2YXJzKHBhcnRpdGlvbl9kaXIpLyR2YXJzKGRlc2lnbikvJHZhcnMoZGJzX2RpcikvcHJlY3RzLmVuYy92aWV3RGVmaW5pdGlvbi50Y2xcbiIKLQotICAgICAgc2V0IGN3ZCBbZXhlYyBwd2RdCi0gICAgICBhcHBlbmQgY29tbWFuZHMgImNkICR2YXJzKHBhcnRpdGlvbl9kaXIpLyR2YXJzKGRlc2lnbilcbiIKLQotIyAgICAgIHNldCBjb21tYW5kICJyZWFkX2RiIC4gJHZhcnMoZGVzaWduKVxuIgotICAgICAgc2V0IGNvbW1hbmQgInJlYWRfZGIgJHZhcnMoZGJzX2RpcikvcHJlY3RzLmVuYyBcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCBmbGV4aWxtLHJlYWRfZGIgJGNvbW1hbmRdCi0KLSMgICAgICBpZiB7KFtsaW5kZXggW3NwbGl0ICR2YXJzKHZlcnNpb24pICIuIl0gIDBdID4gMTApICYmICR2YXJzKGNwZl90aW1pbmcpfSB7Ci0jICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJzb3VyY2UgJG1tbWNfZmlsZVxuIgotIyAgICAgIH0KLSAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OnNvdXJjZV9wbHVnIGFsd2F5c19zb3VyY2VfdGNsXQotCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAjIExvYWQgInBvc3QgZmxleGlsbSIgcGx1Zy1pbiBzY3JpcHQKLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OnNvdXJjZV9wbHVnIHBvc3RfZmxleGlsbSAwXQotCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAjIFNwZWNpZnkgSUxNcyBpZiBkZWZpbmVkCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICBpZiB7JHZhcnMoaWxtKX0gewotICAgICAgICAgaWYgeyR2YXJzKHZlcmJvc2UpfSB7Ci0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiNcbiIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyBTUEVDSUZZSU5HIElMTXNcbiIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiI1xuIgotICAgICAgICAgfQotICAgICAgICAgc2V0IGNvbW1hbmQgIiIgCi0gICAgICAgICBmb3JlYWNoIGNlbGwgJGlsbV9saXN0IHsKLSAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkY2VsbCxpbG1fZGlyKV0gJiYgW2ZpbGUgaXNkaXJlY3RvcnkgJHZhcnMoJGNlbGwsaWxtX2RpcildfSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAic3BlY2lmeUlsbSAtY2VsbCAkY2VsbCAtZGlyICR2YXJzKCRjZWxsLGlsbV9kaXIpXG4iCi0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgcHV0cyAiPEZGPiBXQVJOSU5HOiBJTE0gRElSRUNUT1JZIE1JU1NJTkcgRk9SICRjZWxsIC4uLiBTS0lQUElORyIKLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0gCi0gIAotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHNwZWNpZnlfaWxtICRjb21tYW5kXQotICAKLSMgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoaWxtX25vbl9zZGNfZmlsZSldfSB7Ci0jICAgICAgICAgICAgaWYge1tsaW5kZXggW3NwbGl0ICR2YXJzKHZlcnNpb24pICIuIl0gIDBdIDw9IDEwfSB7Ci0jICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgImxvYWRUaW1pbmdDb24gLWlsbU5vblNkY0ZpbGUgJHZhcnMoaWxtX25vbl9zZGNfZmlsZSlcbiIKLSMgICAgICAgICAgICB9IGVsc2UgewotIyAgICAgICAgICAgICAgIHNldCBjb21tYW5kICJzZXRfaWxtX25vbl9zZGNfY29uc3RyYWludHNfZmlsZSAkdmFycyhpbG1fbm9uX3NkY19maWxlKVxuIgotIyAgICAgICAgICAgIH0KLSMgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksbG9hZF9pbG1fbm9uX3NkY19maWxlICRjb21tYW5kXQotIyAgICAgICAgIH0KLSMgICAgICB9Ci0KLSMgICAgICBpZiB7W2xpbmRleCBbc3BsaXQgJHZhcnModmVyc2lvbikgIi4iXSAgMF0gPD0gMTB9IHsKLSMgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoY3BmX2ZpbGUpXX0gewotIyAgICAgICAgICAgIHNldCBjb21tYW5kICJsb2FkQ1BGICR2YXJzKGNwZl9maWxlKVxuIgotIyAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxsb2FkX2NwZiAkY29tbWFuZF0KLSMgICAgICAgICAgICBzZXQgY29tbWFuZCAiY29tbWl0Q1BGIgotIyAgICAgICAgICAgIGlmIHskdmFycyhjcGZfa2VlcF9yb3dzKX0gewotIyAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgLWtlZXBSb3dzIgotIyAgICAgICAgICAgIH0KLSMgICAgICAgICAgICBpZiB7JHZhcnMoY3BmX3Bvd2VyX2RvbWFpbil9IHsKLSMgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiIC1wb3dlcl9kb21haW4iCi0jICAgICAgICAgICAgfQotIyAgICAgICAgICAgIGlmIHskdmFycyhjcGZfaXNvbGF0aW9uKX0gewotIyAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgLWlzb2xhdGlvbiIKLSMgICAgICAgICAgICB9Ci0jICAgICAgICAgICAgaWYgeyR2YXJzKGNwZl9zdGF0ZV9yZXRlbnRpb24pfSB7Ci0jICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAtc3RhdGVfcmV0ZW50aW9uIgotIyAgICAgICAgICAgIH0KLSMgICAgICAgICAgICBpZiB7JHZhcnMoY3BmX2xldmVsX3NoaWZ0ZXIpfSB7Ci0jICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAtbGV2ZWxfc2hpZnRlciIKLSMgICAgICAgICAgICB9Ci0jICAgICAgICAgICAgaWYgeyR2YXJzKGNwZl9wb3dlcl9zd2l0Y2gpfSB7Ci0jICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAtcG93ZXJfc3dpdGNoIgotIyAgICAgICAgICAgIH0KLSMgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiXG4iCi0jICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLGNvbW1pdF9jcGYgJGNvbW1hbmRdCi0jICAgICAgICAgfQotICAgICAgfQotCi0jICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGNwZl9maWxlKV0gJiYgJHZhcnMoY3BmX3RpbWluZyl9IHsKLSAgICAgICAgIHNldCBjb21tYW5kIFtGRl9OT1ZVUzo6aW5pdGlhbGl6ZV90aW1pbmcgbW1tY10KLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxpbml0aWFsaXplX3RpbWluZyAkY29tbWFuZF0KLSMgICAgICB9Ci0KLSMgICAgICBzZXQgY29tbWFuZCBbRkZfTk9WVVM6OnVwZGF0ZV90aW1pbmcgbW1tYyBdCi0jICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHVwZGF0ZV90aW1pbmcgJGNvbW1hbmRdCi0KLSAgICAgICBmb3JlYWNoIG1vZGUgW2NvbmNhdCAkdmFycyhhY3RpdmVfc2V0dXBfdmlld3MpICR2YXJzKGFjdGl2ZV9ob2xkX3ZpZXdzKV0gewotICAgICAgICAgc2V0IGNvbW1hbmQgInVwZGF0ZV9jb25zdHJhaW50X21vZGUgLW5hbWUgJG1vZGUgLWlsbV9zZGNfZmlsZXMgXFtnZXRfY29uc3RyYWludF9tb2RlICRtb2RlIC1zZGNfZmlsZXNcXVxuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHVwZGF0ZV9jb25zdHJhaW50X21vZGUgJGNvbW1hbmRdCi0gICAgICB9Ci0KLSAgICAgIGFwcGVuZCBjb21tYW5kcyAiY2QgJGN3ZFxuIgotCi0gICAgICBzZXQgY29tbWFuZCAiIgotICAgICAgZm9yZWFjaCBwYXJ0ICR2YXJzKHBhcnRpdGlvbl9saXN0KSB7Ci0gICAgICAgICBhcHBlbmQgY29tbWFuZCAic2V0X21vZHVsZV9tb2RlbCAtY2VsbCAkcGFydCBcXFxuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIi10eXBlIGZsZXhJbG0gXFxcbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kICItZGlyICR2YXJzKHBhcnRpdGlvbl9kaXIpLyRwYXJ0LyRwYXJ0LmZsZXhpbG1cbiIKLSAgICAgIH0KLQotICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHNldF9tb2R1bGVfbW9kZWwgJGNvbW1hbmRdCi0KLSAgICAgIHNldCBjb21tYW5kICJjb21taXRfbW9kdWxlX21vZGVsXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksY29tbWl0X21vZHVsZV9tb2RlbCAkY29tbWFuZF0KLQotICAgICAgc2V0IGNvbW1hbmQgIiIgCi0gICAgICBmb3JlYWNoIHBhcnQgJHZhcnMocGFydGl0aW9uX2xpc3QpIHsKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kICJzZXRNb2R1bGVWaWV3IC1wYXJ0aXRpb24gJHBhcnQgLXR5cGUgaW50ZXJmYWNlXG4iCi0gICAgICB9Ci0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksc2V0X21vZHVsZV92aWV3ICRjb21tYW5kXQotCi0gICAgICBzZXQgY29tbWFuZCAiZ2V0TW9kdWxlVmlld1xuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLGdldF9tb2R1bGVfdmlldyAkY29tbWFuZF0KLQotICAgICAgaWYgeyR2YXJzKGZsb3cpID09ICJtbW1jIn0gewotICAgICAgICAgc2V0IGNvbW1hbmQgW0ZGX05PVlVTOjpkZXJhdGVfdGltaW5nIG1tbWNdCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksZGVyYXRlX3RpbWluZyAkY29tbWFuZF0KLSAgICAgICAgIHNldCBjb21tYW5kICIiCi0jICAgICAgICAgZm9yZWFjaCBtb2RlICR2YXJzKGNvbnN0cmFpbnRfbW9kZXMpIHsKLSMgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAidXBkYXRlX2NvbnN0cmFpbnRfbW9kZSAtbmFtZSAkbW9kZSAtc2RjX2ZpbGVzIFwiJHZhcnMoJG1vZGUscHJlX2N0c19zZGMpXCJcbiIgICAKLSMgICAgICAgICB9Ci0jICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHVwZGF0ZV9jb25zdHJhaW50X21vZGUgJGNvbW1hbmRdCi0gICAgICB9Ci0KLSAgICAgICNzZXRfYW5hbHlzaXNfdmlldyAtc2V0dXAgW2FsbF9zZXR1cF9hbmFseXNpc192aWV3c10gLWhvbGQgW2FsbF9ob2xkX2FuYWx5c2lzX3ZpZXdzXQotICAgICAgI3B1dHMgIjxGRj4gU0VUVVAgLT4gW2FsbF9zZXR1cF9hbmFseXNpc192aWV3c10iIAotICAgICAgI3B1dHMgIjxGRj4gSE9MRCAtPiBbYWxsX2hvbGRfYW5hbHlzaXNfdmlld3NdIiAKLQotICAgICAgc2V0IGNvbW1hbmQgImNyZWF0ZV9hY3RpdmVfbG9naWNfdmlldyAtdHlwZSB0b3BfY3JpdGljYWwgLXByZV9jdHNcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxjcmVhdGVfYWN0aXZlX2xvZ2ljX3ZpZXcgJGNvbW1hbmRdCi0gICAgICBzZXQgY29tbWFuZCAic2V0X2RiIG9wdF9oaWVyX29wdF9zdGFnZSBwcmVfY3RzXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksc2V0X2hpZXJfbW9kZSAkY29tbWFuZF0KLSMgICAgICBzZXQgY29tbWFuZCAic2V0T3B0TW9kZSAtYWRkSW5zdGFuY2VQcmVGaXggRmxleElMTUlfIC1hZGROZXRQcmVGaXggRmxleElMTU5fXG4iCi0jICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHNldF9vcHRfbW9kZSAkY29tbWFuZF0KLQotICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6c291cmNlX3BsdWcgcHJlX2ZsZXhpbG1fdGNsIDBdCi0gICAgICBzZXQgY29tbWFuZCAiIgotICAgICAgZm9yZWFjaCBwYXJ0ICRwYWNfbGlzdCB7Ci0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAic2V0IGhpbnN0IFxbZGJISW5zdE5hbWUgXFtkYkNlbGxISW5zdCBcW2RiR2V0Q2VsbEJ5TmFtZSAkcGFydFxdXF1cXVxuIgotICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCRwYXJ0LHBhY19tb2RlKV19IHsKLSAgICAgICAgICAgIGlmIHskdmFycygkcGFydCxwYWNfbW9kZSkgPT0gInJlYWRfb25seSJ9IHsgc2V0IHZhcnMoJHBhcnQscGFjX21vZGUpICJyZWFkT25seSIgfQotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgInNldE1vZHVsZVZpZXcgLWhpbnN0IFwkaGluc3QgLXR5cGUgJHZhcnMoJHBhcnQscGFjX21vZGUpXG4iCi0gICAgICAgICB9IAotICAgICAgfQotCi0gICAgICBhcHBlbmQgY29tbWFuZCAiZ2V0TW9kdWxlVmlld1xuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHNldF9tb2R1bGVfdmlldyAkY29tbWFuZF0KLQotICAgICAgaWYgeyR2YXJzKHZlcmJvc2UpfSB7Ci0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiNcbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyBSVU5OSU5HIEZMRVhJTE0gT1BUSU1JWkFUSU9OXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiNcbiIKLSAgICAgIH0KLSAgICAgIHNldCBjb21tYW5kICJvcHRfZGVzaWduIC1wcmVfY3RzIC1yZXBvcnRfZGlyICR2YXJzKHJwdF9kaXIpIC1yZXBvcnRfcHJlZml4IGZsZXhpbG1cbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxvcHRfZGVzaWduICRjb21tYW5kXQotCi0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjpzb3VyY2VfcGx1ZyBwb3N0X2ZsZXhpbG1fdGNsIDBdCi0KLSAgICAgIGlmIHtbc3RyaW5nIGNvbXBhcmUgLW5vY2FzZSAkdmFycyhkYnNfZm9ybWF0KSAib2EiXT09MH0gewotICAgICAgICAgaWYge1tsaW5kZXggW3NwbGl0ICR2YXJzKHZlcnNpb24pICIuIl0gIDBdID4gMTB9IHsKLSAgICAgICAgICAgIHNldCBjb21tYW5kICJ3cml0ZV9kYiAtb2FfbGliX2NlbGxfdmlldyB7JHZhcnMob2FfZGVzaWduX2xpYikgJHZhcnMoZGVzaWduKSBmbGV4aWxtfVxuIgotICAgICAgICAgfSAKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgICBzZXQgY29tbWFuZCAid3JpdGVfZGIgJHZhcnMoZGJzX2RpcikvZmxleGlsbS5lbmNcbiIKLSAgICAgIH0KLSAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxzYXZlX2RicyAkY29tbWFuZF0KLQotICAgICAgc2V0IGNvbW1hbmQgImNsZWFyX2FjdGl2ZV9sb2dpY192aWV3XG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksY2xlYXJfYWN0aXZlX2xvZ2ljX3ZpZXcgJGNvbW1hbmRdCi0KLSAgICAgIHNldCBjb21tYW5kICJ1cGRhdGVfcGFydGl0aW9uIC1mbGV4X2lsbV9lY28gXFxcbiIKLSAgICAgIGZvcmVhY2ggcGFydCAkdmFycyhwYXJ0aXRpb25fbGlzdCkgeyAKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgICAgLWdvbGRlbl9ibG9ja19kaXIgJHZhcnMocGFydGl0aW9uX2RpcikvJHBhcnQvJHZhcnMoZGJzX2RpcikvcHJlY3RzLmVuYyBcXFxuIgotICAgICAgfSAKLSAgICAgIGFwcGVuZCBjb21tYW5kICIgICAgLWZsZXhfaWxtX2RpciAkdmFycyhwYXJ0aXRpb25fZGlyKV9GTEVYSUxNXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksdXBkYXRlX3BhcnRpdGlvbiAkY29tbWFuZF0KLQotICAgICAgc2V0IGNvbW1hbmQgInJlcG9ydF9yZXNvdXJjZSAtZW5kIG9wdF9mbGV4SWxtXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCkscmVwb3J0X3Jlc291cmNlICRjb21tYW5kXQotCi0gICAgICBhcHBlbmQgY29tbWFuZHMgIiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyA8RkY+IEdFTkVSQVRJTkcgUkVQT1JUU1xuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzICIjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4iCi0KLSAgICAgIGlmIHskdmFycyhyZXBvcnRfcG93ZXIpfSB7Ci0gICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMocG93ZXJfYW5hbHlzaXNfdmlldyldICYmICgkdmFycyhwb3dlcl9hbmFseXNpc192aWV3KSAhPSAiIil9IHsKLSAgICAgICAgICAgIHNldCBjb21tYW5kICJyZXBvcnRfcG93ZXIgLXZpZXcgJHZhcnMocG93ZXJfYW5hbHlzaXNfdmlldykgLW91dGZpbGUgJHZhcnMocnB0X2RpcikvJHZhcnMoc3RlcCkucG93ZXIucnB0XG4iCi0gICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgc2V0IGNvbW1hbmQgInJlcG9ydF9wb3dlciAtb3V0ZmlsZSAkdmFycyhycHRfZGlyKS8kdmFycyhzdGVwKS5wb3dlci5ycHRcbiIKLSAgICAgICAgIH0KLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxyZXBvcnRfcG93ZXIgJGNvbW1hbmRdCi0gICAgICB9Ci0KLSAgICAgIGlmIHtbRkY6OmlzX2xwX2Zsb3ddICYmIFtpbmZvIGV4aXN0cyB2YXJzKHBvd2VyX2RvbWFpbnMpXSAmJiBbbGxlbmd0aCAkdmFycyhwb3dlcl9kb21haW5zKV0gPiAxfSB7Ci0KLSAgICAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICAgICMgVmVyaWZ5IHBvd2VyIGRvbWFpbgotICAgICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCi0jICAgICAgICAgc2V0IGNvbW1hbmQgImNoZWNrX3Bvd2VyX2RvbWFpbnMgLWJpbmQgLWdjb25uIgotIyAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgLWlzb19uZXRfcGQgJHZhcnMocnB0X2RpcikvJHZhcnMoc3RlcCkuaXNvbmV0cy5ycHQiCi0jICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAteF9uZXRfcGQgJHZhcnMocnB0X2RpcikvJHZhcnMoc3RlcCkueG5ldHMucnB0XG4iCi0KLSMgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksY2hlY2tfcG93ZXJfZG9tYWlucyAkY29tbWFuZF0KLQotICAgICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgICAgIyBSdW4gQ0xQCi0gICAgICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0KLSAgICAgICAgIGlmIHskdmFycyhydW5fY2xwKSAmJiAoW2F1dG9fZXhlY29rIGxlY10gIT0gIiIpfSB7Ci0gICAgICAgICAgICBzZXQgY29tbWFuZCAicnVuX2NscCAiCi0gICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoY2xwX29wdGlvbnMpXX0gewotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgJHZhcnMoY2xwX29wdGlvbnMpCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiXG4iCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCkscnVuX2NscCAkY29tbWFuZF0KLSAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBpZiB7IVtpbmZvIGV4aXN0cyB2YXJzKGNscF93YXJuaW5nKV19IHsKLSAgICAgICAgICAgICAgIHB1dHMgIjxGRj4gV0FSTklORzogVU5BQkxFIFRPIFJVTiBDTFAgLi4uIFBMRUFTRSBNQUtFIFNVUkUgSVQgSVMgSU4gWU9VUiBQQVRIIgotICAgICAgICAgICAgICAgc2V0IHZhcnMoY2xwX3dhcm5pbmcpIHRydWUKLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0KLSAgICAgIH0KLSAgICAgIGlmIHshJHZhcnMoY29kZWdlbil9IHsKLSAgICAgICAgIHVwbGV2ZWwgIzAgZXZhbCAkY29tbWFuZHMKLSAgICAgICAgIHNldCBjb21tYW5kcyAiIiAKLSAgICAgIH0KLQotIyAgICAgIGlmIHskdmFycyhtYWtlZmlsZSl9IHsgCi0gICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJpZiB7XFtpbmZvIGV4aXN0cyBlbnYoVlBBVEgpXF19IHtcbiIKLSAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgInNldCBvcCBcW29wZW4gJGVudihWUEFUSCkvZmxleGlsbSB3XF1cbiIKLSAgICAgICAgICBmb3JlYWNoIHBhcnQgJHZhcnMocGFydGl0aW9uX2xpc3QpIHsKLSAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgInB1dHMgXCRvcCBcInNldCB2YXJzKCRwYXJ0LGNkdHYpIFwkOjpSZGFfQ0RUVjo6aWxtRGF0YUluZm8oJHBhcnQsYmxvY2tEaXIpXCJcbiIKLSAgICAgICAgICB9Ci0gICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJjbG9zZSBcJG9wXG4iCi0jICAgICAgICAgIGZvcmVhY2ggcGFydCAkdmFycyhwYXJ0aXRpb25fbGlzdCkgewotIyAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgImZpbGUgY29weSAtZm9yY2UgJHZhcnMocGFydGl0aW9uX2Rpcl9wYXNzMikvJHBhcnQvTWFrZWZpbGUgJHZhcnMocGFydGl0aW9uX2Rpcl9wYXNzMikvJHBhcnQuTWFrZWZpbGVcbiIKLSMgICAgICAgICAgfQotCi0gICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJleGVjIC9iaW4vdG91Y2ggXCRlbnYoVlBBVEgpLyR2YXJzKHN0ZXApXG4iCi0gICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJ9XG4iCi0jICAgICAgIH0KLQotCi0gICAgICBpZiB7JHZhcnMoY29kZWdlbil9IHsKLSAgICAgICAgIHJldHVybiAkY29tbWFuZHMKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgICB1cGxldmVsICMwIGV2YWwgJGNvbW1hbmRzCi0gICAgICB9Ci0gICB9Ci0KLSAgIHByb2MgcnVuX3BhcnRpdGlvbl9wbGFjZSB7e2Zvcm1hdCAxfX0gewotCi0gICAgICBnbG9iYWwgdmFycwotICAgICAgZ2xvYmFsIGVycm9ycwotICAgICAgZ2xvYmFsIGVudgotCi0gICAgICBzZXQgdmFycyhzdGVwKSBwYXJ0aXRpb25fcGxhY2UKLSAgICAgIHNldCB2YXJzKGhpZXIpIHRydWUKLSAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyh0aW1lX2Rlc2lnbl9vcHRpb25zLHNldHVwKV19IHsKLSAgICAgICAgIHNldCB0bXBfdGltZV9kZXNpZ25fb3B0aW9uc19zZXR1cCAkdmFycyh0aW1lX2Rlc2lnbl9vcHRpb25zLHNldHVwKQotICAgICAgfSBlbHNlIHsKLSAgICAgICAgIHNldCB2YXJzKHRpbWVfZGVzaWduX29wdGlvbnMsc2V0dXApICIiCi0gICAgICB9Ci0KLSAgICAgIHNldCBjb21tYW5kcyAiIgotCi0KLSAgICAgIGlmIHshJHZhcnModXNlX2ZsZXhtb2RlbHMpfSB7Ci0gICAgICAgICMgSW5pdGlhbGlzZSB0aGUgZGVzaWduIGlmIG5vdCB1c2luZyBmbGV4bW9kZWxzIAotICAgICAgICBpZiB7JHZhcnMoY29kZWdlbil9IHsgCi0gICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkZfTk9WVVM6OnJ1bl9pbml0ICRmb3JtYXRdCi0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgIEZGX05PVlVTOjpydW5faW5pdCAkZm9ybWF0Ci0gICAgICAgIH0KLSAgICAgIH0KLQotICAgICAgaWYgeyR2YXJzKHVzZV9wcm90b19uZXRfZGVsYXlfbW9kZWwpIH0gewotICAgICAgICAgaWYgeyEkdmFycyh1c2VfZmxleG1vZGVscyl9IHsKLSAgICAgICAgICAgIHNldCBjb21tYW5kICJjYXRjaCB7ZXhlYyBybSAtcmYgcHJvdG9fbW9kZWxfQkFDS1VQfVxuY2F0Y2gge2V4ZWMgbXYgLWYgcHJvdG9fbW9kZWwgcHJvdG9fbW9kZWxfQkFDS1VQfVxuIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHByb3RvX21vZGVsX0JBQ0tVUCAkY29tbWFuZF0KLSAgICAgICAgICAgIHNldCBjb21tYW5kICJjcmVhdGVfcHJvdG9fbmV0X2RlbGF5X21vZGVsXG4iCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksY3JlYXRlX3BzX3Blcl9taWNyb25fbW9kZWwgJGNvbW1hbmRdCi0gICAgICAgICB9Ci0gICAgICAgICBzZXQgY29tbWFuZCAidGltZV9kZXNpZ24gLXByb3RvIC1wcmVfcGxhY2UgLXJlcG9ydF9wcmVmaXggcHJlcGxhY2UgLXJlcG9ydF9kaXIgJHZhcnMocnB0X2RpcilcbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSx0aW1lX2Rlc2lnbiAkY29tbWFuZF0KLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgICBzZXQgY29tbWFuZCAidGltZV9kZXNpZ24gLXByZV9wbGFjZSAtcmVwb3J0X3ByZWZpeCBwcmVwbGFjZSAtcmVwb3J0X2RpciAkdmFycyhycHRfZGlyKVxuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHRpbWVfZGVzaWduICRjb21tYW5kXQotICAgICAgfQotICAgICAKLSAgICAgIGlmIHskdmFycyh1c2VfZmxleG1vZGVscyl9IHsKLSAgICAgICAgIHNldCBjb21tYW5kICJyZXBvcnRfcHJvdG9fbW9kZWxzIC1jcmVhdGVkXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCkscmVwb3J0X3Byb3RvX21vZGVscyAkY29tbWFuZF0KLSAgICAgIH0KLSAgICAgIAotICAgICAgaWYge1tzdHJpbmcgY29tcGFyZSAtbm9jYXNlICR2YXJzKGRic19mb3JtYXQpICJvYSJdPT0wfSB7Ci0gICAgICAgICBpZiB7W2xpbmRleCBbc3BsaXQgJHZhcnModmVyc2lvbikgIi4iXSAgMF0gPiAxMH0gewotICAgICAgICAgICAgc2V0IGNvbW1hbmQgIndyaXRlX2RiIC1vYV9saWJfY2VsbF92aWV3IHskdmFycyhvYV9kZXNpZ25fbGliKSAkdmFycyhkZXNpZ24pIGluaXR9XG4iCi0gICAgICAgICB9IAotICAgICAgfSBlbHNlIHsKLSAgICAgICAgIGlmIHskdmFycyhzdGVwKSAhPSAicGFydGl0aW9uX3BsYWNlIn0gewotICAgICAgICAgICAgc2V0IGNvbW1hbmQgIndyaXRlX2RiICR2YXJzKGRic19kaXIpL2luaXQuZW5jIFxuIgotICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHNldCBjb21tYW5kICIiCi0gICAgICAgICB9Ci0gICAgICB9Ci0KLSAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxzYXZlX2Rlc2lnbixpbml0ICRjb21tYW5kXQotCi0gICAgICBzZXQgY29tbWFuZCAiIgotICAgICAgIyBBZGRpdGlvbmFsIHRpbWluZyBzZXR1cAotICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCR2YXJzKGRlc2lnbiksbGF0ZW5jeV9zZGMpXX0gewotICAgICAgICAgYXBwZW5kIGNvbW1hbmQgImZvcmVhY2ggbW9kZSBcW2FsbF9jb25zdHJhaW50X21vZGVzIC1hY3RpdmVcXSB7XG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZCAiICAgc2V0IHNkY19maWxlcyBcW2dldF9jb25zdHJhaW50X21vZGUgXCRtb2RlIC1zZGNfZmlsZXNcXVxuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAgIHNldCBzZGNfbGlzdCBcW2NvbmNhdCBcJHNkY19maWxlcyAkdmFycygkdmFycyhkZXNpZ24pLGxhdGVuY3lfc2RjKVxdXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZCAiICAgdXBkYXRlX2NvbnN0cmFpbnRfbW9kZSAtbmFtZSBcJG1vZGUgLXNkY19maWxlcyBcJHNkY19saXN0XG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZCAifVxuIgotCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksdXBkYXRlX2NvbnN0cmFpbnRfbW9kZSAkY29tbWFuZF0KLSAgICAgIH0KLQotICAgICAgZm9yZWFjaCB2aWV3IFtjb25jYXQgJHZhcnMoc2V0dXBfYW5hbHlzaXNfdmlld3MpICR2YXJzKGhvbGRfYW5hbHlzaXNfdmlld3MpXSB7Ci0gICAgICAgICBmb3JlYWNoIHB0biAkdmFycyhwYXJ0aXRpb25fbGlzdCkgewotICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCRwdG4sJHZpZXcsbGF0ZW5jeV9zZGMpXX0gewotICAgICAgICAgICAgICAgc2V0IGxhdGVuY3koJHZpZXcsJHB0bikgJHZhcnMoJHB0biwkdmlldyxsYXRlbmN5X3NkYykKLSAgICAgICAgICAgIH0gZWxzZWlmIHtbaW5mbyBleGlzdHMgdmFycygkcHRuLGxhdGVuY3lfc2RjKV19IHsKLSAgICAgICAgICAgICAgIHNldCBsYXRlbmN5KCR2aWV3LCRwdG4pICR2YXJzKCRwdG4sbGF0ZW5jeV9zZGMpCi0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgc2V0IGxhdGVuY3koJHZpZXcsJHB0bikgIm5vbmUiCi0gICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0gICAgICB9Ci0gICAgICAKLSAgICAgIHNldCBjb21tYW5kICIiCi0gICAgICBmb3JlYWNoIHZpZXcgW2NvbmNhdCAkdmFycyhzZXR1cF9hbmFseXNpc192aWV3cykgJHZhcnMoaG9sZF9hbmFseXNpc192aWV3cyldIHsKLSAgICAgICAgIGZvcmVhY2ggcHRuICR2YXJzKHBhcnRpdGlvbl9saXN0KSB7Ci0gICAgICAgICAgICBpZiB7JGxhdGVuY3koJHZpZXcsJHB0bikgIT0gIm5vbmUifSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAic2V0X3BhcnRpdGlvbl91c2VyX2NvbnN0cmFpbnRzX2ZpbGUgLXZpZXcgJHZpZXcgLW5hbWUgJGxhdGVuY3koJHZpZXcsJHB0bikgLXBhcnRpdGlvbiAkcHRuXG4iCi0gICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0gICAgICB9Ci0KLSAgICAgIGlmIHskY29tbWFuZCAhPSAiIn0geyAgICAgIAotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHNldF9wYXJ0aXRpb25fdXNlcl9jb25zdHJhaW50c19maWxlICRjb21tYW5kXQotICAgICAgfQotCi0gICAgICAjIEluc2VydCBmZWVkdGhyb3VnaCBhbmQgdHJpYWwgcm91dGUsIGFzIGFwcHJvcHJpYXRlCi0gICAgICBzZXQgZG9fdHJpYWxfcm91dGVfdGltZV9kZXNpZ24gMQotCi0gICAgICAjIFByZS1wbGFjZW1lbnQKLSAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhwbGFjZSxzZXRfcGxhY2VfbW9kZSxza2lwKV19IHsKLSAgICAgICAgIHNldCBjYWNoZV9za2lwX3BsYWNlX21vZGUgJHZhcnMocGxhY2Usc2V0X3BsYWNlX21vZGUsc2tpcCkKLSAgICAgIH0KLSAgICAgIHNldCB2YXJzKHBsYWNlLHNldF9wbGFjZV9tb2RlLHNraXApIDEKLSAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhwbGFjZSxwbGFjZV9kZXNpZ24sc2tpcCldfSB7Ci0gICAgICAgICBzZXQgY2FjaGVfc2tpcF9wbGFjZV9kZXNpZ24gJHZhcnMocGxhY2UscGxhY2VfZGVzaWduLHNraXApCi0gICAgICB9Ci0gICAgICBzZXQgdmFycyhwbGFjZSxwbGFjZV9kZXNpZ24sc2tpcCkgMQotCi0gICAgICBzZXQgdmFycyhoaWVyX2Nhc2UpICIkdmFycyh1c2VfZmxleG1vZGVscykkdmFycyhwbGFjZW1lbnRfYmFzZWRfcHRuKSR2YXJzKGFidXR0ZWRfZGVzaWduKSR2YXJzKGluc2VydF9mZWVkdGhyb3VnaCkiCi0KLSAgICAgICMgRGlzYWJsZSBzY2FuIHJlb3JkZXIgZm9yIHBhcnRpdGlvbmluZyBmbG93Ci0gICAgICAjIHNldCBjb21tYW5kICJzZXRfZGIgcGxhY2VfcmVvcmRlcl9zY2FuIGZhbHNlXG4iCi0gICAgICAjIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxzZXRfcGxhY2VfbW9kZSAkY29tbWFuZF0KLQotICAgICAgYXBwZW5kIGNvbW1hbmQgImlmIHtcW2dldF9kYiBoaW5zdHMgLnBhcnRpdGlvbi5jbG9uZXNcXSAhPSBcIlwifSB7XG4iCi0gICAgICBhcHBlbmQgY29tbWFuZCAiICAgYWxpZ25fcGFydGl0aW9uX2Nsb25lc1xuIgotICAgICAgYXBwZW5kIGNvbW1hbmQgIn1cbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxhbGlnbl9wYXJ0aXRpb25fY2xvbmVzICRjb21tYW5kXQotCi0gICAgICBzd2l0Y2ggJHZhcnMoaGllcl9jYXNlKSB7Ci0gICAgICAgICAiMDAwMCIgewotICAgICAgICAgICAgaWYgeyR2YXJzKGVuYWJsZV9ucmdyKX0gewotIyAgICAgICAgICAgICAgIHNldCBjb21tYW5kICJzZXRfZGIgZGVzaWduX3VzZV90dXJib19ucmdyX2Zsb3cgdHJ1ZVxuIgotIyAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxzZXRfZGVzaWduX21vZGUgJGNvbW1hbmRdCi0gICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0gICAgICAgICAiMDAwMSIgewotICAgICAgICAgICAgaWYgeyR2YXJzKGVuYWJsZV9ucmdyKX0gewotIyAgICAgICAgICAgICAgIHNldCBjb21tYW5kICJzZXRfZGIgZGVzaWduX3VzZV90dXJib19ucmdyX2Zsb3cgdHJ1ZVxuIgotIyAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxzZXRfZGVzaWduX21vZGUgJGNvbW1hbmRdCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBzZXQgY29tbWFuZCAic2V0X2RiIHBsYWNlX2dsb2JhbF9jb25nX2VmZm9ydCBhdXRvXG5zZXRfZGIgcGxhY2VfZ2xvYmFsX2Nsb2NrX2dhdGVfYXdhcmUgdHJ1ZVxuc2V0X2RiIHBsYWNlX2dsb2JhbF9wbGFjZV9pb19waW5zIHRydWVcbiIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxzZXRfcGxhY2VfbW9kZSAkY29tbWFuZF0KLSAgICAgICAgIH0KLSAgICAgICAgICIwMDEwIiB7Ci0gICAgICAgICAgICBpZiB7JHZhcnMoZW5hYmxlX25yZ3IpfSB7Ci0jICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgInNldF9kYiBkZXNpZ25fdXNlX3R1cmJvX25yZ3JfZmxvdyB0cnVlXG4iCi0jICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHNldF9kZXNpZ25fbW9kZSAkY29tbWFuZF0KLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHNldCBjb21tYW5kICJzZXRfZGIgcGxhY2VfZ2xvYmFsX2NvbmdfZWZmb3J0IGF1dG9cbnNldF9kYiBwbGFjZV9nbG9iYWxfY2xvY2tfZ2F0ZV9hd2FyZSB0cnVlXG5zZXRfZGIgcGxhY2VfZ2xvYmFsX3BsYWNlX2lvX3BpbnMgdHJ1ZVxuIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHNldF9wbGFjZV9tb2RlICRjb21tYW5kXQotICAgICAgICAgfQotICAgICAgICAgIjAwMTEiIHsKLSAgICAgICAgICAgIGlmIHskdmFycyhlbmFibGVfbnJncil9IHsKLSMgICAgICAgICAgICAgICBzZXQgY29tbWFuZCAic2V0X2RiIGRlc2lnbl91c2VfdHVyYm9fbnJncl9mbG93IHRydWVcbiIKLSMgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksc2V0X2Rlc2lnbl9tb2RlICRjb21tYW5kXQotICAgICAgICAgICAgfQotICAgICAgICAgICAgc2V0IGNvbW1hbmQgInNldF9kYiBwbGFjZV9nbG9iYWxfY29uZ19lZmZvcnQgYXV0b1xuc2V0X2RiIHBsYWNlX2dsb2JhbF9jbG9ja19nYXRlX2F3YXJlIHRydWVcbnNldF9kYiBwbGFjZV9nbG9iYWxfcGxhY2VfaW9fcGlucyB0cnVlXG4iCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksc2V0X3BsYWNlX21vZGUgJGNvbW1hbmRdCi0gICAgICAgICB9Ci0gICAgICAgICAiMDEwMCIgewotICAgICAgICAgICAgaWYgeyR2YXJzKGVuYWJsZV9ucmdyKX0gewotIyAgICAgICAgICAgICAgIHNldCBjb21tYW5kICJzZXRfZGIgZGVzaWduX3VzZV90dXJib19ucmdyX2Zsb3cgdHJ1ZVxuIgotIyAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxzZXRfZGVzaWduX21vZGUgJGNvbW1hbmRdCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBzZXQgY29tbWFuZCAic2V0X2RiIHBsYWNlX2dsb2JhbF9jb25nX2VmZm9ydCBhdXRvXG5zZXRfZGIgcGxhY2VfZ2xvYmFsX2Nsb2NrX2dhdGVfYXdhcmUgdHJ1ZVxuc2V0X2RiIHBsYWNlX2dsb2JhbF9wbGFjZV9pb19waW5zIHRydWVcbnNldF9kYiBwbGFjZV9kZXNpZ25fZmxvb3JwbGFuX21vZGUgdHJ1ZVxuIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHNldF9wbGFjZV9tb2RlICRjb21tYW5kXQotICAgICAgICAgfQotICAgICAgICAgIjAxMDEiIHsKLSAgICAgICAgICAgIGlmIHskdmFycyhlbmFibGVfbnJncil9IHsKLSMgICAgICAgICAgICAgICBzZXQgY29tbWFuZCAic2V0X2RiIGRlc2lnbl91c2VfdHVyYm9fbnJncl9mbG93IHRydWVcbiIKLSMgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksc2V0X2Rlc2lnbl9tb2RlICRjb21tYW5kXQotICAgICAgICAgICAgfQotICAgICAgICAgICAgc2V0IGNvbW1hbmQgInNldF9kYiBwbGFjZV9nbG9iYWxfY29uZ19lZmZvcnQgYXV0b1xuc2V0X2RiIHBsYWNlX2dsb2JhbF9jbG9ja19nYXRlX2F3YXJlIHRydWVcbnNldF9kYiBwbGFjZV9nbG9iYWxfcGxhY2VfaW9fcGlucyB0cnVlXG5zZXRfZGIgcGxhY2VfZGVzaWduX2Zsb29ycGxhbl9tb2RlIHRydWVcbiIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxzZXRfcGxhY2VfbW9kZSAkY29tbWFuZF0KLSAgICAgICAgIH0KLSAgICAgICAgICIwMTEwIiB7Ci0gICAgICAgICAgICBpZiB7JHZhcnMoZW5hYmxlX25yZ3IpfSB7Ci0jICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgInNldF9kYiBkZXNpZ25fdXNlX3R1cmJvX25yZ3JfZmxvdyB0cnVlXG4iCi0jICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHNldF9kZXNpZ25fbW9kZSAkY29tbWFuZF0KLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHNldCBjb21tYW5kICJzZXRfZGIgcGxhY2VfZ2xvYmFsX2NvbmdfZWZmb3J0IGF1dG9cbnNldF9kYiBwbGFjZV9nbG9iYWxfY2xvY2tfZ2F0ZV9hd2FyZSB0cnVlXG5zZXRfZGIgcGxhY2VfZ2xvYmFsX3BsYWNlX2lvX3BpbnMgdHJ1ZVxuc2V0X2RiIHBsYWNlX2Rlc2lnbl9mbG9vcnBsYW5fbW9kZSB0cnVlXG4iCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksc2V0X3BsYWNlX21vZGUgJGNvbW1hbmRdCi0gICAgICAgICB9Ci0gICAgICAgICAiMDExMSIgewotICAgICAgICAgICAgaWYgeyR2YXJzKGVuYWJsZV9ucmdyKX0gewotIyAgICAgICAgICAgICAgIHNldCBjb21tYW5kICJzZXRfZGIgZGVzaWduX3VzZV90dXJib19ucmdyX2Zsb3cgdHJ1ZVxuIgotIyAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxzZXRfZGVzaWduX21vZGUgJGNvbW1hbmRdCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBzZXQgY29tbWFuZCAic2V0X2RiIHBsYWNlX2dsb2JhbF9jb25nX2VmZm9ydCBhdXRvXG5zZXRfZGIgcGxhY2VfZ2xvYmFsX2Nsb2NrX2dhdGVfYXdhcmUgdHJ1ZVxuc2V0X2RiIHBsYWNlX2dsb2JhbF9wbGFjZV9pb19waW5zIHRydWVcbnNldF9kYiBwbGFjZV9kZXNpZ25fZmxvb3JwbGFuX21vZGUgdHJ1ZVxuIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHNldF9wbGFjZV9tb2RlICRjb21tYW5kXQotICAgICAgICAgfQotICAgCi0gICAgICAgICAiMTAwMCIgewotICAgICAgICAgICAgc2V0IGNvbW1hbmQgInNldF9kYiBwbGFjZV9nbG9iYWxfY29uZ19lZmZvcnQgYXV0b1xuc2V0X2RiIHBsYWNlX2dsb2JhbF9jbG9ja19nYXRlX2F3YXJlIHRydWVcbnNldF9kYiBwbGFjZV9nbG9iYWxfcGxhY2VfaW9fcGlucyB0cnVlXG4iCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksc2V0X3BsYWNlX21vZGUgJGNvbW1hbmRdCi0gICAgICAgICAgICBpZiB7ISR2YXJzKGZsZXhtb2RlbF9hc19wdG4pfSB7Ci0gICAgICAgICAgICAgIHNldCBjb21tYW5kICJzZXRfcHJvdG9fbW9kZWxfcGh5c2ljYWxfY29uc3RyYWludCAtdHlwZSBzb2Z0X2d1aWRlXG4iCi0gICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxzZXRfcHJvdG9fbW9kZWxfcGh5c2ljYWxfY29uc3RyYWludCAkY29tbWFuZF0KLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHNldCBjb21tYW5kICJzZXRfcHJvdG9fbW9kZSAtcGxhY2VfZWZmb3J0IGRlZmF1bHRcbiIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxzZXRfcHJvdG9fbW9kZSAkY29tbWFuZF0KLSAgICAgICAgICAgIHNldCBjb21tYW5kICJzZXRfZGIgcm91dGVfdHJpYWxfZmxvb3JwbGFuX21vZGUgdHJ1ZVxuIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHNldF9yb3V0ZV90cmlhbF9tb2RlICRjb21tYW5kXQotICAgICAgICAgfQotICAgICAgICAgIjEwMDEiIHsKLSAgICAgICAgICAgIHNldCBjb21tYW5kICJzZXRfZGIgcGxhY2VfZ2xvYmFsX2NvbmdfZWZmb3J0IGF1dG9cbnNldF9kYiBwbGFjZV9nbG9iYWxfY2xvY2tfZ2F0ZV9hd2FyZSB0cnVlXG5zZXRfZGIgcGxhY2VfZ2xvYmFsX3BsYWNlX2lvX3BpbnMgdHJ1ZVxuIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHNldF9wbGFjZV9tb2RlICRjb21tYW5kXQotICAgICAgICAgICAgaWYgeyEkdmFycyhmbGV4bW9kZWxfYXNfcHRuKX0gewotICAgICAgICAgICAgICBzZXQgY29tbWFuZCAic2V0X3Byb3RvX21vZGVsX3BoeXNpY2FsX2NvbnN0cmFpbnQgLXR5cGUgc29mdF9ndWlkZVxuIgotICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksc2V0X3Byb3RvX21vZGVsX3BoeXNpY2FsX2NvbnN0cmFpbnQgJGNvbW1hbmRdCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBzZXQgY29tbWFuZCAic2V0X3Byb3RvX21vZGUgLXBsYWNlX2VmZm9ydCBkZWZhdWx0XG4iCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksc2V0X3Byb3RvX21vZGUgJGNvbW1hbmRdCi0gICAgICAgICAgICBzZXQgY29tbWFuZCAic2V0X2RiIHJvdXRlX3RyaWFsX2Zsb29ycGxhbl9tb2RlIHRydWVcbiIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxzZXRfcm91dGVfdHJpYWxfbW9kZSAkY29tbWFuZF0KLSAgICAgICAgIH0KLSAgICAgICAgICIxMDEwIiB7Ci0gICAgICAgICAgICBzZXQgY29tbWFuZCAic2V0X2RiIHBsYWNlX2dsb2JhbF9jb25nX2VmZm9ydCBhdXRvXG5zZXRfZGIgcGxhY2VfZ2xvYmFsX2Nsb2NrX2dhdGVfYXdhcmUgdHJ1ZVxuc2V0X2RiIHBsYWNlX2dsb2JhbF9wbGFjZV9pb19waW5zIHRydWVcbiIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxzZXRfcGxhY2VfbW9kZSAkY29tbWFuZF0KLSAgICAgICAgICAgIGlmIHshJHZhcnMoZmxleG1vZGVsX2FzX3B0bil9IHsKLSAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgInNldF9wcm90b19tb2RlbF9waHlzaWNhbF9jb25zdHJhaW50IC10eXBlIHNvZnRfZ3VpZGVcbiIKLSAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHNldF9wcm90b19tb2RlbF9waHlzaWNhbF9jb25zdHJhaW50ICRjb21tYW5kXQotICAgICAgICAgICAgfQotICAgICAgICAgICAgc2V0IGNvbW1hbmQgInNldF9wcm90b19tb2RlIC1wbGFjZV9lZmZvcnQgZGVmYXVsdFxuIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHNldF9wcm90b19tb2RlICRjb21tYW5kXQotICAgICAgICAgICAgc2V0IGNvbW1hbmQgInNldF9kYiByb3V0ZV90cmlhbF9mbG9vcnBsYW5fbW9kZSB0cnVlXG4iCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksc2V0X3JvdXRlX3RyaWFsX21vZGUgJGNvbW1hbmRdCi0gICAgICAgICB9Ci0gICAgICAgICAiMTAxMSIgewotICAgICAgICAgICAgc2V0IGNvbW1hbmQgInNldF9kYiBwbGFjZV9nbG9iYWxfY29uZ19lZmZvcnQgYXV0b1xuc2V0X2RiIHBsYWNlX2dsb2JhbF9jbG9ja19nYXRlX2F3YXJlIHRydWVcbnNldF9kYiBwbGFjZV9nbG9iYWxfcGxhY2VfaW9fcGlucyB0cnVlXG4iCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksc2V0X3BsYWNlX21vZGUgJGNvbW1hbmRdCi0gICAgICAgICAgICBpZiB7ISR2YXJzKGZsZXhtb2RlbF9hc19wdG4pfSB7Ci0gICAgICAgICAgICAgIHNldCBjb21tYW5kICJzZXRfcHJvdG9fbW9kZWxfcGh5c2ljYWxfY29uc3RyYWludCAtdHlwZSBzb2Z0X2d1aWRlXG4iCi0gICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxzZXRfcHJvdG9fbW9kZWxfcGh5c2ljYWxfY29uc3RyYWludCAkY29tbWFuZF0KLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHNldCBjb21tYW5kICJzZXRfcHJvdG9fbW9kZSAtcGxhY2VfZWZmb3J0IGRlZmF1bHRcbiIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxzZXRfcHJvdG9fbW9kZSAkY29tbWFuZF0KLSAgICAgICAgICAgIHNldCBjb21tYW5kICJzZXRfZGIgcm91dGVfdHJpYWxfZmxvb3JwbGFuX21vZGUgdHJ1ZVxuIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHNldF9yb3V0ZV90cmlhbF9tb2RlICRjb21tYW5kXQotICAgICAgICAgfQotICAgICAgICAgIjExMDAiIHsKLSAgICAgICAgICAgIHNldCBjb21tYW5kICJzZXRfZGIgcGxhY2VfZ2xvYmFsX2NvbmdfZWZmb3J0IGF1dG9cbnNldF9kYiBwbGFjZV9nbG9iYWxfY2xvY2tfZ2F0ZV9hd2FyZSB0cnVlXG5zZXRfZGIgcGxhY2VfZ2xvYmFsX3BsYWNlX2lvX3BpbnMgdHJ1ZVxuc2V0X2RiIHBsYWNlX2Rlc2lnbl9mbG9vcnBsYW5fbW9kZSB0cnVlXG4iCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksc2V0X3BsYWNlX21vZGUgJGNvbW1hbmRdCi0gICAgICAgICAgICBpZiB7ISR2YXJzKGZsZXhtb2RlbF9hc19wdG4pfSB7Ci0gICAgICAgICAgICAgIHNldCBjb21tYW5kICJzZXRfcHJvdG9fbW9kZWxfcGh5c2ljYWxfY29uc3RyYWludCAtdHlwZSBzb2Z0X2d1aWRlXG4iCi0gICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxzZXRfcHJvdG9fbW9kZWxfcGh5c2ljYWxfY29uc3RyYWludCAkY29tbWFuZF0KLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0KLSAgICAgICAgICIxMTAxIiB7Ci0gICAgICAgICAgICBzZXQgY29tbWFuZCAic2V0X2RiIHBsYWNlX2dsb2JhbF9jb25nX2VmZm9ydCBhdXRvXG5zZXRfZGIgcGxhY2VfZ2xvYmFsX2Nsb2NrX2dhdGVfYXdhcmUgdHJ1ZVxuc2V0X2RiIHBsYWNlX2dsb2JhbF9wbGFjZV9pb19waW5zIHRydWVcbnNldF9kYiBwbGFjZV9kZXNpZ25fZmxvb3JwbGFuX21vZGUgdHJ1ZVxuIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHNldF9wbGFjZV9tb2RlICRjb21tYW5kXQotICAgICAgICAgICAgaWYgeyEkdmFycyhmbGV4bW9kZWxfYXNfcHRuKX0gewotICAgICAgICAgICAgICBzZXQgY29tbWFuZCAic2V0X3Byb3RvX21vZGVsX3BoeXNpY2FsX2NvbnN0cmFpbnQgLXR5cGUgc29mdF9ndWlkZVxuIgotICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksc2V0X3Byb3RvX21vZGVsX3BoeXNpY2FsX2NvbnN0cmFpbnQgJGNvbW1hbmRdCi0gICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0gICAgICAgICAiMTExMCIgewotICAgICAgICAgICAgc2V0IGNvbW1hbmQgInNldF9kYiBwbGFjZV9nbG9iYWxfY29uZ19lZmZvcnQgYXV0b1xuc2V0X2RiIHBsYWNlX2dsb2JhbF9jbG9ja19nYXRlX2F3YXJlIHRydWVcbnNldF9kYiBwbGFjZV9nbG9iYWxfcGxhY2VfaW9fcGlucyB0cnVlXG5zZXRfZGIgcGxhY2VfZGVzaWduX2Zsb29ycGxhbl9tb2RlIHRydWVcbiIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxzZXRfcGxhY2VfbW9kZSAkY29tbWFuZF0KLSAgICAgICAgICAgIGlmIHshJHZhcnMoZmxleG1vZGVsX2FzX3B0bil9IHsKLSAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgInNldF9wcm90b19tb2RlbF9waHlzaWNhbF9jb25zdHJhaW50IC10eXBlIHNvZnRfZ3VpZGVcbiIKLSAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHNldF9yb3V0ZV90cmlhbF9tb2RlICRjb21tYW5kXQotICAgICAgICAgICAgfQotICAgICAgICAgfQotICAgICAgICAgIjExMTEiIHsKLSAgICAgICAgICAgIHNldCBjb21tYW5kICJzZXRfZGIgcGxhY2VfZ2xvYmFsX2NvbmdfZWZmb3J0IGF1dG9cbnNldF9kYiBwbGFjZV9nbG9iYWxfY2xvY2tfZ2F0ZV9hd2FyZSB0cnVlXG5zZXRfZGIgcGxhY2VfZ2xvYmFsX3BsYWNlX2lvX3BpbnMgdHJ1ZVxuc2V0X2RiIHBsYWNlX2Rlc2lnbl9mbG9vcnBsYW5fbW9kZSB0cnVlXG4iCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksc2V0X3BsYWNlX21vZGUgJGNvbW1hbmRdCi0gICAgICAgICAgICBpZiB7ISR2YXJzKGZsZXhtb2RlbF9hc19wdG4pfSB7Ci0gICAgICAgICAgICAgIHNldCBjb21tYW5kICJzZXRfcHJvdG9fbW9kZWxfcGh5c2ljYWxfY29uc3RyYWludCAtdHlwZSBzb2Z0X2d1aWRlXG4iCi0gICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxzZXRfcHJvdG9fbW9kZWxfcGh5c2ljYWxfY29uc3RyYWludCAkY29tbWFuZF0KLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0KLSAgICAgIH0KLQotICAgICAgaWYgeyR2YXJzKHVzZV9wcm90b19uZXRfZGVsYXlfbW9kZWwpfSB7ICAKLSAgICAgICAgIHNldCBjb21tYW5kICJzZXRfcHJvdG9fbW9kZSAtdGltaW5nX25ldF9kZWxheV9tb2RlbCB1c2VfYWN0dWFsX3dpcmVcbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxzZXRfcHJvdG9fbW9kZWwgJGNvbW1hbmRdIAotICAgICAgfQotCi0gICAgICAjIFBsYWNlIGRlc2lnbiAKLSAgCi0gICAgICBzZXQgc2F2ZSAkdmFycyhwbGFjZV9vcHRfZGVzaWduKQotICAgICAgaWYgeyR2YXJzKGNvZGVnZW4pfSB7IAotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRl9OT1ZVUzo6cnVuX3BsYWNlICRmb3JtYXRdCi0gICAgICB9IGVsc2UgewotICAgICAgICAgdXBsZXZlbCAjMCBldmFsICRjb21tYW5kcyAKLSAgICAgICAgIEZGX05PVlVTOjpydW5fcGxhY2UgJGZvcm1hdAotICAgICAgICAgc2V0IGNvbW1hbmRzICIiCi0gICAgICB9Ci0gICAgICBzZXQgdmFycyhwbGFjZV9vcHRfZGVzaWduKSAkc2F2ZQotICAgICAKLSAgICAgIGlmIHtbaW5mbyBleGlzdHMgY2FjaGVfc2tpcF9wbGFjZV9tb2RlXX0geyAKLSAgICAgICAgIHNldCB2YXJzKHBsYWNlLHNldF9wbGFjZV9tb2RlLHNraXApICRjYWNoZV9za2lwX3BsYWNlX21vZGUKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgICBzZXQgdmFycyhwbGFjZSxzZXRfcGxhY2VfbW9kZSxza2lwKSBmYWxzZQotICAgICAgfQotICAgICAgaWYge1tpbmZvIGV4aXN0cyBjYWNoZV9za2lwX3BsYWNlX21vZGVdfSB7IAotICAgICAgICAgc2V0IHZhcnMocGxhY2UscGxhY2VfZGVzaWduLHNraXApICRjYWNoZV9za2lwX3BsYWNlX2Rlc2lnbgotICAgICAgfSBlbHNlIHsKLSAgICAgICAgIHNldCB2YXJzKHBsYWNlLHBsYWNlX2Rlc2lnbixza2lwKSBmYWxzZQotICAgICAgfQotCi0gICAgICBpZiB7W3N0cmluZyBjb21wYXJlIC1ub2Nhc2UgJHZhcnMoZGJzX2Zvcm1hdCkgIm9hIl09PTB9IHsKLSAgICAgICAgIGlmIHtbbGluZGV4IFtzcGxpdCAkdmFycyh2ZXJzaW9uKSAiLiJdICAwXSA+IDEwfSB7Ci0gICAgICAgICAgICBzZXQgY29tbWFuZCAid3JpdGVfZGIgLW9hX2xpYl9jZWxsX3ZpZXcgeyR2YXJzKG9hX2Rlc2lnbl9saWIpICR2YXJzKGRlc2lnbikgcGxhY2V9XG4iCi0gICAgICAgICB9IAotICAgICAgfSBlbHNlIHsKLSAgICAgICAgIHNldCBjb21tYW5kICJ3cml0ZV9kYiAkdmFycyhkYnNfZGlyKS9wbGFjZS5lbmMgXG4iCi0gICAgICB9Ci0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksc2F2ZV9kZXNpZ24gJGNvbW1hbmRdCi0gICAKLSAgICAgICMgUG9zdC1wbGFjZW1lbnQKLSAgICAgIHN3aXRjaCAkdmFycyhoaWVyX2Nhc2UpIHsKLSAgICAgICAgICIwMDAwIiB7Ci0gICAgICAgICAgICBpZiB7W2xpbmRleCBbc3BsaXQgJHZhcnModmVyc2lvbikgIi4iXSAgMF0gPCAxNn0gewotICAgICAgICAgICAgICBzZXQgY29tbWFuZCAic2V0X2RiIHJvdXRlX3RyaWFsX2hhbmRsZV9wYXJ0aXRpb25fY29tcGxleCB0cnVlXG4iCi0gICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxzZXRfcm91dGVfdHJpYWxfbW9kZSAkY29tbWFuZF0KLSAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgInJvdXRlX3RyaWFsXG4iCi0gICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxyb3V0ZV90cmlhbCAkY29tbWFuZF0KLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgIHNldCBjb21tYW5kICJzZXRfZGIgcm91dGVfZWFybHlfZ2xvYmFsX2hvbm9yX3BhcnRpdGlvbl9mZW5jZSAuXG4iCi0gICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxzZXRfcm91dGVfX21vZGUgJGNvbW1hbmRdCi0gICAgICAgICAgICAgIHNldCBjb21tYW5kICJyb3V0ZV9lYXJseV9nbG9iYWxcbiIKLSAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLGVhcmx5X3JvdXRlICRjb21tYW5kXQotICAgICAgICAgICAgfQotICAgICAgICAgfQotICAgICAgICAgIjAwMDEiIHsKLSAgICAgICAgICAgIGlmIHtbbGluZGV4IFtzcGxpdCAkdmFycyh2ZXJzaW9uKSAiLiJdICAwXSA8IDE2fSB7Ci0gICAgICAgICAgICAgIHNldCBjb21tYW5kICJyb3V0ZV90cmlhbFxuIgotICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCkscm91dGVfdHJpYWxfMSAkY29tbWFuZF0KLSAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgImFkZF9wYXJ0aXRpb25fZmVlZHRocnVzIC1yb3V0ZV9iYXNlZCAtd3JpdGVfdG9wb2xvZ2ljYWxfZmlsZSB0b3BvLnR4dCAtbmV0X21hcHBpbmcgbmV0bWFwcGluZy50eHQgLWRvdWJsZV9idWZmZXJcbiIKLSAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLGluc2VydF9wdG5fZmVlZHRocm91Z2ggJGNvbW1hbmRdCi0gICAgICAgICAgICAgIHNldCBjb21tYW5kICJzZXRfZGIgcm91dGVfdHJpYWxfaGFuZGxlX3BhcnRpdGlvbl9jb21wbGV4IHRydWVcbiIKLSAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHNldF9yb3V0ZV90cmlhbF9tb2RlICRjb21tYW5kXQotICAgICAgICAgICAgICBzZXQgY29tbWFuZCAicm91dGVfdHJpYWxcbiIKLSAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHJvdXRlX3RyaWFsXzIgJGNvbW1hbmRdCi0gICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgIHNldCBjb21tYW5kICJyb3V0ZV9lYXJseV9nbG9iYWxcbiIKLSAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLGVhcmx5X3JvdXRlXzEgJGNvbW1hbmRdCi0gICAgICAgICAgICAgIHNldCBjb21tYW5kICJhZGRfcGFydGl0aW9uX2ZlZWR0aHJ1cyAtcm91dGVfYmFzZWQgLXdyaXRlX3RvcG9sb2dpY2FsX2ZpbGUgdG9wby50eHQgLW5ldF9tYXBwaW5nIG5ldG1hcHBpbmcudHh0IC1kb3VibGVfYnVmZmVyXG4iCi0gICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxpbnNlcnRfcHRuX2ZlZWR0aHJvdWdoICRjb21tYW5kXQotICAgICAgICAgICAgICBzZXQgY29tbWFuZCAic2V0X2RiIHJvdXRlX2Vhcmx5X2dsb2JhbF9ob25vcl9wYXJ0aXRpb25fZmVuY2UgLlxuIgotICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksc2V0X3JvdXRlX21vZGUgJGNvbW1hbmRdCi0gICAgICAgICAgICAgIHNldCBjb21tYW5kICJyb3V0ZV9lYXJseV9nbG9iYWxcbiIKLSAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLGVhcmx5X3JvdXRlXzIgJGNvbW1hbmRdCi0gICAgICAgICAgIH0KLSAgICAgICAgIH0KLSAgICAgICAgICIwMDEwIiB7Ci0gICAgICAgICAgICBpZiB7W2xpbmRleCBbc3BsaXQgJHZhcnModmVyc2lvbikgIi4iXSAgMF0gPCAxNn0gewotICAgICAgICAgICAgICBzZXQgY29tbWFuZCAic2V0X2RiIHJvdXRlX3RyaWFsX2hhbmRsZV9wYXJ0aXRpb25fY29tcGxleCB0cnVlXG4iCi0gICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxzZXRfcm91dGVfdHJpYWxfbW9kZSAkY29tbWFuZF0KLSAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgInJvdXRlX3RyaWFsXG4iCi0gICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxyb3V0ZV90cmlhbCAkY29tbWFuZF0KLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgIHNldCBjb21tYW5kICJzZXRfZGIgcm91dGVfZWFybHlfZ2xvYmFsX2hvbm9yX3BhcnRpdGlvbl9mZW5jZSAuXG4iCi0gICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxzZXRfcm91dGVfbW9kZSAkY29tbWFuZF0KLSAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgInJvdXRlX2Vhcmx5X2dsb2JhbFxuIgotICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksZWFybHlfcm91dGUgJGNvbW1hbmRdCi0gICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0gICAgICAgICAiMDAxMSIgewotICAgICAgICAgICAgaWYge1tsaW5kZXggW3NwbGl0ICR2YXJzKHZlcnNpb24pICIuIl0gIDBdIDwgMTZ9IHsKLSAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgInJvdXRlX3RyaWFsXG4iCi0gICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxyb3V0ZV90cmlhbF8xICRjb21tYW5kXQotICAgICAgICAgICAgICBzZXQgY29tbWFuZCAiYWRkX3BhcnRpdGlvbl9mZWVkdGhydXMgLXJvdXRlX2Jhc2VkIC13cml0ZV90b3BvbG9naWNhbF9maWxlIHRvcG8udHh0IC1uZXRfbWFwcGluZyBuZXRtYXBwaW5nLnR4dCAtZG91YmxlX2J1ZmZlclxuIgotICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksaW5zZXJ0X3B0bl9mZWVkdGhyb3VnaCAkY29tbWFuZF0KLSAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgInNldF9kYiByb3V0ZV90cmlhbF9oYW5kbGVfcGFydGl0aW9uX2NvbXBsZXggdHJ1ZVxuIgotICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksc2V0X3JvdXRlX3RyaWFsX21vZGUgJGNvbW1hbmRdCi0gICAgICAgICAgICAgIHNldCBjb21tYW5kICJyb3V0ZV90cmlhbFxuIgotICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCkscm91dGVfdHJpYWxfMiAkY29tbWFuZF0KLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgIHNldCBjb21tYW5kICJyb3V0ZV9lYXJseV9nbG9iYWxcbiIKLSAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLGVhcmx5X3JvdXRlXzEgJGNvbW1hbmRdCi0gICAgICAgICAgICAgIHNldCBjb21tYW5kICJhZGRfcGFydGl0aW9uX2ZlZWR0aHJ1cyAtcm91dGVfYmFzZWQgLXdyaXRlX3RvcG9sb2dpY2FsX2ZpbGUgdG9wby50eHQgLW5ldF9tYXBwaW5nIG5ldG1hcHBpbmcudHh0IC1kb3VibGVfYnVmZmVyXG4iCi0gICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxpbnNlcnRfcHRuX2ZlZWR0aHJvdWdoICRjb21tYW5kXQotICAgICAgICAgICAgICBzZXQgY29tbWFuZCAic2V0X2RiIHJvdXRlX2Vhcmx5X2dsb2JhbF9ob25vcl9wYXJ0aXRpb25fZmVuY2UgLlxuIgotICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksc2V0X3JvdXRlX3RyaWFsX21vZGUgJGNvbW1hbmRdCi0gICAgICAgICAgICAgIHNldCBjb21tYW5kICJyb3V0ZV9lYXJseV9nbG9iYWxcbiIKLSAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLGVhcmx5X3JvdXRlXzIgJGNvbW1hbmRdCi0gICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0gICAgICAgICAiMDEwMCIgewotICAgICAgICAgfQotICAgICAgICAgIjAxMDEiIHsKLSAgICAgICAgIH0KLSAgICAgICAgICIwMTEwIiB7Ci0gICAgICAgICB9Ci0gICAgICAgICAiMDExMSIgewotICAgICAgICAgICAgc2V0IGNvbW1hbmQgImFkZF9wYXJ0aXRpb25fZmVlZHRocnVzIC13cml0ZV90b3BvbG9naWNhbF9maWxlIHRvcG8udHh0IC1uZXRfbWFwcGluZyBuZXRtYXBwaW5nLnR4dCAtZG91YmxlX2J1ZmZlclxuIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLGluc2VydF9wdG5fZmVlZHRocm91Z2ggJGNvbW1hbmRdCi0gICAgICAgICB9Ci0gICAgICAgICAiMTAwMCIgewotICAgICAgICAgICAgaWYge1tsaW5kZXggW3NwbGl0ICR2YXJzKHZlcnNpb24pICIuIl0gIDBdIDwgMTZ9IHsKLSAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgInNldF9kYiByb3V0ZV90cmlhbF9oYW5kbGVfcGFydGl0aW9uX2NvbXBsZXggdHJ1ZVxuIgotICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksc2V0X3JvdXRlX3RyaWFsX21vZGUgJGNvbW1hbmRdCi0gICAgICAgICAgICAgIHNldCBjb21tYW5kICJyb3V0ZV90cmlhbFxuIgotICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCkscm91dGVfdHJpYWwgJGNvbW1hbmRdCi0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICBzZXQgY29tbWFuZCAic2V0X2RiIHJvdXRlX2Vhcmx5X2dsb2JhbF9ob25vcl9wYXJ0aXRpb25fZmVuY2UgLlxuIgotICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksc2V0X3JvdXRlX21vZGUgJGNvbW1hbmRdCi0gICAgICAgICAgICAgIHNldCBjb21tYW5kICJyb3V0ZV9lYXJseV9nbG9iYWxcbiIKLSAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHJvdXRlX2Vhcmx5ICRjb21tYW5kXQotICAgICAgICAgICAgfQotICAgICAgICAgfQotICAgICAgICAgIjEwMDEiIHsKLSAgICAgICAgICAgIGlmIHtbbGluZGV4IFtzcGxpdCAkdmFycyh2ZXJzaW9uKSAiLiJdICAwXSA8IDE2fSB7Ci0gICAgICAgICAgICAgIHNldCBjb21tYW5kICJyb3V0ZV90cmlhbFxuIgotICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCkscm91dGVfdHJpYWwgJGNvbW1hbmRdCi0gICAgICAgICAgICAgIHNldCBjb21tYW5kICJhZGRfcGFydGl0aW9uX2ZlZWR0aHJ1cyAtcm91dGVfYmFzZWQgLXdyaXRlX3RvcG9sb2dpY2FsX2ZpbGUgdG9wby50eHQgLW5ldF9tYXBwaW5nIG5ldG1hcHBpbmcudHh0IC1kb3VibGVfYnVmZmVyXG4iCi0gICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxpbnNlcnRfcHRuX2ZlZWR0aHJvdWdoICRjb21tYW5kXQotICAgICAgICAgICAgICBzZXQgY29tbWFuZCAic2V0X2RiIHJvdXRlX3RyaWFsX2hhbmRsZV9wYXJ0aXRpb25fY29tcGxleCB0cnVlXG4iCi0gICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxzZXRfcm91dGVfdHJpYWxfbW9kZSAkY29tbWFuZF0KLSAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgInJvdXRlX3RyaWFsXG4iCi0gICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxyb3V0ZV90cmlhbCAkY29tbWFuZF0KLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgIHNldCBjb21tYW5kICJyb3V0ZV9lYXJseV9nbG9iYWxcbiIKLSAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLGVhcmx5X3JvdXRlXzEgJGNvbW1hbmRdCi0gICAgICAgICAgICAgIHNldCBjb21tYW5kICJhZGRfcGFydGl0aW9uX2ZlZWR0aHJ1cyAtcm91dGVfYmFzZWQgLXdyaXRlX3RvcG9sb2dpY2FsX2ZpbGUgdG9wby50eHQgLW5ldF9tYXBwaW5nIG5ldG1hcHBpbmcudHh0IC1kb3VibGVfYnVmZmVyXG4iCi0gICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxpbnNlcnRfcHRuX2ZlZWR0aHJvdWdoICRjb21tYW5kXQotICAgICAgICAgICAgICBzZXQgY29tbWFuZCAic2V0X2RiIHJvdXRlX2Vhcmx5X2dsb2JhbF9ob25vcl9wYXJ0aXRpb25fZmVuY2UgLlxuIgotICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksc2V0X3JvdXRlX19tb2RlICRjb21tYW5kXQotICAgICAgICAgICAgICBzZXQgY29tbWFuZCAicm91dGVfZWFybHlfZ2xvYmFsXG4iCi0gICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxlYXJseV9yb3V0ZV8yICRjb21tYW5kXQotICAgICAgICAgICAgfQotICAgICAgICAgfQotICAgICAgICAgIjEwMTAiIHsKLSAgICAgICAgICAgIGlmIHtbbGluZGV4IFtzcGxpdCAkdmFycyh2ZXJzaW9uKSAiLiJdICAwXSA8IDE2fSB7Ci0gICAgICAgICAgICAgIHNldCBjb21tYW5kICJzZXRfZGIgcm91dGVfdHJpYWxfaGFuZGxlX3BhcnRpdGlvbl9jb21wbGV4IHRydWVcbiIKLSAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHNldF9yb3V0ZV90cmlhbF9tb2RlICRjb21tYW5kXQotICAgICAgICAgICAgICBzZXQgY29tbWFuZCAicm91dGVfdHJpYWxcbiIKLSAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHJvdXRlX3RyaWFsICRjb21tYW5kXQotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgInNldF9kYiByb3V0ZV9lYXJseV9nbG9iYWxfaG9ub3JfcGFydGl0aW9uX2ZlbmNlIC5cbiIKLSAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHNldF9yb3V0ZV9tb2RlICRjb21tYW5kXQotICAgICAgICAgICAgICBzZXQgY29tbWFuZCAicm91dGVfZWFybHlfZ2xvYmFsXG4iCi0gICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxlYXJseV9yb3V0ZSAkY29tbWFuZF0KLSAgICAgICAgICAgIH0KLSAgICAgIAotICAgICAgICAgfQotICAgICAgICAgIjEwMTEiIHsKLSAgICAgICAgICAgIGlmIHtbbGluZGV4IFtzcGxpdCAkdmFycyh2ZXJzaW9uKSAiLiJdICAwXSA8IDE2fSB7Ci0gICAgICAgICAgICAgIHNldCBjb21tYW5kICJyb3V0ZV90cmlhbFxuIgotICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCkscm91dGVfdHJpYWwgJGNvbW1hbmRdCi0gICAgICAgICAgICAgIHNldCBjb21tYW5kICJhZGRfcGFydGl0aW9uX2ZlZWR0aHJ1cyAtcm91dGVfYmFzZWQgLXdyaXRlX3RvcG9sb2dpY2FsX2ZpbGUgdG9wby50eHQgLW5ldF9tYXBwaW5nIG5ldG1hcHBpbmcudHh0IC1kb3VibGVfYnVmZmVyXG4iCi0gICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxpbnNlcnRfcHRuX2ZlZWR0aHJvdWdoICRjb21tYW5kXQotICAgICAgICAgICAgICBzZXQgY29tbWFuZCAic2V0X2RiIHJvdXRlX3RyaWFsX2hhbmRsZV9wYXJ0aXRpb25fY29tcGxleCB0cnVlXG4iCi0gICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxzZXRfcm91dGVfdHJpYWxfbW9kZSAkY29tbWFuZF0KLSAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgInJvdXRlX3RyaWFsXG4iCi0gICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxyb3V0ZV90cmlhbCAkY29tbWFuZF0KLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgIHNldCBjb21tYW5kICJyb3V0ZV9lYXJseV9nbG9iYWxcbiIKLSAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLGVhcmx5X3JvdXRlXzEgJGNvbW1hbmRdCi0gICAgICAgICAgICAgIHNldCBjb21tYW5kICJhZGRfcGFydGl0aW9uX2ZlZWR0aHJ1cyAtcm91dGVfYmFzZWQgLXdyaXRlX3RvcG9sb2dpY2FsX2ZpbGUgdG9wby50eHQgLW5ldF9tYXBwaW5nIG5ldG1hcHBpbmcudHh0IC1kb3VibGVfYnVmZmVyXG4iCi0gICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxpbnNlcnRfcHRuX2ZlZWR0aHJvdWdoICRjb21tYW5kXQotICAgICAgICAgICAgICBzZXQgY29tbWFuZCAic2V0X2RiIHJvdXRlX2Vhcmx5X2dsb2JhbF9ob25vcl9wYXJ0aXRpb25fZmVuY2UgLlxuIgotICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksc2V0X3JvdXRlX3RyaWFsX21vZGUgJGNvbW1hbmRdCi0gICAgICAgICAgICAgIHNldCBjb21tYW5kICJyb3V0ZV9lYXJseV9nbG9iYWxcbiIKLSAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHJvdXRlX2Vhcmx5XzIgJGNvbW1hbmRdCi0gICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0gICAgICAgICAiMTEwMCIgewotICAgICAgICAgfQotICAgICAgICAgIjExMDEiIHsKLSAgICAgICAgICAgIHNldCBjb21tYW5kICJhZGRfcGFydGl0aW9uX2ZlZWR0aHJ1cyAtd3JpdGVfdG9wb2xvZ2ljYWxfZmlsZSB0b3BvLnR4dCAtbmV0X21hcHBpbmcgbmV0bWFwcGluZy50eHQgLWRvdWJsZV9idWZmZXJcbiIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxpbnNlcnRfcHRuX2ZlZWR0aHJvdWdoICRjb21tYW5kXQotICAgICAgICAgfQotICAgICAgICAgIjExMTAiIHsKLSAgICAgICAgICAgIHNldCBkb19yb3V0ZV90cmlhbF90aW1lX2Rlc2lnbiAwICAgICAgICAgICAgCi0gICAgICAgICB9Ci0gICAgICAgICAiMTExMSIgewotICAgICAgICAgICAgc2V0IGNvbW1hbmQgImFkZF9wYXJ0aXRpb25fZmVlZHRocnVzIC13cml0ZV90b3BvbG9naWNhbF9maWxlIHRvcG8udHh0IC1uZXRfbWFwcGluZyBuZXRtYXBwaW5nLnR4dCAtZG91YmxlX2J1ZmZlclxuIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLGluc2VydF9wdG5fZmVlZHRocm91Z2ggJGNvbW1hbmRdCi0gICAgICAgICB9Ci0gICAgICB9Ci0gICAgICBpZiB7JHZhcnModXNlX3Byb3RvX25ldF9kZWxheV9tb2RlbCl9IHsgCi0gICAgICAgIHNldCBjb21tYW5kICJ0aW1lX2Rlc2lnbiAtcHJvdG8gLXByZV9jdHMgLXJlcG9ydF9wcmVmaXggcGxhY2UgLXJlcG9ydF9kaXIgJHZhcnMocnB0X2RpcilcbiIKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgIHNldCBjb21tYW5kICJ0aW1lX2Rlc2lnbiAtcHJlX2N0cyAtcmVwb3J0X3ByZWZpeCBwbGFjZSAtcmVwb3J0X2RpciAkdmFycyhycHRfZGlyKVxuIgotICAgICAgfQotICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHRpbWVfZGVzaWduICRjb21tYW5kXQotCi0JICAjIE91dHB1dCBvciBydW4gdGhlIGdlbmVyYXRlZCBjb21tYW5kcwotCSAgaWYgeyR2YXJzKGNvZGVnZW4pfSB7Ci0JCSByZXR1cm4gJGNvbW1hbmRzCi0JICB9IGVsc2UgewotCQkgIHVwbGV2ZWwgIzAgZXZhbCAkY29tbWFuZHMKLQkgIH0KLQotICAgfQotCi0gICBwcm9jIHJ1bl9hc3NpZ25fcGluIHt7Zm9ybWF0IDF9fSB7Ci0gICAgICBnbG9iYWwgdmFycwotICAgICAgZ2xvYmFsIGVycm9ycwotICAgICAgZ2xvYmFsIGVudgotCi0gICAgICBzZXQgdmFycyhzdGVwKSBhc3NpZ25fcGluCi0gICAgICBzZXQgdmFycyhoaWVyKSB0cnVlCi0gICAgICBzZXQgY29tbWFuZHMgIiIKLQotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgIyBBc3NpZ24gcGFydGl0aW9uIHBpbnMgdmlhIHBsdWctaW4gYXMgdGhpcyB0aGUKLSAgICAgICMgcGl0Y2gsIGRlcHRoLCBhbmQgbGF5ZXIgdmFsdWVzIGFyZSBkZXNpZ24gc3BlY2lmaWMKLSAgICAgICMgQWxzbywgdmVyaWZ5IHRoZSBwaW4gYXNzaWdubWVudCBhbmQgZml4IHRoZW0KLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLQotICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6c291cmNlX3BsdWcgcHJlX2Fzc2lnbl9waW5fdGNsXQotCi0gICAgICBzZXQgY29tbWFuZCAiYXNzaWduX3BhcnRpdGlvbl9waW5zXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksYXNzaWduX3BhcnRpdGlvbl9waW5zICRjb21tYW5kXQotCi0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjpzb3VyY2VfcGx1ZyBwb3N0X2Fzc2lnbl9waW5fdGNsXQotCi0gICAgICBzZXQgY29tbWFuZCAiY2hlY2tfcGluX2Fzc2lnbm1lbnRcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxjaGVja19waW5fYXNzaWdubWVudCAkY29tbWFuZF0KLQotICAgICAgc2V0IGNvbW1hbmQgInJlcG9ydF91bmFsaWduZWRfbmV0cyAtb3V0X2ZpbGUgJHZhcnMocnB0X2RpcikvdW5hbGlnbmVkLnJwdFxuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHJlcG9ydF91bmFsaWduZWRfbmV0cyAkY29tbWFuZF0KLQotICAgICAgaWYgeyEoW2luZm8gZXhpc3RzIHZhcnMocGxhY2VtZW50X2Jhc2VkX3B0bildICYmICR2YXJzKHBsYWNlbWVudF9iYXNlZF9wdG4pKX0gewotICAgICAgICBpZiB7W2xpbmRleCBbc3BsaXQgJHZhcnModmVyc2lvbikgIi4iXSAgMF0gPCAxNn0gewotICAgICAgICAgIHNldCBjb21tYW5kICJzZXRfZGIgcm91dGVfdHJpYWxfaGFuZGxlX3BhcnRpdGlvbl9jb21wbGV4IHRydWVcbnNldF9kYiByb3V0ZV90cmlhbF9ob25vcl9waW4gdHJ1ZVxuIgotICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJyb3V0ZV90cmlhbFxuIgotICAgICAgICB9IGVsc2UgewotICAgICAgICAgIHNldCBjb21tYW5kICJzZXRfZGIgcm91dGVfZWFybHlfZ2xvYmFsX2hvbm9yX3BhcnRpdGlvbl9mZW5jZSAuXG5zZXRfZGIgcm91dGVfZWFybHlfZ2xvYmFsX2hvbm9yX3BhcnRpdGlvbl9waW4gLlxuIgotICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJyb3V0ZV9lYXJseV9nbG9iYWxcbiIKLSAgICAgICAgfQotICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCkscm91dGVfdHJpYWwgJGNvbW1hbmRdCi0gICAgICB9Ci0KLSAgICAgIGlmIHskdmFycyhjb2RlZ2VuKX0gewotICAgICAgICAgcmV0dXJuICRjb21tYW5kcwotICAgICAgfSBlbHNlIHsKLSAgICAgICAgICB1cGxldmVsICMwIGV2YWwgJGNvbW1hbmRzCi0gICAgICB9Ci0gICB9Ci0KLSAgIHByb2MgcnVuX21vZGVsX2dlbiB7e2Zvcm1hdCAxfX0gewotCi0gICAgICBnbG9iYWwgdmFycwotICAgICAgZ2xvYmFsIGVycm9ycwotICAgICAgZ2xvYmFsIGVudgotCi0gICAgICBzZXQgdmFycyhzdGVwKSBtb2RlbF9nZW4KLSAgICAgIHNldCB2YXJzKGhpZXIpIHRydWUKLSAgICAgIHNldCBjb21tYW5kcyAiIgotCi0gICAgICAjIEluaXRpYWxpc2UgdGhlIGRlc2lnbgotICAgICAgaWYgeyR2YXJzKGNvZGVnZW4pfSB7IAotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRl9OT1ZVUzo6cnVuX2luaXQgJGZvcm1hdF0KLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgICBGRl9OT1ZVUzo6cnVuX2luaXQgJGZvcm1hdAotICAgICAgfQotCi0gICAgICBpZiB7W3N0cmluZyBjb21wYXJlIC1ub2Nhc2UgJHZhcnMoZGJzX2Zvcm1hdCkgIm9hIl09PTB9IHsKLSAgICAgICAgIHNldCBjb21tYW5kICJ3cml0ZV9kYiAtb2FfbGliX2NlbGxfdmlldyB7JHZhcnMob2FfZGVzaWduX2xpYikgJHZhcnMoZGVzaWduKSBpbml0fVxuIgotICAgICAgfSBlbHNlIHsKLSAgICAgICAgIHNldCBjb21tYW5kICJ3cml0ZV9kYiAkdmFycyhkYnNfZGlyKS9pbml0LmVuY1xuIgotICAgICAgfQotCi0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksc2F2ZV9kZXNpZ24saW5pdCAkY29tbWFuZF0KLSAgICAgIAotCi0gICAgICBpZiB7JHZhcnModXNlX3Byb3RvX25ldF9kZWxheV9tb2RlbCkgJiYgJHZhcnModXNlX2ZsZXhtb2RlbHMpfSB7Ci0gICAgICAgICBzZXQgY29tbWFuZCAiY2F0Y2gge2V4ZWMgcm0gLXJmIHByb3RvX21vZGVsX0JBQ0tVUH1cbmNhdGNoIHtleGVjIG12IC1mIHByb3RvX21vZGVsIHByb3RvX21vZGVsX0JBQ0tVUH1cbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxwcm90b19tb2RlbF9CQUNLVVAgJGNvbW1hbmRdCi0gICAgICAgICBzZXQgY29tbWFuZCAiY3JlYXRlX3BzX3Blcl9taWNyb25fbW9kZWxcbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxjcmVhdGVfcHNfcGVyX21pY3Jvbl9tb2RlbCAkY29tbWFuZF0KLSAgICAgIH0KLQotICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6c291cmNlX3BsdWcgcHJlX21vZGVsX2dlbl90Y2xdCi0gICAgICAKLSAgICAgIGlmIHskdmFycyhlbmFibGVfbnJncil9IHsKLSMgICAgICAgICBzZXQgY29tbWFuZCAic2V0X2RiIGRlc2lnbl91c2VfdHVyYm9fbnJncl9mbG93IHRydWVcbiIKLSMgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksc2V0X2Rlc2lnbl9tb2RlICRjb21tYW5kXQotICAgICAgfQotCi0gICAgICBzZXQgdmFycyhoaWVyX2Nhc2UpICIkdmFycyhmbGV4bW9kZWxfYXNfcHRuKSR2YXJzKGluc2VydF9mZWVkdGhyb3VnaCkiCi0KLSAgICAgIHN3aXRjaCAkdmFycyhoaWVyX2Nhc2UpIHsKLSAgICAgICAgICIwMCIgewotICAgICAgICAgICAgc2V0IGNvbW1hbmQgImlkZW50aWZ5X3Byb3RvX21vZGVsXG4iCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksaWRlbnRpZnlfcHJvdG9fbW9kZWwgJGNvbW1hbmRdCi0gICAgICAgICB9Ci0gICAgICAgICAiMDEiIHsKLSAgICAgICAgICAgIHNldCBjb21tYW5kICJpZGVudGlmeV9wcm90b19tb2RlbFxuIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLGlkZW50aWZ5X3Byb3RvX21vZGVsICRjb21tYW5kXQotICAgICAgICAgfQotICAgICAgICAgIjEwIiB7Ci0gICAgICAgICAgICBzZXQgY29tbWFuZCAgInNldF9kYiBwcm90b19jcmVhdGVfcGFydGl0aW9uX2FzX2ZsZXhtb2RlbCB0cnVlXG4iCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksc2V0X3Byb3RvX21vZGUgJGNvbW1hbmRdCi0jICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKHBhcnRpdGlvbl9saXN0KV0gJiYgKCR2YXJzKHBhcnRpdGlvbl9saXN0KSAhPSAiIil9IHsKLSMgICAgICAgICAgICAgICBmb3JlYWNoIHB0biAkdmFycyhwYXJ0aXRpb25fbGlzdCkgewotIyAgICAgICAgICAgICAgICAgICBzZXQgY29tbWFuZCAic2V0X3Byb3RvX21vZGVsIC1tb2RlbCAkcHRuIC10eXBlIGZsZXhfbW9kdWxlXG4iCi0jICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxzZXRfcHJvdG9fbW9kZWwgJGNvbW1hbmRdCi0jICAgICAgICAgICAgICAgIH0KLSMgICAgICAgICAgICB9IGVsc2UgewotIyAgICAgICAgICAgICAgIHB1dHMgIjxGRj4gRVJST1I6IEZsZXhtb2RlbCBwYXJ0aXRpb24gZmxvdyBlbmFibGVkIGJ1dCBubyBwYXJ0aXRpb25zIGFyZSBkZWZpbmVkIgotIyAgICAgICAgICAgICAgIHNldCBlcnJvcnMoJHZhcnMoZXJyb3JfY291bnQpKSAiRmxleG1vZGVsIHBhcnRpdGlvbiBmbG93IGVuYWJsZWQgYnV0IG5vIHBhcnRpdGlvbnMgYXJlIGRlZmluZWQiCi0jICAgICAgICAgICAgICAgaW5jciB2YXJzKGVycm9yX2NvdW50KQotIyAgICAgICAgICAgIH0KLSAgICAgICAgIH0KLSAgICAgICAgICIxMSIgewotICAgICAgICAgICAgc2V0IGNvbW1hbmQgICJzZXRfZGIgcHJvdG9fY3JlYXRlX3BhcnRpdGlvbl9hc19mbGV4bW9kZWwgdHJ1ZVxuIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHNldF9wcm90b19tb2RlICRjb21tYW5kXQotIyAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhwYXJ0aXRpb25fbGlzdCldICYmICgkdmFycyhwYXJ0aXRpb25fbGlzdCkgIT0gIiIpfSB7Ci0jICAgICAgICAgICAgICAgZm9yZWFjaCBwdG4gJHZhcnMocGFydGl0aW9uX2xpc3QpIHsKLSMgICAgICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgInNldF9wcm90b19tb2RlbCAtbW9kZWwgJHB0biAtdHlwZSBmbGV4X21vZHVsZVxuIgotIyAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksc2V0X3Byb3RvX21vZGVsICRjb21tYW5kXQotIyAgICAgICAgICAgICAgICB9Ci0jICAgICAgICAgICAgfSBlbHNlIHsKLSMgICAgICAgICAgICAgICBwdXRzICI8RkY+IEVSUk9SOiBGbGV4bW9kZWwgcGFydGl0aW9uIGZsb3cgZW5hYmxlZCBidXQgbm8gcGFydGl0aW9ucyBhcmUgZGVmaW5lZCIKLSMgICAgICAgICAgICAgICBzZXQgZXJyb3JzKCR2YXJzKGVycm9yX2NvdW50KSkgIkZsZXhtb2RlbCBwYXJ0aXRpb24gZmxvdyBlbmFibGVkIGJ1dCBubyBwYXJ0aXRpb25zIGFyZSBkZWZpbmVkIgotIyAgICAgICAgICAgICAgIGluY3IgdmFycyhlcnJvcl9jb3VudCkKLSMgICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0gICAgICB9Ci0KLSMgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMobW9kZWxfZ2VuLG1pbl9pbnN0KV19IHsKLSMgICAgICAgICBzZXQgbWluX2luc3QgJHZhcnMobW9kZWxfZ2VuLG1pbl9pbnN0KQotIyAgICAgIH0gZWxzZSB7Ci0jICAgICAgICAgc2V0IG1pbl9pbnN0IDEwMDAKLSMgICAgICB9Ci0jICAgICAgc2V0IGNvbW1hbmQgInNldF9kYiBpbG1fa2VlcF9oaWdoX2Zhbm91dF9wb3J0cyBmYWxzZVxuIgotIyAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxzZXRJbG1Nb2RlICRjb21tYW5kXQotICAgICAKLSAgICAgIHNldCBjb21tYW5kICJzZXRfZGIgaWxtX2tlZXBfaGlnaF9mYW5vdXRfcG9ydHMgZmFsc2VcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxzZXRfaWxtX21vZGUgJGNvbW1hbmRdCi0gICAgICBpZiB7JHZhcnMoZmxleG1vZGVsX2FydF9iYXNlZCl9IHsKLSAgICAgICAgIHNldCBjb21tYW5kICJjcmVhdGVfcHJvdG9fbW9kZWwgLW91dF9kaXIgJHZhcnMoZGJzX2RpcikvbW9kZWxfZ2VuLmVuY1xuIgotICAgICAgfSBlbHNlIHsKLSAgICAgICAgIHNldCBjb21tYW5kICJjcmVhdGVfcHJvdG9fbW9kZWwgLXBhcnRpdGlvbl9iYXNlZFxuY29tbWl0X3Byb3RvX21vZGVsXG4iCi0gICAgICB9Ci0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksY3JlYXRlX3Byb3RvX21vZGVsICRjb21tYW5kXQotICAgICAgaWYgeyR2YXJzKGNyZWF0ZV9mbGV4ZmlsbGVyX2Jsb2NrYWdlKX0gewotICAgICAgICAgc2V0IGNvbW1hbmQgImNyZWF0ZV9mbGV4ZmlsbGVyX3JvdXRlX2Jsb2NrYWdlXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksY3JlYXRlX2ZsZXhmaWxsZXJfcm91dGVfYmxvY2thZ2UgJGNvbW1hbmRdCi0gICAgICB9Ci0KLSAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OnNvdXJjZV9wbHVnIHBvc3RfbW9kZWxfZ2VuX3RjbF0KLQotICAgICAgaWYgeyR2YXJzKGNvZGVnZW4pfSB7Ci0gICAgICAgICByZXR1cm4gJGNvbW1hbmRzCi0gICAgICB9IGVsc2UgewotICAgICAgICAgIHVwbGV2ZWwgIzAgZXZhbCAkY29tbWFuZHMKLSAgICAgIH0KLSAgIH0KLQotICAgcHJvYyBydW5fcGFydGl0aW9uIHt7Zm9ybWF0IDF9fSB7Ci0KLSAgICAgIGdsb2JhbCB2YXJzCi0gICAgICBnbG9iYWwgZXJyb3JzCi0gICAgICBnbG9iYWwgZW52Ci0KLSAgICAgIHNldCB2YXJzKHN0ZXApIHBhcnRpdGlvbgotICAgICAgc2V0IHZhcnMoaGllcikgdHJ1ZQotCi0gICAgICBzZXQgY29tbWFuZHMgIiIKLQotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgIyBCdWRnZXQgdGhlIGJsb2NrcyBiYXNlZCBvbiB0aGUgbW9kZQotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCi0gICAgICBzZXQgY29tbWFuZCAiIgotIyAgICAgIGFwcGVuZCBjb21tYW5kICJzZXRfZ2xvYmFsIHRpbWluZ19zdXBwb3J0X2hpZXJhcmNoaWNhbF9waW5fY29uc3RyYWludHMgdHJ1ZVxuIgotIyAgICAgIGFwcGVuZCBjb21tYW5kICJzZXRfZGIgdGJnUHJpbnRFeGNlcHRpb25JbmZvSW5KdXN0aWZ5IDFcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxzZXRfYnVkZ2V0X3ZhcnMgJGNvbW1hbmRdCi0KLSAgICAgIGlmIHskdmFycyhidWRnZXRfbW9kZSkgPT0gInByb3RvX25ldF9kZWxheV9tb2RlbCIgJiYgJHZhcnModXNlX3Byb3RvX25ldF9kZWxheV9tb2RlbCl9IHsKLSAgICAgICAgIHNldCBjb21tYW5kICJ0aW1lX2Rlc2lnbiAtcHJvdG8gLXJlcG9ydF9wcmVmaXggYnVkZ2V0IC1yZXBvcnRfZGlyICR2YXJzKHJwdF9kaXIpXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksdGltZV9kZXNpZ24gJGNvbW1hbmRdCi0gICAgICB9Ci0KLSAgICAgICMgRGVmaW5lIGJ1ZGdldGluZyBvcHRpb25zIC4uLgotICAgICAgc2V0IGNvbW1hbmQgIiIKLQotICAgICAgYXBwZW5kIGNvbW1hbmQgInNldF9kYiBidWRnZXRfd3JpdGVfbGF0ZW5jeV9wZXJfY2xvY2sgdHJ1ZVxuIgotCi0gICAgICBhcHBlbmQgY29tbWFuZCAiaWYge1xbZ2V0X2RiIGhpbnN0cyAucGFydGl0aW9uLmNsb25lc1xdICE9IFwiXCJ9IHtcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kICIgICBzZXRfZGIgYnVkZ2V0X21lcmdlX2Nsb25lcyB0cnVlXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZCAifVxuIgotICAgICAgCi0gICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoYWJ1dHRlZF9kZXNpZ24pXSAmJiAkdmFycyhhYnV0dGVkX2Rlc2lnbil9IHsKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kICJzZXRfZGIgYnVkZ2V0X2FidXR0ZWQgdHJ1ZVxuIgotICAgICAgfQotICAgICAgCi0jICAgICAgc3dpdGNoIFtzdHJpbmcgdG9sb3dlciAkdmFycyhidWRnZXRfbW9kZSldIHsKLSMgICAgICAgICBnaWdhX29wdCB7Ci0jICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgInNldF9kYiBidWRnZXRfdmlydHVhbF9vcHRfZW5naW5lIGdpZ2Ffb3B0XG4iCi0jICAgICAgICAgfQotIyAgICAgICAgIHByb3RvX25ldF9kZWxheV9tb2RlbCB7Ci0jICAgICAgICAgICAgaWYgeyR2YXJzKHVzZV9wcm90b19uZXRfZGVsYXlfbW9kZWwpfSB7Ci0jICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgInNldF9kYiBidWRnZXRfdmlydHVhbF9vcHRfZW5naW5lIG5vbmVcbiIKLSMgICAgICAgICAgICB9Ci0jICAgICAgICAgfQotIyAgICAgIH0KLSMgICAgICBhcHBlbmQgY29tbWFuZCAic2V0X2RiIGJ1ZGdldF9lbmFibGVfbXRfYnVkZ2V0aW5nIHRydWVcbiIKLQotICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHNldF9idWRnZXRpbmdfbW9kZSAkY29tbWFuZF0KLSAgICAgIAotICAgICAgaWYgeyhbc3RyaW5nIHRvbG93ZXIgJHZhcnMoYnVkZ2V0X21vZGUpXSAhPSAicHJvdG9fbmV0X2RlbGF5X21vZGVsIikgJiYgJHZhcnModXNlX3Byb3RvX25ldF9kZWxheV9tb2RlbCl9IHsKLSAgICAgICAgIHNldCBjb21tYW5kICJzZXRfcHJvdG9fdGltaW5nX3NldHRpbmdzIC1yZXNldFxuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHNldF9wcm90b190aW1pbmdfc2V0dGluZ3MgJGNvbW1hbmRdCi0gICAgICB9Ci0gICAgICBzZXQgY29tbWFuZCAiY3JlYXRlX3RpbWluZ19idWRnZXQgLWp1c3RpZnlcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxjcmVhdGVfdGltaW5nX2J1ZGdldCAkY29tbWFuZF0KLQotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgIyBSdW4gQ0xQCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICBpZiB7W0ZGOjppc19scF9mbG93XSAmJiBbaW5mbyBleGlzdHMgdmFycyhwb3dlcl9kb21haW5zKV0gJiYgW2xsZW5ndGggJHZhcnMocG93ZXJfZG9tYWlucyldID4gMX0gewotICAgICAgICAgaWYgeyR2YXJzKHJ1bl9jbHApICYmIChbYXV0b19leGVjb2sgbGVjXSAhPSAiIil9IHsKLSAgICAgICAgICAgIHNldCBjb21tYW5kICJydW5fY2xwICIKLSAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhjbHBfb3B0aW9ucyldfSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAkdmFycyhjbHBfb3B0aW9ucykKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJcbiIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxydW5fY2xwICRjb21tYW5kXQotICAgICAgICAgfQotICAgICAgfQotCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAjIFBhcnRpdGlvbiBhbmQgc2F2ZSB0aGUgcGFydGl0aW9ucyBpbnRvIHRoZQotICAgICAgIyBkaXJlY3RvcnkgUEFSVElUSU9OCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0KLSMgICAgICBpZiB7JHZhcnModXNlX2ZsZXhtb2RlbHMpfSB7Ci0jICAgICAgICAgc2V0IG1heF9sYXllciBbZ2V0VHJpYWxSb3V0ZU1vZGUgLW1heFJvdXRlTGF5ZXJdCi0jICAgICAgICAgc2V0UGxhY2VNb2RlIC1yZXNldAotIyAgICAgICAgIHNldFRyaWFsUm91dGVNb2RlIC1yZXNldAotIyAgICAgICAgIHNldFRyaWFsUm91dGVNb2RlIC1tYXhSb3V0ZUxheWVyICRtYXhfbGF5ZXIKLSMgICAgICB9Ci0KLSAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OnNvdXJjZV9wbHVnIHByZV9wYXJ0aXRpb25fdGNsXQotCi0gICAgICBzZXQgY29tbWFuZCAiY29tbWl0X3BhcnRpdGlvbiAtYnVpbGRfc2NhblxuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHBhcnRpdGlvbiAkY29tbWFuZF0KLSAgICAgIGlmIHtbbGluZGV4IFtzcGxpdCAkdmFycyh2ZXJzaW9uKSAiLiJdICAwXSA+IDEwfSB7Ci0gICAgICAgICBpZiB7KFtzdHJpbmcgY29tcGFyZSAkdmFycyhkYnNfZm9ybWF0KSAib2EiXT09MCl9IHsKLSAgICAgICAgICAgIHNldCBjb21tYW5kICJ3cml0ZV9wYXJ0aXRpb25zIC1wYXJ0aXRpb25fbGliICR2YXJzKG9hX3BhcnRpdGlvbl9saWIpIC1kaXIgJHZhcnMocGFydGl0aW9uX2RpcilcbiIKLSAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBzZXQgY29tbWFuZCAid3JpdGVfcGFydGl0aW9ucyAtZGlyICR2YXJzKHBhcnRpdGlvbl9kaXIpIC1kZWYgLWRlZl9zY2FuXG4iCi0gICAgICAgICB9Ci0gICAgICB9IGVsc2UgewotICAgICAgICAgc2V0IGNvbW1hbmQgIndyaXRlX3BhcnRpdGlvbnMgLWRpciAkdmFycyhwYXJ0aXRpb25fZGlyKSAtZGVmIC1kZWZfc2NhblxuIgotICAgICAgfQotICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHNhdmVfcGFydGl0aW9uICRjb21tYW5kXQotCi0gICAgICBpZiB7JHZhcnModXNlX2ZsZXhtb2RlbHMpICYmICR2YXJzKGZsZXhtb2RlbF9hc19wdG4pfSB7Ci0jICAgICAgICAgc2V0IGNvbW1hbmQgInJlcGxhY2VfcHJvdG9fbW9kZWwgXFxcbiIKLSMgICAgICAgICBhcHBlbmQgY29tbWFuZCAiICAgLXByZV9mdF9kaXIgJHZhcnMoZWNvX2RpcikvcHJlX2Z0IFxcXG4iCi0jICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAgIC1wb3N0X2Z0X2RpciAkdmFycyhlY29fZGlyKS9wb3N0X2Z0IFxcXG4iCi0jICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAgIC1wdG5fZGlyICR2YXJzKHBhcnRpdGlvbl9kaXIpIFxcXG4iCi0jICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAgIC1wdG5fZnVsbF9uZXRsaXN0X2RpciAuL3RlbXBfbmV0bGlzdF9kaXIgXFxcbiIKLSMgICAgICAgICBhcHBlbmQgY29tbWFuZCAiICAgLW91dF9kaXIgJHZhcnMocGFydGl0aW9uX2RpcilcbiIKLQotICAgICAgICAgc2V0IGNvbW1hbmQgInJlcGxhY2VfcHJvdG9fbW9kZWwgXFxcbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgICAtcHRuX2RpciAkdmFycyhwYXJ0aXRpb25fZGlyKSBcXFxuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAgIC1vdXRfZGlyICR2YXJzKHBhcnRpdGlvbl9kaXIpXG4iCi0KLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxyZXBsYWNlX3Byb3RvX21vZGVsICRjb21tYW5kXQotICAgICAgfQotCi0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjpzb3VyY2VfcGx1ZyBwb3N0X3BhcnRpdGlvbl90Y2xdCi0KLSAgICAgIGFwcGVuZCBjb21tYW5kcyAiIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzICIjIDxGRj4gR0VORVJBVElORyBSRVBPUlRTXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgIiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiIKLQotICAgICAgaWYgeyR2YXJzKHJlcG9ydF9wb3dlcil9IHsKLSAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhwb3dlcl9hbmFseXNpc192aWV3KV0gJiYgKCR2YXJzKHBvd2VyX2FuYWx5c2lzX3ZpZXcpICE9ICIiKX0gewotICAgICAgICAgICAgc2V0IGNvbW1hbmQgInJlcG9ydF9wb3dlciAtdmlldyAkdmFycyhwb3dlcl9hbmFseXNpc192aWV3KSAtb3V0ZmlsZSAkdmFycyhycHRfZGlyKS8kdmFycyhzdGVwKS5wb3dlci5ycHRcbiIKLSAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBzZXQgY29tbWFuZCAicmVwb3J0X3Bvd2VyIC1vdXRmaWxlICR2YXJzKHJwdF9kaXIpLyR2YXJzKHN0ZXApLnBvd2VyLnJwdFxuIgotICAgICAgICAgfQotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHJlcG9ydF9wb3dlciAkY29tbWFuZF0KLSAgICAgIH0KLSAgICAgIHNldCBjb21tYW5kICIiCi0KLSAgICAgIGlmIHtbRkY6OmlzX2xwX2Zsb3ddICYmIFtpbmZvIGV4aXN0cyB2YXJzKHBvd2VyX2RvbWFpbnMpXSAmJiBbbGxlbmd0aCAkdmFycyhwb3dlcl9kb21haW5zKV0gPiAxfSB7Ci0KLSAgICAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICAgICMgVmVyaWZ5IHBvd2VyIGRvbWFpbgotICAgICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCi0jICAgICAgICAgc2V0IGNvbW1hbmQgImNoZWNrX3Bvd2VyX2RvbWFpbiAtYmluZCAtZ2Nvbm4iCi0jICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAtaXNvX25ldF9wZCAkdmFycyhycHRfZGlyKS8kdmFycyhzdGVwKS5pc29uZXRzLnJwdCIKLSMgICAgICAgICBhcHBlbmQgY29tbWFuZCAiIC14X25ldF9wZCAkdmFycyhycHRfZGlyKS8kdmFycyhzdGVwKS54bmV0cy5ycHRcbiIKLQotIyAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxjaGVja19wb3dlcl9kb21haW4gJGNvbW1hbmRdCi0KLSAgICAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICAgICMgUnVuIENMUAotICAgICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCi0gICAgICAgICBpZiB7JHZhcnMocnVuX2NscCkgJiYgKFthdXRvX2V4ZWNvayBsZWNdICE9ICIiKX0gewotICAgICAgICAgICAgc2V0IGNvbW1hbmQgInJ1bl9jbHAgIgotICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGNscF9vcHRpb25zKV19IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICR2YXJzKGNscF9vcHRpb25zKQotICAgICAgICAgICAgfQotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIlxuIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHJ1bl9jbHAgJGNvbW1hbmRdCi0gICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycyhjbHBfd2FybmluZyldfSB7Ci0gICAgICAgICAgICAgICBwdXRzICI8RkY+IFdBUk5JTkc6IFVOQUJMRSBUTyBSVU4gQ0xQIC4uLiBQTEVBU0UgTUFLRSBTVVJFIElUIElTIElOIFlPVVIgUEFUSCIKLSAgICAgICAgICAgICAgIHNldCB2YXJzKGNscF93YXJuaW5nKSB0cnVlCi0gICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0gICAgICB9Ci0KLSAgICAgIGlmIHshJHZhcnMoY29kZWdlbil9IHsKLSAgICAgICAgICB1cGxldmVsICMwIGV2YWwgJGNvbW1hbmRzCi0gICAgICB9Ci0KLSAgICAgIHNldCBwYXRoIFtmaWxlIG5vcm1hbGl6ZSAkdmFycyhzY3JpcHRfcGF0aCldCi0gICAKLSAgICAgIGZpbGUgbWtkaXIgJHZhcnMocGFydGl0aW9uX2RpcikKLQotICAgICAgaWYgeyFbZmlsZSBleGlzdHMgJHZhcnMocGFydGl0aW9uX2RpcikvTWFrZWZpbGUucGFydGl0aW9uXX0gewotICAgICAgICAgZmlsZSBjb3B5ICR2YXJzKHNjcmlwdF9wYXRoKS9FVEMvSU5OT1ZVUy9NYWtlZmlsZS5wYXJ0aXRpb24gJHZhcnMocGFydGl0aW9uX2RpcikKLSAgICAgIH0KLSAgICAgIHNldCBvcCBbb3BlbiAkdmFycyhwYXJ0aXRpb25fZGlyKS9NYWtlZmlsZSB3XQotICAgICAgaWYgeyFbaW5mbyBleGlzdHMgZW52KFZQQVRIKV19IHsKLSAgICAgICAgIHNldCBlbnYoVlBBVEgpICJtYWtlIgotICAgICAgfQotICAgICAgcHV0cyAkb3AgIlZQQVRIPSRlbnYoVlBBVEgpIgotICAgICAgcHV0cyAkb3AgIkJMT0NLUyA9ICR2YXJzKHBhcnRpdGlvbl9saXN0KSIKLSAgICAgIHB1dHMgJG9wICIiCi0gICAgICBwdXRzICRvcCAiaW5jbHVkZSBNYWtlZmlsZS5wYXJ0aXRpb24iCi0gICAgICBjbG9zZSAkb3AKLSAgIAotICAgICAgZm9yZWFjaCB2YXIgW2FycmF5IG5hbWVzIHZhcnNdIHsKLSAgICAgICAgIHNldCBzdmFycygkdmFyKSAkdmFycygkdmFyKQotICAgICAgfQotICAgICAgc2V0IHZhcnMobW9kZSkgZmxhdAotIyAgICAgIHNldCB2YXJzKGhpZXIpIHRydWUKLSAgICAgIHNldCBsaW5rIFtmaWxlIG5vcm1hbGl6ZSAkdmFycyhzY3JpcHRfcm9vdCldCi0gICAgICBmb3JlYWNoIGJsb2NrIFtjb25jYXQgJHZhcnMoZGVzaWduKSAkdmFycyhwYXJ0aXRpb25fbGlzdCldIHsKLSAgICAgICAgIGV4ZWMgbWtkaXIgLXAgJHZhcnMocGFydGl0aW9uX2RpcikvJGJsb2NrCi0jICAgICAgICAgaWYge1tmaWxlIGV4aXN0cyAuZmYudGNsXX0gewotIyAgICAgICAgICAgIGZpbGUgY29weSAtZm9yY2UgLmZmLnRjbCAkdmFycyhwYXJ0aXRpb25fZGlyKS8kYmxvY2sKLSMgICAgICAgICB9Ci0gICAgICAgICBpZiB7W2ZpbGUgZXhpc3RzICR2YXJzKHBhcnRpdGlvbl9kaXIpLyRibG9jay9NYWtlZmlsZV19IHsKLSAgICAgICAgICAgIGZpbGUgZGVsZXRlICR2YXJzKHBhcnRpdGlvbl9kaXIpLyRibG9jay9NYWtlZmlsZQotICAgICAgICAgfQotICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCRibG9jayxpbm5vdnVzX2NvbmZpZ190Y2wpXSAmJiBbZmlsZSBleGlzdHMgJHZhcnMoJGJsb2NrLGlubm92dXNfY29uZmlnX3RjbCldfSB7Ci0gICAgICAgICAgICBwdXRzICI8RkY+IFNvdXJjaW5nICR2YXJzKCRibG9jayxpbm5vdnVzX2NvbmZpZ190Y2wpIgotICAgICAgICAgICAgc291cmNlICR2YXJzKCRibG9jayxpbm5vdnVzX2NvbmZpZ190Y2wpCi0gICAgICAgICB9IAotICAgICAgICAgc2V0IGN3ZCBbcHdkXQotICAgICAgICAKLSAgICAgICAgIGlmIHsoW2xpbmRleCBbc3BsaXQgJHZhcnModmVyc2lvbikgIi4iXSAgMF0gPiAxMCkgICYmIChbc3RyaW5nIGNvbXBhcmUgJHZhcnMoZGJzX2Zvcm1hdCkgIm9hIl09PTApfSB7Ci0gICAgICAgICAgICBpZiB7W2ZpbGUgZXhpc3RzIGNkcy5saWJdfSB7Ci0gICAgICAgICAgICAgICBzZXQgaXAgW29wZW4gY2RzLmxpYiByXQotICAgICAgICAgICAgICAgc2V0IGkgMCAKLSAgICAgICAgICAgICAgIHdoaWxlIHtbZ2V0cyAkaXAgbGluZV0+PTB9IHsKLSAgICAgICAgICAgICAgICAgIHNldCBjZHNfbGliKCRpKSAkbGluZQotICAgICAgICAgICAgICAgICAgaW5jciBpCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICBjbG9zZSAkaXAKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBwdXRzICI8RkY+IEVSUk9SOiBBIGNkcy5saWIgZmlsZSBpcyByZXF1aXJlZCBmb3Igb3BlbiBhY2Nlc3MgZmxvd3MgLi4uIgotICAgICAgICAgICAgfQotICAgICAgICAgfSAKLSAgICAgICAgIGNkICR2YXJzKHBhcnRpdGlvbl9kaXIpLyRibG9jawotICAgICAgICAgc2V0IHZhcnMoZGVzaWduKSAkYmxvY2sKLSAgICAgICAgIGlmIHskdmFycyhjb2RlZ2VuKX0gewotICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKHByb2NfZmlsZSldfSB7Ci0gICAgICAgICAgICAgICB1bnNldCB2YXJzKHByb2NfZmlsZSkKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHVuc2V0IHZhcnMoc3RlcHMpCi0gICAgICAgICB9IAotICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGN0c19zcGVjKV19IHsKLSAgICAgICAgICAgIHVuc2V0IHZhcnMoY3RzX3NwZWMpCi0gICAgICAgICB9Ci0gICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJGJsb2NrLGN0c19zcGVjKV19IHsKLSAgICAgICAgICAgIHNldCB2YXJzKGN0c19zcGVjKSAkdmFycygkYmxvY2ssY3RzX3NwZWMpCi0gICAgICAgICB9Ci0KLSAgICAgICAgIGlmIHshJHZhcnMoY29kZWdlbil9IHsgCi0gICAgICAgICAgICBleGVjIGxuIC1zICRsaW5rIFNDUklQVFMKLSAgICAgICAgICAgIGV4ZWMgbG4gLXMgU0NSSVBUUy9NYWtlZmlsZS5lZGkuZmxhdCBNYWtlZmlsZQotICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHNldCB2YXJzKG1vZGUpIGZsYXQKLSAgICAgICAgICAgIHNldCB2YXJzKGhpZXIpIHRydWUgCi0gICAgICAgICAgICB1bnNldCB2YXJzKHN0ZXApCi0gICAgICAgICAgICBleGVjdXRlX2Zsb3cgYWxsICR2YXJzKGZvcm1hdF9saW5lcykKLSAgICAgICAgICAgIEZGOjpkdW1wX3ZhcnMKLSAgICAgICAgIH0KLSAgICAgICAgIGNkICRjd2QKLSMgICAgICAgICBzZXQgYWN0aW9ucyAkdmFycyhhY3Rpb25zKQotICAgICAgICAgZm9yZWFjaCB2YXIgW2FycmF5IG5hbWVzIHZhcnNdIHsKLSAgICAgICAgICAgIGlmIHskdmFyICE9ICJwcm9jZXNzZWRfcGx1Z2lucyJ9IHsKLSAgICAgICAgICAgICAgIHVuc2V0IHZhcnMoJHZhcikKLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0KLSMgICAgICAgICBzZXQgdmFycyhhY3Rpb25zKSAkYWN0aW9ucwotICAgICAgICAgZm9yZWFjaCB2YXIgW2FycmF5IG5hbWVzIHN2YXJzXSB7Ci0gICAgICAgICAgICBpZiB7JHZhciAhPSAicHJvY2Vzc2VkX3BsdWdpbnMifSB7Ci0gICAgICAgICAgICAgICBzZXQgdmFycygkdmFyKSAkc3ZhcnMoJHZhcikKLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0KLSAgICAgIH0KLSAgICAgIGlmIHskdmFycyhoaWVyX2Zsb3dfdHlwZSkgPT0gIjJwYXNzIn0gewotICAgICAgICAgZm9yZWFjaCBibG9jayBbY29uY2F0ICR2YXJzKGRlc2lnbikgJHZhcnMocGFydGl0aW9uX2xpc3QpXSB7Ci0gICAgICAgICAgICBleGVjIG1rZGlyIC1wICR2YXJzKHBhcnRpdGlvbl9kaXJfcGFzczIpLyRibG9jay8kdmFycyhzY3JpcHRfZGlyKS9JTk5PVlVTCi0gICAgICAgICAgICBleGVjIG1rZGlyIC1wICR2YXJzKHBhcnRpdGlvbl9kaXJfcGFzczIpLyRibG9jay8kdmFycyhycHRfZGlyKQotICAgICAgICAgICAgaWYge1tmaWxlIGlzZGlyZWN0b3J5ICR2YXJzKHBhcnRpdGlvbl9kaXJfcGFzczIpLyRibG9jay8kdmFycyhzY3JpcHRfZGlyKS9FVENdfSB7Ci0gICAgICAgICAgICAgICBmaWxlIGRlbGV0ZSAtZm9yY2UgJHZhcnMocGFydGl0aW9uX2Rpcl9wYXNzMikvJGJsb2NrLyR2YXJzKHNjcmlwdF9kaXIpL0VUQwotICAgICAgICAgICAgfQotIyAgICAgICAgICAgIGZpbGUgY29weSAtZm9yY2UgJHZhcnMocGFydGl0aW9uX2RpcikvJGJsb2NrLyR2YXJzKHNjcmlwdF9kaXIpL0VUQyAkdmFycyhwYXJ0aXRpb25fZGlyX3Bhc3MyKS8kYmxvY2svJHZhcnMoc2NyaXB0X2RpcikvRVRDCi0gICAgICAgICAgICBmb3JlYWNoIGZpbGUgW2dsb2IgJHZhcnMocGFydGl0aW9uX2RpcikvTWFrZSpdIHsKLSAgICAgICAgICAgICAgIGlmIHtbZmlsZSBpc2ZpbGUgJGZpbGVdfSB7Ci0gICAgICAgICAgICAgICAgICBmaWxlIGNvcHkgLWZvcmNlICRmaWxlICR2YXJzKHBhcnRpdGlvbl9kaXJfcGFzczIpCi0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAgICAgZm9yZWFjaCBmaWxlIFtnbG9iICR2YXJzKHBhcnRpdGlvbl9kaXIpLyRibG9jay8kdmFycyhzY3JpcHRfZGlyKS8qXSB7Ci0gICAgICAgICAgICAgICBpZiB7W2ZpbGUgaXNmaWxlICRmaWxlXX0gewotICAgICAgICAgICAgICAgICAgZmlsZSBjb3B5IC1mb3JjZSAkZmlsZSAkdmFycyhwYXJ0aXRpb25fZGlyX3Bhc3MyKS8kYmxvY2svJHZhcnMoc2NyaXB0X2RpcikKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiB7W2ZpbGUgaXNmaWxlICR2YXJzKHBhcnRpdGlvbl9kaXIpLyRibG9jay8uaWxtX25vbl9zZGNfZmlsZS50Y2xdfSB7Ci0gICAgICAgICAgICAgICBmaWxlIGNvcHkgLWZvcmNlICR2YXJzKHBhcnRpdGlvbl9kaXIpLyRibG9jay8uaWxtX25vbl9zZGNfZmlsZS50Y2wgJHZhcnMocGFydGl0aW9uX2Rpcl9wYXNzMikvJGJsb2NrCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiB7W2ZpbGUgaXNmaWxlICR2YXJzKHBhcnRpdGlvbl9kaXIpLyRibG9jay9lbXB0eS5zZGNdfSB7Ci0gICAgICAgICAgICAgICBmaWxlIGNvcHkgLWZvcmNlICR2YXJzKHBhcnRpdGlvbl9kaXIpLyRibG9jay9lbXB0eS5zZGMgJHZhcnMocGFydGl0aW9uX2Rpcl9wYXNzMikvJGJsb2NrCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiB7W2ZpbGUgaXNmaWxlICR2YXJzKHBhcnRpdGlvbl9kaXIpLyRibG9jay9NYWtlZmlsZS5wYXNzMl19IHsKLSAgICAgICAgICAgICAgIGZpbGUgY29weSAtZm9yY2UgJHZhcnMocGFydGl0aW9uX2RpcikvJGJsb2NrL01ha2VmaWxlLnBhc3MyICR2YXJzKHBhcnRpdGlvbl9kaXJfcGFzczIpLyRibG9jay9NYWtlZmlsZQotICAgICAgICAgICAgICAgZmlsZSBkZWxldGUgJHZhcnMocGFydGl0aW9uX2RpcikvJGJsb2NrL01ha2VmaWxlLnBhc3MyCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBjZCAkdmFycyhwYXJ0aXRpb25fZGlyX3Bhc3MyKS8kYmxvY2sKLSAgICAgICAgICAgIGlmIHskdmFycyhlbmFibGVfZmxleGlsbSl9IHsKLSAgICAgICAgICAgICAgIHNldCBpbmRleCBbbHNlYXJjaCBbRkY6OmFkanVzdF9zdGVwc10gY3RzXQotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIHNldCBpbmRleCBbbHNlYXJjaCBbRkY6OmFkanVzdF9zdGVwc10gcG9zdGN0c10KLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGNkICRjd2QKLSAgICAgICAgICAgIGZvcmVhY2ggc3RlcCBbbHJhbmdlICR2YXJzKHN0ZXBzKSAkaW5kZXggZW5kXSB7Ci0gICAgICAgICAgICAgICBpZiB7W2xzZWFyY2ggJHZhcnMoZnN0ZXBzKSAkc3RlcF0gIT0gLTF9IHsKLSAgICAgICAgICAgICAgICAgIGlmIHtbZmlsZSBpc2ZpbGUgJHZhcnMocGFydGl0aW9uX2RpcikvJGJsb2NrLyR2YXJzKHNjcmlwdF9kaXIpL0lOTk9WVVMvcnVuXyRzdGVwLnRjbF19IHsKLSAgICAgICAgICAgICAgICAgICAgIGZpbGUgY29weSAgLWZvcmNlICR2YXJzKHBhcnRpdGlvbl9kaXIpLyRibG9jay8kdmFycyhzY3JpcHRfZGlyKS9JTk5PVlVTL3J1bl8kc3RlcC50Y2wgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHZhcnMocGFydGl0aW9uX2Rpcl9wYXNzMikvJGJsb2NrLyR2YXJzKHNjcmlwdF9kaXIpL0lOTk9WVVMKLSAgICAgICAgICAgICAgICAgICAgIGZpbGUgZGVsZXRlICAtZm9yY2UgJHZhcnMocGFydGl0aW9uX2RpcikvJGJsb2NrLyR2YXJzKHNjcmlwdF9kaXIpL0lOTk9WVVMvcnVuXyRzdGVwLnRjbAotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotIyAgICAgICAgICAgIGlmIHskdmFycyhlbmFibGVfZmxleGlsbSl9IHsKLSMgICAgICAgICAgICAgICBmaWxlIGNvcHkgLWZvcmNlICR2YXJzKHBhcnRpdGlvbl9kaXIpLyRibG9jay9NYWtlZmlsZS5wYXNzMiAkdmFycyhwYXJ0aXRpb25fZGlyX3Bhc3MyKS8kYmxvY2suTWFrZWZpbGUKLSMgICAgICAgICAgICAgfSBlbHNlIHsKLSMgICAgICAgICAgICAgICBmaWxlIGNvcHkgLWZvcmNlICR2YXJzKHBhcnRpdGlvbl9kaXIpLyRibG9jay9NYWtlZmlsZS5wYXNzMiAkdmFycyhwYXJ0aXRpb25fZGlyX3Bhc3MyKS8kYmxvY2svTWFrZWZpbGUKLSMgICAgICAgICAgICAgfQotIyAgICAgICAgICAgIGNkICR2YXJzKHBhcnRpdGlvbl9kaXJfcGFzczIpLyRibG9jawotIyAgICAgICAgICAgIHNldCBhZGp1c3RlZCBbRkY6OmFkanVzdF9zdGVwc10KLSMgICAgICAgICAgICBGRjo6Z2VuX21ha2VmaWxlIFtscmFuZ2UgJHZhcnMoc3RlcHMpICRpbmRleCBlbmRdIGZsYXQKLSMgICAgICAgICAgICBGRjo6Z2VuX21ha2VmaWxlIFtscmFuZ2UgJGFkanVzdGVkICRpbmRleCBlbmRdIGZsYXQKLSMgICAgICAgICAgICBjZCAkY3dkCi0gICAgICAgICB9Ci0gICAgICB9Ci0gCi0gICAgICBmb3JlYWNoIHZhciBbYXJyYXkgbmFtZXMgdmFyc10gewotICAgICAgICAgdW5zZXQgdmFycygkdmFyKQotICAgICAgfQotICAgICAgZm9yZWFjaCB2YXIgW2FycmF5IG5hbWVzIHN2YXJzXSB7Ci0gICAgICAgICBzZXQgdmFycygkdmFyKSAkc3ZhcnMoJHZhcikKLSAgICAgIH0KLQotICAgICAgaWYgeyR2YXJzKGNvZGVnZW4pfSB7Ci0jICAgICAgICAgaWYgeyR2YXJzKG1ha2VmaWxlKX0gewotIyAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiXG5leGVjIC9iaW4vdG91Y2ggJGVudihWUEFUSCkvcGFydGl0aW9uXG4iCi0jICAgICAgICAgfQotICAgICAgICAgcmV0dXJuICRjb21tYW5kcwotICAgICAgfSBlbHNlIHsKLSAgICAgICAgIGV4ZWMgL2Jpbi90b3VjaCAkZW52KFZQQVRIKS9wYXJ0aXRpb24KLSAgICAgIH0KLSAgIH0KLQotICAgcHJvYyBydW5fZGVidWcge3tmb3JtYXQgMX19IHsKLQotICAgICAgZ2xvYmFsIHZhcnMKLSAgICAgIGdsb2JhbCBlcnJvcnMKLSAgICAgIGdsb2JhbCBlbnYKLQotICAgICAgc2V0IGNvbW1hbmRzICIiCi0gICAgICBhcHBlbmQgY29tbWFuZHMgIlxuZ2xvYmFsIGVudlxuIgotCi0gICAgICBhcHBlbmQgY29tbWFuZHMgImlmIHtcW2luZm8gZXhpc3RzIGVudihTVEVQKVxdfSB7XG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgIltGRl9OT1ZVUzo6bG9hZF9kZXNpZ24gXCRlbnYoU1RFUCldXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgIn1cbiIKLQotIyAgICAgIGFwcGVuZCBjb21tYW5kcyAiW0ZGOjpzb3VyY2VfcGx1ZyBhbHdheXNfc291cmNlX3RjbF1cbiIKLQotICAgICAgYXBwZW5kIGNvbW1hbmRzICJndWlfZml0XG4iCi0KLSAgICAgIGlmIHskdmFycyhjb2RlZ2VuKX0gewotICAgICAgICAgcmV0dXJuICRjb21tYW5kcwotICAgICAgfSBlbHNlIHsKLSAgICAgICAgICB1cGxldmVsICMwIGV2YWwgJGNvbW1hbmRzCi0gICAgICB9Ci0KLSAgIH0KLQotICAgcHJvYyBydW5fbGVjIHt9IHsKLQotICAgICAgZ2xvYmFsIHZhcnMKLSAgICAgIGdsb2JhbCBlcnJvcnMKLSAgICAgIGdsb2JhbCBlbnYKLQotICAgICAgc2V0IGNvbW1hbmRzICIiCi0KLSAgICAgIGFwcGVuZCBjb21tYW5kcyAidnB4bW9kZVxuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzICJzZXQgZG9maWxlIGFib3J0IGV4aXRcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyAic2V0IHVuZGVmaW5lZCBjZWxsIGJsYWNrX2JveCAtbm9hc2NlbmQgLWJvdGhcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyAidGNsbW9kZVxuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzICIvLyBzZXR1cCB2YXJpYWJsZXMgXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgImdsb2JhbCB2YXJzXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgInByb2MgUHV0cyB7YXJnc30ge1xuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzICIgICBwdXRzIFwkYXJnc1xuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzICJ9XG4iCi0KLSAgICAgIGFwcGVuZCBjb21tYW5kICIvLyBEZWZpbmUgdGhlIG5ldGxpc3QgdG8gYmUgdmVyaWZ5XG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgImlmIHtcW2luZm8gZXhpc3RzIGVudihTVEVQKVxdICYmIFxbZmlsZSBleGlzdHMgJHZhcnMoZGJzX2RpcikvTEVDL1wkZW52KFNURVApLnYuZ3pcXX0ge1xuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzICIgICBzZXQgcmV2aXNlZE5ldGxpc3QgJHZhcnMoZGJzX2RpcikvTEVDL1wkZW52KFNURVApLnYuZ3pcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyAifSBlbHNlIHtcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyAiICAgcHV0cyBcIjxGRj4gRmFpbGVkIHRvIGZpbmQgbmV0bGlzdCAgREJTL0xFQy9cJGVudihTVEVQKS52Lmd6XCJcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyAifVxuIgotCi0gICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnModGhyZWFkcyldfSB7Ci0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgInZweCBzZXQgY29tcGFyZSBvcHRpb24gLXRocmVhZHMgJHZhcnModGhyZWFkcylcbiIKLSAgICAgIH0KLQotICAgICAgYXBwZW5kIGNvbW1hbmRzICIvLyByZWFkIGxpYmVydHkgY2VsbCBkZWZpbml0aW9uc1xuIgotICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCR2YXJzKGRlZmF1bHRfc2V0dXBfdmlldyksZGVsYXlfY29ybmVyKV19IHsKLSAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkdmFycygkdmFycyhkZWZhdWx0X3NldHVwX3ZpZXcpLGRlbGF5X2Nvcm5lciksbGlicmFyeV9zZXQpXX0gewotICAgICAgICAgICAgc2V0IHNldCAkdmFycygkdmFycygkdmFycyhkZWZhdWx0X3NldHVwX3ZpZXcpLGRlbGF5X2Nvcm5lciksbGlicmFyeV9zZXQpCi0gICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgcmV0dXJuCi0gICAgICAgICB9Ci0gICAgICB9IGVsc2UgewotICAgICAgICAgICAgcmV0dXJuCi0gICAgICB9Ci0gICAgICBhcHBlbmQgY29tbWFuZHMgInZweCByZWFkIGxpYnJhcnkgLXN0YXRldGFibGUgLWJvdGggLWxpYmVydHkgXFtsaXN0ICR2YXJzKCRzZXQsdGltaW5nKVxdXG4iCi0KLSAgICAgIGFwcGVuZCBjb21tYW5kcyAiLy8gcmVhZCByZWZlcmVuY2UgbmV0bGlzdFxuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzICJ2cHggcmVhZCBkZXNpZ24gLXZlcmlsb2cgLXNlbnNpdGl2ZSAtZ29sZGVuICR2YXJzKG5ldGxpc3QpXG4iCi0KLSAgICAgIGFwcGVuZCBjb21tYW5kcyAiLy8gcmVhZCBwb3N0LWltcGxlbWVudGF0aW9uIG5ldGxpc3RcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyAidnB4IHJlYWQgZGVzaWduIC12ZXJpbG9nIC1zZW5zaXRpdmUgLXJldmlzZWQgXCRyZXZpc2VkTmV0bGlzdFxuIgotCi0gICAgICBhcHBlbmQgY29tbWFuZHMgIi8vc2V0IHRvcCBsZXZlbFxuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzICJ2cHggc2V0IHJvb3QgbW9kdWxlICR2YXJzKGRlc2lnbikgLWJvdGhcbiIKLQotICAgICAgcmVnc3ViIC1hbGwgIiMiIFtGRjo6c291cmNlX3BsdWcgcHJlX2xlY190Y2xdICIvLyIgdGVtcAotICAgICAgYXBwZW5kIGNvbW1hbmRzICR0ZW1wCi0KLSAgICAgIGFwcGVuZCBjb21tYW5kcyAidnB4bW9kZVxuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzICJyZXBvcnQgZGVzaWduIGRhdGFcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyAicmVwb3J0IGJsYWNrIGJveFxuIgotCi0gICAgICBhcHBlbmQgY29tbWFuZHMgInNldCBtYXBwaW5nIG1ldGhvZCAtbmFtZSBmaXJzdFxuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzICJzZXQgZmxhdHRlbiBtb2RlbCAtc2VxX2NvbnN0YW50IC1zZXFfY29uc3RhbnRfeF90byAwXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgInNldCBmbGF0dGVuIG1vZGVsIC1ub2RmZl90b19kbGF0X3plcm8gLW5vZGZmX3RvX2RsYXRfZmVlZGJhY2tcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyAic2V0IGZsYXR0ZW4gbW9kZWwgLWdhdGVkX2Nsb2NrXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgInNldCBzeXN0ZW0gbW9kZSBsZWNcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyAiYWRkIGNvbXBhcmUgcG9pbnQgLWFsbFxuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzICJjb21wYXJlIC1nYXRlX3RvX2dhdGVcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyAidXNhZ2VcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyAiLy8gICB2cHggcmVwb3J0IGNvbXBhcmUgZGF0YSIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyAicmVwb3J0IGNvbXBhcmUgZGF0YSAtY2xhc3Mgbm9uZXF1aXZhbGVudCAtY2xhc3MgYWJvcnQgLWNsYXNzIG5vdGNvbXBhcmVkXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgInJlcG9ydCB2ZXJpZmljYXRpb24gLXZlcmJvc2VcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyAicmVwb3J0IHN0YXRpc3RpY3NcbiIKLQotICAgICAgYXBwZW5kIGNvbW1hbmRzICJ0Y2xtb2RlXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgInNldCBwb2ludHNfY291bnQgXFtnZXRfY29tcGFyZV9wb2ludHMgLWNvdW50XF1cbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyAic2V0IGRpZmZfY291bnQgXFtnZXRfY29tcGFyZV9wb2ludHMgLWRpZmYgLWNvdW50XF1cbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyAic2V0IGFib3J0X2NvdW50IFxbZ2V0X2NvbXBhcmVfcG9pbnRzIC1hYm9ydCAtY291bnRcXVxuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzICJzZXQgdW5rbm93bl9jb3VudCBcW2dldF9jb21wYXJlX3BvaW50cyAtdW5rbm93biAtY291bnRcXVxuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzICJpZiB7XCRwb2ludHNfY291bnQgPT0gMH0ge1xuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzICIgICAgcHV0cyBcIi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVwiXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgIiAgICBwdXRzIFwiRVJST1I6IE5vIGNvbXBhcmUgcG9pbnRzIGRldGVjdGVkXCJcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyAiICAgIHB1dHMgXCItLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cIlxuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzICJ9XG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgImlmIHtcJGRpZmZfY291bnQgPiAwfSB7XG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgIiAgICBwdXRzIFwiLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXCJcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyAiICAgIHB1dHMgXCJFUlJPUjogRGlmZmVyZW50IEtleSBQb2ludHMgZGV0ZWN0ZWRcIlxuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzICIgICAgcHV0cyBcIi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVwiXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgIn1cbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyAiaWYge1wkYWJvcnRfY291bnQgPiAwfSB7XG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgIiAgICBwdXRzIFwiLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cIlxuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzICIgICAgcHV0cyBcIkVSUk9SOiBBYm9ydCBQb2ludHMgZGV0ZWN0ZWQgXCJcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyAiICAgIHB1dHMgXCItLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVwiXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgIn1cbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyAiaWYge1wkdW5rbm93bl9jb3VudCA+IDB9IHtcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyAiICAgIHB1dHMgXCItLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXCJcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyAiICAgIHB1dHMgXCJFUlJPUjogVW5rbm93biBLZXkgUG9pbnRzIGRldGVjdGVkXCJcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyAiICAgIHB1dHMgXCItLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXCJcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyAifVxuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzICJwdXRzIFwiTm8gb2YgY29tcGFyZSBwb2ludHMgPSBcJHBvaW50c19jb3VudFwiXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgInB1dHMgXCJObyBvZiBkaWZmIHBvaW50cyAgICA9IFwkZGlmZl9jb3VudFwiXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgInB1dHMgXCJObyBvZiBhYm9ydCBwb2ludHMgICA9IFwkYWJvcnRfY291bnRcIlxuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzICJwdXRzIFwiTm8gb2YgdW5rbm93biBwb2ludHMgPSBcJHVua25vd25fY291bnRcIlxuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzICJleGl0IDBcbiIKLQotICAgICAgaWYgeyR2YXJzKGNvZGVnZW4pfSB7Ci0gICAgICAgICByZXR1cm4gJGNvbW1hbmRzCi0gICAgICB9IGVsc2UgewotICAgICAgICAgIHVwbGV2ZWwgIzAgZXZhbCAkY29tbWFuZHMKLSAgICAgIH0KLQotICAgfQotCi0gICBwcm9jIGR1bXBfY29uZmlnIHt9IHsKLQotICAgICAgZ2xvYmFsIHZhcnMKLSAgICAgIGdsb2JhbCB1ZG0KLSAgICAgIGdsb2JhbCByZGFfSW5wdXQKLSAgICAgIGdsb2JhbCByZGFfZGVmYXVsdHMKLQotIyAgICAgIHNldCBjb21tYW5kcyAiIgotICAgICAgZmlsZSBta2RpciAkdmFycyhzY3JpcHRfZGlyKQotICAgICAgaWYge1tpbmZvIGNvbW1hbmQgRkZGOjpnZXRfdG9vbF0gbmUgIiIgJiYgW0ZGRjo6Z2V0X3Rvb2xdIGVxICJyYyJ9IHsKLSAgICAgICAgdGNsX3NvdXJjZSAkdmFycyhzY3JpcHRfcGF0aCkvRVRDL0lOTk9WVVMvdWRtLnRjbAotICAgICAgfSBlbHNlIHsgCi0gICAgICAgIHNvdXJjZSAkdmFycyhzY3JpcHRfcGF0aCkvRVRDL0lOTk9WVVMvdWRtLnRjbAotICAgICAgfQotICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGNwZl9maWxlKV19IHsKLSAgICAgICAgIGlmIHskdmFycyhjcGZfdGltaW5nKX0gewotICAgICAgICAgICAgdW5zZXQgaW5pdChtbW1jX2ZpbGUpCi0gICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgdW5zZXQgaW5pdChjcGZfZmlsZSkKLSAgICAgICAgIH0KLSAgICAgIH0KLSAgICAgIGlmIHtbbGluZGV4IFtzcGxpdCAkdmFycyh2ZXJzaW9uKSAiLiJdICAwXSA+IDEwfSB7Ci0gICAgICAgICBpZiB7ISR2YXJzKGdlbmVyYXRlX2Zsb3dfc3RlcHMpIHx8IChbbGluZGV4IFtzcGxpdCAkdmFycyh2ZXJzaW9uKSAiLiJdICAwXSA8IDE1KX0gewotICAgICAgICAgICAgc2V0IG9wIFtvcGVuICR2YXJzKHNjcmlwdF9kaXIpL2luaXQudGNsIHddCi0gICAgICAgICAgICAjIEJDTDogVHJ5aW5nIHRvIGZpeCBlbWJlZGRlZCBwYXRocy4uLgotICAgICAgICAgICAgc2V0IHJlbGF0aXZpemVNZXNnTG9nICIiCi0gICAgICAgICAgICBzZXQgcmVsYXRpdml6ZU1lc2dMb2cgIiRyZWxhdGl2aXplTWVzZ0xvZyBbRkY6OnJlbW92ZV9vdXRlcl9icmFjZXMgW0ZGOjpyZWxhdGl2aXplRmlsZU9yRGlyIC1hcnIgaW5pdCAtdmFyZGlyIGZmX2V4ZV9kaXIgLXJlbGF0aXZlUGF0aHNPa11dIgotCi0gICAgICAgICAgICAjZm9yZWFjaCB2YXIgW2FycmF5IG5hbWVzIGluaXRdIHsKLSAgICAgICAgICAgICMgICBwdXRzICRvcCAic2V0IGluaXRfJHZhciBcIiRpbml0KCR2YXIpXCIiCi0gICAgICAgICAgICAjfQotICAgICAgICAgICAgZm9yZWFjaCB2YXIgW2FycmF5IG5hbWVzIG5pbml0XSB7Ci0gICAgICAgICAgICAgICBpZiB7JHZhcnMobmV0bGlzdF90eXBlKSA9PSAidmVyaWxvZyJ9IHsKLSAgICAgICAgICAgICAgICAgIGlmIHskdmFyID09ICJvYV9kZXNpZ25fbGliIn0geyBjb250aW51ZSB9Ci0gICAgICAgICAgICAgICAgICBpZiB7JHZhciA9PSAib2FfZGVzaWduX2NlbGwifSB7IGNvbnRpbnVlIH0KLSAgICAgICAgICAgICAgICAgIGlmIHskdmFyID09ICJvYV9kZXNpZ25fdmlldyJ9IHsgY29udGludWUgfQotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgcHV0cyAkb3AgInNldF9kYiBpbml0XyR2YXIgXCIkbmluaXQoJHZhcilcIiIKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGNsb3NlICRvcAotICAgICAgICAgfQotICAgICAgfSBlbHNlIHsKLSAgICAgICAgIHNldCBvcCBbb3BlbiAkdmFycyhzY3JpcHRfZGlyKS9ydW4uY29uZiB3XQotICAgICAgICAgI0JDTDogQWRkZWQgLmZmLnRjbCBzb3VyY2luZyBpbiBydW4uY29uZiBpbiBvcmRlciB0byBwdWxsIGluIGNvZGVnZW4gdmFyaWFibGVzCi0gICAgICAgICBwdXRzICRvcCAiIyBTZXQgdXAgY29kZWdlbiB2YXJpYWJsZXMgKHBvc3NpYmx5KSBuZWVkZWQgdG8gcmVzb2x2ZSBzb21lIGNvbmYgdmFyaWFibGVzIgotICAgICAgICAgI3B1dHMgJG9wICJpZiB7XFtmaWxlIGV4aXN0cyAuZmYudGNsXF19IHsiCi0gICAgICAgICAjcHV0cyAkb3AgIiAgc291cmNlIC5mZi50Y2wiCi0gICAgICAgICAjcHV0cyAkb3AgIn0iCi0gICAgICAgICAjQkNMOiBPbmx5IGVuY2xvc2UgaW4gY3VybGllcyBpZiBzdWJzdCBpcyBub3QgcGFydCBvZiB0aGUgbmV0bGlzdCBuYW1lCi0gICAgICAgICBmb3JlYWNoIHZhciBbYXJyYXkgbmFtZXMgcmRhX0lucHV0XSB7Ci0gICAgICAgICAgICMgQkNMOiBvbmx5IHVzZSBjdXJsaWVzIGlmIHRoZSB2YXJpYWJsZSBkb2Vzbid0IGNvbnRhaW4gc3Vic3QgKG90aGVyd2lzZSBzdWJzdCB3aWxsIG5vdCBiZSBwZXJmb3JtZWQpCi0gICAgICAgICAgIGlmIHtbcmVnZXhwIHtzdWJzdH0gJHJkYV9JbnB1dCgkdmFyKV19IHsKLSAgICAgICAgICAgICBwdXRzICRvcCAic2V0IHJkYV9JbnB1dCgkdmFyKSBcIiRyZGFfSW5wdXQoJHZhcilcIiIKLSAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICBwdXRzICRvcCAic2V0IHJkYV9JbnB1dCgkdmFyKSBceyRyZGFfSW5wdXQoJHZhcilcfSIKLSAgICAgICAgICAgfQotICAgICAgICAgfQotIyAgICAgICAgIGlmIHskdmFycyhmbGF0KSAhPSAiZnVsbCJ9IHsKLSMgICAgICAgICAgICBwdXRzICRvcCAic2V0IHJkYV9JbnB1dCh1aV92aWV3X2RlZmluaXRpb25fZmlsZSkgXCIkdmFycyhzY3JpcHRfZGlyKS92aWV3X2RlZmluaXRpb24udGNsXCIiCi0jICAgICAgICAgfQotICAgICAgfQotICAgfQotCi0gICBwcm9jIGdldF9yZXF1aXJlZF9wcm9jcyB7ZmlsZX0gewotICAgICAgIwotICAgICAgIyBHaXZlbiBhIGxpc3Qgb2YgcmVxdWlyZWQgcHJvY2VkdXJlcywgcmV0dXJuIHRoZSBsaW5lcyB0aGF0IHJlcHJlc2VudAotICAgICAgIyB0aG9zZSBwcm9jZWR1cmVzIGZyb20gdGhlIHV0aWxzLnRjbCBmaWxlCi0gICAgICAjCi0KLSAgICAgIGdsb2JhbCB2YXJzCi0gICAgICBnbG9iYWwgZXJyb3JzCi0KLSAgICAgICMKLSAgICAgICMgUmVhZCB0aGUgZmlsZSBhbmQgZ2F0aGVyIGFsbCBvZiB0aGUgY29udGVudHMKLSAgICAgICMKLQotICAgICAgc2V0IGFsbF9saW5lcyAiIgotICAgICAgc2V0IGxlbmd0aCAwCi0gICAgICBzZXQgaXAgW29wZW4gJGZpbGVdCi0gICAgICB3aGlsZSB7W2dldHMgJGlwIGxpbmVdPj0wfSB7Ci0gICAgICAgICBzZXQgdXRpbHNfbGluZXMoJGxlbmd0aCkgJGxpbmUKLSAgICAgICAgIGluY3IgbGVuZ3RoCi0gICAgICB9Ci0gICAgICBjbG9zZSAkaXAKLQotICAgICAgIwotICAgICAgIyBJdGVyYXRlIGFjcm9zcyBlYWNoIGxpbmUgYW5kIHB1bGwgb3V0IHJlbGV2YW50IHByb2NlZHVyZXMKLSAgICAgICMKLQotICAgICAgc2V0IGxpbmVzICIiCi0gICAgICBzZXQgaSAwCi0gICAgICB3aGlsZSB7JGkgPCAkbGVuZ3RofSB7Ci0gICAgICAgICBzZXQgbGluZSBbcmVnc3ViICJwdXRzIiAkdXRpbHNfbGluZXMoJGkpICJwdXRzIl0KLSAgICAgICAgIGZvcmVhY2ggcHJvYyAkdmFycyhyZXF1aXJlZF9wcm9jcykgewotICAgICAgICAgICAgaWYge1tyZWdleHAgInByb2MgJHByb2MiICRsaW5lXSA+IDB9IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBsaW5lcyAiICRsaW5lXG4iCi0gICAgICAgICAgICAgICBpbmNyIGkKLSAgICAgICAgICAgICAgIHdoaWxlIHskaSA8ICRsZW5ndGh9IHsKLSAgICAgICAgICAgICAgICAgIHNldCBsaW5lICR1dGlsc19saW5lcygkaSkKLSAgICAgICAgICAgICAgICAgIGlmIHtbcmVnZXhwICJwcm9jICIgJGxpbmVdID4gMH0gewotICAgICAgICAgICAgICAgICAgICAgaW5jciBpIC0xCi0gICAgICAgICAgICAgICAgICAgICBicmVhawotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgaWYgeyFbcmVnZXhwICJeIyIgW3N0cmluZyB0cmltbGVmdCAkbGluZV0gXSAmJiAoJGkgIT0gW2V4cHIgJGxlbmd0aC0xXSl9IHsKLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBsaW5lcyAiJGxpbmVcbiIKLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIGluY3IgaQotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgYnJlYWsKLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0KLSAgICAgICAgIGluY3IgaQotICAgICAgfQotCi0gICAgICBzZXQgbGluZXMgW3N0cmluZyB0cmltcmlnaHQgJGxpbmVzXQotICAgICAgcmV0dXJuICIkbGluZXNcbiIKLSAgIH0KLQotICAgcHJvYyBub3JtYWxpemVfZmlsZXMge30gewotCi0gICAgICBnbG9iYWwgdmFycwotICAgICAgZ2xvYmFsIGVycm9ycwotCi0gICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMobm9ybWFsaXplX2ZpbGVzKV0gJiYgISR2YXJzKG5vcm1hbGl6ZV9maWxlcyl9IHsKLSAgICAgICAgIHJldHVybgotICAgICAgfQotCi0gICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnModmlld19kZWZpbml0aW9uX3RjbCldfSB7Ci0gICAgICAgICBzZXQgbW1tY19maWxlIFtmaWxlIG5vcm1hbGl6ZSAkdmFycyh2aWV3X2RlZmluaXRpb25fdGNsKV0KLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgICBzZXQgbW1tY19maWxlIFtmaWxlIG5vcm1hbGl6ZSAkdmFycyhzY3JpcHRfZGlyKS92aWV3X2RlZmluaXRpb24udGNsXQotICAgICAgfQotICAgICAgc2V0IHZhcnMobW1tY19maWxlKSAkbW1tY19maWxlCi0KLSAgICAgIGZvcmVhY2ggZmlsZV92YXIgW2xpc3QgY3BmX2ZpbGUgZGVmX2ZpbGVzIG5ldGxpc3QgY3RzX3NwZWMgbGVmX2ZpbGVzIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICBnZHNfZmlsZXMgYWN0aXZpdHlfZmlsZSBpbG1fbm9uX3NkY19maWxlIF0gewotICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCRmaWxlX3ZhcildfSB7Ci0gICAgICAgICAgICBzZXQgdGVtcCBbbGlzdF0KLSAgICAgICAgICAgIGZvcmVhY2ggZmlsZSAkdmFycygkZmlsZV92YXIpIHsgIAotICAgICAgICAgICAgICAgbGFwcGVuZCB0ZW1wIFtmaWxlIG5vcm1hbGl6ZSAkZmlsZV0KLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHNldCB2YXJzKCRmaWxlX3ZhcikgJHRlbXAKLSAgICAgICAgIH0KLSAgICAgIH0KLSAgIH0KLQotICAgcHJvYyBub3JtYWxpemVfY29uc3RyYWludHMge30gewotCi0gICAgICBnbG9iYWwgdmFycwotCi0gICAgICBzZXQgY3dkIFtwd2RdCi0gICAgICBjZCAkdmFycyhjd2QpCi0KLSAgICAgIGZvcmVhY2ggbW9kZSAkdmFycyhjb25zdHJhaW50X21vZGVzKSB7Ci0gICAgICAgICBmb3JlYWNoIHZhciAicHJlX2N0c19zZGMgaW5jcl9jdHNfc2RjIHBvc3RfY3RzX3NkYyBwcmVfY3RzX2lsbV9zZGMiIHsKLSAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkbW9kZSwkdmFyKV19IHsKLSAgICAgICAgICAgICAgICAgIHNldCB0ZW1wIFtsaXN0XQotICAgICAgICAgICAgICAgZm9yZWFjaCBmaWxlICR2YXJzKCRtb2RlLCR2YXIpIHsKLSAgICAgICAgICAgICAgICAgIGxhcHBlbmQgdGVtcCBbZmlsZSBub3JtYWxpemUgJGZpbGVdCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICBzZXQgdmFycygkbW9kZSwkdmFyKSAkdGVtcAotICAgICAgICAgICAgfQotICAgICAgICAgfQotICAgICAgfQotICAgICAgY2QgJGN3ZAotICAgfQotCi0gICBwcm9jIGRlbm9ybWFsaXplX2ZpbGVzIHt9IHsKLSAgIAotICAgICAgZ2xvYmFsIHZhcnMKLSAgICAgIGdsb2JhbCB0dmFycwotICAgCi0gICAgICBmb3JlYWNoIHZhciBbYXJyYXkgbmFtZXMgdmFyc10gewotICAgICAgICAgaWYgeygkdmFyICE9ICJzZXR1cF9wYXRoIikgJiYgKCR2YXIgIT0gInNjcmlwdF9kaXIiKSAmJiAoJHZhciAhPSAic2NyaXB0X3BhdGgiKSAmJiAoJHZhciA9PSAiZXhlY3V0ZV9zdHJpbmciKX0gewotICAgICAgICAgICAgc2V0IHR2YXJzKCR2YXIpICR2YXJzKCR2YXIpCi0gICAgICAgICB9Ci0gICAgICB9Ci0KLSMgICAgICBzZXQgb3AgW29wZW4gLnNldHVwLmZmLnRjbCB3XQotICAgICAgY2F0Y2gge3Vuc2V0IHBhdGhfYXJyYXl9Ci0gICAgICBzZXQgcGF0aF9saXN0IFtsaXN0XQotICAgICAgc2V0IHBhdGhfdmFycyBbbGlzdF0KLSAgICAgIGZvcmVhY2ggdmFyIFthcnJheSBuYW1lcyB0dmFyc10gewotICAgICAgICAgaWYgW2ZpbGUgaXNkaXJlY3RvcnkgJHR2YXJzKCR2YXIpXSB7Ci0gICAgICAgICAgICBzZXQgcGF0aF9hcnJheSgkdHZhcnMoJHZhcikpICR2YXIKLSAgICAgICAgICAgIGxhcHBlbmQgcGF0aF92YXJzICR2YXIKLSAgICAgICAgICAgIGxhcHBlbmQgcGF0aF9saXN0ICR0dmFycygkdmFyKSAgCi0gICAgICAgICB9Ci0gICAgICB9Ci0gICAgICAKLSAgICAgIHNldCBzb3J0ZWRfcGF0aF9saXN0IFtsc29ydCAtZGVjcmVhc2luZyAkcGF0aF9saXN0XQotIyAgICAgIHB1dHMgIi0+IEZvdW5kIFtsbGVuZ3RoICRzb3J0ZWRfcGF0aF9saXN0XSIKLSAgICAgIGZvcmVhY2ggcGF0aCAkc29ydGVkX3BhdGhfbGlzdCB7Ci0jICAgICAgICAgcHV0cyAiJHBhdGggLT4gJHBhdGhfYXJyYXkoJHBhdGgpIChbc3RyaW5nIGxlbmd0aCAkcGF0aF0pIgotIyAgICAgICAgIHB1dHMgJG9wICJzZXQgdmFycygkcGF0aF9hcnJheSgkcGF0aCkpICRwYXRoIgotICAgICAgfQotICAgICAgCi0gICAgICBmb3JlYWNoIHZhciBbYXJyYXkgbmFtZXMgdHZhcnNdIHsKLSAgICAgICAgIHNldCBmb3VuZCAwCi0gICAgICAgICBmb3JlYWNoIHBhdGggJHNvcnRlZF9wYXRoX2xpc3QgewotICAgICAgICAgICAgIGlmIHsoJHZhciA9PSAkcGF0aF9hcnJheSgkcGF0aCkpIHx8IChbc3RyaW5nIGZpcnN0ICJcWyIgICR2YXJdICE9IC0xKX0gewotICAgICAgICAgICAgICAgIGJyZWFrCi0gICAgICAgICAgICAgfQotICAgICAgIyAgICAgIHB1dHMgJG9wICJbZm9ybWF0ICJyZWdzdWIgLWFsbCBcIiVzXCIgXCIlc1wiIFxcJCVzIiAkcGF0aCBbam9pbiAkdHZhcnMoJHZhcildICRwYXRoX2FycmF5KCRwYXRoKSB0ZW1wXSIKLSAgICAgICAgICAgIGlmIHtbY2F0Y2gge3NldCBjb21tYW5kIFtmb3JtYXQgInJlZ3N1YiAtYWxsIFwiJXNcIiBcIiVzXCIgXFxcJHZhcnMoJXMpIHRlbXAiICRwYXRoIFtqb2luICR0dmFycygkdmFyKV0gJHBhdGhfYXJyYXkoJHBhdGgpXX1dfSB7Ci0gICAgICAgICAgICAgICBicmVhawotICAgICAgICAgICAgfQotICAgICAgICAgICAgc2V0IGZvbyBbZXZhbCAkY29tbWFuZF0KLSAgICAgICAgICAgIGlmIHskZm9vID4gMH0gewotIyAgICAgICAgICAgICAgIHB1dHMgJG9wICJzZXQgdmFycygkdmFyKSBcIltqb2luICR0ZW1wXVwiIgotICAgICAgICAgICAgICAgaWYge1tsbGVuZ3RoICR0ZW1wXSA+IDF9IHsKLSAgICAgICAgICAgICAgICAgIHNldCB2YXJzKCR2YXIpIFtqb2luICR0ZW1wXQotICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgIHNldCB2YXJzKCR2YXIpICR0ZW1wCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICBzZXQgZm91bmQgMQotICAgICAgICAgICAgfQotICAgICAgICAgfQotIyAgICAgICAgIGlmIHshJGZvdW5kfSB7Ci0jICAgICAgICAgICAgcHV0cyAkb3AgInNldCB2YXJzKCR2YXIpIFwiW2pvaW4gJHZhcnMoJHZhcildXCIiCi0jICAgICAgICAgfQotICAgICAgfQotIyAgICAgIGZvcmVhY2ggcGF0aCAkc29ydGVkX3BhdGhfbGlzdCB7Ci0jICAgICAgICAgc2V0IHZhcnMoJHBhdGhfYXJyYXkoJHBhdGgpKSAkcGF0aAotIyAgICAgIH0KLSMgICAgICBjbG9zZSAkb3AKLSMgICAgICBzb3VyY2UgLnNldHVwLmZmLnRjbCAKLSAgIH0KLQotCi0gICBwcm9jIGdlbl9jaGVjayB7fSB7Ci0KLSAgICAgIGdsb2JhbCB2YXJzCi0gICAgICBnbG9iYWwgZXJyb3JzCi0KLSAgICAgIHNldCBvcCBbb3BlbiAkdmFycyhzY3JpcHRfZGlyKS9jaGVja19xb3IudGNsIHddCi0KLSAgICAgIHB1dHMgJG9wICIjIVtsaW5kZXggJHZhcnMoZXhlY3V0ZV9zdHJpbmcpIDBdIgotICAgICAgCi0gICAgICBwdXRzICRvcCAiaWYgeyFcW2xsZW5ndGggXCRhcmd2XF19IHsiCi0gICAgICBwdXRzICRvcCAiICAgcHV0cyBcIjxGRj4gRVJST1I6IE1JU1NJTkcgUU9SIFJFU1VMVCBGSUxFIE5BTUVcIiIKLSAgICAgIHB1dHMgJG9wICIgICBleGl0IC0xIgotICAgICAgcHV0cyAkb3AgIn0iCi0gICAgICAKLSAgICAgIHB1dHMgJG9wICJmb3JlYWNoIG5hbWUgXCRhcmd2IHsiCi0gICAgICBwdXRzICRvcCAiICAgaWYgeyFcW2ZpbGUgZXhpc3RzIFwkbmFtZVxdfSB7IgotICAgICAgcHV0cyAkb3AgIiAgICAgIHB1dHMgXCI8RkY+IEVSUk9SOiBRT1IgUkVTVUxUIEZJTEUgTUlTU0lORyAoXCRuYW1lKVwiIgotICAgICAgcHV0cyAkb3AgIiAgICAgIGV4aXQgLTEiCi0gICAgICBwdXRzICRvcCAiICAgfSIKLSAgICAgIAotICAgICAgcHV0cyAkb3AgIiAgIGZpbGUgc3RhdCBcJG5hbWUgcW9yX3N0YXQiCi0gICAgICBwdXRzICRvcCAiICAgaWYgeyFcJHFvcl9zdGF0KHNpemUpfSB7IgotICAgICAgcHV0cyAkb3AgIiAgICAgIGNvbnRpbnVlIgotICAgICAgcHV0cyAkb3AgIiAgIH0iCi0gICAgICBwdXRzICRvcCAiICAgc2V0IHFvcl9maWxlIFxbb3BlbiBcJG5hbWUgclxdIgotICAgICAgcHV0cyAkb3AgIiAgIGdldHMgXCRxb3JfZmlsZSBxb3JfcmVzdWx0IgotICAgICAgcHV0cyAkb3AgIiAgIGlmIHtcW2V4cHIgXCRxb3JfcmVzdWx0XF19IHsiCi0gICAgICBwdXRzICRvcCAiICAgICAgZXhpdCAtMSIKLSAgICAgIHB1dHMgJG9wICIgICB9IgotICAgICAgcHV0cyAkb3AgIn0iCi0gICAgICAKLSAgICAgIHB1dHMgJG9wICJleGl0IDAiCi0KLSAgICAgIGNsb3NlICRvcAotCi0gICAgICBleGVjIGNobW9kICt4ICAkdmFycyhzY3JpcHRfZGlyKS9jaGVja19xb3IudGNsCi0gICB9Ci0KLSAgIHByb2Mgc291cmNlX2NvbmZpZ19maWxlcyB7fSB7Ci0KLSAgICAgIGdsb2JhbCB2YXJzCi0gICAgICBnbG9iYWwgZW52Ci0gICAgICBnbG9iYWwgdXNlcl92YXJzCi0gICAgICBnbG9iYWwgZGVzYwotICAgICAgZ2xvYmFsIGVycm9ycwotCi0gICAgICBwdXRzICI8RkY+IExPQURJTkcgQ09ORklHVVJBVElPTiBGSUxFUzoiCi0gICAgICBzZXQgdmFycyhjb25maWdfZmlsZXMpIFtsaXN0XQotICAgICAgZm9yZWFjaCBmaWxlICJzZXR1cC50Y2wgaW5ub3Z1c19jb25maWcudGNsIGxwX2NvbmZpZy50Y2wgZ2VudXNfY29uZmlnLnRjbCIgewotICAgICAgICAgc2V0IHRlbXAgW3JlZ3N1YiAiXFwuIiAkZmlsZSAiXyJdCi0gICAgICAgICBzZXQgdmFycygkdGVtcCkgW2xpc3RdIAotICAgICAgICAgaWYge1tmaWxlIGV4aXN0cyAkdmFycyhzZXR1cF9wYXRoKS8kZmlsZV19IHsKLSAgICAgICAgICAgIEZGOjpzb3VyY2VfZmlsZSAkdmFycyhzZXR1cF9wYXRoKS8kZmlsZQotICAgICAgICAgICAgbGFwcGVuZCB2YXJzKCR0ZW1wKSAkdmFycyhzZXR1cF9wYXRoKS8kZmlsZQotICAgICAgICAgICAgbGFwcGVuZCB2YXJzKGNvbmZpZ19maWxlcykgJHZhcnMoc2V0dXBfcGF0aCkvJGZpbGUKLSAgICAgICAgIH0KLSAgICAgICAgIGlmIHsoJHZhcnMoc2V0dXBfcGF0aCkgIT0gIi4iKSAmJiBbZmlsZSBleGlzdHMgJGZpbGVdfSB7Ci0gICAgICAgICAgICBGRjo6c291cmNlX2ZpbGUgJGZpbGUKLSAgICAgICAgICAgIGxhcHBlbmQgdmFycygkdGVtcCkgJGZpbGUKLSAgICAgICAgICAgIGxhcHBlbmQgdmFycyhjb25maWdfZmlsZXMpICRmaWxlCi0gICAgICAgICB9Ci0gICAgICAgICBpZiB7JHZhcnMoJHRlbXApICE9ICIifSB7Ci0gICAgICAgICAgICBwdXRzICI8RkY+ICAgICR0ZW1wIC0+ICR2YXJzKCR0ZW1wKSIKLSAgICAgICAgIH0KLSAgICAgIH0KLQotICAgICAgZm9yZWFjaCB2YXIgW2FycmF5IG5hbWVzIHZhcnNdIHsKLSAgICAgICAgIHNldCB1c2VyX3ZhcnMoJHZhcikgJHZhcnMoJHZhcikKLSMgICAgICAgICBwdXRzICR2YXIKLSAgICAgIH0KLQotICAgICAgaWYge1tGRjo6aXNfbHBfZmxvd119IHsKLSAgICAgICAgIHNldCB2YXJzKHJlcXVpcmVkX3Byb2NzKSBcCi0gICAgICAgICAgICAic291cmNlX2ZpbGUgc3lzdGVtX2luZm8gZ2V0X2Nsb2NrX3BvcnRzIGdldF9wb3dlcl9kb21haW5zIG1vZGlmeV9wb3dlcl9kb21haW5zIGFkZF9wb3dlcl9zd2l0Y2hlcyBcCi0gICAgICAgICAgICAgcm91dGVfc2Vjb25kYXJ5X3BnX25ldHMgaW5zZXJ0X3dlbGx0YXBzX2VuZGNhcHMgcmVwb3J0X3RpbWUgYnVmZmVyX2Fsd2F5c19vbl9uZXRzIFwKLSAgICAgICAgICAgICBzYXZlX3Jlc3VsdHMgbG9hZF9hcHBsZXQgZ2V0X3Rvb2wgbG9hZF9wYXRoX2dyb3VwcyIKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgICBzZXQgdmFycyhyZXF1aXJlZF9wcm9jcykgXAotICAgICAgICAgICAgInNvdXJjZV9maWxlIHN5c3RlbV9pbmZvIGdldF9jbG9ja19wb3J0cyByZXBvcnRfdGltZSBpbnNlcnRfd2VsbHRhcHNfZW5kY2FwcyBcCi0gICAgICAgICAgICAgc2F2ZV9yZXN1bHRzIGxvYWRfYXBwbGV0IGdldF90b29sIGxvYWRfcGF0aF9ncm91cHMgIgotICAgICAgfQotICAgfQotCi0gICBwcm9jIGV4ZWN1dGVfZmxvdyB7c3RlcCB7Zm9ybWF0IDF9IHthYm9ydCAiIn19IHsKLQotICAgICAgIwotICAgICAgIyBUaGlzIGlzIHRoZSBlbnRyeSBwb2ludCwgcmVzcG9uc2libGUgZm9yIGNhbGxpbmcgZnVuY3Rpb25zIGFuZAotICAgICAgIyBhZ2dyZWdhdGluZyByZXN1bHRzIGZvciBlYWNoIHN0ZXAgaW4gdGhlIGZsb3cKLSAgICAgICMKLSAgICAgIGdsb2JhbCB2YXJzCi0gICAgICBnbG9iYWwgZGFyZ3MKLSAgICAgIGdsb2JhbCBmYXJncwotICAgICAgZ2xvYmFsIHN2YXJzCi0gICAgICBnbG9iYWwgZW52Ci0gICAgICBnbG9iYWwgZXJyb3JzCi0KLSAgICAgIGlmIHshW2luZm8gZXhpc3RzIHZhcnMoc291cmNlZCldfSB7IHNldCB2YXJzKHNvdXJjZWQpIDAgfQotIyAgICAgIGlmIHshW2luZm8gZXhpc3RzIHZhcnMoc2luZ2xlKV19IHsgc2V0IHZhcnMoc2luZ2xlKSAwIH0KLSAgICAgIGlmIHshW2luZm8gZXhpc3RzIHZhcnMoY2F0Y2hfZXJyb3JzKV19IHsgc2V0IHZhcnMoY2F0Y2hfZXJyb3JzKSAwIH0KLSAgICAgIGlmIHshW2luZm8gZXhpc3RzIHZhcnMoc3RvcF9zdGVwKV19IHsgc2V0IHZhcnMoc3RvcF9zdGVwKSAic2lnbm9mZiIgfQotICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycyhpbml0aWFsaXplZCldfSB7IHNldCB2YXJzKGluaXRpYWxpemVkKSAwIH0KLSAgICAgIGlmIHshW2luZm8gZXhpc3RzIHZhcnMobG9hZGVkKV19IHsgc2V0IHZhcnMobG9hZGVkKSAwIH0KLSAgICAgIGlmIHshW2luZm8gZXhpc3RzIHZhcnMoYnN0ZXBzKV19IHsgc2V0IHZhcnMoYnN0ZXBzKSBbbGlzdF0gfQotICAgICAgaWYgeyFbaW5mbyBleGlzdHMgZW52KFZQQVRIKV19IHsgc2V0IGVudihWUEFUSCkgbWFrZSB9Ci0KLSAgICAgICMKLSAgICAgICMgSWYgbm8gc3RlcHMgYXJlIGRlZmluZWQsIHNldCB0aGUgc3RlcHMgdG8gZXhlY3V0ZSBiYXNlZCB1cG9uIHRoZQotICAgICAgIyBtb2RlIHRoYXQgdGhlIHN5c3RlbSBpcyBydW5uaW5nIGluLiAgV2UgbmVlZCB0byBkbyB0aGlzIGJlY2F1c2UgdGhlCi0gICAgICAjIGhpZXJhcmNoaWNhbCBmbG93IHdpbGwgdW5zZXQgdGhlIHZhcnMoKSBhcnJheSBiZWZvcmUgcmVjdXJzaXZlbHkKLSAgICAgICMgY2FsbGluZyB0aGlzIHJvdXRpbmUuCi0gICAgICAjCi0KLSAgICAgIGlmIHshW2luZm8gZXhpc3RzIHZhcnMoc3RlcHMpXX0gewotICAgICAgICAgIyBCQ0w6IE1vdmVkIHRoZSBmb2xsb3dpbmcgaWYgLyBlbHNlIHVwIChpdCBtdXN0IGFsd2F5cyBleGVjdXRlKQotICAgICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycyhtb2RlKV19IHsgCi0gICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIGZhcmdzKG1vZGUpXX0gewotICAgICAgICAgICAgICAgc2V0IHZhcnMobW9kZSkgJGZhcmdzKG1vZGUpCi0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgc2V0IHZhcnMobW9kZSkgJGRhcmdzKG1vZGUpCi0gICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0jICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGhpZXIpXSAmJiAhJHZhcnMoaGllcil9IHsKLSMgICAgICAgICAgICBGRjo6c2V0X3N0ZXBzICR2YXJzKG1vZGUpICRmb3JtYXQKLSMgICAgICAgICAgICB1bnNldCB2YXJzKG1vZGUpCi0jICAgICAgICAgfSBlbHNlIHsKLSMgICAgICAgICAgICBGRjo6c2V0X3N0ZXBzICR2YXJzKG1vZGUpICRmb3JtYXQKLSMgICAgICAgICB9Ci0gICAgICB9Ci0KLSAgICAgICMKLSAgICAgICMgU2V0IHRoZSBwcm9jZWR1cmVzIHRoYXQgd2Ugd2lsbCBuZWVkIHRvIGluY2x1ZGUgd2l0aGluIGVhY2ggZmlsZSB0aGF0Ci0gICAgICAjIHdlIGNyZWF0ZSB0byBydW4gYSBzdGVwLgotICAgICAgIwotCi0jICAgICAgc2V0IHZhcnMocmVxdWlyZWRfcHJvY3MpIFwKLSMgICAgICAgICAic291cmNlX3BsdWcgZ2V0X2Nsb2NrX3BvcnRzIGdldF9wb3dlcl9kb21haW5zIHJlcG9ydF90aW1lIgotCi0gICAgICAjCi0gICAgICAjIE1ha2Ugc3VyZSB0aGF0IHRoZSB2YXJpYWJsZXMgYXJlIGFjdHVhbGx5IHNvdXJjZWQgZnJvbSB0aGUKLSAgICAgICMgY29uZmlndXJhdGlvbiBmaWxlcwotICAgICAgIwotCi0gICAgICBpZiB7ISR2YXJzKHNvdXJjZWQpICYmICgkc3RlcCAhPSAic291cmNlIil9IHsKLSAgICAgICAgIGV4ZWN1dGVfZmxvdyAic291cmNlIiAkZm9ybWF0ICRhYm9ydAotICAgICAgfQotCi0gICAgICBpZiB7JHZhcnMoc291cmNlZCl9IHsgCi0gICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoaGllcildICYmICEkdmFycyhoaWVyKX0gewotICAgICAgICAgICAgRkY6OnNldF9zdGVwcyAkdmFycyhtb2RlKSAkZm9ybWF0Ci0gICAgICAgICAgICB1bnNldCB2YXJzKG1vZGUpCi0gICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgRkY6OnNldF9zdGVwcyAkdmFycyhtb2RlKSAkZm9ybWF0Ci0gICAgICAgICB9Ci0gICAgICB9Ci0gICAgICAjCi0gICAgICAjIEV4ZWN1dGUgdGhlIGFwcHJvcHJpYXRlIHN0ZXAgcGVyIHRoZSBjb21tYW5kCi0gICAgICAjCi0KLSAgICAgIHNldCBhY3Rpb24gIiIKLSAgICAgIHN3aXRjaCAtLSAkc3RlcCB7Ci0gICAgICAgICAic291cmNlIiB7Ci0gICAgICAgICAgICBpZiB7ISR2YXJzKHNvdXJjZWQpfSB7Ci0gICAgICAgICAgICAgICBGRl9OT1ZVUzo6c291cmNlX2NvbmZpZ19maWxlcwotICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyBmYXJncyh2ZXJzaW9uKV19IHsKLSAgICAgICAgICAgICAgICAgIGlmIHshW3JlZ2V4cCAiXjEwIiAkZmFyZ3ModmVyc2lvbildICYmICFbcmVnZXhwICJeOSIgJGZhcmdzKHZlcnNpb24pXX0gewotICAgICAgICAgICAgICAgICAgICAgRkZfTk9WVVM6OmRlbm9ybWFsaXplX2ZpbGVzCi0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICB9IGVsc2VpZiB7W2luZm8gZXhpc3RzIGRhcmdzKHZlcnNpb24pXX0gewotICAgICAgICAgICAgICAgICAgaWYgeyFbcmVnZXhwICJeMTAiICRkYXJncyh2ZXJzaW9uKV0gJiYgIVtyZWdleHAgIl45IiAkZGFyZ3ModmVyc2lvbildfSB7Ci0gICAgICAgICAgICAgICAgICAgICBGRl9OT1ZVUzo6ZGVub3JtYWxpemVfZmlsZXMKLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIGZvcmVhY2ggYXJnIFtqb2luICR2YXJzKGFyZ19saXN0KV0gewotICAgICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCRhcmcpXX0gewotICAgICAgICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyBmYXJncygkYXJnKV19IHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIHskdmFycygkYXJnKSAhPSAkZmFyZ3MoJGFyZyl9IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1dHMgIjxGRj4gV0FSTklORzogT3ZlcndyaXRpbmcgdmFycygkYXJnKSBmcm9tICR2YXJzKCRhcmcpIHRvICRmYXJncygkYXJnKSAuLi4iCi0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICBzZXQgdmFycygkYXJnKSAkZmFyZ3MoJGFyZykKLSAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAjIE9ubHkgc2V0IHRoZSBmYXJnIGlmIGl0IHdhc24ndCBzZXQgaW4gYSBjb25maWcgZmlsZQotICAgICAgICAgICAgICAgICAgICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycygkYXJnKV19IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0IHZhcnMoJGFyZykgJGRhcmdzKCRhcmcpCi0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyBmYXJncygkYXJnKV19IHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHNldCB2YXJzKCRhcmcpICRmYXJncygkYXJnKQotICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHNldCB2YXJzKCRhcmcpICRkYXJncygkYXJnKQotICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgfSAKLSAgICAgICAgICAgICAgIH0gCi0gICAgICAgICAgICAgICBGRl9OT1ZVUzo6c2VlZF92YXJpYWJsZXMKLSMgICAgICAgICAgICAgICBGRl9OT1ZVUzo6Y2hlY2tfc2V0dXAKLSMgICAgICAgICAgICAgICBGRl9OT1ZVUzo6bm9ybWFsaXplX2ZpbGVzIAotICAgICAgICAgICAgICAgc2V0IHZhcnMoc291cmNlZCkgdHJ1ZQotICAgICAgICAgICAgICAgc2V0IHZhcnModG9wX2NlbGwpICR2YXJzKGRlc2lnbikKLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0KLSAgICAgICAgICJzb3VyY2Vfb25seSIgewotICAgICAgICAgICAgIyBCQ0w6IEFkZGVkIHRoaXMgaW4gc2luY2UgaSB3YW50IHRvIHNvdXJjZSB0aGUgdmFyaWFibGVzIHcvb3V0IGNhbGxpbmcgY2hlY2tfc2V0dXAKLSAgICAgICAgICAgIGlmIHshJHZhcnMoc291cmNlZCl9IHsKLSAgICAgICAgICAgICAgIEZGX05PVlVTOjpzb3VyY2VfY29uZmlnX2ZpbGVzCi0gICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIGZhcmdzKHZlcnNpb24pXX0gewotICAgICAgICAgICAgICAgICAgaWYgeyFbcmVnZXhwICJeMTAiICRmYXJncyh2ZXJzaW9uKV0gJiYgIVtyZWdleHAgIl45IiAkZmFyZ3ModmVyc2lvbildfSB7Ci0gICAgICAgICAgICAgICAgICAgICBGRl9OT1ZVUzo6ZGVub3JtYWxpemVfZmlsZXMKLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIH0gZWxzZWlmIHtbaW5mbyBleGlzdHMgZGFyZ3ModmVyc2lvbildfSB7Ci0gICAgICAgICAgICAgICAgICBpZiB7IVtyZWdleHAgIl4xMCIgJGRhcmdzKHZlcnNpb24pXSAmJiAhW3JlZ2V4cCAiXjkiICRkYXJncyh2ZXJzaW9uKV19IHsKLSAgICAgICAgICAgICAgICAgICAgIEZGX05PVlVTOjpkZW5vcm1hbGl6ZV9maWxlcwotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgZm9yZWFjaCBhcmcgW2pvaW4gJHZhcnMoYXJnX2xpc3QpXSB7Ci0gICAgICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJGFyZyldfSB7Ci0gICAgICAgICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIGZhcmdzKCRhcmcpXX0gewotICAgICAgICAgICAgICAgICAgICAgICAgaWYgeyR2YXJzKCRhcmcpICE9ICRmYXJncygkYXJnKX0gewotICAgICAgICAgICAgICAgICAgICAgICAgICAgcHV0cyAiPEZGPiBXQVJOSU5HOiBPdmVyd3JpdGluZyB2YXJzKCRhcmcpIGZyb20gJHZhcnMoJGFyZykgdG8gJGZhcmdzKCRhcmcpIC4uLiIKLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgIHNldCB2YXJzKCRhcmcpICRmYXJncygkYXJnKQotICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICMgT25seSBzZXQgdGhlIGZhcmcgaWYgaXQgd2Fzbid0IHNldCBpbiBhIGNvbmZpZyBmaWxlCi0gICAgICAgICAgICAgICAgICAgICAgICBpZiB7IVtpbmZvIGV4aXN0cyB2YXJzKCRhcmcpXX0gewotICAgICAgICAgICAgICAgICAgICAgICAgICBzZXQgdmFycygkYXJnKSAkZGFyZ3MoJGFyZykKLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIGZhcmdzKCRhcmcpXX0gewotICAgICAgICAgICAgICAgICAgICAgICAgc2V0IHZhcnMoJGFyZykgJGZhcmdzKCRhcmcpCi0gICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICAgc2V0IHZhcnMoJGFyZykgJGRhcmdzKCRhcmcpCi0gICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICB9IAotICAgICAgICAgICAgICAgfSAKLSAgICAgICAgICAgICAgIEZGX05PVlVTOjpzZWVkX3ZhcmlhYmxlcwotIyAgICAgICAgICAgICAgIEZGX05PVlVTOjpjaGVja19zZXR1cAotIyAgICAgICAgICAgICAgIEZGX05PVlVTOjpub3JtYWxpemVfZmlsZXMgCi0jICAgICAgICAgICAgICAgc2V0IHZhcnMoc291cmNlZCkgdHJ1ZQotICAgICAgICAgICAgICAgc2V0IHZhcnModG9wX2NlbGwpICR2YXJzKGRlc2lnbikKLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0KLSAgICAgICAgICJjaGVjayIgewotICAgICAgICAgICAgaWYgeyRhYm9ydCA9PSAiIn0gewotICAgICAgICAgICAgICAgc2V0IGFib3J0ICR2YXJzKGFib3J0KQotICAgICAgICAgICAgfQotICAgICAgICAgICAgc2V0IHNhdmUgJHZhcnMoYWJvcnQpCi0gICAgICAgICAgICBzZXQgdmFycyhhYm9ydCkgJGFib3J0Ci0gICAgICAgICAgICBzZXQgdmFycyhhYm9ydCkgJHNhdmUKLSAgICAgICAgICAgIGlmIHshW2luZm8gZXhpc3RzIHZhcnMobW9kZSldfSB7Ci0gICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIGZhcmdzKG1vZGUpXX0gewotICAgICAgICAgICAgICAgICAgc2V0IHZhcnMobW9kZSkgJGZhcmdzKG1vZGUpCi0gICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgc2V0IHZhcnMobW9kZSkgJGRhcmdzKG1vZGUpCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiB7JHZhcnMobW9kZSkgPT0gImhpZXIifSB7Ci0gICAgICAgICAgICAgICBpZiB7IVtpbmZvIGV4aXN0cyB2YXJzKHBhcnRpdGlvbl9saXN0KV19IHsKLSAgICAgICAgICAgICAgICAgIHB1dHMgIjxGRj4gRkxPVyBNT0RFICR2YXJzKG1vZGUpIFNFTEVDVEVEIEJVVCBcJHZhcnMocGFydGl0aW9uX2xpc3QpIE5PVCBERUZJTkVEIgotICAgICAgICAgICAgICAgICAgZXhpdCA5OQotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgaWYge1tmaWxlIHRhaWwgW2ZpbGUgZGlybmFtZSBbcHdkXV1dICE9ICIkdmFycyhwYXJ0aXRpb25fZGlyKSJ9IHsKLSAgICAgICAgICAgICAgICAgIEZGX05PVlVTOjpjaGVja19zZXR1cAotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgIEZGX05PVlVTOjpjaGVja19zZXR1cAotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBGRjo6cHJvY2Vzc19maWxlX2xpc3RzCi0gICAgICAgICB9Ci0KLSAgICAgICAgICJhbGwiIHsKLQotICAgICAgICAgICAgIwotICAgICAgICAgICAgIyBXZSBoYXZlIGFscmVhZHkgc291cmNlZCBpbiBhbGwgb2YgdGhlIGZpbGVzLiAgTm93IGV4ZWN1dGUgdGhlCi0gICAgICAgICAgICAjIHJlc3Qgb2YgdGhlIHN0ZXBzLCBpbmNsdWRpbmcgY2hlY2sKLSAgICAgICAgICAgICMKLQotICAgICAgICAgICAgcHV0cyAiLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIKLSAgICAgICAgICAgIHB1dHMgIjxGRj4gR2VuZXJhdGluZyBzY3JpcHRzIGZvciAkdmFycyhkZXNpZ24pIgotICAgICAgICAgICAgcHV0cyAiLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIKLSAgICAgICAgICAgIGV4ZWN1dGVfZmxvdyBjaGVjayAkZm9ybWF0ICRhYm9ydAotCi0gICAgICAgICAgICBzZXQgdmFycyhzdGVwcykgW2pvaW4gJHZhcnMoc3RlcHMpXQotICAgICAgICAgICAgc2V0IHZhcnMoYWxsKSB0cnVlCi0gICAgICAgICAgICBzZXQgY29tbWFuZHMgIiIKLQotICAgICAgICAgICAgaWYgeyR2YXJzKG1vZGUpID09ICJoaWVyIn0gewotICAgICAgICAgICAgICAgaWYge1tmaWxlIHRhaWwgW2ZpbGUgZGlybmFtZSBbcHdkXV1dID09ICIkdmFycyhwYXJ0aXRpb25fZGlyKSJ9IHsKLSAgICAgICAgICAgICAgICAgIHNldCBhbGxfc3RlcHMgJHZhcnMoZnN0ZXBzKQotICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgIHNldCBhbGxfc3RlcHMgJHZhcnMoaHN0ZXBzKQotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIGlmIHshJHZhcnMoZ2VuZXJhdGVfZmxvd19zdGVwcyl9IHsKLSAgICAgICAgICAgICAgICAgIGZpbGUgbWtkaXIgJHZhcnMoc2NyaXB0X2RpcikvSU5OT1ZVUwotICAgICAgICAgICAgICAgICAgc2V0IGZociBbb3BlbiAkdmFycyhzY3JpcHRfcGF0aCkvSU5OT1ZVUy9ydW5fYWxsLnRjbCByXSAKLSAgICAgICAgICAgICAgICAgIHNldCBmaHcgW29wZW4gJHZhcnMoc2NyaXB0X2RpcikvSU5OT1ZVUy9ydW5fYWxsLnRjbCB3XSAKLSAgICAgICAgICAgICAgICAgIHdoaWxlIHtbZ2V0cyAkZmhyIGxpbmVdPj0wfSB7Ci0gICAgICAgICAgICAgICAgICAgICByZWdzdWIgInNvdXJjZSBGRiIgJGxpbmUgInNvdXJjZSAkdmFycyhzY3JpcHRfZGlyKSIgbGluZQotICAgICAgICAgICAgICAgICAgICAgcHV0cyAkZmh3ICIgICAkbGluZSIKLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIGNsb3NlICRmaHIKLSAgICAgICAgICAgICAgICAgIGNsb3NlICRmaHcKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIHNldCBhbGxfc3RlcHMgJHZhcnMoc3RlcHMpCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICAjCi0gICAgICAgICAgICAjIEV4ZWN1dGUgZWFjaCBzdGVwIG9mIHRoZSBmbG93IGFuZCBnZXQgYSBjb21wb3NpdGUgbGlzdCBvZiB0aGUKLSAgICAgICAgICAgICMgYWN0dWFsIHN0ZXBzIHRoYXQgaGFkIGFjdGlvbnMgZ2VuZXJhdGVkIGZvciB0aGVtLiAgVGhlbiBjcmVhdGUKLSAgICAgICAgICAgICMgYSBNYWtlZmlsZSBmb3IgdGhvc2Ugc3RlcHMKLSAgICAgICAgICAgICMKLSAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhyY19zdGVwcyldfSB7Ci0gICAgICAgICAgICAgICBzZXQgYWN0aW9ucyAkdmFycyhyY19zdGVwcykKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgIHNldCBhY3Rpb25zIFtsaXN0XQotICAgICAgICAgICAgfQotICAgICAgICAgICAgIyAKLSAgICAgICAgICAgIGZvcmVhY2ggc3RlcCAkYWxsX3N0ZXBzIHsKLSAgICAgICAgICAgICAgIHNldCBjb21tYW5kcyBbZXhlY3V0ZV9mbG93ICRzdGVwICRmb3JtYXQgJGFib3J0XQotICAgICAgICAgICAgICAgaWYgeyRjb21tYW5kcyAhPSAiIn0gewotICAgICAgICAgICAgICAgICAgIGxhcHBlbmQgYWN0aW9ucyAkY29tbWFuZHMKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgICNzZXQgdmFycyhtYWtlX3Rvb2xfYXJncykgIi1ub3dpbiAtNjQiCi0KLSAgICAgICAgICAgIGlmIHsoJHZhcnModXNlcl9tb2RlKSA9PSAiaGllciIpICYmICgkdmFycyhoaWVyX2Zsb3dfdHlwZSkgPT0gIjJwYXNzIil9IHsKLSAgICAgICAgICAgICAgICMgT25seSBnZW5lcmF0ZSBzdGVwcyB1cCB0byAoYW5kIGluY2x1ZGluZykgY3RzIGZvciAycGFzcyBmbG93cwotICAgICAgICAgICAgICAgIyBHbyBhaGVhZCBhbmQgZ2VuZXJhdGUgYm90aCBNYWtlZmlsZXMgYXMgdGhlIGFjdGlvbnMgYXJlIGtub3duCi0gICAgICAgICAgICAgICBpZiB7JHZhcnMoZW5hYmxlX2ZsZXhpbG0pfSB7Ci0gICAgICAgICAgICAgICAgICBpZiB7JHZhcnMocGxhY2Vfb3B0X2Rlc2lnbil9IHsKLSAgICAgICAgICAgICAgICAgICAgIGlmIHtbZmlsZSB0YWlsIFtwd2RdXSA9PSAkdmFycyh0b3BfY2VsbCl9IHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHNldCBpbmRleCBbbHNlYXJjaCAkYWN0aW9ucyAicHJlY3RzIl0KLSAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBzZXQgaW5kZXggW2xzZWFyY2ggJGFjdGlvbnMgInBsYWNlIl0KLSAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICBzZXQgaW5kZXggW2xzZWFyY2ggJGFjdGlvbnMgInByZWN0cyJdCi0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICBGRjo6Z2VuX21ha2VmaWxlIFtscmFuZ2UgJGFjdGlvbnMgW2V4cHIgJGluZGV4KzFdIGVuZF0gJHZhcnMobW9kZSkKLSAgICAgICAgICAgICAgICAgIGZpbGUgY29weSAtZm9yY2UgTWFrZWZpbGUgTWFrZWZpbGUucGFzczIKLSAgICAgICAgICAgICAgICAgIEZGOjpnZW5fbWFrZWZpbGUgW2xyYW5nZSAkYWN0aW9ucyAwICRpbmRleF0gJHZhcnMobW9kZSkKLSAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICBzZXQgaW5kZXggW2xzZWFyY2ggJGFjdGlvbnMgImN0cyJdCi0gICAgICAgICAgICAgICAgICBGRjo6Z2VuX21ha2VmaWxlIFtscmFuZ2UgJGFjdGlvbnMgW2V4cHIgJGluZGV4KzFdIGVuZF0gJHZhcnMobW9kZSkKLSAgICAgICAgICAgICAgICAgIGZpbGUgY29weSAtZm9yY2UgTWFrZWZpbGUgTWFrZWZpbGUucGFzczIKLSAgICAgICAgICAgICAgICAgIEZGOjpnZW5fbWFrZWZpbGUgW2xyYW5nZSAkYWN0aW9ucyAwICRpbmRleF0gJHZhcnMobW9kZSkKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBGRjo6Z2VuX21ha2VmaWxlICRhY3Rpb25zICR2YXJzKG1vZGUpCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiB7JHZhcnMoZW5hYmxlX3Fvcl9jaGVjayl9IHsgCi0gICAgICAgICAgICAgICBGRl9OT1ZVUzo6Z2VuX2NoZWNrCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBleGVjdXRlX2Zsb3cgZGVidWcgJGZvcm1hdCAkYWJvcnQKLSAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhydW5fbGVjKV0gJiYgJHZhcnMocnVuX2xlYyl9IHsKLSAgICAgICAgICAgICAgIGV4ZWN1dGVfZmxvdyBsZWMgJGZvcm1hdCAkYWJvcnQKLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0KLSAgICAgICAgICJsZWMiIHsKLSMgICAgICAgICAgICBwdXRzICItLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIgotIyAgICAgICAgICAgIHB1dHMgIjxGRj4gR2VuZXJhdGluZyBzY3JpcHRzIGZvciAkdmFycyhkZXNpZ24pIgotICAgICAgICAgICAgcHV0cyAiLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIKLSAgICAgICAgICAgIGlmIHshW2luZm8gZXhpc3RzIHZhcnMobmV0bGlzdCldfSB7Ci0gICAgICAgICAgICAgICBwdXRzICI8RkY+IENhbm5vdCBnZW5lcmF0ZSAnbGVjJyBzdGVwIHcvbyB2ZXJpbG9nIG5ldGxpc3QgZGVmaW5lZCIKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBpZiB7ISR2YXJzKGdlbmVyYXRlX2Zsb3dfc3RlcHMpfSB7Ci0gICAgICAgICAgICAgICAgICBmaWxlIG1rZGlyICR2YXJzKHNjcmlwdF9kaXIpL0lOTk9WVVMKLSAgICAgICAgICAgICAgICAgIHNldCBvcCBbb3BlbiAkdmFycyhzY3JpcHRfZGlyKS9JTk5PVlVTL3J1bl9sZWMudGNsIHddCi0gICAgICAgICAgICAgICAgICBwdXRzICRvcCAiLy8iCi0gICAgICAgICAgICAgICAgICBwdXRzICRvcCAiLy8gSW5ub3Z1cyBGb3VuZGF0aW9uIEZsb3cgQ29kZSBHZW5lcmF0b3IsIFtleGVjIGRhdGVdIgotICAgICAgICAgICAgICAgICAgcHV0cyAkb3AgIi8vIgotICAgICAgICAgICAgICAgICAgaWYgeyRzdGVwID09ICJsZWMifSB7Ci0gICAgICAgICAgICAgICAgICAgICBwdXRzICRvcCAidGNsbW9kZSIKLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICNwdXRzICRvcCAiaWYge1xbZmlsZSBleGlzdHMgLmZmLnRjbFxdfSB7IgotICAgICAgICAgICAgICAgICAgI3B1dHMgJG9wICIgICBzb3VyY2UgLmZmLnRjbCIKLSAgICAgICAgICAgICAgICAgICNwdXRzICRvcCAifSIKLSAgICAgICAgICAgICAgICAgIHNldCB2YXJzRmlsZSBbRkY6OnJlbFBhdGhUbyBbZmlsZSBub3JtYWxpemUgJHZhcnMoc2NyaXB0X2RpcikvdmFycy50Y2xdIFtmaWxlIG5vcm1hbGl6ZSAkdmFycyhydW5kaXIpXV0KLSAgICAgICAgICAgICAgICAgIHB1dHMgJG9wICJpZiB7XFtmaWxlIGV4aXN0cyAkdmFyc0ZpbGVcXX0geyIKLSAgICAgICAgICAgICAgICAgIHB1dHMgJG9wICIgICBzb3VyY2UgJHZhcnNGaWxlIgotICAgICAgICAgICAgICAgICAgcHV0cyAkb3AgIn0iCi0gICAgICAgICAgICAgICAgICBwdXRzICRvcCAic291cmNlICR2YXJzKHNjcmlwdF9kaXIpL3Byb2NzLnRjbCIKLSAgICAgICAgICAgICAgICAgIHB1dHMgICI8RkY+IEdlbmVyYXRpbmcgc3RlcCAkc3RlcCIKLSAgICAgICAgICAgICAgICAgIHNldCBjb21tYW5kcyBbRkZfTk9WVVM6OnJ1bl9sZWNdCi0gICAgICAgICAgICAgICAgICBwdXRzICRvcCBbRkY6OnByZXR0eV9wcmludCAkY29tbWFuZHMgJGZvcm1hdF0KLSAgICAgICAgICAgICAgICAgIGNsb3NlICRvcAotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotIyAgICAgICAgICAgIEZGOjpnZW5fbWFrZWZpbGUgbGVjICR2YXJzKG1vZGUpCi0gICAgICAgICB9Ci0gICAgICAgICAiZGVmYXVsdCIgewotCi0gICAgICAgICAgICAjCi0gICAgICAgICAgICAjIFJ1biBlYWNoIHN0ZXAgZWl0aGVyIHNpbmd1YXJseSBvciByZWN1cnNpdmVseQotICAgICAgICAgICAgIwotICAgICAgICAgICAgIwotICAgICAgICAgICAgIyBDcmVhdGUgdGhlIGxpc3Qgb2YgY29tbWFuZHMgdGhhdCBoYXBwZW4gYXQgdGhlIGJlZ2luaW5nIG9mCi0gICAgICAgICAgICAjIGVhY2ggc2NyaXB0Ci0gICAgICAgICAgICAjCi0KLSAgICAgICAgICAgIGlmIHsoW2xzZWFyY2ggJHZhcnMoc3RlcHMpICRzdGVwXSA9PSAtMSkgJiYgKCRzdGVwICE9ICJkZWJ1ZyIpfSB7Ci0gICAgICAgICAgICAgICBwdXRzICAiPEZGPiBFUlJPUjogVW5rbm93biBGb3VuZGF0aW9uIEZsb3cgc3RlcCBcIiRzdGVwXCIuIgotICAgICAgICAgICAgICAgZXhpdCA5OQotICAgICAgICAgICAgfQotCi0jICAgICAgICAgICAgaWYgeyhbbHNlYXJjaCAkdmFycyhzdGVwcykgJHN0ZXBdID09IC0xKSAmJiAoJHN0ZXAgIT0gImRlYnVnIil9IHsKLSMgICAgICAgICAgICAgICBwdXRzICAiPEZGPiBFUlJPUjogVW5rbm93biBGb3VuZGF0aW9uIEZsb3cgc3RlcCBcIiRzdGVwXCIuIgotIyAgICAgICAgICAgICAgIGV4aXQgOTkKLSMgICAgICAgICAgICB9IGVsc2UgewotIyAgICAgICAgICAgICAgIGlmIHsoJHZhcnMoZml4X2hvbGQpIHx8ICghJHZhcnMoZml4X2hvbGQpICYmICFbcmVnZXhwICJfaG9sZCIgJHN0ZXBdKSkgJiYKLSMgICAgICAgICAgICAgICAgICAgISgkdmFycyhza2lwX2N0cykgJiYgKCgkc3RlcCA9PSAiY3RzIikgfHwgW3JlZ2V4cCAicG9zdGN0cyIgJHN0ZXBdKSl9IHsKLSMgICAgICAgICAgICAgICAgICBwdXRzICAiPEZGPiBHZW5lcmF0aW5nIHN0ZXAgJHN0ZXAiCi0jICAgICAgICAgICAgICAgfQotIyAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgIwotICAgICAgICAgICAgIyBXZSBuZWVkIHRvIGVuc3VyZSB0aGF0IHdlIGNoZWNrIHRoZSB2YXJpYWJsZSBjb250ZW50cyBhbmQKLSAgICAgICAgICAgICMgaW5pdGlhbGl6ZSB0aGUgZmxvdyBhdCBsZWFzdCBvbmNlIGluIGEgZ2l2ZW4gcnVuLCBubyBtYXR0ZXIKLSAgICAgICAgICAgICMgd2hhdCBzdGVwIHRoZSB1c2VyIHdhbnRzIHRvIGV4ZWN1dGUKLSAgICAgICAgICAgICMKLQotIyAgICAgICAgICAgIHNldCBoZWFkZXIgIlxuI1xuIyBDb21tYW5kcyBmb3IgJHN0ZXBcbiNcblxuIgotCi0gICAgICAgICAgICBpZiB7IVtpbmZvIGV4aXN0cyB2YXJzKGFsbCldfSB7Ci0gICAgICAgICAgICAgICBleGVjdXRlX2Zsb3cgY2hlY2sgJGZvcm1hdCAkYWJvcnQKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgICMgQkNMOiBDaGFuZ2VkIHRvIHRjbCBmaWxlIG1rZGlyCi0gICAgICAgICAgICBmaWxlIG1rZGlyICR2YXJzKHNjcmlwdF9kaXIpL0lOTk9WVVMKLSAgICAgICAgICAgIHNldCBjb21tYW5kcyAiIgotIyAgICAgICAgICAgIHNldCBjb21tYW5kcyAicG9zdC0xMC4xMC1iMDA5XG4iCi0gICAgICAgICAgICBpZiB7ISR2YXJzKGluaXRpYWxpemVkKX0gewotICAgICAgICAgICAgICAgc2V0IHZhcnMoc3RlcCkgJHN0ZXAKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkZfTk9WVVM6OmluaXRpYWxpemVfZmxvd10KLSMgICAgICAgICAgICAgICB1bnNldCB2YXJzKHN0ZXApCi0gICAgICAgICAgICAgICBzZXQgdmFycyhpbml0X2NvbW1hbmRzKSAkY29tbWFuZHMKLSAgICAgICAgICAgICAgIHNldCB2YXJzKGluaXRpYWxpemVkKSAxCi0gICAgICAgICAgICAgICBpZiB7IVtpbmZvIGV4aXN0cyB2YXJzKHdhcm5pbmdfY291bnQpXX0gewotICAgICAgICAgICAgICAgICAgc2V0IHZhcnMod2FybmluZ19jb3VudCkgMAotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycyhlcnJvcl9jb3VudCldfSB7Ci0gICAgICAgICAgICAgICAgICBzZXQgdmFycyhlcnJvcl9jb3VudCkgMAotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAjCi0gICAgICAgICAgICAjIEdldCB0aGUgY29tbWFuZHMgdG8gZXhlY3V0ZSB0aGUgc3RlcC4gIFdlIGFsc28gbmVlZCB0byBnZXQgdGhlCi0gICAgICAgICAgICAjIGNvbW1hbmRzIHRvIGxvYWQgdGhlIGRhdGFiYXNlIGZvciB0aGF0IHN0ZXAsIGFzc3VtaW5nIHRoYXQgYQotICAgICAgICAgICAgIyBkYXRhYmFzZSBleGlzdHMgZnJvbSBhIHByaW9yIHN0ZXAuICBUaG9zZSBsb2FkIGNvbW1hbmRzIGFyZQotICAgICAgICAgICAgIyBwcmVwZW5kZWQgdG8gdGhlIGV4ZWN1dGlvbiBjb21tYW5kcy4gIFNhdmUgY29tbWFuZHMgYXJlCi0gICAgICAgICAgICAjIGFwcGVuZGVkCi0gICAgICAgICAgICAjCi0KLSAgICAgICAgICAgIGlmIHtbaW5mbyBjb21tYW5kcyA6OkZGX05PVlVTOjpydW5fJHN0ZXBdIG5lICIifSAgewotICAgICAgICAgICAgICAgc2V0IHRlbXBfY29tbWFuZHMgW0ZGX05PVlVTOjpydW5fJHN0ZXAgJGZvcm1hdF0KLSAgICAgICAgICAgICAgIGlmIHskdGVtcF9jb21tYW5kcyA9PSAiIn0gewotICAgICAgICAgICAgICAgICAgcmV0dXJuICIiCi0gICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgaWYgeyR2YXJzKHN0ZXApICE9ICJpbml0In0gewotICAgICAgICAgICAgICAgICAgICAgc2V0IHN0ZXBfY29tbWFuZHMgIlxuIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiIKLSAgICAgICAgICAgICAgICAgICAgIGlmIHskdmFycyhyZXBvcnRfcnVuX3RpbWUpfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgc3RlcF9jb21tYW5kcyAic2V0IHZhcnMoc3RlcCkgJHtzdGVwfVxuIgotICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIHN0ZXBfY29tbWFuZHMgInNldCB2YXJzKCR7c3RlcH0sc3RhcnRfdGltZSkgXFtjbG9jayBzZWNvbmRzXF1cbiIKLSAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgIGlmIHskdmFycyhjYXB0dXJlX21ldHJpY3MpfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiB7W2xpbmRleCBbc3BsaXQgJHZhcnModmVyc2lvbikgIi4iXSAgMF0gPiAxM30gewotICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIHN0ZXBfY29tbWFuZHMgInB1c2hfc25hcHNob3Rfc3RhY2tcbiIKLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBzdGVwX2NvbW1hbmRzICIjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4iCi0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgc3RlcF9jb21tYW5kcyAkdGVtcF9jb21tYW5kcwotICAgICAgICAgICAgICAgICAgYXBwZW5kIHN0ZXBfY29tbWFuZHMgIiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiIKLSAgICAgICAgICAgICAgICAgIHB1dHMgICI8RkY+IEdlbmVyYXRpbmcgc3RlcCAkc3RlcCIKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0gZWxzZWlmIHtbaW5mbyBleGlzdHMgdmFycyhjdXN0b21fc3RlcF9kaXIpXX0gewotICAgICAgICAgICAgICAgaWYge1tmaWxlIGlzZmlsZSAkdmFycyhjdXN0b21fc3RlcF9kaXIpL3J1bl8ke3N0ZXB9LnRjbF19IHsKLSAgICAgICAgICAgICAgICAgIHB1dHMgICI8RkY+IEdlbmVyYXRpbmcgc3RlcCAkc3RlcCIKLSAgICAgICAgICAgICAgICAgIHNldCBmaHIgW29wZW4gJHZhcnMoY3VzdG9tX3N0ZXBfZGlyKS9ydW5fJHN0ZXAudGNsIHJdCi0gICAgICAgICAgICAgICAgICBzZXQgc3RlcF9jb21tYW5kcyAiXG4jLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIgotICAgICAgICAgICAgICAgICAgYXBwZW5kIHN0ZXBfY29tbWFuZHMgIiMgU291cmNpbmcgY3VzdG9tIHNjcmlwdCAuLi5cbiIKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBzdGVwX2NvbW1hbmRzICIjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIgotICAgICAgICAgICAgICAgICAgaWYgeyR2YXJzKHJlcG9ydF9ydW5fdGltZSkgJiYgKCRzdGVwICE9ICJpbml0Iil9IHsKLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBzdGVwX2NvbW1hbmRzICJzZXQgdmFycyhzdGVwKSAke3N0ZXB9XG4iCi0gICAgICAgICAgICAgICAgICAgICBhcHBlbmQgc3RlcF9jb21tYW5kcyAic2V0IHZhcnMoJHtzdGVwfSxzdGFydF90aW1lKSBcW2Nsb2NrIHNlY29uZHNcXVxuIgotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgaWYgeyR2YXJzKGNhcHR1cmVfbWV0cmljcykgJiYgKCR2YXJzKHN0ZXApICE9ICJpbml0Iil9IHsKLSAgICAgICAgICAgICAgICAgICAgIGlmIHtbbGluZGV4IFtzcGxpdCAkdmFycyh2ZXJzaW9uKSAiLiJdICAwXSA+IDEzfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgc3RlcF9jb21tYW5kcyAicHVzaF9zbmFwc2hvdF9zdGFja1xuIgotICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgYXBwZW5kIHN0ZXBfY29tbWFuZHMgIiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiIKLSAgICAgICAgICAgICAgICAgIHdoaWxlIHtbZ2V0cyAkZmhyIGxpbmVdPj0wfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIHN0ZXBfY29tbWFuZHMgIiRsaW5lXG4iCi0gICAgICAgICAgICAgICAgICB9Ci0jICAgICAgICAgICAgICAgICAgYXBwZW5kIHN0ZXBfY29tbWFuZHMgInNvdXJjZSAkdmFycyhjdXN0b21fc3RlcF9kaXIpL3J1bl8kc3RlcC50Y2xcbiIKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBzdGVwX2NvbW1hbmRzICIjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4iCi0gICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgcHV0cyAiPEZGPiBFUlJPUjogVW5hYmxlIHRvIGdlbmVyYXRlIHN0ZXAgJHN0ZXAiCi0gICAgICAgICAgICAgICAgICBzZXQgZXJyb3JzKCR2YXJzKGVycm9yX2NvdW50KSkgIlVuYWJsZSB0byBnZW5lcmF0ZSBzdGVwICRzdGVwIC0gcHJvY2VkdXJlICdydW5fJHN0ZXAnIG11c3QgYmUgZGVmaW5lZCBvciBhIFwkdmFycyhjdXN0b21fc3RlcF9kaXIpL3J1bl8kc3RlcC50Y2wgZmlsZSBtdXN0IGJlIHByb3ZpZGVkIgotICAgICAgICAgICAgICAgICAgaW5jciB2YXJzKGVycm9yX2NvdW50KQotICAgICAgICAgICAgICAgICAgcmV0dXJuICIiCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgcHV0cyAiPEZGPiBFUlJPUjogVW5hYmxlIHRvIGdlbmVyYXRlIHN0ZXAgJHN0ZXAiCi0gICAgICAgICAgICAgICAgICBzZXQgZXJyb3JzKCR2YXJzKGVycm9yX2NvdW50KSkgIlVuYWJsZSB0byBnZW5lcmF0ZSBzdGVwICRzdGVwIC0gcHJvY2VkdXJlICdydW5fJHN0ZXAnIG11c3QgYmUgZGVmaW5lZCBvciBhIFwkdmFycyhjdXN0b21fc3RlcF9kaXIpL3J1bl8kc3RlcC50Y2wgZmlsZSBtdXN0IGJlIHByb3ZpZGVkIgotICAgICAgICAgICAgICAgaW5jciB2YXJzKGVycm9yX2NvdW50KQotICAgICAgICAgICAgICAgcmV0dXJuICIiCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBzZXQgdGhpc19pbmRleCBbbHNlYXJjaCAkdmFycyhzdGVwcykgJHN0ZXBdCi0gICAgICAgICAgICBzZXQgcHJpb3IgW2xpbmRleCAkdmFycyhzdGVwcykgW2V4cHIgJHRoaXNfaW5kZXggLSAxXV0KLSMgICAgICAgICAgICBpZiB7ISR2YXJzKGZpeF9ob2xkKSAmJiBbcmVnZXhwIF9ob2xkICRwcmlvcl19IHsKLSMgICAgICAgICAgICAgICBzZXQgcHJpb3IgW2xpbmRleCAkdmFycyhzdGVwcykgW2V4cHIgJHRoaXNfaW5kZXggLSAyXV0KLSMgICAgICAgICAgICAgICBpZiB7W3JlZ2V4cCBfaG9sZCAkcHJpb3JdfSB7Ci0jICAgICAgICAgICAgICAgICAgc2V0IHByaW9yIFtsaW5kZXggJHZhcnMoc3RlcHMpIFtleHByICR0aGlzX2luZGV4IC0gM11dCi0jICAgICAgICAgICAgICAgfQotIyAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIHtbcmVnZXhwIF9ob2xkICRwcmlvcl0gJiYgKFtsc2VhcmNoICR2YXJzKGZpeF9ob2xkKSBbcmVnc3ViIF9ob2xkICRwcmlvciAiIl1dPDApfSB7Ci0gICAgICAgICAgICAgICBzZXQgcHJpb3IgW2xpbmRleCAkdmFycyhzdGVwcykgW2V4cHIgJHRoaXNfaW5kZXggLSAyXV0KLSAgICAgICAgICAgICAgIGlmIHtbcmVnZXhwIF9ob2xkICRwcmlvcl0gJiYgKFtsc2VhcmNoICR2YXJzKGZpeF9ob2xkKSBbcmVnc3ViIF9ob2xkICRwcmlvciAiIl1dPDApfSB7Ci0gICAgICAgICAgICAgICAgICBzZXQgcHJpb3IgW2xpbmRleCAkdmFycyhzdGVwcykgW2V4cHIgJHRoaXNfaW5kZXggLSAzXV0KLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgaWYgeygkc3RlcCA9PSAiY3RzIikgJiYgJHZhcnMocGxhY2Vfb3B0X2Rlc2lnbil9IHsKLSAgICAgICAgICAgICAgIHNldCBwcmlvciAicGxhY2UiCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiB7KCRzdGVwID09ICJyb3V0ZSIpICYmICR2YXJzKHNraXBfY3RzKX0gewotICAgICAgICAgICAgICAgc2V0IHByaW9yICJwcmVjdHMiCi0gICAgICAgICAgICB9Ci0jICAgICAgICAgICAgaWYgeygkc3RlcCA9PSAicm91dGUiKSAmJiBbcmVnZXhwICJeY2NvcHQiIFtzdHJpbmcgdG9sb3dlciAkdmFycyhjdHNfZW5naW5lKV1dfSB7Ci0jICAgICAgICAgICAgICAgc2V0IHByaW9yICJjdHMiCi0jICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYge1tyZWdleHAgIl5jY29wdCIgW3N0cmluZyB0b2xvd2VyICR2YXJzKGN0c19lbmdpbmUpXV19IHsKLSAgICAgICAgICAgICAgIGlmIHsoW3N0cmluZyB0b2xvd2VyICR2YXJzKGZpeF9ob2xkKV0gIT0gImZhbHNlIil9IHsKLSAgICAgICAgICAgICAgICAgIGlmIHsoJHN0ZXAgPT0gInBvc3RjdHNfaG9sZCIpICYmIFtsc2VhcmNoICR2YXJzKGZpeF9ob2xkKSAkc3RlcF19IHsKLSAgICAgICAgICAgICAgICAgICAgIHNldCBwcmlvciBjdHMKLSAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICBpZiB7KCRzdGVwID09ICJyb3V0ZSIpfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBzZXQgcHJpb3IgY3RzCi0gICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgaWYgeygkc3RlcCA9PSAicm91dGUiKX0gewotICAgICAgICAgICAgICAgICAgICAgc2V0IHByaW9yIGN0cwotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBzZXQgdGhpc19pbmRleCBbbHNlYXJjaCBbRkY6OmFkanVzdF9zdGVwc10gJHN0ZXBdCi0gICAgICAgICAgICBzZXQgcHJpb3IgW2xpbmRleCBbRkY6OmFkanVzdF9zdGVwc10gW2V4cHIgJHRoaXNfaW5kZXggLSAxXV0KLQotICAgICAgICAgICAgc2V0IG5vX2RiX3N0ZXBzIFtsaXN0ICJpbml0IiAicmVidWRnZXQiICJmbGV4aWxtIiAiYXNzZW1ibGUiICJhc3NlbWJsZV9mbGV4aWxtIiAiZGVidWciXQotICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKHVzZV9mbGV4bW9kZWxzKV0gJiYgJHZhcnModXNlX2ZsZXhtb2RlbHMpfSB7Ci0gICAgICAgICAgICAgICBsYXBwZW5kIG5vX2RiX3N0ZXBzICJtb2RlbF9nZW4iCi0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgbGFwcGVuZCBub19kYl9zdGVwcyAiZmVlZHRocm91Z2giCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiB7KFtsc2VhcmNoICRub19kYl9zdGVwcyAkc3RlcF0gPT0gLTEpICYmICgkcHJpb3IgIT0gIiIpfSB7Ci0gICAgICAgICAgICAgICBzZXQgbG9hZF9jb21tYW5kcyBbRkZfTk9WVVM6OmxvYWRfZGVzaWduICRwcmlvciAkc3RlcF0KLSMgICAgICAgICAgICAgICBzZXQgcmVzdG9yZV9jb21tYW5kcyBbbGluZGV4IFtGRl9OT1ZVUzo6bG9hZF9kZXNpZ24gJGZvcm1hdCAkcHJpb3JdIDFdCi0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgc2V0IGxvYWRfY29tbWFuZHMgIiIKLSMgICAgICAgICAgICAgICBzZXQgcmVzdG9yZV9jb21tYW5kcyAiIgotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBpZiB7ISR2YXJzKGxvYWRlZCl9IHsKLSAgICAgICAgICAgICAgIHNldCB2YXJzKGxvYWRlZCkgMQotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICRsb2FkX2NvbW1hbmRzCi0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgICMgbW9kZWxfZ2VuIHNhdmVzIGl0cyBkYXRhYmFzZSBleHBsaWNpdGx5Ci0jICAgICAgICAgICAgc2V0IG5vX3NhdmVfc3RlcHMgW2xpc3QgImRlYnVnIiAibW9kZWxfZ2VuIl0KLSAgICAgICAgICAgIHNldCBub19zYXZlX3N0ZXBzIFtsaXN0ICJkZWJ1ZyJdCi0gICAgICAgICAgICBpZiB7W2xzZWFyY2ggJG5vX3NhdmVfc3RlcHMgJHN0ZXBdID09IC0xfSB7Ci0gICAgICAgICAgICAgICBzZXQgc2F2ZV9jb21tYW5kcyBbRkZfTk9WVVM6OnNhdmVfcmVzdWx0cyAkc3RlcCAkZm9ybWF0XQotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIHNldCBzYXZlX2NvbW1hbmRzICIiCi0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgICMKLSAgICAgICAgICAgICMgV3JpdGUgdGhlIGNvbW1hbmRzIHRvIGEgZmlsZSwgbmFtZWQgZm9yIHRoZSBzdGVwIHdlIGFyZQotICAgICAgICAgICAgIyBleGVjdXRpbmcKLSAgICAgICAgICAgICMKLQotIyAgICAgICAgICAgIGlmIHshJHZhcnMoZ2VuZXJhdGVfZmxvd19zdGVwcyl9IHsKLSAgICAgICAgICAgICAgIGlmIHtbcmVnZXhwICJec3luIiAkc3RlcF19IHsKLSAgICAgICAgICAgICAgICAgIGZpbGUgbWtkaXIgJHZhcnMoc2NyaXB0X2RpcikvR0VOVVMKLSAgICAgICAgICAgICAgICAgIHNldCBvcCBbb3BlbiAkdmFycyhzY3JpcHRfZGlyKS9HRU5VUy9ydW5fJHtzdGVwfS50Y2wgd10KLSAgICAgICAgICAgICAgIH0gZWxzZSB7IAotICAgICAgICAgICAgICAgICAgc2V0IG9wIFtvcGVuICR2YXJzKHNjcmlwdF9kaXIpL0lOTk9WVVMvcnVuXyR7c3RlcH0udGNsIHddCi0gICAgICAgICAgICAgICB9Ci0KLSAgICMgICAgICAgICAgICBpZiB7JHZhcnMoZGVidWcpfSB7Ci0gICAjICAgICAgICAgICAgICAgcHV0cyAiPERFQlVHPiBPcGVuaW5nIGZpbGU6ICR2YXJzKHNjcmlwdF9kaXIpL0lOTk9WVVMvcnVuXyR7c3RlcH0udGNsIGluIFtleGVjIHB3ZF0gLT4gJG9wIgotICAgIyAgICAgICAgICAgIH0KLSAgIAotICAgICAgICAgICAgICAgcHV0cyAkb3AgW3N0cmluZyByZXBlYXQgIiMiIDY4XQotICAgICAgICAgICAgICAgcHV0cyAkb3AgIiMgSW5ub3Z1cyBGb3VuZGF0aW9uIEZsb3cgQ29kZSBHZW5lcmF0b3IsIFtleGVjIGRhdGVdIgotICAgICAgICAgICAgICAgcHV0cyAkb3AgIiMgVmVyc2lvbiA6IDE3LjEwLXAwMDNfMSIKLSAgICAgICAgICAgICAgIHB1dHMgJG9wIFtzdHJpbmcgcmVwZWF0ICIjIiA2OF0KLSAgIAotICAgICAgICAgICAgICAgaWYge1tmaWxlIHRhaWwgW2ZpbGUgZGlybmFtZSBbcHdkXV1dICE9ICIkdmFycyhwYXJ0aXRpb25fZGlyKSJ9IHsKLSAgICAgICAgICAgICAgICAgIHNldCB2YXJzRmlsZSBbRkY6OnJlbFBhdGhUbyBbZmlsZSBub3JtYWxpemUgJHZhcnMoc2NyaXB0X2RpcikvdmFycy50Y2xdIFtmaWxlIG5vcm1hbGl6ZSAkdmFycyhydW5kaXIpXV0KLSAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICBzZXQgdmFyc0ZpbGUgJHZhcnMoc2NyaXB0X2RpcikvdmFycy50Y2wKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIHB1dHMgJG9wICJcbmlmIHtcW2ZpbGUgZXhpc3RzICR2YXJzRmlsZVxdfSB7IgotICAgICAgICAgICAgICAgcHV0cyAkb3AgIiAgIHNvdXJjZSAkdmFyc0ZpbGUiCi0gICAgICAgICAgICAgICBwdXRzICRvcCAifSIKLSAgICAgICAgICAgICAgICNwdXRzICRvcCAiaWYge1xbZmlsZSBleGlzdHMgXCR2YXJzKHNjcmlwdF9kaXIpL3ZhcnMudGNsXF19IHsiCi0gICAgICAgICAgICAgICAjcHV0cyAkb3AgIiAgIHNvdXJjZSBcJHZhcnMoc2NyaXB0X2RpcikvdmFycy50Y2wiCi0gICAgICAgICAgICAgICAjcHV0cyAkb3AgIn1cbiIKLSAgICAgICAgICAgICAgIGlmIHshJHZhcnMoZnJlZXplX3ZhcnMpfSB7Ci0gICAgICAgICAgICAgICAgICBpZiB7KFtmaWxlIHRhaWwgW2ZpbGUgZGlybmFtZSBbcHdkXV1dICE9ICIkdmFycyhwYXJ0aXRpb25fZGlyKSIpICYmICFbcmVnZXhwIHN5bl8gJHN0ZXBdfSB7Ci0gICAgICAgICAgICAgICAgICAgICBwdXRzICRvcCAiZm9yZWFjaCBmaWxlIFwkdmFycyhjb25maWdfZmlsZXMpIHsiCi0gICAgICAgICAgICAgICAgICAgICBwdXRzICRvcCAiICAgc291cmNlIFwkZmlsZSIKLSAgICAgICAgICAgICAgICAgICAgIHB1dHMgJG9wICJ9XG4iCi0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICBwdXRzICRvcCAic291cmNlIFwkdmFycyhzY3JpcHRfZGlyKS9wcm9jcy50Y2wiCi0gICAgICAgICAgICAgICBwdXRzICRvcCAic291cmNlICR2YXJzKHNjcmlwdF9kaXIpL3Byb2NzLnRjbCIKLSAgICAgICAgICAgICAgIGlmIHshJGZvcm1hdH0gewotICAgICAgICAgICAgICAgICAgcHV0cyAkb3AgJGhlYWRlcgotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgcmVnc3ViIC1hbGwgImluaXQsIiAkdmFycyhpbml0X2NvbW1hbmRzKSAiJHN0ZXAsIiBjb21tYW5kcwotICAgICAgICAgICAgICAgc2V0IG9mIFtvcGVuICR2YXJzKHNjcmlwdF9kaXIpL0lOTk9WVVMvLmhlYWQgd10KLSAgICAgICAgICAgICAgIHB1dHMgJG9mIFtGRjo6cHJldHR5X3ByaW50ICR2YXJzKGluaXRfY29tbWFuZHMpICRmb3JtYXRdCi0gICAgICAgICAgICAgICBjbG9zZSAkb2YgCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgJGxvYWRfY29tbWFuZHMgJHN0ZXBfY29tbWFuZHMgJHNhdmVfY29tbWFuZHMKLSAgICMgICAgICAgICAgICBzZXQgY29tbWFuZHMgIiIKLSAgICMgICAgICAgICAgICBpZiB7KCRzdGVwICE9ICJwYXJ0aXRpb24iKSAmJiAoJHN0ZXAgIT0gInJlYnVkZ2V0IikgJiYgKCRzdGVwICE9ICJmbGV4aWxtIil9IHsKLSAgICMgICAgICAgICAgICAgICBpZiB7IVtyZWdleHAgX2hvbGQgJHN0ZXBdfSB7Ci0gICAjICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICRsb2FkX2NvbW1hbmRzICRzdGVwX2NvbW1hbmRzICRzYXZlX2NvbW1hbmRzCi0gICAjICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICMjICAgICAgICAgICAgICAgICAgaWYgeyEoW2xzZWFyY2ggJHZhcnMoZml4X2hvbGQpIFtyZWdzdWIgX2hvbGQgJHN0ZXAgIiJdXTwwKX0gewotICAgIyMgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgJHN0ZXBfY29tbWFuZHMKLSAgICMjICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICMgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgJGxvYWRfY29tbWFuZHMgJHN0ZXBfY29tbWFuZHMgJHNhdmVfY29tbWFuZHMKLSAgICMjICAgICAgICAgICAgICAgICAgfQotICAgIyAgICAgICAgICAgICAgIH0KLSAgICMjICAgICAgICAgICAgICAgaWYgeyRzdGVwID09ICJkZWJ1ZyJ9IHsKLSAgICMjICAgICAgICAgICAgICAgICAgc2V0IHZhcnMoc3RlcCkgZGVidWcKLSAgICMjICAgICAgICAgICAgICAgfQotICAgIyAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAjICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICRsb2FkX2NvbW1hbmRzICRzdGVwX2NvbW1hbmRzCi0gICAjICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgbGFwcGVuZCB2YXJzKGJzdGVwcykgJHN0ZXAKLSAgICAgICAgICAgICAgIHNldCBvZiBbb3BlbiAkdmFycyhzY3JpcHRfZGlyKS9JTk5PVlVTLy5sb2FkXyRzdGVwIHddCi0gICAjICAgICAgICAgICAgcHV0cyAkb2YgW0ZGOjpwcmV0dHlfcHJpbnQgJHJlc3RvcmVfY29tbWFuZHMgJGZvcm1hdF0KLSAgICAgICAgICAgICAgIHB1dHMgJG9mIFtGRjo6cHJldHR5X3ByaW50ICRsb2FkX2NvbW1hbmRzICRmb3JtYXRdCi0gICAgICAgICAgICAgICBjbG9zZSAkb2YKLSAgICAgICAgICAgICAgIHNldCBvZiBbb3BlbiAkdmFycyhzY3JpcHRfZGlyKS9JTk5PVlVTLy4kc3RlcCB3XQotICAgICAgICAgICAgICAgcHV0cyAkb2YgW0ZGOjpwcmV0dHlfcHJpbnQgJHN0ZXBfY29tbWFuZHMgJGZvcm1hdF0KLSAgICAgICAgICAgICAgIHB1dHMgJG9mIFtGRjo6cHJldHR5X3ByaW50ICRzYXZlX2NvbW1hbmRzICRmb3JtYXRdCi0gICAgICAgICAgICAgICBjbG9zZSAkb2YKLSAgICMgICAgICAgICAgICBpZiB7W3JlZ2V4cCAicG9zdHJvdXRlX3NpIiAkc3RlcF0gJiYgJHNraXBfY29tbWFuZHMgIT0gIiJ9IHsKLSAgICMgICAgICAgICAgICAgICBzZXQgY29tbWFuZHMgJHNraXBfY29tbWFuZHMKLSAgICMgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICBpZiB7ISRmb3JtYXR9IHsKLSAgICAgICAgICAgICAgICAgIHNldCBjb21tYW5kcyBbRkY6OnN0cmlwX2xpbmVzICRjb21tYW5kcyBbbGlzdCAicHV0cyIgIiMiXV0KLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIGlmIHskdmFycyhjYXRjaF9lcnJvcnMpICYmICgkc3RlcCAhPSAiZGVidWciKX0gewotICAgICAgICAgICAgICAgICAgcHV0cyAkb3AgIlxuaWYgeyBcW2NhdGNoIHtcbiIKLSAgICAgICAgICAgICAgICAgIHB1dHMgJG9wIFtGRjo6cHJldHR5X3ByaW50ICRjb21tYW5kcyAkZm9ybWF0XQotICAgICAgICAgICAgICAgICAgcHV0cyAkb3AgIn0gc3RlcF9lcnJvclxdfSB7XG4iCi0gICAgICAgICAgICAgICAgICBwdXRzICRvcCAiICAgcHV0cyBcIjxGRj4gPT09PT09PT09PT0gU1RFUCBFWEVDVVRJT04gRVJST1IgPT09PT09PT09PT09XCIiCi0gICAgICAgICAgICAgICAgICBwdXRzICRvcCAiICAgcHV0cyBcIjxGRj4gRVJST1IgUlVOTklORyBTVEVQICckc3RlcCdcIiIKLSAgICAgICAgICAgICAgICAgIGlmIHskdmFycyhzYXZlX29uX2NhdGNoKX0gewotICAgICAgICAgICAgICAgICAgICAgaWYge1tyZWdleHAgIl5zeW4iICR2YXJzKHN0ZXApXX0gewotICAgICAgICAgICAgICAgICAgICAgICAgICBwdXRzICRvcCAiICAgd3JpdGVfZGIgJHZhcnMoZGVzaWduKSAtYWxsX3Jvb3RfYXR0cmlidXRlcyAtdG9fZmlsZSAkdmFycyhkYnNfZGlyKS8kdmFycyhzdGVwKS5jYXRjaC5kYlxuIgotICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgcHV0cyAkb3AgIiAgIHB1dHMgXCI8RkY+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVwiIgotICAgICAgICAgICAgICAgICAgICAgICBwdXRzICRvcCAiICAgcHV0cyBcIjxGRj4gLi4uIFNBVklORyBERVNJR04gVE8gJHZhcnMoZGJzX2RpcikvJHZhcnMoc3RlcCkuY2F0Y2guZW5jXCIiCi0gICAgICAgICAgICAgICAgICAgICAgIGlmIHtbc3RyaW5nIGNvbXBhcmUgLW5vY2FzZSAkdmFycyhkYnNfZm9ybWF0KSAib2EiXT09MH0gewotICAgICAgICAgICAgICAgICAgICAgICAgICBpZiB7W2xpbmRleCBbc3BsaXQgJHZhcnModmVyc2lvbikgIi4iXSAgMF0gPiAxMH0gewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdXRzICRvcCAiICAgd3JpdGVfZGIgLW9hX2xpYl9jZWxsX3ZpZXcgeyR2YXJzKG9hX2Rlc2lnbl9saWIpICR2YXJzKGRlc2lnbikgJHZhcnMoc3RlcCkuY2F0Y2h9XG4iCi0gICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1dHMgJG9wICIgICBzYXZlT2FEZXNpZ24gJHZhcnMob2FfZGVzaWduX2xpYikgJHZhcnMoZGVzaWduKSAkdmFycyhzdGVwKS5jYXRjaFxuIgotICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgIHB1dHMgJG9wICIgICB3cml0ZV9kYiAkdmFycyhkYnNfZGlyKS8kdmFycyhzdGVwKS5jYXRjaC5lbmNcbiIKLSAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgfSAKLSAgICAgICAgICAgICAgICAgIHB1dHMgJG9wICIgICBwdXRzIFwiPEZGPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cIiIKLSAgICAgICAgICAgICAgICAgIHB1dHMgJG9wICIgICBwdXRzIFwiPEZGPiBcJHN0ZXBfZXJyb3JcIiIKLSAgICAgICAgICAgICAgICAgIHB1dHMgJG9wICIgICBwdXRzIFwiPEZGPiAtLS0tLS0tLS0tLS0tLS0tLS0tIERFVEFJTFMgLS0tLS0tLS0tLS0tLS0tLS0tXCIiCi0gICAgICAgICAgICAgICAgICBwdXRzICRvcCAiICAgcHV0cyBcIjxGRj4gXCRlcnJvckluZm9cIiIKLSAgICAgICAgICAgICAgICAgIHB1dHMgJG9wICIgICBwdXRzIFwiPEZGPiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XCIiCi0gICAgICAgICAgICAgICAgICBpZiB7JHZhcnMoYmF0Y2gpfSB7Ci0gICAgICAgICAgICAgICAgICAgICBwdXRzICRvcCAiICAgZXhpdCAtMSIKLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIHB1dHMgJG9wICJ9IgotICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgIHB1dHMgJG9wIFtGRjo6cHJldHR5X3ByaW50ICRjb21tYW5kcyAkZm9ybWF0XQotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgaWYgeyR2YXJzKGJhdGNoKSAmJiAoJHN0ZXAgIT0gImRlYnVnIil9IHsKLSAgICAgICAgICAgICAgICAgIHB1dHMgJG9wICJpZiB7IVxbaW5mbyBleGlzdHMgdmFycyhzaW5nbGUpXF19IHtcbiAgIGV4aXQgMFxufVxuIgotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgY2xvc2UgJG9wCi0jICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBzZXQgc2NvbW1hbmRzIFtzcGxpdCAkY29tbWFuZHMgIlxuIl0KLQotICAgICAgICAgICAgaWYgeyR2YXJzKGdlbmVyYXRlX2Zsb3dfc3RlcHMpfSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgdmFycyhmbG93X3N0ZXBzKSAiXG5jcmVhdGVfZmxvd19zdGVwIC1uYW1lICRzdGVwIFx7XG4iCi0gICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoaHN0ZXBzKV0gJiYgKFtsc2VhcmNoICR2YXJzKGhzdGVwcykgJHN0ZXBdICE9IC0xKX0gewotICAgICAgICAgICAgICAgICAgYXBwZW5kIHZhcnMoZmxvd19zdGVwcyxoaWVyKSAiXG5jcmVhdGVfZmxvd19zdGVwIC1uYW1lICRzdGVwIFx7XG4iCi0gICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgYXBwZW5kIHZhcnMoZmxvd19zdGVwcyxmbGF0KSAiXG5jcmVhdGVfZmxvd19zdGVwIC1uYW1lICRzdGVwIFx7XG4iCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICBzZXQgc2tpcCAwCi0gICAgICAgICAgICAgICBmb3JlYWNoIGxpbmUgJHNjb21tYW5kcyB7Ci0gICAgICAgICAgICAgICAgICBpZiB7JHNraXAgIT0gMH0gewotICAgICAgICAgICAgICAgICAgICAgc2V0IHNraXAgW2V4cHIgJHNraXAtMV0KLSAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlCi0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICBpZiB7W3JlZ2V4cCBmZl9wcm9jcyAkbGluZV19IHsgY29udGludWUgfQotIyAgICAgICAgICAgICAgICAgIGlmIHtbcmVnZXhwICIjIiAkbGluZV19IHsgY29udGludWUgfQotICAgICAgICAgICAgICAgICAgaWYge1tyZWdleHAgIkVSUk9SIExPQURJTkcgREFUQUJBU0UiICRsaW5lXX0geyBjb250aW51ZSB9Ci0gICAgICAgICAgICAgICAgICBpZiB7W3JlZ2V4cCAiUGx1Z2luIC0+IiAkbGluZV19IHsgY29udGludWUgfQotIyAgICAgICAgICAgICAgICAgIGlmIHtbcmVnZXhwICJQdXRzIiAkbGluZV19IHsgcmVnc3ViIFB1dHMgJGxpbmUgcHV0cyBsaW5lIH0KLSMgICAgICAgICAgICAgICAgICBpZiB7W3JlZ2V4cCAiUHV0cyBcIjxGRj4iICRsaW5lXX0geyBjb250aW51ZSB9Ci0gICAgICAgICAgICAgICAgICBpZiB7W3JlZ2V4cCAiVlBBVEgiICRsaW5lXX0geyBjb250aW51ZSB9Ci0gICAgICAgICAgICAgICAgICBpZiB7W3JlZ2V4cCAic2V0IHZhcnMiICRsaW5lXSAmJiAhW3JlZ2V4cCAiLHBvc3RfY3RzX3NkYyIgJGxpbmVdICYmICFbcmVnZXhwICJhY3RpdmVfcmNfY29ybmVycyIgJGxpbmVdfSB7IGNvbnRpbnVlIH0KLSAgICAgICAgICAgICAgICAgIGlmIHsoJHN0ZXAgPT0gImluaXQiKSAmJiAkdmFycyhyYyl9IHsKLSMgICAgICAgICAgICAgICAgICAgICBpZiB7W3JlZ2V4cCAicmVhZF9tbW1jIiAkbGluZV19IHsgY29udGludWUgfQotIyAgICAgICAgICAgICAgICAgICAgIGlmIHtbcmVnZXhwICJyZWFkX25ldGxpc3QiICRsaW5lXX0geyBjb250aW51ZSB9Ci0jICAgICAgICAgICAgICAgICAgICAgaWYge1tyZWdleHAgInJlYWRfcGh5c2ljYWwiICRsaW5lXX0geyBjb250aW51ZSB9Ci0jICAgICAgICAgICAgICAgICAgICAgaWYge1tyZWdleHAgImluaXRfZGVzaWduIiAkbGluZV19IHsgY29udGludWUgfQotICAgICAgICAgICAgICAgICAgICAgaWYge1tyZWdleHAgInJlYWRfbW1tYyIgJGxpbmVdfSB7IHJlZ3N1YiByZWFkX21tbWMgJGxpbmUgIiNyZWFkX21tbWMiIGxpbmUgfQotICAgICAgICAgICAgICAgICAgICAgaWYge1tyZWdleHAgInJlYWRfbmV0bGlzdCIgJGxpbmVdfSB7IHJlZ3N1YiByZWFkX25ldGxpc3QgJGxpbmUgIiNyZWFkX25ldGxpc3QiIGxpbmUgfQotICAgICAgICAgICAgICAgICAgICAgaWYge1tyZWdleHAgInJlYWRfcGh5c2ljYWwiICRsaW5lXX0geyByZWdzdWIgcmVhZF9waHlzaWNhbCAkbGluZSAiI3JlYWRfcGh5c2ljYWwiIGxpbmUgfQotICAgICAgICAgICAgICAgICAgICAgaWYge1tyZWdleHAgImluaXRfZGVzaWduIiAkbGluZV19IHsgcmVnc3ViIGluaXRfZGVzaWduICRsaW5lICIjaW5pdF9kZXNpZ24iIGxpbmUgfQotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgaWYgeyRzdGVwICE9ICJpbml0In0gewotICAgICAgICAgICAgICAgICAgICAgaWYge1tyZWdleHAgInJlc3RvcmVfZGVzaWduIiAkbGluZV19IHsgc2V0IHNraXAgNzsgY29udGludWUgfQotICAgICAgICAgICAgICAgICAgICAgaWYgeyEoKCRzdGVwID09ICJjdHMiKSAmJiAkdmFycyhlbmFibGVfZmxleGlsbSkpfSB7IAotICAgICAgICAgICAgICAgICAgICAgICAgaWYge1tyZWdleHAgInJlYWRfZGIiICRsaW5lXX0geyBjb250aW51ZSB9Ci0gICAgICAgICAgICAgICAgICAgICB9ICBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIHtbcmVnZXhwICJyZWFkX2RiIiAkbGluZV19IHsKLSMgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0IGxpbmUgW3N0cmluZyB0cmltIFtsaW5kZXggJGxpbmUgMl1dCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0IGxpbmUgInJlYWRfZGIgXFtmaWxlIHRhaWwgXFtwd2RcXVxdX3Bvc3RfZWNvLmVuY1xuIgotICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgaWYge1tyZWdleHAgIndyaXRlX2RiICIgJGxpbmVdfSB7IGNvbnRpbnVlIH0KLSAgICAgICAgICAgICAgICAgIGlmIHtbcmVnZXhwICJtZXRyaWMiICRsaW5lXX0geyBjb250aW51ZSB9Ci0gICAgICAgICAgICAgICAgICBpZiB7W3JlZ2V4cCAic25hcHNob3QiICRsaW5lXX0geyBjb250aW51ZSB9Ci0gICAgICAgICAgICAgICAgICBpZiB7W3JlZ2V4cCAicmVwb3J0X21ldHJpYyIgJGxpbmVdfSB7IGNvbnRpbnVlIH0KLSAgICAgICAgICAgICAgICAgIGlmIHskbGluZSA9PSAiIn0geyBjb250aW51ZSB9Ci0jaWYgeyRzdGVwID09ICJpbml0In0geyBwdXRzICRsaW5lIH0KLSAgICAgICAgICAgICAgICAgIGFwcGVuZCB2YXJzKGZsb3dfc3RlcHMpICJcdCRsaW5lXG4iCi0gICAgICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoaHN0ZXBzKV0gJiYgKFtsc2VhcmNoICR2YXJzKGhzdGVwcykgJHN0ZXBdICE9IC0xKX0gewotICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIHZhcnMoZmxvd19zdGVwcyxoaWVyKSAiXHQkbGluZVxuIgotICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCB2YXJzKGZsb3dfc3RlcHMsZmxhdCkgIlx0JGxpbmVcbiIKLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIGFwcGVuZCB2YXJzKGZsb3dfc3RlcHMpICJcfVxuIgotICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGhzdGVwcyldICYmIChbbHNlYXJjaCAkdmFycyhoc3RlcHMpICRzdGVwXSAhPSAtMSl9IHsKLSAgICAgICAgICAgICAgICAgIGlmIHskc3RlcCA9PSAicGFydGl0aW9uIn0gewotICAgICAgICAgICAgICAgICAgICAgZm9yZWFjaCBwICR2YXJzKHBhcnRpdGlvbl9saXN0KSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgdmFycyhmbG93X3N0ZXBzLGhpZXIpICJcblx0c2NoZWR1bGVfZmxvdyAtZmxvdyBibG9jayAtZGlyZWN0b3J5ICR2YXJzKHBhcnRpdGlvbl9kaXIpLyRwXG4iCi0gICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICBpZiB7JHN0ZXAgPT0gImFzc2VtYmxlX2ZsZXhpbG0ifSB7Ci0gICAgICAgICAgICAgICAgICAgICBmb3JlYWNoIHAgJHZhcnMocGFydGl0aW9uX2xpc3QpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCB2YXJzKGZsb3dfc3RlcHMsaGllcikgIlxuXHRzY2hlZHVsZV9mbG93IC1mbG93IGJsb2NrIC1kaXJlY3RvcnkgJHZhcnMocGFydGl0aW9uX2RpcilfUFJFQ1RTLyRwXG4iCi0gICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICBpZiB7KCRzdGVwID09ICJhc3NlbWJsZSIpIHx8ICgkc3RlcCA9PSAicGFydGl0aW9uIil9IHsKLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCB2YXJzKGZsb3dfc3RlcHMsaGllcikgIlxuXH0gXG4iCi0gICAgICAgICAgICAgICAgICB9IGVsc2UgeyAKLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCB2YXJzKGZsb3dfc3RlcHMsaGllcikgIlxuXH1cbiIKLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICBpZiB7KFtmaWxlIHRhaWwgW2ZpbGUgZGlybmFtZSBbcHdkXV1dID09ICIkdmFycyhwYXJ0aXRpb25fZGlyKSIpfSB7Ci0gICAgICAgICAgICAgICAgICAgICBpZiB7JHN0ZXAgPT0gInNpZ25vZmYifSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiB7W2xzZWFyY2ggJHZhcnMocGFydGl0aW9uX2xpc3QpICR2YXJzKGRlc2lnbildID09IC0xfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgdmFycyhmbG93X3N0ZXBzLGZsYXQpICJcblx0c2NoZWR1bGVfZmxvdyAtZmxvdyBmaW5hbF9hc3NlbWJseSAtZGlyZWN0b3J5IC4uLy4uIC1ub19kYlxuIgotICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIHskdmFycyhlbmFibGVfZmxleGlsbSl9IHsKLSMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgdmFycyhmbG93X3N0ZXBzLGZsYXQpICJcblx0c2NoZWR1bGVfZmxvdyAtZmxvdyB0b3AgLWRpcmVjdG9yeSAkdmFycyhwYXJ0aXRpb25fZGlyKV9QUkVDVFMvJHZhcnModG9wX2NlbGwpXG4iCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgdmFycyhmbG93X3N0ZXBzLGZsYXQpICJcblx0c2NoZWR1bGVfZmxvdyAtZmxvdyB0b3AgLWRpcmVjdG9yeSAuLi8kdmFycyh0b3BfY2VsbCkgLW5vX2RiIC1zeW5jXG4iCi0gICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotIyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCB2YXJzKGZsb3dfc3RlcHMsZmxhdCkgIlxuXHRzY2hlZHVsZV9mbG93IC1mbG93IHRvcCAtZGlyZWN0b3J5ICR2YXJzKHBhcnRpdGlvbl9kaXIpLyR2YXJzKHRvcF9jZWxsKVxuIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIHZhcnMoZmxvd19zdGVwcyxmbGF0KSAiXG5cdHNjaGVkdWxlX2Zsb3cgLWZsb3cgdG9wIC1kaXJlY3RvcnkgLi4vJHZhcnModG9wX2NlbGwpIC1ub19kYiAtc3luY1xuIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgaWYgeyRzdGVwID09ICJwcmVjdHMiICYmICR2YXJzKGVuYWJsZV9mbGV4aWxtKX0gewotICAgICAgICAgICAgICAgICAgICAgICAgaWYge1tsc2VhcmNoICR2YXJzKHBhcnRpdGlvbl9saXN0KSAkdmFycyhkZXNpZ24pXSA9PSAtMX0gewotICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIHZhcnMoZmxvd19zdGVwcyxmbGF0KSAiXG5cdHNjaGVkdWxlX2Zsb3cgLWZsb3cgaW50ZXJtZWRpYXRlX2Fzc2VtYmx5XG4iCi0gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIHZhcnMoZmxvd19zdGVwcyxmbGF0KSAiXG5cdHNjaGVkdWxlX2Zsb3cgLWZsb3cgdG9wIC1kaXJlY3RvcnkgJHZhcnMocGFydGl0aW9uX2RpcikvJHZhcnModG9wX2NlbGwpXG4iCi0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgaWYge1tyZWdleHAgc3luXyAkc3RlcF19IHsgCi0gICAgICAgICAgICAgICAgICAgICAgICBpZiB7JHZhcnMocmMpfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICBpZiB7JHZhcnMoZW5hYmxlX3JjcCkgJiYgKCRzdGVwID09ICJzeW5fcGxhY2UiKX0gewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIHZhcnMoZmxvd19zdGVwcyxmbGF0KSAiXG5cdHNjaGVkdWxlX2Zsb3cgLWZsb3cgaW5ub3Z1cyAtZGIgXCIkdmFycyhkYnNfZGlyKS9zeW5fcGxhY2Uvc3luX3BsYWNlLmVuY19zZXR1cC50Y2xcIlxuIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlaWYgeyEkdmFycyhlbmFibGVfcmNwKSAmJiAoJHZhcnMoc3RlcCkgPT0gInN5bl9pbmNyIil9IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCB2YXJzKGZsb3dfc3RlcHMsZmxhdCkgIlxuXHRzY2hlZHVsZV9mbG93IC1mbG93IGlubm92dXMgLWRiIFwiJHZhcnMoZGJzX2Rpcikvc3luX2luY3Ivc3luX2luY3IuZW5jX3NldHVwLnRjbFwiXG4iCi0gICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICB9IAotIyAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCB2YXJzKGZsb3dfc3RlcHMsZmxhdCkgIlx9XG4iCi0gICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotIyAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCB2YXJzKGZsb3dfc3RlcHMsZmxhdCkgIlx9XG4iCi0gICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgdmFycyhmbG93X3N0ZXBzLGZsYXQpICJcfVxuIgotICAgICAgICAgICAgICAgfSAgICAKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHNldCBhY3Rpb24gJHN0ZXAKLSAgICAgICAgIH0KLSAgICAgIH0KLQotICAgICAgIwotICAgICAgIyBDcmVhdGUgYSBmaWxlIHRoYXQgc2V0cyB1cCBhbGwgb2YgdGhlIHZhcmlhYmxlIHNldHRpbmdzIHRoYXQgd2VyZQotICAgICAgIyB1c2VkIGluIHRoaXMgaW52b2NhdGlvbgotICAgICAgIwotCi0gICAgICByZXR1cm4gJGFjdGlvbgotICAgfQotCi0gICBwcm9jIGluc2VydF9jb21tZW50cyB7fSB7Ci0KLSAgICAgIGdsb2JhbCB2YXJzCi0KLSAgICAgIHNldCBjb21tZW50cyAiIgotICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjXG4iCi0gICAgICBhcHBlbmQgY29tbWVudHMgIiMgVmFyaWFibGVzIGFmZmVjdGluZyB0aGlzIHN0ZXA6XG4iCi0gICAgICBhcHBlbmQgY29tbWVudHMgIiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiIKLSAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhjb21tZW50cyldfSB7Ci0gICAgICAgICBhcHBlbmQgY29tbWVudHMgJHZhcnMoY29tbWVudHMpCi0gICAgICAgICB1bnNldCB2YXJzKGNvbW1lbnRzKQotICAgICAgfSBlbHNlIHsKLSAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAgICBObyB2YXJpYWJsZXMgZGVmaW5lZCBmb3IgdGhpcyBzdGVwIC4uLlxuIgotICAgICAgfQotICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjXG4iCi0gICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnModWNvbW1lbnRzKV19IHsKLSAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyBBZGRpdGlvbmFsIHZhcmlhYmxlcyBmb3IgdGhpcyBzdGVwOlxuIgotICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWVudHMgJHZhcnModWNvbW1lbnRzKQotICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjXG4iCi0gICAgICAgICB1bnNldCB2YXJzKHVjb21tZW50cykKLSAgICAgIH0KLSAgICAgIHJldHVybiAkY29tbWVudHMKLSAgIH0KLQotICAgcHJvYyBydW5fYWxsIHt9IHsKLSAKLSAgICAgIGdsb2JhbCB2YXJzCi0KLSAgICAgIHNldCB0aW1lIDAKLSAgICAgIHNldCBpbmRleCAwCi0gICAgICBzZXQgc3RvcF9zdGVwIHNpZ25vZmYKLSAgICAgIHNldCB2YXJzKGNvZGVnZW4pIGZhbHNlCi0gICAgICBpZiB7IVtpbmZvIGV4aXN0cyB2YXJzKHZwYXRoKV19IHsgc2V0IHZhcnModnBhdGgpIG1ha2UgfQotICAgICAgCi0gICAgICBmb3JlYWNoIHN0ZXAgJHZhcnMoc3RlcHMpIHsKLSAgICAgICAgIGlmIHtbZmlsZSBleGlzdHMgJHZhcnModnBhdGgpLyRzdGVwXX0gewotICAgICAgICAgICAgaWYge1tmaWxlIG10aW1lICR2YXJzKHZwYXRoKS8kc3RlcF0gPiAkdGltZX0gewotICAgICAgICAgICAgICAgaWYge1tsaW5kZXggJHZhcnMoc3RlcHMpICRpbmRleF0gPT0gInNpZ25vZmYifSB7Ci0gICAgICAgICAgICAgICAgICBwdXRzICI8RkY+IFNURVAgc2lnbm9mZiBDT01QTEVURSAuLi4gTk9USElORyBUTyBETyIKLSAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICBzZXQgc3RhcnRfc3RlcCBbbGluZGV4ICR2YXJzKHN0ZXBzKSBbZXhwciAkaW5kZXggKyAxXV0KLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBzZXQgc3RhcnRfc3RlcCAkc3RlcAotICAgICAgICAgICAgYnJlYWsKLSAgICAgICAgIH0KLSAgICAgICAgIGluY3IgaW5kZXgKLSAgICAgIH0KLSAgICAgIAotICAgICAgcHV0cyAiPEZGPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIKLSAgICAgIGlmIHskc3RhcnRfc3RlcCA9PSAkc3RvcF9zdGVwfSB7Ci0gICAgICAgICBwdXRzICI8RkY+IFJVTk5JTkcgU1RFUCAkc3RhcnRfc3RlcCAuLi4iCi0gICAgICB9IGVsc2UgewotICAgICAgICAgcHV0cyAiPEZGPiBSVU5OSU5HIFNURVAgJHN0YXJ0X3N0ZXAgdGhyb3VnaCAkc3RvcF9zdGVwIC4uLiIKLSAgICAgIH0KLSAgICAgIHB1dHMgIjxGRj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iCi0gICAgICBzbGVlcCA1Ci0gICAgICAKLSAgICAgICMKLSAgICAgICMgRW11bGF0ZSB0aGUgZnVuY3Rpb25hbGl0eSBvZiB0aGUgIm1ha2UiIHByb2dyYW0uICBJZiBhIGZpbGUgZG9lc24ndCBleGlzdCwKLSAgICAgICMgb3IgaWYgaXQncyBwcmVkZWNlc3NvciBzdGVwIGhhcyBleGVjdXRlZCBtb3JlIHJlY2VudGx5LCBydW4gdGhlIGN1cnJlbnQKLSAgICAgICMgc3RlcCBhbmQgdXBkYXRlIHRoZSB0aW1lL2RhdGUgc3RhbXBzIG9mIHRoZSBmaWxlcyB3ZSB0cmFjayBwcm9ncmVzcyB3aXRoCi0gICAgICAjCi0gICAgICAKLSAgICAgIHNldCB2YXJzKHN0b3Bfc3RlcCkgJHN0b3Bfc3RlcAotICAgICAgCi0gICAgICBzZXQgbGFzdF9zdGVwICIiCi0gICAgICBzZXQgdmFycyhyZXN0b3JlX2Rlc2lnbikgMQotICAgICAgaWYgeyR2YXJzKGVuYWJsZV9xb3JfY2hlY2spfSB7Ci0gICAgICAgICBzZXQgY2hlY2tfcW9yICR2YXJzKHNjcmlwdF9kaXIpL2NoZWNrX3Fvci50Y2wKLSAgICAgIH0KLSAgICAgIGV4ZWMgbWtkaXIgLXAgbWFrZQotICAgICAgZm9yZWFjaCBzdGVwICR2YXJzKHN0ZXBzKSB7Ci0gICAgICAgICBzZXQgdmFycyhzdGVwKSAkc3RlcAotICAgICAgICAgcHV0cyAiPEZGPiBTVEVQICR2YXJzKHN0ZXApIC4uLiIKLSAgICAgICAgIHNldCB0aGlzX3NlbWFwaG9yZSAiJHZhcnModnBhdGgpLyRzdGVwIgotICAgICAgICAgc2V0IGxhc3Rfc2VtYXBob3JlICIkdmFycyh2cGF0aCkvJGxhc3Rfc3RlcCIKLSAgICAgIAotICAgICAgICAgc2V0IHJ1bl9zdGVwIGZhbHNlCi0gICAgICAgICBpZiB7IVtmaWxlIGV4aXN0cyAkdGhpc19zZW1hcGhvcmVdfSB7Ci0gICAgICAgICAgICBzZXQgcnVuX3N0ZXAgdHJ1ZQotICAgICAgICAgfSBlbHNlaWYgeyRsYXN0X3N0ZXAgIT0gIiJ9IHsKLSAgICAgICAgICAgIGZpbGUgc3RhdCAkdGhpc19zZW1hcGhvcmUgdGhpc19zdGF0Ci0gICAgICAgICAgICBmaWxlIHN0YXQgJGxhc3Rfc2VtYXBob3JlIGxhc3Rfc3RhdAotICAgICAgICAgICAgaWYgeyR0aGlzX3N0YXQobXRpbWUpIDwgJGxhc3Rfc3RhdChtdGltZSl9IHsKLSAgICAgICAgICAgICAgIHNldCBydW5fc3RlcCB0cnVlCi0gICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0gICAgICAKLSAgICAgICAgICMKLSAgICAgICAgICMgQ2hlY2sgdGhlIHF1YWxpdHkgb2YgcmVzdWx0cyBmcm9tIHRoZSBsYXN0IHN0ZXAuICBJZiB0aGUgcmVzdWx0cyBhcmVuJ3QKLSAgICAgICAgICMgYXMgZXhwZWN0ZWQsIGRvbid0IHByb2NlZWQgdG8gdGhlIG5leHQgc3RlcAotICAgICAgICAgIwotICAgICAgICAgaWYgeyR2YXJzKGVuYWJsZV9xb3JfY2hlY2spfSB7Ci0gICAgICAgICAgICBpZiB7JHN0ZXAgIT0gImluaXQifSB7Ci0gICAgICAgICAgICAgICBzZXQgcW9yIFtjYXRjaCB7ZXhlYyAkY2hlY2tfcW9yICRsYXN0X3NlbWFwaG9yZX0gbXNnXQotICAgICAgICAgICAgICAgaWYgeyRxb3J9IHsKLSAgICAgICAgICAgICAgICAgIHB1dHMgIjxGRj4gRVJST1I6IFFPUiBSRVNVTFQgQ0hFQ0sgSU5ESUNBVEVTIEEgUFJPQkxFTSBJTiBTVEVQICRsYXN0X3N0ZXAiCi0gICAgICAgICAgICAgICAgICBleGl0IC0xMTEKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0KLSAgICAgIAotICAgICAgICAgc2V0IGxhc3Rfc3RlcCAkc3RlcAotICAgICAgICAgaWYgeyEkcnVuX3N0ZXB9IHsKLSAgICAgICAgICAgIGNvbnRpbnVlCi0gICAgICAgICB9Ci0gICAgICAKLSAgICAgICAgICMKLSAgICAgICAgICMgU291cmNlIHRoZSBjb250cm9sIGZpbGUgdGhhdCBydW5zIHRoZSBzdGVwLiAgSWYgaXQgaGFkIGFuIGVycm9yLCBleGl0Ci0gICAgICAgICAjIGltbWVkaWF0ZWx5LiAgT3RoZXJ3aXNlLCB1cGRhdGUgdGhlIHRpbWUvZGF0ZSBzdGFtcCBvZiB0aGUgY29ycmVzcG9uZGluZwotICAgICAgICAgIwotICAgICAgICAgIwotICAgICAgCi0gICAgICAgICBpZiB7W2NhdGNoIHtGRl9OT1ZVUzo6cnVuXyRzdGVwfSBtZXNzYWdlXX0gewotICAgICAgICAgICAgcHV0cyAkbWVzc2FnZQotICAgICAgICAgICAgZXhpdCAtMTExCi0gICAgICAgICB9Ci0gICAgICAgICBzZXQgdmFycyhyZXN0b3JlX2Rlc2lnbikgMAotICAgICAgCi0gICAgICAgICAjCi0gICAgICAgICAjIElmIHRoZXJlIGlzIGEgUU9SIGNoZWNrIGZpbGUgZm9yIHRoaXMgc3RlcCwgZXhlY3V0ZSBpdCBhbmQgcGxhY2UgdGhlCi0gICAgICAgICAjIHJlc3VsdCBpbnRvIHRoZSBtYWtlIGZpbGUuICBPdGhlcndpc2UganVzdCB0b3VjaCB0aGUgZmlsZQotICAgICAgICAgIwotICAgICAgCi0gICAgICAgICBpZiB7JHZhcnMoZW5hYmxlX3Fvcl9jaGVjayl9IHsKLSAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkc3RlcCxxb3JfdGNsXX0gewotICAgICAgICAgICAgICAgc2V0IHFvcl9maWxlICR2YXJzKCRzdGVwLHFvcl90Y2wpCi0gICAgICAgICAgICAgICBpZiB7W2ZpbGUgZXhpc3RzICRxb3JfZmlsZV19IHsKLSAgICAgICAgICAgICAgICAgIHNldCBxb3IgW2NhdGNoIHtleGVjICRxb3JfZmlsZX0gbXNnXQotICAgICAgICAgICAgICAgICAgc2V0IG1ha2VfZmlsZSBbb3BlbiAkdGhpc19zZW1hcGhvcmUgd10KLSAgICAgICAgICAgICAgICAgIHB1dHMgJG1ha2VfZmlsZSAiJHFvciIKLSAgICAgICAgICAgICAgICAgIGNsb3NlICRtYWtlX2ZpbGUKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0KLSAgICAgICAgIGV4ZWMgL2Jpbi90b3VjaCAkdGhpc19zZW1hcGhvcmUKLSAgICAgIAotICAgICAgICAgaWYgeyRzdGVwID09ICRzdG9wX3N0ZXB9IHsKLSAgICAgICAgICAgIHB1dHMgIjxGRj4gRG9uZSIgCi0gICAgICAgICB9Ci0gICAgICB9Ci0gICB9Ci0KLSAgIHByb2MgbG9hZF9wb3dlcl9pbnRlbnQge30gewotCi0gICAgICBnbG9iYWwgdmFycwotCi0gICAgICBzZXQgY29tbWFuZHMgIiIKLQotICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGNwZl9maWxlKV19IHsKLSAgICAgICAgIGlmIHtbZmlsZSBleHRlbnNpb24gJHZhcnMoY3BmX2ZpbGUpXSA9PSAiLmNwZmRiIn0gewotICAgICAgICAgICAgc2V0IGNvbW1hbmQgInJlYWRfcG93ZXJfaW50ZW50IC1tc3ZEQiAkdmFycyhjcGZfZmlsZSlcbiIKLSAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBzZXQgY29tbWFuZCAicmVhZF9wb3dlcl9pbnRlbnQgLWNwZiAkdmFycyhjcGZfZmlsZSlcbiIKLSAgICAgICAgIH0KLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxyZWFkX3Bvd2VyX2ludGVudCAkY29tbWFuZF0KLSAgICAgICAgIHNldCBjb21tYW5kICJjb21taXRfcG93ZXJfaW50ZW50IgotICAgICAgICAgaWYgeyR2YXJzKGNwZl9wb3dlcl9kb21haW4pfSB7Ci0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiIC1wb3dlcl9kb21haW4iCi0gICAgICAgICB9Ci0gICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoY3BmX2tlZXBfcm93cyldICYmICR2YXJzKGNwZl9rZWVwX3Jvd3MpfSB7Ci0gICAgICAgICAgIGlmIHskdmFycyhub3Z1cyl9IHsKLSAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAta2VlcF9yb3dzIgotICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiIC1rZWVwUm93cyIKLSAgICAgICAgICAgfQotICAgICAgICAgfQotICAgICAgICAgaWYgeyR2YXJzKGNwZl9pc29sYXRpb24pfSB7Ci0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiIC1pc29sYXRpb24iCi0gICAgICAgICB9Ci0gICAgICAgICBpZiB7JHZhcnMoY3BmX3N0YXRlX3JldGVudGlvbil9IHsKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgLXN0YXRlX3JldGVudGlvbiIKLSAgICAgICAgIH0KLSAgICAgICAgIGlmIHskdmFycyhjcGZfbGV2ZWxfc2hpZnRlcil9IHsKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgLWxldmVsX3NoaWZ0ZXIiCi0gICAgICAgICB9Ci0gICAgICAgICBpZiB7JHZhcnMoY3BmX3Bvd2VyX3N3aXRjaCl9IHsKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgLXBvd2VyX3N3aXRjaCIKLSAgICAgICAgIH0KLSAgICAgICAgIGFwcGVuZCBjb21tYW5kICJcbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxjb21taXRfcG93ZXJfaW50ZW50ICRjb21tYW5kXQotICAgICAgfSBlbHNlaWYge1tpbmZvIGV4aXN0cyB2YXJzKGllZWUxODAxX2ZpbGUpXX0gewotICAgICAgICAgc2V0IGNvbW1hbmQgInJlYWRfcG93ZXJfaW50ZW50ICR2YXJzKGllZWUxODAxX2ZpbGUpIC0xODAxXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCkscmVhZF9wb3dlcl9pbnRlbnQgJGNvbW1hbmRdCi0gICAgICAgICBzZXQgY29tbWFuZCAiY29tbWl0X3Bvd2VyX2ludGVudCIKLSAgICAgICAgIGlmIHskdmFycyhpZWVlMTgwMV9wb3dlcl9kb21haW4pfSB7Ci0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiIC1wb3dlcl9kb21haW4iCi0gICAgICAgICB9Ci0gICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoaWVlZTE4MDFfa2VlcF9yb3dzKV0gJiYgJHZhcnMoaWVlZTE4MDFfa2VlcF9yb3dzKX0gewotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAta2VlcFJvd3MiCi0gICAgICAgICB9Ci0gICAgICAgICBhcHBlbmQgY29tbWFuZCAiXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksY29tbWl0X3Bvd2VyX2ludGVudCAkY29tbWFuZF0KLSAgICAgIH0KLSAgICAgIHJldHVybiAkY29tbWFuZHMKLSAgIH0KLQotICAgcHJvYyBkdW1wX25vdnVzX2F0dHJpYnV0ZXMge30gewotCi0gICAgICBnbG9iYWwgdmFycwotCi0gICAgICBzZXQgbWFwKGFjdGl2aXR5X2ZpbGVfZm9ybWF0KSAiIyByZWFkX2FjdGl2aXR5X2ZpbGUgPGZpbGU+IC1mb3JtYXQiIAotICAgICAgc2V0IG1hcChhc3NpZ25fYnVmZmVyKSBkZWZ1bmN0Ci0gICAgICBzZXQgbWFwKGJ1ZGdldF9tb2RlKSAic2V0X2RiIGJ1ZGdldF92aXJ0dWFsX29wdF9lbmdpbmUiCi0gICAgICBzZXQgbWFwKGNhcHR1cmVfbWV0cmljcykgIiMgZW5hYmxlX21ldHJpY3MgLW9uIgotICAgICAgc2V0IG1hcChjY29wdF9lZmZvcnQpIGRlZnVuY3QKLSAgICAgIHNldCBtYXAoY2NvcHRfaW50ZWdyYXRpb24pIGRlZnVuY3QKLSAgICAgIHNldCBtYXAoY2RiX2ZpbGUpIGRlZnVuY3QKLSAgICAgIHNldCBtYXAoY2xrX2xlYWZfYm90dG9tX2xheWVyKSAiIyBjcmVhdGVfcm91dGVfdHlwZSAtbmFtZSBsZWFmIC1ib3R0b21fcHJlZmVycmVkX2xheWVyIDxsYXllcj4gLXRvcF9wcmVmZXJyZWRfbGF5ZXIgPGxheWVyPiAtc2hpZWxkX25ldCA8bmV0PiAtbm9uX2RlZmF1bHRfcnVsZSA8bmRyPiIKLSAgICAgIHNldCBtYXAoY2xrX2xlYWZfdG9wX2xheWVyKSAiIyBjcmVhdGVfcm91dGVfdHlwZSAtbmFtZSBsZWFmIC1ib3R0b21fcHJlZmVycmVkX2xheWVyIDxsYXllcj4gLXRvcF9wcmVmZXJyZWRfbGF5ZXIgPGxheWVyPiAtc2hpZWxkX25ldCA8bmV0PiAtbm9uX2RlZmF1bHRfcnVsZSA8bmRyPiIKLSAgICAgIHNldCBtYXAoY2xrX21heF9za2V3KSAic2V0X2RiIGN0c190YXJnZXRfc2tldyIKLSAgICAgIHNldCBtYXAoY2xrX21heF9zbGV3KSAic2V0X2RiIGN0c190YXJnZXRfbWF4X3RyYW5zaXRpb25fdGltZSIKLSAgICAgIHNldCBtYXAoY2xrX3RyZWVfc2hpZWxkX25ldCkgIiMgY3JlYXRlX3JvdXRlX3R5cGUgLW5hbWUgbGVhZiAtYm90dG9tX3ByZWZlcnJlZF9sYXllciA8bGF5ZXI+IC10b3BfcHJlZmVycmVkX2xheWVyIDxsYXllcj4gLXNoaWVsZF9uZXQgPG5ldD4gLW5vbl9kZWZhdWx0X3J1bGUgPG5kcj4iCi0gICAgICBzZXQgbWFwKGNsa190cmVlX3NoaWVsZF90aHJlc2gpICJzZXRfZGIgY3RzX3JvdXRpbmdfdG9wX21pbl9mYW5vdXQiCi0gICAgICBzZXQgbWFwKGNsa190cmVlX2JvdHRvbV9sYXllcikgIiMgY3JlYXRlX3JvdXRlX3R5cGUgLW5hbWUgdG9wIC1ib3R0b21fcHJlZmVycmVkX2xheWVyIDxsYXllcj4gLXRvcF9wcmVmZXJyZWRfbGF5ZXIgPGxheWVyPiAtc2hpZWxkX25ldCA8bmV0PiAtbm9uX2RlZmF1bHRfcnVsZSA8bmRyPiIKLSAgICAgIHNldCBtYXAoY2xrX3RyZWVfdG9wX2xheWVyKSAiIyBjcmVhdGVfcm91dGVfdHlwZSAtbmFtZSB0b3AgLWJvdHRvbV9wcmVmZXJyZWRfbGF5ZXIgPGxheWVyPiAtdG9wX3ByZWZlcnJlZF9sYXllciA8bGF5ZXI+IC1zaGllbGRfbmV0IDxuZXQ+IC1ub25fZGVmYXVsdF9ydWxlIDxuZHI+IgotICAgICAgc2V0IG1hcChjbG9ja19nYXRlX2F3YXJlKSAic2V0X2RiIHBsYWNlX2dsb2JhbF9jbG9ja19nYXRlX2F3YXJlIgotICAgICAgc2V0IG1hcChjb25nZXN0aW9uX2VmZm9ydCkgInNldF9kYiBwbGFjZV9nbG9iYWxfY29uZ19lZmZvcnQiCi0gICAgICBzZXQgbWFwKGNwZl9maWxlKSAiIyByZWFkX3Bvd2VyX2ludGVudCAtY3BmIDxmaWxlPiIKLSAgICAgIHNldCBtYXAoY3BmX2lzb2xhdGlvbikgZGVmdW5jdAotICAgICAgc2V0IG1hcChjcGZfa2VlcF9yb3dzKSBkZWZ1bmN0Ci0gICAgICBzZXQgbWFwKGNwZl9sZXZlbF9zaGlmdGVyKSBkZWZ1bmN0Ci0gICAgICBzZXQgbWFwKGNwZl9wb3dlcl9kb21haW4pIGRlZnVuY3QKLSAgICAgIHNldCBtYXAoY3BmX3Bvd2VyX3N3aXRjaCkgZGVmdW5jdAotICAgICAgc2V0IG1hcChjcGZfc3RhdGVfcmV0ZW50aW9uKSBkZWZ1bmN0Ci0gICAgICBzZXQgbWFwKGNwZl90aW1pbmcpIGRlZnVuY3QKLSAgICAgIHNldCBtYXAoY3B1c19wZXJfcmVtb3RlX2hvc3QpICJzZXRfbXVsdGlfY3B1X3VzYWdlIC1jcHVfcGVyX3JlbW90ZV9ob3N0IgotICAgICAgc2V0IG1hcChmbGV4bW9kZWxfYXNfcHRuKSAic2V0X2RiIHByb3RvX2NyZWF0ZV9wYXJ0aXRpb25fYXNfZmxleG1vZGVsIgotICAgICAgc2V0IG1hcChjcmVhdGVfZmxleGZpbGxlcl9ibG9ja2FnZSkgInNldF9kYiBwcm90b19mbGV4ZmlsbGVyX3JvdXRlX2Jsb2NrYWdlIgotICAgICAgc2V0IG1hcChjdHNfYnVmZmVyX2NlbGxzKSAic2V0X2RiIGN0c19idWZmZXJfY2VsbHMiCi0gICAgICBzZXQgbWFwKGN0c19lbmdpbmUpIG5vbmUKLSAgICAgIHNldCBtYXAoY3RzX2ludmVydGVyX2NlbGxzKSAic2V0X2RiIGN0c19pbnZlcnRlcl9jZWxscyIKLSAgICAgIHNldCBtYXAoY3RzX3VzZV9pbnZlcnRlcnMpICJzZXRfZGIgY3RzX3VzZV9pbnZlcnRlcnMiCi0gICAgICBzZXQgbWFwKGRic19kaXIpICJzZXRfZGIgZmxvd19kYXRhYmFzZV9kaXJlY3RvcnkiCi0gICAgICBzZXQgbWFwKGRlbHRhX2RlbGF5X3RocmVzaG9sZCkgInNldF9kYiBzaV9kZWxheV9kZWx0YV90aHJlc2hvbGQiCi0gICAgICBzZXQgbWFwKGVuYWJsZV9hb2N2KSAic2V0X2RiIHRpbWluZ19hbmFseXNpc19hb2N2IgotICAgICAgc2V0IG1hcChlbmFibGVfc29jdikgInNldF9kYiB0aW1pbmdfYW5hbHlzaXNfc29jdiIKLSAgICAgIHNldCBtYXAoZW5hYmxlX2NwcHIpICJzZXRfZGIgdGltaW5nX2FuYWx5c2lzX2NwcHIiCi0gICAgICBzZXQgbWFwKGVuYWJsZV9mbGV4aWxtKSAiIyBub25lIDogcG9zc2libGUgZnV0dXJlIGhpZXIgZmxvdyBvcHRpb24iCi0gICAgICBzZXQgbWFwKGVuYWJsZV9sdnMpICIjIG5vbmUgOiBwb3NzaWJsZSBmdXR1cmUgZmxvdyBvcHRpb24iCi0gICAgICBzZXQgbWFwKGVuYWJsZV9ucmdyKSBkZWZ1bmN0Ci0gICAgICBzZXQgbWFwKGVuYWJsZV9vY3YpICJzZXRfZGIgdGltaW5nX2FuYWx5c2lzX3R5cGUgb2N2IgotICAgICAgc2V0IG1hcChlbmFibGVfcGFjKSBkZWZ1bmN0Ci0gICAgICBzZXQgbWFwKGVuYWJsZV9wYW0pICIjIG5vbmUgOiBwb3NzaWJsZSBmdXR1cmUgZmxvdyBvcHRpb24iCi0gICAgICBzZXQgbWFwKGVuYWJsZV9xb3JfY2hlY2spIGRlZnVuY3QKLSAgICAgIHNldCBtYXAoZW5hYmxlX3JjcCkgIiMgbm9uZSA6IGN1cnJlbnQgZmxvdyB0ZW1wbGF0ZSBvcHRpb24iCi0gICAgICBzZXQgbWFwKGVuYWJsZV9zaV9hd2FyZSkgInNldF9kYiBkZWxheWNhbF9lbmFibGVfc2kiCi0gICAgICBzZXQgbWFwKGVuYWJsZV9zaWdub2ZmX2VjbykgIiMgbm9uZSA6IHBvc3NpYmxlIGZ1dHVyZSBmbG93IG9wdGlvbiIKLSAgICAgIHNldCBtYXAoZW5hYmxlX3NzKSBkZWZ1bmN0Ci0gICAgICBzZXQgbWFwKGZpbGxlcl9jZWxscykgInNldF9kYiBhZGRfZmlsbGVyc19jZWxscyIKLSAgICAgIHNldCBtYXAoZml4X2Zhbm91dF9sb2FkKSAic2V0X2RiIG9wdF9maXhfZmFub3V0X2xvYWQiCi0gICAgICBzZXQgbWFwKGZpeF9ob2xkX2lnbm9yZV9pb3MpICJzZXRfZGIgZml4X2hvbGRfaWdub3JlX3BhdGhfZ3JvdXBzIgotICAgICAgc2V0IG1hcChmaXhfbGl0aG8pICJzZXRfZGIgcm91dGVfZGVzaWduX2RldGFpbF9wb3N0X3JvdXRlX2xpdGhvX3JlcGFpciIKLSAgICAgIHNldCBtYXAoZmxvd19lZmZvcnQpICJzZXRfZGIgZGVzaWduX2Zsb3dfZWZmb3J0IgotICAgICAgc2V0IG1hcChhZGRfdHJhY2tzKSAiIyBhZGRfdHJhY2tzIgotICAgICAgc2V0IG1hcChncm91bmRfbmV0cykgInNldF9kYiBpbml0X2dyb3VuZF9uZXRzIgotICAgICAgc2V0IG1hcChoaWdoX3RpbWluZ19lZmZvcnQpIGRlZnVuY3QKLSAgICAgIHNldCBtYXAoaWVlZTE4MDFfZmlsZSkgIiMgcmVhZF9wb3dlcl9pbnRlbnQgLTE4MDEiCi0gICAgICBzZXQgbWFwKGllZWUxODAxX2lzb2xhdGlvbikgZGVmdW5jdAotICAgICAgc2V0IG1hcChpZWVlMTgwMV9rZWVwX3Jvd3MpIGRlZnVuY3QKLSAgICAgIHNldCBtYXAoaWVlZTE4MDFfbGV2ZWxfc2hpZnRlcikgZGVmdW5jdAotICAgICAgc2V0IG1hcChpZWVlMTgwMV9wb3dlcl9kb21haW4pIGRlZnVuY3QKLSAgICAgIHNldCBtYXAoaWVlZTE4MDFfcG93ZXJfc3dpdGNoKSBkZWZ1bmN0Ci0gICAgICBzZXQgbWFwKGllZWUxODAxX3N0YXRlX3JldGVudGlvbikgZGVmdW5jdAotICAgICAgc2V0IG1hcChpZWVlMTgwMV90aW1pbmcpIGRlZnVuY3QKLSAgICAgIHNldCBtYXAobGl0aG9fZHJpdmVuX3JvdXRpbmcpICJzZXRfZGIgcm91dGVfZGVzaWduX3dpdGhfbGl0aG9fZHJpdmVuIiAKLSAgICAgIHNldCBtYXAobG9jYWxfY3B1cykgInNldF9tdWx0aV9jcHVfdXNhZ2UgLWxvY2FsX2NwdSIKLSAgICAgIHNldCBtYXAobG9nX2RpcikgInNldF9kYiBmbG93X2xvZ19kaXJlY3RvcnkiCi0gICAgICBzZXQgbWFwKG1heF9yb3V0ZV9sYXllcikgInNldF9kYiByb3V0ZV90b3Bfcm91dGluZ19sYXllciIKLSAgICAgIHNldCBtYXAobXVsdGlfY3V0X2VmZm9ydCkgInNldF9kYiByb3V0ZV9kZXNpZ25fZGV0YWlsX3VzZV9tdWx0aV9jdXRfdmlhX2VmZm9ydCIKLSAgICAgIHNldCBtYXAob2FfYWJzdHJhY3RfbmFtZSkgInNldF9kYiBpbml0X29hX2Fic3RyYWN0X3ZpZXdzIgotICAgICAgc2V0IG1hcChvYV9sYXlvdXRfbmFtZSkgInNldF9kYiBpbml0X29hX2xheW91dF92aWV3cyIKLSAgICAgIHNldCBtYXAob2FfZGVzaWduX2NlbGwpICJzZXRfZGIgaW5pdF9vYV9kZXNpZ25fY2VsbCIKLSAgICAgIHNldCBtYXAob2FfZGVzaWduX2xpYikgInNldF9kYiBpbml0X29hX2Rlc2lnbl9saWIiCi0gICAgICBzZXQgbWFwKG9hX2Rlc2lnbl92aWV3KSAic2V0X2RiIGluaXRfb2FfZGVzaWduX3ZpZXciCi0gICAgICBzZXQgbWFwKHBsYWNlX2lvX3BpbnMpICJzZXRfZGIgcGxhY2VfZ2xvYmFsX3BsYWNlX2lvX3BpbnMiCi0gICAgICBzZXQgbWFwKHBvd2VyX2FuYWx5c2lzX3ZpZXcpICJzZXRfZGIgcG93ZXJfdmlldyIKLSAgICAgIHNldCBtYXAocG93ZXJfZWZmb3J0KSAic2V0X2RiIGRlc2lnbl9wb3dlcl9lZmZvcnQiCi0gICAgICBzZXQgbWFwKHBvd2VyX25ldHMpICJzZXRfZGIgaW5pdF9wb3dlcl9uZXRzIgotICAgICAgc2V0IG1hcChwb3N0cm91dGVfZXh0cmFjdGlvbl9lZmZvcnQpICJzZXRfZGIgZXh0cmFjdF9yY19lZmZvcnRfbGV2ZWwiCi0gICAgICBzZXQgbWFwKHByb2Nlc3MpICJzZXRfZGIgZGVzaWduX3Byb2Nlc3Nfbm9kZSIKLSAgICAgIHNldCBtYXAocmVtb3RlX2hvc3RzKSAic2V0X211bHRpX2NwdV91c2FnZSAtcmVtb3RlX2hvc3RzIgotICAgICAgc2V0IG1hcChyZXNpemVfc2hpZnRlcl9hbmRfaXNvX2luc3RzKSAic2V0X2RiIG9wdF9yZXNpemVfbGV2ZWxfc2hpZnRlcl9hbmRfaXNvX2luc3RzIgotICAgICAgc2V0IG1hcChyb3V0ZV9jbG9ja19uZXRzKSBub25lCi0gICAgICBzZXQgbWFwKHNpZ25vZmZfZXh0cmFjdGlvbl9lZmZvcnQpICJzZXRfZGIgZXh0cmFjdF9yY19lZmZvcnRfbGV2ZWwiCi0gICAgICBzZXQgbWFwKHNrZXdfYnVmZmVycykgInNldF9kYiBvcHRfY2xvY2tfc2tld19idWZmZXJfY2VsbHMiCi0gICAgICBzZXQgbWFwKHN1cGVyaG9zdHMpIGRlZnVuY3QKLSAgICAgIHNldCBtYXAoc3VwZXJ0aHJlYWRzKSBkZWZ1bmN0Ci0gICAgICBzZXQgbWFwKHRocmVhZHMpIGRlZnVuY3QKLSAgICAgIHNldCBtYXAodGllX2NlbGxzKSAic2V0X2RiIGFkZF90aWVvZmZzX2NlbGxzIgotICAgICAgc2V0IG1hcCh0aWVfY2VsbHMsbWF4X2Zhbm91dCkgInNldF9kYiBhZGRfdGllb2Zmc19tYXhfZGlzdGFuY2UiIAotICAgICAgc2V0IG1hcCh0b3BfY2VsbCkgIiMgXFtnZXRfZGIgZGVzaWducyAubmFtZVxdIgotICAgICAgc2V0IG1hcCh0cXVhbnR1c19maWxlKSBkZWZ1bmN0Ci0gICAgICBzZXQgbWFwKHVwZGF0ZV9pb19sYXRlbmN5KSAic2V0X2RiIGN0c191cGRhdGVfaW9fbGF0ZW5jeSIKLSAgICAgIHNldCBtYXAodXNlX3Byb3RvX25ldF9kZWxheV9tb2RlbCkgInNldF9kYiBwcm90b191c2VfdGltaW5nX25ldF9kZWxheV9tb2RlbCIKLSAgICAgCi0gICAgICBmaWxlIG1rZGlyICR2YXJzKHNjcmlwdF9kaXIpCi0gICAgICBmaWxlIGRlbGV0ZSAkdmFycyhzY3JpcHRfZGlyKS9hdHRyaWJ1dGVzLnRjbAotICAgICAgc2V0IG9wIFtvcGVuICR2YXJzKHNjcmlwdF9kaXIpLy5hdHRyaWJ1dGVzLnRjbCB3XQotICAgICAgCi0gICAgICBmb3JlYWNoIHZhciBbYXJyYXkgbmFtZXMgdmFyc10gewotICAgICAgICBpZiB7W2luZm8gZXhpc3RzIG1hcCgkdmFyKV19IHsKLSAgICAgICAgICAgaWYgeygkbWFwKCR2YXIpID09ICJub25lIikgfHwgKCR2YXJzKCR2YXIpID09ICIiKX0gewotICAgICAgICAgICAgICBjb250aW51ZSAKLSAgICAgICAgICAgfQotICAgICAgICAgICBpZiB7JG1hcCgkdmFyKSA9PSAiZGVmdW5jdCJ9IHsKLSMgICAgICAgICAgICAgIHB1dHMgJG9wICIjIHZhcnMoJHZhcikgaXMgJG1hcCgkdmFyKSIKLSAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgaWYge1tsbGVuZ3RoICR2YXJzKCR2YXIpXSA+IDF9IHsKLSAgICAgICAgICAgICAgICAgcHV0cyAkb3AgIiRtYXAoJHZhcikgXFtsaXN0ICR2YXJzKCR2YXIpXF0gOyAjICR2YXIgIgotICAgICAgICAgICAgICB9IGVsc2VpZiB7W3JlZ2V4cCAiXiMiICRtYXAoJHZhcildfSB7Ci0jICAgICAgICAgICAgICAgICBwdXRzICRvcCAiJG1hcCgkdmFyKSA7ICMgJHZhciAiCi0gICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgIGlmIHskdmFyID09ICJwcm9jZXNzIn0gewotICAgICAgICAgICAgICAgICAgICBzZXQgdmFycygkdmFyKSBbcmVnc3ViICJubSIgJHZhcnMocHJvY2VzcykgIiJdCi0gICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgaWYgeyR2YXIgPT0gImVuYWJsZV9vY3YifSB7Ci0gICAgICAgICAgICAgICAgICAgc2V0ICR2YXJzKCR2YXIpICIiCi0gICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgcHV0cyAkb3AgIiRtYXAoJHZhcikgJHZhcnMoJHZhcikgOyAjICR2YXIgIgotICAgICAgICAgICAgICB9Ci0gICAgICAgICAgIH0KLSAgICAgICAgfQotICAgICAgfQotICAgICAgCi0gICAgICBjbG9zZSAkb3AKLSAgICAgIAotICAgICAgZXhlYyBjYXQgJHZhcnMoc2NyaXB0X2RpcikvLmF0dHJpYnV0ZXMudGNsIHwgc29ydCA+ICR2YXJzKHNjcmlwdF9kaXIpL2F0dHJpYnV0ZXMudGNsCi0gICAgICBmaWxlIGRlbGV0ZSAkdmFycyhzY3JpcHRfZGlyKS8uYXR0cmlidXRlcy50Y2wKLQotICAgfQotCi0gICBwcm9jIGNvbnZlcnRfcGx1Z2lucyB7fSB7Ci0KLSAgICAgZ2xvYmFsIHZhcnMKLSAgICAgZ2xvYmFsIHdhcm5pbmdzCi0KLSAgICAgc2V0IGFuY2hvcihhbHdheXNfc291cmNlX3RjbCkgImJlZm9yZSBpbml0X2Zsb29ycGxhbiIKLSAgICAgc2V0IGFuY2hvcihmaW5hbF9hbHdheXNfc291cmNlX3RjbCkgImJlZm9yZSBibG9ja19maW5pc2giCi0gICAgIHNldCBhbmNob3IocHJlX2luaXRfdGNsKSAiYmVmb3JlIGluaXRfZGVzaWduIgotICAgICBzZXQgYW5jaG9yKHBvc3RfaW5pdF90Y2wpICJhZnRlciBhZGRfdHJhY2tzIgotICAgICBzZXQgYW5jaG9yKHByZV9wbGFjZV90Y2wpICJiZWZvcmUgcnVuX3BsYWNlX29wdCIKLSAgICAgc2V0IGFuY2hvcihwb3N0X3BsYWNlX3RjbCkgImFmdGVyIHJ1bl9wbGFjZV9vcHQiCi0gICAgIGlmIHtbbGluZGV4IFtzcGxpdCAkdmFycyh2ZXJzaW9uKSAiLiJdICAwXSA+IDE2fSB7Ci0gICAgICAgc2V0IGFuY2hvcihwcmVfY3RzX3RjbCkgImJlZm9yZSBhZGRfY2xvY2tfc3BlYyIKLSAgICAgICBzZXQgYW5jaG9yKHBvc3RfY3RzX3RjbCkgImFmdGVyIGFkZF9jbG9ja190cmVlIgotICAgICB9IGVsc2UgewotICAgICAgIHNldCBhbmNob3IocHJlX2N0c190Y2wpICJiZWZvcmUgYnVpbGRfY2xvY2tfdHJlZSIKLSAgICAgICBzZXQgYW5jaG9yKHBvc3RfY3RzX3RjbCkgImFmdGVyIGJ1aWxkX2Nsb2NrX3RyZWUiCi0gICAgIH0KLSAgICAgc2V0IGFuY2hvcihwcmVfcm91dGVfdGNsKSAiYmVmb3JlIHJ1bl9yb3V0ZSIKLSAgICAgc2V0IGFuY2hvcihwb3N0X3JvdXRlX3RjbCkgImFmdGVyIHJ1bl9yb3V0ZSIKLSAgICAgc2V0IGFuY2hvcihwcmVfcG9zdHJvdXRlX3RjbCkgImJlZm9yZSBydW5fb3B0X3Bvc3Ryb3V0ZSIKLSAgICAgc2V0IGFuY2hvcihwb3N0X3Bvc3Ryb3V0ZV90Y2wpICJhZnRlciBydW5fb3B0X3Bvc3Ryb3V0ZSIKLSAgICAgI3NldCBhbmNob3IocHJlX3NpZ25vZmZfdGNsKSAiYmVmb3JlIHJ1bl9zdGEiCi0gICAgICNzZXQgYW5jaG9yKHBvc3Rfc2lnbm9mZl90Y2wpICJhZnRlciBydW5fc3RhIgotCi0gICAgIHNldCBzdGVwKHByZV9pbml0X3RjbCkgImluaXQiCi0gICAgIHNldCBzdGVwKHBvc3RfaW5pdF90Y2wpICJpbml0IgotICAgICBzZXQgc3RlcChwcmVfcGxhY2VfdGNsKSAicGxhY2UiCi0gICAgIHNldCBzdGVwKHBvc3RfcGxhY2VfdGNsKSAicGxhY2UiCi0gICAgIHNldCBzdGVwKHByZV9jdHNfdGNsKSAiY3RzIgotICAgICBzZXQgc3RlcChwb3N0X2N0c190Y2wpICJjdHMiCi0gICAgIHNldCBzdGVwKHByZV9yb3V0ZV90Y2wpICJyb3V0ZSIKLSAgICAgc2V0IHN0ZXAocG9zdF9yb3V0ZV90Y2wpICJyb3V0ZSIKLSAgICAgc2V0IHN0ZXAocHJlX3Bvc3Ryb3V0ZV90Y2wpICJwb3N0cm91dGUiCi0gICAgIHNldCBzdGVwKHBvc3RfcG9zdHJvdXRlX3RjbCkgInBvc3Ryb3V0ZSIKLSAgICAgc2V0IHN0ZXAocHJlX3NpZ25vZmZfdGNsKSAic2lnbm9mZiIKLSAgICAgc2V0IHN0ZXAocG9zdF9zaWdub2ZmX3RjbCkgInNpZ25vZmYiCi0gIAotICAgICBzZXQgY2YgW29wZW4gY29udmVydF9wbHVnaW5zLnRjbCB3XQotCi0gICAgICNmaWxlIGRlbGV0ZSAtZm9yY2UgLmZmdG1wCi0gICAgICNmaWxlIG1rZGlyIC5mZnRtcAotCi0gICAgIHNldCBuZXdfcGx1Z3MgW2xpc3RdIAotICAgICBzZXQgb2xkX3BsdWdzIFtsaXN0XQotICAgICBmb3JlYWNoIHBsdWcgJHZhcnMocGx1Z2luc19kZWZpbmVkKSB7Ci0gICAgICAgaWYge1tmaWxlIGV4aXN0cyAkdmFycyhwbHVnX2RpcikvJHZhcnMoJHBsdWcpXX0geyAKLSAgICAgICAgICBzZXQgcGx1Z19maWxlIFtmaWxlIG5vcm1hbGl6ZSAkdmFycyhwbHVnX2RpcikvJHZhcnMoJHBsdWcpXQotICAgICAgICAgIGxhcHBlbmQgb2xkX3BsdWdzICIkcGx1ZyAkdmFycyhwbHVnX2RpcikvJHZhcnMoJHBsdWcpIgotICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgaWYge1tmaWxlIGV4aXN0cyAkdmFycygkcGx1ZyldfSB7Ci0gICAgICAgICAgICAgc2V0IHBsdWdfZmlsZSAkdmFycygkcGx1ZykKLSAgICAgICAgICAgICBsYXBwZW5kIG9sZF9wbHVncyAiJHBsdWcgJHZhcnMoJHBsdWcpIgotICAgICAgICAgIH0gZWxzZSB7IAotICAgICAgICAgICAgIGNvbnRpbnVlIAotICAgICAgICAgIH0KLSAgICAgICB9Ci0gICAgICAgI3B1dHMgJGNmICJjb252ZXJ0X2xlZ2FjeV90b19jb21tb25fdWkgJHBsdWdfZmlsZSAuZmZ0bXAvW2ZpbGUgdGFpbCAkcGx1Z19maWxlXSIKLSAgICAgICAjbGFwcGVuZCBuZXdfcGx1Z3MgIiRwbHVnIC5mZnRtcC9bZmlsZSB0YWlsICRwbHVnX2ZpbGVdIgotICAgICAgICNwdXRzICRjZiAiY29udmVydF9sZWdhY3lfdG9fY29tbW9uX3VpICRwbHVnX2ZpbGUgW2ZpbGUgZGlybmFtZSAkcGx1Z19maWxlXV9jdWkvW2ZpbGUgdGFpbCAkcGx1Z19maWxlXSIKLSAgICAgICBwdXRzICRjZiAiZmlsZSBta2RpciBjb252ZXJ0ZWRfcGx1Z2lucyIKLSAgICAgICBwdXRzICRjZiAiY29udmVydF9sZWdhY3lfdG9fY29tbW9uX3VpICRwbHVnX2ZpbGUgY29udmVydGVkX3BsdWdpbnMvW2ZpbGUgdGFpbCAkcGx1Z19maWxlXSIKLSAgICAgICBsYXBwZW5kIG5ld19wbHVncyAiJHBsdWcgY3VpLiRwbHVnX2ZpbGUiCi0gICAgIH0KLQotICAgICBwdXRzICRjZiAiZXhpdCIKLSAgICAgY2xvc2UgJGNmCi0KLSAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycyhjb252ZXJ0X3BsdWdpbnMpXSB8fCAoW2luZm8gZXhpc3RzIHZhcnMoY29udmVydF9wbHVnaW5zKV0gICYmICEkdmFycyhjb252ZXJ0X3BsdWdpbnMpKX0gewotIyAgICAgICBQdXRzICI8RkY+IENvbnZlcnRpbmcgW2xsZW5ndGggJHZhcnMocGx1Z2luc19kZWZpbmVkKV0gcGx1Z2lucyAuLi4iCi0jICAgICAgIGlmIHtbY2F0Y2gge2V2YWwgImV4ZWMgaW5ub3Z1cyAtbm93aW4gLW5vdnVzX3VpIC1maWxlcyAuY29udmVydF9wbHVnaW5zLnRjbCJ9XX0gewotIyAgICAgICAgICBwdXRzICI8RkY+IFdBUk5JTkc6IENhbm5vdCBmaW5kIElubm92dXMgaW4geW91ciBwYXRoIHNvIHBsdWdpbnMgd2lsbCBub3QgYmUgY29udmVydGVkIgotIyAgICAgICAgICBzZXQgd2FybmluZ3MoJHZhcnMod2FybmluZ19jb3VudCkpICJDYW5ub3QgZmluZCBJbm5vdnVzIGluIHlvdXIgcGF0aCBzbyBwbHVnaW5zIHdpbGwgbm90IGJlIGNvbnZlcnRlZCIKLSMgICAgICAgICAgaW5jciB2YXJzKHdhcm5pbmdfY291bnQpCi0jICAgICAgICAgIHJldHVybiAKLSMgICAgICAgfQotICAgICB9Ci0gICAgCi0gICAgIGZpbGUgbWtkaXIgJHZhcnMoc2NyaXB0X2RpcikKLSAgICAgc2V0IG9mIFtvcGVuICR2YXJzKHNjcmlwdF9kaXIpL3BsdWdfc3RlcHMudGNsIHddCi0KLSAgICAgc2V0IHBsdWdfZGljdCBbam9pbiAkbmV3X3BsdWdzXQotICAgICBzZXQgcGx1Z19kaWN0IFtqb2luICRvbGRfcGx1Z3NdCi0gICAgIGZvcmVhY2gga2V5IFtkaWN0IGtleXMgJHBsdWdfZGljdF0gewotICAgICAgICNwdXRzICIka2V5IC0+IFtkaWN0IGdldCAkcGx1Z19kaWN0ICRrZXldIgotICAgICAgIHNldCBpcCBbb3BlbiBbZGljdCBnZXQgJHBsdWdfZGljdCAka2V5XSByXQotICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhsZWdhY3lfcGx1Z2lucyldICYmICR2YXJzKGxlZ2FjeV9wbHVnaW5zKX0gewotICAgICAgICAgcHV0cyAkb2YgImNyZWF0ZV9mbG93X3N0ZXAgLW5hbWUgW3JlZ3N1YiAiX3RjbCIgJGtleSAiX3BsdWciXSAtbGVnYWN5IFx7IgotICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICBwdXRzICRvZiAiY3JlYXRlX2Zsb3dfc3RlcCAtbmFtZSBbcmVnc3ViICJfdGNsIiAka2V5ICJfcGx1ZyJdIFx7IgotICAgICAgIH0KLSAgICAgICBmb3JlYWNoIGZpbGUgJHZhcnMoY29uZmlnX2ZpbGVzKSB7Ci0gICAgICAgICAgcHV0cyAkb2YgInNvdXJjZSAkZmlsZSIgCi0gICAgICAgfQotICAgICAgIGlmIHtbaW5mbyBleGlzdHMgc3RlcCgka2V5KV19IHsKLSAgICAgICAgIHB1dHMgJG9mICJzZXQgdmFycyhzdGVwKSAkc3RlcCgka2V5KSIgCi0gICAgICAgfQotICAgICAgIHdoaWxlIHtbZ2V0cyAkaXAgbGluZV0+PTB9IHsKLSAgICAgICAgIHB1dHMgJG9mICIgICAgJGxpbmUiCi0gICAgICAgfQotICAgICAgIHB1dHMgJG9mICJcfSIKLSAgICAgICBpZiB7W2luZm8gZXhpc3RzIGFuY2hvcigka2V5KV19IHsKLSAgICAgICAgIHB1dHMgJG9mICJlZGl0X2Zsb3cgLWFwcGVuZCBmbG93X3N0ZXA6W3JlZ3N1YiAiX3RjbCIgJGtleSAiX3BsdWciXSAtW2xpbmRleCAkYW5jaG9yKCRrZXkpIDBdIGZsb3dfc3RlcDpbbGluZGV4ICRhbmNob3IoJGtleSkgMV0iCi0gICAgICAgfSAgZWxzZSB7Ci0jICAgICAgICAgcHV0cyAiPEZGPiBObyBhbmNob3IgZm91bmQgZm9yICRwbHVnIgotICAgICAgICAgc2V0IHdhcm5pbmdzKCR2YXJzKHdhcm5pbmdfY291bnQpKSAiTm8gYW5jaG9yIGZvdW5kIGZvciAka2V5IgotICAgICAgICAgaW5jciB2YXJzKHdhcm5pbmdfY291bnQpCi0gICAgICAgfQotICAgICAgIGNsb3NlICRpcAotICAgICB9Ci0gICAgIGNsb3NlICRvZgotICAgICBmaWxlIGRlbGV0ZSAtZm9yY2UgLmZmdG1wCi0gICAgIGlmIHtbZmlsZSBleGlzdHMgc2NyaXB0cy9mbG93X2NvbmZpZy50ZW1wbGF0ZV19IHsKLSAgICAgICBmaWxlIGNvcHkgLWZvcmNlIHNjcmlwdHMvZmxvd19jb25maWcudGVtcGxhdGUgc2NyaXB0cy9mbG93X2NvbmZpZy50Y2wKLSAgICAgfSAKLSAgICAgaWYge1tmaWxlIGV4aXN0cyAkdmFycyhzY3JpcHRfZGlyKS92aWV3X2RlZmluaXRpb24udGNsXX0gewotICAgICAgIGZpbGUgbWtkaXIgc2NyaXB0cwotICAgICAgIGZpbGUgY29weSAtZm9yY2UgJHZhcnMoc2NyaXB0X2Rpcikvdmlld19kZWZpbml0aW9uLnRjbCBzY3JpcHRzL21tbWNfY29uZmlnLnRjbAotICAgICB9IGVsc2UgIHsKLSAgICAgICAgIHNldCB3YXJuaW5ncygkdmFycyh3YXJuaW5nX2NvdW50KSkgIkZpbGUgJHZhcnMoc2NyaXB0X2Rpcikvdmlld19kZWZpbml0aW9uLnRjbCBub3QgZm91bmQiCi0gICAgICAgICBpbmNyIHZhcnMod2FybmluZ19jb3VudCkKLSAgICAgfQotIyAgICAgc2V0IG9wIFtvcGVuIHNjcmlwdHMvZmxvd19jb25maWcudGNsIGFdCi0jICAgICBwdXRzICRvcCAic291cmNlICR2YXJzKHNjcmlwdF9kaXIpL3BsdWdfc3RlcHMudGNsIgotIyAgICAgY2xvc2UgJG9wCi0gICB9Ci19Ci0KLW5hbWVzcGFjZSBldmFsIGZmX25vdnVzOjogewotICAgcHJvYyBydW5faW5pdCB7fSB7Ci0gICAgICB1cGxldmVsICMwIGV2YWwgW0ZGX05PVlVTOjpydW5faW5pdF0KLSAgIH0KLSAgIHByb2MgcnVuX3BsYWNlIHt9IHsKLSAgICAgIHVwbGV2ZWwgIzAgZXZhbCBbRkZfTk9WVVM6OnJ1bl9wbGFjZV0KLSAgIH0KLSAgIHByb2MgcnVuX3ByZWN0cyB7fSB7Ci0gICAgICB1cGxldmVsICMwIGV2YWwgW0ZGX05PVlVTOjpydW5fcHJlY3RzXQotICAgfQotICAgcHJvYyBydW5fY3RzIHt9IHsKLSAgICAgIHVwbGV2ZWwgIzAgZXZhbCBbRkZfTk9WVVM6OnJ1bl9jdHNdCi0gICB9Ci0gICBwcm9jIHJ1bl9wb3N0Y3RzIHt9IHsKLSAgICAgIHVwbGV2ZWwgIzAgZXZhbCBbRkZfTk9WVVM6OnJ1bl9wb3N0Y3RzXQotICAgfQotICAgcHJvYyBydW5fcG9zdGN0c19ob2xkIHt9IHsKLSAgICAgIHVwbGV2ZWwgIzAgZXZhbCBbRkZfTk9WVVM6OnJ1bl9wb3N0Y3RzX2hvbGRdCi0gICB9Ci0gICBwcm9jIHJ1bl9yb3V0ZSB7fSB7Ci0gICAgICB1cGxldmVsICMwIGV2YWwgW0ZGX05PVlVTOjpydW5fcm91dGVdCi0gICB9Ci0gICBwcm9jIHJ1bl9wb3N0cm91dGUge30gewotICAgICAgdXBsZXZlbCAjMCBldmFsIFtGRl9OT1ZVUzo6cnVuX3Bvc3Ryb3V0ZV0KLSAgIH0KLSAgIHByb2MgcnVuX3Bvc3Ryb3V0ZV9ob2xkIHt9IHsKLSAgICAgIHVwbGV2ZWwgIzAgZXZhbCBbRkZfTk9WVVM6OnJ1bl9wb3N0cm91dGVfaG9sZF0KLSAgIH0KLSAgIHByb2MgcnVuX3Bvc3Ryb3V0ZV9zaV9ob2xkIHt9IHsKLSAgICAgIHVwbGV2ZWwgIzAgZXZhbCBbRkZfTk9WVVM6OnJ1bl9wb3N0cm91dGVfc2lfaG9sZF0KLSAgIH0KLSAgIHByb2MgcnVuX3Bvc3Ryb3V0ZV9zaSB7fSB7Ci0gICAgICB1cGxldmVsICMwIGV2YWwgW0ZGX05PVlVTOjpydW5fcG9zdHJvdXRlX3NpXQotICAgfQotICAgcHJvYyBydW5fc2lnbm9mZiB7fSB7Ci0gICAgICB1cGxldmVsICMwIGV2YWwgW0ZGX05PVlVTOjpydW5fc2lnbm9mZl0KLSAgIH0KLSAgIHByb2MgcnVuX2Fzc2VtYmxlIHt9IHsKLSAgICAgIHVwbGV2ZWwgIzAgZXZhbCBbRkZfTk9WVVM6OnJ1bl9hc3NlbWJsZV0KLSAgIH0KLSAgIHByb2MgcnVuX3JlYnVkZ2V0IHt9IHsKLSAgICAgIHVwbGV2ZWwgIzAgZXZhbCBbRkZfTk9WVVM6OnJ1bl9yZWJ1ZGdldF0KLSAgIH0KLSAgIHByb2MgcnVuX2ZsZXhpbG0ge30gewotICAgICAgdXBsZXZlbCAjMCBldmFsIFtGRl9OT1ZVUzo6cnVuX2ZsZXhpbG1dCi0gICB9Ci0gICBwcm9jIHJ1bl9hc3NlbWJsZV9mbGV4aWxtIHt9IHsKLSAgICAgIHVwbGV2ZWwgIzAgZXZhbCBbRkZfTk9WVVM6OnJ1bl9hc3NlbWJsZV9mbGV4aWxtXQotICAgfQotICAgcHJvYyBydW5fcGFydGl0aW9uIHt9IHsKLSAgICAgIHVwbGV2ZWwgIzAgZXZhbCBbRkZfTk9WVVM6OnJ1bl9wYXJ0aXRpb25dCi0gICB9Ci0gICBwcm9jIHJ1bl9sZWMge30gewotICAgICAgdXBsZXZlbCAjMCBldmFsIFtGRl9OT1ZVUzo6cnVuX2xlY10KLSAgIH0KLSAgIHByb2MgcnVuX2FsbCB7fSB7Ci0gICAgICB1cGxldmVsICMwIEZGX05PVlVTOjpydW5fYWxsCi0gICB9Ci19Ci0KLW5hbWVzcGFjZSBldmFsIEZGX0VESTo6IHsKLQotICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgIyBQcm9jZWR1cmUgdG8gc2VlZCBjZXJ0YWluIGZsb3cgdmFyaWFibGVzIHRvIGEga25vd24gZGVmYXVsdCB2YWx1ZSBhcyB3ZWxsCi0gICAjIGFzIGRhdGEgdmFyaWFibGVzIHJlcXVpcmVkIHRvIHNlZWQgdGhlIGdlbmVyaWMgY29uZmlndXJhdGlvbiBmaWxlCi0gICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICBwcm9jIHNlZWRfdmFyaWFibGVzIHt7Zm9yY2UgMH19IHsKLQotICAgICAgZ2xvYmFsIHZhcnMKLSAgICAgIGdsb2JhbCByZGFfZGVmYXVsdHMKLSAgICAgIGdsb2JhbCB1ZG0KLSAgICAgIGdsb2JhbCBlbnYKLSAgICAgIGdsb2JhbCBpbmZvcwotICAgICAgZ2xvYmFsIHdhcm5pbmdzCi0gICAgICBnbG9iYWwgZXJyb3JzCi0gICAgICBnbG9iYWwgZmFyZ3MgCi0gICAgICBnbG9iYWwgZGFyZ3MgCi0KLSAgICAgIGlmIHskZm9yY2V9IHsKLSAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhzZWVkKV19IHsKLSAgICAgICAgICAgIHVuc2V0IHZhcnMoc2VlZCkKLSAgICAgICAgIH0KLSAgICAgIH0KLQotICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycyhzZWVkKV19IHsKLQotICAgICAgICAgcHV0cyAiPEZGPiBTZWVkaW5nIHZhcmlhYmxlcyAuLi4iCi0KLSAgICAgICAgIGlmIHshW2luZm8gZXhpc3RzIHZhcnMod2FybmluZ19jb3VudCldfSB7Ci0gICAgICAgICAgICBzZXQgdmFycyh3YXJuaW5nX2NvdW50KSAwCi0gICAgICAgICB9Ci0gICAgICAgICBpZiB7IVtpbmZvIGV4aXN0cyB2YXJzKGVycm9yX2NvdW50KV19IHsKLSAgICAgICAgICAgIHNldCB2YXJzKGVycm9yX2NvdW50KSAwCi0gICAgICAgICB9Ci0gICAgICAgICBpZiB7IVtpbmZvIGV4aXN0cyB2YXJzKGluZm9fY291bnQpXX0gewotICAgICAgICAgICAgc2V0IHZhcnMoaW5mb19jb3VudCkgMAotICAgICAgICAgfQotCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAjIFNldCB2YXJzKHZlcnNpb24pIHRvICIxNy4xLjAiIGlmIG5vdCBkZWZpbmVkCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAgICBpZiB7IVtpbmZvIGV4aXN0cyB2YXJzKHZlcnNpb24pXX0gewotICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyBmYXJncyh2ZXJzaW9uKV19IHsKLSMgICAgICAgICAgICAgICBwdXRzICI8RkY+IElORk86IFZhcmlhYmxlIHZhcnModmVyc2lvbikgbm90IGRlZmluZWQgLSBzZXR0aW5nIHRvICckZmFyZ3ModmVyc2lvbiknIgotICAgICAgICAgICAgICAgc2V0IHZhcnModmVyc2lvbikgJGZhcmdzKHZlcnNpb24pCi0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgc2V0IHZhcnModmVyc2lvbikgJGRhcmdzKHZlcnNpb24pCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBzZXQgdmFycyhmbG93KSBtbW1jCi0gICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgaWYgeyhbbHNlYXJjaCAkRkY6OnZhbGlkX3ZlcnNpb25zICR2YXJzKHZlcnNpb24pXSA8IDApfSB7Ci0gICAgICAgICAgICAgICBzZXQgbXNnICJWZXJzaW9uICckdmFycyh2ZXJzaW9uKScgbm90IHN1cHBvcnRlZCAtIHNldHRpbmcgdG8gJzE3LjEuMCciCi0gICAgICAgICAgICAgICBwdXRzICI8RkY+IFdBUk5JTkc6ICRtc2ciCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgICRtc2dcbiIKLSAgICAgICAgICAgICAgIHNldCB3YXJuaW5ncygkdmFycyh3YXJuaW5nX2NvdW50KSkgJG1zZwotICAgICAgICAgICAgICAgaW5jciB2YXJzKHdhcm5pbmdfY291bnQpCi0gICAgICAgICAgICAgICBzZXQgdmFycyhmbG93KSBtbW1jCi0gICAgICAgICAgICAgICBzZXQgdmFycyh2ZXJzaW9uKSAiMTcuMS4wIgotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIGlmIHtbbGluZGV4IFtzcGxpdCAkdmFycyh2ZXJzaW9uKSAiLiJdICAwXSA+IDEwfSB7Ci0gICAgICAgICAgICAgICAgICBzZXQgdmFycyhmbG93KSBtbW1jCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0KLSAgICAgICAgIGlmIHskdmFycyhtb2RlKSA9PSAidG9wX2Rvd24ifSB7IHNldCB2YXJzKG1vZGUpIGhpZXIgfQotCi0gICAgICAgICBpZiB7W3JlZ2V4cCAiOS4xIiAkdmFycyh2ZXJzaW9uKV19IHsKLSAgICAgICAgICAgIHNldCB2YXJzKGVuYWJsZV9sZGIpIEZBTFNFCi0gICAgICAgICB9Ci0gICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoZW5hYmxlX2xkYildICYmICR2YXJzKGVuYWJsZV9sZGIpfSB7Ci0gICAgICAgICAgICBpZiB7IVtpbmZvIGV4aXN0cyB2YXJzKHJhbl9jb21waWxlKV19IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkZfRURJOjpydW5fY29tcGlsZV0gCi0gICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0KLQotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgIyBTZXQgdmFycyhmbG93KSB0byAibW1tYyIgaWYgbm90IGRlZmluZWQKLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICAgIGlmIHshW2luZm8gZXhpc3RzIHZhcnMoZmxvdyldfSB7Ci0gICAgICAgICAgICBwdXRzICI8RkY+IElORk86IFZhcmlhYmxlIHZhcnMoZmxvdykgbm90IGRlZmluZWQgLSBzZXR0aW5nIHRvICdtbW1jJyIKLSAgICAgICAgICAgIHNldCB2YXJzKGZsb3cpIG1tbWMKLSAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBpZiB7KFtsc2VhcmNoIFtsaXN0ICJkZWZhdWx0IiAicHJfbW1tYyIgIm1tbWMiXSAkdmFycyhmbG93KV0gPCAwKX0gewotICAgICAgICAgICAgICAgcHV0cyAiPEZGPiBXQVJOSU5HOiBGbG93IHR5cGUgJyR2YXJzKGZsb3cpJyBub3Qgc3VwcG9ydGVkIC0gc2V0dGluZyB0byAnbW1tYyciCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIFdBUk5JTkc6IEZsb3cgdHlwZSAnJHZhcnMoZmxvdyknIG5vdCBzdXBwb3J0ZWQgLSBzZXR0aW5nIHRvICdtbW1jJ1xuIgotICAgICAgICAgICAgICAgc2V0IHdhcm5pbmdzKCR2YXJzKHdhcm5pbmdfY291bnQpKSAiRmxvdyB0eXBlICckdmFycyhmbG93KScgbm90IHN1cHBvcnRlZCAtIHNldHRpbmcgdG8gJ21tbWMnIgotICAgICAgICAgICAgICAgaW5jciB2YXJzKHdhcm5pbmdfY291bnQpCi0gICAgICAgICAgICAgICBzZXQgdmFycyhmbG93KSBtbW1jCi0gICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0KLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICMgTWFrZSBzdXJlIGFsbCBzY2FsaW5nIGZhY3RvcnMgYXJlIGVpdGhlciBzZXQgb3IgYXJlIDEuMCAuLi4gYWxzbwotICAgICAgIyBzdXBwb3J0IGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5IG9mIG9sZCBuYW1lcwotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgICAgc2V0IG1hcChwcmVfcm91dGVfcmVzX2ZhY3RvcikgZGVmX3Jlc19mYWN0b3IKLSAgICAgICAgIHNldCBtYXAocHJlX3JvdXRlX2Nsa19yZXNfZmFjdG9yKSBkZWZfY2xrX3Jlc19mYWN0b3IKLSAgICAgICAgIHNldCBtYXAocHJlX3JvdXRlX2NhcF9mYWN0b3IpIGRlZl9jYXBfZmFjdG9yCi0gICAgICAgICBzZXQgbWFwKHByZV9yb3V0ZV9jbGtfY2FwX2ZhY3RvcikgZGVmX2Nsa19jYXBfZmFjdG9yCi0gICAgICAgICBzZXQgbWFwKHBvc3Rfcm91dGVfcmVzX2ZhY3RvcikgZGV0X3Jlc19mYWN0b3IKLSAgICAgICAgIHNldCBtYXAocG9zdF9yb3V0ZV9jbGtfcmVzX2ZhY3RvcikgZGV0X2Nsa19yZXNfZmFjdG9yCi0gICAgICAgICBzZXQgbWFwKHBvc3Rfcm91dGVfY2FwX2ZhY3RvcikgZGV0X2NhcF9mYWN0b3IKLSAgICAgICAgIHNldCBtYXAocG9zdF9yb3V0ZV9jbGtfY2FwX2ZhY3RvcikgZGV0X2Nsa19jYXBfZmFjdG9yCi0gICAgICAgICBzZXQgbWFwKHBvc3Rfcm91dGVfeGNhcF9mYWN0b3IpIHhjYXBfZmFjdG9yCi0KLSAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyh2aWV3X2RlZmluaXRpb25fdGNsKV0gJiYgIVtpbmZvIGV4aXN0cyB2YXJzKHBhcnNlZF92aWV3X2RlZmluaXRpb25fdGNsKV19IHsKLSAgICAgICAgICAgIGlmIHshW2ZpbGUgZXhpc3RzICR2YXJzKHZpZXdfZGVmaW5pdGlvbl90Y2wpXX0gewotICAgICAgICAgICAgICAgcHV0cyAiPEZGPiBFUlJPUjogVmlldyBkZWZpbml0aW9uIGZpbGUgJHZhcnModmlld19kZWZpbml0aW9uX3RjbCkgZG9lcyBub3QgZXhpc3QgLi4uIGNhbm5vdCBjb250aW51ZSIKLSAgICAgICAgICAgICAgIGV4aXQKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHNvdXJjZSAkdmFycyhzY3JpcHRfcGF0aCkvRVRDL0lOTk9WVVMvb3ZlcmxheS50Y2wKLSAgICAgICAgICAgIHB1dHMgIjxGRj4gUGFyc2luZyB1c2VyIHZpZXcgZGVmaW5pdGlvbiBmaWxlIC4uLiIKLSAgICAgICAgICAgIHNldCByYyBbY2F0Y2gge3NvdXJjZSAkdmFycyh2aWV3X2RlZmluaXRpb25fdGNsKX1dCi0jICAgICAgICAgICAgcHV0cyAiLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIKLSAgICAgICAgICAgIGZvcmVhY2ggdmFyICJsaWJyYXJ5X3NldHMgcmNfY29ybmVycyBkZWxheV9jb3JuZXJzIHNldHVwX2FuYWx5c2lzX3ZpZXdzIGhvbGRfYW5hbHlzaXNfdmlld3MgcG93ZXJfZG9tYWlucyIgewotICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJHZhcildfSB7Ci0gICAgICAgICAgICAgICAgc2V0IGluZm9zKCR2YXJzKGluZm9fY291bnQpKSAiVmFyaWFibGUgdmFycygkdmFyKSBoYXMgYmVlbiBzZXQgdG8gXCIkdmFycygkdmFyKVwiIgotICAgICAgICAgICAgICAgIGluY3IgdmFycyhpbmZvX2NvdW50KQotICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0jICAgICAgICAgICAgcHV0cyAkcmMKLSMgICAgICAgICAgICBwdXRzICItLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIgotICAgICAgICAgICAgc2V0IHZhcnMocGFyc2VkX3ZpZXdfZGVmaW5pdGlvbl90Y2wpIHRydWUKLSAgICAgICAgIH0KLQotIyAgICAgICAgIGlmIHshW2luZm8gZXhpc3RzIHZhcnModmlld19kZWZpbml0aW9uX3RjbCldfSB7Ci0KLSAgICAgICAgICAgIGZvcmVhY2ggcmNfY29ybmVyICR2YXJzKHJjX2Nvcm5lcnMpIHsKLSAgICAgICAgICAgICAgIGZvcmVhY2ggb3B0aW9uICJwcmVfcm91dGVfcmVzX2ZhY3RvciBwcmVfcm91dGVfY2xrX3Jlc19mYWN0b3IgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc3Rfcm91dGVfcmVzX2ZhY3RvciBwb3N0X3JvdXRlX2Nsa19yZXNfZmFjdG9yIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmVfcm91dGVfY2FwX2ZhY3RvciBwcmVfcm91dGVfY2xrX2NhcF9mYWN0b3IgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc3Rfcm91dGVfY2FwX2ZhY3RvciBwb3N0X3JvdXRlX2Nsa19jYXBfZmFjdG9yIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3N0X3JvdXRlX3hjYXBfZmFjdG9yIiB7Ci0gICAgICAgICAgICAgICAgICBpZiB7IVtpbmZvIGV4aXN0cyB2YXJzKCRyY19jb3JuZXIsJG9wdGlvbildICYmIFtpbmZvIGV4aXN0cyB2YXJzKCRyY19jb3JuZXIsJG1hcCgkb3B0aW9uKSldfSB7Ci0gICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIElORk86IFZhcmlhYmxlICRtYXAoJG9wdGlvbikgaGFzIGJlZW4gY2hhbmdlZCB0byAkb3B0aW9uIC4uLiBwbGVhc2UgdXBkYXRlXG4iCi0gICAgICAgICAgICAgICAgICAgICBzZXQgaW5mb3MoJHZhcnMoaW5mb19jb3VudCkpICJWYXJpYWJsZSAkbWFwKCRvcHRpb24pIGhhcyBiZWVuIGNoYW5nZWQgdG8gJG9wdGlvbiAuLi4gcGxlYXNlIHVwZGF0ZSIKLSAgICAgICAgICAgICAgICAgICAgIGluY3IgdmFycyhpbmZvX2NvdW50KQotICAgICAgICAgICAgICAgICAgICAgc2V0IHZhcnMoJHJjX2Nvcm5lciwkb3B0aW9uKSAkdmFycygkcmNfY29ybmVyLCRtYXAoJG9wdGlvbikpCi0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAKLSAgICAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICAgICMgVGhlIGZvbGxvd2luZyB3aWxsIGJlIHVzZWQgdG8gc2VlZCB0aGUgY29uZmlnIGZpbGUKLSAgICAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgIAotICAgICAgICAgICAgaWYgeyFbRkY6OmlzX2xwX2Zsb3ddfSB7Ci0KLSAgICAgICAgICAgICAgIHNldCBtYXhfbGlicyBbbGlzdF0KLSAgICAgICAgICAgICAgIHNldCBtaW5fbGlicyBbbGlzdF0KLSAgIAotICAgICAgICAgICAgICAgc2V0IGNvdW50IDAKLSAgIAotICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCR2YXJzKCR2YXJzKGRlZmF1bHRfc2V0dXBfdmlldyksZGVsYXlfY29ybmVyKSxsaWJyYXJ5X3NldCldfSB7Ci0gICAgICAgICAgICAgICAgICBmb3JlYWNoIGxpYiAkdmFycygkdmFycygkdmFycygkdmFycyhkZWZhdWx0X3NldHVwX3ZpZXcpLGRlbGF5X2Nvcm5lciksbGlicmFyeV9zZXQpLHRpbWluZykgewotICAgICAgICAgICAgICAgICAgICAgaWYge1tsc2VhcmNoICRtYXhfbGlicyAkbGliXSA9PSAtMX0gewotICAgICAgICAgICAgICAgICAgICAgICAgbGFwcGVuZCBtYXhfbGlicyAkbGliCi0gICAgICAgICAgICAgICAgICAgICAgICBpbmNyIGNvdW50Ci0gICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCR2YXJzKCR2YXJzKGRlZmF1bHRfc2V0dXBfdmlldyksZGVsYXlfY29ybmVyKSxsYXRlX2xpYnJhcnlfc2V0KV19IHsKLSAgICAgICAgICAgICAgICAgICAgIGZvcmVhY2ggbGliICR2YXJzKCR2YXJzKCR2YXJzKCR2YXJzKGRlZmF1bHRfc2V0dXBfdmlldyksZGVsYXlfY29ybmVyKSxsYXRlX2xpYnJhcnlfc2V0KSx0aW1pbmcpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIHtbbHNlYXJjaCAkbWF4X2xpYnMgJGxpYl0gPT0gLTF9IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhcHBlbmQgbWF4X2xpYnMgJGxpYgotICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5jciBjb3VudAotICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgfQotICAgCi0gICAgICAgICAgICAgICBpZiB7IVtpbmZvIGV4aXN0cyB2YXJzKHRpbWVsaWIsbWF4KV19IHsKLSAgICAgICAgICAgICAgICAgIHNldCB2YXJzKHRpbWVsaWIsbWF4KSAkbWF4X2xpYnMKLSAgICAgICAgICAgICAgIH0KLSAgIAotICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCR2YXJzKCR2YXJzKGRlZmF1bHRfaG9sZF92aWV3KSxkZWxheV9jb3JuZXIpLGxpYnJhcnlfc2V0KV19IHsKLSAgICAgICAgICAgICAgICAgIGZvcmVhY2ggbGliICR2YXJzKCR2YXJzKCR2YXJzKCR2YXJzKGRlZmF1bHRfaG9sZF92aWV3KSxkZWxheV9jb3JuZXIpLGxpYnJhcnlfc2V0KSx0aW1pbmcpIHsKLSAgICAgICAgICAgICAgICAgICAgIGlmIHtbbHNlYXJjaCAkbWluX2xpYnMgJGxpYl0gPT0gLTF9IHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGxhcHBlbmQgbWluX2xpYnMgJGxpYgotICAgICAgICAgICAgICAgICAgICAgICAgaW5jciBjb3VudAotICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkdmFycygkdmFycyhkZWZhdWx0X2hvbGRfdmlldyksZGVsYXlfY29ybmVyKSxlYXJseV9saWJyYXJ5X3NldCldfSB7Ci0gICAgICAgICAgICAgICAgICAgICBmb3JlYWNoIGxpYiAkdmFycygkdmFycygkdmFycygkdmFycyhkZWZhdWx0X2hvbGRfdmlldyksZGVsYXlfY29ybmVyKSxlYXJseV9saWJyYXJ5X3NldCksdGltaW5nKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiB7W2xzZWFyY2ggJG1pbl9saWJzICRsaWJdID09IC0xfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICBsYXBwZW5kIG1pbl9saWJzICRsaWIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGluY3IgY291bnQKLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIH0KLSAgIAotICAgICAgICAgICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycyh0aW1lbGliLG1pbildfSB7Ci0gICAgICAgICAgICAgICAgICBzZXQgdmFycyh0aW1lbGliLG1pbikgJG1pbl9saWJzCi0gICAgICAgICAgICAgICB9Ci0gICAKLSAgICAgICAgICAgICAgIGlmIHshW2luZm8gZXhpc3RzIHZhcnModGltZWxpYildfSB7Ci0gICAgICAgICAgICAgICAgICBzZXQgdmFycyh0aW1lbGliKSAiIgotICAgICAgICAgICAgICAgfQotICAgCi0gICAgICAgICAgICAgICBzZXQgdmFycyhjZGJfZmlsZSkgIiIKLSAgICAgICAgICAgICAgIHNldCB2YXJzKGNkYl9maWxlLG1pbikgIiIKLSAgICAgICAgICAgICAgIHNldCB2YXJzKGNkYl9maWxlLG1heCkgIiIKLSAgIAotICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCR2YXJzKCR2YXJzKGRlZmF1bHRfc2V0dXBfdmlldyksZGVsYXlfY29ybmVyKSxsaWJyYXJ5X3NldCldfSB7Ci0gICAgICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJHZhcnMoJHZhcnMoJHZhcnMoZGVmYXVsdF9zZXR1cF92aWV3KSxkZWxheV9jb3JuZXIpLGxpYnJhcnlfc2V0KSxzaSldfSB7Ci0gICAgICAgICAgICAgICAgICAgICBzZXQgdmFycyhjZGJfZmlsZSxtYXgpICR2YXJzKCR2YXJzKCR2YXJzKCR2YXJzKGRlZmF1bHRfc2V0dXBfdmlldyksZGVsYXlfY29ybmVyKSxsaWJyYXJ5X3NldCksc2kpCi0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICB9IGVsc2VpZiB7W2luZm8gZXhpc3RzIHZhcnMoJHZhcnMoJHZhcnMoZGVmYXVsdF9zZXR1cF92aWV3KSxkZWxheV9jb3JuZXIpLGxhdGVfbGlicmFyeV9zZXQpXX0gewotICAgICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyBhcnMoJHZhcnMoJHZhcnMoJHZhcnMoZGVmYXVsdF9zZXR1cF92aWV3KSxkZWxheV9jb3JuZXIpLGxhdGVfbGlicmFyeV9zZXQpLHNpKV19IHsKLSAgICAgICAgICAgICAgICAgICAgIHNldCB2YXJzKGNkYl9maWxlLG1heCkgJHZhcnMoJHZhcnMoJHZhcnMoJHZhcnMoZGVmYXVsdF9zZXR1cF92aWV3KSxkZWxheV9jb3JuZXIpLGxhdGVfbGlicmFyeV9zZXQpLHNpKQotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgIHNldCB2YXJzKGNkYl9maWxlLG1heCkgIiIKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkdmFycygkdmFycyhkZWZhdWx0X2hvbGRfdmlldyksZGVsYXlfY29ybmVyKSxsaWJyYXJ5X3NldCldfSB7Ci0gICAgICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJHZhcnMoJHZhcnMoJHZhcnMoZGVmYXVsdF9ob2xkX3ZpZXcpLGRlbGF5X2Nvcm5lciksbGlicmFyeV9zZXQpLHNpKV19IHsKLSAgICAgICAgICAgICAgICAgICAgIHNldCB2YXJzKGNkYl9maWxlLG1pbikgJHZhcnMoJHZhcnMoJHZhcnMoJHZhcnMoZGVmYXVsdF9ob2xkX3ZpZXcpLGRlbGF5X2Nvcm5lciksbGlicmFyeV9zZXQpLHNpKQotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgfSBlbHNlaWYge1tpbmZvIGV4aXN0cyB2YXJzKCR2YXJzKCR2YXJzKGRlZmF1bHRfaG9sZF92aWV3KSxkZWxheV9jb3JuZXIpLGVhcmx5X2xpYnJhcnlfc2V0KV19IHsKLSAgICAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkdmFycygkdmFycygkdmFycyhkZWZhdWx0X2hvbGRfdmlldyksZGVsYXlfY29ybmVyKSxlYXJseV9saWJyYXJ5X3NldCksc2kpXX0gewotICAgICAgICAgICAgICAgICAgICAgc2V0IHZhcnMoY2RiX2ZpbGUsbWluKSAkdmFycygkdmFycygkdmFycygkdmFycyhkZWZhdWx0X2hvbGRfdmlldyksZGVsYXlfY29ybmVyKSxlYXJseV9saWJyYXJ5X3NldCksc2kpCi0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgc2V0IHZhcnMoY2RiX2ZpbGUsbWluKSAiIgotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCR2YXJzKCR2YXJzKGRlZmF1bHRfc2V0dXBfdmlldyksY29uc3RyYWludF9tb2RlKSxwcmVfY3RzX3NkYyldfSB7Ci0gICAgICAgICAgICAgICAgICBpZiB7JHZhcnMoZmxvdykgIT0gIm1tbWMifSB7Ci0gICAgICAgICAgICAgICAgICAgICBzZXQgdmFycyh0aW1pbmdjb25fZmlsZSkgJHZhcnMoJHZhcnMoJHZhcnMoZGVmYXVsdF9zZXR1cF92aWV3KSxjb25zdHJhaW50X21vZGUpLHByZV9jdHNfc2RjKQotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgc2V0IHZhcnMocHJlX2N0c19zZGMpICR2YXJzKCR2YXJzKCR2YXJzKGRlZmF1bHRfc2V0dXBfdmlldyksY29uc3RyYWludF9tb2RlKSxwcmVfY3RzX3NkYykKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkdmFycygkdmFycyhkZWZhdWx0X3NldHVwX3ZpZXcpLGNvbnN0cmFpbnRfbW9kZSkscHJlX2N0c19pbG1fc2RjKV19IHsKLSAgICAgICAgICAgICAgICAgIGlmIHskdmFycyhmbG93KSAhPSAibW1tYyJ9IHsKLSAgICAgICAgICAgICAgICAgICAgIHNldCB2YXJzKHRpbWluZ2Nvbl9maWxlLGZ1bGwpICR2YXJzKCR2YXJzKCR2YXJzKGRlZmF1bHRfc2V0dXBfdmlldyksY29uc3RyYWludF9tb2RlKSxwcmVfY3RzX2lsbV9zZGMpCi0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJHZhcnMoJHZhcnMoZGVmYXVsdF9zZXR1cF92aWV3KSxjb25zdHJhaW50X21vZGUpLGluY3JfY3RzX3NkYyldfSB7Ci0gICAgICAgICAgICAgICAgICBzZXQgdmFycyhpbmNyX2N0c19zZGMpICR2YXJzKCR2YXJzKCR2YXJzKGRlZmF1bHRfc2V0dXBfdmlldyksY29uc3RyYWludF9tb2RlKSxpbmNyX2N0c19zZGMpCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJHZhcnMoJHZhcnMoZGVmYXVsdF9zZXR1cF92aWV3KSxjb25zdHJhaW50X21vZGUpLHBvc3RfY3RzX3NkYyldfSB7Ci0gICAgICAgICAgICAgICAgICBzZXQgdmFycyhwb3N0X2N0c19zZGMpICR2YXJzKCR2YXJzKCR2YXJzKGRlZmF1bHRfc2V0dXBfdmlldyksY29uc3RyYWludF9tb2RlKSxwb3N0X2N0c19zZGMpCi0gICAgICAgICAgICAgICB9Ci0gICAKLSAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkdmFycygkdmFycygkdmFycyhkZWZhdWx0X2hvbGRfdmlldyksZGVsYXlfY29ybmVyKSxyY19jb3JuZXIpLGNhcF90YWJsZSldICYmXAotICAgICAgICAgICAgICAgICAgIFtpbmZvIGV4aXN0cyB2YXJzKCR2YXJzKCR2YXJzKCR2YXJzKGRlZmF1bHRfc2V0dXBfdmlldyksZGVsYXlfY29ybmVyKSxyY19jb3JuZXIpLGNhcF90YWJsZSldfSB7Ci0gICAgICAgICAgICAgICAgICBzZXQgdmFycyhjYXB0YmxfZmlsZSkgW2NvbmNhdCBcCi0gICAgICAgICAgICAgICAgICAgICAgICItYmVzdCIgJHZhcnMoJHZhcnMoJHZhcnMoJHZhcnMoZGVmYXVsdF9ob2xkX3ZpZXcpLGRlbGF5X2Nvcm5lcikscmNfY29ybmVyKSxjYXBfdGFibGUpIFwKLSAgICAgICAgICAgICAgICAgICAgICAgIi13b3JzdCIgJHZhcnMoJHZhcnMoJHZhcnMoJHZhcnMoZGVmYXVsdF9zZXR1cF92aWV3KSxkZWxheV9jb3JuZXIpLHJjX2Nvcm5lciksY2FwX3RhYmxlKSBcCi0gICAgICAgICAgICAgICAgICAgICAgXQotICAgICAgICAgICAgICAgICAgc2V0IHZhcnMod2NfY2FwX3RhYmxlKSAkdmFycygkdmFycygkdmFycygkdmFycyhkZWZhdWx0X3NldHVwX3ZpZXcpLGRlbGF5X2Nvcm5lcikscmNfY29ybmVyKSxjYXBfdGFibGUpCi0gICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCR2YXJzKCR2YXJzKCR2YXJzKGRlZmF1bHRfc2V0dXBfdmlldyksZGVsYXlfY29ybmVyKSxyY19jb3JuZXIpLGNhcF90YWJsZSldfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgc2V0IHZhcnMoY2FwdGJsX2ZpbGUpIFtjb25jYXQgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAiLWJlc3QiICR2YXJzKCR2YXJzKCR2YXJzKCR2YXJzKGRlZmF1bHRfc2V0dXBfdmlldyksZGVsYXlfY29ybmVyKSxyY19jb3JuZXIpLGNhcF90YWJsZSkgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAiLXdvcnN0IiAkdmFycygkdmFycygkdmFycygkdmFycyhkZWZhdWx0X3NldHVwX3ZpZXcpLGRlbGF5X2Nvcm5lcikscmNfY29ybmVyKSxjYXBfdGFibGUpIFwKLSAgICAgICAgICAgICAgICAgICAgICBdCi0gICAgICAgICAgICAgICAgICAgICAgc2V0IHZhcnMod2NfY2FwX3RhYmxlKSAkdmFycygkdmFycygkdmFycygkdmFycyhkZWZhdWx0X3NldHVwX3ZpZXcpLGRlbGF5X2Nvcm5lcikscmNfY29ybmVyKSxjYXBfdGFibGUpCi0gICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgc2V0IHZhcnMoY2FwdGJsX2ZpbGUpICIiCi0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgc2V0IHZhcnModGltZWxpYikgIiIKLSAgICAgICAgICAgICAgIHNldCB2YXJzKGNkYl9maWxlKSAiIgotICAgICAgICAgICAgICAgc2V0IHZhcnModGltZWxpYixtYXgpICIiCi0gICAgICAgICAgICAgICBzZXQgdmFycyhjZGJfZmlsZSxtYXgpICIiCi0gICAgICAgICAgICAgICBzZXQgdmFycyh0aW1lbGliLG1pbikgIiIKLSAgICAgICAgICAgICAgIHNldCB2YXJzKGNkYl9maWxlLG1pbikgIiIKLSAgICAgICAgICAgICAgIHNldCBmb3VuZF9tYXggMCAKLSAgICAgICAgICAgICAgIHNldCBmb3VuZF9taW4gMCAKLSAgIAotICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKHNldHVwX2FuYWx5c2lzX3ZpZXdzKV0gJiYgW2luZm8gZXhpc3RzIHZhcnMoaG9sZF9hbmFseXNpc192aWV3cyldfSB7Ci0gICAgICAgICAgICAgICAgICBmb3JlYWNoIHZpZXcgJHZhcnMoc2V0dXBfYW5hbHlzaXNfdmlld3MpIHsKLSAgICAgICAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkdmFycygkdmlldyxkZWxheV9jb3JuZXIpLGxpYnJhcnlfc2V0KV19IHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkdmFycygkdmFycygkdmlldyxkZWxheV9jb3JuZXIpLGxpYnJhcnlfc2V0KSx0aW1pbmcpXX0gewotICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yZWFjaCBmaWxlICR2YXJzKCR2YXJzKCR2YXJzKCR2aWV3LGRlbGF5X2Nvcm5lciksbGlicmFyeV9zZXQpLHRpbWluZykgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYge1tsc2VhcmNoICR2YXJzKHRpbWVsaWIsbWF4KSAkZmlsZV0gPT0gLTF9IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhcHBlbmQgdmFycyh0aW1lbGliLG1heCkgJGZpbGUKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldCBmb3VuZF9tYXggMQotICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1dHMgIjxGRj4gV0FSTklORzogVmFyaWFibGUgdmFycygkdmFycygkdmFycygkdmlldyxkZWxheV9jb3JuZXIpLGxpYnJhcnlfc2V0KSx0aW1pbmcpIG5vdCBkZWZpbmVkIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0IHdhcm5pbmdzKCR2YXJzKHdhcm5pbmdfY291bnQpKSAiVmFyaWFibGUgdmFycygkdmFycygkdmFycygkdmlldyxkZWxheV9jb3JuZXIpLGxpYnJhcnlfc2V0KSx0aW1pbmcpIG5vdCBkZWZpbmVkIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5jciB2YXJzKHdhcm5pbmdfY291bnQpCi0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycygkdmFycygkdmlldyxkZWxheV9jb3JuZXIpLGVhcmx5X2xpYnJhcnlfc2V0KV19IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdXRzICI8RkY+IFdBUk5JTkc6IFZhcmlhYmxlIHZhcnMoJHZhcnMoJHZpZXcsZGVsYXlfY29ybmVyKSxsaWJyYXJ5X3NldCkgbm90IGRlZmluZWQiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0IHdhcm5pbmdzKCR2YXJzKHdhcm5pbmdfY291bnQpKSAiVmFyaWFibGUgdmFycygkdmFycygkdmlldyxkZWxheV9jb3JuZXIpLGxpYnJhcnlfc2V0KSBub3QgZGVmaW5lZCIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmNyIHZhcnMod2FybmluZ19jb3VudCkKLSAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgZm9yZWFjaCB2aWV3ICR2YXJzKGhvbGRfYW5hbHlzaXNfdmlld3MpIHsKLSAgICAgICAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkdmFycygkdmlldyxkZWxheV9jb3JuZXIpLGxpYnJhcnlfc2V0KV19IHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkdmFycygkdmFycygkdmlldyxkZWxheV9jb3JuZXIpLGxpYnJhcnlfc2V0KSx0aW1pbmcpXX0gewotICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yZWFjaCBmaWxlICR2YXJzKCR2YXJzKCR2YXJzKCR2aWV3LGRlbGF5X2Nvcm5lciksbGlicmFyeV9zZXQpLHRpbWluZykgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYge1tsc2VhcmNoICR2YXJzKHRpbWVsaWIsbWluKSAkZmlsZV0gPT0gLTF9IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhcHBlbmQgdmFycyh0aW1lbGliLG1pbikgJGZpbGUKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldCBmb3VuZF9taW4gMQotICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1dHMgIjxGRj4gV0FSTklORzogdmFycygkdmFycygkdmFycygkdmlldyxkZWxheV9jb3JuZXIpLGxpYnJhcnlfc2V0KSx0aW1pbmcpIG5vdCBkZWZpbmVkIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0IHdhcm5pbmdzKCR2YXJzKHdhcm5pbmdfY291bnQpKSAiVmFyaWFibGUgdmFycygkdmFycygkdmFycygkdmlldyxkZWxheV9jb3JuZXIpLGxpYnJhcnlfc2V0KSx0aW1pbmcpIG5vdCBkZWZpbmVkIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5jciB2YXJzKHdhcm5pbmdfY291bnQpCi0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycygkdmFycygkdmlldyxkZWxheV9jb3JuZXIpLGVhcmx5X2xpYnJhcnlfc2V0KV19IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1dHMgIjxGRj4gV0FSTklORzogdmFycygkdmFycygkdmlldyxkZWxheV9jb3JuZXIpLGVhcmx5X2xpYnJhcnlfc2V0KSBub3QgZGVmaW5lZCIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldCB3YXJuaW5ncygkdmFycyh3YXJuaW5nX2NvdW50KSkgIlZhcmlhYmxlIHZhcnMoJHZhcnMoJHZpZXcsZGVsYXlfY29ybmVyKSxlYXJseV9saWJyYXJ5X3NldCkgbm90IGRlZmluZWQiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBpbmNyIHZhcnMod2FybmluZ19jb3VudCkKLSAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMocG93ZXJfYW5hbHlzaXNfdmlldyldICYmICgkdmFycyhwb3dlcl9hbmFseXNpc192aWV3KSAhPSAiIil9IHsKLSAgICAgICAgICAgICAgICAgICAgIHNldCB2aWV3ICR2YXJzKHBvd2VyX2FuYWx5c2lzX3ZpZXcpCi0gICAgICAgICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJHZhcnMoJHZpZXcsZGVsYXlfY29ybmVyKSxsaWJyYXJ5X3NldCldfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiB7IVtpbmZvIGV4aXN0cyB2YXJzKCR2YXJzKCR2YXJzKCR2aWV3LGRlbGF5X2Nvcm5lciksbGlicmFyeV9zZXQpLHRpbWluZyldfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICBwdXRzICI8RkY+IFdBUk5JTkc6IHZhcnMoJHZhcnMoJHZhcnMoJHZpZXcsZGVsYXlfY29ybmVyKSxsaWJyYXJ5X3NldCksdGltaW5nKSBub3QgZGVmaW5lZCIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldCB3YXJuaW5ncygkdmFycyh3YXJuaW5nX2NvdW50KSkgIlZhcmlhYmxlIHZhcnMoJHZhcnMoJHZhcnMoJHZpZXcsZGVsYXlfY29ybmVyKSxsaWJyYXJ5X3NldCksdGltaW5nKSBub3QgZGVmaW5lZCIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGluY3IgdmFycyh3YXJuaW5nX2NvdW50KQotICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIHshW2luZm8gZXhpc3RzIHZhcnMoJHZhcnMoJHZpZXcsZGVsYXlfY29ybmVyKSxlYXJseV9saWJyYXJ5X3NldCldfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICBwdXRzICI8RkY+IFdBUk5JTkc6IHZhcnMoJHZhcnMoJHZpZXcsZGVsYXlfY29ybmVyKSxlYXJseV9saWJyYXJ5X3NldCkgbm90IGRlZmluZWQiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBzZXQgd2FybmluZ3MoJHZhcnMod2FybmluZ19jb3VudCkpICJWYXJpYWJsZSB2YXJzKCR2YXJzKCR2aWV3LGRlbGF5X2Nvcm5lciksZWFybHlfbGlicmFyeV9zZXQpIG5vdCBkZWZpbmVkIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5jciB2YXJzKHdhcm5pbmdfY291bnQpCi0gICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIH0KLSAgIAotICAgICAgICAgICAgICAgaWYgeyEkZm91bmRfbWluIHx8ICEkZm91bmRfbWF4fSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIFdBUk5JTkc6IEVpdGhlciBzZXR1cCBvciBob2xkIGFuYWx5c2lzIHZpZXdzIGluYWRlcXVhdGVseSBkZWZpbmVkIgotICAgICAgICAgICAgICAgICAgc2V0IHdhcm5pbmdzKCR2YXJzKHdhcm5pbmdfY291bnQpKSAiRWl0aGVyIHNldHVwIG9yIGhvbGQgYW5hbHlzaXMgdmlld3MgaW5hZGVxdWF0ZWx5IGRlZmluZWQiCi0gICAgICAgICAgICAgICAgICBpbmNyIHZhcnMod2FybmluZ19jb3VudCkKLSAgICAgICAgICAgICAgICAgIHNldCB2YXJzKHRpbWVsaWIsbWluKSAiIgotICAgICAgICAgICAgICAgICAgc2V0IHZhcnModGltZWxpYixtYXgpICIiCi0gICAgICAgICAgICAgICAgICBmb3JlYWNoIGxpYnJhcnlfc2V0ICR2YXJzKGxpYnJhcnlfc2V0cykgewotICAgICAgICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCRsaWJyYXJ5X3NldCx0aW1pbmcpXX0gewotICAgICAgICAgICAgICAgICAgICAgICAgc2V0IHZhcnModGltZWxpYikgW2NvbmNhdCAkdmFycyh0aW1lbGliKSAkdmFycygkbGlicmFyeV9zZXQsdGltaW5nKV0KLSAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkbGlicmFyeV9zZXQsc2kpXX0gewotICAgICAgICAgICAgICAgICAgICAgICAgc2V0IHZhcnMoY2RiX2ZpbGUpIFtjb25jYXQgJHZhcnMoY2RiX2ZpbGUpICR2YXJzKCRsaWJyYXJ5X3NldCxzaSldCi0gICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICBzZXQgdmFycyhjYXB0YmxfZmlsZSkgIiIKLSAgICAgICAgICAgICAgIHNldCB2YXJzKHRpbWluZ2Nvbl9maWxlKSAiIgotICAgICAgIyAgICAgICAgICAgc2V0IHZhcnMocHJlX3JvdXRlX3Jlc19mYWN0b3IpIDEuMAotICAgICAgIyAgICAgICAgICAgc2V0IHZhcnMocG9zdF9yb3V0ZV9yZXNfZmFjdG9yKSAxLjAKLSAgICAgICMgICAgICAgICAgIHNldCB2YXJzKHByZV9yb3V0ZV9jYXBfZmFjdG9yKSAxLjAKLSAgICAgICMgICAgICAgICAgIHNldCB2YXJzKHBvc3Rfcm91dGVfY2FwX2ZhY3RvcikgMS4wCi0gICAgICAjICAgICAgICAgICBzZXQgdmFycyhwcmVfcm91dGVfY2xrX3Jlc19mYWN0b3IpIDEuMAotICAgICAgIyAgICAgICAgICAgc2V0IHZhcnMocG9zdF9yb3V0ZV9jbGtfcmVzX2ZhY3RvcikgMS4wCi0gICAgICAjICAgICAgICAgICBzZXQgdmFycyhwcmVfcm91dGVfY2xrX2NhcF9mYWN0b3IpIDEuMAotICAgICAgIyAgICAgICAgICAgc2V0IHZhcnMocG9zdF9yb3V0ZV9jbGtfY2FwX2ZhY3RvcikgMS4wCi0gICAgICAjICAgICAgICAgICBzZXQgdmFycyhwb3N0X3JvdXRlX3hjYXBfZmFjdG9yKSAxLjAKLSAgICAgICMgICAgICAgICBzZXQgdmFycyhxeHRlY2hfZmlsZSkgIiIKLSAgICAgICMgICAgICAgICBzZXQgdmFycyhxeGNvbmZfZmlsZSkgIiIKLSAgICAgICMgICAgICAgICBzZXQgdmFycyhxeGxpYl9maWxlKSAiIgotICAgICAgIyAgICAgICAgIHNldCB2YXJzKHF4bGF5ZXJtYXBfZmlsZSkgIiIKLSAgICAgICAgICAgIH0KLSAgIAotICAgICAgICAgICAgc2V0IG1hcChxeF90ZWNoX2ZpbGUpIHF4dGVjaF9maWxlCi0gICAgICAgICAgICBzZXQgbWFwKHF4X2NvbmZfZmlsZSkgcXhjb25mX2ZpbGUKLSAgICAgICAgICAgIHNldCBtYXAocXhfbGliX2ZpbGUpIHF4bGliX2ZpbGUKLSAgIAotICAgICAgICAgICAgZm9yZWFjaCBvcHRpb24gInF4X3RlY2hfZmlsZSBxeF9jb25mX2ZpbGUgcXhfbGliX2ZpbGUiIHsKLSAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkdmFycygkdmFycygkdmFycyhkZWZhdWx0X3NldHVwX3ZpZXcpLGRlbGF5X2Nvcm5lcikscmNfY29ybmVyKSwkb3B0aW9uKV19IHsKLSAgICAgICAgICAgICAgICAgIHNldCB2YXJzKCRtYXAoJG9wdGlvbikpICR2YXJzKCR2YXJzKCR2YXJzKCR2YXJzKGRlZmF1bHRfc2V0dXBfdmlldyksZGVsYXlfY29ybmVyKSxyY19jb3JuZXIpLCRvcHRpb24pCi0gICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgc2V0IHZhcnMoJG1hcCgkb3B0aW9uKSkgIiIKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIHshW2luZm8gZXhpc3RzIHZhcnMocXhfbGF5ZXJtYXBfZmlsZSldfSB7Ci0gICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMocXJjX2xheWVyX21hcCldfSB7Ci0gICAgICAgICAgICAgICAgICBzZXQgdmFycyhxeGxheWVybWFwX2ZpbGUpICR2YXJzKHFyY19sYXllcl9tYXApCi0gICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgc2V0IHZhcnMocXhsYXllcm1hcF9maWxlKSAiIgotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIHNldCB2YXJzKHF4bGF5ZXJtYXBfZmlsZSkgJHZhcnMocXhfbGF5ZXJtYXBfZmlsZSkKLSAgICAgICAgICAgICAgIHNldCB2YXJzKHFyY19sYXllcl9tYXApICR2YXJzKHF4X2xheWVybWFwX2ZpbGUpIAotICAgICAgICAgICAgfQotIyAgICAgICAgIH0KLQotICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgIyBCYWNrd2FyZHMgY29tcGF0aWJpbGl0eQotICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGxlYWthZ2VfZWZmb3J0KV0gJiYgIVtpbmZvIGV4aXN0cyB2YXJzKGxlYWthZ2VfcG93ZXJfZWZmb3J0KV19IHsKLSAgICAgICAgICAgIHNldCB2YXJzKGxlYWthZ2VfcG93ZXJfZWZmb3J0KSAkdmFycyhsZWFrYWdlX2VmZm9ydCkKLSAgICAgICAgIH0KLSAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhlbmFibGVfY3BwcildICYmICgoJHZhcnMoZW5hYmxlX2NwcHIpID09IDApIHx8ICgkdmFycyhlbmFibGVfY3BwcikgPT0gZmFsc2UpKX0gewotICAgICAgICAgICAgc2V0IHZhcnMoZW5hYmxlX2NwcHIpIG5vbmUKLSAgICAgICAgIH0KLSAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhlbmFibGVfY3BwcildICYmICgoJHZhcnMoZW5hYmxlX2NwcHIpID09IDEpIHx8ICgkdmFycyhlbmFibGVfY3BwcikgPT0gdHJ1ZSkpfSB7Ci0gICAgICAgICAgICBzZXQgdmFycyhlbmFibGVfY3BwcikgYm90aAotICAgICAgICAgfQotICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGRlZl9maWxlKV19IHsKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgV0FSTklORzogVmFyaWFibGUgZGVmX2ZpbGUgaGFzIGJlZW4gY2hhbmdlZCB0byBkZWZfZmlsZXMgLi4uIHBsZWFzZSB1cGRhdGVcbiIKLSAgICAgICAgICAgIHNldCB3YXJuaW5ncygkdmFycyh3YXJuaW5nX2NvdW50KSkgIlZhcmlhYmxlIGRlZl9maWxlIGhhcyBiZWVuIGNoYW5nZWQgdG8gZGVmX2ZpbGVzIC4uLiBwbGVhc2UgdXBkYXRlIgotICAgICAgICAgICAgaW5jciB2YXJzKHdhcm5pbmdfY291bnQpCi0gICAgICAgICAgICBzZXQgdmFycyhkZWZfZmlsZXMpICR2YXJzKGRlZl9maWxlKQotICAgICAgICAgfQotCi0gICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAjIFNlZWQgdGhlIHJlc3Qgb2YgdGhlIGNvbmZpZyB2YXJpYWJsZXMgYWxsb3dpbmcgdXNlciBvdmVycmlkZXMgLi4uCi0gICAjIERlZmF1bHQgdmFsdWVzIGZvciBhbGwgdmFyaWFibGVzIGFyZSBpbiBkZWZhdWx0cy50Y2wKLSAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLQotICAgICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycyhzY3JpcHRfcGF0aCldfSB7Ci0gICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoc2NyaXB0X3Jvb3QpXX0gewotICAgICAgICAgICAgICAgc2V0IHZhcnMoc2NyaXB0X3BhdGgpICR2YXJzKHNjcmlwdF9yb290KQotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIHB1dHMgIjxGRj4gRVJST1I6IFZhcmlhYmxlIHZhcnMoc2NyaXB0X3Jvb3QpIG5vdCBkZWZpbmVkIgotICAgICAgICAgICAgICAgZXhpdCAgMQotICAgICAgICAgICAgfQotICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIGlmIHshW2luZm8gZXhpc3RzIHZhcnMoc2NyaXB0X3Jvb3QpXX0gewotICAgICAgICAgICAgICAgc2V0IHZhcnMoc2NyaXB0X3Jvb3QpICR2YXJzKHNjcmlwdF9wYXRoKQotICAgICAgICAgICAgfQotICAgICAgICAgfQotICAgICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycyhzZXR1cF9wYXRoKV19IHsKLSAgICAgICAgICAgICAgIHNldCB2YXJzKHNldHVwX3BhdGgpICIuIgotICAgICAgICAgfQotICAgICAgICAgaWYge1tpbmZvIGNvbW1hbmQgRkZGOjpnZXRfdG9vbF0gbmUgIiIgJiYgW0ZGRjo6Z2V0X3Rvb2xdIGVxICJyYyJ9IHsKLSAgICAgICAgICAgdGNsX3NvdXJjZSAkdmFycyhzY3JpcHRfcGF0aCkvRVRDL0lOTk9WVVMvcmRhX2RlZmF1bHRzLnRjbAotICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgc291cmNlICR2YXJzKHNjcmlwdF9wYXRoKS9FVEMvY29tbW9uX2RlZmF1bHRzLnRjbAotICAgICAgICAgICBzb3VyY2UgJHZhcnMoc2NyaXB0X3BhdGgpL0VUQy9JTk5PVlVTL2RlZmF1bHRzLnRjbAotICAgICAgICAgICBzb3VyY2UgJHZhcnMoc2NyaXB0X3BhdGgpL0VUQy9JTk5PVlVTL3JkYV9kZWZhdWx0cy50Y2wKLSAgICAgICAgIH0KLQotICAgICAgICAgZm9yZWFjaCBvcHRpb24gW2FycmF5IG5hbWVzIHJkYV9kZWZhdWx0c10gewotICAgICAgICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycygkb3B0aW9uKV19IHsKLSAgICAgICAgICAgICAgIHNldCB2YXJzKCRvcHRpb24pICRyZGFfZGVmYXVsdHMoJG9wdGlvbikKLSAgICAgICAgICAgIH0gIGVsc2UgewotICAgICAgICAgICAgICAgaWYgeyR2YXJzKCRvcHRpb24pICE9ICRyZGFfZGVmYXVsdHMoJG9wdGlvbil9IHsKLSMgICAgICAgICAgICAgICAgICBwdXRzICIjIDxGRj4gSU5GTzogVXNlciBvdmVycmlkZSBvZiAkb3B0aW9uIHRvICR2YXJzKCRvcHRpb24pIgotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAgfQotCi0gICAgICAgICBpZiB7IVtpbmZvIGV4aXN0cyB2YXJzKGNwdXNfcGVyX3JlbW90ZV9ob3N0KV0gJiYgW2luZm8gZXhpc3RzIHZhcnMoY3B1X3Blcl9yZW1vdGVfaG9zdCldfSB7Ci0gICAgICAgICAgICBQdXRzICI8RkY+IElORk86IFNldHRpbmcgJ3ZhcnMoY3B1c19wZXJfcmVtb3RlX2hvc3QpJyB0byAndmFycyhjcHVfcGVyX3JlbW90ZV9ob3N0KSciCi0gICAgICAgICAgICBQdXRzICI8RkY+IElORk86ICAgICAgICAgICAgICAgICAgXiIKLSAgICAgICAgICAgIFB1dHMgIjxGRj4gSU5GTzogUGxlYXNlIHVwZGF0ZSB5b3VyIHNldHVwIHRvIGNwdXNfcGVyX3JlbW90ZSAuLi4iCi0gICAgICAgICAgICBzZXQgdmFycyhjcHVzX3Blcl9yZW1vdGVfaG9zdCkgJHZhcnMoY3B1X3Blcl9yZW1vdGVfaG9zdCkKLSAgICAgICAgIH0KLQotICAgICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycyhmbGV4bW9kZWxfYXJ0X2Jhc2VkKV19IHsKLSAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhmbGV4bW9kZWxfYXNfcHRuKV0gJiYgJHZhcnMoZmxleG1vZGVsX2FzX3B0bil9IHsKLSAgICAgICAgICAgICAgIHNldCBmbG93X2RlZmF1bHRzKGZsZXhtb2RlbF9hcnRfYmFzZWQpIDEKLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0KLSAgICAgICAgIGlmIHshW2luZm8gZXhpc3RzIHZhcnMoaGlnaF90aW1pbmdfZWZmb3J0KV19IHsKLSAgICAgICAgICAgIHNldCB2YXJzKGhpZ2hfdGltaW5nX2VmZm9ydCkgJGZsb3dfZGVmYXVsdHMoaGlnaF90aW1pbmdfZWZmb3J0KQotICAgICAgICAgfQotICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGNsb2NrX2VjbyldICYmICgkdmFycyhjbG9ja19lY28pID09ICJwb3N0Y3RzIil9IHsKLSAgICAgICAgICAgIHNldCB2YXJzKGNsb2NrX2VjbykgInBvc3RfY3RzIgotICAgICAgICAgfQotICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGNsb2NrX2VjbyldICYmICgkdmFycyhjbG9ja19lY28pID09ICJwb3N0cm91dGUiKX0gewotICAgICAgICAgICAgc2V0IHZhcnMoY2xvY2tfZWNvKSAicG9zdF9yb3V0ZSIKLSAgICAgICAgIH0KLSAgICAgICAgIGlmIHtbcmVnZXhwICI5LjEiICR2YXJzKHZlcnNpb24pXX0geyAKLSAgICAgICAgICAgIGlmIHskdmFycyhoaWdoX3RpbWluZ19lZmZvcnQpfSB7Ci0gICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoY3JpdGljYWxfcmFuZ2UpXSAmJiAoJHZhcnMoY3JpdGljYWxfcmFuZ2UpICE9IDEuMCl9IHsKLSAgICAgICAgICAgICAgICAgIFB1dHMgIjxGRj4gSGlnaCB0aW1pbmcgZWZmb3J0IGVuYWJsZWQgYnV0IGNyaXRpY2FsX3JhbmdlIG92ZXJyaWRkZW4gYnkgdXNlciBzZXR0aW5ncyIKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhjbG9ja19lY28pXSAmJiAoJHZhcnMoY2xvY2tfZWNvKSAhPSAicG9zdF9jdHMiKX0gewotICAgICAgICAgICAgICAgICAgUHV0cyAiPEZGPiBIaWdoIHRpbWluZyBlZmZvcnQgZW5hYmxlZCBidXQgY2xvY2tfZWNvIG92ZXJyaWRkZW4gYnkgdXNlciBzZXR0aW5ncyIKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhpbl9wbGFjZV9vcHQpXSAmJiAhJHZhcnMoaW5fcGxhY2Vfb3B0KX0gewotICAgICAgICAgICAgICAgICAgUHV0cyAiPEZGPiBIaWdoIHRpbWluZyBlZmZvcnQgZW5hYmxlZCBidXQgaW5fcGxhY2Vfb3B0IG92ZXJyaWRkZW4gYnkgdXNlciBzZXR0aW5ncyIKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0KLQotICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGN0c19lbmdpbmUpXSAmJiAoW3N0cmluZyB0b2xvd2VyICR2YXJzKGN0c19lbmdpbmUpXSA9PSAiY3RzIil9IHsKLSAgICAgICAgICAgIHNldCBmbG93X2RlZmF1bHRzKHVwZGF0ZV9pb19sYXRlbmN5KSBmYWxzZQotIyAgICAgICAgICAgIHNldCB2YXJzKGN0cyx1cGRhdGVfdGltaW5nLHNraXApIHRydWUKLSAgICAgICAgIH0KLQotICAgICAgICAgZm9yZWFjaCBvcHRpb24gW2FycmF5IG5hbWVzIGZsb3dfZGVmYXVsdHNdIHsKLSAgICAgICAgICAgIGlmIHshW2luZm8gZXhpc3RzIHZhcnMoJG9wdGlvbildfSB7Ci0gICAgICAgICAgICAgICBzZXQgdmFycygkb3B0aW9uKSAkZmxvd19kZWZhdWx0cygkb3B0aW9uKQotICAgICAgICAgICAgICAgaWYgeyR2YXJzKGhpZ2hfdGltaW5nX2VmZm9ydCkgJiYgW3JlZ2V4cCAiOS4xIiAkdmFycyh2ZXJzaW9uKV19IHsKLSAgICAgICAgICAgICAgICAgIHNldCB2YXJzKGluX3BsYWNlX29wdCkgdHJ1ZQotICAgICAgICAgICAgICAgICAgc2V0IHZhcnMoY3JpdGljYWxfcmFuZ2UpIDEuMAotIyAgICAgICAgICAgICAgICAgIHNldCB2YXJzKHVzZWZ1bF9za2V3KSB0cnVlCi0gICAgICAgICAgICAgICAgICBzZXQgdmFycyhjbG9ja19lY28pIHBvc3RfY3RzCi0gICAgICAgICAgICAgICB9Ci0jICAgICAgICAgICAgICAgaWYgeyR2YXJzKGN0c19lbmdpbmUpID09ICJjY29wdF9kZXNpZ24ifSB7Ci0jICAgICAgICAgICAgICAgICAgc2V0IHZhcnMoY2NvcHRfZWZmb3J0KSBsb3cKLSMgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0KLSAgICAgICAgIGlmIHshW2luZm8gZXhpc3RzIHZhcnModGltZV9pbmZvX2RiKV19IHsKLSAgICAgICAgICAgIHNldCBmbG93X2RlZmF1bHRzKHRpbWVfaW5mb19kYikgJHZhcnMocnB0X2RpcikvdGltZV9pbmZvLmRiCi0gICAgICAgICB9Ci0gICAgICAgICBpZiB7IVtpbmZvIGV4aXN0cyB2YXJzKHRpbWVfaW5mb19mdWxsX3JwdCldfSB7Ci0gICAgICAgICAgICBzZXQgZmxvd19kZWZhdWx0cyh0aW1lX2luZm9fZnVsbF9ycHQpICR2YXJzKHJwdF9kaXIpL3RpbWVfaW5mb19mdWxsLnJwdAotICAgICAgICAgfQotICAgICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycyhodG1sX3N1bW1hcnkpXX0gewotICAgICAgICAgICAgc2V0IGZsb3dfZGVmYXVsdHMoaHRtbF9zdW1tYXJ5KSAkdmFycyhycHRfZGlyKS9zdW1tYXJ5Lmh0bWwKLSAgICAgICAgIH0KLQotICAgICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycyhlbmFibGVfc2lfYXdhcmUpXX0gewotIyAgICAgICAgICAgIGlmIHtbcmVnc3ViICJubSIgJHZhcnMocHJvY2VzcykgIiJdIDw9IDY1fSB7Ci0jICAgICAgICAgICAgICAgc2V0IHZhcnMoZW5hYmxlX3NpX2F3YXJlKSB0cnVlCi0jICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIHNldCB2YXJzKGVuYWJsZV9zaV9hd2FyZSkgZmFsc2UKLSMgICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0KLQotICAgICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycyhkYnNfZm9ybWF0KV19IHsKLSAgICAgICAgICAgIGlmIHtbc3RyaW5nIGNvbXBhcmUgLW5vY2FzZSAkdmFycyhuZXRsaXN0X3R5cGUpICJ2ZXJpbG9nIl0+PTB9IHsKLSAgICAgICAgICAgICAgIHNldCB2YXJzKGRic19mb3JtYXQpIGZlCi0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgc2V0IHZhcnMoZGJzX2Zvcm1hdCkgb2EKLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0KLSAgICAgICAgIGlmIHshW2luZm8gZXhpc3RzIHZhcnMocGFydGl0aW9uX2RpcildfSB7IAotICAgICAgICAgICAgc2V0IHZhcnMocGFydGl0aW9uX2RpcikgUEFSVElUSU9OCi0gICAgICAgICB9Ci0gICAgICAgICBpZiB7IVtpbmZvIGV4aXN0cyB2YXJzKHBhcnRpdGlvbl9kaXJfcGFzczIpXX0geyAKLSAgICAgICAgICAgIGlmIHskdmFycyhlbmFibGVfZmxleGlsbSl9IHsKLSAgICAgICAgICAgICAgIHNldCB2YXJzKHBhcnRpdGlvbl9kaXJfcGFzczIpICR2YXJzKHBhcnRpdGlvbl9kaXIpX1BSRUNUUwotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIHNldCB2YXJzKHBhcnRpdGlvbl9kaXJfcGFzczIpICR2YXJzKHBhcnRpdGlvbl9kaXIpX0NUUwotICAgICAgICAgICAgfQotICAgICAgICAgfQotICAgICAgICAgaWYgeyR2YXJzKHVzZXJfbW9kZSkgPT0gImhpZXIifSB7Ci0gICAgICAgICAgICBGRl9FREk6Om5vcm1hbGl6ZV9maWxlcwotICAgICAgICAgICAgaWYgeyR2YXJzKGVuYWJsZV9mbGV4aWxtKX0gewotIyAgICAgICAgICAgICAgIHNldCB2YXJzKGN0cyxzdGFydGluZ19kYnMpICJcW2dsb2IgKl9wb3N0RUNPLmVuY1xdIgotIyAgICAgICAgICAgICAgICMgRExNIGlzIGEgdHdvIHBhc3MgZmxvdyBidXQgdXNlciBkb2Vzbid0IG5lZWQgdG8gc3BlY2lmeSBpdAotICAgICAgICAgICAgICAgc2V0IHZhcnMoaGllcl9mbG93X3R5cGUpICIycGFzcyIKLSMgICAgICAgICAgICAgICBzZXQgdmFycyhwbGFjZV9vcHRfZGVzaWduKSBmYWxzZQotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIGlmIHskdmFycyhoaWVyX2Zsb3dfdHlwZSkgPT0gIjJwYXNzIn0gewotICAgICAgICAgICAgICAgICAgc2V0IHZhcnMocG9zdGN0cyxzdGFydGluZ19kYnMpIC4KLSAgICAgICAgICAgICAgIH0KLSMgICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0gICAgICAgICBpZiB7W3N0cmluZyBjb21wYXJlIC1ub2Nhc2UgJHZhcnMoZGJzX2Zvcm1hdCkgIm9hIl09PTB9IHsKLSAgICAgICAgICAgIGlmIHshW2luZm8gZXhpc3RzIHZhcnMob2FfYWJzdHJhY3RfbmFtZSldfSB7IHNldCB2YXJzKG9hX2Fic3RyYWN0X25hbWUpIGFic3RyYWN0fQotICAgICAgICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycyhvYV9sYXlvdXRfbmFtZSldfSB7IHNldCB2YXJzKG9hX2xheW91dF9uYW1lKSBsYXlvdXR9Ci0gICAgICAgICAgICBpZiB7IVtpbmZvIGV4aXN0cyB2YXJzKG9hX2Rlc2lnbl9jZWxsKV19IHsgc2V0IHZhcnMob2FfZGVzaWduX2NlbGwpICR2YXJzKGRlc2lnbil9Ci0gICAgICAgICAgICBpZiB7IVtpbmZvIGV4aXN0cyB2YXJzKG9hX2Rlc2lnbl92aWV3KV19IHsgc2V0IHZhcnMob2FfZGVzaWduX3ZpZXcpICIifQotICAgICAgICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycyhvYV9wYXJ0aXRpb25fbGliKV19IHsgc2V0IHZhcnMob2FfcGFydGl0aW9uX2xpYikgT0FfUFROX0xJQn0KLSAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBpZiB7IVtpbmZvIGV4aXN0cyB2YXJzKG9hX2Fic3RyYWN0X25hbWUpXX0geyBzZXQgdmFycyhvYV9hYnN0cmFjdF9uYW1lKSAiIn0KLSAgICAgICAgICAgIGlmIHshW2luZm8gZXhpc3RzIHZhcnMob2FfbGF5b3V0X25hbWUpXX0geyBzZXQgdmFycyhvYV9sYXlvdXRfbmFtZSkgIiJ9Ci0gICAgICAgICAgICBpZiB7IVtpbmZvIGV4aXN0cyB2YXJzKG9hX2Rlc2lnbl9jZWxsKV19IHsgc2V0IHZhcnMob2FfZGVzaWduX2NlbGwpICIifQotICAgICAgICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycyhvYV9kZXNpZ25fdmlldyldfSB7IHNldCB2YXJzKG9hX2Rlc2lnbl92aWV3KSAiIn0KLSAgICAgICAgICAgIGlmIHshW2luZm8gZXhpc3RzIHZhcnMob2FfZGVzaWduX2xpYildfSB7IHNldCB2YXJzKG9hX2Rlc2lnbl9saWIpICIifQotICAgICAgICAgfQotCi0gICAgICAgICBpZiB7KFtzdHJpbmcgdG9sb3dlciAkdmFycyhmaXhfaG9sZCldID09ICJ0cnVlIikgfHwgKCR2YXJzKGZpeF9ob2xkKSA9PSAxKX0gewotICAgICAgICAgICAgc2V0IGluZm9zKCR2YXJzKGluZm9fY291bnQpKSAiQ2hhbmdpbmcgdmFycyhmaXhfaG9sZCkgZnJvbSAkdmFycyhmaXhfaG9sZCkgdG8gXCIkZmxvd19kZWZhdWx0cyhmaXhfaG9sZClcIiIKLSAgICAgICAgICAgIGluY3IgdmFycyhpbmZvX2NvdW50KQotICAgICAgICAgICAgc2V0IHZhcnMoZml4X2hvbGQpICRmbG93X2RlZmF1bHRzKGZpeF9ob2xkKQotICAgICAgICAgfQotICAgICAgICAgaWYgeyhbc3RyaW5nIHRvbG93ZXIgJHZhcnMoZW5hYmxlX29jdildID09ICJ0cnVlIikgfHwgKCR2YXJzKGVuYWJsZV9vY3YpID09IDEpfSB7Ci0gICAgICAgICAgICBzZXQgaW5mb3MoJHZhcnMoaW5mb19jb3VudCkpICJDaGFuZ2luZyB2YXJzKGVuYWJsZV9vY3YpIGZyb20gXCIkdmFycyhlbmFibGVfc3MpXCIgdG8gXCJwcmVfcG9zdHJvdXRlXCIiCi0gICAgICAgICAgICBpbmNyIHZhcnMoaW5mb19jb3VudCkKLSAgICAgICAgICAgIHNldCB2YXJzKGVuYWJsZV9vY3YpIHByZV9jdHMKLSAgICAgICAgIH0gZWxzZWlmIHsoJHZhcnMoZW5hYmxlX29jdikgPT0gIm5vbmUiKSB8fCAoJHZhcnMoZW5hYmxlX29jdikgPT0gMCl9IHsKLSAgICAgICAgICAgIHNldCBpbmZvcygkdmFycyhpbmZvX2NvdW50KSkgIkNoYW5naW5nIHZhcnMoZW5hYmxlX29jdikgZnJvbSBcIiR2YXJzKGVuYWJsZV9vY3YpXCIgdG8gXCJmYWxzZVwiIgotICAgICAgICAgICAgaW5jciB2YXJzKGluZm9fY291bnQpCi0gICAgICAgICAgICBzZXQgdmFycyhlbmFibGVfb2N2KSBmYWxzZQotICAgICAgICAgfQotICAgICAgICAgaWYge1tsaW5kZXggW3NwbGl0ICR2YXJzKHZlcnNpb24pICIuIl0gIDBdID4gMTF9IHsKLSAgICAgICAgICAgIGlmIHtbc3RyaW5nIHRvbG93ZXIgJHZhcnMoZW5hYmxlX29jdildID09ICJmYWxzZSJ9IHsKLSAgICAgICAgICAgICAgIGlmIHtbbGluZGV4IFtzcGxpdCAkdmFycyh2ZXJzaW9uKSAiLiJdICAwXSA8IDE1fSB7Ci0gICAgICAgICAgICAgICAgICBzZXQgaW5mb3MoJHZhcnMoaW5mb19jb3VudCkpICJDaGFuZ2luZyB2YXJzKGVuYWJsZV9vY3YpIGZyb20gXCIkdmFycyhlbmFibGVfb2N2KVwiIHRvIFwicHJlX3Bvc3Ryb3V0ZVwiIgotICAgICAgICAgICAgICAgICAgaW5jciB2YXJzKGluZm9fY291bnQpCi0gICAgICAgICAgICAgICAgICBzZXQgdmFycyhlbmFibGVfb2N2KSAicHJlX3Bvc3Ryb3V0ZSIKLSAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICBzZXQgaW5mb3MoJHZhcnMoaW5mb19jb3VudCkpICJDaGFuZ2luZyB2YXJzKGVuYWJsZV9vY3YpIGZyb20gXCIkdmFycyhlbmFibGVfb2N2KVwiIHRvIFwicHJlX2N0c1wiIgotICAgICAgICAgICAgICAgICAgaW5jciB2YXJzKGluZm9fY291bnQpCi0gICAgICAgICAgICAgICAgICBzZXQgdmFycyhlbmFibGVfb2N2KSAicHJlX2N0cyIKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0KLSAgICAgICAgIGlmIHsoW3N0cmluZyB0b2xvd2VyICR2YXJzKGVuYWJsZV9zcyldID09ICJ0cnVlIikgfHwgKCR2YXJzKGVuYWJsZV9zcykgPT0gMSl9IHsKLSAgICAgICAgICAgIHNldCBpbmZvcygkdmFycyhpbmZvX2NvdW50KSkgIkNoYW5naW5nIHZhcnMoZW5hYmxlX3NzKSBmcm9tICR2YXJzKGVuYWJsZV9zcykgdG8gXCJwcmVfcG9zdHJvdXRlXCIiCi0gICAgICAgICAgICBpbmNyIHZhcnMoaW5mb19jb3VudCkKLSAgICAgICAgICAgIHNldCB2YXJzKGVuYWJsZV9zcykgcHJlX3Bvc3Ryb3V0ZQotICAgICAgICAgfSBlbHNlaWYgeygkdmFycyhlbmFibGVfc3MpID09ICJub25lIikgfHwgKCR2YXJzKGVuYWJsZV9zcykgPT0gMCl9IHsKLSAgICAgICAgICAgIHNldCBpbmZvcygkdmFycyhpbmZvX2NvdW50KSkgIkNoYW5naW5nIHZhcnMoZW5hYmxlX3NzKSBmcm9tICR2YXJzKGVuYWJsZV9zcykgdG8gXCJmYWxzZVwiIgotICAgICAgICAgICAgaW5jciB2YXJzKGluZm9fY291bnQpCi0gICAgICAgICAgICBzZXQgdmFycyhlbmFibGVfc3MpIGZhbHNlCi0gICAgICAgICB9Ci0gICAgICAgICBpZiB7KFtzdHJpbmcgdG9sb3dlciAkdmFycyhtZXRhbGZpbGwpXSA9PSAibm9uZSIpIHx8IChbc3RyaW5nIHRvbG93ZXIgJHZhcnMobWV0YWxmaWxsKV0gPT0gImZhbHNlIiAmJiAkdmFycyhtZXRhbGZpbGwpICE9ICJmYWxzZSIpIHx8ICgkdmFycyhtZXRhbGZpbGwpID09IDApfSB7Ci0gICAgICAgICAgICBzZXQgaW5mb3MoJHZhcnMoaW5mb19jb3VudCkpICJDaGFuZ2luZyB2YXJzKG1ldGFsZmlsbCkgZnJvbSAkdmFycyhtZXRhbGZpbGwpIHRvIFwiZmFsc2VcIiIKLSAgICAgICAgICAgIGluY3IgdmFycyhpbmZvX2NvdW50KQotICAgICAgICAgICAgc2V0IHZhcnMobWV0YWxmaWxsKSBmYWxzZQotICAgICAgICAgfQotICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGNsb2NrX2VjbyldfSB7Ci0gICAgICAgICAgICBpZiB7KCR2YXJzKGNsb2NrX2VjbykgPT0gInRydWUiKSB8fCAoJHZhcnMoY2xvY2tfZWNvKSA9PSAxKX0gewotICAgICAgICAgICAgICAgc2V0IGluZm9zKCR2YXJzKGluZm9fY291bnQpKSAiQ2hhbmdpbmcgdmFycyhjbG9ja19lY28pIGZyb20gJHZhcnMoY2xvY2tfZWNvKSB0byBcInBvc3RfY3RzXCIiCi0gICAgICAgICAgICAgICBpbmNyIHZhcnMoaW5mb19jb3VudCkKLSAgICAgICAgICAgICAgIHNldCB2YXJzKGNsb2NrX2VjbykgcG9zdF9jdHMKLSAgICAgICAgICAgIH0gZWxzZWlmIHsoJHZhcnMoY2xvY2tfZWNvKSA9PSAiZmFsc2UiKSB8fCAoJHZhcnMoY2xvY2tfZWNvKSA9PSAwKX0gewotICAgICAgICAgICAgICAgc2V0IGluZm9zKCR2YXJzKGluZm9fY291bnQpKSAiQ2hhbmdpbmcgdmFycyhjbG9ja19lY28pIGZyb20gJHZhcnMoY2xvY2tfZWNvKSB0byBcIm5vbmVcIiIKLSAgICAgICAgICAgICAgIGluY3IgdmFycyhpbmZvX2NvdW50KQotICAgICAgICAgICAgICAgc2V0IHZhcnMoY2xvY2tfZWNvKSBub25lCi0gICAgICAgICAgICB9IGVsc2VpZiB7KCR2YXJzKGNsb2NrX2VjbykgPT0gInByZXJvdXRlIikgfHwgKCR2YXJzKGNsb2NrX2VjbykgPT0gInByZV9yb3V0ZSIpfSB7Ci0gICAgICAgICAgICAgICBzZXQgaW5mb3MoJHZhcnMoaW5mb19jb3VudCkpICJDaGFuZ2luZyB2YXJzKGNsb2NrX2VjbykgZnJvbSAkdmFycyhjbG9ja19lY28pIHRvIFwicG9zdF9jdHNcIiIKLSAgICAgICAgICAgICAgIGluY3IgdmFycyhpbmZvX2NvdW50KQotICAgICAgICAgICAgICAgc2V0IHZhcnMoY2xvY2tfZWNvKSBwb3N0X2N0cwotICAgICAgICAgICAgfSBlbHNlaWYgeyR2YXJzKGNsb2NrX2VjbykgPT0gInBvc3Ryb3V0ZSJ9IHsKLSAgICAgICAgICAgICAgIHNldCBpbmZvcygkdmFycyhpbmZvX2NvdW50KSkgIkNoYW5naW5nIHZhcnMoY2xvY2tfZWNvKSBmcm9tICR2YXJzKGNsb2NrX2VjbykgdG8gXCJwb3N0X3JvdXRlXCIiCi0gICAgICAgICAgICAgICBpbmNyIHZhcnMoaW5mb19jb3VudCkKLSAgICAgICAgICAgICAgIHNldCB2YXJzKGNsb2NrX2VjbykgcG9zdF9yb3V0ZQotICAgICAgICAgICAgfQotICAgICAgICAgfQotICAgICAgICAgaWYgeyhbc3RyaW5nIHRvbG93ZXIgJHZhcnModXNlX2ZsZXhtb2RlbHMpXSA9PSAidHJ1ZSIpIHx8ICgkdmFycyh1c2VfZmxleG1vZGVscykgPT0gMSl9IHsKLSAgICAgICAgICAgIHNldCB2YXJzKHVzZV9mbGV4bW9kZWxzKSAxCi0gICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgc2V0IHZhcnModXNlX2ZsZXhtb2RlbHMpIDAKLSAgICAgICAgIH0KLSMgICAgICAgICBpZiB7JHZhcnModXNlX2ZsZXhtb2RlbHMpICYmICR2YXJzKHBsYWNlX29wdF9kZXNpZ24pfSB7Ci0jICAgICAgICAgICAgc2V0IHdhcm5pbmdzKCR2YXJzKHdhcm5pbmdfY291bnQpKSAiU2V0dGluZyB2YXJzKHBsYWNlX29wdF9kZXNpZ24pIHRvICdmYWxzZScgYXMgdmFycyh1c2VfZmxleG1vZGVscykgaXMgdHJ1ZSIKLSMgICAgICAgICAgICBpbmNyIHZhcnMod2FybmluZ19jb3VudCkKLSMgICAgICAgICAgICBzZXQgdmFycyhwbGFjZV9vcHRfZGVzaWduKSBmYWxzZQotIyAgICAgICAgIH0KLSAgICAgICAgIGlmIHsoW3N0cmluZyB0b2xvd2VyICR2YXJzKGZsZXhtb2RlbF9hc19wdG4pXSA9PSAidHJ1ZSIpIHx8ICgkdmFycyhmbGV4bW9kZWxfYXNfcHRuKSA9PSAxKX0gewotICAgICAgICAgICAgc2V0IHZhcnMoZmxleG1vZGVsX2FzX3B0bikgMQotICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHNldCB2YXJzKGZsZXhtb2RlbF9hc19wdG4pIDAKLSAgICAgICAgIH0KLSAgICAgICAgIGlmIHsoW3N0cmluZyB0b2xvd2VyICR2YXJzKHBsYWNlbWVudF9iYXNlZF9wdG4pXSA9PSAidHJ1ZSIpIHx8ICgkdmFycyhwbGFjZW1lbnRfYmFzZWRfcHRuKSA9PSAxKX0gewotICAgICAgICAgICAgc2V0IHZhcnMocGxhY2VtZW50X2Jhc2VkX3B0bikgMQotICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHNldCB2YXJzKHBsYWNlbWVudF9iYXNlZF9wdG4pIDAKLSAgICAgICAgIH0KLSAgICAgICAgIGlmIHsoW3N0cmluZyB0b2xvd2VyICR2YXJzKGFidXR0ZWRfZGVzaWduKV0gPT0gInRydWUiKSB8fCAoJHZhcnMoYWJ1dHRlZF9kZXNpZ24pID09IDEpfSB7Ci0gICAgICAgICAgICBzZXQgdmFycyhhYnV0dGVkX2Rlc2lnbikgMQotICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHNldCB2YXJzKGFidXR0ZWRfZGVzaWduKSAwCi0gICAgICAgICB9Ci0gICAgICAgICBpZiB7KFtzdHJpbmcgdG9sb3dlciAkdmFycyhpbnNlcnRfZmVlZHRocm91Z2gpXSA9PSAidHJ1ZSIpIHx8ICgkdmFycyhpbnNlcnRfZmVlZHRocm91Z2gpID09IDEpfSB7Ci0gICAgICAgICAgICBzZXQgdmFycyhpbnNlcnRfZmVlZHRocm91Z2gpIDEKLSAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBzZXQgdmFycyhpbnNlcnRfZmVlZHRocm91Z2gpIDAKLSAgICAgICAgIH0KLSAgICAgICAgIGlmIHshW2luZm8gZXhpc3RzIHZhcnMocmVzaXplX3NoaWZ0ZXJfYW5kX2lzb19pbnN0cyldIHx8ICR2YXJzKHJlc2l6ZV9zaGlmdGVyX2FuZF9pc29faW5zdHMpID09ICIifSB7Ci0gICAgICAgICAgICBzZXQgdmFycyhyZXNpemVfc2hpZnRlcl9hbmRfaXNvX2luc3RzKSB0cnVlCi0gICAgICAgICB9Ci0gICAgICAgICBpZiB7IVtpbmZvIGV4aXN0cyB2YXJzKGFjdGl2aXR5X2ZpbGVfZm9ybWF0KV0gfHwgJHZhcnMoYWN0aXZpdHlfZmlsZV9mb3JtYXQpID09ICIifSB7Ci0gICAgICAgICAgICBzZXQgdmFycyhhY3Rpdml0eV9maWxlX2Zvcm1hdCkgVENGCi0gICAgICAgICB9Ci0gICAgICAgICBpZiB7IVtpbmZvIGV4aXN0cyB2YXJzKHBvd2VyX25ldHMpXX0gewotICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKHB3cm5ldCldfSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIElORk86IFZhcmlhYmxlIHB3cm5ldCBoYXMgYmVlbiBjaGFuZ2VkIHRvIHBvd2VyX25ldHMgLi4uIHBsZWFzZSB1cGRhdGVcbiIKLSAgICAgICAgICAgICAgIHNldCBpbmZvcygkdmFycyhpbmZvX2NvdW50KSkgIlZhcmlhYmxlIHB3cm5ldCBoYXMgYmVlbiBjaGFuZ2VkIHRvIHBvd2VyX25ldHMgLi4uIHBsZWFzZSB1cGRhdGUiCi0gICAgICAgICAgICAgICBpbmNyIHZhcnMoaW5mb19jb3VudCkKLSAgICAgICAgICAgICAgIHNldCB2YXJzKHBvd2VyX25ldHMpICR2YXJzKHB3cm5ldCkKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBzZXQgdmFycyhwb3dlcl9uZXRzKSAiIgotICAgICAgICAgICAgfQotICAgICAgICAgfQotICAgICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycyhncm91bmRfbmV0cyldfSB7Ci0gICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoZ25kbmV0KV19IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgSU5GTzogVmFyaWFibGUgZ25kbmV0IGhhcyBiZWVuIGNoYW5nZWQgdG8gZ3JvdW5kX25ldHMgLi4uIHBsZWFzZSB1cGRhdGVcbiIKLSAgICAgICAgICAgICAgIHNldCBpbmZvcygkdmFycyhpbmZvX2NvdW50KSkgIlZhcmlhYmxlIGduZG5ldCBoYXMgYmVlbiBjaGFuZ2VkIHRvIGdyb3VuZF9uZXRzIC4uLiBwbGVhc2UgdXBkYXRlIgotICAgICAgICAgICAgICAgaW5jciB2YXJzKGluZm9fY291bnQpCi0gICAgICAgICAgICAgICBzZXQgdmFycyhncm91bmRfbmV0cykgJHZhcnMoZ25kbmV0KQotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIHNldCB2YXJzKGdyb3VuZF9uZXRzKSAiIgotICAgICAgICAgICAgfQotICAgICAgICAgfQotICAgICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycyhzdXBlcmhvc3RzKV19IHsKLSAgICAgICAgICAgIHNldCB2YXJzKHN1cGVyaG9zdHMpIDAKLSAgICAgICAgIH0KLQotICAgICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycyhzdXBlcnRocmVhZHMpXX0gewotICAgICAgICAgICAgc2V0IHZhcnMoc3VwZXJ0aHJlYWRzKSAxCi0gICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgaWYgeygkdmFycyh0aHJlYWRzKSA+IDEpICYmICgkdmFycyhzdXBlcnRocmVhZHMpID09IDEpfSB7Ci0gICAgICAgICAgICAgICBzZXQgdmFycyhzdXBlcnRocmVhZHMpICR2YXJzKHRocmVhZHMpCi0gICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0gICAgICAgICBpZiB7IVtpbmZvIGV4aXN0cyB2YXJzKG1ha2VmaWxlKV19IHsKLSAgICAgICAgICAgIHNldCB2YXJzKG1ha2VmaWxlKSAxCi0gICAgICAgICB9Ci0gICAgICAgICBpZiB7IVtpbmZvIGV4aXN0cyB2YXJzKGZsYXQpXX0gewotICAgICAgICAgICAgc2V0IHZhcnMoZmxhdCkgbm9uZQotICAgICAgICAgfQotICAgICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycyhhYm9ydCldfSB7Ci0gICAgICAgICAgICBzZXQgdmFycyhhYm9ydCkgMAotICAgICAgICAgfQotICAgICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycyhjYXRjaF9lcnJvcnMpXX0gewotICAgICAgICAgICAgc2V0IHZhcnMoY2F0Y2hfZXJyb3JzKSAxCi0gICAgICAgICB9Ci0gICAgICAgICBpZiB7IVtpbmZvIGV4aXN0cyB2YXJzKHJlc3RvcmVfZGVzaWduKV19IHsKLSAgICAgICAgICAgIHNldCB2YXJzKHJlc3RvcmVfZGVzaWduKSAxCi0gICAgICAgICB9Ci0gICAgICAgICBpZiB7JHZhcnMoY2F0Y2hfZXJyb3JzKX0gewotICAgICAgICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycyhzYXZlX29uX2NhdGNoKV19IHsKLSAgICAgICAgICAgICAgIHNldCB2YXJzKHNhdmVfb25fY2F0Y2gpIDEKLSAgICAgICAgICAgIH0gCi0gICAgICAgICAgICBpZiB7IVtpbmZvIGV4aXN0cyB2YXJzKGV4aXRfb25fZXJyb3IpXX0gewotICAgICAgICAgICAgICAgc2V0IHZhcnMoZXhpdF9vbl9lcnJvcikgMQotICAgICAgICAgICAgfSAKLSAgICAgICAgIH0KLSAgICAgICAgIGlmIHshW2luZm8gZXhpc3RzIGVudihWUEFUSCldfSB7Ci0gICAgICAgICAgICBzZXQgZW52KFZQQVRIKSAkZmxvd19kZWZhdWx0cyh2cGF0aCkKLSAgICAgICAgICAgIFB1dHMgIjxGRj4gSU5GTzogU2V0dGluZyBlbnYoVlBBVEgpIHRvICRmbG93X2RlZmF1bHRzKHZwYXRoKSIKLSAgICAgICAgIH0KLSAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhjcGZfZmlsZSldfSB7Ci0gICAgICAgICAgICBpZiB7IVtpbmZvIGV4aXN0cyB2YXJzKGNwZl90aW1pbmcpXX0gewotICAgICAgICAgICAgICAgc2V0IHZhcnMoY3BmX3RpbWluZykgdHJ1ZQotIyAgICAgICAgICAgICAgIHNldCB2YXJzKGZsYXQpIHRydWUKLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBzZXQgdmFycyhjcGZfdGltaW5nKSBmYWxzZQotICAgICAgICAgfQotCi0gICAgICAgICBpZiB7ISR2YXJzKGNvZGVnZW4pfSB7IAotICAgICAgICAgICAgaWYge1tGRjo6aXNfbHBfZmxvd119IHsKLSAgICAgICAgICAgICAgIGNhdGNoIHthbGlhcyBmZl9tb2RpZnlfcG93ZXJfZG9tYWlucyBGRl9FREk6Om1vZGlmeV9wb3dlcl9kb21haW5zfQotICAgICAgICAgICAgICAgY2F0Y2gge2FsaWFzIGZmX2FkZF9wb3dlcl9zd2l0Y2hlcyBGRl9FREk6OmFkZF9wb3dlcl9zd2l0Y2hlc30KLSAgICAgICAgICAgICAgIGNhdGNoIHthbGlhcyBmZl9yb3V0ZV9zZWNvbmRhcnlfcGdfbmV0cyBGRl9FREk6OnJvdXRlX3NlY29uZGFyeV9wZ19uZXRzfQotICAgICAgICAgICAgICAgY2F0Y2gge2FsaWFzIGZmX2dldF9wb3dlcl9kb21haW5zIEZGX0VESTo6Z2V0X3Bvd2VyX2RvbWFpbnN9Ci0gICAgICAgICAgICAgICBjYXRjaCB7YWxpYXMgZmZfYnVmZmVyX2Fsd2F5c19vbl9uZXRzIEZGX0VESTo6YnVmZmVyX2Fsd2F5c19vbl9uZXRzfQotICAgICAgICAgICAgICAgY2F0Y2gge2FsaWFzIGZmX2luc2VydF93ZWxsdGFwc19lbmRjYXBzIEZGX0VESTo6aW5zZXJ0X3dlbGx0YXBzX2VuZGNhcHN9Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBzZXQgZmxvd19kZWZhdWx0cyhzY3JpcHRfZGlyKSAiLiIKLSAgICAgICAgfQotCi0jIFJlbWVtYmVyIHRoZXNlIGZvciBzdGVwIGJhc2VkIHJlcG9ydGluZyAuLi4KLSAgICAgICAgIHNldCB2YXJzKG9yaWdfcnB0X2RpcikgICR2YXJzKHJwdF9kaXIpCi0gICAgICAgICBzZXQgdmFycyhvcmlnX2xvZ19kaXIpICAkdmFycyhsb2dfZGlyKQotICAgICAgICAgc2V0IHZhcnMob3JpZ19kYnNfZGlyKSAgJHZhcnMoZGJzX2RpcikKLQotIyBBZGQgdGhlc2UgZm9yIGdldCBtZXRyaWMKLSAgICAgICAgIGlmIHshW2luZm8gZXhpc3RzIHZhcnMoaHRtbF9zdW1tYXJ5KV19IHsKLSAgICAgICAgICAgIHNldCB2YXJzKGh0bWxfc3VtbWFyeSkgICR2YXJzKHJwdF9kaXIpL3N1bW1hcnkuaHRtbAotICAgICAgICAgfQotICAgICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycyh0aW1lX2luZm9fZGIpXX0gewotICAgICAgICAgICAgc2V0IHZhcnModGltZV9pbmZvX2RiKSAgJHZhcnMocnB0X2RpcikvdGltZV9pbmZvLmRiCi0gICAgICAgICB9Ci0gICAgICAgICBpZiB7IVtpbmZvIGV4aXN0cyB2YXJzKHRpbWVfaW5mb19ycHQpXX0gewotICAgICAgICAgICAgc2V0IHZhcnModGltZV9pbmZvX3JwdCkgICR2YXJzKHJwdF9kaXIpL3RpbWVfaW5mby5ycHQKLSAgICAgICAgIH0KLQotICAgICAgICAgaWYge1tpbmZvIGNvbW1hbmQgRkZGOjpnZXRfdG9vbF0gbmUgIiIgJiYgW0ZGRjo6Z2V0X3Rvb2xdIGVxICJyYyJ9IHsKLSAgICAgICAgICAgdGNsX3NvdXJjZSAkdmFycyhzY3JpcHRfcGF0aCkvRVRDL0lOTk9WVVMvdWRtLnRjbAotICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgc291cmNlICR2YXJzKHNjcmlwdF9wYXRoKS9FVEMvSU5OT1ZVUy91ZG0udGNsCi0gICAgICAgICB9Ci0gICAgICAgICBpZiB7ISR2YXJzKHJjKSB8fCAoJHZhcnMocmMpICYmICFbaW5mbyBleGlzdHMgdmFycyhyY19zdGVwcyldKX0gewotICAgICAgICAgICAgc2V0IHZhcnMoc2VlZCkgMQotICAgICAgICAgfQotICAgICAgfQotCi0jICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycyh2aWV3X2RlZmluaXRpb25fdGNsKV19IHsKLSAgICAgICAgIEZGX0VESTo6bm9ybWFsaXplX2NvbnN0cmFpbnRzIAotIyAgICAgIH0KLQotICAgICAgIyBEaXNhYmxlIHRoaXMgZm9yIDE0LjIwCi0gICAgICBzZXQgdmFycyhnZW5lcmF0ZV9mbG93X3N0ZXBzKSAwCi0KLSAgICAgIGlmIHskdmFycyhnZW5lcmF0ZV9mbG93X3N0ZXBzKX0gewotICAgICAgICAgc2V0IHZhcnMoc2tpcF9zaWdub2ZmX2NoZWNrcykgdHJ1ZQotICAgICAgICAgRkZfRURJOjpub3JtYWxpemVfZmlsZXMgCi0gICAgICB9Ci0KLSMgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnModmlld19kZWZpbml0aW9uX3RjbCldfSB7Ci0jICAgICAgICAgc2V0IHZhcnMoc2tpcF9zaWdub2ZmX2NoZWNrcykgZmFsc2UKLSMgICAgICB9Ci0gICAgICAjICBSQyBTdHVmZiAuLi4KLSAgICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gICAgICBpZiB7JHZhcnMocmMpfSB7Ci0gICAgICAgICBpZiB7IVtpbmZvIGV4aXN0cyB2YXJzKG92Zl9kaXIpXX0geyBzZXQgdmFycyhvdmZfZGlyKSBPVkYgfQotICAgICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycyhsZWNfZGlyKV19IHsgc2V0IHZhcnMobGVjX2RpcikgTEVDIH0KLSAgICAgICAgIGlmIHshW2luZm8gZXhpc3RzIHZhcnMoZW5hYmxlX3JjcCldfSB7IHNldCB2YXJzKGVuYWJsZV9yY3ApIDAgfQotICAgICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycyhlbmFibGVfcGFtKV19IHsgc2V0IHZhcnMoZW5hYmxlX3BhbSkgMCB9Ci0gICAgICAgICBzZXQgdmFycyhzeW5fbWFwLHNldF9taXNjX2F0dHJpYnV0ZXMsc2tpcCkgZmFsc2UKLSAgICAgICAgIHNldCB2YXJzKHN5bl9tYXAsc2V0X2xpYl9hdHRyaWJ1dGVzLHNraXApIGZhbHNlCi0gICAgICAgICBzZXQgdmFycyhzeW5fbWFwLHNldF9oZGxfYXR0cmlidXRlcyxza2lwKSBmYWxzZQotICAgICAgICAgc2V0IHZhcnMoc3luX21hcCxzZXRfaWNnX2F0dHJpYnV0ZXMsc2tpcCkgdHJ1ZQotICAgICAgICAgc2V0IHZhcnMoc3luX21hcCxzZXRfZGZ0X2F0dHJpYnV0ZXMsc2tpcCkgdHJ1ZQotICAgICAgICAgc2V0IHZhcnMoc3luX2luY3Isc2V0X29wdF9hdHRyaWJ1dGVzLHNraXApIHRydWUKLQotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgIyBTZXQgbmV0bGlzdCBhbmQgZGVmIHZhcmlhYmxlcyB3aGVuIFJDIC8gUkNQIGVuYWJsZWQKLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICAgIGlmIHskdmFycyhlbmFibGVfcmNwKX0gewotICAgICAgICAgICAgc2V0IHZhcnMobmV0bGlzdCkgJHZhcnMoZGJzX2Rpcikvc3luX3BsYWNlL3N5bl9wbGFjZS52Lmd6Ci0gICAgICAgICAgICBzZXQgdmFycyhkZWZfZmlsZXMpICR2YXJzKGRic19kaXIpL3N5bl9wbGFjZS9zeW5fcGxhY2UuZGVmLmd6Ci0gICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgc2V0IHZhcnMobmV0bGlzdCkgJHZhcnMoZGJzX2Rpcikvc3luX2luY3Ivc3luX2luY3Iudi5negotIyAgICAgICAgICAgIHNldCB2YXJzKGRlZl9maWxlcykgJHZhcnMoZGJzX2Rpcikvc3luX2luY3Ivc3luX2luY3IuZGVmLmd6Ci0gICAgICAgICB9Ci0gICAgICB9Ci0KLSAgIH0KLQotICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgIyBQcm9jZWR1cmUgdG8gY2hlY2sgdGhlIGZsb3cgdmFyaWFibGVzIGRlZmluZWQgaW4gdGhlIHNldHVwLnRjbAotICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgcHJvYyBjaGVja19zZXR1cCB7fSB7Ci0KLSAgICAgIGdsb2JhbCB2YXJzCi0gICAgICBnbG9iYWwgdHZhcnMKLSAgICAgIGdsb2JhbCBlcnJvcnMKLSAgICAgIGdsb2JhbCB3YXJuaW5ncwotICAgICAgZ2xvYmFsIGluZm9zCi0gICAgICBnbG9iYWwgY2hlY2sKLQotICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGNoZWNrX3NldHVwKV0gICYmICEkdmFycyhjaGVja19zZXR1cCl9IHsKLSAgICAgICAgIHJldHVybgotICAgICAgfQotCi0gICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMod2FybmluZ19jb3VudCldfSB7Ci0gICAgICAgICBzZXQgd2FybmluZ19jb3VudCAkdmFycyh3YXJuaW5nX2NvdW50KQotICAgICAgfSBlbHNlIHsKLSAgICAgICAgIHNldCB3YXJuaW5nX2NvdW50IDAKLSAgICAgIH0KLSAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhlcnJvcl9jb3VudCldfSB7Ci0gICAgICAgICBzZXQgZXJyb3JfY291bnQgJHZhcnMoZXJyb3JfY291bnQpCi0gICAgICB9IGVsc2UgewotICAgICAgICAgc2V0IGVycm9yX2NvdW50IDAKLSAgICAgIH0KLSAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhpbmZvX2NvdW50KV19IHsKLSAgICAgICAgIHNldCBpbmZvX2NvdW50ICR2YXJzKGluZm9fY291bnQpCi0gICAgICB9IGVsc2UgewotICAgICAgICAgc2V0IGluZm9fY291bnQgMAotICAgICAgfQotCi0gICAgICBpZiB7JHZhcnMocGxhY2Vfb3B0X2Rlc2lnbikgJiYgJHZhcnMoZW5hYmxlX2ZsZXhpbG0pfSB7Ci0gICAgICAgICBzZXQgd2FybmluZ3MoJHdhcm5pbmdfY291bnQpICJGZWF0dXJlIHZhcnMocGxhY2Vfb3B0X2Rlc2lnbikgbm90IHN1cHBvcnQgZm9yIHRvcCBsZXZlbCBpbXBsZW1lbnRhdGlvbiB3aGVuIHZhcnMoZW5hYmxlX2ZsZXhpbG0pIGlzIHRydWUiCi0gICAgICAgICBpbmNyIHdhcm5pbmdfY291bnQKLSAgICAgIH0KLQotICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKHBvd2VyX2FuYWx5c2lzX3ZpZXcpXX0gewotICAgICAgICAgaWYge1tsc2VhcmNoIFtjb25jYXQgJHZhcnMoc2V0dXBfYW5hbHlzaXNfdmlld3MpICR2YXJzKGhvbGRfYW5hbHlzaXNfdmlld3MpXSAkdmFycyhwb3dlcl9hbmFseXNpc192aWV3KV0gPT0gLTF9IHsKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgRVJST1I6IFBvd2VyIGFuYWx5c2lzIHZpZXcgJHZhcnMocG93ZXJfYW5hbHlzaXNfdmlldykgaXMgbm90IGEgZGVmaW5lZCB2aWV3XG4iCi0gICAgICAgICAgICBzZXQgZXJyb3JzKCRlcnJvcl9jb3VudCkgIlBvd2VyIGFuYWx5c2lzIHZpZXcgJHZhcnMocG93ZXJfYW5hbHlzaXNfdmlldykgaXMgbm90IGEgZGVmaW5lZCB2aWV3IgotICAgICAgICAgICAgaW5jciBlcnJvcl9jb3VudAotICAgICAgICAgfQotICAgICAgfQotCi0gICAgICBzZXQgdmFsaWQgW2xpc3QgdHJpYWxfaXBvIGdpZ2Ffb3B0IHByb3RvX25ldF9kZWxheV9tb2RlbF0KLSAgICAgIGlmIHtbbHNlYXJjaCAkdmFsaWQgW3N0cmluZyB0b2xvd2VyICR2YXJzKGJ1ZGdldF9tb2RlKV1dID09IC0xfSB7Ci0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIEVSUk9SOiBWYXJpYWJsZSB2YXJzKGJ1ZGdldF9tb2RlKSBoYXMgaWxsZWdhbCB2YWx1ZSAkdmFycyhidWRnZXRfbW9kZSlcbiIKLSAgICAgICAgIHNldCBlcnJvcnMoJGVycm9yX2NvdW50KSAiVmFyaWFibGUgdmFycyhidWRnZXRfbW9kZSkgaGFzIGlsbGVnYWwgdmFsdWUgJHZhcnMoYnVkZ2V0X21vZGUpIgotICAgICAgICAgaW5jciBlcnJvcl9jb3VudAotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICAgICAgICAgTXVzdCBiZSBvbmUgb2YgJyR2YWxpZCdcbiIKLSAgICAgIH0KLSAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhjdHNfZW5naW5lKV19IHsKLSAgICAgICAgIGlmIHtbc3RyaW5nIHRvbG93ZXIgJHZhcnMoY3RzX2VuZ2luZSldID09ICJjY29wdGRlc2lnbiJ9IHsgCi0gICAgICAgICAgICBzZXQgdmFycyhjdHNfZW5naW5lKSBjY29wdCAKLSAgICAgICAgIH0gCi0gICAgICAgICBpZiB7W3N0cmluZyB0b2xvd2VyICR2YXJzKGN0c19lbmdpbmUpXSA9PSAiY2xvY2tkZXNpZ24ifSB7IAotICAgICAgICAgICAgc2V0IHZhcnMoY3RzX2VuZ2luZSkgY3RzIAotICAgICAgICAgfQotICAgICAgICAgc2V0IHZhbGlkIFtsaXN0IGN0cyBjY29wdCBjY29wdF9jdHNdCi0gICAgICAgICBpZiB7W2xzZWFyY2ggJHZhbGlkIFtzdHJpbmcgdG9sb3dlciAkdmFycyhjdHNfZW5naW5lKV1dID09IC0xfSB7Ci0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIEVSUk9SOiBWYXJpYWJsZSB2YXJzKGN0c19lbmdpbmUpIGhhcyBpbGxlZ2FsIHZhbHVlICR2YXJzKGN0c19lbmdpbmUpXG4iCi0gICAgICAgICAgICBzZXQgZXJyb3JzKCRlcnJvcl9jb3VudCkgIlZhcmlhYmxlIHZhcnMoY3RzX2VuZ2luZSkgaGFzIGlsbGVnYWwgdmFsdWUgJHZhcnMoY3RzX2VuZ2luZSkiCi0gICAgICAgICAgICBpbmNyIGVycm9yX2NvdW50Ci0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgICAgICAgICBNdXN0IGJlIG9uZSBvZiAnJHZhbGlkJ1xuIgotICAgICAgICAgfQotICAgICAgfQotCi0jICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGN0c19zcGVjKV19IHsKLSMgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIElORk86IFZhcmlhYmxlIGN0c19zcGVjIGRlZmluZWQgc28gc2V0IGN0c19lbmdpbmUgdG8gY3RzXG4iCi0jICAgICAgICAgc2V0IGluZm9zKCRpbmZvX2NvdW50KSAiVmFyaWFibGUgY3RzX3NwZWMgZGVmaW5lZCBzbyBzZXQgY3RzX2VuZ2luZSB0byBjdHMiCi0jICAgICAgICAgaW5jciBpbmZvX2NvdW50Ci0jICAgICAgICAgc2V0IHZhcnMoY3RzX2VuZ2luZSkgY3RzCi0jICAgICAgICAgZm9yZWFjaCBmaWxlICR2YXJzKGN0c19zcGVjKSB7Ci0jICAgICAgICAgICAgbGFwcGVuZCBjaGVjayhmaWxlcykgJGZpbGUKLSMgICAgICAgICB9Ci0jICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICBJTkZPOiAgICBjdHNfc3BlYyA9ICR2YXJzKGN0c19zcGVjKVxuIgotIyAgICAgIH0KLQotICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGNjb3B0X2ludGVncmF0aW9uKV19IHsKLSAgICAgICAgIHNldCB2YWxpZCB7c2NyaXB0ZWQgbmF0aXZlfQotICAgICAgICAgaWYge1tsc2VhcmNoICR2YWxpZCAkdmFycyhjY29wdF9pbnRlZ3JhdGlvbildID09IC0xfSB7Ci0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIEVSUk9SOiBWYXJpYWJsZSB2YXJzKGN0c19lbmdpbmUpIGhhcyBpbGxlZ2FsIHZhbHVlICR2YXJzKGN0c19lbmdpbmUpXG4iCi0gICAgICAgICAgICBzZXQgZXJyb3JzKCRlcnJvcl9jb3VudCkgIlZhcmlhYmxlIHZhcnMoY3RzX2VuZ2luZSkgaGFzIGlsbGVnYWwgdmFsdWUgJHZhcnMoY3RzX2VuZ2luZSkiCi0gICAgICAgICAgICBpbmNyIGVycm9yX2NvdW50Ci0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgICAgICAgICBNdXN0IGJlIG9uZSBvZiAnJHZhbGlkJ1xuIgotICAgICAgICAgfQotICAgICAgfSBlbHNlIHsKLSAgICAgICAgICMgRGVmYXVsdCB0byBuYXRpdmUgaW50ZWdyYXRpb24KLSAgICAgICAgIHNldCB2YXJzKGNjb3B0X2ludGVncmF0aW9uKSAibmF0aXZlIgotICAgICAgfQotICAgICAgaWYge1tsaW5kZXggW3NwbGl0ICR2YXJzKHZlcnNpb24pICIuIl0gIDBdID4gMTB9IHsKLSAgICAgICAgIGZvcmVhY2ggdmFyIFthcnJheSBuYW1lcyB2YXJzXSB7Ci0gICAgICAgICAgICBzZXQgc2F2ZV92YXJzKCR2YXIpICR2YXJzKCR2YXIpCi0gICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHR2YXJzKCR2YXIpXX0gewotICAgICAgICAgICAgICAgc2V0IHZhcnMoJHZhcikgJHR2YXJzKCR2YXIpCi0gICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0gICAgICB9Ci0KLSAgICAgIHNldCBjb21tYW5kcyAgIiIKLQotICAgICAgc2V0IGNoZWNrKGZpbGVzKSBbbGlzdF0KLSAgICAgIHNldCBjaGVjayhpbnRlZ2VycykgW2xpc3RdCi0KLQotICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycyhhYm9ydCldfSB7Ci0gICAgICAgICBzZXQgdmFycyhhYm9ydCkgMAotICAgICAgfQotCi0gICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoY2hlY2tfdmFycyldICYmICR2YXJzKGNoZWNrX3ZhcnMpfSB7Ci0gICAgICAgICBzb3VyY2UgJHZhcnMoc2NyaXB0X3Jvb3QpL0VUQy9JTk5PVlVTL2NoZWNrX3ZhcnMudGNsCi0gICAgICB9Ci0KLSAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICAgICAgICAgICAgICAgUmVxdWlyZWQgVmFyaWFibGVzXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgIiMgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiIKLSAgICAgIHNldCBjb3VudCAwCi0gICAgICBmb3JlYWNoIHJlcXVpcmVkICJmcF90Y2xfZmlsZSBmcF9maWxlIGRlZl9maWxlcyIgewotICAgICAgICAgaWYgeyEkdmFycyhyYyl9IHsKLSAgICAgICAgICAgIyBCQ0w6IE9ubHkgY2hlY2sgZm9yIHZhcnMoZGVmX2ZpbGVzKSBpZiBub3QgaW4gUkMgbW9kZQotICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJHJlcXVpcmVkKV0gJiYgKCR2YXJzKCRyZXF1aXJlZCkgIT0gIiIpfSB7Ci0gICAgICAgICAgICAgIGlmIHskcmVxdWlyZWQgPT0gImRlZl9maWxlcyJ9IHsKLSAgICAgICAgICAgICAgICAgc2V0IGZpcnN0IDEKLSAgICAgICAgICAgICAgICAgIyBCQ0w6IEFkZGVkIHN1YnN0IGFyb3VuZCB2YXJzKGRlZl9maWxlcykgdG8gcmVzb2x2ZSB2YXJzKHJ1bmRpcikKLSAgICAgICAgICAgICAgICAgZm9yZWFjaCBmaWxlIFtzdWJzdCAkdmFycyhkZWZfZmlsZXMpXSB7Ci0gICAgICAgICAgICAgICAgICAgIGlmIHskZmlyc3QgPT0gMX0gewotICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIElORk86ICAgICRyZXF1aXJlZCA9ICRmaWxlXG4iCi0gICAgICAgICAgICAgICAgICAgICAgIHNldCBmaXJzdCAwCi0gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgSU5GTzogICAgICAgICAgICAgICAgJGZpbGUiCi0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgaWYgeyEkdmFycyhyYyl9IHsgCi0gICAgICAgICAgICAgICAgICAgICAgIGxhcHBlbmQgY2hlY2soZmlsZXMpICRmaWxlCi0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICBsYXBwZW5kIGNoZWNrKGZpbGVzKSAkdmFycygkcmVxdWlyZWQpCi0gICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgSU5GTzogICAgJHJlcXVpcmVkID0gJHZhcnMoJHJlcXVpcmVkKVxuIgotICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgIGluY3IgY291bnQKLSAgICAgICAgICAgfQotICAgICAgICAgfQotICAgICAgfQotICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGZwX3RjbF9wcm9jKV19IHsKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgSU5GTzogICAgZnBfdGNsX3Byb2MgPSAkdmFycyhmcF90Y2xfcHJvYylcbiIKLSAgICAgICAgIGluY3IgY291bnQKLSAgICAgIH0KLQotICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKG9hX2ZwKV19IHsgCi0gICAgICAgICBpZiB7W2xsZW5ndGggJHZhcnMob2FfZnApXSA9PSAzfSB7Ci0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIElORk86ICAgICAgICAgIG9hX2ZwID0gJHZhcnMob2FfZnApXG4iCi0gICAgICAgICAgICBpbmNyIGNvdW50Ci0gICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICBFUlJPUjogT0EgZmxvb3JwbGFuIHZhcmlhYmxlIChvYV9mcCkgc2hvdWxkIGJlICdsaWIgY2VsbCB2aWV3JyIKLSAgICAgICAgICAgIHNldCBlcnJvcnMoJGVycm9yX2NvdW50KSAiT0EgZmxvb3JwbGFuIHZhcmlhYmxlIChvYV9mcCkgc2hvdWxkIGJlICdsaWIgY2VsbCB2aWV3JyIKLSAgICAgICAgICAgIGluY3IgZXJyb3JfY291bnQKLSAgICAgICAgIH0KLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgICBpZiB7JGNvdW50ID09IDB9IHsKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgV0FSTklORzogTmVpdGhlciBmcF9maWxlLCBkZWZfZmlsZXMsIGZwX3RjbF9maWxlLCBmcF90Y2xfcHJvYyBhcmUgZGVmaW5lZFxuIgotICAgICAgICAgICAgc2V0IHdhcm5pbmdzKCR3YXJuaW5nX2NvdW50KSAiRWl0aGVyIGZwX2ZpbGUsIGRlZl9maWxlcywgZnBfdGNsX2ZpbGUsIGZwX3RjbF9wcm9jIHNob3VsZCBiZSBkZWZpbmVkIgotICAgICAgICAgICAgaW5jciB3YXJuaW5nX2NvdW50Ci0gICAgICAgICB9Ci0gICAgICB9Ci0KLSAgICAgIGlmIHtbc3RyaW5nIGNvbXBhcmUgLW5vY2FzZSAkdmFycyhuZXRsaXN0X3R5cGUpICJ2ZXJpbG9nIl0+PTB9IHsKLSAgICAgICAgICMgQkNMOiBOb3RlIC0gVGhpcyBjb2RlIHJlbW92ZWQgYXMgdGhlIFJDIEZvdW5kYXRpb24gRmxvdyB3aWxsIHNldCB2YXJzKGRlZl9uZXRsaXN0KSB3aGVuIGl0Ci0gICAgICAgICAjIGlzbid0IGRlZmluZWQgaW4gdGhlIHVzZXIncyBzZXR1cC50Y2wKLSAgICAgICAgICNpZiB7JHZhcnMocmMpICYmICFbaW5mbyBleGlzdHMgdmFycyhuZXRsaXN0KV19IHsKLSAgICAgICAgICMgICBzZXQgdmFycyhuZXRsaXN0KSAkdmFycyhkYnNfZGlyKS8kdmFycyhkZXNpZ24pLnN5bl9wbGFjZWQudi5negotICAgICAgICAgI30KLSAgICAgICAgIGlmIHshJHZhcnMocmMpfSB7Ci0gICAgICAgICAgICMgQkNMOiBPbmx5IGNoZWNrIGZvciB2YXJzKG5ldGxpc3QpIGlmIG5vdCBpbiBSQyBtb2RlCi0gICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhuZXRsaXN0KV19IHsKLSAgICAgICAgICAgICAgIyBCQ0w6IEFkZGVkIHN1YnN0IGFyb3VuZCB2YXJzKG5ldGxpc3QpCi0gICAgICAgICAgICAgIGZvcmVhY2ggZmlsZSBbc3Vic3QgJHZhcnMobmV0bGlzdCldIHsKLSAgICAgICAgICAgICAgICAgaWYgeyEkdmFycyhyYyl9IHsKLSAgICAgICAgICAgICAgICAgICAgbGFwcGVuZCBjaGVjayhmaWxlcykgJGZpbGUKLSAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgSU5GTzogICAgbmV0bGlzdCA9ICR2YXJzKG5ldGxpc3QpXG4iCi0gICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgIGlmIHsoJHZhcnMobmV0bGlzdF90eXBlKSA9PSAiVmVyaWxvZyIpfSB7Ci0gICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgRVJST1I6IEEgdmVyaWxvZyBuZXRsaXN0IGZpbGUgbXVzdCBiZSBkZWZpbmVkXG4iCi0gICAgICAgICAgICAgICAgIHNldCBlcnJvcnMoJGVycm9yX2NvdW50KSAiQSB2ZXJpbG9nIG5ldGxpc3QgZmlsZSBtdXN0IGJlIGRlZmluZWQiCi0gICAgICAgICAgICAgICAgIGluY3IgZXJyb3JfY291bnQKLSAgICAgICAgICAgICAgfQotICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0gICAgICB9IGVsc2VpZiB7W3N0cmluZyBjb21wYXJlIC1ub2Nhc2UgJHZhcnMobmV0bGlzdF90eXBlKSAib2EiXT09MH0gewotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICBJTkZPOiAgICBuZXRsaXN0X3R5cGUgPSAkdmFycyhuZXRsaXN0X3R5cGUpXG4iCi0gICAgICAgICBmb3JlYWNoIHJlcXVpcmVkICJvYV9yZWZfbGliIG9hX2Rlc2lnbl9saWIgb2FfZGVzaWduX2NlbGwgb2FfZGVzaWduX3ZpZXciIHsKLSAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkcmVxdWlyZWQpXSAmJiAoJHZhcnMoJHJlcXVpcmVkKSAhPSAiIil9IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgSU5GTzogICAgICAgJHJlcXVpcmVkID0gJHZhcnMoJHJlcXVpcmVkKVxuIgotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgRVJST1I6IFZhcmlhYmxlICRyZXF1aXJlZCBtdXN0IGJlIGRlZmluZWQgd2hlbiBuZXRsaXN0X3R5cGUgaXMgb3BlbiBhY2Nlc3MiCi0gICAgICAgICAgICAgICBzZXQgZXJyb3JzKCRlcnJvcl9jb3VudCkgIlZhcmlhYmxlICRyZXF1aXJlZCBtdXN0IGJlIGRlZmluZWQgd2hlbiBuZXRsaXN0X3R5cGUgaXMgb3BlbiBhY2Nlc3MiCi0gICAgICAgICAgICAgICBpbmNyIGVycm9yX2NvdW50Ci0gICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0gICAgICB9Ci0gICAgICBpZiB7W3N0cmluZyBjb21wYXJlIC1ub2Nhc2UgJHZhcnMoZGJzX2Zvcm1hdCkgIm9hIl09PTB9IHsKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgSU5GTzogICAgZGJzX2Zvcm1hdCA9ICR2YXJzKGRic19mb3JtYXQpXG4iCi0gICAgICAgICBmb3JlYWNoIHJlcXVpcmVkICJvYV9yZWZfbGliIG9hX2Rlc2lnbl9saWIgb2FfYWJzdHJhY3RfbmFtZSBvYV9sYXlvdXRfbmFtZSIgewotICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCRyZXF1aXJlZCldICYmICgkdmFycygkcmVxdWlyZWQpICE9ICIiKX0gewotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICBJTkZPOiAgICAgICAkcmVxdWlyZWQgPSAkdmFycygkcmVxdWlyZWQpXG4iCi0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICBFUlJPUjogVmFyaWFibGUgJHJlcXVpcmVkIG11c3QgYmUgZGVmaW5lZCB3aGVuIGRic19mb3JtYXQgaXMgb3BlbiBhY2Nlc3MiCi0gICAgICAgICAgICAgICBzZXQgZXJyb3JzKCRlcnJvcl9jb3VudCkgIlZhcmlhYmxlICRyZXF1aXJlZCBtdXN0IGJlIGRlZmluZWQgd2hlbiBkYnNfZm9ybWF0IGlzIG9wZW4gYWNjZXNzIgotICAgICAgICAgICAgICAgaW5jciBlcnJvcl9jb3VudAotICAgICAgICAgICAgfQotICAgICAgICAgfQotICAgICAgfQotICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGVuYWJsZV9sdnMpXSAmJiAkdmFycyhlbmFibGVfbHZzKX0gewotICAgICAgICAgaWYge1tzdHJpbmcgY29tcGFyZSAtbm9jYXNlICR2YXJzKGRic19mb3JtYXQpICJvYSJdIT0wfSB7Ci0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIFdBUk5JTkc6IFZhcmlhYmxlIGVuYWJsZV9sdnMgaXMgb25seSBhbGxvd2VkIHdoZW4gZGJzX2Zvcm1hdCBpcyBvcGVuIGFjY2VzcyIKLSAgICAgICAgICAgIHNldCB3YXJuaW5ncygkd2FybmluZ19jb3VudCkgIlZhcmlhYmxlIGVuYWJsZV9sdnMgaXMgb25seSBhbGxvd2VkIHdoZW4gZGJzX2Zvcm1hdCBpcyBvcGVuIGFjY2VzcyIKLSAgICAgICAgICAgIGluY3Igd2FybmluZ19jb3VudAotICAgICAgICAgICAgc2V0IHZhcnMoZW5hYmxlX2x2cykgZmFsc2UKLSAgICAgICAgIH0KLSAgICAgIH0KLSMgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMobmV0bGlzdCldfSB7Ci0jICAgICAgICAgZm9yZWFjaCBmaWxlICR2YXJzKG5ldGxpc3QpIHsKLSMgICAgICAgICAgICBsYXBwZW5kIGNoZWNrKGZpbGVzKSAkZmlsZQotIyAgICAgICAgIH0KLSMgICAgICB9IGVsc2UgewotIyAgICAgICAgIGlmIHskdmFycyhuZXRsaXN0X3R5cGUpID09ICJWZXJpbG9nIn0gewotIyAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgRVJST1I6IEEgdmVyaWxvZyBuZXRsaXN0IGZpbGUgbXVzdCBiZSBkZWZpbmVkXG4iCi0jICAgICAgICAgICAgc2V0IGVycm9ycygkZXJyb3JfY291bnQpICJBIHZlcmlsb2cgbmV0bGlzdCBmaWxlIG11c3QgYmUgZGVmaW5lZCIKLSMgICAgICAgICAgICBpbmNyIGVycm9yX2NvdW50Ci0jCi0jICAgICAgICAgfQotIyAgICAgIH0KLQotICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGN0c19zcGVjKV0gJiYgKCR2YXJzKGN0c19lbmdpbmUpID09ICJjY29wdCIpfSB7Ci0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIEVSUk9SOiBWYXJpYWJsZSBjdHNfc3BlYyBkZWZpbmVkIGFuZCBjdHNfZW5naW5lIGlzIHNldCB0byBjY29wdFxuIgotICAgICAgICAgc2V0IGVycm9ycygkZXJyb3JfY291bnQpICJWYXJpYWJsZSBjdHNfc3BlYyBkZWZpbmVkIGFuZCBjdHNfZW5naW5lIGlzIHNldCB0byBjY29wdCIKLSAgICAgICAgIGluY3IgZXJyb3JfY291bnQKLSAgICAgICAgIGZvcmVhY2ggZmlsZSAkdmFycyhjdHNfc3BlYykgewotICAgICAgICAgICAgbGFwcGVuZCBjaGVjayhmaWxlcykgJGZpbGUKLSAgICAgICAgIH0KLSAgICAgIH0KLQotIyAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhjcGZfZmlsZSldICYmICR2YXJzKGNwZl90aW1pbmcpfSB7Ci0jICAgICAgICAgc2V0IHJlcXVpcmVkX2xpc3QgImZsb3cgcHJvY2VzcyBsaWJyYXJ5X3NldHMgcmNfY29ybmVycyBkZWxheV9jb3JuZXJzIgotIyAgICAgIH0gZWxzZSB7Ci0gICAgICAgICBzZXQgcmVxdWlyZWRfbGlzdCAiZmxvdyBwcm9jZXNzIGxpYnJhcnlfc2V0cyByY19jb3JuZXJzIGRlbGF5X2Nvcm5lcnMgc2V0dXBfYW5hbHlzaXNfdmlld3MgXAotICAgICAgICAgICAgICAgICAgICAgICBob2xkX2FuYWx5c2lzX3ZpZXdzIGFjdGl2ZV9zZXR1cF92aWV3cyBhY3RpdmVfaG9sZF92aWV3cyBkZWZhdWx0X3NldHVwX3ZpZXcgZGVmYXVsdF9ob2xkX3ZpZXciCi0jICAgICAgfQotCi0gICAgICBmb3JlYWNoIHJlcXVpcmVkICRyZXF1aXJlZF9saXN0IHsKLSAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkcmVxdWlyZWQpXSAmJiAoJHZhcnMoJHJlcXVpcmVkKSAhPSAiIil9IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgSU5GTzogICAgJHJlcXVpcmVkID0gJHZhcnMoJHJlcXVpcmVkKVxuIgotICAgICAgICAgICAgICAgaWYgeyRyZXF1aXJlZCA9PSAiZmxvdyJ9IHsKLSAgICAgICAgICAgICAgICAgIGlmIHsoW2luZm8gZXhpc3RzIHZhcnMocGFydGl0aW9uX2xpc3QpXSB8fCAoJHZhcnMoaWxtX2xpc3QpICE9ICIiKSkgJiYgKCR2YXJzKGZsb3cpICE9ICJtbW1jIil9IHsKLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgRVJST1I6IEZsb3cgdmFyaWFibGUgdmFycyhmbG93KSBtdXN0IGJlIFwibW1tY1wiIHdoZW4gSUxNcyBhcmUgZGVmaW5lZFxuIgotICAgICAgICAgICAgICAgICAgICAgc2V0IGVycm9ycygkZXJyb3JfY291bnQpICIjICBFUlJPUjogRmxvdyB2YXJpYWJsZSB2YXJzKGZsb3cpIG11c3QgYmUgXCJtbW1jXCIgd2hlbiBJTE1zIGFyZSBkZWZpbmVkIgotICAgICAgICAgICAgICAgICAgICAgaW5jciBlcnJvcl9jb3VudAotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgfQotICAgICAgICAgfQotICAgICAgfQotCi0jICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycyh2aWV3X2RlZmluaXRpb25fdGNsKV19IHsKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICAgICAgICAgICAgICAgICBMaWJyYXJ5IFNldHNcbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuIgotICAgICAgICAgZm9yZWFjaCBsaWJyYXJ5X3NldCAkdmFycyhsaWJyYXJ5X3NldHMpIHsKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgSU5GTzogJGxpYnJhcnlfc2V0OlxuIgotICAgICAgICAgICAgZm9yZWFjaCByZXF1aXJlZCAidGltaW5nIiB7Ci0gICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJGxpYnJhcnlfc2V0LCRyZXF1aXJlZCldICYmICgkdmFycygkbGlicmFyeV9zZXQsJHJlcXVpcmVkKSAhPSAiIil9IHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgSU5GTzogICAgJHJlcXVpcmVkID0gXG4iCi0gICAgICAgICAgICAgICAgICBmb3JlYWNoIGxpYiAkdmFycygkbGlicmFyeV9zZXQsJHJlcXVpcmVkKSB7Ci0gICAjICAgICAgICAgICAgICAgICAgbGFwcGVuZCBjaGVjayhmaWxlcykgJGxpYgotICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICBJTkZPOiAgICAgICAkbGliXG4iCi0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgaWYge1tGRjo6aXNfbHBfZmxvd119IHsKLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgV0FSTklORzogVmFyaWFibGUgdmFycygkbGlicmFyeV9zZXQsJHJlcXVpcmVkKSBub3QgZGVmaW5lZFxuIgotICAgICAgICAgICAgICAgICAgICAgc2V0IHdhcm5pbmdzKCR3YXJuaW5nX2NvdW50KSAiVmFyaWFibGUgdmFycygkbGlicmFyeV9zZXQsJHJlcXVpcmVkKSBub3QgZGVmaW5lZCIKLSAgICAgICAgICAgICAgICAgICAgIGluY3Igd2FybmluZ19jb3VudAotICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgRVJST1I6IFJlcXVpcmVkIHZhcmlhYmxlIHZhcnMoJGxpYnJhcnlfc2V0LCRyZXF1aXJlZCkgbm90IGRlZmluZWQgb3IgZW1wdHlcbiIKLSAgICAgICAgICAgICAgICAgICAgIHNldCBlcnJvcnMoJGVycm9yX2NvdW50KSAiUmVxdWlyZWQgdmFyaWFibGUgdmFycygkbGlicmFyeV9zZXQsJHJlcXVpcmVkKSBub3QgZGVmaW5lZCBvciBlbXB0eSIKLSAgICAgICAgICAgICAgICAgICAgIGluY3IgZXJyb3JfY291bnQKLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkbGlicmFyeV9zZXQsYW9jdildfSB7Ci0gICAgICAgICAgICAgICBmb3JlYWNoIGZpbGUgJHZhcnMoJGxpYnJhcnlfc2V0LGFvY3YpIHsKLSAgICAgICAgICAgICAgICAgIGlmIHshW2ZpbGUgZXhpc3RzICRmaWxlXX0gewotICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICBXQVJOSU5HOiBBT0NWIHRhYmxlIGZpbGUgZG9lcyBub3QgZXhpc3QgKCRmaWxlKVxuIgotICAgICAgICAgICAgICAgICAgICAgc2V0IHdhcm5pbmdzKCR3YXJuaW5nX2NvdW50KSAiQU9DViB0YWJsZSBmaWxlIGRvZXMgbm90IGV4aXN0ICgkZmlsZSkiCi0gICAgICAgICAgICAgICAgICAgICBpbmNyIHdhcm5pbmdfY291bnQKLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBpZiB7JHZhcnMoZW5hYmxlX2FvY3YpfSB7Ci0gICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIFdBUk5JTkc6IEFPQ1YgZW5hYmxlZCwgYnV0IHRhYmxlIG5vdCBwcm92aWRlZCBmb3IgJGxpYnJhcnlfc2V0XG4iCi0gICAgICAgICAgICAgICAgICAgICBzZXQgd2FybmluZ3MoJHdhcm5pbmdfY291bnQpICJBT0NWIGVuYWJsZWQsIGJ1dCB0YWJsZSBub3QgcHJvdmlkZWQgZm9yICRsaWJyYXJ5X3NldCIKLSAgICAgICAgICAgICAgICAgICAgIGluY3Igd2FybmluZ19jb3VudAotICAgICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJGxpYnJhcnlfc2V0LHNvY3YpXX0gewotICAgICAgICAgICAgICAgZm9yZWFjaCBmaWxlICR2YXJzKCRsaWJyYXJ5X3NldCxzb2N2KSB7Ci0gICAgICAgICAgICAgICAgICBpZiB7IVtmaWxlIGV4aXN0cyAkZmlsZV19IHsKLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgV0FSTklORzogU09DViB0YWJsZSBmaWxlIGRvZXMgbm90IGV4aXN0ICgkZmlsZSlcbiIKLSAgICAgICAgICAgICAgICAgICAgIHNldCB3YXJuaW5ncygkd2FybmluZ19jb3VudCkgIlNPQ1YgdGFibGUgZmlsZSBkb2VzIG5vdCBleGlzdCAoJGZpbGUpIgotICAgICAgICAgICAgICAgICAgICAgaW5jciB3YXJuaW5nX2NvdW50Ci0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgaWYgeyR2YXJzKGVuYWJsZV9zb2N2KX0gewotICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICBXQVJOSU5HOiBTT0NWIGVuYWJsZWQsIGJ1dCB0YWJsZSBub3QgcHJvdmlkZWQgZm9yICRsaWJyYXJ5X3NldFxuIgotICAgICAgICAgICAgICAgICAgICAgc2V0IHdhcm5pbmdzKCR3YXJuaW5nX2NvdW50KSAiU09DViBlbmFibGVkLCBidXQgdGFibGUgbm90IHByb3ZpZGVkIGZvciAkbGlicmFyeV9zZXQiCi0gICAgICAgICAgICAgICAgICAgICBpbmNyIHdhcm5pbmdfY291bnQKLSAgICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCRsaWJyYXJ5X3NldCxzaSldfSB7Ci0gICAgICAgICAgICAgICBmb3JlYWNoIGZpbGUgJHZhcnMoJGxpYnJhcnlfc2V0LHNpKSB7Ci0gICAgICAgICAgICAgICAgICBpZiB7IVtmaWxlIGV4aXN0cyAkZmlsZV19IHsKLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgV0FSTklORzogQ0RCIGZpbGUgZG9lcyBub3QgZXhpc3QgKCRmaWxlKVxuIgotICAgICAgICAgICAgICAgICAgICAgc2V0IHdhcm5pbmdzKCR3YXJuaW5nX2NvdW50KSAiQ0RCIGZpbGUgZG9lcyBub3QgZXhpc3QgKCRmaWxlKSIKLSAgICAgICAgICAgICAgICAgICAgIGluY3Igd2FybmluZ19jb3VudAotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfSAKLSAgICAgICAgIH0KLSMgICAgICB9Ci0KLSAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICAgICAgICAgICAgICAgICBMRUYgRmlsZXNcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuIgotICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGxlZl9maWxlcyldfSB7Ci0gICAgICAgICBmb3JlYWNoIGZpbGUgJHZhcnMobGVmX2ZpbGVzKSB7Ci0gICAjICAgIGxhcHBlbmQgY2hlY2soZmlsZXMpICRmaWxlCi0gICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICBJTkZPOiAkZmlsZVxuIgotICAgICAgICAgfQotICAgICAgfSBlbHNlIHsKLSAgICAgICAgIGlmIHsoW3N0cmluZyB0b2xvd2VyICR2YXJzKG5ldGxpc3RfdHlwZSldID09ICJ2ZXJpbG9nIikgJiYgKCFbaW5mbyBleGlzdHMgdmFycyhvYV9yZWZfbGliKV0pfSB7Ci0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIEVSUk9SOiBSZXF1aXJlZCB2YXJpYWJsZSB2YXJzKGxlZl9maWxlcykgbm90IGRlZmluZWRcbiIKLSAgICAgICAgICAgIHNldCBlcnJvcnMoJGVycm9yX2NvdW50KSAiUmVxdWlyZWQgdmFyaWFibGUgdmFycyhsZWZfZmlsZXMpIG5vdCBkZWZpbmVkIgotICAgICAgICAgICAgaW5jciBlcnJvcl9jb3VudAotICAgICAgICAgfQotICAgICAgfQotCi0gICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMocGFydGl0aW9uX2xpc3QpXX0gewotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgICAgICAgICAgICAgICAgIEhpZXJhcmNoaWNhbCBcbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICBJTkZPOiBwYXJ0aXRpb25zID0gJHZhcnMocGFydGl0aW9uX2xpc3QpXG4iCi0gICAgICAgICBzZXQgY3RzX3NwZWMgW0ZGOjpnZXRfYnlfc3VmZml4IHZhcnMgIixjdHNfc3BlYyJdIAotICAgICAgICAgaWYgeyRjdHNfc3BlYyAhPSAiIn0gewotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICAgQ1RTIFNwZWNzIDogXG4iCi0gICAgICAgICAgICBmb3JlYWNoIHBhcnRpdGlvbiAkY3RzX3NwZWMgewotICAgICAgICAgICAgICAgbGFwcGVuZCBjaGVjayhmaWxlcykgJHZhcnMoJHBhcnRpdGlvbixjdHNfc3BlYykKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgICAgICRwYXJ0aXRpb24gLT4gJHZhcnMoJHBhcnRpdGlvbixjdHNfc3BlYylcbiIKLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0KLSAgICAgICAgIHNldCBsYXRlbmN5X3NkYyBbRkY6OmdldF9ieV9zdWZmaXggdmFycyAiLGxhdGVuY3lfc2RjIl0KLSAgICAgICAgIGlmIHskbGF0ZW5jeV9zZGMgIT0gIiJ9IHsKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgIExhdGVuY3kgU0RDcyA6XG4iCi0gICAgICAgICAgICBmb3JlYWNoIHBhcnRpdGlvbiAkbGF0ZW5jeV9zZGMgewotICAgICAgICAgICAgICAgbGFwcGVuZCBjaGVjayhmaWxlcykgJHZhcnMoJHBhcnRpdGlvbixsYXRlbmN5X3NkYykKLSAgICAgICAgICAgICAgIGlmIHtbbGxlbmd0aCBbc3BsaXQgJHBhcnRpdGlvbiAiLCJdXSA9PSAxfSB7ICAKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgICAgICRwYXJ0aXRpb24gLT4gJHZhcnMoJHBhcnRpdGlvbixsYXRlbmN5X3NkYylcbiIKLSAgICAgICAgICAgICAgIH0gZWxzZSB7IAotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICAgICAgW2xpbmRleCBbc3BsaXQgJHBhcnRpdGlvbiAiLCJdIDBdIChbbGluZGV4IFtzcGxpdCAkcGFydGl0aW9uICIsIl0gMV0pIC0+ICR2YXJzKCRwYXJ0aXRpb24sbGF0ZW5jeV9zZGMpXG4iCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0gICAgICB9Ci0gICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoZW5hYmxlX3BhYyldICYmICR2YXJzKGVuYWJsZV9wYWMpfSB7Ci0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIFdBUk5JTkc6IFBBQyBpcyBvYnNvbGV0ZSBhbmQgd2lsbCBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHZlcnNpb24uIENvbnNpZGVyIHVzaW5nIFNpZ24tb2ZmIEVDTy4iCi0gICAgICAgICBzZXQgd2FybmluZ3MoJHdhcm5pbmdfY291bnQpICJQQUMgaXMgb2Jzb2xldGUgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSB2ZXJzaW9uLiBDb25zaWRlciB1c2luZyBTaWduLW9mZiBFQ08uIgotICAgICAgICAgaW5jciB3YXJuaW5nX2NvdW50Ci0gICAgICAgICBzZXQgcGFjX21vZGUgW0ZGOjpnZXRfYnlfc3VmZml4IHZhcnMgIixwYWNfbW9kZSJdCi0gICAgICAgICBpZiB7JHBhY19tb2RlICE9ICIifSB7Ci0gICAgICAgICAgICBzZXQgcGFjX2xpc3QgW2xpc3QgInJlYWRfb25seSIgImludGVyZmFjZSIgImlsbSIgImFsbCJdCi0gICAgICAgICAgICBmb3JlYWNoIHBhYyAkcGFjX21vZGUgewotICAgICAgICAgICAgICAgaWYge1tsc2VhcmNoICRwYWNfbGlzdCAkdmFycygkcGFjLHBhY19tb2RlKV0gPT0gLTF9IHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgRVJST1I6ICRwYWMgcGFjX21vZGUgaW52YWxpZCB2YWx1ZTsgbXVzdCBiZSBvbmUgb2YgXCckcGFjX2xpc3RcJ1xuIgotICAgICAgICAgICAgICAgICAgc2V0IGVycm9ycygkZXJyb3JfY291bnQpICIkcGFjIHBhY19tb2RlIGludmFsaWQgdmFsdWU7IG11c3QgYmUgb25lIG9mIFwnJHBhY19saXN0XCciIAotICAgICAgICAgICAgICAgICAgaW5jciBlcnJvcl9jb3VudAotICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0gICAgICB9Ci0gICAgICBpZiB7W0ZGOjppc19scF9mbG93XX0gewotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgICAgICAgICAgICAgICAgTG93IFBvd2VyIFxuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4iCi0gICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoaWVlZTE4MDFfZmlsZSldfSB7Ci0gICAgICAgICAgICAgc2V0IHdhcm5pbmdzKCR3YXJuaW5nX2NvdW50KSAiVXNpbmcgdmFycyhpZWVlMTgwMV9maWxlKSByZXF1aXJlcyB0aGUgZm9sbG93aW5nIGxpbWl0ZWQgYWNjZXNzIGZlYXR1cmUgOiBtdnNTdXBwb3J0SUVFRTE4MDEiCi0gICAgICAgICAgICAgaW5jciB3YXJuaW5nX2NvdW50Ci0gICAgICAgICB9Ci0gICAgICAgICBzZXQgbnVtX3Bvd2VyX2ludGVudF9maWxlcyAwCi0gICAgICAgICBmb3JlYWNoIHYge2NwZl9maWxlIGllZWUxODAxX2ZpbGV9IHsKLSAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkdildfSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIElORk86ICR2ID0gJHZhcnMoJHYpXG4iCi0gICAgICAgICAgICAgICBsYXBwZW5kIGNoZWNrKGZpbGVzKSAkdmFycygkdikKLSAgICAgICAgICAgICAgIGluY3IgbnVtX3Bvd2VyX2ludGVudF9maWxlcwotICAgICAgICAgICAgfQotICAgICAgICAgfQotICAgICAgICAgaWYgeyRudW1fcG93ZXJfaW50ZW50X2ZpbGVzID4gMX0gewotICAgICAgICAgICAgc2V0IGVycm9ycygkZXJyb3JfY291bnQpICJ2YXJzKGNwZl9maWxlKSBhbmQgdmFycyhpZWVlMTgwMV9maWxlKSBtYXkgbm90IGJvdGggYmUgc3BlY2lmaWVkLiIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgRVJST1I6ICRlcnJvcnMoJGVycm9yX2NvdW50KVxuIgotICAgICAgICAgICAgaW5jciBlcnJvcl9jb3VudAotICAgICAgICAgfQotCi0gICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMocG93ZXJfZG9tYWlucyldICYmICgkdmFycyhwb3dlcl9kb21haW5zKSAhPSAiIil9IHsKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgSU5GTzogcG93ZXJfZG9tYWlucyA9ICAkdmFycyhwb3dlcl9kb21haW5zKVxuIgotICAgICAgICAgICAgZm9yZWFjaCBkb21haW4gJHZhcnMocG93ZXJfZG9tYWlucykgewotICAgICAgICAgICAgICAgc2V0IHByaW50KCRkb21haW4pIDEKLSAgICAgICAgICAgICAgIGZvcmVhY2ggb3B0aW9uYWwgImZpbGxlcl9jZWxscyB0aWVfY2VsbHMgZW5kY2FwcyB3ZWxsdGFwcyIgewotICAgICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCRkb21haW4sJG9wdGlvbmFsKV0gJiYgKCR2YXJzKCRkb21haW4sJG9wdGlvbmFsKSAhPSAiIil9IHsKLSAgICAgICAgICAgICAgICAgICAgIGlmIHskcHJpbnQoJGRvbWFpbil9IHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgSU5GTzogICAgJGRvbWFpbjpcbiIKLSAgICAgICAgICAgICAgICAgICAgICAgIHNldCBwcmludCgkZG9tYWluKSAwCi0gICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIElORk86ICAgICAgICRvcHRpb25hbCA9ICR2YXJzKCRkb21haW4sJG9wdGlvbmFsKVxuIgotICAgICAgICAgICAgICAgICAgfQotIyAgICAgICAgICAgICAgICAgaWYgeyRvcHRpb25hbCA9PSAiZmlsbGVyX2NlbGxzfSB7Ci0jICAgICAgICAgICAgICAgICAgICAgc2V0IHByb2Nlc3MgW3JlZ3N1YiAibm0iICR2YXJzKHByb2Nlc3MpICIiXQotIyAgICAgICAgICAgICAgICAgICAgIGlmIHtbZXhwciAkcHJvY2VzcyA8PSAyOCldICYmIFtpbmZvIGV4aXN0cyB2YXJzKGZpbGxlcl9jZWxscyxtaW5fZ2FwKV19IHsKLSMgICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIEVSUk9SOiBGb3IgcHJvY2VzcyBub2RlIDwgMjhubSwgdmFyaWFibGUgdmFycyhmaWxsZXJfY2VsbHMsbWluX2dhcCkgaXMgcmVxdWlyZWRcbiIKLSMgICAgICAgICAgICAgICAgICAgICAgICBzZXQgZXJyb3JzKCRlcnJvcl9jb3VudCkgIkZvciBwcm9jZXNzIG5vZGUgPCAyOG5tLCB2YXJpYWJsZSB2YXJzKGZpbGxlcl9jZWxscyxtaW5fZ2FwKSBpcyByZXF1aXJlZCIKLSMgICAgICAgICAgICAgICAgICAgICAgICBpbmNyIGVycm9yX2NvdW50Ci0jICAgICAgICAgICAgICAgICAgICAgfQotIyAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIFdBUk5JTkc6IFJlY29tbWVuZGVkIHZhcmlhYmxlIHZhcnMocG93ZXJfZG9tYWlucykgbm90IGRlZmluZWRcbiIKLSAgICAgICAgICAgIHNldCB3YXJuaW5ncygkd2FybmluZ19jb3VudCkgIlJlY29tbWVuZGVkIHZhcmlhYmxlIHZhcnMocG93ZXJfZG9tYWlucykgbm90IGRlZmluZWQiCi0gICAgICAgICAgICBpbmNyIHdhcm5pbmdfY291bnQKLSAgICAgICAgIH0KLSAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhwb3dlcl9hbmFseXNpc192aWV3KV0gJiYgKCR2YXJzKHBvd2VyX2FuYWx5c2lzX3ZpZXcpICE9ICIiKX0gewotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICBJTkZPOiBwb3dlcl9hbmFseXNpc192aWV3ID0gICR2YXJzKHBvd2VyX2FuYWx5c2lzX3ZpZXcpXG4iCi0gICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICBXQVJOSU5HOiBSZWNvbW1lbmRlZCB2YXJpYWJsZSB2YXJzKHBvd2VyX2FuYWx5c2lzX3ZpZXcpIG5vdCBkZWZpbmVkXG4iCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgICAgICAgICAgIFdpbGwgZGVmYXVsdCB0byB0aGUgZGVmYXVsdCBzZXR1cCBhbmFseXNpcyB2aWV3XG4iCi0gICAgICAgICAgICBzZXQgd2FybmluZ3MoJHdhcm5pbmdfY291bnQpICJSZWNvbW1lbmRlZCB2YXJpYWJsZSB2YXJzKHBvd2VyX2FuYWx5c2lzX3ZpZXcpIG5vdCBkZWZpbmVkIgotICAgICAgICAgICAgaW5jciB3YXJuaW5nX2NvdW50Ci0gICAgICAgICB9Ci0gICAgICB9Ci0KLSMgICAgICBpZiB7IVtpbmZvIGV4aXN0cyB2YXJzKHZpZXdfZGVmaW5pdGlvbl90Y2wpXX0gewotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgICAgICAgICAgICAgICAgICBSQyBDb3JuZXJzXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiIKLSAgICAgICAgIHNldCBjaGVjayhyY19jb3JuZXJzKSBbbGlzdF0KLSAgICAgICAgIGZvcmVhY2ggcmNfY29ybmVyICR2YXJzKHJjX2Nvcm5lcnMpIHsKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgSU5GTzogJHJjX2Nvcm5lcjpcbiIKLSAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkcmNfY29ybmVyLGNhcF90YWJsZSldICYmICgkdmFycygkcmNfY29ybmVyLGNhcF90YWJsZSkgIT0gIiIpfSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIElORk86ICAgIGNhcF90YWJsZSA9ICR2YXJzKCRyY19jb3JuZXIsY2FwX3RhYmxlKVxuIgotICAgICAgICAgICAgICAgbGFwcGVuZCBjaGVjayhyY19jb3JuZXJzKSAkdmFycygkcmNfY29ybmVyLGNhcF90YWJsZSkKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBpZiB7IVtpbmZvIGV4aXN0cyB2YXJzKCRyY19jb3JuZXIscXhfdGVjaF9maWxlKV19IHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgRVJST1I6IFZhcmlhYmxlIHZhcnMoJHJjX2Nvcm5lcixjYXBfdGFibGUpIG9yIHZhcnMoJHJjX2Nvcm5lcixxeF90ZWNoX2ZpbGUpIG11c3QgYmUgZGVmaW5lZFxuIgotICAgICAgICAgICAgICAgICAgc2V0IGVycm9ycygkZXJyb3JfY291bnQpICJWYXJpYWJsZSB2YXJzKCRyY19jb3JuZXIsY2FwX3RhYmxlKSBvciB2YXJzKCRyY19jb3JuZXIscXhfdGVjaF9maWxlKSBtdXN0IGJlIGRlZmluZWQiCi0gICAgICAgICAgICAgICAgICBpbmNyIGVycm9yX2NvdW50Ci0gICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICBpZiB7W2xpbmRleCBbc3BsaXQgJHZhcnModmVyc2lvbikgIi4iXSAgMF0gPCAxNX0gewotICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgSU5GTzogVmFyaWFibGUgdmFycygkcmNfY29ybmVyLGNhcF90YWJsZSkgbm90IGRlZmluZWRcbiIKLSAgICAgICAgICAgICAgICAgICBzZXQgaW5mb3MoJGluZm9fY291bnQpICJWYXJpYWJsZSB2YXJzKCRyY19jb3JuZXIsY2FwX3RhYmxlKSBub3QgZGVmaW5lZCIKLSAgICAgICAgICAgICAgICAgICBpbmNyIGluZm9fY291bnQKLSAgICAgICAgICAgICAgICAgfSAKLSAgICAgICAgICAgICAgIH0gCi0gICAgICAgICAgICB9Ci0jICAgICAgICAgICAgaWYgeyR2YXJzKGN0c19lbmdpbmUpICE9ICJjdHMifSB7Ci0jICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCRyY19jb3JuZXIsYXRmX2ZpbGUpXSAmJiAoJHZhcnMoJHJjX2Nvcm5lcixhdGZfZmlsZSkgIT0gIiIpfSB7Ci0jICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICBJTkZPOiAgICAgYXRmX2ZpbGUgPSAkdmFycygkcmNfY29ybmVyLGF0Zl9maWxlKVxuIgotIyAgICAgICAgICAgICAgICAgIGxhcHBlbmQgY2hlY2socmNfY29ybmVycykgJHZhcnMoJHJjX2Nvcm5lcixhdGZfZmlsZSkKLSMgICAgICAgICAgICAgICB9IGVsc2UgewotIyAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgV0FSTklORzogUmVjb21tZW5kZWQgdmFyaWFibGUgdmFycygkcmNfY29ybmVyLGF0Zl9maWxlKSBub3QgZGVmaW5lZFxuIgotIyAgICAgICAgICAgICAgICAgIHNldCB3YXJuaW5ncygkd2FybmluZ19jb3VudCkgIlJlY29tbWVuZGVkIHZhcmlhYmxlIHZhcnMoJHJjX2Nvcm5lcixhdGZfZmlsZSkgbm90IGRlZmluZWQiCi0jICAgICAgICAgICAgICAgICAgaW5jciB3YXJuaW5nX2NvdW50Ci0jICAgICAgICAgICAgICAgfQotIyAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkcmNfY29ybmVyLFQpXSAmJiAoJHZhcnMoJHJjX2Nvcm5lcixUKSAhPSAiIil9IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgSU5GTzogICAgdGVtcGVyYXR1cmUgPSAkdmFycygkcmNfY29ybmVyLFQpXG4iCi0gICAgICAgICAgICAgICBsYXBwZW5kIGNoZWNrKGludGVnZXJzKSAiJHJjX2Nvcm5lcixUIgotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgV0FSTklORzogUmVjb21tZW5kZWQgdmFyaWFibGUgdmFycygkcmNfY29ybmVyLFQpIG5vdCBkZWZpbmVkXG4iCi0gICAgICAgICAgICAgICBzZXQgd2FybmluZ3MoJHdhcm5pbmdfY291bnQpICJSZWNvbW1lbmRlZCB2YXJpYWJsZSB2YXJzKCRyY19jb3JuZXIsVCkgbm90IGRlZmluZWQiCi0gICAgICAgICAgICAgICBpbmNyIHdhcm5pbmdfY291bnQKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkcmNfY29ybmVyLHF4X3RlY2hfZmlsZSldICYmICgkdmFycygkcmNfY29ybmVyLHF4X3RlY2hfZmlsZSkgIT0gIiIpfSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIElORk86ICAgIHF4X3RlY2hfZmlsZSA9ICR2YXJzKCRyY19jb3JuZXIscXhfdGVjaF9maWxlKVxuIgotICAgICAgICAgICAgICAgbGFwcGVuZCBjaGVjayhyY19jb3JuZXJzKSAkdmFycygkcmNfY29ybmVyLHF4X3RlY2hfZmlsZSkKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMocG9zdHJvdXRlX2V4dHJhY3Rpb25fZWZmb3J0KV0gJiYgKCR2YXJzKHBvc3Ryb3V0ZV9leHRyYWN0aW9uX2VmZm9ydCkgIT0gImxvdyIpfSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIEVSUk9SOiBxeF90ZWNoX2ZpbGUgbm90IGRlZmluZWQgZm9yICRyY19jb3JuZXIgYW5kIHBvc3Ryb3V0ZV9leHRyYWN0aW9uX2VmZm9ydCBpcyBzZXQgdG8gJHZhcnMocG9zdHJvdXRlX2V4dHJhY3Rpb25fZWZmb3J0KVxuIgotICAgICAgICAgICAgICAgICAgc2V0IGVycm9ycygkZXJyb3JfY291bnQpICJxeF90ZWNoX2ZpbGUgbm90IGRlZmluZWQgZm9yICRyY19jb3JuZXIgYW5kIHBvc3Ryb3V0ZV9leHRyYWN0aW9uX2VmZm9ydCBpcyBzZXQgdG8gJHZhcnMocG9zdHJvdXRlX2V4dHJhY3Rpb25fZWZmb3J0KSIKLSAgICAgICAgICAgICAgICAgIGluY3IgZXJyb3JfY291bnQKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhzaWdub2ZmX2V4dHJhY3Rpb25fZWZmb3J0KV0gJiYgKCR2YXJzKHNpZ25vZmZfZXh0cmFjdGlvbl9lZmZvcnQpICE9ICJsb3ciKX0gewotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICBFUlJPUjogcXhfdGVjaF9maWxlIG5vdCBkZWZpbmVkIGZvciAkcmNfY29ybmVyIGFuZCBzaWdub2ZmX2V4dHJhY3Rpb25fZWZmb3J0IGlzIHNldCB0byAkdmFycyhzaWdub2ZmX2V4dHJhY3Rpb25fZWZmb3J0KVxuIgotICAgICAgICAgICAgICAgICAgc2V0IGVycm9ycygkZXJyb3JfY291bnQpICJxeF90ZWNoX2ZpbGUgbm90IGRlZmluZWQgZm9yICRyY19jb3JuZXIgYW5kIHNpZ25vZmZfZXh0cmFjdGlvbl9lZmZvcnQgaXMgc2V0IHRvICR2YXJzKHNpZ25vZmZfZXh0cmFjdGlvbl9lZmZvcnQpIgotICAgIyAgICAgICAgICAgICAgIHNldCBlcnJvcnMoJGVycm9yX2NvdW50KSAiUmVxdWlyZWQgdmFyaWFibGUgdmFycygkcmNfY29ybmVyLGNhcF90YWJsZSkgbm90IGRlZmluZWQiCi0gICAgICAgICAgICAgICAgICBpbmNyIGVycm9yX2NvdW50Ci0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0gICAKLSAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhvcGNvbmRzKV19IHsKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICAgICAgICAgICAgIE9wZXJhdGluZyBDb25kaXRpb25zXG4iCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiIKLSAgICAgICAgICAgIGZvcmVhY2ggb3Bjb25kICR2YXJzKG9wY29uZHMpIHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgSU5GTzogJG9wY29uZDpcbiIKLSAgICAgICAgICAgICAgIGZvcmVhY2ggcmVxdWlyZWQgImxpYnJhcnlfZmlsZSBQIFYgVCIgewotICAgICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCRvcGNvbmQsJHJlcXVpcmVkKV0gJiYgKCR2YXJzKCRvcGNvbmQsJHJlcXVpcmVkKSAhPSAiIil9IHsKLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgSU5GTzogICAgJHJlcXVpcmVkID0gJHZhcnMoJG9wY29uZCwkcmVxdWlyZWQpXG4iCi0gICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICBFUlJPUjogUmVxdWlyZWQgdmFyaWFibGUgdmFycygkb3Bjb25kLCRyZXF1aXJlZCkgbm90IGRlZmluZWRcbiIKLSAgICAgICAgICAgICAgICAgICAgIHNldCBlcnJvcnMoJGVycm9yX2NvdW50KSAiUmVxdWlyZWQgdmFyaWFibGUgdmFycygkb3Bjb25kLCRyZXF1aXJlZCkgbm90IGRlZmluZWQiCi0gICAgICAgICAgICAgICAgICAgICBpbmNyIGVycm9yX2NvdW50Ci0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0gICAKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICAgICAgICAgICAgICAgRGVsYXkgQ29ybmVyc1xuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4iCi0gICAgICAgICBzZXQgZ29vZF9jb3JuZXJzIFtsaXN0XQotICAgICAgICAgZm9yZWFjaCBkZWxheV9jb3JuZXIgJHZhcnMoZGVsYXlfY29ybmVycykgewotICAgICAgICAgICAgc2V0IGFyZ3MgMAotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICBJTkZPOiAkZGVsYXlfY29ybmVyOlxuIgotICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCRkZWxheV9jb3JuZXIscmNfY29ybmVyKV0gJiYgKCR2YXJzKCRkZWxheV9jb3JuZXIscmNfY29ybmVyKSAhPSAiIil9IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgSU5GTzogICAgcmNfY29ybmVyID0gJHZhcnMoJGRlbGF5X2Nvcm5lcixyY19jb3JuZXIpXG4iCi0gICAgICAgICAgICAgICBpbmNyIGFyZ3MKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIEVSUk9SOiBSZXF1aXJlZCB2YXJpYWJsZSB2YXJzKCRkZWxheV9jb3JuZXIscmNfY29ybmVyKSBub3QgZGVmaW5lZFxuIgotICAgICAgICAgICAgICAgc2V0IGVycm9ycygkZXJyb3JfY291bnQpICJSZXF1aXJlZCB2YXJpYWJsZSB2YXJzKCRkZWxheV9jb3JuZXIscmNfY29ybmVyKSBub3QgZGVmaW5lZCIKLSAgICAgICAgICAgICAgIGluY3IgZXJyb3JfY291bnQKLSAgICAgICAgICAgIH0KLSAgIAotICAgICAgICAgICAgaWYgeyghW0ZGOjppc19scF9mbG93XSkgfHwgKFtGRjo6aXNfbHBfZmxvd10gJiYgISR2YXJzKGNwZl90aW1pbmcpKX0gewotICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCRkZWxheV9jb3JuZXIsbGlicmFyeV9zZXQpXSAmJiAoJHZhcnMoJGRlbGF5X2Nvcm5lcixsaWJyYXJ5X3NldCkgIT0gIiIpfSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIElORk86ICAgIGxpYnJhcnlfc2V0ID0gJHZhcnMoJGRlbGF5X2Nvcm5lcixsaWJyYXJ5X3NldClcbiIKLSAgICAgICAgICAgICAgICAgIGluY3IgYXJncwotICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgIGZvcmVhY2ggYWRkaXRpb25hbCAiZWFybHlfbGlicmFyeV9zZXQgbGF0ZV9saWJyYXJ5X3NldCIgewotICAgICAgICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCRkZWxheV9jb3JuZXIsJGFkZGl0aW9uYWwpXSAmJiAoJHZhcnMoJGRlbGF5X2Nvcm5lciwkYWRkaXRpb25hbCkgIT0gIiIpfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIElORk86ICAgICRhZGRpdGlvbmFsID0gJHZhcnMoJGRlbGF5X2Nvcm5lciwkYWRkaXRpb25hbClcbiIKLSAgICAgICAgICAgICAgICAgICAgICAgIGluY3IgYXJncwotICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgRVJST1I6IFJlcXVpcmVkIHZhcmlhYmxlIHZhcnMoJGRlbGF5X2Nvcm5lcixsaWJyYXJ5X3NldCkgYW5kIHZhcnMoJGRlbGF5X2Nvcm5lciwkYWRkaXRpb25hbCkgbm90IGRlZmluZWRcbiIKLSAgICAgICAgICAgICAgICAgICAgICAgIHNldCBlcnJvcnMoJGVycm9yX2NvdW50KSAiUmVxdWlyZWQgdmFyaWFibGUgdmFycygkZGVsYXlfY29ybmVyLGxpYnJhcnlfc2V0KSBhbmQgdmFycygkZGVsYXlfY29ybmVyLCRhZGRpdGlvbmFsKSBub3QgZGVmaW5lZFxuIgotICAgICAgICAgICAgICAgICAgICAgICAgaW5jciBlcnJvcl9jb3VudAotICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAgICAgZm9yZWFjaCBvcHRpb25hbCAib3Bjb25kIG9wY29uZF9saWJyYXJ5IGVhcmx5X29wY29uZF9saWJyYXJ5IGxhdGVfb3Bjb25kX2xpYnJhcnkiIHsKLSAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkZGVsYXlfY29ybmVyLCRvcHRpb25hbCldICYmICgkdmFycygkZGVsYXlfY29ybmVyLCRvcHRpb25hbCkgIT0gIiIpfSB7Ci0gICAgICAgICAgICAgICAgICBpbmNyIGFyZ3MKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgSU5GTzogICAgJG9wdGlvbmFsID0gJHZhcnMoJGRlbGF5X2Nvcm5lciwkb3B0aW9uYWwpXG4iCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBmb3JlYWNoIG9wdGlvbmFsICJwb3dlcl9kb21haW5zIiB7Ci0gICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJGRlbGF5X2Nvcm5lciwkb3B0aW9uYWwpXSAmJiAoJHZhcnMoJGRlbGF5X2Nvcm5lciwkb3B0aW9uYWwpICE9ICIiKX0gewotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICBJTkZPOiAgICAkb3B0aW9uYWwgPSAkdmFycygkZGVsYXlfY29ybmVyLCRvcHRpb25hbClcbiIKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIHshJHZhcnMoY3BmX3RpbWluZykgJiYgKCRhcmdzID4gMSl9IHsKLSAgICAgICAgICAgICAgIGxhcHBlbmQgZ29vZF9jb3JuZXJzICRkZWxheV9jb3JuZXIKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBpZiB7JGFyZ3MgPiAwfSB7Ci0gICAgICAgICAgICAgICAgICBsYXBwZW5kIGdvb2RfY29ybmVycyAkZGVsYXlfY29ybmVyCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0KLSAgICAgICAgIHNldCB2YXJzKGdvb2RfY29ybmVycykgJGdvb2RfY29ybmVycwotICAgCi0gICAgICAgICBzZXQgY2hlY2soY29uc3RyYWludF9tb2RlcykgW2xpc3RdCi0gICAgICAgICBpZiB7W0ZGOjppc19scF9mbG93XX0gewotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4iCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgICAgICAgICAgICAgQ29uc3RyYWludCBNb2Rlc1xuIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4iCi0gICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoY29uc3RyYWludF9tb2RlcyldfSB7Ci0gICAgICAgICAgICAgICBmb3JlYWNoIG1vZGUgJHZhcnMoY29uc3RyYWludF9tb2RlcykgewotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICBJTkZPOiAkbW9kZTpcbiIKLSAgICAgICAgICAgICAgICAgIGZvcmVhY2ggb3RoZXIgInByZV9jdHNfc2RjIGluY3JfY3RzX3NkYyBwb3N0X2N0c19zZGMiIHsKLSAgICAgICAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkbW9kZSwkb3RoZXIpXSAmJiAoJHZhcnMoJG1vZGUsJG90aGVyKSAhPSAiIil9IHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgSU5GTzogICAgJG90aGVyID0gJHZhcnMoJG1vZGUsJG90aGVyKVxuIgotICAgICAgICAgICAgICAgICAgICAgICAgbGFwcGVuZCBjaGVjayhjb25zdHJhaW50X21vZGVzKSAkdmFycygkbW9kZSwkb3RoZXIpCi0gICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICAgaWYgeyEkdmFycyhjcGZfdGltaW5nKX0gewotICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgeygkb3RoZXIgPT0gInByZV9jdHNfc2RjIikgJiYgJHZhcnMocmMpfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXQgdmFycygkbW9kZSwkb3RoZXIpICR2YXJzKGRic19kaXIpLyR2YXJzKGRlc2lnbikuc3luX3BsYWNlZC4kbW9kZS5zZGMKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZWlmIHsoJG90aGVyID09ICJwcmVfY3RzX3NkYyIpICYmICEkdmFycyhyYyl9IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyBFUlJPUjogICAgVmFyaWFibGUgdmFycygkbW9kZSwkb3RoZXIpIG5vdCBkZWZpbmVkXG4iCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXQgZXJyb3JzKCRlcnJvcl9jb3VudCkgIlZhcmlhYmxlIHZhcnMoJG1vZGUsJG90aGVyKSBub3QgZGVmaW5lZCIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluY3IgZXJyb3JfY291bnQKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiB7KCRvdGhlciA9PSAicHJlX2N0c19zZGMiKSB8fCAoKCRvdGhlciA9PSAicG9zdF9jdHNfc2RjIikgJiYgIVtpbmZvIGV4aXN0cyB2YXJzKCRtb2RlLGluY3JfY3RzX3NkYyldKX0gewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICBJTkZPOiAgICBWYXJpYWJsZSB2YXJzKCRtb2RlLCRvdGhlcikgbm90IGRlZmluZWRcbiIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgSU5GTzogICAgVmFyaWFibGUgdmFycygkbW9kZSwkb3RoZXIpIG5vdCBkZWZpbmVkXG4iCi0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICBJTkZPOiBObyBjb25zdHJhaW50IG1vZGUgaW5mb3JtYXRpb24gZGVmaW5lZFxuIgotICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICAgICAgICBQb3N0IENUUyBsYXRlbmN5IGFkanVzdG1lbnQgbXVzdCBiZVxuIgotICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICAgICAgICBtYW5hZ2VkIGJ5IHRoZSB1c2VyIHZpYSBwbHVnLWluc1xuIgotICAgICAgICAgICAgfQotICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICAgICAgICAgICAgIENvbnN0cmFpbnQgTW9kZXNcbiIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuIgotICAgICAgICAgICAgaWYgeyR2YXJzKHJjKX0gewotICAgICAgICAgICAgICAgc2V0IHJlcXVpcmVkX2xpc3QgInN5bnRoX3NkYyBwcmVfY3RzX3NkYyIKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBzZXQgcmVxdWlyZWRfbGlzdCAicHJlX2N0c19zZGMiCi0gICAgICAgICAgICB9IAotICAgICAgICAgICAgZm9yZWFjaCBtb2RlICR2YXJzKGNvbnN0cmFpbnRfbW9kZXMpIHsKLSAgICAgICAgICAgICAgIHNldCBmb3VuZCAwCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIElORk86ICRtb2RlOlxuIgotICAgICAgICAgICAgICAgZm9yZWFjaCByZXF1aXJlZCAkcmVxdWlyZWRfbGlzdCB7Ci0gICAgICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJG1vZGUsJHJlcXVpcmVkKV0gJiYgKCR2YXJzKCRtb2RlLCRyZXF1aXJlZCkgIT0gIiIpfSB7Ci0gICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIElORk86ICAgICRyZXF1aXJlZCA9ICR2YXJzKCRtb2RlLCRyZXF1aXJlZClcbiIKLSAgICAgICAgICAgICAgICAgICAgIGxhcHBlbmQgY2hlY2soY29uc3RyYWludF9tb2RlcykgJHZhcnMoJG1vZGUsJHJlcXVpcmVkKQotICAgICAgICAgICAgICAgICAgICAgaW5jciBmb3VuZAotICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgIGlmIHtbbGxlbmd0aCAkcmVxdWlyZWRfbGlzdF0gPT0gMX0gewotICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICBFUlJPUjogUmVxdWlyZWQgdmFyaWFibGUgdmFycygkbW9kZSwkcmVxdWlyZWQpIG5vdCBkZWZpbmVkXG4iCi0gICAgICAgICAgICAgICAgICAgICAgICBzZXQgZXJyb3JzKCRlcnJvcl9jb3VudCkgIlJlcXVpcmVkIHZhcmlhYmxlIHZhcnMoJG1vZGUsJHJlcXVpcmVkKSBub3QgZGVmaW5lZCIKLSAgICAgICAgICAgICAgICAgICAgICAgIGluY3IgZXJyb3JfY291bnQKLSAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIGlmIHsoW2xsZW5ndGggJHJlcXVpcmVkX2xpc3RdID4gMSkgJiYgKCRmb3VuZCA9PSAwKX0gewotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICBFUlJPUjogT25lIG9mIHRoZSByZXF1aXJlZCB2YXJpYWJsZXMgKCRyZXF1aXJlZF9saXN0KSBub3QgZGVmaW5lZFxuIgotICAgICAgICAgICAgICAgICAgc2V0IGVycm9ycygkZXJyb3JfY291bnQpICJPbmUgb2YgdGhlIHJlcXVpcmVkIHZhcmlhYmxlcyAoJHJlcXVpcmVkX2xpc3QpIG5vdCBkZWZpbmVkIgotICAgICAgICAgICAgICAgICAgaW5jciBlcnJvcl9jb3VudAotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgZm9yZWFjaCBvdGhlciAicG9zdF9jdHNfc2RjIGluY3JfY3RzX3NkYyIgewotICAgICAgICAgICAgICAgICAgaWYgeyRvdGhlciA9PSAicG9zdF9jdHNfc2RjIiAmJiAhW2luZm8gZXhpc3RzIHZhcnMoJG90aGVyKV19IHsKLSAgICAgICAgICAgICAgICAgICAgIGlmIHshW2luZm8gZXhpc3RzIHZhcnMoJG1vZGUsJG90aGVyKV19IHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgSU5GTzogICAgVmFyaWFibGUgdmFycygkbW9kZSwkb3RoZXIpIG5vdCBkZWZpbmVkXG4iCi0gICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICBJTkZPOiAgICAkb3RoZXIgPSAkdmFycygkbW9kZSwkb3RoZXIpXG4iCi0gICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCRtb2RlLCRvdGhlcildICYmICgkdmFycygkbW9kZSwkb3RoZXIpICE9ICIiKX0gewotICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICBJTkZPOiAgICAkb3RoZXIgPSAkdmFycygkbW9kZSwkb3RoZXIpXG4iCi0gICAgICAgICAgICAgICAgICAgICAgICBsYXBwZW5kIGNoZWNrKGNvbnN0cmFpbnRfbW9kZXMpICR2YXJzKCRtb2RlLCRvdGhlcikKLSAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIElORk86ICAgIFZhcmlhYmxlIHZhcnMoJG1vZGUsJG90aGVyKSBub3QgZGVmaW5lZFxuIgotICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAgfQotICAgCi0gICAgICAgICBpZiB7IVtpbmZvIGV4aXN0cyB2YXJzKGhvbGRfYW5hbHlzaXNfdmlld3MpXX0gewotICAgICAgICAgICAgc2V0IHZhcnMoaG9sZF9hbmFseXNpc192aWV3cykgIiIKLSAgICAgICAgIH0KLSAgICAgICAgIGlmIHshW2luZm8gZXhpc3RzIHZhcnMocG93ZXJfYW5hbHlzaXNfdmlldyldfSB7Ci0gICAgICAgICAgICBzZXQgdmFycyhwb3dlcl9hbmFseXNpc192aWV3KSAiIgotICAgICAgICAgfQotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgICAgICAgICAgICAgQW5hbHlzaXMgVmlld3NcbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuIgotICAgICAgICAgaWYge1tGRjo6aXNfbHBfZmxvd119IHsKLSAgICAgICAgICAgIGZvcmVhY2ggYW5hbHlzaXNfdmlldyBbY29uY2F0ICR2YXJzKHNldHVwX2FuYWx5c2lzX3ZpZXdzKSAkdmFycyhob2xkX2FuYWx5c2lzX3ZpZXdzKSAkdmFycyhwb3dlcl9hbmFseXNpc192aWV3KV0gewotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICBJTkZPOiAkYW5hbHlzaXNfdmlldzpcbiIKLSAgICAgICAgICAgICAgIGZvcmVhY2ggb3RoZXIgImRlbGF5X2Nvcm5lciBjb25zdHJhaW50X21vZGUiIHsKLSAgICAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkYW5hbHlzaXNfdmlldywkb3RoZXIpXSAmJiAoJHZhcnMoJGFuYWx5c2lzX3ZpZXcsJG90aGVyKSAhPSAiIil9IHsKLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgSU5GTzogICAgJG90aGVyID0gJHZhcnMoJGFuYWx5c2lzX3ZpZXcsJG90aGVyKVxuIgotICAgICAgICAgICAgICAgICAgICAgbGFwcGVuZCBjaGVjayhhbmFseXNpc192aWV3KSAkdmFycygkYW5hbHlzaXNfdmlldywkb3RoZXIpCi0gICAgICAgICAgICAgICAgICB9IAotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHNldCBjaGVjayhhbmFseXNpc192aWV3cykgW2xpc3RdCi0gICAgICAgICAgICBmb3JlYWNoIGFuYWx5c2lzX3ZpZXcgW2NvbmNhdCAkdmFycyhzZXR1cF9hbmFseXNpc192aWV3cykgJHZhcnMoaG9sZF9hbmFseXNpc192aWV3cykgJHZhcnMocG93ZXJfYW5hbHlzaXNfdmlldyldIHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgSU5GTzogJGFuYWx5c2lzX3ZpZXc6XG4iCi0gICAgICAgICAgICAgICBmb3JlYWNoIHJlcXVpcmVkICJkZWxheV9jb3JuZXIgY29uc3RyYWludF9tb2RlIiB7Ci0gICAgICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJGFuYWx5c2lzX3ZpZXcsJHJlcXVpcmVkKV0gJiYgKCR2YXJzKCRhbmFseXNpc192aWV3LCRyZXF1aXJlZCkgIT0gIiIpfSB7Ci0gICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIElORk86ICAgICRyZXF1aXJlZCA9ICR2YXJzKCRhbmFseXNpc192aWV3LCRyZXF1aXJlZClcbiIKLSAgICAgICAgICAgICAgICAgICAgIGxhcHBlbmQgY2hlY2soYW5hbHlzaXNfdmlldykgJHZhcnMoJGFuYWx5c2lzX3ZpZXcsJHJlcXVpcmVkKQotICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgRVJST1I6IFJlcXVpcmVkIHZhcmlhYmxlIHZhcnMoJGFuYWx5c2lzX3ZpZXcsJHJlcXVpcmVkKSBub3QgZGVmaW5lZFxuIgotICAgICAgICAgICAgICAgICAgICAgc2V0IGVycm9ycygkZXJyb3JfY291bnQpICJSZXF1aXJlZCB2YXJpYWJsZSB2YXJzKCRhbmFseXNpc192aWV3LCRyZXF1aXJlZCkgbm90IGRlZmluZWQiCi0gICAgICAgICAgICAgICAgICAgICBpbmNyIGVycm9yX2NvdW50Ci0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0jICAgICAgfQotCi0gICAgICBhcHBlbmQgY29tbWFuZHMgIiMgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgICAgICAgICAgICBSZWNvbW1lbmRlZCBWYXJpYWJsZXNcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuIgotICAgICAgZm9yZWFjaCByZWNvbW1lbmRlZCAic2Nhbl9kZWYgZ2RzX2xheWVyX21hcCIgewotICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCRyZWNvbW1lbmRlZCldICYmICgkdmFycygkcmVjb21tZW5kZWQpICE9ICIiKX0gewotICAgICAgICAgICAgbGFwcGVuZCBjaGVjayhmaWxlcykgJHZhcnMoJHJlY29tbWVuZGVkKQotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICBJTkZPOiAkcmVjb21tZW5kZWQgPSAkdmFycygkcmVjb21tZW5kZWQpXG4iCi0gICAgICAgICB9Ci0gICAgICB9Ci0gICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoZ2RzX2ZpbGVzKV0gJiYgKCR2YXJzKGdkc19maWxlcykgIT0gIiIpfSB7Ci0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIElORk86IGdkc19maWxlcyA9ICR2YXJzKGdkc19maWxlcylcbiIKLSAgICAgICAgIGZvcmVhY2ggZmlsZSAkdmFycyhnZHNfZmlsZXMpIHsKLSAgICAgICAgICAgIGxhcHBlbmQgY2hlY2soZmlsZXMpICRmaWxlCi0gICAgICAgICB9Ci0gICAgICB9Ci0KLSAgICAgIGZvcmVhY2ggcmVjb21tZW5kZWQgIm1heF9yb3V0ZV9sYXllciBmaWxsZXJfY2VsbHMgdGllX2NlbGxzIGRvbnRfdXNlX2xpc3QgYW50ZW5uYV9kaW9kZSIgewotICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCRyZWNvbW1lbmRlZCldICYmICgkdmFycygkcmVjb21tZW5kZWQpICE9ICIiKX0gewotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICBJTkZPOiAkcmVjb21tZW5kZWQgPSAkdmFycygkcmVjb21tZW5kZWQpXG4iCi0gICAgICAgICAgICBpZiB7JHJlY29tbWVuZGVkID09ICJ0aWVfY2VsbHMifSB7Ci0gICAgICAgICAgICAgICBpZiB7W2xsZW5ndGggJHZhcnModGllX2NlbGxzKV0gPiAyfSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIEVSUk9SOiBSZWNvbW1lbmRlZCB2YXJpYWJsZSB2YXJzKCRyZWNvbW1lbmRlZCkgaGFzIG1vcmUgdGhhbiB0d28gY2VsbHNcbiIKLSAgICAgICAgICAgICAgICAgIHNldCBlcnJvcnMoJGVycm9yX2NvdW50KSAiUmVjb21tZW5kZWQgdmFyaWFibGUgdmFycygkcmVjb21tZW5kZWQpIGhhcyBtb3JlIHRoYW4gdHdvIGNlbGxzIgotICAgICAgICAgICAgICAgICAgaW5jciBlcnJvcl9jb3VudAotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgeyRyZWNvbW1lbmRlZCA9PSAiYW50ZW5uYV9kaW9kZSJ9IHsKLSAgICAgICAgICAgICAgIGlmIHtbbGxlbmd0aCAkdmFycyhhbnRlbm5hX2Rpb2RlKV0gPiAxfSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIEVSUk9SOiBSZWNvbW1lbmRlZCB2YXJpYWJsZSB2YXJzKCRyZWNvbW1lbmRlZCkgaGFzIG1vcmUgdGhhbiBvbmUgY2VsbHNcbiIKLSAgICAgICAgICAgICAgICAgIHNldCBlcnJvcnMoJGVycm9yX2NvdW50KSAiUmVjb21tZW5kZWQgdmFyaWFibGUgdmFycygkcmVjb21tZW5kZWQpIGhhcyBtb3JlIHRoYW4gb25lIGNlbGxzIgotICAgICAgICAgICAgICAgICAgaW5jciBlcnJvcl9jb3VudAotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgeyRyZWNvbW1lbmRlZCA9PSAibWF4X3JvdXRlX2xheWVyIn0gewotICAgICAgICAgICAgICAgbGFwcGVuZCBjaGVjayhpbnRlZ2VycykgIiRyZWNvbW1lbmRlZCIKLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBpZiB7KCRyZWNvbW1lbmRlZCA9PSAiZG9udF91c2VfbGlzdCIpfSB7Ci0gICAgICAgICAgICAgICBpZiB7IVtpbmZvIGV4aXN0cyB2YXJzKGRvbnRfdXNlX2ZpbGUpXX0gewotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICBXQVJOSU5HOiBSZWNvbW1lbmRlZCB2YXJpYWJsZXMgZG9udF91c2VfbGlzdCBhbmQgZG9udF91c2VfZmlsZSBub3QgZGVmaW5lZFxuIgotICAgICAgICAgICAgICAgICAgc2V0IHdhcm5pbmdzKCR3YXJuaW5nX2NvdW50KSAiUmVjb21tZW5kZWQgdmFyaWFibGVzIGRvbnRfdXNlX2xpc3QgYW5kIGRvbnRfdXNlX2ZpbGUgbm90IGRlZmluZWQiCi0gICAgICAgICAgICAgICAgICBpbmNyIHdhcm5pbmdfY291bnQKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIFdBUk5JTkc6IFJlY29tbWVuZGVkIHZhcmlhYmxlIHZhcnMoJHJlY29tbWVuZGVkKSBub3QgZGVmaW5lZFxuIgotICAgICAgICAgICAgICAgc2V0IHdhcm5pbmdzKCR3YXJuaW5nX2NvdW50KSAiUmVjb21tZW5kZWQgdmFyaWFibGUgdmFycygkcmVjb21tZW5kZWQpIG5vdCBkZWZpbmVkIgotICAgICAgICAgICAgICAgaW5jciB3YXJuaW5nX2NvdW50Ci0gICAgICAgICAgICB9ICAKLSAgICAgICAgIH0KLSAgICAgIH0KLSAgICAgIGZvcmVhY2ggb3B0aW9uYWwgInNpemVfb25seV9maWxlIGRvbnRfdXNlX2ZpbGUiIHsKLSAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkb3B0aW9uYWwpXX0gewotICAgICAgICAgICAgbGFwcGVuZCBjaGVjayhmaWxlcykgJHZhcnMoJG9wdGlvbmFsKQotICAgICAgICAgfQotICAgICAgfQotCi0gICAgICBhcHBlbmQgY29tbWFuZHMgIiMgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgICAgICAgICAgICAgICAgT3RoZXIgVmFyaWFibGVzXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgIiMgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiIKLSAgICAgIGZvcmVhY2ggb3RoZXIgImp0YWdfY2VsbHMganRhZ19yb3dzIHNwYXJlX2NlbGxzIiB7Ci0gICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJG90aGVyKV0gJiYgKCR2YXJzKCRvdGhlcikgIT0gIiIpfSB7Ci0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIElORk86ICRvdGhlciA9ICR2YXJzKCRvdGhlcilcbiIKLSAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIElORk86IFZhcmlhYmxlIHZhcnMoJG90aGVyKSBub3QgZGVmaW5lZFxuIgotICAgICAgICAgfQotICAgICAgfQotCi0jICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycyh2aWV3X2RlZmluaXRpb25fdGNsKV19IHsKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICAgICAgICAgICAgICAgICBTY2FsZSBGYWN0b3JzXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiIKLSAgICAgICAgIGZvcmVhY2ggcmNfY29ybmVyICR2YXJzKHJjX2Nvcm5lcnMpIHsKLSAgICAgICAgICAgIHNldCBpIDAKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgSU5GTzogJHJjX2Nvcm5lcjpcbiIKLSAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkcmNfY29ybmVyLHNjYWxlX3RjbCldfSB7Ci0gICAgICAgICAgICAgICBpZiB7W2ZpbGUgZXhpc3RzICR2YXJzKCRyY19jb3JuZXIsc2NhbGVfdGNsKV19IHsKLSAgICAgICAgICAgICAgICAgIGluY3IgaQotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICBJTkZPOiAgIHNjYWxpbmcgZmlsZSA9ICR2YXJzKCRyY19jb3JuZXIsc2NhbGVfdGNsKVxuIgotICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgIHB1dHMgIjxGRj4gRVJST1I6IFNjYWxpbmcgZmlsZSAkdmFycygkcmNfY29ybmVyLHNjYWxlX3RjbCkgZm9yIHJjIGNvcm5lciAkcmNfY29ybmVyIGRlZmluZWQgYnV0IGRvZXMgbm90IGV4aXN0IgotICAgICAgICAgICAgICAgICAgc2V0IGVycm9ycygkZXJyb3JfY291bnQpICJTY2FsaW5nIGZpbGUgJHZhcnMoJHJjX2Nvcm5lcixzY2FsZV90Y2wpIGZvciByYyBjb3JuZXIgJHJjX2Nvcm5lciBkZWZpbmVkIGJ1dCBkb2VzIG5vdCBleGlzdCIKLSAgICAgICAgICAgICAgICAgIGluY3IgZXJyb3JfY291bnQKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBmb3JlYWNoIG90aGVyICJwcmVfcm91dGVfcmVzX2ZhY3RvciBwb3N0X3JvdXRlX3Jlc19mYWN0b3IgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJlX3JvdXRlX2NhcF9mYWN0b3IgcG9zdF9yb3V0ZV9jYXBfZmFjdG9yIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByZV9yb3V0ZV9jbGtfcmVzX2ZhY3RvciBwb3N0X3JvdXRlX2Nsa19yZXNfZmFjdG9yIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByZV9yb3V0ZV9jbGtfY2FwX2ZhY3RvciBwb3N0X3JvdXRlX2Nsa19jYXBfZmFjdG9yIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc3Rfcm91dGVfeGNhcF9mYWN0b3IiIHsKLSAgICAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkcmNfY29ybmVyLCRvdGhlcildfSB7Ci0gICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIElORk86ICAgICRvdGhlciA9ICR2YXJzKCRyY19jb3JuZXIsJG90aGVyKVxuIgotICAgICAgICAgICAgICAgICAgICAgaW5jciBpCi0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiB7JGkgPT0gMH0gewotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICBXQVJOSU5HOiBObyBzY2FsZSBmYWN0b3JzIHNldCBmb3IgcmMgY29ybmVyICgkcmNfY29ybmVyKVxuIgotICAgICAgICAgICAgICAgc2V0IHdhcm5pbmdzKCR3YXJuaW5nX2NvdW50KSAiTm8gc2NhbGUgZmFjdG9ycyBzZXQgZm9yIHJjIGNvcm5lciAoJHJjX2Nvcm5lcikiCi0gICAgICAgICAgICAgICBpbmNyIHdhcm5pbmdfY291bnQKLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0KLSAgIAotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgICAgICAgICAgICAgICAgRGVyYXRpbmcgRmFjdG9yc1xuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4iCi0gICAgICAgICBzZXQgaSAwCi0gICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoZGVyYXRlX3RjbCldfSB7Ci0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIElORk86ICAgIGRlcmF0ZSBmaWxlID0gJHZhcnMoZGVyYXRlX3RjbClcbiIKLSAgICAgICAgICAgIGxhcHBlbmQgY2hlY2soZmlsZXMpICR2YXJzKGRlcmF0ZV90Y2wpCi0gICAgICAgICAgICBpbmNyIGkKLSAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBmb3JlYWNoIGRlbGF5X2Nvcm5lciAkdmFycyhkZWxheV9jb3JuZXJzKSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIElORk86ICRkZWxheV9jb3JuZXI6XG4iCi0gICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJGRlbGF5X2Nvcm5lcixkZXJhdGVfdGNsKV19IHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgSU5GTzogICAgZGVyYXRlIGZpbGUgPSAkdmFycygkZGVsYXlfY29ybmVyLGRlcmF0ZV90Y2wpXG4iCi0gICAgICAgICAgICAgICAgICBsYXBwZW5kIGNoZWNrKGZpbGVzKSAkdmFycygkZGVsYXlfY29ybmVyLGRlcmF0ZV90Y2wpCi0gICAgICAgICAgICAgICAgICBpbmNyIGkKLSAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoZGVyYXRlX3RjbCldfSB7Ci0gICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIElORk86ICAgIGRlcmF0ZSBmaWxlID0gJHZhcnMoZGVyYXRlX3RjbClcbiIKLSAgICAgICAgICAgICAgICAgICAgIGxhcHBlbmQgY2hlY2soZmlsZXMpICR2YXJzKGRlcmF0ZV90Y2wpCi0gICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgZm9yZWFjaCBvdGhlciAiZWFybHlfZGF0YV9jZWxsIGVhcmx5X2Nsb2NrX2NlbGwgZWFybHlfY2VsbF9jaGVjayBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXRlX2RhdGFfY2VsbCBsYXRlX2Nsb2NrX2NlbGwgbGF0ZV9jZWxsX2NoZWNrIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGFfY2VsbF9lYXJseSBjbG9ja19jZWxsX2Vhcmx5IGNlbGxfY2hlY2tfZWFybHkgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YV9jZWxsX2xhdGUgY2xvY2tfY2VsbF9sYXRlIGNlbGxfY2hlY2tfbGF0ZSIgewotICAgICAgICAgICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCRkZWxheV9jb3JuZXIsJG90aGVyKV19IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgSU5GTzogICAgJG90aGVyID0gJHZhcnMoJGRlbGF5X2Nvcm5lciwkb3RoZXIpXG4iCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBpbmNyIGkKLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIGlmIHskaSA9PSAwfSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIFdBUk5JTkc6IE5vIGRlcmF0aW5nIGZhY3RvcnMgc2V0IGZvciBkZWxheSBjb3JuZXIgKCRkZWxheV9jb3JuZXIpXG4iCi0gICAgICAgICAgICAgICAgICBzZXQgd2FybmluZ3MoJHdhcm5pbmdfY291bnQpICJObyBkZXJhdGluZyBmYWN0b3JzIHNldCBmb3IgZGVsYXkgY29ybmVyICgkZGVsYXlfY29ybmVyKSIKLSAgICAgICAgICAgICAgICAgIGluY3Igd2FybmluZ19jb3VudAotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAgfQotIyAgICAgIH0KLSAgICAgIGlmIHshW3JlZ2V4cCAiOS4xIiAkdmFycyh2ZXJzaW9uKV19IHsKLQotICAgICAgICAgc2V0IHZhbGlkICJUUlVFIEZBTFNFIHRydWUgZmFsc2UgYXV0byIKLQotICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGVuYWJsZV9zaV9hd2FyZSldfSB7Ci0gICAgICAgICAgICBpZiB7W2xzZWFyY2ggJHZhbGlkICR2YXJzKGVuYWJsZV9zaV9hd2FyZSldID09IC0xfSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIEVSUk9SOiBWYXJpYWJsZSB2YXJzKGVuYWJsZV9zaV9hd2FyZSkgaGFzIGlsbGVnYWwgdmFsdWVcbiIKLSAgICAgICAgICAgICAgIHNldCBlcnJvcnMoJGVycm9yX2NvdW50KSAiVmFyaWFibGUgdmFycyhlbmFibGVfc2lfYXdhcmUpIGhhcyBpbGxlZ2FsIHZhbHVlIgotICAgICAgICAgICAgICAgICAgaW5jciBlcnJvcl9jb3VudAotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICAgICAgICAgTXVzdCBiZSBvbmUgb2YgJyR2YWxpZCdcbiIKLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0KLSAgICAgIH0KLQotIyAgICAgIHNldCB2YWxpZCAicG9zdGN0cyBwb3N0cm91dGUgcG9zdHJvdXRlX3NpIHRydWUgZmFsc2UiCi0jICAgICAgZm9yZWFjaCB2YXIgImZpeF9ob2xkIiB7Ci0jICAgICAgICAgaWYge1tsc2VhcmNoICR2YWxpZCBbc3RyaW5nIHRvbG93ZXIgJHZhcnMoJHZhcildXSA9PSAtMX0gewotIyAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgRVJST1I6IFZhcmlhYmxlIHZhcnMoJHZhcikgaGFzIGlsbGVnYWwgdmFsdWUgJHZhcnMoJHZhcilcbiIKLSMgICAgICAgICAgICBzZXQgZXJyb3JzKCRlcnJvcl9jb3VudCkgIlZhcmlhYmxlIHZhcnMoJHZhcikgaGFzIGlsbGVnYWwgdmFsdWUgJHZhcnMoJHZhcikiCi0jICAgICAgICAgICAgaW5jciBlcnJvcl9jb3VudAotIyAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgICAgICAgIE11c3QgYmUgb25lIG9mICckdmFsaWQnXG4iCi0jICAgICAgICAgfQotIyAgICAgIH0KLSAgICAgIAotCi0gICAgICBzZXQgdmFsaWQgW2xpc3QgdHJ1ZSBmYWxzZV0KLSAgICAgIGZvcmVhY2ggdmFyICJmaXhfaG9sZF9pZ25vcmVfaW9zIGZpeF9ob2xkX2FsbG93X3Ruc19kZWdyYWRhdGlvbiIgewotICAgICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycygkdmFyKV19IHsKLSAgICAgICAgICAgIGNvbnRpbnVlCi0gICAgICAgICB9Ci0gICAgICAgICBpZiB7W2xzZWFyY2ggJHZhbGlkIFtzdHJpbmcgdG9sb3dlciAkdmFycygkdmFyKV1dID09IC0xfSB7Ci0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIEVSUk9SOiBWYXJpYWJsZSB2YXJzKCR2YXIpIGhhcyBpbGxlZ2FsIHZhbHVlICR2YXJzKCR2YXIpXG4iCi0gICAgICAgICAgICBzZXQgZXJyb3JzKCRlcnJvcl9jb3VudCkgIlZhcmlhYmxlIHZhcnMoJHZhcikgaGFzIGlsbGVnYWwgdmFsdWUgJHZhcnMoJHZhcikiCi0gICAgICAgICAgICBpbmNyIGVycm9yX2NvdW50Ci0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgICAgICAgICBNdXN0IGJlIG9uZSBvZiAnJHZhbGlkJ1xuIgotICAgICAgICAgfQotICAgICAgfQotICAgICAgCi0gICAgICBzZXQgdmFsaWQgInByZV9wbGFjZSBwcmVfcHJlY3RzIHByZV9jdHMgcHJlX3Bvc3RjdHMgcHJlX3Bvc3Ryb3V0ZSBwcmVfcG9zdHJvdXRlX3NpIHByZV9zaWdub2ZmIHRydWUgZmFsc2UiCi0gICAgICBmb3JlYWNoIG9wdGlvbiAibWV0YWxmaWxsIGVuYWJsZV9vY3YgZW5hYmxlX3NzIiB7Ci0gICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJG9wdGlvbildfSB7Ci0gICAgICAgICAgICBpZiB7W2xzZWFyY2ggJHZhbGlkICR2YXJzKCRvcHRpb24pXSA9PSAtMX0gewotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICBFUlJPUjogVmFyaWFibGUgdmFycygkb3B0aW9uKSBoYXMgaWxsZWdhbCB2YWx1ZSAoJHZhcnMoJG9wdGlvbikpXG4iCi0gICAgICAgICAgICAgICBzZXQgZXJyb3JzKCRlcnJvcl9jb3VudCkgIlZhcmlhYmxlIHZhcnMoJG9wdGlvbikgaGFzIGlsbGVnYWwgdmFsdWUgKCR2YXJzKCRvcHRpb24pKSIKLSAgICAgICAgICAgICAgIGluY3IgZXJyb3JfY291bnQKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgICAgICAgIE11c3QgYmUgb25lIG9mICckdmFsaWQnXG4iCi0gICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0gICAgICB9Ci0KLSAgICAgIHNldCBwYWNzIFtGRjo6Z2V0X2J5X3N1ZmZpeCB2YXJzICIscGFjX21vZGUiXSAKLSAgICAgIHNldCB2YWxpZCAicmVhZF9vbmx5IGludGVyZmFjZSBhbGwiCi0KLSAgICAgIGZvcmVhY2ggcGFjICRwYWNzIHsKLSAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhwYWNfbW9kZSldfSB7Ci0gICAgICAgICAgICBpZiB7W2xzZWFyY2ggJHZhbGlkICR2YXJzKHBhY19tb2RlKV0gPT0gLTF9IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgRVJST1I6IFZhcmlhYmxlIHZhcnMocGFjX21vZGUpIGhhcyBpbGxlZ2FsIHZhbHVlXG4iCi0gICAgICAgICAgICAgICBzZXQgZXJyb3JzKCRlcnJvcl9jb3VudCkgIlZhcmlhYmxlIHZhcnMocGFjX21vZGUpIGhhcyBpbGxlZ2FsIHZhbHVlIgotICAgICAgICAgICAgICAgaW5jciBlcnJvcl9jb3VudAotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICAgICAgICAgTXVzdCBiZSBvbmUgb2YgJyR2YWxpZCdcbiIKLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0KLSAgICAgIH0KLQotICAgICAgc2V0IHZhbGlkICJkZWZhdWx0IHBlc3NpbWlzdGljIgotCi0gICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoc2lfYW5hbHlzaXNfdHlwZSldfSB7Ci0gICAgICAgICBpZiB7W2xzZWFyY2ggJHZhbGlkICR2YXJzKHNpX2FuYWx5c2lzX3R5cGUpXSA9PSAtMX0gewotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICBFUlJPUjogVmFyaWFibGUgdmFycyhzaV9hbmFseXNpc190eXBlKSBoYXMgaWxsZWdhbCB2YWx1ZVxuIgotICAgICAgICAgICAgc2V0IGVycm9ycygkZXJyb3JfY291bnQpICJWYXJpYWJsZSB2YXJzKHNpX2FuYWx5c2lzX3R5cGUpIGhhcyBpbGxlZ2FsIHZhbHVlIgotICAgICAgICAgICAgaW5jciBlcnJvcl9jb3VudAotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICAgICAgICAgTXVzdCBiZSBvbmUgb2YgJyR2YWxpZCdcbiIKLSAgICAgICAgIH0KLSAgICAgIH0KLQotICAgICAgc2V0IHZhbGlkICJwb3N0X2N0cyBwb3N0X3JvdXRlIGJvdGggbm9uZSIKLQotICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGNsb2NrX2VjbyldfSB7Ci0gICAgICAgICBpZiB7W2xzZWFyY2ggJHZhbGlkICR2YXJzKGNsb2NrX2VjbyldID09IC0xfSB7Ci0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIEVSUk9SOiBWYXJpYWJsZSB2YXJzKGNsb2NrX2VjbykgaGFzIGlsbGVnYWwgdmFsdWVcbiIKLSAgICAgICAgICAgIHNldCBlcnJvcnMoJGVycm9yX2NvdW50KSAiVmFyaWFibGUgdmFycyhjbG9ja19lY28pIGhhcyBpbGxlZ2FsIHZhbHVlIgotICAgICAgICAgICAgaW5jciBlcnJvcl9jb3VudAotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICAgICAgICAgTXVzdCBiZSBvbmUgb2YgJyR2YWxpZCdcbiIKLSAgICAgICAgIH0KLSAgICAgIH0KLSMgICAgICBpZiB7JHZhcnMoZW5hYmxlX2ZsZXhpbG0pfSB7Ci0jICAgICAgICAgc2V0IHdhcm5pbmdzKCR3YXJuaW5nX2NvdW50KSAiVXNpbmcgdmFycyhlbmFibGVfZmxleGlsbSkgcmVxdWlyZXMgdGhlIGZvbGxvd2luZyBsaW1pdGVkIGFjY2VzcyBmZWF0dXJlIDogZW5jRmxleElMTSIKLSMgICAgICAgICBpbmNyIHdhcm5pbmdfY291bnQKLSMgICAgICAgICBpZiB7JHZhcnMocGxhY2Vfb3B0X2Rlc2lnbil9IHsKLSMgICAgICAgICAgICBzZXQgd2FybmluZ3MoJHdhcm5pbmdfY291bnQpICJWYXJpYWJsZSB2YXJzKHBsYWNlX29wdF9kZXNpZ24pIG5vdCBzdXBwb3J0ZWQgd2hlbiB2YXJzKGVuYWJsZV9mbGV4aWxtKSBpcyB0cnVlIgotIyAgICAgICAgICAgIGluY3Igd2FybmluZ19jb3VudAotIyAgICAgICAgIH0KLSMgICAgICB9Ci0gICAgICBpZiB7JHZhcnModXNlX2ZsZXhtb2RlbHMpICYmICR2YXJzKGZsZXhtb2RlbF9wcm90b3R5cGUpfSB7Ci0gICAgICAgICBzZXQgdmFsaWQgW2xpc3QgZmxhdCBtdWx0aV9sZXZlbCB0b3BfdG9fYm90dG9tXQotICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGZsZXhtb2RlbF9wcm90b3R5cGVfZmxvd19zdHlsZSldfSB7Ci0gICAgICAgICAgICBpZiB7W2xzZWFyY2ggJHZhbGlkICR2YXJzKGZsZXhtb2RlbF9wcm90b3R5cGVfZmxvd19zdHlsZSldID09IC0xfSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIEVSUk9SOiBWYXJpYWJsZSB2YXJzKGZsZXhtb2RlbF9wcm90b3R5cGVfZmxvd19zdHlsZSkgaGFzIGlsbGVnYWwgdmFsdWUgKCR2YXJzKGZsZXhtb2RlbF9wcm90b3R5cGVfZmxvd19zdHlsZSkpXG4iCi0gICAgICAgICAgICAgICBzZXQgZXJyb3JzKCRlcnJvcl9jb3VudCkgIlZhcmlhYmxlIHZhcnMoZmxleG1vZGVsX3Byb3RvdHlwZV9mbG93X3N0eWxlKSBoYXMgaWxsZWdhbCB2YWx1ZSAoJHZhcnMoZmxleG1vZGVsX3Byb3RvdHlwZV9mbG93X3N0eWxlKSkiCi0gICAgICAgICAgICAgICBpbmNyIGVycm9yX2NvdW50Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgICAgICAgICBNdXN0IGJlIG9uZSBvZiAnJHZhbGlkJ1xuIgotICAgICAgICAgICAgfQotICAgICAgICAgfQotICAgICAgfQotCi0gICAgICBzZXQgY2hlY2socGx1Z2lucykgW2xpc3RdCi0gICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMobWV0YWxmaWxsKV0gJiYgKCR2YXJzKG1ldGFsZmlsbCkgIT0gZmFsc2UpfSB7Ci0gICAgICAgICBzZXQgY2hlY2socGx1Z2lucykgbWV0YWxmaWxsX3RjbAotICAgICAgfQotICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgIiMgICAgICAgICAgICAgICAgUGx1Zy1pbnNcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuIgotICAgICAgc2V0IHJjX3BsdWdpbnMgInN5bl9pbml0X3RjbCBzeW5fbG9hZF9ydGxfdGNsIHByZV9zeW5fbG9hZF9saWJfdGNsIHBvc3Rfc3luX2xvYWRfbGliX3RjbCBcCi0gICAgICAgICAgICAgICAgICAgICAgcHJlX3N5bl9lbGFiX3RjbCBwb3N0X3N5bl9lbGFiX3RjbCBzeW5fZGZ0X3NldHVwX3RjbCBwcmVfc3luX2dlbl90Y2wgXAotICAgICAgICAgICAgICAgICAgICAgIHBvc3Rfc3luX2dlbl90Y2wgcHJlX3N5bl9tYXBfdGNsIHBvc3Rfc3luX21hcF90Y2wgcG9zdF9zeW5fZGZ0X3RjbCBcCi0gICAgICAgICAgICAgICAgICAgICAgcHJlX3N5bl9pbmNyX3RjbCBwb3N0X3N5bl9pbmNyX3RjbCBwcmVfc3luX3BsYWNlX3RjbCBwb3N0bG9hZF9zeW5fcGxhY2VfdGNsIFwKLSAgICAgICAgICAgICAgICAgICAgICBwcmVleHBvcnRfc3luX3BsYWNlX3RjbCBwcmVhbm5vdGF0aW9uX3N5bl9wbGFjZV90Y2wgcG9zdF9zeW5fcGxhY2VfdGNsIHByZV9zeW5fZXhpdF90Y2wiCi0gICAgICBzZXQgZWRpX3BsdWdpbnMgImFsd2F5c19zb3VyY2VfdGNsIHByZV9pbml0X3RjbCBwb3N0X2luaXRfdGNsIFwKLSAgICAgICAgICAgICAgICAgICAgICAgcHJlX3BsYWNlX3RjbCBwbGFjZV90Y2wgcG9zdF9wbGFjZV90Y2wgcHJlX2N0c190Y2wgY3RzX3RjbCBwb3N0X2N0c190Y2wgXAotICAgICAgICAgICAgICAgICAgICAgICBwcmVfcHJlY3RzX3RjbCBwb3N0X3ByZWN0c190Y2wgcHJlX3Bvc3RjdHNfdGNsIHBvc3RfcG9zdGN0c190Y2wgXAotICAgICAgICAgICAgICAgICAgICAgICBwcmVfcG9zdGN0c19ob2xkX3RjbCBwb3N0X3Bvc3RjdHNfaG9sZF90Y2wgcHJlX3JvdXRlX3RjbCBwb3N0X3JvdXRlX3RjbCBcCi0gICAgICAgICAgICAgICAgICAgICAgIHByZV9wb3N0cm91dGVfdGNsIHBvc3RfcG9zdHJvdXRlX3RjbCBwcmVfcG9zdHJvdXRlX2hvbGRfdGNsIHBvc3RfcG9zdHJvdXRlX2hvbGRfdGNsIFwKLSAgICAgICAgICAgICAgICAgICAgICAgcHJlX3Bvc3Ryb3V0ZV9zaV90Y2wgcG9zdF9wb3N0cm91dGVfc2lfdGNsIHByZV9wb3N0cm91dGVfc2lfaG9sZF90Y2wgCi0gICAgICAgICAgICAgICAgICAgICAgIHBvc3RfcG9zdHJvdXRlX3NpX2hvbGRfdGNsIHByZV9zaWdub2ZmX3RjbCBwb3N0X3NpZ25vZmZfdGNsIFwKLSAgICAgICAgICAgICAgICAgICAgICAgcHJlX3JlYnVkZ2V0X3RjbCBwb3N0X3JlYnVkZ2V0X3RjbCBwcmVfZmxleGlsbV90Y2wgcG9zdF9mbGV4aWxtX3RjbCBcCi0gICAgICAgICAgICAgICAgICAgICAgIHByZV9hc3NlbWJsZV90Y2wgcG9zdF9hc3NlbWJsZV90Y2wgcHJlX3Byb3RvdHlwZV90Y2wgcG9zdF9wcm90b3R5cGVfdGNsIHByZV9tb2RlbF9nZW5fdGNsIHBvc3RfbW9kZWxfZ2VuX3RjbCBcCi0gICAgICAgICAgICAgICAgICAgICAgIHByZV9wYXJ0aXRpb25fcGxhY2VfdGNsIHBvc3RfcGFydGl0aW9uX3BsYWNlX3RjbCBwcmVfYXNzZW1ibGVfZmxleF9pbG1fdGNsIHBvc3RfYXNzZW1ibGVfZmxleGlsbV90Y2wiCi0KLSAgICAgIGlmIHskdmFycyhyYyl9IHsKLSAgICAgICAgIHNldCBwbHVnaW5fbGlzdCBbam9pbiBbY29uY2F0ICRyY19wbHVnaW5zICRlZGlfcGx1Z2luc11dCi0gICAgICB9IGVsc2UgewotICAgICAgICAgc2V0IHBsdWdpbl9saXN0ICRlZGlfcGx1Z2lucwotICAgICAgfQotICAgICAgZm9yZWFjaCBwbHVnaW4gJHBsdWdpbl9saXN0IHsKLSAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkcGx1Z2luKV0gJiYgKCR2YXJzKCRwbHVnaW4pICE9ICIiKX0gewotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICBJTkZPOiBQbHVnLWluICRwbHVnaW4gPSAkdmFycygkcGx1Z2luKVxuIgotICAgICAgICAgICAgbGFwcGVuZCBjaGVjayhwbHVnaW5zKSAkcGx1Z2luCi0gICAgICAgICAgICBsYXBwZW5kIHZhcnMocGx1Z2luc19kZWZpbmVkKSAkcGx1Z2luIAotICAgICAgICAgfQotICAgICAgfQotCi0gICAgICBzZXQgZGlzdChsc2YpICJxdWV1ZSByZXNvdXJjZSBhcmdzIgotICAgICAgc2V0IGRpc3QoY3VzdG9tKSAic2NyaXB0IgotICAgICAgc2V0IGRpc3QocnNoKSAiaG9zdF9saXN0IgotICAgICAgc2V0IGRpc3QobG9jYWwpICIiCi0KLSAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhkaXN0cmlidXRlKV19IHsKLSAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgZGlzdCgkdmFycyhkaXN0cmlidXRlKSldfSB7Ci0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgICAgICAgICAgICAgIERpc3RyaWJ1dGlvbiBTZXR1cFxuIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4iCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIElORk86IE1vZGUgPSAkdmFycyhkaXN0cmlidXRlKVxuIgotICAgICAgICAgICAgZm9yZWFjaCBvcHRpb24gJGRpc3QoJHZhcnMoZGlzdHJpYnV0ZSkpIHsKLSAgICAgICAgICAgICAgIGlmIHshW2luZm8gZXhpc3RzIHZhcnMoJHZhcnMoZGlzdHJpYnV0ZSksJG9wdGlvbildfSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIEVSUk9SOiBSZXF1aXJlZCB2YXJpYWJsZSB2YXJzKCR2YXJzKGRpc3RyaWJ1dGUpLCRvcHRpb24pIG5vdCBkZWZpbmVkXG4iCi0gICAgICAgICAgICAgICAgICBzZXQgZXJyb3JzKCRlcnJvcl9jb3VudCkgIlJlcXVpcmVkIHZhcmlhYmxlIHZhcnMoJHZhcnMoZGlzdHJpYnV0ZSksJG9wdGlvbikgbm90IGRlZmluZWQiCi0gICAgICAgICAgICAgICAgICBpbmNyIGVycm9yX2NvdW50Ci0gICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICBJTkZPOiAgICAkb3B0aW9uID0gJHZhcnMoJHZhcnMoZGlzdHJpYnV0ZSksJG9wdGlvbilcbiIKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIEVSUk9SOiBEaXN0cmlidXRpb24gbW9kZSAkdmFycyhkaXN0cmlidXRlKSBub3Qgc3VwcG9ydGVkXG4iCi0gICAgICAgICAgICBzZXQgZXJyb3JzKCRlcnJvcl9jb3VudCkgIkRpc3RyaWJ1dGlvbiBtb2RlICR2YXJzKGRpc3RyaWJ1dGUpIG5vdCBzdXBwb3J0ZWQiCi0gICAgICAgICAgICBpbmNyIGVycm9yX2NvdW50Ci0gICAgICAgICB9Ci0gICAgICB9IGVsc2UgewotICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGhvc3RzKV0gJiYgKCR2YXJzKGhvc3RzKSA+IDEpfSB7Ci0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiNXQVJOSU5HOiBWYXJpYWJsZSB2YXJzKGhvc3RzKSA+IDEgYnV0IHZhcnMoZGlzdHJpYnV0ZSkgbm90IGRlZmluZWRcbiIKLSAgICAgICAgICAgIHNldCB3YXJuaW5ncygkd2FybmluZ19jb3VudCkgIlZhcmlhYmxlIHZhcnMoaG9zdHMpID4gMSBidXQgdmFycyhkaXN0cmlidXRlKSBub3QgZGVmaW5lZCIKLSAgICAgICAgICAgIGluY3Igd2FybmluZ19jb3VudAotICAgICAgICAgfQotICAgICAgfQotCi0gICAgICBhcHBlbmQgY29tbWFuZHMgIiMgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgICAgICAgICAgICAgIFR5cGUgQ2hlY2tcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuIgotICAgICAgZm9yZWFjaCBpbnRlZ2VyICRjaGVjayhpbnRlZ2VycykgewotICAgICAgICAgaWYgeyFbc3RyaW5nIGlzIGludGVnZXIgLXN0cmljdCAkdmFycygkaW50ZWdlcildfSB7Ci0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIEVSUk9SOiBWYXJpYWJsZXMgaXMgbm90IGFuIGludGVnZXIgKCRpbnRlZ2VyKSAuLi5cbiIKLSAgICAgICAgICAgIHNldCBlcnJvcnMoJGVycm9yX2NvdW50KSAiVmFyaWFibGVzIGlzIG5vdCBhbiBpbnRlZ2VyICgkaW50ZWdlcikgLi4uIgotICAgICAgICAgICAgaW5jciBlcnJvcl9jb3VudAotICAgICAgICAgfQotICAgICAgfSAKLSAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICAgICAgICAgICAgICAgRmlsZSBDaGVja1xuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4iCi0gICAgICBzZXQgZmlsZXMgMAotICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICBJTkZPOiBDaGVja2luZyBkZXNpZ24gZmlsZXMgLi4uXG4iCi0gICAgICBmb3JlYWNoIGZpbGUgJGNoZWNrKGZpbGVzKSB7Ci0gICAjICAgYXBwZW5kIGNvbW1hbmRzICIjICBJTkZPOiAgICAkZmlsZSAuLi5cbiIKLSAgICAgICAgIGlmIHshW2ZpbGUgZXhpc3RzICRmaWxlXX0gewotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICBFUlJPUjogRmlsZSBkb2VzIG5vdCBleGlzdCAoJGZpbGUpIC4uLlxuIgotICAgICAgICAgICAgc2V0IGVycm9ycygkZXJyb3JfY291bnQpICJGaWxlIGRvZXMgbm90IGV4aXN0ICgkZmlsZSkiCi0gICAgICAgICAgICBpbmNyIGVycm9yX2NvdW50Ci0gICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgaW5jciBmaWxlcwotICAgICAgICAgfQotICAgICAgfQotICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICBJTkZPOiAgICAuLi4gZm91bmQgJGZpbGVzIGZpbGVzXG4iCi0gICAgICBzZXQgZmlsZXMgMAotICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICBJTkZPOiBDaGVja2luZyBMRUYgZmlsZXMgLi4uXG4iCi0gICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMobGVmX2ZpbGVzKV19IHsKLSAgICAgICAgIGZvcmVhY2ggZmlsZSAkdmFycyhsZWZfZmlsZXMpIHsKLSAgICAgICAgICAgIGlmIHshW2ZpbGUgZXhpc3RzICRmaWxlXX0gewotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICBFUlJPUjogRmlsZSBkb2VzIG5vdCBleGlzdCAoJGZpbGUpXG4iCi0gICAgICAgICAgICAgICBzZXQgZXJyb3JzKCRlcnJvcl9jb3VudCkgIkZpbGUgZG9lcyBub3QgZXhpc3QgKCRmaWxlKSIKLSAgICAgICAgICAgICAgIGluY3IgZXJyb3JfY291bnQKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBpbmNyIGZpbGVzCi0gICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIElORk86ICAgIC4uLiBmb3VuZCAoJGZpbGVzL1tsbGVuZ3RoICR2YXJzKGxlZl9maWxlcyldKSBsZWYgZmlsZXNcbiIKLSAgICAgIH0KLSAgICAgIHNldCBmaWxlcyAwCi0gICAgICBzZXQgdG90YWwgMAotIyAgICAgIGlmIHshW2luZm8gZXhpc3RzIHZhcnModmlld19kZWZpbml0aW9uX3RjbCldfSB7Ci0jICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycyhjcGZfZmlsZSldfSB7Ci0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIElORk86IENoZWNraW5nIGxpYnJhcnkgc2V0cyAuLi5cbiIKLSAgICAgICAgIGZvcmVhY2ggbGlicmFyeV9zZXQgJHZhcnMobGlicmFyeV9zZXRzKSB7Ci0jICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGVuYWJsZV9sZGIpXSAmJiAkdmFycyhlbmFibGVfbGRiKX0gewotIyAgICAgICAgICAgICAgIHNldCB0ZW1wX2xpc3QgJHZhcnMoJGxpYnJhcnlfc2V0LHRpbWluZyxvcmlnKQotIyAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBzZXQgdGVtcF9saXN0ICR2YXJzKCRsaWJyYXJ5X3NldCx0aW1pbmcpCi0jICAgICAgICAgICAgfQotICAgICAgICAgICAgZm9yZWFjaCBmaWxlICR0ZW1wX2xpc3QgewotICAgICAgICAgICAgICAgaW5jciB0b3RhbAotICAgICAgICAgICAgICAgaWYgeyFbZmlsZSBleGlzdHMgJGZpbGVdfSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIEVSUk9SOiBGaWxlIGRvZXMgbm90IGV4aXN0ICgkZmlsZSlcbiIKLSMgICAgICAgICAgICAgICAgICBzZXQgZXJyb3JzKCRlcnJvcl9jb3VudCkgIkZpbGUgZG9lcyBub3QgZXhpc3QgKCRmaWxlKSIKLSMgICAgICAgICAgICAgICAgICBpbmNyIGVycm9yX2NvdW50Ci0gICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgaW5jciBmaWxlcwotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfSAKLSAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkbGlicmFyeV9zZXQsc2kpXX0gewotICAgICAgICAgICAgICAgZm9yZWFjaCBmaWxlICR2YXJzKCRsaWJyYXJ5X3NldCxzaSkgewotICAgICAgICAgICAgICAgICAgaW5jciB0b3RhbAotICAgICAgICAgICAgICAgICAgaWYgeyFbZmlsZSBleGlzdHMgJGZpbGVdfSB7Ci0gICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIFdBUk5JTkc6IENEQiBmaWxlIGRvZXMgbm90IGV4aXN0ICgkZmlsZSlcbiIKLSMgICAgICAgICAgICAgICAgICAgICBzZXQgd2FybmluZ3MoJHdhcm5pbmdfY291bnQpICJDREIgZmlsZSBkb2VzIG5vdCBleGlzdCAoJGZpbGUpIgotIyAgICAgICAgICAgICAgICAgICAgIGluY3Igd2FybmluZ19jb3VudAotICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgIGluY3IgZmlsZXMKLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBpZiB7ISR2YXJzKGVuYWJsZV9zaV9hd2FyZSl9IHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgV0FSTklORzogQ0RCIGxpYnJhcmllcyBub3QgZGVmaW5lZCBmb3IgJGxpYnJhcnlfc2V0IGxpYnJhcnkgc2V0XG4iCi0gICAgICAgICAgICAgICAgICBzZXQgd2FybmluZ3MoJHdhcm5pbmdfY291bnQpICJDREIgbGlicmFyaWVzIG5vdCBkZWZpbmVkIGZvciAkbGlicmFyeV9zZXQgbGlicmFyeSBzZXQiCi0gICAgICAgICAgICAgICAgICBpbmNyIHdhcm5pbmdfY291bnQKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0KLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgSU5GTzogICAgLi4uIGZvdW5kICgkZmlsZXMvJHRvdGFsKSBsaWJyYXJ5IGZpbGVzXG4iCi0gICAgICAgICBpZiB7JHRvdGFsICE9ICRmaWxlc30gewotICAgICAgICAgICAgc2V0IGVycm9ycygkZXJyb3JfY291bnQpICJbZXhwciAkdG90YWwgLSAkZmlsZXNdIHRpbWluZyBsaWJyYXJ5IGZpbGVzIHdlcmUgbm90IGZvdW5kICIKLSAgICAgICAgICAgIGluY3IgZXJyb3JfY291bnQKLSAgICAgICAgIH0KLSAgICAgICAgIHNldCBmaWxlcyAwCi0jICAgICAgfQotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICBJTkZPOiBDaGVja2luZyByYyBjb3JuZXJzIC4uLlxuIgotICAgICAgICAgZm9yZWFjaCBmaWxlICRjaGVjayhyY19jb3JuZXJzKSB7Ci0gICAgICAgICAgICBpZiB7IVtmaWxlIGV4aXN0cyAkZmlsZV19IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgRVJST1I6IEZpbGUgZG9lcyBub3QgZXhpc3QgKCRmaWxlKVxuIgotICAgICAgICAgICAgICAgc2V0IGVycm9ycygkZXJyb3JfY291bnQpICJGaWxlIGRvZXMgbm90IGV4aXN0ICgkZmlsZSkiCi0gICAgICAgICAgICAgICBpbmNyIGVycm9yX2NvdW50Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgaW5jciBmaWxlcwotICAgICAgICAgICAgfQotICAgICAgICAgfQotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICBJTkZPOiAgICAuLi4gZm91bmQgJGZpbGVzIGZpbGVzXG4iCi0gICAgICAgICBzZXQgZmlsZXMgMAotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICBJTkZPOiBDaGVja2luZyBjb25zdHJhaW50IG1vZGVzIC4uLlxuIgotICAgICAgICAgZm9yZWFjaCBmaWxlX2xpc3QgJGNoZWNrKGNvbnN0cmFpbnRfbW9kZXMpIHsKLSAgICAgICAgICAgIGZvcmVhY2ggZmlsZSAkZmlsZV9saXN0IHsKLSAgICAgICAgICAgICAgIGlmIHshW2ZpbGUgZXhpc3RzICRmaWxlXX0gewotICAgICAgICAgICAgICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycyhjcGZfZmlsZSldIHx8IChbaW5mbyBleGlzdHMgdmFycyhjcGZfZmlsZSldICYmICEkdmFycyhjcGZfdGltaW5nKSl9IHsKLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgRVJST1I6IEZpbGUgZG9lcyBub3QgZXhpc3QgKCRmaWxlKVxuIgotICAgICAgICAgICAgICAgICAgICAgc2V0IGVycm9ycygkZXJyb3JfY291bnQpICJGaWxlIGRvZXMgbm90IGV4aXN0ICgkZmlsZSkiCi0gICAgICAgICAgICAgICAgICAgICBpbmNyIGVycm9yX2NvdW50Ci0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgaW5jciBmaWxlcwotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAgfQotIyAgICAgIH0KLSAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgSU5GTzogICAgLi4uIGZvdW5kICRmaWxlcyBmaWxlc1xuIgotICAgICAgc2V0IGZpbGVzIDAKLSAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIElORk86IENoZWNraW5nIHBsdWdpbiBmaWxlcyAuLi5cbiIKLSAgICAgIGZvcmVhY2ggcGx1ZyAkY2hlY2socGx1Z2lucykgewotICAgICAgICAgc2V0IGZpbGUgJHZhcnMoJHBsdWcpCi0gICAgICAgICBpZiB7IVtmaWxlIGV4aXN0cyAkZmlsZV0gJiYgIVtmaWxlIGV4aXN0cyAkdmFycyhwbHVnX2RpcikvJGZpbGVdfSB7Ci0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIFdBUk5JTkc6IEZpbGUgZG9lcyBub3QgZXhpc3QgKCRmaWxlKSAuLi4gY29udGludWluZ1xuIgotICAgICAgICAgICAgbGFwcGVuZCB2YXJzKG1pc3NpbmdfcGx1Z2lucykgJHBsdWcgCi0gICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgbGFwcGVuZCB2YXJzKHBsdWdpbnNfZm91bmQpICRwbHVnIAotICAgICAgICAgICAgaW5jciBmaWxlcwotICAgICAgICAgICAgaWYgeyEkdmFycyhlbmFibGVfY2VsdGljX3N0ZXBzKX0geyAKLSAgICAgICAgICAgICAgIGlmIHtbcmVnZXhwICJwb3N0cm91dGVfc2kiICRwbHVnXX0gewotICAgICAgICAgICAgICAgICAgYXBwZW5kIHdhcm5pbmdzKCR3YXJuaW5nX2NvdW50KSAiUGx1Zy1pbiAkcGx1ZyB3aWxsIGJlIHNraXBwZWQgZm9yIHNpQXdhcmUgZmxvdyIKLSAgICAgICAgICAgICAgICAgIGluY3Igd2FybmluZ19jb3VudAotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICBXQVJOSU5HOiBQbHVnLWluICRwbHVnIHdpbGwgYmUgc2tpcHBlZCBmb3Igc2lBd2FyZSBmbG93XG4iCi0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgICAgICAgICAgIFRvIGVuYWJsZSBjZWx0aWMgYmFzZWQgU0kgZmxvdywgdXNlIHZhcnMoZW5hYmxlX2NlbHRpY19zdGVwcylcbiIKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0KLSAgICAgIH0KLSAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgSU5GTzogICAgLi4uIGZvdW5kICRmaWxlcyBmaWxlc1xuIgotCi0gICAgICBhcHBlbmQgY29tbWFuZHMgIiMgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgIiMgICAgICAgICAgICAgICAgICAgIEZsb3cgT3B0aW9uc1xuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuIgotICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKHBhcnRpdGlvbl9saXN0KV19IHsKLSAgICAgICAgIHNldCBmbG93IGhpZXJhcmNoaWNhbAotICAgICAgfSBlbHNlIHsKLSAgICAgICAgIHNldCBmbG93IGZsYXQKLSAgICAgIH0KLSAgICAgIHNldCB2YWxpZCBbbGlzdCBub25lIGRlZmF1bHQgc3RhbmRhcmQgZXhwcmVzcyBleHRyZW1lXQotICAgICAgaWYge1tsc2VhcmNoICR2YWxpZCBbc3RyaW5nIHRvbG93ZXIgJHZhcnMoZmxvd19lZmZvcnQpXV0gPT0gLTF9IHsKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgRVJST1I6IFZhcmlhYmxlIHZhcnMoZmxvd19lZmZvcnQpIGhhcyBpbGxlZ2FsIHZhbHVlICR2YXJzKGZsb3dfZWZmb3J0KVxuIgotICAgICAgICAgc2V0IGVycm9ycygkZXJyb3JfY291bnQpICJWYXJpYWJsZSB2YXJzKGZsb3dfZWZmb3J0KSBoYXMgaWxsZWdhbCB2YWx1ZSAkdmFycyhmbG93X2VmZm9ydCkiCi0gICAgICAgICBpbmNyIGVycm9yX2NvdW50Ci0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgICAgICAgICBNdXN0IGJlIG9uZSBvZiAnJHZhbGlkJ1xuIgotICAgICAgfSBlbHNlIHsKLSAgICAgICAgIGlmIHsoW3N0cmluZyB0b2xvd2VyICR2YXJzKGZsb3dfZWZmb3J0KV0gPT0gIm5vbmUiKSB8fCAoW3N0cmluZyB0b2xvd2VyICR2YXJzKGZsb3dfZWZmb3J0KV0gPT0gImRlZmF1bHQiKX0gewotICAgICAgICAgICAgYXBwZW5kIHdhcm5pbmdzKCR3YXJuaW5nX2NvdW50KSAiQ2hhbmdpbmcgdmFycyhmbG93X2VmZm9ydCkgZnJvbSAnJHZhcnMoZmxvd19lZmZvcnQpJyB0byAnc3RhbmRhcmQnIgotICAgICAgICAgICAgaW5jciB3YXJuaW5nX2NvdW50Ci0gICAgICAgICAgICBzZXQgdmFycyhmbG93X2VmZm9ydCkgc3RhbmRhcmQKLSAgICAgICAgIH0KLSAgICAgIH0KLSAgICAgIHNldCB2YWxpZCBbbGlzdCBub25lIGxvdyBoaWdoXQotICAgICAgaWYge1tsc2VhcmNoICR2YWxpZCBbc3RyaW5nIHRvbG93ZXIgJHZhcnMocG93ZXJfZWZmb3J0KV1dID09IC0xfSB7Ci0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIEVSUk9SOiBWYXJpYWJsZSB2YXJzKHBvd2VyX2VmZm9ydCkgaGFzIGlsbGVnYWwgdmFsdWUgJHZhcnMocG93ZXJfZWZmb3J0KVxuIgotICAgICAgICAgc2V0IGVycm9ycygkZXJyb3JfY291bnQpICJWYXJpYWJsZSB2YXJzKHBvd2VyX2VmZm9ydCkgaGFzIGlsbGVnYWwgdmFsdWUgJHZhcnMocG93ZXJfZWZmb3J0KSIKLSAgICAgICAgIGluY3IgZXJyb3JfY291bnQKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgICAgICAgIE11c3QgYmUgb25lIG9mICckdmFsaWQnXG4iCi0gICAgICB9Ci0gICAgICBhcHBlbmQgY29tbWFuZHMgIiMgICAgICAgICAgICAgICAgICAgIEZsb3cgPSAkZmxvd1xuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICAgICAgICAgICAgICAgICAgIFBvd2VyID0gJHZhcnMocG93ZXJfZWZmb3J0KVxuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICAgICAgICAgICAgICAgICAgRmxhdm9yID0gJHZhcnMoZmxvdylcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgICAgICAgICAgICAgICAgIEVmZm9ydCA9ICR2YXJzKGZsb3dfZWZmb3J0KVxuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICAgICAgICAgICAgICAgICAgICBQbGFjZW1lbnQgT3B0aW9uc1xuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIgotICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKHBsYWNlX29wdF9kZXNpZ24pXX0gewotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICAgICAgICBQbGFjZSBPcHQgRGVzaWduID0gJHZhcnMocGxhY2Vfb3B0X2Rlc2lnbilcbiIKLSAgICAgIH0KLSAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhpbl9wbGFjZV9vcHQpXX0gewotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICAgICAgICAgICAgSW4gUGxhY2UgT3B0ID0gJHZhcnMoaW5fcGxhY2Vfb3B0KVxuIgotICAgICAgfQotICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKG5vX3ByZV9wbGFjZV9vcHQpXX0gewotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICAgICAgICAgTm8gUHJlUGxhY2UgT3B0ID0gJHZhcnMobm9fcHJlX3BsYWNlX29wdClcbiIKLSAgICAgIH0KLSAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhwbGFjZV9pb19waW5zKV19IHsKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgICAgICAgICAgUGxhY2UgSU8gUGlucyA9ICR2YXJzKHBsYWNlX2lvX3BpbnMpXG4iCi0gICAgICB9Ci0gICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoY2xvY2tfZ2F0ZV9hd2FyZSldfSB7Ci0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgICAgICAgIENsb2NrIEdhdGUgQXdhcmUgPSAkdmFycyhjbG9ja19nYXRlX2F3YXJlKVxuIgotICAgICAgfQotICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGNvbmdlc3Rpb25fZWZmb3J0KV19IHsKLSAgICAgICAgIGlmIHskdmFycyhjb25nZXN0aW9uX2VmZm9ydCkgPT0gIm5vbmUifSB7Ci0gICAgICAgICAgICB1bnNldCB2YXJzKGNvbmdlc3Rpb25fZWZmb3J0KSAgCi0gICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICAgICAgIENvbmdlc3Rpb24gRWZmb3J0ID0gJHZhcnMoY29uZ2VzdGlvbl9lZmZvcnQpXG4iCi0gICAgICAgICB9Ci0gICAgICB9Ci0gICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgIiMgICAgICAgICAgICAgICAgICAgQ2xvY2sgVHJlZSBPcHRpb25zXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgIiMgICAgICAgIFJvdXRlIENsb2NrIE5ldHMgPSAkdmFycyhyb3V0ZV9jbG9ja19uZXRzKVxuIgotICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGNsb2NrX2VjbyldfSB7Ci0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgICAgICAgICAgICAgICBDbG9jayBFQ08gPSAkdmFycyhjbG9ja19lY28pXG4iCi0gICAgICB9Ci0gICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgIiMgICAgICAgICAgICAgICAgIE9wdGltaXphdGlvbiBPcHRpb25zXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4iCi0gICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMobGVha2FnZV9lZmZvcnQpXX0gewotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICAgICAgICAgIExlYWthZ2UgRWZmb3J0ID0gJHZhcnMobGVha2FnZV9lZmZvcnQpXG4iCi0gICAgICB9Ci0gICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMocHJlc2VydmVfYXNzZXJ0aW9ucyldfSB7Ci0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgICAgIFByZXNlcnZlIEFzc2VydGlvbnMgPSAkdmFycyhwcmVzZXJ2ZV9hc3NlcnRpb25zKVxuIgotICAgICAgfQotICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKHVzZWZ1bF9za2V3KV19IHsKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgICAgICAgICAgICBVc2VmdWwgU2tldyA9ICR2YXJzKHVzZWZ1bF9za2V3KVxuIgotICAgICAgfQotICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGNyaXRpY2FsX3JhbmdlKV19IHsKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgICAgICAgICBDcml0aWNhbCBSYW5nZSA9ICR2YXJzKGNyaXRpY2FsX3JhbmdlKVxuIgotICAgICAgfQotICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGFsbF9lbmRfcG9pbnRzKV19IHsKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgICAgICAgICBBbGwgRW5kIFBvaW50cyA9ICR2YXJzKGFsbF9lbmRfcG9pbnRzKVxuIgotICAgICAgfQotICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKHNpemVfb25seV9maWxlKV19IHsKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgICAgICAgICBTaXplIE9ubHkgRmlsZSA9ICR2YXJzKHNpemVfb25seV9maWxlKVxuIgotICAgICAgfQotICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGRvbnRfdXNlX2ZpbGUpXX0gewotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICAgICAgICAgIERvbid0IFVzZSBGaWxlID0gJHZhcnMoZG9udF91c2VfZmlsZSlcbiIKLSAgICAgIH0KLSAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhza2V3X2J1ZmZlcnMpXX0gewotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICAgICAgICAgICAgU2tldyBCdWZmZXJzID0gJHZhcnMoc2tld19idWZmZXJzKVxuIgotICAgICAgfQotICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGVuYWJsZV9wYWMpXX0gewotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICAgICAgICAgICAgICBFbmFibGUgUEFDID0gJHZhcnMoZW5hYmxlX3BhYylcbiIKLSAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhwYXJ0aXRpb25fbGlzdCldfSB7Ci0gICAgICAgICAgICBmb3JlYWNoIHBhYyAkdmFycyhwYXJ0aXRpb25fbGlzdCkgewotICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCRwYWMscGFjX21vZGUpXX0gewotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICAgICAgICAgICAgICAgICAgICRwYWMgLT4gJHZhcnMoJHBhYyxwYWNfbW9kZSlcbiIKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0KLSAgICAgIH0KLSAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgICAgICAgICAgICAgICAgIEhvbGQgRml4aW5nIE9wdGlvbnNcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgICAgICAgICAgICAgICBGaXggSG9sZCA9ICR2YXJzKGZpeF9ob2xkKVxuIgotICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGZpeF9ob2xkX2VmZm9ydCldfSB7Ci0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgICAgICAgICBGaXggSG9sZCBFZmZvcnQgPSAkdmFycyhmaXhfaG9sZF9lZmZvcnQpXG4iCi0gICAgICB9Ci0gICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoZml4X2hvbGRfaWdub3JlX2lvcyldfSB7Ci0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgICAgICAgICAgICAgSWdub3JlIElPcyAgPSAkdmFycyhmaXhfaG9sZF9pZ25vcmVfaW9zKVxuIgotICAgICAgfQotICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGZpeF9ob2xkX2FsbG93X3Ruc19kZWdyYWRhdGlvbildfSB7Ci0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgICBBbGxvdyBUTlMgRGVncmFkYXRpb24gPSAkdmFycyhmaXhfaG9sZF9hbGxvd190bnNfZGVncmFkYXRpb24pXG4iCi0gICAgICB9Ci0gICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgIiMgICAgICAgICAgICAgICAgICAgICBUaW1pbmcgT3B0aW9uc1xuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICAgICAgICAgICAgIEVuYWJsZSBDUFBSID0gJHZhcnMoZW5hYmxlX2NwcHIpXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgIiMgICAgICAgICAgICAgIEVuYWJsZSBPQ1YgPSAkdmFycyhlbmFibGVfb2N2KVxuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICAgICAgICAgICAgIEVuYWJsZSBBT0NWID0gJHZhcnMoZW5hYmxlX2FvY3YpXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgIiMgICAgICAgICAgICAgRW5hYmxlIFNPQ1YgPSAkdmFycyhlbmFibGVfc29jdilcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgICAgICAgICAgICAgIEVuYWJsZSBTUyA9ICR2YXJzKGVuYWJsZV9zcylcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgICAgICAgICAgICAgICAgICAgUm91dGluZyBPcHRpb25zXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4iCi0gICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnModHJhY2tfb3B0KV19IHsKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgICBJbiBSb3V0ZSBPcHRpbWl6YXRpb24gPSAkdmFycyh0cmFja19vcHQpXG4iCi0jICAgICAgICAgaWYgeyR2YXJzKHRyYWNrX29wdCl9IHsKLSMgICAgICAgICAgICBzZXQgdmFycyhlbmFibGVfc2lfYXdhcmUpIHRydWUKLSMgICAgICAgICAgICBpZiB7IVtpbmZvIGV4aXN0cyB2YXJzKHRxdWFudHVzX2ZpbGUpXX0gewotIyAgICAgICAgICAgICAgIHNldCBlcnJvcnMoJGVycm9yX2NvdW50KSAidFF1YW50dXMgZmlsZSAtIHZhcnModHF1YW50dXNfZmlsZSkgLSByZXF1aXJlZCB3aGVuIHZhcnModHJhY2tfb3B0KSBzZXQgdG8gdHJ1ZSIKLSMgICAgICAgICAgICAgICBpbmNyIGVycm9yX2NvdW50Ci0jICAgICAgICAgICAgfQotIyAgICAgICAgIH0KLSAgICAgIH0KLSAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhtdWx0aV9jdXRfZWZmb3J0KV19IHsKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgICAgICAgTXVsdGktQ3V0IEVmZm9ydCA9ICR2YXJzKG11bHRpX2N1dF9lZmZvcnQpXG4iCi0gICAgICB9Ci0gICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMobGl0aG9fZHJpdmVuX3JvdXRpbmcpXX0gewotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICAgIExpdGhvIERyaXZlbiBSb3V0aW5nID0gJHZhcnMobGl0aG9fZHJpdmVuX3JvdXRpbmcpXG4iCi0gICAgICB9Ci0gICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoYW50ZW5uYV9kaW9kZSldICYmICgkdmFycyhhbnRlbm5hX2Rpb2RlKSAhPSAiIil9IHsKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgICAgICAgICAgQW50ZW5uYSBEaW9kZSA9ICR2YXJzKGFudGVubmFfZGlvZGUpXG4iCi0gICAgICB9Ci0gICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMocmVsYXRpdmVfY190aHJlc2gpXSB8fCBcCi0gICAgICAgICAgW2luZm8gZXhpc3RzIHZhcnModG90YWxfY190aHJlc2gpXSB8fCBcCi0gICAgICAgICAgW2luZm8gZXhpc3RzIHZhcnMoY291cGxpbmdfY190aHJlc2gpXSB8fFwKLSAgICAgICAgICBbaW5mbyBleGlzdHMgdmFycyhwb3N0cm91dGVfZXh0cmFjdGlvbl9lZmZvcnQpXSB8fFwKLSAgICAgICAgICBbaW5mbyBleGlzdHMgdmFycyhzaWdub2ZmX2V4dHJhY3Rpb25fZWZmb3J0KV19IHsKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgICAgICAgICAgICAgICAgICBFeHRyYWN0aW9uIE9wdGlvbnNcbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiIKLSAgICAgIH0KLSAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhyZWxhdGl2ZV9jX3RocmVzaCldfSB7Ci0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgICAgUmVsYXRpdmUgQyBUaHJlc2hvbGQgPSAkdmFycyhyZWxhdGl2ZV9jX3RocmVzaClcbiIKLSAgICAgIH0KLSAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyh0b3RhbF9jX3RocmVzaCldfSB7Ci0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgICAgICAgVG90YWwgQyBUaHJlc2hvbGQgPSAkdmFycyh0b3RhbF9jX3RocmVzaClcbiIKLSAgICAgIH0KLSAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhjb3VwbGluZ19jX3RocmVzaCldfSB7Ci0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgICAgQ291cGxpbmcgQyBUaHJlc2hvbGQgPSAkdmFycyhjb3VwbGluZ19jX3RocmVzaClcbiIKLSAgICAgIH0KLSAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhwb3N0cm91dGVfZXh0cmFjdGlvbl9lZmZvcnQpXX0gewotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICBQb3N0cm91dGUgRWZmb3J0IExldmVsID0gJHZhcnMocG9zdHJvdXRlX2V4dHJhY3Rpb25fZWZmb3J0KVxuIgotICAgICAgfQotICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKHNpZ25vZmZfZXh0cmFjdGlvbl9lZmZvcnQpXX0gewotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICAgIFNpZ25vZmYgRWZmb3J0IExldmVsID0gJHZhcnMoc2lnbm9mZl9leHRyYWN0aW9uX2VmZm9ydClcbiIKLSAgICAgIH0KLQotICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICAgICAgICAgICAgICAgICAgICAgICAgREZNIE9wdGlvbnNcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiIKLSAgICAgIHNldCBjaGVja19scGFfdGVjaCAwCi0gICAgICBzZXQgY2hlY2tfbHBhX2NvbmYgMAotICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGZpeF9saXRobyldICYmICR2YXJzKGZpeF9saXRobyl9IHsKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgICAgICAgICAgICAgIEZpeCBMaXRobyA9ICR2YXJzKGZpeF9saXRobylcbiIKLSAgICAgICAgIHNldCBjaGVja19scGFfY29uZiAxCi0gICAgICAgICBzZXQgdmFycyh2ZXJpZnlfbGl0aG8pIHRydWUKLSAgICAgIH0KLSAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyh2ZXJpZnlfbGl0aG8pXSAmJiAkdmFycyh2ZXJpZnlfbGl0aG8pfSB7Ci0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgICAgICAgICAgICBWZXJpZnkgTGl0aG8gPSAkdmFycyh2ZXJpZnlfbGl0aG8pXG4iCi0gICAgICAgICBzZXQgY2hlY2tfbHBhX3RlY2ggMQotICAgICAgfQotICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGxwYV90ZWNoX2ZpbGUpXX0gewotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICAgICAgICAgICBMUEEgVGVjaCBGaWxlID0gJHZhcnMobHBhX3RlY2hfZmlsZSlcbiIKLSAgICAgIH0gCi0gICAgICBpZiB7JGNoZWNrX2xwYV90ZWNofSB7IAotICAgICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycyhscGFfdGVjaF9maWxlKV19IHsKLSAgICAgICAgICAgIHNldCBlcnJvcnMoJGVycm9yX2NvdW50KSAiTFBBIHRlY2ggZmlsZSBub3QgZGVmaW5lZCAuLi4iCi0gICAgICAgICAgICBpbmNyIGVycm9yX2NvdW50Ci0gICAgICAgICB9Ci0gICAgICB9Ci0gICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMobHBhX2NvbmZfZmlsZSldfSB7Ci0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgICAgICAgICAgIExQQSBDb25mIEZpbGUgPSAkdmFycyhscGFfY29uZl9maWxlKVxuIgotICAgICAgfQotICAgICAgaWYgeyRjaGVja19scGFfY29uZn0geyAKLSAgICAgICAgIGlmIHshW2luZm8gZXhpc3RzIHZhcnMobHBhX2NvbmZfZmlsZSldfSB7Ci0gICAgICAgICAgICBzZXQgZXJyb3JzKCRlcnJvcl9jb3VudCkgIkxQQSBjb25mIGZpbGUgbm90IGRlZmluZWQgLi4uIgotICAgICAgICAgICAgaW5jciBlcnJvcl9jb3VudAotICAgICAgICAgfQotICAgICAgfQotICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICAgICAgICAgICAgICAgIFNpZ25hbCBJbnRlZ3JpdHkgT3B0aW9uc1xuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICAgICAgICAgICAgICAgICBQcm9jZXNzID0gJHZhcnMocHJvY2VzcylcbiIKLSAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhkZWx0YV9kZWxheV90aHJlc2hvbGQpXX0gewotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICAgRGVsdGEgRGVsYXkgVGhyZXNob2xkID0gJHZhcnMoZGVsdGFfZGVsYXlfdGhyZXNob2xkKVxuIgotICAgICAgfQotICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGNlbHRpY19zZXR0aW5ncyldfSB7Ci0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgICAgICAgICBDZWx0aWMgU2V0dGluZ3MgPSAkdmFycyhjZWx0aWNfc2V0dGluZ3MpXG4iCi0gICAgICB9Ci0gICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoc2lfYW5hbHlzaXNfdHlwZSldfSB7Ci0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgICAgICAgICAgIEFuYWx5c2lzIFR5cGUgPSAkdmFycyhzaV9hbmFseXNpc190eXBlKVxuIgotICAgICAgfQotICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGFjY2VwdGFibGVfd25zKV19IHsKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgICAgICAgICAgQW5hbHlzaXMgVHlwZSA9ICR2YXJzKGFjY2VwdGFibGVfd25zKVxuIgotICAgICAgfQotCi0gICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoZGlzdHJpYnV0ZSldfSB7Ci0gICAgICAgICBpZiB7W2luZm8gZXhpc3RzIGRpc3QoJHZhcnMoZGlzdHJpYnV0ZSkpXX0gewotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICAgICAgICAgICAgICAgICAgIE11bHRpcGxlIENQVXNcbiIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgICAgICAgICAgICAgICAgICAgTW9kZSA9ICR2YXJzKGRpc3RyaWJ1dGUpXG4iCi0gICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMobG9jYWxfY3B1cyldfSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgICAgICBDUFVzIE9uIExvY2FsIEhvc3QgPSAkdmFycyhsb2NhbF9jcHVzKVxuIgotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKHJlbW90ZV9ob3N0cyldfSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIE51bWJlciBvZiBSZW1vdGUgSG9zdHMgPSAkdmFycyhyZW1vdGVfaG9zdHMpXG4iCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoY3B1c19wZXJfcmVtb3RlX2hvc3QpXX0gewotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICAgIENQVXMgUGVyIFJlbW90ZSBIb3N0ID0gJHZhcnMoY3B1c19wZXJfcmVtb3RlX2hvc3QpXG4iCi0gICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0gICAgICB9IGVsc2UgewotICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGxvY2FsX2NwdXMpXX0gewotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICAgICAgICAgICAgICAgICAgIE11bHRpcGxlIENQVXNcbiIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgICAgIENQVXMgT24gTG9jYWwgSG9zdCA9ICR2YXJzKGxvY2FsX2NwdXMpXG4iCi0gICAgICAgICB9Ci0gICAgICB9Ci0gICAgICBpZiB7JHZhcnMoaGlnaF90aW1pbmdfZWZmb3J0KX0gewotICAgICAgICAgaWYge1tsaW5kZXggW3NwbGl0ICR2YXJzKHZlcnNpb24pICIuIl0gIDBdIDwgMTV9IHsKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgICAgICAgICA8PDwgSElHSCBFRkZPUlQgRkxPVyBFTkFCTEVEID4+PlxuIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIgotICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgV0FSTklORzogVmFyaWFibGUgdmFycyhoaWdoX3RpbWluZ19lZmZvcnQpIG5vdCBzdXBwb3J0ZWQgYW55bW9yZS4gUGxlYXNlIHVzZSB2YXJzKGZsb3dfZWZmb3J0KS5cbiIKLSAgICAgICAgICAgIHNldCB3YXJuaW5ncygkd2FybmluZ19jb3VudCkgIlZhcmlhYmxlIHZhcnMoaGlnaF90aW1pbmdfZWZmb3J0KSBub3Qgc3VwcG9ydGVkIGFueW1vcmUuIFBsZWFzZSB1c2UgdmFycyhmbG93X2VmZm9ydCkuIgotICAgICAgICAgICAgaW5jciB3YXJuaW5nX2NvdW50Ci0gICAgICAgICB9Ci0gICAgICB9Ci0KLSAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgICBBYm9ydCBvbiBTZXR1cCBFcnJvciA9ICR2YXJzKGFib3J0KVxuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuIgotCi0gICAgICBpZiB7W2xpbmRleCBbc3BsaXQgJHZhcnModmVyc2lvbikgIi4iXSAgMF0gPiAxMH0gewotICAgICAgICAgZm9yZWFjaCB2YXIgW2FycmF5IG5hbWVzIHNhdmVfdmFyc10gewotICAgICAgICAgICAgc2V0IHZhcnMoJHZhcikgJHNhdmVfdmFycygkdmFyKQotICAgICAgICAgfQotICAgICAgfQotCi0gICAgICBzZXQgY29tbWFuZCAiIgotICAgICAgc2V0IHZhcnMoaW5mb19jb3VudCkgJGluZm9fY291bnQKLSAgICAgIGlmIHskaW5mb19jb3VudCA+IDB9IHsKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kICIjICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiMgICAgICAgICAgICAgICAgICAgSW5mbyBTdW1tYXJ5XG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZCAiIyAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiIKLQotICAgICAgICAgZm9yIHtzZXQgaSAwfSB7JGk8JGluZm9fY291bnR9IHtpbmNyIGl9IHsKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICIjICAoW2V4cHIgJGkgKyAxXSkgJGluZm9zKCRpKVxuIgotICAgICAgICAgfQotICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiMgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4iCi0KLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAkY29tbWFuZAotICAgICAgfQotICAgICAgc2V0IHZhcnMod2FybmluZ19jb3VudCkgJHdhcm5pbmdfY291bnQKLSAgICAgIGlmIHskd2FybmluZ19jb3VudCA+IDB9IHsKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kICIjICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiMgICAgICAgICAgICAgICAgICAgV2FybmluZyBTdW1tYXJ5XG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZCAiIyAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiIKLQotICAgICAgICAgZm9yIHtzZXQgaSAwfSB7JGk8JHdhcm5pbmdfY291bnR9IHtpbmNyIGl9IHsKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICIjICAoW2V4cHIgJGkgKyAxXSkgJHdhcm5pbmdzKCRpKVxuIgotICAgICAgICAgfQotICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiMgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4iCi0KLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAkY29tbWFuZAotICAgICAgfQotICAgICAgc2V0IHZhcnMoZXJyb3JfY291bnQpICRlcnJvcl9jb3VudAotICAgICAgaWYgeyRlcnJvcl9jb3VudCA+IDB9IHsKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kICIjICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiMgICAgICAgICAgICAgICAgICAgIEVycm9yIFN1bW1hcnlcbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kICIjICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIgotCi0gICAgICAgICBmb3Ige3NldCBpIDB9IHskaTwkZXJyb3JfY291bnR9IHtpbmNyIGl9IHsKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICIjICAoW2V4cHIgJGkgKyAxXSkgJGVycm9ycygkaSlcbiIKLSAgICAgICAgIH0KLSAgICAgICAgIGFwcGVuZCBjb21tYW5kICIjICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIgotCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgJGNvbW1hbmQKLQotICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgICAgICAgICAgICAgICAgICBTRVRVUCBDSEVDSyBQQVNTRURcbiIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiIKLSAgICAgIH0KLQotICAgICAgZmlsZSBta2RpciAkdmFycyhzY3JpcHRfZGlyKQotICAgICAgc2V0IG9wIFtvcGVuICR2YXJzKHNjcmlwdF9kaXIpL2NoZWNrLnJwdCB3XQotCi0gICAgICBwdXRzICRvcCAkY29tbWFuZHMKLQotICAgICAgY2xvc2UgJG9wCi0KLSAgICAgIGlmIHskdmFycyhhYm9ydCkgJiYgKCRlcnJvcl9jb3VudCA+IDApfSB7Ci0gICAgICAgICBwdXRzICI8RkY+IEFib3J0aW5nIGR1ZSB0byBwcmV2aW91cyBlcnJvcnMgLi4uIgotICAgICAgICAgcHV0cyAiPEZGPiBTZWUgJHZhcnMoc2NyaXB0X2RpcikvY2hlY2sucnB0IGZvciBkZXRhaWxzIgotICAgICAgICAgcHV0cyAiIgotICAgICAgICAgcHV0cyAiICAgICAgICAgICAgICAgICAgRXJyb3IgU3VtbWFyeSIKLSAgICAgICAgIHB1dHMgIiAgICAgICAgICAgICAgICAgIC0tLS0tLS0tLS0tLS0iCi0KLSAgICAgICAgIGZvciB7c2V0IGkgMH0geyRpPCRlcnJvcl9jb3VudH0ge2luY3IgaX0gewotICAgICAgICAgICAgcHV0cyAiICAgKFtleHByICRpICsgMV0pICRlcnJvcnMoJGkpIgotICAgICAgICAgfQotICAgICAgICAgcHV0cyAiLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIKLSAgICAgICAgIGV4aXQgLTEKLSAgICAgIH0KLQotICAgICAgaWYgeyEkdmFycyhjb2RlZ2VuKX0gewotICAgICAgICAgaWYgeyFbRkY6OmlzX2xwX2Zsb3ddfSB7Ci0gICAgICAgICAgICByZXR1cm4KLSAgICAgICAgIH0KLSAgICAgICAgIHNldCB2YXJzKHJlcXVpcmVkX3Byb2NzKSAiZ2V0X2Nsb2NrX3BvcnRzIGdldF9wb3dlcl9kb21haW5zIG1vZGlmeV9wb3dlcl9kb21haW5zIGFkZF9wb3dlcl9zd2l0Y2hlcyBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvdXRlX3NlY29uZGFyeV9wZ19uZXRzIGJ1ZmZlcl9hbHdheXNfb25fbmV0cyBpbnNlcnRfd2VsbHRhcHNfZW5kY2FwcyIKLSAgICAgIH0KLQotICAgICAgc2V0IHZhcnMoY2hlY2tfc2V0dXApIDAKLQotICAgICAgIyBSZWNvcmQgZXJyb3JzIGZvciBsYXRlciBwcm9jZXNzaW5nCi0gICAgICBzZXQgdmFycyhjaGVja19zZXR1cF9lcnJvcnMpIHt9Ci0gICAgICBmb3Ige3NldCBpIDB9IHskaTwkZXJyb3JfY291bnR9IHtpbmNyIGl9IHsKLSAgICAgICAgIGxhcHBlbmQgdmFycyhjaGVja19zZXR1cF9lcnJvcnMpICRlcnJvcnMoJGkpCi0gICAgICB9Ci0gICB9Ci0KLSAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICMgUHJvY2VkdXJlIHRvIGRldGVybWluZSBmbG93IGZsYXZvciwgY2hlY2sgZm9yIGlsbXMsIGV0Yy4KLSAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLQotICAgcHJvYyBjaGVja19mbG93IHt9IHsKLSAgIAotICAgICAgZ2xvYmFsIHZhcnMKLSAgIAotICAgICAgc2V0IHZhcnMoaWxtKSAwCi0gICAgICBzZXQgdmFycyh0b3ApIDAKLSAgIAotICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycyhwYXJ0aXRpb25fbGlzdCldIHx8IChbaW5mbyBleGlzdHMgdmFycyhwYXJ0aXRpb25fbGlzdCldICYmIFwKLSAgICAgICAgICAgKFtmaWxlIHRhaWwgW2ZpbGUgZGlybmFtZSBbcHdkXV1dICE9ICIkdmFycyhwYXJ0aXRpb25fZGlyKSIpKX0gewotCi0gICAgICAgICBpZiB7IVtpbmZvIGV4aXN0cyB2YXJzKHBhcnRpdGlvbl9saXN0KV19IHsKLSAgICAgICAgICAgIHNldCB2YXJzKGZsYXZvcikgZmxhdAotICAgICAgICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycyhtb2RlKV19IHsKLSAgICAgICAgICAgICAgIHNldCB2YXJzKG1vZGUpICJmbGF0IgotICAgICAgICAgICAgfQotICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHNldCB2YXJzKGZsYXZvcikgaGllcgotICAgICAgICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycyhtb2RlKV19IHsKLSAgICAgICAgICAgICAgIHNldCB2YXJzKG1vZGUpICJ0b3BfZG93biIKLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0KLSAgICAgCi0gICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMocGFydGl0aW9uX2xpc3QpXSAmJiAoJHZhcnMobW9kZSkgPT0gImJvdHRvbV91cCIpfSB7Ci0gICAgICAgICAgICBzZXQgdmFycyhpbG0pIDEKLSAgICAgICAgIH0KLSAgIAotICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGlsbV9saXN0KV0gJiYgKCR2YXJzKGlsbV9saXN0KSAhPSAiIil9IHsKLSAgICAgICAgICAgIHNldCB2YXJzKGlsbSkgMQotICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHNldCB2YXJzKGlsbSkgMAotICAgICAgICAgfQotICAgCi0gICAgICB9IGVsc2UgewotICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKHBhcnRpdGlvbl9saXN0KV19IHsKLSAgICAgICAgICAgIHNldCBwdG4gW2ZpbGUgdGFpbCBbcHdkXV0KLSAgICAgICAgICAgIHNldCB2YXJzKHB0bikgJHB0bgotICAgICAgICAgICAgaWYgeyhbZmlsZSB0YWlsIFtmaWxlIGRpcm5hbWUgW3B3ZF1dXSA9PSAiJHZhcnMocGFydGl0aW9uX2RpcikiKSAmJgotICAgICAgICAgICAgICAgIChbbHNlYXJjaCAkdmFycyhwYXJ0aXRpb25fbGlzdCkgJHB0bl0gPT0gLTEpfSB7Ci0gICAgICAgICAgICAgICBzZXQgdmFycyhpbG0pIDEKLSAgICAgICAgICAgICAgIHNldCB2YXJzKHRvcCkgMQotIyAgICAgICAgICAgICAgIEZGX0VESTo6bm9ybWFsaXplX2NvbnN0cmFpbnRzCi0gICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0gICAgICB9Ci0gICAgICBpZiB7JHZhcnMoZGVidWcpfSB7Ci0gICAgICAgICBwdXRzICI8REVCVUc+IEZsb3cgLT4gJHZhcnMoZmxhdm9yKSA6IFN0ZXAgLT4gJHZhcnMoc3RlcCkgOiBJTE0gLT4gJHZhcnMoaWxtKSIKLSAgICAgIH0KLSAgIH0KLQotICAgcHJvYyBydW5fY29tcGlsZSB7fSB7Ci0KLSAgICAgIGdsb2JhbCB2YXJzCi0KLSAgICAgIGZpbGUgbWtkaXIgJHZhcnMoc2NyaXB0X2RpcikvSU5OT1ZVUwotICAgICAgc2V0IG9wIFtvcGVuICR2YXJzKHNjcmlwdF9kaXIpL0lOTk9WVVMvcnVuX2NvbXBpbGUudGNsIHddCi0KLSAgICAgIHNldCBjb21tYW5kcyAiIgotCi0gICAgICBpZiB7IVtpbmZvIGV4aXN0cyB2YXJzKGxkYl9kaXIpXX0gewotICAgICAgICAgc2V0IHZhcnMobGRiX2RpcikgTERCCi0gICAgICB9Ci0gICAgICBmaWxlIG1rZGlyICR2YXJzKGxkYl9kaXIpCi0gICAgICBzZXQgZG9uZV9saXN0IFtsaXN0XQotCi0gICAgICBmb3JlYWNoIHNldCAkdmFycyhsaWJyYXJ5X3NldHMpIHsKLSAgICAgICAgIHNldCBmaWxlX2xpc3QgW2xpc3RdCi0gICAgICAgICBmb3JlYWNoIGZpbGUgJHZhcnMoJHNldCx0aW1pbmcpIHsKLSAgICAgICAgICAgIGlmIHtbbHNlYXJjaCAkZG9uZV9saXN0ICRmaWxlXSA9PSAtMX0gewotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJ3cml0ZV9sZGIgLWxpYnJhcnkgJGZpbGUgLW91dGZpbGUgJHZhcnMobGRiX2RpcikvW2ZpbGUgdGFpbCAkZmlsZS5sZGJdXG4iCi0gICAgICAgICAgICAgICBsYXBwZW5kIGRvbmVfbGlzdCAkZmlsZQotICAgICAgICAgICAgfQotICAgICAgICAgICAgbGFwcGVuZCBmaWxlX2xpc3QgJHZhcnMobGRiX2RpcikvW2ZpbGUgdGFpbCAkZmlsZV0ubGRiCi0gICAgICAgICB9Ci0gICAgICAgICBzZXQgdmFycygkc2V0LHRpbWluZyxvcmlnKSAkdmFycygkc2V0LHRpbWluZykKLSAgICAgICAgIHNldCB2YXJzKCRzZXQsdGltaW5nKSAkZmlsZV9saXN0Ci0gICAgICB9Ci0KLSAgICAgIHB1dHMgJG9wICIkY29tbWFuZHNcbmV4aXRcbiIKLSAgICAgIGNsb3NlICRvcAotCi0gICAgICBzZXQgdmFycyhyYW5fY29tcGlsZSkgMQotICAgfQotCi0KLSAgICMgR2VuZXJhdGUgdGhlIGNvbW1hbmQgdG8gdmVyaWZ5IGdlb21ldHJ5LiBUaGlzIGlzIHZlcmlmeUdlb21ldHJ5Ci0gICAjIGZvciB0cmFkaXRpb25hbCBwcm9jZXNzZXMsIHZlcmlmeV9kcmMgZm9yIDIwbm0gYW5kIGJlbG93LgotICAgcHJvYyB2ZXJpZnlfZ2VvbWV0cnlfY29tbWFuZCB7fSB7Ci0gICAgIGdsb2JhbCB2YXJzCi0gICAgIHNldCBwcm9jZXNzIFtyZWdzdWIgIm5tIiAkdmFycyhwcm9jZXNzKSAiIl0KLSAgICAgaWYgeyhbbGluZGV4IFtzcGxpdCAkdmFycyh2ZXJzaW9uKSAiLiJdICAwXSA+IDE2KSB8fCAoKFtsaW5kZXggW3NwbGl0ICR2YXJzKHZlcnNpb24pICIuIl0gMF0gPT0gMTYpICYmIChbbGluZGV4IFtzcGxpdCAkdmFycyh2ZXJzaW9uKSAiLiJdICAxXSA+IDEpKX0gewotICAgICAgIHJldHVybiAidmVyaWZ5X2RyYyIKLSAgICAgfSBlbHNlIHsKLSAgICAgICBpZiB7JHByb2Nlc3MgPiAyOH0gewotICAgICAgICAgcmV0dXJuICJ2ZXJpZnlHZW9tZXRyeSIKLSAgICAgICB9IGVsc2UgewotICAgICAgICAgcmV0dXJuICJ2ZXJpZnlfZHJjIgotICAgICAgIH0KLSAgICAgfQotICAgfQotCi0gICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAjIFByb2NlZHVyZSB0byBpbml0aWFsaXplIHRoZSBmb3VuZGF0aW9uIGZsb3cgCi0gICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0KLSAgIHByb2MgaW5pdGlhbGl6ZV9mbG93IHt9IHsKLSAgICAgIGdsb2JhbCB2YXJzCi0gICAgICBnbG9iYWwgZW52Ci0KLSAgICAgIHNldCBjb21tYW5kcyAiIgotCi0gICAgICBGRl9FREk6OnNlZWRfdmFyaWFibGVzIDEKLSAgICAgIEZGX0VESTo6Y2hlY2tfc2V0dXAKLQotICAgICAgaWYge1tpbmZvIGV4aXN0IGVudihWUEFUSCldfSB7Ci0gICAgICAgICBmaWxlIG1rZGlyICRlbnYoVlBBVEgpCi0gICAgICB9Ci0KLSAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhjYXB0dXJlX21ldHJpY3MpXSAmJiAkdmFycyhjYXB0dXJlX21ldHJpY3MpfSB7IAotICAgICAgICAgaWYge1tsaW5kZXggW3NwbGl0ICR2YXJzKHZlcnNpb24pICIuIl0gIDBdIDwgMTR9IHsKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiXG4jLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjIExvYWRpbmcgYXBwbGV0cyBmb3IgbWV0cmljcyBjYXB0dXJlIC4uLlxuIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIgotICAgICAgICAgICAgaWYge1tmaWxlIHRhaWwgW2ZpbGUgZGlybmFtZSBbZXhlYyBwd2RdXV0gPT0gJHZhcnMocGFydGl0aW9uX2Rpcil9IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAic291cmNlICR2YXJzKG5vcm1fc2NyaXB0X3BhdGgpL0VUQy9hcHBsZXQudGNsXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgInNvdXJjZSAkdmFycyhub3JtX3NjcmlwdF9wYXRoKS9FVEMvY29tcGF0aWJpbGl0eS50Y2xcbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAic2V0X2F0dHJpYnV0ZSBhcHBsZXRfc2VhcmNoX3BhdGggJHZhcnMobm9ybV9zY3JpcHRfcGF0aCkvRVRDL2FwcGxldHMgL1xuIgotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAic291cmNlIFwkdmFycyhzY3JpcHRfcGF0aCkvRVRDL2FwcGxldC50Y2xcbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAic291cmNlIFwkdmFycyhzY3JpcHRfcGF0aCkvRVRDL2NvbXBhdGliaWxpdHkudGNsXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgInNldF9hdHRyaWJ1dGUgYXBwbGV0X3NlYXJjaF9wYXRoIFwkdmFycyhzY3JpcHRfcGF0aCkvRVRDL2FwcGxldHMgL1xuIgotICAgICAgICAgICAgfQotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJhcHBsZXQgbG9hZCBtZWFzdXJlXG4iCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgImFwcGxldCBsb2FkIHRpbWVfaW5mb1xuIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4iCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgImlmIHtcW2ZpbGUgZXhpc3RzICR2YXJzKHRpbWVfaW5mb19kYilcXX0ge1xuIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIgICB0aW1lX2luZm8gLXF1aWV0IC10YWJsZSBmZl9leHQgLWxvYWQgJHZhcnModGltZV9pbmZvX2RiKVxuIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJ9XG4iCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiIKLSAgICAgICAgIH0KLSAgICAgIH0KLQotCi0jICAgICAgYXBwZW5kIGNvbW1hbmRzICIjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4iCi0jICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICAgICAgICAgICAgICAgICBSVU4gU0NSSVBUIEZPUiBTVEVQICdbc3RyaW5nIHRvdXBwZXIgJHZhcnMoc3RlcCldJ1xuIgotIyAgICAgIGFwcGVuZCBjb21tYW5kcyAiIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIgotICAgICAgaWYgeyR2YXJzKHJlcG9ydF9zeXN0ZW1faW5mbyl9IHsKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiZmZfcHJvY3M6OnN5c3RlbV9pbmZvXG4iCi0gICAgICB9Ci0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGX0VESTo6aW5pdGlhbGl6ZV9tdWx0aWNwdV0KLQotICAgICAgaWYgeyR2YXJzKGNvZGVnZW4pfSB7Ci0gICAgICAgICByZXR1cm4gJGNvbW1hbmRzCi0gICAgICB9IGVsc2UgewotICAgICAgICAgIHVwbGV2ZWwgIzAgZXZhbCAkY29tbWFuZHMKLSAgICAgIH0KLSAgIH0KLQotICAgcHJvYyBsb2FkX2Rlc2lnbiB7c3RlcCB7Y3VycmVudF9zdGVwICIifSB7Zm9ybWF0IDF9fSB7Ci0KLSAgICAgIGdsb2JhbCBlbnYKLSAgICAgIGdsb2JhbCB2YXJzCi0gICAgICBnbG9iYWwgZXJyb3JzCi0KLSAgICAgIGdsb2JhbCB3YXJuaW5ncwotCi0gICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoaGllcildfSB7Ci0gICAgICAgICBzZXQgaGllciB0cnVlCi0gICAgICB9IGVsc2UgewotICAgICAgICAgc2V0IGhpZXIgZmFsc2UKLSAgICAgIH0KLQotICAgICAgaWYgeyRjdXJyZW50X3N0ZXAgPT0gIiJ9IHsKLSAgICAgICAgIHNldCBjdXJyZW50X3N0ZXAgJHN0ZXAKLSAgICAgIH0KLQotIyAgICAgIGlmIHskc3RlcCA9PSIifSB7Ci0jICAgICAgICAgc2V0IHN0ZXAgJHZhcnMoc3RlcCkKLSMgICAgICB9Ci0jICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycyhzdGVwKV19IHsKLSMgICAgICAgICBzZXQgdmFycyhzdGVwKSAkc3RlcAotIyAgICAgIH0KLSAgICAgIGlmIHshJHZhcnMoY29kZWdlbil9IHsKLSAgICAgICAgIHNldCByZXN0b3JlX2Rlc2lnbiB0cnVlCi0gICAgICB9Ci0gICAgICBzZXQgZGVzaWduICR2YXJzKGRlc2lnbikKLQotICAgICAgaWYge1tyZWdleHAgIl5zeW4iICRjdXJyZW50X3N0ZXBdfSB7Ci0gICAgICAgICAgcmV0dXJuICJcbnJlYWRfZGIgJHZhcnMoZGJzX2RpcikvJHN0ZXAuZGJcbiIgCi0gICAgICB9Ci0KLSAgICAgICMgQnVpbGQgcmVzdG9yZV9kZXNpZ24gY29tbWFuZCBzdHJpbmcKLSAgICAgICMgLi4uIGNoZWNrIGZpcnN0IGZvciBzdGFydGluZ19kYnMKLSAgICAgICMgLi4uIGlmIG5vdCB3ZSBuZWVkIHRvIGtub3cgdGhlIGRlc2lnbiBuYW1lIGFzIHRoaXMgbWF5IGJlIGEgCi0gICAgICAjICAgICByZWN1cnNpdmUgY2FsbCBpbiBhIGhpZXJhcmhpY2FsIGZsb3cKLSAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkY3VycmVudF9zdGVwLHN0YXJ0aW5nX2RicyldfSB7Ci0gICAgICAgICBpZiB7W3N0cmluZyBjb21wYXJlIC1ub2Nhc2UgJHZhcnMoZGJzX2Zvcm1hdCkgIm9hIl09PTB9IHsKLSAgICAgICAgICAgICMgSW50ZXJwcmV0IHRoZSBzdGFydGluZyBEQlMgYXMgYW4gT0EgdHJpcGxlCi0gICAgICAgICAgICBzZXQgcmVzdG9yZV9jb21tYW5kICJbbGlzdCByZXN0b3JlRGVzaWduIC1jZWxsdmlldyAkdmFycygkY3VycmVudF9zdGVwLHN0YXJ0aW5nX2RicyldXG4iCi0gICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgaWYge1tmaWxlIGlzZGlyZWN0b3J5ICR2YXJzKCRjdXJyZW50X3N0ZXAsc3RhcnRpbmdfZGJzKV19IHsKLSAgICAgICAgICAgICAgIHNldCByZXN0b3JlX2NvbW1hbmQgInJlc3RvcmVEZXNpZ24gJHZhcnMoJGN1cnJlbnRfc3RlcCxzdGFydGluZ19kYnMpICRkZXNpZ25cbiIKLSAgICAgICAgICAgIH0gZWxzZWlmIHtbZmlsZSBleGlzdHMgJHZhcnMoJGN1cnJlbnRfc3RlcCxzdGFydGluZ19kYnMpXX0gewotICAgICAgICAgICAgICAgc2V0IHJlc3RvcmVfY29tbWFuZCAicmVzdG9yZURlc2lnbiAkdmFycygkY3VycmVudF9zdGVwLHN0YXJ0aW5nX2RicykuZGF0ICRkZXNpZ25cbiIKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBwdXRzICI8RkY+IFN0YXJ0aW5nIERCUyAoJHZhcnMoJGN1cnJlbnRfc3RlcCxzdGFydGluZ19kYnMpKSBkZWZpbmVkIGJ1dCBkb2VzIG5vdCBleGlzdCIKLSAgICAgICAgICAgICAgIHNldCByZXN0b3JlX2NvbW1hbmQgInJlc3RvcmVEZXNpZ24gJHZhcnMoJGN1cnJlbnRfc3RlcCxzdGFydGluZ19kYnMpLmRhdCAkZGVzaWduXG4iCi0gICAgICAgICAgICAgICBzZXQgd2FybmluZ3MoJHZhcnMod2FybmluZ19jb3VudCkpICJTdGFydGluZyBEQlMgKCR2YXJzKCRjdXJyZW50X3N0ZXAsc3RhcnRpbmdfZGJzKSkgZGVmaW5lZCBidXQgZG9lcyBub3QgZXhpc3QiCi0gICAgICAgICAgICAgICBpbmNyIHZhcnMod2FybmluZ19jb3VudCkKLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0KLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAjIEJDTDogQWRkZWQgc3Vic3QgYXJvdW5kIHZhcnMoZGJzX2RpcikgdG8gcmVzb2x2ZSB2YXJzKHJ1bmRpcikKLSAgICAgICAgIHNldCBkaXIgW3N1YnN0ICR2YXJzKGRic19kaXIpXQotICAgICAgICAgIyBBZGRpbmcgdGhpcyBmb3IgUFYgLi4uCi0gICAgICAgICBpZiB7ISR2YXJzKGNvZGVnZW4pfSB7Ci0gICAgICAgICAgICBpZiB7W2ZpbGUgZXhpc3RzICRkaXIvJHN0ZXAuZW5jXX0gewotICAgICAgICAgICAgICAgIyBCQ0w6IENoYW5nZWQgIkRCUyIgdG8gJGRpcgotICAgICAgICAgICAgICAgaWYgeyFbY2F0Y2gge3NldCBmb28gW2dsb2IgJGRpci8kc3RlcC5lbmMuZGF0LyouY29uZl19XX0gewotICAgICAgICAgICAgICAgICAgIyBCQ0w6IENoYW5nZWQgIkRCUyIgdG8gJGRpcgotICAgICAgICAgICAgICAgICAgcmVnc3ViICJcXFwuY29uZiIgW2dsb2IgJGRpci8kc3RlcC5lbmMuZGF0LyouY29uZl0gIiIgdGVtcAotICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICMgQkNMOiBDaGFuZ2VkICJEQlMiIHRvICRkaXIKLSAgICAgICAgICAgICAgICAgIGlmIHshW2NhdGNoIHtzZXQgZm9vIFtnbG9iICRkaXIvJHN0ZXAuZW5jLmRhdC8qLmdsb2JhbHNdfV19IHsKLSAgICAgICAgICAgICAgICAgICAgICMgQkNMOiBDaGFuZ2VkICJEQlMiIHRvICRkaXIKLSAgICAgICAgICAgICAgICAgICAgIHJlZ3N1YiAiXFxcLmdsb2JhbHMiIFtnbG9iICRkaXIvJHN0ZXAuZW5jLmRhdC8qLmdsb2JhbHNdICIiIHRlbXAKLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIGlmIHskZGVzaWduICE9IFtmaWxlIHRhaWwgJHRlbXBdfSB7Ci0gICAgICAgICAgICAgICAgICBzZXQgdmFycyhkZXNpZ24pIFtmaWxlIHRhaWwgJHRlbXBdCi0gICAgICAgICAgICAgICAgICBQdXRzICI8RkY+IFVwZGF0aW5nIGRlc2lnbiBuYW1lIHRvICRkZXNpZ24iCi0gICAgICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMocGFydGl0aW9uX2xpc3QpXX0gewotICAgICAgICAgICAgICAgICAgICAgaWYge1tsc2VhcmNoICR2YXJzKHBhcnRpdGlvbl9saXN0KSBbZmlsZSB0YWlsIFtwd2RdXV0gIT0gLTF9IHsKLSAgICAgICAgICAgICAgICAgICAgIHNldCBkZXNpZ24gW2ZpbGUgdGFpbCBbcHdkXV0KLSAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBQdXRzICI8RkY+IFN0YXJ0aW5nIERCUyAkZGlyLyRzdGVwLmVuYyBkZWZpbmVkIGJ1dCBkb2VzIG5vdCBleGlzdCIKLSAgICAgICAgICAgICAgIGV4aXQgLTEKLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0KLQotICAgICAgICAgIyBPZiBjb3Vyc2UsIHRoZSBjb21tYW5kIHdpbGwgZGVwZW5kIG9uIHRoZSBkYXRhYmFzZSBmb3JtYXQgLi4uIGFuZCB0aGUgdmVyc2lvbgotICAgICAgICAgaWYge1tzdHJpbmcgY29tcGFyZSAtbm9jYXNlICR2YXJzKGRic19mb3JtYXQpICJvYSJdPT0wfSB7Ci0gICAgICAgICAgICBpZiB7W2xpbmRleCBbc3BsaXQgJHZhcnModmVyc2lvbikgIi4iXSAgMF0gPiAxMH0gewotICAgICAgICAgICAgICAgaWYgeyRoaWVyfSB7Ci0gICAgICAgICAgICAgICAgIHNldCByZXN0b3JlX2NvbW1hbmQgInJlc3RvcmVEZXNpZ24gLWNlbGx2aWV3IFxbbGlzdCAkdmFycyhvYV9wYXJ0aXRpb25fbGliKSAkZGVzaWduICRzdGVwXF1cbiIKLSAgICAgICAgICAgICAgIH0gZWxzZSB7IAotICAgICAgICAgICAgICAgICBzZXQgcmVzdG9yZV9jb21tYW5kICJyZXN0b3JlRGVzaWduIC1jZWxsdmlldyBcW2xpc3QgJHZhcnMob2FfZGVzaWduX2xpYikgJGRlc2lnbiAkc3RlcFxdXG4iCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgc2V0IHJlc3RvcmVfY29tbWFuZCAicmVzdG9yZU9hRGVzaWduICR2YXJzKG9hX2Rlc2lnbl9saWIpICRkZXNpZ24gJHN0ZXBcbiIKLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBpZiB7JHZhcnModXNlcl9tb2RlKSA9PSAiaGllciIgJiYgKCR2YXJzKGhpZXJfZmxvd190eXBlKSA9PSAiMnBhc3MiKX0gewotICAgICAgICAgICAgICAgaWYgeyR2YXJzKHN0ZXApID09ICJjdHMiICYmICR2YXJzKGVuYWJsZV9mbGV4aWxtKX0gewotICAgICAgICAgICAgICAgICAgaWYgeyhbbHNlYXJjaCAkdmFycyhwYXJ0aXRpb25fbGlzdCkgJHZhcnMoZGVzaWduKV0gIT0gLTEpfSAgewotICAgICAgICAgICAgICAgICAgICAgc2V0IHJlc3RvcmVfY29tbWFuZCAicmVzdG9yZURlc2lnbiAke2Rlc2lnbn1fcG9zdEVDTy5lbmMuZGF0ICRkZXNpZ25cbiIKLSAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICBzZXQgcmVzdG9yZV9jb21tYW5kICJyZXN0b3JlRGVzaWduIC4gJGRlc2lnblxuIgotICAgICAgICAgICAgICAgICAgfSAgCi0gICAgICAgICAgICAgICB9IGVsc2VpZiB7KFtsc2VhcmNoIFtGRjo6YWRqdXN0X3N0ZXBzXSAkdmFycyhzdGVwKV0gPT0gW2V4cHIgW2xzZWFyY2ggW0ZGOjphZGp1c3Rfc3RlcHNdIGN0c10rMV0pICYmICEkdmFycyhlbmFibGVfZmxleGlsbSl9IHsKLSAgICAgICAgICAgICAgICAgIHNldCByZXN0b3JlX2NvbW1hbmQgInJlc3RvcmVEZXNpZ24gLiAkZGVzaWduXG4iCi0gICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgc2V0IHJlc3RvcmVfY29tbWFuZCAicmVzdG9yZURlc2lnbiAkZGlyLyRzdGVwLmVuYy5kYXQgJGRlc2lnblxuIgotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIGlmIHskdmFycyhzdGVwKSAhPSAicGFydGl0aW9uX3BsYWNlIn0gewotICAgICAgICAgICAgICAgICAgc2V0IHJlc3RvcmVfY29tbWFuZCAicmVzdG9yZURlc2lnbiAkZGlyLyRzdGVwLmVuYy5kYXQgJGRlc2lnblxuIgotICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgIGlmIHskdmFycyh1c2VfZmxleG1vZGVscyl9IHsKLSAgICAgICAgICAgICAgICAgICAgc2V0IHJlc3RvcmVfY29tbWFuZCAicmVzdG9yZURlc2lnbiAkZGlyLyRzdGVwLmVuYy5kYXQgJGRlc2lnblxuIgotICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuICIiCi0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0gICAgICB9Ci0gICAgICAjIFBhc3MgdGhlIGNvbW1hbmQgdGhyb3VnaCB0aGUgd3JhcHBlciBhbmQgdGhlbiBtYWtlIGl0IGNvbmRpdGlvbmFsIHNvIGl0IGNhbiAKLSAgICAgICMgYmUgZGlzYWJsZWQgaW4gYSBzaW5nbGUgcHJvY2VzcyBmbG93Ci0gICAgICBzZXQgcmVzdG9yZV9jb21tYW5kIFtGRjo6d3JhcF9jb21tYW5kICRjdXJyZW50X3N0ZXAscmVzdG9yZV9kZXNpZ24gJHJlc3RvcmVfY29tbWFuZF0KLSAgICAgIHNldCBjb25kX3Jlc3RvcmVfY29tbWFuZCAiaWYge1wkdmFycyhyZXN0b3JlX2Rlc2lnbil9IHsgJHJlc3RvcmVfY29tbWFuZCB9IgotCi0gICAgICBpZiB7ISRmb3JtYXR9IHsKLSAgICAgICAgIGlmIHskdmFycyhjb2RlZ2VuKX0gewotICAgICAgICAgICAgcmV0dXJuICRjb25kX3Jlc3RvcmVfY29tbWFuZAotICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICBldmFsICRjb25kX3Jlc3RvcmVfY29tbWFuZAotICAgICAgICAgfQotICAgICAgfSBlbHNlIHsKLSAgICAgICAgIGlmIHskdmFycyhjYXRjaF9lcnJvcnMpfSB7Ci0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIlxuaWYge1wkdmFycyhyZXN0b3JlX2Rlc2lnbil9IHtcbiIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiICAgaWYge1xbY2F0Y2gge1xuJHJlc3RvcmVfY29tbWFuZH1cXX0ge1xuIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIgICAgICBQdXRzIFwiPEZGPiBFUlJPUiBMT0FESU5HIERBVEFCQVNFIEZST00gU1RFUCAkc3RlcCAuLi4gRVhJVElOR1wiXG4iCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiAgICAgIGV4aXQgLTFcbiIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiICAgfVxuIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJ9XG4iCi0gICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJcbmlmIHtcJHZhcnMocmVzdG9yZV9kZXNpZ24pfSB7IFtzdHJpbmcgdHJpbSAkcmVzdG9yZV9jb21tYW5kXSB9XG4iCi0gICAgICAgICB9Ci0KLSAgICAgICAgIGlmIHskdmFycyhjYXB0dXJlX21ldHJpY3MpfSB7Ci0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIlxudW06OmVuYWJsZV9tZXRyaWNzIC1vblxuIgotIyAgICAgICAgICAgIGlmIHshW2luZm8gZXhpc3RzIHZhcnMocHVzaGVkKV0gfHwgKFtpbmZvIGV4aXN0cyB2YXJzKHB1c2hlZCldICYmICEkdmFycyhwdXNoZWQpKSB9IHsKLSMgICAgICAgICAgICAgICAjIEdHMSAKLSMgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgInVtOjpwdXNoX3NuYXBzaG90X3N0YWNrXG4iCi0jICAgICAgICAgICAgICAgc2V0IHZhcnMocHVzaGVkKSB0cnVlCi0jICAgICAgICAgICAgfQotICAgICAgICAgfQotCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjpzb3VyY2VfcGx1ZyBhbHdheXNfc291cmNlX3RjbF0KLQotICAgICAgICAgaWYgeyR2YXJzKGNvZGVnZW4pfSB7Ci0gICAgICAgICAgICByZXR1cm4gJGNvbW1hbmRzCi0gICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgIHVwbGV2ZWwgIzAgZXZhbCAkY29tbWFuZHMKLSAgICAgICAgIH0KLSAgICAgIH0KLSAgIH0KLQotICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgIyBTZXR1cCBwcm9jZWR1cmUgZm9yIHJ1biogc3RlcHMKLSAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLQotICAgcHJvYyBpbml0aWFsaXplX3N0ZXAge3N0ZXB9IHsKLQotICAgICAgZ2xvYmFsIHZhcnMKLSAgICAgIGdsb2JhbCBlbnYKLSAgICAgIGdsb2JhbCBlcnJvcnMKLSAgICAgIGdsb2JhbCB3YXJuaW5ncwotCi0gICAgICBpZiB7IVtpbmZvIGV4aXN0cyBzdGVwXX0gewotICAgICAgICAgc2V0IHN0ZXAgJHZhcnMoc3RlcCkKLSAgICAgIH0KLQotICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCRzdGVwLHJwdF9kaXIpXX0gewotICAgICAgICAgc2V0IHZhcnMocnB0X2RpcikgJHZhcnMoJHN0ZXAscnB0X2RpcikKLSAgICAgICAgIGZpbGUgbWtkaXIgJHZhcnMoJHN0ZXAscnB0X2RpcikKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgICBzZXQgdmFycyhycHRfZGlyKSAkdmFycyhvcmlnX3JwdF9kaXIpCi0gICAgICB9Ci0KLSAgICAgIHNldCB2YXJzKCRzdGVwLGNvbW1hbmRzKSAiIgotCi0gICAgICBpZiB7IVtpbmZvIGV4aXN0cyB2YXJzKHdhcm5pbmdfY291bnQpXX0gewotICAgICAgICAgc2V0IHZhcnMod2FybmluZ19jb3VudCkgMAotICAgICAgfQotICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycyhlcnJvcl9jb3VudCldfSB7Ci0gICAgICAgICBzZXQgdmFycyhlcnJvcl9jb3VudCkgMAotICAgICAgfQotCi0gICAgICBzZXQgY29tbWFuZHMgIiIKLSAgICAgIGlmIHskdmFycyh2ZXJib3NlKX0gewotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgU1RFUCAkc3RlcFxuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjXG4iCi0gICAgICB9Ci0KLSMgICAgICBpZiB7JHZhcnMoZW5hYmxlX3Fvcl9jaGVjayl9IHsKLSMgICAgICAgICBzZXQgcW9yIFtjYXRjaCB7ZXhlYyAkY2hlY2tfcW9yICRlbnYoVlBBVEgpLyRsYXN0X3N0ZXB9IG1zZ10KLSMgICAgICAgICBpZiB7JHFvcn0gewotIyAgICAgICAgICAgIHB1dHMgIjxGRj4gRVJST1I6IFFPUiBSRVNVTFQgQ0hFQ0sgSU5ESUNBVEVTIEEgUFJPQkxFTSBJTiBTVEVQICRsYXN0X3N0ZXAiCi0jICAgICAgICAgICAgZXhpdCAtMTExCi0jICAgICAgICAgfQotIyAgICAgIH0KLSAgICAgIHNldCB1cGRhdGVfc2V0dXAgMAotICAgICAgc2V0IHVwZGF0ZV9ob2xkIDAKLQotICAgICAgc2V0IGNvbW1hbmQgIiIKLSAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkc3RlcCxhY3RpdmVfc2V0dXBfdmlld3MpXSAmJiAoW2xsZW5ndGggJHZhcnMoJHN0ZXAsYWN0aXZlX3NldHVwX3ZpZXdzKV0+MCl9IHsKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kICJzZXQgc2V0dXBfYW5hbHlzaXNfdmlld3MgXCIkdmFycygkc3RlcCxhY3RpdmVfc2V0dXBfdmlld3MpXCJcbiIKLSAgICAgICAgIHNldCB1cGRhdGVfc2V0dXAgMQotICAgICAgfQotICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCRzdGVwLGFjdGl2ZV9ob2xkX3ZpZXdzKV0gJiYgKFtsbGVuZ3RoICR2YXJzKCRzdGVwLGFjdGl2ZV9ob2xkX3ZpZXdzKV0+MCl9IHsKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kICJzZXQgaG9sZF9hbmFseXNpc192aWV3cyBcIiR2YXJzKCRzdGVwLGFjdGl2ZV9ob2xkX3ZpZXdzKVwiXG4iCi0gICAgICAgICBzZXQgdXBkYXRlX2hvbGQgMQotICAgICAgfQotCi0gICAgICBzZXQgY29tbWVudHMgIiIKLSAgICAgIGFwcGVuZCBjb21tZW50cyAiIyBUaGUgYWN0aXZlIGFuYWx5c2lzIHZpZXdzIGFyZSBjb250cm9sbGVkIGJ5IHRoZSBmb2xsb3dpbmcgdmFyaWFibGVzOlxuIiAgCi0gICAgICBhcHBlbmQgY29tbWVudHMgIiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiIKLSAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMoJHN0ZXAsYWN0aXZlX3NldHVwX3ZpZXdzKVxuIgotICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycygkc3RlcCxhY3RpdmVfaG9sZF92aWV3cylcbiIKLSAgICAgIGFwcGVuZCBjb21tZW50cyAiI1xuIgotICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjXG4iCi0gICAgICBpZiB7JHVwZGF0ZV9zZXR1cCB8fCAkdXBkYXRlX2hvbGR9IHsKLSAgICAgICAgIGlmIHskdmFycyh2ZXJib3NlKX0gewotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjXG4iCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgPEZGPiBVUERBVElORyBBTkFMWVNJUyBWSUVXUyAuLi5cbiIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiI1xuIgotICAgICAgICAgfQotICAgICAgICAgaWYgeyEkdXBkYXRlX3NldHVwICYmICR1cGRhdGVfaG9sZH0gewotIyAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJzZXRfYW5hbHlzaXNfdmlldyAtc2V0dXAgXFthbGxfc2V0dXBfYW5hbHlzaXNfdmlld3NcXSAtaG9sZCBcW2xpc3QgXCRob2xkX2FuYWx5c2lzX3ZpZXdzXF1cbiIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJzZXRfYW5hbHlzaXNfdmlldyAtc2V0dXAgXFthbGxfc2V0dXBfYW5hbHlzaXNfdmlld3NcXSAtaG9sZCBcJGhvbGRfYW5hbHlzaXNfdmlld3NcbiIKLSAgICAgICAgIH0KLSAgICAgICAgIGlmIHskdXBkYXRlX3NldHVwICYmICEkdXBkYXRlX2hvbGR9IHsKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJzZXRfYW5hbHlzaXNfdmlldyAtc2V0dXAgXCRzZXR1cF9hbmFseXNpc192aWV3cyAtaG9sZCBcW2FsbF9ob2xkX2FuYWx5c2lzX3ZpZXdzXF1cbiIKLSAgICAgICAgIH0KLSAgICAgICAgIGlmIHskdXBkYXRlX3NldHVwICYmICR1cGRhdGVfaG9sZH0gewotIyAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJzZXRfYW5hbHlzaXNfdmlldyAtc2V0dXAgXFtsaXN0IFwkc2V0dXBfYW5hbHlzaXNfdmlld3NcXSAtaG9sZCBcW2xpc3QgXCRob2xkX2FuYWx5c2lzX3ZpZXdzXF1cbiIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJzZXRfYW5hbHlzaXNfdmlldyAtc2V0dXAgXCRzZXR1cF9hbmFseXNpc192aWV3cyAtaG9sZCBcJGhvbGRfYW5hbHlzaXNfdmlld3NcbiIKLSAgICAgICAgIH0KLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAkY29tbWVudHMKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiJGNvbW1hbmRcbiIKLSAgICAgfSBlbHNlIHsKLSAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyBzZXRfYW5hbHlzaXNfdmlldyAtc2V0dXAgXCR2YXJzKCRzdGVwLGFjdGl2ZV9zZXR1cF92aWV3cykgLWhvbGQgXCR2YXJzKCRzdGVwLGFjdGl2ZV9ob2xkX3ZpZXdzKVxuIgotICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgJGNvbW1lbnRzCi0gICAgIH0KLQotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgIyBDaGVjayBpZiBpbiB0b3AgbGV2ZWwgcGFydGl0aW9uIChpbG0pIGZsb3cKLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLQotICAgICAgRkZfRURJOjpjaGVja19mbG93Ci0KLSMgICAgICBpZiB7JHZhcnMocmVwb3J0X3J1bl90aW1lKX0gewotIyAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAic2V0IHZhcnMoJHN0ZXAsc3RhcnRfdGltZSkgXFtjbG9jayBzZWNvbmRzXF1cbiIKLSMgICAgICB9Ci0KLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICMgTG9hZCB0aGUgcmVjb21tZW5kZWQgY29tbWFuZCBtb2RlIHNldHRpbmdzIGZvciBzdGVwCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0KLSMgICAgICBhcHBlbmQgY29tbWFuZHMgIiNcbiIKLSMgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgREVGSU5JTkcgTU9ERSBTRVRUSU5HU1xuIgotIyAgICAgIGFwcGVuZCBjb21tYW5kcyAiI1xuIgotCi0gICAgICBzZXQgY29tbWVudHMgIiIKLSAgICAgIHNldCB1Y29tbWVudHMgIiIKLQotICAgICAgc3dpdGNoICRzdGVwIHsKLQotICAgICAgICAgInBsYWNlIiB7Ci0gICAgICAgICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAgICAgICAjIFNldCBwbGFjZW1lbnQgb3B0aW9ucyAuLi4KLSAgICAgICAgICAgICMgLSBTZXQgb3B0aW1pemF0aW9uIG9wdGlvbnMgaWYgaW5QbGFjZU9wdCBpcyBlbmFibGVkCi0gICAgICAgICAgICAjIC0gTG9hZCB0aGUgQ1RTIHNwZWMgZm9yIGNsb2NrIGdhdGUgYXdhcmUgcGxhY2VtZW50Ci0gICAgICAgICAgICAjIC0gUGxhY2UgSlRBRyBjZWxscyBpZiByZXF1ZXN0ZWQKLSAgICAgICAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLQotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtsaW5kZXggW0ZGX0VESTo6c2V0X2Rlc2lnbl9tb2RlXSAwXQotICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzIFtsaW5kZXggW0ZGX0VESTo6c2V0X2Rlc2lnbl9tb2RlXSAxXQotICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyBbbGluZGV4IFtGRl9FREk6OnNldF9kZXNpZ25fbW9kZV0gMl0KLQotICAgICAgICAgICAgc2V0IGFyZ3MgIiIKLSAgICAgICAgICAgIGlmIHskdmFycyhmbG93KSA9PSAibW1tYyJ9IHsKLSAgICAgICAgICAgICAgIGlmIHsoJHZhcnMoZW5hYmxlX29jdikgPT0gInByZV9wbGFjZSIpIHx8ICgoJHZhcnMoZW5hYmxlX29jdikgPT0gInByZV9wcmVjdHMiKSAmJiAoJHZhcnMocGxhY2Vfb3B0X2Rlc2lnbikgfHwgJHZhcnMocHJlcm91dGVfb3B0X2Rlc2lnbikpKX0gewotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhlbmFibGVfb2N2KVxuIgotICAgICAgICAgICAgICAgICAgYXBwZW5kIGFyZ3MgIi1hbmFseXNpc1R5cGUgb25DaGlwVmFyaWF0aW9uICIKLSAgICAgICAgICAgICAgICAgIGlmIHskdmFycyhlbmFibGVfYW9jdil9IHsKLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMoZW5hYmxlX2FvY3YpXG4iCi0gICAgICAgICAgICAgICAgICAgICBhcHBlbmQgYXJncyAiLWFvY3YgdHJ1ZSAiCi0gICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMoZW5hYmxlX2FvY3YpXG4iCi0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICBpZiB7JHZhcnMoZW5hYmxlX3NvY3YpfSB7Ci0gICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKGVuYWJsZV9zb2N2KVxuIgotICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGFyZ3MgIi1zb2N2IHRydWUgIgotICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKGVuYWJsZV9zb2N2KVxuIgotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKGVuYWJsZV9vY3YpIFwiJHZhcnMoZW5hYmxlX29jdilcIlxuIgotICAgICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMoZW5hYmxlX2FvY3YpIFwidHJ1ZVwiXG4iCi0gICAgICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhlbmFibGVfc29jdikgXCJ0cnVlXCJcbiIKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIHskYXJncyAhPSAiIn0gewotICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgInNldEFuYWx5c2lzTW9kZSAkYXJnc1xuIgotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kIHByZWN0cyxzZXRfYW5hbHlzaXNfbW9kZSAkY29tbWFuZF0KLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIHskdmFycyhlbmFibGVfc3MpID09ICJwcmVfcGxhY2UifSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKGVuYWJsZV9zcylcbiIKLSAgICAgICAgICAgICAgIHNldCBjb21tYW5kICJzZXREZWxheUNhbE1vZGUgLWVuZ2luZSBzaWduYWxTdG9ybVxuIgotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kIHBsYWNlLHNldF9kZWxheV9jYWxfbW9kZSAkY29tbWFuZF0KLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhlbmFibGVfc3MpIFwicHJlX3BsYWNlXCJcbiIKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgc2V0IGFyZ3MgIiIKLSAgICAgICAgICAgIGlmIHshW2NhdGNoIHtzZXQgYXJnICR2YXJzKGNvbmdlc3Rpb25fZWZmb3J0KX1dfSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgYXJncyAiIC1wbGFjZV9nbG9iYWxfY29uZ19lZmZvcnQgJGFyZyIKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMoY29uZ2VzdGlvbl9lZmZvcnQpXG4iCi0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMoY29uZ2VzdGlvbl9lZmZvcnQpIFwiYXV0byBsb3cgbWVkaXVtIGhpZ2hcIlxuIgotICAgICAgICAgICAgfQotIyAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhjbG9ja19nYXRlX2F3YXJlKV0gJiYgICR2YXJzKGNsb2NrX2dhdGVfYXdhcmUpfSB7Ci0jICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhjbG9ja19nYXRlX2F3YXJlKVxuIgotIyAgICAgICAgICAgICAgIGFwcGVuZCBhcmdzICIgLXBsYWNlX2dsb2JhbF9jbG9ja19nYXRlX2F3YXJlIHRydWUiCi0jICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgeyFbY2F0Y2gge3NldCBhcmcgJHZhcnMoY2xvY2tfZ2F0ZV9hd2FyZSl9XX0gewotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhjbG9ja19nYXRlX2F3YXJlKVxuIgotICAgICAgICAgICAgICAgYXBwZW5kIGFyZ3MgIiAtcGxhY2VfZ2xvYmFsX2Nsb2NrX2dhdGVfYXdhcmUgJGFyZyIKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhjbG9ja19nYXRlX2F3YXJlKSBcInRydWVcIlxuIgotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgeyFbY2F0Y2gge3NldCBhcmcgJHZhcnMocGxhY2VfaW9fcGlucyl9XX0gewotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhwbGFjZV9pb19waW5zKVxuIgotICAgICAgICAgICAgICAgYXBwZW5kIGFyZ3MgIiAtcGxhY2VfZ2xvYmFsX3BsYWNlX2lvX3BpbnMgJGFyZyIKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhwbGFjZV9pb19waW5zKSBcInRydWVcIlxuIgotICAgICAgICAgICAgfQotIyAgICAgICAgICAgIHNldCBwcm9jZXNzIFtyZWdzdWIgIm5tIiAkdmFycyhwcm9jZXNzKSAiIl0KLSMgICAgICAgICAgICBpZiB7W2V4cHIgJHByb2Nlc3MgPCAyOF0gJiYgW2luZm8gZXhpc3RzIHZhcnMoZmlsbGVyX2NlbGxzLG1pbl9nYXApXX0gewotIyAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMoZmlsbGVyX2NlbGxzLG1pbl9nYXApXG4iCi0jICAgICAgICAgICAgICAgYXBwZW5kIGFyZ3MgIiAtZmlsbGVyR2FwTWluR2FwICR2YXJzKGZpbGxlcl9jZWxscyxtaW5fZ2FwKSAtZmlsbGVyR2FwRWZmb3J0IGhpZ2hcbiIKLSMgICAgICAgICAgICB9IGVsc2UgewotIyAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKGZpbGxlcl9jZWxscyxtaW5fZ2FwKSBcIjxtaWNyb25zPlwiXG4iCi0jICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMoZmlsbGVyX2NlbGxzLGdhcF9lZmZvcnQpIFwiPGxvdyBtZWRpdW0gaGlnaD4gXCJcbiIKLSMgICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGlmIHskYXJncyAhPSAiIn0gewotICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgInNldFBsYWNlTW9kZSAkYXJnc1xuIgotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kIHBsYWNlLHNldF9wbGFjZV9tb2RlICRjb21tYW5kXQotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBzZXQgYXJncyAiIgotIyAgICAgICAgICAgIGlmIHshW2NhdGNoIHtzZXQgYXJnICR2YXJzKHNpemVfb25seV9maWxlKX1dfSB7Ci0jICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhzaXplX29ubHlfZmlsZSlcbiIKLSMgICAgICAgICAgICAgICBhcHBlbmQgYXJncyAiIC1zaXplT25seUZpbGUgJGFyZyIKLSMgICAgICAgICAgICB9IGVsc2UgewotIyAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKHNpemVfb25seV9maWxlKSBcIjxmaWxlPlwiXG4iCi0jICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgeyhbaW5mbyBleGlzdHMgdmFycyhpbl9wbGFjZV9vcHQpXSAmJiAkdmFycyhpbl9wbGFjZV9vcHQpKSB8fCAkdmFycyhwbGFjZV9vcHRfZGVzaWduKX0gewotICAgICAgICAgICAgICAgaWYgeyFbY2F0Y2gge3NldCBhcmcgJHZhcnMoc2l6ZV9vbmx5X2ZpbGUpfV19IHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMoc2l6ZV9vbmx5X2ZpbGUpXG4iCi0gICAgICAgICAgICAgICAgICBhcHBlbmQgYXJncyAiIC1zaXplT25seUZpbGUgJGFyZyIKLSAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhzaXplX29ubHlfZmlsZSkgXCI8ZmlsZT5cIlxuIgotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhpbl9wbGFjZV9vcHQpXG4iCi0jICAgICAgICAgICAgICAgc2V0IGFyZ3MgIiIKLSAgICAgICAgICAgICAgIGlmIHtbbGluZGV4IFtzcGxpdCAkdmFycyh2ZXJzaW9uKSAiLiJdICAwXSA8IDE3fSB7Ci0gICAgICAgICAgICAgICAgICBpZiB7IVtjYXRjaCB7c2V0IGFyZyAkdmFycyhwcmVzZXJ2ZV9hc3NlcnRpb25zKX1dfSB7Ci0gICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKHByZXNlcnZlX2Fzc2VydGlvbnMpXG4iCi0gICAgICAgICAgICAgICAgICAgICBhcHBlbmQgYXJncyAiIC1wcmVzZXJ2ZUFzc2VydGlvbnMgJGFyZyIKLSAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhwcmVzZXJ2ZV9hc3NlcnRpb25zKSBcInRydWVcIlxuIgotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgaWYgeyFbY2F0Y2gge3NldCBhcmcgJHZhcnMobGVha2FnZV9wb3dlcl9lZmZvcnQpfV19IHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMobGVha2FnZV9wb3dlcl9lZmZvcnQpXG4iCi0gICAgICAgICAgICAgICAgICBhcHBlbmQgYXJncyAiIC1sZWFrYWdlUG93ZXJFZmZvcnQgJGFyZyIKLSAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhsZWFrYWdlX3Bvd2VyX2VmZm9ydCkgXCJsb3cgb3IgaGlnaFwiXG4iCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICBpZiB7IVtjYXRjaCB7c2V0IGFyZyAkdmFycyhkeW5hbWljX3Bvd2VyX2VmZm9ydCl9XX0gewotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhkeW5hbWljX3Bvd2VyX2VmZm9ydClcbiIKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBhcmdzICIgLWR5bmFtaWNQb3dlckVmZm9ydCAkYXJnIgotICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKGR5bmFtaWNfcG93ZXJfZWZmb3J0KSBcImxvdyBvciBoaWdoXCJcbiIKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIGlmIHshW2NhdGNoIHtzZXQgYXJnICR2YXJzKGNsb2NrX2dhdGVfYXdhcmVfb3B0KX1dfSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKGNsb2NrX2dhdGVfYXdhcmVfb3B0KVxuIgotICAgICAgICAgICAgICAgICAgYXBwZW5kIGFyZ3MgIiAtY2xrR2F0ZUF3YXJlICRhcmciCi0gICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMoY2xvY2tfZ2F0ZV9hd2FyZV9vcHQpIFwidHJ1ZVwiXG4iCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICBpZiB7IVtjYXRjaCB7c2V0IGFyZyAkdmFycyhjcml0aWNhbF9yYW5nZSl9XX0gewotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhjcml0aWNhbF9yYW5nZSlcbiIKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBhcmdzICIgLWNyaXRpY2FsUmFuZ2UgJGFyZyIKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhhbGxfZW5kX3BvaW50cyldICYmICR2YXJzKGFsbF9lbmRfcG9pbnRzKX0gewotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhhbGxfZW5kX3BvaW50cylcbiIKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBhcmdzICIgLWFsbEVuZFBvaW50cyB0cnVlIgotICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKGFsbF9lbmRfcG9pbnRzKSBcInRydWVcIlxuIgotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgaWYgeyFbY2F0Y2gge3NldCBhcmcgJHZhcnMoZml4X2Zhbm91dF9sb2FkKX1dfSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKGZpeF9mYW5vdXRfbG9hZClcbiIKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBhcmdzICIgLWZpeEZhbm91dExvYWQgJGFyZyIKLSAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhmaXhfZmFub3V0X2xvYWQpIFwiPGZpbGU+XCJcbiIKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgaWYgeyFbY2F0Y2gge3NldCBhcmcgJHZhcnModXNlZnVsX3NrZXcpfV19IHsKLSAgICAgICAgICAgICAgICAgaWYgeyR2YXJzKGNjb3B0X2VmZm9ydCkgPT0gImxvdyJ9IHsgCi0gICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKHVzZWZ1bF9za2V3KVxuIgotICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGFyZ3MgIiAtdXNlZnVsU2tldyAkYXJnIgotICAgICAgICAgICAgICAgICAgICAgaWYgeyR2YXJzKHVzZWZ1bF9za2V3KSAmJiAhW2NhdGNoIHtzZXQgYXJnICR2YXJzKHNrZXdfYnVmZmVycyl9XX0gewotICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhza2V3X2J1ZmZlcnMpXG4iCi0gICAgICAgICAgICAgICAgICAgICAgICBzZXQgY29tbWFuZCAic2V0VXNlZnVsU2tld01vZGUgLWRlbGF5UHJlQ1RTIHRydWUgLXVzZUNlbGxzIFxbbGlzdCAkYXJnXF1cbiIKLSAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCBwcmVjdHMsc2V0X3VzZWZ1bF9za2V3X21vZGUgJGNvbW1hbmRdCi0gICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjIDxGRj4gVmFyaWFibGUgdmFycyh1c2VmdWxfc2tldykgaWdub3JlZCB3aGVuIHZhcnMoY2NvcHRfZWZmb3J0KSBpcyAkdmFycyhjY29wdF9lZmZvcnQpXG4iCi0gICAgICAgICAgICAgICAgICAgICBzZXQgd2FybmluZ3MoJHZhcnMod2FybmluZ19jb3VudCkpICJWYXJpYWJsZSB2YXJzKHVzZWZ1bF9za2V3KSBpZ25vcmVkIHdoZW4gdmFycyhjY29wdF9lZmZvcnQpIGlzICR2YXJzKGNjb3B0X2VmZm9ydClcbiIKLSAgICAgICAgICAgICAgICAgICAgIGluY3IgdmFycyh3YXJuaW5nX2NvdW50KQotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyh1c2VmdWxfc2tldykgXCJ0cnVlXCJcbiIKLSAgICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMoc2tld19idWZmZXJzKSBcIjxsaXN0IG9mIGJ1ZmZlcnM+XCJcbiIKLSAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgeyRhcmdzICE9ICIifSB7Ci0gICAgICAgICAgICAgICBzZXQgY29tbWFuZCAic2V0T3B0TW9kZSAkYXJnc1xuIgotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kIHBsYWNlLHNldF9vcHRfbW9kZSAkY29tbWFuZF0KLSAgICAgICAgICAgIH0KLQotIyAgICAgICAgICAgIHNldCBjb21tYW5kIFtGRl9FREk6OmFkZF90aWVfY2VsbHMgdHJ1ZSBmYWxzZV0KLSMgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgcGxhY2UsYWRkX3RpZV9jZWxscyAkY29tbWFuZF0KLQotICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGN0c19zcGVjKV19IHsKLSAgICAgICAgICAgICAgIHNldCBjb21tYW5kICJjbGVhbnVwU3BlY2lmeUNsb2NrVHJlZVxuIgotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kIHBsYWNlLGNsZWFudXBfc3BlY2lmeV9jbG9ja190cmVlICRjb21tYW5kXQotICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgIiIKLSAgICAgICAgICAgICAgIGZvcmVhY2ggc3BlYyAkdmFycyhjdHNfc3BlYykgewotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgInNwZWNpZnlDbG9ja1RyZWUgLWZpbGUgJHNwZWNcbiIKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCBwbGFjZSxzcGVjaWZ5X2Nsb2NrX3RyZWUgJGNvbW1hbmRdCi0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhqdGFnX2NlbGxzKV0gJiYKLSAgICAgICAgICAgICAgICBbaW5mbyBleGlzdHMgdmFycyhqdGFnX3Jvd3MpXX0gewotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhqdGFnX2NlbGxzKSwgdmFycyhqdGFnX3Jvd3MpXG4iCi0jICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjIFBMQUNJTkcgSlRBRyBDRUxMU1xuIgotICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgIiIKLSAgICAgICAgICAgICAgIGZvcmVhY2ggaW5zdCAkdmFycyhqdGFnX2NlbGxzKSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAic3BlY2lmeUp0YWcgLWluc3QgJGluc3RcbiIKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCBwbGFjZSxzcGVjaWZ5X2p0YWcgJGNvbW1hbmRdCi0gICAgICAgICAgICAgICBzZXQgY29tbWFuZCAicGxhY2VKdGFnIC1uclJvdyAkdmFycyhqdGFnX3Jvd3MpXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgcGxhY2UscGxhY2VfanRhZyAkY29tbWFuZF0KLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0KLQotICAgICAgICAgInByZWN0cyIgewotICAgICAgICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgICAgICAgIyBTZXQgb3B0aW1pemF0aW9uIG9wdGlvbnMgLi4uCi0gICAgICAgICAgICAjIEVuYWJsZSBzaWduYWxTdG9ybSBpZiByZXF1ZXN0ZWQgKHJlcXVpcmVkIGZvciBFQ1NNL0NDUyBmbG93cykKLSAgICAgICAgICAgICMgRm9yIGxvdyBwb3dlciBmbG93cywgbWFrZSBzdXJlIGFsd2F5cy1vbiBidWZmZXJzIGFyZSBlbmFibGVkCi0gICAgICAgICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0KLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbbGluZGV4IFtGRl9FREk6OnNldF9kZXNpZ25fbW9kZV0gMF0KLSAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyBbbGluZGV4IFtGRl9FREk6OnNldF9kZXNpZ25fbW9kZV0gMV0KLSAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgW2xpbmRleCBbRkZfRURJOjpzZXRfZGVzaWduX21vZGVdIDJdCi0KLSAgICAgICAgICAgIHNldCBhcmdzICIiIAotICAgICAgICAgICAgaWYgeyR2YXJzKGZsb3cpID09ICJtbW1jIn0gewotICAgICAgICAgICAgICAgaWYgeyR2YXJzKGVuYWJsZV9vY3YpID09ICJwcmVfcHJlY3RzIn0gewotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhlbmFibGVfb2N2KVxuIgotICAgICAgICAgICAgICAgICAgYXBwZW5kIGFyZ3MgIi1hbmFseXNpc1R5cGUgb25DaGlwVmFyaWF0aW9uICIKLSAgICAgICAgICAgICAgICAgIGlmIHskdmFycyhlbmFibGVfYW9jdil9IHsKLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMoZW5hYmxlX2FvY3YpXG4iCi0gICAgICAgICAgICAgICAgICAgICBhcHBlbmQgYXJncyAiLWFvY3YgdHJ1ZSAiCi0gICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMoZW5hYmxlX2FvY3YpXG4iCi0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICBpZiB7JHZhcnMoZW5hYmxlX3NvY3YpfSB7Ci0gICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKGVuYWJsZV9zb2N2KVxuIgotICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGFyZ3MgIi1zb2N2IHRydWUgIgotICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKGVuYWJsZV9zb2N2KVxuIgotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKGVuYWJsZV9vY3YpIFwicHJlX3ByZWN0c1wiXG4iCi0gICAgICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhlbmFibGVfYW9jdikgXCJ0cnVlXCJcbiIKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKGVuYWJsZV9zb2N2KSBcInRydWVcIlxuIgotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgeyRhcmdzICE9ICIifSB7Ci0gICAgICAgICAgICAgICBzZXQgY29tbWFuZCAic2V0QW5hbHlzaXNNb2RlICRhcmdzXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgcHJlY3RzLHNldF9hbmFseXNpc19tb2RlICRjb21tYW5kXQotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGNsb2NrX2dhdGVfY2xvbmUpXSAmJiAkdmFycyhjbG9ja19nYXRlX2Nsb25lKX0gewotICAgICAgICAgICAgICAgaWYgeyhbaW5mbyBleGlzdHMgdmFycyhwYXJ0aXRpb25fbGlzdCldKX0gewotICAgICAgICAgICAgICAgICAgaWYge1tmaWxlIHRhaWwgW2ZpbGUgZGlybmFtZSBbcHdkXV1dID09ICIkdmFycyhwYXJ0aXRpb25fZGlyKSJ9IHsKLSAgICAgICAgICAgICAgICAgICAgIHNldCBwdG4gW2ZpbGUgdGFpbCBbcHdkXV0KLSAgICAgICAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkcHRuLGN0c19zcGVjKV19IHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHNldCB2YXJzKGN0c19zcGVjKSAkdmFycygkcHRuLGN0c19zcGVjKQotICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgfQotICAgICAgCi0gICAgICAgICAgICAgICBzZXQgc2NvbW1hbmQgIiIKLSAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhjdHNfc3BlYyldfSB7Ci0gICAgICAgICAgICAgICAgICBzZXQgY29tbWFuZCAiY2xlYW51cFNwZWNpZnlDbG9ja1RyZWVcbiIKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCBwcmVjdHMsY2xlYW51cF9zcGVjaWZ5X2Nsb2NrX3RyZWUgJGNvbW1hbmRdCi0gICAgICAgICAgICAgICAgICBmb3JlYWNoIHNwZWMgJHZhcnMoY3RzX3NwZWMpIHsKLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBzY29tbWFuZCAic3BlY2lmeUNsb2NrVHJlZSAtZmlsZSAkc3BlY1xuIgotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgIHNldCBjb21tYW5kICJjcmVhdGVDbG9ja1RyZWVTcGVjXG4iCi0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgcHJlY3RzLGNyZWF0ZV9jbG9ja190cmVlX3NwZWMgJGNvbW1hbmRdCi0gICAgICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoY3RzX2NlbGxzKV19IHsKLSAgICAgICAgICAgICAgICAgICAgYXBwZW5kIHNjb21tYW5kICJzcGVjaWZ5Q2xvY2tUcmVlIC11cGRhdGUgXCJBdXRvQ1RTUm9vdFBpbiAqIEJ1ZmZlciAkdmFycyhjdHNfY2VsbHMpXCJcbiIKLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhyb3V0ZV9jbG9ja19uZXRzKV0gJiYgJHZhcnMocm91dGVfY2xvY2tfbmV0cyl9IHsKLSAgICAgICAgICAgICAgICAgYXBwZW5kIHNjb21tYW5kICJzcGVjaWZ5Q2xvY2tUcmVlIC11cGRhdGUgXCJBdXRvQ1RTUm9vdFBpbiAqIFJvdXRlQ2xrTmV0IFlFU1wiXG4iCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICBpZiB7ISR2YXJzKGlsbSl9IHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCBwcmVjdHMsc3BlY2lmeV9jbG9ja190cmVlICRzY29tbWFuZF0KLSAgICAgICAgICAgICAgIH0KLSMgICAgICAgICAgICAgICBpZiB7IVtpbmZvIGV4aXN0cyB2YXJzKGN0c19zcGVjKV19IHsKLSMgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgImNsb2NrRGVzaWduIC1nZW5TcGVjT25seSBcW3BpZFxdLmN0c3RjaFxuIgotIyAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAic3BlY2lmeUNsb2NrVHJlZSAtZmlsZSBcW3BpZFxdLmN0c3RjaFxuIgotIyAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0jICAgICAgICAgICAgICAgICAgZm9yZWFjaCBzcGVjICR2YXJzKGN0c19zcGVjKSB7Ci0jICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJzcGVjaWZ5Q2xvY2tUcmVlIC1maWxlICRzcGVjXG4iCi0jICAgICAgICAgICAgICAgICAgfQotIyAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgc2V0IGFyZ3MgIiIKLSAgICAgICAgICAgIGlmIHtbbGluZGV4IFtzcGxpdCAkdmFycyh2ZXJzaW9uKSAiLiJdICAwXSA8IDE3fSB7Ci0gICAgICAgICAgICAgICBpZiB7IVtjYXRjaCB7c2V0IGFyZyAkdmFycyhwcmVzZXJ2ZV9hc3NlcnRpb25zKX1dfSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKHByZXNlcnZlX2Fzc2VydGlvbnMpXG4iCi0gICAgICAgICAgICAgICAgICBhcHBlbmQgYXJncyAiIC1wcmVzZXJ2ZUFzc2VydGlvbnMgJGFyZyIKLSAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhwcmVzZXJ2ZV9hc3NlcnRpb25zKSBcInRydWVcIlxuIgotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgeyFbY2F0Y2gge3NldCBhcmcgJHZhcnMobGVha2FnZV9wb3dlcl9lZmZvcnQpfV19IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMobGVha2FnZV9wb3dlcl9lZmZvcnQpXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgYXJncyAiIC1sZWFrYWdlUG93ZXJFZmZvcnQgJGFyZyIKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhsZWFrYWdlX3Bvd2VyX2VmZm9ydCkgXCJsb3cgb3IgaGlnaFwiXG4iCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiB7IVtjYXRjaCB7c2V0IGFyZyAkdmFycyhkeW5hbWljX3Bvd2VyX2VmZm9ydCl9XX0gewotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhkeW5hbWljX3Bvd2VyX2VmZm9ydClcbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBhcmdzICIgLWR5bmFtaWNQb3dlckVmZm9ydCAkYXJnIgotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKGR5bmFtaWNfcG93ZXJfZWZmb3J0KSBcImxvdyBvciBoaWdoXCJcbiIKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIHshW2NhdGNoIHtzZXQgYXJnICR2YXJzKGNsb2NrX2dhdGVfYXdhcmVfb3B0KX1dfSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKGNsb2NrX2dhdGVfYXdhcmVfb3B0KVxuIgotICAgICAgICAgICAgICAgYXBwZW5kIGFyZ3MgIiAtY2xrR2F0ZUF3YXJlICRhcmciCi0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMoY2xvY2tfZ2F0ZV9hd2FyZV9vcHQpIFwidHJ1ZVwiXG4iCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiB7IVtjYXRjaCB7c2V0IGFyZyAkdmFycyhjcml0aWNhbF9yYW5nZSl9XX0gewotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhjcml0aWNhbF9yYW5nZSlcbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBhcmdzICIgLWNyaXRpY2FsUmFuZ2UgJGFyZyIKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhhbGxfZW5kX3BvaW50cyldICYmICR2YXJzKGFsbF9lbmRfcG9pbnRzKX0gewotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhhbGxfZW5kX3BvaW50cylcbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBhcmdzICIgLWFsbEVuZFBvaW50cyB0cnVlIgotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKGFsbF9lbmRfcG9pbnRzKSBcInRydWVcIlxuIgotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgeyFbY2F0Y2gge3NldCBhcmcgJHZhcnMoc2l6ZV9vbmx5X2ZpbGUpfV19IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMoc2l6ZV9vbmx5X2ZpbGUpXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgYXJncyAiIC1zaXplT25seUZpbGUgJGFyZyIKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhzaXplX29ubHlfZmlsZSkgXCI8ZmlsZT5cIlxuIgotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgeyFbY2F0Y2gge3NldCBhcmcgJHZhcnMoZml4X2Zhbm91dF9sb2FkKX1dfSB7Ci0gICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMoZml4X2Zhbm91dF9sb2FkKVxuIgotICAgICAgICAgICAgICBhcHBlbmQgYXJncyAiIC1maXhGYW5vdXRMb2FkICRhcmciCi0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhmaXhfZmFub3V0X2xvYWQpIFwiPGZpbGU+XCJcbiIKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIHshW2NhdGNoIHtzZXQgYXJnICR2YXJzKHVzZWZ1bF9za2V3KX1dfSB7Ci0gICAgICAgICAgICAgICBpZiB7JHZhcnMoY2NvcHRfZWZmb3J0KSA9PSAibG93In0gewotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyh1c2VmdWxfc2tldylcbiIKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBhcmdzICIgLXVzZWZ1bFNrZXcgJGFyZyIKLSAgICAgICAgICAgICAgICAgIGlmIHskdmFycyh1c2VmdWxfc2tldykgJiYgIVtjYXRjaCB7c2V0IGFyZyAkdmFycyhza2V3X2J1ZmZlcnMpfV19IHsKLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMoc2tld19idWZmZXJzKVxuIgotICAgICAgICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgInNldFVzZWZ1bFNrZXdNb2RlIC1kZWxheVByZUNUUyB0cnVlIC11c2VDZWxscyBcW2xpc3QgJGFyZ1xdXG4iCi0gICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgcHJlY3RzLHNldF91c2VmdWxfc2tld19tb2RlICRjb21tYW5kXQotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyA8RkY+IFZhcmlhYmxlIHZhcnModXNlZnVsX3NrZXcpIGlnbm9yZWQgd2hlbiB2YXJzKGNjb3B0X2VmZm9ydCkgaXMgJHZhcnMoY2NvcHRfZWZmb3J0KVxuIgotICAgICAgICAgICAgICAgICAgc2V0IHdhcm5pbmdzKCR2YXJzKHdhcm5pbmdfY291bnQpKSAiVmFyaWFibGUgdmFycyh1c2VmdWxfc2tldykgaWdub3JlZCB3aGVuIHZhcnMoY2NvcHRfZWZmb3J0KSBpcyAkdmFycyhjY29wdF9lZmZvcnQpXG4iCi0gICAgICAgICAgICAgICAgICBpbmNyIHZhcnMod2FybmluZ19jb3VudCkKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyh1c2VmdWxfc2tldykgXCJ0cnVlXCJcbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKHNrZXdfYnVmZmVycykgXCI8bGlzdCBvZiBidWZmZXJzPlwiXG4iCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiB7W0ZGOjppc19scF9mbG93XX0gewotICAgICAgICAgICAgICAgaWYgeyFbY2F0Y2gge3NldCBhcmcgJHZhcnMocmVzaXplX3NoaWZ0ZXJfYW5kX2lzb19pbnN0cyl9XX0gewotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhyZXNpemVfc2hpZnRlcl9hbmRfaXNvX2luc3RzKVxuIgotICAgICAgICAgICAgICAgICAgYXBwZW5kIGFyZ3MgIiAtcmVzaXplU2hpZnRlckFuZElzb0luc3RzICRhcmciCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiB7JGFyZ3MgIT0gIiJ9IHsKLSAgICAgICAgICAgICAgIHNldCBjb21tYW5kICJzZXRPcHRNb2RlICRhcmdzXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgcHJlY3RzLHNldF9vcHRfbW9kZSAkY29tbWFuZF0KLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgaWYgeyR2YXJzKGVuYWJsZV9zcykgPT0gInByZV9wcmVjdHMifSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKGVuYWJsZV9zcylcbiIKLSAgICAgICAgICAgICAgIHNldCBjb21tYW5kICJzZXREZWxheUNhbE1vZGUgLWVuZ2luZSBzaWduYWxTdG9ybVxuIgotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kIHByZWN0cyxzZXRfZGVsYXlfY2FsX21vZGUgJGNvbW1hbmRdCi0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMoZW5hYmxlX3NzKSBcInByZV9wcmVjdHNcIlxuIgotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYge1tGRjo6aXNfbHBfZmxvd119IHsKLSAgICAgICAgICAgICAgIHNldCBjb21tYW5kICIiCi0gICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoYWx3YXlzX29uX2J1ZmZlcnMpXX0gewotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhhbHdheXNfb25fYnVmZmVycylcbiIKLSAgICAgICAgICAgICAgICAgIGZvcmVhY2ggYnVmZmVyICR2YXJzKGFsd2F5c19vbl9idWZmZXJzKSB7Ci0gICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAic2V0RG9udFVzZSAkYnVmZmVyIGZhbHNlXG4iCi0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICBmb3JlYWNoIGRvbWFpbiBbRkY6OmdldF9ieV9zdWZmaXggdmFycyAiLGFsd2F5c19vbl9idWZmZXJzIl0gewotICAgICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCRkb21haW4sYWx3YXlzX29uX2J1ZmZlcnMpXX0gewotICAgICAgICAgICAgICAgICAgICAgZm9yZWFjaCBidWZmZXIgJHZhcnMoJGRvbWFpbixhbHdheXNfb25fYnVmZmVycykgewotICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgInNldERvbnRVc2UgJGJ1ZmZlciBmYWxzZVxuIgotICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgaWYgeyRjb21tYW5kICE9ICIifSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgcHJlY3RzLHNldF9kb250X3VzZSAkY29tbWFuZF0KLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0KLQotICAgICAgICAgImN0cyIgewotICAgICAgICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgICAgICAgIyBTZXQgQ1RTIG9wdGlvbnMgLi4uIHRoaXMgaW5jbHVkZXMgbmFub3JvdXRlIG9wdGlvbnMgYXMgdGhlIGNsb2NrCi0gICAgICAgICAgICAjIG5ldCBpcyB0eXBpY2FsbHkgcm91dGVkIGR1cmluZyBDVFMuIEZvciBoaWVyYXJjaGljYWwgZmxvd3MsIHRoZQotICAgICAgICAgICAgIyBjbG9jayB0cmVlIHNwZWMgaXMgZGVmaW5lZCBwZXIgcGFydGl0aW9uIC4KLSAgICAgICAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLQotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtsaW5kZXggW0ZGX0VESTo6c2V0X2Rlc2lnbl9tb2RlXSAwXQotICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzIFtsaW5kZXggW0ZGX0VESTo6c2V0X2Rlc2lnbl9tb2RlXSAxXQotICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyBbbGluZGV4IFtGRl9FREk6OnNldF9kZXNpZ25fbW9kZV0gMl0KLQotICAgICAgICAgICAgc2V0IGFyZ3MgIiIgCi0gICAgICAgICAgICBpZiB7JHZhcnMoZW5hYmxlX29jdikgPT0gInByZV9jdHMifSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKGVuYWJsZV9vY3YpXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgYXJncyAiLWFuYWx5c2lzVHlwZSBvbkNoaXBWYXJpYXRpb24gIgotICAgICAgICAgICAgICAgaWYgeyR2YXJzKGVuYWJsZV9hb2N2KX0gewotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhlbmFibGVfYW9jdilcbiIKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBhcmdzICItYW9jdiB0cnVlICIKLSAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhlbmFibGVfYW9jdilcbiIKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIGlmIHskdmFycyhlbmFibGVfc29jdil9IHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMoZW5hYmxlX3NvY3YpXG4iCi0gICAgICAgICAgICAgICAgICBhcHBlbmQgYXJncyAiLXNvY3YgdHJ1ZSAiCi0gICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMoZW5hYmxlX3NvY3YpXG4iCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMoZW5hYmxlX29jdikgXCJwcmVfY3RzXCJcbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKGVuYWJsZV9hb2N2KSBcInRydWVcIlxuIgotICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMoZW5hYmxlX3NvY3YpIFwidHJ1ZVwiXG4iCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiB7JGFyZ3MgIT0gIiJ9IHsKLSAgICAgICAgICAgICAgIHNldCBjb21tYW5kICJzZXRBbmFseXNpc01vZGUgJGFyZ3NcbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCBjdHMsc2V0X2FuYWx5c2lzX21vZGUgJGNvbW1hbmRdCi0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIHNldCBhcmdzICIiIAotICAgICAgICAgICAgaWYgeyR2YXJzKGVuYWJsZV9jcHByKSAhPSAiZmFsc2UifSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKGVuYWJsZV9jcHByKVxuIgotICAgICAgICAgICAgICAgYXBwZW5kIGFyZ3MgIi1jcHByICR2YXJzKGVuYWJsZV9jcHByKSAiCi0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMoZW5hYmxlX2NwcHIpXG4iCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiB7JGFyZ3MgIT0gIiJ9IHsKLSAgICAgICAgICAgICAgIHNldCBjb21tYW5kICJzZXRBbmFseXNpc01vZGUgJGFyZ3NcbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCBjdHMsc2V0X2FuYWx5c2lzX21vZGUgJGNvbW1hbmRdCi0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIHNldCBjb21tYW5kICJzZXRDVFNNb2RlICIKLSAgICAgICAgICAgIGlmIHskdmFycyhjdHNfZW5naW5lKSA9PSAiY3RzIn0gewotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhjdHNfZW5naW5lKVxuIgotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAtZW5naW5lIGNrIgotICAgICAgICAgICAgfSAKLSAgICAgICAgICAgIGlmIHshW2NhdGNoIHtzZXQgYXJnICR2YXJzKHJvdXRlX2Nsb2NrX25ldHMpfV19IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMocm91dGVfY2xvY2tfbmV0cylcbiIKLSAgICAgICAgICAgICAgIGlmIHshJHZhcnMocm91dGVfY2xvY2tfbmV0cyl9IHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgLXJvdXRlQ2xrTmV0ICRhcmciCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMocm91dGVfY2xvY2tfbmV0cylcbiIKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhjbGtfdHJlZV90b3BfbGF5ZXIpXSAmJiAkdmFycyhjbGtfdHJlZV90b3BfbGF5ZXIpICE9IHt9fSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKGNsa190cmVlX3RvcF9sYXllcilcbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgLXJvdXRlVG9wUHJlZmVycmVkTGF5ZXIgJHZhcnMoY2xrX3RyZWVfdG9wX2xheWVyKSIKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhjbGtfdHJlZV90b3BfbGF5ZXIpXG4iCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoY2xrX2xlYWZfdG9wX2xheWVyKV0gJiYgJHZhcnMoY2xrX2xlYWZfdG9wX2xheWVyKSAhPSB7fX0gewotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhjbGtfbGVhZl90b3BfbGF5ZXIpXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiIC1yb3V0ZUxlYWZUb3BQcmVmZXJyZWRMYXllciAkdmFycyhjbGtfbGVhZl90b3BfbGF5ZXIpIgotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKGNsa19sZWFmX3RvcF9sYXllcilcbiIKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhjbGtfdHJlZV9ib3R0b21fbGF5ZXIpXSAmJiAkdmFycyhjbGtfdHJlZV9ib3R0b21fbGF5ZXIpICE9IHt9fSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKGNsa190cmVlX2JvdHRvbV9sYXllcilcbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgLXJvdXRlQm90dG9tUHJlZmVycmVkTGF5ZXIgJHZhcnMoY2xrX3RyZWVfYm90dG9tX2xheWVyKSIKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhjbGtfdHJlZV9ib3R0b21fbGF5ZXIpXG4iCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoY2xrX2xlYWZfYm90dG9tX2xheWVyKV0gJiYgJHZhcnMoY2xrX2xlYWZfYm90dG9tX2xheWVyKSAhPSB7fX0gewotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhjbGtfbGVhZl9ib3R0b21fbGF5ZXIpXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiIC1yb3V0ZUxlYWZCb3R0b21QcmVmZXJyZWRMYXllciAkdmFycyhjbGtfbGVhZl9ib3R0b21fbGF5ZXIpIgotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKGNsa19sZWFmX2JvdHRvbV9sYXllcilcbiIKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhjbGtfdHJlZV9uZHIpXSAmJiAkdmFycyhjbGtfdHJlZV9uZHIpICE9IHt9fSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKGNsa190cmVlX25kcilcbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgLXJvdXRlTm9uRGVmYXVsdFJ1bGUgJHZhcnMoY2xrX3RyZWVfbmRyKSIKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhjbGtfdHJlZV9uZHIpXG4iCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoY2xrX3RyZWVfZXh0cmFfc3BhY2UpXSAmJiAkdmFycyhjbGtfdHJlZV9leHRyYV9zcGFjZSkgIT0ge319IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMoY2xrX3RyZWVfZXh0cmFfc3BhY2UpXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiIC1yb3V0ZVByZWZlcnJlZEV4dHJhU3BhY2UgJHZhcnMoY2xrX3RyZWVfZXh0cmFfc3BhY2UpIgotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKGNsa190cmVlX2V4dHJhX3NwYWNlKVxuIgotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGNsa19sZWFmX25kcildICYmICR2YXJzKGNsa19sZWFmX25kcikgIT0ge319IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMoY2xrX2xlYWZfbmRyKVxuIgotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAtcm91dGVMZWFmTm9uRGVmYXVsdFJ1bGUgJHZhcnMoY2xrX2xlYWZfbmRyKSIKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhjbGtfbGVhZl9uZHIpXG4iCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoY2xrX2xlYWZfZXh0cmFfc3BhY2UpXSAmJiAkdmFycyhjbGtfbGVhZl9leHRyYV9zcGFjZSkgIT0ge319IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMoY2xrX2xlYWZfZXh0cmFfc3BhY2UpXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiIC1yb3V0ZUxlYWZQcmVmZXJyZWRFeHRyYVNwYWNlICR2YXJzKGNsa19sZWFmX2V4dHJhX3NwYWNlKSIKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhjbGtfbGVhZl9leHRyYV9zcGFjZSlcbiIKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIHskY29tbWFuZCAhPSAic2V0Q1RTTW9kZSAifSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgY3RzLHNldF9jdHNfbW9kZSAkY29tbWFuZF0KLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHNldCBjb21tYW5kICIiCi0gICAgICAgICAgICBpZiB7W3N0cmluZyB0b2xvd2VyICR2YXJzKGN0c19lbmdpbmUpXSAhPSAiY3RzIn0gewotIyAgICAgICAgICAgICAgIEZGX0VESTo6YXNzaWduX2N0c19jZWxscwotIyAgICAgICAgICAgICAgIGZvcmVhY2ggY29ybmVyICR2YXJzKHJjX2Nvcm5lcnMpIHsKLSMgICAgICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJGNvcm5lcixhdGZfZmlsZSldfSB7Ci0jICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJ1cGRhdGVfY2NvcHRfcmNfY29ybmVyIC1uYW1lICRjb3JuZXIgLWF0ZiAkdmFycygkY29ybmVyLGF0Zl9maWxlKVxuIgotIyAgICAgICAgICAgICAgICAgIH0KLSMgICAgICAgICAgICAgICB9Ci0jICAgICAgICAgICAgICAgaWYgeyRjb21tYW5kICE9ICIifSB7Ci0jICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIlxuIgotIyAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCBjdHMsdXBkYXRlX2Njb3B0X3JjX2Nvcm5lciAkY29tbWFuZF0KLSMgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICBzZXQgY29tbWFuZCAic2V0X2Njb3B0X21vZGUgIgotICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGNjb3B0X2ludGVncmF0aW9uKV19IHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMoY2NvcHRfaW50ZWdyYXRpb24pXG4iCi0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiIC1pbnRlZ3JhdGlvbiBcIiR2YXJzKGNjb3B0X2ludGVncmF0aW9uKVwiIgotICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKGNjb3B0X2ludGVncmF0aW9uKVxuIgotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGN0c19pbnZlcnRlcl9jZWxscyldfSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKGN0c19pbnZlcnRlcl9jZWxscylcbiIKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgLWN0c19pbnZlcnRlcl9jZWxscyBcIiR2YXJzKGN0c19pbnZlcnRlcl9jZWxscylcIiIKLSAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhjdHNfaW52ZXJ0ZXJfY2VsbHMpXG4iCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoY3RzX2J1ZmZlcl9jZWxscyldfSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKGN0c19idWZmZXJfY2VsbHMpXG4iCi0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiIC1jdHNfYnVmZmVyX2NlbGxzIFwiJHZhcnMoY3RzX2J1ZmZlcl9jZWxscylcIiIKLSAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhjdHNfYnVmZmVyX2NlbGxzKVxuIgotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGNsb2NrX2dhdGVfY2VsbHMpXX0gewotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhjbG9ja19nYXRlX2NlbGxzKVxuIgotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAtY3RzX2Nsb2NrX2dhdGluZ19jZWxscyBcIiR2YXJzKGNsb2NrX2dhdGVfY2VsbHMpXCIiCi0gICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMoY2xvY2tfZ2F0ZV9jZWxscylcbiIKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhjdHNfdXNlX2ludmVydGVycyldfSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKGN0c191c2VfaW52ZXJ0ZXJzKVxuIgotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAtY3RzX3VzZV9pbnZlcnRlcnMgW3N0cmluZyB0b2xvd2VyICR2YXJzKGN0c191c2VfaW52ZXJ0ZXJzKV0iCi0gICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMoY3RzX3VzZV9pbnZlcnRlcnMpXG4iCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnModXBkYXRlX2lvX2xhdGVuY3kpXX0gewotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyh1cGRhdGVfaW9fbGF0ZW5jeSlcbiIKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgLWNjb3B0X21vZGlmeV9jbG9ja19sYXRlbmN5ICR2YXJzKHVwZGF0ZV9pb19sYXRlbmN5KSIgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyh1cGRhdGVfaW9fbGF0ZW5jeSlcbiIKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhjdHNfaW9fb3B0KV19IHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMoY3RzX2lvX29wdClcbiIKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgLWlvX29wdCBbc3RyaW5nIHRvbG93ZXIgJHZhcnMoY3RzX2lvX29wdCldIgotICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKGN0c19pb19vcHQpXG4iCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoY2NvcHRfZWZmb3J0KV19IHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMoY2NvcHRfZWZmb3J0KVxuIgotIyAgICAgICAgICAgICAgICAgIGlmIHskdmFycyhjY29wdF9lZmZvcnQpICE9ICJsb3cifSB7Ci0jICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAtZWZmb3J0ICR2YXJzKGNjb3B0X2VmZm9ydCkiCi0jICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKGNjb3B0X2VmZm9ydClcbiIKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhjdHNfdGFyZ2V0X3NrZXcpXX0gewotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhjdHNfdGFyZ2V0X3NrZXcpXG4iCi0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiIC1jdHNfdGFyZ2V0X3NrZXcgJHZhcnMoY3RzX3RhcmdldF9za2V3KSIgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhjdHNfdGFyZ2V0X3NrZXcpXG4iCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoY3RzX3RhcmdldF9zbGV3KV19IHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMoY3RzX3RhcmdldF9zbGV3KVxuIgotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAtY3RzX3RhcmdldF9zbGV3ICR2YXJzKGN0c190YXJnZXRfc2xldykiICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMoY3RzX3RhcmdldF9zbGV3KVxuIgotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKHByZV9jY29wdF90Y2wpXX0gewotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhwcmVfY2NvcHRfdGNsKVxuIgotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAtcHJlX3RjbCBceyBzb3VyY2UgJHZhcnMocHJlX2Njb3B0X3RjbCkgXH0iICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMocG9zdF9jY29wdF90Y2wpXX0gewotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhwb3N0X2Njb3B0X3RjbClcbiIKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgLXBvc3RfdGNsIFx7IHNvdXJjZSAkdmFycyhwb3N0X2Njb3B0X3RjbCkgXH0iCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoY2NvcHRfZXhlY3V0YWJsZSldfSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKGNjb3B0X2V4ZWN1dGFibGUpXG4iCi0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiIC1lbnZBZHZhbmNlZEludGVncmF0aW9uTGluayAkdmFycyhjY29wdF9leGVjdXRhYmxlKSIgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhjY29wdF9leGVjdXRhYmxlKVxuIgotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGNsa190cmVlX25kcildfSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiIC1yb3V0ZV90b3Bfbm9uX2RlZmF1bHRfcnVsZSAkdmFycyhjbGtfdHJlZV9uZHIpIgotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGNsa190cmVlX3NoaWVsZF9uZXQpXX0gewotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhjbGtfdHJlZV9zaGllbGRfbmV0KVxuIgotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAtcm91dGVfdG9wX3NoaWVsZGluZ19uZXQgJHZhcnMoY2xrX3RyZWVfc2hpZWxkX25ldCkiCi0gICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMoY2xrX3RyZWVfc2hpZWxkX25ldClcbiIKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhjbGtfdHJlZV90b3BfbGF5ZXIpXX0gewotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAtcm91dGVfdG9wX3RvcF9wcmVmZXJyZWRfbGF5ZXIgJHZhcnMoY2xrX3RyZWVfdG9wX2xheWVyKSIKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhjbGtfdHJlZV9ib3R0b21fbGF5ZXIpXX0gewotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAtcm91dGVfdG9wX2JvdHRvbV9wcmVmZXJyZWRfbGF5ZXIgJHZhcnMoY2xrX3RyZWVfYm90dG9tX2xheWVyKSIKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJcbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCBjdHMsc2V0X2Njb3B0X21vZGUgJGNvbW1hbmRdCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBzZXQgYXJncyAiIgotICAgICAgICAgICAgaWYgeyFbY2F0Y2gge3NldCBhcmcgJHZhcnMobXVsdGlfY3V0X2VmZm9ydCl9XX0gewotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhtdWx0aV9jdXRfZWZmb3J0KVxuIgotICAgICAgICAgICAgICAgYXBwZW5kIGFyZ3MgIiAtZHJvdXRlVXNlTXVsdGlDdXRWaWFFZmZvcnQgJGFyZyIKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhtdWx0aV9jdXRfZWZmb3J0KVxuIgotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgeyFbY2F0Y2gge3NldCBhcmcgJHZhcnMobGl0aG9fZHJpdmVuX3JvdXRpbmcpfV19IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMobGl0aG9fZHJpdmVuX3JvdXRpbmcpXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgYXJncyAiIC1yb3V0ZVdpdGhMaXRob0RyaXZlbiAkYXJnIgotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKGxpdGhvX2RyaXZlbl9yb3V0aW5nKVxuIgotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgeyRhcmdzICE9ICIifSB7Ci0gICAgICAgICAgICAgICBzZXQgY29tbWFuZCAiXG5zZXROYW5vUm91dGVNb2RlICRhcmdzXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgY3RzLHNldF9uYW5vcm91dGVfbW9kZSAkY29tbWFuZF0KLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgaWYgeyhbaW5mbyBleGlzdHMgdmFycyhwYXJ0aXRpb25fbGlzdCldKSAmJgotICAgICAgICAgICAgICAgIChbZmlsZSB0YWlsIFtmaWxlIGRpcm5hbWUgW3B3ZF1dXSA9PSAiJHZhcnMocGFydGl0aW9uX2RpcikiKX0gewotICAgICAgICAgICAgICAgc2V0IHB0biBbZmlsZSB0YWlsIFtwd2RdXQotICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCRwdG4sY3RzX3NwZWMpXX0gewotICAgICAgICAgICAgICAgICAgc2V0IHZhcnMoY3RzX3NwZWMpICR2YXJzKCRwdG4sY3RzX3NwZWMpCi0gICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgaWYgeyRwdG4gIT0gJHZhcnMoZGVzaWduKX0gewotICAgICAgICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGN0c19zcGVjKV19IHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHVuc2V0IHZhcnMoY3RzX3NwZWMpCi0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAgfQotCi0gICAgICAgICAicG9zdGN0cyIgewotICAgICAgICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgICAgICAgIyBPcHRpb25hbGx5IGVuYWJsZSBjcHByLCBzaWduYWxTdG9ybSwgYW5kIG9uQ2hpcFZhcmlhdGlvbiAoaWYKLSAgICAgICAgICAgICMgTU1NQykKLSAgICAgICAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLQotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtsaW5kZXggW0ZGX0VESTo6c2V0X2Rlc2lnbl9tb2RlXSAwXQotICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzIFtsaW5kZXggW0ZGX0VESTo6c2V0X2Rlc2lnbl9tb2RlXSAxXQotICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyBbbGluZGV4IFtGRl9FREk6OnNldF9kZXNpZ25fbW9kZV0gMl0KLQotICAgICAgICAgICAgaWYgeyR2YXJzKGVuYWJsZV9zcykgPT0gInByZV9wb3N0Y3RzIn0gewotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhlbmFibGVfc3MpXG4iCi0gICAgICAgICAgICAgICBzZXQgY29tbWFuZCAic2V0RGVsYXlDYWxNb2RlIC1lbmdpbmUgc2lnbmFsU3Rvcm1cbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCBwb3N0Y3RzLHNldF9kZWxheV9jYWxfbW9kZSAkY29tbWFuZF0KLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhlbmFibGVfc3MpIFwicHJlX3Bvc3RjdHNcIlxuIgotICAgICAgICAgICAgfQotICAgICAgICAgICAgc2V0IGFyZ3MgIiIgCi0gICAgICAgICAgICBpZiB7JHZhcnMoZW5hYmxlX2NwcHIpICE9ICJmYWxzZSJ9IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMoZW5hYmxlX2NwcHIpXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgYXJncyAiLWNwcHIgJHZhcnMoZW5hYmxlX2NwcHIpICIKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhlbmFibGVfY3BwcilcbiIKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIHskdmFycyhmbG93KSA9PSAibW1tYyJ9IHsKLSAgICAgICAgICAgICAgIGlmIHskdmFycyhlbmFibGVfb2N2KSA9PSAicHJlX3Bvc3RjdHMifSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKGVuYWJsZV9vY3YpXG4iCi0gICAgICAgICAgICAgICAgICBhcHBlbmQgYXJncyAiLWFuYWx5c2lzVHlwZSBvbkNoaXBWYXJpYXRpb24gIgotICAgICAgICAgICAgICAgICAgaWYgeyR2YXJzKGVuYWJsZV9hb2N2KX0gewotICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhlbmFibGVfYW9jdilcbiIKLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBhcmdzICItYW9jdiB0cnVlICIKLSAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhlbmFibGVfYW9jdilcbiIKLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIGlmIHskdmFycyhlbmFibGVfc29jdil9IHsKLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMoZW5hYmxlX3NvY3YpXG4iCi0gICAgICAgICAgICAgICAgICAgICBhcHBlbmQgYXJncyAiLXNvY3YgdHJ1ZSAiCi0gICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMoZW5hYmxlX3NvY3YpXG4iCi0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMoZW5hYmxlX29jdikgXCJwcmVfcG9zdGN0c1wiXG4iCi0gICAgICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhlbmFibGVfYW9jdikgXCJ0cnVlXCJcbiIKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKGVuYWJsZV9zb2N2KSBcInRydWVcIlxuIgotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgeyRhcmdzICE9ICIifSB7Ci0gICAgICAgICAgICAgICBzZXQgY29tbWFuZCAic2V0QW5hbHlzaXNNb2RlICRhcmdzXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgcG9zdGN0cyxzZXRfYW5hbHlzaXNfbW9kZSAkY29tbWFuZF0KLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGN0c19zcGVjKV19IHsKLSAgICAgICAgICAgICAgIGlmIHshW2NhdGNoIHtzZXQgYXJnICR2YXJzKGNsb2NrX2dhdGVfY2xvbmUpfV19IHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMoY2xvY2tfZ2F0ZV9jbG9uZSlcbiIKLSAgICAgICAgICAgICAgICAgIHNldCBjb21tYW5kICJzZXRPcHRNb2RlIC1wb3N0Q3RzQ2xrR2F0ZUNsb25pbmcgJGFyZ1xuIgotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kIHBvc3RjdHMsc2V0X29wdF9tb2RlICRjb21tYW5kXQotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAgfQotCi0gICAgICAgICAicG9zdGN0c19ob2xkIiB7Ci0gICAgICAgICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAgICAgICAjIFNldCBob2xkIGZpeGluZyBvcHRpb25zIC4uLgotICAgICAgICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW2xpbmRleCBbRkZfRURJOjpzZXRfZGVzaWduX21vZGVdIDBdCi0gICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgW2xpbmRleCBbRkZfRURJOjpzZXRfZGVzaWduX21vZGVdIDFdCi0gICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzIFtsaW5kZXggW0ZGX0VESTo6c2V0X2Rlc2lnbl9tb2RlXSAyXQotCi0gICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoZGVsYXlfY2VsbHMpXX0gewotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhkZWxheV9jZWxscylcbiIKLSAgICAgICAgICAgICAgIHNldCBjb21tYW5kICIiCi0gICAgICAgICAgICAgICBmb3JlYWNoIGRlbGF5X2NlbGwgJHZhcnMoZGVsYXlfY2VsbHMpIHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJzZXREb250VXNlICRkZWxheV9jZWxsIGZhbHNlXG4iCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICBpZiB7JGNvbW1hbmQgIT0gIiJ9IHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCBwb3N0Y3RzX2hvbGQsc2V0X2RvbnRfdXNlICRjb21tYW5kXQotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKGRlbGF5X2NlbGxzKVxuIgotICAgICAgICAgICAgfQotICAgICAgICAgICAgc2V0IGFyZ3MgIiIKLSAgICAgICAgICAgIGlmIHshW2NhdGNoIHtzZXQgYXJnICR2YXJzKGZpeF9ob2xkX2FsbG93X3Ruc19kZWdyYWRhdGlvbil9XX0gewotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhmaXhfaG9sZF9hbGxvd190bnNfZGVncmFkYXRpb24pXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgYXJncyAiIC1maXhIb2xkQWxsb3dTZXR1cFRuc0RlZ3JhZGUgJGFyZyIKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhmaXhfaG9sZF9hbGxvd190bnNfZGVncmFkYXRpb24pXG4iCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiB7JHZhcnMoZml4X2hvbGRfaWdub3JlX2lvcyl9IHsKLSAgICAgICAgICAgICAgICNhcHBlbmQgY29tbWFuZHMgInNldEFuYWx5c2lzTW9kZSAtaG9ub3JDbG9ja0RvbWFpbnMgdHJ1ZVxuIiAKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMoZml4X2hvbGRfaWdub3JlX2lvcylcbiIKLSMgICAgICAgICAgICAgICBhcHBlbmQgYXJncyAiIC1pZ25vcmVQYXRoR3JvdXBzRm9ySG9sZCB7aW4ycmVnIHJlZzJvdXQgaW4yb3V0fSIKLSAgICAgICAgICAgICAgIGFwcGVuZCBhcmdzICIgLWlnbm9yZVBhdGhHcm91cHNGb3JIb2xkIHtkZWZhdWx0fSIKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhmaXhfaG9sZF9pZ25vcmVfaW9zKVxuIgotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgeyRhcmdzICE9ICIifSB7Ci0gICAgICAgICAgICAgICBzZXQgY29tbWFuZCAic2V0T3B0TW9kZSAkYXJnc1xuIgotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kIHBvc3RjdHNfaG9sZCxzZXRfb3B0X21vZGUgJGNvbW1hbmRdCi0gICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0KLSAgICAgICAgICJyb3V0ZSIgewotICAgICAgICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgICAgICAgIyBTZXQgcm91dGluZyBvcHRpb25zICAuLi4KLSAgICAgICAgICAgICMgUmVjb21tZW5kYXRpb25zIGZvciBtdWx0aWN1dCB2aWEgaW5zZXJ0aW9uIGFuZCBsaXRobyBkcml2ZW4KLSAgICAgICAgICAgICMgcm91dGluZy4gIFRoZXNlIGFsbCBpbmN1ciBydW50aW1lIHBlbmFsdGllcyBidXQgaGF2ZSB5aWVsZAotICAgICAgICAgICAgIyBhZHZhbnRhZ2VzIHNvIGFyZSBpbmNsdWRlZCBoZXJlLiBUaGUgcm91dGVXaXRoTGl0aG9Ecml2ZW4gb3B0aW9uCi0gICAgICAgICAgICAjIGlzIHJlY29tbWVuZGVkIGZvciA0NW5tIGJ1dCBtYXkgYWxzbyBiZSB1c2VkIGF0IDY1bm0uIFRoZQotICAgICAgICAgICAgIyAtZHJvdXRlVXNlTXVsdGlDdXRWaWFFZmZvcnQgY2FuIGJlIHNldCB0byBoaWdoIGlmIG5lZWRlZDsKLSAgICAgICAgICAgICMgZXhwZWN0IGFuIGF2ZXJhZ2Ugb2YgNSUgY292ZXJhZ2UgaW1wcm92ZW1lbnQgd2l0aCBhbiBhdmVyYWdlIDEwJQotICAgICAgICAgICAgIyBydW50aW1lIGhpdCB2ZXJzdXMgbWVkaXVtCi0gICAgICAgICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0KLSAgICAgICAgICAgIGlmIHsoJHZhcnMoZW5hYmxlX2NwcHIpICE9ICJmYWxzZSIpIHx8ICR2YXJzKHRyYWNrX29wdCl9IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMoZW5hYmxlX2NwcHIpXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKHRyYWNrX29wdClcbiIKLSAgICAgICAgICAgICAgIHNldCBjb21tYW5kICJzZXRBbmFseXNpc01vZGUgLWNwcHIgYm90aFxuIgotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kIHJvdXRlLHNldF9hbmFseXNpc19tb2RlICRjb21tYW5kXQotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKHRyYWNrX29wdClcbiIKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgaWYgeyR2YXJzKGVuYWJsZV9zaV9hd2FyZSl9IHsKLSAgICAgICAgICAgICAgIHNldCBjb21tYW5kICJzZXREZWxheUNhbE1vZGUgLXNpQXdhcmUgdHJ1ZSAtZW5naW5lIGFhZVxuICIKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCBwb3N0cm91dGUsc2V0X2RlbGF5X2NhbF9tb2RlICRjb21tYW5kXQotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhlbmFibGVfc2lfYXdhcmUpXG4iCi0gICAgICAgICAgICAgICBpZiB7JHZhcnMoZW5hYmxlX3NzKSA9PSAicHJlX3Bvc3Ryb3V0ZSJ9IHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyA8RkY+IFZhcmlhYmxlIHZhcnMoZW5hYmxlX3NzKSBpZ25vcmVkIHdoZW4gdmFycyhlbmFibGVfc2lfYXdhcmUpIGlzIHNldFxuIgotICAgICAgICAgICAgICAgICAgc2V0IHdhcm5pbmdzKCR2YXJzKHdhcm5pbmdfY291bnQpKSAiVmFyaWFibGUgdmFycyhlbmFibGVfc3MpIGlnbm9yZWQgd2hlbiB2YXJzKGVuYWJsZV9zaV9hd2FyZSkgaXMgc2V0XG4iCi0gICAgICAgICAgICAgICAgICBpbmNyIHZhcnMod2FybmluZ19jb3VudCkKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhlbmFibGVfc2lfYXdhcmUpXG4iCi0gICAgICAgICAgICAgICBpZiB7JHZhcnMoZW5hYmxlX3NzKSA9PSAicHJlX3Bvc3Ryb3V0ZSJ9IHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMoZW5hYmxlX3NzKVxuIgotICAgICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgInNldERlbGF5Q2FsTW9kZSAtZW5naW5lIHNpZ25hbFN0b3JtIC1zaWdub2ZmIHRydWUgLXNpQXdhcmUgZmFsc2VcbiIKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCBwb3N0cm91dGUsc2V0X2RlbGF5X2NhbF9tb2RlICRjb21tYW5kXQotICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgIHNldCBjb21tYW5kICJzZXREZWxheUNhbE1vZGUgLXNpQXdhcmUgZmFsc2VcbiIKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCBwb3N0cm91dGUsc2V0X2RlbGF5X2NhbF9tb2RlICRjb21tYW5kXQotICAgICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMoZW5hYmxlX3NzKSBcInByZV9wb3N0cm91dGVcIlxuIgotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAgICAgc2V0IGFyZ3MgIiIKLSAgICAgICAgICAgIGlmIHshW2NhdGNoIHtzZXQgYXJnICR2YXJzKG11bHRpX2N1dF9lZmZvcnQpfV19IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMobXVsdGlfY3V0X2VmZm9ydClcbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBhcmdzICIgLWRyb3V0ZVVzZU11bHRpQ3V0VmlhRWZmb3J0ICRhcmciCi0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMobXVsdGlfY3V0X2VmZm9ydClcbiIKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIHshW2NhdGNoIHtzZXQgYXJnICR2YXJzKGxpdGhvX2RyaXZlbl9yb3V0aW5nKX1dfSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKGxpdGhvX2RyaXZlbl9yb3V0aW5nKVxuIgotICAgICAgICAgICAgICAgYXBwZW5kIGFyZ3MgIiAtcm91dGVXaXRoTGl0aG9Ecml2ZW4gJGFyZyIKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhsaXRob19kcml2ZW5fcm91dGluZylcbiIKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIHshW2NhdGNoIHtzZXQgYXJnICR2YXJzKGFudGVubmFfZGlvZGUpfV19IHsKLSAgICAgICAgICAgICAgIGlmIHskdmFycyhhbnRlbm5hX2Rpb2RlKSAhPSAiIn0gewotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhhbnRlbm5hX2Rpb2RlKVxuIgotICAgICAgICAgICAgICAgICAgYXBwZW5kIGFyZ3MgIiAtcm91dGVBbnRlbm5hQ2VsbE5hbWUgJGFyZyIKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBhcmdzICIgLXJvdXRlSW5zZXJ0QW50ZW5uYURpb2RlIHRydWUiCi0gICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMoYW50ZW5uYV9kaW9kZSlcbiIKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhhbnRlbm5hX2Rpb2RlKVxuIgotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgeyRhcmdzICE9ICIifSB7Ci0gICAgICAgICAgICAgICBzZXQgY29tbWFuZCAiXG5zZXROYW5vUm91dGVNb2RlICRhcmdzXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgcm91dGUsc2V0X25hbm9yb3V0ZV9tb2RlICRjb21tYW5kXQotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgeyR2YXJzKHRyYWNrX29wdCl9IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnModHJhY2tfb3B0KVxuIgotICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgInNldEV4dHJhY3RSQ01vZGUgLWVuZ2luZSBwb3N0Um91dGUiCi0gICAgICAgICAgICAgICBpZiB7IVtjYXRjaCB7c2V0IGFyZyAkdmFycyh0cXVhbnR1c19maWxlKX1dfSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKHRxdWFudHVzX2ZpbGUpXG4iCi0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiIC10UXVhbnR1c01vZGVsRmlsZSAkYXJnIgotICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKHRxdWFudHVzX2ZpbGUpXG4iCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiIC1lZmZvcnRMZXZlbCBtZWRpdW0iCi0gICAgICAgICAgICAgICBpZiB7IVtjYXRjaCB7c2V0IGFyZyAkdmFycyh0b3RhbF9jX3RocmVzaCl9XX0gewotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyh0b3RhbF9jX3RocmVzaClcbiIKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgLXRvdGFsX2NfdGggJGFyZyIKLSAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyh0b3RhbF9jX3RocmVzaClcbiIKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIGlmIHshW2NhdGNoIHtzZXQgYXJnICR2YXJzKHJlbGF0aXZlX2NfdGhyZXNoKX1dfSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKHJlbGF0aXZlX2NfdGhyZXNoKVxuIgotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAtcmVsYXRpdmVfY190aCAkYXJnIgotICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKHJlbGF0aXZlX2NfdGhyZXNoKVxuIgotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgaWYgeyFbY2F0Y2gge3NldCBhcmcgJHZhcnMoY291cGxpbmdfY190aHJlc2gpfV19IHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMoY291cGxpbmdfY190aHJlc2gpXG4iCi0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiIC1jb3VwbGluZ19jX3RoICRhcmciCi0gICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMocmVsYXRpdmVfY190aHJlc2gpXG4iCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICBpZiB7IVtjYXRjaCB7c2V0IGFyZyAkdmFycyhxcmNfbGF5ZXJfbWFwKX1dfSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKHFyY19sYXllcl9tYXApXG4iCi0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiIC1sZWZUZWNoRmlsZU1hcCAkYXJnIgotICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKHFyY19sYXllcl9tYXApXG4iCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgcG9zdHJvdXRlLHNldF9leHRyYWN0X3JjX21vZGUgJGNvbW1hbmRdCi0gICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0KLSAgICAgICAgICJwb3N0cm91dGUiIHsKLSAgICAgICAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICAgICAgICMgU2V0IGV4dHJhY3Rpb24gZWZmb3J0IGZvciBwb3N0cm91dGUgb3B0aW1pemF0aW9uCi0gICAgICAgICAgICAjIEVuYWJsZSBzaWduYWxTdG9ybSBpZiByZXF1ZXN0ZWQKLSAgICAgICAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLQotICAgICAgICAgICAgc2V0IHByb2Nlc3MgW3JlZ3N1YiAibm0iICR2YXJzKHByb2Nlc3MpICIiXQotICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhwcm9jZXNzKVxuIgotICAgICAgICAgICAgaWYge1tsaW5kZXggW3NwbGl0ICR2YXJzKHZlcnNpb24pICIuIl0gIDBdIDwgMTV9IHsKLSAgICAgICAgICAgICAgIGlmIHskdmFycyhoaWdoX3RpbWluZ19lZmZvcnQpfSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKGhpZ2hfdGltaW5nX2VmZm9ydClcbiIKLSAgICAgICAgICAgICAgICAgIGlmIHshW3JlZ2V4cCAiOS4xIiAkdmFycyh2ZXJzaW9uKV19IHsKLSAgICAgICAgICAgICAgICAgICAgIHNldCBjb21tYW5kICJzZXREZXNpZ25Nb2RlIC1wcm9jZXNzICRwcm9jZXNzIC1mbG93RWZmb3J0IGhpZ2hcbiIKLSAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICBzZXQgY29tbWFuZCAic2V0RGVzaWduTW9kZSAtcHJvY2VzcyAkcHJvY2Vzc1xuIgotICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kIHBvc3Ryb3V0ZSxzZXRfZGVzaWduX21vZGUgJGNvbW1hbmRdCi0gICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgInNldE9wdE1vZGUgLXVuZml4Q2xrSW5zdEZvck9wdCB0cnVlXG4iCi0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgInNldERlc2lnbk1vZGUgLXByb2Nlc3MgJHByb2Nlc3NcbiIKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCBwb3N0cm91dGUsc2V0X2Rlc2lnbl9tb2RlICRjb21tYW5kXQotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbbGluZGV4IFtGRl9FREk6OnNldF9kZXNpZ25fbW9kZV0gMF0KLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyBbbGluZGV4IFtGRl9FREk6OnNldF9kZXNpZ25fbW9kZV0gMV0KLSAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgW2xpbmRleCBbRkZfRURJOjpzZXRfZGVzaWduX21vZGVdIDJdCi0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIHNldCBjb21tYW5kICJzZXRFeHRyYWN0UkNNb2RlIC1lbmdpbmUgcG9zdFJvdXRlIgotICAgICAgICAgICAgaWYgeyFbY2F0Y2gge3NldCBhcmcgJHZhcnMocG9zdHJvdXRlX2V4dHJhY3Rpb25fZWZmb3J0KX1dfSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKHBvc3Ryb3V0ZV9leHRyYWN0aW9uX2VmZm9ydClcbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgLWVmZm9ydExldmVsICRhcmciCi0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMocG9zdHJvdXRlX2V4dHJhY3Rpb25fZWZmb3J0KVxuIgotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgeyFbY2F0Y2gge3NldCBhcmcgJHZhcnModG90YWxfY190aHJlc2gpfV19IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnModG90YWxfY190aHJlc2gpXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiIC10b3RhbF9jX3RoICRhcmciCi0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnModG90YWxfY190aHJlc2gpXG4iCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiB7IVtjYXRjaCB7c2V0IGFyZyAkdmFycyhyZWxhdGl2ZV9jX3RocmVzaCl9XX0gewotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhyZWxhdGl2ZV9jX3RocmVzaClcbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgLXJlbGF0aXZlX2NfdGggJGFyZyIKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhyZWxhdGl2ZV9jX3RocmVzaClcbiIKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIHshW2NhdGNoIHtzZXQgYXJnICR2YXJzKGNvdXBsaW5nX2NfdGhyZXNoKX1dfSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKGNvdXBsaW5nX2NfdGhyZXNoKVxuIgotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAtY291cGxpbmdfY190aCAkYXJnIgotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKHJlbGF0aXZlX2NfdGhyZXNoKVxuIgotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgeyFbY2F0Y2gge3NldCBhcmcgJHZhcnMocXJjX2xheWVyX21hcCl9XX0gewotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhxcmNfbGF5ZXJfbWFwKVxuIgotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAtbGVmVGVjaEZpbGVNYXAgJGFyZyIKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhxcmNfbGF5ZXJfbWFwKVxuIgotICAgICAgICAgICAgfQotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIlxuIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kIHBvc3Ryb3V0ZSxzZXRfZXh0cmFjdF9yY19tb2RlICRjb21tYW5kXQotICAgICAgICAgICAgIAotCi0gICAgICAgICAgICBzZXQgYXJncyAiIgotICAgICAgICAgICAgaWYgeygkdmFycyhlbmFibGVfb2N2KSA9PSAicHJlX3Bvc3Ryb3V0ZSIpIHx8ICgkdmFycyhlbmFibGVfb2N2KSA9PSAicHJlX3Bvc3RjdHMiKX0gewotICAgICAgICAgICAgICAgaWYgeyR2YXJzKGZsb3cpICE9ICJkZWZhdWx0In0gewotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhlbmFibGVfb2N2KVxuIgotICAgICAgICAgICAgICAgICAgYXBwZW5kIGFyZ3MgIi1hbmFseXNpc1R5cGUgb25DaGlwVmFyaWF0aW9uICIKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIGlmIHskdmFycyhlbmFibGVfYW9jdil9IHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMoZW5hYmxlX2FvY3YpXG4iCi0gICAgICAgICAgICAgICAgICBhcHBlbmQgYXJncyAiLWFvY3YgdHJ1ZSAiCi0gICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMoZW5hYmxlX2FvY3YpXG4iCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICBpZiB7JHZhcnMoZW5hYmxlX3NvY3YpfSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKGVuYWJsZV9zb2N2KVxuIgotICAgICAgICAgICAgICAgICAgYXBwZW5kIGFyZ3MgIi1zb2N2IHRydWUgIgotICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKGVuYWJsZV9zb2N2KVxuIgotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKGVuYWJsZV9vY3YpIFwicHJlX3Bvc3Ryb3V0ZVwiXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhlbmFibGVfYW9jdikgXCJ0cnVlXCJcbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKGVuYWJsZV9zb2N2KSBcInRydWVcIlxuIgotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgeyR2YXJzKGVuYWJsZV9jcHByKSAhPSAiZmFsc2UifSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKGVuYWJsZV9jcHByKVxuIgotICAgICAgICAgICAgICAgYXBwZW5kIGFyZ3MgIi1jcHByICR2YXJzKGVuYWJsZV9jcHByKSAiCi0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMoZW5hYmxlX2NwcHIpXG4iCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiB7JGFyZ3MgIT0gIiJ9IHsKLSAgICAgICAgICAgICAgIHNldCBjb21tYW5kICJzZXRBbmFseXNpc01vZGUgJGFyZ3NcbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCBwb3N0cm91dGUsc2V0X2FuYWx5c2lzX21vZGUgJGNvbW1hbmRdCi0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGlmIHtbcmVnZXhwICI5LjEiICR2YXJzKHZlcnNpb24pXX0gewotICAgICAgICAgICAgICAgaWYgeyR2YXJzKGVuYWJsZV9zcykgPT0gInByZV9wb3N0cm91dGUifSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKGVuYWJsZV9zcylcbiIKLSAgICAgICAgICAgICAgICAgIHNldCBjb21tYW5kICJzZXREZWxheUNhbE1vZGUgLWVuZ2luZSBzaWduYWxTdG9ybSAtc2lnbm9mZiB0cnVlICIKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCBwb3N0cm91dGUsc2V0X2RlbGF5X2NhbF9tb2RlICRjb21tYW5kXQotICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKGVuYWJsZV9zcykgXCJwcmVfcG9zdHJvdXRlXCJcbiIKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0gZWxzZSB7IAotICAgICAgICAgICAgICAgaWYgeyR2YXJzKGVuYWJsZV9zaV9hd2FyZSl9IHsKLSAgICAgICAgICAgICAgICAgIHNldCBjb21tYW5kICJzZXREZWxheUNhbE1vZGUgLXNpQXdhcmUgdHJ1ZSAtZW5naW5lIGFhZVxuICIKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCBwb3N0cm91dGUsc2V0X2RlbGF5X2NhbF9tb2RlICRjb21tYW5kXQotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhlbmFibGVfc2lfYXdhcmUpXG4iCi0gICAgICAgICAgICAgICAgICBpZiB7JHZhcnMoZW5hYmxlX3NzKSA9PSAicHJlX3Bvc3Ryb3V0ZSJ9IHsKLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyA8RkY+IFZhcmlhYmxlIHZhcnMoZW5hYmxlX3NzKSBpZ25vcmVkIHdoZW4gdmFycyhlbmFibGVfc2lfYXdhcmUpIGlzIHNldFxuIgotICAgICAgICAgICAgICAgICAgICAgc2V0IHdhcm5pbmdzKCR2YXJzKHdhcm5pbmdfY291bnQpKSAiVmFyaWFibGUgdmFycyhlbmFibGVfc3MpIGlnbm9yZWQgd2hlbiB2YXJzKGVuYWJsZV9zaV9hd2FyZSkgaXMgc2V0XG4iCi0gICAgICAgICAgICAgICAgICAgICBpbmNyIHZhcnMod2FybmluZ19jb3VudCkKLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhlbmFibGVfc2lfYXdhcmUpXG4iCi0gICAgICAgICAgICAgICAgICBpZiB7JHZhcnMoZW5hYmxlX3NzKSA9PSAicHJlX3Bvc3Ryb3V0ZSJ9IHsKLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMoZW5hYmxlX3NzKVxuIgotICAgICAgICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgInNldERlbGF5Q2FsTW9kZSAtZW5naW5lIHNpZ25hbFN0b3JtIC1zaWdub2ZmIHRydWUgLXNpQXdhcmUgZmFsc2VcbiIKLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCBwb3N0cm91dGUsc2V0X2RlbGF5X2NhbF9tb2RlICRjb21tYW5kXQotICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgIHNldCBjb21tYW5kICJzZXREZWxheUNhbE1vZGUgLXNpQXdhcmUgZmFsc2VcbiIKLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCBwb3N0cm91dGUsc2V0X2RlbGF5X2NhbF9tb2RlICRjb21tYW5kXQotICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMoZW5hYmxlX3NzKSBcInByZV9wb3N0cm91dGVcIlxuIgotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAgfQotCi0gICAgICAgICAicG9zdHJvdXRlX2hvbGQiIHsKLSAgICAgICAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICAgICAgICMgU2V0IGhvbGQgZml4aW5nIG9wdGlvbnMgLi4uCi0gICAgICAgICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0KLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbbGluZGV4IFtGRl9FREk6OnNldF9kZXNpZ25fbW9kZV0gMF0KLSAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyBbbGluZGV4IFtGRl9FREk6OnNldF9kZXNpZ25fbW9kZV0gMV0KLSAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgW2xpbmRleCBbRkZfRURJOjpzZXRfZGVzaWduX21vZGVdIDJdCi0KLSAgICAgICAgICAgIHNldCBjb21tYW5kICJzZXRFeHRyYWN0UkNNb2RlIC1lbmdpbmUgcG9zdFJvdXRlIgotICAgICAgICAgICAgaWYgeyFbY2F0Y2gge3NldCBhcmcgJHZhcnMocG9zdHJvdXRlX2V4dHJhY3Rpb25fZWZmb3J0KX1dfSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKHBvc3Ryb3V0ZV9leHRyYWN0aW9uX2VmZm9ydClcbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgLWVmZm9ydExldmVsICRhcmciCi0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMocG9zdHJvdXRlX2V4dHJhY3Rpb25fZWZmb3J0KVxuIgotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgeyFbY2F0Y2gge3NldCBhcmcgJHZhcnModG90YWxfY190aHJlc2gpfV19IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnModG90YWxfY190aHJlc2gpXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiIC10b3RhbF9jX3RoICRhcmciCi0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnModG90YWxfY190aHJlc2gpXG4iCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiB7IVtjYXRjaCB7c2V0IGFyZyAkdmFycyhyZWxhdGl2ZV9jX3RocmVzaCl9XX0gewotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhyZWxhdGl2ZV9jX3RocmVzaClcbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgLXJlbGF0aXZlX2NfdGggJGFyZyIKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhyZWxhdGl2ZV9jX3RocmVzaClcbiIKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIHshW2NhdGNoIHtzZXQgYXJnICR2YXJzKGNvdXBsaW5nX2NfdGhyZXNoKX1dfSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKGNvdXBsaW5nX2NfdGhyZXNoKVxuIgotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAtY291cGxpbmdfY190aCAkYXJnIgotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKGNvdXBsaW5nX2NfdGhyZXNoKVxuIgotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgeyFbY2F0Y2gge3NldCBhcmcgJHZhcnMocXJjX2xheWVyX21hcCl9XX0gewotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhxcmNfbGF5ZXJfbWFwKVxuIgotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAtbGVmVGVjaEZpbGVNYXAgJGFyZyIKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhxcmNfbGF5ZXJfbWFwKVxuIgotICAgICAgICAgICAgfQotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIlxuIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kIHBvc3Ryb3V0ZV9ob2xkLHNldF9leHRyYWN0X3JjX21vZGUgJGNvbW1hbmRdCi0gICAgICAgICAgICBzZXQgY29tbWFuZCAiIiAKLSAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhkZWxheV9jZWxscyldfSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKGRlbGF5X2NlbGxzKVxuIgotICAgICAgICAgICAgICAgZm9yZWFjaCBkZWxheV9jZWxsICR2YXJzKGRlbGF5X2NlbGxzKSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAic2V0RG9udFVzZSAkZGVsYXlfY2VsbCBmYWxzZVxuIgotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKGRlbGF5X2NlbGxzKVxuIgotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgeyRjb21tYW5kICE9ICIifSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgcG9zdHJvdXRlX2hvbGQsc2V0X2RvbnRfdXNlX21vZGUgJGNvbW1hbmRdCi0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIHNldCBhcmdzICIiCi0gICAgICAgICAgICBpZiB7IVtjYXRjaCB7c2V0IGFyZyAkdmFycyhmaXhfaG9sZF9hbGxvd190bnNfZGVncmFkYXRpb24pfV19IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMoZml4X2hvbGRfYWxsb3dfdG5zX2RlZ3JhZGF0aW9uKVxuIgotICAgICAgICAgICAgICAgYXBwZW5kIGFyZ3MgIiAtZml4SG9sZEFsbG93U2V0dXBUbnNEZWdyYWRlICRhcmciCi0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMoZml4X2hvbGRfYWxsb3dfdG5zX2RlZ3JhZGF0aW9uKVxuIgotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgeyR2YXJzKGZpeF9ob2xkX2lnbm9yZV9pb3MpfSB7Ci0gICAgICAgICAgICAgICAjYXBwZW5kIGNvbW1hbmRzICJzZXRBbmFseXNpc01vZGUgLWhvbm9yQ2xvY2tEb21haW5zIHRydWVcbiIgCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKGZpeF9ob2xkX2lnbm9yZV9pb3MpXG4iCi0jICAgICAgICAgICAgICAgYXBwZW5kIGFyZ3MgIiAtaWdub3JlUGF0aEdyb3Vwc0ZvckhvbGQge2luMnJlZyByZWcyb3V0IGluMm91dH0iCi0gICAgICAgICAgICAgICBhcHBlbmQgYXJncyAiIC1pZ25vcmVQYXRoR3JvdXBzRm9ySG9sZCB7ZGVmYXVsdH0iCi0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMoZml4X2hvbGRfaWdub3JlX2lvcylcbiIKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIHskYXJncyAhPSAiIn0gewotICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgInNldE9wdE1vZGUgJGFyZ3NcbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCBwb3N0cm91dGVfaG9sZCxzZXRfb3B0X21vZGUgJGNvbW1hbmRdCi0gICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0KLSAgICAgICAgICJwb3N0cm91dGVfc2kiIHsKLSAgICAgICAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICAgICAgICMgU2V0IG5vaXNlLCBleHRyYWN0aW9uLCBhbmQgU0kgb3B0aW9ucyAuLi4KLSAgICAgICAgICAgICMgRW5hYmxlIHNpZ25hbFN0b3JtIGlmIHJlcXVlc3RlZAotICAgICAgICAgICAgIyBFbmFibGUgb25DaGlwVmFyaWF0aW9uIChpZiBNTU1DKQotICAgICAgICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCi0gICAgICAgICAgICBzZXQgcHJvY2VzcyBbcmVnc3ViICJubSIgJHZhcnMocHJvY2VzcykgIiJdCi0gICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKHByb2Nlc3MpXG4iCi0gICAgICAgICAgICBpZiB7JHZhcnMoaGlnaF90aW1pbmdfZWZmb3J0KX0gewotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhoaWdoX3RpbWluZ19lZmZvcnQpXG4iCi0gICAgICAgICAgICAgICBpZiB7IVtyZWdleHAgIjkuMSIgJHZhcnModmVyc2lvbildfSB7Ci0gICAgICAgICAgICAgICAgICBzZXQgY29tbWFuZCAic2V0RGVzaWduTW9kZSAtcHJvY2VzcyAkcHJvY2VzcyAtZmxvd0VmZm9ydCBoaWdoXG4iCi0gICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgInNldERlc2lnbk1vZGUgLXByb2Nlc3MgJHByb2Nlc3NcbiIKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBzZXQgY29tbWFuZCAic2V0RGVzaWduTW9kZSAtcHJvY2VzcyAkcHJvY2Vzc1xuIgotICAgICAgICAgICAgfQotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kIHBvc3Ryb3V0ZV9zaSxzZXRfZGVzaWduX21vZGUgJGNvbW1hbmRdCi0KLSAgICAgICAgICAgIHNldCBjb21tYW5kICJzZXRFeHRyYWN0UkNNb2RlIC1jb3VwbGVkIHRydWUiCi0gICAgICAgICAgICBpZiB7IVtjYXRjaCB7c2V0IGFyZyAkdmFycyh0b3RhbF9jX3RocmVzaCl9XX0gewotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyh0b3RhbF9jX3RocmVzaClcbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgLXRvdGFsX2NfdGggJGFyZyIKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyh0b3RhbF9jX3RocmVzaClcbiIKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIHshW2NhdGNoIHtzZXQgYXJnICR2YXJzKHJlbGF0aXZlX2NfdGhyZXNoKX1dfSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKHJlbGF0aXZlX2NfdGhyZXNoKVxuIgotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAtcmVsYXRpdmVfY190aCAkYXJnIgotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKHJlbGF0aXZlX2NfdGhyZXNoKVxuIgotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgeyFbY2F0Y2gge3NldCBhcmcgJHZhcnMoY291cGxpbmdfY190aHJlc2gpfV19IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMoY291cGxpbmdfY190aHJlc2gpXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiIC1jb3VwbGluZ19jX3RoICRhcmciCi0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMoY291cGxpbmdfY190aHJlc2gpXG4iCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiB7IVtjYXRjaCB7c2V0IGFyZyAkdmFycyhxcmNfbGF5ZXJfbWFwKX1dfSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKHFyY19sYXllcl9tYXApXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiIC1sZWZUZWNoRmlsZU1hcCAkYXJnIgotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKHFyY19sYXllcl9tYXApXG4iCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiXG4iCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgcG9zdHJvdXRlX3NpLHNldF9leHRyYWN0X3JjX21vZGUgJGNvbW1hbmRdCi0KLSAgICAgICAgICAgIHNldCBhcmdzICIiCi0gICAgICAgICAgICBpZiB7IVtjYXRjaCB7c2V0IGFyZyAkdmFycyhkZWx0YV9kZWxheV90aHJlc2hvbGQpfV19IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMoZGVsdGFfZGVsYXlfdGhyZXNob2xkKVxuIgotICAgICAgICAgICAgICAgYXBwZW5kIGFyZ3MgIiAtZGVsdGFEZWxheVRocmVzaG9sZCAkYXJnIgotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKGRlbHRhX2RlbGF5X3RocmVzaG9sZClcbiIKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIHshW2NhdGNoIHtzZXQgYXJnICR2YXJzKGNlbHRpY19zZXR0aW5ncyl9XX0gewotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhjZWx0aWNfc2V0dGluZ3MpXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgYXJncyAiIC1pbnNDZWx0SUNQcmVUY2wgXCIkYXJnXCIiCi0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMoY2VsdGljX3NldHRpbmdzKVxuIgotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgeyFbY2F0Y2gge3NldCBhcmcgJHZhcnMoc2lfYW5hbHlzaXNfdHlwZSl9XX0gewotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhzaV9hbmFseXNpc190eXBlKVxuIgotICAgICAgICAgICAgICAgYXBwZW5kIGFyZ3MgIiAtYW5hbHlzaXNUeXBlICRhcmciCi0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMoc2lfYW5hbHlzaXNfdHlwZSlcbiIKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIHskdmFycyhoaWdoX3RpbWluZ19lZmZvcnQpICYmIFtyZWdleHAgIjkuMSIgJHZhcnModmVyc2lvbildfSB7Ci0jICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhoaWdoX3RpbWluZ19lZmZvcnQpXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgYXJncyAiIC1hY2NlcHRhYmxlV05TIDAiCi0gICAgICAgICAgICB9IGVsc2VpZiB7W2luZm8gZXhpc3RzIHZhcnMoYWNjZXB0YWJsZV93bnMpXX0gewotICAgICAgICAgICAgICAgYXBwZW5kIGFyZ3MgIiAtYWNjZXB0YWJsZVdOUyAkdmFycyhhY2NlcHRhYmxlX3ducykiCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiB7JGFyZ3MgIT0gIiJ9IHsKLSAgICAgICAgICAgICAgIHNldCBjb21tYW5kICJzZXRTSU1vZGUgJGFyZ3NcbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCBwb3N0cm91dGVfc2ksc2V0X3NpX21vZGUgJGNvbW1hbmRdCi0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIHNldCBhcmdzICIiCi0gICAgICAgICAgICBpZiB7JHZhcnMoZW5hYmxlX29jdikgPT0gInByZV9wb3N0cm91dGVfc2kifSB7Ci0gICAgICAgICAgICAgICBpZiB7JHZhcnMoZmxvdykgIT0gImRlZmF1bHQifSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKGVuYWJsZV9vY3YpXG4iCi0gICAgICAgICAgICAgICAgICBhcHBlbmQgYXJncyAiLWFuYWx5c2lzVHlwZSBvbkNoaXBWYXJpYXRpb24gIgotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgaWYgeyR2YXJzKGVuYWJsZV9hb2N2KX0gewotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhlbmFibGVfYW9jdilcbiIKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBhcmdzICItYW9jdiB0cnVlICIKLSAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhlbmFibGVfYW9jdilcbiIKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIGlmIHskdmFycyhlbmFibGVfc29jdil9IHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMoZW5hYmxlX3NvY3YpXG4iCi0gICAgICAgICAgICAgICAgICBhcHBlbmQgYXJncyAiLXNvY3YgdHJ1ZSAiCi0gICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMoZW5hYmxlX3NvY3YpXG4iCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMoZW5hYmxlX29jdikgXCJwcmVfcG9zdHJvdXRlX3NpXCJcbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKGVuYWJsZV9hb2N2KSBcInRydWVcIlxuIgotICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMoZW5hYmxlX3NvY3YpIFwidHJ1ZVwiXG4iCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiB7JHZhcnMoZW5hYmxlX2NwcHIpICE9ICJmYWxzZSJ9IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMoZW5hYmxlX2NwcHIpXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgYXJncyAiLWNwcHIgJHZhcnMoZW5hYmxlX2NwcHIpICIKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhlbmFibGVfY3BwcilcbiIKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIHskYXJncyAhPSAiIn0gewotICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgInNldEFuYWx5c2lzTW9kZSAkYXJnc1xuIgotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kIHBvc3Ryb3V0ZV9zaSxzZXRfYW5hbHlzaXNfbW9kZSAkY29tbWFuZF0KLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgaWYgeyR2YXJzKGVuYWJsZV9zcykgPT0gInByZV9wb3N0cm91dGVfc2kifSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKGVuYWJsZV9zcylcbiIKLSAgICAgICAgICAgICAgIHNldCBjb21tYW5kICJzZXREZWxheUNhbE1vZGUgLWVuZ2luZSBzaWduYWxTdG9ybVxuIgotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kIHBvc3Ryb3V0ZV9zaSxzZXRfZGVsYXlfY2FsX21vZGUgJGNvbW1hbmRdCi0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMoZW5hYmxlX3NzKSBcInByZV9wb3N0cm91dGVfc2lcIlxuIgotICAgICAgICAgICAgfQotICAgICAgICAgfQotCi0gICAgICAgICAicG9zdHJvdXRlX3NpX2hvbGQiIHsKLSAgICAgICAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICAgICAgICMgU2V0IGhvbGQgZml4aW5nIG9wdGlvbnMgLi4uCi0gICAgICAgICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0KLSAgICAgICAgICAgIHNldCBwcm9jZXNzIFtyZWdzdWIgIm5tIiAkdmFycyhwcm9jZXNzKSAiIl0KLSAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMocHJvY2VzcylcbiIKLSAgICAgICAgICAgIGlmIHtbbGluZGV4IFtzcGxpdCAkdmFycyh2ZXJzaW9uKSAiLiJdICAwXSA8IDE1fSB7Ci0gICAgICAgICAgICAgICBpZiB7JHZhcnMoaGlnaF90aW1pbmdfZWZmb3J0KX0gewotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhoaWdoX3RpbWluZ19lZmZvcnQpXG4iCi0gICAgICAgICAgICAgICAgICBpZiB7IVtyZWdleHAgIjkuMSIgJHZhcnModmVyc2lvbildfSB7Ci0gICAgICAgICAgICAgICAgICAgICBzZXQgY29tbWFuZCAic2V0RGVzaWduTW9kZSAtcHJvY2VzcyAkcHJvY2VzcyAtZmxvd0VmZm9ydCBoaWdoXG4iCi0gICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgInNldERlc2lnbk1vZGUgLXByb2Nlc3MgJHByb2Nlc3NcbiIKLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICBzZXQgY29tbWFuZCAic2V0RGVzaWduTW9kZSAtcHJvY2VzcyAkcHJvY2Vzc1xuIgotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIGlmIHtbc3RyaW5nIHRvbG93ZXIgJHZhcnMoZmxvd19lZmZvcnQpXSAhPSAic3RhbmRhcmQifSB7Ci0gICAgICAgICAgICAgICAgICBzZXQgY29tbWFuZCAic2V0RGVzaWduTW9kZSAtcHJvY2VzcyAkcHJvY2VzcyAtZmxvd0VmZm9ydCBbc3RyaW5nIHRvbG93ZXIgJHZhcnMoZmxvd19lZmZvcnQpXVxuIgotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhmbG93X2VmZm9ydClcbiIKLSAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICBzZXQgY29tbWFuZCAic2V0RGVzaWduTW9kZSAtcHJvY2VzcyAkcHJvY2Vzc1xuIgotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kIHBvc3Ryb3V0ZV9zaV9ob2xkLHNldF9kZXNpZ25fbW9kZSAkY29tbWFuZF0KLQotICAgICAgICAgICAgc2V0IGNvbW1hbmQgIiIKLSAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhkZWxheV9jZWxscyldfSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKGRlbGF5X2NlbGxzKVxuIgotICAgICAgICAgICAgICAgZm9yZWFjaCBkZWxheV9jZWxsICR2YXJzKGRlbGF5X2NlbGxzKSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAic2V0RG9udFVzZSAkZGVsYXlfY2VsbCBmYWxzZVxuIgotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKGRlbGF5X2NlbGxzKVxuIgotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgeyRjb21tYW5kICE9ICIifSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgcG9zdHJvdXRlX3NpX2hvbGQsc2V0X2RvbnRfdXNlICRjb21tYW5kXQotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBzZXQgYXJncyAiIgotICAgICAgICAgICAgaWYgeyFbY2F0Y2gge3NldCBhcmcgJHZhcnMoZml4X2hvbGRfYWxsb3dfdG5zX2RlZ3JhZGF0aW9uKX1dfSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKGZpeF9ob2xkX2FsbG93X3Ruc19kZWdyYWRhdGlvbilcbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBhcmdzICIgLWZpeEhvbGRBbGxvd1NldHVwVG5zRGVncmFkZSAkYXJnIgotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKGZpeF9ob2xkX2FsbG93X3Ruc19kZWdyYWRhdGlvbilcbiIKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIHskdmFycyhmaXhfaG9sZF9pZ25vcmVfaW9zKX0gewotICAgICAgICAgICAgICAgI2FwcGVuZCBjb21tYW5kcyAic2V0QW5hbHlzaXNNb2RlIC1ob25vckNsb2NrRG9tYWlucyB0cnVlXG4iIAotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhmaXhfaG9sZF9pZ25vcmVfaW9zKVxuIgotIyAgICAgICAgICAgICAgIGFwcGVuZCBhcmdzICIgLWlnbm9yZVBhdGhHcm91cHNGb3JIb2xkIHtpbjJyZWcgcmVnMm91dCBpbjJvdXR9IgotICAgICAgICAgICAgICAgYXBwZW5kIGFyZ3MgIiAtaWdub3JlUGF0aEdyb3Vwc0ZvckhvbGQge2RlZmF1bHR9IgotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKGZpeF9ob2xkX2lnbm9yZV9pb3MpXG4iCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiB7JGFyZ3MgIT0gIiJ9IHsKLSAgICAgICAgICAgICAgIHNldCBjb21tYW5kICJzZXRPcHRNb2RlICRhcmdzXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgcG9zdHJvdXRlX3NpX2hvbGQsc2V0X29wdF9tb2RlICRjb21tYW5kXQotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAgICAgICAjIFNldCBub2lzZSwgZXh0cmFjdGlvbiwgYW5kIFNJIG9wdGlvbnMgLi4uCi0gICAgICAgICAgICAjIEVuYWJsZSBzaWduYWxTdG9ybSBpZiByZXF1ZXN0ZWQKLSAgICAgICAgICAgICMgRW5hYmxlIG9uQ2hpcFZhcmlhdGlvbiAoaWYgTU1NQykKLSAgICAgICAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLQotICAgICAgICAgICAgc2V0IGNvbW1hbmQgInNldEV4dHJhY3RSQ01vZGUgLWNvdXBsZWQgdHJ1ZSIKLSAgICAgICAgICAgIGlmIHshW2NhdGNoIHtzZXQgYXJnICR2YXJzKHRvdGFsX2NfdGhyZXNoKX1dfSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKHRvdGFsX2NfdGhyZXNoKVxuIgotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAtdG90YWxfY190aCAkYXJnIgotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKHRvdGFsX2NfdGhyZXNoKVxuIgotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgeyFbY2F0Y2gge3NldCBhcmcgJHZhcnMocmVsYXRpdmVfY190aHJlc2gpfV19IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMocmVsYXRpdmVfY190aHJlc2gpXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiIC1yZWxhdGl2ZV9jX3RoICRhcmciCi0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMocmVsYXRpdmVfY190aHJlc2gpXG4iCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiB7IVtjYXRjaCB7c2V0IGFyZyAkdmFycyhjb3VwbGluZ19jX3RocmVzaCl9XX0gewotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhjb3VwbGluZ19jX3RocmVzaClcbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgLWNvdXBsaW5nX2NfdGggJGFyZyIKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhjb3VwbGluZ19jX3RocmVzaClcbiIKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIHshW2NhdGNoIHtzZXQgYXJnICR2YXJzKHFyY19sYXllcl9tYXApfV19IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMocXJjX2xheWVyX21hcClcbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgLWxlZlRlY2hGaWxlTWFwICRhcmciCi0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMocXJjX2xheWVyX21hcClcbiIKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJcbiIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCBwb3N0cm91dGVfc2lfaG9sZCxzZXRfZXh0cmFjdF9yY19tb2RlICRjb21tYW5kXQotCi0gICAgICAgICAgICBzZXQgYXJncyAiIgotICAgICAgICAgICAgaWYgeyFbY2F0Y2gge3NldCBhcmcgJHZhcnMoZGVsdGFfZGVsYXlfdGhyZXNob2xkKX1dfSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKGRlbHRhX2RlbGF5X3RocmVzaG9sZClcbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBhcmdzICIgLWRlbHRhRGVsYXlUaHJlc2hvbGQgJGFyZyIKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhkZWx0YV9kZWxheV90aHJlc2hvbGQpXG4iCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiB7IVtjYXRjaCB7c2V0IGFyZyAkdmFycyhjZWx0aWNfc2V0dGluZ3MpfV19IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMoY2VsdGljX3NldHRpbmdzKVxuIgotICAgICAgICAgICAgICAgYXBwZW5kIGFyZ3MgIiAtaW5zQ2VsdElDUHJlVGNsIFwiJGFyZ1wiIgotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKGNlbHRpY19zZXR0aW5ncylcbiIKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIHshW2NhdGNoIHtzZXQgYXJnICR2YXJzKHNpX2FuYWx5c2lzX3R5cGUpfV19IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMoc2lfYW5hbHlzaXNfdHlwZSlcbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBhcmdzICIgLWFuYWx5c2lzVHlwZSAkYXJnIgotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKHNpX2FuYWx5c2lzX3R5cGUpXG4iCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiB7JHZhcnMoaGlnaF90aW1pbmdfZWZmb3J0KSAmJiBbcmVnZXhwICI5LjEiICR2YXJzKHZlcnNpb24pXX0gewotIyAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMoaGlnaF90aW1pbmdfZWZmb3J0KVxuIgotICAgICAgICAgICAgICAgYXBwZW5kIGFyZ3MgIiAtYWNjZXB0YWJsZVdOUyAwIgotICAgICAgICAgICAgfSBlbHNlaWYge1tpbmZvIGV4aXN0cyB2YXJzKGFjY2VwdGFibGVfd25zKV19IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBhcmdzICIgLWFjY2VwdGFibGVXTlMgJHZhcnMoYWNjZXB0YWJsZV93bnMpIgotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgeyRhcmdzICE9ICIifSB7Ci0gICAgICAgICAgICAgICBzZXQgY29tbWFuZCAic2V0U0lNb2RlICRhcmdzXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgcG9zdHJvdXRlX3NpX2hvbGQsc2V0X3NpX21vZGUgJGNvbW1hbmRdCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiB7JHZhcnMoZW5hYmxlX3NzKSA9PSAicHJlX3Bvc3Ryb3V0ZV9zaSJ9IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMoZW5hYmxlX3NzKVxuIgotICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgInNldERlbGF5Q2FsTW9kZSAtZW5naW5lIHNpZ25hbFN0b3JtXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgcG9zdHJvdXRlX3NpX2hvbGQsc2V0X2RlbGF5X2NhbF9tb2RlICRjb21tYW5kXQotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKGVuYWJsZV9zcykgXCJwcmVfcG9zdHJvdXRlX3NpXCJcbiIKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIHskdmFycyhlbmFibGVfb2N2KSA9PSAicHJlX3Bvc3Ryb3V0ZV9zaSJ9ICB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKGVuYWJsZV9vY3YpXG4iCi0gICAgICAgICAgICAgICBpZiB7JHZhcnMoZmxvdykgIT0gImRlZmF1bHQifSB7Ci0gICAgICAgICAgICAgICAgICBzZXQgY29tbWFuZCAic2V0QW5hbHlzaXNNb2RlIC1hbmFseXNpc1R5cGUgb25DaGlwVmFyaWF0aW9uXG4iCi0gICAgICAgICAgICAgICAgICBpZiB7JHZhcnMoZW5hYmxlX2FvY3YpfSB7Ci0gICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKGVuYWJsZV9hb2N2KVxuIgotICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIi1hb2N2IHRydWUgIgotICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKGVuYWJsZV9hb2N2KVxuIgotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgaWYgeyR2YXJzKGVuYWJsZV9zb2N2KX0gewotICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhlbmFibGVfc29jdilcbiIKLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICItc29jdiB0cnVlICIKLSAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhlbmFibGVfc29jdilcbiIKLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCBwb3N0cm91dGVfc2lfaG9sZCxzZXRfYW5hbHlzaXNfbW9kZSAkY29tbWFuZF0KLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhlbmFibGVfb2N2KSBcInByZV9wb3N0cm91dGVfc2lcIlxuIgotICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMoZW5hYmxlX2FvY3YpIFwidHJ1ZVwiXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhlbmFibGVfc29jdikgXCJ0cnVlXCJcbiIKLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0KLQotICAgICAgICAgInNpZ25vZmYiIHsKLSAgICAgICAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICAgICAgICMgRm9yIHRoZSBkZWZhdWx0IGZsb3csIHN3aXRjaCB0byBNTU1DIGZvciBmaW5hbCBTVEEgdG8gc3VwcG9ydAotICAgICAgICAgICAgIyBtdWx0aXBsZSBSQyBjb3JuZXJzLiAgQWxzbywgZW5hYmxlIENDRSAoc2lnbm9mZikgZXh0cmFjdGlvbiBpZgotICAgICAgICAgICAgIyB0aGUgUVJDIHRlY2hmaWxlIGV4aXN0cwotICAgICAgICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgICAgICAgaWYgeyR2YXJzKGZsb3cpID09ICJkZWZhdWx0In0gewotICAgICAgICAgICAgICAgaWYgeyR2YXJzKHZlcmJvc2UpfSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiNcbiIKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyA8RkY+IFVQREFUSU5HIFRJTUlORyBFTlZJUk9OTUVOVCIKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiI1xuIgotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgW0ZGX0VESTo6aW5pdGlhbGl6ZV90aW1pbmcgbW1tY10KLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCBzaWdub2ZmLGluaXRpYWxpemVfdGltaW5nICRjb21tYW5kXQotICAgICAgICAgICAgfQotICAgICAgICAgICAgc2V0IHByb2Nlc3MgW3JlZ3N1YiAibm0iICR2YXJzKHByb2Nlc3MpICIiXQotICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhwcm9jZXNzKVxuIgotICAgICAgICAgICAgc2V0IGNvbW1hbmQgInNldERlc2lnbk1vZGUgLXByb2Nlc3MgJHByb2Nlc3NcbiIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCBzaWdub2ZmLHNldF9kZXNpZ25fbW9kZSAkY29tbWFuZF0KLQotICAgICAgICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgICAgICAgIyBTZXQgbm9pc2UsIGV4dHJhY3Rpb24sIGFuZCBTSSBvcHRpb25zIC4uLgotICAgICAgICAgICAgIyBFbmFibGUgc2lnbmFsU3Rvcm0gaWYgcmVxdWVzdGVkCi0gICAgICAgICAgICAjIEVuYWJsZSBvbkNoaXBWYXJpYXRpb24gKGlmIE1NTUMpCi0gICAgICAgICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0KLSAgICAgICAgICAgIHNldCBjb21tYW5kICJzZXRFeHRyYWN0UkNNb2RlIC1jb3VwbGVkIHRydWUiCi0gICAgICAgICAgICBpZiB7IVtjYXRjaCB7c2V0IGFyZyAkdmFycyhzaWdub2ZmX2V4dHJhY3Rpb25fZWZmb3J0KX1dfSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKHNpZ25vZmZfZXh0cmFjdGlvbl9lZmZvcnQpXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiIC1lZmZvcnRMZXZlbCAkYXJnIgotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgLWVmZm9ydExldmVsIGhpZ2giCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiB7IVtjYXRjaCB7c2V0IGFyZyAkdmFycyh0b3RhbF9jX3RocmVzaCl9XX0gewotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyh0b3RhbF9jX3RocmVzaClcbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgLXRvdGFsX2NfdGggJGFyZyIKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyh0b3RhbF9jX3RocmVzaClcbiIKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIHshW2NhdGNoIHtzZXQgYXJnICR2YXJzKHJlbGF0aXZlX2NfdGhyZXNoKX1dfSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKHJlbGF0aXZlX2NfdGhyZXNoKVxuIgotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAtcmVsYXRpdmVfY190aCAkYXJnIgotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKHJlbGF0aXZlX2NfdGhyZXNoKVxuIgotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgeyFbY2F0Y2gge3NldCBhcmcgJHZhcnMoY291cGxpbmdfY190aHJlc2gpfV19IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMoY291cGxpbmdfY190aHJlc2gpXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiIC1jb3VwbGluZ19jX3RoICRhcmciCi0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMoY291cGxpbmdfY190aHJlc2gpXG4iCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiB7IVtjYXRjaCB7c2V0IGFyZyAkdmFycyhxcmNfbGF5ZXJfbWFwKX1dfSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKHFyY19sYXllcl9tYXApXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiIC1sZWZUZWNoRmlsZU1hcCAkYXJnIgotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKHFyY19sYXllcl9tYXApXG4iCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiXG4iCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgc2lnbm9mZixzZXRfZXh0cmFjdF9yY19tb2RlICRjb21tYW5kXQotCi0gICAgICAgICAgICBzZXQgYXJncyAiIgotICAgICAgICAgICAgaWYgeyFbY2F0Y2gge3NldCBhcmcgJHZhcnMoZGVsdGFfZGVsYXlfdGhyZXNob2xkKX1dfSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKGRlbHRhX2RlbGF5X3RocmVzaG9sZClcbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBhcmdzICIgLWRlbHRhRGVsYXlUaHJlc2hvbGQgJGFyZyIKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhkZWx0YV9kZWxheV90aHJlc2hvbGQpXG4iCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiB7IVtjYXRjaCB7c2V0IGFyZyAkdmFycyhjZWx0aWNfc2V0dGluZ3MpfV19IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMoY2VsdGljX3NldHRpbmdzKVxuIgotICAgICAgICAgICAgICAgYXBwZW5kIGFyZ3MgIiAtaW5zQ2VsdElDUHJlVGNsIFwiJGFyZ1wiIgotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKGNlbHRpY19zZXR0aW5ncylcbiIKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIHshW2NhdGNoIHtzZXQgYXJnICR2YXJzKHNpX2FuYWx5c2lzX3R5cGUpfV19IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMoc2lfYW5hbHlzaXNfdHlwZSlcbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBhcmdzICIgLWFuYWx5c2lzVHlwZSAkYXJnIgotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKHNpX2FuYWx5c2lzX3R5cGUpXG4iCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBzZXQgYXJncyAiIgotICAgICAgICAgICAgaWYgeyR2YXJzKGVuYWJsZV9vY3YpICE9ICJmYWxzZSJ9IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMoZW5hYmxlX29jdilcbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBhcmdzICItYW5hbHlzaXNUeXBlIG9uQ2hpcFZhcmlhdGlvbiAiCi0gICAgICAgICAgICAgICBpZiB7JHZhcnMoZW5hYmxlX2FvY3YpfSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKGVuYWJsZV9hb2N2KVxuIgotICAgICAgICAgICAgICAgICAgYXBwZW5kIGFyZ3MgIi1hb2N2IHRydWUgIgotICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKGVuYWJsZV9hb2N2KVxuIgotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgaWYgeyR2YXJzKGVuYWJsZV9zb2N2KX0gewotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhlbmFibGVfc29jdilcbiIKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBhcmdzICItc29jdiB0cnVlICIKLSAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhlbmFibGVfc29jdilcbiIKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhlbmFibGVfb2N2KSBcInByZV9zaWdub2ZmXCJcbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKGVuYWJsZV9hb2N2KSBcInRydWVcIlxuIgotICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMoZW5hYmxlX3NvY3YpIFwidHJ1ZVwiXG4iCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiB7JHZhcnMoZW5hYmxlX2NwcHIpICE9ICJmYWxzZSJ9IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMoZW5hYmxlX2NwcHIpXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgYXJncyAiLWNwcHIgJHZhcnMoZW5hYmxlX2NwcHIpICIKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhlbmFibGVfY3BwcilcbiIKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIHskYXJncyAhPSAiIn0gewotICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgInNldEFuYWx5c2lzTW9kZSAkYXJnc1xuIgotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kIHNpZ25vZmYsc2V0X2FuYWx5c2lzX21vZGUgJGNvbW1hbmRdCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiB7W3JlZ2V4cCAiOS4xIiAkdmFycyh2ZXJzaW9uKV19IHsKLSAgICAgICAgICAgICAgIGlmIHskdmFycyhlbmFibGVfc3MpID09ICJwcmVfc2lnbm9mZiJ9IHsKLSAgICAgICAgICAgICAgICAgIHNldCBjb21tYW5kICJzZXREZWxheUNhbE1vZGUgLWVuZ2luZSBzaWduYWxTdG9ybSAtc2lnbm9mZiB0cnVlXG4iCi0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgc2lnbm9mZixzZXRfZGVsYXlfY2FsX21vZGUgJGNvbW1hbmRdCi0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKGVuYWJsZV9zcylcbiIKLSAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhlbmFibGVfc3MpIFwicHJlX3NpZ25vZmZcIlxuIgotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfSBlbHNlIHsKLSMgICAgICAgICAgICAgICBpZiB7JHZhcnMoZW5hYmxlX3NpX2F3YXJlKX0gewotIyAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMoZW5hYmxlX3NpX2F3YXJlKVxuIgotIyAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICItc2lBd2FyZSB0cnVlIC1lbmdpbmUgYWFlXG4gIgotICAgICAgICAgICAgICAgICAgaWYgeyR2YXJzKGVuYWJsZV9zcykgPT0gInByZV9zaWdub2ZmIn0gewotICAgICAgICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgInNldERlbGF5Q2FsTW9kZSAtZW5naW5lIHNpZ25hbFN0b3JtIC1zaWdub2ZmIHRydWVcbiIKLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCBzaWdub2ZmLHNldF9kZWxheV9jYWxfbW9kZSAkY29tbWFuZF0KLSMgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIjxGRj4gVmFyaWFibGUgdmFycyhlbmFibGVfc3MpIGlnbm9yZWQgd2hlbiB2YXJzKGVuYWJsZV9zaV9hd2FyZSkgaXMgc2V0XG4iCi0jICAgICAgICAgICAgICAgICAgICAgc2V0IHdhcm5pbmdzKCR2YXJzKHdhcm5pbmdfY291bnQpKSAiVmFyaWFibGUgdmFycyhlbmFibGVfc3MpIGlnbm9yZWQgd2hlbiB2YXJzKGVuYWJsZV9zaV9hd2FyZSkgaXMgc2V0XG4iCi0jICAgICAgICAgICAgICAgICAgICAgaW5jciB2YXJzKHdhcm5pbmdfY291bnQpCi0gICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMoZW5hYmxlX3NzKSBcInByZV9zaWdub2ZmXCJcbiIKLSAgICAgICAgICAgICAgICAgIH0KLSMgICAgICAgICAgICAgICB9IGVsc2UgewotIyAgICAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKGVuYWJsZV9zaV9hd2FyZSlcbiIKLSMgICAgICAgICAgICAgICAgICBpZiB7JHZhcnMoZW5hYmxlX3NzKSA9PSAicHJlX3NpZ25vZmYifSB7Ci0jICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhlbmFibGVfc3MpXG4iCi0jICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIi1lbmdpbmUgc2lnbmFsU3Rvcm0gLXNpZ25vZmYgdHJ1ZSAiCi0jICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSMgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhlbmFibGVfc3MpIFwicHJlX3NpZ25vZmZcIlxuIgotIyAgICAgICAgICAgICAgICAgIH0KLSMgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGlmIHskdmFycyhza2lwX3NpZ25vZmZfY2hlY2tzKX0gewotICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgInNldEV4dHJhY3RSQ01vZGUgLWVuZ2luZSBwb3N0Um91dGUgLWVmZm9ydExldmVsICR2YXJzKHNpZ25vZmZfZXh0cmFjdGlvbl9lZmZvcnQpIC1jb3VwbGVkIHRydWVcbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCBzaWdub2ZmLHNldF9leHRyYWN0X3JjX21vZGUgJGNvbW1hbmRdCi0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJzZXQgdmFycyhhY3RpdmVfcmNfY29ybmVycykgXFtsaXN0XF1cbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiZm9yZWFjaCB2aWV3IFxbY29uY2F0IFxbYWxsX3NldHVwX2FuYWx5c2lzX3ZpZXdzXF0gXFthbGxfaG9sZF9hbmFseXNpc192aWV3c1xdXF0ge1xuIgotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIgICBzZXQgY29ybmVyIFxbZ2V0X2RlbGF5X2Nvcm5lciBcW2dldF9hbmFseXNpc192aWV3IFwkdmlldyAtZGVsYXlfY29ybmVyXF0gLXJjX2Nvcm5lclxdXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiAgIGlmIHtcW2xzZWFyY2ggXCR2YXJzKGFjdGl2ZV9yY19jb3JuZXJzKSBcJGNvcm5lclxdID09IC0xIH0ge1xuIgotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIgICAgICBsYXBwZW5kIHZhcnMoYWN0aXZlX3JjX2Nvcm5lcnMpIFwkY29ybmVyXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiAgIH1cbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAifVxuIgotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJQdXRzIFwiPEZGPiBBQ1RJVkUgUkMgQ09STkVSIExJU1Q6IFwkdmFycyhhY3RpdmVfcmNfY29ybmVycylcIlxuIgotICAgCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgInNldCBlbXB0eV9jb3JuZXJzIFxbbGlzdFxdXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgImZvcmVhY2ggY29ybmVyIFwkdmFycyhhY3RpdmVfcmNfY29ybmVycykge1xuIgotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIgICBpZiB7IVxbZmlsZSBleGlzdHMgXFtnZXRfcmNfY29ybmVyIFwkY29ybmVyIC1xeF90ZWNoX2ZpbGVcXVxdfSB7XG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiAgICAgIGxhcHBlbmQgZW1wdHlfY29ybmVycyBcJGNvcm5lclxuIgotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIgICB9XG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIn1cbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiaWYge1xbbGxlbmd0aCBcJGVtcHR5X2Nvcm5lcnNcXSA9PSAwfSB7XG4iCi0gICAgICAgICAgICAgICBzZXQgY29tbWFuZCAiICBzZXRFeHRyYWN0UkNNb2RlIC1lbmdpbmUgcG9zdFJvdXRlIC1lZmZvcnRMZXZlbCAkdmFycyhzaWdub2ZmX2V4dHJhY3Rpb25fZWZmb3J0KSAtY291cGxlZCB0cnVlXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgc2lnbm9mZixzZXRfZXh0cmFjdF9yY19tb2RlICRjb21tYW5kXQotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJ9IGVsc2Uge1xuIgotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIgICAgICBQdXRzIFwiPEZGPiBDQU4nVCBSVU4gU0lHTk9GRiBFWFRSQUNUSU9OIEJFQ0FVU0UgcXhfdGVjaF9maWxlIElTIE5PVCBERUZJTkVEIEZPUiB0aGVzZSBjb3JuZXJzOiBcJGVtcHR5X2Nvcm5lcnNcIlxuIgotICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgIiAgICAgIHNldEV4dHJhY3RSQ01vZGUgLWVuZ2luZSBwb3N0Um91dGUgLWVmZm9ydExldmVsIGxvdyAtY291cGxlZCB0cnVlXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgc2lnbm9mZixzZXRfZXh0cmFjdF9yY19tb2RlICRjb21tYW5kXQotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJ9XG4iCi0gICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0gICAgICB9Ci0gICAgICBpZiB7W2luZm8gZXhpc3RzIHVjb21tZW50c119IHsKLSAgICAgICAgIGlmIHskdWNvbW1lbnRzID09ICIifSB7Ci0gICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnModWNvbW1lbnRzKV19IHsKLSAgICAgICAgICAgICAgIHVuc2V0IHZhcnModWNvbW1lbnRzKQotICAgICAgICAgICAgfQotICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHNldCB2YXJzKHVjb21tZW50cykgJHVjb21tZW50cwotICAgICAgICAgfQotICAgICAgfQotICAgICAgaWYge1tpbmZvIGV4aXN0cyBjb21tZW50c119IHsKLSAgICAgICAgIGlmIHskY29tbWVudHMgPT0gIiJ9IHsKLSAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhjb21tZW50cyldfSB7Ci0gICAgICAgICAgICAgICB1bnNldCB2YXJzKGNvbW1lbnRzKQotICAgICAgICAgICAgfQotICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHNldCB2YXJzKGNvbW1lbnRzKSAkY29tbWVudHMgCi0gICAgICAgICB9Ci0gICAgICB9Ci0gICAgICBzZXQgdmFycygkc3RlcCxjb21tYW5kcykgJGNvbW1hbmRzCi0gICAgICByZXR1cm4gJGNvbW1hbmRzCi0gICB9Ci0KLSAgIHByb2Mgc2F2ZV9yZXN1bHRzIHt7c3RlcCAiIn0ge2Zvcm1hdCAwfX0gewotCi0gICAgICBpZiB7W3JlZ2V4cCAiXnN5biIgJHN0ZXBdfSB7Ci0gICAgICAgICByZXR1cm4gIiIKLSAgICAgIH0KLQotICAgICAgZ2xvYmFsIHZhcnMKLSAgICAgIGdsb2JhbCBlcnJvcnMKLSAgICAgIGdsb2JhbCBlbnYKLQotICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGhpZXIpXX0gewotICAgICAgICAgc2V0IGhpZXIgdHJ1ZQotICAgICAgfSBlbHNlIHsKLSAgICAgICAgIHNldCBoaWVyIGZhbHNlCi0gICAgICB9Ci0gICAgICBpZiB7JHN0ZXAgIT0gIiJ9IHsKLSAgICAgICAgIHNldCB2YXJzKHN0ZXApICRzdGVwCi0gICAgICB9Ci0KLSAgICAgIGlmIHskdmFycyhkZWJ1Zyl9IHsKLSAgICAgICAgIHB1dHMgIjxERUJVRz4gU2F2aW5nIHJlc3VsdHMgZm9yICR2YXJzKHN0ZXApIC4uLiIKLSAgICAgIH0KLQotICAgICAgc2V0IGNvbW1hbmRzICIiCi0gICAgICBpZiB7JHZhcnMoYmF0Y2gpfSB7Ci0gICAgICAgICBpZiB7JHZhcnModmVyYm9zZSl9IHsKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiI1xuIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjIFNBVklORyBSRVNVTFRTXG4iCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiNcbiIKLSAgICAgICAgIH0KLSAgIAotIyAgICAgICAgIGlmIHtbcmVnZXhwIF9ob2xkICR2YXJzKHN0ZXApXSAmJiAoIVtsc2VhcmNoICR2YXJzKGZpeF9ob2xkKSAkdmFycyhzdGVwKV0gPDApfSB7Ci0jICAgCi0jICAgICAgICAgICAgaWYgeyEkZm9ybWF0fSB7Ci0jICAgICAgICAgICAgICAgc2V0IGNvbW1hbmRzICIiCi0jICAgICAgICAgICAgfSBlbHNlIHsKLSMgICAgICAgICAgICAgICBpZiB7JHZhcnMocmVwb3J0X3J1bl90aW1lKX0gewotIyAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiRkZfRURJOjpyZXBvcnRfdGltZSAkdmFycyhzdGVwKVxuIgotIyAgICAgICAgICAgICAgIH0KLSMgICAgICAgICAgICB9Ci0jICAgICAgICAgICAgaWYgeyR2YXJzKGNvZGVnZW4pfSB7Ci0jICAgICAgICAgICAgICAgcmV0dXJuICRjb21tYW5kcwotIyAgICAgICAgICAgIH0gZWxzZSB7Ci0jICAgICAgICAgICAgICAgIHVwbGV2ZWwgIzAgZXZhbCAkY29tbWFuZHMKLSMgICAgICAgICAgICB9Ci0jICAgICAgICAgfSAKLQotICAgICAgICAgaWYgeyR2YXJzKHN0ZXApICE9ICJwYXJ0aXRpb24ifSB7Ci0gICAgICAgICAgICBzZXQgaGVhZGVyICIjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4iCi0gICAgICAgICAgICBhcHBlbmQgaGVhZGVyICIjIDxGRj4gR0VORVJBVElORyBSRVBPUlRTXG4iCi0gICAgICAgICAgICBhcHBlbmQgaGVhZGVyICIjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4iCi0gICAKLSAgICAgICAgICAgIGlmIHskdmFycyhyZXBvcnRfcG93ZXIpfSB7Ci0gICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMocG93ZXJfYW5hbHlzaXNfdmlldyldICYmICgkdmFycyhwb3dlcl9hbmFseXNpc192aWV3KSAhPSAiIil9IHsKLSAgICAgICAgICAgICAgICAgIHNldCBjb21tYW5kICJyZXBvcnRfcG93ZXIgLXZpZXcgJHZhcnMocG93ZXJfYW5hbHlzaXNfdmlldykgLW91dGZpbGUgJHZhcnMocnB0X2RpcikvJHZhcnMoc3RlcCkucG93ZXIucnB0XG4iCi0gICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgInJlcG9ydF9wb3dlciAtb3V0ZmlsZSAkdmFycyhycHRfZGlyKS8kdmFycyhzdGVwKS5wb3dlci5ycHRcbiIKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxyZXBvcnRfcG93ZXIgJGNvbW1hbmRdCi0gICAgICAgICAgICB9Ci0gICAgICAKLSAgICAgICAgICAgIGlmIHtbRkY6OmlzX2xwX2Zsb3ddICYmIFtpbmZvIGV4aXN0cyB2YXJzKHBvd2VyX2RvbWFpbnMpXSAmJiBbbGxlbmd0aCAkdmFycyhwb3dlcl9kb21haW5zKV0gPiAxfSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgJGhlYWRlcgotICAgICAgICAgICAgICAgc2V0IGhlYWRlciAiIgotICAgICAgCi0gICAgICAgICAgICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAgICAgICAgICAjIFZlcmlmeSBwb3dlciBkb21haW4KLSAgICAgICAgICAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgIAotICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgInZlcmlmeVBvd2VyRG9tYWluIC1iaW5kIC1nY29ubiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgLWlzb05ldFBEICR2YXJzKHJwdF9kaXIpLyR2YXJzKHN0ZXApLmlzb25ldHMucnB0IgotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAteE5ldFBEICR2YXJzKHJwdF9kaXIpLyR2YXJzKHN0ZXApLnhuZXRzLnJwdFxuIgotICAgCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHN0ZXAsdmVyaWZ5X3Bvd2VyX2RvbWFpbiAkY29tbWFuZF0KLSAgICAgIAotICAgICAgICAgICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgICAgICAgICAgIyBSdW4gQ0xQCi0gICAgICAgICAgICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAKLSAgICAgICAgICAgICAgIGlmIHskdmFycyhydW5fY2xwKSAmJiAoW2F1dG9fZXhlY29rIGxlY10gIT0gIiIpfSB7Ci0gICAgICAgICAgICAgICAgICBzZXQgY29tbWFuZCAicnVuQ0xQICIKLSAgICAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhjbHBfb3B0aW9ucyldfSB7Ci0gICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAkdmFycyhjbHBfb3B0aW9ucykKLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJcbiIKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkc3RlcCxydW5fY2xwICRjb21tYW5kXQotICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgIGlmIHshW2luZm8gZXhpc3RzIHZhcnMoY2xwX3dhcm5pbmcpXX0gewotICAgICAgICAgICAgICAgICAgICAgcHV0cyAiPEZGPiBXQVJOSU5HOiBVTkFCTEUgVE8gUlVOIENMUCAuLi4gUExFQVNFIE1BS0UgU1VSRSBJVCBJUyBJTiBZT1VSIFBBVEgiCi0gICAgICAgICAgICAgICAgICAgICBzZXQgdmFycyhjbHBfd2FybmluZykgdHJ1ZQotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAgfQotCi0gICAgICAgICBzZXQgbWFwKGluaXQpIHVucGxhY2VkCi0gICAgICAgICBzZXQgbWFwKHBhcnRpdGlvbl9wbGFjZSkgcGxhY2VkCi0gICAgICAgICBzZXQgbWFwKG1vZGVsX2dlbikgcGxhY2VkCi0gICAgICAgICBzZXQgbWFwKGFzc2lnbl9waW4pIHBsYWNlZAotICAgICAgICAgI3NldCBtYXAocGFydGl0aW9uKSB7fQotICAgICAgICAgc2V0IG1hcChwbGFjZSkgcGxhY2VkCi0gICAgICAgICBzZXQgbWFwKHByZWN0cykgcGxhY2VkCi0gICAgICAgICBzZXQgbWFwKGN0cykgY2xvY2tfc3ludGhlc2l6ZWQKLSAgICAgICAgIHNldCBtYXAocG9zdGN0cykgY2xvY2tfc3ludGhlc2l6ZWQKLSAgICAgICAgIHNldCBtYXAocG9zdGN0c19ob2xkKSBjbG9ja19zeW50aGVzaXplZAotICAgICAgICAgc2V0IG1hcChyb3V0ZSkgY2xvY2tfc3ludGhlc2l6ZWRfcm91dGVkCi0gICAgICAgICBzZXQgbWFwKHBvc3Ryb3V0ZSkgY2xvY2tfc3ludGhlc2l6ZWRfcm91dGVkCi0gICAgICAgICBzZXQgbWFwKHBvc3Ryb3V0ZV9ob2xkKSBjbG9ja19zeW50aGVzaXplZF9yb3V0ZWQKLSAgICAgICAgIHNldCBtYXAoc2lnbm9mZikgY2xvY2tfc3ludGhlc2l6ZWRfcm91dGVkCi0gICAgICAgICBzZXQgbWFwKGFzc2VtYmxlKSBwbGFjZWRfcm91dGVkCi0gIAotICAgICAgICAgaWYgeyR2YXJzKGNhcHR1cmVfbWV0cmljcykgJiYgKCR2YXJzKHN0ZXApICE9ICJkZWJ1ZyIpfSB7Ci0gICAgICAgICAgICBpZiB7W2xpbmRleCBbc3BsaXQgJHZhcnModmVyc2lvbikgIi4iXSAgMF0gPiAxM30gewotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJ1bTo6cG9wX3NuYXBzaG90X3N0YWNrXG4iCi0gICAgICAgICAgICAgICBpZiB7W2xpbmRleCBbc3BsaXQgJHZhcnModmVyc2lvbikgIi4iXSAgMF0gPiAxNn0gewotICAgICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyBtYXAoJHN0ZXApXX0gewotICAgICAgICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoY29tcHV0ZV9tZXRyaWNzKV0gJiYgJHZhcnMoY29tcHV0ZV9tZXRyaWNzKX0gewotICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiY3JlYXRlX3NuYXBzaG90IC1uYW1lICR2YXJzKHN0ZXApIC1jYXRlZ29yaWVzIFxbZGljdCBnZXQgXCRtZXRyaWNfY2F0ZWdvcnlfc3RhdHVzX21hcCAkbWFwKCRzdGVwKVxdXG4iCi0gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJjcmVhdGVfc25hcHNob3QgLW5hbWUgJHZhcnMoc3RlcCkgLWNhdGVnb3JpZXMgZGVzaWduXG4iCi0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiY3JlYXRlX3NuYXBzaG90IC1uYW1lICR2YXJzKHN0ZXApIC1jYXRlZ29yaWVzIGRlc2lnblxuIgotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiY3JlYXRlX3NuYXBzaG90IC1uYW1lICR2YXJzKHN0ZXApIC1jYXRlZ29yaWVzIGRlc2lnblxuIgotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJyZXBvcnRfbWV0cmljIC1maWxlICR2YXJzKHJwdF9kaXIpL21ldHJpY3MuaHRtbCAtZm9ybWF0IGh0bWxcbiIKLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0KLQotIyAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiI1xuIgotIyAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyBIT1VTRUtFRVBJTkdcbiIKLSMgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiNcbiIKLSAgIAotICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKG1haWwsdG8pXX0gewotICAgICAgICAgICAgc3dpdGNoICR2YXJzKHN0ZXApIHsKLSAgICAgICAgICAgICAgIGluaXQgICAgIHsgc2V0IHN1bW1hcnlfZmlsZSBwcmVwbGFjZS5zdW1tYXJ5IH0KLSAgICAgICAgICAgICAgIGFzc2VtYmxlIHsgc2V0IHN1bW1hcnlfZmlsZSBzaWdub2ZmLnN1bW1hcnkgfQotICAgICAgICAgICAgICAgZGVmYXVsdCAgeyBzZXQgc3VtbWFyeV9maWxlICR2YXJzKHN0ZXApLnN1bW1hcnkgfQotICAgICAgICAgICAgfSAKLSAgICAgICAgICAgIGlmIHshW2luZm8gZXhpc3RzIHZhcnMobWFpbCxzdGVwcyldIHx8IFwKLSAgICAgICAgICAgICAgICAoW2luZm8gZXhpc3RzIHZhcnMobWFpbCxzdGVwcyldICYmIChbbHNlYXJjaCAkdmFycyhtYWlsLHN0ZXBzKSAkdmFycyhzdGVwKV0gIT0gLTEpKX0gewotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJQdXRzIFwiPEZGPiBNQUlMSU5HIFJFU1VMVFMgVE8gJHZhcnMobWFpbCx0bylcIlxuIgotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJpZiB7XFtmaWxlIGV4aXN0cyAkdmFycyhycHRfZGlyKS8kc3VtbWFyeV9maWxlXF19IHtcbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiICAgZXhlYyAvYmluL21haWwgLXMgXCJGRjogJHZhcnMoZGVzaWduKSwgJHZhcnMoc3RlcCkgY29tcGxldGVkIChcW3B3ZFxdKVwiIDwgJHZhcnMocnB0X2RpcikvJHN1bW1hcnlfZmlsZSAkdmFycyhtYWlsLHRvKVxuIgotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJ9IGVsc2VpZiB7XFtmaWxlIGV4aXN0cyAkdmFycyhycHRfZGlyKS8ke3N1bW1hcnlfZmlsZX0uZ3pcXX0ge1xuIgotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIgICBleGVjIGd1bnppcCAtYyAkdmFycyhycHRfZGlyKS8ke3N1bW1hcnlfZmlsZX0uZ3ogXHwgL2Jpbi9tYWlsIC1zIFwiRkY6ICR2YXJzKGRlc2lnbiksICR2YXJzKHN0ZXApIGNvbXBsZXRlZCAoXFtwd2RcXSlcIiAkdmFycyhtYWlsLHRvKVxuIgotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJ9IGVsc2Uge1xuIgotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIgICBleGVjIC9iaW4vbWFpbCAtcyBcIkZGOiAkdmFycyhkZXNpZ24pLCAkdmFycyhzdGVwKSBjb21wbGV0ZWQgKFxbcHdkXF0pXCIgPCAvZGV2L251bGwgJHZhcnMobWFpbCx0bylcbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAifVxuIgotICAgICAgICAgICAgfQotICAgICAgICAgfQotICAgCi0gICAgICAgICBpZiB7KCRzdGVwICE9ICJwYXJ0aXRpb24iKSAmJiAoJHN0ZXAgIT0gInJlYnVkZ2V0IikgJiYgKCRzdGVwICE9ICJmbGV4aWxtIil9IHsKLSAgICAgICAgICAgIHNldCBhcmdzICIiCi0gICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoc2F2ZV9yYyldICYmICR2YXJzKHNhdmVfcmMpfSB7Ci0gICAgICAgICAgICAgICBpZiB7W3JlZ2V4cCAicm91dGUiICR2YXJzKHN0ZXApXX0gewotICAgICAgICAgICAgICAgICAgYXBwZW5kIGFyZ3MgIiAtcmMiCi0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKHNhdmVfY29uc3RyYWludHMpXSAmJiAkdmFycyhzYXZlX2NvbnN0cmFpbnRzKX0gewotICAgICAgICAgICAgICAgYXBwZW5kIGFyZ3MgIiAtdGNvbiIKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgIyBCQ0w6IEFkZGVkIHN1YnN0IGFyb3VuZCB2YXJzKGRic19kaXIpIHRvIHJlc29sdmUgdmFycyhydW5kaXIpCi0gICAgICAgICAgICBzZXQgZGlyIFtzdWJzdCAkdmFycyhkYnNfZGlyKV0KLSAgICAgICAgICAgIHNldCBkZXNpZ24gJHZhcnMoZGVzaWduKQotICAgICAgICAgICAgaWYge1tzdHJpbmcgY29tcGFyZSAtbm9jYXNlICR2YXJzKGRic19mb3JtYXQpICJvYSJdPT0wfSB7Ci0gICAgICAgICAgICAgICBpZiB7W2xpbmRleCBbc3BsaXQgJHZhcnModmVyc2lvbikgIi4iXSAgMF0gPiAxMH0gewotICAgICAgICAgICAgICAgICAgaWYgeyRoaWVyfSB7Ci0gICAgICAgICAgICAgICAgICAgICBzZXQgY29tbWFuZCAic2F2ZURlc2lnbiAkYXJncyAtY2VsbHZpZXcgeyR2YXJzKG9hX3BhcnRpdGlvbl9saWIpICR2YXJzKGRlc2lnbikgJHZhcnMoc3RlcCl9XG4iCi0gICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgInNhdmVEZXNpZ24gJGFyZ3MgLWNlbGx2aWV3IHskdmFycyhvYV9kZXNpZ25fbGliKSAkdmFycyhkZXNpZ24pICR2YXJzKHN0ZXApfVxuIgotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgIHNldCBjb21tYW5kICJzYXZlT2FEZXNpZ24gJHZhcnMob2FfZGVzaWduX2xpYikgJGRlc2lnbiAkdmFycyhzdGVwKVxuIgotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhyZWxhdGl2ZV9wYXRoKV0gJiYgJHZhcnMocmVsYXRpdmVfcGF0aCl9IHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBhcmdzICIgLXJlbGF0aXZlUGF0aCIKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhhYnNvbHV0ZV9saWJfcGF0aCldICYmICR2YXJzKGFic29sdXRlX2xpYl9wYXRoKX0gewotICAgICAgICAgICAgICAgICAgYXBwZW5kIGFyZ3MgIiAtYWJzb2x1dGVMaWJQYXRoIgotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgInNhdmVEZXNpZ24gJGFyZ3MgJGRpci8kdmFycyhzdGVwKS5lbmMgLWNvbXByZXNzXG4iCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiB7ISgoJHZhcnMoc3RlcCkgPT0gIm1vZGVsX2dlbiIpICYmICR2YXJzKHVzZV9mbGV4bW9kZWxzKSAmJiAkdmFycyhmbGV4bW9kZWxfYXJ0X2Jhc2VkKSl9IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkc3RlcCxzYXZlX2Rlc2lnbiAkY29tbWFuZF0KLSAgICAgICAgICAgICAgIGlmIHskdmFycyhydW5fbGVjKX0gewotICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHN0ZXAsc2F2ZV9sZWNfbmV0bGlzdCAic2F2ZU5ldGxpc3QgJHZhcnMoZGJzX2RpcikvTEVDLyRzdGVwLnYuZ3pcbiJdCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0KLSAgICAgICAgIGlmIHshW2luZm8gZXhpc3RzIGVudihWUEFUSCldfSB7Ci0gICAgICAgICAgICBzZXQgZW52KFZQQVRIKSAibWFrZSIKLSAgICAgICAgIH0KLQotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJpZiB7XFtpbmZvIGV4aXN0cyBlbnYoVlBBVEgpXF19IHsiCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgImV4ZWMgL2Jpbi90b3VjaCBcJGVudihWUEFUSCkvJHZhcnMoc3RlcCkiCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIn1cbiIKLSAgCi0gICAKLSAgICAgICAgIGlmIHskZm9ybWF0fSB7Ci0gICAgICAgICAgICBpZiB7JHZhcnMocmVwb3J0X3J1bl90aW1lKX0gewotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJmZl9wcm9jczo6cmVwb3J0X3RpbWVcbiIKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIHskdmFycyhjYXB0dXJlX21ldHJpY3MpfSB7Ci0gICAgICAgICAgICAgICBpZiB7W2xpbmRleCBbc3BsaXQgJHZhcnModmVyc2lvbikgIi4iXSAgMF0gPCAxNH0gewotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtldmFsIEZGOjpjYXB0dXJlX21ldHJpY3NdCi0gICAgICAgICAgICAgICB9IAotICAgICAgICAgICAgfQotICAgICAgICAgfQotICAgCi0gICAgICAgICBpZiB7JHZhcnMoZW5hYmxlX3Fvcl9jaGVjayl9IHsKLSMgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJHN0ZXAscW9yX3RjbF19IHsKLSMgICAgICAgICAgICAgICBzZXQgcW9yX2ZpbGUgJHZhcnMoJHN0ZXAscW9yX3RjbCkKLSMgICAgICAgICAgICAgICBpZiB7W2ZpbGUgZXhpc3RzICRxb3JfZmlsZV19IHsKLSMgICAgICAgICAgICAgICAgICBzZXQgcW9yIFtjYXRjaCB7ZXhlYyAkcW9yX2ZpbGV9IG1zZ10KLSMgICAgICAgICAgICAgICAgICBzZXQgbWFrZV9maWxlIFtvcGVuICR0aGlzX3NlbWFwaG9yZSB3XQotIyAgICAgICAgICAgICAgICAgIHB1dHMgJG1ha2VfZmlsZSAiJHFvciIKLSMgICAgICAgICAgICAgICAgICBjbG9zZSAkbWFrZV9maWxlCi0jICAgICAgICAgICAgICAgfQotIyAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkc3RlcCxxb3JfdGNsKV19IHsKLSAgICAgICAgICAgICAgIGlmIHtbZmlsZSBleGlzdHMgJHZhcnMoJHN0ZXAscW9yX3RjbCldfSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjpzb3VyY2VfcGx1ZyAke3N0ZXB9LHFvcl90Y2xdCi0gICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICI8RkY+IFdBUk5JTkc6IFFPUiBmaWxlICR2YXJzKCRzdGVwLHFvcl90Y2wpIGRvZXMgbm90IGV4aXN0IgotICAgICAgICAgICAgICAgICAgc2V0IHdhcm5pbmdzKCR3YXJuaW5nX2NvdW50KSAiV0FSTklORzogUU9SIGZpbGUgJHZhcnMoJHN0ZXAscW9yX3RjbCkgZG9lcyBub3QgZXhpc3QiCi0gICAgICAgICAgICAgICAgICBpbmNyIHdhcm5pbmdfY291bnQKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBpZiB7JHZhcnMobWFrZWZpbGUpfSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIlxuaWYge1xbaW5mbyBleGlzdHMgZW52KFZQQVRIKVxdfSB7XG4iCi0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiAgIGV4ZWMgL2Jpbi90b3VjaCBcJGVudihWUEFUSCkvJHtzdGVwfV9xb3JcbiIKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAifVxuIgotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAgfQotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6c291cmNlX3BsdWcgZmluYWxfYWx3YXlzX3NvdXJjZV90Y2xdCi0KLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIlB1dHMgXCI8RkY+ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cIlxuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJQdXRzIFwiPEZGPiBJTkZPOiBSdW5uaW5nIGluIGludGVyYWN0aXZlIG1vZGUgLi4uXCJcbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiUHV0cyBcIjxGRj4gICAgICAgUGxlYXNlIHJ1biAnZmZfcHJvY3M6OnNhdmVfcmVzdWx0cyA8Y3VycmVudF9zdGVwPicgXCJcbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiUHV0cyBcIjxGRj4gICAgICAgdG8gcHJlcGFyZSBhIGRhdGFiYXNlIGZvciB0aGUgbmV4dCBzdGVwXCJcbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiUHV0cyBcIjxGRj4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVwiXG4iCi0gICAgICAgICBpZiB7JHZhcnMobWFrZWZpbGUpfSB7IAotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJpZiB7XFtpbmZvIGV4aXN0cyBlbnYoVlBBVEgpXF19IHtcbiIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiZXhlYyAvYmluL3RvdWNoIFwkZW52KFZQQVRIKS8kdmFycyhzdGVwKVxuIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJ9XG4iCi0gICAgICAgICB9Ci0gICAgICB9Ci0KLSAgICAgIGlmIHskdmFycyhjb2RlZ2VuKX0gewotICAgICAgICAgcmV0dXJuICRjb21tYW5kcwotICAgICAgfSBlbHNlIHsKLSAgICAgICAgIHVwbGV2ZWwgIzAgZXZhbCAkY29tbWFuZHMKLSAgICAgIH0KLQotICAgfQotCi0gICBwcm9jIGluaXRpYWxpemVfbXVsdGljcHUge30gewotCi0gICAgIGdsb2JhbCB2YXJzCi0KLSAgICAgaWYge1tyZWdleHAgIl5zeW4iICR2YXJzKHN0ZXApXX0geyByZXR1cm4gIiIgfQotCi0gICAgICBzZXQgY29tbWFuZHMgIiIKLSMgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiNcbiIKLSMgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIFNFVFRJTkcgVVAgTVVMVEkgUFJPQ0VTUyBESVNUUklCVVRJT04gQU5EIFRIUkVBRElOR1xuIgotIyAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiI1xuIgotCi0gICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoZGlzdHJpYnV0ZV90aW1lb3V0KV19IHsKLSAgICAgICAgIHNldCBjb21tYW5kICJzZXREaXN0cmlidXRlSG9zdCAtdGltZU91dCAkdmFycyhkaXN0cmlidXRlX3RpbWVvdXQpICIKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgICBzZXQgY29tbWFuZCAic2V0RGlzdHJpYnV0ZUhvc3QgIgotICAgICAgfQotCi0gICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoZGlzdHJpYnV0ZSldfSB7Ci0gICAgICAgICBzd2l0Y2ggJHZhcnMoZGlzdHJpYnV0ZSkgewotICAgICAgICAgICAgInJzaCIgewotIyAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgUlVOTklORyBSU0ggb24gJHZhcnMocnNoLGhvc3RfbGlzdClcbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICItcnNoIC1hZGQgXFtsaXN0ICR2YXJzKHJzaCxob3N0X2xpc3QpXF1cbiIKLSAgICAgICAgICAgICAgIHNldCB2YXJzKHJlbW90ZV9ob3N0cykgW2xsZW5ndGggJHZhcnMocnNoLGhvc3RfbGlzdCldCi0gICAgICAgICAgICAgfQotICAgICAgICAgICAgImxvY2FsIiB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiLWxvY2FsXG4iCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICAiY3VzdG9tIiB7Ci0jICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICBSVU5OSU5HIENVU1RPTSAoJHZhcnMoY3VzdG9tLHNjcmlwdCkpXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiLWN1c3RvbSAtY3VzdG9tX3NjcmlwdCB7ICR2YXJzKGN1c3RvbSxzY3JpcHQpIH1cbiIKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgICJsc2YiIHsKLSMgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIFJVTk5JTkcgTFNGICgkdmFycyhsc2YscXVldWUpLCAkdmFycyhsc2YscmVzb3VyY2UpLCAkdmFycyhsc2YsYXJncylcbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICItbHNmIC1xdWV1ZSAkdmFycyhsc2YscXVldWUpIC1yZXNvdXJjZSB7ICR2YXJzKGxzZixyZXNvdXJjZSkgfSAtbHNmX2FyZ3MgeyAkdmFycyhsc2YsYXJncykgfVxuIgotICAgICAgICAgICAgfQotICAgICAgICAgICAgZGVmYXVsdCB7Ci0gICAgICAgICAgICAgICAgcHV0cyAgIjxGRj4gRElTVFJJQlVUSU9OIFRZUEUgJHZhcnMoZGlzdHJpYnV0ZSkgTk9UIFNVUFBPUlRFRFxuIgotICAgICAgICAgICAgfQotICAgICAgICAgfQotCi0jICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICRjb21tYW5kCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksc2V0X2Rpc3RyaWJ1dGVkX2hvc3RzICRjb21tYW5kXQotCi0gICAgICAgICBzZXQgY29tbWFuZCAic2V0TXVsdGlDcHVVc2FnZSAiCi0gICAgICAgICBhcHBlbmQgY29tbWFuZCAiLWxvY2FsQ3B1ICR2YXJzKGxvY2FsX2NwdXMpICIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kICItcmVtb3RlSG9zdCAkdmFycyhyZW1vdGVfaG9zdHMpICIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kICItY3B1UGVyUmVtb3RlSG9zdCAkdmFycyhjcHVzX3Blcl9yZW1vdGVfaG9zdClcbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxzZXRfbXVsdGlfY3B1X3VzYWdlICRjb21tYW5kXQotCi0gICAgICB9IGVsc2UgewotCi0gICAgICAgICBhcHBlbmQgY29tbWFuZCAiLWxvY2FsXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksc2V0X2Rpc3RyaWJ1dGVfaG9zdCAkY29tbWFuZF0KLQotICAgICAgICAgc2V0IGNvbW1hbmQgInNldE11bHRpQ3B1VXNhZ2UgLWxvY2FsQ3B1ICR2YXJzKGxvY2FsX2NwdXMpXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksc2V0X211bHRpX2NwdV91c2FnZSAkY29tbWFuZF0KLQotICAgICAgfQotCi0gICAgICByZXR1cm4gJGNvbW1hbmRzCi0KLSAgIH0KLSAgIHByb2MgZGVyYXRlX3RpbWluZyAge3t0eXBlIG1pbm1heH19IHsKLQotICAgICAgZ2xvYmFsIHZhcnMKLSAgICAgIGdsb2JhbCBlcnJvcnMKLQotIyAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyh2aWV3X2RlZmluaXRpb25fdGNsKV19IHsKLSMgICAgICAgICByZXR1cm4gIiIKLSMgICAgICB9Ci0KLSMgICAgICBpZiB7JHZhcnMoZW5hYmxlX2FvY3YpfSB7Ci0jICAgICAgICAgc2V0IGNvbW1hbmRzICIiCi0jICAgICAgICAgZm9yZWFjaCBjb3JuZXIgJHZhcnMoZGVsYXlfY29ybmVycykgewotIyAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAicmVzZXRfdGltaW5nX2RlcmF0ZSAtZGVsYXlfY29ybmVyICRjb3JuZXJcbiIKLSMgICAgICAgICB9ICAgCi0jICAgICAgICAgcmV0dXJuICRjb21tYW5kcwotIyAgICAgIH0KLQotICAgICAgc2V0IGNvbW1hbmRzICJQdXRzIFwiPEZGPiBERVJBVElORyBERUxBWSBDT1JORVJTIC4uLlwiXG4iCi0gICAgICBpZiB7JHZhcnModmVyYm9zZSl9IHsKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiI1xuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICBERVJBVElORyBERUxBWSBDT1JORVJTICgkdHlwZSkgLi4uXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiNcbiIKLSAgICAgIH0KLSAgICAgIHN3aXRjaCAkdHlwZSB7Ci0gICAgICAgICAibW1tYyIgewotICAgICAgICAgICAgc2V0IGZvdW5kX2Nvcm5lciAwCi0gICAgICAgICAgICBmb3JlYWNoIGNvcm5lciAkdmFycyhkZWxheV9jb3JuZXJzKSB7Ci0gICAgICAgICAgICAgICBzZXQgZGVyYXRlX2ZpbGUgMAotICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQoJGNvcm5lcikgIiIKLSAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkY29ybmVyLGRlcmF0ZV90Y2wpXX0gewotICAgICAgICAgICAgICAgICAgc2V0IGRlcmF0ZV9maWxlIDEKLSAgICAgICAgICAgICAgICAgIGluY3IgZm91bmRfY29ybmVyIDEKLSAgICAgICAgICAgICAgICAgIGlmIHtbZmlsZSBleGlzdHMgJHZhcnMoJGNvcm5lcixkZXJhdGVfdGNsKV19IHsKLSAgICAgICAgICAgICAgICAgICAgIGlmIHskY29tbWFuZCgkY29ybmVyKSA9PSAiIn0gewotICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQoJGNvcm5lcikgW0ZGOjpzb3VyY2VfcGx1ZyAiJGNvcm5lcixkZXJhdGVfdGNsIl0KLSAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIGlmIHshJGRlcmF0ZV9maWxlfSB7Ci0gICAgICAgICAgICAgICAgICBmb3JlYWNoIG9iamVjdCAiY2VsbCBuZXQiIHsKLSAgICAgICAgICAgICAgICAgICAgIGZvcmVhY2ggbW9kZSAiZWFybHkgbGF0ZSIgewotICAgICAgICAgICAgICAgICAgICAgICAgZm9yZWFjaCB0eXBlICJkYXRhIGNsb2NrIiB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJGNvcm5lciwke3R5cGV9XyR7b2JqZWN0fV8ke21vZGV9KV19IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kKCRjb3JuZXIpICIgICBzZXRfdGltaW5nX2RlcmF0ZSAtJHR5cGUgLSR7b2JqZWN0fV9kZWxheSAtJG1vZGUgLWRlbGF5X2Nvcm5lciAkY29ybmVyICR2YXJzKCRjb3JuZXIsJHt0eXBlfV8ke29iamVjdH1fJHttb2RlfSlcbiIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldCBmb3VuZF9jb3JuZXIgMQotICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCRjb3JuZXIsJHtvYmplY3R9XyR7dHlwZX1fJHttb2RlfSldfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCgkY29ybmVyKSAiICAgc2V0X3RpbWluZ19kZXJhdGUgLSR0eXBlIC0ke29iamVjdH1fZGVsYXkgLSRtb2RlIC1kZWxheV9jb3JuZXIgJGNvcm5lciAkdmFycygkY29ybmVyLCR7b2JqZWN0fV8ke3R5cGV9XyR7bW9kZX0pXG4iCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXQgZm91bmRfY29ybmVyIDEKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkY29ybmVyLGNlbGxfY2hlY2tfJHttb2RlfSldfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCgkY29ybmVyKSAiICAgc2V0X3RpbWluZ19kZXJhdGUgLWNlbGxfY2hlY2sgLSRtb2RlIC1kZWxheV9jb3JuZXIgJGNvcm5lciAkdmFycygkY29ybmVyLGNlbGxfY2hlY2tfJHttb2RlfSlcbiIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldCBmb3VuZF9jb3JuZXIgMQotICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCRjb3JuZXIsY2hlY2tfY2VsbF8ke21vZGV9KV19IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kKCRjb3JuZXIpICIgICBzZXRfdGltaW5nX2RlcmF0ZSAtY2VsbF9jaGVjayAtJG1vZGUgLWRlbGF5X2Nvcm5lciAkY29ybmVyICR2YXJzKCRjb3JuZXIsY2hlY2tfY2VsbF8ke21vZGV9KVxuIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0IGZvdW5kX2Nvcm5lciAxCi0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAgICAgICAjIFRoZXJlIGNhbiBvbmx5IGJlIG9uZSBpbG1fbm9uX3NkY19maWxlLCBzbyBuZWVkIHRvIGNvbWJpbmUgdGhlbSB3aXRoIAotICAgICAgICAgICAgIyB0aGUgdGltaW5nIGRlcmF0ZSBjb21tYW5kcyBpZiBib3RoIGV4aXN0cwotICAgICAgICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgICAgICAgaWYgeyRmb3VuZF9jb3JuZXI+MH0gewotICAgICAgICAgICAgICAgaWYgJHZhcnMoaWxtKSB7Ci0gICAgICAgICAgICAgICAgICBzZXQgb3AgW29wZW4gLmlsbV9ub25fc2RjX2ZpbGUudGNsIHddCi0gICAgICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoaWxtX25vbl9zZGNfZmlsZSldICYmIFtmaWxlIGV4aXN0cyAkdmFycyhpbG1fbm9uX3NkY19maWxlKV19IHsgCi0gICAgICAgICAgICAgICAgICAgICBzZXQgZmhyIFtvcGVuICR2YXJzKGlsbV9ub25fc2RjX2ZpbGUpIHJdCi0gICAgICAgICAgICAgICAgICAgICBwdXRzICRvcCAiIyIKLSAgICAgICAgICAgICAgICAgICAgIHB1dHMgJG9wICIjIENvbnRlbnRzIG9mICR2YXJzKGlsbV9ub25fc2RjX2ZpbGUpIgotICAgICAgICAgICAgICAgICAgICAgcHV0cyAkb3AgIiMiCi0gICAgICAgICAgICAgICAgICAgICB3aGlsZSB7W2dldHMgJGZociBsaW5lXT49MH0gewotICAgICAgICAgICAgICAgICAgICAgICAgcHV0cyAkb3AgIiAgICRsaW5lIgotICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgY2xvc2UgJGZocgotICAgICAgICAgICAgICAgICAgICAgcHV0cyAkb3AgIiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIKLSAgICAgICAgICAgICAgICAgICAgIHNldCB2YXJzKHNhdmVfaWxtX25vbl9zZGNfZmlsZSkgJHZhcnMoaWxtX25vbl9zZGNfZmlsZSkKLSAgICAgICAgICAgICAgICAgICAgIHVuc2V0IHZhcnMoaWxtX25vbl9zZGNfZmlsZSkKLSAgICAgICAgICAgICAgICAgIH0gCi0gICAgICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoZGVyYXRlX3RjbCldfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBwdXRzICRvcCAic291cmNlICR2YXJzKGRlcmF0ZV90Y2wpIgotICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgIGZvcmVhY2ggY29ybmVyICR2YXJzKGRlbGF5X2Nvcm5lcnMpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHB1dHMgJG9wICRjb21tYW5kKCRjb3JuZXIpCi0gICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICBjbG9zZSAkb3AKLSAgICAgICAgICAgICAgICAgIGlmIHtbbGluZGV4IFtzcGxpdCAkdmFycyh2ZXJzaW9uKSAiLiJdICAwXSA8PSAxMH0gewotICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJsb2FkVGltaW5nQ29uIC1pbG1Ob25TZGNGaWxlIC5pbG1fbm9uX3NkY19maWxlLnRjbFxuIgotICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAic2V0SWxtTm9uU2RjQ29uc3RyYWludEZpbGUgLmlsbV9ub25fc2RjX2ZpbGUudGNsXG4iCi0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGRlcmF0ZV90Y2wpXX0gewotICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6c291cmNlX3BsdWcgZGVyYXRlX3RjbF0KLSAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiXG4iCi0gICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJzZXQgYWN0aXZlX2Nvcm5lcnMgXFthbGxfZGVsYXlfY29ybmVyc1xdXG4iCi0gICAgICAgICAgICAgICAgICAgICBmb3JlYWNoIGNvcm5lciAkdmFycyhkZWxheV9jb3JuZXJzKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiB7JGNvbW1hbmQoJGNvcm5lcikgIT0gIiJ9IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiaWYge1xbbHNlYXJjaCBcJGFjdGl2ZV9jb3JuZXJzICRjb3JuZXJcXSAhPSAtMX0ge1xuIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICRjb21tYW5kKCRjb3JuZXIpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIn1cbiIKLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoZGVyYXRlX3RjbCldfSB7Ci0gICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjpzb3VyY2VfcGx1ZyBkZXJhdGVfdGNsXQotICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJcbiIKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0KLSAgICAgICAgICJtaW5tYXgiIHsKLQotICAgICAgICAgICAgc2V0IGNvcm5lcnMobWluKSAkdmFycygkdmFycyhkZWZhdWx0X2hvbGRfdmlldyksZGVsYXlfY29ybmVyKQotICAgICAgICAgICAgc2V0IGNvcm5lcnMobWF4KSAkdmFycygkdmFycyhkZWZhdWx0X3NldHVwX3ZpZXcpLGRlbGF5X2Nvcm5lcikKLQotICAgICAgICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICAgICAgICMgRGVyYXRlIHRpbWluZyBpZiBkZXJhdGluZyBmYWN0b3JzIGFyZSBkZWZpbmVkCi0gICAgICAgICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgICAgICAgZm9yZWFjaCBvYmplY3QgImNlbGwgbmV0IiB7Ci0gICAgICAgICAgICAgICBmb3JlYWNoIGNvcm5lciAibWluIG1heCIgewotICAgICAgICAgICAgICAgICAgZm9yZWFjaCB0eXBlICJkYXRhIGNsb2NrIiB7Ci0gICAgICAgICAgICAgICAgICAgICBmb3JlYWNoIG1vZGUgImVhcmx5IGxhdGUiIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkY29ybmVycygkY29ybmVyKSwke3R5cGV9XyR7b2JqZWN0fV8ke21vZGV9KV19IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAic2V0X3RpbWluZ19kZXJhdGUgLSRjb3JuZXIgLSR0eXBlIC0ke29iamVjdH1fZGVsYXkgLSRtb2RlICR2YXJzKCRjb3JuZXJzKCRjb3JuZXIpLCR7dHlwZX1fJHtvYmplY3R9XyR7bW9kZX0pXG4iCi0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJGNvcm5lcnMoJGNvcm5lciksJHtvYmplY3R9XyR7dHlwZX1fJHttb2RlfSldfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgInNldF90aW1pbmdfZGVyYXRlIC0kY29ybmVyIC0kdHlwZSAtJHtvYmplY3R9X2RlbGF5IC0kbW9kZSAkdmFycygkY29ybmVycygkY29ybmVyKSwke29iamVjdH1fJHt0eXBlfV8ke21vZGV9KVxuIgotICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAgICAgZm9yZWFjaCBjb3JuZXIgIm1pbiBtYXgiIHsKLSAgICAgICAgICAgICAgIGZvcmVhY2ggbW9kZSAiZWFybHkgbGF0ZSIgewotICAgICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCRjb3JuZXJzKCRjb3JuZXIpLGNlbGxfY2hlY2tfJHttb2RlfSldfSB7Ci0gICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgInNldF90aW1pbmdfZGVyYXRlIC1jZWxsX2NoZWNrIC0kbW9kZSAkdmFycygkY29ybmVycygkY29ybmVyKSxjZWxsX2NoZWNrXyR7bW9kZX0pXG4iCi0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJGNvcm5lcnMoJGNvcm5lciksY2hlY2tfY2VsbF8ke21vZGV9KV19IHsKLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAic2V0X3RpbWluZ19kZXJhdGUgLWNlbGxfY2hlY2sgLSRtb2RlICR2YXJzKCRjb3JuZXJzKCRjb3JuZXIpLGNoZWNrX2NlbGxfJHttb2RlfSlcbiIKLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0KLSAgICAgICAgIGRlZmF1bHQgewotICAgICAgICAgICAgUHV0cyAiPEZGPiBJTlZBTElEIE9QVElPTiAuLi4gTVVTVCBCRSBFSVRIRVIgbWlubWF4IE9SIG1tbWMiCi0gICAgICAgICB9Ci0gICAgICB9Ci0gICAgICBpZiB7W2xpbmRleCBbc3BsaXQgJHZhcnModmVyc2lvbikgIi4iXSAgMF0gPiAxMH0gewotICAgICAgICAgc2V0IG9wIFtvcGVuICR2YXJzKHNjcmlwdF9kaXIpL3RpbWluZ2RlcmF0ZS5zZGMgd10KLSAgICAgICAgIHB1dHMgJG9wICRjb21tYW5kcwotICAgICAgICAgY2xvc2UgJG9wCi0jICAgICAgICAgc2V0IGNvbW1hbmRzICJzb3VyY2UgXCR2YXJzKHNjcmlwdF9kaXIpL3RpbWluZ2RlcmF0ZS5zZGNcbiIKLSAgICAgICAgIHNldCBjb21tYW5kcyAic291cmNlICR2YXJzKHNjcmlwdF9kaXIpL3RpbWluZ2RlcmF0ZS5zZGNcbiIKLSAgICAgIH0gCi0gICAgICByZXR1cm4gJGNvbW1hbmRzCi0gICB9Ci0gICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAjIFRoZSBjb2RlIGJlbG93IHVwZGF0ZXMgdGltaW5nIGRlcGVuZGluZyBvbiB3aGV0aGVyIHRoZSBjdXJyZW50IG1vZHVsZSBpcwotICAgIyAtIHRvcCBwYXJ0aXRpb24gaW4gYSBoaWVyYXJjaGljYWwgZmxvdwotICAgIyAtIHBhcnRpdGlvbiBpbiBhIGhpZXJhcmNoaWNhbCBmbG93Ci0gICAjIC0gY2hpcCBvciBibG9jayBpbiBhIGZsYXQgZmxvdwotICAgIyBUaW1pbmcgaXMgdXBkYXRlZCBieSBpbmNyZW1lbnRhbGx5IGFkZGluZyB0aGUgdmFycyhpbmNyX2N0c19zZGMpIHRvIGVhY2gKLSAgICMgY29uc3RyYWludCBtb2RlIHRoYXQgaGFzIG9uZSBkZWZpbmVkCi0gICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0KLSAgIHByb2MgdXBkYXRlX3RpbWluZyB7e3R5cGUgbWlubWF4fSB7c3dpdGNoX3RvX3Byb3BhZ2F0ZWQgdHJ1ZX19IHsKLQotICAgICAgZ2xvYmFsIHZhcnMKLQotICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycyhjb25zdHJhaW50X21vZGVzKV19IHsKLSAgICAgICAgIHJldHVybgotICAgICAgfQotCi0gICAgICBzZXQgY29tbWFuZHMgIlB1dHMgXCI8RkY+IFVQREFUSU5HIFRJTUlORyAuLi5cIlxuIgotCi0gICAgICBzZXQgcHRuIFtmaWxlIHRhaWwgW3B3ZF1dCi0gICAgICBzZXQgcGFyZW50IFtmaWxlIHRhaWwgW2ZpbGUgZGlybmFtZSBbcHdkXV1dCi0gICAgICBzZXQgdXBkYXRlIHRydWUKLSAgICAgIHNldCB0b3AgZmFsc2UKLSAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhwYXJ0aXRpb25fbGlzdCldICYmICgkcGFyZW50ID09ICIkdmFycyhwYXJ0aXRpb25fZGlyKSIpfSB7Ci0gICAgICAgICBpZiB7W2xzZWFyY2ggJHZhcnMocGFydGl0aW9uX2xpc3QpICRwdG5dICE9IC0xfSB7Ci0jICAgICAgICAgICAgc2V0IGlsbSBmYWxzZQotICAgICAgICAgICAgc2V0IHVwZGF0ZSBmYWxzZQotICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHNldCB0b3AgdHJ1ZQotICAgICAgICAgfQotICAgICAgfQotCi0jICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICBJTE0gJHZhcnMoaWxtKSwgVVBEQVRFICR1cGRhdGVcbiIKLQotICAgICAgaWYgeyRzd2l0Y2hfdG9fcHJvcGFnYXRlZH0gewotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJzZXQgb3AgXFtvcGVuIHByb3Auc2RjIHdcXVxuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJwdXRzIFwkb3AgXCJzZXRfcHJvcGFnYXRlZF9jbG9jayBcXFxbYWxsX2Nsb2Nrc1xcXF1cIlxuIgotICAgICAgICAgaWYgeyR2YXJzKGlsbSl9IHsKLSAgICAgICAgICAgIGlmIHskdmFycyhmbGF0KSAhPSAibm9uZSJ9IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkZfRURJOjpnZXRfY2xvY2tfcG9ydHNdCi0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJzZXQgY2xvY2tfcG9ydHMgXFtGRl9FREk6OmdldF9jbG9ja19wb3J0c1xdXG4iCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgImlmIHtcW2xsZW5ndGggXCRjbG9ja19wb3J0c1xdID4gMH0ge1xuIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIgICBmb3JlYWNoIHBvcnQgXCRjbG9ja19wb3J0cyB7XG4iCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiAgICAgIHB1dHMgXCRvcCBcInNldF9wcm9wYWdhdGVkX2Nsb2NrIFwkcG9ydFwiXG4iCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiAgIH1cbiIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAifVxuIgotICAgICAgICAgfQotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJjbG9zZSBcJG9wXG4iCi0gICAgICB9Ci0KLSAgICAgIHN3aXRjaCAkdHlwZSB7Ci0KLSAgICAgICAgICJtaW5tYXgiIHsKLSAgICAgICAgICAgIGlmIHskdmFycyhpbG0pICYmICR1cGRhdGV9IHsKLSAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhpbmNyX2N0c19zZGMpXX0gewotICAgICAgICAgICAgICAgICAgZm9yZWFjaCBmaWxlICR2YXJzKGluY3JfY3RzX3NkYykgewotICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJsb2FkVGltaW5nQ29uIC1pbG0gLWluY3IgJGZpbGVcbiIKLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIH0gZWxzZWlmIHtbaW5mbyBleGlzdHMgdmFycyhwb3N0X2N0c19zZGMpXX0gewotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgInVubG9hZFRpbWluZ0NvblxuIgotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJsb2FkVGltaW5nQ29uICBbbGluZGV4ICR2YXJzKHBvc3RfY3RzX3NkYykgMF1cbiIKLSAgICAgICAgICAgICAgICAgIGZvcmVhY2ggc2RjIFtscmFuZ2UgJHZhcnMocG9zdF9jdHNfc2RjKSAxIGVuZF0gewotICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgImxvYWRUaW1pbmdDb24gLWlsbSAtaW5jciAkc2RjXG4iCi0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICBpZiB7JHN3aXRjaF90b19wcm9wYWdhdGVkfSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgImxvYWRUaW1pbmdDb24gLWlsbSAtaW5jciBwcm9wLnNkY1xuIgotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIGlmIHskdXBkYXRlfSB7Ci0gICAgICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoaW5jcl9jdHNfc2RjKV19IHsKLSAgICAgICAgICAgICAgICAgICAgIGZvcmVhY2ggZmlsZSAkdmFycyhpbmNyX2N0c19zZGMpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAibG9hZFRpbWluZ0NvbiAtaW5jciAkZmlsZVxuIgotICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgfSBlbHNlaWYge1tpbmZvIGV4aXN0cyB2YXJzKHBvc3RfY3RzX3NkYyldfSB7Ci0gICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgInVubG9hZFRpbWluZ0NvblxuIgotICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJsb2FkVGltaW5nQ29uIFtsaW5kZXggJHZhcnMocG9zdF9jdHNfc2RjKSAwXVxuIgotICAgICAgICAgICAgICAgICAgICAgZm9yZWFjaCBzZGMgW2xyYW5nZSAkdmFycyhwb3N0X2N0c19zZGMpIDEgZW5kXSB7Ci0gICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAibG9hZFRpbWluZ0NvbiAtaW5jciAkc2RjXG4iCi0gICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICBpZiB7JHN3aXRjaF90b19wcm9wYWdhdGVkfSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgImxvYWRUaW1pbmdDb24gLWluY3IgcHJvcC5zZGNcbiIKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0KLSAgICAgICAgICJtbW1jIiB7Ci0jICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKHVwZGF0ZV9pb19sYXRlbmN5KV0gJiYgJHZhcnModXBkYXRlX2lvX2xhdGVuY3kpfSB7Ci0jICAgICAgICAgICAgICAgdXBkYXRlX2lvX2xhdGVuY3kKLSMgICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiB7JHN3aXRjaF90b19wcm9wYWdhdGVkfSB7Ci0gICAgICAgICAgICAgICBzZXQgcHJvcF9zZGMgInByb3Auc2RjIgotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIHNldCBwcm9wX3NkYyAiIgotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBmb3JlYWNoIG1vZGUgJHZhcnMoY29uc3RyYWludF9tb2RlcykgewotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJpZiB7XFtsc2VhcmNoIFxbYWxsX2NvbnN0cmFpbnRfbW9kZXNcXSAkbW9kZVxdICE9IC0xfSB7XG4iCi0gICAgICAgICAgICAgICBpZiB7JHVwZGF0ZX0gewotICAgICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCRtb2RlLGluY3JfY3RzX3NkYyldfSB7Ci0gICAgICAgICAgICAgICAgICAgICBpZiB7JHZhcnMoaWxtKX0gewotICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJzZXQgdmFycygkbW9kZSxwb3N0X2N0c19zZGNfbGlzdCkgXFtjb25jYXQgXFtnZXRfY29uc3RyYWludF9tb2RlICRtb2RlIC1pbG1fc2RjX2ZpbGVzXF0gJHZhcnMoJG1vZGUsaW5jcl9jdHNfc2RjKSAkcHJvcF9zZGNcXVxuIgotICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAic2V0IHZhcnMoJG1vZGUscG9zdF9jdHNfc2RjX2xpc3QpIFxbY29uY2F0IFxbZ2V0X2NvbnN0cmFpbnRfbW9kZSAkbW9kZSAtc2RjX2ZpbGVzXF0gJHZhcnMoJG1vZGUsaW5jcl9jdHNfc2RjKSAkcHJvcF9zZGNcXVxuIgotICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCRtb2RlLHBvc3RfY3RzX3NkYyldfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBwdXRzICAiPEZGPiBXQVJOSU5HOiBCT1RIIHZhcnMoJG1vZGUsaW5jcl9jdHNfc2RjKSBBTkQgdmFycygkbW9kZSxwb3N0X2N0c19zZGMpIEFSRSBERUZJTkVEIC4uLiIKLSAgICAgICAgICAgICAgICAgICAgICAgIHB1dHMgICI8RkY+ICAgICAgICAgIFVTSU5HIHZhcnMoJG1vZGUsaW5jcl9jdHNfc2RjKSIKLSAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJG1vZGUscG9zdF9jdHNfc2RjKV19IHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAic2V0IHZhcnMoJG1vZGUscG9zdF9jdHNfc2RjX2xpc3QpIFxbY29uY2F0ICR2YXJzKCRtb2RlLHBvc3RfY3RzX3NkYykgJHByb3Bfc2RjXF1cbiIKLSAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiB7JHZhcnMoaWxtKX0gewotICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgeyR2YXJzKGN0c19lbmdpbmUpID09ICJjdHMiIHx8ICgkdmFycyhzdGVwKSA9PSAiYXNzZW1ibGUiKX0gewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJzZXQgdmFycygkbW9kZSxwb3N0X2N0c19zZGNfbGlzdCkgXFtjb25jYXQgXFtnZXRfY29uc3RyYWludF9tb2RlICRtb2RlIC1pbG1fc2RjX2ZpbGVzXF0gJHByb3Bfc2RjXF1cbiIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiB7JHZhcnMoc3RlcCkgIT0gImFzc2VtYmxlIn0gewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICIiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgeyR2YXJzKGN0c19lbmdpbmUpID09ICJjdHMiIHx8ICgkdmFycyhzdGVwKSA9PSAiYXNzZW1ibGUiKX0gewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJzZXQgdmFycygkbW9kZSxwb3N0X2N0c19zZGNfbGlzdCkgXFtjb25jYXQgXFtnZXRfY29uc3RyYWludF9tb2RlICRtb2RlIC1zZGNfZmlsZXNcXSAkcHJvcF9zZGNcXVxuIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIHskdmFycyhzdGVwKSAhPSAiYXNzZW1ibGUifSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gIiIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICBpZiB7JHZhcnMoaWxtKX0gewotICAgICAgICAgICAgICAgICAgICAgaWYgeyR2YXJzKGN0c19lbmdpbmUpID09ICJjdHMifSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgInNldCB2YXJzKCRtb2RlLHBvc3RfY3RzX3NkY19saXN0KSBcW2NvbmNhdCBcW2dldF9jb25zdHJhaW50X21vZGUgJG1vZGUgLWlsbV9zZGNfZmlsZXNcXSAkcHJvcF9zZGNcXVxuIgotICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIHtbcmVnZXhwICJeYXNzZW1ibGUiICR2YXJzKHN0ZXApXX0gewotICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gIiIKLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICBpZiB7JHZhcnMoY3RzX2VuZ2luZSkgPT0gImN0cyJ9IHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAic2V0IHZhcnMoJG1vZGUscG9zdF9jdHNfc2RjX2xpc3QpIFxbY29uY2F0IFxbZ2V0X2NvbnN0cmFpbnRfbW9kZSAkbW9kZSAtc2RjX2ZpbGVzXF0gJHByb3Bfc2RjXF1cbiIKLSAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0jICAgICAgICAgICAgICAgICAgICAgICAgaWYge1tyZWdleHAgIl5hc3NlbWJsZSIgJHZhcnMoc3RlcCldfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAiIgotICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJ9XG4iCi0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGlmIHshJHZhcnMoaWxtKX0gewotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJzZXQgcmVzdG9yZSBcW2dldF9nbG9iYWwgdGltaW5nX2RlZmVyX21tbWNfb2JqZWN0X3VwZGF0ZXNcXVxuIgotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJzZXRfZ2xvYmFsIHRpbWluZ19kZWZlcl9tbW1jX29iamVjdF91cGRhdGVzIHRydWVcbiIKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgaWYgeyR2YXJzKGlsbSl9IHsKLSAgICAgICAgICAgICAgIGV4ZWMgL2Jpbi90b3VjaCBlbXB0eS5zZGMKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiZm9yZWFjaCBtb2RlIFxbYWxsX2NvbnN0cmFpbnRfbW9kZXNcXSB7XG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiAgIGlmIHtcW2luZm8gZXhpc3RzIHZhcnMoXCRtb2RlLHBvc3RfY3RzX3NkY19saXN0KVxdfSB7XG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiAgICAgIHVwZGF0ZV9jb25zdHJhaW50X21vZGUgLW5hbWUgXCRtb2RlIC1pbG1fc2RjX2ZpbGVzIFwkdmFycyhcJG1vZGUscG9zdF9jdHNfc2RjX2xpc3QpXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiAgIH0gZWxzZSB7XG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiAgICAgIGZvcmVhY2ggdmlldyBcW2FsbF9hbmFseXNpc192aWV3c10ge1xuIgotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIgICAgICAgICBzZXQgbSBcW3JlZ3N1YiBfXCR2aWV3IFwkbW9kZSBcIlwiXF1cbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiICAgICAgICAgaWYge1xbaW5mbyBleGlzdHMgdmFycyhcJG0scG9zdF9jdHNfc2RjX2xpc3QpXF19IHtcbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiICAgICAgICAgICAgdXBkYXRlX2NvbnN0cmFpbnRfbW9kZSAtbmFtZSBcJG1vZGUgLWlsbV9zZGNfZmlsZXMgXCR2YXJzKFwkbSxwb3N0X2N0c19zZGNfbGlzdClcbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiICAgICAgICAgfVxuIgotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIgICAgICB9IFxuIgotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIgICB9IFxuIgotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJ9IFxuIgotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiZm9yZWFjaCBtb2RlIFxbYWxsX2NvbnN0cmFpbnRfbW9kZXNcXSBce1xuIgotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIgICBpZiBce1xbaW5mbyBleGlzdHMgdmFycyhcJG1vZGUscG9zdF9jdHNfc2RjX2xpc3QpXF1cfSBce1xuIgotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIgICAgICB1cGRhdGVfY29uc3RyYWludF9tb2RlIC1uYW1lIFwkbW9kZSAtc2RjX2ZpbGVzIFwkdmFycyhcJG1vZGUscG9zdF9jdHNfc2RjX2xpc3QpXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiAgIFx9IGVsc2UgXHtcbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiICAgICAgZm9yZWFjaCB2aWV3IFxbYWxsX2FuYWx5c2lzX3ZpZXdzXSBce1xuIgotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIgICAgICAgICBzZXQgbSBcW3JlZ3N1YiBfXCR2aWV3IFwkbW9kZSBcIlwiXF1cbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiICAgICAgICAgaWYgXHtcW2luZm8gZXhpc3RzIHZhcnMoXCRtLHBvc3RfY3RzX3NkY19saXN0KVxdXH0gXHtcbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiICAgICAgICAgICAgdXBkYXRlX2NvbnN0cmFpbnRfbW9kZSAtbmFtZSBcJG1vZGUgLXNkY19maWxlcyBcJHZhcnMoXCRtLHBvc3RfY3RzX3NkY19saXN0KVxuIgotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIgICAgICAgICBcfVxuIgotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIgICAgICBcfSBcbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiICAgXH0gXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIlx9IFxuIgotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBpZiB7ISR2YXJzKGlsbSl9IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAic2V0X2FuYWx5c2lzX3ZpZXcgLXVwZGF0ZV90aW1pbmdcbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAic2V0X2dsb2JhbCB0aW1pbmdfZGVmZXJfbW1tY19vYmplY3RfdXBkYXRlcyBcJHJlc3RvcmVcbiIKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHNldCB0aGlzX2luZGV4IFtsc2VhcmNoICR2YXJzKHN0ZXBzKSAkdmFycyhzdGVwKV0KLSAgICAgICAgICAgIHNldCBwcmlvciBbbGluZGV4ICR2YXJzKHN0ZXBzKSBbZXhwciAkdGhpc19pbmRleCAtIDFdXQotICAgICAgICAgICAgIyBCQ0w6IEFkZGVkIHN1YnN0IGFyb3VuZCB2YXJzKGRic19kaXIpCi0gICAgICAgICAgICBpZiB7W2ZpbGUgaXNmaWxlIFtzdWJzdCAkdmFycyhkYnNfZGlyKV0vJHByaW9yLmVuYy5kYXQvbW1tYy9wYXRoZ3JvdXAuc2RjXX0gewotICAgICAgICAgICAgICAgIyBCQ0w6IEFkZGVkIHN1YnN0IGFyb3VuZCB2YXJzKGRic19kaXIpCi0gICAgICAgICAgICAgICBzZXQgdmFycyhwYXRoX2dyb3VwX3NkYykgW3N1YnN0ICR2YXJzKGRic19kaXIpXS8kcHJpb3IuZW5jLmRhdC9tbW1jL3BhdGhncm91cC5zZGMKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiZmZfcHJvY3M6OmxvYWRfcGF0aF9ncm91cHMgJHZhcnMocGF0aF9ncm91cF9zZGMpXG4iCi0gICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0gICAgICAgICBkZWZhdWx0IHsKLSAgICAgICAgICAgIHB1dHMgJHZhcnMoY29kZ2VuX2xvZykgIjxGRj4gSU5WQUxJRCBPUFRJT04gLi4uIE1VU1QgQkUgRUlUSEVSIG1pbm1heCBPUiBtbW1jIgotICAgICAgICAgfQotICAgICAgfQotICAgICAgcmV0dXJuICRjb21tYW5kcwotICAgfQotCi0gICBwcm9jIGluaXRpYWxpemVfdGltaW5nIHt7dHlwZSBtbW1jfX0gewotCi0gICAgICBnbG9iYWwgdmFycwotICAgICAgZ2xvYmFsIGVudgotICAgICAgZ2xvYmFsIGluaXQKLSAgICAgIGdsb2JhbCB3YXJuaW5ncwotCi0gICAgICBzZXQgdmFycyhkZWxheV9jb3JuZXJzKSAkdmFycyhnb29kX2Nvcm5lcnMpCi0KLSMgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnModmlld19kZWZpbml0aW9uX3RjbCldfSB7Ci0jICAgICAgICAgcmV0dXJuICIiCi0jICAgICAgfQotCi0gICAgICBpZiB7JHZhcnModmVyYm9zZSl9IHsKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiI1xuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICBJTklUSUFMSVpJTkcgW3N0cmluZyB0b3VwcGVyICR0eXBlXSBUSU1JTkdcbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiI1xuIgotICAgICAgfQotCi0gICAgICBpZiB7JHZhcnMoZGVidWcpfSB7Ci0gICAgICAgICAgcHV0cyAiPERFQlVHPiBFeGVjdXRpbmcgcHJvYzogaW5pdGlhbGl6ZV90aW1pbmcgLi4uIgotICAgICAgfQotCi0gICAgICBzd2l0Y2ggJHR5cGUgewotICAgICAgICAgbWlubWF4IHsKLSMgICAgICAgICAgICBpZiB7KFtsbGVuZ3RoICR2YXJzKHJjX2Nvcm5lcnMpXSA+IDEpfSB7Ci0jICAgICAgICAgICAgICAgcHV0cyAgIjxGRj4gV0FSTklORzogVEhFIFwiZGVmYXVsdFwiIEZMT1cgU0hPVUxEIE9OTFkgSEFWRSBBIFNJTkdMRSBSQyBDT1JORVIiCi0jICAgICAgICAgICAgICAgcHV0cyAgIjxGRj4gICAgICAgICAgQlVUIFtsbGVuZ3RoICR2YXJzKHJjX2Nvcm5lcnMpXSBDT1JORVJTIEFSRSBERUZJTkVEICgkdmFycyhyY19jb3JuZXJzKSkiCi0jICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAgICAgICAjIERlZmluZSBSQyBjb3JuZXJzIGFuZCBzZXQgdGhlIGFwcHJvcHJpYXRlIHRlbXBlcmF0dXJlcy4gIFRoaXMKLSAgICAgICAgICAgICMgcmVxdWlyZXMgdGhhdCB0aGUgY2FwIHRhYmxlcyB1c2UgLWJlc3QvLXdvcnN0IHN5bnRheCBpbiB0aGUKLSAgICAgICAgICAgICMgY29uZmlndXJhdGlvbiBmaWxlLiAgU2NhbGluZyBmYWN0b3JzIHNob3VsZCBiZSBkZXJpdmVkIHVzaW5nCi0gICAgICAgICAgICAjIE9zdHJpY2ggVmFsdWVzIGZvciB0aGUgZGVmYXVsdCB0aW1pbmcgZW52aXJvbm1lbnQgaXMgZGVyaXZlZAotICAgICAgICAgICAgIyBmcm9tIHRoZSBkZWZhdWx0IHNldHVwIGFuZCBob2xkIGFuYWx5c2lzIHZpZXdzCi0gICAgICAgICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0KLSAgICAgICAgICAgIHNldCBjb3JuZXJzKG1pbikgJHZhcnMoJHZhcnMoZGVmYXVsdF9ob2xkX3ZpZXcpLGRlbGF5X2Nvcm5lcikKLSAgICAgICAgICAgIHNldCBjb3JuZXJzKG1heCkgJHZhcnMoJHZhcnMoZGVmYXVsdF9zZXR1cF92aWV3KSxkZWxheV9jb3JuZXIpCi0gICAgICAgICAgICBzZXQgY29ybmVyICR2YXJzKCRjb3JuZXJzKG1heCkscmNfY29ybmVyKQotCi0jICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIGVudihGRl9LSVRfUEFUSCldfSB7Ci0gICAgICAgICAgICBpZiB7IVtjYXRjaCB7c2V0IG1heCAkdmFycygkdmFycygkY29ybmVycyhtYXgpLHJjX2Nvcm5lciksVCl9XSAmJgotICAgICAgICAgICAgICAgICFbY2F0Y2gge3NldCBtaW4gJHZhcnMoJHZhcnMoJGNvcm5lcnMobWluKSxyY19jb3JuZXIpLFQpfV19IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBcCi0gICAgICAgICAgICAgICAgICAiZGVmaW5lUkNDb3JuZXIgLWxhdGUgd29yc3QgJG1heCAtZWFybHkgYmVzdCAkbWluXG4iCi0gICAgICAgICAgICB9Ci0jICAgICAgICAgICB9IGVsc2UgewotIyAgICAgICAgICAgICAgUHV0cyAiPEZGPiBVU0lORyBTSU5HTEUgUkMgQ09STkVSICR2YXJzKCRjb3JuZXJzKG1heCkscmNfY29ybmVyKSIKLSMgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkdmFycygkY29ybmVycyhtYXgpLHJjX2Nvcm5lciksVCldfSB7Ci0jICAgICAgICAgICAgICAgICBzZXRFeHRyYWN0UkNNb2RlIC1zY09wVGVtcCAkdmFycygkdmFycygkY29ybmVycyhtYXgpLHJjX2Nvcm5lciksVCkKLSMgICAgICAgICAgICAgIH0KLSMgICAgICAgICAgIH0KLQotICAgICAgICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgICAgICAgIyBTZXQgc2NhbGluZyBmYWN0b3JzIC4uLiBmb3IgcHJlLXJvdXRlIG9wdGltaXphdGlvbiwgdGhlIGRldGFpbGVkCi0gICAgICAgICAgICAjIGNhcCBmYWN0b3IgaXMgc2V0IHRvIHRoZSBkZXRhaWxlZCBjbG9jayBjYXAgZmFjdG9yLiAgVGhpcyB3aWxsCi0gICAgICAgICAgICAjIGJlIHJlc2V0IHBvc3Qtcm91dGUKLSAgICAgICAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLQotICAgICAgICAgICBzZXQgYXJncyAiIgotICAgICAgICAgICAgaWYgeyFbY2F0Y2gge3NldCBhcmcgJHZhcnMoJGNvcm5lcixwcmVfcm91dGVfcmVzX2ZhY3Rvcil9XX0gewotICAgICAgICAgICAgICAgYXBwZW5kIGFyZ3MgIiAtcHJlUm91dGVfcmVzICRhcmciCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiB7IVtjYXRjaCB7c2V0IGFyZyAkdmFycygkY29ybmVyLHByZV9yb3V0ZV9jYXBfZmFjdG9yKX1dfSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgYXJncyAiIC1wcmVSb3V0ZV9jYXAgJGFyZyIKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIHshW2NhdGNoIHtzZXQgYXJnICR2YXJzKCRjb3JuZXIscHJlX3JvdXRlX2Nsa19yZXNfZmFjdG9yKX1dfSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgYXJncyAiIC1wcmVSb3V0ZV9jbGtyZXMgJGFyZyIKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIHshW2NhdGNoIHtzZXQgYXJnICR2YXJzKCRjb3JuZXIscHJlX3JvdXRlX2Nsa19jYXBfZmFjdG9yKX1dfSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgYXJncyAiIC1wcmVSb3V0ZV9jbGtjYXAgJGFyZyIKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIHshW2NhdGNoIHtzZXQgYXJnICR2YXJzKCRjb3JuZXIscG9zdF9yb3V0ZV9yZXNfZmFjdG9yKX1dfSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgYXJncyAiIC1wb3N0Um91dGVfcmVzICIKLSAgICAgICAgICAgICAgIGlmIHtbbGxlbmd0aCAkYXJnXSA+IDF9IHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBhcmdzICJcIltsaW5kZXggJGFyZyAyXSxbbGluZGV4ICRhcmcgMV0sW2xpbmRleCAkYXJnIDBdXCIiCi0gICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgYXBwZW5kIGFyZ3MgJGFyZwotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgeyFbY2F0Y2gge3NldCBhcmcgJHZhcnMoJGNvcm5lcixwb3N0X3JvdXRlX2NhcF9mYWN0b3IpfV19IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBhcmdzICIgLXBvc3RSb3V0ZV9jYXAgIgotICAgICAgICAgICAgICAgaWYge1tsbGVuZ3RoICRhcmddID4gMX0gewotICAgICAgICAgICAgICAgICAgYXBwZW5kIGFyZ3MgIlwiW2xpbmRleCAkYXJnIDJdLFtsaW5kZXggJGFyZyAxXSxbbGluZGV4ICRhcmcgMF1cIiIKLSAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgYXJncyAkYXJnCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiB7IVtjYXRjaCB7c2V0IGFyZyAkdmFycygkY29ybmVyLHBvc3Rfcm91dGVfY2xrX3Jlc19mYWN0b3IpfV19IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBhcmdzICIgLXBvc3RSb3V0ZV9jbGtyZXMgIgotICAgICAgICAgICAgICAgaWYge1tsbGVuZ3RoICRhcmddID4gMX0gewotICAgICAgICAgICAgICAgICAgYXBwZW5kIGFyZ3MgIlwiW2xpbmRleCAkYXJnIDJdLFtsaW5kZXggJGFyZyAxXSxbbGluZGV4ICRhcmcgMF1cIiIKLSAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgYXJncyAkYXJnCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiB7IVtjYXRjaCB7c2V0IGFyZyAkdmFycygkY29ybmVyLHBvc3Rfcm91dGVfY2xrX2NhcF9mYWN0b3IpfV19IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBhcmdzICIgLXBvc3RSb3V0ZV9jbGtjYXAgIgotICAgICAgICAgICAgICAgaWYge1tsbGVuZ3RoICRhcmddID4gMX0gewotICAgICAgICAgICAgICAgICAgYXBwZW5kIGFyZ3MgIlwiW2xpbmRleCAkYXJnIDJdLFtsaW5kZXggJGFyZyAxXSxbbGluZGV4ICRhcmcgMF1cIiIKLSAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgYXJncyAkYXJnCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiB7IVtjYXRjaCB7c2V0IGFyZyAkdmFycygkY29ybmVyLHBvc3Rfcm91dGVfeGNhcF9mYWN0b3IpfV19IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBhcmdzICIgLXBvc3RSb3V0ZV94Y2FwICIKLSAgICAgICAgICAgICAgIGlmIHtbbGxlbmd0aCAkYXJnXSA+IDF9IHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBhcmdzICJcIltsaW5kZXggJGFyZyAyXSxbbGluZGV4ICRhcmcgMV0sW2xpbmRleCAkYXJnIDBdXCIiCi0gICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgYXBwZW5kIGFyZ3MgJGFyZwotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgeyRhcmdzICE9ICIifSB7Ci0gICAgICAgICAgICAgICBzZXQgY29tbWFuZCAic2V0UkNGYWN0b3IgJGFyZ3NcbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxzZXRfcmNfZmFjdG9yICRjb21tYW5kXQotICAgICAgICAgICAgfQotICAgICAgICAgICAgc2V0IGNvbW1hbmQgW0ZGX0VESTo6ZGVyYXRlX3RpbWluZyBtaW5tYXhdCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksZGVyYXRlX3RpbWluZyAkY29tbWFuZF0KLSAgICAgICAgIH0KLSAgICAgICAgIG1tbWMgewotICAgICAgICAgICAgaWYgeyR2YXJzKHZlcmJvc2UpfSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiNcbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgQ1JFQVRJTkcgUkMgQ09STkVSUyAuLi5cbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiI1xuIgotICAgICAgICAgICAgfQotICAgICAgICAgICAgZm9yZWFjaCByYyAkdmFycyhyY19jb3JuZXJzKSB7Ci0jICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgIlxuIgotICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgIiIKLSAgICAgICAgICAgICAgIHNldCBub25fY29tbWFuZCAiIgotICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCRyYyxzY2FsZV90Y2wpXX0gewotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgImNyZWF0ZV9yY19jb3JuZXIgLW5hbWUgJHJjIgotIyAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgLWNhcF90YWJsZSAkdmFycygkcmMsY2FwX3RhYmxlKSAiCi0gICAgICAgICAgICAgICAgICBmb3JlYWNoIG9wdGlvbiAiY2FwX3RhYmxlIFQgcXhfdGVjaF9maWxlIHF4X2NvbmZfZmlsZSBxeF9saWJfZmlsZSIgewotICAgICAgICAgICAgICAgICAgICAgaWYgeyFbY2F0Y2gge3NldCBhcmcgJHZhcnMoJHJjLCRvcHRpb24pfV19IHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgLSRvcHRpb24gJGFyZyIKLSAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJcbiIKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kIFtGRjo6c291cmNlX3BsdWcgIiRyYyxzY2FsZV90Y2wiXQotICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJjcmVhdGVfcmNfY29ybmVyIC1uYW1lICRyYyIKLSAgICAgICAgICAgICAgICAgIGZvcmVhY2ggb3B0aW9uICJjYXBfdGFibGUgVCBxeF90ZWNoX2ZpbGUgcXhfY29uZl9maWxlIHF4X2xpYl9maWxlIiB7Ci0gICAgICAgICAgICAgICAgICAgICBpZiB7IVtjYXRjaCB7c2V0IGFyZyAkdmFycygkcmMsJG9wdGlvbil9XX0gewotICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAtJG9wdGlvbiAkYXJnIgotICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgfQotIyAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJcbiIKLSMgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiIC1jYXBfdGFibGUgJHZhcnMoJHJjLGNhcF90YWJsZSkgIgotICAgICAgICAgICAgICAgICAgaWYgeyFbY2F0Y2gge3NldCBhcmcgJHZhcnMoJHJjLHByZV9yb3V0ZV9yZXNfZmFjdG9yKX1dfSB7Ci0gICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiIC1wcmVSb3V0ZV9yZXMgJGFyZyIKLSAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICBhcHBlbmQgbm9uX2NvbW1hbmQgIiMgLXByZVJvdXRlX3JlcyBcJHZhcnMoJHJjLHByZV9yb3V0ZV9yZXNfZmFjdG9yKVxuIgotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgaWYgeyFbY2F0Y2gge3NldCBhcmcgJHZhcnMoJHJjLHByZV9yb3V0ZV9jYXBfZmFjdG9yKX1dfSB7Ci0gICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiIC1wcmVSb3V0ZV9jYXAgJGFyZyIKLSAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICBhcHBlbmQgbm9uX2NvbW1hbmQgIiMgLXByZVJvdXRlX2NhcCBcJHZhcnMoJHJjLHByZV9yb3V0ZV9jYXBfZmFjdG9yKVxuIgotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgaWYgeyFbY2F0Y2gge3NldCBhcmcgJHZhcnMoJHJjLHByZV9yb3V0ZV9jbGtfcmVzX2ZhY3Rvcil9XX0gewotICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAtcHJlUm91dGVfY2xrcmVzICRhcmciCi0gICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIG5vbl9jb21tYW5kICIjIC1wcmVSb3V0ZV9jbGtyZXMgXCR2YXJzKCRyYyxwcmVfcm91dGVfY2xrX3Jlc19mYWN0b3IpXG4iCi0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICBpZiB7IVtjYXRjaCB7c2V0IGFyZyAkdmFycygkcmMscHJlX3JvdXRlX2Nsa19jYXBfZmFjdG9yKX1dfSB7Ci0gICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiIC1wcmVSb3V0ZV9jbGtjYXAgJGFyZyIKLSAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICBhcHBlbmQgbm9uX2NvbW1hbmQgIiMgLXByZVJvdXRlX2Nsa2NhcCBcJHZhcnMoJHJjLHByZV9yb3V0ZV9jbGtfY2FwX2ZhY3RvcilcbiIKLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIGlmIHshW2NhdGNoIHtzZXQgYXJnICR2YXJzKCRyYyxwb3N0X3JvdXRlX3Jlc19mYWN0b3IpfV19IHsKLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgLXBvc3RSb3V0ZV9yZXMgIgotICAgICAgICAgICAgICAgICAgICAgaWYge1tsbGVuZ3RoICRhcmddID4gMX0gewotICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIlwiJGFyZ1wiIgotICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICRhcmcKLSAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICBhcHBlbmQgbm9uX2NvbW1hbmQgIiMgLXBvc3RSb3V0ZV9yZXMgXCR2YXJzKCRyYyxwb3N0X3JvdXRlX3Jlc19mYWN0b3IpXG4iCi0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICBpZiB7IVtjYXRjaCB7c2V0IGFyZyAkdmFycygkcmMscG9zdF9yb3V0ZV9jYXBfZmFjdG9yKX1dfSB7Ci0gICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiIC1wb3N0Um91dGVfY2FwICIKLSAgICAgICAgICAgICAgICAgICAgIGlmIHtbbGxlbmd0aCAkYXJnXSA+IDF9IHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJcIiRhcmdcIiIKLSAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAkYXJnCi0gICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIG5vbl9jb21tYW5kICIjIC1wb3N0Um91dGVfY2FwIFwkdmFycygkcmMscG9zdF9yb3V0ZV9jYXBfZmFjdG9yKVxuIgotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgaWYgeyFbY2F0Y2gge3NldCBhcmcgJHZhcnMoJHJjLHBvc3Rfcm91dGVfY2xrX3Jlc19mYWN0b3IpfV19IHsKLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgLXBvc3RSb3V0ZV9jbGtyZXMgIgotICAgICAgICAgICAgICAgICAgICAgaWYge1tsbGVuZ3RoICRhcmddID4gMX0gewotICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIlwiJGFyZ1wiIgotICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICRhcmcKLSAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICBhcHBlbmQgbm9uX2NvbW1hbmQgIiMgLXBvc3RSb3V0ZV9yZXMgXCR2YXJzKCRyYyxwb3N0X3JvdXRlX2Nsa19yZXNfZmFjdG9yKVxuIgotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgaWYgeyFbY2F0Y2gge3NldCBhcmcgJHZhcnMoJHJjLHBvc3Rfcm91dGVfY2xrX2NhcF9mYWN0b3IpfV19IHsKLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgLXBvc3RSb3V0ZV9jbGtjYXAgIgotICAgICAgICAgICAgICAgICAgICAgaWYge1tsbGVuZ3RoICRhcmddID4gMX0gewotICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIlwiJGFyZ1wiIgotICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICRhcmcKLSAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICBhcHBlbmQgbm9uX2NvbW1hbmQgIiMgLXBvc3RSb3V0ZV9jbGtjYXAgXCR2YXJzKCRyYyxwb3N0X3JvdXRlX2Nsa19jYXBfZmFjdG9yKVxuIgotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgaWYgeyFbY2F0Y2gge3NldCBhcmcgJHZhcnMoJHJjLHBvc3Rfcm91dGVfeGNhcF9mYWN0b3IpfV19IHsKLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgLXBvc3RSb3V0ZV94Y2FwICIKLSAgICAgICAgICAgICAgICAgICAgIGlmIHtbbGxlbmd0aCAkYXJnXSA+IDF9IHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJcIiRhcmdcIiIKLSAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAkYXJnCi0gICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIG5vbl9jb21tYW5kICIjIC1wb3N0Um91dGVfeGNhcCBcJHZhcnMoJHJjLHBvc3Rfcm91dGVfeGNhcF9mYWN0b3IpXG4iCi0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksY3JlYXRlX3JjX2Nvcm5lciAkY29tbWFuZF0KLSAgICAgICAgICAgICAgIGlmIHskbm9uX2NvbW1hbmQgIT0gIiJ9IHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIgotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjIEFkZGl0aW9uYWwgKHVudXNlZCkgb3B0aW9ucyAuLi4uXG4iCi0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiIKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAkbm9uX2NvbW1hbmQKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIgotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycyhjcGZfZmlsZSldIHx8IChbaW5mbyBleGlzdHMgdmFycyhjcGZfZmlsZSldICYmICEkdmFycyhjcGZfdGltaW5nKSl9IHsKLSAgICAgICAgICAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICAgICAgICAgICMgQ1BGX1RJTUlORyA9PSBGQUxTRQotICAgICAgICAgICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgIiIKLSAgICAgICAgICAgICAgIGlmIHskdmFycyh2ZXJib3NlKX0gewotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiNcbiIKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICIjIDxGRj4gQ1JFQVRJTkcgTElCUkFSWSBTRVRTIC4uLlxuIgotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiNcbiIKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAkY29tbWFuZAotICAgICAgICAgICAgICAgZm9yZWFjaCBzZXQgJHZhcnMobGlicmFyeV9zZXRzKSB7Ci0gICAgICAgICAgICAgICAgICBzZXQgY29tbWFuZCAiIgotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgImNyZWF0ZV9saWJyYXJ5X3NldCAtbmFtZSAkc2V0IC10aW1pbmcgXFtsaXN0ICIKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICIkdmFycygkc2V0LHRpbWluZykgIgotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIlxdXG4iCi0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksY3JlYXRlX2xpYnJhcnlfc2V0ICRjb21tYW5kXQotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKG9wY29uZHMpXX0gewotICAgICAgICAgICAgICAgICAgaWYgeyR2YXJzKHZlcmJvc2UpfSB7Ci0gICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiI1xuIgotICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiMgPEZGPiBDUkVBVElORyBPUEVSQVRJTkcgQ09ORElUSU9OUyAuLi5cbiIKLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICIjXG4iCi0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICBmb3JlYWNoIG9wY29uZCAkdmFycyhvcGNvbmRzKSB7Ci0gICAgICAgICAgICAgICAgICAgICBzZXQgY29tbWFuZCAiY3JlYXRlX29wX2NvbmQgLW5hbWUgJG9wY29uZCIKLSAgICAgICAgICAgICAgICAgICAgICMgV2UgYWxyZWFkeSBjaGVja2VkIHNvIHdlIGtub3cgdGhlc2Ugb3B0aW9ucyBleGlzdAotICAgICAgICAgICAgICAgICAgICAgZm9yZWFjaCBvcHRpb24gImxpYnJhcnlfZmlsZSBQIFYgVCIgewotICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAtJG9wdGlvbiAkdmFycygkb3Bjb25kLCRvcHRpb24pIgotICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIlxuIgotICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLGNyZWF0ZV9vcF9jb25kICRjb21tYW5kXQotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgIiIKLSAgICAgICAgICAgICAgIGlmIHskdmFycyh2ZXJib3NlKX0gewotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiNcbiIKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICIjIDxGRj4gQ1JFQVRJTkcgREVMQVkgQ09STkVSUyAuLi5cbiIKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICIjXG4iCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgJGNvbW1hbmQKLSAgICAgICAgICAgICAgIGZvcmVhY2ggYyAkdmFycyhkZWxheV9jb3JuZXJzKSB7Ci0jICAgICAgICAgICAgICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycygkYyxyY19jb3JuZXIpXX0geyAKLSMgICAgICAgICAgICAgICAgICAgICBwdXRzICJTa2lwcGluZyBkZWxheSBjb3JuZXJzICRjIgotIyAgICAgICAgICAgICAgICAgICAgIFB1dHMgIjxGRj4gRVJST1I6IFJDIGNvcm5lciBmb3IgZGVsYXkgY29ybmVyICRjIG1pc3NpbmciCi0jICAgICAgICAgICAgICAgICAgICAgY29udGludWUgCi0jICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgIiIKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJjcmVhdGVfZGVsYXlfY29ybmVyIC1uYW1lICRjIgotICAgICAgICAgICAgICAgICAgaWYgeyFbY2F0Y2gge3NldCBhcmcgJHZhcnMoJGMsbGlicmFyeV9zZXQpfV19IHsKLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgLWxpYnJhcnlfc2V0ICRhcmciCi0gICAgICAgICAgICAgICAgICB9IGVsc2VpZiB7IVtjYXRjaCB7c2V0IGVhcmx5ICR2YXJzKCRjLGVhcmx5X2xpYnJhcnlfc2V0KX1dICYmCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIVtjYXRjaCB7c2V0IGxhdGUgJHZhcnMoJGMsbGF0ZV9saWJyYXJ5X3NldCl9XX0gewotICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAtZWFybHlfbGlicmFyeV9zZXQgJGVhcmx5IgotICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAtbGF0ZV9saWJyYXJ5X3NldCAkbGF0ZSIKLSAgICAgICAgICAgICAgICAgIH0gIGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgUHV0cyAiPEZGPiBFUlJPUjogTGlicmFyeSBzZXRzIGZvciBkZWxheSBjb3JuZXIgJGMgbm90IGRlZmluZWQgcHJvcGVybHkiCi0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiIC1yY19jb3JuZXIgJHZhcnMoJGMscmNfY29ybmVyKSIKLSAgICAgICAgICAgICAgICAgIGlmIHshW2NhdGNoIHtzZXQgb3Bjb25kICR2YXJzKCRjLG9wY29uZCl9XSAmJgotICAgICAgICAgICAgICAgICAgICAgICFbY2F0Y2gge3NldCBsaWJyYXJ5ICR2YXJzKCRjLG9wY29uZF9saWJyYXJ5KX1dfSB7Ci0gICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiIC1vcGNvbmRfbGlicmFyeSAkbGlicmFyeSIKLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgLW9wY29uZCAkb3Bjb25kIgotICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgIGlmIHshW2NhdGNoIHtzZXQgZWFybHkgJHZhcnMoJGMsZWFybHlfb3Bjb25kX2xpYnJhcnkpfV0gJiYKLSAgICAgICAgICAgICAgICAgICAgICAgICAhW2NhdGNoIHtzZXQgbGF0ZSAkdmFycygkYyxsYXRlX29wY29uZF9saWJyYXJ5KX1dfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiIC1lYXJseV9vcGNvbmRfbGlicmFyeSAkZWFybHkiCi0gICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiIC1sYXRlX29wY29uZF9saWJyYXJ5ICRsYXRlIgotICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgaWYgeyFbY2F0Y2gge3NldCBlYXJseV9vcGNvbmQgJHZhcnMoJGMsZWFybHlfb3Bjb25kKX1dICYmCi0gICAgICAgICAgICAgICAgICAgICAgICAgIVtjYXRjaCB7c2V0IGxhdGVfb3Bjb25kICR2YXJzKCRjLGxhdGVfb3Bjb25kKX1dfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiIC1lYXJseV9vcGNvbmQgJGVhcmx5X29wY29uZCIKLSAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgLWxhdGVfb3Bjb25kICRsYXRlX29wY29uZCIKLSAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJcbiIKLSAgICAgICAgICAgICAgICAgIGlmIHshW2NhdGNoIHtzZXQgZG9tYWlucyAkdmFycygkYyxwb3dlcl9kb21haW5zKX1dfSB7Ci0gICAgICAgICAgICAgICAgICAgICBzZXQgYXR0cmlidXRlX2xpc3QgImxpYnJhcnlfc2V0IG9wY29uZF9saWJyYXJ5IG9wY29uZCBpcmRyb3BfZmlsZSBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhdGVfbGlicmFyeV9zZXQgZWFybHlfbGlicmFyeV9zZXQgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXRlX29wY29uZF9saWJyYXJ5IGVhcmx5X29wY29uZF9saWJyYXJ5IFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF0ZV9vcGNvbmQgZWFybHlfb3Bjb25kIGxhdGVfaXJkcm9wX2ZpbGUgZWFybHlfaXJkcm9wX2ZpbGUiCi0gICAgICAgICAgICAgICAgICAgICBmb3JlYWNoIGRvbWFpbiAkZG9tYWlucyB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiIHVwZGF0ZV9kZWxheV9jb3JuZXIgLW5hbWUgJGMgLXBvd2VyX2RvbWFpbiBcIiRkb21haW5cIiIKLSAgICAgICAgICAgICAgICAgICAgICAgICBmb3JlYWNoIGF0dHIgJGF0dHJpYnV0ZV9saXN0IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJGMsJGRvbWFpbiwkYXR0cildfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAtJGF0dHIgJHZhcnMoJGMsJGRvbWFpbiwkYXR0cikiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSAKLSAgICAgICAgICAgICAgICAgICAgICAgICB9IAotICAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJcbiIKLSAgICAgICAgICAgICAgICAgICAgIH0KLSMgICAgICAgICAgICAgICAgICAgICAgICBpZiB7IVtjYXRjaCB7c2V0IG9wY29uZCAkdmFycygkZG9tYWluLG9wY29uZCl9XSAmJgotIyAgICAgICAgICAgICAgICAgICAgICAgICAgICAhW2NhdGNoIHtzZXQgbGlicmFyeSAkdmFycygkZG9tYWluLG9wY29uZF9saWJyYXJ5KX1dfSB7Ci0jICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAtb3Bjb25kX2xpYnJhcnkgJGxpYnJhcnkiCi0jICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAtb3Bjb25kICRvcGNvbmQiCi0jICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLGNyZWF0ZV9kZWxheV9jb3JuZXIgJGNvbW1hbmRdCi0gICAgICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgICAgIHNldCBjb21tYW5kICIiCi0gICAgICAgICAgICAgICBpZiB7JHZhcnModmVyYm9zZSl9IHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICIjXG4iCi0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiIyA8RkY+IENSRUFUSU5HIENPTlNUUkFJTlQgTU9ERVMgLi4uXG4iCi0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiI1xuIgotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICRjb21tYW5kCi0KLSAgICAgICAgICAgICAgICMgVmFyaWFibGUgY2NvbW1hbmQgY2FwdHVyZXMgdGhlIGNvbnN0cmFpbnQgY3JlYXRpb24gZm9yIHRoZSB2aWV3X2RlZmluaXRpb24udGNsIAotICAgICAgICAgICAgICAgIyBWYXJpYWJsZSB1Y29tbWFuZCBjYXB0dXJlIHRoZSBjb25zdHJhaW50IHVwZGF0ZXMgZm9yIGhpZXIvaWxtIGZsb3dzCi0gICAgICAgICAgICAgICAjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIAotICAgICAgICAgICAgICAgc2V0IGNjb21tYW5kICIiCi0KLSAgICAgICAgICAgICAgIHNldCBhY3RpdmVfdmlld3MgW2xpc3RdCi0gICAgICAgICAgICAgICBzZXQgYWN0aXZlX21vZGVzIFtsaXN0XQotCi0gICAgICAgICAgICAgICAjIEdldCBtb2RlcyBhY3R1YWxseSB1c2VkIC4uLiAoY2hhbmdlZCBmcm9tIGFjdGl2ZSB0byBhbGwgdmlld3MpCi0gICAgICAgICAgICAgICBmb3JlYWNoIHZpZXcgW2NvbmNhdCAkdmFycyhzZXR1cF9hbmFseXNpc192aWV3cykgJHZhcnMoaG9sZF9hbmFseXNpc192aWV3cyldIHsKLSAgICAgICAgICAgICAgICAgIGlmIHtbbHNlYXJjaCAkYWN0aXZlX3ZpZXdzICR2aWV3XSA9PSAtMX0gewotIyAgICAgICAgICAgICAgICAgICAgIGxhcHBlbmQgYWN0aXZlX3ZpZXdzICR2aWV3Ci0gICAgICAgICAgICAgICAgICAgICBpZiB7W2xzZWFyY2ggJGFjdGl2ZV9tb2RlcyAkdmFycygkdmlldyxjb25zdHJhaW50X21vZGUpXSA9PSAtMX0gewotICAgICAgICAgICAgICAgICAgICAgICAgbGFwcGVuZCBhY3RpdmVfbW9kZXMgJHZhcnMoJHZpZXcsY29uc3RyYWludF9tb2RlKQotICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgc2V0IGZsYXR0ZW5faWxtIDAKLSAgICAgICAgICAgICAgIGZvcmVhY2ggY29uc3RyYWludF9tb2RlICRhY3RpdmVfbW9kZXMgewotICAgICAgICAgICAgICAgICAgaWYgeyEkdmFycyhpbG0pfSB7Ci0gICAgICAgICAgICAgICAgICAgICAjIERlZmF1bHQgZmxhdCBmbG93Ci0gICAgICAgICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJGNvbnN0cmFpbnRfbW9kZSxwcmVfY3RzX3NkYyldfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBzZXQgY29tbWFuZCAgImNyZWF0ZV9jb25zdHJhaW50X21vZGUgLW5hbWUgJGNvbnN0cmFpbnRfbW9kZSAiCi0gICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiLXNkY19maWxlcyBcW2xpc3QgJHZhcnMoJGNvbnN0cmFpbnRfbW9kZSxwcmVfY3RzX3NkYylcXSAiCi0gICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiXG4iCi0gICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY2NvbW1hbmQgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksY3JlYXRlX2NvbnN0cmFpbnRfbW9kZSAkY29tbWFuZF0KLSAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBwdXRzICJDb25zdHJhaW50IGZpbGUgbm90IGZvdW5kIGZvciAkY29uc3RyYWludF9tb2RlIC4uLiIgCi0gICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICBpZiB7JHZhcnMocmMpfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJGNvbnN0cmFpbnRfbW9kZSxzeW50aF9zZGMpXX0gewotICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgICJjcmVhdGVfY29uc3RyYWludF9tb2RlIC1uYW1lICRjb25zdHJhaW50X21vZGUgIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIi1zZGNfZmlsZXMgXFtsaXN0ICR2YXJzKCRjb25zdHJhaW50X21vZGUsc3ludGhfc2RjKVxdICIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJcbiIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjY29tbWFuZCBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxjcmVhdGVfY29uc3RyYWludF9tb2RlICRjb21tYW5kXQotICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1dHMgIkNvbnN0cmFpbnQgZmlsZSBub3QgZm91bmQgZm9yICRjb25zdHJhaW50X21vZGUgLi4uIiAKLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICBzZXQgc2RjcyAiIgotICAgICAgICAgICAgICAgICAgICAgIyBJTE0gZmxvdwotICAgICAgICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKHBhcnRpdGlvbl9saXN0KV19IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICMgSGllcmFyY2h5ICsgSUxNcwotICAgICAgICAgICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCRjb25zdHJhaW50X21vZGUscHJlX2N0c19pbG1fc2RjKV19IHsKLSMgICAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICItc2RjX2ZpbGVzIFxbbGlzdCAkdmFycygkY29uc3RyYWludF9tb2RlLHByZV9jdHNfc2RjKVxdICIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4ZWMgL2Jpbi90b3VjaCBlbXB0eS5zZGMKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBzZGNzICItc2RjX2ZpbGVzIGVtcHR5LnNkYyAiIAotICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIHNkY3MgIi1pbG1fc2RjX2ZpbGVzIFxbbGlzdCAkdmFycygkY29uc3RyYWludF9tb2RlLHByZV9jdHNfaWxtX3NkYylcXVxuIgotICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4ZWMgL2Jpbi90b3VjaCBlbXB0eS5zZGMKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBzZGNzICItc2RjX2ZpbGVzIGVtcHR5LnNkYyAiIAotICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIHNkY3MgIi1pbG1fc2RjX2ZpbGVzIFxbbGlzdCAkdmFycygkY29uc3RyYWludF9tb2RlLHByZV9jdHNfc2RjKVxdXG4iCi0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiB7JHZhcnModG9wKX0geyAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIHshW2luZm8gZXhpc3RzIHVjb21tYW5kXX0geyBzZXQgdWNvbW1hbmQgIiJ9Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICBzZXQgY29tbWFuZCAgInVwZGF0ZV9jb25zdHJhaW50X21vZGUgLW5hbWUgJGNvbnN0cmFpbnRfbW9kZSAiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAkc2RjcwotICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tYW5kIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHVwZGF0ZV9jb25zdHJhaW50X21vZGUgJGNvbW1hbmRdCi0jICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tYW5kIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLGZsYXR0ZW5faWxtICJmbGF0dGVuSWxtXG5zZXRJbG1Nb2RlIC1rZWVwRmxhdHRlbiB0cnVlXG4iXQotICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0IGR5bmFtaWNfdXBkYXRlIDEKLSMgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZQotICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldCBjb21tYW5kICAiY3JlYXRlX2NvbnN0cmFpbnRfbW9kZSAtbmFtZSAkY29uc3RyYWludF9tb2RlICIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICRzZGNzCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY2NvbW1hbmQgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksY3JlYXRlX2NvbnN0cmFpbnRfbW9kZSAkY29tbWFuZF0KLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAjIElMTSBvbmx5Ci0gICAgICAgICAgICAgICAgICAgICAgICBzZXQgY29tbWFuZCAgImNyZWF0ZV9jb25zdHJhaW50X21vZGUgLW5hbWUgJGNvbnN0cmFpbnRfbW9kZSAiCi0gICAgICAgICAgICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJGNvbnN0cmFpbnRfbW9kZSxwcmVfY3RzX2lsbV9zZGMpXX0gewotIyAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIi1zZGNfZmlsZXMgXFtsaXN0ICR2YXJzKCRjb25zdHJhaW50X21vZGUscHJlX2N0c19zZGMpXF0gIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhlYyAvYmluL3RvdWNoIGVtcHR5LnNkYwotICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIHNkY3MgIi1zZGNfZmlsZXMgZW1wdHkuc2RjICIgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgc2RjcyAiLWlsbV9zZGNfZmlsZXMgXFtsaXN0ICR2YXJzKCRjb25zdHJhaW50X21vZGUscHJlX2N0c19pbG1fc2RjKVxdXG4iCi0gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhlYyAvYmluL3RvdWNoIGVtcHR5LnNkYwotICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIHNkY3MgIi1zZGNfZmlsZXMgZW1wdHkuc2RjICIgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgc2RjcyAiLWlsbV9zZGNfZmlsZXMgXFtsaXN0ICR2YXJzKCRjb25zdHJhaW50X21vZGUscHJlX2N0c19zZGMpXF1cbiIKLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLSMgICAgICAgICAgICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJGNvbnN0cmFpbnRfbW9kZSxwcmVfY3RzX3NkYyldfSB7Ci0jICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgICJjcmVhdGVfY29uc3RyYWludF9tb2RlIC1uYW1lICRjb25zdHJhaW50X21vZGUgIgotIyAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICItc2RjX2ZpbGVzIFxbbGlzdCAkdmFycygkY29uc3RyYWludF9tb2RlLHByZV9jdHNfc2RjKVxdICIKLSMgICAgICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiXG4iCi0jICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNjb21tYW5kIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLGNyZWF0ZV9jb25zdHJhaW50X21vZGUgJGNvbW1hbmRdCi0jICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSMgICAgICAgICAgICAgICAgICAgICAgICAgICBwdXRzICJDb25zdHJhaW50IGZpbGUgbm90IGZvdW5kIGZvciAkY29uc3RyYWludF9tb2RlIC4uLiIgCi0jICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgJHNkY3MKLSAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjY29tbWFuZCBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxjcmVhdGVfY29uc3RyYWludF9tb2RlICRjb21tYW5kXQotIyAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjY29tbWFuZCBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxmbGF0dGVuX2lsbSAiZmxhdHRlbklsbVxuc2V0SWxtTW9kZSAta2VlcEZsYXR0ZW4gdHJ1ZVxuIl0KLSAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgJGNjb21tYW5kCi0KLSAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgZHluYW1pY191cGRhdGVdICYmICRkeW5hbWljX3VwZGF0ZX0gewotIyAgICAgICAgICAgICAgICAgIHNldCBjb21tYW5kICIiCi0jICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgImZvcmVhY2ggbW9kZSBcW2FsbF9jb25zdHJhaW50X21vZGVzXF0ge1xuIgotIyAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgICB1cGRhdGVfY29uc3RyYWludF9tb2RlIC1uYW1lIFwkbW9kZSAtc2RjX2ZpbGVzIGVtcHR5LnNkYyBcXFxuIgotIyAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgICAgICAtaWxtX3NkY19maWxlcyBcW2dldF9jb25zdHJhaW50X21vZGUgXCRtb2RlIC1zZGNfZmlsZXNcXVxuIgotIyAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJ9XG4iCi0jICAgICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tYW5kIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHVwZGF0ZV9jb25zdHJhaW50X21vZGUgJGNvbW1hbmRdCi0KLSAgICAgICAgICAgICAgICAgIHNldCBjb21tYW5kICIiCi0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiZm9yZWFjaCBtb2RlIFxbYWxsX2NvbnN0cmFpbnRfbW9kZXNdIFx7XG4iCi0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiICAgZm9yZWFjaCB2aWV3IFxbYWxsX2FuYWx5c2lzX3ZpZXdzXSBce1xuIgotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAgICAgIHNldCBtIFxbcmVnc3ViIF9cJHZpZXcgXCRtb2RlIFwiXCJcXVxuIgotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAgICAgIGlmIFx7KCBcJG0gIT0gXCRtb2RlICkgJiYgKCBcW2xzZWFyY2ggXFthbGxfY29uc3RyYWludF9tb2Rlc1xdIFwkbVxdICE9IC0xKSBcfSBce1xuIgotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAgICAgICAgIHVwZGF0ZV9jb25zdHJhaW50X21vZGUgLW5hbWUgXCRtb2RlIC1zZGNfZmlsZXMgZW1wdHkuc2RjIC1pbG1fc2RjX2ZpbGVzIFxbZ2V0X2NvbnN0cmFpbnRfbW9kZSBcJG0gLWlsbV9zZGNfZmlsZXNcXVxuIgotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAgICAgIFx9XG4iCi0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiICAgXH0gXG4iCi0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiXH0gXG4iCi0gICAgICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1hbmQgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksZHluYW1pY191cGRhdGUgJGNvbW1hbmRdCi0KLSAgICAgICAgICAgICAgICAgIGlmIHskdmFycyhpbG0pfSB7Ci0jICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tYW5kIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLGZsYXR0ZW5faWxtICJmbGF0dGVuSWxtXG5zZXRJbG1Nb2RlIC1rZWVwRmxhdHRlbiB0cnVlXG4iXQotICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tYW5kIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLGZsYXR0ZW5faWxtICJmbGF0dGVuSWxtXG4iXQotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgfSAKLQotICAgICAgICAgICAgICAgaWYgeygkdmFycyh1c2VyX21vZGUpID09ICJoaWVyIikgJiYgIVtpbmZvIGV4aXN0cyB2YXJzKHZpZXdfZGVmaW5pdGlvbl90Y2wpXX0gewotICAgICAgICAgICAgICAgICAgaWYgeygkdmFycyhzdGVwKSA9PSAiYXNzZW1ibGUiKSB8fCAoJHZhcnMoc3RlcCkgPT0gInJlYnVkZ2V0IikgfHwgKCR2YXJzKHN0ZXApID09ICJhc3NlbWJsZV9mbGV4aWxtIikgfHwgKCR2YXJzKHN0ZXApID09ICJwYXJ0aXRpb25fcGxhY2UiKSB8fCAoJHZhcnMoc3RlcCkgPT0gIm1vZGVsX2dlbiIpIHx8ICgkdmFycyhzdGVwKSA9PSAicHJvdG90eXBlIil9IHsKLSAgICAgICAgICAgICAgICAgICAgICMgQ3JlYXRlIG1tbWMgZmlsZSBmb3IgcGFydGl0aW9uIGFuZCBhc3NlbWJsZSBzdGVwCi0gICAgICAgICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoY3BmX2ZpbGUpXSAmJiAkdmFycyhjcGZfdGltaW5nKX0gewotICAgICAgICAgICAgICAgICAgICAgICAgc2V0IG1tbWNfZmlsZSAkdmFycyhzY3JpcHRfZGlyKS9pbmNyX3ZpZXdfZGVmaW5pdGlvbi50Y2wKLSAgICAgICAgICAgICAgICAgICAgICAgIHNldCBvcCBbb3BlbiAkbW1tY19maWxlIHddCi0gICAgICAgICAgICAgICAgICAgICAgICBwdXRzICRvcCBbRkY6OnByZXR0eV9wcmludCAkY29tbWFuZHMgMV0KLSAgICAgICAgICAgICAgICAgICAgICAgIGNsb3NlICRvcAotICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyh2aWV3X2RlZmluaXRpb25fdGNsKV19IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldCBtbW1jX2ZpbGUgJHZhcnModmlld19kZWZpbml0aW9uX3RjbCkKLSAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICBzZXQgbW1tY19maWxlICR2YXJzKHNjcmlwdF9kaXIpL3ZpZXdfZGVmaW5pdGlvbi50Y2wKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldCBvcCBbb3BlbiAkbW1tY19maWxlIHddCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBwdXRzICRvcCBbRkY6OnByZXR0eV9wcmludCAkY29tbWFuZHMgMV0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsb3NlICRvcAotICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgI3JldHVybiAkY29tbWFuZHMKLSAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAjIFJldHVybiBvbmx5IGNvbnN0cmFpbnQgbW9kZSB1cGRhdGVzIGZvciB0b3AgbGV2ZWwgZmxvdwotICAgICAgICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB1Y29tbWFuZF19IHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAkdWNvbW1hbmQKLSAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnModmlld19kZWZpbml0aW9uX3RjbCldfSB7Ci0gICAgICAgICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHVjb21tYW5kXX0gewotICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICR1Y29tbWFuZAotICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAgICBpZiB7IVtpbmZvIGV4aXN0cyB2YXJzKHBvd2VyX2FuYWx5c2lzX3ZpZXcpXX0gewotICAgICAgICAgICAgICAgICAgc2V0IHZhcnMocG93ZXJfYW5hbHlzaXNfdmlldykgIiIKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIHNldCB2YXJzKGFsbF9hbmFseXNpc192aWV3cykgXAotICAgICAgICAgICAgICAgICAgW2xzb3J0IC11bmlxdWUgW2NvbmNhdCAkdmFycyhzZXR1cF9hbmFseXNpc192aWV3cykgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAkdmFycyhob2xkX2FuYWx5c2lzX3ZpZXdzKSBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICR2YXJzKHBvd2VyX2FuYWx5c2lzX3ZpZXcpXV0KLSAgICAgICAgICAgICAgIHNldCBjb21tYW5kICIiCi0gICAgICAgICAgICAgICBpZiB7JHZhcnModmVyYm9zZSl9IHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICIjXG4iCi0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiIyA8RkY+IENSRUFUSU5HIEFOQUxZU0lTIFZJRVdTIC4uLlxuIgotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiNcbiIKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIGZvcmVhY2ggdmlldyAkdmFycyhhbGxfYW5hbHlzaXNfdmlld3MpIHsKLSMgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiaWYge1xbbHNlYXJjaCBcW2FsbF9hbmFseXNpc192aWV3c1xdICR2aWV3XF0gPT0gLTF9IHtcbiIKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgICBjcmVhdGVfYW5hbHlzaXNfdmlldyIKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgICAgICAtbmFtZSAkdmlldyIKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgICAgICAtY29uc3RyYWludF9tb2RlICR2YXJzKCR2aWV3LGNvbnN0cmFpbnRfbW9kZSkiCi0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiICAgICAgLWRlbGF5X2Nvcm5lciAkdmFycygkdmlldyxkZWxheV9jb3JuZXIpXG4iCi0jICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIn1cbiIKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxjcmVhdGVfYW5hbHlzaXNfdmlldyAkY29tbWFuZF0KLSAgICAgICAgICAgICAgIGlmIHshW2luZm8gZXhpc3RzIHZhcnMoZ2VuX3Bvc3Rsb2FkKV19IHsgCi0gICAgICAgICAgICAgICAgICBpZiB7W2xpbmRleCBbc3BsaXQgJHZhcnModmVyc2lvbikgIi4iXSAgMF0gPD0gMTB9IHsKLSAgICAgICAgICAgICAgICAgICAgICMgTGVnYWN5IHN1cHBvcnQsIHNvIG5vIElFRUUgMTgwMSBzdXBwb3J0Ci0gICAgICAgICAgICAgICAgICAgICAjIGFwcGVuZCBjb21tYW5kcyBbRkZfRURJOjpsb2FkX3Bvd2VyX2ludGVudF0KLSAgICAgICAgICAgICAgICAgICAgIHNldCBjb21tYW5kICIiCi0gICAgICAgICAgICAgICAgICAgICBmb3JlYWNoIGMgJHZhcnMoZGVsYXlfY29ybmVycykgewotICAgICAgICAgICAgICAgICAgICAgICAgaWYgeyFbY2F0Y2gge3NldCBkb21haW5zICR2YXJzKCRjLHBvd2VyX2RvbWFpbnMpfV19IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcmVhY2ggZG9tYWluICRkb21haW5zIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgdXBkYXRlX2RlbGF5X2Nvcm5lciAtbmFtZSAkYyAtcG93ZXJfZG9tYWluIFwiJGRvbWFpblwiXG4iCi0gICAgICAjICAgICAgICAgICAgICAgICAgICAgICAgaWYgeyFbY2F0Y2gge3NldCBvcGNvbmQgJHZhcnMoJGRvbWFpbixvcGNvbmQpfV0gJiYKLSAgICAgICMgICAgICAgICAgICAgICAgICAgICAgICAgICAgIVtjYXRjaCB7c2V0IGxpYnJhcnkgJHZhcnMoJGRvbWFpbixvcGNvbmRfbGlicmFyeSl9XX0gewotICAgICAgIyAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgLW9wY29uZF9saWJyYXJ5ICRsaWJyYXJ5IgotICAgICAgIyAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgLW9wY29uZCAkb3Bjb25kIgotICAgICAgIyAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCBpbml0LHVwZGF0ZV9kZWxheV9jb3JuZXIgJGNvbW1hbmRdCi0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgICAgICAgICAgIyBDUEZfVElNSU5HID09IFRSVUUKLSAgICAgICAgICAgICAgICMgU2luY2UgdGhlIGRlbGF5IGNvcm5lciBuYW1lcyBhcmUgZGVyaXZlZCBmcm9tIHRoZSBDUEYsIHRoZXkKLSAgICAgICAgICAgICAgICMgYXJlIG5vdCBrbm93bi4gIEhvd2V2ZXIsIHRoZXkgY2FuIGJlIHJldHJpZXZlZCBmcm9tIHRoZQotICAgICAgICAgICAgICAgIyBhbmFseXNpc192aWV3cwotICAgICAgICAgICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotIyAgICAgICAgICAgICAgIGlmIHskdmFycyh2ZXJib3NlKX0gewotIyAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgVVBEQVRJTkcgREVMQVkgQ09STkVSUyAgLi4uXG4iCi0jICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycyhkZWxheV9jb3JuZXJzKV19IHsKLSAgICAgICAgICAgICAgICAgIHNldCB2YXJzKGRlbGF5X2Nvcm5lcnMpIFtGRjo6W2dldF9ieV9zdWZmaXggdmFycyAiLHJjX2Nvcm5lciJdXQotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgIiIKLSAgICAgICAgICAgICAgIGZvcmVhY2ggY29ybmVyICR2YXJzKGRlbGF5X2Nvcm5lcnMpIHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJpZiB7XFtsc2VhcmNoIC1leGFjdCBcW2FsbF9kZWxheV9jb3JuZXJzXF0gJGNvcm5lclxdICE9IC0xfSB7XG4iCi0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiICAgdXBkYXRlX2RlbGF5X2Nvcm5lciAtbmFtZSAkY29ybmVyIC1yY19jb3JuZXIgJHZhcnMoJGNvcm5lcixyY19jb3JuZXIpXG4iCi0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAifVxuIgotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHVwZGF0ZV9kZWxheV9jb3JuZXIgJGNvbW1hbmRdCi0gICAgICAgICAgICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAgICAgICAgICAjIFVwZGF0ZSBjb25zdHJhaW50cyBtb2RlcyBpZiBhbiBJTE0gZmxvdwotICAgICAgICAgICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgICAgICAgICAgc2V0IGNjb21tYW5kICIiCi0gICAgICAgICAgICAgICBmb3JlYWNoIGNvbnN0cmFpbnRfbW9kZSAkdmFycyhjb25zdHJhaW50X21vZGVzKSB7Ci0gICAgICAgICAgICAgICAgICBpZiB7JHZhcnMoaWxtKX0gewotICAgICAgICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKHBhcnRpdGlvbl9saXN0KV19IHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHNldCBjb21tYW5kICAidXBkYXRlX2NvbnN0cmFpbnRfbW9kZSAtbmFtZSAkY29uc3RyYWludF9tb2RlICIKLSAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBzZXQgY29tbWFuZCAgImNyZWF0ZV9jb25zdHJhaW50X21vZGUgLW5hbWUgJGNvbnN0cmFpbnRfbW9kZSAiCi0gICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJGNvbnN0cmFpbnRfbW9kZSxwcmVfY3RzX2lsbV9zZGMpXX0gewotICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIi1zZGNfZmlsZXMgXFtsaXN0ICR2YXJzKCRjb25zdHJhaW50X21vZGUscHJlX2N0c19zZGMpXF0gIgotICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIi1pbG1fc2RjX2ZpbGVzIFxbbGlzdCAkdmFycygkY29uc3RyYWludF9tb2RlLHByZV9jdHNfaWxtX3NkYylcXSAiCi0gICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICAgZXhlYyAvYmluL3RvdWNoIGVtcHR5LnNkYwotICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIi1zZGNfZmlsZXMgZW1wdHkuc2RjICIKLSAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICItaWxtX3NkY19maWxlcyBcW2xpc3QgJHZhcnMoJGNvbnN0cmFpbnRfbW9kZSxwcmVfY3RzX3NkYylcXSAiCi0gICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiXG4iCi0gICAgICAgICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMocGFydGl0aW9uX2xpc3QpXX0gewotICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNjb21tYW5kIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHVwZGF0ZV9jb25zdHJhaW50X21vZGUgJGNvbW1hbmRdCi0gICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNjb21tYW5kIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLGNyZWF0ZV9jb25zdHJhaW50X21vZGUgJGNvbW1hbmRdCi0gICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICAgICAgICAgICMgUmV0dXJuIGVhcmx5IGZvciBwYXJ0aXRpb24gaW1wbGVtZW50YXRpb24gZmxvd3MgLi4uCi0gICAgICAgICAgICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAgICAgICAgICBpZiB7KCgkdmFycyhtb2RlKSA9PSAiaGllciIpIHx8IChbaW5mbyBleGlzdHMgdmFycyhoaWVyKV0gJiYgJHZhcnMoaGllcikpKSAmJiAoJHZhcnMoc3RlcCkgIT0gInBhcnRpdGlvbl9wbGFjZSIpfSB7Ci0gICAgICAgICAgICAgICAgICBzZXQgY29tbWFuZHMgJGNjb21tYW5kCi0gICAgICAgICAgICAgICAgICByZXR1cm4gJGNvbW1hbmRzCi0gICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICRjY29tbWFuZAotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAgICAgICAjIFVwZGF0ZSBsaWJyYXJ5X3NldHMgd2l0aCBTSSBsaWJyYXJpZXMgaWYgZGVmaW5lZAotICAgICAgICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCi0jICAgICAgICAgICAgaWYgeyR2YXJzKHZlcmJvc2UpfSB7Ci0jICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICBVUERBVElORyBMSUJSQVJZIFNFVFMgIC4uLlxuIgotIyAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHNldCBjb21tYW5kICIiCi0gICAgICAgICAgICBmb3JlYWNoIHNldCAkdmFycyhsaWJyYXJ5X3NldHMpIHsKLSAgICAgICAgICAgICAgIGlmIHsoW2luZm8gZXhpc3RzIHZhcnMoJHNldCxzaSldICYmICgkdmFycygkc2V0LHNpKSAhPSAiIikpIHx8IFwKLSAgICAgICAgICAgICAgICAgICAoW2luZm8gZXhpc3RzIHZhcnMoJHNldCxzb2N2KV0gJiYgKCR2YXJzKCRzZXQsc29jdikgIT0gIiIpKSB8fCBcCi0gICAgICAgICAgICAgICAgICAgKFtpbmZvIGV4aXN0cyB2YXJzKCRzZXQsYW9jdildICYmICgkdmFycygkc2V0LGFvY3YpICE9ICIiKSl9IHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJ1cGRhdGVfbGlicmFyeV9zZXQgLW5hbWUgJHNldCIKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkc2V0LHNvY3YpXSAmJiAoJHZhcnMoJHNldCxzb2N2KSAhPSAiIil9IHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgLXNvY3YgXFtsaXN0IgotICAgICAgICAgICAgICAgICAgZm9yZWFjaCBmaWxlICR2YXJzKCRzZXQsc29jdikgewotICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAkZmlsZSIKLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJcXSIKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkc2V0LGFvY3YpXSAmJiAoJHZhcnMoJHNldCxhb2N2KSAhPSAiIil9IHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgLWFvY3YgXFtsaXN0IgotICAgICAgICAgICAgICAgICAgZm9yZWFjaCBmaWxlICR2YXJzKCRzZXQsYW9jdikgewotICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAkZmlsZSIKLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJcXSIKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkc2V0LHNpKV0gJiYgKCR2YXJzKCRzZXQsc2kpICE9ICIiKX0gewotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAtc2kgXFtsaXN0IgotICAgICAgICAgICAgICAgICAgZm9yZWFjaCBmaWxlICR2YXJzKCRzZXQsc2kpIHsKLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgJGZpbGUiCi0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiXF0iCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiXG4iCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksdXBkYXRlX2xpYnJhcnlfc2V0ICRjb21tYW5kXQotCi0gICAgICAgICAgICBpZiB7JHZhcnMoZmxvdykgIT0gIm1tbWMifSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGX0VESTo6dXBkYXRlX3RpbWluZyBtbW1jXQotICAgICAgICAgICAgfQotIyAgICAgICAgICAgIHNldCBjb21tYW5kIFtGRl9FREk6OmRlcmF0ZV90aW1pbmcgbW1tY10KLSMgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksZGVyYXRlX3RpbWluZyAkY29tbWFuZF0KLQotICAgICAgICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgICAgICAgIyBEZWZpbmUgc2V0dXAgLyBob2xkIGFuYWx5c2lzIHZpZXdzIGFuZCBlbmFibGUgdGhlIGRlZmF1bHQgdmlld3MKLSAgICAgICAgICAgICMgZm9yIGVhY2gKLSAgICAgICAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLQotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJzZXRfYW5hbHlzaXNfdmlldyIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIC1zZXR1cCBcW2xpc3QgJHZhcnMoYWN0aXZlX3NldHVwX3ZpZXdzKVxdIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIgLWhvbGQgXFtsaXN0ICR2YXJzKGFjdGl2ZV9ob2xkX3ZpZXdzKVxdXG4iCi0jICAgICAgICAgICAgc2V0IGNvbW1hbmQgInNldF9kZWZhdWx0X3ZpZXcgLXNldHVwICR2YXJzKGRlZmF1bHRfc2V0dXBfdmlldykgLWhvbGQgJHZhcnMoZGVmYXVsdF9ob2xkX3ZpZXcpXG4iCi0jICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHNldF9kZWZhdWx0X3ZpZXcgJGNvbW1hbmRdCi0jICAgICAgICAgICAgc2V0IGNvbW1hbmQgW0ZGX0VESTo6ZGVyYXRlX3RpbWluZyBtbW1jXQotIyAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxkZXJhdGVfdGltaW5nICRjb21tYW5kXQotIyAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhwb3dlcl9hbmFseXNpc192aWV3KV0gJiYgKCR2YXJzKHBvd2VyX2FuYWx5c2lzX3ZpZXcpICE9ICIiKX0gewotIyAgICAgICAgICAgICAgIHNldCBjb21tYW5kICJzZXRfcG93ZXJfYW5hbHlzaXNfbW9kZSAtYW5hbHlzaXNfdmlldyAkdmFycyhwb3dlcl9hbmFseXNpc192aWV3KVxuIgotIyAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxzZXRfcG93ZXJfYW5hbHlzaXNfbW9kZSAkY29tbWFuZF0KLSMgICAgICAgICAgICB9Ci0gICAgICAgICAgICBmaWxlIG1rZGlyICR2YXJzKHNjcmlwdF9kaXIpCi0gICAgICAgICAgICBpZiB7W2xpbmRleCBbc3BsaXQgJHZhcnModmVyc2lvbikgIi4iXSAgMF0gPD0gMTB9IHsKLSAgICAgICAgICAgICAgIGlmIHskdmFycyhmbGF0KSAhPSAiZnVsbCJ9IHsKLSAgICAgICAgICAgICAgICAgIHNldCBvcCBbb3BlbiAkdmFycyhzY3JpcHRfZGlyKS9tbW1jLnRjbCB3XQotICAgICAgICAgICAgICAgICAgcHV0cyAkb3AgW0ZGOjpwcmV0dHlfcHJpbnQgJGNvbW1hbmRzIDFdCi0gICAgICAgICAgICAgICAgICBjbG9zZSAkb3AKLSMgICAgICAgICAgICAgICAgICBzZXQgY29tbWFuZHMgInNvdXJjZSBcJHZhcnMoc2NyaXB0X2RpcikvbW1tYy50Y2xcbiIKLSAgICAgICAgICAgICAgICAgIHNldCBjb21tYW5kcyAic291cmNlICR2YXJzKHNjcmlwdF9kaXIpL21tbWMudGNsXG4iCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGNwZl9maWxlKV0gJiYgJHZhcnMoY3BmX3RpbWluZyl9IHsKLSAgICAgICAgICAgICAgICAgIHNldCBtbW1jX2ZpbGUgJHZhcnMoc2NyaXB0X2RpcikvaW5jcl92aWV3X2RlZmluaXRpb24udGNsCi0gICAgICAgICAgICAgICAgICBzZXQgb3AgW29wZW4gJG1tbWNfZmlsZSB3XQotICAgICAgICAgICAgICAgICAgcHV0cyAkb3AgW0ZGOjpwcmV0dHlfcHJpbnQgJGNvbW1hbmRzIDFdCi0gICAgICAgICAgICAgICAgICBjbG9zZSAkb3AKLSAgICAgICAgICAgICAgICAgIHJldHVybiAic291cmNlICR2YXJzKHNjcmlwdF9kaXIpL2luY3Jfdmlld19kZWZpbml0aW9uLnRjbFxuIgotICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKHZpZXdfZGVmaW5pdGlvbl90Y2wpXX0gewotICAgICAgICAgICAgICAgICAgICAgc2V0IG1tbWNfZmlsZSAkdmFycyh2aWV3X2RlZmluaXRpb25fdGNsKQotICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgc2V0IG1tbWNfZmlsZSAkdmFycyhzY3JpcHRfZGlyKS92aWV3X2RlZmluaXRpb24udGNsCi0gICAgICAgICAgICAgICAgICAgICBzZXQgb3AgW29wZW4gJG1tbWNfZmlsZSB3XQotICAgICAgICAgICAgICAgICAgICAgcHV0cyAkb3AgW0ZGOjpwcmV0dHlfcHJpbnQgJGNvbW1hbmRzIDFdCi0gICAgICAgICAgICAgICAgICAgICBjbG9zZSAkb3AKLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIHJldHVybgotIyAgICAgICAgICAgICAgIHJldHVybiAkY29tbWFuZHMKLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0KLSAgICAgICAgIGRlZmF1bHQgewotICAgICAgICAgICAgcHV0cyAgIjxGRj4gSU5WQUxJRCBPUFRJT04gLi4uIE1VU1QgQkUgRUlUSEVSIG1pbm1heCBPUiBtbW1jIgotICAgICAgICAgfQotICAgICAgfQotICAgICAgcmV0dXJuICRjb21tYW5kcwotICAgfQotCi0gICBwcm9jIHVwZGF0ZV9yY19jb3JuZXJzIHt9IHsKLQotICAgICAgZ2xvYmFsIHZhcnMKLQotICAgICAgZm9yZWFjaCByY19jb3JuZXIgW2FsbF9yY19jb3JuZXJzXSB7Ci0gICAgICAgICBpZiB7JHJjX2Nvcm5lciAhPSAiZGVmYXVsdF9yY19jb3JuZXIifSB7Ci0gICAgICAgICAgICBzZXQgdXBkYXRlIGZhbHNlCi0gICAgICAgICAgICBzZXQgY29tbWFuZCAidXBkYXRlX3JjX2Nvcm5lciAtbmFtZSAkcmNfY29ybmVyICIKLSAgICAgICAgICAgIGlmIHtbZ2V0X3JjX2Nvcm5lciAkcmNfY29ybmVyIC1jYXBfdGFibGVdICE9ICR2YXJzKCRyY19jb3JuZXIsY2FwX3RhYmxlKX0gewotICAgICAgICAgICAgICAgc2V0IHVwZGF0ZSB0cnVlCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiLWNhcF90YWJsZSAkdmFycygkcmNfY29ybmVyLGNhcF90YWJsZSkgIgotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYge1tnZXRfcmNfY29ybmVyICRyY19jb3JuZXIgLXByZVJvdXRlX3Jlc10gIT0gJHZhcnMoJHJjX2Nvcm5lcixwcmVfcm91dGVfcmVzX2ZhY3Rvcil9IHsKLSAgICAgICAgICAgICAgIHNldCB1cGRhdGUgdHJ1ZQotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIi1wcmVSb3V0ZV9yZXMgJHZhcnMoJHJjX2Nvcm5lcixwcmVfcm91dGVfcmVzX2ZhY3RvcikgIgotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYge1tnZXRfcmNfY29ybmVyICRyY19jb3JuZXIgLXByZVJvdXRlX2NhcF0gIT0gJHZhcnMoJHJjX2Nvcm5lcixwcmVfcm91dGVfY2FwX2ZhY3Rvcil9IHsKLSAgICAgICAgICAgICAgIHNldCB1cGRhdGUgdHJ1ZQotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIi1wcmVSb3V0ZV9jYXAgJHZhcnMoJHJjX2Nvcm5lcixwcmVfcm91dGVfY2FwX2ZhY3RvcikgIgotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYge1tnZXRfcmNfY29ybmVyICRyY19jb3JuZXIgLXBvc3RSb3V0ZV9yZXNdICE9ICR2YXJzKCRyY19jb3JuZXIscG9zdF9yb3V0ZV9yZXNfZmFjdG9yKX0gewotICAgICAgICAgICAgICAgc2V0IHVwZGF0ZSB0cnVlCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiLXBvc3RSb3V0ZV9yZXMgXCIkdmFycygkcmNfY29ybmVyLHBvc3Rfcm91dGVfcmVzX2ZhY3RvcilcIiAiCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiB7W2dldF9yY19jb3JuZXIgJHJjX2Nvcm5lciAtcG9zdFJvdXRlX2NhcF0gIT0gJHZhcnMoJHJjX2Nvcm5lcixwb3N0X3JvdXRlX2NhcF9mYWN0b3IpfSB7Ci0gICAgICAgICAgICAgICBzZXQgdXBkYXRlIHRydWUKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICItcG9zdFJvdXRlX2NhcCBcIiR2YXJzKCRyY19jb3JuZXIscG9zdF9yb3V0ZV9jYXBfZmFjdG9yKVwiICIKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIHtbZ2V0X3JjX2Nvcm5lciAkcmNfY29ybmVyIC1wcmVSb3V0ZV9jbGtyZXNdICE9ICR2YXJzKCRyY19jb3JuZXIscHJlX3JvdXRlX2Nsa19yZXNfZmFjdG9yKX0gewotICAgICAgICAgICAgICAgc2V0IHVwZGF0ZSB0cnVlCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiLXByZVJvdXRlX2Nsa3JlcyAkdmFycygkcmNfY29ybmVyLHByZV9yb3V0ZV9jbGtfcmVzX2ZhY3RvcikgIgotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYge1tnZXRfcmNfY29ybmVyICRyY19jb3JuZXIgLXByZVJvdXRlX2Nsa2NhcF0gIT0gJHZhcnMoJHJjX2Nvcm5lcixwcmVfcm91dGVfY2xrX2NhcF9mYWN0b3IpfSB7Ci0gICAgICAgICAgICAgICBzZXQgdXBkYXRlIHRydWUKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICItcHJlUm91dGVfY2xrY2FwICR2YXJzKCRyY19jb3JuZXIscHJlX3JvdXRlX2Nsa19jYXBfZmFjdG9yKSAiCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiB7W2dldF9yY19jb3JuZXIgJHJjX2Nvcm5lciAtcG9zdFJvdXRlX2Nsa3Jlc10gIT0gJHZhcnMoJHJjX2Nvcm5lcixwb3N0X3JvdXRlX2Nsa19yZXNfZmFjdG9yKX0gewotICAgICAgICAgICAgICAgc2V0IHVwZGF0ZSB0cnVlCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiLXBvc3RSb3V0ZV9jbGtyZXMgXCIkdmFycygkcmNfY29ybmVyLHBvc3Rfcm91dGVfY2xrX3Jlc19mYWN0b3IpXCIgIgotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYge1tnZXRfcmNfY29ybmVyICRyY19jb3JuZXIgLXBvc3RSb3V0ZV9jbGtjYXBdICE9ICR2YXJzKCRyY19jb3JuZXIscG9zdF9yb3V0ZV9jbGtfY2FwX2ZhY3Rvcil9IHsKLSAgICAgICAgICAgICAgIHNldCB1cGRhdGUgdHJ1ZQotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIi1wb3N0Um91dGVfY2xrY2FwIFwiJHZhcnMoJHJjX2Nvcm5lcixwb3N0X3JvdXRlX2Nsa19jYXBfZmFjdG9yKVwiICIKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIHtbZ2V0X3JjX2Nvcm5lciAkcmNfY29ybmVyIC1wb3N0Um91dGVfeGNhcF0gIT0gJHZhcnMoJHJjX2Nvcm5lcixwb3N0X3JvdXRlX3hjYXBfZmFjdG9yKX0gewotICAgICAgICAgICAgICAgc2V0IHVwZGF0ZSB0cnVlCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiLXBvc3RSb3V0ZV94Y2FwIFwiJHZhcnMoJHJjX2Nvcm5lcixwb3N0X3JvdXRlX3hjYXBfZmFjdG9yKVwiICIKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGZvcmVhY2ggb3B0aW9uICJUIHF4X3RlY2hfZmlsZSBxeF9jb25mX2ZpbGUgcXhfbGliX2ZpbGUiIHsKLSAgICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJHJjX2Nvcm5lciwkb3B0aW9uKV19IHsKLSAgICAgICAgICAgICAgICAgICBpZiB7W2dldF9yY19jb3JuZXIgJHJjX2Nvcm5lciAtJG9wdGlvbl0gIT0gJHZhcnMoJHJjX2Nvcm5lciwkb3B0aW9uKX0gewotICAgICAgICAgICAgICAgICAgICAgIHNldCB1cGRhdGUgdHJ1ZQotICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICItJG9wdGlvbiAkdmFycygkcmNfY29ybmVyLCRvcHRpb24pICIKLSAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgeyR1cGRhdGV9IHsKLSAgICAgICAgICAgICAgIHVwbGV2ZWwgIzAgZXZhbCAkY29tbWFuZAotICAgICAgICAgICAgfQotICAgICAgICAgfQotICAgICAgfQotICAgfQotICAgcHJvYyByZXNldF9yY19jb3JuZXJzIHt9IHsKLQotICAgICAgZ2xvYmFsIHZhcnMKLQotICAgICAgZm9yZWFjaCBjb3JuZXIgJHZhcnMocmNfY29ybmVycykgewotICAgICAgICAgdXBkYXRlX3JjX2Nvcm5lciAtbmFtZSAkY29ybmVyIFwKLSAgICAgICAgICAgIC1wcmVSb3V0ZV9yZXMgMS4wIFwKLSAgICAgICAgICAgIC1wcmVSb3V0ZV9jbGtyZXMgMS4wIFwKLSAgICAgICAgICAgIC1wcmVSb3V0ZV9jYXAgMS4wIFwKLSAgICAgICAgICAgIC1wcmVSb3V0ZV9jbGtjYXAgMS4wIFwKLSAgICAgICAgICAgIC1wb3N0Um91dGVfcmVzIDEuMCBcCi0gICAgICAgICAgICAtcG9zdFJvdXRlX2Nsa3JlcyAxLjAgXAotICAgICAgICAgICAgLXBvc3RSb3V0ZV9jYXAgMS4wIFwKLSAgICAgICAgICAgIC1wb3N0Um91dGVfY2xrX2FwIDEuMCBcCi0gICAgICAgICAgICAtcG9zdFJvdXRlX3hjYXAgMS4wCi0gICAgICB9Ci0gICB9Ci0gICBwcm9jIGFkZF92aWV3cyB7fSB7Ci0KLSAgICAgIGdsb2JhbCB2YXJzCi0KLSAgICAgIFB1dHMgIjxGRj4gQ1JFQVRJTkcgUkMgQ09STkVSUyAuLi4iCi0gICAgICBmb3JlYWNoIHJjX2Nvcm5lciAkdmFycyhyY19jb3JuZXJzKSB7Ci0gICAgICAgICBpZiB7W2xzZWFyY2ggW2FsbF9yY19jb3JuZXJzXSAkcmNfY29ybmVyXSA9PSAtMX0gewotICAgICAgICAgICAgc2V0IGNvbW1hbmQgImNyZWF0ZV9yY19jb3JuZXIgLW5hbWUgJHJjX2Nvcm5lciAiCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiLWNhcF90YWJsZSAkdmFycygkcmNfY29ybmVyLGNhcF90YWJsZSlcXSAiCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiLXByZVJvdXRlX3JlcyAkdmFycygkcmNfY29ybmVyLHByZV9yb3V0ZV9yZXNfZmFjdG9yKSAiCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiLXByZVJvdXRlX2Nsa3JlcyAkdmFycygkcmNfY29ybmVyLHByZV9yb3V0ZV9jbGtfcmVzX2ZhY3RvcikgIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIi1wcmVSb3V0ZV9jYXAgJHZhcnMoJHJjX2Nvcm5lcixwcmVfcm91dGVfY2FwX2ZhY3RvcikgIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIi1wcmVSb3V0ZV9jbGtjYXAgJHZhcnMoJHJjX2Nvcm5lcixwcmVfcm91dGVfY2xrX2NhcF9mYWN0b3IpICIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICItcG9zdFJvdXRlX3JlcyBcIiR2YXJzKCRyY19jb3JuZXIscG9zdF9yb3V0ZV9yZXNfZmFjdG9yKVwiICIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICItcG9zdFJvdXRlX2Nsa3JlcyBcIiR2YXJzKCRyY19jb3JuZXIscG9zdF9yb3V0ZV9jbGtfcmVzX2ZhY3RvcilcIiAiCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiLXBvc3RSb3V0ZV9jYXAgXCIkdmFycygkcmNfY29ybmVyLHBvc3Rfcm91dGVfY2FwX2ZhY3RvcilcIiAiCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiLXBvc3RSb3V0ZV9jbGtjYXAgXCIkdmFycygkcmNfY29ybmVyLHBvc3Rfcm91dGVfY2xrX2NhcF9mYWN0b3IpXCIgIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIi1wb3N0Um91dGVfeGNhcCAkdmFycygkcmNfY29ybmVyLHBvc3Rfcm91dGVfeGNhcF9mYWN0b3IpICIKLSAgICAgICAgICAgIGZvcmVhY2ggb3B0aW9uICJUIHF4X3RlY2hfZmlsZSBxeF9jb25mX2ZpbGUgcXhfbGliX2ZpbGUiIHsKLSAgICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJHJjX2Nvcm5lciwkb3B0aW9uKV19IHsKLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICItJG9wdGlvbiAkdmFycygkcmNfY29ybmVyLCRvcHRpb24pICIKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICB1cGxldmVsICMwIGV2YWwgJGNvbW1hbmQKLSAgICAgICAgIH0KLSAgICAgIH0KLQotICAgICAgaWYgeyFbRkY6OmlzX2xwX2Zsb3ddIHx8IFwKLSAgICAgICAgICAoW0ZGOjppc19scF9mbG93XSAmJiAoW2xsZW5ndGggW2FsbF9hbmFseXNpc192aWV3c11dID09IDIpKX0gewotCi0gICAgICAgICBQdXRzICI8RkY+IENSRUFUSU5HIExJQlJBUlkgU0VUUyAuLi4iCi0gICAgICAgICBmb3JlYWNoIGxpYnJhcnlfc2V0ICR2YXJzKGxpYnJhcnlfc2V0cykgewotICAgICAgICAgICAgaWYge1tsc2VhcmNoIFthbGxfbGlicmFyeV9zZXRzXSAkbGlicmFyeV9zZXRdID09IC0xfSB7Ci0gICAgICAgICAgICAgICBjcmVhdGVfbGlicmFyeV9zZXQgLW5hbWUgJGxpYnJhcnlfc2V0IFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtdGltaW5nICR2YXJzKCRsaWJyYXJ5X3NldCx0aW1pbmcpCi0gICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0KLSAgICAgICAgIFB1dHMgIjxGRj4gQ1JFQVRJTkcgREVMQVkgQ09STkVSUyAuLi5cbiIKLSAgICAgICAgIGZvcmVhY2ggZGVsYXlfY29ybmVyICR2YXJzKGRlbGF5X2Nvcm5lcnMpIHsKLSAgICAgICAgICAgIGlmIHtbbHNlYXJjaCBbYWxsX2RlbGF5X2Nvcm5lcnNdICRkZWxheV9jb3JuZXJdID09IC0xfSB7Ci0gICAgICAgICAgICAgICBzZXQgY29tbWFuZCAiY3JlYXRlX2RlbGF5X2Nvcm5lciAtbmFtZSAkZGVsYXlfY29ybmVyICIKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICItbGlicmFyeV9zZXQgJHZhcnMoJGRlbGF5X2Nvcm5lcixsaWJyYXJ5X3NldCkgIgotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIi1yY19jb3JuZXIgJHZhcnMoJGRlbGF5X2Nvcm5lcixyY19jb3JuZXIpICIKLSAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkZGVsYXlfY29ybmVyLG9wY29uZCldICYmIFtpbmZvIGV4aXN0cyB2YXJzKCRkZWxheV9jb3JuZXIsb3Bjb25kX2xpYnJhcnkpXX0gewotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIi1vcGNvbmRfbGlicmFyeSAkdmFycygkZGVsYXlfY29ybmVyLG9wY29uZF9saWJyYXJ5KSAiCi0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiLW9wY29uZCAkdmFycygkZGVsYXlfY29ybmVyLG9wY29uZCkgIgotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgdXBsZXZlbCAjMCBldmFsICRjb21tYW5kCi0gICAgICAgICAgICAgICBpZiB7IVtjYXRjaCB7c2V0IGRvbWFpbnMgJHZhcnMoJGMscG93ZXJfZG9tYWlucyl9XX0gewotICAgICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgIiB1cGRhdGVfZGVsYXlfY29ybmVyIC1uYW1lICRjIC1wb3dlcl9kb21haW5zIFwiJGRvbWFpbnNcIiIKLSAgICAgICAgICAgICAgICAgIHVwbGV2ZWwgIzAgZXZhbCAkY29tbWFuZAotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAgfQotCi0gICAgICAgICBQdXRzICI8RkY+IFVQREFUSU5HIENPTlNUUkFJTlQgTU9ERVMgLi4uIgotICAgICAgICAgZm9yZWFjaCBtb2RlICR2YXJzKGNvbnN0cmFpbnRfbW9kZXMpIHsKLSAgICAgICAgICAgIGlmIHtbbHNlYXJjaCBbYWxsX2NvbnN0cmFpbnRfbW9kZXNdICRtb2RlXSA9PSAtMX0gewotICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCRtb2RlLHByZV9jdHNfc2RjLGZ1bGwpXX0gewotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJjcmVhdGVfY29uc3RyYWludF9tb2RlICIKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIC1uYW1lICRtb2RlICIKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIC1zZGNfZmlsZXMgJHZhcnMoJG1vZGUscHJlX2N0c19zZGMsZnVsbClcbiIKLSAgICAgICAgICAgICAgIH0gZWxzZWlmIHtbaW5mbyBleGlzdHMgdmFycygkbW9kZSxwcmVfY3RzX3NkYyl9IHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiY3JlYXRlX2NvbnN0cmFpbnRfbW9kZSAiCi0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiAtbmFtZSAkbW9kZSAiCi0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiAtc2RjX2ZpbGVzICR2YXJzKCRtb2RlLHByZV9jdHNfc2RjKVxuIgotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAgfQotCi0gICAgICAgICBzZXQgdmFycyhhbGxfYW5hbHlzaXNfdmlld3MpIFtsc29ydCAtdW5pcSBbY29uY2F0ICR2YXJzKHNldHVwX2FuYWx5c2lzX3ZpZXdzKSAkdmFycyhob2xkX2FuYWx5c2lzX3ZpZXdzKV1dCi0gICAgICAgICBQdXRzICI8RkY+IFVQREFUSU5HIEFOQUxZU0lTIFZJRVdTIC4uLiIKLQotICAgICAgICAgZm9yZWFjaCBhbmFseXNpc192aWV3ICR2YXJzKGFsbF9hbmFseXNpc192aWV3cykgewotICAgICAgICAgICAgaWYge1tsc2VhcmNoIFthbGxfYW5hbHlzaXNfdmlld3NdICRhbmFseXNpc192aWV3XSA9PSAtMX0gewotICAgICAgICAgICAgICAgY3JlYXRlX2FuYWx5c2lzX3ZpZXcgLW5hbWUgJGFuYWx5c2lzX3ZpZXcgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLWNvbnN0cmFpbnRfbW9kZSAkdmFycygkYW5hbHlzaXNfdmlldyxjb25zdHJhaW50X21vZGUpIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC1kZWxheV9jb3JuZXIgJHZhcnMoJGFuYWx5c2lzX3ZpZXcsZGVsYXlfY29ybmVyKQotICAgICAgICAgICAgfQotICAgICAgICAgfQotICAgICAgfSBlbHNlIHsKLQotICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgIyBTaW5jZSB0aGUgZGVsYXkgY29ybmVyIG5hbWVzIGFyZSBkZXJpdmVkIGZyb20gdGhlIENQRiwgdGhleSBhcmUgbm90Ci0gICAjIGtub3duLiAgSG93ZXZlciwgdGhleSBjYW4gYmUgcmV0cmlldmVkIGZyb20gdGhlIGFuYWx5c2lzX3ZpZXdzCi0gICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAgICBQdXRzICI8RkY+IFVQREFUSU5HIERFTEFZIENPUk5FUlMgIC4uLiIKLSAgICAgICAgIGZvcmVhY2ggY29ybmVyICR2YXJzKGRlbGF5X2Nvcm5lcnMpIHsKLSAgICAgICAgICAgIFB1dHMgIlVwZGF0aW5nIGRlbGF5IGNvcm5lciAkY29ybmVyIHdpdGggUkMgQ29ybmVyICR2YXJzKCRjb3JuZXIscmNfY29ybmVyKSAuLi4iCi0gICAgICAgICAgICB1cGRhdGVfZGVsYXlfY29ybmVyIC1uYW1lICRjb3JuZXIgLXJjX2Nvcm5lciAkdmFycygkY29ybmVyLHJjX2Nvcm5lcikKLSAgICAgICAgIH0KLSAgICAgIH0KLQotICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgIyBVcGRhdGUgbGlicmFyeV9zZXRzIHdpdGggU0kgbGlicmFyaWVzIGlmIGRlZmluZWQKLSAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgIFB1dHMgIjxGRj4gVVBEQVRJTkcgTElCUkFSWSBTRVRTICAuLi4iCi0gICAgICBmb3JlYWNoIGxpYnJhcnlfc2V0ICR2YXJzKGxpYnJhcnlfc2V0cykgewotICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCRsaWJyYXJ5X3NldCxzaSldICYmICgkdmFycygkbGlicmFyeV9zZXQsc2kpICE9ICIiKX0gewotICAgICAgICAgICAgdXBkYXRlX2xpYnJhcnlfc2V0IC1uYW1lICRsaWJyYXJ5X3NldCBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLXNpICR2YXJzKCRsaWJyYXJ5X3NldCxzaSkKLSAgICAgICAgIH0KLSAgICAgIH0KLSAgICAgIGZvcmVhY2ggbGlicmFyeV9zZXQgJHZhcnMobGlicmFyeV9zZXRzKSB7Ci0gICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJGxpYnJhcnlfc2V0LGFvY3YpXSAmJiAoJHZhcnMoJGxpYnJhcnlfc2V0LGFvY3YpICE9ICIiKX0gewotICAgICAgICAgICAgdXBkYXRlX2xpYnJhcnlfc2V0IC1uYW1lICRsaWJyYXJ5X3NldCBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLWFvY3YgJHZhcnMoJGxpYnJhcnlfc2V0LGFvY3YpCi0gICAgICAgICB9Ci0gICAgICB9Ci0KLQotICAgICAgc2V0X2ludGVyYWN0aXZlX2NvbnN0cmFpbnRfbW9kZXMgW2FsbF9jb25zdHJhaW50X21vZGVzIC1hY3RpdmVdCi0KLSAgICAgIFB1dHMgIjxGRj4gREVSQVRJTkcgREVMQVkgQ09STkVSUyAuLi4iCi0gICAgICBGRl9FREk6OmRlcmF0ZV90aW1pbmcgbW1tYwotCi0gICAgICBpZiB7JHZhcnMoZmxvdykgIT0gIm1tbWMifSB7Ci0gICAgICAgICBGRl9FREk6OnVwZGF0ZV90aW1pbmcgbW1tYwotICAgICAgfQotCi0gICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAjIERlZmluZSBzZXR1cCAvIGhvbGQgYW5hbHlzaXMgdmlld3MgYW5kIGVuYWJsZSB0aGUgZGVmYXVsdCB2aWV3cyBmb3IgZWFjaAotICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgc2V0X2FuYWx5c2lzX3ZpZXcgLXNldHVwICR2YXJzKGFjdGl2ZV9zZXR1cF92aWV3cykgLWhvbGQgJHZhcnMoYWN0aXZlX2hvbGRfdmlld3MpCi0gICAgICBzZXRfZGVmYXVsdF92aWV3IC1zZXR1cCAkdmFycyhkZWZhdWx0X3NldHVwX3ZpZXcpIC1ob2xkICR2YXJzKGRlZmF1bHRfaG9sZF92aWV3KQotICAgfQotCi0gICBwcm9jIGdldF9wb3dlcl9kb21haW5zX2NvZGUge30gewotCi0gICAgICBnbG9iYWwgdmFycwotCi0gICAgICBzZXQgY29tbWFuZHMgInNldCBkb21haW5zIFxbbGlzdFxdXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgImRiRm9yRWFjaFBvd2VyRG9tYWluIFxbZGJnSGVhZFxdIGRvbWFpbiB7XG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgIiAgIGlmIHtcW2RiR3JvdXBISW5zdExpc3QgXFtkYlBvd2VyRG9tYWluTmFtZSBcJGRvbWFpblxdXF0gIT0gXCIweDBcIn0ge1xuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzICIgICAgICBsYXBwZW5kIGRvbWFpbnMgXFtkYlBvd2VyRG9tYWluTmFtZSBcJGRvbWFpblxdXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgIiAgIH1cbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyAifVxuIgotICAgICAgcmV0dXJuICRjb21tYW5kcwotICAgfQotCi0KLSAgIHByb2MgZ2V0X2Nsb2NrX3BvcnRzIHt9IHsKLQotICAgICAgZ2xvYmFsIHZhcnMKLQotICAgICAgc2V0IGNvbW1hbmRzICIiCi0KLSAgICAgIGlmIHshJHZhcnMoY29kZWdlbikgfHwgKCR2YXJzKGNvZGVnZW4pICYmICgkdmFycyhmbGF0KSAhPSAibm9uZSIpKX0gewotCi0gICAgICAgICBpZiB7JHZhcnMoaWxtKX0gewotICAgICAgICAgICAgaWYgeyR2YXJzKHN0ZXApICE9ICJjdHMifSB7IAotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJzZXRJbG1UeXBlIC1tb2RlbCBzaVxuIgotICAgICAgICAgICAgfQotICAgICAgICAgfQotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJzZXQgY2xvY2tfcG9ydHMgXFtsaXN0XF1cbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAic2V0IGNsb2NrcyBcW2dldF9jbG9ja3MgKlxdXG4iCi0KLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiZm9yZWFjaF9pbl9jb2xsZWN0aW9uIGNsb2NrIFwkY2xvY2tzIHtcbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiICAgc2V0IHNvdXJjZXMgIFxbZ2V0X3Byb3BlcnR5IFwkY2xvY2sgc291cmNlc1xdXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiAgIGZvcmVhY2hfaW5fY29sbGVjdGlvbiBzb3VyY2UgXCRzb3VyY2VzIHtcbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiICAgICBzZXQgc291cmNlX25hbWUgXFtnZXRfcHJvcGVydHkgXCRzb3VyY2UgaGllcmFyY2hpY2FsX25hbWVcXVxuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIgICAgIHNldCBzb3VyY2VfdHlwZSBcW2dldF9wcm9wZXJ0eSBcJHNvdXJjZSBvYmplY3RfdHlwZVxdXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiAgICAgaWYge1wkc291cmNlX3R5cGUgPT0gXCJwb3J0XCJ9IHtcbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiICAgICAgIGxhcHBlbmQgY2xvY2tfcG9ydHMgXCRzb3VyY2VfbmFtZVxuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIgICAgfVxuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIgIH1cbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAifVxuIgotICAgICAgfSBlbHNlIHsKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiRkY6OmdldF9jbG9ja19wb3J0c1xuIgotICAgICAgfQotICAgICAgcmV0dXJuICRjb21tYW5kcwotICAgfQotCi0gICBwcm9jIGFkZF90aWVfY2VsbHMge3ttb2RlIHRydWV9IHthZGQgdHJ1ZX19IHsKLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICMgVGhpcyBwcm9jZWR1cmUgaW5zZXJ0cyB0aWUgaGkvbG8gY2VsbHMgYmFzZWQgb24gaW5mb3JtYXRpb24gaW4gdGhlCi0gICAgICAjIHNldHVwLnRjbAotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCi0gICAgICBnbG9iYWwgdmFycwotICAgICAgZ2xvYmFsIGVycm9ycwotCi0gICAgICBzZXQgY29tbWFuZHMgIiIKLSAgICAgIGlmIHskdmFycyh2ZXJib3NlKX0gewotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgQURESU5HIFRJRSBDRUxMU1xuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjXG4iCi0gICAgICB9Ci0KLSAgICAgIHNldCBhcmdzICIiCi0gICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnModGllX2NlbGxzLG1heF9kaXN0YW5jZSldfSB7Ci0gICAgICAgICBhcHBlbmQgYXJncyAiIC1tYXhEaXN0YW5jZSAkdmFycyh0aWVfY2VsbHMsbWF4X2Rpc3RhbmNlKSIKLSAgICAgIH0KLSAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyh0aWVfY2VsbHMsbWF4X2Zhbm91dCldfSB7Ci0gICAgICAgICBhcHBlbmQgYXJncyAiIC1tYXhGYW5vdXQgJHZhcnModGllX2NlbGxzLG1heF9mYW5vdXQpIgotICAgICAgfQotCi0gICAgICBpZiB7W0ZGOjppc19scF9mbG93XSAmJiAoW2luZm8gZXhpc3RzIHZhcnMocG93ZXJfZG9tYWlucyldICYmIChbbGxlbmd0aCAkdmFycyhwb3dlcl9kb21haW5zKV0gPiAxKSl9IHsKLQotICAgICAgICAgIyBHZXQgdGhlIHNldCBvZiB0aWUgY2VsbHMgdG8gdXNlLCBib3RoIGRvbWFpbi1zcGVjaWZpYyBhbmQgZ2VuZXJpYy4KLQotICAgICAgICAgc2V0IGFsbF90aWVfY2VsbHMgW2xpc3RdCi0KLSAgICAgICAgIHNldCBoYXNfZGVmYXVsdCBmYWxzZQotICAgICAgICAgaWYgeyFbY2F0Y2gge3NldCBkZWZhdWx0X2NlbGxzICR2YXJzKHRpZV9jZWxscyl9XX0gewotICAgICAgICAgICAgc2V0IGhhc19kZWZhdWx0IHRydWUKLSAgICAgICAgICAgIGxhcHBlbmQgYWxsX3RpZV9jZWxscyAkdmFycyh0aWVfY2VsbHMpCi0gICAgICAgICB9Ci0gICAgICAgICBzZXQgaGFzX3NwZWNpZmljIGZhbHNlCi0gICAgICAgICBmb3JlYWNoIGRvbWFpbiBbRkY6OmdldF9ieV9zdWZmaXggdmFycyAiLHRpZV9jZWxscyJdIHsKLSAgICAgICAgICAgIHNldCBjZWxscyAkdmFycygkZG9tYWluLHRpZV9jZWxscykKLSAgICAgICAgICAgIGxhcHBlbmQgYWxsX3RpZV9jZWxscyAkdmFycygkZG9tYWluLHRpZV9jZWxscykKLSAgICAgICAgICAgIGlmIHshW2xsZW5ndGggJGNlbGxzXX0gewotICAgICAgICAgICAgICAgY29udGludWUKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHNldCBoYXNfc3BlY2lmaWMgdHJ1ZQotIyAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJzZXQgdGllX2NlbGxzKCRkb21haW4pIFxbbGlzdCAkY2VsbHNcXVxuIgotIyAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAkY29tbWFuZAotICAgICAgICAgfQotCi0gICAgICAgICAjCi0gICAgICAgICAjIElmIHRoZXJlIGFyZSBubyB0aWUgY2VsbHMgYXQgYWxsLCB0aGVyZSdzIG5vdGhpbmcgdG8gZG8KLSAgICAgICAgICMKLQotICAgICAgICAgaWYgeyEkaGFzX2RlZmF1bHQgJiYgISRoYXNfc3BlY2lmaWN9IHsKLSAgICAgICAgICAgIHJldHVybiAiIgotICAgICAgICAgfQotCi0gICAgICAgICBzZXQgYWxsX3RpZV9jZWxscyBbbHNvcnQgLXVuaXF1ZSBbam9pbiAkYWxsX3RpZV9jZWxsc11dCi0KLSAgICAgICAgICMKLSAgICAgICAgICMgSWYgdGhlcmUgYXJlIG5vIGRvbWFpbi1zcGVjaWZpYyBlbnRyaWVzLCBsaWZlIGlzIHJlYWwgc2ltcGxlCi0gICAgICAgICAjCi0KLSMgICAgICAgICBpZiB7ISRoYXNfc3BlY2lmaWN9IHsKLSMgICAgICAgICAgICBzZXQgY29tbWFuZCAic2V0VGllSGlMb01vZGUgLWNlbGwgXCIkZGVmYXVsdF9jZWxsc1wiICRhcmdzXG4iCi0jICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHNldF90aWVfaGlfbG9fbW9kZSAkY29tbWFuZF0KLSMgICAgICAgICAgICBpZiB7JGFkZH0gewotIyAgICAgICAgICAgICAgIGZvcmVhY2ggY2VsbCAkZGVmYXVsdF9jZWxscyB7Ci0jICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJzZXREb250VXNlICRjZWxsIGZhbHNlXG4iCi0jICAgICAgICAgICAgICAgfQotIyAgICAgICAgICAgICAgIGlmIHtbbGxlbmd0aCAkdmFycyhwb3dlcl9kb21haW5zKV0gPiAwfSB7Ci0jICAgICAgICAgICAgICAgICAgZm9yZWFjaCBkb21haW4gJHZhcnMocG93ZXJfZG9tYWlucykgewotIyAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAgIiAgIGNhdGNoIHthZGRUaWVIaUxvIC1wb3dlckRvbWFpbiAkZG9tYWluIC1wcmVmaXggJGRvbWFpbn1cbiIKLSMgICAgICAgICAgICAgICAgICB9Ci0jICAgICAgICAgICAgICAgfQotIyAgICAgICAgICAgICAgIGZvcmVhY2ggY2VsbCAkZGVmYXVsdF9jZWxscyB7Ci0jICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJzZXREb250VXNlICRjZWxsIHRydWVcbiIKLSMgICAgICAgICAgICAgICB9Ci0jICAgICAgICAgICAgfQotIyAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBmb3JlYWNoIGNlbGwgJGRlZmF1bHRfY2VsbHMgewotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJzZXREb250VXNlICRjZWxsIGZhbHNlXG4iCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiB7W2xsZW5ndGggJHZhcnMocG93ZXJfZG9tYWlucyldID4gMH0gewotICAgICAgICAgICAgICAgZm9yZWFjaCBkb21haW4gJHZhcnMocG93ZXJfZG9tYWlucykgewotICAgICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCRkb21haW4sdGllX2NlbGxzKV19IHsKLSAgICAgICAgICAgICAgICAgICAgIHNldCBjb21tYW5kICJzZXRUaWVIaUxvTW9kZSAtY2VsbCBcIiR2YXJzKCRkb21haW4sdGllX2NlbGxzKVwiICRhcmdzXG4iCi0gICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyBkZWZhdWx0X2NlbGxzXX0geyAKLSAgICAgICAgICAgICAgICAgICAgICAgIHNldCBjb21tYW5kICJzZXRUaWVIaUxvTW9kZSAtY2VsbCBcIiRkZWZhdWx0X2NlbGxzXCIgJGFyZ3NcbiIKLSAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZQotICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHNldF90aWVfaGlfbG9fbW9kZSAkY29tbWFuZF0KLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAgIiAgIGNhdGNoIHthZGRUaWVIaUxvIC1wb3dlckRvbWFpbiAkZG9tYWluIC1wcmVmaXggJGRvbWFpbn1cbiIKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGZvcmVhY2ggY2VsbCAkZGVmYXVsdF9jZWxscyB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgInNldERvbnRVc2UgJGNlbGwgdHJ1ZVxuIgotICAgICAgICAgICAgfQotIyAgICAgICAgIH0KLSAgICAgIH0gZWxzZWlmIHshW2NhdGNoIHtzZXQgY2VsbHMgJHZhcnModGllX2NlbGxzKX1dfSB7Ci0gICAgICAgICBzZXQgY29tbWFuZCAic2V0VGllSGlMb01vZGUgLWNlbGwgXCIkY2VsbHNcIiAkYXJnc1xuIgotIyAgICAgICAgIGlmIHskbW9kZX0gewotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHNldF90aWVfaGlfbG9fbW9kZSAkY29tbWFuZF0KLSMgICAgICAgICB9Ci0gICAgICAgICAgICBzZXQgY29tbWFuZCAiZm9yZWFjaCBjZWxsIFx7JGNlbGxzXH0ge1xuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAgIHNldERvbnRVc2UgXCRjZWxsIGZhbHNlXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZCAifVxuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmQgImFkZFRpZUhpTG9cbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kICJmb3JlYWNoIGNlbGwgXHskY2VsbHNcfSB7XG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZCAiICAgc2V0RG9udFVzZSBcJGNlbGwgdHJ1ZVxuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIn1cbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAkY29tbWFuZAotICAgICAgfSBlbHNlIHsKLSAgICAgICAgIHNldCBjb21tYW5kcyAiIgotICAgICAgfQotCi0gICAgICByZXR1cm4gJGNvbW1hbmRzCi0gICB9Ci0KLSAgIHByb2MgYWRkX2ZpbGxlcl9jZWxscyB7fSB7Ci0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAjIFRoaXMgcHJvY2VkdXJlIGluc2VydHMgdGllIGhpL2xvIGNlbGxzIGJhc2VkIG9uIGluZm9ybWF0aW9uIGluIHRoZQotICAgICAgIyBzZXR1cC50Y2wKLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLQotICAgICAgZ2xvYmFsIHZhcnMKLSAgICAgIGdsb2JhbCBlcnJvcnMKLQotICAgICAgc2V0IGNvbW1hbmRzICIiCi0KLSAgICAgIHNldCBjY29tbWFuZHMgIiIKLSAgICAgIGlmIHskdmFycyh2ZXJib3NlKX0gewotICAgICAgICAgYXBwZW5kIGNjb21tYW5kcyAiI1xuIgotICAgICAgICAgYXBwZW5kIGNjb21tYW5kcyAiIyBBREQgRklMTEVSIENFTExTXG4iCi0gICAgICAgICBhcHBlbmQgY2NvbW1hbmRzICIjXG4iCi0gICAgICB9Ci0KLSAgICAgIGFwcGVuZCBjb21tYW5kcyAkY2NvbW1hbmRzCi0KLSAgICAgIGlmIHtbRkY6OmlzX2xwX2Zsb3ddICYmIChbaW5mbyBleGlzdHMgdmFycyhwb3dlcl9kb21haW5zKV0gJiYgKFtsbGVuZ3RoICR2YXJzKHBvd2VyX2RvbWFpbnMpXSA+IDEpKX0gewotCi0gICAgICAgICAjIEdldCB0aGUgc2V0IG9mIGZpbGxlciBjZWxscyB0byB1c2UsIGJvdGggZG9tYWluLXNwZWNpZmljIGFuZCBnZW5lcmljLgotCi0gICAgICAgICBzZXQgYWxsX2ZpbGxlcl9jZWxscyBbbGlzdF0KLQotICAgICAgICAgc2V0IGhhc19kZWZhdWx0IGZhbHNlCi0gICAgICAgICBpZiB7IVtjYXRjaCB7c2V0IGRlZmF1bHRfY2VsbHMgJHZhcnMoZmlsbGVyX2NlbGxzKX1dfSB7Ci0gICAgICAgICAgICBzZXQgaGFzX2RlZmF1bHQgdHJ1ZQotICAgICAgICAgICAgbGFwcGVuZCBhbGxfZmlsbGVyX2NlbGxzICR2YXJzKGZpbGxlcl9jZWxscykKLSAgICAgICAgIH0KLSAgICAgICAgIHNldCBoYXNfc3BlY2lmaWMgZmFsc2UKLSAgICAgICAgIGZvcmVhY2ggZG9tYWluIFtGRjo6Z2V0X2J5X3N1ZmZpeCB2YXJzICIsZmlsbGVyX2NlbGxzIl0gewotICAgICAgICAgICAgc2V0IGNlbGxzICR2YXJzKCRkb21haW4sZmlsbGVyX2NlbGxzKQotICAgICAgICAgICAgbGFwcGVuZCBhbGxfZmlsbGVyX2NlbGxzICR2YXJzKCRkb21haW4sZmlsbGVyX2NlbGxzKQotICAgICAgICAgICAgaWYgeyFbbGxlbmd0aCAkY2VsbHNdfSB7Ci0gICAgICAgICAgICAgICBjb250aW51ZQotICAgICAgICAgICAgfQotICAgICAgICAgICAgc2V0IGhhc19zcGVjaWZpYyB0cnVlCi0jICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgInNldCBmaWxsZXJfY2VsbHMoJGRvbWFpbikgXFtsaXN0ICRjZWxsc1xdXG4iCi0jICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICRjb21tYW5kCi0gICAgICAgICB9Ci0KLSAgICAgICAgICMKLSAgICAgICAgICMgSWYgdGhlcmUgYXJlIG5vIGZpbGxlciBjZWxscyBhdCBhbGwsIHRoZXJlJ3Mgbm90aGluZyB0byBkbwotICAgICAgICAgIwotCi0gICAgICAgICBpZiB7ISRoYXNfZGVmYXVsdCAmJiAhJGhhc19zcGVjaWZpY30gewotICAgICAgICAgICAgcmV0dXJuICIiCi0gICAgICAgICB9Ci0KLSAgICAgICAgIHNldCBhbGxfZmlsbGVyX2NlbGxzIFtsc29ydCAtdW5pcXVlIFtqb2luICRhbGxfZmlsbGVyX2NlbGxzXV0KLQotICAgICAgICAgIwotICAgICAgICAgIyBJZiB0aGVyZSBhcmUgbm8gZG9tYWluLXNwZWNpZmljIGVudHJpZXMsIGxpZmUgaXMgcmVhbCBzaW1wbGUKLSAgICAgICAgICMKLQotIyAgICAgICAgIGlmIHshJGhhc19zcGVjaWZpY30gewotIyAgICAgICAgICAgIHNldCBjb21tYW5kICJzZXRGaWxsZXJNb2RlIC1jb3JlIFwiJGRlZmF1bHRfY2VsbHNcIiAtY29yZVByZWZpeCBGSUxMXG4iCi0jICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHNldF9maWxsZXJfbW9kZSAkY29tbWFuZF0KLSMgICAgICAgICAgICBpZiB7JGFkZH0gewotIyAgICAgICAgICAgICAgIGZvcmVhY2ggY2VsbCAkZGVmYXVsdF9jZWxscyB7Ci0jICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJzZXREb250VXNlICRjZWxsIGZhbHNlXG4iCi0jICAgICAgICAgICAgICAgfQotIyAgICAgICAgICAgICAgIGlmIHtbbGxlbmd0aCAkdmFycyhwb3dlcl9kb21haW5zKV0gPiAwfSB7Ci0jICAgICAgICAgICAgICAgICAgZm9yZWFjaCBkb21haW4gJHZhcnMocG93ZXJfZG9tYWlucykgewotIyAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAgIiAgIGNhdGNoIHthZGRGaWxsZXIgLXBvd2VyRG9tYWluICRkb21haW59XG4iCi0jICAgICAgICAgICAgICAgICAgfQotIyAgICAgICAgICAgICAgIH0KLSMgICAgICAgICAgICAgICBmb3JlYWNoIGNlbGwgJGRlZmF1bHRfY2VsbHMgewotIyAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAic2V0RG9udFVzZSAkY2VsbCB0cnVlXG4iCi0jICAgICAgICAgICAgICAgfQotIyAgICAgICAgICAgIH0KLSMgICAgICAgICB9IGVsc2UgewotIyAgICAgICAgICAgIGZvcmVhY2ggY2VsbCAkZGVmYXVsdF9jZWxscyB7Ci0jICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJzZXREb250VXNlICRjZWxsIGZhbHNlXG4iCi0jICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYge1tsbGVuZ3RoICR2YXJzKHBvd2VyX2RvbWFpbnMpXSA+IDB9IHsKLSAgICAgICAgICAgICAgIHNldCBkZWZhdWx0IDAKLSAgICAgICAgICAgICAgIGZvcmVhY2ggZG9tYWluICR2YXJzKHBvd2VyX2RvbWFpbnMpIHsKLSAgICAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkZG9tYWluLGZpbGxlcl9jZWxscyldfSB7Ci0gICAgICAgICAgICAgICAgICAgICBzZXQgY29tbWFuZCAic2V0RmlsbGVyTW9kZSAtY29yZSBcIiR2YXJzKCRkb21haW4sZmlsbGVyX2NlbGxzKVwiIC1jb3JlUHJlZml4IEZJTExcbiIKLSAgICAgICAgICAgICAgICAgICAgIHNldCBkZWZhdWx0IDAKLSAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIGRlZmF1bHRfY2VsbHNdfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiB7ISRkZWZhdWx0fSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICBzZXQgY29tbWFuZCAic2V0RmlsbGVyTW9kZSAtY29yZSBcIiRkZWZhdWx0X2NlbGxzXCIgLWNvcmVQcmVmaXggRklMTFxuIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0IGRlZmF1bHQgMQotICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICBzZXQgY29tbWFuZCAiIgotICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZQotICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHNldF9maWxsZXJfbW9kZSAkY29tbWFuZF0KLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAgIiAgIGNhdGNoIHthZGRGaWxsZXIgLXBvd2VyRG9tYWluICRkb21haW59XG4iCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0jICAgICAgICAgICAgZm9yZWFjaCBjZWxsICRkZWZhdWx0X2NlbGxzIHsKLSMgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgInNldERvbnRVc2UgJGNlbGwgdHJ1ZVxuIgotIyAgICAgICAgICAgIH0KLSMgICAgICAgfQotICAgfSBlbHNlaWYgeyFbY2F0Y2gge3NldCBjZWxscyAkdmFycyhmaWxsZXJfY2VsbHMpfV19IHsKLSAgICAgICAgIHNldCBjb21tYW5kICJzZXRGaWxsZXJNb2RlIC1jb3JlIFwiJGNlbGxzXCIgLWNvcmVQcmVmaXggRklMTFxuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHNldF9maWxsZXJfbW9kZSAkY29tbWFuZF0KLSMgICAgICAgICAgICBzZXQgY29tbWFuZCAiZm9yZWFjaCBjZWxsIFx7JGNlbGxzXH0ge1xuIgotIyAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgICBzZXREb250VXNlIFwkY2VsbCBmYWxzZVxuIgotIyAgICAgICAgIGFwcGVuZCBjb21tYW5kICJ9XG4iCi0gICAgICAgICAgICBzZXQgY29tbWFuZCAiYWRkRmlsbGVyXG4iCi0jICAgICAgICAgYXBwZW5kIGNvbW1hbmQgImZvcmVhY2ggY2VsbCBceyRjZWxsc1x9IHtcbiIKLSMgICAgICAgICBhcHBlbmQgY29tbWFuZCAiICAgc2V0RG9udFVzZSBcJGNlbGwgdHJ1ZVxuIgotIyAgICAgICAgIGFwcGVuZCBjb21tYW5kICJ9XG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgJGNvbW1hbmQKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgICBzZXQgY29tbWFuZHMgIiIKLSAgICAgIH0KLQotICAgICAgcmV0dXJuICRjb21tYW5kcwotICAgfQotCi0gICBwcm9jIGRlbGV0ZV9maWxsZXJfY2VsbHMge30gewotCi0gICAgICBnbG9iYWwgdmFycwotCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAjIFJlbW92ZSBmaWxsZXIgY2VsbHMKLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLQotICAgICAgc2V0IGNvbW1hbmQgImRlbGV0ZUZpbGxlclxuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLGRlbGV0ZV9maWxsZXJfY2VsbHMgJGNvbW1hbmRdCi0gICAgICByZXR1cm4gJGNvbW1hbmRzCi0gICB9Ci0KLSAgIHByb2MgaW5zZXJ0X3dlbGx0YXBzX2VuZGNhcHMge3tvdXRsaW5lIGZhbHNlfX0gewotCi0gICAgICBnbG9iYWwgdmFycwotCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAjIEluc2VydCB3ZWxsdGFwcyBhbmQgcHJlL3Bvc3QgZW5kY2FwcwotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCi0gICAgICBnbG9iYWwgdmFycwotICAgICAgZ2xvYmFsIGVycm9ycwotICAgICAgZ2xvYmFsIHdhcm5pbmdzCi0KLSAgICAgIHNldCBjb21tYW5kcyAiIgotCi0gICAgICBpZiB7W0ZGOjppc19scF9mbG93XSAmJiAoW2luZm8gZXhpc3QgdmFycyhwb3dlcl9kb21haW5zKV0gJiYgKFtsbGVuZ3RoICR2YXJzKHBvd2VyX2RvbWFpbnMpXSA+IDApKX0gewotCi0gICAgICAgICBpZiB7JHZhcnMoZmxhdCkgPT0gImZ1bGwifSB7Ci0gICAgICAgICAgICAjCi0gICAgICAgICAgICAjIEp1c3QgbGlrZSB0aWUgYW5kIGZpbGxlciBjZWxscywgd2UgY2FuIGhhdmUgcG93ZXIgZG9tYWluLXNwZWNpZmljCi0gICAgICAgICAgICAjIGNlbGxzIGFuZCBzZXR0aW5ncyB0aGF0IHdlIG5lZWQgdG8gd29ycnkgYWJvdXQuCi0gICAgICAgICAgICAjCi0gICAKLSMgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGX0VESTo6Z2V0X3Bvd2VyX2RvbWFpbnNfY29kZV0KLSAgIAotICAgICAgICAgICAgIwotICAgICAgICAgICAgIyBHZXQgdGhlIHNldCBvZiBkb21haW5zIHRoYXQgd2UgbmVlZCB0byB3b3JyeSBhYm91dAotICAgICAgICAgICAgIwotICAgCi0gICAgICAgICAgICBzZXQgcHJlIFtGRjo6Z2V0X2J5X3N1ZmZpeCB2YXJzICIscHJlX2VuZGNhcCJdCi0gICAgICAgICAgICBzZXQgcG9zdCBbRkY6OmdldF9ieV9zdWZmaXggdmFycyAiLHBvc3RfZW5kY2FwIl0KLSAgICAgICAgICAgIHNldCBlbmRjYXBzIFtGRjo6bGludGVyc2VjdGlvbiAkcHJlICRwb3N0XQotICAgICAgICAgICAgc2V0IHdlbGx0YXBzIFtGRjo6Z2V0X2J5X3N1ZmZpeCB2YXJzICIsd2VsbHRhcHMiXQotICAgCi0gICAgICAgICAgICAjCi0gICAgICAgICAgICAjIEZvciBldmVyeSBkb21haW4gaW4gdGhlIHVuaW9uLCB3ZSBuZWVkIHRvIGlzc3VlIHN0YXRlbWVudHMgaWYgdGhhdAotICAgICAgICAgICAgIyBkb21haW4gaXMgb25lIG9mIHRoZSBwb3dlciBkb21haW5zIGluIHRoZSBkZXNpZ24KLSAgICAgICAgICAgICMKLSAgICAgICAgICAgICMgTk9URTogV2UgcmVhbGx5IGRvbid0IG5lZWQgdG8gd29ycnkgYWJvdXQgaW5kZW50aW5nIHRoZSBjb21tYW5kcwotICAgICAgICAgICAgIyAgICAgICB0byBsb29rIG5pY2Ugc2luY2UgdGhlIG91dHB1dCByb3V0aW5lIHdpbGwgZm9ybWF0IGl0IGNvcnJlY3RseQotICAgICAgICAgICAgIwotICAgCi0gICAgICAgICAgICBzZXQgZG9tYWlucyBbRkY6Omx1bmlvbiAkZW5kY2FwcyAkd2VsbHRhcHNdCi0KLSAgICAgICAgICAgIGZvcmVhY2ggZG9tYWluICRkb21haW5zIHsKLSMgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgImlmIHtcW2xzZWFyY2ggXCRkb21haW5zICRkb21haW5cXSAhPSAtMX0ge1xuIgotICAgCi0gICAgICAgICAgICAgICAjCi0gICAgICAgICAgICAgICAjIEhhbmRsZSB0aGUgZW5kIGNhcHMKLSAgICAgICAgICAgICAgICMKLSAgIAotICAgICAgICAgICAgICAgc2V0IHN0ZF9hcmdzICItcHJlZml4ICRkb21haW4gLXBvd2VyRG9tYWluICRkb21haW4iCi0gICAgICAgICAgICAgICBzZXQgYWRkICIgICBhZGRFbmRDYXAgJHN0ZF9hcmdzIgotICAgICAgICAgICAgICAgaWYgeyFbY2F0Y2gge3NldCBwcmUgJHZhcnMoJGRvbWFpbixwcmVfZW5kY2FwKX1dICYmCi0gICAgICAgICAgICAgICAgICAgIVtjYXRjaCB7c2V0IHBvc3QgJHZhcnMoJGRvbWFpbixwb3N0X2VuZGNhcCl9XX0gewotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIkYWRkIC1wcmVDYXAgJHByZSAtcG9zdENhcCAkcG9zdFxuIgotICAgICAgICAgICAgICAgfSBlbHNlaWYgeyFbY2F0Y2gge3NldCBwcmUgJHZhcnMocHJlX2VuZGNhcCl9XSAmJgotICAgICAgICAgICAgICAgICAgICAgICAgICFbY2F0Y2gge3NldCBwb3N0ICR2YXJzKHBvc3RfZW5kY2FwKX1dfSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiRhZGQgLXByZUNhcCAkcHJlIC1wb3N0Q2FwICRwb3N0XG4iCi0gICAgICAgICAgICAgICB9Ci0gICAKLSAgICAgICAgICAgICAgIHNldCB0YXBzICIiCi0gICAgICAgICAgICAgICBpZiB7W2NhdGNoIHtzZXQgdGFwcyAkdmFycygkZG9tYWluLHdlbGx0YXBzKX1dfSB7Ci0gICAgICAgICAgICAgICAgICBjYXRjaCB7c2V0IHRhcHMgJHZhcnMod2VsbHRhcHMpfQotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgaWYgeyR0YXBzID09ICIifSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIlx9XG4iCi0gICAgICAgICAgICAgICAgICBjb250aW51ZQotICAgICAgICAgICAgICAgfQotICAgCi0gICAgICAgICAgICAgICAjCi0gICAgICAgICAgICAgICAjIEhhbmRsZSB3ZWxsIHRhcHMKLSAgICAgICAgICAgICAgICMKLSAgIAotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIgICBhZGRXZWxsVGFwICRzdGRfYXJncyAtY2VsbCBcW2xpc3QgJHRhcHNcXSIKLSAgIAotICAgICAgICAgICAgICAgaWYgeyFbY2F0Y2gge3NldCBpICR2YXJzKCRkb21haW4sd2VsbHRhcHMsY2VsbF9pbnRlcnZhbCl9XX0gewotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIgLWNlbGxJbnRlcnZhbCAkaSIKLSAgICAgICAgICAgICAgIH0gZWxzZWlmIHshW2NhdGNoIHtzZXQgaSAkdmFycyh3ZWxsdGFwcyxjZWxsX2ludGVydmFsKX1dfSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiAtY2VsbEludGVydmFsICRpIgotICAgICAgICAgICAgICAgfQotICAgCi0gICAgICAgICAgICAgICBpZiB7IVtjYXRjaCB7c2V0IG9mZnNldCAkdmFycygkZG9tYWluLHdlbGx0YXBzLHJvd19vZmZzZXQpfV0gfHwKLSAgICAgICAgICAgICAgICAgICAhW2NhdGNoIHtzZXQgb2Zmc2V0ICR2YXJzKHdlbGx0YXBzLHJvd19vZmZzZXQpfV19IHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIC1pblJvd09mZnNldCAkb2Zmc2V0IgotICAgICAgICAgICAgICAgfQotICAgCi0gICAgICAgICAgICAgICBpZiB7IVtjYXRjaCB7c2V0IGNoZWNrZXIgJHZhcnMoJGRvbWFpbix3ZWxsdGFwcyxjaGVja2VyYm9hcmQpfV0gfHwKLSAgICAgICAgICAgICAgICAgICAhW2NhdGNoIHtzZXQgY2hlY2tlciAkdmFycyh3ZWxsdGFwcyxjaGVja2VyYm9hcmQpfV19IHsKLSAgICAgICAgICAgICAgICAgIGlmIHskY2hlY2tlcn0gewotICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIgLWNoZWNrZXJib2FyZCIKLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiXG4iCi0gICAKLSAgICAgICAgICAgICAgICMKLSAgICAgICAgICAgICAgICMgQWRkIGEgdmVyaWZ5IHN0ZXAsIGlmIHJlcXVlc3RlZAotICAgICAgICAgICAgICAgIwotICAgCi0gICAgICAgICAgICAgICBpZiB7IVtjYXRjaCB7c2V0IHJ1bGUgJHZhcnMoJGRvbWFpbix3ZWxsdGFwcyx2ZXJpZnlfcnVsZSl9XSB8fAotICAgICAgICAgICAgICAgICAgICFbY2F0Y2gge3NldCBydWxlICR2YXJzKHdlbGx0YXBzLHZlcmlmeV9ydWxlKX1dfSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgInZlcmlmeVdlbGxUYXAgLWNlbGxzIFxbbGlzdCAkdGFwc1xdIgotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIgLXBvd2VyRG9tYWluICRkb21haW4iCi0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiAtcmVwb3J0ICR2YXJzKHJwdF9kaXIpLyRkb21haW4ud2VsbHRhcC5ycHQiCi0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiAtcnVsZSAkcnVsZVxuIgotICAgICAgICAgICAgICAgfQotICAgCi0jICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJ9XG4iCi0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgICMKLSAgICAgICAgICAgICMgV2UndmUgdGFrZW4gY2FyZSBvZiBhbGwgb2YgdGhlIGRvbWFpbnMgdGhhdCB3ZSBoYXZlIGV4cGxpY2l0Ci0gICAgICAgICAgICAjIHNldHRpbmdzIGZvci4gIEhvd2V2ZXIsIHdlIG1heSBzdGlsbCBoYXZlIGRvbWFpbnMgaW4gdGhlIGRlc2lnbgotICAgICAgICAgICAgIyB0aGF0IHdlIGtub3cgbm90aGluZyBleHBsaWNpdCBhYm91dC4gIFdlIG5lZWQgdG8gaGFuZGxlIHRoZXNlCi0gICAgICAgICAgICAjIHdpdGggYSBkaWZmZXJlbnQgc2V0IG9mIGNvZGUuCi0gICAgICAgICAgICAjCi0gICAgICAgICAgICAjIFdlIGFyZSBnb2luZyB0byBjaGVhdC4gIFNpbmNlIHRoZSBjb2RlIHdlIG5lZWQgaXMgYWxyZWFkeSB3cml0dGVuCi0gICAgICAgICAgICAjIChiZWxvdyksIHdlIGFyZSBnb2luZyB0byByZWN1cnNpdmVseSBjYWxsIHRoaXMgcm91dGluZSB0byBnZXQKLSAgICAgICAgICAgICMgdGhlIHNrZWxldG9uIHRoYXQgd2UgbmVlZCBhbmQgd3JhcCBpdCB1cCBpbnRvIGEgZm9yLWxvb3AuICBUaGlzCi0gICAgICAgICAgICAjIHNob3VsZCBnZXQgdXMgc29tZXRoaW5nIHRoYXQgbG9va3MgbGlrZSB0aGUgZm9sbG93aW5nOgotICAgICAgICAgICAgIyAgICAgICBzZXQgcHJvY2Vzc2VkIFtsaXN0IGRvbWFpbjEgZG9tYWluMiBkb21haW4zXQotICAgICAgICAgICAgIyAgICAgICBmb3JlYWNoIGRvbWFpbiAkZG9tYWlucyB7Ci0gICAgICAgICAgICAjICAgICAgICAgIGlmIHtbbHNlYXJjaCAkcHJvY2Vzc2VkX2RvbWFpbnMgJGRvbWFpbl0gPT0gLTF9IHsKLSAgICAgICAgICAgICMgICAgICAgICAgICAgYWRkRW5kQ2FwIC1wb3dlckRvbWFpbiAkZG9tYWluIC1wcmVmaXggJGRvbWFpbiAuLi4KLSAgICAgICAgICAgICMgICAgICAgICAgICAgYWRkV2VsbFRhcCAtcG93ZXJEb21haW4gJGRvbWFpbiAtcHJlZml4ICRkb21haW4gLi4uCi0gICAgICAgICAgICAjICAgICAgICAgICAgIHZlcmlmeVdlbGxUYXAgLXBvd2VyRG9tYWluICRkb21haW4gLi4uCi0gICAgICAgICAgICAjICAgICAgICAgIH0KLSAgICAgICAgICAgICMgICAgICAgfQotICAgICAgICAgICAgIwotICAgICAgICAgICAgIyBOT1RFOiBUaGUgb3V0cHV0IHJvdXRpbmUgd2lsbCB0YWtlIGNhcmUgb2YgbWFraW5nIHRoaXMgbG9vayBwcmV0dHkKLSAgICAgICAgICAgICMgICAgICAgYXQgdGhlIGVuZC4gIFdlIGRvbid0IG5lZWQgdG8gd29ycnkgYWJvdXQgaW5kZW50YXRpb24gZm9yCi0gICAgICAgICAgICAjICAgICAgIHRoZSBpbnNlcnRlZCBjb21tYW5kcwotICAgICAgICAgICAgIwotICAgCi0jICAgICAgICAgICAgc2V0IHNhdmUgJHZhcnMoY3BmX2ZpbGUpCi0jICAgICAgICAgICAgdW5zZXQgdmFycyhjcGZfZmlsZSkKLSMgICAgICAgICAgICBzZXQgZGVmYXVsdF9pbnNlcnQgW2luc2VydF93ZWxsdGFwc19lbmRjYXBzIHRydWVdCi0jICAgICAgICAgICAgaWYgeyRkZWZhdWx0X2luc2VydCAhPSAiIn0gewotIyAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAic2V0IHByb2Nlc3NlZF9kb21haW5zIFxbbGlzdCAkZG9tYWluc1xdXG4iCi0jICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJmb3JlYWNoIGRvbWFpbiBcJGRvbWFpbnMge1xuIgotIyAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiICAgaWYge1xbbHNlYXJjaCBcJHByb2Nlc3NlZF9kb21haW5zIFwkZG9tYWluXF0gPT0gLTF9IHtcbiIKLSMgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiAgICAgICRkZWZhdWx0X2luc2VydCIKLSMgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiAgIH1cbiIKLSMgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIn1cbiIKLSMgICAgICAgICAgICB9Ci0jICAgICAgICAgICAgc2V0IHZhcnMoY3BmX2ZpbGUpICRzYXZlCi0gICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJmZl9wcm9jczo6aW5zZXJ0X3dlbGx0YXBzX2VuZGNhcHNcbiIKLSAgICAgICAgIH0KLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAjCi0gICAgICAgICAjIFRoZXJlIGlzIG5vIENQRiBmaWxlIHRoYXQgd2UgbmVlZCB0byB3b3JyeSBhYm91dC4gIEhvd2V2ZXIsIGlmCi0gICAgICAgICAjICRvdXRsaW5lIGlzIHRydWUsIGl0IG1lYW5zIHRoYXQgdGhlIGNvZGUgKGFib3ZlKSB0aGF0IGhhbmRsZXMgcG93ZXIKLSAgICAgICAgICMgZG9tYWlucyBjYWxsZWQgdGhpcyByb3V0aW5lIHJlY3Vyc2l2ZWx5LCBhbmQgd2UgbmVlZCB0byBjaGFuZ2UKLSAgICAgICAgICMgdGhlIGNvbW1hbmRzIGEgbGl0dGxlIGJpdCB0byBpbmNsdWRlIHZhcmlhYmxlcyBmb3IgcG93ZXIgZG9tYWlucwotICAgICAgICAgIwotICAgICAgICAgIyBTdGFydCB3aXRoIHRoZSBzaW1wbGUgY2FzZTogZW5kY2FwcwotICAgICAgICAgIwotCi0gICAgICAgICBpZiB7IVtjYXRjaCB7c2V0IHByZSAkdmFycyhwcmVfZW5kY2FwKX1dICYmCi0gICAgICAgICAgICAgIVtjYXRjaCB7c2V0IHBvc3QgJHZhcnMocG9zdF9lbmRjYXApfV19IHsKLQotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJhZGRFbmRDYXAgLXByZUNhcCAkcHJlIC1wb3N0Q2FwICRwb3N0IgotICAgICAgICAgICAgaWYgeyEkb3V0bGluZX0gewotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIgLXByZWZpeCBFTkRDQVBcbiIKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiAtcHJlZml4IFwkZG9tYWluIC1wb3dlckRvbWFpbiBcJGRvbWFpblxuIgotICAgICAgICAgICAgfQotICAgICAgICAgfQotCi0gICAgICAgICAjCi0gICAgICAgICAjIE5vdyBwcm9jZXNzIHdlbGx0YXBzCi0gICAgICAgICAjCi0KLSAgICAgICAgIGlmIHshW2NhdGNoIHtzZXQgdGFwcyAkdmFycyh3ZWxsdGFwcyl9XX0gewotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJhZGRXZWxsVGFwIC1jZWxsIFxbbGlzdCAkdGFwc1xdIgotICAgICAgICAgICAgaWYgeyEkb3V0bGluZX0gewotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIgLXByZWZpeCBXRUxMVEFQIgotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIC1wcmVmaXggXCRkb21haW4gLXBvd2VyRG9tYWluIFwkZG9tYWluIgotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBpZiB7IVtjYXRjaCB7c2V0IG1heF9nYXAgJHZhcnMod2VsbHRhcHMsbWF4X2dhcCl9XX0gewotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIgLW1heEdhcCAkbWF4X2dhcCIKLSAgICAgICAgICAgIH0gZWxzZWlmIHshW2NhdGNoIHtzZXQgaW50ZXJ2YWwgJHZhcnMod2VsbHRhcHMsY2VsbF9pbnRlcnZhbCl9XX0gewotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIgLWNlbGxJbnRlcnZhbCAkaW50ZXJ2YWwiCi0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGlmIHshW2NhdGNoIHtzZXQgb2Zmc2V0ICR2YXJzKHdlbGx0YXBzLHJvd19vZmZzZXQpfV19IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIC1pblJvd09mZnNldCAkb2Zmc2V0IgotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBpZiB7IVtjYXRjaCB7c2V0IGNoZWNrZXIgJHZhcnMod2VsbHRhcHMsY2hlY2tlcmJvYXJkKX1dfSB7Ci0gICAgICAgICAgICAgICBpZiB7JGNoZWNrZXJ9IHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIC1jaGVja2VyYm9hcmQiCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIlxuIgotCi0gICAgICAgICAgICAjCi0gICAgICAgICAgICAjIElmIGEgdmVyaWZ5IHJlcXVlc3QgaGFzIGJlZW4gbWFkZSwgY3JlYXRlIHRoZSBjb21tYW5kIHRvCi0gICAgICAgICAgICAjIGRvIHNvLiAgQWdhaW4sIHRha2UgaW50byBhY2NvdW50IHRoZSBwb3RlbnRpYWwgZm9yIGEgcmVjdXJzaXZlCi0gICAgICAgICAgICAjIGNhbGwgdG8gdGhpcyByb3V0aW5lLgotICAgICAgICAgICAgIwotCi0gICAgICAgICAgICBpZiB7IVtjYXRjaCB7c2V0IHJ1bGUgJHZhcnMod2VsbHRhcHMsdmVyaWZ5X3J1bGUpfV19IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAidmVyaWZ5V2VsbFRhcCAtY2VsbHMgXFtsaXN0ICR0YXBzXF0gIgotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIgLXJlcG9ydCAkdmFycyhycHRfZGlyKS8iCi0gICAgICAgICAgICAgICBpZiB7ISRvdXRsaW5lfSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIndlbGx0YXAucnB0IgotICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiXCRkb21haW4ud2VsbHRhcC5ycHQgLXBvd2VyRG9tYWluIFwkZG9tYWluIgotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIgLXJ1bGUgJHJ1bGVcbiIKLSAgICAgICAgICAgIH0gZWxzZWlmIHshJG91dGxpbmV9IHsKLSMgICAgICAgICAgICAgICBwdXRzICAiPEZGPiBDYW5ub3QgcnVuIHZlcmlmeVdlbGxUYXAgYmVjYXVzZSB2YXJzKHdlbGx0YXBzLHZlcmlmeV9ydWxlKSBpcyBub3QgZGVmaW5lZCIKLSAgICAgICAgICAgICAgIHNldCB3YXJuaW5ncygkdmFycyh3YXJuaW5nX2NvdW50KSkgIkNhbm5vdCBydW4gdmVyaWZ5V2VsbFRhcCBiZWNhdXNlIHZhcnMod2VsbHRhcHMsdmVyaWZ5X3J1bGUpIGlzIG5vdCBkZWZpbmVkIgotICAgICAgICAgICAgICAgaW5jciB2YXJzKHdhcm5pbmdfY291bnQpCi0gICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0gICAgICB9Ci0KLSAgICAgICMKLSAgICAgICMgSWYgd2UgY3JlYXRlZCBhbnkgY29tbWFuZHMgdG8gYmUgZXhlY3V0ZWQsIHByZWZpeCB0aGUgY29tbWFuZHMgd2l0aCBhCi0gICAgICAjIGhlYWRlcgotICAgICAgIwotCi0gICAgICBpZiB7KCRjb21tYW5kcyAhPSAiIikgJiYgISRvdXRsaW5lfSB7Ci0gICAgICAgICBzZXQgYm9keSAkY29tbWFuZHMKLQotICAgICAgICAgc2V0IGNvbW1hbmRzICIiCi0gICAgICAgICBpZiB7JHZhcnModmVyYm9zZSl9IHsKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiI1xuIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjIElOU0VSVElORyBXRUxMVEFQUyBBTkQvT1IgRU5EQ0FQU1xuIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjXG4iCi0gICAgICAgICB9Ci0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgJGJvZHkKLSAgICAgIH0KLQotICAgICAgcmV0dXJuICRjb21tYW5kcwotICAgfQotCi0gICBwcm9jIHJvdXRlX3NlY29uZGFyeV9wZ19uZXRzIHt9IHsKLQotICAgICAgZ2xvYmFsIHZhcnMKLSAgICAgIGdsb2JhbCBlcnJvcnMKLQotICAgICAgIwotICAgICAgIyBEb24ndCB0cnkgdG8gcm91dGUgdW5sZXNzIHRoZSBwcm9wZXIgZmxhZ3MgYXJlIGluIHBsYWNlIHRvIGRvIHNvCi0gICAgICAjCi0KLSAgICAgIGlmIHshW2luZm8gZXhpc3RzIHZhcnMocm91dGVfc2Vjb25kYXJ5X3BnX25ldHMpXSB8fAotICAgICAgICAgICEkdmFycyhyb3V0ZV9zZWNvbmRhcnlfcGdfbmV0cyl9IHsKLSAgICAgICAgIHJldHVybiAiIgotICAgICAgfQotCi0gICAgICBzZXQgY29tbWFuZHMgIiMgPEZGPiBST1VUSU5HIFNFQ09OREFSWSBQT1dFUiBORVRTIC4uLlxuIgotCi0gICAgICAjCi0gICAgICAjIEVuYWJsZSBnbG9iYWwgcGluIHBhaXJzIChpZiBkZWZpbmVkKQotICAgICAgIwotCi0gICAgICBpZiB7W2NhdGNoIHtzZXQgYXJnICR2YXJzKHNlY29uZGFyeV9wZyxjZWxsX3Bpbl9wYWlycyl9XX0gewotICAgICAgICAgcHV0cyAiPEZGPiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09IgotICAgICAgICAgcHV0cyAiPEZGPiBFUlJPUjogTm8gY2VsbC9waW4gcGFpcnMgZGVmaW5lZC4gIFBsZWFzZSBkZWZpbmUgY2VsbC9waW4iCi0gICAgICAgICBwdXRzICI8RkY+ICAgICAgICBwYWlycyBpbiB5b3VyIHNldHVwLnRjbCB1c2luZyB0aGUgdmFyaWFibGUiCi0gICAgICAgICBwdXRzICI8RkY+ICAgICAgICB2YXJzKHNlY29uZGFyeV9wZyxjZWxsX3Bpbl9wYWlycykiCi0gICAgICAgICBwdXRzICI8RkY+ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0iCi0gICAgICAgICBpZiB7JHZhcnMoY29kZWdlbil9IHsKLSAgICAgICAgICAgIHJldHVybiAkY29tbWFuZHMKLSAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgdXBsZXZlbCAjMCBldmFsICRjb21tYW5kcwotICAgICAgICAgfQotICAgICAgfQotICAgICAgYXBwZW5kIGNvbW1hbmRzICJzZXRQR1BpblVzZVNpZ25hbFJvdXRlICRhcmdcbiIKLQotICAgICAgIwotICAgICAgIyBCdWlsZCBjb21tYW5kcyBmb3IgaW5kaXZpZHVhbCBuZXRzIChpZiBkZWZpbmVkKQotICAgICAgIwotCi0gICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoc2Vjb25kYXJ5X3BnLG5ldHMpXX0gewotICAgICAgICAgZm9yZWFjaCBuZXQgJHZhcnMoc2Vjb25kYXJ5X3BnLG5ldHMpIHsKLSAgICAgICAgICAgIGlmIHshW2NhdGNoIHtzZXQgYXJnICR2YXJzKCRuZXQsY2VsbF9waW5fcGFpcnMpfV19IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAic2V0UEdQaW5Vc2VTaWduYWxSb3V0ZSAkYXJnXG4iCi0gICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0gICAgICAgICBzZXQgbmV0cyAkdmFycyhzZWNvbmRhcnlfcGcsbmV0cykKLSAgICAgICAgIHNldCBuZXRGb3JtYXQgIiAtbmV0cyAlcyIKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgICBzZXQgbmV0cyBbbGlzdCAic2Vjb25kYXJ5X3BnIl0KLSAgICAgICAgIHNldCBuZXRGb3JtYXQgIiIKLSAgICAgIH0KLQotICAgICAgZm9yZWFjaCBuZXQgJG5ldHMgewotICAgICAgICAgc2V0IHJvdXRlICJyb3V0ZVBHUGluVXNlU2lnbmFsUm91dGUiCi0gICAgICAgICBhcHBlbmQgcm91dGUgW2Zvcm1hdCAkbmV0Rm9ybWF0ICRuZXRdCi0gICAgICAgICBjYXRjaCB7YXBwZW5kIHJvdXRlICIgLXBhdHRlcm4gJHZhcnMoJG5ldCxwYXR0ZXJuKSJ9Ci0gICAgICAgICBjYXRjaCB7YXBwZW5kIHJvdXRlICIgLW1heEZhbm91dCAkdmFycygkbmV0LG1heF9mYW5vdXQpIn0KLSAgICAgICAgIGNhdGNoIHthcHBlbmQgcm91dGUgIiAtbm9uRGVmYXVsdFJ1bGUgJHZhcnMoJG5ldCxub25fZGVmYXVsdF9ydWxlKSJ9Ci0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiRyb3V0ZVxuIgotICAgICAgfQotICAgICAgcmV0dXJuICRjb21tYW5kcwotICAgfQotCi0gICBwcm9jIGFkZF9wb3dlcl9zd2l0Y2hlcyB7e2RvbWFpbnMgIiJ9fSB7Ci0KLSAgICAgIGdsb2JhbCB2YXJzCi0gICAgICBnbG9iYWwgZXJyb3JzCi0gICAgICBnbG9iYWwgbWFwCi0KLSAgICAgIHNvdXJjZSAkdmFycyhzY3JpcHRfcGF0aCkvRVRDL0lOTk9WVVMvbWFwX29wdGlvbnMudGNsCi0KLSAgICAgIGlmIHskZG9tYWlucyA9PSAiIn0gewotICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkZfRURJOjpnZXRfcG93ZXJfZG9tYWluc19jb2RlXQotIyAgICAgICAgIGV2YWwgW0ZGOjpnZXRfcG93ZXJfZG9tYWluc19jb2RlXQotICAgICAgfQotCi0gICAgICBmb3JlYWNoIGRvbWFpbiAkZG9tYWlucyB7Ci0gICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJGRvbWFpbixzd2l0Y2hhYmxlKV0gJiYKLSAgICAgICAgICAgICAkdmFycygkZG9tYWluLHN3aXRjaGFibGUpfSB7Ci0gICAgICAgICAgICBzZXQgdHlwZSAkdmFycygkZG9tYWluLHN3aXRjaF90eXBlKQotCi0gICAgICAgICAgICBkZWxldGVQb3dlclN3aXRjaCAtJHR5cGUgLXBvd2VyRG9tYWluICRkb21haW4KLQotICAgICAgICAgICAgc2V0IGNvbW1hbmQgImFkZFBvd2VyU3dpdGNoIC1wb3dlckRvbWFpbiAkZG9tYWluIC0kdHlwZSIKLQotICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCRkb21haW4sY2hlY2tlcl9ib2FyZCldICYmCi0gICAgICAgICAgICAgICAgJHZhcnMoJGRvbWFpbixjaGVja2VyX2JvYXJkKX0gewotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAtY2hlY2tlckJvYXJkIgotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCRkb21haW4sYmFja190b19iYWNrX2NoYWluKV0gJiYKLSAgICAgICAgICAgICAgICAkdmFycygkZG9tYWluLGJhY2tfdG9fYmFja19jaGFpbil9IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgLWJhY2tUb0JhY2tDaGFpbiIKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkZG9tYWluLGxvb3BfYmFja19hdF9lbmQpXSAmJgotICAgICAgICAgICAgICAgICR2YXJzKCRkb21haW4sbG9vcF9iYWNrX2F0X2VuZCl9IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgLWxvb3BiYWNrQXRFbmQiCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJGRvbWFpbixjaGVja19oZWlnaHQpXSAmJgotICAgICAgICAgICAgICAgICEkdmFycygkZG9tYWluLGNoZWNrX2hlaWdodCl9IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgLW5vRG91YmxlSGVpZ2h0Q2hlY2siCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJGRvbWFpbix2ZXJpZnlfcm93cyldICYmCi0gICAgICAgICAgICAgICAgISR2YXJzKCRkb21haW4sdmVyaWZ5X3Jvd3MpfSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiIC1ub1Jvd1ZlcmlmeSIKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkZG9tYWluLGVuYWJsZV9jaGFpbildICYmCi0gICAgICAgICAgICAgICAgISR2YXJzKCRkb21haW4sZW5hYmxlX2NoYWluKX0gewotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAtbm9FbmFibGVDaGFpbiIKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgZm9yZWFjaCBvcHRpb24gW2FycmF5IG5hbWVzIG1hcF0gewotICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCRkb21haW4sJG9wdGlvbildfSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiIC0kbWFwKCRvcHRpb24pICR2YXJzKCRkb21haW4sJG9wdGlvbikiCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIHVwbGV2ZWwgIzAgZXZhbCAkY29tbWFuZAotICAgICAgICAgfQotICAgICAgfQotICAgfQotCi0gICBwcm9jIHJ1bl9jbG9ja19lY28ge2FyZ3N9IHsKLQotICAgICAgZ2xvYmFsIHZhcnMKLSAgICAgIGdsb2JhbCBlcnJvcnMKLQotICAgICAgaWYge1tsbGVuZ3RoICRhcmdzXSAhPSAxfSB7Ci0gICAgICAgICBwdXRzICI8RkY+IEludGVybmFsIGVycm9yIGluIHJ1bl9jbG9ja19lY28uICBXcm9uZyBudW1iZXIgb2YgYXJncy4iCi0gICAgICAgICBleGl0IC0xMTEKLSAgICAgIH0KLQotICAgICAgc2V0IGNvbW1hbmRzICIiCi0jICAgICAgYXBwZW5kIGNvbW1hbmRzICIjIDxGRj4gUlVOTklORyBDTE9DSyBFQ09cbiIKLSAgICAgIHN3aXRjaCAkYXJncyB7Ci0gICAgICAgICAicG9zdF9yb3V0ZSIgewotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRl9FREk6OmRlbGV0ZV9maWxsZXJfY2VsbHNdCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgImNrRUNPIC1wb3N0Um91dGUgLXVzZVNwZWNGaWxlQ2VsbHNPbmx5XG4iCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGX0VESTo6YWRkX2ZpbGxlcl9jZWxsc10KLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiY2hhbmdlQ2xvY2tTdGF0dXMgLWFsbCAtbm9GaXhlZE5ldFdpcmVzXG4iCi0gICAgICAgICB9Ci0gICAgICAgICAicG9zdF9jdHMiIHsgCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgImNrRUNPIC1wb3N0Q1RTIC11c2VTcGVjRmlsZUNlbGxzT25seVxuIgotICAgICAgICAgfQotICAgICAgICAgZGVmYXVsdCB7Ci0gICAgICAgICAgICBwdXRzICI8RkY+IEludGVybmFsIGVycm9yIGluIHJ1bl9jbG9ja19lY28uIgotICAgICAgICAgICAgcHV0cyAiPEZGPiBJbnZhbGlkIGFyZ3VtZW50OyB2YWxpZCBhcmd1bWVudHMgYXJlIHBvc3RfY3RzIGFuZCBwb3N0X3JvdXRlLiIKLSAgICAgICAgICAgIGV4aXQgLTExMQotICAgICAgICAgfQotICAgICAgfQotICAgIyAgIGlmIHskdmFycyhjb2RlZ2VuKX0gewotICAgICAgICAgcmV0dXJuICRjb21tYW5kcwotICAgIyAgIH0gZWxzZSB7Ci0gICAjICAgICAgIHVwbGV2ZWwgIzAgZXZhbCAkY29tbWFuZHMKLSAgICMgICB9Ci0gICB9Ci0KLSAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICMgTWFpbiBmb3VuZGF0aW9uIGZsb3cgc3RlcCBwcm9jZWR1cmVzCi0gICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0KLSAgIHByb2MgcnVuX3N5bl9tYXAge3tmb3JtYXQgMX19IHsKLSAgIAotICAgICAgZ2xvYmFsIHZhcnMKLSAgICAgIGdsb2JhbCBlbnYKLSAgICAgIGdsb2JhbCBlcnJvcnMKLQotICAgICAgc2V0IHZhcnMoc3RlcCkgc3luX21hcAotCi0gICAgICBzZXQgY29tbWFuZHMgIiIKLQotICAgICAgYXBwZW5kIGNvbW1hbmRzICJwcm9jIFB1dHMge2FyZ3N9IHtwdXRzIFwkYXJnc31cbiIKLQotICAgICAgYXBwZW5kIGNvbW1hbmRzICJwdXRzIFxbZ2V0X2F0dHIgcHJvZ3JhbV92ZXJzaW9uIC9cXVxuIgotCi0gICAgICAjIyBlbmFibGUgbXVsdGkgcHJvY2Vzc2luZwotICAgICAgYXBwZW5kIGNvbW1hbmRzICJzZXQgaG9zdGxpc3QgXFtscmVwZWF0ICR2YXJzKGxvY2FsX2NwdXMpIGxvY2FsaG9zdFxdXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgInNldF9hdHRyaWJ1dGUgc3VwZXJfdGhyZWFkX3NlcnZlcnMgXCRob3N0bGlzdCAvXG4iCi0gICAgIAotICAgICAgaWYgeyR2YXJzKGNhcHR1cmVfbWV0cmljcyl9IHsKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiXG51bTo6ZW5hYmxlX21ldHJpY3MgLW9uXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgInVtOjpwdXNoX3NuYXBzaG90X3N0YWNrXG4iCi0gICAgICB9Ci0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjpzb3VyY2VfcGx1ZyBwcmVfc3luX3NldHVwX3RjbF0KLSAgICAgIAotICAgICAgICAgc2V0IGNvbW1hbmQgInNldF9hdHRyaWJ1dGUgaW5mb3JtYXRpb25fbGV2ZWwgMSAvXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZCAic2V0X2F0dHJpYnV0ZSBzb3VyY2VfdmVyYm9zZSBmYWxzZSAvXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZCAic2V0X2F0dHJpYnV0ZSAtcXVpZXQgcHJpbnRfZXJyb3JfaW5mbyBmYWxzZSAvXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZCAic2V0X2F0dHJpYnV0ZSAtcXVpZXQgZWNob19jb21tYW5kcyBmYWxzZSAvXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZCAic2V0X2F0dHJpYnV0ZSBtZXNnX2NvbG9yaW5nIGZhbHNlIC9cbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kICJzZXRfYXR0cmlidXRlIHFvc19yZXBvcnRfYmFzaWNfY29zdF9ncm91cHMgdHJ1ZSAvXG4iCi0KLSAgICAgICAgIHNldCBjb21tYW5kICJzZXRfYXR0cmlidXRlIGxpYl9sZWZfY29uc2lzdGVuY3lfY2hlY2tfZW5hYmxlIHRydWUgL1xuIgotICAgICAgYXBwZW5kIGNvbW1hbmQgInNldF9hdHRyaWJ1dGUgc2NyaXB0X3NlYXJjaF9wYXRoIHsuL30gL1xuIgotICAgICAgCi0gICAgICBhcHBlbmQgY29tbWFuZCAic3VwcHJlc3NfbWVzc2FnZXMge0xCUi0zMCBMQlItMzEgTEJSLTE3MCBMQlItNzIgTEJSLTE1NSBQSFlTLTIxMCBQSFlTLTI1NiBMQlItMjAxIExCUi0zNCBMQlItODMgTEJSLTQwIExCUi0xNjIgTEJSLTEyMn1cbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kICJyZWRpcmVjdCAvZGV2L251bGwge3NldCBtYXBfZmFuY3lfbmFtZXMgMX1cbiIKLQotICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6c291cmNlX3BsdWcgcG9zdF9zeW5fc2V0dXBfdGNsXQotICAgICAgCi0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjpzb3VyY2VfcGx1ZyBwcmVfc3luX2xvYWRfbGliX3RjbF0KLSAgICAgIAotICAgICAgc2V0IGNvbW1hbmQgIlxuc2V0X2F0dHJpYnV0ZSBsaWJyYXJ5IFwiXFxcbiIKLSAgICAgIGZvcmVhY2ggbGliICR2YXJzKCR2YXJzKCR2YXJzKCR2YXJzKGRlZmF1bHRfc2V0dXBfdmlldyksZGVsYXlfY29ybmVyKSxsaWJyYXJ5X3NldCksdGltaW5nKSB7Ci0gICAgICAgICBhcHBlbmQgY29tbWFuZCAiICAgJGxpYiBcXFxuIgotICAgICAgfQotICAgICAgYXBwZW5kIGNvbW1hbmQgIlwiXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCkscmVhZF9saWIgJGNvbW1hbmRdCi0gICAgICAKLSAgICAgIHNldCBjb21tYW5kICJcbnNldF9hdHRyaWJ1dGUgbGVmX2xpYnJhcnkgXCJcXFxuIgotICAgICAgZm9yZWFjaCBsZWYgJHZhcnMobGVmX2ZpbGVzKSB7Ci0gICAgICAgICBhcHBlbmQgY29tbWFuZCAiICAgJGxlZiBcXFxuIgotICAgICAgfQotICAgICAgYXBwZW5kIGNvbW1hbmQgIlwiXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCkscmVhZF9sZWYgJGNvbW1hbmRdCi0gICAgICAKLSAgICAgIHNldCBjb21tYW5kICJcbnNldF9hdHRyaWJ1dGUgcXJjX3RlY2hfZmlsZSAkdmFycygkdmFycygkdmFycygkdmFycyhkZWZhdWx0X3NldHVwX3ZpZXcpLGRlbGF5X2Nvcm5lcikscmNfY29ybmVyKSxxeF90ZWNoX2ZpbGUpXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCkscmVhZF9xcmMgJGNvbW1hbmRdCi0gICAgICAKLSAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhkb250X3VzZV9saXN0KV0gJiYgJHZhcnMoZG9udF91c2VfbGlzdCkgIT0gIiIgfSB7Ci0gICAgICAgICBmb3JlYWNoIGNlbGwgJHZhcnMoZG9udF91c2VfbGlzdCkgewotICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAic2V0X2F0dHJpYnV0ZSBhdm9pZCB0cnVlIFxbZmluZCAvIC1saWJjZWxsICRjZWxsXF1cbiIKLSAgICAgICAgIH0KLSAgICAgIH0KLQotICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6c291cmNlX3BsdWcgcG9zdF9zeW5fbG9hZF9saWJfdGNsXQotCi0gICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoY3BmX2ZpbGUpXX0gewotICAgICAgICAgc2V0IGNvbW1hbmQgInJlYWRfcG93ZXJfaW50ZW50IC1tb2R1bGUgJHZhcnMoZGVzaWduKSAtY3BmICR2YXJzKGNwZl9maWxlKVxuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHJlYWRfcG93ZXJfaW50ZW50ICRjb21tYW5kXQotICAgICAgfQotCi0gICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoaWVlZTE4MDFfZmlsZSldfSB7Ci0gICAgICAgICBzZXQgY29tbWFuZCAicmVhZF9wb3dlcl9pbnRlbnQgLW1vZHVsZSAkdmFycyhkZXNpZ24pIC0xODAxICR2YXJzKGllZWUxODAxX2ZpbGUpXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCkscmVhZF9wb3dlcl9pbnRlbnQgJGNvbW1hbmRdCi0gICAgICB9Ci0gICAgIAotICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGhkbF9zZWFyY2hfcGF0aCldfSB7Ci0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgInNldF9hdHRyaWJ1dGUgaGRsX3NlYXJjaF9wYXRoIFwiJHZhcnMoaGRsX3NlYXJjaF9wYXRoKVwiIC9cbiIKLSAgICAgIH0gCi0gICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoaGRsX2ZpbGVfbGlzdCldfSB7Ci0gICAgICAgICBzZXQgY29tbWFuZCAicmVhZF9oZGwgLXYyMDAxIFwiJHZhcnMoaGRsX2ZpbGVfbGlzdClcIlxuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHJlYWRfaGRsICRjb21tYW5kXQotICAgICAgfSBlbHNlIHsKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OnNvdXJjZV9wbHVnIHN5bl9sb2FkX3J0bF90Y2xdCi0gICAgICB9Ci0KLSAgICAgIGFwcGVuZCBjb21tYW5kcyAiXG4jc2V0IHJlYWRfZGVmX2xpYmNlbGxfbWlzbWF0Y2hfZXJyb3IgMFxuIgotICAgICAKLSAgICAgIGlmIHswfSB7Ci0gICAgICAgICBzZXQgY29tbWFuZCAiI3NldF9hdHRyaWJ1dGUgZ2VuX21vZHVsZV9wcmVmaXggICAgICAgICAgICAgICAgX1JDXyAvXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZCAiI3NldF9hdHRyaWJ1dGUgaGRsX2FycmF5X25hbWluZ19zdHlsZSAgICAgICAgICAgJXNfJWQgL1xuIgotICAgICAgYXBwZW5kIGNvbW1hbmQgIiNzZXRfYXR0cmlidXRlIGhkbF9yZWdfbmFtaW5nX3N0eWxlICAgICAgICAgICAgICVzX3JlZyVzIC9cbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kICIjc2V0X2F0dHJpYnV0ZSBoZGxfdXNlX2lmX2dlbmVyYXRlX3ByZWZpeCAgICAgICBmYWxzZSAvXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZCAiI3NldF9hdHRyaWJ1dGUgaGRsX3VzZV9mb3JfZ2VuZXJhdGVfcHJlZml4ICAgICAgdHJ1ZSAvXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZCAiI3NldF9hdHRyaWJ1dGUgaGRsX3VzZV9ibG9ja19wcmVmaXggICAgICAgICAgICAgZmFsc2UgL1xuIgotICAgICAgYXBwZW5kIGNvbW1hbmQgIiNzZXRfYXR0cmlidXRlIGhkbF9tYXhfbG9vcF9saW1pdCAgICAgICAgICAgICAgIDgwOTYgL1xuIgotICAgICAgYXBwZW5kIGNvbW1hbmQgIiNzZXRfYXR0cmlidXRlIGhkbF9nZW5lcmF0ZV9pbmRleF9zdHlsZSAgICAgICAgICVzXyVkXyAvXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZCAiI3NldF9hdHRyaWJ1dGUgaGRsX2dlbmVyYXRlX3NlcGFyYXRvciAgICAgICAgICAgXyAvXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZCAiI3NldF9hdHRyaWJ1dGUgaGRsX2luc3RhbmNlX2FycmF5X25hbWluZ19zdHlsZSAgJXNfJWRfIC9cbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kICIjc2V0X2F0dHJpYnV0ZSBoZGxfcGFyYW1ldGVyX25hbWluZ19zdHlsZSAgICAgICBfJXMlZCAvXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZCAiI3NldF9hdHRyaWJ1dGUgaGRsX3JlY29yZF9uYW1pbmdfc3R5bGUgICAgICAgICAgJXNcWyVzXF0gL1xuIgotICAgICAgYXBwZW5kIGNvbW1hbmQgIiNzZXRfYXR0cmlidXRlIGhkbF91c2VfdGVjaGVsdF9maXJzdCAgICAgICAgICAgIHRydWUgL1xuIgotICAgICAgYXBwZW5kIGNvbW1hbmQgIiNzZXRfYXR0cmlidXRlIGhkbF9lcnJvcl9vbl9ibGFja2JveCAgICAgICAgICAgIHRydWUgL1xuIgotICAgICAgYXBwZW5kIGNvbW1hbmQgIiNzZXRfYXR0cmlidXRlIGhkbF90cmFja19maWxlbmFtZV9yb3dfY29sICAgICAgIGZhbHNlIC9cbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kICIjc2V0X2F0dHJpYnV0ZSBoZGxfZW5hYmxlX3Byb2NfbmFtZSAgICAgICAgICAgICBmYWxzZSAvXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZCAiI3NldF9hdHRyaWJ1dGUgaGRsX2Vycm9yX29uX2xhdGNoICAgICAgICAgICAgICAgZmFsc2UgL1xuIgotICAgICAgYXBwZW5kIGNvbW1hbmQgIiNzZXRfYXR0cmlidXRlIGhkbF91bmNvbm5lY3RlZF9pbnB1dF9wb3J0X3ZhbHVlIG5vbmUgL1xuIgotICAgICAgYXBwZW5kIGNvbW1hbmQgIiNzZXRfYXR0cmlidXRlIGhkbF91bmRyaXZlbl9vdXRwdXRfcG9ydF92YWx1ZSAgIG5vbmUgL1xuIgotICAgICAgYXBwZW5kIGNvbW1hbmQgIiNzZXRfYXR0cmlidXRlIGhkbF91bmRyaXZlbl9zaWduYWxfdmFsdWUgICAgICAgIG5vbmUgL1xuIgotICAgICAgfQotICAgICAgCi0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksc2V0X2hkbF9hdHRyaWJ1dGVzICRjb21tYW5kXQotCi0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjpzb3VyY2VfcGx1ZyBwcmVfc3luX2xvYWRfZWxhYl90Y2xdCi0gICAgICAKLSAgICAgIGFwcGVuZCBjb21tYW5kcyAiXG5lbGFib3JhdGUgJHZhcnMoZGVzaWduKVxuIgotCi0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjpzb3VyY2VfcGx1ZyBwb3N0X3N5bl9sb2FkX2VsYWJfdGNsXQotCi0gICAgICBhcHBlbmQgY29tbWFuZHMgIndyaXRlX2RiICR2YXJzKGRlc2lnbikgLWFsbF9yb290X2F0dHJpYnV0ZXMgLXRvX2ZpbGUgJHZhcnMoZGJzX2RpcikvZWxhYi5kYlxuIgotICAgICAgCi0gICAgICBhcHBlbmQgY29tbWFuZHMgInJlZGlyZWN0ICR2YXJzKHJwdF9kaXIpL2NoZWNrX2Rlc2lnbi5ycHQgeyBjaGVja19kZXNpZ24gLW11bHRpZHJpdmVuIC11bmRyaXZlbiAtdW5yZXNvbHZlZCB9XG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgInJlZGlyZWN0ICR2YXJzKHJwdF9kaXIpL3JlcG9ydF9kYXRhcGF0aC5ycHQgeyByZXBvcnQgZGF0YXBhdGggLWFsbCAtbWF4X3dpZHRoIHt7ZmlsZW5hbWUgNTEyfX0gfVxuIgotICAgICAgCi0gICAgICAKLSMgICAgICBhcHBlbmQgY29tbWFuZHMgIiNzZXQgdHJlYXRfaW52YWxpZF9mcm9tX3RvX2FzX3Rocm91Z2ggMVxuIgotICAgICAKLSAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhjbG9ja19nYXRlX2NlbGxzKV19IHsKLSAgICAgICAgICAgIHNldCBjb21tYW5kICJzZXRfYXR0cmlidXRlIGxwX2Nsb2NrX2dhdGluZ19jZWxsIFxbZmluZCAvbGliKiAtbGliY2VsbCAkdmFycyhjbG9ja19nYXRlX2NlbGxzKVxdIC9kZXNpZ25zLypcblxuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmQgInNldF9hdHRyaWJ1dGUgbHBfaW5zZXJ0X2Nsb2NrX2dhdGluZyAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlIC9cbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxpbnNlcnRfY2xvY2tfZ2F0aW5nICRjb21tYW5kXQotICAgICAgfQotCi0gICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMobGVha2FnZV9wb3dlcl9lZmZvcnQpXSAmJiAoJHZhcnMobGVha2FnZV9wb3dlcl9lZmZvcnQpICE9ICJub25lIil9IHsKLSAgICAgICAgIHNldCBjb21tYW5kICJzZXRfYXR0cmlidXRlIGxwX211bHRpX3Z0X29wdGltaXphdGlvbl9lZmZvcnQgICAgICAgICAgICAgICAgJHZhcnMobGVha2FnZV9wb3dlcl9lZmZvcnQpIC9cbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxsZWFrYWdlX3Bvd2VyX2VmZm9ydCAkY29tbWFuZF0KLSAgICAgIH0KLSAgICAgIGFwcGVuZCBjb21tYW5kICIjc2V0X2F0dHJpYnV0ZSBscF9pbnNlcnRfb3BlcmFuZF9pc29sYXRpb24gICAgICAgICAgICAgICAgICAgIGZhbHNlIC9cbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kICIjc2V0X2F0dHJpYnV0ZSBscF9wb3dlcl9hbmFseXNpc19lZmZvcnQgICAgICAgICAgICAgICAgICAgICAgIGxvdyAvXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZCAiI3NldF9hdHRyaWJ1dGUgbHBfY2xvY2tfZ2F0aW5nX2hpZXJhcmNoaWNhbCAgICAgICAgICAgICAgICAgICBmYWxzZSAvXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZCAiI3NldF9hdHRyaWJ1dGUgbHBfY2xvY2tfZ2F0aW5nX2F1dG9fY29zdF9ncm91cF9pbml0aWFsX3RhcmdldCAwIC9kZXNpZ25zLypcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kICIjc2V0X2F0dHJpYnV0ZSBscF9jbG9ja19nYXRpbmdfbWF4X2Zsb3BzICAgICAgICAgICAgICAgICAgICAgIGluZmluaXR5IC9kZXNpZ25zLyR2YXJzKGRlc2lnbilcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kICIjc2V0X2F0dHJpYnV0ZSBscF9jbG9ja19nYXRpbmdfbWluX2Zsb3BzICAgICAgICAgICAgICAgICAgICAgIDMgL2Rlc2lnbnMvJHZhcnMoZGVzaWduKVxuIgotICAgICAgYXBwZW5kIGNvbW1hbmQgIiNzZXRfYXR0cmlidXRlIGxwX2Nsb2NrX2dhdGluZ19hdXRvX3BhdGhfYWRqdXN0ICAgICAgICAgICAgICAgZml4ZWQgL2Rlc2lnbnMvKlxuIgotICAgICAgYXBwZW5kIGNvbW1hbmQgIiNzZXRfYXR0cmlidXRlIGxwX2Nsb2NrX2dhdGluZ19hdXRvX3BhdGhfYWRqdXN0X2ZpeGVkX2RlbGF5ICAgMTc1IC9kZXNpZ25zLypcbiIKLQotICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHNldF9pY2dfYXR0cmlidXRlcyAkY29tbWFuZF0KLQotIyAgICAgIGFwcGVuZCBjb21tYW5kICIjc2V0X2F0dHJpYnV0ZSBscF9wb3dlcl9vcHRpbWl6YXRpb25fd2VpZ2h0IFwiXCIgL2Rlc2lnbnMvKlxuIgotCi0gICAgICAKLSAgICAgICMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotICAgICAgIyBERlQgU2V0dGluZ3MKLSAgICAgICMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotICAgICAgICAgc2V0IGNvbW1hbmQgIiNzZXRfYXR0cmlidXRlIGRmdF9zY2FuX21hcF9tb2RlICAgICAgICAgICAgICAgICAgICAgICAgIGZvcmNlX2FsbCAvZGVzaWducy8kdmFycyhkZXNpZ24pXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZCAiI3NldF9hdHRyaWJ1dGUgZGZ0X3NjYW5fc3R5bGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXV4ZWRfc2NhbiAvXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZCAiI3NldF9hdHRyaWJ1dGUgZGZ0X3ByZWZpeCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgREZUXyAvXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZCAiI3NldF9hdHRyaWJ1dGUgdXNlX3NjYW5fc2Vxc19mb3Jfbm9uX2RmdCAgICAgICAgICAgICAgICAgdHJ1ZSAvXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZCAiI3NldF9hdHRyaWJ1dGUgZGZ0X3NjYW5fbWFwX21vZGUgZm9yY2VfYWxsICAgICAgICAgICAgICAgL2RlcyovKlxuIgotICAgICAgYXBwZW5kIGNvbW1hbmQgIiNzZXRfYXR0cmlidXRlIGRmdF9jb25uZWN0X3NoaWZ0X2VuYWJsZV9kdXJpbmdfbWFwcGluZyAgIHRpZV9vZmYgL2Rlc2lnbnMvKlxuIgotICAgICAgYXBwZW5kIGNvbW1hbmQgIiNzZXRfYXR0cmlidXRlIGRmdF9jb25uZWN0X3NjYW5fZGF0YV9waW5zX2R1cmluZ19tYXBwaW5nIGxvb3BiYWNrIC9kZXNpZ25zLypcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kICIjc2V0X2F0dHJpYnV0ZSBkZnRfc2Nhbl9vdXRwdXRfcHJlZmVyZW5jZSAgICAgICAgICAgICAgICBub25faW52ZXJ0ZWQgL2Rlc2lnbnMvKlxuIgotICAgICAgYXBwZW5kIGNvbW1hbmQgIiNzZXRfYXR0cmlidXRlIGRmdF9sb2NrdXBfZWxlbWVudF90eXBlICAgICAgICAgICAgICAgICAgIGVkZ2Vfc2Vuc2l0aXZlIC9kZXNpZ25zLypcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kICIjc2V0X2F0dHJpYnV0ZSBkZnRfbWl4X2Nsb2NrX2VkZ2VzX2luX3NjYW5fY2hhaW5zICAgICAgICBmYWxzZSAvZGVzaWducy8qXG4iCi0gICAgICAKLSAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxzZXRfZGZ0X2F0dHJpYnV0ZXMgJGNvbW1hbmRdCi0KLSAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OnNvdXJjZV9wbHVnIHN5bl9zZXR1cF9kZnRfdGNsXQotCi0gICAgICBzZXQgY29tbWFuZCAiIgotICAgICAgIyMgUkMgdGltaW5nIHN0aWxsIGNvbWVzIGZyb20gY3BmLCBJbm5vdnVzIHRpbWluZyBjb21lcyBmcm9tIHNldHVwLnRjbAotICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGNwZl9maWxlKV19IHsKLSAgICAgICAgYXBwZW5kIGNvbW1hbmQgImFwcGx5X3Bvd2VyX2ludGVudCAtc3VtbWFyeVxuIgotICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksYXBwbHlfcG93ZXJfaW50ZW50ICRjb21tYW5kXQotICAgICAgfSBlbHNlIHsKLSAgICAgICAgYXBwZW5kIGNvbW1hbmQgInNldCBtb2RlIFtsaW5kZXggJHZhcnMoY29uc3RyYWludF9tb2RlcykgMF1cbiIKLSAgICAgICAgYXBwZW5kIGNvbW1hbmQgImlmIHsgXFtmaW5kIC8gLW1vZGUgXCRtb2RlIFxdID09IFwiXCJ9IHtcbiIKLSAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAgIGNyZWF0ZV9tb2RlIC1kZWZhdWx0IC1uYW1lIFwkbW9kZVxuIgotICAgICAgICBhcHBlbmQgY29tbWFuZCAifVxuIgotICAgICAgICBmb3JlYWNoIG1vZGUgW2xyYW5nZSAkdmFycyhjb25zdHJhaW50X21vZGVzKSAxIGVuZF0gewotICAgICAgICB9Ci0gICAgICAgICMjIE5vdyBwb3B1bGF0ZSB0aGUgdGltaW5nIG1vZGVzCi0gICAgICAgIGZvcmVhY2ggbW9kZSAkdmFycyhjb25zdHJhaW50X21vZGVzKSB7Ci0gICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCRtb2RlLHN5bnRoX3NkYyldfSB7Ci0gICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgImlmIHsgXFtmaW5kIC8gLW1vZGUgJG1vZGVcXSA9PSBcIlwiIH0ge1xuIgotICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgICBjcmVhdGVfbW9kZSAtbmFtZSAkbW9kZVxuIgotICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJ9XG4iCi0gICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgInJlYWRfc2RjIC1tb2RlICRtb2RlICR2YXJzKCRtb2RlLHN5bnRoX3NkYylcbiIKLSAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJG1vZGUscHJlX2N0c19zZGMpXX0gewotICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJpZiB7IFxbZmluZCAvIC1tb2RlICRtb2RlXF0gPT0gXCJcIiB9IHtcbiIKLSAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiICAgY3JlYXRlX21vZGUgLW5hbWUgJG1vZGVcbiIKLSAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAifVxuIgotICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJyZWFkX3NkYyAtbW9kZSAkbW9kZSAkdmFycygkbW9kZSxwcmVfY3RzX3NkYylcbiIKLSAgICAgICAgICAgICB9Ci0gICAgICAgICAgIH0KLSAgICAgICAgfQotCi0gICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxhcHBseV9jb25zdHJhaW50cyAkY29tbWFuZF0KLSAgICAgICAgYXBwZW5kIGNvbW1hbmQgInB1dHMgXCJUaGUgbnVtYmVyIG9mIGV4Y2VwdGlvbnMgaXMgXFtsbGVuZ3RoIFxbZmluZCAvIC1leGNlcHRpb24gKlxdXF1cIlxuIgotCi0gICAgICAgICAgIHNldCBjb21tYW5kICJcbmRlZmluZV9jb3N0X2dyb3VwIC1uYW1lIGluMm91dFxuIgotICAgICAgICBhcHBlbmQgY29tbWFuZCAiZGVmaW5lX2Nvc3RfZ3JvdXAgLW5hbWUgaW4ycmVnXG4iCi0gICAgICAgIGFwcGVuZCBjb21tYW5kICJkZWZpbmVfY29zdF9ncm91cCAtbmFtZSByZWcyb3V0XG4iCi0gICAgICAgIGFwcGVuZCBjb21tYW5kICJkZWZpbmVfY29zdF9ncm91cCAtbmFtZSByZWcycmVnXG4iCi0KLSAgICAgICAgc2V0IG1vZGUgW2xpbmRleCAkdmFycyhjb25zdHJhaW50X21vZGVzKSAwXQotICAgICAgICBhcHBlbmQgY29tbWFuZCAicGF0aF9ncm91cCAtbW9kZSAkbW9kZSAtZnJvbSBcW2FsbDo6YWxsX2lucHNcXSAtdG8gXFthbGw6OmFsbF9vdXRzXF0gLWdyb3VwIGluMm91dCAtbmFtZSBpbjJvdXRcbiIKLSAgICAgICAgYXBwZW5kIGNvbW1hbmQgInBhdGhfZ3JvdXAgLW1vZGUgJG1vZGUgLWZyb20gXFthbGw6OmFsbF9pbnBzXF0gLXRvIFxbYWxsOjphbGxfc2Vxc1xdIC1ncm91cCBpbjJyZWcgLW5hbWUgaW4ycmVnXG4iCi0gICAgICAgIGFwcGVuZCBjb21tYW5kICJwYXRoX2dyb3VwIC1tb2RlICRtb2RlIC1mcm9tIFxbYWxsOjphbGxfc2Vxc1xdIC10byBcW2FsbDo6YWxsX291dHNcXSAtZ3JvdXAgcmVnMm91dCAtbmFtZSByZWcyb3V0XG4iCi0gICAgICAgIGFwcGVuZCBjb21tYW5kICJwYXRoX2dyb3VwIC1tb2RlICRtb2RlIC1mcm9tIFxbYWxsOjphbGxfc2Vxc1xdIC10byBcW2FsbDo6YWxsX3NlcXNcXSAtZ3JvdXAgcmVnMnJlZyAtbmFtZSByZWcycmVnXG4iCi0KLSAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLGNyZWF0ZV9wYXRoX2dyb3VwcyAkY29tbWFuZF0KLSAgICAgIH0KLQotICAgICAgc2V0IGNvbW1hbmQgIiIKLSAgICAgIHNldCBmaXJzdCAxCi0gICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoZGVmX2ZpbGVzKV19IHsKLSAgICAgICAgIGZvcmVhY2ggZmlsZSAkdmFycyhkZWZfZmlsZXMpIHsKLSAgICAgICAgICAgIGlmIHtbZmlsZSBleGlzdHMgJGZpbGVdfSB7Ci0gICAgICAgICAgICAgICBpZiB7JGZpcnN0fSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAicmVhZF9kZWYgJGZpbGVcbiIKLSAgICAgICAgICAgICAgICAgIHNldCBmaXJzdCAwCi0gICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJyZWFkX2RlZiAtaW5jciAkZmlsZVxuIgotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAgfQotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHJlYWRfZGVmICRjb21tYW5kXQotICAgICAgfQotICAgICAgCi0gICAgICBhcHBlbmQgY29tbWFuZHMgInJlcG9ydCB0aW1pbmcgLWxpbnRcbiIKLQotICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKG1heF9yb3V0ZV9sYXllcildfSB7Ci0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIlxuc2V0X2F0dHJpYnV0ZSBudW1iZXJfb2Zfcm91dGluZ19sYXllcnMgJHZhcnMobWF4X3JvdXRlX2xheWVyKSBkZXNpZ25zLyR2YXJzKGRlc2lnbilcbiIKLSAgICAgIH0KLQotIyAgICAgIGFwcGVuZCBjb21tYW5kcyAiI2ZvcmVhY2ggY2cgXFtmaW5kIC8gLWNvc3RfZ3JvdXAgKlxdIHtcbiIKLSMgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIHJlcG9ydCB0aW1pbmcgLWNvc3RfZ3JvdXAgW2xpc3QgXCRjZ10gPj4gJHZhcnMocnB0X2RpcikvY29zdF9ncm91cC5tYXAucnB0XG4iCi0jICAgICAgYXBwZW5kIGNvbW1hbmRzICIjfVxuIgotICAgICAgCi0jICAgICAgYXBwZW5kIGNvbW1hbmRzICIjc2V0X3JlbW92ZV9hc3NpZ25fb3B0aW9ucyAtc2tpcF91bmNvbnN0cmFpbmVkX3BhdGhzIC1waHlzaWNhbFxuIgotIyAgICAgIGFwcGVuZCBjb21tYW5kcyAiI3NldF9hdHRyaWJ1dGUgdXRpbGl6YXRpb24gMCBcW2ZpbmQgLyAtbGF5ZXIgTTFcXVxuIgotCi0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjpzb3VyY2VfcGx1ZyBwcmVfc3luX2dlbl90Y2xdCi0KLSAgICAgIHNldCBjb21tYW5kICJcbnN5bnRoZXNpemUgLXRvX2dlbmVyaWMgLWVmZm9ydCBtZWRpdW1cblxuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHN5bjJnZW4gJGNvbW1hbmRdCi0gICAgICAKLSAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OnNvdXJjZV9wbHVnIHBvc3Rfc3luX2dlbl90Y2xdCi0KLSAgICAgIGFwcGVuZCBjb21tYW5kcyAid3JpdGVfZGIgJHZhcnMoZGVzaWduKSAtYWxsX3Jvb3RfYXR0cmlidXRlcyAtdG9fZmlsZSAkdmFycyhkYnNfZGlyKS9zeW5fZ2VuLmRiXG4iCi0gICAgICAKLSAgICAgIGFwcGVuZCBjb21tYW5kcyAicmVkaXJlY3QgLXRlZSAkdmFycyhycHRfZGlyKS9yZXBvcnRfbWV0cmljLnN5bl9nZW4ucnB0IHsgcmVwb3J0IHFvciAtbm9wb3dlciB9XG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgInJlZGlyZWN0IC1hcHBlbmQgJHZhcnMocnB0X2RpcikvcmVwb3J0X21ldHJpYy5zeW5fZ2VuLnJwdCB7IHJlcG9ydCB0aW1pbmcgLWZ1bGwgLW51bSAyNTAgLWVuZCB9XG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgInJlZGlyZWN0IC1hcHBlbmQgJHZhcnMocnB0X2RpcikvcmVwb3J0X21ldHJpYy5zeW5fZ2VuLnJwdCB7IHJlcG9ydCB0aW1pbmcgLWZ1bGwgLW51bSAyNSB9XG4iCi0gICAgICAKLSAgICAgIGFwcGVuZCBjb21tYW5kcyAiZ2VuZXJhdGVfcmVwb3J0cyAtdGFnIHN5bl9nZW4gLW91dGRpciAkdmFycyhycHRfZGlyKVxuIgotCi0gICAgICBzZXQgY29tbWFuZCAiXG5zeW50aGVzaXplIC10b19tYXAgLWVmZm9ydCBoaWdoIC1jbG9ja19nYXRpbmdfb25seVxuXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksc3luMmljZyAkY29tbWFuZF0KLSAgICAgIAotIyAgICAgIHNldCBjZ19jZWxscyAiXG4iCi0jICAgICAgZm9yZWFjaCBpIFtmaWx0ZXIgbGliY2VsbCAtaW52ZXJ0ICIiIFtmaW5kIC8gLWluc3QgaW5zdGFuY2VzX3NlcS8qXV0gewotIyAgICAgICBpZiB7W2dldF9hdHRyIGNsb2NrX2dhdGluZ19pbnRlZ3JhdGVkX2NlbGwgW2dldF9hdHRyIGxpYmNlbGwgJGldXSAhPSAiIiB9IHsKLSMgICAgICAgICBsYXBwZW5kIGNnX2NlbGxzICRpCi0jICAgICAgIH0KLSMgICAgICB9Ci0jICAgICAgaWYgeyAkY2dfY2VsbHMgIT0gIiIgfSB7Ci0jICAgICAgICBzZXQgQ0dfQURKVVNUIFtwYXRoX2FkanVzdCAtZGVsYXkgLTE1MCAtdG8gJGNnX2NlbGxzXQotIyAgICAgIH0KLSAgICAgIAotICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6c291cmNlX3BsdWcgcHJlX3N5bl9tYXBfdGNsXQotICAgICAgCi0gICAgICBhcHBlbmQgY29tbWFuZHMgImlmIHtcW2xsZW5ndGggXFtmaW5kIC1tb2RlICpcXVxdID4gMH0ge1xuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzICIgIHJlZGlyZWN0ICR2YXJzKHJwdF9kaXIpL3JlcG9ydF90aW1pbmdfbGludC5lbGFiLmd6IHsgcmVwb3J0IHRpbWluZyAtbGludCAtdmVyYm9zZSAtbW9kZSBcW2xpbmRleCBcW2ZpbmQgLW1vZGUgKlxdIDBcXSB9XG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgIn0gZWxzZSB7XG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgIiAgcmVkaXJlY3QgJHZhcnMocnB0X2RpcikvcmVwb3J0X3RpbWluZ19saW50LmVsYWIuZ3ogeyByZXBvcnQgdGltaW5nIC1saW50IC12ZXJib3NlIH1cbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyAifVxuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzICJyZWRpcmVjdCAkdmFycyhycHRfZGlyKS9yZXBvcnRfc2VxdWVudGlhbC5lbGFiLnJwdC5neiB7IHJlcG9ydCBzZXF1ZW50aWFsIC1oaWVyIH1cbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyAicmVkaXJlY3QgJHZhcnMocnB0X2RpcikvcmVwb3J0X2Nkbl9sb29wX2JyZWFrZXJzLmVsYWIucnB0Lmd6IHsgcmVwb3J0IGNkbl9sb29wX2JyZWFrZXIgfVxuIgotICAgICAgICAgIAotICAgICAgIyBTeW50aGVzaXppbmcgdG8gZ2F0ZXMgdXNpbmcgZWZmb3J0IGxldmVsIGRlZmluZWQgYnkgdmFycyhzeW5fbWFwX2VmZm9ydCkuCi0gICAgICBzZXQgY29tbWFuZCAiXG5zeW50aGVzaXplIC10b19tYXBwZWQgLWVmZm9ydCBoaWdoIC1ub19pbmNyZW1lbnRhbFxuXG4iCi0KLSAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxzeW4ybWFwICRjb21tYW5kXQotICAgICAgCi0gICAgICBpZiB7JHZhcnMoY2FwdHVyZV9tZXRyaWNzKX0gewotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJ1bTo6cG9wX3NuYXBzaG90X3N0YWNrXG4iCi0gICAgICAgICBzZXQgY29tbWFuZCAiIgotICAgICAgICAgaWYge1tsaW5kZXggW3NwbGl0ICR2YXJzKHZlcnNpb24pICIuIl0gIDBdID4gMTZ9IHsKLSAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhjb21wdXRlX21ldHJpY3MpXSAmJiAkdmFycyhjb21wdXRlX21ldHJpY3MpfSB7Ci0gICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiY3JlYXRlX3NuYXBzaG90IC1uYW1lICR2YXJzKHN0ZXApIC1jYXRlZ29yaWVzIFxbZGljdCBnZXQgXFtnZXRfYXR0ciBtZXRyaWNfY2F0ZWdvcnlfc3RhdHVzX21hcFxdIFxbZ2V0X2F0dHIgc3RhdGUgXFtmaW5kIC8gLWRlc2lnbiAqXF1cXVxdXG4iCi0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgImNyZWF0ZV9zbmFwc2hvdCAtbmFtZSAkdmFycyhzdGVwKSAtY2F0ZWdvcmllcyBkZXNpZ25cbiIKLSAgICAgICAgICAgfQotICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiY3JlYXRlX3NuYXBzaG90IC1uYW1lICR2YXJzKHN0ZXApXG4iCi0gICAgICAgICB9Ci0gICAgICAgICBhcHBlbmQgY29tbWFuZCAidW06OnNhdmVfbWV0cmljX2ZpbGUgJHZhcnMoZGJzX2RpcikvJHZhcnMoc3RlcCkudW1cbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kICJ1bTo6cmVwb3J0X21ldHJpYyAtZmlsZSAkdmFycyhycHRfZGlyKS8kdmFycyhkZXNpZ24pLmh0bWwgLWZvcm1hdCBodG1sXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksY3JlYXRlX3NuYXBzaG90ICRjb21tYW5kXQotICAgICAgfQotCi0jICAgICAgYXBwZW5kIGNvbW1hbmRzICJ3cml0ZV9kYiAkdmFycyhkZXNpZ24pIC1hbGxfcm9vdF9hdHRyaWJ1dGVzIC10b19maWxlICR2YXJzKGRic19kaXIpL3N5bl9tYXAuZGJcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyAid3JpdGVfZGIgJHZhcnMoZGVzaWduKSAtYWxsX3Jvb3RfYXR0cmlidXRlcyAtdG9fZmlsZSAkdmFycyhkYnNfZGlyKS9zeW5fbWFwLmRiXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgIndyaXRlX2hkbCBcW2ZpbmQgLyAtZGVzaWduICR2YXJzKGRlc2lnbilcXSA+ICR2YXJzKGRic19kaXIpL3N5bl9tYXAudi5nelxuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzICJ3cml0ZV9oZGwgXFtmaW5kIC8gLWRlc2lnbiAkdmFycyhkZXNpZ24pXF0gLWxlYyA+ICR2YXJzKGxlY19kaXIpL3N5bl9tYXAuTEVDT05MWS52Lmd6XG4iCi0gICAgICAKLSAgICAgICMgV3JpdGUgb3V0IFJUTCB2ZXJzdXMgbWFwcGVkIExFQyBkb2ZpbGUKLSAgICAgIGFwcGVuZCBjb21tYW5kcyAid3JpdGVfZG9fbGVjIC1yZXZpc2VkICR2YXJzKGxlY19kaXIpL3N5bl9tYXAuTEVDT05MWS52Lmd6ICAtbG9nZmlsZSBydGwybWFwLmxvZyAgPiAkdmFycyhsZWNfZGlyKS9ydGwybWFwLmRvZlxuIgotCi0gICAgICAgICBzZXQgY29tbWFuZCAicmVkaXJlY3QgJHZhcnMobGVjX2RpcikvZGVsZXRlZF9zZXF1ZW50aWFscy5ycHQge3JlcG9ydCBzZXF1ZW50aWFsIC1kZWxldGVkX3NlcXN9XG4iCi0gICAgICBhcHBlbmQgY29tbWFuZCAicmVkaXJlY3QgLXRlZSAkdmFycyhycHRfZGlyKS9zeW5fbWFwLnFvci5ycHQgeyByZXBvcnQgcW9yIC1ub3Bvd2VyIH1cbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kICJyZWRpcmVjdCAtYXBwZW5kICR2YXJzKHJwdF9kaXIpL3N5bl9tYXAucW9yLnJwdCB7IHJlcG9ydCB0aW1pbmcgLWZ1bGwgLW51bSAyNTAgLWVuZCB9XG4iCi0gICAgICBhcHBlbmQgY29tbWFuZCAicmVkaXJlY3QgLWFwcGVuZCAkdmFycyhycHRfZGlyKS9zeW5fbWFwLnFvci5ycHQgeyByZXBvcnQgdGltaW5nIC1mdWxsIC1udW0gMjUgfVxuIgotICAgICAgCi0gICAgICBhcHBlbmQgY29tbWFuZCAiZ2VuZXJhdGVfcmVwb3J0cyAtdGFnIHN5bl9tYXAgLW91dGRpciAkdmFycyhycHRfZGlyKVxuIgotCi0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksZ2VuZXJhdGVfcmVwb3J0cyAkY29tbWFuZF0KLSAgICAgCi0gICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMobWFpbCx0byldfSB7Ci0gICAgICAgICBzZXQgc3VtbWFyeV9maWxlICR2YXJzKHN0ZXApLnFvci5ycHQKLSAgICAgICAgIGlmIHshW2luZm8gZXhpc3RzIHZhcnMobWFpbCxzdGVwcyldIHx8IFwKLSAgICAgICAgICAgICAoW2luZm8gZXhpc3RzIHZhcnMobWFpbCxzdGVwcyldICYmIChbbHNlYXJjaCAkdmFycyhtYWlsLHN0ZXBzKSAkdmFycyhzdGVwKV0gIT0gLTEpKX0gewotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJwdXRzIFwiPEZGPiBNQUlMSU5HIFJFU1VMVFMgVE8gJHZhcnMobWFpbCx0bylcIlxuIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJpZiB7XFtmaWxlIGV4aXN0cyAkdmFycyhycHRfZGlyKS8kc3VtbWFyeV9maWxlXF19IHtcbiIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiICAgZXhlYyAvYmluL21haWwgLXMgXCJGRjogJHZhcnMoZGVzaWduKSwgJHZhcnMoc3RlcCkgY29tcGxldGVkIChcW3NoIHB3ZFxdKVwiIDwgJHZhcnMocnB0X2RpcikvJHN1bW1hcnlfZmlsZSAkdmFycyhtYWlsLHRvKVxuIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJ9IGVsc2VpZiB7XFtmaWxlIGV4aXN0cyAkdmFycyhycHRfZGlyKS8ke3N1bW1hcnlfZmlsZX0uZ3pcXX0ge1xuIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIgICBleGVjIGd1bnppcCAtYyAkdmFycyhycHRfZGlyKS8ke3N1bW1hcnlfZmlsZX0uZ3ogXHwgL2Jpbi9tYWlsIC1zIFwiRkY6ICR2YXJzKGRlc2lnbiksICR2YXJzKHN0ZXApIGNvbXBsZXRlZCAoXFtwd2RcXSlcIiAkdmFycyhtYWlsLHRvKVxuIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJ9IGVsc2Uge1xuIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIgICBleGVjIC9iaW4vbWFpbCAtcyBcIkZGOiAkdmFycyhkZXNpZ24pLCAkdmFycyhzdGVwKSBjb21wbGV0ZWQgKFxbc2ggcHdkXF0pXCIgPCAvZGV2L251bGwgJHZhcnMobWFpbCx0bylcbiIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAifVxuIgotICAgICAgICAgfQotICAgICAgfQotCi0gICAgICBhcHBlbmQgY29tbWFuZHMgImlmIHtcW2luZm8gZXhpc3RzIGVudihWUEFUSClcXX0geyIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyAiZXhlYyAvYmluL3RvdWNoIFwkZW52KFZQQVRIKS8kdmFycyhzdGVwKSIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyAifVxuIgotCi0gICAgICByZXR1cm4gJGNvbW1hbmRzCi0KLSAgIH0KLQotICAgcHJvYyBydW5fc3luX2luY3Ige3tmb3JtYXQgMX19IHsKLQotICAgICAgZ2xvYmFsIHZhcnMKLSAgICAgIGdsb2JhbCBlbnYKLSAgICAgIGdsb2JhbCBlcnJvcnMKLQotICAgICAgc2V0IHZhcnMoc3RlcCkgc3luX2luY3IKLQotICAgICAgc2V0IGNvbW1hbmRzICIiCi0KLSAgICAgIGFwcGVuZCBjb21tYW5kcyAicHJvYyBQdXRzIHthcmdzfSB7cHV0cyBcJGFyZ3N9XG4iCi0KLSAgICAgIGFwcGVuZCBjb21tYW5kcyAicHV0cyBcW2dldF9hdHRyIHByb2dyYW1fdmVyc2lvbiAvXF1cbiIKLSAgICAgCi0gICAgICAjIyBlbmFibGUgbXVsdGkgcHJvY2Vzc2luZwotICAgICAgYXBwZW5kIGNvbW1hbmRzICJzZXQgaG9zdGxpc3QgXFtscmVwZWF0ICR2YXJzKGxvY2FsX2NwdXMpIGxvY2FsaG9zdFxdXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgInNldF9hdHRyaWJ1dGUgc3VwZXJfdGhyZWFkX3NlcnZlcnMgXCRob3N0bGlzdCAvXG4iCi0gICAgIAotICAgICAgaWYgeyR2YXJzKGNhcHR1cmVfbWV0cmljcyl9IHsKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiXG51bTo6ZW5hYmxlX21ldHJpY3MgLW9uXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgInVtOjpwdXNoX3NuYXBzaG90X3N0YWNrXG4iCi0gICAgICB9Ci0gICAgICAKLSAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OnNvdXJjZV9wbHVnIHByZV9zeW5faW5jcl90Y2xdCi0gICAgICAKLSMgICAgICBhcHBlbmQgY29tbWFuZHMgImNhdGNoIHsgc2V0X3JlbW92ZV9hc3NpZ25fb3B0aW9ucyAtc2tpcF91bmNvbnN0cmFpbmVkX3BhdGhzIC1waHlzaWNhbCB9XG4iCi0jICAgICAgYXBwZW5kIGNvbW1hbmRzICJzZXRfYXR0cmlidXRlIHJlbW92ZV9hc3NpZ25zIHRydWUgL1xuIgotICAgICAgCi0gICAgICBpZiB7JHZhcnMoZW5hYmxlX3BhbSl9IHsKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiXG5zZXRfYXR0cmlidXRlIHBoeXNpY2FsX2F3YXJlX3Jlc3RydWN0dXJpbmcgdHJ1ZSAvZGVzKi8qXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgInNldF9hdHRyaWJ1dGUgcGh5c2ljYWxfYXdhcmVfc3RydWN0dXJpbmcgICB0cnVlIC9kZXMqLypcbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAic2V0X2F0dHJpYnV0ZSBwaHlzaWNhbF9hd2FyZV9tYXBwaW5nICAgICAgIHRydWUgL2RlcyovKlxuIgotICAgICAgfQotICAgICAgCi0gICAgICAjIyMjIE9QVElNSVpBVElPTiBFRkZPUlQgQ09OVFJPTAotICAgICAgaWYgeyR2YXJzKGhpZ2hfdGltaW5nX2VmZm9ydCl9IHsKLSAgICAgICAgICAgIHNldCBjb21tYW5kICJcbnNldF9hdHRyaWJ1dGUgdG5zX29wdG8gdHJ1ZSAvXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZCAic2V0X2F0dHJpYnV0ZSBpb3B0X2VuYWJsZV9wYXJhbGxlbGl6YXRpb24gdHJ1ZSAvXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZCAic2V0X2F0dHJpYnV0ZSB1bHRyYV9nbG9iYWxfbWFwcGluZyB0cnVlIC9cbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kICJzZXRfYXR0cmlidXRlIGlvcHRfdWx0cmFfb3B0aW1pemF0aW9uIHRydWUgL1xuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHNldF9oaWdoX2VmZm9ydF9hdHRyaWJ1dGVzICRjb21tYW5kXQotICAgICAgfQotCi0gICAgICAgICBzZXQgY29tbWFuZCAiI3NldF9hdHRyaWJ1dGUgb3B0aW1pemVfbWVyZ2VfZmxvcHMgICAgICBmYWxzZSAvXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZCAiI3NldF9hdHRyaWJ1dGUgb3B0aW1pemVfY29uc3RhbnRfMF9mbG9wcyB0cnVlIC9cbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kICIjc2V0X2F0dHJpYnV0ZSBvcHRpbWl6ZV9jb25zdGFudF8xX2Zsb3BzIGZhbHNlIC9cbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kICIjc2V0X2F0dHJpYnV0ZSBvcHRpbWl6ZV9jb25zdGFudF9sYXRjaGVzIGZhbHNlIC9cbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kICIjc2V0X2F0dHJpYnV0ZSBkZWxldGVfdW5sb2FkZWRfc2VxcyAgICAgIHRydWUgL1xuIgotICAgICAgYXBwZW5kIGNvbW1hbmQgIiNzZXRfYXR0cmlidXRlIG9wdGltaXplX25ldF9hcmVhICAgICAgICAgZmFsc2UgL1xuIgotICAgICAgYXBwZW5kIGNvbW1hbmQgIiNzZXRfYXR0cmlidXRlIGRwX2FyZWFfbW9kZSAgICAgICAgICAgICAgdHJ1ZSAvXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZCAiI3NldF9hdHRyaWJ1dGUgYXV0b191bmdyb3VwICAgICAgICAgICAgICBub25lIC9cbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kICIjc2V0X2F0dHJpYnV0ZSBhdXRvX3VuZ3JvdXBfbWluX2VmZm9ydCAgIGxvdyAvXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZCAiI3NldF9hdHRyaWJ1dGUgdW5ncm91cF9zZXBhcmF0b3IgICAgICAgICAvXG4iCi0gICAgICAKLSAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxzZXRfb3B0X2F0dHJpYnV0ZXMgJGNvbW1hbmRdCi0KLSAgICAgICMjIyBEZXRhaWwgU3RhdHMgd2hpbGUgcnVubmluZwotIyAgICAgIGFwcGVuZCBjb21tYW5kcyAiI3NldCBpb3B0X3N0YXRzIDFcbiIKLSAgICAgIAotICAgICAgIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gICAgICAjIE1heCBsZWFrYWdlIHBvd2VyID8KLSAgICAgICMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIyAgICAgIGFwcGVuZCBjb21tYW5kcyAiI3NldF9hdHRyaWJ1dGUgbWF4X2xlYWthZ2VfcG93ZXIgPyAvZGVzaWducy8qXG4iCi0gICAgICBzZXQgY29tbWFuZCAiXG5zeW50aGVzaXplIC10b19tYXBwZWQgLWVmZm9ydCBoaWdoIC1pbmNyXG5cbiIKLQotICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHN5bjJpbmNyICRjb21tYW5kXQotCi0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjpzb3VyY2VfcGx1ZyBwb3N0X3N5bl9pbmNyX3RjbF0KLQotICAgICAgYXBwZW5kIGNvbW1hbmRzICJmb3JlYWNoIGNnIFxbZmluZCAvIC1jb3N0X2dyb3VwICpcXSB7XG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgIiAgcmVwb3J0IHRpbWluZyAtY29zdF9ncm91cCBcJGNnID4+ICR2YXJzKHJwdF9kaXIpL3N5bl9pbmNyX1xbZmlsZSB0YWlsIFwkY2dcXS5ycHRcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyAifVxuIgotICAgICAgCi0gICAgICAgICBzZXQgY29tbWFuZCAid3JpdGVfZGIgJHZhcnMoZGVzaWduKSAtYWxsX3Jvb3RfYXR0cmlidXRlcyAtdG9fZmlsZSAkdmFycyhkYnNfZGlyKS8kdmFycyhzdGVwKS5kYlxuIgotIyAgICAgIGFwcGVuZCBjb21tYW5kICJ3cml0ZV9kYiAkdmFycyhkZXNpZ24pIC1hbGxfcm9vdF9hdHRyaWJ1dGVzIC10b19maWxlICR2YXJzKGRic19kaXIpLyR2YXJzKHN0ZXApLmRiXG4iCi0KLSAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSx3cml0ZV9kYiAkY29tbWFuZF0KLQotICAgICAgICAgc2V0IGNvbW1hbmQgIndyaXRlX2hkbCBcW2ZpbmQgLyAtZGVzaWduICR2YXJzKGRlc2lnbilcXSA+ICR2YXJzKGRic19kaXIpLyR2YXJzKHN0ZXApLnYuZ3pcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kICJ3cml0ZV9oZGwgXFtmaW5kIC8gLWRlc2lnbiAkdmFycyhkZXNpZ24pXF0gLWxlYyA+ICR2YXJzKGxlY19kaXIpLyR2YXJzKHN0ZXApLkxFQ09OTFkudi5nelxuIgotCi0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksd3JpdGVfaGRsICRjb21tYW5kXQotCi0gICAgICBpZiB7JHZhcnMoY2FwdHVyZV9tZXRyaWNzKX0gewotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJ1bTo6cG9wX3NuYXBzaG90X3N0YWNrXG4iCi0gICAgICAgICBpZiB7W2xpbmRleCBbc3BsaXQgJHZhcnModmVyc2lvbikgIi4iXSAgMF0gPiAxNn0gewotICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGNvbXB1dGVfbWV0cmljcyldICYmICR2YXJzKGNvbXB1dGVfbWV0cmljcyl9IHsKLSAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJjcmVhdGVfc25hcHNob3QgLW5hbWUgJHZhcnMoc3RlcCkgLWNhdGVnb3JpZXMgXFtkaWN0IGdldCBcW2dldF9hdHRyIG1ldHJpY19jYXRlZ29yeV9zdGF0dXNfbWFwXF0gXFtnZXRfYXR0ciBzdGF0ZSBcW2ZpbmQgLyAtZGVzaWduICpcXVxdXF1cbiIKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiY3JlYXRlX3NuYXBzaG90IC1uYW1lICR2YXJzKHN0ZXApIC1jYXRlZ29yaWVzIGRlc2lnblxuIgotICAgICAgICAgICB9Ci0gICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJjcmVhdGVfc25hcHNob3QgLW5hbWUgJHZhcnMoc3RlcClcbiIKLSAgICAgICAgIH0KLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAidW06OnNhdmVfbWV0cmljX2ZpbGUgJHZhcnMoZGJzX2RpcikvJHZhcnMoc3RlcCkudW1cbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAidW06OnJlcG9ydF9tZXRyaWMgLWZpbGUgJHZhcnMocnB0X2RpcikvJHZhcnMoZGVzaWduKS5odG1sIC1mb3JtYXQgaHRtbFxuIgotICAgICAgfQotCi0gICAgICBpZiB7ISR2YXJzKGVuYWJsZV9yY3ApfSB7Ci0gICAgICAgICAgICBzZXQgY29tbWFuZCAiXG53cml0ZV9kZXNpZ24gLWlubm92dXMgLWd6aXAgLWJhc2VuYW1lICR2YXJzKGRic19kaXIpLyR2YXJzKHN0ZXApLyR2YXJzKHN0ZXApXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZCAic2V0IGZpbGUgXFtvcGVuICR2YXJzKGRic19kaXIpLyR2YXJzKHN0ZXApLyR2YXJzKHN0ZXApLm5vdnVzX3NldHVwLnRjbCB3XF1cbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kICJwdXRzIFwkZmlsZSBcImV2YWxfZW5jIFx7c291cmNlICR2YXJzKGRic19kaXIpLyR2YXJzKHN0ZXApLyR2YXJzKHN0ZXApLmVuY19zZXR1cC50Y2xcfVwiXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZCAiY2xvc2UgXCRmaWxlXG5cbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSx3cml0ZV9kZXNpZ24gJGNvbW1hbmRdCi0gICAgICB9Ci0KLSAgICAgICMgV3JpdGUgb3V0IFJUTCB2ZXJzdXMgbWFwcGVkIExFQyBkb2ZpbGUKLSAgICAgIGFwcGVuZCBjb21tYW5kcyAid3JpdGVfZG9fbGVjIC1yZXZpc2VkICR2YXJzKGxlY19kaXIpLyR2YXJzKHN0ZXApLkxFQ09OTFkudi5neiAgLWxvZ2ZpbGUgcnRsMmluY3IubG9nICA+ICR2YXJzKGxlY19kaXIpL3J0bDJpbmNyLmRvZlxuIgotCi0gICAgICAgICBzZXQgY29tbWFuZCAicmVkaXJlY3QgJHZhcnMobGVjX2RpcikvZGVsZXRlZF9zZXF1ZW50aWFscy5ycHQge3JlcG9ydCBzZXF1ZW50aWFsIC1kZWxldGVkX3NlcXN9XG4iCi0gICAgICBhcHBlbmQgY29tbWFuZCAicmVkaXJlY3QgLXRlZSAkdmFycyhycHRfZGlyKS8kdmFycyhzdGVwKS5xb3IucnB0IHsgcmVwb3J0IHFvciAtbm9wb3dlciB9XG4iCi0gICAgICBhcHBlbmQgY29tbWFuZCAicmVkaXJlY3QgLWFwcGVuZCAkdmFycyhycHRfZGlyKS8kdmFycyhzdGVwKS5xb3IucnB0IHsgcmVwb3J0IHRpbWluZyAtZnVsbCAtbnVtIDI1MCAtZW5kIH1cbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kICJyZWRpcmVjdCAtYXBwZW5kICR2YXJzKHJwdF9kaXIpLyR2YXJzKHN0ZXApLnFvci5ycHQgeyByZXBvcnQgdGltaW5nIC1mdWxsIC1udW0gMjUgfVxuIgotICAgICAgCi0gICAgICBhcHBlbmQgY29tbWFuZCAiZ2VuZXJhdGVfcmVwb3J0cyAtdGFnICR2YXJzKHN0ZXApIC1vdXRkaXIgJHZhcnMocnB0X2RpcikvZ2VuZXJhdGVfcmVwb3J0c1xuIgotCi0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksZ2VuZXJhdGVfcmVwb3J0cyAkY29tbWFuZF0KLQotICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKG1haWwsdG8pXX0gewotICAgICAgICAgc2V0IHN1bW1hcnlfZmlsZSAkdmFycyhzdGVwKS5xb3IucnB0Ci0gICAgICAgICBpZiB7IVtpbmZvIGV4aXN0cyB2YXJzKG1haWwsc3RlcHMpXSB8fCBcCi0gICAgICAgICAgICAgKFtpbmZvIGV4aXN0cyB2YXJzKG1haWwsc3RlcHMpXSAmJiAoW2xzZWFyY2ggJHZhcnMobWFpbCxzdGVwcykgJHZhcnMoc3RlcCldICE9IC0xKSl9IHsKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAicHV0cyBcIjxGRj4gTUFJTElORyBSRVNVTFRTIFRPICR2YXJzKG1haWwsdG8pXCJcbiIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiaWYge1xbZmlsZSBleGlzdHMgJHZhcnMocnB0X2RpcikvJHN1bW1hcnlfZmlsZVxdfSB7XG4iCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiAgIGV4ZWMgL2Jpbi9tYWlsIC1zIFwiRkY6ICR2YXJzKGRlc2lnbiksICR2YXJzKHN0ZXApIGNvbXBsZXRlZCAoXFtzaCBwd2RcXSlcIiA8ICR2YXJzKHJwdF9kaXIpLyRzdW1tYXJ5X2ZpbGUgJHZhcnMobWFpbCx0bylcbiIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAifSBlbHNlaWYge1xbZmlsZSBleGlzdHMgJHZhcnMocnB0X2RpcikvJHtzdW1tYXJ5X2ZpbGV9Lmd6XF19IHtcbiIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiICAgZXhlYyBndW56aXAgLWMgJHZhcnMocnB0X2RpcikvJHtzdW1tYXJ5X2ZpbGV9Lmd6IFx8IC9iaW4vbWFpbCAtcyBcIkZGOiAkdmFycyhkZXNpZ24pLCAkdmFycyhzdGVwKSBjb21wbGV0ZWQgKFxbcHdkXF0pXCIgJHZhcnMobWFpbCx0bylcbiIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAifSBlbHNlIHtcbiIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiICAgZXhlYyAvYmluL21haWwgLXMgXCJGRjogJHZhcnMoZGVzaWduKSwgJHZhcnMoc3RlcCkgY29tcGxldGVkIChcW3NoIHB3ZFxdKVwiIDwgL2Rldi9udWxsICR2YXJzKG1haWwsdG8pXG4iCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIn1cbiIKLSAgICAgICAgIH0KLSAgICAgIH0KLQotICAgICAgYXBwZW5kIGNvbW1hbmRzICJpZiB7XFtpbmZvIGV4aXN0cyBlbnYoVlBBVEgpXF19IHsiCi0gICAgICBhcHBlbmQgY29tbWFuZHMgImV4ZWMgL2Jpbi90b3VjaCBcJGVudihWUEFUSCkvJHZhcnMoc3RlcCkiCi0gICAgICBhcHBlbmQgY29tbWFuZHMgIn1cbiIKLQotICAgICAgcmV0dXJuICRjb21tYW5kcwotCi0gICB9Ci0KLSAgIHByb2MgcnVuX3N5bl9wbGFjZSB7e2Zvcm1hdCAxfX0gewotCi0gICAgICBnbG9iYWwgdmFycwotICAgICAgZ2xvYmFsIGVudgotICAgICAgZ2xvYmFsIGVycm9ycwotCi0gICAgICBzZXQgdmFycyhzdGVwKSBzeW5fcGxhY2UKLQotICAgICAgc2V0IGNvbW1hbmRzICIiCi0KLSAgICAgIGFwcGVuZCBjb21tYW5kcyAicHJvYyBQdXRzIHthcmdzfSB7cHV0cyBcJGFyZ3N9XG4iCi0KLSAgICAgIGFwcGVuZCBjb21tYW5kcyAicHV0cyBcW2dldF9hdHRyIHByb2dyYW1fdmVyc2lvbiAvXF1cbiIKLSAgICAgCi0gICAgICAjIyBlbmFibGUgbXVsdGkgcHJvY2Vzc2luZwotICAgICAgYXBwZW5kIGNvbW1hbmRzICJzZXQgaG9zdGxpc3QgXFtscmVwZWF0ICR2YXJzKGxvY2FsX2NwdXMpIGxvY2FsaG9zdFxdXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgInNldF9hdHRyaWJ1dGUgc3VwZXJfdGhyZWFkX3NlcnZlcnMgXCRob3N0bGlzdCAvXG4iCi0gICAgIAotICAgICAgaWYgeyR2YXJzKGNhcHR1cmVfbWV0cmljcyl9IHsKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiXHVtOjpuZW5hYmxlX21ldHJpY3MgLW9uXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgInVtOjpwdXNoX3NuYXBzaG90X3N0YWNrXG4iCi0gICAgICB9Ci0KLSAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhwb3N0bG9hZF9zeW5fcGxhY2VfdGNsKV19IHsKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAic2V0X2F0dHJpYnV0ZSBlbmNfcG9zdGxvYWRfc2NyaXB0ICR2YXJzKHBvc3Rsb2FkX3N5bl9wbGFjZV90Y2wpIC9cbiIKLSAgICAgIH0KLSAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhwcmVleHBvcnRfc3luX3BsYWNlX3RjbCldfSB7Ci0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgInNldF9hdHRyaWJ1dGUgZW5jX3ByZWV4cG9ydF9zY3JpcHQgJHZhcnMocHJlZXhwb3J0X3N5bl9wbGFjZV90Y2wpIC9cbiIKLSAgICAgIH0KLSAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhwcmVhbm5vdGF0aW9uX3N5bl9wbGFjZWRfdGNsKV19IHsKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAic2V0X2F0dHJpYnV0ZSBlbmNfcHJlYW5ub3RhdGlvbl90Y2wgJHZhcnMocHJlYW5ub3RhdGlvbl9zeW5fcGxhY2VkX3RjbCkgL1xuIgotICAgICAgfQotCi0gICAgICBhcHBlbmQgY29tbWFuZHMgInNldF9hdHRyaWJ1dGUgZW5jX3RlbXBfZGlyIC4vSU5OT1ZVUy9yY3BfcnVuIC9cbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyAic2V0X2F0dHJpYnV0ZSBlbmNfZ3ppcF9pbnRlcmZhY2VfZmlsZXMgdHJ1ZSAvXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgInNldF9hdHRyaWJ1dGUgcHFvc19wbGFjZW1lbnRfZWZmb3J0IG5vX3ZhbHVlIC9cbiIKLQotICAgICAgYXBwZW5kIGNvbW1hbmRzICJzZXQgOjpwaHlzOjpwcW9zX3Ruc19vcHQgMVxuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzICJzZXRfYXR0cmlidXRlIGlvcHRfZW5hYmxlX3BhcmFsbGVsaXphdGlvbiBmYWxzZSAvXG4iCi0gICAgICAKLSMgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoZGVmX2ZpbGVzKV19IHsKLSMgICAgICAgICBmb3JlYWNoIGZpbGUgJHZhcnMoZGVmX2ZpbGVzKSB7Ci0jICAgICAgICAgICAgaWYge1tmaWxlIGV4aXN0cyAkZmlsZV19IHsKLSMgICAgICAgICAgICAgICBzZXQgY29tbWFuZCAicmVhZF9kZWYgJHZhcnMoZGVmX2ZpbGVzKVxuIgotIyAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxyZWFkX2RlZiAkY29tbWFuZF0KLSMgICAgICAgICAgICB9Ci0jICAgICAgICAgfQotIyAgICAgIH0KLSAgICAgIAotICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6c291cmNlX3BsdWcgcHJlX3N5bl9wbGFjZV90Y2xdCi0gICAgIAotICAgICAgc2V0IGNvbW1hbmQgIlxuc3ludGhlc2l6ZSAtdG9fcGxhY2VkIC1lZmZvcnQgaGlnaCAtcHFvc19vbmx5XG5cbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kICJ3cml0ZV9kYiAkdmFycyhkZXNpZ24pIC1hbGxfcm9vdF9hdHRyaWJ1dGVzIC10b19maWxlICR2YXJzKGRic19kaXIpLyR2YXJzKHN0ZXApLmRiXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksc3luMnBsYWNlICRjb21tYW5kXQotIAotICAgICAgc2V0IGNvbW1hbmQgIlxuc3ludGhlc2l6ZSAtdG9fcGxhY2VkIC1lZmZvcnQgaGlnaCAtaW5jclxuXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksc3luMnBsYWNlX2luY3IgJGNvbW1hbmRdCi0KLSAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OnNvdXJjZV9wbHVnIHBvc3Rfc3luX3BsYWNlX3RjbF0KLQotICAgICAgYXBwZW5kIGNvbW1hbmRzICI6OnBoeXM6OnFvc19zdGF0cyAtcXVpZXQgLXRhZyBzeW4ycGxhY2VkXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgIjo6cGh5czo6cW9zX3dyaXRlX3N0YXRzX2FycmF5ID4gJHZhcnMocnB0X2RpcikvcW9zX3N0YXRzLnFkYlxuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzICI6OnBoeXM6OnFvc19zdW1tYXJ5XG4iCi0KLSAgICAgIGFwcGVuZCBjb21tYW5kcyAiZm9yZWFjaCBjZyBcW2ZpbmQgLyAtY29zdF9ncm91cCAqXF0ge1xuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzICIgIHJlcG9ydCB0aW1pbmcgLWNvc3RfZ3JvdXAgXCRjZyA+PiAkdmFycyhycHRfZGlyKS9zeW5fcGxhY2VfXFtmaWxlIHRhaWwgXCRjZ1xdLnJwdFxuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzICJ9XG4iCi0gICAgICAKLSAgICAgIGlmIHskdmFycyhjYXB0dXJlX21ldHJpY3MpfSB7Ci0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgInVtOjpwb3Bfc25hcHNob3Rfc3RhY2tcbiIKLSAgICAgICAgIGlmIHtbbGluZGV4IFtzcGxpdCAkdmFycyh2ZXJzaW9uKSAiLiJdICAwXSA+IDE2fSB7Ci0gICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoY29tcHV0ZV9tZXRyaWNzKV0gJiYgJHZhcnMoY29tcHV0ZV9tZXRyaWNzKX0gewotICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgImNyZWF0ZV9zbmFwc2hvdCAtbmFtZSAkdmFycyhzdGVwKSAtY2F0ZWdvcmllcyBcW2RpY3QgZ2V0IFxbZ2V0X2F0dHIgbWV0cmljX2NhdGVnb3J5X3N0YXR1c19tYXBcXSBcW2dldF9hdHRyIHN0YXRlIFxbZmluZCAvIC1kZXNpZ24gKlxdXF1cXVxuIgotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJjcmVhdGVfc25hcHNob3QgLW5hbWUgJHZhcnMoc3RlcCkgLWNhdGVnb3JpZXMgZGVzaWduXG4iCi0gICAgICAgICAgIH0KLSAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgImNyZWF0ZV9zbmFwc2hvdCAtbmFtZSAkdmFycyhzdGVwKVxuIgotICAgICAgICAgfQotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJ1bTo6c2F2ZV9tZXRyaWNfZmlsZSAkdmFycyhkYnNfZGlyKS8kdmFycyhzdGVwKS51bVxuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJ1bTo6cmVwb3J0X21ldHJpYyAtZmlsZSAkdmFycyhycHRfZGlyKS8kdmFycyhkZXNpZ24pLmh0bWwgLWZvcm1hdCBodG1sXG4iCi0gICAgICB9Ci0KLSAgICAgICAgIHNldCBjb21tYW5kICJ3cml0ZV9kYiAkdmFycyhkZXNpZ24pIC1zY3JpcHQgJHZhcnMoZGJzX2RpcikvJHZhcnMoc3RlcClfZGJfc2NyLnRjbCAtYWxsX3Jvb3RfYXR0cmlidXRlcyAtdG9fZmlsZSAkdmFycyhkYnNfZGlyKS8kdmFycyhzdGVwKS5kYlxuIgotICAgICAgYXBwZW5kIGNvbW1hbmQgIndyaXRlX2RiICR2YXJzKGRlc2lnbikgLWFsbF9yb290X2F0dHJpYnV0ZXMgLXRvX2ZpbGUgJHZhcnMoZGJzX2RpcikvJHZhcnMoc3RlcCkuZGJcbiIKLQotICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHdyaXRlX2RiICRjb21tYW5kXQotCi0gICAgICAgICBzZXQgY29tbWFuZCAid3JpdGVfaGRsIFxbZmluZCAvIC1kZXNpZ24gJHZhcnMoZGVzaWduKVxdID4gJHZhcnMoZGJzX2RpcikvJHZhcnMoc3RlcCkudi5nelxuIgotICAgICAgYXBwZW5kIGNvbW1hbmQgIndyaXRlX2hkbCBcW2ZpbmQgLyAtZGVzaWduICR2YXJzKGRlc2lnbilcXSAtbGVjID4gJHZhcnMobGVjX2RpcikvJHZhcnMoc3RlcCkuTEVDT05MWS52Lmd6XG4iCi0KLSAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSx3cml0ZV9oZGwgJGNvbW1hbmRdCi0KLSAgICAgIGlmIHskdmFycyhlbmFibGVfcmNwKX0gewotICAgICAgICAgICAgc2V0IGNvbW1hbmQgIlxud3JpdGVfZGVzaWduIC1pbm5vdnVzIC1nemlwIC1iYXNlbmFtZSAkdmFycyhkYnNfZGlyKS8kdmFycyhzdGVwKS8kdmFycyhzdGVwKVxuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmQgInNldCBmaWxlIFxbb3BlbiAkdmFycyhkYnNfZGlyKS8kdmFycyhzdGVwKS8kdmFycyhzdGVwKS5ub3Z1c19zZXR1cC50Y2wgd1xdXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZCAicHV0cyBcJGZpbGUgXCJldmFsX2VuYyBce3NvdXJjZSAkdmFycyhkYnNfZGlyKS8kdmFycyhzdGVwKS8kdmFycyhzdGVwKS5lbmNfc2V0dXAudGNsXH1cIlxuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmQgImNsb3NlIFwkZmlsZVxuXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksd3JpdGVfZGVzaWduICRjb21tYW5kXQotICAgICAgfQotCi0gICAgICAjIFdyaXRlIG91dCBSVEwgdmVyc3VzIG1hcHBlZCBMRUMgZG9maWxlCi0gICAgICBhcHBlbmQgY29tbWFuZHMgIndyaXRlX2RvX2xlYyAtcmV2aXNlZCAkdmFycyhsZWNfZGlyKS8kdmFycyhzdGVwKS5MRUNPTkxZLnYuZ3ogIC1sb2dmaWxlIHJ0bDJpbmNyLmxvZyAgPiAkdmFycyhsZWNfZGlyKS9ydGwyaW5jci5kb2ZcbiIKLQotICAgICAgICAgc2V0IGNvbW1hbmQgInJlZGlyZWN0ICR2YXJzKGxlY19kaXIpL2RlbGV0ZWRfc2VxdWVudGlhbHMucnB0IHtyZXBvcnQgc2VxdWVudGlhbCAtZGVsZXRlZF9zZXFzfVxuIgotICAgICAgYXBwZW5kIGNvbW1hbmQgInJlZGlyZWN0IC10ZWUgJHZhcnMocnB0X2RpcikvJHZhcnMoc3RlcCkucW9yLnJwdCB7IHJlcG9ydCBxb3IgLW5vcG93ZXIgfVxuIgotICAgICAgYXBwZW5kIGNvbW1hbmQgInJlZGlyZWN0IC1hcHBlbmQgJHZhcnMocnB0X2RpcikvJHZhcnMoc3RlcCkucW9yLnJwdCB7IHJlcG9ydCB0aW1pbmcgLWZ1bGwgLW51bSAyNTAgLWVuZCB9XG4iCi0gICAgICBhcHBlbmQgY29tbWFuZCAicmVkaXJlY3QgLWFwcGVuZCAkdmFycyhycHRfZGlyKS8kdmFycyhzdGVwKS5xb3IucnB0IHsgcmVwb3J0IHRpbWluZyAtZnVsbCAtbnVtIDI1IH1cbiIKLSAgICAgIAotICAgICAgYXBwZW5kIGNvbW1hbmQgImdlbmVyYXRlX3JlcG9ydHMgLXRhZyAkdmFycyhzdGVwKSAtb3V0ZGlyICR2YXJzKHJwdF9kaXIpL2dlbmVyYXRlX3JlcG9ydHNcbiIKLQotICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLGdlbmVyYXRlX3JlcG9ydHMgJGNvbW1hbmRdCi0KLSAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhtYWlsLHRvKV19IHsKLSAgICAgICAgIHNldCBzdW1tYXJ5X2ZpbGUgJHZhcnMoc3RlcCkucW9yLnJwdAotICAgICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycyhtYWlsLHN0ZXBzKV0gfHwgXAotICAgICAgICAgICAgIChbaW5mbyBleGlzdHMgdmFycyhtYWlsLHN0ZXBzKV0gJiYgKFtsc2VhcmNoICR2YXJzKG1haWwsc3RlcHMpICR2YXJzKHN0ZXApXSAhPSAtMSkpfSB7Ci0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgInB1dHMgXCI8RkY+IE1BSUxJTkcgUkVTVUxUUyBUTyAkdmFycyhtYWlsLHRvKVwiXG4iCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgImlmIHtcW2ZpbGUgZXhpc3RzICR2YXJzKHJwdF9kaXIpLyRzdW1tYXJ5X2ZpbGVcXX0ge1xuIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIgICBleGVjIC9iaW4vbWFpbCAtcyBcIkZGOiAkdmFycyhkZXNpZ24pLCAkdmFycyhzdGVwKSBjb21wbGV0ZWQgKFxbc2ggcHdkXF0pXCIgPCAkdmFycyhycHRfZGlyKS8kc3VtbWFyeV9maWxlICR2YXJzKG1haWwsdG8pXG4iCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIn0gZWxzZWlmIHtcW2ZpbGUgZXhpc3RzICR2YXJzKHJwdF9kaXIpLyR7c3VtbWFyeV9maWxlfS5nelxdfSB7XG4iCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiAgIGV4ZWMgZ3VuemlwIC1jICR2YXJzKHJwdF9kaXIpLyR7c3VtbWFyeV9maWxlfS5neiBcfCAvYmluL21haWwgLXMgXCJGRjogJHZhcnMoZGVzaWduKSwgJHZhcnMoc3RlcCkgY29tcGxldGVkIChcW3B3ZFxdKVwiICR2YXJzKG1haWwsdG8pXG4iCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIn0gZWxzZSB7XG4iCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiAgIGV4ZWMgL2Jpbi9tYWlsIC1zIFwiRkY6ICR2YXJzKGRlc2lnbiksICR2YXJzKHN0ZXApIGNvbXBsZXRlZCAoXFtzaCBwd2RcXSlcIiA8IC9kZXYvbnVsbCAkdmFycyhtYWlsLHRvKVxuIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJ9XG4iCi0gICAgICAgICB9Ci0gICAgICB9Ci0KLSAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxzY2hlZHVsZV9mbG93ICRjb21tYW5kXQotCi0gICAgICBhcHBlbmQgY29tbWFuZHMgImlmIHtcW2luZm8gZXhpc3RzIGVudihWUEFUSClcXX0geyIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyAiZXhlYyAvYmluL3RvdWNoIFwkZW52KFZQQVRIKS8kdmFycyhzdGVwKSIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyAifVxuIgotCi0gICAgICByZXR1cm4gJGNvbW1hbmRzCi0KLSAgIH0KLQotICAgcHJvYyBydW5faW5pdCB7e2Zvcm1hdCAxfX0gewotCi0gICAgICBnbG9iYWwgdmFycwotICAgICAgZ2xvYmFsIGVudgotICAgICAgZ2xvYmFsIGVycm9ycwotICAgICAgZ2xvYmFsIHdhcm5pbmdzCi0gICAgICBnbG9iYWwgZW52Ci0KLSAgICAgIHNldCBjb21tYW5kcyAiIgotICAgICAgc2V0IHVjb21tZW50cyAiIgotICAgICAgc2V0IGNvbW1lbnRzICIiCi0KLSAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyh2aWV3X2RlZmluaXRpb25fdGNsKV19IHsKLSAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnModmlld19kZWZpbml0aW9uX3RjbClcbiIKLSAgICAgIH0KLQotICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycyhzdGVwKV0gfHwgKCgkdmFycyhzdGVwKSAhPSAicGFydGl0aW9uX3BsYWNlIikgJiYgKCR2YXJzKHN0ZXApICE9ICJtb2RlbF9nZW4iKSAmJiAoJHZhcnMoc3RlcCkgIT0gInByb3RvdHlwZSIpKX0geyAKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAic2V0IHZhcnMoc3RlcCkgaW5pdFxuIgotICAgICAgICAgc2V0IHZhcnMoc3RlcCkgaW5pdAotICAgICAgfSAKLQotICAgICAgaWYgeyR2YXJzKHJlcG9ydF9ydW5fdGltZSl9IHsKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAic2V0IHZhcnMoJHZhcnMoc3RlcCksc3RhcnRfdGltZSkgXFtjbG9jayBzZWNvbmRzXF1cbiIKLSAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMocmVwb3J0X3J1bl90aW1lKVxuIgotICAgICAgfSBlbHNlIHsKLSAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKHJlcG9ydF9ydW5fdGltZSlcbiIKLSAgICAgIH0KLQotICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCR2YXJzKHN0ZXApLHJwdF9kaXIpXX0gewotICAgICAgICAgc2V0IHZhcnMocnB0X2RpcikgJHZhcnMoJHZhcnMoc3RlcCkscnB0X2RpcikKLSAgICAgICAgIGZpbGUgbWtkaXIgJHZhcnMoJHZhcnMoc3RlcCkscnB0X2RpcikKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgICBzZXQgdmFycyhycHRfZGlyKSAkdmFycyhvcmlnX3JwdF9kaXIpCi0gICAgICB9Ci0KLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICMgTWFrZSBzdXJlIG5lY2Vzc2FyeSBkYXRhIGlzIGRlZmluZWQKLSAgICAgICMgQ3JlYXRlIG1ha2UgZGlyZWN0b3J5IGlmIGl0IGRvZXNuJ3QgZXhpc3RzCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICBpZiB7ISR2YXJzKGNvZGVnZW4pfSAgeyAKLSAgICAgICAgIHNldCBjb21tYW5kICJGRl9FREk6OmNoZWNrX3NldHVwXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZCAic2xlZXAgM1xuIgotICAgICAgICAgdXBsZXZlbCAjMCBldmFsICRjb21tYW5kIAotICAgICAgfQotCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAjIE1ha2Ugc3VyZSBuZWNlc3NhcnkgZGF0YSBpcyBkZWZpbmVkCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0KLSAgICAgIGlmIHshW2luZm8gZXhpc3RzIGVudihWUEFUSCldfSB7Ci0gICAgICAgICBzZXQgZW52KFZQQVRIKSAibWFrZSIgIAotICAgICAgfQotICAgICAgYXBwZW5kIGNvbW1hbmRzICJleGVjIG1rZGlyIC1wIFwkZW52KFZQQVRIKVxuIgotCi0gICAgICBpZiB7JHZhcnMoYmFja3VwX2RhdGEpfSB7Ci0gICAgICAgICBwdXRzICIjIDxGRj4gQkFDS0lORyBVUCBQUklPUiBSVU4gREFUQSBJRiBJVCBFWElTVFMuLi5cbiIKLSAgICAgICAgIHNldCBkYXRlIFtzdHJpbmcgdG91cHBlciBbY2xvY2sgZm9ybWF0IFtjbG9jayBzZWNvbmRzXSAtZm9ybWF0IHslaCVkXyVIOiVNfV1dCi0gICAgICAgICBleGVjIG1rZGlyIC1wIEJBQ0tVUC8kZGF0ZQotICAgICAgICAgIyBCQ0w6IEFkZGVkIHN1YnN0IHRvIGhhbmRsZSBkZXJlcmVuY2luZyB2YXJpYWJsZXMKLSAgICAgICAgCi0gICAgICAgICBmb3JlYWNoIGRpciAiW3N1YnN0ICR2YXJzKGRic19kaXIpXSBbc3Vic3QgJHZhcnMocnB0X2RpcildIFtzdWJzdCAkdmFycyhsb2dfZGlyKV0iIHsKLSAgICAgICAgICAgIGlmIHtbZmlsZSBpc2RpcmVjdG9yeSAkZGlyXX0gewotICAgICAgICAgICAgICAgZXhlYyBtdiAkZGlyIEJBQ0tVUC8kZGF0ZQotICAgICAgICAgICAgICAgIyBCQ0w6IENoYW5nZWQgdG8gZmlsZSBta2RpcgotICAgICAgICAgICAgICAgcHV0cyAiTWFraW5nICRkaXIiCi0gICAgICAgICAgICAgICBmaWxlIG1rZGlyICRkaXIKLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0KLSMgICAgICAgICBhcHBlbmQgY29tbWFuZHMgInNsZWVwIDVcbiIKLSAgICAgIH0KLSAgICAgICMgQkNMOiBBZGRlZCBzdWJzdCB0byBoYW5kbGUgZGVyZXJlbmNpbmcgdmFyaWFibGVzCi0gICAgICBmb3JlYWNoIGRpciAiW3N1YnN0ICR2YXJzKGRic19kaXIpXSBbc3Vic3QgJHZhcnMocnB0X2RpcildIFtzdWJzdCAkdmFycyhsb2dfZGlyKV0iIHsKLSAgICAgICAgIHNldCBuZXdEaXIgW3N1YnN0ICRkaXJdCi0gICAgICAgICBpZiB7IVtmaWxlIGV4aXN0cyAkbmV3RGlyXX0gIHsKLSAgICAgICAgICAgIGZpbGUgbWtkaXIgJG5ld0RpcgotICAgICAgICAgfQotICAgICAgfQotCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAjIExvYWQgcHJlLWluaXRpYWxpemF0aWFvbiBwbHVnLWluIHNjcmlwdAotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6c291cmNlX3BsdWcgcHJlX2luaXRfdGNsXQotCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAjIFRoZXNlIGZsb3cgc2NyaXB0cyBzdXBwb3J0IHRoZSBmb2xsb3dpbmc6Ci0gICAgICAjIC0gRmxhdCBjaGlwIG9yIGJsb2NrCi0gICAgICAjIC0gSGllcmFyY2hpY2FsIHBhcnRpdGlvbgotICAgICAgIyAtIFRvcCBsZXZlbCBwYXJ0aXRpb24KLSAgICAgICMKLSAgICAgICMgVGhlIGRhdGEgbG9hZGluZyBtZWNoYW5pc20gYXJlIHNsaWdodGx5IGRpZmZlcmVudCBmb3IgZWFjaCBzbyB3ZSBkZXRlcm1pbmUKLSAgICAgICMgZmlyc3QgaWYgd2UgYXJlIGluIGEgaGllcmFyY2hpY2FsIGZsb3cgKGkuZS4gdmFycyhwYXJ0aXRpb25fbGlzdCkgaXMKLSAgICAgICMgZGVmaW5lZCBhbmQsIGlmIHNvLCB3aGV0aGVyIHdlIGFyZSBpbiBhIGhpZXJhcmNoaWNhbCBwYXJ0aXRpb24gZmxvdwotICAgICAgIyBvciBhIHRvcCBwYXJ0aXRpb24gZmxvdyAoaS5lLiBjd2QgPT0gJHZhcnMoZGVzaWduKSAtIHNlZSBiZWxvdykKLSAgICAgICMKLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICBGRl9FREk6OmNoZWNrX2Zsb3cKLQotIyAgICAgIGFwcGVuZCBjb21tYW5kcyAiIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIgotIyAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgICAgICAgICAgICAgICAgICAgICAgICAgIEVYRUNVVElORyBGTE9XXG4iCi0jICAgICAgYXBwZW5kIGNvbW1hbmRzICIjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4iCi0KLSAgICAgIHNldCBoaWVyIDAKLSAgICAgIAotICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCR2YXJzKHN0ZXApLHN0YXJ0aW5nX2RicyldfSB7Ci0gICAgICAgICBpZiB7W3N0cmluZyBjb21wYXJlIC1ub2Nhc2UgJHZhcnMoZGJzX2Zvcm1hdCkgIm9hIl09PTB9IHsKLSAgICAgICAgICAgIyBJbnRlcnByZXQgdGhlIHN0YXJ0aW5nIERCUyBhcyBhbiBPQSB0cmlwbGUKLSAgICAgICAgICAgc2V0IHJlc3RvcmVfY29tbWFuZCAiW2xpc3QgcmVzdG9yZURlc2lnbiAtY2VsbHZpZXcgJHZhcnMoJHZhcnMoc3RlcCksc3RhcnRpbmdfZGJzKV1cbiIKLSAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBpZiB7W2ZpbGUgaXNkaXJlY3RvcnkgJHZhcnMoJHZhcnMoc3RlcCksc3RhcnRpbmdfZGJzKV19IHsKLSAgICAgICAgICAgICAgc2V0IHJlc3RvcmVfY29tbWFuZCAicmVzdG9yZURlc2lnbiAkdmFycygkdmFycyhzdGVwKSxzdGFydGluZ19kYnMpICR2YXJzKGRlc2lnbilcbiIKLSAgICAgICAgICAgIH0gZWxzZWlmIHtbZmlsZSBleGlzdHMgJHZhcnMoJHZhcnMoc3RlcCksc3RhcnRpbmdfZGJzKV19IHsKLSAgICAgICAgICAgICAgc2V0IHJlc3RvcmVfY29tbWFuZCAicmVzdG9yZURlc2lnbiAkdmFycygkdmFycyhzdGVwKSxzdGFydGluZ19kYnMpLmRhdCAkdmFycyhkZXNpZ24pXG4iCi0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICBwdXRzICI8RkY+IFN0YXJ0aW5nIERCUyAoJHZhcnMoJHZhcnMoc3RlcCksc3RhcnRpbmdfZGJzKSkgZGVmaW5lZCBidXQgZG9lcyBub3QgZXhpc3QiCi0gICAgICAgICAgICAgIHNldCByZXN0b3JlX2NvbW1hbmQgInJlc3RvcmVEZXNpZ24gJHZhcnMoJHZhcnMoc3RlcCksc3RhcnRpbmdfZGJzKS5kYXQgJHZhcnMoZGVzaWduKVxuIgotICAgICAgICAgICAgICBzZXQgd2FybmluZ3MoJHZhcnMod2FybmluZ19jb3VudCkpICJTdGFydGluZyBEQlMgKCR2YXJzKCR2YXJzKHN0ZXApLHN0YXJ0aW5nX2RicykpIGRlZmluZWQgYnV0IGRvZXMgbm90IGV4aXN0IgotICAgICAgICAgICAgICBpbmNyIHZhcnMod2FybmluZ19jb3VudCkKLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0KLQotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHJlc3RvcmVfZGVzaWduICRyZXN0b3JlX2NvbW1hbmRdCi0KLSAgICAgIH0gZWxzZSB7Ci0KLSAgICAgICAgIGlmIHshW2luZm8gZXhpc3RzIHZhcnMocGFydGl0aW9uX2xpc3QpXSB8fCAoW2luZm8gZXhpc3RzIHZhcnMocGFydGl0aW9uX2xpc3QpXSAmJiBcCi0gICAgICAgICAgICAgIChbZmlsZSB0YWlsIFtmaWxlIGRpcm5hbWUgW3B3ZF1dXSAhPSAiJHZhcnMocGFydGl0aW9uX2RpcikiKSl9IHsKLSAgIAotICAgICAgICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgICAgICAgIyBQYXJ0aXRpb24gc3RlcCBvciBmbGF0IGluaXQgc3RlcAotICAgICAgICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCi0gICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMocGFydGl0aW9uX2xpc3QpXX0gewotICAgICAgICAgICAgICAgc2V0IGhpZXIgMQotICAgICAgICAgICAgfQotICAgCi0gICAgICAgICAgICBpZiB7JHZhcnModmVyYm9zZSl9IHsKLSAgICAgICAgICAgICAgIGlmIHshW2luZm8gZXhpc3RzIHZhcnMocGFydGl0aW9uX2xpc3QpXX0gewotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjXG4iCi0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgRkxBVCBJTVBMRU1FTlRBVElPTiBGTE9XXG4iCi0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiNcbiIKLSAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiNcbiIKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyBQQVJUSVRJT05JTkcgRkxPV1xuIgotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjXG4iCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAKLSAgICAgICAgICAgIGlmIHskdmFycyh2ZXJib3NlKX0gewotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgTE9BRElORyBERVNJR04gREFUQVxuIgotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjXG4iCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAgICAgICAjIExvYWQgZGVzaWduIGNvbmZpZ3VyYXRpb24gZmlsZQotICAgICAgICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgCi0gICAgICAgICAgICBpZiB7W2xpbmRleCBbc3BsaXQgJHZhcnModmVyc2lvbikgIi4iXSAwXSA8PSAxMH0gewotICAgICAgICAgICAgICAgc291cmNlICR2YXJzKHNjcmlwdF9wYXRoKS9FVEMvSU5OT1ZVUy9nZW5lcmljLmNvbmYKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIHskdmFycyhpbG0pfSB7Ci0gICAgICAgICAgICAgICBzZXQgaWxtX2xpc3QgJHZhcnMoaWxtX2xpc3QpCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKGlsbV9saXN0KSBcIjxsaXN0IG9mIElMTXM+XCJcbiIKLSAgICAgICAgICAgICAgIGlmIHskdmFycyhtb2RlKSA9PSAiYm90dG9tX3VwIn0gewotICAgICAgICAgICAgICAgICAgZm9yZWFjaCBwYXJ0ICR2YXJzKHBhcnRpdGlvbl9saXN0KSB7Ci0gICAgICAgICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJHBhcnQsaWxtX2RpcildfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKDxpbG0+LGlsbV9kaXIpIFwiPHBhdGggdG8gSUxNIGRpcmVjdG9yeT5cIlxuIgotICAgICAgICAgICAgICAgICAgICAgICAgaWYge1tsc2VhcmNoICRpbG1fbGlzdCAkcGFydF0gPT0gLTF9IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhcHBlbmQgaWxtX2xpc3QgJHBhcnQKLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIGZvcmVhY2ggaWxtICRpbG1fbGlzdCB7Ci0gICAgICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJGlsbSxsZWZfZmlsZSldICYmIFtmaWxlIGV4aXN0cyAkdmFycygkaWxtLGxlZl9maWxlKV19IHsKLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMoPGlsbT4sbGVmX2ZpbGUpIFwiPExFRiBmaWxlIGZvciBibG9jayBhc3NvY2lhdGVkIHdpdGggSUxNPlwiXG4iCi0gICAgICAgICAgICAgICAgICAgICBpZiB7W2xpbmRleCBbc3BsaXQgJHZhcnModmVyc2lvbikgIi4iXSAgMF0gPD0gMTB9IHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGxhcHBlbmQgcmRhX0lucHV0KHVpX2xlZmZpbGUpICR2YXJzKCRpbG0sbGVmX2ZpbGUpCi0gICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICAgaWYge1tzdHJpbmcgY29tcGFyZSAkdmFycyhkYnNfZm9ybWF0KSAiZmUiXT09MH0gewotICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFwcGVuZCB2YXJzKGxlZl9maWxlcykgJHZhcnMoJGlsbSxsZWZfZmlsZSkKLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICBwdXRzICI8RkY+IFdBUk5JTkc6IExFRiBmaWxlIGVpdGhlciBub3QgZGVmaW5lZCBvciBkb2Vzbid0IGV4aXN0IGZvciAkaWxtIgotICAgICAgICAgICAgICAgICAgICAgcHV0cyAiPEZGPiAgICAgICAgICBQbGVhc2UgbWFrZSBzdXJlIGl0IGlzIGluIHlvdXIgdmFycyhsZWZfZmlsZXMpIGxpc3QiCi0gICAgICAgICAgICAgICAgICAgICBzZXQgd2FybmluZ3MoJHZhcnMod2FybmluZ19jb3VudCkpICJMRUYgZmlsZSBlaXRoZXIgbm90IGRlZmluZWQgb3IgZG9lc24ndCBleGlzdCBmb3IgJGlsbVxuXHRQbGVhc2UgbWFrZSBzdXJlIGl0IGlzIGluIHlvdXIgdmFycyhsZWZfZmlsZXMpIGxpc3QiCi0gICAgICAgICAgICAgICAgICAgICBpbmNyIHZhcnMod2FybmluZ19jb3VudCkKLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkaWxtLHNldHVwX2xpYildICYmIFtmaWxlIGV4aXN0cyAkdmFycygkaWxtLHNldHVwX2xpYildfSB7Ci0gICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKDxpbG0+LHNldHVwX2xpYikgXCI8TElCIGZpbGUgZm9yIGJsb2NrIGFzc29jaWF0ZWQgd2l0aCBJTE0+XCJcbiIKLSAgICAgICAgICAgICAgICAgICAgIGlmIHtbbGluZGV4IFtzcGxpdCAkdmFycyh2ZXJzaW9uKSAiLiJdICAwXSA8PSAxMH0geyAKLSAgICAgICAgICAgICAgICAgICAgICAgIGxhcHBlbmQgcmRhX0lucHV0KHVpX3RpbWVsaWIpICR2YXJzKCRpbG0sc2V0dXBfbGliKQotICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIHtbc3RyaW5nIGNvbXBhcmUgJHZhcnMoZGJzX2Zvcm1hdCkgImZlIl09PTB9IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcmVhY2ggc2V0ICR2YXJzKGxpYnJhcnlfc2V0cykgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYge1tsc2VhcmNoICR2YXJzKCRzZXQsdGltaW5nKSAkdmFycygkaWxtLHNldHVwX2xpYildID09IC0xfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXBwZW5kIHZhcnMoJHNldCx0aW1pbmcpICR2YXJzKCRpbG0sc2V0dXBfbGliKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgIHB1dHMgIjxGRj4gV0FSTklORzogTElCIGZpbGUgZWl0aGVyIG5vdCBkZWZpbmVkIG9yIGRvZXNuJ3QgZXhpc3QgZm9yICRpbG0iCi0gICAgICAgICAgICAgICAgICAgICBwdXRzICI8RkY+ICAgICAgICAgIFBsZWFzZSBtYWtlIHN1cmUgaXQgaXMgaW4geW91ciBsaWJyYXJ5IHNldCBkZWZpbml0aW9ucyIKLSAgICAgICAgICAgICAgICAgICAgIHNldCB3YXJuaW5ncygkdmFycyh3YXJuaW5nX2NvdW50KSkgIkxJQiBmaWxlIGVpdGhlciBub3QgZGVmaW5lZCBvciBkb2Vzbid0IGV4aXN0IGZvciAkaWxtXG5cdFBsZWFzZSBtYWtlIHN1cmUgaXQgaXMgaW4geW91ciBsaWJyYXJ5IHNldCBkZWZpbml0aW9ucyIKLSAgICAgICAgICAgICAgICAgICAgIGluY3IgdmFycyh3YXJuaW5nX2NvdW50KQotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKGlsbV9saXN0KSBcIjxsaXN0IG9mIElMTXM+XCJcbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKDxpbG0+LGlsbV9kaXIpIFwiPHBhdGggdG8gSUxNIGRpcmVjdG9yeT5cIlxuIgotICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMoPGlsbT4sbGVmX2ZpbGUpIFwiPExFRiBmaWxlIGZvciBibG9jayBhc3NvY2lhdGVkIHdpdGggSUxNPlwiXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyg8aWxtPixzZXR1cF9saWIpIFwiPExJQiBmaWxlIGZvciBibG9jayBhc3NvY2lhdGVkIHdpdGggSUxNPlwiXG4iCi0gICAgICAgICAgICB9Ci0gICAKLSAgICAgICAgICAgIEZGX0VESTo6ZHVtcF9jb25maWcKLSAgIAotICAgICAgICAgICAgaWYge1tsaW5kZXggW3NwbGl0ICR2YXJzKHZlcnNpb24pICIuIl0gIDBdIDw9IDEwfSB7Ci0gICAgICAgICAgICAgICAgICBzZXQgY29tbWFuZCAibG9hZENvbmZpZyBcJHZhcnMoc2NyaXB0X2RpcikvcnVuLmNvbmZcbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxsb2FkX2NvbmZpZyAkY29tbWFuZF0KLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBpZiB7W3N0cmluZyBjb21wYXJlIC1ub2Nhc2UgJHZhcnMobmV0bGlzdF90eXBlKSAidmVyaWxvZyJdPj0wfSB7Ci0jICAgICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgInNvdXJjZSBcJHZhcnMoc2NyaXB0X2RpcikvaW5pdC50Y2xcbiIKLSAgICAgICAgICAgICAgICAgIGlmIHskdmFycyhnZW5lcmF0ZV9mbG93X3N0ZXBzKX0geyAKLSAgICAgICAgICAgICAgICAgICAgIHNldCBjb21tYW5kICIiCi0gICAgICAgICAgICAgICAgICAgICBzZXQgaXAgW29wZW4gJHZhcnMoc2NyaXB0X2RpcikvaW5pdC50Y2wgcl0KLSAgICAgICAgICAgICAgICAgICAgIHdoaWxlIHtbZ2V0cyAkaXAgbGluZV0+PTB9IHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICIkbGluZVxuIgotICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgIHNldCBjb21tYW5kICJzb3VyY2UgJHZhcnMoc2NyaXB0X2RpcikvaW5pdC50Y2xcbiIKLSAgICAgICAgICAgICAgICAgIH0gCi0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiaW5pdF9kZXNpZ25cbiIKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxpbml0X2Rlc2lnbiAkY29tbWFuZF0KLSAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICBpZiB7JGhpZXJ9IHsKLSAgICAgICAgICAgICAgICAgICAgIGlmIHskdmFycyhzdGVwKSA9PSAicGFydGl0aW9uX3BsYWNlIn0geyAKLSAgICAgICAgICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgInJlc3RvcmVEZXNpZ24gLWNlbGx2aWV3IFxbbGlzdCAkdmFycyhvYV9kZXNpZ25fbGliKSAkdmFycyhvYV9kZXNpZ25fY2VsbCkgJHZhcnMob2FfZGVzaWduX3ZpZXcpXF1cbiIKLSAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgIHNldCBjb21tYW5kICJyZXN0b3JlRGVzaWduIC1jZWxsdmlldyBcW2xpc3QgJHZhcnMob2FfcGFydGl0aW9uX2xpYikgJHZhcnMob2FfZGVzaWduX2NlbGwpICR2YXJzKG9hX2Rlc2lnbl92aWV3KVxdXG4iCi0gICAgICAgICAgICAgICAgICAgICB9IAotICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgInJlc3RvcmVEZXNpZ24gLWNlbGx2aWV3IFxbbGlzdCAkdmFycyhvYV9kZXNpZ25fbGliKSAkdmFycyhvYV9kZXNpZ25fY2VsbCkgJHZhcnMob2FfZGVzaWduX3ZpZXcpXF1cbiIKLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxyZXN0b3JlX2Rlc2lnbiAkY29tbWFuZF0KLSAgICAgICAgICAgICAgIH0KLSAgICMgICAgICAgICAgICBpZiB7ISR2YXJzKGNvZGVnZW4pfSB7Ci0gICAjICAgICAgICAgICAgICAgUHV0cyAiPEZGPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iCi0gICAjICAgICAgICAgICAgICAgUHV0cyAiPEZGPiAkY29tbWFuZHMiCi0gICAjICAgICAgICAgICAgICAgUHV0cyAiPEZGPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iCi0gICAjICAgICAgICAgICAgICAgdXBsZXZlbCAjMCBldmFsICRjb21tYW5kcwotICAgIyAgICAgICAgICAgICAgIHNldCBjb21tYW5kcyAiIiAgCi0gICAjICAgICAgICAgICAgfSAgCi0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGlmIHskdmFycyhjYXB0dXJlX21ldHJpY3MpfSB7Ci0jICAgICAgICAgICAgICAgIGlmIHsoJHZhcnMoc3RlcCkgIT0gInBhcnRpdGlvbl9wbGFjZSIpICYmICgkdmFycyhzdGVwKSAhPSAibW9kZWxfZ2VuIikgJiYgKCR2YXJzKHN0ZXApICE9ICJwcm90b3R5cGUiKX0geyAKLSAgICAgICAgICAgICAgICAgIGlmIHtbbGluZGV4IFtzcGxpdCAkdmFycyh2ZXJzaW9uKSAiLiJdICAwXSA+IDEzfSB7Ci0gICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgInVtOjplbmFibGVfbWV0cmljcyAtb25cbiIKLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAidW06OnB1c2hfc25hcHNob3Rfc3RhY2tcbiIKLSAgICAgICAgICAgICAgICAgIH0KLSMgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICAgICAgICMgTG9hZCAiYWx3YXlzIHNvdXJjZSIgcGx1Zy1pbiBzY3JpcHQKLSAgICAgICAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OnNvdXJjZV9wbHVnIGFsd2F5c19zb3VyY2VfdGNsXQotCi0gICAgICAgICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAgICAgICAjIENoZWNrIGZvciB0aGUgZXhpc3RlbmNlIG9mIGVpdGhlciBhIGZsb29ycGxhbiBmaWxlLCBhCi0gICAgICAgICAgICAjIERFRiBmaWxlLCBvciBib3RoIGFuZCBsb2FkIHRoZW0KLSAgICAgICAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICAgICAgIHNldCBjb21tYW5kICIiIAotICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGZwX3RjbF9maWxlKV0gfHwgW2luZm8gZXhpc3RzIHZhcnMoZnBfdGNsX3Byb2MpXX0gewotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhmcF90Y2xfZmlsZSlcbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMoZnBfdGNsX3Byb2MpXG4iCi0gICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoZnBfdGNsX2ZpbGUpXSAmJiAhW2luZm8gZXhpc3RzIHZhcnMoZnBfdGNsX3Byb2MpXX0gewotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgImZmX3Byb2NzOjpzb3VyY2VfZmlsZSAkdmFycyhmcF90Y2xfZmlsZSlcbiIKLSAgICAgICAgICAgICAgIH0gZWxzZWlmIHshW2luZm8gZXhpc3QgdmFycyhmcF90Y2xfZmlsZSldICYmIFtpbmZvIGV4aXN0cyB2YXJzKGZwX3RjbF9wcm9jKV19IHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICIkdmFycyhmcF90Y2xfcHJvYylcbiIKLSAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiIyAgRVJST1I6IEJvdGggZnBfdGNsX2ZpbGUgYW5kIGZwX3RjbF9wcm9jIGFyZSBkZWZpbmVkIGJ1dCBhcmUgbXV0dWFsbHkgZXhjbHVzaXZlXG4iCi0gICAgICAgICAgICAgICAgICBzZXQgZXJyb3JzKCR2YXJzKGVycm9yX2NvdW50KSkgIkJvdGggZnBfdGNsX2ZpbGUgYW5kIGZwX3RjbF9wcm9jIGFyZSBkZWZpbmVkIGJ1dCBhcmUgbXV0dWFsbHkgZXhjbHVzaXZlIgotICAgICAgICAgICAgICAgICAgaW5jciB2YXJzKGVycm9yX2NvdW50KQotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKGZwX3RjbF9maWxlKVxuIgotICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMoZnBfdGNsX3Byb2MpXG4iCi0gICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoZnBfZmlsZSldfSB7Ci0gICAgICAgICAgICAgICAgICBpZiB7W2ZpbGUgZXhpc3RzICR2YXJzKGZwX2ZpbGUpXX0gewotICAgIyAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJQdXRzIFwiPEZGPiBMT0FESU5HIEZQIEZJTEUgJHZhcnMoZnBfZmlsZSlcIlxuIgotICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgImxvYWRGUGxhbiAkdmFycyhmcF9maWxlKVxuIgotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhmcF9maWxlKVxuIgotICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKGZwX2ZpbGUpXG4iCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMob2FfZnApXX0gewotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIm9hSW4gJHZhcnMob2FfZnApXG4iCi0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKG9hX2ZwKVxuIgotICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKG9hX2ZwKVxuIgotICAgICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoZGVmX2ZpbGVzKV19IHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMoZGVmX2ZpbGVzKVxuIgotICAgICAgICAgICAgICAgICAgaWYgeyR2YXJzKHJjKX0gewotICAgICAgICAgICAgICAgICAgICAgaWYgeyR2YXJzKGVuYWJsZV9yY3ApfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBzZXQgdmFycyhuZXRsaXN0KSAgICR2YXJzKGRic19kaXIpL3N5bl9wbGFjZS9zeW5fcGxhY2Uudi5negotICAgICAgICAgICAgICAgICAgICAgICAgc2V0IHZhcnMoZGVmX2ZpbGVzKSAkdmFycyhkYnNfZGlyKS9zeW5fcGxhY2Uvc3luX3BsYWNlLmRlZi5negotICAgICAgICAgICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGluc2VydF9kZnQpXSAmJiAkdmFycyhpbnNlcnRfZGZ0KX0gewotICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFwcGVuZCB2YXJzKGRlZl9maWxlcykgJHZhcnMoZGJzX2Rpcikvc3luX3BsYWNlL3N5bl9wbGFjZS5zY2FuLmRlZi5negotICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHNldCB2YXJzKG5ldGxpc3QpICAgJHZhcnMoZGJzX2Rpcikvc3luX2luY3Ivc3luX2luY3Iudi5negotIyAgICAgICAgICAgICAgICAgICAgICAgIHNldCB2YXJzKGRlZl9maWxlcykgJHZhcnMoZGJzX2Rpcikvc3luX2luY3Ivc3luX2luY3IuZGVmLmd6Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoaW5zZXJ0X2RmdCldICYmICR2YXJzKGluc2VydF9kZnQpfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICBsYXBwZW5kIHZhcnMoZGVmX2ZpbGVzKSAkdmFycyhkYnNfZGlyKS9zeW5faW5jci9zeW5faW5jci5zY2FuLmRlZi5negotICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgZm9yZWFjaCBkZWZfZmlsZSAkdmFycyhkZWZfZmlsZXMpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJkZWZJbiAkZGVmX2ZpbGVcbiIKLSAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgZm9yZWFjaCBkZWZfZmlsZSAkdmFycyhkZWZfZmlsZXMpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIHtbZmlsZSBleGlzdHMgJGRlZl9maWxlXX0gewotICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgImRlZkluICRkZWZfZmlsZVxuIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhkZWZfZmlsZXMpXG4iCi0gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMoZGVmX2ZpbGVzKVxuIgotICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgIGlmIHskdmFycyhyYyl9IHsKLSAgICAgICAgICAgICAgICAgICAgIGlmIHskdmFycyhlbmFibGVfcmNwKX0gewotICAgICAgICAgICAgICAgICAgICAgICAgc2V0IHZhcnMobmV0bGlzdCkgICAkdmFycyhkYnNfZGlyKS9zeW5fcGxhY2Uvc3luX3BsYWNlLnYuZ3oKLSAgICAgICAgICAgICAgICAgICAgICAgIHNldCB2YXJzKGRlZl9maWxlcykgJHZhcnMoZGJzX2Rpcikvc3luX3BsYWNlL3N5bl9wbGFjZS5kZWYuZ3oKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhpbnNlcnRfZGZ0KV0gJiYgJHZhcnMoaW5zZXJ0X2RmdCl9IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhcHBlbmQgdmFycyhkZWZfZmlsZXMpICR2YXJzKGRic19kaXIpL3N5bl9wbGFjZS9zeW5fcGxhY2Uuc2Nhbi5kZWYuZ3oKLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBzZXQgdmFycyhuZXRsaXN0KSAgICR2YXJzKGRic19kaXIpL3N5bl9pbmNyL3N5bl9pbmNyLnYuZ3oKLSAgICAgICAgICAgICAgICAgICAgICAgIHNldCB2YXJzKGRlZl9maWxlcykgJHZhcnMoZGJzX2Rpcikvc3luX2luY3Ivc3luX2luY3IuZGVmLmd6Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoaW5zZXJ0X2RmdCldICYmICR2YXJzKGluc2VydF9kZnQpfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICBsYXBwZW5kIHZhcnMoZGVmX2ZpbGVzKSAkdmFycyhkYnNfZGlyKS9zeW5faW5jci9zeW5faW5jci5zY2FuLmRlZi5negotICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKGRlZl9maWxlcylcbiIKLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxsb2FkX2Zsb29ycGxhbiAkY29tbWFuZF0KLSAgIAotICAgICAgICAgICAgaWYgeygkdmFycyhwYXJlbnQpID09ICJyYyIpICYmICR2YXJzKHJjKX0gewotICAgICAgICAgICAgICAgc2V0IGNvbW1hbmRzIFtGRjo6c291cmNlX3BsdWcgYWx3YXlzX3NvdXJjZV90Y2xdCi0gICAgICAgICAgICAgICBpZiB7JHZhcnMocmVwb3J0X3J1bl90aW1lKX0gewotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJzZXQgdmFycygkdmFycyhzdGVwKSxzdGFydF90aW1lKSBcW2Nsb2NrIHNlY29uZHNcXVxuIgotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6c291cmNlX3BsdWcgcHJlX2luaXRfdGNsXQotICAgICAgICAgICAgfQotICAgCi0gICAjICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGd1aWRlcyldfSB7Ci0gICAjICAgICAgICAgICAgc2V0IGNvbW1hbmQgIlxuYnVpbGRfZ3VpZGVzXG4iCi0gICAjICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kIGluaXQsYnVpbGRfZ3VpZGVzICRjb21tYW5kXQotICAgIyAgICAgICAgIH0KLSAgICMgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoYmxvY2thZ2VzKV19IHsKLSAgICMgICAgICAgICAgICBzZXQgY29tbWFuZCAiXG5hZGRfYmxvY2thZ2VzXG4iCi0gICAjICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kIGluaXQsYWRkX2Jsb2NrYWdlcyAkY29tbWFuZF0KLSAgICMgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGlmIHtbbGluZGV4IFtzcGxpdCAkdmFycyh2ZXJzaW9uKSAiLiJdICAwXSA8IDE1fSB7Ci0gICAgICAgICAgICAgIGlmIHskdmFycyhnZW5lcmF0ZV90cmFja3MpfSB7Ci0gICAgICAgICAgICAgICAgIHNldCBjb21tYW5kICJnZW5lcmF0ZVRyYWNrc1xuIgotICAgICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoaG9ub3JfcGl0Y2gpXSAmJiAkdmFycyhob25vcl9waXRjaCl9IHsKLSAgICAgICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgIiBnZW5lcmF0ZVRyYWNrcyAtaG9ub3JQaXRjaFxuIgotICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxnZW5lcmF0ZV90cmFja3MgJGNvbW1hbmRdCi0gICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMoZ2VuZXJhdGVfdHJhY2tzKVxuIgotICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhnZW5lcmF0ZV90cmFja3MpXG4iCi0gICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0gZWxzZSB7IAotICAgICAgICAgICAgICBpZiB7JHZhcnMoYWRkX3RyYWNrcyl9IHsKLSAgICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgImFkZF90cmFja3NcbiIKLSAgICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGhvbm9yX3BpdGNoKV0gJiYgJHZhcnMoaG9ub3JfcGl0Y2gpfSB7Ci0gICAgICAgICAgICAgICAgICAgIHNldCBjb21tYW5kICIgYWRkX3RyYWNrcyAtaG9ub3JfcGl0Y2hcbiIKLSAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksYWRkX3RyYWNrcyAkY29tbWFuZF0KLSAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhhZGRfdHJhY2tzKVxuIgotICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhhZGRfdHJhY2tzKVxuIgotICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICAgICAgICMgU3BlY2lmeSBJTE1zIGlmIGRlZmluZWQKLSAgICAgICAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgaWxtX2xpc3RdICYmICgkaWxtX2xpc3QgIT0gIiIpfSB7Ci0gICAgICAgICAgICAgICBzZXQgY29tbWFuZCAiIgotICAgICAgICAgICAgICAgZm9yZWFjaCBjZWxsICRpbG1fbGlzdCB7Ci0gICAgICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJGNlbGwsaWxtX2RpcildICYmIFtmaWxlIGlzZGlyZWN0b3J5ICR2YXJzKCRjZWxsLGlsbV9kaXIpXX0gewotICAgICAgICAgICAgICAgICAgICAgaWYge1tsaW5kZXggW3NwbGl0ICR2YXJzKHZlcnNpb24pICIuIl0gIDBdIDw9IDEwfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAic3BlY2lmeUlsbSAtY2VsbCAkY2VsbCAtZGlyICR2YXJzKCRjZWxsLGlsbV9kaXIpXG4iCi0gICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICBpZiB7W3N0cmluZyBjb21wYXJlIC1ub2Nhc2UgJHZhcnMoZGJzX2Zvcm1hdCkgIm9hIl09PTB9IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJzcGVjaWZ5SWxtIC1jZWxsICRjZWxsXG4iCi0gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgInNwZWNpZnlJbG0gLWNlbGwgJGNlbGwgLWRpciAkdmFycygkY2VsbCxpbG1fZGlyKVxuIgotICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgIHB1dHMgIjxGRj4gRVJST1I6IGlsbSBkaXJlY3RvcnkgbWlzc2luZyBmb3IgJGNlbGwiCi0gICAgICAgICAgICAgICAgICAgICBzZXQgZXJyb3JzKCR2YXJzKGVycm9yX2NvdW50KSkgIklMTSBkaXJlY3RvcnkgbWlzc2luZyBmb3IgJGNlbGwiCi0gICAgICAgICAgICAgICAgICAgICBpbmNyIHZhcnMoZXJyb3JfY291bnQpCi0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksZGVyYXRlX3RpbWluZyBbRkZfRURJOjpkZXJhdGVfdGltaW5nIG1tbWNdXQotICAgICAgICAgICAgICAgaWYgeyRjb21tYW5kICE9ICIifSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksc3BlY2lmeV9pbG0gInNldElsbU1vZGUgLWtlZXBGbGF0dGVuIHRydWVcbiR7Y29tbWFuZH1mbGF0dGVuSWxtXG4iXQotIyAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxzcGVjaWZ5X2lsbSAkY29tbWFuZF0KLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgaWYgeyR2YXJzKGlsbSkgJiYgW2luZm8gZXhpc3RzIHZhcnMoaWxtX25vbl9zZGNfZmlsZSldfSB7Ci0gICAgICAgICAgICAgICBpZiB7W2ZpbGUgZXhpc3RzICR2YXJzKGlsbV9ub25fc2RjX2ZpbGUpXX0gewotICAgICAgICAgICAgICAgICAgaWYge1tsaW5kZXggW3NwbGl0ICR2YXJzKHZlcnNpb24pICIuIl0gIDBdIDw9IDEwfSB7Ci0gICAgICAgICAgICAgICAgICAgICBzZXQgbGNvbW1hbmQgImxvYWRUaW1pbmdDb24gLWlsbU5vblNkY0ZpbGUgJHZhcnMoaWxtX25vbl9zZGNfZmlsZSlcbiIKLSAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICBzZXQgbGNvbW1hbmQgInNldElsbU5vblNkY0NvbnN0cmFpbnRGaWxlICR2YXJzKGlsbV9ub25fc2RjX2ZpbGUpXG4iCi0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksbG9hZF9pbG1fbm9uX3NkY19maWxlICRsY29tbWFuZF0KLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMoaWxtX25vbl9zZGNfZmlsZSlcbiIKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhpbG1fbm9uX3NkY19maWxlKVxuIgotICAgICAgICAgICAgfQotICAgCi0gICAgICAgICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAgICAgICAjIERlZmluZSBwb3dlciBpbnRlbnQgaWYgaXQgaXMgZGVmaW5lZCAobG93IHBvd2VyIGZsb3cpCi0gICAgICAgICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAgICAgIAotICAgICAgICAgICAgaWYge1tsaW5kZXggW3NwbGl0ICR2YXJzKHZlcnNpb24pICIuIl0gIDBdIDwgMTR9IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkZfRURJOjpsb2FkX3Bvd2VyX2ludGVudF0KLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGX05PVlVTOjpsb2FkX3Bvd2VyX2ludGVudF0KLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGFjdGl2aXR5X2ZpbGUpXX0gewotICAgIyAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAkaGVhZGVyCi0gICAjICAgICAgICAgICAgc2V0IGhlYWRlciAiIgotICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgInJlYWRBY3Rpdml0eUZpbGUgLWZvcm1hdCAkdmFycyhhY3Rpdml0eV9maWxlX2Zvcm1hdCkgJHZhcnMoYWN0aXZpdHlfZmlsZSlcbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxyZWFkX2FjdGl2aXR5X2ZpbGUgJGNvbW1hbmRdCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKGFjdGl2aXR5X2ZpbGUpXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKGFjdGl2aXR5X2ZpbGVfZm9ybWF0KVxuIgotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKGFjdGl2aXR5X2ZpbGUpXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhhY3Rpdml0eV9maWxlX2Zvcm1hdClcbiIKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgICAgICAgIyBMb2FkIHRpbWluZyBlbnZpcm9tZW50IGJhc2VkIG9uIHRoZSBmbG93IHNldHRpbmcgaW4gdGhlCi0gICAgICAgICAgICAjIHNldHVwLnRjbCBmaWxlLiBJZiB0aGUgZmxvdyBpcyBtbW1jLCBsb2FkIHRoZSBtbW1jIHNldHVwCi0gICAgICAgICAgICAjIGhlcmUgZWxzZSBsb2FkIHRoZSBkZWZhdWx0IHRpbWluZyBlbnZpcm9ubWVudAotICAgICAgICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgIyAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiI1xuIgotICAgIyAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyBTRVRUSU5HIFVQIFRJTUlORyBFTlZJUk9OTUVOVFxuIgotICAgIyAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiI1xuIgotCi0gICAgICAgICAgICBpZiB7JHZhcnMoZmxvdykgPT0gIm1tbWMifSB7Ci0gICAgICAgICAgICAgICBzZXQgY29tbWFuZCBbRkZfRURJOjppbml0aWFsaXplX3RpbWluZyBtbW1jXQotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIHNldCBjb21tYW5kIFtGRl9FREk6OmluaXRpYWxpemVfdGltaW5nIG1pbm1heF0KLSAgICAgICAgICAgIH0KLSAgIAotICAgIyAgICAgZm9yZWFjaCB2YXIgW2FycmF5IG5hbWUgdmFyc10gewotICAgIyAgICAgICAgaWYgeygkdmFyICE9ICJzdGVwIikgJiYgKCR2YXIgIT0gIm1vZGUiKSAmJiAoJHZhciAhPSAiaWxtIikgJiYgXAotICAgIyAgICAgICAgICAgICgkdmFyICE9ICJmbGF2b3IiKSAmJiAoJHZhciAhPSAidXNlcl9tb2RlIikgJiYgKCR2YXIgIT0gImZsYXQiKSAmJiBcCi0gICAjICAgICAgICAgICAgKCR2YXIgIT0gInJlcG9ydF9ydW5fdGltZSIpICYmICgkdmFyICE9ICJtYWtlZmlsZSIpICYmICgkdmFyICE9ICJjb2RlZ2VuIikgJiYgXAotICAgIyAgICAgICAgICAgICgkdmFyICE9ICJiYWNrdXBfZGF0YSIpICYmICgkdmFyICE9ICJ2ZXJib3NlIikgJiYgKCR2YXIgIT0gImZvcm1hdF9saW5lcyIpICYmIFwKLSAgICMgICAgICAgICAgICAoJHZhciAhPSAid2FybmluZ19jb3VudCIpICYmICgkdmFyICE9ICJlcnJvcl9jb3VudCIpICYmICgkdmFyICE9ICJyYyIpICYmIFwKLSAgICMgICAgICAgICAgICAoJHZhciAhPSAiZ2VuZXJhdGVfdHJhY2tzIikgJiYgKCR2YXIgIT0gImZpeF9ob2xkIikgJiYgKCR2YXIgIT0gImhvbm9yX3BpdGNoIikgJiYgXAotICAgIyAgICAgICAgICAgICgkdmFyICE9ICJzY3JpcHRfcGF0aCIpICYmICgkdmFyICE9ICJmaXhfaG9sZCIpICYmICgkdmFyICE9ICJob25vcl9waXRjaCIpICYmIFwKLSAgICMgICAgICAgICAgICAoJHZhciAhPSAic3RlcHMiKSAmJiAoJHZhciAhPSAic291cmNlZCIpICYmICgkdmFyICE9ICJ2ZXJzaW9uIil9IHsKLSAgICMgICAgICAgICAgIHNldCB2YXJzKCR2YXIpICJcXFwkdmFycygkdmFyKSIKLSAgICMgICAgICAgIH0KLSAgICMgICAgIH0KLQotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLGluaXRpYWxpemVfdGltaW5nICRjb21tYW5kXQotCi0gICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMocG93ZXJfYW5hbHlzaXNfdmlldyldICYmICgkdmFycyhwb3dlcl9hbmFseXNpc192aWV3KSAhPSAiIil9IHsKLSAgICAgICAgICAgICAgIHNldCBjb21tYW5kICJzZXRfcG93ZXJfYW5hbHlzaXNfbW9kZSAtYW5hbHlzaXNfdmlldyAkdmFycyhwb3dlcl9hbmFseXNpc192aWV3KVxuIgotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHNldF9wb3dlcl9hbmFseXNpc19tb2RlICRjb21tYW5kXQotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBpZiB7ISR2YXJzKGlsbSkgJiYgKCR2YXJzKGZsb3cpID09ICJtbW1jIil9IHsKLSAgICAgICAgICAgICAgIHNldCBjb21tYW5kIFtGRl9FREk6OmRlcmF0ZV90aW1pbmcgbW1tY10KLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxkZXJhdGVfdGltaW5nICRjb21tYW5kXQotICAgICAgICAgICAgfQotICAgCi0gICAgICAgICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAgICAgICAjIExvYWQgc2NhbiBERUYgaWYgaXQgZXhpc3RzCi0gICAgICAgICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoc2Nhbl9kZWYpXX0gewotICAgICAgICAgICAgICAgaWYge1tmaWxlIGV4aXN0cyAkdmFycyhzY2FuX2RlZildfSB7Ci0gICAgICAgICAgICAgICAgICBpZiB7JHZhcnModmVyYm9zZSl9IHsKLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiI1xuIgotICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjIDxGRj4gTE9BRElORyBTQ0FOIERFRiBGSUxFXG4iCi0gICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiNcbiIKLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIHNldCBjb21tYW5kICJkZWZJbiAkdmFycyhzY2FuX2RlZilcbiIKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxsb2FkX3NjYW4gJGNvbW1hbmRdCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKHNjYW5fZGVmKVxuIgotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKHNjYW5fZGVmKVxuIgotICAgICAgICAgICAgfQotICAgCi0gICAgICAgICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAgICAgICAjIFNwZWNpZnkgc3BhcmUgZ2F0ZXMgZm9yIHBsYWNlbWVudCBhbmQgb3B0aW1pemF0aW9uIGNvbnNpZGVyYXRpb247IHRoaXMgYXNzdW1lcwotICAgICAgICAgICAgIyB0aGUgc3BhcmUgY2VsbHMgYXJlIGluIHRoZSBuZXRsaXN0LgotICAgICAgICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgCi0gICAgICAgICAgICBzZXQgY29tbWFuZCAiIgotICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKHNwYXJlX2NlbGxzKV19IHsKLSAgICAgICAgICAgICAgIGZvcmVhY2ggc3BhcmVfY2VsbCAkdmFycyhzcGFyZV9jZWxscykgewotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgInNwZWNpZnlTcGFyZUdhdGUgLWluc3QgJHNwYXJlX2NlbGxcbiIKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMoc3BhcmVfY2VsbHMpXG4iCi0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMoc3BhcmVfY2VsbHMpXG4iCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksc3BlY2lmeV9zcGFyZV9nYXRlcyAkY29tbWFuZF0KLSAgIAotICAgICAgICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgICAgICAgIyBMb2FkIHRoZSByZWNvbW1lbmRlZCBjb21tYW5kIG1vZGUgc2V0dGluZ3MKLSAgICAgICAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICAgICAgIGlmIHskdmFycyh2ZXJib3NlKX0gewotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgREVGSU5JTkcgTU9ERSBTRVRUSU5HU1xuIgotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjXG4iCi0gICAgICAgICAgICB9Ci0gICAKLSAgICAgICAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICAgICAgICMgU2V0IGRvbid0IHVzZSBjZWxsczsgZGlzYWJsZSBzb21lIChjbG9jayBidWZmZXJzLCBzdHJvbmcgYnVmZmVycywgZXRjLiksCi0gICAgICAgICAgICAjIGVuYWJsZSBvdGhlcnMgdGhhdCBtYXkgaGF2ZSAiZG9udF91c2UgdHJ1ZSIgaW4gdGhlIGxpYnJhcnkgKGxpa2UgZGVsYXkgY2VsbHMKLSAgICAgICAgICAgICMgZm9yIGhvbGQgZml4aW5nKQotICAgICAgICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgICAgICAgc2V0IGNvbW1hbmQgIiIKLSAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhkb250X3VzZV9saXN0KV19IHsKLSAgICAgICAgICAgICAgIGZvcmVhY2ggY2VsbCAkdmFycyhkb250X3VzZV9saXN0KSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAic2V0RG9udFVzZSAkY2VsbCB0cnVlXG4iCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKGRvbnRfdXNlX2xpc3QpXG4iCi0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMoZG9udF91c2VfbGlzdClcbiIKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhkb250X3VzZV9maWxlKV0gJiYgW2ZpbGUgZXhpc3RzICR2YXJzKGRvbnRfdXNlX2ZpbGUpXX0gewotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgInNvdXJjZSAkdmFycyhkb250X3VzZV9maWxlKVxuIgotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhkb250X3VzZV9maWxlKVxuIgotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKGRvbnRfdXNlX2ZpbGUpXG4iCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnModXNlX2xpc3QpXX0gewotICAgICAgICAgICAgICAgZm9yZWFjaCBjZWxsICR2YXJzKHVzZV9saXN0KSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAic2V0RG9udFVzZSAkY2VsbCBmYWxzZVxuIgotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyh1c2VfbGlzdClcbiIKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyh1c2VfbGlzdClcbiIKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIHskY29tbWFuZCAhPSAiIn0gewotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHNldF9kb250X3VzZSAkY29tbWFuZF0KLSAgICAgICAgICAgIH0KLSAgIAotICAgICAgICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgICAgICAgIyBTZXQgbWF4aW11bSByb3V0aW5nIGxheWVycwotICAgICAgICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKG1heF9yb3V0ZV9sYXllcildfSB7Ci0gICAgICAgICAgICAgICBzZXQgY29tbWFuZCAic2V0TWF4Um91dGVMYXllciAkdmFycyhtYXhfcm91dGVfbGF5ZXIpXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksc2V0X21heF9yb3V0ZV9sYXllciAkY29tbWFuZF0KLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMobWF4X3JvdXRlX2xheWVyKVxuIgotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKG1heF9yb3V0ZV9sYXllcilcbiIKLSAgICAgICAgICAgIH0KLSAgIAotICAgICAgICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgICAgICAgIyBTZXQgZGVzaWduIG1vZGUKLSAgICAgICAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbbGluZGV4IFtGRl9FREk6OnNldF9kZXNpZ25fbW9kZV0gMF0KLSAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyBbbGluZGV4IFtGRl9FREk6OnNldF9kZXNpZ25fbW9kZV0gMV0KLSAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgW2xpbmRleCBbRkZfRURJOjpzZXRfZGVzaWduX21vZGVdIDJdCi0KLSAgICAgICAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICAgICAgICMgSW5zZXJ0IHdlbGx0YXBzIGFuZCBwcmUvcG9zdCBlbmRjYXBzCi0gICAgICAgICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAgICAgICBpZiB7KFtGRjo6Z2V0X2J5X3N1ZmZpeCB2YXJzICJ3ZWxsdGFwcyJdICE9ICIiKSB8fAotICAgICAgICAgICAgICAgICgoW0ZGOjpnZXRfYnlfc3VmZml4IHZhcnMgInByZV9lbmRjYXAiXSAhPSAiIikgJiYKLSAgICAgICAgICAgICAgICAgKFtGRjo6Z2V0X2J5X3N1ZmZpeCB2YXJzICJwb3N0X2VuZGNhcCJdICE9ICIiKSl9IHsKLSAgICAgICAgICAgICAgIHNldCBjb21tYW5kIFtGRl9FREk6Omluc2VydF93ZWxsdGFwc19lbmRjYXBzXQotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLGluc2VydF93ZWxsdGFwc19lbmRjYXBzICRjb21tYW5kXQotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyh3ZWxsdGFwcylcbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMocHJlX2VuZGNhcClcbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMocG9zdF9lbmRjYXApXG4iCi0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMod2VsbHRhcHMpXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhwcmVfZW5kY2FwKVxuIgotICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMocG9zdF9lbmRjYXApXG4iCi0gICAgICAgICAgICB9Ci0gICAKLSAgICAgICAgIH0gZWxzZSB7Ci0KLSAgICAgICAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICAgICAgICMgUGFydGl0aW9uIGluaXQgc3RlcAotICAgICAgICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgCi0gICAgICAgICAgICBzZXQgcHRuIFtmaWxlIHRhaWwgW3B3ZF1dCi0gICAgICAgICAgICBzZXQgdmFycyhkZXNpZ24pICRwdG4KLSAgICAgICAgICAgIHNldCBza2lwX2NwZiBmYWxzZQotICAgICAgICAgICAgc2V0IHNraXBfMTgwMSBmYWxzZQotICAgICAgICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgICAgICAgaWYge1tsc2VhcmNoICR2YXJzKHBhcnRpdGlvbl9saXN0KSAkcHRuXSA9PSAtMX0gewotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgICAgICAgIFRPUCAoJHB0bikgSU1QTEVNRU5UQVRJT04gRkxPV1xuIgotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4iCi0gICAgICAgICAgICAgICBpZiB7W2xpbmRleCBbc3BsaXQgJHZhcnModmVyc2lvbikgIi4iXSAgMF0gPD0gMTB9IHsKLSAgICAgICAgICAgICAgICAgIHNldCBjb21tYW5kICJsb2FkQ29uZmlnICRwdG4uY29uZiAwXG4iCi0gICAgICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoc2F2ZV9pbG1fbm9uX3NkY19maWxlKV19IHsKLSAgICAgICAgICAgICAgICAgICAgIHNldCB2YXJzKGlsbV9ub25fc2RjX2ZpbGUpICR2YXJzKHNhdmVfaWxtX25vbl9zZGNfZmlsZSkKLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJnbG9iYWwgcmRhX0lucHV0XG4iCi0gICAgICAgICAgICAgICAgICBmb3JlYWNoIHBhcnQgJHZhcnMocGFydGl0aW9uX2xpc3QpIHsKLSAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgImxhcHBlbmQgcmRhX0lucHV0KHVpX2xlZmZpbGUpIC4uLyRwYXJ0LyRwYXJ0LmFudGVubmEubGVmXG4iCi0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiY29tbWl0Q29uZmlnXG4iCi0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksbG9hZF9jb25maWcgJGNvbW1hbmRdCi0gICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgaWYge1tzdHJpbmcgY29tcGFyZSAkdmFycyhkYnNfZm9ybWF0KSAib2EiXT09MH0gewotICAgICAgICAgICAgICAgICAgICBzZXQgY29tbWFuZCAicmVzdG9yZURlc2lnbiAtY2VsbFZpZXcgXFtsaXN0ICR2YXJzKG9hX3BhcnRpdGlvbl9saWIpICRwdG4gbGF5b3V0XF1cbiIKLSAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICBpZiB7JHZhcnModXNlX2ZsZXhtb2RlbHMpfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiB7JHZhcnMoZmxleG1vZGVsX2FzX3B0bil9IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIHtbbGluZGV4IFtzcGxpdCAkdmFycyh2ZXJzaW9uKSAiLiJdICAwXSA8IDE2fSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXQgY29tbWFuZCAicmVzdG9yZURlc2lnbiAke3B0bn1fcHJvdG9fZWNvLmVuYy5kYXQgJHB0blxuIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldCBjb21tYW5kICJyZXN0b3JlRGVzaWduICR7cHRufV9wcm90b19mdWxsLmVuYy5kYXQgJHB0blxuIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldCBjb21tYW5kICJyZXN0b3JlRGVzaWduIC4gJHB0blxuIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgImZmX3JlcGxhY2VfZmxleG1vZGVsX3dpdGhfZnVsbF9uZXRsaXN0XG4iCi0gICAgICAgICAgICAgICAgICAgICAgICB9IAotICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgInJlc3RvcmVEZXNpZ24gLiAkcHRuXG4iCi0gICAgICAgICAgICAgICAgICAgICAgfSAKLSAgICAgICAgICAgICAgICAgICAgICBpZiB7JHZhcnMoY2FwdHVyZV9tZXRyaWNzKX0gewotICAgICAgICAgICAgICAgICAgICAgICAgIGlmIHtbbGluZGV4IFtzcGxpdCAkdmFycyh2ZXJzaW9uKSAiLiJdICAwXSA+IDEzfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJ1bTo6ZW5hYmxlX21ldHJpY3MgLW9uXG4iCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJ1bTo6cHVzaF9zbmFwc2hvdF9zdGFja1xuIgotICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICB9Ci0jICAgICAgICAgICAgICAgZm9yZWFjaCBwYXJ0ICR2YXJzKHBhcnRpdGlvbl9saXN0KSB7Ci0jICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiaWYge1xbZmlsZSBleGlzdHMgLi4vJHBhcnQvJHBhcnQuYW50ZW5uYS5sZWZcXX0ge1xuIgotIyAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgImxvYWRMZWZGaWxlIC4uLyRwYXJ0LyRwYXJ0LmFudGVubmEubGVmXG4iCi0jICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAifVxuIgotIyAgICAgICAgICAgICAgIH0KLSMgICAgICAgICAgICAgICBzZXQgY29tbWFuZCAic291cmNlICRwdG4uZ2xvYmFsc1xuIgotIyAgICAgICAgICAgICAgIGZvcmVhY2ggcGFydCAkdmFycyhwYXJ0aXRpb25fbGlzdCkgewotIyAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgImxhcHBlbmQgaW5pdF9sZWZfZmlsZSAuLi8kcGFydC8kcGFydC5hbnRlbm5hLmxlZlxuIgotIyAgICAgICAgICAgICAgIH0KLSMgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiaW5pdF9kZXNpZ25cbiIKLSAgICAgICAgICAgICAgICAgIH0gCi0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCkscmVzdG9yZV9kZXNpZ24gJGNvbW1hbmRdCi0gICAgICAgICAgICAgICAgICBzZXQgcmVzdG9yZV9kZXNpZ24gdHJ1ZQotCi0gICAgICAgICAgICAgICAgICBpZiB7JHZhcnModG9wKX0gewotICAgICAgICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKHZpZXdfZGVmaW5pdGlvbl90Y2wpXX0gewotICAgICAgICAgICAgICAgICAgICAgICAgc2V0IG1tbWNfZmlsZSBbZmlsZSBub3JtYWxpemUgJHZhcnModmlld19kZWZpbml0aW9uX3RjbCldCi0gICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICAgc2V0IG1tbWNfZmlsZSBbZmlsZSBub3JtYWxpemUgJHZhcnMoc2NyaXB0X2Rpcikvdmlld19kZWZpbml0aW9uLnRjbF0KLSAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgIGlmIHskdmFycyhlbmFibGVfZmxleGlsbSl9IHsgCi0gICAgICAgICAgICAgICAgICAgICAgICBzZXQgY29tbWFuZCAiIgotICAgICAgICAgICAgICAgICAgICAgICAgc2V0IGRpcnMgIiIKLSAgICAgICAgICAgICAgICAgICAgICAgIGZvcmVhY2ggYmxvY2sgJHZhcnMocGFydGl0aW9uX2xpc3QpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBkaXJzICJcXFxuICAgLWZsZXhfaWxtIHske2Jsb2NrfSAuLi8ke2Jsb2NrfS8ke2Jsb2NrfS5mbGV4aWxtfSIKLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgIHNldCBjb21tYW5kICJjb21taXRfbW9kdWxlX21vZGVsICRkaXJzXFxcbiIKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhjcGZfZmlsZSldfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiICAgLW1tbWNfZmlsZSAkdmFycyhtbW1jX2ZpbGUpXFxcbiIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgICAtY3BmX2ZpbGUgJHZhcnMoY3BmX2ZpbGUpXG4iCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBzZXQgc2tpcF9jcGYgdHJ1ZSAgCi0gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2VpZiB7W2luZm8gZXhpc3RzIHZhcnMoaWVlZTE4MDFfZmlsZSldfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiICAgLW1tbWNfZmlsZSAkdmFycyhtbW1jX2ZpbGUpXFxcbiIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgICAtMTgwMSAkdmFycyhpZWVlMTgwMV9maWxlKVxuIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0IHNraXBfMTgwMSB0cnVlICAKLSAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiICAgLW1tbWNfZmlsZSAkdmFycyhtbW1jX2ZpbGUpXG4iCi0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksY29tbWl0X21vZHVsZV9tb2RlbCAkY29tbWFuZF0KLSAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyBQQVJUSVRJT04gKCRwdG4pIElNUExFTUVOVEFUSU9OIEZMT1dcbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIgotICAgICAgICAgICAgICAgaWYge1tsaW5kZXggW3NwbGl0ICR2YXJzKHZlcnNpb24pICIuIl0gIDBdIDw9IDEwfSB7Ci0gICAgICAgICAgICAgICAgICBzZXQgY29tbWFuZCAibG9hZENvbmZpZyAkcHRuLmNvbmZcbiIKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxsb2FkX2NvbmZpZyAkY29tbWFuZF0KLSAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICBpZiB7JHZhcnModXNlX2ZsZXhtb2RlbHMpfSAgewotICAgICAgICAgICAgICAgICAgICAgaWYgeyR2YXJzKGZsZXhtb2RlbF9hc19wdG4pfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiB7W2xpbmRleCBbc3BsaXQgJHZhcnModmVyc2lvbikgIi4iXSAgMF0gPCAxNn0gewotICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgInJlc3RvcmVEZXNpZ24gJHtwdG59X3Byb3RvX2Vjby5lbmMuZGF0ICRwdG5cbiIKLSAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICBzZXQgY29tbWFuZCAicmVzdG9yZURlc2lnbiAke3B0bn1fcHJvdG9fZnVsbC5lbmMuZGF0ICRwdG5cbiIKLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7IAotICAgICAgICAgICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgInJlc3RvcmVEZXNpZ24gLiAkcHRuXG4iCi0gICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiZmZfcmVwbGFjZV9mbGV4bW9kZWxfd2l0aF9mdWxsX25ldGxpc3RcbiIKLSAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICBpZiB7W3N0cmluZyBjb21wYXJlICR2YXJzKGRic19mb3JtYXQpICJvYSJdPT0wfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgIHNldCBjb21tYW5kICJyZXN0b3JlRGVzaWduIC1jZWxsVmlldyBcW2xpc3QgJHZhcnMob2FfcGFydGl0aW9uX2xpYikgJHB0biBsYXlvdXRcXVxuIgotICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHNldCBjb21tYW5kICJyZXN0b3JlRGVzaWduIC4gJHB0blxuIgotICAgIyAgICAgICAgICAgICAgICAgIHNldCBjb21tYW5kICJzb3VyY2UgJHB0bi5nbG9iYWxzXG4iCi0gICAjICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgImluaXRfZGVzaWduXG4iCi0gICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCkscmVzdG9yZV9kZXNpZ24gJGNvbW1hbmRdCi0gICAgICAgICAgICAgICAgICBzZXQgcmVzdG9yZV9kZXNpZ24gdHJ1ZQotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBpZiB7JHZhcnMoY2FwdHVyZV9tZXRyaWNzKX0gewotICAgICAgICAgICAgICAgaWYge1tsaW5kZXggW3NwbGl0ICR2YXJzKHZlcnNpb24pICIuIl0gIDBdID4gMTN9IHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAidW06OmVuYWJsZV9tZXRyaWNzIC1vblxuIgotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJ1bTo6cHVzaF9zbmFwc2hvdF9zdGFja1xuIgotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjpzb3VyY2VfcGx1ZyBhbHdheXNfc291cmNlX3RjbF0KLSAgIAotICAgICAgICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgICAgICAgIyBMb2FkIGZsb29ycGxhbiBmaWxlIG9yIERFRjsgdXNlIGRlZkluIHRvIGxvYWQgYSBERUYgZmlsZQotICAgICAgICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgICAgICAgaWYge1tzdHJpbmcgY29tcGFyZSAkdmFycyhkYnNfZm9ybWF0KSAiZmUiXT09MH0gewotICAgICAgICAgICAgICAgaWYgeyFbaW5mbyBleGlzdHMgcmVzdG9yZV9kZXNpZ25dfSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgImxvYWRGUGxhbiAkcHRuLmZwXG4iCi0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgInNvdXJjZSAkcHRuLm1vZGVcbiIKLSAgICAgICAgICAgICAgICAgIGlmIHtbZmlsZSBleGlzdHMgJHB0bi5zY2FuLmRlZl19IHsKLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiUHV0cyBcIjxGRj4gTE9BRElORyBTQ0FOIERFRiBGSUxFICRwdG4uc2Nhbi5kZWZcIlxuIgotICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJkZWZJbiAkcHRuLnNjYW4uZGVmXG4iCi0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAKLSAgICAgICAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICAgICAgICMgT3ZlcnJpZGUgbWF4aW11bSByb3V0aW5nIGxheWVyIGlmIGRlZmluZWQgZm9yIHRoZSBwYXJ0aXRpb24KLSAgICAgICAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkcHRuLG1heF9yb3V0ZV9sYXllcildfSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgInNldE1heFJvdXRlTGF5ZXIgJHZhcnMoJHB0bixtYXhfcm91dGVfbGF5ZXIpXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKG1heF9yb3V0ZV9sYXllcilcbiIKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhtYXhfcm91dGVfbGF5ZXIpXG4iCi0gICAgICAgICAgICB9Ci0gICAKLSAgICAgICAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICAgICAgICMgU3BlY2lmeSB0aGUgSUxNIG1vZGVscyBmb3IgdGhlIHRvcCBwYXJ0aXRpb24KLSAgICAgICAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICAgICAgIGlmICR2YXJzKHRvcCkgewotICAgICAgICAgICAgICAgaWYgeyEkdmFycyhlbmFibGVfZmxleGlsbSl9IHsKLSAgICAgICAgICAgICAgICAgIHNldCBjb21tYW5kICIiCi0gICAgICAgICAgICAgICAgICBmb3JlYWNoIHBhcnQgJHZhcnMocGFydGl0aW9uX2xpc3QpIHsKLSAgICAgICAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkcGFydCxpbG1fZGlyKV0gJiYgKCR2YXJzKGNvZGVnZW4pIHx8IFtmaWxlIGlzZGlyZWN0b3J5ICR2YXJzKCRwYXJ0LGlsbV9kaXIpXSl9IHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIHtbbGluZGV4IFtzcGxpdCAkdmFycyh2ZXJzaW9uKSAiLiJdICAwXSA8PSAxMH0gewotICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgInNwZWNpZnlJbG0gLWNlbGwgJHBhcnQgLWRpciAkdmFycygkcGFydCxpbG1fZGlyKVxuIgotICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgaWYge1tzdHJpbmcgY29tcGFyZSAtbm9jYXNlICR2YXJzKGRic19mb3JtYXQpICJvYSJdPT0wfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAic3BlY2lmeUlsbSAtY2VsbCAkcGFydFxuIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJzcGVjaWZ5SWxtIC1jZWxsICRwYXJ0IC1kaXIgJHZhcnMoJHBhcnQsaWxtX2RpcilcbiIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiB7W2xpbmRleCBbc3BsaXQgJHZhcnModmVyc2lvbikgIi4iXSAgMF0gPD0gMTB9IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJzcGVjaWZ5SWxtIC1jZWxsICRwYXJ0IC1kaXIgLi4vJHBhcnQvJHBhcnQuaWxtXG4iCi0gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICAgICBpZiB7W3N0cmluZyBjb21wYXJlIC1ub2Nhc2UgJHZhcnMoZGJzX2Zvcm1hdCkgIm9hIl09PTB9IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJzcGVjaWZ5SWxtIC1jZWxsICRwYXJ0XG4iCi0gICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgInNwZWNpZnlJbG0gLWNlbGwgJHBhcnQgLWRpciAuLi8kcGFydC8kcGFydC5pbG1cbiIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxzZXRJbG1Nb2RlICJzZXRJbG1Nb2RlIC1rZWVwRmxhdHRlbiB0cnVlXG4iXQotICAgICAgICAgICAgICAgICAgaWYgeyRjb21tYW5kICE9ICIifSB7Ci0gICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksc3BlY2lmeV9pbG0gJGNvbW1hbmRdCi0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICBzZXQgY29tbWFuZCAiIgotICAgICAgICAgICAgICAgICAgZm9yZWFjaCBwYXJ0ICR2YXJzKHBhcnRpdGlvbl9saXN0KSB7Ci0gICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJpZiB7XFtmaWxlIGV4aXN0cyAuLi8kcGFydC8kcGFydC5hbnRlbm5hLmxlZlxdfSB7XG4iCi0gICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgICBsb2FkTGVmRmlsZSAuLi8kcGFydC8kcGFydC5hbnRlbm5hLmxlZlxuIgotICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAifVxuIgotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgaWYgeyRjb21tYW5kICE9ICIifSB7Ci0gICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksbG9hZF9sZWZfZmlsZSAkY29tbWFuZF0KLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIGlmIHskdmFycyhpbG0pICYmIFtpbmZvIGV4aXN0cyB2YXJzKGlsbV9ub25fc2RjX2ZpbGUpXX0gewotICAgICAgICAgICAgICAgICAgICAgaWYge1tmaWxlIGV4aXN0cyAkdmFycyhpbG1fbm9uX3NkY19maWxlKV19IHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIHtbbGluZGV4IFtzcGxpdCAkdmFycyh2ZXJzaW9uKSAiLiJdICAwXSA8PSAxMH0gewotICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgImxvYWRUaW1pbmdDb24gLWlsbU5vblNkY0ZpbGUgJHZhcnMoaWxtX25vbl9zZGNfZmlsZSlcbiIKLSAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgInNldElsbU5vblNkY0NvbnN0cmFpbnRGaWxlICR2YXJzKGlsbV9ub25fc2RjX2ZpbGUpXG4iCi0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksbG9hZF9pbG1fbm9uX3NkY19maWxlICRjb21tYW5kXQotICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgW0ZGX0VESTo6aW5pdGlhbGl6ZV90aW1pbmcgbW1tY10KLSAgICMgICAgICAgICAgICAgICBpZiB7IVtpbmZvIGV4aXN0cyB2YXJzKGNwZl9maWxlKV19IHsKLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxpbml0aWFsaXplX3RpbWluZyAkY29tbWFuZF0KLSAgICMgICAgICAgICAgICAgICB9IGVsc2UgewotICAgIyAgICAgICAgICAgICAgICAgIHNldCBkZWZlcl9jb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxpbml0aWFsaXplX3RpbWluZyAkY29tbWFuZF0gCi0gICAjICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgICAgICAgIyBMb2FkIHBvd2VyIGludGVudCAoaWYgaXQgaXMgZGVmaW5lZCkKLSAgICAgICAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICAgICAgIGlmIHsoW2luZm8gZXhpc3RzIHZhcnMoY3BmX2ZpbGUpXSkgJiYgKCR2YXJzKGNwZl9maWxlKSAhPSAiIikgJiYgISRza2lwX2NwZn0gewotICAgICAgICAgICAgICAgc2V0IHNhdmUgJHZhcnMoY3BmX2ZpbGUpCi0gICAgICAgICAgICAgICBpZiB7ISR2YXJzKHRvcCl9IHsKLSAgICAgICAgICAgICAgICAgIHNldCB2YXJzKGNwZl9maWxlKSAiJHB0bi5jcGYiCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICBpZiB7W2xpbmRleCBbc3BsaXQgJHZhcnModmVyc2lvbikgIi4iXSAgMF0gPCAxNH0gewotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRl9FREk6OmxvYWRfcG93ZXJfaW50ZW50XQotICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkZfTk9WVVM6OmxvYWRfcG93ZXJfaW50ZW50XQotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgc2V0IHZhcnMoY3BmX2ZpbGUpICRzYXZlIAotICAgICAgICAgICAgfSBlbHNlaWYge1tpbmZvIGV4aXN0cyB2YXJzKGllZWUxODAxX2ZpbGUpXSAmJiAhJHNraXBfMTgwMX0gewotICAgICAgICAgICAgICAgc2V0IHNhdmUgJHZhcnMoaWVlZTE4MDFfZmlsZSkKLSAgICAgICAgICAgICAgIGlmIHshJHZhcnModG9wKX0gewotIyAgICAgICAgICAgICAgICAgIHNldCB2YXJzKGllZWUxODAxX2ZpbGUpICIkcHRuLmNwZiIKLSAgICAgICAgICAgICAgICAgIHNldCB2YXJzKGNwZl9maWxlKSAiJHB0bi5jcGZkYiIKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIGlmIHtbbGluZGV4IFtzcGxpdCAkdmFycyh2ZXJzaW9uKSAiLiJdICAwXSA8IDE0fSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGX0VESTo6bG9hZF9wb3dlcl9pbnRlbnRdCi0gICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRl9OT1ZVUzo6bG9hZF9wb3dlcl9pbnRlbnRdCi0gICAgICAgICAgICAgICB9Ci0jICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgInJlYWRfcG93ZXJfaW50ZW50ICR2YXJzKGllZWUxODAxX2ZpbGUpIC0xODAxXG4iCi0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMoY3BmX2ZpbGUpXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhpZWVlMTgwMV9maWxlKVxuIgotICAgICAgICAgICAgfQotICAgICAgICAgfQotICAgICAgfQotCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAjIExvYWQgcG9zdC1pbml0aWFsaXphdGlvbiBwbHVnLWluIHNjcmlwdAotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6c291cmNlX3BsdWcgcG9zdF9pbml0X3RjbCAwXQotCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAjIENoZWNrIHByZS1wbGFjZSB0aW1pbmcgKGFuZCBnZW5lcmF0ZSB0aW1pbmcgZ3JhcGggZm9yIHBsYWNlbWVudCkKLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgIGlmIHsoJHZhcnMoc3RlcCkgIT0gIm1vZGVsX2dlbiIpICYmICgkdmFycyhzdGVwKSAhPSAicGFydGl0aW9uX3BsYWNlIikgJiYgKCR2YXJzKHN0ZXApICE9ICJwcm90b3R5cGUiKX0gewotICAgICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycyh0aW1lX2Rlc2lnbl9vcHRpb25zLHNldHVwKV19IHsKLSAgICAgICAgICAgIHNldCBjb21tYW5kICJ0aW1lRGVzaWduIC1wcmVwbGFjZSAtcHJlZml4IHByZXBsYWNlIC1vdXREaXIgJHZhcnMocnB0X2RpcilcbiIKLSAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBzZXQgY29tbWFuZCBbZm9ybWF0ICJ0aW1lRGVzaWduIC1wcmVwbGFjZSAtcHJlZml4IHByZXBsYWNlIC1vdXREaXIgJHZhcnMocnB0X2RpcikgJXNcbiIgJHZhcnModGltZV9kZXNpZ25fb3B0aW9ucyxzZXR1cCldCi0gICAgICAgICB9Ci0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksdGltZV9kZXNpZ24gJGNvbW1hbmRdCi0gICAgICB9Ci0KLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICMgQ2hlY2sgZGF0YSBzZXR1cCAoc2FuaXR5IGNoZWNrKQotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgc2V0IGNvbW1hbmQgImNoZWNrRGVzaWduIC1hbGxcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxjaGVja19kZXNpZ24gJGNvbW1hbmRdCi0KLSAgICAgIGlmIHshJHZhcnMoaWxtKX0gewotICAgICAgICAgc2V0IGNvbW1hbmQgImNoZWNrX3RpbWluZ1xuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLGNoZWNrX3RpbWluZyAkY29tbWFuZF0KLSAgICAgIH0KLQotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgIyBHZW5lcmF0ZSByZXBvcnRzCi0gICAgICAjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gICAgICAjIFJlcG9ydCBwb3dlciBkb21haW4gZm9yIGxldmVsLXNoaWZ0ZXJzLCBpc29sYXRpb24gYW5kIHBnIG5ldHMKLSAgICAgICMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSAgICAgIGlmIHtbRkY6OmlzX2xwX2Zsb3ddICYmIChbaW5mbyBleGlzdHMgdmFycyhwb3dlcl9kb21haW5zKV0gJiYgKFtsbGVuZ3RoICR2YXJzKHBvd2VyX2RvbWFpbnMpXSA+IDEpKX0gewotIyAgICAgICAgIHNldCBjb21tYW5kICJzZXQgZG9tYWlucyBcW0ZGX0VESTo6Z2V0X3Bvd2VyX2RvbWFpbnNfY29kZVxdXG4iCi0gICAgICAgICBzZXQgY29tbWFuZCBbRkZfRURJOjpnZXRfcG93ZXJfZG9tYWluc19jb2RlXQotCi0gICAgICAgICBhcHBlbmQgY29tbWFuZCAiZm9yZWFjaCBkb21haW4gXCRkb21haW5zIHtcbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgICBzZXQgZG9tYWluX2ZpbGUgXFtyZWdzdWIgLWFsbCB7XFtcXVxbPD58XFwvPyo6XF19IFwkZG9tYWluIF9cXVxuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAgIHJlcG9ydFBvd2VyRG9tYWluIC1wb3dlckRvbWFpbiBcJGRvbWFpbiAtZmlsZSAkdmFycyhycHRfZGlyKS9cJHtkb21haW5fZmlsZX0ucnB0IC1zaGlmdGVyIC1pc29JbnN0IC1wZ05ldFxuIgotCi0gICAgICAjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gICAgICAjIFJlcG9ydCBsaWJyYXJ5IGJpbmRpbmcgZm9yIHBvd2VyIGRvbWFpbnMKLSAgICAgICMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgICBmb3JlYWNoIGFuYWx5c2lzX3ZpZXcgXFthbGxfc2V0dXBfYW5hbHlzaXNfdmlld3NcXSB7XG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZCAiICAgICAgc2V0X2RlZmF1bHRfdmlldyAtc2V0dXAgXCRhbmFseXNpc192aWV3XG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZCAiICAgICAgcmVwb3J0UG93ZXJEb21haW4gLXBvd2VyRG9tYWluIFwkZG9tYWluIC1maWxlICR2YXJzKHJwdF9kaXIpL1wke2RvbWFpbl9maWxlfV9cJGFuYWx5c2lzX3ZpZXcucnB0IC1iaW5kTGliXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZCAiICAgfVxuIgotCi0gICAgICAgICBhcHBlbmQgY29tbWFuZCAiICAgICBzZXRBbmFseXNpc01vZGUgLWNoZWNrVHlwZSBob2xkXG4iCi0KLSAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgICBmb3JlYWNoIGFuYWx5c2lzX3ZpZXcgXFthbGxfaG9sZF9hbmFseXNpc192aWV3c1xdIHtcbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgICAgICBzZXRfZGVmYXVsdF92aWV3IC1ob2xkIFwkYW5hbHlzaXNfdmlld1xuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAgICAgIHJlcG9ydFBvd2VyRG9tYWluIC1wb3dlckRvbWFpbiBcJGRvbWFpbiAtZmlsZSAkdmFycyhycHRfZGlyKS9cJHtkb21haW5fZmlsZX1fXCRhbmFseXNpc192aWV3LnJwdCAtYmluZExpYlxuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAgIH1cbiIKLQotICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAgIHNldEFuYWx5c2lzTW9kZSAtY2hlY2tUeXBlIHNldHVwXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZCAifVxuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHJlcG9ydF9wb3dlcl9kb21haW5zICRjb21tYW5kXQotICAgICAgICAgaWYgeyR2YXJzKGZsb3cpID09Im1tbWMifSB7Ci0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgInNldF9kZWZhdWx0X3ZpZXcgLXNldHVwICR2YXJzKGRlZmF1bHRfc2V0dXBfdmlldykgLWhvbGQgJHZhcnMoZGVmYXVsdF9ob2xkX3ZpZXcpXG4iCi0gICAgICAgICB9Ci0gICAgICB9Ci0KLSAgICAgIGlmIHtbaW5mbyBleGlzdHMgY29tbWVudHNdfSB7Ci0gICAgICAgICBpZiB7JGNvbW1lbnRzID09ICIifSB7Ci0gICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoY29tbWVudHMpXX0gewotICAgICAgICAgICAgICAgdW5zZXQgdmFycyhjb21tZW50cykKLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBzZXQgdmFycyhjb21tZW50cykgJGNvbW1lbnRzCi0gICAgICAgICB9Ci0gICAgICB9Ci0gICAgICBpZiB7W2luZm8gZXhpc3RzIHVjb21tZW50c119IHsKLSAgICAgICAgIGlmIHskdWNvbW1lbnRzID09ICIifSB7Ci0gICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnModWNvbW1lbnRzKV19IHsKLSAgICAgICAgICAgICAgIHVuc2V0IHZhcnModWNvbW1lbnRzKQotICAgICAgICAgICAgfQotICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHNldCB2YXJzKHVjb21tZW50cykgJHVjb21tZW50cwotICAgICAgICAgfQotICAgICAgfQotICAgICAgc2V0IGZjb21tYW5kcyBbRkZfRURJOjppbnNlcnRfY29tbWVudHNdIAotICAgICAgYXBwZW5kIGZjb21tYW5kcyAkY29tbWFuZHMKLQotICAgICAgaWYgeyR2YXJzKGNvZGVnZW4pfSB7Ci0gICAgICAgICByZXR1cm4gJGZjb21tYW5kcwotICAgICAgfSBlbHNlIHsKLSAgICAgICAgICB1cGxldmVsICMwIGV2YWwgJGNvbW1hbmRzCi0gICAgICB9Ci0KLSAgIH0KLQotICAgcHJvYyBydW5fcGxhY2Uge3tmb3JtYXQgMX19IHsKLQotICAgICAgZ2xvYmFsIHZhcnMKLSAgICAgIGdsb2JhbCBlbnYKLSAgICAgIGdsb2JhbCBlcnJvcnMKLQotICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKHBhcmVudCldICYmICgkdmFycyhwYXJlbnQpID09ICJyYyIpfSB7Ci0gICAgICAgICBzZXQgdmFycyhzdGVwKSByY3AKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgICBpZiB7JHZhcnMoc3RlcCkgIT0gInBhcnRpdGlvbl9wbGFjZSJ9IHsKLSAgICAgICAgICAgIHNldCB2YXJzKHN0ZXApIHBsYWNlCi0gICAgICAgICB9Ci0gICAgICB9Ci0gICAgICBzZXQgY29tbWFuZHMgIiIKLSMgICAgICBhcHBlbmQgY29tbWFuZHMgInNldCB2YXJzKHN0ZXApICR2YXJzKHN0ZXApXG4iCi0KLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICMgSW5pdGlhbGl6ZSBzdGVwIC4uLgotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgc2V0IGNvbW1hbmQgW0ZGX0VESTo6aW5pdGlhbGl6ZV9zdGVwIHBsYWNlXQotICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRl9FREk6Omluc2VydF9jb21tZW50c10gCi0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksaW5pdGlhbGl6ZV9zdGVwICRjb21tYW5kXQotCi0gICAgICBhcHBlbmQgY29tbWFuZHMgIlB1dHMgXCI8RkY+IFJVTk5JTkcgUExBQ0VNRU5UIC4uLlwiXG4iCi0KLSAgICAgIGlmIHskdmFycyh2ZXJib3NlKX0gewotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgUlVOTklORyBQTEFDRU1FTlRcbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiI1xuIgotICAgICAgfQotCi0gICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMocGFydGl0aW9uX2xpc3QpXSAmJiAoJHZhcnMoc3RlcCkgIT0gInBhcnRpdGlvbl9wbGFjZSIpICYmIFwKLSAgICAgICAgICAoKFtsc2VhcmNoICR2YXJzKHBhcnRpdGlvbl9saXN0KSAkdmFycyhkZXNpZ24pXSA9PSAtMSkgJiYgJHZhcnMoZW5hYmxlX2ZsZXhpbG0pKX0gewotICAgICAgICAgc2V0IGNvbW1hbmQgIiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kICJzZXRIaWVyTW9kZSAtb3B0U3RhZ2UgcHJlQ1RTXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksc2V0X2hpZXJfbW9kZSAkY29tbWFuZF0KLSAgICAgICAgICAgIAotICAgICAgICAgc2V0IGNvbW1hbmQgIiIKLSAgICAgICAgIGZvcmVhY2ggYmxvY2sgJHZhcnMocGFydGl0aW9uX2xpc3QpIHsKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJzZXRQdG5QaW5TdGF0dXMgLWNlbGwgJGJsb2NrIC1waW4gKiAtc3RhdHVzIHVucGxhY2VkXG4iCi0gICAgICAgICB9Ci0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksc2V0X3B0bl9waW5fc3RhdHVzICRjb21tYW5kXQotCi0gICAgICAgICBzZXQgY29tbWFuZCAiIgotICAgICAgICAgaWYge1tsaW5kZXggW3NwbGl0ICR2YXJzKHZlcnNpb24pICIuIl0gIDBdIDwgMTZ9IHsKLSAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgInNldFRyaWFsUm91dGVNb2RlIC1ob25vclBpbiBmYWxzZSAtaGFuZGxlUGFydGl0aW9uQ29tcGxleCB0cnVlXG4iCi0gICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxzZXRfdHJpYWxfcm91dGVfbW9kZTEgJGNvbW1hbmRdCi0gICAgICAgICB9IGVsc2UgewotICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAic2V0Um91dGVNb2RlIC1lYXJseUdsb2JhbFJvdXRlUGFydGl0aW9uSG9ub3JGZW5jZSAuIC1lYXJseUdsb2JhbFJvdXRlUGFydGl0aW9uSG9ub3JQaW4ge31cbiIKLSAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHNldF9yb3V0ZV9tb2RlMSAkY29tbWFuZF0KLSAgICAgICAgIH0KLSAgICAgICAgIAotICAgICAgICAgc2V0IGNvbW1hbmQgIiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kICJzZXRPcHRNb2RlIC1oYW5kbGVQYXJ0aXRpb25Db21wbGV4IHRydWVcbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxzZXRfb3B0X21vZGUgJGNvbW1hbmRdCi0gICAgICAgICAKLSAgICAgIH0KLQotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgIyBMb2FkIG9wdGlvbmFsIHByZSBwbGFjZW1lbnQgZmlsZSAocGx1Zy1pbikKLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLQotICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6c291cmNlX3BsdWcgcHJlX3BsYWNlX3RjbF0KLQotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgIyBSdW4gc3RhbmRhcmQgY2VsbCBwbGFjZW1lbnQgb3IgbG9hZCBwbGFjZW1lbnQgcGx1Zy1pbgotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCi0gICAgICBzZXQgY29tbWFuZCAiIgotICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKHBsYWNlX3RjbCldfSB7Ci0gICAgICAgICAgaWYge1tmaWxlIGV4aXN0cyAkdmFycyhwbGFjZV90Y2wpXX0gewotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgW0ZGOjpzb3VyY2VfcGx1ZyBwbGFjZV90Y2xdCi0gICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHNldCBlcnJvcnMoJHZhcnMoZXJyb3JfY291bnQpKSAiUGx1Zy1pbiB2YXJzKHBsYWNlX3RjbCkgZGVmaW5lZCBidXQgdGhlIGZpbGUgZG9lcyBub3QgZXhpc3QiCi0gICAgICAgICAgICBpbmNyIHZhcnMoZXJyb3JfY291bnQpCi0jICAgICAgICAgICAgc2V0IHZhcnMoYWJvcnQpIDEKLSAgICAgICAgICB9Ci0gICAgICB9IGVsc2UgewotICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKHNkcF9maWxlcyldfSB7Ci0gICAgICAgICAgICBmb3JlYWNoIGZpbGUgJHZhcnMoc2RwX2ZpbGVzKSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiI3JlYWRTZHBGaWxlIC1maWxlICRmaWxlIC1oaWVyUGF0aCA8aW5zdGFuY2U+IC1vcmlnaW4gPHggeT4gLWxlZnRPdmVyR3JvdXAgPHRydWUgfCBmYWxzZT5cbiIKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICIjcGxhbkRlc2lnbiAtdXNlU2RwR3JvdXBcbiIKLSAgICAgICAgIH0KLQotICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKHBhcmVudCldICYmICgkdmFycyhwYXJlbnQpID09ICJyYyIpfSB7Ci0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAicGxhY2VEZXNpZ24gXG4iCi0gICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgaWYgeyR2YXJzKHBsYWNlX29wdF9kZXNpZ24pICYmICgkdmFycyhzdGVwKSAhPSAicGFydGl0aW9uX3BsYWNlIil9IHsKLSMgICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoaGllcildfSB7Ci0jICAgICAgICAgICAgICAgICAgaWYgeygkdmFycyh0b3ApICYmICR2YXJzKGVuYWJsZV9mbGV4aWxtKSl9IHsKLSMgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAicGxhY2VEZXNpZ24gIgotIyAgICAgICAgICAgICAgICAgICAgIGlmIHtbbGluZGV4IFtzcGxpdCAkdmFycyh2ZXJzaW9uKSAiLiJdICAwXSA8IDEzfSB7Ci0jICAgICAgICAgICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGluX3BsYWNlX29wdCldICYmICR2YXJzKGluX3BsYWNlX29wdCl9IHsKLSMgICAgICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiIC1pblBsYWNlT3B0IgotIyAgICAgICAgICAgICAgICAgICAgICAgIH0KLSMgICAgICAgICAgICAgICAgICAgICB9Ci0jICAgICAgICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKG5vX3ByZV9wbGFjZV9vcHQpXSAmJiAkdmFycyhub19wcmVfcGxhY2Vfb3B0KX0gewotIyAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgLW5vUHJlUGxhY2VPcHQiCi0jICAgICAgICAgICAgICAgICAgICAgfQotIyAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJcbiIKLSMgICAgICAgICAgICAgICAgICB9IGVsc2UgewotIyAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJwbGFjZV9vcHRfZGVzaWduIC1vdXRfZGlyICR2YXJzKHJwdF9kaXIpIC1wcmVmaXggJHZhcnMoc3RlcClcbiIKLSMgICAgICAgICAgICAgICAgICB9Ci0jICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJwbGFjZV9vcHRfZGVzaWduIC1vdXRfZGlyICR2YXJzKHJwdF9kaXIpIC1wcmVmaXggJHZhcnMoc3RlcClcbiIKLSMgICAgICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIH0gZWxzZSB7IAotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgInBsYWNlRGVzaWduICIKLSAgICAgICAgICAgICAgIGlmIHtbbGluZGV4IFtzcGxpdCAkdmFycyh2ZXJzaW9uKSAiLiJdICAwXSA8IDEzfSB7Ci0gICAgICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoaW5fcGxhY2Vfb3B0KV0gJiYgJHZhcnMoaW5fcGxhY2Vfb3B0KX0gewotICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAtaW5QbGFjZU9wdCIKLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIGlmIHsoJHZhcnMoc3RlcCkgPT0gInBhcnRpdGlvbl9wbGFjZSIpICYmICR2YXJzKHVzZV9mbGV4bW9kZWxzKX0geyAgCi0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiIC1ub1ByZVBsYWNlT3B0IgotICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhub19wcmVfcGxhY2Vfb3B0KV0gJiYgJHZhcnMobm9fcHJlX3BsYWNlX29wdCl9IHsKLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgLW5vUHJlUGxhY2VPcHQiCi0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiXG4iCi0gICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0gICAgICB9Ci0KLSAgICAgIGlmIHtbaW5mbyBleGlzdCB2YXJzKHBhcmVudCldICYmICgkdmFycyhwYXJlbnQpICE9ICJyYyIpICYmICAkdmFycyhyYykgJiYgJHZhcnMoZW5hYmxlX3JjcCl9IHsKLSAgICAgICAgIHNldCBjb21tYW5kICJlY29QbGFjZVxuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLGVjb19wbGFjZSAkY29tbWFuZF0KLSAgICAgIH0gZWxzZSB7Ci0jICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGhpZXJfY2FzZSldICYmIFtyZWdleHAgIl4xIiAkdmFycyhoaWVyX2Nhc2UpXX0gewotIyAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxwbGFjZV9kZXNpZ24gInBsYWNlRGVzaWduIC1ub1ByZVBsYWNlT3B0XG4iXQotIyAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCkscGxhY2VfZGVzaWduICRjb21tYW5kXQotIyAgICAgICAgIH0KLSAgICAgIH0KLQotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgIyBMb2FkIG9wdGlvbmFsIHBvc3QgcGxhY2VtZW50IGZpbGUgKHBsdWctaW4pCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0KLSAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OnNvdXJjZV9wbHVnIHBvc3RfcGxhY2VfdGNsIDBdCi0KLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICMgQWRkIHRpZSBjZWxscyBmb3IgbG9naWMgMC8xIG5ldHMKLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLQotICAgICAgc2V0IGNvbW1hbmQgW0ZGX0VESTo6YWRkX3RpZV9jZWxscyBmYWxzZSB0cnVlXQotICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLGFkZF90aWVfY2VsbHMgJGNvbW1hbmRdCi0KLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICMgQ2hlY2sgcG9zdC1wbGFjZSB0aW1pbmcKLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgIGlmIHshW3JlZ2V4cCAicGxhY2Vfb3B0X2Rlc2lnbiIgJGNvbW1hbmRzXSAmJiAoJHZhcnMoc3RlcCkgPT0gInBsYWNlIil9IHsKLSAgICAgICAgIGlmIHshW2luZm8gZXhpc3RzIHZhcnModGltZV9kZXNpZ25fb3B0aW9ucyxzZXR1cCldfSB7Ci0gICAgICAgICAgICBzZXQgY29tbWFuZCAidGltZURlc2lnbiAtcHJlY3RzIC1wcmVmaXggcGxhY2UgLW91dERpciAkdmFycyhycHRfZGlyKVxuIgotICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHNldCBjb21tYW5kIFtmb3JtYXQgInRpbWVEZXNpZ24gJXMgLXByZWN0cyAtcHJlZml4IHBsYWNlIC1vdXREaXIgJHZhcnMocnB0X2RpcilcbiIgJHZhcnModGltZV9kZXNpZ25fb3B0aW9ucyxzZXR1cCldCi0gICAgICAgICB9Ci0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksdGltZV9kZXNpZ24gJGNvbW1hbmRdCi0gICAgICB9Ci0jICAgICAgaWYgeygkdmFycyhzdGVwKSA9PSAicGFydGl0aW9uX3BsYWNlIikgJiYgJHZhcnModXNlX2ZsZXhtb2RlbHMpfSB7Ci0jICAgICAgICAgaWYgeyFbcmVnZXhwICJwcm90byIgJGNvbW1hbmRdfSB7Ci0jICAgICAgICAgICAgcmVnc3ViICJ0aW1lRGVzaWduIiAkY29tbWFuZCAidGltZURlc2lnbiAtcHJvdG8iIGNvbW1hbmQKLSMgICAgICAgICB9Ci0jICAgICAgfQotCi0gICAgICBpZiB7KCR2YXJzKHVzZXJfbW9kZSkgPT0gImhpZXIiKSAmJiAkdmFycyhwbGFjZV9vcHRfZGVzaWduKSAmJiAoJHZhcnMoc3RlcCkgIT0gInBhcnRpdGlvbl9wbGFjZSIpfSB7Ci0gICAgICAgICBzZXQgcHRuIFtmaWxlIHRhaWwgW3B3ZF1dCi0gICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMocGFydGl0aW9uX2xpc3QpXSAmJiAoW2xzZWFyY2ggJHZhcnMocGFydGl0aW9uX2xpc3QpICRwdG5dICE9IC0xKX0gewotICAgICAgICAgICAgaWYgeyR2YXJzKGVuYWJsZV9mbGV4aWxtKX0gewotICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgImNyZWF0ZUludGVyZmFjZUxvZ2ljIC1kaXIgJHB0bi5mbGV4aWxtIC11c2VUeXBlIGZsZXhJbG0gLW9wdFN0YWdlIHByZUNUU1xuIgotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLGNyZWF0ZV9mbGV4X2lsbSAkY29tbWFuZF0KLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBpZiB7ISR2YXJzKGJsYWNrX2JveCl9IHsKLSAgICAgICAgICAgICAgICAgIGlmIHtbc3RyaW5nIGNvbXBhcmUgLW5vY2FzZSAkdmFycyhkYnNfZm9ybWF0KSAiZmUiXT09MH0gewotICAgICAgICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgImNyZWF0ZUludGVyZmFjZUxvZ2ljIC1tb2RlbFR5cGUgdGltaW5nIC1kaXIgJHB0bi5pbG0gLWhvbGRcbiIKLSAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICBzZXQgY29tbWFuZCAiY3JlYXRlSW50ZXJmYWNlTG9naWMgLW1vZGVsVHlwZSB0aW1pbmcgLWNlbGx2aWV3IHskdmFycyhvYV9wYXJ0aXRpb25fbGliKSAkcHRuIGFic3RyYWN0fVxuIgotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgfSAKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxjcmVhdGVfaWxtICRjb21tYW5kXQotICAgICAgICAgICAgfQotICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIGlmIHskdmFycyhlbmFibGVfZmxleGlsbSl9IHsKLSAgICAgICAgICAgICAgIHNldCBjb21tYW5kICIiCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAic2F2ZURlc2lnbiAkdmFycyhkYnNfZGlyKS9wcmVjdHNfZmxleGlsbS5lbmMgLWNvbXByZXNzXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksc2F2ZV9kZXNpZ24gJGNvbW1hbmRdCi0KLSAgICAgICAgICAgICAgICMgUmUtYXNzaWduIHBpbnMgYmFzZWQgb24gbmV3IG5ldGxpc3QgY2hhbmdlcwotICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgIiIKLSAgICAgICAgICAgICAgIGlmIHtbbGluZGV4IFtzcGxpdCAkdmFycyh2ZXJzaW9uKSAiLiJdICAwXSA8IDE2fSB7Ci0gICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJ0cmlhbFJvdXRlXG4iCi0gICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSx0cmlhbF9yb3V0ZTEgJGNvbW1hbmRdCi0gICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiZWFybHlHbG9iYWxSb3V0ZVxuIgotICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksZWFybHlfZ2xvYmFsX3JvdXRlMSAkY29tbWFuZF0KLSAgICAgICAgICAgICAgIH0KLSAKLSAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgIiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJ0aW1lRGVzaWduIC1wcmVDVFMgLW91dERpciAkdmFycyhycHRfZGlyKSAtcHJlZml4IHByZWN0c19mbGV4aWxtXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksdGltZV9kZXNpZ25fZmxleGlsbSAkY29tbWFuZF0KLQotICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgIiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJhc3NpZ25QdG5QaW5cbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxhc3NpZ25fcHRuX3BpbiAkY29tbWFuZF0KLSAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgIiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJjaGVja1BpbkFzc2lnbm1lbnRcbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxjaGVja19waW5fYXNzaWdubWVudCAkY29tbWFuZF0KLSAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgIiIKLSAgICAgICAgICAgICAgIGlmIHtbbGluZGV4IFtzcGxpdCAkdmFycyh2ZXJzaW9uKSAiLiJdICAwXSA8IDE2fSB7Ci0gICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJzZXRUcmlhbFJvdXRlTW9kZSAtaG9ub3JQaW4gdHJ1ZVxuIgotICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksc2V0X3RyaWFsX3JvdXRlX21vZGUyICRjb21tYW5kXQotICAgICAgICAgICAgICAgICBzZXQgY29tbWFuZCAiIgotICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAidHJpYWxSb3V0ZVxuIgotICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksdHJpYWxfcm91dGUyICRjb21tYW5kXQotICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgInNldFJvdXRlTW9kZSAtZWFybHlHbG9iYWxSb3V0ZVBhcnRpdGlvbkhvbm9yUGluIC5cbiIKLSAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHNldF9yb3V0ZV9tb2RlMiAkY29tbWFuZF0KLSAgICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgIiIKLSAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgImVhcmx5R2xvYmFsUm91dGVcbiIKLSAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLGVhcmx5X2dsb2JhbF9yb3V0ZTIgJGNvbW1hbmRdCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgIAotIyAgICAgICAgICAgICAgIHNldCBjb21tYW5kICIiCi0jICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgInNldEJ1ZGdldGluZ01vZGUgLWVuYWJsZU1UQnVkZ2V0aW5nIHRydWVcbiIKLSMgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksc2V0X2J1ZGdldGluZ19tb2RlICRjb21tYW5kXQotICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICBzZXQgY29tbWFuZCAiIgotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgImRlcml2ZVRpbWluZ0J1ZGdldFxuIgotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLGRlcml2ZV90aW1pbmdfYnVkZ2V0ICRjb21tYW5kXQotICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICBzZXQgY29tbWFuZCAiIgotICAgICAgICAgICAgICAgc2V0IGRpcnMgIiIKLSAgICAgICAgICAgICAgIGZvcmVhY2ggYmxvY2sgJHZhcnMocGFydGl0aW9uX2xpc3QpIHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBkaXJzICJcXFxuICAgLWdvbGRlbkJsb2NrRGlyIC4uLyRibG9jay8kdmFycyhkYnNfZGlyKS9wbGFjZS5lbmMuZGF0ICIKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJ1cGRhdGVfcGFydGl0aW9uIFxcXG4gICAtZmxleElsbUVDTyAkZGlycyBcXFxuICAgLWZsZXhJbG1EaXIgLi4vLi4vUEFSVElUSU9OX0ZMRVhJTE0gXFxcbiAgIC1wb3N0RUNPU3VmZml4IHBvc3RFQ08gLXBpbkxvY2F0aW9uXG4iCi0jICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgInVwZGF0ZV9wYXJ0aXRpb24gXFxcbiAgIC1mbGV4SWxtRUNPICRkaXJzIFxcXG4gICAtZmxleElsbURpciAuLi8uLi9QQVJUSVRJT05fRkxFWElMTSBcXFxuICAgLXBvc3RFQ09TdWZmaXggcG9zdEVDTyAtcGluTG9jYXRpb24gLWFsbG93UG9ydEVDT1xuIgotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHVwZGF0ZV9wYXJ0aXRpb24gJGNvbW1hbmRdCi0gICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0gICAgICB9Ci0KLSAgICAgIGlmIHskdmFycyhjb2RlZ2VuKX0gewotICAgICAgICAgcmV0dXJuICRjb21tYW5kcwotICAgICAgfSBlbHNlIHsKLSAgICAgICAgIHVwbGV2ZWwgIzAgZXZhbCAkY29tbWFuZHMKLSAgICAgIH0KLSAgIH0KLQotICAgcHJvYyBydW5fcHJlY3RzIHt7Zm9ybWF0IDF9fSB7Ci0KLSAgICAgIGdsb2JhbCB2YXJzCi0gICAgICBnbG9iYWwgZW52Ci0gICAgICBnbG9iYWwgZXJyb3JzCi0gICAgICBnbG9iYWwgd2FybmluZ3MKLQotICAgICAgaWYgeyR2YXJzKHBsYWNlX29wdF9kZXNpZ24pfSB7Ci0jICAgICAgICAgaWYgeyEoJHZhcnModXNlcl9tb2RlKSA9PSAiaGllciIpfSB7Ci0gICAgICAgICAgICByZXR1cm4gIiIKLSMgICAgICAgICB9IGVsc2UgewotIyAgICAgICAgICAgIHNldCB3YXJuaW5ncygkdmFycyh3YXJuaW5nX2NvdW50KSkgIkZlYXR1cmUgdmFycyhwbGFjZV9vcHRfZGVzaWduKSBub3Qgc3VwcG9ydCBmb3IgdG9wIGxldmVsIGltcGxlbWVudGF0aW9uIHdoZW4gdmFycyhlbmFibGVfZmxleGlsbSkgaXMgdHJ1ZSIKLSMgICAgICAgICAgICBpbmNyIHZhcnMod2FybmluZ19jb3VudCkKLSMgICAgICAgICB9Ci0gICAgICB9Ci0KLSAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhwYXJlbnQpXSAmJiAoJHZhcnMocGFyZW50KSA9PSAicmMiKX0gewotICAgICAgICAgc2V0IHZhcnMoc3RlcCkgcmNwCi0gICAgICB9IGVsc2UgewotICAgICAgICAgc2V0IHZhcnMoc3RlcCkgcHJlY3RzCi0gICAgICB9Ci0KLSAgICAgIHNldCBjb21tYW5kcyAiIgotIyAgICAgIGFwcGVuZCBjb21tYW5kcyAic2V0IHZhcnMoc3RlcCkgJHZhcnMoc3RlcClcbiIKLQotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgIyBJbml0aWFsaXplIHN0ZXAgLi4uCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0KLSAgICAgIHNldCBjb21tYW5kIFtGRl9FREk6OmluaXRpYWxpemVfc3RlcCBwcmVjdHNdCi0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGX0VESTo6aW5zZXJ0X2NvbW1lbnRzXSAKLSAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxpbml0aWFsaXplX3N0ZXAgJGNvbW1hbmRdCi0KLSAgICAgIGFwcGVuZCBjb21tYW5kcyAiUHV0cyBcIjxGRj4gUlVOTklORyBQUkUtQ1RTIE9QVElNSVpBVElPTiAuLi5cIlxuIgotCi0gICAgICBpZiB7JHZhcnModmVyYm9zZSl9IHsKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiI1xuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjIFJVTk5JTkcgUFJFLUNUUyBPUFRJTUlaQVRJT05cbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiI1xuIgotICAgICAgfQotCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAjIExvYWQgb3B0aW9uYWwgcHJlIENUUyBmaWxlIChwbHVnLWluKQotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCi0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjpzb3VyY2VfcGx1ZyBwcmVfcHJlY3RzX3RjbF0KLQotICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKHBhcmVudCldICYmICgkdmFycyhwYXJlbnQpID09ICJyYyIpfSB7Ci0gICAgICAgICByZXR1cm4gJGNvbW1hbmRzCi0gICAgICB9Ci0KLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICMgUnVuIHByZS1DVFMgb3B0aW1pemF0aW9uCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0KLSAgICAgIGlmIHsoW2luZm8gZXhpc3RzIHZhcnMocGFydGl0aW9uX2xpc3QpXSkgJiYgKFtmaWxlIHRhaWwgW2ZpbGUgZGlybmFtZSBbcHdkXV1dID09ICIkdmFycyhwYXJ0aXRpb25fZGlyKSIpfSB7Ci0gICAgICAgICBzZXQgcHRuIFtmaWxlIHRhaWwgW3B3ZF1dCi0gICAgICAgICBpZiB7KFtsc2VhcmNoICR2YXJzKHBhcnRpdGlvbl9saXN0KSAkcHRuXSA9PSAtMSkgJiYgJHZhcnMoZW5hYmxlX2ZsZXhpbG0pfSB7Ci0gICAgICAgICAjIFRvcCBsZXZlbCBmbG93IGZvciBmbGV4SWxtCi0gICAgICAgICAgICAKLSAgICAgICAgICAgIHNldCBjb21tYW5kICIiCi0gICAgICAgICAgICBmb3JlYWNoIGJsb2NrICR2YXJzKHBhcnRpdGlvbl9saXN0KSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAic2V0UHRuUGluU3RhdHVzIC1jZWxsICRibG9jayAtcGluICogLXN0YXR1cyB1bnBsYWNlZFxuIgotICAgICAgICAgICAgfQotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHNldF9wdG5fcGluX3N0YXR1cyAkY29tbWFuZF0KLSAgICAgICAgICAgIAotICAgICAgICAgICBzZXQgY29tbWFuZCAiIgotICAgICAgICAgICBpZiB7W2xpbmRleCBbc3BsaXQgJHZhcnModmVyc2lvbikgIi4iXSAgMF0gPCAxNn0gewotICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJzZXRUcmlhbFJvdXRlTW9kZSAtaG9ub3JQaW4gZmFsc2UgLWhhbmRsZVBhcnRpdGlvbkNvbXBsZXggdHJ1ZVxuIgotICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxzZXRfdHJpYWxfcm91dGVfbW9kZTEgJGNvbW1hbmRdCi0gICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgInNldFJvdXRlTW9kZSAtZWFybHlHbG9iYWxSb3V0ZVBhcnRpdGlvbkhvbm9yRmVuY2UgLiAtZWFybHlHbG9iYWxSb3V0ZVBhcnRpdGlvbkhvbm9yUGluIHt9XG4iCi0gICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHNldF9yb3V0ZV9tb2RlMSAkY29tbWFuZF0KLSAgICAgICAgICAgfQotICAgICAgICAgICAKLSMgICAgICAgICAgICBzZXQgY29tbWFuZCAiIgotIyAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJzZXRIaWVyTW9kZSAtb3B0U3RhZ2UgcHJlQ1RTXG4iCi0jICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHNldF9oaWVyX21vZGUgJGNvbW1hbmRdCi0gICAgICAgICAgICAKLSAgICAgICAgICAgIHNldCBjb21tYW5kICIiCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAic2V0T3B0TW9kZSAtaGFuZGxlUGFydGl0aW9uQ29tcGxleCB0cnVlXG4iCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksc2V0X29wdF9tb2RlICRjb21tYW5kXQotICAgICAgICAgICAgCi0gICAgICAgICAgICBzZXQgY29tbWFuZCAiIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIm9wdERlc2lnbiAtcHJlQ1RTIC1vdXREaXIgJHZhcnMocnB0X2RpcikgLXByZWZpeCBmbGV4aWxtXG4iCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksb3B0X2Rlc2lnbiAkY29tbWFuZF0KLSAgICAgICAgICAgIAotICAgICAgICAgICAgc2V0IGNvbW1hbmQgIiIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJzYXZlRGVzaWduICR2YXJzKGRic19kaXIpL3ByZWN0c19mbGV4aWxtLmVuYyAtY29tcHJlc3NcbiIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxzYXZlX2Rlc2lnbiAkY29tbWFuZF0KLSAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAjIE5vbiBmbGV4SWxtIHRvcCBmbG93IGFuZCBwYXJ0aXRpb24gZmxvdwotICAgICAgICAgICBzZXQgY29tbWFuZCAib3B0RGVzaWduIC1wcmVDVFMgLW91dERpciAkdmFycyhycHRfZGlyKSAtcHJlZml4IHByZWN0c1xuIgotICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksb3B0X2Rlc2lnbiAkY29tbWFuZF0KLSAgICAgICAgIH0KLSAgICAgIH0gZWxzZSB7Ci0gICAgICAjIEZsYXQgZmxvdyAKLSAgICAgICAgc2V0IGNvbW1hbmQgIm9wdERlc2lnbiAtcHJlQ1RTIC1vdXREaXIgJHZhcnMocnB0X2RpcikgLXByZWZpeCBwcmVjdHNcbiIKLSAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLG9wdF9kZXNpZ24gJGNvbW1hbmRdCi0gICAgICB9Ci0KLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICMgTG9hZCBvcHRpb25hbCBwb3N0IENUUyBmaWxlIChwbHVnLWluKQotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCi0gICAgICBzZXQgY29tbWFuZCAiIgotICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6c291cmNlX3BsdWcgcG9zdF9wcmVjdHNfdGNsIDBdCi0KLSAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhjbG9ja19nYXRlX2Nsb25lKV0gJiYgJHZhcnMoY2xvY2tfZ2F0ZV9jbG9uZSl9IHsKLSAgICAgICAgIGlmIHskdmFycyh2ZXJib3NlKX0gewotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjXG4iCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgUlVOTklORyBDTE9DSyBHQVRFIENMT05JTkdcbiIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiI1xuIgotICAgICAgICAgfQotICAgICAgICAgIyBTZXQgc3BlY19maWxlIGlmIG9uZSBpcyBkZWZpbmVkCi0gICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoY3RzX3NwZWMpXX0gewotICAgICAgICAgICAgc2V0IHNwZWNfZmlsZSAkdmFycyhjdHNfc3BlYykKLSAgICAgICAgIH0KLSAgICAgICAgIGlmIHsoW2luZm8gZXhpc3RzIHZhcnMocGFydGl0aW9uX2xpc3QpXSkgJiYKLSAgICAgICAgICAgICAoW2ZpbGUgdGFpbCBbZmlsZSBkaXJuYW1lIFtwd2RdXV0gPT0gIiR2YXJzKHBhcnRpdGlvbl9kaXIpIil9IHsKLSAgICAgICAgICAgIHNldCBwdG4gW2ZpbGUgdGFpbCBbcHdkXV0KLSAgICAgICAgICAgICMgT3ZlcnJpZGUgd2l0aCBwYXJ0aXRpb24gc3BlYyBpZiBkZWZpbmVkCi0gICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJHB0bixjdHNfc3BlYyldfSB7Ci0gICAgICAgICAgICAgICBzZXQgc3BlY19maWxlICR2YXJzKCRwdG4sY3RzX3NwZWMpCi0gICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0gICAgICAgICAjIExvYWQgZmluYWwgc3BlYyBmaWxlIG9yIGdlbmVyYXRlIG9uZQotIyAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgc3BlY19maWxlXX0gewotIyAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiY2xlYW51cFNwZWNpZnlDbG9ja1RyZWVcbiIKLSMgICAgICAgICAgICBmb3JlYWNoIHNwZWMgJHNwZWNfZmlsZSB7Ci0jICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJzcGVjaWZ5Q2xvY2tUcmVlIC1maWxlICRzcGVjXG4iCi0jICAgICAgICAgICAgfQotIyAgICAgICAgIH0gZWxzZSB7Ci0jICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJjcmVhdGVDbG9ja1RyZWVTcGVjXG4iCi0jICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGN0c19jZWxscyldfSB7Ci0jICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgInNwZWNpZnlDbG9ja1RyZWUgLXVwZGF0ZSBcIkF1dG9DVFNSb290UGluICogQnVmZmVyIFxbbGlzdCAkdmFycyhjdHNfY2VsbHMpXF1cIlxuIgotIyAgICAgICAgICAgIH0KLSMgICAgICAgICB9Ci0jICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKHJvdXRlX2Nsb2NrX25ldHMpXSAmJiAkdmFycyhyb3V0ZV9jbG9ja19uZXRzKX0gewotIyAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAic3BlY2lmeUNsb2NrVHJlZSAtdXBkYXRlIFwiQXV0b0NUU1Jvb3RQaW4gKiBSb3V0ZUNsa05ldCBZRVNcIlxuIgotIyAgICAgICAgIH0KLSAgIAotICAgICAgICAgc2V0IGNvbW1hbmQgImNrQ2xvbmVHYXRlIC10aW1pbmdEcml2ZW4gLWZvcmNlUmVjb252ZXJnZW50XG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksY2tfY2xvbmVfZ2F0ZSAkY29tbWFuZF0KLSAgICAgIH0KLSAgICAgIGlmIHsoJHZhcnModXNlcl9tb2RlKSA9PSAiaGllciIpfSB7Ci0gICAgICAgICBzZXQgcHRuIFtmaWxlIHRhaWwgW3B3ZF1dCi0gICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMocGFydGl0aW9uX2xpc3QpXSAmJiAoW2xzZWFyY2ggJHZhcnMocGFydGl0aW9uX2xpc3QpICRwdG5dICE9IC0xKSAmJiAhJHZhcnMocGxhY2Vfb3B0X2Rlc2lnbil9IHsKLSAgICAgICAgICAgIGlmIHskdmFycyhlbmFibGVfZmxleGlsbSl9IHsKLSAgICAgICAgICAgICAgIHNldCBjb21tYW5kICJjcmVhdGVJbnRlcmZhY2VMb2dpYyAtZGlyICRwdG4uZmxleGlsbSAtdXNlVHlwZSBmbGV4SWxtIC1vcHRTdGFnZSBwcmVDVFNcbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxjcmVhdGVfZmxleF9pbG0gJGNvbW1hbmRdCi0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgaWYgeyEkdmFycyhibGFja19ib3gpfSB7Ci0gICAgICAgICAgICAgICAgICBpZiB7W3N0cmluZyBjb21wYXJlIC1ub2Nhc2UgJHZhcnMoZGJzX2Zvcm1hdCkgImZlIl09PTB9IHsKLSAgICAgICAgICAgICAgICAgICAgIHNldCBjb21tYW5kICJjcmVhdGVJbnRlcmZhY2VMb2dpYyAtbW9kZWxUeXBlIHRpbWluZyAtZGlyICRwdG4uaWxtIC1ob2xkXG4iCi0gICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgImNyZWF0ZUludGVyZmFjZUxvZ2ljIC1tb2RlbFR5cGUgdGltaW5nIC1jZWxsdmlldyB7JHZhcnMob2FfcGFydGl0aW9uX2xpYikgJHB0biBhYnN0cmFjdH1cbiIKLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIH0gCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksY3JlYXRlX2lsbSAkY29tbWFuZF0KLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0gZWxzZSB7IDsgIyBUb3AgbGV2ZWwgdW5jb25kaXRpb25hbCAobm8gcGxhY2Vfb3B0X2Rlc2lnbiBzdXBwb3J0KSAuLi4KLSAgICAgICAgICAgIGlmIHskdmFycyhlbmFibGVfZmxleGlsbSl9IHsKLSAgICAgICAgICAgICAgICMgUmUtYXNzaWduIHBpbnMgYmFzZWQgb24gbmV3IG5ldGxpc3QgY2hhbmdlcwotICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgIiIKLSAgICAgICAgICAgICAgIGlmIHtbbGluZGV4IFtzcGxpdCAkdmFycyh2ZXJzaW9uKSAiLiJdICAwXSA8IDE2fSB7Ci0gICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJ0cmlhbFJvdXRlXG4iCi0gICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSx0cmlhbF9yb3V0ZTEgJGNvbW1hbmRdCi0gICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiZWFybHlHbG9iYWxSb3V0ZVxuIgotICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksZWFybHlfcm91dGUxICRjb21tYW5kXQotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICBzZXQgY29tbWFuZCAiIgotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgInRpbWVEZXNpZ24gLXByZUNUUyAtb3V0RGlyICR2YXJzKHJwdF9kaXIpIC1wcmVmaXggYXNzZW1ibGVfZmxleGlsbVxuIgotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHRpbWVfZGVzaWduICRjb21tYW5kXQotICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICBzZXQgY29tbWFuZCAiIgotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgImFzc2lnblB0blBpblxuIgotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLGFzc2lnbl9wdG5fcGluICRjb21tYW5kXQotICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICBzZXQgY29tbWFuZCAiIgotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgImNoZWNrUGluQXNzaWdubWVudFxuIgotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLGNoZWNrX3Bpbl9hc3NpZ25tZW50ICRjb21tYW5kXQotICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICBzZXQgY29tbWFuZCAiIgotICAgICAgICAgICAgICAgaWYge1tsaW5kZXggW3NwbGl0ICR2YXJzKHZlcnNpb24pICIuIl0gIDBdIDwgMTZ9IHsKLSAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgInNldFRyaWFsUm91dGVNb2RlIC1ob25vclBpbiB0cnVlXG4iCi0gICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxzZXRfdHJpYWxfcm91dGVfbW9kZTIgJGNvbW1hbmRdCi0gICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAic2V0Um91dGVNb2RlIC1lYXJseUdsb2JhbFJvdXRlUGFydGl0aW9uSG9ub3JQaW4gLlxuIgotICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksc2V0X3JvdXRlX21vZGUyICRjb21tYW5kXQotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICBzZXQgY29tbWFuZCAiIgotICAgICAgICAgICAgICAgaWYge1tsaW5kZXggW3NwbGl0ICR2YXJzKHZlcnNpb24pICIuIl0gIDBdIDwgMTZ9IHsKLSAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgInRyaWFsUm91dGVcbiIKLSAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHRyaWFsX3JvdXRlMiAkY29tbWFuZF0KLSAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgImVhcmx5R2xvYmFsUm91dGVcbiIKLSAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLGVhcmx5X3JvdXRlMiAkY29tbWFuZF0KLSAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgCi0jICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgIiIKLSMgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAic2V0QnVkZ2V0aW5nTW9kZSAtZW5hYmxlTVRCdWRnZXRpbmcgdHJ1ZVxuIgotIyAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxzZXRfYnVkZ2V0aW5nX21vZGUgJGNvbW1hbmRdCi0gICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgIHNldCBjb21tYW5kICIiCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiZGVyaXZlVGltaW5nQnVkZ2V0XG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksZGVyaXZlX3RpbWluZ19idWRnZXQgJGNvbW1hbmRdCi0gICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgIHNldCBjb21tYW5kICIiCi0gICAgICAgICAgICAgICBzZXQgZGlycyAiIgotICAgICAgICAgICAgICAgZm9yZWFjaCBibG9jayAkdmFycyhwYXJ0aXRpb25fbGlzdCkgewotICAgICAgICAgICAgICAgICAgaWYgeyR2YXJzKHBsYWNlX29wdF9kZXNpZ24pfSB7Ci0gICAgICAgICAgICAgICAgICAgICBhcHBlbmQgZGlycyAiXFxcbiAgIC1nb2xkZW5CbG9ja0RpciAuLi8kYmxvY2svJHZhcnMoZGJzX2RpcikvcGxhY2UuZW5jLmRhdCAiCi0gICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGRpcnMgIlxcXG4gICAtZ29sZGVuQmxvY2tEaXIgLi4vJGJsb2NrLyR2YXJzKGRic19kaXIpL3ByZWN0cy5lbmMuZGF0ICIKLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJ1cGRhdGVfcGFydGl0aW9uIFxcXG4gICAtZmxleElsbUVDTyAkZGlycyBcXFxuICAgLWZsZXhJbG1EaXIgLi4vLi4vUEFSVElUSU9OX0ZMRVhJTE0gXFxcbiAgIC1wb3N0RUNPU3VmZml4IHBvc3RFQ08gLXBpbkxvY2F0aW9uXG4iCi0jICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgInVwZGF0ZV9wYXJ0aXRpb24gXFxcbiAgIC1mbGV4SWxtRUNPICRkaXJzIFxcXG4gICAtZmxleElsbURpciAuLi8uLi9QQVJUSVRJT05fRkxFWElMTSBcXFxuICAgLXBvc3RFQ09TdWZmaXggcG9zdEVDTyAtcGluTG9jYXRpb24gLWFsbG93UG9ydEVDT1xuIgotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHVwZGF0ZV9wYXJ0aXRpb24gJGNvbW1hbmRdCi0gICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0gICAgICB9Ci0KLSAgICAgIGlmIHskdmFycyhjb2RlZ2VuKX0gewotICAgICAgICAgcmV0dXJuICRjb21tYW5kcwotICAgICAgfSBlbHNlIHsKLSAgICAgICAgICB1cGxldmVsICMwIGV2YWwgJGNvbW1hbmRzCi0gICAgICB9Ci0gICB9Ci0KLSAgIHByb2MgcnVuX2N0cyB7e2Zvcm1hdCAxfX0gewotCi0gICAgICBnbG9iYWwgdmFycwotICAgICAgZ2xvYmFsIGVycm9ycwotCi0gICAgICBpZiB7JHZhcnMoc2tpcF9jdHMpfSB7Ci0gICAgICAgICByZXR1cm4gIiIKLSAgICAgIH0KLQotICAgICAgc2V0IHZhcnMoc3RlcCkgY3RzCi0gICAgICBzZXQgY29tbWFuZHMgIiIKLSAgICAgIHNldCB1Y29tbWVudHMgIiIKLSMgICAgICBhcHBlbmQgY29tbWFuZHMgInNldCB2YXJzKHN0ZXApICR2YXJzKHN0ZXApXG4iCi0KLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICMgSW5pdGlhbGl6ZSBzdGVwIC4uLgotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCi0gICAgICBzZXQgY29tbWFuZCBbRkZfRURJOjppbml0aWFsaXplX3N0ZXAgY3RzXQotICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRl9FREk6Omluc2VydF9jb21tZW50c10gCi0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgY3RzLGluaXRpYWxpemVfc3RlcCAkY29tbWFuZF0KLQotICAgICAgaWYgeyR2YXJzKHRvcCkgJiYgKCR2YXJzKHVzZXJfbW9kZSkgPT0gImhpZXIiKSAmJiAoJHZhcnMoaGllcl9mbG93X3R5cGUpID09ICIycGFzcyIpICYmICR2YXJzKGVuYWJsZV9mbGV4aWxtKX0gewotICAgICAgICAgIyBSZWFkIFBvd2VyIEludGVudCBoZXJlIC4uLgotICAgICAgICAgRkZfRURJOjpub3JtYWxpemVfZmlsZXMKLSMgICAgICAgICBzZXQgc2F2ZSAkdmFycyhjcGZfcG93ZXJfZG9tYWluKQotIyAgICAgICAgIHNldCB2YXJzKGNwZl9wb3dlcl9kb21haW4pIHRydWUKLSMgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGX0VESTo6bG9hZF9wb3dlcl9pbnRlbnRdCi0jICAgICAgICAgc2V0IHZhcnMoY3BmX3Bvd2VyX2RvbWFpbikgJHNhdmUKLSAgICAgICAgIHNldCBjb21tYW5kICIiCi0gICAgICAgICBmb3JlYWNoIHBhcnQgJHZhcnMocGFydGl0aW9uX2xpc3QpIHsKLSAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkcGFydCxpbG1fZGlyKV0gJiYgKCR2YXJzKGNvZGVnZW4pIHx8IFtmaWxlIGlzZGlyZWN0b3J5ICR2YXJzKCRwYXJ0LGlsbV9kaXIpXSl9IHsKLSAgICAgICAgICAgICAgIGlmIHtbbGluZGV4IFtzcGxpdCAkdmFycyh2ZXJzaW9uKSAiLiJdICAwXSA8PSAxMH0gewotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgInNwZWNpZnlJbG0gLWNlbGwgJHBhcnQgLWRpciAkdmFycygkcGFydCxpbG1fZGlyKVxuIgotICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgaWYge1tzdHJpbmcgY29tcGFyZSAtbm9jYXNlICR2YXJzKGRic19mb3JtYXQpICJvYSJdPT0wfSB7Ci0gICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAic3BlY2lmeUlsbSAtY2VsbCAkcGFydFxuIgotICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJzcGVjaWZ5SWxtIC1jZWxsICRwYXJ0IC1kaXIgJHZhcnMoJHBhcnQsaWxtX2RpcilcbiIKLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBpZiB7W2xpbmRleCBbc3BsaXQgJHZhcnModmVyc2lvbikgIi4iXSAgMF0gPD0gMTB9IHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJzcGVjaWZ5SWxtIC1jZWxsICRwYXJ0IC1kaXIgLi4vJHBhcnQvJHBhcnQuaWxtXG4iCi0gICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICBpZiB7W3N0cmluZyBjb21wYXJlIC1ub2Nhc2UgJHZhcnMoZGJzX2Zvcm1hdCkgIm9hIl09PTB9IHsKLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJzcGVjaWZ5SWxtIC1jZWxsICRwYXJ0XG4iCi0gICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgInNwZWNpZnlJbG0gLWNlbGwgJHBhcnQgLWRpciAuLi8kcGFydC8kcGFydC5pbG1cbiIKLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0KLSAgICAgICAgIGlmIHskY29tbWFuZCAhPSAiIn0gewotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHNwZWNpZnlfaWxtICRjb21tYW5kXQotICAgICAgICAgfQotCi0gICAgICAgICBzZXQgY29tbWFuZCBbRkZfRURJOjppbml0aWFsaXplX3RpbWluZyBtbW1jXQotIyAgICAgICAgIGlmIHshW2luZm8gZXhpc3RzIHZhcnMoY3BmX2ZpbGUpXSB8fCAoW2luZm8gZXhpc3RzIHZhcnMoY3BmX2ZpbGUpXSAmJiAhJHZhcnMoY3BmX3RpbWluZykpIH0gewotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLGluaXRpYWxpemVfdGltaW5nICRjb21tYW5kXQotIyAgICAgICAgIH0gZWxzZSB7Ci0jICAgICAgICAgICAgc2V0IGRlZmVyX2NvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLGluaXRpYWxpemVfdGltaW5nICRjb21tYW5kXSAKLSMgICAgICAgICB9Ci0gICAgICAgICBpZiB7W2xpbmRleCBbc3BsaXQgJHZhcnModmVyc2lvbikgIi4iXSAgMF0gPCAxNH0gewotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRl9FREk6OmxvYWRfcG93ZXJfaW50ZW50XQotICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkZfTk9WVVM6OmxvYWRfcG93ZXJfaW50ZW50XQotICAgICAgICAgfQotICAgICAgfQotCi0gICAgICBhcHBlbmQgY29tbWFuZHMgIlB1dHMgXCI8RkY+IFJVTk5JTkcgQ0xPQ0sgVFJFRSBTWU5USEVTSVMgLi4uXCJcbiIKLQotICAgICAgaWYgeyR2YXJzKHZlcmJvc2UpfSB7Ci0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiNcbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyBSVU5OSU5HIENMT0NLIFRSRUUgU1lOVEhFU0lTXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiNcbiIKLSAgICAgIH0KLQotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgIyBMb2FkIHByZS1DVFMgZmlsZSAocGx1Zy1pbikKLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgIGlmIHskdmFycyhjdHNfZW5naW5lKSA9PSAiY3RzIn0gewotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6c291cmNlX3BsdWcgcHJlX2N0c190Y2xdCi0gICAgICB9Ci0KLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICMgUnVuIENUUwotICAgICAgIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotICAgICAgIyBHZW5lcmF0ZSB0aGUgY2xvY2sgdHJlZSB1c2luZyBjbG9ja0Rlc2lnbiB3aGljaDoKLSAgICAgICMgLSBsb2FkcyB0aGUgY2xvY2sgc3BlY2lmaWNhdGlvbiBmaWxlCi0gICAgICAjIC0gcmVtb3ZlcyBleGlzdGluZyBidWZmZXJzIGluIHRoZSBjbG9jayB0cmVlIChub3QgbWFya2VkIGRvbid0IHRvdWNoKTsKLSAgICAgICMgICBpZiBhIGNsb2NrIHRyZWUgaGFzIGJlZW4gcHJldmlvdXNseSBpbnNlcnRlZCwgdXNlIGNoYW5nZUNsb2NrU3RhdHVzCi0gICAgICAjICAgdG8gdW5maXggdGhlIHRyZWUgc28gdGhhdCBpdCBjYW4gYmUgcmVtb3ZlZAotICAgICAgIyAtIHVuZml4ZXMgdGhlIGNsb2NrIG5ldHMgYWZ0ZXIgdHJlZSBpbnNlcnRpb24KLSAgICAgICMgTmVlZCB0byBtYWtlIHN1cmUgdGhlIGNsb2NrIGdhdGluZyBjZWxscyBhcmUgdXNhYmxlIGR1cmluZyBjbG9ja0Rlc2lnbi4KLSAgICAgICMgRGlzYWJsZSB0aGVtIGFmdGVyd2FyZHMuCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0KLSAgICAgIHNldCBjbG9ja19nYXRlX2NlbGxzIFtsaXN0XQotICAgICAgc2V0IGNvbW1hbmQgIiIKLSAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhjbG9ja19nYXRlX2NlbGxzKV19IHsKLSAgICAgICAgIHNldCBjbG9ja19nYXRlX2NlbGxzICR2YXJzKGNsb2NrX2dhdGVfY2VsbHMpCi0gICAgICAgICBmb3JlYWNoIGNlbGwgJGNsb2NrX2dhdGVfY2VsbHMgewotICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJzZXREb250VXNlICRjZWxsIGZhbHNlXG4iCi0gICAgICAgICB9Ci0gICAgICB9Ci0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgY3RzLGVuYWJsZV9jbG9ja19nYXRlX2NlbGxzICRjb21tYW5kXQotCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAjIFJ1biBDVFMKLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLQotICAgICAgc2V0IGNvbW1hbmQgIiIKLSAgICAgIGlmIHtbc3RyaW5nIHRvbG93ZXIgJHZhcnMoY3RzX2VuZ2luZSldID09ICJjdHMifSB7Ci0gICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoY3RzX3RjbCldfSB7Ci0gICAgICAgICAgICBpZiB7W2ZpbGUgZXhpc3RzICR2YXJzKGN0c190Y2wpXX0gewotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6c291cmNlX3BsdWcgY3RzX3RjbF0KLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBzZXQgZXJyb3JzKCR2YXJzKGVycm9yX2NvdW50KSkgIlBsdWctaW4gdmFycyhjdHNfdGNsKSBkZWZpbmVkIGJ1dCB0aGUgZmlsZSBkb2VzIG5vdCBleGlzdCIKLSAgICAgICAgICAgICAgIGluY3IgdmFycyhlcnJvcl9jb3VudCkKLSMgICAgICAgICAgICAgICBzZXQgdmFycyhhYm9ydCkgMQotICAgICAgICAgICAgfQotICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhjdHNfc3BlYyldfSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiY2xlYW51cFNwZWNpZnlDbG9ja1RyZWVcbiIKLSAgICAgICAgICAgICAgIGZvcmVhY2ggc3BlYyAkdmFycyhjdHNfc3BlYykgewotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgInNwZWNpZnlDbG9ja1RyZWUgLWZpbGUgJHNwZWNcbiIKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBpZiB7W2xpbmRleCBbc3BsaXQgJHZhcnModmVyc2lvbikgIi4iXSAgMF0gPCAxNX0gewotICAgICAgICAgICAgICAgICAgaWYgeyEkdmFycyhpbG0pfSB7IAotICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgImNyZWF0ZUNsb2NrVHJlZVNwZWNcbiIKLSAgICAgICAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhjdHNfY2VsbHMpXX0gewotICAgICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAic3BlY2lmeUNsb2NrVHJlZSAtdXBkYXRlIFwiQXV0b0NUU1Jvb3RQaW4gKiBCdWZmZXIgJHZhcnMoY3RzX2NlbGxzKVwiXG4iCi0gICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoY3RzX3NwZWMpXSB8fCAoIVtpbmZvIGV4aXN0cyB2YXJzKGN0c19zcGVjKV0gJiYgKFtsaW5kZXggW3NwbGl0ICR2YXJzKHZlcnNpb24pICIuIl0gIDBdIDwgMTUpKX0gewotICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKHJvdXRlX2Nsb2NrX25ldHMpXSAmJiAkdmFycyhyb3V0ZV9jbG9ja19uZXRzKX0gewotICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAic3BlY2lmeUNsb2NrVHJlZSAtdXBkYXRlIFwiQXV0b0NUU1Jvb3RQaW4gKiBSb3V0ZUNsa05ldCBZRVNcIlxuIgotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kIGN0cyxjcmVhdGVfY2xvY2tfdHJlZV9zcGVjICRjb21tYW5kXQotICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgIiIKLSAgICAgICAgICAgICAgIGlmIHskdmFycyh1cGRhdGVfaW9fbGF0ZW5jeSl9IHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJjbG9ja0Rlc2lnbiAtc2tpcFRpbWVEZXNpZ24gLXVwZGF0ZUlvTGF0ZW5jeSAtb3V0RGlyICR2YXJzKHJwdF9kaXIpXG4iCi0gICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgImNsb2NrRGVzaWduIC1za2lwVGltZURlc2lnbiAtb3V0RGlyICR2YXJzKHJwdF9kaXIpXG4iCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgImNsb2NrRGVzaWduIC1za2lwVGltZURlc2lnbiAtb3V0RGlyICR2YXJzKHJwdF9kaXIpXG4iCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgY3RzLGNsb2NrX2Rlc2lnbiAkY29tbWFuZF0KLSAgICAgICAgIH0KLSAgICAgICAgIHNldCBjb21tYW5kICIiCi0gICAgICAgICBmb3JlYWNoIGNlbGwgJGNsb2NrX2dhdGVfY2VsbHMgewotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgInNldERvbnRVc2UgJGNlbGwgdHJ1ZVxuIgotICAgICAgICAgfQotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kIGN0cyxkaXNhYmxlX2Nsb2NrX2dhdGVfY2VsbHMgJGNvbW1hbmRdCi0KLSAgICAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICAgICMgUnVuIGNrRUNPIGlmIHJlcXVlc3RlZAotICAgICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCi0gICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoY2xvY2tfZWNvKV0gJiYgKCgkdmFycyhjbG9ja19lY28pID09ICJwb3N0X2N0cyIpIHx8ICgkdmFycyhjbG9ja19lY28pID09ICJib3RoIikpfSB7Ci0gICAgICAgICAgICBzZXQgY29tbWFuZCBbRkZfRURJOjpydW5fY2xvY2tfZWNvIHBvc3RfY3RzXQotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kIGN0cyxydW5fY2xvY2tfZWNvICRjb21tYW5kXQotICAgICAgICAgfQotCi0gICAgICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAgICAjIFVwZGF0ZSB0aW1pbmcgYmFzZWQgb24gdmFycyg8bW9kZT4saW5jcl9jdHNfc2RjKSBhbmQKLSAgICAgICAgICMgdmFycyg8bW9kZT4scG9zdF9jdHNfc2RjKQotICAgICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCi0gICAgICAgICBpZiB7JHZhcnMoZmxvdykgPT0gIm1tbWMifSB7Ci0gICAgICAgICAgICBzZXQgY29tbWFuZCBbRkZfRURJOjp1cGRhdGVfdGltaW5nIG1tbWNdCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgY3RzLHVwZGF0ZV90aW1pbmcgJGNvbW1hbmRdCi0gICAgICAgICAgICBzZXQgY29tbWFuZCBbRkZfRURJOjpkZXJhdGVfdGltaW5nIG1tbWNdCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksZGVyYXRlX3RpbWluZyAkY29tbWFuZF0KLSAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBzZXQgY29tbWFuZCBbRkZfRURJOjp1cGRhdGVfdGltaW5nIG1pbm1heF0KLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCBjdHMsdXBkYXRlX3RpbWluZyAkY29tbWFuZF0KLSAgICAgICAgICAgIHNldCBjb21tYW5kIFtGRl9FREk6OmRlcmF0ZV90aW1pbmcgbWlubWF4XQotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLGRlcmF0ZV90aW1pbmcgJGNvbW1hbmRdCi0gICAgICAgICB9Ci0gICAgICAgICBpZiB7JHZhcnMoaWxtKSAmJiBbaW5mbyBleGlzdHMgdmFycyhpbG1fbm9uX3NkY19maWxlKV19IHsKLSAgICAgICAgICAgIGlmIHtbZmlsZSBleGlzdHMgJHZhcnMoaWxtX25vbl9zZGNfZmlsZSldfSB7Ci0gICAgICAgICAgICAgICBpZiB7W2xpbmRleCBbc3BsaXQgJHZhcnModmVyc2lvbikgIi4iXSAgMF0gPD0gMTB9IHsKLSAgICAgICAgICAgICAgICAgIHNldCBjb21tYW5kICJsb2FkVGltaW5nQ29uIC1pbG1Ob25TZGNGaWxlICR2YXJzKGlsbV9ub25fc2RjX2ZpbGUpXG4iCi0gICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgInNldElsbU5vblNkY0NvbnN0cmFpbnRGaWxlICR2YXJzKGlsbV9ub25fc2RjX2ZpbGUpXG4iCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcihzdGVwKSxsb2FkX2lsbV9ub25fc2RjX2ZpbGUgJGNvbW1hbmRdCi0gICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0gICAgICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAgICAjIENoZWNrIHBvc3QtY3RzIHRpbWluZwotICAgICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycyh0aW1lX2Rlc2lnbl9vcHRpb25zLHNldHVwKV19IHsKLSAgICAgICAgICAgIHNldCBjb21tYW5kICJ0aW1lRGVzaWduIC1wb3N0Y3RzIC1wcmVmaXggY3RzIC1vdXREaXIgJHZhcnMocnB0X2RpcilcbiIKLSAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBzZXQgY29tbWFuZCBbZm9ybWF0ICJ0aW1lRGVzaWduIC1wb3N0Y3RzIC1wcmVmaXggY3RzIC1vdXREaXIgJHZhcnMocnB0X2RpcikgJXNcbiIgJHZhcnModGltZV9kZXNpZ25fb3B0aW9ucyxzZXR1cCldCi0gICAgICAgICB9Ci0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgY3RzLHRpbWVfZGVzaWduICRjb21tYW5kXQotICAgICAgfSBlbHNlIHsKLSAgICAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICAgICMgUnVuIGNjb3B0RGVzaWduIC4uLiBjb252ZXJ0IHRvIHByb3BhZ2F0ZWQgdGltaW5nIGZpcnN0Ci0gICAgICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoY3RzX3RjbCldfSB7Ci0gICAgICAgICAgICBpZiB7W2ZpbGUgZXhpc3RzICR2YXJzKGN0c190Y2wpXX0gewotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6c291cmNlX3BsdWcgcHJlX2N0c190Y2xdCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjpzb3VyY2VfcGx1ZyBjdHNfdGNsXQotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIHNldCBlcnJvcnMoJHZhcnMoZXJyb3JfY291bnQpKSAiUGx1Zy1pbiB2YXJzKGN0c190Y2wpIGRlZmluZWQgYnV0IHRoZSBmaWxlIGRvZXMgbm90IGV4aXN0IgotICAgICAgICAgICAgICAgaW5jciB2YXJzKGVycm9yX2NvdW50KQotICAgICAgICAgICAgfQotICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHNldCBpc19uYXRpdmUgW2V4cHIgeyR2YXJzKGNjb3B0X2ludGVncmF0aW9uKSA9PSAibmF0aXZlIn1dCi0gICAgICAgICAgICBzZXQgY29tbWFuZCBbRkZfRURJOjp1cGRhdGVfdGltaW5nIG1tbWMgW2V4cHIgISRpc19uYXRpdmVdXQotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kIGN0cyx1cGRhdGVfdGltaW5nICRjb21tYW5kXQotICAgICAgICAgICAgc2V0IGNvbW1hbmQgW0ZGX0VESTo6ZGVyYXRlX3RpbWluZyBtbW1jXQotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLGRlcmF0ZV90aW1pbmcgJGNvbW1hbmRdCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjpzb3VyY2VfcGx1ZyBwcmVfY3RzX3RjbF0KLSAgICAgICAgICAgIGlmIHtbbGluZGV4IFtzcGxpdCAkdmFycyh2ZXJzaW9uKSAiLiJdICAwXSA8PSAxNH0gewotICAgICAgICAgICAgICAgaWYge1tyZWdleHAgIl5jY29wdCIgJHZhcnMoY3RzX2VuZ2luZSldICYmICgkdmFycyhjY29wdF9lZmZvcnQpICE9ICJsb3ciKX0gewotICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjpzb3VyY2VfcGx1ZyBwcmVfcG9zdGN0c190Y2wgMF0KLSAgICAgICAgICAgICAgICAgaWYgeyR2YXJzKHBvc3RjdHNfc2V0dXBfaG9sZCl9IHsKLSAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6c291cmNlX3BsdWcgcHJlX3Bvc3RjdHNfaG9sZF90Y2xdCi0gICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBpZiB7JHZhcnMoY2NvcHRfZWZmb3J0KSAhPSAibG93In0gewotICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjpzb3VyY2VfcGx1ZyBwcmVfcG9zdGN0c190Y2wgMF0KLSAgICAgICAgICAgICAgICAgaWYgeyR2YXJzKHBvc3RjdHNfc2V0dXBfaG9sZCl9IHsKLSAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6c291cmNlX3BsdWcgcHJlX3Bvc3RjdHNfaG9sZF90Y2xdCi0gICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIHskdmFycyhjY29wdF9lZmZvcnQpICE9ICJsb3cifSB7Ci0jICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHNldF9jY29wdF9tb2RlICJzZXRfY2NvcHRfbW9kZSAtZWZmb3J0ICR2YXJzKGNjb3B0X2VmZm9ydClcbiJdCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksc2V0X2Njb3B0X21vZGUgInNldF9jY29wdF9lZmZvcnQgLSR2YXJzKGNjb3B0X2VmZm9ydClcbiJdCi0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGlmIHskdmFycyhjdHNfZW5naW5lKSA9PSAiY2NvcHRfY3RzIn0gewotICAgICAgICAgICAgICAgc2V0IGNjb3B0X2NvbW1hbmQgImNjb3B0X2Rlc2lnbiAtb3V0RGlyICR2YXJzKHJwdF9kaXIpIC1wcmVmaXggJHZhcnMoc3RlcCkgLWN0cyIKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBzZXQgY2NvcHRfY29tbWFuZCAiY2NvcHRfZGVzaWduIC1vdXREaXIgJHZhcnMocnB0X2RpcikgLXByZWZpeCAkdmFycyhzdGVwKSIKLQotICAgICAgICAgICAgICAgaWYgeyR2YXJzKHBvc3RjdHNfc2V0dXBfaG9sZCl9IHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjY29wdF9jb21tYW5kICIgLWhvbGQiCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGlmIHskaXNfbmF0aXZlfSB7Ci0gICAgICAgICAgICAgICBpZiB7W2xpbmRleCBbc3BsaXQgJHZhcnModmVyc2lvbikgIi4iXSAgMF0gPD0gMTR9IHsKLSAgICAgICAgICAgICAgICAgIGlmIHskdmFycyhjdHNfZW5naW5lKSA9PSAiY2NvcHRfY3RzIiAmJiBbaW5mbyBleGlzdHMgdmFycyhjdHNfc3BlYyldfSB7Ci0gICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiY2xlYW51cFNwZWNpZnlDbG9ja1RyZWVcbiIKLSAgICAgICAgICAgICAgICAgICAgIGZvcmVhY2ggc3BlYyAkdmFycyhjdHNfc3BlYykgewotICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgInNwZWNpZnlDbG9ja1RyZWUgLWZpbGUgJHNwZWNcbiIKLSAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJzZXRfY2NvcHRfbW9kZSAtaW1wb3J0X2VkaV9jdHNfc3BlYyB0cnVlXG4iCi0gICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgY3RzLGNyZWF0ZV9jY29wdF9jbG9ja190cmVlX3NwZWMgJGNvbW1hbmRdCi0gICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgImNyZWF0ZV9jY29wdF9jbG9ja190cmVlX3NwZWNcbiIKLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCBjdHMsY3JlYXRlX2Njb3B0X2Nsb2NrX3RyZWVfc3BlYyAkY29tbWFuZF0KLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICBpZiB7KCR2YXJzKGNjb3B0X2VmZm9ydCkgPT0gImxvdyIpICYmIFtpbmZvIGV4aXN0cyB2YXJzKGN0c19zcGVjKV19IHsKLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJjbGVhbnVwU3BlY2lmeUNsb2NrVHJlZVxuIgotICAgICAgICAgICAgICAgICAgICAgZm9yZWFjaCBzcGVjICR2YXJzKGN0c19zcGVjKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAic3BlY2lmeUNsb2NrVHJlZSAtZmlsZSAkc3BlY1xuIgotICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgInNldF9jY29wdF9tb2RlIC1pbXBvcnRfZWRpX2N0c19zcGVjIHRydWVcbiIKLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCBjdHMsY3JlYXRlX2Njb3B0X2Nsb2NrX3RyZWVfc3BlYyAkY29tbWFuZF0KLSAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICBzZXQgY29tbWFuZCAiY3JlYXRlX2Njb3B0X2Nsb2NrX3RyZWVfc3BlY1xuIgotICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kIGN0cyxjcmVhdGVfY2NvcHRfY2xvY2tfdHJlZV9zcGVjICRjb21tYW5kXQotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBhcHBlbmQgY2NvcHRfY29tbWFuZCAiXG4iCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgY3RzLGNjb3B0X2Rlc2lnbiAkY2NvcHRfY29tbWFuZF0KLSAgICAgICAgIH0KLSAgICAgIH0KLQotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgIyBMb2FkIG9wdGlvbmFsIHBvc3QgQ1RTIGZpbGUgKHBsdWctaW4pCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0KLSAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OnNvdXJjZV9wbHVnIHBvc3RfY3RzX3RjbCAwXQotICAgICAgaWYge1tsaW5kZXggW3NwbGl0ICR2YXJzKHZlcnNpb24pICIuIl0gIDBdIDw9IDE0fSB7Ci0gICAgICAgICBpZiB7W3JlZ2V4cCAiXmNjb3B0IiAkdmFycyhjdHNfZW5naW5lKV0gJiYgKCR2YXJzKGNjb3B0X2VmZm9ydCkgIT0gImxvdyIpfSB7Ci0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjpzb3VyY2VfcGx1ZyBwb3N0X3Bvc3RjdHNfdGNsIDBdCi0gICAgICAgICAgICBpZiB7JHZhcnMocG9zdGN0c19zZXR1cF9ob2xkKX0gewotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6c291cmNlX3BsdWcgcG9zdF9wb3N0Y3RzX2hvbGRfdGNsXQotICAgICAgICAgICAgfQotICAgICAgICAgfSAKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgICBpZiB7JHZhcnMoY2NvcHRfZWZmb3J0KSAhPSAibG93In0gewotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6c291cmNlX3BsdWcgcG9zdF9wb3N0Y3RzX3RjbCAwXQotICAgICAgICAgICAgaWYgeyR2YXJzKHBvc3RjdHNfc2V0dXBfaG9sZCl9IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OnNvdXJjZV9wbHVnIHBvc3RfcG9zdGN0c19ob2xkX3RjbF0KLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0gCi0gICAgICB9Ci0KLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICMgUmVzZXQgY2xvY2sgZ2F0aW5nIGNlbGwgdXNhZ2UKLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLQotICAgICAgaWYgeyR2YXJzKGhpZXJfZmxvd190eXBlKSA9PSAiMnBhc3MifSB7Ci0gICAgICAgICBzZXQgcHRuIFtmaWxlIHRhaWwgW3B3ZF1dCi0gICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMocGFydGl0aW9uX2xpc3QpXSAmJiAoW2xzZWFyY2ggJHZhcnMocGFydGl0aW9uX2xpc3QpICRwdG5dICE9IC0xKSAmJiAhJHZhcnMoZW5hYmxlX2ZsZXhpbG0pfSB7Ci0gICAgICAgICAgICBpZiB7W3N0cmluZyBjb21wYXJlIC1ub2Nhc2UgJHZhcnMoZGJzX2Zvcm1hdCkgImZlIl09PTB9IHsKLSAgICAgICAgICAgICAgIHNldCBjb21tYW5kICJjcmVhdGVJbnRlcmZhY2VMb2dpYyAtbW9kZWxUeXBlIHRpbWluZyAtZGlyICRwdG4uaWxtIC1ob2xkXG4iCi0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgaWYge1tsaW5kZXggW3NwbGl0ICR2YXJzKHZlcnNpb24pICIuIl0gIDBdID4gMTB9IHsKLSAgICAgICAgICAgICAgICAgIHNldCBjb21tYW5kICJjcmVhdGVJbnRlcmZhY2VMb2dpYyAtbW9kZWxUeXBlIHRpbWluZyAtY2VsbHZpZXcgeyR2YXJzKG9hX3BhcnRpdGlvbl9saWIpICRwdG4gYWJzdHJhY3R9XG4iCi0gICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgImNyZWF0ZUludGVyZmFjZUxvZ2ljIC1tb2RlbFR5cGUgdGltaW5nIC1kaXIgJHB0bi5pbG0gLWhvbGRcbiIKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxjcmVhdGVfaWxtICRjb21tYW5kXQotICAgICAgICAgfQotICAgICAgfQotCi0gICAgICBpZiB7JHZhcnMoY29kZWdlbil9IHsKLSAgICAgICAgIHJldHVybiAkY29tbWFuZHMKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgdXBsZXZlbCAjMCBldmFsICRjb21tYW5kcwotICAgICAgfQotICAgfQotCi0gICBwcm9jIHJ1bl9wcmVyb3V0ZSB7e2Zvcm1hdCAxfX0gewotCi0gICAgICBnbG9iYWwgdmFycwotICAgICAgZ2xvYmFsIGVycm9ycwotCi0gICAgICBzZXQgdmFycyhzdGVwKSBwcmVyb3V0ZQotICAgICAgc2V0IGNvbW1hbmRzICIiCi0gICAgICBzZXQgdWNvbW1lbnRzICIiCi0KLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICMgSW5pdGlhbGl6ZSBzdGVwIC4uLgotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCi0gICAgICBzZXQgY29tbWFuZCBbRkZfRURJOjppbml0aWFsaXplX3N0ZXAgcGxhY2VdCi0gICAgICBhcHBlbmQgY29tbWFuZCBbRkZfRURJOjppbml0aWFsaXplX3N0ZXAgcHJlY3RzXQotICAgICAgYXBwZW5kIGNvbW1hbmQgW0ZGX0VESTo6aW5pdGlhbGl6ZV9zdGVwIGN0c10KLSAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkZfRURJOjppbnNlcnRfY29tbWVudHNdIAotICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kIHByZXJvdXRlLGluaXRpYWxpemVfc3RlcCAkY29tbWFuZF0KLQotICAgICAgaWYgeyR2YXJzKHRvcCkgJiYgKCR2YXJzKHVzZXJfbW9kZSkgPT0gImhpZXIiKSAmJiAoJHZhcnMoaGllcl9mbG93X3R5cGUpID09ICIycGFzcyIpICYmICR2YXJzKGVuYWJsZV9mbGV4aWxtKX0gewotICAgICAgICAgIyBSZWFkIFBvd2VyIEludGVudCBoZXJlIC4uLgotICAgICAgICAgRkZfRURJOjpub3JtYWxpemVfZmlsZXMKLSAgICAgICAgIHNldCBjb21tYW5kICIiCi0gICAgICAgICBmb3JlYWNoIHBhcnQgJHZhcnMocGFydGl0aW9uX2xpc3QpIHsKLSAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkcGFydCxpbG1fZGlyKV0gJiYgKCR2YXJzKGNvZGVnZW4pIHx8IFtmaWxlIGlzZGlyZWN0b3J5ICR2YXJzKCRwYXJ0LGlsbV9kaXIpXSl9IHsKLSAgICAgICAgICAgICAgIGlmIHtbbGluZGV4IFtzcGxpdCAkdmFycyh2ZXJzaW9uKSAiLiJdICAwXSA8PSAxMH0gewotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgInNwZWNpZnlJbG0gLWNlbGwgJHBhcnQgLWRpciAkdmFycygkcGFydCxpbG1fZGlyKVxuIgotICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgaWYge1tzdHJpbmcgY29tcGFyZSAtbm9jYXNlICR2YXJzKGRic19mb3JtYXQpICJvYSJdPT0wfSB7Ci0gICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAic3BlY2lmeUlsbSAtY2VsbCAkcGFydFxuIgotICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJzcGVjaWZ5SWxtIC1jZWxsICRwYXJ0IC1kaXIgJHZhcnMoJHBhcnQsaWxtX2RpcilcbiIKLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBpZiB7W2xpbmRleCBbc3BsaXQgJHZhcnModmVyc2lvbikgIi4iXSAgMF0gPD0gMTB9IHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJzcGVjaWZ5SWxtIC1jZWxsICRwYXJ0IC1kaXIgLi4vJHBhcnQvJHBhcnQuaWxtXG4iCi0gICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICBpZiB7W3N0cmluZyBjb21wYXJlIC1ub2Nhc2UgJHZhcnMoZGJzX2Zvcm1hdCkgIm9hIl09PTB9IHsKLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJzcGVjaWZ5SWxtIC1jZWxsICRwYXJ0XG4iCi0gICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgInNwZWNpZnlJbG0gLWNlbGwgJHBhcnQgLWRpciAuLi8kcGFydC8kcGFydC5pbG1cbiIKLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0KLSAgICAgICAgIGlmIHskY29tbWFuZCAhPSAiIn0gewotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHNwZWNpZnlfaWxtICRjb21tYW5kXQotICAgICAgICAgfQotCi0gICAgICAgICBzZXQgY29tbWFuZCBbRkZfRURJOjppbml0aWFsaXplX3RpbWluZyBtbW1jXQotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLGluaXRpYWxpemVfdGltaW5nICRjb21tYW5kXQotICAgICAgICAgaWYge1tsaW5kZXggW3NwbGl0ICR2YXJzKHZlcnNpb24pICIuIl0gIDBdIDwgMTR9IHsKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkZfRURJOjpsb2FkX3Bvd2VyX2ludGVudF0KLSAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGX05PVlVTOjpsb2FkX3Bvd2VyX2ludGVudF0KLSAgICAgICAgIH0KLSAgICAgIH0KLQotICAgICAgYXBwZW5kIGNvbW1hbmRzICJQdXRzIFwiPEZGPiBSVU5OSU5HIFBSRSBST1VURSBPUFRJTUlaQVRJT04gLi4uXCJcbiIKLQotICAgICAgaWYgeyR2YXJzKHZlcmJvc2UpfSB7Ci0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiNcbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyBSVU5OSU5HIFBSRSBST1VURSBPUFRJTUlaQVRJT05cbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiI1xuIgotICAgICAgfQotCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAjIExvYWQgcHJlLUNUUyBmaWxlIChwbHVnLWluKQotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6c291cmNlX3BsdWcgcHJlX3ByZXJvdXRlX3RjbF0KLQotICAgICAgc2V0IGNsb2NrX2dhdGVfY2VsbHMgW2xpc3RdCi0gICAgICBzZXQgY29tbWFuZCAiIgotICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGNsb2NrX2dhdGVfY2VsbHMpXX0gewotICAgICAgICAgc2V0IGNsb2NrX2dhdGVfY2VsbHMgJHZhcnMoY2xvY2tfZ2F0ZV9jZWxscykKLSAgICAgICAgIGZvcmVhY2ggY2VsbCAkY2xvY2tfZ2F0ZV9jZWxscyB7Ci0gICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgInNldERvbnRVc2UgJGNlbGwgZmFsc2VcbiIKLSAgICAgICAgIH0KLSAgICAgIH0KLSAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCBjdHMsZW5hYmxlX2Nsb2NrX2dhdGVfY2VsbHMgJGNvbW1hbmRdCi0KLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICMgUnVuIHByZS1yb3V0ZSBvcHRpbWl6YXRpb24gZmxvdwotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCi0gICAgICBzZXQgY29tbWFuZCAiIgotCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAjIFVwZGF0ZSB0aW1pbmcgYmFzZWQgb24gdmFycyg8bW9kZT4saW5jcl9jdHNfc2RjKSBhbmQKLSAgICAgICMgdmFycyg8bW9kZT4scG9zdF9jdHNfc2RjKQotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCi0gICAgICBzZXQgY29tbWFuZCBbRkZfRURJOjp1cGRhdGVfdGltaW5nIG1tbWNdCi0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgY3RzLHVwZGF0ZV90aW1pbmcgJGNvbW1hbmRdCi0gICAgICBzZXQgY29tbWFuZCBbRkZfRURJOjpkZXJhdGVfdGltaW5nIG1tbWNdCi0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksZGVyYXRlX3RpbWluZyAkY29tbWFuZF0KLQotICAgICAgaWYgeyR2YXJzKGlsbSkgJiYgW2luZm8gZXhpc3RzIHZhcnMoaWxtX25vbl9zZGNfZmlsZSldfSB7Ci0gICAgICAgICBpZiB7W2ZpbGUgZXhpc3RzICR2YXJzKGlsbV9ub25fc2RjX2ZpbGUpXX0gewotICAgICAgICAgICAgc2V0IGNvbW1hbmQgInNldElsbU5vblNkY0NvbnN0cmFpbnRGaWxlICR2YXJzKGlsbV9ub25fc2RjX2ZpbGUpXG4iCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcihzdGVwKSxsb2FkX2lsbV9ub25fc2RjX2ZpbGUgJGNvbW1hbmRdCi0gICAgICAgICB9Ci0gICAgICB9Ci0KLSAgICAgIHNldCBjb21tYW5kICJwcmVyb3V0ZV9vcHRfZGVzaWduIC1wcmVmaXggJHZhcnMoc3RlcCkgLW91dF9kaXIgJHZhcnMocnB0X2RpcilcbiIKLQotICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kIHByZXJvdXRlLG9wdF9kZXNpZ24gJGNvbW1hbmRdCi0KLSAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OnNvdXJjZV9wbHVnIHBvc3RfcHJlcm91dGVfdGNsXQotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgIyBSZXNldCBjbG9jayBnYXRpbmcgY2VsbCB1c2FnZQotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCi0gICAgICBpZiB7JHZhcnMoaGllcl9mbG93X3R5cGUpID09ICIycGFzcyJ9IHsKLSAgICAgICAgIHNldCBwdG4gW2ZpbGUgdGFpbCBbcHdkXV0KLSAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhwYXJ0aXRpb25fbGlzdCldICYmIChbbHNlYXJjaCAkdmFycyhwYXJ0aXRpb25fbGlzdCkgJHB0bl0gIT0gLTEpICYmICEkdmFycyhlbmFibGVfZmxleGlsbSl9IHsKLSAgICAgICAgICAgIGlmIHtbc3RyaW5nIGNvbXBhcmUgLW5vY2FzZSAkdmFycyhkYnNfZm9ybWF0KSAiZmUiXT09MH0gewotICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgImNyZWF0ZUludGVyZmFjZUxvZ2ljIC1tb2RlbFR5cGUgdGltaW5nIC1kaXIgJHB0bi5pbG0gLWhvbGRcbiIKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBzZXQgY29tbWFuZCAiY3JlYXRlSW50ZXJmYWNlTG9naWMgLW1vZGVsVHlwZSB0aW1pbmcgLWNlbGx2aWV3IHskdmFycyhvYV9wYXJ0aXRpb25fbGliKSAkcHRuIGFic3RyYWN0fVxuIgotICAgICAgICAgICAgfQotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLGNyZWF0ZV9pbG0gJGNvbW1hbmRdCi0gICAgICAgICB9Ci0gICAgICB9Ci0KLSAgICAgIGlmIHskdmFycyhjb2RlZ2VuKX0gewotICAgICAgICAgcmV0dXJuICRjb21tYW5kcwotICAgICAgfSBlbHNlIHsKLSAgICAgICAgICB1cGxldmVsICMwIGV2YWwgJGNvbW1hbmRzCi0gICAgICB9Ci0gICB9Ci0KLSAgIHByb2MgcnVuX3Bvc3RjdHMge3tmb3JtYXQgMX19IHsKLQotICAgICAgZ2xvYmFsIHZhcnMKLSAgICAgIGdsb2JhbCBlbnYKLSAgICAgIGdsb2JhbCBlcnJvcnMKLQotIyAgICAgIGlmIHsoJHZhcnMoc2tpcF9jdHMpKSB8fCBbcmVnZXhwICJeY2NvcHQiIFtzdHJpbmcgdG9sb3dlciAkdmFycyhjdHNfZW5naW5lKV1dfSB7Ci0jICAgICAgICAgaWYgeyR2YXJzKGN0c19lbmdpbmUpICE9ICJjY29wdF9jdHMifSB7Ci0jICAgICAgICAgICAgcmV0dXJuICIiCi0jICAgICAgICAgfQotIyAgICAgIH0KLQotICAgICBpZiB7JHZhcnMoc2tpcF9jdHMpfSB7IHJldHVybiAiIiB9Ci0KLSAgICAgaWYge1tsaW5kZXggW3NwbGl0ICR2YXJzKHZlcnNpb24pICIuIl0gIDBdIDw9IDE0fSB7Ci0gICAgICAgIGlmIHtbcmVnZXhwICJeY2NvcHQiIFtzdHJpbmcgdG9sb3dlciAkdmFycyhjdHNfZW5naW5lKV1dICYmICgkdmFycyhjY29wdF9lZmZvcnQpICE9ICJsb3ciKX0gewotICAgICAgICAgICByZXR1cm4gIiIKLSAgICAgICAgfQotICAgICB9IGVsc2UgewotICAgICAgICBpZiB7W3N0cmluZyB0b2xvd2VyICR2YXJzKGN0c19lbmdpbmUpXSA9PSAiY2NvcHQifSB7IAotICAgICAgICAgICByZXR1cm4gIiIKLSAgICAgICAgfQotIyAgICAgICAgaWYgeyR2YXJzKGNjb3B0X2VmZm9ydCkgIT0gImxvdyJ9IHsKLSMgICAgICAgICAgIHJldHVybiAiIgotIyAgICAgICAgfQotICAgICB9Ci0KLSAgICAgIHNldCB2YXJzKHN0ZXApIHBvc3RjdHMKLSAgICAgIHNldCBjb21tYW5kcyAiIgotIyAgICAgIGFwcGVuZCBjb21tYW5kcyAic2V0IHZhcnMoc3RlcCkgJHZhcnMoc3RlcClcbiIKLSAKLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICMgSW5pdGlhbGl6ZSBzdGVwIC4uLgotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCi0gICAgICBzZXQgY29tbWFuZCBbRkZfRURJOjppbml0aWFsaXplX3N0ZXAgcG9zdGN0c10KLSAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkZfRURJOjppbnNlcnRfY29tbWVudHNdIAotICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kIHBvc3RjdHMsaW5pdGlhbGl6ZV9zdGVwICRjb21tYW5kXQotCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAjIFNwZWNpZnkgdGhlIElMTSBtb2RlbHMgZm9yIHRoZSB0b3AgcGFydGl0aW9uIChvbmx5IGZvciAycGFzcyBmbG93KQotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgaWYgeyR2YXJzKHRvcCkgJiYgKCR2YXJzKHVzZXJfbW9kZSkgPT0gImhpZXIiKSAmJiAoJHZhcnMoaGllcl9mbG93X3R5cGUpID09ICIycGFzcyIpICYmICEkdmFycyhlbmFibGVfZmxleGlsbSl9IHsKLSMgICAgICAgICBpZiB7ISQodmFycyhibGFja19ib3gpfSB7IAotICAgICAgICAgICAgc2V0IGNvbW1hbmQgIiIKLSAgICAgICAgICAgIGZvcmVhY2ggcGFydCAkdmFycyhwYXJ0aXRpb25fbGlzdCkgewotICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCRwYXJ0LGlsbV9kaXIpXSAmJiAoJHZhcnMoY29kZWdlbikgfHwgW2ZpbGUgaXNkaXJlY3RvcnkgJHZhcnMoJHBhcnQsaWxtX2RpcildKX0gewotICAgICAgICAgICAgICAgICAgaWYge1tsaW5kZXggW3NwbGl0ICR2YXJzKHZlcnNpb24pICIuIl0gIDBdIDw9IDEwfSB7Ci0gICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAic3BlY2lmeUlsbSAtY2VsbCAkcGFydCAtZGlyICR2YXJzKCRwYXJ0LGlsbV9kaXIpXG4iCi0gICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICBpZiB7W3N0cmluZyBjb21wYXJlIC1ub2Nhc2UgJHZhcnMoZGJzX2Zvcm1hdCkgIm9hIl09PTB9IHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJzcGVjaWZ5SWxtIC1jZWxsICRwYXJ0XG4iCi0gICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgInNwZWNpZnlJbG0gLWNlbGwgJHBhcnQgLWRpciAkdmFycygkcGFydCxpbG1fZGlyKVxuIgotICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgIGlmIHtbbGluZGV4IFtzcGxpdCAkdmFycyh2ZXJzaW9uKSAiLiJdICAwXSA8PSAxMH0gewotICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgInNwZWNpZnlJbG0gLWNlbGwgJHBhcnQgLWRpciAuLi8kcGFydC8kcGFydC5pbG1cbiIKLSAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgIGlmIHtbc3RyaW5nIGNvbXBhcmUgLW5vY2FzZSAkdmFycyhkYnNfZm9ybWF0KSAib2EiXT09MH0gewotICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgInNwZWNpZnlJbG0gLWNlbGwgJHBhcnRcbiIKLSAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAic3BlY2lmeUlsbSAtY2VsbCAkcGFydCAtZGlyIC4uLyRwYXJ0LyRwYXJ0LmlsbVxuIgotICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgeyRjb21tYW5kICE9ICIifSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksc3BlY2lmeV9pbG0gJGNvbW1hbmRdCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiB7JHZhcnMoZmxvdykgPT0gIm1tbWMifSB7Ci0gICAgICAgICAgICAgICBzZXQgY29tbWFuZCBbRkZfRURJOjp1cGRhdGVfdGltaW5nIG1tbWNdCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgcG9zdGN0cyx1cGRhdGVfdGltaW5nICRjb21tYW5kXQotICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgW0ZGX0VESTo6ZGVyYXRlX3RpbWluZyBtbW1jXQotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLGRlcmF0ZV90aW1pbmcgJGNvbW1hbmRdCi0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgW0ZGX0VESTo6dXBkYXRlX3RpbWluZyBtaW5tYXhdCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgcG9zdGN0cyx1cGRhdGVfdGltaW5nICRjb21tYW5kXQotICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgW0ZGX0VESTo6ZGVyYXRlX3RpbWluZyBtaW5tYXhdCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksZGVyYXRlX3RpbWluZyAkY29tbWFuZF0KLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIHskdmFycyhpbG0pICYmIFtpbmZvIGV4aXN0cyB2YXJzKGlsbV9ub25fc2RjX2ZpbGUpXX0gewotICAgICAgICAgICAgICAgaWYge1tmaWxlIGV4aXN0cyAkdmFycyhpbG1fbm9uX3NkY19maWxlKV19IHsKLSAgICAgICAgICAgICAgICAgIGlmIHtbbGluZGV4IFtzcGxpdCAkdmFycyh2ZXJzaW9uKSAiLiJdICAwXSA8PSAxMH0gewotICAgICAgICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgImxvYWRUaW1pbmdDb24gLWlsbU5vblNkY0ZpbGUgJHZhcnMoaWxtX25vbl9zZGNfZmlsZSlcbiIKLSAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICBzZXQgY29tbWFuZCAic2V0SWxtTm9uU2RjQ29uc3RyYWludEZpbGUgJHZhcnMoaWxtX25vbl9zZGNfZmlsZSlcbiIKLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxsb2FkX2lsbV9ub25fc2RjX2ZpbGUgJGNvbW1hbmRdCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0jICAgICAgICAgfQotCi0jICAgICAgICAgc2V0IGNvbW1hbmQgW0ZGX0VESTo6aW5pdGlhbGl6ZV90aW1pbmcgbW1tY10KLSMgICAgICAgICBpZiB7IVtpbmZvIGV4aXN0cyB2YXJzKGNwZl9maWxlKV19IHsKLSMgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksaW5pdGlhbGl6ZV90aW1pbmcgJGNvbW1hbmRdCi0jICAgICAgICAgfSBlbHNlIHsKLSMgICAgICAgICAgICBzZXQgZGVmZXJfY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksaW5pdGlhbGl6ZV90aW1pbmcgJGNvbW1hbmRdIAotIyAgICAgICAgIH0KLSAgICAgIH0KLQotICAgICAgYXBwZW5kIGNvbW1hbmRzICJQdXRzIFwiPEZGPiBSVU5OSU5HIFBPU1QtQ1RTIE9QVElNSVpBVElPTiAuLi5cIlxuIgotCi0gICAgICBpZiB7JHZhcnModmVyYm9zZSl9IHsKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiI1xuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjIFJVTk5JTkcgUE9TVC1DVFMgT1BUSU1JWkFUSU9OXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiNcbiIKLSAgICAgIH0KLQotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgIyBMb2FkIG9wdGlvbmFsIHByZSBwb3N0Q1RTIGZpbGUgKHBsdWctaW4pCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0KLSAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OnNvdXJjZV9wbHVnIHByZV9wb3N0Y3RzX3RjbF0KLQotICAgICAgaWYge1tsaW5kZXggW3NwbGl0ICR2YXJzKHZlcnNpb24pICIuIl0gIDBdIDw9IDE0fSB7Ci0gICAgICAgICBpZiB7JHZhcnMoY3RzX2VuZ2luZSkgPT0gImNjb3B0IiAmJiAkdmFycyhjY29wdF9pbnRlZ3JhdGlvbikgPT0gIm5hdGl2ZSJ9IHsKLSAgICAgICAgICAgIHNldCBjb21tYW5kICJQdXRzIFwiPEZGPiBOTyBQT1NULUNUUyBPUFRJTUlaQVRJT04gUkVRVUlSRUQgRk9SIENDT1BUIE5BVElWRSBJTlRFR1JBVElPTlwiXG4iCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgcG9zdGN0cyxvcHRfZGVzaWduICRjb21tYW5kXQotICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICAgICAgICMgUnVuIHBvc3QtQ1RTIG9wdGltaXphdGlvbgotICAgICAgICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgICAgICAgCi0gICAgICAgICAgICBzZXQgY29tbWFuZCAib3B0RGVzaWduIC1wb3N0Q1RTIC1vdXREaXIgJHZhcnMocnB0X2RpcikgLXByZWZpeCBwb3N0Y3RzXG4iCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgcG9zdGN0cyxvcHRfZGVzaWduICRjb21tYW5kXQotICAgICAgICAgfQotICAgICAgfSBlbHNlIHsKLSAgICAgICAgIGlmIHskdmFycyhjdHNfZW5naW5lKSA9PSAiY2NvcHRfY3RzIn0gewotICAgICAgICAgICAgc2V0IGNvbW1hbmQgIm9wdERlc2lnbiAtcG9zdENUUyAtb3V0RGlyICR2YXJzKHJwdF9kaXIpIC1wcmVmaXggcG9zdGN0c1xuIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kIHBvc3RjdHMsb3B0X2Rlc2lnbiAkY29tbWFuZF0KLSAgICAgICAgICB9Ci0gICAgICAgfQotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgIyBMb2FkIG9wdGlvbmFsIHBvc3QgcG9zdENUUyBmaWxlIChwbHVnLWluKQotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCi0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjpzb3VyY2VfcGx1ZyBwb3N0X3Bvc3RjdHNfdGNsIDBdCi0gICAgICBpZiB7JHZhcnMoY29kZWdlbil9IHsKLSAgICAgICAgIHJldHVybiAkY29tbWFuZHMKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgdXBsZXZlbCAjMCBldmFsICRjb21tYW5kcwotICAgICAgfQotICAgfQotCi0gICBwcm9jIHJ1bl9wb3N0Y3RzX2hvbGQge3tmb3JtYXQgMX19IHsKLQotICAgICAgZ2xvYmFsIHZhcnMKLSAgICAgIGdsb2JhbCBlbnYKLSAgICAgIGdsb2JhbCBlcnJvcnMKLQotICAgICAgaWYgeyR2YXJzKHNraXBfY3RzKSB8fCAoW2xzZWFyY2ggJHZhcnMoZml4X2hvbGQpIHBvc3RjdHNdIDwgMCkgfHwgKCR2YXJzKHBvc3RjdHNfc2V0dXBfaG9sZCkgJiYgKCR2YXJzKGN0c19lbmdpbmUpICE9ICJjY29wdF9jdHMiKSl9IHsKLSAgICAgICAgIHJldHVybiAiIgotICAgICAgfQotCi0gICAgICBzZXQgdmFycyhzdGVwKSBwb3N0Y3RzX2hvbGQKLSAgICAgIHNldCBjb21tYW5kcyAiIiAKLSMgICAgICBhcHBlbmQgY29tbWFuZHMgInNldCB2YXJzKHN0ZXApICR2YXJzKHN0ZXApXG4iCi0KLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICMgSW5pdGlhbGl6ZSBzdGVwIC4uLgotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCi0gICAgICBzZXQgY29tbWFuZCBbRkZfRURJOjppbml0aWFsaXplX3N0ZXAgcG9zdGN0c19ob2xkXQotICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRl9FREk6Omluc2VydF9jb21tZW50c10gCi0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgcG9zdGN0c19ob2xkLGluaXRpYWxpemVfc3RlcCAkY29tbWFuZF0KLQotICAgICAgYXBwZW5kIGNvbW1hbmRzICJQdXRzIFwiPEZGPiBSVU5OSU5HIFBPU1QtQ1RTIEhPTEQgRklYSU5HIC4uLlwiXG4iCi0KLSAgICAgIGlmIHskdmFycyh2ZXJib3NlKX0gewotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgUlVOTklORyBQT1NULUNUUyBIT0xEIEZJWElOR1xuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjXG4iCi0gICAgICB9Ci0KLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICMgTG9hZCBwcmUtcG9zdENUUyBob2xkIGZpbGUgKHBsdWctaW4pCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0KLSAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OnNvdXJjZV9wbHVnIHByZV9wb3N0Y3RzX2hvbGRfdGNsXQotCi0gICAgICBzZXQgY29tbWFuZCAib3B0RGVzaWduIC1wb3N0Q1RTIC1ob2xkIC1vdXREaXIgJHZhcnMocnB0X2RpcikgLXByZWZpeCBwb3N0Y3RzX2hvbGRcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCBwb3N0Y3RzX2hvbGQsb3B0X2Rlc2lnbiAkY29tbWFuZF0KLQotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgIyBMb2FkIHBvc3QtcG9zdENUUyBob2xkIGZpbGUgKHBsdWctaW4pCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0KLSAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OnNvdXJjZV9wbHVnIHBvc3RfcG9zdGN0c19ob2xkX3RjbCAwXQotCi0gICAgICBpZiB7JHZhcnMoY29kZWdlbil9IHsKLSAgICAgICAgIHJldHVybiAkY29tbWFuZHMKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgdXBsZXZlbCAjMCBldmFsICRjb21tYW5kcwotICAgICAgfQotICAgfQotCi0gICBwcm9jIHJ1bl9yb3V0ZSB7e2Zvcm1hdCAxfX0gewotCi0gICAgICBnbG9iYWwgdmFycwotICAgICAgZ2xvYmFsIGVudgotICAgICAgZ2xvYmFsIGVycm9ycwotCi0gICAgICBzZXQgdmFycyhzdGVwKSByb3V0ZQotICAgICAgc2V0IGNvbW1hbmRzICIiCi0jICAgICAgYXBwZW5kIGNvbW1hbmRzICJzZXQgdmFycyhzdGVwKSAkdmFycyhzdGVwKVxuIgotCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAjIEluaXRpYWxpemUgc3RlcCAuLi4KLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLQotICAgICAgc2V0IGNvbW1hbmQgW0ZGX0VESTo6aW5pdGlhbGl6ZV9zdGVwIHJvdXRlXQotICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRl9FREk6Omluc2VydF9jb21tZW50c10gCi0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgcm91dGUsaW5pdGlhbGl6ZV9zdGVwICRjb21tYW5kXQotICAgICAgc2V0IGNvbW1hbmQgW0ZGX0VESTo6YWRkX2ZpbGxlcl9jZWxsc10KLSAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCByb3V0ZSxhZGRfZmlsbGVyX2NlbGxzICRjb21tYW5kXQotCi0gICAgICBhcHBlbmQgY29tbWFuZHMgIlB1dHMgXCI8RkY+IFJVTk5JTkcgR0xPQkFML0RFVEFJTCBST1VUSU5HIC4uLlwiXG4iCi0KLSAgICAgIGlmIHskdmFycyh2ZXJib3NlKX0gewotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgUlVOTklORyBHTE9CQUwvREVUQUlMIFJPVVRJTkdcbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiI1xuIgotICAgICAgfQotCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAjIExvYWQgb3B0aW9uYWwgcHJlIHJvdXRlIGZpbGUgKHBsdWctaW4pCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0KLSAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OnNvdXJjZV9wbHVnIHByZV9yb3V0ZV90Y2xdCi0KLSAgICAgIHNldCBjb21tYW5kIFtGRl9FREk6OnJvdXRlX3NlY29uZGFyeV9wZ19uZXRzXQotICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kIHJvdXRlLHJvdXRlX3NlY29uZGFyeV9wZ19uZXRzICRjb21tYW5kXQotCi0gICAgICBzZXQgY29tbWFuZCAiY2hlY2tQbGFjZSAkdmFycyhycHRfZGlyKS8kdmFycyhzdGVwKSxjaGVja19wbGFjZS5ycHRcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCByb3V0ZSxjaGVja19wbGFjZSAkY29tbWFuZF0KLQotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgIyBSb3V0ZSB0aGUgZGVzaWduCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0KLSAgICAgIHNldCBjb21tYW5kICIiCi0gICAgICBzZXQgYXJncyAiIgotICAgICAgaWYgeygkdmFycyhlbmFibGVfb2N2KSA9PSAicHJlX3Bvc3Ryb3V0ZSIpIHx8ICgkdmFycyhlbmFibGVfb2N2KSA9PSAicHJlX3Bvc3RjdHMiKX0gewotIyAgICAgICAgIGlmIHskdmFycyhmbG93KSAhPSAiZGVmYXVsdCJ9IHsKLSAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMoZW5hYmxlX29jdilcbiIKLSAgICAgICAgICAgIGFwcGVuZCBhcmdzICItYW5hbHlzaXNUeXBlIG9uQ2hpcFZhcmlhdGlvbiAiCi0jICAgICAgICAgfQotICAgICAgICAgaWYgeyR2YXJzKGVuYWJsZV9hb2N2KX0gewotICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhlbmFibGVfYW9jdilcbiIKLSAgICAgICAgICAgIGFwcGVuZCBhcmdzICItYW9jdiB0cnVlICIKLSAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhlbmFibGVfYW9jdilcbiIKLSAgICAgICAgIH0KLSAgICAgICAgIGlmIHskdmFycyhlbmFibGVfc29jdil9IHsKLSAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMoZW5hYmxlX3NvY3YpXG4iCi0gICAgICAgICAgICBhcHBlbmQgYXJncyAiLXNvY3YgdHJ1ZSAiCi0gICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMoZW5hYmxlX3NvY3YpXG4iCi0gICAgICAgICB9Ci0gICAgICB9IGVsc2UgewotICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMoZW5hYmxlX29jdikgXCJwcmVfcG9zdHJvdXRlXCJcbiIKLSAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKGVuYWJsZV9hb2N2KSBcInRydWVcIlxuIgotICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMoZW5hYmxlX3NvY3YpIFwidHJ1ZVwiXG4iCi0gICAgICB9Ci0gICAgICBpZiB7JGFyZ3MgIT0gIiJ9IHsKLSAgICAgICAgIHNldCBjb21tYW5kICJzZXRBbmFseXNpc01vZGUgJGFyZ3NcbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCByb3V0ZSxzZXRfYW5hbHlzaXNfbW9kZSAkY29tbWFuZF0KLSAgICAgIH0KLQotICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKHBvc3Ryb3V0ZV9zcHJlYWRfd2lyZXMpXSAmJiAhJHZhcnMocG9zdHJvdXRlX3NwcmVhZF93aXJlcyl9IHsKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAic2V0TmFub1JvdXRlTW9kZSAtZHJvdXRlUG9zdFJvdXRlU3ByZWFkV2lyZSBmYWxzZVxuIgotICAgICAgfQotCi0gICAgICBzZXQgY29tbWFuZCAicm91dGVEZXNpZ24iCi0gICAgICBpZiB7JHZhcnModHJhY2tfb3B0KX0gewotICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyh0cmFja19vcHQpXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZCAiIC10cmFja09wdCIKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyh0cmFja19vcHQpXG4iCi0gICAgICB9Ci0KLSAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCByb3V0ZSxyb3V0ZV9kZXNpZ24gIiRjb21tYW5kXG4iXQotCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAjIFJ1biBja0VDTyBpZiByZXF1ZXN0ZWQKLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLQotICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGNsb2NrX2VjbyldICYmICgoJHZhcnMoY2xvY2tfZWNvKSA9PSAicG9zdF9yb3V0ZSIpIHx8ICgkdmFycyhjbG9ja19lY28pID09ICJib3RoIikpfSB7Ci0gICAgICAgICBzZXQgY29tbWFuZCBbRkZfRURJOjpydW5fY2xvY2tfZWNvIHBvc3Rfcm91dGVdCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgcm91dGUscnVuX2Nsb2NrX2VjbyAkY29tbWFuZF0KLSAgICAgIH0KLQotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgIyBPcHRpb25hbGx5IHJ1biB3aXJlIHNwcmVhZGluZwotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCi0gICAgICBpZiB7W3JlZ3N1YiAibm0iICR2YXJzKHByb2Nlc3MpICIiXSA+IDE2fSB7Ci0gICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhwb3N0cm91dGVfc3ByZWFkX3dpcmVzKV0gJiYgJHZhcnMocG9zdHJvdXRlX3NwcmVhZF93aXJlcyl9IHsKLSAgICAgICAgICBzZXQgY29tbWFuZCAic2V0TmFub1JvdXRlTW9kZSAtZHJvdXRlUG9zdFJvdXRlU3ByZWFkV2lyZSB0cnVlIC1yb3V0ZVdpdGhUaW1pbmdEcml2ZW4gZmFsc2VcbiIKLSAgICAgICAgICBhcHBlbmQgY29tbWFuZCAicm91dGVEZXNpZ24gLXdpcmVPcHRcbiIKLSAgICAgICAgICBhcHBlbmQgY29tbWFuZCAic2V0TmFub1JvdXRlTW9kZSAtZHJvdXRlUG9zdFJvdXRlU3ByZWFkV2lyZSBmYWxzZVxuIgotICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCByb3V0ZSxzcHJlYWRfd2lyZXMgJGNvbW1hbmRdCi0gICAgICAgIH0KLSAgICAgIH0KLQotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgIyBPcHRpb25hbGx5IHJ1biBMUEEKLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLQotICAgICAgaWYgeyR2YXJzKHZlcmlmeV9saXRobyl9IHsKLSAgICAgICAgIGZpbGUgbWtkaXIgJHZhcnMocnB0X2RpcikvTFBBL0RNQwotICAgICAgICAgc2V0IGNvbW1hbmQgInZlcmlmeUxpdGhvIC1yb3V0aW5nTGF5ZXJzT25seSAtdGVjaEZpbGUgJHZhcnMobHBhX3RlY2hfZmlsZSkgLWRpciAkdmFycyhycHRfZGlyKS9MUEFcbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kICJ2aW9sYXRpb25Ccm93c2VyIC1hbGwgLW5vX2Rpc3BsYXlfZmFsc2VcbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kICJsb2FkVmlvbGF0aW9uUmVwb3J0IC10eXBlIENETkxpdGhvIC1maWxlbmFtZSAkdmFycyhycHRfZGlyKS9MUEEvRE1DL21lcmdlZC5oaWZcbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCByb3V0ZSx2ZXJpZnlfbGl0aG8gJGNvbW1hbmRdCi0gICAgICB9Ci0KLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICMgU2V0IGV4dHJhY3Rpb24gbW9kZSB0byBwb3N0cm91dGUKLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgIHNldCBjb21tYW5kICJzZXRFeHRyYWN0UkNNb2RlIC1lbmdpbmUgcG9zdFJvdXRlIgotICAgICAgaWYgeyFbY2F0Y2gge3NldCBhcmcgJHZhcnMocG9zdHJvdXRlX2V4dHJhY3Rpb25fZWZmb3J0KX1dfSB7Ci0gICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKHBvc3Ryb3V0ZV9leHRyYWN0aW9uX2VmZm9ydClcbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgLWVmZm9ydExldmVsICRhcmciCi0gICAgICB9IGVsc2UgewotICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMocG9zdHJvdXRlX2V4dHJhY3Rpb25fZWZmb3J0KVxuIgotICAgICAgfQotICAgICAgaWYgeyFbY2F0Y2gge3NldCBhcmcgJHZhcnModG90YWxfY190aHJlc2gpfV19IHsKLSAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnModG90YWxfY190aHJlc2gpXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZCAiIC10b3RhbF9jX3RoICRhcmciCi0gICAgICB9IGVsc2UgewotICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnModG90YWxfY190aHJlc2gpXG4iCi0gICAgICB9Ci0gICAgICBpZiB7IVtjYXRjaCB7c2V0IGFyZyAkdmFycyhyZWxhdGl2ZV9jX3RocmVzaCl9XX0gewotICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhyZWxhdGl2ZV9jX3RocmVzaClcbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgLXJlbGF0aXZlX2NfdGggJGFyZyIKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhyZWxhdGl2ZV9jX3RocmVzaClcbiIKLSAgICAgIH0KLSAgICAgIGlmIHshW2NhdGNoIHtzZXQgYXJnICR2YXJzKGNvdXBsaW5nX2NfdGhyZXNoKX1dfSB7Ci0gICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKGNvdXBsaW5nX2NfdGhyZXNoKVxuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAtY291cGxpbmdfY190aCAkYXJnIgotICAgICAgfSBlbHNlIHsKLSAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKHJlbGF0aXZlX2NfdGhyZXNoKVxuIgotICAgICAgfQotICAgICAgaWYgeyFbY2F0Y2gge3NldCBhcmcgJHZhcnMocXJjX2xheWVyX21hcCl9XX0gewotICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhxcmNfbGF5ZXJfbWFwKVxuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAtbGVmVGVjaEZpbGVNYXAgJGFyZyIKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhxcmNfbGF5ZXJfbWFwKVxuIgotICAgICAgfQotICAgICAgYXBwZW5kIGNvbW1hbmQgIlxuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kIHJvdXRlLHNldF9leHRyYWN0X3JjX21vZGUgJGNvbW1hbmRdCi0KLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICMgTG9hZCBvcHRpb25hbCBwb3N0IHJvdXRlIGZpbGUgKHBsdWctaW4pCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0KLSAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OnNvdXJjZV9wbHVnIHBvc3Rfcm91dGVfdGNsIDBdCi0KLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICMgVXBkYXRlIHRvIE1NTUMgaWYgZmxvdyBpcyAicHJfbW1tYyIKLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLQotICAgICAgaWYgeyR2YXJzKGZsb3cpICE9ICJkZWZhdWx0In0gewotICAgICAgICAgaWYgeyR2YXJzKGZsb3cpID09ICJwcl9tbW1jIn0gewotICAgICAgICAgICAgc2V0IGNvbW1hbmQgW0ZGX0VESTo6aW5pdGlhbGl6ZV90aW1pbmcgbW1tY10KLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCByb3V0ZSxpbml0aWFsaXplX3RpbWluZyAkY29tbWFuZF0KLSAgICAgICAgIH0KLSAgICAgIH0KLQotICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycyh0aW1lX2Rlc2lnbl9vcHRpb25zLHNldHVwKV19IHsKLSAgICAgICAgIHNldCBjb21tYW5kICJ0aW1lRGVzaWduIC1wb3N0cm91dGUgLXByZWZpeCByb3V0ZSAtb3V0RGlyICR2YXJzKHJwdF9kaXIpXG4iCi0gICAgICB9IGVsc2UgewotICAgICAgICAgc2V0IGNvbW1hbmQgW2Zvcm1hdCAidGltZURlc2lnbiAtcG9zdHJvdXRlIC1wcmVmaXggcm91dGUgLW91dERpciAkdmFycyhycHRfZGlyKSAlc1xuIiAkdmFycyh0aW1lX2Rlc2lnbl9vcHRpb25zLHNldHVwKV0KLSAgICAgIH0KLSAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCByb3V0ZSx0aW1lX2Rlc2lnbiAkY29tbWFuZF0KLQotICAgICAgaWYgeyR2YXJzKGNvZGVnZW4pfSB7Ci0gICAgICAgICByZXR1cm4gJGNvbW1hbmRzCi0gICAgICB9IGVsc2UgewotICAgICAgICAgIHVwbGV2ZWwgIzAgZXZhbCAkY29tbWFuZHMKLSAgICAgIH0KLSAgIH0KLQotICAgcHJvYyBydW5fcG9zdHJvdXRlIHt7Zm9ybWF0IDF9fSB7Ci0KLSAgICAgIGdsb2JhbCB2YXJzCi0gICAgICBnbG9iYWwgZW52Ci0gICAgICBnbG9iYWwgZXJyb3JzCi0KLSAgICAgIHNldCB2YXJzKHN0ZXApIHBvc3Ryb3V0ZQotICAgICAgc2V0IGNvbW1hbmRzICAiIgotIyAgICAgIGFwcGVuZCBjb21tYW5kcyAic2V0IHZhcnMoc3RlcCkgJHZhcnMoc3RlcClcbiIKLQotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgIyBJbml0aWFsaXplIHN0ZXAgLi4uCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0KLSAgICAgIGlmIHskdmFycyhwb3N0cm91dGVfc2V0dXBfaG9sZCl9IHsKLSAgICAgICAgIHNldCBjb21tYW5kIFtGRl9FREk6OmluaXRpYWxpemVfc3RlcCBwb3N0cm91dGVfaG9sZF0KLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkZfRURJOjppbnNlcnRfY29tbWVudHNdIAotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kIHBvc3Ryb3V0ZV9ob2xkLGluaXRpYWxpemVfc3RlcCAkY29tbWFuZF0KLSAgICAgIH0KLQotICAgICAgc2V0IGNvbW1hbmQgW0ZGX0VESTo6aW5pdGlhbGl6ZV9zdGVwIHBvc3Ryb3V0ZV0KLSAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkZfRURJOjppbnNlcnRfY29tbWVudHNdIAotICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kIHBvc3Ryb3V0ZSxpbml0aWFsaXplX3N0ZXAgJGNvbW1hbmRdCi0KLSAgICAgIGlmIHskdmFycyhtZXRhbGZpbGwpID09ICJwcmVfcG9zdHJvdXRlIn0gewotICAgICAgICAgc2V0IGNvbW1hbmQgW0ZGOjpzb3VyY2VfcGx1ZyBtZXRhbGZpbGxfdGNsXQotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kIHBvc3Ryb3V0ZSxhZGRfbWV0YWxmaWxsICRjb21tYW5kXQotICAgICAgfQotCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAjIFJ1biBja0VDTyBpZiByZXF1ZXN0ZWQKLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLQotICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGNsb2NrX2VjbyldICYmICgoJHZhcnMoY2xvY2tfZWNvKSA9PSAicG9zdF9yb3V0ZSIpIHx8ICgkdmFycyhjbG9ja19lY28pID09ICJib3RoIikpfSB7Ci0gICAgICAgICBzZXQgY29tbWFuZCBbRkZfRURJOjpydW5fY2xvY2tfZWNvIHBvc3Rfcm91dGVdCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIlB1dHMgXCI8RkY+IFJVTk5JTkcgUE9TVC1ST1VURSBDTE9DSyBFQ08gLi4uXCJcbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCByb3V0ZSxydW5fY2xvY2tfZWNvICRjb21tYW5kXQotICAgICAgfQotCi0gICAgICBhcHBlbmQgY29tbWFuZHMgIlB1dHMgXCI8RkY+IFJVTk5JTkcgUE9TVC1ST1VURSBPUFRJTUlaQVRJT04gLi4uXCJcbiIKLQotICAgICAgaWYgeyR2YXJzKHZlcmJvc2UpfSB7Ci0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiNcbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyBSVU5OSU5HIFBPU1QtUk9VVEUgT1BUSU1JWkFUSU9OXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiNcbiIKLSAgICAgIH0KLQotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgIyBMb2FkIG9wdGlvbmFsIHByZSBwb3N0cm91dGUgZmlsZSAocGx1Zy1pbikKLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLQotICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6c291cmNlX3BsdWcgcHJlX3Bvc3Ryb3V0ZV90Y2xdCi0gICAgICBpZiB7JHZhcnMoaGlnaF90aW1pbmdfZWZmb3J0KSAmJiBbcmVnZXhwICI5LjEiICR2YXJzKHZlcnNpb24pXX0gewotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJvcHRMZWFrYWdlUG93ZXIgLWZpeFRpbWluZ09ubHlcbiIKLSAgICAgIH0KLSAgICAgIGlmIHskdmFycyhwb3N0cm91dGVfc2V0dXBfaG9sZCl9IHsKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OnNvdXJjZV9wbHVnIHByZV9wb3N0cm91dGVfaG9sZF90Y2xdCi0gICAgICAgICBzZXQgY29tbWFuZCAib3B0RGVzaWduIC1wb3N0Um91dGUgLW91dERpciAkdmFycyhycHRfZGlyKSAtcHJlZml4IHBvc3Ryb3V0ZSAtc2V0dXAgLWhvbGRcbiIKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgICBzZXQgY29tbWFuZCAib3B0RGVzaWduIC1wb3N0Um91dGUgLW91dERpciAkdmFycyhycHRfZGlyKSAtcHJlZml4IHBvc3Ryb3V0ZVxuIgotICAgICAgfQotICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kIHBvc3Ryb3V0ZSxvcHRfZGVzaWduICRjb21tYW5kXQotCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAjIFRyaW0gbWV0YWwgZmlsbCBpZiBhZGRlZAotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCi0gICAgICBpZiB7JHZhcnMobWV0YWxmaWxsKSA9PSAicHJlX3Bvc3Ryb3V0ZSJ9IHsKLSAgICAgICAgIHNldCBjb21tYW5kICJ0cmltTWV0YWxGaWxsXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgcG9zdHJvdXRlLHRyaW1fbWV0YWxmaWxsICRjb21tYW5kXQotICAgICAgfQotCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAjIE9wdGlvbmFsbHkgcnVuIExQQQotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCi0gICAgICBpZiB7JHZhcnModmVyaWZ5X2xpdGhvKX0gewotICAgICAgICAgIyBCQ0w6IEFkZGVkIHN1YnN0IHRvIGhhbmRsZSBkZXJlcmVuY2luZyB2YXJpYWJsZXMKLSAgICAgICAgIGZpbGUgbWtkaXIgW3N1YnN0ICR2YXJzKHJwdF9kaXIpXS9MUEEvRE1DCi0gICAgICAgICBzZXQgY29tbWFuZCAidmVyaWZ5TGl0aG8gLXJvdXRpbmdMYXllcnNPbmx5IC10ZWNoRmlsZSAkdmFycyhscGFfdGVjaF9maWxlKSAtZGlyICR2YXJzKHJwdF9kaXIpL0xQQVxuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmQgInZpb2xhdGlvbkJyb3dzZXIgLWFsbCAtbm9fZGlzcGxheV9mYWxzZVxuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmQgImxvYWRWaW9sYXRpb25SZXBvcnQgLXR5cGUgQ0ROTGl0aG8gLWZpbGVuYW1lICR2YXJzKHJwdF9kaXIpL0xQQS9ETUMvbWVyZ2VkLmhpZlxuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kIHBvc3Ryb3V0ZSx2ZXJpZnlfbGl0aG8gJGNvbW1hbmRdCi0gICAgICB9Ci0KLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICMgTG9hZCBvcHRpb25hbCBwb3N0IHBvc3RSb3V0ZSBmaWxlIChwbHVnLWluKQotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCi0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjpzb3VyY2VfcGx1ZyBwb3N0X3Bvc3Ryb3V0ZV90Y2wgMF0KLQotICAgICAgaWYgeyR2YXJzKGNvZGVnZW4pfSB7Ci0gICAgICAgICByZXR1cm4gJGNvbW1hbmRzCi0gICAgICB9IGVsc2UgewotICAgICAgICAgIHVwbGV2ZWwgIzAgZXZhbCAkY29tbWFuZHMKLSAgICAgIH0KLSAgIH0KLQotICAgcHJvYyBydW5fcG9zdHJvdXRlX2hvbGQge3tmb3JtYXQgMX19IHsKLQotICAgICAgZ2xvYmFsIHZhcnMKLSAgICAgIGdsb2JhbCBlbnYKLSAgICAgIGdsb2JhbCBlcnJvcnMKLQotICAgICAgaWYgeyhbbHNlYXJjaCAkdmFycyhmaXhfaG9sZCkgcG9zdHJvdXRlXSA8IDApIHx8ICR2YXJzKHBvc3Ryb3V0ZV9zZXR1cF9ob2xkKX0gewotICAgICAgICAgcmV0dXJuICIiCi0gICAgICB9Ci0KLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICMgSW5pdGlhbGl6ZSBzdGVwIC4uLgotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCi0gICAgICBzZXQgdmFycyhzdGVwKSBwb3N0cm91dGVfaG9sZAotICAgICAgc2V0IGNvbW1hbmRzICIiCi0jICAgICAgYXBwZW5kIGNvbW1hbmRzICJzZXQgdmFycyhzdGVwKSAkdmFycyhzdGVwKVxuIgotCi0gICAgICBzZXQgY29tbWFuZCBbRkZfRURJOjppbml0aWFsaXplX3N0ZXAgcG9zdHJvdXRlX2hvbGRdCi0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGX0VESTo6aW5zZXJ0X2NvbW1lbnRzXSAKLSAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCBwb3N0cm91dGVfaG9sZCxpbml0aWFsaXplX3N0ZXAgJGNvbW1hbmRdCi0KLSAgICAgIGFwcGVuZCBjb21tYW5kcyAiUHV0cyBcIjxGRj4gUlVOTklORyBQT1NULVJPVVRFIEhPTEQgRklYSU5HIC4uLlwiXG4iCi0KLSAgICAgIGlmIHskdmFycyh2ZXJib3NlKX0gewotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgUlVOTklORyBQT1NULVJPVVRFIEhPTEQgRklYSU5HXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiNcbiIKLSAgICAgIH0KLQotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgIyBMb2FkIG9wdGlvbmFsIHByZSBwb3N0Um91dGUgaG9sZCBmaWxlIChwbHVnLWluKQotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCi0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjpzb3VyY2VfcGx1ZyBwcmVfcG9zdHJvdXRlX2hvbGRfdGNsXQotICAgICAgc2V0IGNvbW1hbmQgIm9wdERlc2lnbiAtcG9zdFJvdXRlIC1ob2xkIgotICAgICAgYXBwZW5kIGNvbW1hbmQgIiAtb3V0RGlyICR2YXJzKHJwdF9kaXIpIC1wcmVmaXggcG9zdHJvdXRlX2hvbGRcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCBwb3N0cm91dGVfaG9sZCxvcHRfZGVzaWduICRjb21tYW5kXQotCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAjIFRyaW0gbWV0YWwgZmlsbCBpZiBhZGRlZAotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCi0gICAgICBpZiB7JHZhcnMobWV0YWxmaWxsKSA9PSAicHJlX3Bvc3Ryb3V0ZSJ9IHsKLSAgICAgICAgIHNldCBjb21tYW5kICJ0cmltTWV0YWxGaWxsXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgcG9zdHJvdXRlX2hvbGQsdHJpbV9tZXRhbGZpbGwgJGNvbW1hbmRdCi0gICAgICB9Ci0KLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICMgT3B0aW9uYWxseSBydW4gTFBBCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0KLSAgICAgIGlmIHskdmFycyh2ZXJpZnlfbGl0aG8pfSB7Ci0gICAgICAgICAjIEJDTDogQWRkZWQgc3Vic3QgdG8gaGFuZGxlIGRlcmVyZW5jaW5nIHZhcmlhYmxlcwotICAgICAgICAgZmlsZSBta2RpciAgW3N1YnN0ICR2YXJzKHJwdF9kaXIpXS9MUEEvRE1DCi0gICAgICAgICBzZXQgY29tbWFuZCAidmVyaWZ5TGl0aG8gLXJvdXRpbmdMYXllcnNPbmx5IC10ZWNoRmlsZSAkdmFycyhscGFfdGVjaF9maWxlKSAtZGlyICR2YXJzKHJwdF9kaXIpL0xQQVxuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmQgInZpb2xhdGlvbkJyb3dzZXIgLWFsbCAtbm9fZGlzcGxheV9mYWxzZVxuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmQgImxvYWRWaW9sYXRpb25SZXBvcnQgLXR5cGUgQ0ROTGl0aG8gLWZpbGVuYW1lICR2YXJzKHJwdF9kaXIpL0xQQS9ETUMvbWVyZ2VkLmhpZlxuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kIHBvc3Ryb3V0ZV9ob2xkLHZlcmlmeV9saXRobyAkY29tbWFuZF0KLSAgICAgIH0KLQotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgIyBMb2FkIG9wdGlvbmFsIHBvc3QgcG9zdFJvdXRlIGhvbGQgZmlsZSAocGx1Zy1pbikKLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLQotICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6c291cmNlX3BsdWcgcG9zdF9wb3N0cm91dGVfaG9sZF90Y2wgMF0KLQotICAgICAgaWYgeyR2YXJzKGNvZGVnZW4pfSB7Ci0gICAgICAgICByZXR1cm4gJGNvbW1hbmRzCi0gICAgICB9IGVsc2UgewotICAgICAgICAgIHVwbGV2ZWwgIzAgZXZhbCAkY29tbWFuZHMKLSAgICAgIH0KLSAgIH0KLQotICAgcHJvYyBydW5fcG9zdHJvdXRlX3NpX2hvbGQge3tmb3JtYXQgMX19IHsKLQotICAgICAgZ2xvYmFsIHZhcnMKLSAgICAgIGdsb2JhbCBlbnYKLSAgICAgIGdsb2JhbCBlcnJvcnMKLQotICAgICAgaWYgeyhbbHNlYXJjaCAkdmFycyhmaXhfaG9sZCkgcG9zdHJvdXRlXSA8IDApIHx8ICR2YXJzKHBvc3Ryb3V0ZV9zZXR1cF9ob2xkKX0gewotICAgICAgICAgcmV0dXJuICIiCi0gICAgICB9Ci0KLSAgICAgIHNldCB2YXJzKHN0ZXApIHBvc3Ryb3V0ZV9zaV9ob2xkCi0gICAgICBzZXQgY29tbWFuZHMgIiIKLSMgICAgICBhcHBlbmQgY29tbWFuZHMgInNldCB2YXJzKHN0ZXApICR2YXJzKHN0ZXApXG4iCi0KLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICMgSW5pdGlhbGl6ZSBzdGVwIC4uLgotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCi0gICAgICBzZXQgY29tbWFuZCBbRkZfRURJOjppbml0aWFsaXplX3N0ZXAgcG9zdHJvdXRlX3NpX2hvbGRdCi0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGX0VESTo6aW5zZXJ0X2NvbW1lbnRzXSAKLSAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCBwb3N0cm91dGVfc2lfaG9sZCxpbml0aWFsaXplX3N0ZXAgJGNvbW1hbmRdCi0KLSAgICAgIGFwcGVuZCBjb21tYW5kcyAiUHV0cyBcIjxGRj4gUlVOTklORyBQT1NULVJPVVRFIFNJLUFXQVJFIEhPTEQgRklYSU5HIC4uLlwiXG4iCi0KLSAgICAgIGlmIHskdmFycyh2ZXJib3NlKX0gewotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgUlVOTklORyBQT1NULVJPVVRFIFNJIEFXQVJFIEhPTEQgRklYSU5HXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiNcbiIKLSAgICAgIH0KLQotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgIyBGb3JjZSBjZWx0aWMgYmFzZWQgU0kgZGVsYXkgY2FsY3VsYXRpb24KLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLQotICAgICAgc2V0IGNvbW1hbmQgInNldERlbGF5Q2FsTW9kZSAtZW5naW5lIHNpZ25hbFN0b3JtIC1zaUF3YXJlIGZhbHNlXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgcG9zdHJvdXRlX3NpX2hvbGQsc2V0X2RlbGF5X2NhbF9tb2RlICRjb21tYW5kXQotCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAjIExvYWQgcHJlLXBvc3RSb3V0ZSBTSSBob2xkIGZpbGUgKHBsdWctaW4pCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0KLSAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OnNvdXJjZV9wbHVnIHByZV9wb3N0cm91dGVfc2lfaG9sZF90Y2xdCi0KLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICMgTG9hZCBvcHRpb25hbCBtZXRhbGZpbGwgcGx1Zy1pbgotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCi0gICAgICBpZiB7JHZhcnMobWV0YWxmaWxsKSA9PSAicHJlX3Bvc3Ryb3V0ZV9zaSJ9IHsKLSAgICAgICAgIHNldCBjb21tYW5kIFtGRjo6c291cmNlX3BsdWcgbWV0YWxmaWxsX3RjbF0KLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCBwb3N0cm91dGVfc2lfaG9sZCxhZGRfbWV0YWxmaWxsICRjb21tYW5kXQotICAgICAgfQotCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAjIFJ1biBwb3N0cm91dGUgU0kgaG9sZCBmaXhpbmcKLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLQotICAgICAgc2V0IGNvbW1hbmQgIm9wdERlc2lnbiAtcG9zdFJvdXRlIC1zaSAtaG9sZCIKLSAgICAgIGFwcGVuZCBjb21tYW5kICIgLW91dERpciAkdmFycyhycHRfZGlyKSAtcHJlZml4IHBvc3Ryb3V0ZV9zaV9ob2xkXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgcG9zdHJvdXRlX3NpX2hvbGQsb3B0X2Rlc2lnbiAkY29tbWFuZF0KLQotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgIyBUcmltIG1ldGFsIGZpbGwgaWYgYWRkZWQKLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLQotICAgICAgaWYgeygkdmFycyhtZXRhbGZpbGwpID09ICJwcmVfcG9zdHJvdXRlIikgfHwKLSAgICAgICAgICAoJHZhcnMobWV0YWxmaWxsKSA9PSAicHJlX3Bvc3Ryb3V0ZV9zaSIpfSB7Ci0gICAgICAgICBzZXQgY29tbWFuZCAidHJpbU1ldGFsRmlsbFxuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kIHBvc3Ryb3V0ZV9zaV9ob2xkLHRyaW1fbWV0YWxmaWxsICRjb21tYW5kXQotICAgICAgfQotCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAjIE9wdGlvbmFsbHkgcnVuIExQQQotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCi0gICAgICBpZiB7JHZhcnModmVyaWZ5X2xpdGhvKX0gewotICAgICAgICAgIyBCQ0w6IEFkZGVkIHN1YnN0IHRvIGhhbmRsZSBkZXJlcmVuY2luZyB2YXJpYWJsZXMKLSAgICAgICAgIGZpbGUgbWtkaXIgIFtzdWJzdCAkdmFycyhycHRfZGlyKV0vTFBBL0RNQwotICAgICAgICAgc2V0IGNvbW1hbmQgInZlcmlmeUxpdGhvIC1yb3V0aW5nTGF5ZXJzT25seSAtdGVjaEZpbGUgJHZhcnMobHBhX3RlY2hfZmlsZSkgLWRpciAkdmFycyhycHRfZGlyKS9MUEFcbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kICJ2aW9sYXRpb25Ccm93c2VyIC1hbGwgLW5vX2Rpc3BsYXlfZmFsc2VcbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kICJsb2FkVmlvbGF0aW9uUmVwb3J0IC10eXBlIENETkxpdGhvIC1maWxlbmFtZSAkdmFycyhycHRfZGlyKS9MUEEvRE1DL21lcmdlZC5oaWZcbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCBwb3N0X3Bvc3Ryb3V0ZV9zaV9ob2xkLHZlcmlmeV9saXRobyAkY29tbWFuZF0KLSAgICAgIH0KLQotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgIyBMb2FkIG9wdGlvbmFsIHBvc3QgcG9zdFJvdXRlIFNJIGhvbGQgZmlsZSAocGx1Zy1pbikKLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLQotICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6c291cmNlX3BsdWcgcG9zdF9wb3N0cm91dGVfc2lfaG9sZF90Y2wgMF0KLQotICAgICAgaWYgeyR2YXJzKGNvZGVnZW4pfSB7Ci0gICAgICAgICByZXR1cm4gJGNvbW1hbmRzCi0gICAgICB9IGVsc2UgewotICAgICAgICAgIHVwbGV2ZWwgIzAgZXZhbCAkY29tbWFuZHMKLSAgICAgIH0KLSAgIH0KLQotICAgcHJvYyBydW5fcG9zdHJvdXRlX3NpIHt7Zm9ybWF0IDF9fSB7Ci0KLSAgICAgIGdsb2JhbCB2YXJzCi0gICAgICBnbG9iYWwgZW52Ci0gICAgICBnbG9iYWwgZXJyb3JzCi0KLSAgICAgIHNldCB2YXJzKHN0ZXApIHBvc3Ryb3V0ZV9zaQotICAgICAgc2V0IGNvbW1hbmRzICIiCi0jICAgICAgYXBwZW5kIGNvbW1hbmRzICJzZXQgdmFycyhzdGVwKSAkdmFycyhzdGVwKVxuIgotCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAjIEluaXRpYWxpemUgc3RlcCAuLi4KLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLQotICAgICAgc2V0IGNvbW1hbmQgW0ZGX0VESTo6aW5pdGlhbGl6ZV9zdGVwIHBvc3Ryb3V0ZV9zaV0KLSAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkZfRURJOjppbnNlcnRfY29tbWVudHNdIAotICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kIHBvc3Ryb3V0ZV9zaSxpbml0aWFsaXplX3N0ZXAgJGNvbW1hbmRdCi0KLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICMgRm9yY2UgY2VsdGljIGJhc2VkIFNJIGRlbGF5IGNhbGN1bGF0aW9uCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0KLSAgICAgIHNldCBjb21tYW5kICJzZXREZWxheUNhbE1vZGUgLWVuZ2luZSBzaWduYWxTdG9ybSAtc2lBd2FyZSBmYWxzZVxuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kIHBvc3Ryb3V0ZV9zaSxzZXRfZGVsYXlfY2FsX21vZGUgJGNvbW1hbmRdCi0KLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICMgTG9hZCBvcHRpb25hbCBtZXRhbGZpbGwgcGx1Zy1pbgotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCi0gICAgICBpZiB7JHZhcnMobWV0YWxmaWxsKSA9PSAicHJlX3Bvc3Ryb3V0ZV9zaSJ9IHsKLSAgICAgICAgIHNldCBjb21tYW5kIFtGRjo6c291cmNlX3BsdWcgbWV0YWxmaWxsX3RjbF0KLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCBwb3N0cm91dGVfc2ksYWRkX21ldGFsZmlsbCAkY29tbWFuZF0KLSAgICAgIH0KLQotICAgICAgYXBwZW5kIGNvbW1hbmRzICJQdXRzIFwiPEZGPiBSVU5OSU5HIFBPU1QtUk9VVEUgU0ktQVdBUkUgT1BUSU1JWkFUSU9OIC4uLlwiXG4iCi0KLSAgICAgIGlmIHskdmFycyh2ZXJib3NlKX0gewotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgUlVOTklORyBQT1NULVJPVVRFIFNJIEFXQVJFIE9QVElNSVpBVElPTlxuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjXG4iCi0gICAgICB9Ci0KLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICMgTG9hZCBvcHRpb25hbCBwcmUgcG9zdFJvdXRlIFNJIGZpbGUgKHBsdWctaW4pCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0KLSAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OnNvdXJjZV9wbHVnIHByZV9wb3N0cm91dGVfc2lfdGNsXQotCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAjIFJ1biBwb3N0IHJvdXRlIHNldHVwIGZpeGluZyB3L1NJCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0KLSAgICAgIHNldCBjb21tYW5kICJvcHREZXNpZ24gLXBvc3RSb3V0ZSAtc2kiCi0gICAgICBhcHBlbmQgY29tbWFuZCAiIC1vdXREaXIgJHZhcnMocnB0X2RpcikgLXByZWZpeCBwb3N0cm91dGVfc2lcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCBwb3N0cm91dGVfc2ksb3B0X2Rlc2lnbiAkY29tbWFuZF0KLQotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgIyBUcmltIG1ldGFsIGZpbGwgaWYgYWRkZWQKLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLQotICAgICAgaWYgeygkdmFycyhtZXRhbGZpbGwpID09ICJwcmVfcG9zdHJvdXRlIikgfHwKLSAgICAgICAgICAoJHZhcnMobWV0YWxmaWxsKSA9PSAicHJlX3Bvc3Ryb3V0ZV9zaSIpfSB7Ci0gICAgICAgICBzZXQgY29tbWFuZCAidHJpbU1ldGFsRmlsbFxuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kIHBvc3Ryb3V0ZV9zaV9ob2xkLHRyaW1fbWV0YWxmaWxsICRjb21tYW5kXQotICAgICAgfQotCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAjIE9wdGlvbmFsbHkgcnVuIExQQQotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCi0gICAgICBpZiB7JHZhcnModmVyaWZ5X2xpdGhvKX0gewotICAgICAgICAgIyBCQ0w6IEFkZGVkIHN1YnN0IHRvIGhhbmRsZSBkZXJlcmVuY2luZyB2YXJpYWJsZXMKLSAgICAgICAgIGZpbGUgbWtkaXIgW3N1YnN0ICR2YXJzKHJwdF9kaXIpXS9MUEEvRE1DCi0gICAgICAgICBzZXQgY29tbWFuZCAidmVyaWZ5TGl0aG8gLXJvdXRpbmdMYXllcnNPbmx5IC10ZWNoRmlsZSAkdmFycyhscGFfdGVjaF9maWxlKSAtZGlyICR2YXJzKHJwdF9kaXIpL0xQQVxuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmQgInZpb2xhdGlvbkJyb3dzZXIgLWFsbCAtbm9fZGlzcGxheV9mYWxzZVxuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmQgImxvYWRWaW9sYXRpb25SZXBvcnQgLXR5cGUgQ0ROTGl0aG8gLWZpbGVuYW1lICR2YXJzKHJwdF9kaXIpL0xQQS9ETUMvbWVyZ2VkLmhpZlxuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kIHBvc3RfcG9zdHJvdXRlX3NpLHZlcmlmeV9saXRobyAkY29tbWFuZF0KLSAgICAgIH0KLQotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgIyBMb2FkIG9wdGlvbmFsIHBvc3QgcG9zdFJvdXRlIFNJIGZpbGUgKHBsdWctaW4pCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0KLSAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OnNvdXJjZV9wbHVnIHBvc3RfcG9zdHJvdXRlX3NpX3RjbCAwXQotCi0gICAgICBpZiB7JHZhcnMoY29kZWdlbil9IHsKLSAgICAgICAgIHJldHVybiAkY29tbWFuZHMKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgdXBsZXZlbCAjMCBldmFsICRjb21tYW5kcwotICAgICAgfQotICAgfQotCi0gICBwcm9jIHJ1bl9zaWdub2ZmIHt7Zm9ybWF0IDF9fSB7Ci0KLSAgICAgIGdsb2JhbCB2YXJzCi0gICAgICBnbG9iYWwgZW52Ci0gICAgICBnbG9iYWwgZXJyb3JzCi0gICAgICBnbG9iYWwgZW52Ci0KLSAgICAgIGlmIHskdmFycyhzdGVwKSAhPSAiYXNzZW1ibGUifSB7Ci0gICAgICAgICBzZXQgdmFycyhzdGVwKSBzaWdub2ZmCi0gICAgICB9Ci0gICAgICBzZXQgY29tbWFuZHMgIiIKLQotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgIyBPcHRpb25hbGx5IHZlcmlmeS9maXggbGl0aG8KLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgIGlmIHskdmFycyhmaXhfbGl0aG8pfSB7Ci0gICAgICAgICAjIEJDTDogQWRkZWQgc3Vic3QgdG8gaGFuZGxlIGRlcmVyZW5jaW5nIHZhcmlhYmxlcwotICAgICAgICAgZmlsZSBta2RpciAgW3N1YnN0ICR2YXJzKHJwdF9kaXIpXS9MUEEvRE1DCi0gICAgICAgICBzZXQgY29tbWFuZCAibG9hZFZpb2xhdGlvblJlcG9ydCAtdHlwZSBDRE5MaXRobyAtZmlsZW5hbWUgJHZhcnMocnB0X2RpcikvTFBBL0RNQy9tZXJnZWQuaGlmXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZCAic2V0TmFub1JvdXRlTW9kZSAtZHJvdXRlUG9zdFJvdXRlTGl0aG9SZXBhaXIgdHJ1ZSBcXFxuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAgICAgICAgICAgICAgICAgLWRyb3V0ZU1pbmltaXplVG9wb2xvZ3lDaGFuZ2UgdHJ1ZVxuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmQgImdsb2JhbERldGFpbFJvdXRlXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZCAid3JpdGVIaWYgLWZpbGUgJHZhcnMocnB0X2RpcikvTFBBL2luY3JfdmVyaWZ5LmhpZlxuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmQgInZlcmlmeUxpdGhvIC1zaWduT2ZmIFxcXG4iIAotICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAgICAgICAgICAgIC1kaXIgJHZhcnMoZGJzX2RpcikvTFBBMiBcXFxuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAgICAgICAgICAgIC1jcHUgJHZhcnMobG9jYWxfY3B1cykgXFxcbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgICAgICAgICAgICAtY29uZmlnICR2YXJzKGxwYV9jb25mX2ZpbGUpIFxcXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZCAiICAgICAgICAgICAgLWluY3JDaGVjayAkdmFycyhycHRfZGlyKS9MUEEvaW5jcl92ZXJpZnkuaGlmXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZCAidmlvbGF0aW9uQnJvd3NlciAtYWxsIC1ub19kaXNwbGF5X2ZhbHNlXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZCAibG9hZFZpb2xhdGlvblJlcG9ydCAtdHlwZSBDRE5MaXRobyAtZmlsZW5hbWUgJHZhcnMocnB0X2RpcikvTFBBMi9ETUMvbWVyZ2VkLmhpZlxuIgotCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgc2lnbm9mZixmaXhfbGl0aG8gJGNvbW1hbmRdCi0gICAgICB9Ci0KLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICMgTG9hZCBvcHRpb25hbCBtZXRhbGZpbGwgcGx1Zy1pbgotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgaWYgeyR2YXJzKG1ldGFsZmlsbCkgPT0gInByZV9zaWdub2ZmIn0gewotICAgICAgICAgc2V0IGNvbW1hbmQgW0ZGOjpzb3VyY2VfcGx1ZyBtZXRhbGZpbGxfdGNsXQotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kIHNpZ25vZmYsYWRkX21ldGFsZmlsbCAkY29tbWFuZF0KLSAgICAgIH0KLQotICAgICAgc2V0IGNvbW1hbmQgW0ZGX0VESTo6aW5pdGlhbGl6ZV9zdGVwIHNpZ25vZmZdCi0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGX0VESTo6aW5zZXJ0X2NvbW1lbnRzXSAKLSMgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgc2lnbm9mZixpbml0aWFsaXplX3N0ZXAgJGNvbW1hbmRdCi0gICAgICBhcHBlbmQgY29tbWFuZHMgJGNvbW1hbmQKLQotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgIyBMb2FkIG9wdGlvbmFsIHByZSBzaWdub2ZmIGZpbGUgKHBsdWctaW4pCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjpzb3VyY2VfcGx1ZyBwcmVfc2lnbm9mZl90Y2xdCi0KLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICMgUnVuIFJDIEV4dHJhY3Rpb24KLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLQotICAgICAgYXBwZW5kIGNvbW1hbmRzICJQdXRzIFwiPEZGPiBSVU5OSU5HIEZJTkFMIFNJR05PRkYgLi4uXCJcbiIKLQotICAgICAgaWYgeyR2YXJzKHZlcmJvc2UpfSB7Ci0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiNcbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyBSVU5OSU5HIEZJTkFMIFNJR05PRkZcbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiI1xuIgotICAgICAgfQotCi0gICAgICBzZXQgY29tbWFuZCAiZXh0cmFjdFJDXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgc2lnbm9mZixleHRyYWN0X3JjICRjb21tYW5kXQotCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAjIER1bXAgU1BFRiBmb3Igc2lnbm9mZiBTVEEKLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLQotICAgICAgaWYgeyR2YXJzKHNraXBfc2lnbm9mZl9jaGVja3MpfSB7Ci0gICAgICAgICBzZXQgY29tbWFuZCAiIgotICAgICAgICAgZm9yZWFjaCBjb3JuZXIgJHZhcnMocmNfY29ybmVycykgewotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgInJjT3V0IC1yY19jb3JuZXIgJGNvcm5lciAtc3BlZiAkY29ybmVyLnNwZWYuZ3pcbiIKLSAgICAgICAgIH0KLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgICBzZXQgY29tbWFuZCAiZm9yZWFjaCBjb3JuZXIgXCR2YXJzKGFjdGl2ZV9yY19jb3JuZXJzKSB7XG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZCAiICAgcmNPdXQgLXJjX2Nvcm5lciBcJGNvcm5lciAtc3BlZiBcJGNvcm5lci5zcGVmLmd6XG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZCAifVxuIgotICAgICAgfSAKLSAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCBzaWdub2ZmLGR1bXBfc3BlZiAkY29tbWFuZF0KLQotICAgICAgaWYgeygoJHZhcnMoc3RlcCkgPT0gImFzc2VtYmxlIikgfHwgKCR2YXJzKHN0ZXApID09ICJzaWdub2ZmIikpfSB7Ci0gICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoZW5hYmxlX3NpZ25vZmZfZWNvKV0gJiYgJHZhcnMoZW5hYmxlX3NpZ25vZmZfZWNvKX0gewotICAgICAgICAgICAgc2V0IGNvbW1hbmQgInNpZ25vZmZUaW1lRGVzaWduIC1yZXBvcnRPbmx5IC1ub0Vjb0RiIC1vdXREaXIgJHZhcnMocnB0X2RpcilcbiIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCBzaWdub2ZmLHNpZ25vZmZfdGltZV9kZXNpZ24gJGNvbW1hbmRdICAgICAgICAgCi0gICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgaWYgeyR2YXJzKGVuYWJsZV9zaV9hd2FyZSl9IHsKLSAgICAgICAgICAgICAgIGlmIHshW2luZm8gZXhpc3RzIHZhcnModGltZV9kZXNpZ25fb3B0aW9ucyxzZXR1cCldfSB7Ci0gICAgICAgICAgICAgICAgICBzZXQgY29tbWFuZCAidGltZURlc2lnbiAtcHJlZml4IHNpZ25vZmYgLXNpZ25vZmYgLXJlcG9ydE9ubHkgLW91dERpciAkdmFycyhycHRfZGlyKVxuIgotICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgIHNldCBjb21tYW5kIFtmb3JtYXQgInRpbWVEZXNpZ24gLXByZWZpeCBzaWdub2ZmIC1zaWdub2ZmIC1yZXBvcnRPbmx5IC1vdXREaXIgJHZhcnMocnB0X2RpcikgJXNcbiIgJHZhcnModGltZV9kZXNpZ25fb3B0aW9ucyxzZXR1cCldCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycyh0aW1lX2Rlc2lnbl9vcHRpb25zLHNldHVwKV19IHsKLSAgICAgICAgICAgICAgICAgIHNldCBjb21tYW5kICJ0aW1lRGVzaWduIC1wcmVmaXggc2lnbm9mZiAtc2lnbm9mZiAtc2kgLXJlcG9ydE9ubHkgLW91dERpciAkdmFycyhycHRfZGlyKVxuIgotICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgIHNldCBjb21tYW5kIFtmb3JtYXQgInRpbWVEZXNpZ24gLXByZWZpeCBzaWdub2ZmIC1zaWdub2ZmIC1zaSAtcmVwb3J0T25seSAtb3V0RGlyICR2YXJzKHJwdF9kaXIpICVzXG4iICR2YXJzKHRpbWVfZGVzaWduX29wdGlvbnMsc2V0dXApXQotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kIHNpZ25vZmYsdGltZV9kZXNpZ25fc2V0dXAgJGNvbW1hbmRdCi0gICAgICAgICAgICBpZiB7JHZhcnMoZW5hYmxlX3NpX2F3YXJlKX0gewotICAgICAgICAgICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycyh0aW1lX2Rlc2lnbl9vcHRpb25zLGhvbGQpXX0gewotICAgICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgInRpbWVEZXNpZ24gLXByZWZpeCBzaWdub2ZmIC1zaWdub2ZmIC1yZXBvcnRPbmx5IC1ob2xkIC1vdXREaXIgJHZhcnMocnB0X2RpcilcbiIKLSAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICBzZXQgY29tbWFuZCBbZm9ybWF0ICJ0aW1lRGVzaWduIC1wcmVmaXggc2lnbm9mZiAtc2lnbm9mZiAtcmVwb3J0T25seSAtaG9sZCAtb3V0RGlyICR2YXJzKHJwdF9kaXIpICVzXG4iICR2YXJzKHRpbWVfZGVzaWduX29wdGlvbnMsaG9sZCldCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycyh0aW1lX2Rlc2lnbl9vcHRpb25zLGhvbGQpXX0gewotICAgICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgInRpbWVEZXNpZ24gLXByZWZpeCBzaWdub2ZmIC1zaWdub2ZmIC1zaSAtcmVwb3J0T25seSAtaG9sZCAgLW91dERpciAkdmFycyhycHRfZGlyKVxuIgotICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgIHNldCBjb21tYW5kIFtmb3JtYXQgInRpbWVEZXNpZ24gLXByZWZpeCBzaWdub2ZmIC1zaWdub2ZmIC1zaSAtcmVwb3J0T25seSAtaG9sZCAtb3V0RGlyICR2YXJzKHJwdF9kaXIpICVzXG4iICR2YXJzKHRpbWVfZGVzaWduX29wdGlvbnMsaG9sZCldCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgc2lnbm9mZix0aW1lX2Rlc2lnbl9ob2xkICRjb21tYW5kXQotICAgICAgICAgfQotICAgICAgfQotCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAjIER1bXAgR0RTIGFuZC9vciBPQSBkYXRhIGJhc2UKLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhnZHNfbGF5ZXJfbWFwKV19IHsKLSAgICAgICAgIHNldCBjb21tYW5kICJzdHJlYW1PdXQgJHZhcnMoZGVzaWduKS5nZHMuZ3ogLW1hcEZpbGUgJHZhcnMoZ2RzX2xheWVyX21hcCkgIgotICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGdkc19maWxlcyldfSB7Ci0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiLW1lcmdlIHsgIgotICAgICAgICAgICAgZm9yZWFjaCBmaWxlICR2YXJzKGdkc19maWxlcykgewotICAgICAgICAgICAgICAgaWYge1tmaWxlIGV4aXN0cyAkZmlsZV19IHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICIkZmlsZSAiCi0gICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgcHV0cyAgIjxGRj4gV0FSTklORzogR0RTIEZJTEUgJGZpbGUgRE9FUyBOT1QgRVhJU1QgLi4uLiBTS0lQUElOR1xuIgotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIn0iCi0gICAgICAgICB9Ci0gICAgICAgICBhcHBlbmQgY29tbWFuZCAiXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgc2lnbm9mZixzdHJlYW1fb3V0ICRjb21tYW5kXQotICAgICAgfQotICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKG9hc2lzX2xheWVyX21hcCldfSB7Ci0gICAgICAgICBzZXQgY29tbWFuZCAib2FzaXNPdXQgJHZhcnMoZGVzaWduKS5vYXNpcy5neiAtbWFwRmlsZSAkdmFycyhvYXNpc19sYXllcl9tYXApICIKLSAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhvYXNpc19maWxlcyldfSB7Ci0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiLW1lcmdlIHsgIgotICAgICAgICAgICAgZm9yZWFjaCBmaWxlICR2YXJzKG9hc2lzX2ZpbGVzKSB7Ci0gICAgICAgICAgICAgICBpZiB7W2ZpbGUgZXhpc3RzICRmaWxlXX0gewotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiRmaWxlICIKLSAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICBwdXRzICAiPEZGPiBXQVJOSU5HOiBPQVNJUyBGSUxFICRmaWxlIERPRVMgTk9UIEVYSVNUIC4uLi4gU0tJUFBJTkdcbiIKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJ9IgotICAgICAgICAgfQotICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIlxuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kIHNpZ25vZmYsb2FzaXNfb3V0ICRjb21tYW5kXQotICAgICAgfQotCi0jICAgICAgaWYgeyhbaW5mbyBleGlzdHMgdmFycyhvYV9yZWZfbGliKV0gJiYgKCR2YXJzKG9hX3JlZl9saWIpICE9ICIiKSkgJiYKLSMgICAgICAgICAgKFtpbmZvIGV4aXN0cyB2YXJzKG9hX2Rlc2lnbl9saWIpXSAmJiAoJHZhcnMob2FfZGVzaWduX2xpYikgIT0gIiIpKX0gewotIyAgICAgICAgIHNldCBjb21tYW5kICJzYXZlT2FEZXNpZ24gJHZhcnMob2FfZGVzaWduX2xpYikgJHZhcnMoZGVzaWduKSBzaWdub2ZmXG4iCi0jICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kIHNpZ25vZmYsc2F2ZV9vYV9kZXNpZ24gJGNvbW1hbmRdCi0jICAgICAgfQotCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAjIER1bXAgTW9kZWwgZm9yIFRvcCBMZXZlbCAoSGllcmFyY2hpY2FsIEZsb3cgT25seSkKLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgIHNldCBwdG4gW2ZpbGUgdGFpbCBbcHdkXV0KLSAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhwYXJ0aXRpb25fbGlzdCldfSB7Ci0gICAgICAgICBpZiB7KFtsc2VhcmNoICR2YXJzKHBhcnRpdGlvbl9saXN0KSAkcHRuXSAhPSAtMSl9IHsKLSAgICAgICAgICAgIGlmIHtbc3RyaW5nIGNvbXBhcmUgLW5vY2FzZSAkdmFycyhkYnNfZm9ybWF0KSAiZmUiXT09MH0gewotICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgImNyZWF0ZUludGVyZmFjZUxvZ2ljIC1kaXIgJHB0bi5pbG1cbiIKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBpZiB7W2xpbmRleCBbc3BsaXQgJHZhcnModmVyc2lvbikgIi4iXSAgMF0gPiAxMH0gewotICAgICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgImNyZWF0ZUludGVyZmFjZUxvZ2ljIC1jZWxsdmlldyB7JHZhcnMob2FfcGFydGl0aW9uX2xpYikgJHB0biBhYnN0cmFjdH1cbiIKLSAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICBzZXQgY29tbWFuZCAiY3JlYXRlSW50ZXJmYWNlTG9naWMgLWRpciAkcHRuLmlsbVxuIgotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfSAKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCBzaWdub2ZmLGNyZWF0ZV9pbG0gJGNvbW1hbmRdCi0gICAgICAgICB9IGVsc2VpZiB7JHZhcnMoc3RlcCkgIT0gImFzc2VtYmxlIn0gewotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kIHNpZ25vZmYsdW5mbGF0dGVuSWxtICJ1bmZsYXR0ZW5JbG1cbiJdCi0gICAgICAgICB9Ci0gICAgICB9Ci0KLSAgICAgIGlmIHskdmFycyh2ZXJib3NlKX0gewotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgUlVOTklORyBWRVJJRlkgQ09NTUFORFNcbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiI1xuIgotICAgICAgfQotCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAjIFJ1biB2ZXJpZnkgY29tbWFuZHMKLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgIGlmIHshKFtpbmZvIGV4aXN0cyB2YXJzKGVuYWJsZV9zaWdub2ZmX2VjbyldICYmICR2YXJzKGVuYWJsZV9zaWdub2ZmX2VjbykpfSB7Ci0gICAgICAgICBzZXQgY29tbWFuZCAic3VtbWFyeVJlcG9ydCAtb3V0RGlyICR2YXJzKHJwdF9kaXIpXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgc2lnbm9mZixzdW1tYXJ5X3JlcG9ydCAkY29tbWFuZF0KLSAgICAgIH0KLSAgICAgIHNldCBjb21tYW5kICJ2ZXJpZnlDb25uZWN0aXZpdHkgLW5vQW50ZW5uYVxuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kIHNpZ25vZmYsdmVyaWZ5X2Nvbm5lY3Rpdml0eSAkY29tbWFuZF0KLSAgICAgIHNldCBjb21tYW5kICJbdmVyaWZ5X2dlb21ldHJ5X2NvbW1hbmRdXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgc2lnbm9mZix2ZXJpZnlfZ2VvbWV0cnkgJGNvbW1hbmRdCi0gICAgICBzZXQgY29tbWFuZCAidmVyaWZ5TWV0YWxEZW5zaXR5XG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgc2lnbm9mZix2ZXJpZnlfbWV0YWxfZGVuc2l0eSAkY29tbWFuZF0KLSAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhwYXJ0aXRpb25fbGlzdCldICYmIChbbHNlYXJjaCAkdmFycyhwYXJ0aXRpb25fbGlzdCkgJHB0bl0gIT0gLTEpfSB7Ci0gICAgICAgICBpZiB7W3N0cmluZyBjb21wYXJlICR2YXJzKGRic19mb3JtYXQpICJmZSJdPT0wfSB7Ci0gICAgICAgICAgIHNldCBjb21tYW5kICJ2ZXJpZnlQcm9jZXNzQW50ZW5uYSAtbGVmZmlsZSAkcHRuLmFudGVubmEubGVmXG4iCi0gICAgICAgICB9IGVsc2UgewotICAgICAgICAgICBzZXQgY29tbWFuZCAidmVyaWZ5UHJvY2Vzc0FudGVubmFcbiIKLSAgICAgICAgICMgTm90IHN1cmUgeWV0ICBob3cgc2F2ZV9hYnN0cmFjdCAgd291bGQgYmUgY2FsbGVkLSBza2lwIHRoaXMgZm9yIG5vdy4KLSAgICAgICAgIH0KLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgICBzZXQgY29tbWFuZCAidmVyaWZ5UHJvY2Vzc0FudGVubmFcbiIKLSAgICAgIH0KLSAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCBzaWdub2ZmLHZlcmlmeV9wcm9jZXNzX2FudGVubmEgJGNvbW1hbmRdCi0KLSAgICAgIGlmIHsoW2luZm8gZXhpc3RzIHZhcnMoZW5hYmxlX2x2cyldICYmICR2YXJzKGVuYWJsZV9sdnMpKSAmJiAoJHZhcnMoZGJzX2Zvcm1hdCkgPT0gIm9hIil9IHsKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkZfRURJOjpjcmVhdGVfbHZzX2RhdGFdCi0gICAgICB9Ci0KLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICMgTG9hZCBvcHRpb25hbCBwb3N0IHNpZ25vZmYgZmlsZSAocGx1Zy1pbikKLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OnNvdXJjZV9wbHVnIHBvc3Rfc2lnbm9mZl90Y2wgMF0KLQotICAgICAgaWYgeyR2YXJzKGNvZGVnZW4pfSB7Ci0gICAgICAgICByZXR1cm4gJGNvbW1hbmRzCi0gICAgICB9IGVsc2UgewotICAgICAgICAgIHVwbGV2ZWwgIzAgZXZhbCAkY29tbWFuZHMKLSAgICAgIH0KLQotICAgfQotCi0gICBwcm9jIHJ1bl9hc3NlbWJsZSB7e2Zvcm1hdCAxfX0gewotCi0gICAgICBnbG9iYWwgdmFycwotICAgICAgZ2xvYmFsIGVycm9ycwotICAgICAgZ2xvYmFsIGVudgotCi0gICAgICBzZXQgdmFycyhzdGVwKSBhc3NlbWJsZQotICAgICAgc2V0IGNvbW1hbmRzICIiCi0gICAgICBhcHBlbmQgY29tbWFuZHMgInNldCB2YXJzKHN0ZXApICR2YXJzKHN0ZXApXG4iCi0KLSAgICAgIEZGX0VESTo6aW5pdGlhbGl6ZV9zdGVwIGFzc2VtYmxlCi0KLSMgICAgICBpZiB7JHZhcnMocmVwb3J0X3J1bl90aW1lKX0gewotIyAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAic2V0IHZhcnMoJHZhcnMoc3RlcCksc3RhcnRfdGltZSkgXFtjbG9jayBzZWNvbmRzXF1cbiIKLSMgICAgICB9Ci0KLSAgICAgIGlmIHskdmFycyh2ZXJib3NlKX0gewotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgQVNTRU1CTElORyBERVNJR05cbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiI1xuIgotICAgICAgfQotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgIyBMb2FkICJwcmUgYXNzZW1ibGUiIHBsdWctaW4gc2NyaXB0Ci0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjpzb3VyY2VfcGx1ZyBwcmVfYXNzZW1ibGVfdGNsXQotCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAjIEFzc2VtYmxlIHRoZSBkZXNpZ24KLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgIHNldCB2YXJzKGlsbSkgZmFsc2UKLSAgICAgIHNldCBpbG1fbGlzdCBbbGlzdF0KLSAgICAgIHNldCBwYWNfbGlzdCBbbGlzdF0KLSAgICAgIGlmIHskdmFycyhlbmFibGVfcGFjKX0gewotICAgICAgICAgZm9yZWFjaCBwYXJ0ICR2YXJzKHBhcnRpdGlvbl9saXN0KSB7Ci0gICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJHBhcnQscGFjX21vZGUpXX0gIHsKLSAgICAgICAgICAgICAgIGlmIHskdmFycygkcGFydCxwYWNfbW9kZSkgPT0gImlsbSJ9IHsKLSAgICAgICAgICAgICAgICAgIGxhcHBlbmQgaWxtX2xpc3QgJHBhcnQKLSAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICBsYXBwZW5kIHBhY19saXN0ICRwYXJ0Ci0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0gICAgICB9Ci0gICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoaWxtX2xpc3QpXSAmJiAoJHZhcnMoaWxtX2xpc3QpICE9ICIiKX0gewotICAgICAgICAgZm9yZWFjaCBpbG0gJHZhcnMoaWxtX2xpc3QpIHsKLSAgICAgICAgICAgIGlmIHsoW2xzZWFyY2ggJGlsbV9saXN0ICRpbG1dID09IC0xKSAmJiAoW2xzZWFyY2ggJHBhY19saXN0ICRpbG1dID09IC0xKX0gewotICAgICAgICAgICAgICAgbGFwcGVuZCBpbG1fbGlzdCAkaWxtCi0gICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0gICAgICB9Ci0gICAgICBpZiB7JGlsbV9saXN0ICE9ICIifSB7Ci0gICAgICAgICBzZXQgdmFycyhpbG0pIHRydWUgCi0gICAgICB9Ci0KLSAgICAgICMgQkNMOiBBZGRlZCB0YWlsIG9mIHN1YnN0IG9mIHZhcnMoZGJzX2RpcikKLSAgICAgICMgTm90ZSAtIEVESUZGIEhpZXJhcmNoaWNhbCBmbG93IGlzIGN1cnJlbnRseSBJTkNPTVBBVElCTEUgd2l0aCBGRiBkaXIgc3RydWN0dXJlCi0gICAgICAjIFRoZSBmb2xsb3dpbmcgY29kZSBhcHBlYXJzIHRvIHJlbHkgb24gdmFycyhkYnNfZGlyKSBhbHdheXMgYmVpbmcgdW5kZXIgJHZhcnMocGFydGl0aW9uX2RpcikvJHZhcnMoZGVzaWduKQotICAgICAgIyBUaGlzIG5lZWRzIHRvIGJlIHJlY29uY2lsZWQKLQotICAgICAgaWYgeyR2YXJzKGhpZXJfZmxvd190eXBlKSA9PSAiMnBhc3MifSB7Ci0gICAgICAgICBzZXQgcGFydGl0aW9uX2RpciAkdmFycyhwYXJ0aXRpb25fZGlyX3Bhc3MyKQotICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICBzZXQgcGFydGl0aW9uX2RpciAkdmFycyhwYXJ0aXRpb25fZGlyKQotICAgICAgfQotICAgICAgc2V0IGRpciBbZmlsZSB0YWlsIFtzdWJzdCAkdmFycyhkYnNfZGlyKV1dCi0KLSAgICAgIGlmIHtbbGluZGV4IFtzcGxpdCAkdmFycyh2ZXJzaW9uKSAiLiJdICAwXSA+IDEwfSB7Ci0gICAgICAgICBzZXQgY29tbWFuZCBbRkZfRURJOjppbml0aWFsaXplX3RpbWluZyBtbW1jXQotICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGNwZl9maWxlKV0gJiYgJHZhcnMoY3BmX3RpbWluZyl9IHsKLSAgICAgICAgICAgIHNldCBtbW1jX2ZpbGUgJHZhcnMoc2NyaXB0X2RpcikvaW5jcl92aWV3X2RlZmluaXRpb24udGNsCi0gICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnModmlld19kZWZpbml0aW9uX3RjbCldfSB7Ci0gICAgICAgICAgICAgICAgc2V0IG1tbWNfZmlsZSAkdmFycyh2aWV3X2RlZmluaXRpb25fdGNsKQotICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgc2V0IG1tbWNfZmlsZSAkdmFycyhzY3JpcHRfZGlyKS92aWV3X2RlZmluaXRpb24udGNsCi0gICAgICAgICAgICAgfQotICAgICAgICAgIH0KLSAgICAgIH0KLSAgICAgIGlmIHsoW3N0cmluZyBjb21wYXJlIC1ub2Nhc2UgJHZhcnMoZGJzX2Zvcm1hdCkgIm9hIl09PTApICYmIChbbGluZGV4IFtzcGxpdCAkdmFycyh2ZXJzaW9uKSAiLiJdICAwXSA+IDEwKX0gewotCi0gICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJHZhcnMoZGVzaWduKSxhc3NlbWJsZV9zdGVwKV19IHsKLSAgICAgICAgICAgIHNldCBjb21tYW5kICJhc3NlbWJsZURlc2lnbiAtdG9wRGVzaWduIHskdmFycyhvYV9wYXJ0aXRpb25fbGliKSAkdmFycyhkZXNpZ24pICR2YXJzKCR2YXJzKGRlc2lnbiksYXNzZW1ibGVfc3RlcCl9IC1tbW1jRmlsZSAkbW1tY19maWxlIgotICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHNldCBjb21tYW5kICJhc3NlbWJsZURlc2lnbiAtdG9wRGVzaWduIHskdmFycyhvYV9wYXJ0aXRpb25fbGliKSAkdmFycyhkZXNpZ24pIHNpZ25vZmZ9IC1tbW1jRmlsZSAkbW1tY19maWxlIgotICAgICAgICAgfQotICAgICAgICAgZm9yZWFjaCBwYXJ0ICR2YXJzKHBhcnRpdGlvbl9saXN0KSB7Ci0gICAgICAgICAgICBpZiB7W2xzZWFyY2ggJGlsbV9saXN0ICRwYXJ0XSA9PSAtMX0gewotICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCRwYXJ0LGFzc2VtYmxlX3N0ZXApXX0gewotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIlxcXG4gICAtYmxvY2sgeyR2YXJzKG9hX3BhcnRpdGlvbl9saWIpICRwYXJ0ICR2YXJzKCR2YXJzKCRwYXJ0KSxhc3NlbWJsZV9zdGVwKX0iCi0gICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIlxcXG4gICAtYmxvY2sgeyR2YXJzKG9hX3BhcnRpdGlvbl9saWIpICRwYXJ0IHNpZ25vZmZ9IgotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAgfQotICAgICAgfSBlbHNlIHsKLSMgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgYXNzZW1ibGUsaW5pdGlhbGl6ZV90aW1pbmcgJGNvbW1hbmRdCi0gICAgICAgICBpZiB7W2xpbmRleCBbc3BsaXQgJHZhcnModmVyc2lvbikgIi4iXSAgMF0gPiAxMH0gewotICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGNwZl9maWxlKV0gJiYgJHZhcnMoY3BmX3RpbWluZyl9IHsKLSAgICAgICAgICAgICAgIHNldCBhc3NlbWJsZV9jb21tYW5kICJhc3NlbWJsZURlc2lnbiAtY3BmRmlsZSAkdmFycyhjcGZfZmlsZSkiCi0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgc2V0IGFzc2VtYmxlX2NvbW1hbmQgImFzc2VtYmxlRGVzaWduIC1tbW1jRmlsZSAkbW1tY19maWxlIgotICAgICAgICAgICAgfQotICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHNldCBhc3NlbWJsZV9jb21tYW5kICJhc3NlbWJsZURlc2lnbiIKLSAgICAgICAgIH0KLSAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkdmFycyhkZXNpZ24pLGFzc2VtYmxlX2RicyldfSB7Ci0gICAgICAgICAgICBzZXQgY29tbWFuZCAiJGFzc2VtYmxlX2NvbW1hbmQgLWZlIC10b3BEaXIgJHZhcnMoJHZhcnMoZGVzaWduKSxhc3NlbWJsZV9kYnMpIgotICAgICAgICAgfSBlbHNlaWYge1tpbmZvIGV4aXN0cyB2YXJzKCR2YXJzKGRlc2lnbiksYXNzZW1ibGVfc3RlcCldfSB7Ci0gICAgICAgICAgICBzZXQgY29tbWFuZCAiJGFzc2VtYmxlX2NvbW1hbmQgLWZlICRwYXJ0aXRpb25fZGlyLyR2YXJzKGRlc2lnbikvJGRpci8kdmFycygkdmFycyhkZXNpZ24pLGFzc2VtYmxlX3N0ZXApLmVuYy5kYXQiCi0gICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgc2V0IGNvbW1hbmQgIiRhc3NlbWJsZV9jb21tYW5kIC1mZSAtdG9wRGlyICRwYXJ0aXRpb25fZGlyLyR2YXJzKGRlc2lnbikvJGRpci9zaWdub2ZmLmVuYy5kYXQgIgotICAgICAgICAgfQotICAgICAgICAgZm9yZWFjaCBwYXJ0ICR2YXJzKHBhcnRpdGlvbl9saXN0KSB7Ci0gICAgICAgICAgICBpZiB7W2xzZWFyY2ggJGlsbV9saXN0ICRwYXJ0XSA9PSAtMX0gewotICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCRwYXJ0LGFzc2VtYmxlX2RicyldfSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiXFxcbiAgIC1ibG9ja0RpciAkdmFycygkcGFydCxhc3NlbWJsZV9kYnMpIgotICAgICAgICAgICAgICAgfSBlbHNlaWYge1tpbmZvIGV4aXN0cyB2YXJzKCRwYXJ0LGFzc2VtYmxlX3N0ZXApXX0gewotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIlxcXG4gICAtYmxvY2tEaXIgJHBhcnRpdGlvbl9kaXIvJHBhcnQvJGRpci8kdmFycygkcGFydCxhc3NlbWJsZV9zdGVwKS5lbmMuZGF0IgotICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJcXFxuICAgLWJsb2NrRGlyICRwYXJ0aXRpb25fZGlyLyRwYXJ0LyRkaXIvc2lnbm9mZi5lbmMuZGF0IgotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAgfQotICAgICAgfQotICAgICAgaWYgeyR2YXJzKGVuYWJsZV9wYWMpfSB7Ci0gICAgICAgICBhcHBlbmQgY29tbWFuZCAiXFxcbiAtaGllckRpciAkdmFycyhwYWNfc2NyYXRjaF9kaXIpIgotICAgICAgfQotICAgICAgYXBwZW5kIGNvbW1hbmQgIlxuXG4iCi0KLSAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCBhc3NlbWJsZSxhc3NlbWJsZV9kZXNpZ24gJGNvbW1hbmRdCi0KLSAgICAgIGlmIHsoW2xpbmRleCBbc3BsaXQgJHZhcnModmVyc2lvbikgIi4iXSAgMF0gPiAxMCkgJiYgJHZhcnMoY3BmX3RpbWluZyl9IHsKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAic291cmNlICRtbW1jX2ZpbGVcbiIKLSAgICAgIH0KLSAgICAgIGlmIHskdmFycyhmbG93KSA9PSAibW1tYyJ9IHsKLSAgICAgICAgIHNldCBjb21tYW5kIFtGRl9FREk6OmRlcmF0ZV90aW1pbmcgbW1tY10KLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxkZXJhdGVfdGltaW5nICRjb21tYW5kXQotICAgICAgfQotICAgICAgaWYgeyR2YXJzKGNhcHR1cmVfbWV0cmljcyl9IHsKLSAgICAgICAgIGlmIHtbbGluZGV4IFtzcGxpdCAkdmFycyh2ZXJzaW9uKSAiLiJdICAwXSA+IDEzfSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgInVtOjplbmFibGVfbWV0cmljcyAtb25cbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAidW06OnB1c2hfc25hcHNob3Rfc3RhY2tcbiIKLSAgICAgICAgIH0KLSAgICAgIH0KLQotICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6c291cmNlX3BsdWcgYWx3YXlzX3NvdXJjZV90Y2xdCi0KLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICMgTG9hZCAicG9zdCBhc3NlbWJsZSIgcGx1Zy1pbiBzY3JpcHQKLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OnNvdXJjZV9wbHVnIHBvc3RfYXNzZW1ibGVfdGNsIDBdCi0KLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICMgU3BlY2lmeSBJTE1zIGlmIGRlZmluZWQKLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgIGlmIHskdmFycyhpbG0pfSB7Ci0gICAgICAgICBpZiB7JHZhcnModmVyYm9zZSl9IHsKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiI1xuIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjIFNQRUNJRllJTkcgSUxNc1xuIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjXG4iCi0gICAgICAgICB9Ci0gICAgICAgICBzZXQgY29tbWFuZCAiIiAKLSAgICAgICAgIGZvcmVhY2ggY2VsbCAkaWxtX2xpc3QgewotICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCRjZWxsLGlsbV9kaXIpXSAmJiBbZmlsZSBpc2RpcmVjdG9yeSAkdmFycygkY2VsbCxpbG1fZGlyKV19IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJzcGVjaWZ5SWxtIC1jZWxsICRjZWxsIC1kaXIgJHZhcnMoJGNlbGwsaWxtX2RpcilcbiIKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBwdXRzICI8RkY+IFdBUk5JTkc6IElMTSBESVJFQ1RPUlkgTUlTU0lORyBGT1IgJGNlbGwgLi4uIFNLSVBQSU5HIgotICAgICAgICAgICAgfQotICAgICAgICAgfSAKLSAgCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgYXNzZW1ibGUsc3BlY2lmeV9pbG0gJGNvbW1hbmRdCi0gIAotICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGlsbV9ub25fc2RjX2ZpbGUpXX0gewotICAgICAgICAgICAgaWYge1tsaW5kZXggW3NwbGl0ICR2YXJzKHZlcnNpb24pICIuIl0gIDBdIDw9IDEwfSB7Ci0gICAgICAgICAgICAgICBzZXQgY29tbWFuZCAibG9hZFRpbWluZ0NvbiAtaWxtTm9uU2RjRmlsZSAkdmFycyhpbG1fbm9uX3NkY19maWxlKVxuIgotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIHNldCBjb21tYW5kICJzZXRJbG1Ob25TZGNDb25zdHJhaW50RmlsZSAkdmFycyhpbG1fbm9uX3NkY19maWxlKVxuIgotICAgICAgICAgICAgfQotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kIGFzc2VtYmxlLGxvYWRfaWxtX25vbl9zZGNfZmlsZSAkY29tbWFuZF0KLSAgICAgICAgIH0KLSAgICAgIH0KLQotICAgICAgaWYge1tsaW5kZXggW3NwbGl0ICR2YXJzKHZlcnNpb24pICIuIl0gIDBdIDwgMTR9IHsKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkZfRURJOjpsb2FkX3Bvd2VyX2ludGVudF0KLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGX05PVlVTOjpsb2FkX3Bvd2VyX2ludGVudF0KLSAgICAgIH0KLQotICAgICAgaWYge1tsaW5kZXggW3NwbGl0ICR2YXJzKHZlcnNpb24pICIuIl0gIDBdIDw9IDEwfSB7Ci0gICAgICAgICBzZXQgY29tbWFuZCBbRkZfRURJOjppbml0aWFsaXplX3RpbWluZyBtbW1jXQotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kIGFzc2VtYmxlLGluaXRpYWxpemVfdGltaW5nICRjb21tYW5kXQotICAgICAgfSBlbHNlaWYge1tpbmZvIGV4aXN0cyB2YXJzKGNwZl9maWxlKV0gJiYgJHZhcnMoY3BmX3RpbWluZyl9IHsKLSAgICAgICAgIHNldCBjb21tYW5kIFtGRl9FREk6OmluaXRpYWxpemVfdGltaW5nIG1tbWNdCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgYXNzZW1ibGUsaW5pdGlhbGl6ZV90aW1pbmcgJGNvbW1hbmRdCi0gICAgICB9Ci0KLSAgICAgIHNldCBjb21tYW5kIFtGRl9FREk6OnVwZGF0ZV90aW1pbmcgbW1tYyAxIF0KLSAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCBhc3NlbWJsZSx1cGRhdGVfdGltaW5nICRjb21tYW5kXQotCi0gICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoZW5hYmxlX3NpZ25vZmZfZWNvKV0gJiYgJHZhcnMoZW5hYmxlX3NpZ25vZmZfZWNvKX0gewotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6c291cmNlX3BsdWcgcHJlX3NpZ25vZmZfZWNvX3RjbCAwXQotICAgICAgICAgc2V0IGNvbW1hbmQgInZlcmlmeUNvbm5lY3Rpdml0eVxuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kIGFzc2VtYmxlLHByZV9zaWdub2ZmX2Vjb192ZXJpZnlfY29ubmVjdGl2aXR5ICRjb21tYW5kXQotICAgICAgICAgc2V0IGNvbW1hbmQgIlt2ZXJpZnlfZ2VvbWV0cnlfY29tbWFuZF1cbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCBhc3NlbWJsZSxwcmVfc2lnbm9mZl9lY29fdmVyaWZ5X2dlb21ldHJ5ICRjb21tYW5kXQotCi0gICAgICAgICBpZiB7JHZhcnModmVyYm9zZSl9IHsKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiI1xuIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjIFJVTk5JTkcgU0lHTi1PRkYgRUNPXG4iCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiNcbiIKLSAgICAgICAgIH0KLQotICAgICAgICAgc2V0IGNvbW1hbmQgW0ZGX0VESTo6ZGVsZXRlX2ZpbGxlcl9jZWxsc10KLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCBhc3NlbWJsZSxkZWxldGVfZmlsbGVyX2NlbGxzICRjb21tYW5kXQotICAgICAgICAgc2V0IGNvbW1hbmQgImV4dHJhY3RSQ1xuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kIGFzc2VtYmxlLGV4dHJhY3RfcmMgJGNvbW1hbmRdCi0gICAgICAgICBzZXQgb3AgW29wZW4gcHRuLnR4dCB3XQotIyAgICAgICAgIGRiRm9yRWFjaEhlYWRQdG4gW2RiZ0hlYWRdIHB0ciB7Ci0jICAgICAgICAgICAgc2V0IHB0biBbZGJQdG5OYW1lICRwdHJdCi0jICAgICAgICAgICAgcHV0cyAkb3AgIiRwdG4iCi0jICAgICAgICAgfQotICAgICAgICAgZm9yZWFjaCBwdG4gJHZhcnMocGFydGl0aW9uX2xpc3QpIHsgCi0gICAgICAgICAgICBwdXRzICRvcCAiJHB0biIKLSAgICAgICAgIH0KLSAgICAgICAgIGNsb3NlICRvcAotICAgICAgICAgc2V0IGNvbW1hbmQgInNldFNpZ25vZmZPcHRNb2RlIC1wYXJ0aXRpb25MaXN0RmlsZSBcInB0bi50eHRcIiAtb3B0aW1pemVSZXBsaWNhdGVkTW9kdWxlcyB0cnVlXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgYXNzZW1ibGUsc2lnbm9mZl90aW1lX2Rlc2lnbiAkY29tbWFuZF0KLSAgICAgICAgIHNldCBjb21tYW5kICJzaWdub2ZmVGltZURlc2lnbiAtcmVwb3J0T25seVxuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kIGFzc2VtYmxlLHNpZ25vZmZfdGltZV9kZXNpZ24gJGNvbW1hbmRdCi0gICAgICAgICBzZXQgY29tbWFuZCAic2lnbm9mZk9wdERlc2lnbiAtc2V0dXAgLW5vRWNvUm91dGVcbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCBhc3NlbWJsZSxzaWdub2ZmX29wdF9kZXNpZ24gJGNvbW1hbmRdCi0jICAgICAgICAgc2V0IGNvbW1hbmQgImFkZEZpbGxlclxuIgotIyAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCBhc3NlbWJsZSxhZGRfZmlsbGVyX2NlbGxzICRjb21tYW5kXQotICAgICAgICAgc2V0IGNvbW1hbmQgImVjb1JvdXRlIC1oYW5kbGVQYXJ0aXRpb25cbiIKLSAgICAgICAgICNzZXQgY29tbWFuZCAiZWNvUm91dGVcbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCBhc3NlbWJsZSxlY29fcm91dGUgJGNvbW1hbmRdCi0KLSAgICAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICAgICMgT3B0aW9uYWxseSBydW4gTFBBCi0gICAgICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAKLSAgICAgICAgIGlmIHskdmFycyh2ZXJpZnlfbGl0aG8pfSB7Ci0gICAgICAgICAgICAjIEJDTDogQWRkZWQgc3Vic3QgdG8gaGFuZGxlIGRlcmVyZW5jaW5nIHZhcmlhYmxlcwotICAgICAgICAgICAgZmlsZSBta2RpciAgW3N1YnN0ICR2YXJzKHJwdF9kaXIpXS9MUEEvRE1DCi0gICAgICAgICAgICBzZXQgY29tbWFuZCAidmVyaWZ5TGl0aG8gLXJvdXRpbmdMYXllcnNPbmx5IC10ZWNoRmlsZSAkdmFycyhscGFfdGVjaF9maWxlKSAtZGlyICR2YXJzKHJwdF9kaXIpL0xQQVxuIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgInZpb2xhdGlvbkJyb3dzZXIgLWFsbCAtbm9fZGlzcGxheV9mYWxzZVxuIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgImxvYWRWaW9sYXRpb25SZXBvcnQgLXR5cGUgQ0ROTGl0aG8gLWZpbGVuYW1lICR2YXJzKHJwdF9kaXIpL0xQQS9ETUMvbWVyZ2VkLmhpZlxuIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kIGFzc2VtYmxlLHZlcmlmeV9saXRobyAkY29tbWFuZF0KLSAgICAgICAgIH0KLQotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6c291cmNlX3BsdWcgcG9zdF9zaWdub2ZmX2Vjb190Y2wgMF0KLSAgICAgICAgIHNldCBjb21tYW5kICJ2ZXJpZnlDb25uZWN0aXZpdHlcbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCBhc3NlbWJsZSxwb3N0X3NpZ25vZmZfZWNvX3ZlcmlmeV9jb25uZWN0aXZpdHkgJGNvbW1hbmRdCi0gICAgICAgICBzZXQgY29tbWFuZCAiW3ZlcmlmeV9nZW9tZXRyeV9jb21tYW5kXVxuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kIGFzc2VtYmxlLHBvc3Rfc2lnbm9mZl9lY29fdmVyaWZ5X2dlb21ldHJ5ICRjb21tYW5kXQotICAgICAgfSBlbHNlaWYgeyR2YXJzKGVuYWJsZV9wYWMpfSB7Ci0gICAgICAgICBzZXQgY29tbWFuZCAidmVyaWZ5Q29ubmVjdGl2aXR5XG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgYXNzZW1ibGUscHJlX3BhY192ZXJpZnlfY29ubmVjdGl2aXR5ICRjb21tYW5kXQotICAgICAgICAgc2V0IGNvbW1hbmQgIlt2ZXJpZnlfZ2VvbWV0cnlfY29tbWFuZF1cbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCBhc3NlbWJsZSxwcmVfcGFjX3ZlcmlmeV9nZW9tZXRyeSAkY29tbWFuZF0KLQotICAgICAgICAgaWYgeyR2YXJzKHZlcmJvc2UpfSB7Ci0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiNcbiIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyBERUZJTklORyBQQUMgTU9ERVNcbiIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiI1xuIgotICAgICAgICAgfQotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6c291cmNlX3BsdWcgcHJlX3BhY190Y2wgMF0KLSAgICAgICAgIHNldCBjb21tYW5kICIiCi0gICAgICAgICBmb3JlYWNoIHBhcnQgJHBhY19saXN0IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJzZXQgaGluc3QgXFtkYkhJbnN0TmFtZSBcW2RiQ2VsbEhJbnN0IFxbZGJHZXRDZWxsQnlOYW1lICRwYXJ0XF1cXVxdXG4iCi0gICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJHBhcnQscGFjX21vZGUpXX0gewotICAgICAgICAgICAgICAgaWYgeyR2YXJzKCRwYXJ0LHBhY19tb2RlKSA9PSAicmVhZF9vbmx5In0geyBzZXQgdmFycygkcGFydCxwYWNfbW9kZSkgInJlYWRPbmx5IiB9Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAic2V0TW9kdWxlVmlldyAtaGluc3QgXCRoaW5zdCAtdHlwZSAkdmFycygkcGFydCxwYWNfbW9kZSlcbiIKLSAgICAgICAgICAgIH0gCi0gICAgICAgICB9Ci0KLSAgICAgICAgIGFwcGVuZCBjb21tYW5kICJnZXRNb2R1bGVWaWV3XG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgYXNzZW1ibGUsc2V0X21vZHVsZV92aWV3ICRjb21tYW5kXQotCi0gICAgICAgICBpZiB7JHZhcnModmVyYm9zZSl9IHsKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiI1xuIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjIFJVTk5JTkcgUE9TVCBBU1NFTUJMWSBDTE9TVVJFXG4iCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiNcbiIKLSAgICAgICAgIH0KLSAgICAgICAgIHNldCBjb21tYW5kIFtGRl9FREk6OmRlbGV0ZV9maWxsZXJfY2VsbHNdCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgYXNzZW1ibGUsZGVsZXRlX2ZpbGxlcl9jZWxscyAkY29tbWFuZF0KLSAgICAgICAgIHNldCBjb21tYW5kICJvcHREZXNpZ24gLXBvc3RSb3V0ZSAtb3V0RGlyICR2YXJzKHJwdF9kaXIpIC1wcmVmaXggcGFjXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgYXNzZW1ibGUsb3B0X2Rlc2lnbiAkY29tbWFuZF0KLSAgICAgICAgIHNldCBjb21tYW5kIFtGRl9FREk6OmFkZF9maWxsZXJfY2VsbHNdCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgYXNzZW1ibGUsYWRkX2ZpbGxlcl9jZWxscyAkY29tbWFuZF0KLQotICAgICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgICAgIyBPcHRpb25hbGx5IHJ1biBMUEEKLSAgICAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgIAotICAgICAgICAgaWYgeyR2YXJzKHZlcmlmeV9saXRobyl9IHsKLSAgICAgICAgICAgICMgQkNMOiBBZGRlZCBzdWJzdCB0byBoYW5kbGUgZGVyZXJlbmNpbmcgdmFyaWFibGVzCi0gICAgICAgICAgICBmaWxlIG1rZGlyICBbc3Vic3QgJHZhcnMocnB0X2RpcildL0xQQS9ETUMKLSAgICAgICAgICAgIHNldCBjb21tYW5kICJ2ZXJpZnlMaXRobyAtcm91dGluZ0xheWVyc09ubHkgLXRlY2hGaWxlICR2YXJzKGxwYV90ZWNoX2ZpbGUpIC1kaXIgJHZhcnMocnB0X2RpcikvTFBBXG4iCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAidmlvbGF0aW9uQnJvd3NlciAtYWxsIC1ub19kaXNwbGF5X2ZhbHNlXG4iCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAibG9hZFZpb2xhdGlvblJlcG9ydCAtdHlwZSBDRE5MaXRobyAtZmlsZW5hbWUgJHZhcnMocnB0X2RpcikvTFBBL0RNQy9tZXJnZWQuaGlmXG4iCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgYXNzZW1ibGUsdmVyaWZ5X2xpdGhvICRjb21tYW5kXQotICAgICAgICAgfQotCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjpzb3VyY2VfcGx1ZyBwb3N0X3BhY190Y2wgMF0KLSAgICAgICAgIHNldCBjb21tYW5kICJ2ZXJpZnlDb25uZWN0aXZpdHlcbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCBhc3NlbWJsZSxwb3N0X3BhY192ZXJpZnlfY29ubmVjdGl2aXR5ICRjb21tYW5kXQotICAgICAgICAgc2V0IGNvbW1hbmQgIlt2ZXJpZnlfZ2VvbWV0cnlfY29tbWFuZF1cbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCBhc3NlbWJsZSxwb3N0X3BhY192ZXJpZnlfZ2VvbWV0cnkgJGNvbW1hbmRdCi0gICAgICB9Ci0KLSAgICAgIGlmIHshJHZhcnMoY29kZWdlbil9IHsKLSAgICAgICAgIHVwbGV2ZWwgIzAgZXZhbCAkY29tbWFuZHMKLSAgICAgICAgIHNldCBjb21tYW5kcyAiIiAKLSAgICAgIH0KLQotICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRl9FREk6OnJ1bl9zaWdub2ZmICRmb3JtYXRdCi0KLSMgICAgICBpZiB7JHZhcnMobWFrZWZpbGUpfSB7IAotIyAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgImlmIHtcW2luZm8gZXhpc3RzIGVudihWUEFUSClcXX0ge1xuIgotIyAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgImV4ZWMgL2Jpbi90b3VjaCBcJGVudihWUEFUSCkvYXNzZW1ibGVcbiIKLSMgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJ9XG4iCi0jICAgICAgIH0KLQotICAgICAgaWYgeyR2YXJzKGNvZGVnZW4pfSB7Ci0gICAgICAgICByZXR1cm4gJGNvbW1hbmRzCi0gICAgICB9IGVsc2UgewotICAgICAgICAgdXBsZXZlbCAjMCBldmFsICRjb21tYW5kcwotICAgICAgfQotICAgfQotCi0gICBwcm9jIHJ1bl9yZWJ1ZGdldCB7e2Zvcm1hdCAxfX0gewotCi0gICAgICBnbG9iYWwgdmFycwotICAgICAgZ2xvYmFsIGVycm9ycwotICAgICAgZ2xvYmFsIGVudgotCi0gICAgICBzZXQgdmFycyhzdGVwKSByZWJ1ZGdldAotICAgICAgc2V0IGNvbW1hbmRzICIiCi0jICAgICAgYXBwZW5kIGNvbW1hbmRzICJzZXQgdmFycyhzdGVwKSAkdmFycyhzdGVwKVxuIgotCi0gICAgICBGRl9FREk6OmluaXRpYWxpemVfc3RlcCAkdmFycyhzdGVwKQotCi0jICAgICAgaWYgeyR2YXJzKHJlcG9ydF9ydW5fdGltZSl9IHsKLSMgICAgICAgICBhcHBlbmQgY29tbWFuZHMgInNldCB2YXJzKCR2YXJzKHN0ZXApLHN0YXJ0X3RpbWUpIFxbY2xvY2sgc2Vjb25kc1xdXG4iCi0jICAgICAgfQotICAgICAgaWYgeyEkdmFycyhlbmFibGVfZmxleGlsbSl9IHsKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiXG5pZiB7XFtmaWxlIGlzZmlsZSAkdmFycyhwYWNfc2NyYXRjaF9kaXIpLy5wYWNGbG93TG9ja1xdfSB7XG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiAgIGZpbGUgZGVsZXRlICR2YXJzKHBhY19zY3JhdGNoX2RpcikvLnBhY0Zsb3dMb2NrXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIn1cbiIKLSAgICAgICB9IGVsc2UgewotIyAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiaWYge1xbZmlsZSBpc2ZpbGUgJHZhcnMoc2NyaXB0X2Rpcikvdmlld19kZWZpbml0aW9uLnRjbF19IHtcbiIKLSMgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiAgIGZpbGUgY29weSAtZm9yY2UgJHZhcnMoc2NyaXB0X2Rpcikvdmlld19kZWZpbml0aW9uLnRjbCAkdmFycyhwYXJ0aXRpb25fZGlyKS8kdmFycyhkZXNpZ24pL3ZpZXdEZWZpbml0aW9uLnRjbFxuIgotIyAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAifVxuIgotICAgICAgIH0KLQotICAgICAgaWYgeyR2YXJzKHZlcmJvc2UpfSB7Ci0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiNcbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyBBU1NFTUJMSU5HIERFU0lHTlxuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjXG4iCi0gICAgICB9Ci0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAjIExvYWQgInByZSByZWJ1ZGdldCIgcGx1Zy1pbiBzY3JpcHQKLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OnNvdXJjZV9wbHVnIHByZV9yZWJ1ZGdldF90Y2xdCi0KLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICMgR2V0IHRoZSBGbGV4SUxNIEVDTyBwYXRocwotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgaWYgeyR2YXJzKGVuYWJsZV9mbGV4aWxtKX0gewotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJpZiB7XFtmaWxlIGlzZmlsZSBcJGVudihWUEFUSCkvZmxleGlsbVxdfSB7XG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiAgIHNvdXJjZSBcJGVudihWUEFUSCkvZmxleGlsbVxuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJ9XG4iCi0gICAgICB9Ci0KLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICMgQXNzZW1ibGUgdGhlIGRlc2lnbgotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgc2V0IHZhcnMoaWxtKSBmYWxzZQotICAgICAgc2V0IGlsbV9saXN0IFtsaXN0XQotICAgICAgc2V0IHBhY19saXN0IFtsaXN0XQotICAgICAgaWYgeyR2YXJzKGVuYWJsZV9wYWMpfSB7Ci0gICAgICAgICBmb3JlYWNoIHBhcnQgJHZhcnMocGFydGl0aW9uX2xpc3QpIHsKLSAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkcGFydCxwYWNfbW9kZSldfSAgewotICAgICAgICAgICAgICAgaWYgeyR2YXJzKCRwYXJ0LHBhY19tb2RlKSA9PSAiaWxtIn0gewotICAgICAgICAgICAgICAgICAgbGFwcGVuZCBpbG1fbGlzdCAkcGFydAotICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgIGxhcHBlbmQgcGFjX2xpc3QgJHBhcnQKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0KLSAgICAgIH0KLSAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhpbG1fbGlzdCldICYmICgkdmFycyhpbG1fbGlzdCkgIT0gIiIpfSB7Ci0gICAgICAgICBmb3JlYWNoIGlsbSAkdmFycyhpbG1fbGlzdCkgewotICAgICAgICAgICAgaWYgeyhbbHNlYXJjaCAkaWxtX2xpc3QgJGlsbV0gPT0gLTEpICYmIChbbHNlYXJjaCAkcGFjX2xpc3QgJGlsbV0gPT0gLTEpfSB7Ci0gICAgICAgICAgICAgICBsYXBwZW5kIGlsbV9saXN0ICRpbG0KLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0KLSAgICAgIH0KLSAgICAgIGlmIHskaWxtX2xpc3QgIT0gIiJ9IHsKLSAgICAgICAgIHNldCB2YXJzKGlsbSkgdHJ1ZSAKLSAgICAgIH0KLQotICAgICAgIyBCQ0w6IEFkZGVkIHRhaWwgb2Ygc3Vic3Qgb2YgdmFycyhkYnNfZGlyKQotICAgICAgIyBOb3RlIC0gRURJRkYgSGllcmFyY2hpY2FsIGZsb3cgaXMgY3VycmVudGx5IElOQ09NUEFUSUJMRSB3aXRoIEZGIGRpciBzdHJ1Y3R1cmUKLSAgICAgICMgVGhlIGZvbGxvd2luZyBjb2RlIGFwcGVhcnMgdG8gcmVseSBvbiB2YXJzKGRic19kaXIpIGFsd2F5cyBiZWluZyB1bmRlciAkdmFycyhwYXJ0aXRpb25fZGlyKS8kdmFycyhkZXNpZ24pCi0gICAgICAjIFRoaXMgbmVlZHMgdG8gYmUgcmVjb25jaWxlZAotICAgICAgc2V0IGRpciBbZmlsZSB0YWlsIFtzdWJzdCAkdmFycyhkYnNfZGlyKV1dCi0KLSAgICAgIGlmIHtbbGluZGV4IFtzcGxpdCAkdmFycyh2ZXJzaW9uKSAiLiJdICAwXSA+IDEwfSB7Ci0gICAgICAgICBzZXQgY29tbWFuZCBbRkZfRURJOjppbml0aWFsaXplX3RpbWluZyBtbW1jXQotICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGNwZl9maWxlKV0gJiYgJHZhcnMoY3BmX3RpbWluZyl9IHsKLSAgICAgICAgICAgIHNldCBtbW1jX2ZpbGUgJHZhcnMoc2NyaXB0X2RpcikvaW5jcl92aWV3X2RlZmluaXRpb24udGNsCi0gICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnModmlld19kZWZpbml0aW9uX3RjbCldfSB7Ci0gICAgICAgICAgICAgICAgc2V0IG1tbWNfZmlsZSAkdmFycyh2aWV3X2RlZmluaXRpb25fdGNsKQotICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgc2V0IG1tbWNfZmlsZSAkdmFycyhzY3JpcHRfZGlyKS92aWV3X2RlZmluaXRpb24udGNsCi0gICAgICAgICAgICAgfQotICAgICAgICAgIH0KLSAgICAgIH0KLSAgICAgIGlmIHsoW3N0cmluZyBjb21wYXJlIC1ub2Nhc2UgJHZhcnMoZGJzX2Zvcm1hdCkgIm9hIl09PTApICYmIChbbGluZGV4IFtzcGxpdCAkdmFycyh2ZXJzaW9uKSAiLiJdICAwXSA+IDEwKX0gewotCi0gICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJHZhcnMoZGVzaWduKSxyZWJ1ZGdldF9hc3NlbWJsZV9zdGVwKV19IHsKLSAgICAgICAgICAgIHNldCBjb21tYW5kICJhc3NlbWJsZURlc2lnbiAtdG9wRGVzaWduIHskdmFycyhvYV9wYXJ0aXRpb25fbGliKSAkdmFycyhkZXNpZ24pICR2YXJzKCR2YXJzKGRlc2lnbikscmVidWRnZXRfYXNzZW1ibGVfc3RlcCl9IC1tbW1jRmlsZSAkbW1tY19maWxlIgotICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHNldCBjb21tYW5kICJhc3NlbWJsZURlc2lnbiAtdG9wRGVzaWduIHskdmFycyhvYV9wYXJ0aXRpb25fbGliKSAkdmFycyhkZXNpZ24pIGN0c30gLW1tbWNGaWxlICRtbW1jX2ZpbGUiCi0gICAgICAgICB9Ci0gICAgICAgICBmb3JlYWNoIHBhcnQgJHZhcnMocGFydGl0aW9uX2xpc3QpIHsKLSAgICAgICAgICAgIGlmIHtbbHNlYXJjaCAkaWxtX2xpc3QgJHBhcnRdID09IC0xfSB7Ci0gICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJHBhcnQscmVidWRnZXRfYXNzZW1ibGVfc3RlcCldfSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiXFxcbiAgIC1ibG9jayB7JHZhcnMob2FfcGFydGl0aW9uX2xpYikgJHBhcnQgJHZhcnMoJHZhcnMoJHBhcnQpLHJlYnVkZ2V0X2Fzc2VtYmxlX3N0ZXApfSIKLSAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiXFxcbiAgIC1ibG9jayB7JHZhcnMob2FfcGFydGl0aW9uX2xpYikgJHBhcnQgY3RzfSIKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0KLSAgICAgIH0gZWxzZSB7Ci0jICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kIHJlYnVkZ2V0LGluaXRpYWxpemVfdGltaW5nICRjb21tYW5kXQotICAgICAgICAgaWYge1tsaW5kZXggW3NwbGl0ICR2YXJzKHZlcnNpb24pICIuIl0gIDBdID4gMTB9IHsKLSAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhjcGZfZmlsZSldICYmICR2YXJzKGNwZl90aW1pbmcpfSB7Ci0gICAgICAgICAgICAgICBzZXQgYXNzZW1ibGVfY29tbWFuZCAiYXNzZW1ibGVEZXNpZ24gLWNwZkZpbGUgJHZhcnMoY3BmX2ZpbGUpIgotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIHNldCBhc3NlbWJsZV9jb21tYW5kICJhc3NlbWJsZURlc2lnbiAtbW1tY0ZpbGUgJG1tbWNfZmlsZSIKLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBzZXQgYXNzZW1ibGVfY29tbWFuZCAiYXNzZW1ibGVEZXNpZ24iCi0gICAgICAgICB9Ci0gICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJHZhcnMoZGVzaWduKSxyZWJ1ZGdldF9hc3NlbWJsZV9kYnMpXX0gewotICAgICAgICAgICAgc2V0IGNvbW1hbmQgIiRhc3NlbWJsZV9jb21tYW5kIC1mZSAtdG9wRGlyICR2YXJzKCR2YXJzKGRlc2lnbikscmVidWRnZXRfYXNzZW1ibGVfZGJzKSIKLSAgICAgICAgIH0gZWxzZWlmIHtbaW5mbyBleGlzdHMgdmFycygkdmFycyhkZXNpZ24pLHJlYnVkZ2V0X2Fzc2VtYmxlX3N0ZXApXX0gewotICAgICAgICAgICAgc2V0IGNvbW1hbmQgIiRhc3NlbWJsZV9jb21tYW5kIC1mZSAkdmFycyhwYXJ0aXRpb25fZGlyKS8kdmFycyhkZXNpZ24pLyRkaXIvJHZhcnMoJHZhcnMoZGVzaWduKSxyZWJ1ZGdldF9hc3NlbWJsZV9zdGVwKS5lbmMuZGF0IgotICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIGlmIHskdmFycyhlbmFibGVfZmxleGlsbSl9IHsKLSMgICAgICAgICAgICAgICBzZXQgY29tbWFuZCAiJGFzc2VtYmxlX2NvbW1hbmQgXFxcbiAgIC1mZSBcXFxuICAgLXRvcERpciAkdmFycyhwYXJ0aXRpb25fZGlyX3Bhc3MyKS8kdmFycyhkZXNpZ24pICIKLSAgICAgICAgICAgICAgIHNldCBjb21tYW5kICIkYXNzZW1ibGVfY29tbWFuZCBcXFxuICAgLWZlIFxcXG4gICAtdG9wRGlyICR2YXJzKHBhcnRpdGlvbl9kaXIpX0ZMRVhJTE0vJHZhcnMoZGVzaWduKSAiCi0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgIiRhc3NlbWJsZV9jb21tYW5kIC1mZSAtdG9wRGlyICR2YXJzKHBhcnRpdGlvbl9kaXIpLyR2YXJzKGRlc2lnbikvJGRpci9jdHMuZW5jLmRhdCAiCi0gICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0gICAgICAgICBmb3JlYWNoIHBhcnQgJHZhcnMocGFydGl0aW9uX2xpc3QpIHsKLSAgICAgICAgICAgIGlmIHtbbHNlYXJjaCAkaWxtX2xpc3QgJHBhcnRdID09IC0xfSB7Ci0gICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJHBhcnQscmVidWRnZXRfYXNzZW1ibGVfZGJzKV19IHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJcXFxuICAgLWJsb2NrRGlyICR2YXJzKCRwYXJ0LHJlYnVkZ2V0X2Fzc2VtYmxlX2RicykiCi0gICAgICAgICAgICAgICB9IGVsc2VpZiB7W2luZm8gZXhpc3RzIHZhcnMoJHBhcnQscmVidWRnZXRfYXNzZW1ibGVfc3RlcCldfSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiXFxcbiAgIC1ibG9ja0RpciAkdmFycyhwYXJ0aXRpb25fZGlyKS8kcGFydC8kZGlyLyR2YXJzKCRwYXJ0LHJlYnVkZ2V0X2Fzc2VtYmxlX3N0ZXApLmVuYy5kYXQiCi0gICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgaWYgeyR2YXJzKGVuYWJsZV9mbGV4aWxtKX0gewotICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIlxcXG4gICAtYmxvY2tEaXIgXCR2YXJzKCRwYXJ0LGNkdHYpICIKLSAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiXFxcbiAgIC1ibG9ja0RpciAkdmFycyhwYXJ0aXRpb25fZGlyKS8kcGFydC8kZGlyL2N0cy5lbmMuZGF0IgotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAgfQotICAgICAgfQotICAgICAgaWYgeyR2YXJzKGVuYWJsZV9wYWMpfSB7Ci0gICAgICAgICBhcHBlbmQgY29tbWFuZCAiXFxcbiAtaGllckRpciAkdmFycyhwYWNfc2NyYXRjaF9kaXIpIgotICAgICAgfQotICAgICAgYXBwZW5kIGNvbW1hbmQgIlxuIgotCi0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksYXNzZW1ibGVfZGVzaWduICRjb21tYW5kXQotICAgICAgaWYgeyhbbGluZGV4IFtzcGxpdCAkdmFycyh2ZXJzaW9uKSAiLiJdICAwXSA+IDEwKSAmJiAkdmFycyhjcGZfdGltaW5nKX0gewotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJzb3VyY2UgJG1tbWNfZmlsZVxuIgotICAgICAgfQotICAgICAgaWYgeyR2YXJzKGZsb3cpID09ICJtbW1jIn0gewotICAgICAgICAgc2V0IGNvbW1hbmQgW0ZGX0VESTo6ZGVyYXRlX3RpbWluZyBtbW1jXQotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLGRlcmF0ZV90aW1pbmcgJGNvbW1hbmRdCi0gICAgICB9Ci0KLSAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OnNvdXJjZV9wbHVnIGFsd2F5c19zb3VyY2VfdGNsXQotCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAjIExvYWQgInBvc3QgcmVidWRnZXQiIHBsdWctaW4gc2NyaXB0Ci0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjpzb3VyY2VfcGx1ZyBwb3N0X3JlYnVkZ2V0X3RjbCAwXQotCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAjIFNwZWNpZnkgSUxNcyBpZiBkZWZpbmVkCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICBpZiB7JHZhcnMoaWxtKX0gewotICAgICAgICAgaWYgeyR2YXJzKHZlcmJvc2UpfSB7Ci0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiNcbiIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyBTUEVDSUZZSU5HIElMTXNcbiIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiI1xuIgotICAgICAgICAgfQotICAgICAgICAgc2V0IGNvbW1hbmQgIiIgCi0gICAgICAgICBmb3JlYWNoIGNlbGwgJGlsbV9saXN0IHsKLSAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkY2VsbCxpbG1fZGlyKV0gJiYgW2ZpbGUgaXNkaXJlY3RvcnkgJHZhcnMoJGNlbGwsaWxtX2RpcildfSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAic3BlY2lmeUlsbSAtY2VsbCAkY2VsbCAtZGlyICR2YXJzKCRjZWxsLGlsbV9kaXIpXG4iCi0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgcHV0cyAiPEZGPiBXQVJOSU5HOiBJTE0gRElSRUNUT1JZIE1JU1NJTkcgRk9SICRjZWxsIC4uLiBTS0lQUElORyIKLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0gCi0gIAotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHNwZWNpZnlfaWxtICRjb21tYW5kXQotICAKLSAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhpbG1fbm9uX3NkY19maWxlKV19IHsKLSAgICAgICAgICAgIGlmIHtbbGluZGV4IFtzcGxpdCAkdmFycyh2ZXJzaW9uKSAiLiJdICAwXSA8PSAxMH0gewotICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgImxvYWRUaW1pbmdDb24gLWlsbU5vblNkY0ZpbGUgJHZhcnMoaWxtX25vbl9zZGNfZmlsZSlcbiIKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBzZXQgY29tbWFuZCAic2V0SWxtTm9uU2RjQ29uc3RyYWludEZpbGUgJHZhcnMoaWxtX25vbl9zZGNfZmlsZSlcbiIKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxsb2FkX2lsbV9ub25fc2RjX2ZpbGUgJGNvbW1hbmRdCi0gICAgICAgICB9Ci0gICAgICB9Ci0KLSAgICAgIGlmIHtbbGluZGV4IFtzcGxpdCAkdmFycyh2ZXJzaW9uKSAiLiJdICAwXSA8IDE0fSB7Ci0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGX0VESTo6bG9hZF9wb3dlcl9pbnRlbnRdCi0gICAgICB9IGVsc2UgewotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRl9OT1ZVUzo6bG9hZF9wb3dlcl9pbnRlbnRdCi0gICAgICB9Ci0KLSAgICAgIGlmIHtbbGluZGV4IFtzcGxpdCAkdmFycyh2ZXJzaW9uKSAiLiJdICAwXSA8PSAxMH0gewotICAgICAgICAgc2V0IGNvbW1hbmQgW0ZGX0VESTo6aW5pdGlhbGl6ZV90aW1pbmcgbW1tY10KLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxpbml0aWFsaXplX3RpbWluZyAkY29tbWFuZF0KLSAgICAgIH0gZWxzZWlmIHtbaW5mbyBleGlzdHMgdmFycyhjcGZfZmlsZSldICYmICR2YXJzKGNwZl90aW1pbmcpfSB7Ci0gICAgICAgICBzZXQgY29tbWFuZCBbRkZfRURJOjppbml0aWFsaXplX3RpbWluZyBtbW1jXQotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLGluaXRpYWxpemVfdGltaW5nICRjb21tYW5kXQotICAgICAgfQotCi0gICAgICBpZiB7ISR2YXJzKGVuYWJsZV9mbGV4aWxtKX0gewotICAgICAgICAgc2V0IGNvbW1hbmQgW0ZGX0VESTo6dXBkYXRlX3RpbWluZyBtbW1jIF0KLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSx1cGRhdGVfdGltaW5nICRjb21tYW5kXQotICAgICAgfQotCi0gICAgICBpZiB7JHZhcnMoZW5hYmxlX3BhYyl9IHsKLQotICAgICAgICAgaWYgeyR2YXJzKHZlcmJvc2UpfSB7Ci0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiNcbiIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyBERUZJTklORyBQQUMgTU9ERVNcbiIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiI1xuIgotICAgICAgICAgfQotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6c291cmNlX3BsdWcgcHJlX3BhY190Y2wgMF0KLSAgICAgICAgIHNldCBjb21tYW5kICIiCi0gICAgICAgICBmb3JlYWNoIHBhcnQgJHBhY19saXN0IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJzZXQgaGluc3QgXFtkYkhJbnN0TmFtZSBcW2RiQ2VsbEhJbnN0IFxbZGJHZXRDZWxsQnlOYW1lICRwYXJ0XF1cXVxdXG4iCi0gICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJHBhcnQscGFjX21vZGUpXX0gewotICAgICAgICAgICAgICAgaWYgeyR2YXJzKCRwYXJ0LHBhY19tb2RlKSA9PSAicmVhZF9vbmx5In0geyBzZXQgdmFycygkcGFydCxwYWNfbW9kZSkgInJlYWRPbmx5IiB9Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAic2V0TW9kdWxlVmlldyAtaGluc3QgXCRoaW5zdCAtdHlwZSAkdmFycygkcGFydCxwYWNfbW9kZSlcbiIKLSAgICAgICAgICAgIH0gCi0gICAgICAgICB9Ci0KLSAgICAgICAgIGFwcGVuZCBjb21tYW5kICJnZXRNb2R1bGVWaWV3XG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksc2V0X21vZHVsZV92aWV3ICRjb21tYW5kXQotCi0gICAgICAgICBpZiB7ISR2YXJzKGVuYWJsZV9mbGV4aWxtKX0gewotICAgICAgICAgICAgaWYgeyR2YXJzKHZlcmJvc2UpfSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiNcbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyBSVU5OSU5HIFBPU1QgQVNTRU1CTFkgQ0xPU1VSRVxuIgotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjXG4iCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBzZXQgY29tbWFuZCAib3B0RGVzaWduIC1wb3N0Q1RTIC1vdXREaXIgJHZhcnMocnB0X2RpcikgLXByZWZpeCBwYWNcbiIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxvcHRfZGVzaWduICRjb21tYW5kXQotICAgCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjpzb3VyY2VfcGx1ZyBwb3N0X3BhY190Y2wgMF0KLSAgICAgICAgIH0KLSAgICAgIH0KLQotICAgICAgaWYge1tsaW5kZXggW3NwbGl0ICR2YXJzKHZlcnNpb24pICIuIl0gIDBdIDwgMTZ9IHsKLSAgICAgICAgc2V0IGNvbW1hbmQgInNldFRyaWFsUm91dGVNb2RlIC1oYW5kbGVQYXJ0aXRpb25Db21wbGV4IHRydWUgLWhvbm9yUGluIHRydWVcbiIKLSAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHNldF90cmlhbF9yb3V0ZV9tb2RlMSAkY29tbWFuZF0KLSAgICAgICAgc2V0IGNvbW1hbmQgInRyaWFsUm91dGVcbiIKLSAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHRyaWFsX3JvdXRlMSAkY29tbWFuZF0KLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgIHNldCBjb21tYW5kICJzZXRSb3V0ZU1vZGUgLWVhcmx5R2xvYmFsUm91dGVQYXJ0aXRpb25Ib25vckZlbmNlIC4gLWVhcmx5R2xvYmFsUm91dGVQYXJ0aXRpb25Ib25vclBpbiAuXG4iCi0gICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxzZXRfcm91dGVfbW9kZTEgJGNvbW1hbmRdCi0gICAgICAgIHNldCBjb21tYW5kICJlYXJseUdsb2JhbFJvdXRlXG4iCi0gICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxlYXJseV9nbG9iYWxfcm91dGUxICRjb21tYW5kXQotICAgICAgfQotCi0gICAgICBhcHBlbmQgY29tbWFuZCAiZGVyaXZlVGltaW5nQnVkZ2V0IC1ub1RyaWFsSVBPIC1ub0NvbnN0YW50TW9kZWxcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxkZXJpdmVfdGltaW5nX2J1ZGdldCAkY29tbWFuZF0KLQotICAgICAgaWYge1tzdHJpbmcgY29tcGFyZSAtbm9jYXNlICR2YXJzKGRic19mb3JtYXQpICJvYSJdPT0wfSB7Ci0gICAgICAgICBpZiB7W2xpbmRleCBbc3BsaXQgJHZhcnModmVyc2lvbikgIi4iXSAgMF0gPiAxMH0gewotICAgICAgICAgICAgc2V0IGNvbW1hbmQgInNhdmVEZXNpZ24gLWNlbGx2aWV3IHskdmFycyhvYV9kZXNpZ25fbGliKSAkdmFycyhkZXNpZ24pIGJ1ZGdldH1cbiIKLSAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBzZXQgY29tbWFuZCAic2F2ZU9hRGVzaWduICR2YXJzKG9hX2Rlc2lnbl9saWIpICR2YXJzKGRlc2lnbikgYnVkZ2V0XG4iCi0gICAgICAgICB9Ci0gICAgICB9IGVsc2UgewotICAgICAgICAgc2V0IGNvbW1hbmQgInNhdmVEZXNpZ24gJHZhcnMoZGJzX2RpcikvYnVkZ2V0LmVuYyAtY29tcHJlc3NcbiIKLSAgICAgIH0KLSAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxzYXZlX2Rlc2lnbixidWRnZXQgJGNvbW1hbmRdCi0KLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICMgUGFydGl0aW9uIGFuZCBzYXZlIHRoZSBwYXJ0aXRpb25zIGludG8gdGhlCi0gICAgICAjIGRpcmVjdG9yeSBQQVJUSVRJT04KLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSMgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjpzb3VyY2VfcGx1ZyBwcmVfcGFydGl0aW9uX3RjbF0KLQotIyAgICAgIHNldCBjb21tYW5kICJzZXQgcHRuZ1B0blRpbWluZ0xpYkZvcm1hdCBsaWJcbnBhcnRpdGlvbiAtYnVpbGRTY2FuXG4iCi0gICAgICBzZXQgY29tbWFuZCAicGFydGl0aW9uIC1idWlsZFNjYW5cbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxwYXJ0aXRpb24gJGNvbW1hbmRdCi0gICAgICBpZiB7W2xpbmRleCBbc3BsaXQgJHZhcnModmVyc2lvbikgIi4iXSAgMF0gPiAxMH0gewotICAgICAgICAgaWYgeyhbc3RyaW5nIGNvbXBhcmUgJHZhcnMoZGJzX2Zvcm1hdCkgIm9hIl09PTApfSB7Ci0gICAgICAgICAgICBpZiB7JHZhcnMoaGllcl9mbG93X3R5cGUpID09ICIxcGFzcyJ9IHsKLSAgICAgICAgICAgICAgIHNldCBjb21tYW5kICJzYXZlUGFydGl0aW9uIC1wdG5MaWIgJHZhcnMob2FfcGFydGl0aW9uX2xpYikgLWRpciAkdmFycyhwYXJ0aXRpb25fZGlyKVxuIgotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIHNldCBjb21tYW5kICJzYXZlUGFydGl0aW9uIC1wdG5MaWIgJHZhcnMob2FfcGFydGl0aW9uX2xpYikgLWRpciAkdmFycyhwYXJ0aXRpb25fZGlyX3Bhc3MyKVxuIgotICAgICAgICAgICAgfQotICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIGlmIHskdmFycyhoaWVyX2Zsb3dfdHlwZSkgPT0gIjFwYXNzIn0gewotICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgInNhdmVQYXJ0aXRpb24gLWRpciAkdmFycyhwYXJ0aXRpb25fZGlyKSAtZGVmIC1zY2FuRGVmXG4iCi0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgInNhdmVQYXJ0aXRpb24gLWRpciAkdmFycyhwYXJ0aXRpb25fZGlyX3Bhc3MyKSAtZGVmIC1zY2FuRGVmXG4iCi0gICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0gICAgICB9IGVsc2UgewotICAgICAgICAgc2V0IGNvbW1hbmQgInNhdmVQYXJ0aXRpb24gLWRpciAkdmFycyhwYXJ0aXRpb25fZGlyKSAtZGVmIC1zY2FuRGVmXG4iCi0gICAgICB9Ci0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksc2F2ZV9wYXJ0aXRpb24gJGNvbW1hbmRdCi0jICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6c291cmNlX3BsdWcgcG9zdF9wYXJ0aXRpb25fdGNsXQotCi0gICAgICBpZiB7JHZhcnModXNlX2ZsZXhtb2RlbHMpICYmICR2YXJzKGZsZXhtb2RlbF9hc19wdG4pfSB7Ci0jICAgICAgICAgc2V0IGNvbW1hbmQgInJlcGxhY2VfcHJvdG9fbW9kZWwgXFxcbiIKLSMgICAgICAgICBhcHBlbmQgY29tbWFuZCAiICAgLXByZV9mdF9kaXIgJHZhcnMoZWNvX2RpcikvcHJlX2Z0IFxcXG4iCi0jICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAgIC1wb3N0X2Z0X2RpciAkdmFycyhlY29fZGlyKS9wb3N0X2Z0IFxcXG4iCi0jICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAgIC1wdG5fZGlyICR2YXJzKHBhcnRpdGlvbl9kaXIpIFxcXG4iCi0jICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAgIC1wdG5fZnVsbF9uZXRsaXN0X2RpciAuL3RlbXBfbmV0bGlzdF9kaXIgXFxcbiIKLSMgICAgICAgICBhcHBlbmQgY29tbWFuZCAiICAgLW91dF9kaXIgJHZhcnMocGFydGl0aW9uX2RpcilcbiIKLQotICAgICAgICAgc2V0IGNvbW1hbmQgInJlcGxhY2VfcHJvdG9fbW9kZWwgXFxcbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgICAtcHRuX2RpciAkdmFycyhwYXJ0aXRpb25fZGlyKSBcXFxuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAgIC1vdXRfZGlyICR2YXJzKHBhcnRpdGlvbl9kaXIpXG4iCi0KLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxyZXBsYWNlX3Byb3RvX21vZGVsICRjb21tYW5kXQotICAgICAgfQotCi0gICAgICBhcHBlbmQgY29tbWFuZHMgIiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyA8RkY+IEdFTkVSQVRJTkcgUkVQT1JUU1xuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzICIjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4iCi0KLSAgICAgIGlmIHskdmFycyhyZXBvcnRfcG93ZXIpfSB7Ci0gICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMocG93ZXJfYW5hbHlzaXNfdmlldyldICYmICgkdmFycyhwb3dlcl9hbmFseXNpc192aWV3KSAhPSAiIil9IHsKLSAgICAgICAgICAgIHNldCBjb21tYW5kICJyZXBvcnRfcG93ZXIgLXZpZXcgJHZhcnMocG93ZXJfYW5hbHlzaXNfdmlldykgLW91dGZpbGUgJHZhcnMocnB0X2RpcikvJHZhcnMoc3RlcCkucG93ZXIucnB0XG4iCi0gICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgc2V0IGNvbW1hbmQgInJlcG9ydF9wb3dlciAtb3V0ZmlsZSAkdmFycyhycHRfZGlyKS8kdmFycyhzdGVwKS5wb3dlci5ycHRcbiIKLSAgICAgICAgIH0KLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxyZXBvcnRfcG93ZXIgJGNvbW1hbmRdCi0gICAgICB9Ci0KLSAgICAgIGlmIHtbRkY6OmlzX2xwX2Zsb3ddICYmIFtpbmZvIGV4aXN0cyB2YXJzKHBvd2VyX2RvbWFpbnMpXSAmJiBbbGxlbmd0aCAkdmFycyhwb3dlcl9kb21haW5zKV0gPiAxfSB7Ci0KLSAgICAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICAgICMgVmVyaWZ5IHBvd2VyIGRvbWFpbgotICAgICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCi0gICAgICAgICBzZXQgY29tbWFuZCAidmVyaWZ5UG93ZXJEb21haW4gLWJpbmQgLWdjb25uIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAtaXNvTmV0UEQgJHZhcnMocnB0X2RpcikvJHZhcnMoc3RlcCkuaXNvbmV0cy5ycHQiCi0gICAgICAgICBhcHBlbmQgY29tbWFuZCAiIC14TmV0UEQgJHZhcnMocnB0X2RpcikvJHZhcnMoc3RlcCkueG5ldHMucnB0XG4iCi0KLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSx2ZXJpZnlfcG93ZXJfZG9tYWluICRjb21tYW5kXQotCi0gICAgICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAgICAjIFJ1biBDTFAKLSAgICAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLQotICAgICAgICAgaWYgeyR2YXJzKHJ1bl9jbHApICYmIChbYXV0b19leGVjb2sgbGVjXSAhPSAiIil9IHsKLSAgICAgICAgICAgIHNldCBjb21tYW5kICJydW5DTFAgIgotICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGNscF9vcHRpb25zKV19IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICR2YXJzKGNscF9vcHRpb25zKQotICAgICAgICAgICAgfQotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIlxuIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHJ1bl9jbHAgJGNvbW1hbmRdCi0gICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycyhjbHBfd2FybmluZyldfSB7Ci0gICAgICAgICAgICAgICBwdXRzICI8RkY+IFdBUk5JTkc6IFVOQUJMRSBUTyBSVU4gQ0xQIC4uLiBQTEVBU0UgTUFLRSBTVVJFIElUIElTIElOIFlPVVIgUEFUSCIKLSAgICAgICAgICAgICAgIHNldCB2YXJzKGNscF93YXJuaW5nKSB0cnVlCi0gICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0gICAgICB9Ci0gICAgICBpZiB7ISR2YXJzKGNvZGVnZW4pfSB7Ci0gICAgICAgICB1cGxldmVsICMwIGV2YWwgJGNvbW1hbmRzCi0gICAgICAgICBzZXQgY29tbWFuZHMgIiIgCi0gICAgICB9Ci0KLSMgICAgICBpZiB7JHZhcnMobWFrZWZpbGUpfSB7IAotICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiaWYge1xbaW5mbyBleGlzdHMgZW52KFZQQVRIKVxdfSB7XG4iCi0gICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJleGVjIC9iaW4vdG91Y2ggXCRlbnYoVlBBVEgpLyR2YXJzKHN0ZXApXG4iCi0gICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJ9XG4iCi0jICAgICAgIH0KLQotIyAgICAgIGlmIHskdmFycyhlbmFibGVfZmxleGlsbSl9IHsKLSMgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgQ29weSBNYWtlZmlsZXMgaW4gY2FzZSB0aGV5IGdldCBkZWxldGVkIGR1cmluZyB0aGUgZmxvdyAuLi5cbiIKLSMgICAgICAgICBmb3JlYWNoIHBhcnQgW2NvbmNhdCAkdmFycyhkZXNpZ24pICR2YXJzKHBhcnRpdGlvbl9saXN0KV0gewotIyAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiZmlsZSBjb3B5IC1mb3JjZSAkdmFycyhzY3JpcHRfZGlyKS8kcGFydC5NYWtlZmlsZSAkdmFycyhwYXJ0aXRpb25fZGlyX3Bhc3MyKS8kcGFydC9NYWtlZmlsZVxuIgotIyAgICAgICAgIH0KLSMgICAgICAgICBhcHBlbmQgY29tbWFuZHMgImZpbGUgY29weSAtZm9yY2UgJHZhcnMocGFydGl0aW9uX2RpcikvTWFrZWZpbGUgJHZhcnMocGFydGl0aW9uX2Rpcl9wYXNzMikvTWFrZWZpbGVcbiIKLSMgICAgICAgICBhcHBlbmQgY29tbWFuZHMgImZpbGUgY29weSAtZm9yY2UgJHZhcnMocGFydGl0aW9uX2RpcikvTWFrZWZpbGUucGFydGl0aW9uICR2YXJzKHBhcnRpdGlvbl9kaXJfcGFzczIpL01ha2VmaWxlLnBhcnRpdGlvblxuIgotIyAgICAgIH0KLQotICAgICAgaWYgeyR2YXJzKGNvZGVnZW4pfSB7Ci0gICAgICAgICByZXR1cm4gJGNvbW1hbmRzCi0gICAgICB9IGVsc2UgewotICAgICAgICAgdXBsZXZlbCAjMCBldmFsICRjb21tYW5kcwotICAgICAgfQotICAgfQotCi0gICBwcm9jIHJ1bl9hc3NlbWJsZV9mbGV4aWxtIHt7Zm9ybWF0IDF9fSB7Ci0KLSAgICAgIGdsb2JhbCB2YXJzCi0gICAgICBnbG9iYWwgZXJyb3JzCi0gICAgICBnbG9iYWwgZW52Ci0KLSAgICAgIHNldCB2YXJzKHN0ZXApIGFzc2VtYmxlX2ZsZXhpbG0KLSAgICAgIHNldCBjb21tYW5kcyAiIgotIyAgICAgIGFwcGVuZCBjb21tYW5kcyAic2V0IHZhcnMoc3RlcCkgJHZhcnMoc3RlcClcbiIKLQotICAgICAgRkZfRURJOjppbml0aWFsaXplX3N0ZXAgJHZhcnMoc3RlcCkKLQotICAgICAgaWYgeyR2YXJzKHZlcmJvc2UpfSB7Ci0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiNcbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyBBU1NFTUJMSU5HIERFU0lHTlxuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjXG4iCi0gICAgICB9Ci0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAjIExvYWQgInByZSByZWJ1ZGdldCIgcGx1Zy1pbiBzY3JpcHQKLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OnNvdXJjZV9wbHVnIHByZV9yZWJ1ZGdldF90Y2xdCi0KLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICMgQXNzZW1ibGUgdGhlIGRlc2lnbgotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgc2V0IHZhcnMoaWxtKSBmYWxzZQotICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGlsbV9saXN0KV0gJiYgKCR2YXJzKGlsbV9saXN0KSAhPSAiIil9IHsKLSAgICAgICAgIHNldCB2YXJzKGlsbSkgdHJ1ZSAKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgICBzZXQgdmFycyhpbG1fbGlzdCkgIiIKLSAgICAgIH0KLQotICAgICAgIyBCQ0w6IEFkZGVkIHRhaWwgb2Ygc3Vic3Qgb2YgdmFycyhkYnNfZGlyKQotICAgICAgIyBOb3RlIC0gRURJRkYgSGllcmFyY2hpY2FsIGZsb3cgaXMgY3VycmVudGx5IElOQ09NUEFUSUJMRSB3aXRoIEZGIGRpciBzdHJ1Y3R1cmUKLSAgICAgICMgVGhlIGZvbGxvd2luZyBjb2RlIGFwcGVhcnMgdG8gcmVseSBvbiB2YXJzKGRic19kaXIpIGFsd2F5cyBiZWluZyB1bmRlciAkdmFycyhwYXJ0aXRpb25fZGlyKS8kdmFycyhkZXNpZ24pCi0gICAgICAjIFRoaXMgbmVlZHMgdG8gYmUgcmVjb25jaWxlZAotICAgICAgc2V0IGRpciBbZmlsZSB0YWlsIFtzdWJzdCAkdmFycyhkYnNfZGlyKV1dCi0KLSAgICAgIGlmIHtbbGluZGV4IFtzcGxpdCAkdmFycyh2ZXJzaW9uKSAiLiJdICAwXSA+IDEwfSB7Ci0gICAgICAgICBzZXQgY29tbWFuZCBbRkZfRURJOjppbml0aWFsaXplX3RpbWluZyBtbW1jXQotICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGNwZl9maWxlKV0gJiYgJHZhcnMoY3BmX3RpbWluZyl9IHsKLSAgICAgICAgICAgIHNldCBtbW1jX2ZpbGUgJHZhcnMoc2NyaXB0X2RpcikvaW5jcl92aWV3X2RlZmluaXRpb24udGNsCi0gICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnModmlld19kZWZpbml0aW9uX3RjbCldfSB7Ci0gICAgICAgICAgICAgICAgc2V0IG1tbWNfZmlsZSAkdmFycyh2aWV3X2RlZmluaXRpb25fdGNsKQotICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgc2V0IG1tbWNfZmlsZSAkdmFycyhzY3JpcHRfZGlyKS92aWV3X2RlZmluaXRpb24udGNsCi0gICAgICAgICAgICAgfQotICAgICAgICAgIH0KLSAgICAgIH0KLSAgICAgIGlmIHsoW3N0cmluZyBjb21wYXJlIC1ub2Nhc2UgJHZhcnMoZGJzX2Zvcm1hdCkgIm9hIl09PTApICYmIChbbGluZGV4IFtzcGxpdCAkdmFycyh2ZXJzaW9uKSAiLiJdICAwXSA+IDEwKX0gewotCi0gICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJHZhcnMoZGVzaWduKSxyZWJ1ZGdldF9hc3NlbWJsZV9zdGVwKV19IHsKLSAgICAgICAgICAgIHNldCBjb21tYW5kICJhc3NlbWJsZURlc2lnbiAtdG9wRGVzaWduIHskdmFycyhvYV9wYXJ0aXRpb25fbGliKSAkdmFycyhkZXNpZ24pICR2YXJzKCR2YXJzKGRlc2lnbikscmVidWRnZXRfYXNzZW1ibGVfc3RlcCl9IC1tbW1jRmlsZSAkbW1tY19maWxlIgotICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHNldCBjb21tYW5kICJhc3NlbWJsZURlc2lnbiAtdG9wRGVzaWduIHskdmFycyhvYV9wYXJ0aXRpb25fbGliKSAkdmFycyhkZXNpZ24pIGN0c30gLW1tbWNGaWxlICRtbW1jX2ZpbGUiCi0gICAgICAgICB9Ci0gICAgICAgICBmb3JlYWNoIHBhcnQgJHZhcnMocGFydGl0aW9uX2xpc3QpIHsKLSAgICAgICAgICAgIGlmIHtbbHNlYXJjaCAkaWxtX2xpc3QgJHBhcnRdID09IC0xfSB7Ci0gICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJHBhcnQscmVidWRnZXRfYXNzZW1ibGVfc3RlcCldfSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiXFxcbiAgIC1ibG9jayB7JHZhcnMob2FfcGFydGl0aW9uX2xpYikgJHBhcnQgJHZhcnMoJHZhcnMoJHBhcnQpLHJlYnVkZ2V0X2Fzc2VtYmxlX3N0ZXApfSIKLSAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiXFxcbiAgIC1ibG9jayB7JHZhcnMob2FfcGFydGl0aW9uX2xpYikgJHBhcnQgY3RzfSIKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0KLSAgICAgIH0gZWxzZSB7Ci0jICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kIHJlYnVkZ2V0LGluaXRpYWxpemVfdGltaW5nICRjb21tYW5kXQotICAgICAgICAgaWYge1tsaW5kZXggW3NwbGl0ICR2YXJzKHZlcnNpb24pICIuIl0gIDBdID4gMTB9IHsKLSAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhjcGZfZmlsZSldICYmICR2YXJzKGNwZl90aW1pbmcpfSB7Ci0gICAgICAgICAgICAgICBzZXQgYXNzZW1ibGVfY29tbWFuZCAiYXNzZW1ibGVEZXNpZ24gLWNwZkZpbGUgJHZhcnMoY3BmX2ZpbGUpIgotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIHNldCBhc3NlbWJsZV9jb21tYW5kICJhc3NlbWJsZURlc2lnbiAtbW1tY0ZpbGUgJG1tbWNfZmlsZSIKLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBzZXQgYXNzZW1ibGVfY29tbWFuZCAiYXNzZW1ibGVEZXNpZ24iCi0gICAgICAgICB9Ci0gICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJHZhcnMoZGVzaWduKSxyZWJ1ZGdldF9hc3NlbWJsZV9kYnMpXX0gewotICAgICAgICAgICAgc2V0IGNvbW1hbmQgIiRhc3NlbWJsZV9jb21tYW5kIC1kZWZNZXJnZSAtdG9wRGlyICR2YXJzKCR2YXJzKGRlc2lnbikscmVidWRnZXRfYXNzZW1ibGVfZGJzKSIKLSAgICAgICAgIH0gZWxzZWlmIHtbaW5mbyBleGlzdHMgdmFycygkdmFycyhkZXNpZ24pLHJlYnVkZ2V0X2Fzc2VtYmxlX3N0ZXApXX0gewotICAgICAgICAgICAgc2V0IGNvbW1hbmQgIiRhc3NlbWJsZV9jb21tYW5kIC1kZWZNZXJnZSAkdmFycyhwYXJ0aXRpb25fZGlyKS8kdmFycyhkZXNpZ24pLyRkaXIvJHZhcnMoJHZhcnMoZGVzaWduKSxyZWJ1ZGdldF9hc3NlbWJsZV9zdGVwKS5lbmMuZGF0IgotICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIGlmIHskdmFycyhlbmFibGVfZmxleGlsbSl9IHsKLSMgICAgICAgICAgICAgICBzZXQgY29tbWFuZCAiJGFzc2VtYmxlX2NvbW1hbmQgXFxcbiAgIC1kZWZNZXJnZSBcXFxuICAgLXRvcERpciAkdmFycyhwYXJ0aXRpb25fZGlyX3Bhc3MyKS8kdmFycyhkZXNpZ24pICIKLSAgICAgICAgICAgICAgIHNldCBjb21tYW5kICIkYXNzZW1ibGVfY29tbWFuZCBcXFxuICAgLWRlZk1lcmdlIFxcXG4gICAtdG9wRGlyICR2YXJzKHBhcnRpdGlvbl9kaXIpX1BSRUNUUy8kdmFycyhkZXNpZ24pICIKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBzZXQgY29tbWFuZCAiJGFzc2VtYmxlX2NvbW1hbmQgLWRlZk1lcmdlIC10b3BEaXIgJHZhcnMocGFydGl0aW9uX2RpcikvJHZhcnMoZGVzaWduKS8kZGlyL2N0cy5lbmMuZGF0ICIKLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0KLSAgICAgICAgIGZvcmVhY2ggcGFydCAkdmFycyhwYXJ0aXRpb25fbGlzdCkgewotICAgICAgICAgICAgaWYge1tsc2VhcmNoICR2YXJzKGlsbV9saXN0KSAkcGFydF0gPT0gLTF9IHsKLSAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkcGFydCxyZWJ1ZGdldF9hc3NlbWJsZV9kYnMpXX0gewotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIlxcXG4gICAtYmxvY2tEaXIgJHZhcnMoJHBhcnQscmVidWRnZXRfYXNzZW1ibGVfZGJzKSIKLSAgICAgICAgICAgICAgIH0gZWxzZWlmIHtbaW5mbyBleGlzdHMgdmFycygkcGFydCxyZWJ1ZGdldF9hc3NlbWJsZV9zdGVwKV19IHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJcXFxuICAgLWJsb2NrRGlyICR2YXJzKHBhcnRpdGlvbl9kaXIpLyRwYXJ0LyRkaXIvJHZhcnMoJHBhcnQscmVidWRnZXRfYXNzZW1ibGVfc3RlcCkuZW5jLmRhdCIKLSAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICBpZiB7JHZhcnMoZW5hYmxlX2ZsZXhpbG0pfSB7Ci0gICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiXFxcbiAgIC1ibG9ja0RpciAkdmFycyhwYXJ0aXRpb25fZGlyKV9QUkVDVFMvJHBhcnQvJHtwYXJ0fV9wb3N0RUNPLmVuYy5kYXQiCi0gICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIlxcXG4gICAtYmxvY2tEaXIgJHZhcnMocGFydGl0aW9uX2RpcikvJHBhcnQvJGRpci9jdHMuZW5jLmRhdCIKLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0KLSAgICAgIH0KLSAgICAgIGFwcGVuZCBjb21tYW5kICJcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxhc3NlbWJsZV9kZXNpZ24gJGNvbW1hbmRdCi0KLSAgICAgIGlmIHskdmFycyhjYXB0dXJlX21ldHJpY3MpfSB7Ci0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgInVtOjplbmFibGVfbWV0cmljcyAtb25cbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAidW06OnB1c2hfc25hcHNob3Rfc3RhY2tcbiIKLSAgICAgIH0KLSAgICAgIAotICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6c291cmNlX3BsdWcgYWx3YXlzX3NvdXJjZV90Y2xdCi0KLSAgICAgIHNldCBjb21tYW5kICIiCi0gICAgICAjIEFkZGl0aW9uYWwgdGltaW5nIHNldHVwCi0gICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJHZhcnMoZGVzaWduKSxsYXRlbmN5X3NkYyldfSB7Ci0gICAgICAgICBhcHBlbmQgY29tbWFuZCAiZm9yZWFjaCBtb2RlIFxbYWxsX2NvbnN0cmFpbnRfbW9kZXMgLWFjdGl2ZVxdIHtcbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgICBzZXQgc2RjX2ZpbGVzIFxbZ2V0X2NvbnN0cmFpbnRfbW9kZSBcJG1vZGUgLXNkY19maWxlc1xdXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZCAiICAgc2V0IHNkY19saXN0IFxbY29uY2F0IFwkc2RjX2ZpbGVzICR2YXJzKCR2YXJzKGRlc2lnbiksbGF0ZW5jeV9zZGMpXF1cbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgICB1cGRhdGVfY29uc3RyYWludF9tb2RlIC1uYW1lIFwkbW9kZSAtc2RjX2ZpbGVzIFwkc2RjX2xpc3RcbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kICJ9XG4iCi0KLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSx1cGRhdGVfY29uc3RyYWludF9tb2RlICRjb21tYW5kXQotICAgICAgfQotCi0gICAgICBmb3JlYWNoIHZpZXcgW2NvbmNhdCAkdmFycyhzZXR1cF9hbmFseXNpc192aWV3cykgJHZhcnMoaG9sZF9hbmFseXNpc192aWV3cyldIHsKLSAgICAgICAgIGZvcmVhY2ggcHRuICR2YXJzKHBhcnRpdGlvbl9saXN0KSB7Ci0gICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJHB0biwkdmlldyxsYXRlbmN5X3NkYyldfSB7Ci0gICAgICAgICAgICAgICBzZXQgbGF0ZW5jeSgkdmlldywkcHRuKSAkdmFycygkcHRuLCR2aWV3LGxhdGVuY3lfc2RjKQotICAgICAgICAgICAgfSBlbHNlaWYge1tpbmZvIGV4aXN0cyB2YXJzKCRwdG4sbGF0ZW5jeV9zZGMpXX0gewotICAgICAgICAgICAgICAgc2V0IGxhdGVuY3koJHZpZXcsJHB0bikgJHZhcnMoJHB0bixsYXRlbmN5X3NkYykKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBzZXQgbGF0ZW5jeSgkdmlldywkcHRuKSAibm9uZSIKLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0KLSAgICAgIH0KLSAgICAgIAotICAgICAgc2V0IGNvbW1hbmQgIiIKLSAgICAgIGZvcmVhY2ggdmlldyBbY29uY2F0ICR2YXJzKHNldHVwX2FuYWx5c2lzX3ZpZXdzKSAkdmFycyhob2xkX2FuYWx5c2lzX3ZpZXdzKV0gewotICAgICAgICAgZm9yZWFjaCBwdG4gJHZhcnMocGFydGl0aW9uX2xpc3QpIHsKLSAgICAgICAgICAgIGlmIHskbGF0ZW5jeSgkdmlldywkcHRuKSAhPSAibm9uZSJ9IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgICBzZXRQdG5Vc2VyQ25zRmlsZSAtdmlldyAkdmlldyAtZmlsZU5hbWUgJGxhdGVuY3koJHZpZXcsJHB0bikgLXB0bk5hbWUgJHB0blxuIgotICAgICAgICAgICAgfQotICAgICAgICAgfQotICAgICAgfQotCi0gICAgICBpZiB7JGNvbW1hbmQgIT0gIiJ9IHsgICAgICAKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxzZXRfcHRuX3VzZXJfY25zX2ZpbGUgJGNvbW1hbmRdCi0gICAgICB9Ci0KLSAgICAgIGlmIHsoW2xpbmRleCBbc3BsaXQgJHZhcnModmVyc2lvbikgIi4iXSAgMF0gPiAxMCkgJiYgJHZhcnMoY3BmX3RpbWluZyl9IHsKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAic291cmNlICRtbW1jX2ZpbGVcbiIKLSAgICAgIH0KLSAgICAgIGlmIHskdmFycyhmbG93KSA9PSAibW1tYyJ9IHsKLSAgICAgICAgIHNldCBjb21tYW5kIFtGRl9FREk6OmRlcmF0ZV90aW1pbmcgbW1tY10KLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxkZXJhdGVfdGltaW5nICRjb21tYW5kXQotICAgICAgfQotCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAjIExvYWQgInBvc3QgYXNzZW1ibGVfZmxleGlsbSIgcGx1Zy1pbiBzY3JpcHQKLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OnNvdXJjZV9wbHVnIHBvc3RfZmxleGlsbSAwXQotCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAjIFNwZWNpZnkgSUxNcyBpZiBkZWZpbmVkCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICBpZiB7JHZhcnMoaWxtKX0gewotICAgICAgICAgaWYgeyR2YXJzKHZlcmJvc2UpfSB7Ci0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiNcbiIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyBTUEVDSUZZSU5HIElMTXNcbiIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiI1xuIgotICAgICAgICAgfQotICAgICAgICAgc2V0IGNvbW1hbmQgIiIgCi0gICAgICAgICBmb3JlYWNoIGNlbGwgJHZhcnMoaWxtX2xpc3QpIHsKLSAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkY2VsbCxpbG1fZGlyKV0gJiYgW2ZpbGUgaXNkaXJlY3RvcnkgJHZhcnMoJGNlbGwsaWxtX2RpcildfSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAic3BlY2lmeUlsbSAtY2VsbCAkY2VsbCAtZGlyICR2YXJzKCRjZWxsLGlsbV9kaXIpXG4iCi0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgcHV0cyAiPEZGPiBXQVJOSU5HOiBJTE0gRElSRUNUT1JZIE1JU1NJTkcgRk9SICRjZWxsIC4uLiBTS0lQUElORyIKLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0gCi0gIAotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHNwZWNpZnlfaWxtICRjb21tYW5kXQotICAKLSAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhpbG1fbm9uX3NkY19maWxlKV19IHsKLSAgICAgICAgICAgIGlmIHtbbGluZGV4IFtzcGxpdCAkdmFycyh2ZXJzaW9uKSAiLiJdICAwXSA8PSAxMH0gewotICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgImxvYWRUaW1pbmdDb24gLWlsbU5vblNkY0ZpbGUgJHZhcnMoaWxtX25vbl9zZGNfZmlsZSlcbiIKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBzZXQgY29tbWFuZCAic2V0SWxtTm9uU2RjQ29uc3RyYWludEZpbGUgJHZhcnMoaWxtX25vbl9zZGNfZmlsZSlcbiIKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxsb2FkX2lsbV9ub25fc2RjX2ZpbGUgJGNvbW1hbmRdCi0gICAgICAgICB9Ci0gICAgICB9Ci0KLSAgICAgIGlmIHtbbGluZGV4IFtzcGxpdCAkdmFycyh2ZXJzaW9uKSAiLiJdICAwXSA8IDE0fSB7Ci0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGX0VESTo6bG9hZF9wb3dlcl9pbnRlbnRdCi0gICAgICB9IGVsc2UgewotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRl9OT1ZVUzo6bG9hZF9wb3dlcl9pbnRlbnRdCi0gICAgICB9Ci0KLSAgICAgIGlmIHtbbGluZGV4IFtzcGxpdCAkdmFycyh2ZXJzaW9uKSAiLiJdICAwXSA8PSAxMH0gewotICAgICAgICAgc2V0IGNvbW1hbmQgW0ZGX0VESTo6aW5pdGlhbGl6ZV90aW1pbmcgbW1tY10KLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxpbml0aWFsaXplX3RpbWluZyAkY29tbWFuZF0KLSAgICAgIH0gZWxzZWlmIHtbaW5mbyBleGlzdHMgdmFycyhjcGZfZmlsZSldICYmICR2YXJzKGNwZl90aW1pbmcpfSB7Ci0gICAgICAgICBzZXQgY29tbWFuZCBbRkZfRURJOjppbml0aWFsaXplX3RpbWluZyBtbW1jXQotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLGluaXRpYWxpemVfdGltaW5nICRjb21tYW5kXQotICAgICAgfQotCi0jICAgICAgaWYgeyEkdmFycyhlbmFibGVfZmxleGlsbSl9IHsKLSMgICAgICAgICBzZXQgY29tbWFuZCBbRkZfRURJOjp1cGRhdGVfdGltaW5nIG1tbWMgXQotIyAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSx1cGRhdGVfdGltaW5nICRjb21tYW5kXQotIyAgICAgIH0KLQotICAgICAgc2V0IGNvbW1hbmQgIiIKLSAgICAgIGZvcmVhY2ggbmFtZSAkdmFycyhwYXJ0aXRpb25fbGlzdCkgewotICAgICAgICAgYXBwZW5kIGNvbW1hbmQgInNldFB0blBpblN0YXR1cyAtY2VsbCAkbmFtZSAtcGluICogLXN0YXR1cyBwbGFjZWRcbiIKLSAgICAgIH0gCi0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksc2V0X3B0bl9waW5fc3RhdHVzICRjb21tYW5kXQotICAgICAgc2V0IGNvbW1hbmQgImRiRGVsZXRlVHJpYWxSb3V0ZVxuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLGRlbGV0ZV90cmlhbF9yb3V0ZSAkY29tbWFuZF0KLQotICAgICAgaWYge1tsaW5kZXggW3NwbGl0ICR2YXJzKHZlcnNpb24pICIuIl0gIDBdIDwgMTZ9IHsKLSAgICAgICAgc2V0IGNvbW1hbmQgInNldFRyaWFsUm91dGVNb2RlIC1oYW5kbGVQYXJ0aXRpb25Db21wbGV4IHRydWUgLWhvbm9yUGluIGZhbHNlXG4iCi0gICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxzZXRfdHJpYWxfcm91dGVfbW9kZSAkY29tbWFuZF0KLSAgICAgICAgc2V0IGNvbW1hbmQgInRyaWFsUm91dGVcbiIKLSAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHRyaWFsX3JvdXRlICRjb21tYW5kXQotICAgICAgfSBlbHNlIHsKLSAgICAgICAgc2V0IGNvbW1hbmQgInNldFJvdXRlTW9kZSAtZWFybHlHbG9iYWxSb3V0ZVBhcnRpdGlvbkhvbm9yRmVuY2UgLiAtZWFybHlHbG9iYWxSb3V0ZVBhcnRpdGlvbkhvbm9yUGluIHt9XG4iCi0gICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxzZXRfcm91dGVfbW9kZSAkY29tbWFuZF0KLSAgICAgICAgc2V0IGNvbW1hbmQgImVhcmx5R2xvYmFsUm91dGVcbiIKLSAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLGVhcmx5X2dsb2JhbF9yb3V0ZSAkY29tbWFuZF0KLSAgICAgIH0KLQotICAgICAgc2V0IGNvbW1hbmQgIiIKLSAgICAgIGFwcGVuZCBjb21tYW5kICJjcmVhdGVBY3RpdmVMb2dpY1ZpZXcgLXR5cGUgZmxhdFRvcFxuIgotICAgICAgYXBwZW5kIGNvbW1hbmQgInRpbWVEZXNpZ24gLXByZUNUUyAtb3V0RGlyICR2YXJzKHJwdF9kaXIpIC1wcmVmaXggYXNzZW1ibGVfcHJlY3RzX2ZsZXhpbG1cbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kICJjbGVhckFjdGl2ZUxvZ2ljVmlld1xuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLGNyZWF0ZV9hY3RpdmVfbG9naWNfdmlldyAkY29tbWFuZF0KLQotCi0jICAgICAgYXBwZW5kIGNvbW1hbmQgImRlcml2ZVRpbWluZ0J1ZGdldCAtbm9UcmlhbElQTyAtbm9Db25zdGFudE1vZGVsXG4iCi0jICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLGRlcml2ZV90aW1pbmdfYnVkZ2V0ICRjb21tYW5kXQotCi0jICAgICAgaWYge1tzdHJpbmcgY29tcGFyZSAtbm9jYXNlICR2YXJzKGRic19mb3JtYXQpICJvYSJdPT0wfSB7Ci0jICAgICAgICAgaWYge1tsaW5kZXggW3NwbGl0ICR2YXJzKHZlcnNpb24pICIuIl0gIDBdID4gMTB9IHsKLSMgICAgICAgICAgICBzZXQgY29tbWFuZCAic2F2ZURlc2lnbiAtY2VsbHZpZXcgeyR2YXJzKG9hX2Rlc2lnbl9saWIpICR2YXJzKGRlc2lnbikgYnVkZ2V0fVxuIgotIyAgICAgICAgIH0gZWxzZSB7Ci0jICAgICAgICAgICAgc2V0IGNvbW1hbmQgInNhdmVPYURlc2lnbiAkdmFycyhvYV9kZXNpZ25fbGliKSAkdmFycyhkZXNpZ24pIGJ1ZGdldFxuIgotIyAgICAgICAgIH0KLSMgICAgICB9IGVsc2UgewotIyAgICAgICAgIHNldCBjb21tYW5kICJzYXZlRGVzaWduICR2YXJzKGRic19kaXIpL2J1ZGdldC5lbmMgLWNvbXByZXNzXG4iCi0jICAgICAgfQotIyAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxzYXZlX2Rlc2lnbixidWRnZXQgJGNvbW1hbmRdCi0KLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICMgUGFydGl0aW9uIGFuZCBzYXZlIHRoZSBwYXJ0aXRpb25zIGludG8gdGhlCi0gICAgICAjIGRpcmVjdG9yeSBQQVJUSVRJT04KLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSMgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjpzb3VyY2VfcGx1ZyBwcmVfcGFydGl0aW9uX3RjbF0KLQotIyAgICAgIHNldCBjb21tYW5kICJzZXQgcHRuZ1B0blRpbWluZ0xpYkZvcm1hdCBsaWJcbnBhcnRpdGlvbiAtYnVpbGRTY2FuXG4iCi0jICAgICAgc2V0IGNvbW1hbmQgInBhcnRpdGlvbiAtYnVpbGRTY2FuXG4iCi0jICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHBhcnRpdGlvbiAkY29tbWFuZF0KLSMgICAgICBpZiB7W2xpbmRleCBbc3BsaXQgJHZhcnModmVyc2lvbikgIi4iXSAgMF0gPiAxMH0gewotIyAgICAgICAgIGlmIHsoW3N0cmluZyBjb21wYXJlICR2YXJzKGRic19mb3JtYXQpICJvYSJdPT0wKX0gewotIyAgICAgICAgICAgIGlmIHskdmFycyhoaWVyX2Zsb3dfdHlwZSkgPT0gIjFwYXNzIn0gewotIyAgICAgICAgICAgICAgIHNldCBjb21tYW5kICJzYXZlUGFydGl0aW9uIC1wdG5MaWIgJHZhcnMob2FfcGFydGl0aW9uX2xpYikgLWRpciAkdmFycyhwYXJ0aXRpb25fZGlyKVxuIgotIyAgICAgICAgICAgIH0gZWxzZSB7Ci0jICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgInNhdmVQYXJ0aXRpb24gLXB0bkxpYiAkdmFycyhvYV9wYXJ0aXRpb25fbGliKSAtZGlyICR2YXJzKHBhcnRpdGlvbl9kaXJfcGFzczIpXG4iCi0jICAgICAgICAgICAgfQotIyAgICAgICAgIH0gZWxzZSB7Ci0jICAgICAgICAgICAgaWYgeyR2YXJzKGhpZXJfZmxvd190eXBlKSA9PSAiMXBhc3MifSB7Ci0jICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgInNhdmVQYXJ0aXRpb24gLWRpciAkdmFycyhwYXJ0aXRpb25fZGlyKSAtZGVmIC1zY2FuRGVmXG4iCi0jICAgICAgICAgICAgfSBlbHNlIHsKLSMgICAgICAgICAgICAgICBzZXQgY29tbWFuZCAic2F2ZVBhcnRpdGlvbiAtZGlyICR2YXJzKHBhcnRpdGlvbl9kaXJfcGFzczIpIC1kZWYgLXNjYW5EZWZcbiIKLSMgICAgICAgICAgICB9Ci0jICAgICAgICAgfQotIyAgICAgIH0gZWxzZSB7Ci0jICAgICAgICAgc2V0IGNvbW1hbmQgInNhdmVQYXJ0aXRpb24gLWRpciAkdmFycyhwYXJ0aXRpb25fZGlyKSAtZGVmIC1zY2FuRGVmXG4iCi0jICAgICAgfQotIyAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxzYXZlX3BhcnRpdGlvbiAkY29tbWFuZF0KLSMgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjpzb3VyY2VfcGx1ZyBwb3N0X3BhcnRpdGlvbl90Y2xdCi0KLSAgICAgIGFwcGVuZCBjb21tYW5kcyAiIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzICIjIDxGRj4gR0VORVJBVElORyBSRVBPUlRTXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgIiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiIKLQotICAgICAgaWYgeyR2YXJzKHJlcG9ydF9wb3dlcil9IHsKLSAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhwb3dlcl9hbmFseXNpc192aWV3KV0gJiYgKCR2YXJzKHBvd2VyX2FuYWx5c2lzX3ZpZXcpICE9ICIiKX0gewotICAgICAgICAgICAgc2V0IGNvbW1hbmQgInJlcG9ydF9wb3dlciAtdmlldyAkdmFycyhwb3dlcl9hbmFseXNpc192aWV3KSAtb3V0ZmlsZSAkdmFycyhycHRfZGlyKS8kdmFycyhzdGVwKS5wb3dlci5ycHRcbiIKLSAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBzZXQgY29tbWFuZCAicmVwb3J0X3Bvd2VyIC1vdXRmaWxlICR2YXJzKHJwdF9kaXIpLyR2YXJzKHN0ZXApLnBvd2VyLnJwdFxuIgotICAgICAgICAgfQotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHJlcG9ydF9wb3dlciAkY29tbWFuZF0KLSAgICAgIH0KLQotICAgICAgaWYge1tGRjo6aXNfbHBfZmxvd10gJiYgW2luZm8gZXhpc3RzIHZhcnMocG93ZXJfZG9tYWlucyldICYmIFtsbGVuZ3RoICR2YXJzKHBvd2VyX2RvbWFpbnMpXSA+IDF9IHsKLQotICAgICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgICAgIyBWZXJpZnkgcG93ZXIgZG9tYWluCi0gICAgICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0KLSAgICAgICAgIHNldCBjb21tYW5kICJ2ZXJpZnlQb3dlckRvbWFpbiAtYmluZCAtZ2Nvbm4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZCAiIC1pc29OZXRQRCAkdmFycyhycHRfZGlyKS8kdmFycyhzdGVwKS5pc29uZXRzLnJwdCIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgLXhOZXRQRCAkdmFycyhycHRfZGlyKS8kdmFycyhzdGVwKS54bmV0cy5ycHRcbiIKLQotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHZlcmlmeV9wb3dlcl9kb21haW4gJGNvbW1hbmRdCi0KLSAgICAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICAgICMgUnVuIENMUAotICAgICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCi0gICAgICAgICBpZiB7JHZhcnMocnVuX2NscCkgJiYgKFthdXRvX2V4ZWNvayBsZWNdICE9ICIiKX0gewotICAgICAgICAgICAgc2V0IGNvbW1hbmQgInJ1bkNMUCAiCi0gICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoY2xwX29wdGlvbnMpXX0gewotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgJHZhcnMoY2xwX29wdGlvbnMpCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiXG4iCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCkscnVuX2NscCAkY29tbWFuZF0KLSAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBpZiB7IVtpbmZvIGV4aXN0cyB2YXJzKGNscF93YXJuaW5nKV19IHsKLSAgICAgICAgICAgICAgIHB1dHMgIjxGRj4gV0FSTklORzogVU5BQkxFIFRPIFJVTiBDTFAgLi4uIFBMRUFTRSBNQUtFIFNVUkUgSVQgSVMgSU4gWU9VUiBQQVRIIgotICAgICAgICAgICAgICAgc2V0IHZhcnMoY2xwX3dhcm5pbmcpIHRydWUKLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0KLSAgICAgIH0KLSAgICAgIGlmIHshJHZhcnMoY29kZWdlbil9IHsKLSAgICAgICAgIHVwbGV2ZWwgIzAgZXZhbCAkY29tbWFuZHMKLSAgICAgICAgIHNldCBjb21tYW5kcyAiIiAKLSAgICAgIH0KLQotIyAgICAgIGlmIHskdmFycyhtYWtlZmlsZSl9IHsgCi0gICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJpZiB7XFtpbmZvIGV4aXN0cyBlbnYoVlBBVEgpXF19IHtcbiIKLSAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgImV4ZWMgL2Jpbi90b3VjaCBcJGVudihWUEFUSCkvJHZhcnMoc3RlcClcbiIKLSAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIn1cbiIKLSMgICAgICAgfQotCi0jICAgICAgaWYgeyR2YXJzKGVuYWJsZV9mbGV4aWxtKX0gewotIyAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyBDb3B5IE1ha2VmaWxlcyBpbiBjYXNlIHRoZXkgZ2V0IGRlbGV0ZWQgZHVyaW5nIHRoZSBmbG93IC4uLlxuIgotIyAgICAgICAgIGZvcmVhY2ggcGFydCBbY29uY2F0ICR2YXJzKGRlc2lnbikgJHZhcnMocGFydGl0aW9uX2xpc3QpXSB7Ci0jICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJmaWxlIGNvcHkgLWZvcmNlICR2YXJzKHNjcmlwdF9kaXIpLyRwYXJ0Lk1ha2VmaWxlICR2YXJzKHBhcnRpdGlvbl9kaXJfcGFzczIpLyRwYXJ0L01ha2VmaWxlXG4iCi0jICAgICAgICAgfQotIyAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiZmlsZSBjb3B5IC1mb3JjZSAkdmFycyhwYXJ0aXRpb25fZGlyKS9NYWtlZmlsZSAkdmFycyhwYXJ0aXRpb25fZGlyX3Bhc3MyKS9NYWtlZmlsZVxuIgotIyAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiZmlsZSBjb3B5IC1mb3JjZSAkdmFycyhwYXJ0aXRpb25fZGlyKS9NYWtlZmlsZS5wYXJ0aXRpb24gJHZhcnMocGFydGl0aW9uX2Rpcl9wYXNzMikvTWFrZWZpbGUucGFydGl0aW9uXG4iCi0jICAgICAgfQotCi0gICAgICBpZiB7JHZhcnMoY29kZWdlbil9IHsKLSAgICAgICAgIHJldHVybiAkY29tbWFuZHMKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgICB1cGxldmVsICMwIGV2YWwgJGNvbW1hbmRzCi0gICAgICB9Ci0gICB9Ci0KLSAgIHByb2MgcnVuX2ZsZXhpbG0ge3tmb3JtYXQgMX19IHsKLQotICAgICAgZ2xvYmFsIHZhcnMKLSAgICAgIGdsb2JhbCBlcnJvcnMKLSAgICAgIGdsb2JhbCBlbnYKLQotICAgICAgc2V0IHZhcnMoc3RlcCkgZmxleGlsbQotICAgICAgc2V0IGNvbW1hbmRzICIiCi0jICAgICAgYXBwZW5kIGNvbW1hbmRzICJzZXQgdmFycyhzdGVwKSAkdmFycyhzdGVwKVxuIgotCi0gICAgICBGRl9FREk6OmluaXRpYWxpemVfc3RlcCBmbGV4aWxtCi0KLSMgICAgICBpZiB7JHZhcnMocmVwb3J0X3J1bl90aW1lKX0gewotIyAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAic2V0IHZhcnMoJHZhcnMoc3RlcCksc3RhcnRfdGltZSkgXFtjbG9jayBzZWNvbmRzXF1cbiIKLSMgICAgICB9Ci0KLSAgICAgIGlmIHskdmFycyh2ZXJib3NlKX0gewotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgUkVTVE9SSU5HIERFU0lHTlxuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjXG4iCi0gICAgICB9Ci0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAjIExvYWQgInByZSBmbGV4aWxtIiBwbHVnLWluIHNjcmlwdAotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6c291cmNlX3BsdWcgcHJlX2ZsZXhpbG1fdGNsXQotCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAjIFJlc3RvcmUgdGhlIGRlc2lnbgotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgc2V0IHZhcnMoaWxtKSBmYWxzZQotICAgICAgc2V0IGlsbV9saXN0IFtsaXN0XQotICAgICAgc2V0IHBhY19saXN0IFtsaXN0XQotICAgICAgaWYgeyR2YXJzKGVuYWJsZV9wYWMpfSB7Ci0gICAgICAgICBmb3JlYWNoIHBhcnQgJHZhcnMocGFydGl0aW9uX2xpc3QpIHsKLSAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkcGFydCxwYWNfbW9kZSldfSAgewotICAgICAgICAgICAgICAgaWYgeyR2YXJzKCRwYXJ0LHBhY19tb2RlKSA9PSAiaWxtIn0gewotICAgICAgICAgICAgICAgICAgbGFwcGVuZCBpbG1fbGlzdCAkcGFydAotICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgIGxhcHBlbmQgcGFjX2xpc3QgJHBhcnQKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0KLSAgICAgIH0KLSAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhpbG1fbGlzdCldICYmICgkdmFycyhpbG1fbGlzdCkgIT0gIiIpfSB7Ci0gICAgICAgICBmb3JlYWNoIGlsbSAkdmFycyhpbG1fbGlzdCkgewotICAgICAgICAgICAgaWYgeyhbbHNlYXJjaCAkaWxtX2xpc3QgJGlsbV0gPT0gLTEpICYmIChbbHNlYXJjaCAkcGFjX2xpc3QgJGlsbV0gPT0gLTEpfSB7Ci0gICAgICAgICAgICAgICBsYXBwZW5kIGlsbV9saXN0ICRpbG0KLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0KLSAgICAgIH0KLSAgICAgIGlmIHskaWxtX2xpc3QgIT0gIiJ9IHsKLSAgICAgICAgIHNldCB2YXJzKGlsbSkgdHJ1ZSAKLSAgICAgIH0KLQotICAgICAgIyBCQ0w6IEFkZGVkIHRhaWwgb2Ygc3Vic3Qgb2YgdmFycyhkYnNfZGlyKQotICAgICAgIyBOb3RlIC0gRURJRkYgSGllcmFyY2hpY2FsIGZsb3cgaXMgY3VycmVudGx5IElOQ09NUEFUSUJMRSB3aXRoIEZGIGRpciBzdHJ1Y3R1cmUKLSAgICAgICMgVGhlIGZvbGxvd2luZyBjb2RlIGFwcGVhcnMgdG8gcmVseSBvbiB2YXJzKGRic19kaXIpIGFsd2F5cyBiZWluZyB1bmRlciAkdmFycyhwYXJ0aXRpb25fZGlyKS8kdmFycyhkZXNpZ24pCi0gICAgICAjIFRoaXMgbmVlZHMgdG8gYmUgcmVjb25jaWxlZAotICAgICAgc2V0IGRpciBbZmlsZSB0YWlsIFtzdWJzdCAkdmFycyhkYnNfZGlyKV1dCi0KLSAgICAgIGlmIHtbbGluZGV4IFtzcGxpdCAkdmFycyh2ZXJzaW9uKSAiLiJdICAwXSA+IDEwfSB7Ci0gICAgICAgICBzZXQgY29tbWFuZCBbRkZfRURJOjppbml0aWFsaXplX3RpbWluZyBtbW1jXQotICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGNwZl9maWxlKV0gJiYgJHZhcnMoY3BmX3RpbWluZyl9IHsKLSAgICAgICAgICAgIHNldCBtbW1jX2ZpbGUgJHZhcnMoc2NyaXB0X2RpcikvaW5jcl92aWV3X2RlZmluaXRpb24udGNsCi0gICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKHZpZXdfZGVmaW5pdGlvbl90Y2wpXX0gewotICAgICAgICAgICAgICAgc2V0IG1tbWNfZmlsZSAkdmFycyh2aWV3X2RlZmluaXRpb25fdGNsKQotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIHNldCBtbW1jX2ZpbGUgJHZhcnMoc2NyaXB0X2Rpcikvdmlld19kZWZpbml0aW9uLnRjbAotICAgICAgICAgICAgfQotICAgICAgICAgfQotICAgICAgfQotCi0jICAgICAgYXBwZW5kIGNvbW1hbmRzICJzZXRMaW1pdGVkQWNjZXNzRmVhdHVyZSBlbmNGbGV4SUxNIDFcbiIKLQotICAgICAgYXBwZW5kIGNvbW1hbmRzICJmaWxlIGNvcHkgLWZvcmNlICR2YXJzKHNjcmlwdF9kaXIpL3ZpZXdfZGVmaW5pdGlvbi50Y2wgJHZhcnMocGFydGl0aW9uX2RpcikvJHZhcnMoZGVzaWduKS8kdmFycyhkYnNfZGlyKS9wcmVjdHMuZW5jLmRhdC92aWV3RGVmaW5pdGlvbi50Y2xcbiIKLQotICAgICAgc2V0IGN3ZCBbZXhlYyBwd2RdCi0gICAgICBhcHBlbmQgY29tbWFuZHMgImNkICR2YXJzKHBhcnRpdGlvbl9kaXIpLyR2YXJzKGRlc2lnbilcbiIKLQotIyAgICAgIHNldCBjb21tYW5kICJyZXN0b3JlRGVzaWduIC4gJHZhcnMoZGVzaWduKVxuIgotICAgICAgc2V0IGNvbW1hbmQgInJlc3RvcmVEZXNpZ24gJHZhcnMoZGJzX2RpcikvcHJlY3RzLmVuYy5kYXQgJHZhcnMoZGVzaWduKVxuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kIGZsZXhpbG0scmVzdG9yZV9kZXNpZ24gJGNvbW1hbmRdCi0KLSMgICAgICBpZiB7KFtsaW5kZXggW3NwbGl0ICR2YXJzKHZlcnNpb24pICIuIl0gIDBdID4gMTApICYmICR2YXJzKGNwZl90aW1pbmcpfSB7Ci0jICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJzb3VyY2UgJG1tbWNfZmlsZVxuIgotIyAgICAgIH0KLSAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OnNvdXJjZV9wbHVnIGFsd2F5c19zb3VyY2VfdGNsXQotCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAjIExvYWQgInBvc3QgZmxleGlsbSIgcGx1Zy1pbiBzY3JpcHQKLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OnNvdXJjZV9wbHVnIHBvc3RfZmxleGlsbSAwXQotCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAjIFNwZWNpZnkgSUxNcyBpZiBkZWZpbmVkCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICBpZiB7JHZhcnMoaWxtKX0gewotICAgICAgICAgaWYgeyR2YXJzKHZlcmJvc2UpfSB7Ci0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiNcbiIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyBTUEVDSUZZSU5HIElMTXNcbiIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiI1xuIgotICAgICAgICAgfQotICAgICAgICAgc2V0IGNvbW1hbmQgIiIgCi0gICAgICAgICBmb3JlYWNoIGNlbGwgJGlsbV9saXN0IHsKLSAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkY2VsbCxpbG1fZGlyKV0gJiYgW2ZpbGUgaXNkaXJlY3RvcnkgJHZhcnMoJGNlbGwsaWxtX2RpcildfSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAic3BlY2lmeUlsbSAtY2VsbCAkY2VsbCAtZGlyICR2YXJzKCRjZWxsLGlsbV9kaXIpXG4iCi0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgcHV0cyAiPEZGPiBXQVJOSU5HOiBJTE0gRElSRUNUT1JZIE1JU1NJTkcgRk9SICRjZWxsIC4uLiBTS0lQUElORyIKLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0gCi0gIAotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHNwZWNpZnlfaWxtICRjb21tYW5kXQotICAKLSAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhpbG1fbm9uX3NkY19maWxlKV19IHsKLSAgICAgICAgICAgIGlmIHtbbGluZGV4IFtzcGxpdCAkdmFycyh2ZXJzaW9uKSAiLiJdICAwXSA8PSAxMH0gewotICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgImxvYWRUaW1pbmdDb24gLWlsbU5vblNkY0ZpbGUgJHZhcnMoaWxtX25vbl9zZGNfZmlsZSlcbiIKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBzZXQgY29tbWFuZCAic2V0SWxtTm9uU2RjQ29uc3RyYWludEZpbGUgJHZhcnMoaWxtX25vbl9zZGNfZmlsZSlcbiIKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxsb2FkX2lsbV9ub25fc2RjX2ZpbGUgJGNvbW1hbmRdCi0gICAgICAgICB9Ci0gICAgICB9Ci0KLSAgICAgIGlmIHtbbGluZGV4IFtzcGxpdCAkdmFycyh2ZXJzaW9uKSAiLiJdICAwXSA8IDE0fSB7Ci0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGX0VESTo6bG9hZF9wb3dlcl9pbnRlbnRdCi0gICAgICB9IGVsc2UgewotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRl9OT1ZVUzo6bG9hZF9wb3dlcl9pbnRlbnRdCi0gICAgICB9Ci0KLSMgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoY3BmX2ZpbGUpXSAmJiAkdmFycyhjcGZfdGltaW5nKX0gewotICAgICAgICAgc2V0IGNvbW1hbmQgW0ZGX0VESTo6aW5pdGlhbGl6ZV90aW1pbmcgbW1tY10KLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxpbml0aWFsaXplX3RpbWluZyAkY29tbWFuZF0KLSMgICAgICB9Ci0KLSMgICAgICBzZXQgY29tbWFuZCBbRkZfRURJOjp1cGRhdGVfdGltaW5nIG1tbWMgXQotIyAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSx1cGRhdGVfdGltaW5nICRjb21tYW5kXQotCi0gICAgICBmb3JlYWNoIG1vZGUgW2NvbmNhdCAkdmFycyhhY3RpdmVfc2V0dXBfdmlld3MpICR2YXJzKGFjdGl2ZV9ob2xkX3ZpZXdzKV0gewotIyAgICAgICAgIGV4ZWMgL2Jpbi90b3VjaCBlbXB0eS5zZGMKLSMgICAgICAgICBzZXQgY29tbWFuZCAidXBkYXRlX2NvbnN0cmFpbnRfbW9kZSAtbmFtZSAkbW9kZSAtc2RjX2ZpbGVzIGVtcHR5LnNkYyAtaWxtX3NkY19maWxlcyBcW2dldF9jb25zdHJhaW50X21vZGUgJG1vZGUgLXNkY19maWxlc1xdXG4iCi0gICAgICAgICBzZXQgY29tbWFuZCAidXBkYXRlX2NvbnN0cmFpbnRfbW9kZSAtbmFtZSAkbW9kZSAtaWxtX3NkY19maWxlcyBcW2dldF9jb25zdHJhaW50X21vZGUgJG1vZGUgLXNkY19maWxlc1xdXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksdXBkYXRlX2NvbnN0cmFpbnRfbW9kZSAkY29tbWFuZF0KLSAgICAgIH0KLQotICAgICAgYXBwZW5kIGNvbW1hbmRzICJjZCAkY3dkXG4iCi0KLSAgICAgIHNldCBjb21tYW5kICIiCi0gICAgICBmb3JlYWNoIHBhcnQgJHZhcnMocGFydGl0aW9uX2xpc3QpIHsKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kICJzZXRfbW9kdWxlX21vZGVsIC1jZWxsICRwYXJ0IFxcXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZCAiLXR5cGUgZmxleElsbSBcXFxuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIi1kaXIgJHZhcnMocGFydGl0aW9uX2RpcikvJHBhcnQvJHBhcnQuZmxleGlsbVxuIgotICAgICAgfQotCi0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksc2V0X21vZHVsZV9tb2RlbCAkY29tbWFuZF0KLQotICAgICAgc2V0IGNvbW1hbmQgImNvbW1pdF9tb2R1bGVfbW9kZWxcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxjb21taXRfbW9kdWxlX21vZGVsICRjb21tYW5kXQotCi0gICAgICBzZXQgY29tbWFuZCAiIiAKLSAgICAgIGZvcmVhY2ggcGFydCAkdmFycyhwYXJ0aXRpb25fbGlzdCkgewotICAgICAgICAgYXBwZW5kIGNvbW1hbmQgInNldE1vZHVsZVZpZXcgLXBhcnRpdGlvbiAkcGFydCAtdHlwZSBpbnRlcmZhY2VcbiIKLSAgICAgIH0KLSAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxzZXRfbW9kdWxlX3ZpZXcgJGNvbW1hbmRdCi0KLSAgICAgIHNldCBjb21tYW5kICJnZXRNb2R1bGVWaWV3XG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksZ2V0X21vZHVsZV92aWV3ICRjb21tYW5kXQotCi0gICAgICBpZiB7JHZhcnMoZmxvdykgPT0gIm1tbWMifSB7Ci0gICAgICAgICBzZXQgY29tbWFuZCBbRkZfRURJOjpkZXJhdGVfdGltaW5nIG1tbWNdCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksZGVyYXRlX3RpbWluZyAkY29tbWFuZF0KLSAgICAgICAgIHNldCBjb21tYW5kICIiCi0jICAgICAgICAgZm9yZWFjaCBtb2RlICR2YXJzKGNvbnN0cmFpbnRfbW9kZXMpIHsKLSMgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAidXBkYXRlX2NvbnN0cmFpbnRfbW9kZSAtbmFtZSAkbW9kZSAtc2RjX2ZpbGVzIFwiJHZhcnMoJG1vZGUscHJlX2N0c19zZGMpXCJcbiIgICAKLSMgICAgICAgICB9Ci0jICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHVwZGF0ZV9jb25zdHJhaW50X21vZGUgJGNvbW1hbmRdCi0gICAgICB9Ci0KLSAgICAgICNzZXRfYW5hbHlzaXNfdmlldyAtc2V0dXAgW2FsbF9zZXR1cF9hbmFseXNpc192aWV3c10gLWhvbGQgW2FsbF9ob2xkX2FuYWx5c2lzX3ZpZXdzXQotICAgICAgI1B1dHMgIjxGRj4gU0VUVVAgLT4gW2FsbF9zZXR1cF9hbmFseXNpc192aWV3c10iIAotICAgICAgI1B1dHMgIjxGRj4gSE9MRCAtPiBbYWxsX2hvbGRfYW5hbHlzaXNfdmlld3NdIiAKLQotICAgICAgc2V0IGNvbW1hbmQgImNyZWF0ZUFjdGl2ZUxvZ2ljVmlldyAtdHlwZSB0b3BDcml0aWNhbCAtcHJlQ1RTXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksY3JlYXRlX2FjdGl2ZV9sb2dpY192aWV3ICRjb21tYW5kXQotICAgICAgc2V0IGNvbW1hbmQgInNldEhpZXJNb2RlIC1vcHRTdGFnZSBwcmVDVFNcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxzZXRfaGllcl9tb2RlICRjb21tYW5kXQotICAgICAgc2V0IGNvbW1hbmQgInNldE9wdE1vZGUgLWFkZEluc3RhbmNlUHJlRml4IEZsZXhJTE1JXyAtYWRkTmV0UHJlRml4IEZsZXhJTE1OX1xuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHNldF9vcHRfbW9kZSAkY29tbWFuZF0KLQotICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6c291cmNlX3BsdWcgcHJlX2ZsZXhpbG1fdGNsIDBdCi0gICAgICBzZXQgY29tbWFuZCAiIgotICAgICAgZm9yZWFjaCBwYXJ0ICRwYWNfbGlzdCB7Ci0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAic2V0IGhpbnN0IFxbZGJISW5zdE5hbWUgXFtkYkNlbGxISW5zdCBcW2RiR2V0Q2VsbEJ5TmFtZSAkcGFydFxdXF1cXVxuIgotICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCRwYXJ0LHBhY19tb2RlKV19IHsKLSAgICAgICAgICAgIGlmIHskdmFycygkcGFydCxwYWNfbW9kZSkgPT0gInJlYWRfb25seSJ9IHsgc2V0IHZhcnMoJHBhcnQscGFjX21vZGUpICJyZWFkT25seSIgfQotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgInNldE1vZHVsZVZpZXcgLWhpbnN0IFwkaGluc3QgLXR5cGUgJHZhcnMoJHBhcnQscGFjX21vZGUpXG4iCi0gICAgICAgICB9IAotICAgICAgfQotCi0gICAgICBhcHBlbmQgY29tbWFuZCAiZ2V0TW9kdWxlVmlld1xuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHNldF9tb2R1bGVfdmlldyAkY29tbWFuZF0KLQotICAgICAgaWYgeyR2YXJzKHZlcmJvc2UpfSB7Ci0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiNcbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyBSVU5OSU5HIEZMRVhJTE0gT1BUSU1JWkFUSU9OXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiNcbiIKLSAgICAgIH0KLSAgICAgIHNldCBjb21tYW5kICJvcHREZXNpZ24gLXByZUNUUyAtb3V0RGlyICR2YXJzKHJwdF9kaXIpIC1wcmVmaXggZmxleGlsbVxuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLG9wdF9kZXNpZ24gJGNvbW1hbmRdCi0KLSAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OnNvdXJjZV9wbHVnIHBvc3RfZmxleGlsbV90Y2wgMF0KLQotIyAgICAgIHNldCBjb21tYW5kICJzZXRUcmlhbFJvdXRlTW9kZSAtaGFuZGxlUGFydGl0aW9uQ29tcGxleCB0cnVlIC1ob25vclBpbiB0cnVlXG4iCi0jICAgICAgYXBwZW5kIGNvbW1hbmQgInRyaWFsUm91dGVcbiIKLSMgICAgICBhcHBlbmQgY29tbWFuZCAiZGVyaXZlVGltaW5nQnVkZ2V0IC1ub0NvbnN0YW50TW9kZWxcbiIKLSMgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksZGVyaXZlX3RpbWluZ19idWRnZXQgJGNvbW1hbmRdCi0KLSAgICAgIGlmIHtbc3RyaW5nIGNvbXBhcmUgLW5vY2FzZSAkdmFycyhkYnNfZm9ybWF0KSAib2EiXT09MH0gewotICAgICAgICAgaWYge1tsaW5kZXggW3NwbGl0ICR2YXJzKHZlcnNpb24pICIuIl0gIDBdID4gMTB9IHsKLSAgICAgICAgICAgIHNldCBjb21tYW5kICJzYXZlRGVzaWduIC1jZWxsdmlldyB7JHZhcnMob2FfZGVzaWduX2xpYikgJHZhcnMoZGVzaWduKSBmbGV4aWxtfVxuIgotICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHNldCBjb21tYW5kICJzYXZlT2FEZXNpZ24gJHZhcnMob2FfZGVzaWduX2xpYikgJHZhcnMoZGVzaWduKSBmbGV4aWxtXG4iCi0gICAgICAgICB9Ci0gICAgICB9IGVsc2UgewotICAgICAgICAgc2V0IGNvbW1hbmQgInNhdmVEZXNpZ24gJHZhcnMoZGJzX2RpcikvZmxleGlsbS5lbmMgLWNvbXByZXNzXG4iCi0gICAgICB9Ci0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksc2F2ZV9kZXNpZ24gJGNvbW1hbmRdCi0KLSAgICAgIHNldCBjb21tYW5kICJjbGVhckFjdGl2ZUxvZ2ljVmlld1xuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLGNsZWFyX2FjdGl2ZV9sb2dpY192aWV3ICRjb21tYW5kXQotCi0jIyMgc2F2ZSBwb3N0T3B0IGRhdGEgYW5kIGNvbW1pdCBFQ08gIyMjCi0KLSMgICAgICBzZXQgY29tbWFuZCAidXBkYXRlX3BhcnRpdGlvbiAtZmxleElsbUVDTyBcXFxuIgotIyAgICAgIGFwcGVuZCBjb21tYW5kICIgICAgLWdvbGRlbkRpciAkdmFycyhwYXJ0aXRpb25fZGlyKSBcXFxuIgotIyAgICAgIGFwcGVuZCBjb21tYW5kICIgICAgLWZsZXhJbG1EaXIgJHZhcnMocGFydGl0aW9uX2RpcilfRkxFWElMTVxuIgotIyAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSx1cGRhdGVfcGFydGl0aW9uICRjb21tYW5kXQotCi0gICAgICBzZXQgY29tbWFuZCAidXBkYXRlX3BhcnRpdGlvbiAtZmxleElsbUVDTyBcXFxuIgotICAgICAgZm9yZWFjaCBwYXJ0ICR2YXJzKHBhcnRpdGlvbl9saXN0KSB7IAotICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAgICAtZ29sZGVuQmxvY2tEaXIgJHZhcnMocGFydGl0aW9uX2RpcikvJHBhcnQvJHZhcnMoZGJzX2RpcikvcHJlY3RzLmVuYy5kYXQgXFxcbiIKLSAgICAgIH0gCi0gICAgICBhcHBlbmQgY29tbWFuZCAiICAgIC1mbGV4SWxtRGlyICR2YXJzKHBhcnRpdGlvbl9kaXIpX0ZMRVhJTE1cbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSx1cGRhdGVfcGFydGl0aW9uICRjb21tYW5kXQotCi0gICAgICBzZXQgY29tbWFuZCAicmVwb3J0X3Jlc291cmNlIC1lbmQgb3B0X2ZsZXhJbG1cbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxyZXBvcnRfcmVzb3VyY2UgJGNvbW1hbmRdCi0KLSAgICAgIGFwcGVuZCBjb21tYW5kcyAiIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzICIjIDxGRj4gR0VORVJBVElORyBSRVBPUlRTXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgIiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiIKLQotICAgICAgaWYgeyR2YXJzKHJlcG9ydF9wb3dlcil9IHsKLSAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhwb3dlcl9hbmFseXNpc192aWV3KV0gJiYgKCR2YXJzKHBvd2VyX2FuYWx5c2lzX3ZpZXcpICE9ICIiKX0gewotICAgICAgICAgICAgc2V0IGNvbW1hbmQgInJlcG9ydF9wb3dlciAtdmlldyAkdmFycyhwb3dlcl9hbmFseXNpc192aWV3KSAtb3V0ZmlsZSAkdmFycyhycHRfZGlyKS8kdmFycyhzdGVwKS5wb3dlci5ycHRcbiIKLSAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBzZXQgY29tbWFuZCAicmVwb3J0X3Bvd2VyIC1vdXRmaWxlICR2YXJzKHJwdF9kaXIpLyR2YXJzKHN0ZXApLnBvd2VyLnJwdFxuIgotICAgICAgICAgfQotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHJlcG9ydF9wb3dlciAkY29tbWFuZF0KLSAgICAgIH0KLQotICAgICAgaWYge1tGRjo6aXNfbHBfZmxvd10gJiYgW2luZm8gZXhpc3RzIHZhcnMocG93ZXJfZG9tYWlucyldICYmIFtsbGVuZ3RoICR2YXJzKHBvd2VyX2RvbWFpbnMpXSA+IDF9IHsKLQotICAgICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgICAgIyBWZXJpZnkgcG93ZXIgZG9tYWluCi0gICAgICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0KLSAgICAgICAgIHNldCBjb21tYW5kICJ2ZXJpZnlQb3dlckRvbWFpbiAtYmluZCAtZ2Nvbm4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZCAiIC1pc29OZXRQRCAkdmFycyhycHRfZGlyKS8kdmFycyhzdGVwKS5pc29uZXRzLnJwdCIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgLXhOZXRQRCAkdmFycyhycHRfZGlyKS8kdmFycyhzdGVwKS54bmV0cy5ycHRcbiIKLQotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHZlcmlmeV9wb3dlcl9kb21haW4gJGNvbW1hbmRdCi0KLSAgICAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICAgICMgUnVuIENMUAotICAgICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCi0gICAgICAgICBpZiB7JHZhcnMocnVuX2NscCkgJiYgKFthdXRvX2V4ZWNvayBsZWNdICE9ICIiKX0gewotICAgICAgICAgICAgc2V0IGNvbW1hbmQgInJ1bkNMUCAiCi0gICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoY2xwX29wdGlvbnMpXX0gewotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgJHZhcnMoY2xwX29wdGlvbnMpCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiXG4iCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCkscnVuX2NscCAkY29tbWFuZF0KLSAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBpZiB7IVtpbmZvIGV4aXN0cyB2YXJzKGNscF93YXJuaW5nKV19IHsKLSAgICAgICAgICAgICAgIHB1dHMgIjxGRj4gV0FSTklORzogVU5BQkxFIFRPIFJVTiBDTFAgLi4uIFBMRUFTRSBNQUtFIFNVUkUgSVQgSVMgSU4gWU9VUiBQQVRIIgotICAgICAgICAgICAgICAgc2V0IHZhcnMoY2xwX3dhcm5pbmcpIHRydWUKLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0KLSAgICAgIH0KLSAgICAgIGlmIHshJHZhcnMoY29kZWdlbil9IHsKLSAgICAgICAgIHVwbGV2ZWwgIzAgZXZhbCAkY29tbWFuZHMKLSAgICAgICAgIHNldCBjb21tYW5kcyAiIiAKLSAgICAgIH0KLQotIyAgICAgIGlmIHskdmFycyhtYWtlZmlsZSl9IHsgCi0gICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJpZiB7XFtpbmZvIGV4aXN0cyBlbnYoVlBBVEgpXF19IHtcbiIKLSAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgInNldCBvcCBcW29wZW4gJGVudihWUEFUSCkvZmxleGlsbSB3XF1cbiIKLSAgICAgICAgICBmb3JlYWNoIHBhcnQgJHZhcnMocGFydGl0aW9uX2xpc3QpIHsKLSAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgInB1dHMgXCRvcCBcInNldCB2YXJzKCRwYXJ0LGNkdHYpIFwkOjpSZGFfQ0RUVjo6aWxtRGF0YUluZm8oJHBhcnQsYmxvY2tEaXIpXCJcbiIKLSAgICAgICAgICB9Ci0gICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJjbG9zZSBcJG9wXG4iCi0jICAgICAgICAgIGZvcmVhY2ggcGFydCAkdmFycyhwYXJ0aXRpb25fbGlzdCkgewotIyAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgImZpbGUgY29weSAtZm9yY2UgJHZhcnMocGFydGl0aW9uX2Rpcl9wYXNzMikvJHBhcnQvTWFrZWZpbGUgJHZhcnMocGFydGl0aW9uX2Rpcl9wYXNzMikvJHBhcnQuTWFrZWZpbGVcbiIKLSMgICAgICAgICAgfQotCi0gICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJleGVjIC9iaW4vdG91Y2ggXCRlbnYoVlBBVEgpLyR2YXJzKHN0ZXApXG4iCi0gICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJ9XG4iCi0jICAgICAgIH0KLQotCi0gICAgICBpZiB7JHZhcnMoY29kZWdlbil9IHsKLSAgICAgICAgIHJldHVybiAkY29tbWFuZHMKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgICB1cGxldmVsICMwIGV2YWwgJGNvbW1hbmRzCi0gICAgICB9Ci0gICB9Ci0KLSAgIHByb2MgcnVuX3BhcnRpdGlvbl9wbGFjZSB7e2Zvcm1hdCAxfX0gewotCi0gICAgICBnbG9iYWwgdmFycwotICAgICAgZ2xvYmFsIGVycm9ycwotICAgICAgZ2xvYmFsIGVudgotCi0KLSAgICAgIHNldCB2YXJzKHN0ZXApIHBhcnRpdGlvbl9wbGFjZQotICAgICAgc2V0IHZhcnMoaGllcikgdHJ1ZQotICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKHRpbWVfZGVzaWduX29wdGlvbnMsc2V0dXApXX0gewotICAgICAgICAgc2V0IHRtcF90aW1lX2Rlc2lnbl9vcHRpb25zX3NldHVwICR2YXJzKHRpbWVfZGVzaWduX29wdGlvbnMsc2V0dXApCi0gICAgICB9IGVsc2UgewotICAgICAgICAgc2V0IHZhcnModGltZV9kZXNpZ25fb3B0aW9ucyxzZXR1cCkgIiIKLSAgICAgIH0KLQotICAgICAgc2V0IGNvbW1hbmRzICIiCi0KLSAgICAgIGlmIHshJHZhcnModXNlX2ZsZXhtb2RlbHMpfSB7Ci0gICAgICAgICMgSW5pdGlhbGlzZSB0aGUgZGVzaWduIGlmIG5vdCB1c2luZyBmbGV4bW9kZWxzIAotICAgICAgICBpZiB7JHZhcnMoY29kZWdlbil9IHsgCi0gICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkZfRURJOjpydW5faW5pdCAkZm9ybWF0XQotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICBGRl9FREk6OnJ1bl9pbml0ICRmb3JtYXQKLSAgICAgICAgfQotICAgICAgfQotCi0gICAgICBpZiB7JHZhcnModXNlX3Byb3RvX25ldF9kZWxheV9tb2RlbCl9IHsKLSAgICAgICAgIGlmIHshJHZhcnModXNlX2ZsZXhtb2RlbHMpfSB7Ci0gICAgICAgICAgICBzZXQgY29tbWFuZCAiY2F0Y2gge2V4ZWMgcm0gLXJmIHByb3RvX21vZGVsX0JBQ0tVUH1cbmNhdGNoIHtleGVjIG12IC1mIHByb3RvX21vZGVsIHByb3RvX21vZGVsX0JBQ0tVUH1cbiIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxwcm90b19tb2RlbF9CQUNLVVAgJGNvbW1hbmRdCi0gICAgICAgICAgICBzZXQgY29tbWFuZCAiY3JlYXRlX3BzX3Blcl9taWNyb25fbW9kZWxcbiIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxjcmVhdGVfcHNfcGVyX21pY3Jvbl9tb2RlbCAkY29tbWFuZF0KLSAgICAgICAgIH0KLSAgICAgICAgIHNldCBjb21tYW5kICJ0aW1lRGVzaWduIC1wcm90byAtcHJlUGxhY2UgLXByZWZpeCBwcmVwbGFjZSAtb3V0RGlyICR2YXJzKHJwdF9kaXIpXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksdGltZV9kZXNpZ24gJGNvbW1hbmRdCi0gICAgICB9IGVsc2UgewotICAgICAgICAgc2V0IGNvbW1hbmQgInRpbWVEZXNpZ24gLXByZVBsYWNlIC1wcmVmaXggcHJlcGxhY2UgLW91dERpciAkdmFycyhycHRfZGlyKVxuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHRpbWVfZGVzaWduICRjb21tYW5kXQotICAgICAgfQotICAgICAKLSAgICAgIGlmIHskdmFycyh1c2VfZmxleG1vZGVscyl9IHsKLSAgICAgICAgIHNldCBjb21tYW5kICJyZXBvcnRfcHJvdG9fbW9kZWwgLWNyZWF0ZWRcbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxyZXBvcnRfcHJvdG9fbW9kZWwgJGNvbW1hbmRdCi0gICAgICB9Ci0gICAgICAKLSAgICAgIGlmIHtbc3RyaW5nIGNvbXBhcmUgLW5vY2FzZSAkdmFycyhkYnNfZm9ybWF0KSAib2EiXT09MH0gewotICAgICAgICAgaWYge1tsaW5kZXggW3NwbGl0ICR2YXJzKHZlcnNpb24pICIuIl0gIDBdID4gMTB9IHsKLSAgICAgICAgICAgIHNldCBjb21tYW5kICJzYXZlRGVzaWduIC1jZWxsdmlldyB7JHZhcnMob2FfZGVzaWduX2xpYikgJHZhcnMoZGVzaWduKSBpbml0fVxuIgotICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHNldCBjb21tYW5kICJzYXZlT2FEZXNpZ24gJHZhcnMob2FfZGVzaWduX2xpYikgJHZhcnMoZGVzaWduKSBpbml0XG4iCi0gICAgICAgICB9Ci0gICAgICB9IGVsc2UgewotICAgICAgICAgaWYgeygkdmFycyhzdGVwKSAhPSAicGFydGl0aW9uX3BsYWNlIil9IHsKLSAgICAgICAgICAgIHNldCBjb21tYW5kICJzYXZlRGVzaWduICR2YXJzKGRic19kaXIpL2luaXQuZW5jIC1jb21wcmVzc1xuIgotICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHNldCBjb21tYW5kICIiCi0gICAgICAgICB9Ci0gICAgICB9Ci0KLSAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxzYXZlX2Rlc2lnbixpbml0ICRjb21tYW5kXQotCi0gICAgICBzZXQgY29tbWFuZCAiIgotICAgICAgIyBBZGRpdGlvbmFsIHRpbWluZyBzZXR1cAotICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCR2YXJzKGRlc2lnbiksbGF0ZW5jeV9zZGMpXX0gewotICAgICAgICAgYXBwZW5kIGNvbW1hbmQgImZvcmVhY2ggbW9kZSBcW2FsbF9jb25zdHJhaW50X21vZGVzIC1hY3RpdmVcXSB7XG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZCAiICAgc2V0IHNkY19maWxlcyBcW2dldF9jb25zdHJhaW50X21vZGUgXCRtb2RlIC1zZGNfZmlsZXNcXVxuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAgIHNldCBzZGNfbGlzdCBcW2NvbmNhdCBcJHNkY19maWxlcyAkdmFycygkdmFycyhkZXNpZ24pLGxhdGVuY3lfc2RjKVxdXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZCAiICAgdXBkYXRlX2NvbnN0cmFpbnRfbW9kZSAtbmFtZSBcJG1vZGUgLXNkY19maWxlcyBcJHNkY19saXN0XG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZCAifVxuIgotCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksdXBkYXRlX2NvbnN0cmFpbnRfbW9kZSAkY29tbWFuZF0KLSAgICAgIH0KLQotICAgICAgZm9yZWFjaCB2aWV3IFtjb25jYXQgJHZhcnMoc2V0dXBfYW5hbHlzaXNfdmlld3MpICR2YXJzKGhvbGRfYW5hbHlzaXNfdmlld3MpXSB7Ci0gICAgICAgICBmb3JlYWNoIHB0biAkdmFycyhwYXJ0aXRpb25fbGlzdCkgewotICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCRwdG4sJHZpZXcsbGF0ZW5jeV9zZGMpXX0gewotICAgICAgICAgICAgICAgc2V0IGxhdGVuY3koJHZpZXcsJHB0bikgJHZhcnMoJHB0biwkdmlldyxsYXRlbmN5X3NkYykKLSAgICAgICAgICAgIH0gZWxzZWlmIHtbaW5mbyBleGlzdHMgdmFycygkcHRuLGxhdGVuY3lfc2RjKV19IHsKLSAgICAgICAgICAgICAgIHNldCBsYXRlbmN5KCR2aWV3LCRwdG4pICR2YXJzKCRwdG4sbGF0ZW5jeV9zZGMpCi0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgc2V0IGxhdGVuY3koJHZpZXcsJHB0bikgIm5vbmUiCi0gICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0gICAgICB9Ci0gICAgICAKLSAgICAgIHNldCBjb21tYW5kICIiCi0gICAgICBmb3JlYWNoIHZpZXcgW2NvbmNhdCAkdmFycyhzZXR1cF9hbmFseXNpc192aWV3cykgJHZhcnMoaG9sZF9hbmFseXNpc192aWV3cyldIHsKLSAgICAgICAgIGZvcmVhY2ggcHRuICR2YXJzKHBhcnRpdGlvbl9saXN0KSB7Ci0gICAgICAgICAgICBpZiB7JGxhdGVuY3koJHZpZXcsJHB0bikgIT0gIm5vbmUifSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiICAgc2V0UHRuVXNlckNuc0ZpbGUgLXZpZXcgJHZpZXcgLWZpbGVOYW1lICRsYXRlbmN5KCR2aWV3LCRwdG4pIC1wdG5OYW1lICRwdG5cbiIKLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0KLSAgICAgIH0KLQotICAgICAgaWYgeyRjb21tYW5kICE9ICIifSB7ICAgICAgCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksc2V0X3B0bl91c2VyX2Nuc19maWxlICRjb21tYW5kXQotICAgICAgfQotCi0gICAgICAjIEluc2VydCBmZWVkdGhyb3VnaCBhbmQgdHJpYWwgcm91dGUsIGFzIGFwcHJvcHJpYXRlCi0gICAgICBzZXQgZG9fdHJpYWxfcm91dGVfdGltZV9kZXNpZ24gMQotCi0gICAgICAjIFByZS1wbGFjZW1lbnQKLSAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhwbGFjZSxzZXRfcGxhY2VfbW9kZSxza2lwKV19IHsKLSAgICAgICAgIHNldCBjYWNoZV9za2lwX3BsYWNlX21vZGUgJHZhcnMocGxhY2Usc2V0X3BsYWNlX21vZGUsc2tpcCkKLSAgICAgIH0KLSAgICAgIHNldCB2YXJzKHBsYWNlLHNldF9wbGFjZV9tb2RlLHNraXApIDEKLSAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhwbGFjZSxwbGFjZV9kZXNpZ24sc2tpcCldfSB7Ci0gICAgICAgICBzZXQgY2FjaGVfc2tpcF9wbGFjZV9kZXNpZ24gJHZhcnMocGxhY2UscGxhY2VfZGVzaWduLHNraXApCi0gICAgICB9Ci0gICAgICBzZXQgdmFycyhwbGFjZSxwbGFjZV9kZXNpZ24sc2tpcCkgMQotCi0gICAgICBhcHBlbmQgY29tbWFuZCAiaWYge1xbZGJHZXQgLWUgdG9wLnB0bnMuY2xvbmVzXF0gIT0gXCJcIn0ge1xuIgotICAgICAgYXBwZW5kIGNvbW1hbmQgIiAgIGFsaWduUHRuQ2xvbmVcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kICJ9XG4iIAotICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLGFsaWduX3BhcnRpdGlvbl9jbG9uZSAkY29tbWFuZF0KLQotICAgICAgc2V0IHZhcnMoaGllcl9jYXNlKSAiJHZhcnModXNlX2ZsZXhtb2RlbHMpJHZhcnMocGxhY2VtZW50X2Jhc2VkX3B0bikkdmFycyhhYnV0dGVkX2Rlc2lnbikkdmFycyhpbnNlcnRfZmVlZHRocm91Z2gpIgotCi0gICAgICAjIERpc2FibGUgc2NhbiByZW9yZGVyIGZvciBwYXJ0aXRpb25pbmcgZmxvdwotICAgICAgIyBzZXQgY29tbWFuZCAic2V0UGxhY2VNb2RlIC1yZW9yZGVyU2NhbiBmYWxzZVxuIgotICAgICAgIyBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksc2V0X3BsYWNlX21vZGUgJGNvbW1hbmRdCi0KLSAgICAgIHN3aXRjaCAkdmFycyhoaWVyX2Nhc2UpIHsKLSAgICAgICAgICIwMDAwIiB7Ci0gICAgICAgICAgICBpZiB7JHZhcnMoZW5hYmxlX25yZ3IpfSB7Ci0gICAgICAgICAgICAgICBzZXQgY29tbWFuZCAic2V0RGVzaWduTW9kZSAtdXNlVHVyYm9OUkdSRmxvdyB0cnVlXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksc2V0X2Rlc2lnbl9tb2RlICRjb21tYW5kXQotICAgICAgICAgICAgfQotICAgICAgICAgfQotICAgICAgICAgIjAwMDEiIHsKLSAgICAgICAgICAgIGlmIHskdmFycyhlbmFibGVfbnJncil9IHsKLSAgICAgICAgICAgICAgIHNldCBjb21tYW5kICJzZXREZXNpZ25Nb2RlIC11c2VUdXJib05SR1JGbG93IHRydWVcbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxzZXRfZGVzaWduX21vZGUgJGNvbW1hbmRdCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBzZXQgY29tbWFuZCAic2V0UGxhY2VNb2RlIC1wbGFjZV9nbG9iYWxfY29uZ19lZmZvcnQgYXV0byAtcGxhY2VfZ2xvYmFsX2Nsb2NrX2dhdGVfYXdhcmUgdHJ1ZSAtcGxhY2VfZ2xvYmFsX3BsYWNlX2lvX3BpbnMgdHJ1ZVxuIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHNldF9wbGFjZV9tb2RlICRjb21tYW5kXQotICAgICAgICAgfQotICAgICAgICAgIjAwMTAiIHsKLSAgICAgICAgICAgIGlmIHskdmFycyhlbmFibGVfbnJncil9IHsKLSAgICAgICAgICAgICAgIHNldCBjb21tYW5kICJzZXREZXNpZ25Nb2RlIC11c2VUdXJib05SR1JGbG93IHRydWVcbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxzZXRfZGVzaWduX21vZGUgJGNvbW1hbmRdCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBzZXQgY29tbWFuZCAic2V0UGxhY2VNb2RlIC1wbGFjZV9nbG9iYWxfY29uZ19lZmZvcnQgYXV0byAtcGxhY2VfZ2xvYmFsX2Nsb2NrX2dhdGVfYXdhcmUgdHJ1ZSAtcGxhY2VfZ2xvYmFsX3BsYWNlX2lvX3BpbnMgdHJ1ZVxuIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHNldF9wbGFjZV9tb2RlICRjb21tYW5kXQotICAgICAgICAgfQotICAgICAgICAgIjAwMTEiIHsKLSAgICAgICAgICAgIGlmIHskdmFycyhlbmFibGVfbnJncil9IHsKLSAgICAgICAgICAgICAgIHNldCBjb21tYW5kICJzZXREZXNpZ25Nb2RlIC11c2VUdXJib05SR1JGbG93IHRydWVcbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxzZXRfZGVzaWduX21vZGUgJGNvbW1hbmRdCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBzZXQgY29tbWFuZCAic2V0UGxhY2VNb2RlIC1wbGFjZV9nbG9iYWxfY29uZ19lZmZvcnQgYXV0byAtcGxhY2VfZ2xvYmFsX2Nsb2NrX2dhdGVfYXdhcmUgdHJ1ZSAtcGxhY2VfZ2xvYmFsX3BsYWNlX2lvX3BpbnMgdHJ1ZVxuIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHNldF9wbGFjZV9tb2RlICRjb21tYW5kXQotICAgICAgICAgfQotICAgICAgICAgIjAxMDAiIHsKLSAgICAgICAgICAgIGlmIHskdmFycyhlbmFibGVfbnJncil9IHsKLSAgICAgICAgICAgICAgIHNldCBjb21tYW5kICJzZXREZXNpZ25Nb2RlIC11c2VUdXJib05SR1JGbG93IHRydWVcbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxzZXRfZGVzaWduX21vZGUgJGNvbW1hbmRdCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBzZXQgY29tbWFuZCAic2V0UGxhY2VNb2RlIC1wbGFjZV9nbG9iYWxfY29uZ19lZmZvcnQgYXV0byAtcGxhY2VfZ2xvYmFsX2Nsb2NrX2dhdGVfYXdhcmUgdHJ1ZSAtcGxhY2VfZ2xvYmFsX3BsYWNlX2lvX3BpbnMgdHJ1ZSAtZnAgdHJ1ZVxuIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHNldF9wbGFjZV9tb2RlICRjb21tYW5kXQotICAgICAgICAgfQotICAgICAgICAgIjAxMDEiIHsKLSAgICAgICAgICAgIGlmIHskdmFycyhlbmFibGVfbnJncil9IHsKLSAgICAgICAgICAgICAgIHNldCBjb21tYW5kICJzZXREZXNpZ25Nb2RlIC11c2VUdXJib05SR1JGbG93IHRydWVcbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxzZXRfZGVzaWduX21vZGUgJGNvbW1hbmRdCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBzZXQgY29tbWFuZCAic2V0UGxhY2VNb2RlIC1wbGFjZV9nbG9iYWxfY29uZ19lZmZvcnQgYXV0byAtcGxhY2VfZ2xvYmFsX2Nsb2NrX2dhdGVfYXdhcmUgdHJ1ZSAtcGxhY2VfZ2xvYmFsX3BsYWNlX2lvX3BpbnMgdHJ1ZSAtZnAgdHJ1ZVxuIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHNldF9wbGFjZV9tb2RlICRjb21tYW5kXQotICAgICAgICAgfQotICAgICAgICAgIjAxMTAiIHsKLSAgICAgICAgICAgIGlmIHskdmFycyhlbmFibGVfbnJncil9IHsKLSAgICAgICAgICAgICAgIHNldCBjb21tYW5kICJzZXREZXNpZ25Nb2RlIC11c2VUdXJib05SR1JGbG93IHRydWVcbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxzZXRfZGVzaWduX21vZGUgJGNvbW1hbmRdCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBzZXQgY29tbWFuZCAic2V0UGxhY2VNb2RlIC1wbGFjZV9nbG9iYWxfY29uZ19lZmZvcnQgYXV0byAtcGxhY2VfZ2xvYmFsX2Nsb2NrX2dhdGVfYXdhcmUgdHJ1ZSAtcGxhY2VfZ2xvYmFsX3BsYWNlX2lvX3BpbnMgdHJ1ZSAtZnAgdHJ1ZVxuIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHNldF9wbGFjZV9tb2RlICRjb21tYW5kXQotICAgICAgICAgfQotICAgICAgICAgIjAxMTEiIHsKLSAgICAgICAgICAgIGlmIHskdmFycyhlbmFibGVfbnJncil9IHsKLSAgICAgICAgICAgICAgIHNldCBjb21tYW5kICJzZXREZXNpZ25Nb2RlIC11c2VUdXJib05SR1JGbG93IHRydWVcbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxzZXRfZGVzaWduX21vZGUgJGNvbW1hbmRdCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBzZXQgY29tbWFuZCAic2V0UGxhY2VNb2RlIC1wbGFjZV9nbG9iYWxfY29uZ19lZmZvcnQgYXV0byAtcGxhY2VfZ2xvYmFsX2Nsb2NrX2dhdGVfYXdhcmUgdHJ1ZSAtcGxhY2VfZ2xvYmFsX3BsYWNlX2lvX3BpbnMgdHJ1ZSAtZnAgdHJ1ZVxuIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHNldF9wbGFjZV9tb2RlICRjb21tYW5kXQotICAgICAgICAgfQotICAgCi0gICAgICAgICAiMTAwMCIgewotICAgICAgICAgICAgc2V0IGNvbW1hbmQgInNldFBsYWNlTW9kZSAtcGxhY2VfZ2xvYmFsX2NvbmdfZWZmb3J0IGF1dG8gLXBsYWNlX2dsb2JhbF9jbG9ja19nYXRlX2F3YXJlIHRydWUgLXBsYWNlX2dsb2JhbF9wbGFjZV9pb19waW5zIHRydWUgXG4iCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksc2V0X3BsYWNlX21vZGUgJGNvbW1hbmRdCi0gICAgICAgICAgICBpZiB7ISR2YXJzKGZsZXhtb2RlbF9hc19wdG4pfSB7Ci0gICAgICAgICAgICAgIHNldCBjb21tYW5kICJzZXRfcHJvdG9fbW9kZWxfcGh5c2ljYWxfY29uc3RyYWludCAtdHlwZSBzb2Z0X2d1aWRlXG4iCi0gICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxzZXRfcHJvdG9fbW9kZWxfcGh5c2ljYWxfY29uc3RyYWludCAkY29tbWFuZF0KLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHNldCBjb21tYW5kICJzZXRfcHJvdG9fbW9kZSAtcGxhY2VfZWZmb3J0IGRlZmF1bHRcbiIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxzZXRfcHJvdG9fbW9kZSAkY29tbWFuZF0KLSAgICAgICAgICAgIHNldCBjb21tYW5kICJzZXRUcmlhbFJvdXRlTW9kZSAtZmxvb3JwbGFuTW9kZSB0cnVlXG4iCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksc2V0X3RyaWFsX3JvdXRlX21vZGUgJGNvbW1hbmRdCi0gICAgICAgICB9Ci0gICAgICAgICAiMTAwMSIgewotICAgICAgICAgICAgc2V0IGNvbW1hbmQgInNldFBsYWNlTW9kZSAtcGxhY2VfZ2xvYmFsX2NvbmdfZWZmb3J0IGF1dG8gLXBsYWNlX2dsb2JhbF9jbG9ja19nYXRlX2F3YXJlIHRydWUgLXBsYWNlX2dsb2JhbF9wbGFjZV9pb19waW5zIHRydWUgXG4iCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksc2V0X3BsYWNlX21vZGUgJGNvbW1hbmRdCi0gICAgICAgICAgICBpZiB7ISR2YXJzKGZsZXhtb2RlbF9hc19wdG4pfSB7Ci0gICAgICAgICAgICAgIHNldCBjb21tYW5kICJzZXRfcHJvdG9fbW9kZWxfcGh5c2ljYWxfY29uc3RyYWludCAtdHlwZSBzb2Z0X2d1aWRlXG4iCi0gICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxzZXRfcHJvdG9fbW9kZWxfcGh5c2ljYWxfY29uc3RyYWludCAkY29tbWFuZF0KLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHNldCBjb21tYW5kICJzZXRfcHJvdG9fbW9kZSAtcGxhY2VfZWZmb3J0IGRlZmF1bHRcbiIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxzZXRfcHJvdG9fbW9kZSAkY29tbWFuZF0KLSAgICAgICAgICAgIHNldCBjb21tYW5kICJzZXRUcmlhbFJvdXRlTW9kZSAtZmxvb3JwbGFuTW9kZSB0cnVlXG4iCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksc2V0X3RyaWFsX3JvdXRlX21vZGUgJGNvbW1hbmRdCi0gICAgICAgICB9Ci0gICAgICAgICAiMTAxMCIgewotICAgICAgICAgICAgc2V0IGNvbW1hbmQgInNldFBsYWNlTW9kZSAtcGxhY2VfZ2xvYmFsX2NvbmdfZWZmb3J0IGF1dG8gLXBsYWNlX2dsb2JhbF9jbG9ja19nYXRlX2F3YXJlIHRydWUgLXBsYWNlX2dsb2JhbF9wbGFjZV9pb19waW5zIHRydWUgXG4iCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksc2V0X3BsYWNlX21vZGUgJGNvbW1hbmRdCi0gICAgICAgICAgICBpZiB7ISR2YXJzKGZsZXhtb2RlbF9hc19wdG4pfSB7Ci0gICAgICAgICAgICAgIHNldCBjb21tYW5kICJzZXRfcHJvdG9fbW9kZWxfcGh5c2ljYWxfY29uc3RyYWludCAtdHlwZSBzb2Z0X2d1aWRlXG4iCi0gICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxzZXRfcHJvdG9fbW9kZWxfcGh5c2ljYWxfY29uc3RyYWludCAkY29tbWFuZF0KLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHNldCBjb21tYW5kICJzZXRfcHJvdG9fbW9kZSAtcGxhY2VfZWZmb3J0IGRlZmF1bHRcbiIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxzZXRfcHJvdG9fbW9kZSAkY29tbWFuZF0KLSAgICAgICAgICAgIHNldCBjb21tYW5kICJzZXRUcmlhbFJvdXRlTW9kZSAtZmxvb3JwbGFuTW9kZSB0cnVlXG4iCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksc2V0X3RyaWFsX3JvdXRlX21vZGUgJGNvbW1hbmRdCi0gICAgICAgICB9Ci0gICAgICAgICAiMTAxMSIgewotICAgICAgICAgICAgc2V0IGNvbW1hbmQgInNldFBsYWNlTW9kZSAtcGxhY2VfZ2xvYmFsX2NvbmdfZWZmb3J0IGF1dG8gLXBsYWNlX2dsb2JhbF9jbG9ja19nYXRlX2F3YXJlIHRydWUgLXBsYWNlX2dsb2JhbF9wbGFjZV9pb19waW5zIHRydWUgXG4iCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksc2V0X3BsYWNlX21vZGUgJGNvbW1hbmRdCi0gICAgICAgICAgICBpZiB7ISR2YXJzKGZsZXhtb2RlbF9hc19wdG4pfSB7Ci0gICAgICAgICAgICAgIHNldCBjb21tYW5kICJzZXRfcHJvdG9fbW9kZWxfcGh5c2ljYWxfY29uc3RyYWludCAtdHlwZSBzb2Z0X2d1aWRlXG4iCi0gICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxzZXRfcHJvdG9fbW9kZWxfcGh5c2ljYWxfY29uc3RyYWludCAkY29tbWFuZF0KLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHNldCBjb21tYW5kICJzZXRfcHJvdG9fbW9kZSAtcGxhY2VfZWZmb3J0IGRlZmF1bHRcbiIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxzZXRfcHJvdG9fbW9kZSAkY29tbWFuZF0KLSAgICAgICAgICAgIHNldCBjb21tYW5kICJzZXRUcmlhbFJvdXRlTW9kZSAtZmxvb3JwbGFuTW9kZSB0cnVlXG4iCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksc2V0X3RyaWFsX3JvdXRlX21vZGUgJGNvbW1hbmRdCi0gICAgICAgICB9Ci0gICAgICAgICAiMTEwMCIgewotICAgICAgICAgICAgc2V0IGNvbW1hbmQgInNldFBsYWNlTW9kZSAtcGxhY2VfZ2xvYmFsX2NvbmdfZWZmb3J0IGF1dG8gLXBsYWNlX2dsb2JhbF9jbG9ja19nYXRlX2F3YXJlIHRydWUgLXBsYWNlX2dsb2JhbF9wbGFjZV9pb19waW5zIHRydWUgLWZwIHRydWVcbiIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxzZXRfcGxhY2VfbW9kZSAkY29tbWFuZF0KLSAgICAgICAgICAgIGlmIHshJHZhcnMoZmxleG1vZGVsX2FzX3B0bil9IHsKLSAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgInNldF9wcm90b19tb2RlbF9waHlzaWNhbF9jb25zdHJhaW50IC10eXBlIHNvZnRfZ3VpZGVcbiIKLSAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHNldF9wcm90b19tb2RlbF9waHlzaWNhbF9jb25zdHJhaW50ICRjb21tYW5kXQotICAgICAgICAgICAgfQotICAgICAgICAgfQotICAgICAgICAgIjExMDEiIHsKLSAgICAgICAgICAgIHNldCBjb21tYW5kICJzZXRQbGFjZU1vZGUgLXBsYWNlX2dsb2JhbF9jb25nX2VmZm9ydCBhdXRvIC1wbGFjZV9nbG9iYWxfY2xvY2tfZ2F0ZV9hd2FyZSB0cnVlIC1wbGFjZV9nbG9iYWxfcGxhY2VfaW9fcGlucyB0cnVlIC1mcCB0cnVlXG4iCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksc2V0X3BsYWNlX21vZGUgJGNvbW1hbmRdCi0gICAgICAgICAgICBpZiB7ISR2YXJzKGZsZXhtb2RlbF9hc19wdG4pfSB7Ci0gICAgICAgICAgICAgIHNldCBjb21tYW5kICJzZXRfcHJvdG9fbW9kZWxfcGh5c2ljYWxfY29uc3RyYWludCAtdHlwZSBzb2Z0X2d1aWRlXG4iCi0gICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxzZXRfcHJvdG9fbW9kZWxfcGh5c2ljYWxfY29uc3RyYWludCAkY29tbWFuZF0KLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0KLSAgICAgICAgICIxMTEwIiB7Ci0gICAgICAgICAgICBzZXQgY29tbWFuZCAic2V0UGxhY2VNb2RlIC1wbGFjZV9nbG9iYWxfY29uZ19lZmZvcnQgYXV0byAtcGxhY2VfZ2xvYmFsX2Nsb2NrX2dhdGVfYXdhcmUgdHJ1ZSAtcGxhY2VfZ2xvYmFsX3BsYWNlX2lvX3BpbnMgdHJ1ZSAtZnAgdHJ1ZVxuIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHNldF9wbGFjZV9tb2RlICRjb21tYW5kXQotICAgICAgICAgICAgaWYgeyEkdmFycyhmbGV4bW9kZWxfYXNfcHRuKX0gewotICAgICAgICAgICAgICBzZXQgY29tbWFuZCAic2V0X3Byb3RvX21vZGVsX3BoeXNpY2FsX2NvbnN0cmFpbnQgLXR5cGUgc29mdF9ndWlkZVxuIgotICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksc2V0X3RyaWFsX3JvdXRlX21vZGUgJGNvbW1hbmRdCi0gICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0gICAgICAgICAiMTExMSIgewotICAgICAgICAgICAgc2V0IGNvbW1hbmQgInNldFBsYWNlTW9kZSAtcGxhY2VfZ2xvYmFsX2NvbmdfZWZmb3J0IGF1dG8gLXBsYWNlX2dsb2JhbF9jbG9ja19nYXRlX2F3YXJlIHRydWUgLXBsYWNlX2dsb2JhbF9wbGFjZV9pb19waW5zIHRydWUgLWZwIHRydWVcbiIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxzZXRfcGxhY2VfbW9kZSAkY29tbWFuZF0KLSAgICAgICAgICAgIGlmIHshJHZhcnMoZmxleG1vZGVsX2FzX3B0bil9IHsKLSAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgInNldF9wcm90b19tb2RlbF9waHlzaWNhbF9jb25zdHJhaW50IC10eXBlIHNvZnRfZ3VpZGVcbiIKLSAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHNldF9wcm90b19tb2RlbF9waHlzaWNhbF9jb25zdHJhaW50ICRjb21tYW5kXQotICAgICAgICAgICAgfQotICAgICAgICAgfQotICAgICAgfQotCi0gICAgICBpZiB7JHZhcnModXNlX3Byb3RvX25ldF9kZWxheV9tb2RlbCl9IHsgIAotICAgICAgICAgc2V0IGNvbW1hbmQgInNldF9wcm90b19tb2RlIC10aW1pbmdfbmV0X2RlbGF5X21vZGVsIHVzZV9hY3R1YWxfd2lyZVxuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHNldF9wcm90b19tb2RlbCAkY29tbWFuZF0gCi0gICAgICB9Ci0KLSAgICAgICMgUGxhY2UgZGVzaWduIAotICAKLSAgICAgIHNldCBzYXZlICR2YXJzKHBsYWNlX29wdF9kZXNpZ24pCi0gICAgICBpZiB7JHZhcnMoY29kZWdlbil9IHsgCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGX0VESTo6cnVuX3BsYWNlICRmb3JtYXRdCi0gICAgICB9IGVsc2UgewotICAgICAgICAgdXBsZXZlbCAjMCBldmFsICRjb21tYW5kcyAKLSAgICAgICAgIEZGX0VESTo6cnVuX3BsYWNlICRmb3JtYXQKLSAgICAgICAgIHNldCBjb21tYW5kcyAiIgotICAgICAgfQotICAgICAgc2V0IHZhcnMocGxhY2Vfb3B0X2Rlc2lnbikgJHNhdmUKLQotICAgICAgaWYge1tpbmZvIGV4aXN0cyBjYWNoZV9za2lwX3BsYWNlX21vZGVdfSB7IAotICAgICAgICAgc2V0IHZhcnMocGxhY2Usc2V0X3BsYWNlX21vZGUsc2tpcCkgJGNhY2hlX3NraXBfcGxhY2VfbW9kZQotICAgICAgfSBlbHNlIHsKLSAgICAgICAgIHNldCB2YXJzKHBsYWNlLHNldF9wbGFjZV9tb2RlLHNraXApIGZhbHNlCi0gICAgICB9Ci0gICAgICBpZiB7W2luZm8gZXhpc3RzIGNhY2hlX3NraXBfcGxhY2VfbW9kZV19IHsgCi0gICAgICAgICBzZXQgdmFycyhwbGFjZSxwbGFjZV9kZXNpZ24sc2tpcCkgJGNhY2hlX3NraXBfcGxhY2VfZGVzaWduCi0gICAgICB9IGVsc2UgewotICAgICAgICAgc2V0IHZhcnMocGxhY2UscGxhY2VfZGVzaWduLHNraXApIGZhbHNlCi0gICAgICB9Ci0gICAKLSAgICAgIGlmIHtbc3RyaW5nIGNvbXBhcmUgLW5vY2FzZSAkdmFycyhkYnNfZm9ybWF0KSAib2EiXT09MH0gewotICAgICAgICAgaWYge1tsaW5kZXggW3NwbGl0ICR2YXJzKHZlcnNpb24pICIuIl0gIDBdID4gMTB9IHsKLSAgICAgICAgICAgIHNldCBjb21tYW5kICJzYXZlRGVzaWduIC1jZWxsdmlldyB7JHZhcnMob2FfZGVzaWduX2xpYikgJHZhcnMoZGVzaWduKSBwbGFjZX1cbiIKLSAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBzZXQgY29tbWFuZCAic2F2ZU9hRGVzaWduICR2YXJzKG9hX2Rlc2lnbl9saWIpICR2YXJzKGRlc2lnbikgcGxhY2VcbiIKLSAgICAgICAgIH0KLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgICBzZXQgY29tbWFuZCAic2F2ZURlc2lnbiAkdmFycyhkYnNfZGlyKS9wbGFjZS5lbmMgLWNvbXByZXNzXG4iCi0gICAgICB9Ci0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksc2F2ZV9kZXNpZ24gJGNvbW1hbmRdCi0gICAKLSAgICAgICMgUG9zdC1wbGFjZW1lbnQKLSAgICAgIHN3aXRjaCAkdmFycyhoaWVyX2Nhc2UpIHsKLSAgICAgICAgIjAwMDAiIHsKLSAgICAgICAgICBpZiB7W2xpbmRleCBbc3BsaXQgJHZhcnModmVyc2lvbikgIi4iXSAgMF0gPCAxNn0gewotICAgICAgICAgICAgc2V0IGNvbW1hbmQgInNldFRyaWFsUm91dGVNb2RlIC1oYW5kbGVQYXJ0aXRpb25Db21wbGV4IHRydWVcbiIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxzZXRfdHJpYWxfcm91dGVfbW9kZSAkY29tbWFuZF0KLSAgICAgICAgICAgIHNldCBjb21tYW5kICJ0cmlhbFJvdXRlXG4iCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksdHJpYWxfcm91dGUgJGNvbW1hbmRdCi0gICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHNldCBjb21tYW5kICJzZXRSb3V0ZU1vZGUgLWVhcmx5R2xvYmFsUm91dGVQYXJ0aXRpb25Ib25vckZlbmNlIC5cbiIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxzZXRfcm91dGVfbW9kZSAkY29tbWFuZF0KLSAgICAgICAgICAgIHNldCBjb21tYW5kICJlYXJseUdsb2JhbFJvdXRlXG4iCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksZWFybHlfZ2xvYmFsX3JvdXRlICRjb21tYW5kXQotICAgICAgICAgIH0KLSAgICAgICAgfQotICAgICAgICAiMDAwMSIgewotICAgICAgICAgIGlmIHtbbGluZGV4IFtzcGxpdCAkdmFycyh2ZXJzaW9uKSAiLiJdICAwXSA8IDE2fSB7Ci0gICAgICAgICAgICBzZXQgY29tbWFuZCAidHJpYWxSb3V0ZVxuIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHRyaWFsX3JvdXRlXzEgJGNvbW1hbmRdCi0gICAgICAgICAgICBzZXQgY29tbWFuZCAiaW5zZXJ0UHRuRmVlZHRocm91Z2ggLXJvdXRlQmFzZWQgLXNhdmVUb3BvRmlsZSB0b3BvLnR4dCAtbmV0TWFwcGluZyBuZXRtYXBwaW5nLnR4dCAtZG91YmxlQnVmZmVyXG4iCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksaW5zZXJ0X3B0bl9mZWVkdGhyb3VnaCAkY29tbWFuZF0KLSAgICAgICAgICAgIHNldCBjb21tYW5kICJzZXRUcmlhbFJvdXRlTW9kZSAtaGFuZGxlUGFydGl0aW9uQ29tcGxleCB0cnVlXG4iCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksc2V0X3RyaWFsX3JvdXRlX21vZGUgJGNvbW1hbmRdCi0gICAgICAgICAgICBzZXQgY29tbWFuZCAidHJpYWxSb3V0ZVxuIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHRyaWFsX3JvdXRlXzIgJGNvbW1hbmRdCi0gICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHNldCBjb21tYW5kICJlYXJseUdsb2JhbFJvdXRlXG4iCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksZWFybHlfZ2xvYmFsX3JvdXRlXzEgJGNvbW1hbmRdCi0gICAgICAgICAgICBzZXQgY29tbWFuZCAiaW5zZXJ0UHRuRmVlZHRocm91Z2ggLXJvdXRlQmFzZWQgLXNhdmVUb3BvRmlsZSB0b3BvLnR4dCAtbmV0TWFwcGluZyBuZXRtYXBwaW5nLnR4dCAtZG91YmxlQnVmZmVyXG4iCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksaW5zZXJ0X3B0bl9mZWVkdGhyb3VnaCAkY29tbWFuZF0KLSAgICAgICAgICAgIHNldCBjb21tYW5kICJzZXRSb3V0ZU1vZGUgLWVhcmx5R2xvYmFsUm91dGVQYXJ0aXRpb25Ib25vckZlbmNlIC5cbiIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxzZXRfcm91dGVfbW9kZSAkY29tbWFuZF0KLSAgICAgICAgICAgIHNldCBjb21tYW5kICJlYXJseUdsb2JhbFJvdXRlXG4iCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksZWFybHlfZ2xvYmFsX3JvdXRlXzIgJGNvbW1hbmRdCi0gICAgICAgICAgfQotCi0gICAgICAgIH0KLSAgICAgICAgIjAwMTAiIHsKLSMgICAgICAgICAgICBzZXQgY29tbWFuZCAic2V0VHJpYWxSb3V0ZU1vZGUgLWhhbmRsZVBhcnRpdGlvbkNvbXBsZXggdHJ1ZVxuIgotIyAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxzZXRfdHJpYWxfcm91dGVfbW9kZSAkY29tbWFuZF0KLSMgICAgICAgICAgICBzZXQgY29tbWFuZCAidHJpYWxSb3V0ZVxuIgotIyAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSx0cmlhbF9yb3V0ZSAkY29tbWFuZF0KLSAgICAgICAgfQotICAgICAgICAiMDAxMSIgewotICAgICAgICAgIGlmIHtbbGluZGV4IFtzcGxpdCAkdmFycyh2ZXJzaW9uKSAiLiJdICAwXSA8IDE2fSB7Ci0gICAgICAgICAgICBzZXQgY29tbWFuZCAidHJpYWxSb3V0ZVxuIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHRyaWFsX3JvdXRlXzEgJGNvbW1hbmRdCi0gICAgICAgICAgICBzZXQgY29tbWFuZCAiaW5zZXJ0UHRuRmVlZHRocm91Z2ggLXJvdXRlQmFzZWQgLXNhdmVUb3BvRmlsZSB0b3BvLnR4dCAtbmV0TWFwcGluZyBuZXRtYXBwaW5nLnR4dCAtZG91YmxlQnVmZmVyXG4iCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksaW5zZXJ0X3B0bl9mZWVkdGhyb3VnaCAkY29tbWFuZF0KLSAgICAgICAgICAgIHNldCBjb21tYW5kICJzZXRUcmlhbFJvdXRlTW9kZSAtaGFuZGxlUGFydGl0aW9uQ29tcGxleCB0cnVlXG4iCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksc2V0X3RyaWFsX3JvdXRlX21vZGUgJGNvbW1hbmRdCi0gICAgICAgICAgICBzZXQgY29tbWFuZCAidHJpYWxSb3V0ZVxuIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHRyaWFsX3JvdXRlXzIgJGNvbW1hbmRdCi0gICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHNldCBjb21tYW5kICJlYXJseUdsb2JhbFJvdXRlXG4iCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksZWFybHlfZ2xvYmFsX3JvdXRlXzEgJGNvbW1hbmRdCi0gICAgICAgICAgICBzZXQgY29tbWFuZCAiaW5zZXJ0UHRuRmVlZHRocm91Z2ggLXJvdXRlQmFzZWQgLXNhdmVUb3BvRmlsZSB0b3BvLnR4dCAtbmV0TWFwcGluZyBuZXRtYXBwaW5nLnR4dCAtZG91YmxlQnVmZmVyXG4iCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksaW5zZXJ0X3B0bl9mZWVkdGhyb3VnaCAkY29tbWFuZF0KLSAgICAgICAgICAgIHNldCBjb21tYW5kICJzZXRSb3V0ZU1vZGUgLWVhcmx5R2xvYmFsUm91dGVQYXJ0aXRpb25Ib25vckZlbmNlIC5cbiIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxzZXRfcm91dGVfbW9kZSAkY29tbWFuZF0KLSAgICAgICAgICAgIHNldCBjb21tYW5kICJlYXJseUdsb2JhbFJvdXRlXG4iCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksZWFybHlfZ2xvYmFsX3JvdXRlXzIgJGNvbW1hbmRdCi0gICAgICAgICAgfQotICAgICAgICB9Ci0gICAgICAgICIwMTAwIiB7Ci0jICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgInRpbWVEZXNpZ24gLXByZWN0cyAtcHJlZml4IHBsYWNlIC1vdXREaXIgJHZhcnMocnB0X2RpcilcbiIKLSMgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksdGltZV9kZXNpZ24gJGNvbW1hbmRdCi0gICAgICAgIH0KLSAgICAgICAgIjAxMDEiIHsKLSAgICAgICAgICAgIHNldCBjb21tYW5kICJpbnNlcnRQdG5GZWVkdGhyb3VnaCAtc2F2ZVRvcG9GaWxlIHRvcG8udHh0IC1uZXRNYXBwaW5nIG5ldG1hcHBpbmcudHh0IC1kb3VibGVCdWZmZXJcbiIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxpbnNlcnRfcHRuX2ZlZWR0aHJvdWdoICRjb21tYW5kXQotICAgICAgICB9Ci0gICAgICAgICIwMTEwIiB7Ci0jICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgInRpbWVEZXNpZ24gLXByZWN0cyAtcHJlZml4IHBsYWNlIC1vdXREaXIgJHZhcnMocnB0X2RpcilcbiIKLSMgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksdGltZV9kZXNpZ24gJGNvbW1hbmRdCi0gICAgICAgIH0KLSAgICAgICAgIjAxMTEiIHsKLSAgICAgICAgICAgIHNldCBjb21tYW5kICJpbnNlcnRQdG5GZWVkdGhyb3VnaCAtc2F2ZVRvcG9GaWxlIHRvcG8udHh0IC1uZXRNYXBwaW5nIG5ldG1hcHBpbmcudHh0IC1kb3VibGVCdWZmZXJcbiIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxpbnNlcnRfcHRuX2ZlZWR0aHJvdWdoICRjb21tYW5kXQotICAgICAgICB9Ci0gICAgICAgICIxMDAwIiB7Ci0gICAgICAgICAgaWYge1tsaW5kZXggW3NwbGl0ICR2YXJzKHZlcnNpb24pICIuIl0gIDBdIDwgMTZ9IHsKLSAgICAgICAgICAgIHNldCBjb21tYW5kICJzZXRUcmlhbFJvdXRlTW9kZSAtaGFuZGxlUGFydGl0aW9uQ29tcGxleCB0cnVlXG4iCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksc2V0X3RyaWFsX3JvdXRlX21vZGUgJGNvbW1hbmRdCi0gICAgICAgICAgICBzZXQgY29tbWFuZCAidHJpYWxSb3V0ZVxuIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHRyaWFsX3JvdXRlICRjb21tYW5kXQotICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBzZXQgY29tbWFuZCAic2V0Um91dGVNb2RlIC1lYXJseUdsb2JhbFJvdXRlUGFydGl0aW9uSG9ub3JGZW5jZSAuXG4iCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksc2V0X3JvdXRlX21vZGUgJGNvbW1hbmRdCi0gICAgICAgICAgICBzZXQgY29tbWFuZCAiZWFybHlHbG9iYWxSb3V0ZVxuIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLGVhcmx5X2dsb2JhbF9yb3V0ZSAkY29tbWFuZF0KLSAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICAgICAgIjEwMDEiIHsKLSAgICAgICAgICBpZiB7W2xpbmRleCBbc3BsaXQgJHZhcnModmVyc2lvbikgIi4iXSAgMF0gPCAxNn0gewotICAgICAgICAgICAgc2V0IGNvbW1hbmQgInRyaWFsUm91dGVcbiIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSx0cmlhbF9yb3V0ZV8xICRjb21tYW5kXQotICAgICAgICAgICAgc2V0IGNvbW1hbmQgImluc2VydFB0bkZlZWR0aHJvdWdoIC1yb3V0ZUJhc2VkIC1zYXZlVG9wb0ZpbGUgdG9wby50eHQgLW5ldE1hcHBpbmcgbmV0bWFwcGluZy50eHQgLWRvdWJsZUJ1ZmZlclxuIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLGluc2VydF9wdG5fZmVlZHRocm91Z2ggJGNvbW1hbmRdCi0gICAgICAgICAgICBzZXQgY29tbWFuZCAic2V0VHJpYWxSb3V0ZU1vZGUgLWhhbmRsZVBhcnRpdGlvbkNvbXBsZXggdHJ1ZVxuIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHNldF90cmlhbF9yb3V0ZV9tb2RlICRjb21tYW5kXQotICAgICAgICAgICAgc2V0IGNvbW1hbmQgInRyaWFsUm91dGVcbiIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSx0cmlhbF9yb3V0ZV8yICRjb21tYW5kXQotICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBzZXQgY29tbWFuZCAiZWFybHlHbG9iYWxSb3V0ZVxuIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLGVhcmx5X2dsb2JhbF9yb3V0ZV8xICRjb21tYW5kXQotICAgICAgICAgICAgc2V0IGNvbW1hbmQgImluc2VydFB0bkZlZWR0aHJvdWdoIC1yb3V0ZUJhc2VkIC1zYXZlVG9wb0ZpbGUgdG9wby50eHQgLW5ldE1hcHBpbmcgbmV0bWFwcGluZy50eHQgLWRvdWJsZUJ1ZmZlclxuIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLGluc2VydF9wdG5fZmVlZHRocm91Z2ggJGNvbW1hbmRdCi0gICAgICAgICAgICBzZXQgY29tbWFuZCAic2V0Um91dGVNb2RlIC1lYXJseUdsb2JhbFJvdXRlUGFydGl0aW9uSG9ub3JGZW5jZSAuXG4iCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksc2V0X3JvdXRlX21vZGUgJGNvbW1hbmRdCi0gICAgICAgICAgICBzZXQgY29tbWFuZCAiZWFybHlHbG9iYWxSb3V0ZVxuIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLGVhcmx5X2dsb2JhbF9yb3V0ZV8yICRjb21tYW5kXQotICAgICAgICAgIH0KLSAgICAgICAgfQotICAgICAgICAiMTAxMCIgewotICAgICAgICAgIGlmIHtbbGluZGV4IFtzcGxpdCAkdmFycyh2ZXJzaW9uKSAiLiJdICAwXSA8IDE2fSB7Ci0gICAgICAgICAgICBzZXQgY29tbWFuZCAic2V0VHJpYWxSb3V0ZU1vZGUgLWhhbmRsZVBhcnRpdGlvbkNvbXBsZXggdHJ1ZVxuIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHNldF90cmlhbF9yb3V0ZV9tb2RlICRjb21tYW5kXQotICAgICAgICAgICAgc2V0IGNvbW1hbmQgInRyaWFsUm91dGVcbiIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSx0cmlhbF9yb3V0ZSAkY29tbWFuZF0KLSAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgc2V0IGNvbW1hbmQgInNldFJvdXRlTW9kZSAtZWFybHlHbG9iYWxSb3V0ZVBhcnRpdGlvbkhvbm9yRmVuY2UgLlxuIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHNldF9yb3V0ZV9tb2RlICRjb21tYW5kXQotICAgICAgICAgICAgc2V0IGNvbW1hbmQgImVhcmx5R2xvYmFsUm91dGVcbiIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxlYXJseV9nbG9iYWxfcm91dGUgJGNvbW1hbmRdCi0gICAgICAgICAgfQotICAgICAgICB9Ci0gICAgICAgICIxMDExIiB7Ci0gICAgICAgICAgaWYge1tsaW5kZXggW3NwbGl0ICR2YXJzKHZlcnNpb24pICIuIl0gIDBdIDwgMTZ9IHsKLSAgICAgICAgICAgIHNldCBjb21tYW5kICJ0cmlhbFJvdXRlXG4iCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksdHJpYWxfcm91dGVfMSAkY29tbWFuZF0KLSAgICAgICAgICAgIHNldCBjb21tYW5kICJpbnNlcnRQdG5GZWVkdGhyb3VnaCAtcm91dGVCYXNlZCAtc2F2ZVRvcG9GaWxlIHRvcG8udHh0IC1uZXRNYXBwaW5nIG5ldG1hcHBpbmcudHh0IC1kb3VibGVCdWZmZXJcbiIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxpbnNlcnRfcHRuX2ZlZWR0aHJvdWdoICRjb21tYW5kXQotICAgICAgICAgICAgc2V0IGNvbW1hbmQgInNldFRyaWFsUm91dGVNb2RlIC1oYW5kbGVQYXJ0aXRpb25Db21wbGV4IHRydWVcbiIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxzZXRfdHJpYWxfcm91dGVfbW9kZSAkY29tbWFuZF0KLSAgICAgICAgICAgIHNldCBjb21tYW5kICJ0cmlhbFJvdXRlXG4iCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksdHJpYWxfcm91dGVfMiAkY29tbWFuZF0KLSAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgc2V0IGNvbW1hbmQgImVhcmx5R2xvYmFsUm91dGVcbiIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxlYXJseV9nbG9iYWxfcm91dGVfMSAkY29tbWFuZF0KLSAgICAgICAgICAgIHNldCBjb21tYW5kICJpbnNlcnRQdG5GZWVkdGhyb3VnaCAtcm91dGVCYXNlZCAtc2F2ZVRvcG9GaWxlIHRvcG8udHh0IC1uZXRNYXBwaW5nIG5ldG1hcHBpbmcudHh0IC1kb3VibGVCdWZmZXJcbiIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxpbnNlcnRfcHRuX2ZlZWR0aHJvdWdoICRjb21tYW5kXQotICAgICAgICAgICAgc2V0IGNvbW1hbmQgInNldFJvdXRlTW9kZSAtZWFybHlHbG9iYWxSb3V0ZVBhcnRpdGlvbkhvbm9yRmVuY2UgLlxuIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHNldF9yb3V0ZV9tb2RlICRjb21tYW5kXQotICAgICAgICAgICAgc2V0IGNvbW1hbmQgImVhcmx5R2xvYmFsUm91dGVcbiIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxlYXJseV9nbG9iYWxfcm91dGVfMiAkY29tbWFuZF0KLSAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICAgICAgIjExMDAiIHsKLSAgICAgICAgfQotICAgICAgICAiMTEwMSIgewotICAgICAgICAgICAgc2V0IGNvbW1hbmQgImluc2VydFB0bkZlZWR0aHJvdWdoIC1zYXZlVG9wb0ZpbGUgdG9wby50eHQgLW5ldE1hcHBpbmcgbmV0bWFwcGluZy50eHQgLWRvdWJsZUJ1ZmZlclxuIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLGluc2VydF9wdG5fZmVlZHRocm91Z2ggJGNvbW1hbmRdCi0gICAgICAgIH0KLSAgICAgICAgIjExMTAiIHsKLSAgICAgICAgICAgIHNldCBkb190cmlhbF9yb3V0ZV90aW1lX2Rlc2lnbiAwICAgICAgICAgICAgCi0gICAgICAgIH0KLSAgICAgICAgIjExMTEiIHsKLSAgICAgICAgICAgIHNldCBjb21tYW5kICJpbnNlcnRQdG5GZWVkdGhyb3VnaCAtc2F2ZVRvcG9GaWxlIHRvcG8udHh0IC1uZXRNYXBwaW5nIG5ldG1hcHBpbmcudHh0IC1kb3VibGVCdWZmZXJcbiIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxpbnNlcnRfcHRuX2ZlZWR0aHJvdWdoICRjb21tYW5kXQotICAgICAgICB9Ci0gICAgICB9Ci0gICAgICBpZiB7JHZhcnModXNlX3Byb3RvX25ldF9kZWxheV9tb2RlbCl9IHsgCi0gICAgICAgIHNldCBjb21tYW5kICJ0aW1lRGVzaWduIC1wcm90byAtcHJlY3RzIC1wcmVmaXggcGxhY2UgLW91dERpciAkdmFycyhycHRfZGlyKVxuIgotICAgICAgfSBlbHNlIHsKLSAgICAgICAgc2V0IGNvbW1hbmQgInRpbWVEZXNpZ24gLXByZWN0cyAtcHJlZml4IHBsYWNlIC1vdXREaXIgJHZhcnMocnB0X2RpcilcbiIKLSAgICAgIH0KLSAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSx0aW1lX2Rlc2lnbiAkY29tbWFuZF0KLQotCSAgIyBPdXRwdXQgb3IgcnVuIHRoZSBnZW5lcmF0ZWQgY29tbWFuZHMKLQkgIGlmIHskdmFycyhjb2RlZ2VuKX0gewotCQkgcmV0dXJuICRjb21tYW5kcwotCSAgfSBlbHNlIHsKLQkJICB1cGxldmVsICMwIGV2YWwgJGNvbW1hbmRzCi0JICB9Ci0KLSAgIH0KLQotICAgcHJvYyBydW5fYXNzaWduX3BpbiB7e2Zvcm1hdCAxfX0gewotICAgICAgZ2xvYmFsIHZhcnMKLSAgICAgIGdsb2JhbCBlcnJvcnMKLSAgICAgIGdsb2JhbCBlbnYKLQotICAgICAgc2V0IHZhcnMoc3RlcCkgYXNzaWduX3BpbgotICAgICAgc2V0IHZhcnMoaGllcikgdHJ1ZQotICAgICAgc2V0IGNvbW1hbmRzICIiCi0KLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICMgQXNzaWduIHBhcnRpdGlvbiBwaW5zIHZpYSBwbHVnLWluIGFzIHRoaXMgdGhlCi0gICAgICAjIHBpdGNoLCBkZXB0aCwgYW5kIGxheWVyIHZhbHVlcyBhcmUgZGVzaWduIHNwZWNpZmljCi0gICAgICAjIEFsc28sIHZlcmlmeSB0aGUgcGluIGFzc2lnbm1lbnQgYW5kIGZpeCB0aGVtCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0KLSAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OnNvdXJjZV9wbHVnIHByZV9hc3NpZ25fcGluX3RjbF0KLQotICAgICAgc2V0IGNvbW1hbmQgImFzc2lnblB0blBpblxuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLGFzc2lnbl9wdG5fcGlucyAkY29tbWFuZF0KLQotICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6c291cmNlX3BsdWcgcG9zdF9hc3NpZ25fcGluX3RjbF0KLQotICAgICAgc2V0IGNvbW1hbmQgImNoZWNrUGluQXNzaWdubWVudCAtb3V0RmlsZSBwaW5jaGVjay5ycHRcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxjaGVja19waW5fYXNzaWdubWVudCAkY29tbWFuZF0KLQotICAgICAgc2V0IGNvbW1hbmQgInJlcG9ydFVuYWxpZ25lZE5ldHMgLXJwdEZpbGUgJHZhcnMocnB0X2RpcikvdW5hbGlnbmVkLnJwdFxuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHJlcG9ydF91bmFsaWduZWRfbmV0cyAkY29tbWFuZF0KLQotICAgICAgaWYgeyEoW2luZm8gZXhpc3RzIHZhcnMocGxhY2VtZW50X2Jhc2VkX3B0bildICYmICR2YXJzKHBsYWNlbWVudF9iYXNlZF9wdG4pKX0gewotICAgICAgICBpZiB7W2xpbmRleCBbc3BsaXQgJHZhcnModmVyc2lvbikgIi4iXSAgMF0gPCAxNn0gewotICAgICAgICAgIHNldCBjb21tYW5kICJzZXRUcmlhbFJvdXRlTW9kZSAtaG9ub3JQaW4gdHJ1ZSAtaGFuZGxlUGFydGl0aW9uQ29tcGxleCB0cnVlXG4iCi0gICAgICAgICAgYXBwZW5kIGNvbW1hbmQgInRyaWFsUm91dGVcbiIKLSAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksdHJpYWxfcm91dGUgJGNvbW1hbmRdCi0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgc2V0IGNvbW1hbmQgInNldFJvdXRlTW9kZSAtZWFybHlHbG9iYWxSb3V0ZVBhcnRpdGlvbkhvbm9yRmVuY2UgLiAtZWFybHlHbG9iYWxSb3V0ZVBhcnRpdGlvbkhvbm9yUGluIC5cbiIKLSAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksc2V0X3JvdXRlX21vZGUgJGNvbW1hbmRdCi0gICAgICAgICAgc2V0IGNvbW1hbmQgImVhcmx5R2xvYmFsUm91dGVcbiIKLSAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksZWFybHlfZ2xvYmFsX3JvdXRlICRjb21tYW5kXQotICAgICAgICB9Ci0gICAgICB9Ci0KLSAgICAgIGlmIHskdmFycyhjb2RlZ2VuKX0gewotICAgICAgICAgcmV0dXJuICRjb21tYW5kcwotICAgICAgfSBlbHNlIHsKLSAgICAgICAgICB1cGxldmVsICMwIGV2YWwgJGNvbW1hbmRzCi0gICAgICB9Ci0gICB9Ci0KLSAgIHByb2MgcnVuX21vZGVsX2dlbiB7e2Zvcm1hdCAxfX0gewotCi0gICAgICBnbG9iYWwgdmFycwotICAgICAgZ2xvYmFsIGVycm9ycwotICAgICAgZ2xvYmFsIGVudgotCi0gICAgICBzZXQgdmFycyhzdGVwKSBtb2RlbF9nZW4KLSAgICAgIHNldCB2YXJzKGhpZXIpIHRydWUKLSAgICAgIHNldCBjb21tYW5kcyAiIgotCi0gICAgICAjIEluaXRpYWxpc2UgdGhlIGRlc2lnbgotICAgICAgaWYgeyR2YXJzKHVzZV9mbGV4bW9kZWxzKX0gewotICAgICAgICAjIEluaXRpYWxpc2UgdGhlIGRlc2lnbiBpZiBub3QgdXNpbmcgZmxleG1vZGVsIHByb3RvdHlwZQotICAgICAgICBpZiB7JHZhcnMoY29kZWdlbil9IHsgCi0gICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkZfRURJOjpydW5faW5pdCAkZm9ybWF0XQotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICBGRl9FREk6OnJ1bl9pbml0ICRmb3JtYXQKLSAgICAgICAgfQotCi0gICAgICAgIGlmIHtbc3RyaW5nIGNvbXBhcmUgLW5vY2FzZSAkdmFycyhkYnNfZm9ybWF0KSAib2EiXT09MH0gewotICAgICAgICAgICBpZiB7W2xpbmRleCBbc3BsaXQgJHZhcnModmVyc2lvbikgIi4iXSAgMF0gPiAxMH0gewotICAgICAgICAgICAgICBzZXQgY29tbWFuZCAic2F2ZURlc2lnbiAtY2VsbHZpZXcgeyR2YXJzKG9hX2Rlc2lnbl9saWIpICR2YXJzKGRlc2lnbikgaW5pdH1cbiIKLSAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgInNhdmVPYURlc2lnbiAkdmFycyhvYV9kZXNpZ25fbGliKSAkdmFycyhkZXNpZ24pIGluaXRcbiIKLSAgICAgICAgICAgfQotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICBzZXQgY29tbWFuZCAic2F2ZURlc2lnbiAkdmFycyhkYnNfZGlyKS9pbml0LmVuYyAtY29tcHJlc3NcbiIKLSAgICAgICAgfQotICAgICAgCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksc2F2ZV9kZXNpZ24saW5pdCAkY29tbWFuZF0KLSAgICAgIH0KLQotICAgICAgaWYgeyR2YXJzKHVzZV9wcm90b19uZXRfZGVsYXlfbW9kZWwpICYmICR2YXJzKHVzZV9mbGV4bW9kZWxzKX0gewotICAgICAgICAgc2V0IGNvbW1hbmQgImNhdGNoIHtleGVjIHJtIC1yZiBwcm90b19tb2RlbF9CQUNLVVB9XG5jYXRjaCB7ZXhlYyBtdiAtZiBwcm90b19tb2RlbCBwcm90b19tb2RlbF9CQUNLVVB9XG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCkscHJvdG9fbW9kZWxfQkFDS1VQICRjb21tYW5kXQotICAgICAgICAgc2V0IGNvbW1hbmQgImNyZWF0ZV9wc19wZXJfbWljcm9uX21vZGVsXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksY3JlYXRlX3BzX3Blcl9taWNyb25fbW9kZWwgJGNvbW1hbmRdCi0jICAgICAgICAgc2V0IGNvbW1hbmQgInRpbWVEZXNpZ24gLXByb3RvIC1wcmVQbGFjZSAtcHJlZml4IHByZXBsYWNlIC1vdXREaXIgJHZhcnMocnB0X2RpcilcbiIKLSMgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksdGltZV9kZXNpZ24gJGNvbW1hbmRdCi0gICAgICB9Ci0KLSAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OnNvdXJjZV9wbHVnIHByZV9tb2RlbF9nZW5fdGNsXQotICAgICAgCi0gICAgICBpZiB7JHZhcnMoZW5hYmxlX25yZ3IpfSB7Ci0gICAgICAgICBzZXQgY29tbWFuZCAic2V0RGVzaWduTW9kZSAtdXNlVHVyYm9OUkdSRmxvdyB0cnVlXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksc2V0X2Rlc2lnbl9tb2RlICRjb21tYW5kXQotICAgICAgfQotCi0gICAgICBzZXQgdmFycyhoaWVyX2Nhc2UpICIkdmFycyhmbGV4bW9kZWxfYXNfcHRuKSR2YXJzKGluc2VydF9mZWVkdGhyb3VnaCkiCi0KLSAgICAgIHN3aXRjaCAkdmFycyhoaWVyX2Nhc2UpIHsKLSAgICAgICAgICIwMCIgewotICAgICAgICAgICAgc2V0IGNvbW1hbmQgImlkZW50aWZ5X3Byb3RvX21vZGVsXG4iCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksaWRlbnRpZnlfcHJvdG9fbW9kZWwgJGNvbW1hbmRdCi0gICAgICAgICB9Ci0gICAgICAgICAiMDEiIHsKLSAgICAgICAgICAgIHNldCBjb21tYW5kICJpZGVudGlmeV9wcm90b19tb2RlbFxuIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLGlkZW50aWZ5X3Byb3RvX21vZGVsICRjb21tYW5kXQotICAgICAgICAgfQotICAgICAgICAgIjEwIiB7Ci0gICAgICAgICAgICBzZXQgY29tbWFuZCAgInNldF9wcm90b19tb2RlIC1jcmVhdGVfcGFydGl0aW9uX2FzX2ZsZXhtb2RlbCB0cnVlXG4iCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksc2V0X3Byb3RvX21vZGUgJGNvbW1hbmRdCi0jICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKHBhcnRpdGlvbl9saXN0KV0gJiYgKCR2YXJzKHBhcnRpdGlvbl9saXN0KSAhPSAiIil9IHsKLSMgICAgICAgICAgICAgICBmb3JlYWNoIHB0biAkdmFycyhwYXJ0aXRpb25fbGlzdCkgewotIyAgICAgICAgICAgICAgICAgICBzZXQgY29tbWFuZCAic2V0X3Byb3RvX21vZGVsIC1tb2RlbCAkcHRuIC10eXBlIGZsZXhfbW9kdWxlXG4iCi0jICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxzZXRfcHJvdG9fbW9kZWwgJGNvbW1hbmRdCi0jICAgICAgICAgICAgICAgIH0KLSMgICAgICAgICAgICB9IGVsc2UgewotIyAgICAgICAgICAgICAgIHB1dHMgIjxGRj4gRVJST1I6IEZsZXhtb2RlbCBwYXJ0aXRpb24gZmxvdyBlbmFibGVkIGJ1dCBubyBwYXJ0aXRpb25zIGFyZSBkZWZpbmVkIgotIyAgICAgICAgICAgICAgIHNldCBlcnJvcnMoJHZhcnMoZXJyb3JfY291bnQpKSAiRmxleG1vZGVsIHBhcnRpdGlvbiBmbG93IGVuYWJsZWQgYnV0IG5vIHBhcnRpdGlvbnMgYXJlIGRlZmluZWQiCi0jICAgICAgICAgICAgICAgaW5jciB2YXJzKGVycm9yX2NvdW50KQotIyAgICAgICAgICAgIH0KLSAgICAgICAgIH0KLSAgICAgICAgICIxMSIgewotICAgICAgICAgICAgc2V0IGNvbW1hbmQgICJzZXRfcHJvdG9fbW9kZSAtY3JlYXRlX3BhcnRpdGlvbl9hc19mbGV4bW9kZWwgdHJ1ZVxuIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHNldF9wcm90b19tb2RlICRjb21tYW5kXQotIyAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhwYXJ0aXRpb25fbGlzdCldICYmICgkdmFycyhwYXJ0aXRpb25fbGlzdCkgIT0gIiIpfSB7Ci0jICAgICAgICAgICAgICAgZm9yZWFjaCBwdG4gJHZhcnMocGFydGl0aW9uX2xpc3QpIHsKLSMgICAgICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgInNldF9wcm90b19tb2RlbCAtbW9kZWwgJHB0biAtdHlwZSBmbGV4X21vZHVsZVxuIgotIyAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksc2V0X3Byb3RvX21vZGVsICRjb21tYW5kXQotIyAgICAgICAgICAgICAgICB9Ci0jICAgICAgICAgICAgfSBlbHNlIHsKLSMgICAgICAgICAgICAgICBwdXRzICI8RkY+IEVSUk9SOiBGbGV4bW9kZWwgcGFydGl0aW9uIGZsb3cgZW5hYmxlZCBidXQgbm8gcGFydGl0aW9ucyBhcmUgZGVmaW5lZCIKLSMgICAgICAgICAgICAgICBzZXQgZXJyb3JzKCR2YXJzKGVycm9yX2NvdW50KSkgIkZsZXhtb2RlbCBwYXJ0aXRpb24gZmxvdyBlbmFibGVkIGJ1dCBubyBwYXJ0aXRpb25zIGFyZSBkZWZpbmVkIgotIyAgICAgICAgICAgICAgIGluY3IgdmFycyhlcnJvcl9jb3VudCkKLSMgICAgICAgICAgICB9Ci0jICAgICAgICAgfQotICAgICAgfQotCi0jICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKG1vZGVsX2dlbixtaW5faW5zdCldfSB7Ci0jICAgICAgICAgc2V0IG1pbl9pbnN0ICR2YXJzKG1vZGVsX2dlbixtaW5faW5zdCkKLSMgICAgICB9IGVsc2UgewotIyAgICAgICAgIHNldCBtaW5faW5zdCAxMDAwCi0jICAgICAgfQotIyAgICAgIHNldCBjb21tYW5kICJzZXRJbG1Nb2RlIC1oaWdoRmFub3V0UG9ydCBmYWxzZVxuIgotIyAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxzZXRJbG1Nb2RlICRjb21tYW5kXQotICAgICAKLSAgICAgIHNldCBjb21tYW5kICJzZXRJbG1Nb2RlIC1rZWVwSGlnaEZhbm91dFBvcnRzIGZhbHNlXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksc2V0X2lsbV9tb2RlICRjb21tYW5kXQotICAgICAgaWYgeyR2YXJzKGZsZXhtb2RlbF9hcnRfYmFzZWQpfSB7Ci0gICAgICAgICBzZXQgY29tbWFuZCAiY3JlYXRlX3Byb3RvX21vZGVsIC1vdXRfZGlyICR2YXJzKGRic19kaXIpL21vZGVsX2dlbi5lbmNcbiIKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgICBzZXQgY29tbWFuZCAiY3JlYXRlX3Byb3RvX21vZGVsIC1wYXJ0aXRpb25fYmFzZWRcbmNvbW1pdF9wcm90b19tb2RlbFxuIgotICAgICAgfQotICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLGNyZWF0ZV9wcm90b19tb2RlbCAkY29tbWFuZF0KLSAgICAgIGlmIHskdmFycyhjcmVhdGVfZmxleGZpbGxlcl9ibG9ja2FnZSl9IHsKLSAgICAgICAgIHNldCBjb21tYW5kICJjcmVhdGVfZmxleGZpbGxlcl9yb3V0ZV9ibG9ja2FnZVxuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLGNyZWF0ZV9mbGV4ZmlsbGVyX3JvdXRlX2Jsb2NrYWdlICRjb21tYW5kXQotICAgICAgfQotCi0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjpzb3VyY2VfcGx1ZyBwb3N0X21vZGVsX2dlbl90Y2xdCi0KLSAgICAgIGlmIHskdmFycyhjb2RlZ2VuKX0gewotICAgICAgICAgcmV0dXJuICRjb21tYW5kcwotICAgICAgfSBlbHNlIHsKLSAgICAgICAgICB1cGxldmVsICMwIGV2YWwgJGNvbW1hbmRzCi0gICAgICB9Ci0gICB9Ci0KLSAgIHByb2MgcnVuX3Byb3RvdHlwZSB7e2Zvcm1hdCAxfX0gewotCi0gICAgICBnbG9iYWwgdmFycwotICAgICAgZ2xvYmFsIGVycm9ycwotICAgICAgZ2xvYmFsIGVudgotCi0gICAgICBzZXQgdmFycyhzdGVwKSBwcm90b3R5cGUKLSAgICAgIHNldCB2YXJzKGhpZXIpIHRydWUKLSAgICAgIHNldCBjb21tYW5kcyAiIgotCi0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjpzb3VyY2VfcGx1ZyBwcmVfcHJvdG90eXBlX3RjbF0KLQotICAgICAgc2V0IGNvbW1hbmQgInJlcG9ydF9wcm90b19tb2RlbCAtY3JlYXRlZFxuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHJlcG9ydF9wcm90b19tb2RlbCAkY29tbWFuZF0KLSAgICAgIHNldCBjb21tYW5kICJ1bmdyb3VwIC10eXBlIGZsZXhfbW9kZWxcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSx1bmdyb3VwX2ZsZXhpbG1fMSAkY29tbWFuZF0KLQotICAgICAgc2V0IGNvbW1hbmQgInRpbWVEZXNpZ24gLXByb3RvIC1wcmVwbGFjZSBcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSx0aW1lX2Rlc2lnbiAkY29tbWFuZF0KLSMgICAgICBzZXQgY29tbWFuZCAiZGVmaW5lUGFydGl0aW9uIC1wcm90byBbbGlzdCAkdmFycyhwYXJ0aXRpb25fbGlzdCldXG4iCi0gICAgICBzZXQgY29tbWFuZCAiIgotICAgICAgZm9yZWFjaCBwdG4gJHZhcnMocGFydGl0aW9uX2xpc3QpIHsKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kICJkZWZpbmVQYXJ0aXRpb24gLXByb3RvIFxbZGJHZXQgXFtkYkdldENlbGxCeU5hbWUgJHB0blxdLmhpbnN0Lm5hbWVcXVxuIgotICAgICAgfQotICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLGRlZmluZV9wYXJ0aXRpb24gJGNvbW1hbmRdCi0KLSAgICAgIHNldCBjb21tYW5kICJzZXRfcHJvdG9fbW9kZSAgLXByb3RvX2Rlc2lnbl9sZXZlbCAkdmFycyhmbGV4bW9kZWxfcHJvdG90eXBlX2Zsb3dfc3R5bGUpXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksc2V0X3Byb3RvX21vZGUgJGNvbW1hbmRdCi0gICAgICBzZXQgY29tbWFuZCAic2V0X3Byb3RvX2Rlc2lnbl9tb2RlIC1yZXNldFxuIgotICAgICAgaWYgeyR2YXJzKGZsZXhtb2RlbF9wcm90b3R5cGVfY29uZ2VzdGlvbl9hd2FyZSl9IHsKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kICJzZXRfcHJvdG9fZGVzaWduX21vZGUgLWNvbmdlc3Rpb25fYXdhcmUgdHJ1ZVxuIgotICAgICAgfQotICAgICAgaWYgeyR2YXJzKGZsZXhtb2RlbF9wcm90b3R5cGVfdGltaW5nX2F3YXJlKX0gewotICAgICAgICAgYXBwZW5kIGNvbW1hbmQgInNldF9wcm90b19kZXNpZ25fbW9kZSAtdGltaW5nX2F3YXJlIHRydWVcbiIKLSAgICAgIH0KLQotIyBGb2xsb3dpbmcgMiBzZXR0aW5ncyB3aWxsIGJlIHJlbW92ZWQgCi0gICAgICBhcHBlbmQgY29tbWFuZCAic2V0X3Byb3RvX2Rlc2lnbl9tb2RlIC1uZXdfYWxnb3JpdGhtIHRydWVcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kICJzZXRfcHJvdG9fZGVzaWduX21vZGUgLXJlcG9ydF90aW1pbmcgZmFsc2VcbiIKLQotICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHNldF9wcm90b19kZXNpZ25fbW9kZSAkY29tbWFuZF0KLQotICAgICAgaWYgeyR2YXJzKGZsZXhtb2RlbF9wcm90b3R5cGVfZmxvd19zdHlsZSkgPT0gInRvcF90b19ib3R0b20ifSB7Ci0jICAgICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycyhmbGV4bW9kZWxfcHJvdG90eXBlX21heF9sZXZlbCldfSB7Ci0jICAgICAgICAgICAgc2V0IHZhcnMoZmxleG1vZGVsX3Byb3RvdHlwZV9tYXhfbGV2ZWwpIDEKLSMgICAgICAgICB9Ci0jICAgICAgICAgc2V0IGNvbW1hbmQgInNldCBtYXhfbGV2ZWwgJHZhcnMoZmxleG1vZGVsX3Byb3RvdHlwZV9tYXhfbGV2ZWwpXG4iCi0gICAgICAgICBzZXQgY29tbWFuZCAic2V0IG1heF9sZXZlbCBcW2dldF9mbGV4bW9kZWxfbWF4X2xldmVsXF1cbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kICJzZXQgbGV2ZWwgMFxuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIndoaWxlIHtcJGxldmVsIDwgXCRtYXhfbGV2ZWx9IHtcbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kICJzZXRfcHJvdG9fbW9kZSAtcGFydGl0aW9uX2xldmVsX251bSBcJGxldmVsXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZCAicHJvdG9fZGVzaWduIC1jb25zdHJhaW50cyAkdmFycyhmbGV4bW9kZWxfcHJvdG90eXBlX3VzZXJfY29udHJhaW50cylcbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kICJjaGVja0ZQbGFuIC1vdXRGaWxlICR2YXJzKHJwdF9kaXIpL2NoZWNrX2ZwbGFuX3Byb3RvX2Rlc2lnbl9sZXZlbF9cJHtsZXZlbH0ucnB0ICBcbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kICJwbGFjZURlc2lnbiAtbm9QcmVQbGFjZU9wdFxuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmQgInRpbWVEZXNpZ24gLXByb3RvIC1wcmVjdHMgLXByZWZpeCAgcHJvdG9fZGVzaWduX2xldmVsX1wke2xldmVsfSAtb3V0RGlyICR2YXJzKHJwdF9kaXIpXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZCAibG9hZF90aW1pbmdfZGVidWdfcmVwb3J0IC1wcm90byBcbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kICJmaWxlIGNvcHkgLWZvcmNlICR2YXJzKHBsdWdfZGlyKS9wb3N0X3Byb3RvX2Rlc2lnbl9sZXZlbC50Y2wgLnBvc3RfcHJvdG9fZGVzaWduX2xldmVsX1wke2xldmVsfS50Y2xcbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kICJzb3VyY2UgLnBvc3RfcHJvdG9fZGVzaWduX2xldmVsX1wke2xldmVsfS50Y2xcbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kICJpbmNyIGxldmVsIDFcbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kICJ9XG4iCi0gICAgICB9IGVsc2UgewotICAgICAgICAgc2V0IGNvbW1hbmQgInNldCBsZXZlbCAkdmFycyhmbGV4bW9kZWxfcHJvdG90eXBlX2Zsb3dfc3R5bGUpXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZCAicHJvdG9fZGVzaWduIC1jb25zdHJhaW50cyAkdmFycyhmbGV4bW9kZWxfcHJvdG90eXBlX3VzZXJfY29udHJhaW50cylcbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kICJjaGVja0ZQbGFuIC1vdXRGaWxlICR2YXJzKHJwdF9kaXIpL2NoZWNrX2ZwbGFuX3Byb3RvX2Rlc2lnbl9sZXZlbF9cJHtsZXZlbH0ucnB0ICBcbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kICJwbGFjZURlc2lnblxuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmQgInRpbWVEZXNpZ24gLXByb3RvIC1wcmVjdHMgLXByZWZpeCAgcHJvdG9fZGVzaWduX2xldmVsX1wke2xldmVsfSAtb3V0RGlyICR2YXJzKHJwdF9kaXIpXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZCAibG9hZF90aW1pbmdfZGVidWdfcmVwb3J0IC1wcm90byBcbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kICJzb3VyY2UgJHZhcnMocGx1Z19kaXIpL3Bvc3RfcHJvdG9fZGVzaWduX2xldmVsLnRjbFxuIgotICAgICAgfQotICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHByb3RvX2xvb3AgJGNvbW1hbmRdCi0KLSAgICAgIHNldCBjb21tYW5kICJ1bmdyb3VwIC10eXBlIGZsZXhfbW9kZWwgLWRpc3BsYXlfYWxsX2NvbnN0cmFpbnRzXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksdW5ncm91cF9mbGV4aWxtXzIgJGNvbW1hbmRdCi0KLSAgICAgIHNldCBjb21tYW5kICJzZXRfcHJvdG9fdGltaW5nX3NldHRpbmdzIC1yZXNldFxuIgotICAgICAgCi0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjpzb3VyY2VfcGx1ZyBwb3N0X3Byb3RvdHlwZV90Y2xdCi0KLSAgICAgIGlmIHskdmFycyhjb2RlZ2VuKX0gewotICAgICAgICAgcmV0dXJuICRjb21tYW5kcwotICAgICAgfSBlbHNlIHsKLSAgICAgICAgICB1cGxldmVsICMwIGV2YWwgJGNvbW1hbmRzCi0gICAgICB9Ci0gICB9Ci0KLSAgIHByb2MgcnVuX3BhcnRpdGlvbiB7e2Zvcm1hdCAxfX0gewotCi0gICAgICBnbG9iYWwgdmFycwotICAgICAgZ2xvYmFsIGVycm9ycwotICAgICAgZ2xvYmFsIGVudgotCi0gICAgICBzZXQgdmFycyhzdGVwKSBwYXJ0aXRpb24KLSAgICAgIHNldCB2YXJzKGhpZXIpIHRydWUKLQotICAgICAgc2V0IGNvbW1hbmRzICIiCi0KLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICMgQnVkZ2V0IHRoZSBibG9ja3MgYmFzZWQgb24gdGhlIG1vZGUKLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLQotICAgICAgc2V0IGNvbW1hbmQgIiIKLSAgICAgIGFwcGVuZCBjb21tYW5kICJzZXRfZ2xvYmFsIHRpbWluZ19zdXBwb3J0X2hpZXJhcmNoaWNhbF9waW5fY29uc3RyYWludHMgdHJ1ZVxuIgotICAgICAgYXBwZW5kIGNvbW1hbmQgInNldCB0YmdQcmludEV4Y2VwdGlvbkluZm9Jbkp1c3RpZnkgMVxuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHNldF9idWRnZXRfdmFycyAkY29tbWFuZF0KLQotICAgICAgaWYgeyR2YXJzKGJ1ZGdldF9tb2RlKSA9PSAicHJvdG9fbmV0X2RlbGF5X21vZGVsIiAmJiAkdmFycyh1c2VfcHJvdG9fbmV0X2RlbGF5X21vZGVsKX0gewotICAgICAgICAgc2V0IGNvbW1hbmQgInRpbWVEZXNpZ24gLXByb3RvIC1wcmVmaXggYnVkZ2V0IC1vdXREaXIgJHZhcnMocnB0X2RpcilcbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSx0aW1lX2Rlc2lnbiAkY29tbWFuZF0KLSAgICAgIH0KLQotICAgICAgIyBEZWZpbmUgYnVkZ2V0aW5nIG9wdGlvbnMgLi4uCi0gICAgICBzZXQgY29tbWFuZCAiIgotCi0gICAgICBhcHBlbmQgY29tbWFuZCAic2V0QnVkZ2V0aW5nTW9kZSAtd3JpdGVMYXRlbmN5UGVyQ2xvY2sgdHJ1ZVxuIgotCi0gICAgICBhcHBlbmQgY29tbWFuZCAiaWYge1xbZGJHZXQgLWUgdG9wLnB0bnMuY2xvbmVzXF0gIT0gXCJcIn0ge1xuIgotICAgICAgYXBwZW5kIGNvbW1hbmQgIiAgIHNldEJ1ZGdldGluZ01vZGUgLW1lcmdlQ2xvbmVzIHRydWVcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kICJ9XG4iCi0gICAgICAKLSAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhhYnV0dGVkX2Rlc2lnbildICYmICR2YXJzKGFidXR0ZWRfZGVzaWduKX0gewotICAgICAgICAgYXBwZW5kIGNvbW1hbmQgInNldEJ1ZGdldGluZ01vZGUgLWFidXR0ZWQgdHJ1ZVxuIgotICAgICAgfQotICAgICAgCi0gICAgICBzd2l0Y2ggW3N0cmluZyB0b2xvd2VyICR2YXJzKGJ1ZGdldF9tb2RlKV0gewotICAgICAgICAgZ2lnYV9vcHQgewotICAgICAgICAgICAgICMgVGhpcyBpcyBkZWZhdWx0IGJlaGF2aW9yIG5vdwotIyAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJzZXRCdWRnZXRpbmdNb2RlIC12aXJ0dWFsT3B0RW5naW5lIGdpZ2FPcHRcbiIKLSAgICAgICAgIH0KLSAgICAgICAgIHRyaWFsX2lwbyB7Ci0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAic2V0QnVkZ2V0aW5nTW9kZSAtdmlydHVhbE9wdEVuZ2luZSB0cmlhbElQT1xuIgotICAgICAgICAgfQotICAgICAgICAgcHJvdG9fbmV0X2RlbGF5X21vZGVsIHsKLSAgICAgICAgICAgIGlmIHskdmFycyh1c2VfcHJvdG9fbmV0X2RlbGF5X21vZGVsKX0gewotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgInNldEJ1ZGdldGluZ01vZGUgLXZpcnR1YWxPcHRFbmdpbmUgbm9uZVxuIgotICAgICAgICAgICAgfQotICAgICAgICAgfQotICAgICAgfQotIyAgICAgIGFwcGVuZCBjb21tYW5kICJzZXRCdWRnZXRpbmdNb2RlIC1lbmFibGVNVEJ1ZGdldGluZyB0cnVlXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksc2V0X2J1ZGdldGluZ19tb2RlICRjb21tYW5kXQotCi0gICAgICBpZiB7KFtzdHJpbmcgdG9sb3dlciAkdmFycyhidWRnZXRfbW9kZSldICE9ICJwcm90b19uZXRfZGVsYXlfbW9kZWwiKSAmJiAkdmFycyh1c2VfcHJvdG9fbmV0X2RlbGF5X21vZGVsKX0gewotICAgICAgICAgc2V0IGNvbW1hbmQgInNldF9wcm90b190aW1pbmdfc2V0dGluZ3MgLXJlc2V0XG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksc2V0X3Byb3RvX3RpbWluZ19zZXR0aW5ncyAkY29tbWFuZF0KLSAgICAgIH0KLSAgICAgIHNldCBjb21tYW5kICJkZXJpdmVUaW1pbmdCdWRnZXQgLWp1c3RpZnlcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxkZXJpdmVfdGltaW5nX2J1ZGdldCAkY29tbWFuZF0KLQotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgIyBSdW4gQ0xQCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICBpZiB7W0ZGOjppc19scF9mbG93XSAmJiBbaW5mbyBleGlzdHMgdmFycyhwb3dlcl9kb21haW5zKV0gJiYgW2xsZW5ndGggJHZhcnMocG93ZXJfZG9tYWlucyldID4gMX0gewotICAgICAgICAgaWYgeyR2YXJzKHJ1bl9jbHApICYmIChbYXV0b19leGVjb2sgbGVjXSAhPSAiIil9IHsKLSAgICAgICAgICAgIHNldCBjb21tYW5kICJydW5DTFAgIgotICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGNscF9vcHRpb25zKV19IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICR2YXJzKGNscF9vcHRpb25zKQotICAgICAgICAgICAgfQotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIlxuIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHJ1bl9jbHAgJGNvbW1hbmRdCi0gICAgICAgICB9Ci0gICAgICB9Ci0KLSAgICAgIGlmIHskdmFycyh1c2VfZmxleG1vZGVscykgfHwgJHZhcnMocGxhY2VtZW50X2Jhc2VkX3B0bil9IHsKLSAgICAgICAgIHNldCBjb21tYW5kICJzZXQgbWF4X2xheWVyIFxbZ2V0VHJpYWxSb3V0ZU1vZGUgLW1heFJvdXRlTGF5ZXJcXVxuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmQgInNldFBsYWNlTW9kZSAtcmVzZXQgIFxuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmQgInNldFRyaWFsUm91dGVNb2RlIC1yZXNldCAgXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZCAic2V0VHJpYWxSb3V0ZU1vZGUgLW1heFJvdXRlTGF5ZXIgXCRtYXhfbGF5ZXJcbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxzZXRfdHJpYWxfcm91dGVfbW9kZSAkY29tbWFuZF0KLSAgICAgIH0KLQotICAgICAgaWYgeyR2YXJzKHVzZV9wcm90b19uZXRfZGVsYXlfbW9kZWwpfSB7Ci0gICAgICAgICBzZXQgY29tbWFuZCAic2V0X3Byb3RvX3RpbWluZ19zZXR0aW5ncyAtcmVzZXRcbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxzZXRfcHJvdG9fdGltaW5nX3NldHRpbmdzICRjb21tYW5kXQotICAgICAgfQotICAgICAgIAotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgIyBQYXJ0aXRpb24gYW5kIHNhdmUgdGhlIHBhcnRpdGlvbnMgaW50byB0aGUKLSAgICAgICMgZGlyZWN0b3J5IFBBUlRJVElPTgotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6c291cmNlX3BsdWcgcHJlX3BhcnRpdGlvbl90Y2xdCi0KLQotIyAgICAgIHNldCBjb21tYW5kICJzZXQgcHRuZ1B0blRpbWluZ0xpYkZvcm1hdCBsaWJcbnBhcnRpdGlvbiAtYnVpbGRTY2FuXG4iCi0gICAgICBzZXQgY29tbWFuZCAicGFydGl0aW9uIC1idWlsZFNjYW5cbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxwYXJ0aXRpb24gJGNvbW1hbmRdCi0gICAgICBpZiB7W2xpbmRleCBbc3BsaXQgJHZhcnModmVyc2lvbikgIi4iXSAgMF0gPiAxMH0gewotICAgICAgICAgaWYgeyhbc3RyaW5nIGNvbXBhcmUgJHZhcnMoZGJzX2Zvcm1hdCkgIm9hIl09PTApfSB7Ci0gICAgICAgICAgICBzZXQgY29tbWFuZCAic2F2ZVBhcnRpdGlvbiAtcHRuTGliICR2YXJzKG9hX3BhcnRpdGlvbl9saWIpIC1kaXIgJHZhcnMocGFydGl0aW9uX2RpcilcbiIKLSAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBzZXQgY29tbWFuZCAic2F2ZVBhcnRpdGlvbiAtZGlyICR2YXJzKHBhcnRpdGlvbl9kaXIpIC1kZWYgLXNjYW5EZWZcbiIKLSAgICAgICAgIH0KLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgICBzZXQgY29tbWFuZCAic2F2ZVBhcnRpdGlvbiAtZGlyICR2YXJzKHBhcnRpdGlvbl9kaXIpIC1kZWYgLXNjYW5EZWZcbiIKLSAgICAgIH0KLSAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxzYXZlX3BhcnRpdGlvbiAkY29tbWFuZF0KLQotICAgICAgaWYgeyR2YXJzKHVzZV9mbGV4bW9kZWxzKSAmJiAkdmFycyhmbGV4bW9kZWxfYXNfcHRuKX0gewotIyAgICAgICAgIHNldCBjb21tYW5kICJyZXBsYWNlX3Byb3RvX21vZGVsIFxcXG4iCi0jICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAgIC1wcmVfZnRfZGlyICR2YXJzKGVjb19kaXIpL3ByZV9mdCBcXFxuIgotIyAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgICAtcG9zdF9mdF9kaXIgJHZhcnMoZWNvX2RpcikvcG9zdF9mdCBcXFxuIgotIyAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgICAtcHRuX2RpciAkdmFycyhwYXJ0aXRpb25fZGlyKSBcXFxuIgotIyAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgICAtcHRuX2Z1bGxfbmV0bGlzdF9kaXIgLi90ZW1wX25ldGxpc3RfZGlyIFxcXG4iCi0jICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAgIC1vdXRfZGlyICR2YXJzKHBhcnRpdGlvbl9kaXIpXG4iCi0KLSAgICAgICAgIHNldCBjb21tYW5kICJyZXBsYWNlX3Byb3RvX21vZGVsIFxcXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZCAiICAgLXB0bl9kaXIgJHZhcnMocGFydGl0aW9uX2RpcikgXFxcbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgICAtb3V0X2RpciAkdmFycyhwYXJ0aXRpb25fZGlyKVxuIgotCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCkscmVwbGFjZV9wcm90b19tb2RlbCAkY29tbWFuZF0KLSAgICAgIH0KLQotICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6c291cmNlX3BsdWcgcG9zdF9wYXJ0aXRpb25fdGNsXQotCi0gICAgICBpZiB7ISR2YXJzKGNvZGVnZW4pfSB7Ci0gICAgICAgICAgdXBsZXZlbCAjMCBldmFsICRjb21tYW5kcwotICAgICAgfQotCi0gICAgICBzZXQgcGF0aCBbZmlsZSBub3JtYWxpemUgJHZhcnMoc2NyaXB0X3BhdGgpXQotICAgCi0gICAgICBmaWxlIG1rZGlyICR2YXJzKHBhcnRpdGlvbl9kaXIpCi0KLSAgICAgIGlmIHshW2ZpbGUgZXhpc3RzICR2YXJzKHBhcnRpdGlvbl9kaXIpL01ha2VmaWxlLnBhcnRpdGlvbl19IHsKLSAgICAgICAgIGZpbGUgY29weSAkdmFycyhzY3JpcHRfcGF0aCkvRVRDL0lOTk9WVVMvTWFrZWZpbGUucGFydGl0aW9uICR2YXJzKHBhcnRpdGlvbl9kaXIpCi0gICAgICB9Ci0gICAgICBzZXQgb3AgW29wZW4gJHZhcnMocGFydGl0aW9uX2RpcikvTWFrZWZpbGUgd10KLSAgICAgIGlmIHshW2luZm8gZXhpc3RzIGVudihWUEFUSCldfSB7Ci0gICAgICAgICBzZXQgZW52KFZQQVRIKSAibWFrZSIKLSAgICAgIH0KLSAgICAgIHB1dHMgJG9wICJWUEFUSD0kZW52KFZQQVRIKSIKLSAgICAgIHB1dHMgJG9wICJCTE9DS1MgPSAkdmFycyhwYXJ0aXRpb25fbGlzdCkiCi0gICAgICBwdXRzICRvcCAiIgotICAgICAgcHV0cyAkb3AgImluY2x1ZGUgTWFrZWZpbGUucGFydGl0aW9uIgotICAgICAgY2xvc2UgJG9wCi0gICAKLSAgICAgIGZvcmVhY2ggdmFyIFthcnJheSBuYW1lcyB2YXJzXSB7Ci0gICAgICAgICBzZXQgc3ZhcnMoJHZhcikgJHZhcnMoJHZhcikKLSAgICAgIH0KLSAgICAgIHNldCB2YXJzKG1vZGUpIGZsYXQKLSMgICAgICBzZXQgdmFycyhoaWVyKSB0cnVlCi0gICAgICBzZXQgbGluayBbZmlsZSBub3JtYWxpemUgJHZhcnMoc2NyaXB0X3Jvb3QpXQotICAgICAgZm9yZWFjaCBibG9jayBbY29uY2F0ICR2YXJzKGRlc2lnbikgJHZhcnMocGFydGl0aW9uX2xpc3QpXSB7Ci0gICAgICAgICBleGVjIG1rZGlyIC1wICR2YXJzKHBhcnRpdGlvbl9kaXIpLyRibG9jawotIyAgICAgICAgIGlmIHtbZmlsZSBleGlzdHMgLmZmLnRjbF19IHsKLSMgICAgICAgICAgICBmaWxlIGNvcHkgLWZvcmNlIC5mZi50Y2wgJHZhcnMocGFydGl0aW9uX2RpcikvJGJsb2NrCi0jICAgICAgICAgfQotICAgICAgICAgaWYge1tmaWxlIGV4aXN0cyAkdmFycyhwYXJ0aXRpb25fZGlyKS8kYmxvY2svTWFrZWZpbGVdfSB7Ci0gICAgICAgICAgICBmaWxlIGRlbGV0ZSAkdmFycyhwYXJ0aXRpb25fZGlyKS8kYmxvY2svTWFrZWZpbGUKLSAgICAgICAgIH0KLSAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkYmxvY2ssaW5ub3Z1c19jb25maWdfdGNsKV0gJiYgW2ZpbGUgZXhpc3RzICR2YXJzKCRibG9jayxpbm5vdnVzX2NvbmZpZ190Y2wpXX0gewotICAgICAgICAgICAgcHV0cyAiPEZGPiBTb3VyY2luZyAkdmFycygkYmxvY2ssaW5ub3Z1c19jb25maWdfdGNsKSIKLSAgICAgICAgICAgIHNvdXJjZSAkdmFycygkYmxvY2ssaW5ub3Z1c19jb25maWdfdGNsKQotICAgICAgICAgfSAKLSAgICAgICAgIHNldCBjd2QgW3B3ZF0KLSAgICAgICAgCi0gICAgICAgICBpZiB7KFtsaW5kZXggW3NwbGl0ICR2YXJzKHZlcnNpb24pICIuIl0gIDBdID4gMTApICAmJiAoW3N0cmluZyBjb21wYXJlICR2YXJzKGRic19mb3JtYXQpICJvYSJdPT0wKX0gewotICAgICAgICAgICAgaWYge1tmaWxlIGV4aXN0cyBjZHMubGliXX0gewotICAgICAgICAgICAgICAgc2V0IGlwIFtvcGVuIGNkcy5saWIgcl0KLSAgICAgICAgICAgICAgIHNldCBpIDAgCi0gICAgICAgICAgICAgICB3aGlsZSB7W2dldHMgJGlwIGxpbmVdPj0wfSB7Ci0gICAgICAgICAgICAgICAgICBzZXQgY2RzX2xpYigkaSkgJGxpbmUKLSAgICAgICAgICAgICAgICAgIGluY3IgaQotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgY2xvc2UgJGlwCi0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgcHV0cyAiPEZGPiBFUlJPUjogQSBjZHMubGliIGZpbGUgaXMgcmVxdWlyZWQgZm9yIG9wZW4gYWNjZXNzIGZsb3dzIC4uLiIKLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0gCi0gICAgICAgICBjZCAkdmFycyhwYXJ0aXRpb25fZGlyKS8kYmxvY2sKLSAgICAgICAgIHNldCB2YXJzKGRlc2lnbikgJGJsb2NrCi0gICAgICAgICBpZiB7JHZhcnMoY29kZWdlbil9IHsKLSAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhwcm9jX2ZpbGUpXX0gewotICAgICAgICAgICAgICAgdW5zZXQgdmFycyhwcm9jX2ZpbGUpCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICB1bnNldCB2YXJzKHN0ZXBzKQotICAgICAgICAgfSAKLSAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhjdHNfc3BlYyldfSB7Ci0gICAgICAgICAgICB1bnNldCB2YXJzKGN0c19zcGVjKQotICAgICAgICAgfQotICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCRibG9jayxjdHNfc3BlYyldfSB7Ci0gICAgICAgICAgICBzZXQgdmFycyhjdHNfc3BlYykgJHZhcnMoJGJsb2NrLGN0c19zcGVjKQotICAgICAgICAgfQotCi0gICAgICAgICBpZiB7ISR2YXJzKGNvZGVnZW4pfSB7IAotICAgICAgICAgICAgZXhlYyBsbiAtcyAkbGluayBTQ1JJUFRTCi0gICAgICAgICAgICBleGVjIGxuIC1zIFNDUklQVFMvTWFrZWZpbGUuZWRpLmZsYXQgTWFrZWZpbGUKLSAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBzZXQgdmFycyhtb2RlKSBmbGF0Ci0gICAgICAgICAgICBzZXQgdmFycyhoaWVyKSB0cnVlIAotICAgICAgICAgICAgdW5zZXQgdmFycyhzdGVwKQotICAgICAgICAgICAgZXhlY3V0ZV9mbG93IGFsbCAkdmFycyhmb3JtYXRfbGluZXMpCi0gICAgICAgICAgICBGRjo6ZHVtcF92YXJzCi0gICAgICAgICB9Ci0gICAgICAgICBjZCAkY3dkCi0jICAgICAgICAgc2V0IGFjdGlvbnMgJHZhcnMoYWN0aW9ucykKLSAgICAgICAgIGZvcmVhY2ggdmFyIFthcnJheSBuYW1lcyB2YXJzXSB7Ci0gICAgICAgICAgICB1bnNldCB2YXJzKCR2YXIpCi0gICAgICAgICB9Ci0jICAgICAgICAgc2V0IHZhcnMoYWN0aW9ucykgJGFjdGlvbnMKLSAgICAgICAgIGZvcmVhY2ggdmFyIFthcnJheSBuYW1lcyBzdmFyc10gewotICAgICAgICAgICAgc2V0IHZhcnMoJHZhcikgJHN2YXJzKCR2YXIpCi0gICAgICAgICB9Ci0gICAgICB9Ci0gICAgICBpZiB7JHZhcnMoaGllcl9mbG93X3R5cGUpID09ICIycGFzcyJ9IHsKLSAgICAgICAgIGZvcmVhY2ggYmxvY2sgW2NvbmNhdCAkdmFycyhkZXNpZ24pICR2YXJzKHBhcnRpdGlvbl9saXN0KV0gewotICAgICAgICAgICAgZXhlYyBta2RpciAtcCAkdmFycyhwYXJ0aXRpb25fZGlyX3Bhc3MyKS8kYmxvY2svJHZhcnMoc2NyaXB0X2RpcikvSU5OT1ZVUwotICAgICAgICAgICAgZXhlYyBta2RpciAtcCAkdmFycyhwYXJ0aXRpb25fZGlyX3Bhc3MyKS8kYmxvY2svJHZhcnMocnB0X2RpcikKLSAgICAgICAgICAgIGlmIHtbZmlsZSBpc2RpcmVjdG9yeSAkdmFycyhwYXJ0aXRpb25fZGlyX3Bhc3MyKS8kYmxvY2svJHZhcnMoc2NyaXB0X2RpcikvRVRDXX0gewotICAgICAgICAgICAgICAgZmlsZSBkZWxldGUgLWZvcmNlICR2YXJzKHBhcnRpdGlvbl9kaXJfcGFzczIpLyRibG9jay8kdmFycyhzY3JpcHRfZGlyKS9FVEMKLSAgICAgICAgICAgIH0KLSMgICAgICAgICAgICBmaWxlIGNvcHkgLWZvcmNlICR2YXJzKHBhcnRpdGlvbl9kaXIpLyRibG9jay8kdmFycyhzY3JpcHRfZGlyKS9FVEMgJHZhcnMocGFydGl0aW9uX2Rpcl9wYXNzMikvJGJsb2NrLyR2YXJzKHNjcmlwdF9kaXIpL0VUQwotICAgICAgICAgICAgZm9yZWFjaCBmaWxlIFtnbG9iICR2YXJzKHBhcnRpdGlvbl9kaXIpL01ha2UqXSB7Ci0gICAgICAgICAgICAgICBpZiB7W2ZpbGUgaXNmaWxlICRmaWxlXX0gewotICAgICAgICAgICAgICAgICAgZmlsZSBjb3B5IC1mb3JjZSAkZmlsZSAkdmFycyhwYXJ0aXRpb25fZGlyX3Bhc3MyKQotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGZvcmVhY2ggZmlsZSBbZ2xvYiAkdmFycyhwYXJ0aXRpb25fZGlyKS8kYmxvY2svJHZhcnMoc2NyaXB0X2RpcikvKl0gewotICAgICAgICAgICAgICAgaWYge1tmaWxlIGlzZmlsZSAkZmlsZV19IHsKLSAgICAgICAgICAgICAgICAgIGZpbGUgY29weSAtZm9yY2UgJGZpbGUgJHZhcnMocGFydGl0aW9uX2Rpcl9wYXNzMikvJGJsb2NrLyR2YXJzKHNjcmlwdF9kaXIpCi0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYge1tmaWxlIGlzZmlsZSAkdmFycyhwYXJ0aXRpb25fZGlyKS8kYmxvY2svLmlsbV9ub25fc2RjX2ZpbGUudGNsXX0gewotICAgICAgICAgICAgICAgZmlsZSBjb3B5IC1mb3JjZSAkdmFycyhwYXJ0aXRpb25fZGlyKS8kYmxvY2svLmlsbV9ub25fc2RjX2ZpbGUudGNsICR2YXJzKHBhcnRpdGlvbl9kaXJfcGFzczIpLyRibG9jawotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYge1tmaWxlIGlzZmlsZSAkdmFycyhwYXJ0aXRpb25fZGlyKS8kYmxvY2svZW1wdHkuc2RjXX0gewotICAgICAgICAgICAgICAgZmlsZSBjb3B5IC1mb3JjZSAkdmFycyhwYXJ0aXRpb25fZGlyKS8kYmxvY2svZW1wdHkuc2RjICR2YXJzKHBhcnRpdGlvbl9kaXJfcGFzczIpLyRibG9jawotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYge1tmaWxlIGlzZmlsZSAkdmFycyhwYXJ0aXRpb25fZGlyKS8kYmxvY2svTWFrZWZpbGUucGFzczJdfSB7Ci0gICAgICAgICAgICAgICBmaWxlIGNvcHkgLWZvcmNlICR2YXJzKHBhcnRpdGlvbl9kaXIpLyRibG9jay9NYWtlZmlsZS5wYXNzMiAkdmFycyhwYXJ0aXRpb25fZGlyX3Bhc3MyKS8kYmxvY2svTWFrZWZpbGUKLSAgICAgICAgICAgICAgIGZpbGUgZGVsZXRlICR2YXJzKHBhcnRpdGlvbl9kaXIpLyRibG9jay9NYWtlZmlsZS5wYXNzMgotICAgICAgICAgICAgfQotICAgICAgICAgICAgY2QgJHZhcnMocGFydGl0aW9uX2Rpcl9wYXNzMikvJGJsb2NrCi0gICAgICAgICAgICBpZiB7JHZhcnMoZW5hYmxlX2ZsZXhpbG0pfSB7Ci0gICAgICAgICAgICAgICBzZXQgaW5kZXggW2xzZWFyY2ggW0ZGOjphZGp1c3Rfc3RlcHNdIGN0c10KLSAgICAgICAgICAgIH0gZWxzZSB7Ci0jICAgICAgICAgICAgICAgc2V0IGluZGV4IFtsc2VhcmNoIFtGRjo6YWRqdXN0X3N0ZXBzXSBwb3N0Y3RzXQotIyAgICAgICAgICAgICAgIHNldCBpbmRleCBbbHNlYXJjaCBbRkY6OmFkanVzdF9zdGVwc10gcG9zdGN0c19ob2xkXQotICAgICAgICAgICAgICAgc2V0IGluZGV4IFtleHByIFtsc2VhcmNoIFtGRjo6YWRqdXN0X3N0ZXBzXSBjdHNdKzJdCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBjZCAkY3dkCi0jcHV0cyAiU1BMSVQgRkxPV1M6ICRpbmRleCwgW0ZGOjphZGp1c3Rfc3RlcHNdIgotICAgICAgICAgICAgZm9yZWFjaCBzdGVwIFtscmFuZ2UgJHZhcnMoc3RlcHMpICRpbmRleCBlbmRdIHsKLSAgICAgICAgICAgICAgIGlmIHtbbHNlYXJjaCAkdmFycyhmc3RlcHMpICRzdGVwXSAhPSAtMX0gewotICAgICAgICAgICAgICAgICAgaWYge1tmaWxlIGlzZmlsZSAkdmFycyhwYXJ0aXRpb25fZGlyKS8kYmxvY2svJHZhcnMoc2NyaXB0X2RpcikvSU5OT1ZVUy9ydW5fJHN0ZXAudGNsXX0gewotI3B1dHMgIkNPUFk6ICR2YXJzKHBhcnRpdGlvbl9kaXIpLyRibG9jay8kdmFycyhzY3JpcHRfZGlyKS9JTk5PVlVTL3J1bl8kc3RlcC50Y2wgJHZhcnMocGFydGl0aW9uX2Rpcl9wYXNzMikvJGJsb2NrLyR2YXJzKHNjcmlwdF9kaXIpL0lOTk9WVVMiCi0gICAgICAgICAgICAgICAgICAgICBmaWxlIGNvcHkgIC1mb3JjZSAkdmFycyhwYXJ0aXRpb25fZGlyKS8kYmxvY2svJHZhcnMoc2NyaXB0X2RpcikvSU5OT1ZVUy9ydW5fJHN0ZXAudGNsIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICR2YXJzKHBhcnRpdGlvbl9kaXJfcGFzczIpLyRibG9jay8kdmFycyhzY3JpcHRfZGlyKS9JTk5PVlVTCi0jcHV0cyAiREVMRVRFOiAkdmFycyhwYXJ0aXRpb25fZGlyKS8kYmxvY2svJHZhcnMoc2NyaXB0X2RpcikvSU5OT1ZVUy9ydW5fJHN0ZXAudGNsIgotICAgICAgICAgICAgICAgICAgICAgZmlsZSBkZWxldGUgIC1mb3JjZSAkdmFycyhwYXJ0aXRpb25fZGlyKS8kYmxvY2svJHZhcnMoc2NyaXB0X2RpcikvSU5OT1ZVUy9ydW5fJHN0ZXAudGNsCi0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0jICAgICAgICAgICAgc2V0IGFkanVzdGVkIFtGRjo6YWRqdXN0X3N0ZXBzXQotIyAgICAgICAgICAgIGNkICR2YXJzKHBhcnRpdGlvbl9kaXIpLyRibG9jawotI3B1dHMgIjE6ICRhZGp1c3RlZCA6IFtscmFuZ2UgJGFkanVzdGVkIDAgJGluZGV4XSIKLSMgICAgICAgICAgICBGRjo6Z2VuX21ha2VmaWxlIFtscmFuZ2UgJGFkanVzdGVkICRpbmRleCBlbmRdIGZsYXQKLSMgICAgICAgICAgICBjZCAkY3dkCi0jICAgICAgICAgICAgY2QgJHZhcnMocGFydGl0aW9uX2Rpcl9wYXNzMikvJGJsb2NrCi0jcHV0cyAiMjogJGFkanVzdGVkIDogW2xyYW5nZSAkYWRqdXN0ZWQgJGluZGV4IGVuZF0iCi0jICAgICAgICAgICAgRkY6Omdlbl9tYWtlZmlsZSBbbHJhbmdlICRhZGp1c3RlZCAkaW5kZXggZW5kXSBmbGF0Ci0jICAgICAgICAgICAgY2QgJGN3ZAotICAgICAgICAgfQotICAgICAgfQotIAotICAgICAgZm9yZWFjaCB2YXIgW2FycmF5IG5hbWVzIHZhcnNdIHsKLSAgICAgICAgIHVuc2V0IHZhcnMoJHZhcikKLSAgICAgIH0KLSAgICAgIGZvcmVhY2ggdmFyIFthcnJheSBuYW1lcyBzdmFyc10gewotICAgICAgICAgc2V0IHZhcnMoJHZhcikgJHN2YXJzKCR2YXIpCi0gICAgICB9Ci0KLSAgICAgIGlmIHskdmFycyhjb2RlZ2VuKX0gewotIyAgICAgICAgIGlmIHskdmFycyhtYWtlZmlsZSl9IHsKLSMgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIlxuZXhlYyAvYmluL3RvdWNoICRlbnYoVlBBVEgpL3BhcnRpdGlvblxuIgotIyAgICAgICAgIH0KLSAgICAgICAgIHJldHVybiAkY29tbWFuZHMKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgICBleGVjIC9iaW4vdG91Y2ggJGVudihWUEFUSCkvcGFydGl0aW9uCi0gICAgICB9Ci0gICB9Ci0KLSAgIHByb2MgcnVuX2RlYnVnIHt7Zm9ybWF0IDF9fSB7Ci0KLSAgICAgIGdsb2JhbCB2YXJzCi0gICAgICBnbG9iYWwgZXJyb3JzCi0gICAgICBnbG9iYWwgZW52Ci0KLSAgICAgIHNldCB2YXJzKHN0ZXApIGRlYnVnCi0KLSAgICAgIHNldCBjb21tYW5kcyAiIgotICAgICAgYXBwZW5kIGNvbW1hbmRzICJcbmdsb2JhbCBlbnZcbiIKLQotICAgICAgYXBwZW5kIGNvbW1hbmRzICJpZiB7XFtpbmZvIGV4aXN0cyBlbnYoU1RFUClcXX0ge1xuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzICJbRkZfRURJOjpsb2FkX2Rlc2lnbiBcJGVudihTVEVQKV1cbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyAifVxuIgotCi0jICAgICAgYXBwZW5kIGNvbW1hbmRzICJbRkY6OnNvdXJjZV9wbHVnIGFsd2F5c19zb3VyY2VfdGNsXVxuIgotCi0gICAgICBhcHBlbmQgY29tbWFuZHMgIndpblxuIgotCi0gICAgICBpZiB7JHZhcnMoY29kZWdlbil9IHsKLSAgICAgICAgIHJldHVybiAkY29tbWFuZHMKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgdXBsZXZlbCAjMCBldmFsICRjb21tYW5kcwotICAgICAgfQotCi0gICB9Ci0KLSAgIHByb2MgcnVuX2xlYyB7fSB7Ci0KLSAgICAgIGdsb2JhbCB2YXJzCi0gICAgICBnbG9iYWwgZXJyb3JzCi0gICAgICBnbG9iYWwgZW52Ci0KLSAgICAgIHNldCBjb21tYW5kcyAiIgotCi0gICAgICBhcHBlbmQgY29tbWFuZHMgInZweG1vZGVcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyAic2V0IGRvZmlsZSBhYm9ydCBleGl0XG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgInNldCB1bmRlZmluZWQgY2VsbCBibGFja19ib3ggLW5vYXNjZW5kIC1ib3RoXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgInRjbG1vZGVcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyAiLy8gc2V0dXAgdmFyaWFibGVzIFxuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzICJnbG9iYWwgdmFyc1xuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzICJwcm9jIFB1dHMge2FyZ3N9IHtcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyAiICAgcHV0cyBcJGFyZ3NcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyAifVxuIgotCi0gICAgICBhcHBlbmQgY29tbWFuZCAiLy8gRGVmaW5lIHRoZSBuZXRsaXN0IHRvIGJlIHZlcmlmeVxuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzICJpZiB7XFtpbmZvIGV4aXN0cyBlbnYoU1RFUClcXSAmJiBcW2ZpbGUgZXhpc3RzICR2YXJzKGRic19kaXIpL0xFQy9cJGVudihTVEVQKS52Lmd6XF19IHtcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyAiICAgc2V0IHJldmlzZWROZXRsaXN0ICR2YXJzKGRic19kaXIpL0xFQy9cJGVudihTVEVQKS52Lmd6XG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgIn0gZWxzZSB7XG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgIiAgIFB1dHMgXCI8RkY+IEZhaWxlZCB0byBmaW5kIG5ldGxpc3QgIERCUy9MRUMvXCRlbnYoU1RFUCkudi5nelwiXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgIn1cbiIKLQotICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKHRocmVhZHMpXX0gewotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJ2cHggc2V0IGNvbXBhcmUgb3B0aW9uIC10aHJlYWRzICR2YXJzKHRocmVhZHMpXG4iCi0gICAgICB9Ci0KLSAgICAgIGFwcGVuZCBjb21tYW5kcyAiLy8gcmVhZCBsaWJlcnR5IGNlbGwgZGVmaW5pdGlvbnNcbiIKLSAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkdmFycyhkZWZhdWx0X3NldHVwX3ZpZXcpLGRlbGF5X2Nvcm5lcildfSB7Ci0gICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJHZhcnMoJHZhcnMoZGVmYXVsdF9zZXR1cF92aWV3KSxkZWxheV9jb3JuZXIpLGxpYnJhcnlfc2V0KV19IHsKLSAgICAgICAgICAgIHNldCBzZXQgJHZhcnMoJHZhcnMoJHZhcnMoZGVmYXVsdF9zZXR1cF92aWV3KSxkZWxheV9jb3JuZXIpLGxpYnJhcnlfc2V0KQotICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHJldHVybgotICAgICAgICAgfQotICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHJldHVybgotICAgICAgfQotICAgICAgYXBwZW5kIGNvbW1hbmRzICJ2cHggcmVhZCBsaWJyYXJ5IC1zdGF0ZXRhYmxlIC1ib3RoIC1saWJlcnR5IFxbbGlzdCAkdmFycygkc2V0LHRpbWluZylcXVxuIgotCi0gICAgICBhcHBlbmQgY29tbWFuZHMgIi8vIHJlYWQgcmVmZXJlbmNlIG5ldGxpc3RcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyAidnB4IHJlYWQgZGVzaWduIC12ZXJpbG9nIC1zZW5zaXRpdmUgLWdvbGRlbiAkdmFycyhuZXRsaXN0KVxuIgotCi0gICAgICBhcHBlbmQgY29tbWFuZHMgIi8vIHJlYWQgcG9zdC1pbXBsZW1lbnRhdGlvbiBuZXRsaXN0XG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgInZweCByZWFkIGRlc2lnbiAtdmVyaWxvZyAtc2Vuc2l0aXZlIC1yZXZpc2VkIFwkcmV2aXNlZE5ldGxpc3RcbiIKLQotICAgICAgYXBwZW5kIGNvbW1hbmRzICIvL3NldCB0b3AgbGV2ZWxcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyAidnB4IHNldCByb290IG1vZHVsZSAkdmFycyhkZXNpZ24pIC1ib3RoXG4iCi0KLSAgICAgIHJlZ3N1YiAtYWxsICIjIiBbRkY6OnNvdXJjZV9wbHVnIHByZV9sZWNfdGNsXSAiLy8iIHRlbXAKLSAgICAgIGFwcGVuZCBjb21tYW5kcyAkdGVtcAotCi0gICAgICBhcHBlbmQgY29tbWFuZHMgInZweG1vZGVcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyAicmVwb3J0IGRlc2lnbiBkYXRhXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgInJlcG9ydCBibGFjayBib3hcbiIKLQotICAgICAgYXBwZW5kIGNvbW1hbmRzICJzZXQgbWFwcGluZyBtZXRob2QgLW5hbWUgZmlyc3RcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyAic2V0IGZsYXR0ZW4gbW9kZWwgLXNlcV9jb25zdGFudCAtc2VxX2NvbnN0YW50X3hfdG8gMFxuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzICJzZXQgZmxhdHRlbiBtb2RlbCAtbm9kZmZfdG9fZGxhdF96ZXJvIC1ub2RmZl90b19kbGF0X2ZlZWRiYWNrXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgInNldCBmbGF0dGVuIG1vZGVsIC1nYXRlZF9jbG9ja1xuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzICJzZXQgc3lzdGVtIG1vZGUgbGVjXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgImFkZCBjb21wYXJlIHBvaW50IC1hbGxcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyAiY29tcGFyZSAtZ2F0ZV90b19nYXRlXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgInVzYWdlXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgIi8vICAgdnB4IHJlcG9ydCBjb21wYXJlIGRhdGEiCi0gICAgICBhcHBlbmQgY29tbWFuZHMgInJlcG9ydCBjb21wYXJlIGRhdGEgLWNsYXNzIG5vbmVxdWl2YWxlbnQgLWNsYXNzIGFib3J0IC1jbGFzcyBub3Rjb21wYXJlZFxuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzICJyZXBvcnQgdmVyaWZpY2F0aW9uIC12ZXJib3NlXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgInJlcG9ydCBzdGF0aXN0aWNzXG4iCi0KLSAgICAgIGFwcGVuZCBjb21tYW5kcyAidGNsbW9kZVxuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzICJzZXQgcG9pbnRzX2NvdW50IFxbZ2V0X2NvbXBhcmVfcG9pbnRzIC1jb3VudFxdXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgInNldCBkaWZmX2NvdW50IFxbZ2V0X2NvbXBhcmVfcG9pbnRzIC1kaWZmIC1jb3VudFxdXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgInNldCBhYm9ydF9jb3VudCBcW2dldF9jb21wYXJlX3BvaW50cyAtYWJvcnQgLWNvdW50XF1cbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyAic2V0IHVua25vd25fY291bnQgXFtnZXRfY29tcGFyZV9wb2ludHMgLXVua25vd24gLWNvdW50XF1cbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyAiaWYge1wkcG9pbnRzX2NvdW50ID09IDB9IHtcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyAiICAgIHB1dHMgXCItLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cIlxuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzICIgICAgcHV0cyBcIkVSUk9SOiBObyBjb21wYXJlIHBvaW50cyBkZXRlY3RlZFwiXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgIiAgICBwdXRzIFwiLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXCJcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyAifVxuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzICJpZiB7XCRkaWZmX2NvdW50ID4gMH0ge1xuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzICIgICAgcHV0cyBcIi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVwiXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgIiAgICBwdXRzIFwiRVJST1I6IERpZmZlcmVudCBLZXkgUG9pbnRzIGRldGVjdGVkXCJcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyAiICAgIHB1dHMgXCItLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cIlxuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzICJ9XG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgImlmIHtcJGFib3J0X2NvdW50ID4gMH0ge1xuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzICIgICAgcHV0cyBcIi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXCJcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyAiICAgIHB1dHMgXCJFUlJPUjogQWJvcnQgUG9pbnRzIGRldGVjdGVkIFwiXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgIiAgICBwdXRzIFwiLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cIlxuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzICJ9XG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgImlmIHtcJHVua25vd25fY291bnQgPiAwfSB7XG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgIiAgICBwdXRzIFwiLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVwiXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgIiAgICBwdXRzIFwiRVJST1I6IFVua25vd24gS2V5IFBvaW50cyBkZXRlY3RlZFwiXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgIiAgICBwdXRzIFwiLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVwiXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgIn1cbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyAicHV0cyBcIk5vIG9mIGNvbXBhcmUgcG9pbnRzID0gXCRwb2ludHNfY291bnRcIlxuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzICJwdXRzIFwiTm8gb2YgZGlmZiBwb2ludHMgICAgPSBcJGRpZmZfY291bnRcIlxuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzICJwdXRzIFwiTm8gb2YgYWJvcnQgcG9pbnRzICAgPSBcJGFib3J0X2NvdW50XCJcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyAicHV0cyBcIk5vIG9mIHVua25vd24gcG9pbnRzID0gXCR1bmtub3duX2NvdW50XCJcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyAiZXhpdCAwXG4iCi0KLSAgICAgIGlmIHskdmFycyhjb2RlZ2VuKX0gewotICAgICAgICAgcmV0dXJuICRjb21tYW5kcwotICAgICAgfSBlbHNlIHsKLSAgICAgICAgICB1cGxldmVsICMwIGV2YWwgJGNvbW1hbmRzCi0gICAgICB9Ci0KLSAgIH0KLQotICAgcHJvYyBkdW1wX2NvbmZpZyB7fSB7Ci0KLSAgICAgIGdsb2JhbCB2YXJzCi0gICAgICBnbG9iYWwgdWRtCi0gICAgICBnbG9iYWwgcmRhX0lucHV0Ci0gICAgICBnbG9iYWwgcmRhX2RlZmF1bHRzCi0KLSMgICAgICBzZXQgY29tbWFuZHMgIiIKLSAgICAgIGZpbGUgbWtkaXIgJHZhcnMoc2NyaXB0X2RpcikKLSAgICAgIGlmIHtbaW5mbyBjb21tYW5kIEZGRjo6Z2V0X3Rvb2xdIG5lICIiICYmIFtGRkY6OmdldF90b29sXSBlcSAicmMifSB7Ci0gICAgICAgIHRjbF9zb3VyY2UgJHZhcnMoc2NyaXB0X3BhdGgpL0VUQy9JTk5PVlVTL3VkbS50Y2wKLSAgICAgIH0gZWxzZSB7IAotICAgICAgICBzb3VyY2UgJHZhcnMoc2NyaXB0X3BhdGgpL0VUQy9JTk5PVlVTL3VkbS50Y2wKLSAgICAgIH0KLSAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhjcGZfZmlsZSldfSB7Ci0gICAgICAgICBpZiB7JHZhcnMoY3BmX3RpbWluZyl9IHsKLSAgICAgICAgICAgIHVuc2V0IGluaXQobW1tY19maWxlKQotICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHVuc2V0IGluaXQoY3BmX2ZpbGUpCi0gICAgICAgICB9Ci0gICAgICB9Ci0gICAgICBpZiB7W2xpbmRleCBbc3BsaXQgJHZhcnModmVyc2lvbikgIi4iXSAgMF0gPiAxMH0gewotICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKHZpZXdfZGVmaW5pdGlvbl90Y2wpXX0gewotICAgICAgICAgICAgc2V0IGluaXQobW1tY19maWxlKSAkdmFycyh2aWV3X2RlZmluaXRpb25fdGNsKQotICAgICAgICAgfQotICAgICAgICAgc2V0IG9wIFtvcGVuICR2YXJzKHNjcmlwdF9kaXIpL2luaXQudGNsIHddCi0gICAgICAgICAjIEJDTDogVHJ5aW5nIHRvIGZpeCBlbWJlZGRlZCBwYXRocy4uLgotICAgICAgICAgc2V0IHJlbGF0aXZpemVNZXNnTG9nICIiCi0gICAgICAgICBzZXQgcmVsYXRpdml6ZU1lc2dMb2cgIiRyZWxhdGl2aXplTWVzZ0xvZyBbRkY6OnJlbW92ZV9vdXRlcl9icmFjZXMgW0ZGOjpyZWxhdGl2aXplRmlsZU9yRGlyIC1hcnIgaW5pdCAtdmFyZGlyIGZmX2V4ZV9kaXIgLXJlbGF0aXZlUGF0aHNPa11dIgotCi0gICAgICAgICBmb3JlYWNoIHZhciBbYXJyYXkgbmFtZXMgaW5pdF0gewotICAgICAgICAgICAgaWYge1tmaWxlIGV4aXN0cyAkaW5pdCgkdmFyKV19IHsKLSAgICAgICAgICAgICAgIHNldCBudmFyIFtsaXN0XQotICAgICAgICAgICAgICAgZm9yZWFjaCBmaWxlICRpbml0KCR2YXIpIHsKLSAgICAgICAgICAgICAgICAgIGlmIHshW3JlZ2V4cCAib2FfIiAkdmFyXX0gewotICAgICAgICAgICAgICAgICAgICAgbGFwcGVuZCBudmFyIFtmaWxlIG5vcm1hbGl6ZSAkZmlsZV0KLSAgICAgICAgICAgICAgICAgICAgIHB1dHMgJG9wICJzZXQgaW5pdF8kdmFyIFwiJG52YXJcIiIKLSAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICBwdXRzICRvcCAic2V0IGluaXRfJHZhciBcIiRpbml0KCR2YXIpXCIiCi0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgaWYgeyR2YXJzKG5ldGxpc3RfdHlwZSkgPT0gInZlcmlsb2cifSB7Ci0gICAgICAgICAgICAgICAgICBpZiB7JHZhciA9PSAib2FfZGVzaWduX2xpYiJ9IHsgY29udGludWUgfQotICAgICAgICAgICAgICAgICAgaWYgeyR2YXIgPT0gIm9hX2Rlc2lnbl9jZWxsIn0geyBjb250aW51ZSB9Ci0gICAgICAgICAgICAgICAgICBpZiB7JHZhciA9PSAib2FfZGVzaWduX3ZpZXcifSB7IGNvbnRpbnVlIH0KLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIHB1dHMgJG9wICJzZXQgaW5pdF8kdmFyIFwiJGluaXQoJHZhcilcIiIKLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0KLSMgICAgICAgICBmb3JlYWNoIHZhciBbYXJyYXkgbmFtZXMgbmluaXRdIHsKLSMgICAgICAgICAgICBwdXRzICRucCAic2V0X2RiIGluaXRfJHZhciBcIiRuaW5pdCgkdmFyKVwiIgotIyAgICAgICAgIH0KLSAgICAgICAgIGZvcmVhY2ggdmFyIFthcnJheSBuYW1lcyBjb25mXSB7Ci0gICAgICAgICAgICBwdXRzICRvcCAic2V0IGNvbmZfJHZhciBcIiRjb25mKCR2YXIpXCIiCi0gICAgICAgICB9Ci0gICAgICAgICBmb3JlYWNoIHZhciBbYXJyYXkgbmFtZXMgY3RzXSB7Ci0gICAgICAgICAgICBwdXRzICRvcCAic2V0IGN0c18kdmFyIFwiJGN0cygkdmFyKVwiIgotICAgICAgICAgfQotICAgICAgICAgZm9yZWFjaCB2YXIgW2FycmF5IG5hbWVzIGRlbGF5Y2FsXSB7Ci0gICAgICAgICAgICBwdXRzICRvcCAic2V0IGRlbGF5Y2FsXyR2YXIgXCIkZGVsYXljYWwoJHZhcilcIiIKLSAgICAgICAgIH0KLSAgICAgICAgIGZvcmVhY2ggdmFyIFthcnJheSBuYW1lcyBleHRyYWN0XSB7Ci0gICAgICAgICAgICBwdXRzICRvcCAic2V0IGV4dHJhY3RfJHZhciBcIiRleHRyYWN0KCR2YXIpXCIiCi0gICAgICAgICB9Ci0jICAgICAgICAgZm9yZWFjaCB2YXIgW2FycmF5IG5hbWVzIGZwXSB7Ci0jICAgICAgICAgICAgcHV0cyAkb3AgInNldCBmcF8kdmFyIFx7JGZwKCR2YXIpXH0iCi0jICAgICAgICAgfQotICAgICAgICAgZm9yZWFjaCB2YXIgW2FycmF5IG5hbWVzIG9wdF0gewotICAgICAgICAgICAgcHV0cyAkb3AgInNldCBvcHRfJHZhciBcIiRvcHQoJHZhcilcIiIKLSAgICAgICAgIH0KLSMgICAgICAgICBmb3JlYWNoIHZhciBbYXJyYXkgbmFtZXMgcmRhX0lucHV0XSB7Ci0jICAgICAgICAgICAgcHV0cyAkb3AgInNldCByZGFfSW5wdXQoJHZhcikgXHskcmRhX0lucHV0KCR2YXIpXH0iCi0jICAgICAgICAgfQotIyAgICAgICAgIGZvcmVhY2ggdmFyIFthcnJheSBuYW1lcyByZGFfZGVmYXVsdHNdIHsKLSMgICAgICAgICAgICBwdXRzICRvcCAic2V0IHJkYV9JbnB1dCgkdmFyKSBceyR2YXJzKCR2YXIpXH0iCi0jICAgICAgICAgfQotICAgICAgfSBlbHNlIHsKLSAgICAgICAgIHNldCBvcCBbb3BlbiAkdmFycyhzY3JpcHRfZGlyKS9ydW4uY29uZiB3XQotICAgICAgICAgI0JDTDogQWRkZWQgLmZmLnRjbCBzb3VyY2luZyBpbiBydW4uY29uZiBpbiBvcmRlciB0byBwdWxsIGluIGNvZGVnZW4gdmFyaWFibGVzCi0gICAgICAgICBwdXRzICRvcCAiIyBTZXQgdXAgY29kZWdlbiB2YXJpYWJsZXMgKHBvc3NpYmx5KSBuZWVkZWQgdG8gcmVzb2x2ZSBzb21lIGNvbmYgdmFyaWFibGVzIgotICAgICAgICAgI3B1dHMgJG9wICJpZiB7XFtmaWxlIGV4aXN0cyAuZmYudGNsXF19IHsiCi0gICAgICAgICAjcHV0cyAkb3AgIiAgc291cmNlIC5mZi50Y2wiCi0gICAgICAgICAjcHV0cyAkb3AgIn0iCi0gICAgICAgICAjQkNMOiBPbmx5IGVuY2xvc2UgaW4gY3VybGllcyBpZiBzdWJzdCBpcyBub3QgcGFydCBvZiB0aGUgbmV0bGlzdCBuYW1lCi0gICAgICAgICBmb3JlYWNoIHZhciBbYXJyYXkgbmFtZXMgcmRhX0lucHV0XSB7Ci0gICAgICAgICAgICMgQkNMOiBvbmx5IHVzZSBjdXJsaWVzIGlmIHRoZSB2YXJpYWJsZSBkb2Vzbid0IGNvbnRhaW4gc3Vic3QgKG90aGVyd2lzZSBzdWJzdCB3aWxsIG5vdCBiZSBwZXJmb3JtZWQpCi0gICAgICAgICAgIGlmIHtbcmVnZXhwIHtzdWJzdH0gJHJkYV9JbnB1dCgkdmFyKV19IHsKLSAgICAgICAgICAgICBwdXRzICRvcCAic2V0IHJkYV9JbnB1dCgkdmFyKSBcIiRyZGFfSW5wdXQoJHZhcilcIiIKLSAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICBwdXRzICRvcCAic2V0IHJkYV9JbnB1dCgkdmFyKSBceyRyZGFfSW5wdXQoJHZhcilcfSIKLSAgICAgICAgICAgfQotICAgICAgICAgfQotIyAgICAgICAgIGlmIHskdmFycyhmbGF0KSAhPSAiZnVsbCJ9IHsKLSMgICAgICAgICAgICBwdXRzICRvcCAic2V0IHJkYV9JbnB1dCh1aV92aWV3X2RlZmluaXRpb25fZmlsZSkgXCIkdmFycyhzY3JpcHRfZGlyKS92aWV3X2RlZmluaXRpb24udGNsXCIiCi0jICAgICAgICAgfQotICAgICAgfQotICAgICAgY2xvc2UgJG9wCi0jICAgICAgY2xvc2UgJG5wCi0gICB9Ci0KLSAgIHByb2MgZ2V0X3JlcXVpcmVkX3Byb2NzIHtmaWxlfSB7Ci0gICAgICAjCi0gICAgICAjIEdpdmVuIGEgbGlzdCBvZiByZXF1aXJlZCBwcm9jZWR1cmVzLCByZXR1cm4gdGhlIGxpbmVzIHRoYXQgcmVwcmVzZW50Ci0gICAgICAjIHRob3NlIHByb2NlZHVyZXMgZnJvbSB0aGUgdXRpbHMudGNsIGZpbGUKLSAgICAgICMKLQotICAgICAgZ2xvYmFsIHZhcnMKLSAgICAgIGdsb2JhbCBlcnJvcnMKLQotICAgICAgIwotICAgICAgIyBSZWFkIHRoZSBmaWxlIGFuZCBnYXRoZXIgYWxsIG9mIHRoZSBjb250ZW50cwotICAgICAgIwotCi0gICAgICBzZXQgYWxsX2xpbmVzICIiCi0gICAgICBzZXQgbGVuZ3RoIDAKLSAgICAgIHNldCBpcCBbb3BlbiAkZmlsZV0KLSAgICAgIHdoaWxlIHtbZ2V0cyAkaXAgbGluZV0+PTB9IHsKLSAgICAgICAgIHNldCB1dGlsc19saW5lcygkbGVuZ3RoKSAkbGluZQotICAgICAgICAgaW5jciBsZW5ndGgKLSAgICAgIH0KLSAgICAgIGNsb3NlICRpcAotCi0gICAgICAjCi0gICAgICAjIEl0ZXJhdGUgYWNyb3NzIGVhY2ggbGluZSBhbmQgcHVsbCBvdXQgcmVsZXZhbnQgcHJvY2VkdXJlcwotICAgICAgIwotCi0gICAgICBzZXQgbGluZXMgIiIKLSAgICAgIHNldCBpIDAKLSAgICAgIHdoaWxlIHskaSA8ICRsZW5ndGh9IHsKLSAgICAgICAgIHNldCBsaW5lICR1dGlsc19saW5lcygkaSkKLSAgICAgICAgIGZvcmVhY2ggcHJvYyAkdmFycyhyZXF1aXJlZF9wcm9jcykgewotICAgICAgICAgICAgaWYge1tyZWdleHAgInByb2MgJHByb2MiICRsaW5lXSA+IDB9IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBsaW5lcyAiICRsaW5lXG4iCi0gICAgICAgICAgICAgICBpbmNyIGkKLSAgICAgICAgICAgICAgIHdoaWxlIHskaSA8ICRsZW5ndGh9IHsKLSAgICAgICAgICAgICAgICAgIHNldCBsaW5lICR1dGlsc19saW5lcygkaSkKLSAgICAgICAgICAgICAgICAgIGlmIHtbcmVnZXhwICJwcm9jICIgJGxpbmVdID4gMH0gewotICAgICAgICAgICAgICAgICAgICAgaW5jciBpIC0xCi0gICAgICAgICAgICAgICAgICAgICBicmVhawotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgaWYgeyFbcmVnZXhwICJeIyIgW3N0cmluZyB0cmltbGVmdCAkbGluZV0gXSAmJiAoJGkgIT0gW2V4cHIgJGxlbmd0aC0xXSl9IHsKLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBsaW5lcyAiJGxpbmVcbiIKLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIGluY3IgaQotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgYnJlYWsKLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0KLSAgICAgICAgIGluY3IgaQotICAgICAgfQotCi0gICAgICBzZXQgbGluZXMgW3N0cmluZyB0cmltcmlnaHQgJGxpbmVzXQotICAgICAgcmV0dXJuICIkbGluZXNcbiIKLSAgIH0KLQotICAgcHJvYyBub3JtYWxpemVfZmlsZXMge30gewotCi0gICAgICBnbG9iYWwgdmFycwotICAgICAgZ2xvYmFsIGVycm9ycwotCi0gICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMobm9ybWFsaXplX2ZpbGVzKV0gJiYgISR2YXJzKG5vcm1hbGl6ZV9maWxlcyl9IHsKLSAgICAgICAgIHJldHVybgotICAgICAgfQotCi0gICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnModmlld19kZWZpbml0aW9uX3RjbCldfSB7Ci0gICAgICAgICBzZXQgbW1tY19maWxlIFtmaWxlIG5vcm1hbGl6ZSAkdmFycyh2aWV3X2RlZmluaXRpb25fdGNsKV0KLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgICBzZXQgbW1tY19maWxlIFtmaWxlIG5vcm1hbGl6ZSAkdmFycyhzY3JpcHRfZGlyKS92aWV3X2RlZmluaXRpb24udGNsXQotICAgICAgfQotICAgICAgc2V0IHZhcnMobW1tY19maWxlKSAkbW1tY19maWxlCi0KLSAgICAgIGZvcmVhY2ggZmlsZV92YXIgW2xpc3QgY3BmX2ZpbGUgZGVmX2ZpbGVzIG5ldGxpc3QgY3RzX3NwZWMgbGVmX2ZpbGVzIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICBnZHNfZmlsZXMgYWN0aXZpdHlfZmlsZSBpbG1fbm9uX3NkY19maWxlIF0gewotICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCRmaWxlX3ZhcildfSB7Ci0gICAgICAgICAgICBzZXQgdGVtcCBbbGlzdF0KLSAgICAgICAgICAgIGZvcmVhY2ggZmlsZSAkdmFycygkZmlsZV92YXIpIHsgIAotICAgICAgICAgICAgICAgbGFwcGVuZCB0ZW1wIFtmaWxlIG5vcm1hbGl6ZSAkZmlsZV0KLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHNldCB2YXJzKCRmaWxlX3ZhcikgJHRlbXAKLSAgICAgICAgIH0KLSAgICAgIH0KLSAgIH0KLQotICAgcHJvYyBub3JtYWxpemVfY29uc3RyYWludHMge30gewotCi0gICAgICBnbG9iYWwgdmFycwotCi0gICAgICBzZXQgY3dkIFtwd2RdCi0gICAgICBjZCAkdmFycyhjd2QpCi0KLSAgICAgIGZvcmVhY2ggbW9kZSAkdmFycyhjb25zdHJhaW50X21vZGVzKSB7Ci0gICAgICAgICBmb3JlYWNoIHZhciAicHJlX2N0c19zZGMgcHJlX2N0c19pbG1fc2RjIGluY3JfY3RzX3NkYyBwb3N0X2N0c19zZGMiIHsKLSAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkbW9kZSwkdmFyKV19IHsKLSAgICAgICAgICAgICAgICAgIHNldCB0ZW1wIFtsaXN0XQotICAgICAgICAgICAgICAgZm9yZWFjaCBmaWxlICR2YXJzKCRtb2RlLCR2YXIpIHsKLSAgICAgICAgICAgICAgICAgIGxhcHBlbmQgdGVtcCBbZmlsZSBub3JtYWxpemUgJGZpbGVdCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICBzZXQgdmFycygkbW9kZSwkdmFyKSAkdGVtcAotICAgICAgICAgICAgfQotICAgICAgICAgfQotICAgICAgfQotICAgICAgY2QgJGN3ZAotICAgfQotCi0gICBwcm9jIGRlbm9ybWFsaXplX2ZpbGVzIHt9IHsKLSAgIAotICAgICAgZ2xvYmFsIHZhcnMKLSAgICAgIGdsb2JhbCB0dmFycwotICAgCi0gICAgICBmb3JlYWNoIHZhciBbYXJyYXkgbmFtZXMgdmFyc10gewotICAgICAgICAgaWYgeygkdmFyICE9ICJzZXR1cF9wYXRoIikgJiYgKCR2YXIgIT0gInNjcmlwdF9kaXIiKSAmJiAoJHZhciAhPSAic2NyaXB0X3BhdGgiKSAmJiAoJHZhciA9PSAiZXhlY3V0ZV9zdHJpbmciKX0gewotICAgICAgICAgICAgc2V0IHR2YXJzKCR2YXIpICR2YXJzKCR2YXIpCi0gICAgICAgICB9Ci0gICAgICB9Ci0KLSMgICAgICBzZXQgb3AgW29wZW4gLnNldHVwLmZmLnRjbCB3XQotICAgICAgY2F0Y2gge3Vuc2V0IHBhdGhfYXJyYXl9Ci0gICAgICBzZXQgcGF0aF9saXN0IFtsaXN0XQotICAgICAgc2V0IHBhdGhfdmFycyBbbGlzdF0KLSAgICAgIGZvcmVhY2ggdmFyIFthcnJheSBuYW1lcyB0dmFyc10gewotICAgICAgICAgaWYgW2ZpbGUgaXNkaXJlY3RvcnkgJHR2YXJzKCR2YXIpXSB7Ci0gICAgICAgICAgICBzZXQgcGF0aF9hcnJheSgkdHZhcnMoJHZhcikpICR2YXIKLSAgICAgICAgICAgIGxhcHBlbmQgcGF0aF92YXJzICR2YXIKLSAgICAgICAgICAgIGxhcHBlbmQgcGF0aF9saXN0ICR0dmFycygkdmFyKSAgCi0gICAgICAgICB9Ci0gICAgICB9Ci0gICAgICAKLSAgICAgIHNldCBzb3J0ZWRfcGF0aF9saXN0IFtsc29ydCAtZGVjcmVhc2luZyAkcGF0aF9saXN0XQotIyAgICAgIHB1dHMgIi0+IEZvdW5kIFtsbGVuZ3RoICRzb3J0ZWRfcGF0aF9saXN0XSIKLSAgICAgIGZvcmVhY2ggcGF0aCAkc29ydGVkX3BhdGhfbGlzdCB7Ci0jICAgICAgICAgcHV0cyAiJHBhdGggLT4gJHBhdGhfYXJyYXkoJHBhdGgpIChbc3RyaW5nIGxlbmd0aCAkcGF0aF0pIgotIyAgICAgICAgIHB1dHMgJG9wICJzZXQgdmFycygkcGF0aF9hcnJheSgkcGF0aCkpICRwYXRoIgotICAgICAgfQotICAgICAgCi0gICAgICBmb3JlYWNoIHZhciBbYXJyYXkgbmFtZXMgdHZhcnNdIHsKLSAgICAgICAgIHNldCBmb3VuZCAwCi0gICAgICAgICBmb3JlYWNoIHBhdGggJHNvcnRlZF9wYXRoX2xpc3QgewotICAgICAgICAgICAgIGlmIHsoJHZhciA9PSAkcGF0aF9hcnJheSgkcGF0aCkpIHx8IChbc3RyaW5nIGZpcnN0ICJcWyIgICR2YXJdICE9IC0xKX0gewotICAgICAgICAgICAgICAgIGJyZWFrCi0gICAgICAgICAgICAgfQotICAgICAgIyAgICAgIHB1dHMgJG9wICJbZm9ybWF0ICJyZWdzdWIgLWFsbCBcIiVzXCIgXCIlc1wiIFxcJCVzIiAkcGF0aCBbam9pbiAkdHZhcnMoJHZhcildICRwYXRoX2FycmF5KCRwYXRoKSB0ZW1wXSIKLSAgICAgICAgICAgIGlmIHtbY2F0Y2gge3NldCBjb21tYW5kIFtmb3JtYXQgInJlZ3N1YiAtYWxsIFwiJXNcIiBcIiVzXCIgXFxcJHZhcnMoJXMpIHRlbXAiICRwYXRoIFtqb2luICR0dmFycygkdmFyKV0gJHBhdGhfYXJyYXkoJHBhdGgpXX1dfSB7Ci0gICAgICAgICAgICAgICBicmVhawotICAgICAgICAgICAgfQotICAgICAgICAgICAgc2V0IGZvbyBbZXZhbCAkY29tbWFuZF0KLSAgICAgICAgICAgIGlmIHskZm9vID4gMH0gewotIyAgICAgICAgICAgICAgIHB1dHMgJG9wICJzZXQgdmFycygkdmFyKSBcIltqb2luICR0ZW1wXVwiIgotICAgICAgICAgICAgICAgaWYge1tsbGVuZ3RoICR0ZW1wXSA+IDF9IHsKLSAgICAgICAgICAgICAgICAgIHNldCB2YXJzKCR2YXIpIFtqb2luICR0ZW1wXQotICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgIHNldCB2YXJzKCR2YXIpICR0ZW1wCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICBzZXQgZm91bmQgMQotICAgICAgICAgICAgfQotICAgICAgICAgfQotIyAgICAgICAgIGlmIHshJGZvdW5kfSB7Ci0jICAgICAgICAgICAgcHV0cyAkb3AgInNldCB2YXJzKCR2YXIpIFwiW2pvaW4gJHZhcnMoJHZhcildXCIiCi0jICAgICAgICAgfQotICAgICAgfQotIyAgICAgIGZvcmVhY2ggcGF0aCAkc29ydGVkX3BhdGhfbGlzdCB7Ci0jICAgICAgICAgc2V0IHZhcnMoJHBhdGhfYXJyYXkoJHBhdGgpKSAkcGF0aAotIyAgICAgIH0KLSMgICAgICBjbG9zZSAkb3AKLSMgICAgICBzb3VyY2UgLnNldHVwLmZmLnRjbCAKLSAgIH0KLQotICAgcHJvYyBzb3VyY2VfY29uZmlnX2ZpbGVzIHt9IHsKLQotICAgICAgZ2xvYmFsIHZhcnMKLSAgICAgIGdsb2JhbCBlbnYKLSAgICAgIGdsb2JhbCB1c2VyX3ZhcnMKLSAgICAgIGdsb2JhbCBkZXNjCi0gICAgICBnbG9iYWwgZXJyb3JzCi0KLSAgICAgIHB1dHMgIjxGRj4gTE9BRElORyBDT05GSUdVUkFUSU9OIEZJTEVTOiIKLSAgICAgIHNldCB2YXJzKGNvbmZpZ19maWxlcykgW2xpc3RdCi0gICAgICBmb3JlYWNoIGZpbGUgInNldHVwLnRjbCBpbm5vdnVzX2NvbmZpZy50Y2wgbHBfY29uZmlnLnRjbCBnZW51c19jb25maWcudGNsIiB7Ci0gICAgICAgICBzZXQgdGVtcCBbcmVnc3ViICJcXC4iICRmaWxlICJfIl0KLSAgICAgICAgIHNldCB2YXJzKCR0ZW1wKSBbbGlzdF0gCi0gICAgICAgICBpZiB7W2ZpbGUgZXhpc3RzICR2YXJzKHNldHVwX3BhdGgpLyRmaWxlXX0gewotICAgICAgICAgICAgRkY6OnNvdXJjZV9maWxlICR2YXJzKHNldHVwX3BhdGgpLyRmaWxlCi0gICAgICAgICAgICBsYXBwZW5kIHZhcnMoJHRlbXApICR2YXJzKHNldHVwX3BhdGgpLyRmaWxlCi0gICAgICAgICAgICBsYXBwZW5kIHZhcnMoY29uZmlnX2ZpbGVzKSAkdmFycyhzZXR1cF9wYXRoKS8kZmlsZQotICAgICAgICAgfQotICAgICAgICAgaWYgeygkdmFycyhzZXR1cF9wYXRoKSAhPSAiLiIpICYmIFtmaWxlIGV4aXN0cyAkZmlsZV19IHsKLSAgICAgICAgICAgIEZGOjpzb3VyY2VfZmlsZSAkZmlsZQotICAgICAgICAgICAgbGFwcGVuZCB2YXJzKCR0ZW1wKSAkZmlsZQotICAgICAgICAgICAgbGFwcGVuZCB2YXJzKGNvbmZpZ19maWxlcykgJGZpbGUKLSAgICAgICAgIH0KLSAgICAgICAgIGlmIHskdmFycygkdGVtcCkgIT0gIiJ9IHsKLSAgICAgICAgICAgIHB1dHMgIjxGRj4gICAgJHRlbXAgLT4gJHZhcnMoJHRlbXApIgotICAgICAgICAgfQotICAgICAgfQotCi0gICAgICBmb3JlYWNoIHZhciBbYXJyYXkgbmFtZXMgdmFyc10gewotICAgICAgICAgc2V0IHVzZXJfdmFycygkdmFyKSAkdmFycygkdmFyKQotIyAgICAgICAgIHB1dHMgJHZhcgotICAgICAgfQotCi0gICAgICBpZiB7W0ZGOjppc19scF9mbG93XX0gewotICAgICAgICAgc2V0IHZhcnMocmVxdWlyZWRfcHJvY3MpIFwKLSAgICAgICAgICAgICJzb3VyY2VfZmlsZSBzeXN0ZW1faW5mbyBnZXRfY2xvY2tfcG9ydHMgZ2V0X3Bvd2VyX2RvbWFpbnMgbW9kaWZ5X3Bvd2VyX2RvbWFpbnMgYWRkX3Bvd2VyX3N3aXRjaGVzIFwKLSAgICAgICAgICAgICByb3V0ZV9zZWNvbmRhcnlfcGdfbmV0cyBpbnNlcnRfd2VsbHRhcHNfZW5kY2FwcyByZXBvcnRfdGltZSBidWZmZXJfYWx3YXlzX29uX25ldHMgXAotICAgICAgICAgICAgIHNhdmVfcmVzdWx0cyBsb2FkX2FwcGxldCBnZXRfdG9vbCBsb2FkX3BhdGhfZ3JvdXBzIgotICAgICAgfSBlbHNlIHsKLSAgICAgICAgIHNldCB2YXJzKHJlcXVpcmVkX3Byb2NzKSBcCi0gICAgICAgICAgICAic291cmNlX2ZpbGUgc3lzdGVtX2luZm8gZ2V0X2Nsb2NrX3BvcnRzIHJlcG9ydF90aW1lIGluc2VydF93ZWxsdGFwc19lbmRjYXBzIFwKLSAgICAgICAgICAgICBzYXZlX3Jlc3VsdHMgbG9hZF9hcHBsZXQgZ2V0X3Rvb2wgbG9hZF9wYXRoX2dyb3VwcyAiCi0gICAgICB9Ci0gICB9Ci0KLSAgIHByb2MgZXhlY3V0ZV9mbG93IHtzdGVwIHtmb3JtYXQgMX0ge2Fib3J0ICIifX0gewotCi0gICAgICAjCi0gICAgICAjIFRoaXMgaXMgdGhlIGVudHJ5IHBvaW50LCByZXNwb25zaWJsZSBmb3IgY2FsbGluZyBmdW5jdGlvbnMgYW5kCi0gICAgICAjIGFnZ3JlZ2F0aW5nIHJlc3VsdHMgZm9yIGVhY2ggc3RlcCBpbiB0aGUgZmxvdwotICAgICAgIwotICAgICAgZ2xvYmFsIHZhcnMKLSAgICAgIGdsb2JhbCBkYXJncwotICAgICAgZ2xvYmFsIGZhcmdzCi0gICAgICBnbG9iYWwgc3ZhcnMKLSAgICAgIGdsb2JhbCBlbnYKLSAgICAgIGdsb2JhbCBlcnJvcnMKLQotICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycyhzb3VyY2VkKV19IHsgc2V0IHZhcnMoc291cmNlZCkgMCB9Ci0jICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycyhzaW5nbGUpXX0geyBzZXQgdmFycyhzaW5nbGUpIDAgfQotICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycyhjYXRjaF9lcnJvcnMpXX0geyBzZXQgdmFycyhjYXRjaF9lcnJvcnMpIDAgfQotICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycyhzdG9wX3N0ZXApXX0geyBzZXQgdmFycyhzdG9wX3N0ZXApICJzaWdub2ZmIiB9Ci0gICAgICBpZiB7IVtpbmZvIGV4aXN0cyB2YXJzKGluaXRpYWxpemVkKV19IHsgc2V0IHZhcnMoaW5pdGlhbGl6ZWQpIDAgfQotICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycyhsb2FkZWQpXX0geyBzZXQgdmFycyhsb2FkZWQpIDAgfQotICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycyhic3RlcHMpXX0geyBzZXQgdmFycyhic3RlcHMpIFtsaXN0XSB9Ci0gICAgICBpZiB7IVtpbmZvIGV4aXN0cyBlbnYoVlBBVEgpXX0geyBzZXQgZW52KFZQQVRIKSBtYWtlIH0KLQotICAgICAgIwotICAgICAgIyBJZiBubyBzdGVwcyBhcmUgZGVmaW5lZCwgc2V0IHRoZSBzdGVwcyB0byBleGVjdXRlIGJhc2VkIHVwb24gdGhlCi0gICAgICAjIG1vZGUgdGhhdCB0aGUgc3lzdGVtIGlzIHJ1bm5pbmcgaW4uICBXZSBuZWVkIHRvIGRvIHRoaXMgYmVjYXVzZSB0aGUKLSAgICAgICMgaGllcmFyY2hpY2FsIGZsb3cgd2lsbCB1bnNldCB0aGUgdmFycygpIGFycmF5IGJlZm9yZSByZWN1cnNpdmVseQotICAgICAgIyBjYWxsaW5nIHRoaXMgcm91dGluZS4KLSAgICAgICMKLQotICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycyhzdGVwcyldfSB7Ci0gICAgICAgICAjIEJDTDogTW92ZWQgdGhlIGZvbGxvd2luZyBpZiAvIGVsc2UgdXAgKGl0IG11c3QgYWx3YXlzIGV4ZWN1dGUpCi0gICAgICAgICBpZiB7IVtpbmZvIGV4aXN0cyB2YXJzKG1vZGUpXX0geyAKLSAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgZmFyZ3MobW9kZSldfSB7Ci0gICAgICAgICAgICAgICBzZXQgdmFycyhtb2RlKSAkZmFyZ3MobW9kZSkKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBzZXQgdmFycyhtb2RlKSAkZGFyZ3MobW9kZSkKLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0KLSMgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoaGllcildICYmICEkdmFycyhoaWVyKX0gewotIyAgICAgICAgICAgIEZGOjpzZXRfc3RlcHMgJHZhcnMobW9kZSkgJGZvcm1hdAotIyAgICAgICAgICAgIHVuc2V0IHZhcnMobW9kZSkKLSMgICAgICAgICB9IGVsc2UgewotIyAgICAgICAgICAgIEZGOjpzZXRfc3RlcHMgJHZhcnMobW9kZSkgJGZvcm1hdAotIyAgICAgICAgIH0KLSAgICAgIH0KLQotICAgICAgIwotICAgICAgIyBTZXQgdGhlIHByb2NlZHVyZXMgdGhhdCB3ZSB3aWxsIG5lZWQgdG8gaW5jbHVkZSB3aXRoaW4gZWFjaCBmaWxlIHRoYXQKLSAgICAgICMgd2UgY3JlYXRlIHRvIHJ1biBhIHN0ZXAuCi0gICAgICAjCi0KLSMgICAgICBzZXQgdmFycyhyZXF1aXJlZF9wcm9jcykgXAotIyAgICAgICAgICJzb3VyY2VfcGx1ZyBnZXRfY2xvY2tfcG9ydHMgZ2V0X3Bvd2VyX2RvbWFpbnMgcmVwb3J0X3RpbWUiCi0KLSAgICAgICMKLSAgICAgICMgTWFrZSBzdXJlIHRoYXQgdGhlIHZhcmlhYmxlcyBhcmUgYWN0dWFsbHkgc291cmNlZCBmcm9tIHRoZQotICAgICAgIyBjb25maWd1cmF0aW9uIGZpbGVzCi0gICAgICAjCi0KLSAgICAgIGlmIHshJHZhcnMoc291cmNlZCkgJiYgKCRzdGVwICE9ICJzb3VyY2UiKX0gewotICAgICAgICAgZXhlY3V0ZV9mbG93ICJzb3VyY2UiICRmb3JtYXQgJGFib3J0Ci0gICAgICB9Ci0KLSAgICAgIGlmIHskdmFycyhzb3VyY2VkKX0geyAKLSAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhoaWVyKV0gJiYgISR2YXJzKGhpZXIpfSB7Ci0gICAgICAgICAgICBGRjo6c2V0X3N0ZXBzICR2YXJzKG1vZGUpICRmb3JtYXQKLSAgICAgICAgICAgIHVuc2V0IHZhcnMobW9kZSkKLSAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBGRjo6c2V0X3N0ZXBzICR2YXJzKG1vZGUpICRmb3JtYXQKLSAgICAgICAgIH0KLSAgICAgIH0KLSAgICAgICMKLSAgICAgICMgRXhlY3V0ZSB0aGUgYXBwcm9wcmlhdGUgc3RlcCBwZXIgdGhlIGNvbW1hbmQKLSAgICAgICMKLQotICAgICAgc2V0IGFjdGlvbiAiIgotICAgICAgc3dpdGNoIC0tICRzdGVwIHsKLSAgICAgICAgICJzb3VyY2UiIHsKLSAgICAgICAgICAgIGlmIHshJHZhcnMoc291cmNlZCl9IHsKLSAgICAgICAgICAgICAgIEZGX0VESTo6c291cmNlX2NvbmZpZ19maWxlcwotICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyBmYXJncyh2ZXJzaW9uKV19IHsKLSAgICAgICAgICAgICAgICAgIGlmIHshW3JlZ2V4cCAiXjEwIiAkZmFyZ3ModmVyc2lvbildICYmICFbcmVnZXhwICJeOSIgJGZhcmdzKHZlcnNpb24pXX0gewotICAgICAgICAgICAgICAgICAgICAgRkZfRURJOjpkZW5vcm1hbGl6ZV9maWxlcwotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgfSBlbHNlaWYge1tpbmZvIGV4aXN0cyBkYXJncyh2ZXJzaW9uKV19IHsKLSAgICAgICAgICAgICAgICAgIGlmIHshW3JlZ2V4cCAiXjEwIiAkZGFyZ3ModmVyc2lvbildICYmICFbcmVnZXhwICJeOSIgJGRhcmdzKHZlcnNpb24pXX0gewotICAgICAgICAgICAgICAgICAgICAgRkZfRURJOjpkZW5vcm1hbGl6ZV9maWxlcwotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgZm9yZWFjaCBhcmcgW2pvaW4gJHZhcnMoYXJnX2xpc3QpXSB7Ci0gICAgICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJGFyZyldfSB7Ci0gICAgICAgICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIGZhcmdzKCRhcmcpXX0gewotICAgICAgICAgICAgICAgICAgICAgICAgaWYgeyR2YXJzKCRhcmcpICE9ICRmYXJncygkYXJnKX0gewotICAgICAgICAgICAgICAgICAgICAgICAgICAgcHV0cyAiPEZGPiBXQVJOSU5HOiBPdmVyd3JpdGluZyB2YXJzKCRhcmcpIGZyb20gJHZhcnMoJGFyZykgdG8gJGZhcmdzKCRhcmcpIC4uLiIKLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgIHNldCB2YXJzKCRhcmcpICRmYXJncygkYXJnKQotICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICMgT25seSBzZXQgdGhlIGZhcmcgaWYgaXQgd2Fzbid0IHNldCBpbiBhIGNvbmZpZyBmaWxlCi0gICAgICAgICAgICAgICAgICAgICAgICBpZiB7IVtpbmZvIGV4aXN0cyB2YXJzKCRhcmcpXX0gewotICAgICAgICAgICAgICAgICAgICAgICAgICBzZXQgdmFycygkYXJnKSAkZGFyZ3MoJGFyZykKLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIGZhcmdzKCRhcmcpXX0gewotICAgICAgICAgICAgICAgICAgICAgICAgc2V0IHZhcnMoJGFyZykgJGZhcmdzKCRhcmcpCi0gICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICAgc2V0IHZhcnMoJGFyZykgJGRhcmdzKCRhcmcpCi0gICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICB9IAotICAgICAgICAgICAgICAgfSAKLSAgICAgICAgICAgICAgIEZGX0VESTo6c2VlZF92YXJpYWJsZXMKLSMgICAgICAgICAgICAgICBGRl9FREk6OmNoZWNrX3NldHVwCi0jICAgICAgICAgICAgICAgRkZfRURJOjpub3JtYWxpemVfZmlsZXMgCi0gICAgICAgICAgICAgICBzZXQgdmFycyhzb3VyY2VkKSB0cnVlCi0gICAgICAgICAgICAgICBzZXQgdmFycyh0b3BfY2VsbCkgJHZhcnMoZGVzaWduKQotICAgICAgICAgICAgfQotICAgICAgICAgfQotICAgICAgICAgInNvdXJjZV9vbmx5IiB7Ci0gICAgICAgICAgICAjIEJDTDogQWRkZWQgdGhpcyBpbiBzaW5jZSBpIHdhbnQgdG8gc291cmNlIHRoZSB2YXJpYWJsZXMgdy9vdXQgY2FsbGluZyBjaGVja19zZXR1cAotICAgICAgICAgICAgaWYgeyEkdmFycyhzb3VyY2VkKX0gewotICAgICAgICAgICAgICAgRkZfRURJOjpzb3VyY2VfY29uZmlnX2ZpbGVzCi0gICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIGZhcmdzKHZlcnNpb24pXX0gewotICAgICAgICAgICAgICAgICAgaWYgeyFbcmVnZXhwICJeMTAiICRmYXJncyh2ZXJzaW9uKV0gJiYgIVtyZWdleHAgIl45IiAkZmFyZ3ModmVyc2lvbildfSB7Ci0gICAgICAgICAgICAgICAgICAgICBGRl9FREk6OmRlbm9ybWFsaXplX2ZpbGVzCi0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICB9IGVsc2VpZiB7W2luZm8gZXhpc3RzIGRhcmdzKHZlcnNpb24pXX0gewotICAgICAgICAgICAgICAgICAgaWYgeyFbcmVnZXhwICJeMTAiICRkYXJncyh2ZXJzaW9uKV0gJiYgIVtyZWdleHAgIl45IiAkZGFyZ3ModmVyc2lvbildfSB7Ci0gICAgICAgICAgICAgICAgICAgICBGRl9FREk6OmRlbm9ybWFsaXplX2ZpbGVzCi0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICBmb3JlYWNoIGFyZyBbam9pbiAkdmFycyhhcmdfbGlzdCldIHsKLSAgICAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkYXJnKV19IHsKLSAgICAgICAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgZmFyZ3MoJGFyZyldfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiB7JHZhcnMoJGFyZykgIT0gJGZhcmdzKCRhcmcpfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICBwdXRzICI8RkY+IFdBUk5JTkc6IE92ZXJ3cml0aW5nIHZhcnMoJGFyZykgZnJvbSAkdmFycygkYXJnKSB0byAkZmFyZ3MoJGFyZykgLi4uIgotICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgc2V0IHZhcnMoJGFyZykgJGZhcmdzKCRhcmcpCi0gICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICAgIyBPbmx5IHNldCB0aGUgZmFyZyBpZiBpdCB3YXNuJ3Qgc2V0IGluIGEgY29uZmlnIGZpbGUKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIHshW2luZm8gZXhpc3RzIHZhcnMoJGFyZyldfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgIHNldCB2YXJzKCRhcmcpICRkYXJncygkYXJnKQotICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgZmFyZ3MoJGFyZyldfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBzZXQgdmFycygkYXJnKSAkZmFyZ3MoJGFyZykKLSAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBzZXQgdmFycygkYXJnKSAkZGFyZ3MoJGFyZykKLSAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIH0gCi0gICAgICAgICAgICAgICB9IAotICAgICAgICAgICAgICAgRkZfRURJOjpzZWVkX3ZhcmlhYmxlcwotIyAgICAgICAgICAgICAgIEZGX0VESTo6Y2hlY2tfc2V0dXAKLSMgICAgICAgICAgICAgICBGRl9FREk6Om5vcm1hbGl6ZV9maWxlcyAKLSMgICAgICAgICAgICAgICBzZXQgdmFycyhzb3VyY2VkKSB0cnVlCi0gICAgICAgICAgICAgICBzZXQgdmFycyh0b3BfY2VsbCkgJHZhcnMoZGVzaWduKQotICAgICAgICAgICAgfQotICAgICAgICAgfQotICAgICAgICAgImNoZWNrIiB7Ci0gICAgICAgICAgICBpZiB7JGFib3J0ID09ICIifSB7Ci0gICAgICAgICAgICAgICBzZXQgYWJvcnQgJHZhcnMoYWJvcnQpCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBzZXQgc2F2ZSAkdmFycyhhYm9ydCkKLSAgICAgICAgICAgIHNldCB2YXJzKGFib3J0KSAkYWJvcnQKLSAgICAgICAgICAgIHNldCB2YXJzKGFib3J0KSAkc2F2ZQotICAgICAgICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycyhtb2RlKV19IHsKLSAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgZmFyZ3MobW9kZSldfSB7Ci0gICAgICAgICAgICAgICAgICBzZXQgdmFycyhtb2RlKSAkZmFyZ3MobW9kZSkKLSAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICBzZXQgdmFycyhtb2RlKSAkZGFyZ3MobW9kZSkKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIHskdmFycyhtb2RlKSA9PSAiaGllciJ9IHsKLSAgICAgICAgICAgICAgIGlmIHshW2luZm8gZXhpc3RzIHZhcnMocGFydGl0aW9uX2xpc3QpXX0gewotICAgICAgICAgICAgICAgICAgcHV0cyAiPEZGPiBGTE9XIE1PREUgJHZhcnMobW9kZSkgU0VMRUNURUQgQlVUIFwkdmFycyhwYXJ0aXRpb25fbGlzdCkgTk9UIERFRklORUQiCi0gICAgICAgICAgICAgICAgICBleGl0IDk5Ci0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICBpZiB7W2ZpbGUgdGFpbCBbZmlsZSBkaXJuYW1lIFtwd2RdXV0gIT0gIiR2YXJzKHBhcnRpdGlvbl9kaXIpIn0gewotICAgICAgICAgICAgICAgICAgRkZfRURJOjpjaGVja19zZXR1cAotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgIEZGX0VESTo6Y2hlY2tfc2V0dXAKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgRkY6OnByb2Nlc3NfZmlsZV9saXN0cwotICAgICAgICAgfQotCi0gICAgICAgICAiYWxsIiB7Ci0KLSAgICAgICAgICAgICMKLSAgICAgICAgICAgICMgV2UgaGF2ZSBhbHJlYWR5IHNvdXJjZWQgaW4gYWxsIG9mIHRoZSBmaWxlcy4gIE5vdyBleGVjdXRlIHRoZQotICAgICAgICAgICAgIyByZXN0IG9mIHRoZSBzdGVwcywgaW5jbHVkaW5nIGNoZWNrCi0gICAgICAgICAgICAjCi0KLSAgICAgICAgICAgIHB1dHMgIi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iCi0gICAgICAgICAgICBwdXRzICI8RkY+IEdlbmVyYXRpbmcgc2NyaXB0cyBmb3IgJHZhcnMoZGVzaWduKSIKLSAgICAgICAgICAgIHB1dHMgIi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iCi0gICAgICAgICAgICBleGVjdXRlX2Zsb3cgY2hlY2sgJGZvcm1hdCAkYWJvcnQKLSAgICAgICAgICAgICMgQkNMOiBjaGFuZ2VkIHRvIGZpbGUgbWtkaXIKLSAgICAgICAgICAgIGZpbGUgbWtkaXIgJHZhcnMoc2NyaXB0X2RpcikvSU5OT1ZVUwotCi0gICAgICAgICAgICBzZXQgdmFycyhzdGVwcykgW2pvaW4gJHZhcnMoc3RlcHMpXQotICAgICAgICAgICAgc2V0IHZhcnMoYWxsKSB0cnVlCi0gICAgICAgICAgICBzZXQgY29tbWFuZHMgIiIKLSAgICAgICAgICAgIHNldCB0b3AgMAotCi0gICAgICAgICAgICBpZiB7JHZhcnMobW9kZSkgPT0gImhpZXIifSB7Ci0gICAgICAgICAgICAgICBpZiB7W2ZpbGUgdGFpbCBbZmlsZSBkaXJuYW1lIFtwd2RdXV0gPT0gIiR2YXJzKHBhcnRpdGlvbl9kaXIpIn0gewotICAgICAgICAgICAgICAgICAgc2V0IGFsbF9zdGVwcyAkdmFycyhmc3RlcHMpCi0gICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgc2V0IGFsbF9zdGVwcyAkdmFycyhoc3RlcHMpCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgc2V0IGZociBbb3BlbiAkdmFycyhzY3JpcHRfcGF0aCkvSU5OT1ZVUy9ydW5fYWxsLnRjbCByXSAKLSAgICAgICAgICAgICAgIHNldCBmaHcgW29wZW4gJHZhcnMoc2NyaXB0X2RpcikvSU5OT1ZVUy9ydW5fYWxsLnRjbCB3XSAKLSAgICAgICAgICAgICAgIHdoaWxlIHtbZ2V0cyAkZmhyIGxpbmVdPj0wfSB7Ci0gICAgICAgICAgICAgICAgICByZWdzdWIgInNvdXJjZSBGRiIgJGxpbmUgInNvdXJjZSAkdmFycyhzY3JpcHRfZGlyKSIgbGluZQotICAgICAgICAgICAgICAgICAgcHV0cyAkZmh3ICIgICAkbGluZSIKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIGNsb3NlICRmaHIKLSAgICAgICAgICAgICAgIGNsb3NlICRmaHcKLSAgICAgICAgICAgICAgIHNldCBhbGxfc3RlcHMgJHZhcnMoc3RlcHMpCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICAjCi0gICAgICAgICAgICAjIEV4ZWN1dGUgZWFjaCBzdGVwIG9mIHRoZSBmbG93IGFuZCBnZXQgYSBjb21wb3NpdGUgbGlzdCBvZiB0aGUKLSAgICAgICAgICAgICMgYWN0dWFsIHN0ZXBzIHRoYXQgaGFkIGFjdGlvbnMgZ2VuZXJhdGVkIGZvciB0aGVtLiAgVGhlbiBjcmVhdGUKLSAgICAgICAgICAgICMgYSBNYWtlZmlsZSBmb3IgdGhvc2Ugc3RlcHMKLSAgICAgICAgICAgICMKLSAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhyY19zdGVwcyldfSB7Ci0gICAgICAgICAgICAgICBzZXQgYWN0aW9ucyAkdmFycyhyY19zdGVwcykKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgIHNldCBhY3Rpb25zIFtsaXN0XQotICAgICAgICAgICAgfQotICAgICAgICAgICAgIyAKLQotICAgICAgICAgICAgZm9yZWFjaCBzdGVwICRhbGxfc3RlcHMgewotICAgICAgICAgICAgICAgc2V0IGNvbW1hbmRzIFtleGVjdXRlX2Zsb3cgJHN0ZXAgJGZvcm1hdCAkYWJvcnRdCi0gICAgICAgICAgICAgICBpZiB7JGNvbW1hbmRzICE9ICIifSB7Ci0gICAgICAgICAgICAgICAgICAgbGFwcGVuZCBhY3Rpb25zICRjb21tYW5kcwotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBpZiB7KCR2YXJzKHVzZXJfbW9kZSkgPT0gImhpZXIiKSAmJiAoJHZhcnMoaGllcl9mbG93X3R5cGUpID09ICIycGFzcyIpfSB7Ci0gICAgICAgICAgICAgICAjIE9ubHkgZ2VuZXJhdGUgc3RlcHMgdXAgdG8gKGFuZCBpbmNsdWRpbmcpIGN0cyBmb3IgMnBhc3MgZmxvd3MKLSAgICAgICAgICAgICAgICMgR28gYWhlYWQgYW5kIGdlbmVyYXRlIGJvdGggTWFrZWZpbGVzIGFzIHRoZSBhY3Rpb25zIGFyZSBrbm93bgotICAgICAgICAgICAgICAgaWYgeyR2YXJzKGVuYWJsZV9mbGV4aWxtKX0gewotICAgICAgICAgICAgICAgICAgaWYgeyR2YXJzKHBsYWNlX29wdF9kZXNpZ24pfSB7Ci0jICAgICAgICAgICAgICAgICAgICAgaWYge1tmaWxlIHRhaWwgW3B3ZF1dID09ICR2YXJzKHRvcF9jZWxsKX0gewotIyAgICAgICAgICAgICAgICAgICAgICAgIHNldCBpbmRleCBbbHNlYXJjaCAkYWN0aW9ucyAicHJlY3RzIl0KLSMgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICAgc2V0IGluZGV4IFtsc2VhcmNoICRhY3Rpb25zICJwbGFjZSJdCi0jICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgIHNldCBpbmRleCBbbHNlYXJjaCAkYWN0aW9ucyAicHJlY3RzIl0KLSAgICAgICAgICAgICAgICAgIH0KLSNwdXRzICIxOiAkYWN0aW9ucyA6IFtscmFuZ2UgJGFjdGlvbnMgW2V4cHIgJGluZGV4KzFdIGVuZF0gKFtwd2RdKSIKLSAgICAgICAgICAgICAgICAgIEZGOjpnZW5fbWFrZWZpbGUgW2xyYW5nZSAkYWN0aW9ucyBbZXhwciAkaW5kZXgrMV0gZW5kXSAkdmFycyhtb2RlKQotICAgICAgICAgICAgICAgICAgZmlsZSBjb3B5IC1mb3JjZSBNYWtlZmlsZSBNYWtlZmlsZS5wYXNzMgotICAgICAgICAgICAgICAgICAgaWYge1tsbGVuZ3RoIFtscmFuZ2UgJGFjdGlvbnMgMCAkaW5kZXhdXSAhPSAwfSB7IAotI3B1dHMgIjI6ICRhY3Rpb25zIDogW2xyYW5nZSAkYWN0aW9ucyAwICRpbmRleF0gKFtwd2RdKSIKLSAgICAgICAgICAgICAgICAgICAgIEZGOjpnZW5fbWFrZWZpbGUgW2xyYW5nZSAkYWN0aW9ucyAwICRpbmRleF0gJHZhcnMobW9kZSkKLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICBzZXQgaW5kZXggW2xzZWFyY2ggJGFjdGlvbnMgImN0cyJdCi0jcHV0cyAiMzogJGFjdGlvbnMgOiBbbHJhbmdlICRhY3Rpb25zIFtleHByICRpbmRleCsxXSBlbmRdIChbcHdkXSkiCi0gICAgICAgICAgICAgICAgICBGRjo6Z2VuX21ha2VmaWxlIFtscmFuZ2UgJGFjdGlvbnMgW2V4cHIgJGluZGV4KzFdIGVuZF0gJHZhcnMobW9kZSkKLSAgICAgICAgICAgICAgICAgIGlmIHskdmFycyhtb2RlKSAhPSAiaGllciJ9IHsgCi0gICAgICAgICAgICAgICAgICAgICBmaWxlIGNvcHkgLWZvcmNlIE1ha2VmaWxlIE1ha2VmaWxlLnBhc3MyCi0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICBpZiB7W2xsZW5ndGggW2xyYW5nZSAkYWN0aW9ucyAwICRpbmRleF1dICE9IDB9IHsgCi0jcHV0cyAiNDogJGFjdGlvbnMgOiBbbHJhbmdlICRhY3Rpb25zIDAgJGluZGV4XSAoW3B3ZF0pIgotICAgICAgICAgICAgICAgICAgICAgRkY6Omdlbl9tYWtlZmlsZSBbbHJhbmdlICRhY3Rpb25zIDAgJGluZGV4XSAkdmFycyhtb2RlKQotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfSBlbHNlIHsKLSNwdXRzICI1OiAkYWN0aW9ucyAoW3B3ZF0pIgotICAgICAgICAgICAgICAgRkY6Omdlbl9tYWtlZmlsZSAkYWN0aW9ucyAkdmFycyhtb2RlKQotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBpZiB7JHZhcnMoZW5hYmxlX3Fvcl9jaGVjayl9IHsgCi0gICAgICAgICAgICAgICBGRl9FREk6Omdlbl9jaGVjawotICAgICAgICAgICAgfQotICAgICAgICAgICAgZXhlY3V0ZV9mbG93IGRlYnVnICRmb3JtYXQgJGFib3J0Ci0gICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMocnVuX2xlYyldICYmICR2YXJzKHJ1bl9sZWMpfSB7Ci0gICAgICAgICAgICAgICBleGVjdXRlX2Zsb3cgbGVjICRmb3JtYXQgJGFib3J0Ci0gICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0gICAgICAgICAibGVjIiB7Ci0jICAgICAgICAgICAgcHV0cyAiLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIKLSMgICAgICAgICAgICBwdXRzICI8RkY+IEdlbmVyYXRpbmcgc2NyaXB0cyBmb3IgJHZhcnMoZGVzaWduKSIKLSAgICAgICAgICAgIHB1dHMgIi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iCi0gICAgICAgICAgICBpZiB7IVtpbmZvIGV4aXN0cyB2YXJzKG5ldGxpc3QpXX0gewotICAgICAgICAgICAgICAgcHV0cyAiPEZGPiBDYW5ub3QgZ2VuZXJhdGUgJ2xlYycgc3RlcCB3L28gdmVyaWxvZyBuZXRsaXN0IGRlZmluZWQiCi0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgIyBCQ0w6IENoYW5nZWQgdG8gdGNsIGZpbGUgbWtkaXIKLSAgICAgICAgICAgICAgIGZpbGUgbWtkaXIgJHZhcnMoc2NyaXB0X2RpcikvSU5OT1ZVUwotICAgICAgICAgICAgICAgc2V0IG9wIFtvcGVuICR2YXJzKHNjcmlwdF9kaXIpL0lOTk9WVVMvcnVuX2xlYy50Y2wgd10KLSAgICAgICAgICAgICAgIHB1dHMgJG9wICIvLyIKLSAgICAgICAgICAgICAgIHB1dHMgJG9wICIvLyBJbm5vdnVzIEZvdW5kYXRpb24gRmxvdyBDb2RlIEdlbmVyYXRvciwgW2V4ZWMgZGF0ZV0iCi0gICAgICAgICAgICAgICBwdXRzICRvcCAiLy8iCi0gICAgICAgICAgICAgICBpZiB7JHN0ZXAgPT0gImxlYyJ9IHsKLSAgICAgICAgICAgICAgICAgIHB1dHMgJG9wICJ0Y2xtb2RlIgotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgI3B1dHMgJG9wICJpZiB7XFtmaWxlIGV4aXN0cyAuZmYudGNsXF19IHsiCi0gICAgICAgICAgICAgICAjcHV0cyAkb3AgIiAgIHNvdXJjZSAuZmYudGNsIgotICAgICAgICAgICAgICAgI3B1dHMgJG9wICJ9IgotICAgICAgICAgICAgICAgc2V0IHZhcnNGaWxlIFtGRjo6cmVsUGF0aFRvIFtmaWxlIG5vcm1hbGl6ZSAkdmFycyhzY3JpcHRfZGlyKS92YXJzLnRjbF0gW2ZpbGUgbm9ybWFsaXplICR2YXJzKHJ1bmRpcildXQotICAgICAgICAgICAgICAgcHV0cyAkb3AgImlmIHtcW2ZpbGUgZXhpc3RzICR2YXJzRmlsZVxdfSB7IgotICAgICAgICAgICAgICAgcHV0cyAkb3AgIiAgIHNvdXJjZSAkdmFyc0ZpbGUiCi0gICAgICAgICAgICAgICBwdXRzICRvcCAifSIKLSMgICAgICAgICAgICAgICBwdXRzICRvcCAic291cmNlIFwkdmFycyhzY3JpcHRfZGlyKS9wcm9jcy50Y2wiCi0gICAgICAgICAgICAgICBpZiB7IVtyZWdleHAgc3luXyAkc3RlcF19IHsKLSAgICAgICAgICAgICAgICAgICBwdXRzICRvcCAic291cmNlICR2YXJzKHNjcmlwdF9kaXIpL3Byb2NzLnRjbCIKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIHB1dHMgICI8RkY+IEdlbmVyYXRpbmcgc3RlcCAkc3RlcCIKLSAgICAgICAgICAgICAgIHNldCBjb21tYW5kcyBbRkZfRURJOjpydW5fbGVjXQotICAgICAgICAgICAgICAgcHV0cyAkb3AgW0ZGOjpwcmV0dHlfcHJpbnQgJGNvbW1hbmRzICRmb3JtYXRdCi0gICAgICAgICAgICAgICBjbG9zZSAkb3AKLSAgICAgICAgICAgIH0KLSMgICAgICAgICAgICBGRjo6Z2VuX21ha2VmaWxlIGxlYyAkdmFycyhtb2RlKQotICAgICAgICAgfQotICAgICAgICAgImRlZmF1bHQiIHsKLQotICAgICAgICAgICAgIwotICAgICAgICAgICAgIyBSdW4gZWFjaCBzdGVwIGVpdGhlciBzaW5ndWFybHkgb3IgcmVjdXJzaXZlbHkKLSAgICAgICAgICAgICMKLSAgICAgICAgICAgICMKLSAgICAgICAgICAgICMgQ3JlYXRlIHRoZSBsaXN0IG9mIGNvbW1hbmRzIHRoYXQgaGFwcGVuIGF0IHRoZSBiZWdpbmluZyBvZgotICAgICAgICAgICAgIyBlYWNoIHNjcmlwdAotICAgICAgICAgICAgIwotCi0gICAgICAgICAgICBpZiB7KFtsc2VhcmNoICR2YXJzKHN0ZXBzKSAkc3RlcF0gPT0gLTEpICYmICgkc3RlcCAhPSAiZGVidWciKX0gewotICAgICAgICAgICAgICAgcHV0cyAgIjxGRj4gRVJST1I6IFVua25vd24gRm91bmRhdGlvbiBGbG93IHN0ZXAgXCIkc3RlcFwiLiIKLSAgICAgICAgICAgICAgIGV4aXQgOTkKLSAgICAgICAgICAgIH0KLQotIyAgICAgICAgICAgIGlmIHsoW2xzZWFyY2ggJHZhcnMoc3RlcHMpICRzdGVwXSA9PSAtMSkgJiYgKCRzdGVwICE9ICJkZWJ1ZyIpfSB7Ci0jICAgICAgICAgICAgICAgcHV0cyAgIjxGRj4gRVJST1I6IFVua25vd24gRm91bmRhdGlvbiBGbG93IHN0ZXAgXCIkc3RlcFwiLiIKLSMgICAgICAgICAgICAgICBleGl0IDk5Ci0jICAgICAgICAgICAgfSBlbHNlIHsKLSMgICAgICAgICAgICAgICBpZiB7KCR2YXJzKGZpeF9ob2xkKSB8fCAoISR2YXJzKGZpeF9ob2xkKSAmJiAhW3JlZ2V4cCAiX2hvbGQiICRzdGVwXSkpICYmCi0jICAgICAgICAgICAgICAgICAgICEoJHZhcnMoc2tpcF9jdHMpICYmICgoJHN0ZXAgPT0gImN0cyIpIHx8IFtyZWdleHAgInBvc3RjdHMiICRzdGVwXSkpfSB7Ci0jICAgICAgICAgICAgICAgICAgcHV0cyAgIjxGRj4gR2VuZXJhdGluZyBzdGVwICRzdGVwIgotIyAgICAgICAgICAgICAgIH0KLSMgICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgICMKLSAgICAgICAgICAgICMgV2UgbmVlZCB0byBlbnN1cmUgdGhhdCB3ZSBjaGVjayB0aGUgdmFyaWFibGUgY29udGVudHMgYW5kCi0gICAgICAgICAgICAjIGluaXRpYWxpemUgdGhlIGZsb3cgYXQgbGVhc3Qgb25jZSBpbiBhIGdpdmVuIHJ1biwgbm8gbWF0dGVyCi0gICAgICAgICAgICAjIHdoYXQgc3RlcCB0aGUgdXNlciB3YW50cyB0byBleGVjdXRlCi0gICAgICAgICAgICAjCi0KLSMgICAgICAgICAgICBzZXQgaGVhZGVyICJcbiNcbiMgQ29tbWFuZHMgZm9yICRzdGVwXG4jXG5cbiIKLQotICAgICAgICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycyhhbGwpXX0gewotICAgICAgICAgICAgICAgZXhlY3V0ZV9mbG93IGNoZWNrICRmb3JtYXQgJGFib3J0Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICAjIEJDTDogQ2hhbmdlZCB0byB0Y2wgZmlsZSBta2RpcgotICAgICAgICAgICAgZmlsZSBta2RpciAkdmFycyhzY3JpcHRfZGlyKS9JTk5PVlVTCi0gICAgICAgICAgICBzZXQgY29tbWFuZHMgIiIKLSMgICAgICAgICAgICBzZXQgY29tbWFuZHMgInBvc3QtMTAuMTAtYjAwOVxuIgotICAgICAgICAgICAgaWYgeyEkdmFycyhpbml0aWFsaXplZCl9IHsKLSAgICAgICAgICAgICAgIHNldCB2YXJzKHN0ZXApICRzdGVwCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGX0VESTo6aW5pdGlhbGl6ZV9mbG93XQotIyAgICAgICAgICAgICAgIHVuc2V0IHZhcnMoc3RlcCkKLSAgICAgICAgICAgICAgIHNldCB2YXJzKGluaXRfY29tbWFuZHMpICRjb21tYW5kcwotICAgICAgICAgICAgICAgc2V0IHZhcnMoaW5pdGlhbGl6ZWQpIDEKLSAgICAgICAgICAgICAgIGlmIHshW2luZm8gZXhpc3RzIHZhcnMod2FybmluZ19jb3VudCldfSB7Ci0gICAgICAgICAgICAgICAgICBzZXQgdmFycyh3YXJuaW5nX2NvdW50KSAwCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICBpZiB7IVtpbmZvIGV4aXN0cyB2YXJzKGVycm9yX2NvdW50KV19IHsKLSAgICAgICAgICAgICAgICAgIHNldCB2YXJzKGVycm9yX2NvdW50KSAwCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgICMKLSAgICAgICAgICAgICMgR2V0IHRoZSBjb21tYW5kcyB0byBleGVjdXRlIHRoZSBzdGVwLiAgV2UgYWxzbyBuZWVkIHRvIGdldCB0aGUKLSAgICAgICAgICAgICMgY29tbWFuZHMgdG8gbG9hZCB0aGUgZGF0YWJhc2UgZm9yIHRoYXQgc3RlcCwgYXNzdW1pbmcgdGhhdCBhCi0gICAgICAgICAgICAjIGRhdGFiYXNlIGV4aXN0cyBmcm9tIGEgcHJpb3Igc3RlcC4gIFRob3NlIGxvYWQgY29tbWFuZHMgYXJlCi0gICAgICAgICAgICAjIHByZXBlbmRlZCB0byB0aGUgZXhlY3V0aW9uIGNvbW1hbmRzLiAgU2F2ZSBjb21tYW5kcyBhcmUKLSAgICAgICAgICAgICMgYXBwZW5kZWQKLSAgICAgICAgICAgICMKLQotICAgICAgICAgICAgaWYge1tpbmZvIGNvbW1hbmRzIDo6RkZfRURJOjpydW5fJHN0ZXBdIG5lICIifSAgewotICAgICAgICAgICAgICAgc2V0IHRlbXBfY29tbWFuZHMgW0ZGX0VESTo6cnVuXyRzdGVwICRmb3JtYXRdCi0gICAgICAgICAgICAgICBpZiB7JHRlbXBfY29tbWFuZHMgPT0gIiJ9IHsKLSAgICAgICAgICAgICAgICAgIHJldHVybiAiIgotICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgIGlmIHskdmFycyhzdGVwKSAhPSAiaW5pdCJ9IHsKLSAgICAgICAgICAgICAgICAgICAgIHNldCBzdGVwX2NvbW1hbmRzICJcbiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4iCi0gICAgICAgICAgICAgICAgICAgICBpZiB7JHZhcnMocmVwb3J0X3J1bl90aW1lKX0gewotICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIHN0ZXBfY29tbWFuZHMgInNldCB2YXJzKHN0ZXApICR7c3RlcH1cbiIKLSAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBzdGVwX2NvbW1hbmRzICJzZXQgdmFycygke3N0ZXB9LHN0YXJ0X3RpbWUpIFxbY2xvY2sgc2Vjb25kc1xdXG4iCi0gICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICBpZiB7JHZhcnMoY2FwdHVyZV9tZXRyaWNzKX0gewotICAgICAgICAgICAgICAgICAgICAgICAgaWYge1tsaW5kZXggW3NwbGl0ICR2YXJzKHZlcnNpb24pICIuIl0gIDBdID4gMTN9IHsKLSMgICAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBzdGVwX2NvbW1hbmRzICJ1bTo6ZW5hYmxlX21ldHJpY3MgLW9uXG4iCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAjIEdHNwotIyAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIHshW2luZm8gZXhpc3RzIHZhcnMocHVzaGVkKV0gfHwgKFtpbmZvIGV4aXN0cyB2YXJzKHB1c2hlZCldICYmICEkdmFycyhwdXNoZWQpKSB9IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBzdGVwX2NvbW1hbmRzICJ1bTo6cHVzaF9zbmFwc2hvdF9zdGFja1xuIgotIyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldCB2YXJzKHB1c2hlZCkgdHJ1ZQotIyAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gCi0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICBhcHBlbmQgc3RlcF9jb21tYW5kcyAiIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuIgotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgYXBwZW5kIHN0ZXBfY29tbWFuZHMgJHRlbXBfY29tbWFuZHMKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBzdGVwX2NvbW1hbmRzICIjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4iCi0gICAgICAgICAgICAgICAgICBwdXRzICAiPEZGPiBHZW5lcmF0aW5nIHN0ZXAgJHN0ZXAiCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9IGVsc2VpZiB7W2luZm8gZXhpc3RzIHZhcnMoY3VzdG9tX3N0ZXBfZGlyKV19IHsKLSAgICAgICAgICAgICAgIGlmIHtbZmlsZSBpc2ZpbGUgJHZhcnMoY3VzdG9tX3N0ZXBfZGlyKS9ydW5fJHtzdGVwfS50Y2xdfSB7Ci0gICAgICAgICAgICAgICAgICBwdXRzICAiPEZGPiBHZW5lcmF0aW5nIHN0ZXAgJHN0ZXAiCi0gICAgICAgICAgICAgICAgICBzZXQgZmhyIFtvcGVuICR2YXJzKGN1c3RvbV9zdGVwX2RpcikvcnVuXyRzdGVwLnRjbCByXQotICAgICAgICAgICAgICAgICAgc2V0IHN0ZXBfY29tbWFuZHMgIlxuIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiIKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBzdGVwX2NvbW1hbmRzICIjIFNvdXJjaW5nIGN1c3RvbSBzY3JpcHQgLi4uXG4iCi0gICAgICAgICAgICAgICAgICBhcHBlbmQgc3RlcF9jb21tYW5kcyAiIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiIKLSAgICAgICAgICAgICAgICAgIGlmIHskdmFycyhyZXBvcnRfcnVuX3RpbWUpICYmICgkc3RlcCAhPSAiaW5pdCIpfSB7Ci0gICAgICAgICAgICAgICAgICAgICBhcHBlbmQgc3RlcF9jb21tYW5kcyAic2V0IHZhcnMoc3RlcCkgJHtzdGVwfVxuIgotICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIHN0ZXBfY29tbWFuZHMgInNldCB2YXJzKCR7c3RlcH0sc3RhcnRfdGltZSkgXFtjbG9jayBzZWNvbmRzXF1cbiIKLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIGlmIHskdmFycyhjYXB0dXJlX21ldHJpY3MpICYmICgkdmFycyhzdGVwKSAhPSAiaW5pdCIpfSB7Ci0gICAgICAgICAgICAgICAgICAgICBpZiB7W2xpbmRleCBbc3BsaXQgJHZhcnModmVyc2lvbikgIi4iXSAgMF0gPiAxM30gewotICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIHN0ZXBfY29tbWFuZHMgInVtOjplbmFibGVfbWV0cmljIC1vblxuIgotICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIHN0ZXBfY29tbWFuZHMgInVtOjpwdXNoX3NuYXBzaG90X3N0YWNrXG4iCi0gICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgc3RlcF9jb21tYW5kcyAiIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuIgotICAgICAgICAgICAgICAgICAgd2hpbGUge1tnZXRzICRmaHIgbGluZV0+PTB9IHsKLSAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgc3RlcF9jb21tYW5kcyAiJGxpbmVcbiIKLSAgICAgICAgICAgICAgICAgIH0KLSMgICAgICAgICAgICAgICAgICBhcHBlbmQgc3RlcF9jb21tYW5kcyAic291cmNlICR2YXJzKGN1c3RvbV9zdGVwX2RpcikvcnVuXyRzdGVwLnRjbFxuIgotICAgICAgICAgICAgICAgICAgYXBwZW5kIHN0ZXBfY29tbWFuZHMgIiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiIKLSAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICBwdXRzICI8RkY+IEVSUk9SOiBVbmFibGUgdG8gZ2VuZXJhdGUgc3RlcCAkc3RlcCIKLSAgICAgICAgICAgICAgICAgIHNldCBlcnJvcnMoJHZhcnMoZXJyb3JfY291bnQpKSAiVW5hYmxlIHRvIGdlbmVyYXRlIHN0ZXAgJHN0ZXAgLSBwcm9jZWR1cmUgJ3J1bl8kc3RlcCcgbXVzdCBiZSBkZWZpbmVkIG9yIGEgXCR2YXJzKGN1c3RvbV9zdGVwX2RpcikvcnVuXyRzdGVwLnRjbCBmaWxlIG11c3QgYmUgcHJvdmlkZWQiCi0gICAgICAgICAgICAgICAgICBpbmNyIHZhcnMoZXJyb3JfY291bnQpCi0gICAgICAgICAgICAgICAgICByZXR1cm4gIiIKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBwdXRzICI8RkY+IEVSUk9SOiBVbmFibGUgdG8gZ2VuZXJhdGUgc3RlcCAkc3RlcCIKLSAgICAgICAgICAgICAgICAgIHNldCBlcnJvcnMoJHZhcnMoZXJyb3JfY291bnQpKSAiVW5hYmxlIHRvIGdlbmVyYXRlIHN0ZXAgJHN0ZXAgLSBwcm9jZWR1cmUgJ3J1bl8kc3RlcCcgbXVzdCBiZSBkZWZpbmVkIG9yIGEgXCR2YXJzKGN1c3RvbV9zdGVwX2RpcikvcnVuXyRzdGVwLnRjbCBmaWxlIG11c3QgYmUgcHJvdmlkZWQiCi0gICAgICAgICAgICAgICBpbmNyIHZhcnMoZXJyb3JfY291bnQpCi0gICAgICAgICAgICAgICByZXR1cm4gIiIKLSAgICAgICAgICAgIH0KLSMgICAgICAgICAgICBzZXQgdGhpc19pbmRleCBbbHNlYXJjaCAkdmFycyhzdGVwcykgJHN0ZXBdCi0jICAgICAgICAgICAgc2V0IHByaW9yIFtsaW5kZXggJHZhcnMoc3RlcHMpIFtleHByICR0aGlzX2luZGV4IC0gMV1dCi0jIyAgICAgICAgICAgIGlmIHshJHZhcnMoZml4X2hvbGQpICYmIFtyZWdleHAgX2hvbGQgJHByaW9yXX0gewotIyMgICAgICAgICAgICAgICBzZXQgcHJpb3IgW2xpbmRleCAkdmFycyhzdGVwcykgW2V4cHIgJHRoaXNfaW5kZXggLSAyXV0KLSMjICAgICAgICAgICAgICAgaWYge1tyZWdleHAgX2hvbGQgJHByaW9yXX0gewotIyMgICAgICAgICAgICAgICAgICBzZXQgcHJpb3IgW2xpbmRleCAkdmFycyhzdGVwcykgW2V4cHIgJHRoaXNfaW5kZXggLSAzXV0KLSMjICAgICAgICAgICAgICAgfQotIyMgICAgICAgICAgICB9Ci0jICAgICAgICAgICAgaWYge1tyZWdleHAgX2hvbGQgJHByaW9yXSAmJiAoW2xzZWFyY2ggJHZhcnMoZml4X2hvbGQpIFtyZWdzdWIgX2hvbGQgJHByaW9yICIiXV08MCl9IHsKLSMgICAgICAgICAgICAgICBzZXQgcHJpb3IgW2xpbmRleCAkdmFycyhzdGVwcykgW2V4cHIgJHRoaXNfaW5kZXggLSAyXV0KLSMgICAgICAgICAgICAgICBpZiB7W3JlZ2V4cCBfaG9sZCAkcHJpb3JdICYmIChbbHNlYXJjaCAkdmFycyhmaXhfaG9sZCkgW3JlZ3N1YiBfaG9sZCAkcHJpb3IgIiJdXTwwKX0gewotIyAgICAgICAgICAgICAgICAgIHNldCBwcmlvciBbbGluZGV4ICR2YXJzKHN0ZXBzKSBbZXhwciAkdGhpc19pbmRleCAtIDNdXQotIyAgICAgICAgICAgICAgIH0KLSMgICAgICAgICAgICB9Ci0jICAgICAgICAgICAgaWYgeygkc3RlcCA9PSAiY3RzIikgJiYgJHZhcnMocGxhY2Vfb3B0X2Rlc2lnbil9IHsKLSMgICAgICAgICAgICAgICBzZXQgcHJpb3IgInBsYWNlIgotIyAgICAgICAgICAgIH0KLSMgICAgICAgICAgICBpZiB7KCRzdGVwID09ICJyb3V0ZSIpICYmICR2YXJzKHNraXBfY3RzKX0gewotIyAgICAgICAgICAgICAgIHNldCBwcmlvciAicHJlY3RzIgotIyAgICAgICAgICAgIH0KLSMjICAgICAgICAgICAgaWYgeygkc3RlcCA9PSAicm91dGUiKSAmJiBbcmVnZXhwICJeY2NvcHQiIFtzdHJpbmcgdG9sb3dlciAkdmFycyhjdHNfZW5naW5lKV1dfSB7Ci0jIyAgICAgICAgICAgICAgIHNldCBwcmlvciAiY3RzIgotIyMgICAgICAgICAgICB9Ci0jICAgICAgICAgICAgaWYge1tyZWdleHAgIl5jY29wdCIgW3N0cmluZyB0b2xvd2VyICR2YXJzKGN0c19lbmdpbmUpXV19IHsKLSMgICAgICAgICAgICAgICBpZiB7KFtzdHJpbmcgdG9sb3dlciAkdmFycyhmaXhfaG9sZCldICE9ICJmYWxzZSIpfSB7Ci0jICAgICAgICAgICAgICAgICAgaWYgeygkc3RlcCA9PSAicG9zdGN0c19ob2xkIikgJiYgW2xzZWFyY2ggJHZhcnMoZml4X2hvbGQpICRzdGVwXX0gewotIyAgICAgICAgICAgICAgICAgICAgIHNldCBwcmlvciBjdHMKLSMgICAgICAgICAgICAgICAgICB9IGVsc2UgewotIyAgICAgICAgICAgICAgICAgICAgIGlmIHsoJHN0ZXAgPT0gInJvdXRlIil9IHsKLSMgICAgICAgICAgICAgICAgICAgICAgICBzZXQgcHJpb3IgY3RzCi0jICAgICAgICAgICAgICAgICAgICAgfQotIyAgICAgICAgICAgICAgICAgIH0KLSMgICAgICAgICAgICAgICB9IGVsc2UgewotIyAgICAgICAgICAgICAgICAgIGlmIHsoJHN0ZXAgPT0gInJvdXRlIil9IHsKLSMgICAgICAgICAgICAgICAgICAgICBzZXQgcHJpb3IgY3RzCi0jICAgICAgICAgICAgICAgICAgfQotIyAgICAgICAgICAgICAgIH0KLSMgICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIHNldCB0aGlzX2luZGV4IFtsc2VhcmNoIFtGRjo6YWRqdXN0X3N0ZXBzXSAkc3RlcF0KLSAgICAgICAgICAgIHNldCBwcmlvciBbbGluZGV4IFtGRjo6YWRqdXN0X3N0ZXBzXSBbZXhwciAkdGhpc19pbmRleCAtIDFdXQotICAgICAgICAgICAgc2V0IG5vX2RiX3N0ZXBzIFtsaXN0ICJpbml0IiAicmVidWRnZXQiICJmbGV4aWxtIiAiYXNzZW1ibGUiICJhc3NlbWJsZV9mbGV4aWxtIiAiZGVidWciXQotICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKHVzZV9mbGV4bW9kZWxzKV0gJiYgJHZhcnModXNlX2ZsZXhtb2RlbHMpfSB7Ci0gICAgICAgICAgICAgICBsYXBwZW5kIG5vX2RiX3N0ZXBzICJtb2RlbF9nZW4iCi0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgbGFwcGVuZCBub19kYl9zdGVwcyAiZmVlZHRocm91Z2giCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiB7KFtsc2VhcmNoICRub19kYl9zdGVwcyAkc3RlcF0gPT0gLTEpICYmICgkcHJpb3IgIT0gIiIpfSB7Ci0gICAgICAgICAgICAgICBzZXQgbG9hZF9jb21tYW5kcyBbRkZfRURJOjpsb2FkX2Rlc2lnbiAkcHJpb3IgJHN0ZXBdCi0jICAgICAgICAgICAgICAgc2V0IHJlc3RvcmVfY29tbWFuZHMgW2xpbmRleCBbRkZfRURJOjpsb2FkX2Rlc2lnbiAkZm9ybWF0ICRwcmlvcl0gMV0KLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBzZXQgbG9hZF9jb21tYW5kcyAiIgotIyAgICAgICAgICAgICAgIHNldCByZXN0b3JlX2NvbW1hbmRzICIiCi0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGlmIHshJHZhcnMobG9hZGVkKX0gewotICAgICAgICAgICAgICAgc2V0IHZhcnMobG9hZGVkKSAxCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgJGxvYWRfY29tbWFuZHMKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgIyBtb2RlbF9nZW4gc2F2ZXMgaXRzIGRhdGFiYXNlIGV4cGxpY2l0bHkKLSMgICAgICAgICAgICBzZXQgbm9fc2F2ZV9zdGVwcyBbbGlzdCAiZGVidWciICJtb2RlbF9nZW4iXQotICAgICAgICAgICAgc2V0IG5vX3NhdmVfc3RlcHMgW2xpc3QgImRlYnVnIl0KLSAgICAgICAgICAgIGlmIHtbbHNlYXJjaCAkbm9fc2F2ZV9zdGVwcyAkc3RlcF0gPT0gLTF9IHsKLSAgICAgICAgICAgICAgIHNldCBzYXZlX2NvbW1hbmRzIFtGRl9FREk6OnNhdmVfcmVzdWx0cyAkc3RlcCAkZm9ybWF0XQotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIHNldCBzYXZlX2NvbW1hbmRzICIiCi0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgICMKLSAgICAgICAgICAgICMgV3JpdGUgdGhlIGNvbW1hbmRzIHRvIGEgZmlsZSwgbmFtZWQgZm9yIHRoZSBzdGVwIHdlIGFyZQotICAgICAgICAgICAgIyBleGVjdXRpbmcKLSAgICAgICAgICAgICMKLQotICAgICAgICAgICAgaWYge1tyZWdleHAgIl5zeW4iICRzdGVwXX0gewotICAgICAgICAgICAgICAgZmlsZSBta2RpciAkdmFycyhzY3JpcHRfZGlyKS9HRU5VUwotICAgICAgICAgICAgICAgc2V0IG9wIFtvcGVuICR2YXJzKHNjcmlwdF9kaXIpL0dFTlVTL3J1bl8ke3N0ZXB9LnRjbCB3XQotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIHNldCBvcCBbb3BlbiAkdmFycyhzY3JpcHRfZGlyKS9JTk5PVlVTL3J1bl8ke3N0ZXB9LnRjbCB3XQotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBpZiB7JHZhcnMoZGVidWcpfSB7Ci0jICAgICAgICAgICAgICAgcHV0cyAiPERFQlVHPiBPcGVuaW5nIGZpbGU6ICR2YXJzKHNjcmlwdF9kaXIpL0lOTk9WVVMvcnVuXyR7c3RlcH0udGNsIGluIFtleGVjIHB3ZF0gLT4gJG9wIgotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBwdXRzICRvcCBbc3RyaW5nIHJlcGVhdCAiIyIgNjhdCi0gICAgICAgICAgICBwdXRzICRvcCAiIyBJbm5vdnVzIEZvdW5kYXRpb24gRmxvdyBDb2RlIEdlbmVyYXRvciwgW2V4ZWMgZGF0ZV0iCi0gICAgICAgICAgICBwdXRzICRvcCAiIyBWZXJzaW9uIDogMTcuMTAtcDAwM18xIgotICAgICAgICAgICAgcHV0cyAkb3AgW3N0cmluZyByZXBlYXQgIiMiIDY4XQotCi0gICAgICAgICAgICBpZiB7W2ZpbGUgdGFpbCBbZmlsZSBkaXJuYW1lIFtwd2RdXV0gIT0gIiR2YXJzKHBhcnRpdGlvbl9kaXIpIn0gewotICAgICAgICAgICAgICAgc2V0IHZhcnNGaWxlIFtGRjo6cmVsUGF0aFRvIFtmaWxlIG5vcm1hbGl6ZSAkdmFycyhzY3JpcHRfZGlyKS92YXJzLnRjbF0gW2ZpbGUgbm9ybWFsaXplICR2YXJzKHJ1bmRpcildXQotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIHNldCB2YXJzRmlsZSAkdmFycyhzY3JpcHRfZGlyKS92YXJzLnRjbAotICAgICAgICAgICAgfQotICAgICAgICAgICAgcHV0cyAkb3AgIlxuaWYge1xbZmlsZSBleGlzdHMgJHZhcnNGaWxlXF19IHsiCi0gICAgICAgICAgICBwdXRzICRvcCAiICAgc291cmNlICR2YXJzRmlsZSIKLSAgICAgICAgICAgIHB1dHMgJG9wICJ9IgotICAgICAgICAgICAgI3B1dHMgJG9wICJpZiB7XFtmaWxlIGV4aXN0cyBcJHZhcnMoc2NyaXB0X2RpcikvdmFycy50Y2xcXX0geyIKLSAgICAgICAgICAgICNwdXRzICRvcCAiICAgc291cmNlIFwkdmFycyhzY3JpcHRfZGlyKS92YXJzLnRjbCIKLSAgICAgICAgICAgICNwdXRzICRvcCAifVxuIgotICAgICAgICAgICAgaWYgeyEkdmFycyhmcmVlemVfdmFycyl9IHsKLSAgICAgICAgICAgICAgIGlmIHsoW2ZpbGUgdGFpbCBbZmlsZSBkaXJuYW1lIFtwd2RdXV0gIT0gIiR2YXJzKHBhcnRpdGlvbl9kaXIpIikgJiYgIVtyZWdleHAgc3luXyAkc3RlcF19IHsKLSAgICAgICAgICAgICAgICAgIHB1dHMgJG9wICJmb3JlYWNoIGZpbGUgXCR2YXJzKGNvbmZpZ19maWxlcykgeyIKLSAgICAgICAgICAgICAgICAgIHB1dHMgJG9wICIgICBzb3VyY2UgXCRmaWxlIgotICAgICAgICAgICAgICAgICAgcHV0cyAkb3AgIn1cbiIKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSMgICAgICAgICAgICBwdXRzICRvcCAic291cmNlIFwkdmFycyhzY3JpcHRfZGlyKS9wcm9jcy50Y2wiCi0gICAgICAgICAgICBwdXRzICRvcCAic291cmNlICR2YXJzKHNjcmlwdF9kaXIpL3Byb2NzLnRjbCIKLSAgICAgICAgICAgIGlmIHshJGZvcm1hdH0gewotICAgICAgICAgICAgICAgcHV0cyAkb3AgJGhlYWRlcgotICAgICAgICAgICAgfQotICAgICAgICAgICAgcmVnc3ViIC1hbGwgImluaXQsIiAkdmFycyhpbml0X2NvbW1hbmRzKSAiJHN0ZXAsIiBjb21tYW5kcwotICAgICAgICAgICAgc2V0IG9mIFtvcGVuICR2YXJzKHNjcmlwdF9kaXIpL0lOTk9WVVMvLmhlYWQgd10KLSAgICAgICAgICAgIHB1dHMgJG9mIFtGRjo6cHJldHR5X3ByaW50ICR2YXJzKGluaXRfY29tbWFuZHMpICRmb3JtYXRdCi0gICAgICAgICAgICBjbG9zZSAkb2YgCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgJGxvYWRfY29tbWFuZHMgJHN0ZXBfY29tbWFuZHMgJHNhdmVfY29tbWFuZHMKLSAgICAgICAgICAgIGxhcHBlbmQgdmFycyhic3RlcHMpICRzdGVwCi0gICAgICAgICAgICBzZXQgb2YgW29wZW4gJHZhcnMoc2NyaXB0X2RpcikvSU5OT1ZVUy8ubG9hZF8kc3RlcCB3XQotIyAgICAgICAgICAgIHB1dHMgJG9mIFtGRjo6cHJldHR5X3ByaW50ICRyZXN0b3JlX2NvbW1hbmRzICRmb3JtYXRdCi0gICAgICAgICAgICBwdXRzICRvZiBbRkY6OnByZXR0eV9wcmludCAkbG9hZF9jb21tYW5kcyAkZm9ybWF0XQotICAgICAgICAgICAgY2xvc2UgJG9mCi0gICAgICAgICAgICBzZXQgb2YgW29wZW4gJHZhcnMoc2NyaXB0X2RpcikvSU5OT1ZVUy8uJHN0ZXAgd10KLSAgICAgICAgICAgIHB1dHMgJG9mIFtGRjo6cHJldHR5X3ByaW50ICRzdGVwX2NvbW1hbmRzICRmb3JtYXRdCi0gICAgICAgICAgICBwdXRzICRvZiBbRkY6OnByZXR0eV9wcmludCAkc2F2ZV9jb21tYW5kcyAkZm9ybWF0XQotICAgICAgICAgICAgY2xvc2UgJG9mCi0jICAgICAgICAgICAgaWYge1tyZWdleHAgInBvc3Ryb3V0ZV9zaSIgJHN0ZXBdICYmICRza2lwX2NvbW1hbmRzICE9ICIifSB7Ci0jICAgICAgICAgICAgICAgc2V0IGNvbW1hbmRzICRza2lwX2NvbW1hbmRzCi0jICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgeyEkZm9ybWF0fSB7Ci0gICAgICAgICAgICAgICBzZXQgY29tbWFuZHMgW0ZGOjpzdHJpcF9saW5lcyAkY29tbWFuZHMgW2xpc3QgInB1dHMiICIjIl1dCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiB7JHZhcnMoY2F0Y2hfZXJyb3JzKSAmJiAoJHN0ZXAgIT0gImRlYnVnIil9IHsKLSAgICAgICAgICAgICAgIHB1dHMgJG9wICJcbmlmIHsgXFtjYXRjaCB7XG4iCi0gICAgICAgICAgICAgICBwdXRzICRvcCBbRkY6OnByZXR0eV9wcmludCAkY29tbWFuZHMgJGZvcm1hdF0KLSAgICAgICAgICAgICAgIHB1dHMgJG9wICJ9IHN0ZXBfZXJyb3JcXX0ge1xuIgotICAgICAgICAgICAgICAgcHV0cyAkb3AgIiAgIFB1dHMgXCI8RkY+ID09PT09PT09PT09IFNURVAgRVhFQ1VUSU9OIEVSUk9SID09PT09PT09PT09PVwiIgotICAgICAgICAgICAgICAgcHV0cyAkb3AgIiAgIFB1dHMgXCI8RkY+IEVSUk9SIFJVTk5JTkcgU1RFUCAnJHN0ZXAnXCIiCi0gICAgICAgICAgICAgICBpZiB7JHZhcnMoc2F2ZV9vbl9jYXRjaCl9IHsKLSAgICAgICAgICAgICAgICAgIGlmIHtbcmVnZXhwICJec3luIiAkdmFycyhzdGVwKV19IHsKLSAgICAgICAgICAgICAgICAgICAgICAgcHV0cyAkb3AgIiAgIHdyaXRlX2RiICR2YXJzKGRlc2lnbikgLWFsbF9yb290X2F0dHJpYnV0ZXMgLXRvX2ZpbGUgJHZhcnMoZGJzX2RpcikvJHZhcnMoc3RlcCkuY2F0Y2guZGJcbiIKLSAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICBwdXRzICRvcCAiICAgUHV0cyBcIjxGRj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXCIiCi0gICAgICAgICAgICAgICAgICAgICBwdXRzICRvcCAiICAgUHV0cyBcIjxGRj4gLi4uIFNBVklORyBERVNJR04gVE8gJHZhcnMoZGJzX2RpcikvJHZhcnMoc3RlcCkuY2F0Y2guZW5jXCIiCi0gICAgICAgICAgICAgICAgICAgICBpZiB7W3N0cmluZyBjb21wYXJlIC1ub2Nhc2UgJHZhcnMoZGJzX2Zvcm1hdCkgIm9hIl09PTB9IHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIHtbbGluZGV4IFtzcGxpdCAkdmFycyh2ZXJzaW9uKSAiLiJdICAwXSA+IDEwfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICBwdXRzICRvcCAiICAgc2F2ZURlc2lnbiAtY2VsbHZpZXcgeyR2YXJzKG9hX2Rlc2lnbl9saWIpICR2YXJzKGRlc2lnbikgJHZhcnMoc3RlcCkuY2F0Y2h9XG4iCi0gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgcHV0cyAkb3AgIiAgIHNhdmVPYURlc2lnbiAkdmFycyhvYV9kZXNpZ25fbGliKSAkdmFycyhkZXNpZ24pICR2YXJzKHN0ZXApLmNhdGNoXG4iCi0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICAgcHV0cyAkb3AgIiAgIHNhdmVEZXNpZ24gJHZhcnMoZGJzX2RpcikvJHZhcnMoc3RlcCkuY2F0Y2guZW5jIC1jb21wcmVzc1xuIgotICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgfSAKLSAgICAgICAgICAgICAgIHB1dHMgJG9wICIgICBQdXRzIFwiPEZGPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cIiIKLSAgICAgICAgICAgICAgIHB1dHMgJG9wICIgICBQdXRzIFwiPEZGPiBcJHN0ZXBfZXJyb3JcIiIKLSAgICAgICAgICAgICAgIHB1dHMgJG9wICIgICBQdXRzIFwiPEZGPiAtLS0tLS0tLS0tLS0tLS0tLS0tIERFVEFJTFMgLS0tLS0tLS0tLS0tLS0tLS0tXCIiCi0gICAgICAgICAgICAgICBwdXRzICRvcCAiICAgUHV0cyBcIjxGRj4gXCRlcnJvckluZm9cIiIKLSAgICAgICAgICAgICAgIHB1dHMgJG9wICIgICBQdXRzIFwiPEZGPiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XCIiCi0gICAgICAgICAgICAgICBpZiB7JHZhcnMoYmF0Y2gpfSB7Ci0jICAgICAgICAgICAgICAgICBpZiB7JHZhcnMoZXhpdF9vbl9lcnJvcil9IHsKLSAgICAgICAgICAgICAgICAgICAgcHV0cyAkb3AgIiAgIGV4aXQgLTEiCi0jICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICBwdXRzICRvcCAifSIKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBwdXRzICRvcCBbRkY6OnByZXR0eV9wcmludCAkY29tbWFuZHMgJGZvcm1hdF0KLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIHskdmFycyhiYXRjaCkgJiYgKCRzdGVwICE9ICJkZWJ1ZyIpfSB7Ci0gICAgICAgICAgICAgICBwdXRzICRvcCAiaWYgeyFcW2luZm8gZXhpc3RzIHZhcnMoc2luZ2xlKVxdfSB7XG4gICBleGl0IDBcbn1cbiIKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGNsb3NlICRvcAotICAgICAgICAgICAgc2V0IHNjb21tYW5kcyBbc3BsaXQgJGNvbW1hbmRzICJcbiJdCi0gICAgICAgICAgICBpZiAkdmFycyhnZW5lcmF0ZV9mbG93X3N0ZXBzKSB7Ci0gICAgICAgICAgICAgICBpZiB7W3JlZ2V4cCBzeW5fICRzdGVwXX0gewotICAgICAgICAgICAgICAgICAgYXBwZW5kIHZhcnMoZmxvd19zdGVwcykgIlxuY3JlYXRlX2Zsb3dfc3RlcCAtbmFtZSAkc3RlcCBce1xuIgotICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCB2YXJzKGZsb3dfc3RlcHMpICJcbmNyZWF0ZV9mbG93X3N0ZXAgLW5hbWUgJHN0ZXAgXHtcbiAgIGV2YWxfbGVnYWN5IFx7XG4gIgotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGhzdGVwcyldICYmIChbbHNlYXJjaCAkdmFycyhoc3RlcHMpICRzdGVwXSAhPSAtMSl9IHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCB2YXJzKGZsb3dfc3RlcHMsaGllcikgIlxuY3JlYXRlX2Zsb3dfc3RlcCAtbmFtZSAkc3RlcCBce1xuICAgZXZhbF9sZWdhY3kgXHtcbiAiCi0gICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgaWYge1tyZWdleHAgc3luXyAkc3RlcF19IHsgCi0gICAgICAgICAgICAgICAgICAgICBhcHBlbmQgdmFycyhmbG93X3N0ZXBzLGZsYXQpICJcbmNyZWF0ZV9mbG93X3N0ZXAgLW5hbWUgJHN0ZXAgXHtcbiIKLSAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICBhcHBlbmQgdmFycyhmbG93X3N0ZXBzLGZsYXQpICJcbmNyZWF0ZV9mbG93X3N0ZXAgLW5hbWUgJHN0ZXAgXHtcbiAgIGV2YWxfbGVnYWN5IFx7XG4gIgotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgc2V0IHNraXAgMAotICAgICAgICAgICAgICAgZm9yZWFjaCBsaW5lICRzY29tbWFuZHMgewotICAgICAgICAgICAgICAgICAgaWYgeyRza2lwICE9IDB9IHsKLSAgICAgICAgICAgICAgICAgICAgIHNldCBza2lwIFtleHByICRza2lwLTFdCi0gICAgICAgICAgICAgICAgICAgICBjb250aW51ZQotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgaWYge1tyZWdleHAgZmZfcHJvY3MgJGxpbmVdfSB7IGNvbnRpbnVlIH0KLSAgICAgICAgICAgICAgICAgIGlmIHtbcmVnZXhwICIjIiAkbGluZV19IHsgY29udGludWUgfQotICAgICAgICAgICAgICAgICAgaWYge1tyZWdleHAgIlB1dHMiICRsaW5lXX0geyBjb250aW51ZSB9Ci0gICAgICAgICAgICAgICAgICBpZiB7W3JlZ2V4cCAiVlBBVEgiICRsaW5lXX0geyBjb250aW51ZSB9Ci0gICAgICAgICAgICAgICAgICBpZiB7W3JlZ2V4cCAic2V0IHZhcnMiICRsaW5lXSAmJiAhW3JlZ2V4cCAiLHBvc3RfY3RzX3NkYyIgJGxpbmVdfSB7IGNvbnRpbnVlIH0KLSAgICAgICAgICAgICAgICAgIGlmIHskc3RlcCAhPSAiaW5pdCJ9IHsKLSMgICAgICAgICAgICAgICAgICAgICBpZiB7W3JlZ2V4cCAicmVzdG9yZV9kZXNpZ24iICRsaW5lXX0geyBzZXQgc2tpcCA3OyBjb250aW51ZSB9Ci0gICAgICAgICAgICAgICAgICAgICBpZiB7ISgoJHN0ZXAgPT0gImN0cyIpICYmICR2YXJzKGVuYWJsZV9mbGV4aWxtKSl9IHsgCi0gICAgICAgICAgICAgICAgICAgICAgICBpZiB7W3JlZ2V4cCAicmVzdG9yZURlc2lnbiIgJGxpbmVdfSB7IGNvbnRpbnVlIH0KLSAgICAgICAgICAgICAgICAgICAgIH0gIGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICAgaWYge1tyZWdleHAgInJlc3RvcmVEZXNpZ24iICRsaW5lXX0gewotIyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXQgbGluZSBbc3RyaW5nIHRyaW0gW2xpbmRleCAkbGluZSAyXV0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXQgbGluZSAicmVzdG9yZURlc2lnbiBcW2ZpbGUgdGFpbCBcW3B3ZFxdXF1fcG9zdEVDTy5lbmMuZGF0IFxbZmlsZSB0YWlsIFxbcHdkXF1cXSIKLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICBpZiB7W3JlZ2V4cCAicmVzdG9yZURlc2lnbiIgJGxpbmVdfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgc2V0IGxpbmUgInJlc3RvcmVEZXNpZ24gLiBcW2ZpbGUgdGFpbCBcW3B3ZFxdXSIKLSAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIGlmIHtbcmVnZXhwICJzYXZlRGVzaWduIiAkbGluZV19IHsgY29udGludWUgfQotICAgICAgICAgICAgICAgICAgaWYge1tyZWdleHAgIm1ldHJpYyIgJGxpbmVdfSB7IGNvbnRpbnVlIH0KLSAgICAgICAgICAgICAgICAgIGlmIHtbcmVnZXhwICJzbmFwc2hvdCIgJGxpbmVdfSB7IGNvbnRpbnVlIH0KLSAgICAgICAgICAgICAgICAgIGlmIHtbcmVnZXhwICJyZXBvcnRfbWV0cmljIiAkbGluZV19IHsgY29udGludWUgfQotICAgICAgICAgICAgICAgICAgaWYgeyRsaW5lID09ICIifSB7IGNvbnRpbnVlIH0KLSAgICAgICAgICAgICAgICAgIGFwcGVuZCB2YXJzKGZsb3dfc3RlcHMpICJcdCRsaW5lXG4iCi0gICAgICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoaHN0ZXBzKV0gJiYgKFtsc2VhcmNoICR2YXJzKGhzdGVwcykgJHN0ZXBdICE9IC0xKX0gewotICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIHZhcnMoZmxvd19zdGVwcyxoaWVyKSAiXHQkbGluZVxuIgotICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCB2YXJzKGZsb3dfc3RlcHMsZmxhdCkgIlx0JGxpbmVcbiIKLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIGFwcGVuZCB2YXJzKGZsb3dfc3RlcHMpICJcfVxuIgotICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGhzdGVwcyldICYmIChbbHNlYXJjaCAkdmFycyhoc3RlcHMpICRzdGVwXSAhPSAtMSl9IHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCB2YXJzKGZsb3dfc3RlcHMsaGllcikgIlxuICAgXH1cbiIKLSAgICAgICAgICAgICAgICAgIGlmIHskc3RlcCA9PSAicGFydGl0aW9uIn0gewotICAgICAgICAgICAgICAgICAgICAgZm9yZWFjaCBwICR2YXJzKHBhcnRpdGlvbl9saXN0KSB7Ci0jICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIHZhcnMoZmxvd19zdGVwcyxoaWVyKSAiXG4gIHNjaGVkdWxlX2Zsb3cgLWZsb3cgJHAgLWRpciAkdmFycyhwYXJ0aXRpb25fZGlyKS8kcCIKLSAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCB2YXJzKGZsb3dfc3RlcHMsaGllcikgIlxuICBzY2hlZHVsZV9mbG93IC1mbG93IGJsb2NrIC1kaXIgJHZhcnMocGFydGl0aW9uX2RpcikvJHAiCi0gICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgdmFycyhmbG93X3N0ZXBzLGhpZXIpICJcblx9XG4iCi0gICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgaWYgeyhbZmlsZSB0YWlsIFtmaWxlIGRpcm5hbWUgW3B3ZF1dXSA9PSAiJHZhcnMocGFydGl0aW9uX2RpcikiKSAmJiAoJHN0ZXAgPT0gInNpZ25vZmYiKX0gewotICAgICAgICAgICAgICAgICAgICAgaWYge1tsc2VhcmNoICR2YXJzKHBhcnRpdGlvbl9saXN0KSAkdmFycyhkZXNpZ24pXSA9PSAtMX0gewotICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIHZhcnMoZmxvd19zdGVwcyxmbGF0KSAiXG4gICBcfVxuIgotICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIHZhcnMoZmxvd19zdGVwcyxmbGF0KSAiXG4gIHNjaGVkdWxlX2Zsb3cgLWZsb3cgZmluYWxfYXNzZW1ibHkiCi0gICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgdmFycyhmbG93X3N0ZXBzLGZsYXQpICJcblx9XG4iCi0gICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIHZhcnMoZmxvd19zdGVwcyxmbGF0KSAiXG4gICBcfVxuIgotIyAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIHZhcnMoZmxvd19zdGVwcyxmbGF0KSAiXG4gIHNjaGVkdWxlX2Zsb3cgLWZsb3cgJHZhcnModG9wX2NlbGwpIC1kaXIgJHZhcnMocGFydGl0aW9uX2RpcikvJHZhcnModG9wX2NlbGwpIgotICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIHZhcnMoZmxvd19zdGVwcyxmbGF0KSAiXG4gIHNjaGVkdWxlX2Zsb3cgLWZsb3cgdG9wIC1kaXIgJHZhcnMocGFydGl0aW9uX2RpcikvJHZhcnModG9wX2NlbGwpIgotICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIHZhcnMoZmxvd19zdGVwcyxmbGF0KSAiXG5cfVxuIgotICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgIGlmIHtbcmVnZXhwIHN5bl8gJHN0ZXBdfSB7IAotICAgICAgICAgICAgICAgICAgICAgICAgaWYgeyR2YXJzKHJjKX0gewotICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgeyR2YXJzKGVuYWJsZV9yY3ApICYmICgkc3RlcCA9PSAic3luX3BsYWNlIil9IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCB2YXJzKGZsb3dfc3RlcHMsZmxhdCkgIlxuICBzY2hlZHVsZV9mbG93IC1mbG93IGlubm92dXMgLWRiIFwiJHZhcnMoZGJzX2Rpcikvc3luX3BsYWNlL3N5bl9wbGFjZS5ub3Z1c19zZXR1cC50Y2xcIlxuIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlaWYgeyEkdmFycyhlbmFibGVfcmNwKSAmJiAoJHZhcnMoc3RlcCkgPT0gInN5bl9pbmNyIil9IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCB2YXJzKGZsb3dfc3RlcHMsZmxhdCkgIlxuICBzY2hlZHVsZV9mbG93IC1mbG93IGlubm92dXMgLWRiIFwiJHZhcnMoZGJzX2Rpcikvc3luX2luY3Ivc3luX2luY3Iubm92dXNfc2V0dXAudGNsXCJcbiIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgIH0gCi0gICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgdmFycyhmbG93X3N0ZXBzLGZsYXQpICJcfVxuIgotICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCB2YXJzKGZsb3dfc3RlcHMsZmxhdCkgIlx9XG5cfVxuIgotICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgfSAgICAKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgc2V0IGFjdGlvbiAkc3RlcAotCi0gICAgICAgICB9Ci0gICAgICB9Ci0KLSAgICAgICMKLSAgICAgICMgQ3JlYXRlIGEgZmlsZSB0aGF0IHNldHMgdXAgYWxsIG9mIHRoZSB2YXJpYWJsZSBzZXR0aW5ncyB0aGF0IHdlcmUKLSAgICAgICMgdXNlZCBpbiB0aGlzIGludm9jYXRpb24KLSAgICAgICMKLQotICAgIyBHREcgLSBpcyB0aGlzIG5lZWRlZCBhbnltb3JlCi0gICBpZiB7MH0gewotICAgICAgIyBCQ0w6IENoYW5nZWQgdG8gdGNsIGZpbGUgbWtkaXIKLSAgICAgIGZpbGUgbWtkaXIgJHZhcnMoc2NyaXB0X2RpcikKLSAgICAgIHNldCBvcCBbb3BlbiAkdmFycyhzY3JpcHRfZGlyKS92YXJzLnRjbCB3XQotICAgICAgcHV0cyAkb3AgIiMgdGhpcyBpcyB0aGUgb25lIgotICAgICAgcHV0cyAkb3AgImlmIHshXFtpbmZvIGV4aXN0cyB2YXJzXF19IHsiCi0gICAgICBwdXRzICRvcCAiICAgZ2xvYmFsIHZhcnMiCi0gICAgICBwdXRzICRvcCAifSIKLSMgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnModXNlcl9hcnJheXMpXX0gewotIyAgICAgICAgIGZvcmVhY2ggYXJyYXkgJHZhcnModXNlcl9hcnJheXMpIHsKLSMgICAgICAgICAgICBwdXRzICRvcCAiIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iCi0jICAgICAgICAgICAgcHV0cyAkb3AgImdsb2JhbCAkYXJyYXkiCi0jICAgICAgICAgICAgc2V0IGNtZCAgImFycmF5IG5hbWVzICRhcnJheSIKLSMgICAgICAgICAgICBzZXQgdXZhcnMgW2V2YWwgJGNtZF0KLSMgICAgICAgICAgICBmb3JlYWNoIHZhciAkdXZhcnMgewotIyAgICAgICAgICAgICAgIGlmIHtbcmVnZXhwIHtcJH0gJHZhcnMoJHZhcildfSB7Ci0jICAgICAgICAgICAgICAgICBwdXRzICRvcCAic2V0ICRhcnJheSgkdmFyKSBcIiQkYXJyYXkoJHZhcilcIiIKLSMgICAgICAgICAgICAgICB9IGVsc2UgewotIyAgICAgICAgICAgICAgICAgcHV0cyAkb3AgInNldCAkYXJyYXkoJHZhcikgXHskYXJyYXkoJHZhcilcfSIKLSMgICAgICAgICAgICAgICB9Ci0jICAgICAgICAgICAgfQotIyAgICAgICAgIH0KLSMgICAgICB9Ci0gICAgICAjIyBCQ0w6IEFkZGVkIHNvdXJjaW5nIC5mZi50Y2wgdG8gdmFycy50Y2wKLSAgICAgICNwdXRzICRvcCAiaWYge1xbZmlsZSBleGlzdHMgLmZmLnRjbFxdfSB7IgotICAgICAgI3B1dHMgJG9wICIgIHNvdXJjZSAuZmYudGNsIgotICAgICAgI3B1dHMgJG9wICJ9IgotICAgICAgcHV0cyAkb3AgImdsb2JhbCBlbnZcblxuIgotICAgICAgcHV0cyAkb3AgIiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIgotICAgICAgcHV0cyAkb3AgInNldCBlbnYoVlBBVEgpICRlbnYoVlBBVEgpIgotICAgICAgcHV0cyAkb3AgInNldCB2YXJzKHJ1bmRpcikgJHZhcnMocnVuZGlyKSIKLSAgICAgIGZvcmVhY2ggdmFyIFtsc29ydCBbYXJyYXkgbmFtZXMgdmFyc11dIHsKLSAgICAgICAgICMgQkNMOiBPbmx5IHdyaXRlIG91dCB2YXJpYWJsZSB2YWx1ZXMgaW4gY3VybGllcyBpZiBub3QgdXNpbmcgJHZhcnMoKSBpbiB0aGUgdmFsdWUgb2YgdGhlIHZhcmlhYmxlCi0gICAgICAgICBpZiB7W3JlZ2V4cCB7XCR9ICR2YXJzKCR2YXIpXX0gewotICAgICAgICAgICBwdXRzICRvcCAic2V0IHZhcnMoJHZhcikgXCIkdmFycygkdmFyKVwiIgotICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgcHV0cyAkb3AgInNldCB2YXJzKCR2YXIpIFx7JHZhcnMoJHZhcilcfSIKLSAgICAgICAgIH0KLSAgICAgIH0KLSAgICAgIHB1dHMgJG9wICJzZXQgdmFycyhyZXN0b3JlX2Rlc2lnbikge3RydWV9IgotIyAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhjcGZfZmlsZSldfSB7Ci0jICAgICAgICAgcHV0cyAkb3AgImNhdGNoIHthbGlhcyBmZl9tb2RpZnlfcG93ZXJfZG9tYWlucyBGRl9FREk6Om1vZGlmeV9wb3dlcl9kb21haW5zfSIKLSMgICAgICAgICBwdXRzICRvcCAiY2F0Y2gge2FsaWFzIGZmX2FkZF9wb3dlcl9zd2l0Y2hlcyBGRl9FREk6OmFkZF9wb3dlcl9zd2l0Y2hlc30iCi0jICAgICAgICAgcHV0cyAkb3AgImNhdGNoIHthbGlhcyBmZl9yb3V0ZV9zZWNvbmRhcnlfcGdfbmV0cyBGRl9FREk6OnJvdXRlX3NlY29uZGFyeV9wZ19uZXRzfSIKLSMgICAgICAgICBwdXRzICRvcCAiY2F0Y2gge2FsaWFzIGZmX2dldF9wb3dlcl9kb21haW5zIEZGX0VESTo6Z2V0X3Bvd2VyX2RvbWFpbnN9IgotIyAgICAgICAgIHB1dHMgJG9wICJjYXRjaCB7YWxpYXMgZmZfYnVmZmVyX2Fsd2F5c19vbl9uZXRzIEZGX0VESTo6YnVmZmVyX2Fsd2F5c19vbl9uZXRzfSIKLSMgICAgICAgICBwdXRzICRvcCAiY2F0Y2gge2FsaWFzIGZmX2luc2VydF93ZWxsdGFwc19lbmRjYXBzIEZGX0VESTo6aW5zZXJ0X3dlbGx0YXBzX2VuZGNhcHN9IgotIyAgICAgIH0KLSAgICAgIGNsb3NlICRvcAotICAgfQotCi0gICAgICByZXR1cm4gJGFjdGlvbgotICAgfQotCi0gICBwcm9jIGluc2VydF9jb21tZW50cyB7fSB7Ci0KLSAgICAgIGdsb2JhbCB2YXJzCi0KLSAgICAgIHNldCBjb21tZW50cyAiIgotICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjXG4iCi0gICAgICBhcHBlbmQgY29tbWVudHMgIiMgVmFyaWFibGVzIGFmZmVjdGluZyB0aGlzIHN0ZXA6XG4iCi0gICAgICBhcHBlbmQgY29tbWVudHMgIiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiIKLSAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhjb21tZW50cyldfSB7Ci0gICAgICAgICBhcHBlbmQgY29tbWVudHMgJHZhcnMoY29tbWVudHMpCi0gICAgICAgICB1bnNldCB2YXJzKGNvbW1lbnRzKQotICAgICAgfSBlbHNlIHsKLSAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAgICBObyB2YXJpYWJsZXMgZGVmaW5lZCBmb3IgdGhpcyBzdGVwIC4uLlxuIgotICAgICAgfQotICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjXG4iCi0gICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnModWNvbW1lbnRzKV19IHsKLSAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyBBZGRpdGlvbmFsIHZhcmlhYmxlcyBmb3IgdGhpcyBzdGVwOlxuIgotICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWVudHMgJHZhcnModWNvbW1lbnRzKQotICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjXG4iCi0gICAgICAgICB1bnNldCB2YXJzKHVjb21tZW50cykKLSAgICAgIH0KLSAgICAgIHJldHVybiAkY29tbWVudHMKLSAgIH0KLQotIyAgIHByb2MgcnVuX2FsbCB7fSB7Ci0jIAotIyAgICAgIGdsb2JhbCB2YXJzCi0jCi0jICAgICAgc2V0IHRpbWUgMAotIyAgICAgIHNldCBpbmRleCAwCi0jICAgICAgc2V0IHN0b3Bfc3RlcCBzaWdub2ZmCi0jICAgICAgc2V0IHZhcnMoY29kZWdlbikgZmFsc2UKLSMgICAgICBpZiB7IVtpbmZvIGV4aXN0cyB2YXJzKHZwYXRoKV19IHsgc2V0IHZhcnModnBhdGgpIG1ha2UgfQotIyAgICAgIAotIyAgICAgIGZvcmVhY2ggc3RlcCAkdmFycyhzdGVwcykgewotIyAgICAgICAgIGlmIHtbZmlsZSBleGlzdHMgJHZhcnModnBhdGgpLyRzdGVwXX0gewotIyAgICAgICAgICAgIGlmIHtbZmlsZSBtdGltZSAkdmFycyh2cGF0aCkvJHN0ZXBdID4gJHRpbWV9IHsKLSMgICAgICAgICAgICAgICBpZiB7W2xpbmRleCAkdmFycyhzdGVwcykgJGluZGV4XSA9PSAic2lnbm9mZiJ9IHsKLSMgICAgICAgICAgICAgICAgICBQdXRzICI8RkY+IFNURVAgc2lnbm9mZiBDT01QTEVURSAuLi4gTk9USElORyBUTyBETyIKLSMgICAgICAgICAgICAgICB9IGVsc2UgewotIyAgICAgICAgICAgICAgICAgIHNldCBzdGFydF9zdGVwIFtsaW5kZXggJHZhcnMoc3RlcHMpIFtleHByICRpbmRleCArIDFdXQotIyAgICAgICAgICAgICAgIH0KLSMgICAgICAgICAgICB9Ci0jICAgICAgICAgfSBlbHNlIHsKLSMgICAgICAgICAgICBzZXQgc3RhcnRfc3RlcCAkc3RlcAotIyAgICAgICAgICAgIGJyZWFrCi0jICAgICAgICAgfQotIyAgICAgICAgIGluY3IgaW5kZXgKLSMgICAgICB9Ci0jICAgICAgCi0jICAgICAgcHV0cyAiPEZGPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIKLSMgICAgICBpZiB7JHN0YXJ0X3N0ZXAgPT0gJHN0b3Bfc3RlcH0gewotIyAgICAgICAgIHB1dHMgIjxGRj4gUlVOTklORyBTVEVQICRzdGFydF9zdGVwIC4uLiIKLSMgICAgICB9IGVsc2UgewotIyAgICAgICAgIHB1dHMgIjxGRj4gUlVOTklORyBTVEVQICRzdGFydF9zdGVwIHRocm91Z2ggJHN0b3Bfc3RlcCAuLi4iCi0jICAgICAgfQotIyAgICAgIHB1dHMgIjxGRj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iCi0jICAgICAgc2xlZXAgNQotIyAgICAgIAotIyAgICAgICMKLSMgICAgICAjIEVtdWxhdGUgdGhlIGZ1bmN0aW9uYWxpdHkgb2YgdGhlICJtYWtlIiBwcm9ncmFtLiAgSWYgYSBmaWxlIGRvZXNuJ3QgZXhpc3QsCi0jICAgICAgIyBvciBpZiBpdCdzIHByZWRlY2Vzc29yIHN0ZXAgaGFzIGV4ZWN1dGVkIG1vcmUgcmVjZW50bHksIHJ1biB0aGUgY3VycmVudAotIyAgICAgICMgc3RlcCBhbmQgdXBkYXRlIHRoZSB0aW1lL2RhdGUgc3RhbXBzIG9mIHRoZSBmaWxlcyB3ZSB0cmFjayBwcm9ncmVzcyB3aXRoCi0jICAgICAgIwotIyAgICAgIAotIyAgICAgIHNldCB2YXJzKHN0b3Bfc3RlcCkgJHN0b3Bfc3RlcAotIyAgICAgIAotIyAgICAgIHNldCBsYXN0X3N0ZXAgIiIKLSMgICAgICBzZXQgdmFycyhyZXN0b3JlX2Rlc2lnbikgMQotIyAgICAgIGlmIHskdmFycyhlbmFibGVfcW9yX2NoZWNrKX0gewotIyAgICAgICAgIHNldCBjaGVja19xb3IgJHZhcnMoc2NyaXB0X2RpcikvY2hlY2tfcW9yLnRjbAotIyAgICAgIH0KLSMgICAgICBleGVjIG1rZGlyIC1wIG1ha2UKLSMgICAgICBmb3JlYWNoIHN0ZXAgJHZhcnMoc3RlcHMpIHsKLSMgICAgICAgICBzZXQgdmFycyhzdGVwKSAkc3RlcAotIyAgICAgICAgIFB1dHMgIjxGRj4gU1RFUCAkdmFycyhzdGVwKSAuLi4iCi0jICAgICAgICAgc2V0IHRoaXNfc2VtYXBob3JlICIkdmFycyh2cGF0aCkvJHN0ZXAiCi0jICAgICAgICAgc2V0IGxhc3Rfc2VtYXBob3JlICIkdmFycyh2cGF0aCkvJGxhc3Rfc3RlcCIKLSMgICAgICAKLSMgICAgICAgICBzZXQgcnVuX3N0ZXAgZmFsc2UKLSMgICAgICAgICBpZiB7IVtmaWxlIGV4aXN0cyAkdGhpc19zZW1hcGhvcmVdfSB7Ci0jICAgICAgICAgICAgc2V0IHJ1bl9zdGVwIHRydWUKLSMgICAgICAgICB9IGVsc2VpZiB7JGxhc3Rfc3RlcCAhPSAiIn0gewotIyAgICAgICAgICAgIGZpbGUgc3RhdCAkdGhpc19zZW1hcGhvcmUgdGhpc19zdGF0Ci0jICAgICAgICAgICAgZmlsZSBzdGF0ICRsYXN0X3NlbWFwaG9yZSBsYXN0X3N0YXQKLSMgICAgICAgICAgICBpZiB7JHRoaXNfc3RhdChtdGltZSkgPCAkbGFzdF9zdGF0KG10aW1lKX0gewotIyAgICAgICAgICAgICAgIHNldCBydW5fc3RlcCB0cnVlCi0jICAgICAgICAgICAgfQotIyAgICAgICAgIH0KLSMgICAgICAKLSMgICAgICAgICAjCi0jICAgICAgICAgIyBDaGVjayB0aGUgcXVhbGl0eSBvZiByZXN1bHRzIGZyb20gdGhlIGxhc3Qgc3RlcC4gIElmIHRoZSByZXN1bHRzIGFyZW4ndAotIyAgICAgICAgICMgYXMgZXhwZWN0ZWQsIGRvbid0IHByb2NlZWQgdG8gdGhlIG5leHQgc3RlcAotIyAgICAgICAgICMKLSMgICAgICAgICBpZiB7JHZhcnMoZW5hYmxlX3Fvcl9jaGVjayl9IHsKLSMgICAgICAgICAgICBpZiB7JHN0ZXAgIT0gImluaXQifSB7Ci0jICAgICAgICAgICAgICAgc2V0IHFvciBbY2F0Y2gge2V4ZWMgJGNoZWNrX3FvciAkbGFzdF9zZW1hcGhvcmV9IG1zZ10KLSMgICAgICAgICAgICAgICBpZiB7JHFvcn0gewotIyAgICAgICAgICAgICAgICAgIHB1dHMgIjxGRj4gRVJST1I6IFFPUiBSRVNVTFQgQ0hFQ0sgSU5ESUNBVEVTIEEgUFJPQkxFTSBJTiBTVEVQICRsYXN0X3N0ZXAiCi0jICAgICAgICAgICAgICAgICAgZXhpdCAtMTExCi0jICAgICAgICAgICAgICAgfQotIyAgICAgICAgICAgIH0KLSMgICAgICAgICB9Ci0jICAgICAgCi0jICAgICAgICAgc2V0IGxhc3Rfc3RlcCAkc3RlcAotIyAgICAgICAgIGlmIHshJHJ1bl9zdGVwfSB7Ci0jICAgICAgICAgICAgY29udGludWUKLSMgICAgICAgICB9Ci0jICAgICAgCi0jICAgICAgICAgIwotIyAgICAgICAgICMgU291cmNlIHRoZSBjb250cm9sIGZpbGUgdGhhdCBydW5zIHRoZSBzdGVwLiAgSWYgaXQgaGFkIGFuIGVycm9yLCBleGl0Ci0jICAgICAgICAgIyBpbW1lZGlhdGVseS4gIE90aGVyd2lzZSwgdXBkYXRlIHRoZSB0aW1lL2RhdGUgc3RhbXAgb2YgdGhlIGNvcnJlc3BvbmRpbmcKLSMgICAgICAgICAjCi0jICAgICAgICAgIwotIyAgICAgIAotIyAgICAgICAgIGlmIHtbY2F0Y2gge0ZGX0VESTo6cnVuXyRzdGVwfSBtZXNzYWdlXX0gewotIyAgICAgICAgICAgIHB1dHMgJG1lc3NhZ2UKLSMgICAgICAgICAgICBleGl0IC0xMTEKLSMgICAgICAgICB9Ci0jICAgICAgICAgc2V0IHZhcnMocmVzdG9yZV9kZXNpZ24pIDAKLSMgICAgICAKLSMgICAgICAgICAjCi0jICAgICAgICAgIyBJZiB0aGVyZSBpcyBhIFFPUiBjaGVjayBmaWxlIGZvciB0aGlzIHN0ZXAsIGV4ZWN1dGUgaXQgYW5kIHBsYWNlIHRoZQotIyAgICAgICAgICMgcmVzdWx0IGludG8gdGhlIG1ha2UgZmlsZS4gIE90aGVyd2lzZSBqdXN0IHRvdWNoIHRoZSBmaWxlCi0jICAgICAgICAgIwotIyAgICAgIAotIyAgICAgICAgIGlmIHskdmFycyhlbmFibGVfcW9yX2NoZWNrKX0gewotIyAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkc3RlcCxxb3JfdGNsXX0gewotIyAgICAgICAgICAgICAgIHNldCBxb3JfZmlsZSAkdmFycygkc3RlcCxxb3JfdGNsKQotIyAgICAgICAgICAgICAgIGlmIHtbZmlsZSBleGlzdHMgJHFvcl9maWxlXX0gewotIyAgICAgICAgICAgICAgICAgIHNldCBxb3IgW2NhdGNoIHtleGVjICRxb3JfZmlsZX0gbXNnXQotIyAgICAgICAgICAgICAgICAgIHNldCBtYWtlX2ZpbGUgW29wZW4gJHRoaXNfc2VtYXBob3JlIHddCi0jICAgICAgICAgICAgICAgICAgcHV0cyAkbWFrZV9maWxlICIkcW9yIgotIyAgICAgICAgICAgICAgICAgIGNsb3NlICRtYWtlX2ZpbGUKLSMgICAgICAgICAgICAgICB9Ci0jICAgICAgICAgICAgfQotIyAgICAgICAgIH0KLSMgICAgICAgICBleGVjIC9iaW4vdG91Y2ggJHRoaXNfc2VtYXBob3JlCi0jICAgICAgCi0jICAgICAgICAgaWYgeyRzdGVwID09ICRzdG9wX3N0ZXB9IHsKLSMgICAgICAgICAgICBQdXRzICI8RkY+IERvbmUiIAotIyAgICAgICAgIH0KLSMgICAgICB9Ci0jICAgfQotCi0gICBwcm9jIGxvYWRfcG93ZXJfaW50ZW50IHt9IHsKLQotICAgICAgZ2xvYmFsIHZhcnMKLQotICAgICAgc2V0IGNvbW1hbmRzICIiCi0KLSAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhjcGZfZmlsZSldfSB7Ci0gICAgICAgICBzZXQgY29tbWFuZCAibG9hZENQRiAkdmFycyhjcGZfZmlsZSlcbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxsb2FkX2NwZiAkY29tbWFuZF0KLSAgICAgICAgIHNldCBjb21tYW5kICJjb21taXRDUEYiCi0gICAgICAgICBpZiB7JHZhcnMoY3BmX2tlZXBfcm93cyl9IHsKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgLWtlZXBSb3dzIgotICAgICAgICAgfQotICAgICAgICAgaWYgeyR2YXJzKGNwZl9wb3dlcl9kb21haW4pfSB7Ci0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiIC1wb3dlckRvbWFpbiIKLSAgICAgICAgIH0KLSAgICAgICAgIGlmIHskdmFycyhjcGZfaXNvbGF0aW9uKX0gewotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAtaXNvbGF0aW9uIgotICAgICAgICAgfQotICAgICAgICAgaWYgeyR2YXJzKGNwZl9zdGF0ZV9yZXRlbnRpb24pfSB7Ci0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiIC1zdGF0ZV9yZXRlbnRpb24iCi0gICAgICAgICB9Ci0gICAgICAgICBpZiB7JHZhcnMoY3BmX2xldmVsX3NoaWZ0ZXIpfSB7Ci0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiIC1sZXZlbF9zaGlmdGVyIgotICAgICAgICAgfQotICAgICAgICAgaWYgeyR2YXJzKGNwZl9wb3dlcl9zd2l0Y2gpfSB7Ci0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiIC1wb3dlcl9zd2l0Y2giCi0gICAgICAgICB9Ci0gICAgICAgICBhcHBlbmQgY29tbWFuZCAiXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksY29tbWl0X2NwZiAkY29tbWFuZF0KLSAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMoY3BmX2ZpbGUpXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKGNwZl9pc29sYXRpb24pXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKGNwZl9zdGF0ZV9yZXRlbnRpb24pXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKGNwZl9sZXZlbF9zaGlmdGVyKVxuIgotICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhjcGZfcG93ZXJfc3dpdGNoKVxuIgotICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhjcGZfcG93ZXJfZG9tYWluKVxuIgotICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhjcGZfa2VlcF9yb3dzKVxuIgotICAgICAgfSBlbHNlaWYge1tpbmZvIGV4aXN0cyB2YXJzKGllZWUxODAxX2ZpbGUpXX0gewotICAgICAgICAgc2V0IGNvbW1hbmQgInJlYWRfcG93ZXJfaW50ZW50ICR2YXJzKGllZWUxODAxX2ZpbGUpIC0xODAxXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksbG9hZF9pZWVlMTgwMSAkY29tbWFuZF0KLSAgICAgICAgIHNldCBjb21tYW5kICJjb21taXRfcG93ZXJfaW50ZW50IgotICAgICAgICAgaWYgeyR2YXJzKGllZWUxODAxX2tlZXBfcm93cyl9IHsKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgLWtlZXBSb3dzIgotICAgICAgICAgfQotICAgICAgICAgaWYgeyR2YXJzKGllZWUxODAxX3Bvd2VyX2RvbWFpbil9IHsKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgLXBvd2VyX2RvbWFpbiIKLSAgICAgICAgIH0KLSAgICAgICAgIGlmIHskdmFycyhpZWVlMTgwMV9pc29sYXRpb24pfSB7Ci0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiIC1pc29sYXRpb24iCi0gICAgICAgICB9Ci0gICAgICAgICBpZiB7JHZhcnMoaWVlZTE4MDFfc3RhdGVfcmV0ZW50aW9uKX0gewotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAtc3RhdGVfcmV0ZW50aW9uIgotICAgICAgICAgfQotICAgICAgICAgaWYgeyR2YXJzKGllZWUxODAxX2xldmVsX3NoaWZ0ZXIpfSB7Ci0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiIC1sZXZlbF9zaGlmdGVyIgotICAgICAgICAgfQotICAgICAgICAgaWYgeyR2YXJzKGllZWUxODAxX3Bvd2VyX3N3aXRjaCl9IHsKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgLXBvd2VyX3N3aXRjaCIKLSAgICAgICAgIH0KLSAgICAgICAgIGFwcGVuZCBjb21tYW5kICJcbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxjb21taXRfaWVlZTE4MDEgJGNvbW1hbmRdCi0gICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKGllZWUxODAxX2ZpbGUpXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKGllZWUxODAxX2lzb2xhdGlvbilcbiIKLSAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMoaWVlZTE4MDFfc3RhdGVfcmV0ZW50aW9uKVxuIgotICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhpZWVlMTgwMV9sZXZlbF9zaGlmdGVyKVxuIgotICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhpZWVlMTgwMV9wb3dlcl9zd2l0Y2gpXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKGllZWUxODAxX3Bvd2VyX2RvbWFpbilcbiIKLSAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMoaWVlZTE4MDFfa2VlcF9yb3dzKVxuIgotICAgICAgfSBlbHNlIHsKLSAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKGNwZl9maWxlKVxuIgotICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMoY3BmX2lzb2xhdGlvbilcbiIKLSAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKGNwZl9zdGF0ZV9yZXRlbnRpb24pXG4iCi0gICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhjcGZfbGV2ZWxfc2hpZnRlcilcbiIKLSAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKGNwZl9wb3dlcl9zd2l0Y2gpXG4iCi0gICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhjcGZfcG93ZXJfZG9tYWluKVxuIgotICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMoY3BmX2tlZXBfcm93cylcbiIKLSAgICAgIH0KLSAgICAgIHJldHVybiAkY29tbWFuZHMKLSAgIH0KLQotICAgcHJvYyBzZXRfZGVzaWduX21vZGUge30gewotCi0gICAgICBnbG9iYWwgdmFycwotCi0gICAgICBzZXQgY29tbWFuZHMgIiIKLSAgICAgIHNldCBjb21tZW50cyAiIgotICAgICAgc2V0IHVjb21tZW50cyAiIgotCi0gICAgICBzZXQgcHJvY2VzcyBbcmVnc3ViICJubSIgJHZhcnMocHJvY2VzcykgIiJdCi0gICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKHByb2Nlc3MpXG4iCi0gICAgICBpZiB7W2xpbmRleCBbc3BsaXQgJHZhcnModmVyc2lvbikgIi4iXSAgMF0gPCAxNX0gewotICAgICAgICAgaWYgeyR2YXJzKGhpZ2hfdGltaW5nX2VmZm9ydCl9IHsKLSAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMoaGlnaF90aW1pbmdfZWZmb3J0KVxuIgotICAgICAgICAgICAgaWYgeyFbcmVnZXhwICI5LjEiICR2YXJzKHZlcnNpb24pXX0gewotICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgInNldERlc2lnbk1vZGUgLXByb2Nlc3MgJHByb2Nlc3MgLWZsb3dFZmZvcnQgaGlnaFxuIgotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIHNldCBjb21tYW5kICJzZXREZXNpZ25Nb2RlIC1wcm9jZXNzICRwcm9jZXNzXG4iCi0gICAgICAgICAgICB9Ci0gICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgc2V0IGNvbW1hbmQgInNldERlc2lnbk1vZGUgLXByb2Nlc3MgJHByb2Nlc3NcbiIKLSAgICAgICAgIH0KLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgICBpZiB7W3N0cmluZyB0b2xvd2VyICR2YXJzKGZsb3dfZWZmb3J0KV0gIT0gInN0YW5kYXJkIn0gewotICAgICAgICAgICAgc2V0IGNvbW1hbmQgInNldERlc2lnbk1vZGUgLXByb2Nlc3MgJHByb2Nlc3MgLWZsb3dFZmZvcnQgW3N0cmluZyB0b2xvd2VyICR2YXJzKGZsb3dfZWZmb3J0KV0iCi0gICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKGZsb3dfZWZmb3J0KVxuIgotICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHNldCBjb21tYW5kICJzZXREZXNpZ25Nb2RlIC1wcm9jZXNzICRwcm9jZXNzIgotICAgICAgICAgfQotICAgICAgICAgaWYgeyR2YXJzKHBvd2VyX2VmZm9ydCkgIT0gIm5vbmUifSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKHBvd2VyX2VmZm9ydClcbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgLXBvd2VyRWZmb3J0ICR2YXJzKHBvd2VyX2VmZm9ydCkiCi0gICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMocG93ZXJfZWZmb3J0KSBcImxvdyBvciBoaWdoXCJcbiIKLSAgICAgICAgIH0KLSAgICAgIH0KLSMgICAgICB1cGxldmVsICMwIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxzZXRfZGVzaWduX21vZGUgIiRjb21tYW5kXG4iXQotICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHNldF9kZXNpZ25fbW9kZSAiJGNvbW1hbmRcbiJdCi0KLSAgICAgIHJldHVybiBbbGlzdCAkY29tbWFuZHMgJGNvbW1lbnRzICR1Y29tbWVudHNdCi0gICB9Ci0KLSAgICMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSAgICMgVGhpcyBzY3JpcHQgd2lsbCBwcmVwYXJlIGEgZGlnaXRhbCBibG9jayBmb3IgTFZTLiBJdCBjYW4gYmUgYWRkZWQgdG8gdGhlIEZGIGJ5IGFkZGluZyB0aGUgdGFnOgotICAgIwotICAgIyAgICBzZXQgdmFycyhzaWdub2ZmLHNhdmVfZGVzaWduLHBvc3RfdGNsKSAgICAgICAgPHBhdGg+L2NyZWF0ZVN5bWJvbEFuZENERi50Y2wKLSAgICMgCi0gICAjIE5vdGUsIGl0IG11c3QgYmUgcnVuIGFmdGVyIHRoZSBkZXNpZ24gaXMgc2F2ZWQgaW4gdGhlIHNpZ25vZmYgc3RlcC4KLSAgICMKLSAgICMgVGhlIHNjcmlwdCBkb2VzIHRoZSBmb2xsb3dpbmc6Ci0gICAjCi0gICAjIDEpIENyZWF0ZXMgdGhlIFNLSUxMIHNjcmlwdDogZ2dDcmVhdGVTeW1ib2xBbmRDREYuaWwKLSAgICMKLSAgICMgICAgV2hlbiB0aGlzIHNjcmlwdCBpcyBjYWxsZWQgYnkgVmlydHVvc28gKGxhdGVyIGluIHRoZSBmbG93KSwgaXQgd2lsbCBwZXJmb3JtIAotICAgIyAgICB0aGUgZm9sbG93aW5nOgotICAgIwotICAgIyAgICAgICAtY29weSB2aWV3OiAgPGxpYj4gPGNlbGw+IHNpZ25vZmYgCi0gICAjICAgICAgICAgICAgICAgdG86ICA8bGliPiA8Y2VsbD4gbGF5b3V0Ci0gICAjCi0gICAjICAgICAgIC1SZW1hc3RlciB0aGUgaW5zdGFuY2VzIG9mIHRoZSB2aWV3ICJsYXlvdXQiIHRvIHJlZmVyZW5jZSAnbGF5b3V0JyB2aWV3cyAKLSAgICMgICAgICAgIHJhdGhlciB0aGFuICdhYnN0cmFjdCcgdmlld3MKLSAgICMKLSAgICMgICAgICAgLUNyZWF0ZSBpaGRsIHBhcmFtZXRlciBhbmQgY29tbWFuZCBmaWxlcyB3aGljaCBhcmUgdXNlZCBieSB2ZXJpbG9nSW4KLSAgICMKLSAgICMgICAgICAgLUNyZWF0ZSBhIHZlcmlsb2cgc3R1YiBmaWxlIGZyb20gdGhlIHBoeXNpY2FsIG5ldGxpc3QKLSAgICMKLSAgICMgICAgICAgLVJ1biBpaGRsICh2ZXJpbG9nSW4pIG9uIHRoZSBzdHViIGZpbGUgdG8gY3JlYXRlIHRoZSAnc3ltYm9sJyB2aWV3Ci0gICAjCi0gICAjICAgICAgIC1Db3B5IHRoZSBzeW1ib2wgdmlldyB0byBjcmVhdGUgdGhlIGF1Q2RsIHZpZXcKLSAgICMKLSAgICMgICAgICAgLVVzZSBlaXRoZXIgdjJjZGwgb3IgdjJsdnMgdG8gY29udmVydCB0aGUgdmVyaWxvZyBuZXRsaXN0IHRvIENETCAKLSAgICMgICAgICAgIGFuZCBzdG9yZSBpdCBpbiB0aGUgYXVDZGwgdmlldwotICAgIwotICAgIyAgICAgICAtQ3JlYXRlIHRoZSBiYXNlIGxldmVsIENERiB0byBzdXBwb3J0IGF1Q2RsIG5ldGxpc3RpbmcKLSAgICMKLSAgICMKLSAgICMgMikgU2F2ZXMgYSBwaHlzaWNhbCBuZXRsaXN0IHRoYXQgZXhjbHVkZXMgZmlsbGVyIGNlbGxzLiBUaGlzIHdpbGwgYmUgdXNlZCBsYXRlciAKLSAgICMgICAgdG8gY3JlYXRlIHRoZSBDREwgdmlldy4KLSAgICMKLSAgICMgMykgQ3JlYXRlcyB0aGUgLnNpbXJjIGZpbGUgdXNlZCBieSBpaGRsLgotICAgIwotICAgIyA0KSBDcmVhdGVzIHRoZSBTS0lMTCBzY3JpcHQ6IFBvc3RQcm9jZXNzSW5WaXJ0dW9zby5pbC4KLSAgICMKLSAgICMgICAgVGhpcyBzY3JpcHQgcmVhZHMvZXhlY3V0ZXMgdGhlIHNjcmlwdCBnZ0NyZWF0ZVN5bWJvbEFuZENERi5pbC4KLSAgICMKLSAgICMKLSAgICMgNSkgSWYgVmlydHVvc28gaXMgaW4gdGhlIHVzZXIncyBwYXRoLCBpdCB3aWxsIGV4ZWN1dGUgdGhlIHNjcmlwdDoKLSAgICMKLSAgICMgICAgICAgICBQb3N0UHJvY2Vzc0luVmlydHVvc28uaWwgCi0gICAjIAotICAgIwotICAgIwotICAgIyAgQ3JlYXRlZCBieTogICBCaWxsIFdhcmVoYW0gICAgIDAxLzI2LzIwMTUKLSAgICMgICAgICAgICAgICAgICAgVmlrcmFtIEFnYXJ3YWwKLSAgICMgICAgICAgICAgICAgICAgR3JlZyBHb3J0b24KLSAgICMKLSAgICMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSAgIAotICAgcHJvYyBjcmVhdGVfbHZzX2RhdGEge30gewotICAgCi0gICAgICBnbG9iYWwgdmFycwotICAgICAgZ2xvYmFsIGluZm9zCi0gICAgICBnbG9iYWwgd2FybmluZ3MKLSAgIAotICAgICAgIyBDcmVhdGUgdGhlIGdnQ3JlYXRlU3ltYm9sQW5kQ0RGLmlsIHNraWxsIGNvZGUKLSAgICAgIAotICAgICAgc2V0IGluZm9zKCR2YXJzKGluZm9fY291bnQpKSAiQ3JlYXRlZCB0aGUgJHZhcnMoc2NyaXB0X2RpcikvZ2dDcmVhdGVTeW1ib2xBbmRTREYuaWwgU0tJTEwgc2NyaXB0XG4iCi0gICAgICBpbmNyIHZhcnMoaW5mb19jb3VudCkKLSAgICAgIHNldCBvcCBbb3BlbiAkdmFycyhzY3JpcHRfZGlyKS9nZ0NyZWF0ZVN5bWJvbEFuZENERi5pbCB3XQotICAgICAgcHV0cyAkb3AgIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OzsiCi0gICAgICBwdXRzICRvcCAiOzs7IgotICAgICAgcHV0cyAkb3AgIjs7OyBGdW5jdGlvbjogZ2dDcmVhdGVTeW1ib2xBbmRDREYgLSBwZXJmb3JtcyBzZXZlcmFsIGZ1bmN0aW9ucyB0byBwcmVwYXJlIGEgZGlnaXRhbCIKLSAgICAgIHB1dHMgJG9wICI7OzsgIGJsb2NrIHNhdmVkIGZyb20gSW5ub3Z1cyBpbiBPQSBmb3IgZm9sbG93IG9uIGludGVncmF0aW9uIGluIGEgdG9wIGxldmVsIFZpcnR1b3NvIgotICAgICAgcHV0cyAkb3AgIjs7OyAgc2NoZW1hdGljIHRvIHN1cHBvcnQgUFZTIExWUy4iCi0gICAgICBwdXRzICRvcCAiOzs7IgotICAgICAgcHV0cyAkb3AgIjs7OyBJbnB1dHM6IgotICAgICAgcHV0cyAkb3AgIjs7OyAgICAgbGlicmFyeSAgICAgICAgOiBOYW1lIG9mIHRoZSBsaWJyYXJ5IHdpdGggdGhlIGRpZ2l0YWwgYmxvY2siCi0gICAgICBwdXRzICRvcCAiOzs7ICAgICBjZWxsTmFtZSAgICAgICA6IE5hbWUgb2YgdGhlIGRpZ2l0YWwgYmxvY2siCi0gICAgICBwdXRzICRvcCAiOzs7ICAgICB2aWV3TmFtZSAgICAgICA6IE5hbWUgb2YgdGhlIGRpZ2l0YWwgYmxvY2sgdW5yZW1hc3RlcmVkIGxheW91dCB2aWV3IgotICAgICAgcHV0cyAkb3AgIjs7OyAgICAgdmVyaWxvZ0ZpbGUgICAgOiBOYW1lIG9mIHRoZSB2ZXJpbG9nIG5ldGxpc3QiCi0gICAgICBwdXRzICRvcCAiOzs7ICAgICBvdmVyd3JpdGUgICAgICA6IE92ZXJ3cml0ZSBleGlzdGluZyBsaWJyYXJ5IgotICAgICAgcHV0cyAkb3AgIjs7OyIKLSAgICAgIHB1dHMgJG9wICI7OzsgT3V0cHV0czoiCi0gICAgICBwdXRzICRvcCAiOzs7ICAgICBsYXlvdXQgdmlldyAgICA6IFwibGF5b3V0XCIgdmlldyB3aXRoIGFic3RyYWN0cyByZW1hc3RlcmVkIHRvIHR5cGUgbGF5b3V0IgotICAgICAgcHV0cyAkb3AgIjs7OyAgICAgc3ltYm9sIHZpZXcgICAgOiBcInN5bWJvbFwiIHZpZXcgd2l0aCBwaW5zIHRvIG1hdGNoIHZlcmlsb2dGaWwiCi0gICAgICBwdXRzICRvcCAiOzs7ICAgICBhdUNkbCB2aWV3ICAgICA6IGNvcHkgb2Ygc3ltYm9sIHZpZXcgZm9yIGNkbCBuZXRsaXN0aW5nIHN0b3AgYW5kIHZpZXcgbGlzdHMiCi0gICAgICBwdXRzICRvcCAiOzs7ICAgICBhdUNkbCBDREYgICAgICA6IGJhc2UgQ0RGIGF1Q2RsIHNpbXVsYXRpb24gcHJvcGVydGllcyBmb3IgbmV0bGlzdGluZyIKLSAgICAgIHB1dHMgJG9wICI7OzsiCi0gICAgICBwdXRzICRvcCAiOzs7IGdnQ3JlYXRlU3ltYm9sQW5kQ0RGKFwibGlibmFtZVwiIFwiY2VsbE5hbWVcIiBcInZpZXdOYW1lXCIgXCIvcGF0aF90b19maWxlL215bmFtZS52XCIpIgotICAgICAgcHV0cyAkb3AgIjs7OyIKLSAgICAgIHB1dHMgJG9wICI7OzsgTm90ZXM6IgotICAgICAgcHV0cyAkb3AgIjs7OyIKLSAgICAgIHB1dHMgJG9wICI7OzsgVGhlIGlucHV0IGxheW91dCBmaWxlIGZyb20gSW5ub3Z1cyBvbiBPQSBjcmVhdGVkIHdpdGggdGhlIGZvbGxvd2luZyBjb21ubWFuZDoiCi0gICAgICBwdXRzICRvcCAiOzs7ICAgICBzYXZlRGVzaWduIC1jZWxsdmlldyB7IGxpYnJhcnkgY2VsbE5hbWUgdmlld05hbWUgfSIKLSAgICAgIHB1dHMgJG9wICI7OzsgVXNlZCB2aWV3TmFtZSBcImVkaV9yb3V0ZWRcIiB0byBzaWduaWZ5IHJvdXRlZCBkZXNpZ24gZnJvbSBFREkuIgotICAgICAgcHV0cyAkb3AgIjs7OyBUaGlzIGZpbGUgY2FuIGJlIHVzZWQgdG8gcmVzdG9yZSBkZXNpZ24gaW4gSW5ub3Z1cy4gWW91IGNhbiBhbHNvIHJ1biBvYU91dCIKLSAgICAgIHB1dHMgJG9wICI7OzsgZnJvbSBJbm5vdnVzIGFuZCBoYXZlIGl0IGNyZWF0ZSBhIGxheW91dCB2aWV3IHdpdGggdGhlIGFic3RyYWN0cyByZW1hc3RlcmVkLiIKLSAgICAgIHB1dHMgJG9wICI7OzsgVGhpcyBzY3JpcHQgd2lsbCB0YWtlIGNhcmUgb2YgdGhpcyBzdGVwIGluIFZpcnR1b3NvIHNvIHlvdSBkb24ndCBoYXZlIHRvIHJ1biIKLSAgICAgIHB1dHMgJG9wICI7OzsgdGhlIHNlY29uZCBzYXZlIGZyb20gSW5ub3Z1cy4iCi0gICAgICBwdXRzICRvcCAiOzs7IgotICAgICAgcHV0cyAkb3AgIjs7OyBUaGUgdmVyaWxvZ0ZpbGUgd2FzIGNyZWF0ZWQgZnJvbSBJbm5vdnVzIHVzaW5nIHRoZSBmb2xsb3dpbmcgY29tbWFuZDoiCi0gICAgICBwdXRzICRvcCAiOzs7ICAgICBzYXZlTmV0bGlzdCBteW5hbWUudiAtZXhjbHVkZUxlYWZDZWxsIC1waHlzIC1leGNsdWRlQ2VsbEluc3QgXCJGSUxMMSAuLi5cIiIKLSAgICAgIHB1dHMgJG9wICI7OzsgVXNlZCBcImNlbGxOYW1lX3BoeXNfbm9maWxsLnZcIiBhcyBhbiBleGFtcGxlLiIKLSAgICAgIHB1dHMgJG9wICI7OzsgVGhpcyBjcmVhdGVzIGEgcGh5c2ljYWwgdmVyaWxvZyBuZXRsaXN0IHdpdGggcG93ZXIgYW5kIGdyb3VuZCBwaW5zLCBleGNsdWRlcyIKLSAgICAgIHB1dHMgJG9wICI7OzsgbGVhZiBjZWxscyAoc3RhbmRhcmQgY2VsbHMpIGFuZCByZW1vdmVzIHRoZSBGSUxMIGNlbGxzIGxpc3RlZC4iCi0gICAgICBwdXRzICRvcCAiOzs7IgotICAgICAgcHV0cyAkb3AgIjs7OyBUaGUgc2NyaXB0IGlzIHdyaXR0ZW4gdG8gYWNjZXB0IHRoZSBpbnB1dHMgZnJvbSB0aGUgY29tbWFuZCBsaW5lLiBUaGlzIGNhbiBiZSIKLSAgICAgIHB1dHMgJG9wICI7OzsgbW9kaWZpZWQgdG8gcHVsbCBmcm9tIHRoZSBhY3RpdmUgd2luZG93IGFuZC9vciBhIGZvcm0uIgotICAgICAgcHV0cyAkb3AgIjs7OyIKLSAgICAgIHB1dHMgJG9wICI7OzsgVGhlIGxheW91dCBzYXZlZCBmcm9tIElubm92dXMgc2hvdWxkIGJlIG5hbWVkIHNvbWV0aGluZyBvdGhlciB0aGFuIFwibGF5b3V0XCIuIEl0IGlzIgotICAgICAgcHV0cyAkb3AgIjs7OyBhc3N1bWVkIHRoYXQgYWxsIHRoZSBpbnN0YW5jZXMgYXJlIG9mIHR5cGUgXCJhYnN0cmFjdFwiIGFuZCBuZWVkIHRvIGJlIHJlbWFzdGVyZWQiCi0gICAgICBwdXRzICRvcCAiOzs7IHRvIHR5cGUgXCJsYXlvdXRcIi4gVG8gY2hhbmdlIHRoZSBkZWZhdWx0IG5hbWUgZm9yIHRoZSByZW1hc3RlcmVkIGxheW91dCB2aWV3IGZyb20iCi0gICAgICBwdXRzICRvcCAiOzs7IFwibGF5b3V0XCIsIGNoYW5nZSB0aGUgXCJuZXdWaWV3XCIgdmFyaWFibGUuIgotICAgICAgcHV0cyAkb3AgIjs7OyIKLSAgICAgIHB1dHMgJG9wICI7OzsgVGhlIHN5bWJvbCB2aWV3IGlzIGNyZWF0ZWQgdXNpbmcgVmVyaWxvZ0luLiBUaGUgcGh5c2ljYWwgVmVyaWxvZyBuZXRsaXN0IGZyb20gRURJIgotICAgICAgcHV0cyAkb3AgIjs7OyBpcyBwYXJzZWQgYW5kIGEgdGVtcG9yYXJ5IG5ldGxpc3QgY3JlYXRlZCB0aGF0IG9ubHkgaGFzIHRoZSBtb2R1bGUgYW5kIHBpbnMiCi0gICAgICBwdXRzICRvcCAiOzs7IGRlZmluZWQgZm9yIHRoZSBkaWdpdGFsIGJsb2NrIFwiY2VsbE5hbWVcIi4gVGhlIHJlZ3VsYXIgZXhwcmVzc2lvbiBjaGVja3MgdG8gc3RhcnQiCi0gICAgICBwdXRzICRvcCAiOzs7IGFuZCBzdG9wIHRoZSBwYXJzaW5nIG9mIHRoZSBpbnB1dCB2ZXJpbG9nIG5ldGxpc3QgdG8ganVzdCBleHRyYWN0IHRoZSBwaW4iCi0gICAgICBwdXRzICRvcCAiOzs7IGRlZmluaXRpb25zIGlzIGJhc2ljIGFuZCBzcGVjaWZpYyB0byB0aGUgc3ludGF4IHNlZW4gaW4gYSBjb3VwbGUgZXhhbXBsZXMgZnJvbSIKLSAgICAgIHB1dHMgJG9wICI7OzsgRURJLiBTZWUgY29tbWVudHMgaW4gdGhlIFwiQ3JlYXRpbmcgL3RtcC9paGRsX3Zlcmlsb2cudlwiIHNlY3Rpb24gZm9yIGRldGFpbHMuIgotICAgICAgcHV0cyAkb3AgIjs7OyIKLSAgICAgIHB1dHMgJG9wICI7OzsgVHdvIGxvZyBmaWxlcyBhcmUgY3JlYXRlZCBkdXJpbmcgVmVyaWxvZ0luOiIKLSAgICAgIHB1dHMgJG9wICI7OzsgICBWZXJpbG9nSW4ubG9nIgotICAgICAgcHV0cyAkb3AgIjs7OyAgIFZlcmlsb2dJbl9zdGRvdXQubG9nIgotICAgICAgcHV0cyAkb3AgIjs7OyIKLSAgICAgIHB1dHMgJG9wICI7OzsgVGhlIGRlZmF1bHQgaXMgdG8gb3ZlcndyaXRlIHRoZSBleGlzdGluZyBzeW1ib2wgZHVyaW5nIFZlcmlsb2dJbiBpZiBpdCB3YXMiCi0gICAgICBwdXRzICRvcCAiOzs7IHByZXZpb3VzbHkgY3JlYXRlZCBieSBWZXJpbG9nSW4gXCJvdmVyd3JpdGVfc3ltYm9sIDo9IDFcIi4gVG8gbm90IG92ZXJ3cml0ZSB0aGUiCi0gICAgICBwdXRzICRvcCAiOzs7IHN5bWJvbCwgcmVnYXJkbGVzcyBvZiB0aGUgc291cmNlIHNldCBpdCB0byBcIm92ZXJ3cml0ZV9zeW1ib2wgOj0gMFwiLiIKLSAgICAgIHB1dHMgJG9wICI7OzsiCi0gICAgICBwdXRzICRvcCAiOzs7IFZlcmlsb2dJbiBpcyBydW4gdmlhIHRoZSB1bml4IGNvbW1hbmQgbGluZSB1c2luZyBpaGRsLiBUaGUgaWhkbCBpbnB1dCBmaWxlcyBhcmUiCi0gICAgICBwdXRzICRvcCAiOzs7IGNyZWF0ZWQgaW4gL3RtcC4iCi0gICAgICBwdXRzICRvcCAiOzs7IgotICAgICAgcHV0cyAkb3AgIjs7OyBTZWUgXCJWZXJpbG9nIEluIGZvciBWaXJ0dW9zbyBEZXNpZ24gRW52aXJvbm1lbnQgVXNlciBHdWlkZSBhbmQgUmVmZXJlbmNlXCIuIgotICAgICAgcHV0cyAkb3AgIjs7OyIKLSAgICAgIHB1dHMgJG9wICI7OzsgVGhlIGF1Q2RsIHZpZXcgaXMganVzdCBhIGNvcHkgb2YgdGhlIHN5bWJvbCB2aWV3IGNyZWF0ZWQgYnkgVmVyaWxvZ0luLiIKLSAgICAgIHB1dHMgJG9wICI7OzsiCi0gICAgICBwdXRzICRvcCAiOzs7IFRoZSBDREYgYXVDZGwgc2ltdWxhdGlvbiBwYXJhbWV0ZXJzIGFyZSBjcmVhdGVkIGF0IHRoZSBcImJhc2VcIiBjZWxsIGxldmVsIHRvIgotICAgICAgcHV0cyAkb3AgIjs7OyBlbmFibGUgY2RsIG5ldGxpc3Rpbmcgb2YganVzdCB0aGUgc3ViY2t0IG5hbWUgYW5kIHBpbnMuIFdoZW4gcnVubmluZyBMVlMgdGhlIgotICAgICAgcHV0cyAkb3AgIjs7OyBhc3NvY2lhdGVkIFZlcmlsb2cgbmV0bGlzdCBhbmQgSVAgY2RsIHZpZXdzIHNob3VsZCBiZSBpbmNsdWRlZC4iCi0gICAgICBwdXRzICRvcCAiOzs7ICIKLSAgICAgIHB1dHMgJG9wICI7OzsgV3JpdHRlbiBieTogICAgR3JlZyBHb3J0b24sICAgIDUvMTgvMTQiCi0gICAgICBwdXRzICRvcCAiOzs7IgotICAgICAgcHV0cyAkb3AgIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OzsiCi0gICAgICBwdXRzICRvcCAiIgotICAgICAgcHV0cyAkb3AgInByb2NlZHVyZShnZ0NyZWF0ZVN5bWJvbEFuZENERihsaWJyYXJ5IGNlbGxOYW1lIHZpZXdOYW1lIHZlcmlsb2dGaWxlIEBvcHRpb25hbCAob3ZlcndyaXRlIG5pbCkpIgotICAgICAgcHV0cyAkb3AgIiIKLSAgICAgIHB1dHMgJG9wICIgICAgcHJvZyggKGN2IG5ld1ZpZXcgY3YyIGlocyBzdGFydFN0cmluZyBwcmludE1vZHVsZSBjdjMgY3Y0IGNpZCBjZGxwYXRoIHBvcnRvcmRlciBPVVRGSUxFIElORklMRSBiYXNlQ0RGaWQgbmV4dExpbmUpIgotICAgICAgcHV0cyAkb3AgIiIKLSAgICAgIHB1dHMgJG9wICIgICAgOyB2aWV3IG5hbWUgdG8gdXNlIGZvciBjb3B5IG9mIHNhdmVkIElubm92dXMgbGF5b3V0IHZpZXcgdGhhdCBuZWVkcyB0byBiZSByZW1hc3RlcmVkIgotICAgICAgcHV0cyAkb3AgIiAgICBuZXdWaWV3PVwibGF5b3V0XCIiCi0gICAgICBwdXRzICRvcCAiIgotICAgICAgcHV0cyAkb3AgIiAgICA7IEdldCBsaWJyYXJ5IGNlbGwgYW5kIHZpZXcgZnJvbSB0aGUgYWN0aXZlIHdpbmRvdyIKLSAgICAgIHB1dHMgJG9wICIgICAgOyBBZGQgY3cgdG8gdGhlIGxldCBzdGF0ZW1lbnQiCi0gICAgICBwdXRzICRvcCAiICAgIDsgY3c9aGlHZXRDdXJyZW50V2luZG93KCkiCi0gICAgICBwdXRzICRvcCAiICAgIDsgY3Y9Y3ctPmNlbGxWaWV3IgotICAgICAgcHV0cyAkb3AgIiAgICA7IGxpYnJhcnk9Y3YtPmxpYk5hbWUiCi0gICAgICBwdXRzICRvcCAiICAgIDsgY2VsbE5hbWU9Y3YtPmNlbGxOYW1lIgotICAgICAgcHV0cyAkb3AgIiAgICA7IHZpZXdOYW1lPWN2LT52aWV3TmFtZSIKLSAgICAgIHB1dHMgJG9wICIgICAgOyB2ZXJpbG9nRmlsZT1cIi4vU0NSSVBUL2NvdW50ZXJzVGVzdC52XCIiCi0gICAgICBwdXRzICRvcCAiIgotICAgICAgcHV0cyAkb3AgIiAgICA7IFZlcmlmeSB0aGUgZXhpc3RhbmNlIG9mIHRoZSBpbnB1dCBwYXJhbWV0ZXJzIgotICAgICAgcHV0cyAkb3AgIiAgICB1bmxlc3MoaXNGaWxlKHZlcmlsb2dGaWxlKSIKLSAgICAgIHB1dHMgJG9wICIgICAgICAgIHByaW50ZihcIlRoZSB2ZXJpbG9nIGZpbGUgJXMgZG9lcyBub3QgZXhpc3QuXFxuXCIgdmVyaWxvZ0ZpbGUpIgotICAgICAgcHV0cyAkb3AgIiAgICAgICAgcHJpbnRmKFwiUGxlYXNlIGZpeCBhbmQgcnVuIGFnYWluLlxcblwiKSIKLSAgICAgIHB1dHMgJG9wICIgICAgICAgIHJldHVybigpIgotICAgICAgcHV0cyAkb3AgIiAgICApIgotICAgICAgcHV0cyAkb3AgIiAgICB1bmxlc3MoY3Y9ZGJPcGVuQ2VsbFZpZXdCeVR5cGUoIGxpYnJhcnkgY2VsbE5hbWUgdmlld05hbWUgKSIKLSAgICAgIHB1dHMgJG9wICIgICAgICAgIHByaW50ZihcIlRoZSAlcyAlcyAlcyBjZWxsIHZpZXcgZG9lcyBub3QgZXhpc3QuXFxuXCIgbGlicmFyeSBjZWxsTmFtZSB2aWV3TmFtZSkiCi0gICAgICBwdXRzICRvcCAiICAgICAgICBwcmludGYoXCJQbGVhc2UgZml4IGFuZCBydW4gYWdhaW4uXFxuXCIpIgotICAgICAgcHV0cyAkb3AgIiAgICAgICAgcmV0dXJuKCkiCi0gICAgICBwdXRzICRvcCAiICAgICkiCi0gICAgICBwdXRzICRvcCAiIgotICAgICAgcHV0cyAkb3AgIiAgICA7IENvcHkgcHJlc2VudCB2aWV3IHRvIGEgbGF5b3V0IHZpZXcgKG9yIHZhbHVlIGRlZmluZWQgYnkgcGFyYW1ldGVyIG5ld1ZpZXcpIgotICAgICAgcHV0cyAkb3AgIiAgICBwcmludGYoXCIgIFJ1bm5pbmcgZ2dDcmVhdGVTeW1ib2xBbmRDREY6XFxuXCIpIgotICAgICAgcHV0cyAkb3AgIiAgICBwcmludGYoXCIgIENvcHkgJXMgJXMgJXMgdG8gJXMgJXMgJXMuXFxuXCIgbGlicmFyeSBjZWxsTmFtZSB2aWV3TmFtZSBsaWJyYXJ5IGNlbGxOYW1lIG5ld1ZpZXcpIgotICAgICAgcHV0cyAkb3AgIiAgICB1bmxlc3MoZGJDb3B5Q2VsbFZpZXcoY3YgbGlicmFyeSBjZWxsTmFtZSBuZXdWaWV3IG5pbCBuaWwgb3ZlcndyaXRlKSIKLSAgICAgIHB1dHMgJG9wICIgICAgICAgIHByaW50ZihcIkNhbid0IGNyZWF0ZSB0aGUgbmV3ICVzIHZpZXcuXFxuXCIgbmV3VmlldykiCi0gICAgICBwdXRzICRvcCAiICAgICAgICBwcmludGYoXCJQbGVhc2UgdXNlIHRoZSBvdmVyd3JpdGUgcGFyYW1ldGVyOiBnZ0NyZWF0ZVN5bWJvbEFuZENERihsaWIgY2VsbCB2aWV3IHZlcmlsb2dmaWxlIHQpIGFuZCBjaGVjayBwZXJtaXNzaW9ucy5cXG5cIikiCi0gICAgICBwdXRzICRvcCAiICAgICAgICByZXR1cm4oKSIKLSAgICAgIHB1dHMgJG9wICIgICAgKSIKLSAgICAgIHB1dHMgJG9wICIiCi0gICAgICBwdXRzICRvcCAiICAgIDsgUmVtYXN0ZXIgaW5zdGFuY2VzIGZyb20gdHlwZSBhYnN0cmFjdCB0byBsYXlvdXQgaW4gdGhlIGxheW91dCB2aWV3IgotICAgICAgcHV0cyAkb3AgIiAgICBjdjI9ZGJPcGVuQ2VsbFZpZXdCeVR5cGUoIGxpYnJhcnkgY2VsbE5hbWUgbmV3VmlldyBcIm1hc2tMYXlvdXRcIiBcImFcIikiCi0gICAgICBwdXRzICRvcCAiICAgIHByaW50ZihcIiAgT3BlbiAlcyAlcyAlcyBmb3IgZWRpdC5cXG5cIiBsaWJyYXJ5IGNlbGxOYW1lIG5ld1ZpZXcpIgotICAgICAgcHV0cyAkb3AgIiIKLSAgICAgIHB1dHMgJG9wICIgICAgaWhzPXNldG9mKGloIGN2Mn4+aW5zdEhlYWRlcnMgaWh+PnZpZXdOYW1lPT1cImFic3RyYWN0XCIpIgotICAgICAgcHV0cyAkb3AgIiAgICBmb3JlYWNoKGloIGlocyIKLSAgICAgIHB1dHMgJG9wICIgICAgICAgIHdoZW4oZGRHZXRPYmooaWh+PmxpYk5hbWUgaWh+PmNlbGxOYW1lIFwibGF5b3V0XCIgKSIKLSAgICAgIHB1dHMgJG9wICIgICAgICAgICAgICBpaH4+bWFzdGVyID0gZGJPcGVuQ2VsbFZpZXdCeVR5cGUoIGlofj5saWJOYW1lIGlofj5jZWxsTmFtZSBcImxheW91dFwiICkiCi0gICAgICBwdXRzICRvcCAiICAgICAgICApIgotICAgICAgcHV0cyAkb3AgIiAgICApIgotICAgICAgcHV0cyAkb3AgIiIKLSAgICAgIHB1dHMgJG9wICIgICAgZGJTYXZlKGN2MikiCi0gICAgICBwdXRzICRvcCAiICAgIGRiQ2xvc2UoY3YyKSIKLSAgICAgIHB1dHMgJG9wICIiCi0gICAgICBwdXRzICRvcCAiICAgIDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OyIKLSAgICAgIHB1dHMgJG9wICIgICAgOyBVc2UgdmVyaWxvZ0luIHRvIGNyZWF0ZSBhIHN5bWJvbCIKLSAgICAgIHB1dHMgJG9wICIgICAgOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7IgotICAgICAgcHV0cyAkb3AgIiAgICBwcmludGYoXCIgIFJ1bm5pbmcgVmVyaWxvZ0luIHRvIGNyZWF0ZSB0aGUgJXMgJXMgc3ltYm9sIHZpZXcuXFxuXCIgbGlicmFyeSBjZWxsTmFtZSkiCi0gICAgICBwdXRzICRvcCAiIgotICAgICAgcHV0cyAkb3AgIiAgICA7IENyZWF0ZSB0aGUgaWhkbCBjb21tYW5kIGZpbGUgaW4gL3RtcCIKLSAgICAgIHB1dHMgJG9wICIgICAgcHJpbnRmKFwiICAgIENyZWF0aW5nIC90bXAvaWhkbF9maWxlc18lc1xcblwiIGNlbGxOYW1lKSIKLSAgICAgIHB1dHMgJG9wICIgICAgT1VURklMRT1vdXRmaWxlKHN0cmNhdChcIi90bXAvaWhkbF9maWxlc19cIiBjZWxsTmFtZSkpIgotICAgICAgcHV0cyAkb3AgIiAgICBmcHJpbnRmKCBPVVRGSUxFIFwiLXBhcmFtIC90bXAvaWhkbF9wYXJhbXNfJXNcXG5cIiBjZWxsTmFtZSkiCi0gICAgICBwdXRzICRvcCAiICAgIGZwcmludGYoIE9VVEZJTEUgXCItY2RzbGliIC4vY2RzLmxpYlxcblwiKSIKLSAgICAgIHB1dHMgJG9wICIgICAgY2xvc2UoT1VURklMRSkiCi0gICAgICBwdXRzICRvcCAiICAgIE9VVEZJTEU9bmlsIgotICAgICAgcHV0cyAkb3AgIiIKLSAgICAgIHB1dHMgJG9wICIgICAgOyBDcmVhdGUgdGhlIGloZGwgcGFyYW1ldGVycyBmaWxlIGluIC90bXAiCi0gICAgICBwdXRzICRvcCAiICAgIDsgTmVlZCB0byBzZXQgcG93ZXIgYW5kIGdyb3VuZCBuZXRzIHRvIGEgbmFtZSBub3QgdXNlZCBpbiB0aGUgaW5wdXQiCi0gICAgICBwdXRzICRvcCAiICAgIDsgdmVyaWxvZyBuZXRsaXN0IG9yIHRoZSBwb3dlciBhbmQgZ3JvdW5kIHBpbnMgd2lsbCBiZSBjaGFuZ2VkIHRvIgotICAgICAgcHV0cyAkb3AgIiAgICA7IGdsb2JhbCBuYW1lcyBvbiB0aGUgc3ltYm9sIHBpbnMuIgotICAgICAgcHV0cyAkb3AgIiAgICBwcmludGYoXCIgICAgQ3JlYXRpbmcgL3RtcC9paGRsX3BhcmFtc18lc1xcblwiIGNlbGxOYW1lKSIKLSAgICAgIHB1dHMgJG9wICIgICAgT1VURklMRT1vdXRmaWxlKHN0cmNhdChcIi90bXAvaWhkbF9wYXJhbXNfXCIgY2VsbE5hbWUpKSIKLSAgICAgIHB1dHMgJG9wICIgICAgZnByaW50ZiggT1VURklMRSBcImRlc3Rfc2NoX2xpYiA6PSAlc1xcblwiIGxpYnJhcnkpIgotICAgICAgcHV0cyAkb3AgIiAgICBmcHJpbnRmKCBPVVRGSUxFIFwicmVmX2xpYl9saXN0IDo9IGJhc2ljXFxuXCIpIgotICAgICAgcHV0cyAkb3AgIiAgICBmcHJpbnRmKCBPVVRGSUxFIFwic3RydWN0dXJhbF92aWV3cyA6PSA0XFxuXCIpIgotICAgICAgcHV0cyAkb3AgIiAgICBmcHJpbnRmKCBPVVRGSUxFIFwiZnVuY3Rpb25hbF92aWV3X25hbWUgOj0gZnVuY3Rpb25hbF90b3Bvbmx5XFxuXCIpIgotICAgICAgcHV0cyAkb3AgIiAgICBmcHJpbnRmKCBPVVRGSUxFIFwic3ltYm9sX3ZpZXdfbmFtZSA6PSBzeW1ib2xcXG5cIikiCi0gICAgICBwdXRzICRvcCAiICAgIGZwcmludGYoIE9VVEZJTEUgXCJvdmVyd3JpdGVfc3ltYm9sIDo9IDFcXG5cIikiCi0gICAgICBwdXRzICRvcCAiICAgIGZwcmludGYoIE9VVEZJTEUgXCJwb3dlcl9uZXQgOj0gUHh4X2R1bW15VmFsdWVcXG5cIikiCi0gICAgICBwdXRzICRvcCAiICAgIGZwcmludGYoIE9VVEZJTEUgXCJncm91bmRfbmV0IDo9IEd4eF9kdW1teVZhbHVlXFxuXCIpIgotICAgICAgcHV0cyAkb3AgIiAgICBmcHJpbnRmKCBPVVRGSUxFIFwibG9nX2ZpbGVfbmFtZSA6PSAuL1Zlcmlsb2dJbi5sb2dcXG5cIikiCi0gICAgICBwdXRzICRvcCAiICAgIGNsb3NlKE9VVEZJTEUpIgotICAgICAgcHV0cyAkb3AgIiAgICBPVVRGSUxFPW5pbCIKLSAgICAgIHB1dHMgJG9wICIiCi0gICAgICBwdXRzICRvcCAiICAgIDsgUGFyc2UgdGhlIFZlcmlsb2cgZmlsZSBmcm9tIElubm92dXMgYW5kIGNyZWF0ZSBhIFZlcmlsb2cgZmlsZSB3aXRoIGp1c3QgdGhlIgotICAgICAgcHV0cyAkb3AgIiAgICA7IHRvcCBtb2R1bGUgZGVmaW5pdGlvbiBmb3IgXCJjZWxsTmFtZVwiIHdpdGggb25seSB0aGUgcGlucyBkZWZpbmUuIgotICAgICAgcHV0cyAkb3AgIiAgICA7IFRoZSByZWd1bGFyIGV4cHJlc3Npb24gY2hlY2tzIHRvIHN0YXJ0IGFuZCBzdG9wIHByaW50aW5nIHRoZSBWZXJpbG9nIgotICAgICAgcHV0cyAkb3AgIiAgICA7IG1vZHVsZSBhcmUgc2ltcGxlIGFuZCB0aWVkIHRvIHRoZSBzeW50YXggZnJvbSBFREkuIEl0IHN0YXJ0cyBvbiB0aGUgZXhhY3QiCi0gICAgICBwdXRzICRvcCAiICAgIDsgc3RyaW5nIFwibW9kdWxlIGNlbGxOYW1lXCIgd2hlcmUgY2VsbE5hbWUgaXMgeW91ciBjZWxsTmFtZS4gSXQgc3RvcHMgYXQgdGhlIgotICAgICAgcHV0cyAkb3AgIiAgICA7IGZpcnN0IGNvbW1lbnQgbGluZSB3aGljaCBoYXMgYmVlbiBcIi8vIEludGVybmFsIHdpcmVzXCIgb3IiCi0gICAgICBwdXRzICRvcCAiICAgIDsgXCIvLyBNb2R1bGUgaW5zdGFudGlhdGlvbnNcIiBpbiBteSBleGFtcGxlcy4gVGhlc2UgY29tZSBhZnRlciB0aGUgcGluIgotICAgICAgcHV0cyAkb3AgIiAgICA7IGRlZmluaXRpb25zLiIKLSAgICAgIHB1dHMgJG9wICIgICAgcHJpbnRmKFwiICAgIENyZWF0aW5nIC90bXAvaWhkbF92ZXJpbG9nXyVzLnZcXG5cIiBjZWxsTmFtZSkiCi0gICAgICBwdXRzICRvcCAiICAgIElORklMRT1pbmZpbGUodmVyaWxvZ0ZpbGUpIgotICAgICAgcHV0cyAkb3AgIiAgICBPVVRGSUxFPW91dGZpbGUoc3ByaW50ZihuaWwgXCIvdG1wL2loZGxfdmVyaWxvZ18lcy52XCIgY2VsbE5hbWUpKSIKLSAgICAgIHB1dHMgJG9wICIgICAgc3RhcnRTdHJpbmc9YnVpbGRTdHJpbmcoIGxpc3QoXCJtb2R1bGVcIiBjZWxsTmFtZSkgKSIKLSAgICAgIHB1dHMgJG9wICIgICAgcHJpbnRNb2R1bGU9XCJub1wiIgotICAgICAgcHV0cyAkb3AgIiAgICB3aGVuKCBJTkZJTEUiCi0gICAgICBwdXRzICRvcCAiICAgICAgICB3aGlsZSggZ2V0cyhuZXh0TGluZSBJTkZJTEUpIgotICAgICAgcHV0cyAkb3AgIiAgICAgICAgICAgIGlmKChyZXhNYXRjaHAoc3RhcnRTdHJpbmcgbmV4dExpbmUpIHx8IHByaW50TW9kdWxlPT1cInllc1wiKSB0aGVuIgotICAgICAgcHV0cyAkb3AgIiAgICAgICAgICAgICAgICBpZihyZXhNYXRjaHAoXCIvL1wiIG5leHRMaW5lKSB0aGVuIgotICAgICAgcHV0cyAkb3AgIiAgICAgICAgICAgICAgICAgICAgcHJpbnRNb2R1bGU9XCJub1wiIgotICAgICAgcHV0cyAkb3AgIiAgICAgICAgICAgICAgICAgICAgZnByaW50ZihPVVRGSUxFIFwiZW5kbW9kdWxlXFxuXCIpIgotICAgICAgcHV0cyAkb3AgIiAgICAgICAgICAgICAgICBlbHNlIgotICAgICAgcHV0cyAkb3AgIiAgICAgICAgICAgICAgICAgICAgcHJpbnRNb2R1bGU9XCJ5ZXNcIiIKLSAgICAgIHB1dHMgJG9wICIgICAgICAgICAgICAgICAgICAgIGZwcmludGYoT1VURklMRSBuZXh0TGluZSkiCi0gICAgICBwdXRzICRvcCAiICAgICAgICAgICAgICAgICkiCi0gICAgICBwdXRzICRvcCAiICAgICAgICAgICAgKSA7IGlmIG1vZHVsZSBjZWxsTmFtZSIKLSAgICAgIHB1dHMgJG9wICIgICAgICAgICkgOyB3aGlsZSBuZXh0TGluZSIKLSAgICAgIHB1dHMgJG9wICIgICAgICAgIGNsb3NlKElORklMRSkiCi0gICAgICBwdXRzICRvcCAiICAgICkgOyB3aGVuIElORklMRSIKLSAgICAgIHB1dHMgJG9wICIgICAgY2xvc2UoT1VURklMRSkiCi0gICAgICBwdXRzICRvcCAiICAgIE9VVEZJTEU9bmlsIgotICAgICAgcHV0cyAkb3AgIiIKLSAgICAgIHB1dHMgJG9wICIgICAgOyBSdW4gaWhkbCB0byBjcmVhdGUgdGhlIHN5bWJvbCB2aWV3IGFuZCB0ZW1wb3JhcnkgZnVuY3Rpb25hbCB2aWV3LiIKLSAgICAgIHB1dHMgJG9wICIgICAgOyBGdW5jdGlvbiB3aWxsIG92ZXJ3cml0ZSBleGlzdGluZyBzeW1ib2wgdmlldyBpZiBwcmV2aW91c2x5IGNyZWF0ZWQgYnkgVmVyaWxvZ0luLiIKLSAgICAgIHB1dHMgJG9wICIgICAgcHJpbnRmKFwiICAgIFJ1bm5pbmcgaWhkbCAtZiAvdG1wL2loZGxfZmlsZXNfJXMgL3RtcC9paGRsX3Zlcmlsb2dfJXMudiA+JiBWZXJpbG9nSW5fc3Rkb3V0XyVzLmxvZ1xcblwiIGNlbGxOYW1lIGNlbGxOYW1lIGNlbGxOYW1lKSIKLSAgICAgIHB1dHMgJG9wICIgICAgc3lzdGVtKHNwcmludGYobmlsIFwiaWhkbCAtZiAvdG1wL2loZGxfZmlsZXNfJXMgL3RtcC9paGRsX3Zlcmlsb2dfJXMudiA+JiBWZXJpbG9nSW5fc3Rkb3V0XyVzLmxvZ1wiIGNlbGxOYW1lIGNlbGxOYW1lIGNlbGxOYW1lICkpIgotICAgICAgcHV0cyAkb3AgIiIKLSAgICAgIHB1dHMgJG9wICIgICAgOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7IgotICAgICAgcHV0cyAkb3AgIiAgICA7IENvcHkgdGhlIHN5bWJvbCB2aWV3IHRvIGFuIGF1Q2RsIHZpZXciCi0gICAgICBwdXRzICRvcCAiICAgIDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OyIKLSAgICAgIHB1dHMgJG9wICIiCi0gICAgICBwdXRzICRvcCAiICAgIHByaW50ZihcIiAgQ29weSAlcyAlcyBzeW1ib2wgdG8gJXMgJXMgYXVDZGwuXFxuXCIgbGlicmFyeSBjZWxsTmFtZSBsaWJyYXJ5IGNlbGxOYW1lKSIKLSAgICAgIHB1dHMgJG9wICIgICAgbmV3Vmlldz1cImF1Q2RsXCIiCi0gICAgICBwdXRzICRvcCAiICAgIGN2Mz1kYk9wZW5DZWxsVmlld0J5VHlwZSggbGlicmFyeSBjZWxsTmFtZSBcInN5bWJvbFwiKSIKLSAgICAgIHB1dHMgJG9wICIgICAgY3Y0PWRiQ29weUNlbGxWaWV3KCBjdjMgbGlicmFyeSBjZWxsTmFtZSBuZXdWaWV3IG5pbCBuaWwgb3ZlcndyaXRlKSIKLSAgICAgIHB1dHMgJG9wICIgICAgZGJDcmVhdGVQcm9wKGN2NCBcIkNETF9ORVRMSVNUX0ZJTEVcIiAnc3RyaW5nIFwiY2RsLm5ldGxpc3RcIikiCi0gICAgICBwdXRzICRvcCAiICAgIHBvcnRvcmRlciA9IGN2NH4+cG9ydE9yZGVyIgotICAgICAgcHV0cyAkb3AgIiAgICBkYkNsb3NlKGN2MykiCi0gICAgICBwdXRzICRvcCAiICAgIGRiU2F2ZShjdjQpIgotICAgICAgcHV0cyAkb3AgIiAgICBkYkNsb3NlKGN2NCkiCi0gICAgICBwdXRzICRvcCAiIgotICAgICAgcHV0cyAkb3AgIiAgICA7Q29udmVydCB0aGUgdmVyaWxvZyBuZXRsaXN0IHRvIGNkbCBuZXRsaXN0IGFuZCBzdG9yZSBpdCBpbiB0aGUgYXVDZGwgY2VsbHZpZXcuIgotICAgICAgcHV0cyAkb3AgIiAgICBjZGxwYXRoID0gZGRHZXRPYmpSZWFkUGF0aChkZEdldE9iaiggbGlicmFyeSBjZWxsTmFtZSBuZXdWaWV3ICkpIgotICAgICAgcHV0cyAkb3AgIiIKLSAgICAgIHB1dHMgJG9wICIgICAgbGV0KChwYXRocykiCi0gICAgICBwdXRzICRvcCAiICAgICAgIHBhdGhzID0gcGFyc2VTdHJpbmcoZ2V0U2hlbGxFbnZWYXIoXCJQQVRIXCIpIFwiOlwiKSIKLSAgICAgIHB1dHMgJG9wICIgICAgICAgaWYoIGlzRmlsZU5hbWUoXCJ2MmNkbFwiIHBhdGhzKSB0aGVuIgotICAgICAgcHV0cyAkb3AgIiAgICAgICAgICBzeXN0ZW0oc3ByaW50ZihuaWwgXCJ2MmNkbCAtdiAlcyAtbyAlcy9jZGwubmV0bGlzdCAtYSBcXFwiXDxcPlxcXCIgXD5cJiB2MmNkbC5sb2dcIiB2ZXJpbG9nRmlsZSBjZGxwYXRoKSkiCi0gICAgICBwdXRzICRvcCAiICAgICAgIGVsc2UiCi0gICAgICBwdXRzICRvcCAiICAgICAgICAgIGlmKCBpc0ZpbGVOYW1lKFwidjJsdnNcIiBwYXRocykgdGhlbiIKLSAgICAgIHB1dHMgJG9wICIgICAgICAgICAgICAgc3lzdGVtKHNwcmludGYobmlsIFwidjJsdnMgLXYgJXMgLW8gJXMvY2RsLm5ldGxpc3QgLWEgXFxcIlw8XD5cXFwiIFw+XCYgdjJjZGwubG9nXCIgdmVyaWxvZ0ZpbGUgY2RscGF0aCkpIgotICAgICAgcHV0cyAkb3AgIiAgICAgICAgICBlbHNlIgotICAgICAgcHV0cyAkb3AgIiAgICAgICAgICAgICBwcmludGYoXCIgICBFUlJPUjogVW5hYmxlIHRvIGZpbmQgVmVyaWxvZyAtPiBDREwgdHJhbnNsYXRvciEhIVxcblwiKSIKLSAgICAgIHB1dHMgJG9wICIgICAgICAgICAgICAgcHJpbnRmKFwiICAgICAgICAgIE5laXRoZXIgdjJjZGwgbm9yIHYybHZzIHdlcmUgZm91bmQgaW4geW91ciBwYXRoLlxcblxcblxcblwiKSIKLSAgICAgIHB1dHMgJG9wICIgICAgICAgKSIKLSAgICAgIHB1dHMgJG9wICIgICAgKSIKLSAgICAgIHB1dHMgJG9wICIiCi0gICAgICBwdXRzICRvcCAiICAgIDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OyIKLSAgICAgIHB1dHMgJG9wICIgICAgOyBDcmVhdGUgdGhlIGJhc2UgbGV2ZWwgQ0RGIGZvciBhdUNkbCBuZXRsaXN0aW5nIgotICAgICAgcHV0cyAkb3AgIiAgICA7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OzsiCi0gICAgICBwdXRzICRvcCAiICAgIDsgVGhlIHN1YmNrdCBvZiB0aGUgdG9wIG1vZHVsZSBpcyBuZXRsaXN0ZWQuIFdoZW4gcnVubmluZyBQVlMgTFZTIGluY2x1ZGUiCi0gICAgICBwdXRzICRvcCAiICAgIDsgdGhlIHRvcCBsZXZlbCBWZXJpbG9nIG5ldGxpc3QgYW5kIGFzc29jaWF0ZWQgSVAgY2RsIG5ldGxpc3RzLiIKLSAgICAgIHB1dHMgJG9wICIgICAgcHJpbnRmKFwiICBDcmVhdGUgQmFzZSBsZXZlbCBDREYgZm9yICVzICVzIHRvIHN1cHBvcnQgY2RsIG5ldGxpc3RpbmcuXFxuXCIgbGlicmFyeSBjZWxsTmFtZSkiCi0gICAgICBwdXRzICRvcCAiICAgIGNpZD1kZEdldE9iaihsaWJyYXJ5IGNlbGxOYW1lKSIKLSAgICAgIHB1dHMgJG9wICIgICAgdW5sZXNzKGJhc2VDREZpZD1jZGZHZXRCYXNlQ2VsbENERihjaWQpIgotICAgICAgcHV0cyAkb3AgIiAgICAgICAgYmFzZUNERmlkPWNkZkNyZWF0ZUJhc2VDZWxsQ0RGKGNpZCkiCi0gICAgICBwdXRzICRvcCAiCWJhc2VDREZpZC0+c2ltSW5mbyA9IGxpc3QoIG5pbCApIgotICAgICAgcHV0cyAkb3AgIgliYXNlQ0RGaWQtPnNpbUluZm8tPmF1Q2RsID0gJyhuaWwpIgotICAgICAgcHV0cyAkb3AgIiAgICApIgotICAgICAgcHV0cyAkb3AgIiAgICBiYXNlQ0RGaWQtPnNpbUluZm8tPmF1Q2RsLT5uZXRsaXN0UHJvY2VkdXJlPVwiYW5zQ2RsU3ViY2t0Q2FsbFwiIgotICAgICAgcHV0cyAkb3AgIiAgICBiYXNlQ0RGaWQtPnNpbUluZm8tPmF1Q2RsLT5uYW1lUHJlZml4PVwiWFwiIgotICAgICAgcHV0cyAkb3AgIiAgICBiYXNlQ0RGaWQtPnNpbUluZm8tPmF1Q2RsLT5jb21wb25lbnROYW1lPVwic3ViY2lyY3VpdFwiIgotICAgICAgcHV0cyAkb3AgIiAgICBiYXNlQ0RGaWQtPnNpbUluZm8tPmF1Q2RsLT50ZXJtT3JkZXI9cG9ydG9yZGVyIgotICAgICAgcHV0cyAkb3AgIiAgICA7YmFzZUNERmlkLT5zaW1JbmZvLT5hdUNkbC0+bW9kZWxOYW1lPVwiY291bnRlcnNcIiIKLSAgICAgIHB1dHMgJG9wICIgICAgY2RmU2F2ZUNERihiYXNlQ0RGaWQpIgotICAgICAgcHV0cyAkb3AgIiIKLSAgICAgIHB1dHMgJG9wICIgICAgKSA7IHByb2ciCi0gICAgICBwdXRzICRvcCAiIgotICAgICAgcHV0cyAkb3AgIikgOyBwcm9jZWR1cmUgZ2dDcmVhdGVTeW1ib2xBbmRDREYoKSIKLSAgICAgIGNsb3NlICRvcAotICAgCi0gICAgICBzZXQgY29tbWFuZHMgIiIKLSAgICAgIAotICAgICAgc2V0IG5ldGxpc3QgJHZhcnMoZGJzX2RpcikvJHZhcnMoZGVzaWduKV9waHlzX25vZmlsbC52Ci0gICAgICAKLSAgICAgICMgQ3JlYXRlIHRoZSBuZXRsaXN0Ci0gICAgICAjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSAgICAgIGFwcGVuZCBjb21tYW5kcyAic2F2ZU5ldGxpc3QgJG5ldGxpc3QgLWV4Y2x1ZGVMZWFmQ2VsbCAtcGh5cyAtZXhjbHVkZUNlbGxJbnN0IFxbZGJHZXQgLXUgLWUgdG9wLnBoeXNJbnN0cy5jZWxsLm5hbWVcXVxuIgotICAgICAgCi0gICAgICAjIENyZWF0ZSB0aGUgLnNpbXJjIGZpbGUKLSAgICAgICMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotICAgICAgc2V0IG9wIFtvcGVuIC5zaW1yYyB3XQotICAgICAgcHV0cyAkb3AgImF1Q2RsRW5hYmxlTmV0bGlzdEluY2x1c2lvbj10IgotICAgICAgcHV0cyAkb3AgImF1Q2RsQ0RGUGluQ250cmw9dCIKLSAgICAgIGNsb3NlICRvcAotICAgICAgCi0gICAgICAjIENyZWF0ZSB0aGUgVmlydHVvc28gcmVwbGF5IGZpbGUKLSAgICAgICMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotICAgICAgc2V0IG9wIFtvcGVuICR2YXJzKHNjcmlwdF9kaXIpL1Bvc3RQcm9jZXNzSW5WaXJ0dW9zby5pbCB3XQotICAgICAgcHV0cyAkb3AgImxvYWQoXCIkdmFycyhzY3JpcHRfZGlyKS9nZ0NyZWF0ZVN5bWJvbEFuZENERi5pbFwiKSIKLSAgICAgIHB1dHMgJG9wICJnZ0NyZWF0ZVN5bWJvbEFuZENERihcIiR2YXJzKG9hX2Rlc2lnbl9saWIpXCIgXCIkdmFycyhkZXNpZ24pXCIgXCJzaWdub2ZmXCIgXCIkbmV0bGlzdFwiIHQpIgotICAgICAgcHV0cyAkb3AgImV4aXQoKSIKLSAgICAgIGNsb3NlICRvcAotICAgICAgCi0gICAgICAjIENhbGwgVmlydHVvc28gCi0gICAgICAjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSAgICAgIGlmICFbc3RyaW5nIG1hdGNoIFthdXRvX2V4ZWNvayB2aXJ0dW9zb10gIiJdIHsKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiXG5leGVjIHZpcnR1b3NvIC1yZXBsYXkgJHZhcnMoc2NyaXB0X2RpcikvUG9zdFByb2Nlc3NJblZpcnR1b3NvLmlsIC1ub2dyYXBoIC1sb2cgJHZhcnMobG9nX2RpcikvUG9zdFByb2Nlc3NJblZpcnR1b3NvLmxvZ1xuIiAKLSAgICAgICAgIHJldHVybiAkY29tbWFuZHMKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgICBzZXQgd2FybmluZ3MoJHZhcnMod2FybmluZ19jb3VudCkpICJVbmFibGUgdG8gZmluZCBWaXJ0dW9zbyBleGVjdXRhYmxlISBUaGUgcmVtYXN0ZXJlZCBsYXlvdXQgdmlldywgc3ltYm9sLCBhdUNkbCB2aWV3cyBhbmQgYXVDZGwgQ0RGIHdpbGwgbm90IGJlIGNyZWF0ZWQiCi0gICAgICAgICBpbmNyIHZhcnMod2FybmluZ19jb3VudCkKLSAgICAgICAgIHJldHVybiAkY29tbWFuZHMKLSAgICAgIH0KLSAgIH0KLQotfQpkaWZmIC0tZ2l0IGEvZmxvdy9wbnIvRVhBTVBMRVMvSU5OT1ZVUy9ERVNJR04vU0NSSVBUUy9JTk5PVlVTL3J1bl9hbGwudGNsIGIvZmxvdy9wbnIvRVhBTVBMRVMvSU5OT1ZVUy9ERVNJR04vU0NSSVBUUy9JTk5PVlVTL3J1bl9hbGwudGNsCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAyYmVhMTllLi4wMDAwMDAwCi0tLSBhL2Zsb3cvcG5yL0VYQU1QTEVTL0lOTk9WVVMvREVTSUdOL1NDUklQVFMvSU5OT1ZVUy9ydW5fYWxsLnRjbAorKysgL2Rldi9udWxsCkBAIC0xLDE4NCArMCwwIEBACi0jIS91c3IvYmluL2VudiB0Y2xzaAotIyAtKi1UQ0wtKi0KLSMKLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSMgICAgICAgICAgICAgICAgICAgICAgIENBREVOQ0UgQ09QWVJJR0hUIE5PVElDRQotIyAgICAgICAgIKkgMjAwOC0yMDEzIENhZGVuY2UgRGVzaWduIFN5c3RlbXMsIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSMKLSMgVGhpcyBGb3VuZGF0aW9uIEZsb3cgaXMgcHJvdmlkZWQgYXMgYW4gZXhhbXBsZSBvZiBob3cgdG8gcGVyZm9ybSBzcGVjaWFsaXplZAotIyB0YXNrcy4KLSMKLSMgVGhpcyB3b3JrIG1heSBub3QgYmUgY29waWVkLCByZS1wdWJsaXNoZWQsIHVwbG9hZGVkLCBvciBkaXN0cmlidXRlZCBpbiBhbnkgd2F5LAotIyBpbiBhbnkgbWVkaXVtLCB3aGV0aGVyIGluIHdob2xlIG9yIGluIHBhcnQsIHdpdGhvdXQgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uCi0jIGZyb20gQ2FkZW5jZS4gTm90d2l0aHN0YW5kaW5nIGFueSByZXN0cmljdGlvbnMgaGVyZWluLCBzdWJqZWN0IHRvIGNvbXBsaWFuY2UKLSMgd2l0aCB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgdGhlIENhZGVuY2Ugc29mdHdhcmUgbGljZW5zZSBhZ3JlZW1lbnQgdW5kZXIKLSMgd2hpY2ggdGhpcyBtYXRlcmlhbCB3YXMgcHJvdmlkZWQsIHRoaXMgbWF0ZXJpYWwgbWF5IGJlIGNvcGllZCBhbmQgaW50ZXJuYWxseQotIyBkaXN0cmlidXRlZCBzb2xlbHkgZm9yIGludGVybmFsIHB1cnBvc2VzIGZvciB1c2Ugd2l0aCBDYWRlbmNlIHRvb2xzLgotIwotIyBUaGlzIHdvcmsgaXMgQ2FkZW5jZSBpbnRlbGxlY3R1YWwgcHJvcGVydHkgYW5kIG1heSB1bmRlciBubyBjaXJjdW1zdGFuY2VzIGJlCi0jIGdpdmVuIHRvIHRoaXJkIHBhcnRpZXMsIG5laXRoZXIgaW4gb3JpZ2luYWwgbm9yIGluIG1vZGlmaWVkIHZlcnNpb25zLCB3aXRob3V0Ci0jIGV4cGxpY2l0IHdyaXR0ZW4gcGVybWlzc2lvbiBmcm9tIENhZGVuY2UuIFRoZSBpbmZvcm1hdGlvbiBjb250YWluZWQgaGVyZWluIGlzCi0jIHRoZSBwcm9wcmlldGFyeSBhbmQgY29uZmlkZW50aWFsIGluZm9ybWF0aW9uIG9mIENhZGVuY2Ugb3IgaXRzIGxpY2Vuc29ycywgYW5kCi0jIGlzIHN1cHBsaWVkIHN1YmplY3QgdG8sIGFuZCBtYXkgYmUgdXNlZCBvbmx5IGJ5IENhZGVuY2UncyBjdXJyZW50IGN1c3RvbWVycwotIyBpbiBhY2NvcmRhbmNlIHdpdGgsIGEgcHJldmlvdXNseSBleGVjdXRlZCBsaWNlbnNlIGFncmVlbWVudCBiZXR3ZWVuIENhZGVuY2UKLSMgYW5kIGl0cyBjdXN0b21lci4KLSMKLSMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSMgVEhJUyBNQVRFUklBTCBJUyBQUk9WSURFRCBCWSBDQURFTkNFICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQKLSMgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YKLSMgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4KLSMgSU4gTk8gRVZFTlQgU0hBTEwgQ0FERU5DRSBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMCi0jIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksCi0jIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUgotIyBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTICBNQVRFUklBTCwgRVZFTiBJRgotIyBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLQotc291cmNlIEZGL3ZhcnMudGNsCi0KLWlmIHshW2luZm8gZXhpc3RzIGVudihWUEFUSCldfSB7Ci0gICBzZXQgZW52KFZQQVRIKSAibWFrZSIKLX0KLQotaWYge1tpbmZvIGV4aXN0cyBlbnYoRkZfU1RBUlQpXX0gewotICAgaWYge1tmaWxlIGV4aXN0cyAkZW52KFZQQVRIKS8kZW52KEZGX1NUQVJUKV19IHsKLSAgICAgIGV4ZWMgcm0gJGVudihWUEFUSCkvJGVudihGRl9TVEFSVCkKLSAgIH0KLSAgIHNldCBzdGFydF9zdGVwICRlbnYoRkZfU1RBUlQpCi19IGVsc2UgewotICAgc2V0IHN0YXJ0X3N0ZXAgaW5pdAotfQotaWYge1tpbmZvIGV4aXN0cyBlbnYoRkZfU1RPUCldfSB7Ci0gICBzZXQgc3RvcF9zdGVwICRlbnYoRkZfU1RPUCkKLX0gZWxzZSB7Ci0gICBzZXQgc3RvcF9zdGVwIHNpZ25vZmYKLX0KLQotIwotIyBTdGFydCB3aXRoIGFsbCBwb3NzaWJsZSBzdGVwcyBpbiB0aGUgZmxvdyB0aGF0IHdlIGNhbiBleGVjdXRlLiAgVGhlbiBmaW5kCi0jIHRoZSBzdWJzZXQgb2Ygc3RlcHMgdGhhdCB3ZSBnZW5lcmF0ZWQgYSBUY2wgY29udHJvbCBmaWxlIGZvcgotIwotCi1zZXQgdmFycyhzaW5nbGUpIHRydWUKLQotc2V0IGZvdW5kX3N0ZXBzIFtsaXN0XQotZm9yZWFjaCBzdGVwICR2YXJzKGJzdGVwcykgewotICAgc2V0IHJ1bl9maWxlKCRzdGVwKSAiJHZhcnMoc2NyaXB0X2RpcikvSU5OT1ZVUy9ydW5fJHN0ZXAudGNsIgotICAgaWYge1tmaWxlIGV4aXN0cyAkcnVuX2ZpbGUoJHN0ZXApXX0gewotICAgICAgbGFwcGVuZCBmb3VuZF9zdGVwcyAkc3RlcAotICAgfQotfQotI3NldCBzdGVwcyAkZm91bmRfc3RlcHMKLQotc2V0IHRpbWUgMAotc2V0IGluZGV4IDAKLWZvcmVhY2ggc3RlcCAkZm91bmRfc3RlcHMgewotICAgaWYge1tmaWxlIGV4aXN0cyAkZW52KFZQQVRIKS8kc3RlcF19IHsKLSAgICAgIGlmIHtbZmlsZSBtdGltZSAkZW52KFZQQVRIKS8kc3RlcF0gPiAkdGltZX0gewotICAgICAgICAgaWYge1tsaW5kZXggJGZvdW5kX3N0ZXBzICRpbmRleF0gPT0gInNpZ25vZmYifSB7Ci0gICAgICAgICAgICBwdXRzICI8RkY+IFNURVAgc2lnbm9mZiBDT01QTEVURSAuLi4gTk9USElORyBUTyBETyIKLSAgICAgICAgICAgIGV4aXQKLSAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBzZXQgc3RhcnRfc3RlcCBbbGluZGV4ICRmb3VuZF9zdGVwcyBbZXhwciAkaW5kZXggKyAxXV0KLSAgICAgICAgIH0KLSAgICAgIH0KLSAgIH0gZWxzZSB7Ci0gICAgICBzZXQgc3RhcnRfc3RlcCAkc3RlcAotICAgICAgYnJlYWsKLSAgIH0KLSAgIGluY3IgaW5kZXgKLX0KLQotcHV0cyAiPEZGPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIKLWlmIHskc3RhcnRfc3RlcCA9PSAkc3RvcF9zdGVwfSB7Ci0gICBwdXRzICI8RkY+IFJVTk5JTkcgU1RFUCAkc3RhcnRfc3RlcCAuLi4iCi19IGVsc2UgewotICAgcHV0cyAiPEZGPiBSVU5OSU5HIFNURVAgJHN0YXJ0X3N0ZXAgdGhyb3VnaCAkc3RvcF9zdGVwIC4uLiIKLX0KLXB1dHMgIjxGRj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iCi1zbGVlcCA1Ci0KLSMKLSMgRW11bGF0ZSB0aGUgZnVuY3Rpb25hbGl0eSBvZiB0aGUgIm1ha2UiIHByb2dyYW0uICBJZiBhIGZpbGUgZG9lc24ndCBleGlzdCwKLSMgb3IgaWYgaXQncyBwcmVkZWNlc3NvciBzdGVwIGhhcyBleGVjdXRlZCBtb3JlIHJlY2VudGx5LCBydW4gdGhlIGN1cnJlbnQKLSMgc3RlcCBhbmQgdXBkYXRlIHRoZSB0aW1lL2RhdGUgc3RhbXBzIG9mIHRoZSBmaWxlcyB3ZSB0cmFjayBwcm9ncmVzcyB3aXRoCi0jCi0KLXNldCB2YXJzKHN0b3Bfc3RlcCkgJHN0b3Bfc3RlcAotCi1zZXQgbGFzdF9zdGVwICIiCi1zZXQgdmFycyhzaW5nbGUpIDEKLWlmIHskdmFycyhlbmFibGVfcW9yX2NoZWNrKX0gewotICAgc2V0IGNoZWNrX3FvciAkdmFycyhzY3JpcHRfZGlyKS9jaGVja19xb3IudGNsCi19Ci1leGVjIG1rZGlyIC1wIG1ha2UKLWZvcmVhY2ggc3RlcCAkZm91bmRfc3RlcHMgewotICAgc2V0IHZhcnMoc3RlcCkgJHN0ZXAKLSAgIHB1dHMgIjxGRj4gU1RFUCAkdmFycyhzdGVwKSAuLi4iCi0gICBzZXQgdGhpc19zZW1hcGhvcmUgIiRlbnYoVlBBVEgpLyRzdGVwIgotICAgc2V0IGxhc3Rfc2VtYXBob3JlICIkZW52KFZQQVRIKS8kbGFzdF9zdGVwIgotCi0gICBzZXQgcnVuX3N0ZXAgZmFsc2UKLSAgIGlmIHshW2ZpbGUgZXhpc3RzICR0aGlzX3NlbWFwaG9yZV19IHsKLSAgICAgIHNldCBydW5fc3RlcCB0cnVlCi0gICB9IGVsc2VpZiB7JGxhc3Rfc3RlcCAhPSAiIn0gewotICAgICAgZmlsZSBzdGF0ICR0aGlzX3NlbWFwaG9yZSB0aGlzX3N0YXQKLSAgICAgIGZpbGUgc3RhdCAkbGFzdF9zZW1hcGhvcmUgbGFzdF9zdGF0Ci0gICAgICBpZiB7JHRoaXNfc3RhdChtdGltZSkgPCAkbGFzdF9zdGF0KG10aW1lKX0gewotICAgICAgICAgc2V0IHJ1bl9zdGVwIHRydWUKLSAgICAgIH0KLSAgIH0KLQotICAgIwotICAgIyBDaGVjayB0aGUgcXVhbGl0eSBvZiByZXN1bHRzIGZyb20gdGhlIGxhc3Qgc3RlcC4gIElmIHRoZSByZXN1bHRzIGFyZW4ndAotICAgIyBhcyBleHBlY3RlZCwgZG9uJ3QgcHJvY2VlZCB0byB0aGUgbmV4dCBzdGVwCi0gICAjCi0gICBpZiB7JHZhcnMoZW5hYmxlX3Fvcl9jaGVjayl9IHsKLSAgICAgIGlmIHskc3RlcCAhPSAiaW5pdCJ9IHsKLSAgICAgICAgIHNldCBxb3IgW2NhdGNoIHtleGVjICRjaGVja19xb3IgJGxhc3Rfc2VtYXBob3JlfSBtc2ddCi0gICAgICAgICBpZiB7JHFvcn0gewotICAgICAgICAgICAgcHV0cyAiPEZGPiBFUlJPUjogUU9SIFJFU1VMVCBDSEVDSyBJTkRJQ0FURVMgQSBQUk9CTEVNIElOIFNURVAgJGxhc3Rfc3RlcCIKLSAgICAgICAgICAgIGV4aXQgLTExMQotICAgICAgICAgfQotICAgICAgfQotICAgfQotCi0gICBzZXQgbGFzdF9zdGVwICRzdGVwCi0gICBpZiB7ISRydW5fc3RlcH0gewotICAgICAgY29udGludWUKLSAgIH0KLQotICAgIwotICAgIyBTb3VyY2UgdGhlIGNvbnRyb2wgZmlsZSB0aGF0IHJ1bnMgdGhlIHN0ZXAuICBJZiBpdCBoYWQgYW4gZXJyb3IsIGV4aXQKLSAgICMgaW1tZWRpYXRlbHkuICBPdGhlcndpc2UsIHVwZGF0ZSB0aGUgdGltZS9kYXRlIHN0YW1wIG9mIHRoZSBjb3JyZXNwb25kaW5nCi0gICAjCi0gICAjCi0KLSAgIGlmIHtbY2F0Y2gge3NvdXJjZSAkcnVuX2ZpbGUoJHN0ZXApfSBtZXNzYWdlXX0gewotICAgICAgcHV0cyAkbWVzc2FnZQotICAgICAgZXhpdCAtMTExCi0gICB9Ci0KLSAgICMKLSAgICMgSWYgdGhlcmUgaXMgYSBRT1IgY2hlY2sgZmlsZSBmb3IgdGhpcyBzdGVwLCBleGVjdXRlIGl0IGFuZCBwbGFjZSB0aGUKLSAgICMgcmVzdWx0IGludG8gdGhlIG1ha2UgZmlsZS4gIE90aGVyd2lzZSBqdXN0IHRvdWNoIHRoZSBmaWxlCi0gICAjCi0KLSAgIGlmIHskdmFycyhlbmFibGVfcW9yX2NoZWNrKX0gewotICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCRzdGVwLHFvcl90Y2xdfSB7Ci0gICAgICAgICBzZXQgcW9yX2ZpbGUgJHZhcnMoJHN0ZXAscW9yX3RjbCkKLSAgICAgICAgIGlmIHtbZmlsZSBleGlzdHMgJHFvcl9maWxlXX0gewotICAgICAgICAgICAgc2V0IHFvciBbY2F0Y2gge2V4ZWMgJHFvcl9maWxlfSBtc2ddCi0gICAgICAgICAgICBzZXQgbWFrZV9maWxlIFtvcGVuICR0aGlzX3NlbWFwaG9yZSB3XQotICAgICAgICAgICAgcHV0cyAkbWFrZV9maWxlICIkcW9yIgotICAgICAgICAgICAgY2xvc2UgJG1ha2VfZmlsZQotICAgICAgICAgfQotICAgICAgfQotICAgfQotICAgZXhlYyAvYmluL3RvdWNoICR0aGlzX3NlbWFwaG9yZQotCi0gICBpZiB7JHN0ZXAgPT0gJHN0b3Bfc3RlcH0gewotICAgICAgZXhpdCAKLSAgIH0KLX0KZGlmZiAtLWdpdCBhL2Zsb3cvcG5yL0VYQU1QTEVTL0lOTk9WVVMvREVTSUdOL1NDUklQVFMvSU5OT1ZVUy9ydW5fZGVidWcudGNsIGIvZmxvdy9wbnIvRVhBTVBMRVMvSU5OT1ZVUy9ERVNJR04vU0NSSVBUUy9JTk5PVlVTL3J1bl9kZWJ1Zy50Y2wKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDUxY2IxYTIuLjAwMDAwMDAKLS0tIGEvZmxvdy9wbnIvRVhBTVBMRVMvSU5OT1ZVUy9ERVNJR04vU0NSSVBUUy9JTk5PVlVTL3J1bl9kZWJ1Zy50Y2wKKysrIC9kZXYvbnVsbApAQCAtMSw4NiArMCwwIEBACi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0jICAgICAgICAgICAgICAgICAgICAgICBDQURFTkNFIENPUFlSSUdIVCBOT1RJQ0UKLSMgICAgICAgICCpIDIwMDgtMjAxMyBDYWRlbmNlIERlc2lnbiBTeXN0ZW1zLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0jCi0jIFRoaXMgRm91bmRhdGlvbiBGbG93IGlzIHByb3ZpZGVkIGFzIGFuIGV4YW1wbGUgb2YgaG93IHRvIHBlcmZvcm0gc3BlY2lhbGl6ZWQKLSMgdGFza3MuCi0jCi0jIFRoaXMgd29yayBtYXkgbm90IGJlIGNvcGllZCwgcmUtcHVibGlzaGVkLCB1cGxvYWRlZCwgb3IgZGlzdHJpYnV0ZWQgaW4gYW55IHdheSwKLSMgaW4gYW55IG1lZGl1bSwgd2hldGhlciBpbiB3aG9sZSBvciBpbiBwYXJ0LCB3aXRob3V0IHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbgotIyBmcm9tIENhZGVuY2UuIE5vdHdpdGhzdGFuZGluZyBhbnkgcmVzdHJpY3Rpb25zIGhlcmVpbiwgc3ViamVjdCB0byBjb21wbGlhbmNlCi0jIHdpdGggdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mIHRoZSBDYWRlbmNlIHNvZnR3YXJlIGxpY2Vuc2UgYWdyZWVtZW50IHVuZGVyCi0jIHdoaWNoIHRoaXMgbWF0ZXJpYWwgd2FzIHByb3ZpZGVkLCB0aGlzIG1hdGVyaWFsIG1heSBiZSBjb3BpZWQgYW5kIGludGVybmFsbHkKLSMgZGlzdHJpYnV0ZWQgc29sZWx5IGZvciBpbnRlcm5hbCBwdXJwb3NlcyBmb3IgdXNlIHdpdGggQ2FkZW5jZSB0b29scy4KLSMKLSMgVGhpcyB3b3JrIGlzIENhZGVuY2UgaW50ZWxsZWN0dWFsIHByb3BlcnR5IGFuZCBtYXkgdW5kZXIgbm8gY2lyY3Vtc3RhbmNlcyBiZQotIyBnaXZlbiB0byB0aGlyZCBwYXJ0aWVzLCBuZWl0aGVyIGluIG9yaWdpbmFsIG5vciBpbiBtb2RpZmllZCB2ZXJzaW9ucywgd2l0aG91dAotIyBleHBsaWNpdCB3cml0dGVuIHBlcm1pc3Npb24gZnJvbSBDYWRlbmNlLiBUaGUgaW5mb3JtYXRpb24gY29udGFpbmVkIGhlcmVpbiBpcwotIyB0aGUgcHJvcHJpZXRhcnkgYW5kIGNvbmZpZGVudGlhbCBpbmZvcm1hdGlvbiBvZiBDYWRlbmNlIG9yIGl0cyBsaWNlbnNvcnMsIGFuZAotIyBpcyBzdXBwbGllZCBzdWJqZWN0IHRvLCBhbmQgbWF5IGJlIHVzZWQgb25seSBieSBDYWRlbmNlJ3MgY3VycmVudCBjdXN0b21lcnMKLSMgaW4gYWNjb3JkYW5jZSB3aXRoLCBhIHByZXZpb3VzbHkgZXhlY3V0ZWQgbGljZW5zZSBhZ3JlZW1lbnQgYmV0d2VlbiBDYWRlbmNlCi0jIGFuZCBpdHMgY3VzdG9tZXIuCi0jCi0jLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0jIFRISVMgTUFURVJJQUwgSVMgUFJPVklERUQgQlkgQ0FERU5DRSAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVECi0jIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GCi0jIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuCi0jIElOIE5PIEVWRU5UIFNIQUxMIENBREVOQ0UgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTAotIyBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLAotIyBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUICAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IKLSMgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyAgTUFURVJJQUwsIEVWRU4gSUYKLSMgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0KLXNldCB2YXJzKHN0ZXApIGRlYnVnCi0KLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSMgU291cmNlIHNjcmlwdCB0byBkZWZpbmUgZGVzaWduIHNwZWNpZmljIHZhcmlhYmxlcwotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotaWYge1tpbmZvIGV4aXN0cyBlbnYoRkZfU0VUVVBfUEFUSCldfSB7Ci0gICBpZiB7W2ZpbGUgZXhpc3RzICRlbnYoRkZfU0VUVVBfUEFUSCldfSB7Ci0gICAgICBQdXRzICI8RkY+IExPQURJTkcgJGVudihGRl9TRVRVUF9QQVRIKS9zZXR1cC50Y2wgLi4uIgotICAgICAgaWYgeyBbIGNhdGNoIHsgc291cmNlICRlbnYoRkZfU0VUVVBfUEFUSCkvc2V0dXAudGNsfSBzZXR1cF9lcnJvciBdIH0gewotICAgICAgICAgUHV0cyAiPEZGPiA9PT09PT09PT09PT09IFNFVFVQIEVSUk9SID09PT09PT09PT09PT09PT09PSIKLSAgICAgICAgIFB1dHMgIjxGRj4gJGVycm9ySW5mbyIKLSAgICAgICAgIFB1dHMgIjxGRj4gJHNldHVwX2Vycm9yIgotICAgICAgICAgUHV0cyAiPEZGPiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09IgotICAgICAgICAgc2V0IHJldHVybl9jb2RlIDk5Ci0gICAgICAgICBleGl0ICRyZXR1cm5fY29kZQotICAgICAgfQotICAgfSBlbHNlIHsKLSAgICAgIFB1dHMgIjxGRj4gRVJST1I6ICRlbnYoRkZfU0VUVVBfUEFUSCkvc2V0dXAudGNsIGRvZXMgbm90IGV4aXN0IgotICAgICAgZXhpdAotICAgfQotfSBlbHNlIHsKLSAgIGlmIHtbZmlsZSBleGlzdHMgc2V0dXAudGNsXX0gewotICAgICAgUHV0cyAiPEZGPiBMT0FESU5HIHNldHVwLnRjbCAuLi4iCi0gICAgICBpZiB7IFsgY2F0Y2ggeyBzb3VyY2Ugc2V0dXAudGNsfSBzZXR1cF9lcnJvciBdIH0gewotICAgICAgICAgUHV0cyAiPEZGPiA9PT09PT09PT09PT09IFNFVFVQIEVSUk9SID09PT09PT09PT09PT09PT09PSIKLSAgICAgICAgIFB1dHMgIjxGRj4gJGVycm9ySW5mbyIKLSAgICAgICAgIFB1dHMgIjxGRj4gJHNldHVwX2Vycm9yIgotICAgICAgICAgUHV0cyAiPEZGPiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09IgotICAgICAgICAgc2V0IHJldHVybl9jb2RlIDk5Ci0gICAgICAgICBleGl0ICRyZXR1cm5fY29kZQotICAgICAgfQotICAgfSBlbHNlIHsKLSAgICAgIFB1dHMgIjxGRj4gRVJST1I6IHNldHVwLnRjbCBkb2VzIG5vdCBleGlzdCIKLSAgICAgIGV4aXQKLSAgIH0KLX0KLQotc291cmNlICR2YXJzKHNjcmlwdF9yb290KS9FREkvcHJvY3MudGNsCi1zb3VyY2UgJHZhcnMoc2NyaXB0X3Jvb3QpL0VUQy91dGlscy50Y2wKLQotOjpGRl9FREk6OmluaXRpYWxpemVfZmxvdwotCi1pZiB7W2luZm8gZXhpc3RzIGVudihTVEVQKV19IHsKLSAgIDo6RkZfRURJOjpsb2FkX2Rlc2lnbiAwICRlbnYoU1RFUCkKLX0KLQotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotIyBMb2FkICJhbHdheXMgc291cmNlIiBwbHVnLWluIHNjcmlwdAotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotOjpGRjo6c291cmNlX3BsdWcgYWx3YXlzX3NvdXJjZV90Y2wKLQotd2luCmRpZmYgLS1naXQgYS9mbG93L3Buci9FWEFNUExFUy9JTk5PVlVTL0RFU0lHTi9TQ1JJUFRTL0lOTk9WVVMvcnVuX2xlYy50Y2wgYi9mbG93L3Buci9FWEFNUExFUy9JTk5PVlVTL0RFU0lHTi9TQ1JJUFRTL0lOTk9WVVMvcnVuX2xlYy50Y2wKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDU4MjczYzcuLjAwMDAwMDAKLS0tIGEvZmxvdy9wbnIvRVhBTVBMRVMvSU5OT1ZVUy9ERVNJR04vU0NSSVBUUy9JTk5PVlVTL3J1bl9sZWMudGNsCisrKyAvZGV2L251bGwKQEAgLTEsMTM5ICswLDAgQEAKLS8vIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0vLyAgICAgICAgICAgICAgICAgICAgICAgQ0FERU5DRSBDT1BZUklHSFQgTk9USUNFCi0vLyAgICAgICAgIKkgMjAwOC0yMDA5IENhZGVuY2UgRGVzaWduIFN5c3RlbXMsIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLS8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0vLwotLy8gVGhpcyBGb3VuZGF0aW9uIEZsb3cgaXMgcHJvdmlkZWQgYXMgYW4gZXhhbXBsZSBvZiBob3cgdG8gcGVyZm9ybSBzcGVjaWFsaXplZAotLy8gdGFza3Mgd2l0aGluIElubm92dXMgU3lzdGVtLgotLy8KLS8vIFRoaXMgd29yayBtYXkgbm90IGJlIGNvcGllZCwgcmUtcHVibGlzaGVkLCB1cGxvYWRlZCwgb3IgZGlzdHJpYnV0ZWQgaW4gYW55IHdheSwKLS8vIGluIGFueSBtZWRpdW0sIHdoZXRoZXIgaW4gd2hvbGUgb3IgaW4gcGFydCwgd2l0aG91dCBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24KLS8vIGZyb20gQ2FkZW5jZS4gTm90d2l0aHN0YW5kaW5nIGFueSByZXN0cmljdGlvbnMgaGVyZWluLCBzdWJqZWN0IHRvIGNvbXBsaWFuY2UKLS8vIHdpdGggdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mIHRoZSBDYWRlbmNlIHNvZnR3YXJlIGxpY2Vuc2UgYWdyZWVtZW50IHVuZGVyCi0vLyB3aGljaCB0aGlzIG1hdGVyaWFsIHdhcyBwcm92aWRlZCwgdGhpcyBtYXRlcmlhbCBtYXkgYmUgY29waWVkIGFuZCBpbnRlcm5hbGx5Ci0vLyBkaXN0cmlidXRlZCBzb2xlbHkgZm9yIGludGVybmFsIHB1cnBvc2VzIGZvciB1c2Ugd2l0aCBDYWRlbmNlIHRvb2xzLgotLy8KLS8vIFRoaXMgd29yayBpcyBDYWRlbmNlIGludGVsbGVjdHVhbCBwcm9wZXJ0eSBhbmQgbWF5IHVuZGVyIG5vIGNpcmN1bXN0YW5jZXMgYmUKLS8vIGdpdmVuIHRvIHRoaXJkIHBhcnRpZXMsIG5laXRoZXIgaW4gb3JpZ2luYWwgbm9yIGluIG1vZGlmaWVkIHZlcnNpb25zLCB3aXRob3V0Ci0vLyBleHBsaWNpdCB3cml0dGVuIHBlcm1pc3Npb24gZnJvbSBDYWRlbmNlLiBUaGUgaW5mb3JtYXRpb24gY29udGFpbmVkIGhlcmVpbiBpcwotLy8gdGhlIHByb3ByaWV0YXJ5IGFuZCBjb25maWRlbnRpYWwgaW5mb3JtYXRpb24gb2YgQ2FkZW5jZSBvciBpdHMgbGljZW5zb3JzLCBhbmQKLS8vIGlzIHN1cHBsaWVkIHN1YmplY3QgdG8sIGFuZCBtYXkgYmUgdXNlZCBvbmx5IGJ5IENhZGVuY2UncyBjdXJyZW50IGN1c3RvbWVycwotLy8gaW4gYWNjb3JkYW5jZSB3aXRoLCBhIHByZXZpb3VzbHkgZXhlY3V0ZWQgbGljZW5zZSBhZ3JlZW1lbnQgYmV0d2VlbiBDYWRlbmNlCi0vLyBhbmQgaXRzIGN1c3RvbWVyLgotLy8KLS8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0vLyBUSElTIE1BVEVSSUFMIElTIFBST1ZJREVEIEJZIENBREVOQ0UgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRAotLy8gV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YKLS8vIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuCi0vLyBJTiBOTyBFVkVOVCBTSEFMTCBDQURFTkNFIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwKLS8vIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksCi0vLyBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUICAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IKLS8vIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgIE1BVEVSSUFMLCBFVkVOIElGCi0vLyBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLS8vIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0KLXZweG1vZGUKLXNldCBkb2ZpbGUgYWJvcnQgZXhpdAotc2V0IHVuZGVmaW5lZCBjZWxsIGJsYWNrX2JveCAtbm9hc2NlbmQgLWJvdGgKLXRjbG1vZGUKLS8vIHNldHVwIHZhcmlhYmxlcyAKLWdsb2JhbCB2YXJzCi1wcm9jIFB1dHMge2FyZ3N9IHsKLQlwdXRzICRhcmdzCi19Ci0vLyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotLy8gU291cmNlIHNjcmlwdCB0byBkZWZpbmUgZGVzaWduIHNwZWNpZmljIHZhcmlhYmxlcwotLy8jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLWlmIHtbaW5mbyBleGlzdHMgZW52KEZGX1NFVFVQX1BBVEgpXX0gewotICAgaWYge1tmaWxlIGV4aXN0cyAkZW52KEZGX1NFVFVQX1BBVEgpXX0gewotICAgICAgUHV0cyAiPEZGPiBMT0FESU5HICRlbnYoRkZfU0VUVVBfUEFUSCkvc2V0dXAudGNsIC4uLiIKLSAgICAgIGNhdGNoIHtzb3VyY2UgJGVudihGRl9TRVRVUF9QQVRIKS9zZXR1cC50Y2x9Ci0gICB9IGVsc2UgewotICAgICAgUHV0cyAiPEZGPiBFUlJPUjogJGVudihGRl9TRVRVUF9QQVRIKS9zZXR1cC50Y2wgZG9lcyBub3QgZXhpc3QiCi0gICAgICBleGl0Ci0gICB9Ci19IGVsc2UgewotICAgaWYge1tmaWxlIGV4aXN0cyBzZXR1cC50Y2xdfSB7Ci0gICAgICBjYXRjaCB7c291cmNlIHNldHVwLnRjbH0KLSAgIH0gZWxzZSB7Ci0gICAgICBQdXRzICI8RkY+IEVSUk9SOiBzZXR1cC50Y2wgZG9lcyBub3QgZXhpc3QiCi0gICAgICBleGl0Ci0gICB9Ci19Ci0KLS8vRGVmaW5lIHRoZSBuZXRsaXN0IHRvIGJlIHZlcmlmeQotaWYge1tpbmZvIGV4aXN0cyBlbnYoU1RFUCldICYmIFtmaWxlIGV4aXN0cyBEQlMvJGVudihTVEVQKS5lbmMuZGF0LyR2YXJzKGRlc2lnbikudi5nel19IHsKLQlzZXQgcmV2aXNlZE5ldGxpc3QgREJTLyRlbnYoU1RFUCkuZW5jLmRhdC8kdmFycyhkZXNpZ24pLnYuZ3oKLX0gZWxzZSB7Ci0gICBQdXRzICI8RkY+IEZhaWxlZCB0byBmaW5kIG5ldGxpc3QgIERCUy8kZW52KFNURVApLmVuYy5kYXQvJHZhcnMoZGVzaWduKS52Lmd6IgotfQotCi1zZXQgcmMgW2NhdGNoIHtzb3VyY2UgJHZhcnMoc2NyaXB0X3Jvb3QpL0VUQy91dGlscy50Y2x9XQotaWYge1tpbmZvIGV4aXN0cyB2YXJzKHRocmVhZHMpXX0gewotCXZweCBzZXQgY29tcGFyZSBvcHRpb24gLXRocmVhZHMgJHZhcnModGhyZWFkcykKLX0KLQotCi0vLyByZWFkIExpYmVydHkgY2VsbCBkZWZpbml0aW9ucwotc2V0IGxpYlNldCAkdmFycygkdmFycygkdmFycyhkZWZhdWx0X3NldHVwX3ZpZXcpLGRlbGF5X2Nvcm5lciksbGlicmFyeV9zZXQpCi12cHggcmVhZCBsaWJyYXJ5IC1zdGF0ZXRhYmxlIC1ib3RoIC1saWJlcnR5ICR2YXJzKCR7bGliU2V0fSx0aW1pbmcpCi0KLS8vIHJlYWQgcmVmZXJlbmNlIG5ldGxpc3QKLXZweCByZWFkIGRlc2lnbiAtdmVyaWxvZyAtc2Vuc2l0aXZlIC1nb2xkZW4gJHZhcnMobmV0bGlzdCkKLQotLy8gcmVhZCBwb3N0LWltcGxlbWVudGF0aW9uIG5ldGxpc3QKLXZweCByZWFkIGRlc2lnbiAtdmVyaWxvZyAtc2Vuc2l0aXZlIC1yZXZpc2VkICRyZXZpc2VkTmV0bGlzdAotCi0vL3NldCB0b3AgbGV2ZWwKLXZweCBzZXQgcm9vdCBtb2R1bGUgJHZhcnMoZGVzaWduKSAtYm90aAotCi1mZl9zb3VyY2VfcGx1ZyBwcmVfbGVjX2NoZWNrX3RjbAotCi12cHhtb2RlCi1yZXBvcnQgZGVzaWduIGRhdGEKLXJlcG9ydCBibGFjayBib3gKLQotc2V0IG1hcHBpbmcgbWV0aG9kIC1uYW1lIGZpcnN0Ci1zZXQgZmxhdHRlbiBtb2RlbCAtc2VxX2NvbnN0YW50IC1zZXFfY29uc3RhbnRfeF90byAwCi1zZXQgZmxhdHRlbiBtb2RlbCAtbm9kZmZfdG9fZGxhdF96ZXJvIC1ub2RmZl90b19kbGF0X2ZlZWRiYWNrCi1zZXQgZmxhdHRlbiBtb2RlbCAtZ2F0ZWRfY2xvY2sKLQotc2V0IHN5c3RlbSBtb2RlIGxlYwotYWRkIGNvbXBhcmUgcG9pbnQgLWFsbAotY29tcGFyZSAtZ2F0ZV90b19nYXRlCi11c2FnZQotLy8gICB2cHggcmVwb3J0IGNvbXBhcmUgZGF0YQotcmVwb3J0IGNvbXBhcmUgZGF0YSAtY2xhc3Mgbm9uZXF1aXZhbGVudCAtY2xhc3MgYWJvcnQgLWNsYXNzIG5vdGNvbXBhcmVkCi1yZXBvcnQgdmVyaWZpY2F0aW9uIC12ZXJib3NlCi1yZXBvcnQgc3RhdGlzdGljcwotCi10Y2xtb2RlCi1zZXQgcG9pbnRzX2NvdW50IFtnZXRfY29tcGFyZV9wb2ludHMgLWNvdW50XQotc2V0IGRpZmZfY291bnQgW2dldF9jb21wYXJlX3BvaW50cyAtZGlmZiAtY291bnRdCi1zZXQgYWJvcnRfY291bnQgW2dldF9jb21wYXJlX3BvaW50cyAtYWJvcnQgLWNvdW50XQotc2V0IHVua25vd25fY291bnQgW2dldF9jb21wYXJlX3BvaW50cyAtdW5rbm93biAtY291bnRdCi1pZiB7JHBvaW50c19jb3VudCA9PSAwfSB7Ci0gICAgcHV0cyAiLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIgotICAgIHB1dHMgIkVSUk9SOiBObyBjb21wYXJlIHBvaW50cyBkZXRlY3RlZCIKLSAgICBwdXRzICItLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iCi19Ci1pZiB7JGRpZmZfY291bnQgPiAwfSB7Ci0gICAgcHV0cyAiLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIgotICAgIHB1dHMgIkVSUk9SOiBEaWZmZXJlbnQgS2V5IFBvaW50cyBkZXRlY3RlZCIKLSAgICBwdXRzICItLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iCi19Ci1pZiB7JGFib3J0X2NvdW50ID4gMH0gewotICAgIHB1dHMgIi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIgotICAgIHB1dHMgIkVSUk9SOiBBYm9ydCBQb2ludHMgZGV0ZWN0ZWQgIgotICAgIHB1dHMgIi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIgotfQotaWYgeyR1bmtub3duX2NvdW50ID4gMH0gewotICAgIHB1dHMgIi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iCi0gICAgcHV0cyAiRVJST1I6IFVua25vd24gS2V5IFBvaW50cyBkZXRlY3RlZCIKLSAgICBwdXRzICItLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIgotfQotcHV0cyAiTm8gb2YgY29tcGFyZSBwb2ludHMgPSAkcG9pbnRzX2NvdW50IgotcHV0cyAiTm8gb2YgZGlmZiBwb2ludHMgICAgPSAkZGlmZl9jb3VudCIKLXB1dHMgIk5vIG9mIGFib3J0IHBvaW50cyAgID0gJGFib3J0X2NvdW50IgotcHV0cyAiTm8gb2YgdW5rbm93biBwb2ludHMgPSAkdW5rbm93bl9jb3VudCIKLWV4aXQgMApkaWZmIC0tZ2l0IGEvZmxvdy9wbnIvRVhBTVBMRVMvSU5OT1ZVUy9ERVNJR04vU0NSSVBUUy9JTk5PVlVTL3J1bl9zaW5nbGUudGNsIGIvZmxvdy9wbnIvRVhBTVBMRVMvSU5OT1ZVUy9ERVNJR04vU0NSSVBUUy9JTk5PVlVTL3J1bl9zaW5nbGUudGNsCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDc1NQppbmRleCA0ZGM2ZWU0Li4wMDAwMDAwCi0tLSBhL2Zsb3cvcG5yL0VYQU1QTEVTL0lOTk9WVVMvREVTSUdOL1NDUklQVFMvSU5OT1ZVUy9ydW5fc2luZ2xlLnRjbAorKysgL2Rldi9udWxsCkBAIC0xLDE1NCArMCwwIEBACi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0jICAgICAgICAgICAgICAgICAgICAgICBDQURFTkNFIENPUFlSSUdIVCBOT1RJQ0UKLSMgICAgICAgICCpIDIwMDgtMjAwOSBDYWRlbmNlIERlc2lnbiBTeXN0ZW1zLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0jCi0jIFRoaXMgRm91bmRhdGlvbiBGbG93IGlzIHByb3ZpZGVkIGFzIGFuIGV4YW1wbGUgb2YgaG93IHRvIHBlcmZvcm0gc3BlY2lhbGl6ZWQKLSMgdGFza3Mgd2l0aGluIElubm92dXMgU3lzdGVtLgotIwotIyBUaGlzIHdvcmsgbWF5IG5vdCBiZSBjb3BpZWQsIHJlLXB1Ymxpc2hlZCwgdXBsb2FkZWQsIG9yIGRpc3RyaWJ1dGVkIGluIGFueSB3YXksCi0jIGluIGFueSBtZWRpdW0sIHdoZXRoZXIgaW4gd2hvbGUgb3IgaW4gcGFydCwgd2l0aG91dCBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24KLSMgZnJvbSBDYWRlbmNlLiBOb3R3aXRoc3RhbmRpbmcgYW55IHJlc3RyaWN0aW9ucyBoZXJlaW4sIHN1YmplY3QgdG8gY29tcGxpYW5jZQotIyB3aXRoIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB0aGUgQ2FkZW5jZSBzb2Z0d2FyZSBsaWNlbnNlIGFncmVlbWVudCB1bmRlcgotIyB3aGljaCB0aGlzIG1hdGVyaWFsIHdhcyBwcm92aWRlZCwgdGhpcyBtYXRlcmlhbCBtYXkgYmUgY29waWVkIGFuZCBpbnRlcm5hbGx5Ci0jIGRpc3RyaWJ1dGVkIHNvbGVseSBmb3IgaW50ZXJuYWwgcHVycG9zZXMgZm9yIHVzZSB3aXRoIENhZGVuY2UgdG9vbHMuCi0jCi0jIFRoaXMgd29yayBpcyBDYWRlbmNlIGludGVsbGVjdHVhbCBwcm9wZXJ0eSBhbmQgbWF5IHVuZGVyIG5vIGNpcmN1bXN0YW5jZXMgYmUKLSMgZ2l2ZW4gdG8gdGhpcmQgcGFydGllcywgbmVpdGhlciBpbiBvcmlnaW5hbCBub3IgaW4gbW9kaWZpZWQgdmVyc2lvbnMsIHdpdGhvdXQKLSMgZXhwbGljaXQgd3JpdHRlbiBwZXJtaXNzaW9uIGZyb20gQ2FkZW5jZS4gVGhlIGluZm9ybWF0aW9uIGNvbnRhaW5lZCBoZXJlaW4gaXMKLSMgdGhlIHByb3ByaWV0YXJ5IGFuZCBjb25maWRlbnRpYWwgaW5mb3JtYXRpb24gb2YgQ2FkZW5jZSBvciBpdHMgbGljZW5zb3JzLCBhbmQKLSMgaXMgc3VwcGxpZWQgc3ViamVjdCB0bywgYW5kIG1heSBiZSB1c2VkIG9ubHkgYnkgQ2FkZW5jZSdzIGN1cnJlbnQgY3VzdG9tZXJzCi0jIGluIGFjY29yZGFuY2Ugd2l0aCwgYSBwcmV2aW91c2x5IGV4ZWN1dGVkIGxpY2Vuc2UgYWdyZWVtZW50IGJldHdlZW4gQ2FkZW5jZQotIyBhbmQgaXRzIGN1c3RvbWVyLgotIwotIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIyBUSElTIE1BVEVSSUFMIElTIFBST1ZJREVEIEJZIENBREVOQ0UgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRAotIyBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRgotIyBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELgotIyBJTiBOTyBFVkVOVCBTSEFMTCBDQURFTkNFIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwKLSMgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwKLSMgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SCi0jIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgIE1BVEVSSUFMLCBFVkVOIElGCi0jIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCi1nbG9iYWwgZW52IAotCi1pZiB7IVtpbmZvIGV4aXN0cyBlbnYoVlBBVEgpXX0gewotICAgc2V0IGVudihWUEFUSCkgIi4vbWFrZSIKLX0KLQotaWYgeyFbaW5mbyBleGlzdHMgdmFyc119IHsKLSAgIHNvdXJjZSBGRi92YXJzLnRjbAotfQotZm9yZWFjaCBmaWxlICR2YXJzKGNvbmZpZ19maWxlcykgewotICAgc291cmNlICRmaWxlCi19Ci0KLXNldCB2YXJzKGNvZGVnZW4pIGZhbHNlCi0KLWlmIHtbaW5mbyBleGlzdHMgZW52KEZGX1NUQVJUKV19IHsKLSAgIGlmIHtbZmlsZSBleGlzdHMgJGVudihWUEFUSCkvJGVudihGRl9TVEFSVCldfSB7Ci0gICAgICBleGVjIHJtICRlbnYoVlBBVEgpLyRlbnYoRkZfU1RBUlQpCi0gICB9Ci0gICBzZXQgc3RhcnRfc3RlcCAkZW52KEZGX1NUQVJUKQotfSBlbHNlIHsKLSAgIHNldCBzdGFydF9zdGVwIGluaXQKLX0KLWlmIHtbaW5mbyBleGlzdHMgZW52KEZGX1NUT1ApXX0gewotICAgc2V0IHN0b3Bfc3RlcCAkZW52KEZGX1NUT1ApCi19IGVsc2UgewotICAgc2V0IHN0b3Bfc3RlcCBzaWdub2ZmCi19Ci0KLXNvdXJjZSAkdmFycyhzY3JpcHRfcm9vdCkvSU5OT1ZVUy9wcm9jcy50Y2wKLQotc2V0IHN0ZXBfbGlzdCAkdmFycyhic3RlcHMpCi0KLXNldCB0aW1lIDAKLXNldCBpbmRleCAwCi1mb3JlYWNoIHN0ZXAgJHN0ZXBfbGlzdCB7Ci0gICBpZiB7W2ZpbGUgZXhpc3RzICRlbnYoVlBBVEgpLyRzdGVwXX0gewotICAgICAgaWYge1tmaWxlIG10aW1lICRlbnYoVlBBVEgpLyRzdGVwXSA+ICR0aW1lfSB7Ci0gICAgICAgICBpZiB7W2xpbmRleCAkc3RlcF9saXN0ICRpbmRleF0gPT0gInNpZ25vZmYifSB7Ci0gICAgICAgICAgICBQdXRzICI8RkY+IFN0ZXAgc2lnbm9mZiBjb21wbGV0ZSAuLi4gbm90aGluZyB0byBkbyIKLSAgICAgICAgICAgIGV4aXQKLSAgICAgICAgIH0gZWxzZSB7IAotICAgICAgICAgICAgc2V0IHN0YXJ0X3N0ZXAgW2xpbmRleCAkc3RlcF9saXN0IFtleHByICRpbmRleCArIDFdXQotICAgICAgICAgfQotICAgICAgfQotICAgfSBlbHNlIHsKLSAgICAgIHNldCBzdGFydF9zdGVwICRzdGVwCi0gICAgICBicmVhawotICAgfQotICAgaW5jciBpbmRleAotfQotCi1pZiB7W2xzZWFyY2ggJHN0ZXBfbGlzdCAkc3RhcnRfc3RlcF0gPiBbbHNlYXJjaCAkc3RlcF9saXN0ICRzdG9wX3N0ZXBdfSB7Ci0gICBQdXRzICI8RkY+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIgotICAgUHV0cyAiPEZGPiAkc3RvcF9zdGVwIHN0ZXAgaXMgdXAgdG8gZGF0ZSIKLSAgIFB1dHMgIjxGRj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iCi0gICBleGl0Ci19Ci1QdXRzICI8RkY+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIgotaWYgeyRzdGFydF9zdGVwID09ICRzdG9wX3N0ZXB9IHsKLSAgIFB1dHMgIjxGRj4gUlVOTklORyBTVEVQICRzdGFydF9zdGVwIC4uLiIKLX0gZWxzZSB7IAotICAgUHV0cyAiPEZGPiBSVU5OSU5HIFNURVAgJHN0YXJ0X3N0ZXAgdGhyb3VnaCAkc3RvcF9zdGVwIC4uLiIKLX0KLVB1dHMgIjxGRj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iCi1zbGVlcCA1Ci0KLWlmIHtbaW5mbyBleGlzdHMgdmFycyhzY3JpcHRfcm9vdCldfSB7Ci0gICBzb3VyY2UgJHZhcnMoc2NyaXB0X3Jvb3QpL0lOTk9WVVMvcHJvY3MudGNsCi0gICBzb3VyY2UgJHZhcnMoc2NyaXB0X3Jvb3QpL0VUQy91dGlscy50Y2wKLSMgICBzb3VyY2UgJHZhcnMoc2NyaXB0X3Jvb3QpL0VUQy9JTk5PVlVTL3V0aWxzLnRjbAotfSBlbHNlICB7Ci0gICBQdXRzICI8RkY+IEVSUk9SOiB2YXJzKHNjcmlwdF9yb290KSBub3QgZGVmaW5lZCAuLi4gcGxlYXNlIGRlZmluZSB5b3VyIGluIHNldHVwLnRjbCIKLSAgIGV4aXQgMQotfQotCi1zZXQgZm91bmQgMAotc2V0IGluZGV4IDAKLXNldCBwcm9jX2xpc3QgW2xpc3RdIAotZm9yZWFjaCBzdGVwICRzdGVwX2xpc3QgewotICAgaWYgeyRzdGVwID09ICRzdGFydF9zdGVwfSB7Ci0gICAgICBzZXQgdmFycyhzdGVwKSAkc3RlcAotICAgICAgZXZhbCAiOjpGRl9FREk6OmluaXRpYWxpemVfZmxvdyIKLSAgICAgIGlmIHskc3RlcCA9PSAiaW5pdCJ9IHsKLSAgICAgICAgIGV2YWwgOjpGRl9FREk6OnJ1bl9pbml0IDAKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgICBzZXQgbmV4dF9zdGVwIFtsaW5kZXggJHN0ZXBfbGlzdCBbZXhwciAkaW5kZXgtMV1dCi0gICAgICAgICBpZiB7ISR2YXJzKGZpeF9ob2xkKX0gewotICAgICAgICAgICAgc3dpdGNoICRzdGVwIHsKLSAgICAgICAgICAgICAgICJyb3V0ZSIgeyBzZXQgbmV4dF9zdGVwICJwb3N0Y3RzIiB9Ci0gICAgICAgICAgICAgICAicG9zdHJvdXRlX3NpIiB7IHNldCBuZXh0X3N0ZXAgInBvc3Ryb3V0ZSIgfQotICAgICAgICAgICAgfQotICAgICAgICAgfQotICAgICAgICAgZXZhbCAiOjpGRl9FREk6OmxvYWRfZGVzaWduIDAgJG5leHRfc3RlcCIKLSAgICAgICAgIGV2YWwgIjo6RkZfRURJOjpydW5fJHN0ZXAgMCIKLSAgICAgIH0KLSAgICAgIGV2YWwgIjo6RkZfRURJOjpzYXZlX3Jlc3VsdHMgMCAkc3RlcCIKLSAgICAgIGlmIHskc3RlcCA9PSAkc3RvcF9zdGVwfSB7Ci0gICAgICAgICBQdXRzICI8RkY+ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0iCi0gICAgICAgICBQdXRzICI8RkY+ICAgICAgICAgIEZPVU5EQVRJT04gRkxPVyBDT01QTEVURSIKLSAgICAgICAgIFB1dHMgIjxGRj4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSIKLSAgICAgICAgIGV4aXQKLSAgICAgIH0KLSAgICAgIHNldCBmb3VuZCAxCi0gICB9IGVsc2UgewotICAgICAgaWYgeyRmb3VuZH0gewotICAgICAgICAgZXZhbCAiOjpGRl9FREk6OnJ1bl8kc3RlcCAwIgotICAgICAgICAgZXZhbCAiOjpGRl9FREk6OnNhdmVfcmVzdWx0cyAwICRzdGVwIgotICAgICAgICAgaWYgeyRzdGVwID09ICRzdG9wX3N0ZXB9IHsKLSAgICAgICAgICAgIFB1dHMgIjxGRj4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSIKLSAgICAgICAgICAgIFB1dHMgIjxGRj4gICAgICAgICAgRk9VTkRBVElPTiBGTE9XIENPTVBMRVRFIgotICAgICAgICAgICAgUHV0cyAiPEZGPiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09IgotICAgICAgICAgICAgc2V0IGZvdW5kIDAKLSAgICAgICAgIH0gCi0gICAgICB9IAotICAgfQotICAgaW5jciBpbmRleCAgIAotfQotCi1leGl0CmRpZmYgLS1naXQgYS9mbG93L3Buci9FWEFNUExFUy9JTk5PVlVTL0RFU0lHTi9TQ1JJUFRTL2dlbl9mbG93LnRjbCBiL2Zsb3cvcG5yL0VYQU1QTEVTL0lOTk9WVVMvREVTSUdOL1NDUklQVFMvZ2VuX2Zsb3cudGNsCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAxM2Q1YzE4Li4wMDAwMDAwCi0tLSBhL2Zsb3cvcG5yL0VYQU1QTEVTL0lOTk9WVVMvREVTSUdOL1NDUklQVFMvZ2VuX2Zsb3cudGNsCisrKyAvZGV2L251bGwKQEAgLTEsMTEyICswLDAgQEAKLSMhL3Vzci9iaW4vZW52IHRjbHNoCi0jIC0qLVRDTC0qLQotCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0jICAgICAgICAgICAgICAgICAgICAgICBDQURFTkNFIENPUFlSSUdIVCBOT1RJQ0UKLSMgICAgICAgICCpIDIwMDgtMjAxMyBDYWRlbmNlIERlc2lnbiBTeXN0ZW1zLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0jCi0jIFRoaXMgRm91bmRhdGlvbiBGbG93IGlzIHByb3ZpZGVkIGFzIGFuIGV4YW1wbGUgb2YgaG93IHRvIHBlcmZvcm0gc3BlY2lhbGl6ZWQKLSMgdGFza3MuCi0jCi0jIFRoaXMgd29yayBtYXkgbm90IGJlIGNvcGllZCwgcmUtcHVibGlzaGVkLCB1cGxvYWRlZCwgb3IgZGlzdHJpYnV0ZWQgaW4gYW55IHdheSwKLSMgaW4gYW55IG1lZGl1bSwgd2hldGhlciBpbiB3aG9sZSBvciBpbiBwYXJ0LCB3aXRob3V0IHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbgotIyBmcm9tIENhZGVuY2UuIE5vdHdpdGhzdGFuZGluZyBhbnkgcmVzdHJpY3Rpb25zIGhlcmVpbiwgc3ViamVjdCB0byBjb21wbGlhbmNlCi0jIHdpdGggdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mIHRoZSBDYWRlbmNlIHNvZnR3YXJlIGxpY2Vuc2UgYWdyZWVtZW50IHVuZGVyCi0jIHdoaWNoIHRoaXMgbWF0ZXJpYWwgd2FzIHByb3ZpZGVkLCB0aGlzIG1hdGVyaWFsIG1heSBiZSBjb3BpZWQgYW5kIGludGVybmFsbHkKLSMgZGlzdHJpYnV0ZWQgc29sZWx5IGZvciBpbnRlcm5hbCBwdXJwb3NlcyBmb3IgdXNlIHdpdGggQ2FkZW5jZSB0b29scy4KLSMKLSMgVGhpcyB3b3JrIGlzIENhZGVuY2UgaW50ZWxsZWN0dWFsIHByb3BlcnR5IGFuZCBtYXkgdW5kZXIgbm8gY2lyY3Vtc3RhbmNlcyBiZQotIyBnaXZlbiB0byB0aGlyZCBwYXJ0aWVzLCBuZWl0aGVyIGluIG9yaWdpbmFsIG5vciBpbiBtb2RpZmllZCB2ZXJzaW9ucywgd2l0aG91dAotIyBleHBsaWNpdCB3cml0dGVuIHBlcm1pc3Npb24gZnJvbSBDYWRlbmNlLiBUaGUgaW5mb3JtYXRpb24gY29udGFpbmVkIGhlcmVpbiBpcwotIyB0aGUgcHJvcHJpZXRhcnkgYW5kIGNvbmZpZGVudGlhbCBpbmZvcm1hdGlvbiBvZiBDYWRlbmNlIG9yIGl0cyBsaWNlbnNvcnMsIGFuZAotIyBpcyBzdXBwbGllZCBzdWJqZWN0IHRvLCBhbmQgbWF5IGJlIHVzZWQgb25seSBieSBDYWRlbmNlJ3MgY3VycmVudCBjdXN0b21lcnMKLSMgaW4gYWNjb3JkYW5jZSB3aXRoLCBhIHByZXZpb3VzbHkgZXhlY3V0ZWQgbGljZW5zZSBhZ3JlZW1lbnQgYmV0d2VlbiBDYWRlbmNlCi0jIGFuZCBpdHMgY3VzdG9tZXIuCi0jCi0jLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0jIFRISVMgTUFURVJJQUwgSVMgUFJPVklERUQgQlkgQ0FERU5DRSAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVECi0jIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GCi0jIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuCi0jIElOIE5PIEVWRU5UIFNIQUxMIENBREVOQ0UgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTAotIyBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLAotIyBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUICAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IKLSMgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyAgTUFURVJJQUwsIEVWRU4gSUYKLSMgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0KLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSMgRm91bmRhdGlvbiBGbG93IENvZGUgR2VuZXJhdG9yCi0jIFZlcnNpb24gOiAxNy4xMC1wMDAzXzEKLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIAotCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSMgUGFyc2UgdGhlIGFyZ3VtZW50cyBwYXNzZWQgaW4gdG8gdGhlIHNjcmlwdC4gIFRoZXNlIHNldCB1cCB0aGUgZW52aXJvbm1lbnQgIwotIyBmb3IgdGhlIHJlc3Qgb2YgdGhlIHN5c3RlbSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLQotaWYgeyhbZmlsZSB0YWlsIFtpbmZvIG5hbWVvZmV4ZWN1dGFibGVdXSA9PSAiZW5jb3VudGVyIikgfHwgKFtmaWxlIHRhaWwgW2luZm8gbmFtZW9mZXhlY3V0YWJsZV1dID09ICJ2ZWxvY2l0eSIpIHx8XAotICAgIChbZmlsZSB0YWlsIFtpbmZvIG5hbWVvZmV4ZWN1dGFibGVdXSA9PSAiZ2VudXMiKSB8fCAoW2ZpbGUgdGFpbCBbaW5mbyBuYW1lb2ZleGVjdXRhYmxlXV0gPT0gImlubm92dXMiKX0gewotICAgcHV0cyAiPEZGPiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0iCi0gICBwdXRzICI8RkY+IExvYWRpbmcgdGhlIEZvdW5kYXRpb24gRmxvdyBDb2RlIEdlbmVyYXRvciIKLSAgIHB1dHMgIjxGRj4gVmVyc2lvbiA6IDE3LjEwLXAwMDNfMSIKLSMgICBwdXRzICI8RkY+IEF2YWlsYWJsZSBQcm9jZWR1cmVzOiIKLSAgIHB1dHMgIjxGRj4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09IgotICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKHNjcmlwdF9yb290KV19IHsgCi0gICAgIHNldCBkZWZhdWx0X3NjcmlwdF9wYXRoICAkdmFycyhzY3JpcHRfcm9vdCkKLSAgICAgc2V0IHZhcnMoZXhlY3V0ZV9zdHJpbmcpIFtmb3JtYXQgIiVzICVzIiAkdmFycyhzY3JpcHRfcm9vdCkvZ2VuX2VkaV9mbG93LnRjbCAkYXJndl0KLSAgIH0gZWxzZSB7Ci0gICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoc2NyaXB0X3BhdGgpXX0gewotICAgICAgICAgc2V0IHZhcnMoc2NyaXB0X3Jvb3QpICAkdmFycyhzY3JpcHRfcGF0aCkKLSAgICAgICAgIHNldCBkZWZhdWx0X3NjcmlwdF9wYXRoICAkdmFycyhzY3JpcHRfcGF0aCkKLSAgICAgICAgIHNldCB2YXJzKGV4ZWN1dGVfc3RyaW5nKSBbZm9ybWF0ICIlcyAlcyIgJHZhcnMoc2NyaXB0X3BhdGgpL2dlbl9lZGlfZmxvdy50Y2wgJGFyZ3ZdCi0gICAgICB9IGVsc2UgeyAKLSMgICAgICBwdXRzICI8RkY+IFZhcmlhYmxlIHZhcnMoc2NyaXB0X3Jvb3QpIHJlcXVpcmVkIGZvciBNYWtlZmlsZSBnZW5lcmF0aW9uIC4uLiIKLSAgICAgICAgIHB1dHMgIjxGRj4gVmFyaWFibGUgdmFycyhzY3JpcHRfcm9vdCkgbm90IGRlZmluZWQgLi4uIHNldHRpbmcgdG8gW2ZpbGUgZGlybmFtZSBbZmlsZSBkaXJuYW1lIFtmaWxlIGRpcm5hbWUgW2ZpbGUgZGlybmFtZSBbZmlsZSBkaXJuYW1lIFtpbmZvIG5hbWVvZmV4ZWN1dGFibGVdXV1dXV0vc2hhcmUvRm91bmRhdGlvbkZsb3dzL1NDUklQVFMiCi0gICAgICAgICBzZXQgZGVmYXVsdF9zY3JpcHRfcGF0aCBbZmlsZSBkaXJuYW1lIFtmaWxlIGRpcm5hbWUgW2ZpbGUgZGlybmFtZSBbZmlsZSBkaXJuYW1lIFtmaWxlIGRpcm5hbWUgW2luZm8gbmFtZW9mZXhlY3V0YWJsZV1dXV1dXS9zaGFyZS9Gb3VuZGF0aW9uRmxvd3MvU0NSSVBUUwotICAgICAgICAgc2V0IHZhcnMoc2NyaXB0X3Jvb3QpICRkZWZhdWx0X3NjcmlwdF9wYXRoCi0gICAgICB9Ci0gICB9Ci19IGVsc2UgewotICAgc2V0IHZhcnMoZXhlY3V0ZV9zdHJpbmcpIFtmb3JtYXQgIiVzICVzICVzIiBbaW5mbyBuYW1lb2ZleGVjdXRhYmxlXSBbZmlsZSBub3JtYWxpemUgJGFyZ3YwXSAkYXJndl0KLSAgIAotICAgc2V0IG5vcm1hbGl6ZWQgW2ZpbGUgbm9ybWFsaXplICRhcmd2MF0KLSAgIGlmIHtbZmlsZSBpc2RpcmVjdG9yeSAkbm9ybWFsaXplZF19IHsKLSAgICAgIHNldCBkZWZhdWx0X3NjcmlwdF9wYXRoICRub3JtYWxpemVkCi0gICB9IGVsc2VpZiB7W2ZpbGUgaXNkaXJlY3RvcnkgW2ZpbGUgZGlybmFtZSAkbm9ybWFsaXplZF1dfSB7Ci0gICAgICBzZXQgZGVmYXVsdF9zY3JpcHRfcGF0aCBbZmlsZSBkaXJuYW1lICRub3JtYWxpemVkXQotICAgfQotICAgCi19Ci0KLXNldCB2YXJzKHNjcmlwdF9wYXRoKSAkZGVmYXVsdF9zY3JpcHRfcGF0aAotI3B1dHMgJHZhcnMoc2NyaXB0X3BhdGgpCi0jCi0jIENoZWNrIHRoZSBwYXRocyB0byBtYWtlIHN1cmUgdGhhdCB0aGUgZmlsZXMgdGhhdCB3ZSBuZWVkIGFjdHVhbGx5IGV4aXN0Ci0jCi1pZiB7IVtmaWxlIGV4aXN0cyAkdmFycyhzY3JpcHRfcGF0aCkvSU5OT1ZVUy9wcm9jcy50Y2xdfSB7Ci0gICBwdXRzIFtmb3JtYXQgJEZGTU06Om1pc3NpbmdGaWxlcyAkdmFycyhzY3JpcHRfcGF0aCkvSU5OT1ZVUy9wcm9jcy50Y2xdCi0gICBleGl0IC0xCi19Ci1pZiB7IVtmaWxlIGV4aXN0cyAkdmFycyhzY3JpcHRfcGF0aCkvRVRDL3V0aWxzLnRjbF19IHsKLSAgIHB1dHMgW2Zvcm1hdCAkRkZNTTo6bWlzc2luZ0ZpbGVzICR2YXJzKHNjcmlwdF9wYXRoKS9FVEMvdXRpbHMudGNsXQotICAgZXhpdCAtMQotfQotCi0jCi0jIFNvdXJjZSB0aGUgb3RoZXIgVGNsIGZpbGVzIHRvIGV4ZWN1dGUgdGhlIGZsb3cuICBUaGVuIGRvIHNvCi0jCi0jcHV0cyAiPEZGPiBTb3VyY2luZyAkdmFycyhzY3JpcHRfcGF0aCkvSU5OT1ZVUy9wcm9jcy50Y2wiCi1zb3VyY2UgIiR2YXJzKHNjcmlwdF9wYXRoKS9JTk5PVlVTL3Byb2NzLnRjbCIKLWlmIHtbZmlsZSBleGlzdHMgJHZhcnMoc2NyaXB0X3BhdGgpL1JDL3Byb2NzLnRjbF19IHsKLSMgICBwdXRzICI8RkY+IFNvdXJjaW5nICR2YXJzKHNjcmlwdF9wYXRoKS9SQy9wcm9jcy50Y2wiCi0gICBzb3VyY2UgIiR2YXJzKHNjcmlwdF9wYXRoKS9SQy9wcm9jcy50Y2wiCi19Ci0jcHV0cyAiPEZGPiBTb3VyY2luZyAkdmFycyhzY3JpcHRfcGF0aCkvSU5OT1ZVUy91dGlscy50Y2wiCi1zb3VyY2UgIiR2YXJzKHNjcmlwdF9wYXRoKS9FVEMvdXRpbHMudGNsIgotCi1pZiB7KFtmaWxlIHRhaWwgW2luZm8gbmFtZW9mZXhlY3V0YWJsZV1dID09ICJ0Y2xzaCIpfSB7Ci0gICBzZXQgY29tbWFuZCAiRkY6Omdlbl9mbG93ICRhcmd2IgotICAgZXZhbCAkY29tbWFuZAotICAgZXhpdCAwCi19CmRpZmYgLS1naXQgYS9mbG93L3Buci9FWEFNUExFUy9JTk5PVlVTL0RFU0lHTi9TQ1JJUFRTL2dlbl9pbm5vdnVzX2Zsb3cudGNsIGIvZmxvdy9wbnIvRVhBTVBMRVMvSU5OT1ZVUy9ERVNJR04vU0NSSVBUUy9nZW5faW5ub3Z1c19mbG93LnRjbApkZWxldGVkIGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMTNkNWMxOC4uMDAwMDAwMAotLS0gYS9mbG93L3Buci9FWEFNUExFUy9JTk5PVlVTL0RFU0lHTi9TQ1JJUFRTL2dlbl9pbm5vdnVzX2Zsb3cudGNsCisrKyAvZGV2L251bGwKQEAgLTEsMTEyICswLDAgQEAKLSMhL3Vzci9iaW4vZW52IHRjbHNoCi0jIC0qLVRDTC0qLQotCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0jICAgICAgICAgICAgICAgICAgICAgICBDQURFTkNFIENPUFlSSUdIVCBOT1RJQ0UKLSMgICAgICAgICCpIDIwMDgtMjAxMyBDYWRlbmNlIERlc2lnbiBTeXN0ZW1zLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0jCi0jIFRoaXMgRm91bmRhdGlvbiBGbG93IGlzIHByb3ZpZGVkIGFzIGFuIGV4YW1wbGUgb2YgaG93IHRvIHBlcmZvcm0gc3BlY2lhbGl6ZWQKLSMgdGFza3MuCi0jCi0jIFRoaXMgd29yayBtYXkgbm90IGJlIGNvcGllZCwgcmUtcHVibGlzaGVkLCB1cGxvYWRlZCwgb3IgZGlzdHJpYnV0ZWQgaW4gYW55IHdheSwKLSMgaW4gYW55IG1lZGl1bSwgd2hldGhlciBpbiB3aG9sZSBvciBpbiBwYXJ0LCB3aXRob3V0IHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbgotIyBmcm9tIENhZGVuY2UuIE5vdHdpdGhzdGFuZGluZyBhbnkgcmVzdHJpY3Rpb25zIGhlcmVpbiwgc3ViamVjdCB0byBjb21wbGlhbmNlCi0jIHdpdGggdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mIHRoZSBDYWRlbmNlIHNvZnR3YXJlIGxpY2Vuc2UgYWdyZWVtZW50IHVuZGVyCi0jIHdoaWNoIHRoaXMgbWF0ZXJpYWwgd2FzIHByb3ZpZGVkLCB0aGlzIG1hdGVyaWFsIG1heSBiZSBjb3BpZWQgYW5kIGludGVybmFsbHkKLSMgZGlzdHJpYnV0ZWQgc29sZWx5IGZvciBpbnRlcm5hbCBwdXJwb3NlcyBmb3IgdXNlIHdpdGggQ2FkZW5jZSB0b29scy4KLSMKLSMgVGhpcyB3b3JrIGlzIENhZGVuY2UgaW50ZWxsZWN0dWFsIHByb3BlcnR5IGFuZCBtYXkgdW5kZXIgbm8gY2lyY3Vtc3RhbmNlcyBiZQotIyBnaXZlbiB0byB0aGlyZCBwYXJ0aWVzLCBuZWl0aGVyIGluIG9yaWdpbmFsIG5vciBpbiBtb2RpZmllZCB2ZXJzaW9ucywgd2l0aG91dAotIyBleHBsaWNpdCB3cml0dGVuIHBlcm1pc3Npb24gZnJvbSBDYWRlbmNlLiBUaGUgaW5mb3JtYXRpb24gY29udGFpbmVkIGhlcmVpbiBpcwotIyB0aGUgcHJvcHJpZXRhcnkgYW5kIGNvbmZpZGVudGlhbCBpbmZvcm1hdGlvbiBvZiBDYWRlbmNlIG9yIGl0cyBsaWNlbnNvcnMsIGFuZAotIyBpcyBzdXBwbGllZCBzdWJqZWN0IHRvLCBhbmQgbWF5IGJlIHVzZWQgb25seSBieSBDYWRlbmNlJ3MgY3VycmVudCBjdXN0b21lcnMKLSMgaW4gYWNjb3JkYW5jZSB3aXRoLCBhIHByZXZpb3VzbHkgZXhlY3V0ZWQgbGljZW5zZSBhZ3JlZW1lbnQgYmV0d2VlbiBDYWRlbmNlCi0jIGFuZCBpdHMgY3VzdG9tZXIuCi0jCi0jLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0jIFRISVMgTUFURVJJQUwgSVMgUFJPVklERUQgQlkgQ0FERU5DRSAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVECi0jIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GCi0jIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuCi0jIElOIE5PIEVWRU5UIFNIQUxMIENBREVOQ0UgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTAotIyBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLAotIyBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUICAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IKLSMgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyAgTUFURVJJQUwsIEVWRU4gSUYKLSMgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0KLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSMgRm91bmRhdGlvbiBGbG93IENvZGUgR2VuZXJhdG9yCi0jIFZlcnNpb24gOiAxNy4xMC1wMDAzXzEKLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIAotCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSMgUGFyc2UgdGhlIGFyZ3VtZW50cyBwYXNzZWQgaW4gdG8gdGhlIHNjcmlwdC4gIFRoZXNlIHNldCB1cCB0aGUgZW52aXJvbm1lbnQgIwotIyBmb3IgdGhlIHJlc3Qgb2YgdGhlIHN5c3RlbSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLQotaWYgeyhbZmlsZSB0YWlsIFtpbmZvIG5hbWVvZmV4ZWN1dGFibGVdXSA9PSAiZW5jb3VudGVyIikgfHwgKFtmaWxlIHRhaWwgW2luZm8gbmFtZW9mZXhlY3V0YWJsZV1dID09ICJ2ZWxvY2l0eSIpIHx8XAotICAgIChbZmlsZSB0YWlsIFtpbmZvIG5hbWVvZmV4ZWN1dGFibGVdXSA9PSAiZ2VudXMiKSB8fCAoW2ZpbGUgdGFpbCBbaW5mbyBuYW1lb2ZleGVjdXRhYmxlXV0gPT0gImlubm92dXMiKX0gewotICAgcHV0cyAiPEZGPiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0iCi0gICBwdXRzICI8RkY+IExvYWRpbmcgdGhlIEZvdW5kYXRpb24gRmxvdyBDb2RlIEdlbmVyYXRvciIKLSAgIHB1dHMgIjxGRj4gVmVyc2lvbiA6IDE3LjEwLXAwMDNfMSIKLSMgICBwdXRzICI8RkY+IEF2YWlsYWJsZSBQcm9jZWR1cmVzOiIKLSAgIHB1dHMgIjxGRj4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09IgotICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKHNjcmlwdF9yb290KV19IHsgCi0gICAgIHNldCBkZWZhdWx0X3NjcmlwdF9wYXRoICAkdmFycyhzY3JpcHRfcm9vdCkKLSAgICAgc2V0IHZhcnMoZXhlY3V0ZV9zdHJpbmcpIFtmb3JtYXQgIiVzICVzIiAkdmFycyhzY3JpcHRfcm9vdCkvZ2VuX2VkaV9mbG93LnRjbCAkYXJndl0KLSAgIH0gZWxzZSB7Ci0gICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoc2NyaXB0X3BhdGgpXX0gewotICAgICAgICAgc2V0IHZhcnMoc2NyaXB0X3Jvb3QpICAkdmFycyhzY3JpcHRfcGF0aCkKLSAgICAgICAgIHNldCBkZWZhdWx0X3NjcmlwdF9wYXRoICAkdmFycyhzY3JpcHRfcGF0aCkKLSAgICAgICAgIHNldCB2YXJzKGV4ZWN1dGVfc3RyaW5nKSBbZm9ybWF0ICIlcyAlcyIgJHZhcnMoc2NyaXB0X3BhdGgpL2dlbl9lZGlfZmxvdy50Y2wgJGFyZ3ZdCi0gICAgICB9IGVsc2UgeyAKLSMgICAgICBwdXRzICI8RkY+IFZhcmlhYmxlIHZhcnMoc2NyaXB0X3Jvb3QpIHJlcXVpcmVkIGZvciBNYWtlZmlsZSBnZW5lcmF0aW9uIC4uLiIKLSAgICAgICAgIHB1dHMgIjxGRj4gVmFyaWFibGUgdmFycyhzY3JpcHRfcm9vdCkgbm90IGRlZmluZWQgLi4uIHNldHRpbmcgdG8gW2ZpbGUgZGlybmFtZSBbZmlsZSBkaXJuYW1lIFtmaWxlIGRpcm5hbWUgW2ZpbGUgZGlybmFtZSBbZmlsZSBkaXJuYW1lIFtpbmZvIG5hbWVvZmV4ZWN1dGFibGVdXV1dXV0vc2hhcmUvRm91bmRhdGlvbkZsb3dzL1NDUklQVFMiCi0gICAgICAgICBzZXQgZGVmYXVsdF9zY3JpcHRfcGF0aCBbZmlsZSBkaXJuYW1lIFtmaWxlIGRpcm5hbWUgW2ZpbGUgZGlybmFtZSBbZmlsZSBkaXJuYW1lIFtmaWxlIGRpcm5hbWUgW2luZm8gbmFtZW9mZXhlY3V0YWJsZV1dXV1dXS9zaGFyZS9Gb3VuZGF0aW9uRmxvd3MvU0NSSVBUUwotICAgICAgICAgc2V0IHZhcnMoc2NyaXB0X3Jvb3QpICRkZWZhdWx0X3NjcmlwdF9wYXRoCi0gICAgICB9Ci0gICB9Ci19IGVsc2UgewotICAgc2V0IHZhcnMoZXhlY3V0ZV9zdHJpbmcpIFtmb3JtYXQgIiVzICVzICVzIiBbaW5mbyBuYW1lb2ZleGVjdXRhYmxlXSBbZmlsZSBub3JtYWxpemUgJGFyZ3YwXSAkYXJndl0KLSAgIAotICAgc2V0IG5vcm1hbGl6ZWQgW2ZpbGUgbm9ybWFsaXplICRhcmd2MF0KLSAgIGlmIHtbZmlsZSBpc2RpcmVjdG9yeSAkbm9ybWFsaXplZF19IHsKLSAgICAgIHNldCBkZWZhdWx0X3NjcmlwdF9wYXRoICRub3JtYWxpemVkCi0gICB9IGVsc2VpZiB7W2ZpbGUgaXNkaXJlY3RvcnkgW2ZpbGUgZGlybmFtZSAkbm9ybWFsaXplZF1dfSB7Ci0gICAgICBzZXQgZGVmYXVsdF9zY3JpcHRfcGF0aCBbZmlsZSBkaXJuYW1lICRub3JtYWxpemVkXQotICAgfQotICAgCi19Ci0KLXNldCB2YXJzKHNjcmlwdF9wYXRoKSAkZGVmYXVsdF9zY3JpcHRfcGF0aAotI3B1dHMgJHZhcnMoc2NyaXB0X3BhdGgpCi0jCi0jIENoZWNrIHRoZSBwYXRocyB0byBtYWtlIHN1cmUgdGhhdCB0aGUgZmlsZXMgdGhhdCB3ZSBuZWVkIGFjdHVhbGx5IGV4aXN0Ci0jCi1pZiB7IVtmaWxlIGV4aXN0cyAkdmFycyhzY3JpcHRfcGF0aCkvSU5OT1ZVUy9wcm9jcy50Y2xdfSB7Ci0gICBwdXRzIFtmb3JtYXQgJEZGTU06Om1pc3NpbmdGaWxlcyAkdmFycyhzY3JpcHRfcGF0aCkvSU5OT1ZVUy9wcm9jcy50Y2xdCi0gICBleGl0IC0xCi19Ci1pZiB7IVtmaWxlIGV4aXN0cyAkdmFycyhzY3JpcHRfcGF0aCkvRVRDL3V0aWxzLnRjbF19IHsKLSAgIHB1dHMgW2Zvcm1hdCAkRkZNTTo6bWlzc2luZ0ZpbGVzICR2YXJzKHNjcmlwdF9wYXRoKS9FVEMvdXRpbHMudGNsXQotICAgZXhpdCAtMQotfQotCi0jCi0jIFNvdXJjZSB0aGUgb3RoZXIgVGNsIGZpbGVzIHRvIGV4ZWN1dGUgdGhlIGZsb3cuICBUaGVuIGRvIHNvCi0jCi0jcHV0cyAiPEZGPiBTb3VyY2luZyAkdmFycyhzY3JpcHRfcGF0aCkvSU5OT1ZVUy9wcm9jcy50Y2wiCi1zb3VyY2UgIiR2YXJzKHNjcmlwdF9wYXRoKS9JTk5PVlVTL3Byb2NzLnRjbCIKLWlmIHtbZmlsZSBleGlzdHMgJHZhcnMoc2NyaXB0X3BhdGgpL1JDL3Byb2NzLnRjbF19IHsKLSMgICBwdXRzICI8RkY+IFNvdXJjaW5nICR2YXJzKHNjcmlwdF9wYXRoKS9SQy9wcm9jcy50Y2wiCi0gICBzb3VyY2UgIiR2YXJzKHNjcmlwdF9wYXRoKS9SQy9wcm9jcy50Y2wiCi19Ci0jcHV0cyAiPEZGPiBTb3VyY2luZyAkdmFycyhzY3JpcHRfcGF0aCkvSU5OT1ZVUy91dGlscy50Y2wiCi1zb3VyY2UgIiR2YXJzKHNjcmlwdF9wYXRoKS9FVEMvdXRpbHMudGNsIgotCi1pZiB7KFtmaWxlIHRhaWwgW2luZm8gbmFtZW9mZXhlY3V0YWJsZV1dID09ICJ0Y2xzaCIpfSB7Ci0gICBzZXQgY29tbWFuZCAiRkY6Omdlbl9mbG93ICRhcmd2IgotICAgZXZhbCAkY29tbWFuZAotICAgZXhpdCAwCi19CmRpZmYgLS1naXQgYS9mbG93L3Buci9FWEFNUExFUy9JTk5PVlVTL0RFU0lHTi9TQ1JJUFRTL2dlbl9pbm5vdnVzX3NldHVwLnRjbCBiL2Zsb3cvcG5yL0VYQU1QTEVTL0lOTk9WVVMvREVTSUdOL1NDUklQVFMvZ2VuX2lubm92dXNfc2V0dXAudGNsCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwOTkyMDUwLi4wMDAwMDAwCi0tLSBhL2Zsb3cvcG5yL0VYQU1QTEVTL0lOTk9WVVMvREVTSUdOL1NDUklQVFMvZ2VuX2lubm92dXNfc2V0dXAudGNsCisrKyAvZGV2L251bGwKQEAgLTEsMjE4OSArMCwwIEBACi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0jICAgICAgICAgICAgICAgICAgICAgICBDQURFTkNFIENPUFlSSUdIVCBOT1RJQ0UKLSMgICAgICAgICCpIDIwMDgtMjAxMyBDYWRlbmNlIERlc2lnbiBTeXN0ZW1zLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0jCi0jIFRoaXMgRm91bmRhdGlvbiBGbG93IGlzIHByb3ZpZGVkIGFzIGFuIGV4YW1wbGUgb2YgaG93IHRvIHBlcmZvcm0gc3BlY2lhbGl6ZWQKLSMgdGFza3MuCi0jCi0jIFRoaXMgd29yayBtYXkgbm90IGJlIGNvcGllZCwgcmUtcHVibGlzaGVkLCB1cGxvYWRlZCwgb3IgZGlzdHJpYnV0ZWQgaW4gYW55IHdheSwKLSMgaW4gYW55IG1lZGl1bSwgd2hldGhlciBpbiB3aG9sZSBvciBpbiBwYXJ0LCB3aXRob3V0IHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbgotIyBmcm9tIENhZGVuY2UuIE5vdHdpdGhzdGFuZGluZyBhbnkgcmVzdHJpY3Rpb25zIGhlcmVpbiwgc3ViamVjdCB0byBjb21wbGlhbmNlCi0jIHdpdGggdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mIHRoZSBDYWRlbmNlIHNvZnR3YXJlIGxpY2Vuc2UgYWdyZWVtZW50IHVuZGVyCi0jIHdoaWNoIHRoaXMgbWF0ZXJpYWwgd2FzIHByb3ZpZGVkLCB0aGlzIG1hdGVyaWFsIG1heSBiZSBjb3BpZWQgYW5kIGludGVybmFsbHkKLSMgZGlzdHJpYnV0ZWQgc29sZWx5IGZvciBpbnRlcm5hbCBwdXJwb3NlcyBmb3IgdXNlIHdpdGggQ2FkZW5jZSB0b29scy4KLSMKLSMgVGhpcyB3b3JrIGlzIENhZGVuY2UgaW50ZWxsZWN0dWFsIHByb3BlcnR5IGFuZCBtYXkgdW5kZXIgbm8gY2lyY3Vtc3RhbmNlcyBiZQotIyBnaXZlbiB0byB0aGlyZCBwYXJ0aWVzLCBuZWl0aGVyIGluIG9yaWdpbmFsIG5vciBpbiBtb2RpZmllZCB2ZXJzaW9ucywgd2l0aG91dAotIyBleHBsaWNpdCB3cml0dGVuIHBlcm1pc3Npb24gZnJvbSBDYWRlbmNlLiBUaGUgaW5mb3JtYXRpb24gY29udGFpbmVkIGhlcmVpbiBpcwotIyB0aGUgcHJvcHJpZXRhcnkgYW5kIGNvbmZpZGVudGlhbCBpbmZvcm1hdGlvbiBvZiBDYWRlbmNlIG9yIGl0cyBsaWNlbnNvcnMsIGFuZAotIyBpcyBzdXBwbGllZCBzdWJqZWN0IHRvLCBhbmQgbWF5IGJlIHVzZWQgb25seSBieSBDYWRlbmNlJ3MgY3VycmVudCBjdXN0b21lcnMKLSMgaW4gYWNjb3JkYW5jZSB3aXRoLCBhIHByZXZpb3VzbHkgZXhlY3V0ZWQgbGljZW5zZSBhZ3JlZW1lbnQgYmV0d2VlbiBDYWRlbmNlCi0jIGFuZCBpdHMgY3VzdG9tZXIuCi0jCi0jLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0jIFRISVMgTUFURVJJQUwgSVMgUFJPVklERUQgQlkgQ0FERU5DRSAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVECi0jIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GCi0jIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuCi0jIElOIE5PIEVWRU5UIFNIQUxMIENBREVOQ0UgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTAotIyBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLAotIyBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUICAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IKLSMgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyAgTUFURVJJQUwsIEVWRU4gSUYKLSMgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0KLXByb2MgY29udjJtbW1jIHt9IHsKLQotICAgZ2xvYmFsIHJkYV9JbnB1dAotCi0gICBpZiB7IVtpbmZvIGV4aXN0cyBzbG93X2xpYnNdfSB7Ci0gICAgICBzZXQgc2xvd19saWJzIFtsaXN0XQotICAgfSAKLSAgIGlmIHshW2luZm8gZXhpc3RzIGZhc3RfbGlic119IHsKLSAgICAgIHNldCBmYXN0X2xpYnMgW2xpc3RdCi0gICB9IAotCi0gICBpZiB7JHJkYV9JbnB1dCh1aV90aW1lbGliLG1heCkgIT0gIiJ9IHsKLSAgICAgIGZvcmVhY2ggbGliICRyZGFfSW5wdXQodWlfdGltZWxpYixtYXgpIHsKLSAgICAgICAgIGZvcmVhY2ggZ2xvYl9saWIgW2dsb2IgJGxpYl0gewotICAgICAgICAgICAgaWYge1tmaWxlIGlzZGlyZWN0b3J5ICRnbG9iX2xpYl19IHsKLSAgICAgICAgICAgICAgIGZvcmVhY2ggbmVzdGVkX2dsb2JfbGliIFtnbG9iICRnbG9iX2xpYi9cKl0gewotICAgICAgICAgICAgICAgICAgbGFwcGVuZCBzbG93X2xpYnMgJG5lc3RlZF9nbG9iX2xpYgotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIGxhcHBlbmQgc2xvd19saWJzICRnbG9iX2xpYgotICAgICAgICAgICAgfQotICAgICAgICAgfQotICAgICAgfQotICAgICAgZm9yZWFjaCBsaWIgJHJkYV9JbnB1dCh1aV90aW1lbGliKSB7Ci0gICAgICAgICBmb3JlYWNoIGdsb2JfbGliIFtnbG9iICRsaWJdIHsKLSAgICAgICAgICAgIGlmIHtbZmlsZSBpc2RpcmVjdG9yeSAkZ2xvYl9saWJdfSB7Ci0gICAgICAgICAgICAgICBmb3JlYWNoIG5lc3RlZF9nbG9iX2xpYiBbZ2xvYiAkZ2xvYl9saWIvXCpdIHsKLSAgICAgICAgICAgICAgICAgIGxhcHBlbmQgc2xvd19saWJzICRuZXN0ZWRfZ2xvYl9saWIKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBsYXBwZW5kIHNsb3dfbGlicyAkZ2xvYl9saWIKLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0KLSAgICAgIH0KLSAgICMgICBzZXQgc2xvd19saWJzIFtjb25jYXQgJHJkYV9JbnB1dCh1aV90aW1lbGliLG1heCkgJHJkYV9JbnB1dCh1aV90aW1lbGliKV0KLSAgIH0gZWxzZSB7Ci0gICAgICBmb3JlYWNoIGxpYiAkcmRhX0lucHV0KHVpX3RpbWVsaWIpIHsKLSAgICAgICAgIGZvcmVhY2ggZ2xvYl9saWIgW2dsb2IgJGxpYl0gewotICAgICAgICAgICAgaWYge1tmaWxlIGlzZGlyZWN0b3J5ICRnbG9iX2xpYl19IHsKLSAgICAgICAgICAgICAgIGZvcmVhY2ggbmVzdGVkX2dsb2JfbGliIFtnbG9iICRnbG9iX2xpYi9cKl0gewotICAgICAgICAgICAgICAgICAgbGFwcGVuZCBzbG93X2xpYnMgJG5lc3RlZF9nbG9iX2xpYgotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIGxhcHBlbmQgc2xvd19saWJzICRnbG9iX2xpYgotICAgICAgICAgICAgfQotICAgICAgICAgfQotICAgICAgfQotICAgIyAgIHNldCBzbG93X2xpYnMgJHJkYV9JbnB1dCh1aV90aW1lbGliKQotICAgfQotICAgaWYgeyRyZGFfSW5wdXQodWlfdGltZWxpYixtaW4pICE9ICIifSB7Ci0gICAgICBmb3JlYWNoIGxpYiAkcmRhX0lucHV0KHVpX3RpbWVsaWIsbWluKSB7Ci0gICAgICAgICBmb3JlYWNoIGdsb2JfbGliIFtnbG9iICRsaWJdIHsKLSAgICAgICAgICAgIGlmIHtbZmlsZSBpc2RpcmVjdG9yeSAkZ2xvYl9saWJdfSB7Ci0gICAgICAgICAgICAgICBmb3JlYWNoIG5lc3RlZF9nbG9iX2xpYiBbZ2xvYiAkZ2xvYl9saWIvXCpdIHsKLSAgICAgICAgICAgICAgICAgIGxhcHBlbmQgZmFzdF9saWJzICRuZXN0ZWRfZ2xvYl9saWIKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBsYXBwZW5kIGZhc3RfbGlicyAkZ2xvYl9saWIKLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0KLSAgICAgIH0KLSAgICAgIGZvcmVhY2ggbGliICRyZGFfSW5wdXQodWlfdGltZWxpYikgewotICAgICAgICAgZm9yZWFjaCBnbG9iX2xpYiBbZ2xvYiAkbGliXSB7Ci0gICAgICAgICAgICBpZiB7W2ZpbGUgaXNkaXJlY3RvcnkgJGdsb2JfbGliXX0gewotICAgICAgICAgICAgICAgZm9yZWFjaCBuZXN0ZWRfZ2xvYl9saWIgW2dsb2IgJGdsb2JfbGliL1wqXSB7Ci0gICAgICAgICAgICAgICAgICBsYXBwZW5kIGZhc3RfbGlicyAkbmVzdGVkX2dsb2JfbGliCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgbGFwcGVuZCBmYXN0X2xpYnMgJGdsb2JfbGliCi0gICAgICAgICAgICB9Ci0gICAgICAgICB9IAotICAgICAgfQotICAgIyAgIHNldCBmYXN0X2xpYnMgW2NvbmNhdCAkcmRhX0lucHV0KHVpX3RpbWVsaWIsbWluKSAkcmRhX0lucHV0KHVpX3RpbWVsaWIpXQotICAgfSBlbHNlIHsKLSAgICAgIHNldCBmYXN0X2xpYnMgJHNsb3dfbGlicwotICAgfQotICAgCi0gICAjcHV0cyAiLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iIAotICAgI3B1dHMgIlBRUlM6ICRzbG93X2xpYnMiCi0gICAjcHV0cyAiUFFSUzogJGZhc3RfbGlicyIKLSAgICNwdXRzICItLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIgCi0gICAKLSAgIHNldCBzZGNfZmlsZXMgW2xpc3RdCi0gICBmb3JlYWNoIGZpbGUgJHJkYV9JbnB1dCh1aV90aW1pbmdjb25fZmlsZSkgewotICAgICAgbGFwcGVuZCBzZGNfZmlsZXMgJGZpbGUKLSAgIH0KLSAgIAotICAgc2V0IGlsbV9zZGNfZmlsZXMgW2xpc3RdCi0gICBpZiB7W2luZm8gZXhpc3RzIHJkYV9JbnB1dCh1aV90aW1pbmdjb25fZmlsZSxmdWxsKV19IHsKLSAgICAgIGZvcmVhY2ggZmlsZSAkcmRhX0lucHV0KHVpX3RpbWluZ2Nvbl9maWxlLGZ1bGwpIHsKLSAgICAgICAgIGxhcHBlbmQgaWxtX3NkY19maWxlcyAkZmlsZQotICAgICAgfQotICAgfQotICAgCi0gICBpZiB7JHJkYV9JbnB1dCh1aV9jZGJfZmlsZSxtYXgpICE9ICIifSB7Ci0gICAgICBzZXQgc2xvd19jZGJzIFtjb25jYXQgJHJkYV9JbnB1dCh1aV9jZGJfZmlsZSxtYXgpICRyZGFfSW5wdXQodWlfY2RiX2ZpbGUpXQotICAgfSBlbHNlIHsKLSAgICAgIGlmIHskcmRhX0lucHV0KHVpX2NkYl9maWxlKSAhPSAiIn0gewotICAgICAgICAgc2V0IHNsb3dfY2RicyAkcmRhX0lucHV0KHVpX2NkYl9maWxlKQotICAgICAgfQotICAgfQotICAgaWYgeyRyZGFfSW5wdXQodWlfY2RiX2ZpbGUsbWluKSAhPSAiIn0gewotICAgICAgc2V0IGZhc3RfY2RicyBbY29uY2F0ICRyZGFfSW5wdXQodWlfY2RiX2ZpbGUsbWluKSAkcmRhX0lucHV0KHVpX2NkYl9maWxlKV0KLSAgIH0gZWxzZSB7Ci0gICAgICBpZiB7JHJkYV9JbnB1dCh1aV9jZGJfZmlsZSkgIT0gIiJ9IHsKLSAgICAgICAgIHNldCBmYXN0X2NkYnMgJHJkYV9JbnB1dCh1aV9jZGJfZmlsZSkKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHNsb3dfY2Ric10gJiYgKCRzbG93X2NkYnMgIT0gIiIpfSB7Ci0gICAgICAgICAgICBzZXQgZmFzdF9jZGJzICRzbG93X2NkYnMKLSAgICAgICAgfQotICAgICB9Ci0gICB9Ci0KLSAgIHNldCBiY19jYXBfdGFibGUgIiIKLSAgIHNldCB3Y19jYXBfdGFibGUgIiIKLSAgCi0gICBpZiB7W2xsZW5ndGggJHJkYV9JbnB1dCh1aV9jYXB0YmxfZmlsZSldID4gMX0gewotICAgICAgZm9yIHtzZXQgaSAwfSB7JGk8W2xsZW5ndGggJHJkYV9JbnB1dCh1aV9jYXB0YmxfZmlsZSldfSB7aW5jciBpfSB7Ci0gICAgICAgICBpZiB7W2xpbmRleCAkcmRhX0lucHV0KHVpX2NhcHRibF9maWxlKSAkaV0gPT0gIi1iZXN0In0gewotICAgICAgICAgICAgc2V0IGJjX2NhcF90YWJsZSBbZmlsZSBub3JtYWxpemUgW2xpbmRleCAkcmRhX0lucHV0KHVpX2NhcHRibF9maWxlKSBbZXhwciAkaSsxXV1dCi0gICAgICAgICB9Ci0gICAgICAgICBpZiB7W2xpbmRleCAkcmRhX0lucHV0KHVpX2NhcHRibF9maWxlKSAkaV0gPT0gIi13b3JzdCJ9IHsKLSAgICAgICAgICAgIHNldCB3Y19jYXBfdGFibGUgW2ZpbGUgbm9ybWFsaXplIFtsaW5kZXggJHJkYV9JbnB1dCh1aV9jYXB0YmxfZmlsZSkgW2V4cHIgJGkrMV1dXQotICAgICAgICAgfQotICAgICAgfQotICAgfSBlbHNlIHsKLSAgICAgIHNldCB3Y19jYXBfdGFibGUgW2ZpbGUgbm9ybWFsaXplICRyZGFfSW5wdXQodWlfY2FwdGJsX2ZpbGUpXQotICAgICAgc2V0IGJjX2NhcF90YWJsZSBbZmlsZSBub3JtYWxpemUgJHJkYV9JbnB1dCh1aV9jYXB0YmxfZmlsZSldCi0gICB9Ci0gICAKLSAgIHNldCBiY19xeF90ZWNoX2ZpbGUgIiIKLSAgIHNldCB3Y19xeF90ZWNoX2ZpbGUgIiIKLSAgIAotICAgaWYge1tsbGVuZ3RoICRyZGFfSW5wdXQodWlfcXh0ZWNoX2ZpbGUpXSA+IDF9IHsKLSAgICAgIGZvciB7c2V0IGkgMH0geyRpPFtsbGVuZ3RoICRyZGFfSW5wdXQodWlfcXh0ZWNoX2ZpbGUpXX0ge2luY3IgaX0gewotICAgICAgICAgaWYge1tsaW5kZXggJHJkYV9JbnB1dCh1aV9xeHRlY2hfZmlsZSkgJGldID09ICItYmVzdCJ9IHsKLSAgICAgICAgICAgIHNldCBiY19xeF90ZWNoX2ZpbGUgW2ZpbGUgbm9ybWFsaXplIFtsaW5kZXggJHJkYV9JbnB1dCh1aV9xeHRlY2hfZmlsZSkgW2V4cHIgJGkrMV1dXQotICAgICAgICAgfQotICAgICAgICAgaWYge1tsaW5kZXggJHJkYV9JbnB1dCh1aV9xeHRlY2hfZmlsZSkgJGldID09ICItd29yc3QifSB7Ci0gICAgICAgICAgICBzZXQgd2NfcXhfdGVjaF9maWxlIFtmaWxlIG5vcm1hbGl6ZSBbbGluZGV4ICRyZGFfSW5wdXQodWlfcXh0ZWNoX2ZpbGUpIFtleHByICRpKzFdXV0KLSAgICAgICAgIH0KLSAgICAgIH0KLSAgIH0gZWxzZSB7Ci0gICAgICBzZXQgd2NfcXhfdGVjaF9maWxlIFtmaWxlIG5vcm1hbGl6ZSAkcmRhX0lucHV0KHVpX3F4dGVjaF9maWxlKV0KLSAgICAgIHNldCBiY19xeF90ZWNoX2ZpbGUgW2ZpbGUgbm9ybWFsaXplICRyZGFfSW5wdXQodWlfcXh0ZWNoX2ZpbGUpXQotICAgfQotICAgCi0gICAKLSMgICBpZiB7JHdjX2NhcF90YWJsZSA9PSAiIn0gewotIyAgICAgIFB1dHMgIi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIiAKLSMgICAgICBQdXRzICJcW1BRUlNcXVxbRVJST1JcXSBObyBjYXAgdGFibGVzIGRlZmluZWQgZm9yIHRoaXMgdGVzdGNhc2UgLi4uIGFib3J0aW5nIgotIyAgICAgIFB1dHMgIi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIiAKLSMgICAgICBleGl0IDEKLSMgICB9Ci0gICAKLSAgIGlmIHsoW2luZm8gZXhpc3RzIGRnbl9tYXhfdGVtcF0gPT0gMCkgfHwgKFtpbmZvIGV4aXN0cyBkZ25fbWF4X3RlbXBdICYmICRkZ25fbWF4X3RlbXAgPT0gIiIpfSB7Ci0gICAgICBzZXQgbWF4X3RlbXAgIiIKLSAgIH0gZWxzZSB7Ci0gICAgICBzZXQgbWF4X3RlbXAgJGRnbl9tYXhfdGVtcAotICAgfQotICAgCi0gICBpZiB7KFtpbmZvIGV4aXN0cyBkZ25fbWluX3RlbXBdID09IDApIHx8IChbaW5mbyBleGlzdHMgZGduX21pbl90ZW1wXSAmJiAkZGduX21pbl90ZW1wID09ICIiKX0gewotICAgICAgc2V0IG1pbl90ZW1wICIiCi0gICB9IGVsc2UgewotICAgICAgc2V0IG1pbl90ZW1wIFtleHByIGFicygkZGduX21pbl90ZW1wKV0KLSAgIH0KLQotICAgc2V0IHByZV9yb3V0ZV9yZXNfZmFjdG9yICRyZGFfSW5wdXQodWlfcHJlUm91dGVfcmVzKQotICAgc2V0IHByZV9yb3V0ZV9jbGtfcmVzX2ZhY3RvciAxLjAKLSAgIHNldCBwb3N0X3JvdXRlX3Jlc19mYWN0b3IgJHJkYV9JbnB1dCh1aV9wb3N0Um91dGVfcmVzKQotICAgc2V0IHBvc3Rfcm91dGVfY2xrX3Jlc19mYWN0b3IgIjEuMCAxLjAgMS4wIgotICAgc2V0IHByZV9yb3V0ZV9jYXBfZmFjdG9yICRyZGFfSW5wdXQodWlfcHJlUm91dGVfY2FwKQotICAgc2V0IHByZV9yb3V0ZV9jbGtfY2FwX2ZhY3RvciAxLjAKLSAgIHNldCBwb3N0X3JvdXRlX2NhcF9mYWN0b3IgJHJkYV9JbnB1dCh1aV9wb3N0Um91dGVfY2FwKQotICAgc2V0IHBvc3Rfcm91dGVfY2xrX2NhcF9mYWN0b3IgIjEuMCAxLjAgMS4wIgotICAgc2V0IHBvc3Rfcm91dGVfeGNhcF9mYWN0b3IgJHJkYV9JbnB1dCh1aV9wb3N0Um91dGVfeGNhcCkKLSAgIHNldCBzaHJpbmtfZmFjdG9yICRyZGFfSW5wdXQodWlfc2hyX3NjYWxlKQotIyAgIHNldCByZWxhdGl2ZV9jX3RocmVzaCAkcmRhX0lucHV0KHVpX3JlbF9jX3RocmVzaCkKLSMgICBzZXQgdG90YWxfY190aHJlc2ggJHJkYV9JbnB1dCh1aV90b3RfY190aHJlc2gpCi0jICAgc2V0IGNvdXBsaW5nX2NfdGhyZXNoICRyZGFfSW5wdXQodWlfY3BsX2NfdGhyZXNoKQotCi0gICBjcmVhdGVfcmNfY29ybmVyIC1uYW1lIHJjX21heCAgXAotICAgICAgICAgICAgICAgICAgICAtcHJlUm91dGVfcmVzICRwcmVfcm91dGVfcmVzX2ZhY3RvciBcCi0gICAgICAgICAgICAgICAgICAgIC1wcmVSb3V0ZV9jbGtyZXMgJHByZV9yb3V0ZV9jbGtfcmVzX2ZhY3RvciBcCi0gICAgICAgICAgICAgICAgICAgIC1wcmVSb3V0ZV9jYXAgJHByZV9yb3V0ZV9jYXBfZmFjdG9yIFwKLSAgICAgICAgICAgICAgICAgICAgLXByZVJvdXRlX2Nsa2NhcCAkcHJlX3JvdXRlX2Nsa19jYXBfZmFjdG9yIFwKLSAgICAgICAgICAgICAgICAgICAgLXBvc3RSb3V0ZV9yZXMgJHBvc3Rfcm91dGVfcmVzX2ZhY3RvciBcCi0gICAgICAgICAgICAgICAgICAgIC1wb3N0Um91dGVfY2xrcmVzICRwb3N0X3JvdXRlX2Nsa19yZXNfZmFjdG9yIFwKLSAgICAgICAgICAgICAgICAgICAgLXBvc3RSb3V0ZV9jYXAgJHBvc3Rfcm91dGVfY2FwX2ZhY3RvciBcCi0gICAgICAgICAgICAgICAgICAgIC1wb3N0Um91dGVfY2xrY2FwICRwb3N0X3JvdXRlX2Nsa19jYXBfZmFjdG9yIFwKLSAgICAgICAgICAgICAgICAgICAgLXBvc3RSb3V0ZV94Y2FwICRwb3N0X3JvdXRlX3hjYXBfZmFjdG9yCi0gIAotICAgaWYgeyR3Y19jYXBfdGFibGUgIT0gIiJ9IHsKLSAgICAgIHVwZGF0ZV9yY19jb3JuZXIgLW5hbWUgcmNfbWF4IC1jYXBfdGFibGUgJHdjX2NhcF90YWJsZQotICAgfQotICAgaWYgeyRtYXhfdGVtcCAhPSAiIn0gewotICAgICAgdXBkYXRlX3JjX2Nvcm5lciAtbmFtZSByY19tYXggLVQgJG1heF90ZW1wCi0gICB9Ci0KLSAgIGlmIHskd2NfcXhfdGVjaF9maWxlICE9ICIiIH0gewotICAgICAgdXBkYXRlX3JjX2Nvcm5lciAtbmFtZSByY19tYXggLXF4X3RlY2hfZmlsZSAkd2NfcXhfdGVjaF9maWxlCi0gICB9Ci0gICAgCi0gICBjcmVhdGVfcmNfY29ybmVyIC1uYW1lIHJjX21pbiAgXAotICAgICAgICAgICAgICAgICAgICAtcHJlUm91dGVfcmVzICRwcmVfcm91dGVfcmVzX2ZhY3RvciBcCi0gICAgICAgICAgICAgICAgICAgIC1wcmVSb3V0ZV9jbGtyZXMgJHByZV9yb3V0ZV9jbGtfcmVzX2ZhY3RvciBcCi0gICAgICAgICAgICAgICAgICAgIC1wcmVSb3V0ZV9jYXAgJHByZV9yb3V0ZV9jYXBfZmFjdG9yIFwKLSAgICAgICAgICAgICAgICAgICAgLXByZVJvdXRlX2Nsa2NhcCAkcHJlX3JvdXRlX2Nsa19jYXBfZmFjdG9yIFwKLSAgICAgICAgICAgICAgICAgICAgLXBvc3RSb3V0ZV9yZXMgJHBvc3Rfcm91dGVfcmVzX2ZhY3RvciBcCi0gICAgICAgICAgICAgICAgICAgIC1wb3N0Um91dGVfY2xrcmVzICRwb3N0X3JvdXRlX2Nsa19yZXNfZmFjdG9yIFwKLSAgICAgICAgICAgICAgICAgICAgLXBvc3RSb3V0ZV9jYXAgJHBvc3Rfcm91dGVfY2FwX2ZhY3RvciBcCi0gICAgICAgICAgICAgICAgICAgIC1wb3N0Um91dGVfY2xrY2FwICRwb3N0X3JvdXRlX2Nsa19jYXBfZmFjdG9yIFwKLSAgICAgICAgICAgICAgICAgICAgLXBvc3RSb3V0ZV94Y2FwICRwb3N0X3JvdXRlX3hjYXBfZmFjdG9yCi0gICAKLSAgIGlmIHskYmNfY2FwX3RhYmxlICE9ICIifSB7Ci0gICAgICB1cGRhdGVfcmNfY29ybmVyIC1uYW1lIHJjX21pbiAtY2FwX3RhYmxlICRiY19jYXBfdGFibGUKLSAgIH0KLSAgIGlmIHskbWluX3RlbXAgIT0gIiJ9IHsKLSAgICAgIHVwZGF0ZV9yY19jb3JuZXIgLW5hbWUgcmNfbWluIC1UICRtaW5fdGVtcAotICAgfQotCi0gICBpZiB7JGJjX3F4X3RlY2hfZmlsZSAhPSAiIiB9IHsKLSAgICAgIHVwZGF0ZV9yY19jb3JuZXIgLW5hbWUgcmNfbWluIC1xeF90ZWNoX2ZpbGUgJGJjX3F4X3RlY2hfZmlsZQotICAgfQotICAgIAotICAgaWYge1tpbmZvIGV4aXN0cyBzbG93X2NkYnNdICYmICgkc2xvd19jZGJzICE9ICIiKX0gewotICAgICAgY3JlYXRlX2xpYnJhcnlfc2V0IC1uYW1lIGxpYnNfbWF4IC10aW1pbmcgJHNsb3dfbGlicyAtc2kgJHNsb3dfY2RicyAKLSAgICAgIGNyZWF0ZV9saWJyYXJ5X3NldCAtbmFtZSBsaWJzX21pbiAtdGltaW5nICRmYXN0X2xpYnMgLXNpICRmYXN0X2NkYnMgCi0gICB9IGVsc2UgewotICAgICAgY3JlYXRlX2xpYnJhcnlfc2V0IC1uYW1lIGxpYnNfbWF4IC10aW1pbmcgJHNsb3dfbGlicwotICAgICAgY3JlYXRlX2xpYnJhcnlfc2V0IC1uYW1lIGxpYnNfbWluIC10aW1pbmcgJGZhc3RfbGlicwotICAgfQotICAgCi0gICBjcmVhdGVfZGVsYXlfY29ybmVyIC1uYW1lIGNvcm5lcl9tYXggLWxpYnJhcnlfc2V0IGxpYnNfbWF4IC1yY19jb3JuZXIgcmNfbWF4Ci0gICBjcmVhdGVfZGVsYXlfY29ybmVyIC1uYW1lIGNvcm5lcl9taW4gLWxpYnJhcnlfc2V0IGxpYnNfbWluIC1yY19jb3JuZXIgcmNfbWluCi0gICBQdXRzICJcW0lORk9cXSBjcmVhdGVfY29uc3RyYWludF9tb2RlIHNldHVwX2Z1bmNfbW9kZSB3aXRoICIKLSAgIFB1dHMgIlxbSU5GT1xdICAgU0RDIGZpbGVzOiAkc2RjX2ZpbGVzIgotICAgaWYgeyRpbG1fc2RjX2ZpbGVzICE9ICIifSB7Ci0gICAgIFB1dHMgIlxbSU5GT1xdICAgSUxNIFNEQyBmaWxlczogJGlsbV9zZGNfZmlsZXMiIAotICAgICBjcmVhdGVfY29uc3RyYWludF9tb2RlIC1uYW1lIHNldHVwX2Z1bmNfbW9kZSAtc2RjX2ZpbGVzICRzZGNfZmlsZXMgLWlsbV9zZGNfZmlsZXMgaWxtX3NkY19maWxlcwotICAgfSBlbHNlIHsKLSAgICAgY3JlYXRlX2NvbnN0cmFpbnRfbW9kZSAtbmFtZSBzZXR1cF9mdW5jX21vZGUgLXNkY19maWxlcyAkc2RjX2ZpbGVzIAotICAgfQotICAgY3JlYXRlX2FuYWx5c2lzX3ZpZXcgLW5hbWUgc2V0dXBfZnVuYyAtY29uc3RyYWludF9tb2RlIHNldHVwX2Z1bmNfbW9kZSAtZGVsYXlfY29ybmVyIGNvcm5lcl9tYXgKLSMgICBQdXRzICJcW0lORk9cXSBjcmVhdGVfY29uc3RyYWludF9tb2RlIGhvbGRfZnVuY19tb2RlIHdpdGggIgotIyAgIFB1dHMgIlxbSU5GT1xdICAgU0RDIGZpbGVzOiAkc2RjX2ZpbGVzIgotIyAgIGlmIHskaWxtX3NkY19maWxlcyAhPSAiIn0gewotIyAgICAgUHV0cyAiXFtJTkZPXF0gICBJTE0gU0RDIGZpbGVzOiAkaWxtX3NkY19maWxlcyIgCi0jICAgICBjcmVhdGVfY29uc3RyYWludF9tb2RlIC1uYW1lIGhvbGRfZnVuY19tb2RlIC1zZGNfZmlsZXMgJHNkY19maWxlcyAtaWxtX3NkY19maWxlcyBpbG1fc2RjX2ZpbGVzCi0jICAgfSBlbHNlIHsKLSMgICAgIGNyZWF0ZV9jb25zdHJhaW50X21vZGUgLW5hbWUgaG9sZF9mdW5jX21vZGUgLXNkY19maWxlcyAkc2RjX2ZpbGVzIAotIyAgIH0KLSAgIGNyZWF0ZV9hbmFseXNpc192aWV3IC1uYW1lIGhvbGRfZnVuYyAtY29uc3RyYWludF9tb2RlIHNldHVwX2Z1bmNfbW9kZSAtZGVsYXlfY29ybmVyIGNvcm5lcl9taW4KLSAgIHNldF9hbmFseXNpc192aWV3IC1zZXR1cCB7c2V0dXBfZnVuY30gLWhvbGQge2hvbGRfZnVuY30gCi0gICBzZXRfZGVmYXVsdF92aWV3IC1zZXR1cCB7c2V0dXBfZnVuY30gLWhvbGQge2hvbGRfZnVuY30gCi0gICBzZXRfaW50ZXJhY3RpdmVfY29uc3RyYWludF9tb2RlcyBbYWxsX2NvbnN0cmFpbnRfbW9kZXMgLWFjdGl2ZV0gCi19Ci0KLXByb2MgY3JlYXRlX2xwX2NvbmZpZ19maWxlIHt9IHsKLQotICAgZ2xvYmFsIHZhcnMKLQotICAgc2V0IG9wIFtvcGVuIGxwX2NvbmZpZy5hdXRvLnRjbCB3XQotCi0gICBpZiB7W2ZpbGUgZXhpc3RzIHNldHVwLmF1dG8udGNsXX0gewotICAgICAgc291cmNlIHNldHVwLmF1dG8udGNsCi0gICB9Ci0gICBpZiB7W2ZpbGUgZXhpc3RzIGlubm92dXNfY29uZmlnLmF1dG8udGNsXX0gewotICAgICAgc291cmNlIGlubm92dXNfY29uZmlnLmF1dG8udGNsCi0gICB9Ci0KLSAgIHB1dHMgJG9wICIjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMiCi0gICBwdXRzICRvcCAiIyBMb3cgcG93ZXIgY29uZmlndXJhdGlvbiBmaWxlIG92ZXJsYXkuICBUaGlzIGZpbGUgY29udGFpbnMgZm91bmRhdGlvbiBmbG93IHZhcmlhYmxlcyIKLSAgIHB1dHMgJG9wICIjIHRoYXQgYXJlIHNwZWNpZmljIHRvIHRoZSBMUCBmbG93IGFuZCBzaG91bGQgYmUgdXNlZCBpbiBhZGRpdGlvbiB0byB0aGUgc2V0dXAudGNsIgotICAgcHV0cyAkb3AgIiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyIKLSAgIHB1dHMgJG9wICIjICAgICAgICAgICAgICAgICAgICAgICAgICAgVGllIGNlbGwgaW5mb3JtYXRpb24iCi0gICBwdXRzICRvcCAiIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIgotICAgcHV0cyAkb3AgIiMgVGhlIHZhcmlhYmxlIHZhcnModGllX2NlbGxzKSBpcyBkZWZpbmVkIGluIHRoZSBzZXR1cC50Y2wgYW5kIGlzIHVzZWQgdG8gZGVmaW5lIGEgIgotICAgcHV0cyAkb3AgIiMgXCJnbG9iYWxcIiB0aWUgY2VsbCBsaXN0LiBUaGlzIGxpc3Qgd2lsbCBiZSB1c2VkIGJ5IGRlZmF1bHQgZm9yIGVhY2ggcG93ZXIgZG9tYWluLiIKLSAgIHB1dHMgJG9wICIjIEl0IGNhbiBiZSBvdmVycmlkZGVuIGZvciBhIGdpdmVuIHBvd2VyIGRvbWFpbiBieSBzZXR0aW5nIHZhcnMoPHBvd2VyX2RvbWFpbj4sdGllX2NlbGxzKS4iCi0gICBwdXRzICRvcCAiIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIgotICAgcHV0cyAkb3AgIiMiCi0gICBwdXRzICRvcCAiIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIgotICAgcHV0cyAkb3AgIiMgICAgICAgICAgICAgICAgICAgICAgICAgUGxhY2VtZW50IE9wdGlvbnMiCi0gICBwdXRzICRvcCAiIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIgotICAgcHV0cyAkb3AgIiNzZXQgdmFycyhyZXNpemVfc2hpZnRlcl9hbmRfaXNvX2luc3RzKSA8dHJ1ZSB8IGZhbHNlPiIKLSAgIHB1dHMgJG9wICIjIgotICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKHBvd2VyX2RvbWFpbnMpXX0gewotICAgICAgZm9yZWFjaCBkb21haW4gJHZhcnMocG93ZXJfZG9tYWlucykgewotICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKHRpZV9jZWxscyldfSB7Ci0gICAgICAgICAgICBwdXRzICRvcCAiIyBzZXQgdmFycygkZG9tYWluLHRpZV9jZWxscylcdFwiJHZhcnModGllX2NlbGxzKVwiIgotICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHB1dHMgJG9wICIjIHNldCB2YXJzKCRkb21haW4sdGllX2NlbGxzKSAgICA8dGllIGNlbGxzIGZvciA8cG93ZXJfZG9tYWluPj4iCi0gICAgICAgICB9Ci0gICAgICB9Ci0gICB9Ci0gICBwdXRzICRvcCAiIyIKLSAgIHB1dHMgJG9wICIjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMiCi0gICBwdXRzICRvcCAiIyAgICAgICAgICAgICAgICAgICAgICAgICBGaWxsZXIgY2VsbCBpbmZvcm1hdGlvbiIKLSAgIHB1dHMgJG9wICIjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iCi0gICBwdXRzICRvcCAiIyBUaGUgdmFyaWFibGUgdmFycyhmaWxsZXJfY2VsbHMpIGlzIGRlZmluZWQgaW4gdGhlIHNldHVwLnRjbCBhbmQgaXMgdXNlZCB0byBkZWZpbmUgYSAiCi0gICBwdXRzICRvcCAiIyBcImdsb2JhbFwiIGZpbGxlciBjZWxsIGxpc3QuIFRoaXMgbGlzdCB3aWxsIGJlIHVzZWQgYnkgZGVmYXVsdCBmb3IgZWFjaCBwb3dlciBkb21haW4uIgotICAgcHV0cyAkb3AgIiMgSXQgY2FuIGJlIG92ZXJyaWRkZW4gZm9yIGEgZ2l2ZW4gcG93ZXIgZG9tYWluIGJ5IHNldHRpbmcgdmFycyg8cG93ZXJfZG9tYWluPixmaWxsZXJfY2VsbHMpLiIKLSAgIHB1dHMgJG9wICIjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iCi0gICBpZiB7W2luZm8gZXhpc3RzIHZhcnMocG93ZXJfZG9tYWlucyldfSB7Ci0gICAgICBmb3JlYWNoIGRvbWFpbiAkdmFycyhwb3dlcl9kb21haW5zKSB7Ci0gICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoZmlsbGVyX2NlbGxzKV19IHsKLSAgICAgICAgICAgIHB1dHMgJG9wICIjIHNldCB2YXJzKCRkb21haW4sZmlsbGVyX2NlbGxzKVx0XCIkdmFycyhmaWxsZXJfY2VsbHMpXCIiCi0gICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgcHV0cyAkb3AgIiMgc2V0IHZhcnMoJGRvbWFpbixmaWxsZXJfY2VsbHMpIDxmaWxsZXIgY2VsbHMgZm9yIDxwb3dlcl9kb21haW4+PiIKLSAgICAgICAgIH0KLSAgICAgIH0KLSAgIH0KLSAgIHB1dHMgJG9wICIjIgotICAgcHV0cyAkb3AgIiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyIKLSAgIHB1dHMgJG9wICIjICAgICAgICAgICAgICAgICAgICAgICAgICBXZWxsdGFwIGNlbGwgaW5mb3JtYXRpb24iCi0gICBwdXRzICRvcCAiIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIgotICAgcHV0cyAkb3AgIiMgVGhlIHZhcmlhYmxlIHZhcnMod2VsbHRhcHMpIGlzIGRlZmluZWQgaW4gdGhlIHNldHVwLnRjbCBhbmQgaXMgdXNlZCB0byBkZWZpbmUgYSAiCi0gICBwdXRzICRvcCAiIyBcImdsb2JhbFwiIHdlbGx0YXAgY2VsbCBsaXN0LiBUaGlzIGxpc3Qgd2lsbCBiZSB1c2VkIGJ5IGRlZmF1bHQgZm9yIGVhY2ggcG93ZXIgZG9tYWluLiIKLSAgIHB1dHMgJG9wICIjIEl0IGNhbiBiZSBvdmVycmlkZGVuIGZvciBhIGdpdmVuIHBvd2VyIGRvbWFpbiBieSBzZXR0aW5nIHZhcnMoPHBvd2VyX2RvbWFpbj4sd2VsbHRhcHMpLiIKLSAgIHB1dHMgJG9wICIjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iCi0gICBwdXRzICRvcCAiIyAgICB2ZXJpZnlfcnVsZSA6IG1heGltdW0gZGlzdGFuY2UgKGluIG1pY3JvbnMpIGJldHdlZW4gd2VsbHRhcCBjZWxscyBhbmQgc3RhbmRhcmQgY2VsbHMgIgotICAgcHV0cyAkb3AgIiMgICAgICAgICAgICAgICAgICBpbiBtaWNyb25zIgotICAgcHV0cyAkb3AgIiMgICAgICAgIG1heF9nYXAgOiBzcGVjaWZpZXMgdGhlIG1heGltdW0gZGlzdGFuY2UgZnJvbSB0aGUgcmlnaHQgZWRnZSBvZiBvbmUgd2VsbC10YXAgY2VsbCAiCi0gICBwdXRzICRvcCAiIyAgICAgICAgICAgICAgICAgIHRvIHRoZSBsZWZ0IGVkZ2Ugb2YgIHRoZSBmb2xsb3dpbmcgd2VsbC10YXAgY2VsbCBpbiB0aGUgc2FtZSByb3ciCi0gICBwdXRzICRvcCAiIyAgY2VsbF9pbnRlcnZhbCA6IHNwZWNpZmllcyB0aGUgbWF4aW11bSBkaXN0YW5jZSBmcm9tIHRoZSBjZW50ZXIgb2Ygb25lIHdlbGwtdGFwIGNlbGwgIgotICAgcHV0cyAkb3AgIiMgICAgICAgICAgICAgICAgICB0byB0aGUgY2VudGVyIG9mIHRoZSBmb2xsb3dpbmcgd2VsbC10YXAgY2VsbCBpbiB0aGUgc2FtZSByb3ciCi0gICBwdXRzICRvcCAiIyIKLSAgIHB1dHMgJG9wICIjIE5PVEU6IG1heF9nYXAgYW5kIGNlbGxfaW50ZXJ2YWwgcGFyYW1ldGVycyBhcmUgbXV0dWFsbHkgZXhjbHVzaXZlLCB1c2VyIGhhcyB0byBkZWZpbmUgIgotICAgcHV0cyAkb3AgIiMgICAgICAgb25seSBvbmUgb2YgdGhlc2UgcGFyYW1ldGVycyB0byBhZGQgd2VsbHRhcCBjZWxscyIKLSAgIHB1dHMgJG9wICIjIgotICAgcHV0cyAkb3AgIiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIKLSAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhwb3dlcl9kb21haW5zKV19IHsKLSAgICAgIGZvcmVhY2ggZG9tYWluICR2YXJzKHBvd2VyX2RvbWFpbnMpIHsKLSAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyh3ZWxsdGFwcyldfSB7Ci0gICAgICAgICAgICBwdXRzICRvcCAiIyBzZXQgdmFycygkZG9tYWluLHZhcnMod2VsbHRhcHMpKSAgICAgICAgICAgICAgICAgPHdlbGx0YXAgY2VsbCBsaXN0IGZvciA8cG93ZXJfZG9tYWluPj4iCi0gICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgcHV0cyAkb3AgIiMgc2V0IHZhcnMoJGRvbWFpbix3ZWxsdGFwcykgICAgICAgICAgICAgICAgIDx3ZWxsdGFwIGNlbGwgbGlzdCBmb3IgPHBvd2VyX2RvbWFpbj4+IgotICAgICAgICAgfSAKLSAgICAgICAgIHB1dHMgJG9wICIjIHNldCB2YXJzKCRkb21haW4sd2VsbHRhcHMsY2hlY2tlcmJvYXJkKSAgPHRydWUgb3IgZmFsc2U+IgotICAgICAgICAgcHV0cyAkb3AgIiMgc2V0IHZhcnMoJGRvbWFpbix3ZWxsdGFwcyxtYXhfZ2FwKSAgICAgICA8bWF4IGdhcCBpbiBtaWNyb25zPiIKLSAgICAgICAgIHB1dHMgJG9wICIjIHNldCB2YXJzKCRkb21haW4sd2VsbHRhcHMsY2VsbF9pbnRlcnZhbCkgPGNlbGwgaW50ZXJ2YWwgaW4gbWljcm9ucz4iCi0gICAgICAgICBwdXRzICRvcCAiIyBzZXQgdmFycygkZG9tYWluLHdlbGx0YXBzLHJvd19vZmZzZXQpICAgIDxyb3cgb2Zmc2V0IGluIG1pY3JvbnM+IgotICAgICAgICAgcHV0cyAkb3AgIiMgc2V0IHZhcnMoJGRvbWFpbix3ZWxsdGFwcyx2ZXJpZnlfcnVsZSkgICA8dmVyaWZ5IHJ1bGUgZGlzdGFuY2U+IgotICAgICAgfQotICAgfQotICAgcHV0cyAkb3AgIiMiCi0gICBwdXRzICRvcCAiIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIgotICAgcHV0cyAkb3AgIiMgICAgICAgICAgICAgICAgICAgICAgICAgIEVuZGNhcCBjZWxsIGluZm9ybWF0aW9uIgotICAgcHV0cyAkb3AgIiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIKLSAgIHB1dHMgJG9wICIjIFRoZSB2YXJpYWJsZXMgdmFycyhwcmVfZW5kY2FwKSBhbmQgdmFycyhwb3N0X2VuZGNhcCkgYXJlIHNldCBpbiB0aGUgc2V0dXAudGNsIGZpbGUgYW5kIgotICAgcHV0cyAkb3AgIiMgYXJlIHVzZWQgdG8gZGVmaW5lIFwiZ2xvYmFsXCIgZW5kY2FwIGNlbGxzLiBUaGVzZSB1c2VkIGJ5IGRlZmF1bHQgZm9yIGVhY2ggcG93ZXIgZG9tYWluLiIKLSAgIHB1dHMgJG9wICIjIFRoZXkgY2FuIGJlIG92ZXJyaWRkZW4gZm9yIGEgZ2l2ZW4gcG93ZXIgZG9tYWluIHNldHRpbmcgdmFycyg8cG93ZXJfZG9tYWluPixwcmVfZW5kY2FwKSIKLSAgIHB1dHMgJG9wICIjIGFuZC9vciB2YXJzKDxwb3dlcl9kb21haW4+LHBvc3RfZW5kY2FwKS4iCi0gICBwdXRzICRvcCAiIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIgotICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKHBvd2VyX2RvbWFpbnMpXX0gewotICAgICAgZm9yZWFjaCBkb21haW4gJHZhcnMocG93ZXJfZG9tYWlucykgewotICAgICAgICAgcHV0cyAkb3AgIiMgc2V0IHZhcnMoJGRvbWFpbixwcmVfZW5kY2FwKSAgPHByZSBlbmRjYXAgY2VsbCBmb3IgPHBvd2VyX2RvbWFpbj4+IgotICAgICAgICAgcHV0cyAkb3AgIiMgc2V0IHZhcnMoJGRvbWFpbixwb3N0X2VuZGNhcCkgPHBvc3QgZW5kY2FwIGNlbGwgZm9yIDxwb3dlcl9kb21haW4+PiIKLSAgICAgIH0KLSAgIH0KLSAgIHB1dHMgJG9wICIjIgotICAgcHV0cyAkb3AgIiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyIKLSAgIHB1dHMgJG9wICIjICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFsd2F5cyBvbiBuZXQgYnVmZmVyaW5nIgotICAgcHV0cyAkb3AgIiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIKLSAgIHB1dHMgJG9wICIjIEJ5IGRlZmF1bHQgU09DRSBkb2VzIGFsd2F5cy1vbi1uZXQgc3ludGhlc2lzIGZvciBTUlBHIGNvbnRyb2wgc2lnbmFsIGFuZCBQU08gZW5hYmxlICIKLSAgIHB1dHMgJG9wICIjIHNpZ25hbHMgYXMgcGFydCBvZiBvcHREZXNpZ24gLXByZUNUUywgYnV0IHRoaXMgY2FuIGJlIG1hbnVhbGx5IGRvbmUgZm9yIHNwZWNpZmljIG5ldHMgaWYiCi0gICBwdXRzICRvcCAiIyBuZWNlc3NhcnkuICBUbyBkbyB0aGlzLCBkZWZpbmUgdGhlIGZvbGxvd2luZyB2YXJpYWJsZXMgYW5kIHVuY29tbWVudCB0aGUgcHJlX3ByZWN0cy50Y2wiCi0gICBwdXRzICRvcCAiIyBwbHVnLWluIHRlbXBsYXRlIgotICAgcHV0cyAkb3AgIiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIKLSAgIHB1dHMgJG9wICIjIHNldCB2YXJzKGFsd2F5c19vbl9idWZmZXJzKSAgICAgICAgICAgICAgICAgICA8bGlzdCBvZiBhbHdheXMgb24gYnVmZmVycz4iCi0gICBwdXRzICRvcCAiIyBzZXQgdmFycyhhbHdheXNfb25fbmV0cykgICAgICAgICAgICAgICAgICAgICAgPGxpc3Qgb2YgYWx3YXlzIG9uIG5ldHM+IgotICAgcHV0cyAkb3AgIiMgc2V0IHZhcnMoYWx3YXlzX29uX25ldHMsbWF4X2Zhbm91dCkgICAgICAgICAgIDxtYXggZmFub3V0IGxpbWl0IGZvciBhbHdheXMgb24gbmV0cz4gKG9wdGlvbmFsKSIKLSAgIHB1dHMgJG9wICIjIHNldCB2YXJzKGFsd2F5c19vbl9uZXRzLG1heF90cmFuKSAgICAgICAgICAgICA8bWF4IHRyYW5zaXRpb24gb24gYWx3YXlzIG9uIG5ldHM+IChvcHRpb25hbCkiCi0gICBwdXRzICRvcCAiIyBzZXQgdmFycyhhbHdheXNfb25fbmV0cyxtYXhfc2tldykgICAgICAgICAgICAgPG1heCBza2V3IGZvciBhbHdheXMgb24gbmV0cz4gKG9wdGlvbmFsKSIKLSAgIHB1dHMgJG9wICIjIHNldCB2YXJzKGFsd2F5c19vbl9uZXRzLG1heF9kZWxheSkgICAgICAgICAgICA8bWF4IGRlbGF5IGZvciBhbHdheXMgb24gbmV0cz4gKG9wdGlvbmFsKSIKLSAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhwb3dlcl9kb21haW5zKV19IHsKLSAgICAgIGZvcmVhY2ggZG9tYWluICR2YXJzKHBvd2VyX2RvbWFpbnMpIHsKLSAgICAgICAgIHB1dHMgJG9wICIjIHNldCB2YXJzKCRkb21haW4sYWx3YXlzX29uX2J1ZmZlcnMpICA8YnVmZmVycyBmb3IgPHBvd2VyIGRvbWFpbj4+IgotICAgICAgfQotICAgfQotICAgcHV0cyAkb3AgIiMiCi0gICBwdXRzICRvcCAiIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIgotICAgcHV0cyAkb3AgIiMgICAgICAgICAgICAgICAgICAgICAgU2Vjb25kYXJ5IHBvd2VyL2dyb3VuZCByb3V0aW5nIgotICAgcHV0cyAkb3AgIiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIKLSAgIHB1dHMgJG9wICIjIEF1dG9tYXRpYyBzZWNvbmRhcnkgcG93ZXIgcm91dGluZyBjYW4gYmUgZW5hYmxlZCB0aGUgZm91bmRhdGlvbiBmbG93cyBieSBzZXR0aW5nICIKLSAgIHB1dHMgJG9wICIjIHZhcnMocm91dGVfc2Vjb25kYXJ5X3BnX25ldHMpIHRvIHRydWUgYW5kIHByb3ZpZGluZyBjZWxsIHBpbiBwYWlyIGluZm9ybWF0aW9uIHRvIgotICAgcHV0cyAkb3AgIiMgaWRlbnRpZnkgdGhlIGNvbm5lY3Rpb25zIHJlcXVpcmluZyByb3V0aW5nIChQVEJVRkZEMTpUVkREIExWTExIQ0Q0OlZEREwsIGUuZy4pICIKLSAgIHB1dHMgJG9wICIjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iCi0gICBwdXRzICRvcCAiIyBzZXQgdmFycyhyb3V0ZV9zZWNvbmRhcnlfcGdfbmV0cykgICAgICAgICBcW3RydWUgfCBmYWxzZVxdIgotICAgcHV0cyAkb3AgIiMgc2V0IHZhcnMoc2Vjb25kYXJ5X3BnLGNlbGxfcGluX3BhaXJzKSAgICAgPHNlY29uZGFyeSBwb3dlciBjZWxsIHBpbiBwYWlyIGxpc3Q+IgotICAgcHV0cyAkb3AgIiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIKLSAgIHB1dHMgJG9wICIjSW4gYWRkaXRpb24sIHRoZSBmb2xsb3dpbmcgY2FuIG9wdGlvbmFsbHkgZGVmaW5lZCBlaXRoZXIgZ2xvYmFsbHkgb3IgcGVyIHAvZyBuZXQiCi0gICBwdXRzICRvcCAiIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIgotICAgcHV0cyAkb3AgIiMgc2V0IHZhcnMoc2Vjb25kYXJ5X3BnLG1heF9mYW5vdXQpICAgICAgICAgICA8bWF4IGZhbm91dCBmb3Igc2Vjb25kYXJ5IHBvd2VyIHJvdXRpbmc+IgotICAgcHV0cyAkb3AgIiMgc2V0IHZhcnMoc2Vjb25kYXJ5X3BnLHBhdHRlcm4pICAgICAgICAgICAgICA8c2Vjb25kYXJ5IHBvd2VyIHJvdXRpbmcgcGF0dGVybiB0cnVuayB8IHN0ZWluZXI+IgotICAgcHV0cyAkb3AgIiMgc2V0IHZhcnMoc2Vjb25kYXJ5X3BnLG5vbl9kZWZhdWx0X3J1bGUpICAgICA8bm9uLWRlZmF1bHQgcnVsZSBmb3Igc2Vjb25kYXJ5IHAvZy8gcm91dGluZz4iCi0gICBwdXRzICRvcCAiIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIgotICAgcHV0cyAkb3AgIiMgVG8gb3B0aW9uYWxseSBvdmVycmlkZSBmb3IgYSBnaXZlbiBwL2cgbmV0KHMpLCB1c2UgdGhlIHZhcnMocm91dGVfc2Vjb25kYXJ5X3BnX25ldHMpIHRvICIKLSAgIHB1dHMgJG9wICIjIGRlZmluZSB0aGUgbGlzdCBvZiBuZXRzIHRvIGJlIG92ZXJyaWRkZW4gYW5kIHRoZW4gb3ZlcnJpZGUgdmFycyg8cC9nIG5ldD4sPG9wdGlvbj4pIgotICAgcHV0cyAkb3AgIiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIKLSAgIHB1dHMgJG9wICIjIHNldCB2YXJzKHNlY29uZGFyeV9wZyxuZXRzKSAgICAgICAgICAgICAgICAgIDxsaXN0IG9mIHBvd2VyL2dyb3VuZCBuZXRzPiIKLSAgIHB1dHMgJG9wICIjIHNldCB2YXJzKDxwL2dfbmV0PixtYXhfZmFub3V0KSAgICAgICAgICAgICAgIDxtYXggZmFub3V0PiIKLSAgIHB1dHMgJG9wICIjIHNldCB2YXJzKDxwL2dfbmV0PixwYXR0ZXJuKSAgICAgICAgICAgICAgICAgIDx0cnVuayB8IHN0ZWluZXI+IgotICAgcHV0cyAkb3AgIiMgc2V0IHZhcnMoPHAvZ19uZXQ+LG5vbl9kZWZhdWx0X3J1bGUpICAgICAgICAgPG5vbiBkZWZhdWx0IHJ1bGU+IgotICAgcHV0cyAkb3AgIiMiCi0gICBwdXRzICRvcCAiIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIgotICAgcHV0cyAkb3AgIiMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBydW5DTFAgb3B0aW9ucyIKLSAgIHB1dHMgJG9wICIjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iCi0gICBwdXRzICRvcCAiIyBzZXQgdmFycyhjbHBfb3B0aW9ucykgIDxvcHRpb25zIGZvciBydW5DTFA+IgotICAgcHV0cyAkb3AgIiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIKLSAgIHB1dHMgJG9wICIjIHNldCB2YXJzKGNscF9vcHRpb25zKSAgXCJcIiIKLSAgIHB1dHMgJG9wICIjIgotICAgcHV0cyAkb3AgIiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyIKLSAgIHB1dHMgJG9wICIjICAgICAgICAgICAgICBNb2RpZnkgcG93ZXIgZG9tYWlucywgcm93IGNyZWF0aW9uIGZvciBwb3dlciBkb21haW5zIgotICAgcHV0cyAkb3AgIiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIKLSAgIHB1dHMgJG9wICIjIFRoZSBmb3VuZGF0aW9uIGZsb3dzIGNvbnRhaW4gYSBzYW1wbGUgcG9zdF9pbml0X3RjbCAoUExVRy9wb3N0X2luaXQudGNsKSBwbHVnLWluIHRvIGRvICIKLSAgIHB1dHMgJG9wICIjIHBvd2VyIGRvbWFpbiBtb2RpZmljYXRpb24gYXV0b21hdGljYWxseSBiYXNlZCBvbiB0aGUgZm9sbG9pbmcgdmFyaWFibGVzOiIKLSAgIHB1dHMgJG9wICIjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iCi0gICBpZiB7W2luZm8gZXhpc3RzIHZhcnMocG93ZXJfZG9tYWlucyldfSB7Ci0gICAgICBmb3JlYWNoIGRvbWFpbiAkdmFycyhwb3dlcl9kb21haW5zKSB7Ci0gICAgICAgICBwdXRzICRvcCAiIyBzZXQgdmFycygkZG9tYWluLGJib3gpICAgICAgICAgPGxseCBsbHkgdXJ4IHVyeT47IGJvbmRhcnkgY29vcmRpbmF0ZXMgaW4gbWljcm9ucyIKLSAgICAgICAgIHB1dHMgJG9wICIjIHNldCB2YXJzKCRkb21haW4scnNfZXh0cykgICAgICA8dG9wIGJvdCBsZWZ0IHJpZ2h0PjsgZGlzdGFuY2UgaW4gbWljcm9ucyAgIgotICAgICAgICAgcHV0cyAkb3AgIiMgc2V0IHZhcnMoJGRvbWFpbixtaW5fZ2FwcykgICAgIDx0b3AgYm90IGxlZnQgcmlnaHQ+OyBkaXN0YW5jZSBpbiBtaWNyb25zIgotICAgICAgfQotICAgfQotICAgcHV0cyAkb3AgIiMiCi0gICBwdXRzICRvcCAiIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIgotICAgcHV0cyAkb3AgIiMgICAgICAgICAgICAgICAgICAgICAgICAgICBQb3dlciBTaHV0LW9mZiBQbGFubmluZyAiCi0gICBwdXRzICRvcCAiIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIgotICAgcHV0cyAkb3AgIiMgVGhlIGZvdW5kYXRpb24gZmxvd3MgY29udGFpbiBhIHNhbXBsZSBwb3N0X2luaXRfdGNsIChQTFVHL3Bvc3RfaW5pdC50Y2wpIHBsdWctaW4gdG8gZG8gIgotICAgcHV0cyAkb3AgIiMgcG93ZXIgc3dpdGNoIGluc2VydGlvbiBhdXRvbWF0aWNhbGx5IGJhc2VkIG9uIHRoZSBmb2xsb3dpbmcgaW5mb3JtYXRpb246IgotICAgcHV0cyAkb3AgIiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIKLSAgIHB1dHMgJG9wICIjIHNldCB2YXJzKDxwb3dlcl9kb21haW4+LHN3aXRjaGFibGUpICAgICAgICAgPHRydWUgfCBmYWxzZT4iCi0gICBwdXRzICRvcCAiIyBzZXQgdmFycyg8cG93ZXJfZG9tYWluPixzd2l0Y2hfdHlwZSkgICAgICAgIDxjb2x1bW4gfCByaW5nPiIKLSAgIHB1dHMgJG9wICIjIHNldCB2YXJzKDxwb3dlcl9kb21haW4+LHN3aXRjaF9jZWxsKSAgICAgICAgPFBTTyBjZWxsIG5hbWU+IgotICAgcHV0cyAkb3AgIiMgc2V0IHZhcnMoPHBvd2VyX2RvbWFpbj4saW5wdXRfZW5hYmxlX3BpbikgICA8UFNPIGNlbGwgaW5wdXQgZW5hYmxlIHBpbj4iCi0gICBwdXRzICRvcCAiIyBzZXQgdmFycyg8cG93ZXJfZG9tYWluPixvdXRwdXRfZW5hYmxlX3BpbikgIDxQU08gY2VsbCBvdXRwdXQgZW5hYmxlIHBpbj4iCi0gICBwdXRzICRvcCAiIyBzZXQgdmFycyg8cG93ZXJfZG9tYWluPixpbnB1dF9lbmFibGVfbmV0KSAgIDxQU08gY2VsbCBpbnB1dCBlbmFibGUgbmV0PiIKLSAgIHB1dHMgJG9wICIjIHNldCB2YXJzKDxwb3dlcl9kb21haW4+LG91dHB1dF9lbmFibGVfbmV0KSAgPFBTTyBjZWxsIG91dHB1dCBlbmFibGUgbmV0PiIKLSAgIHB1dHMgJG9wICIjIHNldCB2YXJzKDxwb3dlcl9kb21haW4+LHN3aXRjaF9pbnN0YW5jZSkgICAgPHN3aXRjaE1vZHVsZUluc3RhbmNlPiIKLSAgIHB1dHMgJG9wICIjIHNldCB2YXJzKDxwb3dlcl9kb21haW4+LHRvcF9vZmZzZXQpICAgICAgICAgPHRvcCBvZmZzZXQgaW4gbWljcm9ucz4iCi0gICBwdXRzICRvcCAiIyBzZXQgdmFycyg8cG93ZXJfZG9tYWluPixib3R0b21fb2Zmc2V0KSAgICAgIDxib3R0b20gb2Zmc2V0IGluIG1pY3JvbnM+IgotICAgcHV0cyAkb3AgIiMgc2V0IHZhcnMoPHBvd2VyX2RvbWFpbj4scmlnaHRfb2Zmc2V0KSAgICAgICA8cmlnaHQgb2Zmc2V0IGluIG1pY3JvbnM+IgotICAgcHV0cyAkb3AgIiMgc2V0IHZhcnMoPHBvd2VyX2RvbWFpbj4sbGVmdF9vZmZzZXQpICAgICAgICA8bGVmdCBvZmZzZXQgaW4gbWljcm9ucz4iCi0gICBwdXRzICRvcCAiIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIgotICAgcHV0cyAkb3AgIiMgQmVsb3cgdmFyaWFibGVzIGFyZSBmb3IgY29sdW1uIGJhc2VkIHBzbyBpbXBsZW1ldGF0aW9uIgotICAgcHV0cyAkb3AgIiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIKLSAgIHB1dHMgJG9wICIjIHNldCB2YXJzKDxwb3dlcl9kb21haW4+LGNoZWNrZXJfYm9hcmQpICAgICA8dHJ1ZSB8IGZhbHNlPiIKLSAgIHB1dHMgJG9wICIjIHNldCB2YXJzKDxwb3dlcl9kb21haW4+LGhvcml6b25hbF9waXRjaCkgICA8aW4gbWljcm9ucz4iCi0gICBwdXRzICRvcCAiIyBzZXQgdmFycyg8cG93ZXJfZG9tYWluPixjb2x1bW5faGVpZ2h0KSAgICAgPFN3aXRjaCBjZWxsIGNvbHVtbiBoZWlnaHQgaW4gbWljcm9ucz4iCi0gICBwdXRzICRvcCAiIyBzZXQgdmFycyg8cG93ZXJfZG9tYWluPixza2lwX3Jvd3MpICAgICAgICAgPE51bWJlciBvZiByb3dzIHRvIHNraXA+IgotICAgcHV0cyAkb3AgIiMgc2V0IHZhcnMoPHBvd2VyX2RvbWFpbj4sYmFja190b19iYWNrX2NoYWluKSA8dHJ1ZXxmYWxzZT4iCi0gICBwdXRzICRvcCAiIyAuLi4gQ29ubmVjdHMgdGhlIGVuYWJsZU5ldE91dCBhdCB0aGUgdG9wIG9mIGEgY29sdW1uIHRvIHRoZSBlbmFibGVOZXRJbiBhdCB0aGUgdG9wIG9mICIKLSAgIHB1dHMgJG9wICIjIC4uLiB0aGUgbmV4dCBjb2x1bW4sIGFuZCBjb25uZWN0cyB0aGUgZW5hYmxlTmV0T3V0IGF0IHRoZSBib3R0b20gb2YgdGhlIGNvbHVtbiB0byB0aGUgIgotICAgcHV0cyAkb3AgIiMgLi4uIGVuYWJsZU5ldEluIGF0IHRoZSBib3R0b20gb2YgdGhlIG5leHQgY29sdW1uIgotICAgcHV0cyAkb3AgIiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIKLSAgIHB1dHMgJG9wICIjIEJlbG93IHZhcmlhYmxlcyBhcmUgZm9yIHJpbmcgYmFzZWQgcHNvIGltcGxlbWV0YXRpb24iCi0gICBwdXRzICRvcCAiIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIgotICAgcHV0cyAkb3AgIiMgc2V0IHZhcnMoPHBvd2VyX2RvbWFpbj4sdG9wX3JpbmcpICAgICA8MXwwPiIKLSAgIHB1dHMgJG9wICIjIHNldCB2YXJzKDxwb3dlcl9kb21haW4+LGJvdHRvbV9yaW5nKSAgPDF8MD4iCi0gICBwdXRzICRvcCAiIyBzZXQgdmFycyg8cG93ZXJfZG9tYWluPixyaWdodF9yaW5nKSAgIDwxfDA+IgotICAgcHV0cyAkb3AgIiMgc2V0IHZhcnMoPHBvd2VyX2RvbWFpbj4sbGVmdF9yaW5nKSAgICA8MXwwPiIKLSAgIHB1dHMgJG9wICIjIC4uLiBkZWZpbmVzIHdoaWNoIHNpZGUgb2YgdGhlIHBvd2VyIGRvbWFpbiB0byBpbnNlcnQgc3dpdGNoZXM6IgotICAgcHV0cyAkb3AgIiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIKLSAgIHB1dHMgJG9wICIjIHNldCB2YXJzKDxwb3dlcl9kb21haW4+LHRvcF9zd2l0Y2hfY2VsbCkgICAgPHBzbyBjZWxsIG5hbWU+IgotICAgcHV0cyAkb3AgIiMgc2V0IHZhcnMoPHBvd2VyX2RvbWFpbj4sYm90dG9tX3N3aXRjaF9jZWxsKSA8cHNvIGNlbGwgbmFtZT4iCi0gICBwdXRzICRvcCAiIyBzZXQgdmFycyg8cG93ZXJfZG9tYWluPixsZWZ0X3N3aXRjaF9jZWxsKSAgIDxwc28gY2VsbCBuYW1lPiIKLSAgIHB1dHMgJG9wICIjIHNldCB2YXJzKDxwb3dlcl9kb21haW4+LHJpZ2h0X3N3aXRjaF9jZWxsKSAgPHBzbyBjZWxsIG5hbWU+IgotICAgcHV0cyAkb3AgIiMgLi4uIGRlZmluZSBwc28gY2VsbCBuYW1lIGZvciBlYWNoIHNpZGUgb2YgdGhlIHBvd2VyIGRvbWFpbiIKLSAgIHB1dHMgJG9wICIjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iCi0gICBwdXRzICRvcCAiIyBzZXQgdmFycyg8cG93ZXJfZG9tYWluPix0b3BfZmlsbGVyX2NlbGwpICAgIDxmaWxsZXIgY2VsbCBuYW1lPiIKLSAgIHB1dHMgJG9wICIjIHNldCB2YXJzKDxwb3dlcl9kb21haW4+LGJvdHRvbV9maWxsZXJfY2VsbCkgPGZpbGxlciBjZWxsIG5hbWU+IgotICAgcHV0cyAkb3AgIiMgc2V0IHZhcnMoPHBvd2VyX2RvbWFpbj4sbGVmdF9maWxsZXJfY2VsbCkgICA8ZmlsbGVyIGNlbGwgbmFtZT4iCi0gICBwdXRzICRvcCAiIyBzZXQgdmFycyg8cG93ZXJfZG9tYWluPixyaWdodF9maWxsZXJfY2VsbCkgIDxmaWxsZXIgY2VsbCBuYW1lPiIKLSAgIHB1dHMgJG9wICIjIHNldCB2YXJzKDxwb3dlcl9kb21haW4+LGNvcm5lcl9jZWxsX2xpc3QpICAgPGNvcm5lciBjZWxsIG5hbWU+IgotICAgcHV0cyAkb3AgIiMgLi4uIGRlZmluZSBmaWxsZXIgY2VsbCBuYW1lIGZvciBlYWNoIHNpZGUgb2YgdGhlIHBvd2VyIGRvbWFpbiIKLSAgIHB1dHMgJG9wICIjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iCi0gICBwdXRzICRvcCAiIyBzZXQgdmFycyg8cG93ZXJfZG9tYWluPixkaXN0cmlidXRlKSAgICAgICAgIDx0cnVlIG9yIGZhbHNlPiIKLSAgIHB1dHMgJG9wICIjIHNldCB2YXJzKDxwb3dlcl9kb21haW4+LHRvcF9zd2l0Y2hlcykgICAgICAgPGludGVnZXI+IgotICAgcHV0cyAkb3AgIiMgc2V0IHZhcnMoPHBvd2VyX2RvbWFpbj4sYm90dG9tX3N3aXRjaGVzKSAgICA8aW50ZWdlcj4iCi0gICBwdXRzICRvcCAiIyBzZXQgdmFycyg8cG93ZXJfZG9tYWluPixsZWZ0X3N3aXRjaGVzKSAgICAgIDxpbnRlZ2VyPiIKLSAgIHB1dHMgJG9wICIjIHNldCB2YXJzKDxwb3dlcl9kb21haW4+LHJpZ2h0X3N3aXRjaGVzKSAgICAgPGludGVnZXI+IgotICAgcHV0cyAkb3AgIiMgLi4uIGRlZmluZSB0aGUgbnVtYmVyIG9mIHN3aXRjaGVzIGZvciBlYWNoIHNpZGUgb2YgdGhlIHBvd2VyIGRvbWFpbiIKLSAgIHB1dHMgJG9wICIjIgotCi0gICBjbG9zZSAkb3AKLQotICAgUHV0cyAiPEZGPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iCi0gICBQdXRzICI8RkY+IENyZWF0ZWQgbG93IHBvd2VyIGNvbmZpZyBmaWxlIFwibHBfY29uZmlnLmF1dG8udGNsXCIiCi0gICBQdXRzICI8RkY+ICAgIFRoaXMgZmlsZSBpcyB1c2VkIHRvIGRlZmluZSB2YXJpYWJsZXMgc3BlY2lmaWMgdG8gdGhlIExQIGZvdW5kYXRpb24gZmxvdy4iCi0gICBQdXRzICI8RkY+ICAgIEFsbCB0aGUgaW5mb3JtYWl0b24gaW4gdGhpcyBmaWxlIGlzIG9wdGlvbmFsIGJ1dCBpcyBpbnRlbmRlZCB0byBoZWxwICIKLSAgIFB1dHMgIjxGRj4gICAgYXV0b21hdGUgc29tZSBvZiB0aGUgbW9zdCBjb21tb24gTFAgY29tbWFuZHMuICBQbGVhc2UgZWRpdCBhbmQgY29weSIKLSAgIFB1dHMgIjxGRj4gICAgdG8gbHBfY29uZmlnLnRjbCB0byBlbmFibGUgKG1ha2Ugc3VyZSBpdCBpcyBzb3VyY2VkIGZyb20gc2V0dXAudGNsKS4iCi0KLX0KLQotcHJvYyBjcmVhdGVfaW52c190YWdfZmlsZSB7fSB7Ci0KLSAgIGdsb2JhbCB2YXJzCi0gICBnbG9iYWwgdGFncwotCi0gICBzZXQgc3RlcHMgW2xpc3QgImZlZWR0aHJvdWdoIiAiYXNzaWduX3BpbiIgIm1vZGVsX2dlbiIgInBhcnRpdGlvbiIgXAotICAgICAgICAgICAgICAgICAiaW5pdCIgInBsYWNlIiAicHJlY3RzIiAiY3RzIiAicG9zdGN0cyIgInBvc3RjdHNfaG9sZCIgInJvdXRlIiBcCi0gICAgICAgICAgICAgICAgICJwb3N0cm91dGUiICJwb3N0cm91dGVfaG9sZCIgInNpZ25vZmYiICJhc3NlbWJsZSJdCi0KLSAgIHNldCB0YWdzKGluaXQpIFtsaXN0IFwKLSAgICAgIHNldF9kaXN0cmlidXRlX2hvc3QgXAotICAgICAgc2V0X211bHRpX2NwdV91c2FnZSBcCi0gICAgICBzZXRfZGlzdHJpYnV0ZV9ob3N0IFwKLSAgICAgIHNldF9tdWx0aV9jcHVfdXNhZ2UgXAotICAgICAgc2V0X3JjX2ZhY3RvciBcCi0gICAgICBkZXJhdGVfdGltaW5nIFwKLSAgICAgIGNyZWF0ZV9yY19jb3JuZXIgXAotICAgICAgY3JlYXRlX2xpYnJhcnlfc2V0IFwKLSAgICAgIGNyZWF0ZV9kZWxheV9jb3JuZXIgXAotICAgICAgY3JlYXRlX2NvbnN0cmFpbnRfbW9kZSBcCi0gICAgICBjcmVhdGVfYW5hbHlzaXNfdmlldyBcCi0gICAgICB1cGRhdGVfZGVsYXlfY29ybmVyIFwKLSAgICAgIHVwZGF0ZV9saWJyYXJ5X3NldCBcCi0gICAgICBkZXJhdGVfdGltaW5nIFwKLSAgICAgIHNldF9kZWZhdWx0X3ZpZXcgXAotICAgICAgc2V0X3Bvd2VyX2FuYWx5c2lzX21vZGUgXAotICAgICAgaW5pdF9kZXNpZ24gXAotICAgICAgbG9hZF9mbG9vcnBsYW4gXAotICAgICAgZ2VuZXJhdGVfdHJhY2tzIFwKLSAgICAgIGxvYWRfY3BmIFwKLSAgICAgIGNvbW1pdF9jcGYgXAotICAgICAgcmVhZF9hY3Rpdml0eV9maWxlIFwKLSAgICAgIHNwZWNpZnlfaWxtIFwKLSAgICAgIGxvYWRfaWxtX25vbl9zZGNfZmlsZSBcCi0gICAgICBpbml0aWFsaXplX3RpbWluZyBcCi0gICAgICBsb2FkX3NjYW4gXAotICAgICAgc3BlY2lmeV9zcGFyZV9nYXRlcyBcCi0gICAgICBzZXRfZG9udF91c2UgXAotICAgICAgc2V0X21heF9yb3V0ZV9sYXllciBcCi0gICAgICBzZXRfZGVzaWduX21vZGUgXAotICAgICAgaW5zZXJ0X3dlbGx0YXBzX2VuZGNhcHMgXAotICAgICAgdGltZV9kZXNpZ24gXAotICAgICAgY2hlY2tfZGVzaWduIFwKLSAgICAgIGNoZWNrX3RpbWluZyBcCi0gICAgICByZXBvcnRfcG93ZXJfZG9tYWlucyBcCi0gICAgICBmZl9yZXBsYWNlX2ZsZXhtb2RlbF93aXRoX2Z1bGxfbmV0bGlzdCBcCi0gICBdCi0gICBzZXQgdGFncyhwbGFjZSkgW2xpc3QgXAotICAgICAgc2V0X2Rpc3RyaWJ1dGVfaG9zdCBcCi0gICAgICBzZXRfbXVsdGlfY3B1X3VzYWdlIFwKLSAgICAgIHJlc3RvcmVfZGVzaWduIFwKLSAgICAgIGluaXRpYWxpemVfc3RlcCBcCi0gICAgICAgICBzZXRfZGVzaWduX21vZGUgXAotICAgICAgICAgc2V0X2RlbGF5X2NhbF9tb2RlIFwKLSAgICAgICAgIHNldF9wbGFjZV9tb2RlIFwKLSAgICAgICAgIHNldF9vcHRfbW9kZSBcCi0gICAgICAgICBzZXRfdGllX2hpbG9fbW9kZSBcCi0gICAgICAgICBjbGVhbnVwX3NwZWNpZnlfY2xvY2tfdHJlZSBcCi0gICAgICAgICBzcGVjaWZ5X2Nsb2NrX3RyZWUgXAotICAgICAgc3BlY2lmeV9qdGFnIFwKLSAgICAgIHBsYWNlX2p0YWcgXAotICAgICAgcGxhY2VfZGVzaWduIFwKLSAgICAgIHBsYWNlX29wdF9kZXNpZ24gXAotICAgICAgYWRkX3RpZV9jZWxscyBcCi0gICAgICB0aW1lX2Rlc2lnbiBcCi0gICAgICBzYXZlX2Rlc2lnbiBcCi0gICAgICByZXBvcnRfcG93ZXIgXAotICAgICAgdmVyaWZ5X3Bvd2VyX2RvbWFpbiBcCi0gICAgICBydW5fY2xwIFwKLSAgIF0KLSAgIHNldCB0YWdzKHByZWN0cykgW2xpc3QgXAotICAgICAgc2V0X2Rpc3RyaWJ1dGVfaG9zdCBcCi0gICAgICBzZXRfbXVsdGlfY3B1X3VzYWdlIFwKLSAgICAgIGluaXRpYWxpemVfc3RlcCBcCi0gICAgICAgICBzZXRfZGVzaWduX21vZGUgXAotICAgICAgICAgc2V0X2lsbV90eXBlIFwKLSAgICAgICAgIGNsZWFudXBfc3BlY2lmeV9jbG9ja190cmVlIFwKLSAgICAgICAgIGNyZWF0ZV9jbG9ja190cmVlX3NwZWMgXAotICAgICAgICAgc3BlY2lmeV9jbG9ja190cmVlIFwKLSAgICAgICAgIHNldF91c2VmdWxfc2tld19tb2RlIFwKLSAgICAgICAgIHNldF9vcHRfbW9kZSBcCi0gICAgICAgICBzZXRfZGVzaWduX21vZGUgXAotICAgICAgICAgc2V0X2RlbGF5X2NhbF9tb2RlIFwKLSAgICAgICAgIHNldF9kb250X3VzZSBcCi0gICAgICBvcHRfZGVzaWduIFwKLSAgICAgIGNrX2Nsb25lX2dhdGUgXAotICAgICAgc2F2ZV9kZXNpZ24gXAotICAgICAgcmVwb3J0X3Bvd2VyIFwKLSAgICAgIHZlcmlmeV9wb3dlcl9kb21haW4gXAotICAgICAgcnVuX2NscCBcCi0gICBdCi0gICBzZXQgdGFncyhjdHMpIFtsaXN0IFwKLSAgICAgIHNldF9kaXN0cmlidXRlX2hvc3QgXAotICAgICAgc2V0X211bHRpX2NwdV91c2FnZSBcCi0gICAgICBpbml0aWFsaXplX3N0ZXAgXAotICAgICAgICAgc2V0X2Rlc2lnbl9tb2RlIFwKLSAgICAgICAgIHNldF9jdHNfbW9kZSBcCi0gICAgICAgICBzZXRfY2NvcHRfbW9kZSBcCi0gICAgICAgICBzZXRfbmFub3JvdXRlX21vZGUgXAotICAgICAgZW5hYmxlX2Nsb2NrX2dhdGVfY2VsbHMgXAotICAgICAgY2xlYW51cF9zcGVjaWZ5X2Nsb2NrX3RyZWUgXAotICAgICAgY3JlYXRlX2Nsb2NrX3RyZWVfc3BlYyBcCi0gICAgICBzcGVjaWZ5X2Nsb2NrX3RyZWUgXAotICAgICAgY2xvY2tfZGVzaWduIFwKLSAgICAgIGNjb3B0X2Rlc2lnbiBcCi0gICAgICBkaXNhYmxlX2Nsb2NrX2dhdGVfY2VsbHMgXAotICAgICAgcnVuX2Nsb2NrX2VjbyBcCi0gICAgICB1cGRhdGVfdGltaW5nIFwKLSAgICAgIHRpbWVfZGVzaWduIFwKLSAgICAgIHNhdmVfZGVzaWduIFwKLSAgICAgIHJlcG9ydF9wb3dlciBcCi0gICAgICB2ZXJpZnlfcG93ZXJfZG9tYWluIFwKLSAgICAgIHJ1bl9jbHAgXAotICAgXQotICAgc2V0IHRhZ3MocG9zdGN0cykgW2xpc3QgXAotICAgICAgc2V0X2Rpc3RyaWJ1dGVfaG9zdCBcCi0gICAgICBzZXRfbXVsdGlfY3B1X3VzYWdlIFwKLSAgICAgIGluaXRpYWxpemVfc3RlcCBcCi0gICAgICAgICBzZXRfZGVzaWduX21vZGUgXAotICAgICAgICAgc2V0X2RlbGF5X2NhbF9tb2RlIFwKLSAgICAgICAgIHNldF9hbmFseXNpc19tb2RlIFwKLSAgICAgICAgIHNldF9vcHRfbW9kZSBcCi0gICAgICBvcHRfZGVzaWduIFwKLSAgICAgIHNhdmVfZGVzaWduIFwKLSAgICAgIHJlcG9ydF9wb3dlciBcCi0gICAgICB2ZXJpZnlfcG93ZXJfZG9tYWluIFwKLSAgICAgIHJ1bl9jbHAgXAotICAgXQotICAgc2V0IHRhZ3MocG9zdGN0c19ob2xkKSBbbGlzdCBcCi0gICAgICBzZXRfZGlzdHJpYnV0ZV9ob3N0IFwKLSAgICAgIHNldF9tdWx0aV9jcHVfdXNhZ2UgXAotICAgICAgaW5pdGlhbGl6ZV9zdGVwIFwKLSAgICAgICAgIHNldF9kb250X3VzZSBcCi0gICAgICAgICBzZXRfb3B0X21vZGUgXAotICAgICAgb3B0X2Rlc2lnbiBcCi0gICAgICBzYXZlX2Rlc2lnbiBcCi0gICAgICByZXBvcnRfcG93ZXIgXAotICAgICAgdmVyaWZ5X3Bvd2VyX2RvbWFpbiBcCi0gICAgICBydW5fY2xwIFwKLSAgIF0KLSAgIHNldCB0YWdzKHJvdXRlKSBbbGlzdCBcCi0gICAgICBzZXRfZGlzdHJpYnV0ZV9ob3N0IFwKLSAgICAgIHNldF9tdWx0aV9jcHVfdXNhZ2UgXAotICAgICAgaW5pdGlhbGl6ZV9zdGVwIFwKLSAgICAgICAgIHNldF9uYW5vcm91dGVfbW9kZSBcCi0gICAgICAgICBhZGRfZmlsbGVyX2NlbGxzIFwKLSAgICAgIHJvdXRlX3NlY29uZGFyeV9wZ19uZXRzIFwKLSAgICAgIGNoZWNrX3BsYWNlIFwKLSAgICAgIHJvdXRlX2Rlc2lnbiBcCi0gICAgICBydW5fY2xvY2tfZWNvIFwKLSAgICAgIHNwcmVhZF93aXJlcyBcCi0gICAgICBpbml0aWFsaXplX3RpbWluZyBcCi0gICAgICB0aW1lX2Rlc2lnbiBcCi0gICAgICBzYXZlX2Rlc2lnbiBcCi0gICAgICByZXBvcnRfcG93ZXIgXAotICAgICAgdmVyaWZ5X3Bvd2VyX2RvbWFpbiBcCi0gICAgICBydW5fY2xwIFwKLSAgIF0KLSAgIHNldCB0YWdzKHBvc3Ryb3V0ZSkgW2xpc3QgXAotICAgICAgc2V0X2Rpc3RyaWJ1dGVfaG9zdCBcCi0gICAgICBzZXRfbXVsdGlfY3B1X3VzYWdlIFwKLSAgICAgIGluaXRpYWxpemVfc3RlcCBcCi0gICAgICAgICBzZXRfZGVzaWduX21vZGUgXAotICAgICAgICAgc2V0X2V4dHJhY3RfcmNfbW9kZSBcCi0gICAgICAgICBzZXRfYW5hbHlzaXNfbW9kZSBcCi0gICAgICAgICBzZXRfZGVsYXlfY2FsX21vZGUgXAotICAgICAgYWRkX21ldGFsZmlsbCBcCi0gICAgICBvcHRfZGVzaWduIFwKLSAgICAgIHRyaW1fbWV0YWxmaWxsIFwKLSAgICAgIHNhdmVfZGVzaWduIFwKLSAgICAgIHJlcG9ydF9wb3dlciBcCi0gICAgICB2ZXJpZnlfcG93ZXJfZG9tYWluIFwKLSAgICAgIHJ1bl9jbHAgXAotICAgXQotICAgc2V0IHRhZ3MocG9zdHJvdXRlX2hvbGQpIFtsaXN0IFwKLSAgICAgIHNldF9kaXN0cmlidXRlX2hvc3QgXAotICAgICAgc2V0X211bHRpX2NwdV91c2FnZSBcCi0gICAgICBpbml0aWFsaXplX3N0ZXAgXAotICAgICAgICAgc2V0X2RvbnRfdXNlX21vZGUgXAotICAgICAgICAgc2V0X29wdF9tb2RlIFwKLSAgICAgIG9wdF9kZXNpZ24gXAotICAgICAgdHJpbV9tZXRhbGZpbGwgXAotICAgICAgc2F2ZV9kZXNpZ24gXAotICAgICAgcmVwb3J0X3Bvd2VyIFwKLSAgICAgIHZlcmlmeV9wb3dlcl9kb21haW4gXAotICAgICAgcnVuX2NscCBcCi0gICBdCi0gICBzZXQgdGFncyhzaWdub2ZmKSBbbGlzdCBcCi0gICAgICBzZXRfZGlzdHJpYnV0ZV9ob3N0IFwKLSAgICAgIHNldF9tdWx0aV9jcHVfdXNhZ2UgXAotICAgICAgaW5pdGlhbGl6ZV90aW1pbmcgXAotICAgICAgaW5pdGlhbGl6ZV9zdGVwIFwKLSAgICAgICAgIHNldF9hbmFseXNpc19tb2RlIFwKLSAgICAgICAgIHNldF9leHRyYWN0X3JjX21vZGUgXAotICAgICAgZXh0cmFjdF9yYyBcCi0gICAgICBkdW1wX3NwZWYgXAotICAgICAgc2lnbm9mZl90aW1lX2Rlc2lnbiBcCi0gICAgICB0aW1lX2Rlc2lnbl9zZXR1cCBcCi0gICAgICB0aW1lX2Rlc2lnbl9ob2xkIFwKLSAgICAgIHN0cmVhbV9vdXQgXAotICAgICAgc2F2ZV9vYV9kZXNpZ24gXAotICAgICAgY3JlYXRlX2lsbSBcCi0gICAgICBzdW1tYXJ5X3JlcG9ydCBcCi0gICAgICB2ZXJpZnlfY29ubmVjdGl2aXR5IFwKLSAgICAgIHZlcmlmeV9nZW9tZXRyeSBcCi0gICAgICB2ZXJpZnlfbWV0YWxfZGVuc2l0eSBcCi0gICAgICB2ZXJpZnlfcHJvY2Vzc19hbnRlbm5hIFwKLSAgICAgIHNhdmVfZGVzaWduIFwKLSAgICAgIHJlcG9ydF9wb3dlciBcCi0gICAgICB2ZXJpZnlfcG93ZXJfZG9tYWluIFwKLSAgICAgIHJ1bl9jbHAgXAotICAgCi0gICBdCi0gICBzZXQgdGFncyhmZWVkdGhyb3VnaCkgW2xpc3QgXAotICAgICAgaW5pdGlhbGl6ZV90aW1pbmcgXAotICAgICAgbG9hZF9jcGYgXAotICAgICAgY29tbWl0X2NwZiBcCi0gICAgICBydW5fY2xwX2luaXQgXAotICAgICAgc2F2ZV9pbml0X2RicyBcCi0gICAgICBzZXRfYnVkZ2V0aW5nX21vZGUgXAotICAgICAgdXBkYXRlX2NvbnN0cmFpbnRfbW9kZSBcCi0gICAgICBzZXRfcHRuX3VzZXJfY25zX2ZpbGUgXAotICAgICAgc2V0X3BsYWNlX21vZGUgXAotICAgICAgc2V0X3Byb3RvX21vZGVsIFwKLSAgICAgIHBsYWNlX2Rlc2lnbiBcCi0gICAgICB0aW1lX2Rlc2lnbiBcCi0gICAgICBzYXZlX3BsYWNlX2RicyBcCi0gICAgICBpbnNlcnRfcHRuX2ZlZWR0aHJvdWdoIFwKLSAgICAgIHRyaWFsX3JvdXRlIFwKLSAgICAgIHRyaWFsX3JvdXRlX3RpbWVfZGVzaWduIFwKLSAgIF0KLSAgIHNldCB0YWdzKGFzc2lnbl9waW4pIFtsaXN0IFwKLSAgICAgIGFzc2lnbl9wdG5fcGlucyBcCi0gICAgICBjaGVja19waW5fYXNzaWdubWVudCBcCi0gICAgICByZXBvcnRfdW5hbGlnbmVkX25ldHMgXAotICAgICAgdHJpYWxfcm91dGUgXAotICAgXQotICAgc2V0IHRhZ3MobW9kZWxfZ2VuKSBbbGlzdCBcCi0gICAgICBjcmVhdGVfcHNfcGVyX21pY3Jvbl9tb2RlbCBcCi0gICAgICBpZGVudGlmeV9wcm90b19tb2RlbCBcCi0gICAgICByZXBvcnRfcHJvdG9fbW9kZWwgXAotICAgICAgc2V0SWxtTW9kZSBcCi0gICAgICBjcmVhdGVfcHJvdG9fbW9kZWwgXAotICAgICAgY3JlYXRlX2ZsZXhmaWxsZXJfcm91dGVfYmxvY2thZ2UgXAotICAgICAgcmVwb3J0X3Byb3RvX21vZGVsIFwKLSAgICAgIHNhdmVEZXNpZ24gXAotICAgXQotICAgc2V0IHRhZ3MocGFydGl0aW9uKSBbbGlzdCBcCi0gICAgICB0aW1lX2Rlc2lnbl9wcm90byBcCi0gICAgICBzZXRfcHNwbV92YXJzIFwKLSAgICAgIHNldF9idWRnZXRpbmdfbW9kZSBcCi0gICAgICBzZXRfcHRuX3Bpbl9zdGF0dXMgXAotICAgICAgZGVyaXZlX3RpbWluZ19idWRnZXQgXAotICAgICAgc2F2ZV9idWRnZXRfZGJzIFwKLSAgICAgIHJ1bl9jbHAgXAotICAgICAgcGFydGl0aW9uIFwKLSAgICAgIHNhdmVfcGFydGl0aW9uIFwKLSAgIF0KLSAgIHNldCB0YWdzKGFzc2VtYmxlKSBbbGlzdCBcCi0gICAgICBhc3NlbWJsZV9kZXNpZ24gXAotICAgICAgc3BlY2lmeV9pbG0gXAotICAgICAgbG9hZF9pbG1fbm9uX3NkY19maWxlIFwKLSAgICAgIGxvYWRfY3BmIFwKLSAgICAgIGNvbW1pdF9jcGYgXAotICAgICAgaW5pdGlhbGl6ZV90aW1pbmcgXAotICAgICAgdXBkYXRlX3RpbWluZyBcCi0gICAgICBwcmVfc2lnbm9mZl9lY29fdmVyaWZ5X2Nvbm5lY3Rpdml0eSBcCi0gICAgICBwcmVfc2lnbm9mZl9lY29fdmVyaWZ5X2dlb21ldHJ5IFwKLSAgICAgIHNldF9tb2R1bGVfdmlldyBcCi0gICAgICBkZWxldGVfZmlsbGVyX2NlbGxzIFwKLSAgICAgIG9wdF9kZXNpZ24gXAotICAgICAgZXh0cmFjdF9yYyBcCi0gICAgICBzaWdub2ZmX29wdF9kZXNpZ24gXAotICAgICAgc2lnbm9mZl90aW1lX2Rlc2lnbiBcCi0gICAgICBhZGRfZmlsbGVyX2NlbGxzIFwKLSAgICAgIGVjb19yb3V0ZSBcCi0gICAgICBwb3N0X3NpZ25vZmZfZWNvX3ZlcmlmeV9jb25uZWN0aXZpdHkgXAotICAgICAgcG9zdF9zaWdub2ZmX2Vjb192ZXJpZnlfZ2VvbWV0cnkgXAotICAgXQotCi0gICBzZXQgb3AgW29wZW4gaW52cy5hdXRvLnRjbCB3XQotCi0gICBwdXRzICRvcCAiIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIgotICAgcHV0cyAkb3AgIiMgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENETlMgRk9VTkRBVElPTiBGTE9XIgotICAgcHV0cyAkb3AgIiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIKLSAgIHB1dHMgJG9wICIjIFRoaXMgaXMgdGhlIGZvdW5kYXRpb24gZmxvdyB0YWdzIGZpbGUuICBFYWNoIGZsb3cgc3RlcCBpcyBhIHNlcXVlbmNlIG9mIGNvbW1hbmRzIGFuZCIgCi0gICBwdXRzICRvcCAiIyBlYWNoIGNvbW1hbmQgaGFzIGEgdGFnIGFzc29jaWF0ZWQgd2l0aCBpdCBhbmQgZWFjaCB0YWcgaGFzIGZvdXIgYXR0cmlidXRlczoiCi0gICBwdXRzICRvcCAiIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIgotICAgcHV0cyAkb3AgIiMgICAgICAgcHJlX3RjbCAtPiBmaWxlIHRvIGJlIHNvdXJjZWQgcHJpb3IgdG8gdGhlIGNvbW1hbmQiCi0gICBwdXRzICRvcCAiIyAgICAgIHBvc3RfdGNsIC0+IGZpbGUgdG8gYmUgc291cmNlZCBhZnRlciB0aGUgY29tbWFuZCIKLSAgIHB1dHMgJG9wICIjICAgcmVwbGFjZV90Y2wgLT4gZmlsZSB0byBiZSBzb3VyY2VkIGluc3RlYWQgb2YgdGhlIGNvbW1hbmQiCi0gICBwdXRzICRvcCAiIyAgICAgICAgICBza2lwIC0+IHNraXAgdGhlIGNvbW1hbmQgZW50aXJlbHkgKHRydWUgfCBmYWxzZSkiCi0gICBwdXRzICRvcCAiIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIgotICAgcHV0cyAkb3AgIiMgVGhlc2UgYXR0cmlidXRlcyBwcm92aWRlIG1vcmUgZ3JhbnVsYXJpdHkgdGhhdCB0aGUgcGx1Zy1pbnMgYW5kIGFyZSBpbnRlbmRlZCB0byIKLSAgIHB1dHMgJG9wICIjIGFsbG93IGZvciBmbG93IGN1c3RvbWl6YXRpb24gYXQgYSB2ZXJ5IGRldGFpbGVkIGxldmVsLiAgVG8gZW5hYmxlLCBzaW1wbHkgdW5jb21tZW50IgotICAgcHV0cyAkb3AgIiMgdGhlIHRhZywgYXNzaWduIHRoZSBhcHByb3ByaWF0ZSB2YWx1ZSwgYW5kIG1ha2Ugc3VyZSB0aGlzIGZpbGUgZ2V0cyBzb3VyY2VkIgotICAgcHV0cyAkb3AgIiMgZnJvbSB0aGUgc2V0dXAudGNsIG9yIGlubm92dXNfY29uZmlnLnRjbC4gIEtlZXAgaW4gbWluZCwgdGhlc2UgdGFncyB3aWxsIG9ubHkiCi0gICBwdXRzICRvcCAiIyBiZSBldmFsdWF0ZWQgaWYgdGhlIGNvbW1hbmQgdGhleSBhcmUgYXNzb2NpYXRlZCBpcyBleGVjdXRlZCBhcyBwYXJ0IG9mIHRoZSBmbG93IgotICAgcHV0cyAkb3AgIiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIKLSAgIHB1dHMgJG9wICIjICAgICAgICAgdmVyYm9zZSAtPiBQcmludCB0YWcgcmVsYXRlZCBjb21tZW50cyBmb3IgaW1wb3J0ZWQgdGFncyIKLSAgIHB1dHMgJG9wICIjIHZlcmJvc2l0eV9sZXZlbCAtPiBQcmludCB0YWcgcmVsYXRlZCBjb21tZW50cyBmb3IgQUxMIHBvc3NpYmxlIHRhZ3MgXFtMT1cgfCBISUdIXF0iCi0gICBwdXRzICRvcCAiIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIgotCi0gICBmb3JlYWNoIHN0ZXAgJHN0ZXBzIHsKLSAgICAgIGZvcmVhY2ggY29tbWFuZCAkdGFncygkc3RlcCkgewotICAgICAgICAgZm9yZWFjaCB0YWcgInByZV90Y2wgcG9zdF90Y2wgcmVwbGFjZV90Y2wgc2tpcCIgewotICAgICAgICAgICAgc2V0IHN0cmluZyAiI3NldCB2YXJzKCRzdGVwLCRjb21tYW5kLCR0YWcpIgotICAgICAgICAgICAgc2V0IGxlbmd0aCBbc3RyaW5nIGxlbmd0aCAkc3RyaW5nXQotICAgICAgICAgICAgc2V0IGRpZmYgW2V4cHIgNjAtJGxlbmd0aF0KLSAgICAgICAgICAgIHNldCBzcGFjZXMgW3N0cmluZyByZXBlYXQgIiAiICRkaWZmXQotICAgICAgICAgICAgaWYgeyR0YWcgPT0gInNraXAifSB7Ci0gICAgICAgICAgICAgICBwdXRzICRvcCBbZm9ybWF0ICIlcyVzJXMiICRzdHJpbmcgJHNwYWNlcyAiPHRydWUgb3IgZmFsc2U+Il0KLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBwdXRzICRvcCBbZm9ybWF0ICIlcyVzJXMiICRzdHJpbmcgJHNwYWNlcyAiPGZpbGU+Il0KLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0KLSAgICAgIH0KLSAgICAgIHB1dHMgJG9wICIjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iCi0gICB9Ci0KLX0KLQotcHJvYyBwYWQge2Ege2FkZCAwfX0gewotICAgCi0gICBpZiB7W2V4cHIgW3N0cmluZyBsZW5ndGggJGFdICsgJGFkZF0gPCA2fSB7Ci0gICAgICByZXR1cm4gIlx0XHRcdFx0IgotICAgfSBlbHNlaWYge1tleHByIFtzdHJpbmcgbGVuZ3RoICRhXSArICRhZGRdIDwgMTJ9IHsgCi0gICAgICByZXR1cm4gIlx0XHRcdCIKLSAgIH0gZWxzZWlmIHtbZXhwciBbc3RyaW5nIGxlbmd0aCAkYV0gKyAkYWRkXSA8IDE4fSB7IAotICAgICAgcmV0dXJuICJcdFx0IgotICAgfSBlbHNlaWYge1tleHByIFtzdHJpbmcgbGVuZ3RoICRhXSArICRhZGRdIDwgMjR9IHsgCi0gICAgICByZXR1cm4gIlx0IgotICAgfQotCi19Ci0KLXByb2MgZm9ybWF0X3N0cmluZyB7YSBiIHtsYXJnZSAwfX0gewotCi0gICBzZXQgYWRkIDAKLQotICAgaWYge1tyZWdleHAgIiMiICRhXX0gewotICAgICAgcmVnc3ViICIjIiAkYSAiIiBhCi0gICAgICBzZXQgYWRkIDEKLSAgIH0KLQotIyAgIHB1dHMgIiRhLCBbc3RyaW5nIGxlbmd0aCAkYV0iCi0KLSAgIGlmIHskbGFyZ2V9IHsKLSAgICAgIGlmIHtbZXhwciBbc3RyaW5nIGxlbmd0aCAkYV0gKyAkYWRkXSA8IDR9IHsKLSAgICAgICAgIHNldCB0YWJzICJcdFx0XHRcdFx0XHRcdFx0XHRcdCIKLSAgICAgIH0gZWxzZWlmIHtbZXhwciBbc3RyaW5nIGxlbmd0aCAkYV0gKyAkYWRkXSA8IDh9IHsgCi0gICAgICAgICBzZXQgdGFicyAiXHRcdFx0XHRcdFx0XHRcdFx0IgotICAgICAgfSBlbHNlaWYge1tleHByIFtzdHJpbmcgbGVuZ3RoICRhXSArICRhZGRdIDwgMTJ9IHsgCi0gICAgICAgICBzZXQgdGFicyAiXHRcdFx0XHRcdFx0XHRcdCIKLSAgICAgIH0gZWxzZWlmIHtbZXhwciBbc3RyaW5nIGxlbmd0aCAkYV0gKyAkYWRkXSA8IDE2fSB7IAotICAgICAgICAgc2V0IHRhYnMgIlx0XHRcdFx0XHRcdFx0IgotICAgICAgfSBlbHNlaWYge1tleHByIFtzdHJpbmcgbGVuZ3RoICRhXSArICRhZGRdIDwgMjB9IHsgCi0gICAgICAgICBzZXQgdGFicyAiXHRcdFx0XHRcdFx0IgotICAgICAgfSBlbHNlaWYge1tleHByIFtzdHJpbmcgbGVuZ3RoICRhXSArICRhZGRdIDwgMjR9IHsgCi0gICAgICAgICBzZXQgdGFicyAiXHRcdFx0XHRcdCIKLSAgICAgIH0gZWxzZWlmIHtbZXhwciBbc3RyaW5nIGxlbmd0aCAkYV0gKyAkYWRkXSA8IDI4fSB7IAotICAgICAgICAgc2V0IHRhYnMgIlx0XHRcdFx0IgotICAgICAgfSBlbHNlaWYge1tleHByIFtzdHJpbmcgbGVuZ3RoICRhXSArICRhZGRdIDwgMzJ9IHsgCi0gICAgICAgICBzZXQgdGFicyAiXHRcdFx0IgotICAgICAgfSBlbHNlIHsKLSAgICAgICAgIHNldCB0YWJzICJcdFx0IgotICAgICAgfQotICAgfSBlbHNlIHsKLSAgICAgIGlmIHtbZXhwciBbc3RyaW5nIGxlbmd0aCAkYV0gKyAkYWRkXSA8IDR9IHsKLSAgICAgICAgIHNldCB0YWJzICJcdFx0XHRcdFx0XHQiCi0gICAgICB9IGVsc2VpZiB7W2V4cHIgW3N0cmluZyBsZW5ndGggJGFdICsgJGFkZF0gPCA4fSB7IAotICAgICAgICAgc2V0IHRhYnMgIlx0XHRcdFx0XHQiCi0gICAgICB9IGVsc2VpZiB7W2V4cHIgW3N0cmluZyBsZW5ndGggJGFdICsgJGFkZF0gPCAxMn0geyAKLSAgICAgICAgIHNldCB0YWJzICJcdFx0XHRcdCIKLSAgICAgIH0gZWxzZWlmIHtbZXhwciBbc3RyaW5nIGxlbmd0aCAkYV0gKyAkYWRkXSA8IDE2fSB7IAotICAgICAgICAgc2V0IHRhYnMgIlx0XHRcdCIKLSAgICAgIH0gZWxzZWlmIHtbZXhwciBbc3RyaW5nIGxlbmd0aCAkYV0gKyAkYWRkXSA8IDIwfSB7IAotICAgICAgICAgc2V0IHRhYnMgIlx0XHQiCi0gICAgICB9IGVsc2UgewotICAgICAgICAgc2V0IHRhYnMgIlx0IgotICAgICAgfQotICAgfQotCi0gICAjIEhhbmRsZSB0aGUgZW1wdHkgc3RyaW5nIGNvcnJlY3RseQotICAgaWYgeyRiID09IHt9fSB7IHNldCBiIHt7fX0gfQotCi0gICBpZiB7JGFkZH0gewotICAgICAgcmV0dXJuIFtmb3JtYXQgIiNzZXQgJGElcyVzIiAkdGFicyAkYl0gCi0gICB9IGVsc2UgewotICAgICAgcmV0dXJuIFtmb3JtYXQgInNldCAkYSVzJXMiICR0YWJzICRiXSAKLSAgIH0KLX0KLQotcHJvYyBnZXRfbGluZV9tYXRjaCB7cGF0dGVybiBmaWxlIHtsYXN0IDF9fSB7Ci0KLSAgIHNldCBpcCBbb3BlbiAkZmlsZSByXQotCi0gICB3aGlsZSB7W2dldHMgJGlwIGxpbmVdPj0wfSB7Ci0gICAgICBpZiB7W3JlZ2V4cCAiJHBhdHRlcm4iICRsaW5lXT4wfSB7Ci0gICAgICAgIGlmIHskbGFzdH0gewotICAgICAgICAgICBzZXQgbWF0Y2ggJGxpbmUKLSAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgIGxhcHBlbmQgbWF0Y2ggJGxpbmUKLSAgICAgICAgIH0KLSAgICAgIH0KLSAgIH0KLSAgIGlmIHtbaW5mbyBleGlzdHMgbWF0Y2hdfSB7IAotICAgICAgcmV0dXJuICRtYXRjaAotICAgfQotfQotCi1zZXQgb3AxIFtvcGVuIHNldHVwLmF1dG8udGNsIHddCi1zZXQgb3AyIFtvcGVuIGlubm92dXNfY29uZmlnLmF1dG8udGNsIHddCi0KLXB1dHMgJG9wMSAiIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIgotcHV0cyAkb3AxICIjICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDRE5TIEZPVU5EQVRJT04gRkxPVyIKLXB1dHMgJG9wMSAiIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIgotcHV0cyAkb3AxICIjIFRoaXMgaXMgdGhlIGZvdW5kYXRpb24gZmxvdyBzZXR1cCBmaWxlLiAgSXQgY29udGFpbnMgYWxsIHRoZSBuZWNlc3NhcnkgZGVzaWduIgotcHV0cyAkb3AxICIjIGRhdGEgdG8gZHJpdmUgYWxsIHRoZSBDRE5TIGZvdW5kYXRpb24gZmxvd3MuIEVhY2ggZmxvdyBjYW4gYWxzbyBoYXZlIGFuIgotcHV0cyAkb3AxICIjIGFkZGl0aW9uYWwgY29uZmlndXJhdGlvbiBmaWxlIHRvIGRlZmluZSBmbG93IHNwZWNpZmljIGluZm9ybWF0aW9uOiIgCi1wdXRzICRvcDEgIiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIKLXB1dHMgJG9wMSAiIyBJTk5PVlVTIC0+ICAgaW5ub3Z1c19jb25maWcudGNsIChmb3IgZmxhdCBhbmQgaGllciBpbXBsZW1lbnRhdGlvbiBmbG93cykiCi1wdXRzICRvcDEgIiMgICAgICAgICArICAgICBscF9jb25maWcudGNsIChhZGRpdGlvbmFsIGluZm9ybWF0aW9uIGZvciBmbGF0IGFuZCBoaWVyIGxwIGZsb3dzKSIKLSNwdXRzICRvcDEgIiMgICAgICAgICAtPiBwcm90b19jb25maWcudGNsIChmb3IgdGhlIHByb3RvdHlwaW5nIGZsb3cpIgotI3B1dHMgJG9wMSAiIyAgICAgRVRTIC0+ICAgZXRzX2NvbmZpZy50Y2wiCi0jcHV0cyAkb3AxICIjICAgICBFUFMgLT4gICBlcHNfY29uZmlnLnRjbCIKLXB1dHMgJG9wMSAiIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIgotcHV0cyAkb3AxICIjIEEgc2luZ2xlIHNldHVwLnRjbCBpcyBhbGwgdGhhdCBpcyByZXF1aXJlZC4gIFRoZXNlIGFkZGl0aW9uYWwgZmlsZXMgYXJlIHRvIGVuYWJsZSAiCi1wdXRzICRvcDEgIiMgdGhlIHNoYXJpbmcgb2YgYSBzZXR1cC50Y2wgKGRlc2lnbiBkYXRhKSBhbW9uZ3N0IGRlc2lnbiBncm91cHMgd2hpbGUgYWxzbyBhbGxvd2luZyIgCi1wdXRzICRvcDEgIiMgZGlmZmVyZW50IGZsb3cgb3B0aW9ucyB0byBiZSBzZXQgaW4gdGhlICpfY29uZmlnLmNsIGZpbGVzIGZvciBkaWZmZXJlbnQgYmxvY2tzIG9yIHJ1bnMiCi1wdXRzICRvcDEgIiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyIKLXB1dHMgJG9wMSAiIgotCi1wdXRzICRvcDIgIiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyIKLXB1dHMgJG9wMiAiIyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSU5OT1ZVUyBGT1VOREFUSU9OIEZMT1ciCi1wdXRzICRvcDIgIiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIKLXB1dHMgJG9wMiAiIyBUaGlzIGlzIHRoZSBJTk5PVlVTIGZvdW5kYXRpb24gZmxvdyBjb25maWd1cmF0aW9uIGZpbGUuICBJdCBjb250YWlucyBhbGwgdGhlIG5lY2Vzc2FyeSBmbG93IgotcHV0cyAkb3AyICIjIG9wdGlvbnMgdG8gZHJpdmUgdGhlIENETlMgZmxhdCBhbmQvb3IgaGllciBpbXBsZW1lbnRhdGlvbiBmbG93cy4gIgotcHV0cyAkb3AyICIjIEZvciBsb3cgcG93ZXIgZmxvd3MsIGFuIG9wdGlvbmFsL2FkZGl0aW9uYWwgY29uZmlndXJhdGlvbiBmaWxlIChscF9jb25maWcudGNsKSBjYW4gYmUgIgotcHV0cyAkb3AyICIjIHVzZWQgdG8gZW5hYmxlIGxvdyBwb3dlciBmb3VuZGF0aW9uIGZsb3cgZmVhdHVyZXMgYW5kIGRlZmluZSBkb21haW4gc3BlY2lmaWMgaW5mb3JtYXRpb24uIgotcHV0cyAkb3AyICIjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iCi1pZiB7IVtpbmZvIGV4aXN0cyB2YXJzKHZlcnNpb24pXX0gewotICAgIHNldCB2YXJzKHZlcnNpb24pIDE3LjEuMAotfQotaWYge1tsaW5kZXggW3NwbGl0ICR2YXJzKHZlcnNpb24pICIuIl0gIDBdIDw9IDEwICYmIFtsbGVuZ3RoIFthbGxfYW5hbHlzaXNfdmlld3NdXSA9PSAyfSB7Ci0gICBwdXRzICJDb252ZXJ0aW5nIGRlZmF1bHQgdGltaW5nIGVudmlyb25tZW50IHRvIE1NTUMiIAotICAgY29udjJtbW1jCi19Ci0KLWdsb2JhbCByZGFfSW5wdXQKLQotcHV0cyAkb3AxICIjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMiCi1wdXRzICRvcDEgIiMgVGhlIHZhcmlhYmxlIHZhcnModmVyc2lvbikgdGVsbHMgdGhlIGNvZGUgZ2VuZXJhdG9yIHdoaWNoIHZlcnNpb24gb2YgSU5OT1ZVUyB5b3Ugd2lsbCBiZSIKLXB1dHMgJG9wMSAiIyB0YXJnZXRpbmcuIgotcHV0cyAkb3AxICIjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iCi1wdXRzICRvcDEgInNldCB2YXJzKHZlcnNpb24pICR2YXJzKHZlcnNpb24pIgotI3B1dHMgJG9wMSAiIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIgotI3B1dHMgJG9wMSAiIyBGb3Igbm9uLWNvZGdlbiBmbG93LCB0aGUgZm9sbG93aW5nIG11c3QgYmUgc2V0IC0gaXQgc2hvdWxkIHBvaW50IHRvIHRoZSBmb3VuZGF0aW9uICIgCi0jcHV0cyAkb3AxICIjIGZsb3cgaW5zdGFsbGF0aW9uIGRpcmVjdG9yeSIKLXB1dHMgJG9wMSAiIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIgotI3B1dHMgJG9wMSAiI3NldCB2YXJzKHNjcmlwdF9yb290KSBTQ1JJUFRTIgotI3B1dHMgJG9wMSAiIgotI3B1dHMgJG9wMiAiIyBUaGUgdmFycyhmbG93KSB2YXJpYWJsZSBjYW4gYmUgdXNlZCB0byBkZWZpbmUgdGhlIHR5cGUgb2YgZmxvdyB0byBydW4uIElmIG5vdCBzZXQsIiAKLSNwdXRzICRvcDIgIiMgbW1tYyB3aWxsIGJlIHVzZWQuICBTdXBwb3J0ZWQgdmFsdWVzIGFyZToiCi0jcHV0cyAkb3AyICIjICAgIC0gZGVmYXVsdCAobWlubWF4IHRpbWluZykiCi0jcHV0cyAkb3AyICIjICAgIC0gcHJfbW1tYyAobWlubWF4IHRpbWluZyBwcmUtcm91dGUsIG1tbWMgdGltaW5nIHBvc3Qtcm91dGUpIgotI3B1dHMgJG9wMiAiIyAgICAtIG1tbWMgICAgKG1tbWMgdGltaW5nKSIKLSNwdXRzICRvcDIgIiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyIKLSNpZiB7W2luZm8gZXhpc3RzIDo6Q1BGOjpjcGZDb21taXR0ZWRdfSB7Ci0jICAgcHV0cyAkb3AyICJzZXQgdmFycyhmbG93KSAgICAgbW1tYyIKLSN9IGVsc2UgewotIyAgIHB1dHMgJG9wMiAic2V0IHZhcnMoZmxvdykgICAgIGRlZmF1bHQiCi0jfQotcHV0cyAkb3AyICJzZXQgdmFycyhwbHVnX2RpcikgUExVRy9JTk5PVlVTIgotcHV0cyAkb3AyICJzZXQgdmFycyhkYnNfZGlyKSAgREJTIgotcHV0cyAkb3AyICJzZXQgdmFycyhsb2dfZGlyKSAgTE9HIgotcHV0cyAkb3AyICJzZXQgdmFycyhycHRfZGlyKSAgUlBUIgotcHV0cyAkb3AyICIjIFlvdSBjYW4gc2V0IGEgcmVwb3J0IGRpcmVjdG9yeSBwZXIgc3RlcCB1c2luZyB2YXJzKDxzdGVwPixycHRfZGlyKSAuLi4iCi1wdXRzICRvcDIgIiIKLQotaWYge1tpbmZvIGV4aXN0cyByZGFfSW5wdXQodWlfbmV0bGlzdCldfSB7Ci0gICBzZXQgdmFycyhuZXRsaXN0KSBbbGlzdF0KLSAgIGZvcmVhY2ggIGZpbGUgJHJkYV9JbnB1dCh1aV9uZXRsaXN0KSB7Ci0gICAgICBsYXBwZW5kIHZhcnMobmV0bGlzdCkgW2ZpbGUgbm9ybWFsaXplICRmaWxlXQotICAgfSAgCi19IGVsc2UgewotICAgY2F0Y2gge3NldCB2YXJzKG5ldGxpc3QpIFtmaWxlIG5vcm1hbGl6ZSBbbGluZGV4IFtnZXRfbGluZV9tYXRjaCAiUmVhZGluZyBuZXRsaXN0IGZpbGUiIFtnZXRMb2dGaWxlTmFtZV1dIDNdXX0KLX0KLWNhdGNoIHtzZXQgdmFycyhmcF9maWxlKSBbZmlsZSBub3JtYWxpemUgW2xpbmRleCBbZ2V0X2xpbmVfbWF0Y2ggIlJlYWRpbmcgZmxvb3JwbGFuIiBbZ2V0TG9nRmlsZU5hbWVdXSA0XV19Ci0jY2F0Y2gge3NldCB2YXJzKGN0c19zcGVjKSBbcmVnc3ViIC1hbGwgIiciICBbbGluZGV4IFtnZXRfbGluZV9tYXRjaCAiUmVhZGluZyBjbG9jayB0cmVlIHNwZWMgZmlsZSIgW2dldExvZ0ZpbGVOYW1lXV0gNV0gIiJdfQotI2NhdGNoIHtzZXQgdmFycyhjdHNfc3BlYykgW3JlZ3N1YiAtYWxsICJcIiIgJHZhcnMoY3RzX3NwZWMpXSAiIn0KLXNldCB2YXJzKGN0c19zcGVjKSAiIgotc2V0IHNwZWNPcHQgW2NrR2V0Q2tTcGVjT3B0aW9uXQotIGZvciB7IHNldCBpIDAgfSB7ICRpIDwgW2xsZW5ndGggJHNwZWNPcHRdIH0geyBpbmNyIGkgfSB7Ci0gICBpZiB7IFtzdHJpbmcgbWF0Y2ggLW5vY2FzZSBbbGluZGV4ICRzcGVjT3B0ICRpXSAiLWZpbGUiIF0gfHwgIFtzdHJpbmcgbWF0Y2ggLW5vY2FzZSBbbGluZGV4ICRzcGVjT3B0ICRpXSAiLXNwZWNGaWxlIiBdICB9IHsKLSAgICAgIGluY3IgaQotICAgICAgc2V0IGNsa0ZpbGUgW2xpbmRleCAkc3BlY09wdCAkaV0KLSAgICAgIGlmIHsgW2ZpbGUgZXhpc3RzICRjbGtGaWxlIF0gfSB7Ci0gICAgICAgICBpZiB7IFtsc2VhcmNoIC1leGFjdCAkdmFycyhjdHNfc3BlYykgJGNsa0ZpbGVdID09IC0xIH0gewotICAgICAgICAgICAgICBsYXBwZW5kIHZhcnMoY3RzX3NwZWMpIFtmaWxlIG5vcm1hbGl6ZSAkY2xrRmlsZV0KLSAgICAgICAgIH0KLSAgICAgIH0KLSAgIH0KLX0KLQotZm9yZWFjaCBvcHRpb24gW2dldERlc2lnbk1vZGUgLXF1aWV0XSB7Ci0gICBpZiB7W2xpbmRleCAkb3B0aW9uIDBdID09ICJwcm9jZXNzIn0gewotICAgICAgc2V0IHZhcnMocHJvY2VzcykgW2xpbmRleCAkb3B0aW9uIDFdbm0KLSAgIH0KLX0KLWNhdGNoIHtzZXQgdmFycyhtYXhfcm91dGVfbGF5ZXIpIFtnZXRNYXhSb3V0ZUxheWVyXX0KLQotcHV0cyAkb3AxICIjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIgotcHV0cyAkb3AxICIjIERlZmluZSBkZXNpZ24gZGF0YSAuLi4iCi1wdXRzICRvcDEgIiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMiCi1wdXRzICRvcDEgW2Zvcm1hdF9zdHJpbmcgdmFycyhkZXNpZ24pIFtkYkNlbGxOYW1lIFtkYmdUb3BDZWxsXV1dCi0KLWlmIHtbbGluZGV4IFtzcGxpdCAkdmFycyh2ZXJzaW9uKSAiLiJdICAwXSA+IDEwfSB7Ci0gICBpZiB7W2luZm8gZXhpc3RzIGluaXRfdmVyaWxvZ10gJiYgKCRpbml0X3Zlcmlsb2cgIT0gIiIpfSB7IAotICAgICBzZXQgdmFycyhuZXRsaXN0KSAkaW5pdF92ZXJpbG9nCi0gICB9Ci0gICBpZiB7W2luZm8gZXhpc3RzIGluaXRfb2FfcmVmX2xpYl0gJiYgKCRpbml0X29hX3JlZl9saWIgIT0gIiIpfSB7IAotICAgICBzZXQgdmFycyhvYV9yZWZfbGliKSAkaW5pdF9vYV9yZWZfbGliCi0gICB9Ci0jICAgICAgY2F0Y2gge3NldCByZXN0b3JlX2Rlc2lnbiBbZ2V0X2xpbmVfbWF0Y2ggInJlc3RvcmVEZXNpZ24iIFtnZXRMb2dGaWxlTmFtZV19Ci0jICAgICAgc2V0IHZhcnMobmV0bGlzdF90eXBlKSBvYQotIyAgICAgIHNldCB2YXJzKG9hX2Rlc2lnbl9saWIpICBbbGluZGV4ICRyZXN0b3JlX2Rlc2lnbiAxXQotIyAgICAgIHNldCB2YXJzKG9hX2Rlc2lnbl9jZWxsKSBbbGluZGV4ICRyZXN0b3JlX2Rlc2lnbiAyXQotIyAgICAgIHNldCB2YXJzKG9hX2Rlc2lnbl92aWV3KSBbbGluZGV4ICRyZXN0b3JlX2Rlc2lnbiAzXQotICAgaWYge1tpbmZvIGV4aXN0cyBpbml0X2Fic3RyYWN0X3ZpZXddICYmICgkaW5pdF9hYnN0cmFjdF92aWV3ICE9ICIiKX0gewotICAgICAgc2V0IHZhcnMob2FfYWJzdHJhY3RfbmFtZSkgJGluaXRfYWJzdHJhY3RfdmlldwotICAgfQotICAgaWYge1tpbmZvIGV4aXN0cyBpbml0X29hX2Rlc2lnbl9saWJdICYmICgkaW5pdF9vYV9kZXNpZ25fbGliICE9ICIiKX0gewotICAgICAgc2V0IHZhcnMob2FfZGVzaWduX2xpYikgJGluaXRfb2FfZGVzaWduX2xpYgotICAgfQotICAgaWYge1tpbmZvIGV4aXN0cyBpbml0X29hX2Rlc2lnbl9jZWxsXSAmJiAoJGluaXRfb2FfZGVzaWduX2NlbGwgIT0gIiIpfSB7Ci0gICAgICBzZXQgdmFycyhvYV9kZXNpZ25fY2VsbCkgJGluaXRfb2FfZGVzaWduX2NlbGwKLSAgIH0KLSAgIGlmIHtbaW5mbyBleGlzdHMgaW5pdF9vYV9kZXNpZ25fdmlld10gJiYgKCRpbml0X29hX2Rlc2lnbl92aWV3ICE9ICIiKX0gewotICAgICAgc2V0IHZhcnMob2FfZGVzaWduX3ZpZXcpICRpbml0X29hX2Rlc2lnbl92aWV3Ci0gICB9Ci0gICBpZiB7W2luZm8gZXhpc3RzIGluaXRfYWJzdHJhY3Rfdmlld10gJiYgKCRpbml0X2Fic3RyYWN0X3ZpZXcgIT0gIiIpfSB7Ci0gICAgICBzZXQgdmFycyhvYV9hYnN0cmFjdF9uYW1lKSAkaW5pdF9hYnN0cmFjdF92aWV3Ci0gICB9Ci0gICBpZiB7W2luZm8gZXhpc3RzIGluaXRfbGF5b3V0X3ZpZXddICYmICgkaW5pdF9sYXlvdXRfdmlldyAhPSAiIil9IHsKLSAgICAgIHNldCB2YXJzKG9hX2xheW91dF9uYW1lKSAkaW5pdF9sYXlvdXRfdmlldwotICAgfQotICAgcHV0cyAkb3AxICIjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyIKLSAgIHB1dHMgJG9wMSAiIyBWYXJpYWJsZXMgZm9yIE9BIGRlc2lnbiBpbXBvcnQgYW5kIGV4cG9ydCIKLSAgIHB1dHMgJG9wMSAiIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iCi0gICBpZiB7W2luZm8gZXhpc3RzIHZhcnMob2FfZGVzaWduX2xpYildfSB7Ci0gICAgICBwdXRzICRvcDEgInNldCB2YXJzKG5ldGxpc3RfdHlwZSkgICAgIG9hIgotICAgICAgcHV0cyAkb3AxICJzZXQgdmFycyhvYV9kZXNpZ25fbGliKSAgICAkdmFycyhvYV9kZXNpZ25fbGliKSIKLSAgIH0gZWxzZSB7Ci0gICAgICBwdXRzICRvcDEgIiNzZXQgdmFycyhvYV9kZXNpZ25fbGliKSAgICA8T0EgZGVzaWduIGxpYnJhcnk+IgotICAgfQotICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKG9hX2Rlc2lnbl9jZWxsKV19IHsKLSAgICAgIHB1dHMgJG9wMSAic2V0IHZhcnMob2FfZGVzaWduX2NlbGwpICAgICR2YXJzKG9hX2Rlc2lnbl9jZWxsKSIKLSAgIH0gZWxzZSB7Ci0gICAgICBwdXRzICRvcDEgIiNzZXQgdmFycyhvYV9kZXNpZ25fY2VsbCkgICA8T0EgZGVzaWduIGNlbGw+IgotICAgfQotICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKG9hX2Rlc2lnbl92aWV3KV19IHsKLSAgICAgIHB1dHMgJG9wMSAic2V0IHZhcnMob2FfZGVzaWduX3ZpZXcpICAgICR2YXJzKG9hX2Rlc2lnbl92aWV3KSIKLSAgIH0gZWxzZSB7Ci0gICAgICBwdXRzICRvcDEgIiNzZXQgdmFycyhvYV9kZXNpZ25fdmlldykgICA8T0EgZGVzaWduIHZpZXc+IgotICAgfQotICAgcHV0cyAkb3AxICIjc2V0IHZhcnMoZGJzX2Zvcm1hdCkgICAgICAgb2EiCi0gICBpZiB7W2luZm8gZXhpc3RzIHZhcnMob2FfcmVmX2xpYildfSB7Ci0gICAgICBwdXRzICRvcDEgInNldCB2YXJzKG9hX3JlZl9saWIpICAgICAgICAkdmFycyhvYV9yZWZfbGliKSIKLSAgIH0gZWxzZSB7Ci0gICAgICBwdXRzICRvcDEgIiNzZXQgdmFycyhvYV9yZWZfbGliKSAgICAgICA8T0EgcmVmZXJlbmNlIGxpYnJhcnk+IgotICAgfQotICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKG9hX2Fic3RyYWN0X25hbWUpXX0gewotICAgICAgcHV0cyAkb3AxICJzZXQgdmFycyhvYV9hYnN0cmFjdF9uYW1lKSAgJHZhcnMob2FfYWJzdHJhY3RfbmFtZSkiCi0gICB9IGVsc2UgewotICAgICAgcHV0cyAkb3AxICIjc2V0IHZhcnMob2FfYWJzdHJhY3RfbmFtZSkgPE9BIGFic3RyYWN0IG5hbWU+IgotICAgfQotICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKG9hX2xheW91dF9uYW1lKV19IHsKLSAgICAgIHB1dHMgJG9wMSAic2V0IHZhcnMob2FfbGF5b3V0X25hbWUpICAgICR2YXJzKG9hX2xheW91dF9uYW1lKSIKLSAgIH0gZWxzZSB7Ci0gICAgICBwdXRzICRvcDEgIiNzZXQgdmFycyhvYV9sYXlvdXRfbmFtZSkgICA8T0EgbGF5b3V0IG5hbWU+IgotICAgfQotICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKG5ldGxpc3QpXX0gewotIyAgICAgIHB1dHMgJG9wMSBbZm9ybWF0ICJzZXQgdmFycyhuZXRsaXN0KSVzJXMiIFtwYWQgdmFycyhuZXRsaXN0KV0gJHZhcnMobmV0bGlzdCldCi0gICAgICBwdXRzICRvcDEgW2Zvcm1hdF9zdHJpbmcgdmFycyhuZXRsaXN0KSBcIiR2YXJzKG5ldGxpc3QpXCJdCi0gICAgICBwdXRzICRvcDEgW2Zvcm1hdF9zdHJpbmcgdmFycyhuZXRsaXN0X3R5cGUpIHZlcmlsb2ddCi0gICB9Ci0gICBwdXRzICRvcDEgIiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIgotfSBlbHNlIHsKLSAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhuZXRsaXN0KV19IHsKLSMgICAgICBwdXRzICRvcDEgW2Zvcm1hdCAic2V0IHZhcnMobmV0bGlzdCklcyVzIiBbcGFkIHZhcnMobmV0bGlzdCldICR2YXJzKG5ldGxpc3QpXQotICAgICAgcHV0cyAkb3AxIFtmb3JtYXRfc3RyaW5nIHZhcnMobmV0bGlzdCkgXCIkdmFycyhuZXRsaXN0KVwiXQotICAgICAgcHV0cyAkb3AxIFtmb3JtYXRfc3RyaW5nIHZhcnMobmV0bGlzdF90eXBlKSB2ZXJpbG9nXQotICAgfQotICAgcHV0cyAkb3AxICIjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyIKLSAgIHB1dHMgJG9wMSAiIyBWYXJpYWJsZXMgZm9yIE9BIGRlc2lnbiBpbXBvcnQgYW5kIGV4cG9ydCIKLSAgIHB1dHMgJG9wMSAiIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iCi0gICBwdXRzICRvcDEgIiNzZXQgdmFycyhvYV9kZXNpZ25fbGliKSAgICA8T0EgZGVzaWduIGxpYnJhcnk+IgotICAgcHV0cyAkb3AxICIjc2V0IHZhcnMob2FfZGVzaWduX2NlbGwpICAgPE9BIGRlc2lnbiBjZWxsPiIKLSAgIHB1dHMgJG9wMSAiI3NldCB2YXJzKG9hX2Rlc2lnbl92aWV3KSAgIDxPQSBkZXNpZ24gdmlldz4iCi0gICBwdXRzICRvcDEgIiNzZXQgdmFycyhvYV9yZWZfbGliKSAgICAgICA8T0EgcmVmZXJlbmNlIGxpYnJhcnk+IgotICAgcHV0cyAkb3AxICIjc2V0IHZhcnMob2FfYWJzdHJhY3RfbmFtZSkgPE9BIGFic3RyYWN0IG5hbWU+IgotICAgcHV0cyAkb3AxICIjc2V0IHZhcnMob2FfbGF5b3V0X25hbWUpICAgPE9BIGxheW91dCBuYW1lPiIKLX0KLWlmIHtbaW5mbyBleGlzdHMgdmFycyhmcF9maWxlKV19IHsKLSAgIHB1dHMgJG9wMSBbZm9ybWF0X3N0cmluZyB2YXJzKGZwX2ZpbGUpICR2YXJzKGZwX2ZpbGUpXQotfSBlbHNlIHsKLSAgIHB1dHMgJG9wMSBbZm9ybWF0X3N0cmluZyAjdmFycyhmcF9maWxlKSA8Zmxvb3JwbGFuX2ZpbGU+XQotfQotcHV0cyAkb3AxIFtmb3JtYXRfc3RyaW5nICN2YXJzKG9hX2ZwKSA8T0FfZmxvb3JwbGFuPl0KLXB1dHMgJG9wMSBbZm9ybWF0X3N0cmluZyAjdmFycyhkZWZfZmlsZXMpIDxkZWZfZmlsZXM+XQotI3B1dHMgJG9wMSAiI3NldCB2YXJzKHNjYW5fZGVmKSAgICAgICA8c2Nhbl9kZWY+IgotcHV0cyAkb3AxICIjIE5PVEU6IHZhcnMoY3RzX3NwZWMpIGlzIG9ubHkgcmVxdWlyZWQgZm9yIGN0cyBmbG93cy4iCi1wdXRzICRvcDEgIiMgICAgICAgRm9yIGNjb3B0IGZsb3dzLCBpdCBpcyBub3QgcmVxdWlyZWQiCi1pZiB7W2ZpbGUgZXhpc3RzICR2YXJzKGN0c19zcGVjKV19IHsKLSAgIHB1dHMgJG9wMSBbZm9ybWF0X3N0cmluZyB2YXJzKGN0c19zcGVjKSBcIiR2YXJzKGN0c19zcGVjKVwiXSAKLX0gZWxzZSB7Ci0gICBwdXRzICRvcDEgW2Zvcm1hdF9zdHJpbmcgI3ZhcnMoY3RzX3NwZWMpIDxjdHNfc3BlYz5dCi19Ci1pZiB7W2luZm8gZXhpc3RzIHZhcnMocHJvY2VzcyldfSB7Ci0gICBwdXRzICRvcDEgW2Zvcm1hdF9zdHJpbmcgdmFycyhwcm9jZXNzKSAkdmFycyhwcm9jZXNzKV0KLX0gZWxzZSB7Ci0gICBwdXRzICRvcDEgW2Zvcm1hdF9zdHJpbmcgI3ZhcnMocHJvY2VzcykgPHByb2Nlc3M+XQotfQotaWYge1tpbmZvIGV4aXN0cyB2YXJzKG1heF9yb3V0ZV9sYXllcildfSB7Ci0gICBwdXRzICRvcDEgW2Zvcm1hdF9zdHJpbmcgdmFycyhtYXhfcm91dGVfbGF5ZXIpICR2YXJzKG1heF9yb3V0ZV9sYXllcildCi19IGVsc2UgewotICAgcHV0cyAkb3AxIFtmb3JtYXRfc3RyaW5nICN2YXJzKG1heF9yb3V0ZV9sYXllcikgPG1heF9yb3V0ZV9sYXllcj5dCi19Ci1wdXRzICRvcDEgIiMgTk9URTogV2hlbiBnZW5lcmF0ZV90cmFja3MgaXMgc2V0LCB0aGUgdHJhY2tzIGluIHRoZSBERUYgYXJlIGlnbm9yZWQ7IGV2ZW4gdGhlIHBpdGNoIgotcHV0cyAkb3AxICIjICAgICAgIFRvIGdlbmVyYXRlIG5ldyB0cmFja3MgYnV0IHByZXNlcnZlIHRoZSBwaXRjaCwgdXNlIHZhcnMoaG9ub3JfcGl0Y2gpIHRydWUiCi1wdXRzICRvcDEgW2Zvcm1hdF9zdHJpbmcgI3ZhcnMoZ2VuZXJhdGVfdHJhY2tzKSAiPHRydWUgfCBmYWxzZT4iXQotcHV0cyAkb3AxIFtmb3JtYXRfc3RyaW5nICN2YXJzKGhvbm9yX3BpdGNoKSAiPHRydWUgfCBmYWxzZT4iXQotaWYge1tpbmZvIGV4aXN0cyByZGFfSW5wdXQodWlfcHdybmV0KV0gJiYgKCRyZGFfSW5wdXQodWlfcHdybmV0KSAhPSAiIil9IHsKLSAgIHB1dHMgJG9wMSAic2V0IHZhcnMocG93ZXJfbmV0cykgICBcIiRyZGFfSW5wdXQodWlfcHdybmV0KVwiIgotfSBlbHNlIHsKLSAgIHB1dHMgJG9wMSAiI3NldCB2YXJzKHBvd2VyX25ldHMpICAgICAgICAgICAgIDxsaXN0IG9mIHBvd2VyIG5ldHM+IgotfQotaWYge1tpbmZvIGV4aXN0cyByZGFfSW5wdXQodWlfZ25kbmV0KV0gJiYgKCRyZGFfSW5wdXQodWlfZ25kbmV0KSAhPSAiIil9IHsKLSAgIHB1dHMgJG9wMSAic2V0IHZhcnMoZ3JvdW5kX25ldHMpICBcIiRyZGFfSW5wdXQodWlfZ25kbmV0KVwiIgotfSBlbHNlIHsKLSAgIHB1dHMgJG9wMSAiI3NldCB2YXJzKGdyb3VuZF9uZXRzKSAgICAgICAgICAgIDxsaXN0IG9mIGdyb3VuZCBuZXRzPiIKLX0KLXB1dHMgJG9wMSAiIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIgotcHV0cyAkb3AxICIjIEZvciBoaWVyYXJjaGljYWwgZGVzaWducywgZGVmaW5lIHZhcnMocGFydGl0aW9uX2xpc3QpIHdoaWNoIHNob3VsZCBiZSBhIGxpc3QgIgotcHV0cyAkb3AxICIjIG9mIGFsbCBkZWZpbmVkIHBhcnRpdGlvbnMgKERPIE5PVCBJTkNMVURFIFRIRSBUT1AgUEFSVElUSU9OKS4iCi1wdXRzICRvcDEgIiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIKLXB1dHMgJG9wMSAiIyBUbyBhc3Npc3QgdGhlIGJ1ZGdldGluZyBwcm9jZXNzLCBhbHNvIGRlZmluZSB0aGUgZm9sbG93aW5nIGZvciBlYWNoIHBhcnRpdGlvbiIKLXB1dHMgJG9wMSAiIyAtIHNldCB2YXJzKDxwYXJ0aXRpb24+LGN0c19zcGVjKSA8ZmlsZT4iCi1wdXRzICRvcDEgIiMgLSBzZXQgdmFycyg8cGFydGl0aW9uPixsYXRlbmN5X3NkYykgPGZpbGU+IgotcHV0cyAkb3AxICIjIgotcHV0cyAkb3AxICIjIFRoZXNlIGZpbGVzIHNob3VsZCBjb250YWluIHRoZSBleHBlY3RlZCBjbG9jayBsYXRlbmN5IGZvciB0aGUgY2xvY2sgdHJlZShzKSIKLXB1dHMgJG9wMSAiIyBGb3IgZXhhbXBsZSwgaWYgcGFydGl0aW9uIEEgaGFzIGFuIGV4cGVjdGVkIGNsb2NrIGxhdGVuY3kgb2YgNTAwcHMgb3V0IG9mIGEgdG90YWwgY2xvY2siCi1wdXRzICRvcDEgIiMgbGF0ZW5jeSBvZiAxbnMsIHRoZSB0b3AgbGV2ZWwgY29uc3RyYWludHMgd291bGQgaGF2ZSAnc2V0X2Nsb2NrX2xhdGVuY3kgMS4wIDxjbG9jayBwaW4+JyIKLXB1dHMgJG9wMSAiIyBhbmQgQSB3b3VsZCBoYXZlIGEgbGF0ZW5jeSBzZGMgZmlsZSBjb250YWluaW5nICdzZXRfY2xvY2tfbGF0ZW5jeSAwLjUgPHB0biBjbG9jayBwaW4+JyIKLXB1dHMgJG9wMSAiIyBMaWtld2lzZSwgdGhlIHRvcCBsZXZlbCBDVFMgc3BlYyB3b3VsZCBjb250YWluICdNYXhEZWxheSAxbnMnIGFuZCB0aGUgdmFycyhBLGN0c19zcGVjKSIKLXB1dHMgJG9wMSAiIyB3b3VsZCBjb250YWluICdNYWNyb01vZGVsIEEvPHB0biBjbG9jayBwaW4+IDUwMHBzIDUwMHBzIDUwMHBzIDUwMHBzIDBmRiIKLXB1dHMgJG9wMSAiIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIgotcHV0cyAkb3AxICIjIER1cmluZyBhc3NlbWJseSwgdGhlIGZvdW5kYXRpb24gZmxvdyBkZWZhdWx0cyB0byBhc3NlbWJseSB0aGUgJ3NpZ25vZmYnIGRhdGFiYXNlcyIKLXB1dHMgJG9wMSAiIyBmcm9tIGVhY2ggcGFydGl0aW9uIHN1Yi1kaXJlY3RvcnkuICBUbyBzcGVjaWZ5IGEgZGlmZmVyZW50IGRhdGFiYXNlIHRvIHVzZSBmb3IgYW55IgotcHV0cyAkb3AxICIjIHBhcnRpdGlvbiAoaW5jbHVkaW5nIHRoZSB0b3ApLCBzcGVjaWZ5IHRoZSBmb2xsb3dpbmc6IgotcHV0cyAkb3AxICIjICAgIC0gdmFycyg8cHRuPixhc3NlbWJsZV9kYnMpICA8cGF0aCB0byBJTk5PVlVTIGRhdGFiYXNlIGRpcmVjdG9yeT4iCi1wdXRzICRvcDEgIiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIKLXB1dHMgJG9wMSAiIyBJZiB2YXJzKHVzZV9mbGV4bW9kZWxzKSBpcyBzZXQgdG8gdHJ1ZSwgRmxleG1vZGVscyB3aWxsIGJlIHVzZWQuIFNvbWUgYWRkaXRpb25hbCIKLXB1dHMgJG9wMSAiIyBvcHRpb25zIGZvciBmbGV4bW9kZWwgdXNhZ2UgYXJlOiIKLXB1dHMgJG9wMSAiIyAgICBzZXQgdmFycyh1c2VfcHJvdG9fbmV0X2RlbGF5X21vZGVsKSBmYWxzZSIKLXB1dHMgJG9wMSAiIyAgICBzZXQgdmFycyhmbGV4bW9kZWxfYXNfcHRuKSB0cnVlIgotcHV0cyAkb3AxICIjICAgIHNldCB2YXJzKGZsZXhtb2RlbF9hcnRfYmFzZWQpIHRydWUiCi1wdXRzICRvcDEgIiMgICAgc2V0IHZhcnMoY3JlYXRlX2ZsZXhmaWxsZXJfYmxvY2thZ2UpIHRydWUiCi1wdXRzICRvcDEgIiMgICAgc2V0IHZhcnMoZW5hYmxlX25yZ3IpIHRydWUiCi1wdXRzICRvcDEgIiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIKLXB1dHMgJG9wMSAiIyBJZiB2YXJzKGluc2VydF9mZWVkdGhyb3VnaCkgaXMgc2V0IHRvIHRydWUsIGZlZWR0aHJvdWdoIGluc2VydGlvbiB3aWxsIGJlIGNhbGxlZCIKLXB1dHMgJG9wMSAiIyAgYmVmb3JlIHBhcnRpdGlvbmluZy4gU29tZSBhZGRpdGlvbmFsIG9wdGlvbnMgZm9yIHBhcnRpdGlvbmluZyBhcmU6IgotcHV0cyAkb3AxICIjICAgIHNldCB2YXJzKGFidXR0ZWRfZGVzaWduKSB0cnVlIgotcHV0cyAkb3AxICIjICAgIHNldCB2YXJzKHBsYWNlbWVudF9iYXNlZF9wdG4pIHRydWUiCi1wdXRzICRvcDEgIiMgICAgc2V0IHZhcnMoYnVkZ2V0X21vZGUpIHsgdHJpYWxfaXBvIGdpZ2Ffb3B0IHByb3RvX25ldF9kZWxheV9tb2RlbCB9IgotcHV0cyAkb3AxICIjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iCi1wdXRzICRvcDEgIiMgRmxleGlsbSBjcmVhdGlvbiBjYW4gYmUgZW5hYmxlZCBmb3IgdGhlIHBhcnRpdGlvbnMsIHVzaW5nIHZhcnMoZW5hYmxlX2ZsZXhpbG0pIHRydWUiCi1wdXRzICRvcDEgIiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIKLXB1dHMgJG9wMSAiIyBGaW5hbGx5LCBlYWNoIHBhcnRpdGlvbiBjYW4gaGF2ZSBpdHMgb3duIGlubm92dXNfY29uZmlnLnRjbCAoSU5DTFVESU5HIFRIRSBUT1AgUEFSVElUSU9OKS4iCi1wdXRzICRvcDEgIiMgVG8gZW5hYmxlIHRoaXMsIGRlZmluZSB2YXJzKDxwYXJ0aXRpb24+LDxpbm5vdnVzX2NvbmZpZ190Y2w+IgotcHV0cyAkb3AxICIjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMiCi1zZXQgdmFycyhwYXJ0aXRpb25fbGlzdCkgIiIKLWRiRm9yRWFjaENlbGxQdG4gW2RiR2V0IHRvcF0gcHRuIHsKLSAgIGxhcHBlbmQgdmFycyhwYXJ0aXRpb25fbGlzdCkgW2RiUHRuTmFtZSAkcHRuXQotfQotaWYgeyR2YXJzKHBhcnRpdGlvbl9saXN0KSAhPSAiIn0gewotICAgcHV0cyAkb3AxICJzZXQgdmFycyhwYXJ0aXRpb25fbGlzdCkgICAgICAgIFxbbGlzdCAkdmFycyhwYXJ0aXRpb25fbGlzdClcXSIKLSAgIGZvcmVhY2ggcGFydCAkdmFycyhwYXJ0aXRpb25fbGlzdCkgewotICAgICAgcHV0cyAkb3AxICIjc2V0IHZhcnMoJHBhcnQsY3RzX3NwZWMpICAgICAgIDxwYXJ0aXRpb24gY3RzIHNwZWMgZmlsZT4iCi0gICAgICBwdXRzICRvcDEgIiNzZXQgdmFycygkcGFydCxsYXRlbmN5X3NkYykgICAgPHBhcnRpdGlvbiBsYXRlbmN5IHNkYyBmaWxlPiIKLSAgICAgIHB1dHMgJG9wMSAiI3NldCB2YXJzKCRwYXJ0LGFzc2VtYmxlX2RicykgICA8ZGF0YWJhc2UgZGlyZWN0b3J5PiIKLSAgICAgIHB1dHMgJG9wMSAiI3NldCB2YXJzKCRwYXJ0LGlsbV9kaXIpICAgICAgICA8cGF0aCB0byBJTE0gZGlyZXRvcnk+IgotICAgICAgcHV0cyAkb3AxICIjc2V0IHZhcnMoJHBhcnQsbGVmX2ZpbGUpICAgICAgIDxwYXRoIHRvIExFRiBmaWxlPiIKLSAgICAgIHB1dHMgJG9wMSAiI3NldCB2YXJzKCRwYXJ0LGlubm92dXNfY29uZmlnX3RjbCkgPHBhcnRpdGlvbiBzcGVjaWZpYyBpbm5vdnVzX2NvbmZpZy50Y2w+IgotICAgfQotfSBlbHNlIHsKLSAgIHB1dHMgJG9wMSAiI3NldCB2YXJzKHBhcnRpdGlvbl9saXN0KSAgICAgICAgICAgICA8bGlzdCBvZiBwYXJ0aXRpb25zPiIKLSAgIHB1dHMgJG9wMSAiI3NldCB2YXJzKDxwYXJ0aXRpb24+LGN0c19zcGVjKSAgICAgICA8cGFydGl0aW9uIGN0cyBzcGVjIGZpbGU+IgotICAgcHV0cyAkb3AxICIjc2V0IHZhcnMoPHBhcnRpdGlvbj4sbGF0ZW5jeV9zZGMpICAgIDxwYXJ0aXRpb24gbGF0ZW5jeSBzZGMgZmlsZT4iCi0gICBwdXRzICRvcDEgIiNzZXQgdmFycyg8cGFydGl0aW9uPixhc3NlbWJsZV9kYnMpICAgPGRhdGFiYXNlIGRpcmVjdG9yeT4iCi0gICBwdXRzICRvcDEgIiNzZXQgdmFycyg8cGFydGl0aW9uPixpbG1fZGlyKSAgICAgICAgPHBhdGggdG8gSUxNIGRpcmV0b3J5PiIKLSAgIHB1dHMgJG9wMSAiI3NldCB2YXJzKDxwYXJ0aXRpb24+LGxlZl9maWxlKSAgICAgICA8cGF0aCB0byBMRUYgZmlsZT4iCi0gICBwdXRzICRvcDEgIiNzZXQgdmFycyg8cGFydGl0aW9uPixpbm5vdnVzX2NvbmZpZ190Y2wpIDxwYXJ0aXRpb24gc3BlY2lmaWMgaW5ub3Z1c19jb25maWcudGNsPiIKLX0KLQotaWYgeyghW2NhdGNoIHtkYkdldCB0b3AuaXNQcm90b01vZGVsQ29tbWl0dGVkfSB2YWxdKSAmJiAkdmFsfSB7Ci0gICBwdXRzICRvcDEgInNldCB2YXJzKHVzZV9mbGV4bW9kZWxzKSB0cnVlIgotfSBlbHNlIHsKLSAgIHB1dHMgJG9wMSAiI3NldCB2YXJzKHVzZV9mbGV4bW9kZWxzKSA8Ym9vbGVhbj4iCi19Ci0KLXB1dHMgJG9wMSAiIgotCi1wdXRzICRvcDEgIiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMiCi1wdXRzICRvcDEgIiMgT3B0aW9uYWxseSBkZWZpbmUgdXNlciBJTE1zIHRvIGJlIHNwZWNpZmllZCBkdXJpbmcgdGhlIGZsb3cuIFRoZXNlIHdpbGwgYmUgc3BlY2lmaWVkICIKLXB1dHMgJG9wMSAiIyBkdXJpbmcgdGhlIGZsYXQgaW5pdCBzdGVwIGFuZCB0aGUgaGllcmFyY2hpY2FsIHBhcnRpdGlvbmluZyBzdGVwLiBUaGUgSUxNcyBzaG91bGQiCi1wdXRzICRvcDEgIiMgbm90IGJlIGhpZXJhcmhpY2FsIHBhcnRpdGlvbnMgKHRoZXkgYXJlIGhhbmRsZWQgYXV0b21hdGljYWxseS4gIFNlZSBiZWxvdyBmb3IgIgotcHV0cyAkb3AxICIjIGhhbmRsaW5nIHBhcnRpdGlvbiBJTE1zIGR1cmluZyBwb3N0IGFzc2VtYmx5IGNsb3N1cmUuIgotcHV0cyAkb3AxICIjIC0gdmFycyhpbG1fbGlzdCkgIDxsaXN0IG9mIGlsbSBtb2R1bGVzPiIKLXB1dHMgJG9wMSAiIyAtIHZhcnMoPGlsbT4saWxtX2RpcikgIDxwYXRoIHRvIElMTSBkaXJldG9yeT4iCi1wdXRzICRvcDEgIiMgLSB2YXJzKDxpbG0+LGxlZl9maWxlKSA8cGF0aCB0byBMRUYgZmlsZT4iCi1wdXRzICRvcDEgIiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMiCi1wdXRzICRvcDEgIiMgc2V0IHZhcnMoaWxtX2xpc3QpIFxbbGlzdFxdIgotaWYge1tpbmZvIGV4aXN0cyByZGFfSW5wdXQodWlfaWxtZGlyKV0gJiYgKCRyZGFfSW5wdXQodWlfaWxtZGlyKSAhPSAiIil9IHsKLSAgIHNldCBpbG1fbGlzdCBbbGlzdF0KLSAgIGZvciB7c2V0IGkgMH0geyRpIDwgW2xsZW5ndGggJHJkYV9JbnB1dCh1aV9pbG1kaXIpXX0ge2luY3IgaX0gewotICAgICAgc2V0IGlsbSBbbGluZGV4ICRyZGFfSW5wdXQodWlfaWxtZGlyKSAkaV0KLSAgICAgIGluY3IgaQotICAgICAgc2V0IGRpciBbbGluZGV4ICRyZGFfSW5wdXQodWlfaWxtZGlyKSAkaV0KLSAgICAgIGxhcHBlbmQgaWxtX2xpc3QgJGlsbQotICAgICAgc2V0IHZhcnMoJGlsbSxpbG1fZGlyKSAkZGlyCi0gICB9Ci0gICBpZiB7JGlsbV9saXN0ICE9ICIifSB7Ci0gICAgICBwdXRzICRvcDEgInNldCB2YXJzKGlsbV9saXN0KSBcW2xpc3QgJGlsbV9saXN0XF0iCi0gICAgICBmb3JlYWNoIGlsbSAkaWxtX2xpc3QgewotICAgICAgICAgcHV0cyAkb3AxICJzZXQgdmFycygkaWxtLGlsbV9kaXIpICR2YXJzKCRpbG0saWxtX2RpcikiCi0gICAgICB9Ci0gICB9Ci19Ci1wdXRzICRvcDEgIiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMiCi1wdXRzICRvcDEgIiMgRGVmaW5lIGxlZiBmaWxlcyAuLi4iCi1wdXRzICRvcDEgIiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMiCi1wdXRzICRvcDEgInNldCB2YXJzKGxlZl9maWxlcykgXCJcXCIKLWZvcmVhY2ggZmlsZSAkcmRhX0lucHV0KHVpX2xlZmZpbGUpIHsKLSAgIHB1dHMgJG9wMSAiICAgW2ZpbGUgbm9ybWFsaXplICRmaWxlXSBcXCIKLX0KLXB1dHMgJG9wMSAiXCIiCi0KLXB1dHMgJG9wMSAiIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyIKLXB1dHMgJG9wMSAiIyBEZWZpbmUgbGlicmFyeSBzZXRzIC4uLiIKLXB1dHMgJG9wMSAiIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIKLXB1dHMgJG9wMSAiIyBzZXQgdmFycyhsaWJyYXJ5X3NldHMpIDxsaXN0IG9mIGxpYnJhcnkgc2V0cz4iCi1wdXRzICRvcDEgIiMgc2V0IHZhcnMoPHNldD4sdGltaW5nKSA8bGlzdCBvZiBsaWIgZmlsZXM+IgotcHV0cyAkb3AxICIjIHNldCB2YXJzKDxzZXQ+LHNpKSA8bGlzdCBvZiBjZGIvdWRuIGZpbGVzPiIKLXB1dHMgJG9wMSAiIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyIKLXNldCBsaWJyYXJ5X3NldHMgW2xpc3RdCi0KLWZvcmVhY2ggbGlicmFyeV9zZXQgW2FsbF9saWJyYXJ5X3NldHNdIHsKLSAgIGlmIHtbbGxlbmd0aCBbYWxsX2xpYnJhcnlfc2V0c11dID4gMn0gewotIyAgICAgIGlmIHtbcmVnZXhwICJeZGVmYXVsdCIgJGxpYnJhcnlfc2V0XSA9PSAwfSB7Ci0gICAgICAgICBpZiB7W2luZm8gZXhpc3RzIDo6Q1BGOjpjcGZDb21taXR0ZWRdfSB7Ci0gICAgICAgICAgICBpZiB7KFtyZWdleHAgIl5kb21haW5fIiAkbGlicmFyeV9zZXRdID09IDApfSB7Ci0gICAgICAgICAgICAgICBsYXBwZW5kIGxpYnJhcnlfc2V0cyAkbGlicmFyeV9zZXQKLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBsYXBwZW5kIGxpYnJhcnlfc2V0cyAkbGlicmFyeV9zZXQKLSAgICAgICAgIH0KLSMgICAgICB9Ci0gICB9IGVsc2UgewotICAgICAgbGFwcGVuZCBsaWJyYXJ5X3NldHMgJGxpYnJhcnlfc2V0Ci0gICB9Ci19Ci0KLWlmIHskbGlicmFyeV9zZXRzICE9ICIifSB7Ci0gICBwdXRzICRvcDEgInNldCB2YXJzKGxpYnJhcnlfc2V0cykgXCIkbGlicmFyeV9zZXRzXCIiCi19Ci0KLWZvcmVhY2ggbGlicmFyeV9zZXQgJGxpYnJhcnlfc2V0cyB7Ci0gICBmb3JlYWNoIG9wdGlvbiAidGltaW5nIHNpIGFvY3YiIHsKLSAgICAgIGlmIHtbZ2V0X2xpYnJhcnlfc2V0ICRsaWJyYXJ5X3NldCAtJG9wdGlvbl0gIT0gIiJ9IHsKLSAgICAgICAgIHNldCBmaWxlX2xpc3QgW2dldF9saWJyYXJ5X3NldCAkbGlicmFyeV9zZXQgLSRvcHRpb25dCi0gICAgICAgICBwdXRzICRvcDEgInNldCB2YXJzKCRsaWJyYXJ5X3NldCwkb3B0aW9uKSBcIlxcIgotICAgICAgICAgZm9yZWFjaCBmaWxlICRmaWxlX2xpc3QgewotICAgICAgICAgICAgcHV0cyAkb3AxICIgICBbZmlsZSBub3JtYWxpemUgJGZpbGVdIFxcIiAKLSAgICAgICAgIH0gCi0gICAgICAgICBwdXRzICRvcDEgIlwiIiAKLSAgICAgIH0KLSAgIH0KLX0KLQotcHV0cyAkb3AxICIjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIgotcHV0cyAkb3AxICIjIERlZmluZSByYyBjb3JuZXJzIC4uLiIKLXB1dHMgJG9wMSAiIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIKLXB1dHMgJG9wMSAiIyBzZXQgdmFycyhyY19jb3JuZXJzKSA8bGlzdCBvZiByYyBjb3JuZXJzPiIKLXB1dHMgJG9wMSAiIyBzZXQgdmFycyg8cmNfY29ybmVyPixUKSA8dGVtcGVyYXR1cmU+IgotcHV0cyAkb3AxICIjIHNldCB2YXJzKDxyY19jb3JuZXI+LGNhcF90YWJsZSkgPGNhcCB0YWJsZSBmb3IgY29ybmVyPiIKLXB1dHMgJG9wMSAiIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyIKLXNldCByY19jb3JuZXJzIFtsaXN0XQotZm9yZWFjaCByY19jb3JuZXIgW2FsbF9yY19jb3JuZXJzXSB7Ci0jICAgaWYge1tsbGVuZ3RoIFthbGxfcmNfY29ybmVyc11dID4gMX0gewotIyAgICAgIGlmIHtbcmVnZXhwICJeZGVmYXVsdCIgJHJjX2Nvcm5lciBdID09IDB9IHsKLSMgICAgICAgICBsYXBwZW5kIHJjX2Nvcm5lcnMgJHJjX2Nvcm5lcgotIyAgICAgIH0KLSMgICB9IGVsc2UgewotICAgICAgbGFwcGVuZCByY19jb3JuZXJzICRyY19jb3JuZXIKLSMgICB9Ci19Ci1pZiB7JHJjX2Nvcm5lcnMgIT0gIiJ9IHsKLSAgIHB1dHMgJG9wMSAic2V0IHZhcnMocmNfY29ybmVycykgXCIkcmNfY29ybmVyc1wiIgotfQotZm9yZWFjaCByY19jb3JuZXIgJHJjX2Nvcm5lcnMgewotICAgZm9yZWFjaCBvcHRpb24gIlQgY2FwX3RhYmxlIiB7Ci0gICAgICBpZiB7W2dldF9yY19jb3JuZXIgJHJjX2Nvcm5lciAtJG9wdGlvbl0gIT0gIiJ9IHsKLSAgICAgICAgIGlmIHskb3B0aW9uID09ICJjYXBfdGFibGUifSB7Ci0gICAgICAgICAgICBwdXRzICRvcDEgInNldCB2YXJzKCRyY19jb3JuZXIsJG9wdGlvbikgW2ZpbGUgbm9ybWFsaXplIFtnZXRfcmNfY29ybmVyICRyY19jb3JuZXIgLSRvcHRpb25dXSIKLSAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBwdXRzICRvcDEgInNldCB2YXJzKCRyY19jb3JuZXIsJG9wdGlvbikgW2dldF9yY19jb3JuZXIgJHJjX2Nvcm5lciAtJG9wdGlvbl0iIAotICAgICAgICAgfQotICAgICAgfSBlbHNlIHsKLSAgICAgICAgIGlmIHsoJG9wdGlvbiA9PSAiVCIpICYmIChbZ2V0X3JjX2Nvcm5lciAkcmNfY29ybmVyIC0kb3B0aW9uXSA9PSAiIil9IHsKLSAgICAgICAgICAgIHB1dHMgJG9wMSAiI3NldCB2YXJzKCRyY19jb3JuZXIsJG9wdGlvbikgMjUgOyAjIEVESVQgRk9SIENPUlJFQ1QgVCBWQUxVRSIKLSAgICAgICAgIH0KLSAgICAgICAgIGlmIHsoJG9wdGlvbiA9PSAiY2FwX3RhYmxlIikgJiYgKFtnZXRfcmNfY29ybmVyICRyY19jb3JuZXIgLSRvcHRpb25dID09ICIiKX0gewotICAgICAgICAgICAgcHV0cyAkb3AxICIjc2V0IHZhcnMoJHJjX2Nvcm5lciwkb3B0aW9uKSA7ICMgRURJVCBGT1IgQ09SUkVDVCBDQVAgVEFCTEUgREVGSU5JVElPTiIKLSAgICAgICAgIH0KLSAgICAgIH0KLSAgIH0KLSAgIHB1dHMgJG9wMSAiI3NldCB2YXJzKCRyY19jb3JuZXIsYXRmX2ZpbGUpIgotfQotCi1wdXRzICRvcDEgIiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMiCi1wdXRzICRvcDEgIiMgT3B0aW9uYWxseSBkZWZpbmUgUVJDIHRlY2hub2xvZ3kgaW5mb3JtYXRpb24iCi1wdXRzICRvcDEgIiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iCi1wdXRzICRvcDEgIiMgc2V0IHZhcnMoPHJjX2Nvcm5lcj4scXhfdGVjaF9maWxlKSA8cXhfdGVjaF9maWxlIGZvciBjb3JuZXI+IgotcHV0cyAkb3AxICIjIHNldCB2YXJzKDxyY19jb3JuZXI+LHF4X2xpYl9maWxlKSAgPHF4X2xpYl9maWxlIGZvciBjb3JuZXI+IgotcHV0cyAkb3AxICIjIHNldCB2YXJzKDxyY19jb3JuZXI+LHF4X2NvbmZfZmlsZSkgPHF4X2NvbmZfZmlsZSBmb3IgY29ybmVyPiIKLXB1dHMgJG9wMSAiIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyIKLWZvcmVhY2ggcmNfY29ybmVyICRyY19jb3JuZXJzIHsKLSAgIGZvcmVhY2ggb3B0aW9uICJxeF90ZWNoX2ZpbGUgcXhfbGliX2ZpbGUgcXhfY29uZl9maWxlIiB7Ci0gICAgICBpZiB7W2dldF9yY19jb3JuZXIgJHJjX2Nvcm5lciAtJG9wdGlvbl0gIT0gIiJ9IHsKLSAgICAgICAgIHB1dHMgJG9wMSAic2V0IHZhcnMoJHJjX2Nvcm5lciwkb3B0aW9uKSBbZmlsZSBub3JtYWxpemUgW2dldF9yY19jb3JuZXIgJHJjX2Nvcm5lciAtJG9wdGlvbl1dIiAKLSAgICAgIH0KLSAgIH0KLX0KLQotcHV0cyAkb3AxICIjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIgotcHV0cyAkb3AxICIjIFNjYWxlIGZhY3RvcnMgYXJlIGFsc28gb3B0aW9uYWwgYnV0IGFyZSBzdHJvbmdseSBlbmNvdXJhZ2VkIGZvciBwcmVfcm91dGUgb3B0aW1pemF0aW9uICIKLXB1dHMgJG9wMSAiIyBpbiBvcmRlciB0byBvYnRhaW4gdGhlIGJlc3QgZmxvdyBjb252ZXJnZW5jZSBhbmQgUW9SLiAgU2NhbGluZyBmYWN0b3JzIGFyZSBhcHBsaWVkIHBlciIKLXB1dHMgJG9wMSAiIyByYyBjb3JuZXIgYnkgc2V0dGluZyB0aGUgaW5kaXZpZHVhbCB2YWx1ZXMgT1IgdmlhIGEgc2NhbGVfdGNsIGZpbGUgd2hpY2ggbXVzdCBjb250YWluIiAKLXB1dHMgJG9wMSAiIyBzeW50YWN0aWNhbGx5IGNvcnJlY3QgdXBkYXRlX3JjX2Nvcm5lciBjb21tYW5kcyBmb3IgYSBnaXZlbiByY19jb3JuZXIiCi1wdXRzICRvcDEgIiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iCi1wdXRzICRvcDEgIiMgc2V0IHZhcnMoPHJjX2Nvcm5lcj4sc2NhbGVfdGNsKSAgICAgICAgICAgICAgICAgPGZpbGU+IgotcHV0cyAkb3AxICIjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIgotcHV0cyAkb3AxICIjIHNldCB2YXJzKDxyY19jb3JuZXI+LHByZV9yb3V0ZV9yZXNfZmFjdG9yKSAgICAgIDxwcmUtcm91dGUgcmVzaXN0YW5jZSBzY2FsZSBmYWN0b3I+IgotcHV0cyAkb3AxICIjIHNldCB2YXJzKDxyY19jb3JuZXI+LHByZV9yb3V0ZV9jbGtfcmVzX2ZhY3RvcikgIDxwcmUtcm91dGUgY2xvY2sgcmVzaXN0YW5jZSBzY2FsZSBmYWN0b3I+IgotcHV0cyAkb3AxICIjIHNldCB2YXJzKDxyY19jb3JuZXI+LHBvc3Rfcm91dGVfcmVzX2ZhY3RvcikgICAgIDxwb3N0LXJvdXRlIHJlc2lzdGFuY2Ugc2NhbGUgZmFjdG9yICh0cmlwbGV0cyk+IgotcHV0cyAkb3AxICIjIHNldCB2YXJzKDxyY19jb3JuZXI+LHBvc3Rfcm91dGVfY2xrX3Jlc19mYWN0b3IpIDxwb3N0LXJvdXRlIGNsb2NrIHJlc2lzdGFuY2Ugc2NhbGUgZmFjdG9yPiIKLXB1dHMgJG9wMSAiIyBzZXQgdmFycyg8cmNfY29ybmVyPixwcmVfcm91dGVfY2FwX2ZhY3RvcikgICAgICA8cHJlLXJvdXRlIGNhcGFjaXRhbmNlIHNjYWxlIGZhY3Rvcj4iCi1wdXRzICRvcDEgIiMgc2V0IHZhcnMoPHJjX2Nvcm5lcj4scHJlX3JvdXRlX2Nsa19jYXBfZmFjdG9yKSAgPHByZS1yb3V0ZSBjbG9jayBjYXBhY2l0YW5jZSBzY2FsZSBmYWN0b3I+IgotcHV0cyAkb3AxICIjIHNldCB2YXJzKDxyY19jb3JuZXI+LHBvc3Rfcm91dGVfY2FwX2ZhY3RvcikgICAgIDxwb3N0LXJvdXRlIGNhcGFjaXRhbmNlIHNjYWxlIGZhY3RvciAodHJpcGxldHMpPiIKLXB1dHMgJG9wMSAiIyBzZXQgdmFycyg8cmNfY29ybmVyPixwb3N0X3JvdXRlX2Nsa19jYXBfZmFjdG9yKSA8cG9zdC1yb3V0ZSBjbG9jayBjYXBhY2l0YW5jZSBzY2FsZSBmYWN0b3I+IgotcHV0cyAkb3AxICIjIHNldCB2YXJzKDxyY19jb3JuZXI+LHBvc3Rfcm91dGVfeGNhcF9mYWN0b3IpICAgIDxwb3N0LXJvdXRlIGNvdXBsaW5nIGNhcGFjaXRhbmNlIHNjYWxlIGZhY3RvciAodHJpcGxldHMpPiIKLXB1dHMgJG9wMSAiIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyIKLQotZm9yZWFjaCByY19jb3JuZXIgJHJjX2Nvcm5lcnMgewotICAgaWYge1tnZXRfcmNfY29ybmVyICRyY19jb3JuZXIgLXByZVJvdXRlX3Jlc10gIT0gIiJ9IHsKLSAgICAgIHB1dHMgJG9wMSAic2V0IHZhcnMoJHJjX2Nvcm5lcixwcmVfcm91dGVfcmVzX2ZhY3RvcikgXHRcdFtmb3JtYXQgJTQuMmYgW2V4cHIgW2dldF9yY19jb3JuZXIgJHJjX2Nvcm5lciAtcHJlUm91dGVfcmVzXSoxLjBdXSIgCi0gICB9Ci0gICBpZiB7W2dldF9yY19jb3JuZXIgJHJjX2Nvcm5lciAtcHJlUm91dGVfY2xrcmVzXSAhPSAiIn0gewotICAgICAgcHV0cyAkb3AxICJzZXQgdmFycygkcmNfY29ybmVyLHByZV9yb3V0ZV9jbGtfcmVzX2ZhY3RvcikgXHRbZm9ybWF0ICU0LjJmIFtleHByIFtnZXRfcmNfY29ybmVyICRyY19jb3JuZXIgLXByZVJvdXRlX2Nsa3Jlc10qMS4wXV0iIAotICAgIH0KLSAgIGlmIHtbZ2V0X3JjX2Nvcm5lciAkcmNfY29ybmVyIC1wb3N0Um91dGVfcmVzXSAhPSAiIn0gewotICAgICAgc2V0IHRyaXBsZXRzIFtnZXRfcmNfY29ybmVyICRyY19jb3JuZXIgLXBvc3RSb3V0ZV9yZXNdCi0gICAgICBzZXQgc2NhbGFyIFtsaW5kZXggJHRyaXBsZXRzIDBdCi0gICAgICBpZiB7W2xsZW5ndGggJHNjYWxhcl0gPT0gMX0gewotICAgICAgICAgc2V0IHBzdHJpbmcgW2Zvcm1hdCAiJTQuMmYgJTQuMmYgJTQuMmYiIFtleHByIFtsaW5kZXggJHNjYWxhciAwXSoxLjBdIDEuMCAxLjBdCi0gICAgICB9Ci0gICAgICBpZiB7W2xsZW5ndGggJHNjYWxhcl0gPT0gMn0gewotICAgICAgICAgc2V0IHBzdHJpbmcgW2Zvcm1hdCAiJTQuMmYgJTQuMmYgJTQuMmYiIFtleHByIFtsaW5kZXggJHNjYWxhciAwXSoxLjBdIFtleHByIFtsaW5kZXggJHNjYWxhciAxXSoxLjBdIDEuMF0KLSAgICAgIH0KLSAgICAgIGlmIHtbbGxlbmd0aCAkc2NhbGFyXSA9PSAzfSB7Ci0gICAgICAgICBzZXQgcHN0cmluZyBbZm9ybWF0ICIlNC4yZiAlNC4yZiAlNC4yZiIgW2V4cHIgW2xpbmRleCAkc2NhbGFyIDBdKjEuMF0gW2V4cHIgW2xpbmRleCAkc2NhbGFyIDFdKjEuMF0gW2V4cHIgW2xpbmRleCAkc2NhbGFyIDJdKjEuMF1dCi0gICAgICB9Ci0gICAgICBwdXRzICRvcDEgInNldCB2YXJzKCRyY19jb3JuZXIscG9zdF9yb3V0ZV9yZXNfZmFjdG9yKSBcdFx0XCIkcHN0cmluZ1wiIgotICAgfQotICAgaWYge1tnZXRfcmNfY29ybmVyICRyY19jb3JuZXIgLXBvc3RSb3V0ZV9jbGtyZXNdICE9ICIifSB7Ci0gICAgICBzZXQgdHJpcGxldHMgW2dldF9yY19jb3JuZXIgJHJjX2Nvcm5lciAtcG9zdFJvdXRlX2Nsa3Jlc10KLSAgICAgIHNldCBzY2FsYXIgW2xpbmRleCAkdHJpcGxldHMgMF0KLSAgICAgIGlmIHtbbGxlbmd0aCAkc2NhbGFyXSA9PSAxfSB7Ci0gICAgICAgICBzZXQgcHN0cmluZyBbZm9ybWF0ICIlNC4yZiAlNC4yZiAlNC4yZiIgW2V4cHIgW2xpbmRleCAkc2NhbGFyIDBdKjEuMF0gMS4wIDEuMF0KLSAgICAgIH0KLSAgICAgIGlmIHtbbGxlbmd0aCAkc2NhbGFyXSA9PSAyfSB7Ci0gICAgICAgICBzZXQgcHN0cmluZyBbZm9ybWF0ICIlNC4yZiAlNC4yZiAlNC4yZiIgW2V4cHIgW2xpbmRleCAkc2NhbGFyIDBdKjEuMF0gW2V4cHIgW2xpbmRleCAkc2NhbGFyIDFdKjEuMF0gMS4wXQotICAgICAgfQotICAgICAgaWYge1tsbGVuZ3RoICRzY2FsYXJdID09IDN9IHsKLSAgICAgICAgIHNldCBwc3RyaW5nIFtmb3JtYXQgIiU0LjJmICU0LjJmICU0LjJmIiBbZXhwciBbbGluZGV4ICRzY2FsYXIgMF0qMS4wXSBbZXhwciBbbGluZGV4ICRzY2FsYXIgMV0qMS4wXSBbZXhwciBbbGluZGV4ICRzY2FsYXIgMl0qMS4wXV0KLSAgICAgIH0KLSAgICAgIHB1dHMgJG9wMSAic2V0IHZhcnMoJHJjX2Nvcm5lcixwb3N0X3JvdXRlX2Nsa19yZXNfZmFjdG9yKSBcdFx0XCIkcHN0cmluZ1wiIgotICAgIH0KLSAgIGlmIHtbZ2V0X3JjX2Nvcm5lciAkcmNfY29ybmVyIC1wcmVSb3V0ZV9jYXBdICE9ICIifSB7Ci0gICAgICBwdXRzICRvcDEgInNldCB2YXJzKCRyY19jb3JuZXIscHJlX3JvdXRlX2NhcF9mYWN0b3IpIFx0XHRbZm9ybWF0ICU0LjJmIFtleHByIFtnZXRfcmNfY29ybmVyICRyY19jb3JuZXIgLXByZVJvdXRlX2NhcF0qMS4wXV0iIAotICAgfQotICAgaWYge1tnZXRfcmNfY29ybmVyICRyY19jb3JuZXIgLXByZVJvdXRlX2Nsa2NhcF0gIT0gIiJ9IHsKLSAgICAgIHB1dHMgJG9wMSAic2V0IHZhcnMoJHJjX2Nvcm5lcixwcmVfcm91dGVfY2xrX2NhcF9mYWN0b3IpIFx0W2Zvcm1hdCAlNC4yZiBbZXhwciBbZ2V0X3JjX2Nvcm5lciAkcmNfY29ybmVyIC1wcmVSb3V0ZV9jbGtjYXBdKjEuMF1dIiAKLSAgICB9Ci0gICBpZiB7W2dldF9yY19jb3JuZXIgJHJjX2Nvcm5lciAtcG9zdFJvdXRlX2NhcF0gIT0gIiJ9IHsKLSAgICAgIHNldCB0cmlwbGV0cyBbZ2V0X3JjX2Nvcm5lciAkcmNfY29ybmVyIC1wb3N0Um91dGVfY2FwXQotICAgICAgc2V0IHNjYWxhciBbbGluZGV4ICR0cmlwbGV0cyAwXQotICAgICAgaWYge1tsbGVuZ3RoICRzY2FsYXJdID09IDF9IHsKLSAgICAgICAgIHNldCBwc3RyaW5nIFtmb3JtYXQgIiU0LjJmICU0LjJmICU0LjJmIiBbZXhwciBbbGluZGV4ICRzY2FsYXIgMF0qMS4wXSAxLjAgMS4wXQotICAgICAgfQotICAgICAgaWYge1tsbGVuZ3RoICRzY2FsYXJdID09IDJ9IHsKLSAgICAgICAgIHNldCBwc3RyaW5nIFtmb3JtYXQgIiU0LjJmICU0LjJmICU0LjJmIiBbZXhwciBbbGluZGV4ICRzY2FsYXIgMF0qMS4wXSBbZXhwciBbbGluZGV4ICRzY2FsYXIgMV0qMS4wXSAxLjBdCi0gICAgICB9Ci0gICAgICBpZiB7W2xsZW5ndGggJHNjYWxhcl0gPT0gM30gewotICAgICAgICAgc2V0IHBzdHJpbmcgW2Zvcm1hdCAiJTQuMmYgJTQuMmYgJTQuMmYiIFtleHByIFtsaW5kZXggJHNjYWxhciAwXSoxLjBdIFtleHByIFtsaW5kZXggJHNjYWxhciAxXSoxLjBdIFtleHByIFtsaW5kZXggJHNjYWxhciAyXSoxLjBdXQotICAgICAgfQotICAgICAgcHV0cyAkb3AxICJzZXQgdmFycygkcmNfY29ybmVyLHBvc3Rfcm91dGVfY2FwX2ZhY3RvcikgXHRcdFwiJHBzdHJpbmdcIiIKLSAgIH0KLSAgIGlmIHtbZ2V0X3JjX2Nvcm5lciAkcmNfY29ybmVyIC1wb3N0Um91dGVfY2xrY2FwXSAhPSAiIn0gewotICAgICAgc2V0IHRyaXBsZXRzIFtnZXRfcmNfY29ybmVyICRyY19jb3JuZXIgLXBvc3RSb3V0ZV9jbGtjYXBdCi0gICAgICBzZXQgc2NhbGFyIFtsaW5kZXggJHRyaXBsZXRzIDBdCi0gICAgICBpZiB7W2xsZW5ndGggJHNjYWxhcl0gPT0gMX0gewotICAgICAgICAgc2V0IHBzdHJpbmcgW2Zvcm1hdCAiJTQuMmYgJTQuMmYgJTQuMmYiIFtleHByIFtsaW5kZXggJHNjYWxhciAwXSoxLjBdIDEuMCAxLjBdCi0gICAgICB9Ci0gICAgICBpZiB7W2xsZW5ndGggJHNjYWxhcl0gPT0gMn0gewotICAgICAgICAgc2V0IHBzdHJpbmcgW2Zvcm1hdCAiJTQuMmYgJTQuMmYgJTQuMmYiIFtleHByIFtsaW5kZXggJHNjYWxhciAwXSoxLjBdIFtleHByIFtsaW5kZXggJHNjYWxhciAxXSoxLjBdIDEuMF0KLSAgICAgIH0KLSAgICAgIGlmIHtbbGxlbmd0aCAkc2NhbGFyXSA9PSAzfSB7Ci0gICAgICAgICBzZXQgcHN0cmluZyBbZm9ybWF0ICIlNC4yZiAlNC4yZiAlNC4yZiIgW2V4cHIgW2xpbmRleCAkc2NhbGFyIDBdKjEuMF0gW2V4cHIgW2xpbmRleCAkc2NhbGFyIDFdKjEuMF0gW2V4cHIgW2xpbmRleCAkc2NhbGFyIDJdKjEuMF1dCi0gICAgICB9Ci0gICAgICBwdXRzICRvcDEgInNldCB2YXJzKCRyY19jb3JuZXIscG9zdF9yb3V0ZV9jbGtfY2FwX2ZhY3RvcikgXHRcdFwiJHBzdHJpbmdcIiIKLSAgIH0KLSAgIGlmIHtbZ2V0X3JjX2Nvcm5lciAkcmNfY29ybmVyIC1wb3N0Um91dGVfeGNhcF0gIT0gIiJ9IHsKLSAgICAgIHNldCB0cmlwbGV0cyBbZ2V0X3JjX2Nvcm5lciAkcmNfY29ybmVyIC1wb3N0Um91dGVfeGNhcF0KLSAgICAgIHNldCBzY2FsYXIgW2xpbmRleCAkdHJpcGxldHMgMF0KLSAgICAgIGlmIHtbbGxlbmd0aCAkc2NhbGFyXSA9PSAxfSB7Ci0gICAgICAgICBzZXQgcHN0cmluZyBbZm9ybWF0ICIlNC4yZiAlNC4yZiAlNC4yZiIgW2V4cHIgW2xpbmRleCAkc2NhbGFyIDBdKjEuMF0gMS4wIDEuMF0KLSAgICAgIH0KLSAgICAgIGlmIHtbbGxlbmd0aCAkc2NhbGFyXSA9PSAyfSB7Ci0gICAgICAgICBzZXQgcHN0cmluZyBbZm9ybWF0ICIlNC4yZiAlNC4yZiAlNC4yZiIgW2V4cHIgW2xpbmRleCAkc2NhbGFyIDBdKjEuMF0gW2V4cHIgW2xpbmRleCAkc2NhbGFyIDFdKjEuMF0gMS4wXQotICAgICAgfQotICAgICAgaWYge1tsbGVuZ3RoICRzY2FsYXJdID09IDN9IHsKLSAgICAgICAgIHNldCBwc3RyaW5nIFtmb3JtYXQgIiU0LjJmICU0LjJmICU0LjJmIiBbZXhwciBbbGluZGV4ICRzY2FsYXIgMF0qMS4wXSBbZXhwciBbbGluZGV4ICRzY2FsYXIgMV0qMS4wXSBbZXhwciBbbGluZGV4ICRzY2FsYXIgMl0qMS4wXV0KLSAgICAgIH0KLSAgICAgIHB1dHMgJG9wMSAic2V0IHZhcnMoJHJjX2Nvcm5lcixwb3N0X3JvdXRlX3hjYXBfZmFjdG9yKSBcdFx0XCIkcHN0cmluZ1wiIgotICAgfQotICAgcHV0cyAkb3AxICAiIiAKLX0KLXB1dHMgJG9wMSAiIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyIKLXB1dHMgJG9wMSAiIyBEZWZpbmUgb3BlcmF0aW5nIGNvbmRpdGlvbnMgKG9wdGlvbmFsKSIKLXB1dHMgJG9wMSAiIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIKLXB1dHMgJG9wMSAiIyBzZXQgdmFycyhvcGNvbmRzKSA8bGlzdCBvZiBvcGVyYXRpbmcgY29uZGl0aW9ucz4iCi1wdXRzICRvcDEgIiMgc2V0IHZhcnMoPG9wY29uZD4sbGlicmFyeV9maWxlKSA8bGlicmFyeSBmaWxlID4iCi1wdXRzICRvcDEgIiMgc2V0IHZhcnMoPG9wY29uZD4sUCkgPHByb2Nlc3Mgc2NhbGUgZmFjdG9yPiIKLXB1dHMgJG9wMSAiIyBzZXQgdmFycyg8b3Bjb25kPixWKSA8dm9sdGFnZT4iCi1wdXRzICRvcDEgIiMgc2V0IHZhcnMoPG9wY29uZD4sVCkgPHRlbXBlcmF0dXJlPiIKLXB1dHMgJG9wMSAiIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyIKLWlmIHshW2luZm8gZXhpc3RzIDo6Q1BGOjpjcGZDb21taXR0ZWRdfSB7Ci0gICBzZXQgb3Bjb25kcyBbbGlzdF0KLSAgIGZvcmVhY2ggb3Bjb25kIFthbGxfb3BfY29uZHNdIHsKLSAgICMgICBpZiB7W3JlZ2V4cCAiXmRlZmF1bHQiICRvcGNvbmQgXSA9PSAwfSB7Ci0gICAgICAgICBsYXBwZW5kIG9wY29uZHMgJG9wY29uZAotICAgIyAgIH0KLSAgIH0KLSAgIGlmIHskb3Bjb25kcyAhPSAiIn0gewotICAgICAgcHV0cyAkb3AxICIjc2V0IHZhcnMob3Bjb25kcykgXCIkb3Bjb25kc1wiIgotICAgfQotICAgZm9yZWFjaCBvcGNvbmQgJG9wY29uZHMgewotICAgICAgZm9yZWFjaCBvcHRpb24gImxpYnJhcnlfZmlsZSBQIFYgVCIgewotICAgICAgICAgaWYge1tnZXRfb3BfY29uZCAkb3Bjb25kIC0kb3B0aW9uXSAhPSAiIn0gewotICAgICAgICAgICAgcHV0cyAkb3AxICIjc2V0IHZhcnMoJG9wY29uZCwkb3B0aW9uKSBbZ2V0X29wX2NvbmQgJG9wY29uZCAtJG9wdGlvbl0iIAotICAgICAgICAgfQotICAgICAgfQotICAgfQotfQotCi1wdXRzICRvcDEgIiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMiCi1wdXRzICRvcDEgIiMgRGVmaW5lIGRlbGF5IGNvcm5lcnMgLi4uIgotcHV0cyAkb3AxICIjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIgotcHV0cyAkb3AxICIjIHNldCB2YXJzKGRlbGF5X2Nvcm5lcnMpIDxsaXN0IG9mIGRlbGF5IGNvcm5lcnM+IgotcHV0cyAkb3AxICIjIHNldCB2YXJzKDxkZWxheV9jb3JuZXI+LGxpYnJhcnlfc2V0KSA8bGlicmFyeV9zZXQ+IChwcmV2aW91c2x5IGRlZmluZWQpIgotcHV0cyAkb3AxICIjIHNldCB2YXJzKDxkZWxheV9jb3JuZXI+LG9wY29uZCkgPG9wY29uZD4gKHByZXZpb3VzbHkgZGVmaW5lZCkgKG9wdGlvbmFsKSIKLXB1dHMgJG9wMSAiIyBzZXQgdmFycyg8ZGVsYXlfY29ybmVyPixyY19jb3JuZXIpIGxpYnJhcnlfc2V0PiAocHJldmlvdXNseSBkZWZpbmVkKSIKLXB1dHMgJG9wMSAiIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyIKLXNldCBkZWxheV9jb3JuZXJzIFtsaXN0XQotZm9yZWFjaCBkZWxheV9jb3JuZXIgW2FsbF9kZWxheV9jb3JuZXJzXSB7Ci0jICAgaWYge1tsbGVuZ3RoIFthbGxfZGVsYXlfY29ybmVyc11dID4gMn0gewotIyAgICAgIGlmIHtbcmVnZXhwICJeZGVmYXVsdCIgJGRlbGF5X2Nvcm5lciBdID09IDB9IHsKLSMgICAgICAgICBsYXBwZW5kIGRlbGF5X2Nvcm5lcnMgJGRlbGF5X2Nvcm5lcgotIyAgICAgIH0KLSMgICB9IGVsc2UgewotICAgICAgbGFwcGVuZCBkZWxheV9jb3JuZXJzICRkZWxheV9jb3JuZXIKLSMgICB9Ci19Ci1pZiB7JGRlbGF5X2Nvcm5lcnMgIT0gIiJ9IHsKLSAgIHB1dHMgJG9wMSAic2V0IHZhcnMoZGVsYXlfY29ybmVycykgXCIkZGVsYXlfY29ybmVyc1wiIgotfQotZm9yZWFjaCBkYyAkZGVsYXlfY29ybmVycyB7Ci0gICAgc2V0IGF0dHJpYnV0ZV9saXN0ICJyY19jb3JuZXIgbGlicmFyeV9zZXQgb3Bjb25kX2xpYnJhcnkgb3Bjb25kIGlyZHJvcF9maWxlIGxhdGVfbGlicmFyeV9zZXQgZWFybHlfbGlicmFyeV9zZXQgCi0gICAgICAgICAgICAgICAgICAgICAgICBsYXRlX29wY29uZF9saWJyYXJ5IGVhcmx5X29wY29uZF9saWJyYXJ5IGxhdGVfb3Bjb25kIGVhcmx5X29wY29uZCBsYXRlX2lyZHJvcF9maWxlIGVhcmx5X2lyZHJvcF9maWxlIgotCi0gICBmb3JlYWNoIGF0dHIgJGF0dHJpYnV0ZV9saXN0IHsKLSAgICMgRXh0cmFjdGlvbiB0aGUgY29ybmVyIGxldmVsIHByb3BlcnRpZXMKLSAgICAgIGlmIHtbZ2V0X2RlbGF5X2Nvcm5lciAkZGMgLSRhdHRyXSAhPSAiIn0geyAKLSAgICAgICAgIHB1dHMgJG9wMSAic2V0IHZhcnMoJGRjLCRhdHRyKSBcdFtnZXRfZGVsYXlfY29ybmVyICRkYyAtJGF0dHJdIgotICAgICAgfQotICAgIyBFeHRyYWN0aW9uIHRoZSBwb3dlciBkb21haW4gbGV2ZWwgcHJvcGVydGllcwotICAgICAgc2V0IGRvbWFpbnMgW2dldF9kZWxheV9jb3JuZXIgJGRjIC1wb3dlcl9kb21haW5fbGlzdF0KLSAgICAgIGlmIHskZG9tYWlucyAhPSAiIn0gewotICAgICAgICBpZiB7IVtpbmZvIGV4aXN0cyBkb25lKCRkYyxwb3dlcl9kb21haW5zKV19IHsKLSAgICAgICAgICAgcHV0cyAkb3AxICJzZXQgdmFycygkZGMscG93ZXJfZG9tYWlucykgXCIkZG9tYWluc1wiIgotICAgICAgICAgICAgZm9yZWFjaCBwZCBbZ2V0X2RlbGF5X2Nvcm5lciAkZGMgLXBvd2VyX2RvbWFpbl9saXN0XSB7Ci0gICAgICAgICAgICAgIHB1dHMgJG9wMSAiIyBBdHRyaWJ1dGVzIGZvciBwb3dlciBkb21haW4gJHBkIgotICAgICAgICAgICAgICAgZm9yZWFjaCBhdHRyICRhdHRyaWJ1dGVfbGlzdCB7Ci0gICAgICAgICAgICAgICAgICBpZiB7W2dldF9kZWxheV9jb3JuZXIgLXBvd2VyX2RvbWFpbiAkcGQgJGRjIC0kYXR0cl0gIT0gIiJ9IHsKLSAgICAgICAgICAgICAgICAgICAgIHNldCBkb25lKCRkYywkcGQsJGF0dHIpIFRSVUUKLSAgICAgICAgICAgICAgICAgICAgIHB1dHMgJG9wMSAic2V0IHZhcnMoJGRjLCRwZCwkYXR0cikgXHRbZ2V0X2RlbGF5X2Nvcm5lciAkZGMgLXBvd2VyX2RvbWFpbiAkcGQgLSRhdHRyXSIKLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIH0gCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgIHNldCBkb25lKCRkYyxwb3dlcl9kb21haW5zKSBUUlVFCi0gICAgICAgICB9IAotICAgICAgfQotICAgfQotfQotCi0KLXB1dHMgJG9wMSAiIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyIKLXB1dHMgJG9wMSAiIyBPcHRpb25hbGx5IGRlZmluZSBkZXJhdGluZyBmYWN0b3JzIGZvciBPQ1YgaGVyZSAoY2xvY2sgYW5kIGRhdGEpLiAiCi1wdXRzICRvcDEgIiMgRGVyYXRpbmcgZmFjdG9ycyBhcmUgYXBwbGllZCBwZXIgZGVsYXkgY29ybmVyIHVzaW5nIGVpdGhlciBpbmRpdmlkdWFsIgotcHV0cyAkb3AxICIjIHZhbHVlcyBPUiB2aWEgYSBkZXJhdGVfdGNsIGZpbGUgd2hpY2ggbXVzdCBjb250YWluIHN5bnRhY3RpY2FsbHkgY29ycmVjdCIKLXB1dHMgJG9wMSAiIyBzZXRfdGltaW5nX2RlcmF0ZSBjb21tYW5kcyBmb3IgYSBnaXZlbiBkZWxheV9jb3JuZXIiCi1wdXRzICRvcDEgIiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iCi1wdXRzICRvcDEgIiNzZXQgdmFycyg8ZGVsYXlfY29ybmVyPixkZXJhdGVfdGNsKSAgICAgICAgPGZpbGU+IgotcHV0cyAkb3AxICIjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIgotcHV0cyAkb3AxICIjc2V0IHZhcnMoPGRlbGF5X2Nvcm5lcj4sZGF0YV9jZWxsX2xhdGUpICAgIDxmbG9hdD4iCi1wdXRzICRvcDEgIiNzZXQgdmFycyg8ZGVsYXlfY29ybmVyPixkYXRhX2NlbGxfZWFybHkpICAgPGZsb2F0PiIKLXB1dHMgJG9wMSAiI3NldCB2YXJzKDxkZWxheV9jb3JuZXI+LGRhdGFfbmV0X2xhdGUpICAgICA8ZmxvYXQ+IgotcHV0cyAkb3AxICIjc2V0IHZhcnMoPGRlbGF5X2Nvcm5lcj4sZGF0YV9uZXRfZWFybHkpICAgIDxmbG9hdD4iCi1wdXRzICRvcDEgIiNzZXQgdmFycyg8ZGVsYXlfY29ybmVyPixjbG9ja19jZWxsX2xhdGUpICAgPGZsb2F0PiIKLXB1dHMgJG9wMSAiI3NldCB2YXJzKDxkZWxheV9jb3JuZXI+LGNsb2NrX2NlbGxfZWFybHkpICA8ZmxvYXQ+IgotcHV0cyAkb3AxICIjc2V0IHZhcnMoPGRlbGF5X2Nvcm5lcj4sY2xvY2tfbmV0X2xhdGUpICAgIDxmbG9hdD4iCi1wdXRzICRvcDEgIiNzZXQgdmFycyg8ZGVsYXlfY29ybmVyPixjbG9ja19uZXRfZWFybHkpICAgPGZsb2F0PiIKLXB1dHMgJG9wMSAiI3NldCB2YXJzKDxkZWxheV9jb3JuZXI+LGNlbGxfY2hlY2tfbGF0ZSkgICA8ZmxvYXQ+IgotcHV0cyAkb3AxICIjc2V0IHZhcnMoPGRlbGF5X2Nvcm5lcj4sY2VsbF9jaGVja19lYXJseSkgIDxmbG9hdD4iCi1wdXRzICRvcDEgIiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iCi0KLXNldCBtYXAoZWFybHlfY2VsbF9jaGVja19kZXJhdGVfZmFjdG9yKSBlYXJseV9jZWxsX2NoZWNrCi1zZXQgbWFwKGVhcmx5X2Nsa19jZWxsX2RlcmF0ZV9mYWN0b3IpIGNsb2NrX2NlbGxfZWFybHkKLXNldCBtYXAoZWFybHlfZGF0YV9jZWxsX2RlcmF0ZV9mYWN0b3IpIGRhdGFfY2VsbF9lYXJseQotc2V0IG1hcChsYXRlX2NlbGxfY2hlY2tfZGVyYXRlX2ZhY3RvcikgbGF0ZV9jZWxsX2NoZWNrCi1zZXQgbWFwKGxhdGVfY2xrX2NlbGxfZGVyYXRlX2ZhY3RvcikgY2xvY2tfY2VsbF9sYXRlCi1zZXQgbWFwKGxhdGVfZGF0YV9jZWxsX2RlcmF0ZV9mYWN0b3IpIGRhdGFfY2VsbF9sYXRlCi0KLSN0aW1lRGVzaWduIC1wcmVQbGFjZQotI2ZvcmVhY2ggdmlldyBbYWxsX3NldHVwX2FuYWx5c2lzX3ZpZXdzXSB7Ci0jICAgZm9yZWFjaCB0eXBlICJlYXJseV9jZWxsX2NoZWNrX2RlcmF0ZV9mYWN0b3IgZWFybHlfY2xrX2NlbGxfZGVyYXRlX2ZhY3RvciBlYXJseV9kYXRhX2NlbGxfZGVyYXRlX2ZhY3RvciBcCi0jICAgICAgICAgICAgICAgICBsYXRlX2NlbGxfY2hlY2tfZGVyYXRlX2ZhY3RvciBsYXRlX2Nsa19jZWxsX2RlcmF0ZV9mYWN0b3IgbGF0ZV9kYXRhX2NlbGxfZGVyYXRlX2ZhY3RvciIgewotIwotIyAgICAgIHB1dHMgJG9wMSAic2V0IHZhcnMoW2dldF9hbmFseXNpc192aWV3ICR2aWV3IC1kZWxheV9jb3JuZXJdLCRtYXAoJHR5cGUpKSBbZ2V0X3Byb3BlcnR5IFtsaW5kZXggW2FsbF9yZWdpc3RlcnNdIDBdICR0eXBlIC12aWV3ICR2aWV3XSIKLSMgICB9Ci0jfQotI3RpbWVEZXNpZ24gLXByZVBsYWNlIC1ob2xkCi0jZm9yZWFjaCB2aWV3IFthbGxfaG9sZF9hbmFseXNpc192aWV3c10gewotIyAgIGZvcmVhY2ggdHlwZSAiZWFybHlfY2VsbF9jaGVja19kZXJhdGVfZmFjdG9yIGVhcmx5X2Nsa19jZWxsX2RlcmF0ZV9mYWN0b3IgZWFybHlfZGF0YV9jZWxsX2RlcmF0ZV9mYWN0b3IgXAotIyAgICAgICAgICAgICAgICAgbGF0ZV9jZWxsX2NoZWNrX2RlcmF0ZV9mYWN0b3IgbGF0ZV9jbGtfY2VsbF9kZXJhdGVfZmFjdG9yIGxhdGVfZGF0YV9jZWxsX2RlcmF0ZV9mYWN0b3IiIHsKLSMKLSMgICAgICBwdXRzICRvcDEgInNldCB2YXJzKFtnZXRfYW5hbHlzaXNfdmlldyAkdmlldyAtZGVsYXlfY29ybmVyXSwkbWFwKCR0eXBlKSkgW2dldF9wcm9wZXJ0eSBbbGluZGV4IFthbGxfcmVnaXN0ZXJzXSAwXSAkdHlwZSAtdmlldyAkdmlld10iCi0jICAgfQotI30KLQotcHV0cyAkb3AxICIjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIgotcHV0cyAkb3AxICIjIERlZmluZSBjb25zdHJhaW50IG1vZGVzIC4uLiAiCi1wdXRzICRvcDEgIiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iCi1wdXRzICRvcDEgIiMgc2V0IHZhcnMoY29uc3RyYWludF9tb2RlcykgICAgICAgIDxsaXN0IG9mIGNvbnN0cmFpbnQgbW9kZXM+IgotcHV0cyAkb3AxICIjIHNldCB2YXJzKDxtb2RlPixwcmVfY3RzX3NkYykgICAgICA8cHJlIGN0cyBjb25zdHJhaW50IGZpbGU+IChyZXF1aXJlZCkiCi1wdXRzICRvcDEgIiMgc2V0IHZhcnMoPG1vZGU+LHBvc3RfY3RzX3NkYykgICAgIDxwb3N0IGN0cyBjb25zdHJhaW50IGZpbGU+IChvcHRpb25hbCkiCi1wdXRzICRvcDEgIiMgc2V0IHZhcnMoPG1vZGU+LGluY3JfY3RzX3NkYykgICAgIDxpbmNyZW1lbnRhbCBwb3N0IGN0cyBjb25zdHJhaW50IGZpbGU+IChvcHRpb25hbCkiCi1wdXRzICRvcDEgIiMgc2V0IHZhcnMoPG1vZGU+LHByZV9jdHNfaWxtX3NkYykgIDxwcmUgY3RzIGlsbSBjb25zdHJhaW50IGZpbGU+IChvcHRpb25hbCkiCi1wdXRzICRvcDEgIiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iCi1zZXQgY29uc3RyYWludF9tb2RlcyBbbGlzdF0KLWZvcmVhY2ggY29uc3RyYWludF9tb2RlIFthbGxfY29uc3RyYWludF9tb2Rlc10gewotIyAgIGlmIHtbbGxlbmd0aCBbYWxsX2NvbnN0cmFpbnRfbW9kZXNdXSA+IDJ9IHsKLSMgICAgICBpZiB7W3JlZ2V4cCAiXmRlZmF1bHRfbW9kZSIgJGNvbnN0cmFpbnRfbW9kZSBdID09IDB9IHsKLSMgICAgICAgICBsYXBwZW5kIGNvbnN0cmFpbnRfbW9kZXMgJGNvbnN0cmFpbnRfbW9kZQotIyAgICAgIH0KLSMgICB9IGVsc2UgewotICAgICAgbGFwcGVuZCBjb25zdHJhaW50X21vZGVzICRjb25zdHJhaW50X21vZGUKLSMgICB9Ci19Ci1pZiB7JGNvbnN0cmFpbnRfbW9kZXMgIT0gIiJ9IHsKLSAgIHB1dHMgJG9wMSAic2V0IHZhcnMoY29uc3RyYWludF9tb2RlcykgXCIkY29uc3RyYWludF9tb2Rlc1wiIgotfQotZm9yZWFjaCBjb25zdHJhaW50X21vZGUgJGNvbnN0cmFpbnRfbW9kZXMgewotICAgaWYge1tnZXRfY29uc3RyYWludF9tb2RlICRjb25zdHJhaW50X21vZGUgLXNkY19maWxlc10gIT0gIiJ9IHsKLSMgICAgICBwdXRzICRvcDEgInNldCB2YXJzKCRjb25zdHJhaW50X21vZGUscHJlX2N0c19zZGMpIFwiW2ZpbGUgbm9ybWFsaXplIFtnZXRfY29uc3RyYWludF9tb2RlICRjb25zdHJhaW50X21vZGUgLXNkY19maWxlc11dXCIiIAotICAgICBzZXQgcHJlX2N0c19zZGNfbGlzdCBbbGlzdF0KLSAgICAgZm9yZWFjaCBmaWxlIFtnZXRfY29uc3RyYWludF9tb2RlICRjb25zdHJhaW50X21vZGUgLXNkY19maWxlc10gIHsKLSAgICAgICAgbGFwcGVuZCBwcmVfY3RzX3NkY19saXN0IFtmaWxlIG5vcm1hbGl6ZSAkZmlsZV0KLSAgICAgfQotICAgICBwdXRzICRvcDEgInNldCB2YXJzKCRjb25zdHJhaW50X21vZGUscHJlX2N0c19zZGMpIFwiW2pvaW4gJHByZV9jdHNfc2RjX2xpc3RdXCIiIAotICAgICAgaWYge1tpbmZvIGV4aXN0cyBkZ25fcG9zdF9jdHNfc2RjXSAmJiAoJGRnbl9wb3N0X2N0c19zZGMgIT0gIiIpIH0gewotICAgICAgICAgcHV0cyAkb3AxICJzZXQgdmFycygkY29uc3RyYWludF9tb2RlLHBvc3RfY3RzX3NkYykgXCIkZGduX3Bvc3RfY3RzX3NkY1wiIiAKLSAgICAgIH0KLSAgIH0KLSAgIGlmIHtbZ2V0X2NvbnN0cmFpbnRfbW9kZSAkY29uc3RyYWludF9tb2RlIC1pbG1fc2RjX2ZpbGVzXSAhPSAiIn0gewotIyAgICAgIHB1dHMgJG9wMSAic2V0IHZhcnMoJGNvbnN0cmFpbnRfbW9kZSxwcmVfY3RzX2lsbV9zZGMpIFwiW2ZpbGUgbm9ybWFsaXplIFtnZXRfY29uc3RyYWludF9tb2RlICRjb25zdHJhaW50X21vZGUgLWlsbV9zZGNfZmlsZXNdXVwiIiAKLSAgICAgc2V0IGlsbV9jdHNfc2RjX2xpc3QgW2xpc3RdCi0gICAgIGZvcmVhY2ggZmlsZSBbZ2V0X2NvbnN0cmFpbnRfbW9kZSAkY29uc3RyYWludF9tb2RlIC1pbG1fc2RjX2ZpbGVzXSAgewotICAgICAgICBsYXBwZW5kIGlsbV9jdHNfc2RjX2xpc3QgW2ZpbGUgbm9ybWFsaXplICRmaWxlXQotICAgICB9Ci0gICAgIHB1dHMgJG9wMSAic2V0IHZhcnMoJGNvbnN0cmFpbnRfbW9kZSxwcmVfY3RzX2lsbV9zZGMpIFwiW2pvaW4gJGlsbV9jdHNfc2RjX2xpc3RdXCIiIAotICAgfQotfQotCi1wdXRzICRvcDEgIiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMiCi1wdXRzICRvcDEgIiMgRGVmaW5lIHNldHVwIGFuZCBob2xkIGFuYWx5c2lzIHZpZXdzIC4uLiBlYWNoIGFuYWx5c2lzIHZpZXcgcmVxdWlyZXMiCi1wdXRzICRvcDEgIiMgYSBkZWxheSBjb3JuZXIgYW5kIGEgY29uc3RyYWludCBtb2RlIgotcHV0cyAkb3AxICIjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIgotCi0jc2V0IGFuYWx5c2lzX3ZpZXdzICIiCi1zZXQgYW5hbHlzaXNfdmlld3MgW2NvbmNhdCBbYWxsX3NldHVwX2FuYWx5c2lzX3ZpZXdzXSBbYWxsX2hvbGRfYW5hbHlzaXNfdmlld3NdXQotI2ZvcmVhY2ggdmlldyBbYWxsX2FuYWx5c2lzX3ZpZXdzXSB7Ci0jICAgaWYge1tsbGVuZ3RoIFthbGxfYW5hbHlzaXNfdmlld3NdXSA+IDJ9IHsKLSMgICAgICBpZiB7W3JlZ2V4cCAiXmRlZmF1bHQiICR2aWV3IF0gPT0gMH0gewotIyAgICAgICAgIGxhcHBlbmQgYW5hbHlzaXNfdmlld3MgJHZpZXcKLSMgICAgICB9Ci0jICAgfSBlbHNlIHsKLSMgICAgICBsYXBwZW5kIGFuYWx5c2lzX3ZpZXdzICR2aWV3Ci0jICAgfQotI30KLWZvcmVhY2ggdmlldyAkYW5hbHlzaXNfdmlld3MgewotICAgZm9yZWFjaCBvcHRpb24gImRlbGF5X2Nvcm5lciBjb25zdHJhaW50X21vZGUiIHsKLSAgICAgIGlmIHtbZ2V0X2FuYWx5c2lzX3ZpZXcgJHZpZXcgLSRvcHRpb25dICE9ICIifSB7Ci0gICAgICAgICBwdXRzICRvcDEgInNldCB2YXJzKCR2aWV3LCRvcHRpb24pIFtnZXRfYW5hbHlzaXNfdmlldyAkdmlldyAtJG9wdGlvbl0iIAotICAgICAgfQotICAgfQotfQotcHV0cyAkb3AxICIjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIgotcHV0cyAkb3AxICIjIEVESVQvVkVSSUZZIFRIRVNFIExJU1RTISEiCi1wdXRzICRvcDEgIiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMiCi1wdXRzICRvcDEgInNldCB2YXJzKHNldHVwX2FuYWx5c2lzX3ZpZXdzKSBcIlthbGxfc2V0dXBfYW5hbHlzaXNfdmlld3NdXCIiCi1wdXRzICRvcDEgInNldCB2YXJzKGhvbGRfYW5hbHlzaXNfdmlld3MpICBcIlthbGxfaG9sZF9hbmFseXNpc192aWV3c11cIiIKLSNwdXRzICRvcDEgInNldCB2YXJzKHNldHVwX2FuYWx5c2lzX3ZpZXdzKSBcIiRhbmFseXNpc192aWV3c1wiIgotI3B1dHMgJG9wMSAic2V0IHZhcnMoaG9sZF9hbmFseXNpc192aWV3cykgXCIkYW5hbHlzaXNfdmlld3NcIiIKLQotcHV0cyAkb3AxICIjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIgotcHV0cyAkb3AxICIjIERlZmluZSBhY3RpdmUgc2V0dXAgYW5kIGhvbGQgYW5hbHlzaXMgdmlldyBsaXN0cyBhbmQgZGVmYXVsdCB2aWV3cyIKLXB1dHMgJG9wMSAiIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyIKLXB1dHMgJG9wMSAic2V0IHZhcnMoZGVmYXVsdF9zZXR1cF92aWV3KSAgXFtsaW5kZXggXCR2YXJzKHNldHVwX2FuYWx5c2lzX3ZpZXdzKSAwXF0iCi1wdXRzICRvcDEgInNldCB2YXJzKGRlZmF1bHRfaG9sZF92aWV3KSAgIFxbbGluZGV4IFwkdmFycyhob2xkX2FuYWx5c2lzX3ZpZXdzKSAwXF0iCi0jcHV0cyAkb3AxICJzZXQgdmFycyhhY3RpdmVfc2V0dXBfdmlld3MpIFwkdmFycyhzZXR1cF9hbmFseXNpc192aWV3cykiCi0jcHV0cyAkb3AxICJzZXQgdmFycyhhY3RpdmVfaG9sZF92aWV3cykgIFwkdmFycyhob2xkX2FuYWx5c2lzX3ZpZXdzKSIKLXB1dHMgJG9wMSAic2V0IHZhcnMoYWN0aXZlX3NldHVwX3ZpZXdzKSAgXCR2YXJzKHNldHVwX2FuYWx5c2lzX3ZpZXdzKSIKLXB1dHMgJG9wMSAic2V0IHZhcnMoYWN0aXZlX2hvbGRfdmlld3MpICAgXCR2YXJzKGhvbGRfYW5hbHlzaXNfdmlld3MpIgotcHV0cyAkb3AxICIiCi1wdXRzICRvcDEgIiNzZXQgdmFycyhnZHNfZmlsZXMpICAgICAgICAgPGxpc3Qgb2YgZ2RzIGZpbGVzPiIKLXB1dHMgJG9wMSAiI3NldCB2YXJzKGdkc19sYXllcl9tYXApICAgICA8Z2RzIGxheWVyIG1hcCBmaWxlPiIKLXB1dHMgJG9wMSAiI3NldCB2YXJzKHFyY19sYXllcl9tYXApICAgICA8cXJjIGxheWVyIG1hcCBmaWxlPiIKLXB1dHMgJG9wMSAiI3NldCB2YXJzKHFyY19saWJyYXJ5KSAgICAgICA8cXJjIGxpYnJhcnkgZGlyZWN0b3J5PiIKLXB1dHMgJG9wMSAiI3NldCB2YXJzKHFyY19jb25maWdfZmlsZSkgICA8cXJjIGNvbmZpZyBmaWxlPiIKLXB1dHMgJG9wMSAiIgotcHV0cyAkb3AyICIjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIgotcHV0cyAkb3AyICIjIEVuYWJsZSBvbkNoaXBWYXJpYXRpb24gKGZvciBNTU1DIGZsb3dzKS4gIE9wdGlvbnMgYXJlOiIKLXB1dHMgJG9wMiAiIyBwcmVfcGxhY2UsIHByZV9wcmVjdHMsIHByZV9jdHMsIHByZV9wb3N0Y3RzLCBwcmVfcG9zdHJvdXRlLCBwcmVfc2lnbm9mZiwgZmFsc2UiCi1wdXRzICRvcDIgIiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMiCi1wdXRzICRvcDIgInNldCB2YXJzKGVuYWJsZV9vY3YpICAgICAgICBwcmVfY3RzIgotcHV0cyAkb3AyICIiCi1wdXRzICRvcDIgIiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMiCi1wdXRzICRvcDIgIiMgT3B0aW9uYWxseSBlbmFibGUgYW9jdiIKLXB1dHMgJG9wMiAiIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyIKLXB1dHMgJG9wMiAic2V0IHZhcnMoZW5hYmxlX2FvY3YpICAgICAgIGZhbHNlIgotcHV0cyAkb3AyICIjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIgotcHV0cyAkb3AyICIjIE9wdGlvbmFsbHkgZW5hYmxlIGNwcHI7IG9wdGlvbnMgYXJlOiBzZXR1cCwgaG9sZCwgYm90aCwgbm9uZSIKLXB1dHMgJG9wMiAiIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyIKLXB1dHMgJG9wMiAic2V0IHZhcnMoZW5hYmxlX2NwcHIpICAgICAgIGJvdGgiCi1wdXRzICRvcDIgIiIKLSNwdXRzICRvcDIgIiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMiCi0jcHV0cyAkb3AyICIjIE9wdGlvbmFsbHkgZW5hYmxlIHNpZ25hbFN0b3JtIGRlbGF5IGNhbGN1bGF0aW9uIGR1cmluZyB0aGUgZmxvdy4iCi0jcHV0cyAkb3AyICIjIFRoaXMgaXMgYSByZXF1aXJlbWVudCB3aGVuIHVzaW5nIEVDU00vQ0NTIG1vZGVscy4gIFRoZSBmb2xsb3dpbmcgYXJlIgotI3B1dHMgJG9wMiAiIyB2YWx1ZSBvcHRpb25zOiBwcmVfcGxhY2UgcHJlX3ByZWN0cyBwcmVfcG9zdGN0cyBwcmVfcG9zdHJvdXRlIHByZV9zaWdub2ZmIGZhbHNlIgotI3B1dHMgJG9wMiAiIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyIKLSNwdXRzICRvcDIgInNldCB2YXJzKGVuYWJsZV9zcykgICAgICAgICBmYWxzZSIKLSNwdXRzICRvcDIgIiIKLXB1dHMgJG9wMiAiIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyIKLXB1dHMgJG9wMiAiIyBPcHRpb25hbGx5IGVuYWJsZSBzaWdub2ZmIEVDTyBmb3IgdGhlIGhpZXJhcmhpY2FsIGZsb3ciCi1wdXRzICRvcDIgIiMgSUYgJ2lsbScsIFRIRU4gVEhFIEZPTExPV0lORyBTSE9VTEQgQkUgU0VUIElOIFRIRSBzZXR1cC50Y2wiCi1wdXRzICRvcDIgIiMgLSB2YXJzKDxwdG4+LGlsbV9kaXIpICAgPHBhdGggdG8gSUxNIGRpcmV0b3J5PiIKLXB1dHMgJG9wMiAiIyAtIHZhI3JzKDxwdG4+LGxlZl9maWxlKSAgPHBhdGggdG8gTEVGIGZpbGU+IgotcHV0cyAkb3AyICIjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIgotcHV0cyAkb3AyICJzZXQgdmFycyhlbmFibGVfc2lnbm9mZl9lY28pICAgICAgICAgICAgZmFsc2UiCi1wdXRzICRvcDIgIiIKLXB1dHMgJG9wMiAiIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyIKLXB1dHMgJG9wMiAiIyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZsb3cgT3B0aW9ucyIKLXB1dHMgJG9wMiAiIyBPcHRpb25hbGx5IGVuYWJsZSBkZXNpZ24gbW9kZSBvcHRpb25zOiIKLXB1dHMgJG9wMiAiIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIKLXB1dHMgJG9wMiAiI3NldCB2YXJzKGZsb3dfZWZmb3QpICAgICAgIDxleHByZXNzIHwgc3RhbmRhcmQgfCBleHRyZW1lPiIKLXB1dHMgJG9wMiAiI3NldCB2YXJzKHBvd2VyX2VmZm9ydCkgICAgIDxub25lIHwgbG93IHwgaGlnaD4iCi1wdXRzICRvcDIgIiIKLXB1dHMgJG9wMiAiIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyIKLXB1dHMgJG9wMiAiIyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBsYWNlbWVudCBPcHRpb25zIgotcHV0cyAkb3AyICIjIE5PVEU6IFdoZW4gcGxhY2Vfb3B0X2Rlc2lnbiBpcyBlbmFibGVkLCB0aGUgcHJlY3RzIHN0ZXAgd2lsbCBiZSBza2lwcGVkIgotcHV0cyAkb3AyICIjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIgotcHV0cyAkb3AyICIjc2V0IHZhcnMoaW5fcGxhY2Vfb3B0KSAgICAgdHJ1ZSIKLXB1dHMgJG9wMiAiI3NldCB2YXJzKG5vX3ByZV9wbGFjZV9vcHQpIHRydWUiCi1wdXRzICRvcDIgIiNzZXQgdmFycyhwbGFjZV9vcHRfZGVzaWduKSAgPHRydWUgfCBmYWxzZT4iCi1wdXRzICRvcDIgIiNzZXQgdmFycyhwbGFjZV9pb19waW5zKSAgICAgPHRydWUgfCBmYWxzZT4iCi1wdXRzICRvcDIgIiNzZXQgdmFycyhjbG9ja19nYXRlX2F3YXJlKSAgPHRydWUgfCBmYWxzZT4iCi1wdXRzICRvcDIgIiNzZXQgdmFycyhjb25nZXN0aW9uX2VmZm9ydCkgPGF1dG8gfCBsb3cgfCBoaWdoPiIKLXB1dHMgJG9wMiAiIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIKLWZvcmVhY2ggb3B0aW9uIFtnZXRQbGFjZU1vZGUgLXF1aWV0XSB7Ci0gICBpZiB7W2xpbmRleCAkb3B0aW9uIDBdID09ICJjbGtHYXRlQXdhcmUifSB7Ci0gICAgICBwdXRzICRvcDIgInNldCB2YXJzKGNsb2NrX2dhdGVfYXdhcmUpICBbbGluZGV4ICRvcHRpb24gMV0iCi0gICB9Ci0gICBpZiB7W2xpbmRleCAkb3B0aW9uIDBdID09ICJjb25nRWZmb3J0In0gewotICAgICAgcHV0cyAkb3AyICJzZXQgdmFycyhjb25nZXN0aW9uX2VmZm9ydCkgW2xpbmRleCAkb3B0aW9uIDFdIgotICAgfQotICAgaWYge1tsaW5kZXggJG9wdGlvbiAwXSA9PSAicGxhY2VJb1BpbnMifSB7Ci0gICAgICBwdXRzICRvcDIgInNldCB2YXJzKHBsYWNlX2lvX3BpbnMpICAgICBbbGluZGV4ICRvcHRpb24gMV0iCi0gICB9Ci19Ci1wdXRzICRvcDIgIiIKLXB1dHMgJG9wMiAiIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyIKLXB1dHMgJG9wMiAiIyAgICAgICAgICAgICAgICAgICAgIFRpZS9GaWxsZXIvVGFwIENlbGwgT3B0aW9ucyIKLXB1dHMgJG9wMiAiIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIKLXB1dHMgJG9wMiAiIyAgICAgICAgICAgICAgICAgICAgICAgICBUaWUgY2VsbCBpbmZvcm1hdGlvbiIKLXB1dHMgJG9wMiAiIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIKLWZvcmVhY2ggb3B0aW9uIFtnZXRUaWVIaUxvTW9kZSAtcXVpZXRdIHsKLSAgIHN3aXRjaCAtZXhhY3QgLS0gW2xpbmRleCAkb3B0aW9uIDBdIHsKLSAgICAgICJjZWxsIiB7Ci0gICAgICAgICBpZiB7W2xpbmRleCAkb3B0aW9uIDFdICE9ICIifSB7Ci0gICAgICAgICAgICBwdXRzICRvcDIgInNldCB2YXJzKHRpZV9jZWxscykgXCJbbGluZGV4ICRvcHRpb24gMV1cIiIKLSAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBwdXRzICRvcDIgIiNzZXQgdmFycyh0aWVfY2VsbHMpIDx0aWVfY2VsbHM+IgotICAgICAgICAgfQotICAgICAgfQotICAgICAgIm1heERpc3RhbmNlIiB7Ci0gICAgICAgICBpZiB7W2xpbmRleCAkb3B0aW9uIDFdICE9IDB9IHsKLSAgICAgICAgICAgIHB1dHMgJG9wMiAic2V0IHZhcnModGllX2NlbGxzLG1heF9kaXN0YW5jZSkgW2xpc3QgW2xpbmRleCAkb3B0aW9uIDFdXSIKLSAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBwdXRzICRvcDIgIiNzZXQgdmFycyh0aWVfY2VsbHMsbWF4X2Rpc3RhbmNlKSA8ZmxvYXQ+IgotICAgICAgICAgfQotICAgICAgfQotICAgICAgIm1heEZhbm91dCIgewotICAgICAgICAgaWYge1tsaW5kZXggJG9wdGlvbiAxXSAhPSAwfSB7Ci0gICAgICAgICAgICBwdXRzICRvcDIgInNldCB2YXJzKHRpZV9jZWxscyxtYXhfZmFub3V0KSBbbGlzdCBbbGluZGV4ICRvcHRpb24gMV1dIgotICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHB1dHMgJG9wMiAiI3NldCB2YXJzKHRpZV9jZWxscyxtYXhfZmFub3V0KSA8aW50PiIKLSAgICAgICAgIH0KLSAgICAgIH0KLSAgIH0KLX0KLXB1dHMgJG9wMiAiIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIKLXB1dHMgJG9wMiAiIyAgICAgICAgICAgICAgICAgICAgIEZpbGxlciBjZWxsIGluZm9ybWF0aW9uIgotcHV0cyAkb3AyICIjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIgotZm9yZWFjaCBvcHRpb24gW2dldEZpbGxlck1vZGUgLXF1aWV0XSB7Ci0gICBpZiB7W2xpbmRleCAkb3B0aW9uIDBdID09ICJjb3JlIn0gewotICAgICAgaWYge1tsaW5kZXggJG9wdGlvbiAxXSAhPSAiIn0gewotICAgICAgICAgcHV0cyAkb3AyICJzZXQgdmFycyhmaWxsZXJfY2VsbHMpIFwiW2xpbmRleCAkb3B0aW9uIDFdXCIiCi0gICAgICB9IGVsc2UgewotICAgICAgICAgcHV0cyAkb3AyICIjc2V0IHZhcnMoZmlsbGVyX2NlbGxzKSA8ZmlsbGVyX2NlbGxzPiIKLSAgICAgIH0KLSAgIH0KLX0KLXB1dHMgJG9wMiAiIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iCi1wdXRzICRvcDIgIiMgICAgICAgICAgICAgICAgICAgICBXZWxsdGFwIGNlbGwgaW5mb3JtYXRpb24iCi1wdXRzICRvcDIgIiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIgotcHV0cyAkb3AyICIjICAgIHZlcmlmeV9ydWxlIDogbWF4aW11bSBkaXN0YW5jZSAoaW4gbWljcm9ucykgYmV0d2VlbiB3ZWxsdGFwIGNlbGxzIGFuZCBzdGFuZGFyZCBjZWxscyAiCi1wdXRzICRvcDIgIiMgICAgICAgICAgICAgICAgICBpbiBtaWNyb25zIgotcHV0cyAkb3AyICIjICAgICAgICBtYXhfZ2FwIDogc3BlY2lmaWVzIHRoZSBtYXhpbXVtIGRpc3RhbmNlIGZyb20gdGhlIHJpZ2h0IGVkZ2Ugb2Ygb25lIHdlbGwtdGFwIGNlbGwgIgotcHV0cyAkb3AyICIjICAgICAgICAgICAgICAgICAgdG8gdGhlIGxlZnQgZWRnZSBvZiAgdGhlIGZvbGxvd2luZyB3ZWxsLXRhcCBjZWxsIGluIHRoZSBzYW1lIHJvdyIKLXB1dHMgJG9wMiAiIyAgY2VsbF9pbnRlcnZhbCA6IHNwZWNpZmllcyB0aGUgbWF4aW11bSBkaXN0YW5jZSBmcm9tIHRoZSBjZW50ZXIgb2Ygb25lIHdlbGwtdGFwIGNlbGwgIgotcHV0cyAkb3AyICIjICAgICAgICAgICAgICAgICAgdG8gdGhlIGNlbnRlciBvZiB0aGUgZm9sbG93aW5nIHdlbGwtdGFwIGNlbGwgaW4gdGhlIHNhbWUgcm93IgotcHV0cyAkb3AyICIjIgotcHV0cyAkb3AyICIjIE5PVEU6IG1heF9nYXAgYW5kIGNlbGxfaW50ZXJ2YWwgcGFyYW1ldGVycyBhcmUgbXV0dWFsbHkgZXhjbHVzaXZlLCB1c2VyIGhhcyB0byBkZWZpbmUgIgotcHV0cyAkb3AyICIjICAgICAgIG9ubHkgb25lIG9mIHRoZXNlIHBhcmFtZXRlcnMgdG8gYWRkIHdlbGx0YXAgY2VsbHMiCi1wdXRzICRvcDIgIiMiCi1wdXRzICRvcDIgIiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIgotcHV0cyAkb3AyICIjc2V0IHZhcnMod2VsbHRhcHMpICAgICAgICAgICAgICAgICAgICAgICAgIDx3ZWxsdGFwIGNlbGxzPiIKLXB1dHMgJG9wMiAiI3NldCB2YXJzKHdlbGx0YXBzLGNoZWNrZXJib2FyZCkgICAgICAgICAgICA8dHJ1ZSBvciBmYWxzZT4iCi1wdXRzICRvcDIgIiNzZXQgdmFycyh3ZWxsdGFwcyxtYXhfZ2FwKSAgICAgICAgICAgICAgICAgPG1heCBnYXA+IgotcHV0cyAkb3AyICIjc2V0IHZhcnMod2VsbHRhcHMsY2VsbF9pbnRlcnZhbCkgICAgICAgICAgIDxjZWxsIGludGVydmFsPiIKLXB1dHMgJG9wMiAiI3NldCB2YXJzKHdlbGx0YXBzLHZlcmlmeV9ydWxlKSAgICAgICAgICAgICA8ZGlzdGFuY2UgaW50ZXJ2YWw+IgotcHV0cyAkb3AyICIjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIKLXB1dHMgJG9wMiAiIyAgICAgICAgICAgICAgICAgICAgICAgICAgRW5kY2FwIGNlbGwgaW5mb3JtYXRpb24iCi1wdXRzICRvcDIgIiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIgotcHV0cyAkb3AyICIjc2V0IHZhcnMocHJlX2VuZGNhcCkgICAgICAgICAgICAgICAgICAgICAgIDxwcmUgZW5kY2FwIGNlbGw+IgotcHV0cyAkb3AyICIjc2V0IHZhcnMocG9zdF9lbmRjYXApICAgICAgICAgICAgICAgICAgICAgIDxwb3N0IGVuZGNhcCBjZWxsPiIKLXB1dHMgJG9wMiAiIgotaWYge1tpbmZvIGV4aXN0cyA6OkNQRjo6Y3BmQ29tbWl0dGVkXSB8fCBbaW5mbyBleGlzdHMgOjpNU1Y6OmllZWUxODAxTG9hZGVkXX0gewotICAgcHV0cyAkb3AxICIjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMiCi0gICBwdXRzICRvcDEgIiMgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExQIEZsb3cgT3B0aW9ucyIKLSAgIHB1dHMgJG9wMSAiIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIKLSAgIHNldCBscGZpbGUge30KLSAgIGlmIHtbaW5mbyBleGlzdHMgOjpDUEY6OmNwZkNvbW1pdHRlZF0gJiYgJDo6Q1BGOjpjcGZDb21taXR0ZWQgJiYKLSAgICAgICBbaW5mbyBleGlzdHMgOjpDUEY6OmNwZl9maWxlXSAmJiAkOjpDUEY6OmNwZl9maWxlICE9ICIifSB7Ci0gICAgICBzZXQgbHBmb3JtYXQgY3BmCi0gICAgICBzZXQgbHBmaWxlIGdlbl9zZXR1cC5bcGlkXS4kbHBmb3JtYXQ7ICMgJDo6Q1BGOjpjcGZfZmlsZSBpcyBub3QgdXNlZCBkaXJlY3RseQotICAgaWYge1tsaW5kZXggW3NwbGl0ICR2YXJzKHZlcnNpb24pICIuIl0gIDBdIDwgMTV9IHsKLSAgICAgIHNhdmVDUEYgJGxwZmlsZQotICAgfSBlbHNlIHsKLSAgICAgIHdyaXRlX3Bvd2VyX2ludGVudCAtY3BmICRscGZpbGUKLSAgIH0gCi0gICB9IGVsc2VpZiB7W2luZm8gZXhpc3RzIDo6TVNWOjppZWVlMTgwMUxvYWRlZF0gJiYgJDo6TVNWOjppZWVlMTgwMUxvYWRlZCAmJgotICAgICAgICAgICAgIFtpbmZvIGV4aXN0cyA6Ok1TVl9VUEY6OnVwZl9maWxlXX0gewotICAgICAgc2V0IGxwZmlsZSBbZmlsZSBub3JtYWxpemUgJDo6TVNWX1VQRjo6dXBmX2ZpbGVdCi0gICAgICBzZXQgbHBmb3JtYXQgaWVlZTE4MDEKLSAgIH0KLQotICAgaWYgeyRscGZpbGUgPT0ge319IHsKLSAgICAgIHB1dHMgIldBUk5JTkc6IENhbm5vdCBkZXRlcm1pbmUgQ1BGIG9yIElFRUUgMTgwMSBmaWxlIC4uLiIKLSAgIH0gZWxzZSB7Ci0gICAgICBzZXQgdmFycygke2xwZm9ybWF0fV9maWxlKSAkbHBmaWxlCi0gICAgIHB1dHMgJG9wMSAic2V0IHZhcnMoJHtscGZvcm1hdH1fZmlsZSkgICAgICAgXCIkdmFycygke2xwZm9ybWF0fV9maWxlKVwiIgotICAgICAgcHV0cyAkb3AxICIjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIgotICAgICAgcHV0cyAkb3AxICIjIERlZmluZSB0aGUgZm9sbG93aW5nIHRvIHNlbGVjdGl2ZWx5IGNvbW1pdCBzZWN0aW9ucyBvZiB0aGUgW3N0cmluZyB0b3VwcGVyICRscGZvcm1hdF0gZmlsZSIKLSAgICAgIHB1dHMgJG9wMSAiI3NldCB2YXJzKCR7bHBmb3JtYXR9X3Bvd2VyX2RvbWFpbikgICAgIDx0cnVlIHwgZmFsc2U+IgotICAgICAgcHV0cyAkb3AxICIjc2V0IHZhcnMoJHtscGZvcm1hdH1fcG93ZXJfc3dpdGNoKSAgICAgPHRydWUgfCBmYWxzZT4iCi0gICAgICBwdXRzICRvcDEgIiNzZXQgdmFycygke2xwZm9ybWF0fV9pc29sYXRpb24pICAgICAgICA8dHJ1ZSB8IGZhbHNlPiIKLSAgICAgIHB1dHMgJG9wMSAiI3NldCB2YXJzKCR7bHBmb3JtYXR9X2xldmVsX3NoaWZ0ZXIpICAgIDx0cnVlIHwgZmFsc2U+IgotICAgICAgcHV0cyAkb3AxICIjc2V0IHZhcnMoJHtscGZvcm1hdH1fc3RhdGVfcmV0ZW50aW9uKSAgPHRydWUgfCBmYWxzZT4iCi0gICAgICBwdXRzICRvcDEgIiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iCi0gICAgICBwdXRzICRvcDEgIiNzZXQgdmFycygke2xwZm9ybWF0fV9rZWVwX3Jvd3MpICAgICAgICA8dHJ1ZSB8IGZhbHNlPiIKLSAgICAgIHB1dHMgJG9wMSAiIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iCi0gICAgICBwdXRzICRvcDEgIiMgVGhlIHZhcnMocG93ZXJfZG9tYWlucykgaXMgb3B0aW9uYWwuICBJZiBub3QgZGVmaW5lZCwgdGhlIHBvd2VyIiAKLSAgICAgIHB1dHMgJG9wMSAiIyBwb3dlciBkb21haW4gbGlzdCB3aWxsIGJlIHBpY2tlZCB1cCBhdXRvbWF0aWNhbGx5IgotICAgICAgcHV0cyAkb3AxICIjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIKLSAgICAgIHNldCBwb3dlcl9kb21haW5zIFtsaXN0XQotICAgICAgZGJGb3JFYWNoUG93ZXJEb21haW4gW2RiZ0hlYWRdIHBkIHsKLSAgICAgICAgIGxhcHBlbmQgcG93ZXJfZG9tYWlucyBbZGJQb3dlckRvbWFpbk5hbWUgJHBkXQotICAgICAgfQotICAgICAgaWYgeyRwb3dlcl9kb21haW5zICE9ICIifSB7Ci0gICAgICAgICBwdXRzICRvcDEgInNldCB2YXJzKHBvd2VyX2RvbWFpbnMpIFwiJHBvd2VyX2RvbWFpbnNcIiIKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgICBwdXRzICRvcDEgIiNzZXQgdmFycyhwb3dlcl9kb21haW5zKSAgICAgICAgICAgICAgICAgICAgICAgPGxpc3Qgb2YgcG93ZXIgZG9tYWlucz4iCi0gICAgICB9Ci0gICAgICBwdXRzICRvcDEgIiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIgotICAgICAgcHV0cyAkb3AxICIjIEFkZGl0aW9uYWwgb3B0aW9uYWwgbG93IHBvd2VyIHZhcmlhYmxlcyBjYW4gYmUgZGVmaW5lZCBpbiB0aGUgbHBfY29uZmlnLnRjbCBmaWxlLiIKLSAgICAgIHB1dHMgJG9wMSAiIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iCi0gICB9Ci19Ci1wdXRzICRvcDIgIiIKLXB1dHMgJG9wMiAiIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMiCi1wdXRzICRvcDIgIiMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2xvY2sgVHJlZSBPcHRpb25zIgotcHV0cyAkb3AyICIjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIKLXB1dHMgJG9wMiAiI3NldCB2YXJzKHJvdXRlX2Nsb2NrX25ldHMpIDx0cnVlIHwgZmFsc2U+IgotcHV0cyAkb3AyICIjc2V0IHZhcnMoY3RzX2NlbGxzKSAgICAgICAgPGxpc3Qgb2YgY2xvY2sgYnVmZmVycz4iCi1wdXRzICRvcDIgIiNzZXQgdmFycyhjbG9ja19nYXRlX2NlbGxzKSA8bGlzdCBvZiBjbG9jayBnYXRpbmcgY2VsbHM+IgotcHV0cyAkb3AyICIjc2V0IHZhcnMoY2xvY2tfZ2F0ZV9jbG9uZSkgPHRydWUgfCBmYWxzZT4iCi1wdXRzICRvcDIgIiNzZXQgdmFycyhjbG9ja19lY28pICAgICAgICA8cHJlX3JvdXRlIHwgcG9zdF9yb3V0ZSB8IGJvdGggfCBub25lPiIKLXB1dHMgJG9wMiAiIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iCi1wdXRzICRvcDIgIiNzZXQgdmFycyhjbGtfdHJlZV90b3BfbGF5ZXIpICAgICA8dHJlZV90b3BfcHJlZmVycmVkX2xheWVyPiIKLXB1dHMgJG9wMiAiI3NldCB2YXJzKGNsa190cmVlX2JvdHRvbV9sYXllcikgIDx0cmVlX2JvdHRvbV9wcmVmZXJyZWRfbGF5ZXI+ICIKLXB1dHMgJG9wMiAiI3NldCB2YXJzKGNsa190cmVlX25kcikgICAgICAgICAgIDx0cmVlX25vbl9kZWZhdWx0X3J1bGU+IgotcHV0cyAkb3AyICIjc2V0IHZhcnMoY2xrX3RyZWVfc2hpZWxkX25ldCkgICAgPHRyZWVfc2hpZWxkX25ldD4gIgotcHV0cyAkb3AyICIjc2V0IHZhcnMoY2xrX2xlYWZfdG9wX2xheWVyKSAgICAgPGxlYWZfdG9wX3ByZWZlcnJlZF9sYXllcj4iCi1wdXRzICRvcDIgIiNzZXQgdmFycyhjbGtfbGVhZl9ib3R0b21fbGF5ZXIpICA8bGVhZl9ib3R0b21fcHJlZmVycmVkX2xheWVyPiIKLXB1dHMgJG9wMiAiI3NldCB2YXJzKGN0c19sZWFmX25kcikgICAgICAgICAgIDxsZWFmX25vbl9kZWZhdWx0X2xheWVyPiIKLXB1dHMgJG9wMiAiIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iCi1wdXRzICRvcDIgIiMgQWRkaXRpb25hbCB2YXJpYWJsZXMgdG8gZW5hYmxlL3N1cHBvcnQgY2NvcHQiCi1wdXRzICRvcDIgIiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIgotcHV0cyAkb3AyICIjc2V0IHZhcnMoY3RzX2VuZ2luZSkgPGNsb2NrRGVzaWduIHwgY2NvcHREZXNpZ24+IgotcHV0cyAkb3AyICIjc2V0IHZhcnMoY3RzX2J1ZmZlcl9jZWxscykgPGxpc3Qgb2YgYnVmZmVycz4iCi1wdXRzICRvcDIgIiNzZXQgdmFycyhjdHNfaW52ZXJ0ZXJfY2VsbHMpIDxsaXN0IG9mIGludmVydGVycz4iCi1wdXRzICRvcDIgIiNzZXQgdmFycyhjdHNfdXNlX2ludmVydGVycykgPHRydWUgfCBmYWxzZT4iCi1wdXRzICRvcDIgIiNzZXQgdmFycyhjdHNfaW9fb3B0KSA8b24gc2Vjb25kYXJ5IG9mZj4iCi0jcHV0cyAkb3AyICIjc2V0IHZhcnMoY2NvcHRfaW50ZWdyYXRpb24pIDxuYXRpdmUgfCBzY3JpcHRlZD4iCi0jcHV0cyAkb3AyICIjc2V0IHZhcnMoY2NvcHRfZXhlY3V0YWJsZSkgPHBhdGggdG8gY2NvcHQgZXhlY3V0YWJsZT4iCi0KLXB1dHMgJG9wMiAiIgotcHV0cyAkb3AyICIjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyIKLXB1dHMgJG9wMiAiIyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9wdGltaXphdGlvbiBPcHRpb25zIgotcHV0cyAkb3AyICIjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIgotcHV0cyAkb3AyICIjIEZvciBkaWZmaWN1bHQgdGltaW5nIGRlc2lnbnMsICdzZXQgdmFycyhoaWdoX3RpbWluZ19lZmZvcnQpIHRydWUnIgotcHV0cyAkb3AyICIjIFRoaXMgZW5hYmxlcyBhIHZhcmlldHkgb2Ygb3B0aW9ucyB0aHJvdWdob3V0IHRoZSBmbG93IGZvciBvcHRpbWFsIgotcHV0cyAkb3AyICIjIFFvUiBhdCB0aGUgZXhwZW5zZSBvZiBydW50aW1lIgotcHV0cyAkb3AyICIjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIgotcHV0cyAkb3AyICIjc2V0IHZhcnMoaGlnaF90aW1pbmdfZWZmb3J0KSAgICAgICAgICAgICA8dHJ1ZSB8IGZhbHNlPiIKLXB1dHMgJG9wMiAiIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIKLSNwdXRzICRvcDIgIiNzZXQgdmFycyhjcml0aWNhbF9yYW5nZSkgICAgICAgICAgICAgICAgIDxmbG9hdD4iCi1wdXRzICRvcDIgIiNzZXQgdmFycyhwcmVzZXJ2ZV9hc3NlcnRpb25zKSAgICAgICAgICAgIDx0cnVlIHwgZmFsc2U+IiAKLXB1dHMgJG9wMiAiI3NldCB2YXJzKGNsb2NrX2dhdGVfYXdhcmVfb3B0KSAgICAgICAgICAgPHRydWUgfCBmYWxzZT4iCi0jcHV0cyAkb3AyICIjc2V0IHZhcnMocG93ZXJfZWZmb3J0KSAgICAgICAgICAgICAgICAgICA8bm9uZSB8IGxvdyB8IGhpZ2g+IgotI3B1dHMgJG9wMiAiI3NldCB2YXJzKHBvd2VyX3JhdGlvKSAgICAgICAgICAgICAgICAgICAgPGZsb2F0PiIKLXB1dHMgJG9wMiAiI3NldCB2YXJzKGZpeF9ob2xkX2FsbG93X3Ruc19kZWdyYWRhdGlvbikgPHRydWUgfCBmYWxzZT4iCi1wdXRzICRvcDIgIiNzZXQgdmFycyh1c2VmdWxfc2tldykgICAgICAgICAgICAgICAgICAgIDx0cnVlIHwgZmFsc2U+IgotI3B1dHMgJG9wMiAiI3NldCB2YXJzKHNrZXdfYnVmZmVycykgICAgICAgICAgICAgICAgICAgPHRydWUgfCBmYWxzZT4iCi1wdXRzICRvcDIgIiNzZXQgdmFycyhmaXhfaG9sZCkgICAgICAgICAgICAgICAgICAgICAgIDxmYWxzZSB8IHBvc3RjdHMgfCBwb3N0cm91dGUgPiIKLXB1dHMgJG9wMiAiI3NldCB2YXJzKGZpeF9ob2xkX2lnbm9yZV9pb3MpICAgICAgICAgICAgPHRydWUgfCBmYWxzZT4iCi1wdXRzICRvcDIgIiNzZXQgdmFycyhkZWxheV9jZWxscykgICAgICAgICAgICAgICAgICAgIDxsaXN0IG9mIGRlbGF5IGNlbGxzPiIKLXB1dHMgJG9wMiAiI3NldCB2YXJzKGRvbnRfdXNlX2xpc3QpICAgICAgICAgICAgICAgICAgPGxpc3Qgb2YgY2VsbHM+IgotcHV0cyAkb3AyICIjc2V0IHZhcnMoZG9udF91c2VfZmlsZSkgICAgICAgICAgICAgICAgICA8ZmlsZSBvZiBkb250IHVzZSBjb21tYW5kcz4iCi1wdXRzICRvcDIgIiNzZXQgdmFycyh1c2VfbGlzdCkgICAgICAgICAgICAgICAgICAgICAgIDxsaXN0IG9mIGNlbGxzPiIKLXB1dHMgJG9wMiAiIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIKLWZvcmVhY2ggb3B0aW9uIFtnZXRPcHRNb2RlIC1xdWlldF0gewotICAgaWYge1tsaW5kZXggJG9wdGlvbiAwXSA9PSAiY3JpdGljYWxSYW5nZSJ9IHsKLSAgICAgIHB1dHMgJG9wMiAiI3NldCB2YXJzKGNyaXRpY2FsX3JhbmdlKSAgICAgICAgICAgICAgICAgW2xpbmRleCAkb3B0aW9uIDFdIgotICAgfQotICAgaWYge1tsaW5kZXggJG9wdGlvbiAwXSA9PSAicHJlc2VydmVBc3NlcnRpb25zIn0gewotICAgICAgcHV0cyAkb3AyICJzZXQgdmFycyhwcmVzZXJ2ZV9hc3NlcnRpb25zKSAgICAgICAgICAgIFtsaW5kZXggJG9wdGlvbiAxXSIKLSAgIH0gCi0jICAgaWYge1tsaW5kZXggJG9wdGlvbiAwXSA9PSAibGVha2FnZVBvd2VyRWZmb3J0In0gewotIyAgICAgIHB1dHMgJG9wMiAic2V0IHZhcnMobGVha2FnZV9wb3dlcl9lZmZvcnQpICAgICAgICAgICBbbGluZGV4ICRvcHRpb24gMV0iCi0jICAgfQotIyAgIGlmIHtbbGluZGV4ICRvcHRpb24gMF0gPT0gImR5bmFtaWNQb3dlckVmZm9ydCJ9IHsKLSMgICAgICBwdXRzICRvcDIgInNldCB2YXJzKGR5bmFtaWNfcG93ZXJfZWZmb3J0KSAgICAgICAgICAgW2xpbmRleCAkb3B0aW9uIDFdIgotIyAgIH0KLSAgIGlmIHtbbGluZGV4ICRvcHRpb24gMF0gPT0gImZpeEhvbGRBbGxvd1NldHVwVG5zRGVncmFkZSJ9IHsKLSAgICAgIHB1dHMgJG9wMiAic2V0IHZhcnMoZml4X2hvbGRfYWxsb3dfdG5zX2RlZ3JhZGF0aW9uKSBbbGluZGV4ICRvcHRpb24gMV0iCi0gICB9Ci0gICBpZiB7W2xpbmRleCAkb3B0aW9uIDBdID09ICJjbGtHYXRlQXdhcmUifSB7Ci0gICAgICBwdXRzICRvcDIgInNldCB2YXJzKGNsb2NrX2dhdGVfYXdhcmVfb3B0KSAgICAgICAgICAgW2xpbmRleCAkb3B0aW9uIDFdIgotICAgfQotICAgaWYge1tsaW5kZXggJG9wdGlvbiAwXSA9PSAidXNlZnVsU2tldyJ9IHsKLSAgICAgIHB1dHMgJG9wMiAic2V0IHZhcnModXNlZnVsX3NrZXcpICAgICAgICAgICAgICAgICAgICBbbGluZGV4ICRvcHRpb24gMV0iCi0gICB9Ci19Ci0jZm9yZWFjaCBvcHRpb24gW2dldFVzZWZ1bFNrZXdNb2RlIC1xdWlldF0gewotIyAgIGlmIHtbbGluZGV4ICRvcHRpb24gMF0gPT0gInVzZUNlbGxzIn0gewotIyAgICAgIGlmIHtbbGluZGV4ICRvcHRpb24gMV0gIT0gIiJ9IHsKLSMgICAgICAgICBwdXRzICRvcDIgInNldCB2YXJzKHNrZXdfYnVmZmVycykgXCJcXCIKLSMgICAgICAgICBmb3JlYWNoIGNlbGwgW2xpbmRleCAkb3B0aW9uIDFdIHsKLSMgICAgICAgICAgICBwdXRzICRvcDIgIiAgICRjZWxsIFxcIgotIyAgICAgICAgIH0KLSMgICAgICAgICBwdXRzICRvcDIgIlwiIiAKLSMgICAgICB9IAotIyAgIH0KLSN9Ci1jYXRjaCB7c2V0IGZvbyBbZ2V0X2xpbmVfbWF0Y2ggInNldCBkb24ndCB1c2UgYnkgVXNlciIgW2dldExvZ0ZpbGVOYW1lXV19Ci1pZiB7W2luZm8gZXhpc3RzIGZvb10gJiYgKCRmb28gIT0gIiIpIH0gewotICAgcHV0cyAkb3AyICJzZXQgdmFycyhkb250X3VzZV9saXN0KSBcIlxcIgotICAgZm9yZWFjaCBsaW5lIFtnZXRfbGluZV9tYXRjaCAic2V0IGRvbid0IHVzZSBieSBVc2VyIiBbZ2V0TG9nRmlsZU5hbWVdIDBdIHsKLSMgICAgICBsYXBwZW5kIHZhcnMoZG9udF91c2VfbGlzdCkgW2xpbmRleCBbc3BsaXQgW2xpbmRleCAkbGluZSAwXSAiLyJdIDFdCi0gICAgICAgcHV0cyAkb3AyICIgICBbbGluZGV4IFtzcGxpdCBbbGluZGV4ICRsaW5lIDBdICIvIl0gMV0gXFwiCi0gICB9Ci0gICBwdXRzICRvcDIgIlwiIgotfQotcHV0cyAkb3AyICIjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyIKLXB1dHMgJG9wMiAiIyAgICAgICAgICAgICAgICAgICAgICAgICAgICBQb3dlciBBbmFseXNpcyBPcHRpb25zIgotcHV0cyAkb3AyICIjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIKLXB1dHMgJG9wMiAiI3NldCB2YXJzKGFjdGl2aXR5X2ZpbGUpICAgICAgICA8YWN0aXZpdHkgZmlsZT4iCi1wdXRzICRvcDIgIiNzZXQgdmFycyhhY3Rpdml0eV9maWxlX2Zvcm1hdCkgPFRDRiB8IFNBRiB8IFZDRD4iCi1wdXRzICRvcDIgIiNzZXQgdmFycyhyZXBvcnRfcG93ZXIpICAgICAgICAgPHRydWUgb3IgZmFsc2U+IgotcHV0cyAkb3AyICIjc2V0IHZhcnMocG93ZXJfYW5hbHlzaXNfdmlldykgIDxwb3dlciBhbmFseXNpcyB2aWV3PiIKLXB1dHMgJG9wMiAiIgotcHV0cyAkb3AyICIjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyIKLXB1dHMgJG9wMiAiIyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5hbm9yb3V0ZSBPcHRpb25zIgotcHV0cyAkb3AyICIjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIKLXB1dHMgJG9wMiAiI3NldCB2YXJzKG11bHRpX2N1dF9lZmZvcnQpICAgICAgICA8bG93IHwgbWVkaXVtIHwgaGlnaD4iCi1wdXRzICRvcDIgIiNzZXQgdmFycyhhbnRlbm5hX2Rpb2RlKSAgICAgICAgICAgPGNlbGwgbmFtZT4iCi1wdXRzICRvcDIgIiNzZXQgdmFycyhsaXRob19kcml2ZW5fcm91dGluZykgICAgPHRydWUgfCBmYWxzZT4iCi1wdXRzICRvcDIgIiNzZXQgdmFycyh2ZXJpZnlfbGl0aG8pICAgICAgICAgICAgPHRydWUgfCBmYWxzZT4iCi1wdXRzICRvcDIgIiNzZXQgdmFycyhscGFfdGVjaF9maWxlKSAgICAgICAgICAgPGZpbGUgbmFtZT4iCi1wdXRzICRvcDIgIiNzZXQgdmFycyhmaXhfbGl0aG8pICAgICAgICAgICAgICAgPHRydWUgfCBmYWxzZT4iCi1wdXRzICRvcDIgIiNzZXQgdmFycyhscGFfY29uZl9maWxlKSAgICAgICAgICAgPGZpbGUgbmFtZT4iCi1wdXRzICRvcDIgIiNzZXQgdmFycyhwb3N0cm91dGVfc3ByZWFkX3dpcmVzKSAgPHRydWUgfCBmYWxzZT4iCi1wdXRzICRvcDIgIiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIgotZm9yZWFjaCBvcHRpb24gW2dldE5hbm9Sb3V0ZU1vZGUgLXF1aWV0XSB7Ci0gICBpZiB7W2xpbmRleCAkb3B0aW9uIDBdID09ICJkcm91dGVVc2VNdWx0aUN1dFZpYUVmZm9ydCJ9IHsKLSAgICAgIHB1dHMgJG9wMiAic2V0IHZhcnMobXVsdGlfY3V0X2VmZm9ydCkgICAgIFtsaW5kZXggJG9wdGlvbiAxXSIKLSAgIH0KLSAgIGlmIHtbbGluZGV4ICRvcHRpb24gMF0gPT0gInJvdXRlV2l0aExpdGhvRHJpdmVuIn0gewotICAgICAgcHV0cyAkb3AyICJzZXQgdmFycyhsaXRob19kcml2ZW5fcm91dGluZykgW2xpbmRleCAkb3B0aW9uIDFdIgotICAgfQotfQotCi1wdXRzICRvcDIgIiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIgotcHV0cyAkb3AyICIjICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRXh0cmFjdGlvbiBPcHRpb25zIgotcHV0cyAkb3AyICIjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIKLXB1dHMgJG9wMiAiI3NldCB2YXJzKGNvdXBsaW5nX2NfdGhyZXNoKSAgICAgICA8ZmxvYXQ+IgotcHV0cyAkb3AyICIjc2V0IHZhcnMocmVsYXRpdmVfY190aHJlc2gpICAgICAgIDxmbG9hdD4iCi1wdXRzICRvcDIgIiNzZXQgdmFycyh0b3RhbF9jX3RocmVzaCkgICAgICAgICAgPGZsb2F0PiIKLXB1dHMgJG9wMiAiIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iCi1mb3JlYWNoIG9wdGlvbiBbZ2V0RXh0cmFjdFJDTW9kZSAtcXVpZXRdIHsKLSAgIGlmIHtbbGluZGV4ICRvcHRpb24gMF0gPT0gImNvdXBsaW5nX2NfdGgifSB7Ci0gICAgICBwdXRzICRvcDIgIiNzZXQgdmFycyhjb3VwbGluZ19jX3RocmVzaCkgICAgICAgW2xpbmRleCAkb3B0aW9uIDFdIgotICAgfQotICAgaWYge1tsaW5kZXggJG9wdGlvbiAwXSA9PSAicmVsYXRpdmVfY190aCJ9IHsKLSAgICAgIHB1dHMgJG9wMiAiI3NldCB2YXJzKHJlbGF0aXZlX2NfdGhyZXNoKSAgICAgICBbbGluZGV4ICRvcHRpb24gMV0iCi0gICB9Ci0gICBpZiB7W2xpbmRleCAkb3B0aW9uIDBdID09ICJ0b3RhbF9jX3RoIn0gewotICAgICAgcHV0cyAkb3AyICIjc2V0IHZhcnModG90YWxfY190aHJlc2gpICAgICAgICAgIFtsaW5kZXggJG9wdGlvbiAxXSIKLSAgIH0KLX0KLXB1dHMgJG9wMiAiIyBTaWdub2ZmIGV4dHJhY3Rpb24gcmVxdWlyZXMgcXJjX3RlY2ggZmlsZTsgaWYgeW91IGRvbnQgaGF2ZSBvbmUsIHBsZWFzZSBzd2l0Y2ggdG8gZWZmb3J0IGxvdy4iCi1wdXRzICRvcDIgIiMgQnV0IGtlZXAgaW4gbWluZCwgZWZmb3J0IGxvdyBpcyBOT1QgYWxsb3dlZCBmb3IgcHJvY2VzcyBub2RlcyAzMm5tIGFuZCBiZWxvdyIKLXB1dHMgJG9wMiAiIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iCi1wdXRzICRvcDIgIiNzZXQgdmFycyhwb3N0cm91dGVfZXh0cmFjdGlvbl9lZmZvcnQpIDxsb3cgfCBtZWRpdW0gfCBoaWdoPiIKLXB1dHMgJG9wMiAiI3NldCB2YXJzKHNpZ25vZmZfZXh0cmFjdGlvbl9lZmZvcnQpICAgPGxvdyB8IG1lZGl1bSB8IGhpZ2ggfCBzaWdub2ZmPiIKLXB1dHMgJG9wMiAiIgotcHV0cyAkb3AyICIjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyIKLXB1dHMgJG9wMiAiIyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNpZ25hbCBJbnRlZ3JpdHkgT3B0aW9ucyIKLXB1dHMgJG9wMiAiIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iCi1wdXRzICRvcDIgIiNzZXQgdmFycyhkZWx0YV9kZWxheV90aHJlc2hvbGQpICA8ZmxvYXQ+IChpbiBuYW5vc2Vjb25kcykiCi1wdXRzICRvcDIgIiNzZXQgdmFycyhjZWx0aWNfc2V0dGluZ3MpICAgICAgICA8c3RyaW5nPiIKLXB1dHMgJG9wMiAiI3NldCB2YXJzKHNpX2FuYWx5c2lzX3R5cGUpICAgICAgIDxkZWZhdWx0IHwgcGVzc2ltaXN0aWM+IgotcHV0cyAkb3AyICIjc2V0IHZhcnMoYWNjZXB0YWJsZV93bnMpICAgICAgICAgPGZsb2F0PiIKLXB1dHMgJG9wMiAiIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iCi1mb3JlYWNoIG9wdGlvbiBbZ2V0U0lNb2RlIC1xdWlldF0gewotICAgaWYge1tsaW5kZXggJG9wdGlvbiAwXSA9PSAiZGVsdGFEZWxheVRocmVzaG9sZCJ9IHsKLSAgICAgIHB1dHMgJG9wMiAic2V0IHZhcnMoZGVsdGFfZGVsYXlfdGhyZXNob2xkKSBbbGluZGV4ICRvcHRpb24gMV0iCi0gICB9Ci0gICBpZiB7W2xpbmRleCAkb3B0aW9uIDBdID09ICJpbnNDZWx0SUNQcmVUQ0wifSB7Ci0gICAgICBwdXRzICRvcDIgInNldCB2YXJzKGNlbHRpY19zZXR0aW5ncykgICAgICAgW2xpbmRleCAkb3B0aW9uIDFdIgotICAgfQotICAgaWYge1tsaW5kZXggJG9wdGlvbiAwXSA9PSAiYW5hbHlzaXNUeXBlIn0gewotICAgICAgcHV0cyAkb3AyICJzZXQgdmFycyhzaV9hbmFseXNpc190eXBlKSAgICAgICBbbGluZGV4ICRvcHRpb24gMV0iCi0gICB9Ci19Ci0KLXB1dHMgJG9wMiAiIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMiCi1wdXRzICRvcDIgIiMgT3B0aW9uYWxseSBkZWZpbmUgdGhlIGZvbGxvd2luZyB3aGVuIGFwcGxpY2FibGUiCi1wdXRzICRvcDIgIiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIgotcHV0cyAkb3AyICIjc2V0IHZhcnMoYXNzaWduX2J1ZmZlcikgICAgIHsxIC1idWZmZXIgPGJ1ZmZlciBuYW1lPn0iCi1wdXRzICRvcDIgIiNzZXQgdmFycyhidWZmZXJfdGllX2Fzc2lnbikgPHRydWUgfCBmYWxzZT4iCi1wdXRzICRvcDIgIiNzZXQgdmFycyhqdGFnX3Jvd3MpICAgICAgICAgPG51bWJlciBvZiByb3dzIGZvciBqdGFnIHBsYWNlbWVudD4iCi1wdXRzICRvcDIgIiNzZXQgdmFycyhqdGFnX2NlbGxzKSAgICAgICAgPGxpc3Qgb2YganRhZyBjZWxscz4iCi1wdXRzICRvcDIgIiNzZXQgdmFycyhzcGFyZV9jZWxscykgICAgICAgPGxpc3Qgb2Ygc3BhcmUgY2VsbHMgaW5zdGFuY2VzPiIKLQotCi1wdXRzICRvcDIgIiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIgotcHV0cyAkb3AyICIjIEJlbG93IGFyZSB0aGUgYXZhaWxhYmxlIHBsdWctaW5zIGZvciB0aGUgZmxhdCBmb3VuZGF0aW9uIGZsb3cuICBFYWNoICIKLXB1dHMgJG9wMiAiIyBzaG91bGQgcG9pbnQgdG8gYSBmaWxlLiBJZiB0aGUgZmlsZSBkb2Vzbid0IGV4aXN0LCB0aGUgZmxvdyB3aWxsIHByaW50IgotcHV0cyAkb3AyICIjIGEgd2FybmluZyBhbiBjb250aW51ZS4gIFRoZSBwbGFjZV90Y2wgYW5kIGN0c190Y2wgYXJlIHVuaXF1ZSBpbiB0aGF0ICIKLXB1dHMgJG9wMiAiIyB0aGV5IFJFUExBQ0UgdGhlIHBsYWNlRGVzaWduIGFuZCBjbG9ja0Rlc2lnbiBjYWxscywgcmVzcGVjdGl2ZWx5LiIKLXB1dHMgJG9wMiAiIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iCi1wdXRzICRvcDIgInNldCB2YXJzKGFsd2F5c19zb3VyY2VfdGNsKSAgICAgICAgICAgXCR2YXJzKHBsdWdfZGlyKS9hbHdheXNfc291cmNlLnRjbCIKLXB1dHMgJG9wMiAic2V0IHZhcnMoZmluYWxfYWx3YXlzX3NvdXJjZV90Y2wpICAgICBcJHZhcnMocGx1Z19kaXIpL2ZpbmFsX2Fsd2F5c19zb3VyY2UudGNsIgotcHV0cyAkb3AyICJzZXQgdmFycyhwcmVfaW5pdF90Y2wpICAgICAgICAgICAgICAgIFwkdmFycyhwbHVnX2RpcikvcHJlX2luaXQudGNsIgotcHV0cyAkb3AyICJzZXQgdmFycyhwb3N0X2luaXRfdGNsKSAgICAgICAgICAgICAgIFwkdmFycyhwbHVnX2RpcikvcG9zdF9pbml0LnRjbCIKLXB1dHMgJG9wMiAic2V0IHZhcnMocHJlX3BsYWNlX3RjbCkgICAgICAgICAgICAgICBcJHZhcnMocGx1Z19kaXIpL3ByZV9wbGFjZS50Y2wiCi1wdXRzICRvcDIgIiNzZXQgdmFycyhwbGFjZV90Y2wpICAgICAgICAgICAgICAgICAgXCR2YXJzKHBsdWdfZGlyKS9wbGFjZS50Y2wiCi1wdXRzICRvcDIgInNldCB2YXJzKHBvc3RfcGxhY2VfdGNsKSAgICAgICAgICAgICAgXCR2YXJzKHBsdWdfZGlyKS9wb3N0X3BsYWNlLnRjbCIKLXB1dHMgJG9wMiAic2V0IHZhcnMocHJlX3ByZWN0c190Y2wpICAgICAgICAgICAgICBcJHZhcnMocGx1Z19kaXIpL3ByZV9wcmVjdHMudGNsIgotcHV0cyAkb3AyICJzZXQgdmFycyhwb3N0X3ByZWN0c190Y2wpICAgICAgICAgICAgIFwkdmFycyhwbHVnX2RpcikvcG9zdF9wcmVjdHMudGNsIgotcHV0cyAkb3AyICJzZXQgdmFycyhwcmVfY3RzX3RjbCkgICAgICAgICAgICAgICAgIFwkdmFycyhwbHVnX2RpcikvcHJlX2N0cy50Y2wiCi1wdXRzICRvcDIgIiNzZXQgdmFycyhjdHNfdGNsKSAgICAgICAgICAgICAgICAgICAgXCR2YXJzKHBsdWdfZGlyKS9jdHMudGNsIgotcHV0cyAkb3AyICJzZXQgdmFycyhwb3N0X2N0c190Y2wpICAgICAgICAgICAgICAgIFwkdmFycyhwbHVnX2RpcikvcG9zdF9jdHMudGNsIgotcHV0cyAkb3AyICJzZXQgdmFycyhwcmVfcG9zdGN0c190Y2wpICAgICAgICAgICAgIFwkdmFycyhwbHVnX2RpcikvcHJlX3Bvc3RjdHMudGNsIgotcHV0cyAkb3AyICJzZXQgdmFycyhwb3N0X3Bvc3RjdHNfdGNsKSAgICAgICAgICAgIFwkdmFycyhwbHVnX2RpcikvcG9zdF9wb3N0Y3RzLnRjbCIKLXB1dHMgJG9wMiAic2V0IHZhcnMocHJlX3JvdXRlX3RjbCkgICAgICAgICAgICAgICBcJHZhcnMocGx1Z19kaXIpL3ByZV9yb3V0ZS50Y2wiCi1wdXRzICRvcDIgInNldCB2YXJzKHBvc3Rfcm91dGVfdGNsKSAgICAgICAgICAgICAgXCR2YXJzKHBsdWdfZGlyKS9wb3N0X3JvdXRlLnRjbCIKLXB1dHMgJG9wMiAic2V0IHZhcnMocHJlX3Bvc3RjdHNfaG9sZF90Y2wpICAgICAgICBcJHZhcnMocGx1Z19kaXIpL3ByZV9wb3N0Y3RzX2hvbGQudGNsIgotcHV0cyAkb3AyICJzZXQgdmFycyhwb3N0X3Bvc3RjdHNfaG9sZF90Y2wpICAgICAgIFwkdmFycyhwbHVnX2RpcikvcG9zdF9wb3N0Y3RzX2hvbGQudGNsIgotcHV0cyAkb3AyICJzZXQgdmFycyhwcmVfcG9zdHJvdXRlX3RjbCkgICAgICAgICAgIFwkdmFycyhwbHVnX2RpcikvcHJlX3Bvc3Ryb3V0ZS50Y2wiCi1wdXRzICRvcDIgInNldCB2YXJzKHBvc3RfcG9zdHJvdXRlX3RjbCkgICAgICAgICAgXCR2YXJzKHBsdWdfZGlyKS9wb3N0X3Bvc3Ryb3V0ZS50Y2wiCi1wdXRzICRvcDIgInNldCB2YXJzKHByZV9wb3N0cm91dGVfaG9sZF90Y2wpICAgICAgXCR2YXJzKHBsdWdfZGlyKS9wcmVfcG9zdHJvdXRlX2hvbGQudGNsIgotcHV0cyAkb3AyICJzZXQgdmFycyhwb3N0X3Bvc3Ryb3V0ZV9ob2xkX3RjbCkgICAgIFwkdmFycyhwbHVnX2RpcikvcG9zdF9wb3N0cm91dGVfaG9sZC50Y2wiCi1wdXRzICRvcDIgInNldCB2YXJzKHByZV9zaWdub2ZmX3RjbCkgICAgICAgICAgICAgXCR2YXJzKHBsdWdfZGlyKS9wcmVfc2lnbm9mZi50Y2wiCi1wdXRzICRvcDIgInNldCB2YXJzKHBvc3Rfc2lnbm9mZl90Y2wpICAgICAgICAgICAgXCR2YXJzKHBsdWdfZGlyKS9wb3N0X3NpZ25vZmYudGNsIgotcHV0cyAkb3AyICIjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIgotcHV0cyAkb3AyICIjIEJlbG93IGFyZSB0aGUgcGx1Zy1pbnMgYXZhaWxhYmxlIGZvciB0aGUgaGllcmFyY2hpY2FsIGZsb3cgLi4uIG5vdGUiCi1wdXRzICRvcDIgIiMgdGhlIGFkZGl0aW9uYWwgcGx1Zy1pbnMgZm9yIHRoZSBwYXJ0aXRpb24gYW5kIGFzc2VtYmxlIHN0ZXBzLiAgIgotcHV0cyAkb3AyICIjIEtlZXAgaW4gbWluZCAiCi1wdXRzICRvcDIgIiMgICAgLSBUaGUgcGFydGl0aW9uaW5nIHN0ZXAgd2lsbCBhbHNvIGxvYWQgdGhlIHByZS9wb3N0IGluaXQiCi1wdXRzICRvcDIgIiMgICAgICBhbmQgcHJlL3Bvc3QgcGxhY2UgcGx1Zy1pbnMgKHNlZSBhYm92ZSkuIgotcHV0cyAkb3AyICIjICAgIC0gVGhlIGFzc2VtYmxlIHN0ZXAgd2lsbCBhbHNvIGxvYWQgdGhlIHByZS9wb3N0IHNpZ25vZmYiCi1wdXRzICRvcDIgIiMgICAgICBwbHVnLWlucyBhcyB3ZWxsLiAgIgotcHV0cyAkb3AyICIjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIgotcHV0cyAkb3AyICIjc2V0IHZhcnMoYWx3YXlzX3NvdXJjZV90Y2wpICAgICAgICAgIFwkdmFycyhwbHVnX2RpcikvcG9zdF9zaWdub2ZmLnRjbCIKLXB1dHMgJG9wMiAiI3NldCB2YXJzKGZpbmFsX2Fsd2F5c19zb3VyY2VfdGNsKSAgICBcJHZhcnMocGx1Z19kaXIpL2ZpbmFsX2Fsd2F5c19zb3VyY2UudGNsIgotcHV0cyAkb3AyICIjc2V0IHZhcnMocHJlX21vZGVsX2dlbl90Y2wpICAgICAgICAgIFwkdmFycyhwbHVnX2RpcikvcHJlX21vZGVsX2dlbi50Y2wiCi1wdXRzICRvcDIgIiNzZXQgdmFycyhwb3N0X21vZGVsX2dlbl90Y2wpICAgICAgICAgXCR2YXJzKHBsdWdfZGlyKS9wb3N0X21vZGVsX2dlbi50Y2wiCi1wdXRzICRvcDIgIiNzZXQgdmFycyhwcmVfcGluX2Fzc2lnbl90Y2wpICAgICAgICAgXCR2YXJzKHBsdWdfZGlyKS9wcmVfcGluX2Fzc2lnbi50Y2wiCi1wdXRzICRvcDIgIiNzZXQgdmFycyhwb3N0X3Bpbl9hc3NpZ25fdGNsKSAgICAgICAgXCR2YXJzKHBsdWdfZGlyKS9wb3N0X3Bpbl9hc3NpZ24udGNsIgotcHV0cyAkb3AyICIjc2V0IHZhcnMocHJlX3BhcnRpdGlvbl90Y2wpICAgICAgICAgIFwkdmFycyhwbHVnX2RpcikvcHJlX3BhcnRpdGlvbi50Y2wiCi1wdXRzICRvcDIgIiNzZXQgdmFycyhwb3N0X3BhcnRpdGlvbl90Y2wpICAgICAgICAgXCR2YXJzKHBsdWdfZGlyKS9wb3N0X3BhcnRpdGlvbi50Y2wiCi1wdXRzICRvcDIgIiNzZXQgdmFycyhwcmVfYXNzZW1ibGVfdGNsKSAgICAgICAgICAgXCR2YXJzKHBsdWdfZGlyKS9wcmVfYXNzZW1ibGUudGNsIgotcHV0cyAkb3AyICIjc2V0IHZhcnMocG9zdF9hc3NlbWJsZV90Y2wpICAgICAgICAgIFwkdmFycyhwbHVnX2RpcikvcG9zdF9hc3NlbWJsZS50Y2wiCi1wdXRzICRvcDIgIiNzZXQgdmFycyhwcmVfc2lnbm9mZl90Y2wpICAgICAgICAgICAgXCR2YXJzKHBsdWdfZGlyKS9wcmVfc2lnbm9mZi50Y2wiCi1wdXRzICRvcDIgIiNzZXQgdmFycyhwb3N0X3NpZ25vZmZfdGNsKSAgICAgICAgICAgXCR2YXJzKHBsdWdfZGlyKS9wb3N0X3NpZ25vZmYudGNsIgotcHV0cyAkb3AyICIjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIgotcHV0cyAkb3AyICIjIEFsbCBvdGhlciBwbHVnLWlucyBhcmUgb25seSB1c2VkIGR1cmluZyB0aGUgZmxhdCBpbXBsZW1lbnRhdGlvbiIKLXB1dHMgJG9wMiAiIyBvZiB0aGUgcGFydGl0aW9ucy4gVG8gZW5hYmxlIHBsdWctaW5zIGZvciBwYXJ0aXRpb24gaW1wbGVtZW50YXRpb24iCi1wdXRzICRvcDIgIiMgZGVmaW5lIGluIHRoZSB2YXJzKDxwYXJ0Pixpbm5vdnVzX2NvbmZpZ190Y2wpIGZpbGUgZm9yIHRoYXQgcGFydGl0aW9uIgotcHV0cyAkb3AyICIjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIgotcHV0cyAkb3AyICIjIFRvIGluc2VydCBtZXRhbCBmaWxsIGR1cmluZyB0aGUgZmxvdyBkZWZpbmUgdGhlIGZvbGxvd2luZyB0d28gdmFyaWFibGVzOiIKLXB1dHMgJG9wMiAiIyAtIHZhcnMobWV0YWxmaWxsKSAgICBcW3ByZV9wb3N0cm91dGUsIHByZV9zaWdub2ZmXF0iCi1wdXRzICRvcDIgIiMgLSB2YXJzKG1ldGFsZmlsbF90Y2wpIDxwYXRoIHRvIG1ldGFsZmlsbCBwbHVnLWluIGZpbGU+IgotcHV0cyAkb3AyICIjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIgotcHV0cyAkb3AyICIjc2V0IHZhcnMobWV0YWxmaWxsKSAgICAgICAgICAgICAgICAgIHByZV9wb3N0cm91dGUiCi1wdXRzICRvcDIgIiNzZXQgdmFycyhtZXRhbGZpbGxfdGNsKSAgICAgICAgICAgICBcJHZhcnMocGx1Z19kaXIpL21ldGFsZmlsbC50Y2wiCi0KLXB1dHMgJG9wMiAiIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIgotcHV0cyAkb3AyICIjIERpc3RyaWJ1dGlvbiBzZXR1cCAuLi4gdmFycyhkaXN0cmlidXRlKSBjYW4gYmUgb25lIG9mIHRoZSBmb2xsb3dpbmc6IgotcHV0cyAkb3AyICIjIGxzZiwgcnNoLCBsb2NhbCwgb3IgY3VzdG9tIgotcHV0cyAkb3AyICIjIERlcGVuZGluZyBvbiB0aGUgdmFsdWUgb2YgdmFycyhkaXN0cmlidXRlKSwgYWRkaXRpb24gdmFyaWFibGVzIgotcHV0cyAkb3AyICIjIG1heSBiZSByZXF1aXJlZC4gIFNvbWUgZXhhbXBsZXMgYXJlIHNob3duIGJlbG93IgotcHV0cyAkb3AyICIjIEFsc28sIGEgdGltZW91dCBjYW4gYmUgc2V0ICh1bml0IGlzIHNlY29uZHMpIgotcHV0cyAkb3AyICIjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIgotcHV0cyAkb3AyICIjc2V0IHZhcnMoZGlzdHJpYnV0ZSkgICAgICAgICAgIGN1c3RvbSIKLXB1dHMgJG9wMiAiI3NldCB2YXJzKGRpc3RyaWJ1dGVfdGltZW91dCkgICAzNjAwIgotcHV0cyAkb3AyICIjc2V0IHZhcnMoY3VzdG9tLHNjcmlwdCkgICAgICAgIHsvZ3JpZC9zZmkvZmFybS9iaW4vZ3JpZHN1YiAtVyA3MjowMCAtUCBTT0M3LjEgLVIgXCJTRklBUkNIPT1PUFQ2NCAmJiBPU1JFTD09RUU0MFwiIC1xIGxueDY0fSIKLXB1dHMgJG9wMiAiI3NldCB2YXJzKGxzZixxdWV1ZSkgICAgICAgICAgICBsbng2NCIKLXB1dHMgJG9wMiAiI3NldCB2YXJzKGxzZixyZXNvdXJjZSkgICAgICAgICBcIlNGSUFSQ0g9PU9QVDY0ICYmIE9TUkVMPT1FRTQwXCIiCi1wdXRzICRvcDIgIiNzZXQgdmFycyhsc2YsYXJncykgICAgICAgICAgICAgXCItVyA3MjowMCAtUCBTT0M4LjFcIiIKLXB1dHMgJG9wMiAiI3NldCB2YXJzKGxvY2FsX2NwdXMpICAgICAgICAgICAyIgotcHV0cyAkb3AyICIjc2V0IHZhcnMocmVtb3RlX2hvc3RzKSAgICAgICAgIDIiCi1wdXRzICRvcDIgIiNzZXQgdmFycyhjcHVfcGVyX3JlbW90ZV9ob3N0KSAgMiIKLXB1dHMgJG9wMiAiI3NldCB2YXJzKHJzaCxob3N0cykgICAgICAgICAgICA8bGlzdCBvZiBob3N0cz4iCi1wdXRzICRvcDIgIiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyIKLXB1dHMgJG9wMiAiIyBDYXB0dXJlIHFvciBhbmQgcnVuIHRpbWUgbWV0cmljcyAuLi4iCi1wdXRzICRvcDIgIiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iCi1wdXRzICRvcDIgIiNzZXQgdmFycyhjYXB0dXJlX21ldHJpY3MpIGZhbHNlIgotcHV0cyAkb3AyICJzZXQgdmFycyhyZXBvcnRfcnVuX3RpbWUpIHRydWUiCi1wdXRzICRvcDIgIiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iCi1wdXRzICRvcDIgIiNzZXQgdmFycyhodG1sX3N1bW1hcnkpIDxmaWxlbmFtZT4iCi1wdXRzICRvcDIgIiNzZXQgdmFycyh0aW1lX2luZm9fcnB0KSA8ZmlsZW5hbWU+IgotcHV0cyAkb3AyICIjc2V0IHZhcnModGltZV9pbmZvX2RicykgPGZpbGVuYW1lPiIKLXB1dHMgJG9wMiAiIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIgotcHV0cyAkb3AyICIjIE1ha2VmaWxlIG9wdGlvbnMgLi4uIgotcHV0cyAkb3AyICIjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIgotcHV0cyAkb3AyICIjc2V0IHZhcnMobWFrZV90b29sKSA8aW5ub3Z1cyBleGVjdXRhYmxlPiIKLXB1dHMgJG9wMiAiI3NldCB2YXJzKG1ha2VfdG9vbF9hcmdzKSBcIi02NCAtbm93aW5cIiIKLXB1dHMgJG9wMiAiI3NldCB2YXJzKG1ha2Vfc3luX3Rvb2wpIDxyYyBleGVjdXRhYmxlPiIKLXB1dHMgJG9wMiAiI3NldCB2YXJzKG1ha2Vfc3luX3Rvb2xfYXJncykgXCItNjRcIiIKLXB1dHMgJG9wMiAiI3NldCB2YXJzKG1ha2VfYnJvd3NlcikgbW96aWxsYSIKLXB1dHMgJG9wMiAiIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIgotcHV0cyAkb3AyICIjIEFib3J0IGlmIHRoZXJlIGFyZSBlcnJvcnMgaW4gdGhlIHNldHVwLnRjbCIKLXB1dHMgJG9wMiAiIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIKLXB1dHMgJG9wMiAic2V0IHZhcnMoYWJvcnQpIHRydWUiCi1wdXRzICRvcDIgIiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyIKLXB1dHMgJG9wMiAiIyBTZW5kIG1haWwgZHVyaW5nIGZsb3cgZXhlY3V0aW9uOyAgdmFycyhtYWlsLHN0ZXBzKSBkZWZhdWx0cyB0byBBTEwgc3RlcHMuIgotcHV0cyAkb3AyICIjc2V0IHZhcnMobWFpbCx0bykgICAgICAgICAgICAgIFwiPGxpc3Qgb2YgZW1haWwgYWRkcmVzc2VzPlwiIgotcHV0cyAkb3AyICIjc2V0IHZhcnMobWFpbCxzdGVwcykgICAgICAgICAgIFwiPGxpc3Qgb2Ygc3RlcHM+XCIiCi1wdXRzICRvcDIgIiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyIKLXB1dHMgJG9wMSAicHV0cyBcIjxGRj4gRmluaXNoZWQgbG9hZGluZyBzZXR1cC50Y2wgZmlsZVwiIgotcHV0cyAkb3AyICJwdXRzIFwiPEZGPiBGaW5pc2hlZCBsb2FkaW5nIHRoZSBJTk5PVlVTIGNvbmZpZ3VyYXRpb24gZmlsZVwiIgotCi1jbG9zZSAkb3AxCi1jbG9zZSAkb3AyCi0KLVB1dHMgIjxGRj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIgotUHV0cyAiPEZGPiBGaW5pc2hlZCBnZW5lcmF0aW5nIHNldHVwIGZpbGUgXCJzZXR1cC5hdXRvLnRjbFwiIC4uLiAiCi1QdXRzICI8RkY+IHBsZWFzZSBlZGl0IGFuZCByZW5hbWUgdG8gc2V0dXAudGNsIHRvIGVuYWJsZSIKLVB1dHMgIjxGRj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIgotUHV0cyAiPEZGPiBGaW5pc2hlZCBnZW5lcmF0aW5nIElOTk9WVVMgY29uZmlnIGZpbGUgXCJpbm5vdnVzX2NvbmZpZy5hdXRvLnRjbFwiIC4uLiAiCi1QdXRzICI8RkY+IHBsZWFzZSBlZGl0IGFuZCByZW5hbWUgdG8gaW5ub3Z1c19jb25maWcudGNsIHRvIGVuYWJsZSIKLVB1dHMgIjxGRj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIgotI3B1dHMgIiAgICAgUGxlYXNlIGNoZWNrIGZvciBjb3JyZWN0bmVzcyBhbmQgYWRkIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gYXMgbmVjZXNzYXJ5IgotaWYge1tpbmZvIGV4aXN0cyBscGZpbGVdfSB7Ci0gICBjcmVhdGVfbHBfY29uZmlnX2ZpbGUKLSAgIFB1dHMgIjxGRj4gRmluaXNoZWQgZ2VuZXJhdGluZyBsb3cgcG93ZXIgY29uZmlnIGZpbGUgXCJscF9jb25maWcuYXV0by50Y2xcIiAuLi4gIgotICAgUHV0cyAiPEZGPiBwbGVhc2UgZWRpdCBhbmQgcmVuYW1lIHRvIGxwX2NvbmZpZy50Y2wgdG8gZW5hYmxlIgotICAgUHV0cyAiPEZGPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iCi19Ci1jcmVhdGVfaW52c190YWdfZmlsZQotUHV0cyAiPEZGPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iCi1QdXRzICI8RkY+IEZpbmlzaGVkIGdlbmVyYXRpbmcgSU5OT1ZVUyB0YWcgZmlsZSBcImludnMuYXV0by50Y2xcIiAuLi4gIgotUHV0cyAiPEZGPiBUaGlzIGZpbGUgaXMgZm9yIGRldGFpbGVkIGZsb3cgY3VzdG9taXphdGlvbiBhbmQgaW4gcHVyZWx5IG9wdGlvbmFsLiIKLVB1dHMgIjxGRj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIgotaWYge1tpbmZvIGV4aXN0cyBkb25lXX0geyAKLSAgIGZvcmVhY2ggdmFyIFthcnJheSBuYW1lcyBkb25lXSB7Ci0gICAgICB1bnNldCBkb25lKCR2YXIpCi0gICB9Ci19CmRpZmYgLS1naXQgYS9mbG93L3Buci9FWEFNUExFUy9JTk5PVlVTL0RFU0lHTi9TQ1JJUFRTL2dlbl9zZXR1cC50Y2wgYi9mbG93L3Buci9FWEFNUExFUy9JTk5PVlVTL0RFU0lHTi9TQ1JJUFRTL2dlbl9zZXR1cC50Y2wKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDA5OTIwNTAuLjAwMDAwMDAKLS0tIGEvZmxvdy9wbnIvRVhBTVBMRVMvSU5OT1ZVUy9ERVNJR04vU0NSSVBUUy9nZW5fc2V0dXAudGNsCisrKyAvZGV2L251bGwKQEAgLTEsMjE4OSArMCwwIEBACi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0jICAgICAgICAgICAgICAgICAgICAgICBDQURFTkNFIENPUFlSSUdIVCBOT1RJQ0UKLSMgICAgICAgICCpIDIwMDgtMjAxMyBDYWRlbmNlIERlc2lnbiBTeXN0ZW1zLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0jCi0jIFRoaXMgRm91bmRhdGlvbiBGbG93IGlzIHByb3ZpZGVkIGFzIGFuIGV4YW1wbGUgb2YgaG93IHRvIHBlcmZvcm0gc3BlY2lhbGl6ZWQKLSMgdGFza3MuCi0jCi0jIFRoaXMgd29yayBtYXkgbm90IGJlIGNvcGllZCwgcmUtcHVibGlzaGVkLCB1cGxvYWRlZCwgb3IgZGlzdHJpYnV0ZWQgaW4gYW55IHdheSwKLSMgaW4gYW55IG1lZGl1bSwgd2hldGhlciBpbiB3aG9sZSBvciBpbiBwYXJ0LCB3aXRob3V0IHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbgotIyBmcm9tIENhZGVuY2UuIE5vdHdpdGhzdGFuZGluZyBhbnkgcmVzdHJpY3Rpb25zIGhlcmVpbiwgc3ViamVjdCB0byBjb21wbGlhbmNlCi0jIHdpdGggdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mIHRoZSBDYWRlbmNlIHNvZnR3YXJlIGxpY2Vuc2UgYWdyZWVtZW50IHVuZGVyCi0jIHdoaWNoIHRoaXMgbWF0ZXJpYWwgd2FzIHByb3ZpZGVkLCB0aGlzIG1hdGVyaWFsIG1heSBiZSBjb3BpZWQgYW5kIGludGVybmFsbHkKLSMgZGlzdHJpYnV0ZWQgc29sZWx5IGZvciBpbnRlcm5hbCBwdXJwb3NlcyBmb3IgdXNlIHdpdGggQ2FkZW5jZSB0b29scy4KLSMKLSMgVGhpcyB3b3JrIGlzIENhZGVuY2UgaW50ZWxsZWN0dWFsIHByb3BlcnR5IGFuZCBtYXkgdW5kZXIgbm8gY2lyY3Vtc3RhbmNlcyBiZQotIyBnaXZlbiB0byB0aGlyZCBwYXJ0aWVzLCBuZWl0aGVyIGluIG9yaWdpbmFsIG5vciBpbiBtb2RpZmllZCB2ZXJzaW9ucywgd2l0aG91dAotIyBleHBsaWNpdCB3cml0dGVuIHBlcm1pc3Npb24gZnJvbSBDYWRlbmNlLiBUaGUgaW5mb3JtYXRpb24gY29udGFpbmVkIGhlcmVpbiBpcwotIyB0aGUgcHJvcHJpZXRhcnkgYW5kIGNvbmZpZGVudGlhbCBpbmZvcm1hdGlvbiBvZiBDYWRlbmNlIG9yIGl0cyBsaWNlbnNvcnMsIGFuZAotIyBpcyBzdXBwbGllZCBzdWJqZWN0IHRvLCBhbmQgbWF5IGJlIHVzZWQgb25seSBieSBDYWRlbmNlJ3MgY3VycmVudCBjdXN0b21lcnMKLSMgaW4gYWNjb3JkYW5jZSB3aXRoLCBhIHByZXZpb3VzbHkgZXhlY3V0ZWQgbGljZW5zZSBhZ3JlZW1lbnQgYmV0d2VlbiBDYWRlbmNlCi0jIGFuZCBpdHMgY3VzdG9tZXIuCi0jCi0jLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0jIFRISVMgTUFURVJJQUwgSVMgUFJPVklERUQgQlkgQ0FERU5DRSAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVECi0jIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GCi0jIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuCi0jIElOIE5PIEVWRU5UIFNIQUxMIENBREVOQ0UgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTAotIyBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLAotIyBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUICAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IKLSMgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyAgTUFURVJJQUwsIEVWRU4gSUYKLSMgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0KLXByb2MgY29udjJtbW1jIHt9IHsKLQotICAgZ2xvYmFsIHJkYV9JbnB1dAotCi0gICBpZiB7IVtpbmZvIGV4aXN0cyBzbG93X2xpYnNdfSB7Ci0gICAgICBzZXQgc2xvd19saWJzIFtsaXN0XQotICAgfSAKLSAgIGlmIHshW2luZm8gZXhpc3RzIGZhc3RfbGlic119IHsKLSAgICAgIHNldCBmYXN0X2xpYnMgW2xpc3RdCi0gICB9IAotCi0gICBpZiB7JHJkYV9JbnB1dCh1aV90aW1lbGliLG1heCkgIT0gIiJ9IHsKLSAgICAgIGZvcmVhY2ggbGliICRyZGFfSW5wdXQodWlfdGltZWxpYixtYXgpIHsKLSAgICAgICAgIGZvcmVhY2ggZ2xvYl9saWIgW2dsb2IgJGxpYl0gewotICAgICAgICAgICAgaWYge1tmaWxlIGlzZGlyZWN0b3J5ICRnbG9iX2xpYl19IHsKLSAgICAgICAgICAgICAgIGZvcmVhY2ggbmVzdGVkX2dsb2JfbGliIFtnbG9iICRnbG9iX2xpYi9cKl0gewotICAgICAgICAgICAgICAgICAgbGFwcGVuZCBzbG93X2xpYnMgJG5lc3RlZF9nbG9iX2xpYgotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIGxhcHBlbmQgc2xvd19saWJzICRnbG9iX2xpYgotICAgICAgICAgICAgfQotICAgICAgICAgfQotICAgICAgfQotICAgICAgZm9yZWFjaCBsaWIgJHJkYV9JbnB1dCh1aV90aW1lbGliKSB7Ci0gICAgICAgICBmb3JlYWNoIGdsb2JfbGliIFtnbG9iICRsaWJdIHsKLSAgICAgICAgICAgIGlmIHtbZmlsZSBpc2RpcmVjdG9yeSAkZ2xvYl9saWJdfSB7Ci0gICAgICAgICAgICAgICBmb3JlYWNoIG5lc3RlZF9nbG9iX2xpYiBbZ2xvYiAkZ2xvYl9saWIvXCpdIHsKLSAgICAgICAgICAgICAgICAgIGxhcHBlbmQgc2xvd19saWJzICRuZXN0ZWRfZ2xvYl9saWIKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBsYXBwZW5kIHNsb3dfbGlicyAkZ2xvYl9saWIKLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0KLSAgICAgIH0KLSAgICMgICBzZXQgc2xvd19saWJzIFtjb25jYXQgJHJkYV9JbnB1dCh1aV90aW1lbGliLG1heCkgJHJkYV9JbnB1dCh1aV90aW1lbGliKV0KLSAgIH0gZWxzZSB7Ci0gICAgICBmb3JlYWNoIGxpYiAkcmRhX0lucHV0KHVpX3RpbWVsaWIpIHsKLSAgICAgICAgIGZvcmVhY2ggZ2xvYl9saWIgW2dsb2IgJGxpYl0gewotICAgICAgICAgICAgaWYge1tmaWxlIGlzZGlyZWN0b3J5ICRnbG9iX2xpYl19IHsKLSAgICAgICAgICAgICAgIGZvcmVhY2ggbmVzdGVkX2dsb2JfbGliIFtnbG9iICRnbG9iX2xpYi9cKl0gewotICAgICAgICAgICAgICAgICAgbGFwcGVuZCBzbG93X2xpYnMgJG5lc3RlZF9nbG9iX2xpYgotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIGxhcHBlbmQgc2xvd19saWJzICRnbG9iX2xpYgotICAgICAgICAgICAgfQotICAgICAgICAgfQotICAgICAgfQotICAgIyAgIHNldCBzbG93X2xpYnMgJHJkYV9JbnB1dCh1aV90aW1lbGliKQotICAgfQotICAgaWYgeyRyZGFfSW5wdXQodWlfdGltZWxpYixtaW4pICE9ICIifSB7Ci0gICAgICBmb3JlYWNoIGxpYiAkcmRhX0lucHV0KHVpX3RpbWVsaWIsbWluKSB7Ci0gICAgICAgICBmb3JlYWNoIGdsb2JfbGliIFtnbG9iICRsaWJdIHsKLSAgICAgICAgICAgIGlmIHtbZmlsZSBpc2RpcmVjdG9yeSAkZ2xvYl9saWJdfSB7Ci0gICAgICAgICAgICAgICBmb3JlYWNoIG5lc3RlZF9nbG9iX2xpYiBbZ2xvYiAkZ2xvYl9saWIvXCpdIHsKLSAgICAgICAgICAgICAgICAgIGxhcHBlbmQgZmFzdF9saWJzICRuZXN0ZWRfZ2xvYl9saWIKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBsYXBwZW5kIGZhc3RfbGlicyAkZ2xvYl9saWIKLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0KLSAgICAgIH0KLSAgICAgIGZvcmVhY2ggbGliICRyZGFfSW5wdXQodWlfdGltZWxpYikgewotICAgICAgICAgZm9yZWFjaCBnbG9iX2xpYiBbZ2xvYiAkbGliXSB7Ci0gICAgICAgICAgICBpZiB7W2ZpbGUgaXNkaXJlY3RvcnkgJGdsb2JfbGliXX0gewotICAgICAgICAgICAgICAgZm9yZWFjaCBuZXN0ZWRfZ2xvYl9saWIgW2dsb2IgJGdsb2JfbGliL1wqXSB7Ci0gICAgICAgICAgICAgICAgICBsYXBwZW5kIGZhc3RfbGlicyAkbmVzdGVkX2dsb2JfbGliCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgbGFwcGVuZCBmYXN0X2xpYnMgJGdsb2JfbGliCi0gICAgICAgICAgICB9Ci0gICAgICAgICB9IAotICAgICAgfQotICAgIyAgIHNldCBmYXN0X2xpYnMgW2NvbmNhdCAkcmRhX0lucHV0KHVpX3RpbWVsaWIsbWluKSAkcmRhX0lucHV0KHVpX3RpbWVsaWIpXQotICAgfSBlbHNlIHsKLSAgICAgIHNldCBmYXN0X2xpYnMgJHNsb3dfbGlicwotICAgfQotICAgCi0gICAjcHV0cyAiLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iIAotICAgI3B1dHMgIlBRUlM6ICRzbG93X2xpYnMiCi0gICAjcHV0cyAiUFFSUzogJGZhc3RfbGlicyIKLSAgICNwdXRzICItLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIgCi0gICAKLSAgIHNldCBzZGNfZmlsZXMgW2xpc3RdCi0gICBmb3JlYWNoIGZpbGUgJHJkYV9JbnB1dCh1aV90aW1pbmdjb25fZmlsZSkgewotICAgICAgbGFwcGVuZCBzZGNfZmlsZXMgJGZpbGUKLSAgIH0KLSAgIAotICAgc2V0IGlsbV9zZGNfZmlsZXMgW2xpc3RdCi0gICBpZiB7W2luZm8gZXhpc3RzIHJkYV9JbnB1dCh1aV90aW1pbmdjb25fZmlsZSxmdWxsKV19IHsKLSAgICAgIGZvcmVhY2ggZmlsZSAkcmRhX0lucHV0KHVpX3RpbWluZ2Nvbl9maWxlLGZ1bGwpIHsKLSAgICAgICAgIGxhcHBlbmQgaWxtX3NkY19maWxlcyAkZmlsZQotICAgICAgfQotICAgfQotICAgCi0gICBpZiB7JHJkYV9JbnB1dCh1aV9jZGJfZmlsZSxtYXgpICE9ICIifSB7Ci0gICAgICBzZXQgc2xvd19jZGJzIFtjb25jYXQgJHJkYV9JbnB1dCh1aV9jZGJfZmlsZSxtYXgpICRyZGFfSW5wdXQodWlfY2RiX2ZpbGUpXQotICAgfSBlbHNlIHsKLSAgICAgIGlmIHskcmRhX0lucHV0KHVpX2NkYl9maWxlKSAhPSAiIn0gewotICAgICAgICAgc2V0IHNsb3dfY2RicyAkcmRhX0lucHV0KHVpX2NkYl9maWxlKQotICAgICAgfQotICAgfQotICAgaWYgeyRyZGFfSW5wdXQodWlfY2RiX2ZpbGUsbWluKSAhPSAiIn0gewotICAgICAgc2V0IGZhc3RfY2RicyBbY29uY2F0ICRyZGFfSW5wdXQodWlfY2RiX2ZpbGUsbWluKSAkcmRhX0lucHV0KHVpX2NkYl9maWxlKV0KLSAgIH0gZWxzZSB7Ci0gICAgICBpZiB7JHJkYV9JbnB1dCh1aV9jZGJfZmlsZSkgIT0gIiJ9IHsKLSAgICAgICAgIHNldCBmYXN0X2NkYnMgJHJkYV9JbnB1dCh1aV9jZGJfZmlsZSkKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHNsb3dfY2Ric10gJiYgKCRzbG93X2NkYnMgIT0gIiIpfSB7Ci0gICAgICAgICAgICBzZXQgZmFzdF9jZGJzICRzbG93X2NkYnMKLSAgICAgICAgfQotICAgICB9Ci0gICB9Ci0KLSAgIHNldCBiY19jYXBfdGFibGUgIiIKLSAgIHNldCB3Y19jYXBfdGFibGUgIiIKLSAgCi0gICBpZiB7W2xsZW5ndGggJHJkYV9JbnB1dCh1aV9jYXB0YmxfZmlsZSldID4gMX0gewotICAgICAgZm9yIHtzZXQgaSAwfSB7JGk8W2xsZW5ndGggJHJkYV9JbnB1dCh1aV9jYXB0YmxfZmlsZSldfSB7aW5jciBpfSB7Ci0gICAgICAgICBpZiB7W2xpbmRleCAkcmRhX0lucHV0KHVpX2NhcHRibF9maWxlKSAkaV0gPT0gIi1iZXN0In0gewotICAgICAgICAgICAgc2V0IGJjX2NhcF90YWJsZSBbZmlsZSBub3JtYWxpemUgW2xpbmRleCAkcmRhX0lucHV0KHVpX2NhcHRibF9maWxlKSBbZXhwciAkaSsxXV1dCi0gICAgICAgICB9Ci0gICAgICAgICBpZiB7W2xpbmRleCAkcmRhX0lucHV0KHVpX2NhcHRibF9maWxlKSAkaV0gPT0gIi13b3JzdCJ9IHsKLSAgICAgICAgICAgIHNldCB3Y19jYXBfdGFibGUgW2ZpbGUgbm9ybWFsaXplIFtsaW5kZXggJHJkYV9JbnB1dCh1aV9jYXB0YmxfZmlsZSkgW2V4cHIgJGkrMV1dXQotICAgICAgICAgfQotICAgICAgfQotICAgfSBlbHNlIHsKLSAgICAgIHNldCB3Y19jYXBfdGFibGUgW2ZpbGUgbm9ybWFsaXplICRyZGFfSW5wdXQodWlfY2FwdGJsX2ZpbGUpXQotICAgICAgc2V0IGJjX2NhcF90YWJsZSBbZmlsZSBub3JtYWxpemUgJHJkYV9JbnB1dCh1aV9jYXB0YmxfZmlsZSldCi0gICB9Ci0gICAKLSAgIHNldCBiY19xeF90ZWNoX2ZpbGUgIiIKLSAgIHNldCB3Y19xeF90ZWNoX2ZpbGUgIiIKLSAgIAotICAgaWYge1tsbGVuZ3RoICRyZGFfSW5wdXQodWlfcXh0ZWNoX2ZpbGUpXSA+IDF9IHsKLSAgICAgIGZvciB7c2V0IGkgMH0geyRpPFtsbGVuZ3RoICRyZGFfSW5wdXQodWlfcXh0ZWNoX2ZpbGUpXX0ge2luY3IgaX0gewotICAgICAgICAgaWYge1tsaW5kZXggJHJkYV9JbnB1dCh1aV9xeHRlY2hfZmlsZSkgJGldID09ICItYmVzdCJ9IHsKLSAgICAgICAgICAgIHNldCBiY19xeF90ZWNoX2ZpbGUgW2ZpbGUgbm9ybWFsaXplIFtsaW5kZXggJHJkYV9JbnB1dCh1aV9xeHRlY2hfZmlsZSkgW2V4cHIgJGkrMV1dXQotICAgICAgICAgfQotICAgICAgICAgaWYge1tsaW5kZXggJHJkYV9JbnB1dCh1aV9xeHRlY2hfZmlsZSkgJGldID09ICItd29yc3QifSB7Ci0gICAgICAgICAgICBzZXQgd2NfcXhfdGVjaF9maWxlIFtmaWxlIG5vcm1hbGl6ZSBbbGluZGV4ICRyZGFfSW5wdXQodWlfcXh0ZWNoX2ZpbGUpIFtleHByICRpKzFdXV0KLSAgICAgICAgIH0KLSAgICAgIH0KLSAgIH0gZWxzZSB7Ci0gICAgICBzZXQgd2NfcXhfdGVjaF9maWxlIFtmaWxlIG5vcm1hbGl6ZSAkcmRhX0lucHV0KHVpX3F4dGVjaF9maWxlKV0KLSAgICAgIHNldCBiY19xeF90ZWNoX2ZpbGUgW2ZpbGUgbm9ybWFsaXplICRyZGFfSW5wdXQodWlfcXh0ZWNoX2ZpbGUpXQotICAgfQotICAgCi0gICAKLSMgICBpZiB7JHdjX2NhcF90YWJsZSA9PSAiIn0gewotIyAgICAgIFB1dHMgIi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIiAKLSMgICAgICBQdXRzICJcW1BRUlNcXVxbRVJST1JcXSBObyBjYXAgdGFibGVzIGRlZmluZWQgZm9yIHRoaXMgdGVzdGNhc2UgLi4uIGFib3J0aW5nIgotIyAgICAgIFB1dHMgIi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIiAKLSMgICAgICBleGl0IDEKLSMgICB9Ci0gICAKLSAgIGlmIHsoW2luZm8gZXhpc3RzIGRnbl9tYXhfdGVtcF0gPT0gMCkgfHwgKFtpbmZvIGV4aXN0cyBkZ25fbWF4X3RlbXBdICYmICRkZ25fbWF4X3RlbXAgPT0gIiIpfSB7Ci0gICAgICBzZXQgbWF4X3RlbXAgIiIKLSAgIH0gZWxzZSB7Ci0gICAgICBzZXQgbWF4X3RlbXAgJGRnbl9tYXhfdGVtcAotICAgfQotICAgCi0gICBpZiB7KFtpbmZvIGV4aXN0cyBkZ25fbWluX3RlbXBdID09IDApIHx8IChbaW5mbyBleGlzdHMgZGduX21pbl90ZW1wXSAmJiAkZGduX21pbl90ZW1wID09ICIiKX0gewotICAgICAgc2V0IG1pbl90ZW1wICIiCi0gICB9IGVsc2UgewotICAgICAgc2V0IG1pbl90ZW1wIFtleHByIGFicygkZGduX21pbl90ZW1wKV0KLSAgIH0KLQotICAgc2V0IHByZV9yb3V0ZV9yZXNfZmFjdG9yICRyZGFfSW5wdXQodWlfcHJlUm91dGVfcmVzKQotICAgc2V0IHByZV9yb3V0ZV9jbGtfcmVzX2ZhY3RvciAxLjAKLSAgIHNldCBwb3N0X3JvdXRlX3Jlc19mYWN0b3IgJHJkYV9JbnB1dCh1aV9wb3N0Um91dGVfcmVzKQotICAgc2V0IHBvc3Rfcm91dGVfY2xrX3Jlc19mYWN0b3IgIjEuMCAxLjAgMS4wIgotICAgc2V0IHByZV9yb3V0ZV9jYXBfZmFjdG9yICRyZGFfSW5wdXQodWlfcHJlUm91dGVfY2FwKQotICAgc2V0IHByZV9yb3V0ZV9jbGtfY2FwX2ZhY3RvciAxLjAKLSAgIHNldCBwb3N0X3JvdXRlX2NhcF9mYWN0b3IgJHJkYV9JbnB1dCh1aV9wb3N0Um91dGVfY2FwKQotICAgc2V0IHBvc3Rfcm91dGVfY2xrX2NhcF9mYWN0b3IgIjEuMCAxLjAgMS4wIgotICAgc2V0IHBvc3Rfcm91dGVfeGNhcF9mYWN0b3IgJHJkYV9JbnB1dCh1aV9wb3N0Um91dGVfeGNhcCkKLSAgIHNldCBzaHJpbmtfZmFjdG9yICRyZGFfSW5wdXQodWlfc2hyX3NjYWxlKQotIyAgIHNldCByZWxhdGl2ZV9jX3RocmVzaCAkcmRhX0lucHV0KHVpX3JlbF9jX3RocmVzaCkKLSMgICBzZXQgdG90YWxfY190aHJlc2ggJHJkYV9JbnB1dCh1aV90b3RfY190aHJlc2gpCi0jICAgc2V0IGNvdXBsaW5nX2NfdGhyZXNoICRyZGFfSW5wdXQodWlfY3BsX2NfdGhyZXNoKQotCi0gICBjcmVhdGVfcmNfY29ybmVyIC1uYW1lIHJjX21heCAgXAotICAgICAgICAgICAgICAgICAgICAtcHJlUm91dGVfcmVzICRwcmVfcm91dGVfcmVzX2ZhY3RvciBcCi0gICAgICAgICAgICAgICAgICAgIC1wcmVSb3V0ZV9jbGtyZXMgJHByZV9yb3V0ZV9jbGtfcmVzX2ZhY3RvciBcCi0gICAgICAgICAgICAgICAgICAgIC1wcmVSb3V0ZV9jYXAgJHByZV9yb3V0ZV9jYXBfZmFjdG9yIFwKLSAgICAgICAgICAgICAgICAgICAgLXByZVJvdXRlX2Nsa2NhcCAkcHJlX3JvdXRlX2Nsa19jYXBfZmFjdG9yIFwKLSAgICAgICAgICAgICAgICAgICAgLXBvc3RSb3V0ZV9yZXMgJHBvc3Rfcm91dGVfcmVzX2ZhY3RvciBcCi0gICAgICAgICAgICAgICAgICAgIC1wb3N0Um91dGVfY2xrcmVzICRwb3N0X3JvdXRlX2Nsa19yZXNfZmFjdG9yIFwKLSAgICAgICAgICAgICAgICAgICAgLXBvc3RSb3V0ZV9jYXAgJHBvc3Rfcm91dGVfY2FwX2ZhY3RvciBcCi0gICAgICAgICAgICAgICAgICAgIC1wb3N0Um91dGVfY2xrY2FwICRwb3N0X3JvdXRlX2Nsa19jYXBfZmFjdG9yIFwKLSAgICAgICAgICAgICAgICAgICAgLXBvc3RSb3V0ZV94Y2FwICRwb3N0X3JvdXRlX3hjYXBfZmFjdG9yCi0gIAotICAgaWYgeyR3Y19jYXBfdGFibGUgIT0gIiJ9IHsKLSAgICAgIHVwZGF0ZV9yY19jb3JuZXIgLW5hbWUgcmNfbWF4IC1jYXBfdGFibGUgJHdjX2NhcF90YWJsZQotICAgfQotICAgaWYgeyRtYXhfdGVtcCAhPSAiIn0gewotICAgICAgdXBkYXRlX3JjX2Nvcm5lciAtbmFtZSByY19tYXggLVQgJG1heF90ZW1wCi0gICB9Ci0KLSAgIGlmIHskd2NfcXhfdGVjaF9maWxlICE9ICIiIH0gewotICAgICAgdXBkYXRlX3JjX2Nvcm5lciAtbmFtZSByY19tYXggLXF4X3RlY2hfZmlsZSAkd2NfcXhfdGVjaF9maWxlCi0gICB9Ci0gICAgCi0gICBjcmVhdGVfcmNfY29ybmVyIC1uYW1lIHJjX21pbiAgXAotICAgICAgICAgICAgICAgICAgICAtcHJlUm91dGVfcmVzICRwcmVfcm91dGVfcmVzX2ZhY3RvciBcCi0gICAgICAgICAgICAgICAgICAgIC1wcmVSb3V0ZV9jbGtyZXMgJHByZV9yb3V0ZV9jbGtfcmVzX2ZhY3RvciBcCi0gICAgICAgICAgICAgICAgICAgIC1wcmVSb3V0ZV9jYXAgJHByZV9yb3V0ZV9jYXBfZmFjdG9yIFwKLSAgICAgICAgICAgICAgICAgICAgLXByZVJvdXRlX2Nsa2NhcCAkcHJlX3JvdXRlX2Nsa19jYXBfZmFjdG9yIFwKLSAgICAgICAgICAgICAgICAgICAgLXBvc3RSb3V0ZV9yZXMgJHBvc3Rfcm91dGVfcmVzX2ZhY3RvciBcCi0gICAgICAgICAgICAgICAgICAgIC1wb3N0Um91dGVfY2xrcmVzICRwb3N0X3JvdXRlX2Nsa19yZXNfZmFjdG9yIFwKLSAgICAgICAgICAgICAgICAgICAgLXBvc3RSb3V0ZV9jYXAgJHBvc3Rfcm91dGVfY2FwX2ZhY3RvciBcCi0gICAgICAgICAgICAgICAgICAgIC1wb3N0Um91dGVfY2xrY2FwICRwb3N0X3JvdXRlX2Nsa19jYXBfZmFjdG9yIFwKLSAgICAgICAgICAgICAgICAgICAgLXBvc3RSb3V0ZV94Y2FwICRwb3N0X3JvdXRlX3hjYXBfZmFjdG9yCi0gICAKLSAgIGlmIHskYmNfY2FwX3RhYmxlICE9ICIifSB7Ci0gICAgICB1cGRhdGVfcmNfY29ybmVyIC1uYW1lIHJjX21pbiAtY2FwX3RhYmxlICRiY19jYXBfdGFibGUKLSAgIH0KLSAgIGlmIHskbWluX3RlbXAgIT0gIiJ9IHsKLSAgICAgIHVwZGF0ZV9yY19jb3JuZXIgLW5hbWUgcmNfbWluIC1UICRtaW5fdGVtcAotICAgfQotCi0gICBpZiB7JGJjX3F4X3RlY2hfZmlsZSAhPSAiIiB9IHsKLSAgICAgIHVwZGF0ZV9yY19jb3JuZXIgLW5hbWUgcmNfbWluIC1xeF90ZWNoX2ZpbGUgJGJjX3F4X3RlY2hfZmlsZQotICAgfQotICAgIAotICAgaWYge1tpbmZvIGV4aXN0cyBzbG93X2NkYnNdICYmICgkc2xvd19jZGJzICE9ICIiKX0gewotICAgICAgY3JlYXRlX2xpYnJhcnlfc2V0IC1uYW1lIGxpYnNfbWF4IC10aW1pbmcgJHNsb3dfbGlicyAtc2kgJHNsb3dfY2RicyAKLSAgICAgIGNyZWF0ZV9saWJyYXJ5X3NldCAtbmFtZSBsaWJzX21pbiAtdGltaW5nICRmYXN0X2xpYnMgLXNpICRmYXN0X2NkYnMgCi0gICB9IGVsc2UgewotICAgICAgY3JlYXRlX2xpYnJhcnlfc2V0IC1uYW1lIGxpYnNfbWF4IC10aW1pbmcgJHNsb3dfbGlicwotICAgICAgY3JlYXRlX2xpYnJhcnlfc2V0IC1uYW1lIGxpYnNfbWluIC10aW1pbmcgJGZhc3RfbGlicwotICAgfQotICAgCi0gICBjcmVhdGVfZGVsYXlfY29ybmVyIC1uYW1lIGNvcm5lcl9tYXggLWxpYnJhcnlfc2V0IGxpYnNfbWF4IC1yY19jb3JuZXIgcmNfbWF4Ci0gICBjcmVhdGVfZGVsYXlfY29ybmVyIC1uYW1lIGNvcm5lcl9taW4gLWxpYnJhcnlfc2V0IGxpYnNfbWluIC1yY19jb3JuZXIgcmNfbWluCi0gICBQdXRzICJcW0lORk9cXSBjcmVhdGVfY29uc3RyYWludF9tb2RlIHNldHVwX2Z1bmNfbW9kZSB3aXRoICIKLSAgIFB1dHMgIlxbSU5GT1xdICAgU0RDIGZpbGVzOiAkc2RjX2ZpbGVzIgotICAgaWYgeyRpbG1fc2RjX2ZpbGVzICE9ICIifSB7Ci0gICAgIFB1dHMgIlxbSU5GT1xdICAgSUxNIFNEQyBmaWxlczogJGlsbV9zZGNfZmlsZXMiIAotICAgICBjcmVhdGVfY29uc3RyYWludF9tb2RlIC1uYW1lIHNldHVwX2Z1bmNfbW9kZSAtc2RjX2ZpbGVzICRzZGNfZmlsZXMgLWlsbV9zZGNfZmlsZXMgaWxtX3NkY19maWxlcwotICAgfSBlbHNlIHsKLSAgICAgY3JlYXRlX2NvbnN0cmFpbnRfbW9kZSAtbmFtZSBzZXR1cF9mdW5jX21vZGUgLXNkY19maWxlcyAkc2RjX2ZpbGVzIAotICAgfQotICAgY3JlYXRlX2FuYWx5c2lzX3ZpZXcgLW5hbWUgc2V0dXBfZnVuYyAtY29uc3RyYWludF9tb2RlIHNldHVwX2Z1bmNfbW9kZSAtZGVsYXlfY29ybmVyIGNvcm5lcl9tYXgKLSMgICBQdXRzICJcW0lORk9cXSBjcmVhdGVfY29uc3RyYWludF9tb2RlIGhvbGRfZnVuY19tb2RlIHdpdGggIgotIyAgIFB1dHMgIlxbSU5GT1xdICAgU0RDIGZpbGVzOiAkc2RjX2ZpbGVzIgotIyAgIGlmIHskaWxtX3NkY19maWxlcyAhPSAiIn0gewotIyAgICAgUHV0cyAiXFtJTkZPXF0gICBJTE0gU0RDIGZpbGVzOiAkaWxtX3NkY19maWxlcyIgCi0jICAgICBjcmVhdGVfY29uc3RyYWludF9tb2RlIC1uYW1lIGhvbGRfZnVuY19tb2RlIC1zZGNfZmlsZXMgJHNkY19maWxlcyAtaWxtX3NkY19maWxlcyBpbG1fc2RjX2ZpbGVzCi0jICAgfSBlbHNlIHsKLSMgICAgIGNyZWF0ZV9jb25zdHJhaW50X21vZGUgLW5hbWUgaG9sZF9mdW5jX21vZGUgLXNkY19maWxlcyAkc2RjX2ZpbGVzIAotIyAgIH0KLSAgIGNyZWF0ZV9hbmFseXNpc192aWV3IC1uYW1lIGhvbGRfZnVuYyAtY29uc3RyYWludF9tb2RlIHNldHVwX2Z1bmNfbW9kZSAtZGVsYXlfY29ybmVyIGNvcm5lcl9taW4KLSAgIHNldF9hbmFseXNpc192aWV3IC1zZXR1cCB7c2V0dXBfZnVuY30gLWhvbGQge2hvbGRfZnVuY30gCi0gICBzZXRfZGVmYXVsdF92aWV3IC1zZXR1cCB7c2V0dXBfZnVuY30gLWhvbGQge2hvbGRfZnVuY30gCi0gICBzZXRfaW50ZXJhY3RpdmVfY29uc3RyYWludF9tb2RlcyBbYWxsX2NvbnN0cmFpbnRfbW9kZXMgLWFjdGl2ZV0gCi19Ci0KLXByb2MgY3JlYXRlX2xwX2NvbmZpZ19maWxlIHt9IHsKLQotICAgZ2xvYmFsIHZhcnMKLQotICAgc2V0IG9wIFtvcGVuIGxwX2NvbmZpZy5hdXRvLnRjbCB3XQotCi0gICBpZiB7W2ZpbGUgZXhpc3RzIHNldHVwLmF1dG8udGNsXX0gewotICAgICAgc291cmNlIHNldHVwLmF1dG8udGNsCi0gICB9Ci0gICBpZiB7W2ZpbGUgZXhpc3RzIGlubm92dXNfY29uZmlnLmF1dG8udGNsXX0gewotICAgICAgc291cmNlIGlubm92dXNfY29uZmlnLmF1dG8udGNsCi0gICB9Ci0KLSAgIHB1dHMgJG9wICIjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMiCi0gICBwdXRzICRvcCAiIyBMb3cgcG93ZXIgY29uZmlndXJhdGlvbiBmaWxlIG92ZXJsYXkuICBUaGlzIGZpbGUgY29udGFpbnMgZm91bmRhdGlvbiBmbG93IHZhcmlhYmxlcyIKLSAgIHB1dHMgJG9wICIjIHRoYXQgYXJlIHNwZWNpZmljIHRvIHRoZSBMUCBmbG93IGFuZCBzaG91bGQgYmUgdXNlZCBpbiBhZGRpdGlvbiB0byB0aGUgc2V0dXAudGNsIgotICAgcHV0cyAkb3AgIiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyIKLSAgIHB1dHMgJG9wICIjICAgICAgICAgICAgICAgICAgICAgICAgICAgVGllIGNlbGwgaW5mb3JtYXRpb24iCi0gICBwdXRzICRvcCAiIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIgotICAgcHV0cyAkb3AgIiMgVGhlIHZhcmlhYmxlIHZhcnModGllX2NlbGxzKSBpcyBkZWZpbmVkIGluIHRoZSBzZXR1cC50Y2wgYW5kIGlzIHVzZWQgdG8gZGVmaW5lIGEgIgotICAgcHV0cyAkb3AgIiMgXCJnbG9iYWxcIiB0aWUgY2VsbCBsaXN0LiBUaGlzIGxpc3Qgd2lsbCBiZSB1c2VkIGJ5IGRlZmF1bHQgZm9yIGVhY2ggcG93ZXIgZG9tYWluLiIKLSAgIHB1dHMgJG9wICIjIEl0IGNhbiBiZSBvdmVycmlkZGVuIGZvciBhIGdpdmVuIHBvd2VyIGRvbWFpbiBieSBzZXR0aW5nIHZhcnMoPHBvd2VyX2RvbWFpbj4sdGllX2NlbGxzKS4iCi0gICBwdXRzICRvcCAiIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIgotICAgcHV0cyAkb3AgIiMiCi0gICBwdXRzICRvcCAiIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIgotICAgcHV0cyAkb3AgIiMgICAgICAgICAgICAgICAgICAgICAgICAgUGxhY2VtZW50IE9wdGlvbnMiCi0gICBwdXRzICRvcCAiIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIgotICAgcHV0cyAkb3AgIiNzZXQgdmFycyhyZXNpemVfc2hpZnRlcl9hbmRfaXNvX2luc3RzKSA8dHJ1ZSB8IGZhbHNlPiIKLSAgIHB1dHMgJG9wICIjIgotICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKHBvd2VyX2RvbWFpbnMpXX0gewotICAgICAgZm9yZWFjaCBkb21haW4gJHZhcnMocG93ZXJfZG9tYWlucykgewotICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKHRpZV9jZWxscyldfSB7Ci0gICAgICAgICAgICBwdXRzICRvcCAiIyBzZXQgdmFycygkZG9tYWluLHRpZV9jZWxscylcdFwiJHZhcnModGllX2NlbGxzKVwiIgotICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHB1dHMgJG9wICIjIHNldCB2YXJzKCRkb21haW4sdGllX2NlbGxzKSAgICA8dGllIGNlbGxzIGZvciA8cG93ZXJfZG9tYWluPj4iCi0gICAgICAgICB9Ci0gICAgICB9Ci0gICB9Ci0gICBwdXRzICRvcCAiIyIKLSAgIHB1dHMgJG9wICIjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMiCi0gICBwdXRzICRvcCAiIyAgICAgICAgICAgICAgICAgICAgICAgICBGaWxsZXIgY2VsbCBpbmZvcm1hdGlvbiIKLSAgIHB1dHMgJG9wICIjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iCi0gICBwdXRzICRvcCAiIyBUaGUgdmFyaWFibGUgdmFycyhmaWxsZXJfY2VsbHMpIGlzIGRlZmluZWQgaW4gdGhlIHNldHVwLnRjbCBhbmQgaXMgdXNlZCB0byBkZWZpbmUgYSAiCi0gICBwdXRzICRvcCAiIyBcImdsb2JhbFwiIGZpbGxlciBjZWxsIGxpc3QuIFRoaXMgbGlzdCB3aWxsIGJlIHVzZWQgYnkgZGVmYXVsdCBmb3IgZWFjaCBwb3dlciBkb21haW4uIgotICAgcHV0cyAkb3AgIiMgSXQgY2FuIGJlIG92ZXJyaWRkZW4gZm9yIGEgZ2l2ZW4gcG93ZXIgZG9tYWluIGJ5IHNldHRpbmcgdmFycyg8cG93ZXJfZG9tYWluPixmaWxsZXJfY2VsbHMpLiIKLSAgIHB1dHMgJG9wICIjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iCi0gICBpZiB7W2luZm8gZXhpc3RzIHZhcnMocG93ZXJfZG9tYWlucyldfSB7Ci0gICAgICBmb3JlYWNoIGRvbWFpbiAkdmFycyhwb3dlcl9kb21haW5zKSB7Ci0gICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoZmlsbGVyX2NlbGxzKV19IHsKLSAgICAgICAgICAgIHB1dHMgJG9wICIjIHNldCB2YXJzKCRkb21haW4sZmlsbGVyX2NlbGxzKVx0XCIkdmFycyhmaWxsZXJfY2VsbHMpXCIiCi0gICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgcHV0cyAkb3AgIiMgc2V0IHZhcnMoJGRvbWFpbixmaWxsZXJfY2VsbHMpIDxmaWxsZXIgY2VsbHMgZm9yIDxwb3dlcl9kb21haW4+PiIKLSAgICAgICAgIH0KLSAgICAgIH0KLSAgIH0KLSAgIHB1dHMgJG9wICIjIgotICAgcHV0cyAkb3AgIiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyIKLSAgIHB1dHMgJG9wICIjICAgICAgICAgICAgICAgICAgICAgICAgICBXZWxsdGFwIGNlbGwgaW5mb3JtYXRpb24iCi0gICBwdXRzICRvcCAiIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIgotICAgcHV0cyAkb3AgIiMgVGhlIHZhcmlhYmxlIHZhcnMod2VsbHRhcHMpIGlzIGRlZmluZWQgaW4gdGhlIHNldHVwLnRjbCBhbmQgaXMgdXNlZCB0byBkZWZpbmUgYSAiCi0gICBwdXRzICRvcCAiIyBcImdsb2JhbFwiIHdlbGx0YXAgY2VsbCBsaXN0LiBUaGlzIGxpc3Qgd2lsbCBiZSB1c2VkIGJ5IGRlZmF1bHQgZm9yIGVhY2ggcG93ZXIgZG9tYWluLiIKLSAgIHB1dHMgJG9wICIjIEl0IGNhbiBiZSBvdmVycmlkZGVuIGZvciBhIGdpdmVuIHBvd2VyIGRvbWFpbiBieSBzZXR0aW5nIHZhcnMoPHBvd2VyX2RvbWFpbj4sd2VsbHRhcHMpLiIKLSAgIHB1dHMgJG9wICIjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iCi0gICBwdXRzICRvcCAiIyAgICB2ZXJpZnlfcnVsZSA6IG1heGltdW0gZGlzdGFuY2UgKGluIG1pY3JvbnMpIGJldHdlZW4gd2VsbHRhcCBjZWxscyBhbmQgc3RhbmRhcmQgY2VsbHMgIgotICAgcHV0cyAkb3AgIiMgICAgICAgICAgICAgICAgICBpbiBtaWNyb25zIgotICAgcHV0cyAkb3AgIiMgICAgICAgIG1heF9nYXAgOiBzcGVjaWZpZXMgdGhlIG1heGltdW0gZGlzdGFuY2UgZnJvbSB0aGUgcmlnaHQgZWRnZSBvZiBvbmUgd2VsbC10YXAgY2VsbCAiCi0gICBwdXRzICRvcCAiIyAgICAgICAgICAgICAgICAgIHRvIHRoZSBsZWZ0IGVkZ2Ugb2YgIHRoZSBmb2xsb3dpbmcgd2VsbC10YXAgY2VsbCBpbiB0aGUgc2FtZSByb3ciCi0gICBwdXRzICRvcCAiIyAgY2VsbF9pbnRlcnZhbCA6IHNwZWNpZmllcyB0aGUgbWF4aW11bSBkaXN0YW5jZSBmcm9tIHRoZSBjZW50ZXIgb2Ygb25lIHdlbGwtdGFwIGNlbGwgIgotICAgcHV0cyAkb3AgIiMgICAgICAgICAgICAgICAgICB0byB0aGUgY2VudGVyIG9mIHRoZSBmb2xsb3dpbmcgd2VsbC10YXAgY2VsbCBpbiB0aGUgc2FtZSByb3ciCi0gICBwdXRzICRvcCAiIyIKLSAgIHB1dHMgJG9wICIjIE5PVEU6IG1heF9nYXAgYW5kIGNlbGxfaW50ZXJ2YWwgcGFyYW1ldGVycyBhcmUgbXV0dWFsbHkgZXhjbHVzaXZlLCB1c2VyIGhhcyB0byBkZWZpbmUgIgotICAgcHV0cyAkb3AgIiMgICAgICAgb25seSBvbmUgb2YgdGhlc2UgcGFyYW1ldGVycyB0byBhZGQgd2VsbHRhcCBjZWxscyIKLSAgIHB1dHMgJG9wICIjIgotICAgcHV0cyAkb3AgIiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIKLSAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhwb3dlcl9kb21haW5zKV19IHsKLSAgICAgIGZvcmVhY2ggZG9tYWluICR2YXJzKHBvd2VyX2RvbWFpbnMpIHsKLSAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyh3ZWxsdGFwcyldfSB7Ci0gICAgICAgICAgICBwdXRzICRvcCAiIyBzZXQgdmFycygkZG9tYWluLHZhcnMod2VsbHRhcHMpKSAgICAgICAgICAgICAgICAgPHdlbGx0YXAgY2VsbCBsaXN0IGZvciA8cG93ZXJfZG9tYWluPj4iCi0gICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgcHV0cyAkb3AgIiMgc2V0IHZhcnMoJGRvbWFpbix3ZWxsdGFwcykgICAgICAgICAgICAgICAgIDx3ZWxsdGFwIGNlbGwgbGlzdCBmb3IgPHBvd2VyX2RvbWFpbj4+IgotICAgICAgICAgfSAKLSAgICAgICAgIHB1dHMgJG9wICIjIHNldCB2YXJzKCRkb21haW4sd2VsbHRhcHMsY2hlY2tlcmJvYXJkKSAgPHRydWUgb3IgZmFsc2U+IgotICAgICAgICAgcHV0cyAkb3AgIiMgc2V0IHZhcnMoJGRvbWFpbix3ZWxsdGFwcyxtYXhfZ2FwKSAgICAgICA8bWF4IGdhcCBpbiBtaWNyb25zPiIKLSAgICAgICAgIHB1dHMgJG9wICIjIHNldCB2YXJzKCRkb21haW4sd2VsbHRhcHMsY2VsbF9pbnRlcnZhbCkgPGNlbGwgaW50ZXJ2YWwgaW4gbWljcm9ucz4iCi0gICAgICAgICBwdXRzICRvcCAiIyBzZXQgdmFycygkZG9tYWluLHdlbGx0YXBzLHJvd19vZmZzZXQpICAgIDxyb3cgb2Zmc2V0IGluIG1pY3JvbnM+IgotICAgICAgICAgcHV0cyAkb3AgIiMgc2V0IHZhcnMoJGRvbWFpbix3ZWxsdGFwcyx2ZXJpZnlfcnVsZSkgICA8dmVyaWZ5IHJ1bGUgZGlzdGFuY2U+IgotICAgICAgfQotICAgfQotICAgcHV0cyAkb3AgIiMiCi0gICBwdXRzICRvcCAiIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIgotICAgcHV0cyAkb3AgIiMgICAgICAgICAgICAgICAgICAgICAgICAgIEVuZGNhcCBjZWxsIGluZm9ybWF0aW9uIgotICAgcHV0cyAkb3AgIiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIKLSAgIHB1dHMgJG9wICIjIFRoZSB2YXJpYWJsZXMgdmFycyhwcmVfZW5kY2FwKSBhbmQgdmFycyhwb3N0X2VuZGNhcCkgYXJlIHNldCBpbiB0aGUgc2V0dXAudGNsIGZpbGUgYW5kIgotICAgcHV0cyAkb3AgIiMgYXJlIHVzZWQgdG8gZGVmaW5lIFwiZ2xvYmFsXCIgZW5kY2FwIGNlbGxzLiBUaGVzZSB1c2VkIGJ5IGRlZmF1bHQgZm9yIGVhY2ggcG93ZXIgZG9tYWluLiIKLSAgIHB1dHMgJG9wICIjIFRoZXkgY2FuIGJlIG92ZXJyaWRkZW4gZm9yIGEgZ2l2ZW4gcG93ZXIgZG9tYWluIHNldHRpbmcgdmFycyg8cG93ZXJfZG9tYWluPixwcmVfZW5kY2FwKSIKLSAgIHB1dHMgJG9wICIjIGFuZC9vciB2YXJzKDxwb3dlcl9kb21haW4+LHBvc3RfZW5kY2FwKS4iCi0gICBwdXRzICRvcCAiIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIgotICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKHBvd2VyX2RvbWFpbnMpXX0gewotICAgICAgZm9yZWFjaCBkb21haW4gJHZhcnMocG93ZXJfZG9tYWlucykgewotICAgICAgICAgcHV0cyAkb3AgIiMgc2V0IHZhcnMoJGRvbWFpbixwcmVfZW5kY2FwKSAgPHByZSBlbmRjYXAgY2VsbCBmb3IgPHBvd2VyX2RvbWFpbj4+IgotICAgICAgICAgcHV0cyAkb3AgIiMgc2V0IHZhcnMoJGRvbWFpbixwb3N0X2VuZGNhcCkgPHBvc3QgZW5kY2FwIGNlbGwgZm9yIDxwb3dlcl9kb21haW4+PiIKLSAgICAgIH0KLSAgIH0KLSAgIHB1dHMgJG9wICIjIgotICAgcHV0cyAkb3AgIiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyIKLSAgIHB1dHMgJG9wICIjICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFsd2F5cyBvbiBuZXQgYnVmZmVyaW5nIgotICAgcHV0cyAkb3AgIiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIKLSAgIHB1dHMgJG9wICIjIEJ5IGRlZmF1bHQgU09DRSBkb2VzIGFsd2F5cy1vbi1uZXQgc3ludGhlc2lzIGZvciBTUlBHIGNvbnRyb2wgc2lnbmFsIGFuZCBQU08gZW5hYmxlICIKLSAgIHB1dHMgJG9wICIjIHNpZ25hbHMgYXMgcGFydCBvZiBvcHREZXNpZ24gLXByZUNUUywgYnV0IHRoaXMgY2FuIGJlIG1hbnVhbGx5IGRvbmUgZm9yIHNwZWNpZmljIG5ldHMgaWYiCi0gICBwdXRzICRvcCAiIyBuZWNlc3NhcnkuICBUbyBkbyB0aGlzLCBkZWZpbmUgdGhlIGZvbGxvd2luZyB2YXJpYWJsZXMgYW5kIHVuY29tbWVudCB0aGUgcHJlX3ByZWN0cy50Y2wiCi0gICBwdXRzICRvcCAiIyBwbHVnLWluIHRlbXBsYXRlIgotICAgcHV0cyAkb3AgIiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIKLSAgIHB1dHMgJG9wICIjIHNldCB2YXJzKGFsd2F5c19vbl9idWZmZXJzKSAgICAgICAgICAgICAgICAgICA8bGlzdCBvZiBhbHdheXMgb24gYnVmZmVycz4iCi0gICBwdXRzICRvcCAiIyBzZXQgdmFycyhhbHdheXNfb25fbmV0cykgICAgICAgICAgICAgICAgICAgICAgPGxpc3Qgb2YgYWx3YXlzIG9uIG5ldHM+IgotICAgcHV0cyAkb3AgIiMgc2V0IHZhcnMoYWx3YXlzX29uX25ldHMsbWF4X2Zhbm91dCkgICAgICAgICAgIDxtYXggZmFub3V0IGxpbWl0IGZvciBhbHdheXMgb24gbmV0cz4gKG9wdGlvbmFsKSIKLSAgIHB1dHMgJG9wICIjIHNldCB2YXJzKGFsd2F5c19vbl9uZXRzLG1heF90cmFuKSAgICAgICAgICAgICA8bWF4IHRyYW5zaXRpb24gb24gYWx3YXlzIG9uIG5ldHM+IChvcHRpb25hbCkiCi0gICBwdXRzICRvcCAiIyBzZXQgdmFycyhhbHdheXNfb25fbmV0cyxtYXhfc2tldykgICAgICAgICAgICAgPG1heCBza2V3IGZvciBhbHdheXMgb24gbmV0cz4gKG9wdGlvbmFsKSIKLSAgIHB1dHMgJG9wICIjIHNldCB2YXJzKGFsd2F5c19vbl9uZXRzLG1heF9kZWxheSkgICAgICAgICAgICA8bWF4IGRlbGF5IGZvciBhbHdheXMgb24gbmV0cz4gKG9wdGlvbmFsKSIKLSAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhwb3dlcl9kb21haW5zKV19IHsKLSAgICAgIGZvcmVhY2ggZG9tYWluICR2YXJzKHBvd2VyX2RvbWFpbnMpIHsKLSAgICAgICAgIHB1dHMgJG9wICIjIHNldCB2YXJzKCRkb21haW4sYWx3YXlzX29uX2J1ZmZlcnMpICA8YnVmZmVycyBmb3IgPHBvd2VyIGRvbWFpbj4+IgotICAgICAgfQotICAgfQotICAgcHV0cyAkb3AgIiMiCi0gICBwdXRzICRvcCAiIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIgotICAgcHV0cyAkb3AgIiMgICAgICAgICAgICAgICAgICAgICAgU2Vjb25kYXJ5IHBvd2VyL2dyb3VuZCByb3V0aW5nIgotICAgcHV0cyAkb3AgIiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIKLSAgIHB1dHMgJG9wICIjIEF1dG9tYXRpYyBzZWNvbmRhcnkgcG93ZXIgcm91dGluZyBjYW4gYmUgZW5hYmxlZCB0aGUgZm91bmRhdGlvbiBmbG93cyBieSBzZXR0aW5nICIKLSAgIHB1dHMgJG9wICIjIHZhcnMocm91dGVfc2Vjb25kYXJ5X3BnX25ldHMpIHRvIHRydWUgYW5kIHByb3ZpZGluZyBjZWxsIHBpbiBwYWlyIGluZm9ybWF0aW9uIHRvIgotICAgcHV0cyAkb3AgIiMgaWRlbnRpZnkgdGhlIGNvbm5lY3Rpb25zIHJlcXVpcmluZyByb3V0aW5nIChQVEJVRkZEMTpUVkREIExWTExIQ0Q0OlZEREwsIGUuZy4pICIKLSAgIHB1dHMgJG9wICIjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iCi0gICBwdXRzICRvcCAiIyBzZXQgdmFycyhyb3V0ZV9zZWNvbmRhcnlfcGdfbmV0cykgICAgICAgICBcW3RydWUgfCBmYWxzZVxdIgotICAgcHV0cyAkb3AgIiMgc2V0IHZhcnMoc2Vjb25kYXJ5X3BnLGNlbGxfcGluX3BhaXJzKSAgICAgPHNlY29uZGFyeSBwb3dlciBjZWxsIHBpbiBwYWlyIGxpc3Q+IgotICAgcHV0cyAkb3AgIiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIKLSAgIHB1dHMgJG9wICIjSW4gYWRkaXRpb24sIHRoZSBmb2xsb3dpbmcgY2FuIG9wdGlvbmFsbHkgZGVmaW5lZCBlaXRoZXIgZ2xvYmFsbHkgb3IgcGVyIHAvZyBuZXQiCi0gICBwdXRzICRvcCAiIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIgotICAgcHV0cyAkb3AgIiMgc2V0IHZhcnMoc2Vjb25kYXJ5X3BnLG1heF9mYW5vdXQpICAgICAgICAgICA8bWF4IGZhbm91dCBmb3Igc2Vjb25kYXJ5IHBvd2VyIHJvdXRpbmc+IgotICAgcHV0cyAkb3AgIiMgc2V0IHZhcnMoc2Vjb25kYXJ5X3BnLHBhdHRlcm4pICAgICAgICAgICAgICA8c2Vjb25kYXJ5IHBvd2VyIHJvdXRpbmcgcGF0dGVybiB0cnVuayB8IHN0ZWluZXI+IgotICAgcHV0cyAkb3AgIiMgc2V0IHZhcnMoc2Vjb25kYXJ5X3BnLG5vbl9kZWZhdWx0X3J1bGUpICAgICA8bm9uLWRlZmF1bHQgcnVsZSBmb3Igc2Vjb25kYXJ5IHAvZy8gcm91dGluZz4iCi0gICBwdXRzICRvcCAiIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIgotICAgcHV0cyAkb3AgIiMgVG8gb3B0aW9uYWxseSBvdmVycmlkZSBmb3IgYSBnaXZlbiBwL2cgbmV0KHMpLCB1c2UgdGhlIHZhcnMocm91dGVfc2Vjb25kYXJ5X3BnX25ldHMpIHRvICIKLSAgIHB1dHMgJG9wICIjIGRlZmluZSB0aGUgbGlzdCBvZiBuZXRzIHRvIGJlIG92ZXJyaWRkZW4gYW5kIHRoZW4gb3ZlcnJpZGUgdmFycyg8cC9nIG5ldD4sPG9wdGlvbj4pIgotICAgcHV0cyAkb3AgIiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIKLSAgIHB1dHMgJG9wICIjIHNldCB2YXJzKHNlY29uZGFyeV9wZyxuZXRzKSAgICAgICAgICAgICAgICAgIDxsaXN0IG9mIHBvd2VyL2dyb3VuZCBuZXRzPiIKLSAgIHB1dHMgJG9wICIjIHNldCB2YXJzKDxwL2dfbmV0PixtYXhfZmFub3V0KSAgICAgICAgICAgICAgIDxtYXggZmFub3V0PiIKLSAgIHB1dHMgJG9wICIjIHNldCB2YXJzKDxwL2dfbmV0PixwYXR0ZXJuKSAgICAgICAgICAgICAgICAgIDx0cnVuayB8IHN0ZWluZXI+IgotICAgcHV0cyAkb3AgIiMgc2V0IHZhcnMoPHAvZ19uZXQ+LG5vbl9kZWZhdWx0X3J1bGUpICAgICAgICAgPG5vbiBkZWZhdWx0IHJ1bGU+IgotICAgcHV0cyAkb3AgIiMiCi0gICBwdXRzICRvcCAiIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIgotICAgcHV0cyAkb3AgIiMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBydW5DTFAgb3B0aW9ucyIKLSAgIHB1dHMgJG9wICIjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iCi0gICBwdXRzICRvcCAiIyBzZXQgdmFycyhjbHBfb3B0aW9ucykgIDxvcHRpb25zIGZvciBydW5DTFA+IgotICAgcHV0cyAkb3AgIiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIKLSAgIHB1dHMgJG9wICIjIHNldCB2YXJzKGNscF9vcHRpb25zKSAgXCJcIiIKLSAgIHB1dHMgJG9wICIjIgotICAgcHV0cyAkb3AgIiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyIKLSAgIHB1dHMgJG9wICIjICAgICAgICAgICAgICBNb2RpZnkgcG93ZXIgZG9tYWlucywgcm93IGNyZWF0aW9uIGZvciBwb3dlciBkb21haW5zIgotICAgcHV0cyAkb3AgIiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIKLSAgIHB1dHMgJG9wICIjIFRoZSBmb3VuZGF0aW9uIGZsb3dzIGNvbnRhaW4gYSBzYW1wbGUgcG9zdF9pbml0X3RjbCAoUExVRy9wb3N0X2luaXQudGNsKSBwbHVnLWluIHRvIGRvICIKLSAgIHB1dHMgJG9wICIjIHBvd2VyIGRvbWFpbiBtb2RpZmljYXRpb24gYXV0b21hdGljYWxseSBiYXNlZCBvbiB0aGUgZm9sbG9pbmcgdmFyaWFibGVzOiIKLSAgIHB1dHMgJG9wICIjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iCi0gICBpZiB7W2luZm8gZXhpc3RzIHZhcnMocG93ZXJfZG9tYWlucyldfSB7Ci0gICAgICBmb3JlYWNoIGRvbWFpbiAkdmFycyhwb3dlcl9kb21haW5zKSB7Ci0gICAgICAgICBwdXRzICRvcCAiIyBzZXQgdmFycygkZG9tYWluLGJib3gpICAgICAgICAgPGxseCBsbHkgdXJ4IHVyeT47IGJvbmRhcnkgY29vcmRpbmF0ZXMgaW4gbWljcm9ucyIKLSAgICAgICAgIHB1dHMgJG9wICIjIHNldCB2YXJzKCRkb21haW4scnNfZXh0cykgICAgICA8dG9wIGJvdCBsZWZ0IHJpZ2h0PjsgZGlzdGFuY2UgaW4gbWljcm9ucyAgIgotICAgICAgICAgcHV0cyAkb3AgIiMgc2V0IHZhcnMoJGRvbWFpbixtaW5fZ2FwcykgICAgIDx0b3AgYm90IGxlZnQgcmlnaHQ+OyBkaXN0YW5jZSBpbiBtaWNyb25zIgotICAgICAgfQotICAgfQotICAgcHV0cyAkb3AgIiMiCi0gICBwdXRzICRvcCAiIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIgotICAgcHV0cyAkb3AgIiMgICAgICAgICAgICAgICAgICAgICAgICAgICBQb3dlciBTaHV0LW9mZiBQbGFubmluZyAiCi0gICBwdXRzICRvcCAiIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIgotICAgcHV0cyAkb3AgIiMgVGhlIGZvdW5kYXRpb24gZmxvd3MgY29udGFpbiBhIHNhbXBsZSBwb3N0X2luaXRfdGNsIChQTFVHL3Bvc3RfaW5pdC50Y2wpIHBsdWctaW4gdG8gZG8gIgotICAgcHV0cyAkb3AgIiMgcG93ZXIgc3dpdGNoIGluc2VydGlvbiBhdXRvbWF0aWNhbGx5IGJhc2VkIG9uIHRoZSBmb2xsb3dpbmcgaW5mb3JtYXRpb246IgotICAgcHV0cyAkb3AgIiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIKLSAgIHB1dHMgJG9wICIjIHNldCB2YXJzKDxwb3dlcl9kb21haW4+LHN3aXRjaGFibGUpICAgICAgICAgPHRydWUgfCBmYWxzZT4iCi0gICBwdXRzICRvcCAiIyBzZXQgdmFycyg8cG93ZXJfZG9tYWluPixzd2l0Y2hfdHlwZSkgICAgICAgIDxjb2x1bW4gfCByaW5nPiIKLSAgIHB1dHMgJG9wICIjIHNldCB2YXJzKDxwb3dlcl9kb21haW4+LHN3aXRjaF9jZWxsKSAgICAgICAgPFBTTyBjZWxsIG5hbWU+IgotICAgcHV0cyAkb3AgIiMgc2V0IHZhcnMoPHBvd2VyX2RvbWFpbj4saW5wdXRfZW5hYmxlX3BpbikgICA8UFNPIGNlbGwgaW5wdXQgZW5hYmxlIHBpbj4iCi0gICBwdXRzICRvcCAiIyBzZXQgdmFycyg8cG93ZXJfZG9tYWluPixvdXRwdXRfZW5hYmxlX3BpbikgIDxQU08gY2VsbCBvdXRwdXQgZW5hYmxlIHBpbj4iCi0gICBwdXRzICRvcCAiIyBzZXQgdmFycyg8cG93ZXJfZG9tYWluPixpbnB1dF9lbmFibGVfbmV0KSAgIDxQU08gY2VsbCBpbnB1dCBlbmFibGUgbmV0PiIKLSAgIHB1dHMgJG9wICIjIHNldCB2YXJzKDxwb3dlcl9kb21haW4+LG91dHB1dF9lbmFibGVfbmV0KSAgPFBTTyBjZWxsIG91dHB1dCBlbmFibGUgbmV0PiIKLSAgIHB1dHMgJG9wICIjIHNldCB2YXJzKDxwb3dlcl9kb21haW4+LHN3aXRjaF9pbnN0YW5jZSkgICAgPHN3aXRjaE1vZHVsZUluc3RhbmNlPiIKLSAgIHB1dHMgJG9wICIjIHNldCB2YXJzKDxwb3dlcl9kb21haW4+LHRvcF9vZmZzZXQpICAgICAgICAgPHRvcCBvZmZzZXQgaW4gbWljcm9ucz4iCi0gICBwdXRzICRvcCAiIyBzZXQgdmFycyg8cG93ZXJfZG9tYWluPixib3R0b21fb2Zmc2V0KSAgICAgIDxib3R0b20gb2Zmc2V0IGluIG1pY3JvbnM+IgotICAgcHV0cyAkb3AgIiMgc2V0IHZhcnMoPHBvd2VyX2RvbWFpbj4scmlnaHRfb2Zmc2V0KSAgICAgICA8cmlnaHQgb2Zmc2V0IGluIG1pY3JvbnM+IgotICAgcHV0cyAkb3AgIiMgc2V0IHZhcnMoPHBvd2VyX2RvbWFpbj4sbGVmdF9vZmZzZXQpICAgICAgICA8bGVmdCBvZmZzZXQgaW4gbWljcm9ucz4iCi0gICBwdXRzICRvcCAiIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIgotICAgcHV0cyAkb3AgIiMgQmVsb3cgdmFyaWFibGVzIGFyZSBmb3IgY29sdW1uIGJhc2VkIHBzbyBpbXBsZW1ldGF0aW9uIgotICAgcHV0cyAkb3AgIiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIKLSAgIHB1dHMgJG9wICIjIHNldCB2YXJzKDxwb3dlcl9kb21haW4+LGNoZWNrZXJfYm9hcmQpICAgICA8dHJ1ZSB8IGZhbHNlPiIKLSAgIHB1dHMgJG9wICIjIHNldCB2YXJzKDxwb3dlcl9kb21haW4+LGhvcml6b25hbF9waXRjaCkgICA8aW4gbWljcm9ucz4iCi0gICBwdXRzICRvcCAiIyBzZXQgdmFycyg8cG93ZXJfZG9tYWluPixjb2x1bW5faGVpZ2h0KSAgICAgPFN3aXRjaCBjZWxsIGNvbHVtbiBoZWlnaHQgaW4gbWljcm9ucz4iCi0gICBwdXRzICRvcCAiIyBzZXQgdmFycyg8cG93ZXJfZG9tYWluPixza2lwX3Jvd3MpICAgICAgICAgPE51bWJlciBvZiByb3dzIHRvIHNraXA+IgotICAgcHV0cyAkb3AgIiMgc2V0IHZhcnMoPHBvd2VyX2RvbWFpbj4sYmFja190b19iYWNrX2NoYWluKSA8dHJ1ZXxmYWxzZT4iCi0gICBwdXRzICRvcCAiIyAuLi4gQ29ubmVjdHMgdGhlIGVuYWJsZU5ldE91dCBhdCB0aGUgdG9wIG9mIGEgY29sdW1uIHRvIHRoZSBlbmFibGVOZXRJbiBhdCB0aGUgdG9wIG9mICIKLSAgIHB1dHMgJG9wICIjIC4uLiB0aGUgbmV4dCBjb2x1bW4sIGFuZCBjb25uZWN0cyB0aGUgZW5hYmxlTmV0T3V0IGF0IHRoZSBib3R0b20gb2YgdGhlIGNvbHVtbiB0byB0aGUgIgotICAgcHV0cyAkb3AgIiMgLi4uIGVuYWJsZU5ldEluIGF0IHRoZSBib3R0b20gb2YgdGhlIG5leHQgY29sdW1uIgotICAgcHV0cyAkb3AgIiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIKLSAgIHB1dHMgJG9wICIjIEJlbG93IHZhcmlhYmxlcyBhcmUgZm9yIHJpbmcgYmFzZWQgcHNvIGltcGxlbWV0YXRpb24iCi0gICBwdXRzICRvcCAiIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIgotICAgcHV0cyAkb3AgIiMgc2V0IHZhcnMoPHBvd2VyX2RvbWFpbj4sdG9wX3JpbmcpICAgICA8MXwwPiIKLSAgIHB1dHMgJG9wICIjIHNldCB2YXJzKDxwb3dlcl9kb21haW4+LGJvdHRvbV9yaW5nKSAgPDF8MD4iCi0gICBwdXRzICRvcCAiIyBzZXQgdmFycyg8cG93ZXJfZG9tYWluPixyaWdodF9yaW5nKSAgIDwxfDA+IgotICAgcHV0cyAkb3AgIiMgc2V0IHZhcnMoPHBvd2VyX2RvbWFpbj4sbGVmdF9yaW5nKSAgICA8MXwwPiIKLSAgIHB1dHMgJG9wICIjIC4uLiBkZWZpbmVzIHdoaWNoIHNpZGUgb2YgdGhlIHBvd2VyIGRvbWFpbiB0byBpbnNlcnQgc3dpdGNoZXM6IgotICAgcHV0cyAkb3AgIiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIKLSAgIHB1dHMgJG9wICIjIHNldCB2YXJzKDxwb3dlcl9kb21haW4+LHRvcF9zd2l0Y2hfY2VsbCkgICAgPHBzbyBjZWxsIG5hbWU+IgotICAgcHV0cyAkb3AgIiMgc2V0IHZhcnMoPHBvd2VyX2RvbWFpbj4sYm90dG9tX3N3aXRjaF9jZWxsKSA8cHNvIGNlbGwgbmFtZT4iCi0gICBwdXRzICRvcCAiIyBzZXQgdmFycyg8cG93ZXJfZG9tYWluPixsZWZ0X3N3aXRjaF9jZWxsKSAgIDxwc28gY2VsbCBuYW1lPiIKLSAgIHB1dHMgJG9wICIjIHNldCB2YXJzKDxwb3dlcl9kb21haW4+LHJpZ2h0X3N3aXRjaF9jZWxsKSAgPHBzbyBjZWxsIG5hbWU+IgotICAgcHV0cyAkb3AgIiMgLi4uIGRlZmluZSBwc28gY2VsbCBuYW1lIGZvciBlYWNoIHNpZGUgb2YgdGhlIHBvd2VyIGRvbWFpbiIKLSAgIHB1dHMgJG9wICIjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iCi0gICBwdXRzICRvcCAiIyBzZXQgdmFycyg8cG93ZXJfZG9tYWluPix0b3BfZmlsbGVyX2NlbGwpICAgIDxmaWxsZXIgY2VsbCBuYW1lPiIKLSAgIHB1dHMgJG9wICIjIHNldCB2YXJzKDxwb3dlcl9kb21haW4+LGJvdHRvbV9maWxsZXJfY2VsbCkgPGZpbGxlciBjZWxsIG5hbWU+IgotICAgcHV0cyAkb3AgIiMgc2V0IHZhcnMoPHBvd2VyX2RvbWFpbj4sbGVmdF9maWxsZXJfY2VsbCkgICA8ZmlsbGVyIGNlbGwgbmFtZT4iCi0gICBwdXRzICRvcCAiIyBzZXQgdmFycyg8cG93ZXJfZG9tYWluPixyaWdodF9maWxsZXJfY2VsbCkgIDxmaWxsZXIgY2VsbCBuYW1lPiIKLSAgIHB1dHMgJG9wICIjIHNldCB2YXJzKDxwb3dlcl9kb21haW4+LGNvcm5lcl9jZWxsX2xpc3QpICAgPGNvcm5lciBjZWxsIG5hbWU+IgotICAgcHV0cyAkb3AgIiMgLi4uIGRlZmluZSBmaWxsZXIgY2VsbCBuYW1lIGZvciBlYWNoIHNpZGUgb2YgdGhlIHBvd2VyIGRvbWFpbiIKLSAgIHB1dHMgJG9wICIjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iCi0gICBwdXRzICRvcCAiIyBzZXQgdmFycyg8cG93ZXJfZG9tYWluPixkaXN0cmlidXRlKSAgICAgICAgIDx0cnVlIG9yIGZhbHNlPiIKLSAgIHB1dHMgJG9wICIjIHNldCB2YXJzKDxwb3dlcl9kb21haW4+LHRvcF9zd2l0Y2hlcykgICAgICAgPGludGVnZXI+IgotICAgcHV0cyAkb3AgIiMgc2V0IHZhcnMoPHBvd2VyX2RvbWFpbj4sYm90dG9tX3N3aXRjaGVzKSAgICA8aW50ZWdlcj4iCi0gICBwdXRzICRvcCAiIyBzZXQgdmFycyg8cG93ZXJfZG9tYWluPixsZWZ0X3N3aXRjaGVzKSAgICAgIDxpbnRlZ2VyPiIKLSAgIHB1dHMgJG9wICIjIHNldCB2YXJzKDxwb3dlcl9kb21haW4+LHJpZ2h0X3N3aXRjaGVzKSAgICAgPGludGVnZXI+IgotICAgcHV0cyAkb3AgIiMgLi4uIGRlZmluZSB0aGUgbnVtYmVyIG9mIHN3aXRjaGVzIGZvciBlYWNoIHNpZGUgb2YgdGhlIHBvd2VyIGRvbWFpbiIKLSAgIHB1dHMgJG9wICIjIgotCi0gICBjbG9zZSAkb3AKLQotICAgUHV0cyAiPEZGPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iCi0gICBQdXRzICI8RkY+IENyZWF0ZWQgbG93IHBvd2VyIGNvbmZpZyBmaWxlIFwibHBfY29uZmlnLmF1dG8udGNsXCIiCi0gICBQdXRzICI8RkY+ICAgIFRoaXMgZmlsZSBpcyB1c2VkIHRvIGRlZmluZSB2YXJpYWJsZXMgc3BlY2lmaWMgdG8gdGhlIExQIGZvdW5kYXRpb24gZmxvdy4iCi0gICBQdXRzICI8RkY+ICAgIEFsbCB0aGUgaW5mb3JtYWl0b24gaW4gdGhpcyBmaWxlIGlzIG9wdGlvbmFsIGJ1dCBpcyBpbnRlbmRlZCB0byBoZWxwICIKLSAgIFB1dHMgIjxGRj4gICAgYXV0b21hdGUgc29tZSBvZiB0aGUgbW9zdCBjb21tb24gTFAgY29tbWFuZHMuICBQbGVhc2UgZWRpdCBhbmQgY29weSIKLSAgIFB1dHMgIjxGRj4gICAgdG8gbHBfY29uZmlnLnRjbCB0byBlbmFibGUgKG1ha2Ugc3VyZSBpdCBpcyBzb3VyY2VkIGZyb20gc2V0dXAudGNsKS4iCi0KLX0KLQotcHJvYyBjcmVhdGVfaW52c190YWdfZmlsZSB7fSB7Ci0KLSAgIGdsb2JhbCB2YXJzCi0gICBnbG9iYWwgdGFncwotCi0gICBzZXQgc3RlcHMgW2xpc3QgImZlZWR0aHJvdWdoIiAiYXNzaWduX3BpbiIgIm1vZGVsX2dlbiIgInBhcnRpdGlvbiIgXAotICAgICAgICAgICAgICAgICAiaW5pdCIgInBsYWNlIiAicHJlY3RzIiAiY3RzIiAicG9zdGN0cyIgInBvc3RjdHNfaG9sZCIgInJvdXRlIiBcCi0gICAgICAgICAgICAgICAgICJwb3N0cm91dGUiICJwb3N0cm91dGVfaG9sZCIgInNpZ25vZmYiICJhc3NlbWJsZSJdCi0KLSAgIHNldCB0YWdzKGluaXQpIFtsaXN0IFwKLSAgICAgIHNldF9kaXN0cmlidXRlX2hvc3QgXAotICAgICAgc2V0X211bHRpX2NwdV91c2FnZSBcCi0gICAgICBzZXRfZGlzdHJpYnV0ZV9ob3N0IFwKLSAgICAgIHNldF9tdWx0aV9jcHVfdXNhZ2UgXAotICAgICAgc2V0X3JjX2ZhY3RvciBcCi0gICAgICBkZXJhdGVfdGltaW5nIFwKLSAgICAgIGNyZWF0ZV9yY19jb3JuZXIgXAotICAgICAgY3JlYXRlX2xpYnJhcnlfc2V0IFwKLSAgICAgIGNyZWF0ZV9kZWxheV9jb3JuZXIgXAotICAgICAgY3JlYXRlX2NvbnN0cmFpbnRfbW9kZSBcCi0gICAgICBjcmVhdGVfYW5hbHlzaXNfdmlldyBcCi0gICAgICB1cGRhdGVfZGVsYXlfY29ybmVyIFwKLSAgICAgIHVwZGF0ZV9saWJyYXJ5X3NldCBcCi0gICAgICBkZXJhdGVfdGltaW5nIFwKLSAgICAgIHNldF9kZWZhdWx0X3ZpZXcgXAotICAgICAgc2V0X3Bvd2VyX2FuYWx5c2lzX21vZGUgXAotICAgICAgaW5pdF9kZXNpZ24gXAotICAgICAgbG9hZF9mbG9vcnBsYW4gXAotICAgICAgZ2VuZXJhdGVfdHJhY2tzIFwKLSAgICAgIGxvYWRfY3BmIFwKLSAgICAgIGNvbW1pdF9jcGYgXAotICAgICAgcmVhZF9hY3Rpdml0eV9maWxlIFwKLSAgICAgIHNwZWNpZnlfaWxtIFwKLSAgICAgIGxvYWRfaWxtX25vbl9zZGNfZmlsZSBcCi0gICAgICBpbml0aWFsaXplX3RpbWluZyBcCi0gICAgICBsb2FkX3NjYW4gXAotICAgICAgc3BlY2lmeV9zcGFyZV9nYXRlcyBcCi0gICAgICBzZXRfZG9udF91c2UgXAotICAgICAgc2V0X21heF9yb3V0ZV9sYXllciBcCi0gICAgICBzZXRfZGVzaWduX21vZGUgXAotICAgICAgaW5zZXJ0X3dlbGx0YXBzX2VuZGNhcHMgXAotICAgICAgdGltZV9kZXNpZ24gXAotICAgICAgY2hlY2tfZGVzaWduIFwKLSAgICAgIGNoZWNrX3RpbWluZyBcCi0gICAgICByZXBvcnRfcG93ZXJfZG9tYWlucyBcCi0gICAgICBmZl9yZXBsYWNlX2ZsZXhtb2RlbF93aXRoX2Z1bGxfbmV0bGlzdCBcCi0gICBdCi0gICBzZXQgdGFncyhwbGFjZSkgW2xpc3QgXAotICAgICAgc2V0X2Rpc3RyaWJ1dGVfaG9zdCBcCi0gICAgICBzZXRfbXVsdGlfY3B1X3VzYWdlIFwKLSAgICAgIHJlc3RvcmVfZGVzaWduIFwKLSAgICAgIGluaXRpYWxpemVfc3RlcCBcCi0gICAgICAgICBzZXRfZGVzaWduX21vZGUgXAotICAgICAgICAgc2V0X2RlbGF5X2NhbF9tb2RlIFwKLSAgICAgICAgIHNldF9wbGFjZV9tb2RlIFwKLSAgICAgICAgIHNldF9vcHRfbW9kZSBcCi0gICAgICAgICBzZXRfdGllX2hpbG9fbW9kZSBcCi0gICAgICAgICBjbGVhbnVwX3NwZWNpZnlfY2xvY2tfdHJlZSBcCi0gICAgICAgICBzcGVjaWZ5X2Nsb2NrX3RyZWUgXAotICAgICAgc3BlY2lmeV9qdGFnIFwKLSAgICAgIHBsYWNlX2p0YWcgXAotICAgICAgcGxhY2VfZGVzaWduIFwKLSAgICAgIHBsYWNlX29wdF9kZXNpZ24gXAotICAgICAgYWRkX3RpZV9jZWxscyBcCi0gICAgICB0aW1lX2Rlc2lnbiBcCi0gICAgICBzYXZlX2Rlc2lnbiBcCi0gICAgICByZXBvcnRfcG93ZXIgXAotICAgICAgdmVyaWZ5X3Bvd2VyX2RvbWFpbiBcCi0gICAgICBydW5fY2xwIFwKLSAgIF0KLSAgIHNldCB0YWdzKHByZWN0cykgW2xpc3QgXAotICAgICAgc2V0X2Rpc3RyaWJ1dGVfaG9zdCBcCi0gICAgICBzZXRfbXVsdGlfY3B1X3VzYWdlIFwKLSAgICAgIGluaXRpYWxpemVfc3RlcCBcCi0gICAgICAgICBzZXRfZGVzaWduX21vZGUgXAotICAgICAgICAgc2V0X2lsbV90eXBlIFwKLSAgICAgICAgIGNsZWFudXBfc3BlY2lmeV9jbG9ja190cmVlIFwKLSAgICAgICAgIGNyZWF0ZV9jbG9ja190cmVlX3NwZWMgXAotICAgICAgICAgc3BlY2lmeV9jbG9ja190cmVlIFwKLSAgICAgICAgIHNldF91c2VmdWxfc2tld19tb2RlIFwKLSAgICAgICAgIHNldF9vcHRfbW9kZSBcCi0gICAgICAgICBzZXRfZGVzaWduX21vZGUgXAotICAgICAgICAgc2V0X2RlbGF5X2NhbF9tb2RlIFwKLSAgICAgICAgIHNldF9kb250X3VzZSBcCi0gICAgICBvcHRfZGVzaWduIFwKLSAgICAgIGNrX2Nsb25lX2dhdGUgXAotICAgICAgc2F2ZV9kZXNpZ24gXAotICAgICAgcmVwb3J0X3Bvd2VyIFwKLSAgICAgIHZlcmlmeV9wb3dlcl9kb21haW4gXAotICAgICAgcnVuX2NscCBcCi0gICBdCi0gICBzZXQgdGFncyhjdHMpIFtsaXN0IFwKLSAgICAgIHNldF9kaXN0cmlidXRlX2hvc3QgXAotICAgICAgc2V0X211bHRpX2NwdV91c2FnZSBcCi0gICAgICBpbml0aWFsaXplX3N0ZXAgXAotICAgICAgICAgc2V0X2Rlc2lnbl9tb2RlIFwKLSAgICAgICAgIHNldF9jdHNfbW9kZSBcCi0gICAgICAgICBzZXRfY2NvcHRfbW9kZSBcCi0gICAgICAgICBzZXRfbmFub3JvdXRlX21vZGUgXAotICAgICAgZW5hYmxlX2Nsb2NrX2dhdGVfY2VsbHMgXAotICAgICAgY2xlYW51cF9zcGVjaWZ5X2Nsb2NrX3RyZWUgXAotICAgICAgY3JlYXRlX2Nsb2NrX3RyZWVfc3BlYyBcCi0gICAgICBzcGVjaWZ5X2Nsb2NrX3RyZWUgXAotICAgICAgY2xvY2tfZGVzaWduIFwKLSAgICAgIGNjb3B0X2Rlc2lnbiBcCi0gICAgICBkaXNhYmxlX2Nsb2NrX2dhdGVfY2VsbHMgXAotICAgICAgcnVuX2Nsb2NrX2VjbyBcCi0gICAgICB1cGRhdGVfdGltaW5nIFwKLSAgICAgIHRpbWVfZGVzaWduIFwKLSAgICAgIHNhdmVfZGVzaWduIFwKLSAgICAgIHJlcG9ydF9wb3dlciBcCi0gICAgICB2ZXJpZnlfcG93ZXJfZG9tYWluIFwKLSAgICAgIHJ1bl9jbHAgXAotICAgXQotICAgc2V0IHRhZ3MocG9zdGN0cykgW2xpc3QgXAotICAgICAgc2V0X2Rpc3RyaWJ1dGVfaG9zdCBcCi0gICAgICBzZXRfbXVsdGlfY3B1X3VzYWdlIFwKLSAgICAgIGluaXRpYWxpemVfc3RlcCBcCi0gICAgICAgICBzZXRfZGVzaWduX21vZGUgXAotICAgICAgICAgc2V0X2RlbGF5X2NhbF9tb2RlIFwKLSAgICAgICAgIHNldF9hbmFseXNpc19tb2RlIFwKLSAgICAgICAgIHNldF9vcHRfbW9kZSBcCi0gICAgICBvcHRfZGVzaWduIFwKLSAgICAgIHNhdmVfZGVzaWduIFwKLSAgICAgIHJlcG9ydF9wb3dlciBcCi0gICAgICB2ZXJpZnlfcG93ZXJfZG9tYWluIFwKLSAgICAgIHJ1bl9jbHAgXAotICAgXQotICAgc2V0IHRhZ3MocG9zdGN0c19ob2xkKSBbbGlzdCBcCi0gICAgICBzZXRfZGlzdHJpYnV0ZV9ob3N0IFwKLSAgICAgIHNldF9tdWx0aV9jcHVfdXNhZ2UgXAotICAgICAgaW5pdGlhbGl6ZV9zdGVwIFwKLSAgICAgICAgIHNldF9kb250X3VzZSBcCi0gICAgICAgICBzZXRfb3B0X21vZGUgXAotICAgICAgb3B0X2Rlc2lnbiBcCi0gICAgICBzYXZlX2Rlc2lnbiBcCi0gICAgICByZXBvcnRfcG93ZXIgXAotICAgICAgdmVyaWZ5X3Bvd2VyX2RvbWFpbiBcCi0gICAgICBydW5fY2xwIFwKLSAgIF0KLSAgIHNldCB0YWdzKHJvdXRlKSBbbGlzdCBcCi0gICAgICBzZXRfZGlzdHJpYnV0ZV9ob3N0IFwKLSAgICAgIHNldF9tdWx0aV9jcHVfdXNhZ2UgXAotICAgICAgaW5pdGlhbGl6ZV9zdGVwIFwKLSAgICAgICAgIHNldF9uYW5vcm91dGVfbW9kZSBcCi0gICAgICAgICBhZGRfZmlsbGVyX2NlbGxzIFwKLSAgICAgIHJvdXRlX3NlY29uZGFyeV9wZ19uZXRzIFwKLSAgICAgIGNoZWNrX3BsYWNlIFwKLSAgICAgIHJvdXRlX2Rlc2lnbiBcCi0gICAgICBydW5fY2xvY2tfZWNvIFwKLSAgICAgIHNwcmVhZF93aXJlcyBcCi0gICAgICBpbml0aWFsaXplX3RpbWluZyBcCi0gICAgICB0aW1lX2Rlc2lnbiBcCi0gICAgICBzYXZlX2Rlc2lnbiBcCi0gICAgICByZXBvcnRfcG93ZXIgXAotICAgICAgdmVyaWZ5X3Bvd2VyX2RvbWFpbiBcCi0gICAgICBydW5fY2xwIFwKLSAgIF0KLSAgIHNldCB0YWdzKHBvc3Ryb3V0ZSkgW2xpc3QgXAotICAgICAgc2V0X2Rpc3RyaWJ1dGVfaG9zdCBcCi0gICAgICBzZXRfbXVsdGlfY3B1X3VzYWdlIFwKLSAgICAgIGluaXRpYWxpemVfc3RlcCBcCi0gICAgICAgICBzZXRfZGVzaWduX21vZGUgXAotICAgICAgICAgc2V0X2V4dHJhY3RfcmNfbW9kZSBcCi0gICAgICAgICBzZXRfYW5hbHlzaXNfbW9kZSBcCi0gICAgICAgICBzZXRfZGVsYXlfY2FsX21vZGUgXAotICAgICAgYWRkX21ldGFsZmlsbCBcCi0gICAgICBvcHRfZGVzaWduIFwKLSAgICAgIHRyaW1fbWV0YWxmaWxsIFwKLSAgICAgIHNhdmVfZGVzaWduIFwKLSAgICAgIHJlcG9ydF9wb3dlciBcCi0gICAgICB2ZXJpZnlfcG93ZXJfZG9tYWluIFwKLSAgICAgIHJ1bl9jbHAgXAotICAgXQotICAgc2V0IHRhZ3MocG9zdHJvdXRlX2hvbGQpIFtsaXN0IFwKLSAgICAgIHNldF9kaXN0cmlidXRlX2hvc3QgXAotICAgICAgc2V0X211bHRpX2NwdV91c2FnZSBcCi0gICAgICBpbml0aWFsaXplX3N0ZXAgXAotICAgICAgICAgc2V0X2RvbnRfdXNlX21vZGUgXAotICAgICAgICAgc2V0X29wdF9tb2RlIFwKLSAgICAgIG9wdF9kZXNpZ24gXAotICAgICAgdHJpbV9tZXRhbGZpbGwgXAotICAgICAgc2F2ZV9kZXNpZ24gXAotICAgICAgcmVwb3J0X3Bvd2VyIFwKLSAgICAgIHZlcmlmeV9wb3dlcl9kb21haW4gXAotICAgICAgcnVuX2NscCBcCi0gICBdCi0gICBzZXQgdGFncyhzaWdub2ZmKSBbbGlzdCBcCi0gICAgICBzZXRfZGlzdHJpYnV0ZV9ob3N0IFwKLSAgICAgIHNldF9tdWx0aV9jcHVfdXNhZ2UgXAotICAgICAgaW5pdGlhbGl6ZV90aW1pbmcgXAotICAgICAgaW5pdGlhbGl6ZV9zdGVwIFwKLSAgICAgICAgIHNldF9hbmFseXNpc19tb2RlIFwKLSAgICAgICAgIHNldF9leHRyYWN0X3JjX21vZGUgXAotICAgICAgZXh0cmFjdF9yYyBcCi0gICAgICBkdW1wX3NwZWYgXAotICAgICAgc2lnbm9mZl90aW1lX2Rlc2lnbiBcCi0gICAgICB0aW1lX2Rlc2lnbl9zZXR1cCBcCi0gICAgICB0aW1lX2Rlc2lnbl9ob2xkIFwKLSAgICAgIHN0cmVhbV9vdXQgXAotICAgICAgc2F2ZV9vYV9kZXNpZ24gXAotICAgICAgY3JlYXRlX2lsbSBcCi0gICAgICBzdW1tYXJ5X3JlcG9ydCBcCi0gICAgICB2ZXJpZnlfY29ubmVjdGl2aXR5IFwKLSAgICAgIHZlcmlmeV9nZW9tZXRyeSBcCi0gICAgICB2ZXJpZnlfbWV0YWxfZGVuc2l0eSBcCi0gICAgICB2ZXJpZnlfcHJvY2Vzc19hbnRlbm5hIFwKLSAgICAgIHNhdmVfZGVzaWduIFwKLSAgICAgIHJlcG9ydF9wb3dlciBcCi0gICAgICB2ZXJpZnlfcG93ZXJfZG9tYWluIFwKLSAgICAgIHJ1bl9jbHAgXAotICAgCi0gICBdCi0gICBzZXQgdGFncyhmZWVkdGhyb3VnaCkgW2xpc3QgXAotICAgICAgaW5pdGlhbGl6ZV90aW1pbmcgXAotICAgICAgbG9hZF9jcGYgXAotICAgICAgY29tbWl0X2NwZiBcCi0gICAgICBydW5fY2xwX2luaXQgXAotICAgICAgc2F2ZV9pbml0X2RicyBcCi0gICAgICBzZXRfYnVkZ2V0aW5nX21vZGUgXAotICAgICAgdXBkYXRlX2NvbnN0cmFpbnRfbW9kZSBcCi0gICAgICBzZXRfcHRuX3VzZXJfY25zX2ZpbGUgXAotICAgICAgc2V0X3BsYWNlX21vZGUgXAotICAgICAgc2V0X3Byb3RvX21vZGVsIFwKLSAgICAgIHBsYWNlX2Rlc2lnbiBcCi0gICAgICB0aW1lX2Rlc2lnbiBcCi0gICAgICBzYXZlX3BsYWNlX2RicyBcCi0gICAgICBpbnNlcnRfcHRuX2ZlZWR0aHJvdWdoIFwKLSAgICAgIHRyaWFsX3JvdXRlIFwKLSAgICAgIHRyaWFsX3JvdXRlX3RpbWVfZGVzaWduIFwKLSAgIF0KLSAgIHNldCB0YWdzKGFzc2lnbl9waW4pIFtsaXN0IFwKLSAgICAgIGFzc2lnbl9wdG5fcGlucyBcCi0gICAgICBjaGVja19waW5fYXNzaWdubWVudCBcCi0gICAgICByZXBvcnRfdW5hbGlnbmVkX25ldHMgXAotICAgICAgdHJpYWxfcm91dGUgXAotICAgXQotICAgc2V0IHRhZ3MobW9kZWxfZ2VuKSBbbGlzdCBcCi0gICAgICBjcmVhdGVfcHNfcGVyX21pY3Jvbl9tb2RlbCBcCi0gICAgICBpZGVudGlmeV9wcm90b19tb2RlbCBcCi0gICAgICByZXBvcnRfcHJvdG9fbW9kZWwgXAotICAgICAgc2V0SWxtTW9kZSBcCi0gICAgICBjcmVhdGVfcHJvdG9fbW9kZWwgXAotICAgICAgY3JlYXRlX2ZsZXhmaWxsZXJfcm91dGVfYmxvY2thZ2UgXAotICAgICAgcmVwb3J0X3Byb3RvX21vZGVsIFwKLSAgICAgIHNhdmVEZXNpZ24gXAotICAgXQotICAgc2V0IHRhZ3MocGFydGl0aW9uKSBbbGlzdCBcCi0gICAgICB0aW1lX2Rlc2lnbl9wcm90byBcCi0gICAgICBzZXRfcHNwbV92YXJzIFwKLSAgICAgIHNldF9idWRnZXRpbmdfbW9kZSBcCi0gICAgICBzZXRfcHRuX3Bpbl9zdGF0dXMgXAotICAgICAgZGVyaXZlX3RpbWluZ19idWRnZXQgXAotICAgICAgc2F2ZV9idWRnZXRfZGJzIFwKLSAgICAgIHJ1bl9jbHAgXAotICAgICAgcGFydGl0aW9uIFwKLSAgICAgIHNhdmVfcGFydGl0aW9uIFwKLSAgIF0KLSAgIHNldCB0YWdzKGFzc2VtYmxlKSBbbGlzdCBcCi0gICAgICBhc3NlbWJsZV9kZXNpZ24gXAotICAgICAgc3BlY2lmeV9pbG0gXAotICAgICAgbG9hZF9pbG1fbm9uX3NkY19maWxlIFwKLSAgICAgIGxvYWRfY3BmIFwKLSAgICAgIGNvbW1pdF9jcGYgXAotICAgICAgaW5pdGlhbGl6ZV90aW1pbmcgXAotICAgICAgdXBkYXRlX3RpbWluZyBcCi0gICAgICBwcmVfc2lnbm9mZl9lY29fdmVyaWZ5X2Nvbm5lY3Rpdml0eSBcCi0gICAgICBwcmVfc2lnbm9mZl9lY29fdmVyaWZ5X2dlb21ldHJ5IFwKLSAgICAgIHNldF9tb2R1bGVfdmlldyBcCi0gICAgICBkZWxldGVfZmlsbGVyX2NlbGxzIFwKLSAgICAgIG9wdF9kZXNpZ24gXAotICAgICAgZXh0cmFjdF9yYyBcCi0gICAgICBzaWdub2ZmX29wdF9kZXNpZ24gXAotICAgICAgc2lnbm9mZl90aW1lX2Rlc2lnbiBcCi0gICAgICBhZGRfZmlsbGVyX2NlbGxzIFwKLSAgICAgIGVjb19yb3V0ZSBcCi0gICAgICBwb3N0X3NpZ25vZmZfZWNvX3ZlcmlmeV9jb25uZWN0aXZpdHkgXAotICAgICAgcG9zdF9zaWdub2ZmX2Vjb192ZXJpZnlfZ2VvbWV0cnkgXAotICAgXQotCi0gICBzZXQgb3AgW29wZW4gaW52cy5hdXRvLnRjbCB3XQotCi0gICBwdXRzICRvcCAiIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIgotICAgcHV0cyAkb3AgIiMgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENETlMgRk9VTkRBVElPTiBGTE9XIgotICAgcHV0cyAkb3AgIiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIKLSAgIHB1dHMgJG9wICIjIFRoaXMgaXMgdGhlIGZvdW5kYXRpb24gZmxvdyB0YWdzIGZpbGUuICBFYWNoIGZsb3cgc3RlcCBpcyBhIHNlcXVlbmNlIG9mIGNvbW1hbmRzIGFuZCIgCi0gICBwdXRzICRvcCAiIyBlYWNoIGNvbW1hbmQgaGFzIGEgdGFnIGFzc29jaWF0ZWQgd2l0aCBpdCBhbmQgZWFjaCB0YWcgaGFzIGZvdXIgYXR0cmlidXRlczoiCi0gICBwdXRzICRvcCAiIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIgotICAgcHV0cyAkb3AgIiMgICAgICAgcHJlX3RjbCAtPiBmaWxlIHRvIGJlIHNvdXJjZWQgcHJpb3IgdG8gdGhlIGNvbW1hbmQiCi0gICBwdXRzICRvcCAiIyAgICAgIHBvc3RfdGNsIC0+IGZpbGUgdG8gYmUgc291cmNlZCBhZnRlciB0aGUgY29tbWFuZCIKLSAgIHB1dHMgJG9wICIjICAgcmVwbGFjZV90Y2wgLT4gZmlsZSB0byBiZSBzb3VyY2VkIGluc3RlYWQgb2YgdGhlIGNvbW1hbmQiCi0gICBwdXRzICRvcCAiIyAgICAgICAgICBza2lwIC0+IHNraXAgdGhlIGNvbW1hbmQgZW50aXJlbHkgKHRydWUgfCBmYWxzZSkiCi0gICBwdXRzICRvcCAiIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIgotICAgcHV0cyAkb3AgIiMgVGhlc2UgYXR0cmlidXRlcyBwcm92aWRlIG1vcmUgZ3JhbnVsYXJpdHkgdGhhdCB0aGUgcGx1Zy1pbnMgYW5kIGFyZSBpbnRlbmRlZCB0byIKLSAgIHB1dHMgJG9wICIjIGFsbG93IGZvciBmbG93IGN1c3RvbWl6YXRpb24gYXQgYSB2ZXJ5IGRldGFpbGVkIGxldmVsLiAgVG8gZW5hYmxlLCBzaW1wbHkgdW5jb21tZW50IgotICAgcHV0cyAkb3AgIiMgdGhlIHRhZywgYXNzaWduIHRoZSBhcHByb3ByaWF0ZSB2YWx1ZSwgYW5kIG1ha2Ugc3VyZSB0aGlzIGZpbGUgZ2V0cyBzb3VyY2VkIgotICAgcHV0cyAkb3AgIiMgZnJvbSB0aGUgc2V0dXAudGNsIG9yIGlubm92dXNfY29uZmlnLnRjbC4gIEtlZXAgaW4gbWluZCwgdGhlc2UgdGFncyB3aWxsIG9ubHkiCi0gICBwdXRzICRvcCAiIyBiZSBldmFsdWF0ZWQgaWYgdGhlIGNvbW1hbmQgdGhleSBhcmUgYXNzb2NpYXRlZCBpcyBleGVjdXRlZCBhcyBwYXJ0IG9mIHRoZSBmbG93IgotICAgcHV0cyAkb3AgIiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIKLSAgIHB1dHMgJG9wICIjICAgICAgICAgdmVyYm9zZSAtPiBQcmludCB0YWcgcmVsYXRlZCBjb21tZW50cyBmb3IgaW1wb3J0ZWQgdGFncyIKLSAgIHB1dHMgJG9wICIjIHZlcmJvc2l0eV9sZXZlbCAtPiBQcmludCB0YWcgcmVsYXRlZCBjb21tZW50cyBmb3IgQUxMIHBvc3NpYmxlIHRhZ3MgXFtMT1cgfCBISUdIXF0iCi0gICBwdXRzICRvcCAiIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIgotCi0gICBmb3JlYWNoIHN0ZXAgJHN0ZXBzIHsKLSAgICAgIGZvcmVhY2ggY29tbWFuZCAkdGFncygkc3RlcCkgewotICAgICAgICAgZm9yZWFjaCB0YWcgInByZV90Y2wgcG9zdF90Y2wgcmVwbGFjZV90Y2wgc2tpcCIgewotICAgICAgICAgICAgc2V0IHN0cmluZyAiI3NldCB2YXJzKCRzdGVwLCRjb21tYW5kLCR0YWcpIgotICAgICAgICAgICAgc2V0IGxlbmd0aCBbc3RyaW5nIGxlbmd0aCAkc3RyaW5nXQotICAgICAgICAgICAgc2V0IGRpZmYgW2V4cHIgNjAtJGxlbmd0aF0KLSAgICAgICAgICAgIHNldCBzcGFjZXMgW3N0cmluZyByZXBlYXQgIiAiICRkaWZmXQotICAgICAgICAgICAgaWYgeyR0YWcgPT0gInNraXAifSB7Ci0gICAgICAgICAgICAgICBwdXRzICRvcCBbZm9ybWF0ICIlcyVzJXMiICRzdHJpbmcgJHNwYWNlcyAiPHRydWUgb3IgZmFsc2U+Il0KLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBwdXRzICRvcCBbZm9ybWF0ICIlcyVzJXMiICRzdHJpbmcgJHNwYWNlcyAiPGZpbGU+Il0KLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0KLSAgICAgIH0KLSAgICAgIHB1dHMgJG9wICIjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iCi0gICB9Ci0KLX0KLQotcHJvYyBwYWQge2Ege2FkZCAwfX0gewotICAgCi0gICBpZiB7W2V4cHIgW3N0cmluZyBsZW5ndGggJGFdICsgJGFkZF0gPCA2fSB7Ci0gICAgICByZXR1cm4gIlx0XHRcdFx0IgotICAgfSBlbHNlaWYge1tleHByIFtzdHJpbmcgbGVuZ3RoICRhXSArICRhZGRdIDwgMTJ9IHsgCi0gICAgICByZXR1cm4gIlx0XHRcdCIKLSAgIH0gZWxzZWlmIHtbZXhwciBbc3RyaW5nIGxlbmd0aCAkYV0gKyAkYWRkXSA8IDE4fSB7IAotICAgICAgcmV0dXJuICJcdFx0IgotICAgfSBlbHNlaWYge1tleHByIFtzdHJpbmcgbGVuZ3RoICRhXSArICRhZGRdIDwgMjR9IHsgCi0gICAgICByZXR1cm4gIlx0IgotICAgfQotCi19Ci0KLXByb2MgZm9ybWF0X3N0cmluZyB7YSBiIHtsYXJnZSAwfX0gewotCi0gICBzZXQgYWRkIDAKLQotICAgaWYge1tyZWdleHAgIiMiICRhXX0gewotICAgICAgcmVnc3ViICIjIiAkYSAiIiBhCi0gICAgICBzZXQgYWRkIDEKLSAgIH0KLQotIyAgIHB1dHMgIiRhLCBbc3RyaW5nIGxlbmd0aCAkYV0iCi0KLSAgIGlmIHskbGFyZ2V9IHsKLSAgICAgIGlmIHtbZXhwciBbc3RyaW5nIGxlbmd0aCAkYV0gKyAkYWRkXSA8IDR9IHsKLSAgICAgICAgIHNldCB0YWJzICJcdFx0XHRcdFx0XHRcdFx0XHRcdCIKLSAgICAgIH0gZWxzZWlmIHtbZXhwciBbc3RyaW5nIGxlbmd0aCAkYV0gKyAkYWRkXSA8IDh9IHsgCi0gICAgICAgICBzZXQgdGFicyAiXHRcdFx0XHRcdFx0XHRcdFx0IgotICAgICAgfSBlbHNlaWYge1tleHByIFtzdHJpbmcgbGVuZ3RoICRhXSArICRhZGRdIDwgMTJ9IHsgCi0gICAgICAgICBzZXQgdGFicyAiXHRcdFx0XHRcdFx0XHRcdCIKLSAgICAgIH0gZWxzZWlmIHtbZXhwciBbc3RyaW5nIGxlbmd0aCAkYV0gKyAkYWRkXSA8IDE2fSB7IAotICAgICAgICAgc2V0IHRhYnMgIlx0XHRcdFx0XHRcdFx0IgotICAgICAgfSBlbHNlaWYge1tleHByIFtzdHJpbmcgbGVuZ3RoICRhXSArICRhZGRdIDwgMjB9IHsgCi0gICAgICAgICBzZXQgdGFicyAiXHRcdFx0XHRcdFx0IgotICAgICAgfSBlbHNlaWYge1tleHByIFtzdHJpbmcgbGVuZ3RoICRhXSArICRhZGRdIDwgMjR9IHsgCi0gICAgICAgICBzZXQgdGFicyAiXHRcdFx0XHRcdCIKLSAgICAgIH0gZWxzZWlmIHtbZXhwciBbc3RyaW5nIGxlbmd0aCAkYV0gKyAkYWRkXSA8IDI4fSB7IAotICAgICAgICAgc2V0IHRhYnMgIlx0XHRcdFx0IgotICAgICAgfSBlbHNlaWYge1tleHByIFtzdHJpbmcgbGVuZ3RoICRhXSArICRhZGRdIDwgMzJ9IHsgCi0gICAgICAgICBzZXQgdGFicyAiXHRcdFx0IgotICAgICAgfSBlbHNlIHsKLSAgICAgICAgIHNldCB0YWJzICJcdFx0IgotICAgICAgfQotICAgfSBlbHNlIHsKLSAgICAgIGlmIHtbZXhwciBbc3RyaW5nIGxlbmd0aCAkYV0gKyAkYWRkXSA8IDR9IHsKLSAgICAgICAgIHNldCB0YWJzICJcdFx0XHRcdFx0XHQiCi0gICAgICB9IGVsc2VpZiB7W2V4cHIgW3N0cmluZyBsZW5ndGggJGFdICsgJGFkZF0gPCA4fSB7IAotICAgICAgICAgc2V0IHRhYnMgIlx0XHRcdFx0XHQiCi0gICAgICB9IGVsc2VpZiB7W2V4cHIgW3N0cmluZyBsZW5ndGggJGFdICsgJGFkZF0gPCAxMn0geyAKLSAgICAgICAgIHNldCB0YWJzICJcdFx0XHRcdCIKLSAgICAgIH0gZWxzZWlmIHtbZXhwciBbc3RyaW5nIGxlbmd0aCAkYV0gKyAkYWRkXSA8IDE2fSB7IAotICAgICAgICAgc2V0IHRhYnMgIlx0XHRcdCIKLSAgICAgIH0gZWxzZWlmIHtbZXhwciBbc3RyaW5nIGxlbmd0aCAkYV0gKyAkYWRkXSA8IDIwfSB7IAotICAgICAgICAgc2V0IHRhYnMgIlx0XHQiCi0gICAgICB9IGVsc2UgewotICAgICAgICAgc2V0IHRhYnMgIlx0IgotICAgICAgfQotICAgfQotCi0gICAjIEhhbmRsZSB0aGUgZW1wdHkgc3RyaW5nIGNvcnJlY3RseQotICAgaWYgeyRiID09IHt9fSB7IHNldCBiIHt7fX0gfQotCi0gICBpZiB7JGFkZH0gewotICAgICAgcmV0dXJuIFtmb3JtYXQgIiNzZXQgJGElcyVzIiAkdGFicyAkYl0gCi0gICB9IGVsc2UgewotICAgICAgcmV0dXJuIFtmb3JtYXQgInNldCAkYSVzJXMiICR0YWJzICRiXSAKLSAgIH0KLX0KLQotcHJvYyBnZXRfbGluZV9tYXRjaCB7cGF0dGVybiBmaWxlIHtsYXN0IDF9fSB7Ci0KLSAgIHNldCBpcCBbb3BlbiAkZmlsZSByXQotCi0gICB3aGlsZSB7W2dldHMgJGlwIGxpbmVdPj0wfSB7Ci0gICAgICBpZiB7W3JlZ2V4cCAiJHBhdHRlcm4iICRsaW5lXT4wfSB7Ci0gICAgICAgIGlmIHskbGFzdH0gewotICAgICAgICAgICBzZXQgbWF0Y2ggJGxpbmUKLSAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgIGxhcHBlbmQgbWF0Y2ggJGxpbmUKLSAgICAgICAgIH0KLSAgICAgIH0KLSAgIH0KLSAgIGlmIHtbaW5mbyBleGlzdHMgbWF0Y2hdfSB7IAotICAgICAgcmV0dXJuICRtYXRjaAotICAgfQotfQotCi1zZXQgb3AxIFtvcGVuIHNldHVwLmF1dG8udGNsIHddCi1zZXQgb3AyIFtvcGVuIGlubm92dXNfY29uZmlnLmF1dG8udGNsIHddCi0KLXB1dHMgJG9wMSAiIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIgotcHV0cyAkb3AxICIjICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDRE5TIEZPVU5EQVRJT04gRkxPVyIKLXB1dHMgJG9wMSAiIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIgotcHV0cyAkb3AxICIjIFRoaXMgaXMgdGhlIGZvdW5kYXRpb24gZmxvdyBzZXR1cCBmaWxlLiAgSXQgY29udGFpbnMgYWxsIHRoZSBuZWNlc3NhcnkgZGVzaWduIgotcHV0cyAkb3AxICIjIGRhdGEgdG8gZHJpdmUgYWxsIHRoZSBDRE5TIGZvdW5kYXRpb24gZmxvd3MuIEVhY2ggZmxvdyBjYW4gYWxzbyBoYXZlIGFuIgotcHV0cyAkb3AxICIjIGFkZGl0aW9uYWwgY29uZmlndXJhdGlvbiBmaWxlIHRvIGRlZmluZSBmbG93IHNwZWNpZmljIGluZm9ybWF0aW9uOiIgCi1wdXRzICRvcDEgIiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIKLXB1dHMgJG9wMSAiIyBJTk5PVlVTIC0+ICAgaW5ub3Z1c19jb25maWcudGNsIChmb3IgZmxhdCBhbmQgaGllciBpbXBsZW1lbnRhdGlvbiBmbG93cykiCi1wdXRzICRvcDEgIiMgICAgICAgICArICAgICBscF9jb25maWcudGNsIChhZGRpdGlvbmFsIGluZm9ybWF0aW9uIGZvciBmbGF0IGFuZCBoaWVyIGxwIGZsb3dzKSIKLSNwdXRzICRvcDEgIiMgICAgICAgICAtPiBwcm90b19jb25maWcudGNsIChmb3IgdGhlIHByb3RvdHlwaW5nIGZsb3cpIgotI3B1dHMgJG9wMSAiIyAgICAgRVRTIC0+ICAgZXRzX2NvbmZpZy50Y2wiCi0jcHV0cyAkb3AxICIjICAgICBFUFMgLT4gICBlcHNfY29uZmlnLnRjbCIKLXB1dHMgJG9wMSAiIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIgotcHV0cyAkb3AxICIjIEEgc2luZ2xlIHNldHVwLnRjbCBpcyBhbGwgdGhhdCBpcyByZXF1aXJlZC4gIFRoZXNlIGFkZGl0aW9uYWwgZmlsZXMgYXJlIHRvIGVuYWJsZSAiCi1wdXRzICRvcDEgIiMgdGhlIHNoYXJpbmcgb2YgYSBzZXR1cC50Y2wgKGRlc2lnbiBkYXRhKSBhbW9uZ3N0IGRlc2lnbiBncm91cHMgd2hpbGUgYWxzbyBhbGxvd2luZyIgCi1wdXRzICRvcDEgIiMgZGlmZmVyZW50IGZsb3cgb3B0aW9ucyB0byBiZSBzZXQgaW4gdGhlICpfY29uZmlnLmNsIGZpbGVzIGZvciBkaWZmZXJlbnQgYmxvY2tzIG9yIHJ1bnMiCi1wdXRzICRvcDEgIiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyIKLXB1dHMgJG9wMSAiIgotCi1wdXRzICRvcDIgIiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyIKLXB1dHMgJG9wMiAiIyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSU5OT1ZVUyBGT1VOREFUSU9OIEZMT1ciCi1wdXRzICRvcDIgIiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIKLXB1dHMgJG9wMiAiIyBUaGlzIGlzIHRoZSBJTk5PVlVTIGZvdW5kYXRpb24gZmxvdyBjb25maWd1cmF0aW9uIGZpbGUuICBJdCBjb250YWlucyBhbGwgdGhlIG5lY2Vzc2FyeSBmbG93IgotcHV0cyAkb3AyICIjIG9wdGlvbnMgdG8gZHJpdmUgdGhlIENETlMgZmxhdCBhbmQvb3IgaGllciBpbXBsZW1lbnRhdGlvbiBmbG93cy4gIgotcHV0cyAkb3AyICIjIEZvciBsb3cgcG93ZXIgZmxvd3MsIGFuIG9wdGlvbmFsL2FkZGl0aW9uYWwgY29uZmlndXJhdGlvbiBmaWxlIChscF9jb25maWcudGNsKSBjYW4gYmUgIgotcHV0cyAkb3AyICIjIHVzZWQgdG8gZW5hYmxlIGxvdyBwb3dlciBmb3VuZGF0aW9uIGZsb3cgZmVhdHVyZXMgYW5kIGRlZmluZSBkb21haW4gc3BlY2lmaWMgaW5mb3JtYXRpb24uIgotcHV0cyAkb3AyICIjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iCi1pZiB7IVtpbmZvIGV4aXN0cyB2YXJzKHZlcnNpb24pXX0gewotICAgIHNldCB2YXJzKHZlcnNpb24pIDE3LjEuMAotfQotaWYge1tsaW5kZXggW3NwbGl0ICR2YXJzKHZlcnNpb24pICIuIl0gIDBdIDw9IDEwICYmIFtsbGVuZ3RoIFthbGxfYW5hbHlzaXNfdmlld3NdXSA9PSAyfSB7Ci0gICBwdXRzICJDb252ZXJ0aW5nIGRlZmF1bHQgdGltaW5nIGVudmlyb25tZW50IHRvIE1NTUMiIAotICAgY29udjJtbW1jCi19Ci0KLWdsb2JhbCByZGFfSW5wdXQKLQotcHV0cyAkb3AxICIjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMiCi1wdXRzICRvcDEgIiMgVGhlIHZhcmlhYmxlIHZhcnModmVyc2lvbikgdGVsbHMgdGhlIGNvZGUgZ2VuZXJhdG9yIHdoaWNoIHZlcnNpb24gb2YgSU5OT1ZVUyB5b3Ugd2lsbCBiZSIKLXB1dHMgJG9wMSAiIyB0YXJnZXRpbmcuIgotcHV0cyAkb3AxICIjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iCi1wdXRzICRvcDEgInNldCB2YXJzKHZlcnNpb24pICR2YXJzKHZlcnNpb24pIgotI3B1dHMgJG9wMSAiIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIgotI3B1dHMgJG9wMSAiIyBGb3Igbm9uLWNvZGdlbiBmbG93LCB0aGUgZm9sbG93aW5nIG11c3QgYmUgc2V0IC0gaXQgc2hvdWxkIHBvaW50IHRvIHRoZSBmb3VuZGF0aW9uICIgCi0jcHV0cyAkb3AxICIjIGZsb3cgaW5zdGFsbGF0aW9uIGRpcmVjdG9yeSIKLXB1dHMgJG9wMSAiIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIgotI3B1dHMgJG9wMSAiI3NldCB2YXJzKHNjcmlwdF9yb290KSBTQ1JJUFRTIgotI3B1dHMgJG9wMSAiIgotI3B1dHMgJG9wMiAiIyBUaGUgdmFycyhmbG93KSB2YXJpYWJsZSBjYW4gYmUgdXNlZCB0byBkZWZpbmUgdGhlIHR5cGUgb2YgZmxvdyB0byBydW4uIElmIG5vdCBzZXQsIiAKLSNwdXRzICRvcDIgIiMgbW1tYyB3aWxsIGJlIHVzZWQuICBTdXBwb3J0ZWQgdmFsdWVzIGFyZToiCi0jcHV0cyAkb3AyICIjICAgIC0gZGVmYXVsdCAobWlubWF4IHRpbWluZykiCi0jcHV0cyAkb3AyICIjICAgIC0gcHJfbW1tYyAobWlubWF4IHRpbWluZyBwcmUtcm91dGUsIG1tbWMgdGltaW5nIHBvc3Qtcm91dGUpIgotI3B1dHMgJG9wMiAiIyAgICAtIG1tbWMgICAgKG1tbWMgdGltaW5nKSIKLSNwdXRzICRvcDIgIiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyIKLSNpZiB7W2luZm8gZXhpc3RzIDo6Q1BGOjpjcGZDb21taXR0ZWRdfSB7Ci0jICAgcHV0cyAkb3AyICJzZXQgdmFycyhmbG93KSAgICAgbW1tYyIKLSN9IGVsc2UgewotIyAgIHB1dHMgJG9wMiAic2V0IHZhcnMoZmxvdykgICAgIGRlZmF1bHQiCi0jfQotcHV0cyAkb3AyICJzZXQgdmFycyhwbHVnX2RpcikgUExVRy9JTk5PVlVTIgotcHV0cyAkb3AyICJzZXQgdmFycyhkYnNfZGlyKSAgREJTIgotcHV0cyAkb3AyICJzZXQgdmFycyhsb2dfZGlyKSAgTE9HIgotcHV0cyAkb3AyICJzZXQgdmFycyhycHRfZGlyKSAgUlBUIgotcHV0cyAkb3AyICIjIFlvdSBjYW4gc2V0IGEgcmVwb3J0IGRpcmVjdG9yeSBwZXIgc3RlcCB1c2luZyB2YXJzKDxzdGVwPixycHRfZGlyKSAuLi4iCi1wdXRzICRvcDIgIiIKLQotaWYge1tpbmZvIGV4aXN0cyByZGFfSW5wdXQodWlfbmV0bGlzdCldfSB7Ci0gICBzZXQgdmFycyhuZXRsaXN0KSBbbGlzdF0KLSAgIGZvcmVhY2ggIGZpbGUgJHJkYV9JbnB1dCh1aV9uZXRsaXN0KSB7Ci0gICAgICBsYXBwZW5kIHZhcnMobmV0bGlzdCkgW2ZpbGUgbm9ybWFsaXplICRmaWxlXQotICAgfSAgCi19IGVsc2UgewotICAgY2F0Y2gge3NldCB2YXJzKG5ldGxpc3QpIFtmaWxlIG5vcm1hbGl6ZSBbbGluZGV4IFtnZXRfbGluZV9tYXRjaCAiUmVhZGluZyBuZXRsaXN0IGZpbGUiIFtnZXRMb2dGaWxlTmFtZV1dIDNdXX0KLX0KLWNhdGNoIHtzZXQgdmFycyhmcF9maWxlKSBbZmlsZSBub3JtYWxpemUgW2xpbmRleCBbZ2V0X2xpbmVfbWF0Y2ggIlJlYWRpbmcgZmxvb3JwbGFuIiBbZ2V0TG9nRmlsZU5hbWVdXSA0XV19Ci0jY2F0Y2gge3NldCB2YXJzKGN0c19zcGVjKSBbcmVnc3ViIC1hbGwgIiciICBbbGluZGV4IFtnZXRfbGluZV9tYXRjaCAiUmVhZGluZyBjbG9jayB0cmVlIHNwZWMgZmlsZSIgW2dldExvZ0ZpbGVOYW1lXV0gNV0gIiJdfQotI2NhdGNoIHtzZXQgdmFycyhjdHNfc3BlYykgW3JlZ3N1YiAtYWxsICJcIiIgJHZhcnMoY3RzX3NwZWMpXSAiIn0KLXNldCB2YXJzKGN0c19zcGVjKSAiIgotc2V0IHNwZWNPcHQgW2NrR2V0Q2tTcGVjT3B0aW9uXQotIGZvciB7IHNldCBpIDAgfSB7ICRpIDwgW2xsZW5ndGggJHNwZWNPcHRdIH0geyBpbmNyIGkgfSB7Ci0gICBpZiB7IFtzdHJpbmcgbWF0Y2ggLW5vY2FzZSBbbGluZGV4ICRzcGVjT3B0ICRpXSAiLWZpbGUiIF0gfHwgIFtzdHJpbmcgbWF0Y2ggLW5vY2FzZSBbbGluZGV4ICRzcGVjT3B0ICRpXSAiLXNwZWNGaWxlIiBdICB9IHsKLSAgICAgIGluY3IgaQotICAgICAgc2V0IGNsa0ZpbGUgW2xpbmRleCAkc3BlY09wdCAkaV0KLSAgICAgIGlmIHsgW2ZpbGUgZXhpc3RzICRjbGtGaWxlIF0gfSB7Ci0gICAgICAgICBpZiB7IFtsc2VhcmNoIC1leGFjdCAkdmFycyhjdHNfc3BlYykgJGNsa0ZpbGVdID09IC0xIH0gewotICAgICAgICAgICAgICBsYXBwZW5kIHZhcnMoY3RzX3NwZWMpIFtmaWxlIG5vcm1hbGl6ZSAkY2xrRmlsZV0KLSAgICAgICAgIH0KLSAgICAgIH0KLSAgIH0KLX0KLQotZm9yZWFjaCBvcHRpb24gW2dldERlc2lnbk1vZGUgLXF1aWV0XSB7Ci0gICBpZiB7W2xpbmRleCAkb3B0aW9uIDBdID09ICJwcm9jZXNzIn0gewotICAgICAgc2V0IHZhcnMocHJvY2VzcykgW2xpbmRleCAkb3B0aW9uIDFdbm0KLSAgIH0KLX0KLWNhdGNoIHtzZXQgdmFycyhtYXhfcm91dGVfbGF5ZXIpIFtnZXRNYXhSb3V0ZUxheWVyXX0KLQotcHV0cyAkb3AxICIjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIgotcHV0cyAkb3AxICIjIERlZmluZSBkZXNpZ24gZGF0YSAuLi4iCi1wdXRzICRvcDEgIiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMiCi1wdXRzICRvcDEgW2Zvcm1hdF9zdHJpbmcgdmFycyhkZXNpZ24pIFtkYkNlbGxOYW1lIFtkYmdUb3BDZWxsXV1dCi0KLWlmIHtbbGluZGV4IFtzcGxpdCAkdmFycyh2ZXJzaW9uKSAiLiJdICAwXSA+IDEwfSB7Ci0gICBpZiB7W2luZm8gZXhpc3RzIGluaXRfdmVyaWxvZ10gJiYgKCRpbml0X3Zlcmlsb2cgIT0gIiIpfSB7IAotICAgICBzZXQgdmFycyhuZXRsaXN0KSAkaW5pdF92ZXJpbG9nCi0gICB9Ci0gICBpZiB7W2luZm8gZXhpc3RzIGluaXRfb2FfcmVmX2xpYl0gJiYgKCRpbml0X29hX3JlZl9saWIgIT0gIiIpfSB7IAotICAgICBzZXQgdmFycyhvYV9yZWZfbGliKSAkaW5pdF9vYV9yZWZfbGliCi0gICB9Ci0jICAgICAgY2F0Y2gge3NldCByZXN0b3JlX2Rlc2lnbiBbZ2V0X2xpbmVfbWF0Y2ggInJlc3RvcmVEZXNpZ24iIFtnZXRMb2dGaWxlTmFtZV19Ci0jICAgICAgc2V0IHZhcnMobmV0bGlzdF90eXBlKSBvYQotIyAgICAgIHNldCB2YXJzKG9hX2Rlc2lnbl9saWIpICBbbGluZGV4ICRyZXN0b3JlX2Rlc2lnbiAxXQotIyAgICAgIHNldCB2YXJzKG9hX2Rlc2lnbl9jZWxsKSBbbGluZGV4ICRyZXN0b3JlX2Rlc2lnbiAyXQotIyAgICAgIHNldCB2YXJzKG9hX2Rlc2lnbl92aWV3KSBbbGluZGV4ICRyZXN0b3JlX2Rlc2lnbiAzXQotICAgaWYge1tpbmZvIGV4aXN0cyBpbml0X2Fic3RyYWN0X3ZpZXddICYmICgkaW5pdF9hYnN0cmFjdF92aWV3ICE9ICIiKX0gewotICAgICAgc2V0IHZhcnMob2FfYWJzdHJhY3RfbmFtZSkgJGluaXRfYWJzdHJhY3RfdmlldwotICAgfQotICAgaWYge1tpbmZvIGV4aXN0cyBpbml0X29hX2Rlc2lnbl9saWJdICYmICgkaW5pdF9vYV9kZXNpZ25fbGliICE9ICIiKX0gewotICAgICAgc2V0IHZhcnMob2FfZGVzaWduX2xpYikgJGluaXRfb2FfZGVzaWduX2xpYgotICAgfQotICAgaWYge1tpbmZvIGV4aXN0cyBpbml0X29hX2Rlc2lnbl9jZWxsXSAmJiAoJGluaXRfb2FfZGVzaWduX2NlbGwgIT0gIiIpfSB7Ci0gICAgICBzZXQgdmFycyhvYV9kZXNpZ25fY2VsbCkgJGluaXRfb2FfZGVzaWduX2NlbGwKLSAgIH0KLSAgIGlmIHtbaW5mbyBleGlzdHMgaW5pdF9vYV9kZXNpZ25fdmlld10gJiYgKCRpbml0X29hX2Rlc2lnbl92aWV3ICE9ICIiKX0gewotICAgICAgc2V0IHZhcnMob2FfZGVzaWduX3ZpZXcpICRpbml0X29hX2Rlc2lnbl92aWV3Ci0gICB9Ci0gICBpZiB7W2luZm8gZXhpc3RzIGluaXRfYWJzdHJhY3Rfdmlld10gJiYgKCRpbml0X2Fic3RyYWN0X3ZpZXcgIT0gIiIpfSB7Ci0gICAgICBzZXQgdmFycyhvYV9hYnN0cmFjdF9uYW1lKSAkaW5pdF9hYnN0cmFjdF92aWV3Ci0gICB9Ci0gICBpZiB7W2luZm8gZXhpc3RzIGluaXRfbGF5b3V0X3ZpZXddICYmICgkaW5pdF9sYXlvdXRfdmlldyAhPSAiIil9IHsKLSAgICAgIHNldCB2YXJzKG9hX2xheW91dF9uYW1lKSAkaW5pdF9sYXlvdXRfdmlldwotICAgfQotICAgcHV0cyAkb3AxICIjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyIKLSAgIHB1dHMgJG9wMSAiIyBWYXJpYWJsZXMgZm9yIE9BIGRlc2lnbiBpbXBvcnQgYW5kIGV4cG9ydCIKLSAgIHB1dHMgJG9wMSAiIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iCi0gICBpZiB7W2luZm8gZXhpc3RzIHZhcnMob2FfZGVzaWduX2xpYildfSB7Ci0gICAgICBwdXRzICRvcDEgInNldCB2YXJzKG5ldGxpc3RfdHlwZSkgICAgIG9hIgotICAgICAgcHV0cyAkb3AxICJzZXQgdmFycyhvYV9kZXNpZ25fbGliKSAgICAkdmFycyhvYV9kZXNpZ25fbGliKSIKLSAgIH0gZWxzZSB7Ci0gICAgICBwdXRzICRvcDEgIiNzZXQgdmFycyhvYV9kZXNpZ25fbGliKSAgICA8T0EgZGVzaWduIGxpYnJhcnk+IgotICAgfQotICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKG9hX2Rlc2lnbl9jZWxsKV19IHsKLSAgICAgIHB1dHMgJG9wMSAic2V0IHZhcnMob2FfZGVzaWduX2NlbGwpICAgICR2YXJzKG9hX2Rlc2lnbl9jZWxsKSIKLSAgIH0gZWxzZSB7Ci0gICAgICBwdXRzICRvcDEgIiNzZXQgdmFycyhvYV9kZXNpZ25fY2VsbCkgICA8T0EgZGVzaWduIGNlbGw+IgotICAgfQotICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKG9hX2Rlc2lnbl92aWV3KV19IHsKLSAgICAgIHB1dHMgJG9wMSAic2V0IHZhcnMob2FfZGVzaWduX3ZpZXcpICAgICR2YXJzKG9hX2Rlc2lnbl92aWV3KSIKLSAgIH0gZWxzZSB7Ci0gICAgICBwdXRzICRvcDEgIiNzZXQgdmFycyhvYV9kZXNpZ25fdmlldykgICA8T0EgZGVzaWduIHZpZXc+IgotICAgfQotICAgcHV0cyAkb3AxICIjc2V0IHZhcnMoZGJzX2Zvcm1hdCkgICAgICAgb2EiCi0gICBpZiB7W2luZm8gZXhpc3RzIHZhcnMob2FfcmVmX2xpYildfSB7Ci0gICAgICBwdXRzICRvcDEgInNldCB2YXJzKG9hX3JlZl9saWIpICAgICAgICAkdmFycyhvYV9yZWZfbGliKSIKLSAgIH0gZWxzZSB7Ci0gICAgICBwdXRzICRvcDEgIiNzZXQgdmFycyhvYV9yZWZfbGliKSAgICAgICA8T0EgcmVmZXJlbmNlIGxpYnJhcnk+IgotICAgfQotICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKG9hX2Fic3RyYWN0X25hbWUpXX0gewotICAgICAgcHV0cyAkb3AxICJzZXQgdmFycyhvYV9hYnN0cmFjdF9uYW1lKSAgJHZhcnMob2FfYWJzdHJhY3RfbmFtZSkiCi0gICB9IGVsc2UgewotICAgICAgcHV0cyAkb3AxICIjc2V0IHZhcnMob2FfYWJzdHJhY3RfbmFtZSkgPE9BIGFic3RyYWN0IG5hbWU+IgotICAgfQotICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKG9hX2xheW91dF9uYW1lKV19IHsKLSAgICAgIHB1dHMgJG9wMSAic2V0IHZhcnMob2FfbGF5b3V0X25hbWUpICAgICR2YXJzKG9hX2xheW91dF9uYW1lKSIKLSAgIH0gZWxzZSB7Ci0gICAgICBwdXRzICRvcDEgIiNzZXQgdmFycyhvYV9sYXlvdXRfbmFtZSkgICA8T0EgbGF5b3V0IG5hbWU+IgotICAgfQotICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKG5ldGxpc3QpXX0gewotIyAgICAgIHB1dHMgJG9wMSBbZm9ybWF0ICJzZXQgdmFycyhuZXRsaXN0KSVzJXMiIFtwYWQgdmFycyhuZXRsaXN0KV0gJHZhcnMobmV0bGlzdCldCi0gICAgICBwdXRzICRvcDEgW2Zvcm1hdF9zdHJpbmcgdmFycyhuZXRsaXN0KSBcIiR2YXJzKG5ldGxpc3QpXCJdCi0gICAgICBwdXRzICRvcDEgW2Zvcm1hdF9zdHJpbmcgdmFycyhuZXRsaXN0X3R5cGUpIHZlcmlsb2ddCi0gICB9Ci0gICBwdXRzICRvcDEgIiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIgotfSBlbHNlIHsKLSAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhuZXRsaXN0KV19IHsKLSMgICAgICBwdXRzICRvcDEgW2Zvcm1hdCAic2V0IHZhcnMobmV0bGlzdCklcyVzIiBbcGFkIHZhcnMobmV0bGlzdCldICR2YXJzKG5ldGxpc3QpXQotICAgICAgcHV0cyAkb3AxIFtmb3JtYXRfc3RyaW5nIHZhcnMobmV0bGlzdCkgXCIkdmFycyhuZXRsaXN0KVwiXQotICAgICAgcHV0cyAkb3AxIFtmb3JtYXRfc3RyaW5nIHZhcnMobmV0bGlzdF90eXBlKSB2ZXJpbG9nXQotICAgfQotICAgcHV0cyAkb3AxICIjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyIKLSAgIHB1dHMgJG9wMSAiIyBWYXJpYWJsZXMgZm9yIE9BIGRlc2lnbiBpbXBvcnQgYW5kIGV4cG9ydCIKLSAgIHB1dHMgJG9wMSAiIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iCi0gICBwdXRzICRvcDEgIiNzZXQgdmFycyhvYV9kZXNpZ25fbGliKSAgICA8T0EgZGVzaWduIGxpYnJhcnk+IgotICAgcHV0cyAkb3AxICIjc2V0IHZhcnMob2FfZGVzaWduX2NlbGwpICAgPE9BIGRlc2lnbiBjZWxsPiIKLSAgIHB1dHMgJG9wMSAiI3NldCB2YXJzKG9hX2Rlc2lnbl92aWV3KSAgIDxPQSBkZXNpZ24gdmlldz4iCi0gICBwdXRzICRvcDEgIiNzZXQgdmFycyhvYV9yZWZfbGliKSAgICAgICA8T0EgcmVmZXJlbmNlIGxpYnJhcnk+IgotICAgcHV0cyAkb3AxICIjc2V0IHZhcnMob2FfYWJzdHJhY3RfbmFtZSkgPE9BIGFic3RyYWN0IG5hbWU+IgotICAgcHV0cyAkb3AxICIjc2V0IHZhcnMob2FfbGF5b3V0X25hbWUpICAgPE9BIGxheW91dCBuYW1lPiIKLX0KLWlmIHtbaW5mbyBleGlzdHMgdmFycyhmcF9maWxlKV19IHsKLSAgIHB1dHMgJG9wMSBbZm9ybWF0X3N0cmluZyB2YXJzKGZwX2ZpbGUpICR2YXJzKGZwX2ZpbGUpXQotfSBlbHNlIHsKLSAgIHB1dHMgJG9wMSBbZm9ybWF0X3N0cmluZyAjdmFycyhmcF9maWxlKSA8Zmxvb3JwbGFuX2ZpbGU+XQotfQotcHV0cyAkb3AxIFtmb3JtYXRfc3RyaW5nICN2YXJzKG9hX2ZwKSA8T0FfZmxvb3JwbGFuPl0KLXB1dHMgJG9wMSBbZm9ybWF0X3N0cmluZyAjdmFycyhkZWZfZmlsZXMpIDxkZWZfZmlsZXM+XQotI3B1dHMgJG9wMSAiI3NldCB2YXJzKHNjYW5fZGVmKSAgICAgICA8c2Nhbl9kZWY+IgotcHV0cyAkb3AxICIjIE5PVEU6IHZhcnMoY3RzX3NwZWMpIGlzIG9ubHkgcmVxdWlyZWQgZm9yIGN0cyBmbG93cy4iCi1wdXRzICRvcDEgIiMgICAgICAgRm9yIGNjb3B0IGZsb3dzLCBpdCBpcyBub3QgcmVxdWlyZWQiCi1pZiB7W2ZpbGUgZXhpc3RzICR2YXJzKGN0c19zcGVjKV19IHsKLSAgIHB1dHMgJG9wMSBbZm9ybWF0X3N0cmluZyB2YXJzKGN0c19zcGVjKSBcIiR2YXJzKGN0c19zcGVjKVwiXSAKLX0gZWxzZSB7Ci0gICBwdXRzICRvcDEgW2Zvcm1hdF9zdHJpbmcgI3ZhcnMoY3RzX3NwZWMpIDxjdHNfc3BlYz5dCi19Ci1pZiB7W2luZm8gZXhpc3RzIHZhcnMocHJvY2VzcyldfSB7Ci0gICBwdXRzICRvcDEgW2Zvcm1hdF9zdHJpbmcgdmFycyhwcm9jZXNzKSAkdmFycyhwcm9jZXNzKV0KLX0gZWxzZSB7Ci0gICBwdXRzICRvcDEgW2Zvcm1hdF9zdHJpbmcgI3ZhcnMocHJvY2VzcykgPHByb2Nlc3M+XQotfQotaWYge1tpbmZvIGV4aXN0cyB2YXJzKG1heF9yb3V0ZV9sYXllcildfSB7Ci0gICBwdXRzICRvcDEgW2Zvcm1hdF9zdHJpbmcgdmFycyhtYXhfcm91dGVfbGF5ZXIpICR2YXJzKG1heF9yb3V0ZV9sYXllcildCi19IGVsc2UgewotICAgcHV0cyAkb3AxIFtmb3JtYXRfc3RyaW5nICN2YXJzKG1heF9yb3V0ZV9sYXllcikgPG1heF9yb3V0ZV9sYXllcj5dCi19Ci1wdXRzICRvcDEgIiMgTk9URTogV2hlbiBnZW5lcmF0ZV90cmFja3MgaXMgc2V0LCB0aGUgdHJhY2tzIGluIHRoZSBERUYgYXJlIGlnbm9yZWQ7IGV2ZW4gdGhlIHBpdGNoIgotcHV0cyAkb3AxICIjICAgICAgIFRvIGdlbmVyYXRlIG5ldyB0cmFja3MgYnV0IHByZXNlcnZlIHRoZSBwaXRjaCwgdXNlIHZhcnMoaG9ub3JfcGl0Y2gpIHRydWUiCi1wdXRzICRvcDEgW2Zvcm1hdF9zdHJpbmcgI3ZhcnMoZ2VuZXJhdGVfdHJhY2tzKSAiPHRydWUgfCBmYWxzZT4iXQotcHV0cyAkb3AxIFtmb3JtYXRfc3RyaW5nICN2YXJzKGhvbm9yX3BpdGNoKSAiPHRydWUgfCBmYWxzZT4iXQotaWYge1tpbmZvIGV4aXN0cyByZGFfSW5wdXQodWlfcHdybmV0KV0gJiYgKCRyZGFfSW5wdXQodWlfcHdybmV0KSAhPSAiIil9IHsKLSAgIHB1dHMgJG9wMSAic2V0IHZhcnMocG93ZXJfbmV0cykgICBcIiRyZGFfSW5wdXQodWlfcHdybmV0KVwiIgotfSBlbHNlIHsKLSAgIHB1dHMgJG9wMSAiI3NldCB2YXJzKHBvd2VyX25ldHMpICAgICAgICAgICAgIDxsaXN0IG9mIHBvd2VyIG5ldHM+IgotfQotaWYge1tpbmZvIGV4aXN0cyByZGFfSW5wdXQodWlfZ25kbmV0KV0gJiYgKCRyZGFfSW5wdXQodWlfZ25kbmV0KSAhPSAiIil9IHsKLSAgIHB1dHMgJG9wMSAic2V0IHZhcnMoZ3JvdW5kX25ldHMpICBcIiRyZGFfSW5wdXQodWlfZ25kbmV0KVwiIgotfSBlbHNlIHsKLSAgIHB1dHMgJG9wMSAiI3NldCB2YXJzKGdyb3VuZF9uZXRzKSAgICAgICAgICAgIDxsaXN0IG9mIGdyb3VuZCBuZXRzPiIKLX0KLXB1dHMgJG9wMSAiIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIgotcHV0cyAkb3AxICIjIEZvciBoaWVyYXJjaGljYWwgZGVzaWducywgZGVmaW5lIHZhcnMocGFydGl0aW9uX2xpc3QpIHdoaWNoIHNob3VsZCBiZSBhIGxpc3QgIgotcHV0cyAkb3AxICIjIG9mIGFsbCBkZWZpbmVkIHBhcnRpdGlvbnMgKERPIE5PVCBJTkNMVURFIFRIRSBUT1AgUEFSVElUSU9OKS4iCi1wdXRzICRvcDEgIiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIKLXB1dHMgJG9wMSAiIyBUbyBhc3Npc3QgdGhlIGJ1ZGdldGluZyBwcm9jZXNzLCBhbHNvIGRlZmluZSB0aGUgZm9sbG93aW5nIGZvciBlYWNoIHBhcnRpdGlvbiIKLXB1dHMgJG9wMSAiIyAtIHNldCB2YXJzKDxwYXJ0aXRpb24+LGN0c19zcGVjKSA8ZmlsZT4iCi1wdXRzICRvcDEgIiMgLSBzZXQgdmFycyg8cGFydGl0aW9uPixsYXRlbmN5X3NkYykgPGZpbGU+IgotcHV0cyAkb3AxICIjIgotcHV0cyAkb3AxICIjIFRoZXNlIGZpbGVzIHNob3VsZCBjb250YWluIHRoZSBleHBlY3RlZCBjbG9jayBsYXRlbmN5IGZvciB0aGUgY2xvY2sgdHJlZShzKSIKLXB1dHMgJG9wMSAiIyBGb3IgZXhhbXBsZSwgaWYgcGFydGl0aW9uIEEgaGFzIGFuIGV4cGVjdGVkIGNsb2NrIGxhdGVuY3kgb2YgNTAwcHMgb3V0IG9mIGEgdG90YWwgY2xvY2siCi1wdXRzICRvcDEgIiMgbGF0ZW5jeSBvZiAxbnMsIHRoZSB0b3AgbGV2ZWwgY29uc3RyYWludHMgd291bGQgaGF2ZSAnc2V0X2Nsb2NrX2xhdGVuY3kgMS4wIDxjbG9jayBwaW4+JyIKLXB1dHMgJG9wMSAiIyBhbmQgQSB3b3VsZCBoYXZlIGEgbGF0ZW5jeSBzZGMgZmlsZSBjb250YWluaW5nICdzZXRfY2xvY2tfbGF0ZW5jeSAwLjUgPHB0biBjbG9jayBwaW4+JyIKLXB1dHMgJG9wMSAiIyBMaWtld2lzZSwgdGhlIHRvcCBsZXZlbCBDVFMgc3BlYyB3b3VsZCBjb250YWluICdNYXhEZWxheSAxbnMnIGFuZCB0aGUgdmFycyhBLGN0c19zcGVjKSIKLXB1dHMgJG9wMSAiIyB3b3VsZCBjb250YWluICdNYWNyb01vZGVsIEEvPHB0biBjbG9jayBwaW4+IDUwMHBzIDUwMHBzIDUwMHBzIDUwMHBzIDBmRiIKLXB1dHMgJG9wMSAiIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIgotcHV0cyAkb3AxICIjIER1cmluZyBhc3NlbWJseSwgdGhlIGZvdW5kYXRpb24gZmxvdyBkZWZhdWx0cyB0byBhc3NlbWJseSB0aGUgJ3NpZ25vZmYnIGRhdGFiYXNlcyIKLXB1dHMgJG9wMSAiIyBmcm9tIGVhY2ggcGFydGl0aW9uIHN1Yi1kaXJlY3RvcnkuICBUbyBzcGVjaWZ5IGEgZGlmZmVyZW50IGRhdGFiYXNlIHRvIHVzZSBmb3IgYW55IgotcHV0cyAkb3AxICIjIHBhcnRpdGlvbiAoaW5jbHVkaW5nIHRoZSB0b3ApLCBzcGVjaWZ5IHRoZSBmb2xsb3dpbmc6IgotcHV0cyAkb3AxICIjICAgIC0gdmFycyg8cHRuPixhc3NlbWJsZV9kYnMpICA8cGF0aCB0byBJTk5PVlVTIGRhdGFiYXNlIGRpcmVjdG9yeT4iCi1wdXRzICRvcDEgIiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIKLXB1dHMgJG9wMSAiIyBJZiB2YXJzKHVzZV9mbGV4bW9kZWxzKSBpcyBzZXQgdG8gdHJ1ZSwgRmxleG1vZGVscyB3aWxsIGJlIHVzZWQuIFNvbWUgYWRkaXRpb25hbCIKLXB1dHMgJG9wMSAiIyBvcHRpb25zIGZvciBmbGV4bW9kZWwgdXNhZ2UgYXJlOiIKLXB1dHMgJG9wMSAiIyAgICBzZXQgdmFycyh1c2VfcHJvdG9fbmV0X2RlbGF5X21vZGVsKSBmYWxzZSIKLXB1dHMgJG9wMSAiIyAgICBzZXQgdmFycyhmbGV4bW9kZWxfYXNfcHRuKSB0cnVlIgotcHV0cyAkb3AxICIjICAgIHNldCB2YXJzKGZsZXhtb2RlbF9hcnRfYmFzZWQpIHRydWUiCi1wdXRzICRvcDEgIiMgICAgc2V0IHZhcnMoY3JlYXRlX2ZsZXhmaWxsZXJfYmxvY2thZ2UpIHRydWUiCi1wdXRzICRvcDEgIiMgICAgc2V0IHZhcnMoZW5hYmxlX25yZ3IpIHRydWUiCi1wdXRzICRvcDEgIiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIKLXB1dHMgJG9wMSAiIyBJZiB2YXJzKGluc2VydF9mZWVkdGhyb3VnaCkgaXMgc2V0IHRvIHRydWUsIGZlZWR0aHJvdWdoIGluc2VydGlvbiB3aWxsIGJlIGNhbGxlZCIKLXB1dHMgJG9wMSAiIyAgYmVmb3JlIHBhcnRpdGlvbmluZy4gU29tZSBhZGRpdGlvbmFsIG9wdGlvbnMgZm9yIHBhcnRpdGlvbmluZyBhcmU6IgotcHV0cyAkb3AxICIjICAgIHNldCB2YXJzKGFidXR0ZWRfZGVzaWduKSB0cnVlIgotcHV0cyAkb3AxICIjICAgIHNldCB2YXJzKHBsYWNlbWVudF9iYXNlZF9wdG4pIHRydWUiCi1wdXRzICRvcDEgIiMgICAgc2V0IHZhcnMoYnVkZ2V0X21vZGUpIHsgdHJpYWxfaXBvIGdpZ2Ffb3B0IHByb3RvX25ldF9kZWxheV9tb2RlbCB9IgotcHV0cyAkb3AxICIjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iCi1wdXRzICRvcDEgIiMgRmxleGlsbSBjcmVhdGlvbiBjYW4gYmUgZW5hYmxlZCBmb3IgdGhlIHBhcnRpdGlvbnMsIHVzaW5nIHZhcnMoZW5hYmxlX2ZsZXhpbG0pIHRydWUiCi1wdXRzICRvcDEgIiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIKLXB1dHMgJG9wMSAiIyBGaW5hbGx5LCBlYWNoIHBhcnRpdGlvbiBjYW4gaGF2ZSBpdHMgb3duIGlubm92dXNfY29uZmlnLnRjbCAoSU5DTFVESU5HIFRIRSBUT1AgUEFSVElUSU9OKS4iCi1wdXRzICRvcDEgIiMgVG8gZW5hYmxlIHRoaXMsIGRlZmluZSB2YXJzKDxwYXJ0aXRpb24+LDxpbm5vdnVzX2NvbmZpZ190Y2w+IgotcHV0cyAkb3AxICIjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMiCi1zZXQgdmFycyhwYXJ0aXRpb25fbGlzdCkgIiIKLWRiRm9yRWFjaENlbGxQdG4gW2RiR2V0IHRvcF0gcHRuIHsKLSAgIGxhcHBlbmQgdmFycyhwYXJ0aXRpb25fbGlzdCkgW2RiUHRuTmFtZSAkcHRuXQotfQotaWYgeyR2YXJzKHBhcnRpdGlvbl9saXN0KSAhPSAiIn0gewotICAgcHV0cyAkb3AxICJzZXQgdmFycyhwYXJ0aXRpb25fbGlzdCkgICAgICAgIFxbbGlzdCAkdmFycyhwYXJ0aXRpb25fbGlzdClcXSIKLSAgIGZvcmVhY2ggcGFydCAkdmFycyhwYXJ0aXRpb25fbGlzdCkgewotICAgICAgcHV0cyAkb3AxICIjc2V0IHZhcnMoJHBhcnQsY3RzX3NwZWMpICAgICAgIDxwYXJ0aXRpb24gY3RzIHNwZWMgZmlsZT4iCi0gICAgICBwdXRzICRvcDEgIiNzZXQgdmFycygkcGFydCxsYXRlbmN5X3NkYykgICAgPHBhcnRpdGlvbiBsYXRlbmN5IHNkYyBmaWxlPiIKLSAgICAgIHB1dHMgJG9wMSAiI3NldCB2YXJzKCRwYXJ0LGFzc2VtYmxlX2RicykgICA8ZGF0YWJhc2UgZGlyZWN0b3J5PiIKLSAgICAgIHB1dHMgJG9wMSAiI3NldCB2YXJzKCRwYXJ0LGlsbV9kaXIpICAgICAgICA8cGF0aCB0byBJTE0gZGlyZXRvcnk+IgotICAgICAgcHV0cyAkb3AxICIjc2V0IHZhcnMoJHBhcnQsbGVmX2ZpbGUpICAgICAgIDxwYXRoIHRvIExFRiBmaWxlPiIKLSAgICAgIHB1dHMgJG9wMSAiI3NldCB2YXJzKCRwYXJ0LGlubm92dXNfY29uZmlnX3RjbCkgPHBhcnRpdGlvbiBzcGVjaWZpYyBpbm5vdnVzX2NvbmZpZy50Y2w+IgotICAgfQotfSBlbHNlIHsKLSAgIHB1dHMgJG9wMSAiI3NldCB2YXJzKHBhcnRpdGlvbl9saXN0KSAgICAgICAgICAgICA8bGlzdCBvZiBwYXJ0aXRpb25zPiIKLSAgIHB1dHMgJG9wMSAiI3NldCB2YXJzKDxwYXJ0aXRpb24+LGN0c19zcGVjKSAgICAgICA8cGFydGl0aW9uIGN0cyBzcGVjIGZpbGU+IgotICAgcHV0cyAkb3AxICIjc2V0IHZhcnMoPHBhcnRpdGlvbj4sbGF0ZW5jeV9zZGMpICAgIDxwYXJ0aXRpb24gbGF0ZW5jeSBzZGMgZmlsZT4iCi0gICBwdXRzICRvcDEgIiNzZXQgdmFycyg8cGFydGl0aW9uPixhc3NlbWJsZV9kYnMpICAgPGRhdGFiYXNlIGRpcmVjdG9yeT4iCi0gICBwdXRzICRvcDEgIiNzZXQgdmFycyg8cGFydGl0aW9uPixpbG1fZGlyKSAgICAgICAgPHBhdGggdG8gSUxNIGRpcmV0b3J5PiIKLSAgIHB1dHMgJG9wMSAiI3NldCB2YXJzKDxwYXJ0aXRpb24+LGxlZl9maWxlKSAgICAgICA8cGF0aCB0byBMRUYgZmlsZT4iCi0gICBwdXRzICRvcDEgIiNzZXQgdmFycyg8cGFydGl0aW9uPixpbm5vdnVzX2NvbmZpZ190Y2wpIDxwYXJ0aXRpb24gc3BlY2lmaWMgaW5ub3Z1c19jb25maWcudGNsPiIKLX0KLQotaWYgeyghW2NhdGNoIHtkYkdldCB0b3AuaXNQcm90b01vZGVsQ29tbWl0dGVkfSB2YWxdKSAmJiAkdmFsfSB7Ci0gICBwdXRzICRvcDEgInNldCB2YXJzKHVzZV9mbGV4bW9kZWxzKSB0cnVlIgotfSBlbHNlIHsKLSAgIHB1dHMgJG9wMSAiI3NldCB2YXJzKHVzZV9mbGV4bW9kZWxzKSA8Ym9vbGVhbj4iCi19Ci0KLXB1dHMgJG9wMSAiIgotCi1wdXRzICRvcDEgIiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMiCi1wdXRzICRvcDEgIiMgT3B0aW9uYWxseSBkZWZpbmUgdXNlciBJTE1zIHRvIGJlIHNwZWNpZmllZCBkdXJpbmcgdGhlIGZsb3cuIFRoZXNlIHdpbGwgYmUgc3BlY2lmaWVkICIKLXB1dHMgJG9wMSAiIyBkdXJpbmcgdGhlIGZsYXQgaW5pdCBzdGVwIGFuZCB0aGUgaGllcmFyY2hpY2FsIHBhcnRpdGlvbmluZyBzdGVwLiBUaGUgSUxNcyBzaG91bGQiCi1wdXRzICRvcDEgIiMgbm90IGJlIGhpZXJhcmhpY2FsIHBhcnRpdGlvbnMgKHRoZXkgYXJlIGhhbmRsZWQgYXV0b21hdGljYWxseS4gIFNlZSBiZWxvdyBmb3IgIgotcHV0cyAkb3AxICIjIGhhbmRsaW5nIHBhcnRpdGlvbiBJTE1zIGR1cmluZyBwb3N0IGFzc2VtYmx5IGNsb3N1cmUuIgotcHV0cyAkb3AxICIjIC0gdmFycyhpbG1fbGlzdCkgIDxsaXN0IG9mIGlsbSBtb2R1bGVzPiIKLXB1dHMgJG9wMSAiIyAtIHZhcnMoPGlsbT4saWxtX2RpcikgIDxwYXRoIHRvIElMTSBkaXJldG9yeT4iCi1wdXRzICRvcDEgIiMgLSB2YXJzKDxpbG0+LGxlZl9maWxlKSA8cGF0aCB0byBMRUYgZmlsZT4iCi1wdXRzICRvcDEgIiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMiCi1wdXRzICRvcDEgIiMgc2V0IHZhcnMoaWxtX2xpc3QpIFxbbGlzdFxdIgotaWYge1tpbmZvIGV4aXN0cyByZGFfSW5wdXQodWlfaWxtZGlyKV0gJiYgKCRyZGFfSW5wdXQodWlfaWxtZGlyKSAhPSAiIil9IHsKLSAgIHNldCBpbG1fbGlzdCBbbGlzdF0KLSAgIGZvciB7c2V0IGkgMH0geyRpIDwgW2xsZW5ndGggJHJkYV9JbnB1dCh1aV9pbG1kaXIpXX0ge2luY3IgaX0gewotICAgICAgc2V0IGlsbSBbbGluZGV4ICRyZGFfSW5wdXQodWlfaWxtZGlyKSAkaV0KLSAgICAgIGluY3IgaQotICAgICAgc2V0IGRpciBbbGluZGV4ICRyZGFfSW5wdXQodWlfaWxtZGlyKSAkaV0KLSAgICAgIGxhcHBlbmQgaWxtX2xpc3QgJGlsbQotICAgICAgc2V0IHZhcnMoJGlsbSxpbG1fZGlyKSAkZGlyCi0gICB9Ci0gICBpZiB7JGlsbV9saXN0ICE9ICIifSB7Ci0gICAgICBwdXRzICRvcDEgInNldCB2YXJzKGlsbV9saXN0KSBcW2xpc3QgJGlsbV9saXN0XF0iCi0gICAgICBmb3JlYWNoIGlsbSAkaWxtX2xpc3QgewotICAgICAgICAgcHV0cyAkb3AxICJzZXQgdmFycygkaWxtLGlsbV9kaXIpICR2YXJzKCRpbG0saWxtX2RpcikiCi0gICAgICB9Ci0gICB9Ci19Ci1wdXRzICRvcDEgIiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMiCi1wdXRzICRvcDEgIiMgRGVmaW5lIGxlZiBmaWxlcyAuLi4iCi1wdXRzICRvcDEgIiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMiCi1wdXRzICRvcDEgInNldCB2YXJzKGxlZl9maWxlcykgXCJcXCIKLWZvcmVhY2ggZmlsZSAkcmRhX0lucHV0KHVpX2xlZmZpbGUpIHsKLSAgIHB1dHMgJG9wMSAiICAgW2ZpbGUgbm9ybWFsaXplICRmaWxlXSBcXCIKLX0KLXB1dHMgJG9wMSAiXCIiCi0KLXB1dHMgJG9wMSAiIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyIKLXB1dHMgJG9wMSAiIyBEZWZpbmUgbGlicmFyeSBzZXRzIC4uLiIKLXB1dHMgJG9wMSAiIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIKLXB1dHMgJG9wMSAiIyBzZXQgdmFycyhsaWJyYXJ5X3NldHMpIDxsaXN0IG9mIGxpYnJhcnkgc2V0cz4iCi1wdXRzICRvcDEgIiMgc2V0IHZhcnMoPHNldD4sdGltaW5nKSA8bGlzdCBvZiBsaWIgZmlsZXM+IgotcHV0cyAkb3AxICIjIHNldCB2YXJzKDxzZXQ+LHNpKSA8bGlzdCBvZiBjZGIvdWRuIGZpbGVzPiIKLXB1dHMgJG9wMSAiIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyIKLXNldCBsaWJyYXJ5X3NldHMgW2xpc3RdCi0KLWZvcmVhY2ggbGlicmFyeV9zZXQgW2FsbF9saWJyYXJ5X3NldHNdIHsKLSAgIGlmIHtbbGxlbmd0aCBbYWxsX2xpYnJhcnlfc2V0c11dID4gMn0gewotIyAgICAgIGlmIHtbcmVnZXhwICJeZGVmYXVsdCIgJGxpYnJhcnlfc2V0XSA9PSAwfSB7Ci0gICAgICAgICBpZiB7W2luZm8gZXhpc3RzIDo6Q1BGOjpjcGZDb21taXR0ZWRdfSB7Ci0gICAgICAgICAgICBpZiB7KFtyZWdleHAgIl5kb21haW5fIiAkbGlicmFyeV9zZXRdID09IDApfSB7Ci0gICAgICAgICAgICAgICBsYXBwZW5kIGxpYnJhcnlfc2V0cyAkbGlicmFyeV9zZXQKLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBsYXBwZW5kIGxpYnJhcnlfc2V0cyAkbGlicmFyeV9zZXQKLSAgICAgICAgIH0KLSMgICAgICB9Ci0gICB9IGVsc2UgewotICAgICAgbGFwcGVuZCBsaWJyYXJ5X3NldHMgJGxpYnJhcnlfc2V0Ci0gICB9Ci19Ci0KLWlmIHskbGlicmFyeV9zZXRzICE9ICIifSB7Ci0gICBwdXRzICRvcDEgInNldCB2YXJzKGxpYnJhcnlfc2V0cykgXCIkbGlicmFyeV9zZXRzXCIiCi19Ci0KLWZvcmVhY2ggbGlicmFyeV9zZXQgJGxpYnJhcnlfc2V0cyB7Ci0gICBmb3JlYWNoIG9wdGlvbiAidGltaW5nIHNpIGFvY3YiIHsKLSAgICAgIGlmIHtbZ2V0X2xpYnJhcnlfc2V0ICRsaWJyYXJ5X3NldCAtJG9wdGlvbl0gIT0gIiJ9IHsKLSAgICAgICAgIHNldCBmaWxlX2xpc3QgW2dldF9saWJyYXJ5X3NldCAkbGlicmFyeV9zZXQgLSRvcHRpb25dCi0gICAgICAgICBwdXRzICRvcDEgInNldCB2YXJzKCRsaWJyYXJ5X3NldCwkb3B0aW9uKSBcIlxcIgotICAgICAgICAgZm9yZWFjaCBmaWxlICRmaWxlX2xpc3QgewotICAgICAgICAgICAgcHV0cyAkb3AxICIgICBbZmlsZSBub3JtYWxpemUgJGZpbGVdIFxcIiAKLSAgICAgICAgIH0gCi0gICAgICAgICBwdXRzICRvcDEgIlwiIiAKLSAgICAgIH0KLSAgIH0KLX0KLQotcHV0cyAkb3AxICIjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIgotcHV0cyAkb3AxICIjIERlZmluZSByYyBjb3JuZXJzIC4uLiIKLXB1dHMgJG9wMSAiIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIKLXB1dHMgJG9wMSAiIyBzZXQgdmFycyhyY19jb3JuZXJzKSA8bGlzdCBvZiByYyBjb3JuZXJzPiIKLXB1dHMgJG9wMSAiIyBzZXQgdmFycyg8cmNfY29ybmVyPixUKSA8dGVtcGVyYXR1cmU+IgotcHV0cyAkb3AxICIjIHNldCB2YXJzKDxyY19jb3JuZXI+LGNhcF90YWJsZSkgPGNhcCB0YWJsZSBmb3IgY29ybmVyPiIKLXB1dHMgJG9wMSAiIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyIKLXNldCByY19jb3JuZXJzIFtsaXN0XQotZm9yZWFjaCByY19jb3JuZXIgW2FsbF9yY19jb3JuZXJzXSB7Ci0jICAgaWYge1tsbGVuZ3RoIFthbGxfcmNfY29ybmVyc11dID4gMX0gewotIyAgICAgIGlmIHtbcmVnZXhwICJeZGVmYXVsdCIgJHJjX2Nvcm5lciBdID09IDB9IHsKLSMgICAgICAgICBsYXBwZW5kIHJjX2Nvcm5lcnMgJHJjX2Nvcm5lcgotIyAgICAgIH0KLSMgICB9IGVsc2UgewotICAgICAgbGFwcGVuZCByY19jb3JuZXJzICRyY19jb3JuZXIKLSMgICB9Ci19Ci1pZiB7JHJjX2Nvcm5lcnMgIT0gIiJ9IHsKLSAgIHB1dHMgJG9wMSAic2V0IHZhcnMocmNfY29ybmVycykgXCIkcmNfY29ybmVyc1wiIgotfQotZm9yZWFjaCByY19jb3JuZXIgJHJjX2Nvcm5lcnMgewotICAgZm9yZWFjaCBvcHRpb24gIlQgY2FwX3RhYmxlIiB7Ci0gICAgICBpZiB7W2dldF9yY19jb3JuZXIgJHJjX2Nvcm5lciAtJG9wdGlvbl0gIT0gIiJ9IHsKLSAgICAgICAgIGlmIHskb3B0aW9uID09ICJjYXBfdGFibGUifSB7Ci0gICAgICAgICAgICBwdXRzICRvcDEgInNldCB2YXJzKCRyY19jb3JuZXIsJG9wdGlvbikgW2ZpbGUgbm9ybWFsaXplIFtnZXRfcmNfY29ybmVyICRyY19jb3JuZXIgLSRvcHRpb25dXSIKLSAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBwdXRzICRvcDEgInNldCB2YXJzKCRyY19jb3JuZXIsJG9wdGlvbikgW2dldF9yY19jb3JuZXIgJHJjX2Nvcm5lciAtJG9wdGlvbl0iIAotICAgICAgICAgfQotICAgICAgfSBlbHNlIHsKLSAgICAgICAgIGlmIHsoJG9wdGlvbiA9PSAiVCIpICYmIChbZ2V0X3JjX2Nvcm5lciAkcmNfY29ybmVyIC0kb3B0aW9uXSA9PSAiIil9IHsKLSAgICAgICAgICAgIHB1dHMgJG9wMSAiI3NldCB2YXJzKCRyY19jb3JuZXIsJG9wdGlvbikgMjUgOyAjIEVESVQgRk9SIENPUlJFQ1QgVCBWQUxVRSIKLSAgICAgICAgIH0KLSAgICAgICAgIGlmIHsoJG9wdGlvbiA9PSAiY2FwX3RhYmxlIikgJiYgKFtnZXRfcmNfY29ybmVyICRyY19jb3JuZXIgLSRvcHRpb25dID09ICIiKX0gewotICAgICAgICAgICAgcHV0cyAkb3AxICIjc2V0IHZhcnMoJHJjX2Nvcm5lciwkb3B0aW9uKSA7ICMgRURJVCBGT1IgQ09SUkVDVCBDQVAgVEFCTEUgREVGSU5JVElPTiIKLSAgICAgICAgIH0KLSAgICAgIH0KLSAgIH0KLSAgIHB1dHMgJG9wMSAiI3NldCB2YXJzKCRyY19jb3JuZXIsYXRmX2ZpbGUpIgotfQotCi1wdXRzICRvcDEgIiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMiCi1wdXRzICRvcDEgIiMgT3B0aW9uYWxseSBkZWZpbmUgUVJDIHRlY2hub2xvZ3kgaW5mb3JtYXRpb24iCi1wdXRzICRvcDEgIiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iCi1wdXRzICRvcDEgIiMgc2V0IHZhcnMoPHJjX2Nvcm5lcj4scXhfdGVjaF9maWxlKSA8cXhfdGVjaF9maWxlIGZvciBjb3JuZXI+IgotcHV0cyAkb3AxICIjIHNldCB2YXJzKDxyY19jb3JuZXI+LHF4X2xpYl9maWxlKSAgPHF4X2xpYl9maWxlIGZvciBjb3JuZXI+IgotcHV0cyAkb3AxICIjIHNldCB2YXJzKDxyY19jb3JuZXI+LHF4X2NvbmZfZmlsZSkgPHF4X2NvbmZfZmlsZSBmb3IgY29ybmVyPiIKLXB1dHMgJG9wMSAiIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyIKLWZvcmVhY2ggcmNfY29ybmVyICRyY19jb3JuZXJzIHsKLSAgIGZvcmVhY2ggb3B0aW9uICJxeF90ZWNoX2ZpbGUgcXhfbGliX2ZpbGUgcXhfY29uZl9maWxlIiB7Ci0gICAgICBpZiB7W2dldF9yY19jb3JuZXIgJHJjX2Nvcm5lciAtJG9wdGlvbl0gIT0gIiJ9IHsKLSAgICAgICAgIHB1dHMgJG9wMSAic2V0IHZhcnMoJHJjX2Nvcm5lciwkb3B0aW9uKSBbZmlsZSBub3JtYWxpemUgW2dldF9yY19jb3JuZXIgJHJjX2Nvcm5lciAtJG9wdGlvbl1dIiAKLSAgICAgIH0KLSAgIH0KLX0KLQotcHV0cyAkb3AxICIjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIgotcHV0cyAkb3AxICIjIFNjYWxlIGZhY3RvcnMgYXJlIGFsc28gb3B0aW9uYWwgYnV0IGFyZSBzdHJvbmdseSBlbmNvdXJhZ2VkIGZvciBwcmVfcm91dGUgb3B0aW1pemF0aW9uICIKLXB1dHMgJG9wMSAiIyBpbiBvcmRlciB0byBvYnRhaW4gdGhlIGJlc3QgZmxvdyBjb252ZXJnZW5jZSBhbmQgUW9SLiAgU2NhbGluZyBmYWN0b3JzIGFyZSBhcHBsaWVkIHBlciIKLXB1dHMgJG9wMSAiIyByYyBjb3JuZXIgYnkgc2V0dGluZyB0aGUgaW5kaXZpZHVhbCB2YWx1ZXMgT1IgdmlhIGEgc2NhbGVfdGNsIGZpbGUgd2hpY2ggbXVzdCBjb250YWluIiAKLXB1dHMgJG9wMSAiIyBzeW50YWN0aWNhbGx5IGNvcnJlY3QgdXBkYXRlX3JjX2Nvcm5lciBjb21tYW5kcyBmb3IgYSBnaXZlbiByY19jb3JuZXIiCi1wdXRzICRvcDEgIiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iCi1wdXRzICRvcDEgIiMgc2V0IHZhcnMoPHJjX2Nvcm5lcj4sc2NhbGVfdGNsKSAgICAgICAgICAgICAgICAgPGZpbGU+IgotcHV0cyAkb3AxICIjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIgotcHV0cyAkb3AxICIjIHNldCB2YXJzKDxyY19jb3JuZXI+LHByZV9yb3V0ZV9yZXNfZmFjdG9yKSAgICAgIDxwcmUtcm91dGUgcmVzaXN0YW5jZSBzY2FsZSBmYWN0b3I+IgotcHV0cyAkb3AxICIjIHNldCB2YXJzKDxyY19jb3JuZXI+LHByZV9yb3V0ZV9jbGtfcmVzX2ZhY3RvcikgIDxwcmUtcm91dGUgY2xvY2sgcmVzaXN0YW5jZSBzY2FsZSBmYWN0b3I+IgotcHV0cyAkb3AxICIjIHNldCB2YXJzKDxyY19jb3JuZXI+LHBvc3Rfcm91dGVfcmVzX2ZhY3RvcikgICAgIDxwb3N0LXJvdXRlIHJlc2lzdGFuY2Ugc2NhbGUgZmFjdG9yICh0cmlwbGV0cyk+IgotcHV0cyAkb3AxICIjIHNldCB2YXJzKDxyY19jb3JuZXI+LHBvc3Rfcm91dGVfY2xrX3Jlc19mYWN0b3IpIDxwb3N0LXJvdXRlIGNsb2NrIHJlc2lzdGFuY2Ugc2NhbGUgZmFjdG9yPiIKLXB1dHMgJG9wMSAiIyBzZXQgdmFycyg8cmNfY29ybmVyPixwcmVfcm91dGVfY2FwX2ZhY3RvcikgICAgICA8cHJlLXJvdXRlIGNhcGFjaXRhbmNlIHNjYWxlIGZhY3Rvcj4iCi1wdXRzICRvcDEgIiMgc2V0IHZhcnMoPHJjX2Nvcm5lcj4scHJlX3JvdXRlX2Nsa19jYXBfZmFjdG9yKSAgPHByZS1yb3V0ZSBjbG9jayBjYXBhY2l0YW5jZSBzY2FsZSBmYWN0b3I+IgotcHV0cyAkb3AxICIjIHNldCB2YXJzKDxyY19jb3JuZXI+LHBvc3Rfcm91dGVfY2FwX2ZhY3RvcikgICAgIDxwb3N0LXJvdXRlIGNhcGFjaXRhbmNlIHNjYWxlIGZhY3RvciAodHJpcGxldHMpPiIKLXB1dHMgJG9wMSAiIyBzZXQgdmFycyg8cmNfY29ybmVyPixwb3N0X3JvdXRlX2Nsa19jYXBfZmFjdG9yKSA8cG9zdC1yb3V0ZSBjbG9jayBjYXBhY2l0YW5jZSBzY2FsZSBmYWN0b3I+IgotcHV0cyAkb3AxICIjIHNldCB2YXJzKDxyY19jb3JuZXI+LHBvc3Rfcm91dGVfeGNhcF9mYWN0b3IpICAgIDxwb3N0LXJvdXRlIGNvdXBsaW5nIGNhcGFjaXRhbmNlIHNjYWxlIGZhY3RvciAodHJpcGxldHMpPiIKLXB1dHMgJG9wMSAiIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyIKLQotZm9yZWFjaCByY19jb3JuZXIgJHJjX2Nvcm5lcnMgewotICAgaWYge1tnZXRfcmNfY29ybmVyICRyY19jb3JuZXIgLXByZVJvdXRlX3Jlc10gIT0gIiJ9IHsKLSAgICAgIHB1dHMgJG9wMSAic2V0IHZhcnMoJHJjX2Nvcm5lcixwcmVfcm91dGVfcmVzX2ZhY3RvcikgXHRcdFtmb3JtYXQgJTQuMmYgW2V4cHIgW2dldF9yY19jb3JuZXIgJHJjX2Nvcm5lciAtcHJlUm91dGVfcmVzXSoxLjBdXSIgCi0gICB9Ci0gICBpZiB7W2dldF9yY19jb3JuZXIgJHJjX2Nvcm5lciAtcHJlUm91dGVfY2xrcmVzXSAhPSAiIn0gewotICAgICAgcHV0cyAkb3AxICJzZXQgdmFycygkcmNfY29ybmVyLHByZV9yb3V0ZV9jbGtfcmVzX2ZhY3RvcikgXHRbZm9ybWF0ICU0LjJmIFtleHByIFtnZXRfcmNfY29ybmVyICRyY19jb3JuZXIgLXByZVJvdXRlX2Nsa3Jlc10qMS4wXV0iIAotICAgIH0KLSAgIGlmIHtbZ2V0X3JjX2Nvcm5lciAkcmNfY29ybmVyIC1wb3N0Um91dGVfcmVzXSAhPSAiIn0gewotICAgICAgc2V0IHRyaXBsZXRzIFtnZXRfcmNfY29ybmVyICRyY19jb3JuZXIgLXBvc3RSb3V0ZV9yZXNdCi0gICAgICBzZXQgc2NhbGFyIFtsaW5kZXggJHRyaXBsZXRzIDBdCi0gICAgICBpZiB7W2xsZW5ndGggJHNjYWxhcl0gPT0gMX0gewotICAgICAgICAgc2V0IHBzdHJpbmcgW2Zvcm1hdCAiJTQuMmYgJTQuMmYgJTQuMmYiIFtleHByIFtsaW5kZXggJHNjYWxhciAwXSoxLjBdIDEuMCAxLjBdCi0gICAgICB9Ci0gICAgICBpZiB7W2xsZW5ndGggJHNjYWxhcl0gPT0gMn0gewotICAgICAgICAgc2V0IHBzdHJpbmcgW2Zvcm1hdCAiJTQuMmYgJTQuMmYgJTQuMmYiIFtleHByIFtsaW5kZXggJHNjYWxhciAwXSoxLjBdIFtleHByIFtsaW5kZXggJHNjYWxhciAxXSoxLjBdIDEuMF0KLSAgICAgIH0KLSAgICAgIGlmIHtbbGxlbmd0aCAkc2NhbGFyXSA9PSAzfSB7Ci0gICAgICAgICBzZXQgcHN0cmluZyBbZm9ybWF0ICIlNC4yZiAlNC4yZiAlNC4yZiIgW2V4cHIgW2xpbmRleCAkc2NhbGFyIDBdKjEuMF0gW2V4cHIgW2xpbmRleCAkc2NhbGFyIDFdKjEuMF0gW2V4cHIgW2xpbmRleCAkc2NhbGFyIDJdKjEuMF1dCi0gICAgICB9Ci0gICAgICBwdXRzICRvcDEgInNldCB2YXJzKCRyY19jb3JuZXIscG9zdF9yb3V0ZV9yZXNfZmFjdG9yKSBcdFx0XCIkcHN0cmluZ1wiIgotICAgfQotICAgaWYge1tnZXRfcmNfY29ybmVyICRyY19jb3JuZXIgLXBvc3RSb3V0ZV9jbGtyZXNdICE9ICIifSB7Ci0gICAgICBzZXQgdHJpcGxldHMgW2dldF9yY19jb3JuZXIgJHJjX2Nvcm5lciAtcG9zdFJvdXRlX2Nsa3Jlc10KLSAgICAgIHNldCBzY2FsYXIgW2xpbmRleCAkdHJpcGxldHMgMF0KLSAgICAgIGlmIHtbbGxlbmd0aCAkc2NhbGFyXSA9PSAxfSB7Ci0gICAgICAgICBzZXQgcHN0cmluZyBbZm9ybWF0ICIlNC4yZiAlNC4yZiAlNC4yZiIgW2V4cHIgW2xpbmRleCAkc2NhbGFyIDBdKjEuMF0gMS4wIDEuMF0KLSAgICAgIH0KLSAgICAgIGlmIHtbbGxlbmd0aCAkc2NhbGFyXSA9PSAyfSB7Ci0gICAgICAgICBzZXQgcHN0cmluZyBbZm9ybWF0ICIlNC4yZiAlNC4yZiAlNC4yZiIgW2V4cHIgW2xpbmRleCAkc2NhbGFyIDBdKjEuMF0gW2V4cHIgW2xpbmRleCAkc2NhbGFyIDFdKjEuMF0gMS4wXQotICAgICAgfQotICAgICAgaWYge1tsbGVuZ3RoICRzY2FsYXJdID09IDN9IHsKLSAgICAgICAgIHNldCBwc3RyaW5nIFtmb3JtYXQgIiU0LjJmICU0LjJmICU0LjJmIiBbZXhwciBbbGluZGV4ICRzY2FsYXIgMF0qMS4wXSBbZXhwciBbbGluZGV4ICRzY2FsYXIgMV0qMS4wXSBbZXhwciBbbGluZGV4ICRzY2FsYXIgMl0qMS4wXV0KLSAgICAgIH0KLSAgICAgIHB1dHMgJG9wMSAic2V0IHZhcnMoJHJjX2Nvcm5lcixwb3N0X3JvdXRlX2Nsa19yZXNfZmFjdG9yKSBcdFx0XCIkcHN0cmluZ1wiIgotICAgIH0KLSAgIGlmIHtbZ2V0X3JjX2Nvcm5lciAkcmNfY29ybmVyIC1wcmVSb3V0ZV9jYXBdICE9ICIifSB7Ci0gICAgICBwdXRzICRvcDEgInNldCB2YXJzKCRyY19jb3JuZXIscHJlX3JvdXRlX2NhcF9mYWN0b3IpIFx0XHRbZm9ybWF0ICU0LjJmIFtleHByIFtnZXRfcmNfY29ybmVyICRyY19jb3JuZXIgLXByZVJvdXRlX2NhcF0qMS4wXV0iIAotICAgfQotICAgaWYge1tnZXRfcmNfY29ybmVyICRyY19jb3JuZXIgLXByZVJvdXRlX2Nsa2NhcF0gIT0gIiJ9IHsKLSAgICAgIHB1dHMgJG9wMSAic2V0IHZhcnMoJHJjX2Nvcm5lcixwcmVfcm91dGVfY2xrX2NhcF9mYWN0b3IpIFx0W2Zvcm1hdCAlNC4yZiBbZXhwciBbZ2V0X3JjX2Nvcm5lciAkcmNfY29ybmVyIC1wcmVSb3V0ZV9jbGtjYXBdKjEuMF1dIiAKLSAgICB9Ci0gICBpZiB7W2dldF9yY19jb3JuZXIgJHJjX2Nvcm5lciAtcG9zdFJvdXRlX2NhcF0gIT0gIiJ9IHsKLSAgICAgIHNldCB0cmlwbGV0cyBbZ2V0X3JjX2Nvcm5lciAkcmNfY29ybmVyIC1wb3N0Um91dGVfY2FwXQotICAgICAgc2V0IHNjYWxhciBbbGluZGV4ICR0cmlwbGV0cyAwXQotICAgICAgaWYge1tsbGVuZ3RoICRzY2FsYXJdID09IDF9IHsKLSAgICAgICAgIHNldCBwc3RyaW5nIFtmb3JtYXQgIiU0LjJmICU0LjJmICU0LjJmIiBbZXhwciBbbGluZGV4ICRzY2FsYXIgMF0qMS4wXSAxLjAgMS4wXQotICAgICAgfQotICAgICAgaWYge1tsbGVuZ3RoICRzY2FsYXJdID09IDJ9IHsKLSAgICAgICAgIHNldCBwc3RyaW5nIFtmb3JtYXQgIiU0LjJmICU0LjJmICU0LjJmIiBbZXhwciBbbGluZGV4ICRzY2FsYXIgMF0qMS4wXSBbZXhwciBbbGluZGV4ICRzY2FsYXIgMV0qMS4wXSAxLjBdCi0gICAgICB9Ci0gICAgICBpZiB7W2xsZW5ndGggJHNjYWxhcl0gPT0gM30gewotICAgICAgICAgc2V0IHBzdHJpbmcgW2Zvcm1hdCAiJTQuMmYgJTQuMmYgJTQuMmYiIFtleHByIFtsaW5kZXggJHNjYWxhciAwXSoxLjBdIFtleHByIFtsaW5kZXggJHNjYWxhciAxXSoxLjBdIFtleHByIFtsaW5kZXggJHNjYWxhciAyXSoxLjBdXQotICAgICAgfQotICAgICAgcHV0cyAkb3AxICJzZXQgdmFycygkcmNfY29ybmVyLHBvc3Rfcm91dGVfY2FwX2ZhY3RvcikgXHRcdFwiJHBzdHJpbmdcIiIKLSAgIH0KLSAgIGlmIHtbZ2V0X3JjX2Nvcm5lciAkcmNfY29ybmVyIC1wb3N0Um91dGVfY2xrY2FwXSAhPSAiIn0gewotICAgICAgc2V0IHRyaXBsZXRzIFtnZXRfcmNfY29ybmVyICRyY19jb3JuZXIgLXBvc3RSb3V0ZV9jbGtjYXBdCi0gICAgICBzZXQgc2NhbGFyIFtsaW5kZXggJHRyaXBsZXRzIDBdCi0gICAgICBpZiB7W2xsZW5ndGggJHNjYWxhcl0gPT0gMX0gewotICAgICAgICAgc2V0IHBzdHJpbmcgW2Zvcm1hdCAiJTQuMmYgJTQuMmYgJTQuMmYiIFtleHByIFtsaW5kZXggJHNjYWxhciAwXSoxLjBdIDEuMCAxLjBdCi0gICAgICB9Ci0gICAgICBpZiB7W2xsZW5ndGggJHNjYWxhcl0gPT0gMn0gewotICAgICAgICAgc2V0IHBzdHJpbmcgW2Zvcm1hdCAiJTQuMmYgJTQuMmYgJTQuMmYiIFtleHByIFtsaW5kZXggJHNjYWxhciAwXSoxLjBdIFtleHByIFtsaW5kZXggJHNjYWxhciAxXSoxLjBdIDEuMF0KLSAgICAgIH0KLSAgICAgIGlmIHtbbGxlbmd0aCAkc2NhbGFyXSA9PSAzfSB7Ci0gICAgICAgICBzZXQgcHN0cmluZyBbZm9ybWF0ICIlNC4yZiAlNC4yZiAlNC4yZiIgW2V4cHIgW2xpbmRleCAkc2NhbGFyIDBdKjEuMF0gW2V4cHIgW2xpbmRleCAkc2NhbGFyIDFdKjEuMF0gW2V4cHIgW2xpbmRleCAkc2NhbGFyIDJdKjEuMF1dCi0gICAgICB9Ci0gICAgICBwdXRzICRvcDEgInNldCB2YXJzKCRyY19jb3JuZXIscG9zdF9yb3V0ZV9jbGtfY2FwX2ZhY3RvcikgXHRcdFwiJHBzdHJpbmdcIiIKLSAgIH0KLSAgIGlmIHtbZ2V0X3JjX2Nvcm5lciAkcmNfY29ybmVyIC1wb3N0Um91dGVfeGNhcF0gIT0gIiJ9IHsKLSAgICAgIHNldCB0cmlwbGV0cyBbZ2V0X3JjX2Nvcm5lciAkcmNfY29ybmVyIC1wb3N0Um91dGVfeGNhcF0KLSAgICAgIHNldCBzY2FsYXIgW2xpbmRleCAkdHJpcGxldHMgMF0KLSAgICAgIGlmIHtbbGxlbmd0aCAkc2NhbGFyXSA9PSAxfSB7Ci0gICAgICAgICBzZXQgcHN0cmluZyBbZm9ybWF0ICIlNC4yZiAlNC4yZiAlNC4yZiIgW2V4cHIgW2xpbmRleCAkc2NhbGFyIDBdKjEuMF0gMS4wIDEuMF0KLSAgICAgIH0KLSAgICAgIGlmIHtbbGxlbmd0aCAkc2NhbGFyXSA9PSAyfSB7Ci0gICAgICAgICBzZXQgcHN0cmluZyBbZm9ybWF0ICIlNC4yZiAlNC4yZiAlNC4yZiIgW2V4cHIgW2xpbmRleCAkc2NhbGFyIDBdKjEuMF0gW2V4cHIgW2xpbmRleCAkc2NhbGFyIDFdKjEuMF0gMS4wXQotICAgICAgfQotICAgICAgaWYge1tsbGVuZ3RoICRzY2FsYXJdID09IDN9IHsKLSAgICAgICAgIHNldCBwc3RyaW5nIFtmb3JtYXQgIiU0LjJmICU0LjJmICU0LjJmIiBbZXhwciBbbGluZGV4ICRzY2FsYXIgMF0qMS4wXSBbZXhwciBbbGluZGV4ICRzY2FsYXIgMV0qMS4wXSBbZXhwciBbbGluZGV4ICRzY2FsYXIgMl0qMS4wXV0KLSAgICAgIH0KLSAgICAgIHB1dHMgJG9wMSAic2V0IHZhcnMoJHJjX2Nvcm5lcixwb3N0X3JvdXRlX3hjYXBfZmFjdG9yKSBcdFx0XCIkcHN0cmluZ1wiIgotICAgfQotICAgcHV0cyAkb3AxICAiIiAKLX0KLXB1dHMgJG9wMSAiIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyIKLXB1dHMgJG9wMSAiIyBEZWZpbmUgb3BlcmF0aW5nIGNvbmRpdGlvbnMgKG9wdGlvbmFsKSIKLXB1dHMgJG9wMSAiIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIKLXB1dHMgJG9wMSAiIyBzZXQgdmFycyhvcGNvbmRzKSA8bGlzdCBvZiBvcGVyYXRpbmcgY29uZGl0aW9ucz4iCi1wdXRzICRvcDEgIiMgc2V0IHZhcnMoPG9wY29uZD4sbGlicmFyeV9maWxlKSA8bGlicmFyeSBmaWxlID4iCi1wdXRzICRvcDEgIiMgc2V0IHZhcnMoPG9wY29uZD4sUCkgPHByb2Nlc3Mgc2NhbGUgZmFjdG9yPiIKLXB1dHMgJG9wMSAiIyBzZXQgdmFycyg8b3Bjb25kPixWKSA8dm9sdGFnZT4iCi1wdXRzICRvcDEgIiMgc2V0IHZhcnMoPG9wY29uZD4sVCkgPHRlbXBlcmF0dXJlPiIKLXB1dHMgJG9wMSAiIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyIKLWlmIHshW2luZm8gZXhpc3RzIDo6Q1BGOjpjcGZDb21taXR0ZWRdfSB7Ci0gICBzZXQgb3Bjb25kcyBbbGlzdF0KLSAgIGZvcmVhY2ggb3Bjb25kIFthbGxfb3BfY29uZHNdIHsKLSAgICMgICBpZiB7W3JlZ2V4cCAiXmRlZmF1bHQiICRvcGNvbmQgXSA9PSAwfSB7Ci0gICAgICAgICBsYXBwZW5kIG9wY29uZHMgJG9wY29uZAotICAgIyAgIH0KLSAgIH0KLSAgIGlmIHskb3Bjb25kcyAhPSAiIn0gewotICAgICAgcHV0cyAkb3AxICIjc2V0IHZhcnMob3Bjb25kcykgXCIkb3Bjb25kc1wiIgotICAgfQotICAgZm9yZWFjaCBvcGNvbmQgJG9wY29uZHMgewotICAgICAgZm9yZWFjaCBvcHRpb24gImxpYnJhcnlfZmlsZSBQIFYgVCIgewotICAgICAgICAgaWYge1tnZXRfb3BfY29uZCAkb3Bjb25kIC0kb3B0aW9uXSAhPSAiIn0gewotICAgICAgICAgICAgcHV0cyAkb3AxICIjc2V0IHZhcnMoJG9wY29uZCwkb3B0aW9uKSBbZ2V0X29wX2NvbmQgJG9wY29uZCAtJG9wdGlvbl0iIAotICAgICAgICAgfQotICAgICAgfQotICAgfQotfQotCi1wdXRzICRvcDEgIiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMiCi1wdXRzICRvcDEgIiMgRGVmaW5lIGRlbGF5IGNvcm5lcnMgLi4uIgotcHV0cyAkb3AxICIjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIgotcHV0cyAkb3AxICIjIHNldCB2YXJzKGRlbGF5X2Nvcm5lcnMpIDxsaXN0IG9mIGRlbGF5IGNvcm5lcnM+IgotcHV0cyAkb3AxICIjIHNldCB2YXJzKDxkZWxheV9jb3JuZXI+LGxpYnJhcnlfc2V0KSA8bGlicmFyeV9zZXQ+IChwcmV2aW91c2x5IGRlZmluZWQpIgotcHV0cyAkb3AxICIjIHNldCB2YXJzKDxkZWxheV9jb3JuZXI+LG9wY29uZCkgPG9wY29uZD4gKHByZXZpb3VzbHkgZGVmaW5lZCkgKG9wdGlvbmFsKSIKLXB1dHMgJG9wMSAiIyBzZXQgdmFycyg8ZGVsYXlfY29ybmVyPixyY19jb3JuZXIpIGxpYnJhcnlfc2V0PiAocHJldmlvdXNseSBkZWZpbmVkKSIKLXB1dHMgJG9wMSAiIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyIKLXNldCBkZWxheV9jb3JuZXJzIFtsaXN0XQotZm9yZWFjaCBkZWxheV9jb3JuZXIgW2FsbF9kZWxheV9jb3JuZXJzXSB7Ci0jICAgaWYge1tsbGVuZ3RoIFthbGxfZGVsYXlfY29ybmVyc11dID4gMn0gewotIyAgICAgIGlmIHtbcmVnZXhwICJeZGVmYXVsdCIgJGRlbGF5X2Nvcm5lciBdID09IDB9IHsKLSMgICAgICAgICBsYXBwZW5kIGRlbGF5X2Nvcm5lcnMgJGRlbGF5X2Nvcm5lcgotIyAgICAgIH0KLSMgICB9IGVsc2UgewotICAgICAgbGFwcGVuZCBkZWxheV9jb3JuZXJzICRkZWxheV9jb3JuZXIKLSMgICB9Ci19Ci1pZiB7JGRlbGF5X2Nvcm5lcnMgIT0gIiJ9IHsKLSAgIHB1dHMgJG9wMSAic2V0IHZhcnMoZGVsYXlfY29ybmVycykgXCIkZGVsYXlfY29ybmVyc1wiIgotfQotZm9yZWFjaCBkYyAkZGVsYXlfY29ybmVycyB7Ci0gICAgc2V0IGF0dHJpYnV0ZV9saXN0ICJyY19jb3JuZXIgbGlicmFyeV9zZXQgb3Bjb25kX2xpYnJhcnkgb3Bjb25kIGlyZHJvcF9maWxlIGxhdGVfbGlicmFyeV9zZXQgZWFybHlfbGlicmFyeV9zZXQgCi0gICAgICAgICAgICAgICAgICAgICAgICBsYXRlX29wY29uZF9saWJyYXJ5IGVhcmx5X29wY29uZF9saWJyYXJ5IGxhdGVfb3Bjb25kIGVhcmx5X29wY29uZCBsYXRlX2lyZHJvcF9maWxlIGVhcmx5X2lyZHJvcF9maWxlIgotCi0gICBmb3JlYWNoIGF0dHIgJGF0dHJpYnV0ZV9saXN0IHsKLSAgICMgRXh0cmFjdGlvbiB0aGUgY29ybmVyIGxldmVsIHByb3BlcnRpZXMKLSAgICAgIGlmIHtbZ2V0X2RlbGF5X2Nvcm5lciAkZGMgLSRhdHRyXSAhPSAiIn0geyAKLSAgICAgICAgIHB1dHMgJG9wMSAic2V0IHZhcnMoJGRjLCRhdHRyKSBcdFtnZXRfZGVsYXlfY29ybmVyICRkYyAtJGF0dHJdIgotICAgICAgfQotICAgIyBFeHRyYWN0aW9uIHRoZSBwb3dlciBkb21haW4gbGV2ZWwgcHJvcGVydGllcwotICAgICAgc2V0IGRvbWFpbnMgW2dldF9kZWxheV9jb3JuZXIgJGRjIC1wb3dlcl9kb21haW5fbGlzdF0KLSAgICAgIGlmIHskZG9tYWlucyAhPSAiIn0gewotICAgICAgICBpZiB7IVtpbmZvIGV4aXN0cyBkb25lKCRkYyxwb3dlcl9kb21haW5zKV19IHsKLSAgICAgICAgICAgcHV0cyAkb3AxICJzZXQgdmFycygkZGMscG93ZXJfZG9tYWlucykgXCIkZG9tYWluc1wiIgotICAgICAgICAgICAgZm9yZWFjaCBwZCBbZ2V0X2RlbGF5X2Nvcm5lciAkZGMgLXBvd2VyX2RvbWFpbl9saXN0XSB7Ci0gICAgICAgICAgICAgIHB1dHMgJG9wMSAiIyBBdHRyaWJ1dGVzIGZvciBwb3dlciBkb21haW4gJHBkIgotICAgICAgICAgICAgICAgZm9yZWFjaCBhdHRyICRhdHRyaWJ1dGVfbGlzdCB7Ci0gICAgICAgICAgICAgICAgICBpZiB7W2dldF9kZWxheV9jb3JuZXIgLXBvd2VyX2RvbWFpbiAkcGQgJGRjIC0kYXR0cl0gIT0gIiJ9IHsKLSAgICAgICAgICAgICAgICAgICAgIHNldCBkb25lKCRkYywkcGQsJGF0dHIpIFRSVUUKLSAgICAgICAgICAgICAgICAgICAgIHB1dHMgJG9wMSAic2V0IHZhcnMoJGRjLCRwZCwkYXR0cikgXHRbZ2V0X2RlbGF5X2Nvcm5lciAkZGMgLXBvd2VyX2RvbWFpbiAkcGQgLSRhdHRyXSIKLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIH0gCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgIHNldCBkb25lKCRkYyxwb3dlcl9kb21haW5zKSBUUlVFCi0gICAgICAgICB9IAotICAgICAgfQotICAgfQotfQotCi0KLXB1dHMgJG9wMSAiIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyIKLXB1dHMgJG9wMSAiIyBPcHRpb25hbGx5IGRlZmluZSBkZXJhdGluZyBmYWN0b3JzIGZvciBPQ1YgaGVyZSAoY2xvY2sgYW5kIGRhdGEpLiAiCi1wdXRzICRvcDEgIiMgRGVyYXRpbmcgZmFjdG9ycyBhcmUgYXBwbGllZCBwZXIgZGVsYXkgY29ybmVyIHVzaW5nIGVpdGhlciBpbmRpdmlkdWFsIgotcHV0cyAkb3AxICIjIHZhbHVlcyBPUiB2aWEgYSBkZXJhdGVfdGNsIGZpbGUgd2hpY2ggbXVzdCBjb250YWluIHN5bnRhY3RpY2FsbHkgY29ycmVjdCIKLXB1dHMgJG9wMSAiIyBzZXRfdGltaW5nX2RlcmF0ZSBjb21tYW5kcyBmb3IgYSBnaXZlbiBkZWxheV9jb3JuZXIiCi1wdXRzICRvcDEgIiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iCi1wdXRzICRvcDEgIiNzZXQgdmFycyg8ZGVsYXlfY29ybmVyPixkZXJhdGVfdGNsKSAgICAgICAgPGZpbGU+IgotcHV0cyAkb3AxICIjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIgotcHV0cyAkb3AxICIjc2V0IHZhcnMoPGRlbGF5X2Nvcm5lcj4sZGF0YV9jZWxsX2xhdGUpICAgIDxmbG9hdD4iCi1wdXRzICRvcDEgIiNzZXQgdmFycyg8ZGVsYXlfY29ybmVyPixkYXRhX2NlbGxfZWFybHkpICAgPGZsb2F0PiIKLXB1dHMgJG9wMSAiI3NldCB2YXJzKDxkZWxheV9jb3JuZXI+LGRhdGFfbmV0X2xhdGUpICAgICA8ZmxvYXQ+IgotcHV0cyAkb3AxICIjc2V0IHZhcnMoPGRlbGF5X2Nvcm5lcj4sZGF0YV9uZXRfZWFybHkpICAgIDxmbG9hdD4iCi1wdXRzICRvcDEgIiNzZXQgdmFycyg8ZGVsYXlfY29ybmVyPixjbG9ja19jZWxsX2xhdGUpICAgPGZsb2F0PiIKLXB1dHMgJG9wMSAiI3NldCB2YXJzKDxkZWxheV9jb3JuZXI+LGNsb2NrX2NlbGxfZWFybHkpICA8ZmxvYXQ+IgotcHV0cyAkb3AxICIjc2V0IHZhcnMoPGRlbGF5X2Nvcm5lcj4sY2xvY2tfbmV0X2xhdGUpICAgIDxmbG9hdD4iCi1wdXRzICRvcDEgIiNzZXQgdmFycyg8ZGVsYXlfY29ybmVyPixjbG9ja19uZXRfZWFybHkpICAgPGZsb2F0PiIKLXB1dHMgJG9wMSAiI3NldCB2YXJzKDxkZWxheV9jb3JuZXI+LGNlbGxfY2hlY2tfbGF0ZSkgICA8ZmxvYXQ+IgotcHV0cyAkb3AxICIjc2V0IHZhcnMoPGRlbGF5X2Nvcm5lcj4sY2VsbF9jaGVja19lYXJseSkgIDxmbG9hdD4iCi1wdXRzICRvcDEgIiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iCi0KLXNldCBtYXAoZWFybHlfY2VsbF9jaGVja19kZXJhdGVfZmFjdG9yKSBlYXJseV9jZWxsX2NoZWNrCi1zZXQgbWFwKGVhcmx5X2Nsa19jZWxsX2RlcmF0ZV9mYWN0b3IpIGNsb2NrX2NlbGxfZWFybHkKLXNldCBtYXAoZWFybHlfZGF0YV9jZWxsX2RlcmF0ZV9mYWN0b3IpIGRhdGFfY2VsbF9lYXJseQotc2V0IG1hcChsYXRlX2NlbGxfY2hlY2tfZGVyYXRlX2ZhY3RvcikgbGF0ZV9jZWxsX2NoZWNrCi1zZXQgbWFwKGxhdGVfY2xrX2NlbGxfZGVyYXRlX2ZhY3RvcikgY2xvY2tfY2VsbF9sYXRlCi1zZXQgbWFwKGxhdGVfZGF0YV9jZWxsX2RlcmF0ZV9mYWN0b3IpIGRhdGFfY2VsbF9sYXRlCi0KLSN0aW1lRGVzaWduIC1wcmVQbGFjZQotI2ZvcmVhY2ggdmlldyBbYWxsX3NldHVwX2FuYWx5c2lzX3ZpZXdzXSB7Ci0jICAgZm9yZWFjaCB0eXBlICJlYXJseV9jZWxsX2NoZWNrX2RlcmF0ZV9mYWN0b3IgZWFybHlfY2xrX2NlbGxfZGVyYXRlX2ZhY3RvciBlYXJseV9kYXRhX2NlbGxfZGVyYXRlX2ZhY3RvciBcCi0jICAgICAgICAgICAgICAgICBsYXRlX2NlbGxfY2hlY2tfZGVyYXRlX2ZhY3RvciBsYXRlX2Nsa19jZWxsX2RlcmF0ZV9mYWN0b3IgbGF0ZV9kYXRhX2NlbGxfZGVyYXRlX2ZhY3RvciIgewotIwotIyAgICAgIHB1dHMgJG9wMSAic2V0IHZhcnMoW2dldF9hbmFseXNpc192aWV3ICR2aWV3IC1kZWxheV9jb3JuZXJdLCRtYXAoJHR5cGUpKSBbZ2V0X3Byb3BlcnR5IFtsaW5kZXggW2FsbF9yZWdpc3RlcnNdIDBdICR0eXBlIC12aWV3ICR2aWV3XSIKLSMgICB9Ci0jfQotI3RpbWVEZXNpZ24gLXByZVBsYWNlIC1ob2xkCi0jZm9yZWFjaCB2aWV3IFthbGxfaG9sZF9hbmFseXNpc192aWV3c10gewotIyAgIGZvcmVhY2ggdHlwZSAiZWFybHlfY2VsbF9jaGVja19kZXJhdGVfZmFjdG9yIGVhcmx5X2Nsa19jZWxsX2RlcmF0ZV9mYWN0b3IgZWFybHlfZGF0YV9jZWxsX2RlcmF0ZV9mYWN0b3IgXAotIyAgICAgICAgICAgICAgICAgbGF0ZV9jZWxsX2NoZWNrX2RlcmF0ZV9mYWN0b3IgbGF0ZV9jbGtfY2VsbF9kZXJhdGVfZmFjdG9yIGxhdGVfZGF0YV9jZWxsX2RlcmF0ZV9mYWN0b3IiIHsKLSMKLSMgICAgICBwdXRzICRvcDEgInNldCB2YXJzKFtnZXRfYW5hbHlzaXNfdmlldyAkdmlldyAtZGVsYXlfY29ybmVyXSwkbWFwKCR0eXBlKSkgW2dldF9wcm9wZXJ0eSBbbGluZGV4IFthbGxfcmVnaXN0ZXJzXSAwXSAkdHlwZSAtdmlldyAkdmlld10iCi0jICAgfQotI30KLQotcHV0cyAkb3AxICIjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIgotcHV0cyAkb3AxICIjIERlZmluZSBjb25zdHJhaW50IG1vZGVzIC4uLiAiCi1wdXRzICRvcDEgIiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iCi1wdXRzICRvcDEgIiMgc2V0IHZhcnMoY29uc3RyYWludF9tb2RlcykgICAgICAgIDxsaXN0IG9mIGNvbnN0cmFpbnQgbW9kZXM+IgotcHV0cyAkb3AxICIjIHNldCB2YXJzKDxtb2RlPixwcmVfY3RzX3NkYykgICAgICA8cHJlIGN0cyBjb25zdHJhaW50IGZpbGU+IChyZXF1aXJlZCkiCi1wdXRzICRvcDEgIiMgc2V0IHZhcnMoPG1vZGU+LHBvc3RfY3RzX3NkYykgICAgIDxwb3N0IGN0cyBjb25zdHJhaW50IGZpbGU+IChvcHRpb25hbCkiCi1wdXRzICRvcDEgIiMgc2V0IHZhcnMoPG1vZGU+LGluY3JfY3RzX3NkYykgICAgIDxpbmNyZW1lbnRhbCBwb3N0IGN0cyBjb25zdHJhaW50IGZpbGU+IChvcHRpb25hbCkiCi1wdXRzICRvcDEgIiMgc2V0IHZhcnMoPG1vZGU+LHByZV9jdHNfaWxtX3NkYykgIDxwcmUgY3RzIGlsbSBjb25zdHJhaW50IGZpbGU+IChvcHRpb25hbCkiCi1wdXRzICRvcDEgIiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iCi1zZXQgY29uc3RyYWludF9tb2RlcyBbbGlzdF0KLWZvcmVhY2ggY29uc3RyYWludF9tb2RlIFthbGxfY29uc3RyYWludF9tb2Rlc10gewotIyAgIGlmIHtbbGxlbmd0aCBbYWxsX2NvbnN0cmFpbnRfbW9kZXNdXSA+IDJ9IHsKLSMgICAgICBpZiB7W3JlZ2V4cCAiXmRlZmF1bHRfbW9kZSIgJGNvbnN0cmFpbnRfbW9kZSBdID09IDB9IHsKLSMgICAgICAgICBsYXBwZW5kIGNvbnN0cmFpbnRfbW9kZXMgJGNvbnN0cmFpbnRfbW9kZQotIyAgICAgIH0KLSMgICB9IGVsc2UgewotICAgICAgbGFwcGVuZCBjb25zdHJhaW50X21vZGVzICRjb25zdHJhaW50X21vZGUKLSMgICB9Ci19Ci1pZiB7JGNvbnN0cmFpbnRfbW9kZXMgIT0gIiJ9IHsKLSAgIHB1dHMgJG9wMSAic2V0IHZhcnMoY29uc3RyYWludF9tb2RlcykgXCIkY29uc3RyYWludF9tb2Rlc1wiIgotfQotZm9yZWFjaCBjb25zdHJhaW50X21vZGUgJGNvbnN0cmFpbnRfbW9kZXMgewotICAgaWYge1tnZXRfY29uc3RyYWludF9tb2RlICRjb25zdHJhaW50X21vZGUgLXNkY19maWxlc10gIT0gIiJ9IHsKLSMgICAgICBwdXRzICRvcDEgInNldCB2YXJzKCRjb25zdHJhaW50X21vZGUscHJlX2N0c19zZGMpIFwiW2ZpbGUgbm9ybWFsaXplIFtnZXRfY29uc3RyYWludF9tb2RlICRjb25zdHJhaW50X21vZGUgLXNkY19maWxlc11dXCIiIAotICAgICBzZXQgcHJlX2N0c19zZGNfbGlzdCBbbGlzdF0KLSAgICAgZm9yZWFjaCBmaWxlIFtnZXRfY29uc3RyYWludF9tb2RlICRjb25zdHJhaW50X21vZGUgLXNkY19maWxlc10gIHsKLSAgICAgICAgbGFwcGVuZCBwcmVfY3RzX3NkY19saXN0IFtmaWxlIG5vcm1hbGl6ZSAkZmlsZV0KLSAgICAgfQotICAgICBwdXRzICRvcDEgInNldCB2YXJzKCRjb25zdHJhaW50X21vZGUscHJlX2N0c19zZGMpIFwiW2pvaW4gJHByZV9jdHNfc2RjX2xpc3RdXCIiIAotICAgICAgaWYge1tpbmZvIGV4aXN0cyBkZ25fcG9zdF9jdHNfc2RjXSAmJiAoJGRnbl9wb3N0X2N0c19zZGMgIT0gIiIpIH0gewotICAgICAgICAgcHV0cyAkb3AxICJzZXQgdmFycygkY29uc3RyYWludF9tb2RlLHBvc3RfY3RzX3NkYykgXCIkZGduX3Bvc3RfY3RzX3NkY1wiIiAKLSAgICAgIH0KLSAgIH0KLSAgIGlmIHtbZ2V0X2NvbnN0cmFpbnRfbW9kZSAkY29uc3RyYWludF9tb2RlIC1pbG1fc2RjX2ZpbGVzXSAhPSAiIn0gewotIyAgICAgIHB1dHMgJG9wMSAic2V0IHZhcnMoJGNvbnN0cmFpbnRfbW9kZSxwcmVfY3RzX2lsbV9zZGMpIFwiW2ZpbGUgbm9ybWFsaXplIFtnZXRfY29uc3RyYWludF9tb2RlICRjb25zdHJhaW50X21vZGUgLWlsbV9zZGNfZmlsZXNdXVwiIiAKLSAgICAgc2V0IGlsbV9jdHNfc2RjX2xpc3QgW2xpc3RdCi0gICAgIGZvcmVhY2ggZmlsZSBbZ2V0X2NvbnN0cmFpbnRfbW9kZSAkY29uc3RyYWludF9tb2RlIC1pbG1fc2RjX2ZpbGVzXSAgewotICAgICAgICBsYXBwZW5kIGlsbV9jdHNfc2RjX2xpc3QgW2ZpbGUgbm9ybWFsaXplICRmaWxlXQotICAgICB9Ci0gICAgIHB1dHMgJG9wMSAic2V0IHZhcnMoJGNvbnN0cmFpbnRfbW9kZSxwcmVfY3RzX2lsbV9zZGMpIFwiW2pvaW4gJGlsbV9jdHNfc2RjX2xpc3RdXCIiIAotICAgfQotfQotCi1wdXRzICRvcDEgIiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMiCi1wdXRzICRvcDEgIiMgRGVmaW5lIHNldHVwIGFuZCBob2xkIGFuYWx5c2lzIHZpZXdzIC4uLiBlYWNoIGFuYWx5c2lzIHZpZXcgcmVxdWlyZXMiCi1wdXRzICRvcDEgIiMgYSBkZWxheSBjb3JuZXIgYW5kIGEgY29uc3RyYWludCBtb2RlIgotcHV0cyAkb3AxICIjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIgotCi0jc2V0IGFuYWx5c2lzX3ZpZXdzICIiCi1zZXQgYW5hbHlzaXNfdmlld3MgW2NvbmNhdCBbYWxsX3NldHVwX2FuYWx5c2lzX3ZpZXdzXSBbYWxsX2hvbGRfYW5hbHlzaXNfdmlld3NdXQotI2ZvcmVhY2ggdmlldyBbYWxsX2FuYWx5c2lzX3ZpZXdzXSB7Ci0jICAgaWYge1tsbGVuZ3RoIFthbGxfYW5hbHlzaXNfdmlld3NdXSA+IDJ9IHsKLSMgICAgICBpZiB7W3JlZ2V4cCAiXmRlZmF1bHQiICR2aWV3IF0gPT0gMH0gewotIyAgICAgICAgIGxhcHBlbmQgYW5hbHlzaXNfdmlld3MgJHZpZXcKLSMgICAgICB9Ci0jICAgfSBlbHNlIHsKLSMgICAgICBsYXBwZW5kIGFuYWx5c2lzX3ZpZXdzICR2aWV3Ci0jICAgfQotI30KLWZvcmVhY2ggdmlldyAkYW5hbHlzaXNfdmlld3MgewotICAgZm9yZWFjaCBvcHRpb24gImRlbGF5X2Nvcm5lciBjb25zdHJhaW50X21vZGUiIHsKLSAgICAgIGlmIHtbZ2V0X2FuYWx5c2lzX3ZpZXcgJHZpZXcgLSRvcHRpb25dICE9ICIifSB7Ci0gICAgICAgICBwdXRzICRvcDEgInNldCB2YXJzKCR2aWV3LCRvcHRpb24pIFtnZXRfYW5hbHlzaXNfdmlldyAkdmlldyAtJG9wdGlvbl0iIAotICAgICAgfQotICAgfQotfQotcHV0cyAkb3AxICIjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIgotcHV0cyAkb3AxICIjIEVESVQvVkVSSUZZIFRIRVNFIExJU1RTISEiCi1wdXRzICRvcDEgIiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMiCi1wdXRzICRvcDEgInNldCB2YXJzKHNldHVwX2FuYWx5c2lzX3ZpZXdzKSBcIlthbGxfc2V0dXBfYW5hbHlzaXNfdmlld3NdXCIiCi1wdXRzICRvcDEgInNldCB2YXJzKGhvbGRfYW5hbHlzaXNfdmlld3MpICBcIlthbGxfaG9sZF9hbmFseXNpc192aWV3c11cIiIKLSNwdXRzICRvcDEgInNldCB2YXJzKHNldHVwX2FuYWx5c2lzX3ZpZXdzKSBcIiRhbmFseXNpc192aWV3c1wiIgotI3B1dHMgJG9wMSAic2V0IHZhcnMoaG9sZF9hbmFseXNpc192aWV3cykgXCIkYW5hbHlzaXNfdmlld3NcIiIKLQotcHV0cyAkb3AxICIjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIgotcHV0cyAkb3AxICIjIERlZmluZSBhY3RpdmUgc2V0dXAgYW5kIGhvbGQgYW5hbHlzaXMgdmlldyBsaXN0cyBhbmQgZGVmYXVsdCB2aWV3cyIKLXB1dHMgJG9wMSAiIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyIKLXB1dHMgJG9wMSAic2V0IHZhcnMoZGVmYXVsdF9zZXR1cF92aWV3KSAgXFtsaW5kZXggXCR2YXJzKHNldHVwX2FuYWx5c2lzX3ZpZXdzKSAwXF0iCi1wdXRzICRvcDEgInNldCB2YXJzKGRlZmF1bHRfaG9sZF92aWV3KSAgIFxbbGluZGV4IFwkdmFycyhob2xkX2FuYWx5c2lzX3ZpZXdzKSAwXF0iCi0jcHV0cyAkb3AxICJzZXQgdmFycyhhY3RpdmVfc2V0dXBfdmlld3MpIFwkdmFycyhzZXR1cF9hbmFseXNpc192aWV3cykiCi0jcHV0cyAkb3AxICJzZXQgdmFycyhhY3RpdmVfaG9sZF92aWV3cykgIFwkdmFycyhob2xkX2FuYWx5c2lzX3ZpZXdzKSIKLXB1dHMgJG9wMSAic2V0IHZhcnMoYWN0aXZlX3NldHVwX3ZpZXdzKSAgXCR2YXJzKHNldHVwX2FuYWx5c2lzX3ZpZXdzKSIKLXB1dHMgJG9wMSAic2V0IHZhcnMoYWN0aXZlX2hvbGRfdmlld3MpICAgXCR2YXJzKGhvbGRfYW5hbHlzaXNfdmlld3MpIgotcHV0cyAkb3AxICIiCi1wdXRzICRvcDEgIiNzZXQgdmFycyhnZHNfZmlsZXMpICAgICAgICAgPGxpc3Qgb2YgZ2RzIGZpbGVzPiIKLXB1dHMgJG9wMSAiI3NldCB2YXJzKGdkc19sYXllcl9tYXApICAgICA8Z2RzIGxheWVyIG1hcCBmaWxlPiIKLXB1dHMgJG9wMSAiI3NldCB2YXJzKHFyY19sYXllcl9tYXApICAgICA8cXJjIGxheWVyIG1hcCBmaWxlPiIKLXB1dHMgJG9wMSAiI3NldCB2YXJzKHFyY19saWJyYXJ5KSAgICAgICA8cXJjIGxpYnJhcnkgZGlyZWN0b3J5PiIKLXB1dHMgJG9wMSAiI3NldCB2YXJzKHFyY19jb25maWdfZmlsZSkgICA8cXJjIGNvbmZpZyBmaWxlPiIKLXB1dHMgJG9wMSAiIgotcHV0cyAkb3AyICIjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIgotcHV0cyAkb3AyICIjIEVuYWJsZSBvbkNoaXBWYXJpYXRpb24gKGZvciBNTU1DIGZsb3dzKS4gIE9wdGlvbnMgYXJlOiIKLXB1dHMgJG9wMiAiIyBwcmVfcGxhY2UsIHByZV9wcmVjdHMsIHByZV9jdHMsIHByZV9wb3N0Y3RzLCBwcmVfcG9zdHJvdXRlLCBwcmVfc2lnbm9mZiwgZmFsc2UiCi1wdXRzICRvcDIgIiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMiCi1wdXRzICRvcDIgInNldCB2YXJzKGVuYWJsZV9vY3YpICAgICAgICBwcmVfY3RzIgotcHV0cyAkb3AyICIiCi1wdXRzICRvcDIgIiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMiCi1wdXRzICRvcDIgIiMgT3B0aW9uYWxseSBlbmFibGUgYW9jdiIKLXB1dHMgJG9wMiAiIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyIKLXB1dHMgJG9wMiAic2V0IHZhcnMoZW5hYmxlX2FvY3YpICAgICAgIGZhbHNlIgotcHV0cyAkb3AyICIjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIgotcHV0cyAkb3AyICIjIE9wdGlvbmFsbHkgZW5hYmxlIGNwcHI7IG9wdGlvbnMgYXJlOiBzZXR1cCwgaG9sZCwgYm90aCwgbm9uZSIKLXB1dHMgJG9wMiAiIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyIKLXB1dHMgJG9wMiAic2V0IHZhcnMoZW5hYmxlX2NwcHIpICAgICAgIGJvdGgiCi1wdXRzICRvcDIgIiIKLSNwdXRzICRvcDIgIiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMiCi0jcHV0cyAkb3AyICIjIE9wdGlvbmFsbHkgZW5hYmxlIHNpZ25hbFN0b3JtIGRlbGF5IGNhbGN1bGF0aW9uIGR1cmluZyB0aGUgZmxvdy4iCi0jcHV0cyAkb3AyICIjIFRoaXMgaXMgYSByZXF1aXJlbWVudCB3aGVuIHVzaW5nIEVDU00vQ0NTIG1vZGVscy4gIFRoZSBmb2xsb3dpbmcgYXJlIgotI3B1dHMgJG9wMiAiIyB2YWx1ZSBvcHRpb25zOiBwcmVfcGxhY2UgcHJlX3ByZWN0cyBwcmVfcG9zdGN0cyBwcmVfcG9zdHJvdXRlIHByZV9zaWdub2ZmIGZhbHNlIgotI3B1dHMgJG9wMiAiIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyIKLSNwdXRzICRvcDIgInNldCB2YXJzKGVuYWJsZV9zcykgICAgICAgICBmYWxzZSIKLSNwdXRzICRvcDIgIiIKLXB1dHMgJG9wMiAiIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyIKLXB1dHMgJG9wMiAiIyBPcHRpb25hbGx5IGVuYWJsZSBzaWdub2ZmIEVDTyBmb3IgdGhlIGhpZXJhcmhpY2FsIGZsb3ciCi1wdXRzICRvcDIgIiMgSUYgJ2lsbScsIFRIRU4gVEhFIEZPTExPV0lORyBTSE9VTEQgQkUgU0VUIElOIFRIRSBzZXR1cC50Y2wiCi1wdXRzICRvcDIgIiMgLSB2YXJzKDxwdG4+LGlsbV9kaXIpICAgPHBhdGggdG8gSUxNIGRpcmV0b3J5PiIKLXB1dHMgJG9wMiAiIyAtIHZhI3JzKDxwdG4+LGxlZl9maWxlKSAgPHBhdGggdG8gTEVGIGZpbGU+IgotcHV0cyAkb3AyICIjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIgotcHV0cyAkb3AyICJzZXQgdmFycyhlbmFibGVfc2lnbm9mZl9lY28pICAgICAgICAgICAgZmFsc2UiCi1wdXRzICRvcDIgIiIKLXB1dHMgJG9wMiAiIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyIKLXB1dHMgJG9wMiAiIyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZsb3cgT3B0aW9ucyIKLXB1dHMgJG9wMiAiIyBPcHRpb25hbGx5IGVuYWJsZSBkZXNpZ24gbW9kZSBvcHRpb25zOiIKLXB1dHMgJG9wMiAiIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIKLXB1dHMgJG9wMiAiI3NldCB2YXJzKGZsb3dfZWZmb3QpICAgICAgIDxleHByZXNzIHwgc3RhbmRhcmQgfCBleHRyZW1lPiIKLXB1dHMgJG9wMiAiI3NldCB2YXJzKHBvd2VyX2VmZm9ydCkgICAgIDxub25lIHwgbG93IHwgaGlnaD4iCi1wdXRzICRvcDIgIiIKLXB1dHMgJG9wMiAiIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyIKLXB1dHMgJG9wMiAiIyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBsYWNlbWVudCBPcHRpb25zIgotcHV0cyAkb3AyICIjIE5PVEU6IFdoZW4gcGxhY2Vfb3B0X2Rlc2lnbiBpcyBlbmFibGVkLCB0aGUgcHJlY3RzIHN0ZXAgd2lsbCBiZSBza2lwcGVkIgotcHV0cyAkb3AyICIjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIgotcHV0cyAkb3AyICIjc2V0IHZhcnMoaW5fcGxhY2Vfb3B0KSAgICAgdHJ1ZSIKLXB1dHMgJG9wMiAiI3NldCB2YXJzKG5vX3ByZV9wbGFjZV9vcHQpIHRydWUiCi1wdXRzICRvcDIgIiNzZXQgdmFycyhwbGFjZV9vcHRfZGVzaWduKSAgPHRydWUgfCBmYWxzZT4iCi1wdXRzICRvcDIgIiNzZXQgdmFycyhwbGFjZV9pb19waW5zKSAgICAgPHRydWUgfCBmYWxzZT4iCi1wdXRzICRvcDIgIiNzZXQgdmFycyhjbG9ja19nYXRlX2F3YXJlKSAgPHRydWUgfCBmYWxzZT4iCi1wdXRzICRvcDIgIiNzZXQgdmFycyhjb25nZXN0aW9uX2VmZm9ydCkgPGF1dG8gfCBsb3cgfCBoaWdoPiIKLXB1dHMgJG9wMiAiIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIKLWZvcmVhY2ggb3B0aW9uIFtnZXRQbGFjZU1vZGUgLXF1aWV0XSB7Ci0gICBpZiB7W2xpbmRleCAkb3B0aW9uIDBdID09ICJjbGtHYXRlQXdhcmUifSB7Ci0gICAgICBwdXRzICRvcDIgInNldCB2YXJzKGNsb2NrX2dhdGVfYXdhcmUpICBbbGluZGV4ICRvcHRpb24gMV0iCi0gICB9Ci0gICBpZiB7W2xpbmRleCAkb3B0aW9uIDBdID09ICJjb25nRWZmb3J0In0gewotICAgICAgcHV0cyAkb3AyICJzZXQgdmFycyhjb25nZXN0aW9uX2VmZm9ydCkgW2xpbmRleCAkb3B0aW9uIDFdIgotICAgfQotICAgaWYge1tsaW5kZXggJG9wdGlvbiAwXSA9PSAicGxhY2VJb1BpbnMifSB7Ci0gICAgICBwdXRzICRvcDIgInNldCB2YXJzKHBsYWNlX2lvX3BpbnMpICAgICBbbGluZGV4ICRvcHRpb24gMV0iCi0gICB9Ci19Ci1wdXRzICRvcDIgIiIKLXB1dHMgJG9wMiAiIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyIKLXB1dHMgJG9wMiAiIyAgICAgICAgICAgICAgICAgICAgIFRpZS9GaWxsZXIvVGFwIENlbGwgT3B0aW9ucyIKLXB1dHMgJG9wMiAiIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIKLXB1dHMgJG9wMiAiIyAgICAgICAgICAgICAgICAgICAgICAgICBUaWUgY2VsbCBpbmZvcm1hdGlvbiIKLXB1dHMgJG9wMiAiIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIKLWZvcmVhY2ggb3B0aW9uIFtnZXRUaWVIaUxvTW9kZSAtcXVpZXRdIHsKLSAgIHN3aXRjaCAtZXhhY3QgLS0gW2xpbmRleCAkb3B0aW9uIDBdIHsKLSAgICAgICJjZWxsIiB7Ci0gICAgICAgICBpZiB7W2xpbmRleCAkb3B0aW9uIDFdICE9ICIifSB7Ci0gICAgICAgICAgICBwdXRzICRvcDIgInNldCB2YXJzKHRpZV9jZWxscykgXCJbbGluZGV4ICRvcHRpb24gMV1cIiIKLSAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBwdXRzICRvcDIgIiNzZXQgdmFycyh0aWVfY2VsbHMpIDx0aWVfY2VsbHM+IgotICAgICAgICAgfQotICAgICAgfQotICAgICAgIm1heERpc3RhbmNlIiB7Ci0gICAgICAgICBpZiB7W2xpbmRleCAkb3B0aW9uIDFdICE9IDB9IHsKLSAgICAgICAgICAgIHB1dHMgJG9wMiAic2V0IHZhcnModGllX2NlbGxzLG1heF9kaXN0YW5jZSkgW2xpc3QgW2xpbmRleCAkb3B0aW9uIDFdXSIKLSAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBwdXRzICRvcDIgIiNzZXQgdmFycyh0aWVfY2VsbHMsbWF4X2Rpc3RhbmNlKSA8ZmxvYXQ+IgotICAgICAgICAgfQotICAgICAgfQotICAgICAgIm1heEZhbm91dCIgewotICAgICAgICAgaWYge1tsaW5kZXggJG9wdGlvbiAxXSAhPSAwfSB7Ci0gICAgICAgICAgICBwdXRzICRvcDIgInNldCB2YXJzKHRpZV9jZWxscyxtYXhfZmFub3V0KSBbbGlzdCBbbGluZGV4ICRvcHRpb24gMV1dIgotICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHB1dHMgJG9wMiAiI3NldCB2YXJzKHRpZV9jZWxscyxtYXhfZmFub3V0KSA8aW50PiIKLSAgICAgICAgIH0KLSAgICAgIH0KLSAgIH0KLX0KLXB1dHMgJG9wMiAiIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIKLXB1dHMgJG9wMiAiIyAgICAgICAgICAgICAgICAgICAgIEZpbGxlciBjZWxsIGluZm9ybWF0aW9uIgotcHV0cyAkb3AyICIjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIgotZm9yZWFjaCBvcHRpb24gW2dldEZpbGxlck1vZGUgLXF1aWV0XSB7Ci0gICBpZiB7W2xpbmRleCAkb3B0aW9uIDBdID09ICJjb3JlIn0gewotICAgICAgaWYge1tsaW5kZXggJG9wdGlvbiAxXSAhPSAiIn0gewotICAgICAgICAgcHV0cyAkb3AyICJzZXQgdmFycyhmaWxsZXJfY2VsbHMpIFwiW2xpbmRleCAkb3B0aW9uIDFdXCIiCi0gICAgICB9IGVsc2UgewotICAgICAgICAgcHV0cyAkb3AyICIjc2V0IHZhcnMoZmlsbGVyX2NlbGxzKSA8ZmlsbGVyX2NlbGxzPiIKLSAgICAgIH0KLSAgIH0KLX0KLXB1dHMgJG9wMiAiIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iCi1wdXRzICRvcDIgIiMgICAgICAgICAgICAgICAgICAgICBXZWxsdGFwIGNlbGwgaW5mb3JtYXRpb24iCi1wdXRzICRvcDIgIiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIgotcHV0cyAkb3AyICIjICAgIHZlcmlmeV9ydWxlIDogbWF4aW11bSBkaXN0YW5jZSAoaW4gbWljcm9ucykgYmV0d2VlbiB3ZWxsdGFwIGNlbGxzIGFuZCBzdGFuZGFyZCBjZWxscyAiCi1wdXRzICRvcDIgIiMgICAgICAgICAgICAgICAgICBpbiBtaWNyb25zIgotcHV0cyAkb3AyICIjICAgICAgICBtYXhfZ2FwIDogc3BlY2lmaWVzIHRoZSBtYXhpbXVtIGRpc3RhbmNlIGZyb20gdGhlIHJpZ2h0IGVkZ2Ugb2Ygb25lIHdlbGwtdGFwIGNlbGwgIgotcHV0cyAkb3AyICIjICAgICAgICAgICAgICAgICAgdG8gdGhlIGxlZnQgZWRnZSBvZiAgdGhlIGZvbGxvd2luZyB3ZWxsLXRhcCBjZWxsIGluIHRoZSBzYW1lIHJvdyIKLXB1dHMgJG9wMiAiIyAgY2VsbF9pbnRlcnZhbCA6IHNwZWNpZmllcyB0aGUgbWF4aW11bSBkaXN0YW5jZSBmcm9tIHRoZSBjZW50ZXIgb2Ygb25lIHdlbGwtdGFwIGNlbGwgIgotcHV0cyAkb3AyICIjICAgICAgICAgICAgICAgICAgdG8gdGhlIGNlbnRlciBvZiB0aGUgZm9sbG93aW5nIHdlbGwtdGFwIGNlbGwgaW4gdGhlIHNhbWUgcm93IgotcHV0cyAkb3AyICIjIgotcHV0cyAkb3AyICIjIE5PVEU6IG1heF9nYXAgYW5kIGNlbGxfaW50ZXJ2YWwgcGFyYW1ldGVycyBhcmUgbXV0dWFsbHkgZXhjbHVzaXZlLCB1c2VyIGhhcyB0byBkZWZpbmUgIgotcHV0cyAkb3AyICIjICAgICAgIG9ubHkgb25lIG9mIHRoZXNlIHBhcmFtZXRlcnMgdG8gYWRkIHdlbGx0YXAgY2VsbHMiCi1wdXRzICRvcDIgIiMiCi1wdXRzICRvcDIgIiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIgotcHV0cyAkb3AyICIjc2V0IHZhcnMod2VsbHRhcHMpICAgICAgICAgICAgICAgICAgICAgICAgIDx3ZWxsdGFwIGNlbGxzPiIKLXB1dHMgJG9wMiAiI3NldCB2YXJzKHdlbGx0YXBzLGNoZWNrZXJib2FyZCkgICAgICAgICAgICA8dHJ1ZSBvciBmYWxzZT4iCi1wdXRzICRvcDIgIiNzZXQgdmFycyh3ZWxsdGFwcyxtYXhfZ2FwKSAgICAgICAgICAgICAgICAgPG1heCBnYXA+IgotcHV0cyAkb3AyICIjc2V0IHZhcnMod2VsbHRhcHMsY2VsbF9pbnRlcnZhbCkgICAgICAgICAgIDxjZWxsIGludGVydmFsPiIKLXB1dHMgJG9wMiAiI3NldCB2YXJzKHdlbGx0YXBzLHZlcmlmeV9ydWxlKSAgICAgICAgICAgICA8ZGlzdGFuY2UgaW50ZXJ2YWw+IgotcHV0cyAkb3AyICIjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIKLXB1dHMgJG9wMiAiIyAgICAgICAgICAgICAgICAgICAgICAgICAgRW5kY2FwIGNlbGwgaW5mb3JtYXRpb24iCi1wdXRzICRvcDIgIiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIgotcHV0cyAkb3AyICIjc2V0IHZhcnMocHJlX2VuZGNhcCkgICAgICAgICAgICAgICAgICAgICAgIDxwcmUgZW5kY2FwIGNlbGw+IgotcHV0cyAkb3AyICIjc2V0IHZhcnMocG9zdF9lbmRjYXApICAgICAgICAgICAgICAgICAgICAgIDxwb3N0IGVuZGNhcCBjZWxsPiIKLXB1dHMgJG9wMiAiIgotaWYge1tpbmZvIGV4aXN0cyA6OkNQRjo6Y3BmQ29tbWl0dGVkXSB8fCBbaW5mbyBleGlzdHMgOjpNU1Y6OmllZWUxODAxTG9hZGVkXX0gewotICAgcHV0cyAkb3AxICIjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMiCi0gICBwdXRzICRvcDEgIiMgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExQIEZsb3cgT3B0aW9ucyIKLSAgIHB1dHMgJG9wMSAiIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIKLSAgIHNldCBscGZpbGUge30KLSAgIGlmIHtbaW5mbyBleGlzdHMgOjpDUEY6OmNwZkNvbW1pdHRlZF0gJiYgJDo6Q1BGOjpjcGZDb21taXR0ZWQgJiYKLSAgICAgICBbaW5mbyBleGlzdHMgOjpDUEY6OmNwZl9maWxlXSAmJiAkOjpDUEY6OmNwZl9maWxlICE9ICIifSB7Ci0gICAgICBzZXQgbHBmb3JtYXQgY3BmCi0gICAgICBzZXQgbHBmaWxlIGdlbl9zZXR1cC5bcGlkXS4kbHBmb3JtYXQ7ICMgJDo6Q1BGOjpjcGZfZmlsZSBpcyBub3QgdXNlZCBkaXJlY3RseQotICAgaWYge1tsaW5kZXggW3NwbGl0ICR2YXJzKHZlcnNpb24pICIuIl0gIDBdIDwgMTV9IHsKLSAgICAgIHNhdmVDUEYgJGxwZmlsZQotICAgfSBlbHNlIHsKLSAgICAgIHdyaXRlX3Bvd2VyX2ludGVudCAtY3BmICRscGZpbGUKLSAgIH0gCi0gICB9IGVsc2VpZiB7W2luZm8gZXhpc3RzIDo6TVNWOjppZWVlMTgwMUxvYWRlZF0gJiYgJDo6TVNWOjppZWVlMTgwMUxvYWRlZCAmJgotICAgICAgICAgICAgIFtpbmZvIGV4aXN0cyA6Ok1TVl9VUEY6OnVwZl9maWxlXX0gewotICAgICAgc2V0IGxwZmlsZSBbZmlsZSBub3JtYWxpemUgJDo6TVNWX1VQRjo6dXBmX2ZpbGVdCi0gICAgICBzZXQgbHBmb3JtYXQgaWVlZTE4MDEKLSAgIH0KLQotICAgaWYgeyRscGZpbGUgPT0ge319IHsKLSAgICAgIHB1dHMgIldBUk5JTkc6IENhbm5vdCBkZXRlcm1pbmUgQ1BGIG9yIElFRUUgMTgwMSBmaWxlIC4uLiIKLSAgIH0gZWxzZSB7Ci0gICAgICBzZXQgdmFycygke2xwZm9ybWF0fV9maWxlKSAkbHBmaWxlCi0gICAgIHB1dHMgJG9wMSAic2V0IHZhcnMoJHtscGZvcm1hdH1fZmlsZSkgICAgICAgXCIkdmFycygke2xwZm9ybWF0fV9maWxlKVwiIgotICAgICAgcHV0cyAkb3AxICIjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIgotICAgICAgcHV0cyAkb3AxICIjIERlZmluZSB0aGUgZm9sbG93aW5nIHRvIHNlbGVjdGl2ZWx5IGNvbW1pdCBzZWN0aW9ucyBvZiB0aGUgW3N0cmluZyB0b3VwcGVyICRscGZvcm1hdF0gZmlsZSIKLSAgICAgIHB1dHMgJG9wMSAiI3NldCB2YXJzKCR7bHBmb3JtYXR9X3Bvd2VyX2RvbWFpbikgICAgIDx0cnVlIHwgZmFsc2U+IgotICAgICAgcHV0cyAkb3AxICIjc2V0IHZhcnMoJHtscGZvcm1hdH1fcG93ZXJfc3dpdGNoKSAgICAgPHRydWUgfCBmYWxzZT4iCi0gICAgICBwdXRzICRvcDEgIiNzZXQgdmFycygke2xwZm9ybWF0fV9pc29sYXRpb24pICAgICAgICA8dHJ1ZSB8IGZhbHNlPiIKLSAgICAgIHB1dHMgJG9wMSAiI3NldCB2YXJzKCR7bHBmb3JtYXR9X2xldmVsX3NoaWZ0ZXIpICAgIDx0cnVlIHwgZmFsc2U+IgotICAgICAgcHV0cyAkb3AxICIjc2V0IHZhcnMoJHtscGZvcm1hdH1fc3RhdGVfcmV0ZW50aW9uKSAgPHRydWUgfCBmYWxzZT4iCi0gICAgICBwdXRzICRvcDEgIiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iCi0gICAgICBwdXRzICRvcDEgIiNzZXQgdmFycygke2xwZm9ybWF0fV9rZWVwX3Jvd3MpICAgICAgICA8dHJ1ZSB8IGZhbHNlPiIKLSAgICAgIHB1dHMgJG9wMSAiIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iCi0gICAgICBwdXRzICRvcDEgIiMgVGhlIHZhcnMocG93ZXJfZG9tYWlucykgaXMgb3B0aW9uYWwuICBJZiBub3QgZGVmaW5lZCwgdGhlIHBvd2VyIiAKLSAgICAgIHB1dHMgJG9wMSAiIyBwb3dlciBkb21haW4gbGlzdCB3aWxsIGJlIHBpY2tlZCB1cCBhdXRvbWF0aWNhbGx5IgotICAgICAgcHV0cyAkb3AxICIjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIKLSAgICAgIHNldCBwb3dlcl9kb21haW5zIFtsaXN0XQotICAgICAgZGJGb3JFYWNoUG93ZXJEb21haW4gW2RiZ0hlYWRdIHBkIHsKLSAgICAgICAgIGxhcHBlbmQgcG93ZXJfZG9tYWlucyBbZGJQb3dlckRvbWFpbk5hbWUgJHBkXQotICAgICAgfQotICAgICAgaWYgeyRwb3dlcl9kb21haW5zICE9ICIifSB7Ci0gICAgICAgICBwdXRzICRvcDEgInNldCB2YXJzKHBvd2VyX2RvbWFpbnMpIFwiJHBvd2VyX2RvbWFpbnNcIiIKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgICBwdXRzICRvcDEgIiNzZXQgdmFycyhwb3dlcl9kb21haW5zKSAgICAgICAgICAgICAgICAgICAgICAgPGxpc3Qgb2YgcG93ZXIgZG9tYWlucz4iCi0gICAgICB9Ci0gICAgICBwdXRzICRvcDEgIiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIgotICAgICAgcHV0cyAkb3AxICIjIEFkZGl0aW9uYWwgb3B0aW9uYWwgbG93IHBvd2VyIHZhcmlhYmxlcyBjYW4gYmUgZGVmaW5lZCBpbiB0aGUgbHBfY29uZmlnLnRjbCBmaWxlLiIKLSAgICAgIHB1dHMgJG9wMSAiIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iCi0gICB9Ci19Ci1wdXRzICRvcDIgIiIKLXB1dHMgJG9wMiAiIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMiCi1wdXRzICRvcDIgIiMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2xvY2sgVHJlZSBPcHRpb25zIgotcHV0cyAkb3AyICIjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIKLXB1dHMgJG9wMiAiI3NldCB2YXJzKHJvdXRlX2Nsb2NrX25ldHMpIDx0cnVlIHwgZmFsc2U+IgotcHV0cyAkb3AyICIjc2V0IHZhcnMoY3RzX2NlbGxzKSAgICAgICAgPGxpc3Qgb2YgY2xvY2sgYnVmZmVycz4iCi1wdXRzICRvcDIgIiNzZXQgdmFycyhjbG9ja19nYXRlX2NlbGxzKSA8bGlzdCBvZiBjbG9jayBnYXRpbmcgY2VsbHM+IgotcHV0cyAkb3AyICIjc2V0IHZhcnMoY2xvY2tfZ2F0ZV9jbG9uZSkgPHRydWUgfCBmYWxzZT4iCi1wdXRzICRvcDIgIiNzZXQgdmFycyhjbG9ja19lY28pICAgICAgICA8cHJlX3JvdXRlIHwgcG9zdF9yb3V0ZSB8IGJvdGggfCBub25lPiIKLXB1dHMgJG9wMiAiIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iCi1wdXRzICRvcDIgIiNzZXQgdmFycyhjbGtfdHJlZV90b3BfbGF5ZXIpICAgICA8dHJlZV90b3BfcHJlZmVycmVkX2xheWVyPiIKLXB1dHMgJG9wMiAiI3NldCB2YXJzKGNsa190cmVlX2JvdHRvbV9sYXllcikgIDx0cmVlX2JvdHRvbV9wcmVmZXJyZWRfbGF5ZXI+ICIKLXB1dHMgJG9wMiAiI3NldCB2YXJzKGNsa190cmVlX25kcikgICAgICAgICAgIDx0cmVlX25vbl9kZWZhdWx0X3J1bGU+IgotcHV0cyAkb3AyICIjc2V0IHZhcnMoY2xrX3RyZWVfc2hpZWxkX25ldCkgICAgPHRyZWVfc2hpZWxkX25ldD4gIgotcHV0cyAkb3AyICIjc2V0IHZhcnMoY2xrX2xlYWZfdG9wX2xheWVyKSAgICAgPGxlYWZfdG9wX3ByZWZlcnJlZF9sYXllcj4iCi1wdXRzICRvcDIgIiNzZXQgdmFycyhjbGtfbGVhZl9ib3R0b21fbGF5ZXIpICA8bGVhZl9ib3R0b21fcHJlZmVycmVkX2xheWVyPiIKLXB1dHMgJG9wMiAiI3NldCB2YXJzKGN0c19sZWFmX25kcikgICAgICAgICAgIDxsZWFmX25vbl9kZWZhdWx0X2xheWVyPiIKLXB1dHMgJG9wMiAiIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iCi1wdXRzICRvcDIgIiMgQWRkaXRpb25hbCB2YXJpYWJsZXMgdG8gZW5hYmxlL3N1cHBvcnQgY2NvcHQiCi1wdXRzICRvcDIgIiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIgotcHV0cyAkb3AyICIjc2V0IHZhcnMoY3RzX2VuZ2luZSkgPGNsb2NrRGVzaWduIHwgY2NvcHREZXNpZ24+IgotcHV0cyAkb3AyICIjc2V0IHZhcnMoY3RzX2J1ZmZlcl9jZWxscykgPGxpc3Qgb2YgYnVmZmVycz4iCi1wdXRzICRvcDIgIiNzZXQgdmFycyhjdHNfaW52ZXJ0ZXJfY2VsbHMpIDxsaXN0IG9mIGludmVydGVycz4iCi1wdXRzICRvcDIgIiNzZXQgdmFycyhjdHNfdXNlX2ludmVydGVycykgPHRydWUgfCBmYWxzZT4iCi1wdXRzICRvcDIgIiNzZXQgdmFycyhjdHNfaW9fb3B0KSA8b24gc2Vjb25kYXJ5IG9mZj4iCi0jcHV0cyAkb3AyICIjc2V0IHZhcnMoY2NvcHRfaW50ZWdyYXRpb24pIDxuYXRpdmUgfCBzY3JpcHRlZD4iCi0jcHV0cyAkb3AyICIjc2V0IHZhcnMoY2NvcHRfZXhlY3V0YWJsZSkgPHBhdGggdG8gY2NvcHQgZXhlY3V0YWJsZT4iCi0KLXB1dHMgJG9wMiAiIgotcHV0cyAkb3AyICIjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyIKLXB1dHMgJG9wMiAiIyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9wdGltaXphdGlvbiBPcHRpb25zIgotcHV0cyAkb3AyICIjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIgotcHV0cyAkb3AyICIjIEZvciBkaWZmaWN1bHQgdGltaW5nIGRlc2lnbnMsICdzZXQgdmFycyhoaWdoX3RpbWluZ19lZmZvcnQpIHRydWUnIgotcHV0cyAkb3AyICIjIFRoaXMgZW5hYmxlcyBhIHZhcmlldHkgb2Ygb3B0aW9ucyB0aHJvdWdob3V0IHRoZSBmbG93IGZvciBvcHRpbWFsIgotcHV0cyAkb3AyICIjIFFvUiBhdCB0aGUgZXhwZW5zZSBvZiBydW50aW1lIgotcHV0cyAkb3AyICIjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIgotcHV0cyAkb3AyICIjc2V0IHZhcnMoaGlnaF90aW1pbmdfZWZmb3J0KSAgICAgICAgICAgICA8dHJ1ZSB8IGZhbHNlPiIKLXB1dHMgJG9wMiAiIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIKLSNwdXRzICRvcDIgIiNzZXQgdmFycyhjcml0aWNhbF9yYW5nZSkgICAgICAgICAgICAgICAgIDxmbG9hdD4iCi1wdXRzICRvcDIgIiNzZXQgdmFycyhwcmVzZXJ2ZV9hc3NlcnRpb25zKSAgICAgICAgICAgIDx0cnVlIHwgZmFsc2U+IiAKLXB1dHMgJG9wMiAiI3NldCB2YXJzKGNsb2NrX2dhdGVfYXdhcmVfb3B0KSAgICAgICAgICAgPHRydWUgfCBmYWxzZT4iCi0jcHV0cyAkb3AyICIjc2V0IHZhcnMocG93ZXJfZWZmb3J0KSAgICAgICAgICAgICAgICAgICA8bm9uZSB8IGxvdyB8IGhpZ2g+IgotI3B1dHMgJG9wMiAiI3NldCB2YXJzKHBvd2VyX3JhdGlvKSAgICAgICAgICAgICAgICAgICAgPGZsb2F0PiIKLXB1dHMgJG9wMiAiI3NldCB2YXJzKGZpeF9ob2xkX2FsbG93X3Ruc19kZWdyYWRhdGlvbikgPHRydWUgfCBmYWxzZT4iCi1wdXRzICRvcDIgIiNzZXQgdmFycyh1c2VmdWxfc2tldykgICAgICAgICAgICAgICAgICAgIDx0cnVlIHwgZmFsc2U+IgotI3B1dHMgJG9wMiAiI3NldCB2YXJzKHNrZXdfYnVmZmVycykgICAgICAgICAgICAgICAgICAgPHRydWUgfCBmYWxzZT4iCi1wdXRzICRvcDIgIiNzZXQgdmFycyhmaXhfaG9sZCkgICAgICAgICAgICAgICAgICAgICAgIDxmYWxzZSB8IHBvc3RjdHMgfCBwb3N0cm91dGUgPiIKLXB1dHMgJG9wMiAiI3NldCB2YXJzKGZpeF9ob2xkX2lnbm9yZV9pb3MpICAgICAgICAgICAgPHRydWUgfCBmYWxzZT4iCi1wdXRzICRvcDIgIiNzZXQgdmFycyhkZWxheV9jZWxscykgICAgICAgICAgICAgICAgICAgIDxsaXN0IG9mIGRlbGF5IGNlbGxzPiIKLXB1dHMgJG9wMiAiI3NldCB2YXJzKGRvbnRfdXNlX2xpc3QpICAgICAgICAgICAgICAgICAgPGxpc3Qgb2YgY2VsbHM+IgotcHV0cyAkb3AyICIjc2V0IHZhcnMoZG9udF91c2VfZmlsZSkgICAgICAgICAgICAgICAgICA8ZmlsZSBvZiBkb250IHVzZSBjb21tYW5kcz4iCi1wdXRzICRvcDIgIiNzZXQgdmFycyh1c2VfbGlzdCkgICAgICAgICAgICAgICAgICAgICAgIDxsaXN0IG9mIGNlbGxzPiIKLXB1dHMgJG9wMiAiIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIKLWZvcmVhY2ggb3B0aW9uIFtnZXRPcHRNb2RlIC1xdWlldF0gewotICAgaWYge1tsaW5kZXggJG9wdGlvbiAwXSA9PSAiY3JpdGljYWxSYW5nZSJ9IHsKLSAgICAgIHB1dHMgJG9wMiAiI3NldCB2YXJzKGNyaXRpY2FsX3JhbmdlKSAgICAgICAgICAgICAgICAgW2xpbmRleCAkb3B0aW9uIDFdIgotICAgfQotICAgaWYge1tsaW5kZXggJG9wdGlvbiAwXSA9PSAicHJlc2VydmVBc3NlcnRpb25zIn0gewotICAgICAgcHV0cyAkb3AyICJzZXQgdmFycyhwcmVzZXJ2ZV9hc3NlcnRpb25zKSAgICAgICAgICAgIFtsaW5kZXggJG9wdGlvbiAxXSIKLSAgIH0gCi0jICAgaWYge1tsaW5kZXggJG9wdGlvbiAwXSA9PSAibGVha2FnZVBvd2VyRWZmb3J0In0gewotIyAgICAgIHB1dHMgJG9wMiAic2V0IHZhcnMobGVha2FnZV9wb3dlcl9lZmZvcnQpICAgICAgICAgICBbbGluZGV4ICRvcHRpb24gMV0iCi0jICAgfQotIyAgIGlmIHtbbGluZGV4ICRvcHRpb24gMF0gPT0gImR5bmFtaWNQb3dlckVmZm9ydCJ9IHsKLSMgICAgICBwdXRzICRvcDIgInNldCB2YXJzKGR5bmFtaWNfcG93ZXJfZWZmb3J0KSAgICAgICAgICAgW2xpbmRleCAkb3B0aW9uIDFdIgotIyAgIH0KLSAgIGlmIHtbbGluZGV4ICRvcHRpb24gMF0gPT0gImZpeEhvbGRBbGxvd1NldHVwVG5zRGVncmFkZSJ9IHsKLSAgICAgIHB1dHMgJG9wMiAic2V0IHZhcnMoZml4X2hvbGRfYWxsb3dfdG5zX2RlZ3JhZGF0aW9uKSBbbGluZGV4ICRvcHRpb24gMV0iCi0gICB9Ci0gICBpZiB7W2xpbmRleCAkb3B0aW9uIDBdID09ICJjbGtHYXRlQXdhcmUifSB7Ci0gICAgICBwdXRzICRvcDIgInNldCB2YXJzKGNsb2NrX2dhdGVfYXdhcmVfb3B0KSAgICAgICAgICAgW2xpbmRleCAkb3B0aW9uIDFdIgotICAgfQotICAgaWYge1tsaW5kZXggJG9wdGlvbiAwXSA9PSAidXNlZnVsU2tldyJ9IHsKLSAgICAgIHB1dHMgJG9wMiAic2V0IHZhcnModXNlZnVsX3NrZXcpICAgICAgICAgICAgICAgICAgICBbbGluZGV4ICRvcHRpb24gMV0iCi0gICB9Ci19Ci0jZm9yZWFjaCBvcHRpb24gW2dldFVzZWZ1bFNrZXdNb2RlIC1xdWlldF0gewotIyAgIGlmIHtbbGluZGV4ICRvcHRpb24gMF0gPT0gInVzZUNlbGxzIn0gewotIyAgICAgIGlmIHtbbGluZGV4ICRvcHRpb24gMV0gIT0gIiJ9IHsKLSMgICAgICAgICBwdXRzICRvcDIgInNldCB2YXJzKHNrZXdfYnVmZmVycykgXCJcXCIKLSMgICAgICAgICBmb3JlYWNoIGNlbGwgW2xpbmRleCAkb3B0aW9uIDFdIHsKLSMgICAgICAgICAgICBwdXRzICRvcDIgIiAgICRjZWxsIFxcIgotIyAgICAgICAgIH0KLSMgICAgICAgICBwdXRzICRvcDIgIlwiIiAKLSMgICAgICB9IAotIyAgIH0KLSN9Ci1jYXRjaCB7c2V0IGZvbyBbZ2V0X2xpbmVfbWF0Y2ggInNldCBkb24ndCB1c2UgYnkgVXNlciIgW2dldExvZ0ZpbGVOYW1lXV19Ci1pZiB7W2luZm8gZXhpc3RzIGZvb10gJiYgKCRmb28gIT0gIiIpIH0gewotICAgcHV0cyAkb3AyICJzZXQgdmFycyhkb250X3VzZV9saXN0KSBcIlxcIgotICAgZm9yZWFjaCBsaW5lIFtnZXRfbGluZV9tYXRjaCAic2V0IGRvbid0IHVzZSBieSBVc2VyIiBbZ2V0TG9nRmlsZU5hbWVdIDBdIHsKLSMgICAgICBsYXBwZW5kIHZhcnMoZG9udF91c2VfbGlzdCkgW2xpbmRleCBbc3BsaXQgW2xpbmRleCAkbGluZSAwXSAiLyJdIDFdCi0gICAgICAgcHV0cyAkb3AyICIgICBbbGluZGV4IFtzcGxpdCBbbGluZGV4ICRsaW5lIDBdICIvIl0gMV0gXFwiCi0gICB9Ci0gICBwdXRzICRvcDIgIlwiIgotfQotcHV0cyAkb3AyICIjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyIKLXB1dHMgJG9wMiAiIyAgICAgICAgICAgICAgICAgICAgICAgICAgICBQb3dlciBBbmFseXNpcyBPcHRpb25zIgotcHV0cyAkb3AyICIjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIKLXB1dHMgJG9wMiAiI3NldCB2YXJzKGFjdGl2aXR5X2ZpbGUpICAgICAgICA8YWN0aXZpdHkgZmlsZT4iCi1wdXRzICRvcDIgIiNzZXQgdmFycyhhY3Rpdml0eV9maWxlX2Zvcm1hdCkgPFRDRiB8IFNBRiB8IFZDRD4iCi1wdXRzICRvcDIgIiNzZXQgdmFycyhyZXBvcnRfcG93ZXIpICAgICAgICAgPHRydWUgb3IgZmFsc2U+IgotcHV0cyAkb3AyICIjc2V0IHZhcnMocG93ZXJfYW5hbHlzaXNfdmlldykgIDxwb3dlciBhbmFseXNpcyB2aWV3PiIKLXB1dHMgJG9wMiAiIgotcHV0cyAkb3AyICIjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyIKLXB1dHMgJG9wMiAiIyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5hbm9yb3V0ZSBPcHRpb25zIgotcHV0cyAkb3AyICIjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIKLXB1dHMgJG9wMiAiI3NldCB2YXJzKG11bHRpX2N1dF9lZmZvcnQpICAgICAgICA8bG93IHwgbWVkaXVtIHwgaGlnaD4iCi1wdXRzICRvcDIgIiNzZXQgdmFycyhhbnRlbm5hX2Rpb2RlKSAgICAgICAgICAgPGNlbGwgbmFtZT4iCi1wdXRzICRvcDIgIiNzZXQgdmFycyhsaXRob19kcml2ZW5fcm91dGluZykgICAgPHRydWUgfCBmYWxzZT4iCi1wdXRzICRvcDIgIiNzZXQgdmFycyh2ZXJpZnlfbGl0aG8pICAgICAgICAgICAgPHRydWUgfCBmYWxzZT4iCi1wdXRzICRvcDIgIiNzZXQgdmFycyhscGFfdGVjaF9maWxlKSAgICAgICAgICAgPGZpbGUgbmFtZT4iCi1wdXRzICRvcDIgIiNzZXQgdmFycyhmaXhfbGl0aG8pICAgICAgICAgICAgICAgPHRydWUgfCBmYWxzZT4iCi1wdXRzICRvcDIgIiNzZXQgdmFycyhscGFfY29uZl9maWxlKSAgICAgICAgICAgPGZpbGUgbmFtZT4iCi1wdXRzICRvcDIgIiNzZXQgdmFycyhwb3N0cm91dGVfc3ByZWFkX3dpcmVzKSAgPHRydWUgfCBmYWxzZT4iCi1wdXRzICRvcDIgIiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIgotZm9yZWFjaCBvcHRpb24gW2dldE5hbm9Sb3V0ZU1vZGUgLXF1aWV0XSB7Ci0gICBpZiB7W2xpbmRleCAkb3B0aW9uIDBdID09ICJkcm91dGVVc2VNdWx0aUN1dFZpYUVmZm9ydCJ9IHsKLSAgICAgIHB1dHMgJG9wMiAic2V0IHZhcnMobXVsdGlfY3V0X2VmZm9ydCkgICAgIFtsaW5kZXggJG9wdGlvbiAxXSIKLSAgIH0KLSAgIGlmIHtbbGluZGV4ICRvcHRpb24gMF0gPT0gInJvdXRlV2l0aExpdGhvRHJpdmVuIn0gewotICAgICAgcHV0cyAkb3AyICJzZXQgdmFycyhsaXRob19kcml2ZW5fcm91dGluZykgW2xpbmRleCAkb3B0aW9uIDFdIgotICAgfQotfQotCi1wdXRzICRvcDIgIiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIgotcHV0cyAkb3AyICIjICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRXh0cmFjdGlvbiBPcHRpb25zIgotcHV0cyAkb3AyICIjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIKLXB1dHMgJG9wMiAiI3NldCB2YXJzKGNvdXBsaW5nX2NfdGhyZXNoKSAgICAgICA8ZmxvYXQ+IgotcHV0cyAkb3AyICIjc2V0IHZhcnMocmVsYXRpdmVfY190aHJlc2gpICAgICAgIDxmbG9hdD4iCi1wdXRzICRvcDIgIiNzZXQgdmFycyh0b3RhbF9jX3RocmVzaCkgICAgICAgICAgPGZsb2F0PiIKLXB1dHMgJG9wMiAiIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iCi1mb3JlYWNoIG9wdGlvbiBbZ2V0RXh0cmFjdFJDTW9kZSAtcXVpZXRdIHsKLSAgIGlmIHtbbGluZGV4ICRvcHRpb24gMF0gPT0gImNvdXBsaW5nX2NfdGgifSB7Ci0gICAgICBwdXRzICRvcDIgIiNzZXQgdmFycyhjb3VwbGluZ19jX3RocmVzaCkgICAgICAgW2xpbmRleCAkb3B0aW9uIDFdIgotICAgfQotICAgaWYge1tsaW5kZXggJG9wdGlvbiAwXSA9PSAicmVsYXRpdmVfY190aCJ9IHsKLSAgICAgIHB1dHMgJG9wMiAiI3NldCB2YXJzKHJlbGF0aXZlX2NfdGhyZXNoKSAgICAgICBbbGluZGV4ICRvcHRpb24gMV0iCi0gICB9Ci0gICBpZiB7W2xpbmRleCAkb3B0aW9uIDBdID09ICJ0b3RhbF9jX3RoIn0gewotICAgICAgcHV0cyAkb3AyICIjc2V0IHZhcnModG90YWxfY190aHJlc2gpICAgICAgICAgIFtsaW5kZXggJG9wdGlvbiAxXSIKLSAgIH0KLX0KLXB1dHMgJG9wMiAiIyBTaWdub2ZmIGV4dHJhY3Rpb24gcmVxdWlyZXMgcXJjX3RlY2ggZmlsZTsgaWYgeW91IGRvbnQgaGF2ZSBvbmUsIHBsZWFzZSBzd2l0Y2ggdG8gZWZmb3J0IGxvdy4iCi1wdXRzICRvcDIgIiMgQnV0IGtlZXAgaW4gbWluZCwgZWZmb3J0IGxvdyBpcyBOT1QgYWxsb3dlZCBmb3IgcHJvY2VzcyBub2RlcyAzMm5tIGFuZCBiZWxvdyIKLXB1dHMgJG9wMiAiIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iCi1wdXRzICRvcDIgIiNzZXQgdmFycyhwb3N0cm91dGVfZXh0cmFjdGlvbl9lZmZvcnQpIDxsb3cgfCBtZWRpdW0gfCBoaWdoPiIKLXB1dHMgJG9wMiAiI3NldCB2YXJzKHNpZ25vZmZfZXh0cmFjdGlvbl9lZmZvcnQpICAgPGxvdyB8IG1lZGl1bSB8IGhpZ2ggfCBzaWdub2ZmPiIKLXB1dHMgJG9wMiAiIgotcHV0cyAkb3AyICIjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyIKLXB1dHMgJG9wMiAiIyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNpZ25hbCBJbnRlZ3JpdHkgT3B0aW9ucyIKLXB1dHMgJG9wMiAiIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iCi1wdXRzICRvcDIgIiNzZXQgdmFycyhkZWx0YV9kZWxheV90aHJlc2hvbGQpICA8ZmxvYXQ+IChpbiBuYW5vc2Vjb25kcykiCi1wdXRzICRvcDIgIiNzZXQgdmFycyhjZWx0aWNfc2V0dGluZ3MpICAgICAgICA8c3RyaW5nPiIKLXB1dHMgJG9wMiAiI3NldCB2YXJzKHNpX2FuYWx5c2lzX3R5cGUpICAgICAgIDxkZWZhdWx0IHwgcGVzc2ltaXN0aWM+IgotcHV0cyAkb3AyICIjc2V0IHZhcnMoYWNjZXB0YWJsZV93bnMpICAgICAgICAgPGZsb2F0PiIKLXB1dHMgJG9wMiAiIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iCi1mb3JlYWNoIG9wdGlvbiBbZ2V0U0lNb2RlIC1xdWlldF0gewotICAgaWYge1tsaW5kZXggJG9wdGlvbiAwXSA9PSAiZGVsdGFEZWxheVRocmVzaG9sZCJ9IHsKLSAgICAgIHB1dHMgJG9wMiAic2V0IHZhcnMoZGVsdGFfZGVsYXlfdGhyZXNob2xkKSBbbGluZGV4ICRvcHRpb24gMV0iCi0gICB9Ci0gICBpZiB7W2xpbmRleCAkb3B0aW9uIDBdID09ICJpbnNDZWx0SUNQcmVUQ0wifSB7Ci0gICAgICBwdXRzICRvcDIgInNldCB2YXJzKGNlbHRpY19zZXR0aW5ncykgICAgICAgW2xpbmRleCAkb3B0aW9uIDFdIgotICAgfQotICAgaWYge1tsaW5kZXggJG9wdGlvbiAwXSA9PSAiYW5hbHlzaXNUeXBlIn0gewotICAgICAgcHV0cyAkb3AyICJzZXQgdmFycyhzaV9hbmFseXNpc190eXBlKSAgICAgICBbbGluZGV4ICRvcHRpb24gMV0iCi0gICB9Ci19Ci0KLXB1dHMgJG9wMiAiIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMiCi1wdXRzICRvcDIgIiMgT3B0aW9uYWxseSBkZWZpbmUgdGhlIGZvbGxvd2luZyB3aGVuIGFwcGxpY2FibGUiCi1wdXRzICRvcDIgIiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIgotcHV0cyAkb3AyICIjc2V0IHZhcnMoYXNzaWduX2J1ZmZlcikgICAgIHsxIC1idWZmZXIgPGJ1ZmZlciBuYW1lPn0iCi1wdXRzICRvcDIgIiNzZXQgdmFycyhidWZmZXJfdGllX2Fzc2lnbikgPHRydWUgfCBmYWxzZT4iCi1wdXRzICRvcDIgIiNzZXQgdmFycyhqdGFnX3Jvd3MpICAgICAgICAgPG51bWJlciBvZiByb3dzIGZvciBqdGFnIHBsYWNlbWVudD4iCi1wdXRzICRvcDIgIiNzZXQgdmFycyhqdGFnX2NlbGxzKSAgICAgICAgPGxpc3Qgb2YganRhZyBjZWxscz4iCi1wdXRzICRvcDIgIiNzZXQgdmFycyhzcGFyZV9jZWxscykgICAgICAgPGxpc3Qgb2Ygc3BhcmUgY2VsbHMgaW5zdGFuY2VzPiIKLQotCi1wdXRzICRvcDIgIiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIgotcHV0cyAkb3AyICIjIEJlbG93IGFyZSB0aGUgYXZhaWxhYmxlIHBsdWctaW5zIGZvciB0aGUgZmxhdCBmb3VuZGF0aW9uIGZsb3cuICBFYWNoICIKLXB1dHMgJG9wMiAiIyBzaG91bGQgcG9pbnQgdG8gYSBmaWxlLiBJZiB0aGUgZmlsZSBkb2Vzbid0IGV4aXN0LCB0aGUgZmxvdyB3aWxsIHByaW50IgotcHV0cyAkb3AyICIjIGEgd2FybmluZyBhbiBjb250aW51ZS4gIFRoZSBwbGFjZV90Y2wgYW5kIGN0c190Y2wgYXJlIHVuaXF1ZSBpbiB0aGF0ICIKLXB1dHMgJG9wMiAiIyB0aGV5IFJFUExBQ0UgdGhlIHBsYWNlRGVzaWduIGFuZCBjbG9ja0Rlc2lnbiBjYWxscywgcmVzcGVjdGl2ZWx5LiIKLXB1dHMgJG9wMiAiIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iCi1wdXRzICRvcDIgInNldCB2YXJzKGFsd2F5c19zb3VyY2VfdGNsKSAgICAgICAgICAgXCR2YXJzKHBsdWdfZGlyKS9hbHdheXNfc291cmNlLnRjbCIKLXB1dHMgJG9wMiAic2V0IHZhcnMoZmluYWxfYWx3YXlzX3NvdXJjZV90Y2wpICAgICBcJHZhcnMocGx1Z19kaXIpL2ZpbmFsX2Fsd2F5c19zb3VyY2UudGNsIgotcHV0cyAkb3AyICJzZXQgdmFycyhwcmVfaW5pdF90Y2wpICAgICAgICAgICAgICAgIFwkdmFycyhwbHVnX2RpcikvcHJlX2luaXQudGNsIgotcHV0cyAkb3AyICJzZXQgdmFycyhwb3N0X2luaXRfdGNsKSAgICAgICAgICAgICAgIFwkdmFycyhwbHVnX2RpcikvcG9zdF9pbml0LnRjbCIKLXB1dHMgJG9wMiAic2V0IHZhcnMocHJlX3BsYWNlX3RjbCkgICAgICAgICAgICAgICBcJHZhcnMocGx1Z19kaXIpL3ByZV9wbGFjZS50Y2wiCi1wdXRzICRvcDIgIiNzZXQgdmFycyhwbGFjZV90Y2wpICAgICAgICAgICAgICAgICAgXCR2YXJzKHBsdWdfZGlyKS9wbGFjZS50Y2wiCi1wdXRzICRvcDIgInNldCB2YXJzKHBvc3RfcGxhY2VfdGNsKSAgICAgICAgICAgICAgXCR2YXJzKHBsdWdfZGlyKS9wb3N0X3BsYWNlLnRjbCIKLXB1dHMgJG9wMiAic2V0IHZhcnMocHJlX3ByZWN0c190Y2wpICAgICAgICAgICAgICBcJHZhcnMocGx1Z19kaXIpL3ByZV9wcmVjdHMudGNsIgotcHV0cyAkb3AyICJzZXQgdmFycyhwb3N0X3ByZWN0c190Y2wpICAgICAgICAgICAgIFwkdmFycyhwbHVnX2RpcikvcG9zdF9wcmVjdHMudGNsIgotcHV0cyAkb3AyICJzZXQgdmFycyhwcmVfY3RzX3RjbCkgICAgICAgICAgICAgICAgIFwkdmFycyhwbHVnX2RpcikvcHJlX2N0cy50Y2wiCi1wdXRzICRvcDIgIiNzZXQgdmFycyhjdHNfdGNsKSAgICAgICAgICAgICAgICAgICAgXCR2YXJzKHBsdWdfZGlyKS9jdHMudGNsIgotcHV0cyAkb3AyICJzZXQgdmFycyhwb3N0X2N0c190Y2wpICAgICAgICAgICAgICAgIFwkdmFycyhwbHVnX2RpcikvcG9zdF9jdHMudGNsIgotcHV0cyAkb3AyICJzZXQgdmFycyhwcmVfcG9zdGN0c190Y2wpICAgICAgICAgICAgIFwkdmFycyhwbHVnX2RpcikvcHJlX3Bvc3RjdHMudGNsIgotcHV0cyAkb3AyICJzZXQgdmFycyhwb3N0X3Bvc3RjdHNfdGNsKSAgICAgICAgICAgIFwkdmFycyhwbHVnX2RpcikvcG9zdF9wb3N0Y3RzLnRjbCIKLXB1dHMgJG9wMiAic2V0IHZhcnMocHJlX3JvdXRlX3RjbCkgICAgICAgICAgICAgICBcJHZhcnMocGx1Z19kaXIpL3ByZV9yb3V0ZS50Y2wiCi1wdXRzICRvcDIgInNldCB2YXJzKHBvc3Rfcm91dGVfdGNsKSAgICAgICAgICAgICAgXCR2YXJzKHBsdWdfZGlyKS9wb3N0X3JvdXRlLnRjbCIKLXB1dHMgJG9wMiAic2V0IHZhcnMocHJlX3Bvc3RjdHNfaG9sZF90Y2wpICAgICAgICBcJHZhcnMocGx1Z19kaXIpL3ByZV9wb3N0Y3RzX2hvbGQudGNsIgotcHV0cyAkb3AyICJzZXQgdmFycyhwb3N0X3Bvc3RjdHNfaG9sZF90Y2wpICAgICAgIFwkdmFycyhwbHVnX2RpcikvcG9zdF9wb3N0Y3RzX2hvbGQudGNsIgotcHV0cyAkb3AyICJzZXQgdmFycyhwcmVfcG9zdHJvdXRlX3RjbCkgICAgICAgICAgIFwkdmFycyhwbHVnX2RpcikvcHJlX3Bvc3Ryb3V0ZS50Y2wiCi1wdXRzICRvcDIgInNldCB2YXJzKHBvc3RfcG9zdHJvdXRlX3RjbCkgICAgICAgICAgXCR2YXJzKHBsdWdfZGlyKS9wb3N0X3Bvc3Ryb3V0ZS50Y2wiCi1wdXRzICRvcDIgInNldCB2YXJzKHByZV9wb3N0cm91dGVfaG9sZF90Y2wpICAgICAgXCR2YXJzKHBsdWdfZGlyKS9wcmVfcG9zdHJvdXRlX2hvbGQudGNsIgotcHV0cyAkb3AyICJzZXQgdmFycyhwb3N0X3Bvc3Ryb3V0ZV9ob2xkX3RjbCkgICAgIFwkdmFycyhwbHVnX2RpcikvcG9zdF9wb3N0cm91dGVfaG9sZC50Y2wiCi1wdXRzICRvcDIgInNldCB2YXJzKHByZV9zaWdub2ZmX3RjbCkgICAgICAgICAgICAgXCR2YXJzKHBsdWdfZGlyKS9wcmVfc2lnbm9mZi50Y2wiCi1wdXRzICRvcDIgInNldCB2YXJzKHBvc3Rfc2lnbm9mZl90Y2wpICAgICAgICAgICAgXCR2YXJzKHBsdWdfZGlyKS9wb3N0X3NpZ25vZmYudGNsIgotcHV0cyAkb3AyICIjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIgotcHV0cyAkb3AyICIjIEJlbG93IGFyZSB0aGUgcGx1Zy1pbnMgYXZhaWxhYmxlIGZvciB0aGUgaGllcmFyY2hpY2FsIGZsb3cgLi4uIG5vdGUiCi1wdXRzICRvcDIgIiMgdGhlIGFkZGl0aW9uYWwgcGx1Zy1pbnMgZm9yIHRoZSBwYXJ0aXRpb24gYW5kIGFzc2VtYmxlIHN0ZXBzLiAgIgotcHV0cyAkb3AyICIjIEtlZXAgaW4gbWluZCAiCi1wdXRzICRvcDIgIiMgICAgLSBUaGUgcGFydGl0aW9uaW5nIHN0ZXAgd2lsbCBhbHNvIGxvYWQgdGhlIHByZS9wb3N0IGluaXQiCi1wdXRzICRvcDIgIiMgICAgICBhbmQgcHJlL3Bvc3QgcGxhY2UgcGx1Zy1pbnMgKHNlZSBhYm92ZSkuIgotcHV0cyAkb3AyICIjICAgIC0gVGhlIGFzc2VtYmxlIHN0ZXAgd2lsbCBhbHNvIGxvYWQgdGhlIHByZS9wb3N0IHNpZ25vZmYiCi1wdXRzICRvcDIgIiMgICAgICBwbHVnLWlucyBhcyB3ZWxsLiAgIgotcHV0cyAkb3AyICIjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIgotcHV0cyAkb3AyICIjc2V0IHZhcnMoYWx3YXlzX3NvdXJjZV90Y2wpICAgICAgICAgIFwkdmFycyhwbHVnX2RpcikvcG9zdF9zaWdub2ZmLnRjbCIKLXB1dHMgJG9wMiAiI3NldCB2YXJzKGZpbmFsX2Fsd2F5c19zb3VyY2VfdGNsKSAgICBcJHZhcnMocGx1Z19kaXIpL2ZpbmFsX2Fsd2F5c19zb3VyY2UudGNsIgotcHV0cyAkb3AyICIjc2V0IHZhcnMocHJlX21vZGVsX2dlbl90Y2wpICAgICAgICAgIFwkdmFycyhwbHVnX2RpcikvcHJlX21vZGVsX2dlbi50Y2wiCi1wdXRzICRvcDIgIiNzZXQgdmFycyhwb3N0X21vZGVsX2dlbl90Y2wpICAgICAgICAgXCR2YXJzKHBsdWdfZGlyKS9wb3N0X21vZGVsX2dlbi50Y2wiCi1wdXRzICRvcDIgIiNzZXQgdmFycyhwcmVfcGluX2Fzc2lnbl90Y2wpICAgICAgICAgXCR2YXJzKHBsdWdfZGlyKS9wcmVfcGluX2Fzc2lnbi50Y2wiCi1wdXRzICRvcDIgIiNzZXQgdmFycyhwb3N0X3Bpbl9hc3NpZ25fdGNsKSAgICAgICAgXCR2YXJzKHBsdWdfZGlyKS9wb3N0X3Bpbl9hc3NpZ24udGNsIgotcHV0cyAkb3AyICIjc2V0IHZhcnMocHJlX3BhcnRpdGlvbl90Y2wpICAgICAgICAgIFwkdmFycyhwbHVnX2RpcikvcHJlX3BhcnRpdGlvbi50Y2wiCi1wdXRzICRvcDIgIiNzZXQgdmFycyhwb3N0X3BhcnRpdGlvbl90Y2wpICAgICAgICAgXCR2YXJzKHBsdWdfZGlyKS9wb3N0X3BhcnRpdGlvbi50Y2wiCi1wdXRzICRvcDIgIiNzZXQgdmFycyhwcmVfYXNzZW1ibGVfdGNsKSAgICAgICAgICAgXCR2YXJzKHBsdWdfZGlyKS9wcmVfYXNzZW1ibGUudGNsIgotcHV0cyAkb3AyICIjc2V0IHZhcnMocG9zdF9hc3NlbWJsZV90Y2wpICAgICAgICAgIFwkdmFycyhwbHVnX2RpcikvcG9zdF9hc3NlbWJsZS50Y2wiCi1wdXRzICRvcDIgIiNzZXQgdmFycyhwcmVfc2lnbm9mZl90Y2wpICAgICAgICAgICAgXCR2YXJzKHBsdWdfZGlyKS9wcmVfc2lnbm9mZi50Y2wiCi1wdXRzICRvcDIgIiNzZXQgdmFycyhwb3N0X3NpZ25vZmZfdGNsKSAgICAgICAgICAgXCR2YXJzKHBsdWdfZGlyKS9wb3N0X3NpZ25vZmYudGNsIgotcHV0cyAkb3AyICIjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIgotcHV0cyAkb3AyICIjIEFsbCBvdGhlciBwbHVnLWlucyBhcmUgb25seSB1c2VkIGR1cmluZyB0aGUgZmxhdCBpbXBsZW1lbnRhdGlvbiIKLXB1dHMgJG9wMiAiIyBvZiB0aGUgcGFydGl0aW9ucy4gVG8gZW5hYmxlIHBsdWctaW5zIGZvciBwYXJ0aXRpb24gaW1wbGVtZW50YXRpb24iCi1wdXRzICRvcDIgIiMgZGVmaW5lIGluIHRoZSB2YXJzKDxwYXJ0Pixpbm5vdnVzX2NvbmZpZ190Y2wpIGZpbGUgZm9yIHRoYXQgcGFydGl0aW9uIgotcHV0cyAkb3AyICIjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIgotcHV0cyAkb3AyICIjIFRvIGluc2VydCBtZXRhbCBmaWxsIGR1cmluZyB0aGUgZmxvdyBkZWZpbmUgdGhlIGZvbGxvd2luZyB0d28gdmFyaWFibGVzOiIKLXB1dHMgJG9wMiAiIyAtIHZhcnMobWV0YWxmaWxsKSAgICBcW3ByZV9wb3N0cm91dGUsIHByZV9zaWdub2ZmXF0iCi1wdXRzICRvcDIgIiMgLSB2YXJzKG1ldGFsZmlsbF90Y2wpIDxwYXRoIHRvIG1ldGFsZmlsbCBwbHVnLWluIGZpbGU+IgotcHV0cyAkb3AyICIjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIgotcHV0cyAkb3AyICIjc2V0IHZhcnMobWV0YWxmaWxsKSAgICAgICAgICAgICAgICAgIHByZV9wb3N0cm91dGUiCi1wdXRzICRvcDIgIiNzZXQgdmFycyhtZXRhbGZpbGxfdGNsKSAgICAgICAgICAgICBcJHZhcnMocGx1Z19kaXIpL21ldGFsZmlsbC50Y2wiCi0KLXB1dHMgJG9wMiAiIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIgotcHV0cyAkb3AyICIjIERpc3RyaWJ1dGlvbiBzZXR1cCAuLi4gdmFycyhkaXN0cmlidXRlKSBjYW4gYmUgb25lIG9mIHRoZSBmb2xsb3dpbmc6IgotcHV0cyAkb3AyICIjIGxzZiwgcnNoLCBsb2NhbCwgb3IgY3VzdG9tIgotcHV0cyAkb3AyICIjIERlcGVuZGluZyBvbiB0aGUgdmFsdWUgb2YgdmFycyhkaXN0cmlidXRlKSwgYWRkaXRpb24gdmFyaWFibGVzIgotcHV0cyAkb3AyICIjIG1heSBiZSByZXF1aXJlZC4gIFNvbWUgZXhhbXBsZXMgYXJlIHNob3duIGJlbG93IgotcHV0cyAkb3AyICIjIEFsc28sIGEgdGltZW91dCBjYW4gYmUgc2V0ICh1bml0IGlzIHNlY29uZHMpIgotcHV0cyAkb3AyICIjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIgotcHV0cyAkb3AyICIjc2V0IHZhcnMoZGlzdHJpYnV0ZSkgICAgICAgICAgIGN1c3RvbSIKLXB1dHMgJG9wMiAiI3NldCB2YXJzKGRpc3RyaWJ1dGVfdGltZW91dCkgICAzNjAwIgotcHV0cyAkb3AyICIjc2V0IHZhcnMoY3VzdG9tLHNjcmlwdCkgICAgICAgIHsvZ3JpZC9zZmkvZmFybS9iaW4vZ3JpZHN1YiAtVyA3MjowMCAtUCBTT0M3LjEgLVIgXCJTRklBUkNIPT1PUFQ2NCAmJiBPU1JFTD09RUU0MFwiIC1xIGxueDY0fSIKLXB1dHMgJG9wMiAiI3NldCB2YXJzKGxzZixxdWV1ZSkgICAgICAgICAgICBsbng2NCIKLXB1dHMgJG9wMiAiI3NldCB2YXJzKGxzZixyZXNvdXJjZSkgICAgICAgICBcIlNGSUFSQ0g9PU9QVDY0ICYmIE9TUkVMPT1FRTQwXCIiCi1wdXRzICRvcDIgIiNzZXQgdmFycyhsc2YsYXJncykgICAgICAgICAgICAgXCItVyA3MjowMCAtUCBTT0M4LjFcIiIKLXB1dHMgJG9wMiAiI3NldCB2YXJzKGxvY2FsX2NwdXMpICAgICAgICAgICAyIgotcHV0cyAkb3AyICIjc2V0IHZhcnMocmVtb3RlX2hvc3RzKSAgICAgICAgIDIiCi1wdXRzICRvcDIgIiNzZXQgdmFycyhjcHVfcGVyX3JlbW90ZV9ob3N0KSAgMiIKLXB1dHMgJG9wMiAiI3NldCB2YXJzKHJzaCxob3N0cykgICAgICAgICAgICA8bGlzdCBvZiBob3N0cz4iCi1wdXRzICRvcDIgIiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyIKLXB1dHMgJG9wMiAiIyBDYXB0dXJlIHFvciBhbmQgcnVuIHRpbWUgbWV0cmljcyAuLi4iCi1wdXRzICRvcDIgIiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iCi1wdXRzICRvcDIgIiNzZXQgdmFycyhjYXB0dXJlX21ldHJpY3MpIGZhbHNlIgotcHV0cyAkb3AyICJzZXQgdmFycyhyZXBvcnRfcnVuX3RpbWUpIHRydWUiCi1wdXRzICRvcDIgIiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iCi1wdXRzICRvcDIgIiNzZXQgdmFycyhodG1sX3N1bW1hcnkpIDxmaWxlbmFtZT4iCi1wdXRzICRvcDIgIiNzZXQgdmFycyh0aW1lX2luZm9fcnB0KSA8ZmlsZW5hbWU+IgotcHV0cyAkb3AyICIjc2V0IHZhcnModGltZV9pbmZvX2RicykgPGZpbGVuYW1lPiIKLXB1dHMgJG9wMiAiIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIgotcHV0cyAkb3AyICIjIE1ha2VmaWxlIG9wdGlvbnMgLi4uIgotcHV0cyAkb3AyICIjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIgotcHV0cyAkb3AyICIjc2V0IHZhcnMobWFrZV90b29sKSA8aW5ub3Z1cyBleGVjdXRhYmxlPiIKLXB1dHMgJG9wMiAiI3NldCB2YXJzKG1ha2VfdG9vbF9hcmdzKSBcIi02NCAtbm93aW5cIiIKLXB1dHMgJG9wMiAiI3NldCB2YXJzKG1ha2Vfc3luX3Rvb2wpIDxyYyBleGVjdXRhYmxlPiIKLXB1dHMgJG9wMiAiI3NldCB2YXJzKG1ha2Vfc3luX3Rvb2xfYXJncykgXCItNjRcIiIKLXB1dHMgJG9wMiAiI3NldCB2YXJzKG1ha2VfYnJvd3NlcikgbW96aWxsYSIKLXB1dHMgJG9wMiAiIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIgotcHV0cyAkb3AyICIjIEFib3J0IGlmIHRoZXJlIGFyZSBlcnJvcnMgaW4gdGhlIHNldHVwLnRjbCIKLXB1dHMgJG9wMiAiIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIKLXB1dHMgJG9wMiAic2V0IHZhcnMoYWJvcnQpIHRydWUiCi1wdXRzICRvcDIgIiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyIKLXB1dHMgJG9wMiAiIyBTZW5kIG1haWwgZHVyaW5nIGZsb3cgZXhlY3V0aW9uOyAgdmFycyhtYWlsLHN0ZXBzKSBkZWZhdWx0cyB0byBBTEwgc3RlcHMuIgotcHV0cyAkb3AyICIjc2V0IHZhcnMobWFpbCx0bykgICAgICAgICAgICAgIFwiPGxpc3Qgb2YgZW1haWwgYWRkcmVzc2VzPlwiIgotcHV0cyAkb3AyICIjc2V0IHZhcnMobWFpbCxzdGVwcykgICAgICAgICAgIFwiPGxpc3Qgb2Ygc3RlcHM+XCIiCi1wdXRzICRvcDIgIiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyIKLXB1dHMgJG9wMSAicHV0cyBcIjxGRj4gRmluaXNoZWQgbG9hZGluZyBzZXR1cC50Y2wgZmlsZVwiIgotcHV0cyAkb3AyICJwdXRzIFwiPEZGPiBGaW5pc2hlZCBsb2FkaW5nIHRoZSBJTk5PVlVTIGNvbmZpZ3VyYXRpb24gZmlsZVwiIgotCi1jbG9zZSAkb3AxCi1jbG9zZSAkb3AyCi0KLVB1dHMgIjxGRj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIgotUHV0cyAiPEZGPiBGaW5pc2hlZCBnZW5lcmF0aW5nIHNldHVwIGZpbGUgXCJzZXR1cC5hdXRvLnRjbFwiIC4uLiAiCi1QdXRzICI8RkY+IHBsZWFzZSBlZGl0IGFuZCByZW5hbWUgdG8gc2V0dXAudGNsIHRvIGVuYWJsZSIKLVB1dHMgIjxGRj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIgotUHV0cyAiPEZGPiBGaW5pc2hlZCBnZW5lcmF0aW5nIElOTk9WVVMgY29uZmlnIGZpbGUgXCJpbm5vdnVzX2NvbmZpZy5hdXRvLnRjbFwiIC4uLiAiCi1QdXRzICI8RkY+IHBsZWFzZSBlZGl0IGFuZCByZW5hbWUgdG8gaW5ub3Z1c19jb25maWcudGNsIHRvIGVuYWJsZSIKLVB1dHMgIjxGRj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIgotI3B1dHMgIiAgICAgUGxlYXNlIGNoZWNrIGZvciBjb3JyZWN0bmVzcyBhbmQgYWRkIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gYXMgbmVjZXNzYXJ5IgotaWYge1tpbmZvIGV4aXN0cyBscGZpbGVdfSB7Ci0gICBjcmVhdGVfbHBfY29uZmlnX2ZpbGUKLSAgIFB1dHMgIjxGRj4gRmluaXNoZWQgZ2VuZXJhdGluZyBsb3cgcG93ZXIgY29uZmlnIGZpbGUgXCJscF9jb25maWcuYXV0by50Y2xcIiAuLi4gIgotICAgUHV0cyAiPEZGPiBwbGVhc2UgZWRpdCBhbmQgcmVuYW1lIHRvIGxwX2NvbmZpZy50Y2wgdG8gZW5hYmxlIgotICAgUHV0cyAiPEZGPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iCi19Ci1jcmVhdGVfaW52c190YWdfZmlsZQotUHV0cyAiPEZGPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iCi1QdXRzICI8RkY+IEZpbmlzaGVkIGdlbmVyYXRpbmcgSU5OT1ZVUyB0YWcgZmlsZSBcImludnMuYXV0by50Y2xcIiAuLi4gIgotUHV0cyAiPEZGPiBUaGlzIGZpbGUgaXMgZm9yIGRldGFpbGVkIGZsb3cgY3VzdG9taXphdGlvbiBhbmQgaW4gcHVyZWx5IG9wdGlvbmFsLiIKLVB1dHMgIjxGRj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIgotaWYge1tpbmZvIGV4aXN0cyBkb25lXX0geyAKLSAgIGZvcmVhY2ggdmFyIFthcnJheSBuYW1lcyBkb25lXSB7Ci0gICAgICB1bnNldCBkb25lKCR2YXIpCi0gICB9Ci19CmRpZmYgLS1naXQgYS9mbG93L3Buci9FWEFNUExFUy9JTk5PVlVTL0RFU0lHTi9pbm5vdnVzX2NvbmZpZy50Y2wgYi9mbG93L3Buci9FWEFNUExFUy9JTk5PVlVTL0RFU0lHTi9pbm5vdnVzX2NvbmZpZy50Y2wKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDc1ZDg1OWUuLjAwMDAwMDAKLS0tIGEvZmxvdy9wbnIvRVhBTVBMRVMvSU5OT1ZVUy9ERVNJR04vaW5ub3Z1c19jb25maWcudGNsCisrKyAvZGV2L251bGwKQEAgLTEsOTMgKzAsMCBAQAotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotIyBDQURFTkNFIENPUFlSSUdIVCBOT1RJQ0UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIwotIyBTZXB0ZW1iZXIgMjAwOCBDYWRlbmNlIERlc2lnbiBTeXN0ZW1zLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuICAgICAgICAgICAgIwotIyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIwotIyBUaGlzIHNjcmlwdCBpcyBBRVdhcmUsIHByb3ZpZGVkIGFzIGFuIGV4YW1wbGUgb2YgaG93IHRvIHBlcmZvcm0gc3BlY2lhbGl6ZWQgIwotIyB0YXNrcyB3aXRoaW4gU29DIEVuY291bnRlci4gIEl0IGlzIG5vdCBzdXBwb3J0ZWQgdmlhIHRoZSBDYWRlbmNlIEhvdGxpbmUgICAgIwotIyBub3IgdGhlIENDUiBzeXN0ZW0uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIwotIyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIwotIyBUaGlzIHdvcmsgbWF5IG5vdCBiZSBjb3BpZWQsIHJlLXB1Ymxpc2hlZCwgdXBsb2FkZWQsIG9yIGRpc3RyaWJ1dGVkIGluIGFueSAgIwotIyB3YXksIGluIGFueSBtZWRpdW0sIHdoZXRoZXIgaW4gd2hvbGUgb3IgaW4gcGFydCwgd2l0aG91dCBwcmlvciB3cml0dGVuICAgICAgIwotIyBwZXJtaXNzaW9uIGZyb20gQ2FkZW5jZS4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIwotIyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIwotIyBUaGlzIHdvcmsgaXMgQ2FkZW5jZSBpbnRlbGxlY3R1YWwgcHJvcGVydHkgYW5kIG1heSB1bmRlciBubyBjaXJjdW1zdGFuY2VzICAgIwotIyBiZSBnaXZlbiB0byB0aGlyZCBwYXJ0aWVzLCBuZWl0aGVyIGluIG9yaWdpbmFsIG5vciBpbiBtb2RpZmllZCB2ZXJzaW9ucywgICAgIwotIyB3aXRob3V0IGV4cGxpY2l0IHdyaXR0ZW4gcGVybWlzc2lvbiBmcm9tIENhZGVuY2UgICAgICAgICAgICAgICAgICAgICAgICAgICAgIwotIyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIwotIyBUaGUgaW5mb3JtYXRpb24gY29udGFpbmVkIGhlcmVpbiBpcyB0aGUgcHJvcHJpZXRhcnkgYW5kIGNvbmZpZGVudGlhbCAgICAgICAgIwotIyBpbmZvcm1hdGlvbiBvZiBDYWRlbmNlIG9yIGl0cyBsaWNlbnNvcnMsIGFuZCBpcyBzdXBwbGllZCBzdWJqZWN0IHRvLCBhbmQgICAgIwotIyBtYXkgYmUgdXNlZCBvbmx5IGJ5IENhZGVuY2UncyBjdXN0b21lcnMgaW4gYWNjb3JkYW5jZSB3aXRoLCBhIHByZXZpb3VzbHkgICAgIwotIyBleGVjdXRlZCBsaWNlbnNlIGFuZCBtYWludGVuYW5jZSBhZ3JlZW1lbnQgYmV0d2VlbiBDYWRlbmNlIGFuZCBpdHMgICAgICAgICAgIwotIyBjdXN0b21lci4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIwotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCi1nbG9iYWwgdmFycwotCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0jIE9wdGluYWxseSBkZWZpbmUgb3V0cHV0IGRpcmVjdG9yaWVzIGZvciBkYXRhYmFzZXMgYW5kIHJlcG9ydHMKLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLXNldCB2YXJzKGRic19kaXIpICAgICAgREJTCi1zZXQgdmFycyhycHRfZGlyKSAgICAgIFJQVAotCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0jIEVuYWJsZSB0aGlzIHZhcmlhYmxlIGlmIHlvdSB3YW50IHRvIGFib3J0IHdoZW4gdGhlcmUgYXJlIHNldHVwIAotIyBlcnJvcnMgLi4uIGxlYXZlIDAgdG8gY29udGludWUgb24gZXJyb3IKLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLXNldCB2YXJzKGFib3J0KSAwCi0KLXNldCB2YXJzKG1haWx0bykgW2V4ZWMgd2hvYW1pXQotCi0jc2V0IHZhcnMoZGJzX2Zvcm1hdCkgb2EKLXNldCB2YXJzKGVuYWJsZV9wYWMpICAgICAgICAgICAgICAgICAgICAgdHJ1ZQotc2V0IHZhcnMobXVsdF8zMixwYWNfbW9kZSkgICAgICAgICAgICAgICBhbGwKLSNzZXQgdmFycyhzaWdub2ZmX2V4dHJhY3Rpb25fZWZmb3J0KSAgICAgIGxvdwotc2V0IHZhcnMoZW5hYmxlX2NwcHIpICAgICAgICAgICAgICAgICAgICBib3RoCi1zZXQgdmFycyhsaXRob19kcml2ZW5fcm91dGluZykgICAgICAgICAgIHRydWUKLXNldCB2YXJzKGRvbnRfdXNlX2xpc3QpICIqQ0xLKiIKLXNldCB2YXJzKHRpZV9jZWxscykgICAgICJUSUVISSBUSUVMTyIKLXNldCB2YXJzKGZpbGxlcl9jZWxscykgICJGSUxMNjQgRklMTDMyIEZJTEwxNiBGSUxMOCBGSUxMNCBGSUxMMiBGSUxMMSIKLQotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotIyBUaGUgZm9sbG93aW5nIHBsdWdpbnMgYXJlIHN1cHBvcnRlZCB3aGVuIG5lZWRlZCAuLi4KLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLXNldCB2YXJzKGFsd2F5c19zb3VyY2VfdGNsKSAgICAgICAgICAgICBQTFVHL2Fsd2F5c19zb3VyY2UudGNsCi1zZXQgdmFycyhwcmVfaW5pdF90Y2wpICAgICAgICAgICAgICAgICAgUExVRy9wcmVfaW5pdC50Y2wKLXNldCB2YXJzKHBvc3RfaW5pdF90Y2wpICAgICAgICAgICAgICAgICBQTFVHL3Bvc3RfaW5pdC50Y2wKLXNldCB2YXJzKHByZV9wbGFjZV90Y2wpICAgICAgICAgICAgICAgICBQTFVHL3ByZV9wbGFjZS50Y2wKLSNzZXQgdmFycyhwbGFjZV90Y2wpICAgICAgICAgICAgICAgICAgICBQTFVHL3BsYWNlLnRjbAotc2V0IHZhcnMocG9zdF9wbGFjZV90Y2wpICAgICAgICAgICAgICAgIFBMVUcvcG9zdF9wbGFjZS50Y2wKLXNldCB2YXJzKHByZV9wcmVjdHNfdGNsKSAgICAgICAgICAgICAgICBQTFVHL3ByZV9wcmVjdHMudGNsCi1zZXQgdmFycyhwb3N0X3ByZWN0c190Y2wpICAgICAgICAgICAgICAgUExVRy9wb3N0X3ByZWN0cy50Y2wKLXNldCB2YXJzKHByZV9jdHNfdGNsKSAgICAgICAgICAgICAgICAgICBQTFVHL3ByZV9jdHMudGNsCi0jc2V0IHZhcnMoY3RzX3RjbCkgICAgICAgICAgICAgICAgICAgICAgUExVRy9jdHMudGNsCi1zZXQgdmFycyhwb3N0X2N0c190Y2wpICAgICAgICAgICAgICAgICAgUExVRy9wb3N0X2N0cy50Y2wKLXNldCB2YXJzKHByZV9wb3N0Y3RzX3RjbCkgICAgICAgICAgICAgICBQTFVHL3ByZV9wb3N0Y3RzLnRjbAotc2V0IHZhcnMocG9zdF9wb3N0Y3RzX3RjbCkgICAgICAgICAgICAgIFBMVUcvcG9zdF9wb3N0Y3RzLnRjbAotc2V0IHZhcnMocHJlX3JvdXRlX3RjbCkgICAgICAgICAgICAgICAgIFBMVUcvcHJlX3JvdXRlLnRjbAotc2V0IHZhcnMocG9zdF9yb3V0ZV90Y2wpICAgICAgICAgICAgICAgIFBMVUcvcG9zdF9yb3V0ZS50Y2wKLXNldCB2YXJzKHByZV9wb3N0Y3RzX2hvbGRfdGNsKSAgICAgICAgICBQTFVHL3ByZV9wb3N0Y3RzX2hvbGQudGNsCi1zZXQgdmFycyhwb3N0X3Bvc3RjdHNfaG9sZF90Y2wpICAgICAgICAgUExVRy9wb3N0X3Bvc3RjdHNfaG9sZC50Y2wKLXNldCB2YXJzKHByZV9wb3N0cm91dGVfdGNsKSAgICAgICAgICAgICBQTFVHL3ByZV9wb3N0cm91dGUudGNsCi1zZXQgdmFycyhwb3N0X3Bvc3Ryb3V0ZV90Y2wpICAgICAgICAgICAgUExVRy9wb3N0X3Bvc3Ryb3V0ZS50Y2wKLXNldCB2YXJzKHByZV9wb3N0cm91dGVfaG9sZF90Y2wpICAgICAgICBQTFVHL3ByZV9wb3N0cm91dGVfaG9sZC50Y2wKLXNldCB2YXJzKHBvc3RfcG9zdHJvdXRlX2hvbGRfdGNsKSAgICAgICBQTFVHL3Bvc3RfcG9zdHJvdXRlX2hvbGQudGNsCi1zZXQgdmFycyhwcmVfcG9zdHJvdXRlX3NpX3RjbCkgICAgICAgICAgUExVRy9wcmVfcG9zdHJvdXRlX3NpLnRjbAotc2V0IHZhcnMocG9zdF9wb3N0cm91dGVfc2lfdGNsKSAgICAgICAgIFBMVUcvcG9zdF9wb3N0cm91dGVfc2kudGNsCi1zZXQgdmFycyhwcmVfcG9zdHJvdXRlX3NpX2hvbGRfdGNsKSAgICAgUExVRy9wcmVfcG9zdHJvdXRlX3NpX2hvbGQudGNsCi1zZXQgdmFycyhwb3N0X3Bvc3Ryb3V0ZV9zaV9ob2xkX3RjbCkgICAgUExVRy9wb3N0X3Bvc3Ryb3V0ZV9zaV9ob2xkLnRjbAotc2V0IHZhcnMocHJlX3NpZ25vZmZfdGNsKSAgICAgICAgICAgICAgIFBMVUcvcHJlX3NpZ25vZmYudGNsCi1zZXQgdmFycyhwb3N0X3NpZ25vZmZfdGNsKSAgICAgICAgICAgICAgUExVRy9wb3N0X3NpZ25vZmYudGNsCi1zZXQgdmFycyhwcmVfYXNzZW1ibGVfdGNsKSAgICAgICAgICAgICAgUExVRy9wcmVfYXNzZW1ibGUudGNsCi1zZXQgdmFycyhwb3N0X2Fzc2VtYmxlX3RjbCkgICAgICAgICAgICAgUExVRy9wb3N0X2Fzc2VtYmxlLnRjbAotc2V0IHZhcnMocHJlX3BhY190Y2wpICAgICAgICAgICAgICAgICAgIFBMVUcvcHJlX3BhYy50Y2wKLXNldCB2YXJzKHBvc3RfcGFjX3RjbCkgICAgICAgICAgICAgICAgICBQTFVHL3Bvc3RfcGFjLnRjbAotCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotIyBUbyBpbnNlcnQgbWV0YWwgZmlsbCBkdXJpbmcgdGhlIGZsb3cgZGVmaW5lIHRoZSBmb2xsb3dpbmcgdHdvCi0jIHZhcmlhYmxlczoKLSMgLSB2YXJzKG1ldGFsZmlsbCkgW3ByZV9wb3N0cm91dGUsIHByZV9wb3N0cm91dGVfc2ksIHByZV9zaWdub2ZmXQotIyAtIHZhcnMobWV0YWxmaWxsX3RjbCkgPHBhdGggdG8gbWV0YWxmaWxsIHBsdWctaW4+Ci0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotc2V0IHZhcnMobWV0YWxmaWxsKSAgICAgICAgICAgICAgICAgIAlwcmVfcG9zdHJvdXRlX3NpCi1zZXQgdmFycyhtZXRhbGZpbGxfdGNsKSAgICAgICAgICAgICAgICAJUExVRy9tZXRhbF9maWxsLnRjbAotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKZGlmZiAtLWdpdCBhL2Zsb3cvcG5yL0VYQU1QTEVTL0lOTk9WVVMvREVTSUdOL3NldHVwLnRjbCBiL2Zsb3cvcG5yL0VYQU1QTEVTL0lOTk9WVVMvREVTSUdOL3NldHVwLnRjbApkZWxldGVkIGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggOWZmNTgzMS4uMDAwMDAwMAotLS0gYS9mbG93L3Buci9FWEFNUExFUy9JTk5PVlVTL0RFU0lHTi9zZXR1cC50Y2wKKysrIC9kZXYvbnVsbApAQCAtMSwyMjkgKzAsMCBAQAotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotIyBDQURFTkNFIENPUFlSSUdIVCBOT1RJQ0UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIwotIyBTZXB0ZW1iZXIgMjAwOCBDYWRlbmNlIERlc2lnbiBTeXN0ZW1zLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuICAgICAgICAgICAgIwotIyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIwotIyBUaGlzIHNjcmlwdCBpcyBBRVdhcmUsIHByb3ZpZGVkIGFzIGFuIGV4YW1wbGUgb2YgaG93IHRvIHBlcmZvcm0gc3BlY2lhbGl6ZWQgIwotIyB0YXNrcyB3aXRoaW4gU29DIEVuY291bnRlci4gIEl0IGlzIG5vdCBzdXBwb3J0ZWQgdmlhIHRoZSBDYWRlbmNlIEhvdGxpbmUgICAgIwotIyBub3IgdGhlIENDUiBzeXN0ZW0uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIwotIyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIwotIyBUaGlzIHdvcmsgbWF5IG5vdCBiZSBjb3BpZWQsIHJlLXB1Ymxpc2hlZCwgdXBsb2FkZWQsIG9yIGRpc3RyaWJ1dGVkIGluIGFueSAgIwotIyB3YXksIGluIGFueSBtZWRpdW0sIHdoZXRoZXIgaW4gd2hvbGUgb3IgaW4gcGFydCwgd2l0aG91dCBwcmlvciB3cml0dGVuICAgICAgIwotIyBwZXJtaXNzaW9uIGZyb20gQ2FkZW5jZS4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIwotIyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIwotIyBUaGlzIHdvcmsgaXMgQ2FkZW5jZSBpbnRlbGxlY3R1YWwgcHJvcGVydHkgYW5kIG1heSB1bmRlciBubyBjaXJjdW1zdGFuY2VzICAgIwotIyBiZSBnaXZlbiB0byB0aGlyZCBwYXJ0aWVzLCBuZWl0aGVyIGluIG9yaWdpbmFsIG5vciBpbiBtb2RpZmllZCB2ZXJzaW9ucywgICAgIwotIyB3aXRob3V0IGV4cGxpY2l0IHdyaXR0ZW4gcGVybWlzc2lvbiBmcm9tIENhZGVuY2UgICAgICAgICAgICAgICAgICAgICAgICAgICAgIwotIyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIwotIyBUaGUgaW5mb3JtYXRpb24gY29udGFpbmVkIGhlcmVpbiBpcyB0aGUgcHJvcHJpZXRhcnkgYW5kIGNvbmZpZGVudGlhbCAgICAgICAgIwotIyBpbmZvcm1hdGlvbiBvZiBDYWRlbmNlIG9yIGl0cyBsaWNlbnNvcnMsIGFuZCBpcyBzdXBwbGllZCBzdWJqZWN0IHRvLCBhbmQgICAgIwotIyBtYXkgYmUgdXNlZCBvbmx5IGJ5IENhZGVuY2UncyBjdXN0b21lcnMgaW4gYWNjb3JkYW5jZSB3aXRoLCBhIHByZXZpb3VzbHkgICAgIwotIyBleGVjdXRlZCBsaWNlbnNlIGFuZCBtYWludGVuYW5jZSBhZ3JlZW1lbnQgYmV0d2VlbiBDYWRlbmNlIGFuZCBpdHMgICAgICAgICAgIwotIyBjdXN0b21lci4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIwotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCi1nbG9iYWwgdmFycwotCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0jIERlZmluZSBzb21lIHZhcmlhYmxlcyB0byBwb2ludCB0byBkYXRhLCBsaWJyYXJpZXMsIGFuZCBzY3JpcHRzCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi1zZXQgdmFycyhkZXNpZ25fcm9vdCkgIAkJLgotc2V0IHZhcnMoZGF0YV9yb290KSAgICAJCURBVEEKLXNldCB2YXJzKGxpYnJhcnlfcm9vdCkgCQlMSUJTCi1zZXQgdmFycyhzY3JpcHRfcm9vdCkgCQlTQ1JJUFRTCi1zZXQgdmFycyhwbHVnX2RpcikgICAgCSAJUExVRwotCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0jIEVuYWJsZSB0aGlzIHZhcmlhYmxlIGlmIHlvdSB3YW50IHRvIGFib3J0IHdoZW4gdGhlcmUgYXJlIHNldHVwIAotIyBlcnJvcnMgLi4uIGxlYXZlIDAgdG8gY29udGludWUgb24gZXJyb3IKLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLXNldCB2YXJzKGFib3J0KSAwCi0KLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSMgVGhlIHZhcnMoZmxvdykgTVVTVCBiZSBkZWZpbmVkCi0jIFN1cHBvcnRlZCBmbG93cyAtPiBkZWZhdWx0LCBwcl9tbW1jLCBvciBtbW1jCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi1zZXQgdmFycyhmbG93KSBtbW1jCi0KLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSMgVGhlIGZvbGxvd2luZyB2YXJpYWJsZXMgZGVmaW5lIHRoZSBkZXNpZ24gZGF0YQotIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIyB2YXJzKGRlc2lnbikgPGRlc2lnbiBuYW1lPiBSRVFVSVJFRAotIyB2YXJzKG5ldGxpc3QpIDx2ZXJpbG9nIG5ldGxpc3QgZmlsZT4gUkVRVUlSRUQKLSMgdmFycyhjdHNfc3BlYykgPGN0cyBzcGVjIGZpbGUgbGlzdCA+IFJFUVVJUkVECi0jIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0jIEVpdGhlciBhIGZwX2ZpbGUsIGRlZl9maWxlIG9yIGJvdGggTVVTVCBiZSBkZWZpbmVkCi0jIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0jIHZhcnMoZnBfZmlsZSkgPGZsb29ycGxhbiBmaWxlPgotIyB2YXJzKGRlZl9maWxlKSA8Zmxvb3JwbGFuIERFRiBmaWxlPgotIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIyB2YXJzKHNjYW5fZGVmKSBPUFRJT05BTAotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotc2V0IHZhcnMoZGVzaWduKSAgIHRkc3BfY29yZQotc2V0IHZhcnMobmV0bGlzdCkgICJEQVRBL3Rkc3BfY29yZS52IgotaWYgeyR2YXJzKG1vZGUpID09ICJmbGF0In0gewotICAgc2V0IHZhcnMoZnBfZmlsZSkgIERBVEEvdGRzcF9jb3JlLmZwCi19IGVsc2UgewotICAgc2V0IHZhcnMoZnBfZmlsZSkgIERBVEEvaGllci5mcAotIyAgIHNldCB2YXJzKGhpZXJfZmxvd190eXBlKSAiMnBhc3MiCi0gICBzZXQgdmFycyhwYXJ0aXRpb25fbGlzdCkgIm11bHRfMzIiCi19Ci1zZXQgdmFycyhwb3dlcl9uZXRzKSAiVkREIEFWZGQiCi1zZXQgdmFycyhncm91bmRfbmV0cykgIlZTUyBBVnNzIgotCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0jIFRoZSBmb2xsb3dpbmcgYXJlIFJFUVVJUkVECi0jIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0jIHZhcnMocHJvY2VzcykgPHByb2Nlc3Mgbm9kZT4gKDY1bm0sIDkwbm0sIGUuZy4pCi0jIHZhcnMobWF4X3JvdXRlX2xheWVycykgPHRvcCByb3V0aW5nIGxheWVyPgotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotc2V0IHZhcnMocHJvY2VzcykgICAgICAgICA0NW5tCi1zZXQgdmFycyhtYXhfcm91dGVfbGF5ZXIpIDYKLQotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotIyBUaGUgZm9sbG93aW5nIGFyZSBmb3IgdGhlIElMTSBiYXNlZCBoaWVyYXJjaGljYWwgZmxvdwotIyB2YXJzKHBhcnRpdGlvbl9saXN0KSA8cHRuMT4gPHB0bjI+IC4uLiBSRVFVSVJFRAotIyB2YXJzKDxwdG4xPixjdHNfc3BlYykgPGN0cyBzcGVjIGZvciBwdG4xPiBSRVFVSVJFRAotIyB2YXJzKDxwdG4xPixsYXRlbmN5X3NkYykgPGxhdGVuY3kgc2RjIGZvciBwdG4xPiBSRVFVSVJFRAotIyB2YXJzKDxwdG4xPixpbmNyX2N0c19zZGMpIDxwb3N0IGN0cyBpbmNyIHNkYyBmb3IgcHRuMT4gT1BUSU9OQUwKLSMgdmFycyg8cHRuMT4scG9zdF9jdHNfc2RjKSA8cG9zdCBjdHMgKGZ1bGwpIHNkYyBmb3IgcHRuMT4gT1BUSU9OQUwKLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLQotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotIyBEZWZpbmUgbGlicmFyeSBzZXRzIC4uLgotIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIyBzZXQgdmFycyhsaWJyYXJ5X3NldHMpICI8c2V0MT4gPHNldDI+IC4uLiIKLSMgc2V0IHZhcnMoPHNldDE+LHRpbWluZykgPGxpc3Qgb2YgbGliIGZpbGVzPiAoUkVRVUlSRUQpCi0jIHNldCB2YXJzKDxzZXQxPixzaSkgPGxpc3Qgb2YgY2RiL3VkbiBmaWxlcz4gKE9QVElPTkFMKQotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotc2V0IHZhcnMobGlicmFyeV9zZXRzKSAic2xvd19saWJzIgotCi1zZXQgdmFycyhzbG93X2xpYnMsdGltaW5nKSAiR1BESy9MSUJTL0dQREswNDUvdGltaW5nL3Nsb3cubGliIgotCi1zZXQgdmFycyhsZWZfZmlsZXMpICJHUERLL0xJQlMvR1BESzA0NS9nc2NsaWIwNDUubGVmIgotCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0jIERlZmluZSByYyBjb3JuZXJzIC4uLgotIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIyBzZXQgdmFycyhyY19jb3JuZXJzKSAiPGNvcm5lcjE+IDxjb3JuZXIyPiAuLi4iCi0jIHNldCB2YXJzKDxjb3JuZXIxPixUKSA8dGVtcGVyYXR1cmU+Ci0jIHNldCB2YXJzKDxjb3JuZXIxPixjYXBfdGFibGUpIDxjYXAgdGFibGUgZm9yIGNvcm5lcjE+Ci0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0jIE9wdGlvbmFsbHkgZGVmaW5lIFFSQyB0ZWNobm9sb2d5IGluZm9ybWF0aW9uCi0jIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0jIHNldCB2YXJzKDxjb3JuZXI+LHF4X3RlY2hfZmlsZSkgPHF4X3RlY2hfZmlsZSBmb3IgY29ybmVyMT4KLSMgc2V0IHZhcnMoPGNvcm5lcj4scXhfbGliX2ZpbGUpIDxxeF9saWJfZmlsZSBmb3IgY29ybmVyMT4KLSMgc2V0IHZhcnMoPGNvcm5lcj4scXhfY29uZl9maWxlKSA8cXhfY29uZl9maWxlIGZvciBjb3JuZXIxPgotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotc2V0IHZhcnMocmNfY29ybmVycykgICAgICAgICAgInJjX21heCIKLXNldCB2YXJzKHJjX21heCxUKSAgICAgICAgICAgIDEyNQotc2V0IHZhcnMocmNfbWF4LGNhcF90YWJsZSkgICAgR1BESy9URUNIL2NhcFRhYmxlCi1zZXQgdmFycyhyY19tYXgscXhfdGVjaF9maWxlKSAgR1BESy9URUNIL3FyY1RlY2hGaWxlCi0jc2V0IHZhcnMoc2lnbm9mZl9leHRyYWN0aW9uX2VuZ2luZSkgcXJjCi0KLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSMgU2NhbGUgZmFjdG9ycyBhcmUgYWxzbyBvcHRpb25hbCBidXQgYXJlIHN0cm9uZ2x5IGVuY291cmFnZWQgZm9yIAotIyBvYnRhaW5pbmcgdGhlIGJlc3QgZmxvdyBjb252ZXJnZW5jZSBhbmQgUW9SLiAgCi0jIFNjYWxpbmcgZmFjdG9ycyBhcmUgYXBwbGllZCBwZXIgcmMgY29ybmVyCi0jIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0jIHNldCB2YXJzKDxjb3JuZXIxPixkZWZfcmVzX2ZhY3RvcikgPGRlZmF1bHQgcmVzaXN0YW5jZSBzY2FsZSBmYWN0b3I+Ci0jIHNldCB2YXJzKDxjb3JuZXIxPixkZXRfcmVzX2ZhY3RvcikgPGRldGFpbGVkIHJlc2lzdGFuY2Ugc2NhbGUgZmFjdG9yPgotIyBzZXQgdmFycyg8Y29ybmVyMT4sZGVmX2NhcF9mYWN0b3IpIDxkZWZhdWx0IGNhcGFjaXRhbmNlIHNjYWxlIGZhY3Rvcj4KLSMgc2V0IHZhcnMoPGNvcm5lcjE+LGRldF9jYXBfZmFjdG9yKSA8ZGV0YWlsZWQgY2FwYWNpdGFuY2Ugc2NhbGUgZmFjdG9yPgotIyBzZXQgdmFycyg8Y29ybmVyMT4sZGVmX2Nsa19jYXBfZmFjdG9yKSA8ZGVmYXVsdCBjbG9jayBjYXBhY2l0YW5jZSBzY2FsZSBmYWN0b3I+Ci0jIHNldCB2YXJzKDxjb3JuZXIxPixkZXRfY2xrX2NhcF9mYWN0b3IpIDxkZXRhaWxlZCBjbG9jayBjYXBhY2l0YW5jZSBzY2FsZSBmYWN0b3I+Ci0jIHNldCB2YXJzKDxjb3JuZXIxPix4Y2FwX2ZhY3RvcikgPGNvdXBsaW5nIGNhcGFjaXRhbmNlIHNjYWxlIGZhY3Rvcj4KLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLXNldCB2YXJzKHJjX21heCxkZWZfcmVzX2ZhY3RvcikgICAgIDAuOTUKLXNldCB2YXJzKHJjX21heCxkZXRfcmVzX2ZhY3RvcikgICAgIDEuMjcKLXNldCB2YXJzKHJjX21heCxkZWZfY2FwX2ZhY3RvcikgICAgIDEuMDkKLXNldCB2YXJzKHJjX21heCxkZXRfY2FwX2ZhY3RvcikgICAgIDEuMDkKLXNldCB2YXJzKHJjX21heCxkZWZfY2xrX2NhcF9mYWN0b3IpIDEuMTAKLXNldCB2YXJzKHJjX21heCxkZXRfY2xrX2NhcF9mYWN0b3IpIDEuMDUKLXNldCB2YXJzKHJjX21heCx4Y2FwX2ZhY3RvcikgICAgICAgIDEuMDMKLQotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotIyBEZWZpbmUgb3BlcmF0aW5nIGNvbmRpdGlvbnMgKG9wdGlvbmFsKQotIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIyBzZXQgdmFycyhvcGNvbmRzKSAiPG9wY29uZDE+IDxvcGNvbmQyPiAuLi4iCi0jIHNldCB2YXJzKDxvcGNvbmQxPixsaWJyYXJ5X2ZpbGUpIDxsaWJyYXJ5IGZpbGUgPgotIyBzZXQgdmFycyg8b3Bjb25kMT4scHJvY2VzcykgPHByb2Nlc3Mgc2NhbGUgZmFjdG9yPgotIyBzZXQgdmFycyg8b3Bjb25kMT4sdm9sdGFnZSkgPHZvbHRhZ2U+Ci0jIHNldCB2YXJzKDxvcGNvbmQxPix0ZW1wZXJhdHVyZSkgPHRlbXBlcmF0dXJlPgotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0jIERlZmluZSBkZWxheSBjb3JuZXJzIC4uLgotIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIyBzZXQgdmFycyhkZWxheV9jb3JuZXJzKSAiPGNvcm5lcjE+IDxjb3JuZXIyPiAuLi4iCi0jIHNldCB2YXJzKDxjb3JuZXIxPixsaWJyYXJ5X3NldCkgPGxpYnJhcnlfc2V0PiAocHJldmlvdXNseSBkZWZpbmVkKQotIyBzZXQgdmFycyg8Y29ybmVyMT4sb3Bjb25kKSA8b3Bjb25kPiAocHJldmlvdXNseSBkZWZpbmVkKSAob3B0aW9uYWwpCi0jIHNldCB2YXJzKDxjb3JuZXIxPixyY19jb3JuZXIpIGxpYnJhcnlfc2V0IChwcmV2aW91c2x5IGRlZmluZWQpCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi1zZXQgdmFycyhkZWxheV9jb3JuZXJzKSAgICAgICAgInNsb3dfbWF4Igotc2V0IHZhcnMoc2xvd19tYXgsbGlicmFyeV9zZXQpICJzbG93X2xpYnMiCi1zZXQgdmFycyhzbG93X21heCxyY19jb3JuZXIpICAgInJjX21heCIKLQotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotIyBEZWZpbmUgY29uc3RyYWludHMgbW9kZXMgLi4uIAotIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIyBzZXQgdmFycyhjb25zdHJhaW50X21vZGVzKSAiPG1vZGUxPiA8bW9kZTI+IC4uLiIKLSMgc2V0IHZhcnMoPG1vZGUxPixwcmVfY3RzX3NkYykgPHByZSBjdHMgY29uc3RyYWludCBmaWxlPgotIyBzZXQgdmFycyg8bW9kZTE+LHBvc3RfY3RzX3NkYykgPHBvc3QgY3RzIGNvbnN0cmFpbnQgZmlsZT4gKG9wdGlvbmFsKQotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCi1zZXQgdmFycyhjb25zdHJhaW50X21vZGVzKSAgICAgICAgICAgICAic2V0dXBfZnVuY19tb2RlIgotc2V0IHZhcnMoc2V0dXBfZnVuY19tb2RlLHByZV9jdHNfc2RjKSAgREFUQS9wcmVjdHMuc2RjCi1zZXQgdmFycyhzZXR1cF9mdW5jX21vZGUsaW5jcl9jdHNfc2RjKSBEQVRBL3Bvc3RjdHMuc2RjCi0KLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSMgRGVmaW5lIGFuYWx5c2lzIHZpZXdzIC4uLgotIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIyBzZXQgdmFycyhzZXR1cF9hbmFseXNpc192aWV3cykgIjx2aWV3MT4gPHZpZXcyPiIKLSMgc2V0IHZhcnMoaG9sZF9hbmFseXNpc192aWV3cykgIjx2aWV3MT4gPHZpZXcyPiIKLSMgc2V0IHZhcnMoPHZpZXcxPixkZWxheV9jb3JuZXIpIDxkZWxheSBjb3JuZXI+Ci0jIHNldCB2YXJzKDx2aWV3MT4sY29uc3RyYWludF9tb2RlKSA8Y29uc3RyYWludCBtb2RlPgotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotc2V0IHZhcnMoc2V0dXBfYW5hbHlzaXNfdmlld3MpICAgICAgICJzZXR1cF9mdW5jIgotc2V0IHZhcnMoaG9sZF9hbmFseXNpc192aWV3cykgICAgICAgICJzZXR1cF9mdW5jIgotCi1zZXQgdmFycyhzZXR1cF9mdW5jLGRlbGF5X2Nvcm5lcikgICAgInNsb3dfbWF4Igotc2V0IHZhcnMoc2V0dXBfZnVuYyxjb25zdHJhaW50X21vZGUpICJzZXR1cF9mdW5jX21vZGUiCi0KLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSMgRGVmaW5lIGFjdGl2ZSBzZXR1cCBhbmQgaG9sZCB2aWV3cyBhbmQgZGVub3RlIHdoaWNoIGFyZSBkZWZhdWx0Ci0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi1zZXQgdmFycyhkZWZhdWx0X3NldHVwX3ZpZXcpICJzZXR1cF9mdW5jIgotc2V0IHZhcnMoZGVmYXVsdF9ob2xkX3ZpZXcpICAic2V0dXBfZnVuYyIKLXNldCB2YXJzKGFjdGl2ZV9zZXR1cF92aWV3cykgInNldHVwX2Z1bmMiCi1zZXQgdmFycyhhY3RpdmVfaG9sZF92aWV3cykgICJzZXR1cF9mdW5jIgotCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0jIERlZmluZSBkZXJhdGluZyBmYWN0b3JzIGZvciBPQ1YgaGVyZSAoY2xvY2sgYW5kIGRhdGEpLiAKLSMgRGVyYXRpbmcgZmFjdG9ycyBhcmUgYXBwbGllZCBwZXIgZGVsYXkgY29ybmVyCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi1zZXQgdmFycyhzbG93X21heCxkYXRhX2NlbGxfbGF0ZSkgICAxLjAzCi1zZXQgdmFycyhzbG93X21heCxkYXRhX2NlbGxfZWFybHkpICAwLjk3Ci1zZXQgdmFycyhzbG93X21heCxkYXRhX25ldF9sYXRlKSAgICAxLjAzCi1zZXQgdmFycyhzbG93X21heCxkYXRhX25ldF9lYXJseSkgICAwLjk3Ci1zZXQgdmFycyhzbG93X21heCxjbG9ja19jZWxsX2xhdGUpICAxLjAzCi1zZXQgdmFycyhzbG93X21heCxjbG9ja19jZWxsX2Vhcmx5KSAwLjk3Ci1zZXQgdmFycyhzbG93X21heCxjbG9ja19uZXRfbGF0ZSkgICAxLjAzCi1zZXQgdmFycyhzbG93X21heCxjbG9ja19uZXRfZWFybHkpICAwLjk3Ci0KLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0jIERpc3RyaWJ1dGlvbiBzZXR1cAotIyBsc2YsIHJzaCwgbG9jYWwsIG9yIGN1c3RvbQotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSNzZXQgdmFycyhkaXN0cmlidXRlKSAgICBjdXN0b20KLSNzZXQgdmFycyhjdXN0b20sc2NyaXB0KSB7L2dyaWQvc2ZpL2Zhcm0vYmluL2dyaWRzdWIgLVcgNzI6MDAgLVAgU09DNy4xIC1SICJTRklBUkNIPT1PUFQ2NCAmJiBPU1JFTD09RUU0MCIgLXEgbG54NjR9Ci0jc2V0IHZhcnMobHNmLHF1ZXVlKSAgICAgbG54NjQKLSNzZXQgdmFycyhsc2YscmVzb3VyY2UpICAiU0ZJQVJDSD09T1BUNjQgJiYgT1NSRUw9PUVFNDAiCi0jc2V0IHZhcnMobHNmLGFyZ3MpICAgICAgIi1XIDcyOjAwIC1QIFNPQzguMSIKLXNldCB2YXJzKHRocmVhZHMpICAgICAgIDMKLXNldCB2YXJzKGhvc3RzKSAgICAgICAgIDEKLSNzZXQgdmFycyhyc2gsaG9zdHMpICAgICAieHY0MG9wdDAxIHh2NDBvcHQwMSB4djQwb3B0MDIgeHY0MG9wdDAyIgotCi0jc2V0IHZhcnMobWFpbCx0bykgW2xpc3QgPGxvZ2luX2lkPl0KLSNzZXQgdmFycyhtYWlsLHN0ZXBzKSBbbGlzdCBwcmVjdHMgcG9zdGN0cyBwb3N0cm91dGUgc2lnbm9mZl0KLQotcHV0cyAiPEZGPiBGaW5pc2hlZCBsb2FkaW5nIHNldHVwLnRjbCIKZGlmZiAtLWdpdCBhL2Zsb3cvcG5yL0VYQU1QTEVTL0lOTk9WVVMvUExVRy9jcmVhdGVfYmxvY2thZ2VzLnRjbCBiL2Zsb3cvcG5yL0VYQU1QTEVTL0lOTk9WVVMvUExVRy9jcmVhdGVfYmxvY2thZ2VzLnRjbApkZWxldGVkIGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDQ2MWI4Zi4uMDAwMDAwMAotLS0gYS9mbG93L3Buci9FWEFNUExFUy9JTk5PVlVTL1BMVUcvY3JlYXRlX2Jsb2NrYWdlcy50Y2wKKysrIC9kZXYvbnVsbApAQCAtMSwxNSArMCwwIEBACi1jcmVhdGVPYnN0cnVjdCAyNzI3LjYyNiAxMDk4LjMwNjUgMjc1NS4xNzggMTE0My4xMTc1Ci1jcmVhdGVPYnN0cnVjdCAxOTkyLjU5MiAyNDUuMDE4IDIwMTIuNjI2NSA0MzcuODc2NQotY3JlYXRlT2JzdHJ1Y3QgMjc0OC4wMjI1IDIxMzIuNDg2NSAyNzU1LjM3MSAyMTkyLjU0MwotY3JlYXRlT2JzdHJ1Y3QgMjc1MC41ODUgMTgyNy4xNzI1IDI3NTUuOTYgMTg4Ni43OTQKLWNyZWF0ZU9ic3RydWN0IDI0NC41NTE1IDE4MjYuNjEwNSAyNTkuNzE0IDE4NTMuMTQ1Ci1jcmVhdGVPYnN0cnVjdCAyNDQuNjU2NSAxODkyIDI1OS43NjIgMTkyMi42NDI1Ci1jcmVhdGVPYnN0cnVjdCAyNDQuNTE5IDIwMzAgMjU5Ljg1OCAyMDU5Ci1jcmVhdGVPYnN0cnVjdCAyNDQuMzQ4IDIwOTguNzY5IDI1OS43Mzc1IDIxMjQuNjIwNQotY3JlYXRlT2JzdHJ1Y3QgNzUxLjAzNyAyNzM0LjA1MiA4NDkuNzgxIDI3NTYuNjEwNQotY3JlYXRlT2JzdHJ1Y3QgMTA3Ny40Mzk1IDI3MzMuMTAxIDExNzIuMTAxNSAyNzU2LjM1MTUKLWNyZWF0ZU9ic3RydWN0IDE5MDcuNTM5IDI3MzMuMzU5NSAyMDM1LjY4NTUgMjc1Ni42OTUKLWNyZWF0ZU9ic3RydWN0IDI0My44MDY1IDI3MzUuNjQzNSAyMzI4IDI3NDUuODg5NQotY3JlYXRlT2JzdHJ1Y3QgMjQ0LjE3NiAyNTQwLjczNSAyNTguNjY0IDI1ODIuMTc0Ci1jcmVhdGVPYnN0cnVjdCAyMzEyLjE3OCAyMjA1LjQyMjUgMjMzOS45NzkgMjIyNy43NAotY3JlYXRlT2JzdHJ1Y3QgMjQ0LjIyOTUgMTYxMS4yNjcgMjMyNS45MzU1IDE2MjkuMTQ5NQpkaWZmIC0tZ2l0IGEvZmxvdy9wbnIvRVhBTVBMRVMvSU5OT1ZVUy9QTFVHL2NyZWF0ZV9oYWxvcy50Y2wgYi9mbG93L3Buci9FWEFNUExFUy9JTk5PVlVTL1BMVUcvY3JlYXRlX2hhbG9zLnRjbApkZWxldGVkIGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggZjdmYTIxZC4uMDAwMDAwMAotLS0gYS9mbG93L3Buci9FWEFNUExFUy9JTk5PVlVTL1BMVUcvY3JlYXRlX2hhbG9zLnRjbAorKysgL2Rldi9udWxsCkBAIC0xLDI4ICswLDAgQEAKLWRlbGV0ZUhhbG9Gcm9tQmxvY2sgLWFsbEJsb2NrCi1hZGRIYWxvVG9CbG9jayAyIDIgMiAyIGlfc3JhbV9zdWJzeXN0ZW0vaV8zX3NyYW1fdm9sdGFnZV9pc2xhbmQvaV8zX1NSQU1fMmt4MzJfd3JhcC9pX3NyYW1fY29yZQotYWRkSGFsb1RvQmxvY2sgMiAyIDIgMiBpX3NyYW1fc3Vic3lzdGVtL2lfMF9zcmFtX3ZvbHRhZ2VfaXNsYW5kL2lfM19TUkFNXzJreDMyX3dyYXAvaV9zcmFtX2NvcmUKLWFkZEhhbG9Ub0Jsb2NrIDIgMiAyIDIgaV9zcmFtX3N1YnN5c3RlbS9pXzBfc3JhbV92b2x0YWdlX2lzbGFuZC9pXzBfU1JBTV8ya3gzMl93cmFwL2lfc3JhbV9jb3JlCi1hZGRIYWxvVG9CbG9jayAyIDIgMiAyIGlfc3JhbV9zdWJzeXN0ZW0vaV8yX3NyYW1fdm9sdGFnZV9pc2xhbmQvaV8wX1NSQU1fMmt4MzJfd3JhcC9pX3NyYW1fY29yZQotYWRkSGFsb1RvQmxvY2sgMiAyIDIgMiBpX3NyYW1fc3Vic3lzdGVtL2lfMV9zcmFtX3ZvbHRhZ2VfaXNsYW5kL2lfMF9TUkFNXzJreDMyX3dyYXAvaV9zcmFtX2NvcmUKLWFkZEhhbG9Ub0Jsb2NrIDIgMiAyIDIgaV9zcmFtX3N1YnN5c3RlbS9pXzJfc3JhbV92b2x0YWdlX2lzbGFuZC9pXzFfU1JBTV8ya3gzMl93cmFwL2lfc3JhbV9jb3JlCi1hZGRIYWxvVG9CbG9jayAyIDIgMiAyIGlfc3JhbV9zdWJzeXN0ZW0vaV8xX3NyYW1fdm9sdGFnZV9pc2xhbmQvaV8xX1NSQU1fMmt4MzJfd3JhcC9pX3NyYW1fY29yZQotYWRkSGFsb1RvQmxvY2sgMiAyIDIgMiBpX3NyYW1fc3Vic3lzdGVtL2lfMl9zcmFtX3ZvbHRhZ2VfaXNsYW5kL2lfMl9TUkFNXzJreDMyX3dyYXAvaV9zcmFtX2NvcmUKLWFkZEhhbG9Ub0Jsb2NrIDIgMiAyIDIgaV9zcmFtX3N1YnN5c3RlbS9pXzNfc3JhbV92b2x0YWdlX2lzbGFuZC9pXzFfU1JBTV8ya3gzMl93cmFwL2lfc3JhbV9jb3JlCi1hZGRIYWxvVG9CbG9jayAyIDIgMiAyIGlfc3JhbV9zdWJzeXN0ZW0vaV8yX3NyYW1fdm9sdGFnZV9pc2xhbmQvaV8zX1NSQU1fMmt4MzJfd3JhcC9pX3NyYW1fY29yZQotYWRkSGFsb1RvQmxvY2sgMiAyIDIgMiBpX3NyYW1fc3Vic3lzdGVtL2lfM19zcmFtX3ZvbHRhZ2VfaXNsYW5kL2lfMF9TUkFNXzJreDMyX3dyYXAvaV9zcmFtX2NvcmUKLWFkZEhhbG9Ub0Jsb2NrIDIgMiAyIDIgaV9zcmFtX3N1YnN5c3RlbS9pXzNfc3JhbV92b2x0YWdlX2lzbGFuZC9pXzJfU1JBTV8ya3gzMl93cmFwL2lfc3JhbV9jb3JlCi1hZGRIYWxvVG9CbG9jayAyIDIgMSAyIGlfc3JhbV9zdWJzeXN0ZW0vaV8wX3NyYW1fdm9sdGFnZV9pc2xhbmQvaV8xX1NSQU1fMmt4MzJfd3JhcC9pX3NyYW1fY29yZSAKLWFkZEhhbG9Ub0Jsb2NrIDIgMiAxIDIgaV9zcmFtX3N1YnN5c3RlbS9pXzFfc3JhbV92b2x0YWdlX2lzbGFuZC9pXzJfU1JBTV8ya3gzMl93cmFwL2lfc3JhbV9jb3JlCi1hZGRIYWxvVG9CbG9jayAxIDIgMiAyIGlfc3JhbV9zdWJzeXN0ZW0vaV8wX3NyYW1fdm9sdGFnZV9pc2xhbmQvaV8yX1NSQU1fMmt4MzJfd3JhcC9pX3NyYW1fY29yZQotYWRkSGFsb1RvQmxvY2sgMSAyIDIgMiBpX3NyYW1fc3Vic3lzdGVtL2lfMV9zcmFtX3ZvbHRhZ2VfaXNsYW5kL2lfM19TUkFNXzJreDMyX3dyYXAvaV9zcmFtX2NvcmUKLWFkZEhhbG9Ub0Jsb2NrIDIgMiAyIDIgaV9EMFRDTS9pX3NyYW1fY29yZV8xIAotYWRkSGFsb1RvQmxvY2sgMiAyIDIgMiBpX0QxVENNL2lfc3JhbV9jb3JlXzEgCi1hZGRIYWxvVG9CbG9jayAyIDIgMiAyIGlfRDBUQ00vaV9zcmFtX2NvcmVfMCAKLWFkZEhhbG9Ub0Jsb2NrIDIgMiAyIDIgaV9JVENNL2lfc3JhbV9jb3JlIAotYWRkSGFsb1RvQmxvY2sgMiAyIDIgMiBpX0QxVENNL2lfc3JhbV9jb3JlXzAgCi1hZGRIYWxvVG9CbG9jayAyIDIgOCAyIGlfTW9kdWxlX0EKLWFkZEhhbG9Ub0Jsb2NrIDIgMiAyIDIgaV9Nb2R1bGVfQgotYWRkSGFsb1RvQmxvY2sgMiAyIDIgMiBpX01vZHVsZV9VCi1hZGRIYWxvVG9CbG9jayAyIDIgMiAyIGlfTW9kdWxlX1cKLWFkZEhhbG9Ub0Jsb2NrICAxIDEgMSAxIGlfcm9tX3N1YnN5c3RlbS9pX3JvbV93cmFwL2lfcm9tX2NvcmUKLWFkZEhhbG9Ub0Jsb2NrIDI1IDU1IDEgMSBpX1BMTApkaWZmIC0tZ2l0IGEvZmxvdy9wbnIvRVhBTVBMRVMvSU5OT1ZVUy9QTFVHL2NyZWF0ZV9yb3dzLnRjbCBiL2Zsb3cvcG5yL0VYQU1QTEVTL0lOTk9WVVMvUExVRy9jcmVhdGVfcm93cy50Y2wKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDM5OTliMDkuLjAwMDAwMDAKLS0tIGEvZmxvdy9wbnIvRVhBTVBMRVMvSU5OT1ZVUy9QTFVHL2NyZWF0ZV9yb3dzLnRjbAorKysgL2Rldi9udWxsCkBAIC0xLDM0ICswLDAgQEAKLSMjIyBDcmVhdGUgcm93cyBpbiB0aGUgIFBEc21jIHBvd2VyIERvbWFpbgotZGVzZWxlY3RBbGwKLXdpbmRvd1NlbGVjdCAyODAgMTMyNSA0NDAgMTU1MAotZGVzZWxlY3RPYmplY3QgTW9kdWxlIGlfYXBiX3N1YnN5c3RlbS9pX3NtYwotZGVsZXRlUm93IC1zZWxlY3RlZAotY3JlYXRlUm93IC1zaXRlIGNvcmUgIC1hcmVhIDI4MCAxMzI1IDQ0MCAxNTUwCi1jcmVhdGVSb3cgLXNpdGUgYmNvcmUgIC1hcmVhIDI4MCAxMzI1IDQ0MCAxNTUwCi1kZXNlbGVjdEFsbAotCi0jIyMgQ3JlYXRlIHJvd3MgaW4gdGhlICB1YXJ0IHBvd2VyIERvbWFpbgotd2luZG93U2VsZWN0IDQ5MCAxMzI1IDg4MCAxNTI1Ci1kZXNlbGVjdE9iamVjdCBNb2R1bGUgaV9hcGJfc3Vic3lzdGVtL2lfdWFydDEKLWRlbGV0ZVJvdyAtc2VsZWN0ZWQKLWNyZWF0ZVJvdyAtc2l0ZSBjb3JlICAtYXJlYSA0OTAgMTMyNSA4ODAgMTUyNQotY3JlYXRlUm93IC1zaXRlIGJjb3JlICAtYXJlYSA0OTAgMTMyNSA4ODAgMTUyNQotZGVzZWxlY3RBbGwKLQotIyMjIENyZWF0ZSByb3dzIGluIHRoZSAgUERwbGwgcG93ZXIgRG9tYWluCi13aW5kb3dTZWxlY3QgMjM0MCAgMjIyNSAgMjc1MyAgMjc1MwotZGVzZWxlY3RPYmplY3QgTW9kdWxlIGlfUExMCi1kZWxldGVSb3cgLXNlbGVjdGVkCi1jcmVhdGVSb3cgLXNpdGUgY29yZSAgLWFyZWEgMjM0MCAgMjIyNSAgMjc1MyAgMjc1MyAtZmxpcDFzdAotY3JlYXRlUm93IC1zaXRlIGJjb3JlICAtYXJlYSAyMzQwICAyMjI1ICAyNzUzICAyNzUzCi1kZXNlbGVjdEFsbAotCi0jIyMgQ3JlYXRlIHJvd3MgaW4gdGhlICBQRHdha2V1cCBwb3dlciBEb21haW4KLXdpbmRvd1NlbGVjdCAyNTU1IDE1ODAgMjcwNSAxNjMwCi1kZXNlbGVjdE9iamVjdCBNb2R1bGUgaV93YWtldXAKLWRlbGV0ZVJvdyAtc2VsZWN0ZWQKLWNyZWF0ZVJvdyAtc2l0ZSBjb3JlICAtYXJlYSAyNTU1IDE1ODAgMjcwNSAxNjMwIC1mbGlwMXN0Ci1jcmVhdGVSb3cgLXNpdGUgYmNvcmUgIC1hcmVhIDI1NTUgMTU4MCAyNzA1IDE2MzAKLWRlc2VsZWN0QWxsCi0KLXNldExheWVyUHJlZmVyZW5jZSBzdGRSb3cgLWlzU2VsZWN0YWJsZSAwCmRpZmYgLS1naXQgYS9mbG93L3Buci9FWEFNUExFUy9JTk5PVlVTL1BMVUcvZmxvb3JwbGFuLnRjbCBiL2Zsb3cvcG5yL0VYQU1QTEVTL0lOTk9WVVMvUExVRy9mbG9vcnBsYW4udGNsCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDc1NQppbmRleCA0NzU2YmI0Li4wMDAwMDAwCi0tLSBhL2Zsb3cvcG5yL0VYQU1QTEVTL0lOTk9WVVMvUExVRy9mbG9vcnBsYW4udGNsCisrKyAvZGV2L251bGwKQEAgLTEsMTg4ICswLDAgQEAKLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotIyMjIERlZmluZSBjb3JlIGJvdW5kYXJ5IAotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi1mbG9vclBsYW4gXAotICAgLXNpdGUgY29yZSBcCi0gICAtZCAzMDAwIDMwMDAgNTUuMCA1NS4wIDU1LjAgNTUuMAotCi1zZWxlY3RPYmplY3QgTW9kdWxlIGlfYXBiX3N1YnN5c3RlbQotdW5ncm91cAotZGVzZWxlY3RBbGwKLXNldERyYXdWaWV3IGZwbGFuCi0KLQotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0jIyMgUmVsZWF0aXZlIHBsYWNlbWVudCBvZiBNRU1PUklFUyBhbmQgUExMIAotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi1yZWxhdGl2ZVBsYWNlIGlfc3JhbV9zdWJzeXN0ZW0vaV8xX3NyYW1fdm9sdGFnZV9pc2xhbmQvaV8wX1NSQU1fMmt4MzJfd3JhcC9pX3NyYW1fY29yZSBDT1JFIFwKLSAgIC1vcmllbnRhdGlvbiBSOTAgXAotICAgLXJlbGF0aW9uIEwgXAotICAgLWFsaWduZWRCeSBCIFwKLSAgIC14U3BhY2UgMTguMDAwMCBcCi0gICAteVNwYWNlIDIwLjAwMDAKLXJlbGF0aXZlUGxhY2UgaV9zcmFtX3N1YnN5c3RlbS9pXzJfc3JhbV92b2x0YWdlX2lzbGFuZC9pXzBfU1JBTV8ya3gzMl93cmFwL2lfc3JhbV9jb3JlIGlfc3JhbV9zdWJzeXN0ZW0vaV8xX3NyYW1fdm9sdGFnZV9pc2xhbmQvaV8wX1NSQU1fMmt4MzJfd3JhcC9pX3NyYW1fY29yZSBcCi0gICAtb3JpZW50YXRpb24gUjI3MCBcCi0gICAtcmVsYXRpb24gUiBcCi0gICAtYWxpZ25lZEJ5IEIgXAotICAgLXhTcGFjZSAxOC4wMDAwIFwKLSAgIC15U3BhY2UgMC4wMDAwCi1yZWxhdGl2ZVBsYWNlIGlfc3JhbV9zdWJzeXN0ZW0vaV8wX3NyYW1fdm9sdGFnZV9pc2xhbmQvaV8wX1NSQU1fMmt4MzJfd3JhcC9pX3NyYW1fY29yZSBpX3NyYW1fc3Vic3lzdGVtL2lfMl9zcmFtX3ZvbHRhZ2VfaXNsYW5kL2lfMF9TUkFNXzJreDMyX3dyYXAvaV9zcmFtX2NvcmUgXAotICAgLW9yaWVudGF0aW9uIE1ZOTAgXAotICAgLXJlbGF0aW9uIFIgXAotICAgLWFsaWduZWRCeSBCIFwKLSAgIC14U3BhY2UgMTguMDAwMCBcCi0gICAteVNwYWNlIDAuMDAwMAotcmVsYXRpdmVQbGFjZSBpX3NyYW1fc3Vic3lzdGVtL2lfMF9zcmFtX3ZvbHRhZ2VfaXNsYW5kL2lfMV9TUkFNXzJreDMyX3dyYXAvaV9zcmFtX2NvcmUgaV9zcmFtX3N1YnN5c3RlbS9pXzBfc3JhbV92b2x0YWdlX2lzbGFuZC9pXzBfU1JBTV8ya3gzMl93cmFwL2lfc3JhbV9jb3JlIFwKLSAgIC1vcmllbnRhdGlvbiBNWDkwIFwKLSAgIC1yZWxhdGlvbiBSIFwKLSAgIC1hbGlnbmVkQnkgQiBcCi0gICAteFNwYWNlIDE4LjAwMDAgXAotICAgLXlTcGFjZSAwLjAwMDAKLXJlbGF0aXZlUGxhY2UgaV9zcmFtX3N1YnN5c3RlbS9pXzBfc3JhbV92b2x0YWdlX2lzbGFuZC9pXzJfU1JBTV8ya3gzMl93cmFwL2lfc3JhbV9jb3JlIGlfc3JhbV9zdWJzeXN0ZW0vaV8wX3NyYW1fdm9sdGFnZV9pc2xhbmQvaV8xX1NSQU1fMmt4MzJfd3JhcC9pX3NyYW1fY29yZSBcCi0gICAtb3JpZW50YXRpb24gTVk5MCBcCi0gICAtcmVsYXRpb24gUiBcCi0gICAtYWxpZ25lZEJ5IEIgXAotICAgLXhTcGFjZSAxOC4wMDAwIFwKLSAgIC15U3BhY2UgMC4wMDAwCi1yZWxhdGl2ZVBsYWNlIGlfc3JhbV9zdWJzeXN0ZW0vaV8wX3NyYW1fdm9sdGFnZV9pc2xhbmQvaV8zX1NSQU1fMmt4MzJfd3JhcC9pX3NyYW1fY29yZSBpX3NyYW1fc3Vic3lzdGVtL2lfMF9zcmFtX3ZvbHRhZ2VfaXNsYW5kL2lfMl9TUkFNXzJreDMyX3dyYXAvaV9zcmFtX2NvcmUgXAotICAgLW9yaWVudGF0aW9uIE1YOTAgXAotICAgLXJlbGF0aW9uIFIgXAotICAgLWFsaWduZWRCeSBCIFwKLSAgIC14U3BhY2UgMTguMDAwMCBcCi0gICAteVNwYWNlIDAuMDAwMAotcmVsYXRpdmVQbGFjZSBpX3NyYW1fc3Vic3lzdGVtL2lfM19zcmFtX3ZvbHRhZ2VfaXNsYW5kL2lfM19TUkFNXzJreDMyX3dyYXAvaV9zcmFtX2NvcmUgaV9zcmFtX3N1YnN5c3RlbS9pXzBfc3JhbV92b2x0YWdlX2lzbGFuZC9pXzNfU1JBTV8ya3gzMl93cmFwL2lfc3JhbV9jb3JlIFwKLSAgIC1vcmllbnRhdGlvbiBNWTkwIFwKLSAgIC1yZWxhdGlvbiBSIFwKLSAgIC1hbGlnbmVkQnkgQiBcCi0gICAteFNwYWNlIDE4LjAwMDAgXAotICAgLXlTcGFjZSAwLjAwMDAKLXJlbGF0aXZlUGxhY2UgaV9zcmFtX3N1YnN5c3RlbS9pXzNfc3JhbV92b2x0YWdlX2lzbGFuZC9pXzJfU1JBTV8ya3gzMl93cmFwL2lfc3JhbV9jb3JlIGlfc3JhbV9zdWJzeXN0ZW0vaV8zX3NyYW1fdm9sdGFnZV9pc2xhbmQvaV8zX1NSQU1fMmt4MzJfd3JhcC9pX3NyYW1fY29yZSBcCi0gICAtb3JpZW50YXRpb24gTVg5MCBcCi0gICAtcmVsYXRpb24gUiBcCi0gICAtYWxpZ25lZEJ5IEIgXAotICAgLXhTcGFjZSAxOC4wMDAwIFwKLSAgIC15U3BhY2UgMC4wMDAwCi1yZWxhdGl2ZVBsYWNlIGlfc3JhbV9zdWJzeXN0ZW0vaV8yX3NyYW1fdm9sdGFnZV9pc2xhbmQvaV8xX1NSQU1fMmt4MzJfd3JhcC9pX3NyYW1fY29yZSBpX3NyYW1fc3Vic3lzdGVtL2lfMV9zcmFtX3ZvbHRhZ2VfaXNsYW5kL2lfMF9TUkFNXzJreDMyX3dyYXAvaV9zcmFtX2NvcmUgXAotICAgLW9yaWVudGF0aW9uIE1ZOTAgXAotICAgLXJlbGF0aW9uIFQgXAotICAgLWFsaWduZWRCeSBMIFwKLSAgIC14U3BhY2UgMC4wMDAwIFwKLSAgIC15U3BhY2UgNC4wMDAwCi1yZWxhdGl2ZVBsYWNlIGlfc3JhbV9zdWJzeXN0ZW0vaV8xX3NyYW1fdm9sdGFnZV9pc2xhbmQvaV8xX1NSQU1fMmt4MzJfd3JhcC9pX3NyYW1fY29yZSBpX3NyYW1fc3Vic3lzdGVtL2lfMl9zcmFtX3ZvbHRhZ2VfaXNsYW5kL2lfMV9TUkFNXzJreDMyX3dyYXAvaV9zcmFtX2NvcmUgXAotICAgLW9yaWVudGF0aW9uIE1YOTAgXAotICAgLXJlbGF0aW9uIFIgXAotICAgLWFsaWduZWRCeSBCIFwKLSAgIC14U3BhY2UgMTguMDAwMCBcCi0gICAteVNwYWNlIDAuMDAwMAotcmVsYXRpdmVQbGFjZSBpX3NyYW1fc3Vic3lzdGVtL2lfMl9zcmFtX3ZvbHRhZ2VfaXNsYW5kL2lfMl9TUkFNXzJreDMyX3dyYXAvaV9zcmFtX2NvcmUgaV9zcmFtX3N1YnN5c3RlbS9pXzFfc3JhbV92b2x0YWdlX2lzbGFuZC9pXzFfU1JBTV8ya3gzMl93cmFwL2lfc3JhbV9jb3JlIFwKLSAgIC1vcmllbnRhdGlvbiBNWTkwIFwKLSAgIC1yZWxhdGlvbiBSIFwKLSAgIC1hbGlnbmVkQnkgQiBcCi0gICAteFNwYWNlIDE4LjAwMDAgXAotICAgLXlTcGFjZSAwLjAwMDAKLXJlbGF0aXZlUGxhY2UgaV9zcmFtX3N1YnN5c3RlbS9pXzFfc3JhbV92b2x0YWdlX2lzbGFuZC9pXzJfU1JBTV8ya3gzMl93cmFwL2lfc3JhbV9jb3JlIGlfc3JhbV9zdWJzeXN0ZW0vaV8yX3NyYW1fdm9sdGFnZV9pc2xhbmQvaV8yX1NSQU1fMmt4MzJfd3JhcC9pX3NyYW1fY29yZSBcCi0gICAtb3JpZW50YXRpb24gTVg5MCBcCi0gICAtcmVsYXRpb24gUiBcCi0gICAtYWxpZ25lZEJ5IEIgXAotICAgLXhTcGFjZSAxOC4wMDAwIFwKLSAgIC15U3BhY2UgMC4wMDAwCi1yZWxhdGl2ZVBsYWNlIGlfc3JhbV9zdWJzeXN0ZW0vaV8xX3NyYW1fdm9sdGFnZV9pc2xhbmQvaV8zX1NSQU1fMmt4MzJfd3JhcC9pX3NyYW1fY29yZSBpX3NyYW1fc3Vic3lzdGVtL2lfMV9zcmFtX3ZvbHRhZ2VfaXNsYW5kL2lfMl9TUkFNXzJreDMyX3dyYXAvaV9zcmFtX2NvcmUgXAotICAgLW9yaWVudGF0aW9uIE1ZOTAgXAotICAgLXJlbGF0aW9uIFIgXAotICAgLWFsaWduZWRCeSBCIFwKLSAgIC14U3BhY2UgMTguMDAwMCBcCi0gICAteVNwYWNlIDAuMDAwMAotcmVsYXRpdmVQbGFjZSBpX3NyYW1fc3Vic3lzdGVtL2lfM19zcmFtX3ZvbHRhZ2VfaXNsYW5kL2lfMV9TUkFNXzJreDMyX3dyYXAvaV9zcmFtX2NvcmUgaV9zcmFtX3N1YnN5c3RlbS9pXzFfc3JhbV92b2x0YWdlX2lzbGFuZC9pXzNfU1JBTV8ya3gzMl93cmFwL2lfc3JhbV9jb3JlIFwKLSAgIC1vcmllbnRhdGlvbiBNWDkwIFwKLSAgIC1yZWxhdGlvbiBSIFwKLSAgIC1hbGlnbmVkQnkgQiBcCi0gICAteFNwYWNlIDE4LjAwMDAgXAotICAgLXlTcGFjZSAwLjAwMDAKLXJlbGF0aXZlUGxhY2UgaV9zcmFtX3N1YnN5c3RlbS9pXzJfc3JhbV92b2x0YWdlX2lzbGFuZC9pXzNfU1JBTV8ya3gzMl93cmFwL2lfc3JhbV9jb3JlIGlfc3JhbV9zdWJzeXN0ZW0vaV8zX3NyYW1fdm9sdGFnZV9pc2xhbmQvaV8xX1NSQU1fMmt4MzJfd3JhcC9pX3NyYW1fY29yZSBcCi0gICAtb3JpZW50YXRpb24gTVk5MCBcCi0gICAtcmVsYXRpb24gUiBcCi0gICAtYWxpZ25lZEJ5IEIgXAotICAgLXhTcGFjZSAxOC4wMDAwIFwKLSAgIC15U3BhY2UgMC4wMDAwCi1yZWxhdGl2ZVBsYWNlIGlfc3JhbV9zdWJzeXN0ZW0vaV8zX3NyYW1fdm9sdGFnZV9pc2xhbmQvaV8wX1NSQU1fMmt4MzJfd3JhcC9pX3NyYW1fY29yZSBpX3NyYW1fc3Vic3lzdGVtL2lfMl9zcmFtX3ZvbHRhZ2VfaXNsYW5kL2lfM19TUkFNXzJreDMyX3dyYXAvaV9zcmFtX2NvcmUgXAotICAgLW9yaWVudGF0aW9uIE1YOTAgXAotICAgLXJlbGF0aW9uIFIgXAotICAgLWFsaWduZWRCeSBCIFwKLSAgIC14U3BhY2UgMTguMDAwMCBcCi0gICAteVNwYWNlIDAuMDAwMAotcmVsYXRpdmVQbGFjZSBpX0QxVENNL2lfc3JhbV9jb3JlXzAgaV9zcmFtX3N1YnN5c3RlbS9pXzJfc3JhbV92b2x0YWdlX2lzbGFuZC9pXzFfU1JBTV8ya3gzMl93cmFwL2lfc3JhbV9jb3JlIFwKLSAgIC1vcmllbnRhdGlvbiBNWCBcCi0gICAtcmVsYXRpb24gVCBcCi0gICAtYWxpZ25lZEJ5IEwgXAotICAgLXhTcGFjZSAwLjAwMDAgXAotICAgLXlTcGFjZSA0LjAwMDAKLXJlbGF0aXZlUGxhY2UgaV9JVENNL2lfc3JhbV9jb3JlIGlfRDFUQ00vaV9zcmFtX2NvcmVfMCBcCi0gICAtb3JpZW50YXRpb24gTVggXAotICAgLXJlbGF0aW9uIFIgXAotICAgLWFsaWduZWRCeSBCIFwKLSAgIC14U3BhY2UgMjAuMDAwMCBcCi0gICAteVNwYWNlIDAuMDAwMAotcmVsYXRpdmVQbGFjZSBpX0QwVENNL2lfc3JhbV9jb3JlXzAgaV9JVENNL2lfc3JhbV9jb3JlIFwKLSAgIC1vcmllbnRhdGlvbiBNWCBcCi0gICAtcmVsYXRpb24gUiBcCi0gICAtYWxpZ25lZEJ5IEIgXAotICAgLXhTcGFjZSAyMC4wMDAwIFwKLSAgIC15U3BhY2UgMC4wMDAwCi1yZWxhdGl2ZVBsYWNlIGlfRDFUQ00vaV9zcmFtX2NvcmVfMSBpX0QwVENNL2lfc3JhbV9jb3JlXzAgXAotICAgLW9yaWVudGF0aW9uIE1YIFwKLSAgIC1yZWxhdGlvbiBSIFwKLSAgIC1hbGlnbmVkQnkgQiBcCi0gICAteFNwYWNlIDIwLjAwMDAgXAotICAgLXlTcGFjZSAwLjAwMDAKLXJlbGF0aXZlUGxhY2UgaV9EMFRDTS9pX3NyYW1fY29yZV8xIGlfRDFUQ00vaV9zcmFtX2NvcmVfMSBcCi0gICAtb3JpZW50YXRpb24gTVggXAotICAgLXJlbGF0aW9uIFIgXAotICAgLWFsaWduZWRCeSBCIFwKLSAgIC14U3BhY2UgMjAuMDAwMCBcCi0gICAteVNwYWNlIDAuMDAwMAotcmVsYXRpdmVQbGFjZSBpX1BMTCBDT1JFIFwKLSAgIC1vcmllbnRhdGlvbiBSOTAgXAotICAgLXJlbGF0aW9uIFQgXAotICAgLWFsaWduZWRCeSBSIFwKLSAgIC14U3BhY2UgMy4wMDAwIFwKLSAgIC15U3BhY2UgMy4wMDAwCi1yZWxhdGl2ZVBsYWNlIGlfTW9kdWxlX1cgQ09SRSBcCi0gICAtb3JpZW50YXRpb24gUjAgXAotICAgLXJlbGF0aW9uIFQgXAotICAgLWFsaWduZWRCeSBMIFwKLSAgIC14U3BhY2UgMjAuMDAwMCBcCi0gICAteVNwYWNlIDI1LjAwMDAKLXBsYWNlSW5zdGFuY2UgXAotICAgaV9yb21fc3Vic3lzdGVtL2lfcm9tX3dyYXAvaV9yb21fY29yZSAyNDA0LjA0NSAxNDc2LjIgUjAgXAotICAgLWZpeGVkCi0KLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotIyMjIFBsYWNlbWVudCBvZiBibG9jayAKLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotcGxhY2VJbnN0YW5jZSBcCi0gICBpX01vZHVsZV9BIDIzNDUuMCAxNjcwLjYgUjAgXAotICAgLWZpeGVkCi1wbGFjZUluc3RhbmNlIFwKLSAgIGlfTW9kdWxlX0IgMjEyMCAxMjE4LjggUjAgXAotICAgLWZpeGVkCi1wbGFjZUluc3RhbmNlIFwKLSAgIGlfTW9kdWxlX1UgMjAzMS4yIDI0NS4wIFIwIFwKLSAgIC1maXhlZAotCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSMjIyBDcmVhdGUgcm93cyBpbiB0aGUgZGVmYXVsdCBwb3dlciBEb21haW4KLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotZGVzZWxlY3RBbGwKLXNldExheWVyUHJlZmVyZW5jZSBzdGRSb3cgXAotICAgLWlzVmlzaWJsZSAxCi1zZXRMYXllclByZWZlcmVuY2Ugc3RkUm93IFwKLSAgIC1pc1NlbGVjdGFibGUgMQotZGVsZXRlUm93IFwKLSAgIC1hbGwKLWNyZWF0ZVJvdyBcCi0gICAtc2l0ZSBjb3JlICBcCi0gICAtZmxpcDFzdAotY3JlYXRlUm93IFwKLSAgIC1zaXRlIGJjb3JlCi0KLQpkaWZmIC0tZ2l0IGEvZmxvdy9wbnIvRVhBTVBMRVMvSU5OT1ZVUy9QTFVHL21ldGFsX2ZpbGwudGNsIGIvZmxvdy9wbnIvRVhBTVBMRVMvSU5OT1ZVUy9QTFVHL21ldGFsX2ZpbGwudGNsCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDc1NQppbmRleCA3YTA0MGU3Li4wMDAwMDAwCi0tLSBhL2Zsb3cvcG5yL0VYQU1QTEVTL0lOTk9WVVMvUExVRy9tZXRhbF9maWxsLnRjbAorKysgL2Rldi9udWxsCkBAIC0xLDY2ICswLDAgQEAKLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSMgT3B0aW9uYWxseSBkZWZpbmUgdGhlIGZvbGxvd2luZyB3aGVuIGFwcGxpY2FibGUKLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLXNldCB2YXJzKG1mX2xheWVycykgIjEgMiAzIDQgNSA2IiAgICAgICAgICAgICAgICAgICAgICAgICAgOyAjIE1ldGFsIEZpbGwgTGF5ZXIgTGlzdCAKLXNldCB2YXJzKG1mX3dpbnNpemUpICI1MCA1MCA1MCA1MCA1MCA1MCIgICAgICAgICAgICAgICAgICAgOyAjIE1ldGFsIEZpbGwgV2luZG93IFNpemUKLXNldCB2YXJzKG1mX3dpbnN0ZXApICIyNSAyNSAyNSAyNSAyNSAyNSIgICAgICAgICAgICAgICAgICAgOyAjIE1ldGFsIEZpbGwgV2luZG93IFN0ZXAKLXNldCB2YXJzKG1mX21pbndpZHRoKSAiMC4zIDAuMyAwLjMgMC4zIDAuMyAwLjQiICAgICAgICAgICAgOyAjIE1ldGFsIEZpbGwgTWluaW11bSBXaWR0aCAKLXNldCB2YXJzKG1mX21heHdpZHRoKSAiMy4wIDMuMCAzLjAgMy4wIDMuMCAzLjAiICAgICAgICAgICAgOyAjIE1ldGFsIEZpbGwgTWF4IFdpZHRoCi1zZXQgdmFycyhtZl9hY3RpdmUpICIwLjMgMC4zIDAuMyAwLjMgMC4zIDAuNiIgICAgICAgICAgICAgIDsgIyBNZXRhbCBGaWxsIEFjdGl2ZSBTcGFjaW5nIAotc2V0IHZhcnMobWZfZ2FwKSAiMC4zIDAuMyAwLjMgMC4zIDAuMyAwLjYiICAgICAgICAgICAgICAgICA7ICMgTWV0YWwgRmlsbCBHYXAgU3BhY2luZyAKLXNldCB2YXJzKG1mX2dhcF9vcGMpICIwLjMgMC4zIDAuMyAwLjMgMC4zIDAuNiIgICAgICAgICAgICAgOyAjIE1ldGFsIEZpbGwgR2FwIFNwYWNpbmcgKE9QQykKLXNldCB2YXJzKG1mX21pbmRlbnNpdHkpICIxMCAxMCAxMCAxMCAxMCAxMCIgICAgICAgICAgICAgICAgOyAjIE1ldGFsIEZpbGwgTWluIERlbnNpdHkKLXNldCB2YXJzKG1mX21pbmFyZWEpICIwLjI0MCAwLjI0MCAwLjI0MCAwLjI0MCAwLjI0MCAwLjU2NSIKLXNldCB2YXJzKG1mX21heGFyZWEpICI4MC4wIDgwLjAgODAuMCA4MC4wIDgwLjAgMTYwLjAiCi0jIE1ldGFsIEZpbGwgTWluIExlbmd0aAotc2V0IHZhcnMobWZfbWlubGVuZ3RoKSAiXAotICAgW2V4cHIgcm91bmQoW2xpbmRleCAkdmFycyhtZl9taW5hcmVhKSAwXS9bbGluZGV4ICR2YXJzKG1mX21pbndpZHRoKSAwXSswLjUpXSBcCi0gICBbZXhwciByb3VuZChbbGluZGV4ICR2YXJzKG1mX21pbmFyZWEpIDFdL1tsaW5kZXggJHZhcnMobWZfbWlud2lkdGgpIDFdKzAuNSldIFwKLSAgIFtleHByIHJvdW5kKFtsaW5kZXggJHZhcnMobWZfbWluYXJlYSkgMl0vW2xpbmRleCAkdmFycyhtZl9taW53aWR0aCkgMl0rMC41KV0gXAotICAgW2V4cHIgcm91bmQoW2xpbmRleCAkdmFycyhtZl9taW5hcmVhKSAzXS9bbGluZGV4ICR2YXJzKG1mX21pbndpZHRoKSAzXSswLjUpXSBcCi0gICBbZXhwciByb3VuZChbbGluZGV4ICR2YXJzKG1mX21pbmFyZWEpIDRdL1tsaW5kZXggJHZhcnMobWZfbWlud2lkdGgpIDRdKzAuNSldIFwKLSAgIFtleHByIHJvdW5kKFtsaW5kZXggJHZhcnMobWZfbWluYXJlYSkgNV0vW2xpbmRleCAkdmFycyhtZl9taW53aWR0aCkgNV0rMC41KV0gXAotIgotIyBNZXRhbCBGaWxsIE1heCBMZW5ndGgKLXNldCB2YXJzKG1mX21heGxlbmd0aCkgIlwKLSAgIFtleHByIHJvdW5kKFtsaW5kZXggJHZhcnMobWZfbWF4YXJlYSkgMF0vW2xpbmRleCAkdmFycyhtZl9tYXh3aWR0aCkgMF0tMC41KV0gXAotICAgW2V4cHIgcm91bmQoW2xpbmRleCAkdmFycyhtZl9tYXhhcmVhKSAxXS9bbGluZGV4ICR2YXJzKG1mX21heHdpZHRoKSAxXS0wLjUpXSBcCi0gICBbZXhwciByb3VuZChbbGluZGV4ICR2YXJzKG1mX21heGFyZWEpIDJdL1tsaW5kZXggJHZhcnMobWZfbWF4d2lkdGgpIDJdLTAuNSldIFwKLSAgIFtleHByIHJvdW5kKFtsaW5kZXggJHZhcnMobWZfbWF4YXJlYSkgM10vW2xpbmRleCAkdmFycyhtZl9tYXh3aWR0aCkgM10tMC41KV0gXAotICAgW2V4cHIgcm91bmQoW2xpbmRleCAkdmFycyhtZl9tYXhhcmVhKSA0XS9bbGluZGV4ICR2YXJzKG1mX21heHdpZHRoKSA0XS0wLjUpXSBcCi0gICBbZXhwciByb3VuZChbbGluZGV4ICR2YXJzKG1mX21heGFyZWEpIDVdL1tsaW5kZXggJHZhcnMobWZfbWF4d2lkdGgpIDVdLTAuNSldIFwKLSIKLWZvcmVhY2ggbGF5ZXIgJHZhcnMobWZfbGF5ZXJzKSB7Ci0gICBzZXQgaW5kZXggW2V4cHIgJGxheWVyLTFdCi0gICBzZXRNZXRhbEZpbGwgXAotICAgICAgICAgICAgLWl0ZXJhdGlvbk5hbWUgaXRlcjEgXAotICAgICAgICAgICAgLWxheWVyICRsYXllciBcCi0gICAgICAgICAgICAtd2luZG93U2l6ZSBbbGluZGV4ICR2YXJzKG1mX3dpbnNpemUpICRpbmRleF0gW2xpbmRleCAkdmFycyhtZl93aW5zaXplKSAkaW5kZXhdIFwKLSAgICAgICAgICAgIC13aW5kb3dTdGVwIFtsaW5kZXggJHZhcnMobWZfd2luc3RlcCkgJGluZGV4XSBbbGluZGV4ICR2YXJzKG1mX3dpbnN0ZXApICRpbmRleF0gXAotICAgICAgICAgICAgLW1pbldpZHRoIFtsaW5kZXggJHZhcnMobWZfbWlud2lkdGgpICRpbmRleF0gXAotICAgICAgICAgICAgLW1heFdpZHRoIFtsaW5kZXggJHZhcnMobWZfbWF4d2lkdGgpICRpbmRleF0gXAotICAgICAgICAgICAgLW1pbkxlbmd0aCBbbGluZGV4ICR2YXJzKG1mX21pbmxlbmd0aCkgJGluZGV4XSBcCi0gICAgICAgICAgICAtbWF4TGVuZ3RoIFtsaW5kZXggJHZhcnMobWZfbWF4bGVuZ3RoKSAkaW5kZXhdIFwKLSAgICAgICAgICAgIC1hY3RpdmVTcGFjaW5nIFtsaW5kZXggJHZhcnMobWZfYWN0aXZlKSAkaW5kZXhdIFwKLSAgICAgICAgICAgIC1nYXBTcGFjaW5nIFtsaW5kZXggJHZhcnMobWZfZ2FwKSAkaW5kZXhdIFwKLSAgICAgICAgICAgIC1taW5EZW5zaXR5IFtsaW5kZXggJHZhcnMobWZfbWluZGVuc2l0eSkgJGluZGV4XQotfQotCi1mb3JlYWNoIGxheWVyICR2YXJzKG1mX2xheWVycykgewotICAgc2V0IGluZGV4IFtleHByICRsYXllci0xXQotICAgc2V0TWV0YWxGaWxsIFwKLSAgICAgICAgICAgIC1pdGVyYXRpb25OYW1lIGl0ZXIyIFwKLSAgICAgICAgICAgIC1sYXllciAkbGF5ZXIgXAotICAgICAgICAgICAgLXdpbmRvd1NpemUgW2xpbmRleCAkdmFycyhtZl93aW5zaXplKSAkaW5kZXhdIFtsaW5kZXggJHZhcnMobWZfd2luc2l6ZSkgJGluZGV4XSBcCi0gICAgICAgICAgICAtd2luZG93U3RlcCBbbGluZGV4ICR2YXJzKG1mX3dpbnN0ZXApICRpbmRleF0gW2xpbmRleCAkdmFycyhtZl93aW5zdGVwKSAkaW5kZXhdIFwKLSAgICAgICAgICAgIC1taW5XaWR0aCBbbGluZGV4ICR2YXJzKG1mX21pbndpZHRoKSAkaW5kZXhdIFwKLSAgICAgICAgICAgIC1tYXhXaWR0aCBbbGluZGV4ICR2YXJzKG1mX21heHdpZHRoKSAkaW5kZXhdIFwKLSAgICAgICAgICAgIC1taW5MZW5ndGggW2xpbmRleCAkdmFycyhtZl9taW5sZW5ndGgpICRpbmRleF0gXAotICAgICAgICAgICAgLW1heExlbmd0aCBbbGluZGV4ICR2YXJzKG1mX21heGxlbmd0aCkgJGluZGV4XSBcCi0gICAgICAgICAgICAtYWN0aXZlU3BhY2luZyBbbGluZGV4ICR2YXJzKG1mX2FjdGl2ZSkgJGluZGV4XSBcCi0gICAgICAgICAgICAtZ2FwU3BhY2luZyBbbGluZGV4ICR2YXJzKG1mX2dhcF9vcGMpICRpbmRleF0gXAotICAgICAgICAgICAgLW1pbkRlbnNpdHkgW2xpbmRleCAkdmFycyhtZl9taW5kZW5zaXR5KSAkaW5kZXhdXAotICAgICAgICAgICAgLW9wYwotfQotCi1hZGRNZXRhbEZpbGwgLWl0ZXJhdGlvbk5hbWVMaXN0IHtpdGVyMSBpdGVyMn0gLXRpbWluZ0F3YXJlIHN0YQpkaWZmIC0tZ2l0IGEvZmxvdy9wbnIvRVhBTVBMRVMvSU5OT1ZVUy9QTFVHL3Bvc3RfY3RzLnRjbCBiL2Zsb3cvcG5yL0VYQU1QTEVTL0lOTk9WVVMvUExVRy9wb3N0X2N0cy50Y2wKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IGY2N2JlNTguLjAwMDAwMDAKLS0tIGEvZmxvdy9wbnIvRVhBTVBMRVMvSU5OT1ZVUy9QTFVHL3Bvc3RfY3RzLnRjbAorKysgL2Rldi9udWxsCkBAIC0xLDIwICswLDAgQEAKLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotIyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBPU1QtQ1RTIFBMVUctSU4KLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSMKLSMgVGhpcyBwbHVnLWluIHNjcmlwdCBpcyBjYWxsZWQgYWZ0ZXIgY2xvY2tEZXNpZ24gZnJvbSB0aGUgcnVuX2N0cy50Y2wgc2NyaXB0LgotIyBJdCBjYW4gYmUgdXNlZCB0byBhZGp1c3QgSU8gbGF0ZW5jaWVzLCB1cGRhdGUgdG8gcG9zdGN0cyBjbG9jayB1bmNlcnRhaW50aWVzLCBldGMuCi0jCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi1zZXRfaW50ZXJhY3RpdmVfY29uc3RyYWludF9tb2RlcyBbYWxsX2NvbnN0cmFpbnRfbW9kZXMgLWFjdGl2ZV0KLXNldF9wcm9wYWdhdGVkX2Nsb2NrIFthbGxfY2xvY2tzXQotc2V0X2Nsb2NrX3Byb3BhZ2F0aW9uIHByb3BhZ2F0ZWQKLXNldF9pbnRlcmFjdGl2ZV9jb25zdHJhaW50X21vZGVzIHt9Ci0KLXNldF9pbnRlcmFjdGl2ZV9jb25zdHJhaW50X21vZGVzIHtQTWRlZmF1bHR9Ci1zb3VyY2UgLi4vREFUQS9jaGlwX3RvcF9wcm9wYWdhdGVkLnNkYwotc2V0X2ludGVyYWN0aXZlX2NvbnN0cmFpbnRfbW9kZXMge30KLQotc2V0X2ludGVyYWN0aXZlX2NvbnN0cmFpbnRfbW9kZXMge1BNZHZmczJ9Ci1zb3VyY2UgLi4vREFUQS9jaGlwX3RvcF9kdmZzMl9wcm9wYWdhdGVkLnNkYwotc2V0X2ludGVyYWN0aXZlX2NvbnN0cmFpbnRfbW9kZXMge30KZGlmZiAtLWdpdCBhL2Zsb3cvcG5yL0VYQU1QTEVTL0lOTk9WVVMvUExVRy9wb3N0X2luaXQudGNsIGIvZmxvdy9wbnIvRVhBTVBMRVMvSU5OT1ZVUy9QTFVHL3Bvc3RfaW5pdC50Y2wKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IGEwM2M0MGEuLjAwMDAwMDAKLS0tIGEvZmxvdy9wbnIvRVhBTVBMRVMvSU5OT1ZVUy9QTFVHL3Bvc3RfaW5pdC50Y2wKKysrIC9kZXYvbnVsbApAQCAtMSw5OSArMCwwIEBACi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSMgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBPU1QtSU5JVCBQTFVHLUlOCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSMKLSMgVGhpcyBwbHVnLWluIHNjcmlwdCBpcyBjYWxsZWQgYWZ0ZXIgZGVzaWduIGltcG9ydCBmcm9tIHRoZSBydW5faW5pdC50Y2wgc2NyaXB0LgotIwotIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIyBDYW4gYmUgdXNlZCBmb3IgdmFyaW91cyBmbG9vcnBsYW4gcmVsYXRlZCB0YXNrcywgbGlrZToKLSMgICAgICAgICAgICAgIC0gRGllL2NvcmUgYm91bmRhcnkKLSMgICAgICAgICAgICAgIC0gcGxhY2VtZW50IG9mIGhhcmQgbWFjcm9zL2Jsb2NrcwotIyAgICAgICAgICAgICAgLSBwb3dlciBkb21haW4gc2l6ZSBhbmQgY2xlYXJlbmNlIHN1cnJvdW5kaW5nIHRvIGl0Ci0jICAgICAgICAgICAgICAtIFBsYWNlbWVudCBhbmQgcm91dGluZyBibG9ja2FnZXMgaW4gdGhlIGZsb29ycGxhbgotIyAgICAgICAgICAgICAgLSBJTyByaW5nIGNyZWF0aW9uCi0jICAgICAgICAgICAgICAtIFBTTyBwbGFubmluZwotIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIyBTcGVjaWZpY2FsbHksIHRoaXMgZXhhbXBsZSBpbmNsdWRlcyB0YXNrcyByZWxhdGVkIHRvIHRoZSBMUC9DUEYgZm91bmRhdGlvbiBmbG93IAotIyBpbmNsdWRpbmcgcG93ZXIgZG9tYWluIG1vZGlmaWNhdGlvbiBhbmQgcG93ZXIgc2h1dC1vZmYgcGxhbm5pbmcuIFRoZSBleGFtcGxlcyAKLSMgaW5jbHVkZWQgaGVyZSBvcGVyYXRlIGJhc2VkIG9uIHZhcmlhYmxlcyAodmFycyBhcnJheSkgZGVmaW5lZCBpbiB0aGUgCi0jIE9WRVJMQVkvbHBfY29uZmlnLnRjbCBmaWxlCi0jCi0jaWYge1tpbmZvIGV4aXN0cyB2YXJzKGNwZl9maWxlKV19IHsKLQotIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIyBNb2RpZnkgcG93ZXIgZG9tYWlucwotIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIyBUaGUgJ21vZGlmeV9wb3dlcl9kb21haW5zJyBwcm9jZWR1cmUgaXMgaW5jbHVkZWQgd2l0aCB0aGUgZm91bmRhdGlvbiBmbG93cwotIyB0byBoZWxwIGF1dG9tYXRlIHBvd2VyIGRvbWFpbiBtb2RpZmljYXRpb24uICBUbyBlbmFibGUgdGhpcywgcGxlYXNlIHNldCB0aGUKLSMgYXBwcm9wcmlhdGUgdmFyaWFibGVzIGluIHRoZSBscF9jb25maWcudGNsIGFuZCB1bmNvbW1lbnQgdGhlIGZvbGxvd2luZyBjb21tYW5kCi0jCi0KLSMJOjpGRl9FREk6Om1vZGlmeV9wb3dlcl9kb21haW5zCi0gICAgCi0jIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0jIFBvd2VyIHN3aXRjaCBpbnNlcnRpb24KLSMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSMgVGhlICdhZGRfcG93ZXJfc3dpdGNoZXMnIHByb2NlZHVyZSBpcyBpbmNsdWRlZCB3aXRoIHRoZSBmb3VuZGF0aW9uIGZsb3dzCi0jIHRvIGNvdmVyIGNvbW1vbiBwb3dlciBzd2l0Y2ggaW5zZXJ0aW9uIHNjZW5hcmlvcy4gIFRvIHVzZSwgc2V0IHRoZSBhcHByb3ByaWF0ZQotIyB2YXJpYWJsZXMgaW4gdGhlIGxwX2NvbmZpZy50Y2wgZmlsZSBhbmQgdW5jb21tZW50IHRoZSBmb2xsb3dpbmcgY29tbWFuZC4KLSMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSMgTk9URTogVGhpcyBwcm9jZWR1cmUgIHdpbGwgTk9UIENPVkVSIFRIRSBBTEwgVEhFIE9QVElPTlMgaW4gYWRkUG93ZXJTd2l0Y2gKLSMgRm9yIG1vcmUgY29tcGxpY2F0ZWQgc2NlbmFyaW9zLCBwbGVhc2UgbWFudWFsbHkgYWRkIHRoZSBhZGRQb3dlclN3aXRjaCBjb21tYW5kCi0jIGhlcmUgd2l0aCB0aGUgbmVjZXNzYXJ5IG9wdGlvbnMuCi0jIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0KLSMJOjpGRl9FREk6OmFkZF9wb3dlcl9zd2l0Y2hlcwotCi0jfQotCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSMjIyBmbG9vcnBsYW4KLSMjIyAgIC0gRGllIGNyZWF0aW9uLCByZWxhdGl2ZSBwbGFjZW1lbnQgZm9yIG1hY3JvJ3MvSVAncwotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi1zb3VyY2UgUExVRy9mbG9vcnBsYW4udGNsCi0KLSMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSMgTW9kaWZ5IHBvd2VyIGRvbWFpbnMsICBtb2RpZnlfcG93ZXJfZG9tYWluIHByb2MuIGlzIGRlZmluZWQgaW4gdXRpbHMudGNsCi0jIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi06OkZGX0VESTo6bW9kaWZ5X3Bvd2VyX2RvbWFpbnMKLQotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0jcm93IGNyZWF0aW9uIGZvciBwb3dlciBkb21haW5zCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLXNvdXJjZSBQTFVHL2NyZWF0ZV9yb3dzLnRjbAotIAotIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIyBQb3dlciBzd2l0Y2ggaW5zZXJ0aW9uOyB0aGlzIHByb2MuIHdpbGwgbm90IGNvdmVyIHRoZSBhbGwgdGhlIG9wdGlvbnMgaW4gYWRkUG93ZXJTd2l0Y2gKLSMgY29tbWFuZCBidXQgaXQgaGFzIGFsbCB0aGUgYmFzaWMgbmVjZXNzYXJ5IG9wdGlvbnMgcmVxdWlyZWQgZm9yIHJpbmcgYW5kIGNvbHVtbiBzd2ljdGgKLSMgaW5zZXJ0aW9uCi0jIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi06OkZGX0VESTo6YWRkX3Bvd2VyX3N3aXRjaGVzCi0KLQotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotIyMjIENyZWF0ZSBoYWxvJ3MgZm9yIG1hY3JvcwotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotc291cmNlIFBMVUcvY3JlYXRlX2hhbG9zLnRjbAotCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0jIyMgUGxhY2UgRGVuc2l0eSBjb25zdHJhaW5zIGJldHdlZW4gbWVtb3JpZXMuIFRoaXMgd2lsbCBoZWxwIGluIHJvdXRpbmcgYXMgd2VsbCBhcyBiZXR0ZXIgdGltaW5nIG9wdGltaXphdGlvbgotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCi1jcmVhdGVEZW5zaXR5QXJlYSAyNDYuMjg5IDI0NS40NjcgMTk5MS43ODYgMjYyLjE3NiA1MAotY3JlYXRlRGVuc2l0eUFyZWEgNDY1Ljc2OTUgMjYzLjUxNCA0NzguNzQxIDkxOS4zODMgNTAKLWNyZWF0ZURlbnNpdHlBcmVhIDY4My42NTIgMjYzLjI3NjUgNjk3LjEwNyA5MTkuNTMxNSA1MAotY3JlYXRlRGVuc2l0eUFyZWEgOTAxLjgyOSAyNjMuMjY1NSA5MTUuMzMwNSA5MTkuNTM4IDUwCi1jcmVhdGVEZW5zaXR5QXJlYSAxMTE5LjE2OTUgMjYzLjQxNjUgMTEzNC40MDkgOTE5LjYwNzUgNTAKLWNyZWF0ZURlbnNpdHlBcmVhIDEzMzguMjEgMjYzLjI2MTUgMTM1MS44MzQgOTE5LjQzNiA1MAotY3JlYXRlRGVuc2l0eUFyZWEgMTU1Ni40NDE1IDI2My40NTggMTU2OS44MDggOTE5LjU5NiA1MAotY3JlYXRlRGVuc2l0eUFyZWEgMTc3NC42MzI1IDI2My42NDUgMTc4Ny45NTE1IDkxOS41MjIgNTAKLQotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotIyMjIEFERCBJTyBGSUxMRVIgQ0VMTFMuIFRoZXNlIGFyZSBpbnNlcnRlZCBmcm9tIGxhcmdlc3QgdG8gc21hbGxlc3QKLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLWFkZElvRmlsbGVyIC1jZWxsIElPRklMTEVSMjAKLWFkZElvRmlsbGVyIC1jZWxsIElPRklMTEVSMTAKLWFkZElvRmlsbGVyIC1jZWxsIElPRklMTEVSNQotYWRkSW9GaWxsZXIgLWNlbGwgSU9GSUxMRVIxCi1hZGRJb0ZpbGxlciAtY2VsbCBJT0ZJTExFUjA1Ci1hZGRJb0ZpbGxlciAtY2VsbCBJT0ZJTExFUjAwMDUKZGlmZiAtLWdpdCBhL2Zsb3cvcG5yL0VYQU1QTEVTL0lOTk9WVVMvUExVRy9wb3N0X3BsYWNlLnRjbCBiL2Zsb3cvcG5yL0VYQU1QTEVTL0lOTk9WVVMvUExVRy9wb3N0X3BsYWNlLnRjbApkZWxldGVkIGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggZGQ4ZWNhMi4uMDAwMDAwMAotLS0gYS9mbG93L3Buci9FWEFNUExFUy9JTk5PVlVTL1BMVUcvcG9zdF9wbGFjZS50Y2wKKysrIC9kZXYvbnVsbApAQCAtMSwyMzggKzAsMCBAQAotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSMgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBPU1QtUExBQ0UgUExVRy1JTgotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSMKLSMgVGhpcyBwbHVnLWluIHNjcmlwdCBpcyBjYWxsZWQgYWZ0ZXIgcGxhY2VEZXNpZ24gZnJvbSB0aGUgcnVuX3BsYWNlLnRjbCBzY3JpcHQuCi0jCi0jIEV4YW1wbGUgdGFza3MgaW5jbHVkZToKLSMgICAgICAgICAgLSBzdGFuZGFyZCBjZWxsIHJhaWwgY3JlYXRpb24gCi0jCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotIyAKLSMgU3RhbmRhcmQgY2VsbCByYWlsIGNyZWF0aW9uIGZvciBwb3dlciBkb21haW5zIGlmIHRoZXkgYXJlIGNyZWF0ZWQvbW9kaWZpZWQKLSMgZHVyaW5nIHRoZSBmbG93Ci0jIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0KLSNzcm91dGUgXAotIyAgIC1ub0Jsb2NrUGlucyBcCi0jICAgLW5vUGFkUmluZ3MgXAotIyAgIC1ub1BhZFBpbnMgXAotIyAgIC1ub1N0cmlwZXMgXAotIyAgIC1zdHJhaWdodENvbm5lY3Rpb25zIHsgc3RyYWlnaHRXaXRoRHJjQ2xlYW4gc3RyYWlnaHRXaXRoQ2hhbmdlcyB9IFwKLSMgICAtbmV0cyB7IDxwL2cgbmV0cz4gfSBcCi0jICAgLXBvd2VyRG9tYWlucyB7IDxwb3dlciBkb21haW4+IH0gIFwKLSMgICAtdGFyZ2V0VmlhVG9wTGF5ZXIgPGxheWVyPiBcCi0jICAgLWNyb3Nzb3ZlclZpYVRvcExheWVyIDxsYXllcj4gXAotIyAgIC12ZXJib3NlCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotIyMjIHN0YW5kYXJkIGNlbGwgcmFpbCBjcmVhdGlvbgotIyMjIE5vdGU6IEJlZm9yZSBjcmVhdGluZyBzdGQuIGNlbGwgcmFpbHMsIHVzZXIgc2hvdWxkIGNoZWNrIHN0YWNrIHZpYSBsaW1pdCBmcm9tIAotIyMjIHRlY2guIGxlZi9EUkMgIHJ1bGVzIGJhc2VkIG9uIHRoaXMgaGUgaGFzIHRvIHBhc3MgcHJvcGVyIHZhbHVlcyBmb3IgCi0jIyMgdGFyZ2V0VmlhVG9wTGF5ZXIvY3Jvc3NvdmVyVmlhVG9wTGF5ZXIKLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0KLSMjIyBzdGQuIHJhaWxzIGZvciBQRHVhcnQgcG93ZXIgZG9tYWluCi1zcm91dGUgXAotICAgICAtbm9CbG9ja1BpbnMgXAotICAgICAtbm9QYWRSaW5ncyBcCi0gICAgIC1ub1BhZFBpbnMgXAotICAgICAtbm9TdHJpcGVzIFwKLSAgICAgLXN0cmFpZ2h0Q29ubmVjdGlvbnMgeyBzdHJhaWdodFdpdGhEcmNDbGVhbiBzdHJhaWdodFdpdGhDaGFuZ2VzIH0gXAotICAgICAtbmV0cyB7IFZERHVhcnQgVlNTc29jIH0gXAotICAgICAtcG93ZXJEb21haW5zIHsgUER1YXJ0IH0gIFwKLSAgICAgLXRhcmdldFZpYVRvcExheWVyIDQgXAotICAgICAtY3Jvc3NvdmVyVmlhVG9wTGF5ZXIgNCBcCi0gICAgIC12ZXJib3NlCi0KLSMjIyBzdGQuIHJhaWxzIGZvciBQRGR2ZnMgcG93ZXIgZG9tYWluCi1zcm91dGUgXAotICAgICAgIC1ub0Jsb2NrUGlucyBcCi0gICAgICAgLW5vUGFkUmluZ3MgXAotICAgICAgIC1ub1BhZFBpbnMgXAotICAgICAgIC1ub1N0cmlwZXMgXAotICAgICAgIC1zdHJhaWdodENvbm5lY3Rpb25zIHsgc3RyYWlnaHRXaXRoRHJjQ2xlYW4gc3RyYWlnaHRXaXRoQ2hhbmdlcyB9IFwKLSAgICAgICAtbmV0cyB7IFZERGR2ZnMgVlNTc29jIH0gXAotICAgICAgIC1wb3dlckRvbWFpbnMgeyBQRGR2ZnMgfSAgXAotICAgICAgIC10YXJnZXRWaWFUb3BMYXllciA0IFwKLSAgICAgICAtY3Jvc3NvdmVyVmlhVG9wTGF5ZXIgNCBcCi0gICAgICAgLXZlcmJvc2UKLQotZWRpdFNlbGVjdCAtdHlwZSBTcGVjaWFsIC1sYXllcnMge00zIE00IE01IE03fSAgLW5ldHMge1ZERGR2ZnMgVlNTc29jfSAtc2hhcGVzIHtDT1JFV0lSRX0gLXN0YXR1cyB7Uk9VVEVEIEZJWEVEfQotCi1kZWxldGVTZWxlY3RlZEZyb21GUGxhbgotCi0jIyMgc3RkLiByYWlscyBmb3IgUERzbWMgcG93ZXIgZG9tYWluCi1zcm91dGUgXAotICAgIC1ub0Jsb2NrUGlucyBcCi0gICAgLW5vUGFkUmluZ3MgXAotICAgIC1ub1BhZFBpbnMgXAotICAgIC1ub1N0cmlwZXMgXAotICAgLXN0cmFpZ2h0Q29ubmVjdGlvbnMgeyBzdHJhaWdodFdpdGhEcmNDbGVhbiBzdHJhaWdodFdpdGhDaGFuZ2VzIH0gXAotICAgLW5ldHMgeyBWRERzbWMgVlNTc29jIH0gXAotICAgLXBvd2VyRG9tYWlucyB7IFBEc21jIH0gIFwKLSAgIC10YXJnZXRWaWFUb3BMYXllciA0IFwKLSAgIC1jcm9zc292ZXJWaWFUb3BMYXllciA0IFwKLSAgIC1sYXllckNoYW5nZVRvcExheWVyIDQgXAotICAgLXZlcmJvc2UKLQotIyMjIHN0ZC4gcmFpbHMgZm9yIFBEd2FrZXVwIHBvd2VyIGRvbWFpbgotc3JvdXRlIFwKLSAgICAtbm9CbG9ja1BpbnMgXAotICAgIC1ub1BhZFJpbmdzIFwKLSAgICAtbm9QYWRQaW5zIFwKLSAgICAtbm9TdHJpcGVzIFwKLSAgICAtc3RyYWlnaHRDb25uZWN0aW9ucyB7IHN0cmFpZ2h0V2l0aERyY0NsZWFuIHN0cmFpZ2h0V2l0aENoYW5nZXMgfSBcCi0gICAgLW5ldHMgeyBWRER3YWtlIFZTU3NvYyB9IFwKLSAgICAtcG93ZXJEb21haW5zIHsgUER3YWtldXAgfSBcCi0gICAgLXRhcmdldFZpYVRvcExheWVyIDQgXAotICAgIC1jcm9zc292ZXJWaWFUb3BMYXllciA0IFwKLSAgICAtbGF5ZXJDaGFuZ2VUb3BMYXllciA0IFwKLSAgICAtdmVyYm9zZQotCi0jIyMgc3RkLiByYWlscyBmb3IgUERwbGwgcG93ZXIgZG9tYWluCi1zcm91dGUgXAotICAgICAtbm9CbG9ja1BpbnMgXAotICAgICAtbm9QYWRSaW5ncyBcCi0gICAgIC1ub1BhZFBpbnMgXAotICAgICAtbm9TdHJpcGVzIFwKLSAgICAgLXN0cmFpZ2h0Q29ubmVjdGlvbnMgeyBzdHJhaWdodFdpdGhEcmNDbGVhbiBzdHJhaWdodFdpdGhDaGFuZ2VzIH0gXAotICAgICAtbmV0cyB7IFZERHBsbCBWU1Nzb2MgfSBcCi0gICAgIC1wb3dlckRvbWFpbnMgeyBQRHBsbCB9ICBcCi0gICAgIC10YXJnZXRWaWFUb3BMYXllciA0IFwKLSAgICAgLWNyb3Nzb3ZlclZpYVRvcExheWVyIDQgXAotICAgICAtbGF5ZXJDaGFuZ2VUb3BMYXllciA0IFwKLSAgICAgLXZlcmJvc2UKLQotCi0jIyMgQmxvY2sgUGluIHRvIGNvbm5lY3Rpb25zIGZvciBpX01vZHVsZV9VCi1zZWxlY3RJbnN0IGlfTW9kdWxlX1UKLQotc3JvdXRlIFwKLSAgICAgLW5vUGFkUmluZ3MgXAotICAgICAtbm9Db3JlUGlucyBcCi0gICAgIC1ub1BhZFBpbnMgXAotICAgICAtbm9TdHJpcGVzIFwKLSAgICAgLWJsb2NrUGluIHsgYWxsUGlucyB9IFwKLSAgICAgLWJsb2NrUGluTWF4TGF5ZXIgNiBcCi0gICAgIC10YXJnZXRWaWFUb3BMYXllciA2IFwKLSAgICAgLWNyb3Nzb3ZlclZpYVRvcExheWVyIDYgXAotICAgICAtc3RyYWlnaHRDb25uZWN0aW9ucyB7IHN0cmFpZ2h0V2l0aERyY0NsZWFuIH0gXAotICAgICAtbmV0cyB7IFZERGR2ZnMgVlNTc29jIH0gXAotICAgICAtbXNnUmF0ZSAxIFwKLSAgICAgLWxheWVyQ2hhbmdlVG9wTGF5ZXIgNiBcCi0gICAgIC1ibG9ja3MgbmFtZWQgXAotICAgICAtYmxvY2tOYW1lcyB7IGlfTW9kdWxlX1UgfSBcCi0gICAgIC12ZXJib3NlIAotCi1kZXNlbGVjdEFsbAotCi0jIyMgQmxvY2sgUGluIHRvIGNvbm5lY3Rpb25zIGZvciBpX01vZHVsZV9CCi1zZWxlY3RJbnN0IGlfTW9kdWxlX0IKLQotc3JvdXRlIFwKLSAgICAgLW5vUGFkUmluZ3MgXAotICAgICAtbm9Db3JlUGlucyBcCi0gICAgIC1ub1BhZFBpbnMgXAotICAgICAtbm9TdHJpcGVzIFwKLSAgICAgLWJsb2NrUGluIHsgYWxsUGlucyB9IFwKLSAgICAgLWJsb2NrUGluTWF4TGF5ZXIgNiBcCi0gICAgIC10YXJnZXRWaWFUb3BMYXllciA2IFwKLSAgICAgLWNyb3Nzb3ZlclZpYVRvcExheWVyIDYgXAotICAgICAtc3RyYWlnaHRDb25uZWN0aW9ucyB7IHN0cmFpZ2h0V2l0aERyY0NsZWFuIH0gXAotICAgICAtbmV0cyB7IFZERGR2ZnMgVlNTc29jIH0gXAotICAgICAtbXNnUmF0ZSAxIFwKLSAgICAgLWxheWVyQ2hhbmdlVG9wTGF5ZXIgNiBcCi0gICAgIC1ibG9ja3MgbmFtZWQgXAotICAgICAtYmxvY2tOYW1lcyB7IGlfTW9kdWxlX0IgfSBcCi0gICAgIC12ZXJib3NlIAotCi0KLWRlc2VsZWN0QWxsCi0KLWNsZWFyRHJjCi0KLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSMjIyBDbGVhbiBhbnkgRFJDIAotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCi1kZXNlbGVjdEFsbAotdWlTZXRUb29sIGN1dFdpcmUKLWVkaXRDdXRXaXJlIC14MSAyNTQuMDAwNSAteTEgMTYzMS42MTcgLXgyIDI1NC4wMDA1IC15MiAxNjIyLjc4Ci1lZGl0Q3V0V2lyZSAteDEgMjMxMS4wNzM1IC15MSAxNjI5LjY0NzUgLXgyIDIzMTEuMDczNSAteTIgMTYyMi45Mzc1Ci11aVNldFRvb2wgc2VsZWN0Ci0KLQotZGVzZWxlY3RBbGwKLXNlbGVjdFdpcmUgMjU0LjAwMDAgMTYyNy4yMzUwIDIzMTEuMDc1MCAxNjI3LjU2NTAgMSBWRERkdmZzCi1kZWxldGVTZWxlY3RlZEZyb21GUGxhbgotCi1kZXNlbGVjdEFsbAotZWRpdEN1dFdpcmUgLXgxIDIzNTAuMDI1IC15MSAyMjc3LjQxIC14MiAyMzUwLjAyNSAteTIgMjIyNC4zNzQKLXVpU2V0VG9vbCBzZWxlY3QKLWVkaXRTZWxlY3QgLXR5cGUgU3BlY2lhbCAtbmV0cyB7VkREcGxsIFZTU3NvY30gLWxheWVycyBNMSAtZGlyZWN0aW9uIEggLWFyZWEgMjM3NC4yMzUgMjIyNC4zMTUgMjc2Ni43OSAyMjc4LjIgLXNoYXBlcyB7Rk9MTE9XUElOIENPUkVXSVJFfSAtc3RhdHVzIHtST1VURUQgRklYRUR9Ci1kZWxldGVTZWxlY3RlZEZyb21GUGxhbgotCi1kZXNlbGVjdEFsbAotCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotIyMjIHNyb3V0ZSBjcmVhdGVzIHNwYWNpbmcvc2hvcnQgdmlvbGF0aW9ucyB3aXRoIE0xIGhvb2stdXAgdG8gdGhlIHJpbmcgYXJvdW5kIFNNUyBibG9jaywKLSMjIyB3b3JrIGFyb3VuZCBpcyBkZWxldGluZyBhbGwgTTEgcm93cyBmcm9tIGNlbGwgYmxvY2thZ2UgYXJlYSBhcm91bmQgU01DIGJsb2NrIAotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLQotZGVzZWxlY3RBbGwKLXNldExheWVyUHJlZmVyZW5jZSBhbGxNMCAtaXNWaXNpYmxlIDAKLXNldExheWVyUHJlZmVyZW5jZSBhbGxNMSAtaXNWaXNpYmxlIDEKLXNldExheWVyUHJlZmVyZW5jZSBhbGxNMiAtaXNWaXNpYmxlIDAKLXNldExheWVyUHJlZmVyZW5jZSBhbGxNMyAtaXNWaXNpYmxlIDAKLXNldExheWVyUHJlZmVyZW5jZSBhbGxNNCAtaXNWaXNpYmxlIDAKLXNldExheWVyUHJlZmVyZW5jZSBhbGxNNSAtaXNWaXNpYmxlIDAKLXNldExheWVyUHJlZmVyZW5jZSBhbGxNNiAtaXNWaXNpYmxlIDAKLXNldExheWVyUHJlZmVyZW5jZSBhbGxNNyAtaXNWaXNpYmxlIDAKLXNldExheWVyUHJlZmVyZW5jZSBhbGxNOCAtaXNWaXNpYmxlIDAKLXNldExheWVyUHJlZmVyZW5jZSBhbGxNOSAtaXNWaXNpYmxlIDAKLXNldExheWVyUHJlZmVyZW5jZSBhbGxNMUNvbnQgLWlzVmlzaWJsZSAwCi1zZXRMYXllclByZWZlcmVuY2UgYWxsTTJDb250IC1pc1Zpc2libGUgMAotc2V0TGF5ZXJQcmVmZXJlbmNlIGFsbE0zQ29udCAtaXNWaXNpYmxlIDAKLXNldExheWVyUHJlZmVyZW5jZSBhbGxNNENvbnQgLWlzVmlzaWJsZSAwCi1zZXRMYXllclByZWZlcmVuY2UgYWxsTTVDb250IC1pc1Zpc2libGUgMAotc2V0TGF5ZXJQcmVmZXJlbmNlIGFsbE02Q29udCAtaXNWaXNpYmxlIDAKLXNldExheWVyUHJlZmVyZW5jZSBhbGxNN0NvbnQgLWlzVmlzaWJsZSAwCi1zZXRMYXllclByZWZlcmVuY2UgYWxsTThDb250IC1pc1Zpc2libGUgMAotc2V0TGF5ZXJQcmVmZXJlbmNlIGFsbE05Q29udCAtaXNWaXNpYmxlIDAKLWRlc2VsZWN0QWxsCi0KLXNldExheWVyUHJlZmVyZW5jZSBpbnN0IC1pc1Zpc2libGUgMAotCi1kZXNlbGVjdEFsbAotd2luZG93U2VsZWN0IDI2My45MTEgMTMwOS4wNzYgNDU1LjI4NCAxNTY1Ljc4Ngotd2luZG93VG9nZ2xlU2VsZWN0IDI3OS45MTAgMTMyNC42OTggNDQwLjA2NyAxNTUwLjI5MgotZGVsZXRlU2VsZWN0ZWRGcm9tRlBsYW4KLWRlc2VsZWN0QWxsCi1zZXRMYXllclByZWZlcmVuY2UgaW5zdCAtaXNWaXNpYmxlIDEKLQotc2V0TGF5ZXJQcmVmZXJlbmNlIGFsbE0wIC1pc1Zpc2libGUgMQotc2V0TGF5ZXJQcmVmZXJlbmNlIGFsbE0xIC1pc1Zpc2libGUgMQotc2V0TGF5ZXJQcmVmZXJlbmNlIGFsbE0yIC1pc1Zpc2libGUgMQotc2V0TGF5ZXJQcmVmZXJlbmNlIGFsbE0zIC1pc1Zpc2libGUgMQotc2V0TGF5ZXJQcmVmZXJlbmNlIGFsbE00IC1pc1Zpc2libGUgMQotc2V0TGF5ZXJQcmVmZXJlbmNlIGFsbE01IC1pc1Zpc2libGUgMQotc2V0TGF5ZXJQcmVmZXJlbmNlIGFsbE02IC1pc1Zpc2libGUgMQotc2V0TGF5ZXJQcmVmZXJlbmNlIGFsbE03IC1pc1Zpc2libGUgMQotc2V0TGF5ZXJQcmVmZXJlbmNlIGFsbE04IC1pc1Zpc2libGUgMQotc2V0TGF5ZXJQcmVmZXJlbmNlIGFsbE05IC1pc1Zpc2libGUgMQotc2V0TGF5ZXJQcmVmZXJlbmNlIGFsbE0xQ29udCAtaXNWaXNpYmxlIDEKLXNldExheWVyUHJlZmVyZW5jZSBhbGxNMkNvbnQgLWlzVmlzaWJsZSAxCi1zZXRMYXllclByZWZlcmVuY2UgYWxsTTNDb250IC1pc1Zpc2libGUgMQotc2V0TGF5ZXJQcmVmZXJlbmNlIGFsbE00Q29udCAtaXNWaXNpYmxlIDEKLXNldExheWVyUHJlZmVyZW5jZSBhbGxNNUNvbnQgLWlzVmlzaWJsZSAxCi1zZXRMYXllclByZWZlcmVuY2UgYWxsTTZDb250IC1pc1Zpc2libGUgMQotc2V0TGF5ZXJQcmVmZXJlbmNlIGFsbE03Q29udCAtaXNWaXNpYmxlIDEKLXNldExheWVyUHJlZmVyZW5jZSBhbGxNOENvbnQgLWlzVmlzaWJsZSAxCi1zZXRMYXllclByZWZlcmVuY2UgYWxsTTlDb250IC1pc1Zpc2libGUgMQotCi0jIyMgVHJpbSBtZXRhbAotZWRpdFNlbGVjdCAtbmV0cyB7VkREZHZmcyBWU1Nzb2N9IC1sYXllciB7TTIgTTR9IC10eXBlIFNwZWNpYWwKLWVkaXRUcmltIC1zZWxlY3RlZAotZGVzZWxlY3RBbGwKLQotdWlTZXRUb29sIHNlbGVjdApkaWZmIC0tZ2l0IGEvZmxvdy9wbnIvRVhBTVBMRVMvSU5OT1ZVUy9QTFVHL3Bvc3RfcHJlY3RzLnRjbCBiL2Zsb3cvcG5yL0VYQU1QTEVTL0lOTk9WVVMvUExVRy9wb3N0X3ByZWN0cy50Y2wKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDg3NWYyZDguLjAwMDAwMDAKLS0tIGEvZmxvdy9wbnIvRVhBTVBMRVMvSU5OT1ZVUy9QTFVHL3Bvc3RfcHJlY3RzLnRjbAorKysgL2Rldi9udWxsCkBAIC0xLDQ3ICswLDAgQEAKLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSMgICAgICAgICAgICAgICAgICAgICAgUE9TVC1QUkVfQ1RTIFBMVUctSU4gCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0jCi0jIFRoaXMgcGx1Zy1pbiBpcyBjYWxsZWQgYWZ0ZXIgb3B0RGVzaWduIC1wcmVDVFMgZnJvbSB0aGUgcnVuX3ByZWN0cy50Y2wgZmxvdwotIyBzY3JpcHQuICBUaGUgdXNlciBjYW4gdXNlIHRoaXMgcGx1Zy1pbiBmb3I6Ci0jCi0jIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0jICAgICAtIFNlY29uZGFyeSBwb3dlciBwaW4gcm91dGluZyBmb3IgbG93IHBvd2VyIGNlbGxzIAotIyAgICAgICAgLSBTdGF0ZSByZXRlbnRpb24gZmxvcHMKLSMgICAgICAgIC0gQWx3YXlzLW9uLWJ1ZmZlcnMKLSMgICAgICAgIC0gTGV2ZWwtc2hpZnRlcnMKLSMgICAgIC0gQ2hlY2sgdGhlIGNvbm5lY3Rpdml0eSBhbmQgZ2VvbWV0cnkgb24gdGhlc2UgbmV0cwotIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIyBCZWxvdyBhcmUgc29tZSBleGFtcGxlIGNvbW1hbmRzIC4uLgotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0KLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotIyBTZWNvbmRhcnkgcG93ZXIgcm91dGluZyBmb3IgU1JQRy9BT04vTFZMIGNlbGxzIHVzaW5nIG5hbm9yb3V0ZSAuLi4KLSMgSXQgcmVxdWlyZXMgdmFycyhzZWNvbmRhcnlfcGcsY2VsbF9waW5fcGFpcnMpIHRvIGJlIGRlZmluZWQgaW4gdGhlIGxwX2NvbmZpZy50Y2wKLSMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSMgTk9URTogSW4gdGhlIGVhcmx5IHN0YWdlIG9mIHRoZSBmbG93IChiZWZvcmUgQ1RTKSBpZiB1c2VyIHdhbnRzIHRvIGVzdGltYXRlIHRoZQotIyByb3V0aW5nIHJlc291cmNlIGltcGFjdCBkdWUgdG8gc2Vjb25kYXJ5IHBnIHBpbiByb3V0aW5nLCBoZSBjYW4gZG8gc2Vjb25kYXJ5IHBnIHBpbgotIyBjb25uZWN0aW9uIGJlZm9yZSBDVFMgT1IgaWYgdXNlciBlbmFibGVzICJ2YXJzKHJvdXRlX3NlY29uZGFyeV9wZ19uZXRzKSIgYXMgdHJ1ZSBpbgotIyBPVkVSTEFZL2xwX2NvbmZpZy50Y2wgdGhlbiBzYW1lIHdvdWxkIGJlIGRvbmUgYmVmb3JlIHRoZSByb3V0aW5nIHN0YWdlIGFsc28uCi0jIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi06OkZGX0VESTo6cm91dGVfc2Vjb25kYXJ5X3BnX25ldHMKLQotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0jIyBDaGVjayBmb3IgR2VvbWV0cnkgYW5kIGNvbm5lY3Rpdml0eSB2aW9sYXRpb25zIG9uIHBvd2VyIG5ldHMKLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotY2xlYXJEcmMKLQotdmVyaWZ5Q29ubmVjdGl2aXR5IFwKLSAgIC10eXBlIHNwZWNpYWwgXAotICAgLW5vQW50ZW5uYSBcCi0gICAtbmV0cyB7IFZTU3NvYyBWRERkdmZzIFZERHcgVkREc21jIFZERHVhcnQgVkREd2FrZSBWRERwbGwgfSBcCi0gICAtcmVwb3J0ICR2YXJzKHJwdF9kaXIpLyR2YXJzKGRlc2lnbikuY29ubi5ycHQKLQotdmVyaWZ5R2VvbWV0cnkgXAotICAgLWFsbG93UGFkRmlsbGVyQ2VsbHNPdmVybGFwIFwKLSAgIC1hbGxvd1JvdXRpbmdCbGtnUGluT3ZlcmxhcCBcCi0gICAtYWxsb3dSb3V0aW5nQ2VsbEJsa2dPdmVybGFwIFwKLSAgIC1lcnJvciAxMDAwIFwKLSAgIC1yZXBvcnQgJHZhcnMocnB0X2RpcikvJHZhcnMoZGVzaWduKS5nZW9tLnJwdAotCi1jbGVhckRyYwpkaWZmIC0tZ2l0IGEvZmxvdy9wbnIvRVhBTVBMRVMvSU5OT1ZVUy9QTFVHL3Bvc3Rfcm91dGUudGNsIGIvZmxvdy9wbnIvRVhBTVBMRVMvSU5OT1ZVUy9QTFVHL3Bvc3Rfcm91dGUudGNsCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDc1NQppbmRleCA1MzA5NWNjLi4wMDAwMDAwCi0tLSBhL2Zsb3cvcG5yL0VYQU1QTEVTL0lOTk9WVVMvUExVRy9wb3N0X3JvdXRlLnRjbAorKysgL2Rldi9udWxsCkBAIC0xLDIyICswLDAgQEAKLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQT1NULVJPVVRFIFBMVUctSU4gCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0jCi0jIFRoaXMgcGx1Zy1pbiBzY3JpcHQgaXMgY2FsbGVkIGFmdGVyIHJvdXRlRGVzaWduIGZyb20gdGhlIHJ1bl9yb3V0ZS50Y2wgZmxvdyBzY3JpcHQuCi0jCi0jIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0jIEV4YW1wbGUgdXNhZ2UgbWF5IGJlIHBvd2VyIHN3aXRjaCBvcHRpbWl6YXRpb246Ci0jIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0KLSNzZXQgdmFycyhzd2l0Y2hfY2VsbF9maWxlKSAkdmFycyhkYXRhX3Jvb3QpL3Bvd2VyX3N3aXRjaF9jZWxsLnR4dAotI3NldCB2YXJzKHN3aXRjaF9jZWxsX2lyX2Ryb3ApIDAuMQotCi0jb3B0UG93ZXJTd2l0Y2ggLXJlYWRQb3dlclN3aXRjaENlbGwgJHZhcnMoc3dpdGNoX2NlbGxfZmlsZSkgXAotIyAgICAgICAgICAgICAgIC1lZmZvcnQgaGlnaCBcCi0jICAgICAgICAgICAgICAgLWNvbW1pdCAxIFwKLSMgICAgICAgICAgICAgICAtbWF4U3dpdGNoSVJEcm9wICR2YXJzKHN3aXRjaF9jZWxsX2lyX2Ryb3ApIFwKLSMgICAgICAgICAgICAgICAtcmVwb3J0RmlsZSAkdmFycyhycHRfZGlyKS9kZWxldGVkX3N3aXRjaF9jZWxscy50eHQKLQotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCi0KZGlmZiAtLWdpdCBhL2Zsb3cvcG5yL0VYQU1QTEVTL0lOTk9WVVMvUExVRy9wb3dlcl9wbGFubmluZy50Y2wgYi9mbG93L3Buci9FWEFNUExFUy9JTk5PVlVTL1BMVUcvcG93ZXJfcGxhbm5pbmcudGNsCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDc1NQppbmRleCBhNjM0MzBiLi4wMDAwMDAwCi0tLSBhL2Zsb3cvcG5yL0VYQU1QTEVTL0lOTk9WVVMvUExVRy9wb3dlcl9wbGFubmluZy50Y2wKKysrIC9kZXYvbnVsbApAQCAtMSwxMTQzICswLDAgQEAKLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSMjIyBSaW5ncyBjcmVhdGlvbnMgZm9yIEJsb2NrcyBhbmQgZm9yIHBvd2VyIERvbWFpbnMKLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLQotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotIyMjIEJsb2NrIFJpbmcgY3JlYXRpb24gYXJvdW5kIHRoZSAiVUFSVCIgYmxvY2sgb24gTTQvTTUKLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLWRlc2VsZWN0QWxsCi1zZWxlY3RPYmplY3QgTW9kdWxlIGlfYXBiX3N1YnN5c3RlbS9pX3VhcnQxCi0KLWFkZFJpbmcgXAotICAgLXNwYWNpbmdfYm90dG9tIDEgXAotICAgLXdpZHRoX2xlZnQgMy4yIFwKLSAgIC13aWR0aF9ib3R0b20gMy4yIFwKLSAgIC13aWR0aF90b3AgMy4yIFwKLSAgIC13aWR0aF9yaWdodCAzLjIgXAotICAgLXNwYWNpbmdfdG9wIDEgXAotICAgLWxheWVyX2JvdHRvbSBNNSBcCi0gICAtc3RhY2tlZF92aWFfdG9wX2xheWVyIE01ICBcCi0gICAtYXJvdW5kIHBvd2VyX2RvbWFpbiBcCi0gICAtam9nX2Rpc3RhbmNlIDAuMSBcCi0gICAtb2Zmc2V0X2JvdHRvbSAwLjMgXAotICAgLWxheWVyX3RvcCBNNSBcCi0gICAtdGhyZXNob2xkIDAuMSBcCi0gICAtb2Zmc2V0X2xlZnQgMC4zIFwKLSAgIC1zcGFjaW5nX3JpZ2h0IDEgXAotICAgLXNwYWNpbmdfbGVmdCAxIFwKLSAgIC10eXBlIGJsb2NrX3JpbmdzIFwKLSAgIC1vZmZzZXRfcmlnaHQgMC4zIFwKLSAgIC1vZmZzZXRfdG9wIDAuMyBcCi0gICAtbGF5ZXJfcmlnaHQgTTQgXAotICAgLW5ldHMge1ZERHVhcnQgVlNTc29jIFZERGR2ZnN9IFwKLSAgIC1zdGFja2VkX3ZpYV9ib3R0b21fbGF5ZXIgTTEgXAotICAgLWxheWVyX2xlZnQgTTQgXAotICAgLXNuYXBfd2lyZV9jZW50ZXJfdG9fZ3JpZCBHcmlkCi0KLWRlc2VsZWN0QWxsCi0gCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0jIyMgQmxvY2sgUmluZyBjcmVhdGlvbiBhcm91bmQgdGhlIFBEdyBwb3dlciBkb21haW4gb24gTTQvTTUKLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLXNlbGVjdE9iamVjdCBHcm91cCBQRHcgCi0KLWFkZFJpbmcgXAotICAgLXNwYWNpbmdfYm90dG9tIDEuMCBcCi0gICAtd2lkdGhfbGVmdCA0IFwKLSAgIC13aWR0aF9ib3R0b20gNCBcCi0gICAtd2lkdGhfdG9wIDQgXAotICAgLXNwYWNpbmdfdG9wIDEuMCBcCi0gICAtbGF5ZXJfYm90dG9tIE01IFwKLSAgIC1zdGFja2VkX3ZpYV90b3BfbGF5ZXIgTTkgXAotICAgLXdpZHRoX3JpZ2h0IDQgXAotICAgLWFyb3VuZCBwb3dlcl9kb21haW4gXAotICAgLWpvZ19kaXN0YW5jZSAwLjEgXAotICAgLW9mZnNldF9ib3R0b20gMiBcCi0gICAtbGF5ZXJfdG9wIE01IFwKLSAgIC10aHJlc2hvbGQgMC4xIFwKLSAgIC1vZmZzZXRfbGVmdCA0IFwKLSAgIC1zcGFjaW5nX3JpZ2h0IDEuMCBcCi0gICAtc3BhY2luZ19sZWZ0IDEuMCBcCi0gICAtdHlwZSBibG9ja19yaW5ncyBcCi0gICAtb2Zmc2V0X3JpZ2h0IDQgXAotICAgLW9mZnNldF90b3AgNCBcCi0gICAtbGF5ZXJfcmlnaHQgTTQgXAotICAgLW5ldHMgeyBWRER3IFZTU3NvYyBWRERkdmZzfSBcCi0gICAtc3RhY2tlZF92aWFfYm90dG9tX2xheWVyIE0xIFwKLSAgIC1sYXllcl9sZWZ0IE00ICBcCi0gICAtc25hcF93aXJlX2NlbnRlcl90b19ncmlkIEdyaWQKLQotZGVzZWxlY3RBbGwKLQotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotIyMjIEJsb2NrIFJpbmcgY3JlYXRpb24gYXJvdW5kIHRoZSBQRHdha2V1cCBwb3dlciBkb21haW4gb24gTTQvTTUKLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLXNlbGVjdE9iamVjdCBHcm91cCBQRHdha2V1cCAKLQotYWRkUmluZyBcCi0gICAtc3BhY2luZ19ib3R0b20gMS4wIFwKLSAgIC13aWR0aF9sZWZ0IDMuNiBcCi0gICAtd2lkdGhfYm90dG9tIDMuNiBcCi0gICAtd2lkdGhfdG9wIDMuNiBcCi0gICAtc3BhY2luZ190b3AgMS4wIFwKLSAgIC1sYXllcl9ib3R0b20gTTUgXAotICAgLXN0YWNrZWRfdmlhX3RvcF9sYXllciBNNSBcCi0gICAtd2lkdGhfcmlnaHQgMy42IFwKLSAgIC1hcm91bmQgcG93ZXJfZG9tYWluIFwKLSAgIC1qb2dfZGlzdGFuY2UgMC4xIFwKLSAgIC1vZmZzZXRfYm90dG9tIDEgXAotICAgLWxheWVyX3RvcCBNNSBcCi0gICAtdGhyZXNob2xkIDAuMSBcCi0gICAtb2Zmc2V0X2xlZnQgMSBcCi0gICAtc3BhY2luZ19yaWdodCAxLjAgXAotICAgLXNwYWNpbmdfbGVmdCAxLjAgXAotICAgLXR5cGUgYmxvY2tfcmluZ3MgXAotICAgLW9mZnNldF9yaWdodCAxIFwKLSAgIC1vZmZzZXRfdG9wIDEgXAotICAgLWxheWVyX3JpZ2h0IE00IFwKLSAgIC1uZXRzIHtWRER3YWtlIFZTU3NvYyBWRERkdmZzfSBcCi0gICAtc3RhY2tlZF92aWFfYm90dG9tX2xheWVyIE0xIFwKLSAgIC1sYXllcl9sZWZ0IE00ICBcCi0gICAtc25hcF93aXJlX2NlbnRlcl90b19ncmlkIEdyaWQKLQotZGVzZWxlY3RBbGwKLQotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotIyMjIEJsb2NrIFJpbmcgY3JlYXRpb24gYXJvdW5kIHRoZSBQTEwgbWFjcm8gb24gTTQvTTUKLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLXNlbGVjdEluc3QgaV9QTEwKLQotYWRkUmluZyBcCi0gICAtc3BhY2luZ19ib3R0b20gMS41IFwKLSAgIC13aWR0aF9sZWZ0IDQgXAotICAgLXdpZHRoX2JvdHRvbSA0IFwKLSAgIC13aWR0aF90b3AgMTAgXAotICAgLXNwYWNpbmdfdG9wIDMuMCBcCi0gICAtbGF5ZXJfYm90dG9tIE01IFwKLSAgIC1zdGFja2VkX3ZpYV90b3BfbGF5ZXIgTTkgXAotICAgLXdpZHRoX3JpZ2h0IDQgXAotICAgLWFyb3VuZCBzZWxlY3RlZCBcCi0gICAtam9nX2Rpc3RhbmNlIDAuMSBcCi0gICAtb2Zmc2V0X2JvdHRvbSA1NiBcCi0gICAtbGF5ZXJfdG9wIE01IFwKLSAgIC10aHJlc2hvbGQgMC4xIFwKLSAgIC1vZmZzZXRfbGVmdCA2MCBcCi0gICAtc3BhY2luZ19yaWdodCAxLjUgXAotICAgLXNwYWNpbmdfbGVmdCAxLjUgXAotICAgLXR5cGUgYmxvY2tfcmluZ3MgXAotICAgLW9mZnNldF9yaWdodCA0IFwKLSAgIC1vZmZzZXRfdG9wIDIwIFwKLSAgIC1sYXllcl9yaWdodCBNNCBcCi0gICAtbmV0cyB7VkREcGxsIFZTU3NvY30gXAotICAgLXN0YWNrZWRfdmlhX2JvdHRvbV9sYXllciBNMSBcCi0gICAtbGF5ZXJfbGVmdCBNNCBcCi0gICAtc25hcF93aXJlX2NlbnRlcl90b19ncmlkIEdyaWQKLQotYWRkUmluZyBcCi0gICAtc3BhY2luZ19ib3R0b20gMS41IFwKLSAgIC13aWR0aF9sZWZ0IDUgXAotICAgLXdpZHRoX2JvdHRvbSA1IFwKLSAgIC1zbmFwX3dpcmVfY2VudGVyX3RvX2dyaWQgR3JpZCBcCi0gICAtd2lkdGhfdG9wIDUgXAotICAgLWxlZnQgMCBcCi0gICAtdG9wIDAgXAotICAgLXNwYWNpbmdfdG9wIDEuNSBcCi0gICAtbGF5ZXJfYm90dG9tIE01IFwKLSAgIC1zdGFja2VkX3ZpYV90b3BfbGF5ZXIgTTUgXAotICAgLXdpZHRoX3JpZ2h0IDUgXAotICAgLWFyb3VuZCBzZWxlY3RlZCBcCi0gICAtam9nX2Rpc3RhbmNlIDAuMSBcCi0gICAtb2Zmc2V0X2JvdHRvbSA3MCBcCi0gICAtbGF5ZXJfdG9wIE01IFwKLSAgIC10aHJlc2hvbGQgMC4xIFwKLSAgIC1yaWdodCAwIFwKLSAgIC1vZmZzZXRfbGVmdCA3OCBcCi0gICAtc3BhY2luZ19yaWdodCAxLjUgXAotICAgLXNwYWNpbmdfbGVmdCAxLjUgXAotICAgLXR5cGUgYmxvY2tfcmluZ3MgXAotICAgLW9mZnNldF9yaWdodCA3OCBcCi0gICAtb2Zmc2V0X3RvcCA3OCBcCi0gICAtbGF5ZXJfcmlnaHQgTTQgXAotICAgLW5ldHMgVkREZHZmcyBcCi0gICAtc3RhY2tlZF92aWFfYm90dG9tX2xheWVyIE0xIFwKLSAgIC1sYXllcl9sZWZ0IE00Ci0KLWRlc2VsZWN0QWxsCi0KLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSMjIyBwYWQgdG8gcmluZyBjb25uZWN0aW9uIGZvciBQRHcgcG93ZXIgZG9tYWluCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi1jcmVhdGVPYnN0cnVjdCAyNDEuMDAwIDE4MjAuMDAwIDI2Mi4wMDAgMjEyNi4wMDAKLWNyZWF0ZU9ic3RydWN0IDc0My4wMDAgMjcyOS4wMDAgMjAzNS4wMDAgMjc1Ni4wMDAKLQotc3JvdXRlIFwKLSAgIC1ub0Jsb2NrUGlucyBcCi0gICAtbm9QYWRSaW5ncyBcCi0gICAtbm9Db3JlUGlucyBcCi0gICAtbm9TdHJpcGVzIFwKLSAgIC1wYWRQaW5BbGxHZW9tc0Nvbm5lY3QgXAotICAgLXRhcmdldFZpYVRvcExheWVyIDUgXAotICAgLWNyb3Nzb3ZlclZpYVRvcExheWVyIDUgXAotICAgLXBhZFBpbk1heExheWVyIDIgXAotICAgLXN0cmFpZ2h0Q29ubmVjdGlvbnMgeyBzdHJhaWdodFdpdGhEcmNDbGVhbiBzdHJhaWdodFdpdGhDaGFuZ2VzIH0gXAotICAgLW5ldHMge1ZERHd9IFwKLSAgIC1hcmVhIHsgMTg1IDE4NSAyODE1IDI4MTUgfQotCi1zZWxlY3RPYnN0cnVjdCAyNDEuMDAwIDE4MjAuMDAwIDI2Mi4wMDAgMjEyNi4wMDAgZGVmT2JzdHJ1Y3ROYW1lCi1zZWxlY3RPYnN0cnVjdCA3NDMuMDAwIDI3MjkuMDAwIDIwMzUuMDAgMjc1Ni4wMDAgZGVmT2JzdHJ1Y3ROYW1lCi1kZWxldGVTZWxlY3RlZEZyb21GUGxhbiAKLQotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotIyMjIEJsb2NrIFBpbiB0byBSaW5nIGNvbm5lY3Rpb24gZm9yICJXSUxEX1NVQlNZU1RFTSIKLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLXNyb3V0ZSBcCi0gICAtYmxvY2tQaW5Sb3V0ZVdpdGhQaW5XaWR0aCBcCi0gICAtbm9QYWRSaW5ncyBcCi0gICAtbm9Db3JlUGlucyBcCi0gICAtbm9QYWRQaW5zIFwKLSAgIC1ub1N0cmlwZXMgXAotICAgLXN0cmFpZ2h0Q29ubmVjdGlvbnMgeyBzdHJhaWdodFdpdGhEcmNDbGVhbiB9IFwKLSAgIC1ibG9ja1BpblRhcmdldCB7IHJvdXRlVG9SaW5nT25seSB9IFwKLSAgIC1uZXRzIHsgVkREdyBWU1Nzb2MgfSBcCi0gICAtYmxvY2tzIG5hbWVkIFwKLSAgIC1ibG9ja05hbWVzIHsgaV9Nb2R1bGVfVyB9Ci0KLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSMjIyBwYWQgdG8gcmluZyBjb25uZWN0aW9uIGZvciBQTEwKLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLXNyb3V0ZSBcCi0gICAtbm9CbG9ja1BpbnMgXAotICAgLW5vUGFkUmluZ3MgXAotICAgLW5vQ29yZVBpbnMgXAotICAgLW5vU3RyaXBlcyBcCi0gICAtcGFkUGluQWxsR2VvbXNDb25uZWN0IFwKLSAgIC1wYWRQaW5NYXhMYXllciAyIFwKLSAgIC1zdHJhaWdodENvbm5lY3Rpb25zIHsgc3RyYWlnaHRXaXRoRHJjQ2xlYW4gc3RyYWlnaHRXaXRoQ2hhbmdlcyB9IFwKLSAgIC1uZXRzIHtWRERwbGx9IFwKLSAgIC1hcmVhIHsgMTg1IDE4NSAyODE1IDI4MTUgfQotCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0jIyMgQmxvY2sgUGluIHRvIFJpbmcgY29ubmVjdGlvbiBmb3IgIlBMTCIKLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLXNyb3V0ZSBcCi0gICAtYmxvY2tQaW5Sb3V0ZVdpdGhQaW5XaWR0aCBcCi0gICAtbm9QYWRSaW5ncyBcCi0gICAtbm9Db3JlUGlucyBcCi0gICAtbm9QYWRQaW5zIFwKLSAgIC1ub1N0cmlwZXMgXAotICAgLXN0cmFpZ2h0Q29ubmVjdGlvbnMgeyBzdHJhaWdodFdpdGhEcmNDbGVhbiB9IFwKLSAgIC1ibG9ja1BpblRhcmdldCB7IHJvdXRlVG9SaW5nT25seSB9IFwKLSAgIC1uZXRzIHsgVkREcGxsIFZTU3NvYyB9IFwKLSAgIC1ibG9ja3MgbmFtZWQgXAotICAgLWJsb2NrTmFtZXMgeyBpX1BMTCB9Ci0KLQotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotIyMjIENyZWF0aW9uIG9mIGNvcmUgcmluZwotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCi0jIyNBZGRpbmcgQmxvY2thZ2VzIG92ZXIgUExMIHRvIGF2b2lkIHdpcmUgZWRpdGluZyAKLWNyZWF0ZVJvdXRlQmxrIDIzMzUuMDAwIDIyMTYuOTAwIDI4MTAuMDQwMCAyODA5Ljk4MDAgXAotICAgLWxheWVyIDEgMiAzIDQgNSA2IDcgOCA5Ci0KLSMjIyBUb3AgbGV2ZWwgQ29yZSBSaW5nIGNyZWF0aW9uIG9uIE00L001Ci1hZGRSaW5nIFwKLSAgIC1zcGFjaW5nX2JvdHRvbSAyIFwKLSAgIC13aWR0aF9sZWZ0IDExIFwKLSAgIC13aWR0aF9ib3R0b20gMTEgXAotICAgLXNuYXBfd2lyZV9jZW50ZXJfdG9fZ3JpZCBHcmlkIFwKLSAgIC13aWR0aF90b3AgMTEgXAotICAgLXNwYWNpbmdfdG9wIDIgXAotICAgLWxheWVyX2JvdHRvbSBNNSBcCi0gICAtc3RhY2tlZF92aWFfdG9wX2xheWVyIE05IFwKLSAgIC13aWR0aF9yaWdodCAxMSBcCi0gICAtYXJvdW5kIGNvcmUgXAotICAgLWpvZ19kaXN0YW5jZSAwLjEgXAotICAgLW9mZnNldF9ib3R0b20gMi41IFwKLSAgIC1sYXllcl90b3AgTTUgXAotICAgLXRocmVzaG9sZCAwLjEgXAotICAgLW9mZnNldF9sZWZ0IDIuNSBcCi0gICAtc3BhY2luZ19yaWdodCAyIFwKLSAgIC1zcGFjaW5nX2xlZnQgMiBcCi0gICAtb2Zmc2V0X3JpZ2h0IDIuNSBcCi0gICAtb2Zmc2V0X3RvcCAyLjUgXAotICAgLWxheWVyX3JpZ2h0IE00IFwKLSAgIC1uZXRzIHtWU1Nzb2MgVkREZHZmc30gXAotICAgLXN0YWNrZWRfdmlhX2JvdHRvbV9sYXllciBNMSBcCi0gICAtbGF5ZXJfbGVmdCBNNAotCi1zZWxlY3RSb3V0ZUJsayAyMzM1LjAwMDAgMjIxNi45MDAwIDI4MTAuMDQwMCAyODA5Ljk4MDAgZGVmTGF5ZXJCbGtOYW1lIDQKLWRlbGV0ZVNlbGVjdGVkRnJvbUZQbGFuCi0KLSMjIyBQYWQgdG8gQ29yZSBSaW5nIGNvbm5lY3Rpb24gZm9yICJWRERkdmZzIgotc3JvdXRlIFwKLSAgIC1ub0Jsb2NrUGlucyBcCi0gICAtbm9QYWRSaW5ncyBcCi0gICAtbm9Db3JlUGlucyBcCi0gICAtbm9TdHJpcGVzIFwKLSAgIC1wYWRQaW5BbGxHZW9tc0Nvbm5lY3QgXAotICAgLXBhZFBpbk1heExheWVyIDIgXAotICAgLXN0cmFpZ2h0Q29ubmVjdGlvbnMgeyBzdHJhaWdodFdpdGhEcmNDbGVhbiBzdHJhaWdodFdpdGhDaGFuZ2VzIH0gXAotICAgLW5ldHMge1ZERGR2ZnN9IFwKLSAgIC1hcmVhIHsgMTg1IDE4NSAyODE1IDI4MTUgfQotCi0jIyMgUGFkIHRvIENvcmUgUmluZyBjb25uZWN0aW9uIGZvciAiVlNTc29jIgotc3JvdXRlIFwKLSAgIC1ub0Jsb2NrUGlucyBcCi0gICAtbm9QYWRSaW5ncyBcCi0gICAtbm9Db3JlUGlucyBcCi0gICAtbm9TdHJpcGVzIFwKLSAgIC1wYWRQaW5BbGxHZW9tc0Nvbm5lY3QgXAotICAgLXBhZFBpbk1heExheWVyIDIgXAotICAgLXN0cmFpZ2h0Q29ubmVjdGlvbnMgeyBzdHJhaWdodFdpdGhEcmNDbGVhbiBzdHJhaWdodFdpdGhDaGFuZ2VzIH0gXAotICAgLW5ldHMge1ZTU3NvY30gXAotICAgLWFyZWEgeyAxODUgMTg1IDI4MTUgMjgxNSB9Ci0KLWNyZWF0ZVJvdXRlQmxrIDIzMzUuMDAwIDIyMTYuOTAwIDI4MTAuMDQwMCAyODA5Ljk4MDAgXAotICAgLWxheWVyIDEgMiAzIDQgNSA2IDcgOCA5Ci0KLSMjIyBBbm90aGVyIHNldCBvZiBUb3AgbGV2ZWwgQ29yZSBSaW5nIGNyZWF0aW9uIG9uIE00L001Ci1hZGRSaW5nIFwKLSAgIC1zcGFjaW5nX2JvdHRvbSAyIFwKLSAgIC13aWR0aF9sZWZ0IDExIFwKLSAgIC13aWR0aF9ib3R0b20gMTEgXAotICAgLXNuYXBfd2lyZV9jZW50ZXJfdG9fZ3JpZCBHcmlkIFwKLSAgIC13aWR0aF90b3AgMTEgXAotICAgLXNwYWNpbmdfdG9wIDIgXAotICAgLWxheWVyX2JvdHRvbSBNNSBcCi0gICAtc3RhY2tlZF92aWFfdG9wX2xheWVyIE05IFwKLSAgIC13aWR0aF9yaWdodCAxMSBcCi0gICAtYXJvdW5kIGNvcmUgXAotICAgLWpvZ19kaXN0YW5jZSAwLjEgXAotICAgLW9mZnNldF9ib3R0b20gMjguNSBcCi0gICAtbGF5ZXJfdG9wIE01IFwKLSAgIC10aHJlc2hvbGQgMC4xIFwKLSAgIC1vZmZzZXRfbGVmdCAyOC41IFwKLSAgIC1zcGFjaW5nX3JpZ2h0IDIgXAotICAgLXNwYWNpbmdfbGVmdCAyIFwKLSAgIC1vZmZzZXRfcmlnaHQgMjguNSBcCi0gICAtb2Zmc2V0X3RvcCAyOC41IFwKLSAgIC1sYXllcl9yaWdodCBNNCBcCi0gICAtbmV0cyB7VlNTc29jIFZERGR2ZnN9IFwKLSAgIC1zdGFja2VkX3ZpYV9ib3R0b21fbGF5ZXIgTTEgXAotICAgLWxheWVyX2xlZnQgTTQKLQotIyMjIFRyaW1taW5nIGZsb2F0aW5nIHdpcmUKLWVkaXRTZWxlY3QgXAotICAgLXR5cGUgU3BlY2lhbCBcCi0gICAtbGF5ZXJzIE00Ci1lZGl0VHJpbSBcCi0gICAtc2VsZWN0ZWQKLXVpU2V0VG9vbCBzZWxlY3QKLQotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotIyMjIEFuYWxvZyBjb25uZWN0aW9ucyBmb3IgUExMIGFuZCBQSFkgCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0KLSMjI1JlbW92ZSBCbG9ja2FnZSBvdmVyIFBMTAotCi1zZWxlY3RSb3V0ZUJsayAyMzM1LjAwMDAgMjIxNi45MDAwIDI4MTAuMDQwMCAyODA5Ljk4MDAgZGVmTGF5ZXJCbGtOYW1lIDQKLWRlbGV0ZVNlbGVjdGVkRnJvbUZQbGFuCi0KLSMjIyBGb3IgUExMIAotCi1zZWxlY3RJbnN0IGlfUExMCi0KLSMjIyBBbmFsb2cgUG93ZXIgUmluZyBjcmVhdGlvbiBmb3IgIlBMTCIgYmxvY2sgb24gTTQKLWFkZFJpbmcgXAotICAgLXNwYWNpbmdfYm90dG9tIDIgXAotICAgLXdpZHRoX2xlZnQgNSBcCi0gICAtd2lkdGhfYm90dG9tIDUgXAotICAgLXdpZHRoX3RvcCA1IFwKLSAgIC1sZWZ0IDAgXAotICAgLXRvcCAwIFwKLSAgIC1zcGFjaW5nX3RvcCAyIFwKLSAgIC1sYXllcl9ib3R0b20gTTUgXAotICAgLXN0YWNrZWRfdmlhX3RvcF9sYXllciBNNSBcCi0gICAtd2lkdGhfcmlnaHQgNSBcCi0gICAtYXJvdW5kIHNlbGVjdGVkIFwKLSAgIC1qb2dfZGlzdGFuY2UgMC4xIFwKLSAgIC1vZmZzZXRfYm90dG9tIDIwIFwKLSAgIC1ib3R0b20gMCBcCi0gICAtbGF5ZXJfdG9wIE01IFwKLSAgIC10aHJlc2hvbGQgMC4xIFwKLSAgIC1vZmZzZXRfbGVmdCAyMCBcCi0gICAtc3BhY2luZ19yaWdodCAyIFwKLSAgIC1zcGFjaW5nX2xlZnQgMiBcCi0gICAtdHlwZSBibG9ja19yaW5ncyBcCi0gICAtb2Zmc2V0X3JpZ2h0IDIwIFwKLSAgIC1vZmZzZXRfdG9wIDYwIFwKLSAgIC1sYXllcl9yaWdodCBNNCBcCi0gICAtbmV0cyB7QUdORDFfSCBBR05EMF9IIEFWREQxX0ggQVZERDBfSH0gXAotICAgLXN0YWNrZWRfdmlhX2JvdHRvbV9sYXllciBNMSBcCi0gICAtbGF5ZXJfbGVmdCBNNAotCi1kZXNlbGVjdEFsbAotCi0jIyMgQW5hbG9nIFBhZCB0byBSaW5nIGNvbm5lY3Rpb24gZm9yICJQTEwiIGJsb2NrCi1zcm91dGUgXAotICAgLW5vQmxvY2tQaW5zIFwKLSAgIC1ub1BhZFJpbmdzIFwKLSAgIC1ub0NvcmVQaW5zIFwKLSAgIC1ub1N0cmlwZXMgXAotICAgLXBhZFBpbkFsbEdlb21zQ29ubmVjdCBcCi0gICAtdGFyZ2V0VmlhVG9wTGF5ZXIgNSBcCi0gICAtY3Jvc3NvdmVyVmlhVG9wTGF5ZXIgNSBcCi0gICAtc3RyYWlnaHRDb25uZWN0aW9ucyB7IHN0cmFpZ2h0V2l0aERyY0NsZWFuIHN0cmFpZ2h0V2l0aENoYW5nZXMgfSBcCi0gICAtYXJlYSB7IDI3NzAuNjc5NSAyODAyLjMyNiAyODE3LjgxODUgMjYzMS4zMzE1IH0gXAotICAgLW5ldHMgeyBBR05EMV9IIEFHTkQwX0ggIEFWREQxX0ggQVZERDBfSCB9IFwKLSAgIC1sYXllckNoYW5nZVRvcExheWVyIDQKLQotIyMjIEFuYWxvZyBCbG9jayBQaW4gdG8gUmluZyBjb25uZWN0aW9uIGZvciAiUExMIiBibG9jawotc3JvdXRlIFwKLSAgIC1ibG9ja1BpblJvdXRlV2l0aFBpbldpZHRoIFwKLSAgIC1ub1BhZFJpbmdzIFwKLSAgIC1ub0NvcmVQaW5zIFwKLSAgIC1ub1BhZFBpbnMgXAotICAgLW5vU3RyaXBlcyBcCi0gICAtbGF5ZXJDaGFuZ2VCb3RMYXllciA0IFwKLSAgIC1jcm9zc292ZXJWaWFCb3R0b21MYXllciA0IFwKLSAgIC10YXJnZXRWaWFUb3BMYXllciA1IFwKLSAgIC1jcm9zc292ZXJWaWFUb3BMYXllciA1IFwKLSAgIC1zdHJhaWdodENvbm5lY3Rpb25zIHsgc3RyYWlnaHRXaXRoRHJjQ2xlYW4gc3RyYWlnaHRXaXRoQ2hhbmdlcyB9IFwKLSAgIC10YXJnZXRWaWFCb3R0b21MYXllciA0IFwKLSAgIC1ibG9ja1BpblRhcmdldCB7IHJvdXRlVG9SaW5nT25seSB9IFwKLSAgIC1uZXRzIHsgQUdORDFfSCBBR05EMF9IICBBVkREMV9IIEFWREQwX0ggfSBcCi0gICAtbGF5ZXJDaGFuZ2VUb3BMYXllciA1IFwKLSAgIC1ibG9ja3MgbmFtZWQgXAotICAgLWJsb2NrTmFtZXMgeyBpX1BMTCB9Ci0KLWRlc2VsZWN0QWxsCi0KLSMjIyBUcmltbWluZyBmbG9hdGluZyB3aXJlCi1lZGl0U2VsZWN0IFwKLSAgIC1uZXRzIHtBR05EMV9IIEFHTkQwX0ggQVZERDFfSCBBVkREMF9IfSBcCi0gICAtdHlwZSBTcGVjaWFsCi1lZGl0VHJpbSBcCi0gICAtc2VsZWN0ZWQKLWRlc2VsZWN0QWxsCi11aVNldFRvb2wgc2VsZWN0Ci0KLSMjI0FkZGluZyBCbG9ja2FnZXMgb3ZlciBQTEwgIAotCi1jcmVhdGVSb3V0ZUJsayAyMzM1LjAwMCAyMjE2LjkwMCAyODEwLjA0MDAgMjgwOS45ODAwIFwKLSAgIC1sYXllciAxIDIgMyA0IDUgNiA3IDggOQotc2VsZWN0SW5zdCBpX01vZHVsZV9VCi0gCi0jIyMgQW5hbG9nIFBvd2VyIFJpbmcgY3JlYXRpb24gZm9yICJQSFkiIGJsb2NrIG9uIE0zCi1hZGRSaW5nIFwKLSAgIC1zcGFjaW5nX2JvdHRvbSAwLjQgXAotICAgLXdpZHRoX2xlZnQgNiBcCi0gICAtd2lkdGhfYm90dG9tIDAuNCBcCi0gICAtc25hcF93aXJlX2NlbnRlcl90b19ncmlkIEdyaWQgXAotICAgLXdpZHRoX3RvcCAwLjQgXAotICAgLWxlZnQgMCBcCi0gICAtdG9wIDAgXAotICAgLXNwYWNpbmdfdG9wIDAuNCBcCi0gICAtbGF5ZXJfYm90dG9tIE0xIFwKLSAgIC1zdGFja2VkX3ZpYV90b3BfbGF5ZXIgTTMgXAotICAgLXdpZHRoX3JpZ2h0IDYgXAotICAgLWFyb3VuZCBzaGFyZWRfY2x1c3RlciBcCi0gICAtam9nX2Rpc3RhbmNlIDAuMSBcCi0gICAtb2Zmc2V0X2JvdHRvbSAwLjEgXAotICAgLWJvdHRvbSAwIFwKLSAgIC1sYXllcl90b3AgTTEgXAotICAgLXRocmVzaG9sZCAwLjEgXAotICAgLW9mZnNldF9sZWZ0IDAuMSBcCi0gICAtc3BhY2luZ19yaWdodCAzIFwKLSAgIC1zcGFjaW5nX2xlZnQgMiBcCi0gICAtdHlwZSBibG9ja19yaW5ncyBcCi0gICAtb2Zmc2V0X3JpZ2h0IDMgXAotICAgLW9mZnNldF90b3AgMC4xIFwKLSAgIC1sYXllcl9yaWdodCBNMyBcCi0gICAtbmV0cyB7dnNzYSB2ZGRhMzMgdmRkYTI1fSBcCi0gICAtc3RhY2tlZF92aWFfYm90dG9tX2xheWVyIE0xIFwKLSAgIC1sYXllcl9sZWZ0IE0yCi0KLWRlc2VsZWN0QWxsCi0KLSMjIyBBbmFsb2cgUGFkIHRvIEJsb2NrIFJpbmcgY29ubmVjdGlvbiBmb3IgIlBIWSIgYmxvY2sKLXNyb3V0ZSBcCi0gICAtbm9CbG9ja1BpbnMgXAotICAgLW5vUGFkUmluZ3MgXAotICAgLW5vQ29yZVBpbnMgXAotICAgLW5vU3RyaXBlcyBcCi0gICAtcGFkUGluQWxsR2VvbXNDb25uZWN0ICBcCi0gICAtdGFyZ2V0VmlhVG9wTGF5ZXIgMyAgXAotICAgLWNyb3Nzb3ZlclZpYVRvcExheWVyIDMgXAotICAgLXN0cmFpZ2h0Q29ubmVjdGlvbnMgeyBzdHJhaWdodFdpdGhEcmNDbGVhbiBzdHJhaWdodFdpdGhDaGFuZ2VzIH0gXAotICAgLWFyZWEgeyAyNzQzLjAgNDk1LjAgMjgxOC4zIDYwMC42IH0gXAotICAgLW5ldHMge3Zzc2EgdmRkYTMzIHZkZGEyNX0KLQotZGVzZWxlY3RBbGwKLQotIyMjIEJsb2NrIEFuYWxvZyAidnNzYSIgUGluIHRvIFJpbmcgY29ubmVjdGlvbiBmb3IgIlBIWSIgYmxvY2sKLXNyb3V0ZSBcCi0gICAtbm9QYWRSaW5ncyBcCi0gICAtbm9Db3JlUGlucyBcCi0gICAtbm9QYWRQaW5zIFwKLSAgIC1ub1N0cmlwZXMgXAotICAgLWJsb2NrU2lkZXMge3JpZ2h0fSBcCi0gICAtYmxvY2tQaW5Sb3V0ZVdpdGhQaW5XaWR0aCBcCi0gICAtc3RyYWlnaHRDb25uZWN0aW9ucyB7IHN0cmFpZ2h0V2l0aENoYW5nZXMgfSBcCi0gICAtYmxvY2tQaW5UYXJnZXQgeyByb3V0ZVRvUmluZ09ubHkgfSBcCi0gICAtbmV0cyB7IHZzc2EgfSBcCi0gICAtYmxvY2tzIG5hbWVkIFwKLSAgIC1ibG9ja05hbWVzIHtpX01vZHVsZV9VfSBcCi0gICAtYXJlYSB7Mjc1MyAyNTggMjc4OCAxMDc0fQotCi0jIyMgVHJpbW1pbmcgZmxvYXRpbmcgd2lyZQotZWRpdFNlbGVjdCBcCi0gICAtbmV0cyB7dnNzYX0gXAotICAgLWxheWVyIHtNM30gXAotICAgLXR5cGUgU3BlY2lhbAotZWRpdFRyaW0gXAotICAgLXNlbGVjdGVkCi1kZXNlbGVjdEFsbAotdWlTZXRUb29sIHNlbGVjdAotCi0jIyMgQmxvY2sgQW5hbG9nICJ2ZGRhMzMiIFBpbiB0byBSaW5nIGNvbm5lY3Rpb24gZm9yICJQSFkiIGJsb2NrCi1zcm91dGUgXAotICAgLW5vUGFkUmluZ3MgXAotICAgLW5vQ29yZVBpbnMgXAotICAgLW5vUGFkUGlucyBcCi0gICAtbm9TdHJpcGVzIFwKLSAgIC1ibG9ja1NpZGVzIHtyaWdodH0gXAotICAgLWJsb2NrUGluUm91dGVXaXRoUGluV2lkdGggXAotICAgLXN0cmFpZ2h0Q29ubmVjdGlvbnMgeyBzdHJhaWdodFdpdGhDaGFuZ2VzIH0gXAotICAgLWJsb2NrUGluVGFyZ2V0IHsgcm91dGVUb1JpbmdPbmx5IH0gXAotICAgLW5ldHMgeyB2ZGRhMzMgfSBcCi0gICAtYmxvY2tzIG5hbWVkIFwKLSAgIC1ibG9ja05hbWVzIHtpX01vZHVsZV9VIH0gXAotICAgLWFyZWEgezI3NTMgMjU4IDI3ODggMTA3NH0KLQotIyMjIFRyaW1taW5nIGZsb2F0aW5nIHdpcmUKLWVkaXRTZWxlY3QgXAotICAgLW5ldHMge3ZkZGEzM30gXAotICAgLWxheWVyIHtNM30gXAotICAgLXR5cGUgU3BlY2lhbAotZWRpdFRyaW0gXAotICAgLXNlbGVjdGVkCi1kZXNlbGVjdEFsbAotdWlTZXRUb29sIHNlbGVjdAotCi0jIyMgQmxvY2sgQW5hbG9nICJ2ZGRhMjUiIFBpbiB0byBSaW5nIGNvbm5lY3Rpb24gZm9yICJQSFkiIGJsb2NrCi1zcm91dGUgXAotICAgLW5vUGFkUmluZ3MgXAotICAgLW5vQ29yZVBpbnMgXAotICAgLW5vUGFkUGlucyBcCi0gICAtbm9TdHJpcGVzIFwKLSAgIC1ibG9ja1NpZGVzIHtyaWdodH0gXAotICAgLWJsb2NrUGluUm91dGVXaXRoUGluV2lkdGggXAotICAgLXN0cmFpZ2h0Q29ubmVjdGlvbnMgeyBzdHJhaWdodFdpdGhDaGFuZ2VzIH0gXAotICAgLWJsb2NrUGluVGFyZ2V0IHsgcm91dGVUb1JpbmdPbmx5IH0gXAotICAgLW5ldHMgeyB2ZGRhMjUgfSBcCi0gICAtYmxvY2tzIG5hbWVkIFwKLSAgIC1ibG9ja05hbWVzIHsgaV9Nb2R1bGVfVSB9IFwKLSAgIC1hcmVhIHsyNzUzIDI1OCAyNzg4IDEwNzR9IFwKLSAgIC1ibG9ja1Bpbk1pbkxheWVyIDIKLQotIyMjIFRyaW1taW5nIGZsb2F0aW5nIHdpcmUKLWVkaXRTZWxlY3QgXAotICAgLW5ldHMge3ZkZGEyNX0gXAotICAgLWxheWVyIHtNM30gXAotICAgLXR5cGUgU3BlY2lhbAotZWRpdFRyaW0gXAotICAgLXNlbGVjdGVkCi1kZXNlbGVjdEFsbAotdWlTZXRUb29sIHNlbGVjdAotCi0jIyMgVG9wIGxldmVsIENvcmUgUmluZyBjcmVhdGlvbiBvbiBNOC9NOSAKLWFkZFJpbmcgXAotICAgLXNwYWNpbmdfYm90dG9tIDIgXAotICAgLXdpZHRoX2xlZnQgMTEgXAotICAgLXdpZHRoX2JvdHRvbSAxMSAgXAotICAgLXdpZHRoX3RvcCAxMSBcCi0gICAtc3BhY2luZ190b3AgMiBcCi0gICAtbGF5ZXJfYm90dG9tIE05IFwKLSAgIC1zdGFja2VkX3ZpYV90b3BfbGF5ZXIgTTkgXAotICAgLXdpZHRoX3JpZ2h0IDExIFwKLSAgIC1hcm91bmQgY29yZSBcCi0gICAtam9nX2Rpc3RhbmNlIDAuMSBcCi0gICAtb2Zmc2V0X2JvdHRvbSAyLjUgXAotICAgLWxheWVyX3RvcCBNOSBcCi0gICAtdGhyZXNob2xkIDAuMSBcCi0gICAtb2Zmc2V0X2xlZnQgMi41IFwKLSAgIC1zcGFjaW5nX3JpZ2h0IDIgXAotICAgLXNwYWNpbmdfbGVmdCAyIFwKLSAgIC1vZmZzZXRfcmlnaHQgMi41IFwKLSAgIC1vZmZzZXRfdG9wIDIuNSBcCi0gICAtbGF5ZXJfcmlnaHQgTTggXAotICAgLW5ldHMge1ZTU3NvYyBWRERkdmZzfSBcCi0gICAtc3RhY2tlZF92aWFfYm90dG9tX2xheWVyIE04IFwKLSAgIC1sYXllcl9sZWZ0IE04Ci0KLSMjIyBBbm90aGVyIHNldCBvZiBUb3AgbGV2ZWwgQ29yZSBSaW5nIGNyZWF0aW9uIG9uIE04L005IAotYWRkUmluZyBcCi0gICAtc3BhY2luZ19ib3R0b20gMiBcCi0gICAtd2lkdGhfbGVmdCAxMSBcCi0gICAtd2lkdGhfYm90dG9tIDExIFwKLSAgIC13aWR0aF90b3AgMTEgXAotICAgLXNwYWNpbmdfdG9wIDIgXAotICAgLWxheWVyX2JvdHRvbSBNOSBcCi0gICAtc3RhY2tlZF92aWFfdG9wX2xheWVyIE05IFwKLSAgIC13aWR0aF9yaWdodCAxMSBcCi0gICAtYXJvdW5kIGNvcmUgXAotICAgLWpvZ19kaXN0YW5jZSAwLjEgXAotICAgLW9mZnNldF9ib3R0b20gMjguNSBcCi0gICAtbGF5ZXJfdG9wIE05IFwKLSAgIC10aHJlc2hvbGQgMC4xIFwKLSAgIC1vZmZzZXRfbGVmdCAyOC41IFwKLSAgIC1zcGFjaW5nX3JpZ2h0IDIgXAotICAgLXNwYWNpbmdfbGVmdCAyIFwKLSAgIC1vZmZzZXRfcmlnaHQgMjguNSBcCi0gICAtb2Zmc2V0X3RvcCAyOC41IFwKLSAgIC1sYXllcl9yaWdodCBNOCBcCi0gICAtbmV0cyB7VlNTc29jIFZERGR2ZnN9IFwKLSAgIC1zdGFja2VkX3ZpYV9ib3R0b21fbGF5ZXIgTTggXAotICAgLWxheWVyX2xlZnQgTTgKLQotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSMjIyBSaW5nIGFuZCBzdHJpcGUgY3JlYXRpb24gZm9yIFBEcm9tIHBvd2VyIGRvbWFpbgotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLQotZGVzZWxlY3RBbGwKLQotc2VsZWN0T2JqZWN0IEdyb3VwIFBEcm9tCi0KLXNldEFkZFN0cmlwZU9wdGlvbiBcCi0gICAtZXh0ZW5kX3RvX2Nsb3Nlc3RfdGFyZ2V0IHJpbmcgXAotICAgLXN3aXRjaF9jZWxsbmFtZSB7IENETl9SSU5HX1NXIENETl9SSU5HX0ZJTExFUiB9Ci0KLSMjIyBCbG9jayBSaW5nIGNyZWF0aW9uIGFyb3VuZCAiUERST00iIGJsb2NrIG9uIE00L001Ci1hZGRSaW5nIFwKLSAgIC1zcGFjaW5nX2JvdHRvbSAwLjUgXAotICAgLXdpZHRoX2xlZnQgMS41IFwKLSAgIC13aWR0aF9ib3R0b20gMS41IFwKLSAgIC13aWR0aF90b3AgMS41IFwKLSAgIC1zcGFjaW5nX3RvcCAwLjUgXAotICAgLWxheWVyX2JvdHRvbSBNNSBcCi0gICAtc3RhY2tlZF92aWFfdG9wX2xheWVyIE01IFwKLSAgIC13aWR0aF9yaWdodCAxLjUgXAotICAgLWFyb3VuZCBwb3dlcl9kb21haW4gXAotICAgLWpvZ19kaXN0YW5jZSAwLjEgXAotICAgLW9mZnNldF9ib3R0b20gMSBcCi0gICAtbGF5ZXJfdG9wIE01IFwKLSAgIC10aHJlc2hvbGQgMC4xIFwKLSAgIC1vZmZzZXRfbGVmdCAxIFwKLSAgIC1zcGFjaW5nX3JpZ2h0IDAuNSBcCi0gICAtc3BhY2luZ19sZWZ0IDAuNSBcCi0gICAtdHlwZSBibG9ja19yaW5ncyBcCi0gICAtb2Zmc2V0X3JpZ2h0IDAuNSBcCi0gICAtb2Zmc2V0X3RvcCAwLjUgXAotICAgLWxheWVyX3JpZ2h0IE00IFwKLSAgIC1uZXRzIHtWRERyb20gVlNTc29jfSBcCi0gICAtc3RhY2tlZF92aWFfYm90dG9tX2xheWVyIE0xIFwKLSAgIC1sYXllcl9sZWZ0IE00ICBcCi0gICAtc25hcF93aXJlX2NlbnRlcl90b19ncmlkIEdyaWQKLQotIyMjIFBvd2VyIFN0cmlwZSBjcmVhdGlvbiBmb3IgIlBEUk9NIiBvbiBNOAotYWRkU3RyaXBlIFwKLSAgIC1ibG9ja19yaW5nX3RvcF9sYXllcl9saW1pdCBNOSBcCi0gICAtbWF4X3NhbWVfbGF5ZXJfam9nX2xlbmd0aCAwLjggXAotICAgLW92ZXJfcG93ZXJfZG9tYWluIDEgXAotICAgLXBhZGNvcmVfcmluZ19ib3R0b21fbGF5ZXJfbGltaXQgTTQgXAotICAgLXNldF90b19zZXRfZGlzdGFuY2UgMzUgXAotICAgLXN0YWNrZWRfdmlhX3RvcF9sYXllciBNOSBcCi0gICAtcGFkY29yZV9yaW5nX3RvcF9sYXllcl9saW1pdCBNOSBcCi0gICAtc3BhY2luZyAzIFwKLSAgIC14bGVmdF9vZmZzZXQgMTMgXAotICAgLXhyaWdodF9vZmZzZXQgMSBcCi0gICAtbWVyZ2Vfc3RyaXBlc192YWx1ZSAwLjEgXAotICAgLWxheWVyIE04IFwKLSAgIC1ibG9ja19yaW5nX2JvdHRvbV9sYXllcl9saW1pdCBNNCBcCi0gICAtd2lkdGggNC44IFwKLSAgIC1uZXRzIHtWRERyb20gVlNTc29jfSBcCi0gICAtc3RhY2tlZF92aWFfYm90dG9tX2xheWVyIE00IFwKLSAgIC1zbmFwX3dpcmVfY2VudGVyX3RvX2dyaWQgR3JpZCAKLQotZGVzZWxlY3RBbGwKLQotIyMjIEFkZCBjb25uZWN0aW9ucyB0byBST00gcmluZ3MgdGhpcyB3aWxsIG1ha2UgYmV0dGVyIGNvbm5lY3Rpb25zIAotCi1hZGRTdHJpcGUgXAotICAgLXNuYXBfd2lyZV9jZW50ZXJfdG9fZ3JpZCBHcmlkIFwKLSAgIC1zZXRfdG9fc2V0X2Rpc3RhbmNlIDM1IFwKLSAgIC1zdGFja2VkX3ZpYV90b3BfbGF5ZXIgTTUgXAotICAgLXNwYWNpbmcgMS42IFwKLSAgIC14bGVmdF9vZmZzZXQgMyBcCi0gICAteHJpZ2h0X29mZnNldCA1IFwKLSAgIC1jcmVhdGVfcGlucyAwIFwKLSAgIC1sYXllciBNNCBcCi0gICAtd2lkdGggNi40IFwKLSAgIC1uZXRzIHtWRERyb219IFwKLSAgIC1zdGFja2VkX3ZpYV9ib3R0b21fbGF5ZXIgTTEgXAotICAgLWFyZWEgezI0MDQuMDQ1IDE0NjQuMDAwIDI3MTMuMDAwIDE1NTkuNTAwfSBcCi0gICAtYWxsb3dfam9nX2Jsb2NrX3JpbmcgMCBcCi0gICAtYWxsb3dfam9nX3BhZGNvcmVfcmluZyAwCi0KLSMjIyBUcmltbWluZyBmbG9hdGluZyB3aXJlCi1lZGl0U2VsZWN0IFwKLSAgIC1uZXRzIHtWRERyb219IFwKLSAgIC1sYXllciBNNCBcCi0gICAtdHlwZSBTcGVjaWFsCi1lZGl0VHJpbSBcCi0gICAtc2VsZWN0ZWQKLWRlc2VsZWN0QWxsCi0KLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0jIyMgUERzbWMgcG93ZXIgZG9tYWluIHN0cmlwZSBjcmVhdGlvbgotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLQotc2VsZWN0T2JqZWN0IEdyb3VwIFBEc21jCi0KLSMjIyAgVmVydGljYWwgUG93ZXIgU3RyaXBlIGNyZWF0aW9uIGZvciAiU01TIiBibG9jayBvbiBNNAotYWRkU3RyaXBlIFwKLSAgIC1ibG9ja19yaW5nX3RvcF9sYXllcl9saW1pdCBNNSBcCi0gICAtbWF4X3NhbWVfbGF5ZXJfam9nX2xlbmd0aCAwLjggXAotICAgLW92ZXJfcG93ZXJfZG9tYWluIDEgXAotICAgLXBhZGNvcmVfcmluZ19ib3R0b21fbGF5ZXJfbGltaXQgTTEgXAotICAgLXNldF90b19zZXRfZGlzdGFuY2UgNzAgXAotICAgLXNraXBfdmlhX29uX3BpbiB7fSBcCi0gICAtc3RhY2tlZF92aWFfdG9wX2xheWVyIE01IFwKLSAgIC1wYWRjb3JlX3JpbmdfdG9wX2xheWVyX2xpbWl0IE01IFwKLSAgIC1zcGFjaW5nIDEuNiBcCi0gICAteGxlZnRfb2Zmc2V0IDAuOTA1IFwKLSAgIC14cmlnaHRfb2Zmc2V0IDEwIFwKLSAgIC1tZXJnZV9zdHJpcGVzX3ZhbHVlIDAuMSBcCi0gICAtbGF5ZXIgTTQgXAotICAgLWJsb2NrX3JpbmdfYm90dG9tX2xheWVyX2xpbWl0IE0xIFwKLSAgIC13aWR0aCA2LjQgXAotICAgLW5ldHMge1ZTU3NvYyBWRERkdmZzIFZERHNtY30gXAotICAgLXN0YWNrZWRfdmlhX2JvdHRvbV9sYXllciBNMSBcCi0gICAtc25hcF93aXJlX2NlbnRlcl90b19ncmlkIEdyaWQKLQotIyMjICBIb3Jpem9udGFsIFBvd2VyIFN0cmlwZSBjcmVhdGlvbiBmb3IgIlNNUyIgYmxvY2sgb24gTTUKLWFkZFN0cmlwZSBcCi0gICAtYmxvY2tfcmluZ190b3BfbGF5ZXJfbGltaXQgTTUgXAotICAgLW1heF9zYW1lX2xheWVyX2pvZ19sZW5ndGggMC44IFwKLSAgIC1vdmVyX3Bvd2VyX2RvbWFpbiAxIFwKLSAgIC1wYWRjb3JlX3JpbmdfYm90dG9tX2xheWVyX2xpbWl0IE0xIFwKLSAgIC1zZXRfdG9fc2V0X2Rpc3RhbmNlIDM1IFwKLSAgIC1za2lwX3ZpYV9vbl9waW4ge30gXAotICAgLXN0YWNrZWRfdmlhX3RvcF9sYXllciBNNSBcCi0gICAtcGFkY29yZV9yaW5nX3RvcF9sYXllcl9saW1pdCBNNSBcCi0gICAtc3BhY2luZyAxLjYgXAotICAgLW1lcmdlX3N0cmlwZXNfdmFsdWUgMC4xIFwKLSAgIC1kaXJlY3Rpb24gaG9yaXpvbnRhbCBcCi0gICAtbGF5ZXIgTTUgXAotICAgLWJsb2NrX3JpbmdfYm90dG9tX2xheWVyX2xpbWl0IE0xIFwKLSAgIC13aWR0aCA2LjQgXAotICAgLW5ldHMge1ZTU3NvYyBWRERkdmZzIFZERHNtY30gXAotICAgLXN0YWNrZWRfdmlhX2JvdHRvbV9sYXllciBNMSBcCi0gICAteXRvcF9vZmZzZXQgMiBcCi0gICAteWJvdHRvbV9vZmZzZXQgNiBcCi0gICAtc25hcF93aXJlX2NlbnRlcl90b19ncmlkIEdyaWQKLQotZGVzZWxlY3RBbGwKLQotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSMjIyBQRHVhcnQgcG93ZXIgZG9tYWluIHN0cmlwZSBjcmVhdGlvbgotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLXNlbGVjdE9iamVjdCBNb2R1bGUgaV9hcGJfc3Vic3lzdGVtL2lfdWFydDEKLQotIyMjIFZlcnRpY2FsICJWRERkdmZzIiBQb3dlciBTdHJpcGUgY3JlYXRpb24gZm9yICJVQVJUIiBibG9jayBvbiBNNCB0byBjb25uZWN0IHRvIFBTTyBjZWxscwotYWRkU3RyaXBlIFwKLSAgIC1ibG9ja19yaW5nX3RvcF9sYXllcl9saW1pdCBNOSBcCi0gICAtbWF4X3NhbWVfbGF5ZXJfam9nX2xlbmd0aCAwLjggXAotICAgLW92ZXJfcG93ZXJfZG9tYWluIDEgXAotICAgLXBhZGNvcmVfcmluZ19ib3R0b21fbGF5ZXJfbGltaXQgTTEgXAotICAgLXNldF90b19zZXRfZGlzdGFuY2UgNzAgXAotICAgLXNraXBfdmlhX29uX3BpbiB7fSBcCi0gICAtc3RhY2tlZF92aWFfdG9wX2xheWVyIE05IFwKLSAgIC1wYWRjb3JlX3JpbmdfdG9wX2xheWVyX2xpbWl0IE05IFwKLSAgIC1zcGFjaW5nIDIgXAotICAgLXhsZWZ0X29mZnNldCAyMCBcCi0gICAtbWVyZ2Vfc3RyaXBlc192YWx1ZSAwLjEgXAotICAgLWxheWVyIE00IFwKLSAgIC1ibG9ja19yaW5nX2JvdHRvbV9sYXllcl9saW1pdCBNMSBcCi0gICAtd2lkdGggOS42IFwKLSAgIC1uZXRzIHtWRERkdmZzfSBcCi0gICAtc3RhY2tlZF92aWFfYm90dG9tX2xheWVyIE0xIFwKLSAgIC1zbmFwX3dpcmVfY2VudGVyX3RvX2dyaWQgR3JpZAotCi0jIyMgVmVydGljYWwgUG93ZXIgU3RyaXBlIGNyZWF0aW9uIGZvciAiVUFSVCIgYmxvY2sgb24gTTQKLWFkZFN0cmlwZSBcCi0gICAtYmxvY2tfcmluZ190b3BfbGF5ZXJfbGltaXQgTTkgXAotICAgLW1heF9zYW1lX2xheWVyX2pvZ19sZW5ndGggMC44IFwKLSAgIC1vdmVyX3Bvd2VyX2RvbWFpbiAxIFwKLSAgIC1wYWRjb3JlX3JpbmdfYm90dG9tX2xheWVyX2xpbWl0IE0xIFwKLSAgIC1zZXRfdG9fc2V0X2Rpc3RhbmNlIDcwIFwKLSAgIC1za2lwX3ZpYV9vbl9waW4ge30gXAotICAgLXN0YWNrZWRfdmlhX3RvcF9sYXllciBNOSBcCi0gICAtcGFkY29yZV9yaW5nX3RvcF9sYXllcl9saW1pdCBNOSBcCi0gICAtc3BhY2luZyAxLjYgXAotICAgLXhsZWZ0X29mZnNldCAzNiBcCi0gICAtbWVyZ2Vfc3RyaXBlc192YWx1ZSAwLjEgXAotICAgLWxheWVyIE00IFwKLSAgIC1ibG9ja19yaW5nX2JvdHRvbV9sYXllcl9saW1pdCBNMSBcCi0gICAtd2lkdGggNi40IFwKLSAgIC1uZXRzIHtWU1Nzb2MgVkREdWFydH0gXAotICAgLXN0YWNrZWRfdmlhX2JvdHRvbV9sYXllciBNMSBcCi0gICAtc25hcF93aXJlX2NlbnRlcl90b19ncmlkIEdyaWQKLQotIyMjIEhvcml6b250YWwgUG93ZXIgU3RyaXBlIGNyZWF0aW9uIGZvciAiVUFSVCIgYmxvY2sgb24gTTUKLWFkZFN0cmlwZSBcCi0gICAtYmxvY2tfcmluZ190b3BfbGF5ZXJfbGltaXQgTTUgXAotICAgLW1heF9zYW1lX2xheWVyX2pvZ19sZW5ndGggMC44IFwKLSAgIC1vdmVyX3Bvd2VyX2RvbWFpbiAxIFwKLSAgIC1wYWRjb3JlX3JpbmdfYm90dG9tX2xheWVyX2xpbWl0IE0xIFwKLSAgIC1zZXRfdG9fc2V0X2Rpc3RhbmNlIDM1IFwKLSAgIC1za2lwX3ZpYV9vbl9waW4ge30gXAotICAgLXN0YWNrZWRfdmlhX3RvcF9sYXllciBNNSBcCi0gICAtcGFkY29yZV9yaW5nX3RvcF9sYXllcl9saW1pdCBNNSBcCi0gICAtc3BhY2luZyAxLjYgXAotICAgLW1lcmdlX3N0cmlwZXNfdmFsdWUgMC4xIFwKLSAgIC1kaXJlY3Rpb24gaG9yaXpvbnRhbCBcCi0gICAtbGF5ZXIgTTUgXAotICAgLWJsb2NrX3JpbmdfYm90dG9tX2xheWVyX2xpbWl0IE0xIFwKLSAgIC13aWR0aCA2LjQgXAotICAgLW5ldHMge1ZTU3NvYyBWRERkdmZzIFZERHVhcnR9IFwKLSAgIC1zdGFja2VkX3ZpYV9ib3R0b21fbGF5ZXIgTTEgXAotICAgLXl0b3Bfb2Zmc2V0IDIgXAotICAgLXlib3R0b21fb2Zmc2V0IDYgXAotICAgLXNuYXBfd2lyZV9jZW50ZXJfdG9fZ3JpZCBHcmlkCi0KLWRlc2VsZWN0QWxsCi0KLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0jIyMgUER3YWtldXAgcG93ZXIgZG9tYWluIHN0cmlwZSBjcmVhdGlvbgotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLXNlbGVjdE9iamVjdCBHcm91cCBQRHdha2V1cAotCi0jIyMgVmVydGljYWwgUG93ZXIgU3RyaXBlIGNyZWF0aW9uIGZvciAiV0FLRVVQIiBibG9jayBvbiBNNAotYWRkU3RyaXBlIFwKLSAgIC1ibG9ja19yaW5nX3RvcF9sYXllcl9saW1pdCBNNSBcCi0gICAtbWF4X3NhbWVfbGF5ZXJfam9nX2xlbmd0aCAwLjggXAotICAgLW92ZXJfcG93ZXJfZG9tYWluIDEgXAotICAgLXBhZGNvcmVfcmluZ19ib3R0b21fbGF5ZXJfbGltaXQgTTEgXAotICAgLXNldF90b19zZXRfZGlzdGFuY2UgMzUgXAotICAgLXN0YWNrZWRfdmlhX3RvcF9sYXllciBNNSBcCi0gICAtcGFkY29yZV9yaW5nX3RvcF9sYXllcl9saW1pdCBNNSBcCi0gICAtc3BhY2luZyAxLjUgXAotICAgLXhsZWZ0X29mZnNldCAwLjkwNSBcCi0gICAteHJpZ2h0X29mZnNldCAxIFwKLSAgIC1tZXJnZV9zdHJpcGVzX3ZhbHVlIDAuMSBcCi0gICAtbGF5ZXIgTTQgXAotICAgLWJsb2NrX3JpbmdfYm90dG9tX2xheWVyX2xpbWl0IE0xIFwKLSAgIC13aWR0aCA2LjQgXAotICAgLW5ldHMge1ZTU3NvYyBWRER3YWtlfSBcCi0gICAtc3RhY2tlZF92aWFfYm90dG9tX2xheWVyIE0xIFwKLSAgIC1zbmFwX3dpcmVfY2VudGVyX3RvX2dyaWQgR3JpZCAKLQotZGVzZWxlY3RBbGwKLQotIyMjIFRvcCBsZXZlbCBzdHJhcCBjcmVhdGlvbnMgd2l0aCBsYXllcnMgTTQvTTUKLQotZGVzZWxlY3RBbGwKLXNlbGVjdEluc3QgaV9QTEwKLQotIyMjIFRvcCBsZXZlbCBIb3Jpem9udGFsIFBvd2VyIFN0cmlwZSBjcmVhdGlvbiBvbiBNNQotYWRkU3RyaXBlIFwKLSAgIC1leHRlbmRfdG8gZGVzaWduX2JvdW5kYXJ5IFwKLSAgIC1hcmVhX2Jsb2NrYWdlIHsgMjYyIDI2NiAyNjIgMTI4NSAxOTY1IDEyODUgMTk2NSA5MTcuOCAxOTkwLjYgOTE3LjggMTk5MC42IDI2NiB9IFwKLSAgIC1ibG9ja19yaW5nX3RvcF9sYXllcl9saW1pdCBNNSBcCi0gICAtbWF4X3NhbWVfbGF5ZXJfam9nX2xlbmd0aCAwLjggXAotICAgLXNuYXBfd2lyZV9jZW50ZXJfdG9fZ3JpZCBHcmlkIFwKLSAgIC1wYWRjb3JlX3JpbmdfYm90dG9tX2xheWVyX2xpbWl0IE0xIFwKLSAgIC1zZXRfdG9fc2V0X2Rpc3RhbmNlIDM1IFwKLSAgIC15Ym90dG9tX29mZnNldCAxIFwKLSAgIC1icmVha19hdF9zZWxlY3RlZF9ibG9ja3MgMSBcCi0gICAtc3RhY2tlZF92aWFfdG9wX2xheWVyIE01IFwKLSAgIC1wYWRjb3JlX3JpbmdfdG9wX2xheWVyX2xpbWl0IE01IFwKLSAgIC1zcGFjaW5nIDEuNiBcCi0gICAtbWVyZ2Vfc3RyaXBlc192YWx1ZSAwLjEgXAotICAgLWFsbG93X2pvZ19ibG9ja19yaW5nIDAgXAotICAgLWNyZWF0ZV9waW5zIDAgXAotICAgLWRpcmVjdGlvbiBob3Jpem9udGFsIFwKLSAgIC1sYXllciBNNSBcCi0gICAtYmxvY2tfcmluZ19ib3R0b21fbGF5ZXJfbGltaXQgTTEgXAotICAgLXl0b3Bfb2Zmc2V0IDUgXAotICAgLXdpZHRoIDYuNCBcCi0gICAtbmV0cyB7VlNTc29jIFZERGR2ZnN9IFwKLSAgIC1zdGFja2VkX3ZpYV9ib3R0b21fbGF5ZXIgTTEKLQotY3JlYXRlUm91dGVCbGsgMjQ0LjAwMCAyNzUxLjAwMCAyNTMuMDAwIDI3NTYuMDAwIFwKLSAgIC1sYXllciA0Ci0KLSMjIyBUb3AgbGV2ZWwgVmVydGljYWwgUG93ZXIgU3RyaXBlIGNyZWF0aW9uIG9ubHkgaW4gdGhlIERlc2lnbiBBcmUgb24gTTQKLWFkZFN0cmlwZSBcCi0gICAtYmxvY2tfcmluZ190b3BfbGF5ZXJfbGltaXQgTTUgXAotICAgLW1heF9zYW1lX2xheWVyX2pvZ19sZW5ndGggMC44IFwKLSAgIC1zbmFwX3dpcmVfY2VudGVyX3RvX2dyaWQgR3JpZCBcCi0gICAtcGFkY29yZV9yaW5nX2JvdHRvbV9sYXllcl9saW1pdCBNMiBcCi0gICAtc2V0X3RvX3NldF9kaXN0YW5jZSAzNSBcCi0gICAtYnJlYWtfYXRfc2VsZWN0ZWRfYmxvY2tzIDEgXAotICAgLXN0YWNrZWRfdmlhX3RvcF9sYXllciBNNSBcCi0gICAtcGFkY29yZV9yaW5nX3RvcF9sYXllcl9saW1pdCBNNSBcCi0gICAtc3BhY2luZyAxLjYgXAotICAgLXhsZWZ0X29mZnNldCAxIFwKLSAgIC14cmlnaHRfb2Zmc2V0IDUgXAotICAgLW1lcmdlX3N0cmlwZXNfdmFsdWUgMC4xIFwKLSAgIC1jcmVhdGVfcGlucyAwIFwKLSAgIC1sYXllciBNNCBcCi0gICAtYmxvY2tfcmluZ19ib3R0b21fbGF5ZXJfbGltaXQgTTQgXAotICAgLXdpZHRoIDYuNCBcCi0gICAtbmV0cyB7VlNTc29jIFZERGR2ZnN9IFwKLSAgIC1zdGFja2VkX3ZpYV9ib3R0b21fbGF5ZXIgTTEgXAotICAgLWFyZWEgezI0NS4wMDAgMjQ1LjAwMCAyNzU1LjAwIDI3NTUuMDAwfSBcCi0gICAtYXJlYV9ibG9ja2FnZSB7IDI2MiAyNjYgMjYyIDEyODUgMTk2NSAxMjg1IDE5NjUgOTE3LjggMTk5MC42IDkxNy44IDE5OTAuNiAyNjYgfSBcCi0gICAtYWxsb3dfam9nX2Jsb2NrX3JpbmcgMCBcCi0gICAtYWxsb3dfam9nX3BhZGNvcmVfcmluZyAwCi0KLWRlc2VsZWN0QWxsCi1zZWxlY3RSb3V0ZUJsayAyNDQuMDAwIDI3NTEuMDAwIDI1My4wMDAgMjc1Ni4wMDAgZGVmTGF5ZXJCbGtOYW1lIDQKLWRlbGV0ZVNlbGVjdGVkRnJvbUZQbGFuCi1kZXNlbGVjdEFsbAotCi0jIyMgVG9wIGxldmVsIFZlcnRpY2FsIFBvd2VyIFN0cmlwZSBjcmVhdGlvbiBvbmx5IGluIHRoZSBleHRlbmRlZCBkZXNpZ24gYm91bmRhcnkgYXJlIG9uIE02Ci1hZGRTdHJpcGUgXAotICAgLWV4dGVuZF90byBkZXNpZ25fYm91bmRhcnkgXAotICAgLWJsb2NrX3JpbmdfdG9wX2xheWVyX2xpbWl0IE01IFwKLSAgIC1tYXhfc2FtZV9sYXllcl9qb2dfbGVuZ3RoIDAuOCBcCi0gICAtc25hcF93aXJlX2NlbnRlcl90b19ncmlkIEdyaWQgXAotICAgLXBhZGNvcmVfcmluZ19ib3R0b21fbGF5ZXJfbGltaXQgTTUgXAotICAgLXNldF90b19zZXRfZGlzdGFuY2UgMzUgXAotICAgLXN0YWNrZWRfdmlhX3RvcF9sYXllciBNOSBcCi0gICAtcGFkY29yZV9yaW5nX3RvcF9sYXllcl9saW1pdCBNOSBcCi0gICAtc3BhY2luZyAxLjYgXAotICAgLXhsZWZ0X29mZnNldCAxIFwKLSAgIC14cmlnaHRfb2Zmc2V0IDUgXAotICAgLW1lcmdlX3N0cmlwZXNfdmFsdWUgMC4xIFwKLSAgIC1jcmVhdGVfcGlucyAwIFwKLSAgIC1sYXllciBNNiBcCi0gICAtYmxvY2tfcmluZ19ib3R0b21fbGF5ZXJfbGltaXQgTTQgXAotICAgLXdpZHRoIDYuNCBcCi0gICAtbmV0cyB7VlNTc29jIFZERGR2ZnN9IFwKLSAgIC1zdGFja2VkX3ZpYV9ib3R0b21fbGF5ZXIgTTUgXAotICAgLWFyZWFfYmxvY2thZ2UgezI0NS4wMDAgMjYwLjQwMCAyNzU1LjAwIDI3NDAuNTAwfQotCi1kZXNlbGVjdEFsbAotCi0jIyMgVHJpbW1pbmcgZmxvYXRpbmcgd2lyZQotZWRpdFNlbGVjdCBcCi0gICAtdHlwZSBTcGVjaWFsIFwKLSAgIC1sYXllcnMgTTYKLWVkaXRUcmltIFwKLSAgIC1zZWxlY3RlZAotZGVzZWxlY3RBbGwKLXVpU2V0VG9vbCBzZWxlY3QKLQotCi1kZXNlbGVjdEFsbAotCi0jIyMgVG9wIGxldmVsIEhvcml6b250YWwgUG93ZXIgU3RyaXBlIGNyZWF0aW9uIG9uIE05Ci1hZGRTdHJpcGUgXAotICAgLWFyZWEgeyAxOTMgMjQ1IDI4MDcgMjc1NSB9IFwKLSAgIC1ibG9ja19yaW5nX3RvcF9sYXllcl9saW1pdCBNOSBcCi0gICAtbWF4X3NhbWVfbGF5ZXJfam9nX2xlbmd0aCAwLjggIFwKLSAgIC1zbmFwX3dpcmVfY2VudGVyX3RvX2dyaWQgR3JpZCBcCi0gICAtcGFkY29yZV9yaW5nX2JvdHRvbV9sYXllcl9saW1pdCBNNSBcCi0gICAtc2V0X3RvX3NldF9kaXN0YW5jZSAzNSBcCi0gICAtc3RhY2tlZF92aWFfdG9wX2xheWVyIE05IFwKLSAgIC1wYWRjb3JlX3JpbmdfdG9wX2xheWVyX2xpbWl0IE05IFwKLSAgIC1zcGFjaW5nIDEuNiBcCi0gICAtbWVyZ2Vfc3RyaXBlc192YWx1ZSAwLjEgXAotICAgLWRpcmVjdGlvbiBob3Jpem9udGFsIFwKLSAgIC1sYXllciBNOSBcCi0gICAtYmxvY2tfcmluZ19ib3R0b21fbGF5ZXJfbGltaXQgTTUgXAotICAgLXdpZHRoIDYuNCBcCi0gICAtbmV0cyB7VlNTc29jIFZERGR2ZnN9IFwKLSAgIC1zdGFja2VkX3ZpYV9ib3R0b21fbGF5ZXIgTTUgXAotICAgLWFsbG93X2pvZ19ibG9ja19yaW5nIDAgXAotICAgLXl0b3Bfb2Zmc2V0IDE4IFwKLSAgIC15Ym90dG9tX29mZnNldCAxOAotCi1kZXNlbGVjdEFsbAotCi0jIyMgQWRkIE00IHN0cmFwcyBiL3cgbWVtb3JpZXMgCi0jIyMgTTQvTTUgcG93ZXIgcmluZyBjcmVhdGlvbiBmb3IgbWVtb3JpZXMgdGhpcyB3aWxsIGhlbHAgaW4gcmVkdWNpbmcgSVIgZHJvcCBiL3cgbWVtb3JpZXMgCi0KLXNlbGVjdEluc3QgaV9EMVRDTS9pX3NyYW1fY29yZV8wCi1zZWxlY3RJbnN0IGlfSVRDTS9pX3NyYW1fY29yZQotc2VsZWN0SW5zdCBpX0QwVENNL2lfc3JhbV9jb3JlXzAKLXNlbGVjdEluc3QgaV9EMVRDTS9pX3NyYW1fY29yZV8xCi1zZWxlY3RJbnN0IGlfRDBUQ00vaV9zcmFtX2NvcmVfMQotCi1zZWxlY3RJbnN0IGlfc3JhbV9zdWJzeXN0ZW0vaV8yX3NyYW1fdm9sdGFnZV9pc2xhbmQvaV8xX1NSQU1fMmt4MzJfd3JhcC9pX3NyYW1fY29yZQotc2VsZWN0SW5zdCBpX3NyYW1fc3Vic3lzdGVtL2lfMV9zcmFtX3ZvbHRhZ2VfaXNsYW5kL2lfMF9TUkFNXzJreDMyX3dyYXAvaV9zcmFtX2NvcmUKLXNlbGVjdEluc3QgaV9zcmFtX3N1YnN5c3RlbS9pXzJfc3JhbV92b2x0YWdlX2lzbGFuZC9pXzBfU1JBTV8ya3gzMl93cmFwL2lfc3JhbV9jb3JlCi1zZWxlY3RJbnN0IGlfc3JhbV9zdWJzeXN0ZW0vaV8xX3NyYW1fdm9sdGFnZV9pc2xhbmQvaV8xX1NSQU1fMmt4MzJfd3JhcC9pX3NyYW1fY29yZQotc2VsZWN0SW5zdCBpX3NyYW1fc3Vic3lzdGVtL2lfMl9zcmFtX3ZvbHRhZ2VfaXNsYW5kL2lfMl9TUkFNXzJreDMyX3dyYXAvaV9zcmFtX2NvcmUKLXNlbGVjdEluc3QgaV9zcmFtX3N1YnN5c3RlbS9pXzBfc3JhbV92b2x0YWdlX2lzbGFuZC9pXzBfU1JBTV8ya3gzMl93cmFwL2lfc3JhbV9jb3JlCi1zZWxlY3RJbnN0IGlfc3JhbV9zdWJzeXN0ZW0vaV8xX3NyYW1fdm9sdGFnZV9pc2xhbmQvaV8yX1NSQU1fMmt4MzJfd3JhcC9pX3NyYW1fY29yZQotc2VsZWN0SW5zdCBpX3NyYW1fc3Vic3lzdGVtL2lfMF9zcmFtX3ZvbHRhZ2VfaXNsYW5kL2lfMV9TUkFNXzJreDMyX3dyYXAvaV9zcmFtX2NvcmUKLXNlbGVjdEluc3QgaV9zcmFtX3N1YnN5c3RlbS9pXzFfc3JhbV92b2x0YWdlX2lzbGFuZC9pXzNfU1JBTV8ya3gzMl93cmFwL2lfc3JhbV9jb3JlCi1zZWxlY3RJbnN0IGlfc3JhbV9zdWJzeXN0ZW0vaV8wX3NyYW1fdm9sdGFnZV9pc2xhbmQvaV8yX1NSQU1fMmt4MzJfd3JhcC9pX3NyYW1fY29yZQotc2VsZWN0SW5zdCBpX3NyYW1fc3Vic3lzdGVtL2lfM19zcmFtX3ZvbHRhZ2VfaXNsYW5kL2lfMV9TUkFNXzJreDMyX3dyYXAvaV9zcmFtX2NvcmUKLXNlbGVjdEluc3QgaV9zcmFtX3N1YnN5c3RlbS9pXzBfc3JhbV92b2x0YWdlX2lzbGFuZC9pXzNfU1JBTV8ya3gzMl93cmFwL2lfc3JhbV9jb3JlCi1zZWxlY3RJbnN0IGlfc3JhbV9zdWJzeXN0ZW0vaV8yX3NyYW1fdm9sdGFnZV9pc2xhbmQvaV8zX1NSQU1fMmt4MzJfd3JhcC9pX3NyYW1fY29yZQotc2VsZWN0SW5zdCBpX3NyYW1fc3Vic3lzdGVtL2lfM19zcmFtX3ZvbHRhZ2VfaXNsYW5kL2lfM19TUkFNXzJreDMyX3dyYXAvaV9zcmFtX2NvcmUKLXNlbGVjdEluc3QgaV9zcmFtX3N1YnN5c3RlbS9pXzNfc3JhbV92b2x0YWdlX2lzbGFuZC9pXzBfU1JBTV8ya3gzMl93cmFwL2lfc3JhbV9jb3JlCi1zZWxlY3RJbnN0IGlfc3JhbV9zdWJzeXN0ZW0vaV8zX3NyYW1fdm9sdGFnZV9pc2xhbmQvaV8yX1NSQU1fMmt4MzJfd3JhcC9pX3NyYW1fY29yZQotCi1jcmVhdGVSb3V0ZUJsayA1OTcuNTAwIDEyODcuMjUwIDYwMS41MDAgMTI5MS4wMDAgXAotICAgLWxheWVyIDQKLQotIyMjIEJsb2NrIFJpbmcgY3JlYXRpb24gYXJvdW5kIGFib3ZlIHNlbGVjdGVkIG1lbW9yaWVzIG9uIE00L001OyBUaGlzIGlzIGRvbmUgdG8gaW1wcm92ZSBJUiBkcm9wIGFuZCB0byBhdm9pZCBEUkMncwotYWRkUmluZyBcCi0gICAtc3BhY2luZ19ib3R0b20gMC41IFwKLSAgIC13aWR0aF9sZWZ0IDMgXAotICAgLXdpZHRoX2JvdHRvbSAxLjUgXAotICAgLXNuYXBfd2lyZV9jZW50ZXJfdG9fZ3JpZCBHcmlkIFwKLSAgIC13aWR0aF90b3AgMS41IFwKLSAgIC1sZWZ0IDAgXAotICAgLXNwYWNpbmdfdG9wIDAuNSBcCi0gICAtbGF5ZXJfYm90dG9tIE01IFwKLSAgIC1zdGFja2VkX3ZpYV90b3BfbGF5ZXIgTTkgXAotICAgLXdpZHRoX3JpZ2h0IDMgXAotICAgLWFyb3VuZCBzaGFyZWRfY2x1c3RlciBcCi0gICAtam9nX2Rpc3RhbmNlIDAuOCBcCi0gICAtb2Zmc2V0X2JvdHRvbSAwLjEgXAotICAgLWJvdHRvbSAwIFwKLSAgIC1sYXllcl90b3AgTTUgXAotICAgLXRocmVzaG9sZCAwLjEgXAotICAgLXJpZ2h0IDAgXAotICAgLW9mZnNldF9sZWZ0IDAuMSBcCi0gICAtc3BhY2luZ19yaWdodCAxLjAgXAotICAgLXNwYWNpbmdfbGVmdCAxLjAgXAotICAgLXR5cGUgYmxvY2tfcmluZ3MgXAotICAgLW9mZnNldF9yaWdodCAwLjEgXAotICAgLW9mZnNldF90b3AgMC4xIFwKLSAgIC1sYXllcl9yaWdodCBNNCBcCi0gICAtbmV0cyB7VlNTc29jIFZERGR2ZnN9IFwKLSAgIC1yZWN0YW5nbGUgMSBcCi0gICAtc3RhY2tlZF92aWFfYm90dG9tX2xheWVyIE0xIFwKLSAgIC1sYXllcl9sZWZ0IE00Ci0KLWRlc2VsZWN0QWxsCi0KLXNlbGVjdFJvdXRlQmxrIDU5Ny41MDAgMTI4Ny4yNTAgNjAxLjUwMCAxMjkxLjAwMCBkZWZMYXllckJsa05hbWUgNAotZGVsZXRlU2VsZWN0ZWRGcm9tRlBsYW4KLWRlc2VsZWN0QWxsCi0KLSMjIyBNOCByb3V0aW5nIGJsb2NrYWdlIHRvIGF2b2lkIHNob3J0cyBiL3cgTTggVnMgTTQgb24gbWVtb3J5Ci0jIyMgTTggdmVydGljYWwgc3RyaXBlIGNyZWF0aW9uLCB0aGVyZSBpcyBhIHNob3J0IHdpdGggdmlhIGNyb3NzLW92ZXIgYi93IE04L000IGIvdyBtZW1vcmllcywgYXMgYSB3b3JrIGFyb3VuZCByb3V0aW5nIGJsb2NrYWdlIGlzIHBsYWNlZAotCi1jcmVhdGVSb3V0ZUJsayA4ODUuODg4IDU3Ny40NDcgODk0LjYzOTUgNTkzLjg5MiBcCi0gICAtbGF5ZXIgOAotCi1zZXRBZGRTdHJpcGVPcHRpb24gXAotICAgLWRvbWFpbl9vZmZzZXRfZnJvbV9jb3JlIDEKLXNlbGVjdE9iamVjdCBHcm91cCAgUERkdmZzCi1zZWxlY3RPYmplY3QgR3JvdXAgIFBEdwotCi0jIyMgVG9wIGxldmVsIFZlcnRpY2FsIFN0cmlwZSBjcmVhdGlvbiBvbiAgTTgKLWFkZFN0cmlwZSBcCi0gICAtYmxvY2tfcmluZ190b3BfbGF5ZXJfbGltaXQgTTkgXAotICAgLW1heF9zYW1lX2xheWVyX2pvZ19sZW5ndGggMC44IFwKLSAgIC1vdmVyX3Bvd2VyX2RvbWFpbiAxIFwKLSAgIC1zbmFwX3dpcmVfY2VudGVyX3RvX2dyaWQgR3JpZCBcCi0gICAtcGFkY29yZV9yaW5nX2JvdHRvbV9sYXllcl9saW1pdCBNNSBcCi0gICAtc2V0X3RvX3NldF9kaXN0YW5jZSAzNSBcCi0gICAtc3RhY2tlZF92aWFfdG9wX2xheWVyIE05IFwKLSAgIC1wYWRjb3JlX3JpbmdfdG9wX2xheWVyX2xpbWl0IE05IFwKLSAgIC1zcGFjaW5nIDEuNiBcCi0gICAteGxlZnRfb2Zmc2V0IDU0IFwKLSAgIC14cmlnaHRfb2Zmc2V0IDI1IFwKLSAgIC1tZXJnZV9zdHJpcGVzX3ZhbHVlIDAuMSBcCi0gICAtbGF5ZXIgTTggXAotICAgLWJsb2NrX3JpbmdfYm90dG9tX2xheWVyX2xpbWl0IE01IFwKLSAgIC13aWR0aCA2LjQgXAotICAgLW5ldHMge1ZTU3NvYyBWRERkdmZzfSBcCi0gICAtc3RhY2tlZF92aWFfYm90dG9tX2xheWVyIE01IFwKLSAgIC1hbGxvd19qb2dfYmxvY2tfcmluZyAwIAotCi1kZXNlbGVjdEFsbAotCi1zZWxlY3RSb3V0ZUJsayA4ODUuODkwMCA1NzcuNDQ1MCA4OTQuNjQwMCA1OTMuODkwMCBkZWZMYXllckJsa05hbWUgOAotZGVsZXRlU2VsZWN0ZWRGcm9tRlBsYW4KLQotZGVzZWxlY3RBbGwKLQotIyMjIFRyaW1taW5nIGZsb2F0aW5nIHdpcmUKLWVkaXRTZWxlY3QgXAotICAgLXR5cGUgU3BlY2lhbCBcCi0gICAtbGF5ZXJzIHtNNSBNOCBNOX0KLWVkaXRUcmltIFwKLSAgIC1zZWxlY3RlZAotdWlTZXRUb29sIHNlbGVjdAotZGVzZWxlY3RBbGwKLQotIyMjIFZERHdha2UgY29ubmVjdGlvbgotCi0jIyMgVmVydGljYWwgU3RyaXBlIGNyZWF0aW9uIGZvciAiVkREd2FrZSIgbmV0IG9mICJXQUtFVVAiIGJsb2NrIG9uIE00Ci1hZGRTdHJpcGUgXAotICAgLWFyZWEgeyAyNzUwIDE2MDQgMjc2My42MDAgMTEwNS42MDAgfSBcCi0gICAtYmxvY2tfcmluZ190b3BfbGF5ZXJfbGltaXQgTTUgXAotICAgLXNuYXBfd2lyZV9jZW50ZXJfdG9fZ3JpZCBHcmlkIFwKLSAgIC1zZXRfdG9fc2V0X2Rpc3RhbmNlIDEwIFwKLSAgIC14bGVmdF9vZmZzZXQgMiBcCi0gICAtc3RhY2tlZF92aWFfdG9wX2xheWVyIE01IFwKLSAgIC1zcGFjaW5nIDEuNSBcCi0gICAtZGlyZWN0aW9uIHZlcnRpY2FsIFwKLSAgIC1sYXllciBNNCBcCi0gICAtYmxvY2tfcmluZ19ib3R0b21fbGF5ZXJfbGltaXQgTTQgXAotICAgLXdpZHRoIDggXAotICAgLW5ldHMge1ZERHdha2V9IFwKLSAgIC1zdGFja2VkX3ZpYV9ib3R0b21fbGF5ZXIgTTEKLQotY3JlYXRlT2JzdHJ1Y3QgMjcyNy40ODE1IDExMDEuODM0IDI3NTUuNzI2NSAxMTM4LjE0OQotCi0jIyMgUGFkIHRvIFZERHdha2Ugc3RyaXBlIGNvbm5lY3Rpb24gb24gTTEvTTIKLXNyb3V0ZSBcCi0gICAtbm9CbG9ja1BpbnMgXAotICAgLW5vUGFkUmluZ3MgXAotICAgLW5vQ29yZVBpbnMgXAotICAgLW5vU3RyaXBlcyBcCi0gICAtcGFkUGluQWxsR2VvbXNDb25uZWN0ICBcCi0gICAtdGFyZ2V0VmlhVG9wTGF5ZXIgNSAgXAotICAgLWNyb3Nzb3ZlclZpYVRvcExheWVyIDUgXAotICAgLXN0cmFpZ2h0Q29ubmVjdGlvbnMgeyBzdHJhaWdodFdpdGhEcmNDbGVhbiBzdHJhaWdodFdpdGhDaGFuZ2VzIH0gXAotICAgLWFyZWEgeyAyNzQ1LjYgMTE0NS41IDI4MjQuMyAxMTA0LjYgfSBcCi0gICAtbmV0cyB7VkREd2FrZX0gXAotICAgLWxheWVyQ2hhbmdlVG9wTGF5ZXIgNSAKLQotIyMjIEhvcml6b250YWwgU3RyaXBlIHdoaWNoIGNvbm5lY3RzIHZlcnRpY2FsIFZERHdha2Ugc3RyaXBlIHRvIHRoZSBQYWRzIG9uIE01Ci1hZGRTdHJpcGUgXAotICAgLWFyZWEgeyAyNzA2LjEgMTU5NS43OTUgMjc1NC45MDAgMTYwNS43OTUgfSBcCi0gICAtYmxvY2tfcmluZ190b3BfbGF5ZXJfbGltaXQgTTUgXAotICAgLXNuYXBfd2lyZV9jZW50ZXJfdG9fZ3JpZCBHcmlkIFwKLSAgIC1zZXRfdG9fc2V0X2Rpc3RhbmNlIDEwIFwKLSAgIC15Ym90dG9tX29mZnNldCAxIFwKLSAgIC1zdGFja2VkX3ZpYV90b3BfbGF5ZXIgTTUgXAotICAgLXNwYWNpbmcgMi4wIFwKLSAgIC1kaXJlY3Rpb24gaG9yaXpvbnRhbCBcCi0gICAtbGF5ZXIgTTUgXAotICAgLWJsb2NrX3JpbmdfYm90dG9tX2xheWVyX2xpbWl0IE00IFwKLSAgIC13aWR0aCA4IFwKLSAgIC1uZXRzIHtWRER3YWtlfSBcCi0gICAtc3RhY2tlZF92aWFfYm90dG9tX2xheWVyIE00Ci0KLXNlbGVjdE9ic3RydWN0IDI3MjcuNDAwMCAxMTAxLjgwMDAgMjc1NS44MDAwIDExMzkuNjAwMCBkZWZPYnN0cnVjdE5hbWUKLWRlbGV0ZVNlbGVjdGVkRnJvbUZQbGFuIAotCi0jIyMgUmVtb3ZlIEJsb2NrYWdlIG92ZXIgUExMCi0KLXNlbGVjdFJvdXRlQmxrIDIzMzUuMDAwMCAyMjE2LjkwMDAgMjgxMC4wNDAwIDI4MDkuOTgwMCBkZWZMYXllckJsa05hbWUgNAotZGVsZXRlU2VsZWN0ZWRGcm9tRlBsYW4KLQotY2xlYXJEcmMKLQotIyMjIEJlbG93IGlzIGEgZml4IGZvciBEUkNzIAotCi11aVNldFRvb2wgc2VsZWN0Ci1lZGl0U2VsZWN0IFwKLSAgIC10eXBlIFNwZWNpYWwgXAotICAgLWxheWVycyBNNCBcCi0gICAtZGlyZWN0aW9uIFYgXAotICAgLWFyZWEgMjQzOS4wMDUgMTA5NC45NzUgMjcxNi4zMiAxMTA0LjUyMCBcCi0gICAtc3RhdHVzIHtST1VURUQgRklYRUR9Ci1lZGl0VHJpbSBcCi0gICAtc2VsZWN0ZWQKLWRlc2VsZWN0QWxsCmRpZmYgLS1naXQgYS9mbG93L3Buci9FWEFNUExFUy9JTk5PVlVTL1BMVUcvcHJlX2Fzc2lnbnBpbi50Y2wgYi9mbG93L3Buci9FWEFNUExFUy9JTk5PVlVTL1BMVUcvcHJlX2Fzc2lnbnBpbi50Y2wKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IGY3ZThlMTAuLjAwMDAwMDAKLS0tIGEvZmxvdy9wbnIvRVhBTVBMRVMvSU5OT1ZVUy9QTFVHL3ByZV9hc3NpZ25waW4udGNsCisrKyAvZGV2L251bGwKQEAgLTEsNDQgKzAsMCBAQAotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotIyAgICAgICAgICAgICAgICAgICAgICAgICBQUkUtQVNTSUdOUElOIFBMVUctSU4gCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0jCi0jIFRoaXMgZXhhbXBsZSBwbHVnLWluIHNjcmlwdCBzaG91bGQgYmUgIGNhbGxlZCBiZWZvcmUgaW52b2tpbmcgYXNzaWduUHRuUGluLgotIwotIyAtIEFzc2lnbiBwYXJ0aXRpb24gcGlucwotIyAtIFNldCBwaW4tcGxhY2VtZW50IHBhcmFtZXRlcnMgZm9yIHBpbi1hc3NpZ25tZW50OgotIyAgICAgLSBwaW5EZXB0aCwgdG8gYXZvaWQgbWluLWFyZWEgdmlvbGF0aW9ucyB3aGVuCi0jICAgICAgICBEUkMgaXMgcnVuIGF0IHRoZSBwYXJ0aXRpb24tbGV2ZWwKLSMgICAgIC0gcGluUGl0Y2ggYW5kIHBpbi1sYXllcnMgc2V0IHRvIHNpbmdsZSBsYXllcgotIyAgICAgICBmb3IgZWFjaCBzaWRlIChUL0IvTC9SKQotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCi0jc2V0IHBpbl9kZXB0aCgyKSAwLjQKLSNzZXQgcGluX2RlcHRoKDMpIDAuNAotI3NldCBwaW5fZGVwdGgoNCkgMC40Ci0jc2V0IHBpbl9kZXB0aCg1KSAwLjQKLSNzZXQgcGluX2RlcHRoKDYpIDEuNQotCi0jc2V0IHBpbl9zcGFjaW5nIDIKLQotI3NldCBwaW5fbGF5ZXIoVCkgW2xpc3QgMiA0XQotI3NldCBwaW5fbGF5ZXIoQikgW2xpc3QgMiA0XQotI3NldCBwaW5fbGF5ZXIoTCkgW2xpc3QgMyA1XQotI3NldCBwaW5fbGF5ZXIoUikgW2xpc3QgMyA1XQotCi0jZm9yZWFjaCBwdG4gJHZhcnMocGFydGl0aW9uX2xpc3QpIHsKLSMgICBmb3JlYWNoIGxheWVyIFtsaXN0IDIgMyA0IDVdIHsKLSMgICAgICBzZXRQaW5Db25zdHJhaW50IC1jZWxsICRwdG4gLXRhcmdldF9sYXllcnMgJGxheWVyIC1kZXB0aCAkcGluX2RlcHRoKCRsYXllcikKLSMgICB9Ci0KLSMjIHNwYWNpbmcgZm9yIGFsbCBzaWRlcyBvZiBhIGNlbGwKLSMgICBzZXRQaW5Db25zdHJhaW50IC1jZWxsICRwdG4gLXNwYWNpbmcgJHBpbl9zcGFjaW5nIC1zaWRlIGFsbAotCi0jICAgZm9yZWFjaCBlZGdlICJUIEIgTCBSIiB7Ci0jICAgICAgc2V0UGluQ29uc3RyYWludCAgLWNlbGwgJHB0biAtbGF5ZXIgJHBpbl9sYXllcigkZWRnZSkgLXNpZGUgJGVkZ2UKLSMjIHNwYWNpbmcgZm9yIGVhY2ggc2lkZSBvZiBhIGNlbGw7IGVpdGhlciB1c2UgYmVsb3cgY29tbWFuZCBvciBjb21tYW5kIHVzZWQgZm9yIGFsbCBlZGdlcyBvdXRzaWRlIGZvciBsb29wCi0jICAgICAgc2V0UGluQ29uc3RyYWludCAtY2VsbCAkcHRuIC1zcGFjaW5nICRwaW5fc3BhY2luZyAtc2lkZSAkZWRnZQotCi0jICAgfQotI30KLQotCmRpZmYgLS1naXQgYS9mbG93L3Buci9FWEFNUExFUy9JTk5PVlVTL1BMVUcvcHJlX2N0cy50Y2wgYi9mbG93L3Buci9FWEFNUExFUy9JTk5PVlVTL1BMVUcvcHJlX2N0cy50Y2wKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IGEwMGM5NDMuLjAwMDAwMDAKLS0tIGEvZmxvdy9wbnIvRVhBTVBMRVMvSU5OT1ZVUy9QTFVHL3ByZV9jdHMudGNsCisrKyAvZGV2L251bGwKQEAgLTEsMTEgKzAsMCBAQAotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotIyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUFJFLUNUUyBQTFVHLUlOIAotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotIwotIyBUaGlzIHBsdWctaW4gc2NyaXB0IGlzIGNhbGxlZCBiZWZvcmUgY2xvY2tEZXNpZ24gZnJvbSB0aGUgcnVuX2N0cy50Y2wgZmxvdyBzY3JpcHQuCi0jCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0KLXNldENUU01vZGUgLXRvcFByZWZlcnJlZExheWVyIDcgXAotICAgICAgICAgICAtYm90dG9tUHJlZmVycmVkTGF5ZXIgMyAgXAotICAgICAgICAgICAtcHJlZmVycmVkRXh0cmFTcGFjZSAyCmRpZmYgLS1naXQgYS9mbG93L3Buci9FWEFNUExFUy9JTk5PVlVTL1BMVUcvcHJlX2luaXQudGNsIGIvZmxvdy9wbnIvRVhBTVBMRVMvSU5OT1ZVUy9QTFVHL3ByZV9pbml0LnRjbApkZWxldGVkIGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggNzA5MzM1ZC4uMDAwMDAwMAotLS0gYS9mbG93L3Buci9FWEFNUExFUy9JTk5PVlVTL1BMVUcvcHJlX2luaXQudGNsCisrKyAvZGV2L251bGwKQEAgLTEsMTQgKzAsMCBAQAotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0jICAgICAgICAgICAgICAgICAgICAgICAgICAgUFJFLUlOSVQgUExVRy1JTgotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0jCi0jIFRoaXMgcGx1Zy1pbiBzY3JpcHQgaXMgY2FsbGVkIGJlZm9yZSBpbml0aWFsaXppbmcgdGhlIGRlc2lnbiBkYXRhYmFzZSBmcm9tIHRoZQotIyBydW5faW5pdC50Y2wgZmxvdyBzY3JpcHQuCi0jCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSMKLSMgRXg6IEJlbG93IGNvbW1hbmQgdXNlZCBmb3IgaW5zZXJ0aW5nIGJ1ZmZlcnMgb24gdGllLWhpZ2gvdGllLWxvdyBhc3NpZ24gc3RhdGVtZW50cwotIwotIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0jCi1zZXRJbXBvcnRNb2RlIC1idWZmZXJUaWVBc3NpZ24gJHZhcnMoYnVmZmVyX3RpZV9hc3NpZ24pCmRpZmYgLS1naXQgYS9mbG93L3Buci9FWEFNUExFUy9JTk5PVlVTL1BMVUcvcHJlX21vZGVsX2dlbi50Y2wgYi9mbG93L3Buci9FWEFNUExFUy9JTk5PVlVTL1BMVUcvcHJlX21vZGVsX2dlbi50Y2wKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDkyOWJjOTkuLjAwMDAwMDAKLS0tIGEvZmxvdy9wbnIvRVhBTVBMRVMvSU5OT1ZVUy9QTFVHL3ByZV9tb2RlbF9nZW4udGNsCisrKyAvZGV2L251bGwKQEAgLTEsNjcgKzAsMCBAQAotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotIyBQTFVHIGZpbGVzIGNvbnRhaW4gREVTSUdOIFNQRUNJRklDIGluZm9ybWF0aW9uLCBzbyBwbGVhc2UgcmV2aWV3Ci0jIGFsbCBQTFVHIGZpbGVzIGJlZm9yZSB0aGV5IGFyZSB1c2VkIGJ5IHJ1bl9tb2RlbF9nZW4udGNsIG9yIAotIyBydW5fcHJvdG8udGNsIGFuZCByZW1vdmUgYW55IERUTUYgZGVzaWduIHNwZWNpZmljIGluZm9ybWF0aW9uIAotIyBhbmQgcmVwbGFjZSB3aXRoIGRhdGEgdmFsaWQgZm9yIHlvdXIgZGVzaWduLgotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCi0gICAgaGlzdG9yeSBrZWVwIDMwICAgOyNkZWZhdWx0ID0gMTUKLSAgICBzZXRQcmVmZXJlbmNlIEZsaWdodExpbmVJbk1vdmUgMCA7I21ha2VzIHRoZSBpbnRlcmFjdGl2ZSBtb3Zpbmcgb2YgQkxPQnMvQkJPWGVzIGV4dHJlbWVseSBzbG93Li4uICBzbyB0dXJuaW5nIG9mZi4KLQotCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotIyBMSU1JVEFUSU9OOiBwcm90byBmbG93IHdpbGwgbm90IGFsbG93IGludGVyYWN0aXZlIGNvbnN0cmFpbnRzIHRvIGJlCi0jICBwcmVzZXJ2ZWQgaW4gZGVzaWducyB3aXRoIElMTXMuICBwcm90b3R5cGVfdGltaW5nIHVzZXMgaXRzIG93biAuc2RjIGZpbGVzCi0jICB3aGljaCBuZWVkIHRvIGJlIGhhbmRsZWQgZXhwbGljaXRseSwgYnV0IGludGVyYWN0aXZlIGNvbnN0cmFpbnRzCi0jICB3cml0ZXMgb3V0IG9uZSBzZGMgZmlsZSBtZXJnaW5nIGFsbCB0aGUgY29uc3RyYWludHMuCi0jICBTaW5jZSBwcm90b190aW1pbmcgbW9kaWZpZXMgdGhlIHRpbWluZyBncmFwaCwgRkUgdGhpbmtzIHRoYXQgc29tZSBpbnRlcmFjdGl2ZSBjb25zdHJhaW50cyBoYXZlIGJlZW4KLSMgIGVudGVyZWQgYW5kIHNvIHVuZmxhdHRlbklsbSB3cml0ZXMgb3V0IHRoZSBjb25zdHJhaW50cyB0byBvbmUgZmlsZSwgYW5kIHNvIHdlIGxvc2UKLSMgIHRoZSBwcm90b0ludGVyZmFjZUxvZ2ljLnNkYyBmaWxlIHJlZmVyZW5jZS4KLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgc2V0IFJkYV9JTE06OmlsbWdQcmVzZXJ2ZUludGVyYWN0aXZlQ29uc3RyIDAKLQotICAgIGNhdGNoIHtzZXRMYXllclByZWZlcmVuY2UgcG93ZXIgLWlzVmlzaWJsZSAwfQotICAgIGNhdGNoIHtzZXRMYXllclByZWZlcmVuY2UgcG93ZXIgLWlzU2VsZWN0YWJsZSAwfQotICAgIGNhdGNoIHtzZXRMYXllclByZWZlcmVuY2UgYnVtcDAgLWlzVmlzaWJsZSAwfQotICAgIGNhdGNoIHtzZXRMYXllclByZWZlcmVuY2UgYnVtcDAgLWlzU2VsZWN0YWJsZSAwfQotICAgIGNhdGNoIHtzZXRMYXllclByZWZlcmVuY2UgYnVtcDEgLWlzVmlzaWJsZSAwfQotICAgIGNhdGNoIHtzZXRMYXllclByZWZlcmVuY2UgYnVtcDEgLWlzU2VsZWN0YWJsZSAwfQotICAgIGNhdGNoIHtzZXRMYXllclByZWZlcmVuY2UgYnVtcDIgLWlzVmlzaWJsZSAwfQotICAgIGNhdGNoIHtzZXRMYXllclByZWZlcmVuY2UgYnVtcDIgLWlzU2VsZWN0YWJsZSAwfQotICAgIGNhdGNoIHtzZXRMYXllclByZWZlcmVuY2UgYnVtcDMgLWlzVmlzaWJsZSAwfQotICAgIGNhdGNoIHtzZXRMYXllclByZWZlcmVuY2UgYnVtcDMgLWlzU2VsZWN0YWJsZSAwfQotICAgIGNhdGNoIHtzZXRMYXllclByZWZlcmVuY2UgY292ZXJDZWxsIC1pc1Zpc2libGUgMH0KLSAgICBjYXRjaCB7c2V0TGF5ZXJQcmVmZXJlbmNlIGNvdmVyQ2VsbCAtaXNTZWxlY3RhYmxlIDB9Ci0gICAgY2F0Y2gge3NldExheWVyUHJlZmVyZW5jZSBNW2V4cHIgMSArIFtnZXRNYXhSb3V0ZUxheWVyXV1QaW4gLWlzVmlzaWJsZSAwfQotICAgIGNhdGNoIHtzZXRMYXllclByZWZlcmVuY2UgbGF5ZXJCbGsgLWlzVmlzaWJsZSAwfQotICAgIGNhdGNoIHtzZXRMYXllclByZWZlcmVuY2UgdGV4dCAtaXNWaXNpYmxlIDB9Ci0KLQotICAjU29tZSBkZXNpZ25zIG5lZWQgdGhlc2Ugc2V0IGZvciBwcm9wZXIgcHJvcGFnYXRpb24gb2YgY2FzZV9hbmFseXNpcywgCi0gICMgIGJ1dCB0aGVzZSBhcmUgbm90IGRlZmF1bHQgc2V0dGluZ3MsCi0gICMgIHNvIG1ha2Ugc3VyZSB0aGF0IHRoZXNlIGFyZSBuZWNlc3NhcnkgZm9yIHlvdXIgbmV3IGRlc2lnbjoKLSAgI1NldHRpbmcgdGhpcyB0byBUUlVFIHdpbGwgZ2l2ZSBiZXR0ZXIgcmVkdWN0aW9uIHJhdGlvIChpbiBzb21lIGNhc2UgdmVyeSBzaWduaWZpY2FudCBpbXByb3ZlbWVudCksCi0gICMgIGhvd2V2ZXIsIG5vdGUgdGhhdCB3aGVuIGNvbXBhcmluZyBudW1iZXIgb2YgdG9wLWxldmVsIHBhdGhzIGZ1bGwgbmV0bGlzdCB2cy4gZmxleG1vZGVsIG5ldGxpc3QsCi0gICMgIHRoZXJlIHdpbGwgcHJvYmFibHkgYmUgYSBkaWZmZXJlbnQgbnVtYmVyIG9mIHBhdGhzIGlmIHRvcC1sZXZlbCBpcyB1c2luZyB0aGUgZGVmYXVsdCBvZiBGQUxTRToKLSAgICBzZXRfZ2xvYmFsIHRpbWluZ19jYXNlX2FuYWx5c2lzX2Zvcl9zZXF1ZW50aWFsX3Byb3BhZ2F0aW9uIHRydWUKLSAgICBzZXRBbmFseXNpc01vZGUgLWNhc2VBbmFseXNpcyB0cnVlICAtc2VxdWVudGlhbENvbnN0UHJvcCB0cnVlCi0gICAgc2V0X2dsb2JhbCB0aW1pbmdfY2FzZV9hbmFseXNpc19mb3JfaWNnX3Byb3BhZ2F0aW9uIGFsd2F5cwotCi0gICAgc2V0X2dsb2JhbCByZXBvcnRfdGltaW5nX2Zvcm1hdCB7dGltaW5nX3BvaW50IGNlbGwgZGVsYXkgZmFub3V0IGxvYWQgc2xld30KLSAgICBzZXRfdGFibGVfc3R5bGUgLW5hbWUgcmVwb3J0X3RpbWluZyAtbm9fZnJhbWUgLWluZGVudCAwCi0KLSAgICB3aW4KLSAgICBzZXREcmF3VmlldyBmcGxhbgotCi0gICAgI3NldF9wcm90b19tb2RlIC1jcmVhdGVfZGlyIHByb3RvX21vZGVsCi0KLQotICAjc3BlY2lmeSBmbGV4bW9kZWxzIChDT01NRU5UIFRIRVNFIE9VVCBGT1IgWU9VUiBERVNJR04pOgotICAjICBzZXRfcHJvdG9fbW9kZWwgLW1vZGVsIHB0bl93cmFwcGVyICAgIC10eXBlIGZsZXhfbW9kdWxlCi0gICMgIHNldF9wcm90b19tb2RlbCAtbW9kZWwgdGRzcF9jb3JlICAtdHlwZSBmbGV4X21vZHVsZQotCi0KLSAgIyBVTkNPTU1FTlQgdGhpcyBsaW5lIGZvciBzZWxlY3RpbmcgYWxsIG1vZGVscyBmb3Igcm91dGluZyBibG9ja2FnZQotICAjIGNoYXJhY3Rlcml6YXRpb24uIEJ5IGRlZmF1bHQgb25seSAxMCUgb2YgdGhlIG1vZGVscyB3aWxsIGJlIHVzZWQKLSAgIyBzZXRfcHJvdG9fbW9kZSAtY2hhcmFjdGVyaXplX3BlcmNlbnRfcnRfYmxvY2thZ2UgMS4wCi0KZGlmZiAtLWdpdCBhL2Zsb3cvcG5yL0VYQU1QTEVTL0lOTk9WVVMvUExVRy9wcmVfcGFydGl0aW9uLnRjbCBiL2Zsb3cvcG5yL0VYQU1QTEVTL0lOTk9WVVMvUExVRy9wcmVfcGFydGl0aW9uLnRjbApkZWxldGVkIGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggYjQ1MDgzMC4uMDAwMDAwMAotLS0gYS9mbG93L3Buci9FWEFNUExFUy9JTk5PVlVTL1BMVUcvcHJlX3BhcnRpdGlvbi50Y2wKKysrIC9kZXYvbnVsbApAQCAtMSw0NCArMCwwIEBACi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0jICAgICAgICAgICAgICAgICAgICAgICAgIFBSRS1QQVJUSVRJT04gUExVRy1JTiAKLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSMKLSMgVGhpcyBwbHVnLWluIHNjcmlwdCBpcyBjYWxsZWQgYmVmb3JlIHBhcnRpdGlvbmluZyBpbiB0aGUgcnVuX3BhcnRpdGlvbi50Y2wgc2NyaXB0LgotIwotIyAtIEFzc2lnbiBwYXJ0aXRpb24gcGlucwotIyAtIFNldCBwaW4tcGxhY2VtZW50IHBhcmFtZXRlcnMgZm9yIHBpbi1hc3NpZ25tZW50OgotIyAgICAgLSBwaW5EZXB0aCwgdG8gYXZvaWQgbWluLWFyZWEgdmlvbGF0aW9ucyB3aGVuIAotIyAgICAgICAgRFJDIGlzIHJ1biBhdCB0aGUgcGFydGl0aW9uLWxldmVsCi0jICAgICAtIHBpblBpdGNoIGFuZCBwaW4tbGF5ZXJzIHNldCB0byBzaW5nbGUgbGF5ZXIgCi0jICAgICAgIGZvciBlYWNoIHNpZGUgKFQvQi9ML1IpCi0jIC0gRml4IHRoZSBwaW4gbG9jYXRpb25zIGFmdGVyIGFzc2lnbm1lbnQKLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLQotc2V0IHBpbl9kZXB0aCgyKSAwLjQKLXNldCBwaW5fZGVwdGgoMykgMC40Ci1zZXQgcGluX2RlcHRoKDQpIDAuNAotc2V0IHBpbl9kZXB0aCg1KSAwLjQKLXNldCBwaW5fZGVwdGgoNikgMS41Ci0KLXNldCBwaW5fc3BhY2luZyAyCi0KLXNldCBwaW5fbGF5ZXIoVCkgW2xpc3QgMiA0XQotc2V0IHBpbl9sYXllcihCKSBbbGlzdCAyIDRdCi1zZXQgcGluX2xheWVyKEwpIFtsaXN0IDMgNV0KLXNldCBwaW5fbGF5ZXIoUikgW2xpc3QgMyA1XQotCi1mb3JlYWNoIHB0biAkdmFycyhwYXJ0aXRpb25fbGlzdCkgewotICAgZm9yZWFjaCBsYXllciBbbGlzdCAyIDMgNCA1XSB7Ci0gICAgICBzZXRMYXllclBpbkRlcHRoIC1jZWxsICRwdG4gLWxheWVyICRsYXllciAtZGVwdGggJHBpbl9kZXB0aCgkbGF5ZXIpCi0gICB9Ci0KLSAgIHNldE1pblBpblNwYWNpbmdPbkVkZ2UgLWNlbGwgJHB0biAtc3BhY2luZyAkcGluX3NwYWNpbmcKLQotICAgZm9yZWFjaCBlZGdlICJUIEIgTCBSIiB7Ci0gICAgICBzZXRBbGxvd2VkUGluTGF5ZXJzT25FZGdlIC1jZWxsICRwdG4gLWVkZ2UgJGVkZ2UgLWxheWVyICRwaW5fbGF5ZXIoJGVkZ2UpCi0gICB9Ci19Ci0KLWFzc2lnblB0blBpbgotCi1zZXRQdG5QaW5TdGF0dXMgKiAqIGZpeGVkCi0KZGlmZiAtLWdpdCBhL2Zsb3cvcG5yL0VYQU1QTEVTL0lOTk9WVVMvUExVRy9wcmVfcGxhY2UudGNsIGIvZmxvdy9wbnIvRVhBTVBMRVMvSU5OT1ZVUy9QTFVHL3ByZV9wbGFjZS50Y2wKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IGNlZWVkYWYuLjAwMDAwMDAKLS0tIGEvZmxvdy9wbnIvRVhBTVBMRVMvSU5OT1ZVUy9QTFVHL3ByZV9wbGFjZS50Y2wKKysrIC9kZXYvbnVsbApAQCAtMSw0MSArMCwwIEBACi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSMgICAgICAgICAgICAgICAgICAgICAgICAgIFBSRS1QTEFDRSBQTFVHLUlOCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSMKLSMgVGhpcyBwbHVnLWluIHNjcmlwdCBpcyBjYWxsZWQgYmVmb3JlIHBsYWNlRGVzaWduIGZyb20gdGhlIHJ1bl9wbGFjZS50Y2wgZmxvdwotIyBzY3JpcHQuCi0jCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSMgRXhhbXBsZSB0YXNrcyBpbmNsdWRlOgotIyAgICAgICAgICAtIFBvd2VyIHBsYW5uaW5nIHJlbGF0ZWQgdGFza3Mgd2hpY2ggaW5jbHVkZXMKLSMgICAgICAgICAgICAtIFBvd2VyIHBsYW5uaW5nIGZvciBwb3dlciBkb21haW5zIChyaW5nL3N0cmFwIGNyZWF0aW9ucykKLSMgICAgICAgICAgICAtIFBvd2VyIFNodXQtb2ZmIGNlbGwgcG93ZXIgaG9va3VwCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0jIyMgcG93ZXIgcGxhbm5pbmcgCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi1zb3VyY2UgUExVRy9wb3dlcl9wbGFubmluZy50Y2wKLQotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0jIyMgQWRkIHBsYWNlbWVudCBibG9ja2FnZXMKLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotc291cmNlIFBMVUcvY3JlYXRlX2Jsb2NrYWdlcy50Y2wKLQotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSMjIyBzcGVjaWZ5aW5nIGNlbGwgcGFkaW5nIGZvciBkb3VibGUgaGVpZ2h0IGNlbGxzOyAKLSMjIyB0aGlzIGlzIGFuIHdvcmsgYXJvdW5kIGZvciBPRC5BLjEgdmlvbGF0aW9ucyBzaG93aW5nIGluIFBWUy4gCi0jIyMgSGVyZSB3ZSBhcmUgcHJvdmlkaW5nIDIgdW5pdCBjZWxsIHNwYWNpbmcgYi93IGRvdWJsZSBoZWlnaHQgY2VsbHMuCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotc2V0IGNlbGwge0hFQURFUiogU1JQRyogQU9OQlVGKn0KLQotZm9yZWFjaCBjZWxsMSAkY2VsbCB7Ci0gICBzcGVjaWZ5Q2VsbFBhZCAkY2VsbDEgLXJpZ2h0IDIgLWxlZnQgMiAKLX0KLQotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotIyMjIE5vbi1kZWZhdWx0IHBsYWNlbWVudCBzZXR0aW5ncyBmb3IgTFZMIHNoaWZ0ZXIgY2VsbCBwbGFjZW1lbnQKLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLWlmIHtbaW5mbyBleGlzdHMgdmFycyhjcGZfZmlsZSldfSB7Ci0gICBzZXRQbGFjZU1vZGUgLWRpdmlkZWRTaGlmdGVyUm93cyBmYWxzZQotfQpkaWZmIC0tZ2l0IGEvZmxvdy9wbnIvRVhBTVBMRVMvSU5OT1ZVUy9QTFVHL3ByZV9wcmVjdHMudGNsIGIvZmxvdy9wbnIvRVhBTVBMRVMvSU5OT1ZVUy9QTFVHL3ByZV9wcmVjdHMudGNsCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDc1NQppbmRleCA2MTUxYmUyLi4wMDAwMDAwCi0tLSBhL2Zsb3cvcG5yL0VYQU1QTEVTL0lOTk9WVVMvUExVRy9wcmVfcHJlY3RzLnRjbAorKysgL2Rldi9udWxsCkBAIC0xLDE2ICswLDAgQEAKLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSMgICAgICAgICAgICAgICAgICAgICAgICAgICBQUkUtUFJFX0NUUyBQTFVHLUlOIAotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotIwotIyBUaGlzIHBsdWctaW4gc2NyaXB0IGlzIGNhbGxlZCBiZWZvcmUgb3B0RGVzaWduIC1wcmVDVFMgZnJvbSB0aGUgcnVuX3ByZWN0cy50Y2wgCi0jIGZsb3cgc2NyaXB0LgotIwotIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIyBCeSBkZWZhdWx0IFNPQ0UgZG9lcyBhbHdheXMtb24tbmV0IHN5bnRoZXNpcyBmb3IgU1JQRyBjb250cm9sIHNpZ25hbCBhbmQgUFNPIGVuYWJsZQotIyBzaWduYWxzIGFzIHBhcnQgb2Ygb3B0RGVzaWduIC1wcmVDVFMsIGJ1dCB0aGlzIGNhbiBiZSBtYW51YWxseSBkb25lIGZvciBzcGVjaWZpYyBuZXRzIGlmCi0jIG5lY2Vzc2FyeS4gIFRvIGRvIHRoaXMsIGRlZmluZSB0aGUgYXBwcm9wcmlhdGUgdmFyaWFibGVzIGluIHRoZSBscF9jb25maWcudGNsIGZpbGUKLSMgYW5kIHVuY29tbWVudCB0aGUgZm9sbG93aW5nIGNvbW1hbmQKLSMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLTo6RkZfRURJOjpidWZmZXJfYWx3YXlzX29uX25ldHMKLQotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwpkaWZmIC0tZ2l0IGEvZmxvdy9wbnIvRVhBTVBMRVMvSU5OT1ZVUy9pbm5vdnVzX2NvbmZpZy5jcGYudGNsIGIvZmxvdy9wbnIvRVhBTVBMRVMvSU5OT1ZVUy9pbm5vdnVzX2NvbmZpZy5jcGYudGNsCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDc1NQppbmRleCA2ZDYzYzZiLi4wMDAwMDAwCi0tLSBhL2Zsb3cvcG5yL0VYQU1QTEVTL0lOTk9WVVMvaW5ub3Z1c19jb25maWcuY3BmLnRjbAorKysgL2Rldi9udWxsCkBAIC0xLDIxNCArMCwwIEBACi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0jIEVuYWJsZSBvbkNoaXBWYXJpYXRpb24gKGZvciBNTU1DIGZsb3dzKS4gIE9wdGlvbnMgYXJlOgotIyBwcmVfcG9zdGN0cywgcHJlX3Bvc3Ryb3V0ZSwgcHJlX3Bvc3Ryb3V0ZV9zaSwgcHJlX3NpZ25vZmYsIGZhbHNlCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi1zZXQgdmFycyhlbmFibGVfb2N2KSAgICAgICAgICAgcHJlX3Bvc3Ryb3V0ZQotCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0jIE9wdGlvbmFsbHkgZW5hYmxlIGNwcHI7IG9wdGlvbnMgYXJlOiBzZXR1cCwgaG9sZCwgYm90aCwgbm9uZQotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotc2V0IHZhcnMoZW5hYmxlX2NwcHIpICAgICAgICAgIGJvdGgKLQotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotIyBPcHRpb25hbGx5IGVuYWJsZSBzaWduYWxTdG9ybSBkZWxheSBjYWxjdWxhdGlvbiBkdXJpbmcgcG9zdHJvdXRlCi0jIGFuZCBwb3N0cm91dGVfc2kgc3RlcHMuIFdoZW4gZmFsc2UsIGl0IGdldHMgYXBwbGllZCBvbmx5IGR1cmluZwotIyB0aGUgc2lnbm9mZiBzdGVwCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi1zZXQgdmFycyhlbmFibGVfc3MpICAgICAgICAgICAgZmFsc2UKLQotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotIyAgICAgICAgICAgICAgICAgICAgICBQbGFjZW1lbnQgT3B0aW9ucwotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotI3NldCB2YXJzKGluX3BsYWNlX29wdCkgICAgICAgICB0cnVlCi1zZXQgdmFycyhjbG9ja19nYXRlX2F3YXJlKSAgICAgdHJ1ZQotc2V0IHZhcnMoY29uZ2VzdGlvbl9lZmZvcnQpICAgIGhpZ2gKLQotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotIyAgICAgICAgICAgICAgICAgICAgIFRpZS9GaWxsZXIvVGFwIENlbGwgT3B0aW9ucwotIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIyAgICAgICAgICAgICAgICAgICAgICAgICBUaWUgY2VsbCBpbmZvcm1hdGlvbgotIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotc2V0IHZhcnModGllX2NlbGxzKSAgICAgICAgICAgICJUSUVIIFRJRUwiCi0jIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0jICAgICAgICAgICAgICAgICAgICAgRmlsbGVyIGNlbGwgaW5mb3JtYXRpb24KLSMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLXNldCB2YXJzKGZpbGxlcl9jZWxscykgICAgICAgICAiRklMTEVSNjQgRklMTEVSMzIgRklMTEVSMTYgRklMTEVSOCBGSUxMRVI0IEZJTExFUjIgRklMTEVSMSIKLSMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0jICAgICAgICAgICAgICAgICAgICAgV2VsbHRhcCBjZWxsIGluZm9ybWF0aW9uCi0jIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIyAgICB2ZXJpZnlfcnVsZSA6IG1heGltdW0gZGlzdGFuY2UgKGluIG1pY3JvbnMpIGJldHdlZW4gd2VsbHRhcCBjZWxscyBhbmQgc3RhbmRhcmQgY2VsbHMgCi0jICAgICAgICAgICAgICAgICAgaW4gbWljcm9ucwotIyAgICAgICAgbWF4X2dhcCA6IHNwZWNpZmllcyB0aGUgbWF4aW11bSBkaXN0YW5jZSBmcm9tIHRoZSByaWdodCBlZGdlIG9mIG9uZSB3ZWxsLXRhcCBjZWxsIAotIyAgICAgICAgICAgICAgICAgIHRvIHRoZSBsZWZ0IGVkZ2Ugb2YgIHRoZSBmb2xsb3dpbmcgd2VsbC10YXAgY2VsbCBpbiB0aGUgc2FtZSByb3cKLSMgIGNlbGxfaW50ZXJ2YWwgOiBzcGVjaWZpZXMgdGhlIG1heGltdW0gZGlzdGFuY2UgZnJvbSB0aGUgY2VudGVyIG9mIG9uZSB3ZWxsLXRhcCBjZWxsIAotIyAgICAgICAgICAgICAgICAgIHRvIHRoZSBjZW50ZXIgb2YgdGhlIGZvbGxvd2luZyB3ZWxsLXRhcCBjZWxsIGluIHRoZSBzYW1lIHJvdwotIwotIyBOT1RFOiBtYXhfZ2FwIGFuZCBjZWxsX2ludGVydmFsIHBhcmFtZXRlcnMgYXJlIG11dHVhbGx5IGV4Y2x1c2l2ZSwgdXNlciBoYXMgdG8gZGVmaW5lIAotIyAgICAgICBvbmx5IG9uZSBvZiB0aGVzZSBwYXJhbWV0ZXJzIHRvIGFkZCB3ZWxsdGFwIGNlbGxzCi0jCi0jIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotI3NldCB2YXJzKHdlbGx0YXBzKSAgICAgICAgICAgICAgICAgICAgICAgICA8d2VsbHRhcCBjZWxscz4KLSNzZXQgdmFycyh3ZWxsdGFwcyxjaGVja2VyYm9hcmQpICAgICAgICAgICAgPHRydWUgb3IgZmFsc2U+Ci0jc2V0IHZhcnMod2VsbHRhcHMsbWF4X2dhcCkgICAgICAgICAgICAgICAgIDxtYXggZ2FwPgotI3NldCB2YXJzKHdlbGx0YXBzLGNlbGxfaW50ZXJ2YWwpICAgICAgICAgICA8Y2VsbCBpbnRlcnZhbD4KLSNzZXQgdmFycyh3ZWxsdGFwcyx2ZXJpZnlfcnVsZSkgICAgICAgICAgICAgPGRpc3RhbmNlIGludGVydmFsPgotIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSMgICAgICAgICAgICAgICAgICAgICAgICAgIEVuZGNhcCBjZWxsIGluZm9ybWF0aW9uCi0jIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotI3NldCB2YXJzKHByZV9lbmRjYXApCSA8cHJlIGVuZGNhcCBjZWxsPgotI3NldCB2YXJzKHBvc3RfZW5kY2FwKSAgIDxwb3N0IGVuZGNhcCBjZWxsPgotCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSMgICAgICAgICAgICAgICAgICAgICAgICAgICAgTFAvQ1BGIEZsb3cgT3B0aW9ucwotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi1zZXQgdmFycyhjcGZfZmlsZSkgICAgICAgJHZhcnMoZGVzaWduX3Jvb3QpL0RBVEEvY2hpcF90b3BfMS4wZV9pbnRlZ3JhdGVkX2Zvcl9iYWNrZW5kLmNwZgotI3NldCB2YXJzKGNwZl9rZWVwX3Jvd3MpIDx0cnVlIHwgZmFsc2U+Ci0jIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIyBUaGUgdmFycyhwb3dlcl9kb21haW5zKSBpcyBvcHRpb25hbC4gIElmIG5vdCBkZWZpbmVkLCB0aGUgcG93ZXIKLSMgcG93ZXIgZG9tYWluIGxpc3Qgd2lsbCBiZSBwaWNrZWQgdXAgYXV0b21hdGljYWxseQotIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLXNldCB2YXJzKHBvd2VyX2RvbWFpbnMpICJQRHBsbCBQRHcgUERyb20gUERzbWMgUER3YWtldXAgUERfM3AzdiBQRF8ycDV2IGlfYXBiX3N1YnN5c3RlbV9faV91YXJ0MV9fUER1YXJ0X1NXIFBEZHZmcyIKLSMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0jIEFkZGl0aW9uYWwgb3B0aW9uYWwgbG93IHBvd2VyIHZhcmlhYmxlcyBjYW4gYmUgZGVmaW5lZCBpbiB0aGUgbHBfY29uZmlnLnRjbCBmaWxlLgotIyBUaGVzZSB2YXJpYWJsZXMgYXJlIGludGVuZGVkIHRvIGhlbHAgYXV0b21hdGUgc29tZSBvZiB0aGUgbW9zdCBjb21tb24gc3RlcHMgaW4gdGhlIAotIyBMUC9DUEYgZmxvdwotIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLQotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2xvY2sgVHJlZSBPcHRpb25zCi0jIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotc2V0IHZhcnMocm91dGVfY2xvY2tfbmV0cykgIHRydWUKLSNzZXQgdmFycyhjdHNfY2VsbHMpICAgICAgICA8bGlzdCBvZiBjbG9jayBidWZmZXJzPgotI3NldCB2YXJzKGNsb2NrX2dhdGVfY2VsbHMpIDxsaXN0IG9mIGNsb2NrIGdhdGluZyBjZWxscz4KLSNzZXQgdmFycyhjbG9ja19lY28pICAgICAgICBmYWxzZQotCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotIyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9wdGltaXphdGlvbiBPcHRpb25zCi0jIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotI3NldCB2YXJzKGhpZ2hfdGltaW5nX2VmZm9ydCkgICAgICAgICAgICAgdHJ1ZQotc2V0IHZhcnMoY2xvY2tfZ2F0ZV9hd2FyZSkgICAgICAgICAgICAgICB0cnVlCi1zZXQgdmFycyhjcml0aWNhbF9yYW5nZSkgICAgICAgICAgICAgICAgIDAKLXNldCB2YXJzKGR5bmFtaWNfcG93ZXJfZWZmb3J0KSAgICAgICAgICAgbm9uZQotc2V0IHZhcnMobGVha2FnZV9wb3dlcl9lZmZvcnQpICAgICAgICAgICBub25lCi1zZXQgdmFycyhwcmVzZXJ2ZV9hc3NlcnRpb25zKSAgICAgICAgICAgIGZhbHNlCi1zZXQgdmFycyh1c2VmdWxfc2tldykgICAgICAgICAgICAgICAgICAgIGZhbHNlCi1zZXQgdmFycyhmaXhfaG9sZCkgICAgICAgICAgICAgICAgICAgICAgIHRydWUKLXNldCB2YXJzKGZpeF9ob2xkX2lnbm9yZV9pb3MpICAgICAgICAgICAgZmFsc2UKLXNldCB2YXJzKGZpeF9ob2xkX2FsbG93X3Ruc19kZWdyYWRhdGlvbikgZmFsc2UKLXNldCB2YXJzKHNrZXdfYnVmZmVycykgIlwKLSAgIENLQlVGRkVSRDggXAotICAgQ0tCVUZGRVJENiBcCi0gICBDS0JVRkZFUkQ0IFwKLSAgIENLQlVGRkVSRDMgXAotICAgQ0tCVUZGRVJEMiBcCi0gICBDS0JVRkZFUkQxNiBcCi0gICBDS0JVRkZFUkQxMiBcCi0gICBDS0JVRkZFUkQxIFwKLSAgIENLQlVGRkVSRDAgXAotICAgQ0tJTlZFUlRFUkQ4IFwKLSAgIENLSU5WRVJURVJENiBcCi0gICBDS0lOVkVSVEVSRDQgXAotICAgQ0tJTlZFUlRFUkQzIFwKLSAgIENLSU5WRVJURVJEMiBcCi0gICBDS0lOVkVSVEVSRDE2IFwKLSAgIENLSU5WRVJURVJEMTIgXAotICAgQ0tJTlZFUlRFUkQxIFwKLSAgIENLSU5WRVJURVJEMCBcCi0iCi1zZXQgdmFycyhkZWxheV9jZWxscykgICJERUxBWTAgREVMQVkwMDUgREVMQVkwMSBERUxBWTAxNSBERUxBWTAyIERFTEFZMSBERUxBWTIgREVMQVkzIERFTEFZNCIKLXNldCB2YXJzKGRvbnRfdXNlX2xpc3QpICIqQ0sqIEJVRlQqICBBTlRFTk5BKiBEQ0FQKiBERUxBWSogR0FURUFSUkFZKiBIRUFERVIqIgotI3NldCB2YXJzKGRlbGF5X2NlbGxzKSA8bGlzdCBvZiBkZWxheSBjZWxscz4KLSNzZXQgdmFycyhkb250X3VzZV9saXN0KSAiIgotI3NldCB2YXJzKHVzZV9saXN0KSAiIgotI3NldCB2YXJzKGFjdGl2aXR5X2ZpbGUpICAgICAgIDxhY3Rpdml0eSBmaWxlPgotI3NldCB2YXJzKGFjdGl2aXR5X2ZpbGVfdHlwZSkgIDxUQ0YgfCBTQUYgfCBWQ0Q+Ci1zZXQgdmFycyhyZXBvcnRfcG93ZXIpICAgICAgICAgdHJ1ZQotI3NldCB2YXJzKHBvd2VyX2FuYWx5c2lzX3ZpZXcpIDxwb3dlciBhbmFseXNpcyB2aWV3Pgotc2V0IHZhcnMocG93ZXJfYW5hbHlzaXNfdmlldykgIEFWZGVmYXVsdF9XQwotCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotIyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5hbm9yb3V0ZSBPcHRpb25zCi0jIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotc2V0IHZhcnMobXVsdGlfY3V0X2VmZm9ydCkgICAgIGxvdwotc2V0IHZhcnMobGl0aG9fZHJpdmVuX3JvdXRpbmcpIGZhbHNlCi0KLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0jICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU2lnbmFsIEludGVncml0eSBPcHRpb25zCi0jIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotc2V0IHZhcnMoZGVsdGFfZGVsYXlfdGhyZXNob2xkKSAxMAotc2V0IHZhcnMoY291cGxpbmdfY190aHJlc2gpICAgICAwLjAxCi1zZXQgdmFycyhyZWxhdGl2ZV9jX3RocmVzaCkgICAgIDAuMDEKLXNldCB2YXJzKHRvdGFsX2NfdGhyZXNoKSAgICAgICAgMAotc2V0IHZhcnMoY2VsdGljX3NldHRpbmdzKSAgICAgICAic2V0X3ZpcnR1YWxfYXR0YWNrZXIgLW1vZGUgY3VycmVudCAtZ3RvbCAwLjAyNSIKLSNzZXQgdmFycyhzaV9hbmFseXNpc190eXBlKSAgICAgIHBlc3NpbWlzdGljCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotIyBPcHRpb25hbGx5IGRlZmluZSB0aGUgZm9sbG93aW5nIHdoZW4gYXBwbGljYWJsZQotIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLXNldCB2YXJzKGFzc2lnbl9idWZmZXIpICAgICAgIHsxIC1idWZmZXIgQlVGRkQyfQotc2V0IHZhcnMoYnVmZmVyX3RpZV9hc3NpZ24pICB0cnVlCi0jc2V0IHZhcnMocHdybmV0KSAgICAgICAgICAgICA8bGlzdCBvZiBwb3dlciBuZXRzPgotI3NldCB2YXJzKGduZG5ldCkgICAgICAgICAgICAgPGxpc3Qgb2YgZ3JvdW5kIG5ldHM+Ci0jc2V0IHZhcnMoanRhZ19jZWxscykgICAgICAgICA8bGlzdCBvZiBqdGFnIGNlbGxzPgotI3NldCB2YXJzKGp0YWdfcm93cykgICAgICAgICAgPG51bWJlciBvZiByb3dzIGZvciBqdGFnIHBsYWNlbWVudD4KLXNldCB2YXJzKHNwYXJlX2NlbGxzKSAgICAgICAgIipzcGFyZSoiCi0jc2V0IHZhcnMoZ2RzX2ZpbGVzKSAgICAgICAgICA8bGlzdCBvZiBnZHMgZmlsZXM+Ci1zZXQgdmFycyhnZHNfbGF5ZXJfbWFwKSAgICAgICIkdmFycyhkZXNpZ25fcm9vdCkvTElCUy9URUNITk9MT0dZL2dkczIubWFwIgotc2V0IHZhcnMocXJjX2xheWVyX21hcCkgICAgICAiJHZhcnMoZGVzaWduX3Jvb3QpL0RBVEEvbGF5ZXJtYXAiCi0jc2V0IHZhcnMocXJjX2xpYnJhcnkpICAgICAgICA8cXJjIGxpYnJhcnkgZGlyZWN0b3J5PgotI3NldCB2YXJzKHFyY19jb25maWdfZmlsZSkgICAgPHFyYyBjb25maWcgZmlsZT4KLQotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSMgVGhlIGZvbGxvd2luZyBwbHVnaW5zIGFyZSBzdXBwb3J0ZWQgd2hlbiBuZWVkZWQgLi4uCi0jIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotc2V0IHZhcnMoYWx3YXlzX3NvdXJjZV90Y2wpIAkJCSR2YXJzKHBsdWdfZGlyKS9hbHdheXNfc291cmNlLnRjbAotc2V0IHZhcnMoZmluYWxfYWx3YXlzX3NvdXJjZV90Y2wpIAkJJHZhcnMocGx1Z19kaXIpL2ZpbmFsX2Fsd2F5c19zb3VyY2UudGNsCi1zZXQgdmFycyhwcmVfaW5pdF90Y2wpIAkJCQkJJHZhcnMocGx1Z19kaXIpL3ByZV9pbml0LnRjbAotc2V0IHZhcnMocG9zdF9pbml0X3RjbCkgCQkJCSR2YXJzKHBsdWdfZGlyKS9wb3N0X2luaXQudGNsCi1zZXQgdmFycyhwcmVfcGxhY2VfdGNsKSAJCQkJJHZhcnMocGx1Z19kaXIpL3ByZV9wbGFjZS50Y2wKLXNldCB2YXJzKHBvc3RfcGxhY2VfdGNsKSAJCQkJJHZhcnMocGx1Z19kaXIpL3Bvc3RfcGxhY2UudGNsCi1zZXQgdmFycyhwcmVfcHJlY3RzX3RjbCkgCQkJCSR2YXJzKHBsdWdfZGlyKS9wcmVfcHJlY3RzLnRjbAotc2V0IHZhcnMocG9zdF9wcmVjdHNfdGNsKSAJCQkJJHZhcnMocGx1Z19kaXIpL3Bvc3RfcHJlY3RzLnRjbAotc2V0IHZhcnMocHJlX2N0c190Y2wpIAkJCQkJJHZhcnMocGx1Z19kaXIpL3ByZV9jdHMudGNsCi1zZXQgdmFycyhwb3N0X2N0c190Y2wpIAkJCQkJJHZhcnMocGx1Z19kaXIpL3Bvc3RfY3RzLnRjbAotc2V0IHZhcnMocHJlX3Bvc3RjdHNfdGNsKSAJCQkJJHZhcnMocGx1Z19kaXIpL3ByZV9wb3N0Y3RzLnRjbAotc2V0IHZhcnMocG9zdF9wb3N0Y3RzX3RjbCkgCQkJCSR2YXJzKHBsdWdfZGlyKS9wb3N0X3Bvc3RjdHMudGNsCi1zZXQgdmFycyhwcmVfcm91dGVfdGNsKSAJCQkJJHZhcnMocGx1Z19kaXIpL3ByZV9yb3V0ZS50Y2wKLXNldCB2YXJzKHBvc3Rfcm91dGVfdGNsKSAJCQkJJHZhcnMocGx1Z19kaXIpL3Bvc3Rfcm91dGUudGNsCi1zZXQgdmFycyhwcmVfcG9zdGN0c19ob2xkX3RjbCkgCQkJJHZhcnMocGx1Z19kaXIpL3ByZV9wb3N0Y3RzX2hvbGQudGNsCi1zZXQgdmFycyhwb3N0X3Bvc3RjdHNfaG9sZF90Y2wpIAkJJHZhcnMocGx1Z19kaXIpL3Bvc3RfcG9zdGN0c19ob2xkLnRjbAotc2V0IHZhcnMocHJlX3Bvc3Ryb3V0ZV90Y2wpIAkJCSR2YXJzKHBsdWdfZGlyKS9wcmVfcG9zdHJvdXRlLnRjbAotc2V0IHZhcnMocG9zdF9wb3N0cm91dGVfdGNsKSAJCQkkdmFycyhwbHVnX2RpcikvcG9zdF9wb3N0cm91dGUudGNsCi1zZXQgdmFycyhwcmVfcG9zdHJvdXRlX2hvbGRfdGNsKSAJCSR2YXJzKHBsdWdfZGlyKS9wcmVfcG9zdHJvdXRlX2hvbGQudGNsCi1zZXQgdmFycyhwb3N0X3Bvc3Ryb3V0ZV9ob2xkX3RjbCkgCQkkdmFycyhwbHVnX2RpcikvcG9zdF9wb3N0cm91dGVfaG9sZC50Y2wKLXNldCB2YXJzKHByZV9wb3N0cm91dGVfc2lfdGNsKSAJCQkkdmFycyhwbHVnX2RpcikvcHJlX3Bvc3Ryb3V0ZV9zaS50Y2wKLXNldCB2YXJzKHBvc3RfcG9zdHJvdXRlX3NpX3RjbCkgCQkkdmFycyhwbHVnX2RpcikvcG9zdF9wb3N0cm91dGVfc2kudGNsCi1zZXQgdmFycyhwcmVfcG9zdHJvdXRlX3NpX2hvbGRfdGNsKSAJJHZhcnMocGx1Z19kaXIpL3ByZV9wb3N0cm91dGVfc2lfaG9sZC50Y2wKLXNldCB2YXJzKHBvc3RfcG9zdHJvdXRlX3NpX2hvbGRfdGNsKQkkdmFycyhwbHVnX2RpcikvcG9zdF9wb3N0cm91dGVfc2lfaG9sZC50Y2wKLXNldCB2YXJzKHByZV9zaWdub2ZmX3RjbCkgCQkJCSR2YXJzKHBsdWdfZGlyKS9wcmVfc2lnbm9mZi50Y2wKLXNldCB2YXJzKHBvc3Rfc2lnbm9mZl90Y2wpIAkJCQkkdmFycyhwbHVnX2RpcikvcG9zdF9zaWdub2ZmLnRjbAotIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLXNldCB2YXJzKHByZV9wYXJ0aXRpb25fdGNsKSAJCQkkdmFycyhwbHVnX2RpcikvcHJlX3BhcnRpdGlvbi50Y2wKLXNldCB2YXJzKHBvc3RfcGFydGl0aW9uX3RjbCkgCQkJJHZhcnMocGx1Z19kaXIpL3Bvc3RfcGFydGl0aW9uLnRjbAotc2V0IHZhcnMocHJlX2Fzc2VtYmxlX3RjbCkgCQkJCSR2YXJzKHBsdWdfZGlyKS9wcmVfYXNzZW1ibGUudGNsCi1zZXQgdmFycyhwb3N0X2Fzc2VtYmxlX3RjbCkgCQkJJHZhcnMocGx1Z19kaXIpL3Bvc3RfYXNzZW1ibGUudGNsCi0jLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIyBUbyBpbnNlcnQgbWV0YWwgZmlsbCBkdXJpbmcgdGhlIGZsb3cgZGVmaW5lIHRoZSBmb2xsb3dpbmcgdHdvCi0jIHZhcmlhYmxlczoKLSMgLSB2YXJzKG1ldGFsZmlsbCkgW3ByZV9wb3N0cm91dGUsIHByZV9wb3N0cm91dGVfc2ksIHByZV9zaWdub2ZmXQotIyAtIHZhcnMobWV0YWxmaWxsX3RjbCkgPHBhdGggdG8gbWV0YWxmaWxsIHBsdWctaW4gZmlsZT4KLSMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0jc2V0IHZhcnMobWV0YWxmaWxsKSAgICAgICAgICAgICAgICAgIAlwcmVfcG9zdHJvdXRlCi0jc2V0IHZhcnMobWV0YWxmaWxsX3RjbCkgCQkJCTxwYXRoIHRvIHBsdWctaW4gZmlsZT4KLQotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0jIERpc3RyaWJ1dGlvbiBzZXR1cCAuLi4gdmFycyhkaXN0cmlidXRlKSBjYW4gYmUgb25lIG9mIHRoZSBmb2xsb3dpbmc6Ci0jIGxzZiwgcnNoLCBsb2NhbCwgb3IgY3VzdG9tCi0jIERlcGVuZGluZyBvbiB0aGUgdmFsdWUgb2YgdmFycyhkaXN0cmlidXRlKSwgYWRkaXRpb24gdmFyaWFibGVzCi0jIG1heSBiZSByZXF1aXJlZC4gIFNvbWUgZXhhbXBsZXMgYXJlIHNob3duIGJlbG93Ci0jLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotc2V0IHZhcnMoZGlzdHJpYnV0ZSkgICAgICAgICAgIGN1c3RvbQotc2V0IHZhcnMoY3VzdG9tLHNjcmlwdCkgICAgICAgIHsvZ3JpZC9zZmkvZmFybS9iaW4vZ3JpZHN1YiAtVyA3MjowMCAtUCBTT0M3LjEgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtUiAiU0ZJQVJDSD09T1BUNjQgJiYgT1NSRUw9PUVFNDAiIC1xIGxueDY0fQotc2V0IHZhcnMobG9jYWxfY3B1cykgICAgICAgICAgIDIKLXNldCB2YXJzKHJlbW90ZV9ob3N0cykgICAgICAgICA0Ci1zZXQgdmFycyhwdXNfcGVyX3JlbW90ZV9ob3N0KSAgMgpkaWZmIC0tZ2l0IGEvZmxvdy9wbnIvRVhBTVBMRVMvSU5OT1ZVUy9pbm5vdnVzX2NvbmZpZy50Y2wgYi9mbG93L3Buci9FWEFNUExFUy9JTk5PVlVTL2lubm92dXNfY29uZmlnLnRjbApkZWxldGVkIGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggNDczNTdjYy4uMDAwMDAwMAotLS0gYS9mbG93L3Buci9FWEFNUExFUy9JTk5PVlVTL2lubm92dXNfY29uZmlnLnRjbAorKysgL2Rldi9udWxsCkBAIC0xLDk1ICswLDAgQEAKLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSMgQ0FERU5DRSBDT1BZUklHSFQgTk9USUNFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMKLSMgU2VwdGVtYmVyIDIwMDggQ2FkZW5jZSBEZXNpZ24gU3lzdGVtcywgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLiAgICAgICAgICAgICMKLSMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMKLSMgVGhpcyBzY3JpcHQgaXMgQUVXYXJlLCBwcm92aWRlZCBhcyBhbiBleGFtcGxlIG9mIGhvdyB0byBwZXJmb3JtIHNwZWNpYWxpemVkICMKLSMgdGFza3Mgd2l0aGluIFNvQyBFbmNvdW50ZXIuICBJdCBpcyBub3Qgc3VwcG9ydGVkIHZpYSB0aGUgQ2FkZW5jZSBIb3RsaW5lICAgICMKLSMgbm9yIHRoZSBDQ1Igc3lzdGVtLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMKLSMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMKLSMgVGhpcyB3b3JrIG1heSBub3QgYmUgY29waWVkLCByZS1wdWJsaXNoZWQsIHVwbG9hZGVkLCBvciBkaXN0cmlidXRlZCBpbiBhbnkgICMKLSMgd2F5LCBpbiBhbnkgbWVkaXVtLCB3aGV0aGVyIGluIHdob2xlIG9yIGluIHBhcnQsIHdpdGhvdXQgcHJpb3Igd3JpdHRlbiAgICAgICMKLSMgcGVybWlzc2lvbiBmcm9tIENhZGVuY2UuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMKLSMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMKLSMgVGhpcyB3b3JrIGlzIENhZGVuY2UgaW50ZWxsZWN0dWFsIHByb3BlcnR5IGFuZCBtYXkgdW5kZXIgbm8gY2lyY3Vtc3RhbmNlcyAgICMKLSMgYmUgZ2l2ZW4gdG8gdGhpcmQgcGFydGllcywgbmVpdGhlciBpbiBvcmlnaW5hbCBub3IgaW4gbW9kaWZpZWQgdmVyc2lvbnMsICAgICMKLSMgd2l0aG91dCBleHBsaWNpdCB3cml0dGVuIHBlcm1pc3Npb24gZnJvbSBDYWRlbmNlICAgICAgICAgICAgICAgICAgICAgICAgICAgICMKLSMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMKLSMgVGhlIGluZm9ybWF0aW9uIGNvbnRhaW5lZCBoZXJlaW4gaXMgdGhlIHByb3ByaWV0YXJ5IGFuZCBjb25maWRlbnRpYWwgICAgICAgICMKLSMgaW5mb3JtYXRpb24gb2YgQ2FkZW5jZSBvciBpdHMgbGljZW5zb3JzLCBhbmQgaXMgc3VwcGxpZWQgc3ViamVjdCB0bywgYW5kICAgICMKLSMgbWF5IGJlIHVzZWQgb25seSBieSBDYWRlbmNlJ3MgY3VzdG9tZXJzIGluIGFjY29yZGFuY2Ugd2l0aCwgYSBwcmV2aW91c2x5ICAgICMKLSMgZXhlY3V0ZWQgbGljZW5zZSBhbmQgbWFpbnRlbmFuY2UgYWdyZWVtZW50IGJldHdlZW4gQ2FkZW5jZSBhbmQgaXRzICAgICAgICAgICMKLSMgY3VzdG9tZXIuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMKLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLQotZ2xvYmFsIHZhcnMKLQotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotIyBPcHRpbmFsbHkgZGVmaW5lIG91dHB1dCBkaXJlY3RvcmllcyBmb3IgZGF0YWJhc2VzIGFuZCByZXBvcnRzCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi1zZXQgdmFycyhkYnNfZGlyKSAgICAgIERCUwotc2V0IHZhcnMocnB0X2RpcikgICAgICBSUFQKLQotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotIyBFbmFibGUgdGhpcyB2YXJpYWJsZSBpZiB5b3Ugd2FudCB0byBhYm9ydCB3aGVuIHRoZXJlIGFyZSBzZXR1cCAKLSMgZXJyb3JzIC4uLiBsZWF2ZSAwIHRvIGNvbnRpbnVlIG9uIGVycm9yCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi1zZXQgdmFycyhhYm9ydCkgMAotCi1zZXQgdmFycyhtYWlsdG8pIFt3aG9hbWldCi0KLSNzZXQgdmFycyhkYnNfZm9ybWF0KSBvYQotc2V0IHZhcnMoZW5hYmxlX3BhYykgdHJ1ZQotc2V0IHZhcnModGRzcF9jb3JlLHBhY19tb2RlKSBhbGwKLXNldCB2YXJzKHNpZ25vZmZfZXh0cmFjdGlvbl9lZmZvcnQpIGxvdwotc2V0IHZhcnMoZW5hYmxlX29jdikgICAgICAgICAgICAgICAgICAgICBwcmVfcG9zdHJvdXRlX3NpCi1zZXQgdmFycyhlbmFibGVfY3BwcikgICAgICAgICAgICAgICAgICAgIHRydWUKLXNldCB2YXJzKGVuYWJsZV9zcykgICAgICAgICAgICAgICAgICAgICAgcHJlX3Bvc3Ryb3V0ZQotc2V0IHZhcnMobGl0aG9fZHJpdmVuX3JvdXRpbmcpICAgICAgICAgICB0cnVlCi1zZXQgdmFycyhkb250X3VzZV9saXN0KSAiKkNMSyoiCi1zZXQgdmFycyh0aWVfY2VsbHMpICAgICAiVElFSEkgVElFTE8iCi1zZXQgdmFycyhmaWxsZXJfY2VsbHMpICAiRklMTDY0IEZJTEwzMiBGSUxMMTYgRklMTDggRklMTDQgRklMTDIgRklMTDEiCi0KLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSMgVGhlIGZvbGxvd2luZyBwbHVnaW5zIGFyZSBzdXBwb3J0ZWQgd2hlbiBuZWVkZWQgLi4uCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi1zZXQgdmFycyhhbHdheXNfc291cmNlX3RjbCkgICAgICAgICAgICAgUExVRy9hbHdheXNfc291cmNlLnRjbAotc2V0IHZhcnMocHJlX2luaXRfdGNsKSAgICAgICAgICAgICAgICAgIFBMVUcvcHJlX2luaXQudGNsCi1zZXQgdmFycyhwb3N0X2luaXRfdGNsKSAgICAgICAgICAgICAgICAgUExVRy9wb3N0X2luaXQudGNsCi1zZXQgdmFycyhwcmVfcGxhY2VfdGNsKSAgICAgICAgICAgICAgICAgUExVRy9wcmVfcGxhY2UudGNsCi0jc2V0IHZhcnMocGxhY2VfdGNsKSAgICAgICAgICAgICAgICAgICAgUExVRy9wbGFjZS50Y2wKLXNldCB2YXJzKHBvc3RfcGxhY2VfdGNsKSAgICAgICAgICAgICAgICBQTFVHL3Bvc3RfcGxhY2UudGNsCi1zZXQgdmFycyhwcmVfcHJlY3RzX3RjbCkgICAgICAgICAgICAgICAgUExVRy9wcmVfcHJlY3RzLnRjbAotc2V0IHZhcnMocG9zdF9wcmVjdHNfdGNsKSAgICAgICAgICAgICAgIFBMVUcvcG9zdF9wcmVjdHMudGNsCi1zZXQgdmFycyhwcmVfY3RzX3RjbCkgICAgICAgICAgICAgICAgICAgUExVRy9wcmVfY3RzLnRjbAotI3NldCB2YXJzKGN0c190Y2wpICAgICAgICAgICAgICAgICAgICAgIFBMVUcvY3RzLnRjbAotc2V0IHZhcnMocG9zdF9jdHNfdGNsKSAgICAgICAgICAgICAgICAgIFBMVUcvcG9zdF9jdHMudGNsCi1zZXQgdmFycyhwcmVfcG9zdGN0c190Y2wpICAgICAgICAgICAgICAgUExVRy9wcmVfcG9zdGN0cy50Y2wKLXNldCB2YXJzKHBvc3RfcG9zdGN0c190Y2wpICAgICAgICAgICAgICBQTFVHL3Bvc3RfcG9zdGN0cy50Y2wKLXNldCB2YXJzKHByZV9yb3V0ZV90Y2wpICAgICAgICAgICAgICAgICBQTFVHL3ByZV9yb3V0ZS50Y2wKLXNldCB2YXJzKHBvc3Rfcm91dGVfdGNsKSAgICAgICAgICAgICAgICBQTFVHL3Bvc3Rfcm91dGUudGNsCi1zZXQgdmFycyhwcmVfcG9zdGN0c19ob2xkX3RjbCkgICAgICAgICAgUExVRy9wcmVfcG9zdGN0c19ob2xkLnRjbAotc2V0IHZhcnMocG9zdF9wb3N0Y3RzX2hvbGRfdGNsKSAgICAgICAgIFBMVUcvcG9zdF9wb3N0Y3RzX2hvbGQudGNsCi1zZXQgdmFycyhwcmVfcG9zdHJvdXRlX3RjbCkgICAgICAgICAgICAgUExVRy9wcmVfcG9zdHJvdXRlLnRjbAotc2V0IHZhcnMocG9zdF9wb3N0cm91dGVfdGNsKSAgICAgICAgICAgIFBMVUcvcG9zdF9wb3N0cm91dGUudGNsCi1zZXQgdmFycyhwcmVfcG9zdHJvdXRlX2hvbGRfdGNsKSAgICAgICAgUExVRy9wcmVfcG9zdHJvdXRlX2hvbGQudGNsCi1zZXQgdmFycyhwb3N0X3Bvc3Ryb3V0ZV9ob2xkX3RjbCkgICAgICAgUExVRy9wb3N0X3Bvc3Ryb3V0ZV9ob2xkLnRjbAotc2V0IHZhcnMocHJlX3Bvc3Ryb3V0ZV9zaV90Y2wpICAgICAgICAgIFBMVUcvcHJlX3Bvc3Ryb3V0ZV9zaS50Y2wKLXNldCB2YXJzKHBvc3RfcG9zdHJvdXRlX3NpX3RjbCkgICAgICAgICBQTFVHL3Bvc3RfcG9zdHJvdXRlX3NpLnRjbAotc2V0IHZhcnMocHJlX3Bvc3Ryb3V0ZV9zaV9ob2xkX3RjbCkgICAgIFBMVUcvcHJlX3Bvc3Ryb3V0ZV9zaV9ob2xkLnRjbAotc2V0IHZhcnMocG9zdF9wb3N0cm91dGVfc2lfaG9sZF90Y2wpICAgIFBMVUcvcG9zdF9wb3N0cm91dGVfc2lfaG9sZC50Y2wKLXNldCB2YXJzKHByZV9zaWdub2ZmX3RjbCkgICAgICAgICAgICAgICBQTFVHL3ByZV9zaWdub2ZmLnRjbAotc2V0IHZhcnMocG9zdF9zaWdub2ZmX3RjbCkgICAgICAgICAgICAgIFBMVUcvcG9zdF9zaWdub2ZmLnRjbAotc2V0IHZhcnMocHJlX2Fzc2VtYmxlX3RjbCkgICAgICAgICAgICAgIFBMVUcvcHJlX2Fzc2VtYmxlLnRjbAotc2V0IHZhcnMocG9zdF9hc3NlbWJsZV90Y2wpICAgICAgICAgICAgIFBMVUcvcG9zdF9hc3NlbWJsZS50Y2wKLXNldCB2YXJzKHByZV9wYWNfdGNsKSAgICAgICAgICAgICAgICAgICBQTFVHL3ByZV9wYWMudGNsCi1zZXQgdmFycyhwb3N0X3BhY190Y2wpICAgICAgICAgICAgICAgICAgUExVRy9wb3N0X3BhYy50Y2wKLQotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSMgVG8gaW5zZXJ0IG1ldGFsIGZpbGwgZHVyaW5nIHRoZSBmbG93IGRlZmluZSB0aGUgZm9sbG93aW5nIHR3bwotIyB2YXJpYWJsZXM6Ci0jIC0gdmFycyhtZXRhbGZpbGwpIFtwcmVfcG9zdHJvdXRlLCBwcmVfcG9zdHJvdXRlX3NpLCBwcmVfc2lnbm9mZl0KLSMgLSB2YXJzKG1ldGFsZmlsbF90Y2wpIDxwYXRoIHRvIG1ldGFsZmlsbCBwbHVnLWluPgotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLXNldCB2YXJzKG1ldGFsZmlsbCkgICAgICAgICAgICAgICAgICAJcHJlX3Bvc3Ryb3V0ZV9zaQotc2V0IHZhcnMobWV0YWxmaWxsX3RjbCkgICAgICAgICAgICAgICAgCVBMVUcvbWV0YWxfZmlsbC50Y2wKLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCmRpZmYgLS1naXQgYS9mbG93L3Buci9FWEFNUExFUy9JTk5PVlVTL2xwX2NvbmZpZy50Y2wgYi9mbG93L3Buci9FWEFNUExFUy9JTk5PVlVTL2xwX2NvbmZpZy50Y2wKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDFlM2I4MzUuLjAwMDAwMDAKLS0tIGEvZmxvdy9wbnIvRVhBTVBMRVMvSU5OT1ZVUy9scF9jb25maWcudGNsCisrKyAvZGV2L251bGwKQEAgLTEsNDA0ICswLDAgQEAKLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotIyBMb3cgcG93ZXIgY29uZmlndXJhdGlvbiBmaWxlIG92ZXJsYXkuICBUaGlzIGZpbGUgY29udGFpbnMgZm91bmRhdGlvbiBmbG93IHZhcmlhYmxlcwotIyB0aGF0IGFyZSBzcGVjaWZpYyB0byB0aGUgTFAvQ1BGIGZsb3cgYW5kIHNob3VsZCBiZSB1c2VkIGluIGFkZGl0aW9uIHRvIHRoZSBzZXR1cC50Y2wKLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotIwotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0jICAgICAgICAgICAgICAgICAgICAgICAgICAgUGxhY2VtZW50IE9wdGlvbnMKLSMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIyBzZXQgdmFycyhyZXNpemVfc2hpZnRlcl9hbmRfaXNvX2luc3RzKSA8dHJ1ZSB8IGZhbHNlPgotIwotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0jICAgICAgICAgICAgICAgICAgICAgICAgICAgVGllIGNlbGwgaW5mb3JtYXRpb24KLSMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIyBUaGUgdmFyaWFibGUgdmFycyh0aWVfY2VsbHMpIGlzIGRlZmluZWQgaW4gdGhlIHNldHVwLnRjbCBhbmQgaXMgdXNlZCB0byBkZWZpbmUgYSAKLSMgImdsb2JhbCIgdGllIGNlbGwgbGlzdC4gVGhpcyBsaXN0IHdpbGwgYmUgdXNlZCBieSBkZWZhdWx0IGZvciBlYWNoIHBvd2VyIGRvbWFpbi4KLSMgSXQgY2FuIGJlIG92ZXJyaWRkZW4gZm9yIGEgZ2l2ZW4gcG93ZXIgZG9tYWluIGJ5IHNldHRpbmcgdmFycyg8cG93ZXJfZG9tYWluPix0aWVfY2VsbHMpLgotIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gc2V0IHZhcnMoUERwbGwsdGllX2NlbGxzKQkgICAgIlRJRUggVElFTCIKLSBzZXQgdmFycyhQRHcsdGllX2NlbGxzKQkgICAgIlRJRUggVElFTCIKLSBzZXQgdmFycyhQRHJvbSx0aWVfY2VsbHMpCSAgICAiVElFSCBUSUVMIgotIHNldCB2YXJzKFBEc21jLHRpZV9jZWxscykJICAgICJUSUVIIFRJRUwiCi0gc2V0IHZhcnMoUER3YWtldXAsdGllX2NlbGxzKQkiVElFSCBUSUVMIgotIHNldCB2YXJzKFBEXzNwM3YsdGllX2NlbGxzKQkiVElFSCBUSUVMIgotIHNldCB2YXJzKFBEXzJwNXYsdGllX2NlbGxzKQkiVElFSCBUSUVMIgotIHNldCB2YXJzKFBEdWFydCx0aWVfY2VsbHMpCSAgICAiVElFSCBUSUVMIgotIHNldCB2YXJzKFBEZHZmcyx0aWVfY2VsbHMpCSAgICAiVElFSCBUSUVMIgotIwotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0jICAgICAgICAgICAgICAgICAgICAgICAgIEZpbGxlciBjZWxsIGluZm9ybWF0aW9uCi0jIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSMgVGhlIHZhcmlhYmxlIHZhcnMoZmlsbGVyX2NlbGxzKSBpcyBkZWZpbmVkIGluIHRoZSBzZXR1cC50Y2wgYW5kIGlzIHVzZWQgdG8gZGVmaW5lIGEgCi0jICJnbG9iYWwiIGZpbGxlciBjZWxsIGxpc3QuIFRoaXMgbGlzdCB3aWxsIGJlIHVzZWQgYnkgZGVmYXVsdCBmb3IgZWFjaCBwb3dlciBkb21haW4uCi0jIEl0IGNhbiBiZSBvdmVycmlkZGVuIGZvciBhIGdpdmVuIHBvd2VyIGRvbWFpbiBieSBzZXR0aW5nIHZhcnMoPHBvd2VyX2RvbWFpbj4sZmlsbGVyX2NlbGxzKS4KLSMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIHNldCB2YXJzKFBEcGxsLGZpbGxlcl9jZWxscykgCSAiRklMTEVSNjQgRklMTEVSMzIgRklMTEVSMTYgRklMTEVSOCBGSUxMRVI0IEZJTExFUjIgRklMTEVSMSIKLSBzZXQgdmFycyhQRHcsZmlsbGVyX2NlbGxzKQkgICAgICJGSUxMRVI2NCBGSUxMRVIzMiBGSUxMRVIxNiBGSUxMRVI4IEZJTExFUjQgRklMTEVSMiBGSUxMRVIxIgotIHNldCB2YXJzKFBEcm9tLGZpbGxlcl9jZWxscykgCSAiRklMTEVSNjQgRklMTEVSMzIgRklMTEVSMTYgRklMTEVSOCBGSUxMRVI0IEZJTExFUjIgRklMTEVSMSIKLSBzZXQgdmFycyhQRHNtYyxmaWxsZXJfY2VsbHMpIAkgIkZJTExFUjY0IEZJTExFUjMyIEZJTExFUjE2IEZJTExFUjggRklMTEVSNCBGSUxMRVIyIEZJTExFUjEiCi0gc2V0IHZhcnMoUER3YWtldXAsZmlsbGVyX2NlbGxzCSAiRklMTEVSNjQgRklMTEVSMzIgRklMTEVSMTYgRklMTEVSOCBGSUxMRVI0IEZJTExFUjIgRklMTEVSMSIKLSBzZXQgdmFycyhQRF8zcDN2LGZpbGxlcl9jZWxscykJICJGSUxMRVI2NCBGSUxMRVIzMiBGSUxMRVIxNiBGSUxMRVI4IEZJTExFUjQgRklMTEVSMiBGSUxMRVIxIgotIHNldCB2YXJzKFBEXzJwNXYsZmlsbGVyX2NlbGxzKQkgIkZJTExFUjY0IEZJTExFUjMyIEZJTExFUjE2IEZJTExFUjggRklMTEVSNCBGSUxMRVIyIEZJTExFUjEiCi0gc2V0IHZhcnMoUER1YXJ0LGZpbGxlcl9jZWxscykJICJGSUxMRVI2NCBGSUxMRVIzMiBGSUxMRVIxNiBGSUxMRVI4IEZJTExFUjQgRklMTEVSMiBGSUxMRVIxIgotIHNldCB2YXJzKFBEZHZmcyxmaWxsZXJfY2VsbHMpCSAiRklMTEVSNjQgRklMTEVSMzIgRklMTEVSMTYgRklMTEVSOCBGSUxMRVI0IEZJTExFUjIgRklMTEVSMSIKLSMKLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotIyAgICAgICAgICAgICAgICAgICAgICAgICAgV2VsbHRhcCBjZWxsIGluZm9ybWF0aW9uCi0jIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSMgVGhlIHZhcmlhYmxlIHZhcnMod2VsbHRhcHMpIGlzIGRlZmluZWQgaW4gdGhlIHNldHVwLnRjbCBhbmQgaXMgdXNlZCB0byBkZWZpbmUgYSAKLSMgImdsb2JhbCIgd2VsbHRhcCBjZWxsIGxpc3QuIFRoaXMgbGlzdCB3aWxsIGJlIHVzZWQgYnkgZGVmYXVsdCBmb3IgZWFjaCBwb3dlciBkb21haW4uCi0jIEl0IGNhbiBiZSBvdmVycmlkZGVuIGZvciBhIGdpdmVuIHBvd2VyIGRvbWFpbiBieSBzZXR0aW5nIHZhcnMoPHBvd2VyX2RvbWFpbj4sd2VsbHRhcHMpLgotIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0jICAgIHZlcmlmeV9ydWxlIDogbWF4aW11bSBkaXN0YW5jZSAoaW4gbWljcm9ucykgYmV0d2VlbiB3ZWxsdGFwIGNlbGxzIGFuZCBzdGFuZGFyZCBjZWxscyAKLSMgICAgICAgICAgICAgICAgICBpbiBtaWNyb25zCi0jICAgICAgICBtYXhfZ2FwIDogc3BlY2lmaWVzIHRoZSBtYXhpbXVtIGRpc3RhbmNlIGZyb20gdGhlIHJpZ2h0IGVkZ2Ugb2Ygb25lIHdlbGwtdGFwIGNlbGwgCi0jICAgICAgICAgICAgICAgICAgdG8gdGhlIGxlZnQgZWRnZSBvZiAgdGhlIGZvbGxvd2luZyB3ZWxsLXRhcCBjZWxsIGluIHRoZSBzYW1lIHJvdwotIyAgY2VsbF9pbnRlcnZhbCA6IHNwZWNpZmllcyB0aGUgbWF4aW11bSBkaXN0YW5jZSBmcm9tIHRoZSBjZW50ZXIgb2Ygb25lIHdlbGwtdGFwIGNlbGwgCi0jICAgICAgICAgICAgICAgICAgdG8gdGhlIGNlbnRlciBvZiB0aGUgZm9sbG93aW5nIHdlbGwtdGFwIGNlbGwgaW4gdGhlIHNhbWUgcm93Ci0jCi0jIE5PVEU6IG1heF9nYXAgYW5kIGNlbGxfaW50ZXJ2YWwgcGFyYW1ldGVycyBhcmUgbXV0dWFsbHkgZXhjbHVzaXZlLCB1c2VyIGhhcyB0byBkZWZpbmUgCi0jICAgICAgIG9ubHkgb25lIG9mIHRoZXNlIHBhcmFtZXRlcnMgdG8gYWRkIHdlbGx0YXAgY2VsbHMKLSMKLSMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIyBzZXQgdmFycyhQRHBsbCx3ZWxsdGFwcykgCQkgICAgICAgIDx3ZWxsdGFwIGNlbGwgbGlzdCBmb3IgPHBvd2VyX2RvbWFpbj4+Ci0jIHNldCB2YXJzKFBEcGxsLHdlbGx0YXBzLGNoZWNrZXJib2FyZCkgIDx0cnVlIG9yIGZhbHNlPgotIyBzZXQgdmFycyhQRHBsbCx3ZWxsdGFwcyxtYXhfZ2FwKSAgICAgICA8bWF4IGdhcCBpbiBtaWNyb25zPgotIyBzZXQgdmFycyhQRHBsbCx3ZWxsdGFwcyxjZWxsX2ludGVydmFsKSA8Y2VsbCBpbnRlcnZhbCBpbiBtaWNyb25zPgotIyBzZXQgdmFycyhQRHBsbCx3ZWxsdGFwcyxyb3dfb2Zmc2V0KSAgICA8cm93IG9mZnNldCBpbiBtaWNyb25zPgotIyBzZXQgdmFycyhQRHBsbCx3ZWxsdGFwcyx2ZXJpZnlfcnVsZSkgICA8dmVyaWZ5IHJ1bGUgZGlzdGFuY2U+Ci0jIHNldCB2YXJzKFBEdyx3ZWxsdGFwcykgCQkgICAgICAgIDx3ZWxsdGFwIGNlbGwgbGlzdCBmb3IgPHBvd2VyX2RvbWFpbj4+Ci0jIHNldCB2YXJzKFBEdyx3ZWxsdGFwcyxjaGVja2VyYm9hcmQpICA8dHJ1ZSBvciBmYWxzZT4KLSMgc2V0IHZhcnMoUER3LHdlbGx0YXBzLG1heF9nYXApICAgICAgIDxtYXggZ2FwIGluIG1pY3JvbnM+Ci0jIHNldCB2YXJzKFBEdyx3ZWxsdGFwcyxjZWxsX2ludGVydmFsKSA8Y2VsbCBpbnRlcnZhbCBpbiBtaWNyb25zPgotIyBzZXQgdmFycyhQRHcsd2VsbHRhcHMscm93X29mZnNldCkgICAgPHJvdyBvZmZzZXQgaW4gbWljcm9ucz4KLSMgc2V0IHZhcnMoUER3LHdlbGx0YXBzLHZlcmlmeV9ydWxlKSAgIDx2ZXJpZnkgcnVsZSBkaXN0YW5jZT4KLSMgc2V0IHZhcnMoUERyb20sd2VsbHRhcHMpIAkJICAgICAgICA8d2VsbHRhcCBjZWxsIGxpc3QgZm9yIDxwb3dlcl9kb21haW4+PgotIyBzZXQgdmFycyhQRHJvbSx3ZWxsdGFwcyxjaGVja2VyYm9hcmQpICA8dHJ1ZSBvciBmYWxzZT4KLSMgc2V0IHZhcnMoUERyb20sd2VsbHRhcHMsbWF4X2dhcCkgICAgICAgPG1heCBnYXAgaW4gbWljcm9ucz4KLSMgc2V0IHZhcnMoUERyb20sd2VsbHRhcHMsY2VsbF9pbnRlcnZhbCkgPGNlbGwgaW50ZXJ2YWwgaW4gbWljcm9ucz4KLSMgc2V0IHZhcnMoUERyb20sd2VsbHRhcHMscm93X29mZnNldCkgICAgPHJvdyBvZmZzZXQgaW4gbWljcm9ucz4KLSMgc2V0IHZhcnMoUERyb20sd2VsbHRhcHMsdmVyaWZ5X3J1bGUpICAgPHZlcmlmeSBydWxlIGRpc3RhbmNlPgotIyBzZXQgdmFycyhQRHNtYyx3ZWxsdGFwcykgCQkgICAgICAgIDx3ZWxsdGFwIGNlbGwgbGlzdCBmb3IgPHBvd2VyX2RvbWFpbj4+Ci0jIHNldCB2YXJzKFBEc21jLHdlbGx0YXBzLGNoZWNrZXJib2FyZCkgIDx0cnVlIG9yIGZhbHNlPgotIyBzZXQgdmFycyhQRHNtYyx3ZWxsdGFwcyxtYXhfZ2FwKSAgICAgICA8bWF4IGdhcCBpbiBtaWNyb25zPgotIyBzZXQgdmFycyhQRHNtYyx3ZWxsdGFwcyxjZWxsX2ludGVydmFsKSA8Y2VsbCBpbnRlcnZhbCBpbiBtaWNyb25zPgotIyBzZXQgdmFycyhQRHNtYyx3ZWxsdGFwcyxyb3dfb2Zmc2V0KSAgICA8cm93IG9mZnNldCBpbiBtaWNyb25zPgotIyBzZXQgdmFycyhQRHNtYyx3ZWxsdGFwcyx2ZXJpZnlfcnVsZSkgICA8dmVyaWZ5IHJ1bGUgZGlzdGFuY2U+Ci0jIHNldCB2YXJzKFBEd2FrZXVwLHdlbGx0YXBzKSAJCSAgICAgICAgPHdlbGx0YXAgY2VsbCBsaXN0IGZvciA8cG93ZXJfZG9tYWluPj4KLSMgc2V0IHZhcnMoUER3YWtldXAsd2VsbHRhcHMsY2hlY2tlcmJvYXJkKSAgPHRydWUgb3IgZmFsc2U+Ci0jIHNldCB2YXJzKFBEd2FrZXVwLHdlbGx0YXBzLG1heF9nYXApICAgICAgIDxtYXggZ2FwIGluIG1pY3JvbnM+Ci0jIHNldCB2YXJzKFBEd2FrZXVwLHdlbGx0YXBzLGNlbGxfaW50ZXJ2YWwpIDxjZWxsIGludGVydmFsIGluIG1pY3JvbnM+Ci0jIHNldCB2YXJzKFBEd2FrZXVwLHdlbGx0YXBzLHJvd19vZmZzZXQpICAgIDxyb3cgb2Zmc2V0IGluIG1pY3JvbnM+Ci0jIHNldCB2YXJzKFBEd2FrZXVwLHdlbGx0YXBzLHZlcmlmeV9ydWxlKSAgIDx2ZXJpZnkgcnVsZSBkaXN0YW5jZT4KLSMgc2V0IHZhcnMoUERfM3Azdix3ZWxsdGFwcykgCQkgICAgICAgIDx3ZWxsdGFwIGNlbGwgbGlzdCBmb3IgPHBvd2VyX2RvbWFpbj4+Ci0jIHNldCB2YXJzKFBEXzNwM3Ysd2VsbHRhcHMsY2hlY2tlcmJvYXJkKSAgPHRydWUgb3IgZmFsc2U+Ci0jIHNldCB2YXJzKFBEXzNwM3Ysd2VsbHRhcHMsbWF4X2dhcCkgICAgICAgPG1heCBnYXAgaW4gbWljcm9ucz4KLSMgc2V0IHZhcnMoUERfM3Azdix3ZWxsdGFwcyxjZWxsX2ludGVydmFsKSA8Y2VsbCBpbnRlcnZhbCBpbiBtaWNyb25zPgotIyBzZXQgdmFycyhQRF8zcDN2LHdlbGx0YXBzLHJvd19vZmZzZXQpICAgIDxyb3cgb2Zmc2V0IGluIG1pY3JvbnM+Ci0jIHNldCB2YXJzKFBEXzNwM3Ysd2VsbHRhcHMsdmVyaWZ5X3J1bGUpICAgPHZlcmlmeSBydWxlIGRpc3RhbmNlPgotIyBzZXQgdmFycyhQRF8ycDV2LHdlbGx0YXBzKSAJCSAgICAgICAgPHdlbGx0YXAgY2VsbCBsaXN0IGZvciA8cG93ZXJfZG9tYWluPj4KLSMgc2V0IHZhcnMoUERfMnA1dix3ZWxsdGFwcyxjaGVja2VyYm9hcmQpICA8dHJ1ZSBvciBmYWxzZT4KLSMgc2V0IHZhcnMoUERfMnA1dix3ZWxsdGFwcyxtYXhfZ2FwKSAgICAgICA8bWF4IGdhcCBpbiBtaWNyb25zPgotIyBzZXQgdmFycyhQRF8ycDV2LHdlbGx0YXBzLGNlbGxfaW50ZXJ2YWwpIDxjZWxsIGludGVydmFsIGluIG1pY3JvbnM+Ci0jIHNldCB2YXJzKFBEXzJwNXYsd2VsbHRhcHMscm93X29mZnNldCkgICAgPHJvdyBvZmZzZXQgaW4gbWljcm9ucz4KLSMgc2V0IHZhcnMoUERfMnA1dix3ZWxsdGFwcyx2ZXJpZnlfcnVsZSkgICA8dmVyaWZ5IHJ1bGUgZGlzdGFuY2U+Ci0jIHNldCB2YXJzKFBEdWFydCx3ZWxsdGFwcykgCQkgICAgICAgIDx3ZWxsdGFwIGNlbGwgbGlzdCBmb3IgPHBvd2VyX2RvbWFpbj4+Ci0jIHNldCB2YXJzKFBEdWFydCx3ZWxsdGFwcyxjaGVja2VyYm9hcmQpICA8dHJ1ZSBvciBmYWxzZT4KLSMgc2V0IHZhcnMoUER1YXJ0LHdlbGx0YXBzLG1heF9nYXApICAgICAgIDxtYXggZ2FwIGluIG1pY3JvbnM+Ci0jIHNldCB2YXJzKFBEdWFydCx3ZWxsdGFwcyxjZWxsX2ludGVydmFsKSA8Y2VsbCBpbnRlcnZhbCBpbiBtaWNyb25zPgotIyBzZXQgdmFycyhQRHVhcnQsd2VsbHRhcHMscm93X29mZnNldCkgICAgPHJvdyBvZmZzZXQgaW4gbWljcm9ucz4KLSMgc2V0IHZhcnMoUER1YXJ0LHdlbGx0YXBzLHZlcmlmeV9ydWxlKSAgIDx2ZXJpZnkgcnVsZSBkaXN0YW5jZT4KLSMgc2V0IHZhcnMoUERkdmZzLHdlbGx0YXBzKSAJCSAgICAgICAgPHdlbGx0YXAgY2VsbCBsaXN0IGZvciA8cG93ZXJfZG9tYWluPj4KLSMgc2V0IHZhcnMoUERkdmZzLHdlbGx0YXBzLGNoZWNrZXJib2FyZCkgIDx0cnVlIG9yIGZhbHNlPgotIyBzZXQgdmFycyhQRGR2ZnMsd2VsbHRhcHMsbWF4X2dhcCkgICAgICAgPG1heCBnYXAgaW4gbWljcm9ucz4KLSMgc2V0IHZhcnMoUERkdmZzLHdlbGx0YXBzLGNlbGxfaW50ZXJ2YWwpIDxjZWxsIGludGVydmFsIGluIG1pY3JvbnM+Ci0jIHNldCB2YXJzKFBEZHZmcyx3ZWxsdGFwcyxyb3dfb2Zmc2V0KSAgICA8cm93IG9mZnNldCBpbiBtaWNyb25zPgotIyBzZXQgdmFycyhQRGR2ZnMsd2VsbHRhcHMsdmVyaWZ5X3J1bGUpICAgPHZlcmlmeSBydWxlIGRpc3RhbmNlPgotIwotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0jICAgICAgICAgICAgICAgICAgICAgICAgICBFbmRjYXAgY2VsbCBpbmZvcm1hdGlvbgotIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0jIFRoZSB2YXJpYWJsZXMgdmFycyhwcmVfZW5kY2FwKSBhbmQgdmFycyhwb3N0X2VuZGNhcCkgYXJlIHNldCBpbiB0aGUgc2V0dXAudGNsIGZpbGUgYW5kCi0jIGFyZSB1c2VkIHRvIGRlZmluZSAiZ2xvYmFsIiBlbmRjYXAgY2VsbHMuIFRoZXNlIHVzZWQgYnkgZGVmYXVsdCBmb3IgZWFjaCBwb3dlciBkb21haW4uCi0jIFRoZXkgY2FuIGJlIG92ZXJyaWRkZW4gZm9yIGEgZ2l2ZW4gcG93ZXIgZG9tYWluIHNldHRpbmcgdmFycyg8cG93ZXJfZG9tYWluPixwcmVfZW5kY2FwKQotIyBhbmQvb3IgdmFycyg8cG93ZXJfZG9tYWluPixwb3N0X2VuZGNhcCkuCi0jIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSMgc2V0IHZhcnMoUERwbGwscHJlX2VuZGNhcCkgICAgIDxwcmUgZW5kY2FwIGNlbGwgZm9yIDxwb3dlcl9kb21haW4+PgotIyBzZXQgdmFycyhQRHBsbCxwb3N0X2VuZGNhcCkgICAgPHBvc3QgZW5kY2FwIGNlbGwgZm9yIDxwb3dlcl9kb21haW4+PgotIyBzZXQgdmFycyhQRHcscHJlX2VuZGNhcCkgICAgICAgPHByZSBlbmRjYXAgY2VsbCBmb3IgPHBvd2VyX2RvbWFpbj4+Ci0jIHNldCB2YXJzKFBEdyxwb3N0X2VuZGNhcCkgICAgICA8cG9zdCBlbmRjYXAgY2VsbCBmb3IgPHBvd2VyX2RvbWFpbj4+Ci0jIHNldCB2YXJzKFBEcm9tLHByZV9lbmRjYXApICAgICA8cHJlIGVuZGNhcCBjZWxsIGZvciA8cG93ZXJfZG9tYWluPj4KLSMgc2V0IHZhcnMoUERyb20scG9zdF9lbmRjYXApICAgIDxwb3N0IGVuZGNhcCBjZWxsIGZvciA8cG93ZXJfZG9tYWluPj4KLSMgc2V0IHZhcnMoUERzbWMscHJlX2VuZGNhcCkgICAgIDxwcmUgZW5kY2FwIGNlbGwgZm9yIDxwb3dlcl9kb21haW4+PgotIyBzZXQgdmFycyhQRHNtYyxwb3N0X2VuZGNhcCkgICAgPHBvc3QgZW5kY2FwIGNlbGwgZm9yIDxwb3dlcl9kb21haW4+PgotIyBzZXQgdmFycyhQRHdha2V1cCxwcmVfZW5kY2FwKSAgPHByZSBlbmRjYXAgY2VsbCBmb3IgPHBvd2VyX2RvbWFpbj4+Ci0jIHNldCB2YXJzKFBEd2FrZXVwLHBvc3RfZW5kY2FwKSA8cG9zdCBlbmRjYXAgY2VsbCBmb3IgPHBvd2VyX2RvbWFpbj4+Ci0jIHNldCB2YXJzKFBEXzNwM3YscHJlX2VuZGNhcCkgICA8cHJlIGVuZGNhcCBjZWxsIGZvciA8cG93ZXJfZG9tYWluPj4KLSMgc2V0IHZhcnMoUERfM3Azdixwb3N0X2VuZGNhcCkgIDxwb3N0IGVuZGNhcCBjZWxsIGZvciA8cG93ZXJfZG9tYWluPj4KLSMgc2V0IHZhcnMoUERfMnA1dixwcmVfZW5kY2FwKSAgIDxwcmUgZW5kY2FwIGNlbGwgZm9yIDxwb3dlcl9kb21haW4+PgotIyBzZXQgdmFycyhQRF8ycDV2LHBvc3RfZW5kY2FwKSAgPHBvc3QgZW5kY2FwIGNlbGwgZm9yIDxwb3dlcl9kb21haW4+PgotIyBzZXQgdmFycyhQRHVhcnQscHJlX2VuZGNhcCkgICAgPHByZSBlbmRjYXAgY2VsbCBmb3IgPHBvd2VyX2RvbWFpbj4+Ci0jIHNldCB2YXJzKFBEdWFydCxwb3N0X2VuZGNhcCkgICA8cG9zdCBlbmRjYXAgY2VsbCBmb3IgPHBvd2VyX2RvbWFpbj4+Ci0jIHNldCB2YXJzKFBEZHZmcyxwcmVfZW5kY2FwKSAgICA8cHJlIGVuZGNhcCBjZWxsIGZvciA8cG93ZXJfZG9tYWluPj4KLSMgc2V0IHZhcnMoUERkdmZzLHBvc3RfZW5kY2FwKSAgIDxwb3N0IGVuZGNhcCBjZWxsIGZvciA8cG93ZXJfZG9tYWluPj4KLSMKLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotIyAgICAgICAgICAgICAgICAgICAgICAgICAgICBBbHdheXMgb24gbmV0IGJ1ZmZlcmluZwotIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0jIEJ5IGRlZmF1bHQgU09DRSBkb2VzIGFsd2F5cy1vbi1uZXQgc3ludGhlc2lzIGZvciBTUlBHIGNvbnRyb2wgc2lnbmFsIGFuZCBQU08gZW5hYmxlIAotIyBzaWduYWxzIGFzIHBhcnQgb2Ygb3B0RGVzaWduIC1wcmVDVFMsIGJ1dCB0aGlzIGNhbiBiZSBtYW51YWxseSBkb25lIGZvciBzcGVjaWZpYyBuZXRzIGlmCi0jIG5lY2Vzc2FyeS4gIFRvIGRvIHRoaXMsIGRlZmluZSB0aGUgZm9sbG93aW5nIHZhcmlhYmxlcyBhbmQgdW5jb21tZW50IHRoZSBwcmVfcHJlY3RzLnRjbAotIyBwbHVnLWluIHRlbXBsYXRlCi0jIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLXNldCB2YXJzKGFsd2F5c19vbl9idWZmZXJzKSAgICAgICAgICAgICJBT05CVUZGRDggQU9OQlVGRkQ0IEFPTkJVRkZEMiIKLSMgc2V0IHZhcnMoYWx3YXlzX29uX2J1ZmZlcnMpICAgICAgICAgIDxsaXN0IG9mIGFsd2F5cyBvbiBidWZmZXJzPgotIyBzZXQgdmFycyhhbHdheXNfb25fbmV0cykgICAgICAgICAgICAgPGxpc3Qgb2YgYWx3YXlzIG9uIG5ldHM+Ci0jIHNldCB2YXJzKGFsd2F5c19vbl9uZXRzLG1heF9mYW5vdXQpICA8bWF4IGZhbm91dCBsaW1pdCBmb3IgYWx3YXlzIG9uIG5ldHM+IChvcHRpb25hbCkKLSMgc2V0IHZhcnMoYWx3YXlzX29uX25ldHMsbWF4X3RyYW4pICAgIDxtYXggdHJhbnNpdGlvbiBvbiBhbHdheXMgb24gbmV0cz4gKG9wdGlvbmFsKQotIyBzZXQgdmFycyhhbHdheXNfb25fbmV0cyxtYXhfc2tldykgICAgPG1heCBza2V3IGZvciBhbHdheXMgb24gbmV0cz4gKG9wdGlvbmFsKQotIyBzZXQgdmFycyhhbHdheXNfb25fbmV0cyxtYXhfZGVsYXkpICAgPG1heCBkZWxheSBmb3IgYWx3YXlzIG9uIG5ldHM+IChvcHRpb25hbCkKLSMgc2V0IHZhcnMoUERwbGwsYWx3YXlzX29uX2J1ZmZlcnMpICAgIDxidWZmZXJzIGZvciA8cG93ZXIgZG9tYWluPj4KLSMgc2V0IHZhcnMoUER3LGFsd2F5c19vbl9idWZmZXJzKSAgICAgIDxidWZmZXJzIGZvciA8cG93ZXIgZG9tYWluPj4KLSMgc2V0IHZhcnMoUERyb20sYWx3YXlzX29uX2J1ZmZlcnMpICAgIDxidWZmZXJzIGZvciA8cG93ZXIgZG9tYWluPj4KLSMgc2V0IHZhcnMoUERzbWMsYWx3YXlzX29uX2J1ZmZlcnMpICAgIDxidWZmZXJzIGZvciA8cG93ZXIgZG9tYWluPj4KLSMgc2V0IHZhcnMoUER3YWtldXAsYWx3YXlzX29uX2J1ZmZlcnMpIDxidWZmZXJzIGZvciA8cG93ZXIgZG9tYWluPj4KLSMgc2V0IHZhcnMoUERfM3AzdixhbHdheXNfb25fYnVmZmVycykgIDxidWZmZXJzIGZvciA8cG93ZXIgZG9tYWluPj4KLSMgc2V0IHZhcnMoUERfMnA1dixhbHdheXNfb25fYnVmZmVycykgIDxidWZmZXJzIGZvciA8cG93ZXIgZG9tYWluPj4KLSMgc2V0IHZhcnMoUER1YXJ0LGFsd2F5c19vbl9idWZmZXJzKSAgIDxidWZmZXJzIGZvciA8cG93ZXIgZG9tYWluPj4KLSMgc2V0IHZhcnMoUERkdmZzLGFsd2F5c19vbl9idWZmZXJzKSAgIDxidWZmZXJzIGZvciA8cG93ZXIgZG9tYWluPj4KLSMKLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotIyAgICAgICAgICAgICAgICAgICAgICBTZWNvbmRhcnkgcG93ZXIvZ3JvdW5kIHJvdXRpbmcKLSMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIyBBdXRvbWF0aWMgc2Vjb25kYXJ5IHBvd2VyIHJvdXRpbmcgY2FuIGJlIGVuYWJsZWQgdGhlIGZvdW5kYXRpb24gZmxvd3MgYnkgc2V0dGluZyAKLSMgdmFycyhyb3V0ZV9zZWNvbmRhcnlfcGdfbmV0cykgdG8gdHJ1ZSBhbmQgcHJvdmlkaW5nIGNlbGwgcGluIHBhaXIgaW5mb3JtYXRpb24gdG8KLSMgaWRlbnRpZnkgdGhlIGNvbm5lY3Rpb25zIHJlcXVpcmluZyByb3V0aW5nIChBT05CVUZGRDE6VFZERCBMU0wySENENDpWRERMLCBlLmcuKSAKLSMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIyBzZXQgdmFycyhyb3V0ZV9zZWNvbmRhcnlfcGdfbmV0cykgICAgICAgICBbdHJ1ZSB8IGZhbHNlXQotIyBzZXQgdmFycyhzZWNvbmRhcnlfcGcsY2VsbF9waW5fcGFpcnMpICAgICA8c2Vjb25kYXJ5IHBvd2VyIGNlbGwgcGluIHBhaXIgbGlzdD4KLSMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotI0luIGFkZGl0aW9uLCB0aGUgZm9sbG93aW5nIGNhbiBvcHRpb25hbGx5IGRlZmluZWQgZWl0aGVyIGdsb2JhbGx5IG9yIHBlciBwL2cgbmV0Ci0jIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSMgc2V0IHZhcnMoc2Vjb25kYXJ5X3BnLG1heF9mYW5vdXQpICAgICAgIAk8bWF4IGZhbm91dCBmb3Igc2Vjb25kYXJ5IHBvd2VyIHJvdXRpbmc+Ci0jIHNldCB2YXJzKHNlY29uZGFyeV9wZyxwYXR0ZXJuKSAgICAgICAgICAJPHNlY29uZGFyeSBwb3dlciByb3V0aW5nIHBhdHRlcm4gdHJ1bmsgfCBzdGVpbmVyPgotIyBzZXQgdmFycyhzZWNvbmRhcnlfcGcsbm9uX2RlZmF1bHRfcnVsZSkgCTxub24tZGVmYXVsdCBydWxlIGZvciBzZWNvbmRhcnkgcC9nLyByb3V0aW5nPgotIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0jIFRvIG9wdGlvbmFsbHkgb3ZlcnJpZGUgZm9yIGEgZ2l2ZW4gcC9nIG5ldChzKSwgdXNlIHRoZSB2YXJzKHJvdXRlX3NlY29uZGFyeV9wZ19uZXRzKSB0byAKLSMgZGVmaW5lIHRoZSBsaXN0IG9mIG5ldHMgdG8gYmUgb3ZlcnJpZGRlbiBhbmQgdGhlbiBvdmVycmlkZSB2YXJzKDxwL2cgbmV0Piw8b3B0aW9uPikKLSMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIyBzZXQgdmFycyhzZWNvbmRhcnlfcGcsbmV0cykgICAgICAgICAgCSAgICA8bGlzdCBvZiBwb3dlci9ncm91bmQgbmV0cz4KLSMgc2V0IHZhcnMoPHAvZ19uZXQ+LG1heF9mYW5vdXQpICAgICAgIAkgICAgPG1heCBmYW5vdXQ+Ci0jIHNldCB2YXJzKDxwL2dfbmV0PixwYXR0ZXJuKSAgICAgICAgICAJICAgIDx0cnVuayB8IHN0ZWluZXI+Ci0jIHNldCB2YXJzKDxwL2dfbmV0Pixub25fZGVmYXVsdF9ydWxlKSAJICAgIDxub24gZGVmYXVsdCBydWxlPgotc2V0IHZhcnMocm91dGVfc2Vjb25kYXJ5X3BnX25ldHMpIHRydWUKLXNldCB2YXJzKHNlY29uZGFyeV9wZyxjZWxsX3Bpbl9wYWlycykgIiBcCi0gICBTUlBHQ1NSRDRIVlQ6VFZERCBTUlBHQ1NSRDJIVlQ6VFZERCBTUlBHQ1NSRDFIVlQ6VFZERCBTUlBHQ1NENEhWVDpUVkREICBcCi0gICBTUlBHQ1NEMkhWVDpUVkREIFNSUEdDU0QxSFZUOlRWREQgU1JQR0NSRDRIVlQ6VFZERCBTUlBHQ1JEMkhWVDpUVkREICBcCi0gICBTUlBHQ1JEMUhWVDpUVkREIFNSUEdDRDRIVlQ6VFZERCBTUlBHQ0QySFZUOlRWREQgU1JQR0NEMUhWVDpUVkREICBcCi0gICBTUlBHQ1NSRDRMVlQ6VFZERCBTUlBHQ1NSRDJMVlQ6VFZERCBTUlBHQ1NSRDFMVlQ6VFZERCBTUlBHQ1NENExWVDpUVkREICBcCi0gICBTUlBHQ1NEMkxWVDpUVkREIFNSUEdDU0QxTFZUOlRWREQgU1JQR0NSRDRMVlQ6VFZERCBTUlBHQ1JEMkxWVDpUVkREICBcCi0gICBTUlBHQ1JEMUxWVDpUVkREIFNSUEdDRDRMVlQ6VFZERCBTUlBHQ0QyTFZUOlRWREQgU1JQR0NEMUxWVDpUVkREIFwKLSAgIFNSUEdDU1JENDpUVkREIFNSUEdDU1JEMjpUVkREIFNSUEdDU1JEMTpUVkREIFNSUEdDU0Q0OlRWREQgU1JQR0NTRDI6VFZERCAgXAotICAgU1JQR0NTRDE6VFZERCBTUlBHQ1JENDpUVkREIFNSUEdDUkQyOlRWREQgU1JQR0NSRDE6VFZERCBTUlBHQ0Q0OlRWREQgIFwKLSAgIFNSUEdDRDI6VFZERCBTUlBHQ0QxOlRWREQgQU9OQlVGRkQ4SFZUOlRWREQgQU9OQlVGRkQ0SFZUOlRWREQgQU9OQlVGRkQySFZUOlRWREQgIFwKLSAgIEFPTkJVRkZEMUhWVDpUVkREIEFPTkJVRkZEOExWVDpUVkREIEFPTkJVRkZENExWVDpUVkREIEFPTkJVRkZEMkxWVDpUVkREIEFPTkJVRkZEMUxWVDpUVkREIFwKLSAgIEFPTkJVRkZEODpUVkREIEFPTkJVRkZENDpUVkREIEFPTkJVRkZEMjpUVkREIEFPTkJVRkZEMTpUVkREIEFPTkJVRkZEOEhWVDpUVkREICBcCi0gICBBT05CVUZGRDRIVlQ6VFZERCBBT05CVUZGRDJIVlQ6VFZERCBBT05CVUZGRDFIVlQ6VFZERCBBT05CVUZGRDhMVlQ6VFZERCBBT05CVUZGRDRMVlQ6VFZERCAgXAotICAgQU9OQlVGRkQyTFZUOlRWREQgQU9OQlVGRkQxTFZUOlRWREQgQU9OQlVGRkQ4OlRWREQgQU9OQlVGRkQ0OlRWREQgQU9OQlVGRkQyOlRWREQgQU9OQlVGRkQxOlRWREQgIFwKLSAgIExTTDJIQ0Q4TFZUOlZEREwgTFNMMkhDRDRMVlQ6VkRETCBMU0wySENEMkxWVDpWRERMIExTTDJIQ0QxTFZUOlZEREwgTFNMMkhDRDg6VkRETCAgXAotICAgTFNMMkhDRDQ6VkRETCBMU0wySENEMjpWRERMIExTTDJIQ0QxOlZEREwgTFNMMkhEOExWVDpWRERMIExTTDJIRDRMVlQ6VkRETCBMU0wySEQyTFZUOlZEREwgXAotICAgTFNMMkhEMUxWVDpWRERMIExTTDJIRDg6VkRETCBMU0wySEQ0OlZEREwgTFNMMkhEMjpWRERMIExTTDJIRDE6VkRETCBcCi0iCi1zZXQgdmFycyhzZWNvbmRhcnlfcGcsbWF4X2Zhbm91dCkgIDEKLXNldCB2YXJzKHNlY29uZGFyeV9wZyxuZXRzKSAgICAgICAgIlZERGR2ZnMgVkREdyIKLXNldCB2YXJzKFZERGR2ZnMscGF0dGVybikgICAgICAgICAgdHJ1bmsKLXNldCB2YXJzKFZERGR2ZnMsbWF4X2Zhbm91dCkgICAgICAgMQotc2V0IHZhcnMoVkREdyxwYXR0ZXJuKSAgICAgICAgICAgICBzdGVpbmVyCi1zZXQgdmFycyhWRER3LG1heF9mYW5vdXQpICAgICAgICAgIDEKLSMKLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotIyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJ1bkNMUCBvcHRpb25zCi0jIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSMgc2V0IHZhcnMoY2xwX29wdGlvbnMpICA8b3B0aW9ucyBmb3IgcnVuQ0xQPgotIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0jc2V0IHZhcnMoY2xwX29wdGlvbnMpICAiIC1jbWQgLi4vREFUQS9jaGlwX3RvcF9iYWNrZW5kX2NscC5kbyAtZXh0cmFWbG9nIC4uL0RBVEEvZHVtbXkudiIKLSMKLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotIyAgICAgICAgICAgICAgTW9kaWZ5IHBvd2VyIGRvbWFpbnMsIHJvdyBjcmVhdGlvbiBmb3IgcG93ZXIgZG9tYWlucwotIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0jIFRoZSBmb3VuZGF0aW9uIGZsb3dzIGNvbnRhaW4gYSBzYW1wbGUgcG9zdF9pbml0X3RjbCAoUExVRy9wb3N0X2luaXQudGNsKSBwbHVnLWluIHRvIGRvIAotIyBwb3dlciBkb21haW4gbW9kaWZpY2F0aW9uIGF1dG9tYXRpY2FsbHkgYmFzZWQgb24gdGhlIGZvbGxvaW5nIHZhcmlhYmxlczoKLSMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIyBzZXQgdmFycyg8ZG9tYWluPixiYm94KSAgICAgICAgICA8bGx4IGxseSB1cnggdXJ5PjsgYm9uZGFyeSBjb29yZGluYXRlcyBpbiBtaWNyb25zCi0jIHNldCB2YXJzKDxkb21haW4+LHJzX2V4dHMpICAgICAgIDx0b3AgYm90IGxlZnQgcmlnaHQ+OyBkaXN0YW5jZSBpbiBtaWNyb25zICAKLSMgc2V0IHZhcnMoPGRvbWFpbj4sbWluX2dhcHMpICAgICAgPHRvcCBib3QgbGVmdCByaWdodD47IGRpc3RhbmNlIGluIG1pY3JvbnMKLSMgc2V0IHZhcnMoPGRvbWFpbj4sbW9kdWxlKSAgICAgICAgPHBvd2VyIGRvbWFpbiBtb2R1bGUgbmFtZT4gKG9wdGlvbmFsKQotIyBzZXQgdmFycyg8ZG9tYWluPixzaXRlcykgICAgICAgICA8bGlzdCBvZiBzaXRlIG5hbWVzIGZvciBwb3dlciBkb21haW4+IChvcHRpb25hbCkKLSMgc2V0IHZhcnMoPGRvbWFpbj4sc2l0ZT4sZmxpcCkgICAgPHRydWUgfCBmYWxzZT47IGlmIHRydWUgZmxpcCB0aGUgMXN0IHJvdyBmb3IgdGhlIHNpdGUgKG9wdGlvbmFsKQotIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1zZXQgdmFycyhQRHNtYyxiYm94KSAgICAgICAgIjI4MCAxMzI1IDQ0MCAxNTUwIgotc2V0IHZhcnMoUERzbWMscnNfZXh0cykgICAgICI1IDE1IDE1IDE1Igotc2V0IHZhcnMoUERzbWMsbWluX2dhcHMpICAgICI1IDE1IDE1IDE1IgotIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1zZXQgdmFycyhQRHVhcnQsYmJveCkgICAgICAgIjQ5MCAxMzI1IDg4MCAxNTI1Igotc2V0IHZhcnMoUER1YXJ0LHJzX2V4dHMpICAgICIyMCAyMCAyMCAyMCIKLXNldCB2YXJzKFBEdWFydCxtaW5fZ2FwcykgICAiMTUgMTUgMTUgMTUiCi0jIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLXNldCB2YXJzKFBEcGxsLGJib3gpICAgICAgICAiMjM0MCAyMjI1IDI3NTMgMjc1MyIKLXNldCB2YXJzKFBEcGxsLHJzX2V4dHMpICAgICAiMTUgMTUgMTIgMTUiCi1zZXQgdmFycyhQRHBsbCxtaW5fZ2FwcykgICAgIjE1IDE1IDEyIDE1IgotIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1zZXQgdmFycyhQRHJvbSxiYm94KSAgICAgICAgIjI0MDQuMDQ1IDE0NzUgMjcxMyAxNTUwIgotc2V0IHZhcnMoUERyb20scnNfZXh0cykgICAgICIxNSAxNSAxNSAxNSIKLXNldCB2YXJzKFBEcm9tLG1pbl9nYXBzKSAgICAiMTUgMTUgMTUgMTUiCi0jIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLXNldCB2YXJzKFBEd2FrZXVwLGJib3gpICAgICAiMjU1NSAxNTgwIDI3MDUgMTYzMCIKLXNldCB2YXJzKFBEd2FrZXVwLHJzX2V4dHMpICAiMTUgMTUgMTUgMTUiCi1zZXQgdmFycyhQRHdha2V1cCxtaW5fZ2FwcykgIjE1IDE1IDE1IDE1IgotIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1zZXQgdmFycyhQRHcsYmJveCkgICAgICAgICAgIjI2MyAxNjI4IDIzMDcgMjczMiIKLXNldCB2YXJzKFBEdyxyc19leHRzKSAgICAgICAiNSA1IDUgNSIKLXNldCB2YXJzKFBEdyxtaW5fZ2FwcykgICAgICAiNSA1IDUgNSIKLSMKLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotIyAgICAgICAgICAgICAgICAgICAgICAgICAgIFBvd2VyIFNodXQtb2ZmIFBsYW5uaW5nIAotIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0jIFRoZSBmb3VuZGF0aW9uIGZsb3dzIGNvbnRhaW4gYSBzYW1wbGUgcG9zdF9pbml0X3RjbCAoUExVRy9wb3N0X2luaXQudGNsKSBwbHVnLWluIHRvIGRvIAotIyBwb3dlciBzd2l0Y2ggaW5zZXJ0aW9uIGF1dG9tYXRpY2FsbHkgYmFzZWQgb24gdGhlIGZvbGxvd2luZyBpbmZvcm1hdGlvbjoKLSMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIyBzZXQgdmFycyg8cG93ZXJfZG9tYWluPixzd2l0Y2hhYmxlKSAgICAgICAgIDx0cnVlIHwgZmFsc2U+Ci0jIHNldCB2YXJzKDxwb3dlcl9kb21haW4+LHN3aXRjaF90eXBlKSAgICAgICAgPGNvbHVtbiB8IHJpbmc+Ci0jIHNldCB2YXJzKDxwb3dlcl9kb21haW4+LHN3aXRjaF9jZWxsKSAgICAgICAgPFBTTyBjZWxsIG5hbWU+Ci0jIHNldCB2YXJzKDxwb3dlcl9kb21haW4+LGlucHV0X2VuYWJsZV9waW4pICAgPFBTTyBjZWxsIGlucHV0IGVuYWJsZSBwaW4+Ci0jIHNldCB2YXJzKDxwb3dlcl9kb21haW4+LG91dHB1dF9lbmFibGVfcGluKSAgPFBTTyBjZWxsIG91dHB1dCBlbmFibGUgcGluPgotIyBzZXQgdmFycyg8cG93ZXJfZG9tYWluPixpbnB1dF9lbmFibGVfbmV0KSAgIDxQU08gY2VsbCBpbnB1dCBlbmFibGUgbmV0PgotIyBzZXQgdmFycyg8cG93ZXJfZG9tYWluPixvdXRwdXRfZW5hYmxlX25ldCkgIDxQU08gY2VsbCBvdXRwdXQgZW5hYmxlIG5ldD4KLSMgc2V0IHZhcnMoPHBvd2VyX2RvbWFpbj4sc3dpdGNoX2luc3RhbmNlKSAgICA8c3dpdGNoTW9kdWxlSW5zdGFuY2U+Ci0jIHNldCB2YXJzKDxwb3dlcl9kb21haW4+LHRvcF9vZmZzZXQpICAgICAgICAgPHRvcCBvZmZzZXQgaW4gbWljcm9ucz4KLSMgc2V0IHZhcnMoPHBvd2VyX2RvbWFpbj4sYm90dG9tX29mZnNldCkgICAgICA8Ym90dG9tIG9mZnNldCBpbiBtaWNyb25zPgotIyBzZXQgdmFycyg8cG93ZXJfZG9tYWluPixyaWdodF9vZmZzZXQpICAgICAgIDxyaWdodCBvZmZzZXQgaW4gbWljcm9ucz4KLSMgc2V0IHZhcnMoPHBvd2VyX2RvbWFpbj4sbGVmdF9vZmZzZXQpICAgICAgICA8bGVmdCBvZmZzZXQgaW4gbWljcm9ucz4KLSMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIyBCZWxvdyB2YXJpYWJsZXMgYXJlIGZvciBjb2x1bW4gYmFzZWQgcHNvIGltcGxlbWV0YXRpb24KLSMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIyBzZXQgdmFycyg8cG93ZXJfZG9tYWluPixjaGVja2VyX2JvYXJkKSAgICAgIDx0cnVlIHwgZmFsc2U+Ci0jIHNldCB2YXJzKDxwb3dlcl9kb21haW4+LGhvcml6b25hbF9waXRjaCkgICAgPGluIG1pY3JvbnM+Ci0jIHNldCB2YXJzKDxwb3dlcl9kb21haW4+LGNvbHVtbl9oZWlnaHQpICAgICAgPFN3aXRjaCBjZWxsIGNvbHVtbiBoZWlnaHQgaW4gbWljcm9ucz4KLSMgc2V0IHZhcnMoPHBvd2VyX2RvbWFpbj4sc2tpcF9yb3dzKSAgICAgICAgICA8TnVtYmVyIG9mIHJvd3MgdG8gc2tpcD4KLSMgc2V0IHZhcnMoPHBvd2VyX2RvbWFpbj4sYmFja190b19iYWNrX2NoYWluKSA8dHJ1ZXxmYWxzZT4KLSMgLi4uIENvbm5lY3RzIHRoZSBlbmFibGVOZXRPdXQgYXQgdGhlIHRvcCBvZiBhIGNvbHVtbiB0byB0aGUgZW5hYmxlTmV0SW4gYXQgdGhlIHRvcCBvZiAKLSMgLi4uIHRoZSBuZXh0IGNvbHVtbiwgYW5kIGNvbm5lY3RzIHRoZSBlbmFibGVOZXRPdXQgYXQgdGhlIGJvdHRvbSBvZiB0aGUgY29sdW1uIHRvIHRoZSAKLSMgLi4uIGVuYWJsZU5ldEluIGF0IHRoZSBib3R0b20gb2YgdGhlIG5leHQgY29sdW1uCi0jIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSMgQmVsb3cgdmFyaWFibGVzIGFyZSBmb3IgcmluZyBiYXNlZCBwc28gaW1wbGVtZXRhdGlvbgotIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0jIHNldCB2YXJzKDxwb3dlcl9kb21haW4+LHRvcF9yaW5nKSAgICAgICAgICAgPDF8MD4KLSMgc2V0IHZhcnMoPHBvd2VyX2RvbWFpbj4sYm90dG9tX3JpbmcpICAgICAgICA8MXwwPgotIyBzZXQgdmFycyg8cG93ZXJfZG9tYWluPixyaWdodF9yaW5nKSAgICAgICAgIDwxfDA+Ci0jIHNldCB2YXJzKDxwb3dlcl9kb21haW4+LGxlZnRfcmluZykgICAgICAgICAgPDF8MD4KLSMgLi4uIGRlZmluZXMgd2hpY2ggc2lkZSBvZiB0aGUgcG93ZXIgZG9tYWluIHRvIGluc2VydCBzd2l0Y2hlczoKLSMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIyBzZXQgdmFycyg8cG93ZXJfZG9tYWluPix0b3Bfc3dpdGNoX2NlbGwpICAgIDxwc28gY2VsbCBuYW1lPgotIyBzZXQgdmFycyg8cG93ZXJfZG9tYWluPixib3R0b21fc3dpdGNoX2NlbGwpIDxwc28gY2VsbCBuYW1lPgotIyBzZXQgdmFycyg8cG93ZXJfZG9tYWluPixsZWZ0X3N3aXRjaF9jZWxsKSAgIDxwc28gY2VsbCBuYW1lPgotIyBzZXQgdmFycyg8cG93ZXJfZG9tYWluPixyaWdodF9zd2l0Y2hfY2VsbCkgIDxwc28gY2VsbCBuYW1lPgotIyAuLi4gZGVmaW5lIHBzbyBjZWxsIG5hbWUgZm9yIGVhY2ggc2lkZSBvZiB0aGUgcG93ZXIgZG9tYWluCi0jIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSMgc2V0IHZhcnMoPHBvd2VyX2RvbWFpbj4sdG9wX2ZpbGxlcl9jZWxsKSAgICA8ZmlsbGVyIGNlbGwgbmFtZT4KLSMgc2V0IHZhcnMoPHBvd2VyX2RvbWFpbj4sYm90dG9tX2ZpbGxlcl9jZWxsKSA8ZmlsbGVyIGNlbGwgbmFtZT4KLSMgc2V0IHZhcnMoPHBvd2VyX2RvbWFpbj4sbGVmdF9maWxsZXJfY2VsbCkgICA8ZmlsbGVyIGNlbGwgbmFtZT4KLSMgc2V0IHZhcnMoPHBvd2VyX2RvbWFpbj4scmlnaHRfZmlsbGVyX2NlbGwpICA8ZmlsbGVyIGNlbGwgbmFtZT4KLSMgc2V0IHZhcnMoPHBvd2VyX2RvbWFpbj4sY29ybmVyX2NlbGxfbGlzdCkgICA8Y29ybmVyIGNlbGwgbmFtZT4KLSMgLi4uIGRlZmluZSBmaWxsZXIgY2VsbCBuYW1lIGZvciBlYWNoIHNpZGUgb2YgdGhlIHBvd2VyIGRvbWFpbgotIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0jIHNldCB2YXJzKDxwb3dlcl9kb21haW4+LHRvcF9zd2l0Y2hlcykgICAgICAgPCI8bnVtYmVyPiAtZGlzdHJpYnV0ZSI+Ci0jIHNldCB2YXJzKDxwb3dlcl9kb21haW4+LGJvdHRvbV9zd2l0Y2hlcykgICAgPCI8bnVtYmVyPiAtZGlzdHJpYnV0ZSI+Ci0jIHNldCB2YXJzKDxwb3dlcl9kb21haW4+LGxlZnRfc3dpdGNoZXMpICAgICAgPCI8bnVtYmVyPiAtZGlzdHJpYnV0ZSI+Ci0jIHNldCB2YXJzKDxwb3dlcl9kb21haW4+LHJpZ2h0X3N3aXRjaGVzKSAgICAgPCI8bnVtYmVyPiAtZGlzdHJpYnV0ZSI+Ci0jIC4uLiBkZWZpbmUgdGhlIG51bWJlciBvZiBzd2l0Y2hlcyBmb3IgZWFjaCBzaWRlIG9mIHRoZSBwb3dlciBkb21haW4KLQotIyMjIHVhcnQgcG93ZXIgZG9tYWluIGNvbHVtbiBiYXNlZCBwc28gaW1wbGVtZW50YXRpb24KLXNldCB2YXJzKFBEdWFydCxzd2l0Y2hhYmxlKSAgICAgICAgIHRydWUKLXNldCB2YXJzKFBEdWFydCxzd2l0Y2hfdHlwZSkgICAgICAgIGNvbHVtbgotI3NldCB2YXJzKFBEdWFydCxpbnN0YW5jZSkgICAgICAgICAgIGlfYXBiX3N1YnN5c3RlbS9pX3Bvd2VyX2N0cmwvcHdyMV9vbl91cnQKLXNldCB2YXJzKFBEdWFydCxzd2l0Y2hfaW5zdGFuY2UpICAgIGlfYXBiX3N1YnN5c3RlbS9pX3VhcnQxCi1zZXQgdmFycyhQRHVhcnQsaW5wdXRfZW5hYmxlX3BpbikgICBQU09FTklOCi1zZXQgdmFycyhQRHVhcnQsb3V0cHV0X2VuYWJsZV9waW4pICBQU09FTk9VVAotI3NldCB2YXJzKFBEdWFydCxpbnB1dF9lbmFibGVfbmV0KSAgIFtnZXRfb2JqZWN0X25hbWUgW2FsbF9jb25uZWN0ZWQgJHZhcnMoUER1YXJ0LGluc3RhbmNlKV1dCi1zZXQgdmFycyhQRHVhcnQsaW5wdXRfZW5hYmxlX25ldCkgICBpX2FwYl9zdWJzeXN0ZW0vbl84MDUKLXNldCB2YXJzKFBEdWFydCxvdXRwdXRfZW5hYmxlX25ldCkgIHBkdWFydF9wb3dlcmVkX29mZgotc2V0IHZhcnMoUER1YXJ0LHRvcF9vZmZzZXQpICAgICAgICAgMgotc2V0IHZhcnMoUER1YXJ0LGJvdHRvbV9vZmZzZXQpICAgICAgNjAKLXNldCB2YXJzKFBEdWFydCxyaWdodF9vZmZzZXQpICAgICAgIDIKLXNldCB2YXJzKFBEdWFydCxsZWZ0X29mZnNldCkgICAgICAgIDIwCi1zZXQgdmFycyhQRHVhcnQsc3dpdGNoX2NlbGwpICAgICAgICBIRUFERVJEMgotc2V0IHZhcnMoUER1YXJ0LGNoZWNrZXJfYm9hcmQpICAgICAgdHJ1ZQotc2V0IHZhcnMoUER1YXJ0LGhvcml6b25hbF9waXRjaCkgICAgNzAKLXNldCB2YXJzKFBEdWFydCxjb2x1bW5faGVpZ2h0KSAgICAgIDEyNQotc2V0IHZhcnMoUER1YXJ0LHNraXBfcm93cykgICAgICAgICAgNQotc2V0IHZhcnMoUER1YXJ0LGJhY2tfdG9fYmFja19jaGFpbikgdHJ1ZQotCi0jIyMgUERzbWMgcG93ZXIgZG9tYWluIHJpbmcgYmFzZWQgcHNvIGltcGxlbWVudGF0aW9uCi1zZXQgdmFycyhQRHNtYyxzd2l0Y2hhYmxlKSAgICAgICAgIHRydWUKLXNldCB2YXJzKFBEc21jLHN3aXRjaF90eXBlKSAgICAgICAgcmluZwotI3NldCB2YXJzKFBEc21jLGluc3RhbmNlKSAgICAgICAgICAgaV9hcGJfc3Vic3lzdGVtL2lfcG93ZXJfY3RybC9wd3IxX29uX3NtYwotc2V0IHZhcnMoUERzbWMsc3dpdGNoX2luc3RhbmNlKSAgICBpX2FwYl9zdWJzeXN0ZW0vaV9zbWMKLXNldCB2YXJzKFBEc21jLGlucHV0X2VuYWJsZV9waW4pICAgUFNPRU5JTgotc2V0IHZhcnMoUERzbWMsb3V0cHV0X2VuYWJsZV9waW4pICBQU09FTk9VVAotI3NldCB2YXJzKFBEc21jLGlucHV0X2VuYWJsZV9uZXQpICAgW2dldF9vYmplY3RfbmFtZSBbYWxsX2Nvbm5lY3RlZCAkdmFycyhQRHNtYyxpbnN0YW5jZSldXQotc2V0IHZhcnMoUERzbWMsaW5wdXRfZW5hYmxlX25ldCkgICBpX2FwYl9zdWJzeXN0ZW0vbl83OTkKLXNldCB2YXJzKFBEc21jLG91dHB1dF9lbmFibGVfbmV0KSAgcGRzbWNfcG93ZXJlZF9vZmYKLXNldCB2YXJzKFBEc21jLHRvcF9vZmZzZXQpICAgICAgICAgMgotc2V0IHZhcnMoUERzbWMsYm90dG9tX29mZnNldCkgICAgICAyCi1zZXQgdmFycyhQRHNtYyxyaWdodF9vZmZzZXQpICAgICAgIDIKLXNldCB2YXJzKFBEc21jLGxlZnRfb2Zmc2V0KSAgICAgICAgMgotc2V0IHZhcnMoUERzbWMsdG9wX3JpbmcpICAgICAgICAgICAxCi1zZXQgdmFycyhQRHNtYyxib3R0b21fcmluZykgICAgICAgIDEKLXNldCB2YXJzKFBEc21jLHJpZ2h0X3JpbmcpICAgICAgICAgMQotc2V0IHZhcnMoUERzbWMsbGVmdF9yaW5nKSAgICAgICAgICAxCi1zZXQgdmFycyhQRHNtYyxjb3JuZXJfY2VsbF9saXN0KSAgIENETl9SSU5HX0NPUk5FUl9VTAotc2V0IHZhcnMoUERzbWMsdG9wX2ZpbGxlcl9jZWxsKSAgICBDRE5fUklOR19GSUxMRVIKLXNldCB2YXJzKFBEc21jLGJvdHRvbV9maWxsZXJfY2VsbCkgQ0ROX1JJTkdfRklMTEVSCi1zZXQgdmFycyhQRHNtYyxsZWZ0X2ZpbGxlcl9jZWxsKSAgIENETl9SSU5HX0ZJTExFUgotc2V0IHZhcnMoUERzbWMscmlnaHRfZmlsbGVyX2NlbGwpICBDRE5fUklOR19GSUxMRVIKLXNldCB2YXJzKFBEc21jLHRvcF9zd2l0Y2hfY2VsbCkgICAgQ0ROX1JJTkdfU1cKLXNldCB2YXJzKFBEc21jLGJvdHRvbV9zd2l0Y2hfY2VsbCkgQ0ROX1JJTkdfU1cKLXNldCB2YXJzKFBEc21jLGxlZnRfc3dpdGNoX2NlbGwpICAgQ0ROX1JJTkdfU1cKLXNldCB2YXJzKFBEc21jLHJpZ2h0X3N3aXRjaF9jZWxsKSAgQ0ROX1JJTkdfU1cKLXNldCB2YXJzKFBEc21jLHRvcF9zd2l0Y2hlcykgICAgICAgIjQgLWRpc3RyaWJ1dGUiCi1zZXQgdmFycyhQRHNtYyxib3R0b21fc3dpdGNoZXMpICAgICI0IC1kaXN0cmlidXRlIgotc2V0IHZhcnMoUERzbWMsbGVmdF9zd2l0Y2hlcykgICAgICAiNCAtZGlzdHJpYnV0ZSIKLXNldCB2YXJzKFBEc21jLHJpZ2h0X3N3aXRjaGVzKSAgICAgIjQgLWRpc3RyaWJ1dGUiCi0KLSMjIyBQRHJvbSBwb3dlciBkb21haW4gcmluZyBiYXNlZCBwc28gaW1wbGVtZW50YXRpb24KLXNldCB2YXJzKFBEcm9tLHN3aXRjaGFibGUpICAgICAgICAgdHJ1ZQotc2V0IHZhcnMoUERyb20sc3dpdGNoX3R5cGUpICAgICAgICByaW5nCi0jc2V0IHZhcnMoUERyb20saW5zdGFuY2UpICAgICAgICAgICBpX2FwYl9zdWJzeXN0ZW0vaV9wb3dlcl9jdHJsL3B3cjFfb25fcm9tCi1zZXQgdmFycyhQRHJvbSxzd2l0Y2hfaW5zdGFuY2UpICAgIGlfYXBiX3N1YnN5c3RlbSAKLXNldCB2YXJzKFBEcm9tLGlucHV0X2VuYWJsZV9waW4pICAgUFNPRU5JTgotc2V0IHZhcnMoUERyb20sb3V0cHV0X2VuYWJsZV9waW4pICBQU09FTk9VVAotI3NldCB2YXJzKFBEcm9tLGlucHV0X2VuYWJsZV9uZXQpICAgW2dldF9vYmplY3RfbmFtZSBbYWxsX2Nvbm5lY3RlZCAkdmFycyhQRHJvbSxpbnN0YW5jZSldXQotc2V0IHZhcnMoUERyb20saW5wdXRfZW5hYmxlX25ldCkgIGlfYXBiX3N1YnN5c3RlbS9VTkNPTk5FQ1RFRDY1MiAgCi1zZXQgdmFycyhQRHJvbSxvdXRwdXRfZW5hYmxlX25ldCkgIHBkcm9tX3Bvd2VyZWRfb2ZmCi1zZXQgdmFycyhQRHJvbSx0b3Bfb2Zmc2V0KSAgICAgICAgIDIKLXNldCB2YXJzKFBEcm9tLGJvdHRvbV9vZmZzZXQpICAgICAgMgotc2V0IHZhcnMoUERyb20scmlnaHRfb2Zmc2V0KSAgICAgICAyCi1zZXQgdmFycyhQRHJvbSxsZWZ0X29mZnNldCkgICAgICAgIDIKLXNldCB2YXJzKFBEcm9tLHRvcF9yaW5nKSAgICAgICAgICAgMQotc2V0IHZhcnMoUERyb20sYm90dG9tX3JpbmcpICAgICAgICAxCi1zZXQgdmFycyhQRHJvbSxyaWdodF9yaW5nKSAgICAgICAgIDEKLXNldCB2YXJzKFBEcm9tLGxlZnRfcmluZykgICAgICAgICAgMQotc2V0IHZhcnMoUERyb20sY29ybmVyX2NlbGxfbGlzdCkgICBDRE5fUklOR19DT1JORVJfVUwKLXNldCB2YXJzKFBEcm9tLHRvcF9maWxsZXJfY2VsbCkgICAgQ0ROX1JJTkdfRklMTEVSCi1zZXQgdmFycyhQRHJvbSxib3R0b21fZmlsbGVyX2NlbGwpIENETl9SSU5HX0ZJTExFUgotc2V0IHZhcnMoUERyb20sbGVmdF9maWxsZXJfY2VsbCkgICBDRE5fUklOR19GSUxMRVIKLXNldCB2YXJzKFBEcm9tLHJpZ2h0X2ZpbGxlcl9jZWxsKSAgQ0ROX1JJTkdfRklMTEVSCi1zZXQgdmFycyhQRHJvbSx0b3Bfc3dpdGNoX2NlbGwpICAgIENETl9SSU5HX1NXCi1zZXQgdmFycyhQRHJvbSxib3R0b21fc3dpdGNoX2NlbGwpIENETl9SSU5HX1NXCi1zZXQgdmFycyhQRHJvbSxsZWZ0X3N3aXRjaF9jZWxsKSAgIENETl9SSU5HX1NXCi1zZXQgdmFycyhQRHJvbSxyaWdodF9zd2l0Y2hfY2VsbCkgIENETl9SSU5HX1NXCi1zZXQgdmFycyhQRHJvbSx0b3Bfc3dpdGNoZXMpICAgICAgICIyNSAtZGlzdHJpYnV0ZSIKLXNldCB2YXJzKFBEcm9tLGJvdHRvbV9zd2l0Y2hlcykgICAgIjI1IC1kaXN0cmlidXRlIgotc2V0IHZhcnMoUERyb20sbGVmdF9zd2l0Y2hlcykgICAgICAiMTAgLWRpc3RyaWJ1dGUiCi1zZXQgdmFycyhQRHJvbSxyaWdodF9zd2l0Y2hlcykgICAgICIxMCAtZGlzdHJpYnV0ZSIKLSMKZGlmZiAtLWdpdCBhL2Zsb3cvcG5yL0VYQU1QTEVTL0lOTk9WVVMvc2V0dXAuY3BmLnRjbCBiL2Zsb3cvcG5yL0VYQU1QTEVTL0lOTk9WVVMvc2V0dXAuY3BmLnRjbApkZWxldGVkIGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMzc2YTExYy4uMDAwMDAwMAotLS0gYS9mbG93L3Buci9FWEFNUExFUy9JTk5PVlVTL3NldHVwLmNwZi50Y2wKKysrIC9kZXYvbnVsbApAQCAtMSwzNzggKzAsMCBAQAotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0jICAgICAgICAgICAgICAgICAgICAgICAgICAgQ0ROUyBJTk5PVlVTIEZPVU5EQVRJT04gRkxPVwotIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0jIFRoaXMgaXMgdGhlIGZvdW5kYXRpb24gZmxvdyBzZXR1cC50Y2wgZmlsZS4gIEl0IGNvbnRhaW5zIGFsbCB0aGUgbmVjZXNzYXJ5IGluZm9ybWF0aW9uCi0jIHRvIHJ1biB0aGUgSW5ub3Z1cyBkaWdpdGFsIGltcGxlbWVudGF0aW9uIGZsb3cuIAotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi1zZXQgdmFycyhzY3JpcHRfcm9vdCkgICAgICBTQ1JJUFRTCi1zZXQgdmFycyhkZXNpZ25fcm9vdCkgICAgICBbcHdkXS8uLgotc2V0IHZhcnMocGx1Z19kaXIpICAgICAgICAgUExVRwotc2V0IHZhcnMoZGJzX2RpcikgICAgICAgICAgREJTCi1zZXQgdmFycyhycHRfZGlyKSAgICAgICAgICBSUFQKLXNldCB2YXJzKGZsb3cpICAgICAgICAgICAgIG1tbWMKLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSMgRGVmaW5lIHJlcXVpcmVkIGRlc2lnbiBkYXRhIC4uLgotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotc2V0IHZhcnMoZGVzaWduKSAgICAgICAgICAgY2hpcF90b3AKLXNldCB2YXJzKG5ldGxpc3QpICAgICAgICAgICR2YXJzKGRlc2lnbl9yb290KS9EQVRBL2NoaXBfdG9wX25ldGxpc3Qudgotc2V0IHZhcnMoZnBfZmlsZSkgICAgICAgICAgJHZhcnMoZGVzaWduX3Jvb3QpL0RBVEEvbHBfd29ya19zaG9wX2Rlc2lnbi8wNDA4L1dPUksvREJTL3JvdXRlLmVuYy5kYXQvY2hpcF90b3AuZnAuZ3oKLSNzZXQgdmFycyhkZWZfZmlsZXMpICAgICAgIjxkZWZfZmlsZXM+IgotI3NldCB2YXJzKGdlbmVyYXRlX3RyYWNrcykgPHRydWUgb3IgZmFsc2U+Ci0jc2V0IHZhcnMoc2Nhbl9kZWYpICAgICAgICA8c2Nhbl9kZWY+Ci1zZXQgdmFycyhjdHNfc3BlYykgICAgICAgICAiJHZhcnMoZGVzaWduX3Jvb3QpL0RBVEEvY2hpcF90b3AuY3RzdGNoIgotc2V0IHZhcnMoc2Nhbl9kZWYpICAgICAgICAgJHZhcnMoZGVzaWduX3Jvb3QpL0RBVEEvY2hpcF90b3Auc2NhbmRlZgotc2V0IHZhcnMoaW9fZmlsZSkgICAgICAgICAgJHZhcnMoZGVzaWduX3Jvb3QpL0RBVEEvY2hpcF90b3AuaW8KLXNldCB2YXJzKHByb2Nlc3MpICAgICAgICAgIDY1bm0KLXNldCB2YXJzKG1heF9yb3V0ZV9sYXllcikgIDkKLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSMgRGVmaW5lIGxlZiBmaWxlcyAuLi4KLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLXNldCB2YXJzKGxlZl9maWxlcykgIlwKLSAgICR2YXJzKGRlc2lnbl9yb290KS9MSUJTL1NURENFTEwvTEVGL3N0ZGNlbGw2NW5fOWxtVDIubGVmIFwKLSAgICR2YXJzKGRlc2lnbl9yb290KS9MSUJTL1NURENFTEwvTEVGL3N0ZGNlbGw2NW5odnRfOWxtVDIubGVmIFwKLSAgICR2YXJzKGRlc2lnbl9yb290KS9MSUJTL1NURENFTEwvTEVGL3N0ZGNlbGw2NW5sdnRfOWxtVDIubGVmIFwKLSAgICR2YXJzKGRlc2lnbl9yb290KS9MSUJTL1NURENFTEwvTEVGL3N0ZGNlbGw2NW5jZ19tOVQyLmxlZiBcCi0gICAkdmFycyhkZXNpZ25fcm9vdCkvTElCUy9TVERDRUxML0xFRi9zdGRjZWxsNjVuaHZ0Y2dfbTlUMi5sZWYgXAotICAgJHZhcnMoZGVzaWduX3Jvb3QpL0xJQlMvU1REQ0VMTC9MRUYvc3RkY2VsbDY1bmx2dGNnX205VDIubGVmIFwKLSAgICR2YXJzKGRlc2lnbl9yb290KS9MSUJTL0lPL0xFRi9pb2NlbGw2NW5fOWxtLmxlZiBcCi0gICAkdmFycyhkZXNpZ25fcm9vdCkvTElCUy9JTy9MRUYvYW50ZW5uYV85LmxlZiBcCi0gICAkdmFycyhkZXNpZ25fcm9vdCkvTElCUy9JTy9MRUYvZHVtbXlfYW5hbG9nX3BhZC5sZWYgXAotICAgJHZhcnMoZGVzaWduX3Jvb3QpL0xJQlMvSU8vTEVGL2JvbmRwYWRfOWxtLmxlZiBcCi0gICAkdmFycyhkZXNpZ25fcm9vdCkvTElCUy9SQU1TX1JPTVMvTEVGL21lbWRwXzUxMngzNmNtNHN3MWJrMS5wbGVmIFwKLSAgICR2YXJzKGRlc2lnbl9yb290KS9MSUJTL1JBTVNfUk9NUy9MRUYvbWVtcm9tXzUxMngzMmNtMTYucGxlZiBcCi0gICAkdmFycyhkZXNpZ25fcm9vdCkvTElCUy9SQU1TX1JPTVMvTEVGL21lbXNwXzJreDMyY204c3cxYmsyLnBsZWYgXAotICAgJHZhcnMoZGVzaWduX3Jvb3QpL0xJQlMvUkFNU19ST01TL0xFRi9tZW1zcF8zMmt4MzJjbTE2c3cxYmsxNi5wbGVmIFwKLSAgICR2YXJzKGRlc2lnbl9yb290KS9MSUJTL1JBTVNfUk9NUy9MRUYvbWVtc3BfMzJ4MTI4Y200c3cxYmsxLnBsZWYgXAotICAgJHZhcnMoZGVzaWduX3Jvb3QpL0xJQlMvUkFNU19ST01TL0xFRi9tZW1zcF80a3gzMmNtOHN3MWJrNC5wbGVmIFwKLSAgICR2YXJzKGRlc2lnbl9yb290KS9MSUJTL1JBTVNfUk9NUy9MRUYvbWVtc3BfNTEyeDhjbTRzdzFiazEucGxlZiBcCi0gICAkdmFycyhkZXNpZ25fcm9vdCkvTElCUy9SQU1TX1JPTVMvTEVGL21lbXNwXzhreDMyY204c3cxYms4LnBsZWYgXAotICAgJHZhcnMoZGVzaWduX3Jvb3QpL0xJQlMvQU5BTE9HL1BMTC9MRUYvUEwwMDQyLmxlZiBcCi0gICAkdmFycyhkZXNpZ25fcm9vdCkvTElCUy9BTkFMT0cvTFZEUy9MRUYvbHZkcy5sZWYgXAotICAgJHZhcnMoZGVzaWduX3Jvb3QpL0xJQlMvSVAvTEVGL3Bzby5sZWYgXAotICAgJHZhcnMoZGVzaWduX3Jvb3QpL0xJQlMvSVAvTEVGL01vZHVsZV9BLnBhcnRpdGlvbi5sZWYgXAotICAgJHZhcnMoZGVzaWduX3Jvb3QpL0xJQlMvSVAvTEVGL01vZHVsZV9CLnBhcnRpdGlvbi5sZWYgXAotICAgJHZhcnMoZGVzaWduX3Jvb3QpL0xJQlMvSVAvTEVGL01vZHVsZV9VLnBhcnRpdGlvbi5sZWYgXAotICAgJHZhcnMoZGVzaWduX3Jvb3QpL0xJQlMvSVAvTEVGL01vZHVsZV9XLnBhcnRpdGlvbi5sZWYgXAotIgotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotIyBEZWZpbmUgbGlicmFyeSBzZXRzIC4uLgotIyBzZXQgdmFycyhsaWJyYXJ5X3NldHMpIDxsaXN0IG9mIGxpYnJhcnkgc2V0cz4KLSMgc2V0IHZhcnMoPHNldD4sdGltaW5nKSA8bGlzdCBvZiBsaWIgZmlsZXM+Ci0jIHNldCB2YXJzKDxzZXQ+LHNpKSA8bGlzdCBvZiBjZGIvdWRuIGZpbGVzPgotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotc2V0IHZhcnMobGlicmFyeV9zZXRzKSAiMHY4NjQgMnY1IDF2MzIwIDN2MyAxdjA1NiAxdjA4MCIKLXNldCB2YXJzKDB2ODY0LHRpbWluZykgIlwKLSAgICR2YXJzKGRlc2lnbl9yb290KS9MSUJTL1NURENFTEwvTElCRVJUWS9IVlQvc3RkY2VsbDY1bmh2dHdjMGQ3MjBkNzIubGliIFwKLSAgICR2YXJzKGRlc2lnbl9yb290KS9MSUJTL1NURENFTEwvTElCRVJUWS9MVlQvc3RkY2VsbDY1bmx2dHdjMGQ3MjBkNzIubGliIFwKLSAgICR2YXJzKGRlc2lnbl9yb290KS9MSUJTL1NURENFTEwvTElCRVJUWS9OVlQvc3RkY2VsbDY1bndjMGQ3MjBkNzIubGliIFwKLSAgICR2YXJzKGRlc2lnbl9yb290KS9MSUJTL1NURENFTEwvTElCRVJUWS9IVlQvc3RkY2VsbDY1bmh2dHdjMGQ3Mi5saWIgXAotICAgJHZhcnMoZGVzaWduX3Jvb3QpL0xJQlMvU1REQ0VMTC9MSUJFUlRZL0xWVC9zdGRjZWxsNjVubHZ0d2MwZDcyLmxpYiBcCi0gICAkdmFycyhkZXNpZ25fcm9vdCkvTElCUy9TVERDRUxML0xJQkVSVFkvTlZUL3N0ZGNlbGw2NW53YzBkNzIubGliIFwKLSAgICR2YXJzKGRlc2lnbl9yb290KS9MSUJTL1NURENFTEwvTElCRVJUWS9IVlRfQ0cvc3RkY2VsbDY1bmh2dGNnd2MwZDcyLmxpYiBcCi0gICAkdmFycyhkZXNpZ25fcm9vdCkvTElCUy9TVERDRUxML0xJQkVSVFkvTFZUX0NHL3N0ZGNlbGw2NW5sdnRjZ3djMGQ3Mi5saWIgXAotICAgJHZhcnMoZGVzaWduX3Jvb3QpL0xJQlMvU1REQ0VMTC9MSUJFUlRZL05WVF9DRy9zdGRjZWxsNjVuY2d3YzBkNzIubGliIFwKLSAgICR2YXJzKGRlc2lnbl9yb290KS9MSUJTL1JBTVNfUk9NUy9MSUJFUlRZL1dPUlNUXzA4NjQvbWVtZHBfNTEyeDM2Y200c3cxYmsxLmxpYiBcCi0gICAkdmFycyhkZXNpZ25fcm9vdCkvTElCUy9SQU1TX1JPTVMvTElCRVJUWS9XT1JTVF8wODY0L21lbXJvbV81MTJ4MzJjbTE2LmxpYiBcCi0gICAkdmFycyhkZXNpZ25fcm9vdCkvTElCUy9SQU1TX1JPTVMvTElCRVJUWS9XT1JTVF8wODY0L21lbXNwXzJreDMyY204c3cxYmsyLmxpYiBcCi0gICAkdmFycyhkZXNpZ25fcm9vdCkvTElCUy9SQU1TX1JPTVMvTElCRVJUWS9XT1JTVF8wODY0L21lbXNwXzRreDMyY204c3cxYms0LmxpYiBcCi0gICAkdmFycyhkZXNpZ25fcm9vdCkvTElCUy9JTy9MSUJFUlRZL2lvY2VsbDY1bndjXzA4NjQubGliIFwKLSAgICR2YXJzKGRlc2lnbl9yb290KS9MSUJTL0FOQUxPRy9MVkRTL0xJQkVSVFkvbHZkc193Y18wODY0LmxpYiBcCi0gICAkdmFycyhkZXNpZ25fcm9vdCkvTElCUy9JUC9MSUJFUlRZL3Bzb193Y18wODY0LmxpYiBcCi0gICAkdmFycyhkZXNpZ25fcm9vdCkvTElCUy9JUC9MSUJFUlRZL01vZHVsZV9BX3djXzA4NjQubGliIFwKLSAgICR2YXJzKGRlc2lnbl9yb290KS9MSUJTL0lQL0xJQkVSVFkvTW9kdWxlX0Jfd2NfMDg2NC5saWIgXAotICAgJHZhcnMoZGVzaWduX3Jvb3QpL0xJQlMvSVAvTElCRVJUWS9Nb2R1bGVfVV93Y18wODY0LmxpYiBcCi0gICAkdmFycyhkZXNpZ25fcm9vdCkvTElCUy9JUC9MSUJFUlRZL01vZHVsZV9XX3djXzA4NjQubGliIFwKLSIKLXNldCB2YXJzKDB2ODY0LHNpKSAiXAotICAgJHZhcnMoZGVzaWduX3Jvb3QpL0xJQlMvU1REQ0VMTC9DREIvSFZUL3N0ZGNlbGw2NW5odnR3YzBkNzIuY2RiIFwKLSAgICR2YXJzKGRlc2lnbl9yb290KS9MSUJTL1NURENFTEwvQ0RCL0hWVC9zdGRjZWxsNjVuaHZ0d2MwZDcyMGQ3Mi5jZGIgXAotICAgJHZhcnMoZGVzaWduX3Jvb3QpL0xJQlMvU1REQ0VMTC9DREIvTlZUL3N0ZGNlbGw2NW53YzBkNzIuY2RiIFwKLSAgICR2YXJzKGRlc2lnbl9yb290KS9MSUJTL1NURENFTEwvQ0RCL05WVC9zdGRjZWxsNjVud2MwZDcyMGQ3Mi5jZGIgXAotICAgJHZhcnMoZGVzaWduX3Jvb3QpL0xJQlMvU1REQ0VMTC9DREIvTFZUL3N0ZGNlbGw2NW5sdnR3YzBkNzIuY2RiIFwKLSAgICR2YXJzKGRlc2lnbl9yb290KS9MSUJTL1NURENFTEwvQ0RCL0xWVC9zdGRjZWxsNjVubHZ0d2MwZDcyMGQ3Mi5jZGIgXAotICAgJHZhcnMoZGVzaWduX3Jvb3QpL0xJQlMvU1REQ0VMTC9DREIvSFZUX0NHL3N0ZGNlbGw2NW5odnRjZ3djMGQ3Mi5jZGIgXAotICAgJHZhcnMoZGVzaWduX3Jvb3QpL0xJQlMvU1REQ0VMTC9DREIvTlZUX0NHL3N0ZGNlbGw2NW5jZ3djMGQ3Mi5jZGIgXAotICAgJHZhcnMoZGVzaWduX3Jvb3QpL0xJQlMvU1REQ0VMTC9DREIvTFZUX0NHL3N0ZGNlbGw2NW5sdnRjZ3djMGQ3Mi5jZGIgXAotIgotc2V0IHZhcnMoMnY1LHRpbWluZykgIlwKLSAgICR2YXJzKGRlc2lnbl9yb290KS9MSUJTL0lQL0xJQkVSVFkvTW9kdWxlX1UubGliIFwKLSAgICR2YXJzKGRlc2lnbl9yb290KS9MSUJTL1NURENFTEwvTElCRVJUWS9OVlQvc3RkY2VsbDY1bndjLmxpYiBcCi0iCi1zZXQgdmFycygxdjMyMCx0aW1pbmcpICJcCi0gICAkdmFycyhkZXNpZ25fcm9vdCkvTElCUy9TVERDRUxML0xJQkVSVFkvTFZUL3N0ZGNlbGw2NW5sdnRiYzBkODgxZDEubGliIFwKLSAgICR2YXJzKGRlc2lnbl9yb290KS9MSUJTL1NURENFTEwvTElCRVJUWS9IVlQvc3RkY2VsbDY1bmh2dGJjMGQ4ODFkMS5saWIgXAotICAgJHZhcnMoZGVzaWduX3Jvb3QpL0xJQlMvU1REQ0VMTC9MSUJFUlRZL05WVC9zdGRjZWxsNjVuYmMwZDg4MWQxLmxpYiBcCi0gICAkdmFycyhkZXNpZ25fcm9vdCkvTElCUy9TVERDRUxML0xJQkVSVFkvSFZUL3N0ZGNlbGw2NW5odnRiYzFkMTFkMS5saWIgXAotICAgJHZhcnMoZGVzaWduX3Jvb3QpL0xJQlMvU1REQ0VMTC9MSUJFUlRZL0hWVC9zdGRjZWxsNjVuaHZ0YmMubGliIFwKLSAgICR2YXJzKGRlc2lnbl9yb290KS9MSUJTL1NURENFTEwvTElCRVJUWS9MVlQvc3RkY2VsbDY1bmx2dGJjLmxpYiBcCi0gICAkdmFycyhkZXNpZ25fcm9vdCkvTElCUy9TVERDRUxML0xJQkVSVFkvTFZUL3N0ZGNlbGw2NW5sdnRiYzFkMTFkMS5saWIgXAotICAgJHZhcnMoZGVzaWduX3Jvb3QpL0xJQlMvU1REQ0VMTC9MSUJFUlRZL05WVC9zdGRjZWxsNjVuYmMubGliIFwKLSAgICR2YXJzKGRlc2lnbl9yb290KS9MSUJTL1NURENFTEwvTElCRVJUWS9OVlQvc3RkY2VsbDY1bmJjMWQxMWQxLmxpYiBcCi0gICAkdmFycyhkZXNpZ25fcm9vdCkvTElCUy9TVERDRUxML0xJQkVSVFkvSFZUX0NHL3N0ZGNlbGw2NW5odnRjZ2JjLmxpYiBcCi0gICAkdmFycyhkZXNpZ25fcm9vdCkvTElCUy9TVERDRUxML0xJQkVSVFkvTFZUX0NHL3N0ZGNlbGw2NW5sdnRjZ2JjLmxpYiBcCi0gICAkdmFycyhkZXNpZ25fcm9vdCkvTElCUy9TVERDRUxML0xJQkVSVFkvTlZUX0NHL3N0ZGNlbGw2NW5jZ2JjLmxpYiBcCi0gICAkdmFycyhkZXNpZ25fcm9vdCkvTElCUy9SQU1TX1JPTVMvTElCRVJUWS9CRVNUXzEzMjAvbWVtZHBfNTEyeDM2Y200c3cxYmsxLmxpYiBcCi0gICAkdmFycyhkZXNpZ25fcm9vdCkvTElCUy9SQU1TX1JPTVMvTElCRVJUWS9CRVNUXzEzMjAvbWVtcm9tXzUxMngzMmNtMTYubGliIFwKLSAgICR2YXJzKGRlc2lnbl9yb290KS9MSUJTL1JBTVNfUk9NUy9MSUJFUlRZL0JFU1RfMTMyMC9tZW1zcF8ya3gzMmNtOHN3MWJrMi5saWIgXAotICAgJHZhcnMoZGVzaWduX3Jvb3QpL0xJQlMvUkFNU19ST01TL0xJQkVSVFkvQkVTVF8xMzIwL21lbXNwXzRreDMyY204c3cxYms0LmxpYiBcCi0gICAkdmFycyhkZXNpZ25fcm9vdCkvTElCUy9JTy9MSUJFUlRZL2lvY2VsbDY1bmJjLmxpYiBcCi0gICAkdmFycyhkZXNpZ25fcm9vdCkvTElCUy9BTkFMT0cvUExML0xJQkVSVFkvUEwwMDQyLmh2dF9mZl8xcDMydl8wYy5saWIgXAotICAgJHZhcnMoZGVzaWduX3Jvb3QpL0xJQlMvSVAvTElCRVJUWS9wc29fYmNfMTMyMC5saWIgXAotICAgJHZhcnMoZGVzaWduX3Jvb3QpL0xJQlMvSVAvTElCRVJUWS9Nb2R1bGVfQV9iY18xMzIwLmxpYiBcCi0gICAkdmFycyhkZXNpZ25fcm9vdCkvTElCUy9JUC9MSUJFUlRZL01vZHVsZV9CX2JjXzEzMjAubGliIFwKLSAgICR2YXJzKGRlc2lnbl9yb290KS9MSUJTL0lQL0xJQkVSVFkvTW9kdWxlX1VfYmNfMTMyMC5saWIgXAotIgotc2V0IHZhcnMoMXYzMjAsc2kpICJcCi0gICAkdmFycyhkZXNpZ25fcm9vdCkvTElCUy9TVERDRUxML0NEQi9IVlQvc3RkY2VsbDY1bmh2dGJjLmNkYiBcCi0gICAkdmFycyhkZXNpZ25fcm9vdCkvTElCUy9TVERDRUxML0NEQi9IVlQvc3RkY2VsbDY1bmh2dGJjMWQxMWQxLmNkYiBcCi0gICAkdmFycyhkZXNpZ25fcm9vdCkvTElCUy9TVERDRUxML0NEQi9IVlQvc3RkY2VsbDY1bmh2dGJjMGQ4ODFkMS5jZGIgXAotICAgJHZhcnMoZGVzaWduX3Jvb3QpL0xJQlMvU1REQ0VMTC9DREIvTlZUL3N0ZGNlbGw2NW5iYy5jZGIgXAotICAgJHZhcnMoZGVzaWduX3Jvb3QpL0xJQlMvU1REQ0VMTC9DREIvTlZUL3N0ZGNlbGw2NW5iYzFkMTFkMS5jZGIgXAotICAgJHZhcnMoZGVzaWduX3Jvb3QpL0xJQlMvU1REQ0VMTC9DREIvTlZUL3N0ZGNlbGw2NW5iYzBkODgxZDEuY2RiIFwKLSAgICR2YXJzKGRlc2lnbl9yb290KS9MSUJTL1NURENFTEwvQ0RCL0xWVC9zdGRjZWxsNjVubHZ0YmMuY2RiIFwKLSAgICR2YXJzKGRlc2lnbl9yb290KS9MSUJTL1NURENFTEwvQ0RCL0xWVC9zdGRjZWxsNjVubHZ0YmMxZDExZDEuY2RiIFwKLSAgICR2YXJzKGRlc2lnbl9yb290KS9MSUJTL1NURENFTEwvQ0RCL0xWVC9zdGRjZWxsNjVubHZ0YmMwZDg4MWQxLmNkYiBcCi0gICAkdmFycyhkZXNpZ25fcm9vdCkvTElCUy9TVERDRUxML0NEQi9IVlRfQ0cvc3RkY2VsbDY1bmh2dGNnYmMuY2RiIFwKLSAgICR2YXJzKGRlc2lnbl9yb290KS9MSUJTL1NURENFTEwvQ0RCL05WVF9DRy9zdGRjZWxsNjVuY2diYy5jZGIgXAotICAgJHZhcnMoZGVzaWduX3Jvb3QpL0xJQlMvU1REQ0VMTC9DREIvTFZUX0NHL3N0ZGNlbGw2NW5sdnRjZ2JjLmNkYiBcCi0gICAkdmFycyhkZXNpZ25fcm9vdCkvTElCUy9JTy9DREIvaW9jZWxsNjVuYmMuY2RiIFwKLSIKLXNldCB2YXJzKDN2Myx0aW1pbmcpICJcCi0gICAkdmFycyhkZXNpZ25fcm9vdCkvTElCUy9JUC9MSUJFUlRZL01vZHVsZV9VLmxpYiBcCi0gICAkdmFycyhkZXNpZ25fcm9vdCkvTElCUy9TVERDRUxML0xJQkVSVFkvTlZUL3N0ZGNlbGw2NW53Yy5saWIgXAotIgotc2V0IHZhcnMoMXYwNTYsdGltaW5nKSAiXAotICAgJHZhcnMoZGVzaWduX3Jvb3QpL0xJQlMvU1REQ0VMTC9MSUJFUlRZL0hWVC9zdGRjZWxsNjVuaHZ0YmMwZDg4MGQ4OC5saWIgXAotICAgJHZhcnMoZGVzaWduX3Jvb3QpL0xJQlMvU1REQ0VMTC9MSUJFUlRZL0xWVC9zdGRjZWxsNjVubHZ0YmMwZDg4MGQ4OC5saWIgXAotICAgJHZhcnMoZGVzaWduX3Jvb3QpL0xJQlMvU1REQ0VMTC9MSUJFUlRZL05WVC9zdGRjZWxsNjVuYmMwZDg4MGQ4OC5saWIgXAotICAgJHZhcnMoZGVzaWduX3Jvb3QpL0xJQlMvU1REQ0VMTC9MSUJFUlRZL0hWVC9zdGRjZWxsNjVuaHZ0YmMwZDg4LmxpYiBcCi0gICAkdmFycyhkZXNpZ25fcm9vdCkvTElCUy9TVERDRUxML0xJQkVSVFkvTFZUL3N0ZGNlbGw2NW5sdnRiYzBkODgubGliIFwKLSAgICR2YXJzKGRlc2lnbl9yb290KS9MSUJTL1NURENFTEwvTElCRVJUWS9OVlQvc3RkY2VsbDY1bmJjMGQ4OC5saWIgXAotICAgJHZhcnMoZGVzaWduX3Jvb3QpL0xJQlMvU1REQ0VMTC9MSUJFUlRZL0hWVF9DRy9zdGRjZWxsNjVuaHZ0Y2diYzBkODgubGliIFwKLSAgICR2YXJzKGRlc2lnbl9yb290KS9MSUJTL1NURENFTEwvTElCRVJUWS9MVlRfQ0cvc3RkY2VsbDY1bmx2dGNnYmMwZDg4LmxpYiBcCi0gICAkdmFycyhkZXNpZ25fcm9vdCkvTElCUy9TVERDRUxML0xJQkVSVFkvTlZUX0NHL3N0ZGNlbGw2NW5jZ2JjMGQ4OC5saWIgXAotICAgJHZhcnMoZGVzaWduX3Jvb3QpL0xJQlMvUkFNU19ST01TL0xJQkVSVFkvQkVTVF8xMDU2L21lbWRwXzUxMngzNmNtNHN3MWJrMS5saWIgXAotICAgJHZhcnMoZGVzaWduX3Jvb3QpL0xJQlMvUkFNU19ST01TL0xJQkVSVFkvQkVTVF8xMDU2L21lbXJvbV81MTJ4MzJjbTE2LmxpYiBcCi0gICAkdmFycyhkZXNpZ25fcm9vdCkvTElCUy9SQU1TX1JPTVMvTElCRVJUWS9CRVNUXzEwNTYvbWVtc3BfMmt4MzJjbThzdzFiazIubGliIFwKLSAgICR2YXJzKGRlc2lnbl9yb290KS9MSUJTL1JBTVNfUk9NUy9MSUJFUlRZL0JFU1RfMTA1Ni9tZW1zcF80a3gzMmNtOHN3MWJrNC5saWIgXAotICAgJHZhcnMoZGVzaWduX3Jvb3QpL0xJQlMvSU8vTElCRVJUWS9pb2NlbGw2NW5iY18xMDU2LmxpYiBcCi0gICAkdmFycyhkZXNpZ25fcm9vdCkvTElCUy9BTkFMT0cvTFZEUy9MSUJFUlRZL2x2ZHNfYmNfMTA1Ni5saWIgXAotICAgJHZhcnMoZGVzaWduX3Jvb3QpL0xJQlMvSVAvTElCRVJUWS9wc29fYmNfMTA1Ni5saWIgXAotICAgJHZhcnMoZGVzaWduX3Jvb3QpL0xJQlMvSVAvTElCRVJUWS9Nb2R1bGVfQV9iY18xMDU2LmxpYiBcCi0gICAkdmFycyhkZXNpZ25fcm9vdCkvTElCUy9JUC9MSUJFUlRZL01vZHVsZV9CX2JjXzEwNTYubGliIFwKLSAgICR2YXJzKGRlc2lnbl9yb290KS9MSUJTL0lQL0xJQkVSVFkvTW9kdWxlX1VfYmNfMTA1Ni5saWIgXAotICAgJHZhcnMoZGVzaWduX3Jvb3QpL0xJQlMvSVAvTElCRVJUWS9Nb2R1bGVfV19iY18xMDU2LmxpYiBcCi0iCi1zZXQgdmFycygxdjA1NixzaSkgIlwKLSAgICR2YXJzKGRlc2lnbl9yb290KS9MSUJTL1NURENFTEwvQ0RCL0hWVC9zdGRjZWxsNjVuaHZ0YmMwZDg4LmNkYiBcCi0gICAkdmFycyhkZXNpZ25fcm9vdCkvTElCUy9TVERDRUxML0NEQi9IVlQvc3RkY2VsbDY1bmh2dGJjMGQ4ODBkODguY2RiIFwKLSAgICR2YXJzKGRlc2lnbl9yb290KS9MSUJTL1NURENFTEwvQ0RCL0xWVC9zdGRjZWxsNjVubHZ0YmMwZDg4LmNkYiBcCi0gICAkdmFycyhkZXNpZ25fcm9vdCkvTElCUy9TVERDRUxML0NEQi9MVlQvc3RkY2VsbDY1bmx2dGJjMGQ4ODBkODguY2RiIFwKLSAgICR2YXJzKGRlc2lnbl9yb290KS9MSUJTL1NURENFTEwvQ0RCL05WVC9zdGRjZWxsNjVuYmMwZDg4LmNkYiBcCi0gICAkdmFycyhkZXNpZ25fcm9vdCkvTElCUy9TVERDRUxML0NEQi9OVlQvc3RkY2VsbDY1bmJjMGQ4ODBkODguY2RiIFwKLSAgICR2YXJzKGRlc2lnbl9yb290KS9MSUJTL1NURENFTEwvQ0RCL0hWVF9DRy9zdGRjZWxsNjVuaHZ0Y2diYzBkODguY2RiIFwKLSAgICR2YXJzKGRlc2lnbl9yb290KS9MSUJTL1NURENFTEwvQ0RCL05WVF9DRy9zdGRjZWxsNjVuY2diYzBkODguY2RiIFwKLSAgICR2YXJzKGRlc2lnbl9yb290KS9MSUJTL1NURENFTEwvQ0RCL0xWVF9DRy9zdGRjZWxsNjVubHZ0Y2diYzBkODguY2RiIFwKLSIKLXNldCB2YXJzKDF2MDgwLHRpbWluZykgIlwKLSAgICR2YXJzKGRlc2lnbl9yb290KS9MSUJTL1NURENFTEwvTElCRVJUWS9IVlQvc3RkY2VsbDY1bmh2dHdjMGQ3MjBkOS5saWIgXAotICAgJHZhcnMoZGVzaWduX3Jvb3QpL0xJQlMvU1REQ0VMTC9MSUJFUlRZL0xWVC9zdGRjZWxsNjVubHZ0d2MwZDcyMGQ5LmxpYiBcCi0gICAkdmFycyhkZXNpZ25fcm9vdCkvTElCUy9TVERDRUxML0xJQkVSVFkvTlZUL3N0ZGNlbGw2NW53YzBkNzIwZDkubGliIFwKLSAgICR2YXJzKGRlc2lnbl9yb290KS9MSUJTL1NURENFTEwvTElCRVJUWS9IVlQvc3RkY2VsbDY1bmh2dHdjMGQ5MGQ5LmxpYiBcCi0gICAkdmFycyhkZXNpZ25fcm9vdCkvTElCUy9TVERDRUxML0xJQkVSVFkvSFZUL3N0ZGNlbGw2NW5odnR3Yy5saWIgXAotICAgJHZhcnMoZGVzaWduX3Jvb3QpL0xJQlMvU1REQ0VMTC9MSUJFUlRZL0xWVC9zdGRjZWxsNjVubHZ0d2MubGliIFwKLSAgICR2YXJzKGRlc2lnbl9yb290KS9MSUJTL1NURENFTEwvTElCRVJUWS9MVlQvc3RkY2VsbDY1bmx2dHdjMGQ5MGQ5LmxpYiBcCi0gICAkdmFycyhkZXNpZ25fcm9vdCkvTElCUy9TVERDRUxML0xJQkVSVFkvTlZUL3N0ZGNlbGw2NW53YzBkOTBkOS5saWIgXAotICAgJHZhcnMoZGVzaWduX3Jvb3QpL0xJQlMvU1REQ0VMTC9MSUJFUlRZL05WVC9zdGRjZWxsNjVud2MubGliIFwKLSAgICR2YXJzKGRlc2lnbl9yb290KS9MSUJTL1NURENFTEwvTElCRVJUWS9IVlRfQ0cvc3RkY2VsbDY1bmh2dGNnd2MubGliIFwKLSAgICR2YXJzKGRlc2lnbl9yb290KS9MSUJTL1NURENFTEwvTElCRVJUWS9MVlRfQ0cvc3RkY2VsbDY1bmx2dGNnd2MubGliIFwKLSAgICR2YXJzKGRlc2lnbl9yb290KS9MSUJTL1NURENFTEwvTElCRVJUWS9OVlRfQ0cvc3RkY2VsbDY1bmNnd2MubGliIFwKLSAgICR2YXJzKGRlc2lnbl9yb290KS9MSUJTL1JBTVNfUk9NUy9MSUJFUlRZL1dPUlNUXzEwODAvbWVtZHBfNTEyeDM2Y200c3cxYmsxLmxpYiBcCi0gICAkdmFycyhkZXNpZ25fcm9vdCkvTElCUy9SQU1TX1JPTVMvTElCRVJUWS9XT1JTVF8xMDgwL21lbXJvbV81MTJ4MzJjbTE2LmxpYiBcCi0gICAkdmFycyhkZXNpZ25fcm9vdCkvTElCUy9SQU1TX1JPTVMvTElCRVJUWS9XT1JTVF8xMDgwL21lbXNwXzJreDMyY204c3cxYmsyLmxpYiBcCi0gICAkdmFycyhkZXNpZ25fcm9vdCkvTElCUy9SQU1TX1JPTVMvTElCRVJUWS9XT1JTVF8xMDgwL21lbXNwXzRreDMyY204c3cxYms0LmxpYiBcCi0gICAkdmFycyhkZXNpZ25fcm9vdCkvTElCUy9JTy9MSUJFUlRZL2lvY2VsbDY1bndjLmxpYiBcCi0gICAkdmFycyhkZXNpZ25fcm9vdCkvTElCUy9BTkFMT0cvUExML0xJQkVSVFkvUEwwMDQyLmh2dF9zc18xcDA4dl8xMjVjLmxpYiBcCi0gICAkdmFycyhkZXNpZ25fcm9vdCkvTElCUy9JUC9MSUJFUlRZL3Bzb193Y18xMDgwLmxpYiBcCi0gICAkdmFycyhkZXNpZ25fcm9vdCkvTElCUy9JUC9MSUJFUlRZL01vZHVsZV9BX3djXzEwODAubGliIFwKLSAgICR2YXJzKGRlc2lnbl9yb290KS9MSUJTL0lQL0xJQkVSVFkvTW9kdWxlX0Jfd2NfMTA4MC5saWIgXAotICAgJHZhcnMoZGVzaWduX3Jvb3QpL0xJQlMvSVAvTElCRVJUWS9Nb2R1bGVfVV93Y18xMDgwLmxpYiBcCi0iCi1zZXQgdmFycygxdjA4MCxzaSkgIlwKLSAgICR2YXJzKGRlc2lnbl9yb290KS9MSUJTL1NURENFTEwvQ0RCL0hWVC9zdGRjZWxsNjVuaHZ0d2MuY2RiIFwKLSAgICR2YXJzKGRlc2lnbl9yb290KS9MSUJTL1NURENFTEwvQ0RCL0hWVC9zdGRjZWxsNjVuaHZ0d2MwZDkwZDkuY2RiIFwKLSAgICR2YXJzKGRlc2lnbl9yb290KS9MSUJTL1NURENFTEwvQ0RCL0hWVC9zdGRjZWxsNjVuaHZ0d2MwZDcyMGQ5LmNkYiBcCi0gICAkdmFycyhkZXNpZ25fcm9vdCkvTElCUy9TVERDRUxML0NEQi9OVlQvc3RkY2VsbDY1bndjLmNkYiBcCi0gICAkdmFycyhkZXNpZ25fcm9vdCkvTElCUy9TVERDRUxML0NEQi9OVlQvc3RkY2VsbDY1bndjMGQ5MGQ5LmNkYiBcCi0gICAkdmFycyhkZXNpZ25fcm9vdCkvTElCUy9TVERDRUxML0NEQi9OVlQvc3RkY2VsbDY1bndjMGQ3MjBkOS5jZGIgXAotICAgJHZhcnMoZGVzaWduX3Jvb3QpL0xJQlMvU1REQ0VMTC9DREIvTFZUL3N0ZGNlbGw2NW5sdnR3Yy5jZGIgXAotICAgJHZhcnMoZGVzaWduX3Jvb3QpL0xJQlMvU1REQ0VMTC9DREIvTFZUL3N0ZGNlbGw2NW5sdnR3YzBkOTBkOS5jZGIgXAotICAgJHZhcnMoZGVzaWduX3Jvb3QpL0xJQlMvU1REQ0VMTC9DREIvTFZUL3N0ZGNlbGw2NW5sdnR3YzBkNzIwZDkuY2RiIFwKLSAgICR2YXJzKGRlc2lnbl9yb290KS9MSUJTL1NURENFTEwvQ0RCL0hWVF9DRy9zdGRjZWxsNjVuaHZ0Y2d3Yy5jZGIgXAotICAgJHZhcnMoZGVzaWduX3Jvb3QpL0xJQlMvU1REQ0VMTC9DREIvTlZUX0NHL3N0ZGNlbGw2NW5jZ3djLmNkYiBcCi0gICAkdmFycyhkZXNpZ25fcm9vdCkvTElCUy9TVERDRUxML0NEQi9MVlRfQ0cvc3RkY2VsbDY1bmx2dGNnd2MuY2RiIFwKLSAgICR2YXJzKGRlc2lnbl9yb290KS9MSUJTL0lPL0NEQi9pb2NlbGw2NW53Yy5jZGIgXAotIgotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotIyBEZWZpbmUgcmMgY29ybmVycyAuLi4KLSMgc2V0IHZhcnMocmNfY29ybmVycykgPGxpc3Qgb2YgcmMgY29ybmVycz4KLSMgc2V0IHZhcnMoPHJjX2Nvcm5lcj4sVCkgPHRlbXBlcmF0dXJlPgotIyBzZXQgdmFycyg8cmNfY29ybmVyPixjYXBfdGFibGUpIDxjYXAgdGFibGUgZm9yIGNvcm5lcj4KLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLXNldCB2YXJzKHJjX2Nvcm5lcnMpICAgICAgICJyY19taW4gcmNfbWF4Igotc2V0IHZhcnMocmNfbWluLFQpICAgICAgICAgIDAKLXNldCB2YXJzKHJjX21pbixjYXBfdGFibGUpICR2YXJzKGRlc2lnbl9yb290KS9MSUJTL1RFQ0hOT0xPR1kvQ0FQX1RBQkxFUy9jYmVzdC9jYmVzdC5DYXBUYmwKLXNldCB2YXJzKHJjX21heCxUKSAgICAgICAgICAxMjUKLXNldCB2YXJzKHJjX21heCxjYXBfdGFibGUpICR2YXJzKGRlc2lnbl9yb290KS9MSUJTL1RFQ0hOT0xPR1kvQ0FQX1RBQkxFUy9jd29yc3QvY3dvcnN0LkNhcFRibAotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotIyBPcHRpb25hbGx5IGRlZmluZSBRUkMgdGVjaG5vbG9neSBpbmZvcm1hdGlvbgotIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIyBzZXQgdmFycyg8cmNfY29ybmVyPixxeF90ZWNoX2ZpbGUpIDxxeF90ZWNoX2ZpbGUgZm9yIGNvcm5lcj4KLSMgc2V0IHZhcnMoPHJjX2Nvcm5lcj4scXhfbGliX2ZpbGUpIDxxeF9saWJfZmlsZSBmb3IgY29ybmVyPgotIyBzZXQgdmFycyg8cmNfY29ybmVyPixxeF9jb25mX2ZpbGUpIDxxeF9jb25mX2ZpbGUgZm9yIGNvcm5lcj4KLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLXNldCB2YXJzKHJjX21pbixxeF90ZWNoX2ZpbGUpICR2YXJzKGRlc2lnbl9yb290KS9MSUJTL1RFQ0hOT0xPR1kvVEVDSF9GSUxFUy9RUkMvY2Jlc3QvcXJjVGVjaEZpbGUKLXNldCB2YXJzKHJjX21pbixxeF9jb25mX2ZpbGUpICR2YXJzKGRlc2lnbl9yb290KS9EQVRBL21pbl9xcmMuY29uZgotc2V0IHZhcnMocmNfbWF4LHF4X3RlY2hfZmlsZSkgJHZhcnMoZGVzaWduX3Jvb3QpL0xJQlMvVEVDSE5PTE9HWS9URUNIX0ZJTEVTL1FSQy9jd29yc3QvcXJjVGVjaEZpbGUKLXNldCB2YXJzKHJjX21heCxxeF9jb25mX2ZpbGUpICR2YXJzKGRlc2lnbl9yb290KS9EQVRBL21heF9xcmMuY29uZgotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotIyBTY2FsZSBmYWN0b3JzIGFyZSBhbHNvIG9wdGlvbmFsIGJ1dCBhcmUgc3Ryb25nbHkgZW5jb3VyYWdlZCBmb3IgCi0jIG9idGFpbmluZyB0aGUgYmVzdCBmbG93IGNvbnZlcmdlbmNlIGFuZCBRb1IuICBTY2FsaW5nIGZhY3RvcnMKLSMgYXJlIGFwcGxpZWQgcGVyIHJjIGNvcm5lcgotIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIyBzZXQgdmFycyg8cmNfY29ybmVyPixkZWZfcmVzX2ZhY3RvcikgICAgIDxwcmUtcm91dGUgcmVzaXN0YW5jZSBzY2FsZSBmYWN0b3I+Ci0jIHNldCB2YXJzKDxyY19jb3JuZXI+LGRlZl9jbGtfcmVzX2ZhY3RvcikgPHByZS1yb3V0ZSBjbG9jayByZXNpc3RhbmNlIHNjYWxlIGZhY3Rvcj4KLSMgc2V0IHZhcnMoPHJjX2Nvcm5lcj4sZGV0X3Jlc19mYWN0b3IpICAgICA8cG9zdC1yb3V0ZSByZXNpc3RhbmNlIHNjYWxlIGZhY3Rvcj4KLSMgc2V0IHZhcnMoPHJjX2Nvcm5lcj4sZGV0X2Nsa19yZXNfZmFjdG9yKSA8cG9zdC1yb3V0ZSBjbG9jayByZXNpc3RhbmNlIHNjYWxlIGZhY3Rvcj4KLSMgc2V0IHZhcnMoPHJjX2Nvcm5lcj4sZGVmX2NhcF9mYWN0b3IpICAgICA8cHJlLXJvdXRlIGNhcGFjaXRhbmNlIHNjYWxlIGZhY3Rvcj4KLSMgc2V0IHZhcnMoPHJjX2Nvcm5lcj4sZGVmX2Nsa19jYXBfZmFjdG9yKSA8cHJlLXJvdXRlIGNsb2NrIGNhcGFjaXRhbmNlIHNjYWxlIGZhY3Rvcj4KLSMgc2V0IHZhcnMoPHJjX2Nvcm5lcj4sZGV0X2NhcF9mYWN0b3IpICAgICA8cG9zdC1yb3V0ZSBjYXBhY2l0YW5jZSBzY2FsZSBmYWN0b3I+Ci0jIHNldCB2YXJzKDxyY19jb3JuZXI+LGRldF9jbGtfY2FwX2ZhY3RvcikgPHBvc3Qtcm91dGUgY2xvY2sgY2FwYWNpdGFuY2Ugc2NhbGUgZmFjdG9yPgotIyBzZXQgdmFycyg8cmNfY29ybmVyPix4Y2FwX2ZhY3RvcikgICAgICAgIDxwb3N0LXJvdXRlIGNvdXBsaW5nIGNhcGFjaXRhbmNlIHNjYWxlIGZhY3Rvcj4KLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLXNldCB2YXJzKHJjX21pbixkZWZfcmVzX2ZhY3RvcikgICAgICAgICAxLjAwMDAKLXNldCB2YXJzKHJjX21pbixkZWZfY2xrX3Jlc19mYWN0b3IpICAgICAwLjAwMDAKLXNldCB2YXJzKHJjX21pbixkZXRfcmVzX2ZhY3RvcikgICAgICAgICAxLjAwMDAKLXNldCB2YXJzKHJjX21pbixkZXRfY2xrX3Jlc19mYWN0b3IpICAgICAwLjAwMDAKLXNldCB2YXJzKHJjX21pbixkZWZfY2FwX2ZhY3RvcikgICAgICAgICAxLjAwMDAKLXNldCB2YXJzKHJjX21pbixkZWZfY2xrX2NhcF9mYWN0b3IpICAgICAwLjAwMDAKLXNldCB2YXJzKHJjX21pbixkZXRfY2FwX2ZhY3RvcikgICAgICAgICAxLjAwMDAKLXNldCB2YXJzKHJjX21pbixkZXRfY2xrX2NhcF9mYWN0b3IpICAgICAwLjAwMDAKLXNldCB2YXJzKHJjX21pbix4Y2FwX2ZhY3RvcikgICAgICAgICAgICAxLjAwMDAKLQotc2V0IHZhcnMocmNfbWF4LGRlZl9yZXNfZmFjdG9yKSAgICAgICAgIDAuOTUwMAotc2V0IHZhcnMocmNfbWF4LGRlZl9jbGtfcmVzX2ZhY3RvcikgICAgIDAuMDAwMAotc2V0IHZhcnMocmNfbWF4LGRldF9yZXNfZmFjdG9yKSAgICAgICAgIDEuMjcwMAotc2V0IHZhcnMocmNfbWF4LGRldF9jbGtfcmVzX2ZhY3RvcikgICAgIDAuMDAwMAotc2V0IHZhcnMocmNfbWF4LGRlZl9jYXBfZmFjdG9yKSAgICAgICAgIDEuMDkwMAotc2V0IHZhcnMocmNfbWF4LGRlZl9jbGtfY2FwX2ZhY3RvcikgICAgIDAuMDAwMAotc2V0IHZhcnMocmNfbWF4LGRldF9jYXBfZmFjdG9yKSAgICAgICAgIDEuMTAwMAotc2V0IHZhcnMocmNfbWF4LGRldF9jbGtfY2FwX2ZhY3RvcikgICAgIDEuMDUwMAotc2V0IHZhcnMocmNfbWF4LHhjYXBfZmFjdG9yKSAgICAgICAgICAgIDEuNTMwMAotCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0jIERlZmluZSBvcGVyYXRpbmcgY29uZGl0aW9ucyAob3B0aW9uYWwpCi0jIHNldCB2YXJzKG9wY29uZHMpIDxsaXN0IG9mIG9wZXJhdGluZyBjb25kaXRpb25zPgotIyBzZXQgdmFycyg8b3Bjb25kPixsaWJyYXJ5X2ZpbGUpIDxsaWJyYXJ5IGZpbGUgPgotIyBzZXQgdmFycyg8b3Bjb25kPixQKSA8cHJvY2VzcyBzY2FsZSBmYWN0b3I+Ci0jIHNldCB2YXJzKDxvcGNvbmQ+LFYpIDx2b2x0YWdlPgotIyBzZXQgdmFycyg8b3Bjb25kPixUKSA8dGVtcGVyYXR1cmU+Ci0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0jIERlZmluZSBkZWxheSBjb3JuZXJzIC4uLgotIyBzZXQgdmFycyhkZWxheV9jb3JuZXJzKSA8bGlzdCBvZiBkZWxheSBjb3JuZXJzPgotIyBzZXQgdmFycyg8ZGVsYXlfY29ybmVyPixsaWJyYXJ5X3NldCkgPGxpYnJhcnlfc2V0PiAocHJldmlvdXNseSBkZWZpbmVkKQotIyBzZXQgdmFycyg8ZGVsYXlfY29ybmVyPixvcGNvbmQpIDxvcGNvbmQ+IChwcmV2aW91c2x5IGRlZmluZWQpIChvcHRpb25hbCkKLSMgc2V0IHZhcnMoPGRlbGF5X2Nvcm5lcj4scmNfY29ybmVyKSBsaWJyYXJ5X3NldD4gKHByZXZpb3VzbHkgZGVmaW5lZCkKLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLXNldCB2YXJzKGRlbGF5X2Nvcm5lcnMpICJBVmRlZmF1bHRfV0NfZGMgQVZkdmZzMl9CQ19kYyBBVmRlZmF1bHRfQkNfZGMgQVZkdmZzMl9XQ19kYyIKLXNldCB2YXJzKEFWZGVmYXVsdF9XQ19kYyxsaWJyYXJ5X3NldCkgICAxdjA4MAotc2V0IHZhcnMoQVZkZWZhdWx0X1dDX2RjLHJjX2Nvcm5lcikgICAgIHJjX21heAotc2V0IHZhcnMoQVZkdmZzMl9CQ19kYyxsaWJyYXJ5X3NldCkgCTF2MDU2Ci1zZXQgdmFycyhBVmR2ZnMyX0JDX2RjLHJjX2Nvcm5lcikgICAgIAlyY19taW4KLXNldCB2YXJzKEFWZGVmYXVsdF9CQ19kYyxsaWJyYXJ5X3NldCkgCTF2MzIwCi1zZXQgdmFycyhBVmRlZmF1bHRfQkNfZGMscmNfY29ybmVyKSAJcmNfbWluCi1zZXQgdmFycyhBVmR2ZnMyX1dDX2RjLGxpYnJhcnlfc2V0KSAJMHY4NjQKLXNldCB2YXJzKEFWZHZmczJfV0NfZGMscmNfY29ybmVyKSAJICAgIHJjX21heAotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotIyBPcHRpb25hbGx5IGRlZmluZSBkZXJhdGluZyBmYWN0b3JzIGZvciBPQ1YgaGVyZSAoY2xvY2sgYW5kIGRhdGEpLiAKLSMgRGVyYXRpbmcgZmFjdG9ycyBhcmUgYXBwbGllZCBwZXIgZGVsYXkgY29ybmVyCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0jc2V0IHZhcnMoPGRlbGF5X2Nvcm5lcj4sZGF0YV9jZWxsX2xhdGUpIDxmbG9hdD4KLSNzZXQgdmFycyg8ZGVsYXlfY29ybmVyPixkYXRhX2NlbGxfZWFybHkpIDxmbG9hdD4KLSNzZXQgdmFycyg8ZGVsYXlfY29ybmVyPixkYXRhX25ldF9sYXRlKSA8ZmxvYXQ+Ci0jc2V0IHZhcnMoPGRlbGF5X2Nvcm5lcj4sZGF0YV9uZXRfZWFybHkpIDxmbG9hdD4KLSNzZXQgdmFycyg8ZGVsYXlfY29ybmVyPixjbG9ja19jZWxsX2xhdGUpIDxmbG9hdD4KLSNzZXQgdmFycyg8ZGVsYXlfY29ybmVyPixjbG9ja19jZWxsX2Vhcmx5KSA8ZmxvYXQ+Ci0jc2V0IHZhcnMoPGRlbGF5X2Nvcm5lcj4sY2xvY2tfbmV0X2xhdGUpIDxmbG9hdD4KLSNzZXQgdmFycyg8ZGVsYXlfY29ybmVyPixjbG9ja19uZXRfZWFybHkpIDxmbG9hdD4KLXNldCB2YXJzKEFWZGVmYXVsdF9XQ19kYyxkYXRhX2NlbGxfZWFybHkpICAwLjk3Ci1zZXQgdmFycyhBVmRlZmF1bHRfV0NfZGMsZGF0YV9jZWxsX2xhdGUpICAgMS4wMwotc2V0IHZhcnMoQVZkZWZhdWx0X1dDX2RjLGNsb2NrX2NlbGxfZWFybHkpIDAuOTcKLXNldCB2YXJzKEFWZGVmYXVsdF9XQ19kYyxjbG9ja19jZWxsX2xhdGUpICAxLjAzCi1zZXQgdmFycyhBVmRlZmF1bHRfV0NfZGMsZGF0YV9uZXRfZWFybHkpICAgMC45Nwotc2V0IHZhcnMoQVZkZWZhdWx0X1dDX2RjLGRhdGFfbmV0X2xhdGUpICAgIDEuMDMKLXNldCB2YXJzKEFWZGVmYXVsdF9XQ19kYyxjbG9ja19uZXRfZWFybHkpICAwLjk3Ci1zZXQgdmFycyhBVmRlZmF1bHRfV0NfZGMsY2xvY2tfbmV0X2xhdGUpICAgMS4wMwotCi1zZXQgdmFycyhBVmR2ZnMyX1dDX2RjLGRhdGFfY2VsbF9lYXJseSkgICAgMC45Nwotc2V0IHZhcnMoQVZkdmZzMl9XQ19kYyxkYXRhX2NlbGxfbGF0ZSkgICAgIDEuMDMKLXNldCB2YXJzKEFWZHZmczJfV0NfZGMsY2xvY2tfY2VsbF9lYXJseSkgICAwLjk3Ci1zZXQgdmFycyhBVmR2ZnMyX1dDX2RjLGNsb2NrX2NlbGxfbGF0ZSkgICAgMS4wMwotc2V0IHZhcnMoQVZkdmZzMl9XQ19kYyxkYXRhX25ldF9lYXJseSkgICAgIDAuOTcKLXNldCB2YXJzKEFWZHZmczJfV0NfZGMsZGF0YV9uZXRfbGF0ZSkgICAgICAxLjAzCi1zZXQgdmFycyhBVmR2ZnMyX1dDX2RjLGNsb2NrX25ldF9lYXJseSkgICAgMC45Nwotc2V0IHZhcnMoQVZkdmZzMl9XQ19kYyxjbG9ja19uZXRfbGF0ZSkgICAgIDEuMDMKLQotc2V0IHZhcnMoQVZkZWZhdWx0X0JDX2RjLGRhdGFfY2VsbF9lYXJseSkgIDAuOTcKLXNldCB2YXJzKEFWZGVmYXVsdF9CQ19kYyxkYXRhX2NlbGxfbGF0ZSkgICAxLjAzCi1zZXQgdmFycyhBVmRlZmF1bHRfQkNfZGMsY2xvY2tfY2VsbF9lYXJseSkgMC45Nwotc2V0IHZhcnMoQVZkZWZhdWx0X0JDX2RjLGNsb2NrX2NlbGxfbGF0ZSkgIDEuMDMKLXNldCB2YXJzKEFWZGVmYXVsdF9CQ19kYyxkYXRhX25ldF9lYXJseSkgICAwLjk3Ci1zZXQgdmFycyhBVmRlZmF1bHRfQkNfZGMsZGF0YV9uZXRfbGF0ZSkgICAgMS4wMwotc2V0IHZhcnMoQVZkZWZhdWx0X0JDX2RjLGNsb2NrX25ldF9lYXJseSkgIDAuOTcKLXNldCB2YXJzKEFWZGVmYXVsdF9CQ19kYyxjbG9ja19uZXRfbGF0ZSkgICAxLjAzCi0KLXNldCB2YXJzKEFWZHZmczJfQkNfZGMsZGF0YV9jZWxsX2Vhcmx5KSAgICAwLjk3Ci1zZXQgdmFycyhBVmR2ZnMyX0JDX2RjLGRhdGFfY2VsbF9sYXRlKSAgICAgMS4wMwotc2V0IHZhcnMoQVZkdmZzMl9CQ19kYyxjbG9ja19jZWxsX2Vhcmx5KSAgIDAuOTcKLXNldCB2YXJzKEFWZHZmczJfQkNfZGMsY2xvY2tfY2VsbF9sYXRlKSAgICAxLjAzCi1zZXQgdmFycyhBVmR2ZnMyX0JDX2RjLGRhdGFfbmV0X2Vhcmx5KSAgICAgMC45Nwotc2V0IHZhcnMoQVZkdmZzMl9CQ19kYyxkYXRhX25ldF9sYXRlKSAgICAgIDEuMDMKLXNldCB2YXJzKEFWZHZmczJfQkNfZGMsY2xvY2tfbmV0X2Vhcmx5KSAgICAwLjk3Ci1zZXQgdmFycyhBVmR2ZnMyX0JDX2RjLGNsb2NrX25ldF9sYXRlKSAgICAgMS4wMwotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotIyBEZWZpbmUgY29uc3RyYWludCBtb2RlcyAuLi4gCi0jIHNldCB2YXJzKGNvbnN0cmFpbnRfbW9kZXMpIDxsaXN0IG9mIGNvbnN0cmFpbnQgbW9kZXM+Ci0jIHNldCB2YXJzKDxtb2RlPixwcmVfY3RzX3NkYykgPHByZSBjdHMgY29uc3RyYWludCBmaWxlPgotIyBzZXQgdmFycyg8bW9kZT4scG9zdF9jdHNfc2RjKSA8cG9zdCBjdHMgY29uc3RyYWludCBmaWxlPiAob3B0aW9uYWwpCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi1zZXQgdmFycyhjb25zdHJhaW50X21vZGVzKSAgICAgICJQTWRlZmF1bHQgUE1kdmZzMiIKLXNldCB2YXJzKFBNZGVmYXVsdCxwcmVfY3RzX3NkYykgIiR2YXJzKGRlc2lnbl9yb290KS9EQVRBL2NoaXBfdG9wLnNkYyIKLXNldCB2YXJzKFBNZHZmczIscHJlX2N0c19zZGMpICAgIiR2YXJzKGRlc2lnbl9yb290KS9EQVRBL2NoaXBfdG9wX2R2ZnMyLnNkYyIKLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSMgRGVmaW5lIHNldHVwIGFuZCBob2xkIGFuYWx5c2lzIHZpZXdzIC4uLiBlYWNoIGFuYWx5c2lzIHZpZXcgcmVxdWlyZXMKLSMgYSBkZWxheSBjb3JuZXIgYW5kIGEgY29uc3RyYWludCBtb2RlCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi1zZXQgdmFycyhBVmRlZmF1bHRfV0MsZGVsYXlfY29ybmVyKSAgICBBVmRlZmF1bHRfV0NfZGMKLXNldCB2YXJzKEFWZGVmYXVsdF9XQyxjb25zdHJhaW50X21vZGUpIFBNZGVmYXVsdAotc2V0IHZhcnMoQVZkdmZzMl9XQyxkZWxheV9jb3JuZXIpICAgICAgQVZkdmZzMl9XQ19kYwotc2V0IHZhcnMoQVZkdmZzMl9XQyxjb25zdHJhaW50X21vZGUpICAgUE1kdmZzMgotc2V0IHZhcnMoQVZkZWZhdWx0X0JDLGRlbGF5X2Nvcm5lcikgICAgQVZkZWZhdWx0X0JDX2RjCi1zZXQgdmFycyhBVmRlZmF1bHRfQkMsY29uc3RyYWludF9tb2RlKSBQTWRlZmF1bHQKLXNldCB2YXJzKEFWZHZmczJfQkMsZGVsYXlfY29ybmVyKSAgICAgIEFWZHZmczJfQkNfZGMKLXNldCB2YXJzKEFWZHZmczJfQkMsY29uc3RyYWludF9tb2RlKSAgIFBNZHZmczIKLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSMgRURJVC9WRVJJRlkgVEhFU0UgTElTVFMhIQotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotc2V0IHZhcnMoc2V0dXBfYW5hbHlzaXNfdmlld3MpICJBVmRlZmF1bHRfV0MgQVZkdmZzMl9XQyIKLXNldCB2YXJzKGhvbGRfYW5hbHlzaXNfdmlld3MpICAiQVZkZWZhdWx0X0JDIEFWZHZmczJfQkMiCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0jIERlZmluZSBhY3RpdmUgc2V0dXAgYW5kIGhvbGQgYW5hbHlzaXMgdmlldyBsaXN0cyBhbmQgZGVmYXVsdCB2aWV3cwotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotc2V0IHZhcnMoZGVmYXVsdF9zZXR1cF92aWV3KSAgIFtsaW5kZXggJHZhcnMoc2V0dXBfYW5hbHlzaXNfdmlld3MpIDBdCi1zZXQgdmFycyhkZWZhdWx0X2hvbGRfdmlldykgICAgW2xpbmRleCAkdmFycyhob2xkX2FuYWx5c2lzX3ZpZXdzKSAwXQotc2V0IHZhcnMoYWN0aXZlX3NldHVwX3ZpZXdzKSAgICR2YXJzKHNldHVwX2FuYWx5c2lzX3ZpZXdzKQotc2V0IHZhcnMoYWN0aXZlX2hvbGRfdmlld3MpICAgICR2YXJzKGhvbGRfYW5hbHlzaXNfdmlld3MpCi0KLVB1dHMgIjxGRj4gRmluaXNoZWQgbG9hZGluZyBzZXR1cC50Y2wgZmlsZSIKZGlmZiAtLWdpdCBhL2Zsb3cvcG5yL0VYQU1QTEVTL0lOTk9WVVMvc2V0dXAudGNsIGIvZmxvdy9wbnIvRVhBTVBMRVMvSU5OT1ZVUy9zZXR1cC50Y2wKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDk1MTNkOWQuLjAwMDAwMDAKLS0tIGEvZmxvdy9wbnIvRVhBTVBMRVMvSU5OT1ZVUy9zZXR1cC50Y2wKKysrIC9kZXYvbnVsbApAQCAtMSwzMDEgKzAsMCBAQAotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotIyAgICAgICAgICAgICAgICAgICAgICAgQ0FERU5DRSBDT1BZUklHSFQgTk9USUNFCi0jICAgICAgICAgqSAyMDA4LTIwMTMgQ2FkZW5jZSBEZXNpZ24gU3lzdGVtcywgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIwotIyBUaGlzIEZvdW5kYXRpb24gRmxvdyBpcyBwcm92aWRlZCBhcyBhbiBleGFtcGxlIG9mIGhvdyB0byBwZXJmb3JtIHNwZWNpYWxpemVkCi0jIHRhc2tzLgotIwotIyBUaGlzIHdvcmsgbWF5IG5vdCBiZSBjb3BpZWQsIHJlLXB1Ymxpc2hlZCwgdXBsb2FkZWQsIG9yIGRpc3RyaWJ1dGVkIGluIGFueSB3YXksCi0jIGluIGFueSBtZWRpdW0sIHdoZXRoZXIgaW4gd2hvbGUgb3IgaW4gcGFydCwgd2l0aG91dCBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24KLSMgZnJvbSBDYWRlbmNlLiBOb3R3aXRoc3RhbmRpbmcgYW55IHJlc3RyaWN0aW9ucyBoZXJlaW4sIHN1YmplY3QgdG8gY29tcGxpYW5jZQotIyB3aXRoIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB0aGUgQ2FkZW5jZSBzb2Z0d2FyZSBsaWNlbnNlIGFncmVlbWVudCB1bmRlcgotIyB3aGljaCB0aGlzIG1hdGVyaWFsIHdhcyBwcm92aWRlZCwgdGhpcyBtYXRlcmlhbCBtYXkgYmUgY29waWVkIGFuZCBpbnRlcm5hbGx5Ci0jIGRpc3RyaWJ1dGVkIHNvbGVseSBmb3IgaW50ZXJuYWwgcHVycG9zZXMgZm9yIHVzZSB3aXRoIENhZGVuY2UgdG9vbHMuCi0jCi0jIFRoaXMgd29yayBpcyBDYWRlbmNlIGludGVsbGVjdHVhbCBwcm9wZXJ0eSBhbmQgbWF5IHVuZGVyIG5vIGNpcmN1bXN0YW5jZXMgYmUKLSMgZ2l2ZW4gdG8gdGhpcmQgcGFydGllcywgbmVpdGhlciBpbiBvcmlnaW5hbCBub3IgaW4gbW9kaWZpZWQgdmVyc2lvbnMsIHdpdGhvdXQKLSMgZXhwbGljaXQgd3JpdHRlbiBwZXJtaXNzaW9uIGZyb20gQ2FkZW5jZS4gVGhlIGluZm9ybWF0aW9uIGNvbnRhaW5lZCBoZXJlaW4gaXMKLSMgdGhlIHByb3ByaWV0YXJ5IGFuZCBjb25maWRlbnRpYWwgaW5mb3JtYXRpb24gb2YgQ2FkZW5jZSBvciBpdHMgbGljZW5zb3JzLCBhbmQKLSMgaXMgc3VwcGxpZWQgc3ViamVjdCB0bywgYW5kIG1heSBiZSB1c2VkIG9ubHkgYnkgQ2FkZW5jZSdzIGN1cnJlbnQgY3VzdG9tZXJzCi0jIGluIGFjY29yZGFuY2Ugd2l0aCwgYSBwcmV2aW91c2x5IGV4ZWN1dGVkIGxpY2Vuc2UgYWdyZWVtZW50IGJldHdlZW4gQ2FkZW5jZQotIyBhbmQgaXRzIGN1c3RvbWVyLgotIwotIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIyBUSElTIE1BVEVSSUFMIElTIFBST1ZJREVEIEJZIENBREVOQ0UgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRAotIyBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRgotIyBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELgotIyBJTiBOTyBFVkVOVCBTSEFMTCBDQURFTkNFIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwKLSMgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwKLSMgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SCi0jIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgIE1BVEVSSUFMLCBFVkVOIElGCi0jIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCi1nbG9iYWwgdmFycwotCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0jIERlZmluZSBzb21lIHZhcmlhYmxlcyB0byBwb2ludCB0byBkYXRhLCBsaWJyYXJpZXMsIGFuZCBzY3JpcHRzCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi1zZXQgdmFycyhkZXNpZ25fcm9vdCkgIFtwd2RdLy4uLy4uCi1zZXQgdmFycyhkYXRhX3Jvb3QpICAgICR2YXJzKGRlc2lnbl9yb290KS9EQVRBCi1zZXQgdmFycyhsaWJyYXJ5X3Jvb3QpICR2YXJzKGRlc2lnbl9yb290KS9MSUJTCi1zZXQgdmFycyhzY3JpcHRfcm9vdCkgIFtwd2RdL1NDUklQVFMKLQotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotIyBUaGUgZm9sbG93aW5nIHZhcmlhYmxlcyBkZWZpbmUgdGhlIGRlc2lnbiBkYXRhCi0jIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0jIHZhcnMoZGVzaWduKSAgICAgICA8ZGVzaWduIG5hbWU+IFJFUVVJUkVECi0jIHZhcnMobmV0bGlzdCkgICAgICA8dmVyaWxvZyBuZXRsaXN0IGZpbGU+IFJFUVVJUkVECi0jIHZhcnMoY3RzX3NwZWMpICAgICA8Y3RzIHNwZWMgZmlsZSBsaXN0ID4gUkVRVUlSRUQKLSMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSMgRWl0aGVyIGZwX2ZpbGUsIGRlZl9maWxlcyBvciBib3RoIE1VU1QgYmUgZGVmaW5lZAotIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIyB2YXJzKGZwX2ZpbGUpICAgICAgPGZsb29ycGxhbiBmaWxlPgotIyB2YXJzKGZwX2ZpbGUpICAgICAgPGZsb29ycGxhbiBUQ0wgZmlsZT4KLSMgdmFycyhkZWZfZmlsZXMpICAgICA8Zmxvb3JwbGFuIERFRiBmaWxlPgotIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotc2V0IHZhcnMoZGVzaWduKSAgICAgZHRtZl9yZWN2cl9jb3JlCi1zZXQgdmFycyhuZXRsaXN0KSAgICAkdmFycyhkYXRhX3Jvb3QpL2R0bWZfcmVjdnJfY29yZS51bmlxLnYKLXNldCB2YXJzKGZwX2ZpbGUpICAgICR2YXJzKGRhdGFfcm9vdCkvZHRtZl9yZWN2cl9jb3JlLmZwCi1zZXQgdmFycyhjdHNfc3BlYykgICIkdmFycyhkYXRhX3Jvb3QpL2R0bWZfcmVjdnJfY29yZS5jdHN0Y2giCi1zZXQgdmFycyhkZWZfZmlsZXMpICIkdmFycyhkYXRhX3Jvb3QpL2R0bWZfcmVjdnJfY29yZS5zY2FuLmRlZi5neiIKLSMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSMgdmFycyhjcGZfZmlsZSkgICAgPFJFUVVJUkVEIGZvciBMUCBmbG93cz4KLSMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSNzZXQgdmFycyhjcGZfZmlsZSkgICAkdmFycyhkYXRhX3Jvb3QpL2R0bWZfcmVjdnJfY29yZS5jcGYKLQotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotIyBUaGUgZm9sbG93aW5nIGFyZSBmb3IgdGhlIElMTSBiYXNlZCBoaWVyYXJjaGljYWwgZmxvdwotIyB2YXJzKHBhcnRpdGlvbl9saXN0KSAgICAgICAgICAgICAgICAgICAgIDxwdG4xPiA8cHRuMj4gLi4uIFJFUVVJUkVECi0jIHZhcnMoPHB0bjE+LGN0c19zcGVjKSAgICAgICAgICAgICAgICAgICAgPGN0cyBzcGVjIGZvciBwdG4xPiAKLSMgdmFycyg8cHRuMT4sbGF0ZW5jeV9zZGMpICAgICAgICAgICAgICAgICA8bGF0ZW5jeSBzZGMgZm9yIHB0bjE+IAotIyB2YXJzKDxwdG4xPixpbmNyX2N0c19zZGMpICAgICAgICAgICAgICAgIDxwb3N0IGN0cyBpbmNyIHNkYyBmb3IgcHRuMT4gT1BUSU9OQUwKLSMgdmFycyg8cHRuMT4scG9zdF9jdHNfc2RjKSAgICAgICAgICAgICAgICA8cG9zdCBjdHMgKGZ1bGwpIHNkYyBmb3IgcHRuMT4gT1BUSU9OQUwKLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLXNldCB2YXJzKHBhcnRpdGlvbl9saXN0KSAgICAgICAgICAgICAgICAgICAidGRzcF9jb3JlIHJlc3VsdHNfY29udiIKLXNldCB2YXJzKGR0bWZfcmVjdnJfY29yZSxjdHNfc3BlYykgICAgICAgICAkdmFycyhkYXRhX3Jvb3QpL2R0bWZfcmVjdnJfY29yZS5jdHN0Y2gKLXNldCB2YXJzKGR0bWZfcmVjdnJfY29yZSxsYXRlbmN5X3NkYykgICAgICAkdmFycyhkYXRhX3Jvb3QpL2R0bWZfcmVjdnJfY29yZS5sYXRlbmN5LnNkYwotc2V0IHZhcnModGRzcF9jb3JlLGN0c19zcGVjKSAgICAgICAgICAgICAgICR2YXJzKGRhdGFfcm9vdCkvdGRzcF9jb3JlLmN0c3RjaAotc2V0IHZhcnModGRzcF9jb3JlLHNldHVwX2Z1bmMsbGF0ZW5jeV9zZGMpICR2YXJzKGRhdGFfcm9vdCkvdGRzcF9jb3JlLmxhdGVuY3kuc2RjCi1zZXQgdmFycyhyZXN1bHRzX2NvbnYsY3RzX3NwZWMpICAgICAgICAgICAgJHZhcnMoZGF0YV9yb290KS9yZXN1bHRzX2NvbnYuY3RzdGNoCi1zZXQgdmFycyhyZXN1bHRzX2NvbnYsbGF0ZW5jeV9zZGMpICAgICAgICAgJHZhcnMoZGF0YV9yb290KS9yZXN1bHRzX2NvbnYubGF0ZW5jeS5zZGMKLQotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotIyBUaGUgZm9sbG93aW5nIGFyZSBSRVFVSVJFRAotIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIyB2YXJzKHByb2Nlc3MpICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwcm9jZXNzIG5vZGU+ICg2NW5tLCA5MG5tLCBlLmcuKQotIyB2YXJzKG1heF9yb3V0ZV9sYXllcnMpICAgICAgICAgICAgICAgICAgIDx0b3Agcm91dGluZyBsYXllcj4KLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLXNldCB2YXJzKHByb2Nlc3MpICAgICAgICAgICAgICAgICAgICAgICAgICA2NW5tCi1zZXQgdmFycyhtYXhfcm91dGVfbGF5ZXIpICAgICAgICAgICAgICAgICAgNgotCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0jIERlZmluZSBsaWJyYXJ5IHNldHMgLi4uCi0jIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0jIHNldCB2YXJzKGxpYnJhcnlfc2V0cykgIjxzZXQxPiA8c2V0Mj4gLi4uIgotIyBzZXQgdmFycyg8c2V0MT4sdGltaW5nKSA8bGlzdCBvZiBsaWIgZmlsZXM+IChSRVFVSVJFRCkKLSMgc2V0IHZhcnMoPHNldDE+LHNpKSAgICAgPGxpc3Qgb2YgY2RiL3VkbiBmaWxlcz4gKE9QVElPTkFMKQotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotc2V0IHZhcnMobGlicmFyeV9zZXRzKSAic2xvd19saWJzIGZhc3RfbGlicyIKLQotc2V0IHZhcnMoc2xvd19saWJzLHRpbWluZykgIlwKLSAgICAgICR2YXJzKGRlc2lnbl9yb290KS9MSUJTL040NS90aW1pbmcvdGNibjQ1bHBid3BfYzA2MDkwN3djLmxpYiBcCi0gICAgICAkdmFycyhkZXNpZ25fcm9vdCkvTElCUy9ONDUvdGltaW5nL3RjYm40NWxwYndwX2MwNjA5MDd3YzBkNzIubGliIFwKLSAgICAgICR2YXJzKGRlc2lnbl9yb290KS9MSUJTL040NS90aW1pbmcvcmFtXzI1NngxNkFfc2xvd19zeW4ubGliIFwKLSAgICAgICR2YXJzKGRlc2lnbl9yb290KS9MSUJTL040NS90aW1pbmcvcm9tXzUxMngxNkFfc2xvd19zeW4ubGliIFwKLSAgICAgICR2YXJzKGRlc2lnbl9yb290KS9MSUJTL040NS90aW1pbmcvcGxsY2xrX3Nsb3cubGliIFwKLSAgICAgICR2YXJzKGRlc2lnbl9yb290KS9MSUJTL040NS90aW1pbmcvdGNibjQ1bHBid3BodnRfYzA3MDIwOHdjLmxpYgotICAgICAgJHZhcnMoZGVzaWduX3Jvb3QpL0xJQlMvTjQ1L3RpbWluZy90Y2JuNDVscGJ3cF9jMDcwMjA4d2MwZDcyMGQ5LmxpYiBcCi0gICAgICAkdmFycyhkZXNpZ25fcm9vdCkvTElCUy9ONDUvdGltaW5nL3RjYm40NWxwYndwX2MwNzAyMDh3YzBkOTBkNzIubGliIFwKLSAgICAgICR2YXJzKGRlc2lnbl9yb290KS9MSUJTL040NS90aW1pbmcvdGNibjQ1bHBid3BodnRfYzA3MDIwOHdjMGQ3Mi5saWIgXAotICAgICAgJHZhcnMoZGVzaWduX3Jvb3QpL0xJQlMvTjQ1L3RpbWluZy90Y2JuNDVscGJ3cF9jMDcwMjA4d2MwZDcyX3B0bHZsLmxpYiBcCi0iCi1zZXQgdmFycyhzbG93X2xpYnMsc2kpICJcCi0gICAgICAkdmFycyhkZXNpZ25fcm9vdCkvTElCUy9ONDUvQ0RCL3RjYm40NWxwYndwX2MwNzAyMDhfMDIwYV9scGVfd29yc3RfMC43OTJ2XzAuOTl2XzEyNWMuY2RCIFwKLSAgICAgICR2YXJzKGRlc2lnbl9yb290KS9MSUJTL040NS9DREIvdGNibjQ1bHBid3BodnRfYzA3MDIwOF8wMjBhX2xwZV93b3JzdF8wLjc5Ml8wLjk5dl8xMjVjLmNkQiBcCi0iCi0KLXNldCB2YXJzKGZhc3RfbGlicyx0aW1pbmcpICJcCi0gICAgICAkdmFycyhkZXNpZ25fcm9vdCkvTElCUy9ONDUvdGltaW5nL3RjYm40NWxwYndwX2MwNjA5MDdiYy5saWIgXAotICAgICAgJHZhcnMoZGVzaWduX3Jvb3QpL0xJQlMvTjQ1L3RpbWluZy9yYW1fMjU2eDE2QV9mYXN0X3N5bi5saWIgXAotICAgICAgJHZhcnMoZGVzaWduX3Jvb3QpL0xJQlMvTjQ1L3RpbWluZy9yb21fNTEyeDE2QV9mYXN0X3N5bi5saWIgXAotICAgICAgJHZhcnMoZGVzaWduX3Jvb3QpL0xJQlMvTjQ1L3RpbWluZy9wbGxjbGtfZmFzdC5saWIgXAotICAgICAgJHZhcnMoZGVzaWduX3Jvb3QpL0xJQlMvTjQ1L3RpbWluZy90Y2JuNDVscGJ3cF9jMDcwMjA4YmMubGliIFwKLSAgICAgICR2YXJzKGRlc2lnbl9yb290KS9MSUJTL040NS90aW1pbmcvdGNibjQ1bHBid3BodnRfYzA3MDIwOGJjMGQ4OC5saWIgXAotICAgICAgJHZhcnMoZGVzaWduX3Jvb3QpL0xJQlMvTjQ1L3RpbWluZy90Y2JuNDVscGJ3cF9jMDcwMjA4YmMxZDEwZDg4LmxpYiBcCi0gICAgICAkdmFycyhkZXNpZ25fcm9vdCkvTElCUy9ONDUvdGltaW5nL3RjYm40NWxwYndwX2MwNzAyMDhiYzBkODgxZDEubGliIFwKLSAgICAgICR2YXJzKGRlc2lnbl9yb290KS9MSUJTL040NS90aW1pbmcvdGNibjQ1bHBid3BfYzA3MDIwOGJjMGQ4OF9wdGx2bC5saWIgXAotIgotc2V0IHZhcnMoZmFzdF9saWJzLHNpKSAiXAotICAgICAgJHZhcnMoZGVzaWduX3Jvb3QpL0xJQlMvTjQ1L0NEQi90Y2JuNDVscGJ3cF9jMDcwMjA4XzAyMGFfbHBlX2Jlc3RfMC45NjhfMS4yMXZfMGMuY2RCIFwKLSAgICAgICR2YXJzKGRlc2lnbl9yb290KS9MSUJTL040NS9DREIvdGNibjQ1bHBid3BodnRfYzA3MDIwOF8wMjBhX2xwZV9iZXN0XzAuOTY4XzEuMjF2XzBjLmNkQiBcCi0iCi0KLXNldCB2YXJzKGxlZl9maWxlcykgIlwKLSAgICAgICR2YXJzKGRlc2lnbl9yb290KS9MSUJTL040NS9sZWYvdGNibjQ1bHBid3BfYzA3MDIwOF82bG00eDF6UkRMLmxlZiBcCi0gICAgICAkdmFycyhkZXNpZ25fcm9vdCkvTElCUy9ONDUvbGVmL3RjYm40NWxwYndwX2MwNzAyMDhfNmxtNHgxelJETF9wdGx2bC5sZWYgXAotICAgICAgJHZhcnMoZGVzaWduX3Jvb3QpL0xJQlMvTjQ1L2xlZi90Y2JuNDVscGJ3cGh2dF9jMDcwMjA4XzZsbTR4MXpSREwubGVmIFwKLSAgICAgICR2YXJzKGRlc2lnbl9yb290KS9MSUJTL040NS9sZWYvcGxsY2xrLmxlZiBcCi0gICAgICAkdmFycyhkZXNpZ25fcm9vdCkvTElCUy9ONDUvbGVmL3JhbV8yNTZ4MTZBLmxlZiBcCi0gICAgICAkdmFycyhkZXNpZ25fcm9vdCkvTElCUy9ONDUvbGVmL3JvbV81MTJ4MTZBLmxlZiBcCi0iCi0KLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSMgRGVmaW5lIHJjIGNvcm5lcnMgLi4uCi0jIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0jIHNldCB2YXJzKHJjX2Nvcm5lcnMpICAgICAgICAgICI8Y29ybmVyMT4gPGNvcm5lcjI+IC4uLiIKLSMgc2V0IHZhcnMoPGNvcm5lcjE+LFQpICAgICAgICAgIDx0ZW1wZXJhdHVyZT4KLSMgc2V0IHZhcnMoPGNvcm5lcjE+LGNhcF90YWJsZSkgIDxjYXAgdGFibGUgZm9yIGNvcm5lcjE+Ci0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0jIE9wdGlvbmFsbHkgZGVmaW5lIFFSQyB0ZWNobm9sb2d5IGluZm9ybWF0aW9uCi0jIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0jIHNldCB2YXJzKDxjb3JuZXI+LHF4X3RlY2hfZmlsZSkgPHF4X3RlY2hfZmlsZSBmb3IgY29ybmVyMT4KLSMgc2V0IHZhcnMoPGNvcm5lcj4scXhfbGliX2ZpbGUpICA8cXhfbGliX2ZpbGUgZm9yIGNvcm5lcjE+Ci0jIHNldCB2YXJzKDxjb3JuZXI+LHF4X2NvbmZfZmlsZSkgPHF4X2NvbmZfZmlsZSBmb3IgY29ybmVyMT4KLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLXNldCB2YXJzKHJjX2Nvcm5lcnMpICAgICAgICAgICJyY19tYXggcmNfbWluIgotc2V0IHZhcnMocmNfbWF4LFQpICAgICAgICAgICAgMTI1Ci1zZXQgdmFycyhyY19taW4sVCkgICAgICAgICAgICAwCi1zZXQgdmFycyhyY19tYXgsY2FwX3RhYmxlKSAgICAkdmFycyhkZXNpZ25fcm9vdCkvTElCUy9ONDUvY2FwVGJsL2NsbjQ1bHBfZWRyYW1fMXAwOG1fY3dvcnN0LmNhcFRibAotc2V0IHZhcnMocmNfbWluLGNhcF90YWJsZSkgICAgJHZhcnMoZGVzaWduX3Jvb3QpL0xJQlMvTjQ1L2NhcFRibC9jbG40NWxwX2VkcmFtXzFwMDhtX2NiZXN0LmNhcFRibAotc2V0IHZhcnMocmNfbWF4LHF4X3RlY2hfZmlsZSkgJHZhcnMoZGVzaWduX3Jvb3QpL0xJQlMvTjQ1L3FyYy9jbG40NWxwX2VkcmFtXzFwMDhtX2N3b3JzdC9pY2VjYXBzLnRjaAotc2V0IHZhcnMocmNfbWluLHF4X3RlY2hfZmlsZSkgJHZhcnMoZGVzaWduX3Jvb3QpL0xJQlMvTjQ1L3FyYy9jbG40NWxwX2VkcmFtXzFwMDhtX2NiZXN0L2ljZWNhcHMudGNoCi0jc2V0IHZhcnMocXhfbGF5ZXJfbWFwX2ZpbGUpICAgJHZhcnMoZGVzaWduX3Jvb3QpL0xJQlMvTjQ1L3FyYy9sYXllci5tYXAKLSNzZXQgdmFycyhzaWdub2ZmX2V4dHJhY3Rpb25fZW5naW5lKSBxcmMKLQotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotIyBTY2FsZSBmYWN0b3JzIGFyZSBhbHNvIG9wdGlvbmFsIGJ1dCBhcmUgc3Ryb25nbHkgZW5jb3VyYWdlZCBmb3IgCi0jIG9idGFpbmluZyB0aGUgYmVzdCBmbG93IGNvbnZlcmdlbmNlIGFuZCBRb1IuICAKLSMgU2NhbGluZyBmYWN0b3JzIGFyZSBhcHBsaWVkIHBlciByYyBjb3JuZXIKLSMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSMgc2V0IHZhcnMoPHJjX2Nvcm5lcj4sZGVmX3Jlc19mYWN0b3IpICAgICA8cHJlLXJvdXRlIHJlc2lzdGFuY2Ugc2NhbGUgZmFjdG9yPgotIyBzZXQgdmFycyg8cmNfY29ybmVyPixkZWZfY2xrX3Jlc19mYWN0b3IpIDxwcmUtcm91dGUgY2xvY2sgcmVzaXN0YW5jZSBzY2FsZSBmYWN0b3I+Ci0jIHNldCB2YXJzKDxyY19jb3JuZXI+LGRldF9yZXNfZmFjdG9yKSAgICAgPHBvc3Qtcm91dGUgcmVzaXN0YW5jZSBzY2FsZSBmYWN0b3I+Ci0jIHNldCB2YXJzKDxyY19jb3JuZXI+LGRldF9jbGtfcmVzX2ZhY3RvcikgPHBvc3Qtcm91dGUgY2xvY2sgcmVzaXN0YW5jZSBzY2FsZSBmYWN0b3I+Ci0jIHNldCB2YXJzKDxyY19jb3JuZXI+LGRlZl9jYXBfZmFjdG9yKSAgICAgPHByZS1yb3V0ZSBjYXBhY2l0YW5jZSBzY2FsZSBmYWN0b3I+Ci0jIHNldCB2YXJzKDxyY19jb3JuZXI+LGRlZl9jbGtfY2FwX2ZhY3RvcikgPHByZS1yb3V0ZSBjbG9jayBjYXBhY2l0YW5jZSBzY2FsZSBmYWN0b3I+Ci0jIHNldCB2YXJzKDxyY19jb3JuZXI+LGRldF9jYXBfZmFjdG9yKSAgICAgPHBvc3Qtcm91dGUgY2FwYWNpdGFuY2Ugc2NhbGUgZmFjdG9yPgotIyBzZXQgdmFycyg8cmNfY29ybmVyPixkZXRfY2xrX2NhcF9mYWN0b3IpIDxwb3N0LXJvdXRlIGNsb2NrIGNhcGFjaXRhbmNlIHNjYWxlIGZhY3Rvcj4KLSMgc2V0IHZhcnMoPHJjX2Nvcm5lcj4seGNhcF9mYWN0b3IpICAgICAgICA8cG9zdC1yb3V0ZSBjb3VwbGluZyBjYXBhY2l0YW5jZSBzY2FsZSBmYWN0b3I+Ci0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi1zZXQgdmFycyhyY19tYXgsZGVmX3Jlc19mYWN0b3IpICAgICAwLjk1Ci1zZXQgdmFycyhyY19tYXgsZGVmX2Nsa19yZXNfZmFjdG9yKSAxLjAwCi1zZXQgdmFycyhyY19tYXgsZGV0X3Jlc19mYWN0b3IpICAgICAxLjAzCi1zZXQgdmFycyhyY19tYXgsZGV0X2Nsa19yZXNfZmFjdG9yKSAxLjAwCi1zZXQgdmFycyhyY19tYXgsZGVmX2NhcF9mYWN0b3IpICAgICAxLjA5Ci1zZXQgdmFycyhyY19tYXgsZGVmX2Nsa19jYXBfZmFjdG9yKSAxLjEwCi1zZXQgdmFycyhyY19tYXgsZGV0X2NhcF9mYWN0b3IpICAgICAxLjI5Ci1zZXQgdmFycyhyY19tYXgsZGV0X2Nsa19jYXBfZmFjdG9yKSAxLjA1Ci1zZXQgdmFycyhyY19tYXgseGNhcF9mYWN0b3IpICAgICAgICAxLjIwCi0KLXNldCB2YXJzKHJjX21pbixkZWZfcmVzX2ZhY3RvcikgICAgIDEuMDAKLXNldCB2YXJzKHJjX21pbixkZXRfcmVzX2ZhY3RvcikgICAgIDEuMDAKLXNldCB2YXJzKHJjX21pbixkZWZfY2FwX2ZhY3RvcikgICAgIDEuMDAKLXNldCB2YXJzKHJjX21pbixkZXRfY2FwX2ZhY3RvcikgICAgIDEuMDAKLXNldCB2YXJzKHJjX21pbix4Y2FwX2ZhY3RvcikgICAgICAgIDEuMDAKLQotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotIyBEZWZpbmUgb3BlcmF0aW5nIGNvbmRpdGlvbnMgKG9wdGlvbmFsKQotIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIyBzZXQgdmFycyhvcGNvbmRzKSAgICAgICAgICAgICAgICAiPG9wY29uZDE+IDxvcGNvbmQyPiAuLi4iCi0jIHNldCB2YXJzKDxvcGNvbmQxPixsaWJyYXJ5X2ZpbGUpICA8bGlicmFyeSBmaWxlID4KLSMgc2V0IHZhcnMoPG9wY29uZDE+LHByb2Nlc3MpICAgICAgIDxwcm9jZXNzIHNjYWxlIGZhY3Rvcj4KLSMgc2V0IHZhcnMoPG9wY29uZDE+LHZvbHRhZ2UpICAgICAgIDx2b2x0YWdlPgotIyBzZXQgdmFycyg8b3Bjb25kMT4sdGVtcGVyYXR1cmUpICAgPHRlbXBlcmF0dXJlPgotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0jIERlZmluZSBkZWxheSBjb3JuZXJzIC4uLgotIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIyBzZXQgdmFycyhkZWxheV9jb3JuZXJzKSAgICAgICAgICAiPGNvcm5lcjE+IDxjb3JuZXIyPiAuLi4iCi0jIHNldCB2YXJzKDxjb3JuZXIxPixsaWJyYXJ5X3NldCkgICA8bGlicmFyeV9zZXQ+IChwcmV2aW91c2x5IGRlZmluZWQpCi0jIHNldCB2YXJzKDxjb3JuZXIxPixvcGNvbmQpICAgICAgICA8b3Bjb25kPiAocHJldmlvdXNseSBkZWZpbmVkKSAob3B0aW9uYWwpCi0jIHNldCB2YXJzKDxjb3JuZXIxPixyY19jb3JuZXIpICAgICA8cmNfY29ybmVyPiAocHJldmlvdXNseSBkZWZpbmVkKQotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotc2V0IHZhcnMoZGVsYXlfY29ybmVycykgICAgICAgICAgICAgInNsb3dfbWF4IGZhc3RfbWluIgotc2V0IHZhcnMoc2xvd19tYXgsbGlicmFyeV9zZXQpICAgICAgInNsb3dfbGlicyIKLXNldCB2YXJzKHNsb3dfbWF4LHJjX2Nvcm5lcikgICAgICAgICJyY19tYXgiCi1zZXQgdmFycyhmYXN0X21pbixsaWJyYXJ5X3NldCkgICAgICAiZmFzdF9saWJzIgotc2V0IHZhcnMoZmFzdF9taW4scmNfY29ybmVyKSAgICAgICAgInJjX21pbiIKLQotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotIyBEZWZpbmUgY29uc3RyYWludHMgbW9kZXMgLi4uIAotIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIyBzZXQgdmFycyhjb25zdHJhaW50X21vZGVzKSAgICAgICAgICAiPG1vZGUxPiA8bW9kZTI+IC4uLiIKLSMgc2V0IHZhcnMoPG1vZGUxPixwcmVfY3RzX3NkYykgICAgICAgIDxwcmUgY3RzIGNvbnN0cmFpbnQgZmlsZT4KLSMgc2V0IHZhcnMoPG1vZGUxPixwb3N0X2N0c19zZGMpICAgICAgIDxwb3N0IGN0cyBjb25zdHJhaW50IGZpbGU+IChvcHRpb25hbCkKLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLQotc2V0IHZhcnMoY29uc3RyYWludF9tb2RlcykgICAgICAgICAgICAgInNldHVwX2Z1bmNfbW9kZSBob2xkX2Z1bmNfbW9kZSIKLXNldCB2YXJzKHNldHVwX2Z1bmNfbW9kZSxwcmVfY3RzX3NkYykgICIkdmFycyhkYXRhX3Jvb3QpL2R0bWZfcmVjdnJfY29yZS5zZGMgJHZhcnMoZGF0YV9yb290KS9wcmVjdHMuc2RjIgotc2V0IHZhcnMoc2V0dXBfZnVuY19tb2RlLHBvc3RfY3RzX3NkYykgIiR2YXJzKGRhdGFfcm9vdCkvZHRtZl9yZWN2cl9jb3JlLnNkYyAkdmFycyhkYXRhX3Jvb3QpL3Bvc3RjdHMuc2RjIgotc2V0IHZhcnMoc2V0dXBfZnVuY19tb2RlLGluY3JfY3RzX3NkYykgICR2YXJzKGRhdGFfcm9vdCkvcG9zdGN0cy5zZGMKLQotc2V0IHZhcnMoaG9sZF9mdW5jX21vZGUscHJlX2N0c19zZGMpICAgICR2YXJzKHNldHVwX2Z1bmNfbW9kZSxwcmVfY3RzX3NkYykKLXNldCB2YXJzKGhvbGRfZnVuY19tb2RlLHBvc3RfY3RzX3NkYykgICAkdmFycyhzZXR1cF9mdW5jX21vZGUscG9zdF9jdHNfc2RjKQotCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0jIERlZmluZSBhbmFseXNpcyB2aWV3cyAuLi4KLSMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSMgc2V0IHZhcnMoc2V0dXBfYW5hbHlzaXNfdmlld3MpICAgICI8dmlldzE+IDx2aWV3Mj4iCi0jIHNldCB2YXJzKGhvbGRfYW5hbHlzaXNfdmlld3MpICAgICAiPHZpZXcxPiA8dmlldzI+IgotIyBzZXQgdmFycyg8dmlldzE+LGRlbGF5X2Nvcm5lcikgICAgIDxkZWxheSBjb3JuZXI+Ci0jIHNldCB2YXJzKDx2aWV3MT4sY29uc3RyYWludF9tb2RlKSAgPGNvbnN0cmFpbnQgbW9kZT4KLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLXNldCB2YXJzKHNldHVwX2FuYWx5c2lzX3ZpZXdzKSAgICAgICAic2V0dXBfZnVuYyIKLXNldCB2YXJzKGhvbGRfYW5hbHlzaXNfdmlld3MpICAgICAgICAiaG9sZF9mdW5jIgotCi1zZXQgdmFycyhzZXR1cF9mdW5jLGRlbGF5X2Nvcm5lcikgICAgInNsb3dfbWF4Igotc2V0IHZhcnMoc2V0dXBfZnVuYyxjb25zdHJhaW50X21vZGUpICJzZXR1cF9mdW5jX21vZGUiCi1zZXQgdmFycyhob2xkX2Z1bmMsZGVsYXlfY29ybmVyKSAgICAgImZhc3RfbWluIgotc2V0IHZhcnMoaG9sZF9mdW5jLGNvbnN0cmFpbnRfbW9kZSkgICJob2xkX2Z1bmNfbW9kZSIKLQotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotIyBEZWZpbmUgYWN0aXZlIHNldHVwIGFuZCBob2xkIHZpZXdzIGFuZCBkZW5vdGUgd2hpY2ggYXJlIGRlZmF1bHQKLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLXNldCB2YXJzKGRlZmF1bHRfc2V0dXBfdmlldykgInNldHVwX2Z1bmMiCi1zZXQgdmFycyhkZWZhdWx0X2hvbGRfdmlldykgICJob2xkX2Z1bmMiCi1zZXQgdmFycyhhY3RpdmVfc2V0dXBfdmlld3MpICJzZXR1cF9mdW5jIgotc2V0IHZhcnMoYWN0aXZlX2hvbGRfdmlld3MpICAiaG9sZF9mdW5jIgotCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0jIERlZmluZSBkZXJhdGluZyBmYWN0b3JzIGZvciBPQ1YgaGVyZSAoY2xvY2sgYW5kIGRhdGEpLiAKLSMgRGVyYXRpbmcgZmFjdG9ycyBhcmUgYXBwbGllZCBwZXIgZGVsYXkgY29ybmVyCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi1zZXQgdmFycyhzbG93X21heCxkYXRhX2NlbGxfbGF0ZSkgICAxLjAzCi1zZXQgdmFycyhzbG93X21heCxkYXRhX2NlbGxfZWFybHkpICAwLjk3Ci1zZXQgdmFycyhzbG93X21heCxkYXRhX25ldF9sYXRlKSAgICAxLjAzCi1zZXQgdmFycyhzbG93X21heCxkYXRhX25ldF9lYXJseSkgICAwLjk3Ci1zZXQgdmFycyhzbG93X21heCxjbG9ja19jZWxsX2xhdGUpICAxLjAzCi1zZXQgdmFycyhzbG93X21heCxjbG9ja19jZWxsX2Vhcmx5KSAwLjk3Ci1zZXQgdmFycyhzbG93X21heCxjbG9ja19uZXRfbGF0ZSkgICAxLjAzCi1zZXQgdmFycyhzbG93X21heCxjbG9ja19uZXRfZWFybHkpICAwLjk3Ci0KLXNldCB2YXJzKGZhc3RfbWluLGRhdGFfY2VsbF9sYXRlKSAgIDEuMDUKLXNldCB2YXJzKGZhc3RfbWluLGRhdGFfY2VsbF9lYXJseSkgIDAuOTUKLXNldCB2YXJzKGZhc3RfbWluLGRhdGFfbmV0X2xhdGUpICAgIDEuMDUKLXNldCB2YXJzKGZhc3RfbWluLGRhdGFfbmV0X2Vhcmx5KSAgIDAuOTcKLXNldCB2YXJzKGZhc3RfbWluLGNsb2NrX2NlbGxfbGF0ZSkgIDEuMDUKLXNldCB2YXJzKGZhc3RfbWluLGNsb2NrX2NlbGxfZWFybHkpIDAuOTcKLXNldCB2YXJzKGZhc3RfbWluLGNsb2NrX25ldF9sYXRlKSAgIDEuMDUKLXNldCB2YXJzKGZhc3RfbWluLGNsb2NrX25ldF9lYXJseSkgIDAuOTcKLQotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotIyBEZWZpbmUgcG93ZXIvZ3JvdW5kIG5ldHMKLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLXNldCB2YXJzKHB3cm5ldCkgIlZERCIKLXNldCB2YXJzKGduZG5ldCkgIlZTUyIKLQotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSMgRGlzdHJpYnV0aW9uIHNldHVwCi0jIGxzZiwgcnNoLCBsb2NhbCwgb3IgY3VzdG9tCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotc2V0IHZhcnMoZGlzdHJpYnV0ZSkgICAgICAgICAgIGN1c3RvbQotc2V0IHZhcnMoY3VzdG9tLHNjcmlwdCkgICAgICAgIHsvZ3JpZC9zZmkvZmFybS9iaW4vZ3JpZHN1YiAtVyA3MjowMCAtUCBTT0M3LjEgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtUiAiU0ZJQVJDSD09T1BUNjQgJiYgT1NSRUw9PUVFNDAiIC1xIGxueDY0fQotc2V0IHZhcnMobG9jYWxfY3B1cykgICAgICAgICAgIDIKLXNldCB2YXJzKHJlbW90ZV9ob3N0cykgICAgICAgICA0Ci1zZXQgdmFycyhjcHVfcGVyX3JlbW90ZV9ob3N0KSAgMgotCi1QdXRzICI8RkY+IEZpbmlzaGVkIGxvYWRpbmcgc2V0dXAudGNsIgpkaWZmIC0tZ2l0IGEvZmxvdy9wbnIvRVhBTVBMRVMvUkVBRE1FIGIvZmxvdy9wbnIvRVhBTVBMRVMvUkVBRE1FCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDc1NQppbmRleCBjNDA2YWQ4Li4wMDAwMDAwCi0tLSBhL2Zsb3cvcG5yL0VYQU1QTEVTL1JFQURNRQorKysgL2Rldi9udWxsCkBAIC0xLDQwICswLDAgQEAKLVRoZSBleGFtcGxlIHNob3dzIGEgd2F5IHRvIGdlbmVyYXRlIHRoZSBmb3VuZGF0aW9uIGZsb3cgc2NyaXB0cyBmb3IgYSBzbWFsbCBkZXNpZ24uCi0KLVRvIHJ1biBGTEFUIGZsb3c6Ci0KLSAgIGNkIElOTk9WVVMvREVTSUdOLwotICAgdGNsc2ggU0NSSVBUUy9nZW5fZmxvdy50Y2wgLW0gZmxhdCBhbGwKLQotICAgVGhlIG91dHB1dCBzY3JpcHRzIGdldHMgZ2VuZXJhdGVkIGluIHRoZSBGRi9FREkgZGlyZWN0b3J5LgotCi0gICBUbyBydW4gdGhlIHNjcmlwdHM6IAotCi0gICBzZXQgdGhlIGlubm92dXMgcGF0aC4KLSAgIG1ha2UKLQotVG8gcnVuIEhJRVJBUkNISUNBTCBmbG93OgotCi0gICBjZCBJTk5PVlVTL0RFU0lHTi8KLSAgIHRjbHNoIFNDUklQVFMvZ2VuX2Zsb3cudGNsIC1tIGhpZXIgYWxsCi0KLSAgIFRoZSBvdXRwdXQgc2NyaXB0cyBmb3IgcGFydGl0aW9uIGFuZCBhc3NlbWJseSBnZXRzIGdlbmVyYXRlZCBpbiB0aGUgRkYvRURJIGRpcmVjdG9yeS4KLQotICAgVGhlIFBBUlRJVElPTiBkaXJlY3RvcnkgZ2V0cyBjcmVhdGVkIGZvciA8dG9wPiBhbmQgPGJsb2NrPiBpbXBsZW1lbnRhdGlvbiBmbG93cy4gRWFjaCAKLSAgIDxibG9jaz4gZGlyZWN0b3J5IGNvbnRhaW5zIHNjcmlwdHMgZm9yIGZsYXQgYmxvY2sgaW1wbGVtZW50YXRpb247IHRoZSA8dG9wPiBkaXJlY3RvcnkgCi0gICBjb250YWlucyBzY3JpcHRzIGZvciBJTE0gYmFzZWQgaW1wbGVtZW50YXRpb24uCi0KLSAgIFRvIHJ1biB0aGUgc2NyaXB0czogCi0KLSAgIHNldCB0aGUgaW5ub3Z1cyBwYXRoLgotICAgbWFrZQotCi1UaGUgZmxvdyBmb3IgbWFrZSB3b3VsZCBiZSA6Ci0KLSAgIFJ1biBwYXJ0aXRpb24gc3RlcAotICAgUnVuIDxibG9jaz4gaW1wbGVtZW50YXRpb24ocykgaW4gcGFyYWxsZWwKLSAgIFJ1biA8dG9wPiBpbXBsZW1lbnRhdGlvbiB1c2luZyBibG9jayBJTE0KLSAgIFJ1biBhc3NlbWJseSBhbmQgc2lnbi1vZmYKLQotRm9yIGJvdGggZmxhdCBhbmQgaGllciBmbG93cywgdGhlIGlucHV0cyBjYW4gYmUgY29uZmlndXJlZCB0aHJvdWdoIHNldHVwLnRjbCAoZGF0YSkgYW5kIGlubm92dXNfY29uZmlnLnRjbCAodG9vbCBvcHRpb25zKSAKLQotRm9yIGJvdGggdGhlIGZsb3dzLCBwbHVnaW5zICh1c2VyIGN1c3RvbWl6YXRpb25zKSBjYW4gYmUgZGVmaW5lZCBpbiB0aGUgUExVRyBkaXJlY3RvcnkuIFVuY29tbWVudGluZyB0aGUgcGx1Z2luIGluIHRoZSBmaWxlIGlubm92dXNfY29uZmlnLnRjbCB3aWxsIGVuYWJsZSB0aGUgcGx1Z2lucyB0byBiZSB1c2VkIGR1cmluZyB0aGUgYXBwcm9wcmlhdGVzIHN0ZXAuCmRpZmYgLS1naXQgYS9mbG93L3Buci9NYWtlZmlsZSBiL2Zsb3cvcG5yL01ha2VmaWxlCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAzZjZmODFiLi4wMDAwMDAwCi0tLSBhL2Zsb3cvcG5yL01ha2VmaWxlCisrKyAvZGV2L251bGwKQEAgLTEsMTY5ICswLDAgQEAKLVZFUlNJT049MTcuMTAtcDAwM18xCi1WUEFUSD1tYWtlCi1UQ0xTSD0vdXNyL2Jpbi90Y2xzaAotR0VOX0ZMT1c9U0NSSVBUUy9nZW5fZmxvdy50Y2wKLVNFVFVQX1BBVEg9LgotVE9PTD1pbm5vdnVzCi1BUkdTPS02NCAtbm93aW4KLUZTVEVQUz1pbml0IHBsYWNlIGN0cyBwb3N0Y3RzX2hvbGQgcm91dGUgcG9zdHJvdXRlIHNpZ25vZmYKLVNDUklQVFM9RkYKLUxPRz1MT0cKLUJST1dTRVI9bmV0c2NhcGUKLVVQREFURT15ZXMKLQotU1RFUFMgPSB2ZXJzaW9uIHNldHVwIGluaXQgcGxhY2UgY3RzIHBvc3RjdHNfaG9sZCByb3V0ZSBwb3N0cm91dGUgc2lnbm9mZiBkb19jbGVhbnVwCi1GRl9TVEFSVCA9IGluaXQKLUZGX1NUT1AgPSBzaWdub2ZmCi0KLWFsbDogdmVyc2lvbiBzZXR1cCBpbml0IHBsYWNlIGN0cyBwb3N0Y3RzX2hvbGQgcm91dGUgcG9zdHJvdXRlIHNpZ25vZmYgZG9fY2xlYW51cAotCi12ZXJzaW9uOgotCUBlY2hvICIjIEZvdW5kYXRpb24gRmxvd3MgVmVyc2lvbiAkKFZFUlNJT04pIgotCi1oZWxwOgotCUBlY2hvICI9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0iCi0JQGVjaG8gIiAgICAgICAgICAgJChWRVJTSU9OKSAgRm91bmRhdGlvbiBGbG93cyIKLQlAZWNobyAiPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09IgotCUBlY2hvICIgICBNYWtlZmlsZSBUYXJnZXRzIgotCUBlY2hvICI9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0iCi0JQGVjaG8gIiAgICAgICAgICAgICAgIHNldHVwIDogU2V0dXAgUnVuIERpcmVjdG9yeSIKLQlAZWNobyAgICAgICAgICAgICAgICAgIGluaXQgOiBEZXNpZ24gSW1wb3J0IC8gSW5pdGlhbGl6YXRpb24gICAgICAgICAgICAgICAKLQlAZWNobyAgICAgICAgICAgICAgICAgcGxhY2UgOiBDZWxsIFBsYWNlbWVudCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKLQlAZWNobyAgICAgICAgICAgICAgICAgICBjdHMgOiBDbG9jayBUcmVlIFN5bnRoZXNpcyAgICAgICAgICAgICAgICAgICAgICAgICAKLQlAZWNobyAgICAgICAgICBwb3N0Y3RzX2hvbGQgOiBQb3N0Q1RTIEhvbGQgRml4aW5nICAgICAgICAgICAgICAgICAgICAgICAgICAKLQlAZWNobyAgICAgICAgICAgICAgICAgcm91dGUgOiBHbG9iYWwvRGV0YWlsIFJvdXRlICAgICAgICAgICAgICAgICAgICAgICAgICAKLQlAZWNobyAgICAgICAgICAgICBwb3N0cm91dGUgOiBQb3N0Um91dGUgT3B0aW1pemF0aW9uICAgICAgICAgICAgICAgICAgICAgICAKLQlAZWNobyAgICAgICAgICAgICAgIHNpZ25vZmYgOiBTaWdub2ZmIFRpbWluZyAvIFZlcmlmeSAgICAgICAgICAgICAgICAgICAgICAKLQlAZWNobyAiLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIgotCUBlY2hvICIgICAgICAgICAgICAgICAgIGFsbCA6IEFsbCBkZXNpZ24gc3RlcHMiCi0JQGVjaG8gIiAgICAgICAgICAgICAgc2ltcGxlIDogU2luZ2xlIHNjcmlwdCAoYWxsIHN0ZXBzIGluIGEgc2luZ2xlIHNlc3Npb24pIC0gbm8gc3RvcC9zdGFydCIKLQlAZWNobyAiICAgICAgICAgICAgICBzaW5nbGUgOiBTaW5nbGUgc2NyaXB0IChhbGwgc3RlcHMgaW4gYSBzaW5nbGUgc2Vzc2lvbikiCi0JQGVjaG8gIj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSIKLQlAZWNobyAiICAgTWFrZWZpbGUgT3B0aW9ucyIKLQlAZWNobyAiPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09IgotCUBlY2hvICIgICBWUEFUSCA6IE1ha2UgZGlyZWN0b3J5ICAgIChkZWZhdWx0IG1ha2UpIgotCUBlY2hvICIgICAgVE9PTCA6IElOTk9WVVMgZXhlY3V0YWJsZSAgICAgKGRlZmF1bHQgaW5ub3Z1cykiCi0JQGVjaG8gIiAgICBBUkdTIDogSU5OT1ZVUyBhcmd1bWVudHMgICAgICAoZGVmYXVsdCAtbm93aW4gLTY0KSIKLQlAZWNobyAiICBVUERBVEUgOiBVcGRhdGUgc2NyaXB0cyAgICAoZGVmYXVsdCB5ZXMpIgotCUBlY2hvICIgU0NSSVBUUyA6IFNjcmlwdCBkaXJlY3RvcnkgIChkZWZhdWx0IEZGKSIKLQlAZWNobyAiICAgICBMT0cgOiBMb2dmaWxlIGRpcmVjdG9yeSAoZGVmYXVsdCBMT0cpIgotCUBlY2hvICI9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0iCi0KLQotc2ltcGxlOiBzZXR1cAotCUZGX1NUT1A9JChGRl9TVE9QKTsgVlBBVEg9JChWUEFUSCk7IGV4cG9ydCBWUEFUSDsgJChUT09MKSAtaW5pdCAkKFNDUklQVFMpL0lOTk9WVVMvcnVuX3NpbXBsZS50Y2wgLWxvZyAkKExPRykvc2ltcGxlLmxvZyAkKEFSR1MpCi0KLQotc2luZ2xlOiBzZXR1cAotCUZGX1NUT1A9JChGRl9TVE9QKTsgVlBBVEg9JChWUEFUSCk7IGV4cG9ydCBWUEFUSDsgJChUT09MKSAtaW5pdCAkKFNDUklQVFMpL0lOTk9WVVMvcnVuX2FsbC50Y2wgLWxvZyAkKExPRykvc2luZ2xlLmxvZyAkKEFSR1MpCi0KLXNldHVwOgotCUAvYmluL21rZGlyIC1wICQoVlBBVEgpICQoTE9HKQotCUAvYmluL3RvdWNoICQoVlBBVEgpLyRACi0KLWluaXQ6IHNldHVwCi0JQG1rZGlyIC1wICQoTE9HKTsKLQlAaWYgWyAiJChVUERBVEUpIiA9ICJ5ZXMiIF0gOyB0aGVuIFwKLQkJL3Vzci9iaW4vdGNsc2ggU0NSSVBUUy9nZW5fZmxvdy50Y2wgLW0gZmxhdCAtZCBGRiAtdiAxNy4xLjAgLXMgLiAteSBub25lIC1uICBpbml0IDsgXAotCWZpCi0JVlBBVEg9JChWUEFUSCk7IGV4cG9ydCBWUEFUSDsgJChUT09MKSAtaW5pdCAkKFNDUklQVFMpL0lOTk9WVVMvcnVuX2luaXQudGNsIC1sb2cgJChMT0cpL2luaXQubG9nIC1vdmVyd3JpdGUgJChBUkdTKQotcGxhY2U6IGluaXQKLQlAbWtkaXIgLXAgJChMT0cpOwotCUBpZiBbICIkKFVQREFURSkiID0gInllcyIgXSA7IHRoZW4gXAotCQkvdXNyL2Jpbi90Y2xzaCBTQ1JJUFRTL2dlbl9mbG93LnRjbCAtbSBmbGF0IC1kIEZGIC12IDE3LjEuMCAtcyAuIC15IG5vbmUgLW4gIHBsYWNlIDsgXAotCWZpCi0JVlBBVEg9JChWUEFUSCk7IGV4cG9ydCBWUEFUSDsgJChUT09MKSAtaW5pdCAkKFNDUklQVFMpL0lOTk9WVVMvcnVuX3BsYWNlLnRjbCAtbG9nICQoTE9HKS9wbGFjZS5sb2cgLW92ZXJ3cml0ZSAkKEFSR1MpCi1jdHM6IHBsYWNlCi0JQG1rZGlyIC1wICQoTE9HKTsKLQlAaWYgWyAiJChVUERBVEUpIiA9ICJ5ZXMiIF0gOyB0aGVuIFwKLQkJL3Vzci9iaW4vdGNsc2ggU0NSSVBUUy9nZW5fZmxvdy50Y2wgLW0gZmxhdCAtZCBGRiAtdiAxNy4xLjAgLXMgLiAteSBub25lIC1uICBjdHMgOyBcCi0JZmkKLQlWUEFUSD0kKFZQQVRIKTsgZXhwb3J0IFZQQVRIOyAkKFRPT0wpIC1pbml0ICQoU0NSSVBUUykvSU5OT1ZVUy9ydW5fY3RzLnRjbCAtbG9nICQoTE9HKS9jdHMubG9nIC1vdmVyd3JpdGUgJChBUkdTKQotcG9zdGN0c19ob2xkOiBjdHMKLQlAbWtkaXIgLXAgJChMT0cpOwotCUBpZiBbICIkKFVQREFURSkiID0gInllcyIgXSA7IHRoZW4gXAotCQkvdXNyL2Jpbi90Y2xzaCBTQ1JJUFRTL2dlbl9mbG93LnRjbCAtbSBmbGF0IC1kIEZGIC12IDE3LjEuMCAtcyAuIC15IG5vbmUgLW4gIHBvc3RjdHNfaG9sZCA7IFwKLQlmaQotCVZQQVRIPSQoVlBBVEgpOyBleHBvcnQgVlBBVEg7ICQoVE9PTCkgLWluaXQgJChTQ1JJUFRTKS9JTk5PVlVTL3J1bl9wb3N0Y3RzX2hvbGQudGNsIC1sb2cgJChMT0cpL3Bvc3RjdHNfaG9sZC5sb2cgLW92ZXJ3cml0ZSAkKEFSR1MpCi1yb3V0ZTogcG9zdGN0c19ob2xkCi0JQG1rZGlyIC1wICQoTE9HKTsKLQlAaWYgWyAiJChVUERBVEUpIiA9ICJ5ZXMiIF0gOyB0aGVuIFwKLQkJL3Vzci9iaW4vdGNsc2ggU0NSSVBUUy9nZW5fZmxvdy50Y2wgLW0gZmxhdCAtZCBGRiAtdiAxNy4xLjAgLXMgLiAteSBub25lIC1uICByb3V0ZSA7IFwKLQlmaQotCVZQQVRIPSQoVlBBVEgpOyBleHBvcnQgVlBBVEg7ICQoVE9PTCkgLWluaXQgJChTQ1JJUFRTKS9JTk5PVlVTL3J1bl9yb3V0ZS50Y2wgLWxvZyAkKExPRykvcm91dGUubG9nIC1vdmVyd3JpdGUgJChBUkdTKQotcG9zdHJvdXRlOiByb3V0ZQotCUBta2RpciAtcCAkKExPRyk7Ci0JQGlmIFsgIiQoVVBEQVRFKSIgPSAieWVzIiBdIDsgdGhlbiBcCi0JCS91c3IvYmluL3RjbHNoIFNDUklQVFMvZ2VuX2Zsb3cudGNsIC1tIGZsYXQgLWQgRkYgLXYgMTcuMS4wIC1zIC4gLXkgbm9uZSAtbiAgcG9zdHJvdXRlIDsgXAotCWZpCi0JVlBBVEg9JChWUEFUSCk7IGV4cG9ydCBWUEFUSDsgJChUT09MKSAtaW5pdCAkKFNDUklQVFMpL0lOTk9WVVMvcnVuX3Bvc3Ryb3V0ZS50Y2wgLWxvZyAkKExPRykvcG9zdHJvdXRlLmxvZyAtb3ZlcndyaXRlICQoQVJHUykKLXNpZ25vZmY6IHBvc3Ryb3V0ZQotCUBta2RpciAtcCAkKExPRyk7Ci0JQGlmIFsgIiQoVVBEQVRFKSIgPSAieWVzIiBdIDsgdGhlbiBcCi0JCS91c3IvYmluL3RjbHNoIFNDUklQVFMvZ2VuX2Zsb3cudGNsIC1tIGZsYXQgLWQgRkYgLXYgMTcuMS4wIC1zIC4gLXkgbm9uZSAtbiAgc2lnbm9mZiA7IFwKLQlmaQotCVZQQVRIPSQoVlBBVEgpOyBleHBvcnQgVlBBVEg7ICQoVE9PTCkgLWluaXQgJChTQ1JJUFRTKS9JTk5PVlVTL3J1bl9zaWdub2ZmLnRjbCAtbG9nICQoTE9HKS9zaWdub2ZmLmxvZyAtb3ZlcndyaXRlICQoQVJHUykKLWRlYnVnXyU6Ci0JVlBBVEg9JChWUEFUSCk7IGV4cG9ydCBTVEVQPSQqIDsgZXhwb3J0IFZQQVRIOyAkKFRPT0wpIC1pbml0ICQoU0NSSVBUUykvSU5OT1ZVUy9ydW5fZGVidWcudGNsIC1sb2cgJChMT0cpLyRALmxvZyAtd2luICQoQVJHUzotbm93aW49KQotCi1sZWNfJToKLQlleHBvcnQgU1RFUD0kKiA7IGxlYyAtNjQgLXhsIC1Eb2ZpbGUgJChTQ1JJUFRTKS9JTk5PVlVTL3J1bl9sZWMudGNsIC1OT0d1aSAtTE9HZmlsZSAkKExPRykvJEAubG9nCi0KLWhlbHBfJToKLQkvdXNyL2Jpbi90Y2xzaCAkKEdFTl9GTE9XKSAtSCAkKgotCi0uUEhPTlk6IGNsZWFuCi0KLWNsZWFuOgotCS9iaW4vbXYgKi5ycHQgUlBUIDtcCi0JL2Jpbi9ybSAtZnIgZXh0TG9nRGlyKiBfX3FyYy5sb2cgKmN0c190cmFjZSAqLnJwdC5vbGQgKmRlbGV0ZSogcGxhY2VtZW50UmVwb3J0cyogKi5yZ3VpZGUgKl9tbW1jIFwKLQkqX2NvbnN0ci5wdCAuY29uc3RyKiAuRkUqIC5yb3V0aW5nKiAudGltaW5nX2ZpbGUqIC50ZHJsb2cqCi0KLWRvX2NsZWFudXA6IHNpZ25vZmYKLQkkKE1BS0UpIGNsZWFuCi0JL2Jpbi90b3VjaCAkKFZQQVRIKS8kQAotCi1yZXNldCA6IHZlcnNpb24KLQkvYmluL3JtIC1mciAkKFZQQVRIKS8qIGV4dExvZ0RpciogX19xcmMubG9nICpjdHNfdHJhY2UgKi5ycHQub2xkICpkZWxldGUqIHBsYWNlbWVudFJlcG9ydHMqICoucmd1aWRlICpfbW1tYwotCUBmb3IgZmlsZSBpbiAkKFNURVBTKSA7IFwKLQlkbyBcCi0JCWlmIFsgLXIgJChWUEFUSCkvJCRmaWxlIF0gOyB0aGVuIFwKLQkJCS9iaW4vcm0gJChWUEFUSCkvJCRmaWxlIDsgXAotCQlmaSBcCi0JZG9uZQotCi1ibG9ja18lOiBzZXR1cAotCUBpZiBbICJ4JCoiID0gInhzaW5nbGUiIF0gOyB0aGVuIFwKLQkJZmZfc3RvcD0kKEZGX1NUT1ApOyBcCi0JCXRhcmdldD0iJEAgKGZyb206ICQoRkZfU1RBUlQpIHRvOiAkKEZGX1NUT1ApKSI7IFwKLQllbHNlIFwKLQkJZmZfc3RvcD0kKiA7IFwKLQkJdGFyZ2V0PSRAOyBcCi0JZmk7IFwKLQlpZiBbIC1yICQoVlBBVEgpLy5SVU5OSU5HIF0gOyB0aGVuIFwKLQkJZWNobyAiSU5GTzogQSBidWlsZCBzZWVtcyB0byBiZSBydW5uaW5nIGFscmVhZHkuLi4gY2hlY2sgJChWUEFUSCkvLlJVTk5JTkcgZmlsZSBhbmQgcmVtb3ZlIHRoYXQgZmlsZSBpZiB0aGUgcHJvY2VzcyBpcyBkZWFkIiA7IFwKLQkJL2Jpbi9oZWFkIC0xICAkKFZQQVRIKS8uUlVOTklORyA7IFwKLQkJZXhpdCAtMSA7IFwKLQllbHNlIFwKLQkJL2Jpbi9ybSAtZiAkKFZQQVRIKS9ibG9ja18kJHtmZl9zdG9wfS5ET05FICQoVlBBVEgpL2Jsb2NrXyQke2ZmX3N0b3B9LkZBSUxFRCAkKFZQQVRIKS9ibG9ja18kJHtmZl9zdG9wfS5QQVNTIDsgXAotCQkoZWNobyAiIyBTdGFydGVkIGJ1aWxkaW5nICQke3RhcmdldH0gYXQgImAvYmluL2RhdGVgIiBvbiAiYC9iaW4vaG9zdG5hbWVgIiBQSUQ6ICQkJCQiIDsgJChNQUtFKSAkKFRBUkdFVCkgKSAmPiQoVlBBVEgpLy5SVU5OSU5HIDsgXAotCQlpZiBbIC1yICQoVlBBVEgpLyQke2ZmX3N0b3B9IF0gOyB0aGVuIFwKLQkJCWlmIFsgLXIgJChWUEFUSCkvLlJVTk5JTkcgXSA7IHRoZW4gXAotCQkJCS9iaW4vbXYgJChWUEFUSCkvLlJVTk5JTkcgJChWUEFUSCkvYmxvY2tfJCR7ZmZfc3RvcH0uUEFTUyA7IFwKLQkJCQkvYmluL3RvdWNoICQoVlBBVEgpL2Jsb2NrXyQke2ZmX3N0b3B9IDsgXAotCQkJCS9iaW4vdG91Y2ggJChWUEFUSCkvYmxvY2tfJCR7ZmZfc3RvcH0uRE9ORSA7IFwKLQkJCWVsc2UgXAotCQkJCWVjaG8gIiMgU29tZXRoaW5nIGRpZCBub3Qgd29yayBwcm9wZXJseSIgPiAkKFZQQVRIKS9ibG9ja18kJHtmZl9zdG9wfS5GQUlMRUQgOyBcCi0JCQkJL2Jpbi90b3VjaCAkKFZQQVRIKS9ibG9ja18kJHtmZl9zdG9wfS5ET05FIDsgXAotCQkJCWV4aXQgLTE7IFwKLQkJCWZpIDsgXAotCQllbHNlIFwKLQkJCWlmIFsgLXIgJChWUEFUSCkvLlJVTk5JTkcgXSA7IHRoZW4gXAotCQkJCS9iaW4vbXYgJChWUEFUSCkvLlJVTk5JTkcgJChWUEFUSCkvYmxvY2tfJCR7ZmZfc3RvcH0uRkFJTEVEIDsgXAotCQkJZWxzZSBcCi0JCQkJZWNobyAiIyBTb21ldGhpbmcgZGlkIG5vdCB3b3JrIHByb3Blcmx5IiA+ICQoVlBBVEgpL2Jsb2NrXyQke2ZmX3N0b3B9LkZBSUxFRCA7IFwKLQkJCWZpIDsgXAotCQkJL2Jpbi90b3VjaCAkKFZQQVRIKS9ibG9ja18kJHtmZl9zdG9wfS5ET05FIDsgXAotCQkJZXhpdCAtMSA7IFwKLQkJZmkgOyBcCi0JZmkKZGlmZiAtLWdpdCBhL2Zsb3cvcG5yL1BMVUcvSU5OT1ZVUy9hbHdheXNfc291cmNlLnRjbCBiL2Zsb3cvcG5yL1BMVUcvSU5OT1ZVUy9hbHdheXNfc291cmNlLnRjbApkZWxldGVkIGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMmFjOTk3My4uMDAwMDAwMAotLS0gYS9mbG93L3Buci9QTFVHL0lOTk9WVVMvYWx3YXlzX3NvdXJjZS50Y2wKKysrIC9kZXYvbnVsbApAQCAtMSw5ICswLDAgQEAKLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotIyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFMV0FZU19TT1VSQ0UgUExVRy1JTiAKLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSMKLSMgVGhpcyBwbHVnLWluIHNjcmlwdCBpcyBjYWxsZWQgZnJvbSBhbGwgZmxvdyBzY3JpcG90cyBhZnRlciBsb2FkaW5nIHRoZSBzZXR1cC50Y2wgCi0jIGJ1dCBhZnRlciB0byBsb2FkaW5nIHRoZSBkZXNpZ24gZGF0YS4gIEl0IGNhbiBiZSB1c2VkIHRvIHNldCB2YXJpYWJsZXMgdGhhdCBhZmZlY3QgCi0jIG5vbi1wZXJzaXN0ZW50IGluZm9ybWF0aW9uCi0jCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCmRpZmYgLS1naXQgYS9mbG93L3Buci9QTFVHL0lOTk9WVVMvcG9zdF9jdHMudGNsIGIvZmxvdy9wbnIvUExVRy9JTk5PVlVTL3Bvc3RfY3RzLnRjbApkZWxldGVkIGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggZWQxZDU1YS4uMDAwMDAwMAotLS0gYS9mbG93L3Buci9QTFVHL0lOTk9WVVMvcG9zdF9jdHMudGNsCisrKyAvZGV2L251bGwKQEAgLTEsMTEgKzAsMCBAQAotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0jICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUE9TVC1DVFMgUExVRy1JTgotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotIwotIyBUaGlzIHBsdWctaW4gc2NyaXB0IGlzIGNhbGxlZCBhZnRlciBjbG9ja0Rlc2lnbiBmcm9tIHRoZSBydW5fY3RzLnRjbCBzY3JpcHQuCi0jIEl0IGNhbiBiZSB1c2VkIHRvIGFkanVzdCBJTyBsYXRlbmNpZXMsIHVwZGF0ZSB0byBwb3N0Y3RzIGNsb2NrIHVuY2VydGFpbnRpZXMsIGV0Yy4KLSMKLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLXNldF9jY29wdF9wcm9wZXJ0eSBiYWxhbmNlX21vZGUgZnVsbAotc2V0T3B0TW9kZSAtdXNlZnVsU2tld0NDT3B0IG1lZGl1bQotI2Njb3B0X2Rlc2lnbgpkaWZmIC0tZ2l0IGEvZmxvdy9wbnIvUExVRy9JTk5PVlVTL3Bvc3RfaW5pdC50Y2wgYi9mbG93L3Buci9QTFVHL0lOTk9WVVMvcG9zdF9pbml0LnRjbApkZWxldGVkIGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggYjIwZmU5OC4uMDAwMDAwMAotLS0gYS9mbG93L3Buci9QTFVHL0lOTk9WVVMvcG9zdF9pbml0LnRjbAorKysgL2Rldi9udWxsCkBAIC0xLDEwNSArMCwwIEBACi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSMgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBPU1QtSU5JVCBQTFVHLUlOCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSMKLSMgVGhpcyBwbHVnLWluIHNjcmlwdCBpcyBjYWxsZWQgYWZ0ZXIgZGVzaWduIGltcG9ydCBmcm9tIHRoZSBydW5faW5pdC50Y2wgc2NyaXB0LgotIwotIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIyBDYW4gYmUgdXNlZCBmb3IgdmFyaW91cyBmbG9vcnBsYW4gcmVsYXRlZCB0YXNrcywgbGlrZToKLSMgICAgICAgICAgICAgIC0gRGllL2NvcmUgYm91bmRhcnkKLSMgICAgICAgICAgICAgIC0gcGxhY2VtZW50IG9mIGhhcmQgbWFjcm9zL2Jsb2NrcwotIyAgICAgICAgICAgICAgLSBwb3dlciBkb21haW4gc2l6ZSBhbmQgY2xlYXJlbmNlIHN1cnJvdW5kaW5nIHRvIGl0Ci0jICAgICAgICAgICAgICAtIFBsYWNlbWVudCBhbmQgcm91dGluZyBibG9ja2FnZXMgaW4gdGhlIGZsb29ycGxhbgotIyAgICAgICAgICAgICAgLSBJTyByaW5nIGNyZWF0aW9uCi0jICAgICAgICAgICAgICAtIFBTTyBwbGFubmluZwotIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIyBTcGVjaWZpY2FsbHksIHRoaXMgZXhhbXBsZSBpbmNsdWRlcyB0YXNrcyByZWxhdGVkIHRvIHRoZSBMUC9DUEYgZm91bmRhdGlvbiBmbG93IAotIyBpbmNsdWRpbmcgcG93ZXIgZG9tYWluIG1vZGlmaWNhdGlvbiBhbmQgcG93ZXIgc2h1dC1vZmYgcGxhbm5pbmcuIFRoZSBleGFtcGxlcyAKLSMgaW5jbHVkZWQgaGVyZSBvcGVyYXRlIGJhc2VkIG9uIHZhcmlhYmxlcyAodmFycyBhcnJheSkgZGVmaW5lZCBpbiB0aGUgCi0jIE9WRVJMQVkvbHBfY29uZmlnLnRjbCBmaWxlCi0jCi1pZiB7W2luZm8gZXhpc3RzIHZhcnMoY3BmX2ZpbGUpXX0gewotCi0jIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0jIE1vZGlmeSBwb3dlciBkb21haW5zCi0jIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0jIFRoZSAnbW9kaWZ5X3Bvd2VyX2RvbWFpbnMnIHByb2NlZHVyZSBpcyBpbmNsdWRlZCB3aXRoIHRoZSBmb3VuZGF0aW9uIGZsb3dzCi0jIHRvIGhlbHAgYXV0b21hdGUgcG93ZXIgZG9tYWluIG1vZGlmaWNhdGlvbi4gIFRvIGVuYWJsZSB0aGlzLCBwbGVhc2Ugc2V0IHRoZQotIyBhcHByb3ByaWF0ZSB2YXJpYWJsZXMgaW4gdGhlIGxwX2NvbmZpZy50Y2wgYW5kIHVuY29tbWVudCB0aGUgZm9sbG93aW5nIGNvbW1hbmQKLSMKLQotIwlmZl9tb2RpZnlfcG93ZXJfZG9tYWlucwotICAgIAotIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIyBQb3dlciBzd2l0Y2ggaW5zZXJ0aW9uCi0jIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0jIFRoZSAnYWRkX3Bvd2VyX3N3aXRjaGVzJyBwcm9jZWR1cmUgaXMgaW5jbHVkZWQgd2l0aCB0aGUgZm91bmRhdGlvbiBmbG93cwotIyB0byBjb3ZlciBjb21tb24gcG93ZXIgc3dpdGNoIGluc2VydGlvbiBzY2VuYXJpb3MuICBUbyB1c2UsIHNldCB0aGUgYXBwcm9wcmlhdGUKLSMgdmFyaWFibGVzIGluIHRoZSBscF9jb25maWcudGNsIGZpbGUgYW5kIHVuY29tbWVudCB0aGUgZm9sbG93aW5nIGNvbW1hbmQuCi0jIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0jIE5PVEU6IFRoaXMgcHJvY2VkdXJlICB3aWxsIE5PVCBDT1ZFUiBUSEUgQUxMIFRIRSBPUFRJT05TIGluIGFkZFBvd2VyU3dpdGNoCi0jIEZvciBtb3JlIGNvbXBsaWNhdGVkIHNjZW5hcmlvcywgcGxlYXNlIG1hbnVhbGx5IGFkZCB0aGUgYWRkUG93ZXJTd2l0Y2ggY29tbWFuZAotIyBoZXJlIHdpdGggdGhlIG5lY2Vzc2FyeSBvcHRpb25zLgotIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotCi0jCWZmX2FkZF9wb3dlcl9zd2l0Y2hlcwotCi19Ci0KLSMgRmxvb3JwbGFuIChmcm9tIGxvbmcgdGltZSBhZ28gaW4gYSBnYWxheHkgZmFyLCBmYXIgYXdheSkKLWZsb29ycGxhbiAtciAxLjAgMC42MCA0MCA0MCA0MCA0MCAKLQotIyBNYWtlIFZERC9WU1MgcG93ZXIgY29ubmVjdG9ycwotZ2xvYmFsTmV0Q29ubmVjdCBWU1MgLXR5cGUgcGdwaW4gLXBpbiBnbmQgLWluc3QgKiAKLWdsb2JhbE5ldENvbm5lY3QgVkREIC10eXBlIHBncGluIC1waW4gdmRkIC1pbnN0ICogCi0jIE5vdCBzdXJlIEkgbmVlZCB0aGlzCi0jZ2xvYmFsTmV0Q29ubmVjdCBWREQg4oCTdHlwZSB0aWVoaQotI2dsb2JhbE5ldENvbm5lY3QgVlNTIOKAk3R5cGUgdGllbG8KLQotIyBBZGQgUmluZwotc2V0QWRkUmluZ01vZGUgLXJpbmdfdGFyZ2V0IGRlZmF1bHQgLWV4dGVuZF9vdmVyX3JvdyAwIC1pZ25vcmVfcm93cyAwIC1hdm9pZF9zaG9ydCAwIC1za2lwX2Nyb3NzaW5nX3RydW5rcyBub25lIC1zdGFja2VkX3ZpYV90b3BfbGF5ZXIgbWV0MiAtc3RhY2tlZF92aWFfYm90dG9tX2xheWVyIG1ldDEgLXZpYV91c2luZ19leGFjdF9jcm9zc292ZXJfc2l6ZSAxIC1vcnRob2dvbmFsX29ubHkgdHJ1ZSAtc2tpcF92aWFfb25fcGluIHsgIHN0YW5kYXJkY2VsbCB9IC1za2lwX3ZpYV9vbl93aXJlX3NoYXBlIHsgIG5vc2hhcGUgfQotYWRkUmluZyAtbmV0cyB7VkREIFZTU30gLXR5cGUgY29yZV9yaW5ncyAtZm9sbG93IGNvcmUgLWxheWVyIHt0b3AgbWV0MSBib3R0b20gbWV0MSBsZWZ0IG1ldDIgcmlnaHQgbWV0Mn0gLXdpZHRoIHt0b3AgMTQuNCBib3R0b20gMTQuNCBsZWZ0IDE0LjQgcmlnaHQgMTQuNH0gLXNwYWNpbmcge3RvcCAxLjggYm90dG9tIDEuOCBsZWZ0IDEuOCByaWdodCAxLjh9IC1vZmZzZXQge3RvcCAxLjggYm90dG9tIDEuOCBsZWZ0IDEuOCByaWdodCAxLjh9IC1jZW50ZXIgMCAtZXh0ZW5kX2Nvcm5lciB7fSAtdGhyZXNob2xkIDAgLWpvZ19kaXN0YW5jZSAwIC1zbmFwX3dpcmVfY2VudGVyX3RvX2dyaWQgTm9uZQotCi0jIyMjU29tZSBzZXR0aW5ncyBmb3IgcG93ZXIgZ3JpZDoKLXNldCB2YXJzKGxheWVycykgIjAgMSIKLSMgTEkxCi1zZXQgdmFycygxLHdpZHRoKSAwLjYxCi1zZXQgdmFycygxLHNwYWNlKSA0Ljk0Ci1zZXQgdmFycygxLHBpdGNoKSAxMS4xMAotc2V0IHZhcnMoMSxkaXJlY3Rpb24pIGhvcml6b250YWwKLXNldCB2YXJzKDEsYm90dG9tX3ZpYV9sYXllcikgMAotc2V0IHZhcnMoMSxvZmZzZXQpIC0wLjE1MjUKLSMgTTEKLXNldCB2YXJzKDAsd2lkdGgpIDAuNjEKLXNldCB2YXJzKDAsc3BhY2UpIDQuOTQKLXNldCB2YXJzKDAscGl0Y2gpIDExLjEwCi1zZXQgdmFycygwLGRpcmVjdGlvbikgaG9yaXpvbnRhbAotc2V0IHZhcnMoMCxib3R0b21fdmlhX2xheWVyKSAwCi1zZXQgdmFycygwLG9mZnNldCkgLTAuMTUyNQotCi0KLWZvcmVhY2ggbGF5ZXIgJHZhcnMobGF5ZXJzKSB7Ci0gICAgc2V0IHNwMSAkdmFycygkbGF5ZXIsc3BhY2UpCi0gICAgc2V0IHNwMiAkdmFycygkbGF5ZXIsc3BhY2UpCi0gICAgaWYgeyR2YXJzKCRsYXllcixkaXJlY3Rpb24pPT0gInZlcnRpY2FsIn0gewotICAgIHNldCBzdGFydF9lZGdlIGxlZnQKLSAgICB9IGVsc2UgewotICAgIHNldCBzdGFydF9lZGdlIGJvdHRvbQotICAgIH0KLSAgICBzZXRBZGRTdHJpcGVNb2RlIC1zdGFja2VkX3ZpYV90b3BfbGF5ZXIgJGxheWVyIC1zdGFja2VkX3ZpYV9ib3R0b21fbGF5ZXIgJHZhcnMoJGxheWVyLGJvdHRvbV92aWFfbGF5ZXIpIC1icmVha19hdCBub25lIC1vcnRob2dvbmFsX29ubHkgZmFsc2UKLSAgICAjIGFkZCBzdHJpcGUgY29tbWFuZAotICAgICAgICBhZGRTdHJpcGUgXAotICAgICAgICAtbGF5ZXIgJGxheWVyIFwKLSAgICAgICAgLXdpZHRoICR2YXJzKCRsYXllcix3aWR0aCkgXAotICAgICAgICAtc3BhY2luZyBbbGlzdCAkc3AxICRzcDJdIFwKLSAgICAgICAgLXNldF90b19zZXRfZGlzdGFuY2UgJHZhcnMoJGxheWVyLHBpdGNoKSBcCi0gICAgICAgIC1zdGFydF9vZmZzZXQgW2V4cHIgJHZhcnMoJGxheWVyLG9mZnNldCkqMl0gXAotICAgICAgICAtZGlyZWN0aW9uICR2YXJzKCRsYXllcixkaXJlY3Rpb24pIFwKLSAgICAgICAgLXN0YXJ0X2Zyb20gJHN0YXJ0X2VkZ2UgXAotICAgICAgICAtbmV0cyB7VkREIFZTU30KLX0KLQotIyBDb25uZWN0IHRvIHBvd2VyCi1zZXRTcm91dGVNb2RlIC12aWFDb25uZWN0VG9TaGFwZSB7IG5vc2hhcGUgfQotc3JvdXRlIC1jb25uZWN0IHsgYmxvY2tQaW4gcGFkUGluIHBhZFJpbmcgY29yZVBpbiBmbG9hdGluZ1N0cmlwZSB9IC1sYXllckNoYW5nZVJhbmdlIHsgbWV0NSg1KSBtZXQxKDEpIH0gLWJsb2NrUGluVGFyZ2V0IHsgbmVhcmVzdFRhcmdldCB9IC1wYWRQaW5Qb3J0Q29ubmVjdCB7IGFsbFBvcnQgb25lR2VvbSB9IC1wYWRQaW5UYXJnZXQgeyBuZWFyZXN0VGFyZ2V0IH0gLWNvcmVQaW5UYXJnZXQgeyBmaXJzdEFmdGVyUm93RW5kIH0gLWZsb2F0aW5nU3RyaXBlVGFyZ2V0IHsgYmxvY2tyaW5nIHBhZHJpbmcgcmluZyBzdHJpcGUgcmluZ3BpbiBibG9ja3BpbiBmb2xsb3dwaW4gfSAtYWxsb3dKb2dnaW5nIDEgLWNyb3Nzb3ZlclZpYUxheWVyUmFuZ2UgeyBtZXQxKDEpIG1ldDUoNSkgfSAtbmV0cyB7IFZERCBWU1MgfSAtYWxsb3dMYXllckNoYW5nZSAxIC1ibG9ja1BpbiB1c2VMZWYgLXRhcmdldFZpYUxheWVyUmFuZ2UgeyBtZXQxKDEpIG1ldDUoNSkgfQotCmRpZmYgLS1naXQgYS9mbG93L3Buci9QTFVHL0lOTk9WVVMvcG9zdF9wbGFjZS50Y2wgYi9mbG93L3Buci9QTFVHL0lOTk9WVVMvcG9zdF9wbGFjZS50Y2wKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IGJmODhiNDQuLjAwMDAwMDAKLS0tIGEvZmxvdy9wbnIvUExVRy9JTk5PVlVTL3Bvc3RfcGxhY2UudGNsCisrKyAvZGV2L251bGwKQEAgLTEsMjggKzAsMCBAQAotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSMgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBPU1QtUExBQ0UgUExVRy1JTgotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSMKLSMgVGhpcyBwbHVnLWluIHNjcmlwdCBpcyBjYWxsZWQgYWZ0ZXIgcGxhY2VEZXNpZ24gZnJvbSB0aGUgcnVuX3BsYWNlLnRjbCBzY3JpcHQuCi0jCi0jIEV4YW1wbGUgdGFza3MgaW5jbHVkZToKLSMgICAgICAgICAgLSBzdGFuZGFyZCBjZWxsIHJhaWwgY3JlYXRpb24gCi0jCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotIyAKLSMgU3RhbmRhcmQgY2VsbCByYWlsIGNyZWF0aW9uIGZvciBwb3dlciBkb21haW5zIGlmIHRoZXkgYXJlIGNyZWF0ZWQvbW9kaWZpZWQKLSMgZHVyaW5nIHRoZSBmbG93Ci0jIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0KLSNzcm91dGUgXAotIyAgIC1ub0Jsb2NrUGlucyBcCi0jICAgLW5vUGFkUmluZ3MgXAotIyAgIC1ub1BhZFBpbnMgXAotIyAgIC1ub1N0cmlwZXMgXAotIyAgIC1zdHJhaWdodENvbm5lY3Rpb25zIHsgc3RyYWlnaHRXaXRoRHJjQ2xlYW4gc3RyYWlnaHRXaXRoQ2hhbmdlcyB9IFwKLSMgICAtbmV0cyB7IDxwL2cgbmV0cz4gfSBcCi0jICAgLXBvd2VyRG9tYWlucyB7IDxwb3dlciBkb21haW4+IH0gIFwKLSMgICAtdGFyZ2V0VmlhVG9wTGF5ZXIgPGxheWVyPiBcCi0jICAgLWNyb3Nzb3ZlclZpYVRvcExheWVyIDxsYXllcj4gXAotIyAgIC12ZXJib3NlCi0KLWNoZWNrUGxhY2UKZGlmZiAtLWdpdCBhL2Zsb3cvcG5yL1BMVUcvSU5OT1ZVUy9wb3N0X3Bvc3RjdHMudGNsIGIvZmxvdy9wbnIvUExVRy9JTk5PVlVTL3Bvc3RfcG9zdGN0cy50Y2wKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDJhMDY4MGIuLjAwMDAwMDAKLS0tIGEvZmxvdy9wbnIvUExVRy9JTk5PVlVTL3Bvc3RfcG9zdGN0cy50Y2wKKysrIC9kZXYvbnVsbApAQCAtMSw4ICswLDAgQEAKLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSMgICAgICAgICAgICAgICAgICAgICAgICAgICBQT1NULVBPU1RfQ1RTIFBMVUctSU4gCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0jCi0jIFRoaXMgcGx1Zy1pbiBzY3JpcHQgaXMgY2FsbGVkIGFmdGVyIG9wdERlc2lnbiAtcG9zdENUUyBvcHRpbWl6YXRpb24gZnJvbSAKLSMgdGhlIHJ1bl9wb3N0Y3RzLnRjbCBzY3JpcHQuCi0jCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCmRpZmYgLS1naXQgYS9mbG93L3Buci9QTFVHL0lOTk9WVVMvcG9zdF9wb3N0Y3RzX2hvbGQudGNsIGIvZmxvdy9wbnIvUExVRy9JTk5PVlVTL3Bvc3RfcG9zdGN0c19ob2xkLnRjbApkZWxldGVkIGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggNzMwYzM4Ni4uMDAwMDAwMAotLS0gYS9mbG93L3Buci9QTFVHL0lOTk9WVVMvcG9zdF9wb3N0Y3RzX2hvbGQudGNsCisrKyAvZGV2L251bGwKQEAgLTEsOCArMCwwIEBACi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0jICAgICAgICAgICAgICAgICAgICAgICAgICAgUE9TVC1QT1NUX0NUU19IT0xEIFBMVUctSU4gCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0jCi0jIFRoaXMgcGx1Zy1pbiBzY3JpcHQgaXMgY2FsbGVkIGFmdGVyIG9wdERlc2lnbiAtcG9zdEN0cyAtaG9sZCBmcm9tIHRoZQotIyBydW5fcG9zdGN0c19ob2xkLnRjbCBzY3JpcHQuCi0jCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCmRpZmYgLS1naXQgYS9mbG93L3Buci9QTFVHL0lOTk9WVVMvcG9zdF9wb3N0cm91dGUudGNsIGIvZmxvdy9wbnIvUExVRy9JTk5PVlVTL3Bvc3RfcG9zdHJvdXRlLnRjbApkZWxldGVkIGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggZmVhYTViZS4uMDAwMDAwMAotLS0gYS9mbG93L3Buci9QTFVHL0lOTk9WVVMvcG9zdF9wb3N0cm91dGUudGNsCisrKyAvZGV2L251bGwKQEAgLTEsOSArMCwwIEBACi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0jICAgICAgICAgICAgICAgICAgICAgICAgICBQT1NULVBPU1RfUk9VVEUgUExVRy1JTiAKLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSMKLSMgVGhpcyBwbHVnLWluIHNjcmlwdCBpcyBjYWxsZWQgYWZ0ZXIgb3B0RGVzaWduIC1wb3N0Um91dGUgZnJvbSB0aGUgCi0jIHJ1bl9wb3N0cm91dGUudGNsIHNjcmlwdC4KLSMKLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLQpkaWZmIC0tZ2l0IGEvZmxvdy9wbnIvUExVRy9JTk5PVlVTL3Bvc3RfcG9zdHJvdXRlX2hvbGQudGNsIGIvZmxvdy9wbnIvUExVRy9JTk5PVlVTL3Bvc3RfcG9zdHJvdXRlX2hvbGQudGNsCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDc1NQppbmRleCA4MDczMWJkLi4wMDAwMDAwCi0tLSBhL2Zsb3cvcG5yL1BMVUcvSU5OT1ZVUy9wb3N0X3Bvc3Ryb3V0ZV9ob2xkLnRjbAorKysgL2Rldi9udWxsCkBAIC0xLDkgKzAsMCBAQAotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotIyAgICAgICAgICAgICAgICAgICAgICAgICBQT1NULVBPU1RfUk9VVEVfSE9MRCBQTFVHLUlOIAotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotIwotIyBUaGlzIHBsdWctaW4gc2NyaXB0IGlzIGNhbGxlZCBhZnRlciBvcHREZXNpZ24gLXBvc3RSb3V0ZSAtaG9sZCBmcm9tIHRoZQotIyBydW5fcG9zdHJvdXRlX2hvbGQudGNsIHNjcmlwdC4KLSMKLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLQpkaWZmIC0tZ2l0IGEvZmxvdy9wbnIvUExVRy9JTk5PVlVTL3Bvc3RfcG9zdHJvdXRlX3NpLnRjbCBiL2Zsb3cvcG5yL1BMVUcvSU5OT1ZVUy9wb3N0X3Bvc3Ryb3V0ZV9zaS50Y2wKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDM4MTk2NmIuLjAwMDAwMDAKLS0tIGEvZmxvdy9wbnIvUExVRy9JTk5PVlVTL3Bvc3RfcG9zdHJvdXRlX3NpLnRjbAorKysgL2Rldi9udWxsCkBAIC0xLDkgKzAsMCBAQAotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotIyAgICAgICAgICAgICAgICAgICAgICAgICAgUE9TVC1QT1NUX1JPVVRFX1NJIFBMVUctSU4gCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0jCi0jIFRoaXMgcGx1Zy1pbiBzY3JpcHQgaXMgY2FsbGVkIGFmdGVyIG9wdERlc2lnbiAtcG9zdFJvdXRlIC1zaSBmcm9tIHRoZQotIyBydW5fcG9zdHJvdXRlX3NpLnRjbCBzY3JpcHQuCi0jCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0KZGlmZiAtLWdpdCBhL2Zsb3cvcG5yL1BMVUcvSU5OT1ZVUy9wb3N0X3Bvc3Ryb3V0ZV9zaV9ob2xkLnRjbCBiL2Zsb3cvcG5yL1BMVUcvSU5OT1ZVUy9wb3N0X3Bvc3Ryb3V0ZV9zaV9ob2xkLnRjbApkZWxldGVkIGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMmIxOTllMC4uMDAwMDAwMAotLS0gYS9mbG93L3Buci9QTFVHL0lOTk9WVVMvcG9zdF9wb3N0cm91dGVfc2lfaG9sZC50Y2wKKysrIC9kZXYvbnVsbApAQCAtMSw5ICswLDAgQEAKLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSMgICAgICAgICAgICAgICAgICAgICAgIFBPU1QtUE9TVF9ST1VURV9TSV9IT0xEIFBMVUctSU4gCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0jCi0jIFRoaXMgcGx1Zy1pbiBzY3JpcHQgaXMgY2FsbGVkIGFmdGVyIG9wdERlc2lnbiAtcG9zdFJvdXRlIC1ob2xkIC1zaSBmcm9tIHRoZQotIyBydW5fcG9zdHJvdXRlX3NpX2hvbGQudGNsIHNjcmlwdCAuLi4KLSMKLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLQpkaWZmIC0tZ2l0IGEvZmxvdy9wbnIvUExVRy9JTk5PVlVTL3Bvc3RfcHJlY3RzLnRjbCBiL2Zsb3cvcG5yL1BMVUcvSU5OT1ZVUy9wb3N0X3ByZWN0cy50Y2wKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IGRhNDUyMDYuLjAwMDAwMDAKLS0tIGEvZmxvdy9wbnIvUExVRy9JTk5PVlVTL3Bvc3RfcHJlY3RzLnRjbAorKysgL2Rldi9udWxsCkBAIC0xLDQ3ICswLDAgQEAKLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSMgICAgICAgICAgICAgICAgICAgICAgUE9TVC1QUkVfQ1RTIFBMVUctSU4gCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0jCi0jIFRoaXMgcGx1Zy1pbiBpcyBjYWxsZWQgYWZ0ZXIgb3B0RGVzaWduIC1wcmVDVFMgZnJvbSB0aGUgcnVuX3ByZWN0cy50Y2wgZmxvdwotIyBzY3JpcHQuICBUaGUgdXNlciBjYW4gdXNlIHRoaXMgcGx1Zy1pbiBmb3I6Ci0jCi0jIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0jICAgICAtIFNlY29uZGFyeSBwb3dlciBwaW4gcm91dGluZyBmb3IgbG93IHBvd2VyIGNlbGxzIAotIyAgICAgICAgLSBTdGF0ZSByZXRlbnRpb24gZmxvcHMKLSMgICAgICAgIC0gQWx3YXlzLW9uLWJ1ZmZlcnMKLSMgICAgICAgIC0gTGV2ZWwtc2hpZnRlcnMKLSMgICAgIC0gQ2hlY2sgdGhlIGNvbm5lY3Rpdml0eSBhbmQgZ2VvbWV0cnkgb24gdGhlc2UgbmV0cwotIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIyBCZWxvdyBhcmUgc29tZSBleGFtcGxlIGNvbW1hbmRzIC4uLgotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0KLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotIyBTZWNvbmRhcnkgcG93ZXIgcm91dGluZyBmb3IgU1JQRy9BT04vTFZMIGNlbGxzIHVzaW5nIG5hbm9yb3V0ZSAuLi4KLSMgLi4uIGl0IHJlcXVpcmVzIHZhcnMoc2Vjb25kYXJ5X3BnLGNlbGxfcGluX3BhaXJzKSB0byBiZSBkZWZpbmVkCi0jIC4uLiBpbiB0aGUgT1ZFUkxBWS9scF9jb25maWcudGNsCi0jIE5PVEU6IEluIHRoZSBlYXJseSBzdGFnZSBvZiB0aGUgZmxvdyAoYmVmb3JlIENUUykgaWYgdXNlciB3YW50cyB0byBlc3RpbWF0ZSB0aGUKLSMgcm91dGluZyByZXNvdXJjZSBpbXBhY3QgZHVlIHRvIHNlY29uZGFyeSBwZyBwaW4gcm91dGluZywgaGUgY2FuIGRvIHNlY29uZGFyeSBwZyBwaW4KLSMgY29ubmVjdGlvbiBiZWZvcmUgQ1RTIE9SIGlmIHVzZXIgZW5hYmxlcyAidmFycyhyb3V0ZV9zZWNvbmRhcnlfcGdfbmV0cykiIGFzIHRydWUgaW4KLSMgT1ZFUkxBWS9scF9jb25maWcudGNsIHRoZW4gc2FtZSB3b3VsZCBiZSBkb25lIGJlZm9yZSB0aGUgcm91dGluZyBzdGFnZSBhbHNvLgotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0jZmZfcm91dGVfc2Vjb25kYXJ5X3BnX25ldHMKLQotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0jIyBDaGVjayBmb3IgR2VvbWV0cnkgYW5kIGNvbm5lY3Rpdml0eSB2aW9sYXRpb25zIG9uIHBvd2VyIG5ldHMKLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotI2NsZWFyRHJjCi0KLSN2ZXJpZnlDb25uZWN0aXZpdHkgXAotIyAgIC10eXBlIHNwZWNpYWwgXAotIyAgIC1ub0FudGVubmEgXAotIyAgIC1uZXRzIHsgVlNTIFZERCB9IFwKLSMgICAtcmVwb3J0ICR2YXJzKHJwdF9kaXIpLyR2YXJzKGRlc2lnbikuY29ubi5ycHQKLQotI3ZlcmlmeUdlb21ldHJ5IFwKLSMgICAtYWxsb3dQYWRGaWxsZXJDZWxsc092ZXJsYXAgXAotIyAgIC1hbGxvd1JvdXRpbmdCbGtnUGluT3ZlcmxhcCBcCi0jICAgLWFsbG93Um91dGluZ0NlbGxCbGtnT3ZlcmxhcCBcCi0jICAgLWVycm9yIDEwMDAgXAotIyAgIC1yZXBvcnQgJHZhcnMocnB0X2RpcikvJHZhcnMoZGVzaWduKS5nZW9tLnJwdAotCi0jY2xlYXJEcmMKZGlmZiAtLWdpdCBhL2Zsb3cvcG5yL1BMVUcvSU5OT1ZVUy9wb3N0X3JvdXRlLnRjbCBiL2Zsb3cvcG5yL1BMVUcvSU5OT1ZVUy9wb3N0X3JvdXRlLnRjbApkZWxldGVkIGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggNTMwOTVjYy4uMDAwMDAwMAotLS0gYS9mbG93L3Buci9QTFVHL0lOTk9WVVMvcG9zdF9yb3V0ZS50Y2wKKysrIC9kZXYvbnVsbApAQCAtMSwyMiArMCwwIEBACi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0jICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUE9TVC1ST1VURSBQTFVHLUlOIAotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotIwotIyBUaGlzIHBsdWctaW4gc2NyaXB0IGlzIGNhbGxlZCBhZnRlciByb3V0ZURlc2lnbiBmcm9tIHRoZSBydW5fcm91dGUudGNsIGZsb3cgc2NyaXB0LgotIwotIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIyBFeGFtcGxlIHVzYWdlIG1heSBiZSBwb3dlciBzd2l0Y2ggb3B0aW1pemF0aW9uOgotIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotCi0jc2V0IHZhcnMoc3dpdGNoX2NlbGxfZmlsZSkgJHZhcnMoZGF0YV9yb290KS9wb3dlcl9zd2l0Y2hfY2VsbC50eHQKLSNzZXQgdmFycyhzd2l0Y2hfY2VsbF9pcl9kcm9wKSAwLjEKLQotI29wdFBvd2VyU3dpdGNoIC1yZWFkUG93ZXJTd2l0Y2hDZWxsICR2YXJzKHN3aXRjaF9jZWxsX2ZpbGUpIFwKLSMgICAgICAgICAgICAgICAtZWZmb3J0IGhpZ2ggXAotIyAgICAgICAgICAgICAgIC1jb21taXQgMSBcCi0jICAgICAgICAgICAgICAgLW1heFN3aXRjaElSRHJvcCAkdmFycyhzd2l0Y2hfY2VsbF9pcl9kcm9wKSBcCi0jICAgICAgICAgICAgICAgLXJlcG9ydEZpbGUgJHZhcnMocnB0X2RpcikvZGVsZXRlZF9zd2l0Y2hfY2VsbHMudHh0Ci0KLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLQotCmRpZmYgLS1naXQgYS9mbG93L3Buci9QTFVHL0lOTk9WVVMvcG9zdF9zaWdub2ZmLnRjbCBiL2Zsb3cvcG5yL1BMVUcvSU5OT1ZVUy9wb3N0X3NpZ25vZmYudGNsCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAyMTI3NzU3Li4wMDAwMDAwCi0tLSBhL2Zsb3cvcG5yL1BMVUcvSU5OT1ZVUy9wb3N0X3NpZ25vZmYudGNsCisrKyAvZGV2L251bGwKQEAgLTEsMTAgKzAsMCBAQAotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotIyAgICAgICAgICAgICAgICAgICAgICAgICAgIFBPU1QtU0lHTk9GRiBQTFVHLUlOIAotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotIwotIyBUaGlzIHBsdWctaW4gc2NyaXB0IGlzIGNhbGxlZCBhZnRlciB0aW1lRGVzaWduIC1zaWdub2ZmIGZyb20gdGhlIHJ1bl9zaWdub2ZmLnRjbCAKLSMgZmxvdyBzY3JpcHQuCi0jCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0KLXNvdXJjZSB0YXBlb3V0LnRjbApkaWZmIC0tZ2l0IGEvZmxvdy9wbnIvUExVRy9JTk5PVlVTL3ByZV9jdHMudGNsIGIvZmxvdy9wbnIvUExVRy9JTk5PVlVTL3ByZV9jdHMudGNsCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDc1NQppbmRleCA3OThhYjQzLi4wMDAwMDAwCi0tLSBhL2Zsb3cvcG5yL1BMVUcvSU5OT1ZVUy9wcmVfY3RzLnRjbAorKysgL2Rldi9udWxsCkBAIC0xLDIyICswLDAgQEAKLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQUkVfQ1RTIFBMVUctSU4gCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0jCi0jIFRoaXMgcGx1Zy1pbiBzY3JpcHQgaXMgY2FsbGVkIGJlZm9yZSBjbG9ja0Rlc2lnbiBmcm9tIHRoZSBydW5fY3RzLnRjbCBmbG93IHNjcmlwdC4KLSMKLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLQotI3NldENUU01vZGUgLXRvcFByZWZlcnJlZExheWVyIDcgXAotIyAgICAgICAgICAgLWJvdHRvbVByZWZlcnJlZExheWVyIDMgIFwKLSMgICAgICAgICAgIC1wcmVmZXJyZWRFeHRyYVNwYWNlIDIKLSMgZm9yIDMgbWV0YWwgTEVGCi1jcmVhdGVfcm91dGVfdHlwZSAtYm90dG9tX3ByZWZlcnJlZF9sYXllciAxIC1uYW1lIE1FVDEKLWNyZWF0ZV9yb3V0ZV90eXBlIC10b3BfcHJlZmVycmVkX2xheWVyIDUgLW5hbWUgTUVUNQotc2V0X2Njb3B0X3Byb3BlcnR5IHJvdXRlX3R5cGUgTUVUMQotc2V0X2Njb3B0X3Byb3BlcnR5IHJvdXRlX3R5cGUgTUVUNQotc2V0Q1RTTW9kZSAtcm91dGVCb3R0b21QcmVmZXJyZWRMYXllciAxIC1yb3V0ZUxlYWZCb3R0b21QcmVmZXJyZWRMYXllciAxIC1yb3V0ZVRvcFByZWZlcnJlZExheWVyIDUgLXJvdXRlTGVhZlRvcFByZWZlcnJlZExheWVyIDUKLQotCi1zZXRfaW50ZXJhY3RpdmVfY29uc3RyYWludF9tb2RlcyBzZXR1cF9mdW5jX21vZGUKLQotI2NyZWF0ZV9jbG9jayAtbmFtZSBjbGsgLXBlcmlvZCAyLjgKZGlmZiAtLWdpdCBhL2Zsb3cvcG5yL1BMVUcvSU5OT1ZVUy9wcmVfaW5pdC50Y2wgYi9mbG93L3Buci9QTFVHL0lOTk9WVVMvcHJlX2luaXQudGNsCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDc1NQppbmRleCA1ZjJjZmE5Li4wMDAwMDAwCi0tLSBhL2Zsb3cvcG5yL1BMVUcvSU5OT1ZVUy9wcmVfaW5pdC50Y2wKKysrIC9kZXYvbnVsbApAQCAtMSwxNCArMCwwIEBACi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSMgICAgICAgICAgICAgICAgICAgICAgICAgICBQUkUtSU5JVCBQTFVHLUlOCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSMKLSMgVGhpcyBwbHVnLWluIHNjcmlwdCBpcyBjYWxsZWQgYmVmb3JlIGluaXRpYWxpemluZyB0aGUgZGVzaWduIGRhdGFiYXNlIGZyb20gdGhlCi0jIHJ1bl9pbml0LnRjbCBmbG93IHNjcmlwdC4KLSMKLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotIwotIyBFeDogQmVsb3cgY29tbWFuZCB1c2VkIGZvciBpbnNlcnRpbmcgYnVmZmVycyBvbiB0aWUtaGlnaC90aWUtbG93IGFzc2lnbiBzdGF0ZW1lbnRzCi0jCi0jLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSMKLSNzZXRJbXBvcnRNb2RlIC1idWZmZXJUaWVBc3NpZ24gJHZhcnMoYnVmZmVyX3RpZV9hc3NpZ24pCmRpZmYgLS1naXQgYS9mbG93L3Buci9QTFVHL0lOTk9WVVMvcHJlX3BhcnRpdGlvbi50Y2wgYi9mbG93L3Buci9QTFVHL0lOTk9WVVMvcHJlX3BhcnRpdGlvbi50Y2wKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IGUzYmExY2UuLjAwMDAwMDAKLS0tIGEvZmxvdy9wbnIvUExVRy9JTk5PVlVTL3ByZV9wYXJ0aXRpb24udGNsCisrKyAvZGV2L251bGwKQEAgLTEsMzUgKzAsMCBAQAotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0jICAgICAgICAgICAgICAgICAgICAgICAgICBQUkUtQVNTRU1CTEUgUExVRy1JTgotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0jCi0jIFRoaXMgcGx1Zy1pbiBzY3JpcHQgaXMgY2FsbGVkIGJlZm9yZSBwcmlvciB0aGUgYXNzZW1ibGVfZGVzaWduIGZyb20gdGhlCi0jIHJ1bl9hc3NlbWJsZS50Y2wgZmxvdyBzY3JpcHQuCi0jCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSMKLSMgQXNzaWduIHBhcnRpdGlvbiBwaW5zCi0jIFNldCBwaW4tcGxhY2VtZW50IHBhcmFtZXRlcnMgZm9yIHBpbi1hc3NpZ25tZW50OgotIyAgICAgLSBwaW5EZXB0aCwgdG8gYXZvaWQgbWluLWFyZWEgdmlvbGF0aW9ucyB3aGVuIAotIyAgICAgICAgRFJDIGlzIHJ1biBhdCB0aGUgcGFydGl0aW9uLWxldmVsCi0jICAgICAtIHBpblBpdGNoIGFuZCBwaW4tbGF5ZXJzIHNldCB0byBzaW5nbGUgbGF5ZXIgCi0jICAgICAgIGZvciBlYWNoIHNpZGUgKFQvQi9ML1IpCi0jIEZpeCB0aGUgcGluIGxvY2F0aW9ucyBhZnRlciBhc3NpZ25tZW50Ci0jCi0jIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0jCi0jZm9yZWFjaCBwdG4gJHZhcnMocGFydGl0aW9uX2xpc3QpIHsKLSMgIGZvcmVhY2ggbGF5ZXIgW2xpc3QgMiAzIDQgNV0gewotIyAgICAjIFNldHMgdGhlIHBpbiBkZXB0aCB0byAwLjR1bSB0byBzYXRzaWZ5IG1pbiBhcmVhIHJ1bGUKLSMgICAgc2V0TGF5ZXJQaW5EZXB0aCAtY2VsbCAkcHRuIC1sYXllciAkbGF5ZXIgLWRlcHRoIDAuNAotIyAgfQotIyAgIyBNNiBpcyB0aGljayBhbmQgcmVxdWlyZXMgYSBsYXJnZXIgYXJlYQotIyAgc2V0TGF5ZXJQaW5EZXB0aCAtY2VsbCAkcHRuIC1sYXllciA2IC1kZXB0aCAxLjUKLSMgIHNldE1pblBpblNwYWNpbmdPbkVkZ2UgLWNlbGwgJHB0biAtc3BhY2luZyAyCi0jCi0jICBzZXRBbGxvd2VkUGluTGF5ZXJzT25FZGdlIC1jZWxsICRwdG4gLWVkZ2UgVCAtbGF5ZXIgW2xpc3QgMiA0XQotIyAgc2V0QWxsb3dlZFBpbkxheWVyc09uRWRnZSAtY2VsbCAkcHRuIC1lZGdlIEIgLWxheWVyIFtsaXN0IDIgNF0KLSMgIHNldEFsbG93ZWRQaW5MYXllcnNPbkVkZ2UgLWNlbGwgJHB0biAtZWRnZSBMIC1sYXllciBbbGlzdCAzIDVdCi0jICBzZXRBbGxvd2VkUGluTGF5ZXJzT25FZGdlIC1jZWxsICRwdG4gLWVkZ2UgUiAtbGF5ZXIgW2xpc3QgMyA1XQotI30KLQotI2Fzc2lnblB0blBpbgpkaWZmIC0tZ2l0IGEvZmxvdy9wbnIvUExVRy9JTk5PVlVTL3ByZV9wbGFjZS50Y2wgYi9mbG93L3Buci9QTFVHL0lOTk9WVVMvcHJlX3BsYWNlLnRjbApkZWxldGVkIGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggZWY2NjBhNy4uMDAwMDAwMAotLS0gYS9mbG93L3Buci9QTFVHL0lOTk9WVVMvcHJlX3BsYWNlLnRjbAorKysgL2Rldi9udWxsCkBAIC0xLDE1ICswLDAgQEAKLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotIyAgICAgICAgICAgICAgICAgICAgICAgICAgUFJFLVBMQUNFIFBMVUctSU4KLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotIwotIyBUaGlzIHBsdWctaW4gc2NyaXB0IGlzIGNhbGxlZCBiZWZvcmUgcGxhY2VEZXNpZ24gZnJvbSB0aGUgcnVuX3BsYWNlLnRjbCBmbG93Ci0jIHNjcmlwdC4KLSMKLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotIyBFeGFtcGxlIHRhc2tzIGluY2x1ZGU6Ci0jICAgICAgICAgIC0gUG93ZXIgcGxhbm5pbmcgcmVsYXRlZCB0YXNrcyB3aGljaCBpbmNsdWRlcwotIyAgICAgICAgICAgIC0gUG93ZXIgcGxhbm5pbmcgZm9yIHBvd2VyIGRvbWFpbnMgKHJpbmcvc3RyYXAgY3JlYXRpb25zKQotIyAgICAgICAgICAgIC0gUG93ZXIgU2h1dC1vZmYgY2VsbCBwb3dlciBob29rdXAKLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi1zZXRDVFNNb2RlIC1ib3R0b21QcmVmZXJyZWRMYXllciAxIC10b3BQcmVmZXJyZWRMYXllciA1Ci0KZGlmZiAtLWdpdCBhL2Zsb3cvcG5yL1BMVUcvSU5OT1ZVUy9wcmVfcGxhY2VfY2hlY2tzLnRjbCBiL2Zsb3cvcG5yL1BMVUcvSU5OT1ZVUy9wcmVfcGxhY2VfY2hlY2tzLnRjbApkZWxldGVkIGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggODUwNzUyYy4uMDAwMDAwMAotLS0gYS9mbG93L3Buci9QTFVHL0lOTk9WVVMvcHJlX3BsYWNlX2NoZWNrcy50Y2wKKysrIC9kZXYvbnVsbApAQCAtMSw0NyArMCwwIEBACi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0jIHByZSBwbGFjZSBjaGVja3MKLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLQotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotIyBDaGVjayBERVNJR04KLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLWNoZWNrRGVzaWduIC1uZXRsaXN0IC1waHlzaWNhbExpYnJhcnkgLXRpbWluZ0xpYnJhcnkgLXBvd2VyR3JvdW5kIC1vdXREaXIgJHZhcnMocnB0X2RpcikKLXN1bW1hcnlSZXBvcnQgLW5vSHRtbCAtb3V0ZmlsZSAkdmFycyhycHRfZGlyKS8kdmFycyhkZXNpZ24pLnN1bW1hcnlSZXBvcnQucnB0Ci1yZXBvcnRHYXRlQ291bnQgLW1vZHVsZSAkdmFycyhkZXNpZ24pIC1zdGRDZWxsT25seSAtbGV2ZWwgMTAwIC1vdXRmaWxlICR2YXJzKHJwdF9kaXIpLyR2YXJzKGRlc2lnbikuc3RkZ2F0ZWNvdW50LnJwdAotcmVwb3J0R2F0ZUNvdW50IC1tb2R1bGUgJHZhcnMoZGVzaWduKSAtbGV2ZWwgMTAwIC1vdXRmaWxlICR2YXJzKHJwdF9kaXIpLyR2YXJzKGRlc2lnbikuZ2F0ZWNvdW50LnJwdAotcmVwb3J0TmV0U3RhdCAKLQotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSMgVGltaW5nIGxpYnJhcnkgY2hlY2tzCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotc2V0QW5hbHlzaXNNb2RlIC1jaGVja1R5cGUgc2V0dXAKLXJlcG9ydFBvd2VyRG9tYWluIC1maWxlICR2YXJzKHJwdF9kaXIpL3NldHVwX2xpYnMucnB0Ci1zZXRBbmFseXNpc01vZGUgLWNoZWNrVHlwZSBob2xkCi1yZXBvcnRQb3dlckRvbWFpbiAtZmlsZSAkdmFycyhycHRfZGlyKS9ob2xkX2xpYnMucnB0Ci1zZXRBbmFseXNpc01vZGUgLWNoZWNrVHlwZSBzZXR1cAotCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0jIFBvd2VyIGRvbWFpbiBjaGVja3MKLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLWZvcmVhY2ggUEQgJHZhcnMocG93ZXJfZG9tYWlucykgewotcmVwb3J0UG93ZXJEb21haW4gLXBvd2VyRG9tYWluICRQRCAtZmlsZSAkdmFycyhycHRfZGlyKS8kUEQucnB0IC1zaGlmdGVyIC1pc29JbnN0IC1wZ05ldCAtYmluZExpYgotfQotCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotIyBJc29sYXRpb24gY2hlY2tzCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotZm9yZWFjaCBQRCAkdmFycyhwb3dlcl9kb21haW5zKSB7Ci1yZXBvcnRJc29sYXRpb24gLWZyb21Qb3dlckRvbWFpbiAkUEQgLW91dGZpbGUgJHZhcnMocnB0X2RpcikvZnJvbV8kUERcX2lzby5ycHQgLWhpZ2hsaWdodAotfQotCi12ZXJpZnlQb3dlckRvbWFpbiAtZ2Nvbm4gLXhOZXRQRCAtaXNvTmV0UEQgLWJpbmQKLQotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSMgQ2hlY2sgdGltaW5nCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotc2V0X2dsb2JhbCByZXBvcnRfdGltaW5nX2Zvcm1hdCB7aW5zdGFuY2UgYXJjIGNlbGwgIG5ldCBmYW5vdXQgbG9hZCAgc2xldyBkZWxheSBpbmNyX2RlbGF5IGFycml2YWwgcmVxdWlyZWR9Ci1jaGVja190aW1pbmcgLXZlcmJvc2UgPiAkdmFycyhycHRfZGlyKS9jaGVja190aW1pbmcucnB0Ci0KLXRpbWVEZXNpZ24gLXByZVBsYWNlIC1leHBhbmRlZFZpZXdzIC1udW1QYXRocyAxMDAwIC1vdXREaXIgJHZhcnMocnB0X2RpcikKLQotcHV0cyAiIyMjIEVuZCBvZiBwcmUtcGxhY2UgY2hlY2tzIgpkaWZmIC0tZ2l0IGEvZmxvdy9wbnIvUExVRy9JTk5PVlVTL3ByZV9wb3N0Y3RzLnRjbCBiL2Zsb3cvcG5yL1BMVUcvSU5OT1ZVUy9wcmVfcG9zdGN0cy50Y2wKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IGExNGQ0YjQuLjAwMDAwMDAKLS0tIGEvZmxvdy9wbnIvUExVRy9JTk5PVlVTL3ByZV9wb3N0Y3RzLnRjbAorKysgL2Rldi9udWxsCkBAIC0xLDkgKzAsMCBAQAotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotIyAgICAgICAgICAgICAgICAgICAgICAgICAgIFBSRS1QT1NUX0NUUyBQTFVHLUlOIAotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotIwotIyBUaGlzIHBsdWctaW4gc2NyaXB0IGlzIGNhbGxlZCBiZWZvcmUgb3B0RGVzaWduIC1wb3N0Q1RTIGZpeGluZyBmcm9tIHRoZQotIyBydW5fcG9zdGN0cy50Y2wgZmxvdyBzY3JpcHQuCi0jCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0KZGlmZiAtLWdpdCBhL2Zsb3cvcG5yL1BMVUcvSU5OT1ZVUy9wcmVfcG9zdGN0c19ob2xkLnRjbCBiL2Zsb3cvcG5yL1BMVUcvSU5OT1ZVUy9wcmVfcG9zdGN0c19ob2xkLnRjbApkZWxldGVkIGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggOGNhN2NkOC4uMDAwMDAwMAotLS0gYS9mbG93L3Buci9QTFVHL0lOTk9WVVMvcHJlX3Bvc3RjdHNfaG9sZC50Y2wKKysrIC9kZXYvbnVsbApAQCAtMSw5ICswLDAgQEAKLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSMgICAgICAgICAgICAgICAgICAgICAgICAgICBQUkUtUE9TVF9DVFNfSE9MRCBQTFVHLUlOIAotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotIwotIyBUaGlzIHBsdWctaW4gc2NyaXB0IGlzIGNhbGxlZCBiZWZvcmUgb3B0RGVzaWduIC1wb3N0Q1RTIC1ob2xkIHRoZSBydW5fcG9zdGN0cy50Y2wgCi0jIGZsb3cgc2NyaXB0LgotIwotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCmRpZmYgLS1naXQgYS9mbG93L3Buci9QTFVHL0lOTk9WVVMvcHJlX3Bvc3Ryb3V0ZS50Y2wgYi9mbG93L3Buci9QTFVHL0lOTk9WVVMvcHJlX3Bvc3Ryb3V0ZS50Y2wKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IGI3M2ZkYTEuLjAwMDAwMDAKLS0tIGEvZmxvdy9wbnIvUExVRy9JTk5PVlVTL3ByZV9wb3N0cm91dGUudGNsCisrKyAvZGV2L251bGwKQEAgLTEsOSArMCwwIEBACi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0jICAgICAgICAgICAgICAgICAgICAgICAgICBQUkUtUE9TVF9ST1VURSBQTFVHLUlOIAotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotIwotIyBUaGlzIHBsdWctaW4gc2NyaXB0IGlzIGNhbGxlZCBiZWZvcmUgb3B0RGVzaWduIC1wb3N0Um91dGUgZnJvbSB0aGUgcnVuX3Bvc3Ryb3V0ZS50Y2wgCi0jIGZsb3cgc2NyaXB0LgotIwotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCmRpZmYgLS1naXQgYS9mbG93L3Buci9QTFVHL0lOTk9WVVMvcHJlX3Bvc3Ryb3V0ZV9ob2xkLnRjbCBiL2Zsb3cvcG5yL1BMVUcvSU5OT1ZVUy9wcmVfcG9zdHJvdXRlX2hvbGQudGNsCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDc1NQppbmRleCA1OGI1NjY5Li4wMDAwMDAwCi0tLSBhL2Zsb3cvcG5yL1BMVUcvSU5OT1ZVUy9wcmVfcG9zdHJvdXRlX2hvbGQudGNsCisrKyAvZGV2L251bGwKQEAgLTEsOSArMCwwIEBACi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0jICAgICAgICAgICAgICAgICAgICAgICAgICAgUFJFLVBPU1RfUk9VVEUgUExVRy1JTiAKLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSMKLSMgVGhpcyBwbHVnLWluIHNjcmlwdCBpcyBjYWxsZWQgYmVmb3JlIG9wdERlc2lnbiAtcG9zdFJvdXRlIC1ob2xkIGZyb20gdGhlIAotIyBydW5fcG9zdHJvdXRlX2hvbGQudGNsIGZsb3cgc2NyaXB0LgotIwotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCmRpZmYgLS1naXQgYS9mbG93L3Buci9QTFVHL0lOTk9WVVMvcHJlX3Bvc3Ryb3V0ZV9zaS50Y2wgYi9mbG93L3Buci9QTFVHL0lOTk9WVVMvcHJlX3Bvc3Ryb3V0ZV9zaS50Y2wKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IGM4Mzk1MTcuLjAwMDAwMDAKLS0tIGEvZmxvdy9wbnIvUExVRy9JTk5PVlVTL3ByZV9wb3N0cm91dGVfc2kudGNsCisrKyAvZGV2L251bGwKQEAgLTEsOSArMCwwIEBACi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0jICAgICAgICAgICAgICAgICAgICAgICAgICAgUFJFLVBPU1RfUk9VVEVfU0kgUExVRy1JTiAKLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSMKLSMgVGhpcyBwbHVnLWluIHNjcmlwdCBpcyBjYWxsZWQgYmVmb3JlIG9wdERlc2lnbiAtcG9zdFJvdXRlIC1zaSBmcm9tIHRoZSAKLSMgcnVuX3Bvc3Ryb3V0ZV9zaS50Y2wgZmxvdyBzY3JpcHQuCi0jCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0KZGlmZiAtLWdpdCBhL2Zsb3cvcG5yL1BMVUcvSU5OT1ZVUy9wcmVfcG9zdHJvdXRlX3NpX2hvbGQudGNsIGIvZmxvdy9wbnIvUExVRy9JTk5PVlVTL3ByZV9wb3N0cm91dGVfc2lfaG9sZC50Y2wKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IGMxMzFjZGQuLjAwMDAwMDAKLS0tIGEvZmxvdy9wbnIvUExVRy9JTk5PVlVTL3ByZV9wb3N0cm91dGVfc2lfaG9sZC50Y2wKKysrIC9kZXYvbnVsbApAQCAtMSw5ICswLDAgQEAKLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSMgICAgICAgICAgICAgICAgICAgICAgICAgUFJFLVBPU1RfUk9VVEVfU0lfSE9MRCBQTFVHLUlOIAotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotIwotIyBUaGlzIHBsdWctaW4gc2NyaXB0IGlzIGNhbGxlZCBiZWZvcmUgb3B0RGVzaWduIC1wb3N0Um91dGUgLWhvbGQgLXNpIGZyb20gdGhlIAotIyBydW5fcG9zdHJvdXRlX3NpX2hvbGQudGNsIGZsb3cgc2NyaXB0LgotIwotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCmRpZmYgLS1naXQgYS9mbG93L3Buci9QTFVHL0lOTk9WVVMvcHJlX3ByZWN0cy50Y2wgYi9mbG93L3Buci9QTFVHL0lOTk9WVVMvcHJlX3ByZWN0cy50Y2wKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IGEzODBmZDcuLjAwMDAwMDAKLS0tIGEvZmxvdy9wbnIvUExVRy9JTk5PVlVTL3ByZV9wcmVjdHMudGNsCisrKyAvZGV2L251bGwKQEAgLTEsMTcgKzAsMCBAQAotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotIyAgICAgICAgICAgICAgICAgICAgICAgICAgIFBSRS1QUkVfQ1RTIFBMVUctSU4gCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0jCi0jIFRoaXMgcGx1Zy1pbiBzY3JpcHQgaXMgY2FsbGVkIGJlZm9yZSBvcHREZXNpZ24gLXByZUNUUyBmcm9tIHRoZSBydW5fcHJlY3RzLnRjbCAKLSMgZmxvdyBzY3JpcHQuCi0jCi0jIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0jIEJ5IGRlZmF1bHQgU09DRSBkb2VzIGFsd2F5cy1vbi1uZXQgc3ludGhlc2lzIGZvciBTUlBHIGNvbnRyb2wgc2lnbmFsIGFuZCBQU08gZW5hYmxlCi0jIHNpZ25hbHMgYXMgcGFydCBvZiBvcHREZXNpZ24gLXByZUNUUywgYnV0IHRoaXMgY2FuIGJlIG1hbnVhbGx5IGRvbmUgZm9yIHNwZWNpZmljIG5ldHMgaWYKLSMgbmVjZXNzYXJ5LiAgVG8gZG8gdGhpcywgZGVmaW5lIHRoZSBhcHByb3ByaWF0ZSB2YXJpYWJsZXMgaW4gdGhlIGxwX2NvbmZpZy50Y2wgZmlsZQotIyBhbmQgdW5jb21tZW50IHRoZSBmb2xsb3dpbmcgY29tbWFuZAotIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotCi0jZmZfYnVmZmVyX2Fsd2F5c19vbl9uZXRzCi0KLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKZGlmZiAtLWdpdCBhL2Zsb3cvcG5yL1BMVUcvSU5OT1ZVUy9wcmVfcm91dGUudGNsIGIvZmxvdy9wbnIvUExVRy9JTk5PVlVTL3ByZV9yb3V0ZS50Y2wKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDA0MjZhYjIuLjAwMDAwMDAKLS0tIGEvZmxvdy9wbnIvUExVRy9JTk5PVlVTL3ByZV9yb3V0ZS50Y2wKKysrIC9kZXYvbnVsbApAQCAtMSw5ICswLDAgQEAKLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSMgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBSRS1ST1VURSBQTFVHLUlOIAotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotIwotIyBUaGlzIHBsdWctaW4gc2NyaXB0IGlzIGNhbGxlZCBiZWZvcmUgcm91dGVEZXNpZ24gZnJvbSB0aGUgcnVuX3JvdXRlLnRjbCBmbG93Ci0jIHNjcmlwdC4KLSMKLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLQpkaWZmIC0tZ2l0IGEvZmxvdy9wbnIvUExVRy9JTk5PVlVTL3ByZV9zaWdub2ZmLnRjbCBiL2Zsb3cvcG5yL1BMVUcvSU5OT1ZVUy9wcmVfc2lnbm9mZi50Y2wKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDEzNzkzYjQuLjAwMDAwMDAKLS0tIGEvZmxvdy9wbnIvUExVRy9JTk5PVlVTL3ByZV9zaWdub2ZmLnRjbAorKysgL2Rldi9udWxsCkBAIC0xLDkgKzAsMCBAQAotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotIyAgICAgICAgICAgICAgICAgICAgICAgICAgIFBSRS1QT1NUX1JPVVRFX1NJIFBMVUctSU4gCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0jCi0jIFRoaXMgcGx1Zy1pbiBzY3JpcHQgaXMgY2FsbGVkIGJlZm9yZSB0aW1lRGVzaWduIC1zaWdub2ZmIC1zaSBmcm9tIHRoZSAKLSMgcnVuX3NpZ25vZmYudGNsIGZsb3cgc2NyaXB0LgotIwotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCmRpZmYgLS1naXQgYS9mbG93L3Buci9SRUFETUUgYi9mbG93L3Buci9SRUFETUUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzA3NzE1YwotLS0gL2Rldi9udWxsCisrKyBiL2Zsb3cvcG5yL1JFQURNRQpAQCAtMCwwICsxIEBACitQblIgZmxvdyBjZW5zb3JlZCBkdWUgdG8gbGVnYWwgY29uY2VybnMKZGlmZiAtLWdpdCBhL2Zsb3cvcG5yL1JFQURNRS5JTk5PVlVTIGIvZmxvdy9wbnIvUkVBRE1FLklOTk9WVVMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDBiZjU3NDUuLjAwMDAwMDAKLS0tIGEvZmxvdy9wbnIvUkVBRE1FLklOTk9WVVMKKysrIC9kZXYvbnVsbApAQCAtMSw1OCArMCwwIEBACi0KLQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZvdW5kYXRpb24gRmxvd3MKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0KLVRoZSBzY3JpcHRzIHByb3ZpZGVkIGhlcmUgYXJlIGludGVuZGVkIHRvIGJlIHVzZWQgYnkgQ2FkZW5jZSBBRXMgYXMgdGhlIHN0YXJ0aW5nIAotcG9pbnQgZm9yIGFzc2lzdGluZyBjdXN0b21lcnMgaW4gYnVpbGRpbmcgYW4gaW1wbGVtZW50YXRpb24gZW52aXJvbm1lbnQgZm9yIAotSW5ub3Z1cy4gIFRoZXkgcHJvdmlkZSBhIHdvcmtpbmcgZXhhbXBsZSBjb250YWluaW5nIGd1aWRlbGluZXMgYW5kIHJlY29tZW5kYXRpb25zIAotZm9yIGNvbW1hbmQgc2VxdWVuY2VzIGFuZCBvcHRpb25zLiAgU29tZSBjdXN0b21pemF0aW9uIGlzIGV4cGVjdGVkIGFzIGVhY2ggY3VzdG9tZXIgCi1hbmQgZGVzaWduIHdpbGwgaGF2ZSB1bmlxdWUgcmVxdWlyZW1lbnRzLiBUaGUgZ29hbCB3YXMgdG8gY2FwdHVyZSBhIGdlbmVyYWwgbWV0aG9kb2xvZ3kgCi1mcm9tIHdoaWNoIHRvIGJ1aWxkIHVwb24uCi0KLSAgICAgICAgICAgICAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLQotVGhlIGZvdW5kYXRpb24gZmxvd3MgcmVzaWRlIGluIHRoZSBTQ1JJUFRTIGRpcmVjdG9yeSAoY3JlYXRlZCBieSB3cml0ZUZsb3dUZW1wbGF0ZSkuICAKLVRoaXMgZGlyZWN0b3J5IGNhbiBiZSByZW5hbWVkIGFuZC9vciBtb3ZlZCBidXQgdGhlIGNvbnRlbnRzIHdpdGhpbiB0aGUgU0NSSVBUUwotZGlyZWN0b3J5IG11c3QgcmVtaWFuIHVuY2hhbmdlZC4gIFRoZSBzY3JpcHRzIGRpcmVjdG9yeSBpcyBhY2Nlc3NlZCBieSB0aGUKLXZhcmlhYmxlICJ2YXJzKHNjcmlwdF9yb290KSA8cGF0aD4iIGluIHRoZSBzZXR1cC50Y2wuCi0KLVRoZSBzZXR1cC50Y2wgaXMgdGhlIG1haW4gaW5wdXQgZmlsZSB0byB0aGUgZm91bmRhdGlvbiBmbG93LiBJdCBkZWZpbmVzIGFsbCAKLXRoZSBpbnB1dCBkYXRhIHJlcXVpcmVkIHRvIHJ1biBlYWNoIG9mIHRoZSBmb3VuZGF0aW9uIGZsb3dzLiAKLQotQWRkaXRpb25hbGx5LCBhbiBpbm5vdnVzX2NvbmZpZy50Y2wgbXVzdCBiZSBjcmVhdGVkIHRvICBzZXQgZmxvdyB2YXJpYWJsZXMsIAotZGVzaXJlZCBjb21tYW5kIG9wdGlvbnMsIGFuZCBvcHRpb25hbCBwbHVnLWlucy4gIAotCi1GaW5hbGx5LCBmb3IgTFAvQ1BGIGZsb3dzLCBhbiBhZGRpdGlvbmFsIGNvbmZpZyBmaWxlIChscF9jb25maWcudGNsKSBjYW4gCi1vcHRpb25hbGx5IGJlIHVzZWQgdG8gaGVscCBhdXRvbWF0ZSBzb21lIGxvdyBwb3dlciByZWxhdGVkIHRhc2tzLgotCi0gICAgICAgICAgICAgICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0KLVRoZSBURU1QTEFURVMgZGlyZWN0b3J5IGNvbnRhaW5zIHRlbXBsYXRlcyBmb3IgYWxsIG9mIHRoZXNlIGZpbGVzIHdoaWNoIGNhbgotYmUgbWFudWFsbHkgY29waWVkIGFuZCBlZGl0ZWQ6Ci0gIAotCVRFTVBMQVRFUy9JTk5PVlVTL3NldHVwLnRjbAotCVRFTVBMQVRFUy9JTk5PVlVTL2lubm92dXNfY29uZmlnLnRjbCAKLQlURU1QTEFURVMvSU5OT1ZVUy9scF9jb25maWcudGNsIAotCi1UaGVyZSBpcyBhbHNvIGEgdXRpbGl0eSB0aGF0IGNhbiBiZSB1c2VkIHRvIGdlbmVyYXRlIHRoZXNlIGZpbGVzIGJhc2VkIG9uIAotZXhpc3RpbmcgZGVzaWduIGRhdGEuICBUbyBnZW5lcmF0ZSwgcnVuIElubm92dXMsIGxvYWQgYW4gaW5pdGlhbCBkYXRhYmFzZSwgCi1hbmQgJ3NvdXJjZSBTQ1JJUFRTL2dlbl9zZXR1cC50Y2wnIG9yIHJ1biB0aGUgbmV3IGNvbW1hbmQgZ2VuZXJhdGVGRlNldHVwRmlsZS4KLQotVGhpcyB3aWxsIGdlbmVyYXRlIGEgKi5hdXRvLnRjbCBmaWxlcyB3aGljaCBjYW4gYmUgcmV2aWV3ZWQvZWRpdGVkCi1hbmQgdGhlbiByZW5hbWVkLiAKLQotICAgICAgICAgICAgICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotCi1UaGUgRVhBTVBMRVMgZGlyZWN0b3J5IGNvbnRhaW5zIHNvbWUgZXhhbXBsZSBjb25maWd1YXRpb24gZmlsZXMgYXMgd2VsbCBhcwotc29tZSBzYW1wbGUgcGx1Zy1pbnMuIFBsZWFzZSAgY2hlY2sgUkVBRE1FIGluIHRoZSBFWEFNUExFUyAgZGlyZWN0b3J5IHRvIHJ1biB0aGUgZXhhbXBsZS4KLQotICAgICAgICAgICAgICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotCi1UbyBnZW5lcmF0ZSB0aGUgZm91bmRhdGlvbiBmbG93IHNjcmlwdHMgYmFzZWQgb24geW91ciBzZXR1cCAsIGRvIHRoZSBmb2xsb3dpbmc6Ci0KLQl0Y2xzaCA8cGF0aF90bz4vU0NSSVBUUy9nZW5fZmxvdy50Y2wgLW0gPGZsYXQgfCBoaWVyID4gPHN0ZXBzPgotCi0gICAgd2hlcmUgPHN0ZXBzPiA9IHNpbmdsZSBzdGVwLCBzdGVwIHJhbmdlLCBvciAnYWxsJwotCi1UbyBleGVjdXRlIHRoZSBmbG93LCBydW4gJ21ha2UgPHRhcmdldD4nCmRpZmYgLS1naXQgYS9mbG93L3Buci9TQ1JJUFRTL0VUQy9JTk5PVlVTL01ha2VmaWxlLnBhcnRpdGlvbiBiL2Zsb3cvcG5yL1NDUklQVFMvRVRDL0lOTk9WVVMvTWFrZWZpbGUucGFydGl0aW9uCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDc1NQppbmRleCA5OTIzOWY0Li4wMDAwMDAwCi0tLSBhL2Zsb3cvcG5yL1NDUklQVFMvRVRDL0lOTk9WVVMvTWFrZWZpbGUucGFydGl0aW9uCisrKyAvZGV2L251bGwKQEAgLTEsNDUgKzAsMCBAQAotVkVSU0lPTj0xNy4xMC1wMDAzXzEKLVZQQVRIPS4vbWFrZQotU0xFRVBUSU1FID0gMTAKLQotUkVBTFRBUkdFVD0kKFRBUkdFVDpzaW5nbGU9JChGRl9TVE9QKSkKLQotQkxPQ0tfVEFSR0VUUyA9ICQoQkxPQ0tTOj0uJChSRUFMVEFSR0VUKSkKLQotYmxvY2tzOiBibG9ja3NfJChSRUFMVEFSR0VUKQotCi1ibG9ja3NfJChSRUFMVEFSR0VUKTogJChCTE9DS19UQVJHRVRTKQotCUBlcnI9MCA7XAotICAgIGZvciBiIGluICQoQkxPQ0tTKSA7IGRvIFwKLSAgICAgIGVjaG8gIklORk86IFdhaXRpbmcgZm9yIGJsb2NrICQkYiBjb21wbGV0aW9uLi4uLiIgO1wKLSAgICAgIHdoaWxlIFsgISAtciAkJGIvJChWUEFUSCkvYmxvY2tfJChSRUFMVEFSR0VUKS5ET05FIF0gOyBkbyBzbGVlcCAkKFNMRUVQVElNRSkgOyBkb25lIDsgXAotICAgICAgaWYgWyAtciAkJGIvJChWUEFUSCkvYmxvY2tfJChSRUFMVEFSR0VUKS5GQUlMRUQgXSA7IHRoZW4gXAotICAgICAgICBlY2hvICJFUlJPUjogQmxvY2sgJCRiIGZhaWxlZCIgO1wKLSAgICAgICAgIC9iaW4vY2F0ICQkYi8kKFZQQVRIKS9ibG9ja18kKFJFQUxUQVJHRVQpLkZBSUxFRCA7IFwKLSAgICAgICAgIC9iaW4vcm0gLWYgJCRiLyQoVlBBVEgpL2Jsb2NrXyQoUkVBTFRBUkdFVCkuRE9ORSA7IFwKLSAgICAgICAgZXJyPTEgOyBcCi0gICAgICBlbHNlIFwKLSAgICAgICAgZWNobyAiSU5GTzogQmxvY2sgJCRiIENvbXBsZXRlZCIgO1wKLSAgICAgICAgL2Jpbi9jYXQgJCRiLyQoVlBBVEgpL2Jsb2NrXyQoUkVBTFRBUkdFVCkuUEFTUyA7IFwKLSAgICAgICAgL2Jpbi90b3VjaCAkKFZQQVRIKS8kJGIuJChSRUFMVEFSR0VUKSA7IFwKLSAgICAgIGZpIDtcCi0gICAgZG9uZSA7XAotICAgIGlmIFsgJCRlcnIgPSAwIF0gOyB0aGVuIFwKLSAgICAgIC9iaW4vdG91Y2ggJChWUEFUSCkvJEAgO1wKLSAgICBmaSA7XAotICAgIGV4aXQgJCRlcnIKLQotCi0lLiQoUkVBTFRBUkdFVCkgOgotCUBjZCAkKiA7IFwKLSAgICAgIGlmIFsgLXIgJChWUEFUSCkvLlJVTk5JTkcgXSA7IHRoZW4gXAotICAgICAgICBlY2hvICJJTkZPOiBTa2lwcGluZyBibG9jayAkKiB3aGljaCBzZWVtcyB0byBzdGlsbCBiZSBydW5uaW5nIChzZWUgYHB3ZGAvbWFrZS8uUlVOTklORykiIDsgXAotICAgICAgICAvYmluL2hlYWQgLTEgJChWUEFUSCkvLlJVTk5JTkcgO1wKLSAgICAgICAgZXhpdCAxIDtcCi0gICAgICBlbHNlIFwKLSAgICAgICAgZWNobyAiSU5GTzogUHJvY2Vzc2luZyBibG9jayAkKi4uLiIgO1wKLSAgICAgICAgJChTVUJNSVQpICQoTUFLRSkgVlBBVEg9JChWUEFUSCkgYmxvY2tfJChSRUFMVEFSR0VUKSBUQVJHRVQ9JChUQVJHRVQpIDtcCi0gICAgICBmaQotCi0kKEJMT0NLUyk6IAotCVZQQVRIPSQoVlBBVEgpOyBAJChNQUtFKSAkQC4kKFJFQUxUQVJHRVQpCmRpZmYgLS1naXQgYS9mbG93L3Buci9TQ1JJUFRTL0VUQy9JTk5PVlVTL2NoZWNrX3ZhcnMudGNsIGIvZmxvdy9wbnIvU0NSSVBUUy9FVEMvSU5OT1ZVUy9jaGVja192YXJzLnRjbApkZWxldGVkIGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMWE2NTc3Yi4uMDAwMDAwMAotLS0gYS9mbG93L3Buci9TQ1JJUFRTL0VUQy9JTk5PVlVTL2NoZWNrX3ZhcnMudGNsCisrKyAvZGV2L251bGwKQEAgLTEsNDQzICswLDAgQEAKLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSMgICAgICAgICAgICAgICAgICAgICAgIENBREVOQ0UgQ09QWVJJR0hUIE5PVElDRQotIyAgICAgICAgIKkgMjAwOC0yMDEzIENhZGVuY2UgRGVzaWduIFN5c3RlbXMsIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSMKLSMgVGhpcyBGb3VuZGF0aW9uIEZsb3cgaXMgcHJvdmlkZWQgYXMgYW4gZXhhbXBsZSBvZiBob3cgdG8gcGVyZm9ybSBzcGVjaWFsaXplZAotIyB0YXNrcy4KLSMKLSMgVGhpcyB3b3JrIG1heSBub3QgYmUgY29waWVkLCByZS1wdWJsaXNoZWQsIHVwbG9hZGVkLCBvciBkaXN0cmlidXRlZCBpbiBhbnkgd2F5LAotIyBpbiBhbnkgbWVkaXVtLCB3aGV0aGVyIGluIHdob2xlIG9yIGluIHBhcnQsIHdpdGhvdXQgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uCi0jIGZyb20gQ2FkZW5jZS4gTm90d2l0aHN0YW5kaW5nIGFueSByZXN0cmljdGlvbnMgaGVyZWluLCBzdWJqZWN0IHRvIGNvbXBsaWFuY2UKLSMgd2l0aCB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgdGhlIENhZGVuY2Ugc29mdHdhcmUgbGljZW5zZSBhZ3JlZW1lbnQgdW5kZXIKLSMgd2hpY2ggdGhpcyBtYXRlcmlhbCB3YXMgcHJvdmlkZWQsIHRoaXMgbWF0ZXJpYWwgbWF5IGJlIGNvcGllZCBhbmQgaW50ZXJuYWxseQotIyBkaXN0cmlidXRlZCBzb2xlbHkgZm9yIGludGVybmFsIHB1cnBvc2VzIGZvciB1c2Ugd2l0aCBDYWRlbmNlIHRvb2xzLgotIwotIyBUaGlzIHdvcmsgaXMgQ2FkZW5jZSBpbnRlbGxlY3R1YWwgcHJvcGVydHkgYW5kIG1heSB1bmRlciBubyBjaXJjdW1zdGFuY2VzIGJlCi0jIGdpdmVuIHRvIHRoaXJkIHBhcnRpZXMsIG5laXRoZXIgaW4gb3JpZ2luYWwgbm9yIGluIG1vZGlmaWVkIHZlcnNpb25zLCB3aXRob3V0Ci0jIGV4cGxpY2l0IHdyaXR0ZW4gcGVybWlzc2lvbiBmcm9tIENhZGVuY2UuIFRoZSBpbmZvcm1hdGlvbiBjb250YWluZWQgaGVyZWluIGlzCi0jIHRoZSBwcm9wcmlldGFyeSBhbmQgY29uZmlkZW50aWFsIGluZm9ybWF0aW9uIG9mIENhZGVuY2Ugb3IgaXRzIGxpY2Vuc29ycywgYW5kCi0jIGlzIHN1cHBsaWVkIHN1YmplY3QgdG8sIGFuZCBtYXkgYmUgdXNlZCBvbmx5IGJ5IENhZGVuY2UncyBjdXJyZW50IGN1c3RvbWVycwotIyBpbiBhY2NvcmRhbmNlIHdpdGgsIGEgcHJldmlvdXNseSBleGVjdXRlZCBsaWNlbnNlIGFncmVlbWVudCBiZXR3ZWVuIENhZGVuY2UKLSMgYW5kIGl0cyBjdXN0b21lci4KLSMKLSMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSMgVEhJUyBNQVRFUklBTCBJUyBQUk9WSURFRCBCWSBDQURFTkNFICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQKLSMgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YKLSMgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4KLSMgSU4gTk8gRVZFTlQgU0hBTEwgQ0FERU5DRSBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMCi0jIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksCi0jIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUgotIyBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTICBNQVRFUklBTCwgRVZFTiBJRgotIyBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLQotaWYgIHtbaW5mbyBleGlzdHMgdmFycyhjaGVja192YXJzKV0gJiYgJHZhcnMoY2hlY2tfdmFycyl9IHsKLQotICAgc2V0IG9wIFtvcGVuICR2YXJzKHNjcmlwdF9kaXIpL2NoZWNrX3ZhcnMucnB0IHddCi0gICAKLSAgIGlmIHshW2luZm8gZXhpc3RzIHZhcnMob3Bjb25kcyldfSB7Ci0gICAgICBzZXQgdmFycyhvcGNvbmRzKSAiIgotICAgfSAgIAotCi0gICBzZXQgdmFsaWRfcHJlZml4ZXMgIlwKLSAgICAgICR2YXJzKGxpYnJhcnlfc2V0cykgXAotICAgICAgJHZhcnMocmNfY29ybmVycykgXAotICAgICAgJHZhcnMob3Bjb25kcykgXAotICAgICAgJHZhcnMoZGVsYXlfY29ybmVycykgXAotICAgICAgJHZhcnMoY29uc3RyYWludF9tb2RlcykgXAotICAgICAgJHZhcnMoc2V0dXBfYW5hbHlzaXNfdmlld3MpIFwKLSAgICAgICR2YXJzKGhvbGRfYW5hbHlzaXNfdmlld3MpIFwKLSAgICAgIGxpYnJhcnlfc2V0IFwKLSAgICAgIGNkYl9maWxlIFwKLSAgICAgIGVjaG9fZmlsZSBcCi0gICAgICB0aW1lbGliIFwKLSAgICAgIHJjX2Nvcm5lciBcCi0gICAgICBkZWxheV9jb3JuZXIgXAotICAgICAgY29uc3RyYWludF9tb2RlIFwKLSAgICAgIHdlbGx0YXBzIFwKLSAgICAgIGZpbGxlcl9jZWxscyBcCi0gICAgICBtYWlsIFwKLSAgICAgIHBhcnRpdGlvbiBcCi0gICAgICBpbml0IFwKLSAgICAgIHBsYWNlIFwKLSAgICAgIHByZWN0cyBcCi0gICAgICBjdHMgXAotICAgICAgcG9zdGN0cyBcCi0gICAgICBwb3N0Y3RzX2hvbGQgXAotICAgICAgcm91dGUgXAotICAgICAgcG9zdHJvdXRlIFwKLSAgICAgIHBvc3Ryb3V0ZV9ob2xkICBcCi0gICAgICBwb3N0cm91dGVfc2kgXAotICAgICAgcG9zdHJvdXRlX3NpX2hvbGQgXAotICAgICAgc2lnbm9mZiBcCi0gICAgICBhc3NlbWJsZSBcIAotICAgICAgdGllX2NlbGxzIFwKLSAgICAgIGZpbGxlcl9jZWxscyBcCi0gICAgICB3ZWxsdGFwcyBcCi0gICAgICBzZWNvbmRhcnlfcGcgXAotICAgICAgYWx3YXlzX29uX25ldHMgXAotICAgICAgbHNmIGN1c3RvbSByc2ggXCAKLSAgICAgIHRhZ3MgXAotICAgIgotICAgCi0gICBzZXQgdmFsaWRfc3VmZml4ZXMgIlwKLSAgICAgIHRpbWluZyBzaSBtaW4gbWF4XAotICAgICAgbGlicmFyeV9zZXQgXAotICAgICAgcmNfY29ybmVyIFwKLSAgICAgIFAgViBUIGNhcF90YWJsZSBxeF90ZWNoX2ZpbGUgcXhfbGliX2RpclwKLSAgICAgIGRlZl9yZXNfZmFjdG9yIGRlZl9jYXBfZmFjdG9yIGRlZl9jbGtfY2FwX2ZhY3RvciBcCi0gICAgICBkZXRfcmVzX2ZhY3RvciBkZXRfY2FwX2ZhY3RvciBkZXRfY2xrX2NhcF9mYWN0b3IgXAotICAgICAgeGNhcF9mYWN0b3IgXAotICAgICAgcHJlX3JvdXRlX3Jlc19mYWN0b3IgcHJlX3JvdXRlX2Nsa19yZXNfZmFjdG9yICBwcmVfcm91dGVfY2FwX2ZhY3RvciAgcHJlX3JvdXRlX2Nsa19jYXBfZmFjdG9yICBcCi0gICAgICBwb3N0X3JvdXRlX3Jlc19mYWN0b3IgcG9zdF9yb3V0ZV9jbGtfcmVzX2ZhY3RvciAgcG9zdF9yb3V0ZV9jYXBfZmFjdG9yICBwb3N0X3JvdXRlX2Nsa19jYXBfZmFjdG9yICAKLSAgICAgIHBvc3Rfcm91dGVfeGNhcF9mYWN0b3IgIFwKLSAgICAgIHNjYWxlX3RjbCBcIAotICAgICAgZGVsYXlfY29ybmVyIFwKLSAgICAgIGRhdGFfY2VsbF9sYXRlIGRhdGFfY2VsbF9lYXJseSBkYXRhX25ldF9sYXRlIGRhdGFfbmV0X2Vhcmx5IFwKLSAgICAgIGNsb2NrX2NlbGxfbGF0ZSBjbG9ja19jZWxsX2Vhcmx5IGNsb2NrX25ldF9sYXRlIGNsb2NrX25ldF9lYXJseSBcCi0gICAgICBjZWxsX2NoZWNrX2xhdGUgY2VsbF9jaGVja19lYXJseSBcCi0gICAgICBvcGNvbmQgIG9wY29uZF9saWJyYXJ5IHBvd2VyX2RvbWFpbnMgXAotICAgICAgY29uc3RyYWludF9tb2RlIFwKLSAgICAgIGRlcmF0ZV90Y2wgXAotICAgICAgcHJlX2N0c19zZGMgcG9zdF9jdHNfc2RjICBpbmNyX2N0c19zZGMgXCAKLSAgICAgIGFjdGl2ZV9zZXR1cF92aWV3cyBhY3RpdmVfaG9sZF92aWV3cyBcCi0gICAgICBwcmVfZW5kY2FwIHBvc3RfZW5kY2FwIFwKLSAgICAgIGNlbGxfaW50ZXJ2YWwgcm93X29mZnNldCBjaGVja2VyYm9hcmQgdmVyaWZ5X3J1bGUgXAotICAgICAgbWF4X2dhcCBjZWxsX2ludGVydmFsIGNoZWNrZXJfYm9hcmQgIFwKLSAgICAgIG1heF9kaXN0YW5jZSBtYXhfZmFub3V0IG1heF90cmFuIG1heF9kZWxheSBcIAotICAgICAgYWx3YXlzX29uX2J1ZmZlcnMgY2VsbF9waW5fcGFpcnMgbmV0cyBub25fZGVmYXVsdF9ydWxlIFwKLSAgICAgIHN3aXRjaGFibGUgc3dpdGNoX3R5cGUgY2hlY2tlcl9ib2FyZCBiYWNrX3RvX2JhY2tfY2hhaW4gXAotICAgICAgbG9vcF9iYWNrX2F0X2VuZCBjaGVja19oZWlnaHQgdmVyaWZ5X3Jvd3MgZW5hYmxlX2NoYWluIFwKLSAgICAgIHByZV90Y2wgcG9zdF90Y2wgcmVwbGFjZV90Y2wgc2tpcCBcCi0gICAgICB0byBzdGVwcyBsaWJyYXJ5X2ZpbGUgXAotICAgICAgc2NyaXB0IHF1ZXVlIGhvc3RfbGlzdCBhcmdzIHJlc291cmNlIFwKLSAgICAgIHZlcmJvc2UgdmVyYm9zaXR5X2xldmVsIFwKLSAgICAgIHdlbGx0YXBzLCB0aWVfY2VsbHMsIGZpbGxlcl9jZWxscyBcCi0gICAgICBwYWNfbW9kZSBpbG1fZGlyIGxlZl9maWxlIFwKLSAgICAgIHN0YXJ0aW5nX2RicyBhc3NlbWJsZV9kYnMgXAotICAgICAgbGF0ZW5jeV9zZGMgY3RzX3NwZWMgXAotICAgICAgZWRpX2NvbmZpZ190Y2wgcW9yX3RjbCBcCi0gICAgICBycHRfZGlyIHNraXAgcHJlX3RjbCBwb3N0X3RjbCBcCi0gICAiCi0KLSAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhwb3dlcl9kb21haW5zKV19IHsKLSAgICAgIGFwcGVuZCB2YWxpZF9wcmVmaXhlcyAkdmFycyhwb3dlcl9kb21haW5zKQotICAgICAgYXBwZW5kIHZhbGlkX3N1ZmZpeGVzICJiYm94IG1heF9nYXAgcnNfZXh0cyIKLSAgIH0KLQotICAgc2V0IHZhbGlkX21pZGZpeGVzICJcCi0gICAgICBzZXRfZGlzdHJpYnV0ZV9ob3N0IFwKLSAgICAgIHNldF9tdWx0aV9jcHVfdXNhZ2UgXAotICAgICAgc2V0X2Rpc3RyaWJ1dGVfaG9zdCBcCi0gICAgICBzZXRfbXVsdGlfY3B1X3VzYWdlIFwKLSAgICAgIHNldF9yY19mYWN0b3IgXAotICAgICAgZGVyYXRlX3RpbWluZyBcCi0gICAgICBjcmVhdGVfcmNfY29ybmVyIFwKLSAgICAgIGNyZWF0ZV9saWJyYXJ5X3NldCBcCi0gICAgICBjcmVhdGVfZGVsYXlfY29ybmVyIFwKLSAgICAgIGNyZWF0ZV9jb25zdHJhaW50X21vZGUgXAotICAgICAgY3JlYXRlX2FuYWx5c2lzX3ZpZXcgXAotICAgICAgdXBkYXRlX2RlbGF5X2Nvcm5lciBcCi0gICAgICB1cGRhdGVfbGlicmFyeV9zZXQgXAotICAgICAgZGVyYXRlX3RpbWluZyBcCi0gICAgICBzZXRfZGVmYXVsdF92aWV3IFwKLSAgICAgIHNldF9wb3dlcl9hbmFseXNpc19tb2RlIFwKLSAgICAgIGxvYWRfY29uZmlnIFwKLSAgICAgIGxvYWRfZmxvb3JwbGFuIFwKLSAgICAgIGdlbmVyYXRlX3RyYWNrcyBcCi0gICAgICBsb2FkX2NwZiBcCi0gICAgICBjb21taXRfY3BmIFwKLSAgICAgIHJlYWRfYWN0aXZpdHlfZmlsZSBcCi0gICAgICBzcGVjaWZ5X2lsbSBcCi0gICAgICBsb2FkX2lsbV9ub25fc2RjX2ZpbGUgXAotICAgICAgaW5pdGlhbGl6ZV90aW1pbmcgXAotICAgICAgbG9hZF9zY2FuIFwKLSAgICAgIHNwZWNpZnlfc3BhcmVfZ2F0ZXMgXAotICAgICAgc2V0X2RvbnRfdXNlIFwKLSAgICAgIHNldF9tYXhfcm91dGVfbGF5ZXIgXAotICAgICAgc2V0X2Rlc2lnbl9tb2RlIFwKLSAgICAgIGluc2VydF93ZWxsdGFwc19lbmRjYXBzIFwKLSAgICAgIGxvYWRfY29uZmlnIFwKLSAgICAgIHRpbWVfZGVzaWduIFwKLSAgICAgIGNoZWNrX2Rlc2lnbiBcCi0gICAgICBjaGVja190aW1pbmcgXAotICAgICAgcmVwb3J0X3Bvd2VyX2RvbWFpbnMgXAotICAgICAgc2V0X2Rpc3RyaWJ1dGVfaG9zdCBcCi0gICAgICBzZXRfbXVsdGlfY3B1X3VzYWdlIFwKLSAgICAgIHJlc3RvcmVfZGVzaWduIFwKLSAgICAgIGluaXRpYWxpemVfc3RlcCBcCi0gICAgICAgICBzZXRfZGVzaWduX21vZGUgXAotICAgICAgICAgc2V0X2RlbGF5X2NhbF9tb2RlIFwKLSAgICAgICAgIHNldF9wbGFjZV9tb2RlIFwKLSAgICAgICAgIHNldF9vcHRfbW9kZSBcCi0gICAgICAgICBjbGVhbnVwX3NwZWNpZnlfY2xvY2tfdHJlZSBcCi0gICAgICAgICBzcGVjaWZ5X2Nsb2NrX3RyZWUgXAotICAgICAgc3BlY2lmeV9qdGFnIFwKLSAgICAgIHBsYWNlX2p0YWcgXAotICAgICAgcGxhY2VfZGVzaWduIFwKLSAgICAgIGFkZF90aWVfY2VsbHMgXAotICAgICAgdGltZV9kZXNpZ24gXAotICAgICAgc2F2ZV9kZXNpZ24gXAotICAgICAgcmVwb3J0X3Bvd2VyIFwKLSAgICAgIHZlcmlmeV9wb3dlcl9kb21haW4gXAotICAgICAgcnVuX2NscCBcCi0gICAgICBzZXRfZGlzdHJpYnV0ZV9ob3N0IFwKLSAgICAgIHNldF9tdWx0aV9jcHVfdXNhZ2UgXAotICAgICAgaW5pdGlhbGl6ZV9zdGVwIFwKLSAgICAgICAgIHNldF9kZXNpZ25fbW9kZSBcCi0gICAgICAgICBzZXRfaWxtX3R5cGUgXAotICAgICAgICAgY2xlYW51cF9zcGVjaWZ5X2Nsb2NrX3RyZWUgXAotICAgICAgICAgY3JlYXRlX2Nsb2NrX3RyZWVfc3BlYyBcCi0gICAgICAgICBzcGVjaWZ5X2Nsb2NrX3RyZWUgXAotICAgICAgICAgc2V0X3VzZWZ1bF9za2V3X21vZGUgXAotICAgICAgICAgc2V0X29wdF9tb2RlIFwKLSAgICAgICAgIHNldF9kZXNpZ25fbW9kZSBcCi0gICAgICAgICBzZXRfZGVsYXlfY2FsX21vZGUgXAotICAgICAgICAgc2V0X2RvbnRfdXNlIFwKLSAgICAgIG9wdF9kZXNpZ24gXAotICAgICAgY2tfY2xvbmVfZ2F0ZSBcCi0gICAgICBzYXZlX2Rlc2lnbiBcCi0gICAgICByZXBvcnRfcG93ZXIgXAotICAgICAgdmVyaWZ5X3Bvd2VyX2RvbWFpbiBcCi0gICAgICBydW5fY2xwIFwKLSAgICAgIHNldF9kaXN0cmlidXRlX2hvc3QgXAotICAgICAgc2V0X211bHRpX2NwdV91c2FnZSBcCi0gICAgICBpbml0aWFsaXplX3N0ZXAgXAotICAgICAgICAgc2V0X2Rlc2lnbl9tb2RlIFwKLSAgICAgICAgIHNldF9jdHNfbW9kZSBcCi0gICAgICAgICBzZXRfbmFub3JvdXRlX21vZGUgXAotICAgICAgZW5hYmxlX2Nsb2NrX2dhdGVfY2VsbHMgXAotICAgICAgY2xvY2tfZGVzaWduIFwKLSAgICAgIGRpc2FibGVfY2xvY2tfZ2F0ZV9jZWxscyBcCi0gICAgICBydW5fY2xvY2tfZWNvIFwKLSAgICAgIHVwZGF0ZV90aW1pbmcgXAotICAgICAgdGltZV9kZXNpZ24gXAotICAgICAgc2F2ZV9kZXNpZ24gXAotICAgICAgcmVwb3J0X3Bvd2VyIFwKLSAgICAgIHZlcmlmeV9wb3dlcl9kb21haW4gXAotICAgICAgcnVuX2NscCBcCi0gICAgICBzZXRfZGlzdHJpYnV0ZV9ob3N0IFwKLSAgICAgIHNldF9tdWx0aV9jcHVfdXNhZ2UgXAotICAgICAgaW5pdGlhbGl6ZV9zdGVwIFwKLSAgICAgICAgIHNldF9kZXNpZ25fbW9kZSBcCi0gICAgICAgICBzZXRfZGVsYXlfY2FsX21vZGUgXAotICAgICAgICAgc2V0X2FuYWx5c2lzX21vZGUgXAotICAgICAgICAgc2V0X29wdF9tb2RlIFwKLSAgICAgIG9wdF9kZXNpZ24gXAotICAgICAgc2F2ZV9kZXNpZ24gXAotICAgICAgcmVwb3J0X3Bvd2VyIFwKLSAgICAgIHZlcmlmeV9wb3dlcl9kb21haW4gXAotICAgICAgcnVuX2NscCBcCi0gICAgICBzZXRfZGlzdHJpYnV0ZV9ob3N0IFwKLSAgICAgIHNldF9tdWx0aV9jcHVfdXNhZ2UgXAotICAgICAgaW5pdGlhbGl6ZV9zdGVwIFwKLSAgICAgICAgIHNldF9kb250X3VzZSBcCi0gICAgICAgICBzZXRfb3B0X21vZGUgXAotICAgICAgb3B0X2Rlc2lnbiBcCi0gICAgICBzYXZlX2Rlc2lnbiBcCi0gICAgICByZXBvcnRfcG93ZXIgXAotICAgICAgdmVyaWZ5X3Bvd2VyX2RvbWFpbiBcCi0gICAgICBydW5fY2xwIFwKLSAgICAgIHNldF9kaXN0cmlidXRlX2hvc3QgXAotICAgICAgc2V0X211bHRpX2NwdV91c2FnZSBcCi0gICAgICBpbml0aWFsaXplX3N0ZXAgXAotICAgICAgICAgc2V0X25hbm9yb3V0ZV9tb2RlIFwKLSAgICAgICAgIGFkZF9maWxsZXJfY2VsbHMgXAotICAgICAgcm91dGVfc2Vjb25kYXJ5X3BnX25ldHMgXAotICAgICAgY2hlY2tfcGxhY2UgXAotICAgICAgcm91dGVfZGVzaWduIFwKLSAgICAgIHJ1bl9jbG9ja19lY28gXAotICAgICAgc3ByZWFkX3dpcmVzIFwKLSAgICAgIGluaXRpYWxpemVfdGltaW5nIFwKLSAgICAgIHRpbWVfZGVzaWduIFwKLSAgICAgIHNhdmVfZGVzaWduIFwKLSAgICAgIHJlcG9ydF9wb3dlciBcCi0gICAgICB2ZXJpZnlfcG93ZXJfZG9tYWluIFwKLSAgICAgIHJ1bl9jbHAgXAotICAgICAgc2V0X2Rpc3RyaWJ1dGVfaG9zdCBcCi0gICAgICBzZXRfbXVsdGlfY3B1X3VzYWdlIFwKLSAgICAgIGluaXRpYWxpemVfc3RlcCBcCi0gICAgICAgICBzZXRfZGVzaWduX21vZGUgXAotICAgICAgICAgc2V0X2V4dHJhY3RfcmNfbW9kZSBcCi0gICAgICAgICBzZXRfYW5hbHlzaXNfbW9kZSBcCi0gICAgICAgICBzZXRfZGVsYXlfY2FsX21vZGUgXAotICAgICAgYWRkX21ldGFsZmlsbCBcCi0gICAgICBkZWxldGVfZmlsbGVyX2NlbGxzIFwKLSAgICAgIG9wdF9kZXNpZ24gXAotICAgICAgYWRkX2ZpbGxlcl9jZWxscyBcCi0gICAgICB0cmltX21ldGFsZmlsbCBcCi0gICAgICBzYXZlX2Rlc2lnbiBcCi0gICAgICByZXBvcnRfcG93ZXIgXAotICAgICAgdmVyaWZ5X3Bvd2VyX2RvbWFpbiBcCi0gICAgICBydW5fY2xwIFwKLSAgICAgIHNldF9kaXN0cmlidXRlX2hvc3QgXAotICAgICAgc2V0X211bHRpX2NwdV91c2FnZSBcCi0gICAgICBpbml0aWFsaXplX3N0ZXAgXAotICAgICAgICAgc2V0X2RvbnRfdXNlX21vZGUgXAotICAgICAgICAgc2V0X29wdF9tb2RlIFwKLSAgICAgIGRlbGV0ZV9maWxsZXJfY2VsbHMgXAotICAgICAgb3B0X2Rlc2lnbiBcCi0gICAgICBhZGRfZmlsbGVyX2NlbGxzIFwKLSAgICAgIHRyaW1fbWV0YWxmaWxsIFwKLSAgICAgIHNhdmVfZGVzaWduIFwKLSAgICAgIHJlcG9ydF9wb3dlciBcCi0gICAgICB2ZXJpZnlfcG93ZXJfZG9tYWluIFwKLSAgICAgIHJ1bl9jbHAgXAotICAgICAgc2V0X2Rpc3RyaWJ1dGVfaG9zdCBcCi0gICAgICBzZXRfbXVsdGlfY3B1X3VzYWdlIFwKLSAgICAgIGluaXRpYWxpemVfc3RlcCBcCi0gICAgICAgICBzZXRfZGVzaWduX21vZGUgXAotICAgICAgICAgc2V0X2V4dHJhY3RfcmNfbW9kZSBcCi0gICAgICAgICBzZXRfc2lfbW9kZSBcCi0gICAgICAgICBzZXRfYW5hbHlzaXNfbW9kZSBcCi0gICAgICAgICBzZXRfZGVsYXlfY2FsX21vZGUgXAotICAgICAgYWRkX21ldGFsZmlsbCBcCi0gICAgICBkZWxldGVfZmlsbGVyX2NlbGxzIFwKLSAgICAgIG9wdF9kZXNpZ24gXAotICAgICAgYWRkX2ZpbGxlcl9jZWxscyBcCi0gICAgICB0cmltX21ldGFsZmlsbCBcCi0gICAgICBzYXZlX2Rlc2lnbiBcCi0gICAgICByZXBvcnRfcG93ZXIgXAotICAgICAgdmVyaWZ5X3Bvd2VyX2RvbWFpbiBcCi0gICAgICBydW5fY2xwIFwKLSAgICAgIHNldF9kaXN0cmlidXRlX2hvc3QgXAotICAgICAgc2V0X211bHRpX2NwdV91c2FnZSBcCi0gICAgICBpbml0aWFsaXplX3N0ZXAgXAotICAgICAgICAgc2V0X2Rlc2lnbl9tb2RlIFwKLSAgICAgICAgIHNldF9kb250X3VzZSBcCi0gICAgICAgICBzZXRfb3B0X21vZGUgXAotICAgICAgICAgc2V0X2V4dHJhY3RfcmNfbW9kZSBcCi0gICAgICAgICBzZXRfc2lfbW9kZSBcCi0gICAgICAgICBzZXRfZGVsYXlfY2FsX21vZGUgXAotICAgICAgICAgc2V0X2FuYWx5c2lzX21vZGUgXAotICAgICAgYWRkX21ldGFsZmlsbCBcCi0gICAgICBkZWxldGVfZmlsbGVyX2NlbGxzIFwKLSAgICAgIG9wdF9kZXNpZ24gXAotICAgICAgYWRkX2ZpbGxlcl9jZWxscyBcCi0gICAgICB0cmltX21ldGFsZmlsbCBcCi0gICAgICBzYXZlX2Rlc2lnbiBcCi0gICAgICByZXBvcnRfcG93ZXIgXAotICAgICAgdmVyaWZ5X3Bvd2VyX2RvbWFpbiBcCi0gICAgICBydW5fY2xwIFwKLSAgICAgIHNldF9kaXN0cmlidXRlX2hvc3QgXAotICAgICAgc2V0X211bHRpX2NwdV91c2FnZSBcCi0gICAgICBpbml0aWFsaXplX3RpbWluZyBcCi0gICAgICBpbml0aWFsaXplX3N0ZXAgXAotICAgICAgICAgc2V0X2FuYWx5c2lzX21vZGUgXAotICAgICAgICAgc2V0X2V4dHJhY3RfcmNfbW9kZSBcCi0gICAgICBleHRyYWN0X3JjIFwKLSAgICAgIGR1bXBfc3BlZiBcCi0gICAgICB0aW1lX2Rlc2lnbl9zZXR1cCBcCi0gICAgICB0aW1lX2Rlc2lnbl9ob2xkIFwKLSAgICAgIHN0cmVhbV9vdXQgXAotICAgICAgc2F2ZV9vYV9kZXNpZ24gXAotICAgICAgY3JlYXRlX2lsbSBcCi0gICAgICBzdW1tYXJ5X3JlcG9ydCBcCi0gICAgICB2ZXJpZnlfY29ubmVjdGl2aXR5IFwKLSAgICAgIHZlcmlmeV9nZW9tZXRyeSBcCi0gICAgICB2ZXJpZnlfbWV0YWxfZGVuc2l0eSBcCi0gICAgICB2ZXJpZnlfcHJvY2Vzc19hbnRlbm5hIFwKLSAgICAgIHNhdmVfZGVzaWduIFwKLSAgICAgIHJlcG9ydF9wb3dlciBcCi0gICAgICB2ZXJpZnlfcG93ZXJfZG9tYWluIFwKLSAgICAgIHJ1bl9jbHAgXAotICAgICAgaW5pdGlhbGl6ZV90aW1pbmcgXAotICAgICAgbG9hZF9jcGYgXAotICAgICAgY29tbWl0X2NwZiBcCi0gICAgICBydW5fY2xwX2luaXQgXAotICAgICAgc2F2ZV9pbml0X2RicyBcCi0gICAgICBzZXRfYnVkZ2V0aW5nX21vZGUgXAotICAgICAgdXBkYXRlX2NvbnN0cmFpbnRfbW9kZSBcCi0gICAgICBzZXRfcHRuX3VzZXJfY25zX2ZpbGUgXAotICAgICAgc2V0X3BsYWNlX21vZGUgXAotICAgICAgcGxhY2VfZGVzaWduIFwKLSAgICAgIHNhdmVfcGxhY2VfZGJzIFwKLSAgICAgIHRyaWFsX3JvdXRlIFwKLSAgICAgIGFzc2lnbl9wdG5fcGlucyBcCi0gICAgICBjaGVja19waW5fYXNzaWdubWVudCBcCi0gICAgICByZXBvcnRfdW5hbGlnbmVkX25ldHMgXAotICAgICAgc2V0X3B0bl9waW5fc3RhdHVzIFwKLSAgICAgIGRlcml2ZV90aW1pbmdfYnVkZ2V0IFwKLSAgICAgIHNhdmVfYnVkZ2V0X2RicyBcCi0gICAgICBydW5fY2xwIFwKLSAgICAgIHBhcnRpdGlvbiBcCi0gICAgICBzYXZlX3BhcnRpdGlvbiBcCi0gICAgICBhc3NlbWJsZV9kZXNpZ24gXAotICAgICAgc3BlY2lmeV9pbG0gXAotICAgICAgbG9hZF9pbG1fbm9uX3NkY19maWxlIFwKLSAgICAgIGxvYWRfY3BmIFwKLSAgICAgIGNvbW1pdF9jcGYgXAotICAgICAgaW5pdGlhbGl6ZV90aW1pbmcgXAotICAgICAgdXBkYXRlX3RpbWluZyBcCi0gICAgICBwcmVfcGFjX3ZlcmlmeV9jb25uZWN0aXZpdHkgXAotICAgICAgcHJlX3BhY192ZXJpZnlfZ2VvbWV0cnkgXAotICAgICAgc2V0X21vZHVsZV92aWV3IFwKLSAgICAgIGRlbGV0ZV9maWxsZXJfY2VsbHMgXAotICAgICAgb3B0X2Rlc2lnbiBcCi0gICAgICBhZGRfZmlsbGVyX2NlbGxzIFwKLSAgICAgIHBvc3RfcGFjX3ZlcmlmeV9jb25uZWN0aXZpdHkgXAotICAgICAgcG9zdF9wYWNfdmVyaWZ5X2dlb21ldHJ5IFwKLSAgICIKLSAgIAotICAgc2V0IHByZWZpeF9jb3VudCAwCi0gICBzZXQgbWlkZml4X2NvdW50IDAKLSAgIHNldCBzdWZmaXhfY291bnQgMAotICAgCi0gICBmb3JlYWNoIHZhcmlhYmxlIFthcnJheSBuYW1lcyB2YXJzXSB7Ci0gICAgICBzZXQgc3BsaXQgW3NwbGl0ICR2YXJpYWJsZSAiLCJdCi0gICAgICBpZiB7W2xsZW5ndGggJHNwbGl0XSA9PSAxfSB7Ci0gICAgICAgICBjb250aW51ZQotICAgICAgfSBlbHNlaWYge1tsbGVuZ3RoICRzcGxpdF0gPT0gMn0gewotICAgICAgICAgc2V0IHByZWZpeCBbbGluZGV4ICRzcGxpdCAwXQotICAgICAgICAgc2V0IHN1ZmZpeCBbbGluZGV4ICRzcGxpdCAxXQotICAgICAgICAgcHV0cyAkb3AgIkNoZWNraW5nICRwcmVmaXggKyAkc3VmZml4IgotICAgICAgICAgaWYge1tsc2VhcmNoICR2YWxpZF9wcmVmaXhlcyAkcHJlZml4XSA9PSAtMX0gewotICAgICAgICAgICAgaW5jciBwcmVmaXhfY291bnQKLSAgICAgICAgICAgIHB1dHMgJG9wICI8RkY+IEVSUk9SIFVua25vd24gcHJlZml4IC0+ICRwcmVmaXggKCR2YXJpYWJsZSkiCi0gICAgICAgICAgICBwdXRzICI8RkY+IEVSUk9SIFVua25vd24gcHJlZml4IC0+ICRwcmVmaXggKCR2YXJpYWJsZSkiCi0gICAjICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICBFUlJPUjogQSB2ZXJpbG9nIG5ldGxpc3QgZmlsZSBtdXN0IGJlIGRlZmluZWRcbiIKLSAgICAgICAgICAgIHNldCBlcnJvcnMoJGVycm9yX2NvdW50KSAiVW5rbm93biBwcmVmaXggLT4gJHByZWZpeCAoJHZhcmlhYmxlKSIKLSAgICAgICAgICAgIGluY3IgZXJyb3JfY291bnQKLSAgICAgICAgIH0gCi0gICAgICAgICBpZiB7W2xzZWFyY2ggJHZhbGlkX3N1ZmZpeGVzICRzdWZmaXhdID09IC0xfSB7Ci0gICAgICAgICAgICBpbmNyIHN1ZmZpeF9jb3VudAotICAgICAgICAgICAgcHV0cyAkb3AgIjxGRj4gRVJST1IgVW5rbm93biBzdWZmaXggLT4gJHN1ZmZpeCAoJHZhcmlhYmxlKSIKLSAgICAgICAgICAgIHB1dHMgIjxGRj4gRVJST1IgVW5rbm93biBzdWZmaXggLT4gJHN1ZmZpeCAoJHZhcmlhYmxlKSIKLSAgICAgICAgICAgIHNldCBlcnJvcnMoJGVycm9yX2NvdW50KSAiVW5rbm93biBzdWZmaXggLT4gJHByZWZpeCAoJHZhcmlhYmxlKSIKLSAgICAgICAgICAgIGluY3IgZXJyb3JfY291bnQKLSAgICAgICAgIH0KLSAgICAgIH0gZWxzZWlmIHtbbGxlbmd0aCAkc3BsaXRdID09IDN9IHsKLSAgICAgICAgIHNldCBwcmVmaXggW2xpbmRleCAkc3BsaXQgMF0KLSAgICAgICAgIHNldCBtaWRmaXggW2xpbmRleCAkc3BsaXQgMV0KLSAgICAgICAgIHNldCBzdWZmaXggW2xpbmRleCAkc3BsaXQgMl0KLSAgICAgICAgIHB1dHMgJG9wICJDaGVja2luZyAkcHJlZml4ICsgJG1pZGZpeCArICRzdWZmaXgiCi0gICAgICAgICBpZiB7W2xzZWFyY2ggJHZhbGlkX3ByZWZpeGVzICRwcmVmaXhdID09IC0xfSB7Ci0gICAgICAgICAgICBpbmNyIHByZWZpeF9jb3VudAotICAgICAgICAgICAgcHV0cyAkb3AgIjxGRj4gRVJST1IgVW5rbm93biBwcmVmaXggLT4gJHByZWZpeCAoJHZhcmlhYmxlKSIKLSAgICAgICAgICAgIHB1dHMgIjxGRj4gRVJST1IgVW5rbm93biBwcmVmaXggLT4gJHByZWZpeCAoJHZhcmlhYmxlKSIKLSAgICAgICAgICAgIHNldCBlcnJvcnMoJGVycm9yX2NvdW50KSAiVW5rbm93biBwcmVmaXggLT4gJHByZWZpeCAoJHZhcmlhYmxlKSIKLSAgICAgICAgICAgIGluY3IgZXJyb3JfY291bnQKLSAgICAgICAgIH0gCi0gICAgICAgICBpZiB7W2xzZWFyY2ggJHZhbGlkX21pZGZpeGVzICRtaWRmaXhdID09IC0xfSB7Ci0gICAgICAgICAgICBpbmNyIG1pZGZpeF9jb3VudAotICAgICAgICAgICAgcHV0cyAkb3AgIjxGRj4gRVJST1IgVW5rbm93biBtaWRmaXggLT4gJHByZWZpeCAoJHZhcmlhYmxlKSIKLSAgICAgICAgICAgIHB1dHMgIjxGRj4gRVJST1IgVW5rbm93biBtaWRmaXggLT4gJHByZWZpeCAoJHZhcmlhYmxlKSIKLSAgICAgICAgICAgIHNldCBlcnJvcnMoJGVycm9yX2NvdW50KSAiVW5rbm93biBtaWRmaXggLT4gJG1pZGZpeCAoJHZhcmlhYmxlKSIKLSAgICAgICAgICAgIGluY3IgZXJyb3JfY291bnQKLSAgICAgICAgIH0gCi0gICAgICAgICBpZiB7W2xzZWFyY2ggJHZhbGlkX3N1ZmZpeGVzICRzdWZmaXhdID09IC0xfSB7Ci0gICAgICAgICAgICBpbmNyIHN1ZmZpeF9jb3VudAotICAgICAgICAgICAgcHV0cyAkb3AgIjxGRj4gV0FSTklORyBVbmtub3duIHN1ZmZpeCAtPiAkc3VmZml4ICgkdmFyaWFibGUpIgotICAgICAgICAgICAgcHV0cyAiPEZGPiBXQVJOSU5HIFVua25vd24gc3VmZml4IC0+ICRzdWZmaXggKCR2YXJpYWJsZSkiCi0gICAgICAgICAgICBzZXQgZXJyb3JzKCRlcnJvcl9jb3VudCkgIlVua25vd24gc3VmZml4IC0+ICRwcmVmaXggKCR2YXJpYWJsZSkiCi0gICAgICAgICAgICBpbmNyIGVycm9yX2NvdW50Ci0gICAgICAgICB9Ci0gICAgICB9IGVsc2UgewotICAgICAgICAgY29udGludWUKLSAgICAgIH0KLSAgIH0KLSAgIAotICAgY2xvc2UgJG9wCi0KLX0KZGlmZiAtLWdpdCBhL2Zsb3cvcG5yL1NDUklQVFMvRVRDL0lOTk9WVVMvZGVmYXVsdHMudGNsIGIvZmxvdy9wbnIvU0NSSVBUUy9FVEMvSU5OT1ZVUy9kZWZhdWx0cy50Y2wKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDY1MWViMmYuLjAwMDAwMDAKLS0tIGEvZmxvdy9wbnIvU0NSSVBUUy9FVEMvSU5OT1ZVUy9kZWZhdWx0cy50Y2wKKysrIC9kZXYvbnVsbApAQCAtMSwxMTcgKzAsMCBAQAotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotIyBEZWZpbmUgb3B0aW9uIGRlZmF1bHRzIGFuZCBpbml0aWFsaXplIHVuZGVmaW5lZCB2YXJpYWJsZXMKLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLXNldCBmbG93X2RlZmF1bHRzKGZmZl9pbmZvX2xldmVsKSAwCi1zZXQgZmxvd19kZWZhdWx0cyhkZWJ1ZykgMAotc2V0IGZsb3dfZGVmYXVsdHMoZnJlZXplX3ZhcnMpIGZhbHNlCi0jc2V0IGZsb3dfZGVmYXVsdHMobm92dXMpIGZhbHNlCi1zZXQgZmxvd19kZWZhdWx0cyhwYXJlbnQpIGVkaQotc2V0IGZsb3dfZGVmYXVsdHMoYWJ1dHRlZF9kZXNpZ24pIGZhbHNlIAotc2V0IGZsb3dfZGVmYXVsdHMoaGllcl9mbG93X3R5cGUpIDFwYXNzIAotc2V0IGZsb3dfZGVmYXVsdHMobmV0bGlzdF90eXBlKSB2ZXJpbG9nCi1zZXQgZmxvd19kZWZhdWx0cyhpbG1fbGlzdCkgIiIgICAgICAKLXNldCBmbG93X2RlZmF1bHRzKGNvZGVnZW4pIGZhbHNlCi1zZXQgZmxvd19kZWZhdWx0cyhjYXB0dXJlX21ldHJpY3MpIHRydWUKLXNldCBmbG93X2RlZmF1bHRzKHJlcG9ydF9ydW5fdGltZSkgdHJ1ZQotc2V0IGZsb3dfZGVmYXVsdHMocmVwb3J0X3N5c3RlbV9pbmZvKSB0cnVlCi1zZXQgZmxvd19kZWZhdWx0cyhlbmFibGVfcW9yX2NoZWNrKSBmYWxzZQotc2V0IGZsb3dfZGVmYXVsdHMoYmF0Y2gpIHRydWUKLXNldCBmbG93X2RlZmF1bHRzKHJjKSBmYWxzZQotc2V0IGZsb3dfZGVmYXVsdHModmVyYm9zZSkgZmFsc2UKLXNldCBmbG93X2RlZmF1bHRzKHJ1bl9sZWMpIHRydWUKLXNldCBmbG93X2RlZmF1bHRzKHNraXBfY3RzKSBmYWxzZQotc2V0IGZsb3dfZGVmYXVsdHMoZW5hYmxlX2NlbHRpY19zdGVwcykgZmFsc2UKLXNldCBmbG93X2RlZmF1bHRzKHNraXBfc2lnbm9mZl9jaGVja3MpIGZhbHNlCi1zZXQgZmxvd19kZWZhdWx0cyhydW5fY2xwKSB0cnVlCi0jc2V0IGZsb3dfZGVmYXVsdHMoZGJzX2Zvcm1hdCkgb2EKLXNldCBmbG93X2RlZmF1bHRzKGhpZ2hfdGltaW5nX2VmZm9ydCkgZmFsc2UKLXNldCBmbG93X2RlZmF1bHRzKGZsb3dfZWZmb3J0KSBzdGFuZGFyZAotI3NldCBmbG93X2RlZmF1bHRzKGZsb3dfZWZmb3J0KSBub25lCi1zZXQgZmxvd19kZWZhdWx0cyhwb3dlcl9lZmZvcnQpIG5vbmUKLXNldCBmbG93X2RlZmF1bHRzKGdlbmVyYXRlX3RyYWNrcykgdHJ1ZQotc2V0IGZsb3dfZGVmYXVsdHMoYWRkX3RyYWNrcykgdHJ1ZQotc2V0IGZsb3dfZGVmYXVsdHMoZ2VuZXJhdGVfZmxvd19zdGVwcykgZmFsc2UKLXNldCBmbG93X2RlZmF1bHRzKGVuYWJsZV9yY3ApIGZhbHNlCi1zZXQgZmxvd19kZWZhdWx0cyhlbmFibGVfcGFtKSBmYWxzZQotc2V0IGZsb3dfZGVmYXVsdHMoZW5hYmxlX2FvY3YpIGZhbHNlCi1zZXQgZmxvd19kZWZhdWx0cyhlbmFibGVfc29jdikgZmFsc2UKLXNldCBmbG93X2RlZmF1bHRzKGVuYWJsZV9vY3YpIHByZV9jdHMKLXNldCBmbG93X2RlZmF1bHRzKGVuYWJsZV9jcHByKSBub25lCi1zZXQgZmxvd19kZWZhdWx0cyhlbmFibGVfc3MpIGZhbHNlCi1zZXQgZmxvd19kZWZhdWx0cyhlbmFibGVfc2lfYXdhcmUpIHRydWUKLXNldCBmbG93X2RlZmF1bHRzKGVuYWJsZV9wYWMpIGZhbHNlCi1zZXQgZmxvd19kZWZhdWx0cyhlbmFibGVfZmxleGlsbSkgZmFsc2UKLXNldCBmbG93X2RlZmF1bHRzKGVuYWJsZV9ucmdyKSBmYWxzZQotc2V0IGZsb3dfZGVmYXVsdHMoZW5hYmxlX3NpZ25vZmZfZWNvKSBmYWxzZQotc2V0IGZsb3dfZGVmYXVsdHMoYmxhY2tfYm94KSB0cnVlCi1zZXQgZmxvd19kZWZhdWx0cyhwYWNfc2NyYXRjaF9kaXIpICJQQUNfU0NSQVRDSCIKLXNldCBmbG93X2RlZmF1bHRzKGVjb19kaXIpICJFQ08iCi1zZXQgZmxvd19kZWZhdWx0cyhidWRnZXRfbW9kZSkgZ2lnYV9vcHQKLXNldCBmbG93X2RlZmF1bHRzKHVzZV9wcm90b19uZXRfZGVsYXlfbW9kZWwpIGZhbHNlCi1zZXQgZmxvd19kZWZhdWx0cyh1c2VfZmxleG1vZGVscykgZmFsc2UKLXNldCBmbG93X2RlZmF1bHRzKGZsZXhtb2RlbF9hc19wdG4pIHRydWUKLXNldCBmbG93X2RlZmF1bHRzKGZsZXhtb2RlbF9hcnRfYmFzZWQpIHRydWUKLXNldCBmbG93X2RlZmF1bHRzKGNyZWF0ZV9mbGV4ZmlsbGVyX2Jsb2NrYWdlKSBmYWxzZQotc2V0IGZsb3dfZGVmYXVsdHMoZmxleG1vZGVsX3Byb3RvdHlwZSkgZmFsc2UKLXNldCBmbG93X2RlZmF1bHRzKGZsZXhtb2RlbF9wcm90b3R5cGVfZmxvd19zdHlsZSkgInRvcF90b19ib3R0b20iCi1zZXQgZmxvd19kZWZhdWx0cyhmbGV4bW9kZWxfcHJvdG90eXBlX2Nvbmdlc3Rpb25fYXdhcmUpIGZhbHNlCi1zZXQgZmxvd19kZWZhdWx0cyhmbGV4bW9kZWxfcHJvdG90eXBlX3RpbWluZ19hd2FyZSkgZmFsc2UKLXNldCBmbG93X2RlZmF1bHRzKGZsZXhtb2RlbF9wcm90b3R5cGVfdXNlcl9jb250cmFpbnRzKSAidXNlcl9jb25zdHJhaW50cy50eHQiCi0jICAgc2V0IGZsb3dfZGVmYXVsdHMoY2xvY2tfZWNvKSBub25lCi0jICAgc2V0IGZsb3dfZGVmYXVsdHMoY2xvY2tfZ2F0ZV9jbG9uZSkgZmFsc2UKLXNldCBmbG93X2RlZmF1bHRzKG1ldGFsZmlsbCkgZmFsc2UKLXNldCBmbG93X2RlZmF1bHRzKGNwZl90aW1pbmcpIGZhbHNlCi1zZXQgZmxvd19kZWZhdWx0cyhjcGZfa2VlcF9yb3dzKSBmYWxzZQotc2V0IGZsb3dfZGVmYXVsdHMoY3BmX3Bvd2VyX2RvbWFpbikgZmFsc2UKLXNldCBmbG93X2RlZmF1bHRzKGNwZl9wb3dlcl9zd2l0Y2gpIGZhbHNlCi1zZXQgZmxvd19kZWZhdWx0cyhjcGZfaXNvbGF0aW9uKSBmYWxzZQotc2V0IGZsb3dfZGVmYXVsdHMoY3BmX3N0YXRlX3JldGVudGlvbikgZmFsc2UKLXNldCBmbG93X2RlZmF1bHRzKGNwZl9sZXZlbF9zaGlmdGVyKSBmYWxzZQotc2V0IGZsb3dfZGVmYXVsdHMoaWVlZTE4MDFfdGltaW5nKSBmYWxzZQotc2V0IGZsb3dfZGVmYXVsdHMoaWVlZTE4MDFfa2VlcF9yb3dzKSBmYWxzZQotc2V0IGZsb3dfZGVmYXVsdHMoaWVlZTE4MDFfcG93ZXJfZG9tYWluKSBmYWxzZQotc2V0IGZsb3dfZGVmYXVsdHMoaWVlZTE4MDFfcG93ZXJfc3dpdGNoKSBmYWxzZQotc2V0IGZsb3dfZGVmYXVsdHMoaWVlZTE4MDFfaXNvbGF0aW9uKSBmYWxzZQotc2V0IGZsb3dfZGVmYXVsdHMoaWVlZTE4MDFfc3RhdGVfcmV0ZW50aW9uKSBmYWxzZQotc2V0IGZsb3dfZGVmYXVsdHMoaWVlZTE4MDFfbGV2ZWxfc2hpZnRlcikgZmFsc2UKLXNldCBmbG93X2RlZmF1bHRzKGluc2VydF9mZWVkdGhyb3VnaCkgdHJ1ZQotc2V0IGZsb3dfZGVmYXVsdHMocmVwb3J0X3Bvd2VyKSBmYWxzZQotI3NldCBmbG93X2RlZmF1bHRzKGluX3BsYWNlX29wdCkgZmFsc2UKLSNzZXQgZmxvd19kZWZhdWx0cyhub19wcmVfcGxhY2Vfb3B0KSBmYWxzZQotc2V0IGZsb3dfZGVmYXVsdHMocGxhY2Vfb3B0X2Rlc2lnbikgdHJ1ZQotc2V0IGZsb3dfZGVmYXVsdHMocGxhY2VfaW9fcGlucykgZmFsc2UKLXNldCBmbG93X2RlZmF1bHRzKHBsYWNlbWVudF9iYXNlZF9wdG4pIGZhbHNlCi1zZXQgZmxvd19kZWZhdWx0cyh1cGRhdGVfaW9fbGF0ZW5jeSkgdHJ1ZQotc2V0IGZsb3dfZGVmYXVsdHMocm91dGVfY2xvY2tfbmV0cykgdHJ1ZQotc2V0IGZsb3dfZGVmYXVsdHModHJhY2tfb3B0KSBmYWxzZQotc2V0IGZsb3dfZGVmYXVsdHMoY3RzX2VuZ2luZSkgY2NvcHQKLXNldCBmbG93X2RlZmF1bHRzKGNjb3B0X2VmZm9ydCkgbG93Ci1zZXQgZmxvd19kZWZhdWx0cyhza2lwX2N0cykgZmFsc2UKLXNldCBmbG93X2RlZmF1bHRzKGZpeF9ob2xkKSAicG9zdGN0cyBwb3N0cm91dGUgcG9zdHJvdXRlX3NpIgotc2V0IGZsb3dfZGVmYXVsdHMoZml4X2hvbGRfaWdub3JlX2lvcykgZmFsc2UKLXNldCBmbG93X2RlZmF1bHRzKHByZXJvdXRlX29wdF9kZXNpZ24pIGZhbHNlCi1zZXQgZmxvd19kZWZhdWx0cyhwb3N0Y3RzX3NldHVwX2hvbGQpIGZhbHNlCi1zZXQgZmxvd19kZWZhdWx0cyhyb3V0ZV9vcHRfZGVzaWduKSBmYWxzZQotc2V0IGZsb3dfZGVmYXVsdHMocG9zdHJvdXRlX3NldHVwX2hvbGQpIHRydWUKLSNzZXQgZmxvd19kZWZhdWx0cyhwb3N0cm91dGVfc3ByZWFkX3dpcmVzKSBmYWxzZQotc2V0IGZsb3dfZGVmYXVsdHModmVyaWZ5X2xpdGhvKSBmYWxzZQotc2V0IGZsb3dfZGVmYXVsdHMoZml4X2xpdGhvKSBmYWxzZQotI3NldCBmbG93X2RlZmF1bHRzKHBvc3Ryb3V0ZV9leHRyYWN0aW9uX2VmZm9ydCkgbG93Ci1zZXQgZmxvd19kZWZhdWx0cyhzaWdub2ZmX2V4dHJhY3Rpb25fZWZmb3J0KSBoaWdoCi1zZXQgZmxvd19kZWZhdWx0cyhob3N0cykgMQotc2V0IGZsb3dfZGVmYXVsdHModGhyZWFkcykgMQotc2V0IGZsb3dfZGVmYXVsdHMobG9jYWxfY3B1cykgMQotc2V0IGZsb3dfZGVmYXVsdHMocmVtb3RlX2hvc3RzKSAwCi1zZXQgZmxvd19kZWZhdWx0cyhjcHVzX3Blcl9yZW1vdGVfaG9zdCkgMQotc2V0IGZsb3dfZGVmYXVsdHMoYmFja3VwX2RhdGEpIDAKLXNldCBmbG93X2RlZmF1bHRzKHNhdmVfY29uc3RyYWludHMpIDAKLXNldCBmbG93X2RlZmF1bHRzKHVzZXJfY29tbWVudHMpIDAKLXNldCBmbG93X2RlZmF1bHRzKHBsYWNlLHRpbWVfZGVzaWduLHNraXApIHRydWUKLXNldCBmbG93X2RlZmF1bHRzKGN0cyx0aW1lX2Rlc2lnbixza2lwKSB0cnVlCi1zZXQgZmxvd19kZWZhdWx0cyhyb3V0ZSx0aW1lX2Rlc2lnbixza2lwKSB0cnVlCi1zZXQgZmxvd19kZWZhdWx0cyhyb3V0ZSxjaGVja19wbGFjZSxza2lwKSB0cnVlCi1zZXQgZmxvd19kZWZhdWx0cyhtYWtlX3Rvb2wpIGVuY291bnRlcgotc2V0IGZsb3dfZGVmYXVsdHMobWFrZV90b29sX2FyZ3MpICItNjQgLW5vd2luIgotc2V0IGZsb3dfZGVmYXVsdHMobWFrZV9zeW5fdG9vbCkgZ2VudXMKLXNldCBmbG93X2RlZmF1bHRzKG1ha2Vfc3luX3Rvb2xfYXJncykgIi02NCIKLXNldCBmbG93X2RlZmF1bHRzKG1ha2VfYnJvd3NlcikgbmV0c2NhcGUKZGlmZiAtLWdpdCBhL2Zsb3cvcG5yL1NDUklQVFMvRVRDL0lOTk9WVVMvZ2VuX29wdGlvbnMudGNsIGIvZmxvdy9wbnIvU0NSSVBUUy9FVEMvSU5OT1ZVUy9nZW5fb3B0aW9ucy50Y2wKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDUwMjYyMmQuLjAwMDAwMDAKLS0tIGEvZmxvdy9wbnIvU0NSSVBUUy9FVEMvSU5OT1ZVUy9nZW5fb3B0aW9ucy50Y2wKKysrIC9kZXYvbnVsbApAQCAtMSwxNjMgKzAsMCBAQAotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotIyAgICAgICAgICAgICAgICAgICAgICAgQ0FERU5DRSBDT1BZUklHSFQgTk9USUNFCi0jICAgICAgICAgqSAyMDA4LTIwMTMgQ2FkZW5jZSBEZXNpZ24gU3lzdGVtcywgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIwotIyBUaGlzIEZvdW5kYXRpb24gRmxvdyBpcyBwcm92aWRlZCBhcyBhbiBleGFtcGxlIG9mIGhvdyB0byBwZXJmb3JtIHNwZWNpYWxpemVkCi0jIHRhc2tzLgotIwotIyBUaGlzIHdvcmsgbWF5IG5vdCBiZSBjb3BpZWQsIHJlLXB1Ymxpc2hlZCwgdXBsb2FkZWQsIG9yIGRpc3RyaWJ1dGVkIGluIGFueSB3YXksCi0jIGluIGFueSBtZWRpdW0sIHdoZXRoZXIgaW4gd2hvbGUgb3IgaW4gcGFydCwgd2l0aG91dCBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24KLSMgZnJvbSBDYWRlbmNlLiBOb3R3aXRoc3RhbmRpbmcgYW55IHJlc3RyaWN0aW9ucyBoZXJlaW4sIHN1YmplY3QgdG8gY29tcGxpYW5jZQotIyB3aXRoIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB0aGUgQ2FkZW5jZSBzb2Z0d2FyZSBsaWNlbnNlIGFncmVlbWVudCB1bmRlcgotIyB3aGljaCB0aGlzIG1hdGVyaWFsIHdhcyBwcm92aWRlZCwgdGhpcyBtYXRlcmlhbCBtYXkgYmUgY29waWVkIGFuZCBpbnRlcm5hbGx5Ci0jIGRpc3RyaWJ1dGVkIHNvbGVseSBmb3IgaW50ZXJuYWwgcHVycG9zZXMgZm9yIHVzZSB3aXRoIENhZGVuY2UgdG9vbHMuCi0jCi0jIFRoaXMgd29yayBpcyBDYWRlbmNlIGludGVsbGVjdHVhbCBwcm9wZXJ0eSBhbmQgbWF5IHVuZGVyIG5vIGNpcmN1bXN0YW5jZXMgYmUKLSMgZ2l2ZW4gdG8gdGhpcmQgcGFydGllcywgbmVpdGhlciBpbiBvcmlnaW5hbCBub3IgaW4gbW9kaWZpZWQgdmVyc2lvbnMsIHdpdGhvdXQKLSMgZXhwbGljaXQgd3JpdHRlbiBwZXJtaXNzaW9uIGZyb20gQ2FkZW5jZS4gVGhlIGluZm9ybWF0aW9uIGNvbnRhaW5lZCBoZXJlaW4gaXMKLSMgdGhlIHByb3ByaWV0YXJ5IGFuZCBjb25maWRlbnRpYWwgaW5mb3JtYXRpb24gb2YgQ2FkZW5jZSBvciBpdHMgbGljZW5zb3JzLCBhbmQKLSMgaXMgc3VwcGxpZWQgc3ViamVjdCB0bywgYW5kIG1heSBiZSB1c2VkIG9ubHkgYnkgQ2FkZW5jZSdzIGN1cnJlbnQgY3VzdG9tZXJzCi0jIGluIGFjY29yZGFuY2Ugd2l0aCwgYSBwcmV2aW91c2x5IGV4ZWN1dGVkIGxpY2Vuc2UgYWdyZWVtZW50IGJldHdlZW4gQ2FkZW5jZQotIyBhbmQgaXRzIGN1c3RvbWVyLgotIwotIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIyBUSElTIE1BVEVSSUFMIElTIFBST1ZJREVEIEJZIENBREVOQ0UgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRAotIyBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRgotIyBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELgotIyBJTiBOTyBFVkVOVCBTSEFMTCBDQURFTkNFIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwKLSMgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwKLSMgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SCi0jIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgIE1BVEVSSUFMLCBFVkVOIElGCi0jIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCi1wcm9jIGdlbl9vcHRpb25zIHtmaWxlfSB7Ci0KLSAgIGdsb2JhbCBuYW1lcwotICAgZ2xvYmFsIG5vdGVzCi0gICBnbG9iYWwgZGVmYXVsdAotICAgZ2xvYmFsIHR5cGUKLSAgIGdsb2JhbCBjYXRlZ29yeQotCi0gICBzZXQgbmFtZXMgW2xpc3RdCi0KLSAgIHNldCBpcCBbb3BlbiAkZmlsZV0KLSAgIHdoaWxlIHtbZ2V0cyAkaXAgdGVtcF0+PTB9IHsKLSAgICAgIGlmIHtbcmVnZXhwICJeIyIgJHRlbXBdfSB7IGNvbnRpbnVlIH0KLSAgICAgIHNldCBsaW5lIFtzcGxpdCAkdGVtcCAiXF4iXQotICAgICAgcHV0cyAkbGluZQotICAgICAgc2V0IHZhciBbbGluZGV4ICRsaW5lIDBdCi0gICAgICBsYXBwZW5kIG5hbWVzICR2YXIKLSAgICAgIHNldCBjYXRlZ29yeSgkdmFyKSBbbGluZGV4ICRsaW5lIDFdCi0gICAgICBzZXQgdHlwZSgkdmFyKSBbbGluZGV4ICRsaW5lIDJdCi0gICAgICBzZXQgZGVmYXVsdCgkdmFyKSBbbGluZGV4ICRsaW5lIDNdCi0gICAgICBzZXQgbm90ZXMoJHZhcikgW2xpbmRleCAkbGluZSA0XQotICAgfQotICAgY2xvc2UgJGlwCi0KLSAgIHB1dHMgIltsbGVuZ3RoICRuYW1lc10gdmFyaWFibGVzIHByb2Nlc3NlZCIKLQotICAgc2V0IG9wIFtvcGVuIG9wdGlvbnMudGNsIHddCi0gICBmb3JlYWNoIHZhciAkbmFtZXMgewotICAgICAgc3dpdGNoIC1nbG9iICR2YXIgIHsKLSAgICAgICAgICJsaWJyYXJ5X3NldHMiIHsKLSAgICAgICAgICAgIHB1dHMgJG9wICJzZXQgdmFycygkdmFyKSBcW2xpc3QgbGlicmFyeV9zZXRcXSIKLSAgICAgICAgIH0KLSAgICAgICAgICI8bGlicmFyeV9zZXQqIiB7Ci0gICAgICAgICAgICByZWdzdWIgIjwiICR2YXIgIiIgdGVtcAotICAgICAgICAgICAgcmVnc3ViICI+IiAkdGVtcCAiIiBzdmFyCi0gICAgICAgICAgICBwdXRzICRvcCAic2V0IHZhcnMoJHN2YXIpICRub3RlcygkdmFyKSIKLSAgICAgICAgIH0gCi0gICAgICAgICAicmNfY29ybmVycyIgewotICAgICAgICAgICAgcHV0cyAkb3AgInNldCB2YXJzKCR2YXIpIFxbbGlzdCByY19jb3JuZXJcXSIKLSAgICAgICAgIH0KLSAgICAgICAgICI8cmNfY29ybmVyKiIgewotICAgICAgICAgICAgcmVnc3ViICI8IiAkdmFyICIiIHRlbXAKLSAgICAgICAgICAgIHJlZ3N1YiAiPiIgJHRlbXAgIiIgc3ZhcgotICAgICAgICAgICAgc3dpdGNoIC1nbG9iIFtsaW5kZXggW3NwbGl0ICRzdmFyICIsIl0gMV0gewotICAgICAgICAgICAgICAgImNhcF90YWJsZSIgeyAKLSAgICAgICAgICAgICAgICAgIHB1dHMgJG9wICJzZXQgdmFycygkc3ZhcikgJG5vdGVzKCR2YXIpIgotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgInF4X3RlY2hfZmlsZSIgeyAKLSAgICAgICAgICAgICAgICAgIHB1dHMgJG9wICJzZXQgdmFycygkc3ZhcikgJG5vdGVzKCR2YXIpIgotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgImRlZmF1bHQiIHsKLSAgICAgICAgICAgICAgICAgIGlmIHtbcmVnZXhwICJwb3N0X3JvdXRlIiAkc3Zhcl19IHsKLSAgICAgICAgICAgICAgICAgICAgIHB1dHMgJG9wICJzZXQgdmFycygkc3ZhcikgezEuMDAgMS4wMCAxLjAwfSIKLSAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICBwdXRzICRvcCAic2V0IHZhcnMoJHN2YXIpIDEuMDAiCi0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgICB9IAotICAgICAgICAgImRlbGF5X2Nvcm5lcnMiIHsKLSAgICAgICAgICAgIHB1dHMgJG9wICJzZXQgdmFycygkdmFyKSBcW2xpc3QgZGVsYXlfY29ybmVyXF0iCi0gICAgICAgICB9Ci0gICAgICAgICAiPGRlbGF5X2Nvcm5lcioiIHsKLSAgICAgICAgICAgIHJlZ3N1YiAiPCIgJHZhciAiIiB0ZW1wCi0gICAgICAgICAgICByZWdzdWIgIj4iICR0ZW1wICIiIHZhcgotICAgICAgICAgICAgc3dpdGNoIC1nbG9iIFtsaW5kZXggW3NwbGl0ICR2YXIgIiwiXSAxXSB7Ci0gICAgICAgICAgICAgICAicmNfY29ybmVyIiB7Ci0gICAgICAgICAgICAgICAgICBwdXRzICRvcCAic2V0IHZhcnMoJHZhcikge3JjX2Nvcm5lcn0iCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAibGlicmFyeV9zZXQiIHsKLSAgICAgICAgICAgICAgICAgIHB1dHMgJG9wICJzZXQgdmFycygkdmFyKSB7bGlicmFyeV9zZXR9IgotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgImRlZmF1bHQiIHsKLSAgICAgICAgICAgICAgICAgIHB1dHMgJG9wICJzZXQgdmFycygkdmFyKSAxLjAwIgotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfSAKLSAgICAgICAgIH0KLSAgICAgICAgICJjb25zdHJhaW50X21vZGVzIiB7Ci0gICAgICAgICAgICBwdXRzICRvcCAic2V0IHZhcnMoJHZhcikgXFtsaXN0IGNvbnN0cmFpbnRfbW9kZVxdIgotICAgICAgICAgfQotICAgICAgICAgIjxjb25zdHJhaW50X21vZGUqIiB7Ci0gICAgICAgICAgICByZWdzdWIgIjwiICR2YXIgIiIgdGVtcAotICAgICAgICAgICAgcmVnc3ViICI+IiAkdGVtcCAiIiB2YXIKLSAgICAgICAgICAgIHN3aXRjaCAtZ2xvYiBbbGluZGV4IFtzcGxpdCAkdmFyICIsIl0gMV0gewotICAgICAgICAgICAgICAgInByZV9jdHNfc2RjIiB7Ci0gICAgICAgICAgICAgICAgICBwdXRzICRvcCAic2V0IHZhcnMoJHZhcikge3NkY19maWxlfSIKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICJwb3N0X2N0c19zZGMiIHsKLSAgICAgICAgICAgICAgICAgIHB1dHMgJG9wICJzZXQgdmFycygkdmFyKSB7c2RjX2ZpbGV9IgotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfSAKLSAgICAgICAgIH0KLSAgICAgICAgICIqc2V0dXAqdmlldyoiIHsKLSAgICAgICAgICAgIHB1dHMgJG9wICJzZXQgdmFycygkdmFyKSB7c2V0dXBfdmlld30iCi0gICAgICAgICAgICBwdXRzICRvcCAic2V0IHZhcnMoc2V0dXBfdmlldyxkZWxheV9jb3JuZXIpIHtkZWxheV9jb3JuZXJ9IgotICAgICAgICAgICAgcHV0cyAkb3AgInNldCB2YXJzKHNldHVwX3ZpZXcsY29uc3RyYWludF9tb2RlKSB7Y29uc3RyYWludF9tb2RlfSIKLSAgICAgICAgIH0KLSAgICAgICAgICIqaG9sZCp2aWV3KiIgewotICAgICAgICAgICAgcHV0cyAkb3AgInNldCB2YXJzKCR2YXIpIHtob2xkX3ZpZXd9IgotICAgICAgICAgICAgcHV0cyAkb3AgInNldCB2YXJzKGhvbGRfdmlldyxkZWxheV9jb3JuZXIpIHtkZWxheV9jb3JuZXJ9IgotICAgICAgICAgICAgcHV0cyAkb3AgInNldCB2YXJzKGhvbGRfdmlldyxjb25zdHJhaW50X21vZGUpIHtjb25zdHJhaW50X21vZGV9IgotICAgICAgICAgfQotICAgICAgICAgImFuYWx5c2lzX3ZpZXdzIiB7Ci0gICAgICAgICAgICBwdXRzICRvcCAic2V0IHZhcnMoYW5hbHlzaXNfdmlld3MpIHtzZXR1cF92aWV3IGhvbGRfdmlld30iCi0gICAgICAgICB9Ci0gICAgICAgICBkZWZhdWx0IHsKLSAgICAgICAgICAgIGlmIHskdHlwZSgkdmFyKSA9PSAiZW51bSJ9IHsKLSAgICAgICAgICAgICAgIHB1dHMgJG9wICJzZXQgdmFycygkdmFyKSAkbm90ZXMoJHZhcikiCi0gICAgICAgICAgICB9IGVsc2VpZiB7JHR5cGUoJHZhcikgPT0gImxpc3QifSB7Ci0gICAgICAgICAgICAgICByZWdzdWIgIjwiICRub3RlcygkdmFyKSAiIiB0ZW1wCi0gICAgICAgICAgICAgICByZWdzdWIgIj4iICR0ZW1wICIiIG5vdGVzKCR2YXIpCi0gICAgICAgICAgICAgICByZWdzdWIgInsiICRub3RlcygkdmFyKSAiIiB0ZW1wCi0gICAgICAgICAgICAgICByZWdzdWIgIn0iICR0ZW1wICIiIG5vdGVzKCR2YXIpCi0gICAgICAgICAgICAgICBwdXRzICRvcCAic2V0IHZhcnMoJHZhcikge2xpc3Qgb2YgJG5vdGVzKCR2YXIpfSIKLSAgICAgICAgICAgIH0gZWxzZWlmIHskY2F0ZWdvcnkoJHZhcikgPT0gInBsdWctaW4ifSB7Ci0gICAgICAgICAgICAgICBwdXRzICRvcCAic2V0IHZhcnMoJHZhcikgJG5vdGVzKCR2YXIpIgotICAgICAgICAgICAgfSBlbHNlaWYgeyRkZWZhdWx0KCR2YXIpICE9ICJVTkRFRklORUQifSB7Ci0gICAgICAgICAgICAgICBwdXRzICRvcCAic2V0IHZhcnMoJHZhcikgJGRlZmF1bHQoJHZhcikiCi0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgcHV0cyAkb3AgInNldCB2YXJzKCR2YXIpIHskdHlwZSgkdmFyKX0iCi0gICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0gICAgICB9Ci0gICB9Ci0gICBjbG9zZSAkb3AKLQotfQotCi1nZW5fb3B0aW9ucyAkYXJndgpkaWZmIC0tZ2l0IGEvZmxvdy9wbnIvU0NSSVBUUy9FVEMvSU5OT1ZVUy9nZW5lcmljLmNvbmYgYi9mbG93L3Buci9TQ1JJUFRTL0VUQy9JTk5PVlVTL2dlbmVyaWMuY29uZgpkZWxldGVkIGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggOTk4NTMyMS4uMDAwMDAwMAotLS0gYS9mbG93L3Buci9TQ1JJUFRTL0VUQy9JTk5PVlVTL2dlbmVyaWMuY29uZgorKysgL2Rldi9udWxsCkBAIC0xLDE3NyArMCwwIEBACi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0jICAgICAgICAgICAgICAgICAgICAgICBDQURFTkNFIENPUFlSSUdIVCBOT1RJQ0UKLSMgICAgICAg77+9IDIwMDgtMjAwOSBDYWRlbmNlIERlc2lnbiBTeXN0ZW1zLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0jCi0jIFRoaXMgRm91bmRhdGlvbiBGbG93IGlzIHByb3ZpZGVkIGFzIGFuIGV4YW1wbGUgb2YgaG93IHRvIHBlcmZvcm0gc3BlY2lhbGl6ZWQKLSMgdGFza3Mgd2l0aGluIElubm92dXMgU3lzdGVtLgotIwotIyBUaGlzIHdvcmsgbWF5IG5vdCBiZSBjb3BpZWQsIHJlLXB1Ymxpc2hlZCwgdXBsb2FkZWQsIG9yIGRpc3RyaWJ1dGVkIGluIGFueSB3YXksCi0jIGluIGFueSBtZWRpdW0sIHdoZXRoZXIgaW4gd2hvbGUgb3IgaW4gcGFydCwgd2l0aG91dCBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24KLSMgZnJvbSBDYWRlbmNlLiBOb3R3aXRoc3RhbmRpbmcgYW55IHJlc3RyaWN0aW9ucyBoZXJlaW4sIHN1YmplY3QgdG8gY29tcGxpYW5jZQotIyB3aXRoIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB0aGUgQ2FkZW5jZSBzb2Z0d2FyZSBsaWNlbnNlIGFncmVlbWVudCB1bmRlcgotIyB3aGljaCB0aGlzIG1hdGVyaWFsIHdhcyBwcm92aWRlZCwgdGhpcyBtYXRlcmlhbCBtYXkgYmUgY29waWVkIGFuZCBpbnRlcm5hbGx5Ci0jIGRpc3RyaWJ1dGVkIHNvbGVseSBmb3IgaW50ZXJuYWwgcHVycG9zZXMgZm9yIHVzZSB3aXRoIENhZGVuY2UgdG9vbHMuCi0jCi0jIFRoaXMgd29yayBpcyBDYWRlbmNlIGludGVsbGVjdHVhbCBwcm9wZXJ0eSBhbmQgbWF5IHVuZGVyIG5vIGNpcmN1bXN0YW5jZXMgYmUKLSMgZ2l2ZW4gdG8gdGhpcmQgcGFydGllcywgbmVpdGhlciBpbiBvcmlnaW5hbCBub3IgaW4gbW9kaWZpZWQgdmVyc2lvbnMsIHdpdGhvdXQKLSMgZXhwbGljaXQgd3JpdHRlbiBwZXJtaXNzaW9uIGZyb20gQ2FkZW5jZS4gVGhlIGluZm9ybWF0aW9uIGNvbnRhaW5lZCBoZXJlaW4gaXMKLSMgdGhlIHByb3ByaWV0YXJ5IGFuZCBjb25maWRlbnRpYWwgaW5mb3JtYXRpb24gb2YgQ2FkZW5jZSBvciBpdHMgbGljZW5zb3JzLCBhbmQKLSMgaXMgc3VwcGxpZWQgc3ViamVjdCB0bywgYW5kIG1heSBiZSB1c2VkIG9ubHkgYnkgQ2FkZW5jZSdzIGN1cnJlbnQgY3VzdG9tZXJzCi0jIGluIGFjY29yZGFuY2Ugd2l0aCwgYSBwcmV2aW91c2x5IGV4ZWN1dGVkIGxpY2Vuc2UgYWdyZWVtZW50IGJldHdlZW4gQ2FkZW5jZQotIyBhbmQgaXRzIGN1c3RvbWVyLgotIwotIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIyBUSElTIE1BVEVSSUFMIElTIFBST1ZJREVEIEJZIENBREVOQ0UgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRAotIyBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRgotIyBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELgotIyBJTiBOTyBFVkVOVCBTSEFMTCBDQURFTkNFIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwKLSMgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwKLSMgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SCi0jIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgIE1BVEVSSUFMLCBFVkVOIElGCi0jIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCi1nbG9iYWwgdmFycwotZ2xvYmFsIHJkYV9JbnB1dAotI2lmIHskdmFycyhmbG93KSA9PSAiZGVmYXVsdCJ9IHsKLSMgICBzZXQgdmFycyhjYXB0YmxfZmlsZSkgJHZhcnMod2NfY2FwX3RhYmxlKQotI30KLXNldCByZGFfSW5wdXQoYXNzaWduX2J1ZmZlcikgJHZhcnMoYXNzaWduX2J1ZmZlcikKLXNldCByZGFfSW5wdXQoZG91YmxlX2JhY2spICR2YXJzKGRvdWJsZV9iYWNrKQotc2V0IHJkYV9JbnB1dChmbGlwX2ZpcnN0KSAkdmFycyhmbGlwX2ZpcnN0X3JvdykKLXNldCByZGFfSW5wdXQoaW1wb3J0X21vZGUpICR2YXJzKGltcG9ydF9tb2RlKQotc2V0IHJkYV9JbnB1dCh1aV9hcmVhaW9saWIpICR2YXJzKGFyZWFfaW9fbGliKQotc2V0IHJkYV9JbnB1dCh1aV9hc3BlY3RfcmF0aW8pICR2YXJzKGFzcGVjdF9yYXRpbykKLXNldCByZGFfSW5wdXQodWlfYmxrbGliKSAkdmFycyhibGtfbGliKQotc2V0IHJkYV9JbnB1dCh1aV9idWZfZm9vdHByaW50KSAkdmFycyhidWZfZm9vdHByaW50KQotc2V0IHJkYV9JbnB1dCh1aV9jYXBfdW5pdCkgJHZhcnMoY2FwX3VuaXQpCi1zZXQgcmRhX0lucHV0KHVpX2NhcHRibF9maWxlKSAkdmFycyhjYXB0YmxfZmlsZSkKLXNldCByZGFfSW5wdXQodWlfY2RiX2ZpbGUpICR2YXJzKGNkYl9maWxlKQotc2V0IHJkYV9JbnB1dCh1aV9jZGJfZmlsZSxtYXgpICR2YXJzKGNkYl9maWxlLG1heCkKLXNldCByZGFfSW5wdXQodWlfY2RiX2ZpbGUsbWluKSAkdmFycyhjZGJfZmlsZSxtaW4pCi1zZXQgcmRhX0lucHV0KHVpX2NlbGxsaWIpICR2YXJzKGNlbGxsaWIpCi1zZXQgcmRhX0lucHV0KHVpX2NvcmVfY250bCkgJHZhcnMoY29yZV9jb250cm9sKQotc2V0IHJkYV9JbnB1dCh1aV9jb3JlX2hlaWdodCkgJHZhcnMoY29yZV9oZWlnaHQpCi1zZXQgcmRhX0lucHV0KHVpX2NvcmVfdG9fYm90dG9tKSAkdmFycyhjb3JlX3RvX2JvdHRvbSkKLXNldCByZGFfSW5wdXQodWlfY29yZV90b19sZWZ0KSAkdmFycyhjb3JlX3RvX2xlZnQpCi1zZXQgcmRhX0lucHV0KHVpX2NvcmVfdG9fcmlnaHQpICR2YXJzKGNvcmVfdG9fcmlnaHQpCi1zZXQgcmRhX0lucHV0KHVpX2NvcmVfdG9fdG9wKSAkdmFycyhjb3JlX3RvX3RvcCkKLXNldCByZGFfSW5wdXQodWlfY29yZV91dGlsKSAkdmFycyhjb3JlX3V0aWwpCi1zZXQgcmRhX0lucHV0KHVpX2NvcmVfd2lkdGgpICR2YXJzKGNvcmVfd2lkdGgpCi1zZXQgcmRhX0lucHV0KHVpX2N0c19jZWxsX2Zvb3RwcmludCkgJHZhcnMoY3RzX2NlbGxfZm9vdHByaW50KQotc2V0IHJkYV9JbnB1dCh1aV9jdHNfY2VsbF9saXN0KSAkdmFycyhjdHNfY2VsbF9saXN0KQotaWYge1tpbmZvIGV4aXN0cyB2YXJzKGNvdXBsaW5nX2NfdGhyZXNoKV19IHsKLSAgIHNldCByZGFfSW5wdXQodWlfY3BsX2NfdGhyZXNoKSAkdmFycyhjb3VwbGluZ19jX3RocmVzaCkKLX0KLWlmIHtbaW5mbyBleGlzdHMgdmFycyhkZWZfY2FwX2ZhY3RvcildfSB7Ci0gICBzZXQgcmRhX0lucHV0KHVpX3ByZVJvdXRlX2NhcCkgJHZhcnMoZGVmX2NhcF9mYWN0b3IpCi19Ci1pZiB7W2luZm8gZXhpc3RzIHZhcnMoZGV0X2NhcF9mYWN0b3IpXX0gewotICAgc2V0IHJkYV9JbnB1dCh1aV9wb3N0Um91dGVfY2FwKSAkdmFycyhkZXRfY2FwX2ZhY3RvcikKLX0KLWlmIHtbaW5mbyBleGlzdHMgdmFycyhkZWZfcmVzX2ZhY3RvcildfSB7Ci0gICBzZXQgcmRhX0lucHV0KHVpX3ByZVJvdXRlX3JlcykgJHZhcnMoZGVmX3Jlc19mYWN0b3IpCi19Ci1pZiB7W2luZm8gZXhpc3RzIHZhcnMoZGV0X3Jlc19mYWN0b3IpXX0gewotICAgc2V0IHJkYV9JbnB1dCh1aV9wb3N0Um91dGVfcmVzKSAkdmFycyhkZXRfcmVzX2ZhY3RvcikKLX0KLWlmIHtbaW5mbyBleGlzdHMgdmFycyhkZXRfeGNhcF9mYWN0b3IpXX0gewotICAgc2V0IHJkYV9JbnB1dCh1aV94Y2FwX3NjYWxlKSAkdmFycyhkZXRfeGNhcF9mYWN0b3IpCi19Ci1zZXQgcmRhX0lucHV0KHVpX2RlbGF5X2Zvb3RwcmludCkgJHZhcnMoZGVsX2Zvb3RwcmludCkKLXNldCByZGFfSW5wdXQodWlfZGVsYXlfbGltaXQpICR2YXJzKGRlbGF5X2xpbWl0KQotc2V0IHJkYV9JbnB1dCh1aV9kcGF0aCkgJHZhcnMoZGF0YV9wYXRoKQotc2V0IHJkYV9JbnB1dCh1aV9lY2hvX2ZpbGUpICR2YXJzKGVjaG9fZmlsZSkKLXNldCByZGFfSW5wdXQodWlfZWNob19maWxlLG1heCkgJHZhcnMoZWNob19maWxlLG1heCkKLXNldCByZGFfSW5wdXQodWlfZWNob19maWxlLG1pbikgJHZhcnMoZWNob19maWxlLG1pbikKLXNldCByZGFfSW5wdXQodWlfZXhjX25ldCkgJHZhcnMoZXhjbHVkZV9uZXRzKQotc2V0IHJkYV9JbnB1dCh1aV9nZHNfZmlsZSkgIiIKLXNldCByZGFfSW5wdXQodWlfZ2VuX2Zvb3RwcmludCkgJHZhcnMoZ2VuX2Zvb3RwcmludCkKLSNzZXQgdmFycyhpbG1fZGlyKSAiIgotI2lmIHtbaW5mbyBleGlzdHMgdmFycyhpbG1fbGlzdCldfSB7Ci0jICAgZm9yZWFjaCBjZWxsICR2YXJzKGlsbV9saXN0KSB7Ci0jICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCRjZWxsLGlsbV9kaXIpXX0gewotIyAgICAgICAgIGxhcHBlbmQgdmFycyhpbG1fZGlyKSAkY2VsbAotIyAgICAgICAgIGxhcHBlbmQgdmFycyhpbG1fZGlyKSAkdmFycygkY2VsbCxpbG1fZGlyKQotIyAgICAgIH0gZWxzZSB7Ci0jICAgICAgICAgUHV0cyAiPEZGPiBXQVJOSU5HOiBJTE0gRElSRUNUT1JZIE1JU1NJTkcgRk9SICRjZWxsIC4uLiBTS0lQUElORyIKLSMgICAgICB9Ci0jICAgfQotI30KLSNzZXQgcmRhX0lucHV0KHVpX2lsbWRpcikgJHZhcnMoaWxtX2RpcikKLSNzZXQgcmRhX0lucHV0KHVpX2lsbWxpc3QpICR2YXJzKGlsbV9saXN0KQotI3NldCByZGFfSW5wdXQodWlfaWxtc3BlZikgJHZhcnMoaWxtX3NwZWYpCi1zZXQgcmRhX0lucHV0KHVpX2lsbWRpcikge30KLXNldCByZGFfSW5wdXQodWlfaWxtbGlzdCkge30KLXNldCByZGFfSW5wdXQodWlfaWxtc3BlZikge30KLXNldCByZGFfSW5wdXQodWlfaW5fdHJhbl9kZWxheSkgJHZhcnMoZGVmYXVsdF9zbGV3KQotc2V0IHJkYV9JbnB1dCh1aV9pbnZfZm9vdHByaW50KSAkdmFycyhpbnZfZm9vdHByaW50KQotc2V0IHJkYV9JbnB1dCh1aV9pb09yaSkgJHZhcnMoaW9fb3JpZW50YXRpb24pCi1zZXQgcmRhX0lucHV0KHVpX2lvX2ZpbGUpICR2YXJzKGlvX2ZpbGUpCi1zZXQgcmRhX0lucHV0KHVpX2lvbGliKSAkdmFycyhpb19saWIpCi1zZXQgcmRhX0lucHV0KHVpX2lzSG9yVHJhY2tIYWxmUGl0Y2gpICR2YXJzKGhvcl90cmFja19oYWxmX3BpdGNoKQotc2V0IHJkYV9JbnB1dCh1aV9pc09yaWdDZW50ZXIpICR2YXJzKGNlbnRlcl9vcmlnaW4pCi1zZXQgcmRhX0lucHV0KHVpX2lzVmVyVHJhY2tIYWxmUGl0Y2gpICR2YXJzKHZlcl90cmFja19oYWxmX3BpdGNoKQotc2V0IHJkYV9JbnB1dCh1aV9pc1ZlcnRpY2FsUm93KSAkdmFycyh2ZXJ0aWNhbF9yb3dzKQotc2V0IHJkYV9JbnB1dCh1aV9rYm94bGliKSAkdmFycyhrYm94X2xpYikKLXNldCByZGFfSW5wdXQodWlfbGF0ZW5jeV9maWxlKSAkdmFycyhsYXRlbmN5X2ZpbGUpCi1pZiB7W2luZm8gZXhpc3RzIHZhcnMobGVmX2ZpbGVzKV19IHsKLSAgIHNldCByZGFfSW5wdXQodWlfbGVmZmlsZSkgJHZhcnMobGVmX2ZpbGVzKQotfQotc2V0IHJkYV9JbnB1dCh1aV9sb2N2bGliKSAkdmFycyhsb2N2X2xpYikKLXNldCByZGFfSW5wdXQodWlfbWF4X2lvX2hlaWdodCkgJHZhcnMobWF4X2lvX2hlaWdodCkKLXNldCByZGFfSW5wdXQodWlfbmV0X2RlbGF5KSAkdmFycyhkZWZhdWx0X25ldF9kZWxheSkKLXNldCByZGFfSW5wdXQodWlfbmV0X2xvYWQpICR2YXJzKGRlZmF1bHRfbmV0X2xvYWQpCi1pZiB7W2luZm8gZXhpc3RzIHZhcnMobmV0bGlzdCldfSB7Ci0gICBzZXQgcmRhX0lucHV0KHVpX25ldGxpc3QpICR2YXJzKG5ldGxpc3QpCi19Ci1zZXQgcmRhX0lucHV0KHVpX25ldGxpc3R0eXBlKSAkdmFycyhuZXRsaXN0X3R5cGUpCi1zZXQgcmRhX0lucHV0KHVpX29hX2Fic3RyYWN0bmFtZSkgJHZhcnMob2FfYWJzdHJhY3RfbmFtZSkKLXNldCByZGFfSW5wdXQodWlfb2FfbGF5b3V0bmFtZSkgJHZhcnMob2FfbGF5b3V0X25hbWUpCi1zZXQgcmRhX0lucHV0KHVpX29hX29hMmxlZnZlcnNpb24pICR2YXJzKG9hMmxlZnZlcnNpb24pCi1zZXQgcmRhX0lucHV0KHVpX29hX3JlZmxpYikgJHZhcnMob2FfcmVmX2xpYikKLXNldCByZGFfSW5wdXQodWlfb2FfZGVzaWduTGliKSAkdmFycyhvYV9kZXNpZ25fbGliKQotc2V0IHJkYV9JbnB1dCh1aV9vYV9kZXNpZ25DZWxsKSAkdmFycyhvYV9kZXNpZ25fY2VsbCkKLXNldCByZGFfSW5wdXQodWlfb2FfZGVzaWduVmlldykgJHZhcnMob2FfZGVzaWduX3ZpZXcpCi0KLSNpZiB7W2luZm8gZXhpc3RzIHZhcnMocGdfY29ubmVjdGlvbnMpXX0gewotIyAgIHNldCByZGFfSW5wdXQodWlfcGdfY29ubmVjdGlvbnMpICR2YXJzKHBnX2Nvbm5lY3Rpb25zKQotIyAgIGZvcmVhY2ggY29ubmVjdGlvbiAkdmFycyhwZ19jb25uZWN0aW9ucykgewotIyAgICAgIHNldCByZGFfSW5wdXQoJGNvbm5lY3Rpb24pICR2YXJzKCRjb25uZWN0aW9uKQotIyAgIH0KLSN9Ci1zZXQgcmRhX0lucHV0KHVpX3B3cm5ldCkgJHZhcnMocG93ZXJfbmV0cykKLXNldCByZGFfSW5wdXQodWlfZ25kbmV0KSAkdmFycyhncm91bmRfbmV0cykKLXNldCByZGFfSW5wdXQodWlfcXhjb25mX2ZpbGUpICR2YXJzKHF4Y29uZl9maWxlKQotc2V0IHJkYV9JbnB1dCh1aV9xeGxheWVybWFwX2ZpbGUpICR2YXJzKHF4bGF5ZXJtYXBfZmlsZSkKLXNldCByZGFfSW5wdXQodWlfcXhsaWJfZmlsZSkgJHZhcnMocXhsaWJfZmlsZSkKLXNldCByZGFfSW5wdXQodWlfcXh0ZWNoX2ZpbGUpICR2YXJzKHF4dGVjaF9maWxlKQotaWYge1tpbmZvIGV4aXN0cyB2YXJzKHJlbGF0aXZlX2NfdGhyZXNoKV19IHsKLSAgIHNldCByZGFfSW5wdXQodWlfcmVsX2NfdGhyZXNoKSAkdmFycyhyZWxhdGl2ZV9jX3RocmVzaCkKLX0KLXNldCByZGFfSW5wdXQodWlfcm93X2hlaWdodCkgJHZhcnMocm93X2hlaWdodCkKLXNldCByZGFfSW5wdXQodWlfcnRsbGlzdCkgJHZhcnMocnRsX2xpc3QpCi1zZXQgcmRhX0lucHV0KHVpX3NjaGVkdWxpbmdfZmlsZSkgJHZhcnMoc2NoZWR1bGluZ19maWxlKQotc2V0IHJkYV9JbnB1dCh1aV9zZXR0b3ApICR2YXJzKHNldF90b3BfY2VsbCkKLXNldCByZGFfSW5wdXQodWlfc2hyX3NjYWxlKSAkdmFycyhzaHJfc2NhbGUpCi1zZXQgcmRhX0lucHV0KHVpX3NpZ3N0b3JtbGliKSAkdmFycyhzaWduYWxzdG9ybV9saWIpCi1zZXQgcmRhX0lucHV0KHVpX3Ntb2REYXRhKSAkdmFycyhzbW9kX2RhdGEpCi1zZXQgcmRhX0lucHV0KHVpX3Ntb2REZWYpICR2YXJzKHNtb2RfZGVmKQotc2V0IHJkYV9JbnB1dCh1aV90ZWNoX2ZpbGUpICR2YXJzKHRlY2hfZmlsZSkKLXNldCByZGFfSW5wdXQodWlfdGltZV91bml0KSAkdmFycyh0aW1lX3VuaXQpCi1zZXQgcmRhX0lucHV0KHVpX3RpbWVsaWIpICR2YXJzKHRpbWVsaWIpCi1zZXQgcmRhX0lucHV0KHVpX3RpbWVsaWIsbWF4KSAkdmFycyh0aW1lbGliLG1heCkKLXNldCByZGFfSW5wdXQodWlfdGltZWxpYixtaW4pICR2YXJzKHRpbWVsaWIsbWluKQotaWYge1tpbmZvIGV4aXN0cyB2YXJzKHRpbWluZ2Nvbl9maWxlKV19IHsKLSAgIHNldCByZGFfSW5wdXQodWlfdGltaW5nY29uX2ZpbGUpICR2YXJzKHRpbWluZ2Nvbl9maWxlKQotfQotaWYge1tpbmZvIGV4aXN0cyB2YXJzKHRpbWluZ2Nvbl9maWxlLGZ1bGwpXX0gewotICAgc2V0IHJkYV9JbnB1dCh1aV90aW1pbmdjb25fZmlsZSxmdWxsKSAkdmFycyh0aW1pbmdjb25fZmlsZSxmdWxsKQotfQotc2V0IHJkYV9JbnB1dCh1aV90b3BjZWxsKSAkdmFycyhkZXNpZ24pCi1pZiB7W2luZm8gZXhpc3RzIHZhcnModG90YWxfY190aHJlc2gpXX0gewotICAgc2V0IHJkYV9JbnB1dCh1aV90b3RfY190aHJlc2gpICR2YXJzKHRvdGFsX2NfdGhyZXNoKQotfQotc2V0IHJkYV9JbnB1dCh1aV92aWV3X2RlZmluaXRpb25fZmlsZSkgJHZhcnModmlld19kZWZpbml0aW9uX2ZpbGUpCi1zZXQgcmRhX0lucHV0KHVpX3h0d2ZfZmlsZSkgJHZhcnMoeHRhbGtfdHdmX2ZpbGUpCmRpZmYgLS1naXQgYS9mbG93L3Buci9TQ1JJUFRTL0VUQy9JTk5PVlVTL2hlYWRlci50Y2wgYi9mbG93L3Buci9TQ1JJUFRTL0VUQy9JTk5PVlVTL2hlYWRlci50Y2wKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDU2ZTg5NmIuLjAwMDAwMDAKLS0tIGEvZmxvdy9wbnIvU0NSSVBUUy9FVEMvSU5OT1ZVUy9oZWFkZXIudGNsCisrKyAvZGV2L251bGwKQEAgLTEsNDAgKzAsMCBAQAotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotIyAgICAgICAgICAgICAgICAgICAgICAgQ0FERU5DRSBDT1BZUklHSFQgTk9USUNFCi0jICAgICAgICAgqSAyMDA4LTIwMTMgQ2FkZW5jZSBEZXNpZ24gU3lzdGVtcywgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIwotIyBUaGlzIEZvdW5kYXRpb24gRmxvdyBpcyBwcm92aWRlZCBhcyBhbiBleGFtcGxlIG9mIGhvdyB0byBwZXJmb3JtIHNwZWNpYWxpemVkCi0jIHRhc2tzLgotIwotIyBUaGlzIHdvcmsgbWF5IG5vdCBiZSBjb3BpZWQsIHJlLXB1Ymxpc2hlZCwgdXBsb2FkZWQsIG9yIGRpc3RyaWJ1dGVkIGluIGFueSB3YXksCi0jIGluIGFueSBtZWRpdW0sIHdoZXRoZXIgaW4gd2hvbGUgb3IgaW4gcGFydCwgd2l0aG91dCBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24KLSMgZnJvbSBDYWRlbmNlLiBOb3R3aXRoc3RhbmRpbmcgYW55IHJlc3RyaWN0aW9ucyBoZXJlaW4sIHN1YmplY3QgdG8gY29tcGxpYW5jZQotIyB3aXRoIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB0aGUgQ2FkZW5jZSBzb2Z0d2FyZSBsaWNlbnNlIGFncmVlbWVudCB1bmRlcgotIyB3aGljaCB0aGlzIG1hdGVyaWFsIHdhcyBwcm92aWRlZCwgdGhpcyBtYXRlcmlhbCBtYXkgYmUgY29waWVkIGFuZCBpbnRlcm5hbGx5Ci0jIGRpc3RyaWJ1dGVkIHNvbGVseSBmb3IgaW50ZXJuYWwgcHVycG9zZXMgZm9yIHVzZSB3aXRoIENhZGVuY2UgdG9vbHMuCi0jCi0jIFRoaXMgd29yayBpcyBDYWRlbmNlIGludGVsbGVjdHVhbCBwcm9wZXJ0eSBhbmQgbWF5IHVuZGVyIG5vIGNpcmN1bXN0YW5jZXMgYmUKLSMgZ2l2ZW4gdG8gdGhpcmQgcGFydGllcywgbmVpdGhlciBpbiBvcmlnaW5hbCBub3IgaW4gbW9kaWZpZWQgdmVyc2lvbnMsIHdpdGhvdXQKLSMgZXhwbGljaXQgd3JpdHRlbiBwZXJtaXNzaW9uIGZyb20gQ2FkZW5jZS4gVGhlIGluZm9ybWF0aW9uIGNvbnRhaW5lZCBoZXJlaW4gaXMKLSMgdGhlIHByb3ByaWV0YXJ5IGFuZCBjb25maWRlbnRpYWwgaW5mb3JtYXRpb24gb2YgQ2FkZW5jZSBvciBpdHMgbGljZW5zb3JzLCBhbmQKLSMgaXMgc3VwcGxpZWQgc3ViamVjdCB0bywgYW5kIG1heSBiZSB1c2VkIG9ubHkgYnkgQ2FkZW5jZSdzIGN1cnJlbnQgY3VzdG9tZXJzCi0jIGluIGFjY29yZGFuY2Ugd2l0aCwgYSBwcmV2aW91c2x5IGV4ZWN1dGVkIGxpY2Vuc2UgYWdyZWVtZW50IGJldHdlZW4gQ2FkZW5jZQotIyBhbmQgaXRzIGN1c3RvbWVyLgotIwotIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIyBUSElTIE1BVEVSSUFMIElTIFBST1ZJREVEIEJZIENBREVOQ0UgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRAotIyBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRgotIyBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELgotIyBJTiBOTyBFVkVOVCBTSEFMTCBDQURFTkNFIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwKLSMgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwKLSMgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SCi0jIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgIE1BVEVSSUFMLCBFVkVOIElGCi0jIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCi0jIS91c3IvYmluL3RjbHNoCi1zZXQgdmFycyhqb3VybmFsKSB0cnVlCi1zZXQgdmFycyhkYnNfZGlyKSBKTkwKLXNldCBlbnYoVlBBVEgpIGptYWtlCi1wcm9jIFB1dHMgYXJncyB7fSAKLXByb2Mgc2xlZXAgYXJncyB7IH0KZGlmZiAtLWdpdCBhL2Zsb3cvcG5yL1NDUklQVFMvRVRDL0lOTk9WVVMvbWFwX2F0dHIudGNsIGIvZmxvdy9wbnIvU0NSSVBUUy9FVEMvSU5OT1ZVUy9tYXBfYXR0ci50Y2wKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDMzNmJkNDMuLjAwMDAwMDAKLS0tIGEvZmxvdy9wbnIvU0NSSVBUUy9FVEMvSU5OT1ZVUy9tYXBfYXR0ci50Y2wKKysrIC9kZXYvbnVsbApAQCAtMSwyNDEgKzAsMCBAQAotIyBQb3RlbnRpYWwgZmxvdyBjb250cm9sCi0jIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLQotI3NldCBoZWxwKHN0ZXBzKSBmbG93X3N0ZXBzCi0KLSNzZXQgYXR0cihlbmFibGVfYW9jdikgInRpbWluZ19lbmFibGVfYW9jdl9hbmFseXNpcyIKLSNzZXQgYXR0cihlbmFibGVfY3BwcikgInRpbWluZ19hbmFseXNpc19jcHByIgotI3NldCBhdHRyKGVuYWJsZV9vY3YpICJ0aW1pbmdfYW5hbHlzaXNfdHlwZSIKLSNzZXQgYXR0cihlbmFibGVfc2lfYXdhcmUpICJ0aW1pbmdfYW5hbHlzaXNfc2lfYXdhcmUiCi0KLSNzZXQgYXR0cihlbmFibGVfcGFjKSBib29sZWFuIChkZWxldGUpCi0jc2V0IGF0dHIoZW5hYmxlX2RsbSkgYm9vbGVhbiAoZGVsZXRlKQotI3NldCBhdHRyKGVuYWJsZV9mbGV4aWxtKSBib29sZWFuCi0jc2V0IGF0dHIoYWJ1dHRlZF9kZXNpZ24pID8KLSNzZXQgYXR0cihpbnNlcnRfZmVlZHRocm91Z2gpID8KLSNzZXQgYXR0cihwc19wbSkgPwotI3NldCBhdHRyKHVzZV9wc19wbSkgPwotI3NldCBhdHRyKGVuYWJsZV9mbGV4aWxtKSA/Ci0jc2V0IGF0dHIodXNlX2ZsZXhtb2RlbHMpID8KLSNzZXQgYXR0cihmbGV4bW9kZWxfYXNfcHRuKSA/Ci0jc2V0IGF0dHIoZmxleG1vZGVsX2FydF9iYXNlZCkgPwotCi0jc2V0IGF0dHIoZml4X2hvbGQpIGJvb2xlYW4KLSNzZXQgYXR0cihmaXhfbGl0aG8pIGJvb2xlYW4KLSNzZXQgYXR0cihoaWdoX3RpbWluZ19lZmZvcnQpIGJvb2xlYW4KLSNzZXQgYXR0cihydW5fY2xwKSBib29sZWFuCi0jc2V0IGF0dHIocnVuX2xlYykgYm9vbGVhbgotI3NldCBhdHRyKHNraXBfY3RzKSBib29sZWFuCi0jc2V0IGF0dHIoc2tpcF9zaSkgYm9vbGVhbgotI3NldCBhdHRyKHNraXBfc2lnbm9mZl9jaGVja3MpIGJvb2xlYW4KLSNzZXQgaGVscChoaWVyX2Zsb3dfdHlwZSkgIjFwYXNzIDJwYXNzIgotI3NldCBoZWxwKGJsYWNrX2JveCkgIlRSVUUgZmFsc2UiCi0jc2V0IGF0dHIocGFydGl0aW9uX2RpcikgIlBBUlRJVElPTiBkaXJlY3RvcnkiCi0KLSMgTGlicmFyeSBTZXR1cCAoZHJvcCBvciBtb3ZlKQotIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0jc2V0IGF0dHIobGlicmFyeV9zZXRzKSAiTGlzdCBvZiBsaWJyYXJ5IHNldHMiCi0jc2V0IGF0dHIodGltaW5nKSAiTGlzdCBvZiBsaWJyYXJ5IGZpbGVzIiAgCi0jc2V0IGF0dHIoYW9jdikgIkFPQ1YgdGFibGUgZmlsZSIKLSNzZXQgYXR0cihzaSkgICJMaXN0IG9mIENEQiBmaWxlcyIKLSNzZXQgYXR0cihyY19jb3JuZXJzKSAiTGlzdCBvZiBSQyBjb3JuZXJzIgotI3NldCBhdHRyKFApICJQcm9jZXNzIG11bHRpcGxpZXIiCi0jc2V0IGF0dHIoVCkgIlRlbXBlcmF0dXJlIgotI3NldCBhdHRyKFYpICJWb2x0YWdlIiAKLSNzZXQgYXR0cihjYXBfdGFibGUpICJDYXB0YWJsZSBmaWxlIgotI3NldCBhdHRyKHBvc3Rfcm91dGVfY2FwX2ZhY3RvcikgImZsb2F0ICh0cmlwbGV0KSIKLSNzZXQgYXR0cihwb3N0X3JvdXRlX2Nsa19jYXBfZmFjdG9yKSAiZmxvYXQgKHRyaXBsZXQpIgotI3NldCBhdHRyKHBvc3Rfcm91dGVfY2xrX3Jlc19mYWN0b3IpICJmbG9hdCAodHJpcGxldCkiCi0jc2V0IGF0dHIocG9zdF9yb3V0ZV9yZXNfZmFjdG9yKSAiZmxvYXQiCi0jc2V0IGF0dHIocHJlX3JvdXRlX2NhcF9mYWN0b3IpICJmbG9hdCIKLSNzZXQgYXR0cihwcmVfcm91dGVfY2xrX2NhcF9mYWN0b3IpICJmbG9hdCIKLSNzZXQgYXR0cihwcmVfcm91dGVfY2xrX3Jlc19mYWN0b3IpICJmbG9hdCIKLSNzZXQgYXR0cihwcmVfcm91dGVfcmVzX2ZhY3RvcikgImZsb2F0IgotI3NldCBhdHRyKHF4X3RlY2hfZmlsZSkgIlFSQyB0ZWNoZmlsZSIKLSNzZXQgYXR0cihvcGNvbmRzKSAiTGlzdCBvZiBvcGNvbmRzIgotI3NldCBhdHRyKFApICJQcm9jZXNzIG11bHRpcGxpZXIiIAotI3NldCBhdHRyKFQpICJUZW1wZXJhdHVyZSIKLSNzZXQgYXR0cihWKSAiVm9sdGFnZSIKLSNzZXQgYXR0cihsaWJyYXJ5X2ZpbGUpICJMaWJyYXJ5IGZpbGUiCi0jc2V0IGF0dHIoZGVsYXlfY29ybmVycykgIkxpc3Qgb2YgZGVsYXkgY29ybmVycyIKLSNzZXQgYXR0cihsaWJyYXJ5X3NldCkgIkxpYnJhcnkgc2V0IgotI3NldCBhdHRyKHJjX2Nvcm5lcikgIlJDIGNvcm5lciIKLSNzZXQgYXR0cihwb3dlcl9kb21haW5zKSAiTGlzdCBvZiBwb3dlciBkb21haW5zIgotI3NldCBhdHRyKGNsb2NrX2NlbGxfZWFybHkpICJGbG9hdCIKLSNzZXQgYXR0cihjbG9ja19jZWxsX2xhdGUpICJGbG9hdCIKLSNzZXQgYXR0cihjbG9ja19uZXRfZWFybHkpICJGbG9hdCIKLSNzZXQgYXR0cihjbG9ja19uZXRfbGF0ZSkgIkZsb2F0IgotI3NldCBhdHRyKGRhdGFfY2VsbF9lYXJseSkgIkZsb2F0IgotI3NldCBhdHRyKGRhdGFfY2VsbF9sYXRlKSAiRmxvYXQiCi0jc2V0IGF0dHIoZGF0YV9uZXRfZWFybHkpICJGbG9hdCIKLSNzZXQgYXR0cihkYXRhX25ldF9sYXRlKSAiRmxvYXQiCi0jc2V0IGF0dHIoY29uc3RyYWludF9tb2RlcykgIkxpc3Qgb2YgY29uc3RyYWludCBtb2RlcyIKLSNzZXQgYXR0cihwcmVfY3RzX3NkYykgIkxpc3Qgb2YgU0RDIGZpbGVzIgotI3NldCBhdHRyKHBvc3RfY3RzX3NkYykgIkxpc3Qgb2YgU0RDIGZpbGVzIiAKLSNzZXQgYXR0cihpbmNyX2N0c19zZGMpICJMaXN0IG9mIFNEQyBmaWxlcyAoaW5jcmVtZW50YWwpIiAKLSNzZXQgYXR0cihpbG1fbm9uX3NkY19maWxlKSAiTGlzdCBvZiBJTE0gY29uc3RyYWludHMiCi0jc2V0IGF0dHIoc2V0dXBfYW5hbHlzaXNfdmlld3MpICJMaXN0IG9mIGFuYWx5c2lzIHZpZXdzIiAKLSNzZXQgYXR0cihob2xkX2FuYWx5c2lzX3ZpZXdzKSAiTGlzdCBvZiBhbmFseXNpcyB2aWV3cyIgCi0jc2V0IGF0dHIoY29uc3RyYWludF9tb2RlKSAiQ29uc3RyYWludCBtb2RlIgotI3NldCBhdHRyKGRlbGF5X2Nvcm5lcikgIkRlbGF5IGNvcm5lciIKLSMKLSNzZXQgYXR0cihhY3RpdmVfc2V0dXBfdmlld3MpICJMaXN0IG9mIGFjdGl2ZSBzZXR1cCB2aWV3cyIKLSNzZXQgYXR0cihhY3RpdmVfaG9sZF92aWV3cykgIkxpc3Qgb2YgYWN0aXZlIGhvbGQgdmlld3MiCi0jc2V0IGF0dHIoYWN0aXZlX3NldHVwX3ZpZXdzKSAiTGlzdCBvZiBhY3RpdmUgc2V0dXAgdmlld3MgcGVyIHN0ZXAiCi0jc2V0IGF0dHIoYWN0aXZlX2hvbGRfdmlld3MpICJMaXN0IG9mIGFjdGl2ZSBob2xkIHZpZXdzIHBlciBzdGVwIgotIwotI3NldCBhdHRyKGRlZmF1bHRfc2V0dXBfdmlldykgIkRlZmF1bHQgc2V0dXAgdmlldyIKLSNzZXQgYXR0cihkZWZhdWx0X2hvbGRfdmlldykgIkRlZmF1bHQgaG9sZCB2aWV3IgotCi0jIERlc2lnbiBJbml0aWFsaXphdGlvbgotc2V0IGhlbHAobmV0bGlzdCkgImluaXRfdmVyaWxvZyIKLSNzZXQgaGVscChuZXRsaXN0X3R5cGUpICJWRVJJTE9HIHZoZGwiCi1zZXQgaGVscChkZXNpZ24pICJpbml0X3RvcF9jZWxsIgotc2V0IGF0dHIoZGVmX2ZpbGVzKSAiZmxvd19kZWZfZmlsZXMiCi1zZXQgYXR0cihvYV9kZXNpZ25fbGliKSBpbml0X29hX2Rlc2lnbl9saWIKLXNldCBhdHRyKG9hX2Rlc2lnbl9jZWxsKSBpbml0X29hX2Rlc2lnbl9jZWxsCi1zZXQgYXR0cihvYV9kZXNpZ25fdmlldykgIGluaXRfb2FfZGVzaWduX3ZpZXcKLSNzZXQgYXR0cihpbG1fbGlzdCkgZmxvd19pbG1fbGlzdAotI3NldCBhdHRyKGlsbV9kaXIpIGZsb3dfaWxtX2Rpcl9saXN0Ci0jc2V0IGF0dHIobGVmX2ZpbGUpIGZsb3dfaWxtX2xlZl9maWxlcwotI3NldCBhdHRyKHNldHVwX2xpYikgZmxvd19pbG1fc2V0dXBfbGliCi1zZXQgYXR0cihtYXhfcm91dGVfbGF5ZXIpIHJvdXRlX3RyaWFsX21heF9yb3V0ZV9sYXllcgotc2V0IGF0dHIoZ2VuZXJhdGVfdHJhY2tzKSBhZGRfdHJhY2tzCi0jc2V0IGF0dHIoaG9ub3JfcGl0Y2gpID8KLQotIyBQbGFjZQotc2V0IGF0dHIocGxhY2VfaW9fcGlucykgcGxhY2VfZ2xvYmFsX3BsYWNlX2lvX3BpbnMKLXNldCBhdHRyKGNsb2NrX2dhdGVfYXdhcmUpIHBsYWNlX2dsb2JhbF9jbG9ja19nYXRlX2F3YXJlCi0jc2V0IGF0dHIoY2xvY2tfZ2F0ZV9jbG9uZSkgPyAKLXNldCBhdHRyKGNvbmdlc3Rpb25fZWZmb3J0KSBwbGFjZV9nbG9iYWxfY29uZ19lZmZvcnQKLQotCi0jIFBvd2VyCi1zZXQgYXR0cihhY3Rpdml0eV9maWxlKSAiRmlsZSBuYW1lIgotc2V0IGF0dHIoYWN0aXZpdHlfZmlsZV9mb3JtYXQpICJUQ0YgVkNEIFNBSUYiCi1zZXQgYXR0cihwb3dlcl9hbmFseXNpc192aWV3KSAiQW5hbHlzaXMgdmlldyBmb3IgcG93ZXIgYW5hbHlzaXMiCi1zZXQgYXR0cihwb3dlcl9kb21haW5zKSAiTGlzdCBvZiBwb3dlciBkb21haW5zIgotCi1zZXQgYXR0cihjcGZfZmlsZSkgaW5pdF9jcGZfZmlsZQotI3NldCBhdHRyKGllZWUxODAxX2ZpbGUpID8KLQotc2V0IGF0dHIocG93ZXJfbmV0cykgIkxpc3Qgb2YgcG93ZXIgbmV0cyIKLXNldCBhdHRyKGdyb3VuZF9uZXRzKSAiTGlzdCBvZiBncm91bmQgbmV0cyIKLXNldCBhdHRyKGdsb2JhbF9uZXRzKSAiTGlzdCBvZiBnbG9iYWwgbmV0cyIKLXNldCBhdHRyKG1vZHVsZSkgIk1vZHVsZSBmb3IgZ2xvYmFsIG5ldCIKLXNldCBhdHRyKHBpbnMpICJQb3dlciBwaW5zIGZvciBnbG9iYWwgbmV0Igotc2V0IGF0dHIodGllaGkpICJUaWVoaSBnbG9iYWwgbmV0IiAKLXNldCBhdHRyKHRpZWxvKSAiVGllbG8gZ2xvYmFsIG5ldCIgCi0KLQotIyBDbG9jawotc2V0IGF0dHIoY3RzX2VuZ2luZSkgY3RzX2VuZ2luZQotI3NldCBhdHRyKGN0c19pbnRlZ3JhdGlvbikgPwotc2V0IGF0dHIoY3RzX2NlbGxzKSAiTGlzdCBvZiBDVFMgY2VsbHMiCi1zZXQgYXR0cihjdHNfYnVmZmVyX2NlbGxzKSAiTGlzdCBvZiBDVFMgYnVmZmVyIGNlbGxzIgotc2V0IGF0dHIoY3RzX2ludmVydGVyX2NlbGxzKSAiTGlzdCBvZiBDVFMgaW52ZXJ0ZXIgY2VsbHMiCi1zZXQgYXR0cihjbG9ja19nYXRlX2NlbGxzKSAiTGlzdCBvZiBDVFMgY2xvY2sgZ2F0ZSBjZWxscyIKLXNldCBhdHRyKGN0c191c2VfaW52ZXJ0ZXJzKSAidHJ1ZSBmYWxzZSIKLXNldCBhdHRyKGNsa19sZWFmX2JvdHRvbV9sYXllcikgY3RzX3JvdXRlX2xlYWZfYm90dG9tX3ByZWZlcnJlZF9sYXllcgotc2V0IGF0dHIoY2xrX2xlYWZfdG9wX2xheWVyKSBjdHNfcm91dGVfbGVhZl90b3BfcHJlZmVycmVkX2xheWVyCi1zZXQgYXR0cihjbGtfbGVhZl9leHRyYV9zcGFjZSkgY3RzX3JvdXRlX2xlYWZfcHJlZmVycmVkX2V4dHJhX3NwYWNlCi1zZXQgYXR0cihjbGtfbGVhZl9uZHIpIGN0c19yb3V0ZV9sZWFmX25vbl9kZWZhdWx0X3J1bGUKLXNldCBhdHRyKGNsa19tYXhfc2tldykgIkZsb2F0IChuYW5vc2Vjb25kcykiCi1zZXQgYXR0cihjbGtfbWF4X3NsZXcpICJGbG9hdCAobmFub3NlY29uZHMpIgotc2V0IGF0dHIoY2xrX3RyZWVfYm90dG9tX2xheWVyKSBjdHNfcm91dGVfYm90dG9tX3ByZWZlcnJlZF9sYXllcgotc2V0IGF0dHIoY2xrX3RyZWVfZXh0cmFfc3BhY2UpIGN0c19yb3V0ZV90b3BfcHJlZmVycmVkX2xheWVyCi1zZXQgYXR0cihyb3V0ZV9jbG9ja19uZXRzKSBjdHNfcm91dGVfY2xrX25ldAotc2V0IGF0dHIoY2xrX3RyZWVfbmRyKSBjdHNfcm91dGVfbm9uX2RlZmF1bHRfcnVsZQotc2V0IGF0dHIoY2xrX3RyZWVfc2hpZWxkX25ldCkgY2NvcHRfcm91dGVfdG9wX3NoaWVsZGluZ19uZXQKLXNldCBhdHRyKGNsa190cmVlX3NoaWVsZF90aHJlc2gpIGNjb3B0X3RvcF9uZXRfbWluX2Zhbm91dAotc2V0IGF0dHIodXBkYXRlX2lvX2xhdGVuY3kpIGNjb3B0X21vZGlmeV9jbG9ja19sYXRlbmN5Ci0KLXNldCBhdHRyKGNsb2NrX2VjbykgInRydWUgRkFMU0UiCi0KLSMgT3B0Ci1zZXQgYXR0cihhbGxfZW5kX3BvaW50cykgb3B0X2FsbF9lbmRfcG9pbnRzCi0jc2V0IGF0dHIoY2xvY2tfZ2F0ZV9hd2FyZV9vcHQpID8KLSNzZXQgYXR0cihjcml0aWNhbF9yYW5nZSkgPwotI3NldCBhdHRyKGNvbmdlc3Rpb25fZWZmb3J0KSA/Ci1zZXQgYXR0cihkeW5hbWljX3Bvd2VyX2VmZm9ydCkgb3B0X2R5bmFtaWNfcG93ZXJfZWZmb3J0Ci1zZXQgYXR0cihsZWFrYWdlX3Bvd2VyX2VmZm9ydCkgb3B0X2xlYWthZ2VfcG93ZXJfZWZmb3J0Ci1zZXQgYXR0cihwcmVzZXJ2ZV9hc3NlcnRpb25zKSBvcHRfcHJlc2VydmVfcGluc193aXRoX3RpbWluZ19jb25zdHJhaW50cwotc2V0IGF0dHIocmVzaXplX3NoaWZ0ZXJfYW5kX2lzb19pbnN0cykgb3B0X3Jlc2l6ZV9sZXZlbF9zaGlmdGVyX2FuZF9pc29faW5zdGFuY2VzCi1zZXQgYXR0cihmaXhfaG9sZF9hbGxvd190bnNfZGVncmFkYXRpb24pIG9wdF9maXhfaG9sZF9hbGxvd19zZXR1cF90bnNfZGVncmFkYXRpb24KLXNldCBhdHRyKGZpeF9ob2xkX2lnbm9yZV9pb3MpIG9wdF9maXhfaG9sZF9pZ25vcmVfcGF0aF9ncm91cHMKLXNldCBhdHRyKHVzZWZ1bF9za2V3KSBvcHRfdXNlZnVsX3NrZXcKLQotIyBSb3V0ZQotc2V0IGF0dHIobXVsdGlfY3V0X2VmZm9ydCkgcm91dGVfZGV0YWlsX3VzZV9tdWx0aV9jdXRfdmlhX2VmZm9ydAotc2V0IGF0dHIobGl0aG9fZHJpdmVuX3JvdXRpbmcpIHJvdXRlX2RldGFpbF9wb3N0X3JvdXRlX2xpdGhvX3JlcGFpcgotc2V0IGF0dHIocG9zdHJvdXRlX3NwcmVhZF93aXJlcykgcm91dGVfZGV0YWlsX3Bvc3Rfcm91dGVfc3ByZWFkX3dpcmUKLSNzZXQgYXR0cihyb3V0ZV9zZWNvbmRhcnlfcGdfbmV0cykgInRydWUgRkFMU0UiCi0jc2V0IGF0dHIoc2Vjb25kYXJ5X3BnX25ldHMpICJMaXN0IG9mIGdsb2JhbCBuZXRzIGZvciBzZWNvbmRhcnkgcG93ZXIvZ3JvdW5kIgotCi0jIEV4dHJhY3Rpb24KLXNldCBhdHRyKHBvc3Ryb3V0ZV9leHRyYWN0aW9uX2VmZm9ydCkgZXh0cmFjdF9yY19lZmZvcnRfbGV2ZWwKLXNldCBhdHRyKHNpZ25vZmZfZXh0cmFjdGlvbl9lZmZvcnQpIGV4dHJhY3RfcmNfZWZmb3J0X2xldmVsCi1zZXQgYXR0cihjb3VwbGluZ19jX3RocmVzaCkgZXh0cmFjdF9yY19jb3VwbGluZ19jYXBfdGgKLXNldCBhdHRyKHRvdGFsX2NfdGhyZXNoKSBleHRyYWN0X3JjX3RvdGFsX2NhcF90aAotc2V0IGF0dHIocmVsYXRpdmVfY190aHJlc2gpIGV4dHJhY3RfcmNfcmVsYXRpdmVfY2FwX3RoCi0KLSMgREZNCi0jc2V0IGF0dHIodmVyaWZ5X2xpdGhvKSAidHJ1ZSBGQUxTRSIKLSNzZXQgYXR0cihscGFfdGVjaF9maWxlKSAiTFBBIHRlY2ggZmlsZSIKLSNzZXQgYXR0cihtZXRhbGZpbGwpICJ0cnVlIEZBTFNFIgotI3NldCBhdHRyKG1ldGFsZmlsbF90Y2wpICJNZXRhbGZpbGwgcGx1Zy1pbiIKLSNzZXQgYXR0cihnZHNfZmlsZXMpICJHRFMgZmlsZSBsaXN0IgotI3NldCBhdHRyKGdkc19sYXllcl9tYXApICJHRFMgbGF5ZXIgbWFwIgotI3NldCBhdHRyKGdkc19maWxlcykgIk9hc2lzIGZpbGUgbGlzdCIKLSNzZXQgYXR0cihnZHNfbGF5ZXJfbWFwKSAiT2FzaXMgbGF5ZXIgbWFwIgotCi0jIE5vaXNlCi0jc2V0IGF0dHIoc2lfYW5hbHlzaXNfdHlwZSkgIkRFRkFVTFQgcGVzc2ltaXN0aWMiCi1zZXQgYXR0cihkZWx0YV9kZWxheV90aHJlc2hvbGQpIHNpX2RlbGF5X2RlbHRhX3RocmVzaG9sZAotI3NldCBhdHRyKGFjY2VwdGFibGVfd25zKSBzaV9hY2NlcHRhYmxlX3ducwotCi0jIERhdGFiYXNlCi1zZXQgYXR0cihkYnNfZGlyKSAiRGF0YWJhc2UgZGlyZWN0b3J5Igotc2V0IGF0dHIoZGJzX2Zvcm1hdCkgIkZFIG9hIgotc2V0IGF0dHIob2FfbGF5b3V0X25hbWUpICJPQSBMYXlvdXQgdmlldyBuYW1lIgotc2V0IGF0dHIob2FfYWJzdHJhY3RfbmFtZSkgIk9BIEFic3RyYWN0IHZpZXcgbmFtZSIKLXNldCBhdHRyKHNhdmVfY29uc3RyYWludHMpICJ0cnVlIEZBTFNFIChTYXZlIGNvbnN0cmFpbnRzIHdpdGggREJTPykiCi1zZXQgYXR0cihzYXZlX3JjKSAidHJ1ZSBGQUxTRSAoU2F2ZSBSQ0RCIHdpdGggREJTPykiCi0KLSMgUmVwb3J0aW5nCi1zZXQgYXR0cihycHRfZGlyKSAiUmVwb3J0cyBkaXJlY3RvcnkiCi1zZXQgYXR0cihyZXBvcnRfcG93ZXIpICJUUlVFIGZhbHNlIgotc2V0IGF0dHIoY2FwdHVyZV9tZXRyaWNzKSBjYXB0dXJlX21ldHJpY3MKLQotIyBNaXNjCi1zZXQgYXR0cih0bykgIk1haWwgYWRkcmVzc2VzIgotc2V0IGF0dHIoc3RlcHMpICJMaXN0IG9mIHN0ZXBzIgotCi1zZXQgYXR0cihwbHVnX2RpcikgIlBsdWctaW4gZGlyZWN0b3J5Igotc2V0IGF0dHIodG1wX2RpcikgIlRNUCBkaXJlY3RvcnkiCi1zZXQgYXR0cihsb2dfZGlyKSAiTE9HIGRpcmVjdG9yeSIKLQotCi1zZXQgYXR0cihkaXN0cmlidXRlKSAiTE9DQUwgbHNmIHJzaCBjdXN0b20iCi1zZXQgYXR0cihsb2NhbF9jcHVzKSAiTGlzdCBvZiBob3N0cyIKLXNldCBhdHRyKHJlbW90ZV9ob3N0cykgIkludGVnZXIgKG51bWJlciBvZiBob3N0cykiCi1zZXQgYXR0cihjcHVzX3Blcl9yZW1vdGVfaG9zdCkgIkludGVnZXIgKG51bWJlciBvZiBjcHVzKSIKLQotCi0jc2V0IGF0dHIoYXNzaWduX2J1ZmZlcikgPwotI3NldCBhdHRyKGFzc2lnbl9idWZmZXJfY2VsbCkgPwotI3NldCBhdHRyKGFsd2F5c19vbl9idWZmZXJzKSAiTGlzdCBvZiBBT04gYnVmZmVycyIKLSNzZXQgYXR0cihkZWxheV9jZWxscykgIkxpc3Qgb2YgZGVsYXkgY2VsbHMiCi0jc2V0IGF0dHIoZG9udF91c2VfbGlzdCkgIkxpc3Qgb2YgZG9udCB1c2UgY2VsbHMiCi0jc2V0IGF0dHIoZG9udF91c2VfZmlsZSkgIkZpbGUgdy9zZXREb250VXNlIGNvbW1hbmRzIgotI3NldCBhdHRyKHdlbGx0YXBzKSAiV2VsbHRhcCBjZWxscyIKLSNzZXQgYXR0cihjZWxsX2ludGVydmFsKSAiRmxvYXQ6IChpbnRlcnZhbCkgZGlzdGFuY2UgaW4gbWljcm9ucyIKLSNzZXQgYXR0cihjaGVja2VyYm9hcmQpICJ0cnVlIEZBTFNFIgotI3NldCBhdHRyKHNwYXJlX2NlbGxzKSAiTGlzdCBvZiBzcGFyZSBtb2R1bGVzIgotI3NldCBhdHRyKGp0YWdfY2VsbHMpICJMaXN0IG9mIGp0YWcgbW9kdWxlcyIKLSNzZXQgYXR0cihqdGFnX3Jvd3MpICJMaXN0IG9mIHJvd3MgdG8gcmVzZXJ2ZSBmb3IganRhZyBwbGFjZW1lbnQiCi0jc2V0IGF0dHIoZmlsbGVyX2NlbGxzKSAiTGlzdCBvZiBmaWxsZXIgY2VsbHMiCi0jc2V0IGF0dHIoc2tld19idWZmZXJzKSAiTGlzdCBvZiBidWZmZXJzIGZvciB1c2VmdWwgc2tldyIKLSNzZXQgYXR0cih0aWVfY2VsbHMpICJMaXN0IG9mIHRpZSBjZWxscyIKLSNzZXQgYXR0cihtYXhfZGlzdGFuY2UpICJGbG9hdDogZGlzdGFuY2UgaW4gbWljcm9ucyIKLSNzZXQgYXR0cihtYXhfZmFub3V0KSAiSW50ZXJnZXI6IGZhbm91dCBudW1iZXIiCmRpZmYgLS1naXQgYS9mbG93L3Buci9TQ1JJUFRTL0VUQy9JTk5PVlVTL21hcF9vcHRpb25zLnRjbCBiL2Zsb3cvcG5yL1NDUklQVFMvRVRDL0lOTk9WVVMvbWFwX29wdGlvbnMudGNsCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDc1NQppbmRleCBkYzI4ODFmLi4wMDAwMDAwCi0tLSBhL2Zsb3cvcG5yL1NDUklQVFMvRVRDL0lOTk9WVVMvbWFwX29wdGlvbnMudGNsCisrKyAvZGV2L251bGwKQEAgLTEsNjggKzAsMCBAQAotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotIyAgICAgICAgICAgICAgICAgICAgICAgQ0FERU5DRSBDT1BZUklHSFQgTk9USUNFCi0jICAgICAgICAgqSAyMDA4LTIwMTMgQ2FkZW5jZSBEZXNpZ24gU3lzdGVtcywgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIwotIyBUaGlzIEZvdW5kYXRpb24gRmxvdyBpcyBwcm92aWRlZCBhcyBhbiBleGFtcGxlIG9mIGhvdyB0byBwZXJmb3JtIHNwZWNpYWxpemVkCi0jIHRhc2tzLgotIwotIyBUaGlzIHdvcmsgbWF5IG5vdCBiZSBjb3BpZWQsIHJlLXB1Ymxpc2hlZCwgdXBsb2FkZWQsIG9yIGRpc3RyaWJ1dGVkIGluIGFueSB3YXksCi0jIGluIGFueSBtZWRpdW0sIHdoZXRoZXIgaW4gd2hvbGUgb3IgaW4gcGFydCwgd2l0aG91dCBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24KLSMgZnJvbSBDYWRlbmNlLiBOb3R3aXRoc3RhbmRpbmcgYW55IHJlc3RyaWN0aW9ucyBoZXJlaW4sIHN1YmplY3QgdG8gY29tcGxpYW5jZQotIyB3aXRoIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB0aGUgQ2FkZW5jZSBzb2Z0d2FyZSBsaWNlbnNlIGFncmVlbWVudCB1bmRlcgotIyB3aGljaCB0aGlzIG1hdGVyaWFsIHdhcyBwcm92aWRlZCwgdGhpcyBtYXRlcmlhbCBtYXkgYmUgY29waWVkIGFuZCBpbnRlcm5hbGx5Ci0jIGRpc3RyaWJ1dGVkIHNvbGVseSBmb3IgaW50ZXJuYWwgcHVycG9zZXMgZm9yIHVzZSB3aXRoIENhZGVuY2UgdG9vbHMuCi0jCi0jIFRoaXMgd29yayBpcyBDYWRlbmNlIGludGVsbGVjdHVhbCBwcm9wZXJ0eSBhbmQgbWF5IHVuZGVyIG5vIGNpcmN1bXN0YW5jZXMgYmUKLSMgZ2l2ZW4gdG8gdGhpcmQgcGFydGllcywgbmVpdGhlciBpbiBvcmlnaW5hbCBub3IgaW4gbW9kaWZpZWQgdmVyc2lvbnMsIHdpdGhvdXQKLSMgZXhwbGljaXQgd3JpdHRlbiBwZXJtaXNzaW9uIGZyb20gQ2FkZW5jZS4gVGhlIGluZm9ybWF0aW9uIGNvbnRhaW5lZCBoZXJlaW4gaXMKLSMgdGhlIHByb3ByaWV0YXJ5IGFuZCBjb25maWRlbnRpYWwgaW5mb3JtYXRpb24gb2YgQ2FkZW5jZSBvciBpdHMgbGljZW5zb3JzLCBhbmQKLSMgaXMgc3VwcGxpZWQgc3ViamVjdCB0bywgYW5kIG1heSBiZSB1c2VkIG9ubHkgYnkgQ2FkZW5jZSdzIGN1cnJlbnQgY3VzdG9tZXJzCi0jIGluIGFjY29yZGFuY2Ugd2l0aCwgYSBwcmV2aW91c2x5IGV4ZWN1dGVkIGxpY2Vuc2UgYWdyZWVtZW50IGJldHdlZW4gQ2FkZW5jZQotIyBhbmQgaXRzIGN1c3RvbWVyLgotIwotIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIyBUSElTIE1BVEVSSUFMIElTIFBST1ZJREVEIEJZIENBREVOQ0UgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRAotIyBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRgotIyBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELgotIyBJTiBOTyBFVkVOVCBTSEFMTCBDQURFTkNFIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwKLSMgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwKLSMgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SCi0jIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgIE1BVEVSSUFMLCBFVkVOIElGCi0jIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotIyBNYXAgb3B0aW9uIG5hbWVzIC4uLgotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLXNldCBtYXAoc3dpdGNoX2luc3RhbmNlKSAgICBzd2l0Y2hNb2R1bGVJbnN0YW5jZQotc2V0IG1hcChpbnB1dF9lbmFibGVfcGluKSAgIGVuYWJsZVBpbkluCi1zZXQgbWFwKG91dHB1dF9lbmFibGVfcGluKSAgZW5hYmxlUGluT3V0Ci1zZXQgbWFwKGlucHV0X2VuYWJsZV9uZXQpICAgZW5hYmxlTmV0SW4KLXNldCBtYXAob3V0cHV0X2VuYWJsZV9uZXQpICBlbmFibGVOZXRPdXQKLXNldCBtYXAoc3dpdGNoX2NlbGwpICAgICAgICBnbG9iYWxTd2l0Y2hDZWxsTmFtZQotc2V0IG1hcCh0b3Bfb2Zmc2V0KSAgICAgICAgIHRvcE9mZnNldAotc2V0IG1hcChib3R0b21fb2Zmc2V0KSAgICAgIGJvdHRvbU9mZnNldAotc2V0IG1hcChyaWdodF9vZmZzZXQpICAgICAgIHJpZ2h0T2Zmc2V0Ci1zZXQgbWFwKGxlZnRfb2Zmc2V0KSAgICAgICAgbGVmdE9mZnNldAotc2V0IG1hcChob3Jpem9uYWxfcGl0Y2gpICAgIGhvcml6b250YWxQaXRjaAotc2V0IG1hcChjb2x1bW5faGVpZ2h0KSAgICAgIGhlaWdodAotc2V0IG1hcChza2lwX3Jvd3MpICAgICAgICAgIHNraXBSb3dzCi1zZXQgbWFwKHRvcF9yaW5nKSAgICAgICAgICAgdG9wU2lkZQotc2V0IG1hcChib3R0b21fcmluZykgICAgICAgIGJvdHRvbVNpZGUKLXNldCBtYXAocmlnaHRfcmluZykgICAgICAgICByaWdodFNpZGUKLXNldCBtYXAobGVmdF9yaW5nKSAgICAgICAgICBsZWZ0U2lkZQotc2V0IG1hcChjb3JuZXJfY2VsbF9saXN0KSAgIGNvcm5lckNlbGxMaXN0Ci1zZXQgbWFwKHRvcF9maWxsZXJfY2VsbCkgICAgZmlsbGVyQ2VsbE5hbWVUb3AKLXNldCBtYXAoYm90dG9tX2ZpbGxlcl9jZWxsKSBmaWxsZXJDZWxsTmFtZUJvdHRvbQotc2V0IG1hcChsZWZ0X2ZpbGxlcl9jZWxsKSAgIGZpbGxlckNlbGxOYW1lTGVmdAotc2V0IG1hcChyaWdodF9maWxsZXJfY2VsbCkgIGZpbGxlckNlbGxOYW1lUmlnaHQKLXNldCBtYXAodG9wX3N3aXRjaF9jZWxsKSAgICBzd2l0Y2hDZWxsTmFtZVRvcAotc2V0IG1hcChib3R0b21fc3dpdGNoX2NlbGwpIHN3aXRjaENlbGxOYW1lQm90dG9tCi1zZXQgbWFwKGxlZnRfc3dpdGNoX2NlbGwpICAgc3dpdGNoQ2VsbE5hbWVMZWZ0Ci1zZXQgbWFwKHJpZ2h0X3N3aXRjaF9jZWxsKSAgc3dpdGNoQ2VsbE5hbWVSaWdodAotc2V0IG1hcCh0b3Bfc3dpdGNoZXMpICAgICAgIHRvcE51bVN3aXRjaAotc2V0IG1hcChib3R0b21fc3dpdGNoZXMpICAgIGJvdHRvbU51bVN3aXRjaAotc2V0IG1hcChsZWZ0X3N3aXRjaGVzKSAgICAgIGxlZnROdW1Td2l0Y2gKLXNldCBtYXAocmlnaHRfc3dpdGNoZXMpICAgICByaWdodE51bVN3aXRjaAotCmRpZmYgLS1naXQgYS9mbG93L3Buci9TQ1JJUFRTL0VUQy9JTk5PVlVTL21hcHBlZF92YXJzLnRjbCBiL2Zsb3cvcG5yL1NDUklQVFMvRVRDL0lOTk9WVVMvbWFwcGVkX3ZhcnMudGNsCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAyMzIzYTRkLi4wMDAwMDAwCi0tLSBhL2Zsb3cvcG5yL1NDUklQVFMvRVRDL0lOTk9WVVMvbWFwcGVkX3ZhcnMudGNsCisrKyAvZGV2L251bGwKQEAgLTEsMzg1ICswLDAgQEAKLXNldCBoZWxwKGNhdGVnb3JpZXMpICJmbG93IGhpZXIgZGJzIHN5bnRoIGluaXQgaWxtIG1tbWMgcG93ZXIgcGxhY2Ugb3B0IGN0cyBob2xkIHJvdXRlIGV4dHJhY3Qgbm9pc2UgcmVwb3J0IGRpc3RyaWJ1dGUgbWlzYyIKLXNldCBoZWxwKGFsbCxjYXRlZ29yaWVzKSAkaGVscChjYXRlZ29yaWVzKQotc2V0IGhlbHAoc3ludGgsY2F0ZWdvcmllcykgInN5bnRoIgotc2V0IGhlbHAoaWxtLGNhdGVnb3JpZXMpICJpbG0iCi1zZXQgaGVscChpbml0LGNhdGVnb3JpZXMpICJpbml0IGlsbSBtbW1jIHBvd2VyIHJlcG9ydCIKLXNldCBoZWxwKHBsYWNlLGNhdGVnb3JpZXMpICJwbGFjZSBkYnMgcmVwb3J0Igotc2V0IGhlbHAocHJlY3RzLGNhdGVnb3JpZXMpICJvcHQgZGJzIHJlcG9ydCIKLXNldCBoZWxwKGN0cyxjYXRlZ29yaWVzKSAiY3RzIGRicyByZXBvcnQiCi1zZXQgaGVscChvcHQsY2F0ZWdvcmllcykgIm9wdCIKLXNldCBoZWxwKHBvc3RjdHMsY2F0ZWdvcmllcykgIm9wdCBkYnMgcmVwb3J0Igotc2V0IGhlbHAocG9zdGN0c19ob2xkLGNhdGVnb3JpZXMpICJvcHQgaG9sZCBkYnMgcmVwb3J0IgotI3NldCBoZWxwKGhvbGQpICJvcHQgaG9sZCBkYnMgcmVwb3J0Igotc2V0IGhlbHAocm91dGUsY2F0ZWdvcmllcykgInJvdXRlIGRicyByZXBvcnQiCi1zZXQgaGVscChwb3N0cm91dGUsY2F0ZWdvcmllcykgIm9wdCBleHRyYWN0IG5vaXNlIGRicyByZXBvcnQiCi1zZXQgaGVscChwb3N0cm91dGVfaG9sZCxjYXRlZ29yaWVzKSAicm91dGUgZXh0cmFjdCBub2lzZSBob2xkIGRicyByZXBvcnQiCi1zZXQgaGVscChzaWdub2ZmLGNhdGVnb3JpZXMpICJleHRyYWN0IG5vaXNlIgotc2V0IGhlbHAoZmxvdyxjYXRlZ29yaWVzKSAiZmxvdyIKLXNldCBoZWxwKGNvbnRyb2wsY2F0ZWdvcmllcykgImZsb3ciCi1zZXQgaGVscChtbW1jLGNhdGVnb3JpZXMpICJtbW1jIgotc2V0IGhlbHAodGltaW5nLGNhdGVnb3JpZXMpICJtbW1jIgotc2V0IGhlbHAobm9pc2UsY2F0ZWdvcmllcykgIm5vaXNlIgotc2V0IGhlbHAoZGJzLGNhdGVnb3JpZXMpICJkYnMiCi1zZXQgaGVscChwb3dlcixjYXRlZ29yaWVzKSAicG93ZXIiCi1zZXQgaGVscChkaXN0cmlidXRlLGNhdGVnb3JpZXMpICJkaXN0cmlidXRlIgotc2V0IGhlbHAobWlzYyxjYXRlZ29yaWVzKSAibWlzYyIKLXNldCBjb2xvcihmbG93KSAjY2NmZjY2Ci1zZXQgY29sb3IoZGJzKSAjZmZjYzY2Ci1zZXQgY29sb3IoaW5pdCkgI2NjZmY2Ngotc2V0IGNvbG9yKG1tbWMpICNmZmNjNjYKLXNldCBjb2xvcihwb3dlcikgI2NjZmY2Ngotc2V0IGNvbG9yKHBsYWNlKSAjZmZjYzY2Ci1zZXQgY29sb3Iob3B0KSAjY2NmZjY2Ci1zZXQgY29sb3IoY3RzKSAjZmZjYzY2Ci1zZXQgY29sb3Iocm91dGUpICNjY2ZmNjYKLXNldCBjb2xvcihleHRyYWN0KSAjZmZjYzY2Ci1zZXQgY29sb3Iobm9pc2UpICNjY2ZmNjYKLXNldCBjb2xvcihyZXBvcnQpICNmZmNjNjYKLXNldCBjb2xvcihkaXN0cmlidXRlKSAjY2NmZjY2Ci1zZXQgY29sb3IobWlzYykgI2ZmY2M2NgotIyBGbG93IENvbnRyb2wKLXNldCBoZWxwKGZsb3csbm9uZSxzdGVwcykgImRlZmF1bHQ6IGluaXQgcGxhY2UgcHJlY3RzIGN0cyBwb3N0Y3RzIHBvc3RjdHNfaG9sZCByb3V0ZSBwb3N0cm91dGUgcG9zdHJvdXRlX2hvbGQgc2lnbm9mZiIKLXNldCBoZWxwKGZsb3csbm9uZSxtb2RlKSAgIkZMQVQgaGllciB1c2VyIiAKLXNldCBoZWxwKGZsb3csbm9uZSxmbGF0KSAgIm5vbmUgcGFydGlhbCBmdWxsIgotI3NldCBoZWxwKGZsb3csZmxvdykgICJtbW1jIgotc2V0IGhlbHAoZmxvdyxub25lLGhpZXJfZmxvd190eXBlKSAiMXBhc3MgMnBhc3MiCi1zZXQgaGVscChmbG93LG5vbmUsYmxhY2tfYm94KSAiVFJVRSBmYWxzZSIKLXNldCBoZWxwKGZsb3csaW5zZXJ0X3BhcnRpdGlvbl9mZWVkdGhyb3VnaCxpbnNlcnRfZmVlZHRocm91Z2gpICJUUlVFIGZhbHNlIgotc2V0IGhlbHAoZmxvdyxzZXRfcGxhY2VfbW9kZSxwbGFjZW1lbnRfYmFzZWRfcHRuKSAidHJ1ZSBGQUxTRSIKLXNldCBoZWxwKGZsb3csY3JlYXRlX3Byb3RvX21vZGVsLHVzZV9mbGV4bW9kZWxzKSAidHJ1ZSBGQUxTRSIKLXNldCBoZWxwKGZsb3csY3JlYXRlX3BzX3Blcl9taWNyb25fbW9kZWwsdXNlX3Byb3RvX25ldF9kZWxheV9tb2RlbCkgInRydWUgRkFMU0UiCi1zZXQgaGVscChmbG93LGRlcml2ZV90aW1pbmdfYnVkZ2V0LGJ1ZGdldF9tb2RlKSAidHJpYWxfaXBvIHByb3RvX25ldF9kZWxheV9tb2RlbCBnaWdhX29wdCIKLXNldCBoZWxwKGZsb3cscmVwbGFjZV9wcm90b19tb2RlbCxmbGV4bW9kZWxfYXNfcHRuKSAidHJ1ZSBGQUxTRSIKLXNldCBoZWxwKGZsb3csY3JlYXRlX3Byb3RvX21vZGVsLGZsZXhtb2RlbF9hcnRfYmFzZWQpICJ0cnVlIEZBTFNFIgotCi1zZXQgaGVscChmbG93LHNldF9hbmFseXNpc19tb2RlLGVuYWJsZV9hb2N2KSAidHJ1ZSBGQUxTRSIKLXNldCBoZWxwKGZsb3csc2V0X2FuYWx5c2lzX21vZGUsZW5hYmxlX2NwcHIpICJ0cnVlIEZBTFNFIgotc2V0IGhlbHAoZmxvdyxzZXRfYW5hbHlzaXNfbW9kZSxlbmFibGVfb2N2KSAicHJlX3ByZWN0cyBwcmVfcG9zdGN0cyBwcmVfcG9zdHJvdXRlIFBSRV9QT1NUUk9VVEVfSE9MRCBwcmVfc2lnbm9mZiBmYWxzZSIKLXNldCBoZWxwKGZsb3csc2V0X2RlbGF5X2NhbF9tb2RlLGVuYWJsZV9zaV9hd2FyZSkgInRydWUgRkFMU0UiCi1zZXQgaGVscChmbG93LHNldF9kZWxheV9jYWxfbW9kZSxlbmFibGVfc3MpICJwcmVfcGxhY2UgcHJlX3ByZWN0cyBwcmVfcG9zdGN0cyBwcmVfcG9zdHJvdXRlIHByZV9wb3N0cm91dGVfaG9sZCBwcmVfc2lnbm9mZiBGQUxTRSIKLQotc2V0IGhlbHAoZmxvdyxub25lLGVuYWJsZV9wYWMpICJ0cnVlIEZBTFNFIgotc2V0IGhlbHAoZmxvdyxub25lLGVuYWJsZV9kbG0pICJ0cnVlIEZBTFNFIgotc2V0IGhlbHAoZmxvdyxub25lLGZpeF9ob2xkKSAiVFJVRSBmYWxzZSIKLXNldCBoZWxwKGZsb3csbm9uZSxmaXhfbGl0aG8pICJ0cnVlIEZBTFNFIgotc2V0IGhlbHAoZmxvdyxub25lLGhpZ2hfdGltaW5nX2VmZm9ydCkgInRydWUgRkFMU0UiCi1zZXQgaGVscChmbG93LG5vbmUscnVuX2NscCkgIlRSVUUgZmFsc2UiCi1zZXQgaGVscChmbG93LG5vbmUscnVuX2xlYykgInRydWUgRkFMU0UiCi1zZXQgaGVscChmbG93LG5vbmUsc2tpcF9jdHMpICJ0cnVlIEZBTFNFIgotc2V0IGhlbHAoZmxvdyxub25lLHNraXBfc2kpICJ0cnVlIEZBTFNFIgotc2V0IGhlbHAoZmxvdyxub25lLHNraXBfc2lnbm9mZl9jaGVja3MpICJ0cnVlIEZBTFNFIgotCi1zZXQgaGVscChmbG93LG5vbmUsYWJvcnQpICJ0cnVlIEZBTFNFIgotc2V0IGhlbHAoZmxvdyxub25lLGJhdGNoKSAiVFJVRSBmYWxzZSIgCi1zZXQgaGVscChmbG93LG5vbmUsc2F2ZV9vbl9jYXRjaCkgIlRSVUUgZmFsc2UiIAotc2V0IGhlbHAoZmxvdyxub25lLGNhdGNoX2Vycm9ycykgIlRSVUUgZmFsc2UiIAotCi0jIExpYnJhcnkgU2V0dXAKLXNldCBoZWxwKG1tbWMsY3JlYXRlX2xpYnJhcnlfc2V0LGxpYnJhcnlfc2V0cykgIkxpc3Qgb2YgbGlicmFyeSBzZXRzIgotc2V0IGhlbHAobW1tYyxjcmVhdGVfbGlicmFyeV9zZXQsPGxzPix0aW1pbmcpICJMaXN0IG9mIGxpYnJhcnkgZmlsZXMiICAKLXNldCBoZWxwKG1tbWMsY3JlYXRlX2xpYnJhcnlfc2V0LDxscz4sYW9jdikgIkFPQ1YgdGFibGUgZmlsZSIKLXNldCBoZWxwKG1tbWMsY3JlYXRlX2xpYnJhcnlfc2V0LDxscz4sc2kpICAiTGlzdCBvZiBDREIgZmlsZXMiCi1zZXQgaGVscChtbW1jLGNyZWF0ZV9yY19jb3JuZXIscmNfY29ybmVycykgIkxpc3Qgb2YgUkMgY29ybmVycyIKLXNldCBoZWxwKG1tbWMsY3JlYXRlX3JjX2Nvcm5lciw8cmM+LFApICJQcm9jZXNzIG11bHRpcGxpZXIiCi1zZXQgaGVscChtbW1jLGNyZWF0ZV9yY19jb3JuZXIsPHJjPixUKSAiVGVtcGVyYXR1cmUiCi1zZXQgaGVscChtbW1jLGNyZWF0ZV9yY19jb3JuZXIsPHJjPixWKSAiVm9sdGFnZSIgCi1zZXQgaGVscChtbW1jLGNyZWF0ZV9yY19jb3JuZXIsPHJjPixjYXBfdGFibGUpICJDYXB0YWJsZSBmaWxlIgotc2V0IGhlbHAobW1tYyxjcmVhdGVfcmNfY29ybmVyLDxyYz4scG9zdF9yb3V0ZV9jYXBfZmFjdG9yKSAiZmxvYXQgKHRyaXBsZXQpIgotc2V0IGhlbHAobW1tYyxjcmVhdGVfcmNfY29ybmVyLDxyYz4scG9zdF9yb3V0ZV9jbGtfY2FwX2ZhY3RvcikgImZsb2F0ICh0cmlwbGV0KSIKLXNldCBoZWxwKG1tbWMsY3JlYXRlX3JjX2Nvcm5lciw8cmM+LHBvc3Rfcm91dGVfY2xrX3Jlc19mYWN0b3IpICJmbG9hdCAodHJpcGxldCkiCi1zZXQgaGVscChtbW1jLGNyZWF0ZV9yY19jb3JuZXIsPHJjPixwb3N0X3JvdXRlX3Jlc19mYWN0b3IpICJmbG9hdCIKLXNldCBoZWxwKG1tbWMsY3JlYXRlX3JjX2Nvcm5lciw8cmM+LHByZV9yb3V0ZV9jYXBfZmFjdG9yKSAiZmxvYXQiCi1zZXQgaGVscChtbW1jLGNyZWF0ZV9yY19jb3JuZXIsPHJjPixwcmVfcm91dGVfY2xrX2NhcF9mYWN0b3IpICJmbG9hdCIKLXNldCBoZWxwKG1tbWMsY3JlYXRlX3JjX2Nvcm5lciw8cmM+LHByZV9yb3V0ZV9jbGtfcmVzX2ZhY3RvcikgImZsb2F0Igotc2V0IGhlbHAobW1tYyxjcmVhdGVfcmNfY29ybmVyLDxyYz4scHJlX3JvdXRlX3Jlc19mYWN0b3IpICJmbG9hdCIKLXNldCBoZWxwKG1tbWMsY3JlYXRlX3JjX2Nvcm5lciw8cmM+LHF4X3RlY2hfZmlsZSkgIlFSQyB0ZWNoZmlsZSIKLXNldCBoZWxwKG1tbWMsY3JlYXRlX29wX2NvbmQsb3Bjb25kcykgIkxpc3Qgb2Ygb3Bjb25kcyIKLXNldCBoZWxwKG1tbWMsY3JlYXRlX29wX2NvbmQsPG9wY29uZD4sUCkgIlByb2Nlc3MgbXVsdGlwbGllciIgCi1zZXQgaGVscChtbW1jLGNyZWF0ZV9vcF9jb25kLDxvcGNvbmQ+LFQpICJUZW1wZXJhdHVyZSIKLXNldCBoZWxwKG1tbWMsY3JlYXRlX29wX2NvbmQsPG9wY29uZD4sVikgIlZvbHRhZ2UiCi1zZXQgaGVscChtbW1jLGNyZWF0ZV9vcF9jb25kLDxvcGNvbmQ+LGxpYnJhcnlfZmlsZSkgIkxpYnJhcnkgZmlsZSIKLXNldCBoZWxwKG1tbWMsY3JlYXRlX2RlbGF5X2Nvcm5lcixkZWxheV9jb3JuZXJzKSAiTGlzdCBvZiBkZWxheSBjb3JuZXJzIgotc2V0IGhlbHAobW1tYyxjcmVhdGVfZGVsYXlfY29ybmVyLDxkYz4sbGlicmFyeV9zZXQpICJMaWJyYXJ5IHNldCIKLXNldCBoZWxwKG1tbWMsY3JlYXRlX2RlbGF5X2Nvcm5lciw8ZGM+LHJjX2Nvcm5lcikgIlJDIGNvcm5lciIKLXNldCBoZWxwKG1tbWMsdXBkYXRlX2RlbGF5X2Nvcm5lciw8ZGM+LHBvd2VyX2RvbWFpbnMpICJMaXN0IG9mIHBvd2VyIGRvbWFpbnMiCi1zZXQgaGVscChtbW1jLGNyZWF0ZV9kZWxheV9jb3JuZXIsPGRjPixjbG9ja19jZWxsX2Vhcmx5KSAiRmxvYXQiCi1zZXQgaGVscChtbW1jLGNyZWF0ZV9kZWxheV9jb3JuZXIsPGRjPixjbG9ja19jZWxsX2xhdGUpICJGbG9hdCIKLXNldCBoZWxwKG1tbWMsY3JlYXRlX2RlbGF5X2Nvcm5lciw8ZGM+LGNsb2NrX25ldF9lYXJseSkgIkZsb2F0Igotc2V0IGhlbHAobW1tYyxjcmVhdGVfZGVsYXlfY29ybmVyLDxkYz4sY2xvY2tfbmV0X2xhdGUpICJGbG9hdCIKLXNldCBoZWxwKG1tbWMsY3JlYXRlX2RlbGF5X2Nvcm5lciw8ZGM+LGRhdGFfY2VsbF9lYXJseSkgIkZsb2F0Igotc2V0IGhlbHAobW1tYyxjcmVhdGVfZGVsYXlfY29ybmVyLDxkYz4sZGF0YV9jZWxsX2xhdGUpICJGbG9hdCIKLXNldCBoZWxwKG1tbWMsY3JlYXRlX2RlbGF5X2Nvcm5lciw8ZGM+LGRhdGFfbmV0X2Vhcmx5KSAiRmxvYXQiCi1zZXQgaGVscChtbW1jLGNyZWF0ZV9kZWxheV9jb3JuZXIsPGRjPixkYXRhX25ldF9sYXRlKSAiRmxvYXQiCi1zZXQgaGVscChtbW1jLGNyZWF0ZV9jb25zdHJhaW50X21vZGUsY29uc3RyYWludF9tb2RlcykgIkxpc3Qgb2YgY29uc3RyYWludCBtb2RlcyIKLXNldCBoZWxwKG1tbWMsY3JlYXRlX2NvbnN0cmFpbnRfbW9kZSw8Y20+LHByZV9jdHNfc2RjKSAiTGlzdCBvZiBTREMgZmlsZXMiCi1zZXQgaGVscChtbW1jLHVwZGF0ZV9jb25zdHJhaW50X21vZGUsPGNtPixwb3N0X2N0c19zZGMpICJMaXN0IG9mIFNEQyBmaWxlcyIgCi1zZXQgaGVscChtbW1jLHVwZGF0ZV9jb25zdHJhaW50X21vZGUsPGNtPixpbmNyX2N0c19zZGMpICJMaXN0IG9mIFNEQyBmaWxlcyAoaW5jcmVtZW50YWwpIiAKLXNldCBoZWxwKG1tbWMsdXBkYXRlX2NvbnN0cmFpbnRfbW9kZSw8Y20+LGlsbV9ub25fc2RjX2ZpbGUpICJMaXN0IG9mIElMTSBjb25zdHJhaW50cyIKLXNldCBoZWxwKG1tbWMsY3JlYXRlX2FuYWx5c2lzX3ZpZXcsc2V0dXBfYW5hbHlzaXNfdmlld3MpICJMaXN0IG9mIGFuYWx5c2lzIHZpZXdzIiAKLXNldCBoZWxwKG1tbWMsY3JlYXRlX2FuYWx5c2lzX3ZpZXcsaG9sZF9hbmFseXNpc192aWV3cykgIkxpc3Qgb2YgYW5hbHlzaXMgdmlld3MiIAotc2V0IGhlbHAobW1tYyxjcmVhdGVfYW5hbHlzaXNfdmlldyw8YXY+LGNvbnN0cmFpbnRfbW9kZSkgIkNvbnN0cmFpbnQgbW9kZSIKLXNldCBoZWxwKG1tbWMsY3JlYXRlX2FuYWx5c2lzX3ZpZXcsPGF2PixkZWxheV9jb3JuZXIpICJEZWxheSBjb3JuZXIiCi0KLXNldCBoZWxwKG1tbWMsc2V0X2FuYWx5c2lzX3ZpZXcsYWN0aXZlX3NldHVwX3ZpZXdzKSAiTGlzdCBvZiBhY3RpdmUgc2V0dXAgdmlld3MiCi1zZXQgaGVscChtbW1jLHNldF9hbmFseXNpc192aWV3LGFjdGl2ZV9ob2xkX3ZpZXdzKSAiTGlzdCBvZiBhY3RpdmUgaG9sZCB2aWV3cyIKLXNldCBoZWxwKG1tbWMsc2V0X2FuYWx5c2lzX3ZpZXcsPHN0ZXA+LGFjdGl2ZV9zZXR1cF92aWV3cykgIkxpc3Qgb2YgYWN0aXZlIHNldHVwIHZpZXdzIHBlciBzdGVwIgotc2V0IGhlbHAobW1tYyxzZXRfYW5hbHlzaXNfdmlldyw8c3RlcD4sYWN0aXZlX2hvbGRfdmlld3MpICJMaXN0IG9mIGFjdGl2ZSBob2xkIHZpZXdzIHBlciBzdGVwIgotCi1zZXQgaGVscChtbW1jLHNldF9hbmFseXNpc192aWV3LGRlZmF1bHRfc2V0dXBfdmlldykgIkRlZmF1bHQgc2V0dXAgdmlldyIKLXNldCBoZWxwKG1tbWMsc2V0X2FuYWx5c2lzX3ZpZXcsZGVmYXVsdF9ob2xkX3ZpZXcpICJEZWZhdWx0IGhvbGQgdmlldyIKLQotIyBTeW50aGVzaXMKLXNldCBoZWxwKHN5bnRoLHNldF9hdHRyaWJ1dGUsZW5hYmxlX3BhbSkgInRydWUgRkFMU0UiCi1zZXQgaGVscChzeW50aCxyZWFkX2hkbCxzeW5fbG9hZF9ydGxfdGNsKSAiRmlsZSB0byBsb2FkL2VsYWJvcmF0ZSBSVEwiCi1zZXQgaGVscChzeW50aCxyZWFkX2hkbCxoZGxfc2VhcmNoX3BhdGgpICJWZXJpbG9nIFJUTCBzZWFyY2ggcGF0aCIKLXNldCBoZWxwKHN5bnRoLHJlYWRfaGRsLGhkbF9maWxlX2xpc3QpICJWZXJpbG9nIFJUTCBmaWxlcyIKLXNldCBoZWxwKHN5bnRoLHJlYWRfc2RjLGNvbnN0cmFpbnRfbW9kZXMpICJMaXN0IG9mIGNvbnN0cmFpbnQgbW9kZXMgKGRlZmF1bHQgd2lsbCBiZSB1c2VkKSIKLXNldCBoZWxwKHN5bnRoLHJlYWRfc2RjLDxjbT4scHJlX2N0c19zZGMpICJMaXN0IG9mIFNEQyBmaWxlcyIKLXNldCBoZWxwKHN5bnRoLHJlYWRfZGVmLGRlZl9maWxlcykgIkxpc3Qgb2YgZGVmIGZpbGVzIgotc2V0IGhlbHAoc3ludGgsc2V0X2F0dHJpYnV0ZSxjbG9ja19nYXRlX2NlbGxzKSAiTGlzdCBvZiBJQ0cgY2VsbHMiCi1zZXQgaGVscChzeW50aCxzZXRfYXR0cmlidXRlLHBvc3Rsb2FkX3N5bl9wbGFjZV90Y2wpICJSQ1AgcHJlLXBsYWNlIHBsdWctaW4iCi1zZXQgaGVscChzeW50aCxzZXRfYXR0cmlidXRlLHByZWV4cG9ydF9zeW5fcGxhY2VfdGNsKSAiUkNQIHBvc3QtcGxhY2UgcGx1Zy1pbiIKLXNldCBoZWxwKHN5bnRoLHNldF9hdHRyaWJ1dGUscHJlYW5ub3RhdGlvbl9zeW5fcGxhY2VfdGNsKSAiUkNQIHByZS1pbXBvcnQgcGx1Zy1pbiIKLSMgRGVzaWduIEluaXRpYWxpemF0aW9uCi1zZXQgaGVscChpbml0LGluaXRfZGVzaWduLG5ldGxpc3QpICJOZXRsaXN0IGZpbGVzIgotc2V0IGhlbHAoaW5pdCxpbml0X2Rlc2lnbixuZXRsaXN0X3R5cGUpICJWRVJJTE9HIHZoZGwiCi1zZXQgaGVscChpbml0LGluaXRfZGVzaWduLGRlc2lnbikgIkRlc2lnbiBuYW1lIgotc2V0IGhlbHAoaW5pdCxkZWZfaW4sZGVmX2ZpbGVzKSAiTGlzdCBvZiBkZWYgZmlsZXMiCi1zZXQgaGVscChpbml0LGluaXRfZGVzaWduLG9hX2Rlc2lnbl9saWIpICJTdGFydGluZyBPQSBkZXNpZ24gbGlicmFyeSIKLXNldCBoZWxwKGluaXQsaW5pdF9kZXNpZ24sb2FfZGVzaWduX2NlbGwpICJTdGFydGluZyBPQSBkZXNpZ24gY2VsbCIKLXNldCBoZWxwKGluaXQsaW5pdF9kZXNpZ24sb2FfZGVzaWduX3ZpZXcpICAiU3RhcnRpbmcgT0EgZGVzaWduIHZpZXciCi1zZXQgaGVscChpbml0LHNwZWNpZnlfaWxtLGlsbV9saXN0KSAiTGlzdCBvZiBJTE1zIgotc2V0IGhlbHAoaW5pdCxzcGVjaWZ5X2lsbSw8aWxtPixpbG1fZGlyKSAiSUxNIGRpcmVjdG9yeSBmb3IgPGlsbT4iCi1zZXQgaGVscChpbml0LHNwZWNpZnlfaWxtLDxpbG0+LGxlZl9maWxlKSAiTEVGIGZpbGUgZm9yIDxpbG0+Igotc2V0IGhlbHAoaW5pdCxzcGVjaWZ5X2lsbSw8aWxtPixzZXR1cF9saWIpICJCbGFja2JveCBMSUIgZmlsZSBmb3IgPGlsbT4iCi1zZXQgaGVscChpbml0LG5vbmUsZW5hYmxlX2ZsZXhpbG0pICJFbmFibGUgdGhlIGZsZXhJbG0gaGllcmFyY2hpY2FsIGZsb3ciCi1zZXQgaGVscChpbml0LHNldF9kZXNpZ25fbW9kZSxwcm9jZXNzKSAiUHJvY2VzcyBub2RlICg0NW5tcywgZS5nLikiCi1zZXQgaGVscChpbml0LHNldF9tYXhfcm91dGVfbGF5ZXIsbWF4X3JvdXRlX2xheWVyKSAiSW50ZWdlciIKLXNldCBoZWxwKGluaXQsZ2VuZXJhdGVfdHJhY2tzLGdlbmVyYXRlX3RyYWNrcykgInRydWUgRkFMU0UiCi1zZXQgaGVscChpbml0LGdlbmVyYXRlX3RyYWNrcyxob25vcl9waXRjaCkgInRydWUgRkFMU0UiCi1zZXQgaGVscChpbml0LGluaXRfZGVzaWduLGFzc2lnbl9idWZmZXIpICIxIC1idWZmZXIgPGJ1ZmZlcj4iCi0jc2V0IGhlbHAoaW5pdCxpbml0X2Rlc2lnbixhc3NpZ25fYnVmZmVyX2NlbGwpICI8YnVmZmVyPiIKLXNldCBoZWxwKGluaXQsc2V0X2RvbnRfdXNlLGFsd2F5c19vbl9idWZmZXJzKSAiTGlzdCBvZiBBT04gYnVmZmVycyIKLXNldCBoZWxwKGluaXQsc2V0X2RvbnRfdXNlLGRlbGF5X2NlbGxzKSAiTGlzdCBvZiBkZWxheSBjZWxscyIKLXNldCBoZWxwKGluaXQsc2V0X2RvbnRfdXNlLGRvbnRfdXNlX2xpc3QpICJMaXN0IG9mIGRvbnQgdXNlIGNlbGxzIgotc2V0IGhlbHAoaW5pdCxzZXRfZG9udF91c2UsZG9udF91c2VfZmlsZSkgIkZpbGUgdy9zZXREb250VXNlIGNvbW1hbmRzIgotc2V0IGhlbHAoaW5pdCxhZGRfZW5kX2NhcCxlbmRjYXBzKSAiRW5kY2FwIGNlbGxzIgotc2V0IGhlbHAoaW5pdCxhZGRfd2VsbF90YXAsd2VsbHRhcHMpICJXZWxsdGFwIGNlbGxzIgotc2V0IGhlbHAoaW5pdCxhZGRfd2VsbF90YXAsd2VsbHRhcHMsY2VsbF9pbnRlcnZhbCkgIkZsb2F0OiAoaW50ZXJ2YWwpIGRpc3RhbmNlIGluIG1pY3JvbnMiCi1zZXQgaGVscChpbml0LGFkZF93ZWxsX3RhcCx3ZWxsdGFwcyxjaGVja2VyYm9hcmQpICJ0cnVlIEZBTFNFIgotCi0jIElMTSBSZWxhdGVkCi1zZXQgaGVscChpbG0sc3BlY2lmeV9pbG0saWxtX2xpc3QpICJMaXN0IG9mIElMTXMiCi1zZXQgaGVscChpbG0sc3BlY2lmeV9pbG0sPGlsbT4saWxtX2RpcikgIklMTSBkaXJlY3RvcnkgZm9yIDxpbG0+Igotc2V0IGhlbHAoaWxtLHNwZWNpZnlfaWxtLDxpbG0+LGxlZl9maWxlKSAiTEVGIGZpbGUgZm9yIDxpbG0+Igotc2V0IGhlbHAoaWxtLHNwZWNpZnlfaWxtLDxpbG0+LHNldHVwX2xpYikgIkJsYWNrYm94IExJQiBmaWxlIGZvciA8aWxtPiIKLXNldCBoZWxwKGlsbSx1cGRhdGVfY29uc3RyYWludF9tb2RlLDxjbT4saWxtX25vbl9zZGNfZmlsZSkgIkxpc3Qgb2YgSUxNIGNvbnN0cmFpbnRzIgotc2V0IGhlbHAoaWxtLG5vbmUsZW5hYmxlX2ZsZXhpbG0pICJFbmFibGUgdGhlIGZsZXhJbG0gaGllcmFyY2hpY2FsIGZsb3ciCi0KLSMgUGxhY2UKLXNldCBoZWxwKHBsYWNlLHNldF9wbGFjZV9tb2RlLHBsYWNlX2lvX3BpbnMpICJ0cnVlIEZBTFNFIgotc2V0IGhlbHAocGxhY2Usc2V0X3BsYWNlX21vZGUsY2xvY2tfZ2F0ZV9hd2FyZSkgInRydWUgRkFMU0UiCi1zZXQgaGVscChwbGFjZSxzZXRfcGxhY2VfbW9kZSxjbG9ja19nYXRlX2Nsb25lKSAidHJ1ZSBGQUxTRSIKLXNldCBoZWxwKHBsYWNlLHNldF9wbGFjZV9tb2RlLGNvbmdlc3Rpb25fZWZmb3J0KSAibG93IG1lZGl1bSBoaWdoIEFVVE8iCi1zZXQgaGVscChwbGFjZSxzcGVjaWZ5X3NwYXJlX2dhdGUsc3BhcmVfY2VsbHMpICJMaXN0IG9mIHNwYXJlIG1vZHVsZXMiCi1zZXQgaGVscChwbGFjZSxwbGFjZV9qdGFnLGp0YWdfY2VsbHMpICJMaXN0IG9mIGp0YWcgbW9kdWxlcyIKLXNldCBoZWxwKHBsYWNlLHBsYWNlX2p0YWcsanRhZ19yb3dzKSAiTGlzdCBvZiByb3dzIHRvIHJlc2VydmUgZm9yIGp0YWcgcGxhY2VtZW50Igotc2V0IGhlbHAocGxhY2Usc2V0X2ZpbGxlcl9tb2RlLGZpbGxlcl9jZWxscykgIkxpc3Qgb2YgZmlsbGVyIGNlbGxzIgotc2V0IGhlbHAocGxhY2Usc2V0X3VzZWZ1bF9za2V3X21vZGUsc2tld19idWZmZXJzKSAiTGlzdCBvZiBidWZmZXJzIGZvciB1c2VmdWwgc2tldyIKLXNldCBoZWxwKHBsYWNlLHNldF90aWVfaGlsb19tb2RlLHRpZV9jZWxscykgIkxpc3Qgb2YgdGllIGNlbGxzIgotc2V0IGhlbHAocGxhY2Usc2V0X3RpZV9oaWxvX21vZGUsdGllX2NlbGxzLG1heF9kaXN0YW5jZSkgIkZsb2F0OiBkaXN0YW5jZSBpbiBtaWNyb25zIgotc2V0IGhlbHAocGxhY2Usc2V0X3RpZV9oaWxvX21vZGUsdGllX2NlbGxzLG1heF9mYW5vdXQpICJJbnRlcmdlcjogZmFub3V0IG51bWJlciIKLXNldCBoZWxwKHBsYWNlLHNldF9kZXNpZ25fbW9kZSxmbG93X2VmZm9ydCkgImV4cHJlc3MgU1RBTkRBUkQgZXh0cmVtZSIKLXNldCBoZWxwKHBsYWNlLHNldF9kZXNpZ25fbW9kZSxwb3dlcl9lZmZvcnQpICJ0cnVlIEZBTFNFIgotCi0jIFBvd2VyCi1zZXQgaGVscChtbW1jLG5vbmUsY3BmX3RpbWluZykgInRydWUgRkFMU0UiCi0KLXNldCBoZWxwKHBvd2VyLHJlYWRfYWN0aXZpdHlfZmlsZSxhY3Rpdml0eV9maWxlKSAiRmlsZSBuYW1lIgotc2V0IGhlbHAocG93ZXIscmVhZF9hY3Rpdml0eV9maWxlLGFjdGl2aXR5X2ZpbGVfZm9ybWF0KSAiVENGIFZDRCBTQUlGIgotc2V0IGhlbHAocG93ZXIsc2V0X3Bvd2VyX2FuYWx5c2lzX3ZpZXcscG93ZXJfYW5hbHlzaXNfdmlldykgIkFuYWx5c2lzIHZpZXcgZm9yIHBvd2VyIGFuYWx5c2lzIgotc2V0IGhlbHAocG93ZXIsbm9uZSxwb3dlcl9kb21haW5zKSAiTGlzdCBvZiBwb3dlciBkb21haW5zIgotc2V0IGhlbHAocG93ZXIsc2V0X2Rlc2lnbl9tb2RlLGZsb3dfZWZmb3J0KSAiZXhwcmVzcyBTVEFOREFSRCBleHRyZW1lIgotc2V0IGhlbHAocG93ZXIsc2V0X2Rlc2lnbl9tb2RlLHBvd2VyX2VmZm9ydCkgInRydWUgRkFMU0UiCi0KLXNldCBoZWxwKHBvd2VyLGxvYWRfY3BmLGNwZl9maWxlKSAiRmlsZSBuYW1lIiAKLXNldCBoZWxwKHBvd2VyLGxvYWRfY3BmLGNwZl9pc29sYXRpb24pICJUUlVFIG9yIGZhbHNlIChDb21taXQgaXNvbGF0aW9uIHJ1bGVzPykiCi1zZXQgaGVscChwb3dlcixsb2FkX2NwZixjcGZfa2VlcF9yb3dzKSAiVFJVRSBvciBmYWxzZSAoS2VlcCByb3dzPykiCi1zZXQgaGVscChwb3dlcixsb2FkX2NwZixjcGZfbGV2ZWxfc2hpZnRlcikgIlRSVUUgb3IgZmFsc2UgKENvbW1pdCBsZXZlbCBzaGlmdGVyIHJ1bGVzPykiCi1zZXQgaGVscChwb3dlcixsb2FkX2NwZixjcGZfcG93ZXJfZG9tYWluKSAiVFJVRSBvciBmYWxzZSAoQ29tbWl0IHBvd2VyIGRvbWFpbnM/KSIKLXNldCBoZWxwKHBvd2VyLGxvYWRfY3BmLGNwZl9wb3dlcl9zd2l0Y2gpICJUUlVFIG9mIGZhbHNlIChDb21taXQgcG93ZXIgc3dpdGNoIHJ1bGVzPykiCi1zZXQgaGVscChwb3dlcixsb2FkX2NwZixjcGZfc3RhdGVfcmV0ZW50aW9uKSAiVFJVRSBvciBmYWxzZSAoQ29tbWl0IHN0YXRlIHJldGVudGlvbiBydWxlcz8pIgotc2V0IGhlbHAocG93ZXIsbG9hZF9pZWVlMTgwMSxpZWVlMTgwMV9maWxlKSAiRmlsZSBuYW1lIiAKLXNldCBoZWxwKHBvd2VyLGxvYWRfaWVlZTE4MDEsaWVlZTE4MDFfaXNvbGF0aW9uKSAiVFJVRSBvciBmYWxzZSAoQ29tbWl0IGlzb2xhdGlvbiBydWxlcz8pIgotc2V0IGhlbHAocG93ZXIsbG9hZF9pZWVlMTgwMSxpZWVlMTgwMV9rZWVwX3Jvd3MpICJUUlVFIG9yIGZhbHNlIChLZWVwIHJvd3M/KSIKLXNldCBoZWxwKHBvd2VyLGxvYWRfaWVlZTE4MDEsaWVlZTE4MDFfbGV2ZWxfc2hpZnRlcikgIlRSVUUgb3IgZmFsc2UgKENvbW1pdCBsZXZlbCBzaGlmdGVyIHJ1bGVzPykiCi1zZXQgaGVscChwb3dlcixsb2FkX2llZWUxODAxLGllZWUxODAxX3Bvd2VyX2RvbWFpbikgIlRSVUUgb3IgZmFsc2UgKENvbW1pdCBwb3dlciBkb21haW5zPykiCi1zZXQgaGVscChwb3dlcixsb2FkX2llZWUxODAxLGllZWUxODAxX3Bvd2VyX3N3aXRjaCkgIlRSVUUgb2YgZmFsc2UgKENvbW1pdCBwb3dlciBzd2l0Y2ggcnVsZXM/KSIKLXNldCBoZWxwKHBvd2VyLGxvYWRfaWVlZTE4MDEsaWVlZTE4MDFfc3RhdGVfcmV0ZW50aW9uKSAiVFJVRSBvciBmYWxzZSAoQ29tbWl0IHN0YXRlIHJldGVudGlvbiBydWxlcz8pIgotCi1zZXQgaGVscChwb3dlcixnbG9iYWxfbmV0X2Nvbm5lY3QscG93ZXJfbmV0cykgIkxpc3Qgb2YgcG93ZXIgbmV0cyIKLXNldCBoZWxwKHBvd2VyLGdsb2JhbF9uZXRfY29ubmVjdCxncm91bmRfbmV0cykgIkxpc3Qgb2YgZ3JvdW5kIG5ldHMiCi1zZXQgaGVscChwb3dlcixnbG9iYWxfbmV0X2Nvbm5lY3QsZ2xvYmFsX25ldHMpICJMaXN0IG9mIGdsb2JhbCBuZXRzIgotc2V0IGhlbHAocG93ZXIsZ2xvYmFsX25ldF9jb25uZWN0LDxnbG9iYWxfbmV0Pixtb2R1bGUpICJNb2R1bGUgZm9yIGdsb2JhbCBuZXQiCi1zZXQgaGVscChwb3dlcixnbG9iYWxfbmV0X2Nvbm5lY3QsPGdsb2JhbF9uZXQ+LHBpbnMpICJQb3dlciBwaW5zIGZvciBnbG9iYWwgbmV0Igotc2V0IGhlbHAocG93ZXIsZ2xvYmFsX25ldF9jb25uZWN0LDxnbG9iYWxfbmV0Pix0aWVoaSkgIlRpZWhpIGdsb2JhbCBuZXQiIAotc2V0IGhlbHAocG93ZXIsZ2xvYmFsX25ldF9jb25uZWN0LDxnbG9iYWxfbmV0Pix0aWVsbykgIlRpZWxvIGdsb2JhbCBuZXQiIAotCi0KLQotIyBDbG9jawotc2V0IGhlbHAoY3RzLGN0c19lbmdpbmUpICJjdHMgQ0NPUFQgY2NvcHRfY3RzIgotc2V0IGhlbHAoY3RzLGN0c19pbnRlZ3JhdGlvbikgIm5hdGl2ZSBzY3JpcHRlZCIKLXNldCBoZWxwKGN0cyxzcGVjaWZ5X2Nsb2NrX3RyZWUsY3RzX2NlbGxzKSAiTGlzdCBvZiBDVFMgY2VsbHMiCi1zZXQgaGVscChjdHMsc2V0X2Njb3B0X21vZGUsY3RzX2J1ZmZlcl9jZWxscykgIkxpc3Qgb2YgQ1RTIGJ1ZmZlciBjZWxscyIKLXNldCBoZWxwKGN0cyxzZXRfY2NvcHRfbW9kZSxjdHNfaW52ZXJ0ZXJfY2VsbHMpICJMaXN0IG9mIENUUyBpbnZlcnRlciBjZWxscyIKLXNldCBoZWxwKGN0cyxzZXRfY2NvcHRfbW9kZSxjbG9ja19nYXRlX2NlbGxzKSAiTGlzdCBvZiBDVFMgY2xvY2sgZ2F0ZSBjZWxscyIKLXNldCBoZWxwKGN0cyxzZXRfY2NvcHRfbW9kZSxjdHNfdXNlX2ludmVydGVycykgInRydWUgZmFsc2UiCi1zZXQgaGVscChjdHMsc2V0X2N0cy9jY29wdF9tb2RlLGNsa19sZWFmX2JvdHRvbV9sYXllcikgIkxheWVyIG51bWJlciIKLXNldCBoZWxwKGN0cyxzZXRfY3RzL2Njb3B0X21vZGUsY2xrX2xlYWZfdG9wX2xheWVyKSAiTGF5ZXIgbnVtYmVyIgotc2V0IGhlbHAoY3RzLHNldF9jdHMvY2NvcHRfbW9kZSxjbGtfbGVhZl9leHRyYV9zcGFjZSkgIkludGVnZXIgKHRyYWNrcykiCi1zZXQgaGVscChjdHMsc2V0X2N0cy9jY29wdF9tb2RlLGNsa19sZWFmX25kcikgIlZhbGlkIE5EUiBuYW1lIgotc2V0IGhlbHAoY3RzLHNldF9jY29wdF9tb2RlLGNsa19tYXhfc2tldykgIkZsb2F0IChuYW5vc2Vjb25kcykiCi1zZXQgaGVscChjdHMsc2V0X2Njb3B0X21vZGUsY2xrX21heF9zbGV3KSAiRmxvYXQgKG5hbm9zZWNvbmRzKSIKLXNldCBoZWxwKGN0cyxzZXRfY3RzL2Njb3B0X21vZGUsY2xrX3RyZWVfYm90dG9tX2xheWVyKSAiTGF5ZXIgbnVtYmVyIgotc2V0IGhlbHAoY3RzLHNldF9jdHMvY2NvcHRfbW9kZSxjbGtfdHJlZV90b3BfbGF5ZXIpICJMYXllciBudW1iZXIiCi1zZXQgaGVscChjdHMsc2V0X2N0cy9jY29wdF9tb2RlLGNsa190cmVlX2V4dHJhX3NwYWNlKSAiSW50ZWdlciAodHJhY2tzKSIKLXNldCBoZWxwKGN0cyxzZXRfY3RzL2Njb3B0X21vZGUsY2xrX3RyZWVfbmRyKSAiVmFsaWQgTkRSIG5hbWUiCi1zZXQgaGVscChjdHMsc2V0X2Njb3B0X21vZGUsY2xrX3RyZWVfc2hpZWxkX25ldCkgIkdsb2JhbCBzaGllbGQgbmV0Igotc2V0IGhlbHAoY3RzLHNldF9jY29wdF9tb2RlLGNsa190cmVlX3NoaWVsZF90aHJlc2gpICJVbnVzZWQgYXQgdGhlIG1vbWVudCIKLXNldCBoZWxwKGN0cyxzZXRfY3RzL2Njb3B0X21vZGUsdXBkYXRlX2lvX2xhdGVuY3kpICJBZGp1c3QgSU8gbGF0ZW5jaWVzIgotc2V0IGhlbHAoZmxvdyxjY29wdF9kZXNpZ24scG9zdGN0c19zZXR1cF9ob2xkKSAidHJ1ZSBGQUxTRSIKLXNldCBoZWxwKGN0cyxja19lY28sY2xvY2tfZWNvKSAidHJ1ZSBGQUxTRSIKLXNldCBoZWxwKGN0cyxzZXRfZGVzaWduX21vZGUsZmxvd19lZmZvcnQpICJleHByZXNzIFNUQU5EQVJEIGV4dHJlbWUiCi1zZXQgaGVscChjdHMsc2V0X2Rlc2lnbl9tb2RlLHBvd2VyX2VmZm9ydCkgInRydWUgRkFMU0UiCi0KLSMgT3B0Ci1zZXQgaGVscChvcHQsc2V0X29wdF9tb2RlLGFsbF9lbmRfcG9pbnRzKSAidHJ1ZSBGQUxTRSIKLXNldCBoZWxwKHBsYWNlLHNldF9wbGFjZV9tb2RlLGNsb2NrX2dhdGVfYXdhcmVfb3B0KSAidHJ1ZSBGQUxTRSIKLXNldCBoZWxwKG9wdCxzZXRfb3B0X21vZGUsY3JpdGljYWxfcmFuZ2UpICJ0cnVlIEZBTFNFIgotc2V0IGhlbHAob3B0LHNldF9vcHRfbW9kZSxjb25nZXN0aW9uX2VmZm9ydCkgImxvdyBtZWRpdW0gaGlnaCBBVVRPIgotc2V0IGhlbHAob3B0LHNldF9vcHRfbW9kZSxkeW5hbWljX3Bvd2VyX2VmZm9ydCkgImxvdyBoaWdoIgotc2V0IGhlbHAob3B0LHNldF9vcHRfbW9kZSxsZWFrYWdlX3Bvd2VyX2VmZm9ydCkgImxvdyBoaWdoIgotc2V0IGhlbHAob3B0LHNldF9vcHRfbW9kZSxwcmVzZXJ2ZV9hc3NlcnRpb25zKSAidHJ1ZSBGQUxTRSIgCi1zZXQgaGVscChvcHQsc2V0X29wdF9tb2RlLHJlc2l6ZV9zaGlmdGVyX2FuZF9pc29faW5zdHMpICJ0cnVlIEZBTFNFIiAKLXNldCBoZWxwKG9wdCxzZXRfb3B0X21vZGUsZml4X2hvbGRfYWxsb3dfdG5zX2RlZ3JhZGF0aW9uKSAidHJ1ZSBGQUxTRSIKLXNldCBoZWxwKG9wdCxzZXRfb3B0X21vZGUsZml4X2hvbGRfaWdub3JlX2lvcykgInRydWUgRkFMU0UiCi1zZXQgaGVscChvcHQsc2V0X29wdF9tb2RlLHVzZWZ1bF9za2V3KSAidHJ1ZSBGQUxTRSIKLXNldCBoZWxwKG9wdCxzZXRfZGVzaWduX21vZGUsZmxvd19lZmZvcnQpICJleHByZXNzIFNUQU5EQVJEIGV4dHJlbWUiCi1zZXQgaGVscChvcHQsc2V0X2Rlc2lnbl9tb2RlLHBvd2VyX2VmZm9ydCkgInRydWUgRkFMU0UiCi0KLSMgSG9sZAotc2V0IGhlbHAoZmxvdyxub25lLGZpeF9ob2xkKSAiVFJVRSBmYWxzZSIKLXNldCBoZWxwKGZsb3csY2NvcHRfZGVzaWduLHBvc3RjdHNfc2V0dXBfaG9sZCkgInRydWUgRkFMU0UiCi1zZXQgaGVscChmbG93LG9wdF9kZXNpZ24scG9zdHJvdXRlX3NldHVwX2hvbGQpICJUUlVFIGZhbHNlIgotc2V0IGhlbHAoaG9sZCxzZXRfb3B0X21vZGUsZml4X2hvbGRfYWxsb3dfdG5zX2RlZ3JhZGF0aW9uKSAidHJ1ZSBGQUxTRSIKLXNldCBoZWxwKGhvbGQsc2V0X29wdF9tb2RlLGZpeF9ob2xkX2lnbm9yZV9pb3MpICJ0cnVlIEZBTFNFIgotc2V0IGhlbHAoaG9sZCxzZXRfYW5hbHlzaXNfdmlldyxhY3RpdmVfaG9sZF92aWV3cykgIkxpc3Qgb2YgYWN0aXZlIGhvbGQgdmlld3MiCi1zZXQgaGVscChob2xkLHNldF9hbmFseXNpc192aWV3LDxzdGVwPixhY3RpdmVfaG9sZF92aWV3cykgIkxpc3Qgb2YgYWN0aXZlIGhvbGQgdmlld3MgcGVyIHN0ZXAiCi1zZXQgaGVscChtbW1jLHNldF9hbmFseXNpc192aWV3LGRlZmF1bHRfc2V0dXBfdmlldykgIkRlZmF1bHQgc2V0dXAgdmlldyIKLXNldCBoZWxwKGhvbGQsc2V0X2FuYWx5c2lzX3ZpZXcsZGVmYXVsdF9ob2xkX3ZpZXcpICJEZWZhdWx0IGhvbGQgdmlldyIKLQotIyBSb3V0ZQotc2V0IGhlbHAocm91dGUsc2V0X25hbm9yb3V0ZV9tb2RlLG11bHRpX2N1dF9lZmZvcnQpICJNRURJVU0gaGlnaCIKLXNldCBoZWxwKHJvdXRlLHNldF9uYW5vcm91dGVfbW9kZSxsaXRob19kcml2ZW5fcm91dGluZykgInRydWUgRkFMU0UiCi1zZXQgaGVscChyb3V0ZSxzZXRfbmFub3JvdXRlX21vZGUscG9zdHJvdXRlX3NwcmVhZF93aXJlcykgInRydWUgRkFMU0UiCi1zZXQgaGVscChyb3V0ZSxzZXRfY3RzX21vZGUscm91dGVfY2xvY2tfbmV0cykgIlRSVUUgZmFsc2UiCi1zZXQgaGVscChyb3V0ZSxzZXRfcGdfcGluX3VzZV9zaWduYWxfcm91dGUsc2Vjb25kYXJ5X3BnLGNlbGxfcGluX3BhaXJzKSAiTGlzdCBvZiBjZWxsOnBpbiBwYWlycyIKLXNldCBoZWxwKHJvdXRlLHJvdXRlX3BnX3Bpbl91c2Vfc2lnbmFsX3JvdXRlLHJvdXRlX3NlY29uZGFyeV9wZ19uZXRzKSAidHJ1ZSBGQUxTRSIKLXNldCBoZWxwKHJvdXRlLHJvdXRlX3BnX3Bpbl91c2Vfc2lnbmFsX3JvdXRlLHNlY29uZGFyeV9wZ19uZXRzKSAiTGlzdCBvZiBnbG9iYWwgbmV0cyBmb3Igc2Vjb25kYXJ5IHBvd2VyL2dyb3VuZCIKLXNldCBoZWxwKHJvdXRlLHJvdXRlX2Rlc2lnbixpbl9yb3V0ZV9vcHQpICJGQUxTRSB0cnVlIgotCi0jIEV4dHJhY3Rpb24KLXNldCBoZWxwKGV4dHJhY3Qsc2V0X2V4dHJhY3RfcmNfbW9kZSxwb3N0cm91dGVfZXh0cmFjdGlvbl9lZmZvcnQpICJMT1cgbWVkaXVtIGhpZ2giCi1zZXQgaGVscChleHRyYWN0LHNldF9leHRyYWN0X3JjX21vZGUsc2lnbm9mZl9leHRyYWN0aW9uX2VmZm9ydCkgImxvdyBtZWRpdW0gSElHSCIKLXNldCBoZWxwKGV4dHJhY3Qsc2V0X2V4dHJhY3RfcmNfbW9kZSxjb3VwbGluZ19jX3RocmVzaCkgIkZsb2F0Igotc2V0IGhlbHAoZXh0cmFjdCxzZXRfZXh0cmFjdF9yY19tb2RlLHRvdGFsX2NfdGhyZXNoKSAiRmxvYXQiCi1zZXQgaGVscChleHRyYWN0LHNldF9leHRyYWN0X3JjX21vZGUscmVsYXRpdmVfY190aHJlc2gpICJGbG9hdCIKLQotIyBERk0KLXNldCBoZWxwKGRmbSx2ZXJpZnlfbGl0aG8sdmVyaWZ5X2xpdGhvKSAidHJ1ZSBGQUxTRSIKLXNldCBoZWxwKGRmbSx2ZXJpZnlfbGl0aG8sbHBhX3RlY2hfZmlsZSkgIkxQQSB0ZWNoIGZpbGUiCi1zZXQgaGVscChkZm0sdHJpbV9tZXRhbF9maWxsLG1ldGFsZmlsbCkgInRydWUgRkFMU0UiCi1zZXQgaGVscChkZm0sbm9uZSxtZXRhbGZpbGxfdGNsKSAiTWV0YWxmaWxsIHBsdWctaW4iCi1zZXQgaGVscChkZm0sc3RyZWFtT3V0LGdkc19maWxlcykgIkdEUyBmaWxlIGxpc3QiCi1zZXQgaGVscChkZm0sc3RyZWFtT3V0LGdkc19sYXllcl9tYXApICJHRFMgbGF5ZXIgbWFwIgotc2V0IGhlbHAoZGZtLG9hc2lzT3V0LGdkc19maWxlcykgIk9hc2lzIGZpbGUgbGlzdCIKLXNldCBoZWxwKGRmbSxvYXNpc091dCxnZHNfbGF5ZXJfbWFwKSAiT2FzaXMgbGF5ZXIgbWFwIgotCi0jIE5vaXNlCi1zZXQgaGVscChub2lzZSxzZXRfc2lfbW9kZSxzaV9hbmFseXNpc190eXBlKSAiREVGQVVMVCBwZXNzaW1pc3RpYyIKLXNldCBoZWxwKG5vaXNlLHNldF9zaV9tb2RlLGRlbHRhX2RlbGF5X3RocmVzaG9sZCkgIkZsb2F0IChuYW5vc2Vjb25kcykiCi1zZXQgaGVscChub2lzZSxzZXRfc2lfbW9kZSxhY2NlcHRhYmxlX3ducykgIkZsb2F0IChuYW5vc2Vjb25kcykiCi0KLSMgRGF0YWJhc2UKLXNldCBoZWxwKGRicyxub25lLGRic19kaXIpICJEYXRhYmFzZSBkaXJlY3RvcnkiCi1zZXQgaGVscChkYnMsc2F2ZV9kZXNpZ24sZGJzX2Zvcm1hdCkgIkZFIG9hIgotc2V0IGhlbHAoZGJzLHNhdmVfZGVzaWduLG9hX2xheW91dF9uYW1lKSAiT0EgTGF5b3V0IHZpZXcgbmFtZSIKLXNldCBoZWxwKGRicyxzYXZlX2Rlc2lnbixvYV9hYnN0cmFjdF9uYW1lKSAiT0EgQWJzdHJhY3QgdmlldyBuYW1lIgotc2V0IGhlbHAoZGJzLHNhdmVfZGVzaWduLHNhdmVfY29uc3RyYWludHMpICJ0cnVlIEZBTFNFIChTYXZlIGNvbnN0cmFpbnRzIHdpdGggREJTPykiCi1zZXQgaGVscChkYnMsc2F2ZV9kZXNpZ24sc2F2ZV9yYykgInRydWUgRkFMU0UgKFNhdmUgUkNEQiB3aXRoIERCUz8pIgotCi0jIFJlcG9ydGluZwotc2V0IGhlbHAocmVwb3J0LG5vbmUscnB0X2RpcikgIlJlcG9ydHMgZGlyZWN0b3J5Igotc2V0IGhlbHAocmVwb3J0LG5vbmUscmVwb3J0X3Bvd2VyKSAiVFJVRSBmYWxzZSIKLXNldCBoZWxwKHJlcG9ydCxub25lLHJlcG9ydF9ydW5fdGltZSkgIlRSVUUgZmFsc2UiCi1zZXQgaGVscChyZXBvcnQsbm9uZSxyZXBvcnRfc3lzdGVtX2luZm8pICJ0cnVlIEZBTFNFIgotI3NldCBoZWxwKHJlcG9ydCxmbG93X3N1bW1hcnkpIAotc2V0IGhlbHAocmVwb3J0LG5vbmUsY2FwdHVyZV9tZXRyaWNzKSAidHJ1ZSBGQUxTRSIKLXNldCBoZWxwKHJlcG9ydCxub25lLGNoZWNrX3NldHVwKSAiVFJVRSBmYWxzZSIKLXNldCBoZWxwKHJlcG9ydCxub25lLGh0bWxfc3VtbWFyeSkgIkhUTUwgc3VtbWFyeSBmaWxlIgotc2V0IGhlbHAocmVwb3J0LG5vbmUsdGltZV9pbmZvX2RiKSAiVGltZSBpbmZvIERCIGZpbGUiCi1zZXQgaGVscChyZXBvcnQsbm9uZSx0aW1lX2luZm9fcnB0KSAiVGltZSBpbmZvIHJlcG9ydCBmaWxlIgotCi0KLSMgTWlzYwotc2V0IGhlbHAobWlzYyxtYWlsLHRvKSAiTWFpbCBhZGRyZXNzZXMiCi1zZXQgaGVscChtaXNjLG1haWwsc3RlcHMpICJMaXN0IG9mIHN0ZXBzIgotCi1zZXQgaGVscChtaXNjLG5vbmUscGx1Z19kaXIpICJQbHVnLWluIGRpcmVjdG9yeSIKLXNldCBoZWxwKG1pc2Msbm9uZSx0bXBfZGlyKSAiVE1QIGRpcmVjdG9yeSIKLXNldCBoZWxwKG1pc2Msbm9uZSxsb2dfZGlyKSAiTE9HIGRpcmVjdG9yeSIKLQotc2V0IGhlbHAobWlzYyxub25lLHZlcnNpb24pICJJbm5vdnVzIHZlcnNpb24iCi1zZXQgaGVscChtaXNjLG5vbmUsdnBhdGgpICJNYWtlIHNlbWFwaG9yZSBkaXJlY3RvcnkiCi1zZXQgaGVscChtaXNjLG5vbmUscGFjX3NjcmF0Y2hfZGlyKSAiUEFDIHNjcmF0Y2ggZGlyZWN0b3J5IChQQUNfU0NSQVRDSF9ESVIpIgotc2V0IGhlbHAobWlzYyxub25lLHBhcnRpdGlvbl9kaXIpICJQQVJUSVRJT04gZGlyZWN0b3J5IgotCi1zZXQgaGVscChtaXNjLG5vbmUsYWJ1dHRlZF9kZXNpZ24pICJBYnV0dGVkIGhpZXJhcmNoaWNhbCBkZXNpZ24gZmxvdyIKLXNldCBoZWxwKG1pc2Msbm9uZSxpbnNlcnRfZmVlZHRocm91Z2gpICJJbnNlcnQgZmVlZHRocm91Z2ggZHVyaW5nIGhpZXJhcmNoaWNhbCBmbG93cyIKLXNldCBoZWxwKG1pc2Msc2V0X2J1ZGdldF9tb2RlLGJ1ZGdldF9tb2RlKSAiVFJJQUxfSVBPLCBnaWdhX29wdCwgcHNfcG0iCi1zZXQgaGVscChtaXNjLG5vbmUsdXNlX3BzX3BtKSAiVXNlIHBzIHBlciBtaWNyb24gZHVyaW5nIGhpZXJhcmNoaWNhbCBmbG93cyIKLXNldCBoZWxwKG1pc2Msbm9uZSxlbmFibGVfZmxleGlsbSkgIkVuYWJsZSB0aGUgZmxleElsbSBoaWVyYXJjaGljYWwgZmxvdyIKLXNldCBoZWxwKG1pc2Msbm9uZSx1c2VfZmxleG1vZGVscykgIlVzZSBmbGV4TW9kZWxzIGR1cmluZyBoaWVyYXJjaGljYWwgZmxvdyIKLXNldCBoZWxwKG1pc2Msbm9uZSxmbGV4bW9kZWxfYXNfcHRuKSAiVHJlYXQgZmxleE1vZGVscyBhcyBwYXJ0aXRpb25zIgotc2V0IGhlbHAobWlzYyxub25lLGZsZXhtb2RlbF9hcnRfYmFzZWQpICJUcmVhdCBmbGV4TW9kZWxzIGFzIEFSVCIKLQotc2V0IGhlbHAoZGlzdHJpYnV0ZSxzZXRfZGlzdHJpYnV0ZV9ob3N0LGRpc3RyaWJ1dGUpICJMT0NBTCBsc2YgcnNoIGN1c3RvbSIKLXNldCBoZWxwKGRpc3RyaWJ1dGUsc2V0X211bHRpX2NwdV91c2FnZSxsb2NhbF9jcHVzKSAiTGlzdCBvZiBob3N0cyIKLXNldCBoZWxwKGRpc3RyaWJ1dGUsc2V0X211bHRpX2NwdV91c2FnZSxyZW1vdGVfaG9zdHMpICJJbnRlZ2VyIChudW1iZXIgb2YgaG9zdHMpIgotc2V0IGhlbHAoZGlzdHJpYnV0ZSxzZXRfbXVsdGlfY3B1X3VzYWdlLGNwdXNfcGVyX3JlbW90ZV9ob3N0KSAiSW50ZWdlciAobnVtYmVyIG9mIGNwdXMpIgotc2V0IGhlbHAoZGlzdHJpYnV0ZSxzZXRfZGlzdHJpYnV0ZV9ob3N0LGxzZixxdWV1ZSkgIkxTRiBxdWV1ZSIKLXNldCBoZWxwKGRpc3RyaWJ1dGUsc2V0X2Rpc3RyaWJ1dGVfaG9zdCxsc2YscmVzb3VyY2UpICJMU0YgcmVzb3VyY2VzIgotc2V0IGhlbHAoZGlzdHJpYnV0ZSxzZXRfZGlzdHJpYnV0ZV9ob3N0LGxzZixhcmdzKSAiTFNGIGFyZ3MiCi1zZXQgaGVscChkaXN0cmlidXRlLHNldF9kaXN0cmlidXRlX2hvc3QscnNoLGhvc3RfbGlzdCkgIkxpc3Qgb2YgaG9zdHMiCi1zZXQgaGVscChkaXN0cmlidXRlLHNldF9kaXN0cmlidXRlX2hvc3QsY3VzdG9tLHNjcmlwdCkgIkN1c3RvbSBsYXVuY2ggc2NyaXB0IgotCi1zZXQgaGVscChtYWtlLG1ha2UsbWFrZV90b29sKSAiRW5jb3VudGVyIGV4ZWN1dGFibGUiCi1zZXQgaGVscChtYWtlLG1ha2UsbWFrZV90b29sX2FyZ3MpICJFbmNvdW50ZXIgYXJncyIKLXNldCBoZWxwKG1ha2UsbWFrZSxtYWtlX3N5bl90b29sKSAiUkMgZXhlY3V0YWJsZSIKLXNldCBoZWxwKG1ha2UsbWFrZSxtYWtlX3N5bl90b29sX2FyZ3MpICJSQyBhcmdzIgotc2V0IGhlbHAobWFrZSxtYWtlLG1ha2VfYnJvd3NlcikgIkJyb3dzZXIiCi0KLXNldCBoZWxwKGhpZXIsY2F0ZWdvcmllcykgaGllcgotc2V0IGhlbHAoaGllcixub25lLHBhcml0aXRpb25fbGlzdCkgIkxpc3Qgb2YgcGFydGl0aW9ucyIKLXNldCBoZWxwKGhpZXIsbm9uZSxoaWVyX2Zsb3dfdHlwZSkgIjFwYXNzIDJwYXNzIgotc2V0IGhlbHAoaGllcixub25lLGJsYWNrX2JveCkgIlRSVUUgZmFsc2UiCi1zZXQgaGVscChoaWVyLGluc2VydF9wYXJ0aXRpb25fZmVlZHRocm91Z2gsaW5zZXJ0X2ZlZWR0aHJvdWdoKSAiVFJVRSBmYWxzZSIKLXNldCBoZWxwKGhpZXIsc2V0X3BsYWNlX21vZGUscGxhY2VtZW50X2Jhc2VkX3B0bikgInRydWUgRkFMU0UiCi1zZXQgaGVscChoaWVyLGNyZWF0ZV9wcm90b19tb2RlbCx1c2VfZmxleG1vZGVscykgInRydWUgRkFMU0UiCi1zZXQgaGVscChoaWVyLGNyZWF0ZV9wc19wZXJfbWljcm9uX21vZGVsLHVzZV9wcm90b19uZXRfZGVsYXlfbW9kZWwpICJ0cnVlIEZBTFNFIgotc2V0IGhlbHAoaGllcixkZXJpdmVfdGltaW5nX2J1ZGdldCxidWRnZXRfbW9kZSkgInRyaWFsX2lwbyBwcm90b19uZXRfZGVsYXlfbW9kZWwgZ2lnYV9vcHQiCi1zZXQgaGVscChoaWVyLHJlcGxhY2VfcHJvdG9fbW9kZWwsZmxleG1vZGVsX2FzX3B0bikgInRydWUgRkFMU0UiCi1zZXQgaGVscChoaWVyLGNyZWF0ZV9wcm90b19tb2RlbCxmbGV4bW9kZWxfYXJ0X2Jhc2VkKSAidHJ1ZSBGQUxTRSIKLXNldCBoZWxwKGhpZXIsc2V0X2Rlc2lnbl9tb2RlLHVzZV9ucmdyKSAidHJ1ZSBGQUxTRSIKLQpkaWZmIC0tZ2l0IGEvZmxvdy9wbnIvU0NSSVBUUy9FVEMvSU5OT1ZVUy9ub3Z1c191ZG0udGNsIGIvZmxvdy9wbnIvU0NSSVBUUy9FVEMvSU5OT1ZVUy9ub3Z1c191ZG0udGNsCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAzZDBhY2ZmLi4wMDAwMDAwCi0tLSBhL2Zsb3cvcG5yL1NDUklQVFMvRVRDL0lOTk9WVVMvbm92dXNfdWRtLnRjbAorKysgL2Rldi9udWxsCkBAIC0xLDE2OSArMCwwIEBACi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0jICAgICAgICAgICAgICAgICAgICAgICBDQURFTkNFIENPUFlSSUdIVCBOT1RJQ0UKLSMgICAgICAgICCpIDIwMDgtMjAxMyBDYWRlbmNlIERlc2lnbiBTeXN0ZW1zLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0jCi0jIFRoaXMgRm91bmRhdGlvbiBGbG93IGlzIHByb3ZpZGVkIGFzIGFuIGV4YW1wbGUgb2YgaG93IHRvIHBlcmZvcm0gc3BlY2lhbGl6ZWQKLSMgdGFza3MuCi0jCi0jIFRoaXMgd29yayBtYXkgbm90IGJlIGNvcGllZCwgcmUtcHVibGlzaGVkLCB1cGxvYWRlZCwgb3IgZGlzdHJpYnV0ZWQgaW4gYW55IHdheSwKLSMgaW4gYW55IG1lZGl1bSwgd2hldGhlciBpbiB3aG9sZSBvciBpbiBwYXJ0LCB3aXRob3V0IHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbgotIyBmcm9tIENhZGVuY2UuIE5vdHdpdGhzdGFuZGluZyBhbnkgcmVzdHJpY3Rpb25zIGhlcmVpbiwgc3ViamVjdCB0byBjb21wbGlhbmNlCi0jIHdpdGggdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mIHRoZSBDYWRlbmNlIHNvZnR3YXJlIGxpY2Vuc2UgYWdyZWVtZW50IHVuZGVyCi0jIHdoaWNoIHRoaXMgbWF0ZXJpYWwgd2FzIHByb3ZpZGVkLCB0aGlzIG1hdGVyaWFsIG1heSBiZSBjb3BpZWQgYW5kIGludGVybmFsbHkKLSMgZGlzdHJpYnV0ZWQgc29sZWx5IGZvciBpbnRlcm5hbCBwdXJwb3NlcyBmb3IgdXNlIHdpdGggQ2FkZW5jZSB0b29scy4KLSMKLSMgVGhpcyB3b3JrIGlzIENhZGVuY2UgaW50ZWxsZWN0dWFsIHByb3BlcnR5IGFuZCBtYXkgdW5kZXIgbm8gY2lyY3Vtc3RhbmNlcyBiZQotIyBnaXZlbiB0byB0aGlyZCBwYXJ0aWVzLCBuZWl0aGVyIGluIG9yaWdpbmFsIG5vciBpbiBtb2RpZmllZCB2ZXJzaW9ucywgd2l0aG91dAotIyBleHBsaWNpdCB3cml0dGVuIHBlcm1pc3Npb24gZnJvbSBDYWRlbmNlLiBUaGUgaW5mb3JtYXRpb24gY29udGFpbmVkIGhlcmVpbiBpcwotIyB0aGUgcHJvcHJpZXRhcnkgYW5kIGNvbmZpZGVudGlhbCBpbmZvcm1hdGlvbiBvZiBDYWRlbmNlIG9yIGl0cyBsaWNlbnNvcnMsIGFuZAotIyBpcyBzdXBwbGllZCBzdWJqZWN0IHRvLCBhbmQgbWF5IGJlIHVzZWQgb25seSBieSBDYWRlbmNlJ3MgY3VycmVudCBjdXN0b21lcnMKLSMgaW4gYWNjb3JkYW5jZSB3aXRoLCBhIHByZXZpb3VzbHkgZXhlY3V0ZWQgbGljZW5zZSBhZ3JlZW1lbnQgYmV0d2VlbiBDYWRlbmNlCi0jIGFuZCBpdHMgY3VzdG9tZXIuCi0jCi0jLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0jIFRISVMgTUFURVJJQUwgSVMgUFJPVklERUQgQlkgQ0FERU5DRSAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVECi0jIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GCi0jIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuCi0jIElOIE5PIEVWRU5UIFNIQUxMIENBREVOQ0UgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTAotIyBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLAotIyBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUICAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IKLSMgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyAgTUFURVJJQUwsIEVWRU4gSUYKLSMgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi1pZiB7W2luZm8gZXhpc3RzIHZhcnMobmV0bGlzdCldfSB7Ci0gICBzZXQgaW5pdCh2ZXJpbG9nKSAgICAgICAgICAgICAgICAgICR2YXJzKG5ldGxpc3QpCi19Ci1pZiB7W2luZm8gZXhpc3RzIHZhcnMoc2V0X3RvcF9tb2R1bGUpXX0gewotICAgc2V0IGluaXQoZGVzaWduX3NldHRvcCkgICAgICAgICAgICAkdmFycyhzZXRfdG9wX21vZHVsZSkKLX0KLWlmIHtbaW5mbyBleGlzdHMgdmFycyhkZXNpZ24pXX0gewotICAgc2V0IGluaXQodG9wX2NlbGwpICAgICAgICAgICAgICAgICAkdmFycyhkZXNpZ24pCi0jICAgc2V0IGluaXQodG9wY2VsbCkgICAgICAgICAgICAgICAgICAkdmFycyhkZXNpZ24pCi19Ci0jc2V0IGluaXQobmV0bGlzdF90eXBlKSAgICAgICAgICAgICAgICAkdmFycyhuZXRsaXN0X3R5cGUpCi1pZiB7W2luZm8gZXhpc3RzIHZhcnMob2FfZGVzaWduX2xpYildfSB7Ci0gICBzZXQgaW5pdChvYV9saWIpICAgICAgICAgICAgICAgICAgICR2YXJzKG9hX2Rlc2lnbl9saWIpCi19Ci1pZiB7W2luZm8gZXhpc3RzIHZhcnMob2FfZGVzaWduX2NlbGwpXX0gewotICAgc2V0IGluaXQob2FfY2VsbCkgICAgICAgICAgICAgICAgICAkdmFycyhvYV9kZXNpZ25fY2VsbCkKLX0KLWlmIHtbaW5mbyBleGlzdHMgdmFycyhvYV9kZXNpZ25fdmlldyldfSB7Ci0gICBzZXQgaW5pdChvYV92aWV3KSAgICAgICAgICAgICAgICAgICR2YXJzKG9hX2Rlc2lnbl92aWV3KQotfQotaWYge1tpbmZvIGV4aXN0cyB2YXJzKG9hX3JlZl9saWIpXX0gewotICAgc2V0IGluaXQob2FfcmVmX2xpYikgICAgICAgICAgICAgICAkdmFycyhvYV9yZWZfbGliKQotfQotaWYge1tpbmZvIGV4aXN0cyB2YXJzKG9hX2Fic3RyYWN0X25hbWUpXX0gewotICAgc2V0IGluaXQoYWJzdHJhY3RfdmlldykgICAgICAgICAgICAkdmFycyhvYV9hYnN0cmFjdF9uYW1lKQotfQotaWYge1tpbmZvIGV4aXN0cyB2YXJzKG9hX2Fic3RyYWN0X3ZpZXcpXX0gewotICAgc2V0IGluaXQoYWJzdHJhY3RfdmlldykgICAgICAgICAgICAkdmFycyhvYV9hYnN0cmFjdF92aWV3KQotfQotaWYge1tpbmZvIGV4aXN0cyB2YXJzKG9hX2xheW91dF9uYW1lKV19IHsKLSAgIHNldCBpbml0KGxheW91dF92aWV3KSAgICAgICAgICAgICAgJHZhcnMob2FfbGF5b3V0X25hbWUpCi19Ci1pZiB7W2luZm8gZXhpc3RzIHZhcnMob2FfbGF5b3V0X3ZpZXcpXX0gewotICAgc2V0IGluaXQobGF5b3V0X3ZpZXcpICAgICAgICAgICAgICAkdmFycyhvYV9sYXlvdXRfdmlldykKLX0KLWlmIHtbaW5mbyBleGlzdHMgdmFycyhwb3dlcl9uZXRzKV19IHsKLSAgIHNldCBpbml0KHB3cl9uZXQpICAgICAgICAgICAgICAgICAgJHZhcnMocG93ZXJfbmV0cykKLX0KLWlmIHtbaW5mbyBleGlzdHMgdmFycyhncm91bmRfbmV0cyldfSB7Ci0gICBzZXQgaW5pdChnbmRfbmV0KSAgICAgICAgICAgICAgICAgICR2YXJzKGdyb3VuZF9uZXRzKQotfQotc2V0IGluaXQobW1tY19maWxlKSAgICAgICAgICAgICAgICAgICAkdmFycyhzY3JpcHRfZGlyKS92aWV3X2RlZmluaXRpb24udGNsCi1pZiB7W2luZm8gZXhpc3RzIHZhcnMoY3BmX2ZpbGUpXX0gewotICAgc2V0IGluaXQoY3BmX2ZpbGUpICAgICAgICAgICAgICAgICAkdmFycyhjcGZfZmlsZSkKLX0KLWlmIHtbaW5mbyBleGlzdHMgdmFycyhpb19maWxlKV19IHsKLSAgIHNldCBpbml0KGlvX2ZpbGUpICAgICAgICAgICAgICAgICAgJHZhcnMoaW9fZmlsZSkKLX0KLWlmIHtbaW5mbyBleGlzdHMgdmFycyhsZWZfZmlsZXMpXSAmJiAkdmFycyhsZWZfZmlsZXMpICE9ICJOT05FIn0gewotICAgc2V0IGluaXQobGVmX2ZpbGUpICAgICAgICAgICAgICAgICAkdmFycyhsZWZfZmlsZXMpCi19Ci1pZiB7W2luZm8gZXhpc3RzIHZhcnMoY2FwX3VuaXQpXX0gewotICAgc2V0IGluaXQoY2FwX3VuaXQpICAgICAgICAgICAgICAgICAkdmFycyhjYXBfdW5pdCkKLX0KLWlmIHtbaW5mbyBleGlzdHMgdmFycyh0aW1lX3VuaXQpXX0gewotICAgc2V0IGluaXQodGltZV91bml0KSAgICAgICAgICAgICAgICAkdmFycyh0aW1lX3VuaXQpCi19Ci1pZiB7W2xpbmRleCBbc3BsaXQgJHZhcnModmVyc2lvbikgIi4iXSAgMF0gPD0gMTR9IHsKLSAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhhc3NpZ25fYnVmZmVyKV19IHsKLSAgICAgIGlmIHsoJHZhcnMoYXNzaWduX2J1ZmZlcikgIT0gMSkgJiYgKFtzdHJpbmcgdG9sb3dlciAkdmFycyhhc3NpZ25fYnVmZmVyKV0gIT0gInRydWUiKSAmJiBcCi0gICAgICAgICAgKFtzdHJpbmcgdG9sb3dlciAkdmFycyhhc3NpZ25fYnVmZmVyKV0gIT0gImZhbHNlIikgJiYgKCR2YXJzKGFzc2lnbl9idWZmZXIpICE9IDApfSB7Ci0gICAgICAgICBpZiB7W2xsZW5ndGggJHZhcnMoYXNzaWduX2J1ZmZlcildID09IDF9IHsKLSAgICAgICAgICAgICAgIHNldCBpbml0KGFzc2lnbl9idWZmZXIpICAgICAgICAgICAgIjEgLWJ1ZmZlciAkdmFycyhhc3NpZ25fYnVmZmVyKSIKLSAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBzZXQgaW5pdChhc3NpZ25fYnVmZmVyKSAgICAgICAgICAgICR2YXJzKGFzc2lnbl9idWZmZXIpCi0gICAgICAgICB9Ci0gICAgICB9IGVsc2UgewotICAgICAgICAgICAgc2V0IGluaXQoYXNzaWduX2J1ZmZlcikgICAgICAgICAgICAkdmFycyhhc3NpZ25fYnVmZmVyKQotICAgICAgfQotICAgfQotfQotCi1pZiB7W2luZm8gZXhpc3RzIHZhcnMoYnVmX2Zvb3RwcmludCldfSB7Ci0gICBzZXQgb3B0KGJ1Zl9mb290cHJpbnQpICAgICAgICAgICAgICAkdmFycyhidWZfZm9vdHByaW50KQotfQotaWYge1tpbmZvIGV4aXN0cyB2YXJzKGludl9mb290cHJpbnQpXX0gewotICAgc2V0IG9wdChpbnZfZm9vdHByaW50KSAgICAgICAgICAgICAgJHZhcnMoaW52X2Zvb3RwcmludCkKLX0KLWlmIHtbaW5mbyBleGlzdHMgdmFycyhkZWxfZm9vdHByaW50KV19IHsKLSAgIHNldCBvcHQoZGVsYXlfZm9vdHByaW50KSAgICAgICAgICAgICR2YXJzKGRlbF9mb290cHJpbnQpCi19Ci1pZiB7W2luZm8gZXhpc3RzIHZhcnMoY3RzX2NlbGxfZm9vdHByaW50KV19IHsKLSAgIHNldCBjdHMoY3RzX2NlbGxfZm9vdHByaW50KSAgICAgICAgICR2YXJzKGN0c19jZWxsX2Zvb3RwcmludCkKLX0KLWlmIHtbaW5mbyBleGlzdHMgdmFycyhjdHNfY2VsbF9saXN0KV19IHsKLSAgIHNldCBjdHMoY2VsbF9saXN0KSAgICAgICAgICAgICAgICAgICR2YXJzKGN0c19jZWxsX2xpc3QpCi19Ci1pZiB7W2luZm8gZXhpc3RzIHZhcnMoZGVsYXlfbGltaXQpXX0gewotICAgc2V0IGRlbGF5Y2FsKGRlbGF5X2xpbWl0KSAgICAgICAgICAgICAgICAgJHZhcnMoZGVsYXlfbGltaXQpCi19Ci1pZiB7W2luZm8gZXhpc3RzIHZhcnMoZGVmYXVsdF9uZXRfZGVsYXkpXX0gewotICAgc2V0IGRlbGF5Y2FsKG5ldF9kZWxheSkgICAgICAgICAgICAgICAgICAgJHZhcnMoZGVmYXVsdF9uZXRfZGVsYXkpCi19Ci1pZiB7W2luZm8gZXhpc3RzIHZhcnMoZGVmYXVsdF9uZXRfbG9hZCldfSB7Ci0gICBzZXQgZGVsYXljYWwobmV0X2xvYWQpICAgICAgICAgICAgICAgICAgICAkdmFycyhkZWZhdWx0X25ldF9sb2FkKQotfQotaWYge1tpbmZvIGV4aXN0cyB2YXJzKGRlZmF1bHRfc2xldyldfSB7Ci0gICBzZXQgZGVsYXljYWwoaW5fdHJhbl9kZWxheSkgICAgICAgICAgICAgICAkdmFycyhkZWZhdWx0X3NsZXcpCi19Ci1pZiB7W2luZm8gZXhpc3RzIHZhcnMoZXhjbHVkZV9uZXRzKV19IHsKLSAgIHNldCBkZWxheWNhbChleGNsdWRlX25ldCkgJHZhcnMoZXhjbHVkZV9uZXRzKQotfQotaWYge1tpbmZvIGV4aXN0cyB2YXJzKGRlbGF5X2xpbWl0KV19IHsKLSAgIHNldCBkZWxheWNhbCh1c2VfZGVmYXVsdF9kZWxheV9saW1pdCkgJHZhcnMoZGVsYXlfbGltaXQpCi19Ci1pZiB7W2luZm8gZXhpc3RzIHZhcnMoZGVmYXVsdF9uZXRfZGVsYXkpXX0gewotICAgc2V0IGRlbGF5Y2FsKGRlZmF1bHRfbmV0X2RlbGF5KSAkdmFycyhkZWZhdWx0X25ldF9kZWxheSkKLX0KLWlmIHtbaW5mbyBleGlzdHMgdmFycyhkZWZhdWx0X25ldF9sb2FkKV19IHsKLSAgIHNldCBkZWxheWNhbChkZWZhdWx0X25ldF9sb2FkKSAkdmFycyhkZWZhdWx0X25ldF9sb2FkKQotfQotaWYge1tpbmZvIGV4aXN0cyB2YXJzKGlucHV0X3RyYW5zaXRpb25fZGVsYXkpXX0gewotICAgc2V0IGRlbGF5Y2FsKGlucHV0X3RyYW5zaXRpb25fZGVsYXkpICR2YXJzKGlucHV0X3RyYW5zaXRpb25fZGVsYXkpCi19Ci0KLWlmIHtbaW5mbyBleGlzdHMgdmFycyhzaHJpbmtfZmFjdG9yKV19IHsKLSAgIHNldCBleHRyYWN0KHNocmlua19mYWN0b3IpICR2YXJzKHNocmlua19mYWN0b3IpCi19Ci0KLSMgaW5pdF9vYV9zZWFyY2hfbGliCi0KLSMgY29uZiB2YXJpYWJsZXM/Ci0jcmRhX0lucHV0KHVpX2lsbWRpcikJU3BlY2lmaWVzIHRoZSBkaXJlY3RvcnkgZnJvbSB3aGljaCB0byByZWFkIHRoZSBJTE0gZmlsZXMuCQotI3JkYV9JbnB1dCh1aV9mbWRpcikJU3BlY2lmaWVkIHRoZSBmbGV4IG1vZGVsIGRpcgkKLSNyZGFfSW5wdXQodWlfY29uZl9vYV9vYTJsZWZ2ZXJzaW9uKQlGb3IgbmF0aXZlIG9hMmxlZiB0cmFuc2xhdG9yLgkKLSNrZWVwX2ZpbGVzCWtlZXBzIHRlbXAgZmlsZXMJCi0jUlRMIENvbXBpbGVyIFJlbGF0ZWQgKGluIHVzZSkJCQotI3NldCByZGFfSW5wdXQodWlfbmV0bGlzdHR5cGUpIHtSVEx9CQkKLSNyZGFfSW5wdXQodWlfcnRsX3Zlcmlsb2dfbGlzdCkgCQkKLSNzZXQgcmRhX0lucHV0KHVpX3J0bF92ZXJpbG9nX3ZlcnNpb24pCQkKLSNzZXQgcmRhX0lucHV0KHVpX3J0bF92ZXJpbG9nX2Nhc2UpIHtvcmlnfQkJCi0jc2V0IHJkYV9JbnB1dCh1aV9ydGxfdmhkbF9saXN0KSB7fQkJCi0jc2V0IHJkYV9JbnB1dCh1aV9ydGxfdmhkbF92ZXJzaW9uKQkJCi0jc2V0IHJkYV9JbnB1dCh1aV9ydGxfdmhkbF9jYXNlKSB7b3JpZ30JCQotI3JkYV9JbnB1dCh1aV9ydGxsaXN0KQkJCi0jcmRhX0lucHV0KHVpX3J0bF9wYXRoKQkJCmRpZmYgLS1naXQgYS9mbG93L3Buci9TQ1JJUFRTL0VUQy9JTk5PVlVTL292ZXJsYXkudGNsIGIvZmxvdy9wbnIvU0NSSVBUUy9FVEMvSU5OT1ZVUy9vdmVybGF5LnRjbApkZWxldGVkIGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggOGMwY2E3Ny4uMDAwMDAwMAotLS0gYS9mbG93L3Buci9TQ1JJUFRTL0VUQy9JTk5PVlVTL292ZXJsYXkudGNsCisrKyAvZGV2L251bGwKQEAgLTEsNTA2ICswLDAgQEAKLSAgIHByb2MgY3JlYXRlX3JjX2Nvcm5lciB7YXJnc30gewotICAgICAgZ2xvYmFsIHZhcnMKLQotICAgICAgZmZfbWFwOjpzZWVkX29wdGlvbnMgImNyZWF0ZV9yY19jb3JuZXIgJGFyZ3MiCi0gICB9Ci0gICAKLSAgIHByb2MgY3JlYXRlX2xpYnJhcnlfc2V0IHthcmdzfSB7Ci0gICAgICBnbG9iYWwgdmFycwotCi0gICAgIGZmX21hcDo6c2VlZF9vcHRpb25zICJjcmVhdGVfbGlicmFyeV9zZXQgJGFyZ3MiCi0gICB9IAotICAgCi0gICBwcm9jIGNyZWF0ZV90aW1pbmdfY29uZGl0aW9uIHthcmdzfSB7Ci0gICAgICBnbG9iYWwgdmFycwotCi0gICAgICBmZl9tYXA6OnNlZWRfb3B0aW9ucyAiY3JlYXRlX3RpbWluZ19jb25kaXRpb24gJGFyZ3MiCi0gICB9Ci0gICAKLSAgIHByb2MgY3JlYXRlX2RlbGF5X2Nvcm5lciB7YXJnc30gewotICAgICAgZ2xvYmFsIHZhcnMKLQotICAgICAgZmZfbWFwOjpzZWVkX29wdGlvbnMgImNyZWF0ZV9kZWxheV9jb3JuZXIgJGFyZ3MiCi0gICB9Ci0gICAKLSAgIHByb2MgdXBkYXRlX2RlbGF5X2Nvcm5lciB7YXJnc30gewotICAgICAgZ2xvYmFsIHZhcnMKLQotICAgICAgZmZfbWFwOjpzZWVkX29wdGlvbnMgInVwZGF0ZV9kZWxheV9jb3JuZXIgJGFyZ3MiCi0gICB9Ci0gICAKLSAgIHByb2MgY3JlYXRlX2NvbnN0cmFpbnRfbW9kZSB7YXJnc30gewotICAgICAgZ2xvYmFsIHZhcnMKLQotICAgICAgZmZfbWFwOjpzZWVkX29wdGlvbnMgImNyZWF0ZV9jb25zdHJhaW50X21vZGUgJGFyZ3MiCi0gICB9Ci0gICAKLSAgIHByb2MgY3JlYXRlX2FuYWx5c2lzX3ZpZXcge2FyZ3N9IHsKLSAgICAgIGdsb2JhbCB2YXJzCi0KLSAgICAgIGZmX21hcDo6c2VlZF9vcHRpb25zICJjcmVhdGVfYW5hbHlzaXNfdmlldyAkYXJncyIKLSAgIH0KLSAgIAotICAgcHJvYyBzZXRfYW5hbHlzaXNfdmlldyB7YXJnc30gewotICAgICAgZ2xvYmFsIHZhcnMKLQotICAgICAgZmZfbWFwOjpzZWVkX29wdGlvbnMgInNldF9hbmFseXNpc192aWV3ICRhcmdzIgotICAgfQotICAgCi0gICBwcm9jIGFsbF9hbmFseXNpc192aWV3cyB7fSB7Ci0gICAgICByZXR1cm4gIiIKLSAgIH0KLSAgIAotICAgcHJvYyBzZXRfcG93ZXJfYW5hbHlzaXNfdmlldyB7YXJnc30gewotICAgICAgZ2xvYmFsIHZhcnMKLQotICAgICAgZmZfbWFwOjpzZWVkX29wdGlvbnMgInNldF9wb3dlcl9hbmFseXNpc192aWV3ICRhcmdzIgotICAgfQotICAgCi1uYW1lc3BhY2UgZXZhbCBmZl9tYXAgewotCi0gICBwcm9jIHNlZWRfb3B0aW9ucyB7Y29tbWFuZF9zdHJpbmd9IHsKLQotICAgICAgZ2xvYmFsIHZhcnMKLQotICAgICAgc2V0IGNvbW1hbmQgW2xpbmRleCAkY29tbWFuZF9zdHJpbmcgMF0KLSAgICAgIHNldCBhcmdzIFtscmVwbGFjZSAkY29tbWFuZF9zdHJpbmcgMCAwXQotCi0gICAgICBzd2l0Y2ggJGNvbW1hbmQgewotICAgICAgICAgc2V0TXVsdGlDcHVVc2FnZSB7Ci0gICAgICAgICAgICB3aGlsZSB7W2xsZW5ndGggJGFyZ3NdID4gMH0gewotICAgICAgICAgICAgICAgc2V0IG9wdGlvbiBbbGluZGV4ICRhcmdzIDBdCi0gICAgICAgICAgICAgICBzZXQgYXJncyBbbHJlcGxhY2UgJGFyZ3MgMCAwXQotICAgICAgICAgICAgICAgc3dpdGNoIC1yZWdleHAgLS0gJG9wdGlvbiB7Ci0gICAgICAgICAgICAgICAgICBsb2NhbENwdSB7Ci0gICAgICAgICAgICAgICAgICAgICBzZXQgdmFycyhsb2NhbF9jcHVzKSBbbGluZGV4ICRhcmdzIDBdCi0gICAgICAgICAgICAgICAgICAgICBzZXQgYXJncyBbbHJlcGxhY2UgJGFyZ3MgMCAwXQotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgcmVtb3RlSG9zdHMgewotICAgICAgICAgICAgICAgICAgICAgc2V0IHZhcnMocmVtb3RlX2hvc3RzKSBbbGluZGV4ICRhcmdzIDBdCi0gICAgICAgICAgICAgICAgICAgICBzZXQgYXJncyBbbHJlcGxhY2UgJGFyZ3MgMCAwXQotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgY3B1UGVyUmVtb3RlSG9zdCB7Ci0gICAgICAgICAgICAgICAgICAgICBzZXQgdmFycyhjcHVfcGVyX3JlbW90ZV9ob3N0KSBbbGluZGV4ICRhcmdzIDBdCi0gICAgICAgICAgICAgICAgICAgICBzZXQgYXJncyBbbHJlcGxhY2UgJGFyZ3MgMCAwXQotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfSAKLSAgICAgICAgIH0KLSAgICAgICAgIHNldERlc2lnbk1vZGUgewotICAgICAgICAgICAgd2hpbGUge1tsbGVuZ3RoICRhcmdzXSA+IDB9IHsKLSAgICAgICAgICAgICAgIHNldCBvcHRpb24gW2xpbmRleCAkYXJncyAwXQotICAgICAgICAgICAgICAgc2V0IGFyZ3MgW2xyZXBsYWNlICRhcmdzIDAgMF0KLSAgICAgICAgICAgICAgIHN3aXRjaCAtcmVnZXhwIC0tICRvcHRpb24gewotICAgICAgICAgICAgICAgICAgcHJvY2VzcyB7Ci0gICAgICAgICAgICAgICAgICAgICBzZXQgdmFycyhwcm9jZXNzKSBbbGluZGV4ICRhcmdzIDBdCi0gICAgICAgICAgICAgICAgICAgICBzZXQgYXJncyBbbHJlcGxhY2UgJGFyZ3MgMCAwXQotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfSAKLSAgICAgICAgIH0KLSAgICAgICAgIHNldERlbGF5Q2FsTW9kZSB7Ci0gICAgICAgICAgICB3aGlsZSB7W2xsZW5ndGggJGFyZ3NdID4gMH0gewotICAgICAgICAgICAgICAgc2V0IG9wdGlvbiBbbGluZGV4ICRhcmdzIDBdCi0gICAgICAgICAgICAgICBzZXQgYXJncyBbbHJlcGxhY2UgJGFyZ3MgMCAwXQotICAgICAgICAgICAgICAgc3dpdGNoIC1yZWdleHAgLS0gJG9wdGlvbiB7Ci0gICAgICAgICAgICAgICAgICBlbmdpbmUgewotICAgICAgICAgICAgICAgICAgICAgaWYge1tzdHJpbmcgdG9sb3dlciBbbGluZGV4ICRhcmdzIDBdID09ICJhYWUifSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBzZXQgdmFycyhlbmFibGVfc2lfYXdhcmUpIHRydWUgIAotICAgICAgICAgICAgICAgICAgICAgICAgc2V0IGFyZ3MgW2xyZXBsYWNlICRhcmdzIDAgMF0KLSAgICAgICAgICAgICAgICAgICAgIH0gCi0gICAgICAgICAgICAgICAgICAgICBpZiB7W3N0cmluZyB0b2xvd2VyIFtsaW5kZXggJGFyZ3MgMF0gPT0gInNpZ25hbHN0b3JtIn0gewotICAgICAgICAgICAgICAgICAgICAgICAgc2V0IHZhcnMoZW5hYmxlX3NzKSB0cnVlICAKLSAgICAgICAgICAgICAgICAgICAgICAgIHNldCBhcmdzIFtscmVwbGFjZSAkYXJncyAwIDBdCi0gICAgICAgICAgICAgICAgICAgICB9IAotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfSAKLSAgICAgICAgIH0KLSAgICAgICAgIHNldEFuYWx5c2lzTW9kZSB7Ci0gICAgICAgICAgICB3aGlsZSB7W2xsZW5ndGggJGFyZ3NdID4gMH0gewotICAgICAgICAgICAgICAgc2V0IG9wdGlvbiBbbGluZGV4ICRhcmdzIDBdCi0gICAgICAgICAgICAgICBzZXQgYXJncyBbbHJlcGxhY2UgJGFyZ3MgMCAwXQotICAgICAgICAgICAgICAgc3dpdGNoIC1yZWdleHAgLS0gJG9wdGlvbiB7Ci0gICAgICAgICAgICAgICAgICBjcHByIHsKLSAgICAgICAgICAgICAgICAgICAgIHNldCB2YXJzKGVuYWJsZV9jcHByKSBbbGluZGV4ICRhcmdzIDBdCi0gICAgICAgICAgICAgICAgICAgICBzZXQgYXJncyBbbHJlcGxhY2UgJGFyZ3MgMCAwXQotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgYW9jdiB7Ci0gICAgICAgICAgICAgICAgICAgICBzZXQgdmFycyhlbmFibGVfYW9jdikgW2xpbmRleCAkYXJncyAwXQotICAgICAgICAgICAgICAgICAgICAgc2V0IGFyZ3MgW2xyZXBsYWNlICRhcmdzIDAgMF0KLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIG9uQ2hpcFZhcmlhdGlvbiB7Ci0gICAgICAgICAgICAgICAgICAgICBzZXQgdmFycyhlbmFibGVfb2N2KSBbbGluZGV4ICRhcmdzIDBdCi0gICAgICAgICAgICAgICAgICAgICBzZXQgYXJncyBbbHJlcGxhY2UgJGFyZ3MgMCAwXQotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfSAKLSAgICAgICAgIH0KLSAgICAgICAgIHNldFBsYWNlTW9kZSB7Ci0gICAgICAgICAgICB3aGlsZSB7W2xsZW5ndGggJGFyZ3NdID4gMH0gewotICAgICAgICAgICAgICAgc2V0IG9wdGlvbiBbbGluZGV4ICRhcmdzIDBdCi0gICAgICAgICAgICAgICBzZXQgYXJncyBbbHJlcGxhY2UgJGFyZ3MgMCAwXQotICAgICAgICAgICAgICAgc3dpdGNoIC1yZWdleHAgLS0gJG9wdGlvbiB7Ci0gICAgICAgICAgICAgICAgICBwbGFjZUlvUGlucyB7Ci0gICAgICAgICAgICAgICAgICAgICBzZXQgdmFycyhwbGFjZV9pb19waW5zKSBbbGluZGV4ICRhcmdzIDBdCi0gICAgICAgICAgICAgICAgICAgICBzZXQgYXJncyBbbHJlcGxhY2UgJGFyZ3MgMCAwXQotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgY29uZ0VmZm9ydCB7Ci0gICAgICAgICAgICAgICAgICAgICBzZXQgdmFycyhjb25nZXN0aW9uX2VmZm9ydCkgW2xpbmRleCAkYXJncyAwXQotICAgICAgICAgICAgICAgICAgICAgc2V0IGFyZ3MgW2xyZXBsYWNlICRhcmdzIDAgMF0KLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0gCi0gICAgICAgICB9Ci0gICAgICAgICBzZXRPcHRNb2RlIHsKLSAgICAgICAgICAgIHdoaWxlIHtbbGxlbmd0aCAkYXJnc10gPiAwfSB7Ci0gICAgICAgICAgICAgICBzZXQgb3B0aW9uIFtsaW5kZXggJGFyZ3MgMF0KLSAgICAgICAgICAgICAgIHNldCBhcmdzIFtscmVwbGFjZSAkYXJncyAwIDBdCi0gICAgICAgICAgICAgICBzd2l0Y2ggLXJlZ2V4cCAtLSAkb3B0aW9uIHsKLSAgICAgICAgICAgICAgICAgIGFsbEVuZFBvaW50cyB7Ci0gICAgICAgICAgICAgICAgICAgICBzZXQgdmFycyhhbGxfZW5kX3BvaW50cykgW2xpbmRleCAkYXJncyAwXQotICAgICAgICAgICAgICAgICAgICAgc2V0IGFyZ3MgW2xyZXBsYWNlICRhcmdzIDAgMF0KLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIHByZXNlcnZlQXNzc2VydGlvbnMgewotICAgICAgICAgICAgICAgICAgICAgc2V0IHZhcnMocHJlc2VydmVfYXNzZXJ0aW9ucykgW2xpbmRleCAkYXJncyAwXQotICAgICAgICAgICAgICAgICAgICAgc2V0IGFyZ3MgW2xyZXBsYWNlICRhcmdzIDAgMF0KLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIGxlYWthZ2VQb3dlckVmZm9ydCB7Ci0gICAgICAgICAgICAgICAgICAgICBzZXQgdmFycyhsZWFrYWdlX3Bvd2VyX2VmZm9ydCkgW2xpbmRleCAkYXJncyAwXQotICAgICAgICAgICAgICAgICAgICAgc2V0IGFyZ3MgW2xyZXBsYWNlICRhcmdzIDAgMF0KLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIGR5bmFtaWNQb3dlckVmZm9ydCB7Ci0gICAgICAgICAgICAgICAgICAgICBzZXQgdmFycyhsZWFrYWdlX3Bvd2VyX2VmZm9ydCkgW2xpbmRleCAkYXJncyAwXQotICAgICAgICAgICAgICAgICAgICAgc2V0IGFyZ3MgW2xyZXBsYWNlICRhcmdzIDAgMF0KLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0gCi0gICAgICAgICB9Ci0gICAgICAgICBzZXRDVFNNb2RlIHsKLSAgICAgICAgICAgIHdoaWxlIHtbbGxlbmd0aCAkYXJnc10gPiAwfSB7Ci0gICAgICAgICAgICAgICBzZXQgb3B0aW9uIFtsaW5kZXggJGFyZ3MgMF0KLSAgICAgICAgICAgICAgIHNldCBhcmdzIFtscmVwbGFjZSAkYXJncyAwIDBdCi0gICAgICAgICAgICAgICBzd2l0Y2ggLXJlZ2V4cCAtLSAkb3B0aW9uIHsKLSAgICAgICAgICAgICAgICAgIHJvdXRlQ2xrTmV0cyB7Ci0gICAgICAgICAgICAgICAgICAgICBzZXQgdmFycyhyb3V0ZV9jbG9ja19uZXRzKSBbbGluZGV4ICRhcmdzIDBdCi0gICAgICAgICAgICAgICAgICAgICBzZXQgYXJncyBbbHJlcGxhY2UgJGFyZ3MgMCAwXQotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfSAKLSAgICAgICAgIH0KLSAgICAgICAgIHNldEZpbGxlck1vZGUgewotICAgICAgICAgICAgd2hpbGUge1tsbGVuZ3RoICRhcmdzXSA+IDB9IHsKLSAgICAgICAgICAgICAgIHNldCBvcHRpb24gW2xpbmRleCAkYXJncyAwXQotICAgICAgICAgICAgICAgc2V0IGFyZ3MgW2xyZXBsYWNlICRhcmdzIDAgMF0KLSAgICAgICAgICAgICAgIHN3aXRjaCAtcmVnZXhwIC0tICRvcHRpb24gewotICAgICAgICAgICAgICAgICAgY29yZSB7Ci0gICAgICAgICAgICAgICAgICAgICBzZXQgdmFycyhmaWxsZXJfY2VsbHMpIFtsaW5kZXggJGFyZ3MgMF0KLSAgICAgICAgICAgICAgICAgICAgIHNldCBhcmdzIFtscmVwbGFjZSAkYXJncyAwIDBdCi0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9IAotICAgICAgICAgfQotICAgICAgICAgc2V0TmFub1JvdXRlTW9kZSB7Ci0gICAgICAgICAgICB3aGlsZSB7W2xsZW5ndGggJGFyZ3NdID4gMH0gewotICAgICAgICAgICAgICAgc2V0IG9wdGlvbiBbbGluZGV4ICRhcmdzIDBdCi0gICAgICAgICAgICAgICBzZXQgYXJncyBbbHJlcGxhY2UgJGFyZ3MgMCAwXQotICAgICAgICAgICAgICAgc3dpdGNoIC1yZWdleHAgLS0gJG9wdGlvbiB7Ci0gICAgICAgICAgICAgICAgICBkcm91dGVNdWx0aUN1dFZpYUVmZm9ydCB7Ci0gICAgICAgICAgICAgICAgICAgICBzZXQgdmFycyhtdWx0aV9jdXRfZWZmb3J0KSBbbGluZGV4ICRhcmdzIDBdCi0gICAgICAgICAgICAgICAgICAgICBzZXQgYXJncyBbbHJlcGxhY2UgJGFyZ3MgMCAwXQotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfSAKLSAgICAgICAgIH0KLSAgICAgICAgIGNyZWF0ZV9yY19jb3JuZXIgewotICAgICAgICAgICAgd2hpbGUge1tsbGVuZ3RoICRhcmdzXSA+IDB9IHsKLSAgICAgICAgICAgICAgIHNldCBvcHRpb24gW2xpbmRleCAkYXJncyAwXQotICAgICAgICAgICAgICAgc2V0IGFyZ3MgW2xyZXBsYWNlICRhcmdzIDAgMF0KLSAgICAgICAgICAgICAgIHN3aXRjaCAtcmVnZXhwIC0tICRvcHRpb24gewotICAgICAgICAgICAgICAgICAgLW5hbWUgewotICAgICAgICAgICAgICAgICAgICAgc2V0IHJjX2Nvcm5lciBbbGluZGV4ICRhcmdzIDBdCi0gICAgICAgICAgICAgICAgICAgICBwdXRzICI8RkY+ICAgICggRm91bmQgcmMgY29ybmVyICRyY19jb3JuZXIgKSIgCi0gICAgICAgICAgICAgICAgICAgICBpZiB7IVtpbmZvIGV4aXN0cyB2YXJzKHJjX2Nvcm5lcnMpXX0gewotICAgICAgICAgICAgICAgICAgICAgICAgc2V0IHZhcnMocmNfY29ybmVycykgW2xpc3QgJHJjX2Nvcm5lcl0KLSAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiB7W2xzZWFyY2ggJHZhcnMocmNfY29ybmVycykgJHJjX2Nvcm5lcl0gPT0gLTF9IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhcHBlbmQgdmFycyhyY19jb3JuZXJzKSAkcmNfY29ybmVyCi0gICAgICAgICAgICAgICAgICAgICAgICB9ICAKLSAgICAgICAgICAgICAgICAgICAgIH0gIAotICAgICAgICAgICAgICAgICAgICAgc2V0IGFyZ3MgW2xyZXBsYWNlICRhcmdzIDAgMF0KLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIC1UIHsKLSAgICAgICAgICAgICAgICAgICAgIHNldCB2YXJzKCRyY19jb3JuZXIsVCkgW2xpbmRleCAkYXJncyAwXQotICAgICAgICAgICAgICAgICAgICAgc2V0IGFyZ3MgW2xyZXBsYWNlICRhcmdzIDAgMF0KLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIC1UZW1wZXJhdHVyZSB7Ci0gICAgICAgICAgICAgICAgICAgICBzZXQgdmFycygkcmNfY29ybmVyLFQpIFtsaW5kZXggJGFyZ3MgMF0KLSAgICAgICAgICAgICAgICAgICAgIHNldCBhcmdzIFtscmVwbGFjZSAkYXJncyAwIDBdCi0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAtY2FwX3RhYmxlIHsKLSAgICAgICAgICAgICAgICAgICAgIHNldCB2YXJzKCRyY19jb3JuZXIsY2FwX3RhYmxlKSBbbGluZGV4ICRhcmdzIDBdCi0gICAgICAgICAgICAgICAgICAgICBzZXQgYXJncyBbbHJlcGxhY2UgJGFyZ3MgMCAwXQotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgLWF0Zl90YWJsZSB7Ci0gICAgICAgICAgICAgICAgICAgICBzZXQgdmFycygkcmNfY29ybmVyLGF0Zl90YWJsZSkgW2xpbmRleCAkYXJncyAwXQotICAgICAgICAgICAgICAgICAgICAgc2V0IGFyZ3MgW2xyZXBsYWNlICRhcmdzIDAgMF0KLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIC1xeF90ZWNoX2ZpbGUgewotICAgICAgICAgICAgICAgICAgICAgc2V0IHZhcnMoJHJjX2Nvcm5lcixxeF90ZWNoX2ZpbGUpIFtsaW5kZXggJGFyZ3MgMF0KLSAgICAgICAgICAgICAgICAgICAgIHNldCBhcmdzIFtscmVwbGFjZSAkYXJncyAwIDBdCi0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAtcXJjX3RlY2ggewotICAgICAgICAgICAgICAgICAgICAgc2V0IHZhcnMoJHJjX2Nvcm5lcixxeF90ZWNoX2ZpbGUpIFtsaW5kZXggJGFyZ3MgMF0KLSAgICAgICAgICAgICAgICAgICAgIHNldCBhcmdzIFtscmVwbGFjZSAkYXJncyAwIDBdCi0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAtcHJlUm91dGVfcmVzIHsKLSAgICAgICAgICAgICAgICAgICAgICBzZXQgdmFycygkcmNfY29ybmVyLHByZV9yb3V0ZV9yZXNfZmFjdG9yKSBbbGluZGV4ICRhcmdzIDBdCi0gICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgLXByZVJvdXRlX2NhcCB7Ci0gICAgICAgICAgICAgICAgICAgICAgc2V0IHZhcnMoJHJjX2Nvcm5lcixwcmVfcm91dGVfY2FwX2ZhY3RvcikgW2xpbmRleCAkYXJncyAwXQotICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIC1wcmVSb3V0ZV9jbGtyZXMgewotICAgICAgICAgICAgICAgICAgICAgIHNldCB2YXJzKCRyY19jb3JuZXIscHJlX3JvdXRlX2Nsa19yZXNfZmFjdG9yKSBbbGluZGV4ICRhcmdzIDBdCi0gICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgLXByZVJvdXRlX2Nsa2NhcCB7Ci0gICAgICAgICAgICAgICAgICAgICAgc2V0IHZhcnMoJHJjX2Nvcm5lcixwcmVfcm91dGVfY2xrX2NhcF9mYWN0b3IpIFtsaW5kZXggJGFyZ3MgMF0KLSAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAtcG9zdFJvdXRlX3JlcyB7Ci0gICAgICAgICAgICAgICAgICAgICAgc2V0IHZhcnMoJHJjX2Nvcm5lcixwb3N0X3JvdXRlX3Jlc19mYWN0b3IpIFtsaW5kZXggJGFyZ3MgMF0KLSAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAtcG9zdFJvdXRlX2NhcCB7Ci0gICAgICAgICAgICAgICAgICAgICAgc2V0IHZhcnMoJHJjX2Nvcm5lcixwb3N0X3JvdXRlX2NhcF9mYWN0b3IpIFtsaW5kZXggJGFyZ3MgMF0KLSAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAtcG9zdFJvdXRlX3JlcyB7Ci0gICAgICAgICAgICAgICAgICAgICAgc2V0IHZhcnMoJHJjX2Nvcm5lcixwb3N0X3JvdXRlX2Nsa19yZXNfZmFjdG9yKSBbbGluZGV4ICRhcmdzIDBdCi0gICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgLXBvc3RSb3V0ZV9jbGtjYXAgewotICAgICAgICAgICAgICAgICAgICAgIHNldCB2YXJzKCRyY19jb3JuZXIscG9zdF9yb3V0ZV9jbGtfY2FwX2ZhY3RvcikgW2xpbmRleCAkYXJncyAwXQotICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIC1wb3N0Um91dGVfY2xrcmVzIHsKLSAgICAgICAgICAgICAgICAgICAgICBzZXQgdmFycygkcmNfY29ybmVyLHBvc3Rfcm91dGVfY2xrX3Jlc19mYWN0b3IpIFtsaW5kZXggJGFyZ3MgMF0KLSAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAtcG9zdFJvdXRlX3hjYXAgewotICAgICAgICAgICAgICAgICAgICAgIHNldCB2YXJzKCRyY19jb3JuZXIscG9zdF9yb3V0ZV94Y2FwX2ZhY3RvcikgW2xpbmRleCAkYXJncyAwXQotICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0gCi0gICAgICAgICB9Ci0gICAgICAgICBjcmVhdGVfbGlicmFyeV9zZXQgewotICAgICAgICAgICAgd2hpbGUge1tsbGVuZ3RoICRhcmdzXSA+IDB9IHsKLSAgICAgICAgICAgICAgIHNldCBvcHRpb24gW2xpbmRleCAkYXJncyAwXQotICAgICAgICAgICAgICAgc2V0IGFyZ3MgW2xyZXBsYWNlICRhcmdzIDAgMF0KLSAgICAgICAgICAgICAgIHN3aXRjaCAtcmVnZXhwIC0tICRvcHRpb24gewotICAgICAgICAgICAgICAgICAgLW5hbWUgewotICAgICAgICAgICAgICAgICAgICAgc2V0IGxpYnJhcnlfc2V0IFtsaW5kZXggJGFyZ3MgMF0KLSAgICAgICAgICAgICAgICAgICAgIHB1dHMgIjxGRj4gICAgKCBGb3VuZCBsaWJyYXJ5IHNldCAkbGlicmFyeV9zZXQgKSIgCi0gICAgICAgICAgICAgICAgICAgICBpZiB7IVtpbmZvIGV4aXN0cyB2YXJzKGxpYnJhcnlfc2V0cyldfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBzZXQgdmFycyhsaWJyYXJ5X3NldHMpIFtsaXN0ICRsaWJyYXJ5X3NldF0KLSAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiB7W2xzZWFyY2ggJHZhcnMobGlicmFyeV9zZXRzKSAkbGlicmFyeV9zZXRdID09IC0xfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICBsYXBwZW5kIHZhcnMobGlicmFyeV9zZXRzKSAkbGlicmFyeV9zZXQKLSAgICAgICAgICAgICAgICAgICAgICAgIH0gIAotICAgICAgICAgICAgICAgICAgICAgfSAgCi0gICAgICAgICAgICAgICAgICAgICBzZXQgYXJncyBbbHJlcGxhY2UgJGFyZ3MgMCAwXQotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgLXRpbWluZyB7Ci0gICAgICAgICAgICAgICAgICAgICBzZXQgdmFycygkbGlicmFyeV9zZXQsdGltaW5nKSBbbGluZGV4ICRhcmdzIDBdCi0gICAgICAgICAgICAgICAgICAgICBzZXQgYXJncyBbbHJlcGxhY2UgJGFyZ3MgMCAwXQotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfSAKLSAgICAgICAgIH0KLSAgICAgICAgIGNyZWF0ZV90aW1pbmdfY29uZGl0aW9uIHsKLSAgICAgICAgICAgIHdoaWxlIHtbbGxlbmd0aCAkYXJnc10gPiAwfSB7Ci0gICAgICAgICAgICAgICBzZXQgb3B0aW9uIFtsaW5kZXggJGFyZ3MgMF0KLSAgICAgICAgICAgICAgIHNldCBhcmdzIFtscmVwbGFjZSAkYXJncyAwIDBdCi0gICAgICAgICAgICAgICBzd2l0Y2ggLXJlZ2V4cCAtLSAkb3B0aW9uIHsKLSAgICAgICAgICAgICAgICAgIC1uYW1lIHsKLSAgICAgICAgICAgICAgICAgICAgIHNldCB0aW1pbmdfY29uZGl0aW9uIFtsaW5kZXggJGFyZ3MgMF0KLSAgICAgICAgICAgICAgICAgICAgIHB1dHMgIjxGRj4gICAgKCBGb3VuZCB0aW1pbmcgY29uZGl0aW9uICR0aW1pbmdfY29uZGl0aW9uICkiIAotICAgICAgICAgICAgICAgICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycyh0aW1pbmdfY29uZGl0aW9ucyldfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBzZXQgdmFycyh0aW1pbmdfY29uZGl0aW9ucykgJHRpbWluZ19jb25kaXRpb24KLSAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiB7W2xzZWFyY2ggJHZhcnModGltaW5nX2NvbmRpdGlvbnMpICR0aW1pbmdfY29uZGl0aW9uXSA9PSAtMX0gewotICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFwcGVuZCB2YXJzKHRpbWluZ19jb25kaXRpb25zKSBbbGlzdCAkdGltaW5nX2NvbmRpdGlvbl0KLSAgICAgICAgICAgICAgICAgICAgICAgIH0gIAotICAgICAgICAgICAgICAgICAgICAgfSAgCi0gICAgICAgICAgICAgICAgICAgICBzZXQgYXJncyBbbHJlcGxhY2UgJGFyZ3MgMCAwXQotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgLWxpYnJhcnlfc2V0IHsKLSAgICAgICAgICAgICAgICAgICAgIHNldCB2YXJzKCR0aW1pbmdfY29uZGl0aW9uLGxpYnJhcnlfc2V0KSBbbGluZGV4ICRhcmdzIDBdCi0gICAgICAgICAgICAgICAgICAgICBzZXQgYXJncyBbbHJlcGxhY2UgJGFyZ3MgMCAwXQotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfSAKLSAgICAgICAgIH0KLSAgICAgICAgIGNyZWF0ZV9kZWxheV9jb3JuZXIgewotICAgICAgICAgICAgd2hpbGUge1tsbGVuZ3RoICRhcmdzXSA+IDB9IHsKLSAgICAgICAgICAgICAgIHNldCBvcHRpb24gW2xpbmRleCAkYXJncyAwXQotICAgICAgICAgICAgICAgc2V0IGFyZ3MgW2xyZXBsYWNlICRhcmdzIDAgMF0KLSAgICAgICAgICAgICAgIHN3aXRjaCAtcmVnZXhwIC0tICRvcHRpb24gewotICAgICAgICAgICAgICAgICAgLW5hbWUgewotICAgICAgICAgICAgICAgICAgICAgc2V0IGRlbGF5X2Nvcm5lciBbbGluZGV4ICRhcmdzIDBdCi0gICAgICAgICAgICAgICAgICAgICBwdXRzICI8RkY+ICAgICggRm91bmQgZGVsYXkgY29ybmVyICRkZWxheV9jb3JuZXIgKSIgCi0gICAgICAgICAgICAgICAgICAgICBpZiB7IVtpbmZvIGV4aXN0cyB2YXJzKGRlbGF5X2Nvcm5lcnMpXX0gewotICAgICAgICAgICAgICAgICAgICAgICAgc2V0IHZhcnMoZGVsYXlfY29ybmVycykgJGRlbGF5X2Nvcm5lcgotICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIHtbbHNlYXJjaCAkdmFycyhkZWxheV9jb3JuZXJzKSAkZGVsYXlfY29ybmVyXSA9PSAtMX0gewotICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFwcGVuZCB2YXJzKGRlbGF5X2Nvcm5lcnMpIFtsaXN0ICRkZWxheV9jb3JuZXJdCi0gICAgICAgICAgICAgICAgICAgICAgICB9ICAKLSAgICAgICAgICAgICAgICAgICAgIH0gIAotICAgICAgICAgICAgICAgICAgICAgc2V0IGFyZ3MgW2xyZXBsYWNlICRhcmdzIDAgMF0KLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIC10aW1pbmdfY29uZGl0aW9uIHsKLSAgICAgICAgICAgICAgICAgICAgIHNldCB2YXJzKCRkZWxheV9jb3JuZXIsdGltaW5nX2NvbmRpdGlvbikgW2xpbmRleCAkYXJncyAwXQotICAgICAgICAgICAgICAgICAgICAgc2V0IGFyZ3MgW2xyZXBsYWNlICRhcmdzIDAgMF0KLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIC1yY19jb3JuZXIgewotICAgICAgICAgICAgICAgICAgICAgc2V0IHZhcnMoJGRlbGF5X2Nvcm5lcixyY19jb3JuZXIpIFtsaW5kZXggJGFyZ3MgMF0KLSAgICAgICAgICAgICAgICAgICAgIHNldCBhcmdzIFtscmVwbGFjZSAkYXJncyAwIDBdCi0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAtbGlicmFyeV9zZXQgewotICAgICAgICAgICAgICAgICAgICAgc2V0IHZhcnMoJGRlbGF5X2Nvcm5lcixsaWJyYXJ5X3NldCkgW2xpbmRleCAkYXJncyAwXQotICAgICAgICAgICAgICAgICAgICAgc2V0IGFyZ3MgW2xyZXBsYWNlICRhcmdzIDAgMF0KLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0gCi0gICAgICAgICB9Ci0gICAgICAgICB1cGRhdGVfZGVsYXlfY29ybmVyIHsKLSAgICAgICAgICAgIHdoaWxlIHtbbGxlbmd0aCAkYXJnc10gPiAwfSB7Ci0gICAgICAgICAgICAgICBzZXQgb3B0aW9uIFtsaW5kZXggJGFyZ3MgMF0KLSAgICAgICAgICAgICAgIHNldCBhcmdzIFtscmVwbGFjZSAkYXJncyAwIDBdCi0gICAgICAgICAgICAgICBzd2l0Y2ggLXJlZ2V4cCAtLSAkb3B0aW9uIHsKLSAgICAgICAgICAgICAgICAgIC1uYW1lIHsKLSAgICAgICAgICAgICAgICAgICAgIHNldCBkZWxheV9jb3JuZXIgW2xpbmRleCAkYXJncyAwXQotICAgICAgICAgICAgICAgICAgICAgcHV0cyAiPEZGPiAgICAoIEZvdW5kIGRlbGF5IGNvcm5lciAkZGVsYXlfY29ybmVyICkiIAotICAgICAgICAgICAgICAgICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycyhkZWxheV9jb3JuZXJzKV19IHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHNldCB2YXJzKGRlbGF5X2Nvcm5lcnMpICRkZWxheV9jb3JuZXIKLSAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiB7W2xzZWFyY2ggJHZhcnMoZGVsYXlfY29ybmVycykgJGRlbGF5X2Nvcm5lcl0gPT0gLTF9IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhcHBlbmQgdmFycyhkZWxheV9jb3JuZXJzKSBbbGlzdCAkZGVsYXlfY29ybmVyXQotICAgICAgICAgICAgICAgICAgICAgICAgfSAgCi0gICAgICAgICAgICAgICAgICAgICB9ICAKLSAgICAgICAgICAgICAgICAgICAgIHNldCBhcmdzIFtscmVwbGFjZSAkYXJncyAwIDBdCi0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAtdGltaW5nX2NvbmRpdGlvbiB7Ci0gICAgICAgICAgICAgICAgICAgICBzZXQgdmFycygkZGVsYXlfY29ybmVyLHRpbWluZ19jb25kaXRpb24pIFtsaW5kZXggJGFyZ3MgMF0KLSAgICAgICAgICAgICAgICAgICAgIHNldCBhcmdzIFtscmVwbGFjZSAkYXJncyAwIDBdCi0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAtcmNfY29ybmVyIHsKLSAgICAgICAgICAgICAgICAgICAgIHNldCB2YXJzKCRkZWxheV9jb3JuZXIscmNfY29ybmVyKSBbbGluZGV4ICRhcmdzIDBdCi0gICAgICAgICAgICAgICAgICAgICBzZXQgYXJncyBbbHJlcGxhY2UgJGFyZ3MgMCAwXQotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgLXBvd2VyX2RvbWFpbiB7Ci0gICAgICAgICAgICAgICAgICAgICBpZiB7IVtpbmZvIGV4aXN0cyB2YXJzKCRkZWxheV9jb3JuZXIscG93ZXJfZG9tYWlucyldfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBzZXQgdmFycygkZGVsYXlfY29ybmVyLHBvd2VyX2RvbWFpbnMpIFtsaW5kZXggJGFyZ3MgMF0KLSAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBsYXBwZW5kIHZhcnMoJGRlbGF5X2Nvcm5lcixwb3dlcl9kb21haW5zKSBbbGluZGV4ICRhcmdzIDBdCi0gICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICBpZiB7IVtpbmZvIGV4aXN0cyB2YXJzKHBvd2VyX2RvbWFpbnMpXX0gewotICAgICAgICAgICAgICAgICAgICAgICAgc2V0IHZhcnMocG93ZXJfZG9tYWlucykgW2xpbmRleCAkYXJncyAwXQotICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIHtbbHNlYXJjaCAkdmFycyhwb3dlcl9kb21haW5zKSBbbGluZGV4ICRhcmdzIDBdXSA9PSAtMX0gewotICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFwcGVuZCB2YXJzKHBvd2VyX2RvbWFpbnMpIFtsaW5kZXggJGFyZ3MgMF0KLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgIHNldCBhcmdzIFtscmVwbGFjZSAkYXJncyAwIDBdCi0gICAgICAgICAgICAgICAgICAgICBwdXRzICI8RkY+ICAgICggRm91bmQgcG93ZXIgZG9tYWluICRkZWxheV9jb3JuZXIgKSIgCi0gICAgICAgICAgICAgICAgICAgICBpZiB7IVtpbmZvIGV4aXN0cyB2YXJzKGRlbGF5X2Nvcm5lcnMpXX0gewotICAgICAgICAgICAgICAgICAgICAgICAgc2V0IHZhcnMoZGVsYXlfY29ybmVycykgJGRlbGF5X2Nvcm5lcgotICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIHtbbHNlYXJjaCAkdmFycyhkZWxheV9jb3JuZXJzKSAkZGVsYXlfY29ybmVyXSA9PSAtMX0gewotICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFwcGVuZCB2YXJzKGRlbGF5X2Nvcm5lcnMpIFtsaXN0ICRkZWxheV9jb3JuZXJdCi0gICAgICAgICAgICAgICAgICAgICAgICB9ICAKLSAgICAgICAgICAgICAgICAgICAgIH0gIAotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfSAKLSAgICAgICAgIH0KLSAgICAgICAgIGNyZWF0ZV9jb25zdHJhaW50X21vZGUgewotICAgICAgICAgICAgd2hpbGUge1tsbGVuZ3RoICRhcmdzXSA+IDB9IHsKLSAgICAgICAgICAgICAgIHNldCBvcHRpb24gW2xpbmRleCAkYXJncyAwXQotICAgICAgICAgICAgICAgc2V0IGFyZ3MgW2xyZXBsYWNlICRhcmdzIDAgMF0KLSAgICAgICAgICAgICAgIHN3aXRjaCAtcmVnZXhwIC0tICRvcHRpb24gewotICAgICAgICAgICAgICAgICAgLW5hbWUgewotICAgICAgICAgICAgICAgICAgICAgc2V0IGNvbnN0cmFpbnRfbW9kZSBbbGluZGV4ICRhcmdzIDBdCi0gICAgICAgICAgICAgICAgICAgICBwdXRzICI8RkY+ICAgICggRm91bmQgY29uc3RyYWludCBtb2RlICRjb25zdHJhaW50X21vZGUgKSIgCi0gICAgICAgICAgICAgICAgICAgICBpZiB7IVtpbmZvIGV4aXN0cyB2YXJzKGNvbnN0cmFpbnRfbW9kZXMpXX0gewotICAgICAgICAgICAgICAgICAgICAgICAgc2V0IHZhcnMoY29uc3RyYWludF9tb2RlcykgW2xpc3QgJGNvbnN0cmFpbnRfbW9kZV0KLSAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiB7W2xzZWFyY2ggJHZhcnMoY29uc3RyYWludF9tb2RlcykgJGNvbnN0cmFpbnRfbW9kZV0gPT0gLTF9IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhcHBlbmQgdmFycyhjb25zdHJhaW50X21vZGVzKSAkY29uc3RyYWludF9tb2RlCi0gICAgICAgICAgICAgICAgICAgICAgICB9ICAKLSAgICAgICAgICAgICAgICAgICAgIH0gIAotICAgICAgICAgICAgICAgICAgICAgc2V0IGFyZ3MgW2xyZXBsYWNlICRhcmdzIDAgMF0KLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIC1zZGNfZmlsZXMgewotICAgICAgICAgICAgICAgICAgICAgc2V0IHZhcnMoJGNvbnN0cmFpbnRfbW9kZSxzZGNfZmlsZXMpIFtsaW5kZXggJGFyZ3MgMF0KLSAgICAgICAgICAgICAgICAgICAgIHNldCB2YXJzKCRjb25zdHJhaW50X21vZGUscHJlX2N0c19zZGMpIFtsaW5kZXggJGFyZ3MgMF0KLSAgICAgICAgICAgICAgICAgICAgIHNldCBhcmdzIFtscmVwbGFjZSAkYXJncyAwIDBdCi0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAtaWxtX3NkY19maWxlcyB7Ci0gICAgICAgICAgICAgICAgICAgICBzZXQgdmFycygkY29uc3RyYWludF9tb2RlLGlsbV9zZGNfZmlsZXMpIFtsaW5kZXggJGFyZ3MgMF0KLSAgICAgICAgICAgICAgICAgICAgIHNldCBhcmdzIFtscmVwbGFjZSAkYXJncyAwIDBdCi0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9IAotICAgICAgICAgfQotICAgICAgICAgY3JlYXRlX2FuYWx5c2lzX3ZpZXcgewotICAgICAgICAgICAgd2hpbGUge1tsbGVuZ3RoICRhcmdzXSA+IDB9IHsKLSAgICAgICAgICAgICAgIHNldCBvcHRpb24gW2xpbmRleCAkYXJncyAwXQotICAgICAgICAgICAgICAgc2V0IGFyZ3MgW2xyZXBsYWNlICRhcmdzIDAgMF0KLSAgICAgICAgICAgICAgIHN3aXRjaCAtcmVnZXhwIC0tICRvcHRpb24gewotICAgICAgICAgICAgICAgICAgLW5hbWUgewotICAgICAgICAgICAgICAgICAgICAgc2V0IGFuYWx5c2lzX3ZpZXcgW2xpbmRleCAkYXJncyAwXQotICAgICAgICAgICAgICAgICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycyhhbmFseXNpc192aWV3cyldfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBzZXQgdmFycyhhbmFseXNpc192aWV3cykgW2xpc3QgJGFuYWx5c2lzX3ZpZXddCi0gICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICAgaWYge1tsc2VhcmNoICR2YXJzKGFuYWx5c2lzX3ZpZXdzKSAkYW5hbHlzaXNfdmlld10gPT0gLTF9IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhcHBlbmQgdmFycyhhbmFseXNpc192aWV3cykgJGFuYWx5c2lzX3ZpZXcKLSAgICAgICAgICAgICAgICAgICAgICAgIH0gIAotICAgICAgICAgICAgICAgICAgICAgfSAgCi0gICAgICAgICAgICAgICAgICAgICBzZXQgYXJncyBbbHJlcGxhY2UgJGFyZ3MgMCAwXQotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgLWNvbnN0cmFpbnRfbW9kZSB7Ci0gICAgICAgICAgICAgICAgICAgICBzZXQgdmFycygkYW5hbHlzaXNfdmlldyxjb25zdHJhaW50X21vZGUpIFtsaW5kZXggJGFyZ3MgMF0KLSAgICAgICAgICAgICAgICAgICAgIHNldCBhcmdzIFtscmVwbGFjZSAkYXJncyAwIDBdCi0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAtZGVsYXlfY29ybmVyIHsKLSAgICAgICAgICAgICAgICAgICAgIHNldCB2YXJzKCRhbmFseXNpc192aWV3LGRlbGF5X2Nvcm5lcikgW2xpbmRleCAkYXJncyAwXQotICAgICAgICAgICAgICAgICAgICAgc2V0IGFyZ3MgW2xyZXBsYWNlICRhcmdzIDAgMF0KLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0gCi0gICAgICAgICB9Ci0gICAgICAgICBzZXRfYW5hbHlzaXNfdmlldyB7Ci0gICAgICAgICAgICB3aGlsZSB7W2xsZW5ndGggJGFyZ3NdID4gMH0gewotICAgICAgICAgICAgICAgc2V0IG9wdGlvbiBbbGluZGV4ICRhcmdzIDBdCi0gICAgICAgICAgICAgICBzZXQgYXJncyBbbHJlcGxhY2UgJGFyZ3MgMCAwXQotICAgICAgICAgICAgICAgc3dpdGNoIC1yZWdleHAgLS0gJG9wdGlvbiB7Ci0gICAgICAgICAgICAgICAgICAtc2V0dXAgewotICAgICAgICAgICAgICAgICAgICAgc2V0IHZhcnMoc2V0dXBfYW5hbHlzaXNfdmlld3MpIFtsaW5kZXggJGFyZ3MgMF0KLSAgICAgICAgICAgICAgICAgICAgIHNldCBhcmdzIFtscmVwbGFjZSAkYXJncyAwIDBdCi0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAtaG9sZCB7Ci0gICAgICAgICAgICAgICAgICAgICBzZXQgdmFycyhob2xkX2FuYWx5c2lzX3ZpZXdzKSBbbGluZGV4ICRhcmdzIDBdCi0gICAgICAgICAgICAgICAgICAgICBzZXQgYXJncyBbbHJlcGxhY2UgJGFyZ3MgMCAwXQotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfSAKLSAgICAgICAgICAgIGlmIHshW2luZm8gZXhpc3RzIHZhcnMoYWN0aXZlX3NldHVwX3ZpZXdzKV19IHsKLSAgICAgICAgICAgICAgIHNldCB2YXJzKGFjdGl2ZV9zZXR1cF92aWV3cykgJHZhcnMoc2V0dXBfYW5hbHlzaXNfdmlld3MpCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiB7IVtpbmZvIGV4aXN0cyB2YXJzKGFjdGl2ZV9ob2xkX3ZpZXdzKV19IHsKLSAgICAgICAgICAgICAgIHNldCB2YXJzKGFjdGl2ZV9ob2xkX3ZpZXdzKSAkdmFycyhob2xkX2FuYWx5c2lzX3ZpZXdzKQotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycyhkZWZhdWx0X3NldHVwX3ZpZXcpXX0gewotICAgICAgICAgICAgICAgc2V0IHZhcnMoZGVmYXVsdF9zZXR1cF92aWV3KSBbbGluZGV4ICR2YXJzKHNldHVwX2FuYWx5c2lzX3ZpZXdzKSAwXQotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycyhkZWZhdWx0X2hvbGRfdmlldyldfSB7Ci0gICAgICAgICAgICAgICBzZXQgdmFycyhkZWZhdWx0X2hvbGRfdmlldykgW2xpbmRleCAkdmFycyhob2xkX2FuYWx5c2lzX3ZpZXdzKSAwXQotICAgICAgICAgICAgfQotICAgICAgICAgfQotICAgICAgfQotICAgfQotfQpkaWZmIC0tZ2l0IGEvZmxvdy9wbnIvU0NSSVBUUy9FVEMvSU5OT1ZVUy9yZGFfZGVmYXVsdHMudGNsIGIvZmxvdy9wbnIvU0NSSVBUUy9FVEMvSU5OT1ZVUy9yZGFfZGVmYXVsdHMudGNsCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDc1NQppbmRleCBjNmFkZWYwLi4wMDAwMDAwCi0tLSBhL2Zsb3cvcG5yL1NDUklQVFMvRVRDL0lOTk9WVVMvcmRhX2RlZmF1bHRzLnRjbAorKysgL2Rldi9udWxsCkBAIC0xLDExNSArMCwwIEBACi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0jICAgICAgICAgICAgICAgICAgICAgICBDQURFTkNFIENPUFlSSUdIVCBOT1RJQ0UKLSMgICAgICAgICCpIDIwMDgtMjAxMyBDYWRlbmNlIERlc2lnbiBTeXN0ZW1zLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0jCi0jIFRoaXMgRm91bmRhdGlvbiBGbG93IGlzIHByb3ZpZGVkIGFzIGFuIGV4YW1wbGUgb2YgaG93IHRvIHBlcmZvcm0gc3BlY2lhbGl6ZWQKLSMgdGFza3MuCi0jCi0jIFRoaXMgd29yayBtYXkgbm90IGJlIGNvcGllZCwgcmUtcHVibGlzaGVkLCB1cGxvYWRlZCwgb3IgZGlzdHJpYnV0ZWQgaW4gYW55IHdheSwKLSMgaW4gYW55IG1lZGl1bSwgd2hldGhlciBpbiB3aG9sZSBvciBpbiBwYXJ0LCB3aXRob3V0IHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbgotIyBmcm9tIENhZGVuY2UuIE5vdHdpdGhzdGFuZGluZyBhbnkgcmVzdHJpY3Rpb25zIGhlcmVpbiwgc3ViamVjdCB0byBjb21wbGlhbmNlCi0jIHdpdGggdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mIHRoZSBDYWRlbmNlIHNvZnR3YXJlIGxpY2Vuc2UgYWdyZWVtZW50IHVuZGVyCi0jIHdoaWNoIHRoaXMgbWF0ZXJpYWwgd2FzIHByb3ZpZGVkLCB0aGlzIG1hdGVyaWFsIG1heSBiZSBjb3BpZWQgYW5kIGludGVybmFsbHkKLSMgZGlzdHJpYnV0ZWQgc29sZWx5IGZvciBpbnRlcm5hbCBwdXJwb3NlcyBmb3IgdXNlIHdpdGggQ2FkZW5jZSB0b29scy4KLSMKLSMgVGhpcyB3b3JrIGlzIENhZGVuY2UgaW50ZWxsZWN0dWFsIHByb3BlcnR5IGFuZCBtYXkgdW5kZXIgbm8gY2lyY3Vtc3RhbmNlcyBiZQotIyBnaXZlbiB0byB0aGlyZCBwYXJ0aWVzLCBuZWl0aGVyIGluIG9yaWdpbmFsIG5vciBpbiBtb2RpZmllZCB2ZXJzaW9ucywgd2l0aG91dAotIyBleHBsaWNpdCB3cml0dGVuIHBlcm1pc3Npb24gZnJvbSBDYWRlbmNlLiBUaGUgaW5mb3JtYXRpb24gY29udGFpbmVkIGhlcmVpbiBpcwotIyB0aGUgcHJvcHJpZXRhcnkgYW5kIGNvbmZpZGVudGlhbCBpbmZvcm1hdGlvbiBvZiBDYWRlbmNlIG9yIGl0cyBsaWNlbnNvcnMsIGFuZAotIyBpcyBzdXBwbGllZCBzdWJqZWN0IHRvLCBhbmQgbWF5IGJlIHVzZWQgb25seSBieSBDYWRlbmNlJ3MgY3VycmVudCBjdXN0b21lcnMKLSMgaW4gYWNjb3JkYW5jZSB3aXRoLCBhIHByZXZpb3VzbHkgZXhlY3V0ZWQgbGljZW5zZSBhZ3JlZW1lbnQgYmV0d2VlbiBDYWRlbmNlCi0jIGFuZCBpdHMgY3VzdG9tZXIuCi0jCi0jLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0jIFRISVMgTUFURVJJQUwgSVMgUFJPVklERUQgQlkgQ0FERU5DRSAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVECi0jIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GCi0jIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuCi0jIElOIE5PIEVWRU5UIFNIQUxMIENBREVOQ0UgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTAotIyBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLAotIyBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUICAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IKLSMgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyAgTUFURVJJQUwsIEVWRU4gSUYKLSMgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi1pZiB7W2xpbmRleCBbc3BsaXQgJHZhcnModmVyc2lvbikgIi4iXSAgMF0gPiAxMH0gewotICAgaWYge1tsaW5kZXggW3NwbGl0ICR2YXJzKHZlcnNpb24pICIuIl0gIDBdIDwgMTV9IHsKLSAgICAgIHNldCByZGFfZGVmYXVsdHMoYXNzaWduX2J1ZmZlcikgezF9Ci0gICB9Ci0gICBzZXQgcmRhX2RlZmF1bHRzKGltcG9ydF9tb2RlKSB7LXRyZWF0VW5kZWZpbmVkQ2VsbEFzQmJveCAwIC1rZWVwRW1wdHlNb2R1bGUgMSAtdXNlTGVmRGVmNTYgMSB9Ci0gICBzZXQgcmRhX2RlZmF1bHRzKHVuaXF1aWZ5X25ldGxpc3QpIHsxfQotfSBlbHNlIHsKLSAgIHNldCByZGFfZGVmYXVsdHMoYXNzaWduX2J1ZmZlcikgezF9Ci0gICBzZXQgcmRhX2RlZmF1bHRzKHNocl9zY2FsZSkgezEuMH0KLSAgIHNldCByZGFfZGVmYXVsdHMoZGVsYXlfbGltaXQpIHsxMDAwfQotICAgc2V0IHJkYV9kZWZhdWx0cyhkZWZhdWx0X25ldF9kZWxheSkgezEwMDAuMHBzfQotICAgc2V0IHJkYV9kZWZhdWx0cyhkZWZhdWx0X25ldF9sb2FkKSB7MC41cGZ9Ci0gICBzZXQgcmRhX2RlZmF1bHRzKGRlZmF1bHRfc2xldykgezBwc30KLSAgIHNldCByZGFfZGVmYXVsdHMoZmxpcF9maXJzdF9yb3cpIHsxfQotICAgc2V0IHJkYV9kZWZhdWx0cyhjb3JlX2NvbnRyb2wpIHthc3BlY3R9Ci0gICBzZXQgcmRhX2RlZmF1bHRzKGltcG9ydF9tb2RlKSB7LXRyZWF0VW5kZWZpbmVkQ2VsbEFzQmJveCAwIC1rZWVwRW1wdHlNb2R1bGUgMSAtdXNlTGVmRGVmNTYgMSB9Ci0gICBzZXQgcmRhX2RlZmF1bHRzKGNvcmVfdXRpbCkgezAuN30KLSAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhuZXRsaXN0X3R5cGUpXX0gewotICAgICAgc2V0IHJkYV9kZWZhdWx0cyhuZXRsaXN0X3R5cGUpICR2YXJzKG5ldGxpc3RfdHlwZSkKLSAgIH0gZWxzZSB7Ci0gICAgICBzZXQgcmRhX2RlZmF1bHRzKG5ldGxpc3RfdHlwZSkgVmVyaWxvZwotICAgfQotICAgc2V0IHJkYV9kZWZhdWx0cyh1bmlxdWlmeV9uZXRsaXN0KSB7MX0KLSAgIHNldCByZGFfZGVmYXVsdHMocnRsX2xpc3QpICIiCi0gICBzZXQgcmRhX2RlZmF1bHRzKGlsbV9kaXIpICIiCi0gICBzZXQgcmRhX2RlZmF1bHRzKGlsbV9saXN0KSAiIgotICAgc2V0IHJkYV9kZWZhdWx0cyhpbG1fc3BlZikgIiIKLSAgIHNldCByZGFfZGVmYXVsdHMoc2V0X3RvcF9jZWxsKSB7MH0KLSAgIHNldCByZGFfZGVmYXVsdHMoY2VsbGxpYikgIiIKLSAgIHNldCByZGFfZGVmYXVsdHMoaW9fbGliKSAiIgotICAgc2V0IHJkYV9kZWZhdWx0cyhhcmVhX2lvX2xpYikgIiIKLSAgIHNldCByZGFfZGVmYXVsdHMoYmxrX2xpYikgIiIKLSAgIHNldCByZGFfZGVmYXVsdHMoa2JveF9saWIpICIiCi0gICBzZXQgcmRhX2RlZmF1bHRzKG9hMmxlZnZlcnNpb24pIHt9Ci0gICBzZXQgcmRhX2RlZmF1bHRzKHZpZXdfZGVmaW5pdGlvbl9maWxlKSAiIgotICAgc2V0IHJkYV9kZWZhdWx0cyhzbW9kX2RlZikgIiIKLSAgIHNldCByZGFfZGVmYXVsdHMoc21vZF9kYXRhKSAiIgotICAgc2V0IHJkYV9kZWZhdWx0cyhsb2N2X2xpYikgIiIKLSAgIHNldCByZGFfZGVmYXVsdHMoZGF0YV9wYXRoKSAiIgotICAgc2V0IHJkYV9kZWZhdWx0cyh0ZWNoX2ZpbGUpICIiCi0gICBzZXQgcmRhX2RlZmF1bHRzKGlvX2ZpbGUpICIiCi0gICBzZXQgcmRhX2RlZmF1bHRzKGxhdGVuY3lfZmlsZSkgIiIKLSAgIHNldCByZGFfZGVmYXVsdHMoc2NoZWR1bGluZ19maWxlKSAiIgotICAgc2V0IHJkYV9kZWZhdWx0cyhidWZfZm9vdHByaW50KSB7fQotICAgc2V0IHJkYV9kZWZhdWx0cyhkZWxfZm9vdHByaW50KSB7fQotICAgc2V0IHJkYV9kZWZhdWx0cyhpbnZfZm9vdHByaW50KSB7fQotICAgc2V0IHJkYV9kZWZhdWx0cyhjdHNfY2VsbF9mb290cHJpbnQpIHt9Ci0gICBzZXQgcmRhX2RlZmF1bHRzKGN0c19jZWxsX2xpc3QpIHt9Ci0gICBzZXQgcmRhX2RlZmF1bHRzKGFzcGVjdF9yYXRpbykgezEuMH0KLSAgIHNldCByZGFfZGVmYXVsdHMoY29yZV9oZWlnaHQpIHt9Ci0gICBzZXQgcmRhX2RlZmF1bHRzKGNvcmVfd2lkdGgpIHt9Ci0gICBzZXQgcmRhX2RlZmF1bHRzKGNvcmVfdG9fbGVmdCkge30KLSAgIHNldCByZGFfZGVmYXVsdHMoY29yZV90b19yaWdodCkge30KLSAgIHNldCByZGFfZGVmYXVsdHMoY29yZV90b190b3ApIHt9Ci0gICBzZXQgcmRhX2RlZmF1bHRzKGNvcmVfdG9fYm90dG9tKSB7fQotICAgc2V0IHJkYV9kZWZhdWx0cyhtYXhfaW9faGVpZ2h0KSB7MH0KLSAgIHNldCByZGFfZGVmYXVsdHMocm93X2hlaWdodCkge30KLSAgIHNldCByZGFfZGVmYXVsdHMoaG9yX3RyYWNrX2hhbGZfcGl0Y2gpIHswfQotICAgc2V0IHJkYV9kZWZhdWx0cyh2ZXJfdHJhY2tfaGFsZl9waXRjaCkgezF9Ci0gICBzZXQgcmRhX2RlZmF1bHRzKGlvX29yaWVudGF0aW9uKSB7UjB9Ci0gICBzZXQgcmRhX2RlZmF1bHRzKGNlbnRlcl9vcmlnaW4pIHswfQotICAgc2V0IHJkYV9kZWZhdWx0cyh2ZXJ0aWNhbF9yb3dzKSB7MH0KLSAgIHNldCByZGFfZGVmYXVsdHMoZXhjbHVkZV9uZXRzKSAiIgotICAgc2V0IHJkYV9kZWZhdWx0cyh0aW1lX3VuaXQpIHtub25lfQotICAgc2V0IHJkYV9kZWZhdWx0cyhjYXBfdW5pdCkge30KLSAgIHNldCByZGFfZGVmYXVsdHMob2FfcmVmX2xpYikgIiIKLSAgIHNldCByZGFfZGVmYXVsdHMob2FfYWJzdHJhY3RfbmFtZSkge30KLSAgIHNldCByZGFfZGVmYXVsdHMob2FfbGF5b3V0X25hbWUpIHt9Ci0gICBzZXQgcmRhX2RlZmF1bHRzKG9hX2Rlc2lnbl9saWIpIHt9Ci0gICBzZXQgcmRhX2RlZmF1bHRzKG9hX2Rlc2lnbl9jZWxsKSB7fQotICAgc2V0IHJkYV9kZWZhdWx0cyhvYV9kZXNpZ25fdmlldykge30KLSAgIHNldCByZGFfZGVmYXVsdHMoc2lnbmFsc3Rvcm1fbGliKSAiIgotICAgc2V0IHJkYV9kZWZhdWx0cyhlY2hvX2ZpbGUsbWluKSAiIgotICAgc2V0IHJkYV9kZWZhdWx0cyhlY2hvX2ZpbGUsbWF4KSAiIgotICAgc2V0IHJkYV9kZWZhdWx0cyhlY2hvX2ZpbGUpICIiCi0gICBzZXQgcmRhX2RlZmF1bHRzKHh0YWxrX3R3Zl9maWxlKSAiIgotICAgc2V0IHJkYV9kZWZhdWx0cyhkb3VibGVfYmFjaykgezF9Ci0gICBzZXQgcmRhX2RlZmF1bHRzKGdlbl9mb290cHJpbnQpIHswfQotICAgc2V0IHJkYV9kZWZhdWx0cyhwd3JuZXQpICIiCi0gICBzZXQgcmRhX2RlZmF1bHRzKGduZG5ldCkgIiIKLSAgIHNldCByZGFfZGVmYXVsdHMoZ2RzX2ZpbGVzKSAiIgotfQpkaWZmIC0tZ2l0IGEvZmxvdy9wbnIvU0NSSVBUUy9FVEMvSU5OT1ZVUy9yZW5hbWUudGNsIGIvZmxvdy9wbnIvU0NSSVBUUy9FVEMvSU5OT1ZVUy9yZW5hbWUudGNsCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDc1NQppbmRleCA0MDJmZGUyLi4wMDAwMDAwCi0tLSBhL2Zsb3cvcG5yL1NDUklQVFMvRVRDL0lOTk9WVVMvcmVuYW1lLnRjbAorKysgL2Rldi9udWxsCkBAIC0xLDQ0NCArMCwwIEBACi1pZiB7IVtpbmZvIGV4aXN0cyB2YXJzKGxpbnQpXX0gewotICAgc2V0IHZhcnMobGludCkgMAotfQotCi0jIE92ZXJsb2FkIGNvbW1hbmQgYmVoYXZpb3IKLQotY2F0Y2gge3JlbmFtZSBzZXREZXNpZ25Nb2RlIHNldERlc2lnbk1vZGVPcmlnfQotY2F0Y2gge3JlbmFtZSBzZXREZWxheUNhbE1vZGUgc2V0RGVsYXlDYWxNb2RlT3JpZ30KLWNhdGNoIHtyZW5hbWUgc2V0VGllSGlMb01vZGUgc2V0VGllSGlMb01vZGVPcmlnfQotY2F0Y2gge3JlbmFtZSBzZXRQbGFjZU1vZGUgc2V0UGxhY2VNb2RlT3JpZ30KLWNhdGNoIHtyZW5hbWUgc2V0Q1RTTW9kZSBzZXRDVFNNb2RlT3JpZ30KLWNhdGNoIHtyZW5hbWUgc2V0Q0NPcHRNb2RlIHNldENDT3B0TW9kZU9yaWd9Ci1jYXRjaCB7cmVuYW1lIHNldEZpbGxlck1vZGUgc2V0RmlsbGVyTW9kZU9yaWd9Ci1jYXRjaCB7cmVuYW1lIHNldE5hbm9Sb3V0ZU1vZGUgc2V0TmFub1JvdXRlTW9kZU9yaWd9Ci1jYXRjaCB7cmVuYW1lIHNldEV4dHJhY3RSQ01vZGUgc2V0RXh0cmFjdFJDTW9kZU9yaWd9Ci1jYXRjaCB7cmVuYW1lIHNldFNJTW9kZSBzZXRTSU1vZGVPcmlnfQotCi1jYXRjaCB7cmVuYW1lIGNyZWF0ZV9saWJyYXJ5X3NldCBjcmVhdGVfbGlicmFyeV9zZXRfb3JpZ30KLWNhdGNoIHtyZW5hbWUgY3JlYXRlX3JjX2Nvcm5lciBjcmVhdGVfcmNfY29ybmVyX29yaWd9Ci1jYXRjaCB7cmVuYW1lIGNyZWF0ZV9kZWxheV9jb3JuZXIgY3JlYXRlX2RlbGF5X2Nvcm5lcl9vcmlnfQotY2F0Y2gge3JlbmFtZSBjcmVhdGVfY29uc3RyYWludF9tb2RlIGNyZWF0ZV9jb25zdHJhaW50X21vZGVfb3JpZ30KLWNhdGNoIHtyZW5hbWUgY3JlYXRlX2FuYWx5c2lzX3ZpZXcgY3JlYXRlX2FuYWx5c2lzX3ZpZXdfb3JpZ30KLQotcHJvYyBzZXREZXNpZ25Nb2RlIHthcmdzfSB7Ci0gICBnbG9iYWwgdmFycwotICAgaWYgeyR2YXJzKGxpbnQpfSB7IAotICAgICAgZmZfZWRpOjpzZWVkX2NvbW1hbmRzICJzZXREZXNpZ25Nb2RlICRhcmdzIgotICAgfSBlbHNlIHsKLSAgICAgIHNldERlc2lnbk1vZGVPcmlnICRhcmdzCi0gICB9Ci19Ci1wcm9jIHNldERlbGF5Q2FsTW9kZSB7YXJnc30gewotICAgZ2xvYmFsIHZhcnMKLSAgIGlmIHskdmFycyhsaW50KX0geyAKLSAgICAgIGZmX2VkaTo6c2VlZF9jb21tYW5kcyAic2V0RGVsYXlDYWxNb2RlICRhcmdzIgotICAgfSBlbHNlIHsKLSAgICAgIHNldERlbGF5Q2FsTW9kZU9yaWcgJGFyZ3MKLSAgIH0KLX0KLXByb2Mgc2V0VGllSGlMb01vZGUge2FyZ3N9IHsKLSAgIGdsb2JhbCB2YXJzCi0gICBpZiB7JHZhcnMobGludCl9IHsgCi0gICAgICBmZl9lZGk6OnNlZWRfY29tbWFuZHMgInNldFRpZUhpTG9Nb2RlICRhcmdzIgotICAgfSBlbHNlIHsKLSAgICAgIHNldFRpZUhpTG9Nb2RlT3JpZyAkYXJncwotICAgfQotfQotcHJvYyBzZXRQbGFjZU1vZGUge2FyZ3N9IHsKLSAgIGdsb2JhbCB2YXJzCi0gICBpZiB7JHZhcnMobGludCl9IHsgCi0gICAgICBmZl9lZGk6OnNlZWRfY29tbWFuZHMgInNldFBsYWNlTW9kZSAkYXJncyIKLSAgIH0gZWxzZSB7Ci0gICAgICBzZXRQbGFjZU1vZGVPcmlnICRhcmdzCi0gICB9Ci19Ci1wcm9jIHNldENUU01vZGUgIHthcmdzfSB7Ci0gICBnbG9iYWwgdmFycwotICAgaWYgeyR2YXJzKGxpbnQpfSB7IAotICAgICAgZmZfZWRpOjpzZWVkX2NvbW1hbmRzICJzZXRDVFNNb2RlICRhcmdzIgotICAgfSBlbHNlIHsKLSAgICAgIHNldENUU01vZGVPcmlnICRhcmdzCi0gICB9Ci19Ci1wcm9jIHNldENDT3B0TW9kZSAge2FyZ3N9IHsKLSAgIGdsb2JhbCB2YXJzCi0gICBpZiB7JHZhcnMobGludCl9IHsgCi0gICAgICBmZl9lZGk6OnNlZWRfY29tbWFuZHMgInNldENDT3B0TW9kZSAkYXJncyIKLSAgIH0gZWxzZSB7Ci0gICAgICBzZXRDQ09wdE1vZGVPcmlnICRhcmdzCi0gICB9Ci19Ci1wcm9jIHNldEZpbGxlck1vZGUgIHthcmdzfSB7Ci0gICBnbG9iYWwgdmFycwotICAgaWYgeyR2YXJzKGxpbnQpfSB7IAotICAgICAgZmZfZWRpOjpzZWVkX2NvbW1hbmRzICJzZXRGaWxsZXJNb2RlICRhcmdzIgotICAgfSBlbHNlIHsKLSAgICAgIHNldEZpbGxlck1vZGVPcmlnICRhcmdzCi0gICB9Ci19Ci1wcm9jIHNldE5hbm9Sb3V0ZU1vZGUgIHthcmdzfSB7Ci0gICBnbG9iYWwgdmFycwotICAgaWYgeyR2YXJzKGxpbnQpfSB7IAotICAgICAgZmZfZWRpOjpzZWVkX2NvbW1hbmRzICJzZXROYW5vUm91dGVNb2RlICRhcmdzIgotICAgfSBlbHNlIHsKLSAgICAgIHNldE5hbm9Sb3V0ZU1vZGVPcmlnICRhcmdzCi0gICB9Ci19Ci1wcm9jIHNldEV4dHJhY3RSQ01vZGUgIHthcmdzfSB7Ci0gICBnbG9iYWwgdmFycwotICAgaWYgeyR2YXJzKGxpbnQpfSB7IAotICAgICAgZmZfZWRpOjpzZWVkX2NvbW1hbmRzICJzZXRFeHRyYWN0UkNNb2RlICRhcmdzIgotICAgfSBlbHNlIHsKLSAgICAgIHNldEV4dHJhY3RSQ01vZGVPcmlnICRhcmdzCi0gICB9Ci19Ci1wcm9jIHNldFNJTW9kZSAge2FyZ3N9IHsKLSAgIGdsb2JhbCB2YXJzCi0gICBpZiB7JHZhcnMobGludCl9IHsgCi0JICBmZl9lZGk6OnNlZWRfY29tbWFuZHMgInNldFNJTW9kZSAkYXJncyIKLSAgIH0gZWxzZSB7Ci0JICBzZXRTSU1vZGVPcmlnICRhcmdzCi0gICB9Ci19Ci0KLXByb2MgY3JlYXRlX3JjX2Nvcm5lciB7YXJnc30gewotICAgZ2xvYmFsIHZhcnMKLSAgIGlmIHskdmFycyhsaW50KX0geyAKLSAgICAgIGZmX2VkaTo6c2VlZF9vcHRpb25zICJjcmVhdGVfcmNfY29ybmVyICRhcmdzIgotICAgfSBlbHNlIHsKLSAgICAgIGNyZWF0ZV9saWJyYXJ5X3NldCAkYXJncwotICAgfQotfQotCi1wcm9jIGNyZWF0ZV9saWJyYXJ5X3NldCB7YXJnc30gewotICAgZ2xvYmFsIHZhcnMKLSAgIGlmIHskdmFycyhsaW50KX0geyAKLSAgICAgIGZmX2VkaTo6c2VlZF9vcHRpb25zICJjcmVhdGVfbGlicmFyeV9zZXQgJGFyZ3MiCi0gICB9IGVsc2UgewotICAgICAgY3JlYXRlX2xpYnJhcnlfc2V0ICRhcmdzCi0gICB9Ci19Ci0KLXByb2MgY3JlYXRlX2RlbGF5X2Nvcm5lciB7YXJnc30gewotICAgZ2xvYmFsIHZhcnMKLSAgIGlmIHskdmFycyhsaW50KX0geyAKLSAgICAgIGZmX2VkaTo6c2VlZF9vcHRpb25zICJjcmVhdGVfZGVsYXlfY29ybmVyICRhcmdzIgotICAgfSBlbHNlIHsKLSAgICAgIGNyZWF0ZV9kZWxheV9jb3JuZXIgJGFyZ3MKLSAgIH0KLX0KLQotcHJvYyBjcmVhdGVfY29uc3RyYWludF9tb2RlIHthcmdzfSB7Ci0gICBnbG9iYWwgdmFycwotICAgaWYgeyR2YXJzKGxpbnQpfSB7IAotICAgICAgZmZfZWRpOjpzZWVkX29wdGlvbnMgImNyZWF0ZV9jb25zdHJhaW50X21vZGUgJGFyZ3MiCi0gICB9IGVsc2UgewotICAgICAgY3JlYXRlX2NvbnN0cmFpbnRfbW9kZSAkYXJncwotICAgfQotfQotCi1wcm9jIGNyZWF0ZV9hbmFseXNpc192aWV3IHthcmdzfSB7Ci0gICBnbG9iYWwgdmFycwotICAgaWYgeyR2YXJzKGxpbnQpfSB7IAotICAgICAgZmZfZWRpOjpzZWVkX29wdGlvbnMgImNyZWF0ZV9hbmFseXNpc192aWV3ICRhcmdzIgotICAgfSBlbHNlIHsKLSAgICAgIGNyZWF0ZV9hbmFseXNpc192aWV3ICRhcmdzCi0gICB9Ci19Ci0KLW5hbWVzcGFjZSBldmFsIGZmX2VkaSB7Ci0KLSAgIHByb2Mgc2VlZF9vcHRpb25zIHtjb21tYW5kX3N0cmluZ30gewotCi0gICAgICBnbG9iYWwgdmFycwotCi0gICAgICBzZXQgY29tbWFuZCBbbGluZGV4ICRjb21tYW5kX3N0cmluZyAwXQotICAgICAgc2V0IGFyZ3MgW2xyZXBsYWNlICRjb21tYW5kX3N0cmluZyAwIDBdCi0KLSAgICAgIHN3aXRjaCAkY29tbWFuZCB7Ci0gICAgICAgICBzZXREZXNpZ25Nb2RlIHsKLSAgICAgICAgICAgIHdoaWxlIHtbbGxlbmd0aCAkYXJnc10gPiAwfSB7Ci0gICAgICAgICAgICAgICBzZXQgb3B0aW9uIFtsaW5kZXggJGFyZ3MgMF0KLSAgICAgICAgICAgICAgIHNldCBhcmdzIFtscmVwbGFjZSAkYXJncyAwIDBdCi0gICAgICAgICAgICAgICBzd2l0Y2ggLXJlZ2V4cCAtLSAkb3B0aW9uIHsKLSAgICAgICAgICAgICAgICAgIHByb2Nlc3MgewotICAgICAgICAgICAgICAgICAgICAgc2V0IHZhcnMocHJvY2VzcykgW2xpbmRleCAkYXJncyAwXQotICAgICAgICAgICAgICAgICAgICAgc2V0IGFyZ3MgW2xyZXBsYWNlICRhcmdzIDAgMF0KLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0gCi0gICAgICAgICB9Ci0gICAgICAgICBzZXRQbGFjZU1vZGUgewotICAgICAgICAgICAgd2hpbGUge1tsbGVuZ3RoICRhcmdzXSA+IDB9IHsKLSAgICAgICAgICAgICAgIHNldCBvcHRpb24gW2xpbmRleCAkYXJncyAwXQotICAgICAgICAgICAgICAgc2V0IGFyZ3MgW2xyZXBsYWNlICRhcmdzIDAgMF0KLSAgICAgICAgICAgICAgIHN3aXRjaCAtcmVnZXhwIC0tICRvcHRpb24gewotICAgICAgICAgICAgICAgICAgcGxhY2VJb1BpbnMgewotICAgICAgICAgICAgICAgICAgICAgc2V0IHZhcnMocGxhY2VfaW9fcGlucykgW2xpbmRleCAkYXJncyAwXQotICAgICAgICAgICAgICAgICAgICAgc2V0IGFyZ3MgW2xyZXBsYWNlICRhcmdzIDAgMF0KLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIGNvbmdFZmZvcnQgewotICAgICAgICAgICAgICAgICAgICAgc2V0IHZhcnMoY29uZ2VzdGlvbl9lZmZvcnQpIFtsaW5kZXggJGFyZ3MgMF0KLSAgICAgICAgICAgICAgICAgICAgIHNldCBhcmdzIFtscmVwbGFjZSAkYXJncyAwIDBdCi0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9IAotICAgICAgICAgfQotICAgICAgICAgc2V0T3B0TW9kZSB7Ci0gICAgICAgICAgICB3aGlsZSB7W2xsZW5ndGggJGFyZ3NdID4gMH0gewotICAgICAgICAgICAgICAgc2V0IG9wdGlvbiBbbGluZGV4ICRhcmdzIDBdCi0gICAgICAgICAgICAgICBzZXQgYXJncyBbbHJlcGxhY2UgJGFyZ3MgMCAwXQotICAgICAgICAgICAgICAgc3dpdGNoIC1yZWdleHAgLS0gJG9wdGlvbiB7Ci0gICAgICAgICAgICAgICAgICBhbGxFbmRQb2ludHMgewotICAgICAgICAgICAgICAgICAgICAgc2V0IHZhcnMoYWxsX2VuZF9wb2ludHMpIFtsaW5kZXggJGFyZ3MgMF0KLSAgICAgICAgICAgICAgICAgICAgIHNldCBhcmdzIFtscmVwbGFjZSAkYXJncyAwIDBdCi0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICBwcmVzZXJ2ZUFzc3NlcnRpb25zIHsKLSAgICAgICAgICAgICAgICAgICAgIHNldCB2YXJzKHByZXNlcnZlX2Fzc2VydGlvbnMpIFtsaW5kZXggJGFyZ3MgMF0KLSAgICAgICAgICAgICAgICAgICAgIHNldCBhcmdzIFtscmVwbGFjZSAkYXJncyAwIDBdCi0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICBsZWFrYWdlUG93ZXJFZmZvcnQgewotICAgICAgICAgICAgICAgICAgICAgc2V0IHZhcnMobGVha2FnZV9wb3dlcl9lZmZvcnQpIFtsaW5kZXggJGFyZ3MgMF0KLSAgICAgICAgICAgICAgICAgICAgIHNldCBhcmdzIFtscmVwbGFjZSAkYXJncyAwIDBdCi0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICBkeW5hbWljUG93ZXJFZmZvcnQgewotICAgICAgICAgICAgICAgICAgICAgc2V0IHZhcnMobGVha2FnZV9wb3dlcl9lZmZvcnQpIFtsaW5kZXggJGFyZ3MgMF0KLSAgICAgICAgICAgICAgICAgICAgIHNldCBhcmdzIFtscmVwbGFjZSAkYXJncyAwIDBdCi0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9IAotICAgICAgICAgfQotICAgICAgICAgc2V0Q1RTTW9kZSB7Ci0gICAgICAgICAgICB3aGlsZSB7W2xsZW5ndGggJGFyZ3NdID4gMH0gewotICAgICAgICAgICAgICAgc2V0IG9wdGlvbiBbbGluZGV4ICRhcmdzIDBdCi0gICAgICAgICAgICAgICBzZXQgYXJncyBbbHJlcGxhY2UgJGFyZ3MgMCAwXQotICAgICAgICAgICAgICAgc3dpdGNoIC1yZWdleHAgLS0gJG9wdGlvbiB7Ci0gICAgICAgICAgICAgICAgICByb3V0ZUNsa05ldHMgewotICAgICAgICAgICAgICAgICAgICAgc2V0IHZhcnMocm91dGVfY2xvY2tfbmV0cykgW2xpbmRleCAkYXJncyAwXQotICAgICAgICAgICAgICAgICAgICAgc2V0IGFyZ3MgW2xyZXBsYWNlICRhcmdzIDAgMF0KLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0gCi0gICAgICAgICB9Ci0gICAgICAgICBzZXROYW5vUm91dGVNb2RlIHsKLSAgICAgICAgICAgIHdoaWxlIHtbbGxlbmd0aCAkYXJnc10gPiAwfSB7Ci0gICAgICAgICAgICAgICBzZXQgb3B0aW9uIFtsaW5kZXggJGFyZ3MgMF0KLSAgICAgICAgICAgICAgIHNldCBhcmdzIFtscmVwbGFjZSAkYXJncyAwIDBdCi0gICAgICAgICAgICAgICBzd2l0Y2ggLXJlZ2V4cCAtLSAkb3B0aW9uIHsKLSAgICAgICAgICAgICAgICAgIGRyb3V0ZU11bHRpQ3V0VmlhRWZmb3J0IHsKLSAgICAgICAgICAgICAgICAgICAgIHNldCB2YXJzKG11bHRpX2N1dF9lZmZvcnQpIFtsaW5kZXggJGFyZ3MgMF0KLSAgICAgICAgICAgICAgICAgICAgIHNldCBhcmdzIFtscmVwbGFjZSAkYXJncyAwIDBdCi0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9IAotICAgICAgICAgfQotICAgICAgICAgY3JlYXRlX3JjX2Nvcm5lciB7Ci0gICAgICAgICAgICB3aGlsZSB7W2xsZW5ndGggJGFyZ3NdID4gMH0gewotICAgICAgICAgICAgICAgc2V0IG9wdGlvbiBbbGluZGV4ICRhcmdzIDBdCi0gICAgICAgICAgICAgICBzZXQgYXJncyBbbHJlcGxhY2UgJGFyZ3MgMCAwXQotICAgICAgICAgICAgICAgc3dpdGNoIC1yZWdleHAgLS0gJG9wdGlvbiB7Ci0gICAgICAgICAgICAgICAgICAtbmFtZSB7Ci0gICAgICAgICAgICAgICAgICAgICBzZXQgcmNfY29ybmVyIFtsaW5kZXggJGFyZ3MgMF0KLSAgICAgICAgICAgICAgICAgICAgIFB1dHMgIjxGRj4gRm91bmQgcmMgY29ybmVyICRyY19jb3JuZXIiIAotICAgICAgICAgICAgICAgICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycyhyY19jb3JuZXJzKV19IHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHNldCB2YXJzKHJjX2Nvcm5lcnMpICRyY19jb3JuZXIKLSAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgdmFycyhyY19jb3JuZXJzKSAkcmNfY29ybmVyCi0gICAgICAgICAgICAgICAgICAgICB9ICAKLSAgICAgICAgICAgICAgICAgICAgIHNldCBhcmdzIFtscmVwbGFjZSAkYXJncyAwIDBdCi0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAtVCB7Ci0gICAgICAgICAgICAgICAgICAgICBzZXQgdmFycygkcmNfY29ybmVyLFQpIFtsaW5kZXggJGFyZ3MgMF0KLSAgICAgICAgICAgICAgICAgICAgIHNldCBhcmdzIFtscmVwbGFjZSAkYXJncyAwIDBdCi0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAtY2FwX3RhYmxlIHsKLSAgICAgICAgICAgICAgICAgICAgIHNldCB2YXJzKCRyY19jb3JuZXIsY2FwX3RhYmxlKSBbbGluZGV4ICRhcmdzIDBdCi0gICAgICAgICAgICAgICAgICAgICBzZXQgYXJncyBbbHJlcGxhY2UgJGFyZ3MgMCAwXQotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgLXF4X3RlY2hfZmlsZSB7Ci0gICAgICAgICAgICAgICAgICAgICBzZXQgdmFycygkcmNfY29ybmVyLHF4X3RlY2hfZmlsZSkgW2xpbmRleCAkYXJncyAwXQotICAgICAgICAgICAgICAgICAgICAgc2V0IGFyZ3MgW2xyZXBsYWNlICRhcmdzIDAgMF0KLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIC1wcmVSb3V0ZV9yZXMgewotICAgICAgICAgICAgICAgICAgICAgIHNldCB2YXJzKCRyY19jb3JuZXIscHJlX3JvdXRlX3Jlc19mYWN0b3IpIFtsaW5kZXggJGFyZ3MgMF0KLSAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAtcHJlUm91dGVfY2FwIHsKLSAgICAgICAgICAgICAgICAgICAgICBzZXQgdmFycygkcmNfY29ybmVyLHByZV9yb3V0ZV9jYXBfZmFjdG9yKSBbbGluZGV4ICRhcmdzIDBdCi0gICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgLXByZVJvdXRlX2Nsa3JlcyB7Ci0gICAgICAgICAgICAgICAgICAgICAgc2V0IHZhcnMoJHJjX2Nvcm5lcixwcmVfcm91dGVfY2xrX3Jlc19mYWN0b3IpIFtsaW5kZXggJGFyZ3MgMF0KLSAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAtcHJlUm91dGVfY2xrY2FwIHsKLSAgICAgICAgICAgICAgICAgICAgICBzZXQgdmFycygkcmNfY29ybmVyLHByZV9yb3V0ZV9jbGtfY2FwX2ZhY3RvcikgW2xpbmRleCAkYXJncyAwXQotICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIC1wb3N0Um91dGVfcmVzIHsKLSAgICAgICAgICAgICAgICAgICAgICBzZXQgdmFycygkcmNfY29ybmVyLHBvc3Rfcm91dGVfcmVzX2ZhY3RvcikgW2xpbmRleCAkYXJncyAwXQotICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIC1wb3N0Um91dGVfY2FwIHsKLSAgICAgICAgICAgICAgICAgICAgICBzZXQgdmFycygkcmNfY29ybmVyLHBvc3Rfcm91dGVfY2FwX2ZhY3RvcikgW2xpbmRleCAkYXJncyAwXQotICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIC1wb3N0Um91dGVfcmVzIHsKLSAgICAgICAgICAgICAgICAgICAgICBzZXQgdmFycygkcmNfY29ybmVyLHBvc3Rfcm91dGVfY2xrX3Jlc19mYWN0b3IpIFtsaW5kZXggJGFyZ3MgMF0KLSAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAtcG9zdFJvdXRlX2Nsa2NhcCB7Ci0gICAgICAgICAgICAgICAgICAgICAgc2V0IHZhcnMoJHJjX2Nvcm5lcixwb3N0X3JvdXRlX2Nsa19jYXBfZmFjdG9yKSBbbGluZGV4ICRhcmdzIDBdCi0gICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgLXBvc3RSb3V0ZV9jbGtyZXMgewotICAgICAgICAgICAgICAgICAgICAgIHNldCB2YXJzKCRyY19jb3JuZXIscG9zdF9yb3V0ZV9jbGtfcmVzX2ZhY3RvcikgW2xpbmRleCAkYXJncyAwXQotICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIC1wb3N0Um91dGVfeGNhcCB7Ci0gICAgICAgICAgICAgICAgICAgICAgc2V0IHZhcnMoJHJjX2Nvcm5lcixwb3N0X3JvdXRlX3hjYXBfZmFjdG9yKSBbbGluZGV4ICRhcmdzIDBdCi0gICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfSAKLSAgICAgICAgIH0KLSAgICAgICAgIGNyZWF0ZV9saWJyYXJ5X3NldCB7Ci0gICAgICAgICAgICB3aGlsZSB7W2xsZW5ndGggJGFyZ3NdID4gMH0gewotICAgICAgICAgICAgICAgc2V0IG9wdGlvbiBbbGluZGV4ICRhcmdzIDBdCi0gICAgICAgICAgICAgICBzZXQgYXJncyBbbHJlcGxhY2UgJGFyZ3MgMCAwXQotICAgICAgICAgICAgICAgc3dpdGNoIC1yZWdleHAgLS0gJG9wdGlvbiB7Ci0gICAgICAgICAgICAgICAgICAtbmFtZSB7Ci0gICAgICAgICAgICAgICAgICAgICBzZXQgbGlicmFyeV9zZXQgW2xpbmRleCAkYXJncyAwXQotICAgICAgICAgICAgICAgICAgICAgUHV0cyAiPEZGPiBGb3VuZCBsaWJyYXJ5IHNldCAkbGlicmFyeV9zZXQiIAotICAgICAgICAgICAgICAgICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycyhsaWJyYXJ5X3NldHMpXX0gewotICAgICAgICAgICAgICAgICAgICAgICAgc2V0IHZhcnMobGlicmFyeV9zZXRzKSAkbGlicmFyeV9zZXQKLSAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgdmFycyhsaWJyYXJ5X3NldHMpICRsaWJyYXJ5X3NldAotICAgICAgICAgICAgICAgICAgICAgfSAgCi0gICAgICAgICAgICAgICAgICAgICBzZXQgYXJncyBbbHJlcGxhY2UgJGFyZ3MgMCAwXQotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgLXRpbWluZyB7Ci0gICAgICAgICAgICAgICAgICAgICBzZXQgdmFycygkbGlicmFyeV9zZXQsdGltaW5nKSBbbGluZGV4ICRhcmdzIDBdCi0gICAgICAgICAgICAgICAgICAgICBzZXQgYXJncyBbbHJlcGxhY2UgJGFyZ3MgMCAwXQotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfSAKLSAgICAgICAgIH0KLSAgICAgICAgIGNyZWF0ZV9kZWxheV9jb3JuZXIgewotICAgICAgICAgICAgd2hpbGUge1tsbGVuZ3RoICRhcmdzXSA+IDB9IHsKLSAgICAgICAgICAgICAgIHNldCBvcHRpb24gW2xpbmRleCAkYXJncyAwXQotICAgICAgICAgICAgICAgc2V0IGFyZ3MgW2xyZXBsYWNlICRhcmdzIDAgMF0KLSAgICAgICAgICAgICAgIHN3aXRjaCAtcmVnZXhwIC0tICRvcHRpb24gewotICAgICAgICAgICAgICAgICAgLW5hbWUgewotICAgICAgICAgICAgICAgICAgICAgc2V0IGRlbGF5X2Nvcm5lciBbbGluZGV4ICRhcmdzIDBdCi0gICAgICAgICAgICAgICAgICAgICBQdXRzICI8RkY+IEZvdW5kIGRlbGF5IGNvcm5lciAkZGVsYXlfY29ybmVyIiAKLSAgICAgICAgICAgICAgICAgICAgIGlmIHshW2luZm8gZXhpc3RzIHZhcnMoZGVsYXlfY29ybmVycyldfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBzZXQgdmFycyhkZWxheV9jb3JuZXJzKSAkZGVsYXlfY29ybmVyCi0gICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIHZhcnMoZGVsYXlfY29ybmVycykgJGRlbGF5X2Nvcm5lcgotICAgICAgICAgICAgICAgICAgICAgfSAgCi0gICAgICAgICAgICAgICAgICAgICBzZXQgYXJncyBbbHJlcGxhY2UgJGFyZ3MgMCAwXQotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgLWxpYnJhcnlfc2V0IHsKLSAgICAgICAgICAgICAgICAgICAgIHNldCB2YXJzKCRkZWxheV9jb3JuZXIsbGlicmFyeV9zZXQpIFtsaW5kZXggJGFyZ3MgMF0KLSAgICAgICAgICAgICAgICAgICAgIHNldCBhcmdzIFtscmVwbGFjZSAkYXJncyAwIDBdCi0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAtcmNfY29ybmVyIHsKLSAgICAgICAgICAgICAgICAgICAgIHNldCB2YXJzKCRkZWxheV9jb3JuZXIscmNfY29ybmVyKSBbbGluZGV4ICRhcmdzIDBdCi0gICAgICAgICAgICAgICAgICAgICBzZXQgYXJncyBbbHJlcGxhY2UgJGFyZ3MgMCAwXQotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfSAKLSAgICAgICAgIH0KLSAgICAgICAgIGNyZWF0ZV9jb25zdHJhaW50X21vZGUgewotICAgICAgICAgICAgd2hpbGUge1tsbGVuZ3RoICRhcmdzXSA+IDB9IHsKLSAgICAgICAgICAgICAgIHNldCBvcHRpb24gW2xpbmRleCAkYXJncyAwXQotICAgICAgICAgICAgICAgc2V0IGFyZ3MgW2xyZXBsYWNlICRhcmdzIDAgMF0KLSAgICAgICAgICAgICAgIHN3aXRjaCAtcmVnZXhwIC0tICRvcHRpb24gewotICAgICAgICAgICAgICAgICAgLW5hbWUgewotICAgICAgICAgICAgICAgICAgICAgc2V0IGNvbnN0cmFpbnRfbW9kZSBbbGluZGV4ICRhcmdzIDBdCi0gICAgICAgICAgICAgICAgICAgICBQdXRzICI8RkY+IEZvdW5kIGNvbnN0cmFpbnQgbW9kZSAkY29uc3RyYWludF9tb2RlIiAKLSAgICAgICAgICAgICAgICAgICAgIGlmIHshW2luZm8gZXhpc3RzIHZhcnMoY29uc3RyYWludF9tb2RlcyldfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBzZXQgdmFycyhjb25zdHJhaW50X21vZGVzKSAkY29uc3RyYWludF9tb2RlCi0gICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIHZhcnMoZGVsYXlfY29ybmVycykgJGNvbnN0cmFpbnRfbW9kZQotICAgICAgICAgICAgICAgICAgICAgfSAgCi0gICAgICAgICAgICAgICAgICAgICBzZXQgYXJncyBbbHJlcGxhY2UgJGFyZ3MgMCAwXQotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgLXNkY19maWxlcyB7Ci0gICAgICAgICAgICAgICAgICAgICBzZXQgdmFycygkY29uc3RyYWludF9tb2RlLHNkY19maWxlcykgW2xpbmRleCAkYXJncyAwXQotICAgICAgICAgICAgICAgICAgICAgc2V0IHZhcnMoJGNvbnN0cmFpbnRfbW9kZSxwcmVfY3RzX3NkYykgW2xpbmRleCAkYXJncyAwXQotICAgICAgICAgICAgICAgICAgICAgc2V0IGFyZ3MgW2xyZXBsYWNlICRhcmdzIDAgMF0KLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIC1pbG1fc2RjX2ZpbGVzIHsKLSAgICAgICAgICAgICAgICAgICAgIHNldCB2YXJzKCRjb25zdHJhaW50X21vZGUsaWxtX3NkY19maWxlcykgW2xpbmRleCAkYXJncyAwXQotICAgICAgICAgICAgICAgICAgICAgc2V0IGFyZ3MgW2xyZXBsYWNlICRhcmdzIDAgMF0KLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0gCi0gICAgICAgICB9Ci0gICAgICAgICBjcmVhdGVfYW5hbHlzaXNfdmlldyB7Ci0gICAgICAgICAgICB3aGlsZSB7W2xsZW5ndGggJGFyZ3NdID4gMH0gewotICAgICAgICAgICAgICAgc2V0IG9wdGlvbiBbbGluZGV4ICRhcmdzIDBdCi0gICAgICAgICAgICAgICBzZXQgYXJncyBbbHJlcGxhY2UgJGFyZ3MgMCAwXQotICAgICAgICAgICAgICAgc3dpdGNoIC1yZWdleHAgLS0gJG9wdGlvbiB7Ci0gICAgICAgICAgICAgICAgICAtbmFtZSB7Ci0gICAgICAgICAgICAgICAgICAgICBzZXQgYW5hbHlzaXNfdmlldyBbbGluZGV4ICRhcmdzIDBdCi0gICAgICAgICAgICAgICAgICAgICBpZiB7IVtpbmZvIGV4aXN0cyB2YXJzKGNvbnN0cmFpbnRfbW9kZXMpXX0gewotICAgICAgICAgICAgICAgICAgICAgICAgc2V0IHZhcnMoYW5hbHlzaXNfdmlld3MpICRhbmFseXNpc192aWV3Ci0gICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIHZhcnMoYW5hbHlzaXNfdmlld3MpICRhbmFseXNpc192aWV3Ci0gICAgICAgICAgICAgICAgICAgICB9ICAKLSAgICAgICAgICAgICAgICAgICAgIHNldCBhcmdzIFtscmVwbGFjZSAkYXJncyAwIDBdCi0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAtY29uc3RyYWludF9tb2RlIHsKLSAgICAgICAgICAgICAgICAgICAgIHNldCB2YXJzKCRhbmFseXNpc192aWV3LGNvbnN0cmFpbnRfbW9kZSkgW2xpbmRleCAkYXJncyAwXQotICAgICAgICAgICAgICAgICAgICAgc2V0IGFyZ3MgW2xyZXBsYWNlICRhcmdzIDAgMF0KLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIC1kZWxheV9jb3JuZXIgewotICAgICAgICAgICAgICAgICAgICAgc2V0IHZhcnMoJGFuYWx5c2lzX3ZpZXcsZGVsYXlfY29ybmVyKSBbbGluZGV4ICRhcmdzIDBdCi0gICAgICAgICAgICAgICAgICAgICBzZXQgYXJncyBbbHJlcGxhY2UgJGFyZ3MgMCAwXQotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfSAKLSAgICAgICAgIH0KLSAgICAgIH0KLSAgIH0KLQotICAgcHJvYyBzZWVkX2NvbW1hbmRzIHtjb21tYW5kX3N0cmluZ30gewotCi0gICAgICBnbG9iYWwgdmFycwotCi0gICAgICBzZXQgY29tbWFuZCBbbGluZGV4ICRjb21tYW5kX3N0cmluZyAwXQotICAgICAgc2V0IGFyZ3MgW2xyZXBsYWNlICRjb21tYW5kX3N0cmluZyAwIDBdCi0KLSAgICAgIFB1dHMgIjxGRj4gUHJvY2Vzc2luZyBtb2RlIGNvbW1hbmRzICRjb21tYW5kIC4uLiIgCi0KLSAgICAgIHN3aXRjaCAkY29tbWFuZCB7Ci0gICAgICAgICBzZXREZXNpZ25Nb2RlIHsKLSAgICAgICAgICAgIHNldCB2YXJzKHNldF9kZXNpZ25fbW9kZSkgJGNvbW1hbmRfc3RyaW5nCi0gICAgICAgICB9Ci0gICAgICAgICBzZXRUaWVIaUxvTW9kZSB7Ci0gICAgICAgICAgICBzZXQgdmFycyhzZXRfdGllaGlsb19tb2RlKSAkY29tbWFuZF9zdHJpbmcKLSAgICAgICAgIH0KLSAgICAgICAgIHNldFBsYWNlTW9kZSB7Ci0gICAgICAgICAgICBzZXQgdmFycyhzZXRfcGxhY2VfbW9kZSkgJGNvbW1hbmRfc3RyaW5nCi0gICAgICAgICB9Ci0gICAgICAgICBzZXREZWxheUNhbE1vZGUgewotICAgICAgICAgICAgc2V0IHZhcnMoc2V0X2RlbGF5X2NhbF9tb2RlKSAkY29tbWFuZF9zdHJpbmcKLSAgICAgICAgIH0KLSAgICAgICAgIHNldE9wdE1vZGUgewotICAgICAgICAgICAgc2V0IHZhcnMoc2V0X29wdF9tb2RlKSAkY29tbWFuZF9zdHJpbmcKLSAgICAgICAgIH0KLSAgICAgICAgIHNldENUU01vZGUgewotICAgICAgICAgICAgc2V0IHZhcnMoc2V0X2N0c19tb2RlKSAkY29tbWFuZF9zdHJpbmcKLSAgICAgICAgIH0KLSAgICAgICAgIHNldENDT3B0TW9kZSB7Ci0gICAgICAgICAgICBzZXQgdmFycyhzZXRfY2NvcHRfbW9kZSkgJGNvbW1hbmRfc3RyaW5nCi0gICAgICAgICB9Ci0gICAgICAgICBzZXRGaWxsZXJNb2RlIHsKLSAgICAgICAgICAgIHNldCB2YXJzKHNldF9maWxsZXJfbW9kZSkgJGNvbW1hbmRfc3RyaW5nCi0gICAgICAgICB9Ci0gICAgICAgICBzZXROYW5vUm91dGVNb2RlIHsKLSAgICAgICAgICAgIHNldCB2YXJzKHNldF9yb3V0ZV9tb2RlKSAkY29tbWFuZF9zdHJpbmcKLSAgICAgICAgIH0KLSAgICAgICAgIHNldEV4dHJhY3RSQ01vZGUgewotICAgICAgICAgICAgc2V0IHZhcnMoc2V0X2V4dHJhY3RfcmNfbW9kZSkgJGNvbW1hbmRfc3RyaW5nCi0gICAgICAgICB9Ci0gICAgICAgICBzZXRTSU1vZGUgewotICAgICAgICAgICAgc2V0IHZhcnMoc2V0X3NpX21vZGUpICRjb21tYW5kX3N0cmluZwotICAgICAgICAgfQotICAgICAgfQotICAgfQotfQpkaWZmIC0tZ2l0IGEvZmxvdy9wbnIvU0NSSVBUUy9FVEMvSU5OT1ZVUy9ydWJpY29uLnRjbCBiL2Zsb3cvcG5yL1NDUklQVFMvRVRDL0lOTk9WVVMvcnViaWNvbi50Y2wKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IGJkZTIyODkuLjAwMDAwMDAKLS0tIGEvZmxvdy9wbnIvU0NSSVBUUy9FVEMvSU5OT1ZVUy9ydWJpY29uLnRjbAorKysgL2Rldi9udWxsCkBAIC0xLDYzNiArMCwwIEBACi1zZXQgciBbY2F0Y2gge2luZm8gbGV2ZWwgW2V4cHIgW2luZm8gbGV2ZWxdIC0xXX0gZV0KLQotaWYgeyRyfSB7Ci0KLSAgIHNldCB2YXJzKGxpbnQpIDEKLSMgT3ZlcmxvYWQgY29tbWFuZCBiZWhhdmlvcgotICAgY2F0Y2gge3JlbmFtZSBzZXREZXNpZ25Nb2RlIHNldERlc2lnbk1vZGVPcmlnfQotICAgY2F0Y2gge3JlbmFtZSBzZXRBbmFseXNpc01vZGUgc2V0QW5hbHlzaXNNb2RlT3JpZ30KLSAgIGNhdGNoIHtyZW5hbWUgc2V0RGVsYXlDYWxNb2RlIHNldERlbGF5Q2FsTW9kZU9yaWd9Ci0gICBjYXRjaCB7cmVuYW1lIHNldFRpZUhpTG9Nb2RlIHNldFRpZUhpTG9Nb2RlT3JpZ30KLSAgIGNhdGNoIHtyZW5hbWUgc2V0UGxhY2VNb2RlIHNldFBsYWNlTW9kZU9yaWd9Ci0gICBjYXRjaCB7cmVuYW1lIHNldENUU01vZGUgc2V0Q1RTTW9kZU9yaWd9Ci0gICBjYXRjaCB7cmVuYW1lIHNldENDT3B0TW9kZSBzZXRDQ09wdE1vZGVPcmlnfQotICAgY2F0Y2gge3JlbmFtZSBzZXRGaWxsZXJNb2RlIHNldEZpbGxlck1vZGVPcmlnfQotICAgY2F0Y2gge3JlbmFtZSBzZXROYW5vUm91dGVNb2RlIHNldE5hbm9Sb3V0ZU1vZGVPcmlnfQotICAgY2F0Y2gge3JlbmFtZSBzZXRFeHRyYWN0UkNNb2RlIHNldEV4dHJhY3RSQ01vZGVPcmlnfQotICAgY2F0Y2gge3JlbmFtZSBzZXRTSU1vZGUgc2V0U0lNb2RlT3JpZ30KLSAgICAgIAotICAgY2F0Y2gge3JlbmFtZSBjcmVhdGVfbGlicmFyeV9zZXQgY3JlYXRlX2xpYnJhcnlfc2V0X29yaWd9Ci0gICBjYXRjaCB7cmVuYW1lIGNyZWF0ZV9yY19jb3JuZXIgY3JlYXRlX3JjX2Nvcm5lcl9vcmlnfQotICAgY2F0Y2gge3JlbmFtZSBjcmVhdGVfZGVsYXlfY29ybmVyIGNyZWF0ZV9kZWxheV9jb3JuZXJfb3JpZ30KLSAgIGNhdGNoIHtyZW5hbWUgY3JlYXRlX2NvbnN0cmFpbnRfbW9kZSBjcmVhdGVfY29uc3RyYWludF9tb2RlX29yaWd9Ci0gICBjYXRjaCB7cmVuYW1lIGNyZWF0ZV9hbmFseXNpc192aWV3IGNyZWF0ZV9hbmFseXNpc192aWV3X29yaWd9Ci0gICBjYXRjaCB7cmVuYW1lIHNldF9hbmFseXNpc192aWV3IHNldF9hbmFseXNpc192aWV3X29yaWd9Ci0gICBjYXRjaCB7cmVuYW1lIHNldF9wb3dlcl9hbmFseXNpc192aWV3IHNldF9wb3dlcl9hbmFseXNpc192aWV3X29yaWd9Ci0gICAKLSAgIHByb2Mgc2V0RGVzaWduTW9kZSB7YXJnc30gewotICAgICAgZ2xvYmFsIHZhcnMKLSAgICAgIGlmIHskdmFycyhsaW50KX0geyAKLSAgICAgICAgIGZmX2VkaTo6c2VlZF9jb21tYW5kcyAic2V0RGVzaWduTW9kZSAkYXJncyIKLSAgICAgICAgIGZmX2VkaTo6c2VlZF9vcHRpb25zICJzZXREZXNpZ25Nb2RlICRhcmdzIgotICAgICAgfSBlbHNlIHsKLSAgICAgICAgIHNldERlc2lnbk1vZGVPcmlnICRhcmdzCi0gICAgICB9Ci0gICB9Ci0gICBwcm9jIHNldEFuYWx5c2lzTW9kZSB7YXJnc30gewotICAgICAgZ2xvYmFsIHZhcnMKLSAgICAgIGlmIHskdmFycyhsaW50KX0geyAKLSAgICAgICAgIGZmX2VkaTo6c2VlZF9jb21tYW5kcyAic2V0QW5hbHlzaXNNb2RlICRhcmdzIgotICAgICAgICAgZmZfZWRpOjpzZWVkX29wdGlvbnMgInNldEFuYWx5c2lzTW9kZSAkYXJncyIKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgICBzZXRBbmFseXNpc01vZGVPcmlnICRhcmdzCi0gICAgICB9Ci0gICB9Ci0gICBwcm9jIHNldERlbGF5Q2FsTW9kZSB7YXJnc30gewotICAgICAgZ2xvYmFsIHZhcnMKLSAgICAgIGlmIHskdmFycyhsaW50KX0geyAKLSAgICAgICAgIGZmX2VkaTo6c2VlZF9jb21tYW5kcyAic2V0RGVsYXlDYWxNb2RlICRhcmdzIgotICAgICAgfSBlbHNlIHsKLSAgICAgICAgIHNldERlbGF5Q2FsTW9kZU9yaWcgJGFyZ3MKLSAgICAgIH0KLSAgIH0KLSAgIHByb2Mgc2V0VGllSGlMb01vZGUge2FyZ3N9IHsKLSAgICAgIGdsb2JhbCB2YXJzCi0gICAgICBpZiB7JHZhcnMobGludCl9IHsgCi0gICAgICAgICBmZl9lZGk6OnNlZWRfY29tbWFuZHMgInNldFRpZUhpTG9Nb2RlICRhcmdzIgotICAgICAgfSBlbHNlIHsKLSAgICAgICAgIHNldFRpZUhpTG9Nb2RlT3JpZyAkYXJncwotICAgICAgfQotICAgfQotICAgcHJvYyBzZXRQbGFjZU1vZGUge2FyZ3N9IHsKLSAgICAgIGdsb2JhbCB2YXJzCi0gICAgICBpZiB7JHZhcnMobGludCl9IHsgCi0gICAgICAgICBmZl9lZGk6OnNlZWRfY29tbWFuZHMgInNldFBsYWNlTW9kZSAkYXJncyIKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgICBzZXRQbGFjZU1vZGVPcmlnICRhcmdzCi0gICAgICB9Ci0gICB9Ci0gICBwcm9jIHNldENUU01vZGUgIHthcmdzfSB7Ci0gICAgICBnbG9iYWwgdmFycwotICAgICAgaWYgeyR2YXJzKGxpbnQpfSB7IAotICAgICAgICAgZmZfZWRpOjpzZWVkX2NvbW1hbmRzICJzZXRDVFNNb2RlICRhcmdzIgotICAgICAgfSBlbHNlIHsKLSAgICAgICAgIHNldENUU01vZGVPcmlnICRhcmdzCi0gICAgICB9Ci0gICB9Ci0gICBwcm9jIHNldENDT3B0TW9kZSAge2FyZ3N9IHsKLSAgICAgIGdsb2JhbCB2YXJzCi0gICAgICBpZiB7JHZhcnMobGludCl9IHsgCi0gICAgICAgICBmZl9lZGk6OnNlZWRfY29tbWFuZHMgInNldENDT3B0TW9kZSAkYXJncyIKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgICBzZXRDQ09wdE1vZGVPcmlnICRhcmdzCi0gICAgICB9Ci0gICB9Ci0gICBwcm9jIHNldEZpbGxlck1vZGUgIHthcmdzfSB7Ci0gICAgICBnbG9iYWwgdmFycwotICAgICAgaWYgeyR2YXJzKGxpbnQpfSB7IAotICAgICAgICAgZmZfZWRpOjpzZWVkX2NvbW1hbmRzICJzZXRGaWxsZXJNb2RlICRhcmdzIgotICAgICAgfSBlbHNlIHsKLSAgICAgICAgIHNldEZpbGxlck1vZGVPcmlnICRhcmdzCi0gICAgICB9Ci0gICB9Ci0gICBwcm9jIHNldE5hbm9Sb3V0ZU1vZGUgIHthcmdzfSB7Ci0gICAgICBnbG9iYWwgdmFycwotICAgICAgaWYgeyR2YXJzKGxpbnQpfSB7IAotICAgICAgICAgZmZfZWRpOjpzZWVkX2NvbW1hbmRzICJzZXROYW5vUm91dGVNb2RlICRhcmdzIgotICAgICAgfSBlbHNlIHsKLSAgICAgICAgIHNldE5hbm9Sb3V0ZU1vZGVPcmlnICRhcmdzCi0gICAgICB9Ci0gICB9Ci0gICBwcm9jIHNldEV4dHJhY3RSQ01vZGUgIHthcmdzfSB7Ci0gICAgICBnbG9iYWwgdmFycwotICAgICAgaWYgeyR2YXJzKGxpbnQpfSB7IAotICAgICAgICAgZmZfZWRpOjpzZWVkX2NvbW1hbmRzICJzZXRFeHRyYWN0UkNNb2RlICRhcmdzIgotICAgICAgfSBlbHNlIHsKLSAgICAgICAgIHNldEV4dHJhY3RSQ01vZGVPcmlnICRhcmdzCi0gICAgICB9Ci0gICB9Ci0gICBwcm9jIHNldFNJTW9kZSAge2FyZ3N9IHsKLSAgICAgIGdsb2JhbCB2YXJzCi0gICAgICBpZiB7JHZhcnMobGludCl9IHsgCi0gICAJICBmZl9lZGk6OnNlZWRfY29tbWFuZHMgInNldFNJTW9kZSAkYXJncyIKLSAgICAgIH0gZWxzZSB7Ci0gICAJICBzZXRTSU1vZGVPcmlnICRhcmdzCi0gICAgICB9Ci0gICB9Ci0gICAKLSAgIHByb2MgY3JlYXRlX3JjX2Nvcm5lciB7YXJnc30gewotICAgICAgZ2xvYmFsIHZhcnMKLSAgICAgIGlmIHskdmFycyhsaW50KX0geyAKLSAgICAgICAgIGZmX2VkaTo6c2VlZF9vcHRpb25zICJjcmVhdGVfcmNfY29ybmVyICRhcmdzIgotICAgICAgfSBlbHNlIHsKLSAgICAgICAgIGNyZWF0ZV9yY19jb3JuZXJfb3JpZyAkYXJncwotICAgICAgfQotICAgfQotICAgCi0gICBwcm9jIGNyZWF0ZV9saWJyYXJ5X3NldCB7YXJnc30gewotICAgICAgZ2xvYmFsIHZhcnMKLSAgICAgIGlmIHskdmFycyhsaW50KX0geyAKLSAgICAgICAgIGZmX2VkaTo6c2VlZF9vcHRpb25zICJjcmVhdGVfbGlicmFyeV9zZXQgJGFyZ3MiCi0gICAgICB9IGVsc2UgewotICAgICAgICAgY3JlYXRlX2xpYnJhcnlfc2V0X29yaWcgJGFyZ3MKLSAgICAgIH0KLSAgIH0KLSAgIAotICAgcHJvYyBjcmVhdGVfZGVsYXlfY29ybmVyIHthcmdzfSB7Ci0gICAgICBnbG9iYWwgdmFycwotICAgICAgaWYgeyR2YXJzKGxpbnQpfSB7IAotICAgICAgICAgZmZfZWRpOjpzZWVkX29wdGlvbnMgImNyZWF0ZV9kZWxheV9jb3JuZXIgJGFyZ3MiCi0gICAgICB9IGVsc2UgewotICAgICAgICAgY3JlYXRlX2RlbGF5X2Nvcm5lcl9vcmlnICRhcmdzCi0gICAgICB9Ci0gICB9Ci0gICAKLSAgIHByb2MgY3JlYXRlX2NvbnN0cmFpbnRfbW9kZSB7YXJnc30gewotICAgICAgZ2xvYmFsIHZhcnMKLSAgICAgIGlmIHskdmFycyhsaW50KX0geyAKLSAgICAgICAgIGZmX2VkaTo6c2VlZF9vcHRpb25zICJjcmVhdGVfY29uc3RyYWludF9tb2RlICRhcmdzIgotICAgICAgfSBlbHNlIHsKLSAgICAgICAgIGNyZWF0ZV9jb25zdHJhaW50X21vZGVfb3JpZyAkYXJncwotICAgICAgfQotICAgfQotICAgCi0gICBwcm9jIGNyZWF0ZV9hbmFseXNpc192aWV3IHthcmdzfSB7Ci0gICAgICBnbG9iYWwgdmFycwotICAgICAgaWYgeyR2YXJzKGxpbnQpfSB7IAotICAgICAgICAgZmZfZWRpOjpzZWVkX29wdGlvbnMgImNyZWF0ZV9hbmFseXNpc192aWV3ICRhcmdzIgotICAgICAgfSBlbHNlIHsKLSAgICAgICAgIGNyZWF0ZV9hbmFseXNpc192aWV3X29yaWcgJGFyZ3MKLSAgICAgIH0KLSAgIH0KLSAgIAotICAgcHJvYyBzZXRfYW5hbHlzaXNfdmlldyB7YXJnc30gewotICAgICAgZ2xvYmFsIHZhcnMKLSAgICAgIGlmIHskdmFycyhsaW50KX0geyAKLSAgICAgICAgIGZmX2VkaTo6c2VlZF9vcHRpb25zICJzZXRfYW5hbHlzaXNfdmlldyAkYXJncyIKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgICBzZXRfYW5hbHlzaXNfdmlld19vcmlnICRhcmdzCi0gICAgICB9Ci0gICB9Ci0gICAKLSAgIHByb2Mgc2V0X3Bvd2VyX2FuYWx5c2lzX3ZpZXcge2FyZ3N9IHsKLSAgICAgIGdsb2JhbCB2YXJzCi0gICAgICBpZiB7JHZhcnMobGludCl9IHsgCi0gICAgICAgICBmZl9lZGk6OnNlZWRfb3B0aW9ucyAic2V0X3Bvd2VyX2FuYWx5c2lzX3ZpZXcgJGFyZ3MiCi0gICAgICB9IGVsc2UgewotICAgICAgICAgc2V0X3Bvd2VyX2FuYWx5c2lzX3ZpZXcgJGFyZ3MKLSAgICAgIH0KLSAgIH0KLSAgIAotICAgbmFtZXNwYWNlIGV2YWwgZmZfZWRpIHsKLSAgIAotICAgICAgcHJvYyBzZWVkX29wdGlvbnMge2NvbW1hbmRfc3RyaW5nfSB7Ci0gICAKLSAgICAgICAgIGdsb2JhbCB2YXJzCi0gICAKLSAgICAgICAgIHNldCBjb21tYW5kIFtsaW5kZXggJGNvbW1hbmRfc3RyaW5nIDBdCi0gICAgICAgICBzZXQgYXJncyBbbHJlcGxhY2UgJGNvbW1hbmRfc3RyaW5nIDAgMF0KLSAgIAotICAgICAgICAgc3dpdGNoICRjb21tYW5kIHsKLSAgICAgICAgICAgIHNldERlc2lnbk1vZGUgewotICAgICAgICAgICAgICAgd2hpbGUge1tsbGVuZ3RoICRhcmdzXSA+IDB9IHsKLSAgICAgICAgICAgICAgICAgIHNldCBvcHRpb24gW2xpbmRleCAkYXJncyAwXQotICAgICAgICAgICAgICAgICAgc2V0IGFyZ3MgW2xyZXBsYWNlICRhcmdzIDAgMF0KLSAgICAgICAgICAgICAgICAgIHN3aXRjaCAtcmVnZXhwIC0tICRvcHRpb24gewotICAgICAgICAgICAgICAgICAgICAgcHJvY2VzcyB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBzZXQgdmFycyhwcm9jZXNzKSBbbGluZGV4ICRhcmdzIDBdCi0gICAgICAgICAgICAgICAgICAgICAgICBzZXQgYXJncyBbbHJlcGxhY2UgJGFyZ3MgMCAwXQotICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgfSAKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHNldERlbGF5Q2FsTW9kZSB7Ci0gICAgICAgICAgICAgICB3aGlsZSB7W2xsZW5ndGggJGFyZ3NdID4gMH0gewotICAgICAgICAgICAgICAgICAgc2V0IG9wdGlvbiBbbGluZGV4ICRhcmdzIDBdCi0gICAgICAgICAgICAgICAgICBzZXQgYXJncyBbbHJlcGxhY2UgJGFyZ3MgMCAwXQotICAgICAgICAgICAgICAgICAgc3dpdGNoIC1yZWdleHAgLS0gJG9wdGlvbiB7Ci0gICAgICAgICAgICAgICAgICAgICBlbmdpbmUgewotICAgICAgICAgICAgICAgICAgICAgICAgaWYge1tzdHJpbmcgdG9sb3dlciBbbGluZGV4ICRhcmdzIDBdID09ICJhYWUifSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICBzZXQgdmFycyhlbmFibGVfc2lfYXdhcmUpIHRydWUgIAotICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0IGFyZ3MgW2xyZXBsYWNlICRhcmdzIDAgMF0KLSAgICAgICAgICAgICAgICAgICAgICAgIH0gCi0gICAgICAgICAgICAgICAgICAgICAgICBpZiB7W3N0cmluZyB0b2xvd2VyIFtsaW5kZXggJGFyZ3MgMF0gPT0gInNpZ25hbHN0b3JtIn0gewotICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0IHZhcnMoZW5hYmxlX3NzKSB0cnVlICAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldCBhcmdzIFtscmVwbGFjZSAkYXJncyAwIDBdCi0gICAgICAgICAgICAgICAgICAgICAgICB9IAotICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgfSAKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHNldEFuYWx5c2lzTW9kZSB7Ci0gICAgICAgICAgICAgICB3aGlsZSB7W2xsZW5ndGggJGFyZ3NdID4gMH0gewotICAgICAgICAgICAgICAgICAgc2V0IG9wdGlvbiBbbGluZGV4ICRhcmdzIDBdCi0gICAgICAgICAgICAgICAgICBzZXQgYXJncyBbbHJlcGxhY2UgJGFyZ3MgMCAwXQotICAgICAgICAgICAgICAgICAgc3dpdGNoIC1yZWdleHAgLS0gJG9wdGlvbiB7Ci0gICAgICAgICAgICAgICAgICAgICBjcHByIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHNldCB2YXJzKGVuYWJsZV9jcHByKSBbbGluZGV4ICRhcmdzIDBdCi0gICAgICAgICAgICAgICAgICAgICAgICBzZXQgYXJncyBbbHJlcGxhY2UgJGFyZ3MgMCAwXQotICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgYW9jdiB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBzZXQgdmFycyhlbmFibGVfYW9jdikgW2xpbmRleCAkYXJncyAwXQotICAgICAgICAgICAgICAgICAgICAgICAgc2V0IGFyZ3MgW2xyZXBsYWNlICRhcmdzIDAgMF0KLSAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgIG9uQ2hpcFZhcmlhdGlvbiB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBzZXQgdmFycyhlbmFibGVfb2N2KSBbbGluZGV4ICRhcmdzIDBdCi0gICAgICAgICAgICAgICAgICAgICAgICBzZXQgYXJncyBbbHJlcGxhY2UgJGFyZ3MgMCAwXQotICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgfSAKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHNldFBsYWNlTW9kZSB7Ci0gICAgICAgICAgICAgICB3aGlsZSB7W2xsZW5ndGggJGFyZ3NdID4gMH0gewotICAgICAgICAgICAgICAgICAgc2V0IG9wdGlvbiBbbGluZGV4ICRhcmdzIDBdCi0gICAgICAgICAgICAgICAgICBzZXQgYXJncyBbbHJlcGxhY2UgJGFyZ3MgMCAwXQotICAgICAgICAgICAgICAgICAgc3dpdGNoIC1yZWdleHAgLS0gJG9wdGlvbiB7Ci0gICAgICAgICAgICAgICAgICAgICBwbGFjZUlvUGlucyB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBzZXQgdmFycyhwbGFjZV9pb19waW5zKSBbbGluZGV4ICRhcmdzIDBdCi0gICAgICAgICAgICAgICAgICAgICAgICBzZXQgYXJncyBbbHJlcGxhY2UgJGFyZ3MgMCAwXQotICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgY29uZ0VmZm9ydCB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBzZXQgdmFycyhjb25nZXN0aW9uX2VmZm9ydCkgW2xpbmRleCAkYXJncyAwXQotICAgICAgICAgICAgICAgICAgICAgICAgc2V0IGFyZ3MgW2xyZXBsYWNlICRhcmdzIDAgMF0KLSAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIH0gCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBzZXRPcHRNb2RlIHsKLSAgICAgICAgICAgICAgIHdoaWxlIHtbbGxlbmd0aCAkYXJnc10gPiAwfSB7Ci0gICAgICAgICAgICAgICAgICBzZXQgb3B0aW9uIFtsaW5kZXggJGFyZ3MgMF0KLSAgICAgICAgICAgICAgICAgIHNldCBhcmdzIFtscmVwbGFjZSAkYXJncyAwIDBdCi0gICAgICAgICAgICAgICAgICBzd2l0Y2ggLXJlZ2V4cCAtLSAkb3B0aW9uIHsKLSAgICAgICAgICAgICAgICAgICAgIGFsbEVuZFBvaW50cyB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBzZXQgdmFycyhhbGxfZW5kX3BvaW50cykgW2xpbmRleCAkYXJncyAwXQotICAgICAgICAgICAgICAgICAgICAgICAgc2V0IGFyZ3MgW2xyZXBsYWNlICRhcmdzIDAgMF0KLSAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgIHByZXNlcnZlQXNzc2VydGlvbnMgewotICAgICAgICAgICAgICAgICAgICAgICAgc2V0IHZhcnMocHJlc2VydmVfYXNzZXJ0aW9ucykgW2xpbmRleCAkYXJncyAwXQotICAgICAgICAgICAgICAgICAgICAgICAgc2V0IGFyZ3MgW2xyZXBsYWNlICRhcmdzIDAgMF0KLSAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgIGxlYWthZ2VQb3dlckVmZm9ydCB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBzZXQgdmFycyhsZWFrYWdlX3Bvd2VyX2VmZm9ydCkgW2xpbmRleCAkYXJncyAwXQotICAgICAgICAgICAgICAgICAgICAgICAgc2V0IGFyZ3MgW2xyZXBsYWNlICRhcmdzIDAgMF0KLSAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgIGR5bmFtaWNQb3dlckVmZm9ydCB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBzZXQgdmFycyhsZWFrYWdlX3Bvd2VyX2VmZm9ydCkgW2xpbmRleCAkYXJncyAwXQotICAgICAgICAgICAgICAgICAgICAgICAgc2V0IGFyZ3MgW2xyZXBsYWNlICRhcmdzIDAgMF0KLSAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIH0gCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBzZXRDVFNNb2RlIHsKLSAgICAgICAgICAgICAgIHdoaWxlIHtbbGxlbmd0aCAkYXJnc10gPiAwfSB7Ci0gICAgICAgICAgICAgICAgICBzZXQgb3B0aW9uIFtsaW5kZXggJGFyZ3MgMF0KLSAgICAgICAgICAgICAgICAgIHNldCBhcmdzIFtscmVwbGFjZSAkYXJncyAwIDBdCi0gICAgICAgICAgICAgICAgICBzd2l0Y2ggLXJlZ2V4cCAtLSAkb3B0aW9uIHsKLSAgICAgICAgICAgICAgICAgICAgIHJvdXRlQ2xrTmV0cyB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBzZXQgdmFycyhyb3V0ZV9jbG9ja19uZXRzKSBbbGluZGV4ICRhcmdzIDBdCi0gICAgICAgICAgICAgICAgICAgICAgICBzZXQgYXJncyBbbHJlcGxhY2UgJGFyZ3MgMCAwXQotICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgfSAKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHNldE5hbm9Sb3V0ZU1vZGUgewotICAgICAgICAgICAgICAgd2hpbGUge1tsbGVuZ3RoICRhcmdzXSA+IDB9IHsKLSAgICAgICAgICAgICAgICAgIHNldCBvcHRpb24gW2xpbmRleCAkYXJncyAwXQotICAgICAgICAgICAgICAgICAgc2V0IGFyZ3MgW2xyZXBsYWNlICRhcmdzIDAgMF0KLSAgICAgICAgICAgICAgICAgIHN3aXRjaCAtcmVnZXhwIC0tICRvcHRpb24gewotICAgICAgICAgICAgICAgICAgICAgZHJvdXRlTXVsdGlDdXRWaWFFZmZvcnQgewotICAgICAgICAgICAgICAgICAgICAgICAgc2V0IHZhcnMobXVsdGlfY3V0X2VmZm9ydCkgW2xpbmRleCAkYXJncyAwXQotICAgICAgICAgICAgICAgICAgICAgICAgc2V0IGFyZ3MgW2xyZXBsYWNlICRhcmdzIDAgMF0KLSAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIH0gCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBjcmVhdGVfcmNfY29ybmVyIHsKLSAgICAgICAgICAgICAgIHdoaWxlIHtbbGxlbmd0aCAkYXJnc10gPiAwfSB7Ci0gICAgICAgICAgICAgICAgICBzZXQgb3B0aW9uIFtsaW5kZXggJGFyZ3MgMF0KLSAgICAgICAgICAgICAgICAgIHNldCBhcmdzIFtscmVwbGFjZSAkYXJncyAwIDBdCi0gICAgICAgICAgICAgICAgICBzd2l0Y2ggLXJlZ2V4cCAtLSAkb3B0aW9uIHsKLSAgICAgICAgICAgICAgICAgICAgIC1uYW1lIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHNldCByY19jb3JuZXIgW2xpbmRleCAkYXJncyAwXQotICAgICAgICAgICAgICAgICAgICAgICAgUHV0cyAiPEZGPiAuLi4gRm91bmQgcmMgY29ybmVyICRyY19jb3JuZXIiIAotICAgICAgICAgICAgICAgICAgICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycyhyY19jb3JuZXJzKV19IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldCB2YXJzKHJjX2Nvcm5lcnMpIFtsaXN0ICRyY19jb3JuZXJdCi0gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYge1tsc2VhcmNoICR2YXJzKHJjX2Nvcm5lcnMpICRyY19jb3JuZXJdID09IC0xfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXBwZW5kIHZhcnMocmNfY29ybmVycykgJHJjX2Nvcm5lcgotICAgICAgICAgICAgICAgICAgICAgICAgICAgfSAgCi0gICAgICAgICAgICAgICAgICAgICAgICB9ICAKLSAgICAgICAgICAgICAgICAgICAgICAgIHNldCBhcmdzIFtscmVwbGFjZSAkYXJncyAwIDBdCi0gICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAtVCB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBzZXQgdmFycygkcmNfY29ybmVyLFQpIFtsaW5kZXggJGFyZ3MgMF0KLSAgICAgICAgICAgICAgICAgICAgICAgIHNldCBhcmdzIFtscmVwbGFjZSAkYXJncyAwIDBdCi0gICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAtY2FwX3RhYmxlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHNldCB2YXJzKCRyY19jb3JuZXIsY2FwX3RhYmxlKSBbbGluZGV4ICRhcmdzIDBdCi0gICAgICAgICAgICAgICAgICAgICAgICBzZXQgYXJncyBbbHJlcGxhY2UgJGFyZ3MgMCAwXQotICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgLWF0Zl90YWJsZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBzZXQgdmFycygkcmNfY29ybmVyLGF0Zl90YWJsZSkgW2xpbmRleCAkYXJncyAwXQotICAgICAgICAgICAgICAgICAgICAgICAgc2V0IGFyZ3MgW2xyZXBsYWNlICRhcmdzIDAgMF0KLSAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgIC1xeF90ZWNoX2ZpbGUgewotICAgICAgICAgICAgICAgICAgICAgICAgc2V0IHZhcnMoJHJjX2Nvcm5lcixxeF90ZWNoX2ZpbGUpIFtsaW5kZXggJGFyZ3MgMF0KLSAgICAgICAgICAgICAgICAgICAgICAgIHNldCBhcmdzIFtscmVwbGFjZSAkYXJncyAwIDBdCi0gICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAtcHJlUm91dGVfcmVzIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICBzZXQgdmFycygkcmNfY29ybmVyLHByZV9yb3V0ZV9yZXNfZmFjdG9yKSBbbGluZGV4ICRhcmdzIDBdCi0gICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgLXByZVJvdXRlX2NhcCB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgc2V0IHZhcnMoJHJjX2Nvcm5lcixwcmVfcm91dGVfY2FwX2ZhY3RvcikgW2xpbmRleCAkYXJncyAwXQotICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgIC1wcmVSb3V0ZV9jbGtyZXMgewotICAgICAgICAgICAgICAgICAgICAgICAgIHNldCB2YXJzKCRyY19jb3JuZXIscHJlX3JvdXRlX2Nsa19yZXNfZmFjdG9yKSBbbGluZGV4ICRhcmdzIDBdCi0gICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgLXByZVJvdXRlX2Nsa2NhcCB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgc2V0IHZhcnMoJHJjX2Nvcm5lcixwcmVfcm91dGVfY2xrX2NhcF9mYWN0b3IpIFtsaW5kZXggJGFyZ3MgMF0KLSAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAtcG9zdFJvdXRlX3JlcyB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgc2V0IHZhcnMoJHJjX2Nvcm5lcixwb3N0X3JvdXRlX3Jlc19mYWN0b3IpIFtsaW5kZXggJGFyZ3MgMF0KLSAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAtcG9zdFJvdXRlX2NhcCB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgc2V0IHZhcnMoJHJjX2Nvcm5lcixwb3N0X3JvdXRlX2NhcF9mYWN0b3IpIFtsaW5kZXggJGFyZ3MgMF0KLSAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAtcG9zdFJvdXRlX3JlcyB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgc2V0IHZhcnMoJHJjX2Nvcm5lcixwb3N0X3JvdXRlX2Nsa19yZXNfZmFjdG9yKSBbbGluZGV4ICRhcmdzIDBdCi0gICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgLXBvc3RSb3V0ZV9jbGtjYXAgewotICAgICAgICAgICAgICAgICAgICAgICAgIHNldCB2YXJzKCRyY19jb3JuZXIscG9zdF9yb3V0ZV9jbGtfY2FwX2ZhY3RvcikgW2xpbmRleCAkYXJncyAwXQotICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgIC1wb3N0Um91dGVfY2xrcmVzIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICBzZXQgdmFycygkcmNfY29ybmVyLHBvc3Rfcm91dGVfY2xrX3Jlc19mYWN0b3IpIFtsaW5kZXggJGFyZ3MgMF0KLSAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAtcG9zdFJvdXRlX3hjYXAgewotICAgICAgICAgICAgICAgICAgICAgICAgIHNldCB2YXJzKCRyY19jb3JuZXIscG9zdF9yb3V0ZV94Y2FwX2ZhY3RvcikgW2xpbmRleCAkYXJncyAwXQotICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIH0gCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBjcmVhdGVfbGlicmFyeV9zZXQgewotICAgICAgICAgICAgICAgd2hpbGUge1tsbGVuZ3RoICRhcmdzXSA+IDB9IHsKLSAgICAgICAgICAgICAgICAgIHNldCBvcHRpb24gW2xpbmRleCAkYXJncyAwXQotICAgICAgICAgICAgICAgICAgc2V0IGFyZ3MgW2xyZXBsYWNlICRhcmdzIDAgMF0KLSAgICAgICAgICAgICAgICAgIHN3aXRjaCAtcmVnZXhwIC0tICRvcHRpb24gewotICAgICAgICAgICAgICAgICAgICAgLW5hbWUgewotICAgICAgICAgICAgICAgICAgICAgICAgc2V0IGxpYnJhcnlfc2V0IFtsaW5kZXggJGFyZ3MgMF0KLSAgICAgICAgICAgICAgICAgICAgICAgIFB1dHMgIjxGRj4gLi4uIEZvdW5kIGxpYnJhcnkgc2V0ICRsaWJyYXJ5X3NldCIgCi0gICAgICAgICAgICAgICAgICAgICAgICBpZiB7IVtpbmZvIGV4aXN0cyB2YXJzKGxpYnJhcnlfc2V0cyldfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICBzZXQgdmFycyhsaWJyYXJ5X3NldHMpIFtsaXN0ICRsaWJyYXJ5X3NldF0KLSAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICBpZiB7W2xzZWFyY2ggJHZhcnMobGlicmFyeV9zZXRzKSAkbGlicmFyeV9zZXRdID09IC0xfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXBwZW5kIHZhcnMobGlicmFyeV9zZXRzKSAkbGlicmFyeV9zZXQKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gIAotICAgICAgICAgICAgICAgICAgICAgICAgfSAgCi0gICAgICAgICAgICAgICAgICAgICAgICBzZXQgYXJncyBbbHJlcGxhY2UgJGFyZ3MgMCAwXQotICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgLXRpbWluZyB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBzZXQgdmFycygkbGlicmFyeV9zZXQsdGltaW5nKSBbbGluZGV4ICRhcmdzIDBdCi0gICAgICAgICAgICAgICAgICAgICAgICBzZXQgYXJncyBbbHJlcGxhY2UgJGFyZ3MgMCAwXQotICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgfSAKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGNyZWF0ZV9kZWxheV9jb3JuZXIgewotICAgICAgICAgICAgICAgd2hpbGUge1tsbGVuZ3RoICRhcmdzXSA+IDB9IHsKLSAgICAgICAgICAgICAgICAgIHNldCBvcHRpb24gW2xpbmRleCAkYXJncyAwXQotICAgICAgICAgICAgICAgICAgc2V0IGFyZ3MgW2xyZXBsYWNlICRhcmdzIDAgMF0KLSAgICAgICAgICAgICAgICAgIHN3aXRjaCAtcmVnZXhwIC0tICRvcHRpb24gewotICAgICAgICAgICAgICAgICAgICAgLW5hbWUgewotICAgICAgICAgICAgICAgICAgICAgICAgc2V0IGRlbGF5X2Nvcm5lciBbbGluZGV4ICRhcmdzIDBdCi0gICAgICAgICAgICAgICAgICAgICAgICBQdXRzICI8RkY+IC4uLiBGb3VuZCBkZWxheSBjb3JuZXIgJGRlbGF5X2Nvcm5lciIgCi0gICAgICAgICAgICAgICAgICAgICAgICBpZiB7IVtpbmZvIGV4aXN0cyB2YXJzKGRlbGF5X2Nvcm5lcnMpXX0gewotICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0IHZhcnMoZGVsYXlfY29ybmVycykgJGRlbGF5X2Nvcm5lcgotICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIHtbbHNlYXJjaCAkdmFycyhkZWxheV9jb3JuZXJzKSAkZGVsYXlfY29ybmVyXSA9PSAtMX0gewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFwcGVuZCB2YXJzKGRlbGF5X2Nvcm5lcnMpIFtsaXN0ICRkZWxheV9jb3JuZXJdCi0gICAgICAgICAgICAgICAgICAgICAgICAgICB9ICAKLSAgICAgICAgICAgICAgICAgICAgICAgIH0gIAotICAgICAgICAgICAgICAgICAgICAgICAgc2V0IGFyZ3MgW2xyZXBsYWNlICRhcmdzIDAgMF0KLSAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgIC1saWJyYXJ5X3NldCB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBzZXQgdmFycygkZGVsYXlfY29ybmVyLGxpYnJhcnlfc2V0KSBbbGluZGV4ICRhcmdzIDBdCi0gICAgICAgICAgICAgICAgICAgICAgICBzZXQgYXJncyBbbHJlcGxhY2UgJGFyZ3MgMCAwXQotICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgLXJjX2Nvcm5lciB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBzZXQgdmFycygkZGVsYXlfY29ybmVyLHJjX2Nvcm5lcikgW2xpbmRleCAkYXJncyAwXQotICAgICAgICAgICAgICAgICAgICAgICAgc2V0IGFyZ3MgW2xyZXBsYWNlICRhcmdzIDAgMF0KLSAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIH0gCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBjcmVhdGVfY29uc3RyYWludF9tb2RlIHsKLSAgICAgICAgICAgICAgIHdoaWxlIHtbbGxlbmd0aCAkYXJnc10gPiAwfSB7Ci0gICAgICAgICAgICAgICAgICBzZXQgb3B0aW9uIFtsaW5kZXggJGFyZ3MgMF0KLSAgICAgICAgICAgICAgICAgIHNldCBhcmdzIFtscmVwbGFjZSAkYXJncyAwIDBdCi0gICAgICAgICAgICAgICAgICBzd2l0Y2ggLXJlZ2V4cCAtLSAkb3B0aW9uIHsKLSAgICAgICAgICAgICAgICAgICAgIC1uYW1lIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHNldCBjb25zdHJhaW50X21vZGUgW2xpbmRleCAkYXJncyAwXQotICAgICAgICAgICAgICAgICAgICAgICAgUHV0cyAiPEZGPiAuLi4gRm91bmQgY29uc3RyYWludCBtb2RlICRjb25zdHJhaW50X21vZGUiIAotICAgICAgICAgICAgICAgICAgICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycyhjb25zdHJhaW50X21vZGVzKV19IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldCB2YXJzKGNvbnN0cmFpbnRfbW9kZXMpIFtsaXN0ICRjb25zdHJhaW50X21vZGVdCi0gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYge1tsc2VhcmNoICR2YXJzKGNvbnN0cmFpbnRfbW9kZXMpICRjb25zdHJhaW50X21vZGVdID09IC0xfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXBwZW5kIHZhcnMoY29uc3RyYWludF9tb2RlcykgJGNvbnN0cmFpbnRfbW9kZQotICAgICAgICAgICAgICAgICAgICAgICAgICAgfSAgCi0gICAgICAgICAgICAgICAgICAgICAgICB9ICAKLSAgICAgICAgICAgICAgICAgICAgICAgIHNldCBhcmdzIFtscmVwbGFjZSAkYXJncyAwIDBdCi0gICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAtc2RjX2ZpbGVzIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHNldCB2YXJzKCRjb25zdHJhaW50X21vZGUsc2RjX2ZpbGVzKSBbbGluZGV4ICRhcmdzIDBdCi0gICAgICAgICAgICAgICAgICAgICAgICBzZXQgdmFycygkY29uc3RyYWludF9tb2RlLHByZV9jdHNfc2RjKSBbbGluZGV4ICRhcmdzIDBdCi0gICAgICAgICAgICAgICAgICAgICAgICBzZXQgYXJncyBbbHJlcGxhY2UgJGFyZ3MgMCAwXQotICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgLWlsbV9zZGNfZmlsZXMgewotICAgICAgICAgICAgICAgICAgICAgICAgc2V0IHZhcnMoJGNvbnN0cmFpbnRfbW9kZSxpbG1fc2RjX2ZpbGVzKSBbbGluZGV4ICRhcmdzIDBdCi0gICAgICAgICAgICAgICAgICAgICAgICBzZXQgYXJncyBbbHJlcGxhY2UgJGFyZ3MgMCAwXQotICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgfSAKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGNyZWF0ZV9hbmFseXNpc192aWV3IHsKLSAgICAgICAgICAgICAgIHdoaWxlIHtbbGxlbmd0aCAkYXJnc10gPiAwfSB7Ci0gICAgICAgICAgICAgICAgICBzZXQgb3B0aW9uIFtsaW5kZXggJGFyZ3MgMF0KLSAgICAgICAgICAgICAgICAgIHNldCBhcmdzIFtscmVwbGFjZSAkYXJncyAwIDBdCi0gICAgICAgICAgICAgICAgICBzd2l0Y2ggLXJlZ2V4cCAtLSAkb3B0aW9uIHsKLSAgICAgICAgICAgICAgICAgICAgIC1uYW1lIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHNldCBhbmFseXNpc192aWV3IFtsaW5kZXggJGFyZ3MgMF0KLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIHshW2luZm8gZXhpc3RzIHZhcnMoYW5hbHlzaXNfdmlld3MpXX0gewotICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0IHZhcnMoYW5hbHlzaXNfdmlld3MpIFtsaXN0ICRhbmFseXNpc192aWV3XQotICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIHtbbHNlYXJjaCAkdmFycyhhbmFseXNpc192aWV3cykgJGFuYWx5c2lzX3ZpZXddID09IC0xfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXBwZW5kIHZhcnMoYW5hbHlzaXNfdmlld3MpICRhbmFseXNpc192aWV3Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICB9ICAKLSAgICAgICAgICAgICAgICAgICAgICAgIH0gIAotICAgICAgICAgICAgICAgICAgICAgICAgc2V0IGFyZ3MgW2xyZXBsYWNlICRhcmdzIDAgMF0KLSAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgIC1jb25zdHJhaW50X21vZGUgewotICAgICAgICAgICAgICAgICAgICAgICAgc2V0IHZhcnMoJGFuYWx5c2lzX3ZpZXcsY29uc3RyYWludF9tb2RlKSBbbGluZGV4ICRhcmdzIDBdCi0gICAgICAgICAgICAgICAgICAgICAgICBzZXQgYXJncyBbbHJlcGxhY2UgJGFyZ3MgMCAwXQotICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgLWRlbGF5X2Nvcm5lciB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBzZXQgdmFycygkYW5hbHlzaXNfdmlldyxkZWxheV9jb3JuZXIpIFtsaW5kZXggJGFyZ3MgMF0KLSAgICAgICAgICAgICAgICAgICAgICAgIHNldCBhcmdzIFtscmVwbGFjZSAkYXJncyAwIDBdCi0gICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICB9IAotICAgICAgICAgICAgfQotICAgICAgICAgICAgc2V0X2FuYWx5c2lzX3ZpZXcgewotICAgICAgICAgICAgICAgd2hpbGUge1tsbGVuZ3RoICRhcmdzXSA+IDB9IHsKLSAgICAgICAgICAgICAgICAgIHNldCBvcHRpb24gW2xpbmRleCAkYXJncyAwXQotICAgICAgICAgICAgICAgICAgc2V0IGFyZ3MgW2xyZXBsYWNlICRhcmdzIDAgMF0KLSAgICAgICAgICAgICAgICAgIHN3aXRjaCAtcmVnZXhwIC0tICRvcHRpb24gewotICAgICAgICAgICAgICAgICAgICAgLXNldHVwIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHNldCB2YXJzKHNldHVwX2FuYWx5c2lzX3ZpZXdzKSBbbGluZGV4ICRhcmdzIDBdCi0gICAgICAgICAgICAgICAgICAgICAgICBzZXQgYXJncyBbbHJlcGxhY2UgJGFyZ3MgMCAwXQotICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgLWhvbGQgewotICAgICAgICAgICAgICAgICAgICAgICAgc2V0IHZhcnMoaG9sZF9hbmFseXNpc192aWV3cykgW2xpbmRleCAkYXJncyAwXQotICAgICAgICAgICAgICAgICAgICAgICAgc2V0IGFyZ3MgW2xyZXBsYWNlICRhcmdzIDAgMF0KLSAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIH0gCi0gICAgICAgICAgICAgICBpZiB7IVtpbmZvIGV4aXN0cyB2YXJzKGFjdGl2ZV9zZXR1cF92aWV3cyldfSB7Ci0gICAgICAgICAgICAgICAgICBzZXQgdmFycyhhY3RpdmVfc2V0dXBfdmlld3MpICR2YXJzKHNldHVwX2FuYWx5c2lzX3ZpZXdzKQotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycyhhY3RpdmVfaG9sZF92aWV3cyldfSB7Ci0gICAgICAgICAgICAgICAgICBzZXQgdmFycyhhY3RpdmVfaG9sZF92aWV3cykgJHZhcnMoaG9sZF9hbmFseXNpc192aWV3cykKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIGlmIHshW2luZm8gZXhpc3RzIHZhcnMoZGVmYXVsdF9zZXR1cF92aWV3KV19IHsKLSAgICAgICAgICAgICAgICAgIHNldCB2YXJzKGRlZmF1bHRfc2V0dXBfdmlldykgW2xpbmRleCAkdmFycyhzZXR1cF9hbmFseXNpc192aWV3cykgMF0KLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0KLSAgICAgIH0KLSAgIAotICAgICAgcHJvYyBzZWVkX2NvbW1hbmRzIHtjb21tYW5kX3N0cmluZ30gewotICAgCi0gICAgICAgICBnbG9iYWwgdmFycwotICAgCi0gICAgICAgICBzZXQgY29tbWFuZCBbbGluZGV4ICRjb21tYW5kX3N0cmluZyAwXQotICAgICAgICAgc2V0IGFyZ3MgW2xyZXBsYWNlICRjb21tYW5kX3N0cmluZyAwIDBdCi0gICAKLSAgICAgICAgIFB1dHMgIjxGRj4gUHJvY2Vzc2luZyBtb2RlIGNvbW1hbmRzICRjb21tYW5kIC4uLiIgCi0gICAKLSAgICAgICAgIHN3aXRjaCAkY29tbWFuZCB7Ci0gICAgICAgICAgICBzZXREZXNpZ25Nb2RlIHsKLSAgICAgICAgICAgICAgIHNldCB2YXJzKHNldF9kZXNpZ25fbW9kZSkgJGNvbW1hbmRfc3RyaW5nCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBzZXREZWxheUNhbE1vZGUgewotICAgICAgICAgICAgICAgc2V0IHZhcnMoc2V0X2RlbGF5X2NhbF9tb2RlKSAkY29tbWFuZF9zdHJpbmcKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHNldEFuYWx5c2lzTW9kZSB7Ci0gICAgICAgICAgICAgICBzZXQgdmFycyhzZXRfYW5hbHlzaXNfbW9kZSkgJGNvbW1hbmRfc3RyaW5nCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBzZXRUaWVIaUxvTW9kZSB7Ci0gICAgICAgICAgICAgICBzZXQgdmFycyhzZXRfdGllaGlsb19tb2RlKSAkY29tbWFuZF9zdHJpbmcKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHNldFBsYWNlTW9kZSB7Ci0gICAgICAgICAgICAgICBzZXQgdmFycyhzZXRfcGxhY2VfbW9kZSkgJGNvbW1hbmRfc3RyaW5nCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBzZXREZWxheUNhbE1vZGUgewotICAgICAgICAgICAgICAgc2V0IHZhcnMoc2V0X2RlbGF5X2NhbF9tb2RlKSAkY29tbWFuZF9zdHJpbmcKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHNldE9wdE1vZGUgewotICAgICAgICAgICAgICAgc2V0IHZhcnMoc2V0X29wdF9tb2RlKSAkY29tbWFuZF9zdHJpbmcKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHNldENUU01vZGUgewotICAgICAgICAgICAgICAgc2V0IHZhcnMoc2V0X2N0c19tb2RlKSAkY29tbWFuZF9zdHJpbmcKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHNldENDT3B0TW9kZSB7Ci0gICAgICAgICAgICAgICBzZXQgdmFycyhzZXRfY2NvcHRfbW9kZSkgJGNvbW1hbmRfc3RyaW5nCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBzZXRGaWxsZXJNb2RlIHsKLSAgICAgICAgICAgICAgIHNldCB2YXJzKHNldF9maWxsZXJfbW9kZSkgJGNvbW1hbmRfc3RyaW5nCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBzZXROYW5vUm91dGVNb2RlIHsKLSAgICAgICAgICAgICAgIHNldCB2YXJzKHNldF9yb3V0ZV9tb2RlKSAkY29tbWFuZF9zdHJpbmcKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHNldEV4dHJhY3RSQ01vZGUgewotICAgICAgICAgICAgICAgc2V0IHZhcnMoc2V0X2V4dHJhY3RfcmNfbW9kZSkgJGNvbW1hbmRfc3RyaW5nCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBzZXRTSU1vZGUgewotICAgICAgICAgICAgICAgc2V0IHZhcnMoc2V0X3NpX21vZGUpICRjb21tYW5kX3N0cmluZwotICAgICAgICAgICAgfQotICAgICAgICAgfQotICAgICAgfQotICAgfQotfQotcHJvYyBzZXRGbG93TW9kZSB7YXJnc30gewotICAgZ2xvYmFsIHZhcnMKLSAgIHdoaWxlIHtbbGxlbmd0aCAkYXJnc10gPiAwfSB7Ci0gICAgICBzZXQgb3B0aW9uIFtsaW5kZXggJGFyZ3MgMF0KLSAgICAgIHNldCBhcmdzIFtscmVwbGFjZSAkYXJncyAwIDBdCi0gICAgICBzd2l0Y2ggLXJlZ2V4cCAtLSAkb3B0aW9uIHsKLSAgICAgICAgIGxvZ19kaXIgewotICAgICAgICAgICAgc2V0IHZhcnMobG9nX2RpcikgW2xpbmRleCAkYXJncyAwXQotICAgICAgICAgICAgc2V0IGFyZ3MgW2xyZXBsYWNlICRhcmdzIDAgMF0KLSAgICAgICAgICAgIFB1dHMgIjxGRj4gLi4uIFNldHRpbmcgbG9nIGRpcmVjdG9yeSB0byAkdmFycyhsb2dfZGlyKSIKLSAgICAgICAgIH0KLSAgICAgICAgIHJwdF9kaXIgewotICAgICAgICAgICAgc2V0IHZhcnMocnB0X2RpcikgW2xpbmRleCAkYXJncyAwXQotICAgICAgICAgICAgc2V0IGFyZ3MgW2xyZXBsYWNlICRhcmdzIDAgMF0KLSAgICAgICAgICAgIFB1dHMgIjxGRj4gLi4uIFNldHRpbmcgcmVwb3J0IGRpcmVjdG9yeSB0byAkdmFycyhycHRfZGlyKSIKLSAgICAgICAgIH0KLSAgICAgICAgIGRic19kaXIgewotICAgICAgICAgICAgc2V0IHZhcnMoZGJzX2RpcikgW2xpbmRleCAkYXJncyAwXQotICAgICAgICAgICAgc2V0IGFyZ3MgW2xyZXBsYWNlICRhcmdzIDAgMF0KLSAgICAgICAgICAgIFB1dHMgIjxGRj4gLi4uIFNldHRpbmcgZGJzIGRpcmVjdG9yeSB0byAkdmFycyhkYnNfZGlyKSIKLSAgICAgICAgIH0KLSAgICAgICAgIGNwZl90aW1pbmcgewotICAgICAgICAgICAgc2V0IHZhcnMoY3BmX3RpbWluZykgW2xpbmRleCAkYXJncyAwXQotICAgICAgICAgICAgc2V0IGFyZ3MgW2xyZXBsYWNlICRhcmdzIDAgMF0KLSAgICAgICAgIH0KLSAgICAgICAgIGN0c19lbmdpbmUgewotICAgICAgICAgICAgc2V0IHZhcnMoY3RzX2VuZ2luZSkgW2xpbmRleCAkYXJncyAwXQotICAgICAgICAgICAgc2V0IGFyZ3MgW2xyZXBsYWNlICRhcmdzIDAgMF0KLSAgICAgICAgIH0KLSAgICAgICAgIGVuYWJsZV9jZWx0aWNfc3RlcHMgewotICAgICAgICAgICAgc2V0IHZhcnMoZW5hYmxlX2NlbHRpY19zdGVwcykgW2xpbmRleCAkYXJncyAwXQotICAgICAgICAgICAgc2V0IGFyZ3MgW2xyZXBsYWNlICRhcmdzIDAgMF0KLSAgICAgICAgIH0KLSAgICAgICAgIGVuYWJsZV9kbG0gewotICAgICAgICAgICAgc2V0IHZhcnMoZW5hYmxlX2RsbSkgW2xpbmRleCAkYXJncyAwXQotICAgICAgICAgICAgc2V0IGFyZ3MgW2xyZXBsYWNlICRhcmdzIDAgMF0KLSAgICAgICAgIH0KLSAgICAgICAgIGZpeF9ob2xkIHsKLSAgICAgICAgICAgIHNldCB2YXJzKGZpeF9ob2xkKSBbbGluZGV4ICRhcmdzIDBdCi0gICAgICAgICAgICBzZXQgYXJncyBbbHJlcGxhY2UgJGFyZ3MgMCAwXQotICAgICAgICAgfQotICAgICAgICAgZml4X2xpdGhvIHsKLSAgICAgICAgICAgIHNldCB2YXJzKGZpeF9saXRobykgW2xpbmRleCAkYXJncyAwXQotICAgICAgICAgICAgc2V0IGFyZ3MgW2xyZXBsYWNlICRhcmdzIDAgMF0KLSAgICAgICAgIH0KLSAgICAgICAgIG1vZGUgewotICAgICAgICAgICAgc2V0IHZhcnMobW9kZSkgW2xpbmRleCAkYXJncyAwXQotICAgICAgICAgICAgc2V0IGFyZ3MgW2xyZXBsYWNlICRhcmdzIDAgMF0KLSAgICAgICAgIH0KLSAgICAgICAgIHNhdmVfY29uc3RyYWludHMgewotICAgICAgICAgICAgc2V0IHZhcnMoc2F2ZV9jb25zdHJhaW50cykgW2xpbmRleCAkYXJncyAwXQotICAgICAgICAgICAgc2V0IGFyZ3MgW2xyZXBsYWNlICRhcmdzIDAgMF0KLSAgICAgICAgIH0KLSAgICAgICAgIHNhdmVfcmMgewotICAgICAgICAgICAgc2V0IHZhcnMoc2F2ZV9yYykgW2xpbmRleCAkYXJncyAwXQotICAgICAgICAgICAgc2V0IGFyZ3MgW2xyZXBsYWNlICRhcmdzIDAgMF0KLSAgICAgICAgIH0KLSAgICAgICAgIHNraXBfY3RzIHsKLSAgICAgICAgICAgIHNldCB2YXJzKHNraXBfY3RzKSBbbGluZGV4ICRhcmdzIDBdCi0gICAgICAgICAgICBzZXQgYXJncyBbbHJlcGxhY2UgJGFyZ3MgMCAwXQotICAgICAgICAgfQotICAgICAgICAgc2tpcF9zaWdub2ZmX2NoZWNrcyB7Ci0gICAgICAgICAgICBzZXQgdmFycyhza2lwX3NpZ25vZmZfY2hlY2tzKSBbbGluZGV4ICRhcmdzIDBdCi0gICAgICAgICAgICBzZXQgYXJncyBbbHJlcGxhY2UgJGFyZ3MgMCAwXQotICAgICAgICAgfQotICAgICAgICAgc3RlcHMgewotICAgICAgICAgICAgc2V0IHN0ZXBzIFtsaW5kZXggJGFyZ3MgMF0KLSAgICAgICAgICAgIHNldCBhcmdzIFtscmVwbGFjZSAkYXJncyAwIDBdCi0gICAgICAgICB9Ci0gICAgICB9Ci0gICB9Ci0gICBpZiB7W3N0cmluZyB0b2xvd2VyICR2YXJzKG1vZGUpXSA9PSAidXNlciJ9IHsKLSAgICAgIGlmIHtbaW5mbyBleGlzdHMgc3RlcHNdfSB7Ci0gICAgICAgICBzZXQgdmFycyhzdGVwcykgJHN0ZXBzCi0gICAgICB9Ci0gICB9Ci19CmRpZmYgLS1naXQgYS9mbG93L3Buci9TQ1JJUFRTL0VUQy9JTk5PVlVTL3VkbS50Y2wgYi9mbG93L3Buci9TQ1JJUFRTL0VUQy9JTk5PVlVTL3VkbS50Y2wKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDU3MDNlN2YuLjAwMDAwMDAKLS0tIGEvZmxvdy9wbnIvU0NSSVBUUy9FVEMvSU5OT1ZVUy91ZG0udGNsCisrKyAvZGV2L251bGwKQEAgLTEsMTU5ICswLDAgQEAKLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSMgICAgICAgICAgICAgICAgICAgICAgIENBREVOQ0UgQ09QWVJJR0hUIE5PVElDRQotIyAgICAgICAgIKkgMjAwOC0yMDEzIENhZGVuY2UgRGVzaWduIFN5c3RlbXMsIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSMKLSMgVGhpcyBGb3VuZGF0aW9uIEZsb3cgaXMgcHJvdmlkZWQgYXMgYW4gZXhhbXBsZSBvZiBob3cgdG8gcGVyZm9ybSBzcGVjaWFsaXplZAotIyB0YXNrcy4KLSMKLSMgVGhpcyB3b3JrIG1heSBub3QgYmUgY29waWVkLCByZS1wdWJsaXNoZWQsIHVwbG9hZGVkLCBvciBkaXN0cmlidXRlZCBpbiBhbnkgd2F5LAotIyBpbiBhbnkgbWVkaXVtLCB3aGV0aGVyIGluIHdob2xlIG9yIGluIHBhcnQsIHdpdGhvdXQgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uCi0jIGZyb20gQ2FkZW5jZS4gTm90d2l0aHN0YW5kaW5nIGFueSByZXN0cmljdGlvbnMgaGVyZWluLCBzdWJqZWN0IHRvIGNvbXBsaWFuY2UKLSMgd2l0aCB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgdGhlIENhZGVuY2Ugc29mdHdhcmUgbGljZW5zZSBhZ3JlZW1lbnQgdW5kZXIKLSMgd2hpY2ggdGhpcyBtYXRlcmlhbCB3YXMgcHJvdmlkZWQsIHRoaXMgbWF0ZXJpYWwgbWF5IGJlIGNvcGllZCBhbmQgaW50ZXJuYWxseQotIyBkaXN0cmlidXRlZCBzb2xlbHkgZm9yIGludGVybmFsIHB1cnBvc2VzIGZvciB1c2Ugd2l0aCBDYWRlbmNlIHRvb2xzLgotIwotIyBUaGlzIHdvcmsgaXMgQ2FkZW5jZSBpbnRlbGxlY3R1YWwgcHJvcGVydHkgYW5kIG1heSB1bmRlciBubyBjaXJjdW1zdGFuY2VzIGJlCi0jIGdpdmVuIHRvIHRoaXJkIHBhcnRpZXMsIG5laXRoZXIgaW4gb3JpZ2luYWwgbm9yIGluIG1vZGlmaWVkIHZlcnNpb25zLCB3aXRob3V0Ci0jIGV4cGxpY2l0IHdyaXR0ZW4gcGVybWlzc2lvbiBmcm9tIENhZGVuY2UuIFRoZSBpbmZvcm1hdGlvbiBjb250YWluZWQgaGVyZWluIGlzCi0jIHRoZSBwcm9wcmlldGFyeSBhbmQgY29uZmlkZW50aWFsIGluZm9ybWF0aW9uIG9mIENhZGVuY2Ugb3IgaXRzIGxpY2Vuc29ycywgYW5kCi0jIGlzIHN1cHBsaWVkIHN1YmplY3QgdG8sIGFuZCBtYXkgYmUgdXNlZCBvbmx5IGJ5IENhZGVuY2UncyBjdXJyZW50IGN1c3RvbWVycwotIyBpbiBhY2NvcmRhbmNlIHdpdGgsIGEgcHJldmlvdXNseSBleGVjdXRlZCBsaWNlbnNlIGFncmVlbWVudCBiZXR3ZWVuIENhZGVuY2UKLSMgYW5kIGl0cyBjdXN0b21lci4KLSMKLSMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSMgVEhJUyBNQVRFUklBTCBJUyBQUk9WSURFRCBCWSBDQURFTkNFICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQKLSMgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YKLSMgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4KLSMgSU4gTk8gRVZFTlQgU0hBTEwgQ0FERU5DRSBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMCi0jIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksCi0jIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUgotIyBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTICBNQVRFUklBTCwgRVZFTiBJRgotIyBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLWlmIHtbaW5mbyBleGlzdHMgdmFycyhuZXRsaXN0KV19IHsKLSAgIHNldCBpbml0KHZlcmlsb2cpICAgICAgICAgICAgICAgICAgJHZhcnMobmV0bGlzdCkKLSAgIHNldCBuaW5pdCh2ZXJpbG9nKSAgICAgICAgICAgICAgICAgJHZhcnMobmV0bGlzdCkKLX0KLWlmIHtbaW5mbyBleGlzdHMgdmFycyhzZXRfdG9wX21vZHVsZSldfSB7Ci0gICBzZXQgaW5pdChkZXNpZ25fc2V0dG9wKSAgICAgICAgICAgICR2YXJzKHNldF90b3BfbW9kdWxlKQotICAgc2V0IG5pbml0KGRlc2lnbl9zZXRfdG9wKSAgICAgICAgICAkdmFycyhzZXRfdG9wX21vZHVsZSkKLX0KLWlmIHtbaW5mbyBleGlzdHMgdmFycyhkZXNpZ24pXX0gewotICAgc2V0IGluaXQodG9wX2NlbGwpICAgICAgICAgICAgICAgICAkdmFycyhkZXNpZ24pCi19Ci0jc2V0IGluaXQobmV0bGlzdF90eXBlKSAgICAgICAgICAgICAgICAkdmFycyhuZXRsaXN0X3R5cGUpCi1pZiB7W2luZm8gZXhpc3RzIHZhcnMob2FfZGVzaWduX2xpYildfSB7Ci0gICBzZXQgaW5pdChvYV9kZXNpZ25fbGliKSAgICAgICAgICAgICAgICAgICAkdmFycyhvYV9kZXNpZ25fbGliKQotICAgc2V0IG5pbml0KG9hX2Rlc2lnbl9saWIpICAgICAgICAgICAgICAgICAgICR2YXJzKG9hX2Rlc2lnbl9saWIpCi19Ci1pZiB7W2luZm8gZXhpc3RzIHZhcnMob2FfZGVzaWduX2NlbGwpXX0gewotICAgc2V0IGluaXQob2FfZGVzaWduX2NlbGwpICAgICAgICAgICAgICAgICAgJHZhcnMob2FfZGVzaWduX2NlbGwpCi0gICBzZXQgbmluaXQob2FfZGVzaWduX2NlbGwpICAgICAgICAgICAgICAgICAgJHZhcnMob2FfZGVzaWduX2NlbGwpCi19Ci1pZiB7W2luZm8gZXhpc3RzIHZhcnMob2FfZGVzaWduX3ZpZXcpXX0gewotICAgc2V0IGluaXQob2FfZGVzaWduX3ZpZXcpICAgICAgICAgICAgICAgICAgJHZhcnMob2FfZGVzaWduX3ZpZXcpCi0gICBzZXQgbmluaXQob2FfZGVzaWduX3ZpZXcpICAgICAgICAgICAgICAgICAgJHZhcnMob2FfZGVzaWduX3ZpZXcpCi19Ci1pZiB7W2luZm8gZXhpc3RzIHZhcnMob2FfcmVmX2xpYildfSB7Ci0gICBzZXQgaW5pdChvYV9yZWZfbGliKSAgICAgICAgICAgICAgICR2YXJzKG9hX3JlZl9saWIpCi0gICBzZXQgbmluaXQob2FfcmVmX2xpYikgICAgICAgICAgICAgICAkdmFycyhvYV9yZWZfbGliKQotfQotaWYge1tpbmZvIGV4aXN0cyB2YXJzKG9hX2Fic3RyYWN0X25hbWUpXX0gewotICAgc2V0IGluaXQoYWJzdHJhY3RfbmFtZSkgICAgICAgICAgICAkdmFycyhvYV9hYnN0cmFjdF9uYW1lKQotICAgc2V0IG5pbml0KGFic3RyYWN0X25hbWUpICAgICAgICAgICAgJHZhcnMob2FfYWJzdHJhY3RfbmFtZSkKLX0KLWlmIHtbaW5mbyBleGlzdHMgdmFycyhvYV9hYnN0cmFjdF92aWV3KV19IHsKLSAgIHNldCBpbml0KGFic3RyYWN0X3ZpZXcpICAgICAgICAgICAgJHZhcnMob2FfYWJzdHJhY3RfdmlldykKLSAgIHNldCBuaW5pdChhYnN0cmFjdF92aWV3KSAgICAgICAgICAgICR2YXJzKG9hX2Fic3RyYWN0X3ZpZXcpCi19Ci1pZiB7W2luZm8gZXhpc3RzIHZhcnMob2FfbGF5b3V0X25hbWUpXX0gewotICAgc2V0IGluaXQobGF5b3V0X3ZpZXcpICAgICAgICAgICAgICAkdmFycyhvYV9sYXlvdXRfbmFtZSkKLSAgIHNldCBuaW5pdChsYXlvdXRfdmlldykgICAgICAgICAgICAgICR2YXJzKG9hX2xheW91dF9uYW1lKQotfQotaWYge1tpbmZvIGV4aXN0cyB2YXJzKHBvd2VyX25ldHMpXX0gewotICAgc2V0IGluaXQocHdyX25ldCkgICAgICAgICAgICAgICAgICAkdmFycyhwb3dlcl9uZXRzKQotfQotaWYge1tpbmZvIGV4aXN0cyB2YXJzKGdyb3VuZF9uZXRzKV19IHsKLSAgIHNldCBpbml0KGduZF9uZXQpICAgICAgICAgICAgICAgICAgJHZhcnMoZ3JvdW5kX25ldHMpCi19Ci1zZXQgaW5pdChtbW1jX2ZpbGUpICAgICAgICAgICAgICAgICAgICR2YXJzKHNjcmlwdF9kaXIpL3ZpZXdfZGVmaW5pdGlvbi50Y2wKLXNldCBuaW5pdChtbW1jX2ZpbGUpICAgICAgICAgICAgICAgICAgJHZhcnMoc2NyaXB0X2Rpcikvdmlld19kZWZpbml0aW9uLnRjbAotaWYge1tpbmZvIGV4aXN0cyB2YXJzKGNwZl9maWxlKV19IHsKLSAgIHNldCBpbml0KGNwZl9maWxlKSAgICAgICAgICAgICAgICAgJHZhcnMoY3BmX2ZpbGUpCi0gICBzZXQgbmluaXQoY3BmX2ZpbGUpICAgICAgICAgICAgICAgICR2YXJzKGNwZl9maWxlKQotfQotaWYge1tpbmZvIGV4aXN0cyB2YXJzKGlvX2ZpbGUpXX0gewotICAgc2V0IGluaXQoaW9fZmlsZSkgICAgICAgICAgICAgICAgICAkdmFycyhpb19maWxlKQotfQotaWYge1tpbmZvIGV4aXN0cyB2YXJzKGxlZl9maWxlcyldICYmICR2YXJzKGxlZl9maWxlcykgIT0gIk5PTkUifSB7Ci0gICBzZXQgaW5pdChsZWZfZmlsZSkgICAgICAgICAgICAgICAgICR2YXJzKGxlZl9maWxlcykKLSAgIHNldCBuaW5pdChsZWZfZmlsZSkgICAgICAgICAgICAgICAgJHZhcnMobGVmX2ZpbGVzKQotfQotaWYge1tpbmZvIGV4aXN0cyB2YXJzKGNhcF91bml0KV19IHsKLSAgIHNldCBpbml0KGNhcF91bml0KSAgICAgICAgICAgICAgICAgJHZhcnMoY2FwX3VuaXQpCi19Ci1pZiB7W2luZm8gZXhpc3RzIHZhcnModGltZV91bml0KV19IHsKLSAgIHNldCBpbml0KHRpbWVfdW5pdCkgICAgICAgICAgICAgICAgJHZhcnModGltZV91bml0KQotfQotCi0jaWYge1tpbmZvIGV4aXN0cyB2YXJzKGFzc2lnbl9idWZmZXIpXX0gewotIyAgIGlmIHsoJHZhcnMoYXNzaWduX2J1ZmZlcikgIT0gMSkgJiYgKFtzdHJpbmcgdG9sb3dlciAkdmFycyhhc3NpZ25fYnVmZmVyKV0gIT0gInRydWUiKSAmJiAoW3N0cmluZyB0b2xvd2VyICR2YXJzKGFzc2lnbl9idWZmZXIpXSAhPSAiZmFsc2UiKSAmJiAoJHZhcnMoYXNzaWduX2J1ZmZlcikgIT0gMCl9IHsKLSMgICAgICBpZiB7W2xsZW5ndGggJHZhcnMoYXNzaWduX2J1ZmZlcildID09IDF9IHsKLSMgICAgICAgICBzZXQgaW5pdChhc3NpZ25fYnVmZmVyKSAgICAgICAgICAgICIxIC1idWZmZXIgJHZhcnMoYXNzaWduX2J1ZmZlcikiCi0jICAgICAgfSBlbHNlIHsKLSMgICAgICAgICBzZXQgaW5pdChhc3NpZ25fYnVmZmVyKSAgICAgICAgICAgICR2YXJzKGFzc2lnbl9idWZmZXIpCi0jICAgICAgfQotIyAgIH0gZWxzZSB7Ci0jICAgICAgICAgc2V0IGluaXQoYXNzaWduX2J1ZmZlcikgICAgICAgICAgICAkdmFycyhhc3NpZ25fYnVmZmVyKQotIyAgIH0KLSN9Ci0KLWlmIHtbaW5mbyBleGlzdHMgdmFycyhidWZfZm9vdHByaW50KV19IHsKLSAgIHNldCBvcHQoYnVmX2Zvb3RwcmludCkgICAgICAgICAgICAgICR2YXJzKGJ1Zl9mb290cHJpbnQpCi19Ci1pZiB7W2luZm8gZXhpc3RzIHZhcnMoaW52X2Zvb3RwcmludCldfSB7Ci0gICBzZXQgb3B0KGludl9mb290cHJpbnQpICAgICAgICAgICAgICAkdmFycyhpbnZfZm9vdHByaW50KQotfQotaWYge1tpbmZvIGV4aXN0cyB2YXJzKGRlbF9mb290cHJpbnQpXX0gewotICAgc2V0IG9wdChkZWxheV9mb290cHJpbnQpICAgICAgICAgICAgJHZhcnMoZGVsX2Zvb3RwcmludCkKLX0KLWlmIHtbaW5mbyBleGlzdHMgdmFycyhjdHNfY2VsbF9mb290cHJpbnQpXX0gewotICAgc2V0IGN0cyhjdHNfY2VsbF9mb290cHJpbnQpICAgICAgICAgJHZhcnMoY3RzX2NlbGxfZm9vdHByaW50KQotfQotaWYge1tpbmZvIGV4aXN0cyB2YXJzKGN0c19jZWxsX2xpc3QpXX0gewotICAgc2V0IGN0cyhjZWxsX2xpc3QpICAgICAgICAgICAgICAgICAgJHZhcnMoY3RzX2NlbGxfbGlzdCkKLX0KLWlmIHtbaW5mbyBleGlzdHMgdmFycyhkZWxheV9saW1pdCldfSB7Ci0gICBzZXQgZGVsYXljYWwoZGVsYXlfbGltaXQpICAgICAgICAgICAgICAgICAkdmFycyhkZWxheV9saW1pdCkKLX0KLWlmIHtbaW5mbyBleGlzdHMgdmFycyhkZWZhdWx0X25ldF9kZWxheSldfSB7Ci0gICBzZXQgZGVsYXljYWwobmV0X2RlbGF5KSAgICAgICAgICAgICAgICAgICAkdmFycyhkZWZhdWx0X25ldF9kZWxheSkKLX0KLWlmIHtbaW5mbyBleGlzdHMgdmFycyhkZWZhdWx0X25ldF9sb2FkKV19IHsKLSAgIHNldCBkZWxheWNhbChuZXRfbG9hZCkgICAgICAgICAgICAgICAgICAgICR2YXJzKGRlZmF1bHRfbmV0X2xvYWQpCi19Ci1pZiB7W2luZm8gZXhpc3RzIHZhcnMoZGVmYXVsdF9zbGV3KV19IHsKLSAgIHNldCBkZWxheWNhbChpbl90cmFuX2RlbGF5KSAgICAgICAgICAgICAgICR2YXJzKGRlZmF1bHRfc2xldykKLX0KLWlmIHtbaW5mbyBleGlzdHMgdmFycyhleGNsdWRlX25ldHMpXX0gewotICAgc2V0IGRlbGF5Y2FsKGV4Y2x1ZGVfbmV0KSAkdmFycyhleGNsdWRlX25ldHMpCi19Ci1pZiB7W2luZm8gZXhpc3RzIHZhcnMoZGVsYXlfbGltaXQpXX0gewotICAgc2V0IGRlbGF5Y2FsKHVzZV9kZWZhdWx0X2RlbGF5X2xpbWl0KSAkdmFycyhkZWxheV9saW1pdCkKLX0KLWlmIHtbaW5mbyBleGlzdHMgdmFycyhkZWZhdWx0X25ldF9kZWxheSldfSB7Ci0gICBzZXQgZGVsYXljYWwoZGVmYXVsdF9uZXRfZGVsYXkpICR2YXJzKGRlZmF1bHRfbmV0X2RlbGF5KQotfQotaWYge1tpbmZvIGV4aXN0cyB2YXJzKGRlZmF1bHRfbmV0X2xvYWQpXX0gewotICAgc2V0IGRlbGF5Y2FsKGRlZmF1bHRfbmV0X2xvYWQpICR2YXJzKGRlZmF1bHRfbmV0X2xvYWQpCi19Ci1pZiB7W2luZm8gZXhpc3RzIHZhcnMoaW5wdXRfdHJhbnNpdGlvbl9kZWxheSldfSB7Ci0gICBzZXQgZGVsYXljYWwoaW5wdXRfdHJhbnNpdGlvbl9kZWxheSkgJHZhcnMoaW5wdXRfdHJhbnNpdGlvbl9kZWxheSkKLX0KLQotaWYge1tpbmZvIGV4aXN0cyB2YXJzKHNocmlua19mYWN0b3IpXX0gewotICAgc2V0IGV4dHJhY3Qoc2hyaW5rX2ZhY3RvcikgJHZhcnMoc2hyaW5rX2ZhY3RvcikKLX0KLQotIyBpbml0X29hX3NlYXJjaF9saWIKZGlmZiAtLWdpdCBhL2Zsb3cvcG5yL1NDUklQVFMvRVRDL0lOTk9WVVMvdXRpbHMudGNsIGIvZmxvdy9wbnIvU0NSSVBUUy9FVEMvSU5OT1ZVUy91dGlscy50Y2wKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDg4MTkxZGYuLjAwMDAwMDAKLS0tIGEvZmxvdy9wbnIvU0NSSVBUUy9FVEMvSU5OT1ZVUy91dGlscy50Y2wKKysrIC9kZXYvbnVsbApAQCAtMSwxMTExICswLDAgQEAKLSMgJUNvcHlyaWdodE5vdGljZQotCi1uYW1lc3BhY2UgZXZhbCBmZl9wcm9jczo6IHsKLQotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotIyBQcm9jZWR1cmUgdG8gc2VlZCBjZXJ0YWluIGZsb3cgdmFyaWFibGVzIHRvIGEga25vd24gZGVmYXVsdCB2YWx1ZSBhcyB3ZWxsCi0jIGFzIGRhdGEgdmFyaWFibGVzIHJlcXVpcmVkIHRvIHNlZWQgdGhlIGdlbmVyaWMgY29uZmlndXJhdGlvbiBmaWxlCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0KLSAgIHByb2MgbG9hZF9wYXRoX2dyb3VwcyB7ZmlsZX0gewotCi0gICAgICByZWFkX2RjX3NjcmlwdCAkZmlsZQotCi0gICB9IAotCi0gICBwcm9jIHNvdXJjZV9wbHVnIHtwbHVnaW4ge2Fib3J0IDF9fSB7Ci0KLSAgICAgIGdsb2JhbCB2YXJzCi0gICAgICBnbG9iYWwgcGx1Z2luX2Vycm9yCi0gICAgICBnbG9iYWwgZXJyb3JJbmZvCi0gICAgICBnbG9iYWwgcmV0dXJuX2NvZGUKLQotICAKLSAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkcGx1Z2luKV19IHsKLSAgICAgICAgIFB1dHMgIjxGRj4gTE9BRElORyAnJHBsdWdpbicgUExVRy1JTiBGSUxFKHMpICIKLSAgICAgICAgIGZvcmVhY2ggcGx1Z2luICR2YXJzKCRwbHVnaW4pIHsKLSAgICAgICAgICAgIGlmIHtbZmlsZSBleGlzdHMgJHBsdWdpbl19IHsKLSAgICAgICAgICAgICAgIFB1dHMgIjxGRj4gLT4gJHBsdWdpbiIKLSAgICAgICAgICAgICAgIGlmIHsgWyBjYXRjaCB7IHVwbGV2ZWwgc291cmNlICRwbHVnaW4gfSBwbHVnaW5fZXJyb3IgXSB9IHsKLSAgICAgICAgICAgICAgICAgIFB1dHMgIjxGRj4gPT09PT09PT09PT09PSBQTFVHLUlOIEVSUk9SID09PT09PT09PT09PT09PT09PSIKLSAgICAgICAgICAgICAgICAgIFB1dHMgIjxGRj4gJGVycm9ySW5mbyIKLSAgICAgICAgICAgICAgICAgIFB1dHMgIjxGRj4gJHBsdWdpbl9lcnJvciIKLSAgICAgICAgICAgICAgICAgIFB1dHMgIjxGRj4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSIKLSAgICAgICAgICAgICAgICAgIHNldCByZXR1cm5fY29kZSA5OQotICAgICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKG1haWwsdG8pXX0gewotICAgICAgICAgICAgICAgICAgICAgc2V0IG1zZyAiRnJvbTogW2V4ZWMgd2hvYW1pXSAiCi0gICAgICAgICAgICAgICAgICAgICBhcHBlbmQgbXNnIFxuICJUbzogIiBbam9pbiAkdmFycyhtYWlsLHRvKSAsXQotICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIG1zZyBcbiAiQ2M6ICIgW2pvaW4gIiIgLF0KLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBtc2cgXG4gIlN1YmplY3Q6ICIgIkZGOiAkdmFycyhkZXNpZ24pLCAkdmFycyhzdGVwKSBmYWlsZWQgKFtwd2RdKSIKLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBtc2cgXG5cbiAkZXJyb3JJbmZvCi0gICAgICAgICAgICAgICAgICAgICBleGVjIC91c3IvbGliL3NlbmRtYWlsIC1vaSAtdCA8PCAkbXNnCi0gICAgICAgICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgICAgICAgIGlmIHskYWJvcnR9IHsKLSAgICAgICAgICAgICAgICAgICAgIGV4aXQgJHJldHVybl9jb2RlCi0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgaWYge1tmaWxlIGV4aXN0cyAkdmFycyhwbHVnX2RpcikvJHBsdWdpbl19IHsKLSAgICAgICAgICAgICAgICAgIFB1dHMgIjxGRj4gLT4gJHZhcnMocGx1Z19kaXIpLyRwbHVnaW4iCi0gICAgICAgICAgICAgICAgICBpZiB7IFsgY2F0Y2ggeyB1cGxldmVsIHNvdXJjZSAkdmFycyhwbHVnX2RpcikvJHBsdWdpbiB9IHBsdWdpbl9lcnJvciBdIH0gewotICAgICAgICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKG1haWwsdG8pXX0gewotICAgICAgICAgICAgICAgICAgICAgICAgc2V0IG1zZyAiRnJvbTogW2V4ZWMgd2hvYW1pXSAiCi0gICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgbXNnIFxuICJUbzogIiBbam9pbiAkdmFycyhtYWlsLHRvKSAsXQotICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIG1zZyBcbiAiQ2M6ICIgW2pvaW4gIiIgLF0KLSAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBtc2cgXG4gIlN1YmplY3Q6ICIgIkZGOiAkdmFycyhkZXNpZ24pLCAkdmFycyhzdGVwKSBmYWlsZWQgKFtwd2RdKSIKLSAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBtc2cgXG5cbiAkZXJyb3JJbmZvCi0gICAgICAgICAgICAgICAgICAgICAgICBleGVjIC91c3IvbGliL3NlbmRtYWlsIC1vaSAtdCA8PCAkbXNnCi0gICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICBzZXQgcmV0dXJuX2NvZGUgOTkKLSAgICAgICAgICAgICAgICAgICAgIGlmIHskYWJvcnR9IHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGV4aXQgJHJldHVybl9jb2RlCi0gICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0gICAgICB9Ci0gICB9Ci0gICAKLSAgIHByb2MgcmVwb3J0X3RpbWUge30gewotICAgICAgZ2xvYmFsIHZhcnMKLSAgIAotICAgICAgc2V0IHJ1bl90aW1lIFtleHByIFtjbG9jayBzZWNvbmRzXSAtICR2YXJzKCR2YXJzKHN0ZXApLHN0YXJ0X3RpbWUpXQotICAgCi0gICAgICBpZiB7JHJ1bl90aW1lID4gODY0MDB9IHsKLSAgICAgICAgIHNldCBkYXlzIFtleHByICRydW5fdGltZSAvIDg2NDAwXQotICAgICAgfSBlbHNlIHsKLSAgICAgICAgIHNldCBkYXlzIDAKLSAgICAgIH0KLSAgICAgIHNldCBydW5fdGltZSBbY2xvY2sgZm9ybWF0ICRydW5fdGltZSAtZm9ybWF0ICVIOiVNOiVTIC1nbXQgdHJ1ZV0KLSAgICAgIFB1dHMgIjxGRj4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSIKLSAgICAgIFB1dHMgIjxGRj4gICAgICAgICAgQ09NUExFVEVEIFNURVAgOiAkdmFycyhzdGVwKSIKLSAgICAgIFB1dHMgIjxGRj4gICAgICAgICBFTEFQU0VEIFJVTlRJTUUgOiAkZGF5cyBkYXlzLCAkcnVuX3RpbWUiCi0gICAgICBQdXRzICI8RkY+ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0iCi0gICB9Ci0gICAKLSAgIHByb2MgbW9kaWZ5X3Bvd2VyX2RvbWFpbnMge30gewotICAgCi0gICAgIGdsb2JhbCB2YXJzCi0gICAgIAotICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgIyMjIG1vZGlmeSBwb3dlciBkb21haW4KLSAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAKLSAgICAgIHNldCB2YXJzKHBvd2VyX2RvbWFpbnMpIFtmZl9wcm9jczo6Z2V0X3Bvd2VyX2RvbWFpbnNdCi0gICAgICAgCi0gICAgICBmb3JlYWNoIGRvbWFpbiAkdmFycyhwb3dlcl9kb21haW5zKSB7Ci0gICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJGRvbWFpbixiYm94KV0gfHwgXAotICAgICAgICAgICAgIFtpbmZvIGV4aXN0cyB2YXJzKCRkb21haW4scnNfZXh0cyldIHx8IFwKLSAgICAgICAgICAgICBbaW5mbyBleGlzdHMgdmFycygkZG9tYWluLG1pbl9nYXBzKV19IHsKLSAgICAgICAgICAgIFB1dHMgIjxGRj4gTW9kaWZ5aW5nIHBvd2VyIGRvbWFpbiAkZG9tYWluIC4uLiIKLSAgICAgICAgICAgIHNldCBjb21tYW5kICJtb2RpZnlQb3dlckRvbWFpbkF0dHIgJGRvbWFpbiAiCi0gICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJGRvbWFpbixiYm94KV19IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICItYm94ICR2YXJzKCRkb21haW4sYmJveCkgIgotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCRkb21haW4scnNfZXh0cyldfSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiLXJzRXh0cyAkdmFycygkZG9tYWluLHJzX2V4dHMpICIKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkZG9tYWluLG1pbl9nYXBzKV19IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICItbWluR2FwcyAkdmFycygkZG9tYWluLG1pbl9nYXBzKSAiCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBldmFsICRjb21tYW5kCi0gICAgICAgICB9Ci0gICAgICB9Ci0gICB9Ci0gICBwcm9jIGFkZF9wb3dlcl9zd2l0Y2hlcyB7e2RvbWFpbnMgIiJ9fSB7Ci0gICAKLSAgICAgZ2xvYmFsIHZhcnMKLSAgICAgZ2xvYmFsIG1hcAotICAgICAKLSAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICMjIyBhZGQgcG93ZXIgc3dpdGNoCi0gICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAKLSAgICAgIHNvdXJjZSAkdmFycyhzY3JpcHRfcm9vdCkvRVRDL0VESS9tYXBfb3B0aW9ucy50Y2wKLSAgIAotICAgICAgaWYgeyRkb21haW5zID09ICIifSB7Ci0gICAgICAgICBzZXQgZG9tYWlucyBbZmZfcHJvY3M6OmdldF9wb3dlcl9kb21haW5zXQotICAgICAgfQotICAgCi0gICAgICBmb3JlYWNoIGRvbWFpbiAkZG9tYWlucyB7Ci0gICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJGRvbWFpbixzd2l0Y2hhYmxlKV0gJiYgJHZhcnMoJGRvbWFpbixzd2l0Y2hhYmxlKX0gewotICAgICAgCi0gICAgICAgICAgICBkZWxldGVQb3dlclN3aXRjaCAtJHZhcnMoJGRvbWFpbixzd2l0Y2hfdHlwZSkgLXBvd2VyRG9tYWluICRkb21haW4KLSAgICAgIAotICAgICAgICAgICAgc2V0IGNvbW1hbmQgImFkZFBvd2VyU3dpdGNoIC1wb3dlckRvbWFpbiAkZG9tYWluIC0kdmFycygkZG9tYWluLHN3aXRjaF90eXBlKSAiCi0KLSAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkZG9tYWluLGRpc3RyaWJ1dGUpXSAmJiAkdmFycygkZG9tYWluLGRpc3RyaWJ1dGUpfSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiLWRpc3RyaWJ1dGUgIgotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCRkb21haW4sY2hlY2tlcl9ib2FyZCldICYmICR2YXJzKCRkb21haW4sY2hlY2tlcl9ib2FyZCl9IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICItY2hlY2tlckJvYXJkICIKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkZG9tYWluLGJhY2tfdG9fYmFja19jaGFpbildICYmICR2YXJzKCRkb21haW4sYmFja190b19iYWNrX2NoYWluKX0gewotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIi1iYWNrVG9CYWNrQ2hhaW4gIgotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCRkb21haW4sbG9vcF9iYWNrX2F0X2VuZCldICYmICR2YXJzKCRkb21haW4sbG9vcF9iYWNrX2F0X2VuZCl9IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICItbG9vcGJhY2tBdEVuZCAiCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJGRvbWFpbixjaGVja19oZWlnaHQpXSAmJiAhJHZhcnMoJGRvbWFpbixjaGVja19oZWlnaHQpfSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiLW5vRG91YmxlSGVpZ2h0Q2hlY2sgIgotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCRkb21haW4sdmVyaWZ5X3Jvd3MpXSAmJiAhJHZhcnMoJGRvbWFpbix2ZXJpZnlfcm93cyl9IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICItbm9Sb3dWZXJpZnkgIgotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCRkb21haW4sZW5hYmxlX2NoYWluKV0gJiYgISR2YXJzKCRkb21haW4sZW5hYmxlX2NoYWluKX0gewotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIi1ub0VuYWJsZUNoYWluICIKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIAotICAgICAgICAgICAgZm9yZWFjaCBvcHRpb24gW2FycmF5IG5hbWVzIG1hcF0gewotICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCRkb21haW4sJG9wdGlvbildfSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiLSRtYXAoJG9wdGlvbikgJHZhcnMoJGRvbWFpbiwkb3B0aW9uKSAiCi0gICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgIAotICAgICAgICAgICAgZXZhbCAkY29tbWFuZAotICAgICAgICAgfQotICAgICAgfQotICAgfQotCi0gICBwcm9jIGdldF9wb3dlcl9kb21haW5zIHt9IHsKLSAgICAgc2V0IHBvd2VyX2RvbWFpbnMgW2xpc3RdCi0gICAgIGRiRm9yRWFjaFBvd2VyRG9tYWluIFtkYmdIZWFkXSBwZCB7Ci0gICAgICAgIGlmIHtbZGJHcm91cEhJbnN0TGlzdCBbZGJQb3dlckRvbWFpbk5hbWUgJHBkXV0gIT0gIjB4MCJ9IHsKLSAgICAgICAgICAgbGFwcGVuZCBwb3dlcl9kb21haW5zIFtkYlBvd2VyRG9tYWluTmFtZSAkcGRdCi0gICAgICAgIH0KLSAgICAgfQotICAgICByZXR1cm4gJHBvd2VyX2RvbWFpbnMKLSAgIH0KLSAgICAgCi0gICBwcm9jIHJvdXRlX3NlY29uZGFyeV9wZ19uZXRzIHt9IHsKLSAgICAgCi0gICAgIFB1dHMgIjxGRj4gUk9VVElORyBTRUNPTkRBUlkgUE9XRVIgTkVUUyAuLi4iCi0gICAgIAotICAgICBnbG9iYWwgdmFycwotICAgICAKLSAgICAgIyBFbmFibGUgZ2xvYmFsIHBpbiBwYWlycyAoaWYgZGVmaW5lZCkKLSAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKHNlY29uZGFyeV9wZyxjZWxsX3Bpbl9wYWlycyldfSB7Ci0gICAgICAgIHNldFBHUGluVXNlU2lnbmFsUm91dGUgJHZhcnMoc2Vjb25kYXJ5X3BnLGNlbGxfcGluX3BhaXJzKQotICAgICAKLSAgICAgICAgIyBCdWlsZCBjb21tYW5kcyBmb3IgaW5kaXZpZHVhbCBuZXRzIChpZiBkZWZpbmVkKQotICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoc2Vjb25kYXJ5X3BnLG5ldHMpXX0gewotICAgICAgICAgICBmb3JlYWNoIG5ldCAkdmFycyhzZWNvbmRhcnlfcGcsbmV0cykgewotICAgICAgICAgICAgICAjIFNldCBvcHRpb25zIHRvIGdsb2JhbHMgaWYgdGhleSBleGlzdAotICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJG5ldCxwYXR0ZXJuKV19IHsKLSAgICAgICAgICAgICAgICAgc2V0IHBhdHRlcm4gJHZhcnMoJG5ldCxwYXR0ZXJuKQotICAgICAgICAgICAgICB9IGVsc2VpZiB7W2luZm8gZXhpc3RzIHZhcnMoc2Vjb25kYXJ5X3BnLHBhdHRlcm4pXX0gewotICAgICAgICAgICAgICAgICBzZXQgcGF0dGVybiAkdmFycyhzZWNvbmRhcnlfcGcscGF0dGVybikKLSAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJG5ldCxtYXhfZmFub3V0KV19IHsKLSAgICAgICAgICAgICAgICAgc2V0IG1heF9mYW5vdXQgJHZhcnMoJG5ldCxtYXhfZmFub3V0KQotICAgICAgICAgICAgICB9IGVsc2VpZiB7W2luZm8gZXhpc3RzIHZhcnMoc2Vjb25kYXJ5X3BnLG1heF9mYW5vdXQpXX0gewotICAgICAgICAgICAgICAgICBzZXQgbWF4X2Zhbm91dCAkdmFycyhzZWNvbmRhcnlfcGcsbWF4X2Zhbm91dCkKLSAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJG5ldCxub25fZGVmYXVsdF9ydWxlKV19IHsKLSAgICAgICAgICAgICAgICAgc2V0IG5vbl9kZWZhdWx0X3J1bGUgJHZhcnMoJG5ldCxub25fZGVmYXVsdF9ydWxlKQotICAgICAgICAgICAgICB9IGVsc2VpZiB7W2luZm8gZXhpc3RzIHZhcnMoc2Vjb25kYXJ5X3BnLG5vbl9kZWZhdWx0X3J1bGUpXX0gewotICAgICAgICAgICAgICAgICBzZXQgbm9uX2RlZmF1bHRfcnVsZSAkdmFycyhzZWNvbmRhcnlfcGcsbm9uX2RlZmF1bHRfcnVsZSkKLSAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJG5ldCxjZWxsX3Bpbl9wYWlycyldfSB7Ci0gICAgICAgICAgICAgICAgIHNldFBHUGluVXNlU2lnbmFsUm91dGUgJHZhcnMoJG5ldCxjZWxsX3Bpbl9wYWlycykKLSAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICBzZXQgdmFycygkbmV0LGNvbW1hbmQpICJyb3V0ZVBHUGluVXNlU2lnbmFsUm91dGUgLW5ldHMgJG5ldCIKLSAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyBwYXR0ZXJuXX0geyAKLSAgICAgICAgICAgICAgICAgc2V0IHZhcnMoJG5ldCxjb21tYW5kKSBbZm9ybWF0ICIlcyAtcGF0dGVybiAlcyIgJHZhcnMoJG5ldCxjb21tYW5kKSAkcGF0dGVybl0KLSAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIG1heF9mYW5vdXRdfSB7IAotICAgICAgICAgICAgICAgICBzZXQgdmFycygkbmV0LGNvbW1hbmQpIFtmb3JtYXQgIiVzIC1tYXhGYW5vdXQgJXMiICR2YXJzKCRuZXQsY29tbWFuZCkgJG1heF9mYW5vdXRdCi0gICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyBub25fZGVmYXVsdF9ydWxlXX0geyAKLSAgICAgICAgICAgICAgICAgc2V0IHZhcnMoJG5ldCxjb21tYW5kKSBbZm9ybWF0ICIlcyAtbm9uRGVmYXVsdFJ1bGUgJXMiICR2YXJzKCRuZXQsY29tbWFuZCkgJG5vbl9kZWZhdWx0X3J1bGVdCi0gICAgICAgICAgICAgIH0KLSAgICAgICAgICAgfQotICAgICAgICAgICBmb3JlYWNoIG5ldCAkdmFycyhzZWNvbmRhcnlfcGcsbmV0cykgewotICAgICAgICAgICAgICBldmFsICR2YXJzKCRuZXQsY29tbWFuZCkKLSAgICAgICAgICAgfQotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICBzZXQgY29tbWFuZCAicm91dGVQR1BpblVzZVNpZ25hbFJvdXRlIgotICAgICAgICAgICAjIFNldCBvcHRpb25zIHRvIGdsb2JhbHMgaWYgdGhleSBleGlzdAotICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoc2Vjb25kYXJ5X3BnLHBhdHRlcm4pXX0gewotICAgICAgICAgICAgICBzZXQgY29tbWFuZCBbZm9ybWF0ICIlcyAtcGF0dGVybiAkdmFycyhzZWNvbmRhcnlfcGcscGF0dGVybikiICRjb21tYW5kXQotICAgICAgICAgICB9Ci0gICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhzZWNvbmRhcnlfcGcsbWF4X2Zhbm91dCldfSB7Ci0gICAgICAgICAgICAgIHNldCBjb21tYW5kIFtmb3JtYXQgIiVzIC1tYXhGYW5vdXQgJHZhcnMoc2Vjb25kYXJ5X3BnLG1heF9mYW5vdXQpIiAkY29tbWFuZF0KLSAgICAgICAgICAgfQotICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoc2Vjb25kYXJ5X3BnLG5vbl9kZWZhdWx0X3J1bGUpXX0gewotICAgICAgICAgICAgICBzZXQgY29tbWFuZCBbZm9ybWF0ICIlcyAtbm9uRGVmYXVsdFJ1bGUgJHZhcnMoc2Vjb25kYXJ5X3BnLG5vbl9kZWZhdWx0X3J1bGUpIiAkY29tbWFuZF0KLSAgICAgICAgICAgfQotICAgICAgICAgICAgZXZhbCAkY29tbWFuZAotICAgICAgICB9Ci0gICAgIH0gZWxzZSB7Ci0gICAgICAgUHV0cyAiPEZGPiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0iCi0gICAgICAgUHV0cyAiPEZGPiBFUlJPUjogTm8gY2VsbC9waW4gcGFpcnMgZGVmaW5lZCAuLi4gcGxlYXNlIGRlZmluZSBjZWxsL3BpbiBwYWlycyIKLSAgICAgICBQdXRzICI8RkY+ICAgICAgICBpbiB5b3VyIHNldHVwLnRjbCB1c2luZyB2YXJzKHNlY29uZGFyeV9wZyxjZWxsX3Bpbl9wYWlycykiCi0gICAgICAgUHV0cyAiPEZGPiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0iCi0gICAgIH0KLSAgIH0KLQotICAgcHJvYyBpbnNlcnRfd2VsbHRhcHNfZW5kY2FwcyB7fSB7Ci0gICAKLSAgICAgIGdsb2JhbCB2YXJzCi0gICAKLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICMgSW5zZXJ0IHdlbGx0YXBzIGFuZCBwcmUvcG9zdCBlbmRjYXBzCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoY3BmX2ZpbGUpXSAmJiAoW2luZm8gZXhpc3RzIHZhcnMocG93ZXJfZG9tYWlucyldICYmIChbbGxlbmd0aCAkdmFycyhwb3dlcl9kb21haW5zKV0gPiAwKSl9IHsKLSAgICAgICAgIHNldCB2YXJzKHBvd2VyX2RvbWFpbnMpIFs6OmZmX3Byb2NzOjpnZXRfcG93ZXJfZG9tYWluc10KLSAgICAgICAgIGZvcmVhY2ggZG9tYWluICR2YXJzKHBvd2VyX2RvbWFpbnMpIHsKLSAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkZG9tYWluLHByZV9lbmRjYXApXSAmJiAKLSAgICAgICAgICAgICAgICBbaW5mbyBleGlzdHMgdmFycygkZG9tYWluLHBvc3RfZW5kY2FwKV19IHsKLSAgICAgICAgICAgICAgIGFkZEVuZENhcCAtcHJlZml4ICRkb21haW4gXAotICAgICAgICAgICAgICAgICAgICAgICAgIC1wcmVDYXAgJHZhcnMoJGRvbWFpbixwcmVfZW5kY2FwKSBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgLXBvc3RDYXAgJHZhcnMoJGRvbWFpbixwb3N0X2VuZGNhcCkgXAotICAgICAgICAgICAgICAgICAgICAgICAgIC1wb3dlckRvbWFpbiAkZG9tYWluIAotICAgICAgICAgICAgfSBlbHNlaWYge1tpbmZvIGV4aXN0cyB2YXJzKHByZV9lbmRjYXApXSAmJiAKLSAgICAgICAgICAgICAgICAgICAgICBbaW5mbyBleGlzdHMgdmFycyhwb3N0X2VuZGNhcCldfSB7Ci0gICAgICAgICAgICAgICAgICBhZGRFbmRDYXAgLXByZWZpeCAkZG9tYWluIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAtcHJlQ2FwICR2YXJzKHByZV9lbmRjYXApIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAtcG9zdENhcCAkdmFycyhwb3N0X2VuZGNhcCkgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIC1wb3dlckRvbWFpbiAkZG9tYWluIAotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCRkb21haW4sd2VsbHRhcHMpXSB8fCBbaW5mbyBleGlzdHMgdmFycyh3ZWxsdGFwcyldfSB7Ci0gICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJGRvbWFpbix3ZWxsdGFwcyldfSB7Ci0gICAgICAgICAgICAgICAgICBzZXQgY29tbWFuZCAiYWRkV2VsbFRhcCAtcHJlZml4ICRkb21haW4gLWNlbGwgJHZhcnMoJGRvbWFpbix3ZWxsdGFwcykgLXBvd2VyRG9tYWluICRkb21haW4iCi0gICAgICAgICAgICAgICAgICBzZXQgdmNvbW1hbmQgInZlcmlmeVdlbGxUYXAgLWNlbGxzICR2YXJzKCRkb21haW4sd2VsbHRhcHMpIC1wb3dlckRvbWFpbiAkZG9tYWluIC1yZXBvcnQgJHZhcnMocnB0X2Rpcikvd2VsbHRhcC5ycHQiCi0gICAgICAgICAgICAgICB9IGVsc2VpZiB7W2luZm8gZXhpc3RzIHZhcnMod2VsbHRhcHMpXX0gewotICAgICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgImFkZFdlbGxUYXAgLXByZWZpeCAkZG9tYWluIC1jZWxsICR2YXJzKHdlbGx0YXBzKSAtcG93ZXJEb21haW4gJGRvbWFpbiIKLSAgICAgICAgICAgICAgICAgIHNldCB2Y29tbWFuZCAidmVyaWZ5V2VsbFRhcCAtY2VsbHMgJHZhcnMod2VsbHRhcHMpIC1wb3dlckRvbWFpbiAkZG9tYWluIC1yZXBvcnQgJHZhcnMocnB0X2Rpcikvd2VsbHRhcC5ycHQiCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJGRvbWFpbix3ZWxsdGFwcyxtYXhfZ2FwKV0gfHwgW2luZm8gZXhpc3RzIHZhcnMoJGRvbWFpbix3ZWxsdGFwcyxjZWxsX2ludGVydmFsKV19IHsKLSAgICAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkZG9tYWluLHdlbGx0YXBzLG1heF9nYXApXX0gewotICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAtbWF4R2FwICR2YXJzKCRkb21haW4sd2VsbHRhcHMsbWF4X2dhcCkiCi0gICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgLWNlbGxJbnRlcnZhbCAkdmFycygkZG9tYWluLHdlbGx0YXBzLGNlbGxfaW50ZXJ2YWwpIgotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgfSBlbHNlaWYge1tpbmZvIGV4aXN0cyB2YXJzKHdlbGx0YXBzLG1heF9nYXApXSB8fCBbaW5mbyBleGlzdHMgdmFycyh3ZWxsdGFwcyxjZWxsX2ludGVydmFsKV19IHsKLSAgICAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyh3ZWxsdGFwcyxtYXhfZ2FwKV19IHsKLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgLW1heEdhcCAkdmFycyh3ZWxsdGFwcyxtYXhfZ2FwKSIKLSAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAtY2VsbEludGVydmFsICR2YXJzKHdlbGx0YXBzLGNlbGxfaW50ZXJ2YWwpIgotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCRkb21haW4sd2VsbHRhcHMscm93X29mZnNldCldfSB7Ci0gICAgICAgICAgICAgICAgICBpZiB7JHZhcnMoJGRvbWFpbix3ZWxsdGFwcyxyb3dfb2Zmc2V0KX0gewotICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAtaW5Sb3dPZmZzZXQgJHZhcnMoJGRvbWFpbix3ZWxsdGFwcyxyb3dfb2Zmc2V0KSIKLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIH0gZWxzZWlmIHtbaW5mbyBleGlzdHMgdmFycyh3ZWxsdGFwcyxyb3dfb2Zmc2V0KV19IHsKLSAgICAgICAgICAgICAgICAgIGlmIHskdmFycyh3ZWxsdGFwcyxyb3dfb2Zmc2V0KX0gewotICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAtaW5Sb3dPZmZzZXQgJHZhcnMod2VsbHRhcHMscm93X29mZnNldCkiCi0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJGRvbWFpbix3ZWxsdGFwcyxjaGVja2VyYm9hcmQpXX0gewotICAgICAgICAgICAgICAgICAgaWYgeyR2YXJzKCRkb21haW4sd2VsbHRhcHMsY2hlY2tlcmJvYXJkKX0gewotICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAtY2hlY2tlcmJvYXJkIgotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgfSBlbHNlaWYge1tpbmZvIGV4aXN0cyB2YXJzKHdlbGx0YXBzLGNoZWNrZXJib2FyZCldfSB7Ci0gICAgICAgICAgICAgICAgICBpZiB7JHZhcnMod2VsbHRhcHMsY2hlY2tlcmJvYXJkKX0gewotICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAtY2hlY2tlcmJvYXJkIgotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgZXZhbCAkY29tbWFuZAotICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKHdlbGx0YXBzLHZlcmlmeV9ydWxlKV19IHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCB2Y29tbWFuZCAiIC1ydWxlICR2YXJzKHdlbGx0YXBzLHZlcmlmeV9ydWxlKSIKLSAgICAgICAgICAgICAgICAgIGV2YWwgJHZjb21tYW5kCi0gICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgcHV0cyAiPEZGPiBDYW5ub3QgcnVuIHZlcmlmeVdlbGxUYXAgYmVjYXVzZSB2YXJzKHdlbGx0YXBzLHZlcmlmeV9ydWxlKSBpcyBub3QgZGVmaW5lZCIKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0KLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMocHJlX2VuZGNhcCldICYmIAotICAgICAgICAgICAgIFtpbmZvIGV4aXN0cyB2YXJzKHBvc3RfZW5kY2FwKV19IHsKLSAgICAgICAgICAgIGFkZEVuZENhcCAtcHJlZml4IEVORENBUCBcCi0gICAgICAgICAgICAgICAgICAgICAgLXByZUNhcCAkdmFycyhwcmVfZW5kY2FwKSBcCi0gICAgICAgICAgICAgICAgICAgICAgLXBvc3RDYXAgJHZhcnMocG9zdF9lbmRjYXApCi0gICAgICAgICB9Ci0gICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMod2VsbHRhcHMpXX0gewotICAgICAgICAgICAgc2V0IGNvbW1hbmQgImFkZFdlbGxUYXAgLXByZWZpeCBXRUxMVEFQIC1jZWxsICR2YXJzKHdlbGx0YXBzKSAiCi0gICAgICAgICAgICBzZXQgdmNvbW1hbmQgInZlcmlmeVdlbGxUYXAgLWNlbGxzICR2YXJzKHdlbGx0YXBzKSAtcmVwb3J0ICR2YXJzKHJwdF9kaXIpL3dlbGx0YXAucnB0IgotICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKHdlbGx0YXBzLG1heF9nYXApXSB8fCBbaW5mbyBleGlzdHMgdmFycyh3ZWxsdGFwcyxjZWxsX2ludGVydmFsKV19IHsKLSAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyh3ZWxsdGFwcyxtYXhfZ2FwKV19IHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgLW1heEdhcCAkdmFycyh3ZWxsdGFwcyxtYXhfZ2FwKSIKLSAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiIC1jZWxsSW50ZXJ2YWwgJHZhcnMod2VsbHRhcHMsY2VsbF9pbnRlcnZhbCkiCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMod2VsbHRhcHMscm93X29mZnNldCldfSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiIC1pblJvd09mZnNldCAkdmFycyh3ZWxsdGFwcyxyb3dfb2Zmc2V0KSIKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyh3ZWxsdGFwcyxjaGVja2VyYm9hcmQpXX0gewotICAgICAgICAgICAgICAgaWYgeyR2YXJzKHdlbGx0YXBzLGNoZWNrZXJib2FyZCl9IHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgLWNoZWNrZXJib2FyZCIKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGV2YWwgJGNvbW1hbmQKLSAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyh3ZWxsdGFwcyx2ZXJpZnlfcnVsZSldfSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgdmNvbW1hbmQgIiAtcnVsZSAkdmFycyh3ZWxsdGFwcyx2ZXJpZnlfcnVsZSkiCi0gICAgICAgICAgICAgICBldmFsICR2Y29tbWFuZAotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIHB1dHMgIjxGRj4gQ0FOTk9UIFJVTiB2ZXJpZnlXZWxsVGFwIEJFQ0FVU0UgdmFycyh3ZWxsdGFwcyx2ZXJpZnlfcnVsZSkgSVMgTk9UIERFRklORUQiCi0gICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0gICAgICB9Ci0gICB9Ci0KLSAgIHByb2MgYnVmZmVyX2Fsd2F5c19vbl9uZXRzIHt9IHsKLQotICAgICAgZ2xvYmFsIHZhcnMKLSAgICAgIGdsb2JhbCBlcnJvcnMKLSAgICAgIGdsb2JhbCBidHNfbmV0cwotCi0KLSAgICAgIGlmIHshW2luZm8gZXhpc3RzIHZhcnMocG93ZXJfZG9tYWlucyldfSB7Ci0gICAgICAgICBzZXQgdmFycyhwb3dlcl9kb21haW5zKSBbOjpmZl9wcm9jczo6Z2V0X3Bvd2VyX2RvbWFpbnNdCi0gICAgICB9Ci0gICAgICBzZXQgcGRfYnVmZmVyX2xpc3QgW2xpc3RdCi0gICAgICBmb3JlYWNoIGRvbWFpbiAkdmFycyhwb3dlcl9kb21haW5zKSB7Ci0gICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJGRvbWFpbixhbHdheXNfb25fYnVmZmVycyldfSB7Ci0gICAgICAgICAgICBzZXQgdmFsIFtjb25jYXQgJGRvbWFpbiAkdmFycygkZG9tYWluLGFsd2F5c19vbl9idWZmZXJzKV0KLSAgICAgICAgICAgIGxhcHBlbmQgcGRfYnVmZmVyX2xpc3QgJHZhbAotICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhhbHdheXNfb25fYnVmZmVycyldfSB7Ci0gICAgICAgICAgICAgICBzZXQgdmFsIFtjb25jYXQgJGRvbWFpbiAkdmFycyhhbHdheXNfb25fYnVmZmVycyldCi0gICAgICAgICAgICAgICBsYXBwZW5kIHBkX2J1ZmZlcl9saXN0ICR2YWwKLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0KLSAgICAgIH0KLSAgICAgIGlmIHskcGRfYnVmZmVyX2xpc3QgPT0gIiJ9IHsKLSAgICAgICAgIFB1dHMgIjxGRj4gRVJST1I6IE5vIGFsd2F5cy1vbiBidWZmZXJzIGRlZmluZWQiIAotICAgICAgICAgcmV0dXJuCi0gICAgICB9IAotCi0gICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhhbHdheXNfb25fbmV0cyldfSB7Ci0gICAgICAgIHNldCBidHNfbmV0cyBbbGlzdF0KLSAgICAgICAgZm9yZWFjaCBuZXQgJHZhcnMoYWx3YXlzX29uX25ldHMpIHsKLSAgICAgICAgICBzZXQgdGVtcCBbam9pbiBbZGJGaW5kTmV0c0J5TmFtZSAkbmV0XV0KLSAgICAgICAgICBsYXBwZW5kIGJ0c19uZXRzICR0ZW1wCi0gICAgICAgIH0gCi0KLSMgICAgICAgIHNldCB0ZW1wIFtsaXN0XQotIyAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGFsd2F5c19vbl9uZXRzLG1heF9mYW5vdXQpXX0gewotIyAgICAgICAgICAgc2V0IG1heF9mYW5vdXQgJHZhcnMoYWx3YXlzX29uX25ldHMsbWF4X2Zhbm91dCkKLSMgICAgICAgICAgIGZvcmVhY2ggbmV0IFtqb2luICRidHNfbmV0c10gewotIyAgICAgICAgICAgICAgaWYge1tleHByIFtsbGVuZ3RoIFtkYkZpbmRJbnN0c09uTmV0ICRuZXRdXSAtIDFdID4gJG1heF9mYW5vdXR9IHsKLSMgICAgICAgICAgICAgICAgIGxhcHBlbmQgdGVtcCAkbmV0Ci0jICAgICAgICAgICAgICB9Ci0jICAgICAgICAgICB9Ci0jICAgICAgICAgICBzZXQgYnRzX25ldHMgW2pvaW4gJHRlbXBdCi0jICAgICAgICB9Ci0jCi0gICAgICAgIHNldCBidHNfbmV0cyBbam9pbiAkYnRzX25ldHNdCi0KLSAgICAgICAgUHV0cyAiPEZGPiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0iCi0gICAgICAgIFB1dHMgIjxGRj4gICAgICAgICAgICBCdWZmZXJpbmcgYWx3YXlzLW9uIG5ldHMiCi0gICAgICAgIFB1dHMgIjxGRj4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09IgotICAgICAgICBQdXRzICI8RkY+ICAgICAgICAgICAgICAgTmV0cyAuLi4iCi0gICAgICAgIGZvcmVhY2ggbmV0ICRidHNfbmV0cyB7Ci0gICAgICAgICAgIFB1dHMgIjxGRj4gICAgICAgICAgICAgICAgICAgICAgICAkbmV0IgotICAgICAgICB9Ci0KLSAgICAgICAgc2V0IGNvbW1hbmQgImJ1ZmZlclRyZWVTeW50aGVzaXMgLXByZWZpeCBCVFMiCi0gICAgICAgIGFwcGVuZCBjb21tYW5kICIgLW5ldHMgXFtsaXN0ICRidHNfbmV0c1xdIgotICAgICAgICBhcHBlbmQgY29tbWFuZCAiIC1wb3dlckRvbWFpbkJ1Zkxpc3QgXFtsaXN0ICRwZF9idWZmZXJfbGlzdFxdIgotCi0gICAgICAgIGlmIHshW2NhdGNoIHtzZXQgYXJnICR2YXJzKGFsd2F5c19vbl9uZXRzLG1heF90cmFuKX1dfSB7Ci0gICAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgLW1heFRyYW4gJGFyZyIKLSAgICAgICAgICAgUHV0cyAiPEZGPiAgICAgICAgICAgIE1heCBUcmFuIC0+ICRhcmciCi0gICAgICAgIH0KLSAgICAgICAgaWYgeyFbY2F0Y2gge3NldCBhcmcgJHZhcnMoYWx3YXlzX29uX25ldHMsbWF4X2Zhbm91dCl9XX0gewotICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiIC1tYXhGYW5vdXQgJGFyZyIKLSAgICAgICAgICAgUHV0cyAiPEZGPiAgICAgICAgICBNYXggRmFub3V0IC0+ICRhcmciCi0gICAgICAgIH0KLSAgICAgICAgaWYgeyFbY2F0Y2gge3NldCBhcmcgJHZhcnMoYWx3YXlzX29uX25ldHMsbWF4X3NrZXcpfV19IHsKLSAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAtbWF4U2tldyAkYXJnIgotICAgICAgICAgICBQdXRzICI8RkY+ICAgICAgICAgICAgTWF4IFNrZXcgLT4gJGFyZyIKLSAgICAgICAgfQotICAgICAgICBpZiB7IVtjYXRjaCB7c2V0IGFyZyAkdmFycyhhbHdheXNfb25fbmV0cyxtYXhfZGVsYXkpfV19IHsKLSAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAtbWF4RGVsYXkgJGFyZyIKLSAgICAgICAgICAgUHV0cyAiPEZGPiAgICAgICAgICAgTWF4IERlbGF5IC0+ICRhcmciCi0gICAgICAgIH0KLQotICAgICAgICBQdXRzICI8RkY+ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSIKLQotICAgICAgICBldmFsICRjb21tYW5kCi0KLSAgICAgfSBlbHNlIHsKLQotICAgICAgICBQdXRzICI8RkY+IE5vIGFsd2F5cyBvbiBuZXRzIHNwZWNpZmllZCIKLSAgICAgICAgUHV0cyAiPEZGPiBQbGVhc2Ugc2V0IHZhcnMoYWx3YXlzX29uX25ldHMpIGluIHlvdXIgc2V0dXAudGNsIgotICAgICB9Ci0gIH0KLQotICAgcHJvYyBnZXRfaWNnX3BpbnMge30gewotICAgCi0gICAgIGdsb2JhbCB2YXJzCi0gICAgIFB1dHMgIjxGRj4gSU5GTzogRXhlY3V0aW5nIGdldF9pY2dfcGlucyIKLSAgICAgZm9yZWFjaF9pbl9jb2xsZWN0aW9uIHBpbiBbZ2V0X2xpYl9waW5zICR2YXJzKGljZyxiYXNlX25hbWUpKi8qXSB7Ci0gICAgICAgaWYge1tnZXRfcHJvcGVydHkgJHBpbiBkaXJlY3Rpb25dPT0iaW4iJiZbZ2V0X3Byb3BlcnR5ICRwaW4gaXNfY2xvY2tfZ2F0aW5nX2VuYWJsZV09PSJ0cnVlIn0gewotICAgICAgICAgc2V0IG5hbWUgW2ZpbGUgdGFpbCBbZ2V0X3Byb3BlcnR5ICRwaW4gbmFtZV1dCi0gICAgICAgICBpZiB7W2luZm8gZXhpc3RzIGVuYWJsZV09PTEmJiRuYW1lIT0kZW5hYmxlfSB7Ci0gICAgICAgICAgIFB1dHMgIjxGRj4gRVJST1I6IFdoaWxlIHNlYXJjaGluZyBhbGwgaWNncywgZW5hYmxlIHBpbiBmb3IgW2dldF9wcm9wZXJ0eSAkcGluIG5hbWVdIGRvZXMgbm90IG1hdGNoIGV4aXN0aW5nICRlbmFibGUiCi0gICAgICAgICAgICNleGl0IDk5Ci0gICAgICAgICB9IGVsc2UgewotICAgICAgICAgICBzZXQgZW5hYmxlICRuYW1lCi0gICAgICAgICB9Ci0gICAgICAgfSBlbHNlaWYgeyhbZ2V0X3Byb3BlcnR5ICRwaW4gZGlyZWN0aW9uXSA9PSAib3V0Iil9IHsKLSAgICAgICAgIHNldCBuYW1lIFtmaWxlIHRhaWwgW2dldF9wcm9wZXJ0eSAkcGluIG5hbWVdXQotICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyBjbGtvdXRdPT0xJiYkbmFtZSE9JGNsa291dH0gewotICAgICAgICAgICBQdXRzICI8RkY+IEVSUk9SOiBXaGlsZSBzZWFyY2hpbmcgYWxsIGljZ3MsIGNsa291dCBwaW4gZm9yIFtnZXRfcHJvcGVydHkgJHBpbiBuYW1lXSBkb2VzIG5vdCBtYXRjaCBleGlzdGluZyAkY2xrb3V0IgotICAgICAgICAgICAjZXhpdCA5OQotICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgc2V0IGNsa291dCAkbmFtZQotICAgICAgICAgfQotICAgICAgIH0gZWxzZWlmIHsoW2dldF9wcm9wZXJ0eSAkcGluIGRpcmVjdGlvbl0gPT0gImluIikgJiYgKFtnZXRfcHJvcGVydHkgJHBpbiBpc19jbG9ja10gPT0gInRydWUiKX0gewotICAgICAgICAgc2V0IG5hbWUgW2ZpbGUgdGFpbCBbZ2V0X3Byb3BlcnR5ICRwaW4gbmFtZV1dCi0gICAgICAgICBpZiB7W2luZm8gZXhpc3RzIGNsa2luXT09MSYmJG5hbWUhPSRjbGtpbn0gewotICAgICAgICAgICBQdXRzICI8RkY+IEVSUk9SOiBXaGlsZSBzZWFyY2hpbmcgYWxsIGljZ3MsIGNsa2luIHBpbiBmb3IgW2dldF9wcm9wZXJ0eSAkcGluIG5hbWVdIGRvZXMgbm90IG1hdGNoIGV4aXN0aW5nICRjbGtpbiIKLSAgICAgICAgICAgI2V4aXQgOTkKLSAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgIHNldCBjbGtpbiAkbmFtZQotICAgICAgICAgfQotICAgICAgIH0KLSAgICAgfQotICAgICBpZiB7W2luZm8gZXhpc3RzIGNsa291dF09PTB9IHsKLSAgICAgICBQdXRzICI8RkY+IEVSUk9SOiBvdXRwdXQgcGluIG9mIGljZyAkdmFycyhpY2csYmFzZV9uYW1lKSB3YXMgbm90IGZvdW5kLCBleGl0aW5nIgotICAgICAgICNleGl0IDk5Ci0gICAgIH0KLSAgICAgaWYge1tpbmZvIGV4aXN0cyBjbGtpbl09PTB9IHsKLSAgICAgICBQdXRzICI8RkY+IEVSUk9SOiBjbGsgcGluIG9mIGljZyAkdmFycyhpY2csYmFzZV9uYW1lKSB3YXMgbm90IGZvdW5kLCBleGl0aW5nIgotICAgICAgICNleGl0IDk5Ci0gICAgIH0KLSAgICAgaWYge1tpbmZvIGV4aXN0cyBlbmFibGVdPT0wfSB7Ci0gICAgICAgUHV0cyAiPEZGPiBFUlJPUjogZW5hYmxlIHBpbiBvZiBpY2cgJHZhcnMoaWNnLGJhc2VfbmFtZSkgd2FzIG5vdCBmb3VuZCwgZXhpdGluZyIKLSAgICAgICAjZXhpdCA5OQotICAgICB9Ci0gICAgIHNldCB2YXJzKGljZyxvdXRwdXRfcGluKSAkY2xrb3V0Ci0gICAgIHNldCB2YXJzKGljZyxpbnB1dF9waW4pICAkZW5hYmxlCi0gICAgIHNldCB2YXJzKGljZyxjbG9ja19waW4pICAkY2xraW4KLSAgICAgUHV0cyAiPEZGPiBJTkZPOiBGaW5pc2hlZCBleGVjdXRpbmcgZ2V0X2ljZ19waW5zIgotICAgCi0gICB9Ci0KLSAgIHByb2MgZ2V0X2J1Zl9waW5zIHt9IHsKLSAgIAotICAgICBnbG9iYWwgdmFycwotICAgICBQdXRzICI8RkY+IElORk86IEV4ZWN1dGluZyBnZXRfYnVmX3BpbnMiCi0gICAgIGZvcmVhY2hfaW5fY29sbGVjdGlvbiBwaW4gW2dldF9saWJfcGlucyAkdmFycyhhbmNob3JfYnVmZmVyKS8qXSB7Ci0gICAgICAgaWYge1tnZXRfcHJvcGVydHkgJHBpbiBkaXJlY3Rpb25dPT0iaW4ifSB7Ci0gICAgICAgICBzZXQgaW4gW2ZpbGUgdGFpbCBbZ2V0X3Byb3BlcnR5ICRwaW4gbmFtZV1dCi0gICAgICAgfSBlbHNlaWYge1tnZXRfcHJvcGVydHkgJHBpbiBkaXJlY3Rpb25dID09ICJvdXQifSB7Ci0gICAgICAgICBzZXQgb3V0IFtmaWxlIHRhaWwgW2dldF9wcm9wZXJ0eSAkcGluIG5hbWVdXQotICAgICAgIH0KLSAgICAgfQotICAgICBpZiB7W2luZm8gZXhpc3RzIG91dF09PTB9IHsKLSAgICAgICBQdXRzICI8RkY+IEVSUk9SOiBvdXRwdXQgcGluIG9mIGFuY2hvciBidWZmZXIgJHZhcnMoYW5jaG9yX2J1ZmZlcikgd2FzIG5vdCBmb3VuZCwgZXhpdGluZyIKLSAgICAgICAjZXhpdCA5OQotICAgICB9Ci0gICAgIGlmIHtbaW5mbyBleGlzdHMgaW5dPT0wfSB7Ci0gICAgICAgUHV0cyAiPEZGPiBFUlJPUjogaW5wdXQgcGluIG9mIGFuY2hvciBidWZmZXIgJHZhcnMoYW5jaG9yX2J1ZmZlcikgd2FzIG5vdCBmb3VuZCwgZXhpdGluZyIKLSAgICAgICAjZXhpdCA5OQotICAgICB9Ci0gICAgIHNldCB2YXJzKGFuY2hvcl9idWZmZXIsb3V0cHV0X3BpbikgJG91dAotICAgICBzZXQgdmFycyhhbmNob3JfYnVmZmVyLGlucHV0X3BpbikgICRpbgotICAgICBzZXQgdmFycyhidWYsb3V0cHV0X3BpbikgJG91dAotICAgICBzZXQgdmFycyhidWYsaW5wdXRfcGluKSAgJGluCi0gICAKLSAgICAgUHV0cyAiPEZGPiBJTkZPOiBGaW5pc2hlZCBleGVjdXRpbmcgZ2V0X2J1Zl9waW5zIgotICAgCi0gICB9Ci0KLSAgIHByb2MgZ2V0X3JlZ19waW5zIHt9IHsKLSAgIAotICAgICAgZ2xvYmFsIHZhcnMgCi0gICAgICBQdXRzICI8RkY+IElORk86IEV4ZWN1dGluZyBnZXRfcmVnX3BpbnMiCi0gICAgICBzZXQgZ290X3BpbiBmYWxzZQotICAgICAgZm9yZWFjaF9pbl9jb2xsZWN0aW9uIHJlZyBbYWxsX3JlZ2lzdGVyc10gewotICAgICAgICAgaWYgeyRnb3RfcGlufSB7Ci0gICAgICAgICAgICByZXR1cm4KLSAgICAgICAgIH0KLSAgICAgICAgIGZvcmVhY2hfaW5fY29sbGVjdGlvbiBwaW4gW2dldF9waW5zIFtnZXRfcHJvcGVydHkgJHJlZyBoaWVyYXJjaGljYWxfbmFtZV0vKl0gewotICAgICAgICAgICAgaWYgW2dldF9wcm9wZXJ0eSAkcGluIGlzX2Nsb2NrXSB7Ci0gICAgICAgICAgICAgICBzZXQgdmFycyhyZWcsY2xvY2tfcGluKSBbZmlsZSB0YWlsIFtnZXRfcHJvcGVydHkgJHBpbiBoaWVyYXJjaGljYWxfbmFtZV1dCi0gICAgICAgICAgICAgICBzZXQgZ290X3BpbiB0cnVlCi0gICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0gICAgICB9Ci0gICAgICBQdXRzICI8RkY+IElORk86IEZpbmlzaGVkIGV4ZWN1dGluZyBnZXRfcmVnX3BpbnMiCi0gICB9Ci0KLSAgIHByb2MgZ2V0X3RlY2hfcGluX2luZm8ge30gewotICAgCi0gICAgICBnbG9iYWwgdmFycwotICAgCi0gICAgICBnZXRfaWNnX3BpbnMKLSAgICAgIGdldF9idWZfcGlucwotICAgICAgZ2V0X3JlZ19waW5zCi0gICAKLSAgICAgIHNldCBvcCBbb3BlbiAuZmYucGlucy50Y2wgd10KLSAgICAgIGZvcmVhY2ggdHlwZSB7aWNnIGJ1ZiByZWd9IHsKLSAgICAgICAgIGZvcmVhY2ggcGluIHtjbG9jayBlbmFibGUgaW5wdXQgb3V0cHV0fSB7Ci0gICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJHR5cGUsJHtwaW59X3BpbildfSB7Ci0gICAgICAgICAgICAgICBwdXRzICRvcCAic2V0IHZhcnMoJHR5cGUsJHtwaW59X3BpbikgJHZhcnMoJHR5cGUsJHtwaW59X3BpbikiCi0gICAgICAgICAgICAgICBQdXRzICI8RkY+IElORk86IEZvdW5kICR0eXBlICRwaW4gLT4gJHZhcnMoJHR5cGUsJHtwaW59X3BpbikiIAotICAgICAgICAgICAgfQotICAgICAgICAgfQotICAgICAgfQotICAgICAgY2xvc2UgJG9wCi0gICB9Ci0KLSAgIHByb2MgZ2V0X2FsbF91c2FibGVfYnVmaW52cyB7fSB7Ci0gICAKLSMgICAgIFB1dHMgIklORk86IEV4ZWN1dGluZyBnZXRfYWxsX3VzYWJsZV9idWZpbnZzIgotICAgICAgc2V0IGJ1Zl9saXN0ICIiCi0gICAgICBzZXQgaW52X2xpc3QgIiIKLSAgICAgIHNldCBjZWxsX3R5cGVzICBbZGJHZXQgaGVhZC5hbGxDZWxscy5uYW1lICpdIAotICAgICAgZm9yZWFjaCBjZWxsICRjZWxsX3R5cGVzIHsKLSAgICAgICAgIHNldCBjZWxsX2lkIFsgZGJHZXRDZWxsQnlOYW1lICAkY2VsbF0KLSAgICAgICAgIGlmIHsgW2RiSXNDZWxsRG9udFVzZSAkY2VsbF9pZF0gfSB7IGNvbnRpbnVlIH0KLSAgICAgICAgIGlmIHsgW2RiSXNDZWxsRG9udFRvdWNoICRjZWxsX2lkXSB9IHsgY29udGludWUgfQotICAgICAgICAgaWYgeyBbZGJJc0NlbGxTZXF1ZW50aWFsICRjZWxsX2lkXSB9IHsgY29udGludWUgfQotICAgICAgICAgaWYgeyBbOjpDUEY6OmlzQWx3YXlzT25DZWxsICRjZWxsXSB9IHsgY29udGludWUgfQotICAgICAgICAgaWYgIHsgWyBkYklzQ2VsbEJ1ZmZlciAkY2VsbF9pZF0gIH0gewotICAgICAgICAgICAgbGFwcGVuZCBidWZfbGlzdCAkY2VsbAotICAgICAgICAgfSBlbHNlaWYgeyBbICBkYklzQ2VsbEludmVydGVyICRjZWxsX2lkIF0gfSB7Ci0gICAgICAgICAgICBsYXBwZW5kIGludl9saXN0ICAkY2VsbAotICAgICAgICAgfQotICAgICAgfQotIyAgICAgUHV0cyAiSU5GTzogRm91bmQgW2xsZW5ndGggJGJ1Zl9saXN0XSBidWZmZXJzIGFuZCBbbGxlbmd0aCAkaW52X2xpc3RdIGludmVydGVycyIKLSMgICAgIFB1dHMgIklORk86IEZpbmlzaGVkIGV4ZWN1dGluZyBnZXRfYWxsX3VzYWJsZV9idWZpbnZzIgotICAgICByZXR1cm4gW2xpc3QgJGJ1Zl9saXN0ICRpbnZfbGlzdF0KLSAgIAotICAgfQotICAgcHJvYyBhc3NpZ25fY3RzX2NlbGxzIHt9IHsKLQotIyAgUHV0cyAiSU5GTzogRXhlY3V0aW5nIGFzc2lnbl9jdHNfY2VsbHMiCi0KLSAgICAgIGdsb2JhbCB2YXJzCi0gICAgICBpZiB7IVtpbmZvIGV4aXN0cyB2YXJzKGN0c19jZWxscyldfSB7Ci0gICAgICAgICBzZXQgcmMgWzo6ZmZfcHJvY3M6OmdldF9hbGxfdXNhYmxlX2J1ZmludnNdCi0gICAgICAgICBzZXQgdmFycyhjdHNfY2VsbHMpIFtjb25jYXQgJHJjXQotICAgICAgfSBlbHNlIHsKLSAgICAgICAgIHNldCBnb3Rfb25lIDAKLSAgICAgICAgIGZvcmVhY2ggY2VsbCAkdmFycyhjdHNfY2VsbHMpIHsKLSAgICAgICAgICAgIGlmIHtbZGJHZXRDZWxsQnlOYW1lICRjZWxsXSE9IjB4MCJ9IHsKLSAgICAgICAgICAgICAgIHNldCBnb3Rfb25lIDEKLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0KLSAgICAgICAgIGlmIHskZ290X29uZT09MH0gewotICAgICAgICAgICAgUHV0cyAiPEZGPiBXQVJOSU5HOiB0aGVyZSBpcyBubyB2YWxpZCBjZWxsIGluIHZhcnMoY3RzX2NlbGxzKSwgd2lsbCBhdXRvIHNldCB0byBhbGwgdXNhYmxlIGJ1ZmZlcnMvaW52ZXJ0ZXJzIgotICAgICAgICAgICAgc2V0IHJjIFs6OmZmX3Byb2NzOjpnZXRfYWxsX3VzYWJsZV9idWZpbnZzXQotICAgICAgICAgICAgc2V0IHZhcnMoY3RzX2NlbGxzKSBbY29uY2F0ICRyY10KLSAgICAgICAgIH0KLSAgICAgIH0KLSAgICAgIHNldCB2YXJzKGN0c19pbnZlcnRlcl9jZWxscykgW2xpc3RdCi0gICAgICBzZXQgdmFycyhjdHNfYnVmZmVyX2NlbGxzKSBbbGlzdF0KLSAgICAgIGZvcmVhY2ggY2VsbCB7JHZhcnMoY3RzX2NlbGxzKX0gewotICAgICAgICAgaWYgeyBbZGJJc0NlbGxCdWZmZXIgJGNlbGxfaWRdIH0gewotICAgICAgICAgICAgbGFwcGVuZCB2YXJzKGN0c19idWZmZXJfY2VsbHMpICRjZWxsCi0gICAgICAgICB9IGVsc2VpZiB7IFtkYklzQ2VsbEludmVydGVyICRjZWxsX2lkXSB9IHsKLSAgICAgICAgICAgIGxhcHBlbmQgdmFycyhjdHNfaW52ZXJ0ZXJfY2VsbHMpICRjZWxsCi0gICAgICAgICB9Ci0gICAgICB9Ci0jICAgICAgUHV0cyAiSU5GTzogRmluaXNoZWQgZXhlY3V0aW5nIGFzc2lnbl9jdHNfY2VsbHMiCi0gICB9Ci0KLSAgIHByb2MgZW5hYmxlX21tbWMge30gewotICAgCi0gICAgIFB1dHMgIjxGRj4gSU5GTzogRXhlY3V0aW5nIGVuYWJsZV9tbW1jIgotICAgICBnbG9iYWwgdmFycwotICAgICAjIGNvbmZpcm0gZGVmYXVsdCB2aWV3IGRlZmluZWQKLSAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGRlZmF1bHRfc2V0dXBfdmlldyldPT0wfSB7Ci0gICAgICAgUHV0cyAiRVJST1I6IGRlZmF1bHQgdmlldyB2YXJzKGRlZmF1bHRfc2V0dXBfdmlldykgbm90IGRlZmluZWQsIGV4aXRpbmciCi0gICAgICAgI2V4aXQgOTkKLSAgICAgfQotICAgICBzZXQgdmlldyAkdmFycyhkZWZhdWx0X3NldHVwX3ZpZXcpCi0gICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkdmlldyxkZWxheV9jb3JuZXIpXT09MH0gewotICAgICAgIFB1dHMgIjxGRj4gRVJST1I6IGRlZmF1bHQgZGVsYXlfY29ybmVyIHZhcnMoJHZpZXcsZGVsYXlfY29ybmVyKSBub3QgZGVmaW5lZCwgZXhpdGluZyIKLSAgICAgICAjZXhpdCA5OQotICAgICB9Ci0gICAgIHNldCBkYyAkdmFycygkdmlldyxkZWxheV9jb3JuZXIpICAKLSAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCRkYyxsaWJyYXJ5X3NldCldPT0wfSB7Ci0gICAgICAgUHV0cyAiPEZGPiBFUlJPUjogZGVmYXVsdCBsaWJyYXJ5X3NldCB2YXJzKCRkYyxsaWJyYXJ5X3NldCkgbm90IGRlZmluZWQsIGV4aXRpbmciCi0gICAgICAgI2V4aXQgOTkKLSAgICAgfSAKLSAgICAgc2V0IGxpYnNldCAkdmFycygkZGMsbGlicmFyeV9zZXQpCi0gICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkZGMscmNfY29ybmVyKV09PTB9IHsKLSAgICAgICBQdXRzICI8RkY+IEVSUk9SOiBkZWZhdWx0IHJjX2Nvcm5lciB2YXJzKCRkYyxyY19jb3JuZXIpIG5vdCBkZWZpbmVkLCBleGl0aW5nIgotICAgICAgICNleGl0IDk5Ci0gICAgIH0KLSAgICAgc2V0IHJjICR2YXJzKCRkYyxyY19jb3JuZXIpCi0gICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkdmlldyxjb25zdHJhaW50X21vZGUpXT09MH0gewotICAgICAgIFB1dHMgIjxGRj4gRVJST1I6IGRlZmF1bHQgY29uc3RyYWludF9tb2RlIHZhcnMoJHZpZXcsY29uc3RyYWludF9tb2RlKSBub3QgZGVmaW5lZCwgZXhpdGluZyIKLSAgICAgICAjZXhpdCA5OQotICAgICB9Ci0gICAgIHNldCBtb2RlICR2YXJzKCR2aWV3LGNvbnN0cmFpbnRfbW9kZSkgIAotICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJG1vZGUscHJlX2N0c19zZGMpXT09MH0gewotICAgICAgIFB1dHMgIjxGRj4gRVJST1I6IHByZV9jdHNfc2RjIGZvciBjb25zdHJhaW50X21vZGUgJG1vZGUgaW4gdmFycygkbW9kZSxwcmVfY3RzX3NkYyksIGV4aXRpbmciCi0gICAgICAgI2V4aXQgOTkKLSAgICAgfQotICAgCi0gICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkbGlic2V0LHRpbWluZyldPT0wfSB7Ci0gICAgICAgUHV0cyAiPEZGPiBFUlJPUjogbGlicmFyeV9zZXQgJGxpYnNldCBsaWJyYXJpZXMgbm90IGRlZmluZWQgaW4gdmFycygkbGlic2V0LHRpbWluZyksIGV4aXRpbmciCi0gICAgICAgI2V4aXQgOTkKLSAgICAgfQotICAgICBjcmVhdGVfbGlicmFyeV9zZXQgLW5hbWUgJGxpYnNldCAtdGltaW5nICR2YXJzKCRsaWJzZXQsdGltaW5nKQotICAgCi0gICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkcmMsY2FwX3RhYmxlKV09PTB9IHsKLSAgICAgICBQdXRzICI8RkY+IEVSUk9SOiBjYXBfdGFibGUgZm9yIHJjX2Nvcm5lciAkcmMgbm90IGRlZmluZWQsIGV4aXRpbmciCi0gICAgICAgI2V4aXQgOTkKLSAgICAgfQotICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJHJjLHByZV9yb3V0ZV9yZXNfZmFjdG9yKV09PTB9IHsKLSAgICAgICBQdXRzICI8RkY+IFdBUk5JTkc6IHByZV9yb3V0ZV9yZXNfZmFjdG9yIGZvciByY19jb3JuZXIgJHJjIG5vdCBkZWZpbmVkLCBzZXR0aW5nIHRvIDEuMCIKLSAgICAgICBzZXQgdmFycygkcmMscHJlX3JvdXRlX3Jlc19mYWN0b3IpIDEuMAotICAgICB9Ci0gICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkcmMscHJlX3JvdXRlX2NhcF9mYWN0b3IpXT09MH0gewotICAgICAgIFB1dHMgIjxGRj4gV0FSTklORzogcHJlX3JvdXRlX2NhcF9mYWN0b3IgZm9yIHJjX2Nvcm5lciAkcmMgbm90IGRlZmluZWQsIHNldHRpbmcgdG8gMS4wIgotICAgICAgIHNldCB2YXJzKCRyYyxwcmVfcm91dGVfY2FwX2ZhY3RvcikgMS4wCi0gICAgIH0KLSAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCRyYyxUKV09PTB9IHsKLSAgICAgICBQdXRzICI8RkY+IFdBUk5JTkc6IHRlbXBlcmF0dXJlIGZvciByY19jb3JuZXIgJHJjIG5vdCBkZWZpbmVkLCBzZXR0aW5nIHRvIDI1IgotICAgICAgIHNldCB2YXJzKCRyYyxwcmVfcm91dGVfY2FwX2ZhY3RvcikgMjUKLSAgICAgfQotICAgICBjcmVhdGVfcmNfY29ybmVyIC1uYW1lICRyYyBcCi0gICAgICAgICAgICAgICAgICAgICAgLWNhcF90YWJsZSAkdmFycygkcmMsY2FwX3RhYmxlKSAgXAotICAgICAgICAgICAgICAgICAgICAgIC1wcmVSb3V0ZV9yZXMgJHZhcnMoJHJjLHByZV9yb3V0ZV9yZXNfZmFjdG9yKSAgXAotICAgICAgICAgICAgICAgICAgICAgIC1wcmVSb3V0ZV9jYXAgJHZhcnMoJHJjLHByZV9yb3V0ZV9jYXBfZmFjdG9yKSAgXAotICAgICAgICAgICAgICAgICAgICAgIC1UICR2YXJzKCRyYyxUKQotICAgCi0gICAgIGNyZWF0ZV9kZWxheV9jb3JuZXIgLW5hbWUgJGRjIC1saWJyYXJ5X3NldCAkbGlic2V0IC1yY19jb3JuZXIgJHJjCi0gICAgIGlmIHtbZmlsZSBpc2ZpbGUgW2xpbmRleCB2YXJzKCRtb2RlLHByZV9jdHNfc2RjKSAwXV19IHsKLSAgICAgICBpZiB7W2xzZWFyY2ggW2FsbF9jb25zdHJhaW50X21vZGVzXSAkbW9kZV0gPT0gLTF9IHsKLSAgICAgICAgICBjcmVhdGVfY29uc3RyYWludF9tb2RlIC1uYW1lICRtb2RlIC1zZGNfZmlsZXMgJHZhcnMoJG1vZGUscHJlX2N0c19zZGMpCi0gICAgICAgfSBlbHNlIHsKLSAgICAgICAgICB1cGRhdGVfY29uc3RyYWludF9tb2RlIC1uYW1lICRtb2RlIC1zZGNfZmlsZXMgJHZhcnMoJG1vZGUscHJlX2N0c19zZGMpCi0gICAgICAgfQotICAgICB9Ci0gICAKLSAgICAgY3JlYXRlX2FuYWx5c2lzX3ZpZXcgLW5hbWUgJHZpZXcgLWNvbnN0cmFpbnRfbW9kZSAkbW9kZSAtZGVsYXlfY29ybmVyICRkYwotICAgICBzZXRfYW5hbHlzaXNfdmlldyAtc2V0dXAgW2xpc3QgJHZpZXddIC1ob2xkIFtsaXN0ICR2aWV3XQotICAgICBmb3JlYWNoIG9iamVjdCAiY2VsbCBuZXQiIHsKLSAgICAgICBmb3JlYWNoIG1vZGUgImVhcmx5IGxhdGUiIHsKLSAgICAgICAgIGZvcmVhY2ggdHlwZSAiZGF0YSBjbG9jayIgewotICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJGRjLCR7dHlwZX1fJHtvYmplY3R9XyR7bW9kZX0pXX0gewotICAgICAgICAgICAgIHNldCBnZW5lcmF0ZWQgMQotICAgICAgICAgICAgIHNldF90aW1pbmdfZGVyYXRlIC1kZWxheV9jb3JuZXIgJGRjIC0kdHlwZSAtJHtvYmplY3R9X2RlbGF5IC0kbW9kZSAkdmFycygkZGMsJHt0eXBlfV8ke29iamVjdH1fJHttb2RlfSkKLSAgICAgICAgICAgfQotICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJGRjLCR7b2JqZWN0fV8ke3R5cGV9XyR7bW9kZX0pXX0gewotICAgICAgICAgICAgIHNldF90aW1pbmdfZGVyYXRlIC1kZWxheV9jb3JuZXIgJGRjIC0kdHlwZSAtJHtvYmplY3R9X2RlbGF5IC0kbW9kZSAkdmFycygkZGMsJHtvYmplY3R9XyR7dHlwZX1fJHttb2RlfSkKLSAgICAgICAgICAgfQotICAgICAgICAgfQotICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCRkYyxjZWxsX2NoZWNrXyR7bW9kZX0pXX0gewotICAgICAgICAgICBzZXRfdGltaW5nX2RlcmF0ZSAtZGVsYXlfY29ybmVyICRkYyAtY2VsbF9jaGVjayAtJG1vZGUgJHZhcnMoJGRjLGNlbGxfY2hlY2tfJHttb2RlfSkKLSAgICAgICAgIH0KLSAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkZGMsY2hlY2tfY2VsbF8ke21vZGV9KV19IHsKLSAgICAgICAgICAgIHNldF90aW1pbmdfZGVyYXRlIC1kZWxheV9jb3JuZXIgJGRjIC1jZWxsX2NoZWNrIC0kbW9kZSAkdmFycygkZGMsY2hlY2tfY2VsbF8ke21vZGV9KQotICAgICAgICAgfQotICAgICAgIH0KLSAgICAgfQotICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoZGVyYXRlX3RjbCldJiZbZmlsZSBpc2ZpbGUgJHZhcnMoZGVyYXRlX3RjbCldfSB7Ci0gICAgICAgc291cmNlICR2YXJzKGRlcmF0ZV90Y2wpCi0gICAgIH0KLSAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCRkYyxkZXJhdGVfdGNsKV0mJltmaWxlIGlzZmlsZSAkdmFycygkZGMsZGVyYXRlX3RjbCldfSB7Ci0gICAgICAgc291cmNlICR2YXJzKCRkYyxkZXJhdGVfdGNsKQotICAgICB9Ci0gICAgIFB1dHMgIjxGRj4gSU5GTzogRmluaXNoZWQgZXhlY3V0aW5nIGVuYWJsZV9tbW1jIgotICAgCi0gICB9Ci0KLSAgIHByb2MgYnVpbGRfZ3VpZGVzIHt9IHsKLSAgIAotICAgICBQdXRzICI8RkY+IElORk86IENyZWF0aW5nIGZsb29ycGxhbiBndWlkZXMgLi4uIgotICAgICBnbG9iYWwgdmFycwotICAgICB1bmxvZ0NvbW1hbmQgYWRkSW5zdFRvSW5zdEdyb3VwCi0gICAgIHVubG9nQ29tbWFuZCBjcmVhdGVJbnN0R3JvdXAKLSAgICAgdW5sb2dDb21tYW5kIGRlbGV0ZUluc3RHcm91cAotICAgICB1bmxvZ0NvbW1hbmQgc2V0T2JqRlBsYW5Cb3hMaXN0Ci0gICAgIHN1cHByZXNzTWVzc2FnZSBFTkNTWUMtMTk2MgotICAgICBzdXBwcmVzc01lc3NhZ2UgRU5DU1lDLTc5MQotICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoZ3VpZGVzKV09PTEmJltsbGVuZ3RoICR2YXJzKGd1aWRlcyldPjB9IHsKLSAgICAgICBmb3JlYWNoIGd1aWRlICR2YXJzKGd1aWRlcykgewotICAgICAgICAgIyBDaGVjayB0byBtYWtlIHN1cmUgZ3VpZGUgaGFzIGEgYm91bmQgYW5kIHNvbWUgaW5jbHVkZXMKLSAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhndWlkZSwkZ3VpZGUsYm91bmRzKV09PTB8fFtsbGVuZ3RoICR2YXJzKGd1aWRlLCRndWlkZSxib3VuZHMpXTw0fSB7Ci0gICAgICAgICAgIFB1dHMgIjxGRj4gV0FSTklORzogR3VpZGUgJGd1aWRlIGRvZXMgbm90IGhhdmUgYSBwcm9wZXJseSBzcGVjaWZpZWQgYm91bmQsIGd1aWRlIG5vdCBjcmVhdGVkIgotICAgICAgICAgfSBlbHNlaWYge1tpbmZvIGV4aXN0cyB2YXJzKGd1aWRlLCRndWlkZSxpbmNsdWRlKV09PTB8fFtsbGVuZ3RoICR2YXJzKGd1aWRlLCRndWlkZSxpbmNsdWRlKV08MX0gewotICAgICAgICAgICBQdXRzICI8RkY+IFdBUk5JTkc6IEd1aWRlICRndWlkZSBkb2VzIG5vdCBoYXZlIGFueSBpbmNsdWRlcywgZ3VpZGUgbm90IGNyZWF0ZWQiCi0gICAgICAgICB9IGVsc2UgewotICAgICAgICAgICBjYXRjaCB7ZGVsZXRlSW5zdEdyb3VwICRndWlkZX0KLSAgICAgICAgICAgY2F0Y2gge3Vuc2V0IGluc3RzfQotICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoZ3VpZGUsJGd1aWRlLGV4Y2x1ZGUpXT09MH0gewotICAgICAgICAgICAgIHNldCB2YXJzKGd1aWRlLCRndWlkZSxleGNsdWRlKSAiIgotICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgIHJlZ3N1YiAtYWxsICJcXFwqIiAkdmFycyhndWlkZSwkZ3VpZGUsZXhjbHVkZSkgIlwuXCoiIGV4Y2x1ZGVzCi0gICAgICAgICAgIH0KLSAgICAgICAgICAgZm9yZWFjaCBpbmNsdWRlICR2YXJzKGd1aWRlLCRndWlkZSxpbmNsdWRlKSB7Ci0gICAgICAgICAgICAgZm9yZWFjaCBpIFtkYkZpbmRJbnN0c0J5TmFtZSAke2luY2x1ZGV9Kl0gewotICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGd1aWRlLCRndWlkZSxleGNsdWRlKV09PTEmJltsbGVuZ3RoICR2YXJzKGd1aWRlLCRndWlkZSxleGNsdWRlKV0+MCYmW3JlZ2V4cCBbam9pbiAkZXhjbHVkZXMgfF0gJGldPDF9IHsKLSAgICAgICAgICAgICAgICAgc2V0IGluc3RzKCRpKSAxCi0gICAgICAgICAgICAgICB9IGVsc2VpZiB7W2xsZW5ndGggJHZhcnMoZ3VpZGUsJGd1aWRlLGV4Y2x1ZGUpXTwxfSB7Ci0gICAgICAgICAgICAgICAgIHNldCBpbnN0cygkaSkgMQotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgIH0KLSAgICAgICAgICAgfQotICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIGluc3RzXT09MSYmW2xsZW5ndGggW2FycmF5IG5hbWVzIGluc3RzXV0+MH0gewotICAgICAgICAgICAgIHNldCB4MSBbbGluZGV4ICR2YXJzKGd1aWRlLCRndWlkZSxib3VuZHMpIDBdCi0gICAgICAgICAgICAgc2V0IHkxIFtsaW5kZXggJHZhcnMoZ3VpZGUsJGd1aWRlLGJvdW5kcykgMV0KLSAgICAgICAgICAgICBzZXQgeDIgW2xpbmRleCAkdmFycyhndWlkZSwkZ3VpZGUsYm91bmRzKSAyXQotICAgICAgICAgICAgIHNldCB5MiBbbGluZGV4ICR2YXJzKGd1aWRlLCRndWlkZSxib3VuZHMpIDNdCi0gICAgICAgICAgICAgY3JlYXRlSW5zdEdyb3VwICRndWlkZSAtZ3VpZGUgJHgxICR5MSAkeDIgJHkyIAotICAgICAgICAgICAgIHNldCBjIDAKLSAgICAgICAgICAgICBmb3JlYWNoIGkgW2FycmF5IG5hbWVzIGluc3RzXSB7Ci0gICAgICAgICAgICAgICBhZGRJbnN0VG9JbnN0R3JvdXAgJGd1aWRlICRpCi0gICAgICAgICAgICAgICBpbmNyIGMKLSAgICAgICAgICAgICB9IAotICAgICAgICAgICAgIHNldCBjbWQgInNldE9iakZQbGFuQm94TGlzdCBHcm91cCAkZ3VpZGUiCi0gICAgICAgICAgICAgZm9yZWFjaCBpICR2YXJzKGd1aWRlLCRndWlkZSxib3VuZHMpIHsKLSAgICAgICAgICAgICAgIHNldCBjbWQgIiR7Y21kfSAkaSIKLSAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgY2F0Y2gge2V2YWwgJGNtZH0KLSAgICAgICAgICAgICBQdXRzICI8RkY+IElORk86IEFkZGVkICRjIGluc3RhbmNlcyB0byBndWlkZSAkZ3VpZGUiCi0gICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgUHV0cyAiPEZGPiBXQVJOSU5HOiBTcGVjaWZpZWQgZ3VpZGUgJGd1aWRlIGhhcyBubyBpbnN0YW5jZXMsIG5vdCBjcmVhdGluZyIKLSAgICAgICAgICAgfQotICAgICAgICAgfQotICAgICAgIH0KLSAgICAgfSBlbHNlIHsKLSAgICAgICBQdXRzICI8RkY+IElORk86IE5vIGd1aWRlcyBzcGVjaWZpZWQgLi4uIGV4aXRpbmciCi0gICAgIH0KLSAgICAgbG9nQ29tbWFuZCBhZGRJbnN0VG9JbnN0R3JvdXAKLSAgICAgbG9nQ29tbWFuZCBjcmVhdGVJbnN0R3JvdXAKLSAgICAgbG9nQ29tbWFuZCBkZWxldGVJbnN0R3JvdXAKLSAgICAgbG9nQ29tbWFuZCBzZXRPYmpGUGxhbkJveExpc3QKLSAgICAgUHV0cyAiPEZGPiBJTkZPOiBGaW5pc2hlZCBleGVjdXRpbmcgYnVpbGRfZ3VpZGVzIgotICAgCi0gICB9Ci0KLSAgIHByb2MgYWRkX2Jsb2NrYWdlcyB7fSB7Ci0gICAKLSAgICAgIFB1dHMgIjxGRj5JTkZPOiBDcmVhdGluZyBibG9ja2FnZXMgLi4uIgotICAgCi0gICAgICBnbG9iYWwgdmFycwotICAgCi0gICAgICBpZiB7IVtpbmZvIGV4aXN0cyB2YXJzKGJsb2NrYWdlcyldfSB7Ci0gICAgICAgICBwdXRzICI8RkY+SU5GTzogTm8gYmxvY2thZ2VzIGluZm8gZGVmaW5lZCAuLi4gZXhpc3RpbmciCi0gICAgICAgICByZXR1cm4KLSAgICAgIH0KLSAgICAgIHNldCBjb21tYW5kcyAiIgotICAgICAgZm9yZWFjaCBibG9ja2FnZSAkdmFycyhibG9ja2FnZXMpIHsKLSAgICAgICAgIHN3aXRjaCAkdmFycyhibG9ja2FnZSwkYmxvY2thZ2UsdHlwZSkgewotICAgICAgICAgICAgaGFyZCB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgImNyZWF0ZU9ic3RydWN0ICR2YXJzKGJsb2NrYWdlLCRibG9ja2FnZSxib3VuZHMpIC1uYW1lICRibG9ja2FnZVxuIgotICAgICAgICAgICAgfQotICAgICAgICAgICAgc29mdCB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgImNyZWF0ZU9ic3RydWN0ICR2YXJzKGJsb2NrYWdlLCRibG9ja2FnZSxib3VuZHMpIC1uYW1lICRibG9ja2FnZSAtdHlwZSBzb2Z0XG4iCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBwYXJ0aWFsIHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiY3JlYXRlT2JzdHJ1Y3QgJHZhcnMoYmxvY2thZ2UsJGJsb2NrYWdlLGJvdW5kcykgLW5hbWUgJGJsb2NrYWdlIC10eXBlIHNvZnRcbiIKLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0KLSAgICAgIH0KLSAgIAotICAgICAgZXZhbCAkY29tbWFuZHMKLSAgIAotICAgICAgUHV0cyAiPEZGPklORk86IEZpbmlzaGVkIGV4ZWN1dGluZyBhZGRfYmxvY2thZ2VzIC4uLiIKLSAgIH0KLQotICAgcHJvYyBzYXZlX3Jlc3VsdHMge3tzdGVwICIifX0gewotCi0gICAgICBnbG9iYWwgdmFycwotICAgICAgZ2xvYmFsIGVycm9ycwotICAgICAgZ2xvYmFsIGVudgotCi0gICAgICBpZiB7JHN0ZXAgIT0gIiJ9IHsKLSAgICAgICAgIHNldCB2YXJzKHN0ZXApICRzdGVwCi0gICAgICB9IGVsc2UgewotICAgICAgICAgUHV0cyAiPEZGPiBBcmd1bWVudCAnc3RlcCcgcmVxdWlyZWQgLi4uIgotICAgICAgICAgcmV0dXJuCi0gICAgICB9Ci0KLSAgICAgIHNldCBjb21tYW5kcyAiIgotCi0gICAgICBzZXQgYXJncyAiIgotICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKHNhdmVfcmMpXSAmJiAkdmFycyhzYXZlX3JjKX0gewotICAgICAgICAgaWYge1tyZWdleHAgInJvdXRlIiAkdmFycyhzdGVwKV19IHsKLSAgICAgICAgICAgIGFwcGVuZCBhcmdzICIgLXJjIgotICAgICAgICAgIH0KLSAgICAgIH0KLSAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhzYXZlX2NvbnN0cmFpbnRzKV0gJiYgJHZhcnMoc2F2ZV9jb25zdHJhaW50cyl9IHsKLSAgICAgICAgIGFwcGVuZCBhcmdzICIgLXRjb24iCi0gICAgICB9Ci0gIAotICAgICAgIyBCQ0w6IEFkZGVkIHN1YnN0IGFyb3VuZCB2YXJzKGRic19kaXIpIHRvIHJlc29sdmUgdmFycyhydW5kaXIpCi0gICAgICBzZXQgZGlyIFtzdWJzdCAkdmFycyhkYnNfZGlyKV0KLSAgICAgIHNldCBkZXNpZ24gJHZhcnMoZGVzaWduKQotICAgICAgaWYge1tzdHJpbmcgY29tcGFyZSAtbm9jYXNlICR2YXJzKGRic19mb3JtYXQpICJvYSJdPT0wfSB7Ci0gICAgICAgICBpZiB7W2xpbmRleCBbc3BsaXQgJHZhcnModmVyc2lvbikgIi4iXSAgMF0gPiAxMH0gewotICAgICAgICAgICAgaWYgeyRoaWVyfSB7Ci0gICAgICAgICAgICAgICBzZXQgY29tbWFuZCAic2F2ZURlc2lnbiAkYXJncyAtY2VsbHZpZXcgeyR2YXJzKG9hX3BhcnRpdGlvbl9saWIpICR2YXJzKGRlc2lnbikgJHZhcnMoc3RlcCl9XG4iCi0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgInNhdmVEZXNpZ24gJGFyZ3MgLWNlbGx2aWV3IHskdmFycyhvYV9kZXNpZ25fbGliKSAkdmFycyhkZXNpZ24pICR2YXJzKHN0ZXApfVxuIgotICAgICAgICAgICAgfQotICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHNldCBjb21tYW5kICJzYXZlT2FEZXNpZ24gJHZhcnMob2FfZGVzaWduX2xpYikgJGRlc2lnbiAkdmFycyhzdGVwKVxuIgotICAgICAgICAgfQotICAgICAgfSBlbHNlIHsKLSAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhyZWxhdGl2ZV9wYXRoKV0gJiYgJHZhcnMocmVsYXRpdmVfcGF0aCl9IHsKLSAgICAgICAgICAgIGFwcGVuZCBhcmdzICIgLXJlbGF0aXZlUGF0aCIKLSAgICAgICAgIH0KLSAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhhYnNvbHV0ZV9saWJfcGF0aCldICYmICR2YXJzKGFic29sdXRlX2xpYl9wYXRoKX0gewotICAgICAgICAgICAgYXBwZW5kIGFyZ3MgIiAtYWJzb2x1dGVMaWJQYXRoIgotICAgICAgICAgfQotICAgICAgICAgc2V0IGNvbW1hbmQgInNhdmVEZXNpZ24gJGFyZ3MgJGRpci8kdmFycyhzdGVwKS5lbmMgLWNvbXByZXNzXG4iCi0gICAgICB9Ci0KLSAgICAgIGFwcGVuZCBjb21tYW5kcyAkY29tbWFuZAotCi0gICAgICBpZiB7IVtpbmZvIGV4aXN0cyBlbnYoVlBBVEgpXX0gewotICAgICAgICAgc2V0IGVudihWUEFUSCkgIm1ha2UiCi0gICAgICB9Ci0KLSAgICAgIGlmIHskdmFycyhtYWtlZmlsZSl9IHsKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiZXhlYyAvYmluL3RvdWNoICRlbnYoVlBBVEgpLyRzdGVwXG4iCi0gICAgICB9Ci0KLSAgICAgIHNldCBoZWFkZXIgIiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiIKLSAgICAgIGFwcGVuZCBoZWFkZXIgIiMgPEZGPiBHRU5FUkFUSU5HIFJFUE9SVFNcbiIKLSAgICAgIGFwcGVuZCBoZWFkZXIgIiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiIKLQotICAgICAgaWYgeyR2YXJzKHJlcG9ydF9wb3dlcil9IHsKLSAgICAgICAgIHNldCBjb21tYW5kICJyZXBvcnRfcG93ZXIgLW91dGZpbGUgJHZhcnMocnB0X2RpcikvJHZhcnMoc3RlcCkucG93ZXIucnB0XG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgJGNvbW1hbmQKLSAgICAgIH0KLQotICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGNwZl9maWxlKV0gJiYgKFtpbmZvIGV4aXN0cyB2YXJzKHBvd2VyX2RvbWFpbnMpXSAmJiAoW2xsZW5ndGggJHZhcnMocG93ZXJfZG9tYWlucyldID4gMCkpfSB7Ci0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgJGhlYWRlcgotICAgICAgICAgc2V0IGhlYWRlciAiIgotCi0gICAgICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAgICAjIFZlcmlmeSBwb3dlciBkb21haW4KLSAgICAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLQotICAgICAgICAgc2V0IGNvbW1hbmQgInZlcmlmeVBvd2VyRG9tYWluIC1iaW5kIC1nY29ubiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgLWlzb05ldFBEICR2YXJzKHJwdF9kaXIpLyR2YXJzKHN0ZXApLmlzb25ldHMucnB0IgotICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAteE5ldFBEICR2YXJzKHJwdF9kaXIpLyR2YXJzKHN0ZXApLnhuZXRzLnJwdFxuIgotCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgJGNvbW1hbmQKLQotICAgICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgICAgIyBSdW4gQ0xQCi0gICAgICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0KLSAgICAgICAgIGlmIHskdmFycyhydW5fY2xwKSAmJiAoW2F1dG9fZXhlY29rIGxlY10gIT0gIiIpfSB7Ci0gICAgICAgICAgICBzZXQgY29tbWFuZCAicnVuQ0xQICIKLSAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhjbHBfb3B0aW9ucyldfSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAkdmFycyhjbHBfb3B0aW9ucykKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJcbiIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAkY29tbWFuZAotICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIGlmIHshW2luZm8gZXhpc3RzIHZhcnMoY2xwX3dhcm5pbmcpXX0gewotICAgICAgICAgICAgICAgcHV0cyAiPEZGPiBXQVJOSU5HOiBVTkFCTEUgVE8gUlVOIENMUCAuLi4gUExFQVNFIE1BS0UgU1VSRSBJVCBJUyBJTiBZT1VSIFBBVEgiCi0gICAgICAgICAgICAgICBzZXQgdmFycyhjbHBfd2FybmluZykgdHJ1ZQotICAgICAgICAgICAgfQotICAgICAgICAgfQotICAgICAgfQotCi0jICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjXG4iCi0jICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjIEhPVVNFS0VFUElOR1xuIgotIyAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiI1xuIgotCi0gICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMobWFpbCx0byldfSB7Ci0gICAgICAgICBpZiB7IVtpbmZvIGV4aXN0cyB2YXJzKG1haWwsc3RlcHMpXSB8fCBcCi0gICAgICAgICAgICAgKFtpbmZvIGV4aXN0cyB2YXJzKG1haWwsc3RlcHMpXSAmJiAoW2xzZWFyY2ggJHZhcnMobWFpbCxzdGVwcykgJHZhcnMoc3RlcCldICE9IC0xKSl9IHsKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiUHV0cyBcIjxGRj4gTUFJTElORyBSRVNVTFRTIFRPICR2YXJzKG1haWwsdG8pXCJcbiIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiaWYge1xbZmlsZSBleGlzdHMgJHZhcnMocnB0X2RpcikvJHZhcnMoc3RlcCkuc3VtbWFyeVxdfSB7XG4iCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiAgIGV4ZWMgL2Jpbi9tYWlsIC1zIFwiRkY6ICR2YXJzKGRlc2lnbiksICR2YXJzKHN0ZXApIGNvbXBsZXRlZCAoXFtwd2RcXSlcIiA8ICR2YXJzKHJwdF9kaXIpLyR2YXJzKHN0ZXApLnN1bW1hcnkgJHZhcnMobWFpbCx0bylcbiIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAifSBlbHNlIHtcbiIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiICAgZXhlYyAvYmluL21haWwgLXMgXCJGRjogJHZhcnMoZGVzaWduKSwgJHZhcnMoc3RlcCkgY29tcGxldGVkIChcW3B3ZFxdKVwiIDwgL2Rldi9udWxsICR2YXJzKG1haWwsdG8pXG4iCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIn1cbiIKLSAgICAgICAgIH0KLSAgICAgIH0KLQotIyAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiZXhlYyAvYmluL3RvdWNoIFwkZW52KFZQQVRIKS8kdmFycyhzdGVwKVxuIgotCi0gICAgICBhcHBlbmQgY29tbWFuZHMgWzo6RkY6OnNvdXJjZV9wbHVnIGZpbmFsX2Fsd2F5c19zb3VyY2VfdGNsXQotCi0gICAgICBpZiB7JHZhcnMobWFrZWZpbGUpfSB7IAotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJpZiB7XFtpbmZvIGV4aXN0cyBlbnYoVlBBVEgpXF19IHtcbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiZXhlYyAvYmluL3RvdWNoIFwkZW52KFZQQVRIKS8kdmFycyhzdGVwKVxuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJ9XG4iCi0gICAgICB9Ci0KLSAgICAgIHVwbGV2ZWwgIzAgZXZhbCAkY29tbWFuZHMKLSAgIH0KLQotICBwcm9jIGxvYWRfYXBwbGV0IHthcmdzfSB7Ci0KLSAgICBzZXQgZGVmQXBwbGV0TlMgIjo6YXBwbGV0IgotICAgIHNldCBkZWZTZXZlcml0eSAiZXJyb3IiCi0gICAgc2V0IGRlZmF1bHRMb2NhbEluc3RhbGwgJDo6bnMoYXBwbGV0KTo6bG9jYWxJbnN0YWxsCi0gICAgc2V0IGRlZmF1bHRMb2NhbFNlcnZlciAkOjpucyhhcHBsZXQpOjpsb2NhbFNlcnZlcgotICAgIHNldCByZXFBcHBsZXRWZXJzaW9uICIiCi0KLSAgICBzd2l0Y2ggLS0gW3BhcnNlX29wdGlvbnMgW2NhbGxpbmdfcHJvY10ge30gJGFyZ3MgXAotICAgICAgIi12ZXJzaW9uIHNvcyByZXF1aXJlZCB2ZXJzaW9uIG9mIGFwcGxldCAoZXF1YWwgb3IgZ3JlYXRlcikiIHJlcUFwcGxldFZlcnNpb24gXAotICAgICAgIi1zZXZlcml0eSBzb3Mgc2V2ZXJpdHkgKGVycm9yfHdhcm5pbmd8aW5mbykiIHNldmVyaXR5IFwKLSAgICAgICItbmFtZXNwYWNlIHNvcyBuYW1lc3BhY2UgdG8gc2VhcmNoIGZvciBhcHBsZXQiIGFwcGxldE5TIFwKLSAgICAgICJzcnMgbmFtZSBvZiBhcHBsZXQiIGFwcGxldE5hbWVdIHsKLSAgICAgICAgICAtMiB7IHJldHVybiB9Ci0gICAgICAgICAgMCB7IHJldHVybiAtY29kZSBlcnJvciB9Ci0gICAgfQotCi0gICAgaWYgeyRhcHBsZXROUyBlcSAiIn0gewotICAgICAgICBzZXQgYXBwbGV0TlMgJGRlZkFwcGxldE5TCi0gICAgfQotCi0gICAgaWYgeyRzZXZlcml0eSBlcSAiIn0gewotICAgICAgc2V0IHNldmVyaXR5ICRkZWZTZXZlcml0eQotICAgIH0KLSAgIAotICAgICMgQ2hlY2sgdG8gc2VlIGlmIHRoZSBhcHBsZXQgaGFwcGVuZWQgdG8gYWxyZWFkeSBiZSBsb2FkZWQuIElmIHNvLCBjaGVjawotICAgICMgd2hldGhlciB0aGVyZSBpcyBhIG1pbmltdW0gdmVyc2lvbiByZXF1aXJlbWVudCBtZXQuIElmIHllcywgc2tpcCB0aGUgcmVzdCBvZiB0aGUgYXBwbGV0Ci0gICAgIyBJZiB0aGUgYXBwbGV0IGFscmVhZHkgZG9lcyBub3QgbWVldCB0aGUgbWluaW11bSB2ZXJzaW9uIHJlcXVpcmVtZW50LCB1bmxvYWQgaXQgKHVzaW5nIHBhY2thZ2UgZm9yZ2V0KQotICAgIGlmIHshW2NhdGNoIHtzZXQgcHJvdmlkZWRWZXJzaW9uIFtwYWNrYWdlIHByZXNlbnQgJHthcHBsZXROU306OiRhcHBsZXROYW1lXX0gZXJyb3JNZXNzYWdlXX0gewotICAgICAgaWYgeyRyZXFBcHBsZXRWZXJzaW9uIG5lICIifSB7Ci0gICAgICAgIGlmIHtbcGFja2FnZSB2Y29tcGFyZSAkcHJvdmlkZWRWZXJzaW9uICRyZXFBcHBsZXRWZXJzaW9uXSA9PSAtMX0gewotICAgICAgICAgIHB1dHMgImxvYWRfYXBwbGV0IElORk86IGFwcGxldCAkYXBwbGV0TmFtZSB3YXMgYWxyZWFkeSBsb2FkZWQsIGJ1dCBpdCdzIHZlcnNpb24gKCRwcm92aWRlZFZlcnNpb24pIGRpZCBub3QgbWVldCB0aGUgbWluaW11bSByZXF1aXJlZCB2ZXJzaW9uICgkcmVxQXBwbGV0VmVyc2lvbikiCi0gICAgICAgICAgcHV0cyAibG9hZF9hcHBsZXQgSU5GTzogVGhpcyB2ZXJzaW9uIG9mIHRoZSAkYXBwbGV0TmFtZSBhcHBsZXQgd2lsbCBiZSByZW1vdmVkIGFuZCB0aGUgbG9hZF9hcHBsZXQgd2lsbCBzZWFyY2ggZm9yIGEgbmV3ZXIgdmVyc2lvbiBvZiAkYXBwbGV0TmFtZS4uLiIKLSAgICAgICAgICBwYWNrYWdlIGZvcmdldCAke2FwcGxldE5TfTo6JGFwcGxldE5hbWUKLSAgICAgICAgfSBlbHNlIHsKLQkgIHB1dHMgImxvYWRfYXBwbGV0IElORk86IEZvdW5kICRhcHBsZXROYW1lIGFscmVhZHkgbG9hZGVkIGFuZCBpdCdzIHZlcnNpb24gKCRwcm92aWRlZFZlcnNpb24pIGFscmVhZHkgbWVldHMgdGhlIG1pbmltdW0gcmVxdWlyZWQgdmVyc2lvbiAoJHJlcUFwcGxldFZlcnNpb24pLiBTa2lwcGluZyBsb2FkLi4uIgotCSAgcmV0dXJuCi0gICAgICAgIH0KLSAgICAgIH0gZWxzZSB7Ci0JcHV0cyAibG9hZF9hcHBsZXQgSU5GTzogRm91bmQgJGFwcGxldE5hbWUgYWxyZWFkeSBsb2FkZWQgd2l0aCB2ZXJzaW9uICgkcHJvdmlkZWRWZXJzaW9uKS4gU2tpcHBpbmcgYXBwbGV0IGxvYWQuLi4iCi0JcmV0dXJuCi0gICAgICB9Ci0gICAgfQotCi0gICAgIyBUaGVyZSBpcyBubyBwcmV2aW91c2x5IGxvYWRlZCBhcHBsZXQuIENvbnRpbnVlIHdpdGggdGhpcyBwcm9jLi4uCi0gICAgc2V0IEZvdW5kTWluVmVyc2lvblBhdGggMAotICAgIHNldCBmaW5hbFNlYXJjaFBhdGggIiIgCi0gICAgc2V0IGZhaWxlZFBhdGhzICIiCi0gICAgIyBCZWNhdXNlIElubm92dXMgaGFzIGl0J3Mgb3duIGdldF9hdHRyaWJ1dGUgY29tbWFuZCBub3csIHdlIG5lZWQgdG8gc2V0IHRoaXMgZGVwZW5kaW5nIG9uIHdoYXQgdG9vbCB3ZSBhcmUgaW4KLSAgICBpZiB7W2dldF90b29sXSBlcSAicmMifSB7Ci0gICAgICBzZXQgc2VhcmNoUGF0aExpc3QgW2dldF9hdHRyaWJ1dGUgYXBwbGV0X3NlYXJjaF9wYXRoIC9dCi0gICAgfSBlbHNlIHsKLSAgICAgIHNldCBzZWFyY2hQYXRoTGlzdCBbJDo6bnMoY29tcGF0KTo6Z2V0X2F0dHJpYnV0ZSBhcHBsZXRfc2VhcmNoX3BhdGggL10KLSAgICB9Ci0gICAgc2V0IGFwcGxldFNlYXJjaFBhdGhDb3VudCBbbGxlbmd0aCAkc2VhcmNoUGF0aExpc3RdCi0KLSAgICBzZXQgb3JpZ2FwcGxldFNlYXJjaFBhdGhDb3VudCAkYXBwbGV0U2VhcmNoUGF0aENvdW50Ci0gICAgc2V0IG9yaWdTZWFyY2hQYXRoICIiCi0gICAgIyBGaXJzdCBwYXNzOiBkZXRlcm1pbmUgd2hpY2ggYXBwbGV0IGluc3RhbGxhdGlvbnMgbWVldCBtaW4gcmVxdWlyZWQgdmVyc2lvbiwgaWYgYW55Ci0gICAgIyBUaGlzIGZvciBsb29wIGRvZXMgbm90IGxvYWQgdGhlIGFwcGxldHMsIGl0IG9ubHkgZGV0ZXJtaW5lcyBhIGZpbmFsIHNlYXJjaCBwYXRoIHRvIHVzZQotICAgICMgSWYgbm9uZSBvZiB0aGUgc2VhcmNoIHBhdGhzIGNvbnRhaW4gdGhlIG1pbmltdW0gdmVyc2lvbiwgYW5kIHNldmVyaXR5IGNvZGUgaXMgZXJyb3IsIHRoaXMgcHJvYwotICAgICMgd2lsbCByZXR1cm4gaW5zaWRlIHRoaXMgZm9yZWFjaCBsb29wIHdpdGggY29kZSBlcnJvcgotICAgIGlmIHskYXBwbGV0U2VhcmNoUGF0aENvdW50ID4gMX0gewotICAgICAgcHV0cyAibG9hZF9hcHBsZXQgSU5GTzogQ2hlY2tpbmcgYWxsIGFwcGxldCBzZWFyY2ggcGF0aHMgZm9yIHZlcnNpb25zIG9mICRhcHBsZXROYW1lIgotICAgIH0KLSAgICBmb3JlYWNoIHBhdGhDb21wb25lbnQgJHNlYXJjaFBhdGhMaXN0IHsKLSAgICAgIGluY3IgYXBwbGV0U2VhcmNoUGF0aENvdW50IC0xCi0gICAgICBpZiB7JG9yaWdhcHBsZXRTZWFyY2hQYXRoQ291bnQgPiAxfSB7Ci0gICAgICAgIHB1dHMgLW5vbmV3bGluZSAiICAkcGF0aENvbXBvbmVudCAuLi4iCi0gICAgICB9IGVsc2UgewotICAgICAgICBwdXRzIC1ub25ld2xpbmUgImxvYWRfYXBwbGV0IElORk86IENoZWNraW5nIGFwcGxldF9zZWFyY2hfcGF0aDogJHBhdGhDb21wb25lbnQgLi4uIgotICAgICAgfQotICAgICAgIyBJZiB0aGUgcGF0aCBjb21wb25lbnQgaXMgPGRlZmF1bHQ+IHJlcGxhY2Ugd2l0aCB0aGUgYXBwbGV0IGRlc2lnbmF0ZWQgc2VhcmNoIHBhdGggdmFsdWUgdXNpbmcgIlVwZGF0ZVNlYWNoUGF0aCIKLSAgICAgIGlmIHtbc3RyaW5nIG1hdGNoICI8ZGVmYXVsdD4iICRwYXRoQ29tcG9uZW50XX0gewotICAgICAgICBzZXQgcGF0aENvbXBvbmVudCBbJDo6bnMoYXBwbGV0KTo6VXBkYXRlU2VhcmNoUGF0aCAkcGF0aENvbXBvbmVudF0KLSAgICAgIH0KLSAgICAgIGxhcHBlbmQgb3JpZ1NlYXJjaFBhdGggJHBhdGhDb21wb25lbnQKLSAgICAgIGlmIHtbZmlsZSBpc2RpcmVjdG9yeSAkcGF0aENvbXBvbmVudF19IHsKLQlpZiB7W2ZpbGUgaXNmaWxlICRwYXRoQ29tcG9uZW50Ly5zZXJ2SW5mb119IHsKLQkgIGlmIHtbZ2V0X3Rvb2xdIGVxICJyYyJ9IHsKLSAgICAgICAgICAgIHNldCBzb3VyY2VDb21tYW5kIHRjbF9zb3VyY2UKLQkgIH0gZWxzZSB7Ci0JICAgIHNldCBzb3VyY2VDb21tYW5kIHNvdXJjZQotCSAgfQotCSAgIHNldCBlcnJvck1zZyAiIgotCSAgaWYge1tjYXRjaCB7JHNvdXJjZUNvbW1hbmQgJHBhdGhDb21wb25lbnQvLnNlcnZJbmZvfSBlcnJvck1zZ10gfHwgIVtpbmZvIGV4aXN0cyBhcHBJbmZvKCR7YXBwbGV0TlN9Ojoke2FwcGxldE5hbWV9LHZlcnNpb24pXX0gewotCSAgICBpZiB7JGVycm9yTXNnIG5lICIifSB7Ci0JICAgICAgcHV0cyAiICRlcnJvck1zZyIKLQkgICAgfSBlbHNlIHsKLQkgICAgICBwdXRzICIgQkFEIEFQUExFVCBTRVJWRVIgKGNvcnJ1cHRlZCAuc2VydkluZm8gZmlsZSkiCi0JICAgIH0KLSAgICAgICAgICB9IGVsc2UgewotCSAgICBpZiB7JHJlcUFwcGxldFZlcnNpb24gZXEgIiIgfSB7Ci0JICAgICAgbGFwcGVuZCBtaW5WZXJzaW9uU2VhcmNoUGF0aCAkcGF0aENvbXBvbmVudCAgCi0JICAgICAgc2V0IEZvdW5kTWluVmVyc2lvblBhdGggMQotCSAgICB9IGVsc2VpZiB7W3BhY2thZ2UgdmNvbXBhcmUgJGFwcEluZm8oJHthcHBsZXROU306OiR7YXBwbGV0TmFtZX0sdmVyc2lvbikgJHJlcUFwcGxldFZlcnNpb25dICE9IC0xfSB7Ci0JICAgICAgICBsYXBwZW5kIG1pblZlcnNpb25TZWFyY2hQYXRoICRwYXRoQ29tcG9uZW50ICAKLQkgICAgICAgIHNldCBGb3VuZE1pblZlcnNpb25QYXRoIDEKLSAJICAgIH0gZWxzZSB7Ci0JICAgICAgbGFwcGVuZCBmYWlsZWRQYXRocyAkcGF0aENvbXBvbmVudAotCSAgICAgIHNldCBmYWlsZWRQYXRodmVyKCRwYXRoQ29tcG9uZW50KSAkYXBwSW5mbygke2FwcGxldE5TfTo6JHthcHBsZXROYW1lfSx2ZXJzaW9uKQotCSAgICB9Ci0JICAgIHB1dHMgIiBGb3VuZCAkYXBwSW5mbygke2FwcGxldE5TfTo6JHthcHBsZXROYW1lfSx2ZXJzaW9uKSIKLSAgICAgICAgICB9Ci0JfSBlbHNlIHsKLQkgIHB1dHMgIiBCQUQgQVBQTEVUIElOU1RBTEwiCi0gICAgICAgIH0KLSAgICAgIH0gZWxzZSB7Ci0JcHV0cyAiICBOT05FWElTVEVOVCBBUFBMRVQgU0VSVkVSIgotICAgICAgfQotICAgIH07IyBlbmQgZmlyc3QgZm9yZWFjaCBsb29wIChkaXN0aWxsaW5nIGZpbmFsIG1pbmltdW0gdmVyc2lvbiBhcHBsZXRfc2VhcmNoX3BhdGgKLQotICAgICMgU2Vjb25kIHBhc3M6IGF0dGVtcHQgdG8gbG9hZCBhcHBsZXQgaW4gZWFjaCB2YWxpZCBzZWFyY2hfcGF0aCB1bnRpbCBhIHN1Y2Nlc3NmdWwgYXBwbGV0IGxvYWQgb2NjdXJzCi0gICAgIyBUaGlzIGZvciBsb29wIG11c3QgbGVhZCB0byBhIHN1Y2Nlc3NmdWwgb3V0Y29tZSAobG9hZGVkIGFwcGxldCkgb3IgYW4gZXJyb3Igd2lsbCBiZSBpc3N1ZWQKLSAgICBpZiB7JEZvdW5kTWluVmVyc2lvblBhdGh9IHsKLSAgICAgIGZvcmVhY2ggc2VhcmNoUGF0aCAkbWluVmVyc2lvblNlYXJjaFBhdGggewotICAgICAgICBzZXRfYXR0cmlidXRlIC1xdWlldCBhcHBsZXRfc2VhcmNoX3BhdGggJHNlYXJjaFBhdGggLwotICAgICAgICBpZiB7W2NhdGNoIHthcHBsZXQgbG9hZCAkYXBwbGV0TmFtZX0gZXJyb3JNc2ddfSB7Ci0gICAgICAgICAgcHV0cyAibG9hZF9hcHBsZXQgSU5GTzogVmVyc2lvbiBjaGVjayBwYXNzZWQgb24gYXBwbGV0IGluc3RhbGwgJGFwcGxldE5hbWUgYnV0IGFwcGxldCBsb2FkIGZhaWxlZC4iCi0gICAgICAgICAgaWYgeyRhcHBsZXRTZWFyY2hQYXRoQ291bnQgPiAwfSB7Ci0gICAgICAgICAgICBwdXRzICJsb2FkX2FwcGxldDogVHJ5aW5nIG5leHQgYXBwbGV0X3NlYXJjaF9wYXRoLi4uIgotICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBwdXRzICJsb2FkX2FwcGxldDogRVJST1I6IEZhaWxlZCB0byBsb2FkIGFwcGxldCAkYXBwbGV0TmFtZS4gUGxlYXNlIGNoZWNrIHlvdXIgYXBwbGV0X3NlYXJjaF9wYXRoIGFuZCBhcHBsZXQgaW5zdGFsbGF0aW9uKHMpLiIKLQkgICAgc2V0X2F0dHJpYnV0ZSAtcXVpZXQgYXBwbGV0X3NlYXJjaF9wYXRoICRvcmlnU2VhcmNoUGF0aCAvCi0gICAgICAgICAgICByZXR1cm4gLWNvZGUgZXJyb3IKLSAgICAgICAgICB9Ci0gICAgICAgIH0gZWxzZSB7Ci0JICBpZiB7W2NhdGNoIHtzZXQgcHJvdmlkZWRWZXJzaW9uIFtwYWNrYWdlIHByZXNlbnQgJHthcHBsZXROU306OiRhcHBsZXROYW1lXX0gZXJyb3JNZXNzYWdlXX0gewotICAgICAgICAgICAgcHV0cyAibG9hZF9hcHBsZXQ6IEVSUk9SOiBhcHBsZXQgJGFwcGxldE5hbWUgbG9hZGVkIGNvcnJlY3RseSwgYnV0IHRoZSBhcHBsZXQgZGlkIG5vdCBjb3JyZWN0bHkgcHJvdmlkZSBhIHBhY2thZ2UgdmVyc2lvbi4gVHJ5aW5nIG5leHQgc2VhcmNoIHBhdGguLi4iCi0JICB9IGVsc2UgewotICAgICAgICAgICAgcHV0cyAibG9hZF9hcHBsZXQ6IElORk86IEFwcGxldCAkYXBwbGV0TmFtZSAkcHJvdmlkZWRWZXJzaW9uIHN1Y2Nlc3NmdWxseSBsb2FkZWQgZnJvbSBhcHBsZXQgaW5zdGFsbGF0aW9uIGF0ICRwYXRoQ29tcG9uZW50LCBtZWV0aW5nIG1pbiB2ZXJzaW9uIHJlcXVpcmVtZW50ICgkcmVxQXBwbGV0VmVyc2lvbikiCi0JICAgIHNldF9hdHRyaWJ1dGUgLXF1aWV0IGFwcGxldF9zZWFyY2hfcGF0aCAkb3JpZ1NlYXJjaFBhdGggLwotCSAgICByZXR1cm4KLQkgIH0KLSAgICAgICAgfQotICAgICAgfQotICAgIH0gZWxzZSB7Ci0gICAgICAjIERpZG4ndCBmaW5kIGFueSBzZWFyY2h5IHBhdGhzIHdpdGggbWluaW11bSBhcHBsZXQgaW5zdGFsbGVkLgotICAgICAgc3dpdGNoIC1leGFjdCAtLSAkc2V2ZXJpdHkgewotICAgICAgICBlcnJvciB7Ci0gICAgICAgICAgcHV0cyAibG9hZF9hcHBsZXQgRVJST1I6IE1pbmltdW0gYXBwbGV0IHZlcnNpb24gZm9yIGFwcGxldCAkYXBwbGV0TmFtZSBpcyAkcmVxQXBwbGV0VmVyc2lvbiwgYnV0IG5vIGFwcGxldCB3YXMgZm91bmQgbWVldGluZyB0aGlzIHJlcXVpcmVtZW50LiIKLQl9Ci0gICAgICAgIHdhcm5pbmcgewotICAgICAgICAgIHB1dHMgImxvYWRfYXBwbGV0IFdBUk5JTkc6IE1pbmltdW0gYXBwbGV0IHZlcnNpb24gZm9yIGFwcGxldCAkYXBwbGV0TmFtZSBpcyAkcmVxQXBwbGV0VmVyc2lvbiwgYnV0IG5vIGFwcGxldCB3YXMgZm91bmQgbWVldGluZyB0aGlzIHJlcXVpcmVtZW50LiIKLQl9Ci0gICAgICAgIGluZm8gewotICAgICAgICAgIHB1dHMgImxvYWRfYXBwbGV0IElORk86IE1pbmltdW0gYXBwbGV0IHZlcnNpb24gZm9yIGFwcGxldCAkYXBwbGV0TmFtZSBpcyAkcmVxQXBwbGV0VmVyc2lvbiwgYnV0IG5vIGFwcGxldCB3YXMgZm91bmQgbWVldGluZyB0aGlzIHJlcXVpcmVtZW50LiIKLQl9Ci0gICAgICB9Ci0gICAgICBwdXRzICJsb2FkX2FwcGxldCBJTkZPOiBTZWFyY2ggcmVzdWx0czoiCi0gICAgICBmb3JlYWNoIHNlYXJjaFBhdGggJGZhaWxlZFBhdGhzIHsKLSAgICAgICAgcHV0cyAiICBhcHBsZXRfc2VhcmNoX3BhdGg6ICRzZWFyY2hQYXRoLCAkYXBwbGV0TmFtZSB2ZXJzaW9uIGZvdW5kOiAkZmFpbGVkUGF0aHZlcigkc2VhcmNoUGF0aCkiCi0gICAgICB9Ci0gICAgICBwdXRzICJsb2FkX2FwcGxldCBJTkZPOiBOb3RlIGFwcGxldCBzZWFyY2ggcGF0aCB0aGF0IHdhcyBzZXQ6IgotICAgICAgcHV0cyAiICAkb3JpZ1NlYXJjaFBhdGgiIAotICAgICAgc3dpdGNoIC1leGFjdCAtLSAkc2V2ZXJpdHkgewotICAgICAgICBlcnJvciB7Ci0JICBzZXRfYXR0cmlidXRlIC1xdWlldCBhcHBsZXRfc2VhcmNoX3BhdGggJG9yaWdTZWFyY2hQYXRoIC8KLSAgICAgICAgICByZXR1cm4gLWNvZGUgOTkKLSAgICAgICAgfQotICAgICAgfQotICAgIH0KLSAgICBzZXRfYXR0cmlidXRlIC1xdWlldCBhcHBsZXRfc2VhcmNoX3BhdGggJG9yaWdTZWFyY2hQYXRoIC8KLSAgfQotCi19CmRpZmYgLS1naXQgYS9mbG93L3Buci9TQ1JJUFRTL0VUQy9JTk5PVlVTL3ZhcnMudHh0IGIvZmxvdy9wbnIvU0NSSVBUUy9FVEMvSU5OT1ZVUy92YXJzLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMzYzODJjYy4uMDAwMDAwMAotLS0gYS9mbG93L3Buci9TQ1JJUFRTL0VUQy9JTk5PVlVTL3ZhcnMudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMTc0ICswLDAgQEAKLXNjcmlwdF9yb290XmRpcmVjdG9yeV5zdHJpbmdeU0NSSVBUU157dmFsaWQgZGlyZWN0b3J5fQ0KLWRic19kaXJeZGlyZWN0b3J5XnN0cmluZ15EQlNee3ZhbGlkIGRpcmVjdG9yeX0NCi1ycHRfZGlyXmRpcmVjdG9yeV5zdHJpbmdeUlBUXnt2YWxpZCBkaXJlY3Rvcnl9DQotaHRtbF9kaXJeZGlyZWN0b3J5XnN0cmluZ15IVE1MXnt2YWxpZCBkaXJlY3Rvcnl9DQotcGx1Z19kaXJeZGlyZWN0b3J5XnN0cmluZ15QTFVHXnt2YWxpZCBkaXJlY3Rvcnl9DQotcHJvY2Vzc150ZWNobm9sb2d5XnN0cmluZ145MG5tXntWYWxpZCByYW5nZSBiZXR3ZWVuIDEwbm0gYW5kIDI1MCBubX0NCi1sZWZfZmlsZXNedGVjaG5vbG9neV5saXN0XlVOREVGSU5FRF57bGVmIGZpbGVzfQ0KLW5ldGxpc3ReZGVzaWduXnN0cmluZ15VTkRFRklORURee3ZhbGlkIGZpbGUgbmFtZX0NCi1kZXNpZ25eZGVzaWduXnN0cmluZ15VTkRFRklORURee3ZhbGlkIGZpbGUgbmFtZX0NCi1mcF9maWxlXmRlc2lnbl5zdHJpbmdeVU5ERUZJTkVEXnt2YWxpZCBmaWxlIG5hbWV9DQotZGVmX2ZpbGVzXmRlc2lnbl5saXN0XlVOREVGSU5FRF57dmFsaWQgZmlsZSBuYW1lc30NCi1pbG1fbGlzdF5pbG1ebGlzdF5VTkRFRklORURee2lsbXN9DQotPGlsbT4saWxtX2Rpcl5pbG1ec3RyaW5nXlVOREVGSU5FRF57aWxtIGRpcmVjdG9yeX0NCi08aWxtPixsZWZfZmlsZV5pbG1ec3RyaW5nXlVOREVGSU5FRF57bGVmIGZpbGV9DQotcG93ZXJfbmV0c15kZXNpZ25ebGlzdF5VTkRFRklORURee25ldCBuYW1lc30NCi1ncm91bmRfbmV0c15kZXNpZ25ebGlzdF5VTkRFRklORURee25ldCBuYW1lc30NCi1zdGFydGluZ19kYnNeZGVzaWduXnN0cmluZ15VTkRFRklORURee3ZhbGlkIEZFIGRhdGFiYXNlfQ0KLWRhdGFiYXNlX2Zvcm1hdF5kZXNpZ25ec3RyaW5nXkZFXntGRSB8IE9BfQ0KLW9hX3JlZl9saWJeZGVzaWduXnN0cmluZ15VTkRFRklORURee3ZhbGlkIE9BIGxpYnJhcnl9DQotb2FfZGVzaWduX2xpYl5kZXNpZ25ec3RyaW5nXlVOREVGSU5FRF57dmFsaWQgT0EgbGlicmFyeX0NCi1vYV9hYnN0cmFjdF9uYW1lXm1hbnVmYWN0dXJpbmdec3RyaW5nXlVOREVGSU5FRF57dmFsaWQgdmlldyBuYW1lfQ0KLW9hX2xheW91dF9uYW1lXm1hbnVmYWN0dXJpbmdec3RyaW5nXlVOREVGSU5FRF57dmFsaWQgdmlldyBuYW1lfQ0KLWN0c19zcGVjXmRlc2lnbl5saXN0XlVOREVGSU5FRF57Y3RzIHNwZWMgZmlsZXN9DQotY3RzX2NlbGxzXmNsb2NrXmxpc3ReVU5ERUZJTkVEXntjbG9jayBjZWxsc30NCi1lbmFibGVfc3NeYW5hbHlzaXNeZW51bV5GQUxTRV57cHJlX3BsYWNlIHwgIHByZV9wcmVjdHMgfCAgcHJlX3Bvc3RjdHMgfCAgcHJlX3Bvc3Ryb3V0ZSB8ICBwcmVfcG9zdHJvdXRlX3NpIHwgIHByZV9zaWdub2ZmIHwgIGZhbHNlfQ0KLWZsb3deZmxvd15lbnVtXmRlZmF1bHRee2RlZmF1bHQgfCAgcHJfbW1tYyB8ICBtbW1jfQ0KLWVuYWJsZV9vY3ZeYW5hbHlzaXNeZW51bV5wcmVfcG9zdHJvdXRlXntmYWxzZSB8IHByZV9wb3N0Y3RzIHwgcHJlX3Bvc3Ryb3V0ZSB8IHByZV9wb3N0cm91dGVfc2kgfCBwcmVfc2lnbm9mZn0NCi1saWJyYXJ5X3NldHNebGlicmFyeV5saXN0XlVOREVGSU5FRF57bGlicmFyeSBzZXRzfQ0KLTxsaWJyYXJ5X3NldD4sc2lebGlicmFyeV5saXN0XlVOREVGSU5FRF57Y2RiIGZpbGVzfQ0KLTxsaWJyYXJ5X3NldD4sdGltaW5nXmxpYnJhcnlebGlzdF5VTkRFRklORURee2xpYnJhcnkgZmlsZXN9DQotcmNfY29ybmVyc150ZWNobm9sb2d5Xmxpc3ReVU5ERUZJTkVEXntyYyBjb3JuZXJzfQ0KLTxyY19jb3JuZXI+LFRedGVjaG5vbG9neV5pbnRlZ2VyXjEyNV57dGVtcGVyYXR1cmV9DQotPHJjX2Nvcm5lcj4sY2FwX3RhYmxlXnRlY2hub2xvZ3leZmlsZV5VTkRFRklORURee2NhcCB0YWJsZX0NCi08cmNfY29ybmVyPixxeF90ZWNoX2ZpbGVedGVjaG5vbG9neV5maWxlXlVOREVGSU5FRF57dGVjaG5vbG9neSBmaWxlfQ0KLTxyY19jb3JuZXI+LHByZV9yb3V0ZV9jYXBfZmFjdG9yXnRlY2hub2xvZ3leRkxPQVReMS4wMF57RkxPQVR9DQotPHJjX2Nvcm5lcj4scHJlX3JvdXRlX2Nsa19jYXBfZmFjdG9yXnRlY2hub2xvZ3leRkxPQVReMS4wMF57RkxPQVR9DQotPHJjX2Nvcm5lcj4scHJlX3JvdXRlX2Nsa19yZXNfZmFjdG9yXnRlY2hub2xvZ3leRkxPQVReMS4wMF57RkxPQVR9DQotPHJjX2Nvcm5lcj4scHJlX3JvdXRlX3Jlc19mYWN0b3JedGVjaG5vbG9neV5GTE9BVF4xLjAwXntGTE9BVH0NCi08cmNfY29ybmVyPixwb3N0X3JvdXRlX2NhcF9mYWN0b3JedGVjaG5vbG9neV5GTE9BVCBUUklQTEVeIjEuMDAgMS4wMCAxLjAwIl57RkxPQVQgVFJJUExFVH0NCi08cmNfY29ybmVyPixwb3N0X3JvdXRlX2Nsa19jYXBfZmFjdG9yXnRlY2hub2xvZ3leRkxPQVQgVFJJUExFXiIxLjAwIDEuMDAgMS4wMCJee0ZMT0FUIFRSSVBMRVR9DQotPHJjX2Nvcm5lcj4scG9zdF9yb3V0ZV9jbGtfcmVzX2ZhY3Rvcl50ZWNobm9sb2d5XkZMT0FUIFRSSVBMRV4iMS4wMCAxLjAwIDEuMDAiXntGTE9BVCBUUklQTEVUfQ0KLTxyY19jb3JuZXI+LHBvc3Rfcm91dGVfcmVzX2ZhY3Rvcl50ZWNobm9sb2d5XkZMT0FUIFRSSVBMRV4iMS4wMCAxLjAwIDEuMDAiXntGTE9BVCBUUklQTEVUfQ0KLTxyY19jb3JuZXI+LHBvc3Rfcm91dGVfeGNhcF9mYWN0b3JedGVjaG5vbG9neV5GTE9BVCBUUklQTEVeIjEuMDAgMS4wMCAxLjAwIl57RkxPQVQgVFJJUExFVH0NCi1kZWxheV9jb3JuZXJzXmxpYnJhcnlebGlzdF5VTkRFRklORURee2RlbGF5IGNvcm5lcnN9DQotPGRlbGF5X2Nvcm5lcj4sbGlicmFyeV9zZXRebGlicmFyeV5saXN0XlVOREVGSU5FRF57dmFsaWQgbGlicmFyeSBzZXRzfQ0KLTxkZWxheV9jb3JuZXI+LHJjX2Nvcm5lcl50ZWNobm9sb2d5XnN0cmluZ15VTkRFRklORURee3ZhbGlkIGRlbGF5IGNvcm5lcn0NCi08ZGVsYXlfY29ybmVyPixjbG9ja19jZWxsX2Vhcmx5XnRpbWluZ15GTE9BVF5VTkRFRklORURee0ZMT0FUfQ0KLTxkZWxheV9jb3JuZXI+LGNsb2NrX2NlbGxfbGF0ZV50aW1pbmdeRkxPQVReVU5ERUZJTkVEXntGTE9BVH0NCi08ZGVsYXlfY29ybmVyPixjbG9ja19uZXRfZWFybHledGltaW5nXkZMT0FUXlVOREVGSU5FRF57RkxPQVR9DQotPGRlbGF5X2Nvcm5lcj4sY2xvY2tfbmV0X2xhdGVedGltaW5nXkZMT0FUXlVOREVGSU5FRF57RkxPQVR9DQotPGRlbGF5X2Nvcm5lcj4sZGF0YV9jZWxsX2Vhcmx5XnRpbWluZ15GTE9BVF5VTkRFRklORURee0ZMT0FUfQ0KLTxkZWxheV9jb3JuZXI+LGRhdGFfY2VsbF9sYXRlXnRpbWluZ15GTE9BVF5VTkRFRklORURee0ZMT0FUfQ0KLTxkZWxheV9jb3JuZXI+LGRhdGFfbmV0X2Vhcmx5XnRpbWluZ15GTE9BVF5VTkRFRklORURee0ZMT0FUfQ0KLTxkZWxheV9jb3JuZXI+LGRhdGFfbmV0X2xhdGVedGltaW5nXkZMT0FUXlVOREVGSU5FRF57RkxPQVR9DQotPGRlbGF5X2Nvcm5lcj4sb3Bjb25kXnRpbWluZ15zdHJpbmdeVU5ERUZJTkVEXnt2YWxpZCBvcGNvbmQgbmFtZX0NCi08ZGVsYXlfY29ybmVyPixvcGNvbmRfbGlicmFyeV50aW1pbmdec3RyaW5nXlVOREVGSU5FRF57dmFsaWQgbGlicmFyeSBuYW1lfQ0KLWNvbnN0cmFpbnRfbW9kZXNeZGVzaWduXmxpc3ReVU5ERUZJTkVEXntjb25zdHJhaW50IG1vZGVzfQ0KLTxjb25zdHJhaW50X21vZGU+LHByZV9jdHNfc2RjXmRlc2lnbl5saXN0XlVOREVGSU5FRF57dmFsaWQgZmlsZSBuYW1lc30NCi08Y29uc3RyYWludF9tb2RlPixpbmNyX2N0c19zZGNeZGVzaWduXmxpc3ReVU5ERUZJTkVEXnt2YWxpZCBmaWxlIG5hbWVzfQ0KLTxjb25zdHJhaW50X21vZGU+LHBvc3RfY3RzX3NkY15kZXNpZ25ebGlzdF5VTkRFRklORURee3ZhbGlkIGZpbGUgbmFtZXN9DQotZW5hYmxlX2NwcHJeYW5hbHlzaXNeZW51bV5ub25lXntub25lIHwgc2V0dXAgfCBob2xkIHwgYm90aH0NCi1hbmFseXNpc192aWV3c15saWJyYXJ5Xmxpc3ReVU5ERUZJTkVEXnthbmFseXNpcyB2aWV3c30NCi1ob2xkX2FuYWx5c2lzX3ZpZXdzXnRpbWluZ15saXN0XlVOREVGSU5FRF57YW5hbHlzaXMgdmlld3N9DQotc2V0dXBfYW5hbHlzaXNfdmlld3NedGltaW5nXmxpc3ReVU5ERUZJTkVEXnthbmFseXNpcyB2aWV3c30NCi08YW5hbHlzaXNfdmlldz4sY29uc3RyYWludF9tb2RlXnRpbWluZ15zdHJpbmdeVU5ERUZJTkVEXntjb25zdHJhaW50IG1vZGV9DQotPGFuYWx5c2lzX3ZpZXc+LGRlbGF5X2Nvcm5lcl50aW1pbmdec3RyaW5nXlVOREVGSU5FRF57ZGVsYXkgY29ybmVyfQ0KLWRlZmF1bHRfaG9sZF92aWV3XnRpbWluZ15zdHJpbmdeVU5ERUZJTkVEXnthbmFseXNpcyB2aWV3fQ0KLWRlZmF1bHRfc2V0dXBfdmlld150aW1pbmdec3RyaW5nXlVOREVGSU5FRF57YW5hbHlzaXMgdmlld30NCi1hY3RpdmVfaG9sZF92aWV3c150aW1pbmdebGlzdF5VTkRFRklORURee2FuYWx5c2lzIHZpZXdzfQ0KLWFjdGl2ZV9zZXR1cF92aWV3c150aW1pbmdebGlzdF5VTkRFRklORURee2FuYWx5c2lzIHZpZXdzfQ0KLXBvd2VyX2FuYWx5c2lzX3ZpZXdecG93ZXJec3RyaW5nXntkZWZhdWx0IHNldHVwIHZpZXd9XnthbmFseXNpcyB2aWV3fQ0KLSNjcGZfZmlsZV5kZXNpZ25ec3RyaW5nXlVOREVGSU5FRF57dmFsaWQgZmlsZSBuYW1lfQ0KLWNwZl9rZWVwX3Jvd3NeZGVzaWduXmJvb2xlYW5eRkFMU0Vee1RSVUUgfCBGQUxTRX0NCi1jcGZfcG93ZXJfZG9tYWluXmRlc2lnbl5ib29sZWFuXkZBTFNFXntUUlVFIHwgRkFMU0V9DQotY3BmX3Bvd2VyX3N3aXRjaF5kZXNpZ25eYm9vbGVhbl5GQUxTRV57VFJVRSB8IEZBTFNFfQ0KLWNwZl9pc29sYXRpb25eZGVzaWduXmJvb2xlYW5eRkFMU0Vee1RSVUUgfCBGQUxTRX0NCi1jcGZfc3RhdGVfcmV0ZW50aW9uXmRlc2lnbl5ib29sZWFuXkZBTFNFXntUUlVFIHwgRkFMU0V9DQotY3BmX2xldmVsX3NoaWZ0ZXJeZGVzaWduXmJvb2xlYW5eRkFMU0Vee1RSVUUgfCBGQUxTRX0NCi1sZWFrYWdlX3Bvd2VyX2VmZm9ydF5kZXNpZ25eYm9vbGVhbl5VTkRFRklORURee1RSVUUgfCBGQUxTRX0NCi1keW5hbWljX3Bvd2VyX2VmZm9ydF5kZXNpZ25eYm9vbGVhbl5VTkRFRklORURee1RSVUUgfCBGQUxTRX0NCi1yZXBvcnRfcG93ZXJecG93ZXJeYm9vbGVhbl5GQUxTRV57VFJVRSB8IEZBTFNFfQ0KLWFjdGl2aXR5X2ZpbGVeZGVzaWduXnN0cmluZ15VTkRFRklORURee2FjdGl2aXR5IGZpbGV9DQotYWN0aXZpdHlfZmlsZV90eXBlXmRlc2lnbl5lbnVtXlRDRl57VENGIHwgIFZDRCB8ICBTQUlGfQ0KLXdlbGx0YXBzXmluaXRebGlzdF5VTkRFRklORURee3dlbGx0YXAgY2VsbHN9DQotd2VsbHRhcHMsY2VsbF9pbnRlcnZhbF5pbml0XkZMT0FUXlVOREVGSU5FRF57bWljcm9uc30NCi13ZWxsdGFwcyxtYXhfZ2FwXmluaXReRkxPQVReVU5ERUZJTkVEXnttaWNyb25zfQ0KLXdlbGx0YXBzLHJvd19vZmZzZXReaW5pdF5pbnRlZ2VyXlVOREVGSU5FRF57bWljcm9uc30NCi13ZWxsdGFwcyxjaGVja2VyYm9hcmReaW5pdF5ib29sZWFuXlVOREVGSU5FRF57VFJVRSB8IEZBTFNFfQ0KLWp0YWdfY2VsbHNeaW5pdF5saXN0XlVOREVGSU5FRF57anRhZyBjZWxsc30NCi1qdGFnX3Jvd3NeaW5pdF5pbnRlZ2VyXlVOREVGSU5FRF57cm93c30NCi1pbl9wbGFjZV9vcHRecGxhY2VeYm9vbGVhbl5GQUxTRV57VFJVRSB8IEZBTFNFfQ0KLW5vX3ByZV9wbGFjZV9vcHRecGxhY2VeYm9vbGVhbl5GQUxTRV57VFJVRSB8IEZBTFNFfQ0KLXBsYWNlX2lvX3BpbnNecGxhY2VeYm9vbGVhbl5GQUxTRV57VFJVRSB8IEZBTFNFfQ0KLXRpZV9jZWxsc15wbGFjZV5saXN0XlVOREVGSU5FRF57dGllIGNlbGxzfQ0KLXRpZV9jZWxscyxtYXhfZGlzdGFuY2VecGxhY2VeRkxPQVReVU5ERUZJTkVEXntGTE9BVCBpbiBtaWNyb25zfQ0KLXRpZV9jZWxscyxtYXhfZmFub3V0XnBsYWNlXmludGVnZXJeVU5ERUZJTkVEXntpbnRlZ2VyIGluIG1pY3JvbnN9DQotZmlsbGVyX2NlbGxzXnJvdXRlXmxpc3ReVU5ERUZJTkVEXntmaWxsZXIgY2VsbHN9DQotY29uZ2VzdGlvbl9lZmZvcnReaW5pdF5lbnVtXlVOREVGSU5FRF57bG93IHwgbWVkaXVtIHwgaGlnaH0NCi1za2V3X2J1ZmZlcnNeY2xvY2tebGlzdF5VTkRFRklORURee2Nsb2NrIGNlbGxzfQ0KLWNsb2NrX2dhdGVfYXdhcmVeY2xvY2teYm9vbGVhbl5GQUxTRV57VFJVRSB8IEZBTFNFfQ0KLWNsb2NrX2dhdGVfY2xvbmVeY2xvY2teYm9vbGVhbl5GQUxTRV57VFJVRSB8IEZBTFNFfQ0KLWFzc2lnbl9idWZmZXJeaW5pdF5ib29sZWFuXkZBTFNFXntUUlVFIHwgRkFMU0V9DQotaGlnaF90aW1pbmdfZWZmb3J0XmluaXReYm9vbGVhbl5GQUxTRV57VFJVRSB8IEZBTFNFfQ0KLWRvbnRfdXNlX2xpc3ReaW5pdF5saXN0XlVOREVGSU5FRF57ZG9udCB1c2UgY2VsbHN9DQotdXNlX2xpc3ReaW5pdF5saXN0XlVOREVGSU5FRF57Y2VsbHMgdG8gdXNlfQ0KLWNyaXRpY2FsX3JhbmdlXm9wdF5GTE9BVF5VTkRFRklORURee3JhbmdlIGJldHdlZW4gMC4wIGFuZCAxLjB9DQotdXNlZnVsX3NrZXdeb3B0XmJvb2xlYW5eVU5ERUZJTkVEXntUUlVFIHwgRkFMU0V9DQotcHJlc2VydmVfYXNzZXJ0aW9uc15vcHReYm9vbGVhbl5VTkRFRklORURee1RSVUUgfCBGQUxTRX0NCi1yZXNpemVfc2hpZnRlcl9hbmRfaXNvX2luc3RzXm9wdF5ib29sZWFuXlVOREVGSU5FRF57VFJVRSB8IEZBTFNFfQ0KLWZpeF9ob2xkXmhvbGReYm9vbGVhbl5UUlVFXntUUlVFIHwgRkFMU0V9DQotZml4X2hvbGRfaWdub3JlX2lvc15ob2xkXmJvb2xlYW5eRkFMU0Vee1RSVUUgfCBGQUxTRX0NCi1maXhfaG9sZF9hbGxvd190bnNfZGVncmFkYXRpb25eaG9sZF5ib29sZWFuXkZBTFNFXntUUlVFIHwgRkFMU0V9DQotcm91dGVfY2xvY2tfbmV0c15jbG9ja15ib29sZWFuXlRSVUVee1RSVUUgfCBGQUxTRX0NCi1jbG9ja19lY29eY2xvY2teZW51bV5ub25lXntub25lIHwgcG9zdGN0cyB8IHBvc3Ryb3V0ZSB8IGJvdGh9DQotbWF4X3JvdXRlX2xheWVyXnRlY2hub2xvZ3leaW50ZWdlcl5VTkRFRklORURee2ludGVnZXJ9DQotZ2VuZXJhdGVfdHJhY2tzXmluaXReYm9vbGVhbl5UUlVFXntUUlVFIHwgRkFMU0V9DQotcG9zdHJvdXRlX2V4dHJhY3Rpb25fZWZmb3J0XnJvdXRlXmVudW1eVU5ERUZJTkVEXntsb3cgfCBtZWRpdW0gfCBoaWdofQ0KLW11bHRpY3V0X3ZpYV9lZmZvcnRecm91dGVeZW51bV5VTkRFRklORURee2xvdyB8IG1lZGl1bSB8IGhpZ2h9DQotbGl0aG9fZHJpdmVuX3JvdXRpbmdecm91dGVeYm9vbGVhbl5GQUxTRV57VFJVRSB8IEZBTFNFfQ0KLXBvc3Ryb3V0ZV9zcHJlYWRfd2lyZXNecm91dGVeYm9vbGVhbl5GQUxTRV57VFJVRSB8IEZBTFNFfQ0KLWRlbHRhX2RlbGF5X3RocmVzaG9sZF5ub2lzZV5GTE9BVF5VTkRFRklORURee0ZMT0FUIGluIG5hbm9zZWNvbmRzfQ0KLWNlbHRpY19zZXR0aW5nc15ub2lzZV5zdHJpbmdeVU5ERUZJTkVEXnt2YWxpZCBjZWx0aWMgY29tbWFuZHN9DQotY291cGxpbmdfY190aHJlc2hebm9pc2VeRkxPQVReVU5ERUZJTkVEXntGTE9BVH0NCi1yZWxhdGl2ZV9jX3RocmVzaF5ub2lzZV5GTE9BVF5VTkRFRklORURee0ZMT0FUfQ0KLXRvdGFsX2NfdGhyZXNoXm5vaXNlXkZMT0FUXlVOREVGSU5FRF57RkxPQVR9DQotc2lfYW5hbHlzaXNfdHlwZV5ub2lzZV5lbnVtXlVOREVGSU5FRF57ZGVmYXVsdCB8IHBlc3NpbWlzdGljfQ0KLXNpZ25vZmZfZXh0cmFjdGlvbl9lZmZvcnRebm9pc2VeZW51bV5oaWdoXntub25lIHwgbG93IHwgaGlnaH0NCi1tZXRhbGZpbGxebWFudWZhY3R1cmluZ15lbnVtXkZBTFNFXntwcmVfcG9zdHJvdXRlIHwgIHByZV9wb3N0cm91dGVfc2kgfCAgcHJlX3NpZ25vZmYgfCAgZmFsc2V9DQotbWV0YWxmaWxsX3RjbF5tYW51ZmFjdHVyaW5nXnN0cmluZ15VTkRFRklORURee3ZhbGlkIGZpbGUgbmFtZX0NCi1nZHNfZmlsZXNebWFudWZhY3R1cmluZ15saXN0XlVOREVGSU5FRF57Z2RzIGZpbGVzfQ0KLWdkc19tYXBfZmlsZV5tYW51ZmFjdHVyaW5nXnN0cmluZ15VTkRFRklORURee3ZhbGlkIGZpbGUgbmFtZXN9DQotbG9jYWxfY3B1c15tdWx0aWNwdV5pbnRlZ2VyXjFee2ludGVnZXJ9DQotcmVtb3RlX2hvc3RzXm11bHRpY3B1XmludGVnZXJeMF57aW50ZWdlcn0NCi1jcHVzX3Blcl9yZW1vdGVfaG9zdF5tdWx0aWNwdV5pbnRlZ2VyXjFee2ludGVnZXJ9DQotYWx3YXlzX3NvdXJjZV90Y2xecGx1Zy1pbl5zdHJpbmdeVU5ERUZJTkVEXnt2YWxpZCBmaWxlIG5hbWV9DQotZmluYWxfYWx3YXlzX3NvdXJjZV90Y2xecGx1Zy1pbl5zdHJpbmdeVU5ERUZJTkVEXnt2YWxpZCBmaWxlIG5hbWV9DQotcHJlX2Fzc2lnbl9waW5fdGNsXnBsdWctaW5ec3RyaW5nXlVOREVGSU5FRF57dmFsaWQgZmlsZSBuYW1lfQ0KLXBvc3RfYXNzaWduX3Bpbl90Y2xecGx1Zy1pbl5zdHJpbmdeVU5ERUZJTkVEXnt2YWxpZCBmaWxlIG5hbWV9DQotcHJlX3BhcnRpdGlvbl90Y2xecGx1Zy1pbl5zdHJpbmdeVU5ERUZJTkVEXnt2YWxpZCBmaWxlIG5hbWV9DQotcG9zdF9wYXJ0aXRpb25fdGNsXnBsdWctaW5ec3RyaW5nXlVOREVGSU5FRF57dmFsaWQgZmlsZSBuYW1lfQ0KLXByZV9pbml0X3RjbF5wbHVnLWluXnN0cmluZ15VTkRFRklORURee3ZhbGlkIGZpbGUgbmFtZX0NCi1wb3N0X2luaXRfdGNsXnBsdWctaW5ec3RyaW5nXlVOREVGSU5FRF57dmFsaWQgZmlsZSBuYW1lfQ0KLXByZV9wbGFjZV90Y2xecGx1Zy1pbl5zdHJpbmdeVU5ERUZJTkVEXnt2YWxpZCBmaWxlIG5hbWV9DQotcGxhY2VfdGNsXnBsdWctaW5ec3RyaW5nXlVOREVGSU5FRF57dmFsaWQgZmlsZSBuYW1lfQ0KLXBvc3RfcGxhY2VfdGNsXnBsdWctaW5ec3RyaW5nXlVOREVGSU5FRF57dmFsaWQgZmlsZSBuYW1lfQ0KLXByZV9jdHNfdGNsXnBsdWctaW5ec3RyaW5nXlVOREVGSU5FRF57dmFsaWQgZmlsZSBuYW1lfQ0KLWN0c190Y2xecGx1Zy1pbl5zdHJpbmdeVU5ERUZJTkVEXnt2YWxpZCBmaWxlIG5hbWV9DQotcG9zdF9jdHNfdGNsXnBsdWctaW5ec3RyaW5nXlVOREVGSU5FRF57dmFsaWQgZmlsZSBuYW1lfQ0KLXByZV9wb3N0Y3RzX3RjbF5wbHVnLWluXnN0cmluZ15VTkRFRklORURee3ZhbGlkIGZpbGUgbmFtZX0NCi1wb3N0X3Bvc3RjdHNfdGNsXnBsdWctaW5ec3RyaW5nXlVOREVGSU5FRF57dmFsaWQgZmlsZSBuYW1lfQ0KLXByZV9wb3N0Y3RzX2hvbGRfdGNsXnBsdWctaW5ec3RyaW5nXlVOREVGSU5FRF57dmFsaWQgZmlsZSBuYW1lfQ0KLXBvc3RfcG9zdGN0c19ob2xkX3RjbF5wbHVnLWluXnN0cmluZ15VTkRFRklORURee3ZhbGlkIGZpbGUgbmFtZX0NCi1wcmVfcHJlY3RzX3RjbF5wbHVnLWluXnN0cmluZ15VTkRFRklORURee3ZhbGlkIGZpbGUgbmFtZX0NCi1wb3N0X3ByZWN0c190Y2xecGx1Zy1pbl5zdHJpbmdeVU5ERUZJTkVEXnt2YWxpZCBmaWxlIG5hbWV9DQotcHJlX3JvdXRlX3RjbF5wbHVnLWluXnN0cmluZ15VTkRFRklORURee3ZhbGlkIGZpbGUgbmFtZX0NCi1wb3N0X3JvdXRlX3RjbF5wbHVnLWluXnN0cmluZ15VTkRFRklORURee3ZhbGlkIGZpbGUgbmFtZX0NCi1wcmVfcG9zdHJvdXRlX3RjbF5wbHVnLWluXnN0cmluZ15VTkRFRklORURee3ZhbGlkIGZpbGUgbmFtZX0NCi1wb3N0X3Bvc3Ryb3V0ZV90Y2xecGx1Zy1pbl5zdHJpbmdeVU5ERUZJTkVEXnt2YWxpZCBmaWxlIG5hbWV9DQotcHJlX3Bvc3Ryb3V0ZV9ob2xkX3RjbF5wbHVnLWluXnN0cmluZ15VTkRFRklORURee3ZhbGlkIGZpbGUgbmFtZX0NCi1wb3N0X3Bvc3Ryb3V0ZV9ob2xkX3RjbF5wbHVnLWluXnN0cmluZ15VTkRFRklORURee3ZhbGlkIGZpbGUgbmFtZX0NCi1wcmVfcG9zdHJvdXRlX3NpX2hvbGRfdGNsXnBsdWctaW5ec3RyaW5nXlVOREVGSU5FRF57dmFsaWQgZmlsZSBuYW1lfQ0KLXBvc3RfcG9zdHJvdXRlX3NpX2hvbGRfdGNsXnBsdWctaW5ec3RyaW5nXlVOREVGSU5FRF57dmFsaWQgZmlsZSBuYW1lfQ0KLXByZV9wb3N0cm91dGVfc2lfdGNsXnBsdWctaW5ec3RyaW5nXlVOREVGSU5FRF57dmFsaWQgZmlsZSBuYW1lfQ0KLXBvc3RfcG9zdHJvdXRlX3NpX3RjbF5wbHVnLWluXnN0cmluZ15VTkRFRklORURee3ZhbGlkIGZpbGUgbmFtZX0NCi1wcmVfc2lnbm9mZl90Y2xecGx1Zy1pbl5zdHJpbmdeVU5ERUZJTkVEXnt2YWxpZCBmaWxlIG5hbWV9DQotcG9zdF9zaWdub2ZmX3RjbF5wbHVnLWluXnN0cmluZ15VTkRFRklORURee3ZhbGlkIGZpbGUgbmFtZX0NCi1wcmVfYXNzZW1ibGVfdGNsXnBsdWctaW5ec3RyaW5nXlVOREVGSU5FRF57dmFsaWQgZmlsZSBuYW1lfQ0KLXBvc3RfYXNzZW1ibGVfdGNsXnBsdWctaW5ec3RyaW5nXlVOREVGSU5FRF57dmFsaWQgZmlsZSBuYW1lfQ0KLWFib3J0XmZsb3deYm9vbGVhbl5GQUxTRV57VFJVRSB8IEZBTFNFfQ0KLW1haWwsdG9eZmxvd15saXN0XlVOREVGSU5FRF57ZW1haWwgYWRkcmVzc2VzfQ0KLW1haWwsc3RlcHNeZmxvd15saXN0XlVOREVGSU5FRF57c3RlcHN9DQotI2VuYWJsZV9wYWNeYXNzZW1ibHleYm9vbGVhbl5GQUxTRV57VFJVRSB8IEZBTFNFfQ0KLSNwYXJ0aXRpb25fbGlzdF5kZXNpZ25ebGlzdF5VTkRFRklORURee2Rlc2lnbiBwYXJ0aXRpb25zfQ0KLSM8cGFydGl0aW9uPixwYWNfbW9kZV5hc3NlbWJseV5lbnVtXnJlYWRfb25seV57cmVhZF9vbmx5IHwgaW50ZWZhY2UgfCBhbGwgfCBpbG19DQpkaWZmIC0tZ2l0IGEvZmxvdy9wbnIvU0NSSVBUUy9FVEMvY29tbW9uX2RlZmF1bHRzLnRjbCBiL2Zsb3cvcG5yL1NDUklQVFMvRVRDL2NvbW1vbl9kZWZhdWx0cy50Y2wKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDQ2YzQ0NWIuLjAwMDAwMDAKLS0tIGEvZmxvdy9wbnIvU0NSSVBUUy9FVEMvY29tbW9uX2RlZmF1bHRzLnRjbAorKysgL2Rldi9udWxsCkBAIC0xLDEyICswLDAgQEAKLSAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICMgRGVmaW5lIG9wdGlvbiBkZWZhdWx0cyBhbmQgaW5pdGlhbGl6ZSB1bmRlZmluZWQgdmFyaWFibGVzCi0gICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0KLXNldCBmbG93X2RlZmF1bHRzKHJ1bmRpcikgLgotc2V0IGZsb3dfZGVmYXVsdHMoc2NyaXB0X2RpcikgRkYKLXNldCBmbG93X2RlZmF1bHRzKHBsdWdfZGlyKSBQTFVHCi1zZXQgZmxvd19kZWZhdWx0cyhycHRfZGlyKSBSUFQKLXNldCBmbG93X2RlZmF1bHRzKGRic19kaXIpIERCUwotc2V0IGZsb3dfZGVmYXVsdHMobG9nX2RpcikgTE9HCi1zZXQgZmxvd19kZWZhdWx0cyhodG1sX2RpcikgSFRNTAotc2V0IGZsb3dfZGVmYXVsdHModnBhdGgpIG1ha2UKZGlmZiAtLWdpdCBhL2Zsb3cvcG5yL1NDUklQVFMvRVRDL3N0YXR1cy5kYXQgYi9mbG93L3Buci9TQ1JJUFRTL0VUQy9zdGF0dXMuZGF0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDc1NQppbmRleCA4ZGZhMWQ4Li4wMDAwMDAwCi0tLSBhL2Zsb3cvcG5yL1NDUklQVFMvRVRDL3N0YXR1cy5kYXQKKysrIC9kZXYvbnVsbApAQCAtMSwxMyArMCwwIEBACi0KLQotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0jIEhvc3QgSUQ6ICRpbmZvKGhvc3QubmFtZSkKLSMgT1M6ICAgICAgJGluZm8oaG9zdC5kaXN0cmlidXRpb24pICRpbmZvKGhvc3Qub3MpICRpbmZvKGhvc3Qub3N2ZXIpICRpbmZvKGhvc3QubWFjaGluZSkKLSMgQ1BVOiAgICAgW2V4cHIgJGluZm8oY3B1LnRvdGFsKSAvICRpbmZvKGNwdS5jcHVjb3JlcyldIC0tICRpbmZvKGNwdS5tb2RlbG5hbWUpIEAgJGluZm8oY3B1LmNwdU1IeikgTUh6Ci0jIE1FTTogICAgIFtzaXplICRpbmZvKG1lbS50b3RhbCldCi0jIFNXQVA6ICAgIFtzaXplICRpbmZvKG1lbS5zd2FwLnRvdGFsKV0KLSMgVElNRTogICAgW2Nsb2NrIGZvcm1hdCBbY2xvY2sgc2Vjb25kc10gLWZvcm1hdCAiJUg6JU06JVMgJVoiXQotIyBVUFRJTUU6ICAkaW5mbyh1cHRpbWUubW9uKSBtb250aFtzaW5ndWxhciAkaW5mbyh1cHRpbWUubW9uKV0sICRpbmZvKHVwdGltZS53a3MpIHdlZWtbc2luZ3VsYXIgJGluZm8odXB0aW1lLndrcyldLCAkaW5mbyh1cHRpbWUuZGF5KSBkYXlbc2luZ3VsYXIgJGluZm8odXB0aW1lLmRheSldLCAkaW5mbyh1cHRpbWUuaHJzKSBob3VyW3Npbmd1bGFyICRpbmZvKHVwdGltZS5ocnMpXSwgJGluZm8odXB0aW1lLm1pbikgbWludXRlW3Npbmd1bGFyICRpbmZvKHVwdGltZS5taW4pXSwgYW5kICRpbmZvKHVwdGltZS5zZWMpIHNlY29uZFtzaW5ndWxhciAkaW5mbyh1cHRpbWUuc2VjKV0KLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCi0KZGlmZiAtLWdpdCBhL2Zsb3cvcG5yL1NDUklQVFMvRVRDL3V0aWxzLnRjbCBiL2Zsb3cvcG5yL1NDUklQVFMvRVRDL3V0aWxzLnRjbApkZWxldGVkIGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggZTExNTI2MC4uMDAwMDAwMAotLS0gYS9mbG93L3Buci9TQ1JJUFRTL0VUQy91dGlscy50Y2wKKysrIC9kZXYvbnVsbApAQCAtMSw1MDM1ICswLDAgQEAKLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSMgICAgICAgICAgICAgICAgICAgICAgIENBREVOQ0UgQ09QWVJJR0hUIE5PVElDRQotIyAgICAgICAgIKkgMjAwOC0yMDEzIENhZGVuY2UgRGVzaWduIFN5c3RlbXMsIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSMKLSMgVGhpcyBGb3VuZGF0aW9uIEZsb3cgaXMgcHJvdmlkZWQgYXMgYW4gZXhhbXBsZSBvZiBob3cgdG8gcGVyZm9ybSBzcGVjaWFsaXplZAotIyB0YXNrcy4KLSMKLSMgVGhpcyB3b3JrIG1heSBub3QgYmUgY29waWVkLCByZS1wdWJsaXNoZWQsIHVwbG9hZGVkLCBvciBkaXN0cmlidXRlZCBpbiBhbnkgd2F5LAotIyBpbiBhbnkgbWVkaXVtLCB3aGV0aGVyIGluIHdob2xlIG9yIGluIHBhcnQsIHdpdGhvdXQgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uCi0jIGZyb20gQ2FkZW5jZS4gTm90d2l0aHN0YW5kaW5nIGFueSByZXN0cmljdGlvbnMgaGVyZWluLCBzdWJqZWN0IHRvIGNvbXBsaWFuY2UKLSMgd2l0aCB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgdGhlIENhZGVuY2Ugc29mdHdhcmUgbGljZW5zZSBhZ3JlZW1lbnQgdW5kZXIKLSMgd2hpY2ggdGhpcyBtYXRlcmlhbCB3YXMgcHJvdmlkZWQsIHRoaXMgbWF0ZXJpYWwgbWF5IGJlIGNvcGllZCBhbmQgaW50ZXJuYWxseQotIyBkaXN0cmlidXRlZCBzb2xlbHkgZm9yIGludGVybmFsIHB1cnBvc2VzIGZvciB1c2Ugd2l0aCBDYWRlbmNlIHRvb2xzLgotIwotIyBUaGlzIHdvcmsgaXMgQ2FkZW5jZSBpbnRlbGxlY3R1YWwgcHJvcGVydHkgYW5kIG1heSB1bmRlciBubyBjaXJjdW1zdGFuY2VzIGJlCi0jIGdpdmVuIHRvIHRoaXJkIHBhcnRpZXMsIG5laXRoZXIgaW4gb3JpZ2luYWwgbm9yIGluIG1vZGlmaWVkIHZlcnNpb25zLCB3aXRob3V0Ci0jIGV4cGxpY2l0IHdyaXR0ZW4gcGVybWlzc2lvbiBmcm9tIENhZGVuY2UuIFRoZSBpbmZvcm1hdGlvbiBjb250YWluZWQgaGVyZWluIGlzCi0jIHRoZSBwcm9wcmlldGFyeSBhbmQgY29uZmlkZW50aWFsIGluZm9ybWF0aW9uIG9mIENhZGVuY2Ugb3IgaXRzIGxpY2Vuc29ycywgYW5kCi0jIGlzIHN1cHBsaWVkIHN1YmplY3QgdG8sIGFuZCBtYXkgYmUgdXNlZCBvbmx5IGJ5IENhZGVuY2UncyBjdXJyZW50IGN1c3RvbWVycwotIyBpbiBhY2NvcmRhbmNlIHdpdGgsIGEgcHJldmlvdXNseSBleGVjdXRlZCBsaWNlbnNlIGFncmVlbWVudCBiZXR3ZWVuIENhZGVuY2UKLSMgYW5kIGl0cyBjdXN0b21lci4KLSMKLSMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSMgVEhJUyBNQVRFUklBTCBJUyBQUk9WSURFRCBCWSBDQURFTkNFICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQKLSMgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YKLSMgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4KLSMgSU4gTk8gRVZFTlQgU0hBTEwgQ0FERU5DRSBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMCi0jIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksCi0jIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUgotIyBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTICBNQVRFUklBTCwgRVZFTiBJRgotIyBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLQotcGFja2FnZSBwcm92aWRlIGZvdW5kYXRpb25fZmxvdyAxLjAKLQotbmFtZXNwYWNlIGV2YWwgRkZNTTo6IHsKLQotICAgc2V0IHZhbGlkTW9kZXMgW2xpc3QgImZsYXQiICJoaWVyIiAidG9wX2Rvd24iICJib3R0b21fdXAiICJ1c2VyIl0KLQotICAgc2V0IG1pc3NpbmdGaWxlcyAiPEZGPiBFUlJPUjogQ291bGQgbm90IGZpbmQgRm91bmRhdGlvbiBGbG93IHNjcmlwdCBmaWxlcyBpbiBkaXJlY3RvcnkgXCIlc1wiIgotCi0gICBzZXQgbWlzc2luZ1NldHVwRmlsZSAiPEZGPiBFUlJPUjogQ291bGQgbm90IGZpbmQgc2V0dXAudGNsIGluIGRpcmVjdG9yeSBcIiVzXCIiCi0KLSAgIHNldCBtaXNzaW5nUkMgIjxGRj4gRVJST1I6IENvdWxkIG5vdCBmaW5kICdyYycgZXhlY3V0YWJsZSIKLQotICAgc2V0IG5vTW9kZSAiPEZGPiBFUlJPUjogXCItbVwiIG9wdGlvbiBzcGVjaWZpZWQgd2l0aG91dCBhIHJ1bnRpbWUgbW9kZSIKLQotICAgc2V0IG5vRmxhdCAiPEZGPiBFUlJPUjogXCItZlwiIG9wdGlvbiBzcGVjaWZpZWQgd2l0aG91dCBhIHZhbGlkIG9wdGlvbiIKLQotICAgc2V0IG5vVmVyc2lvbiAiPEZGPiBFUlJPUjogXCItdlwiIG9wdGlvbiBzcGVjaWZpZWQgd2l0aG91dCBhIHZhbGlkIG9wdGlvbiIKLQotICAgc2V0IG5vUGF0aCAiPEZGPiBFUlJPUjogXCItZFwiIG9wdGlvbiBzcGVjaWZpZWQgd2l0aG91dCBhIGRpcmVjdG9yeSBwYXRoIgotCi0gICBzZXQgbm9TdHlsZSAiPEZGPiBFUlJPUjogXCIteVwiIG9wdGlvbiBzcGVjaWZpZWQgd2l0aG91dCBhIHN0eWxlIG9wdGlvbiBcW2RhdGV8aW5jcmVtZW50XF0iCi0KLSAgIHNldCBub1J1bmRpciAiPEZGPiBFUlJPUjogXCItdVwiIG9wdGlvbiBzcGVjaWZpZWQgd2l0aG91dCBhIGRpcmVjdG9yeSBwYXRoIgotCi0gICBzZXQgbm9TZXR1cFBhdGggIjxGRj4gRVJST1I6IFwiLXNcIiBvcHRpb24gc3BlY2lmaWVkIHdpdGhvdXQgYSBkaXJlY3RvcnkgcGF0aCIKLQotICAgc2V0IG5vQXBwbGV0UGF0aCAiPEZGPiBFUlJPUjogXCItYVwiIG9wdGlvbiBzcGVjaWZpZWQgd2l0aG91dCBhIGRpcmVjdG9yeSBwYXRoIgotCi0gICBzZXQgbm9zeW50aF9mbG93ICI8RkY+IFdBUk5JTkc6IFwiLXJcIiBvcHRpb24gc3BlY2lmaWVkIHdpdGhvdXQgYSBzeW50aGVzaXMgZmxvdyIKLQotICAgc2V0IG5vU3VjaFBhdGggIjxGRj4gRVJST1I6IERpcmVjdG9yeSBwYXRoIFwiJXNcIiBub3QgZm91bmQuIgotCi0gICBzZXQgdW5rbm93bk1vZGUgIjxGRj4gRVJST1I6IFVua25vd24gcnVudGltZSBtb2RlIHNwZWNpZmllZCBcIiVzXCIgIgotCi0gICBzZXQgdW5rbm93bk9wdGlvbiAiPEZGPiBFUlJPUjogVW5yZWNvZ25pemVkIG9wdGlvbiBcIiVzXCIgIgotCi0gICAKLSAgIHNldCB1c2FnZSAiCi1Vc2FnZTogdGNsc2ggPHBhdGhfdG8+L1NDUklQVFMvZ2VuX2Zsb3cudGNsIDxvcHRpb25zPiBzdGVwID9zdGVwPyAuLi4gP3N0ZXA/Ci0gICBUaGUgXCJzdGVwXCIgaXMgdGhlIHBvcnRpb24gb2YgdGhlIGZsb3cgdGhhdCB5b3Ugd2FudCB0byBleGVjdXRlLiAgVG8gZmluZAotICAgdGhlIHZhbGlkIGxpc3Qgb2Ygc3RlcHMgZm9yIGEgZ2l2ZW4gbW9kZSwgc2ltcGx5IG9taXQgdGhlIHN0ZXAgZnJvbSB0aGUKLSAgIGNvbW1hbmQtbGluZSBpbnZvY2F0aW9uLiAgWW91IGNhbiBhbHNvIHNwZWNpZnkgc3RlcCBhcyBlaXRoZXIgb2YgdGhlIHR3bwotICAgZm9ybXM6Ci0gICAgICAgYS1iIDogRXhlY3V0ZSBhbGwgc3RlcHMgYmV0d2VlbiBzdGVwIGEgYW5kIGIsIGluY2x1c2l2ZQotICAgICAgIGEtICA6IEV4ZWN1dGUgYWxsIHN0ZXBzIGluIHRoZSBmbG93IGZyb20gc3RlcCBhLCBpbmNsdXNpdmUKLSAgIE9idmlvdXNseSwgXCJhXCIgYW5kIFwiYlwiIHNob3VsZCBiZSB2YWxpZCBzdGVwcyBmb3IgdGhlIHNwZWNpZmljIG1vZGUuCi0KLSAgIE9wdGlvbnMgbWF5IGJlIG9uZSBvciBtb3JlIG9mIHRoZSBmb2xsb3dpbmc6Ci0gICAgIC1oIHwgLS1oZWxwICAgICA6IFByaW50IHRoaXMgbWVzc2FnZQotICAgICAtSCB8IC0tSGVscCAgICAgOiBQcmludCBzdGVwIGhlbHAKLSAgICAgLW0gfCAtLW1vZGUgICAgIDogU2V0IHRoZSBzY3JpcHQgbW9kZS4gIFRoZSBkZWZhdWx0IGlzIFwiZmxhdFwiLgotICAgICAgICAgICAgICAgICAgICAgICBWYWxpZCBtb2RlcyBhcmU6ICR2YWxpZE1vZGVzCi0gICAgIC1kIHwgLS1kaXIgICAgICA6IE91dHB1dCBkaXJlY3RvcnkgZm9yIGdlbmVyYXRlZCBzY3JpcHRzLgotICAgICAtZiB8IC0tZmxhdCAgICAgOiBMZXZlbCBvZiB1bnJvbGxpbmcgLi4uIGZ1bGwsIHBhcnRpYWwsIG5vbmUKLSAgICAgLW4gfCAtLW5vbWFrZSAgIDogU2tpcCBNYWtlZmlsZSBnZW5lcmF0aW9uCi0gICAgIC15IHwgLS1zdHlsZSAgICA6IFJ1bmRpciBuYW1pbmcgc3R5bGUgXFtkYXRlfGluY3JlbWVudFxdCi0gICAgIC1yIHwgLS1ydGwgICAgICA6IEVuYWJsZSBSVEwgU2NyaXB0IEdlbmVyYXRpb24KLSAgICAgLU4gfCAtLU5vdnVzICA6IEVuYWJsZSBub3Z1c191aSBmbG93a2l0IGdlbmVyYXRpb24KLSAgICAgLXMgfCAtLXNldHVwICAgIDogUHJvdmlkZSB0aGUgZGlyZWN0b3J5IGNvbnRhaW5pbmcgdGhlIHNldHVwLnRjbCBzZXR1cCBmaWxlCi0gICAgIC11IHwgLS1ydW5kaXIgICA6IERpcmVjdG9yeSB0byBleGVjdXRlIHRoZSBmbG93Ci0gICAgICAgICAgICAgICAgICAgICAgIHJlcXVyaWVkIHRvIHJ1biB0aGUgRm91bmRhdGlvbiBGbG93LiAgCi0gICAgIC12IHwgLS12ZXJzaW9uICA6IFRhcmdldCB2ZXJzaW9uICgxNy4xLjAsIDE2LjIuMCwgMTYuMS4wLCAxNS4yLjAsIDE1LjEuMCwgLi4uKQotICAgICAtViB8IC0tVmVyYm9zZSAgOiBWZXJib3NlIG1vZGUKLQotICAgIEV4YW1wbGVzOgotICAgIC0tLS0tLS0tLQotCi0gICAgdGNsc2ggU0NSSVBUUy9nZW5faW5ub3Z1c19mbG93LnRjbCBhbGwKLQotICAgIHRjbHNoIFNDUklQVFMvZ2VuX2lubm92dXNfZmxvdy50Y2wgLW0gdG9wX2Rvd24gYWxsCi0KLSAgICB0Y2xzaCBTQ1JJUFRTL2dlbl9pbm5vdnVzX2Zsb3cudGNsIC1kIHByZWN0c19zY3JpcHRzIGluaXQtcHJlY3RzCi0KLSAgICB0Y2xzaCBTQ1JJUFRTL2dlbl9pbm5vdnVzX2Zsb3cudGNsIC11IHdvcmsvcnVuIC15IGRhdGUgLXIgZGVmYXVsdF9zeW50aGVzaXNfZmxvd18zc3RlcCBhbGwKLQotIgotfQotCi1uYW1lc3BhY2UgZXZhbCBGRjo6IHsKLSAgIHZhcmlhYmxlIHZhbGlkX3ZlcnNpb25zIHsKLSAgICAgIDE3LjEuMAotICAgICAgMTYuMi4wIDE2LjEuMAotICAgICAgMTUuMi4wIDE1LjEuMAotICAgICAgMTQuMi4wIDE0LjEuMCAKLSAgICAgIDEzLjIuMCAxMy4xLjAKLSAgICAgIDEyLjEuMAotICAgICAgMTEuMS4zIDExLjEuMiAxMS4xLjEgMTEuMS4wCi0gICAgICAxMC4xLjMgMTAuMS4yIDEwLjEuMSAxMC4xLjAKLSAgICAgIDkuMS4zIDkuMS4yCi0gICB9Ci0KLSAgIHByb2Mgd3JhcF9jb21tYW5kIHt0YWcgY29tbWFuZH0gewotCi0gICAgICBnbG9iYWwgdmFycwotICAgICAgZ2xvYmFsIGVudgotICAgICAgZ2xvYmFsIGVycm9ycwotCi0jICAgICAgaWYgeyR2YXJzKGRlYnVnKX0gewotIyAgICAgICAgIHB1dHMgIjxGRj4gV3JhcHBpbmcgY29tbWFuZDogJGNvbW1hbmQgaW4gc3RlcCAkdmFycyhzdGVwKSAuLi4iCi0jICAgICAgfQotCi0gICAgICBpZiB7IVtpbmZvIGV4aXN0cyB2YXJzKHRhZ3MsdmVyYm9zZSldfSB7Ci0gICAgICAgICBzZXQgdmVyYm9zZSBGQUxTRQotICAgICAgfSAgZWxzZSB7Ci0gICAgICAgICBzZXQgdmVyYm9zZSAkdmFycyh0YWdzLHZlcmJvc2UpCi0gICAgICB9Ci0KLSAgICAgIGlmIHshW2luZm8gZXhpc3RzIHZhcnModGFncyx2ZXJib3NpdHlfbGV2ZWwpXX0gewotICAgICAgICAgc2V0IHZlcmJvc2l0eV9sZXZlbCBMT1cKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgICBzd2l0Y2ggW3N0cmluZyB0b3VwcGVyICR2YXJzKHRhZ3MsdmVyYm9zaXR5X2xldmVsKV0geyAKLSAgICAgICAgICAgICJMT1ciIHsKLSAgICAgICAgICAgICAgIHNldCB2ZXJib3NpdHlfbGV2ZWwgTE9XCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICAiSElHSCIgewotICAgICAgICAgICAgICAgc2V0IHZlcmJvc2l0eV9sZXZlbCBISUdICi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBkZWZhdWx0IHsKLSAgICAgICAgICAgICAgIHNldCB2ZXJib3NpdHlfbGV2ZWwgTE9XCi0gICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0gICAgICB9Ci0KLSAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkdGFnLHByZV90Y2wpXSB8fCBcCi0gICAgICAgICAgW2luZm8gZXhpc3RzIHZhcnMoJHRhZyxwb3N0X3RjbCldIHx8IFwKLSAgICAgICAgICBbaW5mbyBleGlzdHMgdmFycygkdGFnLHNraXApXSB8fCBcCi0gICAgICAgICAgW2luZm8gZXhpc3RzIHZhcnMoJHRhZyxyZXBsYWNlX3RjbCldfSB7Ci0gICAgICAgICBpZiB7IVtpbmZvIGV4aXN0cyB2YXJzKHRhZ2dlZCldfSB7Ci0gICAgICAgICAgICBzZXQgdmFycyh0YWdnZWQpIFtsaXN0XQotICAgICAgICAgfQotICAgICAgfQotCi0gICAgICBpZiB7JHZlcmJvc2l0eV9sZXZlbCA9PSAiSElHSCJ9IHsKLSAgICAgICAgIHNldCBjb21tYW5kcyAiIyA8QkVHSU4gVEFHPiAkdGFnXG4iCi0gICAgICB9IGVsc2UgewotICAgICAgICAgc2V0IGNvbW1hbmRzICIiCi0gICAgICB9Ci0jICAgICAgc2V0IGNvbW1hbmRzICIiCi0gICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJHRhZyxza2lwKV0gJiYgJHZhcnMoJHRhZyxza2lwKX0gewotICAgICAgICAgbGFwcGVuZCB2YXJzKHRhZ2dlZCkgJHRhZyxza2lwCi0gICAgICAgICByZWdzdWIgIC1hbGwgIlxcXG4iICJcblxuJGNvbW1hbmRcbiIgIlxuIyAiIHNraXAKLSMgICAgICAgICBhcHBlbmQgc2tpcCAiXG4iCi0gICAgICAgICBpZiB7JHZlcmJvc2V9IHsKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiXG4jIDxiZWdpbiB0YWcgJHRhZyxza2lwPiIKLSAgICAgICAgIH0gCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgJHNraXAKLSAgICAgICAgIGlmIHskdmVyYm9zZX0gewotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICI8ZW5kIHRhZyAkdGFnLHNraXA+XG5cbiIKLSAgICAgICAgIH0KLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiXG4iCi0gICAgICAgICBpZiB7JHZlcmJvc2V9IHsKLSAgICAgICAgICAgIHJldHVybiAkY29tbWFuZHMKLSAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICByZXR1cm4KLSAgICAgICAgIH0KLSAgICAgIH0KLQotICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCR0YWcscHJlX3RjbCldfSB7Ci0gICAgICAgICBpZiB7W2ZpbGUgZXhpc3RzICR2YXJzKCR0YWcscHJlX3RjbCldfSB7Ci0gICAgICAgICAgICBsYXBwZW5kIHZhcnModGFnZ2VkKSAkdGFnLHByZV90Y2wKLSAgICAgICAgICAgIGlmIHskdmFycyhmbGF0KSA9PSAiZnVsbCJ9IHsKLSAgICAgICAgICAgICAgIHNldCBpcCBbb3BlbiAkdmFycygkdGFnLHByZV90Y2wpIHJdCi0gICAgICAgICAgICAgICBpZiB7JHZlcmJvc2V9IHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiXG4jIDxiZWdpbiB0YWcgJHRhZyxwcmVfdGNsPlxuIgotICAgICAgICAgICAgICAgfSAKLSAgICAgICAgICAgICAgIHdoaWxlIHtbZ2V0cyAkaXAgbGluZV0+PTB9IHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiJGxpbmVcbiIKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIGNsb3NlICRpcAotICAgICAgICAgICAgICAgaWYgeyR2ZXJib3NlfSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgPGVuZCB0YWcgJHRhZyxwcmVfdGNsPlxuXG4iCi0gICAgICAgICAgICAgICB9IAotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAic291cmNlICR2YXJzKCR0YWcscHJlX3RjbClcbiIKLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBwdXRzICI8RkY+IEVSUk9SOiAkdGFnIHByZV90Y2wgZmlsZSAoJHZhcnMoJHRhZyxwcmVfdGNsKSkgbm90IGZvdW5kIgotICAgICAgICAgICAgc2V0IGVycm9ycygkdmFycyhlcnJvcl9jb3VudCkpICIkdGFnIHByZV90Y2wgZmlsZSAoJHZhcnMoJHRhZyxwcmVfdGNsKSkgbm90IGZvdW5kIgotICAgICAgICAgICAgaW5jciB2YXJzKGVycm9yX2NvdW50KQotICAgICAgICAgICAgaWYgeyR2ZXJib3NlfSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgPGVuZCB0YWcgJHRhZyxwcmVfdGNsPlxuXG4iCi0gICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0gICAgICB9Ci0gICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJHRhZyxyZXBsYWNlX3RjbCldfSB7Ci0gICAgICAgICBpZiB7W2ZpbGUgZXhpc3RzICR2YXJzKCR0YWcscmVwbGFjZV90Y2wpXX0gewotICAgICAgICAgICAgbGFwcGVuZCB2YXJzKHRhZ2dlZCkgJHRhZyxyZXBsYWNlX3RjbAotICAgICAgICAgICAgc2V0IGlwIFtvcGVuICR2YXJzKCR0YWcscmVwbGFjZV90Y2wpIHJdCi0gICAgICAgICAgICBpZiB7JHZlcmJvc2V9IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiXG4jIDxiZWdpbiB0YWcgJHRhZyxyZXBsYWNlX3RjbD5cbiIKLSAgICAgICAgICAgIH0gCi0gICAgICAgICAgICB3aGlsZSB7W2dldHMgJGlwIGxpbmVdPj0wfSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiRsaW5lXG4iCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBjbG9zZSAkaXAKLSAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBwdXRzICI8RkY+IEVSUk9SOiAkdGFnIHJlcGxhY2VfdGNsIGZpbGUgKCR2YXJzKCR0YWcscmVwbGFjZV90Y2wpKSBub3QgZm91bmQiCi0gICAgICAgICAgICBzZXQgZXJyb3JzKCR2YXJzKGVycm9yX2NvdW50KSkgIiR0YWcgcmVwbGFjZV90Y2wgZmlsZSAoJHZhcnMoJHRhZyxyZXBsYWNlX3RjbCkpIG5vdCBmb3VuZCIKLSAgICAgICAgICAgIGluY3IgdmFycyhlcnJvcl9jb3VudCkKLSAgICAgICAgIH0KLSAgICAgICAgIGlmIHskdmVyYm9zZX0gewotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjIDxlbmQgdGFnICR0YWcscmVwbGFjZV90Y2w+XG5cbiIKLSAgICAgICAgIH0KLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAjIEluc2VydCBvcmlnaW5hbCBjb21tYW5kIGhlcmUKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAkY29tbWFuZAotICAgICAgfQotCi0gICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJHRhZyxwb3N0X3RjbCldfSB7Ci0gICAgICAgICBpZiB7W2ZpbGUgZXhpc3RzICR2YXJzKCR0YWcscG9zdF90Y2wpXX0gewotICAgICAgICAgICAgbGFwcGVuZCB2YXJzKHRhZ2dlZCkgJHRhZyxwb3N0X3RjbAotICAgICAgICAgICAgaWYgeyR2ZXJib3NlfSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIlxuIyA8YmVnaW4gdGFnICR0YWcscG9zdF90Y2w+XG4iCi0gICAgICAgICAgICB9IAotICAgICAgICAgICAgaWYgeyR2YXJzKGZsYXQpID09ICJmdWxsIn0gewotICAgICAgICAgICAgICAgc2V0IGlwIFtvcGVuICR2YXJzKCR0YWcscG9zdF90Y2wpIHJdCi0gICAgICAgICAgICAgICB3aGlsZSB7W2dldHMgJGlwIGxpbmVdPj0wfSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiRsaW5lXG4iCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICBjbG9zZSAkaXAKLSMgICAgICAgICAgICAgICBpZiB7JHZlcmJvc2V9IHsKLSMgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiM8PDxcbiIKLSMgICAgICAgICAgICAgICB9IAotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAic291cmNlICR2YXJzKCR0YWcscG9zdF90Y2wpXG4iCi0gICAgICAgICAgICB9Ci0gICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgcHV0cyAiPEZGPiBFUlJPUjogJHRhZyBwb3N0X3RjbCBmaWxlICgkdmFycygkdGFnLHBvc3RfdGNsKSkgbm90IGZvdW5kIgotICAgICAgICAgICAgc2V0IGVycm9ycygkdmFycyhlcnJvcl9jb3VudCkpICIkdGFnIHBvc3RfdGNsIGZpbGUgKCR2YXJzKCR0YWcscG9zdF90Y2wpKSBub3QgZm91bmQiCi0gICAgICAgICAgICBpbmNyIHZhcnMoZXJyb3JfY291bnQpCi0gICAgICAgICB9Ci0gICAgICAgICBpZiB7JHZlcmJvc2V9IHsKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyA8ZW5kIHRhZyAkdGFnLHBvc3RfdGNsPlxuXG4iCi0gICAgICAgICB9Ci0gICAgICB9Ci0gICAgICBpZiB7JHZlcmJvc2l0eV9sZXZlbCA9PSAiSElHSCJ9IHsKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiXG4jIDxFTkQgVEFHPiAkdGFnXG4iCi0gICAgICB9Ci0KLSAgICAgIHJldHVybiAkY29tbWFuZHMKLSAgIH0KLQotICAgcHJvYyBnZXRfbGluZV9tYXRjaCB7cGF0dGVybiBmaWxlfSB7Ci0KLSAgICAgIHNldCBpcCBbb3BlbiAkZmlsZSByXQotCi0gICAgICB3aGlsZSB7W2dldHMgJGlwIGxpbmVdPj0wfSB7Ci0gICAgICAgICBpZiB7W3JlZ2V4cCAiJHBhdHRlcm4iICRsaW5lXT4wfSB7Ci0gICAgICAgICAgIHNldCBtYXRjaCAkbGluZQotICAgICAgICAgfQotICAgICAgfQotCi0gICAgIHJldHVybiAkbWF0Y2gKLSAgIH0KLQotICAgcHJvYyBzaW5ndWxhciB7dmFsIHtmYWxzZSAicyJ9IHt0cnVlICIifX0gewotICAgICBpZiB7JHZhbD09MX0geyByZXR1cm4gJHRydWUgfSBlbHNlIHsgcmV0dXJuICRmYWxzZSB9Ci0gICB9Ci0KLSAgIHByb2Mgc2l6ZSB7dmFsIHtzdWZmaXggImJ5dGUifX0gewotICAgICBzZXQgbGV2ZWwgMAotICAgICBzZXQgcHJlZml4ZXMgW2xpc3QgIiIga2lsbyBtZWdhIGdpZ2EgdGVyYSBwZXRhXQotICAgICB3aGlsZSB7JHZhbD4xMDI0fSB7Ci0gICAgICAgc2V0IHZhbCBbZXhwciAkdmFsLzEwMjQuMF0KLSAgICAgICBpbmNyIGxldmVsCi0gICAgIH0KLSAgICAgc2V0IHZhbCBbZXhwciBpbnQoJHZhbCswLjUpXQotICAgICByZXR1cm4gIiR2YWwgW2xpbmRleCAkcHJlZml4ZXMgJGxldmVsXSRzdWZmaXhbc2luZ3VsYXIgJHZhbF0iCi0gICB9Ci0KLSAgIHByb2Mgc3lzdGVtX2luZm8ge30gewotCi0gICAgICBnbG9iYWwgdmFycwotCi0gICAgICBzZXQgdW5hbWUgW2V4ZWMgdW5hbWVdCi0KLSAgICAgIGlmIHtbbHNlYXJjaCAiTGludXgiICR1bmFtZV0gIT0gLTF9IHsKLQotICAgICAgICAgc2V0IGluRmlsZSAiJHZhcnMoc2NyaXB0X3Jvb3QpL0VUQy9zdGF0dXMuZGF0IgotCi0gICAgICAgICBpZiB7IVtmaWxlIGV4aXN0cyAkaW5GaWxlXX0gewotICAgICAgICAgICAgIHJldHVybgotICAgICAgICAgfQotCi0gICAgICAgICBzZXQgdXBJZCBbb3BlbiAiL3Byb2MvdXB0aW1lIiByXQotICAgICAgICAgc2V0IGluZm8odXB0aW1lKSBbbGluZGV4IFtzcGxpdCBbZ2V0cyAkdXBJZF0gLl0gMF0KLSAgICAgICAgIGNsb3NlICR1cElkCi0KLSAgICAgICAgIGZvcmVhY2gge3ZhciB2YWx9IHttb24gMjU5MjAwMCB3a3MgNjA0ODAwIGRheSA4NjQwMCBocnMgMzYwMCBtaW4gNjAgc2VjIDF9IHsKLSAgICAgICAgICAgc2V0IGluZm8odXB0aW1lLiR7dmFyfSkgW2V4cHIgJGluZm8odXB0aW1lKS8ke3ZhbH1dCi0gICAgICAgICAgIHNldCBpbmZvKHVwdGltZSkgW2V4cHIgJGluZm8odXB0aW1lKS0oJGluZm8odXB0aW1lLiR7dmFyfSkqJHt2YWx9KV0KLSAgICAgICAgIH0KLQotICAgICAgICAgc2V0IGluZm8oaG9zdC5mcWRuKSBbaW5mbyBob3N0bmFtZV0KLSAgICAgICAgIHNldCBpbmZvKGhvc3QubmFtZSkgW2xpbmRleCBbc3BsaXQgJGluZm8oaG9zdC5mcWRuKSAuXSAwXQotICAgICAgICAgc2V0IGluZm8oaG9zdC5kb21haW4pIFtzdHJpbmcgcmFuZ2UgJGluZm8oaG9zdC5mcWRuKSBbZXhwciBbc3RyaW5nIGxlbmd0aCAkaW5mbyhob3N0Lm5hbWUpXSsxXSBlbmRdCi0gICAgICAgICBzZXQgaW5mbyhob3N0Lm9zKSAkOjp0Y2xfcGxhdGZvcm0ob3MpCi0gICAgICAgICBzZXQgaW5mbyhob3N0Lm9zdmVyKSAkOjp0Y2xfcGxhdGZvcm0ob3NWZXJzaW9uKQotICAgICAgICAgc2V0IGluZm8oaG9zdC5tYWNoaW5lKSAkOjp0Y2xfcGxhdGZvcm0obWFjaGluZSkKLQotICAgICAgICAgaWYgeyRpbmZvKGhvc3Qub3MpPT0iTGludXgifSB7Ci0gICAgICAgICAgIGlmIHtbZmlsZSBleGlzdHMgL2V0Yy9zbGFja3dhcmUtdmVyc2lvbl19IHsgc2V0IGluZm8oaG9zdC5kaXN0cmlidXRpb24pICJTbGFja3dhcmUiIH0KLSAgICAgICAgICAgaWYge1tmaWxlIGV4aXN0cyAvZXRjL3JlZGhhdC1yZWxlYXNlXX0geyBzZXQgaW5mbyhob3N0LmRpc3RyaWJ1dGlvbikgIlJlZEhhdCIgfQotICAgICAgICAgICBpZiB7W2ZpbGUgZXhpc3RzIC9ldGMvbWFuZHJha2UtcmVsZWFzZV19IHsgc2V0IGluZm8oaG9zdC5kaXN0cmlidXRpb24pICJNYW5kcmFrZSIgfQotICAgICAgICAgICBpZiB7IVtpbmZvIGV4aXN0cyBpbmZvKGhvc3QuZGlzdHJpYnV0aW9uKV19IHsgc2V0IGluZm8oaG9zdC5kaXN0cmlidXRpb24pICJVbmtub3duIiB9Ci0gICAgICAgICB9IGVsc2UgewotICAgICAgICAgICByZXR1cm4KLSAgICAgICAgIH0KLQotICAgICAgICAgc2V0IGNwdUlkIFtvcGVuICIvcHJvYy9jcHVpbmZvIiByXQotICAgICAgICAgc2V0IGluZm8oY3B1LnRvdGFsKSAwCi0gICAgICAgICBzZXQgaW5mbyhjcHUuY3B1Y29yZXMpIDEKLSAgICAgICAgIHdoaWxlIHshW2VvZiAkY3B1SWRdfSB7Ci0gICAgICAgICAgIGdldHMgJGNwdUlkIGxuCi0gICAgICAgICAgIHNldCBsbiBbc3BsaXQgJGxuIDpdCi0gICAgICAgICAgIHNldCBpdGVtIFtzdHJpbmcgdHJpbSBbbGluZGV4ICRsbiAwXV0KLSAgICAgICAgICAgc2V0IHZhbHVlIFtzdHJpbmcgdHJpbSBbbGluZGV4ICRsbiAxXV0KLSAgICAgICAgICAgc2V0IGluZm8oY3B1LltsaW5kZXggJGl0ZW0gMF1bbGluZGV4ICRpdGVtIDFdKSAkdmFsdWUKLSAgICAgICAgICAgaWYge1tsaW5kZXggJGl0ZW0gMF0gPT0gInByb2Nlc3NvciJ9IHtpbmNyIGluZm8oY3B1LnRvdGFsKX0KLSAgICAgICAgIH0KLSAgICAgICAgIGNsb3NlICRjcHVJZAotCi0gICAgICAgICBzZXQgbWVtSWQgW29wZW4gIi9wcm9jL21lbWluZm8iIHJdCi0gICAgICAgICBzZXQgaW5mbyhtZW0uZnJlZSkgMAotICAgICAgICAgd2hpbGUgeyFbZW9mICRtZW1JZF19IHsKLSAgICAgICAgICAgZ2V0cyAkbWVtSWQgbG4KLSAgICAgICAgICAgc2V0IGxuIFtzcGxpdCAkbG4gOl0KLSAgICAgICAgICAgc2V0IGl0ZW0gW3N0cmluZyB0cmltIFtsaW5kZXggJGxuIDBdXQotICAgICAgICAgICBjYXRjaCB7IHNldCB2YWx1ZSBbZXhwciBbc3RyaW5nIHRyaW0gW2xpbmRleCBbbGluZGV4ICRsbiAxXSAwXV0qMTAyNF0gfQotICAgICAgICAgICBzd2l0Y2ggLS0gIiRpdGVtIiB7Ci0gICAgICAgICAgICAgTWVtVG90YWwgeyBzZXQgaW5mbyhtZW0udG90YWwpICR2YWx1ZSB9Ci0gICAgICAgICAgICAgU3dhcFRvdGFsIHsgc2V0IGluZm8obWVtLnN3YXAudG90YWwpICR2YWx1ZSB9Ci0gICAgICAgICAgICAgU3dhcEZyZWUgeyBzZXQgaW5mbyhtZW0uc3dhcC5mcmVlKSAkdmFsdWUgfQotICAgICAgICAgICAgIE1lbUZyZWUgeyBpbmNyIGluZm8obWVtLmZyZWUpICR2YWx1ZSB9Ci0gICAgICAgICAgICAgQ2FjaGVkIHsgaW5jciBpbmZvKG1lbS5mcmVlKSAkdmFsdWUgfQotICAgICAgICAgICAgIEJ1ZmZlcnMgeyBpbmNyIGluZm8obWVtLmZyZWUpICR2YWx1ZSB9Ci0gICAgICAgICAgIH0KLSAgICAgICAgIH0KLQotICAgICAgICAgc2V0IHBhcnNlSWQgW29wZW4gJGluRmlsZSByXQotICAgICAgICAgd2hpbGUgMSB7Ci0gICAgICAgICAgIGdldHMgJHBhcnNlSWQgbG4KLSAgICAgICAgICAgaWYge1tlb2YgJHBhcnNlSWRdfSB7IGJyZWFrIH0KLSAgICAgICAgICAgY2F0Y2ggeyBwdXRzIFtzdWJzdCAkbG5dIH0gZXJyCi0gICAgICAgICB9Ci0gICAgICAgICBjbG9zZSAkcGFyc2VJZAotICAgICAgfQotICAgfQotCi0gICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAjIFRoaXMgcm91dGluZSBpdGVyYXRlcyBvdmVyIHZhcmlhYmxlcyB0aGF0IG1haW50YWluIGxpc3RzIG9mIGZpbGVzLiAgSWYKLSAgICMgYW55IGVsZW1lbnQgb2YgdGhlIGxpc3QgaXMgYSB3aWxkY2FyZCwgdGhhdCBlbnRyeSBpcyByZXBsYWNlZCB3aXRoIHRoZQotICAgIyBUY2wgY29tbWFuZCB0aGF0IHdpbGwgZXhwYW5kIHRoZSBuYW1lIGF0IHJ1bnRpbWUKLSAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLQotICAgcHJvYyBwcm9jZXNzX2ZpbGVfbGlzdHMge30gewotCi0gICAgICBnbG9iYWwgdmFycwotCi0gICAgICBpZiB7IVtpbmZvIGV4aXN0cyB2YXJzKGdsb2JiZWQpXX0gewotICAgICAgICAgc2V0IHZhcnMoZ2xvYmJlZCkgZmFsc2UKLSAgICAgIH0KLSAgICAgIGlmIHskdmFycyhnbG9iYmVkKX0gewotICAgICAgICAgcmV0dXJuCi0gICAgICB9Ci0gICAgICBzZXQgdmFycyhnbG9iYmVkKSB0cnVlCi0KLSAgICAgIGlmIHtbcmVnZXhwICJeMTEiICR2YXJzKHZlcnNpb24pXX0gewotICAgICAgICAgcmV0dXJuCi0gICAgICB9Ci0gICAgICAjIEJDTDogUmVtb3ZlZCBkZWZfZmlsZXMgZnJvbSB0aGlzIGxpc3QKLSAgICAgIHNldCB2YXJfaW5kaWNlcyBbbGlzdCAiY3RzX3NwZWMiICJsZWZfZmlsZXMiIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAidGltaW5nIiAic2kiICJlY3NtIiAiY3RzX3NkYyJdCi0KLSAgICAgICMgQkNMOiBBZGQgZGVmX2ZpbGVzIHRvIGxpc3Qgb25seSBpZiBpdCBkb2Vzbid0IGhhdmUgW3N1YnN0XSBpbiB0aGUgbmFtZSAob3RoZXIgd2lzZSB3ZSBuZWVkIHRvIGtlZXAgW3N1YnN0Li4uIHVuZXhwYW5kZWQpCi0gICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoZGVmX2ZpbGVzKV0gJiYgIVtyZWdleHAge1xbc3Vic3QgXCR2YXJzfSAkdmFycyhkZWZfZmlsZXMpXX0ge2xhcHBlbmQgdmFyX2luZGljZXMgZGVmX2ZpbGVzfQotCi0gICAgICBmb3JlYWNoIGluZGV4ICR2YXJfaW5kaWNlcyB7Ci0gICAgICAgICBzZXQgYWxsX25hbWVzIFthcnJheSBuYW1lcyB2YXJzIC1nbG9iICIqJGluZGV4Il0KLSAgICAgICAgIGZvcmVhY2ggbmFtZSAkYWxsX25hbWVzIHsKLSAgICAgICAgICAgIHNldCBleHBhbmRlZF9maWxlcyAiIgotICAgICAgICAgICAgIyBCQ0w6IEFkZGVkIHN1YnN0IGFyb3VuZCBmaW5hbCB2YXJpYWJsZSB0byByZXNvbHZlIHZhcnMocnVuZGlyKSByZWZlcmVuY2VzCi0gICAgICAgICAgICBmb3JlYWNoIGZpbGUgW3N1YnN0ICR2YXJzKCRuYW1lKV0gewotICAgICAgICAgICAgICAgaWYgeyhbc3RyaW5nIGZpcnN0ICIqIiAkZmlsZV0gIT0gLTEpIHx8Ci0gICAgICAgICAgICAgICAgICAgKFtzdHJpbmcgZmlyc3QgIj8iICRmaWxlXSAhPSAtMSl9IHsKLSAgICAgICAgICAgICAgICAgIGlmIHshW2NhdGNoIHtzZXQgZmlsZXMgW2dsb2IgJGZpbGVdfV19IHsKLSAgICAgICAgICAgICAgICAgICAgIGxhcHBlbmQgZXhwYW5kZWRfZmlsZXMgJGZpbGVzCi0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgbGFwcGVuZCBleHBhbmRlZF9maWxlcyAkZmlsZQotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAgICAgc2V0IHZhcnMoJG5hbWUpICRleHBhbmRlZF9maWxlcwotICAgICAgICAgfQotICAgICAgfQotICAgfQotCi0gICBwcm9jIGdldF9yZXF1aXJlZF9wcm9jcyB7ZmlsZX0gewotICAgICAgIwotICAgICAgIyBHaXZlbiBhIGxpc3Qgb2YgcmVxdWlyZWQgcHJvY2VkdXJlcywgcmV0dXJuIHRoZSBsaW5lcyB0aGF0IHJlcHJlc2VudAotICAgICAgIyB0aG9zZSBwcm9jZWR1cmVzIGZyb20gdGhlIHV0aWxzLnRjbCBmaWxlCi0gICAgICAjCi0KLSAgICAgIGdsb2JhbCB2YXJzCi0gICAgICBnbG9iYWwgZXJyb3JzCi0KLSAgICAgICMKLSAgICAgICMgUmVhZCB0aGUgZmlsZSBhbmQgZ2F0aGVyIGFsbCBvZiB0aGUgY29udGVudHMKLSAgICAgICMKLQotICAgICAgc2V0IGFsbF9saW5lcyAiIgotICAgICAgc2V0IGxlbmd0aCAwCi0gICAgICBzZXQgaXAgW29wZW4gJGZpbGVdCi0gICAgICB3aGlsZSB7W2dldHMgJGlwIGxpbmVdPj0wfSB7Ci0gICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMobm92dXMpXSAmJiAkdmFycyhub3Z1cyl9IHsKLSAgICAgICAgICAgIHNldCB1dGlsc19saW5lcygkbGVuZ3RoKSBbcmVnc3ViICJQdXRzIiAkbGluZSAicHV0cyJdCi0gICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgc2V0IHV0aWxzX2xpbmVzKCRsZW5ndGgpICRsaW5lCi0gICAgICAgICB9Ci0gICAgICAgICBpbmNyIGxlbmd0aAotICAgICAgfQotICAgICAgY2xvc2UgJGlwCi0KLSAgICAgICMKLSAgICAgICMgSXRlcmF0ZSBhY3Jvc3MgZWFjaCBsaW5lIGFuZCBwdWxsIG91dCByZWxldmFudCBwcm9jZWR1cmVzCi0gICAgICAjCi0KLSAgICAgIHNldCBsaW5lcyAiIgotICAgICAgc2V0IGkgMAotICAgICAgd2hpbGUgeyRpIDwgJGxlbmd0aH0gewotICAgICAgICAgc2V0IGxpbmUgJHV0aWxzX2xpbmVzKCRpKQotICAgICAgICAgZm9yZWFjaCBwcm9jICR2YXJzKHJlcXVpcmVkX3Byb2NzKSB7Ci0gICAgICAgICAgICBpZiB7W3JlZ2V4cCAicHJvYyAkcHJvYyIgJGxpbmVdID4gMH0gewotICAgICAgICAgICAgICAgYXBwZW5kIGxpbmVzICIgJGxpbmVcbiIKLSAgICAgICAgICAgICAgIGluY3IgaQotICAgICAgICAgICAgICAgd2hpbGUgeyRpIDwgJGxlbmd0aH0gewotICAgICAgICAgICAgICAgICAgc2V0IGxpbmUgJHV0aWxzX2xpbmVzKCRpKQotICAgICAgICAgICAgICAgICAgaWYge1tyZWdleHAgInByb2MgIiAkbGluZV0gPiAwfSB7Ci0gICAgICAgICAgICAgICAgICAgICBpbmNyIGkgLTEKLSAgICAgICAgICAgICAgICAgICAgIGJyZWFrCi0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICBpZiB7IVtyZWdleHAgIl4jIiBbc3RyaW5nIHRyaW1sZWZ0ICRsaW5lXSBdICYmICgkaSAhPSBbZXhwciAkbGVuZ3RoLTFdKX0gewotICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGxpbmVzICIkbGluZVxuIgotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgaW5jciBpCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICBicmVhawotICAgICAgICAgICAgfQotICAgICAgICAgfQotICAgICAgICAgaW5jciBpCi0gICAgICB9Ci0KLSAgICAgIHNldCBsaW5lcyBbc3RyaW5nIHRyaW1yaWdodCAkbGluZXNdCi0gICAgICByZXR1cm4gIiRsaW5lc1xuIgotICAgfQotCi0KLSAgIHByb2Mgc291cmNlX3BsdWcge3BsdWdpbiB7YWJvcnQgMX19IHsKLQotICAgICAgZ2xvYmFsIHZhcnMKLSAgICAgIGdsb2JhbCBlbnYKLSAgICAgIGdsb2JhbCB3YXJuaW5ncwotICAgICAgZ2xvYmFsIHBsdWdpbl9lcnJvcgotICAgICAgZ2xvYmFsIGVycm9ySW5mbwotICAgICAgZ2xvYmFsIHJldHVybl9jb2RlCi0KLSAgICAgICMgQWRkZWQgZm9yIEVUUy9FUFMKLSAgICAgIGlmIHshW2luZm8gZXhpc3RzIHZhcnMoZmxhdCldfSB7Ci0gICAgICAgICBzZXQgdmFycyhmbGF0KSBmdWxsCi0gICAgICB9Ci0KLSAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhjb2RlZ2VuKV0gJiYgISR2YXJzKGNvZGVnZW4pfSB7Ci0gICAgICAgICBzZXQgdmFycyhmbGF0KSBmdWxsCi0gICAgICB9Ci0gIAotICAgICAgc2V0IGZsYXQgJHZhcnMoZmxhdCkKLQotICAgICAgaWYgeyR2YXJzKGdlbmVyYXRlX2Zsb3dfc3RlcHMpfSB7Ci0gICAgICAgICAjc2V0IHZhcnMoZmxhdCkgZnVsbAotICAgICAgfQotCi0gICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnModmVyYm9zZSldICYmICR2YXJzKHZlcmJvc2UpfSB7Ci0gICAgICAgICBzZXQgdmVyYm9zZSB0cnVlCi0gICAgICB9IGVsc2UgewotICAgICAgICAgc2V0IHZlcmJvc2UgZmFsc2UKLSAgICAgIH0KLQotICAgICAgc2V0IGNvbW1hbmRzICJwdXRzIFwiPEZGPiBQbHVnaW4gLT4gJHBsdWdpblwiXG4iCi0gICAgICBzZXQgbm9fY29tbWVudHMgIiIKLQotICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCRwbHVnaW4pXX0gewotICAgICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycyhwbHVnaW5zKV19IHsKLSAgICAgICAgICAgIHNldCB2YXJzKHBsdWdpbnMpIFtsaXN0XQotICAgICAgICAgfQotICAgICAgICAgaWYge1tsc2VhcmNoICR2YXJzKHBsdWdpbnMpICRwbHVnaW5dID09IC0xfSB7Ci0gICAgICAgICAgICBzZXQgc3VmZml4IFtsaW5kZXggW3NwbGl0ICRwbHVnaW4gIiwiXSAxXQotICAgICAgICAgICAgaWYgeygkc3VmZml4ICE9ICJkZXJhdGVfdGNsIikgJiYgKCRzdWZmaXggIT0gInNjYWxlX3RjbCIpfSB7Ci0gICAgICAgICAgICAgICBsYXBwZW5kIHZhcnMocGx1Z2lucykgJHBsdWdpbgotICAgICAgICAgICAgfQotICAgICAgICAgfQotICAgICAgICAgc2V0IGZvdW5kIDAgCi0gICAgICAgICBzZXQgcGx1Z19saXN0IFtdCi0gICAgICAgICBmb3JlYWNoIHBsdWdfZmlsZSAkdmFycygkcGx1Z2luKSB7Ci0gICAgICAgICAgICBpZiB7W2ZpbGUgZXhpc3RzICRwbHVnX2ZpbGVdfSB7Ci0gICAgICAgICAgICAgICBzZXQgZm91bmQgMSAKLSAgICAgICAgICAgICAgIGxhcHBlbmQgcGx1Z19saXN0ICRwbHVnX2ZpbGUKLSAgICAgICAgICAgICAgIGNvbnRpbnVlIAotICAgICAgICAgICAgfSBlbHNlaWYge1tmaWxlIGV4aXN0cyAkdmFycyhwbHVnX2RpcikvJHBsdWdfZmlsZV19IHsKLSAgICAgICAgICAgICAgICAgIHNldCBmb3VuZCAxIAotIyAgICAgICAgICAgICAgICAgIGxhcHBlbmQgcGx1Z19saXN0ICRwbHVnX2ZpbGUKLSAgICAgICAgICAgICAgICAgICBsYXBwZW5kIHBsdWdfbGlzdCAkdmFycyhwbHVnX2RpcikvJHBsdWdfZmlsZQotICAgICAgICAgICAgICAgICAgY29udGludWUgCi0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgaWYge1tmaWxlIGV4aXN0cyAkdmFycyhjd2QpLyRwbHVnX2ZpbGVdfSB7Ci0gICAgICAgICAgICAgICAgICBzZXQgZm91bmQgMSAKLSAgICAgICAgICAgICAgICAgIGxhcHBlbmQgcGx1Z19saXN0ICR2YXJzKGN3ZCkvJHBsdWdfZmlsZQotICAgICAgICAgICAgICAgICAgY29udGludWUgCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0gICAgICAgICBpZiB7ISRmb3VuZH0gewotICAgICAgICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycyhtaXNzaW5nX3BsdWdpbnMpXX0gewotICAgICAgICAgICAgICAgc2V0IHZhcnMobWlzc2luZ19wbHVnaW5zKSBbbGlzdF0KLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIHtbbHNlYXJjaCAkdmFycyhtaXNzaW5nX3BsdWdpbnMpICRwbHVnaW5dID09IC0xfSB7Ci0gICAgICAgICAgICAgICBsYXBwZW5kIHZhcnMobWlzc2luZ19wbHVnaW5zKSAkcGx1Z2luCi0gICAgICAgICAgICAgICBzZXQgd2FybmluZ3MoJHZhcnMod2FybmluZ19jb3VudCkpICJQbHVnLWluICRwbHVnaW4gZGVmaW5lZCBidXQgZmlsZShzKSBub3QgZm91bmQiCi0gICAgICAgICAgICAgICBpbmNyIHZhcnMod2FybmluZ19jb3VudCkKLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0KLSAgICAgICAgIGlmIHskdmFycyhmbGF0KSA9PSAicGFydGlhbCJ9IHsKLSAgICAgICAgICAgIGZvcmVhY2ggcGx1Z19maWxlICRwbHVnX2ZpbGUgewotICAgICAgICAgICAgICAgaWYge1tmaWxlIGV4aXN0cyAkcGx1Z19maWxlXX0gewotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJwdXRzIFwiPEZGPiBMT0FESU5HIFwnJHBsdWdfZmlsZVwnIFBMVUctSU4gRklMRShzKSBcIlxuIgotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJpZiB7IFxbIGNhdGNoIHsgc291cmNlICRwbHVnX2ZpbGUgfSBwbHVnaW5fZXJyb3IgXF0gfSB7XG4iCi0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiAgIHB1dHMgXCI8RkY+ID09PT09PT09PT09PT0gUExVRy1JTiBFUlJPUiA9PT09PT09PT09PT09PT09PT1cIlxuIgotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIgICBwdXRzIFwiPEZGPiBcJGVycm9ySW5mb1wiXG4iCi0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiAgIHB1dHMgXCI8RkY+IFwkcGx1Z2luX2Vycm9yXCJcbiIKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiICAgcHV0cyBcIjxGRj4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVwiXG4iCi0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiAgIHNldCByZXR1cm5fY29kZSA5OVxuIgotICAgICAgICAgICAgICAgICAgaWYgeyRhYm9ydH0gewotICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIgICAgZXhpdCBcJHJldHVybl9jb2RlXG4iCi0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIn1cbiIKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0gZWxzZWlmIHskdmFycyhmbGF0KSA9PSAiZnVsbCJ9IHsKLSAgICAgICAgICAgIGlmIHshJGZvdW5kfSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgImZmX3Byb2NzOjpzb3VyY2VfcGx1ZyAkcGx1Z2luXG4iCi0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgaWYgeyR2ZXJib3NlICYmICFbcmVnZXhwICIsIiAkcGx1Z2luXX0gewotICAgICAgICAgICAgICAgICAgc2V0IGNvbW1hbmRzICJcbiMgPGJlZ2luIHBsdWctaW4gJHBsdWdpbj5cbiIKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIGlmIHshW2luZm8gZXhpc3RzIHZhcnMocGx1Z19maWxlcyldfSB7Ci0gICAgICAgICAgICAgICAgICBzZXQgdmFycyhwbHVnX2ZpbGVzKSBbbGlzdF0KLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIGZvcmVhY2ggcGx1Z19maWxlICRwbHVnX2xpc3QgewotICAgICAgICAgICAgICAgICAgaWYge1tmaWxlIGV4aXN0cyAkcGx1Z19maWxlXX0gewotIyAgICAgICAgICAgICAgICAgICAgIGlmIHskdmVyYm9zZX0gewotIyAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIz4+PlxuIgotIyAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyA8YmVnaW4gJHBsdWdfZmlsZT5cbiIKLSAgICAgICAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhvbGRfcGx1Z2lucyldICYmICR2YXJzKG9sZF9wbHVnaW5zKSAmJiAoW2xzZWFyY2ggJHZhcnMoZWRpX3BsdWdpbnMpICRwbHVnaW5dICE9IC0xKX0gewotICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJldmFsX2VuYyBce1xuIgotICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgaWYge1tsc2VhcmNoICR2YXJzKHBsdWdfZmlsZXMpICRwbHVnaW5dID09IC0xfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBzZXQgc3VmZml4IFtsaW5kZXggW3NwbGl0ICRwbHVnaW4gIiwiXSAxXQotICAgICAgICAgICAgICAgICAgICAgICAgaWYgeygkc3VmZml4ICE9ICJkZXJhdGVfdGNsIikgJiYgKCRzdWZmaXggIT0gInNjYWxlX3RjbCIpfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICBsYXBwZW5kIHZhcnMocGx1Z19maWxlcykgIiRwbHVnaW4iCi0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICBzZXQgaXAgW29wZW4gJHBsdWdfZmlsZSByXQotICAgICAgICAgICAgICAgICAgICAgd2hpbGUge1tnZXRzICRpcCBsaW5lXT49MH0gewotIyAgICAgICAgICAgICAgICAgICAgICAgIGlmIHshW3JlZ2V4cCAiXiQiICRsaW5lXX0geyAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIHskdmFycyhnZW5lcmF0ZV9mbG93X3N0ZXBzKX0gewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIgICAkbGluZVxuIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiJGxpbmVcbiIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIHshW3JlZ2V4cCAiXiMiICRsaW5lXX0geyAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBub19jb21tZW50cyAiICAgJGxpbmVcbiIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSMgICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICBjbG9zZSAkaXAKLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyA8ZW5kICRwbHVnX2ZpbGU+XG4iCi0gICAgICAgICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMob2xkX3BsdWdpbnMpXSAmJiAkdmFycyhvbGRfcGx1Z2lucykgJiYgKFtsc2VhcmNoICR2YXJzKGVkaV9wbHVnaW5zKSAkcGx1Z2luXSAhPSAtMSl9IHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiXH1cbiIKLSAgICAgICAgICAgICAgICAgICAgIH0KLSMgICAgICAgICAgICAgICAgICAgICBpZiB7JHZlcmJvc2V9IHsKLSMgICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiM8PDxcbiIKLSMgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICB9IGVsc2VpZiB7W2ZpbGUgZXhpc3RzICR2YXJzKHBsdWdfZGlyKS8kcGx1Z19maWxlXX0gewotIyAgICAgICAgICAgICAgICAgICAgIGlmIHskdmVyYm9zZX0gewotIyAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIz4+PlxuIgotIyAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgIGlmIHtbbHNlYXJjaCAkdmFycyhwbHVnX2ZpbGVzKSAkcGx1Z2luXSA9PSAtMX0gewotICAgICAgICAgICAgICAgICAgICAgICAgc2V0IHN1ZmZpeCBbbGluZGV4IFtzcGxpdCAkcGx1Z2luICIsIl0gMV0KLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIHsoJHN1ZmZpeCAhPSAiZGVyYXRlX3RjbCIpICYmICgkc3VmZml4ICE9ICJzY2FsZV90Y2wiKX0gewotICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFwcGVuZCB2YXJzKHBsdWdfZmlsZXMpICIkcGx1Z2luIgotICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgc2V0IGlwIFtvcGVuICR2YXJzKHBsdWdfZGlyKS8kcGx1Z19maWxlIHJdCi0gICAgICAgICAgICAgICAgICAgICB3aGlsZSB7W2dldHMgJGlwIGxpbmVdPj0wfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiB7IVtyZWdleHAgIl4kIiAkbGluZV19IHsgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiRsaW5lXG4iCi0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiB7IVtyZWdleHAgIl4jIiAkbGluZV19IHsgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgbm9fY29tbWVudHMgIiAgICRsaW5lXG4iCi0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICBjbG9zZSAkaXAKLSMgICAgICAgICAgICAgICAgICAgICBpZiB7JHZlcmJvc2V9IHsKLSMgICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiM8PDxcbiIKLSMgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICB9IAotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgaWYgeyR2ZXJib3NlICYmICFbcmVnZXhwICIsIiAkcGx1Z2luXX0gewotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjIDxlbmQgcGx1Zy1pbiAkcGx1Z2luPlxuXG4iCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJmZl9wcm9jczo6c291cmNlX3BsdWcgJHBsdWdpblxuIgotICAgICAgICAgfQotICAgICAgfQotICAgICAgc2V0IHZhcnMoZmxhdCkgJGZsYXQKLSAgICAgIGlmIHskdmFycyhnZW5lcmF0ZV9mbG93X3N0ZXBzKSAmJiAoJG5vX2NvbW1lbnRzICE9ICIiKSAmJiAhW3JlZ2V4cCBmZl9wcm9jcyAkY29tbWFuZHNdICYmICFbcmVnZXhwIGRlcmF0ZV90Y2wgJHBsdWdpbl19IHsKLSAgICAgICAgIGlmIHskbm9fY29tbWVudHMgPT0gIiJ9IHsKLSAgICAgICAgICAgIHNldCBjb21tYW5kcyAiIgotICAgICAgICAgfQotICAgICAgICAgaWYge1tsaW5kZXggW3NwbGl0ICR2YXJzKHZlcnNpb24pICIuIl0gIDBdID4gMTR9IHsKLSAgICAgICAgICAgaWYgeyFbZmlsZSBleGlzdHMgJHZhcnMoY3dkKS8ucGx1Z2luc119IHsKLSAgICAgICAgICAgICAgc2V0IG9wIFtvcGVuICR2YXJzKGN3ZCkvLnBsdWdpbnMgd10KLSAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgc2V0IG9wIFtvcGVuICR2YXJzKGN3ZCkvLnBsdWdpbnMgYV0KLSAgICAgICAgICAgfQotCi0gICAgICAgICAgIGlmIHtbcmVnZXhwICJecHJlXyR2YXJzKHN0ZXApIiAkcGx1Z2luXSAmJiAoJHZhcnMoc3RlcCkgIT0gInBhcnRpdGlvbl9wbGFjZSIpfSB7Ci0gICAgICAgICAgICAgIHNldCB0eXBlIGJlZ2luX3RjbAotICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICBpZiB7W3JlZ2V4cCAiXnBvc3RfJHZhcnMoc3RlcCkiICRwbHVnaW5dICYmICgkdmFycyhzdGVwKSAhPSAicGFydGl0aW9uX3BsYWNlIil9IHsKLSAgICAgICAgICAgICAgICAgc2V0IHR5cGUgZW5kX3RjbAotICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgIGlmIHtbcmVnZXhwICJec3luIiAkcGx1Z2luXSB8fCBbcmVnZXhwICJeYWx3YXlzIiAkcGx1Z2luXSB8fCBbcmVnZXhwICJeZmluYWxfYWx3YXlzIiAkcGx1Z2luXSB8fCBbcmVnZXhwICJecHJlX3N5biIgJHBsdWdpbl19IHsKLSAgICAgICAgICAgICAgICAgIHNldCB0eXBlIGltcG9ydCAKLSAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgaWYgeyR2YXJzKHN0ZXApICE9ICJwYXJ0aXRpb25fcGxhY2UifSB7Ci0gICAgICAgICAgICAgICAgICAgICBzZXQgdHlwZSBza2lwIAotICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgIHNldCB0eXBlIGltcG9ydAotICAgICAgICAgICAgICAgICAgfSAKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgIH0KLSAgICAgICAgICAgfQotCi0gICAgICAgICAgIHNldCBzdGVwX3BsdWcgW2Zvcm1hdCAlc18lcyAkdmFycyhzdGVwKSAkcGx1Z2luXQotICAgICAgICAgICBpZiB7IVtpbmZvIGV4aXN0cyB2YXJzKHByb2Nlc3NlZF9wbHVnaW5zKV19IHsKLSAgICAgICAgICAgICAgc2V0IHZhcnMocHJvY2Vzc2VkX3BsdWdpbnMpIFtsaXN0XQotICAgICAgICAgICAgICBsYXBwZW5kIHZhcnMocHJvY2Vzc2VkX3BsdWdpbnMpICRzdGVwX3BsdWcKLSAgICAgICAgICAgfSBlbHNlIHsKLSMgICAgICAgICAgICAgIHB1dHMgIiR2YXJzKHByb2Nlc3NlZF9wbHVnaW5zKSA6ICRzdGVwX3BsdWciCi0gICAgICAgICAgICAgIGlmIHtbbHNlYXJjaCAkdmFycyhwcm9jZXNzZWRfcGx1Z2lucykgJHN0ZXBfcGx1Z10gPT0gLTF9IHsKLSAgICAgICAgICAgICAgICAgbGFwcGVuZCB2YXJzKHByb2Nlc3NlZF9wbHVnaW5zKSAkc3RlcF9wbHVnCi0gICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgIGlmIHsoJHZhcnMoc3RlcCkgIT0gInBhcnRpdGlvbl9wbGFjZSIpICYmICFbcmVnZXhwICJhbHdheXMiICRwbHVnaW5dfSB7Ci0gICAgICAgICAgICAgICAgICAgIHNldCB0eXBlIHNraXAKLSAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICB9Ci0gICAgICAgICAgIH0KLSAgICAgICAgICAgaWYgeyR0eXBlICE9ICJza2lwIn0gewotIyAgICAgICAgICAgICAgaWYgeyR0eXBlID09ICJpbXBvcnQifSB7Ci0jICAgICAgICAgICAgICAgICBzZXQgaXAgW29wZW4gJHBsdWdfZmlsZSByXQotIyAgICAgICAgICAgICAgICAgd2hpbGUge1tnZXRzICRpcCBsaW5lXT49MH0gewotIyAgICAgICAgICAgICAgICAgICAgaWYgeyFbcmVnZXhwICJeJCIgJGxpbmVdfSB7IAotIyAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIgICAkbGluZVxuIgotIyAgICAgICAgICAgICAgICAgICAgICAgaWYgeyFbcmVnZXhwICJeIyIgJGxpbmVdfSB7IAotIyAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIG5vX2NvbW1lbnRzICIgICAkbGluZVxuIgotIyAgICAgICAgICAgICAgICAgICAgICAgfQotIyAgICAgICAgICAgICAgICAgICAgfQotIyAgICAgICAgICAgICAgICAgfQotIyAgICAgICAgICAgICAgICAgY2xvc2UgJGlwCi0gICAgICAgICAgICAgICAgIHJldHVybiAkY29tbWFuZHMKLSAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKG9sZF9wbHVnaW5zKV0gJiYgIVtyZWdleHAgc3luXyAkdmFycyhzdGVwKV19IHsKLSAgICAgICAgICAgICAgICAgICAgIHNldCB0ZW1wICJzZXRfZGIgZmxvd19zdGVwOiR2YXJzKHN0ZXApIC4kdHlwZSB7IGV2YWxfZW5jIHtcbiIKLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCB0ZW1wICRub19jb21tZW50cwotICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIHRlbXAgIn19XG4iCi0gICAgICAgICAgICAgICAgICAgICBwdXRzICRvcCAkdGVtcAotICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgc2V0IHRlbXAgInNldF9kYiBmbG93X3N0ZXA6JHZhcnMoc3RlcCkgLiR0eXBlIHtcbiIKLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCB0ZW1wICRub19jb21tZW50cwotICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIHRlbXAgIn1cbiIKLSAgICAgICAgICAgICAgICAgICAgIHB1dHMgJG9wICR0ZW1wCi0gICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgfQotICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICBwdXRzICJTa2lwcGluZyBwbHVnaW4gJHBsdWdpbiBhcyBpdCBjYW5ub3QgYmUgKG9yIGFscmVhZHkgaGFzIGJlZW4pIHRpZWQgdG8gYSBmbG93X3N0ZXAgYXR0cmlidXRlIgotICAgICAgICAgICB9Ci0gICAgICAgICAgIGNsb3NlICRvcAotICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgcmV0dXJuICRjb21tYW5kcwotICAgICAgICAgfQotICAgICAgfSBlbHNlIHsKLSAgICAgICAgcmV0dXJuICRjb21tYW5kcwotICAgICAgfQotICAgfQotCi0gICBuYW1lc3BhY2UgZXhwb3J0IGdldF90b29sIAotICAgcHJvYyBnZXRfdG9vbCB7fSB7Ci0gICAgIHNldCB0b29sX25hbWUgIiIKLSAgICAgc2V0IHBhdGhfdG9fZXhlIFtpbmZvIG5hbWVvZmV4ZWN1dGFibGVdCi0gICAgIGlmIHtbcmVnZXhwIHsvcmMoNjQpPygtXHcpPyR9ICRwYXRoX3RvX2V4ZV19IHsKLSAgICAgICBzZXQgdG9vbF9uYW1lICJyYyIKLSAgICAgfSBlbHNlaWYge1tyZWdleHAgey9nZW51cyg2NCk/KC1cdyk/JH0gJHBhdGhfdG9fZXhlXX0gewotICAgICAgIHNldCB0b29sX25hbWUgInJjIgotICAgICB9IGVsc2VpZiB7W3JlZ2V4cCB7LipcLyhMRUN8bGVjKX0gJHBhdGhfdG9fZXhlXX0gewotICAgICAgIHNldCB0b29sX25hbWUgImxlYyIKLSAgICAgfSBlbHNlaWYge1tyZWdleHAgey4qXC92ZXJpZnl9ICRwYXRoX3RvX2V4ZV19IHsKLSAgICAgICBzZXQgdG9vbF9uYW1lICJjbHAiCi0gICAgIH0gZWxzZWlmIHtbcmVnZXhwIHsuKlwvQ0NEfSAkcGF0aF90b19leGVdfSB7Ci0gICAgICAgc2V0IHRvb2xfbmFtZSAiY2NkIgotICAgICB9IGVsc2VpZiB7W3JlZ2V4cCB7LipcL2N0b3N9ICRwYXRoX3RvX2V4ZV19IHsKLSAgICAgICBzZXQgdG9vbF9uYW1lICJjdG9zIgotICAgICB9IGVsc2VpZiB7W3JlZ2V4cCB7LipcL3RjbHNofSAkcGF0aF90b19leGVdfSB7Ci0gICAgICAgc2V0IHRvb2xfbmFtZSAidGNsc2giCi0gICAgIH0gZWxzZWlmIHtbcmVnZXhwIHsuKlwvaW5ub3Z1c30gJHBhdGhfdG9fZXhlXX0gewotICAgICAgIHNldCB0b29sX25hbWUgImVkaSIKLSAgICAgfSBlbHNlaWYge1tyZWdleHAgey4qXC9lbmNvdW50ZXJ9ICRwYXRoX3RvX2V4ZV19IHsKLSAgICAgICBzZXQgdG9vbF9uYW1lICJlZGkiCi0gICAgIH0gZWxzZWlmIHtbcmVnZXhwIHsuKlwvdmVsb2NpdHl9ICRwYXRoX3RvX2V4ZV19IHsKLSAgICAgICBzZXQgdG9vbF9uYW1lICJlZGkiCi0gICAgIH0gZWxzZWlmIHtbcmVnZXhwIHsuKlwvbmNzaW19ICRwYXRoX3RvX2V4ZV19IHsKLSAgICAgICBzZXQgdG9vbF9uYW1lICJpZXMiCi0gICAgIH0KLSAgICAgcmV0dXJuICR0b29sX25hbWUKLSAgIH0KLQotICAgcHJvYyBzb3VyY2VfZmlsZSB7ZmlsZSB7YWJvcnQgMX19IHsKLSAgICAgIGdsb2JhbCB2YXJzCi0gICAgICBnbG9iYWwgc291cmNlX2Vycm9yCi0gICAgICBnbG9iYWwgZXJyb3JJbmZvCi0gICAgICBnbG9iYWwgcmV0dXJuX2NvZGUKLQotIyAgICAgIHB1dHMgIjxGRj4gTE9BRElORyAnJGZpbGUnIEZJTEUiCi0gICAgICBpZiB7W2ZpbGUgZXhpc3RzICRmaWxlXX0gewotICAgICAgICAgaWYge1tpbmZvIGNvbW1hbmQgRkY6OmdldF90b29sXSBuZSAiIiAmJiBbRkY6OmdldF90b29sXSBlcSAicmMiIH0gewotICAgICAgICAgICAgIHNldCBzb3VyY2VSZXN1bHQgW2NhdGNoIHsgdXBsZXZlbCB0Y2xfc291cmNlICRmaWxlIH0gc291cmNlX2Vycm9yIF0KLSAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgc2V0IHNvdXJjZVJlc3VsdCBbY2F0Y2ggeyB1cGxldmVsIHNvdXJjZSAkZmlsZSB9IHNvdXJjZV9lcnJvciBdCi0gICAgICAgICB9Ci0gICAgICAgICBpZiB7ICRzb3VyY2VSZXN1bHQgfSB7Ci0gICAgICAgICAgICBwdXRzICI8RkY+ID09PT09PT09PT09PT09PSBUQ0wgRVJST1IgPT09PT09PT09PT09PT09PT09PT0iCi0gICAgICAgICAgICBwdXRzICI8RkY+IEVycm9yIGxvYWRpbmcgJGZpbGUgZmlsZSIKLSAgICAgICAgICAgIHB1dHMgIjxGRj4gJGVycm9ySW5mbyIKLSAgICAgICAgICAgIHB1dHMgIjxGRj4gJHNvdXJjZV9lcnJvciIKLSAgICAgICAgICAgIHB1dHMgIjxGRj4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSIKLSAgICAgICAgICAgIHNldCByZXR1cm5fY29kZSA5OQotICAgICAgICAgICAgaWYgeyRhYm9ydH0gewotICAgICAgICAgICAgICAgZXhpdCAkcmV0dXJuX2NvZGUKLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0KLSAgICAgIH0KLSAgIH0KLQotICAgcHJvYyBnZXRfYnlfc3VmZml4IHtwYXNzZWRfYXJyYXkge3N1ZmZpeCAiIn19IHsKLSAgICAgICMKLSAgICAgICMgR2V0IHRoZSBsaXN0IG9mIGFycmF5IGluZGljZXMgdGhhdCBoYXZlIGEgc3VmZml4IG9mIHRoZQotICAgICAgIyBwYXNzZWQgc3RyaW5nIHNlcXVlbmNlCi0gICAgICAjCi0KLSAgICAgIHVwdmFyICRwYXNzZWRfYXJyYXkgdGhlX2FycmF5Ci0KLSAgICAgICMKLSAgICAgICMgSWYgdGhlcmUgaXMgbm8gc3VmZml4LCByZXR1cm4gZXZlcnkgbmFtZQotICAgICAgIwotCi0gICAgICBpZiB7W3N0cmluZyBsZW5ndGggJHN1ZmZpeF0gPT0gMH0gewotICAgICAgICAgcmV0dXJuIGFycmF5IG5hbWVzIHRoZV9hcnJheQotICAgICAgfQotCi0gICAgICAjCi0gICAgICAjIElmIHRoZXJlIGlzIGEgc3VmZml4LCBmaW5kIHRoZSBtYXRjaGluZyBuYW1lcyBhbmQgcmV0dXJuCi0gICAgICAjIHRoZSBsaXN0IG9mIHRob3NlIG5hbWVzICh3aXRob3V0IHRoZSBzdWZmaXggYXR0YWNoZWQgdG8gaXQpLgotICAgICAgIyBUaGlzIGlzIG1vc3QgaGVscGZ1bCB3aGVuIGxvb2tpbmcgZm9yICJtdWx0aS1kaW1lbnNpb25hbCBhcnJheQotICAgICAgIyBpbmRpY2VzIiAoaW4gcXVvdGVzIGJlY2F1c2UgVGNsIGRvZXNuJ3Qgc3VwcG9ydCBtdWx0aXBsZQotICAgICAgIyBkaW1lbnNpb25zIGZvciBhcnJheSBpbmRpY2VzKQotICAgICAgIwotCi0gICAgICBzZXQgc3VmZml4X2xlbmd0aCBbc3RyaW5nIGxlbmd0aCAkc3VmZml4XQotICAgICAgc2V0IGFsbF9uYW1lcyBbYXJyYXkgbmFtZXMgdGhlX2FycmF5IC1nbG9iICIqJHN1ZmZpeCJdCi0gICAgICBzZXQgbmFtZXMgW2xpc3RdCi0gICAgICBmb3JlYWNoIG5hbWUgJGFsbF9uYW1lcyB7Ci0gICAgICAgICBzZXQgbGVuZ3RoIFtzdHJpbmcgbGVuZ3RoICRuYW1lXQotICAgICAgICAgc2V0IGluZGV4IFtzdHJpbmcgcmFuZ2UgJG5hbWUgMCBbZXhwciAkbGVuZ3RoIC0gJHN1ZmZpeF9sZW5ndGggLSAxXV0KLSAgICAgICAgIGxhcHBlbmQgbmFtZXMgJGluZGV4Ci0gICAgICB9Ci0gICAgICByZXR1cm4gJG5hbWVzCi0gICB9Ci0KLSAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgIyBVdGlsaXR5IHByb2NlZHVyZXMgb24gbGlzdHMKLSAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCi0gICBwcm9jIGxpbnRlcnNlY3Rpb24ge2xpc3RhIGxpc3RifSB7Ci0gICAgICAjCi0gICAgICAjIFJldHVybiB0aGUgaW50ZXJzZWN0aW9uIG9mIGxpc3RhIGFuZCBsaXN0YiwgcmVtb3ZpbmcgYW55IGR1cGxpY2F0ZXMKLSAgICAgICMKLQotICAgICAgc2V0IGludGVyc2VjdCBbbGlzdF0KLSAgICAgIGZvcmVhY2ggYSAkbGlzdGEgewotICAgICAgICAgaWYgeyhbbHNlYXJjaCAkbGlzdGIgJGFdICE9IC0xKSAmJiBcCi0gICAgICAgICAgICAgICAgKFtsc2VhcmNoICRpbnRlcnNlY3QgJGFdID09IC0xKX0gewotICAgICAgICAgICAgbGFwcGVuZCBpbnRlcnNlY3QgJGEKLSAgICAgICAgIH0KLSAgICAgIH0KLSAgICAgIHJldHVybiAkaW50ZXJzZWN0Ci0gICB9Ci0KLQotICAgcHJvYyBsdW5pb24ge2xpc3RhIGxpc3RifSB7Ci0gICAgICAjCi0gICAgICAjIFJldHVybiB0aGUgdW5pb24gb2YgbGlzdGEgYW5kIGxpc3RiLCByZW1vdmluZyBhbnkgZHVwbGljYXRlcwotICAgICAgIwotCi0gICAgICBzZXQgdW5pb24gW2xpc3RdCi0gICAgICBmb3JlYWNoIGEgJGxpc3RhIHsKLSAgICAgICAgIGlmIHtbbHNlYXJjaCAkdW5pb24gJGFdID09IC0xfSB7Ci0gICAgICAgICAgICBsYXBwZW5kIHVuaW9uICRhCi0gICAgICAgICB9Ci0gICAgICB9Ci0gICAgICBmb3JlYWNoIGIgJGxpc3RiIHsKLSAgICAgICAgIGlmIHtbbHNlYXJjaCAkdW5pb24gJGJdID09IC0xfSB7Ci0gICAgICAgICAgICBsYXBwZW5kIHVuaW9uICRiCi0gICAgICAgICB9Ci0gICAgICB9Ci0gICAgICByZXR1cm4gJHVuaW9uCi0gICB9Ci0KLSAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgIyBVdGlsaXRpZXMgdG8gaGFuZGxlIGRpZmZlcmVudCBjb250cm9sIHN0cnVjdHVyZSBvdXRwdXQgKGlmLXRoZW4tZWxzZSwKLSAgICMgZm9yZWFjaCwgZXRjLikKLSAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCi0gICBwcm9jIGZvcl9lYWNoIHt2YXIgdmFyX2xpc3QgY29kZV9ibG9ja30gewotICAgICAgIwotICAgICAgIyBSZXR1cm4gYSBzdHJpbmcgZm9yIGEgVGNsIGZvcmVhY2ggYmxvY2sKLSAgICAgICMKLQotICAgICAgc2V0IGNvZGUgIiIKLSAgICAgIGlmIHshW2xsZW5ndGggJGNvZGVfYmxvY2tdfSB7Ci0gICAgICAgICByZXR1cm4gJGNvZGUKLSAgICAgIH0KLQotICAgICAgc2V0IGNvZGUgImZvcmVhY2ggJHZhciAkdmFyX2xpc3QgXHtcbiIKLSAgICAgIGZvcmVhY2ggbGluZSBbZ2V0TGluZXMgJGNvZGVfYmxvY2tdIHsKLSAgICAgICAgIGFwcGVuZCBjb2RlICIgICAkbGluZSIKLSAgICAgIH0KLSAgICAgIGFwcGVuZCBjb2RlICJcfVxuIgotICAgICAgcmV0dXJuICRjb2RlCi0gICB9Ci0KLSAgIHByb2MgZ2V0X2xpbmVzIHtjb2RlX2Jsb2NrfSB7Ci0gICAgICAjCi0gICAgICAjIFJldHVybiBhIGxpc3Qgb2YgbGluZXMgZnJvbSB0aGUgc3RyaW5ncyBpbiBjb2RlX2Jsb2NrCi0gICAgICAjCi0KLSAgICAgIHNldCBibG9jayBbbGlzdF0KLSAgICAgIHdoaWxlIHtbbGxlbmd0aCAkY29kZV9ibG9ja119IHsKLSAgICAgICAgIHNldCBpbmRleCBbc3RyaW5nIGZpcnN0ICJcbiIgJGNvZGVfYmxvY2tdCi0gICAgICAgICBpZiB7JGluZGV4ID09IC0xfSB7Ci0gICAgICAgICAgICBzZXQgaW5kZXggW3N0cmluZyBsZW5ndGggJGNvZGVfYmxvY2tdCi0gICAgICAgICB9Ci0gICAgICAgICBzZXQgbGluZSBbc3RyaW5nIHJhbmdlICRjb2RlX2Jsb2NrIDAgJGluZGV4XQotICAgICAgICAgc2V0IGNvZGVfYmxvY2sgW3N0cmluZyByYW5nZSAkY29kZV9ibG9jayBbZXhwciAkaW5kZXggKyAxXSBlbmRdCi0KLSAgICAgICAgIGlmIHtbc3RyaW5nIGluZGV4ICRsaW5lIGVuZF0gIT0gIlxuIn0gewotICAgICAgICAgICAgYXBwZW5kIGxpbmUgIlxuIgotICAgICAgICAgfQotICAgICAgICAgbGFwcGVuZCBibG9jayAkbGluZQotICAgICAgfQotCi0gICAgICByZXR1cm4gJGJsb2NrCi0gICB9Ci0KLSAgIHByb2MgaWZfZWxzZSB7Y29uZCB0aGVuX2Jsb2NrIHtlbHNlX2Jsb2NrICIifX0gewotICAgICAgIwotICAgICAgIyBPdXRwdXQgYSBUY2wgaWYtdGhlbi1lbHNlIGJsb2NrIHdpdGggdGhlIHBhc3NlZCBkYXRhLgotICAgICAgIwotCi0gICAgICBzZXQgY29tbWFuZCAiaWYgXHskY29uZFx9IFx7XG4iCi0gICAgICBmb3JlYWNoIGxpbmUgW2dldF9saW5lcyAkdGhlbl9ibG9ja10gewotICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAgICRsaW5lIgotICAgICAgfQotICAgICAgaWYge1tsbGVuZ3RoICRlbHNlX2Jsb2NrXX0gewotICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIlx9IGVsc2UgXHtcbiIKLSAgICAgICAgIGZvcmVhY2ggbGluZSBbZ2V0X2xpbmVzICRlbHNlX2Jsb2NrXSB7Ci0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiICAgJGxpbmUiCi0gICAgICAgICB9Ci0gICAgICB9Ci0gICAgICBhcHBlbmQgY29tbWFuZCAiXH1cbiIKLSAgICAgIHJldHVybiAkY29tbWFuZAotICAgfQotCi0gICBwcm9jIHByZXR0eV9wcmludF9saXN0cyB7bGluZSBkZWJ1Z30gewotICAgICAgIwotICAgICAgIyBJZiB0aGVyZSBpcyBhbiBleHBsaWNpdCBUY2wgbGlzdCBpbiB0aGUgbGluZSwgd2UgbWF5IHdhbnQgdG8KLSAgICAgICMgc2VwYXJhdGUgaXQgb3V0IGludG8gbXVsdGlwbGUgbGluZXMuICBJdCB3aWxsIHR1cm4gYSBsaXN0IGZyb20KLSAgICAgICMgICAgICAgW2xpc3QgYSBiIGNdCi0gICAgICAjIGludG8KLSAgICAgICMgICAgICAgW2xpc3QgYSBcCi0gICAgICAjICAgICAgICAgICAgIGIgXAotICAgICAgIyAgICAgICAgICAgICBjXQotICAgICAgIyBUaGF0IG1heSBub3QgbG9vayBsaWtlIG11Y2gsIGJ1dCBmb3IgbGlzdHMgdGhhdCBoYXZlIHJlYWxseSAqYmlnKgotICAgICAgIyB0ZXh0IGVudHJpZXMsIGl0IG1ha2VzIGl0IGxvb2sgYSBsb3QgbmljZXIKLSAgICAgICMKLSAgICAgICMgSWYgdGhlcmUgaXMgbm8gbGlzdCBpbiB0aGUgbGluZSwgZG8gbm90aGluZwotICAgICAgIwotCi0gICAgICBzZXQgZW5kQ2hhciBbc3RyaW5nIGluZGV4ICRsaW5lIGVuZF0KLSAgICAgIHNldCBsaW5lIFtzdHJpbmcgdHJpbXJpZ2h0ICRsaW5lXQotICAgICAgaWYgeyRlbmRDaGFyID09ICJcbiJ9IHsKLSAgICAgICAgIGFwcGVuZCBsaW5lICJcbiIKLSAgICAgIH0KLSAgICAgIHNldCBsaXN0UG9zIFtzdHJpbmcgZmlyc3QgIlxbbGlzdCAiICRsaW5lXQotICAgICAgaWYgeyRsaXN0UG9zID09IC0xfSB7Ci0gICAgICAgICByZXR1cm4gJGxpbmUKLSAgICAgIH0KLSAgICAgIHNldCBvcmlnaW5hbCAkbGluZQotCi0gICAgICAjCi0gICAgICAjIEluaXRpYWxpemUgdGhlIGxpbmUgd2l0aCB0aGUgY29udGVudHMgb2YgdGhlIGxpbmUgdXAgdG8gYW5kIGluY2x1ZGluZwotICAgICAgIyB0aGUgIltsaXN0ICIgdGV4dC4gIEFsc28gZGV0ZXJtaW5lIHRoZSBhbW91bnQgb2YgaW5kZW50YXRpb24gaW4gdGhlCi0gICAgICAjIGxpbmUgc28gdGhhdCB3ZSBrbm93IHdoYXQgdG8gZG8gZm9yIHN1YnNlcXVlbnQgbGluZXMKLSAgICAgICMKLQotICAgICAgaW5jciBsaXN0UG9zIDUKLSAgICAgIHNldCBuZXh0TGluZSBbc3RyaW5nIHJhbmdlICRsaW5lIDAgJGxpc3RQb3NdCi0gICAgICBzZXQgaW5kZW50IFtzdHJpbmcgcmVwZWF0ICIgIiBbc3RyaW5nIGxlbmd0aCAkbmV4dExpbmVdXQotICAgICAgc2V0IGxpbmUgW3N0cmluZyB0cmltbGVmdCBbc3RyaW5nIHJhbmdlICRsaW5lICRsaXN0UG9zIGVuZF1dCi0KLSAgICAgICMKLSAgICAgICMgTWFrZSBzdXJlIHRoYXQgdGhlcmUgaXMgbm8gc3BhY2UgYmV0d2VlbiB0aGUgY2xvc2UgYnJhY2UgaW4gdGhlIGxpc3QKLSAgICAgICMgYW5kIHRoZSBsYXN0IHRleHQgaW4gdGhlIGxpc3QuICBUaGlzIHdpbGwgaGVscCB3aXRoIHByb2Nlc3NpbmcgKGJlbG93KQotICAgICAgIwotCi0gICAgICBzZXQgbGluZSBbc3RyaW5nIHRyaW1yaWdodCAkbGluZV0KLSAgICAgIGlmIHtbc3RyaW5nIGluZGV4ICRsaW5lIGVuZF0gIT0gIlxdIn0gewotICAgICAgICAgcmV0dXJuICRvcmlnaW5hbAotICAgICAgfQotICAgICAgc2V0IGxpbmUgW3N0cmluZyByYW5nZSAkbGluZSAwIFtleHByIFtzdHJpbmcgbGVuZ3RoICRsaW5lXSAtIDJdXQotICAgICAgc2V0IGxpbmUgW3N0cmluZyB0cmltcmlnaHQgJGxpbmVdCi0gICAgICBhcHBlbmQgbGluZSAiXF1cbiIKLQotICAgICAgIwotICAgICAgIyBQYXJzZSBlYWNoIGVsZW1lbnQgaW4gdGhlIGxpc3QKLSAgICAgICMKLQotICAgICAgc2V0IHByaW50U3RyaW5nICIiCi0gICAgICB3aGlsZSB7W3N0cmluZyBsZW5ndGggJGxpbmVdfSB7Ci0gICAgICAgICAjCi0gICAgICAgICAjIEdldCB0aGUgbmV4dCBpdGVtIGluIHRoZSBsaXN0Ci0gICAgICAgICAjCi0KLSAgICAgICAgIHNldCBzcGFjZSBbc3RyaW5nIGZpcnN0ICIgIiAkbGluZV0KLSAgICAgICAgIGlmIHskc3BhY2UgPT0gLTF9IHsKLSAgICAgICAgICAgIHNldCBzcGFjZSBbc3RyaW5nIGxlbmd0aCAkbGluZV0KLSAgICAgICAgIH0KLSAgICAgICAgIHNldCBhcmcgW3N0cmluZyByYW5nZSAkbGluZSAwICRzcGFjZV0KLSAgICAgICAgIGFwcGVuZCBuZXh0TGluZSAkYXJnCi0KLSAgICAgICAgICMKLSAgICAgICAgICMgUmVtb3ZlIHRoYXQgaXRlbSBmcm9tIHRoZSBsaW5lCi0gICAgICAgICAjCi0KLSAgICAgICAgIHNldCBsaW5lIFtzdHJpbmcgcmFuZ2UgJGxpbmUgW2V4cHIgJHNwYWNlICsgMV0gZW5kXQotICAgICAgICAgc2V0IGxpbmUgW3N0cmluZyB0cmltbGVmdCAkbGluZV0KLSAgICAgICAgIGlmIHtbc3RyaW5nIGxlbmd0aCAkbGluZV19IHsKLSAgICAgICAgICAgIGlmIHtbc3RyaW5nIGxlbmd0aCAkbmV4dExpbmVdID4gODB9IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBwcmludFN0cmluZyAiJG5leHRMaW5lXFxcbiIKLSAgICAgICAgICAgICAgIHNldCBuZXh0TGluZSAkaW5kZW50Ci0gICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0gICAgICB9Ci0gICAgICBhcHBlbmQgcHJpbnRTdHJpbmcgJG5leHRMaW5lCi0gICAgICByZXR1cm4gJHByaW50U3RyaW5nCi0gICB9Ci0KLSAgIHByb2MgcHJldHR5X3ByaW50IHtjb21tYW5kcyBmb3JtYXRfb3B0aW9ucyB7ZGVidWcgMH19IHsKLQotICAgICAgZ2xvYmFsIHZhcnMKLQotICAgICAgIwotICAgICAgIyBQcmV0dHkgcHJpbnQgdGhlIGxpbmVzLCBvbmUgYnkgb25lLiAgVGhlIGZvbGxvd2luZyB3aWxsIGJlIGRvbmU6Ci0gICAgICAjICAgbyBJZiB0aGUgbGluZSBpcyBncmVhdGVyIHRoYW4gODAgY29sdW1ucywgd2Ugd2lsbCBicmVhayBpdCB1cAotICAgICAgIyAgICAgYWxvbmcgdGhlIG9wdGlvbnMgKC1vcHRpb24pIGFuZCBpbmRlbnQKLSAgICAgICMgICBvIEZpeCBhbnkgaW5kZW50YXRpb24KLSAgICAgICMKLQotICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGNhdGNoX2Vycm9ycyldICYmICR2YXJzKGNhdGNoX2Vycm9ycyl9IHsKLSAgICAgICAgIHNldCBpbmRlbnQgMwotICAgICAgfSBlbHNlIHsKLSAgICAgICAgIHNldCBpbmRlbnQgMAotICAgICAgfQotICAgICAgc2V0IGxpbmVzICIiCi0gICAgICBzZXQgbGVuIFtzdHJpbmcgbGVuZ3RoICRjb21tYW5kc10KLSAgICAgIHdoaWxlIHskbGVuID4gMH0gewotICAgICAgICAgIwotICAgICAgICAgIyBIYW5kbGUgdGhlIHNpbXBsZSBjYXNlLiAgSWYgdGhlIGxlYWRpbmcgY2hhcmFjdGVyIGlzIGEgY2FycmlhZ2UKLSAgICAgICAgICMgcmV0dXJuLCBhcHBlbmQgYSBibGFuayBsaW5lIHRvIHRoZSBwcmV0dHktcHJpbnRlZCBsaW5lcyBhbmQKLSAgICAgICAgICMgY29udGludWUgb24KLSAgICAgICAgICMKLQotICAgICAgICAgc2V0IGNyIFtzdHJpbmcgZmlyc3QgIlxuIiAkY29tbWFuZHNdCi0gICAgICAgICBpZiB7ISRjcn0gewotICAgICAgICAgICAgc2V0IGNvbW1hbmRzIFtzdHJpbmcgcmFuZ2UgJGNvbW1hbmRzIDEgZW5kXQotICAgICAgICAgICAgaW5jciBsZW4gLTEKLSAgICAgICAgICAgIGFwcGVuZCBsaW5lcyAiXG4iCi0gICAgICAgICAgICBjb250aW51ZQotICAgICAgICAgfQotCi0gICAgICAgICAjCi0gICAgICAgICAjIElmIHdlIGRpZG4ndCBmaW5kIGEgY2FycmlhZ2UgcmV0dXJuIGluIHRoZSBzdHJpbmcsIHRoZSBlbnRpcmUgdGhpbmcKLSAgICAgICAgICMgaXMgYSBzaW5nbGUgbGluZS4gIE90aGVyd2lzZSwgcmVtb3ZlIHRoZSBuZXh0IGxpbmUgZnJvbSB0aGUgc2V0IG9mCi0gICAgICAgICAjIGxpbmVzLiAgSWYgaXQgc3RpbGwgZW5kcyB1cCBiZWluZyBhIGJsYW5rIGxpbmUsIGFwcGVuZCB0aGUgYmxhbmsKLSAgICAgICAgICMgbGluZSB0byB0aGUgcHJldHR5LXByaW50ZWQgc3RyaW5nIGFuZCBjb250aW51ZSBvbgotICAgICAgICAgIwotCi0gICAgICAgICBpZiB7JGNyID09IC0xfSB7Ci0gICAgICAgICAgICBzZXQgbGluZSAkY29tbWFuZHMKLSAgICAgICAgICAgIHNldCBjb21tYW5kcyAiIgotICAgICAgICAgICAgc2V0IGxlbiAwCi0gICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgc2V0IGxpbmUgW3N0cmluZyByYW5nZSAkY29tbWFuZHMgMCAkY3JdCi0gICAgICAgICAgICBzZXQgY29tbWFuZHMgW3N0cmluZyByYW5nZSAkY29tbWFuZHMgW2luY3IgY3JdIGVuZF0KLSAgICAgICAgICAgIHNldCBsZW4gW2V4cHIgJGxlbiAtICRjcl0KLSAgICAgICAgIH0KLSAgICAgICAgIHNldCBsaW5lIFtzdHJpbmcgdHJpbXJpZ2h0ICRsaW5lXQotICAgICAgICAgaWYgeyFbc3RyaW5nIGxlbmd0aCAkbGluZV19IHsKLSAgICAgICAgICAgIGFwcGVuZCBsaW5lcyAiXG4iCi0gICAgICAgICAgICBjb250aW51ZQotICAgICAgICAgfQotCi0gICAgICAgICAjCi0gICAgICAgICAjIFdlIGhhdmUgYSByZWFsIGxpbmUgd2l0aCByZWFsIHRleHQuICBJZiB0aGVyZSBpcyBubyBxdW90ZSBpbiB0aGUKLSAgICAgICAgICMgc3RyaW5nLCBjb21wcmVzcyBtdWx0aXBsZSBibGFuayBzcGFjZXMgdG8gYSBzaW5nbGUgYmxhbmsgc3BhY2UKLSAgICAgICAgICMKLQotICAgICAgICAgc2V0IGxpbmUgW3N0cmluZyB0cmltbGVmdCAkbGluZV0KLSAgICAgICAgIGlmIHtbc3RyaW5nIGZpcnN0ICJcIiIgJGxpbmVdID09IC0xfSB7Ci0gICAgICAgICAgICBzZXQgbGluZSBbcmVnc3ViIC1hbGwge1xzK30gJGxpbmUgIiAiXQotICAgICAgICAgfQotCi0gICAgICAgICAjCi0gICAgICAgICAjIEFwcGx5IHRoZSBwcm9wZXIgYW1vdW50IG9mIGluZGVudGF0aW9uCi0gICAgICAgICAjCi0KLSAgICAgICAgIHNldCBpc1B1dCBbc3RyaW5nIGVxdWFsIC1ub2Nhc2UgLWxlbmd0aCA1ICRsaW5lICJwdXRzICJdCi0gICAgICAgICBzZXQgZmlyc3RDaGFyIFtzdHJpbmcgaW5kZXggJGxpbmUgMF0KLSAgICAgICAgIGlmIHskZmlyc3RDaGFyID09ICJcfSJ9IHsKLSAgICAgICAgICAgIGluY3IgaW5kZW50IC0zCi0gICAgICAgICB9Ci0gICAgICAgICBzZXQgYmxhbmtzIFtzdHJpbmcgcmVwZWF0ICIgIiAkaW5kZW50XQotICAgICAgICAgc2V0IGxpbmUgIiR7YmxhbmtzfSR7bGluZX0iCi0gICAgICAgICBpZiB7W3N0cmluZyBpbmRleCAkbGluZSBlbmRdID09ICJceyJ9IHsKLSAgICAgICAgICAgIGluY3IgaW5kZW50IDMKLSAgICAgICAgIH0KLQotICAgICAgICAgIwotICAgICAgICAgIyBJZiB0aGUgZmlyc3QgY2hhcmFjdGVyIGlzIGEgZGFzaCwgd2UgaGF2ZSBhbHJlYWR5IGJyb2tlbiB0aGUgbGluZQotICAgICAgICAgIyB1cCBmb3IgcHJldHR5IHByaW50aW5nLgotICAgICAgICAgIwotCi0gICAgICAgICBpZiB7JGZpcnN0Q2hhciA9PSAiLSJ9IHsKLSAgICAgICAgICAgIGFwcGVuZCBsaW5lcyAiICAgJGxpbmVcbiIKLSAgICAgICAgICAgIGNvbnRpbnVlCi0gICAgICAgICB9Ci0KLSAgICAgICAgICMKLSAgICAgICAgICMgRG9uJ3QgYm90aGVyIGZvcm1hdHRpbmcgY29tbWVudHMgb3Igc2hvcnQgbGluZXMuICBBbHNvLCBpZiB0aGUKLSAgICAgICAgICMgcm91dGluZSBoYXMgYmVlbiB0b2xkIG5vdCB0byBmb3JtYXQgdGhlIGNvbW1hbmQgbGluZSBvcHRpb25zLCBqdXN0Ci0gICAgICAgICAjIG91dHB1dCB0aGUgbGluZQotICAgICAgICAgIwotCi0gICAgICAgICBzZXQgbGluZUxlbiBbc3RyaW5nIGxlbmd0aCAkbGluZV0KLSAgICAgICAgIGlmIHskaXNQdXQgfHwgKCRmaXJzdENoYXIgPT0gIlwjIikgfHwKLSAgICAgICAgICAgICAoJGxpbmVMZW4gPCA4MCkgfHwgISRmb3JtYXRfb3B0aW9uc30gewotICAgICAgICAgICAgYXBwZW5kIGxpbmVzICIkbGluZVxuIgotICAgICAgICAgICAgY29udGludWUKLSAgICAgICAgIH0KLQotICAgICAgICAgIwotICAgICAgICAgIyBUaGUgbGluZSBsZW5ndGggaXMgb3ZlciA4MCwgYW5kIGl0J3MgYSByZWFsIElubm92dXMgY29tbWFuZCwgYW5kIGl0J3MKLSAgICAgICAgICMgbm90IGEgcHJpbnQgKHB1dHMpIHN0YXRlbWVudC4gIFN0YXJ0IGluZGVudGluZyBvbiB0aGUgLW9wdGlvbgotICAgICAgICAgIyBvcHRpb25zLiAgVGhlIGZpcnN0ICItb3B0aW9uIiBzaG91bGQgYmUgb24gdGhlIHNhbWUgbGluZSBhcyB0aGUKLSAgICAgICAgICMgY29tbWFuZC4gIEFsbCBzdWJzZXF1ZW50IG9wdGlvbnMgc2hvdWxkIGJlIG9uIHRoZWlyIG93biBsaW5lLAotICAgICAgICAgIyBzbGlnaHRseSBpbmRlbnRlZCBmcm9tIHRoZSBiYXNpYyBjb21tYW5kCi0gICAgICAgICAjCi0KLSAgICAgICAgIHNldCBmaXJzdERhc2ggW3N0cmluZyBmaXJzdCAiIC0iICRsaW5lXQotICAgICAgICAgaWYgeyRmaXJzdERhc2ggPT0gLTF9IHsKLSAgICAgICAgICAgIGFwcGVuZCBsaW5lcyAiJGxpbmVcbiIKLSAgICAgICAgICAgIGNvbnRpbnVlCi0gICAgICAgICB9Ci0KLSAgICAgICAgIHNldCBkYXNoIFtzdHJpbmcgZmlyc3QgIiAtIiAkbGluZSBbaW5jciBmaXJzdERhc2hdXQotICAgICAgICAgc2V0IGxlYWRpbmcgIiIKLSAgICAgICAgIHdoaWxlIHskZGFzaCAhPSAtMX0gewotICAgICAgICAgICAgc2V0IGZyYWdtZW50IFtzdHJpbmcgcmFuZ2UgJGxpbmUgMCBbZXhwciAkZGFzaCAtIDFdXQotICAgICAgICAgICAgYXBwZW5kIGxpbmVzIFwKLSAgICAgICAgICAgICAgIFtwcmV0dHlfcHJpbnRfbGlzdHMgIiR7bGVhZGluZ30ke2ZyYWdtZW50fSBcXFxuIiAkZGVidWddCi0gICAgICAgICAgICBzZXQgbGVhZGluZyAiJGJsYW5rcyAgICIKLSAgICAgICAgICAgIHNldCBsaW5lIFtzdHJpbmcgcmFuZ2UgJGxpbmUgW2V4cHIgJGRhc2ggKyAxXSBlbmRdCi0gICAgICAgICAgICBzZXQgbGluZSBbc3RyaW5nIHRyaW1sZWZ0ICRsaW5lXQotICAgICAgICAgICAgc2V0IGRhc2ggW3N0cmluZyBmaXJzdCAiIC0iICRsaW5lXQotICAgICAgICAgfQotICAgICAgICAgYXBwZW5kIGxpbmVzIFtwcmV0dHlfcHJpbnRfbGlzdHMgIiR7bGVhZGluZ30ke2xpbmV9XG4iICRkZWJ1Z10KLSAgICAgIH0KLSAgICAgIHJldHVybiAkbGluZXMKLSAgIH0KLQotICAgcHJvYyBzdHJpcF9saW5lcyB7Y29tbWFuZHMgbWFya2Vyc30gewotICAgICAgIwotICAgICAgIyBUaGlzIHJvdXRpbmUgc3RyaXBzIG91dCBsaW5lcyBmcm9tICRjb21tYW5kcyB3aGVuIHRoZXkgc3RhcnQgd2l0aAotICAgICAgIyBhbnkgb2YgdGhlIGxpc3QgZWxlbWVudHMgaW4gJG1hcmtlcnMKLSAgICAgICMKLQotICAgICAgc2V0IGxpbmVzICIiCi0gICAgICB3aGlsZSB7W3N0cmluZyBsZW5ndGggJGNvbW1hbmRzXSA+IDB9IHsKLSAgICAgICAgICMKLSAgICAgICAgICMgR2V0IHRoZSBuZXh0IGxpbmUgZnJvbSB0aGUgc2V0IG9mIGNvbW1hbmRzCi0gICAgICAgICAjCi0KLSAgICAgICAgIHNldCBjciBbc3RyaW5nIGZpcnN0ICJcbiIgJGNvbW1hbmRzXQotICAgICAgICAgaWYgeyRjciA9PSAtMX0gewotICAgICAgICAgICAgc2V0IGxpbmUgJGNvbW1hbmRzCi0gICAgICAgICAgICBzZXQgY29tbWFuZHMgIiIKLSAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBzZXQgbGluZSBbc3RyaW5nIHJhbmdlICRjb21tYW5kcyAwICRjcl0KLSAgICAgICAgICAgIHNldCBjb21tYW5kcyBbc3RyaW5nIHJhbmdlICRjb21tYW5kcyBbaW5jciBjcl0gZW5kXQotICAgICAgICAgfQotCi0gICAgICAgICAjCi0gICAgICAgICAjIElmIHRoZSBsaW5lIHN0YXJ0cyB3aXRoIGEgbWFya2VyLCBpZ25vcmUgdGhlIGxpbmUKLSAgICAgICAgICMKLQotICAgICAgICAgc2V0IHRyaW1tZWQgW3N0cmluZyB0cmltbGVmdCAkbGluZV0KLSAgICAgICAgIHNldCBtYXRjaGVkIGZhbHNlCi0gICAgICAgICBmb3JlYWNoIG1hcmtlciAkbWFya2VycyB7Ci0gICAgICAgICAgICBzZXQgbGVuIFtzdHJpbmcgbGVuZ3RoICRtYXJrZXJdCi0gICAgICAgICAgICBpZiB7W3N0cmluZyBlcXVhbCAtbm9jYXNlIC1sZW5ndGggJGxlbiAkbWFya2VyICR0cmltbWVkXX0gewotICAgICAgICAgICAgICAgc2V0IG1hdGNoZWQgdHJ1ZQotICAgICAgICAgICAgICAgYnJlYWsKLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0KLSAgICAgICAgIGlmIHskbWF0Y2hlZH0gewotICAgICAgICAgICAgY29udGludWUKLSAgICAgICAgIH0KLSAgICAgICAgIGFwcGVuZCBsaW5lcyAkbGluZQotICAgICAgfQotCi0gICAgICByZXR1cm4gJGxpbmVzCi0gICB9Ci0KLSAgIHByb2MgZ2VuX21ha2VmaWxlIHtzdGVwcyB0eXBlfSB7Ci0gICAgICBnbG9iYWwgdmFycwotICAgICAgZ2xvYmFsIGRlc2MKLSAgICAgIGdsb2JhbCBlbnYKLSAgICAgIGdsb2JhbCBlcnJvcnMKLQotICAgICAgaWYgeyEkdmFycyhtYWtlZmlsZSl9IHsKLSAgICAgICAgIHJldHVybgotICAgICAgfQotCi0gICAgICBzZXQgZGVzYyhzeW5fbWFwKSAiVGVjaG5vbG9neSBNYXBwaW5nIgotICAgICAgc2V0IGRlc2Moc3luX2luY3IpICJJbmNyZW1lbnRhbCBTeW50aGVzaXMiCi0gICAgICBzZXQgZGVzYyhzeW5fcGxhY2UpICJQbGFjZW1lbnQvUGh5c2ljYWwgU3ludGhlc2lzIgotICAgICAgc2V0IGRlc2MoaW5pdCkgIkRlc2lnbiBJbXBvcnQgLyBJbml0aWFsaXphdGlvbiIKLSAgICAgIGlmIHskdmFycyhyYyl9IHsKLSAgICAgICAgIHNldCBkZXNjKHBsYWNlKSAiTGVnYWxpemF0aW9uIgotICAgICAgfSBlbHNlIHsKLSAgICAgICAgIHNldCBkZXNjKHBsYWNlKSAiQ2VsbCBQbGFjZW1lbnQiCi0gICAgICB9Ci0gICAgICBzZXQgZGVzYyhwcmVjdHMpICJQcmVDVFMgT3B0aW1pemF0aW9uIgotICAgICAgc2V0IGRlc2MoY3RzKSAiQ2xvY2sgVHJlZSBTeW50aGVzaXMiCi0gICAgICBzZXQgZGVzYyhwb3N0Y3RzKSAiUG9zdENUUyBPcHRpbWl6YXRpb24iCi0gICAgICBzZXQgZGVzYyhwb3N0Y3RzX2hvbGQpICJQb3N0Q1RTIEhvbGQgRml4aW5nIgotICAgICAgc2V0IGRlc2Mocm91dGUpICJHbG9iYWwvRGV0YWlsIFJvdXRlIgotICAgICAgc2V0IGRlc2MocG9zdHJvdXRlKSAiUG9zdFJvdXRlIE9wdGltaXphdGlvbiIKLSAgICAgIHNldCBkZXNjKHBvc3Ryb3V0ZV9ob2xkKSAiUG9zdFJvdXRlIEhvbGQgRml4aW5nIgotICAgICAgc2V0IGRlc2MocG9zdHJvdXRlX3NpX2hvbGQpICJTSSBIb2xkIEZpeGluZyIKLSAgICAgIHNldCBkZXNjKHBvc3Ryb3V0ZV9zaSkgIlNJIE9wdGltaXphdGlvbiIKLSAgICAgIHNldCBkZXNjKHNpZ25vZmYpICJTaWdub2ZmIFRpbWluZyAvIFZlcmlmeSIKLQotICAgICAgaWYgeyR2YXJzKGRlYnVnKX0gewotICAgICAgICAgcHV0cyAiPERFQlVHPiBHZW5lcmF0aW5nICR0eXBlIG1ha2VmaWxlIGluIFtleGVjIHB3ZF0gZm9yIHN0ZXBzICRzdGVwcyAuLi4iCi0jICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKHBhcnRpdGlvbl9kaXIpXX0gewotIyAgICAgICAgICAgIHB1dHMgInZhcnMocGFydGl0aW9uX2RpcikgLT4gJHZhcnMocGFydGl0aW9uX2RpcikiCi0jICAgICAgICAgICAgcHV0cyAiW2ZpbGUgdGFpbCBbZmlsZSBkaXJuYW1lIFtleGVjIHB3ZF1dXSA9PSAkdmFycyhwYXJ0aXRpb25fZGlyKSIKLSMgICAgICAgICAgICBwdXRzICJbZmlsZSBkaXJuYW1lIFtleGVjIHB3ZF1dID09IFtmaWxlIG5vcm1hbGl6ZSAkdmFycyhwYXJ0aXRpb25fZGlyKV0iCi0jICAgICAgICAgfQotICAgICAgfQotCi0gICAgICBwdXRzICItLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIgotICAgICAgcHV0cyAiPEZGPiBHZW5lcmF0aW5nICR0eXBlIE1ha2VmaWxlIGZvciBbbGxlbmd0aCAkc3RlcHNdIHN0ZXBzIgotICAgICAgcHV0cyAiPEZGPiBEaXJlY3Rvcnk6IFtwd2RdIgotICAgICAgcHV0cyAiPEZGPiAgICAgU3RlcHM6ICRzdGVwcyIKLSMgICAgICBwdXRzICItLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIgotICAgICAgIyBCQ0w6IE5vdGUgLSB0aGUgTWFrZWZpbGUgbmVlZHMgdG8gYmUgZml4ZWQgdG8gdGhlIHJ1bmRpciBoZXJlLCBhcyBpdCB3aWxsIGJlIGR1bXBlZCBpbiB0aGUgZmluYWwgZXhwb3J0ZWQKLSAgICAgICMgdmFycy50Y2wKLSAgICAgIGlmIHskdmFycyhtYWtlKSA9PSAiYWxsIn0gewotICAgICAgICAgaWYgeyhbZmlsZSB0YWlsIFtmaWxlIGRpcm5hbWUgW2V4ZWMgcHdkXV1dID09ICR2YXJzKHBhcnRpdGlvbl9kaXIpKSB8fCBcCi0gICAgICAgICAgICAgKFtmaWxlIHRhaWwgW2ZpbGUgZGlybmFtZSBbZXhlYyBwd2RdXV0gPT0gJHZhcnMocGFydGl0aW9uX2Rpcl9wYXNzMikpfSB7Ci0gICAgICAgICAgICBzZXQgdmFycyhtYWtlZmlsZV9uYW1lKSAiTWFrZWZpbGUiCi0gICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgc2V0IHZhcnMobWFrZWZpbGVfbmFtZSkgIlwkdmFycyhydW5kaXIpL01ha2VmaWxlIgotICAgICAgICAgfQotICAgICAgfSBlbHNlIHsKLSAgICAgICAgIGlmIHtbZmlsZSB0YWlsIFtmaWxlIGRpcm5hbWUgW2V4ZWMgcHdkXV1dID09ICR2YXJzKHBhcnRpdGlvbl9kaXIpfSB7Ci0gICAgICAgICAgICBzZXQgdmFycyhtYWtlZmlsZV9uYW1lKSAiTWFrZWZpbGUuJHZhcnMoYXJndikiCi0gICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgc2V0IHZhcnMobWFrZWZpbGVfbmFtZSkgIlwkdmFycyhydW5kaXIpL01ha2VmaWxlLiR2YXJzKGFyZ3YpIgotICAgICAgICAgfQotICAgICAgfQotCi0gICAgICByZWdzdWIgLWFsbCAiICIgJHZhcnMobWFrZWZpbGVfbmFtZSkgIl8iIHZhcnMobWFrZWZpbGVfbmFtZSkKLQotICAgICAgc2V0IG9wIFtvcGVuIFtzdWJzdCAkdmFycyhtYWtlZmlsZV9uYW1lKV0gd10KLSMgICAgICBpZiB7JHZhcnMoZGVidWcpfSB7Ci0jICAgICAgICAgcHV0cyAiPERFQlVHPiBPcGVuaW5nIGZpbGU6ICR2YXJzKG1ha2VmaWxlX25hbWUpIGluIFtleGVjIHB3ZF0gLT4gJG9wIgotIyAgICAgIH0KLSMgICAgICBzZXQgc3RvcCBzaWdub2ZmCi0gICAgICBzZXQgc3RvcCBbbGluZGV4ICR2YXJzKHN0ZXBzKSBbZXhwciBbbGxlbmd0aCAkdmFycyhzdGVwcyldLTFdXQotICAgICAgaWYgeyR2YXJzKHJjKSAmJiBbaW5mbyBleGlzdHMgdmFycyhyY19zdGVwcyldfSB7Ci0gICAgICAgICBzZXQgc3RhcnQgW2xpbmRleCAkdmFycyhyY19zdGVwcykgMF0KLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgICBzZXQgc3RhcnQgW2xpbmRleCAkdmFycyhzdGVwcykgMF0KLSAgICAgIH0KLQotICAgICAgaWYgeyR0eXBlID09ICJoaWVyIn0gewotICAgICAgICAgc2V0IHR5cGUgdG9wX2Rvd24KLSAgICAgICAgIGlmIHskdmFycyhoaWVyX2Zsb3dfdHlwZSkgPT0gIjJwYXNzIn0gewotICAgICAgICAgICAgc2V0IHR5cGUgMnBhc3MKLSAgICAgICAgICAgIGlmIHskdmFycyhlbmFibGVfZmxleGlsbSl9IHsKLSAgICAgICAgICAgICAgc2V0IHR5cGUgZmxleGlsbQotICAgICAgICAgICAgfQotICAgICAgICAgfQotICAgICAgfQotICAgICAgaWYgeyR0eXBlID09ICJ1c2VyIn0geyBzZXQgdHlwZSBmbGF0IH0KLQotCi0gICAgICBzd2l0Y2ggJHR5cGUgewotCi0gICAgICAgICAiZmxhdCIgewotICAgICAgICAgICAgc2V0IGV4ZWN1dGVfc3RyaW5nIFtqb2luICR2YXJzKGV4ZWN1dGVfc3RyaW5nKV0KLSAgICAgICAgICAgIHB1dHMgJG9wICJWRVJTSU9OPTE3LjEwLXAwMDNfMSIKLSAgICAgICAgICAgIHB1dHMgJG9wICJWUEFUSD0kZW52KFZQQVRIKSIKLSAgICAgICAgICAgIHB1dHMgJG9wICJUQ0xTSD1bbGluZGV4ICRleGVjdXRlX3N0cmluZyAwXSIKLSAgICAgICAgICAgIHB1dHMgJG9wICJHRU5fRkxPVz1bOjpGRjo6cmVsUGF0aFRvIFtmaWxlIG5vcm1hbGl6ZSBbc3Vic3QgW2xpbmRleCAkZXhlY3V0ZV9zdHJpbmcgMV1dXSBbZmlsZSBub3JtYWxpemUgW3N1YnN0ICR2YXJzKHJ1bmRpcildXV0iCi0gICAgICAgICAgICBwdXRzICRvcCAiU0VUVVBfUEFUSD1bcmVsUGF0aFRvIFtmaWxlIG5vcm1hbGl6ZSBbc3Vic3QgJHZhcnMoc2V0dXBfcGF0aCldXSBbZmlsZSBub3JtYWxpemUgW3N1YnN0ICR2YXJzKHJ1bmRpcildXV0iCi0gICAgICAgICAgICBwdXRzICRvcCAiVE9PTD0kdmFycyhtYWtlX3Rvb2wpIgotICAgICAgICAgICAgcHV0cyAkb3AgIkFSR1M9JHZhcnMobWFrZV90b29sX2FyZ3MpIgotICAgICAgICAgICAgcHV0cyAkb3AgIkZTVEVQUz0kc3RlcHMiCi0gICAgICAgICAgICBpZiB7JHZhcnMocmMpfSB7Ci0gICAgICAgICAgICAgICBwdXRzICRvcCAiU1lOX1RPT0w9JHZhcnMobWFrZV9zeW5fdG9vbCkiCi0gICAgICAgICAgICAgICBwdXRzICRvcCAiU1lOX0FSR1M9JHZhcnMobWFrZV9zeW5fdG9vbF9hcmdzKSIKLSAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKHN5bl9sb2dfZGlyKV19IHsKLSAgICAgICAgICAgICAgICAgcHV0cyAkb3AgIlNZTl9MT0c9W3JlbFBhdGhUbyBbZmlsZSBub3JtYWxpemUgW3N1YnN0ICR2YXJzKHN5bl9sb2dfZGlyKV1dIFtmaWxlIG5vcm1hbGl6ZSAkdmFycyhydW5kaXIpXV0iCi0gICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIHtbcmVnZXhwICR2YXJzKHBhcnRpdGlvbl9kaXIpIFtmaWxlIHRhaWwgW2ZpbGUgZGlybmFtZSBbcHdkXV1dXX0gewotICAgICAgICAgICAgICAgcHV0cyAkb3AgIlNDUklQVFM9JHZhcnMoc2NyaXB0X2RpcikiCi0gICAgICAgICAgICAgICBwdXRzICRvcCAiTE9HPSR2YXJzKGxvZ19kaXIpIgotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICMgQkNMOiBBZGRlZCB0aGUgZm9sbG93aW5nIGluIG9yZGVyIHRvIGZpeCB0aGUgZGlmZmVyZW5jZSBpbiBsb2NhdGlvbiBiZXR3ZWVuIHRoZSBydW5kaXIgYW5kIHNjcmlwdHMgbG9jYXRpb24KLSAgICAgICAgICAgICAgIHB1dHMgJG9wICJTQ1JJUFRTPVtyZWxQYXRoVG8gW2ZpbGUgbm9ybWFsaXplICR2YXJzKHNjcmlwdF9kaXIpXSBbZmlsZSBub3JtYWxpemUgJHZhcnMocnVuZGlyKV1dIgotICAgICAgICAgICAgICAgIyBCQ0w6IEFkZGVkIHN1YnN0IHRvIHJlc29sdmUgdmFycyhydW5kaXIpCi0gICAgICAgICAgICAgICAjIEJDTDogVGhlbiBtb2RpZmllZCB0byBtYWtlIHJlbGF0aXZlIHRvIHRoZSBydW5kaXIKLSAgICAgICAgICAgICAgIHB1dHMgJG9wICJMT0c9W3JlbFBhdGhUbyBbZmlsZSBub3JtYWxpemUgW3N1YnN0ICR2YXJzKGxvZ19kaXIpXV0gW2ZpbGUgbm9ybWFsaXplICR2YXJzKHJ1bmRpcildXSIKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHB1dHMgJG9wICJCUk9XU0VSPSR2YXJzKG1ha2VfYnJvd3NlcikiCi0gICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMobWFrZV91cGRhdGUpXX0gewotICAgICAgICAgICAgICAgcHV0cyAkb3AgIlVQREFURT0kdmFycyhtYWtlX3VwZGF0ZSkiCi0gICAgICAgICAgICB9IGVsc2VpZiB7W2ZpbGUgdGFpbCBbZmlsZSBkaXJuYW1lIFtwd2RdXV0gIT0gIiR2YXJzKHBhcnRpdGlvbl9kaXIpIn0gewotICAgICAgICAgICAgICAgcHV0cyAkb3AgIlVQREFURT15ZXMiCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBwdXRzICRvcCAiIgotCi0gICAgICAgICAgICBwdXRzICRvcCAiU1RFUFMgPSBbZm9ybWF0ICJ2ZXJzaW9uIHNldHVwICVzIGRvX2NsZWFudXAiICRzdGVwc10iCi0gICAgICAgICAgICBwdXRzICRvcCAiRkZfU1RBUlQgPSAkc3RhcnQiCi0gICAgICAgICAgICBwdXRzICRvcCAiRkZfU1RPUCA9ICRzdG9wIgotICAgICAgICAgICAgcHV0cyAkb3AgIiIKLSAgICAgICAgICAgIHB1dHMgJG9wIFtmb3JtYXQgImFsbDogdmVyc2lvbiBzZXR1cCAlcyBkb19jbGVhbnVwIiAkc3RlcHNdCi0gICAgICAgICAgICBwdXRzICRvcCAiIgotICAgICAgICAgICAgcHV0cyAkb3AgInZlcnNpb246IgotICAgICAgICAgICAgcHV0cyAkb3AgIlx0QGVjaG8gXCJcIyBGb3VuZGF0aW9uIEZsb3dzIFZlcnNpb24gXCQoVkVSU0lPTilcIiIKLSAgICAgICAgICAgIHB1dHMgJG9wICIiCi0gICAgICAgICAgICBwdXRzICRvcCAiaGVscDoiCi0gICAgICAgICAgICBwdXRzICRvcCAiXHRAZWNobyBcIj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVwiIgotICAgICAgICAgICAgcHV0cyAkb3AgIlx0QGVjaG8gXCIgICAgICAgICAgIFwkKFZFUlNJT04pICBGb3VuZGF0aW9uIEZsb3dzXCIiCi0gICAgICAgICAgICBwdXRzICRvcCAiXHRAZWNobyBcIj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVwiIgotICAgICAgICAgICAgcHV0cyAkb3AgIlx0QGVjaG8gXCIgICBNYWtlZmlsZSBUYXJnZXRzXCIiCi0gICAgICAgICAgICBwdXRzICRvcCAiXHRAZWNobyBcIj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVwiIgotICAgICAgICAgICAgcHV0cyAkb3AgIlx0QGVjaG8gXCIgICAgICAgICAgICAgICBzZXR1cCA6IFNldHVwIFJ1biBEaXJlY3RvcnlcIiIKLSAgICAgICAgICAgIGlmIHskdmFycyhyYykgJiYgW2luZm8gZXhpc3RzIHZhcnMocmNfc3RlcHMpXX0gewotICAgICAgICAgICAgICAgZm9yZWFjaCBzdGVwICR2YXJzKHJjX3N0ZXBzKSB7Ci0gICAgICAgICAgICAgICAgIHB1dHMgJG9wICJcdEBlY2hvIFwiICAgICAgICAgICAgICRzdGVwIDogJGRlc2MoJHN0ZXApXCIiCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBmb3JlYWNoIHN0ZXAgJHN0ZXBzIHsKLSMgICAgICAgICAgICAgIHB1dHMgJG9wICJcdEBlY2hvIFwiICAgICAgICAgICAgICRzdGVwIDogJGRlc2MoJHN0ZXApXCIiCi0gICAgICAgICAgICAgIGlmIHshW2luZm8gZXhpc3RzIGRlc2MoJHN0ZXApXX0gewotICAgICAgICAgICAgICAgIHNldCBkZXNjKCRzdGVwKSAiTm8gaW5mb3JtYXRpb24gZm9yIHRoaXMgc3RlcCIKLSAgICAgICAgICAgICAgfSAKLSAgICAgICAgICAgICAgc2V0IHRlbXAgW2Zvcm1hdCAiJSsyMXMgOiAlLTQ1cyIgJHN0ZXAgJGRlc2MoJHN0ZXApXQotICAgICAgICAgICAgICBwdXRzICRvcCAiXHRAZWNobyAkdGVtcCIKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHB1dHMgJG9wICJcdEBlY2hvIFwiLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXCIiCi0gICAgICAgICAgICBwdXRzICRvcCAiXHRAZWNobyBcIiAgICAgICAgICAgICAgICAgYWxsIDogQWxsIGRlc2lnbiBzdGVwc1wiIgotICAgICAgICAgICAgcHV0cyAkb3AgIlx0QGVjaG8gXCIgICAgICAgICAgICAgIHNpbXBsZSA6IFNpbmdsZSBzY3JpcHQgKGFsbCBzdGVwcyBpbiBhIHNpbmdsZSBzZXNzaW9uKSAtIG5vIHN0b3Avc3RhcnRcIiIKLSAgICAgICAgICAgIHB1dHMgJG9wICJcdEBlY2hvIFwiICAgICAgICAgICAgICBzaW5nbGUgOiBTaW5nbGUgc2NyaXB0IChhbGwgc3RlcHMgaW4gYSBzaW5nbGUgc2Vzc2lvbilcIiIKLSAgICAgICAgICAgIHB1dHMgJG9wICJcdEBlY2hvIFwiPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XCIiCi0gICAgICAgICAgICBwdXRzICRvcCAiXHRAZWNobyBcIiAgIE1ha2VmaWxlIE9wdGlvbnNcIiIKLSAgICAgICAgICAgIHB1dHMgJG9wICJcdEBlY2hvIFwiPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XCIiCi0gICAgICAgICAgICBwdXRzICRvcCAiXHRAZWNobyBcIiAgIFZQQVRIIDogTWFrZSBkaXJlY3RvcnkgICAgKGRlZmF1bHQgbWFrZSlcIiIKLSAgICAgICAgICAgIGlmIHskdmFycyhub3Z1cyl9ICB7IAotICAgICAgICAgICAgICAgcHV0cyAkb3AgIlx0QGVjaG8gXCIgICAgVE9PTCA6IElOTk9WVVMgZXhlY3V0YWJsZSAoZGVmYXVsdCBpbm5vdnVzKVwiIgotICAgICAgICAgICAgICAgcHV0cyAkb3AgIlx0QGVjaG8gXCIgICAgQVJHUyA6IElOTk9WVVMgYXJndW1lbnRzICAoZGVmYXVsdCAtbm93aW4gLTY0KVwiIgotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIHB1dHMgJG9wICJcdEBlY2hvIFwiICAgIFRPT0wgOiBJTk5PVlVTIGV4ZWN1dGFibGUgICAgIChkZWZhdWx0IGlubm92dXMpXCIiCi0gICAgICAgICAgICAgICBwdXRzICRvcCAiXHRAZWNobyBcIiAgICBBUkdTIDogSU5OT1ZVUyBhcmd1bWVudHMgICAgICAoZGVmYXVsdCAtbm93aW4gLTY0KVwiIgotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgeyR2YXJzKHJjKX0gewotICAgICAgICAgICAgICAgcHV0cyAkb3AgIlx0QGVjaG8gXCJTWU5fVE9PTCA6IEdFTlVTIGV4ZWN1dGFibGUgICAgICAoZGVmYXVsdCBnZW51cylcIiIKLSAgICAgICAgICAgICAgIHB1dHMgJG9wICJcdEBlY2hvIFwiU1lOX0FSR1MgOiBHRU5VUyBhcmd1bWVudHMgICAgICAgKGRlZmF1bHQgLTY0KVwiIgotICAgICAgICAgICAgICAgcHV0cyAkb3AgIlx0QGVjaG8gXCJTWU5fTE9HICA6IEdFTlVTIGxvZyBkaXIgICAgICAgICAoZGVmYXVsdCBSQy9sb2dzLzxzdGFnZT4ubG9nKVwiIgotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYge1tmaWxlIHRhaWwgW2ZpbGUgZGlybmFtZSBbcHdkXV1dICE9ICIkdmFycyhwYXJ0aXRpb25fZGlyKSJ9IHsKLSAgICAgICAgICAgICAgIHB1dHMgJG9wICJcdEBlY2hvIFwiICBVUERBVEUgOiBVcGRhdGUgc2NyaXB0cyAgICAoZGVmYXVsdCB5ZXMpXCIiCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBwdXRzICRvcCAiXHRAZWNobyBcIiBTQ1JJUFRTIDogU2NyaXB0IGRpcmVjdG9yeSAgKGRlZmF1bHQgJHZhcnMoc2NyaXB0X2RpcikpXCIiCi0gICAgICAgICAgICBwdXRzICRvcCAiXHRAZWNobyBcIiAgICAgTE9HIDogTG9nZmlsZSBkaXJlY3RvcnkgKGRlZmF1bHQgW3N1YnN0ICR2YXJzKGxvZ19kaXIpKV1cIiIKLSAgICAgICAgICAgIHB1dHMgJG9wICJcdEBlY2hvIFwiPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XCIiCi0gICAgICAgICAgICBwdXRzICRvcCAiIgotIyAgICAgICAgICAgIGlmIHtbZmlsZSB0YWlsIFtmaWxlIGRpcm5hbWUgW3B3ZF1dXSAhPSAiJHZhcnMocGFydGl0aW9uX2RpcikifSB7Ci0jICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKHBsdWdfZmlsZXMpXX0gewotIyAgICAgICAgICAgICAgICAgIHB1dHMgJG9wICJmbG93OiAkdmFycyhjb25maWdfZmlsZXMpICR2YXJzKHBsdWdfZmlsZXMpIgotIyAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0jICAgICAgICAgICAgICAgICAgcHV0cyAkb3AgImZsb3c6ICR2YXJzKGNvbmZpZ19maWxlcykiCi0jICAgICAgICAgICAgICAgfQotIyAgICAgICAgICAgICAgIHB1dHMgJG9wICJcdEBpZiBcWyBcJChVUERBVEUpID09IHllcyBdIDsgdGhlbiBcXCIKLSMgICAgICAgICAgICAgICBwdXRzICRvcCAiXHRcdFtsaW5kZXggJGV4ZWN1dGVfc3RyaW5nIDBdIFtsaW5kZXggJGV4ZWN1dGVfc3RyaW5nIDFdIC1tIGZsYXQgYWxsIDsgXFwiCi0jICAgICAgICAgICAgICAgcHV0cyAkb3AgIlx0XHQvYmluL3RvdWNoIFwkKFZQQVRIKS9cJEAgOyBcXCIKLSMgICAgICAgICAgICAgICBwdXRzICRvcCAiXHRlbHNlIFxcIgotIyAgICAgICAgICAgICAgIHB1dHMgJG9wICJcdFx0ZWNobyAnU0tJUFBJTkcgRkxPVyBVUERBVEUgLi4uJyA7IFxcIgotIyAgICAgICAgICAgICAgIHB1dHMgJG9wICJcdGZpIgotIyAgICAgICAgICAgfSBlbHNlIHsKLSMgICAgICAgICAgICAgICBwdXRzICRvcCAiZmxvdzoiCi0jICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBwdXRzICRvcCAiXG5zaW1wbGU6IHNldHVwIgotICAgICAgICAgICAgaWYgeyR2YXJzKHN0ZXBfYXJnKSA9PSAiYWxsIn0gewotICAgICAgICAgICAgICAgcHV0cyAkb3AgIlx0RkZfU1RPUD1cJChGRl9TVE9QKTsgVlBBVEg9XCQoVlBBVEgpOyBleHBvcnQgVlBBVEg7IFwkKFRPT0wpIC1pbml0IFwkKFNDUklQVFMpL0lOTk9WVVMvcnVuX3NpbXBsZS50Y2wgLWxvZyBcJChMT0cpL3NpbXBsZS5sb2cgXCQoQVJHUykiCi0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgcHV0cyAkb3AgIlx0RkZfU1RPUD1cJChGRl9TVE9QKTsgVlBBVEg9XCQoVlBBVEgpOyBleHBvcnQgVlBBVEg7IFwkKFRPT0wpIC1pbml0IFwkKFNDUklQVFMpL0lOTk9WVVMvcnVuX3NpbXBsZS4kdmFycyhzdGVwX2FyZykudGNsIC1sb2cgXCQoTE9HKS9zaW1wbGUuJHZhcnMoc3RlcF9hcmcpLmxvZyBcJChBUkdTKSIKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHB1dHMgJG9wICIiCi0gICAgICAgICAgICBwdXRzICRvcCAiXG5zaW5nbGU6IHNldHVwIgotICAgICAgICAgICAgcHV0cyAkb3AgIlx0RkZfU1RPUD1cJChGRl9TVE9QKTsgVlBBVEg9XCQoVlBBVEgpOyBleHBvcnQgVlBBVEg7IFwkKFRPT0wpIC1pbml0IFwkKFNDUklQVFMpL0lOTk9WVVMvcnVuX2FsbC50Y2wgLWxvZyBcJChMT0cpL3NpbmdsZS5sb2cgXCQoQVJHUykiCi0gICAgICAgICAgICBwdXRzICRvcCAiIgotICAgICAgICAgICAgcHV0cyAkb3AgInNldHVwOiIKLSAgICAgICAgICAgIHB1dHMgJG9wICJcdEAvYmluL21rZGlyIC1wIFwkKFZQQVRIKSBcJChMT0cpIgotICAgICAgICAgICAgcHV0cyAkb3AgIlx0QC9iaW4vdG91Y2ggXCQoVlBBVEgpL1wkQCIKLSAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhlbmFibGVfbGRiKV0gJiYgJHZhcnMoZW5hYmxlX2xkYil9IHsKLSAgICAgICAgICAgICAgIHB1dHMgJG9wICJcdFwkKFRPT0wpIC1pbml0IFwkKFNDUklQVFMpL0lOTk9WVVMvcnVuX2NvbXBpbGUudGNsIC1sb2cgXCQoTE9HKS9jb21waWxlLmxvZyAtd2luIFwkKEFSR1MpIgotICAgICAgICAgICAgfQotICAgICAgICAgICAgcHV0cyAkb3AgIiIgCi0KLQotICAgICAgICAgICAgc2V0IHByaW9yX3N0ZXAgInNldHVwIgotCi0gICAgICAgICAgICBzZXQgYXJnX2xpc3QgIi1uICIKLSMgICAgICAgICAgICBpZiB7JHZhcnMobm92dXMpfSB7Ci0jICAgICAgICAgICAgICAgYXBwZW5kIGFyZ19saXN0ICItTiAiIAotIyAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIHskdmFycyh2ZXJib3NlKX0gewotICAgICAgICAgICAgICAgYXBwZW5kIGFyZ19saXN0ICItViAiIAotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgeyR2YXJzKGVkaSl9IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBhcmdfbGlzdCAiLWUgIiAKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIHskdmFycyhyYyl9IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBhcmdfbGlzdCAiLXIgIiAKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgICMgUkMgU3RlcHMsIGlmIGFueSwgYWx3YXlzIGdvIGZpcnN0Ci0gICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMocmNfc3RlcHMpXSAmJiAkdmFycyhyY19zdGVwcykgbmUgIiJ9IHsKLSAgICAgICAgICAgICAgZm9yZWFjaCBzdGVwICR2YXJzKHJjX3N0ZXBzKSB7Ci0gICAgICAgICAgICAgICAgcHV0cyAkb3AgIiRzdGVwOiAkcHJpb3Jfc3RlcCIKLSAgICAgICAgICAgICAgICBwdXRzICRvcCAiXHRAbWtkaXIgLXAgXCQoU1lOX0xPRyk7IgotICAgICAgICAgICAgICAgIGlmIHshW3JlZ2V4cCAkdmFycyhwYXJ0aXRpb25fZGlyKSBbZmlsZSB0YWlsIFtmaWxlIGRpcm5hbWUgW3B3ZF1dXV19IHsKLSAgICAgICAgICAgICAgICAgICBwdXRzICRvcCAiXHRAaWYgXFsgXCJcJChVUERBVEUpXCIgPSBcInllc1wiIF0gOyB0aGVuIFxcIgotICAgICAgICAgICAgICAgICAgIGlmIHtbZmlsZSBub3JtYWxpemUgLl0gbmUgW2ZpbGUgbm9ybWFsaXplICR2YXJzKHJ1bmRpcildfSB7Ci0gICAgICAgICAgICAgICAgICAgICBwdXRzICRvcCAiXHRcdGNkIFtyZWxQYXRoVG8gW2ZpbGUgbm9ybWFsaXplIC5dIFtmaWxlIG5vcm1hbGl6ZSAkdmFycyhydW5kaXIpXV07IFtsaW5kZXggJGV4ZWN1dGVfc3RyaW5nIDBdIFs6OkZGOjpyZWxQYXRoVG8gW2ZpbGUgbm9ybWFsaXplIFtzdWJzdCBbbGluZGV4ICRleGVjdXRlX3N0cmluZyAxXV1dIFtmaWxlIG5vcm1hbGl6ZSBbc3Vic3QgJHZhcnMocnVuZGlyKV1dXSAtbSBmbGF0IC1kIFtyZWxQYXRoVG8gW2ZpbGUgbm9ybWFsaXplICR2YXJzKHNjcmlwdF9kaXIpXSBbZmlsZSBub3JtYWxpemUgJHZhcnMocnVuZGlyKV1dIC12ICR2YXJzKHZlcnNpb24pIC1zIFtyZWxQYXRoVG8gW2ZpbGUgbm9ybWFsaXplIFtzdWJzdCAkdmFycyhzZXR1cF9wYXRoKV1dIFtmaWxlIG5vcm1hbGl6ZSBbc3Vic3QgJHZhcnMocnVuZGlyKV1dXSAteSBub25lIC11IFtyZWxQYXRoVG8gW2ZpbGUgbm9ybWFsaXplICR2YXJzKHJ1bmRpcildIFtmaWxlIG5vcm1hbGl6ZSAuXV0gJGFyZ19saXN0ICRzdGVwIDsgXFwiCi0JCSAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICBwdXRzICRvcCAiXHRcdFtsaW5kZXggJGV4ZWN1dGVfc3RyaW5nIDBdIFs6OkZGOjpyZWxQYXRoVG8gW2ZpbGUgbm9ybWFsaXplIFtzdWJzdCBbbGluZGV4ICRleGVjdXRlX3N0cmluZyAxXV1dIFtmaWxlIG5vcm1hbGl6ZSBbc3Vic3QgJHZhcnMocnVuZGlyKV1dXSAtbSBmbGF0IC1kIFtyZWxQYXRoVG8gW2ZpbGUgbm9ybWFsaXplICR2YXJzKHNjcmlwdF9kaXIpXSBbZmlsZSBub3JtYWxpemUgJHZhcnMocnVuZGlyKV1dIC12ICR2YXJzKHZlcnNpb24pIC1zIFtyZWxQYXRoVG8gW2ZpbGUgbm9ybWFsaXplIFtzdWJzdCAkdmFycyhzZXR1cF9wYXRoKV1dIFtmaWxlIG5vcm1hbGl6ZSBbc3Vic3QgJHZhcnMocnVuZGlyKV1dXSAteSBub25lICRhcmdfbGlzdCAkc3RlcCA7IFxcIgotCQkgICB9Ci0gICAgICAgICAgICAgICAgICAgcHV0cyAkb3AgIlx0ZmkiCi0gICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBwdXRzICRvcCAiXHRWUEFUSD1cJChWUEFUSCk7IGV4cG9ydCBWUEFUSDsgXCQoU1lOX1RPT0wpIC1mIFwkKFNDUklQVFMpL0dFTlVTLyRzdGVwLnRjbCAtbG9nZmlsZSBcJChTWU5fTE9HKS8kc3RlcC5sb2cgLWNtZGZpbGUgXCQoU1lOX0xPRykvJHN0ZXAuY21kIFwkKFNZTl9BUkdTKSIKLSAgICAgICAgICAgICAgICBzZXQgcHJpb3Jfc3RlcCAkc3RlcAotICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGZvcmVhY2ggc3RlcCAkc3RlcHMgewotICAgICAgICAgICAgICAjIFRoZXNlIHN0ZXBzIHNob3VsZCBub3QgYWxzbyBiZSByY19zdGVwczoKLSAgICAgICAgICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycyhyY19zdGVwcyldIHx8IFtsc2VhcmNoICR2YXJzKHJjX3N0ZXBzKSAkc3RlcF0gPT0gIi0xIn0gewotICAgICAgICAgICAgICAgICBwdXRzICRvcCAiJHN0ZXA6ICRwcmlvcl9zdGVwIgotICAgICAgICAgICAgICAgICBwdXRzICRvcCAiXHRAbWtkaXIgLXAgXCQoTE9HKTsiCi0jICAgICAgICAgICAgICAgIHB1dHMgJG9wICJcdEBcJChNQUtFKSAtZiBNYWtlZmlsZSBmbG93IgotICAgICAgICAgICAgICAgIGlmIHshW3JlZ2V4cCAkdmFycyhwYXJ0aXRpb25fZGlyKSBbZmlsZSB0YWlsIFtmaWxlIGRpcm5hbWUgW3B3ZF1dXV19IHsKLSAgICAgICAgICAgICAgICAgICBwdXRzICRvcCAiXHRAaWYgXFsgXCJcJChVUERBVEUpXCIgPSBcInllc1wiIF0gOyB0aGVuIFxcIgotICAgICAgICAgICAgICAgICAgICAgIyBjZCB0byBmZl9leGVfZGlyIGhlcmUgb25seSBpZiB2YXJzKHJ1bmRpcikgbmUgdmFycyhmZl9leGVfZGlyKQotICAgICAgICAgICAgICAgICAgICAgaWYge1tmaWxlIG5vcm1hbGl6ZSAuXSBuZSBbZmlsZSBub3JtYWxpemUgJHZhcnMocnVuZGlyKV19IHsKLSAgICAgICAgICAgICAgICAgICAgICAgcHV0cyAkb3AgIlx0XHRjZCBbcmVsUGF0aFRvIFtmaWxlIG5vcm1hbGl6ZSAuXSBbZmlsZSBub3JtYWxpemUgJHZhcnMocnVuZGlyKV1dOyBbbGluZGV4ICRleGVjdXRlX3N0cmluZyAwXSBbOjpGRjo6cmVsUGF0aFRvIFtmaWxlIG5vcm1hbGl6ZSBbc3Vic3QgW2xpbmRleCAkZXhlY3V0ZV9zdHJpbmcgMV1dXSBbZmlsZSBub3JtYWxpemUgW3N1YnN0ICR2YXJzKHJ1bmRpcildXV0gLW0gJHZhcnMobW9kZSkgLWQgW3JlbFBhdGhUbyBbZmlsZSBub3JtYWxpemUgJHZhcnMoc2NyaXB0X2RpcildIFtmaWxlIG5vcm1hbGl6ZSAkdmFycyhydW5kaXIpXV0gLXYgJHZhcnModmVyc2lvbikgLXMgW3JlbFBhdGhUbyBbZmlsZSBub3JtYWxpemUgW3N1YnN0ICR2YXJzKHNldHVwX3BhdGgpXV0gW2ZpbGUgbm9ybWFsaXplIFtzdWJzdCAkdmFycyhydW5kaXIpXV1dIC15IG5vbmUgLXUgW3JlbFBhdGhUbyBbZmlsZSBub3JtYWxpemUgJHZhcnMocnVuZGlyKV0gW2ZpbGUgbm9ybWFsaXplIC5dXSAkYXJnX2xpc3QgJHN0ZXAgOyBcXCIKLQkJICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICBwdXRzICRvcCAiXHRcdFtsaW5kZXggJGV4ZWN1dGVfc3RyaW5nIDBdIFs6OkZGOjpyZWxQYXRoVG8gW2ZpbGUgbm9ybWFsaXplIFtzdWJzdCBbbGluZGV4ICRleGVjdXRlX3N0cmluZyAxXV1dIFtmaWxlIG5vcm1hbGl6ZSBbc3Vic3QgJHZhcnMocnVuZGlyKV1dXSAtbSAkdmFycyhtb2RlKSAtZCBbcmVsUGF0aFRvIFtmaWxlIG5vcm1hbGl6ZSAkdmFycyhzY3JpcHRfZGlyKV0gW2ZpbGUgbm9ybWFsaXplICR2YXJzKHJ1bmRpcildXSAtdiAkdmFycyh2ZXJzaW9uKSAtcyBbcmVsUGF0aFRvIFtmaWxlIG5vcm1hbGl6ZSBbc3Vic3QgJHZhcnMoc2V0dXBfcGF0aCldXSBbZmlsZSBub3JtYWxpemUgW3N1YnN0ICR2YXJzKHJ1bmRpcildXV0gLXkgbm9uZSAkYXJnX2xpc3QgJHN0ZXAgOyBcXCIKLQkJICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAjIE5lZWQgdG8gYWRkIGNvZGUgdG8gY2QgYmFjayB0byBydW5kaXIgaGVyZQotICAgICAgICAgICAgICAgICAgIHB1dHMgJG9wICJcdGZpIgotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBpZiB7W3JlZ2V4cCAiXnN5biIgJHN0ZXBdfSB7IAotICAgICAgICAgICAgICAgICAgIHB1dHMgJG9wICJcdFZQQVRIPVwkKFZQQVRIKTsgZXhwb3J0IFZQQVRIOyBcJChTWU5fVE9PTCkgLWYgXCQoU0NSSVBUUykvR0VOVVMvcnVuXyRzdGVwLnRjbCAtbG9nZmlsZSBcJChMT0cpLyRzdGVwLmxvZyAtY21kZmlsZSBcJChMT0cpLyRzdGVwLmNtZCBcJChTWU5fQVJHUykiCi0gICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICBwdXRzICRvcCAiXHRWUEFUSD1cJChWUEFUSCk7IGV4cG9ydCBWUEFUSDsgXCQoVE9PTCkgLWluaXQgXCQoU0NSSVBUUykvSU5OT1ZVUy9ydW5fJHN0ZXAudGNsIC1sb2cgXCQoTE9HKS8kc3RlcC5sb2cgLW92ZXJ3cml0ZSBcJChBUkdTKSIKLSAgICAgICAgICAgICAgICB9IAotIyAgICAgICAgICAgICAgICBwdXRzICRvcCAiXHQvYmluL3RvdWNoIFwkKFZQQVRIKS8kc3RlcFxuIgotICAgICAgICAgICAgICAgIHNldCBwcmlvcl9zdGVwICRzdGVwCi0gICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLQotIyAgICAgICAgICAgIHB1dHMgJG9wICJodG1sOiIKLSMgICAgICAgICAgICBwdXRzICRvcCAiXHRGRlZBUlM9JHZhcnMoc2NyaXB0X2RpcikvdmFycy50Y2w7IGV4cG9ydCBGRlZBUlM7IC91c3IvYmluL3RjbHNoIFwkKFNDUklQVFMpL0lOTk9WVVMvZ2VuX2h0bWwudGNsIC47IGNkICR2YXJzKGh0bWxfZGlyKTsgXCQoQlJPV1NFUikgZmlsZTpgcHdkYC9pbmRleC5odG1sIgotIyAgICAgICAgICAgIHB1dHMgJG9wICIiCi0gICAgICAgICAgICBwdXRzICRvcCAiZGVidWdfJToiCi0gICAgICAgICAgICBwdXRzICRvcCAiXHRWUEFUSD1cJChWUEFUSCk7IGV4cG9ydCBTVEVQPVwkKiA7IGV4cG9ydCBWUEFUSDsgXCQoVE9PTCkgLWluaXQgXCQoU0NSSVBUUykvSU5OT1ZVUy9ydW5fZGVidWcudGNsIC1sb2cgXCQoTE9HKS9cJEAubG9nIC13aW4gXCQoQVJHUzotbm93aW49KSIKLSAgICAgICAgICAgIHB1dHMgJG9wICIiCi0gICAgICAgICAgICBwdXRzICRvcCAibGVjXyU6IgotICAgICAgICAgICAgcHV0cyAkb3AgIlx0ZXhwb3J0IFNURVA9XCQqIDsgbGVjIC02NCAteGwgLURvZmlsZSBcJChTQ1JJUFRTKS9JTk5PVlVTL3J1bl9sZWMudGNsIC1OT0d1aSAtTE9HZmlsZSBcJChMT0cpL1wkQC5sb2ciCi0gICAgICAgICAgICBwdXRzICRvcCAiIgotICAgICAgICAgICAgcHV0cyAkb3AgImhlbHBfJToiCi0gICAgICAgICAgICBwdXRzICRvcCAiXHRbbGluZGV4ICRleGVjdXRlX3N0cmluZyAwXSBcJChHRU5fRkxPVykgLUggXCQqIgotICAgICAgICAgICAgcHV0cyAkb3AgIiIKLSMgICAgICAgICAgICBwdXRzICRvcCAiLlBIT05ZOiBjbGVhbiBodG1sIgotICAgICAgICAgICAgcHV0cyAkb3AgIi5QSE9OWTogY2xlYW4iCi0gICAgICAgICAgICBwdXRzICRvcCAiIgotICAgICAgICAgICAgcHV0cyAkb3AgImNsZWFuOiIKLSAgICAgICAgICAgIHB1dHMgJG9wICJcdC9iaW4vbXYgKi5ycHQgJHZhcnMocnB0X2RpcikgO1xcIgotICAgICAgICAgICAgcHV0cyAkb3AgIlx0L2Jpbi9ybSAtZnIgZXh0TG9nRGlyKiBfX3FyYy5sb2cgKmN0c190cmFjZSAqLnJwdC5vbGQgKmRlbGV0ZSogcGxhY2VtZW50UmVwb3J0cyogKi5yZ3VpZGUgKl9tbW1jIFxcXG5cdCpfY29uc3RyLnB0IC5jb25zdHIqIC5GRSogLnJvdXRpbmcqIC50aW1pbmdfZmlsZSogLnRkcmxvZyoiCi0gICAgICAgICAgICBwdXRzICRvcCAiIgotICAgICAgICAgICAgcHV0cyAkb3AgImRvX2NsZWFudXA6IHNpZ25vZmYiCi0gICAgICAgICAgICBwdXRzICRvcCAiXHRcJChNQUtFKSBjbGVhbiIKLSAgICAgICAgICAgIHB1dHMgJG9wICJcdC9iaW4vdG91Y2ggXCQoVlBBVEgpL1wkQCIKLSAgICAgICAgICAgIHB1dHMgJG9wICIiCi0gICAgICAgICAgICBwdXRzICRvcCAicmVzZXQgOiB2ZXJzaW9uIgotICAgICAgICAgICAgcHV0cyAkb3AgIlx0L2Jpbi9ybSAtZnIgXCQoVlBBVEgpLyogZXh0TG9nRGlyKiBfX3FyYy5sb2cgKmN0c190cmFjZSAqLnJwdC5vbGQgKmRlbGV0ZSogcGxhY2VtZW50UmVwb3J0cyogKi5yZ3VpZGUgKl9tbW1jIgotICAgICAgICAgICAgcHV0cyAkb3AgIlx0QGZvciBmaWxlIGluIFwkKFNURVBTKSA7IFxcIgotICAgICAgICAgICAgcHV0cyAkb3AgIlx0ZG8gXFwiCi0gICAgICAgICAgICBwdXRzICRvcCAiXHRcdGlmIFxbIC1yIFwkKFZQQVRIKS9cJFwkZmlsZSBcXSA7IHRoZW4gXFwiCi0gICAgICAgICAgICBwdXRzICRvcCAiXHRcdFx0L2Jpbi9ybSBcJChWUEFUSCkvXCRcJGZpbGUgOyBcXCIKLSAgICAgICAgICAgIHB1dHMgJG9wICJcdFx0ZmkgXFwiCi0gICAgICAgICAgICBwdXRzICRvcCAiXHRkb25lIgotICAgICAgICAgICAgcHV0cyAkb3AgIiIKLSAgICAgICAgICAgIHB1dHMgJG9wICJibG9ja18lOiBzZXR1cCIKLSAgICAgICAgICAgIHB1dHMgJG9wICJcdEBpZiBcWyBcInhcJCpcIiA9IFwieHNpbmdsZVwiIFxdIDsgdGhlbiBcXCIKLSAgICAgICAgICAgIHB1dHMgJG9wICJcdFx0ZmZfc3RvcD1cJChGRl9TVE9QKTsgXFwiCi0gICAgICAgICAgICBwdXRzICRvcCAiXHRcdHRhcmdldD1cIlwkQCAoZnJvbTogXCQoRkZfU1RBUlQpIHRvOiBcJChGRl9TVE9QKSlcIjsgXFwiCi0gICAgICAgICAgICBwdXRzICRvcCAiXHRlbHNlIFxcIgotICAgICAgICAgICAgcHV0cyAkb3AgIlx0XHRmZl9zdG9wPVwkKiA7IFxcIgotICAgICAgICAgICAgcHV0cyAkb3AgIlx0XHR0YXJnZXQ9XCRAOyBcXCIKLSAgICAgICAgICAgIHB1dHMgJG9wICJcdGZpOyBcXCIKLSAgICAgICAgICAgIHB1dHMgJG9wICJcdGlmIFxbIC1yIFwkKFZQQVRIKS8uUlVOTklORyBcXSA7IHRoZW4gXFwiCi0gICAgICAgICAgICBwdXRzICRvcCAiXHRcdGVjaG8gXCJJTkZPOiBBIGJ1aWxkIHNlZW1zIHRvIGJlIHJ1bm5pbmcgYWxyZWFkeS4uLiBjaGVjayBcJChWUEFUSCkvLlJVTk5JTkcgZmlsZSBhbmQgcmVtb3ZlIHRoYXQgZmlsZSBpZiB0aGUgcHJvY2VzcyBpcyBkZWFkXCIgOyBcXCIKLSAgICAgICAgICAgIHB1dHMgJG9wICJcdFx0L2Jpbi9oZWFkIC0xICBcJChWUEFUSCkvLlJVTk5JTkcgOyBcXCIKLSAgICAgICAgICAgIHB1dHMgJG9wICJcdFx0ZXhpdCAtMSA7IFxcIgotICAgICAgICAgICAgcHV0cyAkb3AgIlx0ZWxzZSBcXCIKLSAgICAgICAgICAgIHB1dHMgJG9wICJcdFx0L2Jpbi9ybSAtZiBcJChWUEFUSCkvYmxvY2tfXCRcJFx7ZmZfc3RvcFx9LkRPTkUgXCQoVlBBVEgpL2Jsb2NrX1wkXCRce2ZmX3N0b3BcfS5GQUlMRUQgXCQoVlBBVEgpL2Jsb2NrX1wkXCRce2ZmX3N0b3BcfS5QQVNTIDsgXFwiCi0gICAgICAgICAgICBwdXRzICRvcCAiXHRcdChlY2hvIFwiIyBTdGFydGVkIGJ1aWxkaW5nIFwkXCRce3RhcmdldFx9IGF0IFwiYC9iaW4vZGF0ZWBcIiBvbiBcImAvYmluL2hvc3RuYW1lYFwiIFBJRDogXCRcJFwkXCRcIiA7IFwkKE1BS0UpIFwkKFRBUkdFVCkgKSAmPlwkKFZQQVRIKS8uUlVOTklORyA7IFxcIgotICAgICAgICAgICAgcHV0cyAkb3AgIlx0XHRpZiBcWyAtciBcJChWUEFUSCkvXCRcJFx7ZmZfc3RvcFx9IFxdIDsgdGhlbiBcXCIKLSAgICAgICAgICAgIHB1dHMgJG9wICJcdFx0XHRpZiBcWyAtciBcJChWUEFUSCkvLlJVTk5JTkcgXF0gOyB0aGVuIFxcIgotICAgICAgICAgICAgcHV0cyAkb3AgIlx0XHRcdFx0L2Jpbi9tdiBcJChWUEFUSCkvLlJVTk5JTkcgXCQoVlBBVEgpL2Jsb2NrX1wkXCRce2ZmX3N0b3BcfS5QQVNTIDsgXFwiCi0gICAgICAgICAgICBwdXRzICRvcCAiXHRcdFx0XHQvYmluL3RvdWNoIFwkKFZQQVRIKS9ibG9ja19cJFwkXHtmZl9zdG9wXH0gOyBcXCIKLSAgICAgICAgICAgIHB1dHMgJG9wICJcdFx0XHRcdC9iaW4vdG91Y2ggXCQoVlBBVEgpL2Jsb2NrX1wkXCRce2ZmX3N0b3BcfS5ET05FIDsgXFwiCi0gICAgICAgICAgICBwdXRzICRvcCAiXHRcdFx0ZWxzZSBcXCIKLSAgICAgICAgICAgIHB1dHMgJG9wICJcdFx0XHRcdGVjaG8gXCIjIFNvbWV0aGluZyBkaWQgbm90IHdvcmsgcHJvcGVybHlcIiA+IFwkKFZQQVRIKS9ibG9ja19cJFwkXHtmZl9zdG9wXH0uRkFJTEVEIDsgXFwiCi0gICAgICAgICAgICBwdXRzICRvcCAiXHRcdFx0XHQvYmluL3RvdWNoIFwkKFZQQVRIKS9ibG9ja19cJFwkXHtmZl9zdG9wXH0uRE9ORSA7IFxcIgotICAgICAgICAgICAgcHV0cyAkb3AgIlx0XHRcdFx0ZXhpdCAtMTsgXFwiCi0gICAgICAgICAgICBwdXRzICRvcCAiXHRcdFx0ZmkgOyBcXCIKLSAgICAgICAgICAgIHB1dHMgJG9wICJcdFx0ZWxzZSBcXCIKLSAgICAgICAgICAgIHB1dHMgJG9wICJcdFx0XHRpZiBcWyAtciBcJChWUEFUSCkvLlJVTk5JTkcgXF0gOyB0aGVuIFxcIgotICAgICAgICAgICAgcHV0cyAkb3AgIlx0XHRcdFx0L2Jpbi9tdiBcJChWUEFUSCkvLlJVTk5JTkcgXCQoVlBBVEgpL2Jsb2NrX1wkXCRce2ZmX3N0b3BcfS5GQUlMRUQgOyBcXCIKLSAgICAgICAgICAgIHB1dHMgJG9wICJcdFx0XHRlbHNlIFxcIgotICAgICAgICAgICAgcHV0cyAkb3AgIlx0XHRcdFx0ZWNobyBcIiMgU29tZXRoaW5nIGRpZCBub3Qgd29yayBwcm9wZXJseVwiID4gXCQoVlBBVEgpL2Jsb2NrX1wkXCRce2ZmX3N0b3BcfS5GQUlMRUQgOyBcXCIKLSAgICAgICAgICAgIHB1dHMgJG9wICJcdFx0XHRmaSA7IFxcIgotICAgICAgICAgICAgcHV0cyAkb3AgIlx0XHRcdC9iaW4vdG91Y2ggXCQoVlBBVEgpL2Jsb2NrX1wkXCRce2ZmX3N0b3BcfS5ET05FIDsgXFwiCi0gICAgICAgICAgICBwdXRzICRvcCAiXHRcdFx0ZXhpdCAtMSA7IFxcIgotICAgICAgICAgICAgcHV0cyAkb3AgIlx0XHRmaSA7IFxcIgotICAgICAgICAgICAgcHV0cyAkb3AgIlx0ZmkiCi0KLSAgICAgICAgICAgIGlmIHskdmFycyhnZW5lcmF0ZV9mbG93X3N0ZXBzKSAmJiBbaW5mbyBleGlzdHMgdmFycyhmbG93X3N0ZXBzKV19IHsKLSAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhmbG93X3N0ZXBzLGZsYXQpXX0gewotICAgICAgICAgICAgICAgICAgc2V0IGZwMSBbb3BlbiAkdmFycyhzY3JpcHRfZGlyKS9mbG93X2NvbmZpZy50Y2wgd10KLSAgICAgICAgICAgICAgICAgIHNldCBmcDIgW29wZW4gJHZhcnMoc2NyaXB0X2RpcikvZmxvd19zdGVwcy50Y2wgd10KLSAgICAgICAgICAgICAgICAgIHB1dHMgJGZwMSAic2V0X2RiIGZsb3dfZGF0YWJhc2VfZGlyZWN0b3J5ICR2YXJzKGRic19kaXIpIgotICAgICAgICAgICAgICAgICAgcHV0cyAkZnAxICJzZXRfZGIgZmxvd19yZXBvcnRfZGlyZWN0b3J5ICR2YXJzKHJwdF9kaXIpIgotICAgICAgICAgICAgICAgICAgcHV0cyAkZnAxICJzZXRfZGIgZmxvd19sb2dfZGlyZWN0b3J5ICR2YXJzKGxvZ19kaXIpIgotICAgICAgICAgICAgICAgICAgcHV0cyAkZnAyIFtyZWdzdWIgImNyZWF0ZV9mbG93X3N0ZXAgLW5hbWUgaW5pdCAiICR2YXJzKGZsb3dfc3RlcHMsZmxhdCkgImNyZWF0ZV9mbG93X3N0ZXAgLW5hbWUgaW5pdF9kZXNpZ24gIl0KLSAgICAgICAgICAgICAgICAgIHB1dHMgJGZwMSAiXG5zZXRfZGIgZmxvd19tYWlsX3RvIFtleGVjIHdob2FtaV0iCi0gICAgICAgICAgICAgICAgICBwdXRzICRmcDEgInNldF9kYiBmbG93X21haWxfb25fZXJyb3IgdHJ1ZVxuIgotICAgICAgICAgICAgICAgICAgaWYgeyR2YXJzKHRvcCl9IHsKLSAgICAgICAgICAgICAgICAgICAgIHNldCB2YXJzKGZsb3dfbmFtZSkgdG9wCi0gICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgc2V0IHZhcnMoZmxvd19uYW1lKSBibG9jawotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgaWYge1tmaWxlIGV4aXN0cyAkdmFycyhjd2QpLy5wbHVnaW5zXX0gewotICAgICAgICAgICAgICAgICAgICAgc2V0IGlwIFtvcGVuICR2YXJzKGN3ZCkvLnBsdWdpbnMgcl0KLSAgICAgICAgICAgICAgICAgICAgIHdoaWxlIHtbZ2V0cyAkaXAgbGluZV0+PTB9IHsgCi0gICAgICAgICAgICAgICAgICAgICAgICBwdXRzICRmcDEgJGxpbmUgCi0gICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICBjbG9zZSAkaXAKLSMgICAgICAgICAgICAgICAgICAgICBmaWxlIGRlbGV0ZSAkdmFycyhjd2QpLy5wbHVnaW5zIAotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgY2xvc2UgJGZwMQotICAgICAgICAgICAgICAgICAgcHV0cyAkZnAyICJjcmVhdGVfZmxvd19zdGVwIC1uYW1lIGluaXRfZmxvb3JwbGFuIHsgfSIKLSAgICAgICAgICAgICAgICAgIGNsb3NlICRmcDIKLSAgICAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhwYXJ0aXRpb25fbGlzdCldfSB7Ci0gICAgICAgICAgICAgICAgICAgICBpZiB7KCR2YXJzKGRlc2lnbikgPT0gW2xpbmRleCAkdmFycyhwYXJ0aXRpb25fbGlzdCkgMF0pIHx8ICR2YXJzKHRvcCl9IHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHNldCBocCBbb3BlbiAkdmFycyhzY3JpcHRfZGlyKS8uaGllcnN0ZXBzLnRjbCB3XQotICAgICAgICAgICAgICAgICAgICAgICAgaWYgeyR2YXJzKHRvcCl9IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldCB0ZW1wIFtyZWdzdWIgLWFsbCAiY3JlYXRlX2Zsb3dfc3RlcCAtbmFtZSBpbml0IiAkdmFycyhmbG93X3N0ZXBzLGZsYXQpICJjcmVhdGVfZmxvd19zdGVwIC1uYW1lIHRvcF9pbml0Il0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldCB0ZW1wMiBbcmVnc3ViIC1hbGwgImNyZWF0ZV9mbG93X3N0ZXAgLW5hbWUgcHJlY3RzIiAkdGVtcCAiY3JlYXRlX2Zsb3dfc3RlcCAtbmFtZSB0b3BfcHJlY3RzIl0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldCB0ZW1wMyBbcmVnc3ViIC1hbGwgImNyZWF0ZV9mbG93X3N0ZXAgLW5hbWUgcGxhY2UiICR0ZW1wMiAiY3JlYXRlX2Zsb3dfc3RlcCAtbmFtZSB0b3BfcGxhY2UiXQotICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0IHRlbXA0IFtyZWdzdWIgLWFsbCAiY3JlYXRlX2Zsb3dfc3RlcCAtbmFtZSBjdHMiICR0ZW1wMyAiY3JlYXRlX2Zsb3dfc3RlcCAtbmFtZSB0b3BfY3RzIl0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldCB2YXJzKGZsb3dfc3RlcHMsZmxhdCkgW3JlZ3N1YiAtYWxsICJjcmVhdGVfZmxvd19zdGVwIC1uYW1lIHNpZ25vZmYiICR0ZW1wNCAiY3JlYXRlX2Zsb3dfc3RlcCAtbmFtZSB0b3Bfc2lnbm9mZiJdCi0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICBwdXRzICRocCAkdmFycyhmbG93X3N0ZXBzLGZsYXQpCi0gICAgICAgICAgICAgICAgICAgICAgICBjbG9zZSAkaHAKLSAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIHVuc2V0IHZhcnMoZmxvd19zdGVwcykKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIHskdmFycyhnZW5lcmF0ZV9mbG93X3N0ZXBzKX0gewotICAgICAgICAgICAgICAgaWYge1tsc2VhcmNoICRzdGVwcyAiYXNzZW1ibGUiXSAhPSAtMX0gewotICAgICAgICAgICAgICAgICAgc2V0IHN0ZXBzIFtscmVwbGFjZSAkc3RlcHMgZW5kIGVuZF0KLSAgICAgICAgICAgICAgIH0gCi0gICAgICAgICAgICAgICBzZXQgZnAgW29wZW4gcnVuX2Zsb3cudGNsIHddCi0gICAgICAgICAgICAgICBwdXRzICRmcCAic291cmNlICR2YXJzKHNjcmlwdF9kaXIpL2Zsb3dfc3RlcHMudGNsIgotICAgICAgICAgICAgICAgcHV0cyAkZnAgImlmIFx7XFtmaWxlIGV4aXN0cyAkdmFycyhzY3JpcHRfZGlyKS9wbHVnX3N0ZXBzLnRjbFxdXH0gXHsiCi0gICAgICAgICAgICAgICBwdXRzICRmcCAiICBzb3VyY2UgJHZhcnMoc2NyaXB0X2RpcikvcGx1Z19zdGVwcy50Y2wiCi0gICAgICAgICAgICAgICBwdXRzICRmcCAiXH0iCi0gICAgICAgICAgICAgICBpZiB7W2ZpbGUgdGFpbCBbcHdkXV0gPT0gJHZhcnModG9wX2NlbGwpfSB7Ci0gICAgICAgICAgICAgICAgICAgaWYge1tmaWxlIHRhaWwgW2ZpbGUgZGlybmFtZSBbcHdkXV1dID09ICIkdmFycyhwYXJ0aXRpb25fZGlyKSJ9IHsKLSAgICAgICAgICAgICAgICAgICAgICBzZXQgdmFycyhmbG93X25hbWUpICJ0b3AiCi0gICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICBzZXQgdmFycyhmbG93X25hbWUpICJ0b3BfcGFzczIiCi0gICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgc2V0IHRvcF9zdGVwcyAiICRzdGVwcyIKLSAgICAgICAgICAgICAgICAgIGZvcmVhY2ggcyAiaW5pdCBwbGFjZSBwcmVjdHMgY3RzIHNpZ25vZmYiIHsKLSAgICAgICAgICAgICAgICAgICAgIHNldCB0ZW1wIFtyZWdzdWIgIiAkcyIgJHRvcF9zdGVwcyAiIHRvcF8kcyJdCi0gICAgICAgICAgICAgICAgICAgICBzZXQgdG9wX3N0ZXBzICR0ZW1wIAotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgIHB1dHMgJGZwICJjcmVhdGVfZmxvdyBcXFxuICAgLW5hbWUgJHZhcnMoZmxvd19uYW1lKVxcXG4gICAtdG9vbCAkdmFycyhtYWtlX3Rvb2wpXFxcbiAgIC10b29sX29wdGlvbnMgey1sb2cgJHZhcnMoZmxvd19uYW1lKS5sb2d9XFxcbiAgIFxbbGlzdCAkdG9wX3N0ZXBzXF1cbiIKLSAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICBzZXQgZGlyIFtmaWxlIHRhaWwgW3B3ZF1dCi0gICAgICAgICAgICAgICAgICBzZXQgcGRpciBbZmlsZSB0YWlsIFtmaWxlIHRhaWwgJGRpcl1dCi0gICAgICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMocGFydGl0aW9uX2xpc3QpXX0gewotICAgICAgICAgICAgICAgICAgICAgaWYgeyhbZmlsZSB0YWlsIFtwd2RdXSA9PSBbbGluZGV4ICR2YXJzKHBhcnRpdGlvbl9saXN0KSAwXSl9IHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIHtbZmlsZSB0YWlsIFtmaWxlIGRpcm5hbWUgW3B3ZF1dXSA9PSAiJHZhcnMocGFydGl0aW9uX2RpcikifSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICBzZXQgdmFycyhmbG93X25hbWUpICJibG9jayIKLSAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0IHZhcnMoZmxvd19uYW1lKSAiYmxvY2tfcGFzczIiCi0gICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgIHB1dHMgJGZwICJjcmVhdGVfZmxvdyBcXFxuICAgLW5hbWUgJHZhcnMoZmxvd19uYW1lKVxcXG4gICAtdG9vbCAkdmFycyhtYWtlX3Rvb2wpXFxcbiAgIC10b29sX29wdGlvbnMgey1sb2cgJHZhcnMoZmxvd19uYW1lKS5sb2d9XFxcbiAgIFxbbGlzdCAkc3RlcHNcXVxuIgotICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgIGlmIHshJHZhcnMocmMpfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBzZXQgdmFycyhmbG93X25hbWUpICJpbm5vdnVzIgotICAgICAgICAgICAgICAgICAgICAgICAgcHV0cyAkZnAgInNvdXJjZSAkdmFycyhzY3JpcHRfZGlyKS9mbG93X2NvbmZpZy50Y2wiCi0gICAgICAgICAgICAgICAgICAgICAgICBwdXRzICRmcCAiY3JlYXRlX2Zsb3cgXFxcbiAgIC1uYW1lICR2YXJzKGZsb3dfbmFtZSlcXFxuICAgLXRvb2wgJHZhcnMobWFrZV90b29sKVxcXG4gICAtdG9vbF9vcHRpb25zIHstbG9nICR2YXJzKGZsb3dfbmFtZSkubG9nfVxcXG4gICBcW2xpc3QgJHN0ZXBzXF1cbiIKLSAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBzZXQgcmNfc3RlcHMgW2xpc3RdCi0gICAgICAgICAgICAgICAgICAgICAgICBzZXQgZWRpX3N0ZXBzIFtsaXN0XQotICAgICAgICAgICAgICAgICAgICAgICAgZm9yZWFjaCBzICRzdGVwcyB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICBpZiB7W3JlZ2V4cCBzeW5fICRzXX0gewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFwcGVuZCByY19zdGVwcyAkcwotICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhcHBlbmQgZWRpX3N0ZXBzICRzCi0gICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICBzZXQgdmFycyhmbG93X25hbWUpICJnZW51cyIKLSMgICAgICAgICAgICAgICAgICAgICAgICBwdXRzICRmcCAic291cmNlICR2YXJzKHNjcmlwdF9kaXIpL2Zsb3dfc3RlcHMudGNsIgotICAgICAgICAgICAgICAgICAgICAgICAgcHV0cyAkZnAgInNvdXJjZSAkdmFycyhzY3JpcHRfZGlyKS9mbG93X2NvbmZpZy50Y2wiCi0gICAgICAgICAgICAgICAgICAgICAgICBwdXRzICRmcCAiY3JlYXRlX2Zsb3cgXFxcbiAgIC1uYW1lICR2YXJzKGZsb3dfbmFtZSlcXFxuICAgLXRvb2wgJHZhcnMobWFrZV9zeW5fdG9vbClcXFxuICAgLXRvb2xfb3B0aW9ucyB7LWxvZyAkdmFycyhmbG93X25hbWUpLmxvZ31cXFxuICAgXFtsaXN0ICRyY19zdGVwc1xdXG4iCi0gICAgICAgICAgICAgICAgICAgICAgICBzZXQgdmFycyhmbG93X25hbWUpICJpbm5vdnVzIgotICAgICAgICAgICAgICAgICAgICAgICAgcHV0cyAkZnAgImNyZWF0ZV9mbG93IFxcXG4gICAtbmFtZSAkdmFycyhmbG93X25hbWUpXFxcbiAgIC10b29sICR2YXJzKG1ha2VfdG9vbClcXFxuICAgLXRvb2xfb3B0aW9ucyB7LWxvZyAkdmFycyhmbG93X25hbWUpLmxvZ31cXFxuICAgXFtsaXN0ICRlZGlfc3RlcHNcXVxuIgotICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgY2xvc2UgJGZwCi0gICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0gICAgICAgICAiYm90dG9tX3VwIiB7Ci0gICAgICAgICAgICBwdXRzICRvcCAiVkVSU0lPTj0xNy4xMC1wMDAzXzEiCi0gICAgICAgICAgICBwdXRzICRvcCAiVlBBVEg9JGVudihWUEFUSCkiCi0gICAgICAgICAgICBwdXRzICRvcCAiVE9PTD0kdmFycyhtYWtlX3Rvb2wpIgotICAgICAgICAgICAgcHV0cyAkb3AgIlNDUklQVFM9JHZhcnMoc2NyaXB0X2RpcikiCi0gICAgICAgICAgICBwdXRzICRvcCAiTE9HPSR2YXJzKGxvZ19kaXIpIgotICAgICAgICAgICAgcHV0cyAkb3AgIkJST1dTRVI9JHZhcnMobWFrZV9icm93c2VyKSIKLSAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhtYWtlX3VwZGF0ZSldfSB7Ci0gICAgICAgICAgICAgICBwdXRzICRvcCAiVVBEQVRFPSR2YXJzKG1ha2VfdXBkYXRlKSIKLSAgICAgICAgICAgIH0gZWxzZWlmIHtbZmlsZSB0YWlsIFtmaWxlIGRpcm5hbWUgW3B3ZF1dXSAhPSAiJHZhcnMocGFydGl0aW9uX2RpcikifSB7Ci0gICAgICAgICAgICAgICBwdXRzICRvcCAiVVBEQVRFPXllcyIKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHB1dHMgJG9wICIiCi0gICAgICAgICAgICBwdXRzICRvcCAiQVJHUz0kdmFycyhtYWtlX3Rvb2xfYXJncykiCi0gICAgICAgICAgICBwdXRzICRvcCAiU1RFUFMgPSBbZm9ybWF0ICJ2ZXJzaW9uIHNldHVwICVzIGRvX2NsZWFudXAiICRzdGVwc10iCi0gICAgICAgICAgICBwdXRzICRvcCAiRkZfU1RPUCA9IHNpZ25vZmYiCi0gICAgICAgICAgICBwdXRzICRvcCAiRkZfU1RBUlQgPSBpbml0IgotICAgICAgICAgICAgcHV0cyAkb3AgIiIKLSAgICAgICAgICAgIHB1dHMgJG9wIFtmb3JtYXQgImFsbDogdmVyc2lvbiBzZXR1cCAlcyBkb19jbGVhbnVwIiAkc3RlcHNdCi0gICAgICAgICAgICBwdXRzICRvcCAiIgotICAgICAgICAgICAgcHV0cyAkb3AgInZlcnNpb246IgotICAgICAgICAgICAgcHV0cyAkb3AgIlx0QGVjaG8gXCJcIyBGb3VuZGF0aW9uIEZsb3dzIFZlcnNpb24gXCQoVkVSU0lPTilcIiIKLSAgICAgICAgICAgIHB1dHMgJG9wICIiCi0gICAgICAgICAgICBwdXRzICRvcCAiaGVscDoiCi0gICAgICAgICAgICBwdXRzICRvcCAiXHRAZWNobyBcIj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVwiIgotICAgICAgICAgICAgcHV0cyAkb3AgIlx0QGVjaG8gXCIgICAgICAgICAgIFwkKFZFUlNJT04pICBGb3VuZGF0aW9uIEZsb3dzXCIiCi0gICAgICAgICAgICBwdXRzICRvcCAiXHRAZWNobyBcIj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVwiIgotICAgICAgICAgICAgcHV0cyAkb3AgIlx0QGVjaG8gXCIgICBNYWtlZmlsZSBUYXJnZXRzXCIiCi0gICAgICAgICAgICBwdXRzICRvcCAiXHRAZWNobyBcIj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVwiIgotICAgICAgICAgICAgcHV0cyAkb3AgIlx0QGVjaG8gXCIgICAgICAgICAgICAgICBzZXR1cCA6IFNldHVwIFJ1biBEaXJlY3RvcnlcIiIKLSAgICAgICAgICAgIHB1dHMgJG9wICJcdEBlY2hvIFwiICAgICAgICAgICAgICAgIGluaXQgOiBDcmVhdGUgSW5pdGlhbCBEYXRhYmFzZVwiIgotICAgICAgICAgICAgcHV0cyAkb3AgIlx0QGVjaG8gXCIgICAgICAgICAgICAgICBwbGFjZSA6IENlbGwgUGxhY2VtZW50XCIiCi0gICAgICAgICAgICBwdXRzICRvcCAiXHRAZWNobyBcIiAgICAgICAgICAgICAgcHJlY3RzIDogUHJlQ1RTIE9wdGltaXphdGlvblwiIgotICAgICAgICAgICAgcHV0cyAkb3AgIlx0QGVjaG8gXCIgICAgICAgICAgICAgICAgIGN0cyA6IENsb2NrIFRyZWUgU3ludGhlc2lzXCIiCi0gICAgICAgICAgICBwdXRzICRvcCAiXHRAZWNobyBcIiAgICAgICAgICAgICBwb3N0Y3RzIDogUG9zdENUUyBPcHRpbWl6YXRpb25cIiIKLSAgICAgICAgICAgIHB1dHMgJG9wICJcdEBlY2hvIFwiICAgICAgICBwb3N0Y3RzX2hvbGQgOiBQb3N0Q1RTIE9vbGQgRml4aW5nXCIiCi0gICAgICAgICAgICBwdXRzICRvcCAiXHRAZWNobyBcIiAgICAgICAgICAgICAgIHJvdXRlIDogR2xvYmFsL0RldGFpbCBSb3V0ZVwiIgotICAgICAgICAgICAgcHV0cyAkb3AgIlx0QGVjaG8gXCIgICAgICAgICAgIHBvc3Ryb3V0ZSA6IFBvc3RSb3V0ZSBPcHRpbWl6YXRpb25cIiIKLSAgICAgICAgICAgIHB1dHMgJG9wICJcdEBlY2hvIFwiICAgICAgcG9zdHJvdXRlX2hvbGQgOiBQb3N0Um91dGUgSG9sZCBGaXhpbmdcIiIKLSAgICAgICAgICAgIHB1dHMgJG9wICJcdEBlY2hvIFwiICAgcG9zdHJvdXRlX3NpX2hvbGQgOiBTSSBIb2xkIEZpeGluZ1wiIgotICAgICAgICAgICAgcHV0cyAkb3AgIlx0QGVjaG8gXCIgICAgICAgIHBvc3Ryb3V0ZV9zaSA6IFNJIE9wdGltaXphdGlvblwiIgotICAgICAgICAgICAgcHV0cyAkb3AgIlx0QGVjaG8gXCIgICAgICAgICAgICAgc2lnbm9mZiA6IFNpZ25vZmYgVGltaW5nIC8gVmVyaWZ5XCIiCi0gICAgICAgICAgICBwdXRzICRvcCAiXHRAZWNobyBcIiAgICAgICAgICAgIGFzc2VtYmxlIDogRGVzaWduIEFzc2VtYmx5IC8gVmVyaWZ5XCIiCi0gICAgICAgICAgICBwdXRzICRvcCAiXHRAZWNobyBcIi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVwiIgotICAgICAgICAgICAgcHV0cyAkb3AgIlx0QGVjaG8gXCIgICAgICAgICAgICAgICAgIGFsbCA6IEFsbCBkZXNpZ24gc3RlcHNcIiIKLSAgICAgICAgICAgIHB1dHMgJG9wICJcdEBlY2hvIFwiICAgICAgICAgICAgICBzaW1wbGUgOiBTaW5nbGUgc2NyaXB0IChhbGwgc3RlcHMgaW4gYSBzaW5nbGUgc2Vzc2lvbikgLSBubyBzdG9wL3N0YXJ0XCIiCi0gICAgICAgICAgICBwdXRzICRvcCAiXHRAZWNobyBcIiAgICAgICAgICAgICAgc2luZ2xlIDogU2luZ2xlIHNjcmlwdCAoYWxsIHN0ZXBzIGluIGEgc2luZ2xlIHNlc3Npb24pXCIiCi0gICAgICAgICAgICBwdXRzICRvcCAiXHRAZWNobyBcIj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVwiIgotICAgICAgICAgICAgcHV0cyAkb3AgIlx0QGVjaG8gXCIgICBNYWtlZmlsZSBPcHRpb25zXCIiCi0gICAgICAgICAgICBwdXRzICRvcCAiXHRAZWNobyBcIj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVwiIgotICAgICAgICAgICAgcHV0cyAkb3AgIlx0QGVjaG8gXCIgICBWUEFUSCA6IE1ha2UgZGlyZWN0b3J5ICAgIChkZWZhdWx0IG1ha2UpXCIiCi0gICAgICAgICAgICBpZiB7JHZhcnMobm92dXMpfSB7Ci0gICAgICAgICAgICAgICBwdXRzICRvcCAiXHRAZWNobyBcIiAgICBUT09MIDogSU5OT1ZVUyBleGVjdXRhYmxlIChkZWZhdWx0IGlubm92dXMpXCIiCi0gICAgICAgICAgICAgICBwdXRzICRvcCAiXHRAZWNobyBcIiAgICBBUkdTIDogSU5OT1ZVUyBhcmd1bWVudHMgIChkZWZhdWx0IC1ub3dpbiAtNjQpXCIiCi0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgcHV0cyAkb3AgIlx0QGVjaG8gXCIgICAgVE9PTCA6IElOTk9WVVMgZXhlY3V0YWJsZSAgICAgKGRlZmF1bHQgaW5ub3Z1cylcIiIKLSAgICAgICAgICAgICAgIHB1dHMgJG9wICJcdEBlY2hvIFwiICAgIEFSR1MgOiBJTk5PVlVTIGFyZ3VtZW50cyAgICAgIChkZWZhdWx0IC1ub3dpbiAtNjQpXCIiCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiB7W2ZpbGUgdGFpbCBbZmlsZSBkaXJuYW1lIFtwd2RdXV0gIT0gIiR2YXJzKHBhcnRpdGlvbl9kaXIpIn0gewotICAgICAgICAgICAgICAgcHV0cyAkb3AgIlx0QGVjaG8gXCIgIFVQREFURSA6IFVwZGF0ZSBzY3JpcHRzICAgIChkZWZhdWx0IHllcylcIiIKLSAgICAgICAgICAgIH0KLSMgICAgICAgICAgICBwdXRzICRvcCAiXHRAZWNobyBcIiBCUk9XU0VSIDogSFRNTCBicm93c2VyICAgICAgKGRlZmF1bHQgbmV0c2NhcGUpXCIiCi0gICAgICAgICAgICBwdXRzICRvcCAiXHRAZWNobyBcIiBTQ1JJUFRTIDogU2NyaXB0IGRpcmVjdG9yeSAgKGRlZmF1bHQgJHZhcnMoc2NyaXB0X2RpcikpXCIiCi0gICAgICAgICAgICBwdXRzICRvcCAiXHRAZWNobyBcIiAgICAgTE9HIDogTG9nZmlsZSBkaXJlY3RvcnkgKGRlZmF1bHQgJHZhcnMobG9nX2RpcikpXCIiCi0gICAgICAgICAgICBwdXRzICRvcCAiXHRAZWNobyBcIj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVwiIgotICAgICAgICAgICAgcHV0cyAkb3AgIiIKLSMgICAgICAgICAgICBpZiB7W2ZpbGUgdGFpbCBbZmlsZSBkaXJuYW1lIFtwd2RdXV0gIT0gIiR2YXJzKHBhcnRpdGlvbl9kaXIpIn0gewotIyAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhwbHVnX2ZpbGVzKV19IHsKLSMgICAgICAgICAgICAgICAgICBwdXRzICRvcCAiZmxvdzogJHZhcnMoY29uZmlnX2ZpbGVzKSAkdmFycyhwbHVnX2ZpbGVzKSIKLSMgICAgICAgICAgICAgICB9IGVsc2UgewotIyAgICAgICAgICAgICAgICAgIHB1dHMgJG9wICJmbG93OiAkdmFycyhjb25maWdfZmlsZXMpIgotIyAgICAgICAgICAgICAgIH0KLSMgICAgICAgICAgICAgICBwdXRzICRvcCAiXHRAaWYgXFsgXCQoVVBEQVRFKSA9PSB5ZXMgXSA7IHRoZW4gXFwiCi0jICAgICAgICAgICAgICAgcHV0cyAkb3AgIlx0XHRbbGluZGV4ICRleGVjdXRlX3N0cmluZyAwXSBbbGluZGV4ICRleGVjdXRlX3N0cmluZyAxXSAtbSBmbGF0IGFsbCA7IFxcIgotIyAgICAgICAgICAgICAgIHB1dHMgJG9wICJcdFx0L2Jpbi90b3VjaCBcJChWUEFUSCkvXCRAIDsgXFwiCi0jICAgICAgICAgICAgICAgcHV0cyAkb3AgIlx0ZWxzZSBcXCIKLSMgICAgICAgICAgICAgICBwdXRzICRvcCAiXHRcdGVjaG8gJ1NLSVBQSU5HIEZMT1cgVVBEQVRFIC4uLicgOyBcXCIKLSMgICAgICAgICAgICAgICBwdXRzICRvcCAiXHRmaSIKLSMgICAgICAgICAgICB9IGVsc2UgewotIyAgICAgICAgICAgICAgIHB1dHMgJG9wICJmbG93OiIKLSMgICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIHB1dHMgJG9wICJcbnNpbXBsZTogc2V0dXAiCi0gICAgICAgICAgICBpZiB7JHZhcnMoc3RlcF9hcmcpID09ICJhbGwifSB7Ci0gICAgICAgICAgICAgICBwdXRzICRvcCAiXHRGRl9TVE9QPVwkKEZGX1NUT1ApOyBWUEFUSD1cJChWUEFUSCk7IGV4cG9ydCBWUEFUSDsgXCQoVE9PTCkgLWluaXQgXCQoU0NSSVBUUykvSU5OT1ZVUy9ydW5fc2ltcGxlLnRjbCAtbG9nIFwkKExPRykvc2ltcGxlLmxvZyBcJChBUkdTKSIKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBwdXRzICRvcCAiXHRGRl9TVE9QPVwkKEZGX1NUT1ApOyBWUEFUSD1cJChWUEFUSCk7IGV4cG9ydCBWUEFUSDsgXCQoVE9PTCkgLWluaXQgXCQoU0NSSVBUUykvSU5OT1ZVUy9ydW5fc2ltcGxlLiR2YXJzKHN0ZXBfYXJnKS50Y2wgLWxvZyBcJChMT0cpL3NpbXBsZS4kdmFycyhzdGVwX2FyZykubG9nIFwkKEFSR1MpIgotICAgICAgICAgICAgfQotICAgICAgICAgICAgcHV0cyAkb3AgIiIKLSAgICAgICAgICAgIHB1dHMgJG9wICJcbnNpbmdsZTogc2V0dXAiCi0gICAgICAgICAgICBwdXRzICRvcCAiXHRGRl9TVE9QPVwkKEZGX1NUT1ApOyBWUEFUSD1cJChWUEFUSCk7IGV4cG9ydCBWUEFUSDsgXCQoVE9PTCkgLWluaXQgXCQoU0NSSVBUUykvSU5OT1ZVUy9ydW5fYWxsLnRjbCAtbG9nIFwkKExPRykvc2luZ2xlLmxvZyBcJChBUkdTKSIKLSAgICAgICAgICAgIHB1dHMgJG9wICIiCi0gICAgICAgICAgICBwdXRzICRvcCAic2V0dXA6IgotICAgICAgICAgICAgcHV0cyAkb3AgIlx0QC9iaW4vbWtkaXIgLXAgXCQoVlBBVEgpIFwkKExPRykiCi0gICAgICAgICAgICBwdXRzICRvcCAiXHRAL2Jpbi90b3VjaCBcJChWUEFUSCkvXCRAIgotICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGVuYWJsZV9sZGIpXSAmJiAkdmFycyhlbmFibGVfbGRiKX0gewotICAgICAgICAgICAgICAgcHV0cyAkb3AgIlx0XCQoVE9PTCkgLWluaXQgXCQoU0NSSVBUUykvSU5OT1ZVUy9ydW5fY29tcGlsZS50Y2wgLWxvZyBcJChMT0cpL2NvbXBpbGUubG9nIC13aW4gXCQoQVJHUykiCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBwdXRzICRvcCAiIiAKLQotICAgICAgICAgICAgc2V0IHByaW9yX3N0ZXAgInNldHVwIgotICAgICAgICAgICAgZm9yZWFjaCBzdGVwICRzdGVwcyB7Ci0gICAgICAgICAgICAgICBwdXRzICRvcCAiJHN0ZXA6ICRwcmlvcl9zdGVwIgotIyAgICAgICAgICAgICAgIHB1dHMgJG9wICJcdEBcJChNQUtFKSAtZiBNYWtlZmlsZSBmbG93IgotICAgICAgICAgICAgICAgaWYge1tmaWxlIGRpcm5hbWUgW3B3ZF1dICE9ICIkdmFycyhwYXJ0aXRpb25fZGlyKSJ9IHsKLSAgICAgICAgICAgICAgICAgIHB1dHMgJG9wICJcdEBpZiBcWyBcJChVUERBVEUpID09IHllcyBdIDsgdGhlbiBcXCIKLSAgICAgICAgICAgICAgICAgIHB1dHMgJG9wICJcdFx0W2xpbmRleCAkZXhlY3V0ZV9zdHJpbmcgMF0gW2xpbmRleCAkZXhlY3V0ZV9zdHJpbmcgMV0gLW4gLW0gYm90dG9tX3VwICRzdGVwIDsgXFwiCi0gICAgICAgICAgICAgICAgICBwdXRzICRvcCAiXHRmaSIKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIHB1dHMgJG9wICJcdFZQQVRIPVwkKFZQQVRIKTsgZXhwb3J0IFZQQVRIOyBcJChUT09MKSAtaW5pdCBcJChTQ1JJUFRTKS9JTk5PVlVTL3J1bl8kc3RlcC50Y2wgLWxvZyBcJChMT0cpLyRzdGVwLmxvZyAtb3ZlcndyaXRlIFwkKEFSR1MpIgotICAgICAgICAgICAgICAgcHV0cyAkb3AgIlx0L2Jpbi90b3VjaCBcJChWUEFUSCkvJHN0ZXBcbiIKLSAgICAgICAgICAgICAgIHNldCBwcmlvcl9zdGVwICRzdGVwCi0gICAgICAgICAgICB9Ci0KLSMgICAgICAgICAgICBwdXRzICRvcCAiaHRtbDoiCi0jICAgICAgICAgICAgcHV0cyAkb3AgIlx0RkZTVEVQUz1cJChTVEVQUyk7IGV4cG9ydCBGRlNURVBTOyBGRkxPR0RJUj1cJChMT0cpOyBleHBvcnQgRkZMT0dESVI7IC91c3IvYmluL3RjbHNoIFwkKFNDUklQVFMpL0lOTk9WVVMvZ2VuX2h0bWwudGNsIC47IGNkIEhUTUw7IFwkKEJST1dTRVIpIGZpbGU6YHB3ZGAvaW5kZXguaHRtbCIKLSMgICAgICAgICAgICBwdXRzICRvcCAiIgotICAgICAgICAgICAgcHV0cyAkb3AgImRlYnVnXyU6IgotICAgICAgICAgICAgcHV0cyAkb3AgIlx0VlBBVEg9XCQoVlBBVEgpOyBleHBvcnQgU1RFUD1cJCogOyBleHBvcnQgVlBBVEg7IFwkKFRPT0wpIC1pbml0IFwkKFNDUklQVFMpL0lOTk9WVVMvcnVuX2RlYnVnLnRjbCAtbG9nIFwkKExPRykvXCRALmxvZyAtd2luIFwkKEFSR1M6LW5vd2luPSkiCi0gICAgICAgICAgICBwdXRzICRvcCAiIgotICAgICAgICAgICAgcHV0cyAkb3AgImxlY18lOiIKLSAgICAgICAgICAgIHB1dHMgJG9wICJcdGV4cG9ydCBTVEVQPVwkKiA7IGxlYyAtNjQgLXhsIC1Eb2ZpbGUgXCQoU0NSSVBUUykvSU5OT1ZVUy9ydW5fbGVjLnRjbCAtTk9HdWkgLUxPR2ZpbGUgXCQoTE9HKS9cJEAubG9nIgotICAgICAgICAgICAgcHV0cyAkb3AgIiIKLSMgICAgICAgICAgICBwdXRzICRvcCAiLlBIT05ZOiBjbGVhbiBodG1sIgotICAgICAgICAgICAgcHV0cyAkb3AgIi5QSE9OWTogY2xlYW4iCi0gICAgICAgICAgICBwdXRzICRvcCAiIgotICAgICAgICAgICAgcHV0cyAkb3AgImNsZWFuOiIKLSAgICAgICAgICAgIHB1dHMgJG9wICJcdC9iaW4vbXYgKi5ycHQgJHZhcnMocnB0X2RpcikgO1xcIgotICAgICAgICAgICAgcHV0cyAkb3AgIlx0L2Jpbi9ybSAtZnIgZXh0TG9nRGlyKiBfX3FyYy5sb2cgKmN0c190cmFjZSAqLnJwdC5vbGQgKmRlbGV0ZSogcGxhY2VtZW50UmVwb3J0cyogKi5yZ3VpZGUgKl9tbW1jIFxcXG5cdCpfY29uc3RyLnB0IC5jb25zdHIqIC5GRSogLnJvdXRpbmcqIC50aW1pbmdfZmlsZSogLnRkcmxvZyoiCi0gICAgICAgICAgICBwdXRzICRvcCAiIgotICAgICAgICAgICAgcHV0cyAkb3AgImRvX2NsZWFudXA6IHNpZ25vZmYiCi0gICAgICAgICAgICBwdXRzICRvcCAiXHRcJChNQUtFKSBjbGVhbiIKLSAgICAgICAgICAgIHB1dHMgJG9wICJcdC9iaW4vdG91Y2ggXCQoVlBBVEgpL1wkQCIKLSAgICAgICAgICAgIHB1dHMgJG9wICIiCi0gICAgICAgICAgICBwdXRzICRvcCAicmVzZXQgOiB2ZXJzaW9uIgotICAgICAgICAgICAgcHV0cyAkb3AgIlx0L2Jpbi9ybSAtZnIgXCQoVlBBVEgpLyogZXh0TG9nRGlyKiBfX3FyYy5sb2cgKmN0c190cmFjZSAqLnJwdC5vbGQgKmRlbGV0ZSogcGxhY2VtZW50UmVwb3J0cyogKi5yZ3VpZGUgKl9tbW1jIgotICAgICAgICAgICAgcHV0cyAkb3AgIlx0QGZvciBmaWxlIGluIFwkKFNURVBTKSA7IFxcIgotICAgICAgICAgICAgcHV0cyAkb3AgIlx0ZG8gXFwiCi0gICAgICAgICAgICBwdXRzICRvcCAiXHRcdGlmIFxbIC1yIFwkKFZQQVRIKS9cJFwkZmlsZSBcXSA7IHRoZW4gXFwiCi0gICAgICAgICAgICBwdXRzICRvcCAiXHRcdFx0L2Jpbi9ybSBcJChWUEFUSCkvXCRcJGZpbGUgOyBcXCIKLSAgICAgICAgICAgIHB1dHMgJG9wICJcdFx0ZmkgXFwiCi0gICAgICAgICAgICBwdXRzICRvcCAiXHRkb25lIgotICAgICAgICAgICAgcHV0cyAkb3AgIiIKLSAgICAgICAgICAgIHB1dHMgJG9wICJibG9ja18lOiBzZXR1cCIKLSAgICAgICAgICAgIHB1dHMgJG9wICJcdEBpZiBcWyBcInhcJCpcIiA9IFwieHNpbmdsZVwiIFxdIDsgdGhlbiBcXCIKLSAgICAgICAgICAgIHB1dHMgJG9wICJcdFx0ZmZfc3RvcD1cJChGRl9TVE9QKTsgXFwiCi0gICAgICAgICAgICBwdXRzICRvcCAiXHRcdHRhcmdldD1cIlwkQCAoZnJvbTogXCQoRkZfU1RBUlQpIHRvOiBcJChGRl9TVE9QKSlcIjsgXFwiCi0gICAgICAgICAgICBwdXRzICRvcCAiXHRlbHNlIFxcIgotICAgICAgICAgICAgcHV0cyAkb3AgIlx0XHRmZl9zdG9wPVwkKiA7IFxcIgotICAgICAgICAgICAgcHV0cyAkb3AgIlx0XHR0YXJnZXQ9XCRAOyBcXCIKLSAgICAgICAgICAgIHB1dHMgJG9wICJcdGZpOyBcXCIKLSAgICAgICAgICAgIHB1dHMgJG9wICJcdGlmIFxbIC1yIFwkKFZQQVRIKS8uUlVOTklORyBcXSA7IHRoZW4gXFwiCi0gICAgICAgICAgICBwdXRzICRvcCAiXHRcdGVjaG8gXCJJTkZPOiBBIGJ1aWxkIHNlZW1zIHRvIGJlIHJ1bm5pbmcgYWxyZWFkeS4uLiBjaGVjayBcJChWUEFUSCkvLlJVTk5JTkcgZmlsZSBhbmQgcmVtb3ZlIHRoYXQgZmlsZSBpZiB0aGUgcHJvY2VzcyBpcyBkZWFkXCIgOyBcXCIKLSAgICAgICAgICAgIHB1dHMgJG9wICJcdFx0L2Jpbi9oZWFkIC0xICBcJChWUEFUSCkvLlJVTk5JTkcgOyBcXCIKLSAgICAgICAgICAgIHB1dHMgJG9wICJcdFx0ZXhpdCAtMSA7IFxcIgotICAgICAgICAgICAgcHV0cyAkb3AgIlx0ZWxzZSBcXCIKLSAgICAgICAgICAgIHB1dHMgJG9wICJcdFx0L2Jpbi9ybSAtZiBcJChWUEFUSCkvYmxvY2tfXCRcJFx7ZmZfc3RvcFx9LkRPTkUgXCQoVlBBVEgpL2Jsb2NrX1wkXCRce2ZmX3N0b3BcfS5GQUlMRUQgXCQoVlBBVEgpL2Jsb2NrX1wkXCRce2ZmX3N0b3BcfS5QQVNTIDsgXFwiCi0gICAgICAgICAgICBwdXRzICRvcCAiXHRcdChlY2hvIFwiIyBTdGFydGVkIGJ1aWxkaW5nIFwkXCRce3RhcmdldFx9IGF0IFwiYC9iaW4vZGF0ZWBcIiBvbiBcImAvYmluL2hvc3RuYW1lYFwiIFBJRDogXCRcJFwkXCRcIiA7IFwkKE1BS0UpIFwkKFRBUkdFVCkgKSAmPlwkKFZQQVRIKS8uUlVOTklORyA7IFxcIgotICAgICAgICAgICAgcHV0cyAkb3AgIlx0XHRpZiBcWyAtciBcJChWUEFUSCkvXCRcJFx7ZmZfc3RvcFx9IFxdIDsgdGhlbiBcXCIKLSAgICAgICAgICAgIHB1dHMgJG9wICJcdFx0XHRpZiBcWyAtciBcJChWUEFUSCkvLlJVTk5JTkcgXF0gOyB0aGVuIFxcIgotICAgICAgICAgICAgcHV0cyAkb3AgIlx0XHRcdFx0L2Jpbi9tdiBcJChWUEFUSCkvLlJVTk5JTkcgXCQoVlBBVEgpL2Jsb2NrX1wkXCRce2ZmX3N0b3BcfS5QQVNTIDsgXFwiCi0gICAgICAgICAgICBwdXRzICRvcCAiXHRcdFx0XHQvYmluL3RvdWNoIFwkKFZQQVRIKS9ibG9ja19cJFwkXHtmZl9zdG9wXH0gOyBcXCIKLSAgICAgICAgICAgIHB1dHMgJG9wICJcdFx0XHRcdC9iaW4vdG91Y2ggXCQoVlBBVEgpL2Jsb2NrX1wkXCRce2ZmX3N0b3BcfS5ET05FIDsgXFwiCi0gICAgICAgICAgICBwdXRzICRvcCAiXHRcdFx0ZWxzZSBcXCIKLSAgICAgICAgICAgIHB1dHMgJG9wICJcdFx0XHRcdGVjaG8gXCIjIFNvbWV0aGluZyBkaWQgbm90IHdvcmsgcHJvcGVybHlcIiA+IFwkKFZQQVRIKS9ibG9ja19cJFwkXHtmZl9zdG9wXH0uRkFJTEVEIDsgXFwiCi0gICAgICAgICAgICBwdXRzICRvcCAiXHRcdFx0XHQvYmluL3RvdWNoIFwkKFZQQVRIKS9ibG9ja19cJFwkXHtmZl9zdG9wXH0uRE9ORSA7IFxcIgotICAgICAgICAgICAgcHV0cyAkb3AgIlx0XHRcdFx0ZXhpdCAtMTsgXFwiCi0gICAgICAgICAgICBwdXRzICRvcCAiXHRcdFx0ZmkgOyBcXCIKLSAgICAgICAgICAgIHB1dHMgJG9wICJcdFx0ZWxzZSBcXCIKLSAgICAgICAgICAgIHB1dHMgJG9wICJcdFx0XHRpZiBcWyAtciBcJChWUEFUSCkvLlJVTk5JTkcgXF0gOyB0aGVuIFxcIgotICAgICAgICAgICAgcHV0cyAkb3AgIlx0XHRcdFx0L2Jpbi9tdiBcJChWUEFUSCkvLlJVTk5JTkcgXCQoVlBBVEgpL2Jsb2NrX1wkXCRce2ZmX3N0b3BcfS5GQUlMRUQgOyBcXCIKLSAgICAgICAgICAgIHB1dHMgJG9wICJcdFx0XHRlbHNlIFxcIgotICAgICAgICAgICAgcHV0cyAkb3AgIlx0XHRcdFx0ZWNobyBcIiMgU29tZXRoaW5nIGRpZCBub3Qgd29yayBwcm9wZXJseVwiID4gXCQoVlBBVEgpL2Jsb2NrX1wkXCRce2ZmX3N0b3BcfS5GQUlMRUQgOyBcXCIKLSAgICAgICAgICAgIHB1dHMgJG9wICJcdFx0XHRmaSA7IFxcIgotICAgICAgICAgICAgcHV0cyAkb3AgIlx0XHRcdC9iaW4vdG91Y2ggXCQoVlBBVEgpL2Jsb2NrX1wkXCRce2ZmX3N0b3BcfS5ET05FIDsgXFwiCi0gICAgICAgICAgICBwdXRzICRvcCAiXHRcdFx0ZXhpdCAtMSA7IFxcIgotICAgICAgICAgICAgcHV0cyAkb3AgIlx0XHRmaSA7IFxcIgotICAgICAgICAgICAgcHV0cyAkb3AgIlx0ZmkiCi0KLSAgICAgICAgICAgIGlmIHskdmFycyhnZW5lcmF0ZV9mbG93X3N0ZXBzKSAmJiBbaW5mbyBleGlzdHMgdmFycyhmbG93X3N0ZXBzKV19IHsKLSAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhmbG93X3N0ZXBzLGZsYXQpXX0gewotICAgICAgICAgICAgICAgICAgc2V0IGZwMSBbb3BlbiAkdmFycyhzY3JpcHRfZGlyKS9mbG93X2NvbmZpZy50Y2wgd10KLSAgICAgICAgICAgICAgICAgIHNldCBmcDIgW29wZW4gJHZhcnMoc2NyaXB0X2RpcikvZmxvd19zdGVwcy50Y2wgd10KLSAgICAgICAgICAgICAgICAgIHB1dHMgJGZwMSAic2V0X2RiIGZsb3dfZGF0YWJhc2VfZGlyZWN0b3J5ICR2YXJzKGRic19kaXIpIgotICAgICAgICAgICAgICAgICAgcHV0cyAkZnAxICJzZXRfZGIgZmxvd19yZXBvcnRfZGlyZWN0b3J5ICR2YXJzKHJwdF9kaXIpIgotICAgICAgICAgICAgICAgICAgcHV0cyAkZnAxICJzZXRfZGIgZmxvd19sb2dfZGlyZWN0b3J5ICR2YXJzKGxvZ19kaXIpIgotICAgICAgICAgICAgICAgICAgcHV0cyAkZnAyICR2YXJzKGZsb3dfc3RlcHMsZmxhdCkKLSAgICAgICAgICAgICAgICAgIHB1dHMgJGZwMSAiXG5zZXRfZGIgZmxvd19tYWlsX3RvIFtleGVjIHdob2FtaV0iCi0gICAgICAgICAgICAgICAgICBwdXRzICRmcDEgInNldF9kYiBmbG93X21haWxfb25fZXJyb3IgdHJ1ZVxuIgotICAgICAgICAgICAgICAgICAgaWYgeyR2YXJzKHRvcCl9IHsKLSAgICAgICAgICAgICAgICAgICAgIHNldCB2YXJzKGZsb3dfbmFtZSkgdG9wCi0gICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgc2V0IHZhcnMoZmxvd19uYW1lKSBibG9jawotICAgICAgICAgICAgICAgICAgfQotIyAgICAgICAgICAgICAgICAgIHB1dHMgJGZwICJjcmVhdGVfZmxvdyBcXFxuICAgLW5hbWUgJHZhcnMoZmxvd19uYW1lKVxcXG4gICAtdG9vbCAkdmFycyhtYWtlX3Rvb2wpXFxcbiAgIC10b29sX29wdGlvbnMgey1sb2cgJHZhcnMoZmxvd19uYW1lKS5sb2d9XFxcbiAgIFxbbGlzdCBbRkY6OmFkanVzdF9zdGVwc11cXVxuIgotIyAgICAgICAgICAgICAgICAgIHB1dHMgJGhwICJjcmVhdGVfZmxvdyBcXFxuICAgLW5hbWUgJHZhcnMoZmxvd19uYW1lKVxcXG4gICAtdG9vbCAkdmFycyhtYWtlX3Rvb2wpXFxcbiAgIC10b29sX29wdGlvbnMgey1sb2cgJHZhcnMoZmxvd19uYW1lKS5sb2d9XFxcbiAgIFxbbGlzdCAkc3RlcHNcXVxuIgotIyAgICAgICAgICAgICAgICAgIHB1dHMgJGZwICJydW5fZmxvdyAtZmxvdyAkdmFycyhmbG93X25hbWUpIgotICAgICAgICAgICAgICAgICAgaWYge1tmaWxlIGV4aXN0cyAkdmFycyhjd2QpLy5wbHVnaW5zXX0gewotICAgICAgICAgICAgICAgICAgICAgc2V0IGlwIFtvcGVuICR2YXJzKGN3ZCkvLnBsdWdpbnMgcl0KLSAgICAgICAgICAgICAgICAgICAgIHdoaWxlIHtbZ2V0cyAkaXAgbGluZV0+PTB9IHsgCi0gICAgICAgICAgICAgICAgICAgICAgICBwdXRzICRmcDEgJGxpbmUgCi0gICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICBjbG9zZSAkaXAKLSAgICAgICAgICAgICAgICAgICAgIGZpbGUgZGVsZXRlICR2YXJzKGN3ZCkvLnBsdWdpbnMgCi0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICBjbG9zZSAkZnAxCi0gICAgICAgICAgICAgICAgICBjbG9zZSAkZnAyCi0gICAgICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMocGFydGl0aW9uX2xpc3QpXX0gewotICAgICAgICAgICAgICAgICAgICAgaWYgeygkdmFycyhkZXNpZ24pID09IFtsaW5kZXggJHZhcnMocGFydGl0aW9uX2xpc3QpIDBdKSB8fCAkdmFycyh0b3ApfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBzZXQgaHAgW29wZW4gJHZhcnMoc2NyaXB0X2RpcikvLmhpZXJzdGVwcy50Y2wgd10KLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIHskdmFycyh0b3ApfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICBzZXQgdGVtcCBbcmVnc3ViIC1hbGwgImNyZWF0ZV9mbG93X3N0ZXAgLW5hbWUgaW5pdCIgJHZhcnMoZmxvd19zdGVwcyxmbGF0KSAiY3JlYXRlX2Zsb3dfc3RlcCAtbmFtZSB0b3BfaW5pdCJdCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBzZXQgdGVtcDIgW3JlZ3N1YiAtYWxsICJjcmVhdGVfZmxvd19zdGVwIC1uYW1lIGN0cyIgJHRlbXAgImNyZWF0ZV9mbG93X3N0ZXAgLW5hbWUgdG9wX2N0cyJdCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBzZXQgdmFycyhmbG93X3N0ZXBzLGZsYXQpIFtyZWdzdWIgLWFsbCAiY3JlYXRlX2Zsb3dfc3RlcCAtbmFtZSBzaWdub2ZmIiAkdGVtcDIgImNyZWF0ZV9mbG93X3N0ZXAgLW5hbWUgdG9wX3NpZ25vZmYiXQotICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgcHV0cyAkaHAgJHZhcnMoZmxvd19zdGVwcyxmbGF0KQotICAgICAgICAgICAgICAgICAgICAgICAgaWYgeyR2YXJzKHRvcCl9IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldCB0b3Bfc3RlcHMgIiAkc3RlcHMiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JlYWNoIHMgIiBpbml0IHByZWN0cyBjdHMgc2lnbm9mZiIgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0IHRlbXAgW3JlZ3N1YiAiICRzIiAkdG9wX3N0ZXBzICIgdG9wXyRzIl0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldCB0b3Bfc3RlcHMgJHRlbXAgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0jIyAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldCB0ZW1wIFtyZWdzdWIgImluaXQiIFtGRjo6YWRqdXN0X3N0ZXBzXSAidG9wX2luaXQiXQotIyAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldCB0ZW1wIFtyZWdzdWIgImluaXQiICRzdGVwcyAidG9wX2luaXQiXQotIyAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldCB0ZW1wMiBbcmVnc3ViICIgcHJlY3RzICIgJHRlbXAgIiB0b3BfcHJlY3RzICJdCi0jICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0IHRlbXAzIFtyZWdzdWIgIiBjdHMgIiAkdGVtcDIgIiB0b3BfY3RzICJdCi0jICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0IHRvcF9zdGVwcyBbcmVnc3ViICJzaWdub2ZmIiAkdGVtcDMgInRvcF9zaWdub2ZmIl0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1dHMgJGhwICJjcmVhdGVfZmxvdyBcXFxuICAgLW5hbWUgJHZhcnMoZmxvd19uYW1lKVxcXG4gICAtdG9vbCAkdmFycyhtYWtlX3Rvb2wpXFxcbiAgIC10b29sX29wdGlvbnMgey1sb2cgJHZhcnMoZmxvd19uYW1lKS5sb2d9XFxcbiAgIFxbbGlzdCAkdG9wX3N0ZXBzXF1cbiIKLSAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0jICAgICAgICAgICAgICAgICAgICAgICAgICAgcHV0cyAkaHAgImNyZWF0ZV9mbG93IFxcXG4gICAtbmFtZSAkdmFycyhmbG93X25hbWUpXFxcbiAgIC10b29sICR2YXJzKG1ha2VfdG9vbClcXFxuICAgLXRvb2xfb3B0aW9ucyB7LWxvZyAkdmFycyhmbG93X25hbWUpLmxvZ31cXFxuICAgXFtsaXN0IFtGRjo6YWRqdXN0X3N0ZXBzXVxdXG4iCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBwdXRzICRocCAiY3JlYXRlX2Zsb3cgXFxcbiAgIC1uYW1lICR2YXJzKGZsb3dfbmFtZSlcXFxuICAgLXRvb2wgJHZhcnMobWFrZV90b29sKVxcXG4gICAtdG9vbF9vcHRpb25zIHstbG9nICR2YXJzKGZsb3dfbmFtZSkubG9nfVxcXG4gICBcW2xpc3QgJHN0ZXBzXF1cbiIKLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgIGNsb3NlICRocAotICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgdW5zZXQgdmFycyhmbG93X3N0ZXBzKQotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAgfQotICAgICAgICAgInRvcF9kb3duIiB7Ci0gICAgICAgICAgICBwdXRzICRvcCAiVkVSU0lPTj0xNy4xMC1wMDAzXzEiCi0gICAgICAgICAgICBwdXRzICRvcCAiVlBBVEg9Li9tYWtlIgotICAgICAgICAgICAgcHV0cyAkb3AgIlRPT0w9JHZhcnMobWFrZV90b29sKSIKLSAgICAgICAgICAgIHB1dHMgJG9wICJTQ1JJUFRTPSR2YXJzKHNjcmlwdF9kaXIpIgotICAgICAgICAgICAgcHV0cyAkb3AgIkxPRz0kdmFycyhsb2dfZGlyKSIKLSAgICAgICAgICAgIHB1dHMgJG9wICJBUkdTPSR2YXJzKG1ha2VfdG9vbF9hcmdzKSIKLSAgICAgICAgICAgIHB1dHMgJG9wICJQQVJBTExFTD0tajIiCi0gICAgICAgICAgICBwdXRzICRvcCAiU1VCTUlUPVwiXCIiCi0gICAgICAgICAgICBwdXRzICRvcCAiVEFSR0VUPXNpZ25vZmYiCi0gICAgICAgICAgICBwdXRzICRvcCAiRkZfU1RPUD1zaWdub2ZmIgotICAgICAgICAgICAgcHV0cyAkb3AgIlNURVBTID0gW2Zvcm1hdCAidmVyc2lvbiBzZXR1cCAlcyBkb19jbGVhbnVwIiAkc3RlcHNdIgotICAgICAgICAgICAgcHV0cyAkb3AgIiIKLSMgICAgICAgICAgICBwdXRzICRvcCAiVE9QPWAvYmluL2dyZXAgXCJec2V0IHZhcnMoZGVzaWduKVwiICR2YXJzKHNldHVwX3RjbCkgfCAvYmluL2F3ayAnIHsgcHJpbnRmKFwiJXNcXG5cIixcJFwkMykgfSAnYCIKLSAgICAgICAgICAgIHB1dHMgJG9wICJUT1A9JHZhcnMoZGVzaWduKSIKLSAgICAgICAgICAgIHB1dHMgJG9wICIiCi0gICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnModXNlX2ZsZXhtb2RlbHMpXSAmJiAkdmFycyh1c2VfZmxleG1vZGVscyl9IHsKLSAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhmbGV4bW9kZWxfcHJvdG90eXBlKV0gJiYgJHZhcnMoZmxleG1vZGVsX3Byb3RvdHlwZSl9IHsKLSAgICAgICAgICAgICAgICAgIHB1dHMgJG9wICJhbGw6IHNldHVwIG1vZGVsX2dlbiBwcm90b3R5cGUgcGFydGl0aW9uX3BsYWNlIGFzc2lnbl9waW4gcGFydGl0aW9uIGJsb2Nrcy5cJChUQVJHRVQpIHRvcC5cJChUQVJHRVQpIGFzc2VtYmxlIgotICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgIHB1dHMgJG9wICJhbGw6IHNldHVwIG1vZGVsX2dlbiBwYXJ0aXRpb25fcGxhY2UgYXNzaWduX3BpbiBwYXJ0aXRpb24gYmxvY2tzLlwkKFRBUkdFVCkgdG9wLlwkKFRBUkdFVCkgYXNzZW1ibGUiCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgcHV0cyAkb3AgImFsbDogc2V0dXAgcGFydGl0aW9uX3BsYWNlIGFzc2lnbl9waW4gcGFydGl0aW9uIGJsb2Nrcy5cJChUQVJHRVQpIHRvcC5cJChUQVJHRVQpIGFzc2VtYmxlIgotICAgICAgICAgICAgfQotICAgICAgICAgICAgcHV0cyAkb3AgIiIKLSAgICAgICAgICAgIHB1dHMgJG9wICJoZWxwOiIKLSAgICAgICAgICAgIHB1dHMgJG9wICJcdEBlY2hvIFwiPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XCIiCi0gICAgICAgICAgICBwdXRzICRvcCAiXHRAZWNobyBcIiAgICAgICAgICAgXCQoVkVSU0lPTikgIEZvdW5kYXRpb24gRmxvd3NcIiIKLSAgICAgICAgICAgIHB1dHMgJG9wICJcdEBlY2hvIFwiPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XCIiCi0gICAgICAgICAgICBwdXRzICRvcCAiXHRAZWNobyBcIiBNYWtlZmlsZSBUYXJnZXRzXCIiCi0gICAgICAgICAgICBwdXRzICRvcCAiXHRAZWNobyBcIj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVwiIgotICAgICAgICAgICAgcHV0cyAkb3AgIlx0QGVjaG8gXCIgICAgICAgICAgICAgIGFsbCA6IFJ1biBjb21wbGV0ZSBmbG93IChkZWZhdWx0KVwiIgotICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKHVzZV9mbGV4bW9kZWxzKV0gJiYgJHZhcnModXNlX2ZsZXhtb2RlbHMpfSB7Ci0gICAgICAgICAgICAgICBwdXRzICRvcCAiXHRAZWNobyBcIiAgICAgICAgbW9kZWxfZ2VuIDogR2VuZXJhdGUgZmxleG1vZGVsc1wiIgotICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGZsZXhtb2RlbF9wcm90b3R5cGUpXSAmJiAkdmFycyhmbGV4bW9kZWxfcHJvdG90eXBlKX0gewotICAgICAgICAgICAgICAgICAgcHV0cyAkb3AgIlx0QGVjaG8gXCIgICAgICAgIHByb3RvdHlwZSA6IEZsZXhtb2RlbCBwcm90b3R5cGVcIiIKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHB1dHMgJG9wICJcdEBlY2hvIFwiICBwYXJ0aXRpb25fcGxhY2UgOiBJbml0aWFsIHBsYWNlbWVudCAmIGZlZWR0aHJvdWdoXCIiCi0gICAgICAgICAgICBwdXRzICRvcCAiXHRAZWNobyBcIiAgICAgICBhc3NpZ25fcGluIDogUGluIGFzc2lnbm1lbnRcIiIKLSAgICAgICAgICAgIHB1dHMgJG9wICJcdEBlY2hvIFwiICAgICAgICBwYXJ0aXRpb24gOiBQYXJ0aXRpb24gZGVzaWduXCIiCi0gICAgICAgICAgICBwdXRzICRvcCAiXHRAZWNobyBcIiAgYmxvY2tzLjx0YXJnZXQ+IDogSW1wbGVtZW50IGJsb2Nrc1wiIgotICAgICAgICAgICAgcHV0cyAkb3AgIlx0QGVjaG8gXCIgICAgICAgICBhc3NlbWJsZSA6IEFzc2VtYmxlIGRlc2lnblwiIgotICAgICAgICAgICAgcHV0cyAkb3AgIlx0QGVjaG8gXCI9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cIiIKLSAgICAgICAgICAgIHB1dHMgJG9wICJcdEBlY2hvIFwiIE1ha2VmaWxlIE9wdGlvbnNcIiIKLSAgICAgICAgICAgIHB1dHMgJG9wICJcdEBlY2hvIFwiPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XCIiCi0gICAgICAgICAgICBwdXRzICRvcCAiXHRAZWNobyBcIiAgIFZQQVRIICA6IE1ha2UgZGlyZWN0b3J5ICAgICAoZGVmYXVsdCBtYWtlKVwiIgotICAgICAgICAgICAgcHV0cyAkb3AgIlx0QGVjaG8gXCIgIFNVQk1JVCAgOiBMU0YgbGF1bmNoIGNvbW1hbmQgKGRlZmF1bHQgJycpXCIiCi0gICAgICAgICAgICBwdXRzICRvcCAiXHRAZWNobyBcIiBQQVJBTExFTCA6IE51bWJlciBvZiBtYWNoaW5lcyAoZGVmYXVsdCAtajIpXCIiCi0gICAgICAgICAgICBpZiB7JHZhcnMobm92dXMpfSB7Ci0gICAgICAgICAgICAgICBwdXRzICRvcCAiXHRAZWNobyBcIiAgICBUT09MICA6IElOTk9WVVMgZXhlY3V0YWJsZSAoZGVmYXVsdCBpbm5vdnVzKVwiIgotICAgICAgICAgICAgICAgcHV0cyAkb3AgIlx0QGVjaG8gXCIgICAgQVJHUyAgOiBJTk5PVlVTIGFyZ3VtZW50cyAgKGRlZmF1bHQgLW5vd2luIC02NClcIiIKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBwdXRzICRvcCAiXHRAZWNobyBcIiAgICBUT09MICA6IElOTk9WVVMgZXhlY3V0YWJsZSAgICAgKGRlZmF1bHQgaW5ub3Z1cylcIiIKLSAgICAgICAgICAgICAgIHB1dHMgJG9wICJcdEBlY2hvIFwiICAgIEFSR1MgIDogSU5OT1ZVUyBhcmd1bWVudHMgICAgICAoZGVmYXVsdCAtbm93aW4gLTY0KVwiIgotICAgICAgICAgICAgfQotICAgICAgICAgICAgcHV0cyAkb3AgIlx0QGVjaG8gXCIgU0NSSVBUUyAgOiBTY3JpcHQgZGlyZWN0b3J5ICAgKGRlZmF1bHQgJHZhcnMoc2NyaXB0X2RpcikpXCIiCi0gICAgICAgICAgICBwdXRzICRvcCAiXHRAZWNobyBcIiAgICAgTE9HICA6IExvZ2ZpbGUgZGlyZWN0b3J5ICAoZGVmYXVsdCAkdmFycyhsb2dfZGlyKSlcIiIKLSAgICAgICAgICAgIHB1dHMgJG9wICJcdEBlY2hvIFwiPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XCIiCi0gICAgICAgICAgICBwdXRzICRvcCAiIgotIyAgICAgICAgICAgIHB1dHMgJG9wICJmbG93OiAkdmFycyhjb25maWdfZmlsZXMpIgotIyAgICAgICAgICAgIHB1dHMgJG9wICJcdGV4ZWN1dGVfc3RyaW5nIgotIyAgICAgICAgICAgIHB1dHMgJG9wICJcdEAvYmluL3RvdWNoIFwkKFZQQVRIKS9cJEAiCi0gICAgICAgICAgICBwdXRzICRvcCAiYXNzZW1ibGU6IHRvcC5cJChUQVJHRVQpIgotICAgICAgICAgICAgcHV0cyAkb3AgIlx0VlBBVEg9XCQoVlBBVEgpOyBleHBvcnQgVlBBVEg7IFwkKFRPT0wpIFwkKEFSR1MpIC1pbml0IFwkKFNDUklQVFMpL0lOTk9WVVMvcnVuX2Fzc2VtYmxlLnRjbCAtbG9nIFwkKExPRykvYXNzZW1ibGUubG9nIC1vdmVyd3JpdGUiCi0gICAgICAgICAgICBwdXRzICRvcCAiXHQvYmluL3RvdWNoIFwkKFZQQVRIKS9hc3NlbWJsZSIKLSAgICAgICAgICAgIHB1dHMgJG9wICIiCi0gICAgICAgICAgICBwdXRzICRvcCAidG9wLlwkKFRBUkdFVCkgOiBibG9ja3MuXCQoVEFSR0VUKSIKLSAgICAgICAgICAgIHB1dHMgJG9wICJcdGNkICR2YXJzKHBhcnRpdGlvbl9kaXIpL1wkKFRPUCk7IFwkKE1BS0UpIC1mIE1ha2VmaWxlIEZGX1NUT1A9XCQoRkZfU1RPUCkgXCQoVEFSR0VUKSAiCi0gICAgICAgICAgICBwdXRzICRvcCAiXHQvYmluL3RvdWNoIFwkKFZQQVRIKS9cJEAiCi0gICAgICAgICAgICBwdXRzICRvcCAiIgotICAgICAgICAgICAgcHV0cyAkb3AgImJsb2Nrcy5cJChUQVJHRVQpIDogcGFydGl0aW9uIgotICAgICAgICAgICAgcHV0cyAkb3AgIlx0Y2QgJHZhcnMocGFydGl0aW9uX2Rpcik7IFZQQVRIPVwkKFZQQVRIKTsgZXhwb3J0IFZQQVRIOyBcJChNQUtFKSBcJChQQVJBTExFTCkgYmxvY2tzIEZGX1NUT1A9XCQoRkZfU1RPUCkgVEFSR0VUPVwkKFRBUkdFVCkiCi0gICAgICAgICAgICBwdXRzICRvcCAiXHQvYmluL3RvdWNoIFwkKFZQQVRIKS9cJEAiCi0gICAgICAgICAgICBwdXRzICRvcCAiIgotICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKHVzZV9mbGV4bW9kZWxzKV0gJiYgJHZhcnModXNlX2ZsZXhtb2RlbHMpfSB7Ci0gICAgICAgICAgICAgICBwdXRzICRvcCAibW9kZWxfZ2VuIDogc2V0dXAiCi0gICAgICAgICAgICAgICBwdXRzICRvcCAiXHRWUEFUSD1cJChWUEFUSCk7IGV4cG9ydCBWUEFUSDsgXCQoVE9PTCkgXCQoQVJHUykgLWluaXQgXCQoU0NSSVBUUykvSU5OT1ZVUy9ydW5fbW9kZWxfZ2VuLnRjbCAtbG9nIFwkKExPRykvbW9kZWxfZ2VuLmxvZyAtb3ZlcndyaXRlIgotICAgICAgICAgICAgICAgcHV0cyAkb3AgIlx0L2Jpbi90b3VjaCBcJChWUEFUSCkvbW9kZWxfZ2VuIgotICAgICAgICAgICAgICAgcHV0cyAkb3AgIiIKLSAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhmbGV4bW9kZWxfcHJvdG90eXBlKV0gJiYgJHZhcnMoZmxleG1vZGVsX3Byb3RvdHlwZSl9IHsKLSAgICAgICAgICAgICAgICAgIHB1dHMgJG9wICJwcm90b3R5cGUgOiBtb2RlbF9nZW4iCi0gICAgICAgICAgICAgICAgICBwdXRzICRvcCAiXHRWUEFUSD1cJChWUEFUSCk7IGV4cG9ydCBWUEFUSDsgXCQoVE9PTCkgXCQoQVJHUykgLWluaXQgXCQoU0NSSVBUUykvSU5OT1ZVUy9ydW5fcHJvdG90eXBlLnRjbCAtbG9nIFwkKExPRykvcHJvdG90eXBlLmxvZyAtb3ZlcndyaXRlIgotICAgICAgICAgICAgICAgICAgcHV0cyAkb3AgIlx0L2Jpbi90b3VjaCBcJChWUEFUSCkvcHJvdG90eXBlIgotICAgICAgICAgICAgICAgICAgcHV0cyAkb3AgIiIKLSAgICAgICAgICAgICAgICAgIHB1dHMgJG9wICJwYXJ0aXRpb25fcGxhY2UgOiBwcm90b3R5cGUiCi0gICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgcHV0cyAkb3AgInBhcnRpdGlvbl9wbGFjZSA6IG1vZGVsX2dlbiIKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBwdXRzICRvcCAicGFydGl0aW9uX3BsYWNlIDogIHNldHVwIgotICAgICAgICAgICAgfQotICAgICAgICAgICAgcHV0cyAkb3AgIlx0VlBBVEg9XCQoVlBBVEgpOyBleHBvcnQgVlBBVEg7IFwkKFRPT0wpIFwkKEFSR1MpIC1pbml0IFwkKFNDUklQVFMpL0lOTk9WVVMvcnVuX3BhcnRpdGlvbl9wbGFjZS50Y2wgLWxvZyBcJChMT0cpL3BhcnRpdGlvbl9wbGFjZS5sb2cgLW92ZXJ3cml0ZSIKLSAgICAgICAgICAgIHB1dHMgJG9wICJcdC9iaW4vdG91Y2ggXCQoVlBBVEgpL3BhcnRpdGlvbl9wbGFjZSIKLSAgICAgICAgICAgIHB1dHMgJG9wICIiCi0gICAgICAgICAgICBwdXRzICRvcCAiYXNzaWduX3BpbiA6ICBwYXJ0aXRpb25fcGxhY2UiCi0gICAgICAgICAgICBwdXRzICRvcCAiXHRWUEFUSD1cJChWUEFUSCk7IGV4cG9ydCBWUEFUSDsgXCQoVE9PTCkgXCQoQVJHUykgLWluaXQgXCQoU0NSSVBUUykvSU5OT1ZVUy9ydW5fYXNzaWduX3Bpbi50Y2wgLWxvZyBcJChMT0cpL2Fzc2lnbl9waW4ubG9nIC1vdmVyd3JpdGUiCi0gICAgICAgICAgICBwdXRzICRvcCAiXHQvYmluL3RvdWNoIFwkKFZQQVRIKS9hc3NpZ25fcGluIgotICAgICAgICAgICAgcHV0cyAkb3AgIiIKLSAgICAgICAgICAgIHB1dHMgJG9wICJwYXJ0aXRpb24gOiBhc3NpZ25fcGluIgotICAgICAgICAgICAgcHV0cyAkb3AgIlx0VlBBVEg9XCQoVlBBVEgpOyBleHBvcnQgVlBBVEg7IFwkKFRPT0wpIFwkKEFSR1MpIC1pbml0IFwkKFNDUklQVFMpL0lOTk9WVVMvcnVuX3BhcnRpdGlvbi50Y2wgLWxvZyBcJChMT0cpL3BhcnRpdGlvbi5sb2cgLW92ZXJ3cml0ZSIKLSAgICAgICAgICAgIHB1dHMgJG9wICJcdC9iaW4vdG91Y2ggXCQoVlBBVEgpL3BhcnRpdGlvbiIKLSAgICAgICAgICAgIHB1dHMgJG9wICIiCi0gICAgICAgICAgICBwdXRzICRvcCAic2luZ2xlOiIKLSAgICAgICAgICAgIHB1dHMgJG9wICJcdEBcJChNQUtFKSBUQVJHRVQ9c2luZ2xlIEZGX1NUT1A9XCQoRkZfU1RPUCkiCi0gICAgICAgICAgICBwdXRzICRvcCAiIgotICAgICAgICAgICAgcHV0cyAkb3AgImRlYnVnXyU6IgotICAgICAgICAgICAgcHV0cyAkb3AgIlx0ZXhwb3J0IFNURVA9XCQqIDsgVlBBVEg9XCQoVlBBVEgpOyBleHBvcnQgVlBBVEg7IFwkKFRPT0wpIC1pbml0IFwkKFNDUklQVFMpL0lOTk9WVVMvcnVuX2RlYnVnLnRjbCAtbG9nIFwkKExPRykvXCRALmxvZyAtd2luIFwkKEFSR1M6LW5vd2luPSkiCi0gICAgICAgICAgICBwdXRzICRvcCAiIgotICAgICAgICAgICAgcHV0cyAkb3AgInJlc2V0OiIKLSAgICAgICAgICAgIHB1dHMgJG9wICJcdEAvYmluL3JtIC1mIFwkKFZQQVRIKS8qICR2YXJzKHBhcnRpdGlvbl9kaXIpLyovXCQoVlBBVEgpLyogJHZhcnMocGFydGl0aW9uX2RpcikvKi9cJChWUEFUSCkvLlJVTk5JTkciCi0gICAgICAgICAgICBwdXRzICRvcCAiIgotICAgICAgICAgICAgcHV0cyAkb3AgInNldHVwOiIKLSAgICAgICAgICAgIHB1dHMgJG9wICIjXHQvYmluL3JtIC1mciAkdmFycyhwYXJ0aXRpb25fZGlyKSBcJChWUEFUSCkgTE9HIgotICAgICAgICAgICAgcHV0cyAkb3AgIlx0L2Jpbi9ta2RpciAtcCAgXCQoVlBBVEgpIExPRyIKLSAgICAgICAgICAgIHB1dHMgJG9wICJcdC9iaW4vdG91Y2ggXCQoVlBBVEgpL3NldHVwIgotCi0gICAgICAgICAgICBpZiB7JHZhcnMoZ2VuZXJhdGVfZmxvd19zdGVwcykgJiYgW2luZm8gZXhpc3RzIHZhcnMoZmxvd19zdGVwcyldfSB7Ci0gICAgICAgICAgICAgICBzZXQgZnAgW29wZW4gcnVuX2Zsb3cudGNsIHddCi0jICAgICAgICAgICAgICAgcHV0cyAkZnAgInNvdXJjZSAkdmFycyhzY3JpcHRfZGlyKS9mbG93X3N0ZXBzLnRjbCIKLSAgICAgICAgICAgICAgIHNldCBmcDEgW29wZW4gJHZhcnMoc2NyaXB0X2RpcikvZmxvd19jb25maWcudGNsIHddCi0gICAgICAgICAgICAgICBzZXQgZnAyIFtvcGVuICR2YXJzKHNjcmlwdF9kaXIpL2Zsb3dfc3RlcHMudGNsIHddCi0jICAgICAgICAgICAgICAgcHV0cyAkZnAxICJzZXRfZGIgZmxvd19zdGVwOmFzc2VtYmxlIC5za2lwX2RiIHRydWUiCi0jICAgICAgICAgICAgICAgcHV0cyAkZnAxICJzZXRfZGIgZmxvd19zdGVwOnBhcnRpdGlvbiAuc2tpcF9kYiB0cnVlIgotICAgICAgICAgICAgICAgcHV0cyAkZnAxICJzZXRfZGIgZmxvd19kYXRhYmFzZV9kaXJlY3RvcnkgJHZhcnMoZGJzX2RpcikiCi0gICAgICAgICAgICAgICBwdXRzICRmcDEgInNldF9kYiBmbG93X3JlcG9ydF9kaXJlY3RvcnkgJHZhcnMocnB0X2RpcikiCi0gICAgICAgICAgICAgICBwdXRzICRmcDEgInNldF9kYiBmbG93X2xvZ19kaXJlY3RvcnkgJHZhcnMobG9nX2RpcikiCi0gICAgICAgICAgICAgICBwdXRzICRmcDEgIlxuc2V0X2RiIGZsb3dfbWFpbF90byBbZXhlYyB3aG9hbWldIgotICAgICAgICAgICAgICAgcHV0cyAkZnAxICJzZXRfZGIgZmxvd19tYWlsX29uX2Vycm9yIHRydWVcbiIKLSAgICAgICAgICAgICAgIGZvcmVhY2ggcCBbY29uY2F0ICR2YXJzKHBhcnRpdGlvbl9saXN0KSAkdmFycyhkZXNpZ24pXSB7Ci0jICAgICAgICAgICAgICAgICAgc2V0IHZhcnMoZmxvd19uYW1lKSAkcAotICAgICAgICAgICAgICAgICAgaWYge1tmaWxlIGV4aXN0cyAkdmFycyhwYXJ0aXRpb25fZGlyKS8kcC8kdmFycyhzY3JpcHRfZGlyKS8uaGllcnN0ZXBzLnRjbF19IHsKLSAgICAgICAgICAgICAgICAgICAgIHB1dHMgJGZwMiAiIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICRwIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIiAKLSAgICAgICAgICAgICAgICAgICAgIHNldCBpcCBbb3BlbiAkdmFycyhwYXJ0aXRpb25fZGlyKS8kcC8kdmFycyhzY3JpcHRfZGlyKS8uaGllcnN0ZXBzLnRjbCByXQotICAgICAgICAgICAgICAgICAgICAgaWYgeyRwICE9ICR2YXJzKGRlc2lnbil9IHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHdoaWxlIHtbZ2V0cyAkaXAgbGluZV0+PTB9IHsgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBwdXRzICRmcDIgJGxpbmUgCi0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICAgd2hpbGUge1tnZXRzICRpcCBsaW5lXT49MH0gewotICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYge1tyZWdleHAgImNyZWF0ZV9mbG93X3N0ZXAgLW5hbWUgdG9wXyIgJGxpbmVdfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdXRzICRmcDIgJGxpbmUgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aGlsZSB7W2dldHMgJGlwIGxpbmVdPj0wfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiB7W3JlZ2V4cCAiXlx9IiAkbGluZV19IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1dHMgJGZwMiAkbGluZSAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHV0cyAkZnAyICRsaW5lIAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgaWYge1tmaWxlIGV4aXN0cyAkdmFycyhwYXJ0aXRpb25fZGlyKS8kcC9ydW5fZmxvdy50Y2xdfSB7Ci0gICAgICAgICAgICAgICAgICAgICBzZXQgaXAgW29wZW4gJHZhcnMocGFydGl0aW9uX2RpcikvJHAvcnVuX2Zsb3cudGNsIHJdCi0gICAgICAgICAgICAgICAgICAgICB3aGlsZSB7W2dldHMgJGlwIGxpbmVdPj0wfSB7IAotICAgICAgICAgICAgICAgICAgICAgICAgcHV0cyAkZnAgJGxpbmUgCi0gICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMocGFydGl0aW9uX2Rpcl9wYXNzMildICYmIFtmaWxlIGV4aXN0cyAkdmFycyhwYXJ0aXRpb25fZGlyX3Bhc3MyKS8kcC9ydW5fZmxvdy50Y2xdfSB7Ci0gICAgICAgICAgICAgICAgICAgICBzZXQgaXAgW29wZW4gJHZhcnMocGFydGl0aW9uX2Rpcl9wYXNzMikvJHAvcnVuX2Zsb3cudGNsIHJdCi0gICAgICAgICAgICAgICAgICAgICB3aGlsZSB7W2dldHMgJGlwIGxpbmVdPj0wfSB7IAotICAgICAgICAgICAgICAgICAgICAgICAgcHV0cyAkZnAgJGxpbmUgCi0gICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICBwdXRzICRmcDIgIiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBISUVSIFNURVBTIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIiAKLSAgICAgICAgICAgICAgIHB1dHMgJGZwMiAkdmFycyhmbG93X3N0ZXBzLGhpZXIpCi0gICAgICAgICAgICAgICBzZXQgYXN0ZXBzIFtGRjo6YWRqdXN0X3N0ZXBzXQotIyAgICAgICAgICAgICAgIHNldCB2YXJzKGZsb3dfbmFtZSkgJHZhcnMoZGVzaWduKQotIyAgICAgICAgICAgICAgIHB1dHMgJGZwICJjcmVhdGVfZmxvdyBcXFxuICAgLW5hbWUgJHZhcnMoZmxvd19uYW1lKVxcXG4gICAtdG9vbCAkdmFycyhtYWtlX3Rvb2wpXFxcbiAgIC10b29sX29wdGlvbnMgey1sb2cgJHZhcnMoZmxvd19uYW1lKS5sb2d9XFxcbiAgIFxbbGlzdCAkYXN0ZXBzXF1cbiIKLSAgICAgICAgICAgICAgIHNldCBwc3RlcHMgW2xpc3RdCi0gICAgICAgICAgICAgICBzZXQgYnN0ZXBzIFtsaXN0XQotICAgICAgICAgICAgICAgZm9yZWFjaCBzICRhc3RlcHMgewotICAgICAgICAgICAgICAgICAgaWYgeyhbbHNlYXJjaCAkdmFycyhmc3RlcHMpICRzXSAhPSAtMSkgJiYgKCRzICE9ICJhc3NlbWJsZSIpfSB7Ci0gICAgICAgICAgICAgICAgICAgICBsYXBwZW5kIGJzdGVwcyAkcwotICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgIGlmIHskcyAhPSAiYXNzZW1ibGUifSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBsYXBwZW5kIHBzdGVwcyAkcwotICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgc2V0IHZhcnMoZmxvd19uYW1lKSBmaW5hbF9hc3NlbWJseQotICAgICAgICAgICAgICAgcHV0cyAkZnAgImNyZWF0ZV9mbG93IFxcXG4gICAtbmFtZSAkdmFycyhmbG93X25hbWUpXFxcbiAgIC10b29sICR2YXJzKG1ha2VfdG9vbClcXFxuICAgLXRvb2xfb3B0aW9ucyB7LWxvZyAkdmFycyhmbG93X25hbWUpLmxvZ31cXFxuICAgXFtsaXN0IGFzc2VtYmxlXF1cbiIKLSAgICAgICAgICAgICAgIHNldCB2YXJzKGZsb3dfbmFtZSkgcGFydGl0aW9uaW5nCi0gICAgICAgICAgICAgICBwdXRzICRmcCAiY3JlYXRlX2Zsb3cgXFxcbiAgIC1uYW1lICR2YXJzKGZsb3dfbmFtZSlcXFxuICAgLXRvb2wgJHZhcnMobWFrZV90b29sKVxcXG4gICAtdG9vbF9vcHRpb25zIHstbG9nICR2YXJzKGZsb3dfbmFtZSkubG9nfVxcXG4gICBcW2xpc3QgJHBzdGVwc1xdXG4iCi0gICAgICAgICAgICAgICB1bnNldCB2YXJzKGZsb3dfc3RlcHMpCi0jICAgICAgICAgICAgICAgc2V0IHZhcnMoZmxvd19uYW1lKSAkdmFycyhkZXNpZ24pCi0jICAgICAgICAgICAgICAgcHV0cyAkZnAgImNyZWF0ZV9mbG93IFxcXG4gICAtbmFtZSAkdmFycyhmbG93X25hbWUpXFxcbiAgIC10b29sICR2YXJzKG1ha2VfdG9vbClcXFxuICAgLXRvb2xfb3B0aW9ucyB7LWxvZyAkdmFycyhmbG93X25hbWUpLmxvZ31cXFxuICAgXFtsaXN0ICRic3RlcHNcXVxuIgotICAgICAgICAgICAgICAgaWYge1tmaWxlIGV4aXN0cyAkdmFycyhjd2QpLy5wbHVnaW5zXX0gewotICAgICAgICAgICAgICAgICBzZXQgaXAgW29wZW4gJHZhcnMoY3dkKS8ucGx1Z2lucyByXQotICAgICAgICAgICAgICAgICB3aGlsZSB7W2dldHMgJGlwIGxpbmVdPj0wfSB7IAotICAgICAgICAgICAgICAgICAgICBwdXRzICRmcDEgJGxpbmUgCi0gICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgY2xvc2UgJGlwCi0gICAgICAgICAgICAgICAgIGZpbGUgZGVsZXRlICR2YXJzKGN3ZCkvLnBsdWdpbnMgCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICBpZiB7IVtpbmZvIGV4aXN0cyB2YXJzKHJ1bl9mbG93KV19IHsKLSAgICAgICAgICAgICAgICAgIHB1dHMgJGZwICJzb3VyY2UgJHZhcnMoc2NyaXB0X2RpcikvZmxvd19jb25maWcudGNsIgotICAgICAgICAgICAgICAgICAgc2V0IHZhcnMocnVuX2Zsb3cpIERPTkUKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIGNsb3NlICRmcAotICAgICAgICAgICAgICAgY2xvc2UgJGZwMQotICAgICAgICAgICAgICAgY2xvc2UgJGZwMgotICAgICAgICAgICAgfQotICAgICAgICAgfQotICAgICAgICAgIjJwYXNzIiB7Ci0gICAgICAgICAgICBzZXQgb3AxIFtvcGVuIE1ha2VmaWxlLnBhc3MxIHddIAotICAgICAgICAgICAgcHV0cyAkb3AxICJWRVJTSU9OPTE3LjEwLXAwMDNfMSIKLSAgICAgICAgICAgIHB1dHMgJG9wMSAiVlBBVEg9Li9tYWtlIgotICAgICAgICAgICAgcHV0cyAkb3AxICJUT09MPSR2YXJzKG1ha2VfdG9vbCkiCi0gICAgICAgICAgICBwdXRzICRvcDEgIlNDUklQVFM9JHZhcnMoc2NyaXB0X2RpcikiCi0gICAgICAgICAgICBwdXRzICRvcDEgIkxPRz0kdmFycyhsb2dfZGlyKSIKLSAgICAgICAgICAgIHB1dHMgJG9wMSAiQVJHUz0kdmFycyhtYWtlX3Rvb2xfYXJncykiCi0gICAgICAgICAgICBwdXRzICRvcDEgIlBBUkFMTEVMPS1qMiIKLSAgICAgICAgICAgIHB1dHMgJG9wMSAiU1VCTUlUPVwiXCIiCi0gICAgICAgICAgICBwdXRzICRvcDEgIlRBUkdFVD1jdHMiCi0gICAgICAgICAgICBwdXRzICRvcDEgIkZGX1NUT1A9Y3RzIgotICAgICAgICAgICAgcHV0cyAkb3AxICJTVEVQUyA9IFtmb3JtYXQgInZlcnNpb24gc2V0dXAgJXMgZG9fY2xlYW51cCIgJHN0ZXBzXSIKLSAgICAgICAgICAgIHB1dHMgJG9wMSAiIgotIyAgICAgICAgICAgIHB1dHMgJG9wMSAiVE9QPWAvYmluL2dyZXAgXCJec2V0IHZhcnMoZGVzaWduKVwiICR2YXJzKHNldHVwX3RjbCkgfCAvYmluL2F3ayAnIHsgcHJpbnRmKFwiJXNcXG5cIixcJFwkMykgfSAnYCIKLSAgICAgICAgICAgIHB1dHMgJG9wMSAiVE9QPSR2YXJzKGRlc2lnbikiCi0gICAgICAgICAgICBwdXRzICRvcDEgIiIKLSAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyh1c2VfZmxleG1vZGVscyldICYmICR2YXJzKHVzZV9mbGV4bW9kZWxzKX0gewotICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGZsZXhtb2RlbF9wcm90b3R5cGUpXSAmJiAkdmFycyhmbGV4bW9kZWxfcHJvdG90eXBlKX0gewotICAgICAgICAgICAgICAgICAgcHV0cyAkb3AxICJhbGw6IHNldHVwIHByb3RvdHlwZSBtb2RlbF9nZW4gcGFydGl0aW9uX3BsYWNlIGFzc2lnbl9waW4gcGFydGl0aW9uIGJsb2Nrcy5cJChUQVJHRVQpIHRvcC5cJChUQVJHRVQpIgotICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgIHB1dHMgJG9wMSAiYWxsOiBzZXR1cCBtb2RlbF9nZW4gcGFydGl0aW9uX3BsYWNlIGFzc2lnbl9waW4gcGFydGl0aW9uIGJsb2Nrcy5cJChUQVJHRVQpIHRvcC5cJChUQVJHRVQpIgotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIHB1dHMgJG9wMSAiYWxsOiBzZXR1cCBwYXJ0aXRpb25fcGxhY2UgYXNzaWduX3BpbiBwYXJ0aXRpb24gYmxvY2tzLlwkKFRBUkdFVCkgdG9wLlwkKFRBUkdFVCkiCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBwdXRzICRvcDEgIlx0QGVjaG8gXCIgTWFrZWZpbGUgVGFyZ2V0c1wiIgotICAgICAgICAgICAgcHV0cyAkb3AxICJcdEBlY2hvIFwiPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XCIiCi0gICAgICAgICAgICBwdXRzICRvcDEgIlx0QGVjaG8gXCIgICAgICAgICAgICAgIGFsbCA6IFJ1biBjb21wbGV0ZSBmbG93IChkZWZhdWx0KVwiIgotICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKHVzZV9mbGV4bW9kZWxzKV0gJiYgJHZhcnModXNlX2ZsZXhtb2RlbHMpfSB7Ci0gICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoZmxleG1vZGVsX3Byb3RvdHlwZSldICYmICR2YXJzKGZsZXhtb2RlbF9wcm90b3R5cGUpfSB7Ci0gICAgICAgICAgICAgICAgICBwdXRzICRvcCAiXHRAZWNobyBcIiAgICAgICAgcHJvdG90eXBlIDogRmxleG1vZGVsIHByb3RvdHlwZVwiIgotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgcHV0cyAkb3AgIlx0QGVjaG8gXCIgICAgICAgIG1vZGVsX2dlbiA6IEdlbmVyYXRlIGZsZXhtb2RlbHNcIiIKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHB1dHMgJG9wMSAiXHRAZWNobyBcIiAgcGFydGl0aW9uX3BsYWNlIDogSW5pdGlhbCBwbGFjZW1lbnQgJiBmZWVkdGhyb3VnaFwiIgotICAgICAgICAgICAgcHV0cyAkb3AxICJcdEBlY2hvIFwiICAgICAgIGFzc2lnbl9waW4gOiBQaW4gYXNzaWdubWVudFwiIgotICAgICAgICAgICAgcHV0cyAkb3AxICJcdEBlY2hvIFwiICAgICAgICBwYXJ0aXRpb24gOiBQYXJ0aXRpb24gZGVzaWduXCIiCi0gICAgICAgICAgICBwdXRzICRvcDEgIlx0QGVjaG8gXCIgIGJsb2Nrcy48dGFyZ2V0PiA6IEltcGxlbWVudCBibG9ja3NcIiIKLSAgICAgICAgICAgIGlmIHskdmFycyhlbmFibGVfZmxleGlsbSl9IHsKLSAgICAgICAgICAgICAgIHB1dHMgJG9wMSAiXHRAZWNobyBcIiAgICAgICAgICBmbGV4aWxtIDogUHJlQ1RTIERMTSBmbG93XCIiCi0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgcHV0cyAkb3AxICJcdEBlY2hvIFwiICAgICAgcmVidWRnZXQgOiBSZWJ1ZGdldCBjb25zdHJhaW50c1wiIgotICAgICAgICAgICAgfQotICAgICAgICAgICAgcHV0cyAkb3AxICJcdEBlY2hvIFwiPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XCIiCi0gICAgICAgICAgICBwdXRzICRvcDEgIlx0QGVjaG8gXCIgTWFrZWZpbGUgT3B0aW9uc1wiIgotICAgICAgICAgICAgcHV0cyAkb3AxICJcdEBlY2hvIFwiPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XCIiCi0gICAgICAgICAgICBwdXRzICRvcDEgIlx0QGVjaG8gXCIgICBWUEFUSCAgOiBNYWtlIGRpcmVjdG9yeSAgICAgKGRlZmF1bHQgbWFrZSlcIiIKLSAgICAgICAgICAgIHB1dHMgJG9wMSAiXHRAZWNobyBcIiAgU1VCTUlUICA6IExTRiBsYXVuY2ggY29tbWFuZCAoZGVmYXVsdCAnJylcIiIKLSAgICAgICAgICAgIHB1dHMgJG9wMSAiXHRAZWNobyBcIiBQQVJBTExFTCA6IE51bWJlciBvZiBtYWNoaW5lcyAoZGVmYXVsdCAtajIpXCIiCi0gICAgICAgICAgICBpZiB7JHZhcnMobm92dXMpfSB7Ci0gICAgICAgICAgICAgICBwdXRzICRvcDEgIlx0QGVjaG8gXCIgICAgVE9PTCAgOiBJTk5PVlVTIGV4ZWN1dGFibGUgKGRlZmF1bHQgaW5ub3Z1cylcIiIKLSAgICAgICAgICAgICAgIHB1dHMgJG9wMSAiXHRAZWNobyBcIiAgICBBUkdTICA6IElOTk9WVVMgYXJndW1lbnRzICAoZGVmYXVsdCAtbm92dXNfdWkgLTY0KVwiIgotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIHB1dHMgJG9wMSAiXHRAZWNobyBcIiAgICBUT09MICA6IElOTk9WVVMgZXhlY3V0YWJsZSAgICAgKGRlZmF1bHQgaW5ub3Z1cylcIiIKLSAgICAgICAgICAgICAgIHB1dHMgJG9wMSAiXHRAZWNobyBcIiAgICBBUkdTICA6IElOTk9WVVMgYXJndW1lbnRzICAgICAgKGRlZmF1bHQgLW5vd2luIC02NClcIiIKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHB1dHMgJG9wMSAiXHRAZWNobyBcIiBTQ1JJUFRTICA6IFNjcmlwdCBkaXJlY3RvcnkgICAoZGVmYXVsdCAkdmFycyhzY3JpcHRfZGlyKSlcIiIKLSAgICAgICAgICAgIHB1dHMgJG9wMSAiXHRAZWNobyBcIiAgICAgTE9HICA6IExvZ2ZpbGUgZGlyZWN0b3J5ICAoZGVmYXVsdCAkdmFycyhsb2dfZGlyKSlcIiIKLSAgICAgICAgICAgIHB1dHMgJG9wMSAiXHRAZWNobyBcIj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVwiIgotICAgICAgICAgICAgcHV0cyAkb3AxICIiCi0jICAgICAgICAgICAgcHV0cyAkb3AxICJmbG93OiAkdmFycyhjb25maWdfZmlsZXMpIgotIyAgICAgICAgICAgIHB1dHMgJG9wMSAiXHRleGVjdXRlX3N0cmluZyIKLSMgICAgICAgICAgICBwdXRzICRvcDEgIlx0QC9iaW4vdG91Y2ggXCQoVlBBVEgpL1wkQCIKLSAgICAgICAgICAgIHB1dHMgJG9wMSAidG9wLlwkKFRBUkdFVCkgOiBibG9ja3MuXCQoVEFSR0VUKSIKLSAgICAgICAgICAgIHB1dHMgJG9wMSAiXHRjZCAkdmFycyhwYXJ0aXRpb25fZGlyKS9cJChUT1ApOyBcJChNQUtFKSAtZiBNYWtlZmlsZSBGRl9TVE9QPVwkKEZGX1NUT1ApIFwkKFRBUkdFVCkgIgotICAgICAgICAgICAgcHV0cyAkb3AxICJcdC9iaW4vdG91Y2ggXCQoVlBBVEgpL1wkQCIKLSAgICAgICAgICAgIHB1dHMgJG9wMSAiIgotICAgICAgICAgICAgcHV0cyAkb3AxICJibG9ja3MuXCQoVEFSR0VUKSA6IHBhcnRpdGlvbiIKLSAgICAgICAgICAgIHB1dHMgJG9wMSAiXHRjZCAkdmFycyhwYXJ0aXRpb25fZGlyKTsgVlBBVEg9XCQoVlBBVEgpOyBleHBvcnQgVlBBVEg7IFwkKE1BS0UpIFwkKFBBUkFMTEVMKSBibG9ja3MgRkZfU1RPUD1cJChGRl9TVE9QKSBUQVJHRVQ9XCQoVEFSR0VUKSIKLSAgICAgICAgICAgIHB1dHMgJG9wMSAiXHQvYmluL3RvdWNoIFwkKFZQQVRIKS9cJEAiCi0gICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnModXNlX2ZsZXhtb2RlbHMpXSAmJiAkdmFycyh1c2VfZmxleG1vZGVscyl9IHsKLSAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhmbGV4bW9kZWxfcHJvdG90eXBlKV0gJiYgJHZhcnMoZmxleG1vZGVsX3Byb3RvdHlwZSl9IHsKLSAgICAgICAgICAgICAgICAgIHB1dHMgJG9wMSAicHJvdG90eXBlIDogc2V0dXAiCi0gICAgICAgICAgICAgICAgICBwdXRzICRvcDEgIlx0VlBBVEg9XCQoVlBBVEgpOyBleHBvcnQgVlBBVEg7IFwkKFRPT0wpIFwkKEFSR1MpIC1pbml0IFwkKFNDUklQVFMpL0lOTk9WVVMvcnVuX3Byb3RvdHlwZS50Y2wgLWxvZyBcJChMT0cpL3Byb3RvdHlwZS5sb2cgLW92ZXJ3cml0ZSIKLSAgICAgICAgICAgICAgICAgIHB1dHMgJG9wMSAiXHQvYmluL3RvdWNoIFwkKFZQQVRIKS9wcm90b3R5cGUiCi0gICAgICAgICAgICAgICAgICBwdXRzICRvcDEgIiIKLSAgICAgICAgICAgICAgICAgIHB1dHMgJG9wMSAibW9kZWxfZ2VuIDogcHJvdG90eXBlIgotICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgIHB1dHMgJG9wMSAibW9kZWxfZ2VuIDogc2V0dXAiCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICBwdXRzICRvcDEgIlx0VlBBVEg9XCQoVlBBVEgpOyBleHBvcnQgVlBBVEg7IFwkKFRPT0wpIFwkKEFSR1MpIC1pbml0IFwkKFNDUklQVFMpL0lOTk9WVVMvcnVuX21vZGVsX2dlbi50Y2wgLWxvZyBcJChMT0cpL21vZGVsX2dlbi5sb2cgLW92ZXJ3cml0ZSIKLSAgICAgICAgICAgICAgIHB1dHMgJG9wMSAiXHQvYmluL3RvdWNoIFwkKFZQQVRIKS9tb2RlbF9nZW4iCi0gICAgICAgICAgICAgICBwdXRzICRvcDEgIiIKLSAgICAgICAgICAgICAgIHB1dHMgJG9wMSAicGFydGl0aW9uX3BsYWNlIDogbW9kZWxfZ2VuIgotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIHB1dHMgJG9wMSAicGFydGl0aW9uX3BsYWNlIDogIHNldHVwIgotICAgICAgICAgICAgfQotICAgICAgICAgICAgcHV0cyAkb3AxICJcdFZQQVRIPVwkKFZQQVRIKTsgZXhwb3J0IFZQQVRIOyBcJChUT09MKSBcJChBUkdTKSAtaW5pdCBcJChTQ1JJUFRTKS9JTk5PVlVTL3J1bl9wYXJ0aXRpb25fcGxhY2UudGNsIC1sb2cgXCQoTE9HKS9wYXJ0aXRpb25fcGxhY2UubG9nIC1vdmVyd3JpdGUiCi0gICAgICAgICAgICBwdXRzICRvcDEgIlx0L2Jpbi90b3VjaCBcJChWUEFUSCkvcGFydGl0aW9uX3BsYWNlIgotICAgICAgICAgICAgcHV0cyAkb3AxICIiCi0gICAgICAgICAgICBwdXRzICRvcDEgImFzc2lnbl9waW4gOiAgcGFydGl0aW9uX3BsYWNlIgotICAgICAgICAgICAgcHV0cyAkb3AxICJcdFZQQVRIPVwkKFZQQVRIKTsgZXhwb3J0IFZQQVRIOyBcJChUT09MKSBcJChBUkdTKSAtaW5pdCBcJChTQ1JJUFRTKS9JTk5PVlVTL3J1bl9hc3NpZ25fcGluLnRjbCAtbG9nIFwkKExPRykvYXNzaWduX3Bpbi5sb2cgLW92ZXJ3cml0ZSIKLSAgICAgICAgICAgIHB1dHMgJG9wMSAiXHQvYmluL3RvdWNoIFwkKFZQQVRIKS9hc3NpZ25fcGluIgotICAgICAgICAgICAgcHV0cyAkb3AxICIiCi0gICAgICAgICAgICBwdXRzICRvcDEgInBhcnRpdGlvbiA6ICBhc3NpZ25fcGluIgotICAgICAgICAgICAgcHV0cyAkb3AxICJcdFZQQVRIPVwkKFZQQVRIKTsgZXhwb3J0IFZQQVRIOyBcJChUT09MKSBcJChBUkdTKSAtaW5pdCBcJChTQ1JJUFRTKS9JTk5PVlVTL3J1bl9wYXJ0aXRpb24udGNsIC1sb2cgXCQoTE9HKS9wYXJ0aXRpb24ubG9nIC1vdmVyd3JpdGUiCi0gICAgICAgICAgICBwdXRzICRvcDEgIlx0L2Jpbi90b3VjaCBcJChWUEFUSCkvcGFydGl0aW9uIgotICAgICAgICAgICAgcHV0cyAkb3AxICIiCi0gICAgICAgICAgICBwdXRzICRvcDEgInNpbmdsZToiCi0gICAgICAgICAgICBwdXRzICRvcDEgIlx0QFwkKE1BS0UpIFRBUkdFVD1zaW5nbGUgRkZfU1RPUD1cJChGRl9TVE9QKSIKLSAgICAgICAgICAgIHB1dHMgJG9wMSAiIgotICAgICAgICAgICAgcHV0cyAkb3AxICJkZWJ1Z18lOiIKLSAgICAgICAgICAgIHB1dHMgJG9wMSAiXHRleHBvcnQgU1RFUD1cJCogOyBWUEFUSD1cJChWUEFUSCk7IGV4cG9ydCBWUEFUSDsgXCQoVE9PTCkgLWluaXQgXCQoU0NSSVBUUykvSU5OT1ZVUy9ydW5fZGVidWcudGNsIC1sb2cgXCQoTE9HKS9cJEAubG9nIC13aW4gXCQoQVJHUzotbm93aW49KSIKLSAgICAgICAgICAgIHB1dHMgJG9wMSAiIgotICAgICAgICAgICAgcHV0cyAkb3AxICJyZXNldDoiCi0gICAgICAgICAgICBwdXRzICRvcDEgIlx0QC9iaW4vcm0gLWYgXCQoVlBBVEgpLyogJHZhcnMocGFydGl0aW9uX2RpcikvKi9cJChWUEFUSCkvKiAkdmFycyhwYXJ0aXRpb25fZGlyKS8qL1wkKFZQQVRIKS8uUlVOTklORyIKLSAgICAgICAgICAgIHB1dHMgJG9wMSAiIgotICAgICAgICAgICAgcHV0cyAkb3AxICJzZXR1cDoiCi0gICAgICAgICAgICBwdXRzICRvcDEgIiNcdC9iaW4vcm0gLWZyICR2YXJzKHBhcnRpdGlvbl9kaXIpIFwkKFZQQVRIKSBMT0ciCi0gICAgICAgICAgICBwdXRzICRvcDEgIlx0L2Jpbi9ta2RpciAtcCAgXCQoVlBBVEgpIExPRyIKLSAgICAgICAgICAgIHB1dHMgJG9wMSAiXHQvYmluL3RvdWNoIFwkKFZQQVRIKS9zZXR1cCIKLSAgICAgICAgICAgIGNsb3NlICRvcDEKLSAgICAgICAgICAgIHNldCBvcDIgW29wZW4gTWFrZWZpbGUucGFzczIgd10KLSAgICAgICAgICAgIHB1dHMgJG9wMiAiVkVSU0lPTj0xNy4xMC1wMDAzXzEiCi0gICAgICAgICAgICBwdXRzICRvcDIgIlZQQVRIPS4vbWFrZSIKLSAgICAgICAgICAgIHB1dHMgJG9wMiAiVE9PTD0kdmFycyhtYWtlX3Rvb2wpIgotICAgICAgICAgICAgcHV0cyAkb3AyICJTQ1JJUFRTPSR2YXJzKHNjcmlwdF9kaXIpIgotICAgICAgICAgICAgcHV0cyAkb3AyICJMT0c9JHZhcnMobG9nX2RpcikiCi0gICAgICAgICAgICBwdXRzICRvcDIgIkFSR1M9JHZhcnMobWFrZV90b29sX2FyZ3MpIgotICAgICAgICAgICAgcHV0cyAkb3AyICJQQVJBTExFTD0tajIiCi0gICAgICAgICAgICBwdXRzICRvcDIgIlNVQk1JVD1cIlwiIgotICAgICAgICAgICAgcHV0cyAkb3AyICJUQVJHRVQ9c2lnbm9mZiIKLSAgICAgICAgICAgIHB1dHMgJG9wMiAiRkZfU1RPUD1zaWdub2ZmIgotICAgICAgICAgICAgcHV0cyAkb3AyICJTVEVQUyA9IFtmb3JtYXQgInZlcnNpb24gc2V0dXAgJXMgZG9fY2xlYW51cCIgJHN0ZXBzXSIKLSAgICAgICAgICAgIHB1dHMgJG9wMiAiIgotIyAgICAgICAgICAgIHB1dHMgJG9wMiAiVE9QPWAvYmluL2dyZXAgXCJec2V0IHZhcnMoZGVzaWduKVwiICR2YXJzKHNldHVwX3RjbCkgfCAvYmluL2F3ayAnIHsgcHJpbnRmKFwiJXNcXG5cIixcJFwkMykgfSAnYCIKLSAgICAgICAgICAgIHB1dHMgJG9wMiAiVE9QPSR2YXJzKGRlc2lnbikiCi0gICAgICAgICAgICBwdXRzICRvcDIgIiIKLSAgICAgICAgICAgIGlmIHskdmFycyhlbmFibGVfZmxleGlsbSl9IHsKLSAgICAgICAgICAgICAgIHB1dHMgJG9wMiAiYWxsOiBzZXR1cCByZWJ1ZGdldCBibG9ja3MuXCQoVEFSR0VUKSB0b3AuXCQoVEFSR0VUKSBhc3NlbWJsZSIKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBwdXRzICRvcDIgImFsbDogc2V0dXAgcmVidWRnZXQgYmxvY2tzLlwkKFRBUkdFVCkgdG9wLlwkKFRBUkdFVCkgYXNzZW1ibGUiCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBwdXRzICRvcDIgIiIKLSAgICAgICAgICAgIHB1dHMgJG9wMiAiaGVscDoiCi0gICAgICAgICAgICBwdXRzICRvcDIgIlx0QGVjaG8gXCI9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cIiIKLSAgICAgICAgICAgIHB1dHMgJG9wMiAiXHRAZWNobyBcIiAgICAgICAgICAgXCQoVkVSU0lPTikgIEZvdW5kYXRpb24gRmxvd3NcIiIKLSAgICAgICAgICAgIHB1dHMgJG9wMiAiXHRAZWNobyBcIj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVwiIgotICAgICAgICAgICAgcHV0cyAkb3AyICJcdEBlY2hvIFwiIE1ha2VmaWxlIFRhcmdldHNcIiIKLSAgICAgICAgICAgIHB1dHMgJG9wMiAiXHRAZWNobyBcIj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVwiIgotICAgICAgICAgICAgcHV0cyAkb3AyICJcdEBlY2hvIFwiICAgICAgICAgICAgICBhbGwgOiBSdW4gY29tcGxldGUgZmxvdyAoZGVmYXVsdClcIiIKLSAgICAgICAgICAgIGlmIHskdmFycyhlbmFibGVfZmxleGlsbSl9IHsKLSAgICAgICAgICAgICAgIHB1dHMgJG9wMiAiXHRAZWNobyBcIiAgICAgICAgIHJlYnVkZ2V0IDogUmVidWRnZXQgZGVzaWduXCIiCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBwdXRzICRvcDIgIlx0QGVjaG8gXCIgIGJsb2Nrcy48dGFyZ2V0PiA6IEltcGxlbWVudCBibG9ja3NcIiIKLSAgICAgICAgICAgIHB1dHMgJG9wMiAiXHRAZWNobyBcIiAgICAgICAgIGFzc2VtYmxlIDogQXNzZW1ibGUgZGVzaWduXCIiCi0gICAgICAgICAgICBwdXRzICRvcDIgIlx0QGVjaG8gXCI9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cIiIKLSAgICAgICAgICAgIHB1dHMgJG9wMiAiXHRAZWNobyBcIiBNYWtlZmlsZSBPcHRpb25zXCIiCi0gICAgICAgICAgICBwdXRzICRvcDIgIlx0QGVjaG8gXCI9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cIiIKLSAgICAgICAgICAgIHB1dHMgJG9wMiAiXHRAZWNobyBcIiAgIFZQQVRIICA6IE1ha2UgZGlyZWN0b3J5ICAgICAoZGVmYXVsdCBtYWtlKVwiIgotICAgICAgICAgICAgcHV0cyAkb3AyICJcdEBlY2hvIFwiICBTVUJNSVQgIDogTFNGIGxhdW5jaCBjb21tYW5kIChkZWZhdWx0ICcnKVwiIgotICAgICAgICAgICAgcHV0cyAkb3AyICJcdEBlY2hvIFwiIFBBUkFMTEVMIDogTnVtYmVyIG9mIG1hY2hpbmVzIChkZWZhdWx0IC1qMilcIiIKLSAgICAgICAgICAgIGlmIHskdmFycyhub3Z1cyl9IHsKLSAgICAgICAgICAgICAgIHB1dHMgJG9wMiAiXHRAZWNobyBcIiAgICBUT09MICA6IElOTk9WVVMgZXhlY3V0YWJsZSAoZGVmYXVsdCBpbm5vdnVzKVwiIgotICAgICAgICAgICAgICAgcHV0cyAkb3AyICJcdEBlY2hvIFwiICAgIEFSR1MgIDogSU5OT1ZVUyBhcmd1bWVudHMgIChkZWZhdWx0IC1ub3Z1c191aSAtNjQpXCIiCi0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgcHV0cyAkb3AyICJcdEBlY2hvIFwiICAgIFRPT0wgIDogSU5OT1ZVUyBleGVjdXRhYmxlICAgICAoZGVmYXVsdCBpbm5vdnVzKVwiIgotICAgICAgICAgICAgICAgcHV0cyAkb3AyICJcdEBlY2hvIFwiICAgIEFSR1MgIDogSU5OT1ZVUyBhcmd1bWVudHMgICAgICAoZGVmYXVsdCAtbm93aW4gLTY0KVwiIgotICAgICAgICAgICAgfQotICAgICAgICAgICAgcHV0cyAkb3AyICJcdEBlY2hvIFwiIFNDUklQVFMgIDogU2NyaXB0IGRpcmVjdG9yeSAgIChkZWZhdWx0ICR2YXJzKHNjcmlwdF9kaXIpKVwiIgotICAgICAgICAgICAgcHV0cyAkb3AyICJcdEBlY2hvIFwiICAgICBMT0cgIDogTG9nZmlsZSBkaXJlY3RvcnkgIChkZWZhdWx0ICR2YXJzKGxvZ19kaXIpKVwiIgotICAgICAgICAgICAgcHV0cyAkb3AyICJcdEBlY2hvIFwiPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XCIiCi0gICAgICAgICAgICBwdXRzICRvcDIgIiIKLSMgICAgICAgICAgICBwdXRzICRvcDIgImZsb3c6ICR2YXJzKGNvbmZpZ19maWxlcykiCi0jICAgICAgICAgICAgcHV0cyAkb3AyICJcdGV4ZWN1dGVfc3RyaW5nIgotIyAgICAgICAgICAgIHB1dHMgJG9wMiAiXHRAL2Jpbi90b3VjaCBcJChWUEFUSCkvXCRAIgotICAgICAgICAgICAgcHV0cyAkb3AyICJhc3NlbWJsZTogdG9wLlwkKFRBUkdFVCkiCi0gICAgICAgICAgICBwdXRzICRvcDIgIlx0VlBBVEg9XCQoVlBBVEgpOyBleHBvcnQgVlBBVEg7IFwkKFRPT0wpIFwkKEFSR1MpIC1pbml0IFwkKFNDUklQVFMpL0lOTk9WVVMvcnVuX2Fzc2VtYmxlLnRjbCAtbG9nIFwkKExPRykvYXNzZW1ibGUubG9nIC1vdmVyd3JpdGUiCi0gICAgICAgICAgICBwdXRzICRvcDIgIlx0L2Jpbi90b3VjaCBcJChWUEFUSCkvYXNzZW1ibGUiCi0gICAgICAgICAgICBwdXRzICRvcDIgIiIKLSAgICAgICAgICAgIHB1dHMgJG9wMiAidG9wLlwkKFRBUkdFVCkgOiBibG9ja3MuXCQoVEFSR0VUKSIKLSAgICAgICAgICAgIHB1dHMgJG9wMiAiXHRjZCAkdmFycyhwYXJ0aXRpb25fZGlyX3Bhc3MyKS9cJChUT1ApOyBcJChNQUtFKSAtZiBNYWtlZmlsZSBGRl9TVE9QPVwkKEZGX1NUT1ApIFwkKFRBUkdFVCkgIgotICAgICAgICAgICAgcHV0cyAkb3AyICJcdC9iaW4vdG91Y2ggXCQoVlBBVEgpL1wkQCIKLSAgICAgICAgICAgIHB1dHMgJG9wMiAiIgotICAgICAgICAgICAgcHV0cyAkb3AyICJibG9ja3MuXCQoVEFSR0VUKSA6IHJlYnVkZ2V0IgotICAgICAgICAgICAgcHV0cyAkb3AyICJcdGNkICR2YXJzKHBhcnRpdGlvbl9kaXJfcGFzczIpOyBWUEFUSD1cJChWUEFUSCk7IGV4cG9ydCBWUEFUSDsgXCQoTUFLRSkgXCQoUEFSQUxMRUwpIGJsb2NrcyBGRl9TVE9QPVwkKEZGX1NUT1ApIFRBUkdFVD1cJChUQVJHRVQpIgotICAgICAgICAgICAgcHV0cyAkb3AyICJcdC9iaW4vdG91Y2ggXCQoVlBBVEgpL1wkQCIKLSAgICAgICAgICAgIHB1dHMgJG9wMiAiIgotICAgICAgICAgICAgcHV0cyAkb3AxICJyZWJ1ZGdldCA6IHRvcC5jdHMiCi0gICAgICAgICAgICBwdXRzICRvcDEgIlx0VlBBVEg9XCQoVlBBVEgpOyBleHBvcnQgVlBBVEg7IFwkKFRPT0wpIFwkKEFSR1MpIC1pbml0IFwkKFNDUklQVFMpL0lOTk9WVVMvcnVuX3JlYnVkZ2V0LnRjbCAtbG9nIFwkKExPRykvcmVidWRnZXQubG9nIC1vdmVyd3JpdGUiCi0gICAgICAgICAgICBwdXRzICRvcDEgIlx0L2Jpbi90b3VjaCBcJChWUEFUSCkvcmVidWRnZXQiCi0gICAgICAgICAgICBwdXRzICRvcDEgIiIKLSAgICAgICAgICAgIHB1dHMgJG9wMiAic2luZ2xlOiIKLSAgICAgICAgICAgIHB1dHMgJG9wMiAiXHRAXCQoTUFLRSkgVEFSR0VUPXNpbmdsZSBGRl9TVE9QPVwkKEZGX1NUT1ApIgotICAgICAgICAgICAgcHV0cyAkb3AyICIiCi0gICAgICAgICAgICBwdXRzICRvcDIgImRlYnVnXyU6IgotICAgICAgICAgICAgcHV0cyAkb3AyICJcdGV4cG9ydCBTVEVQPVwkKiA7IFZQQVRIPVwkKFZQQVRIKTsgZXhwb3J0IFZQQVRIOyBcJChUT09MKSAtaW5pdCBcJChTQ1JJUFRTKS9JTk5PVlVTL3J1bl9kZWJ1Zy50Y2wgLWxvZyBcJChMT0cpL1wkQC5sb2cgLXdpbiBcJChBUkdTOi1ub3dpbj0pIgotICAgICAgICAgICAgcHV0cyAkb3AyICIiCi0gICAgICAgICAgICBwdXRzICRvcDIgInJlc2V0OiIKLSAgICAgICAgICAgIHB1dHMgJG9wMiAiXHRAL2Jpbi9ybSAtZiBcJChWUEFUSCkvKiAkdmFycyhwYXJ0aXRpb25fZGlyX3Bhc3MyKS8qL1wkKFZQQVRIKS8qICR2YXJzKHBhcnRpdGlvbl9kaXJfcGFzczIpLyovXCQoVlBBVEgpLy5SVU5OSU5HIgotICAgICAgICAgICAgcHV0cyAkb3AyICIiCi0gICAgICAgICAgICBwdXRzICRvcDIgInNldHVwOiIKLSAgICAgICAgICAgIHB1dHMgJG9wMiAiI1x0L2Jpbi9ybSAtZnIgJHZhcnMocGFydGl0aW9uX2Rpcl9wYXNzMikgXCQoVlBBVEgpIExPRyIKLSAgICAgICAgICAgIHB1dHMgJG9wMiAiXHQvYmluL21rZGlyIC1wICBcJChWUEFUSCkgTE9HIgotICAgICAgICAgICAgY2xvc2UgJG9wMgotCi0gICAgICAgICAgICBwdXRzICRvcCAiaW5jbHVkZSBNYWtlZmlsZS5wYXNzMSIKLSAgICAgICAgICAgIHB1dHMgJG9wICJpbmNsdWRlIE1ha2VmaWxlLnBhc3MyIgotCi0gICAgICAgICAgICBpZiB7JHZhcnMoZ2VuZXJhdGVfZmxvd19zdGVwcykgJiYgW2luZm8gZXhpc3RzIHZhcnMoZmxvd19zdGVwcyldfSB7Ci0gICAgICAgICAgICAgICBzZXQgZnAxIFtvcGVuICR2YXJzKHNjcmlwdF9kaXIpL2Zsb3dfY29uZmlnLnRjbCB3XQotICAgICAgICAgICAgICAgc2V0IGZwMiBbb3BlbiAkdmFycyhzY3JpcHRfZGlyKS9mbG93X3N0ZXBzLnRjbCB3XQotICAgICAgICAgICAgICAgcHV0cyAkZnAxICJzZXRfZGIgZmxvd19kYXRhYmFzZV9kaXJlY3RvcnkgJHZhcnMoZGJzX2RpcikiCi0gICAgICAgICAgICAgICBwdXRzICRmcDEgInNldF9kYiBmbG93X3JlcG9ydF9kaXJlY3RvcnkgJHZhcnMocnB0X2RpcikiCi0gICAgICAgICAgICAgICBwdXRzICRmcDEgInNldF9kYiBmbG93X2xvZ19kaXJlY3RvcnkgJHZhcnMobG9nX2RpcikiCi0gICAgICAgICAgICAgICBwdXRzICRmcDEgIlxuc2V0X2RiIGZsb3dfbWFpbF90byBbZXhlYyB3aG9hbWldIgotICAgICAgICAgICAgICAgcHV0cyAkZnAxICJzZXRfZGIgZmxvd19tYWlsX29uX2Vycm9yIHRydWVcbiIKLSMgICAgICAgICAgICAgICBwdXRzICRmcCAkdmFycyhmbG93X3N0ZXBzKQotICAgICAgICAgICAgICAgZm9yZWFjaCBwIFtjb25jYXQgJHZhcnMocGFydGl0aW9uX2xpc3QpICR2YXJzKGRlc2lnbildIHsKLSMgICAgICAgICAgICAgICAgICBzZXQgdmFycyhmbG93X25hbWUpICRwCi0gICAgICAgICAgICAgICAgICBpZiB7W2ZpbGUgZXhpc3RzICR2YXJzKHBhcnRpdGlvbl9kaXIpLyRwLyR2YXJzKHNjcmlwdF9kaXIpLy5oaWVyc3RlcHMudGNsXX0gewotIyAgICAgICAgICAgICAgICAgICAgIHB1dHMgJGZwMiAiIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICRwIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIiAKLSAgICAgICAgICAgICAgICAgICAgIHNldCBpcCBbb3BlbiAkdmFycyhwYXJ0aXRpb25fZGlyKS8kcC8kdmFycyhzY3JpcHRfZGlyKS8uaGllcnN0ZXBzLnRjbCByXQotICAgICAgICAgICAgICAgICAgICAgaWYgeyRwICE9ICR2YXJzKGRlc2lnbil9IHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHdoaWxlIHtbZ2V0cyAkaXAgbGluZV0+PTB9IHsgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBwdXRzICRmcDIgJGxpbmUgCi0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICAgd2hpbGUge1tnZXRzICRpcCBsaW5lXT49MH0gewotICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYge1tyZWdleHAgImNyZWF0ZV9mbG93X3N0ZXAgLW5hbWUgdG9wXyIgJGxpbmVdfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdXRzICRmcDIgJGxpbmUgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aGlsZSB7W2dldHMgJGlwIGxpbmVdPj0wfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiB7W3JlZ2V4cCAiXlx9IiAkbGluZV19IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1dHMgJGZwMiAkbGluZSAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHV0cyAkZnAyICRsaW5lIAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgaWYge1tmaWxlIGV4aXN0cyAkdmFycyhwYXJ0aXRpb25fZGlyKS8kcC9ydW5fZmxvdy50Y2xdfSB7Ci0gICAgICAgICAgICAgICAgICAgICBzZXQgaXAgW29wZW4gJHZhcnMocGFydGl0aW9uX2RpcikvJHAvcnVuX2Zsb3cudGNsIHJdCi0gICAgICAgICAgICAgICAgICAgICB3aGlsZSB7W2dldHMgJGlwIGxpbmVdPj0wfSB7IAotICAgICAgICAgICAgICAgICAgICAgICAgcHV0cyAkZnAgJGxpbmUgCi0gICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMocGFydGl0aW9uX2Rpcl9wYXNzMildICYmIFtmaWxlIGV4aXN0cyAkdmFycyhwYXJ0aXRpb25fZGlyX3Bhc3MyKS8kcC9ydW5fZmxvdy50Y2xdfSB7Ci0gICAgICAgICAgICAgICAgICAgICBzZXQgaXAgW29wZW4gJHZhcnMocGFydGl0aW9uX2Rpcl9wYXNzMikvJHAvcnVuX2Zsb3cudGNsIHJdCi0gICAgICAgICAgICAgICAgICAgICB3aGlsZSB7W2dldHMgJGlwIGxpbmVdPj0wfSB7IAotICAgICAgICAgICAgICAgICAgICAgICAgcHV0cyAkZnAgJGxpbmUgCi0gICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICBwdXRzICRmcDIgIiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBISUVSIFNURVBTIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIiAKLSAgICAgICAgICAgICAgIHB1dHMgJGZwMiAkdmFycyhmbG93X3N0ZXBzLGhpZXIpCi0gICAgICAgICAgICAgICBzZXQgdmFycyhmbG93X25hbWUpICR2YXJzKGRlc2lnbikKLSAgICAgICAgICAgICAgIHNldCBhc3RlcHMgW0ZGOjphZGp1c3Rfc3RlcHNdCi0jICAgICAgICAgICAgICAgcHV0cyAkZnAgImNyZWF0ZV9mbG93IFxcXG4gICAtbmFtZSAkdmFycyhmbG93X25hbWUpXFxcbiAgIC10b29sICR2YXJzKG1ha2VfdG9vbClcXFxuICAgLXRvb2xfb3B0aW9ucyB7LWxvZyAkdmFycyhmbG93X25hbWUpLmxvZ31cXFxuICAgXFtsaXN0ICRhc3RlcHNcXVxuIgotICAgICAgICAgICAgICAgc2V0IHBzdGVwcyBbbGlzdF0KLSAgICAgICAgICAgICAgIHNldCBic3RlcHMgW2xpc3RdCi0gICAgICAgICAgICAgICBmb3JlYWNoIHMgJGFzdGVwcyB7Ci0gICAgICAgICAgICAgICAgICBpZiB7KFtsc2VhcmNoICR2YXJzKGZzdGVwcykgJHNdICE9IC0xKSAmJiAoJHMgIT0gImFzc2VtYmxlIil9IHsKLSAgICAgICAgICAgICAgICAgICAgIGxhcHBlbmQgYnN0ZXBzICRzCi0gICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgaWYgeyRzICE9ICJhc3NlbWJsZSJ9IHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGxhcHBlbmQgcHN0ZXBzICRzCi0gICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICBzZXQgdmFycyhmbG93X25hbWUpIGZpbmFsX2Fzc2VtYmx5Ci0gICAgICAgICAgICAgICBwdXRzICRmcCAiY3JlYXRlX2Zsb3cgXFxcbiAgIC1uYW1lICR2YXJzKGZsb3dfbmFtZSlcXFxuICAgLXRvb2wgJHZhcnMobWFrZV90b29sKVxcXG4gICAtdG9vbF9vcHRpb25zIHstbG9nICR2YXJzKGZsb3dfbmFtZSkubG9nfVxcXG4gICBcW2xpc3QgYXNzZW1ibGVcXVxuIgotICAgICAgICAgICAgICAgc2V0IHZhcnMoZmxvd19uYW1lKSBwYXJ0aXRpb25pbmcKLSAgICAgICAgICAgICAgIHB1dHMgJGZwICJjcmVhdGVfZmxvdyBcXFxuICAgLW5hbWUgJHZhcnMoZmxvd19uYW1lKVxcXG4gICAtdG9vbCAkdmFycyhtYWtlX3Rvb2wpXFxcbiAgIC10b29sX29wdGlvbnMgey1sb2cgJHZhcnMoZmxvd19uYW1lKS5sb2d9XFxcbiAgIFxbbGlzdCAkcHN0ZXBzXF1cbiIKLSMgICAgICAgICAgICAgICBwdXRzICRmcCAicnVuX2Zsb3cgLWZsb3cgJHZhcnMoZmxvd19uYW1lKSIKLSAgICAgICAgICAgICAgIHVuc2V0IHZhcnMoZmxvd19zdGVwcykKLSMgICAgICAgICAgICAgICBzZXQgdmFycyhmbG93X25hbWUpICR2YXJzKGRlc2lnbikKLSMgICAgICAgICAgICAgICBwdXRzICRmcCAiY3JlYXRlX2Zsb3cgXFxcbiAgIC1uYW1lICR2YXJzKGZsb3dfbmFtZSlcXFxuICAgLXRvb2wgJHZhcnMobWFrZV90b29sKVxcXG4gICAtdG9vbF9vcHRpb25zIHstbG9nICR2YXJzKGZsb3dfbmFtZSkubG9nfVxcXG4gICBcW2xpc3QgJGJzdGVwc1xdXG4iCi0gICAgICAgICAgICAgICBpZiB7W2ZpbGUgZXhpc3RzICR2YXJzKGN3ZCkvLnBsdWdpbnNdfSB7Ci0gICAgICAgICAgICAgICAgICBzZXQgaXAgW29wZW4gJHZhcnMoY3dkKS8ucGx1Z2lucyByXQotICAgICAgICAgICAgICAgICAgd2hpbGUge1tnZXRzICRpcCBsaW5lXT49MH0geyAKLSAgICAgICAgICAgICAgICAgICAgIHB1dHMgJGZwMSAkbGluZSAKLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIGNsb3NlICRpcAotICAgICAgICAgICAgICAgICAgZmlsZSBkZWxldGUgJHZhcnMoY3dkKS8ucGx1Z2lucyAKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIGNsb3NlICRmcAotICAgICAgICAgICAgICAgY2xvc2UgJGZwMQotICAgICAgICAgICAgICAgY2xvc2UgJGZwMgotICAgICAgICAgICAgfQotICAgICAgICAgfQotICAgICAgICAgImZsZXhpbG0iIHsKLSAgICAgICAgICAgIHB1dHMgJG9wICJWRVJTSU9OPTE3LjEwLXAwMDNfMSIKLSAgICAgICAgICAgIHB1dHMgJG9wICJWUEFUSD0uL21ha2UiCi0gICAgICAgICAgICBwdXRzICRvcCAiVE9PTD0kdmFycyhtYWtlX3Rvb2wpIgotICAgICAgICAgICAgcHV0cyAkb3AgIlNDUklQVFM9RkYiCi0gICAgICAgICAgICBwdXRzICRvcCAiTE9HPUxPRyIKLSAgICAgICAgICAgIHB1dHMgJG9wICJBUkdTPSR2YXJzKG1ha2VfdG9vbF9hcmdzKSIKLSAgICAgICAgICAgIHB1dHMgJG9wICJQQVJBTExFTD0tajIiCi0gICAgICAgICAgICBwdXRzICRvcCAiU1VCTUlUPVwiXCIiCi0gICAgICAgICAgICBwdXRzICRvcCAiVEFSR0VUPWFzc2VtYmxlIgotICAgICAgICAgICAgcHV0cyAkb3AgIkZGX1NUT1A9YXNzZW1ibGUiCi0gICAgICAgICAgICBwdXRzICRvcCAiU1RFUFMgPSB2ZXJzaW9uIHNldHVwIGRvX2NsZWFudXAiCi0gICAgICAgICAgICBwdXRzICRvcCAiIgotIyAgICAgICAgICAgIHB1dHMgJG9wICJUT1A9YC9iaW4vZ3JlcCBcIl5zZXQgdmFycyhkZXNpZ24pXCIgJHZhcnMoc2V0dXBfdGNsKSB8IC9iaW4vYXdrICcgeyBwcmludGYoXCIlc1xcblwiLFwkXCQzKSB9ICdgIgotICAgICAgICAgICAgcHV0cyAkb3AgIlRPUD0kdmFycyhkZXNpZ24pIgotICAgICAgICAgICAgcHV0cyAkb3AgIiIKLSAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyh1c2VfZmxleG1vZGVscyldICYmICR2YXJzKHVzZV9mbGV4bW9kZWxzKX0gewotICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGZsZXhtb2RlbF9wcm90b3R5cGUpXSAmJiAkdmFycyhmbGV4bW9kZWxfcHJvdG90eXBlKX0gewotICAgICAgICAgICAgICAgICAgcHV0cyAkb3AgImFsbDogc2V0dXAgcHJvdG90eXBlIG1vZGVsX2dlbiBwYXJ0aXRpb25fcGxhY2UgYXNzaWduX3BpbiBwYXJ0aXRpb24gYmxvY2tzLnByZWN0cyB0b3AucHJlY3RzIGFzc2VtYmxlX2ZsZXhpbG0gYmxvY2tzLnNpZ25vZmYgdG9wLnNpZ25vZmYgYXNzZW1ibGUiCi0gICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgcHV0cyAkb3AgImFsbDogc2V0dXAgbW9kZWxfZ2VuIHBhcnRpdGlvbl9wbGFjZSBhc3NpZ25fcGluIHBhcnRpdGlvbiBibG9ja3MucHJlY3RzIHRvcC5wcmVjdHMgYXNzZW1ibGVfZmxleGlsbSBibG9ja3Muc2lnbm9mZiB0b3Auc2lnbm9mZiBhc3NlbWJsZSIKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBwdXRzICRvcCAiYWxsOiBzZXR1cCBwYXJ0aXRpb25fcGxhY2UgYXNzaWduX3BpbiBwYXJ0aXRpb24gYmxvY2tzLnByZWN0cyB0b3AucHJlY3RzIGFzc2VtYmxlX2ZsZXhpbG0gYmxvY2tzLnNpZ25vZmYgdG9wLnNpZ25vZmYgYXNzZW1ibGUiCi0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIHB1dHMgJG9wICIiCi0gICAgICAgICAgICBwdXRzICRvcCAiaGVscDoiCi0gICAgICAgICAgICBwdXRzICRvcCAiXHRAZWNobyBcIj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVwiIgotICAgICAgICAgICAgcHV0cyAkb3AgIlx0QGVjaG8gXCIgICAgICAgICAgIFwkKFZFUlNJT04pICBGb3VuZGF0aW9uIEZsb3dzXCIiCi0gICAgICAgICAgICBwdXRzICRvcCAiXHRAZWNobyBcIj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVwiIgotICAgICAgICAgICAgcHV0cyAkb3AgIlx0QGVjaG8gXCIgTWFrZWZpbGUgVGFyZ2V0c1wiIgotICAgICAgICAgICAgcHV0cyAkb3AgIlx0QGVjaG8gXCI9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cIiIKLSAgICAgICAgICAgIHB1dHMgJG9wICJcdEBlY2hvIFwiICAgICAgICAgICAgICBhbGwgOiBSdW4gY29tcGxldGUgZmxvdyAoZGVmYXVsdClcIiIKLSAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyh1c2VfZmxleG1vZGVscyldICYmICR2YXJzKHVzZV9mbGV4bW9kZWxzKX0gewotICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGZsZXhtb2RlbF9wcm90b3R5cGUpXSAmJiAkdmFycyhmbGV4bW9kZWxfcHJvdG90eXBlKX0gewotICAgICAgICAgICAgICAgICAgcHV0cyAkb3AgIlx0QGVjaG8gXCIgICAgICAgIHByb3RvdHlwZSA6IEZsZXhtb2RlbCBwcm90b3R5cGVcIiIKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIHB1dHMgJG9wICJcdEBlY2hvIFwiICAgICAgICBtb2RlbF9nZW4gOiBHZW5lcmF0ZSBmbGV4bW9kZWxzXCIiCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBwdXRzICRvcCAiXHRAZWNobyBcIiAgcGFydGl0aW9uX3BsYWNlIDogSW5pdGlhbCBwbGFjZW1lbnQgJiBmZWVkdGhyb3VnaFwiIgotICAgICAgICAgICAgcHV0cyAkb3AgIlx0QGVjaG8gXCIgICAgICAgYXNzaWduX3BpbiA6IFBpbiBhc3NpZ25tZW50XCIiCi0gICAgICAgICAgICBwdXRzICRvcCAiXHRAZWNobyBcIiAgICAgICAgcGFydGl0aW9uIDogUGFydGl0aW9uIGRlc2lnblwiIgotICAgICAgICAgICAgcHV0cyAkb3AgIlx0QGVjaG8gXCIgICAgIGJsb2NrLnByZWN0cyA6IEltcGxlbWVudCBibG9ja3MgdG8gcHJlQ1RTIGFuZCBnZW5lcmF0ZSBmbGV4SWxtXCIiCi0gICAgICAgICAgICBwdXRzICRvcCAiXHRAZWNobyBcIiAgICAgICB0b3AucHJlY3RzIDogZmxleElsbSBwcmVjdHMgb3B0aW1pemF0aW9uIGFuZCBmbGV4SWxtIEVDT1wiIgotICAgICAgICAgICAgcHV0cyAkb3AgIlx0QGVjaG8gXCIgYXNzZW1ibGVfZmxleGlsbSA6IENoZWNrIGFzc2VtYmxlZCBwcmVDVFMgdGltaW5nXCIiCi0gICAgICAgICAgICBwdXRzICRvcCAiXHRAZWNobyBcIiAgICBibG9jay5zaWdub2ZmIDogaW1wbGVtZW50IGJsb2Nrc1wiIgotICAgICAgICAgICAgcHV0cyAkb3AgIlx0QGVjaG8gXCIgICAgICB0b3Auc2lnbm9mZiA6IGltcGxlbWVudCB0b3BcIiIKLSAgICAgICAgICAgIHB1dHMgJG9wICJcdEBlY2hvIFwiICAgICAgICAgYXNzZW1ibGUgOiBmaW5hbCBjaGlwIGFzc2VtYmx5XCIiCi0gICAgICAgICAgICBwdXRzICRvcCAiXHRAZWNobyBcIj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVwiIgotICAgICAgICAgICAgcHV0cyAkb3AgIlx0QGVjaG8gXCIgTWFrZWZpbGUgT3B0aW9uc1wiIgotICAgICAgICAgICAgcHV0cyAkb3AgIlx0QGVjaG8gXCI9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cIiIKLSAgICAgICAgICAgIHB1dHMgJG9wICJcdEBlY2hvIFwiICAgVlBBVEggIDogTWFrZSBkaXJlY3RvcnkgICAgIChkZWZhdWx0IG1ha2UpXCIiCi0gICAgICAgICAgICBwdXRzICRvcCAiXHRAZWNobyBcIiAgU1VCTUlUICA6IExTRiBsYXVuY2ggY29tbWFuZCAoZGVmYXVsdCAnJylcIiIKLSAgICAgICAgICAgIHB1dHMgJG9wICJcdEBlY2hvIFwiIFBBUkFMTEVMIDogTnVtYmVyIG9mIG1hY2hpbmVzIChkZWZhdWx0IC1qMilcIiIKLSAgICAgICAgICAgIGlmIHskdmFycyhub3Z1cyl9IHsKLSAgICAgICAgICAgICAgIHB1dHMgJG9wICJcdEBlY2hvIFwiICAgIFRPT0wgIDogSU5OT1ZVUyBleGVjdXRhYmxlIChkZWZhdWx0IGlubm92dXMpXCIiCi0gICAgICAgICAgICAgICBwdXRzICRvcCAiXHRAZWNobyBcIiAgICBBUkdTICA6IElOTk9WVVMgYXJndW1lbnRzICAoZGVmYXVsdCAtbm92dXNfdWkgLTY0KVwiIgotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIHB1dHMgJG9wICJcdEBlY2hvIFwiICAgIFRPT0wgIDogSU5OT1ZVUyBleGVjdXRhYmxlICAgICAoZGVmYXVsdCBpbm5vdnVzKVwiIgotICAgICAgICAgICAgICAgcHV0cyAkb3AgIlx0QGVjaG8gXCIgICAgQVJHUyAgOiBJTk5PVlVTIGFyZ3VtZW50cyAgICAgIChkZWZhdWx0IC1ub3dpbiAtNjQpXCIiCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBwdXRzICRvcCAiXHRAZWNobyBcIiBTQ1JJUFRTICA6IFNjcmlwdCBkaXJlY3RvcnkgICAoZGVmYXVsdCBGRilcIiIKLSAgICAgICAgICAgIHB1dHMgJG9wICJcdEBlY2hvIFwiICAgICBMT0cgIDogTG9nZmlsZSBkaXJlY3RvcnkgIChkZWZhdWx0IExPRylcIiIKLSAgICAgICAgICAgIHB1dHMgJG9wICJcdEBlY2hvIFwiPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XCIiCi0gICAgICAgICAgICBwdXRzICRvcCAiYXNzZW1ibGU6IHRvcC5zaWdub2ZmIgotICAgICAgICAgICAgcHV0cyAkb3AgIlx0VlBBVEg9XCQoVlBBVEgpOyBleHBvcnQgVlBBVEg7IFwkKFRPT0wpIFwkKEFSR1MpIC1pbml0IFwkKFNDUklQVFMpL0lOTk9WVVMvcnVuX2Fzc2VtYmxlLnRjbCAtbG9nIFwkKExPRykvYXNzZW1ibGUubG9nIC1vdmVyd3JpdGUiCi0gICAgICAgICAgICBwdXRzICRvcCAiXHQvYmluL3RvdWNoIFwkKFZQQVRIKS9hc3NlbWJsZSIKLSAgICAgICAgICAgIHB1dHMgJG9wICIiCi0gICAgICAgICAgICBwdXRzICRvcCAidG9wLnNpZ25vZmYgOiBibG9ja3Muc2lnbm9mZiIKLSAgICAgICAgICAgIHB1dHMgJG9wICJcdGNkIFBBUlRJVElPTl9QUkVDVFMvXCQoVE9QKTsgXCQoTUFLRSkgLWYgTWFrZWZpbGUgRkZfU1RPUD1zaWdub2ZmIHNpZ25vZmYiCi0gICAgICAgICAgICBwdXRzICRvcCAiCS9iaW4vdG91Y2ggXCQoVlBBVEgpL1wkQCIKLSAgICAgICAgICAgIHB1dHMgJG9wICIiCi0gICAgICAgICAgICBwdXRzICRvcCAiYmxvY2tzLnNpZ25vZmYgOiBhc3NlbWJsZV9mbGV4aWxtIgotICAgICAgICAgICAgcHV0cyAkb3AgIlx0Y2QgUEFSVElUSU9OX1BSRUNUUzsgVlBBVEg9XCQoVlBBVEgpOyBleHBvcnQgVlBBVEg7IFwkKE1BS0UpIFwkKFBBUkFMTEVMKSBibG9ja3MgRkZfU1RPUD1zaWdub2ZmIFRBUkdFVD1zaWdub2ZmIgotICAgICAgICAgICAgcHV0cyAkb3AgIgkvYmluL3RvdWNoIFwkKFZQQVRIKS9cJEAiCi0gICAgICAgICAgICBwdXRzICRvcCAiIgotICAgICAgICAgICAgcHV0cyAkb3AgImFzc2VtYmxlX2ZsZXhpbG0gOiB0b3AucHJlY3RzIgotICAgICAgICAgICAgcHV0cyAkb3AgIlx0VlBBVEg9XCQoVlBBVEgpOyBleHBvcnQgVlBBVEg7IFwkKFRPT0wpIFwkKEFSR1MpIC1pbml0IFwkKFNDUklQVFMpL0lOTk9WVVMvcnVuX2Fzc2VtYmxlX2ZsZXhpbG0udGNsIC1sb2cgXCQoTE9HKS9hc3NlbWJsZV9mbGV4aWxtLmxvZyAtb3ZlcndyaXRlIgotICAgICAgICAgICAgcHV0cyAkb3AgIlx0L2Jpbi90b3VjaCBcJChWUEFUSCkvYXNzZW1ibGVfZmxleGlsbSIKLSAgICAgICAgICAgIHB1dHMgJG9wICIiCi0gICAgICAgICAgICBwdXRzICRvcCAidG9wLnByZWN0cyA6IGJsb2Nrcy5wcmVjdHMiCi0gICAgICAgICAgICBpZiB7JHZhcnMocGxhY2Vfb3B0X2Rlc2lnbil9IHsKLSAgICAgICAgICAgICAgIHB1dHMgJG9wICJcdGNkIFBBUlRJVElPTi9cJChUT1ApOyBcJChNQUtFKSAtZiBNYWtlZmlsZSBGRl9TVE9QPXBsYWNlIHBsYWNlICIKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBwdXRzICRvcCAiXHRjZCBQQVJUSVRJT04vXCQoVE9QKTsgXCQoTUFLRSkgLWYgTWFrZWZpbGUgRkZfU1RPUD1wcmVjdHMgcHJlY3RzICIKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHB1dHMgJG9wICJcdC9iaW4vdG91Y2ggXCQoVlBBVEgpL1wkQCIKLSAgICAgICAgICAgIHB1dHMgJG9wICJcdC9iaW4vY3AgLXJmIFBBUlRJVElPTl9GTEVYSUxNLyogUEFSVElUSU9OX1BSRUNUUyIKLSAgICAgICAgICAgIHB1dHMgJG9wICJcdC9iaW4vcm0gLXJmIFBBUlRJVElPTl9GTEVYSUxNIgotICAgICAgICAgICAgcHV0cyAkb3AgIiIKLSAgICAgICAgICAgIHB1dHMgJG9wICJibG9ja3MucHJlY3RzIDogcGFydGl0aW9uIgotICAgICAgICAgICAgaWYgeyR2YXJzKHBsYWNlX29wdF9kZXNpZ24pfSB7Ci0gICAgICAgICAgICAgICBwdXRzICRvcCAiXHRjZCBQQVJUSVRJT047IFZQQVRIPVwkKFZQQVRIKTsgZXhwb3J0IFZQQVRIOyBcJChNQUtFKSBcJChQQVJBTExFTCkgYmxvY2tzIEZGX1NUT1A9cGxhY2UgVEFSR0VUPXBsYWNlIgotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIHB1dHMgJG9wICJcdGNkIFBBUlRJVElPTjsgVlBBVEg9XCQoVlBBVEgpOyBleHBvcnQgVlBBVEg7IFwkKE1BS0UpIFwkKFBBUkFMTEVMKSBibG9ja3MgRkZfU1RPUD1wcmVjdHMgVEFSR0VUPXByZWN0cyIKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHB1dHMgJG9wICJcdC9iaW4vdG91Y2ggXCQoVlBBVEgpL1wkQCIKLSAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyh1c2VfZmxleG1vZGVscyldICYmICR2YXJzKHVzZV9mbGV4bW9kZWxzKX0gewotICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGZsZXhtb2RlbF9wcm90b3R5cGUpXSAmJiAkdmFycyhmbGV4bW9kZWxfcHJvdG90eXBlKX0gewotICAgICAgICAgICAgICAgICAgcHV0cyAkb3AgInByb3RvdHlwZSA6IHNldHVwIgotICAgICAgICAgICAgICAgICAgcHV0cyAkb3AgIlx0VlBBVEg9XCQoVlBBVEgpOyBleHBvcnQgVlBBVEg7IFwkKFRPT0wpIFwkKEFSR1MpIC1pbml0IFwkKFNDUklQVFMpL0lOTk9WVVMvcnVuX3Byb3RvdHlwZS50Y2wgLWxvZyBcJChMT0cpL3Byb3RvdHlwZS5sb2cgLW92ZXJ3cml0ZSIKLSAgICAgICAgICAgICAgICAgIHB1dHMgJG9wICJcdC9iaW4vdG91Y2ggXCQoVlBBVEgpL3Byb3RvdHlwZSIKLSAgICAgICAgICAgICAgICAgIHB1dHMgJG9wICIiCi0gICAgICAgICAgICAgICAgICBwdXRzICRvcCAibW9kZWxfZ2VuIDogcHJvdG90eXBlIgotICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgIHB1dHMgJG9wICJtb2RlbF9nZW4gOiBzZXR1cCIKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIHB1dHMgJG9wICJcdFZQQVRIPVwkKFZQQVRIKTsgZXhwb3J0IFZQQVRIOyBcJChUT09MKSBcJChBUkdTKSAtaW5pdCBcJChTQ1JJUFRTKS9JTk5PVlVTL3J1bl9tb2RlbF9nZW4udGNsIC1sb2cgXCQoTE9HKS9tb2RlbF9nZW4ubG9nIC1vdmVyd3JpdGUiCi0gICAgICAgICAgICAgICBwdXRzICRvcCAiXHQvYmluL3RvdWNoIFwkKFZQQVRIKS9tb2RlbF9nZW4iCi0gICAgICAgICAgICAgICBwdXRzICRvcCAiIgotICAgICAgICAgICAgICAgcHV0cyAkb3AgInBhcnRpdGlvbl9wbGFjZSA6IG1vZGVsX2dlbiIKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBwdXRzICRvcCAicGFydGl0aW9uX3BsYWNlIDogIHNldHVwIgotICAgICAgICAgICAgfQotICAgICAgICAgICAgcHV0cyAkb3AgIlx0VlBBVEg9XCQoVlBBVEgpOyBleHBvcnQgVlBBVEg7IFwkKFRPT0wpIFwkKEFSR1MpIC1pbml0IFwkKFNDUklQVFMpL0lOTk9WVVMvcnVuX3BhcnRpdGlvbl9wbGFjZS50Y2wgLWxvZyBcJChMT0cpL3BhcnRpdGlvbl9wbGFjZS5sb2cgLW92ZXJ3cml0ZSIKLSAgICAgICAgICAgIHB1dHMgJG9wICJcdC9iaW4vdG91Y2ggXCQoVlBBVEgpL3BhcnRpdGlvbl9wbGFjZSIKLSAgICAgICAgICAgIHB1dHMgJG9wICIiCi0gICAgICAgICAgICBwdXRzICRvcCAiYXNzaWduX3BpbiA6ICBwYXJ0aXRpb25fcGxhY2UiCi0gICAgICAgICAgICBwdXRzICRvcCAiCVZQQVRIPVwkKFZQQVRIKTsgZXhwb3J0IFZQQVRIOyBcJChUT09MKSBcJChBUkdTKSAtaW5pdCBcJChTQ1JJUFRTKS9JTk5PVlVTL3J1bl9hc3NpZ25fcGluLnRjbCAtbG9nIFwkKExPRykvYXNzaWduX3Bpbi5sb2cgLW92ZXJ3cml0ZSIKLSAgICAgICAgICAgIHB1dHMgJG9wICIJL2Jpbi90b3VjaCBcJChWUEFUSCkvYXNzaWduX3BpbiIKLSAgICAgICAgICAgIHB1dHMgJG9wICIiCi0gICAgICAgICAgICBwdXRzICRvcCAicGFydGl0aW9uIDogIGFzc2lnbl9waW4iCi0gICAgICAgICAgICBwdXRzICRvcCAiXHRWUEFUSD1cJChWUEFUSCk7IGV4cG9ydCBWUEFUSDsgXCQoVE9PTCkgXCQoQVJHUykgLWluaXQgXCQoU0NSSVBUUykvSU5OT1ZVUy9ydW5fcGFydGl0aW9uLnRjbCAtbG9nIFwkKExPRykvcGFydGl0aW9uLmxvZyAtb3ZlcndyaXRlIgotICAgICAgICAgICAgcHV0cyAkb3AgIgkvYmluL3RvdWNoIFwkKFZQQVRIKS9wYXJ0aXRpb24iCi0gICAgICAgICAgICBwdXRzICRvcCAiIgotICAgICAgICAgICAgcHV0cyAkb3AgInNpbmdsZToiCi0gICAgICAgICAgICBwdXRzICRvcCAiXHRAXCQoTUFLRSkgVEFSR0VUPXNpbmdsZSBGRl9TVE9QPXNpZ25vZmYiCi0gICAgICAgICAgICBwdXRzICRvcCAiIgotICAgICAgICAgICAgcHV0cyAkb3AgImRlYnVnXyU6IgotICAgICAgICAgICAgcHV0cyAkb3AgIlx0ZXhwb3J0IFNURVA9XCQqIDsgVlBBVEg9XCQoVlBBVEgpOyBleHBvcnQgVlBBVEg7IFwkKFRPT0wpIC1pbml0IFwkKFNDUklQVFMpL0lOTk9WVVMvcnVuX2RlYnVnLnRjbCAtbG9nIFwkKExPRykvXCRALmxvZyAtd2luIFwkKEFSR1M6LW5vd2luPSkiCi0gICAgICAgICAgICBwdXRzICRvcCAiIgotICAgICAgICAgICAgcHV0cyAkb3AgInJlc2V0OiIKLSAgICAgICAgICAgIHB1dHMgJG9wICJcdEAvYmluL3JtIC1mIFwkKFZQQVRIKS8qIFBBUlRJVElPTi8qL1wkKFZQQVRIKS8qIFBBUlRJVElPTi8qL1wkKFZQQVRIKS8uUlVOTklORyIKLSAgICAgICAgICAgIHB1dHMgJG9wICJcdEAvYmluL3JtIC1mIFwkKFZQQVRIKS8qIFBBUlRJVElPTl9QUkVDVFMvKi9cJChWUEFUSCkvKiBQQVJUSVRJT05fUFJFQ1RTLyovXCQoVlBBVEgpLy5SVU5OSU5HIgotICAgICAgICAgICAgcHV0cyAkb3AgIiIKLSAgICAgICAgICAgIHB1dHMgJG9wICJzZXR1cDoiCi0gICAgICAgICAgICBwdXRzICRvcCAiI1x0L2Jpbi9ybSAtZnIgUEFSVElUSU9OIFwkKFZQQVRIKSBMT0ciCi0gICAgICAgICAgICBwdXRzICRvcCAiXHQvYmluL21rZGlyIC1wICBcJChWUEFUSCkgTE9HIgotICAgICAgICAgICAgcHV0cyAkb3AgIlx0L2Jpbi90b3VjaCBcJChWUEFUSCkvc2V0dXAiCi0KLSAgICAgICAgICAgIGlmIHskdmFycyhnZW5lcmF0ZV9mbG93X3N0ZXBzKSAmJiBbaW5mbyBleGlzdHMgdmFycyhmbG93X3N0ZXBzKV19IHsKLSAgICAgICAgICAgICAgIHNldCBmcCBbb3BlbiBydW5fZmxvdy50Y2wgd10KLSAgICAgICAgICAgICAgIGlmIHshW2luZm8gZXhpc3RzIHZhcnMocnVuX2Zsb3cpXX0gewotIyAgICAgICAgICAgICAgICAgIHB1dHMgJGZwICJzb3VyY2UgJHZhcnMoc2NyaXB0X2RpcikvZmxvd19zdGVwcy50Y2wiCi0gICAgICAgICAgICAgICAgICBwdXRzICRmcCAic291cmNlICR2YXJzKHNjcmlwdF9kaXIpL2Zsb3dfY29uZmlnLnRjbCIKLSAgICAgICAgICAgICAgICAgIHNldCB2YXJzKHJ1bl9mbG93KSBET05FCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICBzZXQgZnAxIFtvcGVuICR2YXJzKHNjcmlwdF9kaXIpL2Zsb3dfY29uZmlnLnRjbCB3XQotICAgICAgICAgICAgICAgc2V0IGZwMiBbb3BlbiAkdmFycyhzY3JpcHRfZGlyKS9mbG93X3N0ZXBzLnRjbCB3XQotICAgICAgICAgICAgICAgcHV0cyAkZnAxICJzZXRfZGIgZmxvd19kYXRhYmFzZV9kaXJlY3RvcnkgJHZhcnMoZGJzX2RpcikiCi0gICAgICAgICAgICAgICBwdXRzICRmcDEgInNldF9kYiBmbG93X3JlcG9ydF9kaXJlY3RvcnkgJHZhcnMocnB0X2RpcikiCi0gICAgICAgICAgICAgICBwdXRzICRmcDEgInNldF9kYiBmbG93X2xvZ19kaXJlY3RvcnkgJHZhcnMobG9nX2RpcikiCi0gICAgICAgICAgICAgICBwdXRzICRmcDEgIlxuc2V0X2RiIGZsb3dfbWFpbF90byBbZXhlYyB3aG9hbWldIgotICAgICAgICAgICAgICAgcHV0cyAkZnAxICJzZXRfZGIgZmxvd19tYWlsX29uX2Vycm9yIHRydWVcbiIKLSMgICAgICAgICAgICAgICBwdXRzICRmcCAkdmFycyhmbG93X3N0ZXBzKQotICAgICAgICAgICAgICAgZm9yZWFjaCBwIFtjb25jYXQgJHZhcnMocGFydGl0aW9uX2xpc3QpICR2YXJzKGRlc2lnbildIHsKLSMgICAgICAgICAgICAgICAgICBzZXQgdmFycyhmbG93X25hbWUpICRwCi0gICAgICAgICAgICAgICAgICBpZiB7W2ZpbGUgZXhpc3RzICR2YXJzKHBhcnRpdGlvbl9kaXIpLyRwLyR2YXJzKHNjcmlwdF9kaXIpLy5oaWVyc3RlcHMudGNsXX0gewotIyAgICAgICAgICAgICAgICAgICAgIHB1dHMgJGZwMiAiIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICRwIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIiAKLSAgICAgICAgICAgICAgICAgICAgIHNldCBpcCBbb3BlbiAkdmFycyhwYXJ0aXRpb25fZGlyKS8kcC8kdmFycyhzY3JpcHRfZGlyKS8uaGllcnN0ZXBzLnRjbCByXQotICAgICAgICAgICAgICAgICAgICAgaWYgeyRwICE9ICR2YXJzKGRlc2lnbil9IHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHdoaWxlIHtbZ2V0cyAkaXAgbGluZV0+PTB9IHsgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBwdXRzICRmcDIgJGxpbmUgCi0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICAgd2hpbGUge1tnZXRzICRpcCBsaW5lXT49MH0gewotICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYge1tyZWdleHAgImNyZWF0ZV9mbG93X3N0ZXAgLW5hbWUgdG9wXyIgJGxpbmVdfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdXRzICRmcDIgJGxpbmUgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aGlsZSB7W2dldHMgJGlwIGxpbmVdPj0wfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiB7W3JlZ2V4cCAiXlx9IiAkbGluZV19IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1dHMgJGZwMiAkbGluZSAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHV0cyAkZnAyICRsaW5lIAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgaWYge1tmaWxlIGV4aXN0cyAkdmFycyhwYXJ0aXRpb25fZGlyKS8kcC9ydW5fZmxvdy50Y2xdfSB7Ci0gICAgICAgICAgICAgICAgICAgICBzZXQgaXAgW29wZW4gJHZhcnMocGFydGl0aW9uX2RpcikvJHAvcnVuX2Zsb3cudGNsIHJdCi0gICAgICAgICAgICAgICAgICAgICB3aGlsZSB7W2dldHMgJGlwIGxpbmVdPj0wfSB7IAotICAgICAgICAgICAgICAgICAgICAgICAgcHV0cyAkZnAgJGxpbmUgCi0gICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMocGFydGl0aW9uX2Rpcl9wYXNzMildICYmIFtmaWxlIGV4aXN0cyAkdmFycyhwYXJ0aXRpb25fZGlyX3Bhc3MyKS8kcC9ydW5fZmxvdy50Y2xdfSB7Ci0gICAgICAgICAgICAgICAgICAgICBzZXQgaXAgW29wZW4gJHZhcnMocGFydGl0aW9uX2Rpcl9wYXNzMikvJHAvcnVuX2Zsb3cudGNsIHJdCi0gICAgICAgICAgICAgICAgICAgICB3aGlsZSB7W2dldHMgJGlwIGxpbmVdPj0wfSB7IAotICAgICAgICAgICAgICAgICAgICAgICAgcHV0cyAkZnAgJGxpbmUgCi0gICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICBwdXRzICRmcDIgIiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBISUVSIFNURVBTIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIiAKLSAgICAgICAgICAgICAgIHB1dHMgJGZwMiAkdmFycyhmbG93X3N0ZXBzLGhpZXIpCi0gICAgICAgICAgICAgICBzZXQgdmFycyhmbG93X25hbWUpICR2YXJzKGRlc2lnbikKLSAgICAgICAgICAgICAgIHNldCBhc3RlcHMgW0ZGOjphZGp1c3Rfc3RlcHNdCi0jICAgICAgICAgICAgICAgcHV0cyAkZnAgImNyZWF0ZV9mbG93IFxcXG4gICAtbmFtZSAkdmFycyhmbG93X25hbWUpXFxcbiAgIC10b29sICR2YXJzKG1ha2VfdG9vbClcXFxuICAgLXRvb2xfb3B0aW9ucyB7LWxvZyAkdmFycyhmbG93X25hbWUpLmxvZ31cXFxuICAgXFtsaXN0ICRhc3RlcHNcXVxuIgotICAgICAgICAgICAgICAgc2V0IHBzdGVwcyBbbGlzdF0KLSAgICAgICAgICAgICAgIHNldCBic3RlcHMgW2xpc3RdCi0gICAgICAgICAgICAgICBmb3JlYWNoIHMgJGFzdGVwcyB7Ci0gICAgICAgICAgICAgICAgICBpZiB7KFtsc2VhcmNoICR2YXJzKGZzdGVwcykgJHNdICE9IC0xKSAmJiAoJHMgIT0gImFzc2VtYmxlIil9IHsKLSAgICAgICAgICAgICAgICAgICAgIGxhcHBlbmQgYnN0ZXBzICRzCi0gICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgaWYgeyFbcmVnZXhwICJeYXNzZW1ibGUiICRzXX0gewotICAgICAgICAgICAgICAgICAgICAgICAgbGFwcGVuZCBwc3RlcHMgJHMKLSAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIHNldCB2YXJzKGZsb3dfbmFtZSkgaW50ZXJtZWRpYXRlX2Fzc2VtYmx5Ci0gICAgICAgICAgICAgICBwdXRzICRmcCAiY3JlYXRlX2Zsb3cgXFxcbiAgIC1uYW1lICR2YXJzKGZsb3dfbmFtZSlcXFxuICAgLXRvb2wgJHZhcnMobWFrZV90b29sKVxcXG4gICAtdG9vbF9vcHRpb25zIHstbG9nICR2YXJzKGZsb3dfbmFtZSkubG9nfVxcXG4gICBcW2xpc3QgYXNzZW1ibGVfZmxleGlsbVxdXG4iCi0gICAgICAgICAgICAgICBzZXQgdmFycyhmbG93X25hbWUpIGZpbmFsX2Fzc2VtYmx5Ci0gICAgICAgICAgICAgICBwdXRzICRmcCAiY3JlYXRlX2Zsb3cgXFxcbiAgIC1uYW1lICR2YXJzKGZsb3dfbmFtZSlcXFxuICAgLXRvb2wgJHZhcnMobWFrZV90b29sKVxcXG4gICAtdG9vbF9vcHRpb25zIHstbG9nICR2YXJzKGZsb3dfbmFtZSkubG9nfVxcXG4gICBcW2xpc3QgYXNzZW1ibGVcXVxuIgotICAgICAgICAgICAgICAgc2V0IHZhcnMoZmxvd19uYW1lKSBwYXJ0aXRpb25pbmcKLSAgICAgICAgICAgICAgIHB1dHMgJGZwICJjcmVhdGVfZmxvdyBcXFxuICAgLW5hbWUgJHZhcnMoZmxvd19uYW1lKVxcXG4gICAtdG9vbCAkdmFycyhtYWtlX3Rvb2wpXFxcbiAgIC10b29sX29wdGlvbnMgey1sb2cgJHZhcnMoZmxvd19uYW1lKS5sb2d9XFxcbiAgIFxbbGlzdCAkcHN0ZXBzXF1cbiIKLSMgICAgICAgICAgICAgICBwdXRzICRmcCAicnVuX2Zsb3cgLWZsb3cgJHZhcnMoZmxvd19uYW1lKSIKLSAgICAgICAgICAgICAgIHVuc2V0IHZhcnMoZmxvd19zdGVwcykKLSMgICAgICAgICAgICAgICBzZXQgdmFycyhmbG93X25hbWUpICR2YXJzKGRlc2lnbikKLSMgICAgICAgICAgICAgICBwdXRzICRmcCAiY3JlYXRlX2Zsb3cgXFxcbiAgIC1uYW1lICR2YXJzKGZsb3dfbmFtZSlcXFxuICAgLXRvb2wgJHZhcnMobWFrZV90b29sKVxcXG4gICAtdG9vbF9vcHRpb25zIHstbG9nICR2YXJzKGZsb3dfbmFtZSkubG9nfVxcXG4gICBcW2xpc3QgJGJzdGVwc1xdXG4iCi0gICAgICAgICAgICAgICBpZiB7W2ZpbGUgZXhpc3RzICR2YXJzKGN3ZCkvLnBsdWdpbnNdfSB7Ci0gICAgICAgICAgICAgICAgICBzZXQgaXAgW29wZW4gJHZhcnMoY3dkKS8ucGx1Z2lucyByXQotICAgICAgICAgICAgICAgICAgd2hpbGUge1tnZXRzICRpcCBsaW5lXT49MH0geyAKLSAgICAgICAgICAgICAgICAgICAgIHB1dHMgJGZwMSAkbGluZSAKLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIGNsb3NlICRpcAotICAgICAgICAgICAgICAgICAgZmlsZSBkZWxldGUgJHZhcnMoY3dkKS8ucGx1Z2lucyAKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIGNsb3NlICRmcAotICAgICAgICAgICAgICAgY2xvc2UgJGZwMQotICAgICAgICAgICAgICAgY2xvc2UgJGZwMgotICAgICAgICAgICAgfQotICAgICAgICAgfQotICAgICAgfQotCi0gICAgICBjbG9zZSAkb3AKLQotICAgfQotCi0gICBwcm9jIHNldF9zdGVwcyB7bW9kZSBmb3JtYXR9IHsKLSAgICAgICMKLSAgICAgICMgU2V0cyB0aGUgdmFycygpIGFycmF5IGJhc2VkIG9uIHRoZSBtb2RlL2Zvcm1hdCBwYXNzZWQgaW4KLSAgICAgICMKLQotICAgICAgZ2xvYmFsIHZhcnMKLSAgICAgIGdsb2JhbCBlcnJvcnMKLQotICAgICAgaWYgeyRtb2RlID09ICJoaWVyIiB9IHsKLSAgICAgICAgIHNldCBtb2RlICJ0b3BfZG93biIKLSAgICAgICAgIGlmIHskdmFycyhoaWVyX2Zsb3dfdHlwZSkgPT0gIjJwYXNzIn0gewotICAgICAgICAgICAgc2V0IG1vZGUgIjJwYXNzIgotICAgICAgICAgfQotICAgICAgfQotCi0gICAgICBzd2l0Y2ggJG1vZGUgewotICAgICAgICAgInVzZXIiIHsKLSAgICAgICAgICAgIGlmIHshW2luZm8gZXhpc3RzIHZhcnMoc3RlcHMpXX0gewotICAgICAgICAgICAgICAgcHV0cyAiPEZGPiBFUlJPUjogRm9yIHVzZXIgbW9kZSwgdmFycyhzdGVwcykgbXVzdCBiZSBwcm92aWRlZCIKLSAgICAgICAgICAgICAgIGV4aXQKLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0KLSAgICAgICAgICJmbGF0IiB7Ci0gICAgICAgICAgICBzZXQgdmFycyhzdGVwcykgW2xpc3QgImluaXQiICJwbGFjZSIgInByZWN0cyIgImN0cyIgInBvc3RjdHMiIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicG9zdGN0c19ob2xkIiAicm91dGUiICJwb3N0cm91dGUiIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicG9zdHJvdXRlX2hvbGQiICJwb3N0cm91dGVfc2lfaG9sZCIgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJwb3N0cm91dGVfc2kiICJzaWdub2ZmIl0KLSAgICAgICAgICAgIGlmIHskdmFycyhwcmVyb3V0ZV9vcHRfZGVzaWduKX0gewotICAgICAgICAgICAgICAgc2V0IHZhcnMoc3RlcHMpIFtscmVwbGFjZSAkdmFycyhzdGVwcykgW2xzZWFyY2ggJHZhcnMoc3RlcHMpICJwbGFjZSJdIFtsc2VhcmNoICR2YXJzKHN0ZXBzKSAiY3RzIl0gcHJlcm91dGVdCi0gICAgICAgICAgICB9Ci0jICAgICAgICAgICAgaWYgeyR2YXJzKHJvdXRlX29wdF9kZXNpZ24pfSB7Ci0jICAgICAgICAgICAgICAgc2V0IHZhcnMoc3RlcHMpIFtscmVwbGFjZSAkdmFycyhzdGVwcykgW2xzZWFyY2ggJHZhcnMoc3RlcHMpICJyb3V0ZSJdIFtsc2VhcmNoICR2YXJzKHN0ZXBzKSAicG9zdHJvdXRlIl0gcm91dGVfb3B0X2Rlc2lnbl0KLSMgICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiAkdmFycyhyYykgewotICAgICAgICAgICAgICAgaWYgeyR2YXJzKGVuYWJsZV9yY3ApfSB7IAotICAgICAgICAgICAgICAgICAgc2V0IHZhcnMoc3RlcHMpIFtjb25jYXQgInN5bl9tYXAiICJzeW5faW5jciIgInN5bl9wbGFjZSIgJHZhcnMoc3RlcHMpXQotICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgIHNldCB2YXJzKHN0ZXBzKSBbY29uY2F0ICJzeW5fbWFwIiAic3luX2luY3IiICR2YXJzKHN0ZXBzKV0KLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0KLQotICAgICAgICAgInRvcF9kb3duIiB7Ci0gICAgICAgICAgICAgICBzZXQgdmFycyhzdGVwcykgW2xpc3QgInBhcnRpdGlvbl9wbGFjZSIgImFzc2lnbl9waW4iICJwYXJ0aXRpb24iICJpbml0IiAicGxhY2UiICJwcmVjdHMiIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImN0cyIgInBvc3RjdHMiICJwb3N0Y3RzX2hvbGQiICJyb3V0ZSIgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicG9zdHJvdXRlIiAicG9zdHJvdXRlX2hvbGQiIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInBvc3Ryb3V0ZV9zaV9ob2xkIiAicG9zdHJvdXRlX3NpIiBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzaWdub2ZmIiAiYXNzZW1ibGUiXQotICAgICAgICAgICAgICAgc2V0IHZhcnMoaHN0ZXBzKSBbbGlzdCAiYXNzZW1ibGUiICJwYXJ0aXRpb25fcGxhY2UiICJhc3NpZ25fcGluIiAicGFydGl0aW9uIl0KLSAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyh1c2VfZmxleG1vZGVscyldICYmICR2YXJzKHVzZV9mbGV4bW9kZWxzKX0gewotICAgICAgICAgICAgICAgICAgIyBJbnNlcnQgdGhlIG1vZGVsX2dlbiBzdGVwIGJlZm9yZSBwYXJ0aXRpb25fcGxhY2UKLSAgICAgICAgICAgICAgICAgIGZvcmVhY2ggdmFybmFtZSB7c3RlcHMgaHN0ZXBzfSB7Ci0gICAgICAgICAgICAgICAgICAgICBzZXQgb2xkICR2YXJzKCR2YXJuYW1lKQotICAgICAgICAgICAgICAgICAgICAgc2V0IHZhcnMoJHZhcm5hbWUpIFtsaW5zZXJ0ICRvbGQgW2xzZWFyY2ggJG9sZCAicGFydGl0aW9uX3BsYWNlIl0gIm1vZGVsX2dlbiJdCi0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoZmxleG1vZGVsX3Byb3RvdHlwZSldICYmICR2YXJzKGZsZXhtb2RlbF9wcm90b3R5cGUpfSB7Ci0gICAgICAgICAgICAgICAgICAgICAjIEluc2VydCB0aGUgcHJvdG90eXBlIHN0ZXAgYmVmb3JlIHBhcnRpdGlvbl9wbGFjZQotICAgICAgICAgICAgICAgICAgICAgZm9yZWFjaCB2YXJuYW1lIHtzdGVwcyBoc3RlcHN9IHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHNldCBvbGQgJHZhcnMoJHZhcm5hbWUpCi0gICAgICAgICAgICAgICAgICAgICAgICBzZXQgdmFycygkdmFybmFtZSkgW2xpbnNlcnQgJG9sZCBbbHNlYXJjaCAkb2xkICJwYXJ0aXRpb25fcGxhY2UiXSAicHJvdG90eXBlIl0KLSAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgICAgc2V0IHZhcnMoZnN0ZXBzKSBbbGlzdCAiaW5pdCIgInBsYWNlIiAicHJlY3RzIiAiY3RzIiAicG9zdGN0cyIgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicG9zdGN0c19ob2xkIiAicm91dGUiICJwb3N0cm91dGUiIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInBvc3Ryb3V0ZV9ob2xkIiAicG9zdHJvdXRlX3NpX2hvbGQiIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInBvc3Ryb3V0ZV9zaSIgInNpZ25vZmYiXQotICAgICAgICAgfQotICAgICAgICAgIjFwYXNzIiB7Ci0gICAgICAgICAgICAgICBzZXQgdmFycyhzdGVwcykgW2xpc3QgInBhcnRpdGlvbl9wbGFjZSIgImFzc2lnbl9waW4iICJwYXJ0aXRpb24iICJpbml0IiAicGxhY2UiICJwcmVjdHMiIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImN0cyIgInBvc3RjdHMiICJwb3N0Y3RzX2hvbGQiICJyb3V0ZSIgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicG9zdHJvdXRlIiAicG9zdHJvdXRlX2hvbGQiIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInBvc3Ryb3V0ZV9zaV9ob2xkIiAicG9zdHJvdXRlX3NpIiBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzaWdub2ZmIiAiYXNzZW1ibGUiXQotICAgICAgICAgICAgICAgc2V0IHZhcnMoaHN0ZXBzKSBbbGlzdCAiYXNzZW1ibGUiICJwYXJ0aXRpb25fcGxhY2UiICJhc3NpZ25fcGluIiAicGFydGl0aW9uIl0KLSAgICAgICAgICAgICAgIHNldCB2YXJzKGZzdGVwcykgW2xpc3QgImluaXQiICJwbGFjZSIgInByZWN0cyIgImN0cyIgInBvc3RjdHMiIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInBvc3RjdHNfaG9sZCIgInJvdXRlIiAicG9zdHJvdXRlIiBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJwb3N0cm91dGVfaG9sZCIgInBvc3Ryb3V0ZV9zaV9ob2xkIiBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJwb3N0cm91dGVfc2kiICJzaWdub2ZmIl0KLSAgICAgICAgIH0KLSAgICAgICAgICIycGFzcyIgewotICAgICAgICAgICAgaWYgeyR2YXJzKGVuYWJsZV9mbGV4aWxtKX0gewotICAgICAgICAgICAgICAgc2V0IHZhcnMoc3RlcHMpIFtsaXN0ICJwYXJ0aXRpb25fcGxhY2UiICJhc3NpZ25fcGluIiAicGFydGl0aW9uIiAiaW5pdCIgInBsYWNlIiAicHJlY3RzIiAiYXNzZW1ibGVfZmxleGlsbSIgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJjdHMiICJwb3N0Y3RzIiAicG9zdGN0c19ob2xkIiAicm91dGUiIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicG9zdHJvdXRlIiAicG9zdHJvdXRlX2hvbGQiIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicG9zdHJvdXRlX3NpX2hvbGQiICJwb3N0cm91dGVfc2kiIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic2lnbm9mZiIgImFzc2VtYmxlIl0KLSAgICAgICAgICAgICAgIHNldCB2YXJzKGhzdGVwcykgW2xpc3QgImFzc2VtYmxlIiAiYXNzZW1ibGVfZmxleGlsbSIgInBhcnRpdGlvbl9wbGFjZSIgImFzc2lnbl9waW4iICJwYXJ0aXRpb24iXQotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIHNldCB2YXJzKHN0ZXBzKSBbbGlzdCAicGFydGl0aW9uX3BsYWNlIiAiYXNzaWduX3BpbiIgInBhcnRpdGlvbiIgImluaXQiICJwbGFjZSIgInByZWN0cyIgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJjdHMiICJyZWJ1ZGdldCIgInBvc3RjdHMiICJwb3N0Y3RzX2hvbGQiICJyb3V0ZSIgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJwb3N0cm91dGUiICJwb3N0cm91dGVfaG9sZCIgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJwb3N0cm91dGVfc2lfaG9sZCIgInBvc3Ryb3V0ZV9zaSIgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzaWdub2ZmIiAiYXNzZW1ibGUiXQotICAgICAgICAgICAgICAgc2V0IHZhcnMoaHN0ZXBzKSBbbGlzdCAiYXNzZW1ibGUiICJyZWJ1ZGdldCIgInBhcnRpdGlvbl9wbGFjZSIgImFzc2lnbl9waW4iICJwYXJ0aXRpb24iXQotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKHVzZV9mbGV4bW9kZWxzKV0gJiYgJHZhcnModXNlX2ZsZXhtb2RlbHMpfSB7Ci0gICAgICAgICAgICAgICAjIEluc2VydCB0aGUgbW9kZWxfZ2VuIHN0ZXAgYmVmb3JlIHBhcnRpdGlvbl9wbGFjZQotICAgICAgICAgICAgICAgZm9yZWFjaCB2YXJuYW1lIHtzdGVwcyBoc3RlcHN9IHsKLSAgICAgICAgICAgICAgICAgIHNldCBvbGQgJHZhcnMoJHZhcm5hbWUpCi0gICAgICAgICAgICAgICAgICBzZXQgdmFycygkdmFybmFtZSkgW2xpbnNlcnQgJG9sZCBbbHNlYXJjaCAkb2xkICJwYXJ0aXRpb25fcGxhY2UiXSAibW9kZWxfZ2VuIl0KLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhmbGV4bW9kZWxfcHJvdG90eXBlKV0gJiYgJHZhcnMoZmxleG1vZGVsX3Byb3RvdHlwZSl9IHsKLSAgICAgICAgICAgICAgICAgICMgSW5zZXJ0IHRoZSBwcm90b3R5cGUgc3RlcCBiZWZvcmUgcGFydGl0aW9uX3BsYWNlCi0gICAgICAgICAgICAgICAgICBmb3JlYWNoIHZhcm5hbWUge3N0ZXBzIGhzdGVwc30gewotICAgICAgICAgICAgICAgICAgICAgc2V0IG9sZCAkdmFycygkdmFybmFtZSkKLSAgICAgICAgICAgICAgICAgICAgIHNldCB2YXJzKCR2YXJuYW1lKSBbbGluc2VydCAkb2xkIFtsc2VhcmNoICRvbGQgInBhcnRpdGlvbl9wbGFjZSJdICJwcm90b3R5cGUiXQotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAgICAgc2V0IHZhcnMoZnN0ZXBzKSBbbGlzdCAiaW5pdCIgInBsYWNlIiAicHJlY3RzIiAiY3RzIiAicG9zdGN0cyIgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicG9zdGN0c19ob2xkIiAicm91dGUiICJwb3N0cm91dGUiIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInBvc3Ryb3V0ZV9ob2xkIiAicG9zdHJvdXRlX3NpX2hvbGQiIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInBvc3Ryb3V0ZV9zaSIgInNpZ25vZmYiXQotICAgICAgICAgfQotICAgICAgICAgImJvdHRvbV91cCIgewotICAgICAgICAgICAgc2V0IHZhcnMoc3RlcHMpIFtsaXN0ICJpbml0IiAicGxhY2UiICJwcmVjdHMiICJjdHMiICJwb3N0Y3RzIiBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInBvc3RjdHNfaG9sZCIgInJvdXRlIiAicG9zdHJvdXRlIiBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInBvc3Ryb3V0ZV9ob2xkIiAicG9zdHJvdXRlX3NpX2hvbGQiIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicG9zdHJvdXRlX3NpIiAic2lnbm9mZiIgImFzc2VtYmxlIl0KLSAgICAgICAgICAgIHNldCB2YXJzKGhzdGVwcykgW2xpc3QgImFzc2VtYmxlIl0KLSAgICAgICAgICAgIHNldCB2YXJzKGZzdGVwcykgW2xpc3QgImluaXQiICJwbGFjZSIgInByZWN0cyIgImN0cyIgInBvc3RjdHMiIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInBvc3RjdHNfaG9sZCIgInJvdXRlIiAicG9zdHJvdXRlIiBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJwb3N0cm91dGVfaG9sZCIgInBvc3Ryb3V0ZV9zaV9ob2xkIiBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJwb3N0cm91dGVfc2kiICJzaWdub2ZmIl0KLSAgICAgICAgIH0KLQotICAgICAgICAgImRlZmF1bHQiIHsKLSAgICAgICAgICAgIHB1dHMgIkludGVybmFsIGVycm9yOiBVbmtub3duIG1vZGUgXCIkdmFycyhtb2RlKVwiLiAgQWJvcnRpbmcuIgotICAgICAgICAgICAgZXhpdCAtMTExCi0gICAgICAgICB9Ci0gICAgICB9Ci0KLSAgICAgIGlmIHshJHZhcnMoZW5hYmxlX2NlbHRpY19zdGVwcykgfSB7Ci0gICAgICAgICBmb3JlYWNoIHN0ZXAgW2xpc3QgInBvc3Ryb3V0ZV9zaSIgInBvc3Ryb3V0ZV9zaV9ob2xkIl0gewotICAgICAgICAgICAgc2V0IGluZGV4IFtsc2VhcmNoICR2YXJzKHN0ZXBzKSAkc3RlcF0KLSAgICAgICAgICAgIGlmIHskaW5kZXggIT0gLTF9IHsKLSAgICAgICAgICAgICAgIHNldCB2YXJzKHN0ZXBzKSBbbHJlcGxhY2UgJHZhcnMoc3RlcHMpICRpbmRleCAkaW5kZXhdCi0gICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0gICAgICB9Ci0gICB9Ci0KLSAgcHJvYyBmbGF0dGVuX2N1cmxpZXNfaW5fbGlzdCBsaXN0IHtzdHJpbmcgbWFwIHtceyAiIiBcfSAiIn0gJGxpc3R9Ci0KLSAgIwotICAjIGdlbl9pbmNyX2ZpbGVuYW1lKHNjcmlwdE5hbWVCYXNlKQotICAjIEJ1ZGEgTGV1bmcsIDExLzIwMTEKLSAgIyBhcmdzOgotICAjICAkc2NyaXB0TmFtZUJhc2U6IDxwYXRoPi9iYXNlbmFtZSBvZiBkaXIKLSAgIyBAcmV0dXJuOiBuZXcgYmFzZSBuYW1lCi0gICMKLSAgIyBEZXNjcmlwdGlvbjogR2VuZXJhdGVzIGEgbmV3IG91dHB1dCBmaWxlIG5hbWUgdXNpbmcgdGhlIGlucHV0Ci0gICMgYXJndW1lbnQgYXMgYSBiYXNlbmFtZS4gVGhpcyBwcm9jIGxvb2tzIGZvciBhbGwgZmlsZXMgaW4gdGhlCi0gICMgc2FtZSBkaXJlY3RvcnkgYXMgdGhlIGFyZ3VtZW50IHdpdGggYSBtYXRjaGluZyBiYXNlbmFtZS4KLSAgIyBJdCB0aGVuIGxvb2tzIGZvciBhIHRyYWlsaW5nIGludGVnZXIgc3VmZml4LCBhbmQgY29tcGFyZXMKLSAgIyBhbGwgbWF0Y2hpbmcgZmlsZXMgdG8gZmluZCB0aGUgbGFyZ2VzdCBpbnRlZ2VyLiAKLSAgIyBJdCByZXR1cm5zIGEgbmV3IGZpbGUgbmFtZSBvZiB0aGUgZm9ybSA8cGF0aD4vPGJhc2VuYW1lPjxsYXJnZXN0IGludCArIDE+Ci0gICMKLSAgIyBFeGFtcGxlIFVzYWdlOiBpbnB1dCBhcmd1bWVudCBzZXR1cC50Y2wKLSAgIyBmaWxlcyBpbiBkaXI6IHNldHVwLnRjbCBzZXR1cC50Y2wxCi0gICMgQHJldHVybjogc2V0dXAudGNsMgotICAjCi0KLSAgcHJvYyBnZW5faW5jcl9maWxlbmFtZSB7c2NyaXB0TmFtZUJhc2V9IHsKLSAgICBzZXQgZmlsZV9saXN0IFtnbG9iIC1ub2NvbXBsYWluIFtzZXQgc2NyaXB0TmFtZUJhc2VdKl0KLSAgICBpZiB7W2xsZW5ndGggJGZpbGVfbGlzdF0gPiAwfSB7Ci0gICAgICBzZXQgaGlnaE51bSAxCi0gICAgICBmb3JlYWNoIGZpbGUgJGZpbGVfbGlzdCB7Ci0gICAgICAgIHNldCByZSAiW3NldCBzY3JpcHROYW1lQmFzZV0oXFtcWzpkaWdpdDpcXVxdKylcJCIKLSAgICAgICAgaWYge1tyZWdleHAgJHJlICRmaWxlIGZ1bGwgbnVtXX0gewotICAgICAgICAgIGlmIHskbnVtID49ICRoaWdoTnVtfSB7Ci0gICAgICAgICAgICBzZXQgaGlnaE51bSBbaW5jciBudW1dCi0gICAgICAgICAgfQotICAgICAgICB9Ci0gICAgICB9Ci0gICAgICBzZXQgc2NyaXB0TmFtZSAkc2NyaXB0TmFtZUJhc2UkaGlnaE51bQotICAgIH0gZWxzZSB7Ci0gICAgICBzZXQgc2NyaXB0TmFtZSAiW3NldCBzY3JpcHROYW1lQmFzZV0iCi0gICAgfQotICAgIHJldHVybiAkc2NyaXB0TmFtZQotICB9Ci0KLSAgIwotICAjIGdlbl9uZXdfcnVuZGlyIHthcmdzfQotICAjIEJ1ZGEgTGV1bmcsIDExLzIwMTEKLSAgIyBhcmdzOgotICAjICAtZGlyIDxzdHJpbmc+OiBkaXIgbmFtZSB0byBjaGFuZ2UKLSAgIyAgLXN0eWxlIFtpbmNyZW1lbnR8ZGF0ZXxjdXN0b21dOiBuYW1pbmcgc3R5bGUgdG8gdXNlIFtpbmNyZW1lbnR8ZGF0ZXxjdXN0b21dCi0gICMgIC1kYXRlX3N0eWxlIDxzdHJpbmc+IChyZXF1aXJlZCB3aGVuIHN0eWxlPWRhdGUpOiB0Y2wgY29tbWFuZHMgdG8gY3JlYXRlIGEgZGF0ZSBzdHJpbmcKLSAgIyAgLWN1c3RvbSA8c3RyaW5nPiAob3B0aW9uYWwpOiBhIGN1c3RvbSBzdHJpbmcgdG8gcHJlcGVuZCBvciBwb3N0cGVuZCB0byB0aGUgZGlyCi0gICMgIC1uYW1lX2NoYW5nZV9vcmRlciBbcHJlZml4fHN1ZmZpeF0gKHJlcXVpcmVkIHdoZW4gY3VzdG9tU3RyaW5nIGlzIGRlZmluZWQpOiBbcHJlZml4fHN1ZmZpeF0KLSAgIyBAcmV0dXJuOiBuZXcgZGlyIG5hbWUKLSAgIwotICAjIERlc2NyaXB0aW9uOiBHZW5lcmF0ZXMgYSBuZXcgZGlyZWN0b3J5IG5hbWUgYmFzZWQgb24gdGhlIGJhc2VuYW1lCi0gICMgYW5kIG9wdGlvbnMgcHJvdmlkZWQuIFRoZSBvcHRpb25zIGFsbG93ZWQgYXJlOgotICAjCi0gICMgc3R5bGU6Ci0gICMgICogaW5jcmVtZW50OiBhZGQgYW4gaW50ZWdlciB0byB0aGUgcnVuZGlyIGJhc2VkIG9uIGRpcnMgZm91bmQgaW4gW2Rpcm5hbWUgJGRpcl0KLSAgIyAgKiBkYXRlOiBhZGQgYSBkYXRlIHN0cmluZyB0byB0aGUgcnVuZGlyIG5hbWUsIHVzaW5nIHZhcnMoZGF0ZV9zdHlsZSkgdG8gY29udHJvbCB0aGUgZm9ybWF0dGluZwotICAjICAqIGN1c3RvbTogYWRkIGEgY3VzdG9tIHN0cmluZyB0byB0aGUgcnVuZGlyIG5hbWUKLSAgIyBuYW1lQ2hhbmdlT3JkZXI6ICAgCi0gICMgICogcHJlZml4OiBhZGQgdGhlIGN1c3RvbSBzdHJpbmcgdG8gdGhlIGJlZ2lubmluZyBvZiB0aGUgcnVuZGlyCi0gICMgICogc3VmZml4OiBhZGQgdGhlIGN1c3RvbSBzdHJpbmcgdG8gdGhlIGVuZCBvZiB0aGUgcnVuZGlyCi0gICMKLSAgIyBOT1RFOiBpbmNyZW1lbnQsIGRhdGUsIGFuZCBjdXN0b20gYXJlIG11dHVhbGx5IGV4Y2x1c2l2ZSBvcHRpb25zCi0gICMKLSAgIyBFeGFtcGxlIFVzYWdlOiAKLSAgIyBnZW5fbmV3X3J1bmRpciB3b3JrL3J1biBpbmNyZW1lbnQKLSAgIyAoZGlycyB3aXRoIG1hdGNoaW5nIGJhc2VuYW1lIDogd29yay9ydW4xIHdvcmsvcnVuMikKLSAgIyBAcmV0dXJuOiB3b3JrL3J1bjMKLSAgIwotICAjIGdlbl9uZXdfcnVuZGlyIHdvcmsvcnVuIGRhdGUKLSAgIyBAcmV0dXJuOiB3b3JrL3J1bl8yMDExLTExLTIzXzEyXzA5XzU4IAotICAjCi0gICMgZ2VuX25ld19ydW5kaXIgd29yay9ydW4gY3VzdG9tIHJjcF9oaWdoX2VmZiBwcmVmaXgKLSAgIyBAcmV0dXJuOiB3b3JrL3JjcF9oaWdoX2VmZl9ydW4KLQotICBwcm9jIGdlbl9uZXdfcnVuZGlyIHthcmd2fSB7Ci0KLSAgICAgIGdsb2JhbCB2YXJzCi0gICAgICBnbG9iYWwgZGFyZ3MKLSAgICAgIGdsb2JhbCBmYXJncwotICAgICAgIwotICAgICAgIyBQcm9jIGRlZmF1bHRzCi0gICAgICAjIE5vdGUgdGhhdCBkZWZhdWx0cyBsaXZlIGluIHRoZSBkZWZhdWx0X3NldHVwLnRjbCwgYnV0IHdoZW4gZ2VuX25ld19ydW5kaXIgaXMgY2FsbGVkLCB0aGF0IHNldHVwLnRjbCBoYXMgbm90IHlldCBiZWVuIGxvYWRlZAotICAgICAgIyBUaGVzZSBkZWZhdWx0cyBtdXN0IHN0YXkgc3luY2hyb25pemVkIHRvICB0aGUgZGVmYXVsdF9zZXR1cC50Y2wgdmFycygpIGVxdWl2YWxlbnRzCi0gICAgICAjCi0gICAgICBzZXQgZGVmX2RhdGVfc3R5bGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiXFtjbG9jayBmb3JtYXQgXFtjbG9jayBzZWNvbmRzXF0gLWZvcm1hdCBcIiVZLSVtLSVkXyVIXyVNXyVTXCIgXF0iCi0gICAgICAjIFVzZSB0aGUgZm9sbG93aW5nIGlmIHlvdSB3YW50IGEgY3VzdG9tIHByZWZpeC9zdWZmaXggYWRkZWQgdG8gdGhlIHJ1bmRpcgotICAgICAgc2V0IGRlZl9jdXN0b21fcnVuZGlyX25hbWVfYXBwZW5kICAgICAgICAgICAgICAgICAgIiIKLSAgICAgICMgdmFycyhydW5kaXJfbmFtZWNoYW5nZV9tZXRob2QpIFtwcmVmaXh8c3VmZml4XQotICAgICAgc2V0IGRlZl9ydW5kaXJfbmFtZWNoYW5nZV9tZXRob2QgICAgICAgICAgICAgICAgICAgInN1ZmZpeCIKLQotICAgICAgIwotICAgICAgIyBBcmcgcHJvY2Vzc2luZwotICAgICAgIwotCi0gICAgICB3aGlsZSB7W2xsZW5ndGggJGFyZ3ZdID4gMH0gewotICAgICAgICAgc2V0IG9wdGlvbiBbbGluZGV4ICRhcmd2IDBdCi0gICAgICAgICBzZXQgYXJndiBbbHJlcGxhY2UgJGFyZ3YgMCAwXQotICAgICAgICAgc3dpdGNoIC1yZWdleHAgLS0gJG9wdGlvbiB7Ci0gICAgICAgICAgICBeLShkfC1kaXIpJCB7Ci0gICAgICAgICAgICAgICBzZXQgZGFzaF9kX3NjcmlwdF9kaXIgW2xpbmRleCAkYXJndiAwXQotICAgICAgICAgICAgICAgc2V0IGFyZ3YgW2xyZXBsYWNlICRhcmd2IDAgMF0KLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIF4tKHl8LXN0eWxlKSQgewotICAgICAgICAgICAgICBzZXQgZGFzaF95X3N0eWxlX3R5cGUgW2xpbmRleCAkYXJndiAwXQotICAgICAgICAgICAgICBzZXQgYXJndiBbbHJlcGxhY2UgJGFyZ3YgMCAwXQotICAgICAgICAgICAgfQotICAgICAgICAgICAgXi0odXwtcnVuZGlyKSQgewotICAgICAgICAgICAgICAgc2V0IGRhc2hfdV9ydW5kaXJfYmFzZSBbbGluZGV4ICRhcmd2IDBdCi0gICAgICAgICAgICAgICBzZXQgYXJndiBbbHJlcGxhY2UgJGFyZ3YgMCAwXQotICAgICAgICAgICAgfQotICAgICAgICAgfQotICAgICAgfSA7ICMgZW5kIHdoaWxlIChwcm9jZXNzaW5nIGFyZ3MpCi0KLSAgICAgIHNldCBkYmdNc2cgIjxGRi1JTlQ+IGdlbl9uZXdfcnVuZGlyKCk6ICIKLQotICAgICAgIwotICAgICAgIyBMb2FkIHZhcnMuIFRoaXMgd2lsbCBvdmVyd3JpdGUgYW55IEZGIGRlZmF1bHRzLCBidXQgbm90IHRoZSAtdS8teSBvcHRpb25zCi0gICAgICAjIE9ubHkgbG9va2luZyBmb3IgdGhlIGZvbGxvd2luZzoKLSAgICAgICMgdmFycyhydW5kaXJfYmFzZSkgKC11IHRha2VzIHByZWNlZGVuY2UpIAotICAgICAgIyB2YXJzKHJ1bmRpcikgLSBvdmVycmlkZXMgdmFycyhydW5kaXJfYmFzZSkgYW5kIC11Ly15Ci0gICAgICAjIHZhcnMoYXV0b19pbmNyZW1lbnRfcnVuZGlyX3N0eWxlKSAoLXkgdGFrZXMgcHJlY2VkZW5jZSkKLSAgICAgICMgdmFycyhkYXRlX3N0eWxlKSAobm8gZ2VuX2lubm92dXNfZmxvdy50Y2wgb3B0aW9uKQotICAgICAgIyB2YXJzKGN1c3RvbV9ydW5kaXJfbmFtZV9hcHBlbmQpIChubyBnZW5faW5ub3Z1c19mbG93LnRjbCBvcHRpb24pCi0gICAgICAjIHZhcnMocnVuZGlyX25hbWVjaGFuZ2VfbWV0aG9kKSAobm8gZ2VuX2lubm92dXNfZmxvdy50Y2wgb3B0aW9uKQotICAgICAgIwotICAgICAgRkZfTk9WVVM6OmV4ZWN1dGVfZmxvdyAic291cmNlX29ubHkiIHRydWUgIiIKLSAgIAotICAgICAgIyBOT1RFOiBhZnRlciB0aGUgYWJvdmUgZXhlY3V0ZXMsIGRhcmdzIGFuZCBmYXJncyBoYXZlIGFsbCBiZWVuIGFuYWx5emVkLCBhbmQgdmFycyBleGlzdCBmb3IgYWxsIHRob3NlIGVudHJpZXMKLSAgICAgICMgaW4gb3RoZXIgd29yZHMsIHdlIG5vIGxvbmdlciBjYXJlIGFib3V0IGRhcmdzKHJ1bmRpciksIG9ubHkgdmFycyhydW5kaXIpLi4uCi0gICAKLSAgICAgICMgSW4gY2FzZSB0aGUgdXNlciBkZWZpbmVkIHRoZXNlIGluIHRoZWlyIHNldHVwLnRjbAotICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycyhkYXRlX3N0eWxlKV19IHsKLSAgICAgICAgIHNldCBkYXRlX3N0eWxlICRkZWZfZGF0ZV9zdHlsZQotICAgICAgfQotICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycyhjdXN0b21fcnVuZGlyX25hbWVfYXBwZW5kKV19IHsKLSAgICAgICAgIHNldCB2YXJzKGN1c3RvbV9ydW5kaXJfbmFtZV9hcHBlbmQpICRkZWZfY3VzdG9tX3J1bmRpcl9uYW1lX2FwcGVuZAotICAgICAgfQotICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycyhydW5kaXJfbmFtZWNoYW5nZV9tZXRob2QpXX0gewotICAgICAgICAgc2V0IHZhcnMocnVuZGlyX25hbWVjaGFuZ2VfbWV0aG9kKSAkZGVmX3J1bmRpcl9uYW1lY2hhbmdlX21ldGhvZAotICAgICAgfQotICAgCi0gICAgICAjCi0gICAgICAjIFNldCB0aGUgcnVuZGlyIG9yaWdpbmFsIG5hbWUKLSAgICAgICMgUHJpb3JpdHk6Ci0gICAgICAjIDEpIHZhcnMocnVuZGlyKQotICAgICAgIyAyKSBkYXNoX3VfcnVuZGlyX2Jhc2UKLSAgICAgICMgMykgdmFycyhydW5kaXJfYmFzZSkKLSAgICAgICMgNCkgZGVmX3J1bmRpcgotICAgCi0gICAgICAjIGlmIHZhcnMocnVuZGlyKSBlcSBkYXJncyhydW5kaXIpLCB0aGVuIGJhc2ljYWxseSB0aGUgdXNlciBoYXMgbm90IHNwZWNpZmllZCBhIHZhcnMocnVuZGlyKSwgb3IgdGhleSBzZXQgaXQgdG8gLgotICAgICAgIyB1c2UgZmlsZSBub3JtYWxpemUgdG8gaGFuZGxlICIuLyIgdnMgIi4iCi0gICAgICBpZiB7W2ZpbGUgbm9ybWFsaXplICR2YXJzKHJ1bmRpcildIGVxIFtmaWxlIG5vcm1hbGl6ZSAkZGFyZ3MocnVuZGlyKV19IHsKLSAgICAgICAgaWYgeyFbaW5mbyBleGlzdHMgZGFzaF91X3J1bmRpcl9iYXNlXX0gewotICAgICAgICAgICBpZiB7IVtpbmZvIGV4aXN0cyB2YXJzKHJ1bmRpcl9iYXNlKV19IHsKLSAgICAgICAgICAgICBzZXQgcnVuZGlyX29yaWduYW1lICRkYXJncyhydW5kaXIpCi0gICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgc2V0IHJ1bmRpcl9vcmlnbmFtZSAkdmFycyhydW5kaXJfYmFzZSkKLSAgICAgICAgICAgfSAKLSAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhydW5kaXJfYmFzZSldICYmICR2YXJzKHJ1bmRpcl9iYXNlKSBuZSAkZGFzaF91X3J1bmRpcl9iYXNlfSB7Ci0gICAgICAgICAgICAgIyBDb25mbGljdCBiZXR3ZWVuIC11IGFuZCBzZXR1cC50Y2wuIC11IHdpbnMKLSAgICAgICAgICAgICBwdXRzICI8RkY+IFdBUk5JTkcgXCItdSAkZGFzaF91X3J1bmRpcl9iYXNlXCIgb3ZlcnJpZGluZyBjb25maWcgdmFyaWFibGUgdmFycyhydW5kaXJfYmFzZSkgKCR2YXJzKHJ1bmRpcl9iYXNlKSkiCi0gICAgICAgICAgICAgcHV0cyAiICAgICAgICAgICAgIFRvIHByZXZlbnQgdGhpcyBiZWhhdmlvciwgZG8gbm90IHVzZSB0aGUgXCItdVwiIG9wdGlvbiAoRkYgd2lsbCB1c2UgdmFycyhydW5kaXJfYmFzZSkgZnJvbSB5b3VyIGNvbmZpZyBmaWxlKS4iCi0gICAgICAgICAgIH0KLSAgICAgICAgICAgc2V0IHJ1bmRpcl9vcmlnbmFtZSAkZGFzaF91X3J1bmRpcl9iYXNlCi0gICAgICAgICB9IAotICAgICAgfSBlbHNlIHsKLSAgICAgICAgICMgVGhlIGZvbGxvd2luZyBoYW5kbGUgY29uZmxpY3RzIGJldHdlZW4gdmFycyhydW5kaXIpIGFuZCAtdSBvciB2YXJzKHJ1bmRpcl9iYXNlKQotICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyBkYXNoX3VfcnVuZGlyX2Jhc2VdfSB7IAotICAgICAgICAgICBpZiB7JHZhcnMocnVuZGlyKSBuZSAkZGFyZ3MocnVuZGlyKSAmJiAkdmFycyhydW5kaXIpIG5lICRkYXNoX3VfcnVuZGlyX2Jhc2V9IHsKLSAgICAgICAgICAgICBwdXRzICI8RkY+IFdBUk5JTkcgdmFycyhydW5kaXIpIFwiJHZhcnMocnVuZGlyKVwiIG92ZXJyaWRpbmcgXCItdSAkZGFzaF91X3J1bmRpcl9iYXNlXCIgb3B0aW9uLiIKLSAgICAgICAgICAgICBwdXRzICIgICAgICAgICAgICAgVG8gcHJldmVudCB0aGlzIGJlaGF2aW9yLCBkbyBub3Qgc2V0IHZhcnMocnVuZGlyKSBpbiB5b3VyIGNvbmZpZyBmaWxlLiIKLSAgICAgICAgICAgfSBlbHNlaWYge1tpbmZvIGV4aXN0cyB2YXJzKHJ1bmRpcl9iYXNlKV19IHsKLSAgICAgICAgICAgICBwdXRzICI8RkY+IFdBUk5JTkcgdmFycyhydW5kaXIpIFwiJHZhcnMocnVuZGlyKVwiIG92ZXJyaWRpbmcgY29uZmlnIHZhcmlhYmxlIHZhcnMocnVuZGlyX2Jhc2UpIFwiJHZhcnMocnVuZGlyX2Jhc2UpXCIiCi0gICAgICAgICAgICAgcHV0cyAiICAgICAgICAgICAgIFRvIHByZXZlbnQgdGhpcyBiZWhhdmlvciwgZG8gbm90IHNldCB2YXJzKHJ1bmRpcikgaW4geW91ciBjb25maWcgZmlsZS4iCi0gICAgICAgICAgIH0KLSAgICAgICAgIH0KLSAgICAgICAgIHNldCBydW5kaXJfb3JpZ25hbWUgJHZhcnMocnVuZGlyKQotICAgICAgfQotICAgICAgIwotICAgICAgIyBTZXQgdGhlIHJ1bmRpciBuYW1pbmcgc3R5bGUKLSAgICAgICMgUHJpb3JpdHk6Ci0gICAgICAjIDEpIHZhcnMoYXV0b19pbmNyZW1lbnRfcnVuZGlyX3N0eWxlKQotICAgICAgIyAyKSBkYXNoX3lfc3R5bGVfdHlwZQotICAgICAgIyAzKSBkZWZfYXV0b19pbmNyZW1lbnRfcnVuZGlyX3N0eWxlCi0gICAgICAgCi0gICAgICBpZiB7IVtpbmZvIGV4aXN0cyB2YXJzKGF1dG9faW5jcmVtZW50X3J1bmRpcl9zdHlsZSldfSB7Ci0gICAgICAgICBpZiB7IVtpbmZvIGV4aXN0cyBkYXNoX3lfc3R5bGVfdHlwZV19IHsKLSAgICAgICAgICAgc2V0IHN0eWxlVHlwZSAkZGFyZ3Moc3R5bGUpCi0gICAgICAgICB9IGVsc2UgewotICAgICAgICAgICBzZXQgc3R5bGVUeXBlICRkYXNoX3lfc3R5bGVfdHlwZQotICAgICAgICAgfSAKLSAgICAgIH0gZWxzZSB7IAotICAgICAgICAgIyB2YXJzKGF1dG9faW5jcmVtZW50X3J1bmRpcl9zdHlsZSkgd2FzIHNldCBpbiB0aGUgc2V0dXAudGNsCi0gICAgICAgICBpZiB7W2luZm8gZXhpc3RzIGRhc2hfeV9zdHlsZV90eXBlXSAmJiAkZGFzaF95X3N0eWxlX3R5cGUgbmUgJHZhcnMoYXV0b19pbmNyZW1lbnRfcnVuZGlyX3N0eWxlKX0gewotICAgICAgICAgICAjIENvbmZsaWN0IGJldHdlZW4gLXkgYW5kIHNldHVwLnRjbC4gLXkgd2lucwotICAgICAgICAgICBwdXRzICI8RkY+IFdBUk5JTkcgXCIteSAkZGFzaF95X3N0eWxlX3R5cGVcIiBvdmVycmlkaW5nIGNvbmZpZyB2YXJpYWJsZSB2YXJzKGF1dG9faW5jcmVtZW50X3J1bmRpcl9zdHlsZSkgKCR2YXJzKGF1dG9faW5jcmVtZW50X3J1bmRpcl9zdHlsZSkpIgotICAgICAgICAgICBwdXRzICIgICAgICAgICAgICAgVG8gcHJldmVudCB0aGlzIGJlaGF2aW9yLCBkbyBub3QgdXNlIHRoZSBcIi15XCIgb3B0aW9uIChGRiB3aWxsIHVzZSB2YXJzKGF1dG9faW5jcmVtZW50X3J1bmRpcl9zdHlsZSkgZnJvbSB5b3VyIGNvbmZpZyBmaWxlKS4iCi0gICAgICAgICBzZXQgc3R5bGVUeXBlICRkYXNoX3lfc3R5bGVfdHlwZQotICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgc2V0IHN0eWxlVHlwZSAkdmFycyhhdXRvX2luY3JlbWVudF9ydW5kaXJfc3R5bGUpCi0gICAgICAgICB9Ci0gICAgICB9Ci0gICAKLSAgICAgICMKLSAgICAgICMgSWYgaW5jcmVtZW50IGlzIHNwZWNpZmllZCwgLXUgLyB2YXJzKHJ1bmRpcikgaXMgcmVxdWlyZWQgOyBvdGhlcndpc2UgZXJyb3IgYW5kIGV4aXQ6Ci0gICAgICAjCi0gICAgICBpZiB7JHN0eWxlVHlwZSBlcSAiaW5jcmVtZW50IiAmJiAoW2ZpbGUgdGFpbCAkcnVuZGlyX29yaWduYW1lXSBlcSAiIiB8fCBbZmlsZSBub3JtYWxpemUgJHJ1bmRpcl9vcmlnbmFtZV0gZXEgW2ZpbGUgbm9ybWFsaXplIC5dKX0gewotICAgICAgICAgcHV0cyAiPEZGPiBFUlJPUjogUnVuZGlyIG5hbWluZyBzdHlsZSB3YXMgc2V0IHRvIFwiaW5jcmVtZW50XCIsIGJ1dCBydW5kaXIgZXZhbHVhdGVkIHRvIFwiLlwiIGR1ZSB0bzoiCi0gICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMocnVuZGlyKV0gJiYgW2ZpbGUgbm9ybWFsaXplICR2YXJzKHJ1bmRpcildIGVxIFtmaWxlIG5vcm1hbGl6ZSAuXX0geyAKLSAgICAgICAgICAgcHV0cyAiICAgICAgICAgICAgc2V0dGluZyB2YXJzKHJ1bmRpcikgdG8gXCIkdmFycyhydW5kaXIpXCIgaW4geW91ciBjb25maWd1cmF0aW9uIGZpbGUuIgotICAgICAgICAgfSBlbHNlaWYge1tpbmZvIGV4aXN0cyBkYXNoX3VfcnVuZGlyX2Jhc2VdICYmIFtmaWxlIG5vcm1hbGl6ZSAkZGFzaF91X3J1bmRpcl9iYXNlXSBlcSBbZmlsZSBub3JtYWxpemUgLl19IHsgCi0gICAgICAgICAgIHB1dHMgIiAgICAgICAgICAgIHRoZSBcIi11XCIgJGRhc2hfdV9ydW5kaXJfYmFzZSBhcmd1bWVudCB0byBnZW5faW5ub3Z1c19mbG93LnRjbCIKLSAgICAgICAgIH0gZWxzZWlmIHtbaW5mbyBleGlzdHMgdmFycyhydW5kaXJfYmFzZSldICYmIFtmaWxlIG5vcm1hbGl6ZSAkdmFycyhydW5kaXJfYmFzZSldIGVxIFtmaWxlIG5vcm1hbGl6ZSAuXX0geyAKLSAgICAgICAgICAgcHV0cyAiICAgICAgICAgICAgc2V0dGluZyB2YXJzKHJ1bmRpcl9iYXNlKSB0byBcIiR2YXJzKHJ1bmRpcl9iYXNlKVwiIGluIHlvdXIgY29uZmlndXJhdGlvbiBmaWxlLiIKLSAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgIHB1dHMgIiAgICAgICAgICAgIHRoZSBkZWZhdWx0IHJ1bmRpciBzZXR0aW5nIHdoaWNoIGlzIFwiJGRlZl9ydW5kaXJcIiIKLSAgICAgICAgIH0KLSAgICAgICAgIHB1dHMgIiAgICAgICAgICAgIFRvIHByZXZlbnQgdGhpcyBlcnJvciwgdXNlIHRoZSAtdSBhcmd1bWVudCB0byBzcGVjaWZ5IGEgcnVuZGlyIGJhc2UsIG9yIHNwZWNpZnkgYSB2YXJzKHJ1bmRpcl9iYXNlKSBpbiB5b3VyIHNldHVwLnRjbCIKLSAgICAgICAgIGV4aXQgOTkKLSAgICAgIH0KLSAgIAotICAgICAgIyAKLSAgICAgICMgR2VuZXJhdGUgbmV3IHJ1bmRpciBpZiB2YWxpZCBzdHlsZSBkZWZpbmVkCi0gICAgICAjIAotICAgCi0gICAgICAjICAtZGF0ZV9zdHlsZSA8c3RyaW5nPiAocmVxdWlyZWQgd2hlbiBzdHlsZT1kYXRlKTogdGNsIGNvbW1hbmRzIHRvIGNyZWF0ZSBhIGRhdGUgc3RyaW5nCi0gICAgICAjICAtY3VzdG9tIDxzdHJpbmc+IChvcHRpb25hbCk6IGEgY3VzdG9tIHN0cmluZyB0byBwcmVwZW5kIG9yIHBvc3RwZW5kIHRvIHRoZSBkaXIKLSAgICAgICMgIC1uYW1lX2NoYW5nZV9vcmRlciBbcHJlZml4fHN1ZmZpeF0gKHJlcXVpcmVkIHdoZW4gY3VzdG9tU3RyaW5nIGlzIGRlZmluZWQpOiBbcHJlZml4fHN1ZmZpeF0KLSAgIAotICAgICAgIyBSZW1vdmUgYW55ICIvLyIgaW4gdGhlIHBhdGgKLSAgICAgIHJlZ3N1YiAtYWxsIHtcL1wvfSAkcnVuZGlyX29yaWduYW1lIHsvfSBydW5kaXJfb3JpZ25hbWUKLSAgIAotICAgICAgc2V0IHJ1bmRpcl9iYXNlbmFtZSBbZmlsZSB0YWlsICRydW5kaXJfb3JpZ25hbWVdCi0gICAgICBzZXQgcnVuZGlyX2Rpcm5hbWUgW2ZpbGUgZGlybmFtZSAkcnVuZGlyX29yaWduYW1lXQotICAgCi0gICAgICBpZiB7JHN0eWxlVHlwZSBuZSAibm9uZSJ9IHsKLSAgICAgICAgIHN3aXRjaCAtZXhhY3QgLS0gJHN0eWxlVHlwZSB7Ci0gICAgICAgICAgIGRhdGUgewotICAgICAgICAgICAgIGlmIHskdmFycyhydW5kaXJfbmFtZWNoYW5nZV9tZXRob2QpIGVxICJwcmVmaXgifSB7Ci0gICAgICAgICAgICAgICBzZXQgbmV3X2Jhc2VuYW1lIFtzdWJzdCAkZGF0ZV9zdHlsZV1fJHtydW5kaXJfYmFzZW5hbWV9Ci0gICAgICAgICAgICAgfSBlbHNlaWYgeyR2YXJzKHJ1bmRpcl9uYW1lY2hhbmdlX21ldGhvZCkgZXEgInN1ZmZpeCJ9IHsKLSAgICAgICAgICAgICAgIHNldCBuZXdfYmFzZW5hbWUgJHtydW5kaXJfYmFzZW5hbWV9X1tzdWJzdCAkZGF0ZV9zdHlsZV0KLSAgICAgICAgICAgICB9Ci0gICAgICAgICAgIH0KLSAgICAgICAgICAgaW5jcmVtZW50IHsKLSAgICAgICAgICAgICBzZXQgbmV3X2Jhc2VuYW1lIFtmaWxlIHRhaWwgW0ZGOjpnZW5faW5jcl9maWxlbmFtZSAkcnVuZGlyX29yaWduYW1lXV0KLSAgICAgICAgICAgfQotICAgICAgICAgICBjdXN0b20gewotICAgICAgICAgICAgIGlmIHskdmFycyhjdXN0b21fcnVuZGlyX25hbWVfYXBwZW5kKSBuZSAiIn0gewotICAgICAgICAgICAgICAgaWYgeyR2YXJzKHJ1bmRpcl9uYW1lY2hhbmdlX21ldGhvZCkgZXEgInByZWZpeCJ9IHsKLSAgICAgICAgICAgICAgICAgc2V0IG5ld19iYXNlbmFtZSBbc3Vic3QgJHZhcnMoY3VzdG9tX3J1bmRpcl9uYW1lX2FwcGVuZCldXyR7cnVuZGlyX2Jhc2VuYW1lfQotICAgICAgICAgICAgICAgfSBlbHNlaWYgeyR2YXJzKHJ1bmRpcl9uYW1lY2hhbmdlX21ldGhvZCkgZXEgInN1ZmZpeCJ9IHsKLSAgICAgICAgICAgICAgICAgc2V0IG5ld19iYXNlbmFtZSAke3J1bmRpcl9iYXNlbmFtZX1fW3N1YnN0ICR2YXJzKGN1c3RvbV9ydW5kaXJfbmFtZV9hcHBlbmQpXQotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBwdXRzICI8RkY+IE5PVEU6IHZhcnMoY3VzdG9tX3J1bmRpcl9uYW1lX2FwcGVuZCkgc2V0IHRvIFwiXCIuIE5vIG1vZGlmaWNhdGlvbiB0byBydW5kaXIgd2lsbCBvY2N1ci4iCi0gICAgICAgICAgICAgICBzZXQgbmV3X2Jhc2VuYW1lICRydW5kaXJfYmFzZW5hbWUKLSAgICAgICAgICAgICB9Ci0gICAgICAgICAgIH0KLSAgICAgICAgICAgZGVmYXVsdCB7Ci0gICAgICAgICAgICAgIyBUaGlzIHNob3VsZCBuZXZlciBoYXBwZW4hIChpbmRpY2F0ZXMgaW5jb3JyZWN0IHVzYWdlIHdpdGhpbiBnZW5faW5ub3Z1c19mbG93LnRjbCEpICAgIAotICAgICAgICAgICAgIHB1dHMgIiRkYmdNc2cgV0FSTklORzogVW5rbm93biBvcHRpb24gZm9yIHN0eWxlVHlwZS4gVXNpbmcgZGVmYXVsdCAobm9uZSkiCi0gICAgICAgICAgIH0KLSAgICAgICAgIH0KLSAgICAgICAgIHNldCB2YXJzKHJ1bmRpcikgW2ZpbGUgbm9ybWFsaXplIFtqb2luICIkcnVuZGlyX2Rpcm5hbWUgJG5ld19iYXNlbmFtZSIgIi8iXV0KLSAgICAgICAgIHNldCB2YXJzKG5ld19ydW5kaXJfYmFzZW5hbWUpICRuZXdfYmFzZW5hbWUKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgICBzZXQgdmFycyhydW5kaXIpIFtmaWxlIG5vcm1hbGl6ZSAkcnVuZGlyX29yaWduYW1lXQotICAgICAgfQotICAgICAgcmV0dXJuICR2YXJzKHJ1bmRpcikgCi0gICB9OyMgZW5kIHByb2MgZ2VuX25ld19ydW5kaXIKLQotICBwcm9jIHJlbFBhdGhUbyB7dGFyZ2V0IGN1cnJlbnR9IHsKLSAgICAjcHV0cyAiY2FsbGluZyByZWxQYXRoVG8gJHRhcmdldCAkY3VycmVudCIKLSAgICBzZXQgY2MgW2ZpbGUgc3BsaXQgW2ZpbGUgbm9ybWFsaXplICRjdXJyZW50XV0KLSAgICBzZXQgdHQgW2ZpbGUgc3BsaXQgW2ZpbGUgbm9ybWFsaXplICR0YXJnZXRdXQotICAgIGlmIHshW3N0cmluZyBlcXVhbCBbbGluZGV4ICRjYyAxXSBbbGluZGV4ICR0dCAxXV19IHsKLSAgICAgICAgIyBub3Qgb24gKm4qeCB0aGVuCi0gICAgICAgICNyZXR1cm4gLWNvZGUgZXJyb3IgIkZGOjpyZWxQYXRoVG8oKTogRVJST1IgJHRhcmdldCBub3Qgb24gc2FtZSB2b2x1bWUgYXMgJGN1cnJlbnQiCi0gICAgICAgIHJldHVybiBbZmlsZSBub3JtYWxpemUgJHRhcmdldF0gCi0gICAgfQotICAgIHNldCBwcmVmaXggIiIKLSAgICB3aGlsZSB7W3N0cmluZyBlcXVhbCBbbGluZGV4ICRjYyAwXSBbbGluZGV4ICR0dCAwXV0gJiYgW2xsZW5ndGggJGNjXSA+IDB9IHsKLSAgICAgICMgZGlzY2FyZCBtYXRjaGluZyBjb21wb25lbnRzIGZyb20gdGhlIGZyb250IChidXQgZG9uJ3QKLSAgICAgICMgZG8gdGhlIGxhc3QgY29tcG9uZW50IGluIGNhc2UgdGhlIHR3byBmaWxlcyBhcmUgdGhlIHNhbWUpCi0gICAgICBzZXQgY2MgW2xyZXBsYWNlICRjYyAwIDBdCi0gICAgICBzZXQgdHQgW2xyZXBsYWNlICR0dCAwIDBdCi0gICAgfQotCi0gICAgI2lmIHtbbGxlbmd0aCAkY2NdID09IDF9IHsKLSAgICAjICAjIGp1c3QgdGhlIGZpbGUgbmFtZSwgc28gdGFyZ2V0IGlzIGxvd2VyIGRvd24gKG9yIGluIHNhbWUgcGxhY2UpCi0gICAgIyAgc2V0IHByZWZpeCAiLiIKLSAgICAjfSAgIAotICAgICMgc3RlcCB1cCB0aGUgdHJlZSAoc3RhcnQgZnJvbSAxIHRvIGF2b2lkIGNvdW50aW5nIGZpbGUgaXRzZWxmCi0gICAgZm9yIHtzZXQgaSAxfSB7JGkgPD0gW2xsZW5ndGggJGNjXX0ge2luY3IgaX0gewotICAgICAgICBhcHBlbmQgcHJlZml4ICIgLi4iCi0gICAgfQotICAgICMgc3RpY2sgaXQgYWxsIHRvZ2V0aGVyICh0aGUgZXZhbCBpcyB0byBmbGF0dGVuIHRoZSB0YXJnZXQgbGlzdCkKLSAgICBpZiB7JGNjIGVxICR0dH0gewotICAgICAgcmV0dXJuICIuIgotICAgIH0gZWxzZSB7Ci0gICAgICByZXR1cm4gW2V2YWwgZmlsZSBqb2luICRwcmVmaXggJHR0XQotICAgIH0KLSAgfQotCi0gIHByb2MgZmxhdHRlbl9saXN0IGxpc3Qge3N0cmluZyBtYXAge1x7ICIiIFx9ICIifSAkbGlzdH0KLSAgcHJvYyByZW1vdmVfb3V0ZXJfYnJhY2VzIHthcmdzfSB7Ci0gICAgaWYge1tyZWdzdWIge15ce30gJGFyZ3MgIiIgdG1wXX0ge3NldCBhcmdzICR0bXB9Ci0gICAgaWYge1tyZWdzdWIge1x9JH0gJGFyZ3MgIiIgdG1wXX0ge3NldCBhcmdzICR0bXB9Ci0gICAgcmV0dXJuICRhcmdzCi0gIH0KLQotICBwcm9jIHJlbGF0aXZpemVGaWxlT3JEaXIge2FyZ3N9IHsKLSAgICAjcHV0cyAicmVsYXRpdml6ZUZpbGVPckRpciAkYXJncyIKLSAgICBzZXQgTmV3RGlyTmFtZSAiIgotICAgIHNldCBhcnJOYW1lICJ2YXJzIgotICAgIHNldCBWYXJEaXJOYW1lICIiCi0gICAgc2V0IHNraXBWYXJpYWJsZVVzYWdlSW5SZWZlcmVuY2UgMAotICAgIHNldCBtdXN0RXhpc3QgMAotICAgIHNldCBza2lwTGlzdCB7fQotICAgIHNldCBleGFjdFZhciAiIgotICAgIHNldCBleGFjdFN1YkRpck1hdGNoICIiCi0gICAgc2V0IHZhclRvU3ViICIiCi0gICAgc2V0IHNraXBEaXJMaXN0ICIiCi0KLSAgICB3aGlsZSB7W2xsZW5ndGggJGFyZ3NdID4gMH0gewotICAgICAgc2V0IG9wdGlvbiBbbGluZGV4ICRhcmdzIDBdCi0gICAgICBzZXQgYXJncyBbbHJlcGxhY2UgJGFyZ3MgMCAwXQotICAgICAgc3dpdGNoIC1leGFjdCAtLSAkb3B0aW9uIHsKLSAgICAgICAgIC1hcnIgewotICAgICAgICAgICAgc2V0IGFyck5hbWUgW2xpbmRleCAkYXJncyAwXQotICAgICAgICAgICAgc2V0IGFyZ3MgW2xyZXBsYWNlICRhcmdzIDAgMF0KLSAgICAgICAgIH0KLSAgICAgICAgIC12YXJkaXIgewotICAgICAgICAgICAgc2V0IFZhckRpck5hbWUgW2xpbmRleCAkYXJncyAwXQotICAgICAgICAgICAgc2V0IGFyZ3MgW2xyZXBsYWNlICRhcmdzIDAgMF0KLSAgICAgICAgIH0KLSAgICAgICAgIC1uZXdkaXIgewotICAgICAgICAgICBzZXQgTmV3RGlyTmFtZSBbbGluZGV4ICRhcmdzIDBdCi0gICAgICAgICAgIHNldCBhcmdzIFtscmVwbGFjZSAkYXJncyAwIDBdCi0gICAgICAgICB9Ci0gICAgICAgICAtc2tpcFZhcmlhYmxlVXNhZ2VJblJlZmVyZW5jZSB7Ci0gICAgICAgICAgICBzZXQgc2tpcFZhcmlhYmxlVXNhZ2VJblJlZmVyZW5jZSAxCi0gICAgICAgICB9Ci0gICAgICAgICAtbXVzdEV4aXN0IHsKLSAgICAgICAgICAgIHNldCBtdXN0RXhpc3QgMQotICAgICAgICAgfQotICAgICAgICAgLXNraXBWYXIgewotICAgICAgICAgICAgbGFwcGVuZCBza2lwTGlzdCBbbGluZGV4ICRhcmdzIDBdCi0gICAgICAgICAgICBzZXQgYXJncyBbbHJlcGxhY2UgJGFyZ3MgMCAwXQotICAgICAgICAgfQotICAgICAgICAgLXNraXBEaXIgewotICAgICAgICAgICAgbGFwcGVuZCBza2lwRGlyTGlzdCBbbGluZGV4ICRhcmdzIDBdCi0gICAgICAgICAgICBzZXQgYXJncyBbbHJlcGxhY2UgJGFyZ3MgMCAwXQotICAgICAgICAgfQotICAgICAgICAgLXZhciB7Ci0gICAgICAgICAgICBzZXQgdmFyVG9TdWIgW2xpbmRleCAkYXJncyAwXQotICAgICAgICAgICAgc2V0IGFyZ3MgW2xyZXBsYWNlICRhcmdzIDAgMF0KLSAgICAgICAgIH0KLSAgICAgICAgIC1leGFjdFN1YkRpck1hdGNoIHsKLSAgICAgICAgICAgIHNldCBleGFjdFN1YkRpck1hdGNoIFtsaW5kZXggJGFyZ3MgMF0KLSAgICAgICAgICAgIHNldCBhcmdzIFtscmVwbGFjZSAkYXJncyAwIDBdCi0gICAgICAgICB9Ci0gICAgICB9Ci0gICAgfTsjIGVuZCB3aGlsZSAocHJvY2Vzc2luZyBhcmdzKQotCi0gICAgIyBBbHdheXMgc2tpcCB0aGUgVmFyRGlyTmFtZSB3aGVuIGFuYWx5emluZyB2YXJpYWJsZXMgaW4gdGhlIGFycmF5Ci0gICAgbGFwcGVuZCBza2lwTGlzdCAkVmFyRGlyTmFtZQotCi0gICAgIyBOZWVkIHRvIGNvbnZlcnQgYSBsaXN0IG9mIGZpbGVzIHRvIHJlbGF0aXZlIHBhdGhzIChUQkQpCi0gICAgZ2xvYmFsICRhcnJOYW1lCi0gICAgIyBDaGVjayBpZiB0aGUgdmFyZGlyIChrZXkpIGV4aXN0cyBpbiB0aGUgYXJyYXkuIElmIG5vdCwgZXhpdAotICAgIGlmIHskVmFyRGlyTmFtZSBlcSAiIn0gewotICAgICAgcmV0dXJuIC1jb2RlIGVycm9yICJyZWxhdGl2aXplRmlsZU9yRGlyKCkgY2FsbGVkIHcvb3V0IC12YXJkaXIgYXJndW1lbnQuIEV4aXRpbmcgLi4uIgotICAgIH0KLSAgICBpZiB7JE5ld0Rpck5hbWUgZXEgIiJ9IHsKLSAgICAgIHNldCBOZXdEaXJOYW1lICRWYXJEaXJOYW1lCi0gICAgfQotCi0gICAgc2V0IHJlbGF0aXZpemVDb252TWVzZ0xpc3Qge30KLSAgICBpZiB7W2luZm8gZXhpc3RzICR7YXJyTmFtZX0oJFZhckRpck5hbWUpXX0gewotICAgICAgZm9yZWFjaCBhcmcgW2xzb3J0IC1kaWN0aW9uYXJ5IFthcnJheSBuYW1lcyAkYXJyTmFtZV1dIHsKLSAgICAgICAgaWYgeyR2YXJUb1N1YiBlcSAiIiB8fCAkdmFyVG9TdWIgZXEgJGFyZ30gewotICAgICAgICAgICMgZm9yZWFjaCBrZXkgKGVudHJ5KSBpbiB0aGUgYXJyYXksIGxvb2sgZm9yIGZpbGVzL2ZvbGRlcnMKLSAgICAgICAgICBzZXQgcmUgIiIKLSAgICAgICAgICAjcHV0cyAibHNlYXJjaCAkc2tpcExpc3QgJGFyZyIKLSAgICAgICAgICAjIEZpcnN0IGNoZWNrIGJsYWNrIGxpc3QKLSAgICAgICAgICBpZiB7W2xzZWFyY2ggJHNraXBMaXN0ICRhcmddID09IC0xfSB7Ci0gICAgICAgICAgICBpZiB7IVtyZWdleHAge1xbfSBbc2V0ICR7YXJyTmFtZX0oJGFyZyldXX0gewotICAgICAgICAgICAgICAjIG9ubHkgY29udGludWUgaWYgdGhlIHZhcmlhYmxlIGlzIG5vdCB0aGUgdmFyZGlyIChrZXkpIGl0c2VsZiwgYW5kIHRoZSB2YWx1ZSBvZiB0aGUgdmFyaWFibGUgZG9lc24ndCBoYXZlIGEgJCBpbiBpdAotICAgICAgICAgICAgICAjcHV0cyAicmVsYXRpdml6ZUZpbGVPckRpcigpIGNoZWNraW5nICR7YXJyTmFtZX0oJGFyZykgKGN1cnJlbnQ6IC0+W3NldCAke2Fyck5hbWV9KCRhcmcpXTwtKSIKLSAgICAgICAgICAgICAgc2V0IHRtcFZhbHVlICIiCi0gICAgICAgICAgICAgICMKLSAgICAgICAgICAgICAgIyBQcm9jZXNzIGFsbCBtZW1iZXJzIG9mIHRoZSAkYXJyTmFtZShhcmcpIChjb3VsZCBiZSBhIGxpc3QpLCBhbmQgc3Vic3QgZWFjaCBvbmUKLSAgICAgICAgICAgICAgIwotICAgICAgICAgICAgICBzZXQgZmlsZUZvdW5kIDAKLSAgICAgICAgICAgICAgc2V0IHJlICJbZmlsZSBub3JtYWxpemUgW3NldCAke2Fyck5hbWV9KCRWYXJEaXJOYW1lKV1dXC8oLiopIgotICAgICAgICAgICAgICBmb3JlYWNoIHBvc3NpYmxlRmlsZSBbc2V0ICR7YXJyTmFtZX0oJGFyZyldIHsKLSAgICAgICAgICAgICAgICBpZiB7JG11c3RFeGlzdH0gewotICAgICAgICAgICAgICAgICAgIyBUaGUgZmlsZSBvciBkaXIgbXVzdCBleGlzdCBhZnRlciBub3JtYWxpemF0aW9uCi0gICAgICAgICAgICAgICAgICAjcHV0cyAiQ2hlY2tpbmcgZm9yIGV4aXN0ZW5jZSBvZiBbZmlsZSBub3JtYWxpemUgW3N1YnN0ICRwb3NzaWJsZUZpbGVdXSIKLSAgICAgICAgICAgICAgICAgIGlmIHshW2NhdGNoIHtmaWxlIGV4aXN0cyBbZmlsZSBub3JtYWxpemUgW3N1YnN0ICRwb3NzaWJsZUZpbGVdXX1dfSB7Ci0gICAgICAgICAgICAgICAgICAgIGlmIHtbZmlsZSBleGlzdHMgW2ZpbGUgbm9ybWFsaXplIFtzdWJzdCAkcG9zc2libGVGaWxlXV1dfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgI3B1dHMgIkV4aXN0czogW2ZpbGUgbm9ybWFsaXplIFtzdWJzdCAkcG9zc2libGVGaWxlXV0iCi0gICAgICAgICAgICAgICAgICAgICAgc2V0IGZpbGUgW2ZpbGUgbm9ybWFsaXplIFtzdWJzdCAkcG9zc2libGVGaWxlXV0KLSAgICAgICAgICAgICAgICAgICAgICBzZXQgc2l6ZSBbZmlsZSBzaXplICRmaWxlXQotICAgICAgICAgICAgICAgICAgICAgIHNldCBtdGltZSBbZmlsZSBtdGltZSAkZmlsZV0KLSAgICAgICAgICAgICAgICAgICAgICBzZXQgdHlwZSBbZmlsZSB0eXBlICRmaWxlXQotICAgICAgICAgICAgICAgICAgICAgICNwdXRzICJmaWxlICRmaWxlIHNpemU6ICRzaXplLCBtdGltZTogJG10aW1lIHR5cGU6ICR0eXBlIgotICAgICAgICAgICAgICAgICAgICBzZXQgZmlsZUZvdW5kIDEKLSAgICAgICAgICAgICAgICAgICAgI3B1dHMgIkNoZWNraW5nIGZvciBwYXRoIHRvIGZpbGU6IC0+W2ZpbGUgbm9ybWFsaXplIFtzdWJzdCAkcG9zc2libGVGaWxlXV08LSBmcm9tIC0+W2ZpbGUgbm9ybWFsaXplIFtzZXQgJHthcnJOYW1lfSgkVmFyRGlyTmFtZSldXTwtIgotICAgICAgICAgICAgICAgICAgICBzZXQgcmVsUGF0aFZhbHVlIFtyZWxQYXRoVG8gW2ZpbGUgbm9ybWFsaXplIFtzdWJzdCAkcG9zc2libGVGaWxlXV0gW2ZpbGUgbm9ybWFsaXplIFtzdWJzdCBbc2V0ICR7YXJyTmFtZX0oJFZhckRpck5hbWUpXV1dXQotICAgICAgICAgICAgICAgICAgICAgICNwdXRzICJyZWxQYXRoVmFsdWU6ICRyZWxQYXRoVmFsdWUiCi0gICAgICAgICAgICAgICAgICAgIHNldCBza2lwRHVlVG9Ta2lwRGlyIDAKLSAgICAgICAgICAgICAgICAgICAgaWYgeyRza2lwRGlyTGlzdCBuZSAiIn0gewotICAgICAgICAgICAgICAgICAgICAgIGZvcmVhY2ggZGlyICRza2lwRGlyTGlzdCB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBzZXQgcmUzICJbZmlsZSBub3JtYWxpemUgW3N1YnN0ICRkaXJdXS8oLiopIgotICAgICAgICAgICAgICAgICAgICAgICAgaWYge1tyZWdleHAgJHJlMyBbZmlsZSBub3JtYWxpemUgW3N1YnN0ICRwb3NzaWJsZUZpbGVdXSBmdWxsIHJlbGF0aXZlUG9ydGlvbl19IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0IHNraXBEdWVUb1NraXBEaXIgMQotICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICBpZiB7ISRza2lwRHVlVG9Ta2lwRGlyfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiB7JGV4YWN0U3ViRGlyTWF0Y2ggbmUgIiJ9IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0IHJlMiAiJGV4YWN0U3ViRGlyTWF0Y2gvKC4qKSIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIyB0aGUgbm9ybWFsaXplZCBwYXRoIG9mIHRoZSBwb3NzaWJsZSBmaWxlIGhhcyB0byBtYXRjaCB0aGUgbm9ybWFsaXplZCBwYXRoIG9mIHRoZSBzdWJkaXIuLi4KLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIHtbcmVnZXhwICRyZTIgW2ZpbGUgbm9ybWFsaXplIFtzdWJzdCAkcG9zc2libGVGaWxlXV0gZnVsbCByZWxhdGl2ZVBvcnRpb25dfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgeyRyZWxQYXRoVmFsdWUgbmUgW2ZpbGUgbm9ybWFsaXplICRwb3NzaWJsZUZpbGVdfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgeyRza2lwVmFyaWFibGVVc2FnZUluUmVmZXJlbmNlfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXBwZW5kIHRtcFZhbHVlICRyZWxQYXRoVmFsdWUKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFwcGVuZCB0bXBWYWx1ZSAiXCQke2Fyck5hbWV9KCRWYXJEaXJOYW1lKS8kcmVsUGF0aFZhbHVlIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXBwZW5kIHRtcFZhbHVlICRwb3NzaWJsZUZpbGUKLSAgICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXBwZW5kIHRtcFZhbHVlICRwb3NzaWJsZUZpbGUKLSAgICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgI3B1dHMgInNraXBWYXJpYWJsZVVzYWdlSW5SZWZlcmVuY2U6ICRza2lwVmFyaWFibGVVc2FnZUluUmVmZXJlbmNlIgotICAgICAgICAgICAgICAgICAgICAgICAgICBpZiB7JHJlbFBhdGhWYWx1ZSBuZSBbZmlsZSBub3JtYWxpemUgJHBvc3NpYmxlRmlsZV19IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiB7JHNraXBWYXJpYWJsZVVzYWdlSW5SZWZlcmVuY2V9IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhcHBlbmQgdG1wVmFsdWUgJHJlbFBhdGhWYWx1ZQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXBwZW5kIHRtcFZhbHVlICJcJCR7YXJyTmFtZX0oJFZhckRpck5hbWUpLyRyZWxQYXRoVmFsdWUiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhcHBlbmQgdG1wVmFsdWUgJHBvc3NpYmxlRmlsZQotICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICNwdXRzICJmaW5hbCB2YWx1ZTogLT4kdG1wVmFsdWU8LSIKLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICBsYXBwZW5kIHRtcFZhbHVlICRwb3NzaWJsZUZpbGUKLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICMgY291bGQgbm90IGJlIHRlc3RlZCBhcyBhIGZpbGUsIHNvIGp1c3QgbGFwcGVuZCB0aGUgZW50aXJlIHN0cmluZwotICAgICAgICAgICAgICAgICAgICAgIGxhcHBlbmQgdG1wVmFsdWUgJHBvc3NpYmxlRmlsZQotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAjIGNvdWxkIG5vdCBiZSB0ZXN0ZWQgYXMgYSBmaWxlLCBzbyBqdXN0IGxhcHBlbmQgdGhlIGVudGlyZSBzdHJpbmcKLSAgICAgICAgICAgICAgICAgICAgbGFwcGVuZCB0bXBWYWx1ZSAkcG9zc2libGVGaWxlCi0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICMgVGhlIGZpbGUgb3IgZGlyIG5lZWQgbm90IGV4aXN0LCBidXQgdGhlIHZhcmRpciBtdXN0IGJlIGEgc3ViZGlyIChpLmUuLCB0aGVyZSBtdXN0IGJlIGEgc3ViZGlyIHRoYXQgZG9lcyBleGlzdCkKLSAgICAgICAgICAgICAgICAgICNwdXRzICJDaGVja2luZyBwb3NzaWJsZSBmaWxlOiAtPltzdWJzdCAkcG9zc2libGVGaWxlXTwtIGFnYWluc3QgcmVndWxhciBleHByZXNzaW9uIC0+JHJlPC0iCi0gICAgICAgICAgICAgICAgICBpZiB7W3JlZ2V4cCAkcmUgW3N1YnN0ICRwb3NzaWJsZUZpbGVdIGZ1bGwgcmVsYXRpdml6ZWRQb3J0aW9uXX0gewotICAgICAgICAgICAgICAgICAgICBpZiB7JHJlbGF0aXZpemVkUG9ydGlvbiBlcSAiIn0geyBzZXQgcmVsYXRpdml6ZWRQb3J0aW9uICIuIn0KLSAgICAgICAgICAgICAgICAgICAgc2V0IGZpbGVGb3VuZCAxCi0gICAgICAgICAgICAgICAgICAgIGlmIHskc2tpcFZhcmlhYmxlVXNhZ2VJblJlZmVyZW5jZX0gewotICAgICAgICAgICAgICAgICAgICAgIGxhcHBlbmQgdG1wVmFsdWUgJHJlbGF0aXZpemVkUG9ydGlvbgotICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgIGxhcHBlbmQgdG1wVmFsdWUgIlwkJHthcnJOYW1lfSgkVmFyRGlyTmFtZSkvJHJlbGF0aXZpemVkUG9ydGlvbiIKLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICBpZiB7W2ZsYXR0ZW5fbGlzdCAkcG9zc2libGVGaWxlXSBuZSBbZmxhdHRlbl9saXN0ICR0bXBWYWx1ZV19IHsKLSAgICAgICAgICAgICAgICAgICAgICAjcHV0cyAiPEZGPiBJTkZPIENvbnZlcnRlZCBmaWxlICRwb3NzaWJsZUZpbGUgdG8gdXNlIGEgcmVsYXRpdmUgcGF0aCB0byBkZXRlcm1pbmUgaXQncyBsb2NhdGlvbjogJHRtcFZhbHVlIgotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICBsYXBwZW5kIHRtcFZhbHVlICRwb3NzaWJsZUZpbGUKLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIyBJZiB0aGUgYWJvdmUgZm9yIGxvb3AgZGlkbid0IGZpbmQgYW55IGZpbGVzLCBzaW1wbHkgcmVzZXQgdGhlIGFyck5hbWUoYXJnKSBzdGF0ZW1lbnQKLSAgICAgICAgICAgICAgaWYgeyRmaWxlRm91bmR9IHsKLSAgICAgICAgICAgICAgICAjIENsZWFuIHVwIG9yaWdpbmFsIGFyck5hbWUoYXJnKSBhbmQgc3ViYidlZCB2YWx1ZSB0byBwcmVwYXJlIGZvciBjb21wYXJpc29uCi0gICAgICAgICAgICAgICAgc2V0IHRlc3RBcmcgW2ZsYXR0ZW5fbGlzdCBbc2V0ICR7YXJyTmFtZX0oJGFyZyldXQotICAgICAgICAgICAgICAgIHJlZ3N1YiAtYWxsIHtbIFxyXHRcblxcXSt9ICR0ZXN0QXJnICIgIiB0ZXN0QXJnCi0gICAgICAgICAgICAgICAgcmVnc3ViIHteXHMrKC4qKX0gJHRlc3RBcmcge1wxfSB0ZXN0QXJnCi0gICAgICAgICAgICAgICAgcmVnc3ViIHsoLiopXHMrJH0gJHRlc3RBcmcge1wxfSB0ZXN0QXJnCi0KLSAgICAgICAgICAgICAgICBzZXQgdG1wVmFsdWUgW2ZsYXR0ZW5fbGlzdCAkdG1wVmFsdWVdCi0gICAgICAgICAgICAgICAgcmVnc3ViIC1hbGwge1sgXHJcdFxuXSt9ICR0bXBWYWx1ZSAiICIgdG1wVmFsdWUKLSAgICAgICAgICAgICAgICByZWdzdWIge15ccysoLiopfSAkdG1wVmFsdWUge1wxfSB0bXBWYWx1ZQotICAgICAgICAgICAgICAgIHJlZ3N1YiB7KC4qKVxzKyR9ICR0bXBWYWx1ZSB7XDF9IHRtcFZhbHVlCi0gICAgICAgICAgICAgICAgaWYgeyR0bXBWYWx1ZSBuZSAiIiAmJiAkdG1wVmFsdWUgbmUgJHRlc3RBcmd9IHsKLSAgICAgICAgICAgICAgICAgICNwdXRzICI8RkY+IElORk8gT3JpZ2luYWwgdmFsdWUgZm9yIGFyck5hbWUoJGFyZyk6IC0+JHRlc3RBcmc8LSIKLSAgICAgICAgICAgICAgICAgIGlmIHskcmVsYXRpdml6ZUNvbnZNZXNnTGlzdCBlcSAiIn0gewotICAgICAgICAgICAgICAgICAgICAgbGFwcGVuZCByZWxhdGl2aXplQ29udk1lc2dMaXN0ICIjIFZhcmlhYmxlIGNvbnZlcnNpb24gZm9yIHBhdGhzIHJlbGF0aXZlIHRvIFwkJHthcnJOYW1lfSgkVmFyRGlyTmFtZSkgKFtzZXQgJHthcnJOYW1lfSgkVmFyRGlyTmFtZSldKSIKLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIGxhcHBlbmQgcmVsYXRpdml6ZUNvbnZNZXNnTGlzdCAiPEZGPiBJTkZPIENvbnZlcnRlZCBmaWxlIHZhcmlhYmxlIFtzdWJzdCAkYXJyTmFtZV0oJGFyZykgZnJvbSBbc2V0ICR7YXJyTmFtZX0oJGFyZyldIHRvICR0bXBWYWx1ZSIKLSAgICAgICAgICAgICAgICAgIHNldCAke2Fyck5hbWV9KCRhcmcpICR0bXBWYWx1ZQotICAgICAgICAgICAgICAgICAgI3B1dHMgIjxGRj4gSU5GTyBGaW5hbCB2YWx1ZSBmb3IgYXJyTmFtZSgkYXJnKTogICAgLT4kdG1wVmFsdWU8LSIKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICAgIH0KLSAgICB9Ci0gICAgaWYge1tsbGVuZ3RoICRyZWxhdGl2aXplQ29udk1lc2dMaXN0XSA+IDF9IHsKLSAgICAgIGxhcHBlbmQgcmVsYXRpdml6ZUNvbnZNZXNnTGlzdCAiIyBUb3RhbCBjb252ZXJ0ZWQgZm9yIHZhcmlhYmxlIFtzZXQgJHthcnJOYW1lfSgkVmFyRGlyTmFtZSldOltleHByIHtbbGxlbmd0aCAkcmVsYXRpdml6ZUNvbnZNZXNnTGlzdF0tMX1dIgotICAgIH0KLSAgICByZXR1cm4gJHJlbGF0aXZpemVDb252TWVzZ0xpc3QKLSAgfQotICAgcHJvYyBkZW5vcm1hbGl6ZV9ydW5kaXIge30gewotCi0gICAgICBnbG9iYWwgdmFycwotCi0gICAgICAjc2V0IG9wIFtvcGVuICR2YXJzKHJ1bmRpcikvLmZmLnRjbCB3XQotICAgICAgIyMgQkNMOiBhZGRlZCBGb3VuZGF0aW9uIEZsb3cgZXhlY3V0aW9uIGRpcgotICAgICAgI3B1dHMgJG9wICIjIEZvdW5kYXRpb24gRmxvdyBDb2RlZ2VuIFJlY29yZC4iCi0gICAgICAjcHV0cyAkb3AgIiMgRXhlY3V0ZWQgb24gW2V4ZWMgZGF0ZV0gYnkgdXNlcjogW2V4ZWMgd2hvYW1pXSIKLSAgICAgICNwdXRzICRvcCAiIyBDb3B5cmlnaHQgMjAxMSwgQ2FkZW5jZSBEZXNpZ24gU3lzdGVtcywgSW5jLiIKLSAgICAgICNwdXRzICRvcCAiIyBBbGwgUmlnaHRzIFJlc2VydmVkIgotICAgICAgI3B1dHMgJG9wICIiCi0gICAgICAjcHV0cyAkb3AgIiMgSW5wdXRzIHRvIGNvZGUgZ2VuZXJhdGlvbjoiCi0gICAgICAjcHV0cyAkb3AgIiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIKLSAgICAgICNwdXRzICRvcCAic2V0IHZhcnMoZmZfZXhlX2RpcikgXCJbZXhlYyBwd2RdXCIiCi0gICAgICAjI3B1dHMgJG9wICJzZXQgdmFycyhmZl9kaXIpIFtmaWxlIGRpcm5hbWUgJHZhcnMoc2NyaXB0X3BhdGgpXSIKLSAgICAgICMjIEJDTDogcmVtb3ZlZCBmZl9kaXIsIGNoYW5nZWQgdG8gc2NyaXB0X3BhdGggKGZmX2RpciB3YXMgcmVhbGx5IHJlZHVuZGFudCkKLSAgICAgICNwdXRzICRvcCAic2V0IHZhcnMoc2NyaXB0X3BhdGgpIFwiW2ZpbGUgbm9ybWFsaXplICR2YXJzKHNjcmlwdF9wYXRoKV1cIiIKLSAgICAgICMjIEJDTDogYWRkZWQgdmFyaWFibGUgcmVmZXJlbmNpbmcgb2YgY29uZmlnX2ZpbGVzCi0gICAgICAjc2V0IGN3ZCAiIgotICAgICAgI2NhdGNoIHtzZXQgY3dkIFtleGVjIHB3ZF19Ci0gICAgICAjZm9yZWFjaCBjb25maWdGaWxlIFtzdWJzdCAkdmFycyhjb25maWdfZmlsZXMpXSB7Ci0gICAgICAjICAjcHV0cyAiUHJvY2Vzc2luZyAkY29uZmlnRmlsZSIKLSAgICAgICMgIGlmIHtbZmlsZSBkaXJuYW1lIFtmaWxlIG5vcm1hbGl6ZSAkY29uZmlnRmlsZV1dIGVxICRjd2R9IHsKLSAgICAgICMgICAgbGFwcGVuZCBjb25maWdGaWxlTGlzdCAiXFtzdWJzdCBcJHZhcnMoZmZfZXhlX2RpcilcXS9bZmlsZSB0YWlsICRjb25maWdGaWxlXSIKLSAgICAgICMgIH0gZWxzZWlmIHtbRkY6OnJlbFBhdGhUbyBbZmlsZSBub3JtYWxpemUgJGNvbmZpZ0ZpbGVdICRjd2RdIGVxIFtmaWxlIG5vcm1hbGl6ZSBbc3Vic3QgJGNvbmZpZ0ZpbGVdXX0gewotICAgICAgIyAgICBsYXBwZW5kIGNvbmZpZ0ZpbGVMaXN0IFtmaWxlIG5vcm1hbGl6ZSAkY29uZmlnRmlsZV0KLSAgICAgICMgIH0gZWxzZSB7Ci0gICAgICAjICAgICMgVXNlIHRoZSByZWxhdGl2ZSBwYXRoIG5hbWUgZnJvbSBmZl9leGVfZGlyCi0gICAgICAjICAgIGxhcHBlbmQgY29uZmlnRmlsZUxpc3QgIlxbc3Vic3QgXCR2YXJzKGZmX2V4ZV9kaXIpXF0vW0ZGOjpyZWxQYXRoVG8gW2ZpbGUgbm9ybWFsaXplIFtzdWJzdCAkY29uZmlnRmlsZV1dICRjd2RdIgotICAgICAgIyAgfQotICAgICAgI30KLSAgICAgICNwdXRzICRvcCAic2V0IHZhcnMoY29uZmlnX2ZpbGVzKSBcIltGRjo6ZmxhdHRlbl9saXN0ICRjb25maWdGaWxlTGlzdF1cIiIKLSAgICAgICMjIEJDTDogYWRkZWQgdmFyaWFibGUgcmVmZXJlbmNpbmcgb2YgcGx1ZyBkaXJzCi0gICAgICAjaWYge1tmaWxlIGRpcm5hbWUgW2ZpbGUgbm9ybWFsaXplICR2YXJzKHBsdWdfZGlyKV1dIGVxICRjd2R9IHsKLSAgICAgICMgICMgcGx1Z19kaXIgaXMgbG9jYXRlZCBpbiBmZl9leGVfZGlyCi0gICAgICAjICBwdXRzICRvcCAic2V0IHZhcnMocGx1Z19kaXIpIFwiXCR2YXJzKGZmX2V4ZV9kaXIpLyR2YXJzKHBsdWdfZGlyKVwiIgotICAgICAgI30gZWxzZWlmIHtbRkY6OnJlbFBhdGhUbyBbZmlsZSBub3JtYWxpemUgJHZhcnMocGx1Z19kaXIpXSAkY3dkXSBlcSBbZmlsZSBub3JtYWxpemUgJHZhcnMocGx1Z19kaXIpXX0gewotICAgICAgIyAgIyBwbHVnX2RpciBjYW5ub3QgYmUgcmVmZXJlbmNlZCB1c2luZyBhIHJlbGF0aXZlIHBhdGgKLSAgICAgICMgIHB1dHMgJG9wICJzZXQgdmFycyhwbHVnX2RpcikgXCJbZmlsZSBub3JtYWxpemUgJHZhcnMocGx1Z19kaXIpXVwiIgotICAgICAgI30gZWxzZSB7Ci0gICAgICAjICAjIFVzZSB0aGUgcmVsYXRpdmUgcGF0aCBuYW1lIGZyb20gZmZfZXhlX2RpcgotICAgICAgIyAgcHV0cyAkb3AgInNldCB2YXJzKHBsdWdfZGlyKSBcIlwkdmFycyhmZl9leGVfZGlyKS9bRkY6OnJlbFBhdGhUbyBbZmlsZSBub3JtYWxpemUgJHZhcnMocGx1Z19kaXIpXSAkY3dkXVwiIgotICAgICAgI30KLSAgICAgICNpZiB7W2luZm8gZXhpc3RzIHZhcnMocmNfcGx1Z19kaXIpXX0gewotICAgICAgIyAgIGlmIHtbZmlsZSBkaXJuYW1lIFtmaWxlIG5vcm1hbGl6ZSAkdmFycyhyY19wbHVnX2RpcildXSBlcSAkY3dkfSB7Ci0gICAgICAjICAgICAjIHJjX3BsdWdfZGlyIGlzIGxvY2F0ZWQgaW4gZmZfZXhlX2RpcgotICAgICAgIyAgICAgcHV0cyAkb3AgInNldCB2YXJzKHJjX3BsdWdfZGlyKSBcIlwkdmFycyhmZl9leGVfZGlyKS8kdmFycyhyY19wbHVnX2RpcilcIiIKLSAgICAgICMgICB9IGVsc2VpZiB7W0ZGOjpyZWxQYXRoVG8gW2ZpbGUgbm9ybWFsaXplICR2YXJzKHJjX3BsdWdfZGlyKV0gJGN3ZF0gZXEgW2ZpbGUgbm9ybWFsaXplICR2YXJzKHJjX3BsdWdfZGlyKV19IHsKLSAgICAgICMgICAgIyByY19wbHVnX2RpciBjYW5ub3QgYmUgcmVmZXJlbmNlZCB1c2luZyBhIHJlbGF0aXZlIHBhdGgKLSAgICAgICMgICAgcHV0cyAkb3AgInNldCB2YXJzKHJjX3BsdWdfZGlyKSBcIltmaWxlIG5vcm1hbGl6ZSAkdmFycyhyY19wbHVnX2RpcildXCIiCi0gICAgICAjICB9IGVsc2UgewotICAgICAgIyAgICAjIFVzZSB0aGUgcmVsYXRpdmUgcGF0aCBuYW1lIGZyb20gZmZfZXhlX2RpcgotICAgICAgIyAgICBwdXRzICRvcCAic2V0IHZhcnMocmNfcGx1Z19kaXIpIFwiXCR2YXJzKGZmX2V4ZV9kaXIpL1tGRjo6cmVsUGF0aFRvIFtmaWxlIG5vcm1hbGl6ZSAkdmFycyhyY19wbHVnX2RpcildICRjd2RdXCIiCi0gICAgICAjICAgfQotICAgICAgI30KLSAgICAgICMjIEJDTDogYWRkZWQgdmFycyhydW5kaXIpCi0gICAgICAjcHV0cyAkb3AgIiIKLSAgICAgICNwdXRzICRvcCAiIyBPdXRwdXRzIGZyb20gY29kZSBnZW5lcmF0aW9uOiIKLSAgICAgICNwdXRzICRvcCAiIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIgotICAgICAgI3B1dHMgJG9wICJzZXQgdmFycyhydW5kaXIpIFwiXFtmaWxlIG5vcm1hbGl6ZSBcW2ZpbGUgZGlybmFtZSBcW2luZm8gc2NyaXB0XF1cXVxdXCIiCi0gICAgICAjcHV0cyAkb3AgInNldCB2YXJzKGNvZGVnZW5fZGlyKSBcIltGRjo6cmVsUGF0aFRvIFtmaWxlIG5vcm1hbGl6ZSAkdmFycyhzY3JpcHRfZGlyKV0gW2ZpbGUgbm9ybWFsaXplICR2YXJzKHJ1bmRpcildXVwiIgotICAgICAgI3B1dHMgJG9wICJzZXQgdmFycyhzY3JpcHRfZGlyKSBcIltGRjo6cmVsUGF0aFRvIFtmaWxlIG5vcm1hbGl6ZSAkdmFycyhzY3JpcHRfZGlyKV0gW2ZpbGUgbm9ybWFsaXplICR2YXJzKHJ1bmRpcildXVwiIgotICAgICAgI2Nsb3NlICRvcAotCi0gICAgICBpZiB7JHZhcnModXNlcl9tb2RlKSA9PSAiaGllciJ9IHsKLSAgICAgICAgICNmb3JlYWNoIGJsb2NrIFtjb25jYXQgJHZhcnMoZGVzaWduKSAkdmFycyhwYXJ0aXRpb25fbGlzdCldIHsKLSAgICAgICAgICMgICBmaWxlIGNvcHkgLWZvcmNlIC5mZi50Y2wgJHZhcnMocGFydGl0aW9uX2RpcikvJGJsb2NrCi0gICAgICAgICAjfQotIyAgICAgICAgIGlmIHsoJHZhcnMoaGllcl9mbG93X3R5cGUpID09ICIycGFzcyIpICYmICEkdmFycyhlbmFibGVfZmxleGlsbSl9IHsKLSMgICAgICAgICAgICBmb3JlYWNoIGJsb2NrIFtjb25jYXQgJHZhcnMoZGVzaWduKSAkdmFycyhwYXJ0aXRpb25fbGlzdCldIHsKLSMgICAgICAgICAgICAgICBmaWxlIGNvcHkgLWZvcmNlICR2YXJzKHBhcnRpdGlvbl9kaXIpLyRibG9jay9NYWtlZmlsZS5wYXNzMiAkdmFycyhwYXJ0aXRpb25fZGlyX3Bhc3MyKS8kYmxvY2svTWFrZWZpbGUKLSMgICAgICAgICAgICAgICBmaWxlIGNvcHkgLWZvcmNlICR2YXJzKHBhcnRpdGlvbl9kaXIpLyRibG9jay9NYWtlZmlsZS5wYXNzMiAkdmFycyhzY3JpcHRfZGlyKS8kYmxvY2suTWFrZWZpbGUKLSMgICAgICAgICAgICAgICBmaWxlIGRlbGV0ZSAkdmFycyhwYXJ0aXRpb25fZGlyKS8kYmxvY2svTWFrZWZpbGUucGFzczIKLSMgICAgICAgICAgICB9Ci0jICAgICAgICAgfQotICAgICAgfQotICAgfQotCi0gICBwcm9jIGNoZWNrX3RjbF92ZXJzaW9uIHt9IHsKLSAgICAgIHNldCB0Y2xfdmVyc2lvbiBbaW5mbyB0Y2x2ZXJzaW9uXQotICAgICAgc2V0IHR2ZXJzaW9uIFtzcGxpdCAkdGNsX3ZlcnNpb24gIi4iXQotICAgICAgc2V0IG1ham9yIFtsaW5kZXggJHR2ZXJzaW9uIDBdCi0gICAgICBzZXQgbWlub3IgW2xpbmRleCAkdHZlcnNpb24gMV0KLSAgICAgIHNldCB2YWxpZF92ZXJzaW9uIDEKLSAgICAgIGlmIHskbWFqb3IgIT0gIjgifSB7Ci0gICAgICAgICBzZXQgdmFsaWRfdmVyc2lvbiAwCi0gICAgICB9IGVsc2UgewotICAgICAgICAgaWYge1tleHByICRtaW5vcl0gPCA0fSB7Ci0gICAgICAgICAgICBzZXQgdmFsaWRfdmVyc2lvbiAwCi0gICAgICAgICB9Ci0gICAgICB9Ci0gICAgICBpZiB7ISR2YWxpZF92ZXJzaW9ufSB7Ci0gICAgICAgICBwdXRzICItLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIgotICAgICAgICAgcHV0cyAiPEZGPiBFUlJPUjogVENMIFZFUlNJT04gTVVTVCBCRSA4LjQgT1IgR1JFQVRFUi4iCi0gICAgICAgICBwdXRzICIgICAgICAgICAgICBZT1VSIFRDTCBWRVJTSU9OIElTICR0Y2xfdmVyc2lvbi4iCi0gICAgICAjICAgcHV0cyAiICAgICAgICAgICAgUExFQVNFIFJVTiBUSEUgRkxPVyBHRU5FUkFUT1IgVVNJTkciCi0gICAgICAjICAgcHV0cyAiICAgICAgICAgICAgSU5OT1ZVUyAoV0lUSCAtZSBPUFRJT04pIgotICAgICAgICAgcHV0cyAiLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIKLSAgICAgICAgIGV4aXQgLTEKLSAgICAgIH0gZWxzZSB7Ci0jICAgICAgICAgcHV0cyAiLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIKLSMgICAgICAgICBwdXRzICI8RkY+ICBUQ0wgVkVSU0lPTiAtPiAkdGNsX3ZlcnNpb24iCi0jICAgICAgICAgcHV0cyAiLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIKLSAgICAgIH0KLSAgIH0KLQotICAgcHJvYyBjcmVhdGVfZmxvdyB7YXJndn0gewotICAgCi0gICAgICBnbG9iYWwgdmFycwotICAgICAgZ2xvYmFsIGluZm9zCi0gICAgICBnbG9iYWwgd2FybmluZ3MKLSAgICAgIGdsb2JhbCBlcnJvcnMKLSAgICAgIGdsb2JhbCBjaGVjawotICAgICAgZ2xvYmFsIGRhcmdzIAotICAgICAgZ2xvYmFsIGZhcmdzIAotICAgICAgZ2xvYmFsIGFyZ3YwCi0gICAgICBnbG9iYWwgZW52Ci0KLSAgICAgIHNldCBvcmlnX2FyZ3YgJGFyZ3YKLSAgIAotICAgICAgaW50ZXJwIGFsaWFzIHt9IFB1dHMge30gcHV0cwotCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICMgUGFyc2UgdGhlIGFyZ3VtZW50cyBwYXNzZWQgaW4gdG8gdGhlIHNjcmlwdC4gIFRoZXNlIHNldCB1cCB0aGUgZW52aXJvbm1lbnQgIwotICAgICAgIyBmb3IgdGhlIHJlc3Qgb2YgdGhlIHN5c3RlbSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgIAotICAgICAgc2V0IHZhcnMoYXJnX2xpc3QpIFtsaXN0IFwKLSAgICAgICAgIGNvZGVnZW4gXAotICAgICAgICAgZWRpIFwKLSAgICAgICAgIGZsYXQgXAotICAgICAgICAgbWFrZWZpbGUgXAotICAgICAgICAgbW9kZSBcCi0gICAgICAgICByYyBcCi0gICAgICAgICBub3Z1cyBcCi0gICAgICAgICBzeW50aF9mbG93IFwKLSAgICAgICAgIHJ1bmRpciBcCi0gICAgICAgICBzY3JpcHRfZGlyIFwKLSAgICAgICAgIHN0eWxlIFwKLSAgICAgICAgIHVzZXJfbW9kZSBcCi0gICAgICAgICB2ZXJib3NlIFwKLSAgICAgICAgIHZlcnNpb24gXAotICAgICAgXQotICAgICAgCi0gICAgICBzZXQgdmFycyhjaGVja19zZXR1cCkgMQotICAgCi0gICAgICBpZiB7IVtpbmZvIGV4aXN0cyB2YXJzKHNjcmlwdF9wYXRoKV19IHsKLSAgICAgICAgIHNldCB2YXJzKHNjcmlwdF9wYXRoKSAiIgotICAgICAgfQotICAgICAgc2V0IG5vcm1hbGl6ZWQgW2ZpbGUgbm9ybWFsaXplICRhcmd2MF0KLSAgICAgIGlmIHtbZmlsZSBpc2RpcmVjdG9yeSAkbm9ybWFsaXplZF19IHsKLSAgICAgICAgIHNldCBkZWZhdWx0X3NjcmlwdF9wYXRoICRub3JtYWxpemVkCi0gICAgICB9IGVsc2VpZiB7W2ZpbGUgaXNkaXJlY3RvcnkgW2ZpbGUgZGlybmFtZSAkbm9ybWFsaXplZF1dfSB7Ci0gICAgICAgICBzZXQgZGVmYXVsdF9zY3JpcHRfcGF0aCBbZmlsZSBkaXJuYW1lICRub3JtYWxpemVkXQotICAgICAgfQotICAgCi0gICAgICBpZiB7W2luZm8gZXhpc3RzIGVudihGRl9TRVRVUF9QQVRIKV0gJiYgW2ZpbGUgZXhpc3RzICRlbnYoRkZfU0VUVVBfUEFUSCldfSB7Ci0gICAgICAgICBzZXQgc2V0dXBfcGF0aCAkZW52KEZGX1NFVFVQX1BBVEgpCi0gICAgICB9IGVsc2UgewotICAgICAgICAgc2V0IHNldHVwX3BhdGggIi4iCi0gICAgICB9Ci0gICAKLSAgICAgIGlmIHshW2luZm8gZXhpc3RzIGFyZ3ZdIHx8ICFbbGxlbmd0aCAkYXJndl19IHsKLSAgICAgICAgIHNldCBhcmd2ICItaCIKLSAgICAgIH0KLSAgIAotICAgICAgc2V0IHZhcnMoZm9ybWF0X2xpbmVzKSB0cnVlCi0gICAKLSAgICAgIHdoaWxlIHtbc3RyaW5nIG1hdGNoICItKiIgW2xpbmRleCAkYXJndiAwXV19IHsKLSAgICAgICAgIGlmIHshW2xsZW5ndGggJGFyZ3ZdfSB7Ci0gICAgICAgICAgICBicmVhawotICAgICAgICAgfQotICAgICAgICAgc2V0IG9wdGlvbiBbbGluZGV4ICRhcmd2IDBdCi0gICAgICAgICBzZXQgYXJndiBbbHJlcGxhY2UgJGFyZ3YgMCAwXQotICAgCi0gICAgICAgICBzd2l0Y2ggLXJlZ2V4cCAtLSAkb3B0aW9uIHsKLSAgICAgICAgICAgIF4tKGh8LWhlbHApJCB7Ci0gICAgICAgICAgICAgICBwdXRzICRGRk1NOjp1c2FnZQotICAgICAgICAgICAgICAgZXhpdCAwCi0gICAgICAgICAgICB9Ci0gICAKLSAgICAgICAgICAgIF4tKG18LW1vZGUpJCB7Ci0gICAgICAgICAgICAgICAjCi0gICAgICAgICAgICAgICAjIFNwZWNpZnkgdGhlIHJ1bnRpbWUgbW9kZS4KLSAgICAgICAgICAgICAgICMKLSAgIAotICAgICAgICAgICAgICAgaWYge1tsbGVuZ3RoICRhcmd2XX0gewotICAgICAgICAgICAgICAgICAgc2V0IG5ld01vZGUgW2xpbmRleCAkYXJndiAwXQotICAgICAgICAgICAgICAgICAgc2V0IGFyZ3YgW2xyZXBsYWNlICRhcmd2IDAgMF0KLSAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICBwdXRzICRGRk1NOjpub01vZGUKLSAgICAgICAgICAgICAgICAgIHB1dHMgJEZGTU06OnVzYWdlCi0gICAgICAgICAgICAgICAgICBleGl0IC0xCi0gICAgICAgICAgICAgICB9Ci0gICAKLSAgICAgICAgICAgICAgICMKLSAgICAgICAgICAgICAgICMgVGhlIG1vZGUgbmVlZHMgdG8gYmUgb25lIG9mIHRoZSByZWNvZ25pemVkIG1vZGVzCi0gICAgICAgICAgICAgICAjCi0gICAKLSAgICAgICAgICAgICAgIGlmIHtbbHNlYXJjaCBbY29uY2F0ICJ1c2VyIiAiaGllciIgJEZGTU06OnZhbGlkTW9kZXNdICRuZXdNb2RlXSA9PSAtMX0gewotICAgICAgICAgICAgICAgICAgcHV0cyBbZm9ybWF0ICRGRk1NOjp1bmtub3duTW9kZSAkbmV3TW9kZV0KLSAgICAgICAgICAgICAgICAgIHB1dHMgJEZGTU06OnVzYWdlCi0gICAgICAgICAgICAgICAgICBleGl0IC0xMTEKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIHNldCBtb2RlICRuZXdNb2RlCi0gICAgICAgICAgICAgICBwdXRzICI8RkY+IEZMT1cgTU9ERSA9PSAkbW9kZSIKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIF4tKG58LW5vbWFrZSkkIHsKLSAgICAgICAgICAgICAgICMKLSAgICAgICAgICAgICAgICMgU2tpcCBNYWtlZmlsZSBnZW5lcmF0aW9uCi0gICAgICAgICAgICAgICAjCi0gICAKLSAgICAgICAgICAgICAgIHNldCBtYWtlZmlsZSBmYWxzZQotICAgICAgICAgICAgICAgcHV0cyAiPEZGPiBHRU5FUkFURSBNQUtFRklMRSA9PSAkbWFrZWZpbGUiCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBeLShyfC1ydGwpJCB7Ci0gICAgICAgICAgICAgICAjCi0gICAgICAgICAgICAgICAjIEVuYWJsZSBHZW51cyBDb2RlZ2VuCi0gICAgICAgICAgICAgICAjCi0gICAKLSAgICAgICAgICAgICAgIHNldCByYyB0cnVlCi0gICAgICAgICAgICAgICBwdXRzICI8RkY+IFJUbCBTQ1JJUFRTID09ICRyYyIKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIF4tKE58LU5vdnVzKSQgewotICAgICAgICAgICAgICAgIwotICAgICAgICAgICAgICAgIyBFbmFibGUgTm92dXMgU3ludGF4Ci0gICAgICAgICAgICAgICAjCi0gICAKLSAgICAgICAgICAgICAgIHNldCBub3Z1cyB0cnVlCi0gICAgICAgICAgICAgICBwdXRzICI8RkY+IE5PVlVTIFNDUklQVFMgPT0gJG5vdnVzIgotICAgICAgICAgICAgfQotIyAgICAgICAgICAgIF4tKGx8LWZsb3cpJCB7Ci0jICAgICAgICAgICAgICAgaWYge1tsbGVuZ3RoICRhcmd2XX0gewotIyAgICAgICAgICAgICAgICAgIHNldCBzeW50aF9mbG93IFtsaW5kZXggJGFyZ3YgMF0KLSMgICAgICAgICAgICAgICAgICBzZXQgYXJndiBbbHJlcGxhY2UgJGFyZ3YgMCAwXQotIyAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0jICAgICAgICAgICAgICAgICAgcHV0cyAkRkZNTTo6bm9zeW50aF9mbG93Ci0jICAgICAgICAgICAgICAgfQotIyAgICAgICAgICAgIH0KLSMgICAgICAgICAgICBeLShhfGFwcGxldHMpJCB7Ci0jICAgICAgICAgICAgICAgIwotIyAgICAgICAgICAgICAgICMgRGVmaW5lIHRoZSBhcHBsZXRzIGRpcmVjdG9yeSBwYXRoCi0jICAgICAgICAgICAgICAgIwotIyAgIAotIyAgICAgICAgICAgICAgIGlmIHtbbGxlbmd0aCAkYXJndl19IHsKLSMgICAgICAgICAgICAgICAgICBzZXQgYXBwbGV0c0RpciBbbGluZGV4ICRhcmd2IDBdCi0jICAgICAgICAgICAgICAgICAgc2V0IGFyZ3YgW2xyZXBsYWNlICRhcmd2IDAgMF0KLSMgICAgICAgICAgICAgICB9IGVsc2UgewotIyAgICAgICAgICAgICAgICAgIHB1dHMgJEZGTU06Om5vQXBwbGV0UGF0aAotIyAgICAgICAgICAgICAgICAgIGV4aXQgLTEKLSMgICAgICAgICAgICAgICB9Ci0jICAgCi0jICAgICAgICAgICAgICAgcHV0cyAiPEZGPiBBUFBMRVRTIERJUkVDVE9SWSA9PSAkYXBwbGV0c0RpciIKLSMgICAgICAgICAgICAgICBzZXQgdmFycyhhcHBsZXRzX2RpcikgJGFwcGxldHNEaXIKLSMgICAgICAgICAgICB9Ci0gICAgICAgICAgICBeLSh2fC12ZXJzaW9uKSQgewotICAgICAgICAgICAgICAgIwotICAgICAgICAgICAgICAgIyBTZXQgdGhlIHRhcmdldCBJbm5vdnVzIHZlcnNpb24KLSAgICAgICAgICAgICAgICMKLSAgIAotICAgCi0gICAgICAgICAgICAgICBpZiB7W2xsZW5ndGggJGFyZ3ZdfSB7Ci0gICAgICAgICAgICAgICAgICBzZXQgdmVyc2lvbiBbbGluZGV4ICRhcmd2IDBdCi0gICAgICAgICAgICAgICAgICBzZXQgYXJndiBbbHJlcGxhY2UgJGFyZ3YgMCAwXQotICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgIHB1dHMgJEZGTU06Om5vVmVyc2lvbgotICAgICAgICAgICAgICAgICAgZXhpdCAtMQotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgaWYgeyhbbHNlYXJjaCAkRkY6OnZhbGlkX3ZlcnNpb25zICR2ZXJzaW9uXSA8IDApfSB7Ci0gICAgICAgICAgICAgICAgICBwdXRzICRGRk1NOjpub1ZlcnNpb24KLSAgICAgICAgICAgICAgICAgIGV4aXQgLTEKLSAgICAgICAgICAgICAgIH0KLSMgICAgICAgICAgICAgIHB1dHMgIjxGRj4gVkVSU0lPTiA9PSAkdmVyc2lvbiIKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIF4tKGZ8LWZsYXQpJCB7Ci0gICAgICAgICAgICAgICAjCi0gICAgICAgICAgICAgICAjIEdldCB0aGUgcGF0aCB0byB0aGUgc2NyaXB0cy4KLSAgICAgICAgICAgICAgICMKLSAgIAotICAgICAgICAgICAgICAgaWYge1tsbGVuZ3RoICRhcmd2XX0gewotICAgICAgICAgICAgICAgICAgc2V0IG5ld0ZsYXQgW2xpbmRleCAkYXJndiAwXQotICAgICAgICAgICAgICAgICAgc2V0IGFyZ3YgW2xyZXBsYWNlICRhcmd2IDAgMF0KLSAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICBwdXRzICRGRk1NOjpub0ZsYXQKLSAgICAgICAgICAgICAgICAgIGV4aXQgLTEKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIGlmIHsoJG5ld0ZsYXQgIT0gImZ1bGwiKSAmJiAoJG5ld0ZsYXQgIT0gInBhcnRpYWwiKSAmJiAoJG5ld0ZsYXQgIT0gIm5vbmUiKX0gewotICAgICAgICAgICAgICAgICAgcHV0cyAkRkZNTTo6bm9GbGF0Ci0gICAgICAgICAgICAgICAgICBleGl0IC0xCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICBwdXRzICI8RkY+IEZMQVQgPT0gJG5ld0ZsYXQiCi0gICAgICAgICAgICAgICBzZXQgZmxhdCAkbmV3RmxhdAotICAgICAgICAgICAgfQotICAgICAgICAgICAgXi0oZXwtZWRpKSQgewotICAgICAgICAgICAgICAgIwotICAgICAgICAgICAgICAgIyBFbmFibGUgSW5ub3Z1cyBtb2RlCi0gICAgICAgICAgICAgICAjCi0gICAKLSAgICAgICAgICAgICAgIGlmIHtbbGxlbmd0aCAkYXJndl19IHsKLSAgICAgICAgICAgICAgICAgIHNldCBlZGkgdHJ1ZQotIyAgICAgICAgICAgICAgICAgc2V0IGFyZ3YgW2xyZXBsYWNlICRhcmd2IDAgMF0KLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIHB1dHMgIjxGRj4gSU5OT1ZVUyA9PSAkdmFycyhlZGkpIgotICAgICAgICAgICAgfQotICAgICAgICAgICAgXi0oZHwtZGlyKSQgewotICAgICAgICAgICAgICAgIwotICAgICAgICAgICAgICAgIyBEZWZpbmUgb3V0cHV0IGRpcmVjdG9yeSBwYXRoCi0gICAgICAgICAgICAgICAjCi0gICAKLSAgICAgICAgICAgICAgIGlmIHtbbGxlbmd0aCAkYXJndl19IHsKLSAgICAgICAgICAgICAgICAgIHNldCBzY3JpcHREaXIgW2xpbmRleCAkYXJndiAwXQotICAgICAgICAgICAgICAgICAgc2V0IGFyZ3YgW2xyZXBsYWNlICRhcmd2IDAgMF0KLSAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICBwdXRzICRGRk1NOjpub1BhdGgKLSAgICAgICAgICAgICAgICAgIGV4aXQgLTEKLSAgICAgICAgICAgICAgIH0KLSAgIAotICAgICAgICAgICAgICAgcHV0cyAiPEZGPiBPVVRQVVQgRElSRUNUT1JZID09ICRzY3JpcHREaXIiCi0gICAKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIF4tKHl8LXN0eWxlKSQgewotICAgICAgICAgICAgICAgIwotICAgICAgICAgICAgICAgIyBEZWZpbmUgcnVuZGlyIGRpcmVjdG9yeSBuYW1pbmcgc3R5bGUKLSAgICAgICAgICAgICAgICMgLWQgbXVzdCBiZSBwcm92aWRlZCwgc2luY2UgdGhpcyB3aWxsIHJlZGVmaW5lIHZhcnMoc2NyaXB0X2RpcikKLSAgICAgICAgICAgICAgICMKLSAgIAotICAgICAgICAgICAgICAgaWYge1tsbGVuZ3RoICRhcmd2XX0gewotICAgICAgICAgICAgICAgICAgc2V0IHN0eWxlVHlwZSBbbGluZGV4ICRhcmd2IDBdCi0gICAgICAgICAgICAgICAgICBzd2l0Y2ggLXJlZ2V4cCAtLSAkc3R5bGVUeXBlIHsgCi0gICAgICAgICAgICAgICAgICAgIChpbmNyZW1lbnR8ZGF0ZXxub25lKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgc2V0IGFyZ3YgW2xyZXBsYWNlICRhcmd2IDAgMF0KLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICBkZWZhdWx0IHsKLSAgICAgICAgICAgICAgICAgICAgICBwdXRzIFtmb3JtYXQgJEZGTU06OnVua25vd25PcHRpb24gIi15ICRzdHlsZVR5cGUiXQotICAgICAgICAgICAgICAgICAgICAgIHB1dHMgJEZGTU06OnVzYWdlCi0gICAgICAgICAgICAgICAgICAgICAgZXhpdCAtMQotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgcHV0cyAkRkZNTTo6bm9TdHlsZQotICAgICAgICAgICAgICAgICAgZXhpdCAtMQotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgcHV0cyAiPEZGPiBESVJFQ1RPUlkgTkFNSU5HIFNUWUxFID09ICRzdHlsZVR5cGUiCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBeLSh1fC1ydW5kaXIpJCB7Ci0gICAgICAgICAgICAgICAjCi0gICAgICAgICAgICAgICAjIERlZmluZSBleGVjdXRpb24gKHJ1bikgZGlyCi0gICAgICAgICAgICAgICAjIFRoaXMgb3B0aW9uIHN1cGVyY2VlZHMgLWQgKCR2YXJzKHNjcmlwdF9kaXIpIGlzIG92ZXJyaWRkZW4gdG8gJHZhcnMocnVuZGlyKS9GRikKLSAgICAgICAgICAgICAgICMKLSAgIAotICAgICAgICAgICAgICAgaWYge1tsbGVuZ3RoICRhcmd2XX0gewotICAgICAgICAgICAgICAgICAgc2V0IHJ1bkRpciBbbGluZGV4ICRhcmd2IDBdCi0gICAgICAgICAgICAgICAgICBzZXQgYXJndiBbbHJlcGxhY2UgJGFyZ3YgMCAwXQotICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgIHB1dHMgJEZGTU06Om5vUnVuZGlyCi0gICAgICAgICAgICAgICAgICBleGl0IC0xCi0gICAgICAgICAgICAgICB9Ci0gICAKLSAgICAgICAgICAgICAgIHB1dHMgIjxGRj4gUlVORElSIEJBU0UgPT0gJHJ1bkRpciIKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIF4tKHN8LXNldHVwKSQgewotICAgICAgICAgICAgICAgIwotICAgICAgICAgICAgICAgIyBHZXQgdGhlIHBhdGggdG8gdGhlIGRpcmVjdG9yeSBjb250YWluaW5nIHRoZSBzZXR1cC50Y2wgY29udHJvbAotICAgICAgICAgICAgICAgIyBmaWxlCi0gICAgICAgICAgICAgICAjCi0gICAKLSAgICAgICAgICAgICAgIGlmIHtbbGxlbmd0aCAkYXJndl19IHsKLSAgICAgICAgICAgICAgICAgIHNldCBuZXdQYXRoIFtsaW5kZXggJGFyZ3YgMF0KLSAgICAgICAgICAgICAgICAgIHNldCBhcmd2IFtscmVwbGFjZSAkYXJndiAwIDBdCi0gICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgcHV0cyAkRkZNTTo6bm9TZXR1cFBhdGgKLSAgICAgICAgICAgICAgICAgIHB1dHMgJEZGTU06OnVzYWdlCi0gICAgICAgICAgICAgICAgICBleGl0IC0xCi0gICAgICAgICAgICAgICB9Ci0gICAKLSAgICAgICAgICAgICAgICMKLSAgICAgICAgICAgICAgICMgRG9lcyB0aGUgcGF0aCBleGlzdD8gIElmIG5vdCwgZXJyb3Igb3V0LiAgTWFrZSBzdXJlIHRoYXQgdGhlIHBhdGgKLSAgICAgICAgICAgICAgICMgZXhpc3RzIGFuZCBjb250YWlucyB0aGUgc291cmNlIGZpbGVzCi0gICAgICAgICAgICAgICAjCi0gICAKLSAgICAgICAgICAgICAgIGlmIHshW2ZpbGUgZXhpc3RzICRuZXdQYXRoXX0gewotICAgICAgICAgICAgICAgICAgcHV0cyBbZm9ybWF0ICRGRk1NOjpub1N1Y2hQYXRoICRuZXdQYXRoXQotICAgICAgICAgICAgICAgICAgcHV0cyAkRkZNTTo6dXNhZ2UKLSAgICAgICAgICAgICAgICAgIGV4aXQgLTEKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIHNldCBzZXR1cF9wYXRoICRuZXdQYXRoCi0gICAgICAgICAgICAgICBwdXRzICI8RkY+IFNFVFVQIFBBVEggPT0gJHNldHVwX3BhdGgiCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBeLShWfC1WZXJib3NlKSQgewotICAgICAgICAgICAgICAgIwotICAgICAgICAgICAgICAgIyBFbmFibGUgVmVyYm9zZSBtb2RlCi0gICAgICAgICAgICAgICAjCi0gICAKLSAgICAgICAgICAgICAgIGlmIHtbbGxlbmd0aCAkYXJndl19IHsKLSAgICAgICAgICAgICAgICAgIHNldCB2YXJzKHZlcmJvc2UpIHRydWUKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIHB1dHMgIjxGRj4gVkVSQk9TRSA9PSAkdmFycyh2ZXJib3NlKSIKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIF4tKEh8LUhlbHApJCB7Ci0gICAgICAgICAgICAgICAjCi0gICAgICAgICAgICAgICAjIFByaW50IHN0ZXAgaGVscAotICAgICAgICAgICAgICAgIwotICAgCi0gICAgICAgICAgICAgICBpZiB7W2xsZW5ndGggJGFyZ3ZdfSB7Ci0gICAgICAgICAgICAgICAgICBzZXQgdmFycyhoZWxwKSB0cnVlCi0gICAgICAgICAgICAgICB9Ci0jICAgICAgICAgICAgICAgcHV0cyAiPEZGPiBIRUxQID09ICR2YXJzKGhlbHApIgotICAgICAgICAgICAgfQotICAgICAgICAgICAgZGVmYXVsdCB7Ci0gICAgICAgICAgICAgICBwdXRzIFtmb3JtYXQgJEZGTU06OnVua25vd25PcHRpb24gJG9wdGlvbl0KLSAgICAgICAgICAgICAgIHB1dHMgJEZGTU06OnVzYWdlCi0gICAgICAgICAgICAgICBleGl0IC0xCi0gICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0gICAgICB9Ci0gICAKLSAgICAgIGlmIHshW2ZpbGUgZXhpc3RzICRzZXR1cF9wYXRoL3NldHVwLnRjbF19IHsKLSAgICAgICAgIHB1dHMgW2Zvcm1hdCAkRkZNTTo6bWlzc2luZ1NldHVwRmlsZSAkc2V0dXBfcGF0aF0KLSAgICAgICAgIGV4aXQgLTEKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgICBzZXQgdmFycyhzZXR1cF9wYXRoKSAkc2V0dXBfcGF0aAotICAgICAgfQotICAKLSAgICAgICMKLSAgICAgICMgU291cmNlIHRoZSBvdGhlciBUY2wgZmlsZXMgdG8gZXhlY3V0ZSB0aGUgZmxvdy4gIFRoZW4gZG8gc28KLSAgICAgICMKLSAgIAotICAgICAgc291cmNlICIkdmFycyhzY3JpcHRfcGF0aCkvRVRDL3V0aWxzLnRjbCIKLSAgIAotICAgICAgIwotICAgICAgIyBHZXQgbmV3IHJ1bmRpciAodXNpbmcgLXUvLXkgYW5kIHBvc3NpYmx5IHVzZXIgdmFyaWFibGVzKQotICAgICAgIwotICAgICAgIyBOT1RFOiBkYXJnczogZGVmYXVsdCBhcmdzCi0gICAgICAjICAgICAgIGZhcmdzOiBmbG93IGFyZ3Mgc3BlY2lmaWVkIG9uIGNvbW1hbmQgbGluZQotICAgCi0gICAgICBpZiB7IVtpbmZvIGV4aXN0cyBmaXJzdF19IHsKLSAgICAgICAgICMgQkNMOiBNb3ZlZCB0aGlzIGNvZGUgYmVmb3JlIGdlbl9uZXdfcnVuZGlyIHNpbmNlIGRhcmdzKG1vZGUpIG11c3QgYmUgc2V0IGJlZm9yZSBleGVjdXRpbmcgZXhlY3V0ZV9mbG93Ci0gICAgICAgICBpZiB7IVtpbmZvIGV4aXN0cyBtb2RlXX0gewotICAgICAgICAgICAgc2V0IG1vZGUgZmxhdAotICAgICAgICAgICAgc2V0IGRhcmdzKHVzZXJfbW9kZSkgZmxhdCAKLSAgICAgICAgICAgIHNldCBkYXJncyhtb2RlKSBmbGF0IAotICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIGlmIHskbW9kZSA9PSAiZmxhdCIgfHwgJG1vZGUgPT0gInVzZXIifSB7Ci0gICAgICAgICAgICAgICBzZXQgZmFyZ3ModXNlcl9tb2RlKSBmbGF0ICAKLSAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgc2V0IGZhcmdzKHVzZXJfbW9kZSkgaGllciAKLSAgICAgICAgICAgICB9Ci0jICAgICAgICAgICBzZXQgZmFyZ3ModXNlcl9tb2RlKSBmbGF0ICAKLSAgICAgICAgIH0gCi0gICAgICAgICBpZiB7IVtpbmZvIGV4aXN0cyBtYWtlZmlsZV19IHsKLSAgICAgICAgICAgIHNldCBkYXJncyhtYWtlZmlsZSkgdHJ1ZQotICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHNldCBmYXJncyhtYWtlZmlsZSkgJG1ha2VmaWxlCi0gICAgICAgICB9Ci0gICAgICAgICBpZiB7IVtpbmZvIGV4aXN0cyByY119IHsKLSAgICAgICAgICAgIHNldCBkYXJncyhyYykgZmFsc2UKLSAgICAgICAgICAgIHNldCByYyBmYWxzZQotICAgICAgICAgfSBlbHNlIHsgCi0gICAgICAgICAgICBzZXQgZmFyZ3MocmMpICRyYyAKLSAgICAgICAgIH0KLSAgICAgICAgIGlmIHshW2luZm8gZXhpc3RzIG5vdnVzXX0gewotICAgICAgICAgICAgc2V0IGRhcmdzKG5vdnVzKSBmYWxzZQotICAgICAgICAgICAgc2V0IG5vdnVzIGZhbHNlCi0gICAgICAgICB9IGVsc2UgeyAKLSAgICAgICAgICAgIHNldCBmYXJncyhub3Z1cykgJG5vdnVzIAotICAgICAgICAgfQotICAgICAgICAgaWYgeyFbaW5mbyBleGlzdHMgc3ludGhfZmxvd119IHsKLSAgICAgICAgICAgIHNldCBkYXJncyhzeW50aF9mbG93KSBkZWZhdWx0X3N5bnRoZXNpc19mbG93XzNzdGVwCi0gICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgc2V0IGZhcmdzKHN5bnRoX2Zsb3cpICRzeW50aF9mbG93Ci0gICAgICAgICB9Ci0gICAgICAgICBpZiB7IVtpbmZvIGV4aXN0cyB2ZXJzaW9uXX0gewotICAgICAgICAgICAgc2V0IGRhcmdzKHZlcnNpb24pIDE3LjEuMAotICAgICAgICAgfSBlbHNlIHsgCi0gICAgICAgICAgICBzZXQgZmFyZ3ModmVyc2lvbikgJHZlcnNpb24KLSAgICAgICAgIH0KLSAgICAgICAgIGlmIHshW2luZm8gZXhpc3RzIGVkaV19IHsKLSAgICAgICAgICAgIHNldCBkYXJncyhlZGkpIGZhbHNlCi0gICAgICAgICB9IGVsc2UgeyAKLSAgICAgICAgICAgIHNldCBmYXJncyhlZGkpICRlZGkKLSAgICAgICAgIH0KLSAgICAgICAgIGlmIHshW2luZm8gZXhpc3RzIGZsYXRdfSB7Ci0gICAgICAgICAgICBzZXQgZGFyZ3MoZmxhdCkgb2ZmCi0gICAgICAgICB9IGVsc2UgeyAKLSAgICAgICAgICAgIHNldCBmYXJncyhmbGF0KSAkZmxhdAotICAgICAgICAgfQotICAgICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmVyYm9zZV19IHsKLSAgICAgICAgICAgIHNldCBkYXJncyh2ZXJib3NlKSBmYWxzZQotICAgICAgICAgfSBlbHNlIHsgCi0gICAgICAgICAgICBzZXQgZmFyZ3ModmVyYm9zZSkgJHZlcmJvc2UKLSAgICAgICAgIH0KLSAgICAgICAgIGlmIHshW2luZm8gZXhpc3RzIHNjcmlwdERpcl19IHsKLSAgICAgICAgICAgIHNldCBkYXJncyhzY3JpcHRfZGlyKSBGRgotICAgICAgICAgfSBlbHNlIHsgCi0gICAgICAgICAgICBzZXQgZmFyZ3Moc2NyaXB0X2RpcikgJHNjcmlwdERpcgotICAgICAgICAgfQotICAgICAgICAgc2V0IGRhcmdzKHJ1bmRpcikgW2ZpbGUgbm9ybWFsaXplIC5dIAotICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyBydW5EaXJdfSB7Ci0gICAgICAgICAgICAjIEJDTDogaWYgcnVuRGlyIGlzIHNldCwgaXQncyBhIGZsb3cgYXJnCi0gICAgICAgICAgICBzZXQgZmFyZ3MocnVuZGlyKSAkcnVuRGlyCi0gICAgICAgICB9Ci0gICAgICAgICBpZiB7IVtpbmZvIGV4aXN0cyBzdHlsZVR5cGVdfSB7Ci0gICAgICAgICAgICBzZXQgZGFyZ3Moc3R5bGUpIG5vbmUKLSAgICAgICAgIH0gZWxzZSB7IAotICAgICAgICAgICAgc2V0IGZhcmdzKHN0eWxlKSAkc3R5bGVUeXBlCi0gICAgICAgICB9Ci0gICAgICAgICAKLSAgICAgICAgICMgQkNMOiBXZSBhcmUgcnVubmluZyBjb2RlZ2VuLCBzbyBzZXQgZmFyZ3MoY29kZWdlbikgdG8gdHJ1ZQotICAgICAgICAgc2V0IGZhcmdzKGNvZGVnZW4pIHRydWUKLSAgICAgICAgIHNldCBmYXJncyhtb2RlKSAkbW9kZQotICAgICAgICAgc2V0IHZhcnMoY3dkKSBbcHdkXQotICAgICAgCi0gICAgICAgICBzZXQgZmlyc3QgMAotICAgCi0gICAgICAgICAjIEJDTDogKHBvdGVudGlhbGx5KSBnZW5lcmF0ZSBhIG5ldyBydW5kaXIKLSAgICAgICAgIHNldCBmYXJncyhydW5kaXIpIFtmaWxlIG5vcm1hbGl6ZSBbRkY6Omdlbl9uZXdfcnVuZGlyICRvcmlnX2FyZ3ZdXQotICAgCi0jICAgICAgICAgIyBJZiB0aGUgdXNlciBwYXNzZWQgYSAteSBhbmQgLXUsIG1vdmUgdGhlIC15IChjb2RlZ2VuIGRpciBvdXRwdXQpIHRvIHVuZGVybmVpdGggdGhlIC11IChydW5kaXIpCi0jICAgICAgICAgIyBhbmQgbWVzc2FnZSB1c2VyCi0jICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyBmYXJncyhydW5kaXIpXSAmJiAkdmFycyhydW5kaXIpIG5lICIiICYmIFtmaWxlIG5vcm1hbGl6ZSAkZmFyZ3MocnVuZGlyKV0gbmUgW2ZpbGUgbm9ybWFsaXplIC5dfSB7Ci0jICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHNjcmlwdERpcl19IHsKLSMgICAgICAgICAgICAgIHB1dHMgIjxGRj4gTk9URTogY29kZWdlbiBvdXRwdXQgZGlyICgteSAkc2NyaXB0RGlyKSB1c2VkIHdpdGggcnVuZGlyIHNwZWNpZmljYXRpb24gb2Y6ICRmYXJncyhydW5kaXIpLiIKLSMgICAgICAgICAgICAgIHB1dHMgIjxGRj4gICAgICAgRkYgd2lsbCBtb3ZlIHRoZSBjb2RlZ2VuIGRpciB1bmRlciB0aGUgcnVuZGlyOiAgJHZhcnMocnVuZGlyKS9bZmlsZSB0YWlsICR2YXJzKHNjcmlwdF9kaXIpXSIKLSMgICAgICAgICAgICAgIHNldCBmYXJncyhzY3JpcHRfZGlyKSBbZmlsZSBub3JtYWxpemUgJHZhcnMocnVuZGlyKS9bZmlsZSB0YWlsICR2YXJzKHNjcmlwdF9kaXIpXV0KLSMgICAgICAgICAgICAgIHNldCB2YXJzKHNjcmlwdF9kaXIpICRmYXJncyhzY3JpcHRfZGlyKQotIyAgICAgICAgICAgfSBlbHNlaWYge1tpbmZvIGV4aXN0cyB2YXJzKHNjcmlwdF9kaXIpXSAmJiAkdmFycyhzY3JpcHRfZGlyKSBlcSAiRkYifSB7Ci0jICAgICAgICAgICAgICAjIHZhcnMoc2NyaXB0X2RpcikgaXMgdGhlIGRlZmF1bHQsIHNvIGp1c3QgbW92ZSBpdAotIyAgICAgICAgICAgICAgc2V0IGZhcmdzKHNjcmlwdF9kaXIpIFtmaWxlIG5vcm1hbGl6ZSAkdmFycyhydW5kaXIpL0ZGXQotIyAgICAgICAgICAgICAgc2V0IHZhcnMoc2NyaXB0X2RpcikgJGZhcmdzKHNjcmlwdF9kaXIpCi0jICAgICAgICAgICB9Ci0jICAgICAgICAgfSBlbHNlIHsKLSMgICAgICAgICAgICMgcnVuZGlyIGlzIC4vLCBzbyBzZXQgCi0jICAgICAgICAgICBpZiB7IVtpbmZvIGV4aXN0cyBzY3JpcHREaXJdfSB7Ci0jICAgICAgICAgICAgIHNldCBkYXJncyhzY3JpcHRfZGlyKSAiRkYiCi0jICAgICAgICAgICAgIHNldCB2YXJzKHNjcmlwdF9kaXIpICRkYXJncyhzY3JpcHRfZGlyKQotIyAgICAgICAgICAgfSBlbHNlIHsKLSMgICAgICAgICAgICAgc2V0IHZhcnMoc2NyaXB0X2RpcikgJHNjcmlwdERpcgotIyAgICAgICAgICAgfQotIyAgICAgICAgIH0KLSAgICAgICAgICMgQkNMOiBBZGRlZCBzdWJzdCB0byByZXNvbHZlIHZhcnMocnVuZGlyKQotIyBHREcgLSB0aGlzIGlzIGRvbmUgbXVsdGlwbGUgdGltZXMKLSAgICAgICAgICNjYXRjaCB7ZmlsZSBta2RpciBbc3Vic3QgJHZhcnMoc2NyaXB0X2RpcildfQotICAgICAgfQotCi0gICAgICAjCi0gICAgICAjIERldGVybWluZSB0aGUgc3RlcHMgdGhhdCBjYW4gYmUgZXhlY3V0ZWQgYmFzZWQgdXBvbiB0aGUgbW9kZSBwYXNzZWQgaW4KLSAgICAgICMKLSAgICAgIEZGOjpzZXRfc3RlcHMgJG1vZGUgJHZhcnMoZm9ybWF0X2xpbmVzKQotICAgICAgc2V0IHVzZXJfc3RlcHMgW2xpc3RdCi0gICAgICBpZiB7IVtsbGVuZ3RoICRhcmd2XX0gewotICAgICAgICAgIwotICAgICAgICAgIyBJZiB0aGVyZSBpcyBubyBhcmd1bWVudCwgcHJpbnQgb3V0IHRoZSBsaXN0IG9mIHZhbGlkIHN0ZXBzIGZvciB0aGUgbW9kZQotICAgICAgICAgIwotICAgICAgICAgIyBzZXQgc3RlcCBhbGwKLSAgICAgICAgICMgICBwdXRzICJWYWxpZCBzdGVwcyBhcmU6IHNvdXJjZSBjaGVjayBhbGwgJHZhcnMoc3RlcHMpIgotICAgICAgICAgIyAgIGV4aXQKLSAgIAotICAgICAgICAgcHV0cyAkRkZNTTo6dXNhZ2UKLSAgICAgICAgIHB1dHMgIiAgIFN0ZXAgYXJndW1lbnQgbWlzc2luZyAuLi4gdmFsaWQgc3RlcHMgYXJlOlxuIgotICAgICAgICAgIGZvcmVhY2ggcyAiJHZhcnMoc3RlcHMpIGFsbCIgewotICAgICAgICAgICAgcHV0cyAiICAgICAkcyIKLSAgICAgICAgIH0KLSAgICAgICAgIGV4aXQKLQotICAgICAgfSBlbHNlIHsKLQotICAgICAgICAgIwotICAgICAgICAgIyBDcmVhdGUgYSBsaXN0IG9mIHRoZSB1c2VyLXNwZWNpZmllZCBzdGVwcy4gIFRoZXkgY2FuIGJlIGluIHRoZSBmb3JtIG9mCi0gICAgICAgICAjICAgICA8c3RlcDE+IDxzdGVwMj4gLi4uIDxzdGVwbj4KLSAgICAgICAgICMgICAgIDxzdGVwMT4gPHN0ZXAzPi08c3RlcDU+IDxzdGVwNz4gLi4uCi0gICAgICAgICAjICAgICA8c3RlcDE+LTxzdGVwbj4KLSAgICAgICAgICMgVGhlcmUgYXJlLCBvZiBjb3Vyc2UsIGFkZGl0aW9uYWwgdmFyaWFudHMuICBUaGUgdGhpbmcgaXMsIGlmIHRoZXJlIGlzIGEKLSAgICAgICAgICMgZGFzaCBiZXR3ZWVuIHR3byBzdGVwcywgd2Ugd2FudCB0byBleHBhbmQgdGhlIGRhc2ggaW50byB0aGUgc2V0IG9mIGFsbAotICAgICAgICAgIyBzdGVwcyBiZXR3ZWVuIHRoZSB0d28gbGlzdGVkLgotICAgICAgICAgIwotICAKLSAgICAgICAgIHNldCB2YXJzKHN0ZXBfYXJnKSAkYXJndgotICAgICAgICAgZm9yZWFjaCBzdGVwICRhcmd2IHsKLSAgICAgICAgICAgIHNldCBkYXNoIFtzdHJpbmcgZmlyc3QgIi0iICRzdGVwXQotICAgICAgICAgICAgaWYgeyRkYXNoID09IC0xfSB7Ci0gICAgICAgICAgICAgICBsYXBwZW5kIHVzZXJfc3RlcHMgJHN0ZXAKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBzZXQgZmlyc3Rfc3RlcCBbc3RyaW5nIHJhbmdlICRzdGVwIDAgW2V4cHIgJGRhc2ggLSAxXV0KLSAgICAgICAgICAgICAgIHNldCBsYXN0X3N0ZXAgW3N0cmluZyByYW5nZSAkc3RlcCBbZXhwciAkZGFzaCArIDFdIGVuZF0KLSAgICAgICAgICAgICAgIGlmIHskbGFzdF9zdGVwID09ICIifSB7Ci0gICAgICAgICAgICAgICAgICBzZXQgbGFzdF9zdGVwIFtsaW5kZXggJHZhcnMoc3RlcHMpIGVuZF0KLSAgICAgICAgICAgICAgIH0KLSAgIAotICAgICAgICAgICAgICAgc2V0IGZpcnN0X2luZGV4IFtsc2VhcmNoICR2YXJzKHN0ZXBzKSAkZmlyc3Rfc3RlcF0KLSAgICAgICAgICAgICAgIHNldCBsYXN0X2luZGV4IFtsc2VhcmNoICR2YXJzKHN0ZXBzKSAkbGFzdF9zdGVwXQotICAgICAgICAgICAgICAgaWYgeyRmaXJzdF9pbmRleCA9PSAtMX0gewotICAgICAgICAgICAgICAgICAgcHV0cyAiRXJyb3I6IFVua25vd24gc3RlcCAkZmlyc3Rfc3RlcCBmb3IgbW9kZSAkbW9kZSIKLSAgICAgICAgICAgICAgICAgIGV4aXQgLTExMQotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgaWYgeyRsYXN0X2luZGV4ID09IC0xfSB7Ci0gICAgICAgICAgICAgICAgICBwdXRzICJFcnJvcjogVW5rbm93biBzdGVwICRsYXN0X3N0ZXAgZm9yIG1vZGUgJG1vZGUiCi0gICAgICAgICAgICAgICAgICBleGl0IC0xMTEKLSAgICAgICAgICAgICAgIH0KLSAgIAotICAgICAgICAgICAgICAgc2V0IHN0ZXBzIFtscmFuZ2UgJHZhcnMoc3RlcHMpICRmaXJzdF9pbmRleCAkbGFzdF9pbmRleF0KLSAgICAgICAgICAgICAgIHNldCB1c2VyX3N0ZXBzIFtjb25jYXQgJHVzZXJfc3RlcHMgJHN0ZXBzXQotICAgICAgICAgICAgfQotICAgICAgICAgfQotICAgICAgfQotICAKLSAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhoZWxwKV0gJiYgJHZhcnMoaGVscCl9IHsKLSAgICAgICAgIGZvcmVhY2ggc3RlcCAkdXNlcl9zdGVwcyB7Ci0gICAgICAgICAgICBGRjo6aGVscCAkc3RlcAotICAgICAgICAgfQotICAgICAgICAgZXhpdAotICAgICAgfQotICAgCi0gICAgICBzZXQgdmFycyhtYWtlKSAkdXNlcl9zdGVwcwotICAgICAgc2V0IHZhcnMoYXJndikgJGFyZ3YKLSAgIAotICAgICAgI3NldCB1c2VyX3N0ZXBzIFtGRjo6c2V0dXBfZmxvdyAkYXJndiBdCi0gICAKLSAgICAgICMKLSAgICAgICMgRXhlY3V0ZSB0aGUgZmxvdyBmb3IgZXZlcnkgc3RlcCB0aGF0IHRoZSB1c2VyIHNwZWNpZmllZC4KLSAgICAgICMKLSAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhydW5kaXIpXX0gewotICAgICAgICAgc2V0IGN3ZCBbZXhlYyBwd2RdICAKLSAgICAgICAgIGZpbGUgbWtkaXIgJHZhcnMocnVuZGlyKQotICAgICAgICAgZm9yZWFjaCBmaWxlIFtsaXN0IHNldHVwLnRjbCBpbm5vdnVzX2NvbmZpZy50Y2wgbHBfY29uZmlnLnRjbCByY19jb25maWcudGNsXSB7IAotICAgICAgICAgICAgaWYge1tmaWxlIGlzZmlsZSAkZmlsZV19IHsKLSAgICAgICAgICAgICAgIGZpbGUgY29weSAtZm9yY2UgJGZpbGUgJHZhcnMocnVuZGlyKQotICAgICAgICAgICAgfQotICAgICAgICAgfQotICAgICAgICAgY2QgJHZhcnMocnVuZGlyKQotICAgICAgfQotICAgICAKLSAgICAgIHNldCBtb2RlICR2YXJzKG1vZGUpCi0gICAgICBmb3JlYWNoIHN0ZXAgJHVzZXJfc3RlcHMgewotICAgICAgICAgaWYgeyRtb2RlID09ICJoaWVyIn0geyBzZXQgbW9kZSB0b3BfZG93biB9Ci0gICAgICAgICBzd2l0Y2ggJG1vZGUgewotICAgICAgICAgICAgInVzZXIiIHsKLSAgICAgICAgICAgICAgIGlmIHskdmFycyhub3Z1cyl9IHsKLSAgICAgICAgICAgICAgICAgIEZGX05PVlVTOjpleGVjdXRlX2Zsb3cgJHN0ZXAgJHZhcnMoZm9ybWF0X2xpbmVzKQotICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgIEZGX0VESTo6ZXhlY3V0ZV9mbG93ICRzdGVwICR2YXJzKGZvcm1hdF9saW5lcykKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgICJmbGF0IiB7Ci0gICAgICAgICAgICAgICBpZiB7JHZhcnMobm92dXMpfSB7Ci0gICAgICAgICAgICAgICAgICBGRl9OT1ZVUzo6ZXhlY3V0ZV9mbG93ICRzdGVwICR2YXJzKGZvcm1hdF9saW5lcykKLSAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICBGRl9FREk6OmV4ZWN1dGVfZmxvdyAkc3RlcCAkdmFycyhmb3JtYXRfbGluZXMpCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICAidG9wX2Rvd24iIHsKLSAgICAgICAgICAgICAgIGlmIHskdmFycyhub3Z1cyl9IHsKLSAgICAgICAgICAgICAgICAgIEZGX05PVlVTOjpleGVjdXRlX2Zsb3cgJHN0ZXAgJHZhcnMoZm9ybWF0X2xpbmVzKQotICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgIEZGX0VESTo6ZXhlY3V0ZV9mbG93ICRzdGVwICR2YXJzKGZvcm1hdF9saW5lcykKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgICJib3R0b21fdXAiIHsKLSAgICAgICAgICAgICAgIGlmIHskdmFycyhub3Z1cyl9IHsKLSAgICAgICAgICAgICAgICAgIEZGX05PVlVTOjpleGVjdXRlX2Zsb3cgJHN0ZXAgJHZhcnMoZm9ybWF0X2xpbmVzKQotICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgIEZGX0VESTo6ZXhlY3V0ZV9mbG93ICRzdGVwICR2YXJzKGZvcm1hdF9saW5lcykKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgICJkZWZhdWx0IiB7Ci0gICAgICAgICAgICAgICBwdXRzIFtmb3JtYXQgJEZGTU06OnVua25vd25Nb2RlIG1vZGVdCi0gICAgICAgICAgICAgICBwdXRzICRGRk1NOjp1c2FnZQotICAgICAgICAgICAgICAgZXhpdCAtMTExCi0gICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0gICAgICB9Ci0gICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoZmxvd19zdGVwcyldfSB7Ci0gICAgICAgICB1bnNldCB2YXJzKGZsb3dfc3RlcHMpCi0gICAgICB9Ci0gICAgICBpZiB7W2ZpbGUgaXNmaWxlICR2YXJzKHNjcmlwdF9kaXIpL0lOTk9WVVMvLmhlYWRdfSB7Ci0gICAgICAgICBpZiB7JHZhcnMoc3RlcF9hcmcpID09ICJhbGwifSB7Ci0gICAgICAgICAgICBzZXQgb3AgW29wZW4gJHZhcnMoc2NyaXB0X2RpcikvSU5OT1ZVUy9ydW5fc2ltcGxlLnRjbCB3XQotICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHNldCBvcCBbb3BlbiAkdmFycyhzY3JpcHRfZGlyKS9JTk5PVlVTL3J1bl9zaW1wbGUuJHZhcnMoc3RlcF9hcmcpLnRjbCB3XQotICAgICAgICAgfQotICAgICAgICAgcHV0cyAkb3AgIiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyIKLSAgICAgICAgIHB1dHMgJG9wICIjICAgICAgICAgICAgICAgICAgICAgICBTSU5HTEUgU0NSSVBUIEZMT1ciCi0gICAgICAgICBwdXRzICRvcCAiIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIgotICAgICAgICAgcHV0cyAkb3AgIlxuc291cmNlICR2YXJzKHNjcmlwdF9kaXIpL3ZhcnMudGNsIgotICAgICAgICAgcHV0cyAkb3AgInNvdXJjZSAkdmFycyhzY3JpcHRfZGlyKS9wcm9jcy50Y2xcbiIKLSAgICAgICAgIHNldCBpcCBbb3BlbiAkdmFycyhzY3JpcHRfZGlyKS9JTk5PVlVTLy5oZWFkXQotICAgICAgICAgd2hpbGUge1tnZXRzICRpcCBsaW5lXT49MH0gewotICAgICAgICAgICAgcHV0cyAkb3AgJGxpbmUgCi0gICAgICAgICB9Ci0gICAgICAgICBjbG9zZSAkaXAKLSAgICAgICAgIHNldCBpcCBbb3BlbiAkdmFycyhzY3JpcHRfZGlyKS9JTk5PVlVTLy5sb2FkX1tsaW5kZXggJHZhcnMoYnN0ZXBzKSAwXV0KLSAgICAgICAgIHdoaWxlIHtbZ2V0cyAkaXAgbGluZV0+PTB9IHsKLSAgICAgICAgICAgIHB1dHMgJG9wICRsaW5lIAotICAgICAgICAgfQotICAgICAgICAgY2xvc2UgJGlwCi0gICAgICAgICBmb3JlYWNoIHN0ZXAgJHZhcnMoYnN0ZXBzKSB7Ci0gICAgICAgICAgICBpZiB7KCRzdGVwID09ICJsZWMiKSB8fCAoJHN0ZXAgPT0gImRlYnVnIil9IHsKLSAgICAgICAgICAgICAgIGNvbnRpbnVlCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBzZXQgaXAgW29wZW4gJHZhcnMoc2NyaXB0X2RpcikvSU5OT1ZVUy8uJHN0ZXBdCi0gICAgICAgICAgICB3aGlsZSB7W2dldHMgJGlwIGxpbmVdPj0wfSB7Ci0gICAgICAgICAgICAgICBwdXRzICRvcCAkbGluZSAKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGNsb3NlICRpcAotICAgICAgICAgICAgZmlsZSBkZWxldGUgJHZhcnMoc2NyaXB0X2RpcikvSU5OT1ZVUy8uJHN0ZXAgIAotICAgICAgICAgICAgZmlsZSBkZWxldGUgJHZhcnMoc2NyaXB0X2RpcikvSU5OT1ZVUy8ubG9hZF8kc3RlcAotICAgICAgICAgfSAKLSAgICAgICAgIHB1dHMgJG9wICJleGl0IgotICAgICAgICAgY2xvc2UgJG9wCi0jICAgICAgICBmaWxlIG1rZGlyICR2YXJzKHNjcmlwdF9kaXIpL0lOTk9WVVMvU0lNUExFCi0jICAgICAgICBmb3JlYWNoIHN0ZXAgJHZhcnMoYnN0ZXBzKSB7Ci0jICAgICAgICAgICBpZiB7KCRzdGVwID09ICJsZWMiKSAgfHwgKCRzdGVwID09ICJkZWJ1ZyIpfSB7Ci0jICAgICAgICAgICAgICBjb250aW51ZQotIyAgICAgICAgICAgfQotIyAgICAgICAgICAgc2V0IG9wIFtvcGVuICR2YXJzKHNjcmlwdF9kaXIpL0lOTk9WVVMvU0lNUExFL3J1bl8kc3RlcC50Y2wgd10KLSMgICAgICAgICAgIHB1dHMgJG9wICIjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMiCi0jICAgICAgICAgICBwdXRzICRvcCAiIyAgICAgICAgICAgICAgICAgICAgICBTSU1QTEUgU1RFUCBTQ1JJUFQiCi0jICAgICAgICAgICBwdXRzICRvcCAiIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIgotIyAgICAgICAgICAgcHV0cyAkb3AgIlxuc291cmNlICR2YXJzKHNjcmlwdF9kaXIpL3ZhcnMudGNsIgotIyAgICAgICAgICAgcHV0cyAkb3AgInNvdXJjZSAkdmFycyhzY3JpcHRfZGlyKS9wcm9jcy50Y2xcbiIKLSMgICAgICAgICAgIHNldCBpcCBbb3BlbiAgJHZhcnMoc2NyaXB0X2RpcikvSU5OT1ZVUy8uaGVhZF0KLSMgICAgICAgICAgIHdoaWxlIHtbZ2V0cyAkaXAgbGluZV0+PTB9IHsKLSMgICAgICAgICAgICAgIHB1dHMgJG9wICRsaW5lIAotIyAgICAgICAgICAgfQotIyAgICAgICAgICAgY2xvc2UgJGlwCi0jIyAgICAgICAgICAgZmlsZSBkZWxldGUgJHZhcnMoc2NyaXB0X2RpcikvSU5OT1ZVUy8uaGVhZCAgCi0jICAgICAgICAgICBzZXQgaXAgW29wZW4gJHZhcnMoc2NyaXB0X2RpcikvSU5OT1ZVUy8ubG9hZF8kc3RlcF0KLSMgICAgICAgICAgIHdoaWxlIHtbZ2V0cyAkaXAgbGluZV0+PTB9IHsKLSMgICAgICAgICAgICAgIHB1dHMgJG9wICRsaW5lIAotIyAgICAgICAgICAgfQotIyAgICAgICAgICAgY2xvc2UgJGlwCi0jICAgICAgICAgICBzZXQgaXAgW29wZW4gICR2YXJzKHNjcmlwdF9kaXIpL0lOTk9WVVMvLiRzdGVwXQotIyAgICAgICAgICAgd2hpbGUge1tnZXRzICRpcCBsaW5lXT49MH0gewotIyAgICAgICAgICAgICAgcHV0cyAkb3AgJGxpbmUgCi0jICAgICAgICAgICB9Ci0jICAgICAgICAgICBjbG9zZSAkaXAKLSMgICAgICAgICAgIHB1dHMgJG9wICJleGl0IgotIyAgICAgICAgICAgY2xvc2UgJG9wCi0jICAgICAgICAgICBmaWxlIGRlbGV0ZSAkdmFycyhzY3JpcHRfZGlyKS9JTk5PVlVTLy4kc3RlcCAgCi0jICAgICAgICAgICBmaWxlIGRlbGV0ZSAkdmFycyhzY3JpcHRfZGlyKS9JTk5PVlVTLy5sb2FkXyRzdGVwCi0jICAgICAgICB9Ci0gICAgICAgICAgZmlsZSBkZWxldGUgJHZhcnMoc2NyaXB0X2RpcikvSU5OT1ZVUy8uaGVhZCAgCi0gICAgICB9Ci0KLSAgICAgICMgLS0tLS0tLS0tLS0KLQotIyAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhzY3JpcHRfZGlyKV19IHsKLSMgICAgICAgICBmaWxlIGRlbGV0ZSAkdmFycyhzY3JpcHRfZGlyKS9JTk5PVlVTL2dlbl9odG1sLnRjbAotIyAgICAgICAgIGZpbGUgY29weSBbc3Vic3QgJHZhcnMoc2NyaXB0X3BhdGgpL0lOTk9WVVMvZ2VuX2h0bWwudGNsXSBbc3Vic3QgJHZhcnMoc2NyaXB0X2RpcikvSU5OT1ZVUy9nZW5faHRtbC50Y2xdCi0jICAgICAgfQotICAgICAgcHV0cyAiLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIKLSAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhwbHVnX2ZpbGVzKV0gJiYgKCR2YXJzKHBsdWdfZmlsZXMpICE9ICIiKX0gewotICAgICAgICAgcHV0cyAiXG4gICAgICAgICAgICAgICAgUGx1Zy1pbnMgSW1wb3J0ZWQiCi0gICAgICAgICBwdXRzICIgICAgICAgICAgICAgICAtLS0tLS0tLS0tLS0tLS0tLS0iICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAotICAgICAgICAgZm9yZWFjaCBmaWxlICR2YXJzKHBsdWdfZmlsZXMpIHsKLSAgICAgICAgICAgIHB1dHMgIiAgICAgICAgICAgICAgID4gJGZpbGUiCi0gICAgICAgICB9Ci0gICAgICB9Ci0gICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMocGx1Z2luc19kZWZpbmVkKV0gJiYgKCR2YXJzKHBsdWdpbnNfZGVmaW5lZCkgIT0gIiIpfSB7Ci0gICAgICAgICAgICBzZXQgcGx1Z2luc19kZWZpbmVkIFtsbGVuZ3RoICR2YXJzKHBsdWdpbnNfZGVmaW5lZCldCi0gICAgICAgICAgICBpZiB7JHZhcnModmVyYm9zZSl9IHsKLSAgICAgICAgICAgICAgIHB1dHMgIlxuICAgICAgICAgICAgICAgIFBsdWctaW5zIERlZmluZWQiCi0gICAgICAgICAgICAgICBwdXRzICIgICAgICAgICAgICAgICAtLS0tLS0tLS0tLS0tLS0tLS0iICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgZm9yZWFjaCBmaWxlIFtqb2luICR2YXJzKHBsdWdpbnNfZGVmaW5lZCldIHsKLSAgICAgICAgICAgICAgICAgIHB1dHMgIiAgICAgICAgICAgICAgID4gJGZpbGUiCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgc2V0IHBsdWdpbnNfZGVmaW5lZCAwCi0gICAgICAgICB9Ci0gICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMocGx1Z2luc19mb3VuZCldICYmICgkdmFycyhwbHVnaW5zX2ZvdW5kKSAhPSAiIil9IHsKLSAgICAgICAgICAgIHNldCBwbHVnaW5zX2ZvdW5kIFtsbGVuZ3RoICR2YXJzKHBsdWdpbnNfZm91bmQpXQotICAgICAgICAgICAgaWYgeyR2YXJzKHZlcmJvc2UpfSB7Ci0gICAgICAgICAgICAgICBwdXRzICJcbiAgICAgICAgICAgICAgICAgUGx1Zy1pbnMgRm91bmQiCi0gICAgICAgICAgICAgICBwdXRzICIgICAgICAgICAgICAgICAtLS0tLS0tLS0tLS0tLS0tLS0iICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgZm9yZWFjaCBmaWxlIFtqb2luICR2YXJzKHBsdWdpbnNfZm91bmQpXSB7Ci0gICAgICAgICAgICAgICAgICBwdXRzICIgICAgICAgICAgICAgICA+ICRmaWxlIgotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHNldCBwbHVnaW5zX2ZvdW5kIDAKLSAgICAgICAgIH0KLSAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhtaXNzaW5nX3BsdWdpbnMpXSAmJiAoJHZhcnMobWlzc2luZ19wbHVnaW5zKSAhPSAiIil9IHsKLSAgICAgICAgICAgIHNldCBtaXNzaW5nX3BsdWdpbnMgW2xsZW5ndGggJHZhcnMobWlzc2luZ19wbHVnaW5zKV0KLSAgICAgICAgICAgIHB1dHMgIlxuICAgICAgICAgICAgICAgICBNaXNzaW5nIFBsdWctaW5zIgotICAgICAgICAgICAgcHV0cyAiICAgICAgICAgICAgICAgLS0tLS0tLS0tLS0tLS0tLS0tIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgIGZvcmVhY2ggZmlsZSBbam9pbiAkdmFycyhtaXNzaW5nX3BsdWdpbnMpXSB7Ci0gICAgICAgICAgICAgICBwdXRzICIgICAgICAgICAgICAgICA+ICRmaWxlIgotICAgICAgICAgICAgfQotICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHNldCBtaXNzaW5nX3BsdWdpbnMgMAotICAgICAgICAgfQotICAgICAgIyAgICAgIHB1dHMgIi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iCi0gICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnModGFnZ2VkKV0gJiYgKCR2YXJzKHRhZ2dlZCkgIT0gIiIpfSB7Ci0gICAgICAgICBwdXRzICJcbiAgICAgICAgICAgICAgICBUYWdnZWQgQ29tbWFuZHMiCi0gICAgICAgICBwdXRzICIgICAgICAgICAgICAgICAtLS0tLS0tLS0tLS0tLS0tLS0iICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAotICAgICAgICAgZm9yZWFjaCBmaWxlICR2YXJzKHRhZ2dlZCkgewotICAgICAgICAgICAgcHV0cyAiICAgICAgICAgICAgICAgPiAkZmlsZSIKLSAgICAgICAgIH0KLQotICAgICAgICAgc2V0IHZhcnMobWlzc2luZ190YWdzKSBbbGlzdF0KLSAgICAgICAgIGZvcmVhY2ggdmFyIFthcnJheSBuYW1lcyB2YXJzXSB7Ci0gICAgICAgICAgIGlmIHtbbGxlbmd0aCBbc3BsaXQgJHZhciAiLCJdXSA9PSAzfSB7Ci0gICAgICAgICAgICAgc2V0IHN1ZmZpeCBbbGluZGV4IFtzcGxpdCAkdmFyICIsIl0gMl0KLSAgICAgICAgICAgICBpZiB7KCRzdWZmaXggPT0gInByZV90Y2wiKSB8fCAoJHN1ZmZpeCA9PSAicG9zdF90Y2wiKSB8fCAoJHN1ZmZpeCA9PSAicmVwbGFjZV90Y2wiKX0gewotICAgICAgICAgICAgICAgaWYge1tsc2VhcmNoICR2YXJzKHRhZ2dlZCkgJHZhcl0gPT0gLTF9IHsKLSAgICAgICAgICAgICAgICAgbGFwcGVuZCB2YXJzKG1pc3NpbmdfdGFncykgJHZhcgotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgIH0KLSAgICAgICAgICAgfQotICAgICAgICAgfQotICAgICAgICAgaWYge1tsbGVuZ3RoICR2YXJzKG1pc3NpbmdfdGFncyldID4gMH0geyAKLSAgICAgICAgICAgcHV0cyAiXG4gICAgICAgICAgICAgICAgVW5yZWNvZ25pemVkIFRhZ3MiCi0gICAgICAgICAgIHB1dHMgIiAgICAgICAgICAgICAgIC0tLS0tLS0tLS0tLS0tLS0tLSIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCi0gICAgICAgICAgIGZvcmVhY2ggdGFnICR2YXJzKG1pc3NpbmdfdGFncykgewotICAgICAgICAgICAgICBwdXRzICIgICAgICAgICAgICAgICA+ICR0YWciCi0gICAgICAgICAgIH0KLSAgICAgICAgIH0KLSAgICAgIH0KLSAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhpbmZvX2NvdW50KV0gJiYgKCR2YXJzKGluZm9fY291bnQpID4gMCl9IHsKLSAgICAgICAgIHB1dHMgIlxuICAgICAgICAgICAgICAgICAgIEluZm8gU3VtbWFyeSIKLSAgICAgICAgIHB1dHMgIiAgICAgICAgICAgICAgICAgIC0tLS0tLS0tLS0tLS0tLSIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCi0gICAgICAgICBmb3Ige3NldCBpIDB9IHskaTwkdmFycyhpbmZvX2NvdW50KX0ge2luY3IgaX0gewotICAgICAgICAgICAgcHV0cyAiICAgIChbZXhwciAkaSArIDFdKSAkaW5mb3MoJGkpIgotICAgICAgICAgfQotICAgICAgfQotICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKHdhcm5pbmdfY291bnQpXSAmJiAoJHZhcnMod2FybmluZ19jb3VudCkgPiAwKX0gewotICAgICAgICAgcHV0cyAiXG4gICAgICAgICAgICAgICAgICBXYXJuaW5nIFN1bW1hcnkiCi0gICAgICAgICBwdXRzICIgICAgICAgICAgICAgICAgICAtLS0tLS0tLS0tLS0tLS0iICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAotICAgICAgICAgZm9yIHtzZXQgaSAwfSB7JGk8JHZhcnMod2FybmluZ19jb3VudCl9IHtpbmNyIGl9IHsKLSAgICAgICAgICAgIHB1dHMgIiAgICAoW2V4cHIgJGkgKyAxXSkgJHdhcm5pbmdzKCRpKSIKLSAgICAgICAgIH0KLSAgICAgIH0KLSAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhlcnJvcl9jb3VudCldICYmICgkdmFycyhlcnJvcl9jb3VudCkgPiAwKX0gewotICAgICAgICAgcHV0cyAiXG4gICAgICAgICAgICAgICAgICAgRXJyb3IgU3VtbWFyeSIKLSAgICAgICAgIHB1dHMgIiAgICAgICAgICAgICAgICAgICAtLS0tLS0tLS0tLS0tLS0iICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAotICAgICAgICAgZm9yIHtzZXQgaSAwfSB7JGk8JHZhcnMoZXJyb3JfY291bnQpfSB7aW5jciBpfSB7Ci0gICAgICAgICAgICBwdXRzICIgICAgKFtleHByICRpICsgMV0pICRlcnJvcnMoJGkpIgotICAgICAgICAgfQotICAgICAgICAgaWYgeyR2YXJzKGFib3J0KX0gewotICAgICAgICAgICAgcHV0cyAiXG4iCi0gICAgICAgICAgICBwdXRzICItLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIgotICAgICAgICAgICAgcHV0cyAiPEZGPiBDT0RFIEdFTkVSQVRJT04gRkFJTEVEIgotICAgICAgICAgICAgcHV0cyAiLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIKLSAgICAgICAgICAgIGV4aXQgMQotICAgICAgICAgfQotICAgICAgfQotICAgICAgaWYgeyR2YXJzKG1ha2UpICE9ICJhbGwifSB7Ci0gICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoY3VzdG9tX3N0ZXBzKV19IHsKLSAgICAgICAgICAgIEZGOjpnZW5fbWFrZWZpbGUgJHZhcnMoY3VzdG9tX3N0ZXBzKSAkdmFycyhtb2RlKQotICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIEZGOjpnZW5fbWFrZWZpbGUgJHZhcnMobWFrZSkgJHZhcnMobW9kZSkKLSAgICAgICAgIH0KLSAgICAgIH0KLQotCi0jICAgICAgaWYgeygkdmFycyh1c2VyX21vZGUpID09ICJoaWVyIikgJiYgJHZhcnMoZW5hYmxlX2ZsZXhpbG0pfSB7Ci0jICAgICAgICAgZm9yZWFjaCBwYXJ0ICR2YXJzKHBhcnRpdGlvbl9saXN0KSB7Ci0jICAgICAgICAgICAgZmlsZSBjb3B5ICR2YXJzKHBhcnRpdGlvbl9kaXJfcGFzczIpLyRwYXJ0L01ha2VmaWxlICR2YXJzKHBhcnRpdGlvbl9kaXJfcGFzczIpLyRwYXJ0Lk1ha2VmaWxlCi0jICAgICAgICAgfSAKLSMgICAgICB9Ci0gICAgICAKLSAgICAgIHB1dHMgIlxuIgotICAgICAgcHV0cyAiLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIKLSAgICAgIHB1dHMgIjxGRj4gQ09ERSBHRU5FUkFUSU9OIENPTVBMRVRFIgotICAgICAgcHV0cyAiPEZGPiAuLi4gVkVSU0lPTiAgLT4gJHZhcnModmVyc2lvbikiCi0gICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMocnVuZGlyKV19IHsKLSAgICAgICAgIHB1dHMgIjxGRj4gLi4uIFJVTiBESVJFQ1RPUlkgIC0+ICR2YXJzKHJ1bmRpcikiCi0gICAgICB9Ci0gICAgICBwdXRzICI8RkY+IC4uLiBTQ1JJUFRTICAtPiAkdmFycyhzY3JpcHRfZGlyKSIKLSAgICAgIHB1dHMgIjxGRj4gLi4uIFBMVUdJTlMgIC0+ICRwbHVnaW5zX2RlZmluZWQgZGVmaW5lZCwgJHBsdWdpbnNfZm91bmQgZm91bmQiCi0gICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoY2hlY2tfdmFycyldICYmICR2YXJzKGNoZWNrX3ZhcnMpfSB7Ci0gICAgICAgICBwdXRzICI8RkY+IC4uLiBSRVBPUlRTICAtPiAkdmFycyhzY3JpcHRfZGlyKS9jaGVjay5ycHQiCi0gICAgICAgICBwdXRzICI8RkY+IC4uLiAgICAgICAgICAtPiAkdmFycyhzY3JpcHRfZGlyKS9jaGVja192YXJzLnJwdCIKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgICBwdXRzICI8RkY+IC4uLiBSRVBPUlQgICAtPiAkdmFycyhzY3JpcHRfZGlyKS9jaGVjay5ycHQiCi0gICAgICB9Ci0gICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMobWFrZWZpbGVfbmFtZSldICYmIFtmaWxlIGlzZmlsZSBbc3Vic3QgJHZhcnMobWFrZWZpbGVfbmFtZSldXX0gewotICAgICAgICAgcHV0cyAiPEZGPiAuLi4gTUFLRUZJTEUgLT4gW3JlbFBhdGhUbyBbc3Vic3QgJHZhcnMobWFrZWZpbGVfbmFtZSldIFtzdWJzdCAkdmFycyhydW5kaXIpXV0iCi0gICAgICB9Ci0gICAgICAKLSAgICAgIHB1dHMgIi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iCi0KLSAgICAgIEZGOjpkdW1wX3ZhcnMKLQotICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKHJ1bmRpcildfSB7Ci0gICAgICAgICBjZCAkY3dkCi0gICAgICB9Ci0gICB9Ci0KLSAgIHByb2MgZHVtcF92YXJzIHt9IHsKLQotICAgICAgZ2xvYmFsIHZhcnMKLSAgICAgIGdsb2JhbCBlbnYKLQotICAgICAgIyAKLSAgICAgICMgQ3JlYXRlIGEgcHJvY3MudGNsIGZpbGUgd2l0aCBmZiB1dGlsaXRpZXMgdGhhdCBhcmUgbmVlZCBieSB0aGUgZmxvdwotICAgICAgIyAKLQotICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycyhwcm9jX2ZpbGUpXX0gewotCi0gICAgICAgICBwdXRzICI8RkY+IENyZWF0aW5nICR2YXJzKHNjcmlwdF9kaXIpL3Byb2NzLnRjbCIKLSAgICAgICAgIHNldCBzYXZlICR2YXJzKHJlcXVpcmVkX3Byb2NzKQotICAgICAgICAgc2V0IG9mIFtvcGVuICR2YXJzKHNjcmlwdF9kaXIpL3Byb2NzLnRjbCB3XQotICAgICAgICAgc2V0IGZmX3Byb2NzICJcbm5hbWVzcGFjZSBldmFsIGZmX3Byb2NzOjoge1xuIgotICAgICAgICAgYXBwZW5kIGZmX3Byb2NzIFtnZXRfcmVxdWlyZWRfcHJvY3MgJHZhcnMoc2NyaXB0X3BhdGgpL0VUQy9JTk5PVlVTL3V0aWxzLnRjbF0KLSAgICAgICAgIGFwcGVuZCBmZl9wcm9jcyBbZ2V0X3JlcXVpcmVkX3Byb2NzICR2YXJzKHNjcmlwdF9wYXRoKS9FVEMvdXRpbHMudGNsXQotICAgICAgICAgc2V0IHZhcnMocmVxdWlyZWRfcHJvY3MpICJzb3VyY2VfcGx1ZyIKLSAgICAgICAgIGFwcGVuZCBmZl9wcm9jcyBbZ2V0X3JlcXVpcmVkX3Byb2NzICR2YXJzKHNjcmlwdF9wYXRoKS9FVEMvSU5OT1ZVUy91dGlscy50Y2xdCi0jICAgICAgICAgYXBwZW5kIGZmX3Byb2NzICIgICBuYW1lc3BhY2UgZXhwb3J0IGxvYWRfYXBwbGV0XG4iCi0gICAgICAgICBhcHBlbmQgZmZfcHJvY3MgIn1cbiIKLSAgICAgICAgIHB1dHMgJG9mICRmZl9wcm9jcwotICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKHVzZV9mbGV4bW9kZWxzKV0gJiYgJHZhcnModXNlX2ZsZXhtb2RlbHMpfSB7Ci0gICAgICAgICAgICBwdXRzICRvZiB7Ci0gICAgICAgICAgICAgICAjIEZsZXhtb2RlbCBkZWZhdWx0cwotICAgICAgICAgICAgICAgY2F0Y2ggewotICAgICAgICAgICAgICAgICAgc2V0UGxhY2VEZXNpZ25Nb2RlX2ZmIC1jbG9uZVBsYWNlIG5vUG9zdFBsYWNlICA7I1JFTU9WRSBhZnRlciBmaXhpbmcgQ0NSIDk3NDEwMwotICAgICAgICAgICAgICAgICAgc2V0IG1pYjo6RkVfbWFqb3JfdmVyc2lvbiAgW3N0cmluZyByYW5nZSBbZ2V0VmVyc2lvbl0gMCAxXQotICAgICAgICAgICAgICAgICAgc2V0IG1pYjo6RkVfbWlub3JfdmVyc2lvbiAgW3N0cmluZyByYW5nZSBbZ2V0VmVyc2lvbl0gMyA0XSAgICAgIAotICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIERlZmF1bHQgcHJpdmF0ZSB2YXIgc2V0dGluZ3MgZm9yIHByb3RvIGZsb3cgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgICAgICAgICAgICAgc2V0IHRyaWFsUm91dGVQcml2YXRlOjpob25vclB0blBpblNwZWMgMSAgOyNzbyBUUiBhZGRzIGJsb2NrYWdlcyBzdHJhZGRsaW5nIHB0biBib3VuZGFyeSBiZWZvcmUgcm91dGluZwotICAgICAgICAgICAgICAgICAgc2V0IHRyaWFsUm91dGVQcml2YXRlOjplbmFibGVGbGV4Q2VsbCAxIDsjZW5hYmxlIGZsZXhmaWxsZXJfcm91dGVfYmxvY2thZ2UgZm9yIGJldHRlciBjb25nZXN0aW9uL3BsYWNlbWVudCBjb3JyZWxhdGlvbiB0byBmdWxsIG5ldGxpc3QuCi0gICAgICAgICAgICAgICAgICBzZXQgdHJpYWxSb3V0ZVByaXZhdGU6OnVzZUNvbG9yTWFwICAxICA7I2VuYWJsZSBtdWNoIGZhc3RlciBoYW5kbGVQYXJ0aXRpb25Db21wbGV4IGFsZ29yaXRobQotICAgICAgICAgICAgICAgICAgc2V0IHRyaWFsUm91dGVQcml2YXRlOjpvdmVyZmxvd0xpbWl0IDQgOyNHaXZpbmcgdXAgcGhhc2UgMSB0cmlhbFJvdXRlIHByZW1hdHVyZWx5IHdoZW4gdGhlIG92ZXJmbG93IGlzIG1vcmUgdGhhbiAxMCUKLSAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIEhpZGUgc2V0dGluZyB2YXJpYWJsZXMgaW4gdGhlIHByb3RvdHlwaW5nIHNjcmlwdCAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgICAgICAgICAgICAgc2V0VmFyIHRpbWluZ19saWJyYXJ5X3N1cHBvcnRfbWlzbWF0Y2hlZF9hcmNzIDAKLSAgICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICAgICAgICAgICAgICMgUHJvY2VkdXJlIHRvIGNoZWNrIGZvciB1c2luZyBjb3JyZWN0IHByb3RvdHlwaW5nIGtpdAotICAgICAgICAgICAgICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICAgICAgICAgICAgIHByb2MgbWliOjpjaGVja19wcm90b2tpdF92ZXJzaW9uIHt7Y3VycmVudF9raXRfdmVyc2lvbiAiIn19IHsKLSAgICAgICAgICAgICAgICAgICAgIGlmIHtbbHNlYXJjaCAkbWliOjpwcm90b2tpdF92ZXJzaW9uICRjdXJyZW50X2tpdF92ZXJzaW9uXSA9PSAtMX0gewotICAgICAgICAgICAgICAgICAgICAgICAgUHV0cyAiKldBUk4qIENvcnJlY3QgcHJvdG90eXBpbmcga2l0IHNob3VsZCBiZSB1c2VkIHRvIGF2b2lkIHVuLWV4cGVjdGVkIHByb2JsZW1zIgotICAgICAgICAgICAgICAgICAgICAgICAgUHV0cyAiICAgICAgIFRoaXMgSW5ub3Z1cyBidWlsZCByZXF1aXJlcyBwcm90b3R5cGluZyBraXQgdmVyc2lvbiBbbHJhbmdlICRtaWI6OnByb3Rva2l0X3ZlcnNpb24gMCA0XSIKLSAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgICBtaWI6OmNoZWNrX3Byb3Rva2l0X3ZlcnNpb24gIkVESTEzLjIwLTAiICAKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0KLSAgICAgICAgIHNldCB2YXJzKHJlcXVpcmVkX3Byb2NzKSAkc2F2ZQotCi0gICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoY3BmX2ZpbGUpXX0gewotICAgICAgICAgICAgcHV0cyAkb2YgIiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIgotICAgICAgICAgICAgcHV0cyAkb2YgIiMgQmFja3dhcmRzIGNvbXBhdGliaWxpdHkgLi4uIgotICAgICAgICAgICAgcHV0cyAkb2YgIiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIgotICAgICAgICAgICAgcHV0cyAkb2YgImNhdGNoIHthbGlhcyBmZl9tb2RpZnlfcG93ZXJfZG9tYWlucyBmZl9wcm9jczo6bW9kaWZ5X3Bvd2VyX2RvbWFpbnN9IgotICAgICAgICAgICAgcHV0cyAkb2YgImNhdGNoIHthbGlhcyBmZl9hZGRfcG93ZXJfc3dpdGNoZXMgZmZfcHJvY3M6OmFkZF9wb3dlcl9zd2l0Y2hlc30iCi0gICAgICAgICAgICBwdXRzICRvZiAiY2F0Y2gge2FsaWFzIGZmX3JvdXRlX3NlY29uZGFyeV9wZ19uZXRzIGZmX3Byb2NzOjpyb3V0ZV9zZWNvbmRhcnlfcGdfbmV0c30iCi0gICAgICAgICAgICBwdXRzICRvZiAiY2F0Y2gge2FsaWFzIGZmX2dldF9wb3dlcl9kb21haW5zIGZmX3Byb2NzOjpnZXRfcG93ZXJfZG9tYWluc30iCi0gICAgICAgICAgICBwdXRzICRvZiAiY2F0Y2gge2FsaWFzIGZmX2J1ZmZlcl9hbHdheXNfb25fbmV0cyBmZl9wcm9jczo6YnVmZmVyX2Fsd2F5c19vbl9uZXRzfSIKLSAgICAgICAgICAgIHB1dHMgJG9mICJjYXRjaCB7YWxpYXMgZmZfaW5zZXJ0X3dlbGx0YXBzX2VuZGNhcHMgZmZfcHJvY3M6Omluc2VydF93ZWxsdGFwc19lbmRjYXBzfSIKLSAgICAgICAgICAgIGlmIHskdmFycyhub3Z1cyl9IHsgCi0gICAgICAgICAgICAgICBwdXRzICRvZiAiY2F0Y2gge2FsaWFzIEZGX05PVlVTOjptb2RpZnlfcG93ZXJfZG9tYWlucyBmZl9wcm9jczo6bW9kaWZ5X3Bvd2VyX2RvbWFpbnN9IgotICAgICAgICAgICAgICAgcHV0cyAkb2YgImNhdGNoIHthbGlhcyBGRl9OT1ZVUzo6YWRkX3Bvd2VyX3N3aXRjaGVzIGZmX3Byb2NzOjphZGRfcG93ZXJfc3dpdGNoZXN9IgotICAgICAgICAgICAgICAgcHV0cyAkb2YgImNhdGNoIHthbGlhcyBGRl9OT1ZVUzo6cm91dGVfc2Vjb25kYXJ5X3BnX25ldHMgZmZfcHJvY3M6OnJvdXRlX3NlY29uZGFyeV9wZ19uZXRzfSIKLSAgICAgICAgICAgICAgIHB1dHMgJG9mICJjYXRjaCB7YWxpYXMgRkZfTk9WVVM6OmdldF9wb3dlcl9kb21haW5zIGZmX3Byb2NzOjpnZXRfcG93ZXJfZG9tYWluc30iCi0gICAgICAgICAgICAgICBwdXRzICRvZiAiY2F0Y2gge2FsaWFzIEZGX05PVlVTOjpidWZmZXJfYWx3YXlzX29uX25ldHMgZmZfcHJvY3M6OmJ1ZmZlcl9hbHdheXNfb25fbmV0c30iCi0gICAgICAgICAgICAgICBwdXRzICRvZiAiY2F0Y2gge2FsaWFzIEZGX05PVlVTOjppbnNlcnRfd2VsbHRhcHNfZW5kY2FwcyBmZl9wcm9jczo6aW5zZXJ0X3dlbGx0YXBzX2VuZGNhcHN9IgotICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgcHV0cyAkb2YgImNhdGNoIHthbGlhcyBGRl9FREk6Om1vZGlmeV9wb3dlcl9kb21haW5zIGZmX3Byb2NzOjptb2RpZnlfcG93ZXJfZG9tYWluc30iCi0gICAgICAgICAgICAgICBwdXRzICRvZiAiY2F0Y2gge2FsaWFzIEZGX0VESTo6YWRkX3Bvd2VyX3N3aXRjaGVzIGZmX3Byb2NzOjphZGRfcG93ZXJfc3dpdGNoZXN9IgotICAgICAgICAgICAgICAgcHV0cyAkb2YgImNhdGNoIHthbGlhcyBGRl9FREk6OnJvdXRlX3NlY29uZGFyeV9wZ19uZXRzIGZmX3Byb2NzOjpyb3V0ZV9zZWNvbmRhcnlfcGdfbmV0c30iCi0gICAgICAgICAgICAgICBwdXRzICRvZiAiY2F0Y2gge2FsaWFzIEZGX0VESTo6Z2V0X3Bvd2VyX2RvbWFpbnMgZmZfcHJvY3M6OmdldF9wb3dlcl9kb21haW5zfSIKLSAgICAgICAgICAgICAgIHB1dHMgJG9mICJjYXRjaCB7YWxpYXMgRkZfRURJOjpidWZmZXJfYWx3YXlzX29uX25ldHMgZmZfcHJvY3M6OmJ1ZmZlcl9hbHdheXNfb25fbmV0c30iCi0gICAgICAgICAgICAgICBwdXRzICRvZiAiY2F0Y2gge2FsaWFzIEZGX0VESTo6aW5zZXJ0X3dlbGx0YXBzX2VuZGNhcHMgZmZfcHJvY3M6Omluc2VydF93ZWxsdGFwc19lbmRjYXBzfSIKLSAgICAgICAgICAgfQotICAgICAgICAgfQotCi0gICAgICAgICBjbG9zZSAkb2YKLSAgICAgICAgIHNldCB2YXJzKHByb2NfZmlsZSkgMQotICAgICAgfQotIyAgICAgIGlmIHtbZmlsZSB0YWlsIFtmaWxlIGRpcm5hbWUgW3B3ZF1dXSA9PSAiJHZhcnMocGFydGl0aW9uX2RpcikifSB7Ci0jICAgICAgICAgc2V0IG9wIFtvcGVuICR2YXJzKHNjcmlwdF9kaXIpL3ZhcnMudGNsIGFdCi0jICAgICAgICAgaWYgeyR2YXJzKHVzZXJfbW9kZSkgPT0gImhpZXIifSB7Ci0jICAgICAgICAgICAgaWYge1tmaWxlIHRhaWwgW2ZpbGUgZGlybmFtZSBbZXhlYyBwd2RdXV0gPT0gJHZhcnMocGFydGl0aW9uX2Rpcil9IHsKLSMgICAgICAgICAgICAgICBwdXRzICRvcCAic291cmNlICR2YXJzKG5vcm1fc2NyaXB0X3BhdGgpL0VUQy9hcHBsZXQudGNsIgotIyAgICAgICAgICAgICAgICNwdXRzICRvcCAic291cmNlIC4uLy4uLyR2YXJzKHNjcmlwdF9wYXRoKS9FVEMvY29tcGF0aWJpbGl0eS50Y2wiCi0jICAgICAgICAgICAgICAgcHV0cyAkb3AgInNldF9hdHRyaWJ1dGUgYXBwbGV0X3NlYXJjaF9wYXRoICR2YXJzKG5vcm1fc2NyaXB0X3BhdGgpL0VUQy9hcHBsZXRzIC8iCi0jICAgICAgICAgICAgfSBlbHNlIHsKLSMgICAgICAgICAgICAgICBwdXRzICRvcCAic291cmNlICR2YXJzKHNjcmlwdF9wYXRoKS9FVEMvYXBwbGV0LnRjbCIKLSMgICAgICAgICAgICAgICAjcHV0cyAkb3AgInNvdXJjZSAuLi8uLi8kdmFycyhzY3JpcHRfcGF0aCkvRVRDL2NvbXBhdGliaWxpdHkudGNsIgotIyAgICAgICAgICAgICAgIHB1dHMgJG9wICJzZXRfYXR0cmlidXRlIGFwcGxldF9zZWFyY2hfcGF0aCAkdmFycyhzY3JpcHRfcGF0aCkvRVRDL2FwcGxldHMgLyIKLSMgICAgICAgICAgICB9Ci0jICAgICAgICAgfQotIyAgICAgICAgIHB1dHMgJG9wICJhcHBsZXQgbG9hZCBtZWFzdXJlIgotIyAgICAgICAgIHB1dHMgJG9wICJhcHBsZXQgbG9hZCB0aW1lX2luZm8iCi0jICAgICAgICAgY2xvc2UgJG9wCi0jICAgICAgICAgcmV0dXJuCi0jICAgICAgfQotICAgICAgaWYge1tmaWxlIG5vcm1hbGl6ZSAkdmFycyhydW5kaXIpXSBuZSBbZmlsZSBub3JtYWxpemUgLl19IHsKLSAgICAgICAgc2V0IHJlbGF0aXZpemVWYXIgMQotICAgICAgfSBlbHNlIHsKLSAgICAgICAgc2V0IHJlbGF0aXZpemVWYXIgMAotICAgICAgfQotIyAgICAgIGlmIHskcmVsYXRpdml6ZVZhcn0gewotIyAgICAgICAgcHV0cyAiPEZGPiBGaW5hbGl6aW5nIEZvdW5kYXRpb24gRmxvdyBWYXJpYWJsZXMgZm9yIGZpbmFsIHJ1bmRpcjogW3JlbFBhdGhUbyBbZmlsZSBub3JtYWxpemUgJHZhcnMocnVuZGlyKV0gW2ZpbGUgbm9ybWFsaXplIC5dXSIKLSMgICAgICB9Ci0KLSAgICAgICMgQkNMOiBzdWJzdGl0dXRlIHBsdWdkaXJzIGFuZCBjb2RlZ2VuIGRpciB3aXRoIHZhcmlhYmxlIHJlZmVyZW5jaW5nIChpLmUuLCByZXBsYWNlIGFjdHVhbCBkaXIgd2l0aCBbc3Vic3QgJHZhcnMoPGRpcj4pXSkgYmVmb3JlIHdyaXRpbmcgdmFycy50Y2wKLSAgICAgIGlmIHshW2luZm8gZXhpc3RzIHZhcnMoZmZfZXhlX2RpcildfSB7Ci0gICAgICAgICBzZXQgdmFycyhmZl9leGVfZGlyKSBbZXhlYyBwd2RdCi0gICAgICB9Ci0KLSAgICAgICMgQkNMOiBUaGUgZm9sbG93aW5nIGFyZSBzZXQgdXNpbmcgdmFyaWFibGVzIGluIHRoZSBnZW5lcmF0ZWQgLmZmLnRjbCwgYW5kIGFyZSB0aGVyZWZvcmUgcHVsbGVkIG91dCBvZiB0aGUgZ2VuZXJhdGVkIHZhcnMudGNsCi0gICAgICBzZXQgc2tpcFZhckxpc3Qge2ZmX2V4ZV9kaXIgcnVuZGlyIHBsdWdfZGlyIHJjX3BsdWdfZGlyIGxlY19wbHVnX2RpciBzY3JpcHRfZGlyIGZsb3dfc3RlcHMgZmxvd19zdGVwcyxmbGF0IGZsb3dfc3RlcHMsaGllcn0KLQotICAgICAgIyBCQ0w6IENoYW5nZWQgdG8gdGNsIGZpbGUgbWtkaXIKLSAgICAgIGZpbGUgbWtkaXIgJHZhcnMoc2NyaXB0X2RpcikKLSNHRwotICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKHN0eWx1c19jb252ZXJ0KV0gJiYgJHZhcnMoc3R5bHVzX2NvbnZlcnQpfSB7Ci0gICAgICAgIHNldCBhbmNob3IocGxhY2UpICJiZWZvcmUgcnVuX3BsYWNlX29wdCIKLSAgICAgICAgc2V0IGFuY2hvcihwcmVjdHMpICJiZWZvcmUgcnVuX3BsYWNlX29wdCIKLSAgICAgICAgc2V0IGFuY2hvcihjdHMpICJiZWZvcmUgYWRkX2Nsb2NrX3NwZWMiCi0gICAgICAgIHNldCBhbmNob3IocG9zdGN0cykgImJlZm9yZSBhZGRfY2xvY2tfc3BlYyIKLSAgICAgICAgc2V0IGFuY2hvcihwb3N0Y3RzX2hvbGQpICJiZWZvcmUgYWRkX2Nsb2NrX3NwZWMiCi0gICAgICAgIHNldCBhbmNob3Iocm91dGUpICJiZWZvcmUgcnVuX3JvdXRlIgotICAgICAgICBzZXQgYW5jaG9yKHBvc3Ryb3V0ZSkgImJlZm9yZSBydW5fb3B0X3Bvc3Ryb3V0ZSIKLSAgICAgICAgc2V0IGFuY2hvcihwb3N0cm91dGVfaG9sZCkgImJlZm9yZSBydW5fb3B0X3Bvc3Ryb3V0ZSIKLQotICAgICAgICBzZXQgb3AgW29wZW4gJHZhcnMoc2NyaXB0X2RpcikvZmxvd19zdGVwcy50Y2wgd10KLSAgICAgICAgZm9yZWFjaCBzdGVwIFtGRjo6YWRqdXN0X3N0ZXBzXSB7Ci0gICAgICAgICAgaWYgeyFbaW5mbyBleGlzdHMgYW5jaG9yKCRzdGVwKV19IHsgCi0gICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJHN0ZXAsY29tbWFuZHMpXX0gewotICAgICAgICAgICAgICB1bnNldCB2YXJzKCRzdGVwLGNvbW1hbmRzKQotICAgICAgICAgICAgICBjb250aW51ZSAKLSAgICAgICAgICAgIH0KLSAgICAgICAgICB9Ci0gICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCRzdGVwLGNvbW1hbmRzKV19IHsKLSAgICAgICAgICAgIHB1dHMgJG9wICJjcmVhdGVfZmxvd19zdGVwIC1uYW1lIHByZV8kc3RlcCAtb3duZXIgY2FkZW5jZSBceyIKLSAgICAgICAgICAgIHB1dHMgJG9wICR2YXJzKCRzdGVwLGNvbW1hbmRzKQotICAgICAgICAgICAgcHV0cyAkb3AgIlx9IgotICAgICAgICAgICAgdW5zZXQgdmFycygkc3RlcCxjb21tYW5kcykKLSAgICAgICAgICAgIHB1dHMgJG9mICJlZGl0X2Zsb3cgLWFwcGVuZCBmbG93X3N0ZXA6cHJlXyRzdGVwIC1bbGluZGV4ICRhbmNob3IoJHN0ZXApIDBdIGZsb3dfc3RlcDpbbGluZGV4ICRhbmNob3IoJHN0ZXApIDFdIgotICAgICAgICAgIH0KLSAgICAgICAgfQotCi0jICAgICAgICBzZXQgb3AgW29wZW4gc2NyaXB0cy9mbG93X2NvbmZpZy50Y2wgYV0KLSMgICAgICAgIHB1dHMgJG9wICJzb3VyY2UgJHZhcnMoc2NyaXB0X2RpcikvZmxvd19zdGVwcy50Y2wiCi0gICAgICAgIGNsb3NlICRvcAotCi0gICAgICAgICBGRjo6Y3JlYXRlX2NvZGVnZW5fZmlsZQotICAgICAgICAgc2V0IG9wIFtvcGVuIGNvZGVnZW5fY3JlYXRlLnR4dCBhXQotICAgICAgICAgcHV0cyAkb3AgImNvZGVnZW46OnRlbXBsYXRlIC4vc2NyaXB0cy9mbG93X2NvbmZpZy50ZW1wbGF0ZSBceyIKLSAgICAgICAgIHB1dHMgJG9wICIgIHBsYWNlaG9sZGVyIFx7PDwgUExBQ0VIT0xERVI6IFBBUkFTSVRJQyBMT0FEIE9QVElPTlMgPj5cfSBceyAtYWxsX3JjX2Nvcm5lciAtcmNkYiByY2RiLyR2YXJzKGRlc2lnbikucmNkYi5kIFx9IgotICAgICAgICAgcHV0cyAkb3AgIiAgYXBwZW5kIFx7IgotICAgICAgICAgcHV0cyAkb3AgImNyZWF0ZV9mbG93X3N0ZXAgLW5hbWUgd3JpdGVfcGFyYXNpdGljcyAtb3duZXIgY2FkZW5jZSAgXHsiCi0gICAgICAgICBwdXRzICRvcCAiICAgIGZpbGUgbWtkaXIgcmNkYiIKLSAgICAgICAgIHB1dHMgJG9wICIgICAgd3JpdGVfcmMgcmNkYi8kdmFycyhkZXNpZ24pLnJjZGIuZCIKLSAgICAgICAgIHB1dHMgJG9wICJcfSIKLSAgICAgICAgIHB1dHMgJG9wICJlZGl0X2Zsb3cgLWFmdGVyIGZsb3dfc3RlcDpydW5fb3B0X3Bvc3Ryb3V0ZSAtYXBwZW5kIGZsb3dfc3RlcDp3cml0ZV9wYXJhc2l0aWNzIgotICAgICAgICAgZm9yZWFjaCBmaWxlICIkdmFycyhzY3JpcHRfZGlyKS9mbG93X3N0ZXBzLnRjbCAkdmFycyhzY3JpcHRfZGlyKS9wbHVnX3N0ZXBzLnRjbCIgewotICAgICAgICAgICBpZiB7W2ZpbGUgZXhpc3RzICRmaWxlXX0gewotICAgICAgICAgICAgIHNldCBpcCBbb3BlbiAkZmlsZSByXQotICAgICAgICAgICAgIHdoaWxlIHtbZ2V0cyAkaXAgbGluZV0+PTB9IHsKLSAgICAgICAgICAgICAgICBwdXRzICRvcCAiJGxpbmUiCi0gICAgICAgICAgICAgfQotICAgICAgICAgICAgIGNsb3NlICRpcAotICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0KLSAgICAgICAgIHB1dHMgJG9wICIgIFx9IgotICAgICAgICAgcHV0cyAkb3AgIlx9IgotICAgICAgICAgY2xvc2UgJG9wCi0gICAgICB9Ci0gICAgICBmb3JlYWNoIHZhciBbYXJyYXkgbmFtZXMgdmFyc10gewotICAgICAgICBpZiB7W3JlZ2V4cCAiLGNvbW1hbmRzJCIgJHZhcl19IHsKLSAgICAgICAgICB1bnNldCB2YXJzKCR2YXIpCi0gICAgICAgIH0KLSAgICAgIH0KLSMgICAgICBmb3JlYWNoIHN0ZXAgJHZhcnMoc3RlcHMpIHsKLSMgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkc3RlcCxjb21tYW5kcyldfSB7Ci0jICAgICAgICAgIHVuc2V0IHZhcnMoJHN0ZXAsY29tbWFuZHMpCi0jICAgICAgICB9Ci0jICAgICAgfQotICAgICAgc2V0IG9wIFtvcGVuICR2YXJzKHNjcmlwdF9kaXIpL3ZhcnMudGNsIHddCi0KLSAgICAgIHB1dHMgJG9wICIjICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMgIyIKLSAgICAgIHB1dHMgJG9wICIjIEZvdW5kYXRpb24gRmxvdyBDb2RlZ2VuIFZhcnMgUmVjb3JkIgotICAgICAgcHV0cyAkb3AgIiMgRXhlY3V0ZWQgb24gW2Nsb2NrIGZvcm1hdCBbY2xvY2sgc2Vjb25kc10gLWZvcm1hdCAiJUk6JU06JVMgJXAoJWIlZCkiXSBieSB1c2VyOiBbZXhlYyB3aG9hbWldIgotICAgICAgcHV0cyAkb3AgIiMgQ29weXJpZ2h0IDIwMDgtMjAxMiwgQ2FkZW5jZSBEZXNpZ24gU3lzdGVtcywgSW5jLiIKLSAgICAgIHB1dHMgJG9wICIjIEFsbCBSaWdodHMgUmVzZXJ2ZWQiCi0gICAgICBwdXRzICRvcCAiIyAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjICMiCi0gICAgICBwdXRzICRvcCAiIgotICAgICAgcHV0cyAkb3AgIiMgVGhpcyBmaWxlIGNvbnRhaW5zIGFsbCBkZWZhdWx0IChzZWVkZWQpIHZhcmlhYmxlcyBhbmQgdXNlci1kZWZpbmVkIHZhcmlhYmxlcyB0aGF0IHdlcmUgcmVzb2x2ZWQgZHVyaW5nIGNvZGUgZ2VuZXJhdGlvbi4iCi0KLSAgICAgIHB1dHMgJG9wICJpZiB7IVxbaW5mbyBleGlzdHMgdmFyc1xdfSB7IgotICAgICAgcHV0cyAkb3AgIiAgIGdsb2JhbCB2YXJzIgotICAgICAgcHV0cyAkb3AgIn0iCi0gICAgICBwdXRzICRvcCAiZ2xvYmFsIGVudiIKLSMgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnModXNlcl9hcnJheXMpXX0gewotIyAgICAgICAgIGZvcmVhY2ggYXJyYXkgJHZhcnModXNlcl9hcnJheXMpIHsKLSMgICAgICAgICAgICBwdXRzICRvcCAiZ2xvYmFsICRhcnJheSIKLSMgICAgICAgICB9Ci0jICAgICAgfQotCi0gICAgICAjIFByaW50IHZhcmlhYmxlcyB3aGljaCBtYXkgYmUgcmVmZXJlbmNlZCBieSBvdGhlciB2YXJpYWJsZXMKLSAgICAgICMgTm90ZTogR2VuZXJhbCBtZXRob2RvbG9neSBpcyB0byBub3QgdXNlIG1vcmUgdGhhbiBvbmUgdmFyaWFibGUgcmVmZXJlbmNlIChpLmUuLCBkb24ndCBhbGxvdyBtdWx0aXBsZSB2YXJpYWJsZSBkZXJlZmVyZW5jaW5nKQotICAgICAgcHV0cyAkb3AgInNldCBlbnYoVlBBVEgpICRlbnYoVlBBVEgpIgotICAgICAgcHV0cyAkb3AgInNldCB2YXJzKGZmX2V4ZV9kaXIpIFwiJHZhcnMoZmZfZXhlX2RpcilcIiIKLSAgICAgIHB1dHMgJG9wICJzZXQgdmFycyhydW5kaXIpIFwiJHZhcnMocnVuZGlyKVwiIgotICAgICAgcHV0cyAkb3AgInNldCB2YXJzKHNjcmlwdF9kaXIpIFwiJHZhcnMoc2NyaXB0X2RpcilcIiIKLSAgICAgIHB1dHMgJG9wICIiCi0KLSMgR0RHIC4uLgotIyAgICAgIGlmIHskcmVsYXRpdml6ZVZhcn0gewotIyAgICAgICAgc2V0IHJlbGF0aXZpemVNZXNnTG9nICIiCi0jICAgICAgICAjIEZpcnN0IHJlbGF0aXZpemUgZmZfZXhlX2Rpci4gSWdub3JlIHBsdWcgdmFyaWFibGVzIGZvciBub3cgKG1heWJlIHRoaXMgY2FuIGJlIHJlbGF4ZWQ/KQotIyAgICAgICAgIyBBbGwgZmlsZXMgaW4gdGhpcyBmaXJzdCByZWxhdGl2aXphdGlvbiB0YXNrIG11c3QgZXhpc3QuIFNraXAgYW55dGhpbmcgdGhhdCBpcyBsb2NhdGVkIGluIHZhcnMocnVuZGlyKS4KLSMgICAgICAgIHNldCByZWxhdGl2aXplTWVzZ0xvZyAiJHJlbGF0aXZpemVNZXNnTG9nIFtGRjo6cmVtb3ZlX291dGVyX2JyYWNlcyBcCi0jICAgICAgICAgICBbRkY6OnJlbGF0aXZpemVGaWxlT3JEaXIgLXZhcmRpciBmZl9leGVfZGlyIC1tdXN0RXhpc3QgLXNraXBWYXIgc2NyaXB0X2RpciAtc2tpcFZhciBmZl9leGVfZGlyIFwKLSMgICAgICAgICAgICAgIC1za2lwVmFyIHJjX3BsdWdfZGlyIC1za2lwVmFyIGxlY19wbHVnX2RpciAtc2tpcFZhciBwbHVnX2RpciAtc2tpcFZhciBydW5kaXIgLXNraXBEaXIgW2ZpbGUgbm9ybWFsaXplICR2YXJzKHJ1bmRpcildXV0iCi0jICAgICAgICAjIFJlbGF0aXZpemUgYWxsIGZpbGVzIGluIHJ1bmRpci4gU2tpcCB2YXJpYWJsZSByZWZlcmVuY2luZywgbWVhbmluZyBkbyBub3QgaW5jbHVkZSAkdmFycyhydW5kaXIpIGluIHRoZSBmaW5hbCB2YXJpYWJsZSB2YWx1ZQotIyAgICAgICAgc2V0IHJlbGF0aXZpemVNZXNnTG9nICIkcmVsYXRpdml6ZU1lc2dMb2cgW0ZGOjpyZW1vdmVfb3V0ZXJfYnJhY2VzIFtGRjo6cmVsYXRpdml6ZUZpbGVPckRpciAtdmFyZGlyIHJ1bmRpciAtc2tpcFZhcmlhYmxlVXNhZ2VJblJlZmVyZW5jZSAtc2tpcFZhciBzY3JpcHRfZGlyXV0iCi0jICAgICAgICAjIFN3YXAgb3V0IHRoZSBpbnZpZGl1YWwgcGx1ZyBkaXIgdmFyaWFibGVzCi0jICAgICAgICBmb3JlYWNoIGRpciAicmNfcGx1Z19kaXIgbGVjX3BsdWdfZGlyIHBsdWdfZGlyIiB7Ci0jICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkZGlyKV19ICB7Ci0jICAgICAgICAgICAgICMgUmVsYXRpdml6ZSB0aGUgcGx1Z2luIChzeW5fbG9hZF9ydGwgZ29lcyBmcm9tIC4vcGx1Zy9HRU5VUy9zeW5fbG9hZF9ydGwudGNsIHRvICR2YXJzKHJjX3BsdWdfZGlyKS9zeW5fbG9hZF9ydGwudGNsKQotIyAgICAgICAgICAgICBzZXQgcmVsYXRpdml6ZU1lc2dMb2cgIiRyZWxhdGl2aXplTWVzZ0xvZyBbRkY6OnJlbW92ZV9vdXRlcl9icmFjZXMgXAotIyAgICAgICAgICAgICAgICBbRkY6OnJlbGF0aXZpemVGaWxlT3JEaXIgLXZhcmRpciAkZGlyIC1tdXN0RXhpc3QgXAotIyAgICAgICAgICAgICAgICAtZXhhY3RTdWJEaXJNYXRjaCBbZmlsZSBub3JtYWxpemUgJHZhcnMoJGRpcildXV0iCi0jICAgICAgICAgICAgICMgbm9ybWFsaXplIHRoZSBwbHVnIGRpcnMKLSMgICAgICAgICAgICAgc2V0IHZhcnMoJGRpcikgW2ZpbGUgbm9ybWFsaXplIFtzdWJzdCAkdmFycygkZGlyKV1dCi0jICAgICAgICAgIH0KLSMgICAgICAgIH0KLSMgICAgICB9Ci0gICAgICAjIFByaW50IHBsdWdpbiB2YXJpYWJsZXMKLSAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhwbHVnX2RpcildfSAgICAge3B1dHMgJG9wICJzZXQgdmFycyhwbHVnX2RpcikgXCIkdmFycyhwbHVnX2RpcilcIiJ9Ci0gICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMocmNfcGx1Z19kaXIpXX0gIHtwdXRzICRvcCAic2V0IHZhcnMocmNfcGx1Z19kaXIpIFwiJHZhcnMocmNfcGx1Z19kaXIpXCIifQotICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGxlY19wbHVnX2RpcildfSB7cHV0cyAkb3AgInNldCB2YXJzKGxlY19wbHVnX2RpcikgXCIkdmFycyhsZWNfcGx1Z19kaXIpXCIifQotICAgICAgcHV0cyAkb3AgIlxuIgotCi0gICAgICAjIEFjdHVhbGx5IHByaW50IG91dCBhbGwgdGhlIG90aGVyIHZhcmlhYmxlcwotICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGluaXRfY29tbWFuZHMpXX0ge3Vuc2V0IHZhcnMoaW5pdF9jb21tYW5kcyl9Ci0gICAgICBmb3JlYWNoIHZhciBbbHNvcnQgW2FycmF5IG5hbWVzIHZhcnNdXSB7Ci0gICAgICAgICAjIEJDTDogT25seSB3cml0ZSBvdXQgdmFyaWFibGUgdmFsdWVzIGluIGN1cmxpZXMgaWYgbm90IHVzaW5nIFtzdWJzdCAuLi5dCi0gICAgICAgICBpZiB7W2xzZWFyY2ggJHNraXBWYXJMaXN0ICR2YXJdID09IC0xfSB7Ci0gICAgICAgICAgIGlmIHtbcmVnZXhwIHtcJH0gJHZhcnMoJHZhcildfSB7Ci0gICAgICAgICAgICAgcHV0cyAkb3AgInNldCB2YXJzKCR2YXIpIFwiJHZhcnMoJHZhcilcIiIKLSAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICBwdXRzICRvcCAic2V0IHZhcnMoJHZhcikgXHskdmFycygkdmFyKVx9IgotICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0gICAgICB9Ci0KLSAgICAgICMgUHJpbnQgYWxpYXNlcwotICAgICAgcHV0cyAkb3AgInNldCB2YXJzKHJlc3RvcmVfZGVzaWduKSB7dHJ1ZX0iCi0KLSAgICAgICMgTG9hZCBhcHBsZXRzCi0jICAgICAgcHV0cyAkb3AgInNvdXJjZSAkdmFycyhzY3JpcHRfcGF0aCkvRVRDL2FwcGxldC50Y2wiCi0jICAgICAgcHV0cyAkb3AgInNvdXJjZSAuLi8uLi8kdmFycyhzY3JpcHRfcGF0aCkvRVRDL2NvbXBhdGliaWxpdHkudGNsIgotIyAgICAgIHB1dHMgJG9wICJzZXRfYXR0cmlidXRlIGFwcGxldF9zZWFyY2hfcGF0aCAkdmFycyhzY3JpcHRfcGF0aCkvRVRDL2FwcGxldHMgLyIKLSMgICAgICBwdXRzICRvcCAiYXBwbGV0IGxvYWQgZ2VuZXJhdGVfcmVwb3J0IgotIyAgICAgIHB1dHMgJG9wICJhcHBsZXQgbG9hZCBtZWFzdXJlIgotIyAgICAgIHB1dHMgJG9wICJhcHBsZXQgbG9hZCB0aW1lX2luZm8iCi0KLSAgICAgIGNsb3NlICRvcAotCi0jICAgICAgaWYgeyRyZWxhdGl2aXplVmFyfSB7Ci0jICAgICAgICAjIFdyaXRlIG91dCBtZXNzYWdpbmcgcmVsYXRlZCB0byByZWxhdGl2aXplRmlsZU9yRGlyIG91dHB1dAotIyAgICAgICAgc2V0IG9wIFtvcGVuICR2YXJzKHNjcmlwdF9kaXIpL3JlbGF0aXZpemVfdmFycy5ycHQgd10KLSMgICAgICAgIHB1dHMgJG9wICIjICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMgIyIKLSMgICAgICAgIHB1dHMgJG9wICIjIEZvdW5kYXRpb24gRmxvdyBWYXJpYWJsZSBSZWxhdGl2aXphdGlvbiBSZXBvcnQiCi0jICAgICAgICBwdXRzICRvcCAiIyBFeGVjdXRlZCBvbiBbY2xvY2sgZm9ybWF0IFtjbG9jayBzZWNvbmRzXSAtZm9ybWF0ICIlSTolTTolUyAlcCglYiVkKSJdIGJ5IHVzZXI6IFtleGVjIHdob2FtaV0iCi0jICAgICAgICBwdXRzICRvcCAiIyBDb3B5cmlnaHQgMjAwOC0yMDEyLCBDYWRlbmNlIERlc2lnbiBTeXN0ZW1zLCBJbmMuIgotIyAgICAgICAgcHV0cyAkb3AgIiMgQWxsIFJpZ2h0cyBSZXNlcnZlZCIKLSMgICAgICAgIHB1dHMgJG9wICIjICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMgIyIKLSMgICAgICAgIGZvcmVhY2ggbGluZSAkcmVsYXRpdml6ZU1lc2dMb2cgewotIyAgICAgICAgICBwdXRzICRvcCAkbGluZQotIyAgICAgICAgfQotIyAgICAgICAgY2xvc2UgJG9wCi0jICAgICAgfQotCi0gICB9Ci0KLSAgIHByb2MgY2xlYW51cF9kb3RmaWxlcyB7fSB7Ci0KLSAgICAgIGdsb2JhbCB2YXJzCi0KLSAgICAgIGlmIHskdmFycyh1c2VyX21vZGUpICE9ICJoaWVyIn0gewotICAgICAgICAgcmV0dXJuCi0gICAgICB9Ci0KLSAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhydW5kaXIpXX0geyAKLSAgICAgICAgIGNkICR2YXJzKHJ1bmRpcikKLSAgICAgIH0KLQotICAgICAgZm9yZWFjaCBmaWxlIFtnbG9iICR2YXJzKHNjcmlwdF9kaXIpL0lOTk9WVVMvLipdIHsKLSAgICAgICAgIGlmIHtbZmlsZSBpc2ZpbGUgJGZpbGVdICYmICghW3JlZ2V4cCAiLm5mcyIgJGZpbGVdKX0gewotICAgICAgICAgICAgZmlsZSBkZWxldGUgJGZpbGUKLSAgICAgICAgICAgIGlmIHskdmFycyhkZWJ1Zyl9IHsKLSAgICAgICAgICAgICAgIHB1dHMgIjxGRj4gRGVsZXRpbmcgJGZpbGUgLi4uIgotICAgICAgICAgICAgfSAgIAotICAgICAgICAgfQotICAgICAgfQotICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKHBhcnRpdGlvbl9kaXIpXSAmJiBbaW5mbyBleGlzdHMgdmFycyhwYXJ0aXRpb25fbGlzdCldfSB7IAotICAgICAgICAgaWYge1tmaWxlIGlzZGlyZWN0b3J5ICR2YXJzKHBhcnRpdGlvbl9kaXIpXX0gewotICAgICAgICAgICAgZm9yZWFjaCBwYXJ0IFtjb25jYXQgJHZhcnMoZGVzaWduKSAkdmFycyhwYXJ0aXRpb25fbGlzdCldIHsKLSAgICAgICAgICAgICAgIGZvcmVhY2ggZmlsZSBbZ2xvYiAkdmFycyhwYXJ0aXRpb25fZGlyKS8kcGFydC8kdmFycyhzY3JpcHRfZGlyKS9JTk5PVlVTLy4qXSB7Ci0gICAgICAgICAgICAgICAgICBpZiB7W2ZpbGUgaXNmaWxlICRmaWxlXSAmJiAoIVtyZWdleHAgIi5uZnMiICRmaWxlXSl9IHsKLSAgICAgICAgICAgICAgICAgICAgIGZpbGUgZGVsZXRlICRmaWxlCi0gICAgICAgICAgICAgICAgICAgICBpZiB7JHZhcnMoZGVidWcpfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBwdXRzICI8RkY+IERlbGV0aW5nICRmaWxlIC4uLiIKLSAgICAgICAgICAgICAgICAgICAgIH0gICAKLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIGlmIHsoJHZhcnMoaGllcl9mbG93X3R5cGUpID09ICIycGFzcyIpfSB7Ci0gICAgICAgICAgICAgICAgICBpZiB7W2ZpbGUgaXNkaXJlY3RvcnkgJHZhcnMocGFydGl0aW9uX2Rpcl9wYXNzMildfSB7Ci0gICAgICAgICAgICAgICAgICAgICBjYXRjaCB7c2V0IGRvdGZpbGVzIFtnbG9iICR2YXJzKHBhcnRpdGlvbl9kaXJfcGFzczIpLyRwYXJ0LyR2YXJzKHNjcmlwdF9kaXIpL0lOTk9WVVMvLipdfQotICAgICAgICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyBkb3RmaWxlc119IHsKLSAgICAgICAgICAgICAgICAgICAgIGZvcmVhY2ggZmlsZSBbZ2xvYiAkdmFycyhwYXJ0aXRpb25fZGlyX3Bhc3MyKS8kcGFydC8kdmFycyhzY3JpcHRfZGlyKS9JTk5PVlVTLy4qXSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiB7W2ZpbGUgaXNmaWxlICRmaWxlXSAmJiAoIVtyZWdleHAgIi5uZnMiICRmaWxlXSl9IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGUgIGRlbGV0ZSAkZmlsZQotICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgeyR2YXJzKGRlYnVnKX0gewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHV0cyAiPEZGPiBEZWxldGluZyAkZmlsZSAuLi4iCi0gICAgICAgICAgICAgICAgICAgICAgICAgICB9ICAgCi0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0gICAgICB9Ci0gICB9Ci0KLSAgIHByb2MgZ2VuX2Zsb3cge2FyZ3N9IHsKLQotICAgICAgZ2xvYmFsIHZhcnMKLQotICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycyhleGVjdXRlX3N0cmluZyldfSB7Ci0gICAgICAgICBzZXQgdmFycyhleGVjdXRlX3N0cmluZykgIkZGOjpnZW5fZmxvdyAkYXJncyIKLSAgICAgIH0KLQotICAgICAgIyBBbGxvdyByZS1lbnRyYW5jZQotCi0gICAgICAgICBzZXQgdmFyX2xpc3QgW2xpc3Qgc291cmNlZCBic3RlcHMgd2FybmluZ3MgZXJyb3JzIGluZm9zIHdhcm5pbmdfY291bnQgZXJyb3JfY291bnQgaW5mb19jb3VudCBcCi0gICAgICAgICAgICAgICAgICAgICAgICBwbHVnaW5zX2RlZmluZWQgcGx1Z2luc19mb3VuZCBtaXNzaW5nX3BsdWdpbnMgdGFnZ2VkIG1pc3NpbmdfdGFnc10KLQotICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGFyZ19saXN0KV19IHsgCi0gICAgICAgICBzZXQgcmVzZXRfbGlzdCBbY29uY2F0ICR2YXJzKGFyZ19saXN0KSAkdmFyX2xpc3RdCi0gICAgICB9IGVsc2UgewotICAgICAgICAgc2V0IHJlc2V0X2xpc3QgJHZhcl9saXN0Ci0gICAgICB9Ci0KLSAgICAgIGZvcmVhY2ggdmFyICRyZXNldF9saXN0IHsKLSAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkdmFyKV19IHsKLSAgICAgICAgICAgIHVuc2V0IHZhcnMoJHZhcikKLSAgICAgICAgIH0KLSAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgZGFyZ3MoJHZhcildfSB7Ci0gICAgICAgICAgICB1bnNldCB2YXJzKCR2YXIpCi0gICAgICAgICB9Ci0gICAgICAgICBpZiB7W2luZm8gZXhpc3RzIGRhcmdzKCR2YXIpXX0gewotICAgICAgICAgICAgdW5zZXQgdmFycygkdmFyKQotICAgICAgICAgfQotICAgICAgfQotCi0gICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoZmxhdCldfSB7Ci0gICAgICAgICBzZXQgc2F2ZSAkdmFycyhmbGF0KQotICAgICAgfQotCi0gICAgICBwdXRzICI9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09IgotICAgICAgcHV0cyAiPEZGPiAgICAgIEZvdW5kYXRpb24gRmxvdyBDb2RlIEdlbmVyYXRvciIKLSAgICAgIHB1dHMgIjxGRj4gICAgICAgIFZlcnNpb24gOiAxNy4xMC1wMDAzXzEiCi0gICAgICBwdXRzICI9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09IgotCi0gICAgICAjIENoZWNrIFRDTCB2ZXJzaW9uCi0KLSAgICAgIEZGOjpjaGVja190Y2xfdmVyc2lvbgotCi0gICAgICAjIENyZWF0ZSBmbG93IHNjcmlwdHMKLQotICAgICAgRkY6OmNyZWF0ZV9mbG93ICRhcmdzCi0KLSAgICAgICMgQWRqdXN0IHZhcmlhYmxlcyBzbyB0aGUgcnVuIGRpciBjYW4gYmUgcmVsb2NhdGVkCi0KLSAgICAgIEZGOjpkZW5vcm1hbGl6ZV9ydW5kaXIKLQotICAgICAgaWYge1tpbmZvIGV4aXN0cyBzYXZlXX0gewotICAgICAgICAgc2V0IHZhcnMoZmxhdCkgJHNhdmUKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgICB1bnNldCB2YXJzKGZsYXQpCi0gICAgICB9Ci0KLSAgICAgIEZGOjpjbGVhbnVwX2RvdGZpbGVzCi0KLSAgICAgIGlmIHsoW2luZm8gY29tbWFuZCBGRjo6Z2V0X3Rvb2xdIG5lICIiKSAmJiAoW0ZGOjpnZXRfdG9vbF0gZXEgImVkaSIpfSB7Ci0gICAgICAgICBwdXRzICI8RkY+IExvYWRpbmcgJHZhcnMoc2NyaXB0X2RpcikvcHJvY3MudGNsIC4uLiIKLSAgICAgICAgIHVwbGV2ZWwgIzAgc291cmNlICR2YXJzKHNjcmlwdF9kaXIpL3Byb2NzLnRjbAotICAgICAgfQotCi0gICAgICBpZiB7JHZhcnMoZ2VuZXJhdGVfZmxvd19zdGVwcyl9IHsKLSAgICAgICAgIGZpbGUgZGVsZXRlIC1mb3JjZSAkdmFycyhzY3JpcHRfZGlyKS9JTk5PVlVTCi0gICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMocGFydGl0aW9uX2RpcildICYmIFtpbmZvIGV4aXN0cyB2YXJzKHBhcnRpdGlvbl9saXN0KV19IHsgCi0gICAgICAgICAgICBpZiB7W2ZpbGUgaXNkaXJlY3RvcnkgJHZhcnMocGFydGl0aW9uX2RpcildfSB7Ci0gICAgICAgICAgICAgICBmb3JlYWNoIHBhcnQgW2NvbmNhdCAkdmFycyhkZXNpZ24pICR2YXJzKHBhcnRpdGlvbl9saXN0KV0gewotICAgICAgICAgICAgICAgICAgaWYgW2ZpbGUgaXNkaXJlY3RvcnkgJHZhcnMocGFydGl0aW9uX2RpcikvJHBhcnQvJHZhcnMoc2NyaXB0X2RpcikvSU5OT1ZVU10gewotICAgICAgICAgICAgICAgICAgICAgZmlsZSBkZWxldGUgLWZvcmNlICR2YXJzKHBhcnRpdGlvbl9kaXIpLyRwYXJ0LyR2YXJzKHNjcmlwdF9kaXIpL0lOTk9WVVMKLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0KLSAgICAgIH0KLQotICAgfQotCi0gICBwcm9jIHNlZWRfYWxsX3ZhcnMge30gewotICAgICAjIGRlZmF1bHRzCi0gICAgIHNldCBzY3JpcHRfcGF0aCAiIgotICAgICBzZXQgc2NyaXB0X2RpciAiIgotICAgICBzZXQgc2V0dXBfcGF0aCAiIgotICAgICBzZXQgc3ludGhfZmxvdyAiIgotICAgICBzZXQgZm9ybWF0X2xpbmVzICIiCi0gICAgIHNldCBzdGVwICIiCi0gIAotICAgICAjIGFyZyBwcm9jZXNzaW5nCi0gICAgIHdoaWxlIHtbbGxlbmd0aCAkYXJnc10gPiAwfSB7Ci0gICAgICAgc2V0IG9wdGlvbiBbbGluZGV4ICRhcmdzIDBdCi0gICAgICAgc2V0IGFyZ3MgW2xyZXBsYWNlICRhcmdzIDAgMF0KLSAgICAgICBzd2l0Y2ggLWV4YWN0IC0tICRvcHRpb24gewotICAgICAgICAgIC1zY3JpcHRfcGF0aCB7Ci0gICAgICAgICAgICAgc2V0IHNjcmlwdF9wYXRoIFtsaW5kZXggJGFyZ3MgMF0KLSAgICAgICAgICAgICBzZXQgYXJncyBbbHJlcGxhY2UgJGFyZ3MgMCAwXQotICAgICAgICAgIH0KLSAgICAgICAgICAtc2NyaXB0X2RpciB7Ci0gICAgICAgICAgICAgc2V0IHNjcmlwdF9kaXIgW2xpbmRleCAkYXJncyAwXQotICAgICAgICAgICAgIHNldCBhcmdzIFtscmVwbGFjZSAkYXJncyAwIDBdCi0gICAgICAgICAgfQotICAgICAgICAgIC1zZXR1cF9wYXRoIHsKLSAgICAgICAgICAgIHNldCBzZXR1cF9wYXRoIFtsaW5kZXggJGFyZ3MgMF0KLSAgICAgICAgICAgIHNldCBhcmdzIFtscmVwbGFjZSAkYXJncyAwIDBdCi0gICAgICAgICAgfQotICAgICAgICAgIC1zeW50aF9mbG93IHsKLSAgICAgICAgICAgIHNldCBzeW50aF9mbG93IFtsaW5kZXggJGFyZ3MgMF0KLSAgICAgICAgICAgIHNldCBhcmdzIFtscmVwbGFjZSAkYXJncyAwIDBdCi0gICAgICAgICAgfQotICAgICAgICAgIC1mb3JtYXRfbGluZXMgewotICAgICAgICAgICAgc2V0IHN5bnRoX2Zsb3cgW2xpbmRleCAkYXJncyAwXQotICAgICAgICAgICAgc2V0IGFyZ3MgW2xyZXBsYWNlICRhcmdzIDAgMF0KLSAgICAgICAgICB9Ci0gICAgICAgICAgLXN0ZXAgewotICAgICAgICAgICAgc2V0IHN0ZXAgW2xpbmRleCAkYXJncyAwXQotICAgICAgICAgICAgc2V0IGFyZ3MgW2xyZXBsYWNlICRhcmdzIDAgMF0KLSAgICAgICAgICB9Ci0gICAgICAgfQotICAgICB9OyMgZW5kIHdoaWxlIChwcm9jZXNzaW5nIGFyZ3MpCi0gICB9Ci0KLSAgbmFtZXNwYWNlIGV4cG9ydCBsb2FkX2FwcGxldAotICBwcm9jIGxvYWRfYXBwbGV0IHthcmdzfSB7Ci0gICAgc2V0IGRlZkFwcGxldE5TICI6OmFwcGxldCIKLSAgICBzZXQgZGVmU2V2ZXJpdHkgImVycm9yIgotICAgIHNldCBkZWZhdWx0TG9jYWxJbnN0YWxsICQ6Om5zKGFwcGxldCk6OmxvY2FsSW5zdGFsbAotICAgIHNldCBkZWZhdWx0TG9jYWxTZXJ2ZXIgJDo6bnMoYXBwbGV0KTo6bG9jYWxTZXJ2ZXIKLSAgICBzZXQgcmVxQXBwbGV0VmVyc2lvbiAiIgotCi0gICAgc3dpdGNoIC0tIFtwYXJzZV9vcHRpb25zIFtjYWxsaW5nX3Byb2NdIHt9ICRhcmdzIFwKLSAgICAgICItdmVyc2lvbiBzb3MgcmVxdWlyZWQgdmVyc2lvbiBvZiBhcHBsZXQgKGVxdWFsIG9yIGdyZWF0ZXIpIiByZXFBcHBsZXRWZXJzaW9uIFwKLSAgICAgICItc2V2ZXJpdHkgc29zIHNldmVyaXR5IChlcnJvcnx3YXJuaW5nfGluZm8pIiBzZXZlcml0eSBcCi0gICAgICAiLW5hbWVzcGFjZSBzb3MgbmFtZXNwYWNlIHRvIHNlYXJjaCBmb3IgYXBwbGV0IiBhcHBsZXROUyBcCi0gICAgICAic3JzIG5hbWUgb2YgYXBwbGV0IiBhcHBsZXROYW1lXSB7Ci0gICAgICAgICAgLTIgeyByZXR1cm4gfQotICAgICAgICAgIDAgeyByZXR1cm4gLWNvZGUgZXJyb3IgfQotICAgIH0KLQotICAgIGlmIHskYXBwbGV0TlMgZXEgIiJ9IHsKLSAgICAgICAgc2V0IGFwcGxldE5TICRkZWZBcHBsZXROUwotICAgIH0KLQotICAgIGlmIHskc2V2ZXJpdHkgZXEgIiJ9IHsKLSAgICAgIHNldCBzZXZlcml0eSAkZGVmU2V2ZXJpdHkKLSAgICB9Ci0gICAKLSAgICAjIENoZWNrIHRvIHNlZSBpZiB0aGUgYXBwbGV0IGhhcHBlbmVkIHRvIGFscmVhZHkgYmUgbG9hZGVkLiBJZiBzbywgY2hlY2sKLSAgICAjIHdoZXRoZXIgdGhlcmUgaXMgYSBtaW5pbXVtIHZlcnNpb24gcmVxdWlyZW1lbnQgbWV0LiBJZiB5ZXMsIHNraXAgdGhlIHJlc3Qgb2YgdGhlIGFwcGxldAotICAgICMgSWYgdGhlIGFwcGxldCBhbHJlYWR5IGRvZXMgbm90IG1lZXQgdGhlIG1pbmltdW0gdmVyc2lvbiByZXF1aXJlbWVudCwgdW5sb2FkIGl0ICh1c2luZyBwYWNrYWdlIGZvcmdldCkKLSAgICBpZiB7IVtjYXRjaCB7c2V0IHByb3ZpZGVkVmVyc2lvbiBbcGFja2FnZSBwcmVzZW50ICR7YXBwbGV0TlN9OjokYXBwbGV0TmFtZV19IGVycm9yTWVzc2FnZV19IHsKLSAgICAgIGlmIHskcmVxQXBwbGV0VmVyc2lvbiBuZSAiIn0gewotICAgICAgICBpZiB7W3BhY2thZ2UgdmNvbXBhcmUgJHByb3ZpZGVkVmVyc2lvbiAkcmVxQXBwbGV0VmVyc2lvbl0gPT0gLTF9IHsKLSAgICAgICAgICBwdXRzICJsb2FkX2FwcGxldCBJTkZPOiBhcHBsZXQgJGFwcGxldE5hbWUgd2FzIGFscmVhZHkgbG9hZGVkLCBidXQgaXQncyB2ZXJzaW9uICgkcHJvdmlkZWRWZXJzaW9uKSBkaWQgbm90IG1lZXQgdGhlIG1pbmltdW0gcmVxdWlyZWQgdmVyc2lvbiAoJHJlcUFwcGxldFZlcnNpb24pIgotICAgICAgICAgIHB1dHMgImxvYWRfYXBwbGV0IElORk86IFRoaXMgdmVyc2lvbiBvZiB0aGUgJGFwcGxldE5hbWUgYXBwbGV0IHdpbGwgYmUgcmVtb3ZlZCBhbmQgdGhlIGxvYWRfYXBwbGV0IHdpbGwgc2VhcmNoIGZvciBhIG5ld2VyIHZlcnNpb24gb2YgJGFwcGxldE5hbWUuLi4iCi0gICAgICAgICAgcGFja2FnZSBmb3JnZXQgJHthcHBsZXROU306OiRhcHBsZXROYW1lCi0gICAgICAgIH0gZWxzZSB7Ci0JICBwdXRzICJsb2FkX2FwcGxldCBJTkZPOiBGb3VuZCAkYXBwbGV0TmFtZSBhbHJlYWR5IGxvYWRlZCBhbmQgaXQncyB2ZXJzaW9uICgkcHJvdmlkZWRWZXJzaW9uKSBhbHJlYWR5IG1lZXRzIHRoZSBtaW5pbXVtIHJlcXVpcmVkIHZlcnNpb24gKCRyZXFBcHBsZXRWZXJzaW9uKS4gU2tpcHBpbmcgbG9hZC4uLiIKLQkgIHJldHVybgotICAgICAgICB9Ci0gICAgICB9IGVsc2UgewotCXB1dHMgImxvYWRfYXBwbGV0IElORk86IEZvdW5kICRhcHBsZXROYW1lIGFscmVhZHkgbG9hZGVkIHdpdGggdmVyc2lvbiAoJHByb3ZpZGVkVmVyc2lvbikuIFNraXBwaW5nIGFwcGxldCBsb2FkLi4uIgotCXJldHVybgotICAgICAgfQotICAgIH0KLQotICAgICMgVGhlcmUgaXMgbm8gcHJldmlvdXNseSBsb2FkZWQgYXBwbGV0LiBDb250aW51ZSB3aXRoIHRoaXMgcHJvYy4uLgotICAgIHNldCBGb3VuZE1pblZlcnNpb25QYXRoIDAKLSAgICBzZXQgZmluYWxTZWFyY2hQYXRoICIiIAotICAgIHNldCBmYWlsZWRQYXRocyAiIgotICAgICMgQmVjYXVzZSBJbm5vdnVzIGhhcyBpdCdzIG93biBnZXRfYXR0cmlidXRlIGNvbW1hbmQgbm93LCB3ZSBuZWVkIHRvIHNldCB0aGlzIGRlcGVuZGluZyBvbiB3aGF0IHRvb2wgd2UgYXJlIGluCi0gICAgaWYge1tnZXRfdG9vbF0gZXEgInJjIn0gewotICAgICAgc2V0IHNlYXJjaFBhdGhMaXN0IFtnZXRfYXR0cmlidXRlIGFwcGxldF9zZWFyY2hfcGF0aCAvXQotICAgIH0gZWxzZSB7Ci0gICAgICBzZXQgc2VhcmNoUGF0aExpc3QgWyQ6Om5zKGNvbXBhdCk6OmdldF9hdHRyaWJ1dGUgYXBwbGV0X3NlYXJjaF9wYXRoIC9dCi0gICAgfQotICAgIHNldCBhcHBsZXRTZWFyY2hQYXRoQ291bnQgW2xsZW5ndGggJHNlYXJjaFBhdGhMaXN0XQotCi0gICAgc2V0IG9yaWdhcHBsZXRTZWFyY2hQYXRoQ291bnQgJGFwcGxldFNlYXJjaFBhdGhDb3VudAotICAgIHNldCBvcmlnU2VhcmNoUGF0aCAiIgotICAgICMgRmlyc3QgcGFzczogZGV0ZXJtaW5lIHdoaWNoIGFwcGxldCBpbnN0YWxsYXRpb25zIG1lZXQgbWluIHJlcXVpcmVkIHZlcnNpb24sIGlmIGFueQotICAgICMgVGhpcyBmb3IgbG9vcCBkb2VzIG5vdCBsb2FkIHRoZSBhcHBsZXRzLCBpdCBvbmx5IGRldGVybWluZXMgYSBmaW5hbCBzZWFyY2ggcGF0aCB0byB1c2UKLSAgICAjIElmIG5vbmUgb2YgdGhlIHNlYXJjaCBwYXRocyBjb250YWluIHRoZSBtaW5pbXVtIHZlcnNpb24sIGFuZCBzZXZlcml0eSBjb2RlIGlzIGVycm9yLCB0aGlzIHByb2MKLSAgICAjIHdpbGwgcmV0dXJuIGluc2lkZSB0aGlzIGZvcmVhY2ggbG9vcCB3aXRoIGNvZGUgZXJyb3IKLSAgICBpZiB7JGFwcGxldFNlYXJjaFBhdGhDb3VudCA+IDF9IHsKLSAgICAgIHB1dHMgImxvYWRfYXBwbGV0IElORk86IENoZWNraW5nIGFsbCBhcHBsZXQgc2VhcmNoIHBhdGhzIGZvciB2ZXJzaW9ucyBvZiAkYXBwbGV0TmFtZSIKLSAgICB9Ci0gICAgZm9yZWFjaCBwYXRoQ29tcG9uZW50ICRzZWFyY2hQYXRoTGlzdCB7Ci0gICAgICBpbmNyIGFwcGxldFNlYXJjaFBhdGhDb3VudCAtMQotICAgICAgaWYgeyRvcmlnYXBwbGV0U2VhcmNoUGF0aENvdW50ID4gMX0gewotICAgICAgICBwdXRzIC1ub25ld2xpbmUgIiAgJHBhdGhDb21wb25lbnQgLi4uIgotICAgICAgfSBlbHNlIHsKLSAgICAgICAgcHV0cyAtbm9uZXdsaW5lICJsb2FkX2FwcGxldCBJTkZPOiBDaGVja2luZyBhcHBsZXRfc2VhcmNoX3BhdGg6ICRwYXRoQ29tcG9uZW50IC4uLiIKLSAgICAgIH0KLSAgICAgICMgSWYgdGhlIHBhdGggY29tcG9uZW50IGlzIDxkZWZhdWx0PiByZXBsYWNlIHdpdGggdGhlIGFwcGxldCBkZXNpZ25hdGVkIHNlYXJjaCBwYXRoIHZhbHVlIHVzaW5nICJVcGRhdGVTZWFjaFBhdGgiCi0gICAgICBpZiB7W3N0cmluZyBtYXRjaCAiPGRlZmF1bHQ+IiAkcGF0aENvbXBvbmVudF19IHsKLSAgICAgICAgc2V0IHBhdGhDb21wb25lbnQgWyQ6Om5zKGFwcGxldCk6OlVwZGF0ZVNlYXJjaFBhdGggJHBhdGhDb21wb25lbnRdCi0gICAgICB9Ci0gICAgICBsYXBwZW5kIG9yaWdTZWFyY2hQYXRoICRwYXRoQ29tcG9uZW50Ci0gICAgICBpZiB7W2ZpbGUgaXNkaXJlY3RvcnkgJHBhdGhDb21wb25lbnRdfSB7Ci0JaWYge1tmaWxlIGlzZmlsZSAkcGF0aENvbXBvbmVudC8uc2VydkluZm9dfSB7Ci0JICBpZiB7W2dldF90b29sXSBlcSAicmMifSB7Ci0gICAgICAgICAgICBzZXQgc291cmNlQ29tbWFuZCB0Y2xfc291cmNlCi0JICB9IGVsc2UgewotCSAgICBzZXQgc291cmNlQ29tbWFuZCBzb3VyY2UKLQkgIH0KLQkgICBzZXQgZXJyb3JNc2cgIiIKLSAgICAgICAgICBhcnJheSB1bnNldCBhcHBJbmZvCi0JICBpZiB7W2NhdGNoIHskc291cmNlQ29tbWFuZCAkcGF0aENvbXBvbmVudC8uc2VydkluZm99IGVycm9yTXNnXSB8fCAhW2luZm8gZXhpc3RzIGFwcEluZm8oJHthcHBsZXROU306OiR7YXBwbGV0TmFtZX0sdmVyc2lvbildfSB7Ci0JICAgIGlmIHskZXJyb3JNc2cgbmUgIiJ9IHsKLQkgICAgICBwdXRzICIgJGVycm9yTXNnIgotCSAgICB9IGVsc2UgewotCSAgICAgIHB1dHMgIiBCQUQgQVBQTEVUIFNFUlZFUiAoY29ycnVwdGVkIC5zZXJ2SW5mbyBmaWxlKSIKLQkgICAgfQotICAgICAgICAgIH0gZWxzZSB7Ci0JICAgIGlmIHskcmVxQXBwbGV0VmVyc2lvbiBlcSAiIiB9IHsKLQkgICAgICBsYXBwZW5kIG1pblZlcnNpb25TZWFyY2hQYXRoICRwYXRoQ29tcG9uZW50ICAKLQkgICAgICBzZXQgRm91bmRNaW5WZXJzaW9uUGF0aCAxCi0JICAgIH0gZWxzZWlmIHtbcGFja2FnZSB2Y29tcGFyZSAkYXBwSW5mbygke2FwcGxldE5TfTo6JHthcHBsZXROYW1lfSx2ZXJzaW9uKSAkcmVxQXBwbGV0VmVyc2lvbl0gIT0gLTF9IHsKLQkgICAgICAgIGxhcHBlbmQgbWluVmVyc2lvblNlYXJjaFBhdGggJHBhdGhDb21wb25lbnQgIAotCSAgICAgICAgc2V0IEZvdW5kTWluVmVyc2lvblBhdGggMQotIAkgICAgfSBlbHNlIHsKLQkgICAgICBsYXBwZW5kIGZhaWxlZFBhdGhzICRwYXRoQ29tcG9uZW50Ci0JICAgICAgc2V0IGZhaWxlZFBhdGh2ZXIoJHBhdGhDb21wb25lbnQpICRhcHBJbmZvKCR7YXBwbGV0TlN9Ojoke2FwcGxldE5hbWV9LHZlcnNpb24pCi0JICAgIH0KLQkgICAgcHV0cyAiIEZvdW5kICRhcHBJbmZvKCR7YXBwbGV0TlN9Ojoke2FwcGxldE5hbWV9LHZlcnNpb24pIgotICAgICAgICAgIH0KLQl9IGVsc2UgewotCSAgcHV0cyAiIEJBRCBBUFBMRVQgSU5TVEFMTCIKLSAgICAgICAgfQotICAgICAgfSBlbHNlIHsKLQlwdXRzICIgIE5PTkVYSVNURU5UIEFQUExFVCBTRVJWRVIiCi0gICAgICB9Ci0gICAgfTsjIGVuZCBmaXJzdCBmb3JlYWNoIGxvb3AgKGRpc3RpbGxpbmcgZmluYWwgbWluaW11bSB2ZXJzaW9uIGFwcGxldF9zZWFyY2hfcGF0aAotCi0gICAgIyBTZWNvbmQgcGFzczogYXR0ZW1wdCB0byBsb2FkIGFwcGxldCBpbiBlYWNoIHZhbGlkIHNlYXJjaF9wYXRoIHVudGlsIGEgc3VjY2Vzc2Z1bCBhcHBsZXQgbG9hZCBvY2N1cnMKLSAgICAjIFRoaXMgZm9yIGxvb3AgbXVzdCBsZWFkIHRvIGEgc3VjY2Vzc2Z1bCBvdXRjb21lIChsb2FkZWQgYXBwbGV0KSBvciBhbiBlcnJvciB3aWxsIGJlIGlzc3VlZAotICAgIGlmIHskRm91bmRNaW5WZXJzaW9uUGF0aH0gewotICAgICAgZm9yZWFjaCBzZWFyY2hQYXRoICRtaW5WZXJzaW9uU2VhcmNoUGF0aCB7Ci0gICAgICAgIHNldF9hdHRyaWJ1dGUgLXF1aWV0IGFwcGxldF9zZWFyY2hfcGF0aCAkc2VhcmNoUGF0aCAvCi0gICAgICAgIGlmIHtbY2F0Y2gge2FwcGxldCBsb2FkICRhcHBsZXROYW1lfSBlcnJvck1zZ119IHsKLSAgICAgICAgICBwdXRzICJsb2FkX2FwcGxldCBJTkZPOiBWZXJzaW9uIGNoZWNrIHBhc3NlZCBvbiBhcHBsZXQgaW5zdGFsbCAkYXBwbGV0TmFtZSBidXQgYXBwbGV0IGxvYWQgZmFpbGVkLiIKLSAgICAgICAgICBpZiB7JGFwcGxldFNlYXJjaFBhdGhDb3VudCA+IDB9IHsKLSAgICAgICAgICAgIHB1dHMgImxvYWRfYXBwbGV0OiBUcnlpbmcgbmV4dCBhcHBsZXRfc2VhcmNoX3BhdGguLi4iCi0gICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHB1dHMgImxvYWRfYXBwbGV0OiBFUlJPUjogRmFpbGVkIHRvIGxvYWQgYXBwbGV0ICRhcHBsZXROYW1lLiBQbGVhc2UgY2hlY2sgeW91ciBhcHBsZXRfc2VhcmNoX3BhdGggYW5kIGFwcGxldCBpbnN0YWxsYXRpb24ocykuIgotCSAgICBzZXRfYXR0cmlidXRlIC1xdWlldCBhcHBsZXRfc2VhcmNoX3BhdGggJG9yaWdTZWFyY2hQYXRoIC8KLSAgICAgICAgICAgIHJldHVybiAtY29kZSBlcnJvcgotICAgICAgICAgIH0KLSAgICAgICAgfSBlbHNlIHsKLQkgIGlmIHtbY2F0Y2gge3NldCBwcm92aWRlZFZlcnNpb24gW3BhY2thZ2UgcHJlc2VudCAke2FwcGxldE5TfTo6JGFwcGxldE5hbWVdfSBlcnJvck1lc3NhZ2VdfSB7Ci0gICAgICAgICAgICBwdXRzICJsb2FkX2FwcGxldDogRVJST1I6IGFwcGxldCAkYXBwbGV0TmFtZSBsb2FkZWQgY29ycmVjdGx5LCBidXQgdGhlIGFwcGxldCBkaWQgbm90IGNvcnJlY3RseSBwcm92aWRlIGEgcGFja2FnZSB2ZXJzaW9uLiBUcnlpbmcgbmV4dCBzZWFyY2ggcGF0aC4uLiIKLQkgIH0gZWxzZSB7Ci0gICAgICAgICAgICBwdXRzICJsb2FkX2FwcGxldDogSU5GTzogQXBwbGV0ICRhcHBsZXROYW1lICRwcm92aWRlZFZlcnNpb24gc3VjY2Vzc2Z1bGx5IGxvYWRlZCBmcm9tIGFwcGxldCBpbnN0YWxsYXRpb24gYXQgJHBhdGhDb21wb25lbnQsIG1lZXRpbmcgbWluIHZlcnNpb24gcmVxdWlyZW1lbnQgKCRyZXFBcHBsZXRWZXJzaW9uKSIKLQkgICAgc2V0X2F0dHJpYnV0ZSAtcXVpZXQgYXBwbGV0X3NlYXJjaF9wYXRoICRvcmlnU2VhcmNoUGF0aCAvCi0JICAgIHJldHVybgotCSAgfQotICAgICAgICB9Ci0gICAgICB9Ci0gICAgfSBlbHNlIHsKLSAgICAgICMgRGlkbid0IGZpbmQgYW55IHNlYXJjaHkgcGF0aHMgd2l0aCBtaW5pbXVtIGFwcGxldCBpbnN0YWxsZWQuCi0gICAgICBzd2l0Y2ggLWV4YWN0IC0tICRzZXZlcml0eSB7Ci0gICAgICAgIGVycm9yIHsKLSAgICAgICAgICBwdXRzICJsb2FkX2FwcGxldCBFUlJPUjogTWluaW11bSBhcHBsZXQgdmVyc2lvbiBmb3IgYXBwbGV0ICRhcHBsZXROYW1lIGlzICRyZXFBcHBsZXRWZXJzaW9uLCBidXQgbm8gYXBwbGV0IHdhcyBmb3VuZCBtZWV0aW5nIHRoaXMgcmVxdWlyZW1lbnQuIgotCX0KLSAgICAgICAgd2FybmluZyB7Ci0gICAgICAgICAgcHV0cyAibG9hZF9hcHBsZXQgV0FSTklORzogTWluaW11bSBhcHBsZXQgdmVyc2lvbiBmb3IgYXBwbGV0ICRhcHBsZXROYW1lIGlzICRyZXFBcHBsZXRWZXJzaW9uLCBidXQgbm8gYXBwbGV0IHdhcyBmb3VuZCBtZWV0aW5nIHRoaXMgcmVxdWlyZW1lbnQuIgotCX0KLSAgICAgICAgaW5mbyB7Ci0gICAgICAgICAgcHV0cyAibG9hZF9hcHBsZXQgSU5GTzogTWluaW11bSBhcHBsZXQgdmVyc2lvbiBmb3IgYXBwbGV0ICRhcHBsZXROYW1lIGlzICRyZXFBcHBsZXRWZXJzaW9uLCBidXQgbm8gYXBwbGV0IHdhcyBmb3VuZCBtZWV0aW5nIHRoaXMgcmVxdWlyZW1lbnQuIgotCX0KLSAgICAgIH0KLSAgICAgIHB1dHMgImxvYWRfYXBwbGV0IElORk86IFNlYXJjaCByZXN1bHRzOiIKLSAgICAgIGZvcmVhY2ggc2VhcmNoUGF0aCAkZmFpbGVkUGF0aHMgewotICAgICAgICBwdXRzICIgIGFwcGxldF9zZWFyY2hfcGF0aDogJHNlYXJjaFBhdGgsICRhcHBsZXROYW1lIHZlcnNpb24gZm91bmQ6ICRmYWlsZWRQYXRodmVyKCRzZWFyY2hQYXRoKSIKLSAgICAgIH0KLSAgICAgIHB1dHMgImxvYWRfYXBwbGV0IElORk86IE5vdGUgYXBwbGV0IHNlYXJjaCBwYXRoIHRoYXQgd2FzIHNldDoiCi0gICAgICBwdXRzICIgICRvcmlnU2VhcmNoUGF0aCIgCi0gICAgICBzd2l0Y2ggLWV4YWN0IC0tICRzZXZlcml0eSB7Ci0gICAgICAgIGVycm9yIHsKLQkgIHNldF9hdHRyaWJ1dGUgLXF1aWV0IGFwcGxldF9zZWFyY2hfcGF0aCAkb3JpZ1NlYXJjaFBhdGggLwotICAgICAgICAgIHJldHVybiAtY29kZSA5OQotICAgICAgICB9Ci0gICAgICB9Ci0gICAgfQotICAgIHNldF9hdHRyaWJ1dGUgLXF1aWV0IGFwcGxldF9zZWFyY2hfcGF0aCAkb3JpZ1NlYXJjaFBhdGggLwotICB9Ci0gIHByb2MgZ2VuZXJhdGVfcmVwb3J0cyB7YXJnc30gewotICAgICAgZXZhbCBbZm9ybWF0ICIlcyAlcyIgZ2VuZXJhdGVfcmVwb3J0ICRhcmdzXQotICB9ICAKLSAgcHJvYyBydW50aW1lX2luZm8ge2FyZ3N9IHsKLSAgICAgIGV2YWwgW2Zvcm1hdCAiJXMgJXMiIHRpbWVfaW5mbyAkYXJnc10KLSAgfQotICBwcm9jIGNhcHR1cmVfbWV0cmljcyB7fSB7Ci0gICAgICBnbG9iYWwgdmFycyAKLQotICAgICAgc2V0IGNvbW1hbmRzICIiIAotICAgICAgYXBwZW5kIGNvbW1hbmRzICJtZWFzdXJlIHFvciAtbmFtZSAkdmFycyhzdGVwKSAkdmFycyhodG1sX3N1bW1hcnkpXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgInRpbWVfaW5mbyAtdGFibGUgZmZfZXh0IC1zdGFtcCAkdmFycyhzdGVwKVxuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzICJ0aW1lX2luZm8gLXRhYmxlIGZmX2V4dCAtcmVwb3J0XG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgInJlZGlyZWN0ICR2YXJzKHRpbWVfaW5mb19ycHQpIHt0aW1lX2luZm8gLXRhYmxlIGZmX2V4dCAtcmVwb3J0fVxuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzICJ0aW1lX2luZm8gLXF1aWV0IC10YWJsZSBmZl9leHQgLXNhdmUgJHZhcnModGltZV9pbmZvX2RiKVxuIgotCi0gICAgICByZXR1cm4gJGNvbW1hbmRzCi0gIH0gCi0KLSAgcHJvYyBoZWxwIHtzdGVwfSB7Ci0KLSAgICAgIGdsb2JhbCB2YXJzCi0gCi0gICAgICBzb3VyY2UgJHZhcnMoc2NyaXB0X3BhdGgpL0VUQy9JTk5PVlVTL21hcHBlZF92YXJzLnRjbAotCi0gICAgICBpZiB7IVtpbmZvIGV4aXN0cyBoZWxwKCRzdGVwLGNhdGVnb3JpZXMpXX0gewotICAgICAgICAgcHV0cyAiPEZGPiBFUlJPUjogSW52YWxpZCBzdGVwL2NhdGVnb3J5IC4uLiB2YWxpZCBvcHRpb25zIGFyZToiCi0gICAgICAgICBmb3JlYWNoIGNhdCAkaGVscChjYXRlZ29yaWVzKSB7Ci0gICAgICAgICAgICBwdXRzICIgICAgICAgICAgICAkY2F0IiAgICAgICAgICAgIAotICAgICAgICAgfQotICAgICAgICAgcmV0dXJuCi0gICAgICB9IAotCi0gICAgICBzZXQgbGVuZ3RoIFtzdHJpbmcgbGVuZ3RoICRzdGVwXQotICAgICAgcHV0cyAiICAgW3N0cmluZyByZXBlYXQgPSAxMTBdIgotICAgICAgcHV0cyBbZm9ybWF0ICIgICAlKzU1cyA6ICUtNDJzIiAidmFyaWFibGUgKGNvbW1hbmQpIiB2YWx1ZXNdCi0jICAgICAgcHV0cyAiICAgVmFyaWFibGVzIGFmZmVjdGluZyAnJHN0ZXAnID0+IHZhcmlhYmxlIChjb21tYW5kKSA6IHZhbHVlcyIKLSMgICAgICBwdXRzICIgICBbc3RyaW5nIHJlcGVhdCA9IDExMF0iCi0jICAgICAgcHV0cyAiICAgW3N0cmluZyByZXBlYXQgLSBbZXhwciA1My0oJGxlbmd0aC8yKV1dICRzdGVwIFtzdHJpbmcgcmVwZWF0IC0gW2V4cHIgNDctKCRsZW5ndGgvMildXSIKLQotICAgICAgZm9yZWFjaCBjYXQgJGhlbHAoJHN0ZXAsY2F0ZWdvcmllcykgewotICAgICAgICAgc2V0IGxlbmd0aCBbc3RyaW5nIGxlbmd0aCAkY2F0XQotICAgICAgICAgcHV0cyAiICAgW3N0cmluZyByZXBlYXQgLSBbZXhwciA1My0oJGxlbmd0aC8yKV1dICRjYXQgW3N0cmluZyByZXBlYXQgLSBbZXhwciA0Ny0oJGxlbmd0aC8yKV1dIgotICAgICAgICAgZm9yZWFjaCB2YXIgW2xzb3J0IFthcnJheSBuYW1lcyBoZWxwXV0gewotICAgICAgICAgICAgaWYge1tyZWdleHAgJGNhdCwgJHZhcl19IHsKLSAgICAgICAgICAgICAgIGlmIHskY2F0IG5lIFtsaW5kZXggW3NwbGl0ICR2YXIgIiwiXSAwXX0geyBjb250aW51ZSB9Ci0gICAgICAgICAgICAgICBzZXQgY29tbWFuZCBbbGluZGV4IFtzcGxpdCAkdmFyICIsIl0gMV0KLSAgICAgICAgICAgICAgIGlmIHtbbGxlbmd0aCBbc3BsaXQgJHZhciAiLCJdXSA+IDN9IHsKLSAgICAgICAgICAgICAgICAgIHNldCB2YXJpYWJsZSBbZm9ybWF0ICIlcywlcyIgW2xpbmRleCBbc3BsaXQgJHZhciAiLCJdIDJdIFtsaW5kZXggW3NwbGl0ICR2YXIgIiwiXSAzXV0KLSAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICBzZXQgdmFyaWFibGUgW2xpbmRleCBbc3BsaXQgJHZhciAiLCJdIDJdCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICBzZXQgdmFsdWVzICRoZWxwKCR2YXIpCi0gICAgCi0gICAgICAgICAgICAgICBpZiB7JGNvbW1hbmQgIT0gImNhdGVnb3JpZXMifSB7IAotICAgICAgICAgICAgICAgICAgcHV0cyBbZm9ybWF0ICIgICAlKzU1cyA6ICUtNDJzIiAiJHZhcmlhYmxlICgkY29tbWFuZCkiICR2YWx1ZXNdCi0gICAgICAgICAgICAgICB9IAotICAgICAgICAgICAgfQotICAgICAgICAgfQotICAgICAgfQotICAgICAgcHV0cyAiICAgW3N0cmluZyByZXBlYXQgPSAxMTBdIgotICAgfQotCi0gICMgQSBwcm9jZWR1cmUgdG8gZGV0ZXJtaW5lIGlmIHRoZSBjdXJyZW50IGZsb3cgaXMgbG93IHBvd2VyIChpLmUuLCBDUEYgb3IgSUVFRSAxODAxIGJhc2VkKSAKLSAgcHJvYyBpc19scF9mbG93IHt9IHsKLSAgICAgIGdsb2JhbCB2YXJzCi0gICAgICByZXR1cm4gW2V4cHIge1tpbmZvIGV4aXN0cyB2YXJzKGNwZl9maWxlKV0gJiYgJHZhcnMoY3BmX2ZpbGUpICE9ICIifSB8fCBcCi0gICAgICAgICAgICAgICAge1tpbmZvIGV4aXN0cyB2YXJzKGllZWUxODAxX2ZpbGUpXSAmJiAkdmFycyhpZWVlMTgwMV9maWxlKSAhPSAiIn1dCi0gIH0KLSAgcHJvYyBhZGp1c3Rfc3RlcHMge30gewotICAgCi0gICAgICBnbG9iYWwgdmFycwotICAgCi0gICAgICBzZXQgbmV3X3N0ZXBzIFtsaXN0XQotICAgCi0gICAgICBzZXQgZmlyc3QgMQotCi0gICAgICBmb3JlYWNoIHN0ZXAgJHZhcnMoc3RlcHMpIHsKLSAgIAotICAgICAgICAgaWYge1tyZWdleHAgX2hvbGQgJHN0ZXBdfSB7Ci0gICAgICAgICAgICBpZiB7KFtsc2VhcmNoICR2YXJzKGZpeF9ob2xkKSBbcmVnc3ViIF9ob2xkICRzdGVwICIiXV08MCl9IHsKLSAgICAgICAgICAgICAgIGNvbnRpbnVlCi0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgaWYgeygkdmFycyhzdGVwKSA9PSAicG9zdGN0c19ob2xkIikgJiYgJHZhcnMoc2tpcF9jdHMpfSB7Ci0gICAgICAgICAgICAgICAgICBjb250aW51ZQotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAgfQotICAKLSAgICAgICAgIGlmIHsoJHN0ZXAgPT0gInByZWN0cyIpICYmICR2YXJzKHBsYWNlX29wdF9kZXNpZ24pfSB7Ci0gICAgICAgICAgICBpZiB7ISgoJHZhcnModXNlcl9tb2RlKSA9PSAiaGllciIpICYmIChbZmlsZSB0YWlsIFtwd2RdXSA9PSAkdmFycyh0b3BfY2VsbCkpICYmICR2YXJzKGVuYWJsZV9mbGV4aWxtKSl9IHsKLSAgICAgICAgICAgICAgIGNvbnRpbnVlCi0gICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0gICAgICAgICBpZiB7KCRzdGVwID09ICJjdHMiKSAmJiAkdmFycyhza2lwX2N0cyl9IHsKLSAgICAgICAgICAgIGNvbnRpbnVlCi0gICAgICAgICB9Ci0gICAgICAgICBpZiB7KCRzdGVwID09ICJwb3N0Y3RzIil9IHsKLSAgICAgICAgICAgIGlmIHskdmFycyhza2lwX2N0cyl9IHsKLSAgICAgICAgICAgICAgIGNvbnRpbnVlCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiB7W3JlZ2V4cCAiXmNjb3B0IiBbc3RyaW5nIHRvbG93ZXIgJHZhcnMoY3RzX2VuZ2luZSldXX0gewotICAgICAgICAgICAgICAgaWYgeyR2YXJzKGN0c19lbmdpbmUpICE9ICJjY29wdF9jdHMifSB7Ci0gICAgICAgICAgICAgICAgICBjb250aW51ZQotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAgfQotICAgICAgICAgaWYgeygkc3RlcCA9PSAicG9zdGN0c19ob2xkIikgJiYgJHZhcnMocG9zdGN0c19zZXR1cF9ob2xkKSAmJiAoJHZhcnMoY3RzX2VuZ2luZSkgIT0gImNjb3B0X2N0cyIpfSB7Ci0gICAgICAgICAgICBjb250aW51ZQotICAgICAgICAgfQotICAgICAgICAgaWYgeygkc3RlcCA9PSAicG9zdHJvdXRlX2hvbGQiKSAmJiAkdmFycyhwb3N0cm91dGVfc2V0dXBfaG9sZCl9IHsKLSAgICAgICAgICAgIGNvbnRpbnVlCi0gICAgICAgICB9Ci0gICAgICAgICBsYXBwZW5kIG5ld19zdGVwcyAkc3RlcAotICAgICAgfQotCi0gICAgICByZXR1cm4gJG5ld19zdGVwcwotICAgfQotICBwcm9jIGNyZWF0ZV9jb2RlZ2VuX2ZpbGUge30gewotCi0gICAgICBnbG9iYWwgdmFycwotCi0gICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoc3R5bHVzX2NvbnZlcnQpXSAmJiAkdmFycyhzdHlsdXNfY29udmVydCkgJiYgW2luZm8gZXhpc3RzIHZhcnMocGx1Z2luc19kZWZpbmVkKV19IHsKLSAgICAgICAgRkZfTk9WVVM6OmNvbnZlcnRfcGx1Z2lucwotICAgICAgICBzZXQgb3AgW29wZW4gY29kZWdlbl9jcmVhdGUudHh0IHddCi0gICAgICAgIHB1dHMgJG9wICIjIS9ncmlkL2NvbW1vbi9wa2dzL3RjbHRrL3Y4LjViMy9iaW4vdGNsc2giCi0gICAgICAgIHB1dHMgJG9wICJzb3VyY2UgL3ZvbHMvZHNnX3RyYWNrZXIvaW5ub3Z1cy9mZS9zcmMvZmxvd2tpdC90ZXN0cy9jb2RlZ2VuX2Zsb3draXRfdGVtcGxhdGVfbW9kaWZpZXIubGliLnRjbCIKLQotICAgICAgICBzZXQgdGltaW5nX2xpYnMgJHZhcnMoJHZhcnMoJHZhcnMoJHZhcnMoZGVmYXVsdF9zZXR1cF92aWV3KSxkZWxheV9jb3JuZXIpLGxpYnJhcnlfc2V0KSx0aW1pbmcpCi0gICAgICAgIHNldCBxcmNfdGVjaCAkdmFycygkdmFycygkdmFycygkdmFycyhkZWZhdWx0X3NldHVwX3ZpZXcpLGRlbGF5X2Nvcm5lcikscmNfY29ybmVyKSxxeF90ZWNoX2ZpbGUpCi0gICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkdmFycygkdmFycyhkZWZhdWx0X3NldHVwX3ZpZXcpLGNvbnN0cmFpbnRfbW9kZSksc3ludGhfc2RjKV19IHsKLSAgICAgICAgICBzZXQgc2RjX2ZpbGVzICR2YXJzKCR2YXJzKCR2YXJzKGRlZmF1bHRfc2V0dXBfdmlldyksY29uc3RyYWludF9tb2RlKSxzeW50aF9zZGMpCi0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgc2V0IHNkY19maWxlcyAkdmFycygkdmFycygkdmFycyhkZWZhdWx0X3NldHVwX3ZpZXcpLGNvbnN0cmFpbnRfbW9kZSkscHJlX2N0c19zZGMpCi0gICAgICAgIH0KLSAgICAgICAgcHV0cyAkb3AgImNvZGVnZW46OnRlbXBsYXRlIC4vc2NyaXB0cy9kZXNpZ25fY29uZmlnLnRlbXBsYXRlIFx7IgotICAgICAgICBwdXRzICRvcCAiICBwbGFjZWhvbGRlciBcezw8IFBMQUNFSE9MREVSOiBQQVRIIFRPIFRJTUlORyBMSUJTID4+XH0gXHsgXC4gXH0iIAotICAgICAgICBwdXRzICRvcCAiICBwbGFjZWhvbGRlciBcezw8IFBMQUNFSE9MREVSOiBQQVRIIFRPIExFRiBGSUxFUyA+Plx9IFx7IFwuIFx9IgotICAgICAgICBwdXRzICRvcCAiICBwbGFjZWhvbGRlciBcezw8IFBMQUNFSE9MREVSOiBQQVRIIFRPIFRFQ0ggRklMRVMgPj5cfSBceyBcLiBcfSIKLSAgICAgICAgcHV0cyAkb3AgIiAgcGxhY2Vob2xkZXIgXHs8PCBQTEFDRUhPTERFUjogTElTVCBPRiBUSU1JTkcgTElCUkFSSUVTID4+XH0gXHtceyR0aW1pbmdfbGlic1x9XH0iCi0gICAgICAgIHB1dHMgJG9wICIgIHBsYWNlaG9sZGVyIFx7PDwgUExBQ0VIT0xERVI6IExJU1QgT0YgTEVGIEZJTEVTID4+XH0gXHtceyR2YXJzKGxlZl9maWxlcylcfVx9IgotICAgICAgICBwdXRzICRvcCAiICBwbGFjZWhvbGRlciBcezw8IFBMQUNFSE9MREVSOiBQUk9DRVNTIE5PREUgPj5cfSBceyR2YXJzKHByb2Nlc3MpXH0iCi0gICAgICAgIHB1dHMgJG9wICIgIHBsYWNlaG9sZGVyIFx7PDwgUExBQ0VIT0xERVI6IFFSQyBURUNIIEZJTEUgPj5cfSBceyRxcmNfdGVjaFx9IgotICAgICAgICBwdXRzICRvcCAiICBkZWxldGVfcGxhY2Vob2xkZXIgXHs8PCBQTEFDRUhPTERFUjogcGF0dGVybiA+Plx9IgotICAgICAgICBwdXRzICRvcCAiICBkZWxldGUgXHtvcGVyYXRpbmdfY29uZGl0aW9uXH0iCi0gICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhzeW5fbG9hZF9ydGxfdGNsKV0gJiYgW2ZpbGUgaXNmaWxlICR2YXJzKHN5bl9sb2FkX3J0bF90Y2wpXX0gewotIyAgICAgICAgICBwdXRzICRvcCAiICBhcHBlbmRfYWZ0ZXIgXHstIFJlYWQgaGRsIGRlc2lnbiwgRmxvdyBTdGVwIE5hbWU6IHJlYWRfaGRsXH0gXHsiCi0gICAgICAgICAgcHV0cyAkb3AgIiAgYXBwZW5kX2FmdGVyIFx7PDwgUExBQ0VIT0xERVI6IERFU0lHTiBIREwgTE9BRCBPUFRJT05TID4+XH0gXHsiCi0gICAgICAgICAgc2V0IGlwIFtvcGVuICR2YXJzKHN5bl9sb2FkX3J0bF90Y2wpIHJdCi0gICAgICAgICAgd2hpbGUge1tnZXRzICRpcCBsaW5lXT49MH0gewotICAgICAgICAgICAgcHV0cyAkb3AgIiAgICRsaW5lIgotICAgICAgICAgIH0KLSAgICAgICAgICBjbG9zZSAkaXAKLSAgICAgICAgICBwdXRzICRvcCAiICBcfSIKLSAgICAgICAgICBwdXRzICRvcCAiICBkZWxldGVfcGxhY2Vob2xkZXIgXHs8PCBQTEFDRUhPTERFUjogREVTSUdOIEhETCBMT0FEIE9QVElPTlMgPj5cfSIKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICBwdXRzICRvcCAiICBkZWxldGVfcGxhY2Vob2xkZXIgXHs8PCBQTEFDRUhPTERFUjogREVTSUdOIEhETCBMT0FEIE9QVElPTlMgPj5cfSIKLSAgICAgICAgfQotICAgICAgICAgcHV0cyAkb3AgIiAgcGxhY2Vob2xkZXIgXHs8PCBQTEFDRUhPTERFUjogRUxBQk9SQVRJT04gT1BUSU9OUyA+Plx9IFx7JHZhcnMoZGVzaWduKVx9IgotICAgICAgICAgcHV0cyAkb3AgIiAgcGxhY2Vob2xkZXIgXHs8PCBQTEFDRUhPTERFUjogU0RDIEZJTEVTID4+XH0gXHskc2RjX2ZpbGVzXH0iCi0gICAgICAgICBwdXRzICRvcCAiICBwbGFjZWhvbGRlciBcezw8IFBMQUNFSE9MREVSOiBQSFlTSUNBTCBEQVRBIExPQUQgT1BUSU9OUyA+Plx9IFx7LWxlZiBceyAkdmFycyhsZWZfZmlsZXMpIFx9XH0iCi0gICAgICAgICBwdXRzICRvcCAiICBwbGFjZWhvbGRlciBcezw8IFBMQUNFSE9MREVSOiBERVNJR04gREFUQSBMT0FEIE9QVElPTlMgPj5cfSBceyR2YXJzKG5ldGxpc3QpXH0iCi0gICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoZGVmX2ZpbGVzKV19IHsKLSAgICAgICAgICAgcHV0cyAkb3AgIiAgcGxhY2Vob2xkZXIgXHs8PCBQTEFDRUhPTERFUjogREVGIExPQUQgT1BUSU9OUyA+Plx9IFx7JHZhcnMoZGVmX2ZpbGVzKVx9IgotICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgcHV0cyAkb3AgIiAgZGVsZXRlX3BsYWNlaG9sZGVyIFx7PDwgUExBQ0VIT0xERVI6IERFRiBMT0FEIE9QVElPTlMgPj5cfSIKLSAgICAgICAgIH0KLSAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhmcF9maWxlKV19IHsKLSAgICAgICAgICAgcHV0cyAkb3AgIiAgcGxhY2Vob2xkZXIgXHs8PCBQTEFDRUhPTERFUjogRlBMQU4gTE9BRCBPUFRJT05TID4+XH0gXHskdmFycyhmcF9maWxlKVx9IgotICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgcHV0cyAkb3AgIiAgZGVsZXRlX3BsYWNlaG9sZGVyIFx7PDwgUExBQ0VIT0xERVI6IEZQTEFOIExPQUQgT1BUSU9OUyA+Plx9IgotICAgICAgICAgfQotICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGNwZl9maWxlKV19IHsKLSAgICAgICAgICAgcHV0cyAkb3AgIiAgcGxhY2Vob2xkZXIgXHs8PCBQTEFDRUhPTERFUjogUE9XRVIgSU5URU5UIExPQUQgT1BUSU9OUyA+Plx9IFx7JHZhcnMoY3BmX2ZpbGUpXH0iCi0gICAgICAgICB9IGVsc2UgewotICAgICAgICAgICBwdXRzICRvcCAiICBkZWxldGVfcGxhY2Vob2xkZXIgXHs8PCBQTEFDRUhPTERFUjogUE9XRVIgSU5URU5UIExPQUQgT1BUSU9OUyA+Plx9IgotICAgICAgICAgfQotICAgICAgICAgcHV0cyAkb3AgIiAgZGVsZXRlX3BsYWNlaG9sZGVyIFx7PDwgUExBQ0VIT0xERVI6IENMT0NLIExFQUYgUk9VVEUgUlVMRSA+Plx9IgotICAgICAgICAgcHV0cyAkb3AgIiAgZGVsZXRlX3BsYWNlaG9sZGVyIFx7PDwgUExBQ0VIT0xERVI6IENMT0NLIFRSVU5LIFJPVVRFIFJVTEUgPj5cfSIKLSAgICAgICAgIHB1dHMgJG9wICIgIGRlbGV0ZV9wbGFjZWhvbGRlciBcezw8IFBMQUNFSE9MREVSOiBDTE9DSyBUT1AgUk9VVEUgUlVMRSA+Plx9IgotICAgICAgICAgcHV0cyAkb3AgIlx9IgotICAgICAgICAgcHV0cyAkb3AgImNvZGVnZW46OnRlbXBsYXRlIC4vc2NyaXB0cy9nZW51c19jb25maWcudGVtcGxhdGUgXHsiCi0gICAgICAgICBwdXRzICRvcCAiXH0iIAotICAgICAgICAgcHV0cyAkb3AgImNvZGVnZW46OnRlbXBsYXRlIC4vc2NyaXB0cy9pbm5vdnVzX2NvbmZpZy50ZW1wbGF0ZSBceyIKLSAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhwcm9jZXNzKV19IHsKLSAgICAgICAgICAgcHV0cyAkb3AgIiAgcGxhY2Vob2xkZXIgXHs8PCBQTEFDRUhPTERFUjogUFJPQ0VTUyBOT0RFID4+XH0gXHskdmFycyhwcm9jZXNzKVx9IgotICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgcHV0cyAkb3AgIiAgZGVsZXRlX3BsYWNlaG9sZGVyIFx7PDwgUExBQ0VIT0xERVI6IFBST0NFU1MgTk9ERSA+Plx9IgotICAgICAgICAgfQotICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGZsb3dfZWZmb3J0KV19IHsKLSAgICAgICAgICAgcHV0cyAkb3AgIiAgcGxhY2Vob2xkZXIgXHs8PCBQTEFDRUhPTERFUjogRkxPVyBFRkZPUlQgTEVWRUwgPj5cfSBceyR2YXJzKGZsb3dfZWZmb3J0KVx9IgotICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgcHV0cyAkb3AgIiAgZGVsZXRlX3BsYWNlaG9sZGVyIFx7PDwgUExBQ0VIT0xERVI6IEZMT1cgRUZGT1JUIExFVkVMID4+XH0iCi0gICAgICAgICB9Ci0gICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnModGllX2NlbGxzKV19IHsKLSAgICAgICAgICAgcHV0cyAkb3AgIiAgcGxhY2Vob2xkZXIgXHs8PCBQTEFDRUhPTERFUjogVElFT0ZGIEJBU0VfQ0VMTCBOQU1FUyA+Plx9IFx7XHskdmFycyh0aWVfY2VsbHMpXH1cfSIKLSAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgIHB1dHMgJG9wICIgIGRlbGV0ZV9wbGFjZWhvbGRlciBcezw8IFBMQUNFSE9MREVSOiBUSUVPRkYgQkFTRV9DRUxMIE5BTUVTID4+XH0iCi0gICAgICAgICB9Ci0gICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoY3RzX3RhcmdldF9zbGV3KV19IHsKLSAgICAgICAgICAgcHV0cyAkb3AgIiAgcGxhY2Vob2xkZXIgXHs8PCBQTEFDRUhPTERFUjogQ0xPQ0sgVFJBTlNJVElPTiBUSU1FIFRBUkdFVCA+Plx9IFx7JHZhcnMoY3RzX3RhcmdldF9zbGV3KVx9IgotICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgcHV0cyAkb3AgIiAgZGVsZXRlX3BsYWNlaG9sZGVyIFx7PDwgUExBQ0VIT0xERVI6IENMT0NLIFRSQU5TSVRJT04gVElNRSBUQVJHRVQgPj5cfSIKLSAgICAgICAgIH0KLSAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhjdHNfdGFyZ2V0X3NrZXcpXX0gewotICAgICAgICAgICBwdXRzICRvcCAiICBwbGFjZWhvbGRlciBcezw8IFBMQUNFSE9MREVSOiBDTE9DSyBTS0VXIFRBUkdFVCA+Plx9IFx7JHZhcnMoY3RzX3RhcmdldF9za2V3KVx9IgotICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgcHV0cyAkb3AgIiAgZGVsZXRlX3BsYWNlaG9sZGVyIFx7PDwgUExBQ0VIT0xERVI6IENMT0NLIFNLRVcgVEFSR0VUID4+XH0iCi0gICAgICAgICB9Ci0gICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoY3RzX2J1ZmZlcl9jZWxscyldfSB7Ci0gICAgICAgICAgIHB1dHMgJG9wICIgIHBsYWNlaG9sZGVyIFx7PDwgUExBQ0VIT0xERVI6IENMT0NLIEJVRkZFUiBCQVNFX0NFTExTIE5BTUVTID4+XH0gXHtceyR2YXJzKGN0c19idWZmZXJfY2VsbHMpXH1cfSIKLSAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgIHB1dHMgJG9wICIgIGRlbGV0ZV9wbGFjZWhvbGRlciBcezw8IFBMQUNFSE9MREVSOiBDTE9DSyBCVUZGRVIgQkFTRV9DRUxMUyBOQU1FUyA+Plx9IgotICAgICAgICAgfQotICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGN0c19pbnZlcnRlcl9jZWxscyldfSB7Ci0gICAgICAgICAgIHB1dHMgJG9wICIgIHBsYWNlaG9sZGVyIFx7PDwgUExBQ0VIT0xERVI6IENMT0NLIElOVkVSVEVSIEJBU0VfQ0VMTFMgTkFNRVMgPj5cfSBce1x7JHZhcnMoY3RzX2ludmVydGVyX2NlbGxzKVx9XH0iCi0gICAgICAgICB9IGVsc2UgewotICAgICAgICAgICBwdXRzICRvcCAiICBkZWxldGVfcGxhY2Vob2xkZXIgXHs8PCBQTEFDRUhPTERFUjogQ0xPQ0sgSU5WRVJURVIgQkFTRV9DRUxMUyBOQU1FUyA+Plx9IgotICAgICAgICAgfQotICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGN0c19jbG9ja19nYXRpbmdfY2VsbHMpXX0gewotICAgICAgICAgICBwdXRzICRvcCAiICBwbGFjZWhvbGRlciBcezw8IFBMQUNFSE9MREVSOiBDTE9DSyBHQVRJTkcgQkFTRV9DRUxMUyBOQU1FUyA+Plx9IFx7XHskdmFycyhjdHNfY2xvY2tfZ2F0aW5nX2NlbGxzKVx9XH0iCi0gICAgICAgICB9IGVsc2UgewotICAgICAgICAgICBwdXRzICRvcCAiICBkZWxldGVfcGxhY2Vob2xkZXIgXHs8PCBQTEFDRUhPTERFUjogQ0xPQ0sgR0FUSU5HIEJBU0VfQ0VMTFMgTkFNRVMgPj5cfSIKLSAgICAgICAgIH0KLSAgICAgICAgIHB1dHMgJG9wICIgIGRlbGV0ZV9wbGFjZWhvbGRlciBcezw8IFBMQUNFSE9MREVSOiBST1VURSBUWVBFIE5BTUUgRk9SIENMT0NLIExFQUYgTkVUUyA+Plx9IgotICAgICAgICAgcHV0cyAkb3AgIiAgZGVsZXRlX3BsYWNlaG9sZGVyIFx7PDwgUExBQ0VIT0xERVI6IFJPVVRFIFRZUEUgTkFNRSBGT1IgQ0xPQ0sgVFJVTksgTkVUUyA+Plx9IgotICAgICAgICAgcHV0cyAkb3AgIiAgZGVsZXRlX3BsYWNlaG9sZGVyIFx7PDwgUExBQ0VIT0xERVI6IFJPVVRFIFRZUEUgTkFNRSBGT1IgQ0xPQ0sgVE9QIE5FVFMgPj5cfSIKLSAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhmaWxsZXJfY2VsbHMpXX0gewotICAgICAgICAgICBwdXRzICRvcCAiICBwbGFjZWhvbGRlciBcezw8IFBMQUNFSE9MREVSOiBGSUxMRVIgQkFTRV9DRUxMIE5BTUVTID4+XH0gXHtceyR2YXJzKGZpbGxlcl9jZWxscylcfVx9IgotICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgcHV0cyAkb3AgIiAgZGVsZXRlX3BsYWNlaG9sZGVyIFx7PDwgUExBQ0VIT0xERVI6IEZJTExFUiBCQVNFX0NFTEwgTkFNRVMgPj5cfSIKLSAgICAgICAgIH0KLSAgICAgICAgIHB1dHMgJG9wICJcfSIKLSAgICAgICAgIHB1dHMgJG9wICJjb2RlZ2VuOjp0ZW1wbGF0ZSAuL3NjcmlwdHMvdGVtcHVzX2NvbmZpZy50ZW1wbGF0ZSBceyIKLSAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhwcm9jZXNzKV19IHsKLSAgICAgICAgICAgcHV0cyAkb3AgIiAgcGxhY2Vob2xkZXIgXHs8PCBQTEFDRUhPTERFUjogUFJPQ0VTUyBOT0RFID4+XH0gXHskdmFycyhwcm9jZXNzKVx9IgotICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgcHV0cyAkb3AgIiAgZGVsZXRlX3BsYWNlaG9sZGVyIFx7PDwgUExBQ0VIT0xERVI6IFBST0NFU1MgTk9ERSA+Plx9IgotICAgICAgICAgfQotICAgICAgICAgcHV0cyAkb3AgIlx9IgotICAgICAgICAgY2xvc2UgJG9wCi0gICAgICB9Ci0gIH0KLX07IyBlbmQgbmFtZXNwYWNlIEZGCmRpZmYgLS1naXQgYS9mbG93L3Buci9TQ1JJUFRTL0dJRi9ibGFuay5wbmcgYi9mbG93L3Buci9TQ1JJUFRTL0dJRi9ibGFuay5wbmcKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDBlMzU3ZDUuLjAwMDAwMDAKLS0tIGEvZmxvdy9wbnIvU0NSSVBUUy9HSUYvYmxhbmsucG5nCisrKyAvZGV2L251bGwKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvZmxvdy9wbnIvU0NSSVBUUy9HSUYvY2FsYy5naWYgYi9mbG93L3Buci9TQ1JJUFRTL0dJRi9jYWxjLmdpZgpkZWxldGVkIGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMGQxYzZlZS4uMDAwMDAwMAotLS0gYS9mbG93L3Buci9TQ1JJUFRTL0dJRi9jYWxjLmdpZgorKysgL2Rldi9udWxsCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL2Zsb3cvcG5yL1NDUklQVFMvR0lGL2NhbGMucG5nIGIvZmxvdy9wbnIvU0NSSVBUUy9HSUYvY2FsYy5wbmcKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDlmMzJhMWYuLjAwMDAwMDAKLS0tIGEvZmxvdy9wbnIvU0NSSVBUUy9HSUYvY2FsYy5wbmcKKysrIC9kZXYvbnVsbApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9mbG93L3Buci9TQ1JJUFRTL0dJRi9jbG9ja3MucG5nIGIvZmxvdy9wbnIvU0NSSVBUUy9HSUYvY2xvY2tzLnBuZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggNmU4NjM5Ni4uMDAwMDAwMAotLS0gYS9mbG93L3Buci9TQ1JJUFRTL0dJRi9jbG9ja3MucG5nCisrKyAvZGV2L251bGwKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvZmxvdy9wbnIvU0NSSVBUUy9HSUYvZGVuc2l0eS5wbmcgYi9mbG93L3Buci9TQ1JJUFRTL0dJRi9kZW5zaXR5LnBuZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggYWJjNWIwZC4uMDAwMDAwMAotLS0gYS9mbG93L3Buci9TQ1JJUFRTL0dJRi9kZW5zaXR5LnBuZworKysgL2Rldi9udWxsCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL2Zsb3cvcG5yL1NDUklQVFMvR0lGL2hlYWRlci5wbmcgYi9mbG93L3Buci9TQ1JJUFRTL0dJRi9oZWFkZXIucG5nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDc1NQppbmRleCA0NzQzNGViLi4wMDAwMDAwCi0tLSBhL2Zsb3cvcG5yL1NDUklQVFMvR0lGL2hlYWRlci5wbmcKKysrIC9kZXYvbnVsbApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9mbG93L3Buci9TQ1JJUFRTL0dJRi9sb2cuZ2lmIGIvZmxvdy9wbnIvU0NSSVBUUy9HSUYvbG9nLmdpZgpkZWxldGVkIGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggNTY4YTA5OS4uMDAwMDAwMAotLS0gYS9mbG93L3Buci9TQ1JJUFRTL0dJRi9sb2cuZ2lmCisrKyAvZGV2L251bGwKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvZmxvdy9wbnIvU0NSSVBUUy9HSUYvbG9nLnBuZyBiL2Zsb3cvcG5yL1NDUklQVFMvR0lGL2xvZy5wbmcKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IGRhNTcwMjMuLjAwMDAwMDAKLS0tIGEvZmxvdy9wbnIvU0NSSVBUUy9HSUYvbG9nLnBuZworKysgL2Rldi9udWxsCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL2Zsb3cvcG5yL1NDUklQVFMvR0lGL2xvZ28uZ2lmIGIvZmxvdy9wbnIvU0NSSVBUUy9HSUYvbG9nby5naWYKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDE4NWJhZjYuLjAwMDAwMDAKLS0tIGEvZmxvdy9wbnIvU0NSSVBUUy9HSUYvbG9nby5naWYKKysrIC9kZXYvbnVsbApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9mbG93L3Buci9TQ1JJUFRTL0dJRi9wb3dlci5naWYgYi9mbG93L3Buci9TQ1JJUFRTL0dJRi9wb3dlci5naWYKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IGU4ZjIzMjIuLjAwMDAwMDAKLS0tIGEvZmxvdy9wbnIvU0NSSVBUUy9HSUYvcG93ZXIuZ2lmCisrKyAvZGV2L251bGwKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvZmxvdy9wbnIvU0NSSVBUUy9HSUYvcG93ZXIucG5nIGIvZmxvdy9wbnIvU0NSSVBUUy9HSUYvcG93ZXIucG5nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAxNWY3NzUzLi4wMDAwMDAwCi0tLSBhL2Zsb3cvcG5yL1NDUklQVFMvR0lGL3Bvd2VyLnBuZworKysgL2Rldi9udWxsCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL2Zsb3cvcG5yL1NDUklQVFMvR0lGL3NwZWVkLmdpZiBiL2Zsb3cvcG5yL1NDUklQVFMvR0lGL3NwZWVkLmdpZgpkZWxldGVkIGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggYzQ1NDFiOS4uMDAwMDAwMAotLS0gYS9mbG93L3Buci9TQ1JJUFRTL0dJRi9zcGVlZC5naWYKKysrIC9kZXYvbnVsbApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9mbG93L3Buci9TQ1JJUFRTL0dJRi9zcGVlZC5wbmcgYi9mbG93L3Buci9TQ1JJUFRTL0dJRi9zcGVlZC5wbmcKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IGY2NjMxMTUuLjAwMDAwMDAKLS0tIGEvZmxvdy9wbnIvU0NSSVBUUy9HSUYvc3BlZWQucG5nCisrKyAvZGV2L251bGwKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvZmxvdy9wbnIvU0NSSVBUUy9HSUYvc3RlcC5wbmcgYi9mbG93L3Buci9TQ1JJUFRTL0dJRi9zdGVwLnBuZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggYjhkODdhOS4uMDAwMDAwMAotLS0gYS9mbG93L3Buci9TQ1JJUFRTL0dJRi9zdGVwLnBuZworKysgL2Rldi9udWxsCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL2Zsb3cvcG5yL1NDUklQVFMvR0lGL3N1bW1hcnkucG5nIGIvZmxvdy9wbnIvU0NSSVBUUy9HSUYvc3VtbWFyeS5wbmcKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDA4NzE3ZjAuLjAwMDAwMDAKLS0tIGEvZmxvdy9wbnIvU0NSSVBUUy9HSUYvc3VtbWFyeS5wbmcKKysrIC9kZXYvbnVsbApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9mbG93L3Buci9TQ1JJUFRTL0dJRi90aW1lLmdpZiBiL2Zsb3cvcG5yL1NDUklQVFMvR0lGL3RpbWUuZ2lmCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDc1NQppbmRleCBkODY5MjlkLi4wMDAwMDAwCi0tLSBhL2Zsb3cvcG5yL1NDUklQVFMvR0lGL3RpbWUuZ2lmCisrKyAvZGV2L251bGwKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvZmxvdy9wbnIvU0NSSVBUUy9HSUYvdGltZS5wbmcgYi9mbG93L3Buci9TQ1JJUFRTL0dJRi90aW1lLnBuZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggNGY4MTI5OS4uMDAwMDAwMAotLS0gYS9mbG93L3Buci9TQ1JJUFRTL0dJRi90aW1lLnBuZworKysgL2Rldi9udWxsCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL2Zsb3cvcG5yL1NDUklQVFMvR0lGL3Zpb2wuZ2lmIGIvZmxvdy9wbnIvU0NSSVBUUy9HSUYvdmlvbC5naWYKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDljYWI4NGQuLjAwMDAwMDAKLS0tIGEvZmxvdy9wbnIvU0NSSVBUUy9HSUYvdmlvbC5naWYKKysrIC9kZXYvbnVsbApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9mbG93L3Buci9TQ1JJUFRTL0lOTk9WVVMvcHJvY3MudGNsIGIvZmxvdy9wbnIvU0NSSVBUUy9JTk5PVlVTL3Byb2NzLnRjbApkZWxldGVkIGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMTlkZDZhNC4uMDAwMDAwMAotLS0gYS9mbG93L3Buci9TQ1JJUFRTL0lOTk9WVVMvcHJvY3MudGNsCisrKyAvZGV2L251bGwKQEAgLTEsMjc4NDMgKzAsMCBAQAotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotIyAgICAgICAgICAgICAgICAgICAgICAgQ0FERU5DRSBDT1BZUklHSFQgTk9USUNFCi0jICAgICAgICAgqSAyMDA4LTIwMTMgQ2FkZW5jZSBEZXNpZ24gU3lzdGVtcywgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIwotIyBUaGlzIEZvdW5kYXRpb24gRmxvdyBpcyBwcm92aWRlZCBhcyBhbiBleGFtcGxlIG9mIGhvdyB0byBwZXJmb3JtIHNwZWNpYWxpemVkCi0jIHRhc2tzLgotIwotIyBUaGlzIHdvcmsgbWF5IG5vdCBiZSBjb3BpZWQsIHJlLXB1Ymxpc2hlZCwgdXBsb2FkZWQsIG9yIGRpc3RyaWJ1dGVkIGluIGFueSB3YXksCi0jIGluIGFueSBtZWRpdW0sIHdoZXRoZXIgaW4gd2hvbGUgb3IgaW4gcGFydCwgd2l0aG91dCBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24KLSMgZnJvbSBDYWRlbmNlLiBOb3R3aXRoc3RhbmRpbmcgYW55IHJlc3RyaWN0aW9ucyBoZXJlaW4sIHN1YmplY3QgdG8gY29tcGxpYW5jZQotIyB3aXRoIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB0aGUgQ2FkZW5jZSBzb2Z0d2FyZSBsaWNlbnNlIGFncmVlbWVudCB1bmRlcgotIyB3aGljaCB0aGlzIG1hdGVyaWFsIHdhcyBwcm92aWRlZCwgdGhpcyBtYXRlcmlhbCBtYXkgYmUgY29waWVkIGFuZCBpbnRlcm5hbGx5Ci0jIGRpc3RyaWJ1dGVkIHNvbGVseSBmb3IgaW50ZXJuYWwgcHVycG9zZXMgZm9yIHVzZSB3aXRoIENhZGVuY2UgdG9vbHMuCi0jCi0jIFRoaXMgd29yayBpcyBDYWRlbmNlIGludGVsbGVjdHVhbCBwcm9wZXJ0eSBhbmQgbWF5IHVuZGVyIG5vIGNpcmN1bXN0YW5jZXMgYmUKLSMgZ2l2ZW4gdG8gdGhpcmQgcGFydGllcywgbmVpdGhlciBpbiBvcmlnaW5hbCBub3IgaW4gbW9kaWZpZWQgdmVyc2lvbnMsIHdpdGhvdXQKLSMgZXhwbGljaXQgd3JpdHRlbiBwZXJtaXNzaW9uIGZyb20gQ2FkZW5jZS4gVGhlIGluZm9ybWF0aW9uIGNvbnRhaW5lZCBoZXJlaW4gaXMKLSMgdGhlIHByb3ByaWV0YXJ5IGFuZCBjb25maWRlbnRpYWwgaW5mb3JtYXRpb24gb2YgQ2FkZW5jZSBvciBpdHMgbGljZW5zb3JzLCBhbmQKLSMgaXMgc3VwcGxpZWQgc3ViamVjdCB0bywgYW5kIG1heSBiZSB1c2VkIG9ubHkgYnkgQ2FkZW5jZSdzIGN1cnJlbnQgY3VzdG9tZXJzCi0jIGluIGFjY29yZGFuY2Ugd2l0aCwgYSBwcmV2aW91c2x5IGV4ZWN1dGVkIGxpY2Vuc2UgYWdyZWVtZW50IGJldHdlZW4gQ2FkZW5jZQotIyBhbmQgaXRzIGN1c3RvbWVyLgotIwotIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIyBUSElTIE1BVEVSSUFMIElTIFBST1ZJREVEIEJZIENBREVOQ0UgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRAotIyBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRgotIyBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELgotIyBJTiBOTyBFVkVOVCBTSEFMTCBDQURFTkNFIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwKLSMgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwKLSMgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SCi0jIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgIE1BVEVSSUFMLCBFVkVOIElGCi0jIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCi1wYWNrYWdlIHByb3ZpZGUgZm91bmRhdGlvbl9mbG93IDEuMAotCi1uYW1lc3BhY2UgZXZhbCBGRl9OT1ZVUzo6IHsKLQotICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgIyBQcm9jZWR1cmUgdG8gc2VlZCBjZXJ0YWluIGZsb3cgdmFyaWFibGVzIHRvIGEga25vd24gZGVmYXVsdCB2YWx1ZSBhcyB3ZWxsCi0gICAjIGFzIGRhdGEgdmFyaWFibGVzIHJlcXVpcmVkIHRvIHNlZWQgdGhlIGdlbmVyaWMgY29uZmlndXJhdGlvbiBmaWxlCi0gICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0KLQotICAgcHJvYyBzZWVkX3ZhcmlhYmxlcyB7e2ZvcmNlIDB9fSB7Ci0KLSAgICAgIGdsb2JhbCB2YXJzCi0gICAgICBnbG9iYWwgcmRhX2RlZmF1bHRzCi0gICAgICBnbG9iYWwgdWRtCi0gICAgICBnbG9iYWwgZW52Ci0gICAgICBnbG9iYWwgaW5mb3MKLSAgICAgIGdsb2JhbCB3YXJuaW5ncwotICAgICAgZ2xvYmFsIGVycm9ycwotICAgICAgZ2xvYmFsIGZhcmdzIAotICAgICAgZ2xvYmFsIGRhcmdzIAotCi0gICAgICBpZiB7JGZvcmNlfSB7Ci0gICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoc2VlZCldfSB7Ci0gICAgICAgICAgICB1bnNldCB2YXJzKHNlZWQpCi0gICAgICAgICB9Ci0gICAgICB9Ci0KLSAgICAgIGlmIHshW2luZm8gZXhpc3RzIHZhcnMoc2VlZCldfSB7Ci0KLSAgICAgICAgIHB1dHMgIjxGRj4gU2VlZGluZyB2YXJpYWJsZXMgLi4uIgotCi0gICAgICAgICBpZiB7IVtpbmZvIGV4aXN0cyB2YXJzKHdhcm5pbmdfY291bnQpXX0gewotICAgICAgICAgICAgc2V0IHZhcnMod2FybmluZ19jb3VudCkgMAotICAgICAgICAgfQotICAgICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycyhlcnJvcl9jb3VudCldfSB7Ci0gICAgICAgICAgICBzZXQgdmFycyhlcnJvcl9jb3VudCkgMAotICAgICAgICAgfQotICAgICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycyhpbmZvX2NvdW50KV19IHsKLSAgICAgICAgICAgIHNldCB2YXJzKGluZm9fY291bnQpIDAKLSAgICAgICAgIH0KLQotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgIyBTZXQgdmFycyh2ZXJzaW9uKSB0byAiMTcuMS4wIiBpZiBub3QgZGVmaW5lZAotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycyh2ZXJzaW9uKV19IHsKLSAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgZmFyZ3ModmVyc2lvbildfSB7Ci0jICAgICAgICAgICAgICAgcHV0cyAiPEZGPiBJTkZPOiBWYXJpYWJsZSB2YXJzKHZlcnNpb24pIG5vdCBkZWZpbmVkIC0gc2V0dGluZyB0byAnJGZhcmdzKHZlcnNpb24pJyIKLSAgICAgICAgICAgICAgIHNldCB2YXJzKHZlcnNpb24pICRmYXJncyh2ZXJzaW9uKQotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIHNldCB2YXJzKHZlcnNpb24pICRkYXJncyh2ZXJzaW9uKQotICAgICAgICAgICAgfQotICAgICAgICAgICAgc2V0IHZhcnMoZmxvdykgbW1tYwotICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIGlmIHsoW2xzZWFyY2ggJEZGOjp2YWxpZF92ZXJzaW9ucyAkdmFycyh2ZXJzaW9uKV0gPCAwKX0gewotICAgICAgICAgICAgICAgc2V0IG1zZyAiVmVyc2lvbiAnJHZhcnModmVyc2lvbiknIG5vdCBzdXBwb3J0ZWQgLSBzZXR0aW5nIHRvICcxNy4xLjAnIgotICAgICAgICAgICAgICAgcHV0cyAiPEZGPiBXQVJOSU5HOiAkbXNnIgotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICAkbXNnXG4iCi0gICAgICAgICAgICAgICBzZXQgd2FybmluZ3MoJHZhcnMod2FybmluZ19jb3VudCkpICRtc2cKLSAgICAgICAgICAgICAgIGluY3IgdmFycyh3YXJuaW5nX2NvdW50KQotICAgICAgICAgICAgICAgc2V0IHZhcnMoZmxvdykgbW1tYwotICAgICAgICAgICAgICAgc2V0IHZhcnModmVyc2lvbikgIjE3LjEuMCIKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBpZiB7W2xpbmRleCBbc3BsaXQgJHZhcnModmVyc2lvbikgIi4iXSAgMF0gPiAxMH0gewotICAgICAgICAgICAgICAgICAgc2V0IHZhcnMoZmxvdykgbW1tYwotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAgfQotCi0gICAgICAgICBpZiB7W3JlZ2V4cCAiOS4xIiAkdmFycyh2ZXJzaW9uKV19IHsKLSAgICAgICAgICAgIHNldCB2YXJzKGVuYWJsZV9sZGIpIEZBTFNFCi0gICAgICAgICB9Ci0KLSMgICAgICAgICBpZiB7W2xpbmRleCBbc3BsaXQgJHZhcnModmVyc2lvbikgIi4iXSAgMF0gPiAxNH0gewotIyAgICAgICAgICAgIHNldCB2YXJzKG5vdnVzKSB0cnVlCi0jICAgICAgICAgfSBlbHNlIHsKLSMgICAgICAgICAgICBzZXQgdmFycyhub3Z1cykgZmFsc2UKLSMgICAgICAgICB9Ci0KLSAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIGZhcmdzKG5vdnVzKV19IHsKLSAgICAgICAgICAgICBzZXQgdmFycyhub3Z1cykgJGZhcmdzKG5vdnVzKQotICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgc2V0IHZhcnMobm92dXMpICRkYXJncyhub3Z1cykKLSAgICAgICAgICB9Ci0KLSMgVG9vbCBzaG91bGQgYWx3YXlzIGJlIGlubm92dXMgZm9yIDE1LnggYXMgZW5jb3VudGVyIGlzIGdvaW5nIGF3YXkKLSAgICAgICAgIGlmIHshW2luZm8gZXhpc3RzIHZhcnMobWFrZV90b29sKV19IHsKLSAgICAgICAgICAgaWYge1tsaW5kZXggW3NwbGl0ICR2YXJzKHZlcnNpb24pICIuIl0gIDBdID4gMTR9IHsKLSAgICAgICAgICAgICAgc2V0IHZhcnMobWFrZV90b29sKSBpbm5vdnVzCi0gICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgIHNldCB2YXJzKG1ha2VfdG9vbCkgZW5jb3VudGVyCi0gICAgICAgICAgIH0KLSAgICAgICAgIH0KLQotICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGVuYWJsZV9sZGIpXSAmJiAkdmFycyhlbmFibGVfbGRiKX0gewotICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKHJhbl9jb21waWxlKV19IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkZfTk9WVVM6OnJ1bl9jb21waWxlXSAKLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0KLQotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgIyBTZXQgdmFycyhmbG93KSB0byAibW1tYyIgaWYgbm90IGRlZmluZWQKLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICAgIGlmIHshW2luZm8gZXhpc3RzIHZhcnMoZmxvdyldfSB7Ci0gICAgICAgICAgICBwdXRzICI8RkY+IElORk86IFZhcmlhYmxlIHZhcnMoZmxvdykgbm90IGRlZmluZWQgLSBzZXR0aW5nIHRvICdtbW1jJyIKLSAgICAgICAgICAgIHNldCB2YXJzKGZsb3cpIG1tbWMKLSAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBpZiB7KFtsc2VhcmNoIFtsaXN0ICJkZWZhdWx0IiAicHJfbW1tYyIgIm1tbWMiXSAkdmFycyhmbG93KV0gPCAwKX0gewotICAgICAgICAgICAgICAgcHV0cyAiPEZGPiBXQVJOSU5HOiBGbG93IHR5cGUgJyR2YXJzKGZsb3cpJyBub3Qgc3VwcG9ydGVkIC0gc2V0dGluZyB0byAnbW1tYyciCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIFdBUk5JTkc6IEZsb3cgdHlwZSAnJHZhcnMoZmxvdyknIG5vdCBzdXBwb3J0ZWQgLSBzZXR0aW5nIHRvICdtbW1jJ1xuIgotICAgICAgICAgICAgICAgc2V0IHdhcm5pbmdzKCR2YXJzKHdhcm5pbmdfY291bnQpKSAiRmxvdyB0eXBlICckdmFycyhmbG93KScgbm90IHN1cHBvcnRlZCAtIHNldHRpbmcgdG8gJ21tbWMnIgotICAgICAgICAgICAgICAgaW5jciB2YXJzKHdhcm5pbmdfY291bnQpCi0gICAgICAgICAgICAgICBzZXQgdmFycyhmbG93KSBtbW1jCi0gICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0KLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICMgTWFrZSBzdXJlIGFsbCBzY2FsaW5nIGZhY3RvcnMgYXJlIGVpdGhlciBzZXQgb3IgYXJlIDEuMCAuLi4gYWxzbwotICAgICAgIyBzdXBwb3J0IGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5IG9mIG9sZCBuYW1lcwotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgICAgc2V0IG1hcChwcmVfcm91dGVfcmVzX2ZhY3RvcikgZGVmX3Jlc19mYWN0b3IKLSAgICAgICAgIHNldCBtYXAocHJlX3JvdXRlX2Nsa19yZXNfZmFjdG9yKSBkZWZfY2xrX3Jlc19mYWN0b3IKLSAgICAgICAgIHNldCBtYXAocHJlX3JvdXRlX2NhcF9mYWN0b3IpIGRlZl9jYXBfZmFjdG9yCi0gICAgICAgICBzZXQgbWFwKHByZV9yb3V0ZV9jbGtfY2FwX2ZhY3RvcikgZGVmX2Nsa19jYXBfZmFjdG9yCi0gICAgICAgICBzZXQgbWFwKHBvc3Rfcm91dGVfcmVzX2ZhY3RvcikgZGV0X3Jlc19mYWN0b3IKLSAgICAgICAgIHNldCBtYXAocG9zdF9yb3V0ZV9jbGtfcmVzX2ZhY3RvcikgZGV0X2Nsa19yZXNfZmFjdG9yCi0gICAgICAgICBzZXQgbWFwKHBvc3Rfcm91dGVfY2FwX2ZhY3RvcikgZGV0X2NhcF9mYWN0b3IKLSAgICAgICAgIHNldCBtYXAocG9zdF9yb3V0ZV9jbGtfY2FwX2ZhY3RvcikgZGV0X2Nsa19jYXBfZmFjdG9yCi0gICAgICAgICBzZXQgbWFwKHBvc3Rfcm91dGVfeGNhcF9mYWN0b3IpIHhjYXBfZmFjdG9yCi0KLSAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyh2aWV3X2RlZmluaXRpb25fdGNsKV0gJiYgIVtpbmZvIGV4aXN0cyB2YXJzKHBhcnNlZF92aWV3X2RlZmluaXRpb25fdGNsKV19IHsKLSAgICAgICAgICAgIGlmIHshW2ZpbGUgZXhpc3RzICR2YXJzKHZpZXdfZGVmaW5pdGlvbl90Y2wpXX0gewotICAgICAgICAgICAgICAgcHV0cyAiPEZGPiBFUlJPUjogVmlldyBkZWZpbml0aW9uIGZpbGUgJHZhcnModmlld19kZWZpbml0aW9uX3RjbCkgZG9lcyBub3QgZXhpc3QgLi4uIGNhbm5vdCBjb250aW51ZSIKLSAgICAgICAgICAgICAgIGV4aXQKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHNvdXJjZSAkdmFycyhzY3JpcHRfcGF0aCkvRVRDL0lOTk9WVVMvb3ZlcmxheS50Y2wKLSAgICAgICAgICAgIHB1dHMgIjxGRj4gUGFyc2luZyB1c2VyIHZpZXcgZGVmaW5pdGlvbiBmaWxlIC4uLiIKLSAgICAgICAgICAgIHNldCByYyBbY2F0Y2gge3NvdXJjZSAkdmFycyh2aWV3X2RlZmluaXRpb25fdGNsKX1dCi0jICAgICAgICAgICAgcHV0cyAiLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIKLSAgICAgICAgICAgIGlmIHskdmFycyhub3Z1cyl9IHsKLSAgICAgICAgICAgICAgIGZvcmVhY2ggdmFyICJsaWJyYXJ5X3NldHMgcmNfY29ybmVycyBkZWxheV9jb3JuZXJzIHRpbWluZ19jb25kaXRpb25zIHNldHVwX2FuYWx5c2lzX3ZpZXdzIGhvbGRfYW5hbHlzaXNfdmlld3MgcG93ZXJfZG9tYWlucyIgewotICAgICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJHZhcildfSB7Ci0gICAgICAgICAgICAgICAgICAgc2V0IGluZm9zKCR2YXJzKGluZm9fY291bnQpKSAiVmFyaWFibGUgdmFycygkdmFyKSBoYXMgYmVlbiBzZXQgdG8gXCIkdmFycygkdmFyKVwiIgotICAgICAgICAgICAgICAgICAgIGluY3IgdmFycyhpbmZvX2NvdW50KQotICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIGZvcmVhY2ggdmFyICJsaWJyYXJ5X3NldHMgcmNfY29ybmVycyBkZWxheV9jb3JuZXJzIHNldHVwX2FuYWx5c2lzX3ZpZXdzIGhvbGRfYW5hbHlzaXNfdmlld3MgcG93ZXJfZG9tYWlucyIgewotICAgICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJHZhcildfSB7Ci0gICAgICAgICAgICAgICAgICAgc2V0IGluZm9zKCR2YXJzKGluZm9fY291bnQpKSAiVmFyaWFibGUgdmFycygkdmFyKSBoYXMgYmVlbiBzZXQgdG8gXCIkdmFycygkdmFyKVwiIgotICAgICAgICAgICAgICAgICAgIGluY3IgdmFycyhpbmZvX2NvdW50KQotICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgfQotIyAgICAgICAgICAgIHB1dHMgJHJjCi0jICAgICAgICAgICAgcHV0cyAiLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIKLSAgICAgICAgICAgIHNldCB2YXJzKHBhcnNlZF92aWV3X2RlZmluaXRpb25fdGNsKSB0cnVlCi0gICAgICAgICB9Ci0KLSMgICAgICAgICBpZiB7IVtpbmZvIGV4aXN0cyB2YXJzKHZpZXdfZGVmaW5pdGlvbl90Y2wpXX0gewotCi0gICAgICAgICAgICBmb3JlYWNoIHJjX2Nvcm5lciAkdmFycyhyY19jb3JuZXJzKSB7Ci0gICAgICAgICAgICAgICBmb3JlYWNoIG9wdGlvbiAicHJlX3JvdXRlX3Jlc19mYWN0b3IgcHJlX3JvdXRlX2Nsa19yZXNfZmFjdG9yIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3N0X3JvdXRlX3Jlc19mYWN0b3IgcG9zdF9yb3V0ZV9jbGtfcmVzX2ZhY3RvciBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJlX3JvdXRlX2NhcF9mYWN0b3IgcHJlX3JvdXRlX2Nsa19jYXBfZmFjdG9yIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3N0X3JvdXRlX2NhcF9mYWN0b3IgcG9zdF9yb3V0ZV9jbGtfY2FwX2ZhY3RvciBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zdF9yb3V0ZV94Y2FwX2ZhY3RvciIgewotICAgICAgICAgICAgICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycygkcmNfY29ybmVyLCRvcHRpb24pXSAmJiBbaW5mbyBleGlzdHMgdmFycygkcmNfY29ybmVyLCRtYXAoJG9wdGlvbikpXX0gewotICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICBJTkZPOiBWYXJpYWJsZSAkbWFwKCRvcHRpb24pIGhhcyBiZWVuIGNoYW5nZWQgdG8gJG9wdGlvbiAuLi4gcGxlYXNlIHVwZGF0ZVxuIgotICAgICAgICAgICAgICAgICAgICAgc2V0IGluZm9zKCR2YXJzKGluZm9fY291bnQpKSAiVmFyaWFibGUgJG1hcCgkb3B0aW9uKSBoYXMgYmVlbiBjaGFuZ2VkIHRvICRvcHRpb24gLi4uIHBsZWFzZSB1cGRhdGUiCi0gICAgICAgICAgICAgICAgICAgICBpbmNyIHZhcnMoaW5mb19jb3VudCkKLSAgICAgICAgICAgICAgICAgICAgIHNldCB2YXJzKCRyY19jb3JuZXIsJG9wdGlvbikgJHZhcnMoJHJjX2Nvcm5lciwkbWFwKCRvcHRpb24pKQotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgCi0gICAgICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAgICAjIFRoZSBmb2xsb3dpbmcgd2lsbCBiZSB1c2VkIHRvIHNlZWQgdGhlIGNvbmZpZyBmaWxlCi0gICAgICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAKLSAgICAgICAgICAgIGlmIHshW0ZGOjppc19scF9mbG93XX0gewotCi0gICAgICAgICAgICAgICBzZXQgbWF4X2xpYnMgW2xpc3RdCi0gICAgICAgICAgICAgICBzZXQgbWluX2xpYnMgW2xpc3RdCi0gICAKLSAgICAgICAgICAgICAgIHNldCBjb3VudCAwCi0gICAKLSAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkdmFycygkdmFycyhkZWZhdWx0X3NldHVwX3ZpZXcpLGRlbGF5X2Nvcm5lciksbGlicmFyeV9zZXQpXX0gewotICAgICAgICAgICAgICAgICAgZm9yZWFjaCBsaWIgJHZhcnMoJHZhcnMoJHZhcnMoJHZhcnMoZGVmYXVsdF9zZXR1cF92aWV3KSxkZWxheV9jb3JuZXIpLGxpYnJhcnlfc2V0KSx0aW1pbmcpIHsKLSAgICAgICAgICAgICAgICAgICAgIGlmIHtbbHNlYXJjaCAkbWF4X2xpYnMgJGxpYl0gPT0gLTF9IHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGxhcHBlbmQgbWF4X2xpYnMgJGxpYgotICAgICAgICAgICAgICAgICAgICAgICAgaW5jciBjb3VudAotICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkdmFycygkdmFycyhkZWZhdWx0X3NldHVwX3ZpZXcpLGRlbGF5X2Nvcm5lciksbGF0ZV9saWJyYXJ5X3NldCldfSB7Ci0gICAgICAgICAgICAgICAgICAgICBmb3JlYWNoIGxpYiAkdmFycygkdmFycygkdmFycygkdmFycyhkZWZhdWx0X3NldHVwX3ZpZXcpLGRlbGF5X2Nvcm5lciksbGF0ZV9saWJyYXJ5X3NldCksdGltaW5nKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiB7W2xzZWFyY2ggJG1heF9saWJzICRsaWJdID09IC0xfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICBsYXBwZW5kIG1heF9saWJzICRsaWIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGluY3IgY291bnQKLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIH0KLSAgIAotICAgICAgICAgICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycyh0aW1lbGliLG1heCldfSB7Ci0gICAgICAgICAgICAgICAgICBzZXQgdmFycyh0aW1lbGliLG1heCkgJG1heF9saWJzCi0gICAgICAgICAgICAgICB9Ci0gICAKLSAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkdmFycygkdmFycyhkZWZhdWx0X2hvbGRfdmlldyksZGVsYXlfY29ybmVyKSxsaWJyYXJ5X3NldCldfSB7Ci0gICAgICAgICAgICAgICAgICBmb3JlYWNoIGxpYiAkdmFycygkdmFycygkdmFycygkdmFycyhkZWZhdWx0X2hvbGRfdmlldyksZGVsYXlfY29ybmVyKSxsaWJyYXJ5X3NldCksdGltaW5nKSB7Ci0gICAgICAgICAgICAgICAgICAgICBpZiB7W2xzZWFyY2ggJG1pbl9saWJzICRsaWJdID09IC0xfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBsYXBwZW5kIG1pbl9saWJzICRsaWIKLSAgICAgICAgICAgICAgICAgICAgICAgIGluY3IgY291bnQKLSAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJHZhcnMoJHZhcnMoZGVmYXVsdF9ob2xkX3ZpZXcpLGRlbGF5X2Nvcm5lciksZWFybHlfbGlicmFyeV9zZXQpXX0gewotICAgICAgICAgICAgICAgICAgICAgZm9yZWFjaCBsaWIgJHZhcnMoJHZhcnMoJHZhcnMoJHZhcnMoZGVmYXVsdF9ob2xkX3ZpZXcpLGRlbGF5X2Nvcm5lciksZWFybHlfbGlicmFyeV9zZXQpLHRpbWluZykgewotICAgICAgICAgICAgICAgICAgICAgICAgaWYge1tsc2VhcmNoICRtaW5fbGlicyAkbGliXSA9PSAtMX0gewotICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFwcGVuZCBtaW5fbGlicyAkbGliCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBpbmNyIGNvdW50Ci0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICB9Ci0gICAKLSAgICAgICAgICAgICAgIGlmIHshW2luZm8gZXhpc3RzIHZhcnModGltZWxpYixtaW4pXX0gewotICAgICAgICAgICAgICAgICAgc2V0IHZhcnModGltZWxpYixtaW4pICRtaW5fbGlicwotICAgICAgICAgICAgICAgfQotICAgCi0gICAgICAgICAgICAgICBpZiB7IVtpbmZvIGV4aXN0cyB2YXJzKHRpbWVsaWIpXX0gewotICAgICAgICAgICAgICAgICAgc2V0IHZhcnModGltZWxpYikgIiIKLSAgICAgICAgICAgICAgIH0KLSAgIAotICAgICAgICAgICAgICAgc2V0IHZhcnMoY2RiX2ZpbGUpICIiCi0gICAgICAgICAgICAgICBzZXQgdmFycyhjZGJfZmlsZSxtaW4pICIiCi0gICAgICAgICAgICAgICBzZXQgdmFycyhjZGJfZmlsZSxtYXgpICIiCi0gICAKLSAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkdmFycygkdmFycyhkZWZhdWx0X3NldHVwX3ZpZXcpLGRlbGF5X2Nvcm5lciksbGlicmFyeV9zZXQpXX0gewotICAgICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCR2YXJzKCR2YXJzKCR2YXJzKGRlZmF1bHRfc2V0dXBfdmlldyksZGVsYXlfY29ybmVyKSxsaWJyYXJ5X3NldCksc2kpXX0gewotICAgICAgICAgICAgICAgICAgICAgc2V0IHZhcnMoY2RiX2ZpbGUsbWF4KSAkdmFycygkdmFycygkdmFycygkdmFycyhkZWZhdWx0X3NldHVwX3ZpZXcpLGRlbGF5X2Nvcm5lciksbGlicmFyeV9zZXQpLHNpKQotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgfSBlbHNlaWYge1tpbmZvIGV4aXN0cyB2YXJzKCR2YXJzKCR2YXJzKGRlZmF1bHRfc2V0dXBfdmlldyksZGVsYXlfY29ybmVyKSxsYXRlX2xpYnJhcnlfc2V0KV19IHsKLSAgICAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgYXJzKCR2YXJzKCR2YXJzKCR2YXJzKGRlZmF1bHRfc2V0dXBfdmlldyksZGVsYXlfY29ybmVyKSxsYXRlX2xpYnJhcnlfc2V0KSxzaSldfSB7Ci0gICAgICAgICAgICAgICAgICAgICBzZXQgdmFycyhjZGJfZmlsZSxtYXgpICR2YXJzKCR2YXJzKCR2YXJzKCR2YXJzKGRlZmF1bHRfc2V0dXBfdmlldyksZGVsYXlfY29ybmVyKSxsYXRlX2xpYnJhcnlfc2V0KSxzaSkKLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICBzZXQgdmFycyhjZGJfZmlsZSxtYXgpICIiCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJHZhcnMoJHZhcnMoZGVmYXVsdF9ob2xkX3ZpZXcpLGRlbGF5X2Nvcm5lciksbGlicmFyeV9zZXQpXX0gewotICAgICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCR2YXJzKCR2YXJzKCR2YXJzKGRlZmF1bHRfaG9sZF92aWV3KSxkZWxheV9jb3JuZXIpLGxpYnJhcnlfc2V0KSxzaSldfSB7Ci0gICAgICAgICAgICAgICAgICAgICBzZXQgdmFycyhjZGJfZmlsZSxtaW4pICR2YXJzKCR2YXJzKCR2YXJzKCR2YXJzKGRlZmF1bHRfaG9sZF92aWV3KSxkZWxheV9jb3JuZXIpLGxpYnJhcnlfc2V0KSxzaSkKLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIH0gZWxzZWlmIHtbaW5mbyBleGlzdHMgdmFycygkdmFycygkdmFycyhkZWZhdWx0X2hvbGRfdmlldyksZGVsYXlfY29ybmVyKSxlYXJseV9saWJyYXJ5X3NldCldfSB7Ci0gICAgICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJHZhcnMoJHZhcnMoJHZhcnMoZGVmYXVsdF9ob2xkX3ZpZXcpLGRlbGF5X2Nvcm5lciksZWFybHlfbGlicmFyeV9zZXQpLHNpKV19IHsKLSAgICAgICAgICAgICAgICAgICAgIHNldCB2YXJzKGNkYl9maWxlLG1pbikgJHZhcnMoJHZhcnMoJHZhcnMoJHZhcnMoZGVmYXVsdF9ob2xkX3ZpZXcpLGRlbGF5X2Nvcm5lciksZWFybHlfbGlicmFyeV9zZXQpLHNpKQotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgIHNldCB2YXJzKGNkYl9maWxlLG1pbikgIiIKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkdmFycygkdmFycyhkZWZhdWx0X3NldHVwX3ZpZXcpLGNvbnN0cmFpbnRfbW9kZSkscHJlX2N0c19zZGMpXX0gewotICAgICAgICAgICAgICAgICAgaWYgeyR2YXJzKGZsb3cpICE9ICJtbW1jIn0gewotICAgICAgICAgICAgICAgICAgICAgc2V0IHZhcnModGltaW5nY29uX2ZpbGUpICR2YXJzKCR2YXJzKCR2YXJzKGRlZmF1bHRfc2V0dXBfdmlldyksY29uc3RyYWludF9tb2RlKSxwcmVfY3RzX3NkYykKLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIHNldCB2YXJzKHByZV9jdHNfc2RjKSAkdmFycygkdmFycygkdmFycyhkZWZhdWx0X3NldHVwX3ZpZXcpLGNvbnN0cmFpbnRfbW9kZSkscHJlX2N0c19zZGMpCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJHZhcnMoJHZhcnMoZGVmYXVsdF9zZXR1cF92aWV3KSxjb25zdHJhaW50X21vZGUpLHByZV9jdHNfaWxtX3NkYyldfSB7Ci0gICAgICAgICAgICAgICAgICBpZiB7JHZhcnMoZmxvdykgIT0gIm1tbWMifSB7Ci0gICAgICAgICAgICAgICAgICAgICBzZXQgdmFycyh0aW1pbmdjb25fZmlsZSxmdWxsKSAkdmFycygkdmFycygkdmFycyhkZWZhdWx0X3NldHVwX3ZpZXcpLGNvbnN0cmFpbnRfbW9kZSkscHJlX2N0c19pbG1fc2RjKQotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCR2YXJzKCR2YXJzKGRlZmF1bHRfc2V0dXBfdmlldyksY29uc3RyYWludF9tb2RlKSxpbmNyX2N0c19zZGMpXX0gewotICAgICAgICAgICAgICAgICAgc2V0IHZhcnMoaW5jcl9jdHNfc2RjKSAkdmFycygkdmFycygkdmFycyhkZWZhdWx0X3NldHVwX3ZpZXcpLGNvbnN0cmFpbnRfbW9kZSksaW5jcl9jdHNfc2RjKQotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCR2YXJzKCR2YXJzKGRlZmF1bHRfc2V0dXBfdmlldyksY29uc3RyYWludF9tb2RlKSxwb3N0X2N0c19zZGMpXX0gewotICAgICAgICAgICAgICAgICAgc2V0IHZhcnMocG9zdF9jdHNfc2RjKSAkdmFycygkdmFycygkdmFycyhkZWZhdWx0X3NldHVwX3ZpZXcpLGNvbnN0cmFpbnRfbW9kZSkscG9zdF9jdHNfc2RjKQotICAgICAgICAgICAgICAgfQotICAgCi0gICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJHZhcnMoJHZhcnMoJHZhcnMoZGVmYXVsdF9ob2xkX3ZpZXcpLGRlbGF5X2Nvcm5lcikscmNfY29ybmVyKSxjYXBfdGFibGUpXSAmJlwKLSAgICAgICAgICAgICAgICAgICBbaW5mbyBleGlzdHMgdmFycygkdmFycygkdmFycygkdmFycyhkZWZhdWx0X3NldHVwX3ZpZXcpLGRlbGF5X2Nvcm5lcikscmNfY29ybmVyKSxjYXBfdGFibGUpXX0gewotICAgICAgICAgICAgICAgICAgc2V0IHZhcnMoY2FwdGJsX2ZpbGUpIFtjb25jYXQgXAotICAgICAgICAgICAgICAgICAgICAgICAiLWJlc3QiICR2YXJzKCR2YXJzKCR2YXJzKCR2YXJzKGRlZmF1bHRfaG9sZF92aWV3KSxkZWxheV9jb3JuZXIpLHJjX2Nvcm5lciksY2FwX3RhYmxlKSBcCi0gICAgICAgICAgICAgICAgICAgICAgICItd29yc3QiICR2YXJzKCR2YXJzKCR2YXJzKCR2YXJzKGRlZmF1bHRfc2V0dXBfdmlldyksZGVsYXlfY29ybmVyKSxyY19jb3JuZXIpLGNhcF90YWJsZSkgXAotICAgICAgICAgICAgICAgICAgICAgIF0KLSAgICAgICAgICAgICAgICAgIHNldCB2YXJzKHdjX2NhcF90YWJsZSkgJHZhcnMoJHZhcnMoJHZhcnMoJHZhcnMoZGVmYXVsdF9zZXR1cF92aWV3KSxkZWxheV9jb3JuZXIpLHJjX2Nvcm5lciksY2FwX3RhYmxlKQotICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkdmFycygkdmFycygkdmFycyhkZWZhdWx0X3NldHVwX3ZpZXcpLGRlbGF5X2Nvcm5lcikscmNfY29ybmVyKSxjYXBfdGFibGUpXX0gewotICAgICAgICAgICAgICAgICAgICAgIHNldCB2YXJzKGNhcHRibF9maWxlKSBbY29uY2F0IFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIi1iZXN0IiAkdmFycygkdmFycygkdmFycygkdmFycyhkZWZhdWx0X3NldHVwX3ZpZXcpLGRlbGF5X2Nvcm5lcikscmNfY29ybmVyKSxjYXBfdGFibGUpIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIi13b3JzdCIgJHZhcnMoJHZhcnMoJHZhcnMoJHZhcnMoZGVmYXVsdF9zZXR1cF92aWV3KSxkZWxheV9jb3JuZXIpLHJjX2Nvcm5lciksY2FwX3RhYmxlKSBcCi0gICAgICAgICAgICAgICAgICAgICAgXQotICAgICAgICAgICAgICAgICAgICAgIHNldCB2YXJzKHdjX2NhcF90YWJsZSkgJHZhcnMoJHZhcnMoJHZhcnMoJHZhcnMoZGVmYXVsdF9zZXR1cF92aWV3KSxkZWxheV9jb3JuZXIpLHJjX2Nvcm5lciksY2FwX3RhYmxlKQotICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgIHNldCB2YXJzKGNhcHRibF9maWxlKSAiIgotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIHNldCB2YXJzKHRpbWVsaWIpICIiCi0gICAgICAgICAgICAgICBzZXQgdmFycyhjZGJfZmlsZSkgIiIKLSAgICAgICAgICAgICAgIHNldCB2YXJzKHRpbWVsaWIsbWF4KSAiIgotICAgICAgICAgICAgICAgc2V0IHZhcnMoY2RiX2ZpbGUsbWF4KSAiIgotICAgICAgICAgICAgICAgc2V0IHZhcnModGltZWxpYixtaW4pICIiCi0gICAgICAgICAgICAgICBzZXQgdmFycyhjZGJfZmlsZSxtaW4pICIiCi0gICAgICAgICAgICAgICBzZXQgZm91bmRfbWF4IDAgCi0gICAgICAgICAgICAgICBzZXQgZm91bmRfbWluIDAgCi0gICAKLSAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhzZXR1cF9hbmFseXNpc192aWV3cyldICYmIFtpbmZvIGV4aXN0cyB2YXJzKGhvbGRfYW5hbHlzaXNfdmlld3MpXX0gewotICAgICAgICAgICAgICAgICAgZm9yZWFjaCB2aWV3ICR2YXJzKHNldHVwX2FuYWx5c2lzX3ZpZXdzKSB7Ci0gICAgICAgICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJHZhcnMoJHZpZXcsZGVsYXlfY29ybmVyKSxsaWJyYXJ5X3NldCldfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJHZhcnMoJHZhcnMoJHZpZXcsZGVsYXlfY29ybmVyKSxsaWJyYXJ5X3NldCksdGltaW5nKV19IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcmVhY2ggZmlsZSAkdmFycygkdmFycygkdmFycygkdmlldyxkZWxheV9jb3JuZXIpLGxpYnJhcnlfc2V0KSx0aW1pbmcpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIHtbbHNlYXJjaCAkdmFycyh0aW1lbGliLG1heCkgJGZpbGVdID09IC0xfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXBwZW5kIHZhcnModGltZWxpYixtYXgpICRmaWxlCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXQgZm91bmRfbWF4IDEKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICBwdXRzICI8RkY+IFdBUk5JTkc6IFZhcmlhYmxlIHZhcnMoJHZhcnMoJHZhcnMoJHZpZXcsZGVsYXlfY29ybmVyKSxsaWJyYXJ5X3NldCksdGltaW5nKSBub3QgZGVmaW5lZCIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldCB3YXJuaW5ncygkdmFycyh3YXJuaW5nX2NvdW50KSkgIlZhcmlhYmxlIHZhcnMoJHZhcnMoJHZhcnMoJHZpZXcsZGVsYXlfY29ybmVyKSxsaWJyYXJ5X3NldCksdGltaW5nKSBub3QgZGVmaW5lZCIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGluY3IgdmFycyh3YXJuaW5nX2NvdW50KQotICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIHshW2luZm8gZXhpc3RzIHZhcnMoJHZhcnMoJHZpZXcsZGVsYXlfY29ybmVyKSxlYXJseV9saWJyYXJ5X3NldCldfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHV0cyAiPEZGPiBXQVJOSU5HOiBWYXJpYWJsZSB2YXJzKCR2YXJzKCR2aWV3LGRlbGF5X2Nvcm5lciksbGlicmFyeV9zZXQpIG5vdCBkZWZpbmVkIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldCB3YXJuaW5ncygkdmFycyh3YXJuaW5nX2NvdW50KSkgIlZhcmlhYmxlIHZhcnMoJHZhcnMoJHZpZXcsZGVsYXlfY29ybmVyKSxsaWJyYXJ5X3NldCkgbm90IGRlZmluZWQiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5jciB2YXJzKHdhcm5pbmdfY291bnQpCi0gICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIGZvcmVhY2ggdmlldyAkdmFycyhob2xkX2FuYWx5c2lzX3ZpZXdzKSB7Ci0gICAgICAgICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJHZhcnMoJHZpZXcsZGVsYXlfY29ybmVyKSxsaWJyYXJ5X3NldCldfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJHZhcnMoJHZhcnMoJHZpZXcsZGVsYXlfY29ybmVyKSxsaWJyYXJ5X3NldCksdGltaW5nKV19IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcmVhY2ggZmlsZSAkdmFycygkdmFycygkdmFycygkdmlldyxkZWxheV9jb3JuZXIpLGxpYnJhcnlfc2V0KSx0aW1pbmcpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIHtbbHNlYXJjaCAkdmFycyh0aW1lbGliLG1pbikgJGZpbGVdID09IC0xfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXBwZW5kIHZhcnModGltZWxpYixtaW4pICRmaWxlCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXQgZm91bmRfbWluIDEKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICBwdXRzICI8RkY+IFdBUk5JTkc6IHZhcnMoJHZhcnMoJHZhcnMoJHZpZXcsZGVsYXlfY29ybmVyKSxsaWJyYXJ5X3NldCksdGltaW5nKSBub3QgZGVmaW5lZCIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldCB3YXJuaW5ncygkdmFycyh3YXJuaW5nX2NvdW50KSkgIlZhcmlhYmxlIHZhcnMoJHZhcnMoJHZhcnMoJHZpZXcsZGVsYXlfY29ybmVyKSxsaWJyYXJ5X3NldCksdGltaW5nKSBub3QgZGVmaW5lZCIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGluY3IgdmFycyh3YXJuaW5nX2NvdW50KQotICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIHshW2luZm8gZXhpc3RzIHZhcnMoJHZhcnMoJHZpZXcsZGVsYXlfY29ybmVyKSxlYXJseV9saWJyYXJ5X3NldCldfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICBwdXRzICI8RkY+IFdBUk5JTkc6IHZhcnMoJHZhcnMoJHZpZXcsZGVsYXlfY29ybmVyKSxlYXJseV9saWJyYXJ5X3NldCkgbm90IGRlZmluZWQiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBzZXQgd2FybmluZ3MoJHZhcnMod2FybmluZ19jb3VudCkpICJWYXJpYWJsZSB2YXJzKCR2YXJzKCR2aWV3LGRlbGF5X2Nvcm5lciksZWFybHlfbGlicmFyeV9zZXQpIG5vdCBkZWZpbmVkIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5jciB2YXJzKHdhcm5pbmdfY291bnQpCi0gICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKHBvd2VyX2FuYWx5c2lzX3ZpZXcpXSAmJiAoJHZhcnMocG93ZXJfYW5hbHlzaXNfdmlldykgIT0gIiIpfSB7Ci0gICAgICAgICAgICAgICAgICAgICBzZXQgdmlldyAkdmFycyhwb3dlcl9hbmFseXNpc192aWV3KQotICAgICAgICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCR2YXJzKCR2aWV3LGRlbGF5X2Nvcm5lciksbGlicmFyeV9zZXQpXX0gewotICAgICAgICAgICAgICAgICAgICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycygkdmFycygkdmFycygkdmlldyxkZWxheV9jb3JuZXIpLGxpYnJhcnlfc2V0KSx0aW1pbmcpXX0gewotICAgICAgICAgICAgICAgICAgICAgICAgICAgcHV0cyAiPEZGPiBXQVJOSU5HOiB2YXJzKCR2YXJzKCR2YXJzKCR2aWV3LGRlbGF5X2Nvcm5lciksbGlicmFyeV9zZXQpLHRpbWluZykgbm90IGRlZmluZWQiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBzZXQgd2FybmluZ3MoJHZhcnMod2FybmluZ19jb3VudCkpICJWYXJpYWJsZSB2YXJzKCR2YXJzKCR2YXJzKCR2aWV3LGRlbGF5X2Nvcm5lciksbGlicmFyeV9zZXQpLHRpbWluZykgbm90IGRlZmluZWQiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBpbmNyIHZhcnMod2FybmluZ19jb3VudCkKLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiB7IVtpbmZvIGV4aXN0cyB2YXJzKCR2YXJzKCR2aWV3LGRlbGF5X2Nvcm5lciksZWFybHlfbGlicmFyeV9zZXQpXX0gewotICAgICAgICAgICAgICAgICAgICAgICAgICAgcHV0cyAiPEZGPiBXQVJOSU5HOiB2YXJzKCR2YXJzKCR2aWV3LGRlbGF5X2Nvcm5lciksZWFybHlfbGlicmFyeV9zZXQpIG5vdCBkZWZpbmVkIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0IHdhcm5pbmdzKCR2YXJzKHdhcm5pbmdfY291bnQpKSAiVmFyaWFibGUgdmFycygkdmFycygkdmlldyxkZWxheV9jb3JuZXIpLGVhcmx5X2xpYnJhcnlfc2V0KSBub3QgZGVmaW5lZCIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGluY3IgdmFycyh3YXJuaW5nX2NvdW50KQotICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIH0KLSAgIAotICAgICAgICAgICAgICAgaWYgeyEkZm91bmRfbWluIHx8ICEkZm91bmRfbWF4fSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIFdBUk5JTkc6IEVpdGhlciBzZXR1cCBvciBob2xkIGFuYWx5c2lzIHZpZXdzIGluYWRlcXVhdGVseSBkZWZpbmVkIgotICAgICAgICAgICAgICAgICAgc2V0IHdhcm5pbmdzKCR2YXJzKHdhcm5pbmdfY291bnQpKSAiRWl0aGVyIHNldHVwIG9yIGhvbGQgYW5hbHlzaXMgdmlld3MgaW5hZGVxdWF0ZWx5IGRlZmluZWQiCi0gICAgICAgICAgICAgICAgICBpbmNyIHZhcnMod2FybmluZ19jb3VudCkKLSAgICAgICAgICAgICAgICAgIHNldCB2YXJzKHRpbWVsaWIsbWluKSAiIgotICAgICAgICAgICAgICAgICAgc2V0IHZhcnModGltZWxpYixtYXgpICIiCi0gICAgICAgICAgICAgICAgICBmb3JlYWNoIGxpYnJhcnlfc2V0ICR2YXJzKGxpYnJhcnlfc2V0cykgewotICAgICAgICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCRsaWJyYXJ5X3NldCx0aW1pbmcpXX0gewotICAgICAgICAgICAgICAgICAgICAgICAgc2V0IHZhcnModGltZWxpYikgW2NvbmNhdCAkdmFycyh0aW1lbGliKSAkdmFycygkbGlicmFyeV9zZXQsdGltaW5nKV0KLSAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkbGlicmFyeV9zZXQsc2kpXX0gewotICAgICAgICAgICAgICAgICAgICAgICAgc2V0IHZhcnMoY2RiX2ZpbGUpIFtjb25jYXQgJHZhcnMoY2RiX2ZpbGUpICR2YXJzKCRsaWJyYXJ5X3NldCxzaSldCi0gICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICBzZXQgdmFycyhjYXB0YmxfZmlsZSkgIiIKLSAgICAgICAgICAgICAgIHNldCB2YXJzKHRpbWluZ2Nvbl9maWxlKSAiIgotICAgICAgIyAgICAgICAgICAgc2V0IHZhcnMocHJlX3JvdXRlX3Jlc19mYWN0b3IpIDEuMAotICAgICAgIyAgICAgICAgICAgc2V0IHZhcnMocG9zdF9yb3V0ZV9yZXNfZmFjdG9yKSAxLjAKLSAgICAgICMgICAgICAgICAgIHNldCB2YXJzKHByZV9yb3V0ZV9jYXBfZmFjdG9yKSAxLjAKLSAgICAgICMgICAgICAgICAgIHNldCB2YXJzKHBvc3Rfcm91dGVfY2FwX2ZhY3RvcikgMS4wCi0gICAgICAjICAgICAgICAgICBzZXQgdmFycyhwcmVfcm91dGVfY2xrX3Jlc19mYWN0b3IpIDEuMAotICAgICAgIyAgICAgICAgICAgc2V0IHZhcnMocG9zdF9yb3V0ZV9jbGtfcmVzX2ZhY3RvcikgMS4wCi0gICAgICAjICAgICAgICAgICBzZXQgdmFycyhwcmVfcm91dGVfY2xrX2NhcF9mYWN0b3IpIDEuMAotICAgICAgIyAgICAgICAgICAgc2V0IHZhcnMocG9zdF9yb3V0ZV9jbGtfY2FwX2ZhY3RvcikgMS4wCi0gICAgICAjICAgICAgICAgICBzZXQgdmFycyhwb3N0X3JvdXRlX3hjYXBfZmFjdG9yKSAxLjAKLSAgICAgICMgICAgICAgICBzZXQgdmFycyhxeHRlY2hfZmlsZSkgIiIKLSAgICAgICMgICAgICAgICBzZXQgdmFycyhxeGNvbmZfZmlsZSkgIiIKLSAgICAgICMgICAgICAgICBzZXQgdmFycyhxeGxpYl9maWxlKSAiIgotICAgICAgIyAgICAgICAgIHNldCB2YXJzKHF4bGF5ZXJtYXBfZmlsZSkgIiIKLSAgICAgICAgICAgIH0KLSAgIAotICAgICAgICAgICAgc2V0IG1hcChxeF90ZWNoX2ZpbGUpIHF4dGVjaF9maWxlCi0gICAgICAgICAgICBzZXQgbWFwKHF4X2NvbmZfZmlsZSkgcXhjb25mX2ZpbGUKLSAgICAgICAgICAgIHNldCBtYXAocXhfbGliX2ZpbGUpIHF4bGliX2ZpbGUKLSAgIAotICAgICAgICAgICAgZm9yZWFjaCBvcHRpb24gInF4X3RlY2hfZmlsZSBxeF9jb25mX2ZpbGUgcXhfbGliX2ZpbGUiIHsKLSAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkdmFycygkdmFycygkdmFycyhkZWZhdWx0X3NldHVwX3ZpZXcpLGRlbGF5X2Nvcm5lcikscmNfY29ybmVyKSwkb3B0aW9uKV19IHsKLSAgICAgICAgICAgICAgICAgIHNldCB2YXJzKCRtYXAoJG9wdGlvbikpICR2YXJzKCR2YXJzKCR2YXJzKCR2YXJzKGRlZmF1bHRfc2V0dXBfdmlldyksZGVsYXlfY29ybmVyKSxyY19jb3JuZXIpLCRvcHRpb24pCi0gICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgc2V0IHZhcnMoJG1hcCgkb3B0aW9uKSkgIiIKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIHshW2luZm8gZXhpc3RzIHZhcnMocXhfbGF5ZXJtYXBfZmlsZSldfSB7Ci0gICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMocXJjX2xheWVyX21hcCldfSB7Ci0gICAgICAgICAgICAgICAgICBzZXQgdmFycyhxeGxheWVybWFwX2ZpbGUpICR2YXJzKHFyY19sYXllcl9tYXApCi0gICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgc2V0IHZhcnMocXhsYXllcm1hcF9maWxlKSAiIgotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIHNldCB2YXJzKHF4bGF5ZXJtYXBfZmlsZSkgJHZhcnMocXhfbGF5ZXJtYXBfZmlsZSkKLSAgICAgICAgICAgICAgIHNldCB2YXJzKHFyY19sYXllcl9tYXApICR2YXJzKHF4X2xheWVybWFwX2ZpbGUpIAotICAgICAgICAgICAgfQotIyAgICAgICAgIH0KLQotICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgIyBCYWNrd2FyZHMgY29tcGF0aWJpbGl0eQotICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGxlYWthZ2VfZWZmb3J0KV0gJiYgIVtpbmZvIGV4aXN0cyB2YXJzKGxlYWthZ2VfcG93ZXJfZWZmb3J0KV19IHsKLSAgICAgICAgICAgIHNldCB2YXJzKGxlYWthZ2VfcG93ZXJfZWZmb3J0KSAkdmFycyhsZWFrYWdlX2VmZm9ydCkKLSAgICAgICAgIH0KLSAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhlbmFibGVfY3BwcildICYmICgoJHZhcnMoZW5hYmxlX2NwcHIpID09IDApIHx8ICgkdmFycyhlbmFibGVfY3BwcikgPT0gZmFsc2UpKX0gewotICAgICAgICAgICAgc2V0IHZhcnMoZW5hYmxlX2NwcHIpIG5vbmUKLSAgICAgICAgIH0KLSAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhlbmFibGVfY3BwcildICYmICgoJHZhcnMoZW5hYmxlX2NwcHIpID09IDEpIHx8ICgkdmFycyhlbmFibGVfY3BwcikgPT0gdHJ1ZSkpfSB7Ci0gICAgICAgICAgICBzZXQgdmFycyhlbmFibGVfY3BwcikgYm90aAotICAgICAgICAgfQotICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGRlZl9maWxlKV19IHsKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgV0FSTklORzogVmFyaWFibGUgZGVmX2ZpbGUgaGFzIGJlZW4gY2hhbmdlZCB0byBkZWZfZmlsZXMgLi4uIHBsZWFzZSB1cGRhdGVcbiIKLSAgICAgICAgICAgIHNldCB3YXJuaW5ncygkdmFycyh3YXJuaW5nX2NvdW50KSkgIlZhcmlhYmxlIGRlZl9maWxlIGhhcyBiZWVuIGNoYW5nZWQgdG8gZGVmX2ZpbGVzIC4uLiBwbGVhc2UgdXBkYXRlIgotICAgICAgICAgICAgaW5jciB2YXJzKHdhcm5pbmdfY291bnQpCi0gICAgICAgICAgICBzZXQgdmFycyhkZWZfZmlsZXMpICR2YXJzKGRlZl9maWxlKQotICAgICAgICAgfQotCi0gICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAjIFNlZWQgdGhlIHJlc3Qgb2YgdGhlIGNvbmZpZyB2YXJpYWJsZXMgYWxsb3dpbmcgdXNlciBvdmVycmlkZXMgLi4uCi0gICAjIERlZmF1bHQgdmFsdWVzIGZvciBhbGwgdmFyaWFibGVzIGFyZSBpbiBkZWZhdWx0cy50Y2wKLSAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLQotICAgICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycyhzY3JpcHRfcGF0aCldfSB7Ci0gICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoc2NyaXB0X3Jvb3QpXX0gewotICAgICAgICAgICAgICAgc2V0IHZhcnMoc2NyaXB0X3BhdGgpICR2YXJzKHNjcmlwdF9yb290KQotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIHB1dHMgIjxGRj4gRVJST1I6IFZhcmlhYmxlIHZhcnMoc2NyaXB0X3Jvb3QpIG5vdCBkZWZpbmVkIgotICAgICAgICAgICAgICAgZXhpdCAgMQotICAgICAgICAgICAgfQotICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIGlmIHshW2luZm8gZXhpc3RzIHZhcnMoc2NyaXB0X3Jvb3QpXX0gewotICAgICAgICAgICAgICAgc2V0IHZhcnMoc2NyaXB0X3Jvb3QpICR2YXJzKHNjcmlwdF9wYXRoKQotICAgICAgICAgICAgfQotICAgICAgICAgfQotICAgICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycyhzZXR1cF9wYXRoKV19IHsKLSAgICAgICAgICAgICAgIHNldCB2YXJzKHNldHVwX3BhdGgpICIuIgotICAgICAgICAgfQotICAgICAgICAgaWYge1tpbmZvIGNvbW1hbmQgRkZGOjpnZXRfdG9vbF0gbmUgIiIgJiYgW0ZGRjo6Z2V0X3Rvb2xdIGVxICJyYyJ9IHsKLSAgICAgICAgICAgdGNsX3NvdXJjZSAkdmFycyhzY3JpcHRfcGF0aCkvRVRDL0lOTk9WVVMvcmRhX2RlZmF1bHRzLnRjbAotICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgc291cmNlICR2YXJzKHNjcmlwdF9wYXRoKS9FVEMvY29tbW9uX2RlZmF1bHRzLnRjbAotICAgICAgICAgICBzb3VyY2UgJHZhcnMoc2NyaXB0X3BhdGgpL0VUQy9JTk5PVlVTL2RlZmF1bHRzLnRjbAotICAgICAgICAgICBzb3VyY2UgJHZhcnMoc2NyaXB0X3BhdGgpL0VUQy9JTk5PVlVTL3JkYV9kZWZhdWx0cy50Y2wKLSAgICAgICAgIH0KLQotICAgICAgICAgaWYgeyR2YXJzKG5vdnVzKX0gewotICAgICAgICAgICAgRkZfTk9WVVM6OmR1bXBfbm92dXNfYXR0cmlidXRlcwotICAgICAgICAgfQotCi0gICAgICAgICBmb3JlYWNoIG9wdGlvbiBbYXJyYXkgbmFtZXMgcmRhX2RlZmF1bHRzXSB7Ci0gICAgICAgICAgICBpZiB7IVtpbmZvIGV4aXN0cyB2YXJzKCRvcHRpb24pXX0gewotICAgICAgICAgICAgICAgc2V0IHZhcnMoJG9wdGlvbikgJHJkYV9kZWZhdWx0cygkb3B0aW9uKQotICAgICAgICAgICAgfSAgZWxzZSB7Ci0gICAgICAgICAgICAgICBpZiB7JHZhcnMoJG9wdGlvbikgIT0gJHJkYV9kZWZhdWx0cygkb3B0aW9uKX0gewotIyAgICAgICAgICAgICAgICAgIHB1dHMgIiMgPEZGPiBJTkZPOiBVc2VyIG92ZXJyaWRlIG9mICRvcHRpb24gdG8gJHZhcnMoJG9wdGlvbikiCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0KLSAgICAgICAgIGlmIHshW2luZm8gZXhpc3RzIHZhcnMoY3B1c19wZXJfcmVtb3RlX2hvc3QpXSAmJiBbaW5mbyBleGlzdHMgdmFycyhjcHVfcGVyX3JlbW90ZV9ob3N0KV19IHsKLSAgICAgICAgICAgIHB1dHMgIjxGRj4gSU5GTzogU2V0dGluZyAndmFycyhjcHVzX3Blcl9yZW1vdGVfaG9zdCknIHRvICd2YXJzKGNwdV9wZXJfcmVtb3RlX2hvc3QpJyIKLSAgICAgICAgICAgIHB1dHMgIjxGRj4gSU5GTzogICAgICAgICAgICAgICAgICBeIgotICAgICAgICAgICAgcHV0cyAiPEZGPiBJTkZPOiBQbGVhc2UgdXBkYXRlIHlvdXIgc2V0dXAgdG8gY3B1c19wZXJfcmVtb3RlIC4uLiIKLSAgICAgICAgICAgIHNldCB2YXJzKGNwdXNfcGVyX3JlbW90ZV9ob3N0KSAkdmFycyhjcHVfcGVyX3JlbW90ZV9ob3N0KQotICAgICAgICAgfQotCi0gICAgICAgICBpZiB7IVtpbmZvIGV4aXN0cyB2YXJzKGZsZXhtb2RlbF9hcnRfYmFzZWQpXX0gewotICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGZsZXhtb2RlbF9hc19wdG4pXSAmJiAkdmFycyhmbGV4bW9kZWxfYXNfcHRuKX0gewotICAgICAgICAgICAgICAgc2V0IGZsb3dfZGVmYXVsdHMoZmxleG1vZGVsX2FydF9iYXNlZCkgMQotICAgICAgICAgICAgfQotICAgICAgICAgfQotICAgICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycyhoaWdoX3RpbWluZ19lZmZvcnQpXX0gewotICAgICAgICAgICAgc2V0IHZhcnMoaGlnaF90aW1pbmdfZWZmb3J0KSAkZmxvd19kZWZhdWx0cyhoaWdoX3RpbWluZ19lZmZvcnQpCi0gICAgICAgICB9Ci0gICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoY2xvY2tfZWNvKV0gJiYgKCR2YXJzKGNsb2NrX2VjbykgPT0gInBvc3RjdHMiKX0gewotICAgICAgICAgICAgc2V0IHZhcnMoY2xvY2tfZWNvKSAicG9zdF9jdHMiCi0gICAgICAgICB9Ci0gICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoY2xvY2tfZWNvKV0gJiYgKCR2YXJzKGNsb2NrX2VjbykgPT0gInBvc3Ryb3V0ZSIpfSB7Ci0gICAgICAgICAgICBzZXQgdmFycyhjbG9ja19lY28pICJwb3N0X3JvdXRlIgotICAgICAgICAgfQotICAgICAgICAgaWYge1tyZWdleHAgIjkuMSIgJHZhcnModmVyc2lvbildfSB7IAotICAgICAgICAgICAgaWYgeyR2YXJzKGhpZ2hfdGltaW5nX2VmZm9ydCl9IHsKLSAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhjcml0aWNhbF9yYW5nZSldICYmICgkdmFycyhjcml0aWNhbF9yYW5nZSkgIT0gMS4wKX0gewotICAgICAgICAgICAgICAgICAgcHV0cyAiPEZGPiBIaWdoIHRpbWluZyBlZmZvcnQgZW5hYmxlZCBidXQgY3JpdGljYWxfcmFuZ2Ugb3ZlcnJpZGRlbiBieSB1c2VyIHNldHRpbmdzIgotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGNsb2NrX2VjbyldICYmICgkdmFycyhjbG9ja19lY28pICE9ICJwb3N0X2N0cyIpfSB7Ci0gICAgICAgICAgICAgICAgICBwdXRzICI8RkY+IEhpZ2ggdGltaW5nIGVmZm9ydCBlbmFibGVkIGJ1dCBjbG9ja19lY28gb3ZlcnJpZGRlbiBieSB1c2VyIHNldHRpbmdzIgotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGluX3BsYWNlX29wdCldICYmICEkdmFycyhpbl9wbGFjZV9vcHQpfSB7Ci0gICAgICAgICAgICAgICAgICBwdXRzICI8RkY+IEhpZ2ggdGltaW5nIGVmZm9ydCBlbmFibGVkIGJ1dCBpbl9wbGFjZV9vcHQgb3ZlcnJpZGRlbiBieSB1c2VyIHNldHRpbmdzIgotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAgfQotICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGN0c19lbmdpbmUpXSAmJiAoW3N0cmluZyB0b2xvd2VyICR2YXJzKGN0c19lbmdpbmUpXSA9PSAiY3RzIil9IHsKLSAgICAgICAgICAgIHNldCBmbG93X2RlZmF1bHRzKHVwZGF0ZV9pb19sYXRlbmN5KSBmYWxzZQotIyAgICAgICAgICAgIHNldCB2YXJzKGN0cyx1cGRhdGVfdGltaW5nLHNraXApIHRydWUKLSAgICAgICAgIH0KLQotICAgICAgICAgZm9yZWFjaCBvcHRpb24gW2FycmF5IG5hbWVzIGZsb3dfZGVmYXVsdHNdIHsKLSAgICAgICAgICAgIGlmIHshW2luZm8gZXhpc3RzIHZhcnMoJG9wdGlvbildfSB7Ci0gICAgICAgICAgICAgICBzZXQgdmFycygkb3B0aW9uKSAkZmxvd19kZWZhdWx0cygkb3B0aW9uKQotICAgICAgICAgICAgICAgaWYgeyR2YXJzKGhpZ2hfdGltaW5nX2VmZm9ydCkgJiYgW3JlZ2V4cCAiOS4xIiAkdmFycyh2ZXJzaW9uKV19IHsKLSAgICAgICAgICAgICAgICAgIHNldCB2YXJzKGluX3BsYWNlX29wdCkgdHJ1ZQotICAgICAgICAgICAgICAgICAgc2V0IHZhcnMoY3JpdGljYWxfcmFuZ2UpIDEuMAotIyAgICAgICAgICAgICAgICAgIHNldCB2YXJzKHVzZWZ1bF9za2V3KSB0cnVlCi0gICAgICAgICAgICAgICAgICBzZXQgdmFycyhjbG9ja19lY28pIHBvc3RfY3RzCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgc2V0IHVzZXIoJG9wdGlvbikgJHZhcnMoJG9wdGlvbikKLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0KLQotIyAgICAgICAgIGlmIHshW2luZm8gZXhpc3RzIHVzZXIoY2NvcHRfZWZmb3J0KV0gJiYgKCR2YXJzKGN0c19lbmdpbmUpID09ICJjY29wdCIpfSB7Ci0jICAgICAgICAgICAgc2V0IHZhcnMoY2NvcHRfZWZmb3J0KSBsb3cKLSMgICAgICAgICB9Ci0KLSAgICAgICAgIGlmIHshW2luZm8gZXhpc3RzIGZsb3dfZGVmYXVsdHModGltZV9pbmZvX2RiKV19IHsKLSAgICAgICAgICAgIHNldCBmbG93X2RlZmF1bHRzKHRpbWVfaW5mb19kYikgJGZsb3dfZGVmYXVsdHMocnB0X2RpcikvdGltZV9pbmZvLmRiCi0gICAgICAgICB9Ci0gICAgICAgICBpZiB7IVtpbmZvIGV4aXN0cyBmbG93X2RlZmF1bHRzKHRpbWVfaW5mb19mdWxsX3JwdCldfSB7Ci0gICAgICAgICAgICBzZXQgZmxvd19kZWZhdWx0cyh0aW1lX2luZm9fZnVsbF9ycHQpICRmbG93X2RlZmF1bHRzKHJwdF9kaXIpL3RpbWVfaW5mb19mdWxsLnJwdAotICAgICAgICAgfQotICAgICAgICAgaWYgeyFbaW5mbyBleGlzdHMgZmxvd19kZWZhdWx0cyhodG1sX3N1bW1hcnkpXX0gewotICAgICAgICAgICAgc2V0IGZsb3dfZGVmYXVsdHMoaHRtbF9zdW1tYXJ5KSAkZmxvd19kZWZhdWx0cyhycHRfZGlyKS9zdW1tYXJ5Lmh0bWwKLSAgICAgICAgIH0KLQotICAgICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycyhlbmFibGVfc2lfYXdhcmUpXX0gewotIyAgICAgICAgICAgIGlmIHtbcmVnc3ViICJubSIgJHZhcnMocHJvY2VzcykgIiJdIDw9IDY1fSB7Ci0jICAgICAgICAgICAgICAgc2V0IHZhcnMoZW5hYmxlX3NpX2F3YXJlKSB0cnVlCi0jICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIHNldCB2YXJzKGVuYWJsZV9zaV9hd2FyZSkgZmFsc2UKLSMgICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0KLQotICAgICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycyhkYnNfZm9ybWF0KV19IHsKLSAgICAgICAgICAgIGlmIHtbc3RyaW5nIGNvbXBhcmUgLW5vY2FzZSAkdmFycyhuZXRsaXN0X3R5cGUpICJ2ZXJpbG9nIl0+PTB9IHsKLSAgICAgICAgICAgICAgIHNldCB2YXJzKGRic19mb3JtYXQpIGZlCi0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgc2V0IHZhcnMoZGJzX2Zvcm1hdCkgb2EKLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0KLSAgICAgICAgIGlmIHshW2luZm8gZXhpc3RzIHZhcnMocGFydGl0aW9uX2RpcildfSB7IAotICAgICAgICAgICAgc2V0IHZhcnMocGFydGl0aW9uX2RpcikgUEFSVElUSU9OCi0gICAgICAgICB9Ci0gICAgICAgICBpZiB7IVtpbmZvIGV4aXN0cyB2YXJzKHBhcnRpdGlvbl9kaXJfcGFzczIpXX0geyAKLSAgICAgICAgICAgIGlmIHskdmFycyhlbmFibGVfZmxleGlsbSl9IHsKLSAgICAgICAgICAgICAgIHNldCB2YXJzKHBhcnRpdGlvbl9kaXJfcGFzczIpICR2YXJzKHBhcnRpdGlvbl9kaXIpX1BSRUNUUwotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIHNldCB2YXJzKHBhcnRpdGlvbl9kaXJfcGFzczIpICR2YXJzKHBhcnRpdGlvbl9kaXIpX0NUUwotICAgICAgICAgICAgfQotICAgICAgICAgfQotICAgICAgICAgaWYgeyR2YXJzKHVzZXJfbW9kZSkgPT0gImhpZXIifSB7Ci0gICAgICAgICAgICBGRl9OT1ZVUzo6bm9ybWFsaXplX2ZpbGVzCi0gICAgICAgICAgICBpZiB7JHZhcnMoZW5hYmxlX2ZsZXhpbG0pfSB7Ci0jICAgICAgICAgICAgICAgc2V0IHZhcnMoY3RzLHN0YXJ0aW5nX2RicykgIlxbZ2xvYiAqX3Bvc3RfZWNvLmVuY1xdIgotIyAgICAgICAgICAgICAgICMgRExNIGlzIGEgdHdvIHBhc3MgZmxvdyBidXQgdXNlciBkb2Vzbid0IG5lZWQgdG8gc3BlY2lmeSBpdAotICAgICAgICAgICAgICAgc2V0IHZhcnMoaGllcl9mbG93X3R5cGUpICIycGFzcyIKLSMgICAgICAgICAgICAgICBzZXQgdmFycyhwbGFjZV9vcHRfZGVzaWduKSBmYWxzZQotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIGlmIHskdmFycyhoaWVyX2Zsb3dfdHlwZSkgPT0gIjJwYXNzIn0gewotICAgICAgICAgICAgICAgICAgc2V0IHZhcnMocG9zdGN0cyxzdGFydGluZ19kYnMpIC4KLSAgICAgICAgICAgICAgIH0KLSMgICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0gICAgICAgICBpZiB7W3N0cmluZyBjb21wYXJlIC1ub2Nhc2UgJHZhcnMoZGJzX2Zvcm1hdCkgIm9hIl09PTB9IHsKLSAgICAgICAgICAgIGlmIHshW2luZm8gZXhpc3RzIHZhcnMob2FfYWJzdHJhY3RfbmFtZSldfSB7IHNldCB2YXJzKG9hX2Fic3RyYWN0X25hbWUpIGFic3RyYWN0fQotICAgICAgICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycyhvYV9sYXlvdXRfbmFtZSldfSB7IHNldCB2YXJzKG9hX2xheW91dF9uYW1lKSBsYXlvdXR9Ci0gICAgICAgICAgICBpZiB7IVtpbmZvIGV4aXN0cyB2YXJzKG9hX2Rlc2lnbl9jZWxsKV19IHsgc2V0IHZhcnMob2FfZGVzaWduX2NlbGwpICR2YXJzKGRlc2lnbil9Ci0gICAgICAgICAgICBpZiB7IVtpbmZvIGV4aXN0cyB2YXJzKG9hX2Rlc2lnbl92aWV3KV19IHsgc2V0IHZhcnMob2FfZGVzaWduX3ZpZXcpICIifQotICAgICAgICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycyhvYV9wYXJ0aXRpb25fbGliKV19IHsgc2V0IHZhcnMob2FfcGFydGl0aW9uX2xpYikgT0FfUFROX0xJQn0KLSAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBpZiB7IVtpbmZvIGV4aXN0cyB2YXJzKG9hX2Fic3RyYWN0X25hbWUpXX0geyBzZXQgdmFycyhvYV9hYnN0cmFjdF9uYW1lKSAiIn0KLSAgICAgICAgICAgIGlmIHshW2luZm8gZXhpc3RzIHZhcnMob2FfbGF5b3V0X25hbWUpXX0geyBzZXQgdmFycyhvYV9sYXlvdXRfbmFtZSkgIiJ9Ci0gICAgICAgICAgICBpZiB7IVtpbmZvIGV4aXN0cyB2YXJzKG9hX2Rlc2lnbl9jZWxsKV19IHsgc2V0IHZhcnMob2FfZGVzaWduX2NlbGwpICIifQotICAgICAgICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycyhvYV9kZXNpZ25fdmlldyldfSB7IHNldCB2YXJzKG9hX2Rlc2lnbl92aWV3KSAiIn0KLSAgICAgICAgICAgIGlmIHshW2luZm8gZXhpc3RzIHZhcnMob2FfZGVzaWduX2xpYildfSB7IHNldCB2YXJzKG9hX2Rlc2lnbl9saWIpICIifQotICAgICAgICAgfQotCi0gICAgICAgICBpZiB7KFtzdHJpbmcgdG9sb3dlciAkdmFycyhmaXhfaG9sZCldID09ICJ0cnVlIikgfHwgKCR2YXJzKGZpeF9ob2xkKSA9PSAxKX0gewotICAgICAgICAgICAgc2V0IGluZm9zKCR2YXJzKGluZm9fY291bnQpKSAiQ2hhbmdpbmcgdmFycyhmaXhfaG9sZCkgZnJvbSAkdmFycyhmaXhfaG9sZCkgdG8gXCIkZmxvd19kZWZhdWx0cyhmaXhfaG9sZClcIiIKLSAgICAgICAgICAgIGluY3IgdmFycyhpbmZvX2NvdW50KQotICAgICAgICAgICAgc2V0IHZhcnMoZml4X2hvbGQpICRmbG93X2RlZmF1bHRzKGZpeF9ob2xkKQotICAgICAgICAgfQotICAgICAgICAgaWYgeyhbc3RyaW5nIHRvbG93ZXIgJHZhcnMoZW5hYmxlX29jdildID09ICJ0cnVlIikgfHwgKCR2YXJzKGVuYWJsZV9vY3YpID09IDEpfSB7Ci0gICAgICAgICAgICBzZXQgaW5mb3MoJHZhcnMoaW5mb19jb3VudCkpICJDaGFuZ2luZyB2YXJzKGVuYWJsZV9vY3YpIGZyb20gXCIkdmFycyhlbmFibGVfb2N2KVwiIHRvIFwicHJlX3BsYWNlXCIiCi0gICAgICAgICAgICBpbmNyIHZhcnMoaW5mb19jb3VudCkKLSAgICAgICAgICAgIHNldCB2YXJzKGVuYWJsZV9vY3YpIHByZV9wbGFjZQotICAgICAgICAgfSBlbHNlaWYgeygkdmFycyhlbmFibGVfb2N2KSA9PSAibm9uZSIpIHx8ICgkdmFycyhlbmFibGVfb2N2KSA9PSAwKX0gewotICAgICAgICAgICAgc2V0IGluZm9zKCR2YXJzKGluZm9fY291bnQpKSAiQ2hhbmdpbmcgdmFycyhlbmFibGVfb2N2KSBmcm9tIFwiJHZhcnMoZW5hYmxlX29jdilcIiB0byBcImZhbHNlXCIiCi0gICAgICAgICAgICBpbmNyIHZhcnMoaW5mb19jb3VudCkKLSAgICAgICAgICAgIHNldCB2YXJzKGVuYWJsZV9vY3YpIGZhbHNlCi0gICAgICAgICB9Ci0gICAgICAgICBpZiB7W2xpbmRleCBbc3BsaXQgJHZhcnModmVyc2lvbikgIi4iXSAgMF0gPiAxMX0gewotICAgICAgICAgICAgaWYge1tzdHJpbmcgdG9sb3dlciAkdmFycyhlbmFibGVfb2N2KV0gPT0gImZhbHNlIn0gewotICAgICAgICAgICAgICAgaWYge1tsaW5kZXggW3NwbGl0ICR2YXJzKHZlcnNpb24pICIuIl0gIDBdIDwgMTV9IHsKLSAgICAgICAgICAgICAgICAgIHNldCBpbmZvcygkdmFycyhpbmZvX2NvdW50KSkgIkNoYW5naW5nIHZhcnMoZW5hYmxlX29jdikgZnJvbSBcIiR2YXJzKGVuYWJsZV9vY3YpXCIgdG8gXCJwcmVfcG9zdHJvdXRlXCIiCi0gICAgICAgICAgICAgICAgICBpbmNyIHZhcnMoaW5mb19jb3VudCkKLSAgICAgICAgICAgICAgICAgIHNldCB2YXJzKGVuYWJsZV9vY3YpICJwcmVfcG9zdHJvdXRlIgotICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgIHNldCBpbmZvcygkdmFycyhpbmZvX2NvdW50KSkgIkNoYW5naW5nIHZhcnMoZW5hYmxlX29jdikgZnJvbSBcIiR2YXJzKGVuYWJsZV9vY3YpXCIgdG8gXCJwcmVfY3RzXCIiCi0gICAgICAgICAgICAgICAgICBpbmNyIHZhcnMoaW5mb19jb3VudCkKLSAgICAgICAgICAgICAgICAgIHNldCB2YXJzKGVuYWJsZV9vY3YpICJwcmVfcGxhY2UiCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0gICAgICAgICBpZiB7KFtzdHJpbmcgdG9sb3dlciAkdmFycyhlbmFibGVfc3MpXSA9PSAidHJ1ZSIpIHx8ICgkdmFycyhlbmFibGVfc3MpID09IDEpfSB7Ci0gICAgICAgICAgICBzZXQgaW5mb3MoJHZhcnMoaW5mb19jb3VudCkpICJDaGFuZ2luZyB2YXJzKGVuYWJsZV9zcykgZnJvbSAkdmFycyhlbmFibGVfc3MpIHRvIFwicHJlX3Bvc3Ryb3V0ZVwiIgotICAgICAgICAgICAgaW5jciB2YXJzKGluZm9fY291bnQpCi0gICAgICAgICAgICBzZXQgdmFycyhlbmFibGVfc3MpIHByZV9wb3N0cm91dGUKLSAgICAgICAgIH0gZWxzZWlmIHsoJHZhcnMoZW5hYmxlX3NzKSA9PSAibm9uZSIpIHx8ICgkdmFycyhlbmFibGVfc3MpID09IDApfSB7Ci0gICAgICAgICAgICBzZXQgaW5mb3MoJHZhcnMoaW5mb19jb3VudCkpICJDaGFuZ2luZyB2YXJzKGVuYWJsZV9zcykgZnJvbSAkdmFycyhlbmFibGVfc3MpIHRvIFwiZmFsc2VcIiIKLSAgICAgICAgICAgIGluY3IgdmFycyhpbmZvX2NvdW50KQotICAgICAgICAgICAgc2V0IHZhcnMoZW5hYmxlX3NzKSBmYWxzZQotICAgICAgICAgfQotICAgICAgICAgaWYgeyhbc3RyaW5nIHRvbG93ZXIgJHZhcnMobWV0YWxmaWxsKV0gPT0gIm5vbmUiKSB8fCAoW3N0cmluZyB0b2xvd2VyICR2YXJzKG1ldGFsZmlsbCldID09ICJmYWxzZSIgJiYgJHZhcnMobWV0YWxmaWxsKSAhPSAiZmFsc2UiKSB8fCAoJHZhcnMobWV0YWxmaWxsKSA9PSAwKX0gewotICAgICAgICAgICAgc2V0IGluZm9zKCR2YXJzKGluZm9fY291bnQpKSAiQ2hhbmdpbmcgdmFycyhtZXRhbGZpbGwpIGZyb20gJHZhcnMobWV0YWxmaWxsKSB0byBcImZhbHNlXCIiCi0gICAgICAgICAgICBpbmNyIHZhcnMoaW5mb19jb3VudCkKLSAgICAgICAgICAgIHNldCB2YXJzKG1ldGFsZmlsbCkgZmFsc2UKLSAgICAgICAgIH0KLSAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhjbG9ja19lY28pXX0gewotICAgICAgICAgICAgaWYgeygkdmFycyhjbG9ja19lY28pID09ICJ0cnVlIikgfHwgKCR2YXJzKGNsb2NrX2VjbykgPT0gMSl9IHsKLSAgICAgICAgICAgICAgIHNldCBpbmZvcygkdmFycyhpbmZvX2NvdW50KSkgIkNoYW5naW5nIHZhcnMoY2xvY2tfZWNvKSBmcm9tICR2YXJzKGNsb2NrX2VjbykgdG8gXCJwb3N0X2N0c1wiIgotICAgICAgICAgICAgICAgaW5jciB2YXJzKGluZm9fY291bnQpCi0gICAgICAgICAgICAgICBzZXQgdmFycyhjbG9ja19lY28pIHBvc3RfY3RzCi0gICAgICAgICAgICB9IGVsc2VpZiB7KCR2YXJzKGNsb2NrX2VjbykgPT0gImZhbHNlIikgfHwgKCR2YXJzKGNsb2NrX2VjbykgPT0gMCl9IHsKLSAgICAgICAgICAgICAgIHNldCBpbmZvcygkdmFycyhpbmZvX2NvdW50KSkgIkNoYW5naW5nIHZhcnMoY2xvY2tfZWNvKSBmcm9tICR2YXJzKGNsb2NrX2VjbykgdG8gXCJub25lXCIiCi0gICAgICAgICAgICAgICBpbmNyIHZhcnMoaW5mb19jb3VudCkKLSAgICAgICAgICAgICAgIHNldCB2YXJzKGNsb2NrX2Vjbykgbm9uZQotICAgICAgICAgICAgfSBlbHNlaWYgeygkdmFycyhjbG9ja19lY28pID09ICJwcmVyb3V0ZSIpIHx8ICgkdmFycyhjbG9ja19lY28pID09ICJwcmVfcm91dGUiKX0gewotICAgICAgICAgICAgICAgc2V0IGluZm9zKCR2YXJzKGluZm9fY291bnQpKSAiQ2hhbmdpbmcgdmFycyhjbG9ja19lY28pIGZyb20gJHZhcnMoY2xvY2tfZWNvKSB0byBcInBvc3RfY3RzXCIiCi0gICAgICAgICAgICAgICBpbmNyIHZhcnMoaW5mb19jb3VudCkKLSAgICAgICAgICAgICAgIHNldCB2YXJzKGNsb2NrX2VjbykgcG9zdF9jdHMKLSAgICAgICAgICAgIH0gZWxzZWlmIHskdmFycyhjbG9ja19lY28pID09ICJwb3N0cm91dGUifSB7Ci0gICAgICAgICAgICAgICBzZXQgaW5mb3MoJHZhcnMoaW5mb19jb3VudCkpICJDaGFuZ2luZyB2YXJzKGNsb2NrX2VjbykgZnJvbSAkdmFycyhjbG9ja19lY28pIHRvIFwicG9zdF9yb3V0ZVwiIgotICAgICAgICAgICAgICAgaW5jciB2YXJzKGluZm9fY291bnQpCi0gICAgICAgICAgICAgICBzZXQgdmFycyhjbG9ja19lY28pIHBvc3Rfcm91dGUKLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0KLSAgICAgICAgIGlmIHsoW3N0cmluZyB0b2xvd2VyICR2YXJzKGZsb3dfZWZmb3J0KV0gPT0gIm5vbmUiKSB8fCAoW3N0cmluZyB0b2xvd2VyICR2YXJzKGZsb3dfZWZmb3J0KV0gPT0gImRlZmF1bHQiKX0gewotICAgICAgICAgICAgYXBwZW5kIHdhcm5pbmdzKCR2YXJzKHdhcm5pbmdfY291bnQpKSAiQ2hhbmdpbmcgdmFycyhmbG93X2VmZm9ydCkgZnJvbSAnJHZhcnMoZmxvd19lZmZvcnQpJyB0byAnc3RhbmRhcmQnIgotICAgICAgICAgICAgaW5jciB2YXJzKHdhcm5pbmdfY291bnQpCi0gICAgICAgICAgICBzZXQgdmFycyhmbG93X2VmZm9ydCkgc3RhbmRhcmQKLSAgICAgICAgIH0KLSAgICAgICAgIGlmIHsoW3N0cmluZyB0b2xvd2VyICR2YXJzKHVzZV9mbGV4bW9kZWxzKV0gPT0gInRydWUiKSB8fCAoJHZhcnModXNlX2ZsZXhtb2RlbHMpID09IDEpfSB7Ci0gICAgICAgICAgICBzZXQgdmFycyh1c2VfZmxleG1vZGVscykgMQotICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHNldCB2YXJzKHVzZV9mbGV4bW9kZWxzKSAwCi0gICAgICAgICB9Ci0jICAgICAgICAgaWYgeyR2YXJzKHVzZV9mbGV4bW9kZWxzKSAmJiAkdmFycyhwbGFjZV9vcHRfZGVzaWduKX0gewotIyAgICAgICAgICAgIHNldCB3YXJuaW5ncygkdmFycyh3YXJuaW5nX2NvdW50KSkgIlNldHRpbmcgdmFycyhwbGFjZV9vcHRfZGVzaWduKSB0byAnZmFsc2UnIGFzIHZhcnModXNlX2ZsZXhtb2RlbHMpIGlzIHRydWUiCi0jICAgICAgICAgICAgaW5jciB2YXJzKHdhcm5pbmdfY291bnQpCi0jICAgICAgICAgICAgc2V0IHZhcnMocGxhY2Vfb3B0X2Rlc2lnbikgZmFsc2UKLSMgICAgICAgICB9Ci0gICAgICAgICBpZiB7KFtzdHJpbmcgdG9sb3dlciAkdmFycyhmbGV4bW9kZWxfYXNfcHRuKV0gPT0gInRydWUiKSB8fCAoJHZhcnMoZmxleG1vZGVsX2FzX3B0bikgPT0gMSl9IHsKLSAgICAgICAgICAgIHNldCB2YXJzKGZsZXhtb2RlbF9hc19wdG4pIDEKLSAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBzZXQgdmFycyhmbGV4bW9kZWxfYXNfcHRuKSAwCi0gICAgICAgICB9Ci0gICAgICAgICBpZiB7KFtzdHJpbmcgdG9sb3dlciAkdmFycyhwbGFjZW1lbnRfYmFzZWRfcHRuKV0gPT0gInRydWUiKSB8fCAoJHZhcnMocGxhY2VtZW50X2Jhc2VkX3B0bikgPT0gMSl9IHsKLSAgICAgICAgICAgIHNldCB2YXJzKHBsYWNlbWVudF9iYXNlZF9wdG4pIDEKLSAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBzZXQgdmFycyhwbGFjZW1lbnRfYmFzZWRfcHRuKSAwCi0gICAgICAgICB9Ci0gICAgICAgICBpZiB7KFtzdHJpbmcgdG9sb3dlciAkdmFycyhhYnV0dGVkX2Rlc2lnbildID09ICJ0cnVlIikgfHwgKCR2YXJzKGFidXR0ZWRfZGVzaWduKSA9PSAxKX0gewotICAgICAgICAgICAgc2V0IHZhcnMoYWJ1dHRlZF9kZXNpZ24pIDEKLSAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBzZXQgdmFycyhhYnV0dGVkX2Rlc2lnbikgMAotICAgICAgICAgfQotICAgICAgICAgaWYgeyhbc3RyaW5nIHRvbG93ZXIgJHZhcnMoaW5zZXJ0X2ZlZWR0aHJvdWdoKV0gPT0gInRydWUiKSB8fCAoJHZhcnMoaW5zZXJ0X2ZlZWR0aHJvdWdoKSA9PSAxKX0gewotICAgICAgICAgICAgc2V0IHZhcnMoaW5zZXJ0X2ZlZWR0aHJvdWdoKSAxCi0gICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgc2V0IHZhcnMoaW5zZXJ0X2ZlZWR0aHJvdWdoKSAwCi0gICAgICAgICB9Ci0gICAgICAgICBpZiB7IVtpbmZvIGV4aXN0cyB2YXJzKHJlc2l6ZV9zaGlmdGVyX2FuZF9pc29faW5zdHMpXSB8fCAkdmFycyhyZXNpemVfc2hpZnRlcl9hbmRfaXNvX2luc3RzKSA9PSAiIn0gewotICAgICAgICAgICAgc2V0IHZhcnMocmVzaXplX3NoaWZ0ZXJfYW5kX2lzb19pbnN0cykgdHJ1ZQotICAgICAgICAgfQotICAgICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycyhhY3Rpdml0eV9maWxlX2Zvcm1hdCldIHx8ICR2YXJzKGFjdGl2aXR5X2ZpbGVfZm9ybWF0KSA9PSAiIn0gewotICAgICAgICAgICAgc2V0IHZhcnMoYWN0aXZpdHlfZmlsZV9mb3JtYXQpIFRDRgotICAgICAgICAgfQotICAgICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycyhwb3dlcl9uZXRzKV19IHsKLSAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhwd3JuZXQpXX0gewotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICBJTkZPOiBWYXJpYWJsZSBwd3JuZXQgaGFzIGJlZW4gY2hhbmdlZCB0byBwb3dlcl9uZXRzIC4uLiBwbGVhc2UgdXBkYXRlXG4iCi0gICAgICAgICAgICAgICBzZXQgaW5mb3MoJHZhcnMoaW5mb19jb3VudCkpICJWYXJpYWJsZSBwd3JuZXQgaGFzIGJlZW4gY2hhbmdlZCB0byBwb3dlcl9uZXRzIC4uLiBwbGVhc2UgdXBkYXRlIgotICAgICAgICAgICAgICAgaW5jciB2YXJzKGluZm9fY291bnQpCi0gICAgICAgICAgICAgICBzZXQgdmFycyhwb3dlcl9uZXRzKSAkdmFycyhwd3JuZXQpCi0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgc2V0IHZhcnMocG93ZXJfbmV0cykgIiIKLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0KLSAgICAgICAgIGlmIHshW2luZm8gZXhpc3RzIHZhcnMoZ3JvdW5kX25ldHMpXX0gewotICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGduZG5ldCldfSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIElORk86IFZhcmlhYmxlIGduZG5ldCBoYXMgYmVlbiBjaGFuZ2VkIHRvIGdyb3VuZF9uZXRzIC4uLiBwbGVhc2UgdXBkYXRlXG4iCi0gICAgICAgICAgICAgICBzZXQgaW5mb3MoJHZhcnMoaW5mb19jb3VudCkpICJWYXJpYWJsZSBnbmRuZXQgaGFzIGJlZW4gY2hhbmdlZCB0byBncm91bmRfbmV0cyAuLi4gcGxlYXNlIHVwZGF0ZSIKLSAgICAgICAgICAgICAgIGluY3IgdmFycyhpbmZvX2NvdW50KQotICAgICAgICAgICAgICAgc2V0IHZhcnMoZ3JvdW5kX25ldHMpICR2YXJzKGduZG5ldCkKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBzZXQgdmFycyhncm91bmRfbmV0cykgIiIKLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0KLSAgICAgICAgIGlmIHshW2luZm8gZXhpc3RzIHZhcnMoc3VwZXJob3N0cyldfSB7Ci0gICAgICAgICAgICBzZXQgdmFycyhzdXBlcmhvc3RzKSAwCi0gICAgICAgICB9Ci0KLSAgICAgICAgIGlmIHshW2luZm8gZXhpc3RzIHZhcnMoc3VwZXJ0aHJlYWRzKV19IHsKLSAgICAgICAgICAgIHNldCB2YXJzKHN1cGVydGhyZWFkcykgMQotICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIGlmIHsoJHZhcnModGhyZWFkcykgPiAxKSAmJiAoJHZhcnMoc3VwZXJ0aHJlYWRzKSA9PSAxKX0gewotICAgICAgICAgICAgICAgc2V0IHZhcnMoc3VwZXJ0aHJlYWRzKSAkdmFycyh0aHJlYWRzKQotICAgICAgICAgICAgfQotICAgICAgICAgfQotICAgICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycyhtYWtlZmlsZSldfSB7Ci0gICAgICAgICAgICBzZXQgdmFycyhtYWtlZmlsZSkgMQotICAgICAgICAgfQotICAgICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycyhmbGF0KV19IHsKLSAgICAgICAgICAgIHNldCB2YXJzKGZsYXQpIG5vbmUKLSAgICAgICAgIH0KLSAgICAgICAgIGlmIHshW2luZm8gZXhpc3RzIHZhcnMoYWJvcnQpXX0gewotICAgICAgICAgICAgc2V0IHZhcnMoYWJvcnQpIDAKLSAgICAgICAgIH0KLSAgICAgICAgIGlmIHshW2luZm8gZXhpc3RzIHZhcnMoY2F0Y2hfZXJyb3JzKV19IHsKLSAgICAgICAgICAgIHNldCB2YXJzKGNhdGNoX2Vycm9ycykgMQotICAgICAgICAgfQotICAgICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycyhyZXN0b3JlX2Rlc2lnbildfSB7Ci0gICAgICAgICAgICBzZXQgdmFycyhyZXN0b3JlX2Rlc2lnbikgMQotICAgICAgICAgfQotICAgICAgICAgaWYgeyR2YXJzKGNhdGNoX2Vycm9ycyl9IHsKLSAgICAgICAgICAgIGlmIHshW2luZm8gZXhpc3RzIHZhcnMoc2F2ZV9vbl9jYXRjaCldfSB7Ci0gICAgICAgICAgICAgICBzZXQgdmFycyhzYXZlX29uX2NhdGNoKSAxCi0gICAgICAgICAgICB9IAotICAgICAgICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycyhleGl0X29uX2Vycm9yKV19IHsKLSAgICAgICAgICAgICAgIHNldCB2YXJzKGV4aXRfb25fZXJyb3IpIDEKLSAgICAgICAgICAgIH0gCi0gICAgICAgICB9Ci0gICAgICAgICBpZiB7IVtpbmZvIGV4aXN0cyBlbnYoVlBBVEgpXX0gewotICAgICAgICAgICAgc2V0IGVudihWUEFUSCkgJGZsb3dfZGVmYXVsdHModnBhdGgpCi0gICAgICAgICAgICBwdXRzICI8RkY+IElORk86IFNldHRpbmcgZW52KFZQQVRIKSB0byAkZmxvd19kZWZhdWx0cyh2cGF0aCkiCi0gICAgICAgICB9Ci0gICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoY3BmX2ZpbGUpXX0gewotICAgICAgICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycyhjcGZfdGltaW5nKV19IHsKLSAgICAgICAgICAgICAgIHNldCB2YXJzKGNwZl90aW1pbmcpIHRydWUKLSMgICAgICAgICAgICAgICBzZXQgdmFycyhmbGF0KSB0cnVlCi0gICAgICAgICAgICB9Ci0gICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgc2V0IHZhcnMoY3BmX3RpbWluZykgZmFsc2UKLSAgICAgICAgIH0KLQotICAgICAgICAgaWYgeyEkdmFycyhjb2RlZ2VuKX0geyAKLSAgICAgICAgICAgIGlmIHtbRkY6OmlzX2xwX2Zsb3ddfSB7Ci0gICAgICAgICAgICAgICBjYXRjaCB7YWxpYXMgZmZfbW9kaWZ5X3Bvd2VyX2RvbWFpbnMgRkZfTk9WVVM6Om1vZGlmeV9wb3dlcl9kb21haW5zfQotICAgICAgICAgICAgICAgY2F0Y2gge2FsaWFzIGZmX2FkZF9wb3dlcl9zd2l0Y2hlcyBGRl9OT1ZVUzo6YWRkX3Bvd2VyX3N3aXRjaGVzfQotICAgICAgICAgICAgICAgY2F0Y2gge2FsaWFzIGZmX3JvdXRlX3NlY29uZGFyeV9wZ19uZXRzIEZGX05PVlVTOjpyb3V0ZV9zZWNvbmRhcnlfcGdfbmV0c30KLSAgICAgICAgICAgICAgIGNhdGNoIHthbGlhcyBmZl9nZXRfcG93ZXJfZG9tYWlucyBGRl9OT1ZVUzo6Z2V0X3Bvd2VyX2RvbWFpbnN9Ci0gICAgICAgICAgICAgICBjYXRjaCB7YWxpYXMgZmZfYnVmZmVyX2Fsd2F5c19vbl9uZXRzIEZGX05PVlVTOjpidWZmZXJfYWx3YXlzX29uX25ldHN9Ci0gICAgICAgICAgICAgICBjYXRjaCB7YWxpYXMgZmZfaW5zZXJ0X3dlbGx0YXBzX2VuZGNhcHMgRkZfTk9WVVM6Omluc2VydF93ZWxsdGFwc19lbmRjYXBzfQotICAgICAgICAgICAgfQotICAgICAgICAgICAgc2V0IGZsb3dfZGVmYXVsdHMoc2NyaXB0X2RpcikgIi4iCi0gICAgICAgIH0KLQotIyBSZW1lbWJlciB0aGVzZSBmb3Igc3RlcCBiYXNlZCByZXBvcnRpbmcgLi4uCi0gICAgICAgICBzZXQgdmFycyhvcmlnX3JwdF9kaXIpICAkdmFycyhycHRfZGlyKQotICAgICAgICAgc2V0IHZhcnMob3JpZ19sb2dfZGlyKSAgJHZhcnMobG9nX2RpcikKLSAgICAgICAgIHNldCB2YXJzKG9yaWdfZGJzX2RpcikgICR2YXJzKGRic19kaXIpCi0KLSMgQWRkIHRoZXNlIGZvciBnZXQgbWV0cmljCi0gICAgICAgICBpZiB7IVtpbmZvIGV4aXN0cyB2YXJzKGh0bWxfc3VtbWFyeSldfSB7Ci0gICAgICAgICAgICBzZXQgdmFycyhodG1sX3N1bW1hcnkpICAkdmFycyhycHRfZGlyKS9zdW1tYXJ5Lmh0bWwKLSAgICAgICAgIH0KLSAgICAgICAgIGlmIHshW2luZm8gZXhpc3RzIHZhcnModGltZV9pbmZvX2RiKV19IHsKLSAgICAgICAgICAgIHNldCB2YXJzKHRpbWVfaW5mb19kYikgICR2YXJzKHJwdF9kaXIpL3RpbWVfaW5mby5kYgotICAgICAgICAgfQotICAgICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycyh0aW1lX2luZm9fcnB0KV19IHsKLSAgICAgICAgICAgIHNldCB2YXJzKHRpbWVfaW5mb19ycHQpICAkdmFycyhycHRfZGlyKS90aW1lX2luZm8ucnB0Ci0gICAgICAgICB9Ci0KLSAgICAgICAgIGlmIHtbaW5mbyBjb21tYW5kIEZGRjo6Z2V0X3Rvb2xdIG5lICIiICYmIFtGRkY6OmdldF90b29sXSBlcSAicmMifSB7Ci0gICAgICAgICAgIHRjbF9zb3VyY2UgJHZhcnMoc2NyaXB0X3BhdGgpL0VUQy9JTk5PVlVTL3VkbS50Y2wKLSAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgIHNvdXJjZSAkdmFycyhzY3JpcHRfcGF0aCkvRVRDL0lOTk9WVVMvdWRtLnRjbAotICAgICAgICAgfQotICAgICAgICAgaWYgeyEkdmFycyhyYykgfHwgKCR2YXJzKHJjKSAmJiAhW2luZm8gZXhpc3RzIHZhcnMocmNfc3RlcHMpXSl9IHsKLSAgICAgICAgICAgIHNldCB2YXJzKHNlZWQpIDEKLSAgICAgICAgIH0KLSAgICAgIH0KLQotIyAgICAgIGlmIHshW2luZm8gZXhpc3RzIHZhcnModmlld19kZWZpbml0aW9uX3RjbCldfSB7Ci0gICAgICAgICBGRl9OT1ZVUzo6bm9ybWFsaXplX2NvbnN0cmFpbnRzIAotIyAgICAgIH0KLQotICAgICAgaWYgeyR2YXJzKGdlbmVyYXRlX2Zsb3dfc3RlcHMpfSB7Ci0jICAgICAgICAgc2V0IHZhcnMoc2tpcF9zaWdub2ZmX2NoZWNrcykgdHJ1ZQotICAgICAgICAgRkZfTk9WVVM6Om5vcm1hbGl6ZV9maWxlcyAKLSAgICAgIH0KLQotIyAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyh2aWV3X2RlZmluaXRpb25fdGNsKV19IHsKLSMgICAgICAgICBzZXQgdmFycyhza2lwX3NpZ25vZmZfY2hlY2tzKSBmYWxzZQotIyAgICAgIH0KLSAgICAgICMgIFJDIFN0dWZmIC4uLgotICAgICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSAgICAgIGlmIHskdmFycyhyYyl9IHsKLSAgICAgICAgIGlmIHshW2luZm8gZXhpc3RzIHZhcnMob3ZmX2RpcildfSB7IHNldCB2YXJzKG92Zl9kaXIpIE9WRiB9Ci0gICAgICAgICBpZiB7IVtpbmZvIGV4aXN0cyB2YXJzKGxlY19kaXIpXX0geyBzZXQgdmFycyhsZWNfZGlyKSBMRUMgfQotICAgICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycyhlbmFibGVfcmNwKV19IHsgc2V0IHZhcnMoZW5hYmxlX3JjcCkgMCB9Ci0gICAgICAgICBpZiB7IVtpbmZvIGV4aXN0cyB2YXJzKGVuYWJsZV9wYW0pXX0geyBzZXQgdmFycyhlbmFibGVfcGFtKSAwIH0KLSAgICAgICAgIHNldCB2YXJzKHN5bl9tYXAsc2V0X2xpYl9hdHRyaWJ1dGVzLHNraXApIHRydWUKLSAgICAgICAgIHNldCB2YXJzKHN5bl9tYXAsc2V0X21pc2NfYXR0cmlidXRlcyxza2lwKSB0cnVlCi0gICAgICAgICBzZXQgdmFycyhzeW5fbWFwLHNldF9oZGxfYXR0cmlidXRlcyxza2lwKSB0cnVlCi0gICAgICAgICBzZXQgdmFycyhzeW5fbWFwLHNldF9pY2dfYXR0cmlidXRlcyxza2lwKSB0cnVlCi0gICAgICAgICBzZXQgdmFycyhzeW5fbWFwLHNldF9kZnRfYXR0cmlidXRlcyxza2lwKSB0cnVlCi0gICAgICAgICBzZXQgdmFycyhzeW5faW5jcixzZXRfb3B0X2F0dHJpYnV0ZXMsc2tpcCkgdHJ1ZQotCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAjIFNldCBuZXRsaXN0IGFuZCBkZWYgdmFyaWFibGVzIHdoZW4gUkMgLyBSQ1AgZW5hYmxlZAotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgICAgaWYgeyR2YXJzKGVuYWJsZV9yY3ApfSB7Ci0gICAgICAgICAgICBzZXQgdmFycyhuZXRsaXN0KSAkdmFycyhkYnNfZGlyKS9zeW5fcGxhY2Uvc3luX3BsYWNlLnYuZ3oKLSMgICAgICAgICAgICBzZXQgdmFycyhkZWZfZmlsZXMpICR2YXJzKGRic19kaXIpL3N5bl9wbGFjZS5kZWYuZ3oKLSAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBzZXQgdmFycyhuZXRsaXN0KSAkdmFycyhkYnNfZGlyKS9zeW5faW5jci9zeW5faW5jci52Lmd6Ci0jICAgICAgICAgICAgc2V0IHZhcnMoZGVmX2ZpbGVzKSAkdmFycyhkYnNfZGlyKS9zeW5faW5jci9zeW5faW5jci5kZWYuZ3oKLSAgICAgICAgIH0KLSAgICAgIH0KLQotICAgICAgaWYgeyR2YXJzKG5vdnVzKX0gewotICAgICAgICAgI3NldCB2YXJzKG1ha2VfdG9vbF9hcmdzKSAiLW5vd2luIC02NCIKLSAgICAgICAgIHNldCB2YXJzKG1ha2Vfc3luX3Rvb2xfYXJncykgIi02NCIKLSAgICAgICAgIHNldCB2YXJzKGdlbmVyYXRlX2Zsb3dfc3RlcHMpIHRydWUKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAjc2V0IHZhcnMobWFrZV90b29sX2FyZ3MpICItbm93aW4gLTY0IgotICAgICAgICAgc2V0IHZhcnMobWFrZV9zeW5fdG9vbF9hcmdzKSAiLTY0IC1sZWdhY3lfdWkiCi0gICAgICAgICBzZXQgdmFycyhnZW5lcmF0ZV9mbG93X3N0ZXBzKSB0cnVlCi0gICAgICB9IAotCi0gICB9Ci0KLSAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICMgUHJvY2VkdXJlIHRvIGNoZWNrIHRoZSBmbG93IHZhcmlhYmxlcyBkZWZpbmVkIGluIHRoZSBzZXR1cC50Y2wKLSAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLQotICAgcHJvYyBjaGVja19zZXR1cCB7fSB7Ci0KLSAgICAgIGdsb2JhbCB2YXJzCi0gICAgICBnbG9iYWwgdHZhcnMKLSAgICAgIGdsb2JhbCBlcnJvcnMKLSAgICAgIGdsb2JhbCB3YXJuaW5ncwotICAgICAgZ2xvYmFsIGluZm9zCi0gICAgICBnbG9iYWwgY2hlY2sKLQotICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGNoZWNrX3NldHVwKV0gICYmICEkdmFycyhjaGVja19zZXR1cCl9IHsKLSAgICAgICAgIHJldHVybgotICAgICAgfQotCi0gICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMod2FybmluZ19jb3VudCldfSB7Ci0gICAgICAgICBzZXQgd2FybmluZ19jb3VudCAkdmFycyh3YXJuaW5nX2NvdW50KQotICAgICAgfSBlbHNlIHsKLSAgICAgICAgIHNldCB3YXJuaW5nX2NvdW50IDAKLSAgICAgIH0KLSAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhlcnJvcl9jb3VudCldfSB7Ci0gICAgICAgICBzZXQgZXJyb3JfY291bnQgJHZhcnMoZXJyb3JfY291bnQpCi0gICAgICB9IGVsc2UgewotICAgICAgICAgc2V0IGVycm9yX2NvdW50IDAKLSAgICAgIH0KLSAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhpbmZvX2NvdW50KV19IHsKLSAgICAgICAgIHNldCBpbmZvX2NvdW50ICR2YXJzKGluZm9fY291bnQpCi0gICAgICB9IGVsc2UgewotICAgICAgICAgc2V0IGluZm9fY291bnQgMAotICAgICAgfQotCi0gICAgICBpZiB7JHZhcnMocGxhY2Vfb3B0X2Rlc2lnbikgJiYgJHZhcnMoZW5hYmxlX2ZsZXhpbG0pfSB7Ci0gICAgICAgICBzZXQgd2FybmluZ3MoJHdhcm5pbmdfY291bnQpICJGZWF0dXJlIHZhcnMocGxhY2Vfb3B0X2Rlc2lnbikgbm90IHN1cHBvcnQgZm9yIHRvcCBsZXZlbCBpbXBsZW1lbnRhdGlvbiB3aGVuIHZhcnMoZW5hYmxlX2ZsZXhpbG0pIGlzIHRydWUiCi0gICAgICAgICBpbmNyIHdhcm5pbmdfY291bnQKLSAgICAgIH0KLQotICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKHBvd2VyX2FuYWx5c2lzX3ZpZXcpXX0gewotICAgICAgICAgaWYge1tsc2VhcmNoIFtjb25jYXQgJHZhcnMoc2V0dXBfYW5hbHlzaXNfdmlld3MpICR2YXJzKGhvbGRfYW5hbHlzaXNfdmlld3MpXSAkdmFycyhwb3dlcl9hbmFseXNpc192aWV3KV0gPT0gLTF9IHsKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgRVJST1I6IFBvd2VyIGFuYWx5c2lzIHZpZXcgJHZhcnMocG93ZXJfYW5hbHlzaXNfdmlldykgaXMgbm90IGEgZGVmaW5lZCB2aWV3XG4iCi0gICAgICAgICAgICBzZXQgZXJyb3JzKCRlcnJvcl9jb3VudCkgIlBvd2VyIGFuYWx5c2lzIHZpZXcgJHZhcnMocG93ZXJfYW5hbHlzaXNfdmlldykgaXMgbm90IGEgZGVmaW5lZCB2aWV3IgotICAgICAgICAgICAgaW5jciBlcnJvcl9jb3VudAotICAgICAgICAgfQotICAgICAgfQotCi0gICAgICBzZXQgdmFsaWQgW2xpc3QgdHJpYWxfaXBvIGdpZ2Ffb3B0IHByb3RvX25ldF9kZWxheV9tb2RlbF0KLSAgICAgIGlmIHtbbHNlYXJjaCAkdmFsaWQgW3N0cmluZyB0b2xvd2VyICR2YXJzKGJ1ZGdldF9tb2RlKV1dID09IC0xfSB7Ci0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIEVSUk9SOiBWYXJpYWJsZSB2YXJzKGJ1ZGdldF9tb2RlKSBoYXMgaWxsZWdhbCB2YWx1ZSAkdmFycyhidWRnZXRfbW9kZSlcbiIKLSAgICAgICAgIHNldCBlcnJvcnMoJGVycm9yX2NvdW50KSAiVmFyaWFibGUgdmFycyhidWRnZXRfbW9kZSkgaGFzIGlsbGVnYWwgdmFsdWUgJHZhcnMoYnVkZ2V0X21vZGUpIgotICAgICAgICAgaW5jciBlcnJvcl9jb3VudAotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICAgICAgICAgTXVzdCBiZSBvbmUgb2YgJyR2YWxpZCdcbiIKLSAgICAgIH0KLSAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhjdHNfZW5naW5lKV19IHsKLSAgICAgICAgIGlmIHtbc3RyaW5nIHRvbG93ZXIgJHZhcnMoY3RzX2VuZ2luZSldID09ICJjY29wdGRlc2lnbiJ9IHsgCi0gICAgICAgICAgICBzZXQgdmFycyhjdHNfZW5naW5lKSBjY29wdCAKLSAgICAgICAgIH0gCi0gICAgICAgICBpZiB7W3N0cmluZyB0b2xvd2VyICR2YXJzKGN0c19lbmdpbmUpXSA9PSAiY2xvY2tkZXNpZ24ifSB7IAotICAgICAgICAgICAgc2V0IHZhcnMoY3RzX2VuZ2luZSkgY3RzIAotICAgICAgICAgfQotICAgICAgICAgc2V0IHZhbGlkIFtsaXN0IGNjb3B0IGNjb3B0X2N0c10KLSAgICAgICAgIGlmIHtbbHNlYXJjaCAkdmFsaWQgW3N0cmluZyB0b2xvd2VyICR2YXJzKGN0c19lbmdpbmUpXV0gPT0gLTF9IHsKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgRVJST1I6IFZhcmlhYmxlIHZhcnMoY3RzX2VuZ2luZSkgaGFzIGlsbGVnYWwgdmFsdWUgJHZhcnMoY3RzX2VuZ2luZSlcbiIKLSAgICAgICAgICAgIHNldCBlcnJvcnMoJGVycm9yX2NvdW50KSAiVmFyaWFibGUgdmFycyhjdHNfZW5naW5lKSBoYXMgaWxsZWdhbCB2YWx1ZSAkdmFycyhjdHNfZW5naW5lKSIKLSAgICAgICAgICAgIGluY3IgZXJyb3JfY291bnQKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgICAgICAgIE11c3QgYmUgb25lIG9mICckdmFsaWQnXG4iCi0gICAgICAgICB9Ci0gICAgICB9Ci0KLSAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhjY29wdF9pbnRlZ3JhdGlvbildfSB7Ci0gICAgICAgICBzZXQgdmFsaWQge3NjcmlwdGVkIG5hdGl2ZX0KLSAgICAgICAgIGlmIHtbbHNlYXJjaCAkdmFsaWQgJHZhcnMoY2NvcHRfaW50ZWdyYXRpb24pXSA9PSAtMX0gewotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICBFUlJPUjogVmFyaWFibGUgdmFycyhjdHNfZW5naW5lKSBoYXMgaWxsZWdhbCB2YWx1ZSAkdmFycyhjdHNfZW5naW5lKVxuIgotICAgICAgICAgICAgc2V0IGVycm9ycygkZXJyb3JfY291bnQpICJWYXJpYWJsZSB2YXJzKGN0c19lbmdpbmUpIGhhcyBpbGxlZ2FsIHZhbHVlICR2YXJzKGN0c19lbmdpbmUpIgotICAgICAgICAgICAgaW5jciBlcnJvcl9jb3VudAotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICAgICAgICAgTXVzdCBiZSBvbmUgb2YgJyR2YWxpZCdcbiIKLSAgICAgICAgIH0KLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAjIERlZmF1bHQgdG8gbmF0aXZlIGludGVncmF0aW9uCi0gICAgICAgICBzZXQgdmFycyhjY29wdF9pbnRlZ3JhdGlvbikgIm5hdGl2ZSIKLSAgICAgIH0KLQotICAgICAgaWYge1tsaW5kZXggW3NwbGl0ICR2YXJzKHZlcnNpb24pICIuIl0gIDBdID4gMTB9IHsKLSAgICAgICAgIGZvcmVhY2ggdmFyIFthcnJheSBuYW1lcyB2YXJzXSB7Ci0gICAgICAgICAgICBzZXQgc2F2ZV92YXJzKCR2YXIpICR2YXJzKCR2YXIpCi0gICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHR2YXJzKCR2YXIpXX0gewotICAgICAgICAgICAgICAgc2V0IHZhcnMoJHZhcikgJHR2YXJzKCR2YXIpCi0gICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0gICAgICB9Ci0KLSAgICAgIHNldCBjb21tYW5kcyAgIiIKLQotICAgICAgc2V0IGNoZWNrKGZpbGVzKSBbbGlzdF0KLSAgICAgIHNldCBjaGVjayhpbnRlZ2VycykgW2xpc3RdCi0KLQotICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycyhhYm9ydCldfSB7Ci0gICAgICAgICBzZXQgdmFycyhhYm9ydCkgMAotICAgICAgfQotCi0gICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoY2hlY2tfdmFycyldICYmICR2YXJzKGNoZWNrX3ZhcnMpfSB7Ci0gICAgICAgICBzb3VyY2UgJHZhcnMoc2NyaXB0X3Jvb3QpL0VUQy9JTk5PVlVTL2NoZWNrX3ZhcnMudGNsCi0gICAgICB9Ci0KLSAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICAgICAgICAgICAgICAgUmVxdWlyZWQgVmFyaWFibGVzXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgIiMgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiIKLSAgICAgIHNldCBjb3VudCAwCi0gICAgICBmb3JlYWNoIHJlcXVpcmVkICJmcF90Y2xfZmlsZSBmcF9maWxlIGRlZl9maWxlcyIgewotICAgICAgICAgIyBCQ0w6IE5vdGUgLSBUaGlzIGNvZGUgcmVtb3ZlZCBhcyB0aGUgUkMgRm91bmRhdGlvbiBGbG93IHdpbGwgc2V0IHZhcnMoZGVmX2ZpbGVzKSB3aGVuIGl0Ci0gICAgICAgICAjIGlzbid0IGRlZmluZWQgaW4gdGhlIHVzZXIncyBzZXR1cC50Y2wKLSAgICAgICAgICNpZiB7JHZhcnMocmMpICYmICFbaW5mbyBleGlzdHMgdmFycyhkZWZfZmlsZXMpXX0gewotICAgICAgICAgIyAgIHNldCB2YXJzKGRlZl9maWxlcykgJHZhcnMoZGJzX2RpcikvJHZhcnMoZGVzaWduKS5zeW5fcGxhY2VkLmRlZi5negotICAgICAgICAgI30KLSAgICAgICAgIGlmIHshJHZhcnMocmMpfSB7Ci0gICAgICAgICAgICMgQkNMOiBPbmx5IGNoZWNrIGZvciB2YXJzKGRlZl9maWxlcykgaWYgbm90IGluIFJDIG1vZGUKLSAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCRyZXF1aXJlZCldICYmICgkdmFycygkcmVxdWlyZWQpICE9ICIiKX0gewotICAgICAgICAgICAgICBpZiB7JHJlcXVpcmVkID09ICJkZWZfZmlsZXMifSB7Ci0gICAgICAgICAgICAgICAgIHNldCBmaXJzdCAxCi0gICAgICAgICAgICAgICAgICMgQkNMOiBBZGRlZCBzdWJzdCBhcm91bmQgdmFycyhkZWZfZmlsZXMpIHRvIHJlc29sdmUgdmFycyhydW5kaXIpCi0gICAgICAgICAgICAgICAgIGZvcmVhY2ggZmlsZSBbc3Vic3QgJHZhcnMoZGVmX2ZpbGVzKV0gewotICAgICAgICAgICAgICAgICAgICBpZiB7JGZpcnN0ID09IDF9IHsKLSAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICBJTkZPOiAgICAkcmVxdWlyZWQgPSAkZmlsZVxuIgotICAgICAgICAgICAgICAgICAgICAgICBzZXQgZmlyc3QgMAotICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIElORk86ICAgICAgICAgICAgICAgICRmaWxlIgotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgIGlmIHshJHZhcnMocmMpfSB7IAotICAgICAgICAgICAgICAgICAgICAgICBsYXBwZW5kIGNoZWNrKGZpbGVzKSAkZmlsZQotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgbGFwcGVuZCBjaGVjayhmaWxlcykgJHZhcnMoJHJlcXVpcmVkKQotICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIElORk86ICAgICRyZXF1aXJlZCA9ICR2YXJzKCRyZXF1aXJlZClcbiIKLSAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICBpbmNyIGNvdW50Ci0gICAgICAgICAgIH0KLSAgICAgICAgIH0KLSAgICAgIH0KLSAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhmcF90Y2xfcHJvYyldfSB7Ci0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIElORk86ICAgIGZwX3RjbF9wcm9jID0gJHZhcnMoZnBfdGNsX3Byb2MpXG4iCi0gICAgICAgICBpbmNyIGNvdW50Ci0gICAgICB9Ci0KLSAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhvYV9mcCldfSB7IAotICAgICAgICAgaWYge1tsbGVuZ3RoICR2YXJzKG9hX2ZwKV0gPT0gM30gewotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICBJTkZPOiAgICAgICAgICBvYV9mcCA9ICR2YXJzKG9hX2ZwKVxuIgotICAgICAgICAgICAgaW5jciBjb3VudAotICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgRVJST1I6IE9BIGZsb29ycGxhbiB2YXJpYWJsZSAob2FfZnApIHNob3VsZCBiZSAnbGliIGNlbGwgdmlldyciCi0gICAgICAgICAgICBzZXQgZXJyb3JzKCRlcnJvcl9jb3VudCkgIk9BIGZsb29ycGxhbiB2YXJpYWJsZSAob2FfZnApIHNob3VsZCBiZSAnbGliIGNlbGwgdmlldyciCi0gICAgICAgICAgICBpbmNyIGVycm9yX2NvdW50Ci0gICAgICAgICB9Ci0gICAgICB9IGVsc2UgewotICAgICAgICAgaWYgeyRjb3VudCA9PSAwfSB7Ci0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIFdBUk5JTkc6IE5laXRoZXIgZnBfZmlsZSwgZGVmX2ZpbGVzLCBmcF90Y2xfZmlsZSwgZnBfdGNsX3Byb2MgYXJlIGRlZmluZWRcbiIKLSAgICAgICAgICAgIHNldCB3YXJuaW5ncygkd2FybmluZ19jb3VudCkgIkVpdGhlciBmcF9maWxlLCBkZWZfZmlsZXMsIGZwX3RjbF9maWxlLCBmcF90Y2xfcHJvYyBzaG91bGQgYmUgZGVmaW5lZCIKLSAgICAgICAgICAgIGluY3Igd2FybmluZ19jb3VudAotICAgICAgICAgfQotICAgICAgfQotCi0gICAgICBpZiB7W3N0cmluZyBjb21wYXJlIC1ub2Nhc2UgJHZhcnMobmV0bGlzdF90eXBlKSAidmVyaWxvZyJdPj0wfSB7Ci0gICAgICAgICAjIEJDTDogTm90ZSAtIFRoaXMgY29kZSByZW1vdmVkIGFzIHRoZSBSQyBGb3VuZGF0aW9uIEZsb3cgd2lsbCBzZXQgdmFycyhkZWZfbmV0bGlzdCkgd2hlbiBpdAotICAgICAgICAgIyBpc24ndCBkZWZpbmVkIGluIHRoZSB1c2VyJ3Mgc2V0dXAudGNsCi0gICAgICAgICAjaWYgeyR2YXJzKHJjKSAmJiAhW2luZm8gZXhpc3RzIHZhcnMobmV0bGlzdCldfSB7Ci0gICAgICAgICAjICAgc2V0IHZhcnMobmV0bGlzdCkgJHZhcnMoZGJzX2RpcikvJHZhcnMoZGVzaWduKS5zeW5fcGxhY2VkLnYuZ3oKLSAgICAgICAgICN9Ci0gICAgICAgICBpZiB7ISR2YXJzKHJjKX0gewotICAgICAgICAgICAjIEJDTDogT25seSBjaGVjayBmb3IgdmFycyhuZXRsaXN0KSBpZiBub3QgaW4gUkMgbW9kZQotICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMobmV0bGlzdCldfSB7Ci0gICAgICAgICAgICAgICMgQkNMOiBBZGRlZCBzdWJzdCBhcm91bmQgdmFycyhuZXRsaXN0KQotICAgICAgICAgICAgICBmb3JlYWNoIGZpbGUgW3N1YnN0ICR2YXJzKG5ldGxpc3QpXSB7Ci0gICAgICAgICAgICAgICAgIGlmIHshJHZhcnMocmMpfSB7Ci0gICAgICAgICAgICAgICAgICAgIGxhcHBlbmQgY2hlY2soZmlsZXMpICRmaWxlCi0gICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIElORk86ICAgIG5ldGxpc3QgPSAkdmFycyhuZXRsaXN0KVxuIgotICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICBpZiB7KCR2YXJzKG5ldGxpc3RfdHlwZSkgPT0gIlZlcmlsb2ciKX0gewotICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIEVSUk9SOiBBIHZlcmlsb2cgbmV0bGlzdCBmaWxlIG11c3QgYmUgZGVmaW5lZFxuIgotICAgICAgICAgICAgICAgICBzZXQgZXJyb3JzKCRlcnJvcl9jb3VudCkgIkEgdmVyaWxvZyBuZXRsaXN0IGZpbGUgbXVzdCBiZSBkZWZpbmVkIgotICAgICAgICAgICAgICAgICBpbmNyIGVycm9yX2NvdW50Ci0gICAgICAgICAgICAgIH0KLSAgICAgICAgICAgfQotICAgICAgICAgfQotICAgICAgfSBlbHNlaWYge1tzdHJpbmcgY29tcGFyZSAtbm9jYXNlICR2YXJzKG5ldGxpc3RfdHlwZSkgIm9hIl09PTB9IHsKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgSU5GTzogICAgbmV0bGlzdF90eXBlID0gJHZhcnMobmV0bGlzdF90eXBlKVxuIgotICAgICAgICAgZm9yZWFjaCByZXF1aXJlZCAib2FfcmVmX2xpYiBvYV9kZXNpZ25fbGliIG9hX2Rlc2lnbl9jZWxsIG9hX2Rlc2lnbl92aWV3IiB7Ci0gICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJHJlcXVpcmVkKV0gJiYgKCR2YXJzKCRyZXF1aXJlZCkgIT0gIiIpfSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIElORk86ICAgICAgICRyZXF1aXJlZCA9ICR2YXJzKCRyZXF1aXJlZClcbiIKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIEVSUk9SOiBWYXJpYWJsZSAkcmVxdWlyZWQgbXVzdCBiZSBkZWZpbmVkIHdoZW4gbmV0bGlzdF90eXBlIGlzIG9wZW4gYWNjZXNzIgotICAgICAgICAgICAgICAgc2V0IGVycm9ycygkZXJyb3JfY291bnQpICJWYXJpYWJsZSAkcmVxdWlyZWQgbXVzdCBiZSBkZWZpbmVkIHdoZW4gbmV0bGlzdF90eXBlIGlzIG9wZW4gYWNjZXNzIgotICAgICAgICAgICAgICAgaW5jciBlcnJvcl9jb3VudAotICAgICAgICAgICAgfQotICAgICAgICAgfQotICAgICAgfQotICAgICAgaWYge1tzdHJpbmcgY29tcGFyZSAtbm9jYXNlICR2YXJzKGRic19mb3JtYXQpICJvYSJdPT0wfSB7Ci0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIElORk86ICAgIGRic19mb3JtYXQgPSAkdmFycyhkYnNfZm9ybWF0KVxuIgotICAgICAgICAgZm9yZWFjaCByZXF1aXJlZCAib2FfcmVmX2xpYiBvYV9kZXNpZ25fbGliIG9hX2Fic3RyYWN0X25hbWUgb2FfbGF5b3V0X25hbWUiIHsKLSAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkcmVxdWlyZWQpXSAmJiAoJHZhcnMoJHJlcXVpcmVkKSAhPSAiIil9IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgSU5GTzogICAgICAgJHJlcXVpcmVkID0gJHZhcnMoJHJlcXVpcmVkKVxuIgotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgRVJST1I6IFZhcmlhYmxlICRyZXF1aXJlZCBtdXN0IGJlIGRlZmluZWQgd2hlbiBkYnNfZm9ybWF0IGlzIG9wZW4gYWNjZXNzIgotICAgICAgICAgICAgICAgc2V0IGVycm9ycygkZXJyb3JfY291bnQpICJWYXJpYWJsZSAkcmVxdWlyZWQgbXVzdCBiZSBkZWZpbmVkIHdoZW4gZGJzX2Zvcm1hdCBpcyBvcGVuIGFjY2VzcyIKLSAgICAgICAgICAgICAgIGluY3IgZXJyb3JfY291bnQKLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0KLSAgICAgIH0KLSAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhlbmFibGVfbHZzKV0gJiYgJHZhcnMoZW5hYmxlX2x2cyl9IHsKLSAgICAgICAgIGlmIHtbc3RyaW5nIGNvbXBhcmUgLW5vY2FzZSAkdmFycyhkYnNfZm9ybWF0KSAib2EiXSE9MH0gewotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICBXQVJOSU5HOiBWYXJpYWJsZSBlbmFibGVfbHZzIGlzIG9ubHkgYWxsb3dlZCB3aGVuIGRic19mb3JtYXQgaXMgb3BlbiBhY2Nlc3MiCi0gICAgICAgICAgICBzZXQgd2FybmluZ3MoJHdhcm5pbmdfY291bnQpICJWYXJpYWJsZSBlbmFibGVfbHZzIGlzIG9ubHkgYWxsb3dlZCB3aGVuIGRic19mb3JtYXQgaXMgb3BlbiBhY2Nlc3MiCi0gICAgICAgICAgICBpbmNyIHdhcm5pbmdfY291bnQKLSAgICAgICAgICAgIHNldCB2YXJzKGVuYWJsZV9sdnMpIGZhbHNlCi0gICAgICAgICB9Ci0gICAgICB9Ci0KLSMgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMobmV0bGlzdCldfSB7Ci0jICAgICAgICAgZm9yZWFjaCBmaWxlICR2YXJzKG5ldGxpc3QpIHsKLSMgICAgICAgICAgICBsYXBwZW5kIGNoZWNrKGZpbGVzKSAkZmlsZQotIyAgICAgICAgIH0KLSMgICAgICB9IGVsc2UgewotIyAgICAgICAgIGlmIHskdmFycyhuZXRsaXN0X3R5cGUpID09ICJWZXJpbG9nIn0gewotIyAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgRVJST1I6IEEgdmVyaWxvZyBuZXRsaXN0IGZpbGUgbXVzdCBiZSBkZWZpbmVkXG4iCi0jICAgICAgICAgICAgc2V0IGVycm9ycygkZXJyb3JfY291bnQpICJBIHZlcmlsb2cgbmV0bGlzdCBmaWxlIG11c3QgYmUgZGVmaW5lZCIKLSMgICAgICAgICAgICBpbmNyIGVycm9yX2NvdW50Ci0jCi0jICAgICAgICAgfQotIyAgICAgIH0KLQotICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGN0c19zcGVjKV0gJiYgKCR2YXJzKGN0c19lbmdpbmUpID09ICJjY29wdCIpfSB7Ci0jICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICBFUlJPUjogVmFyaWFibGUgY3RzX3NwZWMgZGVmaW5lZCBhbmQgY3RzX2VuZ2luZSBpcyBzZXQgdG8gY2NvcHRcbiIKLSMgICAgICAgICBzZXQgZXJyb3JzKCRlcnJvcl9jb3VudCkgIlZhcmlhYmxlIGN0c19zcGVjIGRlZmluZWQgYW5kIGN0c19lbmdpbmUgaXMgc2V0IHRvIGNjb3B0IgotIyAgICAgICAgIGluY3IgZXJyb3JfY291bnQKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgV0FSTklORzogVmFyaWFibGUgY3RzX3NwZWMgZGVmaW5lZCBhbmQgY3RzX2VuZ2luZSBpcyBzZXQgdG8gY2NvcHRcbiIKLSAgICAgICAgIHNldCB3YXJuaW5ncygkd2FybmluZ19jb3VudCkgIlZhcmlhYmxlIGN0c19zcGVjIGRlZmluZWQgYW5kIGN0c19lbmdpbmUgaXMgc2V0IHRvIGNjb3B0IgotICAgICAgICAgaW5jciB3YXJuaW5nX2NvdW50Ci0gICAgICAgICBmb3JlYWNoIGZpbGUgJHZhcnMoY3RzX3NwZWMpIHsKLSAgICAgICAgICAgIGxhcHBlbmQgY2hlY2soZmlsZXMpICRmaWxlCi0gICAgICAgICB9Ci0gICAgICB9Ci0KLSMgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoY3BmX2ZpbGUpXSAmJiAkdmFycyhjcGZfdGltaW5nKX0gewotIyAgICAgICAgIHNldCByZXF1aXJlZF9saXN0ICJmbG93IHByb2Nlc3MgbGlicmFyeV9zZXRzIHJjX2Nvcm5lcnMgZGVsYXlfY29ybmVycyIKLSMgICAgICB9IGVsc2UgewotICAgICAgICAgc2V0IHJlcXVpcmVkX2xpc3QgImZsb3cgcHJvY2VzcyBsaWJyYXJ5X3NldHMgcmNfY29ybmVycyBkZWxheV9jb3JuZXJzIHNldHVwX2FuYWx5c2lzX3ZpZXdzIFwKLSAgICAgICAgICAgICAgICAgICAgICAgaG9sZF9hbmFseXNpc192aWV3cyBhY3RpdmVfc2V0dXBfdmlld3MgYWN0aXZlX2hvbGRfdmlld3MgZGVmYXVsdF9zZXR1cF92aWV3IGRlZmF1bHRfaG9sZF92aWV3IgotIyAgICAgIH0KLQotICAgICAgZm9yZWFjaCByZXF1aXJlZCAkcmVxdWlyZWRfbGlzdCB7Ci0gICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJHJlcXVpcmVkKV0gJiYgKCR2YXJzKCRyZXF1aXJlZCkgIT0gIiIpfSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIElORk86ICAgICRyZXF1aXJlZCA9ICR2YXJzKCRyZXF1aXJlZClcbiIKLSAgICAgICAgICAgICAgIGlmIHskcmVxdWlyZWQgPT0gImZsb3cifSB7Ci0gICAgICAgICAgICAgICAgICBpZiB7KFtpbmZvIGV4aXN0cyB2YXJzKHBhcnRpdGlvbl9saXN0KV0gfHwgKCR2YXJzKGlsbV9saXN0KSAhPSAiIikpICYmICgkdmFycyhmbG93KSAhPSAibW1tYyIpfSB7Ci0gICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIEVSUk9SOiBGbG93IHZhcmlhYmxlIHZhcnMoZmxvdykgbXVzdCBiZSBcIm1tbWNcIiB3aGVuIElMTXMgYXJlIGRlZmluZWRcbiIKLSAgICAgICAgICAgICAgICAgICAgIHNldCBlcnJvcnMoJGVycm9yX2NvdW50KSAiIyAgRVJST1I6IEZsb3cgdmFyaWFibGUgdmFycyhmbG93KSBtdXN0IGJlIFwibW1tY1wiIHdoZW4gSUxNcyBhcmUgZGVmaW5lZCIKLSAgICAgICAgICAgICAgICAgICAgIGluY3IgZXJyb3JfY291bnQKLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgIH0KLSAgICAgIH0KLQotIyAgICAgIGlmIHshW2luZm8gZXhpc3RzIHZhcnModmlld19kZWZpbml0aW9uX3RjbCldfSB7Ci0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgICAgICAgICAgICAgICAgTGlicmFyeSBTZXRzXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiIKLSAgICAgICAgIGZvcmVhY2ggbGlicmFyeV9zZXQgJHZhcnMobGlicmFyeV9zZXRzKSB7Ci0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIElORk86ICRsaWJyYXJ5X3NldDpcbiIKLSAgICAgICAgICAgIGZvcmVhY2ggcmVxdWlyZWQgInRpbWluZyIgewotICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCRsaWJyYXJ5X3NldCwkcmVxdWlyZWQpXSAmJiAoJHZhcnMoJGxpYnJhcnlfc2V0LCRyZXF1aXJlZCkgIT0gIiIpfSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIElORk86ICAgICRyZXF1aXJlZCA9IFxuIgotICAgICAgICAgICAgICAgICAgZm9yZWFjaCBsaWIgJHZhcnMoJGxpYnJhcnlfc2V0LCRyZXF1aXJlZCkgewotICAgIyAgICAgICAgICAgICAgICAgIGxhcHBlbmQgY2hlY2soZmlsZXMpICRsaWIKLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgSU5GTzogICAgICAgJGxpYlxuIgotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgIGlmIHtbRkY6OmlzX2xwX2Zsb3ddfSB7Ci0gICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIFdBUk5JTkc6IFZhcmlhYmxlIHZhcnMoJGxpYnJhcnlfc2V0LCRyZXF1aXJlZCkgbm90IGRlZmluZWRcbiIKLSAgICAgICAgICAgICAgICAgICAgIHNldCB3YXJuaW5ncygkd2FybmluZ19jb3VudCkgIlZhcmlhYmxlIHZhcnMoJGxpYnJhcnlfc2V0LCRyZXF1aXJlZCkgbm90IGRlZmluZWQiCi0gICAgICAgICAgICAgICAgICAgICBpbmNyIHdhcm5pbmdfY291bnQKLSAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIEVSUk9SOiBSZXF1aXJlZCB2YXJpYWJsZSB2YXJzKCRsaWJyYXJ5X3NldCwkcmVxdWlyZWQpIG5vdCBkZWZpbmVkIG9yIGVtcHR5XG4iCi0gICAgICAgICAgICAgICAgICAgICBzZXQgZXJyb3JzKCRlcnJvcl9jb3VudCkgIlJlcXVpcmVkIHZhcmlhYmxlIHZhcnMoJGxpYnJhcnlfc2V0LCRyZXF1aXJlZCkgbm90IGRlZmluZWQgb3IgZW1wdHkiCi0gICAgICAgICAgICAgICAgICAgICBpbmNyIGVycm9yX2NvdW50Ci0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJGxpYnJhcnlfc2V0LGFvY3YpXX0gewotICAgICAgICAgICAgICAgZm9yZWFjaCBmaWxlICR2YXJzKCRsaWJyYXJ5X3NldCxhb2N2KSB7Ci0gICAgICAgICAgICAgICAgICBpZiB7IVtmaWxlIGV4aXN0cyAkZmlsZV19IHsKLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgV0FSTklORzogQU9DViB0YWJsZSBmaWxlIGRvZXMgbm90IGV4aXN0ICgkZmlsZSlcbiIKLSAgICAgICAgICAgICAgICAgICAgIHNldCB3YXJuaW5ncygkd2FybmluZ19jb3VudCkgIkFPQ1YgdGFibGUgZmlsZSBkb2VzIG5vdCBleGlzdCAoJGZpbGUpIgotICAgICAgICAgICAgICAgICAgICAgaW5jciB3YXJuaW5nX2NvdW50Ci0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgaWYgeyR2YXJzKGVuYWJsZV9hb2N2KX0gewotICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICBXQVJOSU5HOiBBT0NWIGVuYWJsZWQsIGJ1dCB0YWJsZSBub3QgcHJvdmlkZWQgZm9yICRsaWJyYXJ5X3NldFxuIgotICAgICAgICAgICAgICAgICAgICAgc2V0IHdhcm5pbmdzKCR3YXJuaW5nX2NvdW50KSAiQU9DViBlbmFibGVkLCBidXQgdGFibGUgbm90IHByb3ZpZGVkIGZvciAkbGlicmFyeV9zZXQiCi0gICAgICAgICAgICAgICAgICAgICBpbmNyIHdhcm5pbmdfY291bnQKLSAgICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCRsaWJyYXJ5X3NldCxzb2N2KV19IHsKLSAgICAgICAgICAgICAgIGZvcmVhY2ggZmlsZSAkdmFycygkbGlicmFyeV9zZXQsc29jdikgewotICAgICAgICAgICAgICAgICAgaWYgeyFbZmlsZSBleGlzdHMgJGZpbGVdfSB7Ci0gICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIFdBUk5JTkc6IFNPQ1YgdGFibGUgZmlsZSBkb2VzIG5vdCBleGlzdCAoJGZpbGUpXG4iCi0gICAgICAgICAgICAgICAgICAgICBzZXQgd2FybmluZ3MoJHdhcm5pbmdfY291bnQpICJTT0NWIHRhYmxlIGZpbGUgZG9lcyBub3QgZXhpc3QgKCRmaWxlKSIKLSAgICAgICAgICAgICAgICAgICAgIGluY3Igd2FybmluZ19jb3VudAotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIGlmIHskdmFycyhlbmFibGVfc29jdil9IHsKLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgV0FSTklORzogU09DViBlbmFibGVkLCBidXQgdGFibGUgbm90IHByb3ZpZGVkIGZvciAkbGlicmFyeV9zZXRcbiIKLSAgICAgICAgICAgICAgICAgICAgIHNldCB3YXJuaW5ncygkd2FybmluZ19jb3VudCkgIlNPQ1YgZW5hYmxlZCwgYnV0IHRhYmxlIG5vdCBwcm92aWRlZCBmb3IgJGxpYnJhcnlfc2V0IgotICAgICAgICAgICAgICAgICAgICAgaW5jciB3YXJuaW5nX2NvdW50Ci0gICAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkbGlicmFyeV9zZXQsc2kpXX0gewotICAgICAgICAgICAgICAgZm9yZWFjaCBmaWxlICR2YXJzKCRsaWJyYXJ5X3NldCxzaSkgewotICAgICAgICAgICAgICAgICAgaWYgeyFbZmlsZSBleGlzdHMgJGZpbGVdfSB7Ci0gICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIFdBUk5JTkc6IENEQiBmaWxlIGRvZXMgbm90IGV4aXN0ICgkZmlsZSlcbiIKLSAgICAgICAgICAgICAgICAgICAgIHNldCB3YXJuaW5ncygkd2FybmluZ19jb3VudCkgIkNEQiBmaWxlIGRvZXMgbm90IGV4aXN0ICgkZmlsZSkiCi0gICAgICAgICAgICAgICAgICAgICBpbmNyIHdhcm5pbmdfY291bnQKLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0gCi0gICAgICAgICB9Ci0jICAgICAgfQotCi0gICAgICBhcHBlbmQgY29tbWFuZHMgIiMgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgICAgICAgICAgICAgICAgTEVGIEZpbGVzXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgIiMgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiIKLSAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhsZWZfZmlsZXMpXX0gewotICAgICAgICAgZm9yZWFjaCBmaWxlICR2YXJzKGxlZl9maWxlcykgewotICAgIyAgICBsYXBwZW5kIGNoZWNrKGZpbGVzKSAkZmlsZQotICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgSU5GTzogJGZpbGVcbiIKLSAgICAgICAgIH0KLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgICBpZiB7KFtzdHJpbmcgdG9sb3dlciAkdmFycyhuZXRsaXN0X3R5cGUpXSA9PSAidmVyaWxvZyIpICYmICghW2luZm8gZXhpc3RzIHZhcnMob2FfcmVmX2xpYildKX0gewotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICBFUlJPUjogUmVxdWlyZWQgdmFyaWFibGUgdmFycyhsZWZfZmlsZXMpIG5vdCBkZWZpbmVkXG4iCi0gICAgICAgICAgICBzZXQgZXJyb3JzKCRlcnJvcl9jb3VudCkgIlJlcXVpcmVkIHZhcmlhYmxlIHZhcnMobGVmX2ZpbGVzKSBub3QgZGVmaW5lZCIKLSAgICAgICAgICAgIGluY3IgZXJyb3JfY291bnQKLSAgICAgICAgIH0KLSAgICAgIH0KLQotICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKHBhcnRpdGlvbl9saXN0KV19IHsKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICAgICAgICAgICAgICAgICBIaWVyYXJjaGljYWwgXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgSU5GTzogcGFydGl0aW9ucyA9ICR2YXJzKHBhcnRpdGlvbl9saXN0KVxuIgotICAgICAgICAgc2V0IGN0c19zcGVjIFtGRjo6Z2V0X2J5X3N1ZmZpeCB2YXJzICIsY3RzX3NwZWMiXSAKLSAgICAgICAgIGlmIHskY3RzX3NwZWMgIT0gIiJ9IHsKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgIENUUyBTcGVjcyA6IFxuIgotICAgICAgICAgICAgZm9yZWFjaCBwYXJ0aXRpb24gJGN0c19zcGVjIHsKLSAgICAgICAgICAgICAgIGxhcHBlbmQgY2hlY2soZmlsZXMpICR2YXJzKCRwYXJ0aXRpb24sY3RzX3NwZWMpCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgICAgICAkcGFydGl0aW9uIC0+ICR2YXJzKCRwYXJ0aXRpb24sY3RzX3NwZWMpXG4iCi0gICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0gICAgICAgICBzZXQgbGF0ZW5jeV9zZGMgW0ZGOjpnZXRfYnlfc3VmZml4IHZhcnMgIixsYXRlbmN5X3NkYyJdCi0gICAgICAgICBpZiB7JGxhdGVuY3lfc2RjICE9ICIifSB7Ci0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgICBMYXRlbmN5IFNEQ3MgOlxuIgotICAgICAgICAgICAgZm9yZWFjaCBwYXJ0aXRpb24gJGxhdGVuY3lfc2RjIHsKLSAgICAgICAgICAgICAgIGxhcHBlbmQgY2hlY2soZmlsZXMpICR2YXJzKCRwYXJ0aXRpb24sbGF0ZW5jeV9zZGMpCi0gICAgICAgICAgICAgICBpZiB7W2xsZW5ndGggW3NwbGl0ICRwYXJ0aXRpb24gIiwiXV0gPT0gMX0geyAgCi0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgICAgICAkcGFydGl0aW9uIC0+ICR2YXJzKCRwYXJ0aXRpb24sbGF0ZW5jeV9zZGMpXG4iCi0gICAgICAgICAgICAgICB9IGVsc2UgeyAKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgICAgIFtsaW5kZXggW3NwbGl0ICRwYXJ0aXRpb24gIiwiXSAwXSAoW2xpbmRleCBbc3BsaXQgJHBhcnRpdGlvbiAiLCJdIDFdKSAtPiAkdmFycygkcGFydGl0aW9uLGxhdGVuY3lfc2RjKVxuIgotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAgfQotICAgICAgfQotICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGVuYWJsZV9wYWMpXSAmJiAkdmFycyhlbmFibGVfcGFjKX0gewotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICBXQVJOSU5HOiBQQUMgaXMgb2Jzb2xldGUgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSB2ZXJzaW9uLiBDb25zaWRlciB1c2luZyBTaWduLW9mZiBFQ08uIgotICAgICAgICAgc2V0IHdhcm5pbmdzKCR3YXJuaW5nX2NvdW50KSAiUEFDIGlzIG9ic29sZXRlIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgdmVyc2lvbi4gQ29uc2lkZXIgdXNpbmcgU2lnbi1vZmYgRUNPLiIKLSAgICAgICAgIGluY3Igd2FybmluZ19jb3VudAotICAgICAgICAgc2V0IHBhY19tb2RlIFtGRjo6Z2V0X2J5X3N1ZmZpeCB2YXJzICIscGFjX21vZGUiXQotICAgICAgICAgaWYgeyRwYWNfbW9kZSAhPSAiIn0gewotICAgICAgICAgICAgc2V0IHBhY19saXN0IFtsaXN0ICJyZWFkX29ubHkiICJpbnRlcmZhY2UiICJpbG0iICJhbGwiXQotICAgICAgICAgICAgZm9yZWFjaCBwYWMgJHBhY19tb2RlIHsKLSAgICAgICAgICAgICAgIGlmIHtbbHNlYXJjaCAkcGFjX2xpc3QgJHZhcnMoJHBhYyxwYWNfbW9kZSldID09IC0xfSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIEVSUk9SOiAkcGFjIHBhY19tb2RlIGludmFsaWQgdmFsdWU7IG11c3QgYmUgb25lIG9mIFwnJHBhY19saXN0XCdcbiIKLSAgICAgICAgICAgICAgICAgIHNldCBlcnJvcnMoJGVycm9yX2NvdW50KSAiJHBhYyBwYWNfbW9kZSBpbnZhbGlkIHZhbHVlOyBtdXN0IGJlIG9uZSBvZiBcJyRwYWNfbGlzdFwnIiAKLSAgICAgICAgICAgICAgICAgIGluY3IgZXJyb3JfY291bnQKLSAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAgfQotICAgICAgfQotICAgICAgaWYge1tGRjo6aXNfbHBfZmxvd119IHsKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICAgICAgICAgICAgICAgIExvdyBQb3dlciBcbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuIgotICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGllZWUxODAxX2ZpbGUpXX0gewotICAgICAgICAgICAgIHNldCB3YXJuaW5ncygkd2FybmluZ19jb3VudCkgIlVzaW5nIHZhcnMoaWVlZTE4MDFfZmlsZSkgcmVxdWlyZXMgdGhlIGZvbGxvd2luZyBsaW1pdGVkIGFjY2VzcyBmZWF0dXJlIDogbXZzU3VwcG9ydElFRUUxODAxIgotICAgICAgICAgICAgIGluY3Igd2FybmluZ19jb3VudAotICAgICAgICAgfQotICAgICAgICAgc2V0IG51bV9wb3dlcl9pbnRlbnRfZmlsZXMgMAotICAgICAgICAgZm9yZWFjaCB2IHtjcGZfZmlsZSBpZWVlMTgwMV9maWxlfSB7Ci0gICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJHYpXX0gewotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICBJTkZPOiAkdiA9ICR2YXJzKCR2KVxuIgotICAgICAgICAgICAgICAgbGFwcGVuZCBjaGVjayhmaWxlcykgJHZhcnMoJHYpCi0gICAgICAgICAgICAgICBpbmNyIG51bV9wb3dlcl9pbnRlbnRfZmlsZXMKLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0KLSAgICAgICAgIGlmIHskbnVtX3Bvd2VyX2ludGVudF9maWxlcyA+IDF9IHsKLSAgICAgICAgICAgIHNldCBlcnJvcnMoJGVycm9yX2NvdW50KSAidmFycyhjcGZfZmlsZSkgYW5kIHZhcnMoaWVlZTE4MDFfZmlsZSkgbWF5IG5vdCBib3RoIGJlIHNwZWNpZmllZC4iCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIEVSUk9SOiAkZXJyb3JzKCRlcnJvcl9jb3VudClcbiIKLSAgICAgICAgICAgIGluY3IgZXJyb3JfY291bnQKLSAgICAgICAgIH0KLQotICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKHBvd2VyX2RvbWFpbnMpXSAmJiAoJHZhcnMocG93ZXJfZG9tYWlucykgIT0gIiIpfSB7Ci0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIElORk86IHBvd2VyX2RvbWFpbnMgPSAgJHZhcnMocG93ZXJfZG9tYWlucylcbiIKLSAgICAgICAgICAgIGZvcmVhY2ggZG9tYWluICR2YXJzKHBvd2VyX2RvbWFpbnMpIHsKLSAgICAgICAgICAgICAgIHNldCBwcmludCgkZG9tYWluKSAxCi0gICAgICAgICAgICAgICBmb3JlYWNoIG9wdGlvbmFsICJmaWxsZXJfY2VsbHMgdGllX2NlbGxzIGVuZGNhcHMgd2VsbHRhcHMiIHsKLSAgICAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkZG9tYWluLCRvcHRpb25hbCldICYmICgkdmFycygkZG9tYWluLCRvcHRpb25hbCkgIT0gIiIpfSB7Ci0gICAgICAgICAgICAgICAgICAgICBpZiB7JHByaW50KCRkb21haW4pfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIElORk86ICAgICRkb21haW46XG4iCi0gICAgICAgICAgICAgICAgICAgICAgICBzZXQgcHJpbnQoJGRvbWFpbikgMAotICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICBJTkZPOiAgICAgICAkb3B0aW9uYWwgPSAkdmFycygkZG9tYWluLCRvcHRpb25hbClcbiIKLSAgICAgICAgICAgICAgICAgIH0KLSMgICAgICAgICAgICAgICAgIGlmIHskb3B0aW9uYWwgPT0gImZpbGxlcl9jZWxsc30gewotIyAgICAgICAgICAgICAgICAgICAgIHNldCBwcm9jZXNzIFtyZWdzdWIgIm5tIiAkdmFycyhwcm9jZXNzKSAiIl0KLSMgICAgICAgICAgICAgICAgICAgICBpZiB7W2V4cHIgJHByb2Nlc3MgPD0gMjgpXSAmJiBbaW5mbyBleGlzdHMgdmFycyhmaWxsZXJfY2VsbHMsbWluX2dhcCldfSB7Ci0jICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICBFUlJPUjogRm9yIHByb2Nlc3Mgbm9kZSA8IDI4bm0sIHZhcmlhYmxlIHZhcnMoZmlsbGVyX2NlbGxzLG1pbl9nYXApIGlzIHJlcXVpcmVkXG4iCi0jICAgICAgICAgICAgICAgICAgICAgICAgc2V0IGVycm9ycygkZXJyb3JfY291bnQpICJGb3IgcHJvY2VzcyBub2RlIDwgMjhubSwgdmFyaWFibGUgdmFycyhmaWxsZXJfY2VsbHMsbWluX2dhcCkgaXMgcmVxdWlyZWQiCi0jICAgICAgICAgICAgICAgICAgICAgICAgaW5jciBlcnJvcl9jb3VudAotIyAgICAgICAgICAgICAgICAgICAgIH0KLSMgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICBXQVJOSU5HOiBSZWNvbW1lbmRlZCB2YXJpYWJsZSB2YXJzKHBvd2VyX2RvbWFpbnMpIG5vdCBkZWZpbmVkXG4iCi0gICAgICAgICAgICBzZXQgd2FybmluZ3MoJHdhcm5pbmdfY291bnQpICJSZWNvbW1lbmRlZCB2YXJpYWJsZSB2YXJzKHBvd2VyX2RvbWFpbnMpIG5vdCBkZWZpbmVkIgotICAgICAgICAgICAgaW5jciB3YXJuaW5nX2NvdW50Ci0gICAgICAgICB9Ci0gICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMocG93ZXJfYW5hbHlzaXNfdmlldyldICYmICgkdmFycyhwb3dlcl9hbmFseXNpc192aWV3KSAhPSAiIil9IHsKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgSU5GTzogcG93ZXJfYW5hbHlzaXNfdmlldyA9ICAkdmFycyhwb3dlcl9hbmFseXNpc192aWV3KVxuIgotICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgV0FSTklORzogUmVjb21tZW5kZWQgdmFyaWFibGUgdmFycyhwb3dlcl9hbmFseXNpc192aWV3KSBub3QgZGVmaW5lZFxuIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICAgICAgICAgICBXaWxsIGRlZmF1bHQgdG8gdGhlIGRlZmF1bHQgc2V0dXAgYW5hbHlzaXMgdmlld1xuIgotICAgICAgICAgICAgc2V0IHdhcm5pbmdzKCR3YXJuaW5nX2NvdW50KSAiUmVjb21tZW5kZWQgdmFyaWFibGUgdmFycyhwb3dlcl9hbmFseXNpc192aWV3KSBub3QgZGVmaW5lZCIKLSAgICAgICAgICAgIGluY3Igd2FybmluZ19jb3VudAotICAgICAgICAgfQotICAgICAgfQotCi0jICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycyh2aWV3X2RlZmluaXRpb25fdGNsKV19IHsKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICAgICAgICAgICAgICAgICAgUkMgQ29ybmVyc1xuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4iCi0gICAgICAgICBzZXQgY2hlY2socmNfY29ybmVycykgW2xpc3RdCi0gICAgICAgICBmb3JlYWNoIHJjX2Nvcm5lciAkdmFycyhyY19jb3JuZXJzKSB7Ci0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIElORk86ICRyY19jb3JuZXI6XG4iCi0gICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJHJjX2Nvcm5lcixjYXBfdGFibGUpXSAmJiAoJHZhcnMoJHJjX2Nvcm5lcixjYXBfdGFibGUpICE9ICIiKX0gewotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICBJTkZPOiAgICBjYXBfdGFibGUgPSAkdmFycygkcmNfY29ybmVyLGNhcF90YWJsZSlcbiIKLSAgICAgICAgICAgICAgIGxhcHBlbmQgY2hlY2socmNfY29ybmVycykgJHZhcnMoJHJjX2Nvcm5lcixjYXBfdGFibGUpCi0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycygkcmNfY29ybmVyLHF4X3RlY2hfZmlsZSldfSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIEVSUk9SOiBWYXJpYWJsZSB2YXJzKCRyY19jb3JuZXIsY2FwX3RhYmxlKSBvciB2YXJzKCRyY19jb3JuZXIscXhfdGVjaF9maWxlKSBtdXN0IGJlIGRlZmluZWRcbiIKLSAgICAgICAgICAgICAgICAgIHNldCBlcnJvcnMoJGVycm9yX2NvdW50KSAiVmFyaWFibGUgdmFycygkcmNfY29ybmVyLGNhcF90YWJsZSkgb3IgdmFycygkcmNfY29ybmVyLHF4X3RlY2hfZmlsZSkgbXVzdCBiZSBkZWZpbmVkIgotICAgICAgICAgICAgICAgICAgaW5jciBlcnJvcl9jb3VudAotICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgaWYge1tsaW5kZXggW3NwbGl0ICR2YXJzKHZlcnNpb24pICIuIl0gIDBdIDwgMTV9IHsKLSAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIElORk86IFZhcmlhYmxlIHZhcnMoJHJjX2Nvcm5lcixjYXBfdGFibGUpIG5vdCBkZWZpbmVkXG4iCi0gICAgICAgICAgICAgICAgICAgc2V0IGluZm9zKCRpbmZvX2NvdW50KSAiVmFyaWFibGUgdmFycygkcmNfY29ybmVyLGNhcF90YWJsZSkgbm90IGRlZmluZWQiCi0gICAgICAgICAgICAgICAgICAgaW5jciBpbmZvX2NvdW50Ci0gICAgICAgICAgICAgICAgIH0gCi0gICAgICAgICAgICAgICB9IAotICAgICAgICAgICAgfQotIyAgICAgICAgICAgIGlmIHskdmFycyhjdHNfZW5naW5lKSAhPSAiY3RzIn0gewotIyAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkcmNfY29ybmVyLGF0Zl9maWxlKV0gJiYgKCR2YXJzKCRyY19jb3JuZXIsYXRmX2ZpbGUpICE9ICIiKX0gewotIyAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgSU5GTzogICAgIGF0Zl9maWxlID0gJHZhcnMoJHJjX2Nvcm5lcixhdGZfZmlsZSlcbiIKLSMgICAgICAgICAgICAgICAgICBsYXBwZW5kIGNoZWNrKHJjX2Nvcm5lcnMpICR2YXJzKCRyY19jb3JuZXIsYXRmX2ZpbGUpCi0jICAgICAgICAgICAgICAgfSBlbHNlIHsKLSMgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIFdBUk5JTkc6IFJlY29tbWVuZGVkIHZhcmlhYmxlIHZhcnMoJHJjX2Nvcm5lcixhdGZfZmlsZSkgbm90IGRlZmluZWRcbiIKLSMgICAgICAgICAgICAgICAgICBzZXQgd2FybmluZ3MoJHdhcm5pbmdfY291bnQpICJSZWNvbW1lbmRlZCB2YXJpYWJsZSB2YXJzKCRyY19jb3JuZXIsYXRmX2ZpbGUpIG5vdCBkZWZpbmVkIgotIyAgICAgICAgICAgICAgICAgIGluY3Igd2FybmluZ19jb3VudAotIyAgICAgICAgICAgICAgIH0KLSMgICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJHJjX2Nvcm5lcixUKV0gJiYgKCR2YXJzKCRyY19jb3JuZXIsVCkgIT0gIiIpfSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIElORk86ICAgIHRlbXBlcmF0dXJlID0gJHZhcnMoJHJjX2Nvcm5lcixUKVxuIgotICAgICAgICAgICAgICAgc2V0IHZhcnMoJHJjX2Nvcm5lcix0ZW1wZXJhdHVyZSkgJHZhcnMoJHJjX2Nvcm5lcixUKQotICAgICAgICAgICAgICAgbGFwcGVuZCBjaGVjayhpbnRlZ2VycykgIiRyY19jb3JuZXIsVCIKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIFdBUk5JTkc6IFJlY29tbWVuZGVkIHZhcmlhYmxlIHZhcnMoJHJjX2Nvcm5lcixUKSBub3QgZGVmaW5lZFxuIgotICAgICAgICAgICAgICAgc2V0IHdhcm5pbmdzKCR3YXJuaW5nX2NvdW50KSAiUmVjb21tZW5kZWQgdmFyaWFibGUgdmFycygkcmNfY29ybmVyLFQpIG5vdCBkZWZpbmVkIgotICAgICAgICAgICAgICAgaW5jciB3YXJuaW5nX2NvdW50Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJHJjX2Nvcm5lcixxeF90ZWNoX2ZpbGUpXSAmJiAoJHZhcnMoJHJjX2Nvcm5lcixxeF90ZWNoX2ZpbGUpICE9ICIiKX0gewotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICBJTkZPOiAgICBxeF90ZWNoX2ZpbGUgPSAkdmFycygkcmNfY29ybmVyLHF4X3RlY2hfZmlsZSlcbiIKLSAgICAgICAgICAgICAgIHNldCB2YXJzKCRyY19jb3JuZXIscXJjX3RlY2gpICR2YXJzKCRyY19jb3JuZXIscXhfdGVjaF9maWxlKQotICAgICAgICAgICAgICAgbGFwcGVuZCBjaGVjayhyY19jb3JuZXJzKSAkdmFycygkcmNfY29ybmVyLHF4X3RlY2hfZmlsZSkKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMocG9zdHJvdXRlX2V4dHJhY3Rpb25fZWZmb3J0KV0gJiYgKCR2YXJzKHBvc3Ryb3V0ZV9leHRyYWN0aW9uX2VmZm9ydCkgIT0gImxvdyIpfSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIEVSUk9SOiBxeF90ZWNoX2ZpbGUgbm90IGRlZmluZWQgZm9yICRyY19jb3JuZXIgYW5kIHBvc3Ryb3V0ZV9leHRyYWN0aW9uX2VmZm9ydCBpcyBzZXQgdG8gJHZhcnMocG9zdHJvdXRlX2V4dHJhY3Rpb25fZWZmb3J0KVxuIgotICAgICAgICAgICAgICAgICAgc2V0IGVycm9ycygkZXJyb3JfY291bnQpICJxeF90ZWNoX2ZpbGUgbm90IGRlZmluZWQgZm9yICRyY19jb3JuZXIgYW5kIHBvc3Ryb3V0ZV9leHRyYWN0aW9uX2VmZm9ydCBpcyBzZXQgdG8gJHZhcnMocG9zdHJvdXRlX2V4dHJhY3Rpb25fZWZmb3J0KSIKLSAgICAgICAgICAgICAgICAgIGluY3IgZXJyb3JfY291bnQKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhzaWdub2ZmX2V4dHJhY3Rpb25fZWZmb3J0KV0gJiYgKCR2YXJzKHNpZ25vZmZfZXh0cmFjdGlvbl9lZmZvcnQpICE9ICJsb3ciKX0gewotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICBFUlJPUjogcXhfdGVjaF9maWxlIG5vdCBkZWZpbmVkIGZvciAkcmNfY29ybmVyIGFuZCBzaWdub2ZmX2V4dHJhY3Rpb25fZWZmb3J0IGlzIHNldCB0byAkdmFycyhzaWdub2ZmX2V4dHJhY3Rpb25fZWZmb3J0KVxuIgotICAgICAgICAgICAgICAgICAgc2V0IGVycm9ycygkZXJyb3JfY291bnQpICJxeF90ZWNoX2ZpbGUgbm90IGRlZmluZWQgZm9yICRyY19jb3JuZXIgYW5kIHNpZ25vZmZfZXh0cmFjdGlvbl9lZmZvcnQgaXMgc2V0IHRvICR2YXJzKHNpZ25vZmZfZXh0cmFjdGlvbl9lZmZvcnQpIgotICAgIyAgICAgICAgICAgICAgIHNldCBlcnJvcnMoJGVycm9yX2NvdW50KSAiUmVxdWlyZWQgdmFyaWFibGUgdmFycygkcmNfY29ybmVyLGNhcF90YWJsZSkgbm90IGRlZmluZWQiCi0gICAgICAgICAgICAgICAgICBpbmNyIGVycm9yX2NvdW50Ci0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0gICAKLSAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhvcGNvbmRzKV19IHsKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICAgICAgICAgICAgIE9wZXJhdGluZyBDb25kaXRpb25zXG4iCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiIKLSAgICAgICAgICAgIGZvcmVhY2ggb3Bjb25kICR2YXJzKG9wY29uZHMpIHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgSU5GTzogJG9wY29uZDpcbiIKLSAgICAgICAgICAgICAgIGZvcmVhY2ggcmVxdWlyZWQgIlAgViBUIiB7Ci0gICAgICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJG9wY29uZCwkcmVxdWlyZWQpXSAmJiAoJHZhcnMoJG9wY29uZCwkcmVxdWlyZWQpICE9ICIiKX0gewotICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICBJTkZPOiAgICAkcmVxdWlyZWQgPSAkdmFycygkb3Bjb25kLCRyZXF1aXJlZClcbiIKLSAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIEVSUk9SOiBSZXF1aXJlZCB2YXJpYWJsZSB2YXJzKCRvcGNvbmQsJHJlcXVpcmVkKSBub3QgZGVmaW5lZFxuIgotICAgICAgICAgICAgICAgICAgICAgc2V0IGVycm9ycygkZXJyb3JfY291bnQpICJSZXF1aXJlZCB2YXJpYWJsZSB2YXJzKCRvcGNvbmQsJHJlcXVpcmVkKSBub3QgZGVmaW5lZCIKLSAgICAgICAgICAgICAgICAgICAgIGluY3IgZXJyb3JfY291bnQKLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0KLSAgCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgICAgICAgICAgICAgIFRpbWluZyBDb25kaXRpb25zXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiIKLSAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyh0aW1pbmdfY29uZGl0aW9ucyldfSB7Ci0gICAgICAgICAgICAgZm9yZWFjaCB0aW1pbmdfY29uZGl0aW9uICR2YXJzKHRpbWluZ19jb25kaXRpb25zKSB7Ci0gICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICBJTkZPOiAkdGltaW5nX2NvbmRpdGlvbjpcbiIKLSAgICAgICAgICAgICAgICBpZiB7IVtGRjo6aXNfbHBfZmxvd119IHsKLSAgICAgICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJHRpbWluZ19jb25kaXRpb24sbGlicmFyeV9zZXQpXSAmJiAoJHZhcnMoJHRpbWluZ19jb25kaXRpb24sbGlicmFyeV9zZXQpICE9ICIiKX0gewotICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgSU5GTzogICAgbGlicmFyeV9zZXQgPSAkdmFycygkdGltaW5nX2NvbmRpdGlvbixsaWJyYXJ5X3NldClcbiIKLSAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgIGZvcmVhY2ggYWRkaXRpb25hbCAiZWFybHlfbGlicmFyeV9zZXQgbGF0ZV9saWJyYXJ5X3NldCIgewotICAgICAgICAgICAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkdGltaW5nX2NvbmRpdGlvbiwkYWRkaXRpb25hbCldICYmICgkdmFycygkdGltaW5nX2NvbmRpdGlvbiwkYWRkaXRpb25hbCkgIT0gIiIpfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICBJTkZPOiAgICAkYWRkaXRpb25hbCA9ICR2YXJzKCR0aW1pbmdfY29uZGl0aW9uLCRhZGRpdGlvbmFsKVxuIgotICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICBFUlJPUjogUmVxdWlyZWQgdmFyaWFibGUgdmFycygkdGltaW5nX2NvbmRpdGlvbixsaWJyYXJ5X3NldCkgYW5kIHZhcnMoJHRpbWluZ19jb25kaXRpb24sJGFkZGl0aW9uYWwpIG5vdCBkZWZpbmVkXG4iCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0IGVycm9ycygkZXJyb3JfY291bnQpICJSZXF1aXJlZCB2YXJpYWJsZSB2YXJzKCR0aW1pbmdfY29uZGl0aW9uLGxpYnJhcnlfc2V0KSBhbmQgdmFycygkdGltaW5nX2NvbmRpdGlvbiwkYWRkaXRpb25hbCkgbm90IGRlZmluZWRcbiIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmNyIGVycm9yX2NvdW50Ci0gICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIGZvcmVhY2ggb3B0aW9uYWwgIm9wY29uZCBvcGNvbmRfbGlicmFyeSBlYXJseV9vcGNvbmRfbGlicmFyeSBsYXRlX29wY29uZF9saWJyYXJ5IiB7Ci0gICAgICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCR0aW1pbmdfY29uZGl0aW9uLCRvcHRpb25hbCldICYmICgkdmFycygkdGltaW5nX2NvbmRpdGlvbiwkb3B0aW9uYWwpICE9ICIiKX0gewotICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgSU5GTzogICAgJG9wdGlvbmFsID0gJHZhcnMoJHRpbWluZ19jb25kaXRpb24sJG9wdGlvbmFsKVxuIgotICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgfSAKLSAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgZm9yZWFjaCBkZWxheV9jb3JuZXIgJHZhcnMoZGVsYXlfY29ybmVycykgewotICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgSU5GTzogJGRlbGF5X2Nvcm5lcjpcbiIKLSAgICAgICAgICAgICAgICBpZiB7IVtGRjo6aXNfbHBfZmxvd119IHsKLSAgICAgICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJGRlbGF5X2Nvcm5lcixsaWJyYXJ5X3NldCldICYmICgkdmFycygkZGVsYXlfY29ybmVyLGxpYnJhcnlfc2V0KSAhPSAiIil9IHsKLSAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIElORk86ICAgIGxpYnJhcnlfc2V0ID0gJHZhcnMoJGRlbGF5X2Nvcm5lcixsaWJyYXJ5X3NldClcbiIKLSAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgIGZvcmVhY2ggYWRkaXRpb25hbCAiZWFybHlfbGlicmFyeV9zZXQgbGF0ZV9saWJyYXJ5X3NldCIgewotICAgICAgICAgICAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkZGVsYXlfY29ybmVyLCRhZGRpdGlvbmFsKV0gJiYgKCR2YXJzKCRkZWxheV9jb3JuZXIsJGFkZGl0aW9uYWwpICE9ICIiKX0gewotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgSU5GTzogICAgJGFkZGl0aW9uYWwgPSAkdmFycygkZGVsYXlfY29ybmVyLCRhZGRpdGlvbmFsKVxuIgotICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICBFUlJPUjogUmVxdWlyZWQgdmFyaWFibGUgdmFycygkZGVsYXlfY29ybmVyLGxpYnJhcnlfc2V0KSBhbmQgdmFycygkZGVsYXlfY29ybmVyLCRhZGRpdGlvbmFsKSBub3QgZGVmaW5lZFxuIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldCBlcnJvcnMoJGVycm9yX2NvdW50KSAiUmVxdWlyZWQgdmFyaWFibGUgdmFycygkZGVsYXlfY29ybmVyLGxpYnJhcnlfc2V0KSBhbmQgdmFycygkZGVsYXlfY29ybmVyLCRhZGRpdGlvbmFsKSBub3QgZGVmaW5lZFxuIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluY3IgZXJyb3JfY291bnQKLSAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgZm9yZWFjaCBvcHRpb25hbCAib3Bjb25kIG9wY29uZF9saWJyYXJ5IGVhcmx5X29wY29uZF9saWJyYXJ5IGxhdGVfb3Bjb25kX2xpYnJhcnkiIHsKLSAgICAgICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJGRlbGF5X2Nvcm5lciwkb3B0aW9uYWwpXSAmJiAoJHZhcnMoJGRlbGF5X2Nvcm5lciwkb3B0aW9uYWwpICE9ICIiKX0gewotICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgSU5GTzogICAgJG9wdGlvbmFsID0gJHZhcnMoJGRlbGF5X2Nvcm5lciwkb3B0aW9uYWwpXG4iCi0gICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICB9IAotICAgICAgICAgfQotICAgCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgICAgICAgICAgICAgIERlbGF5IENvcm5lcnNcbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuIgotICAgICAgICAgc2V0IGdvb2RfY29ybmVycyBbbGlzdF0KLSAgICAgICAgIGZvcmVhY2ggZGVsYXlfY29ybmVyICR2YXJzKGRlbGF5X2Nvcm5lcnMpIHsKLSAgICAgICAgICAgIHNldCBhcmdzIDAKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgSU5GTzogJGRlbGF5X2Nvcm5lcjpcbiIKLSAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkZGVsYXlfY29ybmVyLHJjX2Nvcm5lcildICYmICgkdmFycygkZGVsYXlfY29ybmVyLHJjX2Nvcm5lcikgIT0gIiIpfSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIElORk86ICAgIHJjX2Nvcm5lciA9ICR2YXJzKCRkZWxheV9jb3JuZXIscmNfY29ybmVyKVxuIgotICAgICAgICAgICAgICAgaW5jciBhcmdzCi0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICBFUlJPUjogUmVxdWlyZWQgdmFyaWFibGUgdmFycygkZGVsYXlfY29ybmVyLHJjX2Nvcm5lcikgbm90IGRlZmluZWRcbiIKLSAgICAgICAgICAgICAgIHNldCBlcnJvcnMoJGVycm9yX2NvdW50KSAiUmVxdWlyZWQgdmFyaWFibGUgdmFycygkZGVsYXlfY29ybmVyLHJjX2Nvcm5lcikgbm90IGRlZmluZWQiCi0gICAgICAgICAgICAgICBpbmNyIGVycm9yX2NvdW50Ci0gICAgICAgICAgICB9Ci0gICAKLSAgICAgICAgICAgIGlmIHsoIVtGRjo6aXNfbHBfZmxvd10pIHx8IChbRkY6OmlzX2xwX2Zsb3ddICYmICEkdmFycyhjcGZfdGltaW5nKSl9IHsKLSAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyh0aW1pbmdfY29uZGl0aW9ucyldfSB7IDsgIyBEb24ndCByZXF1aXJlIHRoaXMgYXMgd2UgY2FuIGNvbnN0cnVjdCAuLi4KLSAgICAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkZGVsYXlfY29ybmVyLHRpbWluZ19jb25kaXRpb24pXSAmJiAoJHZhcnMoJGRlbGF5X2Nvcm5lcix0aW1pbmdfY29uZGl0aW9uKSAhPSAiIil9IHsKLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgSU5GTzogICAgdGltaW5nX2NvbmRpdGlvbiA9ICR2YXJzKCRkZWxheV9jb3JuZXIsdGltaW5nX2NvbmRpdGlvbilcbiIKLSAgICAgICAgICAgICAgICAgICAgIGluY3IgYXJncwotICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgIGZvcmVhY2ggYWRkaXRpb25hbCAiZWFybHlfdGltaW5nX2NvbmRpdGlvbiBsYXRlX3RpbWluZ19jb25kaXRpb24iIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkZGVsYXlfY29ybmVyLCRhZGRpdGlvbmFsKV0gJiYgKCR2YXJzKCRkZWxheV9jb3JuZXIsJGFkZGl0aW9uYWwpICE9ICIiKX0gewotICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICBJTkZPOiAgICAkYWRkaXRpb25hbCA9ICR2YXJzKCRkZWxheV9jb3JuZXIsJGFkZGl0aW9uYWwpXG4iCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBpbmNyIGFyZ3MKLSAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIEVSUk9SOiBSZXF1aXJlZCB2YXJpYWJsZSB2YXJzKCRkZWxheV9jb3JuZXIsdGltaW5nX2NvbmRpdGlvbikgYW5kIHZhcnMoJGRlbGF5X2Nvcm5lciwkYWRkaXRpb25hbCkgbm90IGRlZmluZWRcbiIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldCBlcnJvcnMoJGVycm9yX2NvdW50KSAiUmVxdWlyZWQgdmFyaWFibGUgdmFycygkZGVsYXlfY29ybmVyLHRpbWluZ19jb25kaXRpb24pIGFuZCB2YXJzKCRkZWxheV9jb3JuZXIsJGFkZGl0aW9uYWwpIG5vdCBkZWZpbmVkXG4iCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBpbmNyIGVycm9yX2NvdW50Ci0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBmb3JlYWNoIG9wdGlvbmFsICJwb3dlcl9kb21haW5zIiB7Ci0gICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJGRlbGF5X2Nvcm5lciwkb3B0aW9uYWwpXSAmJiAoJHZhcnMoJGRlbGF5X2Nvcm5lciwkb3B0aW9uYWwpICE9ICIiKX0gewotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICBJTkZPOiAgICAkb3B0aW9uYWwgPSAkdmFycygkZGVsYXlfY29ybmVyLCRvcHRpb25hbClcbiIKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIHshJHZhcnMoY3BmX3RpbWluZykgJiYgKCRhcmdzID4gMSl9IHsKLSAgICAgICAgICAgICAgIGxhcHBlbmQgZ29vZF9jb3JuZXJzICRkZWxheV9jb3JuZXIKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBpZiB7JGFyZ3MgPiAwfSB7Ci0gICAgICAgICAgICAgICAgICBsYXBwZW5kIGdvb2RfY29ybmVycyAkZGVsYXlfY29ybmVyCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0KLSAgICAgICAgIHNldCB2YXJzKGdvb2RfY29ybmVycykgJGdvb2RfY29ybmVycwotICAgICAgICAgc2V0IGNoZWNrKGNvbnN0cmFpbnRfbW9kZXMpIFtsaXN0XQotICAgICAgICAgaWYge1tGRjo6aXNfbHBfZmxvd119IHsKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICAgICAgICAgICAgIENvbnN0cmFpbnQgTW9kZXNcbiIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuIgotICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGNvbnN0cmFpbnRfbW9kZXMpXX0gewotICAgICAgICAgICAgICAgZm9yZWFjaCBtb2RlICR2YXJzKGNvbnN0cmFpbnRfbW9kZXMpIHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgSU5GTzogJG1vZGU6XG4iCi0gICAgICAgICAgICAgICAgICBmb3JlYWNoIG90aGVyICJwcmVfY3RzX3NkYyBpbmNyX2N0c19zZGMgcG9zdF9jdHNfc2RjIiB7Ci0gICAgICAgICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJG1vZGUsJG90aGVyKV0gJiYgKCR2YXJzKCRtb2RlLCRvdGhlcikgIT0gIiIpfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIElORk86ICAgICRvdGhlciA9ICR2YXJzKCRtb2RlLCRvdGhlcilcbiIKLSAgICAgICAgICAgICAgICAgICAgICAgIGxhcHBlbmQgY2hlY2soY29uc3RyYWludF9tb2RlcykgJHZhcnMoJG1vZGUsJG90aGVyKQotICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIHshJHZhcnMoY3BmX3RpbWluZyl9IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIHsoJG90aGVyID09ICJwcmVfY3RzX3NkYyIpICYmICR2YXJzKHJjKX0gewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0IHZhcnMoJG1vZGUsJG90aGVyKSAkdmFycyhkYnNfZGlyKS8kdmFycyhkZXNpZ24pLnN5bl9wbGFjZWQuJG1vZGUuc2RjCi0gICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2VpZiB7KCRvdGhlciA9PSAicHJlX2N0c19zZGMiKSAmJiAhJHZhcnMocmMpfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgRVJST1I6ICAgIFZhcmlhYmxlIHZhcnMoJG1vZGUsJG90aGVyKSBub3QgZGVmaW5lZFxuIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0IGVycm9ycygkZXJyb3JfY291bnQpICJWYXJpYWJsZSB2YXJzKCRtb2RlLCRvdGhlcikgbm90IGRlZmluZWQiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmNyIGVycm9yX2NvdW50Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgeygkb3RoZXIgPT0gInByZV9jdHNfc2RjIikgfHwgKCgkb3RoZXIgPT0gInBvc3RfY3RzX3NkYyIpICYmICFbaW5mbyBleGlzdHMgdmFycygkbW9kZSxpbmNyX2N0c19zZGMpXSl9IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgSU5GTzogICAgVmFyaWFibGUgdmFycygkbW9kZSwkb3RoZXIpIG5vdCBkZWZpbmVkXG4iCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIElORk86ICAgIFZhcmlhYmxlIHZhcnMoJG1vZGUsJG90aGVyKSBub3QgZGVmaW5lZFxuIgotICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgSU5GTzogTm8gY29uc3RyYWludCBtb2RlIGluZm9ybWF0aW9uIGRlZmluZWRcbiIKLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgICAgICAgUG9zdCBDVFMgbGF0ZW5jeSBhZGp1c3RtZW50IG11c3QgYmVcbiIKLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgICAgICAgbWFuYWdlZCBieSB0aGUgdXNlciB2aWEgcGx1Zy1pbnNcbiIKLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgICAgICAgICAgICBDb25zdHJhaW50IE1vZGVzXG4iCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiIKLSAgICAgICAgICAgIGlmIHskdmFycyhyYyl9IHsKLSAgICAgICAgICAgICAgIHNldCByZXF1aXJlZF9saXN0ICJzeW50aF9zZGMgcHJlX2N0c19zZGMiCi0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgc2V0IHJlcXVpcmVkX2xpc3QgInByZV9jdHNfc2RjIgotICAgICAgICAgICAgfSAKLSAgICAgICAgICAgIGZvcmVhY2ggbW9kZSAkdmFycyhjb25zdHJhaW50X21vZGVzKSB7Ci0gICAgICAgICAgICAgICBzZXQgZm91bmQgMAotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICBJTkZPOiAkbW9kZTpcbiIKLSAgICAgICAgICAgICAgIGZvcmVhY2ggcmVxdWlyZWQgJHJlcXVpcmVkX2xpc3QgewotICAgICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCRtb2RlLCRyZXF1aXJlZCldICYmICgkdmFycygkbW9kZSwkcmVxdWlyZWQpICE9ICIiKX0gewotICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICBJTkZPOiAgICAkcmVxdWlyZWQgPSAkdmFycygkbW9kZSwkcmVxdWlyZWQpXG4iCi0gICAgICAgICAgICAgICAgICAgICBsYXBwZW5kIGNoZWNrKGNvbnN0cmFpbnRfbW9kZXMpICR2YXJzKCRtb2RlLCRyZXF1aXJlZCkKLSAgICAgICAgICAgICAgICAgICAgIGluY3IgZm91bmQKLSAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICBpZiB7W2xsZW5ndGggJHJlcXVpcmVkX2xpc3RdID09IDF9IHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgRVJST1I6IFJlcXVpcmVkIHZhcmlhYmxlIHZhcnMoJG1vZGUsJHJlcXVpcmVkKSBub3QgZGVmaW5lZFxuIgotICAgICAgICAgICAgICAgICAgICAgICAgc2V0IGVycm9ycygkZXJyb3JfY291bnQpICJSZXF1aXJlZCB2YXJpYWJsZSB2YXJzKCRtb2RlLCRyZXF1aXJlZCkgbm90IGRlZmluZWQiCi0gICAgICAgICAgICAgICAgICAgICAgICBpbmNyIGVycm9yX2NvdW50Ci0gICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICBpZiB7KFtsbGVuZ3RoICRyZXF1aXJlZF9saXN0XSA+IDEpICYmICgkZm91bmQgPT0gMCl9IHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgRVJST1I6IE9uZSBvZiB0aGUgcmVxdWlyZWQgdmFyaWFibGVzICgkcmVxdWlyZWRfbGlzdCkgbm90IGRlZmluZWRcbiIKLSAgICAgICAgICAgICAgICAgIHNldCBlcnJvcnMoJGVycm9yX2NvdW50KSAiT25lIG9mIHRoZSByZXF1aXJlZCB2YXJpYWJsZXMgKCRyZXF1aXJlZF9saXN0KSBub3QgZGVmaW5lZCIKLSAgICAgICAgICAgICAgICAgIGluY3IgZXJyb3JfY291bnQKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIGZvcmVhY2ggb3RoZXIgInBvc3RfY3RzX3NkYyBpbmNyX2N0c19zZGMiIHsKLSAgICAgICAgICAgICAgICAgIGlmIHskb3RoZXIgPT0gInBvc3RfY3RzX3NkYyIgJiYgIVtpbmZvIGV4aXN0cyB2YXJzKCRvdGhlcildfSB7Ci0gICAgICAgICAgICAgICAgICAgICBpZiB7IVtpbmZvIGV4aXN0cyB2YXJzKCRtb2RlLCRvdGhlcildfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIElORk86ICAgIFZhcmlhYmxlIHZhcnMoJG1vZGUsJG90aGVyKSBub3QgZGVmaW5lZFxuIgotICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgSU5GTzogICAgJG90aGVyID0gJHZhcnMoJG1vZGUsJG90aGVyKVxuIgotICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkbW9kZSwkb3RoZXIpXSAmJiAoJHZhcnMoJG1vZGUsJG90aGVyKSAhPSAiIil9IHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgSU5GTzogICAgJG90aGVyID0gJHZhcnMoJG1vZGUsJG90aGVyKVxuIgotICAgICAgICAgICAgICAgICAgICAgICAgbGFwcGVuZCBjaGVjayhjb25zdHJhaW50X21vZGVzKSAkdmFycygkbW9kZSwkb3RoZXIpCi0gICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICBJTkZPOiAgICBWYXJpYWJsZSB2YXJzKCRtb2RlLCRvdGhlcikgbm90IGRlZmluZWRcbiIKLSAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0KLSAgIAotICAgICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycyhob2xkX2FuYWx5c2lzX3ZpZXdzKV19IHsKLSAgICAgICAgICAgIHNldCB2YXJzKGhvbGRfYW5hbHlzaXNfdmlld3MpICIiCi0gICAgICAgICB9Ci0gICAgICAgICBpZiB7IVtpbmZvIGV4aXN0cyB2YXJzKHBvd2VyX2FuYWx5c2lzX3ZpZXcpXX0gewotICAgICAgICAgICAgc2V0IHZhcnMocG93ZXJfYW5hbHlzaXNfdmlldykgIiIKLSAgICAgICAgIH0KLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICAgICAgICAgICAgIEFuYWx5c2lzIFZpZXdzXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiIKLSAgICAgICAgIGlmIHtbRkY6OmlzX2xwX2Zsb3ddfSB7Ci0gICAgICAgICAgICBmb3JlYWNoIGFuYWx5c2lzX3ZpZXcgW2NvbmNhdCAkdmFycyhzZXR1cF9hbmFseXNpc192aWV3cykgJHZhcnMoaG9sZF9hbmFseXNpc192aWV3cykgJHZhcnMocG93ZXJfYW5hbHlzaXNfdmlldyldIHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgSU5GTzogJGFuYWx5c2lzX3ZpZXc6XG4iCi0gICAgICAgICAgICAgICBmb3JlYWNoIG90aGVyICJkZWxheV9jb3JuZXIgY29uc3RyYWludF9tb2RlIiB7Ci0gICAgICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJGFuYWx5c2lzX3ZpZXcsJG90aGVyKV0gJiYgKCR2YXJzKCRhbmFseXNpc192aWV3LCRvdGhlcikgIT0gIiIpfSB7Ci0gICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIElORk86ICAgICRvdGhlciA9ICR2YXJzKCRhbmFseXNpc192aWV3LCRvdGhlcilcbiIKLSAgICAgICAgICAgICAgICAgICAgIGxhcHBlbmQgY2hlY2soYW5hbHlzaXNfdmlldykgJHZhcnMoJGFuYWx5c2lzX3ZpZXcsJG90aGVyKQotICAgICAgICAgICAgICAgICAgfSAKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBzZXQgY2hlY2soYW5hbHlzaXNfdmlld3MpIFtsaXN0XQotICAgICAgICAgICAgZm9yZWFjaCBhbmFseXNpc192aWV3IFtjb25jYXQgJHZhcnMoc2V0dXBfYW5hbHlzaXNfdmlld3MpICR2YXJzKGhvbGRfYW5hbHlzaXNfdmlld3MpICR2YXJzKHBvd2VyX2FuYWx5c2lzX3ZpZXcpXSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIElORk86ICRhbmFseXNpc192aWV3OlxuIgotICAgICAgICAgICAgICAgZm9yZWFjaCByZXF1aXJlZCAiZGVsYXlfY29ybmVyIGNvbnN0cmFpbnRfbW9kZSIgewotICAgICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCRhbmFseXNpc192aWV3LCRyZXF1aXJlZCldICYmICgkdmFycygkYW5hbHlzaXNfdmlldywkcmVxdWlyZWQpICE9ICIiKX0gewotICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICBJTkZPOiAgICAkcmVxdWlyZWQgPSAkdmFycygkYW5hbHlzaXNfdmlldywkcmVxdWlyZWQpXG4iCi0gICAgICAgICAgICAgICAgICAgICBsYXBwZW5kIGNoZWNrKGFuYWx5c2lzX3ZpZXcpICR2YXJzKCRhbmFseXNpc192aWV3LCRyZXF1aXJlZCkKLSAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIEVSUk9SOiBSZXF1aXJlZCB2YXJpYWJsZSB2YXJzKCRhbmFseXNpc192aWV3LCRyZXF1aXJlZCkgbm90IGRlZmluZWRcbiIKLSAgICAgICAgICAgICAgICAgICAgIHNldCBlcnJvcnMoJGVycm9yX2NvdW50KSAiUmVxdWlyZWQgdmFyaWFibGUgdmFycygkYW5hbHlzaXNfdmlldywkcmVxdWlyZWQpIG5vdCBkZWZpbmVkIgotICAgICAgICAgICAgICAgICAgICAgaW5jciBlcnJvcl9jb3VudAotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAgfQotIyAgICAgIH0KLQotICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgIiMgICAgICAgICAgICAgUmVjb21tZW5kZWQgVmFyaWFibGVzXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgIiMgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiIKLSAgICAgIGZvcmVhY2ggcmVjb21tZW5kZWQgInNjYW5fZGVmIGdkc19sYXllcl9tYXAiIHsKLSAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkcmVjb21tZW5kZWQpXSAmJiAoJHZhcnMoJHJlY29tbWVuZGVkKSAhPSAiIil9IHsKLSAgICAgICAgICAgIGxhcHBlbmQgY2hlY2soZmlsZXMpICR2YXJzKCRyZWNvbW1lbmRlZCkKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgSU5GTzogJHJlY29tbWVuZGVkID0gJHZhcnMoJHJlY29tbWVuZGVkKVxuIgotICAgICAgICAgfQotICAgICAgfQotICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGdkc19maWxlcyldICYmICgkdmFycyhnZHNfZmlsZXMpICE9ICIiKX0gewotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICBJTkZPOiBnZHNfZmlsZXMgPSAkdmFycyhnZHNfZmlsZXMpXG4iCi0gICAgICAgICBmb3JlYWNoIGZpbGUgJHZhcnMoZ2RzX2ZpbGVzKSB7Ci0gICAgICAgICAgICBsYXBwZW5kIGNoZWNrKGZpbGVzKSAkZmlsZQotICAgICAgICAgfQotICAgICAgfQotCi0gICAgICBmb3JlYWNoIHJlY29tbWVuZGVkICJtYXhfcm91dGVfbGF5ZXIgZmlsbGVyX2NlbGxzIHRpZV9jZWxscyBkb250X3VzZV9saXN0IGFudGVubmFfZGlvZGUiIHsKLSAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkcmVjb21tZW5kZWQpXSAmJiAoJHZhcnMoJHJlY29tbWVuZGVkKSAhPSAiIil9IHsKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgSU5GTzogJHJlY29tbWVuZGVkID0gJHZhcnMoJHJlY29tbWVuZGVkKVxuIgotICAgICAgICAgICAgaWYgeyRyZWNvbW1lbmRlZCA9PSAidGllX2NlbGxzIn0gewotICAgICAgICAgICAgICAgaWYge1tsbGVuZ3RoICR2YXJzKHRpZV9jZWxscyldID4gMn0gewotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICBFUlJPUjogUmVjb21tZW5kZWQgdmFyaWFibGUgdmFycygkcmVjb21tZW5kZWQpIGhhcyBtb3JlIHRoYW4gdHdvIGNlbGxzXG4iCi0gICAgICAgICAgICAgICAgICBzZXQgZXJyb3JzKCRlcnJvcl9jb3VudCkgIlJlY29tbWVuZGVkIHZhcmlhYmxlIHZhcnMoJHJlY29tbWVuZGVkKSBoYXMgbW9yZSB0aGFuIHR3byBjZWxscyIKLSAgICAgICAgICAgICAgICAgIGluY3IgZXJyb3JfY291bnQKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIHskcmVjb21tZW5kZWQgPT0gImFudGVubmFfZGlvZGUifSB7Ci0gICAgICAgICAgICAgICBpZiB7W2xsZW5ndGggJHZhcnMoYW50ZW5uYV9kaW9kZSldID4gMX0gewotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICBFUlJPUjogUmVjb21tZW5kZWQgdmFyaWFibGUgdmFycygkcmVjb21tZW5kZWQpIGhhcyBtb3JlIHRoYW4gb25lIGNlbGxzXG4iCi0gICAgICAgICAgICAgICAgICBzZXQgZXJyb3JzKCRlcnJvcl9jb3VudCkgIlJlY29tbWVuZGVkIHZhcmlhYmxlIHZhcnMoJHJlY29tbWVuZGVkKSBoYXMgbW9yZSB0aGFuIG9uZSBjZWxscyIKLSAgICAgICAgICAgICAgICAgIGluY3IgZXJyb3JfY291bnQKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIHskcmVjb21tZW5kZWQgPT0gIm1heF9yb3V0ZV9sYXllciJ9IHsKLSAgICAgICAgICAgICAgIGxhcHBlbmQgY2hlY2soaW50ZWdlcnMpICIkcmVjb21tZW5kZWQiCi0gICAgICAgICAgICB9Ci0gICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgaWYgeygkcmVjb21tZW5kZWQgPT0gImRvbnRfdXNlX2xpc3QiKX0gewotICAgICAgICAgICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycyhkb250X3VzZV9maWxlKV19IHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgV0FSTklORzogUmVjb21tZW5kZWQgdmFyaWFibGVzIGRvbnRfdXNlX2xpc3QgYW5kIGRvbnRfdXNlX2ZpbGUgbm90IGRlZmluZWRcbiIKLSAgICAgICAgICAgICAgICAgIHNldCB3YXJuaW5ncygkd2FybmluZ19jb3VudCkgIlJlY29tbWVuZGVkIHZhcmlhYmxlcyBkb250X3VzZV9saXN0IGFuZCBkb250X3VzZV9maWxlIG5vdCBkZWZpbmVkIgotICAgICAgICAgICAgICAgICAgaW5jciB3YXJuaW5nX2NvdW50Ci0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICBXQVJOSU5HOiBSZWNvbW1lbmRlZCB2YXJpYWJsZSB2YXJzKCRyZWNvbW1lbmRlZCkgbm90IGRlZmluZWRcbiIKLSAgICAgICAgICAgICAgIHNldCB3YXJuaW5ncygkd2FybmluZ19jb3VudCkgIlJlY29tbWVuZGVkIHZhcmlhYmxlIHZhcnMoJHJlY29tbWVuZGVkKSBub3QgZGVmaW5lZCIKLSAgICAgICAgICAgICAgIGluY3Igd2FybmluZ19jb3VudAotICAgICAgICAgICAgfSAgCi0gICAgICAgICB9Ci0gICAgICB9Ci0gICAgICBmb3JlYWNoIG9wdGlvbmFsICJzaXplX29ubHlfZmlsZSBkb250X3VzZV9maWxlIiB7Ci0gICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJG9wdGlvbmFsKV19IHsKLSAgICAgICAgICAgIGxhcHBlbmQgY2hlY2soZmlsZXMpICR2YXJzKCRvcHRpb25hbCkKLSAgICAgICAgIH0KLSAgICAgIH0KLQotICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgIiMgICAgICAgICAgICAgICAgIE90aGVyIFZhcmlhYmxlc1xuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4iCi0gICAgICBmb3JlYWNoIG90aGVyICJqdGFnX2NlbGxzIGp0YWdfcm93cyBzcGFyZV9jZWxscyIgewotICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCRvdGhlcildICYmICgkdmFycygkb3RoZXIpICE9ICIiKX0gewotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICBJTkZPOiAkb3RoZXIgPSAkdmFycygkb3RoZXIpXG4iCi0gICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICBJTkZPOiBWYXJpYWJsZSB2YXJzKCRvdGhlcikgbm90IGRlZmluZWRcbiIKLSAgICAgICAgIH0KLSAgICAgIH0KLQotIyAgICAgIGlmIHshW2luZm8gZXhpc3RzIHZhcnModmlld19kZWZpbml0aW9uX3RjbCldfSB7Ci0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgICAgICAgICAgICAgICAgU2NhbGUgRmFjdG9yc1xuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4iCi0gICAgICAgICBmb3JlYWNoIHJjX2Nvcm5lciAkdmFycyhyY19jb3JuZXJzKSB7Ci0gICAgICAgICAgICBzZXQgaSAwCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIElORk86ICRyY19jb3JuZXI6XG4iCi0gICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJHJjX2Nvcm5lcixzY2FsZV90Y2wpXX0gewotICAgICAgICAgICAgICAgaWYge1tmaWxlIGV4aXN0cyAkdmFycygkcmNfY29ybmVyLHNjYWxlX3RjbCldfSB7Ci0gICAgICAgICAgICAgICAgICBpbmNyIGkKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgSU5GTzogICBzY2FsaW5nIGZpbGUgPSAkdmFycygkcmNfY29ybmVyLHNjYWxlX3RjbClcbiIKLSAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICBwdXRzICI8RkY+IEVSUk9SOiBTY2FsaW5nIGZpbGUgJHZhcnMoJHJjX2Nvcm5lcixzY2FsZV90Y2wpIGZvciByYyBjb3JuZXIgJHJjX2Nvcm5lciBkZWZpbmVkIGJ1dCBkb2VzIG5vdCBleGlzdCIKLSAgICAgICAgICAgICAgICAgIHNldCBlcnJvcnMoJGVycm9yX2NvdW50KSAiU2NhbGluZyBmaWxlICR2YXJzKCRyY19jb3JuZXIsc2NhbGVfdGNsKSBmb3IgcmMgY29ybmVyICRyY19jb3JuZXIgZGVmaW5lZCBidXQgZG9lcyBub3QgZXhpc3QiCi0gICAgICAgICAgICAgICAgICBpbmNyIGVycm9yX2NvdW50Ci0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgZm9yZWFjaCBvdGhlciAicHJlX3JvdXRlX3Jlc19mYWN0b3IgcG9zdF9yb3V0ZV9yZXNfZmFjdG9yIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByZV9yb3V0ZV9jYXBfZmFjdG9yIHBvc3Rfcm91dGVfY2FwX2ZhY3RvciBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmVfcm91dGVfY2xrX3Jlc19mYWN0b3IgcG9zdF9yb3V0ZV9jbGtfcmVzX2ZhY3RvciBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmVfcm91dGVfY2xrX2NhcF9mYWN0b3IgcG9zdF9yb3V0ZV9jbGtfY2FwX2ZhY3RvciBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3N0X3JvdXRlX3hjYXBfZmFjdG9yIiB7Ci0gICAgICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJHJjX2Nvcm5lciwkb3RoZXIpXX0gewotICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICBJTkZPOiAgICAkb3RoZXIgPSAkdmFycygkcmNfY29ybmVyLCRvdGhlcilcbiIKLSAgICAgICAgICAgICAgICAgICAgIGluY3IgaQotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgeyRpID09IDB9IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgV0FSTklORzogTm8gc2NhbGUgZmFjdG9ycyBzZXQgZm9yIHJjIGNvcm5lciAoJHJjX2Nvcm5lcilcbiIKLSAgICAgICAgICAgICAgIHNldCB3YXJuaW5ncygkd2FybmluZ19jb3VudCkgIk5vIHNjYWxlIGZhY3RvcnMgc2V0IGZvciByYyBjb3JuZXIgKCRyY19jb3JuZXIpIgotICAgICAgICAgICAgICAgaW5jciB3YXJuaW5nX2NvdW50Ci0gICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0gICAKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICAgICAgICAgICAgICAgIERlcmF0aW5nIEZhY3RvcnNcbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuIgotICAgICAgICAgc2V0IGkgMAotICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGRlcmF0ZV90Y2wpXX0gewotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICBJTkZPOiAgICBkZXJhdGUgZmlsZSA9ICR2YXJzKGRlcmF0ZV90Y2wpXG4iCi0gICAgICAgICAgICBsYXBwZW5kIGNoZWNrKGZpbGVzKSAkdmFycyhkZXJhdGVfdGNsKQotICAgICAgICAgICAgaW5jciBpCi0gICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgZm9yZWFjaCBkZWxheV9jb3JuZXIgJHZhcnMoZGVsYXlfY29ybmVycykgewotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICBJTkZPOiAkZGVsYXlfY29ybmVyOlxuIgotICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCRkZWxheV9jb3JuZXIsZGVyYXRlX3RjbCldfSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIElORk86ICAgIGRlcmF0ZSBmaWxlID0gJHZhcnMoJGRlbGF5X2Nvcm5lcixkZXJhdGVfdGNsKVxuIgotICAgICAgICAgICAgICAgICAgbGFwcGVuZCBjaGVjayhmaWxlcykgJHZhcnMoJGRlbGF5X2Nvcm5lcixkZXJhdGVfdGNsKQotICAgICAgICAgICAgICAgICAgaW5jciBpCi0gICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGRlcmF0ZV90Y2wpXX0gewotICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICBJTkZPOiAgICBkZXJhdGUgZmlsZSA9ICR2YXJzKGRlcmF0ZV90Y2wpXG4iCi0gICAgICAgICAgICAgICAgICAgICBsYXBwZW5kIGNoZWNrKGZpbGVzKSAkdmFycyhkZXJhdGVfdGNsKQotICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgIGZvcmVhY2ggb3RoZXIgImVhcmx5X2RhdGFfY2VsbCBlYXJseV9jbG9ja19jZWxsIGVhcmx5X2NlbGxfY2hlY2sgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF0ZV9kYXRhX2NlbGwgbGF0ZV9jbG9ja19jZWxsIGxhdGVfY2VsbF9jaGVjayBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhX2NlbGxfZWFybHkgY2xvY2tfY2VsbF9lYXJseSBjZWxsX2NoZWNrX2Vhcmx5IFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGFfY2VsbF9sYXRlIGNsb2NrX2NlbGxfbGF0ZSBjZWxsX2NoZWNrX2xhdGUiIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkZGVsYXlfY29ybmVyLCRvdGhlcildfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIElORk86ICAgICRvdGhlciA9ICR2YXJzKCRkZWxheV9jb3JuZXIsJG90aGVyKVxuIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5jciBpCi0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICBpZiB7JGkgPT0gMH0gewotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICBXQVJOSU5HOiBObyBkZXJhdGluZyBmYWN0b3JzIHNldCBmb3IgZGVsYXkgY29ybmVyICgkZGVsYXlfY29ybmVyKVxuIgotICAgICAgICAgICAgICAgICAgc2V0IHdhcm5pbmdzKCR3YXJuaW5nX2NvdW50KSAiTm8gZGVyYXRpbmcgZmFjdG9ycyBzZXQgZm9yIGRlbGF5IGNvcm5lciAoJGRlbGF5X2Nvcm5lcikiCi0gICAgICAgICAgICAgICAgICBpbmNyIHdhcm5pbmdfY291bnQKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0KLSMgICAgICB9Ci0gICAgICBpZiB7IVtyZWdleHAgIjkuMSIgJHZhcnModmVyc2lvbildfSB7Ci0KLSAgICAgICAgIHNldCB2YWxpZCAiVFJVRSBGQUxTRSB0cnVlIGZhbHNlIGF1dG8iCi0KLSAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhlbmFibGVfc2lfYXdhcmUpXX0gewotICAgICAgICAgICAgaWYge1tsc2VhcmNoICR2YWxpZCAkdmFycyhlbmFibGVfc2lfYXdhcmUpXSA9PSAtMX0gewotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICBFUlJPUjogVmFyaWFibGUgdmFycyhlbmFibGVfc2lfYXdhcmUpIGhhcyBpbGxlZ2FsIHZhbHVlXG4iCi0gICAgICAgICAgICAgICBzZXQgZXJyb3JzKCRlcnJvcl9jb3VudCkgIlZhcmlhYmxlIHZhcnMoZW5hYmxlX3NpX2F3YXJlKSBoYXMgaWxsZWdhbCB2YWx1ZSIKLSAgICAgICAgICAgICAgICAgIGluY3IgZXJyb3JfY291bnQKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgICAgICAgIE11c3QgYmUgb25lIG9mICckdmFsaWQnXG4iCi0gICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0gICAgICB9Ci0KLSAgICAgIHNldCB2YWxpZCBbbGlzdCB0cnVlIGZhbHNlXQotICAgICAgZm9yZWFjaCB2YXIgImZpeF9ob2xkX2lnbm9yZV9pb3MgZml4X2hvbGRfYWxsb3dfdG5zX2RlZ3JhZGF0aW9uIiB7Ci0gICAgICAgICBpZiB7IVtpbmZvIGV4aXN0cyB2YXJzKCR2YXIpXX0gewotICAgICAgICAgICAgY29udGludWUKLSAgICAgICAgIH0KLSAgICAgICAgIGlmIHtbbHNlYXJjaCAkdmFsaWQgW3N0cmluZyB0b2xvd2VyICR2YXJzKCR2YXIpXV0gPT0gLTF9IHsKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgRVJST1I6IFZhcmlhYmxlIHZhcnMoJHZhcikgaGFzIGlsbGVnYWwgdmFsdWUgJHZhcnMoJHZhcilcbiIKLSAgICAgICAgICAgIHNldCBlcnJvcnMoJGVycm9yX2NvdW50KSAiVmFyaWFibGUgdmFycygkdmFyKSBoYXMgaWxsZWdhbCB2YWx1ZSAkdmFycygkdmFyKSIKLSAgICAgICAgICAgIGluY3IgZXJyb3JfY291bnQKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgICAgICAgIE11c3QgYmUgb25lIG9mICckdmFsaWQnXG4iCi0gICAgICAgICB9Ci0gICAgICB9Ci0KLSAgICAgIHNldCB2YWxpZCAicHJlX3BsYWNlIHByZV9wcmVjdHMgcHJlX2N0cyBwcmVfcG9zdGN0cyBwcmVfcG9zdHJvdXRlIHByZV9wb3N0cm91dGVfc2kgcHJlX3NpZ25vZmYgdHJ1ZSBmYWxzZSIKLSAgICAgIGZvcmVhY2ggb3B0aW9uICJtZXRhbGZpbGwgZW5hYmxlX29jdiBlbmFibGVfc3MiIHsKLSAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkb3B0aW9uKV19IHsKLSAgICAgICAgICAgIGlmIHtbbHNlYXJjaCAkdmFsaWQgJHZhcnMoJG9wdGlvbildID09IC0xfSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIEVSUk9SOiBWYXJpYWJsZSB2YXJzKCRvcHRpb24pIGhhcyBpbGxlZ2FsIHZhbHVlICgkdmFycygkb3B0aW9uKSlcbiIKLSAgICAgICAgICAgICAgIHNldCBlcnJvcnMoJGVycm9yX2NvdW50KSAiVmFyaWFibGUgdmFycygkb3B0aW9uKSBoYXMgaWxsZWdhbCB2YWx1ZSAoJHZhcnMoJG9wdGlvbikpIgotICAgICAgICAgICAgICAgaW5jciBlcnJvcl9jb3VudAotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICAgICAgICAgTXVzdCBiZSBvbmUgb2YgJyR2YWxpZCdcbiIKLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0KLSAgICAgIH0KLQotICAgICAgc2V0IHBhY3MgW0ZGOjpnZXRfYnlfc3VmZml4IHZhcnMgIixwYWNfbW9kZSJdIAotICAgICAgc2V0IHZhbGlkICJyZWFkX29ubHkgaW50ZXJmYWNlIGFsbCIKLQotICAgICAgZm9yZWFjaCBwYWMgJHBhY3MgewotICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKHBhY19tb2RlKV19IHsKLSAgICAgICAgICAgIGlmIHtbbHNlYXJjaCAkdmFsaWQgJHZhcnMocGFjX21vZGUpXSA9PSAtMX0gewotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICBFUlJPUjogVmFyaWFibGUgdmFycyhwYWNfbW9kZSkgaGFzIGlsbGVnYWwgdmFsdWVcbiIKLSAgICAgICAgICAgICAgIHNldCBlcnJvcnMoJGVycm9yX2NvdW50KSAiVmFyaWFibGUgdmFycyhwYWNfbW9kZSkgaGFzIGlsbGVnYWwgdmFsdWUiCi0gICAgICAgICAgICAgICBpbmNyIGVycm9yX2NvdW50Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgICAgICAgICBNdXN0IGJlIG9uZSBvZiAnJHZhbGlkJ1xuIgotICAgICAgICAgICAgfQotICAgICAgICAgfQotICAgICAgfQotCi0gICAgICBzZXQgdmFsaWQgImRlZmF1bHQgcGVzc2ltaXN0aWMiCi0KLSAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhzaV9hbmFseXNpc190eXBlKV19IHsKLSAgICAgICAgIGlmIHtbbHNlYXJjaCAkdmFsaWQgJHZhcnMoc2lfYW5hbHlzaXNfdHlwZSldID09IC0xfSB7Ci0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIEVSUk9SOiBWYXJpYWJsZSB2YXJzKHNpX2FuYWx5c2lzX3R5cGUpIGhhcyBpbGxlZ2FsIHZhbHVlXG4iCi0gICAgICAgICAgICBzZXQgZXJyb3JzKCRlcnJvcl9jb3VudCkgIlZhcmlhYmxlIHZhcnMoc2lfYW5hbHlzaXNfdHlwZSkgaGFzIGlsbGVnYWwgdmFsdWUiCi0gICAgICAgICAgICBpbmNyIGVycm9yX2NvdW50Ci0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgICAgICAgICBNdXN0IGJlIG9uZSBvZiAnJHZhbGlkJ1xuIgotICAgICAgICAgfQotICAgICAgfQotCi0gICAgICBzZXQgdmFsaWQgInBvc3RfY3RzIHBvc3Rfcm91dGUgYm90aCBub25lIgotCi0gICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoY2xvY2tfZWNvKV19IHsKLSAgICAgICAgIGlmIHtbbHNlYXJjaCAkdmFsaWQgJHZhcnMoY2xvY2tfZWNvKV0gPT0gLTF9IHsKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgRVJST1I6IFZhcmlhYmxlIHZhcnMoY2xvY2tfZWNvKSBoYXMgaWxsZWdhbCB2YWx1ZVxuIgotICAgICAgICAgICAgc2V0IGVycm9ycygkZXJyb3JfY291bnQpICJWYXJpYWJsZSB2YXJzKGNsb2NrX2VjbykgaGFzIGlsbGVnYWwgdmFsdWUiCi0gICAgICAgICAgICBpbmNyIGVycm9yX2NvdW50Ci0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgICAgICAgICBNdXN0IGJlIG9uZSBvZiAnJHZhbGlkJ1xuIgotICAgICAgICAgfQotICAgICAgfQotIyAgICAgIGlmIHskdmFycyhlbmFibGVfZmxleGlsbSl9IHsKLSMgICAgICAgICBzZXQgd2FybmluZ3MoJHdhcm5pbmdfY291bnQpICJVc2luZyB2YXJzKGVuYWJsZV9mbGV4aWxtKSByZXF1aXJlcyB0aGUgZm9sbG93aW5nIGxpbWl0ZWQgYWNjZXNzIGZlYXR1cmUgOiBlbmNGbGV4SUxNIgotIyAgICAgICAgIGluY3Igd2FybmluZ19jb3VudAotIyAgICAgICAgIGlmIHskdmFycyhwbGFjZV9vcHRfZGVzaWduKX0gewotIyAgICAgICAgICAgIHNldCB3YXJuaW5ncygkd2FybmluZ19jb3VudCkgIlNldHRpbmcgdmFycyhwbGFjZV9vcHRfZGVzaWduKSB0byAnZmFsc2UnIGFzIHZhcnMoZW5hYmxlX2ZsZXhpbG0pIGlzIHRydWUiCi0jICAgICAgICAgICAgaW5jciB3YXJuaW5nX2NvdW50Ci0jICAgICAgICAgICAgc2V0IHZhcnMocGxhY2Vfb3B0X2Rlc2lnbikgZmFsc2UKLSMgICAgICAgICB9Ci0jICAgICAgfQotICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgIyBUaGUgcmRhX0lucHV0KHVpX3BnX2Nvbm5lY3Rpb25zKSB2YXJpYWJsZSBpcyBhIHNwZWNpYWwgY2FzZSBhcyBkZXBlbmRpbmcKLSAgICMgb24gdGhlIHZhbHVlIG9mIHRoaXMgdmFyaWFibGUsIG90aGVyICd1c2VyIGRlZmluZWQnIHZhcmlhYmxlcyBtdXN0IGJlCi0gICAjIGR5bmFtaWNhbGx5IGNoZWNrZWQKLSAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICNpZiB7W2luZm8gZXhpc3RzIHZhcnMocGdfY29ubmVjdGlvbnMpXX0gewotICAgIyAgIGZvcmVhY2ggb3B0aW9uICR2YXJzKHBnX2Nvbm5lY3Rpb25zKSB7Ci0gICAjICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycygkb3B0aW9uKV19IHsKLSAgICMgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIEVSUk9SOiBUaGUgcC9nIGNvbm5lY3Rpb24gZGVmaW5pdGlvbiBpcyBpbmNvbXBsZXRlIgotICAgIyAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiICAgICAgICAgICAgIFBsZWFzZSBhZGQgJ3NldCB2YXJzKCRvcHRpb24pIDxnbG9iYWxfbmV0PicgdG8geW91ciBzZXR1cC50Y2wiCi0gICAjICAgICAgICAgc2V0IGVycm9ycygkZXJyb3JfY291bnQpICJUaGUgcC9nIGNvbm5lY3Rpb24gZGVmaW5pdGlvbiBpcyBpbmNvbXBsZXRlOyB2YXJpYWJsZSB2YXJzKCRvcHRpb24pIGlzIHJlcXVpcmVkIgotICAgIyAgICAgICAgIGluY3IgZXJyb3JfY291bnQKLSAgICMgICAgICB9Ci0gICAjICAgfQotICAgI30KLQotICAgICAgc2V0IGNoZWNrKHBsdWdpbnMpIFtsaXN0XQotICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKG1ldGFsZmlsbCldICYmICgkdmFycyhtZXRhbGZpbGwpICE9IGZhbHNlKX0gewotICAgICAgICAgc2V0IGNoZWNrKHBsdWdpbnMpIG1ldGFsZmlsbF90Y2wKLSAgICAgIH0KLSAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICAgICAgICAgICAgICAgIFBsdWctaW5zXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgIiMgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiIKLSAgICAgIHNldCByY19wbHVnaW5zICJzeW5faW5pdF90Y2wgc3luX2xvYWRfcnRsX3RjbCBwcmVfc3luX2xvYWRfbGliX3RjbCBwb3N0X3N5bl9sb2FkX2xpYl90Y2wgXAotICAgICAgICAgICAgICAgICAgICAgIHByZV9zeW5fZWxhYl90Y2wgcG9zdF9zeW5fZWxhYl90Y2wgc3luX2RmdF9zZXR1cF90Y2wgcHJlX3N5bl9nZW5fdGNsIFwKLSAgICAgICAgICAgICAgICAgICAgICBwb3N0X3N5bl9nZW5fdGNsIHByZV9zeW5fbWFwX3RjbCBwb3N0X3N5bl9tYXBfdGNsIHBvc3Rfc3luX2RmdF90Y2wgXAotICAgICAgICAgICAgICAgICAgICAgIHByZV9zeW5faW5jcl90Y2wgcG9zdF9zeW5faW5jcl90Y2wgcHJlX3N5bl9wbGFjZV90Y2wgcG9zdGxvYWRfc3luX3BsYWNlX3RjbCBcCi0gICAgICAgICAgICAgICAgICAgICAgcHJlZXhwb3J0X3N5bl9wbGFjZV90Y2wgcHJlYW5ub3RhdGlvbl9zeW5fcGxhY2VfdGNsIHBvc3Rfc3luX3BsYWNlX3RjbCBwcmVfc3luX2V4aXRfdGNsIgotICAgICAgc2V0IGVkaV9wbHVnaW5zICJhbHdheXNfc291cmNlX3RjbCBwcmVfaW5pdF90Y2wgcG9zdF9pbml0X3RjbCBcCi0gICAgICAgICAgICAgICAgICAgICAgIHByZV9wbGFjZV90Y2wgcGxhY2VfdGNsIHBvc3RfcGxhY2VfdGNsIHByZV9jdHNfdGNsIGN0c190Y2wgcG9zdF9jdHNfdGNsIFwKLSAgICAgICAgICAgICAgICAgICAgICAgcHJlX3ByZWN0c190Y2wgcG9zdF9wcmVjdHNfdGNsIHByZV9wb3N0Y3RzX3RjbCBwb3N0X3Bvc3RjdHNfdGNsIFwKLSAgICAgICAgICAgICAgICAgICAgICAgcHJlX3Bvc3RjdHNfaG9sZF90Y2wgcG9zdF9wb3N0Y3RzX2hvbGRfdGNsIHByZV9yb3V0ZV90Y2wgcG9zdF9yb3V0ZV90Y2wgXAotICAgICAgICAgICAgICAgICAgICAgICBwcmVfcG9zdHJvdXRlX3RjbCBwb3N0X3Bvc3Ryb3V0ZV90Y2wgcHJlX3Bvc3Ryb3V0ZV9ob2xkX3RjbCBwb3N0X3Bvc3Ryb3V0ZV9ob2xkX3RjbCBcCi0gICAgICAgICAgICAgICAgICAgICAgIHByZV9wb3N0cm91dGVfc2lfdGNsIHBvc3RfcG9zdHJvdXRlX3NpX3RjbCBwcmVfcG9zdHJvdXRlX3NpX2hvbGRfdGNsIAotICAgICAgICAgICAgICAgICAgICAgICBwb3N0X3Bvc3Ryb3V0ZV9zaV9ob2xkX3RjbCBwcmVfc2lnbm9mZl90Y2wgcG9zdF9zaWdub2ZmX3RjbCBcCi0gICAgICAgICAgICAgICAgICAgICAgIHByZV9yZWJ1ZGdldF90Y2wgcG9zdF9yZWJ1ZGdldF90Y2wgcHJlX2ZsZXhpbG1fdGNsIHBvc3RfZmxleGlsbV90Y2wgXAotICAgICAgICAgICAgICAgICAgICAgICBwcmVfYXNzZW1ibGVfdGNsIHBvc3RfYXNzZW1ibGVfdGNsIHByZV9tb2RlbF9nZW5fdGNsIHBvc3RfbW9kZWxfZ2VuX3RjbCBcCi0gICAgICAgICAgICAgICAgICAgICAgIHByZV9wYXJ0aXRpb25fcGxhY2VfdGNsIHBvc3RfcGFydGl0aW9uX3BsYWNlX3RjbCBwcmVfYXNzZW1ibGVfZmxleF9pbG1fdGNsIHBvc3RfYXNzZW1ibGVfZmxleGlsbV90Y2wgXAotICAgICAgICAgICAgICAgICAgICAgICBwcmVfcGFydGl0aW9uX3RjbCBwb3N0X3BhcnRpdGlvbl90Y2wiCi0gICAgICAgCi0gICAgICBzZXQgdmFycyhyY19wbHVnaW5zKSAkcmNfcGx1Z2lucyAKLSAgICAgIHNldCB2YXJzKGVkaV9wbHVnaW5zKSAkZWRpX3BsdWdpbnMgCi0gICAgICAgCi0gICAgICBpZiB7JHZhcnMocmMpfSB7Ci0gICAgICAgICBzZXQgcGx1Z2luX2xpc3QgW2pvaW4gW2NvbmNhdCAkcmNfcGx1Z2lucyAkZWRpX3BsdWdpbnNdXQotICAgICAgfSBlbHNlIHsKLSAgICAgICAgIHNldCBwbHVnaW5fbGlzdCAkZWRpX3BsdWdpbnMKLSAgICAgIH0KLSAgICAgIGZvcmVhY2ggcGx1Z2luICRwbHVnaW5fbGlzdCB7Ci0gICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJHBsdWdpbildICYmICgkdmFycygkcGx1Z2luKSAhPSAiIil9IHsKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgSU5GTzogUGx1Zy1pbiAkcGx1Z2luID0gJHZhcnMoJHBsdWdpbilcbiIKLSAgICAgICAgICAgIGxhcHBlbmQgY2hlY2socGx1Z2lucykgJHBsdWdpbgotICAgICAgICAgICAgbGFwcGVuZCB2YXJzKHBsdWdpbnNfZGVmaW5lZCkgJHBsdWdpbiAKLSAgICAgICAgIH0KLSAgICAgIH0KLSAgICAgIGlmIHskdmFycyhub3Z1cykgJiYgW2luZm8gZXhpc3RzIHZhcnMocGx1Z2luc19kZWZpbmVkKV19IHsKLSAgICAgICAgIEZGX05PVlVTOjpjb252ZXJ0X3BsdWdpbnMKLSAgICAgIH0KLQotICAgICAgc2V0IGRpc3QobHNmKSAicXVldWUgcmVzb3VyY2UgYXJncyIKLSAgICAgIHNldCBkaXN0KGN1c3RvbSkgInNjcmlwdCIKLSAgICAgIHNldCBkaXN0KHJzaCkgImhvc3RfbGlzdCIKLSAgICAgIHNldCBkaXN0KGxvY2FsKSAiIgotCi0gICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoZGlzdHJpYnV0ZSldfSB7Ci0gICAgICAgICBpZiB7W2luZm8gZXhpc3RzIGRpc3QoJHZhcnMoZGlzdHJpYnV0ZSkpXX0gewotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4iCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgICAgICAgICAgICAgICBEaXN0cmlidXRpb24gU2V0dXBcbiIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICBJTkZPOiBNb2RlID0gJHZhcnMoZGlzdHJpYnV0ZSlcbiIKLSAgICAgICAgICAgIGZvcmVhY2ggb3B0aW9uICRkaXN0KCR2YXJzKGRpc3RyaWJ1dGUpKSB7Ci0gICAgICAgICAgICAgICBpZiB7IVtpbmZvIGV4aXN0cyB2YXJzKCR2YXJzKGRpc3RyaWJ1dGUpLCRvcHRpb24pXX0gewotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICBFUlJPUjogUmVxdWlyZWQgdmFyaWFibGUgdmFycygkdmFycyhkaXN0cmlidXRlKSwkb3B0aW9uKSBub3QgZGVmaW5lZFxuIgotICAgICAgICAgICAgICAgICAgc2V0IGVycm9ycygkZXJyb3JfY291bnQpICJSZXF1aXJlZCB2YXJpYWJsZSB2YXJzKCR2YXJzKGRpc3RyaWJ1dGUpLCRvcHRpb24pIG5vdCBkZWZpbmVkIgotICAgICAgICAgICAgICAgICAgaW5jciBlcnJvcl9jb3VudAotICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgSU5GTzogICAgJG9wdGlvbiA9ICR2YXJzKCR2YXJzKGRpc3RyaWJ1dGUpLCRvcHRpb24pXG4iCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICBFUlJPUjogRGlzdHJpYnV0aW9uIG1vZGUgJHZhcnMoZGlzdHJpYnV0ZSkgbm90IHN1cHBvcnRlZFxuIgotICAgICAgICAgICAgc2V0IGVycm9ycygkZXJyb3JfY291bnQpICJEaXN0cmlidXRpb24gbW9kZSAkdmFycyhkaXN0cmlidXRlKSBub3Qgc3VwcG9ydGVkIgotICAgICAgICAgICAgaW5jciBlcnJvcl9jb3VudAotICAgICAgICAgfQotICAgICAgfSBlbHNlIHsKLSAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhob3N0cyldICYmICgkdmFycyhob3N0cykgPiAxKX0gewotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjV0FSTklORzogVmFyaWFibGUgdmFycyhob3N0cykgPiAxIGJ1dCB2YXJzKGRpc3RyaWJ1dGUpIG5vdCBkZWZpbmVkXG4iCi0gICAgICAgICAgICBzZXQgd2FybmluZ3MoJHdhcm5pbmdfY291bnQpICJWYXJpYWJsZSB2YXJzKGhvc3RzKSA+IDEgYnV0IHZhcnMoZGlzdHJpYnV0ZSkgbm90IGRlZmluZWQiCi0gICAgICAgICAgICBpbmNyIHdhcm5pbmdfY291bnQKLSAgICAgICAgIH0KLSAgICAgIH0KLQotICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgIiMgICAgICAgICAgICAgICBUeXBlIENoZWNrXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgIiMgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiIKLSAgICAgIGZvcmVhY2ggaW50ZWdlciAkY2hlY2soaW50ZWdlcnMpIHsKLSAgICAgICAgIGlmIHshW3N0cmluZyBpcyBpbnRlZ2VyIC1zdHJpY3QgJHZhcnMoJGludGVnZXIpXX0gewotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICBFUlJPUjogVmFyaWFibGVzIGlzIG5vdCBhbiBpbnRlZ2VyICgkaW50ZWdlcikgLi4uXG4iCi0gICAgICAgICAgICBzZXQgZXJyb3JzKCRlcnJvcl9jb3VudCkgIlZhcmlhYmxlcyBpcyBub3QgYW4gaW50ZWdlciAoJGludGVnZXIpIC4uLiIKLSAgICAgICAgICAgIGluY3IgZXJyb3JfY291bnQKLSAgICAgICAgIH0KLSAgICAgIH0gCi0gICAgICBhcHBlbmQgY29tbWFuZHMgIiMgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgICAgICAgICAgICAgIEZpbGUgQ2hlY2tcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuIgotICAgICAgc2V0IGZpbGVzIDAKLSAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgSU5GTzogQ2hlY2tpbmcgZGVzaWduIGZpbGVzIC4uLlxuIgotICAgICAgZm9yZWFjaCBmaWxlICRjaGVjayhmaWxlcykgewotICAgIyAgIGFwcGVuZCBjb21tYW5kcyAiIyAgSU5GTzogICAgJGZpbGUgLi4uXG4iCi0gICAgICAgICBpZiB7IVtmaWxlIGV4aXN0cyAkZmlsZV19IHsKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgRVJST1I6IEZpbGUgZG9lcyBub3QgZXhpc3QgKCRmaWxlKSAuLi5cbiIKLSAgICAgICAgICAgIHNldCBlcnJvcnMoJGVycm9yX2NvdW50KSAiRmlsZSBkb2VzIG5vdCBleGlzdCAoJGZpbGUpIgotICAgICAgICAgICAgaW5jciBlcnJvcl9jb3VudAotICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIGluY3IgZmlsZXMKLSAgICAgICAgIH0KLSAgICAgIH0KLSAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgSU5GTzogICAgLi4uIGZvdW5kICRmaWxlcyBmaWxlc1xuIgotICAgICAgc2V0IGZpbGVzIDAKLSAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgSU5GTzogQ2hlY2tpbmcgTEVGIGZpbGVzIC4uLlxuIgotICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGxlZl9maWxlcyldfSB7Ci0gICAgICAgICBmb3JlYWNoIGZpbGUgJHZhcnMobGVmX2ZpbGVzKSB7Ci0gICAgICAgICAgICBpZiB7IVtmaWxlIGV4aXN0cyAkZmlsZV19IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgRVJST1I6IEZpbGUgZG9lcyBub3QgZXhpc3QgKCRmaWxlKVxuIgotICAgICAgICAgICAgICAgc2V0IGVycm9ycygkZXJyb3JfY291bnQpICJGaWxlIGRvZXMgbm90IGV4aXN0ICgkZmlsZSkiCi0gICAgICAgICAgICAgICBpbmNyIGVycm9yX2NvdW50Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgaW5jciBmaWxlcwotICAgICAgICAgICAgfQotICAgICAgICAgfQotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICBJTkZPOiAgICAuLi4gZm91bmQgKCRmaWxlcy9bbGxlbmd0aCAkdmFycyhsZWZfZmlsZXMpXSkgbGVmIGZpbGVzXG4iCi0gICAgICB9Ci0gICAgICBzZXQgZmlsZXMgMAotICAgICAgc2V0IHRvdGFsIDAKLSMgICAgICBpZiB7IVtpbmZvIGV4aXN0cyB2YXJzKHZpZXdfZGVmaW5pdGlvbl90Y2wpXX0gewotIyAgICAgIGlmIHshW2luZm8gZXhpc3RzIHZhcnMoY3BmX2ZpbGUpXX0gewotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICBJTkZPOiBDaGVja2luZyBsaWJyYXJ5IHNldHMgLi4uXG4iCi0gICAgICAgICBmb3JlYWNoIGxpYnJhcnlfc2V0ICR2YXJzKGxpYnJhcnlfc2V0cykgewotICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGVuYWJsZV9sZGIpXSAmJiAkdmFycyhlbmFibGVfbGRiKX0gewotICAgICAgICAgICAgICAgc2V0IHRlbXBfbGlzdCAkdmFycygkbGlicmFyeV9zZXQsdGltaW5nLG9yaWcpCi0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgc2V0IHRlbXBfbGlzdCAkdmFycygkbGlicmFyeV9zZXQsdGltaW5nKQotICAgICAgICAgICAgfQotICAgICAgICAgICAgZm9yZWFjaCBmaWxlICR0ZW1wX2xpc3QgewotICAgICAgICAgICAgICAgaW5jciB0b3RhbAotICAgICAgICAgICAgICAgaWYgeyFbZmlsZSBleGlzdHMgJGZpbGVdfSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIEVSUk9SOiBGaWxlIGRvZXMgbm90IGV4aXN0ICgkZmlsZSlcbiIKLSMgICAgICAgICAgICAgICAgICBzZXQgZXJyb3JzKCRlcnJvcl9jb3VudCkgIkZpbGUgZG9lcyBub3QgZXhpc3QgKCRmaWxlKSIKLSMgICAgICAgICAgICAgICAgICBpbmNyIGVycm9yX2NvdW50Ci0gICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgaW5jciBmaWxlcwotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfSAKLSAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkbGlicmFyeV9zZXQsc2kpXX0gewotICAgICAgICAgICAgICAgZm9yZWFjaCBmaWxlICR2YXJzKCRsaWJyYXJ5X3NldCxzaSkgewotICAgICAgICAgICAgICAgICAgaW5jciB0b3RhbAotICAgICAgICAgICAgICAgICAgaWYgeyFbZmlsZSBleGlzdHMgJGZpbGVdfSB7Ci0gICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIFdBUk5JTkc6IENEQiBmaWxlIGRvZXMgbm90IGV4aXN0ICgkZmlsZSlcbiIKLSMgICAgICAgICAgICAgICAgICAgICBzZXQgd2FybmluZ3MoJHdhcm5pbmdfY291bnQpICJDREIgZmlsZSBkb2VzIG5vdCBleGlzdCAoJGZpbGUpIgotIyAgICAgICAgICAgICAgICAgICAgIGluY3Igd2FybmluZ19jb3VudAotICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgIGluY3IgZmlsZXMKLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBpZiB7ISR2YXJzKGVuYWJsZV9zaV9hd2FyZSl9IHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgV0FSTklORzogQ0RCIGxpYnJhcmllcyBub3QgZGVmaW5lZCBmb3IgJGxpYnJhcnlfc2V0IGxpYnJhcnkgc2V0XG4iCi0gICAgICAgICAgICAgICAgICBzZXQgd2FybmluZ3MoJHdhcm5pbmdfY291bnQpICJDREIgbGlicmFyaWVzIG5vdCBkZWZpbmVkIGZvciAkbGlicmFyeV9zZXQgbGlicmFyeSBzZXQiCi0gICAgICAgICAgICAgICAgICBpbmNyIHdhcm5pbmdfY291bnQKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0KLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgSU5GTzogICAgLi4uIGZvdW5kICgkZmlsZXMvJHRvdGFsKSBsaWJyYXJ5IGZpbGVzXG4iCi0gICAgICAgICBpZiB7JHRvdGFsICE9ICRmaWxlc30gewotICAgICAgICAgICAgc2V0IGVycm9ycygkZXJyb3JfY291bnQpICJbZXhwciAkdG90YWwgLSAkZmlsZXNdIHRpbWluZyBsaWJyYXJ5IGZpbGVzIHdlcmUgbm90IGZvdW5kICIKLSAgICAgICAgICAgIGluY3IgZXJyb3JfY291bnQKLSAgICAgICAgIH0KLSAgICAgICAgIHNldCBmaWxlcyAwCi0jICAgICAgfQotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICBJTkZPOiBDaGVja2luZyByYyBjb3JuZXJzIC4uLlxuIgotICAgICAgICAgZm9yZWFjaCBmaWxlICRjaGVjayhyY19jb3JuZXJzKSB7Ci0gICAgICAgICAgICBpZiB7IVtmaWxlIGV4aXN0cyAkZmlsZV19IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgRVJST1I6IEZpbGUgZG9lcyBub3QgZXhpc3QgKCRmaWxlKVxuIgotICAgICAgICAgICAgICAgc2V0IGVycm9ycygkZXJyb3JfY291bnQpICJGaWxlIGRvZXMgbm90IGV4aXN0ICgkZmlsZSkiCi0gICAgICAgICAgICAgICBpbmNyIGVycm9yX2NvdW50Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgaW5jciBmaWxlcwotICAgICAgICAgICAgfQotICAgICAgICAgfQotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICBJTkZPOiAgICAuLi4gZm91bmQgJGZpbGVzIGZpbGVzXG4iCi0gICAgICAgICBzZXQgZmlsZXMgMAotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICBJTkZPOiBDaGVja2luZyBjb25zdHJhaW50IG1vZGVzIC4uLlxuIgotICAgICAgICAgZm9yZWFjaCBmaWxlX2xpc3QgJGNoZWNrKGNvbnN0cmFpbnRfbW9kZXMpIHsKLSAgICAgICAgICAgIGZvcmVhY2ggZmlsZSAkZmlsZV9saXN0IHsKLSAgICAgICAgICAgICAgIGlmIHshW2ZpbGUgZXhpc3RzICRmaWxlXX0gewotICAgICAgICAgICAgICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycyhjcGZfZmlsZSldIHx8IChbaW5mbyBleGlzdHMgdmFycyhjcGZfZmlsZSldICYmICEkdmFycyhjcGZfdGltaW5nKSl9IHsKLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgRVJST1I6IEZpbGUgZG9lcyBub3QgZXhpc3QgKCRmaWxlKVxuIgotICAgICAgICAgICAgICAgICAgICAgc2V0IGVycm9ycygkZXJyb3JfY291bnQpICJGaWxlIGRvZXMgbm90IGV4aXN0ICgkZmlsZSkiCi0gICAgICAgICAgICAgICAgICAgICBpbmNyIGVycm9yX2NvdW50Ci0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgaW5jciBmaWxlcwotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAgfQotIyAgICAgIH0KLSAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgSU5GTzogICAgLi4uIGZvdW5kICRmaWxlcyBmaWxlc1xuIgotICAgICAgc2V0IGZpbGVzIDAKLSAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIElORk86IENoZWNraW5nIHBsdWdpbiBmaWxlcyAuLi5cbiIKLSAgICAgIGZvcmVhY2ggcGx1ZyAkY2hlY2socGx1Z2lucykgewotICAgICAgICAgc2V0IGZpbGUgJHZhcnMoJHBsdWcpCi0gICAgICAgICBpZiB7IVtmaWxlIGV4aXN0cyAkZmlsZV0gJiYgIVtmaWxlIGV4aXN0cyAkdmFycyhwbHVnX2RpcikvJGZpbGVdfSB7Ci0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIFdBUk5JTkc6IEZpbGUgZG9lcyBub3QgZXhpc3QgKCRmaWxlKSAuLi4gY29udGludWluZ1xuIgotICAgICAgICAgICAgbGFwcGVuZCB2YXJzKG1pc3NpbmdfcGx1Z2lucykgJHBsdWcgCi0gICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgbGFwcGVuZCB2YXJzKHBsdWdpbnNfZm91bmQpICRwbHVnIAotICAgICAgICAgICAgaW5jciBmaWxlcwotICAgICAgICAgICAgaWYgeyEkdmFycyhlbmFibGVfY2VsdGljX3N0ZXBzKX0geyAKLSAgICAgICAgICAgICAgIGlmIHtbcmVnZXhwICJwb3N0cm91dGVfc2kiICRwbHVnXX0gewotICAgICAgICAgICAgICAgICAgYXBwZW5kIHdhcm5pbmdzKCR3YXJuaW5nX2NvdW50KSAiUGx1Zy1pbiAkcGx1ZyB3aWxsIGJlIHNraXBwZWQgZm9yIHNpQXdhcmUgZmxvdyIKLSAgICAgICAgICAgICAgICAgIGluY3Igd2FybmluZ19jb3VudAotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICBXQVJOSU5HOiBQbHVnLWluICRwbHVnIHdpbGwgYmUgc2tpcHBlZCBmb3Igc2lBd2FyZSBmbG93XG4iCi0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgICAgICAgICAgIFRvIGVuYWJsZSBjZWx0aWMgYmFzZWQgU0kgZmxvdywgdXNlIHZhcnMoZW5hYmxlX2NlbHRpY19zdGVwcylcbiIKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0KLSAgICAgIH0KLSAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgSU5GTzogICAgLi4uIGZvdW5kICRmaWxlcyBmaWxlc1xuIgotCi0gICAgICBhcHBlbmQgY29tbWFuZHMgIiMgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgIiMgICAgICAgICAgICAgICAgICAgIEZsb3cgT3B0aW9uc1xuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuIgotICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKHBhcnRpdGlvbl9saXN0KV19IHsKLSAgICAgICAgIHNldCBmbG93IGhpZXJhcmNoaWNhbAotICAgICAgfSBlbHNlIHsKLSAgICAgICAgIHNldCBmbG93IGZsYXQKLSAgICAgIH0KLSAgICAgIHNldCB2YWxpZCBbbGlzdCBub25lIGRlZmF1bHQgc3RhbmRhcmQgZXhwcmVzcyBleHRyZW1lXQotICAgICAgaWYge1tsc2VhcmNoICR2YWxpZCBbc3RyaW5nIHRvbG93ZXIgJHZhcnMoZmxvd19lZmZvcnQpXV0gPT0gLTF9IHsKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgRVJST1I6IFZhcmlhYmxlIHZhcnMoZmxvd19lZmZvcnQpIGhhcyBpbGxlZ2FsIHZhbHVlICR2YXJzKGZsb3dfZWZmb3J0KVxuIgotICAgICAgICAgc2V0IGVycm9ycygkZXJyb3JfY291bnQpICJWYXJpYWJsZSB2YXJzKGZsb3dfZWZmb3J0KSBoYXMgaWxsZWdhbCB2YWx1ZSAkdmFycyhmbG93X2VmZm9ydCkiCi0gICAgICAgICBpbmNyIGVycm9yX2NvdW50Ci0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgICAgICAgICBNdXN0IGJlIG9uZSBvZiAnJHZhbGlkJ1xuIgotICAgICAgfQotICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICAgICAgICAgICAgICAgICAgICBGbG93ID0gJGZsb3dcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgICAgICAgICAgICAgICAgIEZsYXZvciA9ICR2YXJzKGZsb3cpXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgIiMgICAgICAgICAgICAgICAgICBFZmZvcnQgPSAkdmFycyhmbG93X2VmZm9ydClcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgICAgICAgICAgICAgICAgICAgUGxhY2VtZW50IE9wdGlvbnNcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiIKLSAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhwbGFjZV9vcHRfZGVzaWduKV19IHsKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgICAgICAgUGxhY2UgT3B0IERlc2lnbiA9ICR2YXJzKHBsYWNlX29wdF9kZXNpZ24pXG4iCi0gICAgICB9Ci0gICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoaW5fcGxhY2Vfb3B0KV19IHsKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgICAgICAgICAgIEluIFBsYWNlIE9wdCA9ICR2YXJzKGluX3BsYWNlX29wdClcbiIKLSAgICAgIH0KLSAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhub19wcmVfcGxhY2Vfb3B0KV19IHsKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgICAgICAgIE5vIFByZVBsYWNlIE9wdCA9ICR2YXJzKG5vX3ByZV9wbGFjZV9vcHQpXG4iCi0gICAgICB9Ci0gICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMocGxhY2VfaW9fcGlucyldfSB7Ci0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgICAgICAgICAgIFBsYWNlIElPIFBpbnMgPSAkdmFycyhwbGFjZV9pb19waW5zKVxuIgotICAgICAgfQotICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGNsb2NrX2dhdGVfYXdhcmUpXX0gewotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICAgICAgICBDbG9jayBHYXRlIEF3YXJlID0gJHZhcnMoY2xvY2tfZ2F0ZV9hd2FyZSlcbiIKLSAgICAgIH0KLSAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhjb25nZXN0aW9uX2VmZm9ydCldfSB7Ci0gICAgICAgICBpZiB7JHZhcnMoY29uZ2VzdGlvbl9lZmZvcnQpID09ICJub25lIn0gewotICAgICAgICAgICAgdW5zZXQgdmFycyhjb25nZXN0aW9uX2VmZm9ydCkgIAotICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgICAgICBDb25nZXN0aW9uIEVmZm9ydCA9ICR2YXJzKGNvbmdlc3Rpb25fZWZmb3J0KVxuIgotICAgICAgICAgfQotICAgICAgfQotICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICAgICAgICAgICAgICAgICAgIENsb2NrIFRyZWUgT3B0aW9uc1xuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICAgICAgICBSb3V0ZSBDbG9jayBOZXRzID0gJHZhcnMocm91dGVfY2xvY2tfbmV0cylcbiIKLSAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhjbG9ja19lY28pXX0gewotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICAgICAgICAgICAgICAgQ2xvY2sgRUNPID0gJHZhcnMoY2xvY2tfZWNvKVxuIgotICAgICAgfQotICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICAgICAgICAgICAgICAgICBPcHRpbWl6YXRpb24gT3B0aW9uc1xuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIgotICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGxlYWthZ2VfZWZmb3J0KV19IHsKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgICAgICAgICBMZWFrYWdlIEVmZm9ydCA9ICR2YXJzKGxlYWthZ2VfZWZmb3J0KVxuIgotICAgICAgfQotICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKHByZXNlcnZlX2Fzc2VydGlvbnMpXX0gewotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICAgICBQcmVzZXJ2ZSBBc3NlcnRpb25zID0gJHZhcnMocHJlc2VydmVfYXNzZXJ0aW9ucylcbiIKLSAgICAgIH0KLSAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyh1c2VmdWxfc2tldyldfSB7Ci0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgICAgICAgICAgICAgVXNlZnVsIFNrZXcgPSAkdmFycyh1c2VmdWxfc2tldylcbiIKLSAgICAgIH0KLSAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhjcml0aWNhbF9yYW5nZSldfSB7Ci0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgICAgICAgICAgQ3JpdGljYWwgUmFuZ2UgPSAkdmFycyhjcml0aWNhbF9yYW5nZSlcbiIKLSAgICAgIH0KLSAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhhbGxfZW5kX3BvaW50cyldfSB7Ci0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgICAgICAgICAgQWxsIEVuZCBQb2ludHMgPSAkdmFycyhhbGxfZW5kX3BvaW50cylcbiIKLSAgICAgIH0KLSAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhzaXplX29ubHlfZmlsZSldfSB7Ci0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgICAgICAgICAgU2l6ZSBPbmx5IEZpbGUgPSAkdmFycyhzaXplX29ubHlfZmlsZSlcbiIKLSAgICAgIH0KLSAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhkb250X3VzZV9maWxlKV19IHsKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgICAgICAgICBEb24ndCBVc2UgRmlsZSA9ICR2YXJzKGRvbnRfdXNlX2ZpbGUpXG4iCi0gICAgICB9Ci0gICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoc2tld19idWZmZXJzKV19IHsKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgICAgICAgICAgIFNrZXcgQnVmZmVycyA9ICR2YXJzKHNrZXdfYnVmZmVycylcbiIKLSAgICAgIH0KLSAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhlbmFibGVfcGFjKV19IHsKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgICAgICAgICAgICAgRW5hYmxlIFBBQyA9ICR2YXJzKGVuYWJsZV9wYWMpXG4iCi0gICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMocGFydGl0aW9uX2xpc3QpXX0gewotICAgICAgICAgICAgZm9yZWFjaCBwYWMgJHZhcnMocGFydGl0aW9uX2xpc3QpIHsKLSAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkcGFjLHBhY19tb2RlKV19IHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgICAgICAgICAgICAgICAgICAkcGFjIC0+ICR2YXJzKCRwYWMscGFjX21vZGUpXG4iCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0gICAgICB9Ci0gICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgIiMgICAgICAgICAgICAgICAgICBIb2xkIEZpeGluZyBPcHRpb25zXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgIiMgICAgICAgICAgICAgICAgRml4IEhvbGQgPSAkdmFycyhmaXhfaG9sZClcbiIKLSAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhmaXhfaG9sZF9lZmZvcnQpXX0gewotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICAgICAgICAgRml4IEhvbGQgRWZmb3J0ID0gJHZhcnMoZml4X2hvbGRfZWZmb3J0KVxuIgotICAgICAgfQotICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGZpeF9ob2xkX2lnbm9yZV9pb3MpXX0gewotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICAgICAgICAgICAgIElnbm9yZSBJT3MgID0gJHZhcnMoZml4X2hvbGRfaWdub3JlX2lvcylcbiIKLSAgICAgIH0KLSAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhmaXhfaG9sZF9hbGxvd190bnNfZGVncmFkYXRpb24pXX0gewotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICAgQWxsb3cgVE5TIERlZ3JhZGF0aW9uID0gJHZhcnMoZml4X2hvbGRfYWxsb3dfdG5zX2RlZ3JhZGF0aW9uKVxuIgotICAgICAgfQotICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICAgICAgICAgICAgICAgICAgICAgVGltaW5nIE9wdGlvbnNcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgICAgICAgICAgICBFbmFibGUgQ1BQUiA9ICR2YXJzKGVuYWJsZV9jcHByKVxuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICAgICAgICAgICAgICBFbmFibGUgT0NWID0gJHZhcnMoZW5hYmxlX29jdilcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgICAgICAgICAgICBFbmFibGUgQU9DViA9ICR2YXJzKGVuYWJsZV9hb2N2KVxuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICAgICAgICAgICAgIEVuYWJsZSBTT0NWID0gJHZhcnMoZW5hYmxlX3NvY3YpXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgIiMgICAgICAgICAgICAgICBFbmFibGUgU1MgPSAkdmFycyhlbmFibGVfc3MpXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgIiMgICAgICAgICAgICAgICAgICAgIFJvdXRpbmcgT3B0aW9uc1xuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIgotICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKHRyYWNrX29wdCldfSB7Ci0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgICAgSW4gUm91dGUgT3B0aW1pemF0aW9uID0gJHZhcnModHJhY2tfb3B0KVxuIgotIyAgICAgICAgIGlmIHskdmFycyh0cmFja19vcHQpfSB7Ci0jICAgICAgICAgICAgc2V0IHZhcnMoZW5hYmxlX3NpX2F3YXJlKSB0cnVlCi0jICAgICAgICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycyh0cXVhbnR1c19maWxlKV19IHsKLSMgICAgICAgICAgICAgICBzZXQgZXJyb3JzKCRlcnJvcl9jb3VudCkgInRRdWFudHVzIGZpbGUgLSB2YXJzKHRxdWFudHVzX2ZpbGUpIC0gcmVxdWlyZWQgd2hlbiB2YXJzKHRyYWNrX29wdCkgc2V0IHRvIHRydWUiCi0jICAgICAgICAgICAgICAgaW5jciBlcnJvcl9jb3VudAotIyAgICAgICAgICAgIH0KLSMgICAgICAgICB9Ci0gICAgICB9Ci0gICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMobXVsdGlfY3V0X2VmZm9ydCldfSB7Ci0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgICAgICAgIE11bHRpLUN1dCBFZmZvcnQgPSAkdmFycyhtdWx0aV9jdXRfZWZmb3J0KVxuIgotICAgICAgfQotICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGxpdGhvX2RyaXZlbl9yb3V0aW5nKV19IHsKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgICBMaXRobyBEcml2ZW4gUm91dGluZyA9ICR2YXJzKGxpdGhvX2RyaXZlbl9yb3V0aW5nKVxuIgotICAgICAgfQotICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGFudGVubmFfZGlvZGUpXSAmJiAoJHZhcnMoYW50ZW5uYV9kaW9kZSkgIT0gIiIpfSB7Ci0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgICAgICAgICAgIEFudGVubmEgRGlvZGUgPSAkdmFycyhhbnRlbm5hX2Rpb2RlKVxuIgotICAgICAgfQotICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKHJlbGF0aXZlX2NfdGhyZXNoKV0gfHwgXAotICAgICAgICAgIFtpbmZvIGV4aXN0cyB2YXJzKHRvdGFsX2NfdGhyZXNoKV0gfHwgXAotICAgICAgICAgIFtpbmZvIGV4aXN0cyB2YXJzKGNvdXBsaW5nX2NfdGhyZXNoKV0gfHxcCi0gICAgICAgICAgW2luZm8gZXhpc3RzIHZhcnMocG9zdHJvdXRlX2V4dHJhY3Rpb25fZWZmb3J0KV0gfHxcCi0gICAgICAgICAgW2luZm8gZXhpc3RzIHZhcnMoc2lnbm9mZl9leHRyYWN0aW9uX2VmZm9ydCldfSB7Ci0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgICAgICAgICAgICAgICAgICAgRXh0cmFjdGlvbiBPcHRpb25zXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4iCi0gICAgICB9Ci0gICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMocmVsYXRpdmVfY190aHJlc2gpXX0gewotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICAgIFJlbGF0aXZlIEMgVGhyZXNob2xkID0gJHZhcnMocmVsYXRpdmVfY190aHJlc2gpXG4iCi0gICAgICB9Ci0gICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnModG90YWxfY190aHJlc2gpXX0gewotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICAgICAgIFRvdGFsIEMgVGhyZXNob2xkID0gJHZhcnModG90YWxfY190aHJlc2gpXG4iCi0gICAgICB9Ci0gICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoY291cGxpbmdfY190aHJlc2gpXX0gewotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICAgIENvdXBsaW5nIEMgVGhyZXNob2xkID0gJHZhcnMoY291cGxpbmdfY190aHJlc2gpXG4iCi0gICAgICB9Ci0gICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMocG9zdHJvdXRlX2V4dHJhY3Rpb25fZWZmb3J0KV19IHsKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgUG9zdHJvdXRlIEVmZm9ydCBMZXZlbCA9ICR2YXJzKHBvc3Ryb3V0ZV9leHRyYWN0aW9uX2VmZm9ydClcbiIKLSAgICAgIH0KLSAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhzaWdub2ZmX2V4dHJhY3Rpb25fZWZmb3J0KV19IHsKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgICBTaWdub2ZmIEVmZm9ydCBMZXZlbCA9ICR2YXJzKHNpZ25vZmZfZXh0cmFjdGlvbl9lZmZvcnQpXG4iCi0gICAgICB9Ci0KLSAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgICAgICAgICAgICAgICAgICAgICAgIERGTSBPcHRpb25zXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4iCi0gICAgICBzZXQgY2hlY2tfbHBhX3RlY2ggMAotICAgICAgc2V0IGNoZWNrX2xwYV9jb25mIDAKLSAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhmaXhfbGl0aG8pXSAmJiAkdmFycyhmaXhfbGl0aG8pfSB7Ci0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgICAgICAgICAgICAgICBGaXggTGl0aG8gPSAkdmFycyhmaXhfbGl0aG8pXG4iCi0gICAgICAgICBzZXQgY2hlY2tfbHBhX2NvbmYgMQotICAgICAgICAgc2V0IHZhcnModmVyaWZ5X2xpdGhvKSB0cnVlCi0gICAgICB9Ci0gICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnModmVyaWZ5X2xpdGhvKV0gJiYgJHZhcnModmVyaWZ5X2xpdGhvKX0gewotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICAgICAgICAgICAgVmVyaWZ5IExpdGhvID0gJHZhcnModmVyaWZ5X2xpdGhvKVxuIgotICAgICAgICAgc2V0IGNoZWNrX2xwYV90ZWNoIDEKLSAgICAgIH0KLSAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhscGFfdGVjaF9maWxlKV19IHsKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgICAgICAgICAgTFBBIFRlY2ggRmlsZSA9ICR2YXJzKGxwYV90ZWNoX2ZpbGUpXG4iCi0gICAgICB9IAotICAgICAgaWYgeyRjaGVja19scGFfdGVjaH0geyAKLSAgICAgICAgIGlmIHshW2luZm8gZXhpc3RzIHZhcnMobHBhX3RlY2hfZmlsZSldfSB7Ci0gICAgICAgICAgICBzZXQgZXJyb3JzKCRlcnJvcl9jb3VudCkgIkxQQSB0ZWNoIGZpbGUgbm90IGRlZmluZWQgLi4uIgotICAgICAgICAgICAgaW5jciBlcnJvcl9jb3VudAotICAgICAgICAgfQotICAgICAgfQotICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGxwYV9jb25mX2ZpbGUpXX0gewotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICAgICAgICAgICBMUEEgQ29uZiBGaWxlID0gJHZhcnMobHBhX2NvbmZfZmlsZSlcbiIKLSAgICAgIH0KLSAgICAgIGlmIHskY2hlY2tfbHBhX2NvbmZ9IHsgCi0gICAgICAgICBpZiB7IVtpbmZvIGV4aXN0cyB2YXJzKGxwYV9jb25mX2ZpbGUpXX0gewotICAgICAgICAgICAgc2V0IGVycm9ycygkZXJyb3JfY291bnQpICJMUEEgY29uZiBmaWxlIG5vdCBkZWZpbmVkIC4uLiIKLSAgICAgICAgICAgIGluY3IgZXJyb3JfY291bnQKLSAgICAgICAgIH0KLSAgICAgIH0KLSAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgICAgICAgICAgICAgICBTaWduYWwgSW50ZWdyaXR5IE9wdGlvbnNcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgICAgICAgICAgICAgICAgUHJvY2VzcyA9ICR2YXJzKHByb2Nlc3MpXG4iCi0gICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoZGVsdGFfZGVsYXlfdGhyZXNob2xkKV19IHsKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgIERlbHRhIERlbGF5IFRocmVzaG9sZCA9ICR2YXJzKGRlbHRhX2RlbGF5X3RocmVzaG9sZClcbiIKLSAgICAgIH0KLSAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhjZWx0aWNfc2V0dGluZ3MpXX0gewotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICAgICAgICAgQ2VsdGljIFNldHRpbmdzID0gJHZhcnMoY2VsdGljX3NldHRpbmdzKVxuIgotICAgICAgfQotICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKHNpX2FuYWx5c2lzX3R5cGUpXX0gewotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICAgICAgICAgICBBbmFseXNpcyBUeXBlID0gJHZhcnMoc2lfYW5hbHlzaXNfdHlwZSlcbiIKLSAgICAgIH0KLSAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhhY2NlcHRhYmxlX3ducyldfSB7Ci0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgICAgICAgICAgIEFuYWx5c2lzIFR5cGUgPSAkdmFycyhhY2NlcHRhYmxlX3ducylcbiIKLSAgICAgIH0KLQotICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGRpc3RyaWJ1dGUpXX0gewotICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyBkaXN0KCR2YXJzKGRpc3RyaWJ1dGUpKV19IHsKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgICAgICAgICAgICAgICAgICBNdWx0aXBsZSBDUFVzXG4iCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4iCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgICAgICAgICAgICAgICAgICAgIE1vZGUgPSAkdmFycyhkaXN0cmlidXRlKVxuIgotICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGxvY2FsX2NwdXMpXX0gewotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICAgICAgQ1BVcyBPbiBMb2NhbCBIb3N0ID0gJHZhcnMobG9jYWxfY3B1cylcbiIKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhyZW1vdGVfaG9zdHMpXX0gewotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICBOdW1iZXIgb2YgUmVtb3RlIEhvc3RzID0gJHZhcnMocmVtb3RlX2hvc3RzKVxuIgotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGNwdXNfcGVyX3JlbW90ZV9ob3N0KV19IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgICBDUFVzIFBlciBSZW1vdGUgSG9zdCA9ICR2YXJzKGNwdXNfcGVyX3JlbW90ZV9ob3N0KVxuIgotICAgICAgICAgICAgfQotICAgICAgICAgfQotICAgICAgfSBlbHNlIHsKLSAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhsb2NhbF9jcHVzKV19IHsKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgICAgICAgICAgICAgICAgICBNdWx0aXBsZSBDUFVzXG4iCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4iCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgICAgICBDUFVzIE9uIExvY2FsIEhvc3QgPSAkdmFycyhsb2NhbF9jcHVzKVxuIgotICAgICAgICAgfQotICAgICAgfQotICAgICAgaWYgeyR2YXJzKGhpZ2hfdGltaW5nX2VmZm9ydCl9IHsKLSAgICAgICAgIGlmIHtbbGluZGV4IFtzcGxpdCAkdmFycyh2ZXJzaW9uKSAiLiJdICAwXSA8IDE1fSB7Ci0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4iCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgICAgICAgICAgPDw8IEhJR0ggRUZGT1JUIEZMT1cgRU5BQkxFRCA+Pj5cbiIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiIKLSAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIFdBUk5JTkc6IFZhcmlhYmxlIHZhcnMoaGlnaF90aW1pbmdfZWZmb3J0KSBub3Qgc3VwcG9ydGVkIGFueW1vcmUuIFBsZWFzZSB1c2UgdmFycyhmbG93X2VmZm9ydCkuXG4iCi0gICAgICAgICAgICBzZXQgd2FybmluZ3MoJHdhcm5pbmdfY291bnQpICJWYXJpYWJsZSB2YXJzKGhpZ2hfdGltaW5nX2VmZm9ydCkgbm90IHN1cHBvcnRlZCBhbnltb3JlLiBQbGVhc2UgdXNlIHZhcnMoZmxvd19lZmZvcnQpLiIKLSAgICAgICAgICAgIGluY3Igd2FybmluZ19jb3VudAotICAgICAgICAgfQotICAgICAgfQotCi0gICAgICBhcHBlbmQgY29tbWFuZHMgIiMgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgIiMgICAgQWJvcnQgb24gU2V0dXAgRXJyb3IgPSAkdmFycyhhYm9ydClcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiIKLQotICAgICAgaWYge1tsaW5kZXggW3NwbGl0ICR2YXJzKHZlcnNpb24pICIuIl0gIDBdID4gMTB9IHsKLSAgICAgICAgIGZvcmVhY2ggdmFyIFthcnJheSBuYW1lcyBzYXZlX3ZhcnNdIHsKLSAgICAgICAgICAgIHNldCB2YXJzKCR2YXIpICRzYXZlX3ZhcnMoJHZhcikKLSAgICAgICAgIH0KLSAgICAgIH0KLSAgICAgIHNldCBjb21tYW5kICIiCi0gICAgICBzZXQgdmFycyhpbmZvX2NvdW50KSAkaW5mb19jb3VudAotICAgICAgaWYgeyRpbmZvX2NvdW50ID4gMH0gewotICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiMgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZCAiIyAgICAgICAgICAgICAgICAgICBJbmZvIFN1bW1hcnlcbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kICIjICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIgotCi0gICAgICAgICBmb3Ige3NldCBpIDB9IHskaTwkaW5mb19jb3VudH0ge2luY3IgaX0gewotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiMgIChbZXhwciAkaSArIDFdKSAkaW5mb3MoJGkpXG4iCi0gICAgICAgICB9Ci0gICAgICAgICBhcHBlbmQgY29tbWFuZCAiIyAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiIKLQotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICRjb21tYW5kCi0gICAgICB9Ci0gICAgICBzZXQgdmFycyh3YXJuaW5nX2NvdW50KSAkd2FybmluZ19jb3VudAotICAgICAgaWYgeyR3YXJuaW5nX2NvdW50ID4gMH0gewotICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiMgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZCAiIyAgICAgICAgICAgICAgICAgICBXYXJuaW5nIFN1bW1hcnlcbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kICIjICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIgotCi0gICAgICAgICBmb3Ige3NldCBpIDB9IHskaTwkd2FybmluZ19jb3VudH0ge2luY3IgaX0gewotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiMgIChbZXhwciAkaSArIDFdKSAkd2FybmluZ3MoJGkpXG4iCi0gICAgICAgICB9Ci0gICAgICAgICBhcHBlbmQgY29tbWFuZCAiIyAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiIKLQotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICRjb21tYW5kCi0gICAgICB9Ci0gICAgICBzZXQgdmFycyhlcnJvcl9jb3VudCkgJGVycm9yX2NvdW50Ci0gICAgICBpZiB7JGVycm9yX2NvdW50ID4gMH0gewotICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiMgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZCAiIyAgICAgICAgICAgICAgICAgICAgRXJyb3IgU3VtbWFyeVxuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiMgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4iCi0KLSAgICAgICAgIGZvciB7c2V0IGkgMH0geyRpPCRlcnJvcl9jb3VudH0ge2luY3IgaX0gewotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiMgIChbZXhwciAkaSArIDFdKSAkZXJyb3JzKCRpKVxuIgotICAgICAgICAgfQotICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiMgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4iCi0KLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAkY29tbWFuZAotCi0gICAgICB9IGVsc2UgewotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICAgICAgICAgICAgICAgICAgIFNFVFVQIENIRUNLIFBBU1NFRFxuIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuIgotICAgICAgfQotCi0gICAgICBmaWxlIG1rZGlyICR2YXJzKHNjcmlwdF9kaXIpCi0gICAgICBzZXQgb3AgW29wZW4gJHZhcnMoc2NyaXB0X2RpcikvY2hlY2sucnB0IHddCi0jICAgICAgaWYgeyR2YXJzKG5vdnVzKX0gewotIyAgICAgICAgIEZGX05PVlVTOjpkdW1wX25vdnVzX2F0dHJpYnV0ZXMKLSMgICAgICB9Ci0KLSAgICAgIHB1dHMgJG9wICRjb21tYW5kcwotCi0gICAgICBjbG9zZSAkb3AKLQotICAgICAgaWYgeyR2YXJzKGFib3J0KSAmJiAoJGVycm9yX2NvdW50ID4gMCl9IHsKLSAgICAgICAgIHB1dHMgIjxGRj4gQWJvcnRpbmcgZHVlIHRvIHByZXZpb3VzIGVycm9ycyAuLi4iCi0gICAgICAgICBwdXRzICI8RkY+IFNlZSAkdmFycyhzY3JpcHRfZGlyKS9jaGVjay5ycHQgZm9yIGRldGFpbHMiCi0gICAgICAgICBwdXRzICIiCi0gICAgICAgICBwdXRzICIgICAgICAgICAgICAgICAgICBFcnJvciBTdW1tYXJ5IgotICAgICAgICAgcHV0cyAiICAgICAgICAgICAgICAgICAgLS0tLS0tLS0tLS0tLSIKLQotICAgICAgICAgZm9yIHtzZXQgaSAwfSB7JGk8JGVycm9yX2NvdW50fSB7aW5jciBpfSB7Ci0gICAgICAgICAgICBwdXRzICIgICAoW2V4cHIgJGkgKyAxXSkgJGVycm9ycygkaSkiCi0gICAgICAgICB9Ci0gICAgICAgICBwdXRzICItLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIgotICAgICAgICAgZXhpdCAtMQotICAgICAgfQotCi0gICAgICBpZiB7ISR2YXJzKGNvZGVnZW4pfSB7Ci0gICAgICAgICBpZiB7IVtGRjo6aXNfbHBfZmxvd119IHsKLSAgICAgICAgICAgIHJldHVybgotICAgICAgICAgfQotICAgICAgICAgc2V0IHZhcnMocmVxdWlyZWRfcHJvY3MpICJnZXRfY2xvY2tfcG9ydHMgZ2V0X3Bvd2VyX2RvbWFpbnMgbW9kaWZ5X3Bvd2VyX2RvbWFpbnMgYWRkX3Bvd2VyX3N3aXRjaGVzIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm91dGVfc2Vjb25kYXJ5X3BnX25ldHMgYnVmZmVyX2Fsd2F5c19vbl9uZXRzIGluc2VydF93ZWxsdGFwc19lbmRjYXBzIgotICAgICAgfQotCi0gICAgICBzZXQgdmFycyhjaGVja19zZXR1cCkgMAotCi0gICAgICAjIFJlY29yZCBlcnJvcnMgZm9yIGxhdGVyIHByb2Nlc3NpbmcKLSAgICAgIHNldCB2YXJzKGNoZWNrX3NldHVwX2Vycm9ycykge30KLSAgICAgIGZvciB7c2V0IGkgMH0geyRpPCRlcnJvcl9jb3VudH0ge2luY3IgaX0gewotICAgICAgICAgbGFwcGVuZCB2YXJzKGNoZWNrX3NldHVwX2Vycm9ycykgJGVycm9ycygkaSkKLSAgICAgIH0KLSAgIH0KLQotICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgIyBQcm9jZWR1cmUgdG8gZGV0ZXJtaW5lIGZsb3cgZmxhdm9yLCBjaGVjayBmb3IgaWxtcywgZXRjLgotICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCi0gICBwcm9jIGNoZWNrX2Zsb3cge30gewotICAgCi0gICAgICBnbG9iYWwgdmFycwotICAgCi0gICAgICBzZXQgdmFycyhpbG0pIDAKLSAgICAgIHNldCB2YXJzKHRvcCkgMAotICAgCi0gICAgICBpZiB7IVtpbmZvIGV4aXN0cyB2YXJzKHBhcnRpdGlvbl9saXN0KV0gfHwgKFtpbmZvIGV4aXN0cyB2YXJzKHBhcnRpdGlvbl9saXN0KV0gJiYgXAotICAgICAgICAgICAoW2ZpbGUgdGFpbCBbZmlsZSBkaXJuYW1lIFtwd2RdXV0gIT0gIiR2YXJzKHBhcnRpdGlvbl9kaXIpIikpfSB7Ci0KLSAgICAgICAgIGlmIHshW2luZm8gZXhpc3RzIHZhcnMocGFydGl0aW9uX2xpc3QpXX0gewotICAgICAgICAgICAgc2V0IHZhcnMoZmxhdm9yKSBmbGF0Ci0gICAgICAgICAgICBpZiB7IVtpbmZvIGV4aXN0cyB2YXJzKG1vZGUpXX0gewotICAgICAgICAgICAgICAgc2V0IHZhcnMobW9kZSkgImZsYXQiCi0gICAgICAgICAgICB9Ci0gICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgc2V0IHZhcnMoZmxhdm9yKSBoaWVyCi0gICAgICAgICAgICBpZiB7IVtpbmZvIGV4aXN0cyB2YXJzKG1vZGUpXX0gewotICAgICAgICAgICAgICAgc2V0IHZhcnMobW9kZSkgInRvcF9kb3duIgotICAgICAgICAgICAgfQotICAgICAgICAgfQotICAgICAKLSAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhwYXJ0aXRpb25fbGlzdCldICYmICgkdmFycyhtb2RlKSA9PSAiYm90dG9tX3VwIil9IHsKLSAgICAgICAgICAgIHNldCB2YXJzKGlsbSkgMQotICAgICAgICAgfQotICAgCi0gICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoaWxtX2xpc3QpXSAmJiAoJHZhcnMoaWxtX2xpc3QpICE9ICIiKX0gewotICAgICAgICAgICAgc2V0IHZhcnMoaWxtKSAxCi0gICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgc2V0IHZhcnMoaWxtKSAwCi0gICAgICAgICB9Ci0gICAKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMocGFydGl0aW9uX2xpc3QpXX0gewotICAgICAgICAgICAgc2V0IHB0biBbZmlsZSB0YWlsIFtwd2RdXQotICAgICAgICAgICAgc2V0IHZhcnMocHRuKSAkcHRuCi0gICAgICAgICAgICBpZiB7KFtmaWxlIHRhaWwgW2ZpbGUgZGlybmFtZSBbcHdkXV1dID09ICIkdmFycyhwYXJ0aXRpb25fZGlyKSIpICYmCi0gICAgICAgICAgICAgICAgKFtsc2VhcmNoICR2YXJzKHBhcnRpdGlvbl9saXN0KSAkcHRuXSA9PSAtMSl9IHsKLSAgICAgICAgICAgICAgIHNldCB2YXJzKGlsbSkgMQotICAgICAgICAgICAgICAgc2V0IHZhcnModG9wKSAxCi0jICAgICAgICAgICAgICAgRkZfTk9WVVM6Om5vcm1hbGl6ZV9jb25zdHJhaW50cwotICAgICAgICAgICAgfQotICAgICAgICAgfQotICAgICAgfQotICAgICAgaWYgeyR2YXJzKGRlYnVnKX0gewotICAgICAgICAgcHV0cyAiPERFQlVHPiBGbG93IC0+ICR2YXJzKGZsYXZvcikgOiBTdGVwIC0+ICR2YXJzKHN0ZXApIDogSUxNIC0+ICR2YXJzKGlsbSkiCi0gICAgICB9Ci0gICB9Ci0KLSAgIHByb2MgcnVuX2NvbXBpbGUge30gewotCi0gICAgICBnbG9iYWwgdmFycwotCi0gICAgICBmaWxlIG1rZGlyICR2YXJzKHNjcmlwdF9kaXIpL0lOTk9WVVMKLSAgICAgIHNldCBvcCBbb3BlbiAkdmFycyhzY3JpcHRfZGlyKS9JTk5PVlVTL3J1bl9jb21waWxlLnRjbCB3XQotCi0gICAgICBzZXQgY29tbWFuZHMgIiIKLQotICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycyhsZGJfZGlyKV19IHsKLSAgICAgICAgIHNldCB2YXJzKGxkYl9kaXIpIExEQgotICAgICAgfQotICAgICAgZmlsZSBta2RpciAkdmFycyhsZGJfZGlyKQotICAgICAgc2V0IGRvbmVfbGlzdCBbbGlzdF0KLQotICAgICAgZm9yZWFjaCBzZXQgJHZhcnMobGlicmFyeV9zZXRzKSB7Ci0gICAgICAgICBzZXQgZmlsZV9saXN0IFtsaXN0XQotICAgICAgICAgZm9yZWFjaCBmaWxlICR2YXJzKCRzZXQsdGltaW5nKSB7Ci0gICAgICAgICAgICBpZiB7W2xzZWFyY2ggJGRvbmVfbGlzdCAkZmlsZV0gPT0gLTF9IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAid3JpdGVfbGRiIC1saWJyYXJ5ICRmaWxlIC1vdXRmaWxlICR2YXJzKGxkYl9kaXIpL1tmaWxlIHRhaWwgJGZpbGUubGRiXVxuIgotICAgICAgICAgICAgICAgbGFwcGVuZCBkb25lX2xpc3QgJGZpbGUKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGxhcHBlbmQgZmlsZV9saXN0ICR2YXJzKGxkYl9kaXIpL1tmaWxlIHRhaWwgJGZpbGVdLmxkYgotICAgICAgICAgfQotICAgICAgICAgc2V0IHZhcnMoJHNldCx0aW1pbmcsb3JpZykgJHZhcnMoJHNldCx0aW1pbmcpCi0gICAgICAgICBzZXQgdmFycygkc2V0LHRpbWluZykgJGZpbGVfbGlzdAotICAgICAgfQotCi0gICAgICBwdXRzICRvcCAiJGNvbW1hbmRzXG5leGl0XG4iCi0gICAgICBjbG9zZSAkb3AKLQotICAgICAgc2V0IHZhcnMocmFuX2NvbXBpbGUpIDEKLSAgIH0KLQotCi0jICAgIyBHZW5lcmF0ZSB0aGUgY29tbWFuZCB0byB2ZXJpZnkgZ2VvbWV0cnkuIFRoaXMgaXMgdmVyaWZ5R2VvbWV0cnkKLSMgICAjIGZvciB0cmFkaXRpb25hbCBwcm9jZXNzZXMsIHZlcmlmeV9kcmMgZm9yIDIwbm0gYW5kIGJlbG93LgotIyAgIHByb2MgdmVyaWZ5X2dlb21ldHJ5X2NvbW1hbmQge30gewotIyAgICAgIGdsb2JhbCB2YXJzCi0jICAgICAgc2V0IHByb2Nlc3MgW3JlZ3N1YiAibm0iICR2YXJzKHByb2Nlc3MpICIiXQotIyAgICAgIGlmIHskcHJvY2VzcyA+IDIwfSB7Ci0jICAgICAgICAgcmV0dXJuICJ2ZXJpZnlHZW9tZXRyeSIKLSMgICAgICB9IGVsc2UgewotIyAgICAgICAgIHJldHVybiAidmVyaWZ5X2RyYyIKLSMgICAgICB9Ci0jICAgfQotCi0KLSAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICMgUHJvY2VkdXJlIHRvIGluaXRpYWxpemUgdGhlIGZvdW5kYXRpb24gZmxvdyAKLSAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLQotICAgcHJvYyBpbml0aWFsaXplX2Zsb3cge30gewotICAgICAgZ2xvYmFsIHZhcnMKLSAgICAgIGdsb2JhbCBlbnYKLQotICAgICAgc2V0IGNvbW1hbmRzICIiCi0KLSAgICAgIEZGX05PVlVTOjpzZWVkX3ZhcmlhYmxlcyAxCi0gICAgICBGRl9OT1ZVUzo6Y2hlY2tfc2V0dXAKLQotICAgICAgaWYge1tpbmZvIGV4aXN0IGVudihWUEFUSCldfSB7Ci0gICAgICAgICBmaWxlIG1rZGlyICRlbnYoVlBBVEgpCi0gICAgICB9Ci0KLSAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhjYXB0dXJlX21ldHJpY3MpXSAmJiAkdmFycyhjYXB0dXJlX21ldHJpY3MpfSB7IAotICAgICAgICAgaWYge1tsaW5kZXggW3NwbGl0ICR2YXJzKHZlcnNpb24pICIuIl0gIDBdIDwgMTR9IHsKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiXG4jLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjIExvYWRpbmcgYXBwbGV0cyBmb3IgbWV0cmljcyBjYXB0dXJlIC4uLlxuIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIgotICAgICAgICAgICAgaWYge1tmaWxlIHRhaWwgW2ZpbGUgZGlybmFtZSBbZXhlYyBwd2RdXV0gPT0gJHZhcnMocGFydGl0aW9uX2Rpcil9IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAic291cmNlICR2YXJzKG5vcm1fc2NyaXB0X3BhdGgpL0VUQy9hcHBsZXQudGNsXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgInNvdXJjZSAkdmFycyhub3JtX3NjcmlwdF9wYXRoKS9FVEMvY29tcGF0aWJpbGl0eS50Y2xcbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAic2V0X2RiIGFwcGxldF9zZWFyY2hfcGF0aCAkdmFycyhub3JtX3NjcmlwdF9wYXRoKS9FVEMvYXBwbGV0c1xuIgotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAic291cmNlIFwkdmFycyhzY3JpcHRfcGF0aCkvRVRDL2FwcGxldC50Y2xcbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAic291cmNlIFwkdmFycyhzY3JpcHRfcGF0aCkvRVRDL2NvbXBhdGliaWxpdHkudGNsXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgInNldF9kYiBhcHBsZXRfc2VhcmNoX3BhdGggXCR2YXJzKHNjcmlwdF9wYXRoKS9FVEMvYXBwbGV0c1xuIgotICAgICAgICAgICAgfQotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJhcHBsZXQgbG9hZCBtZWFzdXJlXG4iCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgImFwcGxldCBsb2FkIHRpbWVfaW5mb1xuIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4iCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgImlmIHtcW2ZpbGUgZXhpc3RzICR2YXJzKHRpbWVfaW5mb19kYilcXX0ge1xuIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIgICB0aW1lX2luZm8gLXF1aWV0IC10YWJsZSBmZl9leHQgLWxvYWQgJHZhcnModGltZV9pbmZvX2RiKVxuIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJ9XG4iCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiIKLSAgICAgICAgIH0KLSAgICAgIH0KLQotIyAgICAgIGFwcGVuZCBjb21tYW5kcyAiIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIgotIyAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgICAgICAgICAgICAgICAgUlVOIFNDUklQVCBGT1IgU1RFUCAnW3N0cmluZyB0b3VwcGVyICR2YXJzKHN0ZXApXSdcbiIKLSMgICAgICBhcHBlbmQgY29tbWFuZHMgIiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiIKLSAgICAgIGlmIHskdmFycyhyZXBvcnRfc3lzdGVtX2luZm8pfSB7Ci0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgImZmX3Byb2NzOjpzeXN0ZW1faW5mb1xuIgotICAgICAgfQotICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRl9OT1ZVUzo6aW5pdGlhbGl6ZV9tdWx0aWNwdV0KLQotICAgICAgaWYgeyR2YXJzKGNvZGVnZW4pfSB7Ci0gICAgICAgICByZXR1cm4gJGNvbW1hbmRzCi0gICAgICB9IGVsc2UgewotICAgICAgICAgIHVwbGV2ZWwgIzAgZXZhbCAkY29tbWFuZHMKLSAgICAgIH0KLSAgIH0KLQotICAgcHJvYyBsb2FkX2Rlc2lnbiB7c3RlcCB7Y3VycmVudF9zdGVwICIifSB7Zm9ybWF0IDF9fSB7Ci0KLSAgICAgIGdsb2JhbCBlbnYKLSAgICAgIGdsb2JhbCB2YXJzCi0gICAgICBnbG9iYWwgZXJyb3JzCi0gICAgICBnbG9iYWwgd2FybmluZ3MKLQotICAgICAgaWYge1tyZWdleHAgc3luXyAkc3RlcF19IHsKLSAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkY3VycmVudF9zdGVwLHN0YXJ0aW5nX2RicyldfSB7Ci0gICAgICAgICAgICBpZiB7W2ZpbGUgaXNmaWxlICR2YXJzKCRjdXJyZW50X3N0ZXAsc3RhcnRpbmdfZGJzKV19IHsKLSAgICAgICAgICAgICAgIHNldCBjb21tYW5kICJyZWFkX2RiICR2YXJzKCRjdXJyZW50X3N0ZXAsc3RhcnRpbmdfZGJzKSBcbiIKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBwdXRzICI8RkY+IFN0YXJ0aW5nIERCUyAoJHZhcnMoJGN1cnJlbnRfc3RlcCxzdGFydGluZ19kYnMpKSBkZWZpbmVkIGJ1dCBkb2VzIG5vdCBleGlzdCIKLSAgICAgICAgICAgICAgIHNldCBjb21tYW5kICJyZWFkX2RiICR2YXJzKCRjdXJyZW50X3N0ZXAsc3RhcnRpbmdfZGJzKSBcbiIKLSAgICAgICAgICAgICAgIHNldCB3YXJuaW5ncygkdmFycyh3YXJuaW5nX2NvdW50KSkgIlN0YXJ0aW5nIERCUyAoJHZhcnMoJGN1cnJlbnRfc3RlcCxzdGFydGluZ19kYnMpKSBkZWZpbmVkIGJ1dCBkb2VzIG5vdCBleGlzdCIKLSAgICAgICAgICAgICAgIGluY3IgdmFycyh3YXJuaW5nX2NvdW50KQotICAgICAgICAgICAgfQotICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHNldCBjb21tYW5kICJyZWFkX2RiICR2YXJzKGRic19kaXIpLyRzdGVwLmRiXG4iCi0gICAgICAgICB9Ci0gICAgICAgICByZXR1cm4gIlxuJGNvbW1hbmQiCi0gICAgICB9Ci0KLSAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhoaWVyKV19IHsKLSAgICAgICAgIHNldCBoaWVyIHRydWUKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgICBzZXQgaGllciBmYWxzZQotICAgICAgfQotCi0gICAgICBpZiB7JGN1cnJlbnRfc3RlcCA9PSAiIn0gewotICAgICAgICAgc2V0IGN1cnJlbnRfc3RlcCAkc3RlcAotICAgICAgfQotCi0jICAgICAgaWYgeyRzdGVwID09IiJ9IHsKLSMgICAgICAgICBzZXQgc3RlcCAkdmFycyhzdGVwKQotIyAgICAgIH0KLSMgICAgICBpZiB7IVtpbmZvIGV4aXN0cyB2YXJzKHN0ZXApXX0gewotIyAgICAgICAgIHNldCB2YXJzKHN0ZXApICRzdGVwCi0jICAgICAgfQotICAgICAgaWYgeyEkdmFycyhjb2RlZ2VuKX0gewotICAgICAgICAgc2V0IHJlc3RvcmVfZGVzaWduIHRydWUKLSAgICAgIH0KLSAgICAgIHNldCBkZXNpZ24gJHZhcnMoZGVzaWduKQotCi0gICAgICAjIEJ1aWxkIHJlc3RvcmVfZGVzaWduIGNvbW1hbmQgc3RyaW5nCi0gICAgICAjIC4uLiBjaGVjayBmaXJzdCBmb3Igc3RhcnRpbmdfZGJzCi0gICAgICAjIC4uLiBpZiBub3Qgd2UgbmVlZCB0byBrbm93IHRoZSBkZXNpZ24gbmFtZSBhcyB0aGlzIG1heSBiZSBhIAotICAgICAgIyAgICAgcmVjdXJzaXZlIGNhbGwgaW4gYSBoaWVyYXJoaWNhbCBmbG93Ci0KLSAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkY3VycmVudF9zdGVwLHN0YXJ0aW5nX2RicyldfSB7Ci0gICAgICAgICBpZiB7W3N0cmluZyBjb21wYXJlIC1ub2Nhc2UgJHZhcnMoZGJzX2Zvcm1hdCkgIm9hIl09PTB9IHsKLSAgICAgICAgICAgICMgSW50ZXJwcmV0IHRoZSBzdGFydGluZyBEQlMgYXMgYW4gT0EgdHJpcGxlCi0gICAgICAgICAgICBzZXQgcmVzdG9yZV9jb21tYW5kICJbbGlzdCByZWFkX2RiIC1jZWxsdmlldyAkdmFycygkY3VycmVudF9zdGVwLHN0YXJ0aW5nX2RicyldXG4iCi0gICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgaWYge1tmaWxlIGlzZGlyZWN0b3J5ICR2YXJzKCRjdXJyZW50X3N0ZXAsc3RhcnRpbmdfZGJzKV19IHsKLSAgICAgICAgICAgICAgIHNldCByZXN0b3JlX2NvbW1hbmQgInJlYWRfZGIgJHZhcnMoJGN1cnJlbnRfc3RlcCxzdGFydGluZ19kYnMpIFxuIgotICAgICAgICAgICAgfSBlbHNlaWYge1tmaWxlIGV4aXN0cyAkdmFycygkY3VycmVudF9zdGVwLHN0YXJ0aW5nX2RicyldfSB7Ci0gICAgICAgICAgICAgICBzZXQgcmVzdG9yZV9jb21tYW5kICJyZWFkX2RiICR2YXJzKCRjdXJyZW50X3N0ZXAsc3RhcnRpbmdfZGJzKSBcbiIKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBwdXRzICI8RkY+IFN0YXJ0aW5nIERCUyAoJHZhcnMoJGN1cnJlbnRfc3RlcCxzdGFydGluZ19kYnMpKSBkZWZpbmVkIGJ1dCBkb2VzIG5vdCBleGlzdCIKLSAgICAgICAgICAgICAgIHNldCByZXN0b3JlX2NvbW1hbmQgInJlYWRfZGIgJHZhcnMoJGN1cnJlbnRfc3RlcCxzdGFydGluZ19kYnMpIFxuIgotICAgICAgICAgICAgICAgc2V0IHdhcm5pbmdzKCR2YXJzKHdhcm5pbmdfY291bnQpKSAiU3RhcnRpbmcgREJTICgkdmFycygkY3VycmVudF9zdGVwLHN0YXJ0aW5nX2RicykpIGRlZmluZWQgYnV0IGRvZXMgbm90IGV4aXN0IgotICAgICAgICAgICAgICAgaW5jciB2YXJzKHdhcm5pbmdfY291bnQpCi0gICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0gICAgICB9IGVsc2UgewotICAgICAgICAgIyBCQ0w6IEFkZGVkIHN1YnN0IGFyb3VuZCB2YXJzKGRic19kaXIpIHRvIHJlc29sdmUgdmFycyhydW5kaXIpCi0gICAgICAgICBzZXQgZGlyIFtzdWJzdCAkdmFycyhkYnNfZGlyKV0KLSAgICAgICAgICMgQWRkaW5nIHRoaXMgZm9yIFBWIC4uLgotICAgICAgICAgaWYgeyEkdmFycyhjb2RlZ2VuKX0gewotICAgICAgICAgICAgaWYge1tmaWxlIGV4aXN0cyAkZGlyLyRzdGVwLmVuY119IHsKLSAgICAgICAgICAgICAgICMgQkNMOiBDaGFuZ2VkICJEQlMiIHRvICRkaXIKLSAgICAgICAgICAgICAgIGlmIHshW2NhdGNoIHtzZXQgZm9vIFtnbG9iICRkaXIvJHN0ZXAuZW5jLyouY29uZl19XX0gewotICAgICAgICAgICAgICAgICAgIyBCQ0w6IENoYW5nZWQgIkRCUyIgdG8gJGRpcgotICAgICAgICAgICAgICAgICAgcmVnc3ViICJcXFwuY29uZiIgW2dsb2IgJGRpci8kc3RlcC5lbmMvKi5jb25mXSAiIiB0ZW1wCi0gICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgIyBCQ0w6IENoYW5nZWQgIkRCUyIgdG8gJGRpcgotICAgICAgICAgICAgICAgICAgaWYgeyFbY2F0Y2gge3NldCBmb28gW2dsb2IgJGRpci8kc3RlcC5lbmMvKi5nbG9iYWxzXX1dfSB7Ci0gICAgICAgICAgICAgICAgICAgICAjIEJDTDogQ2hhbmdlZCAiREJTIiB0byAkZGlyCi0gICAgICAgICAgICAgICAgICAgICByZWdzdWIgIlxcXC5nbG9iYWxzIiBbZ2xvYiAkZGlyLyRzdGVwLmVuYy8qLmdsb2JhbHNdICIiIHRlbXAKLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIGlmIHskZGVzaWduICE9IFtmaWxlIHRhaWwgJHRlbXBdfSB7Ci0gICAgICAgICAgICAgICAgICBzZXQgdmFycyhkZXNpZ24pIFtmaWxlIHRhaWwgJHRlbXBdCi0gICAgICAgICAgICAgICAgICBwdXRzICI8RkY+IFVwZGF0aW5nIGRlc2lnbiBuYW1lIHRvICRkZXNpZ24iCi0gICAgICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMocGFydGl0aW9uX2xpc3QpXX0gewotICAgICAgICAgICAgICAgICAgICAgaWYge1tsc2VhcmNoICR2YXJzKHBhcnRpdGlvbl9saXN0KSBbZmlsZSB0YWlsIFtwd2RdXV0gIT0gLTF9IHsKLSAgICAgICAgICAgICAgICAgICAgIHNldCBkZXNpZ24gW2ZpbGUgdGFpbCBbcHdkXV0KLSAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBwdXRzICI8RkY+IFN0YXJ0aW5nIERCUyAkZGlyLyRzdGVwLmVuYyBkZWZpbmVkIGJ1dCBkb2VzIG5vdCBleGlzdCIKLSAgICAgICAgICAgICAgIGV4aXQgLTEKLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0KLSAgICAgICAgIAotICAgICAgICAgIyBPZiBjb3Vyc2UsIHRoZSBjb21tYW5kIHdpbGwgZGVwZW5kIG9uIHRoZSBkYXRhYmFzZSBmb3JtYXQgLi4uIGFuZCB0aGUgdmVyc2lvbgotICAgICAgICAgaWYge1tzdHJpbmcgY29tcGFyZSAtbm9jYXNlICR2YXJzKGRic19mb3JtYXQpICJvYSJdPT0wfSB7Ci0gICAgICAgICAgICBpZiB7JGhpZXJ9IHsKLSAgICAgICAgICAgICAgc2V0IHJlc3RvcmVfY29tbWFuZCAicmVhZF9kYiAtY2VsbHZpZXcgXFtsaXN0ICR2YXJzKG9hX3BhcnRpdGlvbl9saWIpICRkZXNpZ24gJHN0ZXBcXVxuIgotICAgICAgICAgICAgfSBlbHNlIHsgCi0gICAgICAgICAgICAgIHNldCByZXN0b3JlX2NvbW1hbmQgInJlYWRfZGIgLWNlbGx2aWV3IFxbbGlzdCAkdmFycyhvYV9kZXNpZ25fbGliKSAkZGVzaWduICRzdGVwXF1cbiIKLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBpZiB7JHZhcnModXNlcl9tb2RlKSA9PSAiaGllciIgJiYgKCR2YXJzKGhpZXJfZmxvd190eXBlKSA9PSAiMnBhc3MiKX0gewotICAgICAgICAgICAgICAgaWYgeyR2YXJzKHN0ZXApID09ICJjdHMiICYmICR2YXJzKGVuYWJsZV9mbGV4aWxtKX0gewotICAgICAgICAgICAgICAgICAgaWYgeyhbbHNlYXJjaCAkdmFycyhwYXJ0aXRpb25fbGlzdCkgJHZhcnMoZGVzaWduKV0gIT0gLTEpfSAgewotICAgICAgICAgICAgICAgICAgICAgc2V0IHJlc3RvcmVfY29tbWFuZCAicmVhZF9kYiAke2Rlc2lnbn1fcG9zdF9lY28uZW5jIFxuIgotICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgIHNldCByZXN0b3JlX2NvbW1hbmQgInJlYWRfZGIgLiBcbiIKLSAgICAgICAgICAgICAgICAgIH0gIAotICAgICAgICAgICAgICAgfSBlbHNlaWYgeyR2YXJzKHN0ZXApID09ICJwb3N0Y3RzIiAmJiAhJHZhcnMoZW5hYmxlX2ZsZXhpbG0pfSB7Ci0gICAgICAgICAgICAgICAgICBzZXQgcmVzdG9yZV9jb21tYW5kICJyZWFkX2RiIC4gXG4iCi0gICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgc2V0IHJlc3RvcmVfY29tbWFuZCAicmVhZF9kYiAkZGlyLyRzdGVwLmVuYyBcbiIKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBpZiB7JHZhcnMoc3RlcCkgIT0gInBhcnRpdGlvbl9wbGFjZSJ9IHsKLSAgICAgICAgICAgICAgICAgIHNldCByZXN0b3JlX2NvbW1hbmQgInJlYWRfZGIgJGRpci8kc3RlcC5lbmNcbiIKLSAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICBpZiB7JHZhcnModXNlX2ZsZXhtb2RlbHMpfSB7Ci0gICAgICAgICAgICAgICAgICAgIHNldCByZXN0b3JlX2NvbW1hbmQgInJlYWRfZGIgJGRpci8kc3RlcC5lbmNcbiIKLSAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgIHJldHVybiAiIgotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAgfQotICAgICAgfQotICAgICAgIyBQYXNzIHRoZSBjb21tYW5kIHRocm91Z2ggdGhlIHdyYXBwZXIgYW5kIHRoZW4gbWFrZSBpdCBjb25kaXRpb25hbCBzbyBpdCBjYW4gCi0gICAgICAjIGJlIGRpc2FibGVkIGluIGEgc2luZ2xlIHByb2Nlc3MgZmxvdwotICAgICAgc2V0IHJlc3RvcmVfY29tbWFuZCBbRkY6OndyYXBfY29tbWFuZCAkY3VycmVudF9zdGVwLHJlc3RvcmVfZGVzaWduICRyZXN0b3JlX2NvbW1hbmRdCi0gICAgICBzZXQgY29uZF9yZXN0b3JlX2NvbW1hbmQgImlmIHtcJHZhcnMocmVzdG9yZV9kZXNpZ24pfSB7XG4kcmVzdG9yZV9jb21tYW5kXG59IgotCi0gICAgICBpZiB7ISRmb3JtYXR9IHsKLSAgICAgICAgIGlmIHskdmFycyhjb2RlZ2VuKX0gewotIyAgICAgICAgICAgIHJldHVybiAkY29uZF9yZXN0b3JlX2NvbW1hbmQKLSAgICAgICAgICAgIHJldHVybiAkcmVzdG9yZV9jb21tYW5kCi0gICAgICAgICB9IGVsc2UgewotIyAgICAgICAgICAgICBldmFsICRjb25kX3Jlc3RvcmVfY29tbWFuZAotICAgICAgICAgICAgIGV2YWwgJHJlc3RvcmVfY29tbWFuZAotICAgICAgICAgfQotICAgICAgfSBlbHNlIHsKLSAgICAgICAgIGlmIHskdmFycyhjYXRjaF9lcnJvcnMpfSB7Ci0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIlxuaWYge1wkdmFycyhyZXN0b3JlX2Rlc2lnbil9IHtcbiIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiICAgaWYge1xbY2F0Y2gge1xuJHJlc3RvcmVfY29tbWFuZH1cXX0ge1xuIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIgICAgICBwdXRzIFwiPEZGPiBFUlJPUiBMT0FESU5HIERBVEFCQVNFIEZST00gU1RFUCAkc3RlcCAuLi4gRVhJVElOR1wiXG4iCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiAgICAgIGV4aXQgLTFcbiIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiICAgfVxuIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJ9XG4iCi0gICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIkcmVzdG9yZV9jb21tYW5kIgotICAgICAgICAgfQotCi0gICAgICAgICBpZiB7JHZhcnMoY2FwdHVyZV9tZXRyaWNzKX0gewotICAgICAgICAgICAgaWYge1tsaW5kZXggW3NwbGl0ICR2YXJzKHZlcnNpb24pICIuIl0gIDBdID4gMTN9IHsKLSAgICAgICAgICAgICAgIGlmIHskdmFycyhzdGVwKSAhPSAiZGVidWcifSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIlxuZW5hYmxlX21ldHJpY3MgLW9uXG4iCi0jICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJwdXNoX3NuYXBzaG90X3N0YWNrXG4iCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0KLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OnNvdXJjZV9wbHVnIGFsd2F5c19zb3VyY2VfdGNsXQotCi0gICAgICAgICBpZiB7JHZhcnMoY29kZWdlbil9IHsKLSAgICAgICAgICAgIHJldHVybiAkY29tbWFuZHMKLSAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgdXBsZXZlbCAjMCBldmFsICRjb21tYW5kcwotICAgICAgICAgfQotICAgICAgfQotICAgfQotCi0gICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAjIFNldHVwIHByb2NlZHVyZSBmb3IgcnVuKiBzdGVwcwotICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCi0gICBwcm9jIGluaXRpYWxpemVfc3RlcCB7c3RlcH0gewotCi0gICAgICBnbG9iYWwgdmFycwotICAgICAgZ2xvYmFsIGVudgotICAgICAgZ2xvYmFsIGVycm9ycwotICAgICAgZ2xvYmFsIHdhcm5pbmdzCi0KLSAgICAgIGlmIHshW2luZm8gZXhpc3RzIHN0ZXBdfSB7Ci0gICAgICAgICBzZXQgc3RlcCAkdmFycyhzdGVwKQotICAgICAgfQotCi0gICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJHN0ZXAscnB0X2RpcildfSB7Ci0gICAgICAgICBzZXQgdmFycyhycHRfZGlyKSAkdmFycygkc3RlcCxycHRfZGlyKQotICAgICAgICAgZmlsZSBta2RpciAkdmFycygkc3RlcCxycHRfZGlyKQotICAgICAgfSBlbHNlIHsKLSAgICAgICAgIHNldCB2YXJzKHJwdF9kaXIpICR2YXJzKG9yaWdfcnB0X2RpcikKLSAgICAgIH0KLQotICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycyh3YXJuaW5nX2NvdW50KV19IHsKLSAgICAgICAgIHNldCB2YXJzKHdhcm5pbmdfY291bnQpIDAKLSAgICAgIH0KLSAgICAgIGlmIHshW2luZm8gZXhpc3RzIHZhcnMoZXJyb3JfY291bnQpXX0gewotICAgICAgICAgc2V0IHZhcnMoZXJyb3JfY291bnQpIDAKLSAgICAgIH0KLQotICAgICAgc2V0IGNvbW1hbmRzICIiCi0gICAgICBpZiB7JHZhcnModmVyYm9zZSl9IHsKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiI1xuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjIFNURVAgJHN0ZXBcbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiI1xuIgotICAgICAgfQotCi0gICAgICBpZiB7IVtpbmZvIGV4aXN0cyB2YXJzKG9ubHlfb3B0aW9ucyldIHx8IChbaW5mbyBleGlzdHMgdmFycyhvbmx5X29wdGlvbnMpXSAmJiAhJHZhcnMob25seV9vcHRpb25zKSl9IHsKLQotICAgICAgICAgc2V0IHVwZGF0ZV9zZXR1cCAwCi0gICAgICAgICBzZXQgdXBkYXRlX2hvbGQgMAotICAgCi0gICAgICAgICBzZXQgY29tbWFuZCAiIgotICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCRzdGVwLGFjdGl2ZV9zZXR1cF92aWV3cyldICYmIChbbGxlbmd0aCAkdmFycygkc3RlcCxhY3RpdmVfc2V0dXBfdmlld3MpXT4wKX0gewotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgInNldCBzZXR1cF9hbmFseXNpc192aWV3cyBcIiR2YXJzKCRzdGVwLGFjdGl2ZV9zZXR1cF92aWV3cylcIlxuIgotICAgICAgICAgICAgc2V0IHVwZGF0ZV9zZXR1cCAxCi0gICAgICAgICB9Ci0gICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJHN0ZXAsYWN0aXZlX2hvbGRfdmlld3MpXSAmJiAoW2xsZW5ndGggJHZhcnMoJHN0ZXAsYWN0aXZlX2hvbGRfdmlld3MpXT4wKX0gewotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgInNldCBob2xkX2FuYWx5c2lzX3ZpZXdzIFwiJHZhcnMoJHN0ZXAsYWN0aXZlX2hvbGRfdmlld3MpXCJcbiIKLSAgICAgICAgICAgIHNldCB1cGRhdGVfaG9sZCAxCi0gICAgICAgICB9Ci0gICAKLSAgICAgICAgIHNldCBjb21tZW50cyAiIgotICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIFRoZSBhY3RpdmUgYW5hbHlzaXMgdmlld3MgYXJlIGNvbnRyb2xsZWQgYnkgdGhlIGZvbGxvd2luZyB2YXJpYWJsZXM6XG4iICAKLSAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIgotICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycygkc3RlcCxhY3RpdmVfc2V0dXBfdmlld3MpXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKCRzdGVwLGFjdGl2ZV9ob2xkX3ZpZXdzKVxuIgotICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyNcbiIKLSAgICAgICAgIGlmIHskdXBkYXRlX3NldHVwIHx8ICR1cGRhdGVfaG9sZH0gewotICAgICAgICAgICAgaWYgeyR2YXJzKHZlcmJvc2UpfSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiNcbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyA8RkY+IFVQREFUSU5HIEFOQUxZU0lTIFZJRVdTIC4uLlxuIgotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjXG4iCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiB7ISR1cGRhdGVfc2V0dXAgJiYgJHVwZGF0ZV9ob2xkfSB7Ci0gICAjICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgInNldF9hbmFseXNpc192aWV3IC1zZXR1cCBcW2FsbF9zZXR1cF9hbmFseXNpc192aWV3c1xdIC1ob2xkIFxbbGlzdCBcJGhvbGRfYW5hbHlzaXNfdmlld3NcXVxuIgotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgInNldF9hbmFseXNpc192aWV3IC1zZXR1cCBcW2FsbF9zZXR1cF9hbmFseXNpc192aWV3c1xdIC1ob2xkIFwkaG9sZF9hbmFseXNpc192aWV3c1xuIgotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgeyR1cGRhdGVfc2V0dXAgJiYgISR1cGRhdGVfaG9sZH0gewotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgInNldF9hbmFseXNpc192aWV3IC1zZXR1cCBcJHNldHVwX2FuYWx5c2lzX3ZpZXdzIC1ob2xkIFxbYWxsX2hvbGRfYW5hbHlzaXNfdmlld3NcXVxuIgotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgeyR1cGRhdGVfc2V0dXAgJiYgJHVwZGF0ZV9ob2xkfSB7Ci0gICAjICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgInNldF9hbmFseXNpc192aWV3IC1zZXR1cCBcW2xpc3QgXCRzZXR1cF9hbmFseXNpc192aWV3c1xdIC1ob2xkIFxbbGlzdCBcJGhvbGRfYW5hbHlzaXNfdmlld3NcXVxuIgotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgInNldF9hbmFseXNpc192aWV3IC1zZXR1cCBcJHNldHVwX2FuYWx5c2lzX3ZpZXdzIC1ob2xkIFwkaG9sZF9hbmFseXNpc192aWV3c1xuIgotICAgICAgICAgICAgfQotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICRjb21tZW50cwotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIkY29tbWFuZFxuIgotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIHNldF9hbmFseXNpc192aWV3IC1zZXR1cCBcJHZhcnMoJHN0ZXAsYWN0aXZlX3NldHVwX3ZpZXdzKSAtaG9sZCBcJHZhcnMoJHN0ZXAsYWN0aXZlX2hvbGRfdmlld3MpXG4iCi0gICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiNcbiIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAkY29tbWVudHMKLSAgICAgICAgfQotICAgICAgICAgc2V0IHByb2Nlc3MgW3JlZ3N1YiAibm0iICR2YXJzKHByb2Nlc3MpICIiXQotICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhwcm9jZXNzKVxuIgotICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhmbG93X2VmZm9ydClcbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAic2V0X2RiIGRlc2lnbl9wcm9jZXNzX25vZGUgJHByb2Nlc3NcbiIKLSAgICAgICAgIGlmIHtbc3RyaW5nIHRvbG93ZXIgJHZhcnMoZmxvd19lZmZvcnQpXSAhPSAic3RhbmRhcmQifSB7Ci0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgInNldF9kYiBkZXNpZ25fZmxvd19lZmZvcnQgW3N0cmluZyB0b2xvd2VyICR2YXJzKGZsb3dfZWZmb3J0KV1cbiIKLSAgICAgICAgIH0KLSAgICAgIH0KLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICMgQ2hlY2sgaWYgaW4gdG9wIGxldmVsIHBhcnRpdGlvbiAoaWxtKSBmbG93Ci0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0KLSAgICAgIEZGX05PVlVTOjpjaGVja19mbG93Ci0KLSMgICAgICBpZiB7JHZhcnMocmVwb3J0X3J1bl90aW1lKX0gewotIyAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAic2V0IHZhcnMoJHN0ZXAsc3RhcnRfdGltZSkgXFtjbG9jayBzZWNvbmRzXF1cbiIKLSMgICAgICB9Ci0KLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICMgTG9hZCB0aGUgcmVjb21tZW5kZWQgY29tbWFuZCBtb2RlIHNldHRpbmdzIGZvciBzdGVwCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0KLSMgICAgICBhcHBlbmQgY29tbWFuZHMgIiNcbiIKLSMgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgREVGSU5JTkcgTU9ERSBTRVRUSU5HU1xuIgotIyAgICAgIGFwcGVuZCBjb21tYW5kcyAiI1xuIgotCi0gICAgICBzZXQgY29tbWVudHMgIiIKLSAgICAgIHNldCB1Y29tbWVudHMgIiIKLQotICAgICAgc3dpdGNoICRzdGVwIHsKLQotICAgICAgICAgInBsYWNlIiB7Ci0gICAgICAgICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAgICAgICAjIFNldCBwbGFjZW1lbnQgb3B0aW9ucyAuLi4KLSAgICAgICAgICAgICMgLSBTZXQgb3B0aW1pemF0aW9uIG9wdGlvbnMgaWYgaW5QbGFjZU9wdCBpcyBlbmFibGVkCi0gICAgICAgICAgICAjIC0gTG9hZCB0aGUgQ1RTIHNwZWMgZm9yIGNsb2NrIGdhdGUgYXdhcmUgcGxhY2VtZW50Ci0gICAgICAgICAgICAjIC0gUGxhY2UgSlRBRyBjZWxscyBpZiByZXF1ZXN0ZWQKLSAgICAgICAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICAgICAgIHNldCBhcmdzICIiIAotICAgICAgICAgICAgaWYgeygkdmFycyhlbmFibGVfb2N2KSA9PSAicHJlX3BsYWNlIikgfHwgKCgkdmFycyhlbmFibGVfb2N2KSA9PSAicHJlX3ByZWN0cyIpICYmICgkdmFycyhwbGFjZV9vcHRfZGVzaWduKSB8fCAkdmFycyhwcmVyb3V0ZV9vcHRfZGVzaWduKSkpfSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKGVuYWJsZV9vY3YpXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgYXJncyAic2V0X2RiIHRpbWluZ19hbmFseXNpc190eXBlIG9jdlxuIgotICAgICAgICAgICAgICAgaWYgeyR2YXJzKGVuYWJsZV9hb2N2KX0gewotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhlbmFibGVfYW9jdilcbiIKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBhcmdzICJzZXRfZGIgdGltaW5nX2FuYWx5c2lzX2FvY3YgdHJ1ZVxuIgotICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKGVuYWJsZV9hb2N2KVxuIgotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgaWYgeyR2YXJzKGVuYWJsZV9zb2N2KX0gewotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhlbmFibGVfc29jdilcbiIKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBhcmdzICJzZXRfZGIgdGltaW5nX2FuYWx5c2lzX3NvY3YgdHJ1ZVxuIgotICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKGVuYWJsZV9zb2N2KVxuIgotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKGVuYWJsZV9vY3YpIFwiJHZhcnMoZW5hYmxlX29jdilcIlxuIgotICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMoZW5hYmxlX2FvY3YpIFwidHJ1ZVwiXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhlbmFibGVfc29jdikgXCJ0cnVlXCJcbiIKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIHskYXJncyAhPSAiIn0gewotICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgIiRhcmdzXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgcHJlY3RzLHNldF9hbmFseXNpc19tb2RlICRjb21tYW5kXQotICAgICAgICAgICAgfQotICAgICAgICAgICAgc2V0IGFyZ3MgIiIKLSAgICAgICAgICAgIGlmIHshW2NhdGNoIHtzZXQgYXJnICR2YXJzKGNvbmdlc3Rpb25fZWZmb3J0KX1dfSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgYXJncyAic2V0X2RiIHBsYWNlX2dsb2JhbF9jb25nX2VmZm9ydCAkYXJnXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKGNvbmdlc3Rpb25fZWZmb3J0KVxuIgotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKGNvbmdlc3Rpb25fZWZmb3J0KSBcImF1dG8gbG93IG1lZGl1bSBoaWdoXCJcbiIKLSAgICAgICAgICAgIH0KLSMgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoY2xvY2tfZ2F0ZV9hd2FyZSldICYmICAkdmFycyhjbG9ja19nYXRlX2F3YXJlKX0gewotIyAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMoY2xvY2tfZ2F0ZV9hd2FyZSlcbiIKLSMgICAgICAgICAgICAgICBhcHBlbmQgYXJncyAiIC1wbGFjZV9nbG9iYWxfY2xvY2tfZ2F0ZV9hd2FyZSB0cnVlIgotIyAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIHshW2NhdGNoIHtzZXQgYXJnICR2YXJzKGNsb2NrX2dhdGVfYXdhcmUpfV19IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMoY2xvY2tfZ2F0ZV9hd2FyZSlcbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBhcmdzICJzZXRfZGIgcGxhY2VfZ2xvYmFsX2Nsb2NrX2dhdGVfYXdhcmUgJGFyZ1xuIgotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKGNsb2NrX2dhdGVfYXdhcmUpIFwidHJ1ZVwiXG4iCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiB7IVtjYXRjaCB7c2V0IGFyZyAkdmFycyhwbGFjZV9nbG9iYWxfcGxhY2VfaW9fcGlucyl9XX0gewotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhwbGFjZV9nbG9iYWxfcGxhY2VfaW9fcGlucylcbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBhcmdzICJzZXRfZGIgcGxhY2VfZ2xvYmFsX3BsYWNlX2lvX3BpbnMgICRhcmdcbiIKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhwbGFjZV9nbG9iYWxfcGxhY2VfaW9fcGlucykgXCJ0cnVlXCJcbiIKLSAgICAgICAgICAgIH0KLSMgICAgICAgICAgICBzZXQgcHJvY2VzcyBbcmVnc3ViICJubSIgJHZhcnMocHJvY2VzcykgIiJdCi0jICAgICAgICAgICAgaWYge1tleHByICRwcm9jZXNzIDwgMjhdICYmIFtpbmZvIGV4aXN0cyB2YXJzKGZpbGxlcl9jZWxscyxtaW5fZ2FwKV19IHsKLSMgICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKGZpbGxlcl9jZWxscyxtaW5fZ2FwKVxuIgotIyAgICAgICAgICAgICAgIGFwcGVuZCBhcmdzICIgLWZpbGxlckdhcE1pbkdhcCAkdmFycyhmaWxsZXJfY2VsbHMsbWluX2dhcCkgLWZpbGxlckdhcEVmZm9ydCBoaWdoXG4iCi0jICAgICAgICAgICAgfSBlbHNlIHsKLSMgICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhmaWxsZXJfY2VsbHMsbWluX2dhcCkgXCI8bWljcm9ucz5cIlxuIgotIyAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKGZpbGxlcl9jZWxscyxnYXBfZWZmb3J0KSBcIjxsb3cgbWVkaXVtIGhpZ2g+IFwiXG4iCi0jICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBpZiB7JGFyZ3MgIT0gIiJ9IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCBwbGFjZSxzZXRfcGxhY2VfbW9kZSAkYXJnc10KLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHNldCBhcmdzICIiCi0gICAgICAgICAgICBpZiB7KFtpbmZvIGV4aXN0cyB2YXJzKGluX3BsYWNlX29wdCldICYmICR2YXJzKGluX3BsYWNlX29wdCkpIHx8ICR2YXJzKHBsYWNlX29wdF9kZXNpZ24pfSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKGluX3BsYWNlX29wdClcbiIKLSAgICAgICAgICAgICAgIGlmIHtbbGluZGV4IFtzcGxpdCAkdmFycyh2ZXJzaW9uKSAiLiJdICAwXSA8IDE2fSB7Ci0gICAgICAgICAgICAgICAgICBpZiB7IVtjYXRjaCB7c2V0IGFyZyAkdmFycyhwcmVzZXJ2ZV9hc3NlcnRpb25zKX1dfSB7Ci0gICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKHByZXNlcnZlX2Fzc2VydGlvbnMpXG4iCi0gICAgICAgICAgICAgICAgICAgICBhcHBlbmQgYXJncyAic2V0X2RiIG9wdF9wcmVzZXJ2ZV9waW5zX3dpdGhfdGltaW5nX2NvbnN0cmFpbnRzICRhcmdcbiIKLSAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhwcmVzZXJ2ZV9hc3NlcnRpb25zKSBcInRydWVcIlxuIgotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgaWYgeyFbY2F0Y2gge3NldCBhcmcgJHZhcnMocG93ZXJfZWZmb3J0KX1dfSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKHBvd2VyX2VmZm9ydClcbiIKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBhcmdzICJzZXRfZGIgb3B0X3Bvd2VyX2VmZm9ydCAkYXJnXG4iCi0gICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMocG93ZXJfZWZmb3J0KSBcImxvdyBvciBoaWdoXCJcbiIKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIGlmIHshW2NhdGNoIHtzZXQgYXJnICR2YXJzKHBvd2VyX3JhdGlvKX1dfSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKHBvd2VyX3JhdGlvKVxuIgotICAgICAgICAgICAgICAgICAgYXBwZW5kIGFyZ3MgInNldF9kYiBvcHRfbGVha2FnZV90b19keW5hbWljX3JhdGlvICRhcmdcbiIKLSAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhwb3dlcl9yYXRpbykgXCIwLjAgdG8gMS4wXCJcbiIKLSAgICAgICAgICAgICAgIH0KLSMgICAgICAgICAgICAgICBpZiB7IVtjYXRjaCB7c2V0IGFyZyAkdmFycyhjbG9ja19nYXRlX2F3YXJlX29wdCl9XX0gewotIyAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMoY2xvY2tfZ2F0ZV9hd2FyZV9vcHQpXG4iCi0jICAgICAgICAgICAgICAgICAgYXBwZW5kIGFyZ3MgInNldF9kYiBvcHRfY2xvY2tfZ2F0ZV9hd2FyZSAkYXJnXG4iCi0jICAgICAgICAgICAgICAgfSBlbHNlIHsKLSMgICAgICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhjbG9ja19nYXRlX2F3YXJlX29wdCkgXCJ0cnVlXCJcbiIKLSMgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICBpZiB7IVtjYXRjaCB7c2V0IGFyZyAkdmFycyhjcml0aWNhbF9yYW5nZSl9XX0gewotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhjcml0aWNhbF9yYW5nZSlcbiIKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBhcmdzICIgLWNyaXRpY2FsUmFuZ2UgJGFyZyIKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhhbGxfZW5kX3BvaW50cyldICYmICR2YXJzKGFsbF9lbmRfcG9pbnRzKX0gewotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhhbGxfZW5kX3BvaW50cylcbiIKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBhcmdzICJzZXRfZGIgb3B0X2FsbF9lbmRfcG9pbnRzIHRydWVcbiIKLSAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhhbGxfZW5kX3BvaW50cykgXCJ0cnVlXCJcbiIKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIGlmIHshW2NhdGNoIHtzZXQgYXJnICR2YXJzKHNpemVfb25seV9maWxlKX1dfSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKHNpemVfb25seV9maWxlKVxuIgotICAgICAgICAgICAgICAgICAgYXBwZW5kIGFyZ3MgInNldF9kYiBvcHRfc2l6ZV9vbmx5X2ZpbGUgJGFyZ1xuIgotICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKHNpemVfb25seV9maWxlKSBcIjxmaWxlPlwiXG4iCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICBpZiB7IVtjYXRjaCB7c2V0IGFyZyAkdmFycyhmaXhfZmFub3V0X2xvYWQpfV19IHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMoZml4X2Zhbm91dF9sb2FkKVxuIgotICAgICAgICAgICAgICAgICAgYXBwZW5kIGFyZ3MgInNldF9kYiBvcHRfZml4X2Zhbm91dF9sb2FkICRhcmdcbiIKLSAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhmaXhfZmFub3V0X2xvYWQpIFwiPGZpbGU+XCJcbiIKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIGlmIHshW2NhdGNoIHtzZXQgYXJnICR2YXJzKHVzZWZ1bF9za2V3KX1dfSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKHVzZWZ1bF9za2V3KVxuIgotICAgICAgICAgICAgICAgICAgaWYgeyR2YXJzKGNjb3B0X2VmZm9ydCkgPT0gImxvdyJ9IHsKLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBhcmdzICJzZXRfZGIgb3B0X3VzZWZ1bF9za2V3ICRhcmdcbiIKLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBhcmdzICJzZXRfZGIgb3B0X3VzZWZ1bF9za2V3X2RlbGF5X3ByZV9jdHMgdHJ1ZVxuIgotICAgICAgICAgICAgICAgICAgICAgaWYgeyR2YXJzKHVzZWZ1bF9za2V3KSAmJiAhW2NhdGNoIHtzZXQgYXJnICR2YXJzKHNrZXdfYnVmZmVycyl9XX0gewotICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhza2V3X2J1ZmZlcnMpXG4iCi0gICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgYXJncyAic2V0X2RiIG9wdF91c2VmdWxfc2tld19jZWxscyAkdmFycyhza2V3X2J1ZmZlcnMpXG4iCi0gICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgcHJlY3RzLHNldF91c2VmdWxfc2tld19tb2RlICRjb21tYW5kXQotICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyA8RkY+IFZhcmlhYmxlIHZhcnModXNlZnVsX3NrZXcpIGlnbm9yZWQgd2hlbiB2YXJzKGNjb3B0X2VmZm9ydCkgaXMgJHZhcnMoY2NvcHRfZWZmb3J0KVxuIgotICAgICAgICAgICAgICAgICAgICAgc2V0IHdhcm5pbmdzKCR2YXJzKHdhcm5pbmdfY291bnQpKSAiVmFyaWFibGUgdmFycyh1c2VmdWxfc2tldykgaWdub3JlZCB3aGVuIHZhcnMoY2NvcHRfZWZmb3J0KSBpcyAkdmFycyhjY29wdF9lZmZvcnQpXG4iCi0gICAgICAgICAgICAgICAgICAgICBpbmNyIHZhcnMod2FybmluZ19jb3VudCkKLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyh1c2VmdWxfc2tldykgXCJ0cnVlXCJcbiIKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKHNrZXdfYnVmZmVycykgXCI8bGlzdCBvZiBidWZmZXJzPlwiXG4iCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICBpZiB7JGFyZ3MgIT0gIiJ9IHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCBwbGFjZSxzZXRfb3B0X21vZGUgJGFyZ3NdCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIAotIyAgICAgICAgICAgIHNldCBjb21tYW5kIFtGRl9OT1ZVUzo6YWRkX3RpZV9jZWxscyB0cnVlIGZhbHNlXQotIyAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCBwbGFjZSxhZGRfdGllX2NlbGxzICRjb21tYW5kXQotCi0gICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoanRhZ19jZWxscyldICYmCi0gICAgICAgICAgICAgICAgW2luZm8gZXhpc3RzIHZhcnMoanRhZ19yb3dzKV19IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMoanRhZ19jZWxscyksIHZhcnMoanRhZ19yb3dzKVxuIgotIyAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyBQTEFDSU5HIEpUQUcgQ0VMTFNcbiIKLSAgICAgICAgICAgICAgIHNldCBjb21tYW5kICIiCi0gICAgICAgICAgICAgICBmb3JlYWNoIGluc3QgJHZhcnMoanRhZ19jZWxscykgewotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgInNwZWNpZnlfanRhZyAtaW5zdCAkaW5zdFxuIgotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kIHBsYWNlLHNwZWNpZnlfanRhZyAkY29tbWFuZF0KLSAgICAgICAgICAgICAgIHNldCBjb21tYW5kICJwbGFjZV9qdGFnIC1ucl9yb3cgJHZhcnMoanRhZ19yb3dzKVxuIgotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kIHBsYWNlLHBsYWNlX2p0YWcgJGNvbW1hbmRdCi0gICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0KLSAgICAgICAgICJwcmVjdHMiIHsKLSAgICAgICAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICAgICAgICMgU2V0IG9wdGltaXphdGlvbiBvcHRpb25zIC4uLgotICAgICAgICAgICAgIyBFbmFibGUgc2lnbmFsU3Rvcm0gaWYgcmVxdWVzdGVkIChyZXF1aXJlZCBmb3IgRUNTTS9DQ1MgZmxvd3MpCi0gICAgICAgICAgICAjIEZvciBsb3cgcG93ZXIgZmxvd3MsIG1ha2Ugc3VyZSBhbHdheXMtb24gYnVmZmVycyBhcmUgZW5hYmxlZAotICAgICAgICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCi0gICAgICAgICAgICBzZXQgYXJncyAiIiAKLSAgICAgICAgICAgIGlmIHskdmFycyhmbG93KSA9PSAibW1tYyJ9IHsKLSAgICAgICAgICAgICAgIGlmIHskdmFycyhlbmFibGVfb2N2KSA9PSAicHJlX3ByZWN0cyJ9IHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMoZW5hYmxlX29jdilcbiIKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBhcmdzICJzZXRfZGIgdGltaW5nX2FuYWx5c2lzX3R5cGUgb2N2XG4iCi0gICAgICAgICAgICAgICAgICBpZiB7JHZhcnMoZW5hYmxlX2FvY3YpfSB7Ci0gICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKGVuYWJsZV9hb2N2KVxuIgotICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGFyZ3MgInNldF9kYiB0aW1pbmdfYW5hbHlzaXNfYW9jdiB0cnVlXG4iCi0gICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMoZW5hYmxlX2FvY3YpXG4iCi0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICBpZiB7JHZhcnMoZW5hYmxlX3NvY3YpfSB7Ci0gICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKGVuYWJsZV9zb2N2KVxuIgotICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGFyZ3MgInNldF9kYiB0aW1pbmdfYW5hbHlzaXNfc29jdiB0cnVlXG4iCi0gICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMoZW5hYmxlX3NvY3YpXG4iCi0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMoZW5hYmxlX29jdikgXCJwcmVfcHJlY3RzXCJcbiIKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKGVuYWJsZV9hb2N2KSBcInRydWVcIlxuIgotICAgICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMoZW5hYmxlX3NvY3YpIFwidHJ1ZVwiXG4iCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiB7JGFyZ3MgIT0gIiJ9IHsKLSAgICAgICAgICAgICAgIHNldCBjb21tYW5kICIkYXJnc1xuIgotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kIHByZWN0cyxzZXRfYW5hbHlzaXNfbW9kZSAkY29tbWFuZF0KLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgc2V0IGFyZ3MgIiIKLSAgICAgICAgICAgIGlmIHtbbGluZGV4IFtzcGxpdCAkdmFycyh2ZXJzaW9uKSAiLiJdICAwXSA8IDE3fSB7Ci0gICAgICAgICAgICAgICBpZiB7IVtjYXRjaCB7c2V0IGFyZyAkdmFycyhwcmVzZXJ2ZV9hc3NlcnRpb25zKX1dfSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKHByZXNlcnZlX2Fzc2VydGlvbnMpXG4iCi0gICAgICAgICAgICAgICAgICBhcHBlbmQgYXJncyAic2V0X2RiIG9wdF9wcmVzZXJ2ZV9waW5zX3dpdGhfdGltaW5nX2NvbnN0cmFpbnRzICRhcmdcbiIKLSAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhwcmVzZXJ2ZV9hc3NlcnRpb25zKSBcInRydWVcIlxuIgotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfSAKLSAgICAgICAgICAgIGlmIHshW2NhdGNoIHtzZXQgYXJnICR2YXJzKGxlYWthZ2VfcG93ZXJfZWZmb3J0KX1dfSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKGxlYWthZ2VfcG93ZXJfZWZmb3J0KVxuIgotICAgICAgICAgICAgICAgYXBwZW5kIGFyZ3MgInNldF9kYiBvcHRfbGVha2FnZV9wb3dlcl9lZmZvcnQgJGFyZ1xuIgotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKGxlYWthZ2VfcG93ZXJfZWZmb3J0KSBcImxvdyBvciBoaWdoXCJcbiIKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIHshW2NhdGNoIHtzZXQgYXJnICR2YXJzKGR5bmFtaWNfcG93ZXJfZWZmb3J0KX1dfSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKGR5bmFtaWNfcG93ZXJfZWZmb3J0KVxuIgotICAgICAgICAgICAgICAgYXBwZW5kIGFyZ3MgInNldF9kYiBvcHRfZHluYW1pY19wb3dlcl9lZmZvcnQgJGFyZ1xuIgotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKGR5bmFtaWNfcG93ZXJfZWZmb3J0KSBcImxvdyBvciBoaWdoXCJcbiIKLSAgICAgICAgICAgIH0KLSMgICAgICAgICAgICBpZiB7IVtjYXRjaCB7c2V0IGFyZyAkdmFycyhjbG9ja19nYXRlX2F3YXJlX29wdCl9XX0gewotIyAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMoY2xvY2tfZ2F0ZV9hd2FyZV9vcHQpXG4iCi0jICAgICAgICAgICAgICAgYXBwZW5kIGFyZ3MgInNldF9kYiBvcHRfY2xvY2tfZ2F0ZV9hd2FyZSAkYXJnXG4iCi0jICAgICAgICAgICAgfSBlbHNlIHsKLSMgICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhjbG9ja19nYXRlX2F3YXJlX29wdCkgXCJ0cnVlXCJcbiIKLSMgICAgICAgICAgICB9Ci0jICAgICAgICAgICAgaWYgeyFbY2F0Y2gge3NldCBhcmcgJHZhcnMoY3JpdGljYWxfcmFuZ2UpfV19IHsKLSMgICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKGNyaXRpY2FsX3JhbmdlKVxuIgotIyAgICAgICAgICAgICAgIGFwcGVuZCBhcmdzICJzZXRfZGIgb3B0X2NyaXRpY2FsX3JhbmdlICRhcmdcbiIKLSMgICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoYWxsX2VuZF9wb2ludHMpXSAmJiAkdmFycyhhbGxfZW5kX3BvaW50cyl9IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMoYWxsX2VuZF9wb2ludHMpXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgYXJncyAic2V0X2RiIG9wdF9hbGxfZW5kX3BvaW50cyAkdmFycyhhbGxfZW5kX3BvaW50cylcbiIKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhhbGxfZW5kX3BvaW50cykgXCJ0cnVlXCJcbiIKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIHshW2NhdGNoIHtzZXQgYXJnICR2YXJzKHNpemVfb25seV9maWxlKX1dfSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKHNpemVfb25seV9maWxlKVxuIgotICAgICAgICAgICAgICAgYXBwZW5kIGFyZ3MgInNldF9kYiBvcHRfc2l6ZV9vbmx5X2ZpbGUgJGFyZ1xuIgotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKHNpemVfb25seV9maWxlKSBcIjxmaWxlPlwiXG4iCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiB7IVtjYXRjaCB7c2V0IGFyZyAkdmFycyhmaXhfZmFub3V0X2xvYWQpfV19IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMoZml4X2Zhbm91dF9sb2FkKVxuIgotICAgICAgICAgICAgICAgYXBwZW5kIGFyZ3MgInNldF9kYiBvcHRfZml4X2Zhbm91dF9sb2FkICRhcmdcbiIKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhmaXhfZmFub3V0X2xvYWQpIFwiPGZpbGU+XCJcbiIKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIHshW2NhdGNoIHtzZXQgYXJnICR2YXJzKHVzZWZ1bF9za2V3KX1dfSB7Ci0gICAgICAgICAgICAgICBpZiB7JHZhcnMoY2NvcHRfZWZmb3J0KSA9PSAibG93In0gewotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyh1c2VmdWxfc2tldylcbiIKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBhcmdzICJzZXRfZGIgb3B0X3VzZWZ1bF9za2V3ICRhcmdcbiIKLSAgICAgICAgICAgICAgICAgICAgIGlmIHskdmFycyh1c2VmdWxfc2tldykgJiYgIVtjYXRjaCB7c2V0IGFyZyAkdmFycyhza2V3X2J1ZmZlcnMpfV19IHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMoc2tld19idWZmZXJzKVxuIgotICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGFyZ3MgInNldF9kYiBvcHRfdXNlZnVsX3NrZXdfY2VsbHMgJHZhcnMoc2tld19idWZmZXJzKVxuIgotICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kIHByZWN0cyxzZXRfdXNlZnVsX3NrZXdfbW9kZSAkY29tbWFuZF0KLSAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgPEZGPiBWYXJpYWJsZSB2YXJzKHVzZWZ1bF9za2V3KSBpZ25vcmVkIHdoZW4gdmFycyhjY29wdF9lZmZvcnQpIGlzICR2YXJzKGNjb3B0X2VmZm9ydClcbiIKLSAgICAgICAgICAgICAgICAgICAgIHNldCB3YXJuaW5ncygkdmFycyh3YXJuaW5nX2NvdW50KSkgIlZhcmlhYmxlIHZhcnModXNlZnVsX3NrZXcpIGlnbm9yZWQgd2hlbiB2YXJzKGNjb3B0X2VmZm9ydCkgaXMgJHZhcnMoY2NvcHRfZWZmb3J0KVxuIgotICAgICAgICAgICAgICAgICAgICAgaW5jciB2YXJzKHdhcm5pbmdfY291bnQpCi0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnModXNlZnVsX3NrZXcpIFwidHJ1ZVwiXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhza2V3X2J1ZmZlcnMpIFwiPGxpc3Qgb2YgYnVmZmVycz5cIlxuIgotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYge1tGRjo6aXNfbHBfZmxvd119IHsKLSAgICAgICAgICAgICAgIGlmIHshW2NhdGNoIHtzZXQgYXJnICR2YXJzKHJlc2l6ZV9zaGlmdGVyX2FuZF9pc29faW5zdHMpfV19IHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMocmVzaXplX2xldmVsX3NoaWZ0ZXJfYW5kX2lzb19pbnN0cylcbiIKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBhcmdzICJzZXRfZGIgb3B0X3Jlc2l6ZV9sZXZlbF9zaGlmdGVyX2FuZF9pc29faW5zdHMgJGFyZ1xuIgotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgeyRhcmdzICE9ICIifSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgcHJlY3RzLHNldF9vcHRfbW9kZSAkYXJnc10KLSAgICAgICAgICAgIH0KLQotIyAgICAgICAgICAgIGlmIHskdmFycyhlbmFibGVfc3MpID09ICJwcmVfcHJlY3RzIn0gewotIyAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMoZW5hYmxlX3NzKVxuIgotIyAgICAgICAgICAgICAgIHNldCBjb21tYW5kICJzZXREZWxheUNhbE1vZGUgLWVuZ2luZSBzaWduYWxTdG9ybVxuIgotIyAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCBwcmVjdHMsc2V0X2RlbGF5X2NhbF9tb2RlICRjb21tYW5kXQotIyAgICAgICAgICAgIH0gZWxzZSB7Ci0jICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMoZW5hYmxlX3NzKSBcInByZV9wcmVjdHNcIlxuIgotIyAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIHtbRkY6OmlzX2xwX2Zsb3ddfSB7Ci0gICAgICAgICAgICAgICBzZXQgY29tbWFuZCAiIgotICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGFsd2F5c19vbl9idWZmZXJzKV19IHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMoYWx3YXlzX29uX2J1ZmZlcnMpXG4iCi0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAic2V0X2ludGVyYWN0aXZlX2NvbnN0cmFpbnRfbW9kZXMgXFthbGxfY29uc3RyYWludF9tb2RlcyAtYWN0aXZlXF1cbiIKLSAgICAgICAgICAgICAgICAgIGZvcmVhY2ggYnVmZmVyICR2YXJzKGFsd2F5c19vbl9idWZmZXJzKSB7Ci0gICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAic2V0X2RvbnRfdXNlIGZhbHNlICRidWZmZXJcbiIKLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJzZXRfZG9udF90b3VjaCBmYWxzZSAkYnVmZmVyXG4iCi0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICBmb3JlYWNoIGRvbWFpbiBbRkY6OmdldF9ieV9zdWZmaXggdmFycyAiLGFsd2F5c19vbl9idWZmZXJzIl0gewotICAgICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCRkb21haW4sYWx3YXlzX29uX2J1ZmZlcnMpXX0gewotICAgICAgICAgICAgICAgICAgICAgZm9yZWFjaCBidWZmZXIgJHZhcnMoJGRvbWFpbixhbHdheXNfb25fYnVmZmVycykgewotICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgInNldF9kb250X3VzZSBmYWxzZSAkYnVmZmVyXG4iCi0gICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAic2V0X2RvbnRfdG91Y2ggZmFsc2UgJGJ1ZmZlclxuIgotICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgaWYgeyRjb21tYW5kICE9ICIifSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgcHJlY3RzLHNldF9kb250X3VzZSAkY29tbWFuZF0KLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0KLQotICAgICAgICAgImN0cyIgewotICAgICAgICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgICAgICAgIyBTZXQgQ1RTIG9wdGlvbnMgLi4uIHRoaXMgaW5jbHVkZXMgbmFub3JvdXRlIG9wdGlvbnMgYXMgdGhlIGNsb2NrCi0gICAgICAgICAgICAjIG5ldCBpcyB0eXBpY2FsbHkgcm91dGVkIGR1cmluZyBDVFMuIEZvciBoaWVyYXJjaGljYWwgZmxvd3MsIHRoZQotICAgICAgICAgICAgIyBjbG9jayB0cmVlIHNwZWMgaXMgZGVmaW5lZCBwZXIgcGFydGl0aW9uIC4KLSAgICAgICAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLQotICAgICAgICAgICAgc2V0IGFyZ3MgIiIKLSAgICAgICAgICAgIGlmIHskdmFycyhlbmFibGVfb2N2KSA9PSAicHJlX2N0cyJ9IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMoZW5hYmxlX29jdilcbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBhcmdzICJzZXRfZGIgdGltaW5nX2FuYWx5c2lzX3R5cGUgb2N2XG4iCi0gICAgICAgICAgICAgICBpZiB7JHZhcnMoZW5hYmxlX2FvY3YpfSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKGVuYWJsZV9hb2N2KVxuIgotICAgICAgICAgICAgICAgICAgYXBwZW5kIGFyZ3MgInNldF9kYiB0aW1pbmdfYW5hbHlzaXNfYW9jdiB0cnVlXG4iCi0gICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMoZW5hYmxlX2FvY3YpXG4iCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICBpZiB7JHZhcnMoZW5hYmxlX3NvY3YpfSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKGVuYWJsZV9zb2N2KVxuIgotICAgICAgICAgICAgICAgICAgYXBwZW5kIGFyZ3MgInNldF9kYiB0aW1pbmdfYW5hbHlzaXNfc29jdiB0cnVlXG4iCi0gICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMoZW5hYmxlX3NvY3YpXG4iCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMoZW5hYmxlX29jdikgXCJwcmVfY3RzXCJcbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKGVuYWJsZV9hb2N2KSBcInRydWVcIlxuIgotICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMoZW5hYmxlX3NvY3YpIFwidHJ1ZVwiXG4iCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiB7JGFyZ3MgIT0gIiJ9IHsKLSAgICAgICAgICAgICAgIHNldCBjb21tYW5kICIkYXJnc1xuIgotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kIHBvc3RjdHMsc2V0X2FuYWx5c2lzX21vZGUgJGNvbW1hbmRdCi0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIHNldCBjb21tYW5kICIiCi0jICAgICAgICAgICAgaWYgeyFbY2F0Y2gge3NldCBhcmcgJHZhcnMocm91dGVfY2xvY2tfbmV0cyl9XX0gewotIyAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMocm91dGVfY2xvY2tfbmV0cylcbiIKLSMgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAic2V0X2RiIGN0c19yb3V0ZV9jbG9ja190cmVlX25ldHMgJGFyZ1xuIgotIyAgICAgICAgICAgIH0gZWxzZSB7Ci0jICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMocm91dGVfY2xvY2tfbmV0cylcbiIKLSMgICAgICAgICAgICB9Ci0jICAgICAgICAgICAgaWYgeyR2YXJzKGN0c19lbmdpbmUpID09ICJjdHMifSB7Ci0jICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGNsa190cmVlX3RvcF9sYXllcildICYmICR2YXJzKGNsa190cmVlX3RvcF9sYXllcikgIT0ge319IHsKLSMgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKGNsa190cmVlX3RvcF9sYXllcilcbiIKLSMgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAic2V0X2RiIGN0c19yb3V0ZV90b3BfcHJlZmVycmVkX2xheWVyICR2YXJzKGNsa190cmVlX3RvcF9sYXllcilcbiIKLSMgICAgICAgICAgICAgICB9IGVsc2UgewotIyAgICAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKGNsa190cmVlX3RvcF9sYXllcilcbiIKLSMgICAgICAgICAgICAgICB9Ci0jICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGNsa190cmVlX2JvdHRvbV9sYXllcildICYmICR2YXJzKGNsa190cmVlX2JvdHRvbV9sYXllcikgIT0ge319IHsKLSMgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKGNsa190cmVlX2JvdHRvbV9sYXllcilcbiIKLSMgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAic2V0X2RiIGN0c19yb3V0ZV9ib3R0b21fcHJlZmVycmVkX2xheWVyICR2YXJzKGNsa190cmVlX2JvdHRvbV9sYXllcilcbiIKLSMgICAgICAgICAgICAgICB9IGVsc2UgewotIyAgICAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKGNsa190cmVlX2JvdHRvbV9sYXllcilcbiIKLSMgICAgICAgICAgICAgICB9Ci0jICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGNsa19sZWFmX3RvcF9sYXllcildICYmICR2YXJzKGNsa19sZWFmX3RvcF9sYXllcikgIT0ge319IHsKLSMgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKGNsa19sZWFmX3RvcF9sYXllcilcbiIKLSMgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAic2V0X2RiIGN0c19yb3V0ZV9sZWFmX3RvcF9wcmVmZXJyZWRfbGF5ZXIgJHZhcnMoY2xrX2xlYWZfdG9wX2xheWVyKVxuIgotIyAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0jICAgICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMoY2xrX2xlYWZfdG9wX2xheWVyKVxuIgotIyAgICAgICAgICAgICAgIH0KLSMgICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoY2xrX2xlYWZfYm90dG9tX2xheWVyKV0gJiYgJHZhcnMoY2xrX2xlYWZfYm90dG9tX2xheWVyKSAhPSB7fX0gewotIyAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMoY2xrX2xlYWZfYm90dG9tX2xheWVyKVxuIgotIyAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJzZXRfZGIgY3RzX3JvdXRlX2xlYWZfYm90dG9tX3ByZWZlcnJlZF9sYXllciAkdmFycyhjbGtfbGVhZl9ib3R0b21fbGF5ZXIpXG4iCi0jICAgICAgICAgICAgICAgfSBlbHNlIHsKLSMgICAgICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhjbGtfbGVhZl9ib3R0b21fbGF5ZXIpXG4iCi0jICAgICAgICAgICAgICAgfQotIyAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhjbGtfdHJlZV9uZHIpXSAmJiAkdmFycyhjbGtfdHJlZV9uZHIpICE9IHt9fSB7Ci0jICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhjbGtfdHJlZV9uZHIpXG4iCi0jICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgInNldF9kYiBjdHNfcm91dGVfbm9uX2RlZmF1bHRfcnVsZSAkdmFycyhjbGtfdHJlZV9uZHIpXG4iCi0jICAgICAgICAgICAgICAgfSBlbHNlIHsKLSMgICAgICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhjbGtfdHJlZV9uZHIpXG4iCi0jICAgICAgICAgICAgICAgfQotIyAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhjbGtfdHJlZV9leHRyYV9zcGFjZSldICYmICR2YXJzKGNsa190cmVlX2V4dHJhX3NwYWNlKSAhPSB7fX0gewotIyAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMoY2xrX3RyZWVfZXh0cmFfc3BhY2UpXG4iCi0jICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgInNldF9kYiBjdHNfcm91dGVfcHJlZmVycmVkX2V4dHJhX3NwYWNlICR2YXJzKGNsa190cmVlX2V4dHJhX3NwYWNlKSIKLSMgICAgICAgICAgICAgICB9IGVsc2UgewotIyAgICAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKGNsa190cmVlX2V4dHJhX3NwYWNlKVxuIgotIyAgICAgICAgICAgICAgIH0KLSMgICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoY2xrX2xlYWZfbmRyKV0gJiYgJHZhcnMoY2xrX2xlYWZfbmRyKSAhPSB7fX0gewotIyAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMoY2xrX2xlYWZfbmRyKVxuIgotIyAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJzZXRfZGIgY3RzX3JvdXRlX2xlYWZfbm9uX2RlZmF1bHRfcnVsZSAkdmFycyhjbGtfbGVhZl9uZHIpIgotIyAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0jICAgICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMoY2xrX2xlYWZfbmRyKVxuIgotIyAgICAgICAgICAgICAgIH0KLSMgICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoY2xrX2xlYWZfZXh0cmFfc3BhY2UpXSAmJiAkdmFycyhjbGtfbGVhZl9leHRyYV9zcGFjZSkgIT0ge319IHsKLSMgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKGNsa19sZWFmX2V4dHJhX3NwYWNlKVxuIgotIyAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJzZXRfZGIgY3RzX3JvdXRlX2xlYWZfcHJlZmVycmVkX2V4dHJhX3NwYWNlICR2YXJzKGNsa19sZWFmX2V4dHJhX3NwYWNlKSIKLSMgICAgICAgICAgICAgICB9IGVsc2UgewotIyAgICAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKGNsa19sZWFmX2V4dHJhX3NwYWNlKVxuIgotIyAgICAgICAgICAgICAgIH0KLSMgICAgICAgICAgICAgICBpZiB7JGNvbW1hbmQgIT0gIiJ9IHsKLSMgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiXG4iCi0jICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kIGN0cyxzZXRfY3RzX21vZGUgJGNvbW1hbmRdCi0jICAgICAgICAgICAgICAgfQotIyAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBzZXQgYXJncyAiIgotICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgIiIKLSAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhjbGtfbGVhZl90b3BfbGF5ZXIpXSAmJiAkdmFycyhjbGtfbGVhZl90b3BfbGF5ZXIpICE9IHt9fSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKGNsa19sZWFmX3RvcF9sYXllcilcbiIKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBhcmdzICItdG9wX3ByZWZlcnJlZF9sYXllciAkdmFycyhjbGtfbGVhZl90b3BfbGF5ZXIpICIKLSAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhjbGtfbGVhZl90b3BfbGF5ZXIpXG4iCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoY2xrX2xlYWZfYm90dG9tX2xheWVyKV0gJiYgJHZhcnMoY2xrX2xlYWZfYm90dG9tX2xheWVyKSAhPSB7fX0gewotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhjbGtfbGVhZl9ib3R0b21fbGF5ZXIpXG4iCi0gICAgICAgICAgICAgICAgICBhcHBlbmQgYXJncyAiLWJvdHRvbV9wcmVmZXJyZWRfbGF5ZXIgJHZhcnMoY2xrX2xlYWZfYm90dG9tX2xheWVyKSAiCi0gICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMoY2xrX2xlYWZfYm90dG9tX2xheWVyKVxuIgotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGNsa19sZWFmX25kcildICYmICR2YXJzKGNsa19sZWFmX25kcikgIT0ge319IHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMoY2xrX2xlYWZfbmRyKVxuIgotICAgICAgICAgICAgICAgICAgYXBwZW5kIGFyZ3MgIi1ub25fZGVmYXVsdF9ydWxlICR2YXJzKGNsa19sZWFmX25kcikgIgotICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKGNsa19sZWFmX25kcilcbiIKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIGlmIHskYXJncyAhPSAiIn0gewotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgImNyZWF0ZV9yb3V0ZV90eXBlIC1uYW1lIGxlYWYgIgotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgJGFyZ3MKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIHNldCBhcmdzICIiCi0gICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoY2xrX3RyZWVfdG9wX2xheWVyKV0gJiYgJHZhcnMoY2xrX3RyZWVfdG9wX2xheWVyKSAhPSB7fX0gewotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhjbGtfdHJlZV90b3BfbGF5ZXIpXG4iCi0gICAgICAgICAgICAgICAgICBhcHBlbmQgYXJncyAiLXRvcF9wcmVmZXJyZWRfbGF5ZXIgJHZhcnMoY2xrX3RyZWVfdG9wX2xheWVyKSAiCi0gICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMoY2xrX3RyZWVfdG9wX2xheWVyKVxuIgotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGNsa190cmVlX2JvdHRvbV9sYXllcildICYmICR2YXJzKGNsa190cmVlX2JvdHRvbV9sYXllcikgIT0ge319IHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMoY2xrX3RyZWVfYm90dG9tX2xheWVyKVxuIgotICAgICAgICAgICAgICAgICAgYXBwZW5kIGFyZ3MgIi1ib3R0b21fcHJlZmVycmVkX2xheWVyICR2YXJzKGNsa190cmVlX2JvdHRvbV9sYXllcikgIgotICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKGNsa190cmVlX2JvdHRvbV9sYXllcilcbiIKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhjbGtfdHJlZV9uZHIpXSAmJiAkdmFycyhjbGtfdHJlZV9uZHIpICE9IHt9fSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKGNsa190cmVlX25kcilcbiIKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBhcmdzICItbm9uX2RlZmF1bHRfcnVsZSAkdmFycyhjbGtfdHJlZV9uZHIpICIKLSAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhjbGtfdHJlZV9uZHIpXG4iCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICBpZiB7JGFyZ3MgIT0gIiJ9IHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJcbmNyZWF0ZV9yb3V0ZV90eXBlIC1uYW1lIHRyZWUgIgotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgJGFyZ3MKLSAgICAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgICAgaWYgeyRjb21tYW5kICE9ICIifSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiXG4iCi0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgY3RzLHNldF9jdHNfbW9kZSAkY29tbWFuZF0KLSAgICAgICAgICAgICAgIH0KLSMgICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIHNldCBjb21tYW5kICIiCi0gICAgICAgICAgICBpZiB7W3N0cmluZyB0b2xvd2VyICR2YXJzKGN0c19lbmdpbmUpXSAhPSAiY3RzIn0gewotIyAgICAgICAgICAgICAgIEZGX05PVlVTOjphc3NpZ25fY3RzX2NlbGxzCi0jICAgICAgICAgICAgICAgZm9yZWFjaCBjb3JuZXIgJHZhcnMocmNfY29ybmVycykgewotIyAgICAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkY29ybmVyLGF0Zl9maWxlKV19IHsKLSMgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgInVwZGF0ZV9jY29wdF9yY19jb3JuZXIgLW5hbWUgJGNvcm5lciAtYXRmICR2YXJzKCRjb3JuZXIsYXRmX2ZpbGUpXG4iCi0jICAgICAgICAgICAgICAgICAgfQotIyAgICAgICAgICAgICAgIH0KLSMgICAgICAgICAgICAgICBpZiB7JGNvbW1hbmQgIT0gIiJ9IHsKLSMgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiXG4iCi0jICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kIGN0cyx1cGRhdGVfY2NvcHRfcmNfY29ybmVyICRjb21tYW5kXQotIyAgICAgICAgICAgICAgIH0KLSMgICAgICAgICAgICAgICBzZXQgY29tbWFuZCAiIgotIyAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhjY29wdF9pbnRlZ3JhdGlvbildfSB7Ci0jICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhjY29wdF9pbnRlZ3JhdGlvbilcbiIKLSMgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAic2V0X2RiIGNjb3B0X2ludGVncmF0aW9uIFwiJHZhcnMoY2NvcHRfaW50ZWdyYXRpb24pXCJcbiIKLSMgICAgICAgICAgICAgICB9IGVsc2UgewotIyAgICAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKGNjb3B0X2ludGVncmF0aW9uKVxuIgotIyAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhjdHNfaW52ZXJ0ZXJfY2VsbHMpXX0gewotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhjdHNfaW52ZXJ0ZXJfY2VsbHMpXG4iCi0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAic2V0X2RiIGN0c19pbnZlcnRlcl9jZWxscyBcIiR2YXJzKGN0c19pbnZlcnRlcl9jZWxscylcIlxuIgotICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKGN0c19pbnZlcnRlcl9jZWxscylcbiIKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhjdHNfYnVmZmVyX2NlbGxzKV19IHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMoY3RzX2J1ZmZlcl9jZWxscylcbiIKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJzZXRfZGIgY3RzX2J1ZmZlcl9jZWxscyBcIiR2YXJzKGN0c19idWZmZXJfY2VsbHMpXCJcbiIKLSAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhjdHNfYnVmZmVyX2NlbGxzKVxuIgotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGNsb2NrX2dhdGVfY2VsbHMpXX0gewotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhjbG9ja19nYXRlX2NlbGxzKVxuIgotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgInNldF9kYiBjdHNfY2xvY2tfZ2F0aW5nX2NlbGxzIFwiJHZhcnMoY2xvY2tfZ2F0ZV9jZWxscylcIlxuIgotICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKGNsb2NrX2dhdGVfY2VsbHMpXG4iCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoY3RzX3VzZV9pbnZlcnRlcnMpXX0gewotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhjdHNfdXNlX2ludmVydGVycylcbiIKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJzZXRfZGIgY3RzX3VzZV9pbnZlcnRlcnMgW3N0cmluZyB0b2xvd2VyICR2YXJzKGN0c191c2VfaW52ZXJ0ZXJzKV1cbiIKLSAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhjdHNfdXNlX2ludmVydGVycylcbiIKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyh1cGRhdGVfaW9fbGF0ZW5jeSldfSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKHVwZGF0ZV9pb19sYXRlbmN5KVxuIgotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgInNldF9kYiBjdHNfdXBkYXRlX2lvX2xhdGVuY3kgJHZhcnModXBkYXRlX2lvX2xhdGVuY3kpXG4iCi0gICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnModXBkYXRlX2lvX2xhdGVuY3kpXG4iCi0gICAgICAgICAgICAgICB9Ci0jICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGN0c19pb19vcHQpXX0gewotIyAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMoY3RzX2lvX29wdClcbiIKLSMgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAic2V0X2RiIGNjb3B0X2lvX29wdCBbc3RyaW5nIHRvbG93ZXIgJHZhcnMoY3RzX2lvX29wdCldXG4iCi0jICAgICAgICAgICAgICAgfSBlbHNlIHsKLSMgICAgICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhjdHNfaW9fb3B0KVxuIgotIyAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhjY29wdF9lZmZvcnQpXX0gewotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhjY29wdF9lZmZvcnQpXG4iCi0gICAgICAgICAgICAgICAgICBpZiB7W3N0cmluZyB0b2xvd2VyICR2YXJzKGNjb3B0X2VmZm9ydCldICE9ICJsb3cifSB7Ci0gICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAic2V0X2Njb3B0X2VmZm9ydCAkdmFycyhjY29wdF9lZmZvcnQpXG4iCi0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMoY2NvcHRfZWZmb3J0KVxuIgotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGN0c190YXJnZXRfc2tldyldfSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKGN0c190YXJnZXRfc2tldylcbiIKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJzZXRfZGIgY3RzX3RhcmdldF9za2V3ICR2YXJzKGN0c190YXJnZXRfc2tldylcbiIKLSAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhjdHNfdGFyZ2V0X3NrZXcpXG4iCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoY3RzX3RhcmdldF9zbGV3KV19IHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMoY3RzX3RhcmdldF9zbGV3KVxuIgotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgInNldF9kYiBjdHNfdGFyZ2V0X21heF90cmFuc2l0aW9uX3RpbWUgJHZhcnMoY3RzX3RhcmdldF9zbGV3KVxuIgotICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKGN0c190YXJnZXRfc2xldylcbiIKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhwcmVfY2NvcHRfdGNsKV19IHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMocHJlX2Njb3B0X3RjbClcbiIKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJzZXRfZGIgY2NvcHRfcHJlX3RjbCBceyBzb3VyY2UgJHZhcnMocHJlX2Njb3B0X3RjbCkgXH1cbiIKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhwb3N0X2Njb3B0X3RjbCldfSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKHBvc3RfY2NvcHRfdGNsKVxuIgotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgInNldF9kYiBjY29wdF9wb3N0X3RjbCBceyBzb3VyY2UgJHZhcnMocG9zdF9jY29wdF90Y2wpIFx9XG4iCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgY3RzLHNldF9jY29wdF9tb2RlICRjb21tYW5kXQotIyAgICAgICAgICAgICAgIHNldCBjb21tYW5kICJjcmVhdGVfcm91dGVfdHlwZSB0cnVuayAiCi0jICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGNsa190cmVlX25kcildfSB7Ci0jICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhjbGtfdHJlZV9uZHIpXG4iCi0jICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIi1ub25fZGVmYXVsdF9ydWxlICR2YXJzKGNsa190cmVlX25kcikiCi0jICAgICAgICAgICAgICAgfSBlbHNlIHsKLSMgICAgICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhjbGtfdHJlZV9uZHIpXG4iCi0jICAgICAgICAgICAgICAgfQotIyAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhjbGtfdHJlZV9zaGllbGRfbmV0KV19IHsKLSMgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKGNsa190cmVlX3NoaWVsZF9uZXQpXG4iCi0jICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIi1zaGllbGRfbmV0ICR2YXJzKGNsa190cmVlX3NoaWVsZF9uZXQpIgotIyAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0jICAgICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMoY2xrX3RyZWVfc2hpZWxkX25ldClcbiIKLSMgICAgICAgICAgICAgICB9Ci0jICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGNsa190cmVlX3RvcF9sYXllcildfSB7Ci0jICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhjbGtfdHJlZV90b3BfbGF5ZXIpXG4iCi0jICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIi10b3BfcHJlZmVycmVkX2xheWVyICR2YXJzKGNsa190cmVlX3RvcF9sYXllcilcbiIKLSMgICAgICAgICAgICAgICB9IGVsc2UgewotIyAgICAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKGNsa190cmVlX3RvcF9sYXllcilcbiIKLSMgICAgICAgICAgICAgICB9Ci0jICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGNsa190cmVlX2JvdHRvbV9sYXllcildfSB7Ci0jICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIi1ib3R0b21fcHJlZmVycmVkICR2YXJzKGNsa190cmVlX2JvdHRvbV9sYXllcilcbiIKLSMgICAgICAgICAgICAgICB9IGVsc2UgewotIyAgICAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKGNsa190cmVlX2JvdHRvbV9sYXllcilcbiIKLSMgICAgICAgICAgICAgICB9Ci0jICAgICAgICAgICAgICAgaWYgeyRjb21tYW5kICE9ICJjcmVhdGVfcm91dGVfdHlwZSB0cnVuayAifSB7Ci0jICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiXG4iCi0jICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgY3RzLGNyZWF0ZV9yb3V0ZV90eXBlICRjb21tYW5kXQotIyAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHNldCBhcmdzICIiCi0gICAgICAgICAgICBpZiB7IVtjYXRjaCB7c2V0IGFyZyAkdmFycyhtdWx0aV9jdXRfZWZmb3J0KX1dfSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKG11bHRpX2N1dF9lZmZvcnQpXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgYXJncyAic2V0X2RiIHJvdXRlX2Rlc2lnbl9kZXRhaWxfdXNlX211bHRpX2N1dF92aWFfZWZmb3J0ICRhcmdcbiIKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhtdWx0aV9jdXRfZWZmb3J0KVxuIgotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgeyFbY2F0Y2gge3NldCBhcmcgJHZhcnMobGl0aG9fZHJpdmVuX3JvdXRpbmcpfV19IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMobGl0aG9fZHJpdmVuX3JvdXRpbmcpXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgYXJncyAic2V0X2RiIHJvdXRlX2Rlc2lnbl93aXRoX2xpdGhvX2RyaXZlbiAkYXJnXG4iCi0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMobGl0aG9fZHJpdmVuX3JvdXRpbmcpXG4iCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiB7JGFyZ3MgIT0gIiJ9IHsKLSAgICAgICAgICAgICAgIHNldCBjb21tYW5kICIkYXJnc1xuIgotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kIGN0cyxzZXRfbmFub3JvdXRlX21vZGUgJGNvbW1hbmRdCi0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGlmIHsoW2luZm8gZXhpc3RzIHZhcnMocGFydGl0aW9uX2xpc3QpXSkgJiYKLSAgICAgICAgICAgICAgICAoW2ZpbGUgdGFpbCBbZmlsZSBkaXJuYW1lIFtwd2RdXV0gPT0gIiR2YXJzKHBhcnRpdGlvbl9kaXIpIil9IHsKLSAgICAgICAgICAgICAgIHNldCBwdG4gW2ZpbGUgdGFpbCBbcHdkXV0KLSAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkcHRuLGN0c19zcGVjKV19IHsKLSAgICAgICAgICAgICAgICAgIHNldCB2YXJzKGN0c19zcGVjKSAkdmFycygkcHRuLGN0c19zcGVjKQotICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgIGlmIHskcHRuICE9ICR2YXJzKGRlc2lnbil9IHsKLSAgICAgICAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhjdHNfc3BlYyldfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICB1bnNldCB2YXJzKGN0c19zcGVjKQotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0KLQotICAgICAgICAgInBvc3RjdHMiIHsKLSAgICAgICAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICAgICAgICMgT3B0aW9uYWxseSBlbmFibGUgY3Bwciwgc2lnbmFsU3Rvcm0sIGFuZCBvbkNoaXBWYXJpYXRpb24gKGlmCi0gICAgICAgICAgICAjIE1NTUMpCi0gICAgICAgICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0KLSAgICAgICAgICAgIHNldCBhcmdzICIiIAotICAgICAgICAgICAgaWYgeyR2YXJzKGVuYWJsZV9jcHByKSAhPSAiZmFsc2UifSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKGVuYWJsZV9jcHByKVxuIgotICAgICAgICAgICAgICAgYXBwZW5kIGFyZ3MgInNldF9kYiB0aW1pbmdfYW5hbHlzaXNfY3BwciAkdmFycyhlbmFibGVfY3BwcilcbiIKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhlbmFibGVfY3BwcilcbiIKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIHskdmFycyhmbG93KSA9PSAibW1tYyJ9IHsKLSAgICAgICAgICAgICAgIGlmIHskdmFycyhlbmFibGVfb2N2KSA9PSAicHJlX3Bvc3RjdHMifSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKGVuYWJsZV9vY3YpXG4iCi0gICAgICAgICAgICAgICAgICBhcHBlbmQgYXJncyAic2V0X2RiIHRpbWluZ19hbmFseXNpc190eXBlIG9jdlxuIgotICAgICAgICAgICAgICAgICAgaWYgeyR2YXJzKGVuYWJsZV9hb2N2KX0gewotICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhlbmFibGVfYW9jdilcbiIKLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBhcmdzICJzZXRfZGIgdGltaW5nX2FuYWx5c2lzX2FvY3YgdHJ1ZVxuIgotICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKGVuYWJsZV9hb2N2KVxuIgotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgaWYgeyR2YXJzKGVuYWJsZV9zb2N2KX0gewotICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhlbmFibGVfc29jdilcbiIKLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBhcmdzICJzZXRfZGIgdGltaW5nX2FuYWx5c2lzX3NvY3YgdHJ1ZVxuIgotICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKGVuYWJsZV9zb2N2KVxuIgotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKGVuYWJsZV9vY3YpIFwicHJlX3Bvc3RjdHNcIlxuIgotICAgICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMoZW5hYmxlX2FvY3YpIFwidHJ1ZVwiXG4iCi0gICAgICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhlbmFibGVfc29jdikgXCJ0cnVlXCJcbiIKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIHskYXJncyAhPSAiIn0gewotICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgIiRhcmdzXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgcG9zdGN0cyxzZXRfYW5hbHlzaXNfbW9kZSAkY29tbWFuZF0KLSAgICAgICAgICAgIH0KLQotIyAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhjdHNfc3BlYyldfSB7Ci0jICAgICAgICAgICAgICAgaWYgeyFbY2F0Y2gge3NldCBhcmcgJHZhcnMoY2xvY2tfZ2F0ZV9jbG9uZSl9XX0gewotIyAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMoY2xvY2tfZ2F0ZV9jbG9uZSlcbiIKLSMgICAgICAgICAgICAgICAgICBzZXQgY29tbWFuZCAic2V0X2RiIG9wdF9wb3N0X2N0c19jbG9ja19nYXRlX2Nsb25pbmcgJGFyZ1xuIgotIyAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCBwb3N0Y3RzLHNldF9vcHRfbW9kZSAkY29tbWFuZF0KLSMgICAgICAgICAgICAgICB9Ci0jICAgICAgICAgICAgfQotICAgICAgICAgfQotCi0gICAgICAgICAicG9zdGN0c19ob2xkIiB7Ci0gICAgICAgICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAgICAgICAjIFNldCBob2xkIGZpeGluZyBvcHRpb25zIC4uLgotICAgICAgICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCi0gICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoZGVsYXlfY2VsbHMpXX0gewotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhkZWxheV9jZWxscylcbiIKLSAgICAgICAgICAgICAgIHNldCBjb21tYW5kICIiCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAic2V0X2ludGVyYWN0aXZlX2NvbnN0cmFpbnRfbW9kZXMgXFthbGxfY29uc3RyYWludF9tb2RlcyAtYWN0aXZlXF1cbiIKLSAgICAgICAgICAgICAgIGZvcmVhY2ggZGVsYXlfY2VsbCAkdmFycyhkZWxheV9jZWxscykgewotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgInNldF9kb250X3VzZSBmYWxzZSAkZGVsYXlfY2VsbFxuIgotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgaWYgeyRjb21tYW5kICE9ICIifSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgcG9zdGN0c19ob2xkLHNldF9kb250X3VzZSAkY29tbWFuZF0KLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhkZWxheV9jZWxscylcbiIKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHNldCBhcmdzICIiCi0gICAgICAgICAgICBpZiB7IVtjYXRjaCB7c2V0IGFyZyAkdmFycyhmaXhfaG9sZF9hbGxvd190bnNfZGVncmFkYXRpb24pfV19IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMoZml4X2hvbGRfYWxsb3dfdG5zX2RlZ3JhZGF0aW9uKVxuIgotICAgICAgICAgICAgICAgYXBwZW5kIGFyZ3MgIiNzZXRfZGIgb3B0X2ZpeF9ob2xkX2FsbG93X3NldHVwX3Ruc19kZWdyYWRlICRhcmdcbiIKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhmaXhfaG9sZF9hbGxvd190bnNfZGVncmFkYXRpb24pXG4iCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiB7JHZhcnMoZml4X2hvbGRfaWdub3JlX2lvcyl9IHsKLSAgICAgICAgICAgICAgICNhcHBlbmQgY29tbWFuZHMgInNldEFuYWx5c2lzTW9kZSAtaG9ub3JDbG9ja0RvbWFpbnMgdHJ1ZVxuIiAKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMoZml4X2hvbGRfaWdub3JlX2lvcylcbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBhcmdzICIjc2V0X2RiIG9wdF9maXhfaG9sZF9pZ25vcmVfcGF0aF9ncm91cHMge2luMnJlZyByZWcyb3V0IGluMm91dH1cbiIKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhmaXhfaG9sZF9pZ25vcmVfaW9zKVxuIgotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgeyRhcmdzICE9ICIifSB7Ci0gICAgICAgICAgICAgICBzZXQgY29tbWFuZCAiJGFyZ3NcbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCBwb3N0Y3RzX2hvbGQsc2V0X29wdF9tb2RlICRjb21tYW5kXQotICAgICAgICAgICAgfQotICAgICAgICAgfQotCi0gICAgICAgICAicm91dGUiIHsKLSAgICAgICAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICAgICAgICMgU2V0IHJvdXRpbmcgb3B0aW9ucyAgLi4uCi0gICAgICAgICAgICAjIFJlY29tbWVuZGF0aW9ucyBmb3IgbXVsdGljdXQgdmlhIGluc2VydGlvbiBhbmQgbGl0aG8gZHJpdmVuCi0gICAgICAgICAgICAjIHJvdXRpbmcuICBUaGVzZSBhbGwgaW5jdXIgcnVudGltZSBwZW5hbHRpZXMgYnV0IGhhdmUgeWllbGQKLSAgICAgICAgICAgICMgYWR2YW50YWdlcyBzbyBhcmUgaW5jbHVkZWQgaGVyZS4gVGhlIHJvdXRlV2l0aExpdGhvRHJpdmVuIG9wdGlvbgotICAgICAgICAgICAgIyBpcyByZWNvbW1lbmRlZCBmb3IgNDVubSBidXQgbWF5IGFsc28gYmUgdXNlZCBhdCA2NW5tLiBUaGUKLSAgICAgICAgICAgICMgLWRyb3V0ZVVzZU11bHRpQ3V0VmlhRWZmb3J0IGNhbiBiZSBzZXQgdG8gaGlnaCBpZiBuZWVkZWQ7Ci0gICAgICAgICAgICAjIGV4cGVjdCBhbiBhdmVyYWdlIG9mIDUlIGNvdmVyYWdlIGltcHJvdmVtZW50IHdpdGggYW4gYXZlcmFnZSAxMCUKLSAgICAgICAgICAgICMgcnVudGltZSBoaXQgdmVyc3VzIG1lZGl1bQotICAgICAgICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCi0gICAgICAgICAgICBpZiB7KCR2YXJzKGVuYWJsZV9jcHByKSAhPSAiZmFsc2UiKSAmJiAkdmFycyh0cmFja19vcHQpfSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKGVuYWJsZV9jcHByKVxuIgotICAgICAgICAgICAgICAgYXBwZW5kIGFyZ3MgInNldF9kYiB0aW1pbmdfYW5hbHlzaXNfY3BwciAkdmFycyhlbmFibGVfY3BwcilcbiIKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhlbmFibGVfY3BwcilcbiIKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIHskdmFycyhlbmFibGVfc2lfYXdhcmUpfSB7Ci0gICAgICAgICAgICAgICBzZXQgY29tbWFuZCAic2V0X2RiIGRlbGF5Y2FsX2VuYWJsZV9zaSB0cnVlXG4gIgotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kIHBvc3Ryb3V0ZSxzZXRfZGVsYXlfY2FsX21vZGUgJGNvbW1hbmRdCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKGVuYWJsZV9zaV9hd2FyZSlcbiIKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhlbmFibGVfc2lfYXdhcmUpXG4iCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBzZXQgYXJncyAiIgotICAgICAgICAgICAgaWYgeyFbY2F0Y2gge3NldCBhcmcgJHZhcnMobXVsdGlfY3V0X2VmZm9ydCl9XX0gewotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhtdWx0aV9jdXRfZWZmb3J0KVxuIgotICAgICAgICAgICAgICAgYXBwZW5kIGFyZ3MgInNldF9kYiByb3V0ZV9kZXNpZ25fZGV0YWlsX3VzZV9tdWx0aV9jdXRfdmlhX2VmZm9ydCAkYXJnXG4iCi0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMobXVsdGlfY3V0X2VmZm9ydClcbiIKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIHshW2NhdGNoIHtzZXQgYXJnICR2YXJzKGxpdGhvX2RyaXZlbl9yb3V0aW5nKX1dfSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKGxpdGhvX2RyaXZlbl9yb3V0aW5nKVxuIgotICAgICAgICAgICAgICAgYXBwZW5kIGFyZ3MgInNldF9kYiByb3V0ZV9kZXNpZ25fd2l0aF9saXRob19kcml2ZW4gJGFyZ1xuIgotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKGxpdGhvX2RyaXZlbl9yb3V0aW5nKVxuIgotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgeyFbY2F0Y2gge3NldCBhcmcgJHZhcnMoYW50ZW5uYV9kaW9kZSl9XX0gewotICAgICAgICAgICAgICAgaWYgeyR2YXJzKGFudGVubmFfZGlvZGUpICE9ICIifSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKGFudGVubmFfZGlvZGUpXG4iCi0gICAgICAgICAgICAgICAgICBhcHBlbmQgYXJncyAic2V0X2RiIHJvdXRlX2Rlc2lnbl9hbnRlbm5hX2NlbGxfbmFtZSAkYXJnXG4iCi0gICAgICAgICAgICAgICAgICBhcHBlbmQgYXJncyAic2V0X2RiIHJvdXRlX2Rlc2lnbl9hbnRlbm5hX2Rpb2RlX2luc2VydGlvbiB0cnVlXG4iCi0gICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMoYW50ZW5uYV9kaW9kZSlcbiIKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhhbnRlbm5hX2Rpb2RlKVxuIgotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgeyRhcmdzICE9ICIifSB7Ci0gICAgICAgICAgICAgICBzZXQgY29tbWFuZCAiJGFyZ3NcbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCByb3V0ZSxzZXRfbmFub3JvdXRlX21vZGUgJGNvbW1hbmRdCi0gICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0KLSAgICAgICAgICJwb3N0cm91dGUiIHsKLSAgICAgICAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICAgICAgICMgU2V0IGV4dHJhY3Rpb24gZWZmb3J0IGZvciBwb3N0cm91dGUgb3B0aW1pemF0aW9uCi0gICAgICAgICAgICAjIEVuYWJsZSBzaWduYWxTdG9ybSBpZiByZXF1ZXN0ZWQKLSAgICAgICAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLQotICAgICAgICAgICAgc2V0IGNvbW1hbmQgInNldF9kYiBleHRyYWN0X3JjX2VuZ2luZSBwb3N0X3JvdXRlXG4iCi0gICAgICAgICAgICBpZiB7IVtjYXRjaCB7c2V0IGFyZyAkdmFycyhwb3N0cm91dGVfZXh0cmFjdGlvbl9lZmZvcnQpfV19IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMocG9zdHJvdXRlX2V4dHJhY3Rpb25fZWZmb3J0KVxuIgotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgInNldF9kYiBleHRyYWN0X3JjX2VmZm9ydF9sZXZlbCAkYXJnXG4iCi0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMocG9zdHJvdXRlX2V4dHJhY3Rpb25fZWZmb3J0KVxuIgotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgeyFbY2F0Y2gge3NldCBhcmcgJHZhcnModG90YWxfY190aHJlc2gpfV19IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnModG90YWxfY190aHJlc2gpXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAic2V0X2RiIGV4dHJhY3RfcmNfdG90YWxfY2FwX3RocmVzaG9sZCAkYXJnXG4iCi0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnModG90YWxfY190aHJlc2gpXG4iCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiB7IVtjYXRjaCB7c2V0IGFyZyAkdmFycyhyZWxhdGl2ZV9jX3RocmVzaCl9XX0gewotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhyZWxhdGl2ZV9jX3RocmVzaClcbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJzZXRfZGIgZXh0cmFjdF9yY19yZWxhdGl2ZV9jYXBfdGhyZXNob2xkICRhcmdcbiIKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhyZWxhdGl2ZV9jX3RocmVzaClcbiIKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIHshW2NhdGNoIHtzZXQgYXJnICR2YXJzKGNvdXBsaW5nX2NfdGhyZXNoKX1dfSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKGNvdXBsaW5nX2NfdGhyZXNoKVxuIgotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgInNldF9kYiBleHRyYWN0X3JjX2NvdXBsaW5nX2NhcF90aHJlc2hvbGQgJGFyZ1xuIgotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKHJlbGF0aXZlX2NfdGhyZXNoKVxuIgotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgeyFbY2F0Y2gge3NldCBhcmcgJHZhcnMocXJjX2xheWVyX21hcCl9XX0gewotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhxcmNfbGF5ZXJfbWFwKVxuIgotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgInNldF9kYiBleHRyYWN0X3JjX2xlZl90ZWNoX2ZpbGVfbWFwICRhcmciCi0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMocXJjX2xheWVyX21hcClcbiIKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJcbiIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCBwb3N0cm91dGUsc2V0X2V4dHJhY3RfcmNfbW9kZSAkY29tbWFuZF0KLSAgICAgICAgICAgICAKLQotICAgICAgICAgICAgc2V0IGFyZ3MgIiIKLSAgICAgICAgICAgIGlmIHsoJHZhcnMoZW5hYmxlX29jdikgPT0gInByZV9wb3N0cm91dGUiKSB8fCAoJHZhcnMoZW5hYmxlX29jdikgPT0gInByZV9wb3N0Y3RzIil9IHsKLSAgICAgICAgICAgICAgIGlmIHskdmFycyhmbG93KSAhPSAiZGVmYXVsdCJ9IHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMoZW5hYmxlX29jdilcbiIKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBhcmdzICJzZXRfZGIgdGltaW5nX2FuYWx5c2lzX3R5cGUgb2N2XG4iCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICBpZiB7JHZhcnMoZW5hYmxlX2FvY3YpfSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKGVuYWJsZV9hb2N2KVxuIgotICAgICAgICAgICAgICAgICAgYXBwZW5kIGFyZ3MgInNldF9kYiB0aW1pbmdfYW5hbHlzaXNfYW9jdiB0cnVlXG4iCi0gICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMoZW5hYmxlX2FvY3YpXG4iCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICBpZiB7JHZhcnMoZW5hYmxlX3NvY3YpfSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKGVuYWJsZV9zb2N2KVxuIgotICAgICAgICAgICAgICAgICAgYXBwZW5kIGFyZ3MgInNldF9kYiB0aW1pbmdfYW5hbHlzaXNfc29jdiB0cnVlXG4iCi0gICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMoZW5hYmxlX3NvY3YpXG4iCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMoZW5hYmxlX29jdikgXCJwcmVfcG9zdHJvdXRlXCJcbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKGVuYWJsZV9hb2N2KSBcInRydWVcIlxuIgotICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMoZW5hYmxlX3NvY3YpIFwidHJ1ZVwiXG4iCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiB7JHZhcnMoZW5hYmxlX2NwcHIpICE9ICJmYWxzZSJ9IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMoZW5hYmxlX2NwcHIpXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgYXJncyAic2V0X2RiIHRpbWluZ19hbmFseXNpc19jcHByICR2YXJzKGVuYWJsZV9jcHByKVxuIgotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKGVuYWJsZV9jcHByKVxuIgotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgeyRhcmdzICE9ICIifSB7Ci0gICAgICAgICAgICAgICBzZXQgY29tbWFuZCAiJGFyZ3NcbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCBwb3N0cm91dGUsc2V0X2FuYWx5c2lzX21vZGUgJGNvbW1hbmRdCi0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGlmIHtbcmVnZXhwICI5LjEiICR2YXJzKHZlcnNpb24pXX0gewotICAgICAgICAgICAgICAgaWYgeyR2YXJzKGVuYWJsZV9zcykgPT0gInByZV9wb3N0cm91dGUifSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKGVuYWJsZV9zcylcbiIKLSAgICAgICAgICAgICAgICAgIHNldCBjb21tYW5kICJzZXREZWxheUNhbE1vZGUgLWVuZ2luZSBzaWduYWxTdG9ybSAtc2lnbm9mZiB0cnVlICIKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCBwb3N0cm91dGUsc2V0X2RlbGF5X2NhbF9tb2RlICRjb21tYW5kXQotICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKGVuYWJsZV9zcykgXCJwcmVfcG9zdHJvdXRlXCJcbiIKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0gZWxzZSB7IAotICAgICAgICAgICAgICAgaWYgeyR2YXJzKGVuYWJsZV9zaV9hd2FyZSl9IHsKLSAgICAgICAgICAgICAgICAgIHNldCBjb21tYW5kICJzZXRfZGIgZGVsYXljYWxfZW5hYmxlX3NpIHRydWVcbiAiCi0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgcG9zdHJvdXRlLHNldF9kZWxheV9jYWxfbW9kZSAkY29tbWFuZF0KLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMoZW5hYmxlX3NpX2F3YXJlKVxuIgotICAgICAgICAgICAgICAgICAgaWYgeyR2YXJzKGVuYWJsZV9zcykgPT0gInByZV9wb3N0cm91dGUifSB7Ci0gICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgPEZGPiBWYXJpYWJsZSB2YXJzKGVuYWJsZV9zcykgaWdub3JlZCB3aGVuIHZhcnMoZW5hYmxlX3NpX2F3YXJlKSBpcyBzZXRcbiIKLSAgICAgICAgICAgICAgICAgICAgIHNldCB3YXJuaW5ncygkdmFycyh3YXJuaW5nX2NvdW50KSkgIlZhcmlhYmxlIHZhcnMoZW5hYmxlX3NzKSBpZ25vcmVkIHdoZW4gdmFycyhlbmFibGVfc2lfYXdhcmUpIGlzIHNldFxuIgotICAgICAgICAgICAgICAgICAgICAgaW5jciB2YXJzKHdhcm5pbmdfY291bnQpCi0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMoZW5hYmxlX3NpX2F3YXJlKVxuIgotICAgICAgICAgICAgICAgICAgaWYgeyR2YXJzKGVuYWJsZV9zcykgPT0gInByZV9wb3N0cm91dGUifSB7Ci0gICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKGVuYWJsZV9zcylcbiIKLSMgICAgICAgICAgICAgICAgICAgICBzZXQgY29tbWFuZCAic2V0RGVsYXlDYWxNb2RlIC1lbmdpbmUgc2lnbmFsU3Rvcm0gLXNpZ25vZmYgdHJ1ZSAtc2lBd2FyZSBmYWxzZVxuIgotIyAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCBwb3N0cm91dGUsc2V0X2RlbGF5X2NhbF9tb2RlICRjb21tYW5kXQotICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgIHNldCBjb21tYW5kICIjc2V0X2RiIGRlbGF5Y2FsX2VuYWJsZV9zaSBmYWxzZVxuIgotIyAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCBwb3N0cm91dGUsc2V0X2RlbGF5X2NhbF9tb2RlICRjb21tYW5kXQotICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMoZW5hYmxlX3NzKSBcInByZV9wb3N0cm91dGVcIlxuIgotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAgfQotCi0gICAgICAgICAicG9zdHJvdXRlX2hvbGQiIHsKLSAgICAgICAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICAgICAgICMgU2V0IGhvbGQgZml4aW5nIG9wdGlvbnMgLi4uCi0gICAgICAgICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0KLSAgICAgICAgICAgIHNldCBjb21tYW5kICJzZXRfZGIgZXh0cmFjdF9yY19lbmdpbmUgcG9zdF9yb3V0ZVxuIgotICAgICAgICAgICAgaWYgeyFbY2F0Y2gge3NldCBhcmcgJHZhcnMocG9zdHJvdXRlX2V4dHJhY3Rpb25fZWZmb3J0KX1dfSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKHBvc3Ryb3V0ZV9leHRyYWN0aW9uX2VmZm9ydClcbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJzZXRfZGIgZXh0cmFjdF9yY19lZmZvcnRfbGV2ZWwgJGFyZ1xuIgotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKHBvc3Ryb3V0ZV9leHRyYWN0aW9uX2VmZm9ydClcbiIKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIHshW2NhdGNoIHtzZXQgYXJnICR2YXJzKHRvdGFsX2NfdGhyZXNoKX1dfSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKHRvdGFsX2NfdGhyZXNoKVxuIgotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgInNldF9kYiBleHRyYWN0X3JjX3RvdGFsX2NhcF90aHJlc2hvbGQgJGFyZ1xuIgotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKHRvdGFsX2NfdGhyZXNoKVxuIgotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgeyFbY2F0Y2gge3NldCBhcmcgJHZhcnMocmVsYXRpdmVfY190aHJlc2gpfV19IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMocmVsYXRpdmVfY190aHJlc2gpXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAic2V0X2RiIGV4dHJhY3RfcmNfcmVsYXRpdmVfY2FwX3RocmVzaG9sZCAkYXJnXG4iCi0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMocmVsYXRpdmVfY190aHJlc2gpXG4iCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiB7IVtjYXRjaCB7c2V0IGFyZyAkdmFycyhjb3VwbGluZ19jX3RocmVzaCl9XX0gewotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhjb3VwbGluZ19jX3RocmVzaClcbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJzZXRfZGIgZXh0cmFjdF9yY19jb3VwbGluZ19jYXBfdGhyZXNob2xkICRhcmdcbiIKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhjb3VwbGluZ19jX3RocmVzaClcbiIKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIHshW2NhdGNoIHtzZXQgYXJnICR2YXJzKHFyY19sYXllcl9tYXApfV19IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMocXJjX2xheWVyX21hcClcbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJzZXRfZGIgZXh0cmFjdF9yY19sZWZfdGVjaF9maWxlX21hcCAkYXJnIgotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKHFyY19sYXllcl9tYXApXG4iCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiXG4iCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgcG9zdHJvdXRlX2hvbGQsc2V0X2V4dHJhY3RfcmNfbW9kZSAkY29tbWFuZF0KLSAgICAgICAgICAgIHNldCBjb21tYW5kICIiIAotICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGRlbGF5X2NlbGxzKV19IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJzZXRfaW50ZXJhY3RpdmVfY29uc3RyYWludF9tb2RlcyBcW2FsbF9jb25zdHJhaW50X21vZGVzIC1hY3RpdmVcXVxuIgotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhkZWxheV9jZWxscylcbiIKLSAgICAgICAgICAgICAgIGZvcmVhY2ggZGVsYXlfY2VsbCAkdmFycyhkZWxheV9jZWxscykgewotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgInNldF9kb250X3VzZSBmYWxzZSAkZGVsYXlfY2VsbFxuIgotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKGRlbGF5X2NlbGxzKVxuIgotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgeyRjb21tYW5kICE9ICIifSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgcG9zdHJvdXRlX2hvbGQsc2V0X2RvbnRfdXNlX21vZGUgJGNvbW1hbmRdCi0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIHNldCBhcmdzICIiCi0gICAgICAgICAgICBpZiB7IVtjYXRjaCB7c2V0IGFyZyAkdmFycyhmaXhfaG9sZF9hbGxvd190bnNfZGVncmFkYXRpb24pfV19IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMoZml4X2hvbGRfYWxsb3dfdG5zX2RlZ3JhZGF0aW9uKVxuIgotICAgICAgICAgICAgICAgYXBwZW5kIGFyZ3MgIiNzZXRfZGIgb3B0X2ZpeF9ob2xkX2FsbG93X3NldHVwX3Ruc19kZWdyYWRlICRhcmdcbiIKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhmaXhfaG9sZF9hbGxvd190bnNfZGVncmFkYXRpb24pXG4iCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiB7JHZhcnMoZml4X2hvbGRfaWdub3JlX2lvcyl9IHsKLSAgICAgICAgICAgICAgICNhcHBlbmQgY29tbWFuZHMgInNldEFuYWx5c2lzTW9kZSAtaG9ub3JDbG9ja0RvbWFpbnMgdHJ1ZVxuIiAKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMoZml4X2hvbGRfaWdub3JlX2lvcylcbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBhcmdzICIjc2V0X2RiIG9wdF9maXhfaG9sZF9pZ25vcmVfcGF0aF9ncm91cHMge2luMnJlZyByZWcyb3V0IGluMm91dH0iCi0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMoZml4X2hvbGRfaWdub3JlX2lvcylcbiIKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIHskYXJncyAhPSAiIn0gewotICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgIiRhcmdzXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgcG9zdHJvdXRlX2hvbGQsc2V0X29wdF9tb2RlICRjb21tYW5kXQotICAgICAgICAgICAgfQotICAgICAgICAgfQotCi0gICAgICAgICAicG9zdHJvdXRlX3NpIiB7Ci0gICAgICAgICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAgICAgICAjIFNldCBub2lzZSwgZXh0cmFjdGlvbiwgYW5kIFNJIG9wdGlvbnMgLi4uCi0gICAgICAgICAgICAjIEVuYWJsZSBzaWduYWxTdG9ybSBpZiByZXF1ZXN0ZWQKLSAgICAgICAgICAgICMgRW5hYmxlIG9uQ2hpcFZhcmlhdGlvbiAoaWYgTU1NQykKLSAgICAgICAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLQotICAgICAgICAgICAgc2V0IGNvbW1hbmQgInNldF9kYiBleHRyYWN0X3JjX2NvdXBsZWQgdHJ1ZVxuIgotICAgICAgICAgICAgaWYgeyFbY2F0Y2gge3NldCBhcmcgJHZhcnModG90YWxfY190aHJlc2gpfV19IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnModG90YWxfY190aHJlc2gpXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAic2V0X2RiIGV4dHJhY3RfcmNfdG90YWxfY2FwX3RocmVzaG9sZCAkYXJnXG4iCi0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnModG90YWxfY190aHJlc2gpXG4iCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiB7IVtjYXRjaCB7c2V0IGFyZyAkdmFycyhyZWxhdGl2ZV9jX3RocmVzaCl9XX0gewotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhyZWxhdGl2ZV9jX3RocmVzaClcbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJzZXRfZGIgZXh0cmFjdF9yY19yZWxhdGl2ZV9jYXBfdGhyZXNob2xkICRhcmdcbiIKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhyZWxhdGl2ZV9jX3RocmVzaClcbiIKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIHshW2NhdGNoIHtzZXQgYXJnICR2YXJzKGNvdXBsaW5nX2NfdGhyZXNoKX1dfSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKGNvdXBsaW5nX2NfdGhyZXNoKVxuIgotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgInNldF9kYiBleHRyYWN0X3JjX2NvdXBsaW5nX2NhcF90aHJlc2hvbGQgJGFyZ1xuIgotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKGNvdXBsaW5nX2NfdGhyZXNoKVxuIgotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgeyFbY2F0Y2gge3NldCBhcmcgJHZhcnMocXJjX2xheWVyX21hcCl9XX0gewotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhxcmNfbGF5ZXJfbWFwKVxuIgotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgInNldF9kYiBleHRyYWN0X3JjX2xlZl90ZWNoX2ZpbGVfbWFwICRhcmdcbiIKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhxcmNfbGF5ZXJfbWFwKVxuIgotICAgICAgICAgICAgfQotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIlxuIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kIHBvc3Ryb3V0ZV9zaSxzZXRfZXh0cmFjdF9yY19tb2RlICRjb21tYW5kXQotCi0gICAgICAgICAgICBzZXQgYXJncyAiIgotICAgICAgICAgICAgaWYgeyFbY2F0Y2gge3NldCBhcmcgJHZhcnMoZGVsdGFfZGVsYXlfdGhyZXNob2xkKX1dfSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKGRlbHRhX2RlbGF5X3RocmVzaG9sZClcbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBhcmdzICJzZXRfZGIgc2lfZGVsYXlfZGVsdGFfdGhyZXNob2xkICRhcmdcbiIKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhkZWx0YV9kZWxheV90aHJlc2hvbGQpXG4iCi0gICAgICAgICAgICB9Ci0jICAgICAgICAgICAgaWYgeyFbY2F0Y2gge3NldCBhcmcgJHZhcnMoY2VsdGljX3NldHRpbmdzKX1dfSB7Ci0jICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhjZWx0aWNfc2V0dGluZ3MpXG4iCi0jICAgICAgICAgICAgICAgYXBwZW5kIGFyZ3MgIiAtaW5zQ2VsdElDUHJlVGNsIFwiJGFyZ1wiIgotIyAgICAgICAgICAgIH0gZWxzZSB7Ci0jICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMoY2VsdGljX3NldHRpbmdzKVxuIgotIyAgICAgICAgICAgIH0KLSMgICAgICAgICAgICBpZiB7IVtjYXRjaCB7c2V0IGFyZyAkdmFycyhzaV9hbmFseXNpc190eXBlKX1dfSB7Ci0jICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhzaV9hbmFseXNpc190eXBlKVxuIgotIyAgICAgICAgICAgICAgIGFwcGVuZCBhcmdzICIgLWFuYWx5c2lzVHlwZSAkYXJnIgotIyAgICAgICAgICAgIH0gZWxzZSB7Ci0jICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMoc2lfYW5hbHlzaXNfdHlwZSlcbiIKLSMgICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiB7JHZhcnMoaGlnaF90aW1pbmdfZWZmb3J0KSAmJiBbcmVnZXhwICI5LjEiICR2YXJzKHZlcnNpb24pXX0gewotIyAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMoaGlnaF90aW1pbmdfZWZmb3J0KVxuIgotICAgICAgICAgICAgICAgYXBwZW5kIGFyZ3MgInNldF9kYiBzaV9hY2NlcHRhYmxlX3ducyAwXG4iCi0gICAgICAgICAgICB9IGVsc2VpZiB7W2luZm8gZXhpc3RzIHZhcnMoYWNjZXB0YWJsZV93bnMpXX0gewotICAgICAgICAgICAgICAgYXBwZW5kIGFyZ3MgInNldF9kYiBzaV9hY2NlcHRhYmxlX3ducyAkdmFycyhhY2NlcHRhYmxlX3ducylcbiIKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIHskYXJncyAhPSAiIn0gewotICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgIiRhcmdzXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgcG9zdHJvdXRlX3NpLHNldF9zaV9tb2RlICRjb21tYW5kXQotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBzZXQgYXJncyAiIgotICAgICAgICAgICAgaWYgeyR2YXJzKGVuYWJsZV9vY3YpID09ICJwcmVfcG9zdHJvdXRlX3NpIn0gewotICAgICAgICAgICAgICAgaWYgeyR2YXJzKGZsb3cpICE9ICJkZWZhdWx0In0gewotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhlbmFibGVfb2N2KVxuIgotICAgICAgICAgICAgICAgICAgYXBwZW5kIGFyZ3MgInNldF9kYiB0aW1pbmdfYW5hbHlzaXNfdHlwZSBvY3ZcbiIKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIGlmIHskdmFycyhlbmFibGVfYW9jdil9IHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMoZW5hYmxlX2FvY3YpXG4iCi0gICAgICAgICAgICAgICAgICBhcHBlbmQgYXJncyAic2V0X2RiIHRpbWluZ19hbmFseXNpc19hb2N2IHRydWVcbiIKLSAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhlbmFibGVfYW9jdilcbiIKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIGlmIHskdmFycyhlbmFibGVfc29jdil9IHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMoZW5hYmxlX3NvY3YpXG4iCi0gICAgICAgICAgICAgICAgICBhcHBlbmQgYXJncyAic2V0X2RiIHRpbWluZ19hbmFseXNpc19zb2N2IHRydWVcbiIKLSAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhlbmFibGVfc29jdilcbiIKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhlbmFibGVfb2N2KSBcInByZV9wb3N0cm91dGVfc2lcIlxuIgotICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMoZW5hYmxlX2FvY3YpIFwidHJ1ZVwiXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhlbmFibGVfc29jdikgXCJ0cnVlXCJcbiIKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIHskdmFycyhlbmFibGVfY3BwcikgIT0gImZhbHNlIn0gewotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhlbmFibGVfY3BwcilcbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBhcmdzICJzZXRfZGIgdGltaW5nX2FuYWx5c2lzX2NwcHIgJHZhcnMoZW5hYmxlX2NwcHIpXG4iCi0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMoZW5hYmxlX2NwcHIpXG4iCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiB7JGFyZ3MgIT0gIiJ9IHsKLSAgICAgICAgICAgICAgIHNldCBjb21tYW5kICIkYXJnc1xuIgotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kIHBvc3Ryb3V0ZV9zaSxzZXRfYW5hbHlzaXNfbW9kZSAkY29tbWFuZF0KLSAgICAgICAgICAgIH0KLQotIyAgICAgICAgICAgIGlmIHskdmFycyhlbmFibGVfc3MpID09ICJwcmVfcG9zdHJvdXRlX3NpIn0gewotIyAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMoZW5hYmxlX3NzKVxuIgotIyAgICAgICAgICAgICAgIHNldCBjb21tYW5kICJzZXREZWxheUNhbE1vZGUgLWVuZ2luZSBzaWduYWxTdG9ybVxuIgotIyAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCBwb3N0cm91dGVfc2ksc2V0X2RlbGF5X2NhbF9tb2RlICRjb21tYW5kXQotIyAgICAgICAgICAgIH0gZWxzZSB7Ci0jICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMoZW5hYmxlX3NzKSBcInByZV9wb3N0cm91dGVfc2lcIlxuIgotIyAgICAgICAgICAgIH0KLSMgICAgICAgICB9Ci0KLSAgICAgICAgICJwb3N0cm91dGVfc2lfaG9sZCIgewotICAgICAgICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgICAgICAgIyBTZXQgaG9sZCBmaXhpbmcgb3B0aW9ucyAuLi4KLSAgICAgICAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLQotICAgICAgICAgICAgc2V0IGNvbW1hbmQgIiIgCi0gICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoZGVsYXlfY2VsbHMpXX0gewotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgInNldF9pbnRlcmFjdGl2ZV9jb25zdHJhaW50X21vZGVzIFxbYWxsX2NvbnN0cmFpbnRfbW9kZXMgLWFjdGl2ZVxdXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKGRlbGF5X2NlbGxzKVxuIgotICAgICAgICAgICAgICAgZm9yZWFjaCBkZWxheV9jZWxsICR2YXJzKGRlbGF5X2NlbGxzKSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAic2V0X2RvbnRfdXNlIGZhbHNlICRkZWxheV9jZWxsXG4iCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMoZGVsYXlfY2VsbHMpXG4iCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiB7JGNvbW1hbmQgIT0gIiJ9IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCBwb3N0cm91dGVfaG9sZCxzZXRfZG9udF91c2VfbW9kZSAkY29tbWFuZF0KLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgc2V0IGFyZ3MgIiIKLSAgICAgICAgICAgIGlmIHshW2NhdGNoIHtzZXQgYXJnICR2YXJzKGZpeF9ob2xkX2FsbG93X3Ruc19kZWdyYWRhdGlvbil9XX0gewotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhmaXhfaG9sZF9hbGxvd190bnNfZGVncmFkYXRpb24pXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgYXJncyAiI3NldF9kYiBvcHRfZml4X2hvbGRfYWxsb3dfc2V0dXBfdG5zX2RlZ3JhZGUgJGFyZ1xuIgotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKGZpeF9ob2xkX2FsbG93X3Ruc19kZWdyYWRhdGlvbilcbiIKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIHskdmFycyhmaXhfaG9sZF9pZ25vcmVfaW9zKX0gewotICAgICAgICAgICAgICAgI2FwcGVuZCBjb21tYW5kcyAic2V0QW5hbHlzaXNNb2RlIC1ob25vckNsb2NrRG9tYWlucyB0cnVlXG4iIAotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhmaXhfaG9sZF9pZ25vcmVfaW9zKVxuIgotICAgICAgICAgICAgICAgYXBwZW5kIGFyZ3MgIiNzZXRfZGIgb3B0X2ZpeF9ob2xkX2lnbm9yZV9wYXRoX2dyb3VwcyB7aW4ycmVnIHJlZzJvdXQgaW4yb3V0fSIKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhmaXhfaG9sZF9pZ25vcmVfaW9zKVxuIgotICAgICAgICAgICAgfQotICAgICAgICAgICAgc2V0IGNvbW1hbmQgIiIKLSAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhkZWxheV9jZWxscyldfSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAic2V0X2ludGVyYWN0aXZlX2NvbnN0cmFpbnRfbW9kZXMgXFthbGxfY29uc3RyYWludF9tb2RlcyAtYWN0aXZlXF1cbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMoZGVsYXlfY2VsbHMpXG4iCi0gICAgICAgICAgICAgICBmb3JlYWNoIGRlbGF5X2NlbGwgJHZhcnMoZGVsYXlfY2VsbHMpIHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJzZXRfZG9udF91c2UgZmFsc2UgJGRlbGF5X2NlbGxcbiIKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhkZWxheV9jZWxscylcbiIKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIHskYXJncyAhPSAiIn0gewotICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgIiRhcmdzXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgcG9zdHJvdXRlX3NpX2hvbGQsc2V0X29wdF9tb2RlICRjb21tYW5kXQotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAgICAgICAjIFNldCBub2lzZSwgZXh0cmFjdGlvbiwgYW5kIFNJIG9wdGlvbnMgLi4uCi0gICAgICAgICAgICAjIEVuYWJsZSBzaWduYWxTdG9ybSBpZiByZXF1ZXN0ZWQKLSAgICAgICAgICAgICMgRW5hYmxlIG9uQ2hpcFZhcmlhdGlvbiAoaWYgTU1NQykKLSAgICAgICAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLQotICAgICAgICAgICAgc2V0IGNvbW1hbmQgInNldF9kYiBleHRyYWN0X3JjX2NvdXBsZWQgdHJ1ZVxuIgotICAgICAgICAgICAgaWYgeyFbY2F0Y2gge3NldCBhcmcgJHZhcnModG90YWxfY190aHJlc2gpfV19IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnModG90YWxfY190aHJlc2gpXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAic2V0X2RiIGV4dHJhY3RfcmNfdG90YWxfY2FwX3RocmVzaG9sZCAkYXJnXG4iCi0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnModG90YWxfY190aHJlc2gpXG4iCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiB7IVtjYXRjaCB7c2V0IGFyZyAkdmFycyhyZWxhdGl2ZV9jX3RocmVzaCl9XX0gewotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhyZWxhdGl2ZV9jX3RocmVzaClcbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJzZXRfZGIgZXh0cmFjdF9yY19yZWxhdGl2ZV9jYXBfdGhyZXNob2xkICRhcmdcbiIKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhyZWxhdGl2ZV9jX3RocmVzaClcbiIKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIHshW2NhdGNoIHtzZXQgYXJnICR2YXJzKGNvdXBsaW5nX2NfdGhyZXNoKX1dfSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKGNvdXBsaW5nX2NfdGhyZXNoKVxuIgotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgInNldF9kYiBleHRyYWN0X3JjX2NvdXBsaW5nX2NhcF90aHJlc2hvbGQgJGFyZ1xuIgotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKGNvdXBsaW5nX2NfdGhyZXNoKVxuIgotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgeyFbY2F0Y2gge3NldCBhcmcgJHZhcnMocXJjX2xheWVyX21hcCl9XX0gewotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhxcmNfbGF5ZXJfbWFwKVxuIgotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgInNldF9kYiBleHRyYWN0X3JjX2xlZl90ZWNoX2ZpbGVfbWFwICRhcmdcbiIKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhxcmNfbGF5ZXJfbWFwKVxuIgotICAgICAgICAgICAgfQotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIlxuIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kIHBvc3Ryb3V0ZV9zaV9ob2xkLHNldF9leHRyYWN0X3JjX21vZGUgJGNvbW1hbmRdCi0KLSAgICAgICAgICAgIHNldCBhcmdzICIiCi0gICAgICAgICAgICBpZiB7IVtjYXRjaCB7c2V0IGFyZyAkdmFycyhkZWx0YV9kZWxheV90aHJlc2hvbGQpfV19IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMoZGVsdGFfZGVsYXlfdGhyZXNob2xkKVxuIgotICAgICAgICAgICAgICAgYXBwZW5kIGFyZ3MgInNldF9kYiBzaV9kZWxheV9kZWx0YV90aHJlc2hvbGQgJGFyZ1xuIgotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKGRlbHRhX2RlbGF5X3RocmVzaG9sZClcbiIKLSAgICAgICAgICAgIH0KLSMgICAgICAgICAgICBpZiB7IVtjYXRjaCB7c2V0IGFyZyAkdmFycyhjZWx0aWNfc2V0dGluZ3MpfV19IHsKLSMgICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKGNlbHRpY19zZXR0aW5ncylcbiIKLSMgICAgICAgICAgICAgICBhcHBlbmQgYXJncyAiIC1pbnNDZWx0SUNQcmVUY2wgXCIkYXJnXCIiCi0jICAgICAgICAgICAgfSBlbHNlIHsKLSMgICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhjZWx0aWNfc2V0dGluZ3MpXG4iCi0jICAgICAgICAgICAgfQotIyAgICAgICAgICAgIGlmIHshW2NhdGNoIHtzZXQgYXJnICR2YXJzKHNpX2FuYWx5c2lzX3R5cGUpfV19IHsKLSMgICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKHNpX2FuYWx5c2lzX3R5cGUpXG4iCi0jICAgICAgICAgICAgICAgYXBwZW5kIGFyZ3MgIiAtYW5hbHlzaXNUeXBlICRhcmciCi0jICAgICAgICAgICAgfSBlbHNlIHsKLSMgICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhzaV9hbmFseXNpc190eXBlKVxuIgotIyAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIHskdmFycyhoaWdoX3RpbWluZ19lZmZvcnQpICYmIFtyZWdleHAgIjkuMSIgJHZhcnModmVyc2lvbildfSB7Ci0jICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhoaWdoX3RpbWluZ19lZmZvcnQpXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgYXJncyAic2V0X2RiIHNpX2FjY2VwdGFibGVfd25zIDBcbiIKLSAgICAgICAgICAgIH0gZWxzZWlmIHtbaW5mbyBleGlzdHMgdmFycyhhY2NlcHRhYmxlX3ducyldfSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgYXJncyAic2V0X2RiIHNpX2FjY2VwdGFibGVfd25zICR2YXJzKGFjY2VwdGFibGVfd25zKVxuIgotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgeyRhcmdzICE9ICIifSB7Ci0gICAgICAgICAgICAgICBzZXQgY29tbWFuZCAic2V0U0lNb2RlICRhcmdzXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgcG9zdHJvdXRlX3NpX2hvbGQsc2V0X3NpX21vZGUgJGNvbW1hbmRdCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiB7JHZhcnMoZW5hYmxlX3NzKSA9PSAicHJlX3Bvc3Ryb3V0ZV9zaSJ9IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMoZW5hYmxlX3NzKVxuIgotICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgInNldERlbGF5Q2FsTW9kZSAtZW5naW5lIHNpZ25hbFN0b3JtXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgcG9zdHJvdXRlX3NpX2hvbGQsc2V0X2RlbGF5X2NhbF9tb2RlICRjb21tYW5kXQotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKGVuYWJsZV9zcykgXCJwcmVfcG9zdHJvdXRlX3NpXCJcbiIKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIHskdmFycyhlbmFibGVfb2N2KSA9PSAicHJlX3Bvc3Ryb3V0ZV9zaSJ9ICB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKGVuYWJsZV9vY3YpXG4iCi0gICAgICAgICAgICAgICBpZiB7JHZhcnMoZmxvdykgIT0gImRlZmF1bHQifSB7Ci0gICAgICAgICAgICAgICAgICBzZXQgY29tbWFuZCAic2V0X2RiIHRpbWluZ19hbmFseXNpc190eXBlIG9jdlxuIgotICAgICAgICAgICAgICAgICAgaWYgeyR2YXJzKGVuYWJsZV9hb2N2KX0gewotICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhlbmFibGVfYW9jdilcbiIKLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICItYW9jdiB0cnVlICIKLSAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhlbmFibGVfYW9jdilcbiIKLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCBwb3N0cm91dGVfc2lfaG9sZCxzZXRfYW5hbHlzaXNfbW9kZSAkY29tbWFuZF0KLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhlbmFibGVfb2N2KSBcInByZV9wb3N0cm91dGVfc2lcIlxuIgotICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMoZW5hYmxlX29jdikgXCJ0cnVlXCJcbiIKLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0KLQotICAgICAgICAgInNpZ25vZmYiIHsKLSAgICAgICAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICAgICAgICMgRm9yIHRoZSBkZWZhdWx0IGZsb3csIHN3aXRjaCB0byBNTU1DIGZvciBmaW5hbCBTVEEgdG8gc3VwcG9ydAotICAgICAgICAgICAgIyBtdWx0aXBsZSBSQyBjb3JuZXJzLiAgQWxzbywgZW5hYmxlIENDRSAoc2lnbm9mZikgZXh0cmFjdGlvbiBpZgotICAgICAgICAgICAgIyB0aGUgUVJDIHRlY2hmaWxlIGV4aXN0cwotICAgICAgICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgICAgICAgaWYgeyR2YXJzKGZsb3cpID09ICJkZWZhdWx0In0gewotICAgICAgICAgICAgICAgaWYgeyR2YXJzKHZlcmJvc2UpfSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiNcbiIKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyA8RkY+IFVQREFUSU5HIFRJTUlORyBFTlZJUk9OTUVOVCIKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiI1xuIgotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgW0ZGX05PVlVTOjppbml0aWFsaXplX3RpbWluZyBtbW1jXQotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kIHNpZ25vZmYsaW5pdGlhbGl6ZV90aW1pbmcgJGNvbW1hbmRdCi0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICAgICAgICMgU2V0IG5vaXNlLCBleHRyYWN0aW9uLCBhbmQgU0kgb3B0aW9ucyAuLi4KLSAgICAgICAgICAgICMgRW5hYmxlIHNpZ25hbFN0b3JtIGlmIHJlcXVlc3RlZAotICAgICAgICAgICAgIyBFbmFibGUgb25DaGlwVmFyaWF0aW9uIChpZiBNTU1DKQotICAgICAgICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCi0gICAgICAgICAgICBzZXQgY29tbWFuZCAic2V0X2RiIGV4dHJhY3RfcmNfY291cGxlZCB0cnVlXG4iCi0gICAgICAgICAgICBpZiB7IVtjYXRjaCB7c2V0IGFyZyAkdmFycyh0b3RhbF9jX3RocmVzaCl9XX0gewotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyh0b3RhbF9jX3RocmVzaClcbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJzZXRfZGIgZXh0cmFjdF9yY190b3RhbF9jYXBfdGhyZXNob2xkICRhcmdcbiIKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyh0b3RhbF9jX3RocmVzaClcbiIKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIHshW2NhdGNoIHtzZXQgYXJnICR2YXJzKHJlbGF0aXZlX2NfdGhyZXNoKX1dfSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKHJlbGF0aXZlX2NfdGhyZXNoKVxuIgotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgInNldF9kYiBleHRyYWN0X3JjX3JlbGF0aXZlX2NhcF90aHJlc2hvbGQgJGFyZ1xuIgotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKHJlbGF0aXZlX2NfdGhyZXNoKVxuIgotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgeyFbY2F0Y2gge3NldCBhcmcgJHZhcnMoY291cGxpbmdfY190aHJlc2gpfV19IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMoY291cGxpbmdfY190aHJlc2gpXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAic2V0X2RiIGV4dHJhY3RfcmNfY291cGxpbmdfY2FwX3RocmVzaG9sZCAkYXJnXG4iCi0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMoY291cGxpbmdfY190aHJlc2gpXG4iCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiB7IVtjYXRjaCB7c2V0IGFyZyAkdmFycyhxcmNfbGF5ZXJfbWFwKX1dfSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKHFyY19sYXllcl9tYXApXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAic2V0X2RiIGV4dHJhY3RfcmNfbGVmX3RlY2hfZmlsZV9tYXAgJGFyZ1xuIgotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKHFyY19sYXllcl9tYXApXG4iCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiXG4iCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgc2lnbm9mZixzZXRfZXh0cmFjdF9yY19tb2RlICRjb21tYW5kXQotCi0gICAgICAgICAgICBzZXQgYXJncyAiIgotICAgICAgICAgICAgaWYgeyFbY2F0Y2gge3NldCBhcmcgJHZhcnMoZGVsdGFfZGVsYXlfdGhyZXNob2xkKX1dfSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKGRlbHRhX2RlbGF5X3RocmVzaG9sZClcbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBhcmdzICJzZXRfZGIgc2lfZGVsYXlfZGVsdGFfdGhyZXNob2xkICRhcmciCi0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMoZGVsdGFfZGVsYXlfdGhyZXNob2xkKVxuIgotICAgICAgICAgICAgfQotIyAgICAgICAgICAgIGlmIHshW2NhdGNoIHtzZXQgYXJnICR2YXJzKGNlbHRpY19zZXR0aW5ncyl9XX0gewotIyAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMoY2VsdGljX3NldHRpbmdzKVxuIgotIyAgICAgICAgICAgICAgIGFwcGVuZCBhcmdzICIgLWluc0NlbHRJQ1ByZVRjbCBcIiRhcmdcIiIKLSMgICAgICAgICAgICB9IGVsc2UgewotIyAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKGNlbHRpY19zZXR0aW5ncylcbiIKLSMgICAgICAgICAgICB9Ci0jICAgICAgICAgICAgaWYgeyFbY2F0Y2gge3NldCBhcmcgJHZhcnMoc2lfYW5hbHlzaXNfdHlwZSl9XX0gewotIyAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMoc2lfYW5hbHlzaXNfdHlwZSlcbiIKLSMgICAgICAgICAgICAgICBhcHBlbmQgYXJncyAiIC1hbmFseXNpc1R5cGUgJGFyZyIKLSMgICAgICAgICAgICB9IGVsc2UgewotIyAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKHNpX2FuYWx5c2lzX3R5cGUpXG4iCi0jICAgICAgICAgICAgfQotICAgICAgICAgICAgc2V0IGFyZ3MgIiIKLSAgICAgICAgICAgIGlmIHskdmFycyhlbmFibGVfb2N2KSAhPSAiZmFsc2UifSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKGVuYWJsZV9vY3YpXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgYXJncyAic2V0X2RiIHRpbWluZ19hbmFseXNpc190eXBlIG9jdlxuIgotICAgICAgICAgICAgICAgaWYgeyR2YXJzKGVuYWJsZV9hb2N2KX0gewotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhlbmFibGVfYW9jdilcbiIKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBhcmdzICJzZXRfZGIgdGltaW5nX2FuYWx5c2lzX2FvY3YgdHJ1ZVxuIgotICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKGVuYWJsZV9hb2N2KVxuIgotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgaWYgeyR2YXJzKGVuYWJsZV9zb2N2KX0gewotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhlbmFibGVfc29jdilcbiIKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBhcmdzICJzZXRfZGIgdGltaW5nX2FuYWx5c2lzX3NvY3YgdHJ1ZVxuIgotICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKGVuYWJsZV9zb2N2KVxuIgotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKGVuYWJsZV9vY3YpIFwicHJlX3NpZ25vZmZcIlxuIgotICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMoZW5hYmxlX2FvY3YpIFwidHJ1ZVwiXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhlbmFibGVfc29jdikgXCJ0cnVlXCJcbiIKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIHskdmFycyhlbmFibGVfY3BwcikgIT0gImZhbHNlIn0gewotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhlbmFibGVfY3BwcilcbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBhcmdzICJzZXRfZGIgdGltaW5nX2FuYWx5c2lzX2NwcHIgJHZhcnMoZW5hYmxlX2NwcHIpXG4iCi0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMoZW5hYmxlX2NwcHIpXG4iCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiB7JGFyZ3MgIT0gIiJ9IHsKLSAgICAgICAgICAgICAgIHNldCBjb21tYW5kICIkYXJnc1xuIgotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kIHNpZ25vZmYsc2V0X2FuYWx5c2lzX21vZGUgJGNvbW1hbmRdCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiB7W3JlZ2V4cCAiOS4xIiAkdmFycyh2ZXJzaW9uKV19IHsKLSAgICAgICAgICAgICAgIGlmIHskdmFycyhlbmFibGVfc3MpID09ICJwcmVfc2lnbm9mZiJ9IHsKLSAgICAgICAgICAgICAgICAgIHNldCBjb21tYW5kICJzZXREZWxheUNhbE1vZGUgLWVuZ2luZSBzaWduYWxTdG9ybSAtc2lnbm9mZiB0cnVlXG4iCi0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgc2lnbm9mZixzZXRfZGVsYXlfY2FsX21vZGUgJGNvbW1hbmRdCi0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKGVuYWJsZV9zcylcbiIKLSAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhlbmFibGVfc3MpIFwicHJlX3NpZ25vZmZcIlxuIgotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfSBlbHNlIHsKLSMgICAgICAgICAgICAgICBpZiB7JHZhcnMoZW5hYmxlX3NpX2F3YXJlKX0gewotIyAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMoZW5hYmxlX3NpX2F3YXJlKVxuIgotIyAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICItc2lBd2FyZSB0cnVlIC1lbmdpbmUgYWFlXG4gIgotICAgICAgICAgICAgICAgICAgaWYgeyR2YXJzKGVuYWJsZV9zcykgPT0gInByZV9zaWdub2ZmIn0gewotICAgICAgICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgInNldERlbGF5Q2FsTW9kZSAtZW5naW5lIHNpZ25hbFN0b3JtIC1zaWdub2ZmIHRydWVcbiIKLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCBzaWdub2ZmLHNldF9kZWxheV9jYWxfbW9kZSAkY29tbWFuZF0KLSMgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIjxGRj4gVmFyaWFibGUgdmFycyhlbmFibGVfc3MpIGlnbm9yZWQgd2hlbiB2YXJzKGVuYWJsZV9zaV9hd2FyZSkgaXMgc2V0XG4iCi0jICAgICAgICAgICAgICAgICAgICAgc2V0IHdhcm5pbmdzKCR2YXJzKHdhcm5pbmdfY291bnQpKSAiVmFyaWFibGUgdmFycyhlbmFibGVfc3MpIGlnbm9yZWQgd2hlbiB2YXJzKGVuYWJsZV9zaV9hd2FyZSkgaXMgc2V0XG4iCi0jICAgICAgICAgICAgICAgICAgICAgaW5jciB2YXJzKHdhcm5pbmdfY291bnQpCi0gICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMoZW5hYmxlX3NzKSBcInByZV9zaWdub2ZmXCJcbiIKLSAgICAgICAgICAgICAgICAgIH0KLSMgICAgICAgICAgICAgICB9IGVsc2UgewotIyAgICAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKGVuYWJsZV9zaV9hd2FyZSlcbiIKLSMgICAgICAgICAgICAgICAgICBpZiB7JHZhcnMoZW5hYmxlX3NzKSA9PSAicHJlX3NpZ25vZmYifSB7Ci0jICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhlbmFibGVfc3MpXG4iCi0jICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIi1lbmdpbmUgc2lnbmFsU3Rvcm0gLXNpZ25vZmYgdHJ1ZSAiCi0jICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSMgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhlbmFibGVfc3MpIFwicHJlX3NpZ25vZmZcIlxuIgotIyAgICAgICAgICAgICAgICAgIH0KLSMgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGlmIHskdmFycyhza2lwX3NpZ25vZmZfY2hlY2tzKX0gewotICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgInNldF9kYiBleHRyYWN0X3JjX2VuZ2luZSBwb3N0X3JvdXRlXG5zZXRfZGIgZXh0cmFjdF9yY19lZmZvcnRfbGV2ZWwgJHZhcnMoc2lnbm9mZl9leHRyYWN0aW9uX2VmZm9ydClcbnNldF9kYiBleHRyYWN0X3JjX2NvdXBsZWQgdHJ1ZVxuIgotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kIHNpZ25vZmYsc2V0X2V4dHJhY3RfcmNfbW9kZSAkY29tbWFuZF0KLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgInNldCB2YXJzKGFjdGl2ZV9yY19jb3JuZXJzKSBcW2xpc3RcXVxuIgotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJmb3JlYWNoIHZpZXcgXFthbGxfYW5hbHlzaXNfdmlld3NcXSB7XG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiAgIHNldCBjb3JuZXIgXFtnZXRfZGVsYXlfY29ybmVyIFxbZ2V0X2FuYWx5c2lzX3ZpZXcgXCR2aWV3IC1kZWxheV9jb3JuZXJcXSAtcmNfY29ybmVyXF1cbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiICAgaWYge1xbbHNlYXJjaCBcJHZhcnMoYWN0aXZlX3JjX2Nvcm5lcnMpIFwkY29ybmVyXF0gPT0gLTEgfSB7XG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiAgICAgIGxhcHBlbmQgdmFycyhhY3RpdmVfcmNfY29ybmVycykgXCRjb3JuZXJcbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiICAgfVxuIgotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJ9XG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgInB1dHMgXCI8RkY+IEFDVElWRSBSQyBDT1JORVIgTElTVDogXCR2YXJzKGFjdGl2ZV9yY19jb3JuZXJzKVwiXG4iCi0gICAKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAic2V0IGVtcHR5X2Nvcm5lcnMgXFtsaXN0XF1cbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiZm9yZWFjaCBjb3JuZXIgXCR2YXJzKGFjdGl2ZV9yY19jb3JuZXJzKSB7XG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiAgIGlmIHshXFtmaWxlIGV4aXN0cyBcW2dldF9yY19jb3JuZXIgXCRjb3JuZXIgLXFyY190ZWNoXF1cXX0ge1xuIgotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIgICAgICBsYXBwZW5kIGVtcHR5X2Nvcm5lcnMgXCRjb3JuZXJcbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiICAgfVxuIgotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJ9XG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgImlmIHtcW2xsZW5ndGggXCRlbXB0eV9jb3JuZXJzXF0gPT0gMH0ge1xuIgotICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgIiAgIHNldF9kYiBleHRyYWN0X3JjX2VuZ2luZSBwb3N0X3JvdXRlXG4gICBzZXRfZGIgZXh0cmFjdF9yY19lZmZvcnRfbGV2ZWwgJHZhcnMoc2lnbm9mZl9leHRyYWN0aW9uX2VmZm9ydClcbiAgIHNldF9kYiBleHRyYWN0X3JjX2NvdXBsZWQgdHJ1ZVxuIgotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kIHNpZ25vZmYsc2V0X2V4dHJhY3RfcmNfbW9kZSAkY29tbWFuZF0KLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAifSBlbHNlIHtcbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiICAgICAgcHV0cyBcIjxGRj4gQ0FOJ1QgUlVOIFNJR05PRkYgRVhUUkFDVElPTiBCRUNBVVNFIHF4X3RlY2hfZmlsZSBJUyBOT1QgREVGSU5FRCBGT1IgdGhlc2UgY29ybmVyczogXCRlbXB0eV9jb3JuZXJzXCJcbiIKLSAgICAgICAgICAgICAgIHNldCBjb21tYW5kICIgICBzZXRfZGIgZXh0cmFjdF9yY19lbmdpbmUgcG9zdF9yb3V0ZVxuICAgc2V0X2RiIGV4dHJhY3RfcmNfZWZmb3J0X2xldmVsIGxvd1xuICAgc2V0X2RiIGV4dHJhY3RfcmNfY291cGxlZCB0cnVlXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgc2lnbm9mZixzZXRfZXh0cmFjdF9yY19tb2RlICRjb21tYW5kXQotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJ9XG4iCi0gICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0gICAgICB9Ci0gICAgICBpZiB7W2luZm8gZXhpc3RzIHVjb21tZW50c119IHsKLSAgICAgICAgIGlmIHskdWNvbW1lbnRzID09ICIifSB7Ci0gICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnModWNvbW1lbnRzKV19IHsKLSAgICAgICAgICAgICAgIHVuc2V0IHZhcnModWNvbW1lbnRzKQotICAgICAgICAgICAgfQotICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHNldCB2YXJzKHVjb21tZW50cykgJHVjb21tZW50cwotICAgICAgICAgfQotICAgICAgfQotICAgICAgaWYge1tpbmZvIGV4aXN0cyBjb21tZW50c119IHsKLSAgICAgICAgIGlmIHskY29tbWVudHMgPT0gIiJ9IHsKLSAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhjb21tZW50cyldfSB7Ci0gICAgICAgICAgICAgICB1bnNldCB2YXJzKGNvbW1lbnRzKQotICAgICAgICAgICAgfQotICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHNldCB2YXJzKGNvbW1lbnRzKSAkY29tbWVudHMgCi0gICAgICAgICB9Ci0gICAgICB9Ci0gICAgICByZXR1cm4gJGNvbW1hbmRzCi0gICB9Ci0KLSAgIHByb2Mgc2F2ZV9yZXN1bHRzIHt7c3RlcCAiIn0ge2Zvcm1hdCAwfX0gewotCi0gICAgICBnbG9iYWwgdmFycwotICAgICAgZ2xvYmFsIGVycm9ycwotICAgICAgZ2xvYmFsIGVudgotCi0gICAgICBpZiB7W3JlZ2V4cCBzeW5fICRzdGVwXX0gewotICAgICAgICAgc2V0IGNvbW1hbmRzICIiCi0gICAgICAgICBpZiB7JHZhcnMocmVwb3J0X3J1bl90aW1lKX0gewotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJmZl9wcm9jczo6cmVwb3J0X3RpbWVcbiIKLSAgICAgICAgIH0KLSAgICAgICAgIHJldHVybiAkY29tbWFuZHMKLSAgICAgIH0KLQotICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGhpZXIpXX0gewotICAgICAgICAgc2V0IGhpZXIgdHJ1ZQotICAgICAgfSBlbHNlIHsKLSAgICAgICAgIHNldCBoaWVyIGZhbHNlCi0gICAgICB9Ci0gICAgICBpZiB7JHN0ZXAgIT0gIiJ9IHsKLSAgICAgICAgIHNldCB2YXJzKHN0ZXApICRzdGVwCi0gICAgICB9Ci0KLSAgICAgIGlmIHskdmFycyhkZWJ1Zyl9IHsKLSAgICAgICAgIHB1dHMgIjxERUJVRz4gU2F2aW5nIHJlc3VsdHMgZm9yICR2YXJzKHN0ZXApIC4uLiIKLSAgICAgIH0KLQotICAgICAgc2V0IGNvbW1hbmRzICIiCi0gICAgICBpZiB7JHZhcnMoYmF0Y2gpfSB7Ci0KLSAgICAgICAgIGlmIHskdmFycyh2ZXJib3NlKX0gewotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjXG4iCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgU0FWSU5HIFJFU1VMVFNcbiIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiI1xuIgotICAgICAgICAgfQotCi0jICAgICAgICAgaWYge1tyZWdleHAgX2hvbGQgJHZhcnMoc3RlcCldICYmICghW2xzZWFyY2ggJHZhcnMoZml4X2hvbGQpICR2YXJzKHN0ZXApXSA8MCl9IHsKLSMgICAKLSMgICAgICAgICAgICBpZiB7ISRmb3JtYXR9IHsKLSMgICAgICAgICAgICAgICBzZXQgY29tbWFuZHMgIiIKLSMgICAgICAgICAgICB9IGVsc2UgewotIyAgICAgICAgICAgICAgIGlmIHskdmFycyhyZXBvcnRfcnVuX3RpbWUpfSB7Ci0jICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJGRl9OT1ZVUzo6cmVwb3J0X3RpbWUgJHZhcnMoc3RlcClcbiIKLSMgICAgICAgICAgICAgICB9Ci0jICAgICAgICAgICAgfQotIyAgICAgICAgICAgIGlmIHskdmFycyhjb2RlZ2VuKX0gewotIyAgICAgICAgICAgICAgIHJldHVybiAkY29tbWFuZHMKLSMgICAgICAgICAgICB9IGVsc2UgewotIyAgICAgICAgICAgICAgICB1cGxldmVsICMwIGV2YWwgJGNvbW1hbmRzCi0jICAgICAgICAgICAgfQotIyAgICAgICAgIH0gCi0KLSAgICAgICAgIHNldCBoZWFkZXIgIiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiIKLSAgICAgICAgIGFwcGVuZCBoZWFkZXIgIiMgPEZGPiBHRU5FUkFUSU5HIFJFUE9SVFNcbiIKLSAgICAgICAgIGFwcGVuZCBoZWFkZXIgIiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiIKLSAgIAotICAgICAgICAgaWYgeyR2YXJzKHJlcG9ydF9wb3dlcil9IHsKLSAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhwb3dlcl9hbmFseXNpc192aWV3KV0gJiYgKCR2YXJzKHBvd2VyX2FuYWx5c2lzX3ZpZXcpICE9ICIiKX0gewotICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgInJlcG9ydF9wb3dlciAtdmlldyAkdmFycyhwb3dlcl9hbmFseXNpc192aWV3KSAtb3V0X2ZpbGUgJHZhcnMocnB0X2RpcikvJHZhcnMoc3RlcCkucG93ZXIucnB0XG4iCi0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgInJlcG9ydF9wb3dlciAtb3V0X2ZpbGUgJHZhcnMocnB0X2RpcikvJHZhcnMoc3RlcCkucG93ZXIucnB0XG4iCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCkscmVwb3J0X3Bvd2VyICRjb21tYW5kXQotICAgICAgICAgfQotICAgCi0gICAgICAgICBpZiB7W0ZGOjppc19scF9mbG93XSAmJiBbaW5mbyBleGlzdHMgdmFycyhwb3dlcl9kb21haW5zKV0gJiYgW2xsZW5ndGggJHZhcnMocG93ZXJfZG9tYWlucyldID4gMX0gewotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICRoZWFkZXIKLSAgICAgICAgICAgIHNldCBoZWFkZXIgIiIKLSAgIAotICAgICAgICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgICAgICAgIyBWZXJpZnkgcG93ZXIgZG9tYWluCi0gICAgICAgICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAKLSMgICAgICAgICAgICBzZXQgY29tbWFuZCAiY2hlY2tfcG93ZXJfZG9tYWlucyAtYmluZCAtZ2Nvbm4iCi0jICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAtaXNvX25ldF9wZCAkdmFycyhycHRfZGlyKS8kdmFycyhzdGVwKS5pc29uZXRzLnJwdCIKLSMgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiIC14X25ldF9wZCAkdmFycyhycHRfZGlyKS8kdmFycyhzdGVwKS54bmV0cy5ycHRcbiIKLQotIyAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkc3RlcCxjaGVja19wb3dlcl9kb21haW4gJGNvbW1hbmRdCi0gICAKLSAgICAgICAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICAgICAgICMgUnVuIENMUAotICAgICAgICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgCi0gICAgICAgICAgICBpZiB7JHZhcnMocnVuX2NscCkgJiYgKFthdXRvX2V4ZWNvayBsZWNdICE9ICIiKX0gewotICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgInJ1bl9jbHAgIgotICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGNscF9vcHRpb25zKV19IHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICR2YXJzKGNscF9vcHRpb25zKQotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIlxuIgotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICRzdGVwLHJ1bl9jbHAgJGNvbW1hbmRdCi0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycyhjbHBfd2FybmluZyldfSB7Ci0gICAgICAgICAgICAgICAgICBwdXRzICI8RkY+IFdBUk5JTkc6IFVOQUJMRSBUTyBSVU4gQ0xQIC4uLiBQTEVBU0UgTUFLRSBTVVJFIElUIElTIElOIFlPVVIgUEFUSCIKLSAgICAgICAgICAgICAgICAgIHNldCB2YXJzKGNscF93YXJuaW5nKSB0cnVlCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0KLSAgICAgICAgIHNldCBtYXAoaW5pdCkgdW5wbGFjZWQKLSAgICAgICAgIHNldCBtYXAocGxhY2UpIHBsYWNlZAotICAgICAgICAgc2V0IG1hcChwYXJ0aXRpb25fcGxhY2UpIHBsYWNlZAotICAgICAgICAgc2V0IG1hcChtb2RlbF9nZW4pIHBsYWNlZAotICAgICAgICAgc2V0IG1hcChhc3NpZ25fcGluKSBwbGFjZWQKLSAgICAgICAgICNzZXQgbWFwKHBhcnRpdGlvbikge30KLSAgICAgICAgIHNldCBtYXAocHJlY3RzKSBwbGFjZWQKLSAgICAgICAgIHNldCBtYXAoY3RzKSBjbG9ja19zeW50aGVzaXplZAotICAgICAgICAgc2V0IG1hcChwb3N0Y3RzKSBjbG9ja19zeW50aGVzaXplZAotICAgICAgICAgc2V0IG1hcChwb3N0Y3RzX2hvbGQpIGNsb2NrX3N5bnRoZXNpemVkCi0gICAgICAgICBzZXQgbWFwKHJvdXRlKSBjbG9ja19zeW50aGVzaXplZF9yb3V0ZWQKLSAgICAgICAgIHNldCBtYXAocG9zdHJvdXRlKSBjbG9ja19zeW50aGVzaXplZF9yb3V0ZWQKLSAgICAgICAgIHNldCBtYXAocG9zdHJvdXRlX2hvbGQpIGNsb2NrX3N5bnRoZXNpemVkX3JvdXRlZAotICAgICAgICAgc2V0IG1hcChzaWdub2ZmKSBjbG9ja19zeW50aGVzaXplZF9yb3V0ZWQKLSAgICAgICAgIHNldCBtYXAoYXNzZW1ibGUpIHBsYWNlZF9yb3V0ZWQKLQotICAgICAgICAgaWYgeyR2YXJzKGNhcHR1cmVfbWV0cmljcykgJiYgKCR2YXJzKHN0ZXApICE9ICJkZWJ1ZyIpfSB7Ci0gICAgICAgICAgICBpZiB7W2xpbmRleCBbc3BsaXQgJHZhcnModmVyc2lvbikgIi4iXSAgMF0gPiAxM30gewotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJwb3Bfc25hcHNob3Rfc3RhY2tcbiIKLSAgICAgICAgICAgICAgIGlmIHtbbGluZGV4IFtzcGxpdCAkdmFycyh2ZXJzaW9uKSAiLiJdICAwXSA+IDE2fSB7Ci0gICAgICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIG1hcCgkc3RlcCldfSB7Ci0gICAgICAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhjb21wdXRlX21ldHJpY3MpXSAmJiAkdmFycyhjb21wdXRlX21ldHJpY3MpfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJjcmVhdGVfc25hcHNob3QgLW5hbWUgJHZhcnMoc3RlcCkgLWNhdGVnb3JpZXMgXFtkaWN0IGdldCBcW2dldF9kYiBtZXRyaWNfY2F0ZWdvcnlfc3RhdHVzX21hcFxdICRtYXAoJHN0ZXApXF1cbiIKLSAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgImNyZWF0ZV9zbmFwc2hvdCAtbmFtZSAkdmFycyhzdGVwKSAtY2F0ZWdvcmllcyBkZXNpZ25cbiIKLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJjcmVhdGVfc25hcHNob3QgLW5hbWUgJHZhcnMoc3RlcCkgLWNhdGVnb3JpZXMgZGVzaWduXG4iCi0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJjcmVhdGVfc25hcHNob3QgLW5hbWUgJHZhcnMoc3RlcCkgLWNhdGVnb3JpZXMgZGVzaWduXG4iCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgInJlcG9ydF9tZXRyaWMgLWZpbGUgJHZhcnMocnB0X2RpcikvbWV0cmljcy5odG1sIC1mb3JtYXQgaHRtbFxuIgotICAgICAgICAgICAgfQotICAgICAgICAgfQotICAgCi0gICAgICAgICBpZiB7KCRzdGVwICE9ICJwYXJ0aXRpb24iKSAmJiAoJHN0ZXAgIT0gInJlYnVkZ2V0IikgJiYgKCRzdGVwICE9ICJmbGV4aWxtIil9IHsKLSAgICAgICAgICAgIHNldCBhcmdzICIiCi0gICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoc2F2ZV9yYyldICYmICR2YXJzKHNhdmVfcmMpfSB7Ci0gICAgICAgICAgICAgICBpZiB7W3JlZ2V4cCAicm91dGUiICR2YXJzKHN0ZXApXX0gewotICAgICAgICAgICAgICAgICAgYXBwZW5kIGFyZ3MgIiAtcmMiCi0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKHNhdmVfY29uc3RyYWludHMpXSAmJiAkdmFycyhzYXZlX2NvbnN0cmFpbnRzKX0gewotICAgICAgICAgICAgICAgYXBwZW5kIGFyZ3MgIiAtdGNvbiIKLSAgICAgICAgICAgIH0KLSAgICAgCi0gICAgICAgICAgICAjIEJDTDogQWRkZWQgc3Vic3QgYXJvdW5kIHZhcnMoZGJzX2RpcikgdG8gcmVzb2x2ZSB2YXJzKHJ1bmRpcikKLSAgICAgICAgICAgIHNldCBkaXIgW3N1YnN0ICR2YXJzKGRic19kaXIpXQotICAgICAgICAgICAgc2V0IGRlc2lnbiAkdmFycyhkZXNpZ24pCi0gICAgICAgICAgICBpZiB7W3N0cmluZyBjb21wYXJlIC1ub2Nhc2UgJHZhcnMoZGJzX2Zvcm1hdCkgIm9hIl09PTB9IHsKLSAgICAgICAgICAgICAgIGlmIHtbbGluZGV4IFtzcGxpdCAkdmFycyh2ZXJzaW9uKSAiLiJdICAwXSA+IDEwfSB7Ci0gICAgICAgICAgICAgICAgICBpZiB7JGhpZXJ9IHsKLSAgICAgICAgICAgICAgICAgICAgIHNldCBjb21tYW5kICJ3cml0ZV9kYiAkYXJncyAtb2FfbGliX2NlbGxfdmlldyB7JHZhcnMob2FfcGFydGl0aW9uX2xpYikgJHZhcnMoZGVzaWduKSAkdmFycyhzdGVwKX1cbiIKLSAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICBzZXQgY29tbWFuZCAid3JpdGVfZGIgJGFyZ3MgLW9hX2xpYl9jZWxsX3ZpZXcgeyR2YXJzKG9hX2Rlc2lnbl9saWIpICR2YXJzKGRlc2lnbikgJHZhcnMoc3RlcCl9XG4iCi0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICB9IAotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhyZWxhdGl2ZV9wYXRoKV0gJiYgJHZhcnMocmVsYXRpdmVfcGF0aCl9IHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBhcmdzICIgLXJlbGF0aXZlX3BhdGgiCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoYWJzb2x1dGVfbGliX3BhdGgpXSAmJiAkdmFycyhhYnNvbHV0ZV9saWJfcGF0aCl9IHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBhcmdzICIgLWFic29sdXRlX2xpYl9wYXRoIgotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgIndyaXRlX2RiICRhcmdzICRkaXIvJHZhcnMoc3RlcCkuZW5jXG4iCi0gICAgICAgICAgICB9Ci0gICAKLSAgICAgICAgICAgIGlmIHshKCgkdmFycyhzdGVwKSA9PSAibW9kZWxfZ2VuIikgJiYgJHZhcnModXNlX2ZsZXhtb2RlbHMpICYmICR2YXJzKGZsZXhtb2RlbF9hcnRfYmFzZWQpKX0gewotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICRzdGVwLHNhdmVfZGVzaWduICRjb21tYW5kXQotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICRzdGVwLHNhdmVfbGVjX25ldGxpc3QgIndyaXRlX25ldGxpc3QgJHZhcnMoZGJzX2RpcikvTEVDLyRzdGVwLnYuZ3pcbiJdCi0gICAgICAgICAgICB9Ci0gICAKLSAgICAgICAgIH0KLQotICAgICAgICAgaWYgeyFbaW5mbyBleGlzdHMgZW52KFZQQVRIKV19IHsKLSAgICAgICAgICAgIHNldCBlbnYoVlBBVEgpICJtYWtlIgotICAgICAgICAgfQotCi0gICAgICAgICBpZiB7ISR2YXJzKGdlbmVyYXRlX2Zsb3dfc3RlcHMpfSB7Ci0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgImlmIHtcW2luZm8gZXhpc3RzIGVudihWUEFUSClcXX0geyIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiZXhlYyAvYmluL3RvdWNoIFwkZW52KFZQQVRIKS8kdmFycyhzdGVwKSIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAifVxuIgotICAgICAgICAgfQotICAgCi0jICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjXG4iCi0jICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjIEhPVVNFS0VFUElOR1xuIgotIyAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiI1xuIgotICAgCi0gICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMobWFpbCx0byldfSB7Ci0gICAgICAgICAgICBzd2l0Y2ggJHZhcnMoc3RlcCkgewotICAgICAgICAgICAgICAgaW5pdCAgICAgeyBzZXQgc3VtbWFyeV9maWxlIHByZXBsYWNlLnN1bW1hcnkgfQotICAgICAgICAgICAgICAgYXNzZW1ibGUgeyBzZXQgc3VtbWFyeV9maWxlIHNpZ25vZmYuc3VtbWFyeSB9Ci0gICAgICAgICAgICAgICBkZWZhdWx0ICB7IHNldCBzdW1tYXJ5X2ZpbGUgJHZhcnMoc3RlcCkuc3VtbWFyeSB9Ci0gICAgICAgICAgICB9IAotICAgICAgICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycyhtYWlsLHN0ZXBzKV0gfHwgXAotICAgICAgICAgICAgICAgIChbaW5mbyBleGlzdHMgdmFycyhtYWlsLHN0ZXBzKV0gJiYgKFtsc2VhcmNoICR2YXJzKG1haWwsc3RlcHMpICR2YXJzKHN0ZXApXSAhPSAtMSkpfSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgInB1dHMgXCI8RkY+IE1BSUxJTkcgUkVTVUxUUyBUTyAkdmFycyhtYWlsLHRvKVwiXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgImlmIHtcW2ZpbGUgZXhpc3RzICR2YXJzKHJwdF9kaXIpLyRzdW1tYXJ5X2ZpbGVcXX0ge1xuIgotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIgICBleGVjIC9iaW4vbWFpbCAtcyBcIkZGOiAkdmFycyhkZXNpZ24pLCAkdmFycyhzdGVwKSBjb21wbGV0ZWQgKFxbcHdkXF0pXCIgPCAkdmFycyhycHRfZGlyKS8kc3VtbWFyeV9maWxlICR2YXJzKG1haWwsdG8pXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIn0gZWxzZWlmIHtcW2ZpbGUgZXhpc3RzICR2YXJzKHJwdF9kaXIpLyR7c3VtbWFyeV9maWxlfS5nelxdfSB7XG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiAgIGd1bnppcCAtYyAkdmFycyhycHRfZGlyKS8ke3N1bW1hcnlfZmlsZX0uZ3ogXHwgZXhlYyAvYmluL21haWwgLXMgXCJGRjogJHZhcnMoZGVzaWduKSwgJHZhcnMoc3RlcCkgY29tcGxldGVkIChcW3B3ZFxdKVwiICR2YXJzKG1haWwsdG8pXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIn0gZWxzZSB7XG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiAgIGV4ZWMgL2Jpbi9tYWlsIC1zIFwiRkY6ICR2YXJzKGRlc2lnbiksICR2YXJzKHN0ZXApIGNvbXBsZXRlZCAoXFtwd2RcXSlcIiA8IC9kZXYvbnVsbCAkdmFycyhtYWlsLHRvKVxuIgotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJ9XG4iCi0gICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0gICAKLSMgICAgICAgICBhcHBlbmQgY29tbWFuZHMgImV4ZWMgL2Jpbi90b3VjaCBcJGVudihWUEFUSCkvJHZhcnMoc3RlcClcbiIKLSAgIAotICAgICAgICAgaWYgeyRmb3JtYXR9IHsKLSAgICAgICAgICAgIGlmIHskdmFycyhyZXBvcnRfcnVuX3RpbWUpfSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgImZmX3Byb2NzOjpyZXBvcnRfdGltZVxuIgotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgeyR2YXJzKGNhcHR1cmVfbWV0cmljcyl9IHsKLSAgICAgICAgICAgICAgIGlmIHtbbGluZGV4IFtzcGxpdCAkdmFycyh2ZXJzaW9uKSAiLiJdICAwXSA8IDE0fSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW2V2YWwgRkY6OmNhcHR1cmVfbWV0cmljc10KLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0KLSAgIAotICAgICAgICAgaWYgeyR2YXJzKGVuYWJsZV9xb3JfY2hlY2spfSB7Ci0jICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCRzdGVwLHFvcl90Y2xdfSB7Ci0jICAgICAgICAgICAgICAgc2V0IHFvcl9maWxlICR2YXJzKCRzdGVwLHFvcl90Y2wpCi0jICAgICAgICAgICAgICAgaWYge1tmaWxlIGV4aXN0cyAkcW9yX2ZpbGVdfSB7Ci0jICAgICAgICAgICAgICAgICAgc2V0IHFvciBbY2F0Y2gge2V4ZWMgJHFvcl9maWxlfSBtc2ddCi0jICAgICAgICAgICAgICAgICAgc2V0IG1ha2VfZmlsZSBbb3BlbiAkdGhpc19zZW1hcGhvcmUgd10KLSMgICAgICAgICAgICAgICAgICBwdXRzICRtYWtlX2ZpbGUgIiRxb3IiCi0jICAgICAgICAgICAgICAgICAgY2xvc2UgJG1ha2VfZmlsZQotIyAgICAgICAgICAgICAgIH0KLSMgICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJHN0ZXAscW9yX3RjbCldfSB7Ci0gICAgICAgICAgICAgICBpZiB7W2ZpbGUgZXhpc3RzICR2YXJzKCRzdGVwLHFvcl90Y2wpXX0gewotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6c291cmNlX3BsdWcgJHtzdGVwfSxxb3JfdGNsXQotICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiPEZGPiBXQVJOSU5HOiBRT1IgZmlsZSAkdmFycygkc3RlcCxxb3JfdGNsKSBkb2VzIG5vdCBleGlzdCIKLSAgICAgICAgICAgICAgICAgIHNldCB3YXJuaW5ncygkd2FybmluZ19jb3VudCkgIldBUk5JTkc6IFFPUiBmaWxlICR2YXJzKCRzdGVwLHFvcl90Y2wpIGRvZXMgbm90IGV4aXN0IgotICAgICAgICAgICAgICAgICAgaW5jciB3YXJuaW5nX2NvdW50Ci0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgaWYgeyR2YXJzKG1ha2VmaWxlKSAmJiAhJHZhcnMoZ2VuZXJhdGVfZmxvd19zdGVwcyl9IHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiXG5pZiB7XFtpbmZvIGV4aXN0cyBlbnYoVlBBVEgpXF19IHtcbiIKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiICAgZXhlYyAvYmluL3RvdWNoIFwkZW52KFZQQVRIKS8ke3N0ZXB9X3FvclxuIgotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJ9XG4iCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjpzb3VyY2VfcGx1ZyBmaW5hbF9hbHdheXNfc291cmNlX3RjbF0KLQotICAgICAgfSBlbHNlIHsKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAicHV0cyBcIjxGRj4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVwiXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgInB1dHMgXCI8RkY+IElORk86IFJ1bm5pbmcgaW4gaW50ZXJhY3RpdmUgbW9kZSAuLi5cIlxuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJwdXRzIFwiPEZGPiAgICAgICBQbGVhc2UgcnVuICdGRl9OT1ZVUzo6c2F2ZV9yZXN1bHRzIDxjdXJyZW50X3N0ZXA+JyBcIlxuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJwdXRzIFwiPEZGPiAgICAgICB0byBwcmVwYXJlIGEgZGF0YWJhc2UgZm9yIHRoZSBuZXh0IHN0ZXBcIlxuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJwdXRzIFwiPEZGPiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XCJcbiIKLSAgICAgICAgIGlmIHskdmFycyhtYWtlZmlsZSkgJiYgISR2YXJzKGdlbmVyYXRlX2Zsb3dfc3RlcHMpfSB7IAotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJpZiB7XFtpbmZvIGV4aXN0cyBlbnYoVlBBVEgpXF19IHtcbiIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiZXhlYyAvYmluL3RvdWNoIFwkZW52KFZQQVRIKS8kdmFycyhzdGVwKVxuIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJ9XG4iCi0gICAgICAgICB9Ci0gICAgICB9Ci0KLSAgICAgIGlmIHskdmFycyhjb2RlZ2VuKX0gewotICAgICAgICAgcmV0dXJuICRjb21tYW5kcwotICAgICAgfSBlbHNlIHsKLSAgICAgICAgIHVwbGV2ZWwgIzAgZXZhbCAkY29tbWFuZHMKLSAgICAgIH0KLQotICAgfQotCi0gICBwcm9jIGluaXRpYWxpemVfbXVsdGljcHUge30gewotCi0gICBnbG9iYWwgdmFycwotCi0gICAgICBzZXQgY29tbWFuZHMgIiIKLSMgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiNcbiIKLSMgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIFNFVFRJTkcgVVAgTVVMVEkgUFJPQ0VTUyBESVNUUklCVVRJT04gQU5EIFRIUkVBRElOR1xuIgotIyAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiI1xuIgotCi0gICAgICBnbG9iYWwgdmFycwotCi0gICAgICBpZiB7W3JlZ2V4cCBzeW5fICR2YXJzKHN0ZXApXX0gewotICAgICAgICAgcmV0dXJuICIiCi0gICAgICB9Ci0KLSAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhkaXN0cmlidXRlX3RpbWVvdXQpXX0gewotICAgICAgICAgc2V0IGNvbW1hbmQgInNldF9kaXN0cmlidXRlZF9ob3N0cyAtdGltZV9vdXQgJHZhcnMoZGlzdHJpYnV0ZV90aW1lb3V0KSAiCi0gICAgICB9IGVsc2UgewotICAgICAgICAgc2V0IGNvbW1hbmQgInNldF9kaXN0cmlidXRlZF9ob3N0cyAiCi0gICAgICB9Ci0KLSAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhkaXN0cmlidXRlKV19IHsKLSAgICAgICAgIHN3aXRjaCAkdmFycyhkaXN0cmlidXRlKSB7Ci0gICAgICAgICAgICAicnNoIiB7Ci0jICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICBSVU5OSU5HIFJTSCBvbiAkdmFycyhyc2gsaG9zdF9saXN0KVxuIgotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIi1yc2ggLWFkZCBcW2xpc3QgJHZhcnMocnNoLGhvc3RfbGlzdClcXVxuIgotICAgICAgICAgICAgICAgc2V0IHZhcnMocmVtb3RlX2hvc3RzKSBbbGxlbmd0aCAkdmFycyhyc2gsaG9zdF9saXN0KV0KLSAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAibG9jYWwiIHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICItbG9jYWxcbiIKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgICJjdXN0b20iIHsKLSMgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIFJVTk5JTkcgQ1VTVE9NICgkdmFycyhjdXN0b20sc2NyaXB0KSlcbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICItY3VzdG9tIC1jdXN0b21fc2NyaXB0IHsgJHZhcnMoY3VzdG9tLHNjcmlwdCkgfVxuIgotICAgICAgICAgICAgfQotICAgICAgICAgICAgImxzZiIgewotIyAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgUlVOTklORyBMU0YgKCR2YXJzKGxzZixxdWV1ZSksICR2YXJzKGxzZixyZXNvdXJjZSksICR2YXJzKGxzZixhcmdzKVxuIgotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIi1sc2YgLXF1ZXVlICR2YXJzKGxzZixxdWV1ZSkgLXJlc291cmNlIHsgJHZhcnMobHNmLHJlc291cmNlKSB9IC1sc2ZfYXJncyB7ICR2YXJzKGxzZixhcmdzKSB9XG4iCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBkZWZhdWx0IHsKLSAgICAgICAgICAgICAgICBwdXRzICAiPEZGPiBESVNUUklCVVRJT04gVFlQRSAkdmFycyhkaXN0cmlidXRlKSBOT1QgU1VQUE9SVEVEXG4iCi0gICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0KLSMgICAgICAgICBhcHBlbmQgY29tbWFuZHMgJGNvbW1hbmQKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxzZXRfZGlzdHJpYnV0ZWRfaG9zdHMgJGNvbW1hbmRdCi0KLSAgICAgICAgIHNldCBjb21tYW5kICJzZXRfbXVsdGlfY3B1X3VzYWdlICIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kICItbG9jYWxfY3B1ICR2YXJzKGxvY2FsX2NwdXMpICIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kICItcmVtb3RlX2hvc3QgJHZhcnMocmVtb3RlX2hvc3RzKSAiCi0gICAgICAgICBhcHBlbmQgY29tbWFuZCAiLWNwdV9wZXJfcmVtb3RlX2hvc3QgJHZhcnMoY3B1c19wZXJfcmVtb3RlX2hvc3QpXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksc2V0X211bHRpX2NwdV91c2FnZSAkY29tbWFuZF0KLQotICAgICAgfSBlbHNlIHsKLQotICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIi1sb2NhbFxuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHNldF9kaXN0cmlidXRlZF9ob3N0cyAkY29tbWFuZF0KLQotICAgICAgICAgc2V0IGNvbW1hbmQgInNldF9tdWx0aV9jcHVfdXNhZ2UgLWxvY2FsX2NwdSAkdmFycyhsb2NhbF9jcHVzKVxuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHNldF9tdWx0aV9jcHVfdXNhZ2UgJGNvbW1hbmRdCi0KLSAgICAgIH0KLQotICAgICAgcmV0dXJuICRjb21tYW5kcwotCi0gICB9Ci0gICBwcm9jIGRlcmF0ZV90aW1pbmcgIHt7dHlwZSBtaW5tYXh9fSB7Ci0KLSAgICAgIGdsb2JhbCB2YXJzCi0gICAgICBnbG9iYWwgZXJyb3JzCi0KLSMgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnModmlld19kZWZpbml0aW9uX3RjbCldfSB7Ci0jICAgICAgICAgcmV0dXJuICIiCi0jICAgICAgfQotCi0jICAgICAgaWYgeyR2YXJzKGVuYWJsZV9hb2N2KX0gewotIyAgICAgICAgIHNldCBjb21tYW5kcyAiIgotIyAgICAgICAgIGZvcmVhY2ggY29ybmVyICR2YXJzKGRlbGF5X2Nvcm5lcnMpIHsKLSMgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgInJlc2V0X3RpbWluZ19kZXJhdGUgLWRlbGF5X2Nvcm5lciAkY29ybmVyXG4iCi0jICAgICAgICAgfSAgIAotIyAgICAgICAgIHJldHVybiAkY29tbWFuZHMKLSMgICAgICB9Ci0KLSAgICAgIHNldCBjb21tYW5kcyAicHV0cyBcIjxGRj4gREVSQVRJTkcgREVMQVkgQ09STkVSUyAuLi5cIlxuIgotICAgICAgaWYgeyR2YXJzKHZlcmJvc2UpfSB7Ci0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiNcbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgREVSQVRJTkcgREVMQVkgQ09STkVSUyAoJHR5cGUpIC4uLlxuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjXG4iCi0gICAgICB9Ci0gICAgICBzd2l0Y2ggJHR5cGUgewotICAgICAgICAgIm1tbWMiIHsKLSAgICAgICAgICAgIHNldCBmb3VuZF9jb3JuZXIgMAotICAgICAgICAgICAgZm9yZWFjaCBjb3JuZXIgJHZhcnMoZGVsYXlfY29ybmVycykgewotICAgICAgICAgICAgICAgc2V0IGRlcmF0ZV9maWxlIDAKLSAgICAgICAgICAgICAgIHNldCBjb21tYW5kKCRjb3JuZXIpICIiCi0gICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJGNvcm5lcixkZXJhdGVfdGNsKV19IHsKLSAgICAgICAgICAgICAgICAgIHNldCBkZXJhdGVfZmlsZSAxCi0gICAgICAgICAgICAgICAgICBpbmNyIGZvdW5kX2Nvcm5lciAxCi0gICAgICAgICAgICAgICAgICBpZiB7W2ZpbGUgZXhpc3RzICR2YXJzKCRjb3JuZXIsZGVyYXRlX3RjbCldfSB7Ci0gICAgICAgICAgICAgICAgICAgICBpZiB7JGNvbW1hbmQoJGNvcm5lcikgPT0gIiJ9IHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kKCRjb3JuZXIpIFtGRjo6c291cmNlX3BsdWcgIiRjb3JuZXIsZGVyYXRlX3RjbCJdCi0gICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICBpZiB7ISRkZXJhdGVfZmlsZX0gewotICAgICAgICAgICAgICAgICAgZm9yZWFjaCBvYmplY3QgImNlbGwgbmV0IiB7Ci0gICAgICAgICAgICAgICAgICAgICBmb3JlYWNoIG1vZGUgImVhcmx5IGxhdGUiIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGZvcmVhY2ggdHlwZSAiZGF0YSBjbG9jayIgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCRjb3JuZXIsJHt0eXBlfV8ke29iamVjdH1fJHttb2RlfSldfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCgkY29ybmVyKSAiICAgc2V0X3RpbWluZ19kZXJhdGUgLSR0eXBlIC0ke29iamVjdH1fZGVsYXkgLSRtb2RlIC1kZWxheV9jb3JuZXIgJGNvcm5lciAkdmFycygkY29ybmVyLCR7dHlwZX1fJHtvYmplY3R9XyR7bW9kZX0pXG4iCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXQgZm91bmRfY29ybmVyIDEKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkY29ybmVyLCR7b2JqZWN0fV8ke3R5cGV9XyR7bW9kZX0pXX0gewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQoJGNvcm5lcikgIiAgIHNldF90aW1pbmdfZGVyYXRlIC0kdHlwZSAtJHtvYmplY3R9X2RlbGF5IC0kbW9kZSAtZGVsYXlfY29ybmVyICRjb3JuZXIgJHZhcnMoJGNvcm5lciwke29iamVjdH1fJHt0eXBlfV8ke21vZGV9KVxuIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0IGZvdW5kX2Nvcm5lciAxCi0gICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJGNvcm5lcixjZWxsX2NoZWNrXyR7bW9kZX0pXX0gewotICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQoJGNvcm5lcikgIiAgIHNldF90aW1pbmdfZGVyYXRlIC1jZWxsX2NoZWNrIC0kbW9kZSAtZGVsYXlfY29ybmVyICRjb3JuZXIgJHZhcnMoJGNvcm5lcixjZWxsX2NoZWNrXyR7bW9kZX0pXG4iCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBzZXQgZm91bmRfY29ybmVyIDEKLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkY29ybmVyLGNoZWNrX2NlbGxfJHttb2RlfSldfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCgkY29ybmVyKSAiICAgc2V0X3RpbWluZ19kZXJhdGUgLWNlbGxfY2hlY2sgLSRtb2RlIC1kZWxheV9jb3JuZXIgJGNvcm5lciAkdmFycygkY29ybmVyLGNoZWNrX2NlbGxfJHttb2RlfSlcbiIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldCBmb3VuZF9jb3JuZXIgMQotICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgICAgICAgIyBUaGVyZSBjYW4gb25seSBiZSBvbmUgaWxtX25vbl9zZGNfZmlsZSwgc28gbmVlZCB0byBjb21iaW5lIHRoZW0gd2l0aCAKLSAgICAgICAgICAgICMgdGhlIHRpbWluZyBkZXJhdGUgY29tbWFuZHMgaWYgYm90aCBleGlzdHMKLSAgICAgICAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICAgICAgIGlmIHskZm91bmRfY29ybmVyPjB9IHsKLSAgICAgICAgICAgICAgIGlmICR2YXJzKGlsbSkgewotICAgICAgICAgICAgICAgICAgc2V0IG9wIFtvcGVuIC5pbG1fbm9uX3NkY19maWxlLnRjbCB3XQotICAgICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGlsbV9ub25fc2RjX2ZpbGUpXSAmJiBbZmlsZSBleGlzdHMgJHZhcnMoaWxtX25vbl9zZGNfZmlsZSldfSB7IAotICAgICAgICAgICAgICAgICAgICAgc2V0IGZociBbb3BlbiAkdmFycyhpbG1fbm9uX3NkY19maWxlKSByXQotICAgICAgICAgICAgICAgICAgICAgcHV0cyAkb3AgIiMiCi0gICAgICAgICAgICAgICAgICAgICBwdXRzICRvcCAiIyBDb250ZW50cyBvZiAkdmFycyhpbG1fbm9uX3NkY19maWxlKSIKLSAgICAgICAgICAgICAgICAgICAgIHB1dHMgJG9wICIjIgotICAgICAgICAgICAgICAgICAgICAgd2hpbGUge1tnZXRzICRmaHIgbGluZV0+PTB9IHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHB1dHMgJG9wICIgICAkbGluZSIKLSAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgIGNsb3NlICRmaHIKLSAgICAgICAgICAgICAgICAgICAgIHB1dHMgJG9wICIjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iCi0gICAgICAgICAgICAgICAgICAgICBzZXQgdmFycyhzYXZlX2lsbV9ub25fc2RjX2ZpbGUpICR2YXJzKGlsbV9ub25fc2RjX2ZpbGUpCi0gICAgICAgICAgICAgICAgICAgICB1bnNldCB2YXJzKGlsbV9ub25fc2RjX2ZpbGUpCi0gICAgICAgICAgICAgICAgICB9IAotICAgICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGRlcmF0ZV90Y2wpXX0gewotICAgICAgICAgICAgICAgICAgICAgICAgcHV0cyAkb3AgInNvdXJjZSAkdmFycyhkZXJhdGVfdGNsKSIKLSAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICBmb3JlYWNoIGNvcm5lciAkdmFycyhkZWxheV9jb3JuZXJzKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBwdXRzICRvcCAkY29tbWFuZCgkY29ybmVyKQotICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgY2xvc2UgJG9wCi0jICAgICAgICAgICAgICAgICAgaWYge1tsaW5kZXggW3NwbGl0ICR2YXJzKHZlcnNpb24pICIuIl0gIDBdIDw9IDEwfSB7Ci0jICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJsb2FkVGltaW5nQ29uIC1pbG1Ob25TZGNGaWxlIC5pbG1fbm9uX3NkY19maWxlLnRjbFxuIgotIyAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0jICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJzZXRJbG1Ob25TZGNDb25zdHJhaW50RmlsZSAuaWxtX25vbl9zZGNfZmlsZS50Y2xcbiIKLSMgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGRlcmF0ZV90Y2wpXX0gewotICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6c291cmNlX3BsdWcgZGVyYXRlX3RjbF0KLSAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiXG4iCi0gICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJzZXQgYWN0aXZlX2Nvcm5lcnMgXFthbGxfZGVsYXlfY29ybmVyc1xdXG4iCi0gICAgICAgICAgICAgICAgICAgICBmb3JlYWNoIGNvcm5lciAkdmFycyhkZWxheV9jb3JuZXJzKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiB7JGNvbW1hbmQoJGNvcm5lcikgIT0gIiJ9IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiaWYge1xbbHNlYXJjaCBcJGFjdGl2ZV9jb3JuZXJzICRjb3JuZXJcXSAhPSAtMX0ge1xuIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICRjb21tYW5kKCRjb3JuZXIpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIn1cbiIKLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoZGVyYXRlX3RjbCldfSB7Ci0gICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjpzb3VyY2VfcGx1ZyBkZXJhdGVfdGNsXQotICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJcbiIKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0KLSAgICAgICAgICJtaW5tYXgiIHsKLQotICAgICAgICAgICAgc2V0IGNvcm5lcnMobWluKSAkdmFycygkdmFycyhkZWZhdWx0X2hvbGRfdmlldyksZGVsYXlfY29ybmVyKQotICAgICAgICAgICAgc2V0IGNvcm5lcnMobWF4KSAkdmFycygkdmFycyhkZWZhdWx0X3NldHVwX3ZpZXcpLGRlbGF5X2Nvcm5lcikKLQotICAgICAgICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICAgICAgICMgRGVyYXRlIHRpbWluZyBpZiBkZXJhdGluZyBmYWN0b3JzIGFyZSBkZWZpbmVkCi0gICAgICAgICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgICAgICAgZm9yZWFjaCBvYmplY3QgImNlbGwgbmV0IiB7Ci0gICAgICAgICAgICAgICBmb3JlYWNoIGNvcm5lciAibWluIG1heCIgewotICAgICAgICAgICAgICAgICAgZm9yZWFjaCB0eXBlICJkYXRhIGNsb2NrIiB7Ci0gICAgICAgICAgICAgICAgICAgICBmb3JlYWNoIG1vZGUgImVhcmx5IGxhdGUiIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkY29ybmVycygkY29ybmVyKSwke3R5cGV9XyR7b2JqZWN0fV8ke21vZGV9KV19IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAic2V0X3RpbWluZ19kZXJhdGUgLSRjb3JuZXIgLSR0eXBlIC0ke29iamVjdH1fZGVsYXkgLSRtb2RlICR2YXJzKCRjb3JuZXJzKCRjb3JuZXIpLCR7dHlwZX1fJHtvYmplY3R9XyR7bW9kZX0pXG4iCi0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJGNvcm5lcnMoJGNvcm5lciksJHtvYmplY3R9XyR7dHlwZX1fJHttb2RlfSldfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgInNldF90aW1pbmdfZGVyYXRlIC0kY29ybmVyIC0kdHlwZSAtJHtvYmplY3R9X2RlbGF5IC0kbW9kZSAkdmFycygkY29ybmVycygkY29ybmVyKSwke29iamVjdH1fJHt0eXBlfV8ke21vZGV9KVxuIgotICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAgICAgZm9yZWFjaCBjb3JuZXIgIm1pbiBtYXgiIHsKLSAgICAgICAgICAgICAgIGZvcmVhY2ggbW9kZSAiZWFybHkgbGF0ZSIgewotICAgICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCRjb3JuZXJzKCRjb3JuZXIpLGNlbGxfY2hlY2tfJHttb2RlfSldfSB7Ci0gICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgInNldF90aW1pbmdfZGVyYXRlIC1jZWxsX2NoZWNrIC0kbW9kZSAkdmFycygkY29ybmVycygkY29ybmVyKSxjZWxsX2NoZWNrXyR7bW9kZX0pXG4iCi0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJGNvcm5lcnMoJGNvcm5lciksY2hlY2tfY2VsbF8ke21vZGV9KV19IHsKLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAic2V0X3RpbWluZ19kZXJhdGUgLWNlbGxfY2hlY2sgLSRtb2RlICR2YXJzKCRjb3JuZXJzKCRjb3JuZXIpLGNoZWNrX2NlbGxfJHttb2RlfSlcbiIKLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0KLSAgICAgICAgIGRlZmF1bHQgewotICAgICAgICAgICAgcHV0cyAiPEZGPiBJTlZBTElEIE9QVElPTiAuLi4gTVVTVCBCRSBFSVRIRVIgbWlubWF4IE9SIG1tbWMiCi0gICAgICAgICB9Ci0gICAgICB9Ci0gICAgICBpZiB7W2xpbmRleCBbc3BsaXQgJHZhcnModmVyc2lvbikgIi4iXSAgMF0gPiAxMH0gewotICAgICAgICAgc2V0IG9wIFtvcGVuICR2YXJzKHNjcmlwdF9kaXIpL3RpbWluZ2RlcmF0ZS5zZGMgd10KLSAgICAgICAgIHB1dHMgJG9wICRjb21tYW5kcwotICAgICAgICAgY2xvc2UgJG9wCi0gICAgICAgICBpZiB7ISR2YXJzKG5vdnVzKSAmJiAoW2ZpbGUgdGFpbCBbZmlsZSBkaXJuYW1lIFtwd2RdXV0gIT0gIiR2YXJzKHBhcnRpdGlvbl9kaXIpIil9IHsKLSAgICAgICAgICAgIHNldCBjb21tYW5kcyAic291cmNlICR2YXJzKHNjcmlwdF9kaXIpL3RpbWluZ2RlcmF0ZS5zZGNcbiIKLSAgICAgICAgIH0gCi0gICAgICB9IAotICAgICAgcmV0dXJuICRjb21tYW5kcwotICAgfQotICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgIyBUaGUgY29kZSBiZWxvdyB1cGRhdGVzIHRpbWluZyBkZXBlbmRpbmcgb24gd2hldGhlciB0aGUgY3VycmVudCBtb2R1bGUgaXMKLSAgICMgLSB0b3AgcGFydGl0aW9uIGluIGEgaGllcmFyY2hpY2FsIGZsb3cKLSAgICMgLSBwYXJ0aXRpb24gaW4gYSBoaWVyYXJjaGljYWwgZmxvdwotICAgIyAtIGNoaXAgb3IgYmxvY2sgaW4gYSBmbGF0IGZsb3cKLSAgICMgVGltaW5nIGlzIHVwZGF0ZWQgYnkgaW5jcmVtZW50YWxseSBhZGRpbmcgdGhlIHZhcnMoaW5jcl9jdHNfc2RjKSB0byBlYWNoCi0gICAjIGNvbnN0cmFpbnQgbW9kZSB0aGF0IGhhcyBvbmUgZGVmaW5lZAotICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCi0gICBwcm9jIHVwZGF0ZV90aW1pbmcge3t0eXBlIG1tbWN9IHtzd2l0Y2hfdG9fcHJvcGFnYXRlZCB0cnVlfX0gewotCi0gICAgICBnbG9iYWwgdmFycwotCi0gICAgICBpZiB7IVtpbmZvIGV4aXN0cyB2YXJzKGNvbnN0cmFpbnRfbW9kZXMpXX0gewotICAgICAgICAgcmV0dXJuCi0gICAgICB9Ci0KLSAgICAgIHNldCBjb21tYW5kcyAicHV0cyBcIjxGRj4gVVBEQVRJTkcgVElNSU5HIC4uLlwiXG4iCi0KLSAgICAgIHNldCBwdG4gW2ZpbGUgdGFpbCBbcHdkXV0KLSAgICAgIHNldCBwYXJlbnQgW2ZpbGUgdGFpbCBbZmlsZSBkaXJuYW1lIFtwd2RdXV0KLSAgICAgIHNldCB1cGRhdGUgdHJ1ZQotICAgICAgc2V0IHRvcCBmYWxzZQotICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKHBhcnRpdGlvbl9saXN0KV0gJiYgKCRwYXJlbnQgPT0gIiR2YXJzKHBhcnRpdGlvbl9kaXIpIil9IHsKLSAgICAgICAgIGlmIHtbbHNlYXJjaCAkdmFycyhwYXJ0aXRpb25fbGlzdCkgJHB0bl0gIT0gLTF9IHsKLSMgICAgICAgICAgICBzZXQgaWxtIGZhbHNlCi0gICAgICAgICAgICBzZXQgdXBkYXRlIGZhbHNlCi0gICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgc2V0IHRvcCB0cnVlCi0gICAgICAgICB9Ci0gICAgICB9Ci0KLSMgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIElMTSAkdmFycyhpbG0pLCBVUERBVEUgJHVwZGF0ZVxuIgotCi0gICAgICBpZiB7JHN3aXRjaF90b19wcm9wYWdhdGVkfSB7Ci0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgInNldCBvcCBcW29wZW4gcHJvcC5zZGMgd1xdXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgInB1dHMgXCRvcCBcInNldF9wcm9wYWdhdGVkX2Nsb2NrIFxcXFthbGxfY2xvY2tzXFxcXVwiXG4iCi0gICAgICAgICBpZiB7JHZhcnMoaWxtKX0gewotICAgICAgICAgICAgaWYgeyR2YXJzKGZsYXQpICE9ICJub25lIn0gewotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRl9FREk6OmdldF9jbG9ja19wb3J0c10KLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgInNldCBjbG9ja19wb3J0cyBcW0ZGX0VESTo6Z2V0X2Nsb2NrX3BvcnRzXF1cbiIKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiaWYge1xbbGxlbmd0aCBcJGNsb2NrX3BvcnRzXF0gPiAwfSB7XG4iCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiAgIGZvcmVhY2ggcG9ydCBcJGNsb2NrX3BvcnRzIHtcbiIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiICAgICAgcHV0cyBcJG9wIFwic2V0X3Byb3BhZ2F0ZWRfY2xvY2sgXCRwb3J0XCJcbiIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiICAgfVxuIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJ9XG4iCi0gICAgICAgICB9Ci0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgImNsb3NlIFwkb3BcbiIKLSAgICAgIH0KLQotICAgICAgc3dpdGNoICR0eXBlIHsKLQotICAgICAgICAgIm1pbm1heCIgewotICAgICAgICAgICAgaWYgeyR2YXJzKGlsbSkgJiYgJHVwZGF0ZX0gewotICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGluY3JfY3RzX3NkYyldfSB7Ci0gICAgICAgICAgICAgICAgICBmb3JlYWNoIGZpbGUgJHZhcnMoaW5jcl9jdHNfc2RjKSB7Ci0gICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgImxvYWRUaW1pbmdDb24gLWlsbSAtaW5jciAkZmlsZVxuIgotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgfSBlbHNlaWYge1tpbmZvIGV4aXN0cyB2YXJzKHBvc3RfY3RzX3NkYyldfSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAidW5sb2FkVGltaW5nQ29uXG4iCi0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgImxvYWRUaW1pbmdDb24gIFtsaW5kZXggJHZhcnMocG9zdF9jdHNfc2RjKSAwXVxuIgotICAgICAgICAgICAgICAgICAgZm9yZWFjaCBzZGMgW2xyYW5nZSAkdmFycyhwb3N0X2N0c19zZGMpIDEgZW5kXSB7Ci0gICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAibG9hZFRpbWluZ0NvbiAtaWxtIC1pbmNyICRzZGNcbiIKLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIGlmIHskc3dpdGNoX3RvX3Byb3BhZ2F0ZWR9IHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAibG9hZFRpbWluZ0NvbiAtaWxtIC1pbmNyIHByb3Auc2RjXG4iCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgaWYgeyR1cGRhdGV9IHsKLSAgICAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhpbmNyX2N0c19zZGMpXX0gewotICAgICAgICAgICAgICAgICAgICAgZm9yZWFjaCBmaWxlICR2YXJzKGluY3JfY3RzX3NkYykgewotICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJsb2FkVGltaW5nQ29uIC1pbmNyICRmaWxlXG4iCi0gICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICB9IGVsc2VpZiB7W2luZm8gZXhpc3RzIHZhcnMocG9zdF9jdHNfc2RjKV19IHsKLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAidW5sb2FkVGltaW5nQ29uXG4iCi0gICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgImxvYWRUaW1pbmdDb24gW2xpbmRleCAkdmFycyhwb3N0X2N0c19zZGMpIDBdXG4iCi0gICAgICAgICAgICAgICAgICAgICBmb3JlYWNoIHNkYyBbbHJhbmdlICR2YXJzKHBvc3RfY3RzX3NkYykgMSBlbmRdIHsKLSAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJsb2FkVGltaW5nQ29uIC1pbmNyICRzZGNcbiIKLSAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIGlmIHskc3dpdGNoX3RvX3Byb3BhZ2F0ZWR9IHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAibG9hZFRpbWluZ0NvbiAtaW5jciBwcm9wLnNkY1xuIgotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAgfQotICAgICAgICAgIm1tbWMiIHsKLSMgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnModXBkYXRlX2lvX2xhdGVuY3kpXSAmJiAkdmFycyh1cGRhdGVfaW9fbGF0ZW5jeSl9IHsKLSMgICAgICAgICAgICAgICB1cGRhdGVfaW9fbGF0ZW5jeQotIyAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIHskc3dpdGNoX3RvX3Byb3BhZ2F0ZWR9IHsKLSAgICAgICAgICAgICAgIHNldCBwcm9wX3NkYyAicHJvcC5zZGMiCi0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgc2V0IHByb3Bfc2RjICIiCi0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGZvcmVhY2ggbW9kZSAkdmFycyhjb25zdHJhaW50X21vZGVzKSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgImlmIHtcW2xzZWFyY2ggXFthbGxfY29uc3RyYWludF9tb2Rlc1xdICRtb2RlXF0gIT0gLTF9IHtcbiIKLSAgICAgICAgICAgICAgIGlmIHskdXBkYXRlfSB7Ci0gICAgICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJG1vZGUsaW5jcl9jdHNfc2RjKV19IHsKLSAgICAgICAgICAgICAgICAgICAgIGlmIHskdmFycyhpbG0pfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgInNldCB2YXJzKCRtb2RlLHBvc3RfY3RzX3NkY19saXN0KSBcW2NvbmNhdCBcW2dldF9jb25zdHJhaW50X21vZGUgJG1vZGUgLWlsbV9zZGNfZmlsZXNcXSAkdmFycygkbW9kZSxpbmNyX2N0c19zZGMpICRwcm9wX3NkY1xdXG4iCi0gICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJzZXQgdmFycygkbW9kZSxwb3N0X2N0c19zZGNfbGlzdCkgXFtjb25jYXQgXFtnZXRfY29uc3RyYWludF9tb2RlICRtb2RlIC1zZGNfZmlsZXNcXSAkdmFycygkbW9kZSxpbmNyX2N0c19zZGMpICRwcm9wX3NkY1xdXG4iCi0gICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJG1vZGUscG9zdF9jdHNfc2RjKV19IHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHB1dHMgICI8RkY+IFdBUk5JTkc6IEJPVEggdmFycygkbW9kZSxpbmNyX2N0c19zZGMpIEFORCB2YXJzKCRtb2RlLHBvc3RfY3RzX3NkYykgQVJFIERFRklORUQgLi4uIgotICAgICAgICAgICAgICAgICAgICAgICAgcHV0cyAgIjxGRj4gICAgICAgICAgVVNJTkcgdmFycygkbW9kZSxpbmNyX2N0c19zZGMpIgotICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkbW9kZSxwb3N0X2N0c19zZGMpXX0gewotICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJzZXQgdmFycygkbW9kZSxwb3N0X2N0c19zZGNfbGlzdCkgXFtjb25jYXQgJHZhcnMoJG1vZGUscG9zdF9jdHNfc2RjKSAkcHJvcF9zZGNcXVxuIgotICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIHskdmFycyhpbG0pfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICBpZiB7JHZhcnMoY3RzX2VuZ2luZSkgPT0gImN0cyIgfHwgKCR2YXJzKHN0ZXApID09ICJhc3NlbWJsZSIpfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgInNldCB2YXJzKCRtb2RlLHBvc3RfY3RzX3NkY19saXN0KSBcW2NvbmNhdCBcW2dldF9jb25zdHJhaW50X21vZGUgJG1vZGUgLWlsbV9zZGNfZmlsZXNcXSAkcHJvcF9zZGNcXVxuIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIHskdmFycyhzdGVwKSAhPSAiYXNzZW1ibGUifSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gIiIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICBpZiB7JHZhcnMoY3RzX2VuZ2luZSkgPT0gImN0cyIgfHwgKCR2YXJzKHN0ZXApID09ICJhc3NlbWJsZSIpfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgInNldCB2YXJzKCRtb2RlLHBvc3RfY3RzX3NkY19saXN0KSBcW2NvbmNhdCBcW2dldF9jb25zdHJhaW50X21vZGUgJG1vZGUgLXNkY19maWxlc1xdICRwcm9wX3NkY1xdXG4iCi0gICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgeyR2YXJzKHN0ZXApICE9ICJhc3NlbWJsZSJ9IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAiIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgIGlmIHskdmFycyhpbG0pfSB7Ci0gICAgICAgICAgICAgICAgICAgICBpZiB7JHZhcnMoY3RzX2VuZ2luZSkgPT0gImN0cyJ9IHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAic2V0IHZhcnMoJG1vZGUscG9zdF9jdHNfc2RjX2xpc3QpIFxbY29uY2F0IFxbZ2V0X2NvbnN0cmFpbnRfbW9kZSAkbW9kZSAtaWxtX3NkY19maWxlc1xdICRwcm9wX3NkY1xdXG4iCi0gICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICAgaWYge1tyZWdleHAgIl5hc3NlbWJsZSIgJHZhcnMoc3RlcCldfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAiIgotICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgIGlmIHskdmFycyhjdHNfZW5naW5lKSA9PSAiY3RzIn0gewotICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJzZXQgdmFycygkbW9kZSxwb3N0X2N0c19zZGNfbGlzdCkgXFtjb25jYXQgXFtnZXRfY29uc3RyYWludF9tb2RlICRtb2RlIC1zZGNfZmlsZXNcXSAkcHJvcF9zZGNcXVxuIgotICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSMgICAgICAgICAgICAgICAgICAgICAgICBpZiB7W3JlZ2V4cCAiXmFzc2VtYmxlIiAkdmFycyhzdGVwKV19IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICIiCi0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIn1cbiIKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgaWYgeyEkdmFycyhpbG0pfSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgInNldCByZXN0b3JlIFxbZ2V0X2RiIHRpbWluZ19kZWZlcl9tbW1jX29ial91cGRhdGVzXF1cbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAic2V0X2RiIHRpbWluZ19kZWZlcl9tbW1jX29ial91cGRhdGVzIHRydWVcbiIKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgaWYgeyR2YXJzKGlsbSl9IHsKLSAgICAgICAgICAgICAgIGV4ZWMgL2Jpbi90b3VjaCBlbXB0eS5zZGMKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiZm9yZWFjaCBtb2RlIFxbYWxsX2NvbnN0cmFpbnRfbW9kZXNcXSB7XG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiAgIGlmIHtcW2luZm8gZXhpc3RzIHZhcnMoXCRtb2RlLHBvc3RfY3RzX3NkY19saXN0KVxdfSB7XG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiAgICAgIHVwZGF0ZV9jb25zdHJhaW50X21vZGUgLW5hbWUgXCRtb2RlIC1pbG1fc2RjX2ZpbGVzIFwkdmFycyhcJG1vZGUscG9zdF9jdHNfc2RjX2xpc3QpXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiAgIH0gZWxzZSB7XG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiAgICAgIGZvcmVhY2ggdmlldyBcW2FsbF9hbmFseXNpc192aWV3c10ge1xuIgotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIgICAgICAgICBzZXQgbSBcW3JlZ3N1YiBfXCR2aWV3IFwkbW9kZSBcIlwiXF1cbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiICAgICAgICAgaWYge1xbaW5mbyBleGlzdHMgdmFycyhcJG0scG9zdF9jdHNfc2RjX2xpc3QpXF19IHtcbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiICAgICAgICAgICAgdXBkYXRlX2NvbnN0cmFpbnRfbW9kZSAtbmFtZSBcJG1vZGUgLWlsbV9zZGNfZmlsZXMgXCR2YXJzKFwkbSxwb3N0X2N0c19zZGNfbGlzdClcbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiICAgICAgICAgfVxuIgotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIgICAgICB9IFxuIgotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIgICB9IFxuIgotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJ9IFxuIgotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiZm9yZWFjaCBtb2RlIFxbYWxsX2NvbnN0cmFpbnRfbW9kZXNcXSBce1xuIgotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIgICBpZiBce1xbaW5mbyBleGlzdHMgdmFycyhcJG1vZGUscG9zdF9jdHNfc2RjX2xpc3QpXF1cfSBce1xuIgotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIgICAgICB1cGRhdGVfY29uc3RyYWludF9tb2RlIC1uYW1lIFwkbW9kZSAtc2RjX2ZpbGVzIFwkdmFycyhcJG1vZGUscG9zdF9jdHNfc2RjX2xpc3QpXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiAgIFx9IGVsc2UgXHtcbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiICAgICAgZm9yZWFjaCB2aWV3IFxbYWxsX2FuYWx5c2lzX3ZpZXdzXSBce1xuIgotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIgICAgICAgICBzZXQgbSBcW3JlZ3N1YiBfXCR2aWV3IFwkbW9kZSBcIlwiXF1cbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiICAgICAgICAgaWYgXHtcW2luZm8gZXhpc3RzIHZhcnMoXCRtLHBvc3RfY3RzX3NkY19saXN0KVxdXH0gXHtcbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiICAgICAgICAgICAgdXBkYXRlX2NvbnN0cmFpbnRfbW9kZSAtbmFtZSBcJG1vZGUgLXNkY19maWxlcyBcJHZhcnMoXCRtLHBvc3RfY3RzX3NkY19saXN0KVxuIgotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIgICAgICAgICBcfVxuIgotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIgICAgICBcfSBcbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiICAgXH0gXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIlx9IFxuIgotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBpZiB7ISR2YXJzKGlsbSl9IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAic2V0X2FuYWx5c2lzX3ZpZXcgLXVwZGF0ZV90aW1pbmdcbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAic2V0X2RiIHRpbWluZ19kZWZlcl9tbW1jX29ial91cGRhdGVzIFwkcmVzdG9yZVxuIgotICAgICAgICAgICAgfQotICAgICAgICAgICAgc2V0IHRoaXNfaW5kZXggW2xzZWFyY2ggJHZhcnMoc3RlcHMpICR2YXJzKHN0ZXApXQotICAgICAgICAgICAgc2V0IHByaW9yIFtsaW5kZXggJHZhcnMoc3RlcHMpIFtleHByICR0aGlzX2luZGV4IC0gMV1dCi0gICAgICAgICAgICAjIEJDTDogQWRkZWQgc3Vic3QgYXJvdW5kIHZhcnMoZGJzX2RpcikKLSAgICAgICAgICAgIGlmIHtbZmlsZSBpc2ZpbGUgW3N1YnN0ICR2YXJzKGRic19kaXIpXS8kcHJpb3IuZW5jLmRhdC9tbW1jL3BhdGhncm91cC5zZGNdfSB7Ci0gICAgICAgICAgICAgICAjIEJDTDogQWRkZWQgc3Vic3QgYXJvdW5kIHZhcnMoZGJzX2RpcikKLSAgICAgICAgICAgICAgIHNldCB2YXJzKHBhdGhfZ3JvdXBfc2RjKSBbc3Vic3QgJHZhcnMoZGJzX2RpcildLyRwcmlvci5lbmMuZGF0L21tbWMvcGF0aGdyb3VwLnNkYwotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJmZl9wcm9jczo6bG9hZF9wYXRoX2dyb3VwcyAkdmFycyhwYXRoX2dyb3VwX3NkYylcbiIKLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0KLSAgICAgICAgIGRlZmF1bHQgewotICAgICAgICAgICAgcHV0cyAkdmFycyhjb2RnZW5fbG9nKSAiPEZGPiBJTlZBTElEIE9QVElPTiAuLi4gTVVTVCBCRSBFSVRIRVIgbWlubWF4IE9SIG1tbWMiCi0gICAgICAgICB9Ci0gICAgICB9Ci0gICAgICByZXR1cm4gJGNvbW1hbmRzCi0gICB9Ci0KLSAgIHByb2MgaW5pdGlhbGl6ZV90aW1pbmcge3t0eXBlIG1tbWN9fSB7Ci0KLSAgICAgIGdsb2JhbCB2YXJzCi0gICAgICBnbG9iYWwgZW52Ci0gICAgICBnbG9iYWwgaW5pdAotICAgICAgZ2xvYmFsIHdhcm5pbmdzCi0KLSMgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnModmlld19kZWZpbml0aW9uX3RjbCldfSB7Ci0jICAgICAgICAgcmV0dXJuICIiCi0jICAgICAgfQotCi0gICAgICBpZiB7JHZhcnModmVyYm9zZSl9IHsKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiI1xuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICBJTklUSUFMSVpJTkcgW3N0cmluZyB0b3VwcGVyICR0eXBlXSBUSU1JTkdcbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiI1xuIgotICAgICAgfQotCi0gICAgICBpZiB7JHZhcnMoZGVidWcpfSB7Ci0gICAgICAgICAgcHV0cyAiPERFQlVHPiBFeGVjdXRpbmcgcHJvYzogaW5pdGlhbGl6ZV90aW1pbmcgLi4uIgotICAgICAgfQotCi0gICAgICBzd2l0Y2ggJHR5cGUgewotICAgICAgICAgbWlubWF4IHsKLSMgICAgICAgICAgICBpZiB7KFtsbGVuZ3RoICR2YXJzKHJjX2Nvcm5lcnMpXSA+IDEpfSB7Ci0jICAgICAgICAgICAgICAgcHV0cyAgIjxGRj4gV0FSTklORzogVEhFIFwiZGVmYXVsdFwiIEZMT1cgU0hPVUxEIE9OTFkgSEFWRSBBIFNJTkdMRSBSQyBDT1JORVIiCi0jICAgICAgICAgICAgICAgcHV0cyAgIjxGRj4gICAgICAgICAgQlVUIFtsbGVuZ3RoICR2YXJzKHJjX2Nvcm5lcnMpXSBDT1JORVJTIEFSRSBERUZJTkVEICgkdmFycyhyY19jb3JuZXJzKSkiCi0jICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAgICAgICAjIERlZmluZSBSQyBjb3JuZXJzIGFuZCBzZXQgdGhlIGFwcHJvcHJpYXRlIHRlbXBlcmF0dXJlcy4gIFRoaXMKLSAgICAgICAgICAgICMgcmVxdWlyZXMgdGhhdCB0aGUgY2FwIHRhYmxlcyB1c2UgLWJlc3QvLXdvcnN0IHN5bnRheCBpbiB0aGUKLSAgICAgICAgICAgICMgY29uZmlndXJhdGlvbiBmaWxlLiAgU2NhbGluZyBmYWN0b3JzIHNob3VsZCBiZSBkZXJpdmVkIHVzaW5nCi0gICAgICAgICAgICAjIE9zdHJpY2ggVmFsdWVzIGZvciB0aGUgZGVmYXVsdCB0aW1pbmcgZW52aXJvbm1lbnQgaXMgZGVyaXZlZAotICAgICAgICAgICAgIyBmcm9tIHRoZSBkZWZhdWx0IHNldHVwIGFuZCBob2xkIGFuYWx5c2lzIHZpZXdzCi0gICAgICAgICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0KLSAgICAgICAgICAgIHNldCBjb3JuZXJzKG1pbikgJHZhcnMoJHZhcnMoZGVmYXVsdF9ob2xkX3ZpZXcpLGRlbGF5X2Nvcm5lcikKLSAgICAgICAgICAgIHNldCBjb3JuZXJzKG1heCkgJHZhcnMoJHZhcnMoZGVmYXVsdF9zZXR1cF92aWV3KSxkZWxheV9jb3JuZXIpCi0gICAgICAgICAgICBzZXQgY29ybmVyICR2YXJzKCRjb3JuZXJzKG1heCkscmNfY29ybmVyKQotCi0jICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIGVudihGRl9LSVRfUEFUSCldfSB7Ci0gICAgICAgICAgICBpZiB7IVtjYXRjaCB7c2V0IG1heCAkdmFycygkdmFycygkY29ybmVycyhtYXgpLHJjX2Nvcm5lciksVCl9XSAmJgotICAgICAgICAgICAgICAgICFbY2F0Y2gge3NldCBtaW4gJHZhcnMoJHZhcnMoJGNvcm5lcnMobWluKSxyY19jb3JuZXIpLFQpfV19IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBcCi0gICAgICAgICAgICAgICAgICAiZGVmaW5lUkNDb3JuZXIgLWxhdGUgd29yc3QgJG1heCAtZWFybHkgYmVzdCAkbWluXG4iCi0gICAgICAgICAgICB9Ci0jICAgICAgICAgICB9IGVsc2UgewotIyAgICAgICAgICAgICAgcHV0cyAiPEZGPiBVU0lORyBTSU5HTEUgUkMgQ09STkVSICR2YXJzKCRjb3JuZXJzKG1heCkscmNfY29ybmVyKSIKLSMgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkdmFycygkY29ybmVycyhtYXgpLHJjX2Nvcm5lciksVCldfSB7Ci0jICAgICAgICAgICAgICAgICBzZXRFeHRyYWN0UkNNb2RlIC1zY09wVGVtcCAkdmFycygkdmFycygkY29ybmVycyhtYXgpLHJjX2Nvcm5lciksVCkKLSMgICAgICAgICAgICAgIH0KLSMgICAgICAgICAgIH0KLQotICAgICAgICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgICAgICAgIyBTZXQgc2NhbGluZyBmYWN0b3JzIC4uLiBmb3IgcHJlLXJvdXRlIG9wdGltaXphdGlvbiwgdGhlIGRldGFpbGVkCi0gICAgICAgICAgICAjIGNhcCBmYWN0b3IgaXMgc2V0IHRvIHRoZSBkZXRhaWxlZCBjbG9jayBjYXAgZmFjdG9yLiAgVGhpcyB3aWxsCi0gICAgICAgICAgICAjIGJlIHJlc2V0IHBvc3Qtcm91dGUKLSAgICAgICAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLQotICAgICAgICAgICBzZXQgYXJncyAiIgotICAgICAgICAgICAgaWYgeyFbY2F0Y2gge3NldCBhcmcgJHZhcnMoJGNvcm5lcixwcmVfcm91dGVfcmVzX2ZhY3Rvcil9XX0gewotICAgICAgICAgICAgICAgYXBwZW5kIGFyZ3MgIiAtcHJlUm91dGVfcmVzICRhcmciCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiB7IVtjYXRjaCB7c2V0IGFyZyAkdmFycygkY29ybmVyLHByZV9yb3V0ZV9jYXBfZmFjdG9yKX1dfSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgYXJncyAiIC1wcmVSb3V0ZV9jYXAgJGFyZyIKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIHshW2NhdGNoIHtzZXQgYXJnICR2YXJzKCRjb3JuZXIscHJlX3JvdXRlX2Nsa19yZXNfZmFjdG9yKX1dfSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgYXJncyAiIC1wcmVSb3V0ZV9jbGtyZXMgJGFyZyIKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIHshW2NhdGNoIHtzZXQgYXJnICR2YXJzKCRjb3JuZXIscHJlX3JvdXRlX2Nsa19jYXBfZmFjdG9yKX1dfSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgYXJncyAiIC1wcmVSb3V0ZV9jbGtjYXAgJGFyZyIKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIHshW2NhdGNoIHtzZXQgYXJnICR2YXJzKCRjb3JuZXIscG9zdF9yb3V0ZV9yZXNfZmFjdG9yKX1dfSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgYXJncyAiIC1wb3N0Um91dGVfcmVzICIKLSAgICAgICAgICAgICAgIGlmIHtbbGxlbmd0aCAkYXJnXSA+IDF9IHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBhcmdzICJcIltsaW5kZXggJGFyZyAyXSxbbGluZGV4ICRhcmcgMV0sW2xpbmRleCAkYXJnIDBdXCIiCi0gICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgYXBwZW5kIGFyZ3MgJGFyZwotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgeyFbY2F0Y2gge3NldCBhcmcgJHZhcnMoJGNvcm5lcixwb3N0X3JvdXRlX2NhcF9mYWN0b3IpfV19IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBhcmdzICIgLXBvc3RSb3V0ZV9jYXAgIgotICAgICAgICAgICAgICAgaWYge1tsbGVuZ3RoICRhcmddID4gMX0gewotICAgICAgICAgICAgICAgICAgYXBwZW5kIGFyZ3MgIlwiW2xpbmRleCAkYXJnIDJdLFtsaW5kZXggJGFyZyAxXSxbbGluZGV4ICRhcmcgMF1cIiIKLSAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgYXJncyAkYXJnCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiB7IVtjYXRjaCB7c2V0IGFyZyAkdmFycygkY29ybmVyLHBvc3Rfcm91dGVfY2xrX3Jlc19mYWN0b3IpfV19IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBhcmdzICIgLXBvc3RSb3V0ZV9jbGtyZXMgIgotICAgICAgICAgICAgICAgaWYge1tsbGVuZ3RoICRhcmddID4gMX0gewotICAgICAgICAgICAgICAgICAgYXBwZW5kIGFyZ3MgIlwiW2xpbmRleCAkYXJnIDJdLFtsaW5kZXggJGFyZyAxXSxbbGluZGV4ICRhcmcgMF1cIiIKLSAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgYXJncyAkYXJnCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiB7IVtjYXRjaCB7c2V0IGFyZyAkdmFycygkY29ybmVyLHBvc3Rfcm91dGVfY2xrX2NhcF9mYWN0b3IpfV19IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBhcmdzICIgLXBvc3RSb3V0ZV9jbGtjYXAgIgotICAgICAgICAgICAgICAgaWYge1tsbGVuZ3RoICRhcmddID4gMX0gewotICAgICAgICAgICAgICAgICAgYXBwZW5kIGFyZ3MgIlwiW2xpbmRleCAkYXJnIDJdLFtsaW5kZXggJGFyZyAxXSxbbGluZGV4ICRhcmcgMF1cIiIKLSAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgYXJncyAkYXJnCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiB7IVtjYXRjaCB7c2V0IGFyZyAkdmFycygkY29ybmVyLHBvc3Rfcm91dGVfeGNhcF9mYWN0b3IpfV19IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBhcmdzICIgLXBvc3RSb3V0ZV94Y2FwICIKLSAgICAgICAgICAgICAgIGlmIHtbbGxlbmd0aCAkYXJnXSA+IDF9IHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBhcmdzICJcIltsaW5kZXggJGFyZyAyXSxbbGluZGV4ICRhcmcgMV0sW2xpbmRleCAkYXJnIDBdXCIiCi0gICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgYXBwZW5kIGFyZ3MgJGFyZwotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgeyRhcmdzICE9ICIifSB7Ci0gICAgICAgICAgICAgICBzZXQgY29tbWFuZCAic2V0UkNGYWN0b3IgJGFyZ3NcbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxzZXRfcmNfZmFjdG9yICRjb21tYW5kXQotICAgICAgICAgICAgfQotICAgICAgICAgICAgc2V0IGNvbW1hbmQgW0ZGX05PVlVTOjpkZXJhdGVfdGltaW5nIG1pbm1heF0KLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxkZXJhdGVfdGltaW5nICRjb21tYW5kXQotICAgICAgICAgfQotICAgICAgICAgbW1tYyB7Ci0gICAgICAgICAgICBpZiB7JHZhcnModmVyYm9zZSl9IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiI1xuIgotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICBDUkVBVElORyBSQyBDT1JORVJTIC4uLlxuIgotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjXG4iCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBmb3JlYWNoIHJjICR2YXJzKHJjX2Nvcm5lcnMpIHsKLSMgICAgICAgICAgICAgICBzZXQgY29tbWFuZCAiXG4iCi0gICAgICAgICAgICAgICBzZXQgY29tbWFuZCAiIgotICAgICAgICAgICAgICAgc2V0IG5vbl9jb21tYW5kICIiCi0gICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJHJjLHNjYWxlX3RjbCldfSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiY3JlYXRlX3JjX2Nvcm5lciAtbmFtZSAkcmMiCi0jICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAtY2FwX3RhYmxlICR2YXJzKCRyYyxjYXBfdGFibGUpICIKLSAgICAgICAgICAgICAgICAgIGZvcmVhY2ggb3B0aW9uICJjYXBfdGFibGUgdGVtcGVyYXR1cmUgcXJjX3RlY2giIHsKLSAgICAgICAgICAgICAgICAgICAgIGlmIHshW2NhdGNoIHtzZXQgYXJnICR2YXJzKCRyYywkb3B0aW9uKX1dfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiIC0kb3B0aW9uICRhcmciCi0gICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiXG4iCi0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCBbRkY6OnNvdXJjZV9wbHVnICIkcmMsc2NhbGVfdGNsIl0KLSAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiY3JlYXRlX3JjX2Nvcm5lciAtbmFtZSAkcmMiCi0gICAgICAgICAgICAgICAgICBmb3JlYWNoIG9wdGlvbiAiY2FwX3RhYmxlIHRlbXBlcmF0dXJlIHFyY190ZWNoIiB7Ci0gICAgICAgICAgICAgICAgICAgICBpZiB7IVtjYXRjaCB7c2V0IGFyZyAkdmFycygkcmMsJG9wdGlvbil9XX0gewotICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAtJG9wdGlvbiAkYXJnIgotICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgfQotIyAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJcbiIKLSMgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiIC1jYXBfdGFibGUgJHZhcnMoJHJjLGNhcF90YWJsZSkgIgotICAgICAgICAgICAgICAgICAgaWYgeyFbY2F0Y2gge3NldCBhcmcgJHZhcnMoJHJjLHByZV9yb3V0ZV9yZXNfZmFjdG9yKX1dfSB7Ci0gICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiIC1wcmVfcm91dGVfcmVzICRhcmciCi0gICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIG5vbl9jb21tYW5kICIjIC1wcmVfcm91dGVfcmVzIFwkdmFycygkcmMscHJlX3JvdXRlX3Jlc19mYWN0b3IpXG4iCi0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICBpZiB7IVtjYXRjaCB7c2V0IGFyZyAkdmFycygkcmMscHJlX3JvdXRlX2NhcF9mYWN0b3IpfV19IHsKLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgLXByZV9yb3V0ZV9jYXAgJGFyZyIKLSAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICBhcHBlbmQgbm9uX2NvbW1hbmQgIiMgLXByZV9yb3V0ZV9jYXAgXCR2YXJzKCRyYyxwcmVfcm91dGVfY2FwX2ZhY3RvcilcbiIKLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIGlmIHshW2NhdGNoIHtzZXQgYXJnICR2YXJzKCRyYyxwcmVfcm91dGVfY2xrX3Jlc19mYWN0b3IpfV19IHsKLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgLXByZV9yb3V0ZV9jbG9ja19yZXMgJGFyZyIKLSAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICBhcHBlbmQgbm9uX2NvbW1hbmQgIiMgLXByZV9yb3V0ZV9jbG9ja19yZXMgXCR2YXJzKCRyYyxwcmVfcm91dGVfY2xrX3Jlc19mYWN0b3IpXG4iCi0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICBpZiB7IVtjYXRjaCB7c2V0IGFyZyAkdmFycygkcmMscHJlX3JvdXRlX2Nsa19jYXBfZmFjdG9yKX1dfSB7Ci0gICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiIC1wcmVfcm91dGVfY2xvY2tfY2FwICRhcmciCi0gICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIG5vbl9jb21tYW5kICIjIC1wcmVfcm91dGVfY2xvY2tfY2FwIFwkdmFycygkcmMscHJlX3JvdXRlX2Nsa19jYXBfZmFjdG9yKVxuIgotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgaWYgeyFbY2F0Y2gge3NldCBhcmcgJHZhcnMoJHJjLHBvc3Rfcm91dGVfcmVzX2ZhY3Rvcil9XX0gewotICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAtcG9zdF9yb3V0ZV9yZXMgIgotICAgICAgICAgICAgICAgICAgICAgaWYge1tsbGVuZ3RoICRhcmddID4gMX0gewotICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIlwiJGFyZ1wiIgotICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICRhcmcKLSAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICBhcHBlbmQgbm9uX2NvbW1hbmQgIiMgLXBvc3Rfcm91dGVfcmVzIFwkdmFycygkcmMscG9zdF9yb3V0ZV9yZXNfZmFjdG9yKVxuIgotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgaWYgeyFbY2F0Y2gge3NldCBhcmcgJHZhcnMoJHJjLHBvc3Rfcm91dGVfY2FwX2ZhY3Rvcil9XX0gewotICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAtcG9zdF9yb3V0ZV9jYXAgIgotICAgICAgICAgICAgICAgICAgICAgaWYge1tsbGVuZ3RoICRhcmddID4gMX0gewotICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIlwiJGFyZ1wiIgotICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICRhcmcKLSAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICBhcHBlbmQgbm9uX2NvbW1hbmQgIiMgLXBvc3Rfcm91dGVfcmVzIFwkdmFycygkcmMscG9zdF9yb3V0ZV9jYXBfZmFjdG9yKVxuIgotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgaWYgeyFbY2F0Y2gge3NldCBhcmcgJHZhcnMoJHJjLHBvc3Rfcm91dGVfY2xrX3Jlc19mYWN0b3IpfV19IHsKLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgLXBvc3Rfcm91dGVfY2xvY2tfcmVzICIKLSAgICAgICAgICAgICAgICAgICAgIGlmIHtbbGxlbmd0aCAkYXJnXSA+IDF9IHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJcIiRhcmdcIiIKLSAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAkYXJnCi0gICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIG5vbl9jb21tYW5kICIjIC1wb3N0X3JvdXRlX2Nsb2NrX3JlcyBcJHZhcnMoJHJjLHBvc3Rfcm91dGVfY2xrX3Jlc19mYWN0b3IpXG4iCi0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICBpZiB7IVtjYXRjaCB7c2V0IGFyZyAkdmFycygkcmMscG9zdF9yb3V0ZV9jbGtfY2FwX2ZhY3Rvcil9XX0gewotICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAtcG9zdF9yb3V0ZV9jbG9ja19jYXAgIgotICAgICAgICAgICAgICAgICAgICAgaWYge1tsbGVuZ3RoICRhcmddID4gMX0gewotICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIlwiJGFyZ1wiIgotICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICRhcmcKLSAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICBhcHBlbmQgbm9uX2NvbW1hbmQgIiMgLXBvc3Rfcm91dGVfY2xvY2tfY2FwIFwkdmFycygkcmMscG9zdF9yb3V0ZV9jbGtfY2FwX2ZhY3RvcilcbiIKLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIGlmIHshW2NhdGNoIHtzZXQgYXJnICR2YXJzKCRyYyxwb3N0X3JvdXRlX2Nyb3NzX2NhcCl9XX0gewotICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAtcG9zdF9yb3V0ZV9jcm9zc19jYXAgIgotICAgICAgICAgICAgICAgICAgICAgaWYge1tsbGVuZ3RoICRhcmddID4gMX0gewotICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIlwiJGFyZ1wiIgotICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICRhcmcKLSAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICBhcHBlbmQgbm9uX2NvbW1hbmQgIiMgLXBvc3Rfcm91dGVfY3Jvc3NfY2FwIFwkdmFycygkcmMscG9zdF9yb3V0ZV94Y2FwX2ZhY3RvcilcbiIKLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJcbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxjcmVhdGVfcmNfY29ybmVyICRjb21tYW5kXQotICAgICAgICAgICAgICAgaWYgeyRub25fY29tbWFuZCAhPSAiIn0gewotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4iCi0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgQWRkaXRpb25hbCAodW51c2VkKSBvcHRpb25zIC4uLi5cbiIKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIgotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICRub25fY29tbWFuZAotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4iCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiB7IVtpbmZvIGV4aXN0cyB2YXJzKHZpZXdfZGVmaW5pdGlvbl90Y2wpXX0gewotICAgICAgICAgICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycyhjcGZfZmlsZSldIHx8IChbaW5mbyBleGlzdHMgdmFycyhjcGZfZmlsZSldICYmICEkdmFycyhjcGZfdGltaW5nKSl9IHsKLSAgICAgICAgICAgICAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICAgICAgICAgICAgICMgQ1BGX1RJTUlORyA9PSBGQUxTRQotICAgICAgICAgICAgICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgIiIKLSAgICAgICAgICAgICAgICAgIGlmIHskdmFycyh2ZXJib3NlKX0gewotICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiNcbiIKLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICIjIDxGRj4gQ1JFQVRJTkcgTElCUkFSWSBTRVRTIC4uLlxuIgotICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiNcbiIKLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAkY29tbWFuZAotICAgICAgICAgICAgICAgICAgZm9yZWFjaCBzZXQgJHZhcnMobGlicmFyeV9zZXRzKSB7Ci0gICAgICAgICAgICAgICAgICAgICBzZXQgY29tbWFuZCAiIgotICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgImNyZWF0ZV9saWJyYXJ5X3NldCAtbmFtZSAkc2V0IC10aW1pbmcgXFtsaXN0ICIKLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICIkdmFycygkc2V0LHRpbWluZykgIgotICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIlxdXG4iCi0gICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksY3JlYXRlX2xpYnJhcnlfc2V0ICRjb21tYW5kXQotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKG9wY29uZHMpXX0gewotICAgICAgICAgICAgICAgICAgICAgaWYgeyR2YXJzKHZlcmJvc2UpfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiI1xuIgotICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiMgPEZGPiBDUkVBVElORyBPUEVSQVRJTkcgQ09ORElUSU9OUyAuLi5cbiIKLSAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICIjXG4iCi0gICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICBmb3JlYWNoIG9wY29uZCAkdmFycyhvcGNvbmRzKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBzZXQgY29tbWFuZCAiY3JlYXRlX29wY29uZCAtbmFtZSAkb3Bjb25kIgotICAgICAgICAgICAgICAgICAgICAgICAgIyBXZSBhbHJlYWR5IGNoZWNrZWQgc28gd2Uga25vdyB0aGVzZSBvcHRpb25zIGV4aXN0Ci0gICAgICAgICAgICAgICAgICAgICAgICBzZXQgbWFwKFApIHByb2Nlc3MKLSAgICAgICAgICAgICAgICAgICAgICAgIHNldCBtYXAoVikgdm9sdGFnZQotICAgICAgICAgICAgICAgICAgICAgICAgc2V0IG1hcChUKSB0ZW1wZXJhdHVyZQotICAgICAgICAgICAgICAgICAgICAgICAgZm9yZWFjaCBvcHRpb24gIlAgViBUIiB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiIC0kbWFwKCRvcHRpb24pICR2YXJzKCRvcGNvbmQsJG9wdGlvbikiCi0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiXG4iCi0gICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksY3JlYXRlX29wY29uZCAkY29tbWFuZF0KLSAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIHNldCBjb21tYW5kICIiCi0gICAgICAgICAgICAgICAgICBpZiB7JHZhcnModmVyYm9zZSl9IHsKLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICIjXG4iCi0gICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiIyA8RkY+IENSRUFUSU5HIERFTEFZIENPUk5FUlMgLi4uXG4iCi0gICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiI1xuIgotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICRjb21tYW5kCi0gICAgICAgICAgICAgICAgICBmb3JlYWNoIGMgJHZhcnMoZGVsYXlfY29ybmVycykgewotICAgICAgICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgImNyZWF0ZV90aW1pbmdfY29uZGl0aW9uIC1uYW1lIHRfJGMiCi0gICAgICAgICAgICAgICAgICAgICBzZXQgZGNvbW1hbmQgImNyZWF0ZV9kZWxheV9jb3JuZXIgLW5hbWUgJGMiCi0gICAgICAgICAgICAgICAgICAgICBpZiB7IVtjYXRjaCB7c2V0IGFyZyAkdmFycygkYyxsaWJyYXJ5X3NldCl9XX0gewotICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAtbGlicmFyeV9zZXQgJGFyZyIKLSAgICAgICAgICAgICAgICAgICAgIH0gZWxzZWlmIHshW2NhdGNoIHtzZXQgZWFybHkgJHZhcnMoJGMsZWFybHlfbGlicmFyeV9zZXQpfV0gJiYKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAhW2NhdGNoIHtzZXQgbGF0ZSAkdmFycygkYyxsYXRlX2xpYnJhcnlfc2V0KX1dfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiIC1lYXJseV9saWJyYXJ5X3NldCAkZWFybHkiCi0gICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiIC1sYXRlX2xpYnJhcnlfc2V0ICRsYXRlIgotICAgICAgICAgICAgICAgICAgICAgfSAgZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBwdXRzICI8RkY+IEVSUk9SOiBMaWJyYXJ5IHNldHMgZm9yIHRpbWluZyBjb25kaXRpb24gJGMgbm90IGRlZmluZWQgcHJvcGVybHkiCi0gICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICBhcHBlbmQgZGNvbW1hbmQgIiAtcmNfY29ybmVyICR2YXJzKCRjLHJjX2Nvcm5lcikiCi0gICAgICAgICAgICAgICAgICAgICBpZiB7IVtjYXRjaCB7c2V0IG9wY29uZCAkdmFycygkYyxvcGNvbmQpfV0gJiYgIVtjYXRjaCB7c2V0IGxpYnJhcnkgJHZhcnMoJGMsb3Bjb25kX2xpYnJhcnkpfV19IHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgLW9wY29uZF9saWJyYXJ5ICRsaWJyYXJ5IgotICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAtb3Bjb25kICRvcGNvbmQiCi0gICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICAgaWYgeyFbY2F0Y2gge3NldCBlYXJseSAkdmFycygkYyxlYXJseV9vcGNvbmRfbGlicmFyeSl9XSAmJgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICFbY2F0Y2gge3NldCBsYXRlICR2YXJzKCRjLGxhdGVfb3Bjb25kX2xpYnJhcnkpfV19IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgLWVhcmx5X29wY29uZF9saWJyYXJ5ICRlYXJseSIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgLWxhdGVfb3Bjb25kX2xpYnJhcnkgJGxhdGUiCi0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiB7IVtjYXRjaCB7c2V0IGVhcmx5X29wY29uZCAkdmFycygkYyxlYXJseV9vcGNvbmQpfV0gJiYKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAhW2NhdGNoIHtzZXQgbGF0ZV9vcGNvbmQgJHZhcnMoJGMsbGF0ZV9vcGNvbmQpfV19IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgLWVhcmx5X29wY29uZCAkZWFybHlfb3Bjb25kIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAtbGF0ZV9vcGNvbmQgJGxhdGVfb3Bjb25kIgotICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIlxuIgotICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGRjb21tYW5kICIgLXRpbWluZ19jb25kaXRpb24geyIKLSAgICAgICAgICAgICAgICAgICAgIGlmIHtbY2F0Y2gge3NldCBkb21haW5zICR2YXJzKCRjLHBvd2VyX2RvbWFpbnMpfV19IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBkY29tbWFuZCAidF8kYyIKLSAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBzZXQgYXR0cmlidXRlX2xpc3QgImxpYnJhcnlfc2V0IG9wY29uZF9saWJyYXJ5IG9wY29uZCBpcmRyb3BfZmlsZSBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhdGVfbGlicmFyeV9zZXQgZWFybHlfbGlicmFyeV9zZXQgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXRlX29wY29uZF9saWJyYXJ5IGVhcmx5X29wY29uZF9saWJyYXJ5IFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF0ZV9vcGNvbmQgZWFybHlfb3Bjb25kIGxhdGVfaXJkcm9wX2ZpbGUgZWFybHlfaXJkcm9wX2ZpbGUiCi0gICAgICAgICAgICAgICAgICAgICAgICBmb3JlYWNoIGRvbWFpbiAkZG9tYWlucyB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgZGNvbW1hbmQgIiB0XyRjIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGRjb21tYW5kICIgJGRvbWFpbkB0XyRjIgotICAgIyAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiB1cGRhdGVfZGVsYXlfY29ybmVyIC1uYW1lICRjIC1wb3dlcl9kb21haW4gXCIkZG9tYWluXCIiCi0gICAjICAgICAgICAgICAgICAgICAgICAgICAgZm9yZWFjaCBhdHRyICRhdHRyaWJ1dGVfbGlzdCB7Ci0gICAjICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCRjLCRkb21haW4sJGF0dHIpXX0gewotICAgIyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgLSRhdHRyICR2YXJzKCRjLCRkb21haW4sJGF0dHIpIgotICAgIyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IAotICAgIyAgICAgICAgICAgICAgICAgICAgICAgIH0gCi0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAjICAgICAgICAgICAgICAgICAgICAgICBpZiB7IVtjYXRjaCB7c2V0IG9wY29uZCAkdmFycygkZG9tYWluLG9wY29uZCl9XSAmJgotICAgIyAgICAgICAgICAgICAgICAgICAgICAgICAgICFbY2F0Y2gge3NldCBsaWJyYXJ5ICR2YXJzKCRkb21haW4sb3Bjb25kX2xpYnJhcnkpfV19IHsKLSAgICMgICAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgLW9wY29uZF9saWJyYXJ5ICRsaWJyYXJ5IgotICAgIyAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAtb3Bjb25kICRvcGNvbmQiCi0gICAjICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgfSAKLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBkY29tbWFuZCAiIH1cbiIKLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxjcmVhdGVfdGltaW5nX2NvbmRpdGlvbiAkY29tbWFuZF0KLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxjcmVhdGVfZGVsYXlfY29ybmVyICRkY29tbWFuZF0KLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIHNldCBjb21tYW5kICIiCi0gICAgICAgICAgICAgICAgICBpZiB7JHZhcnModmVyYm9zZSl9IHsKLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICIjXG4iCi0gICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiIyA8RkY+IENSRUFUSU5HIENPTlNUUkFJTlQgTU9ERVMgLi4uXG4iCi0gICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiI1xuIgotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICRjb21tYW5kCi0gICAKLSAgICAgICAgICAgICAgICAgICMgVmFyaWFibGUgY2NvbW1hbmQgY2FwdHVyZXMgdGhlIGNvbnN0cmFpbnQgY3JlYXRpb24gZm9yIHRoZSB2aWV3X2RlZmluaXRpb24udGNsIAotICAgICAgICAgICAgICAgICAgIyBWYXJpYWJsZSB1Y29tbWFuZCBjYXB0dXJlIHRoZSBjb25zdHJhaW50IHVwZGF0ZXMgZm9yIGhpZXIvaWxtIGZsb3dzCi0gICAgICAgICAgICAgICAgICAjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIAotICAgICAgICAgICAgICAgICAgc2V0IGNjb21tYW5kICIiCi0gICAKLSAgICAgICAgICAgICAgICAgIHNldCBhY3RpdmVfdmlld3MgW2xpc3RdCi0gICAgICAgICAgICAgICAgICBzZXQgYWN0aXZlX21vZGVzIFtsaXN0XQotICAgCi0gICAgICAgICAgICAgICAgICAjIEdldCBtb2RlcyBhY3R1YWxseSB1c2VkIC4uLiAoY2hhbmdlZCBmcm9tIGFjdGl2ZSB0byBhbGwgdmlld3MpCi0gICAgICAgICAgICAgICAgICBmb3JlYWNoIHZpZXcgW2NvbmNhdCAkdmFycyhzZXR1cF9hbmFseXNpc192aWV3cykgJHZhcnMoaG9sZF9hbmFseXNpc192aWV3cyldIHsKLSAgICAgICAgICAgICAgICAgICAgIGlmIHtbbHNlYXJjaCAkYWN0aXZlX3ZpZXdzICR2aWV3XSA9PSAtMX0gewotICAgIyAgICAgICAgICAgICAgICAgICAgIGxhcHBlbmQgYWN0aXZlX3ZpZXdzICR2aWV3Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiB7W2xzZWFyY2ggJGFjdGl2ZV9tb2RlcyAkdmFycygkdmlldyxjb25zdHJhaW50X21vZGUpXSA9PSAtMX0gewotICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFwcGVuZCBhY3RpdmVfbW9kZXMgJHZhcnMoJHZpZXcsY29uc3RyYWludF9tb2RlKQotICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgfQotICAgCi0gICAgICAgICAgICAgICAgICBzZXQgZmxhdHRlbl9pbG0gMAotICAgICAgICAgICAgICAgICAgZm9yZWFjaCBjb25zdHJhaW50X21vZGUgJGFjdGl2ZV9tb2RlcyB7Ci0gICAgICAgICAgICAgICAgICAgICBpZiB7ISR2YXJzKGlsbSl9IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICMgRGVmYXVsdCBmbGF0IGZsb3cKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkY29uc3RyYWludF9tb2RlLHByZV9jdHNfc2RjKV19IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldCBjb21tYW5kICAiY3JlYXRlX2NvbnN0cmFpbnRfbW9kZSAtbmFtZSAkY29uc3RyYWludF9tb2RlICIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICItc2RjX2ZpbGVzIFxbbGlzdCAkdmFycygkY29uc3RyYWludF9tb2RlLHByZV9jdHNfc2RjKVxdICIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJcbiIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjY29tbWFuZCBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxjcmVhdGVfY29uc3RyYWludF9tb2RlICRjb21tYW5kXQotICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIHshW2luZm8gZXhpc3RzIHZhcnMoJGNvbnN0cmFpbnRfbW9kZSxzeW50aF9zZGMpXSAmJiAkdmFycyhyYyl9IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1dHMgIkNvbnN0cmFpbnQgZmlsZSBub3QgZm91bmQgZm9yICRjb25zdHJhaW50X21vZGUgLi4uIiAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIHskdmFycyhyYyl9IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkY29uc3RyYWludF9tb2RlLHN5bnRoX3NkYyldfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXQgY29tbWFuZCAgImNyZWF0ZV9jb25zdHJhaW50X21vZGUgLW5hbWUgJGNvbnN0cmFpbnRfbW9kZSAiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiLXNkY19maWxlcyBcW2xpc3QgJHZhcnMoJGNvbnN0cmFpbnRfbW9kZSxzeW50aF9zZGMpXF0gIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIlxuIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNjb21tYW5kIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLGNyZWF0ZV9jb25zdHJhaW50X21vZGUgJGNvbW1hbmRdCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXQgdmFycyhkZWZhdWx0X3N5bnRoZXNpc19tb2RlKSAkY29uc3RyYWludF9tb2RlCi0gICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycygkY29uc3RyYWludF9tb2RlLHByZV9jdHNfc2RjKV19IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1dHMgIkNvbnN0cmFpbnQgZmlsZSBub3QgZm91bmQgZm9yICRjb25zdHJhaW50X21vZGUgLi4uIiAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIHshW2luZm8gZXhpc3RzIHZhcnMoZGVmYXVsdF9zeW50aGVzaXNfbW9kZSldfSB7IAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHV0cyAiPEVSUk9SPiA6IFBsZWFzZSBkZWZpbmUgYSBzeW50aF9zZGMgZm9yIG9uZSBvZiB0aGUgY29uc3RyYWludCBtb2RlcyIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4aXQKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAjIElMTSBmbG93Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMocGFydGl0aW9uX2xpc3QpXX0gewotICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0IHNkY3MgIiIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICMgSGllcmFyY2h5ICsgSUxNcwotICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCRjb25zdHJhaW50X21vZGUscHJlX2N0c19pbG1fc2RjKV19IHsKLSAgICMgICAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICItc2RjX2ZpbGVzIFxbbGlzdCAkdmFycygkY29uc3RyYWludF9tb2RlLHByZV9jdHNfc2RjKVxdICIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4ZWMgL2Jpbi90b3VjaCBlbXB0eS5zZGMKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBzZGNzICItc2RjX2ZpbGVzIGVtcHR5LnNkYyAiIAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIHNkY3MgIi1pbG1fc2RjX2ZpbGVzIFxbbGlzdCAkdmFycygkY29uc3RyYWludF9tb2RlLHByZV9jdHNfaWxtX3NkYylcXVxuIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4ZWMgL2Jpbi90b3VjaCBlbXB0eS5zZGMKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBzZGNzICItc2RjX2ZpbGVzIGVtcHR5LnNkYyAiIAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIHNkY3MgIi1pbG1fc2RjX2ZpbGVzIFxbbGlzdCAkdmFycygkY29uc3RyYWludF9tb2RlLHByZV9jdHNfc2RjKVxdXG4iCi0gICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICBpZiB7JHZhcnModG9wKX0geyAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIHshW2luZm8gZXhpc3RzIHVjb21tYW5kXX0geyBzZXQgdWNvbW1hbmQgIiJ9Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXQgY29tbWFuZCAgInVwZGF0ZV9jb25zdHJhaW50X21vZGUgLW5hbWUgJGNvbnN0cmFpbnRfbW9kZSAiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAkc2RjcwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tYW5kIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHVwZGF0ZV9jb25zdHJhaW50X21vZGUgJGNvbW1hbmRdCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXQgZHluYW1pY191cGRhdGUgMQotICAgIyAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlCi0gICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgICJjcmVhdGVfY29uc3RyYWludF9tb2RlIC1uYW1lICRjb25zdHJhaW50X21vZGUgIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgJHNkY3MKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjY29tbWFuZCBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxjcmVhdGVfY29uc3RyYWludF9tb2RlICRjb21tYW5kXQotICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICMgSUxNIG9ubHkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldCBjb21tYW5kICAiY3JlYXRlX2NvbnN0cmFpbnRfbW9kZSAtbmFtZSAkY29uc3RyYWludF9tb2RlICIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkY29uc3RyYWludF9tb2RlLHByZV9jdHNfaWxtX3NkYyldfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBleGVjIC9iaW4vdG91Y2ggZW1wdHkuc2RjCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgc2RjcyAiLXNkY19maWxlcyBlbXB0eS5zZGMgIiAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBzZGNzICItaWxtX3NkY19maWxlcyBcW2xpc3QgJHZhcnMoJGNvbnN0cmFpbnRfbW9kZSxwcmVfY3RzX2lsbV9zZGMpXF1cbiIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBleGVjIC9iaW4vdG91Y2ggZW1wdHkuc2RjCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgc2RjcyAiLXNkY19maWxlcyBlbXB0eS5zZGMgIiAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBzZGNzICItaWxtX3NkY19maWxlcyBcW2xpc3QgJHZhcnMoJGNvbnN0cmFpbnRfbW9kZSxwcmVfY3RzX3NkYylcXVxuIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgJHNkY3MKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjY29tbWFuZCBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxjcmVhdGVfY29uc3RyYWludF9tb2RlICRjb21tYW5kXQotICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgfQotICAgCi0gICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAkY2NvbW1hbmQKLSAgIAotICAgICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyBkeW5hbWljX3VwZGF0ZV0gJiYgJGR5bmFtaWNfdXBkYXRlfSB7Ci0gICAjICAgICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgIiIKLSAgICMgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiZm9yZWFjaCBtb2RlIFxbYWxsX2NvbnN0cmFpbnRfbW9kZXNcXSB7XG4iCi0gICAjICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAgIHVwZGF0ZV9jb25zdHJhaW50X21vZGUgLW5hbWUgXCRtb2RlIC1zZGNfZmlsZXMgZW1wdHkuc2RjIFxcXG4iCi0gICAjICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAgICAgIC1pbG1fc2RjX2ZpbGVzIFxbZ2V0X2NvbnN0cmFpbnRfbW9kZSBcJG1vZGUgLXNkY19maWxlc1xdXG4iCi0gICAjICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIn1cbiIKLSAgICMgICAgICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1hbmQgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksdXBkYXRlX2NvbnN0cmFpbnRfbW9kZSAkY29tbWFuZF0KLSAgIAotICAgICAgICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgIiIKLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJmb3JlYWNoIG1vZGUgXFthbGxfY29uc3RyYWludF9tb2Rlc10gXHtcbiIKLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgICBmb3JlYWNoIHZpZXcgXFthbGxfYW5hbHlzaXNfdmlld3NdIFx7XG4iCi0gICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiICAgICAgc2V0IG0gXFtyZWdzdWIgX1wkdmlldyBcJG1vZGUgXCJcIlxdXG4iCi0gICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiICAgICAgaWYgXHsoIFwkbSAhPSBcJG1vZGUgKSAmJiAoIFxbbHNlYXJjaCBcW2FsbF9jb25zdHJhaW50X21vZGVzXF0gXCRtXF0gIT0gLTEpIFx9IFx7XG4iCi0gICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiICAgICAgICAgdXBkYXRlX2NvbnN0cmFpbnRfbW9kZSAtbmFtZSBcJG1vZGUgLXNkY19maWxlcyBlbXB0eS5zZGMgLWlsbV9zZGNfZmlsZXMgXFtnZXRfY29uc3RyYWludF9tb2RlIFwkbSAtaWxtX3NkY19maWxlc1xdXG4iCi0gICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiICAgICAgXH1cbiIKLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgICBcfSBcbiIKLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJcfSBcbiIKLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWFuZCBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxkeW5hbWljX3VwZGF0ZSAkY29tbWFuZF0KLSAgIAotICAgICAgICAgICAgICAgICAgICAgaWYgeyR2YXJzKGlsbSl9IHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWFuZCBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxmbGF0dGVuX2lsbSAiZmxhdHRlbl9pbG1cbiJdCi0gICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICB9IAotCi0gICAgICAgICAgICAgICAgICBpZiB7KCR2YXJzKHVzZXJfbW9kZSkgPT0gImhpZXIiKSAmJiAhW2luZm8gZXhpc3RzIHZhcnModmlld19kZWZpbml0aW9uX3RjbCldfSB7Ci0gICAgICAgICAgICAgICAgICAgICBpZiB7KCR2YXJzKHN0ZXApID09ICJhc3NlbWJsZSIpIHx8ICgkdmFycyhzdGVwKSA9PSAicmVidWRnZXQiKSB8fCAoJHZhcnMoc3RlcCkgPT0gImFzc2VtYmxlX2ZsZXhpbG0iKSB8fCAoJHZhcnMoc3RlcCkgPT0gInBhcnRpdGlvbl9wbGFjZSIpIHx8ICgkdmFycyhzdGVwKSA9PSAibW9kZWxfZ2VuIil9IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICMgQ3JlYXRlIG1tbWMgZmlsZSBmb3IgcGFydGl0aW9uIGFuZCBhc3NlbWJsZSBzdGVwCi0gICAgICAgICAgICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoY3BmX2ZpbGUpXSAmJiAkdmFycyhjcGZfdGltaW5nKX0gewotICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0IG1tbWNfZmlsZSAkdmFycyhzY3JpcHRfZGlyKS9pbmNyX3ZpZXdfZGVmaW5pdGlvbi50Y2wKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldCBvcCBbb3BlbiAkbW1tY19maWxlIHddCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBwdXRzICRvcCBbRkY6OnByZXR0eV9wcmludCAkY29tbWFuZHMgMV0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsb3NlICRvcAotICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyh2aWV3X2RlZmluaXRpb25fdGNsKV19IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldCBtbW1jX2ZpbGUgJHZhcnModmlld19kZWZpbml0aW9uX3RjbCkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXQgbW1tY19maWxlICR2YXJzKHNjcmlwdF9kaXIpL3ZpZXdfZGVmaW5pdGlvbi50Y2wKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldCBvcCBbb3BlbiAkbW1tY19maWxlIHddCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdXRzICRvcCBbRkY6OnByZXR0eV9wcmludCAkY29tbWFuZHMgMV0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsb3NlICRvcAotICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgI3JldHVybiAkY29tbWFuZHMKLSAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAjIFJldHVybiBvbmx5IGNvbnN0cmFpbnQgbW9kZSB1cGRhdGVzIGZvciB0b3AgbGV2ZWwgZmxvdwotICAgICAgICAgICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB1Y29tbWFuZF19IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAkdWNvbW1hbmQKLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnModmlld19kZWZpbml0aW9uX3RjbCldfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHVjb21tYW5kXX0gewotICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICR1Y29tbWFuZAotICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycyhwb3dlcl9hbmFseXNpc192aWV3KV19IHsKLSAgICAgICAgICAgICAgICAgICAgIHNldCB2YXJzKHBvd2VyX2FuYWx5c2lzX3ZpZXcpICIiCi0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICBzZXQgdmFycyhhbGxfYW5hbHlzaXNfdmlld3MpIFwKLSAgICAgICAgICAgICAgICAgICAgIFtsc29ydCAtdW5pcXVlIFtjb25jYXQgJHZhcnMoc2V0dXBfYW5hbHlzaXNfdmlld3MpIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHZhcnMoaG9sZF9hbmFseXNpc192aWV3cykgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkdmFycyhwb3dlcl9hbmFseXNpc192aWV3KV1dCi0gICAgICAgICAgICAgICAgICBzZXQgY29tbWFuZCAiIgotICAgICAgICAgICAgICAgICAgaWYgeyR2YXJzKHZlcmJvc2UpfSB7Ci0gICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiI1xuIgotICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiMgPEZGPiBDUkVBVElORyBBTkFMWVNJUyBWSUVXUyAuLi5cbiIKLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICIjXG4iCi0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICBmb3JlYWNoIHZpZXcgJHZhcnMoYWxsX2FuYWx5c2lzX3ZpZXdzKSB7Ci0jICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgImlmIHtcW2xzZWFyY2ggXFthbGxfYW5hbHlzaXNfdmlld3NcXSAkdmlld1xdID09IC0xfSB7XG4iCi0gICAgICAgICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoZGVmYXVsdF9zeW50aGVzaXNfbW9kZSldICYmICgkdmFycygkdmlldyxjb25zdHJhaW50X21vZGUpID09ICR2YXJzKGRlZmF1bHRfc3ludGhlc2lzX21vZGUpKX0gewotICAgICAgICAgICAgICAgICAgICAgICAgc2V0IHZhcnMoZGVmYXVsdF9zeW50aGVzaXNfdmlldykgJHZpZXcKLSAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJjcmVhdGVfYW5hbHlzaXNfdmlldyIKLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgICAtbmFtZSAkdmlldyIKLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgICAtY29uc3RyYWludF9tb2RlICR2YXJzKCR2aWV3LGNvbnN0cmFpbnRfbW9kZSkiCi0gICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiICAgLWRlbGF5X2Nvcm5lciAkdmFycygkdmlldyxkZWxheV9jb3JuZXIpXG4iCi0jICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIn1cbiIKLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxjcmVhdGVfYW5hbHlzaXNfdmlldyAkY29tbWFuZF0KLSAgICAgICAgICAgICAgICAgIGlmIHshW2luZm8gZXhpc3RzIHZhcnMoZ2VuX3Bvc3Rsb2FkKV19IHsgCi0gICAgICAgICAgICAgICAgICAgICBpZiB7W2xpbmRleCBbc3BsaXQgJHZhcnModmVyc2lvbikgIi4iXSAgMF0gPD0gMTB9IHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHNldCBjb21tYW5kICIiCi0gICAgICAgICAgICAgICAgICAgICAgICBmb3JlYWNoIGMgJHZhcnMoZGVsYXlfY29ybmVycykgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgeyFbY2F0Y2gge3NldCBkb21haW5zICR2YXJzKCRjLHBvd2VyX2RvbWFpbnMpfV19IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcmVhY2ggZG9tYWluICRkb21haW5zIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgdXBkYXRlX2RlbGF5X2Nvcm5lciAtbmFtZSAkYyAtcG93ZXJfZG9tYWluIFwiJGRvbWFpblwiXG4iCi0gICAgICAgICAjICAgICAgICAgICAgICAgICAgICAgICAgaWYgeyFbY2F0Y2gge3NldCBvcGNvbmQgJHZhcnMoJGRvbWFpbixvcGNvbmQpfV0gJiYKLSAgICAgICAgICMgICAgICAgICAgICAgICAgICAgICAgICAgICAgIVtjYXRjaCB7c2V0IGxpYnJhcnkgJHZhcnMoJGRvbWFpbixvcGNvbmRfbGlicmFyeSl9XX0gewotICAgICAgICAgIyAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgLW9wY29uZF9saWJyYXJ5ICRsaWJyYXJ5IgotICAgICAgICAgIyAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgLW9wY29uZCAkb3Bjb25kIgotICAgICAgICAgIyAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCBpbml0LHVwZGF0ZV9kZWxheV9jb3JuZXIgJGNvbW1hbmRdCi0gICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgICAgICAgICAgICAgIyBDUEZfVElNSU5HID09IFRSVUUKLSAgICAgICAgICAgICAgICAgICMgU2luY2UgdGhlIGRlbGF5IGNvcm5lciBuYW1lcyBhcmUgZGVyaXZlZCBmcm9tIHRoZSBDUEYsIHRoZXkKLSAgICAgICAgICAgICAgICAgICMgYXJlIG5vdCBrbm93bi4gIEhvd2V2ZXIsIHRoZXkgY2FuIGJlIHJldHJpZXZlZCBmcm9tIHRoZQotICAgICAgICAgICAgICAgICAgIyBhbmFseXNpc192aWV3cwotICAgICAgICAgICAgICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgCi0gICAjICAgICAgICAgICAgICAgaWYgeyR2YXJzKHZlcmJvc2UpfSB7Ci0gICAjICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICBVUERBVElORyBERUxBWSBDT1JORVJTICAuLi5cbiIKLSAgICMgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICBpZiB7IVtpbmZvIGV4aXN0cyB2YXJzKGRlbGF5X2Nvcm5lcnMpXX0gewotICAgICAgICAgICAgICAgICAgICAgc2V0IHZhcnMoZGVsYXlfY29ybmVycykgW0ZGOjpbZ2V0X2J5X3N1ZmZpeCB2YXJzICIscmNfY29ybmVyIl1dCi0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICBzZXQgY29tbWFuZCAiIgotICAgICAgICAgICAgICAgICAgZm9yZWFjaCBjb3JuZXIgJHZhcnMoZGVsYXlfY29ybmVycykgewotICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgImlmIHtcW2xzZWFyY2ggLWV4YWN0IFxbYWxsX2RlbGF5X2Nvcm5lcnNcXSAkY29ybmVyXF0gIT0gLTF9IHtcbiIKLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgICB1cGRhdGVfZGVsYXlfY29ybmVyIC1uYW1lICRjb3JuZXIgLXJjX2Nvcm5lciAkdmFycygkY29ybmVyLHJjX2Nvcm5lcilcbiIKLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJ9XG4iCi0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksdXBkYXRlX2RlbGF5X2Nvcm5lciAkY29tbWFuZF0KLSAgICAgICAgICAgICAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICAgICAgICAgICAgICMgVXBkYXRlIGNvbnN0cmFpbnRzIG1vZGVzIGlmIGFuIElMTSBmbG93Ci0gICAgICAgICAgICAgICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAgICAgICAgICAgICBzZXQgY2NvbW1hbmQgIiIKLSAgICAgICAgICAgICAgICAgIGZvcmVhY2ggY29uc3RyYWludF9tb2RlICR2YXJzKGNvbnN0cmFpbnRfbW9kZXMpIHsKLSAgICAgICAgICAgICAgICAgICAgIGlmIHskdmFycyhpbG0pfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMocGFydGl0aW9uX2xpc3QpXX0gewotICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgICJ1cGRhdGVfY29uc3RyYWludF9tb2RlIC1uYW1lICRjb25zdHJhaW50X21vZGUgIgotICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldCBjb21tYW5kICAiY3JlYXRlX2NvbnN0cmFpbnRfbW9kZSAtbmFtZSAkY29uc3RyYWludF9tb2RlICIKLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkY29uc3RyYWludF9tb2RlLHByZV9jdHNfaWxtX3NkYyldfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiLXNkY19maWxlcyBcW2xpc3QgJHZhcnMoJGNvbnN0cmFpbnRfbW9kZSxwcmVfY3RzX3NkYylcXSAiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiLWlsbV9zZGNfZmlsZXMgXFtsaXN0ICR2YXJzKCRjb25zdHJhaW50X21vZGUscHJlX2N0c19pbG1fc2RjKVxdICIKLSAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICBleGVjIC9iaW4vdG91Y2ggZW1wdHkuc2RjCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiLXNkY19maWxlcyBlbXB0eS5zZGMgIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIi1pbG1fc2RjX2ZpbGVzIFxbbGlzdCAkdmFycygkY29uc3RyYWludF9tb2RlLHByZV9jdHNfc2RjKVxdICIKLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJcbiIKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhwYXJ0aXRpb25fbGlzdCldfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY2NvbW1hbmQgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksdXBkYXRlX2NvbnN0cmFpbnRfbW9kZSAkY29tbWFuZF0KLSAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY2NvbW1hbmQgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksY3JlYXRlX2NvbnN0cmFpbnRfbW9kZSAkY29tbWFuZF0KLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIH0KLSAgIAotICAgICAgICAgICAgICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgICAgICAgICAgICAgIyBSZXR1cm4gZWFybHkgZm9yIHBhcnRpdGlvbiBpbXBsZW1lbnRhdGlvbiBmbG93cyAuLi4KLSAgICAgICAgICAgICAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICAgICAgICAgICAgIGlmIHsoKCR2YXJzKG1vZGUpID09ICJoaWVyIikgfHwgKFtpbmZvIGV4aXN0cyB2YXJzKGhpZXIpXSAmJiAkdmFycyhoaWVyKSkpICYmICgkdmFycyhzdGVwKSAhPSAicGFydGl0aW9uIil9IHsKLSAgICAgICAgICAgICAgICAgICAgIHNldCBjb21tYW5kcyAkY2NvbW1hbmQKLSAgICAgICAgICAgICAgICAgICAgIHJldHVybiAkY29tbWFuZHMKLSAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgJGNjb21tYW5kCi0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICAgICAgICMgVXBkYXRlIGxpYnJhcnlfc2V0cyB3aXRoIFNJIGxpYnJhcmllcyBpZiBkZWZpbmVkCi0gICAgICAgICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0KLSMgICAgICAgICAgICBpZiB7JHZhcnModmVyYm9zZSl9IHsKLSMgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIFVQREFUSU5HIExJQlJBUlkgU0VUUyAgLi4uXG4iCi0jICAgICAgICAgICAgfQotICAgICAgICAgICAgc2V0IGNvbW1hbmQgIiIKLSAgICAgICAgICAgIGZvcmVhY2ggc2V0ICR2YXJzKGxpYnJhcnlfc2V0cykgewotICAgICAgICAgICAgICAgaWYgeyhbaW5mbyBleGlzdHMgdmFycygkc2V0LHNpKV0gJiYgKCR2YXJzKCRzZXQsc2kpICE9ICIiKSkgfHwgXAotICAgICAgICAgICAgICAgICAgIChbaW5mbyBleGlzdHMgdmFycygkc2V0LHNvY3YpXSAmJiAoJHZhcnMoJHNldCxzb2N2KSAhPSAiIikpIHx8IFwKLSAgICAgICAgICAgICAgICAgICAoW2luZm8gZXhpc3RzIHZhcnMoJHNldCxhb2N2KV0gJiYgKCR2YXJzKCRzZXQsYW9jdikgIT0gIiIpKX0gewotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgInVwZGF0ZV9saWJyYXJ5X3NldCAtbmFtZSAkc2V0IgotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCRzZXQsc29jdildICYmICgkdmFycygkc2V0LHNvY3YpICE9ICIiKX0gewotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAtc29jdiBcW2xpc3QiCi0gICAgICAgICAgICAgICAgICBmb3JlYWNoIGZpbGUgJHZhcnMoJHNldCxzb2N2KSB7Ci0gICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiICRmaWxlIgotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIlxdIgotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCRzZXQsYW9jdildICYmICgkdmFycygkc2V0LGFvY3YpICE9ICIiKX0gewotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAtYW9jdiBcW2xpc3QiCi0gICAgICAgICAgICAgICAgICBmb3JlYWNoIGZpbGUgJHZhcnMoJHNldCxhb2N2KSB7Ci0gICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiICRmaWxlIgotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIlxdIgotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCRzZXQsc2kpXSAmJiAoJHZhcnMoJHNldCxzaSkgIT0gIiIpfSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiIC1zaSBcW2xpc3QiCi0gICAgICAgICAgICAgICAgICBmb3JlYWNoIGZpbGUgJHZhcnMoJHNldCxzaSkgewotICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAkZmlsZSIKLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJcXSIKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJcbiIKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSx1cGRhdGVfbGlicmFyeV9zZXQgJGNvbW1hbmRdCi0KLSMgICAgICAgICAgICBpZiB7JHZhcnMoZmxvdykgIT0gIm1tbWMifSB7Ci0jICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRl9OT1ZVUzo6dXBkYXRlX3RpbWluZyBtbW1jXQotIyAgICAgICAgICAgIH0KLSMgICAgICAgICAgICBzZXQgY29tbWFuZCBbRkZfTk9WVVM6OmRlcmF0ZV90aW1pbmcgbW1tY10KLSMgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksZGVyYXRlX3RpbWluZyAkY29tbWFuZF0KLQotICAgICAgICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgICAgICAgIyBEZWZpbmUgc2V0dXAgLyBob2xkIGFuYWx5c2lzIHZpZXdzIGFuZCBlbmFibGUgdGhlIGRlZmF1bHQgdmlld3MKLSAgICAgICAgICAgICMgZm9yIGVhY2gKLSAgICAgICAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLQotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJzZXRfYW5hbHlzaXNfdmlldyIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIC1zZXR1cCBcW2xpc3QgJHZhcnMoYWN0aXZlX3NldHVwX3ZpZXdzKVxdIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIgLWhvbGQgXFtsaXN0ICR2YXJzKGFjdGl2ZV9ob2xkX3ZpZXdzKVxdXG4iCi0gICAgICAgICAgICBmaWxlIG1rZGlyICR2YXJzKHNjcmlwdF9kaXIpCi0gICAgICAgICAgICBpZiB7W2xpbmRleCBbc3BsaXQgJHZhcnModmVyc2lvbikgIi4iXSAgMF0gPD0gMTB9IHsKLSAgICAgICAgICAgICAgIGlmIHskdmFycyhmbGF0KSAhPSAiZnVsbCJ9IHsKLSAgICAgICAgICAgICAgICAgIHNldCBvcCBbb3BlbiAkdmFycyhzY3JpcHRfZGlyKS9tbW1jLnRjbCB3XQotICAgICAgICAgICAgICAgICAgcHV0cyAkb3AgW0ZGOjpwcmV0dHlfcHJpbnQgJGNvbW1hbmRzIDFdCi0gICAgICAgICAgICAgICAgICBjbG9zZSAkb3AKLSAgICAgICAgICAgICAgICAgIHNldCBjb21tYW5kcyAic291cmNlIFwkdmFycyhzY3JpcHRfZGlyKS9tbW1jLnRjbFxuIgotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhjcGZfZmlsZSldICYmICR2YXJzKGNwZl90aW1pbmcpfSB7Ci0gICAgICAgICAgICAgICAgICBzZXQgbW1tY19maWxlICR2YXJzKHNjcmlwdF9kaXIpL2luY3Jfdmlld19kZWZpbml0aW9uLnRjbAotICAgICAgICAgICAgICAgICAgc2V0IG9wIFtvcGVuICRtbW1jX2ZpbGUgd10KLSAgICAgICAgICAgICAgICAgIHB1dHMgJG9wIFtGRjo6cHJldHR5X3ByaW50ICRjb21tYW5kcyAxXQotICAgICAgICAgICAgICAgICAgY2xvc2UgJG9wCi0gICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKHZpZXdfZGVmaW5pdGlvbl90Y2wpXX0gewotICAgICAgICAgICAgICAgICAgICAgc2V0IG1tbWNfZmlsZSAkdmFycyh2aWV3X2RlZmluaXRpb25fdGNsKQotICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgIHNldCBtbW1jX2ZpbGUgJHZhcnMoc2NyaXB0X2Rpcikvdmlld19kZWZpbml0aW9uLnRjbAotICAgICAgICAgICAgICAgICAgICAgc2V0IHZhcnModmlld19kZWZpbml0aW9uX3RjbCkgJG1tbWNfZmlsZQotICAgICAgICAgICAgICAgICAgICAgc2V0IG9wIFtvcGVuICRtbW1jX2ZpbGUgd10KLSAgICAgICAgICAgICAgICAgICAgIHB1dHMgJG9wIFtGRjo6cHJldHR5X3ByaW50ICRjb21tYW5kcyAxXQotICAgICAgICAgICAgICAgICAgICAgY2xvc2UgJG9wCi0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICByZXR1cm4KLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0KLSAgICAgICAgIGRlZmF1bHQgewotICAgICAgICAgICAgcHV0cyAgIjxGRj4gSU5WQUxJRCBPUFRJT04gLi4uIE1VU1QgQkUgRUlUSEVSIG1pbm1heCBPUiBtbW1jIgotICAgICAgICAgfQotICAgICAgfQotICAgICAgcmV0dXJuICRjb21tYW5kcwotICAgfQotCi0gICBwcm9jIHVwZGF0ZV9yY19jb3JuZXJzIHt9IHsKLQotICAgICAgZ2xvYmFsIHZhcnMKLQotICAgICAgZm9yZWFjaCByY19jb3JuZXIgW2FsbF9yY19jb3JuZXJzXSB7Ci0gICAgICAgICBpZiB7JHJjX2Nvcm5lciAhPSAiZGVmYXVsdF9yY19jb3JuZXIifSB7Ci0gICAgICAgICAgICBzZXQgdXBkYXRlIGZhbHNlCi0gICAgICAgICAgICBzZXQgY29tbWFuZCAidXBkYXRlX3JjX2Nvcm5lciAtbmFtZSAkcmNfY29ybmVyICIKLSAgICAgICAgICAgIGlmIHtbZ2V0X3JjX2Nvcm5lciAkcmNfY29ybmVyIC1jYXBfdGFibGVdICE9ICR2YXJzKCRyY19jb3JuZXIsY2FwX3RhYmxlKX0gewotICAgICAgICAgICAgICAgc2V0IHVwZGF0ZSB0cnVlCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiLWNhcF90YWJsZSAkdmFycygkcmNfY29ybmVyLGNhcF90YWJsZSkgIgotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYge1tnZXRfcmNfY29ybmVyICRyY19jb3JuZXIgLXByZVJvdXRlX3Jlc10gIT0gJHZhcnMoJHJjX2Nvcm5lcixwcmVfcm91dGVfcmVzX2ZhY3Rvcil9IHsKLSAgICAgICAgICAgICAgIHNldCB1cGRhdGUgdHJ1ZQotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIi1wcmVSb3V0ZV9yZXMgJHZhcnMoJHJjX2Nvcm5lcixwcmVfcm91dGVfcmVzX2ZhY3RvcikgIgotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYge1tnZXRfcmNfY29ybmVyICRyY19jb3JuZXIgLXByZVJvdXRlX2NhcF0gIT0gJHZhcnMoJHJjX2Nvcm5lcixwcmVfcm91dGVfY2FwX2ZhY3Rvcil9IHsKLSAgICAgICAgICAgICAgIHNldCB1cGRhdGUgdHJ1ZQotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIi1wcmVSb3V0ZV9jYXAgJHZhcnMoJHJjX2Nvcm5lcixwcmVfcm91dGVfY2FwX2ZhY3RvcikgIgotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYge1tnZXRfcmNfY29ybmVyICRyY19jb3JuZXIgLXBvc3RSb3V0ZV9yZXNdICE9ICR2YXJzKCRyY19jb3JuZXIscG9zdF9yb3V0ZV9yZXNfZmFjdG9yKX0gewotICAgICAgICAgICAgICAgc2V0IHVwZGF0ZSB0cnVlCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiLXBvc3RSb3V0ZV9yZXMgXCIkdmFycygkcmNfY29ybmVyLHBvc3Rfcm91dGVfcmVzX2ZhY3RvcilcIiAiCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiB7W2dldF9yY19jb3JuZXIgJHJjX2Nvcm5lciAtcG9zdFJvdXRlX2NhcF0gIT0gJHZhcnMoJHJjX2Nvcm5lcixwb3N0X3JvdXRlX2NhcF9mYWN0b3IpfSB7Ci0gICAgICAgICAgICAgICBzZXQgdXBkYXRlIHRydWUKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICItcG9zdFJvdXRlX2NhcCBcIiR2YXJzKCRyY19jb3JuZXIscG9zdF9yb3V0ZV9jYXBfZmFjdG9yKVwiICIKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIHtbZ2V0X3JjX2Nvcm5lciAkcmNfY29ybmVyIC1wcmVSb3V0ZV9jbGtyZXNdICE9ICR2YXJzKCRyY19jb3JuZXIscHJlX3JvdXRlX2Nsa19yZXNfZmFjdG9yKX0gewotICAgICAgICAgICAgICAgc2V0IHVwZGF0ZSB0cnVlCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiLXByZVJvdXRlX2Nsa3JlcyAkdmFycygkcmNfY29ybmVyLHByZV9yb3V0ZV9jbGtfcmVzX2ZhY3RvcikgIgotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYge1tnZXRfcmNfY29ybmVyICRyY19jb3JuZXIgLXByZVJvdXRlX2Nsa2NhcF0gIT0gJHZhcnMoJHJjX2Nvcm5lcixwcmVfcm91dGVfY2xrX2NhcF9mYWN0b3IpfSB7Ci0gICAgICAgICAgICAgICBzZXQgdXBkYXRlIHRydWUKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICItcHJlUm91dGVfY2xrY2FwICR2YXJzKCRyY19jb3JuZXIscHJlX3JvdXRlX2Nsa19jYXBfZmFjdG9yKSAiCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiB7W2dldF9yY19jb3JuZXIgJHJjX2Nvcm5lciAtcG9zdFJvdXRlX2Nsa3Jlc10gIT0gJHZhcnMoJHJjX2Nvcm5lcixwb3N0X3JvdXRlX2Nsa19yZXNfZmFjdG9yKX0gewotICAgICAgICAgICAgICAgc2V0IHVwZGF0ZSB0cnVlCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiLXBvc3RSb3V0ZV9jbGtyZXMgXCIkdmFycygkcmNfY29ybmVyLHBvc3Rfcm91dGVfY2xrX3Jlc19mYWN0b3IpXCIgIgotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYge1tnZXRfcmNfY29ybmVyICRyY19jb3JuZXIgLXBvc3RSb3V0ZV9jbGtjYXBdICE9ICR2YXJzKCRyY19jb3JuZXIscG9zdF9yb3V0ZV9jbGtfY2FwX2ZhY3Rvcil9IHsKLSAgICAgICAgICAgICAgIHNldCB1cGRhdGUgdHJ1ZQotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIi1wb3N0Um91dGVfY2xrY2FwIFwiJHZhcnMoJHJjX2Nvcm5lcixwb3N0X3JvdXRlX2Nsa19jYXBfZmFjdG9yKVwiICIKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIHtbZ2V0X3JjX2Nvcm5lciAkcmNfY29ybmVyIC1wb3N0Um91dGVfeGNhcF0gIT0gJHZhcnMoJHJjX2Nvcm5lcixwb3N0X3JvdXRlX3hjYXBfZmFjdG9yKX0gewotICAgICAgICAgICAgICAgc2V0IHVwZGF0ZSB0cnVlCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiLXBvc3RSb3V0ZV94Y2FwIFwiJHZhcnMoJHJjX2Nvcm5lcixwb3N0X3JvdXRlX3hjYXBfZmFjdG9yKVwiICIKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGZvcmVhY2ggb3B0aW9uICJUIHF4X3RlY2hfZmlsZSBxeF9jb25mX2ZpbGUgcXhfbGliX2ZpbGUiIHsKLSAgICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJHJjX2Nvcm5lciwkb3B0aW9uKV19IHsKLSAgICAgICAgICAgICAgICAgICBpZiB7W2dldF9yY19jb3JuZXIgJHJjX2Nvcm5lciAtJG9wdGlvbl0gIT0gJHZhcnMoJHJjX2Nvcm5lciwkb3B0aW9uKX0gewotICAgICAgICAgICAgICAgICAgICAgIHNldCB1cGRhdGUgdHJ1ZQotICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICItJG9wdGlvbiAkdmFycygkcmNfY29ybmVyLCRvcHRpb24pICIKLSAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgeyR1cGRhdGV9IHsKLSAgICAgICAgICAgICAgIHVwbGV2ZWwgIzAgZXZhbCAkY29tbWFuZAotICAgICAgICAgICAgfQotICAgICAgICAgfQotICAgICAgfQotICAgfQotICAgcHJvYyByZXNldF9yY19jb3JuZXJzIHt9IHsKLQotICAgICAgZ2xvYmFsIHZhcnMKLQotICAgICAgZm9yZWFjaCBjb3JuZXIgJHZhcnMocmNfY29ybmVycykgewotICAgICAgICAgdXBkYXRlX3JjX2Nvcm5lciAtbmFtZSAkY29ybmVyIFwKLSAgICAgICAgICAgIC1wcmVSb3V0ZV9yZXMgMS4wIFwKLSAgICAgICAgICAgIC1wcmVSb3V0ZV9jbGtyZXMgMS4wIFwKLSAgICAgICAgICAgIC1wcmVSb3V0ZV9jYXAgMS4wIFwKLSAgICAgICAgICAgIC1wcmVSb3V0ZV9jbGtjYXAgMS4wIFwKLSAgICAgICAgICAgIC1wb3N0Um91dGVfcmVzIDEuMCBcCi0gICAgICAgICAgICAtcG9zdFJvdXRlX2Nsa3JlcyAxLjAgXAotICAgICAgICAgICAgLXBvc3RSb3V0ZV9jYXAgMS4wIFwKLSAgICAgICAgICAgIC1wb3N0Um91dGVfY2xrX2FwIDEuMCBcCi0gICAgICAgICAgICAtcG9zdFJvdXRlX3hjYXAgMS4wCi0gICAgICB9Ci0gICB9Ci0gICBwcm9jIGFkZF92aWV3cyB7fSB7Ci0KLSAgICAgIGdsb2JhbCB2YXJzCi0KLSAgICAgIHB1dHMgIjxGRj4gQ1JFQVRJTkcgUkMgQ09STkVSUyAuLi4iCi0gICAgICBmb3JlYWNoIHJjX2Nvcm5lciAkdmFycyhyY19jb3JuZXJzKSB7Ci0gICAgICAgICBpZiB7W2xzZWFyY2ggW2FsbF9yY19jb3JuZXJzXSAkcmNfY29ybmVyXSA9PSAtMX0gewotICAgICAgICAgICAgc2V0IGNvbW1hbmQgImNyZWF0ZV9yY19jb3JuZXIgLW5hbWUgJHJjX2Nvcm5lciAiCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiLWNhcF90YWJsZSAkdmFycygkcmNfY29ybmVyLGNhcF90YWJsZSlcXSAiCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiLXByZVJvdXRlX3JlcyAkdmFycygkcmNfY29ybmVyLHByZV9yb3V0ZV9yZXNfZmFjdG9yKSAiCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiLXByZVJvdXRlX2Nsa3JlcyAkdmFycygkcmNfY29ybmVyLHByZV9yb3V0ZV9jbGtfcmVzX2ZhY3RvcikgIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIi1wcmVSb3V0ZV9jYXAgJHZhcnMoJHJjX2Nvcm5lcixwcmVfcm91dGVfY2FwX2ZhY3RvcikgIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIi1wcmVSb3V0ZV9jbGtjYXAgJHZhcnMoJHJjX2Nvcm5lcixwcmVfcm91dGVfY2xrX2NhcF9mYWN0b3IpICIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICItcG9zdFJvdXRlX3JlcyBcIiR2YXJzKCRyY19jb3JuZXIscG9zdF9yb3V0ZV9yZXNfZmFjdG9yKVwiICIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICItcG9zdFJvdXRlX2Nsa3JlcyBcIiR2YXJzKCRyY19jb3JuZXIscG9zdF9yb3V0ZV9jbGtfcmVzX2ZhY3RvcilcIiAiCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiLXBvc3RSb3V0ZV9jYXAgXCIkdmFycygkcmNfY29ybmVyLHBvc3Rfcm91dGVfY2FwX2ZhY3RvcilcIiAiCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiLXBvc3RSb3V0ZV9jbGtjYXAgXCIkdmFycygkcmNfY29ybmVyLHBvc3Rfcm91dGVfY2xrX2NhcF9mYWN0b3IpXCIgIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIi1wb3N0Um91dGVfeGNhcCAkdmFycygkcmNfY29ybmVyLHBvc3Rfcm91dGVfeGNhcF9mYWN0b3IpICIKLSAgICAgICAgICAgIGZvcmVhY2ggb3B0aW9uICJUIHF4X3RlY2hfZmlsZSBxeF9jb25mX2ZpbGUgcXhfbGliX2ZpbGUiIHsKLSAgICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJHJjX2Nvcm5lciwkb3B0aW9uKV19IHsKLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICItJG9wdGlvbiAkdmFycygkcmNfY29ybmVyLCRvcHRpb24pICIKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICB1cGxldmVsICMwIGV2YWwgJGNvbW1hbmQKLSAgICAgICAgIH0KLSAgICAgIH0KLQotICAgICAgaWYgeyFbRkY6OmlzX2xwX2Zsb3ddIHx8IFwKLSAgICAgICAgICAoW0ZGOjppc19scF9mbG93XSAmJiAoW2xsZW5ndGggW2FsbF9hbmFseXNpc192aWV3c11dID09IDIpKX0gewotCi0gICAgICAgICBwdXRzICI8RkY+IENSRUFUSU5HIExJQlJBUlkgU0VUUyAuLi4iCi0gICAgICAgICBmb3JlYWNoIGxpYnJhcnlfc2V0ICR2YXJzKGxpYnJhcnlfc2V0cykgewotICAgICAgICAgICAgaWYge1tsc2VhcmNoIFthbGxfbGlicmFyeV9zZXRzXSAkbGlicmFyeV9zZXRdID09IC0xfSB7Ci0gICAgICAgICAgICAgICBjcmVhdGVfbGlicmFyeV9zZXQgLW5hbWUgJGxpYnJhcnlfc2V0IFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtdGltaW5nICR2YXJzKCRsaWJyYXJ5X3NldCx0aW1pbmcpCi0gICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0KLSAgICAgICAgIHB1dHMgIjxGRj4gQ1JFQVRJTkcgREVMQVkgQ09STkVSUyAuLi5cbiIKLSAgICAgICAgIGZvcmVhY2ggZGVsYXlfY29ybmVyICR2YXJzKGRlbGF5X2Nvcm5lcnMpIHsKLSAgICAgICAgICAgIGlmIHtbbHNlYXJjaCBbYWxsX2RlbGF5X2Nvcm5lcnNdICRkZWxheV9jb3JuZXJdID09IC0xfSB7Ci0gICAgICAgICAgICAgICBzZXQgY29tbWFuZCAiY3JlYXRlX2RlbGF5X2Nvcm5lciAtbmFtZSAkZGVsYXlfY29ybmVyICIKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICItbGlicmFyeV9zZXQgJHZhcnMoJGRlbGF5X2Nvcm5lcixsaWJyYXJ5X3NldCkgIgotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIi1yY19jb3JuZXIgJHZhcnMoJGRlbGF5X2Nvcm5lcixyY19jb3JuZXIpICIKLSAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkZGVsYXlfY29ybmVyLG9wY29uZCldICYmIFtpbmZvIGV4aXN0cyB2YXJzKCRkZWxheV9jb3JuZXIsb3Bjb25kX2xpYnJhcnkpXX0gewotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIi1vcGNvbmRfbGlicmFyeSAkdmFycygkZGVsYXlfY29ybmVyLG9wY29uZF9saWJyYXJ5KSAiCi0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiLW9wY29uZCAkdmFycygkZGVsYXlfY29ybmVyLG9wY29uZCkgIgotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgdXBsZXZlbCAjMCBldmFsICRjb21tYW5kCi0gICAgICAgICAgICAgICBpZiB7IVtjYXRjaCB7c2V0IGRvbWFpbnMgJHZhcnMoJGMscG93ZXJfZG9tYWlucyl9XX0gewotICAgICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgIiB1cGRhdGVfZGVsYXlfY29ybmVyIC1uYW1lICRjIC1wb3dlcl9kb21haW5zIFwiJGRvbWFpbnNcIiIKLSAgICAgICAgICAgICAgICAgIHVwbGV2ZWwgIzAgZXZhbCAkY29tbWFuZAotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAgfQotCi0gICAgICAgICBwdXRzICI8RkY+IFVQREFUSU5HIENPTlNUUkFJTlQgTU9ERVMgLi4uIgotICAgICAgICAgZm9yZWFjaCBtb2RlICR2YXJzKGNvbnN0cmFpbnRfbW9kZXMpIHsKLSAgICAgICAgICAgIGlmIHtbbHNlYXJjaCBbYWxsX2NvbnN0cmFpbnRfbW9kZXNdICRtb2RlXSA9PSAtMX0gewotICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCRtb2RlLHByZV9jdHNfc2RjLGZ1bGwpXX0gewotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJjcmVhdGVfY29uc3RyYWludF9tb2RlICIKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIC1uYW1lICRtb2RlICIKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIC1zZGNfZmlsZXMgJHZhcnMoJG1vZGUscHJlX2N0c19zZGMsZnVsbClcbiIKLSAgICAgICAgICAgICAgIH0gZWxzZWlmIHtbaW5mbyBleGlzdHMgdmFycygkbW9kZSxwcmVfY3RzX3NkYyl9IHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiY3JlYXRlX2NvbnN0cmFpbnRfbW9kZSAiCi0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiAtbmFtZSAkbW9kZSAiCi0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiAtc2RjX2ZpbGVzICR2YXJzKCRtb2RlLHByZV9jdHNfc2RjKVxuIgotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAgfQotCi0gICAgICAgICBzZXQgdmFycyhhbGxfYW5hbHlzaXNfdmlld3MpIFtsc29ydCAtdW5pcSBbY29uY2F0ICR2YXJzKHNldHVwX2FuYWx5c2lzX3ZpZXdzKSAkdmFycyhob2xkX2FuYWx5c2lzX3ZpZXdzKV1dCi0gICAgICAgICBwdXRzICI8RkY+IFVQREFUSU5HIEFOQUxZU0lTIFZJRVdTIC4uLiIKLQotICAgICAgICAgZm9yZWFjaCBhbmFseXNpc192aWV3ICR2YXJzKGFsbF9hbmFseXNpc192aWV3cykgewotICAgICAgICAgICAgaWYge1tsc2VhcmNoIFthbGxfYW5hbHlzaXNfdmlld3NdICRhbmFseXNpc192aWV3XSA9PSAtMX0gewotICAgICAgICAgICAgICAgY3JlYXRlX2FuYWx5c2lzX3ZpZXcgLW5hbWUgJGFuYWx5c2lzX3ZpZXcgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLWNvbnN0cmFpbnRfbW9kZSAkdmFycygkYW5hbHlzaXNfdmlldyxjb25zdHJhaW50X21vZGUpIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC1kZWxheV9jb3JuZXIgJHZhcnMoJGFuYWx5c2lzX3ZpZXcsZGVsYXlfY29ybmVyKQotICAgICAgICAgICAgfQotICAgICAgICAgfQotICAgICAgfSBlbHNlIHsKLQotICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgIyBTaW5jZSB0aGUgZGVsYXkgY29ybmVyIG5hbWVzIGFyZSBkZXJpdmVkIGZyb20gdGhlIENQRiwgdGhleSBhcmUgbm90Ci0gICAjIGtub3duLiAgSG93ZXZlciwgdGhleSBjYW4gYmUgcmV0cmlldmVkIGZyb20gdGhlIGFuYWx5c2lzX3ZpZXdzCi0gICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAgICBwdXRzICI8RkY+IFVQREFUSU5HIERFTEFZIENPUk5FUlMgIC4uLiIKLSAgICAgICAgIGZvcmVhY2ggY29ybmVyICR2YXJzKGRlbGF5X2Nvcm5lcnMpIHsKLSAgICAgICAgICAgIHB1dHMgIlVwZGF0aW5nIGRlbGF5IGNvcm5lciAkY29ybmVyIHdpdGggUkMgQ29ybmVyICR2YXJzKCRjb3JuZXIscmNfY29ybmVyKSAuLi4iCi0gICAgICAgICAgICB1cGRhdGVfZGVsYXlfY29ybmVyIC1uYW1lICRjb3JuZXIgLXJjX2Nvcm5lciAkdmFycygkY29ybmVyLHJjX2Nvcm5lcikKLSAgICAgICAgIH0KLSAgICAgIH0KLQotICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgIyBVcGRhdGUgbGlicmFyeV9zZXRzIHdpdGggU0kgbGlicmFyaWVzIGlmIGRlZmluZWQKLSAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgIHB1dHMgIjxGRj4gVVBEQVRJTkcgTElCUkFSWSBTRVRTICAuLi4iCi0gICAgICBmb3JlYWNoIGxpYnJhcnlfc2V0ICR2YXJzKGxpYnJhcnlfc2V0cykgewotICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCRsaWJyYXJ5X3NldCxzaSldICYmICgkdmFycygkbGlicmFyeV9zZXQsc2kpICE9ICIiKX0gewotICAgICAgICAgICAgdXBkYXRlX2xpYnJhcnlfc2V0IC1uYW1lICRsaWJyYXJ5X3NldCBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLXNpICR2YXJzKCRsaWJyYXJ5X3NldCxzaSkKLSAgICAgICAgIH0KLSAgICAgIH0KLSAgICAgIGZvcmVhY2ggbGlicmFyeV9zZXQgJHZhcnMobGlicmFyeV9zZXRzKSB7Ci0gICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJGxpYnJhcnlfc2V0LGFvY3YpXSAmJiAoJHZhcnMoJGxpYnJhcnlfc2V0LGFvY3YpICE9ICIiKX0gewotICAgICAgICAgICAgdXBkYXRlX2xpYnJhcnlfc2V0IC1uYW1lICRsaWJyYXJ5X3NldCBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLWFvY3YgJHZhcnMoJGxpYnJhcnlfc2V0LGFvY3YpCi0gICAgICAgICB9Ci0gICAgICB9Ci0gICAgICBmb3JlYWNoIGxpYnJhcnlfc2V0ICR2YXJzKGxpYnJhcnlfc2V0cykgewotICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCRsaWJyYXJ5X3NldCxzb2N2KV0gJiYgKCR2YXJzKCRsaWJyYXJ5X3NldCxzb2N2KSAhPSAiIil9IHsKLSAgICAgICAgICAgIHVwZGF0ZV9saWJyYXJ5X3NldCAtbmFtZSAkbGlicmFyeV9zZXQgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC1zb2N2ICR2YXJzKCRsaWJyYXJ5X3NldCxzb2N2KQotICAgICAgICAgfQotICAgICAgfQotCi0gICAgICBzZXRfaW50ZXJhY3RpdmVfY29uc3RyYWludF9tb2RlcyBbYWxsX2NvbnN0cmFpbnRfbW9kZXMgLWFjdGl2ZV0KLQotICAgICAgcHV0cyAiPEZGPiBERVJBVElORyBERUxBWSBDT1JORVJTIC4uLiIKLSAgICAgIEZGX05PVlVTOjpkZXJhdGVfdGltaW5nIG1tbWMKLQotIyAgICAgIGlmIHskdmFycyhmbG93KSAhPSAibW1tYyJ9IHsKLSMgICAgICAgICBGRl9OT1ZVUzo6dXBkYXRlX3RpbWluZyBtbW1jCi0jICAgICAgfQotCi0gICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAjIERlZmluZSBzZXR1cCAvIGhvbGQgYW5hbHlzaXMgdmlld3MgYW5kIGVuYWJsZSB0aGUgZGVmYXVsdCB2aWV3cyBmb3IgZWFjaAotICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgc2V0X2FuYWx5c2lzX3ZpZXcgLXNldHVwICR2YXJzKGFjdGl2ZV9zZXR1cF92aWV3cykgLWhvbGQgJHZhcnMoYWN0aXZlX2hvbGRfdmlld3MpCi0gICAgICBzZXRfZGVmYXVsdF92aWV3IC1zZXR1cCAkdmFycyhkZWZhdWx0X3NldHVwX3ZpZXcpIC1ob2xkICR2YXJzKGRlZmF1bHRfaG9sZF92aWV3KQotICAgfQotCi0gICBwcm9jIGdldF9wb3dlcl9kb21haW5zX2NvZGUge30gewotCi0gICAgICBnbG9iYWwgdmFycwotCi0gICAgICBzZXQgY29tbWFuZHMgInNldCBkb21haW5zIFxbbGlzdCBcW2dldF9kYiBwb3dlcl9kb21haW5zXF1cXVxuIgotIyAgICAgIGFwcGVuZCBjb21tYW5kcyAiZGJGb3JFYWNocG93ZXJfZG9tYWluIFxbZGJnSGVhZFxdIGRvbWFpbiB7XG4iCi0jICAgICAgYXBwZW5kIGNvbW1hbmRzICIgICBpZiB7XFtkYkdyb3VwSEluc3RMaXN0IFxbZGJwb3dlcl9kb21haW5OYW1lIFwkZG9tYWluXF1cXSAhPSBcIjB4MFwifSB7XG4iCi0jICAgICAgYXBwZW5kIGNvbW1hbmRzICIgICAgICBsYXBwZW5kIGRvbWFpbnMgXFtkYnBvd2VyX2RvbWFpbk5hbWUgXCRkb21haW5cXVxuIgotIyAgICAgIGFwcGVuZCBjb21tYW5kcyAiICAgfVxuIgotIyAgICAgIGFwcGVuZCBjb21tYW5kcyAifVxuIgotICAgICAgcmV0dXJuICRjb21tYW5kcwotICAgfQotCi0KLSAgIHByb2MgZ2V0X2Nsb2NrX3BvcnRzIHt9IHsKLQotICAgICAgZ2xvYmFsIHZhcnMKLQotICAgICAgc2V0IGNvbW1hbmRzICIiCi0KLSAgICAgIGlmIHshJHZhcnMoY29kZWdlbikgfHwgKCR2YXJzKGNvZGVnZW4pICYmICgkdmFycyhmbGF0KSAhPSAibm9uZSIpKX0gewotCi0gICAgICAgICBpZiB7JHZhcnMoaWxtKX0gewotICAgICAgICAgICAgaWYgeyR2YXJzKHN0ZXApICE9ICJjdHMifSB7IAotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJzZXRJbG1UeXBlIC1tb2RlbCBzaVxuIgotICAgICAgICAgICAgfQotICAgICAgICAgfQotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJzZXQgY2xvY2tfcG9ydHMgXFtsaXN0XF1cbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAic2V0IGNsb2NrcyBcW2dldF9jbG9ja3MgKlxdXG4iCi0KLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiZm9yZWFjaF9pbl9jb2xsZWN0aW9uIGNsb2NrIFwkY2xvY2tzIHtcbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiICAgc2V0IHNvdXJjZXMgIFxbZ2V0X3Byb3BlcnR5IFwkY2xvY2sgc291cmNlc1xdXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiAgIGZvcmVhY2hfaW5fY29sbGVjdGlvbiBzb3VyY2UgXCRzb3VyY2VzIHtcbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiICAgICBzZXQgc291cmNlX25hbWUgXFtnZXRfcHJvcGVydHkgXCRzb3VyY2UgaGllcmFyY2hpY2FsX25hbWVcXVxuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIgICAgIHNldCBzb3VyY2VfdHlwZSBcW2dldF9wcm9wZXJ0eSBcJHNvdXJjZSBvYmplY3RfdHlwZVxdXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiAgICAgaWYge1wkc291cmNlX3R5cGUgPT0gXCJwb3J0XCJ9IHtcbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiICAgICAgIGxhcHBlbmQgY2xvY2tfcG9ydHMgXCRzb3VyY2VfbmFtZVxuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIgICAgfVxuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIgIH1cbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAifVxuIgotICAgICAgfSBlbHNlIHsKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiRkY6OmdldF9jbG9ja19wb3J0c1xuIgotICAgICAgfQotICAgICAgcmV0dXJuICRjb21tYW5kcwotICAgfQotCi0gICBwcm9jIGFkZF90aWVfY2VsbHMge3ttb2RlIHRydWV9IHthZGQgdHJ1ZX19IHsKLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICMgVGhpcyBwcm9jZWR1cmUgaW5zZXJ0cyB0aWUgaGkvbG8gY2VsbHMgYmFzZWQgb24gaW5mb3JtYXRpb24gaW4gdGhlCi0gICAgICAjIHNldHVwLnRjbAotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCi0gICAgICBnbG9iYWwgdmFycwotICAgICAgZ2xvYmFsIGVycm9ycwotCi0gICAgICBzZXQgY29tbWFuZHMgIiIKLSAgICAgIGlmIHskdmFycyh2ZXJib3NlKX0gewotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgQURESU5HIFRJRSBDRUxMU1xuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjXG4iCi0gICAgICB9Ci0KLSAgICAgIHNldCBhcmdzICIiCi0gICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnModGllX2NlbGxzLG1heF9kaXN0YW5jZSldfSB7Ci0gICAgICAgICBhcHBlbmQgYXJncyAic2V0X2RiIGFkZF90aWVvZmZzX21heF9kaXN0YW5jZSAkdmFycyh0aWVfY2VsbHMsbWF4X2Rpc3RhbmNlKVxuIgotICAgICAgfQotICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKHRpZV9jZWxscyxtYXhfZmFub3V0KV19IHsKLSAgICAgICAgIGFwcGVuZCBhcmdzICJzZXRfZGIgYWRkX3RpZW9mZnNfbWF4X2Zhbm91dCAkdmFycyh0aWVfY2VsbHMsbWF4X2Zhbm91dClcbiIKLSAgICAgIH0KLQotICAgICAgaWYge1tGRjo6aXNfbHBfZmxvd10gJiYgKFtpbmZvIGV4aXN0cyB2YXJzKHBvd2VyX2RvbWFpbnMpXSAmJiAoW2xsZW5ndGggJHZhcnMocG93ZXJfZG9tYWlucyldID4gMSkpfSB7Ci0KLSAgICAgICAgICMgR2V0IHRoZSBzZXQgb2YgdGllIGNlbGxzIHRvIHVzZSwgYm90aCBkb21haW4tc3BlY2lmaWMgYW5kIGdlbmVyaWMuCi0KLSAgICAgICAgIHNldCBhbGxfdGllX2NlbGxzIFtsaXN0XQotCi0gICAgICAgICBzZXQgaGFzX2RlZmF1bHQgZmFsc2UKLSAgICAgICAgIGlmIHshW2NhdGNoIHtzZXQgZGVmYXVsdF9jZWxscyAkdmFycyh0aWVfY2VsbHMpfV19IHsKLSAgICAgICAgICAgIHNldCBoYXNfZGVmYXVsdCB0cnVlCi0gICAgICAgICAgICBsYXBwZW5kIGFsbF90aWVfY2VsbHMgJHZhcnModGllX2NlbGxzKQotICAgICAgICAgfQotICAgICAgICAgc2V0IGhhc19zcGVjaWZpYyBmYWxzZQotICAgICAgICAgZm9yZWFjaCBkb21haW4gW0ZGOjpnZXRfYnlfc3VmZml4IHZhcnMgIix0aWVfY2VsbHMiXSB7Ci0gICAgICAgICAgICBzZXQgY2VsbHMgJHZhcnMoJGRvbWFpbix0aWVfY2VsbHMpCi0gICAgICAgICAgICBsYXBwZW5kIGFsbF90aWVfY2VsbHMgJHZhcnMoJGRvbWFpbix0aWVfY2VsbHMpCi0gICAgICAgICAgICBpZiB7IVtsbGVuZ3RoICRjZWxsc119IHsKLSAgICAgICAgICAgICAgIGNvbnRpbnVlCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBzZXQgaGFzX3NwZWNpZmljIHRydWUKLSMgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAic2V0IHRpZV9jZWxscygkZG9tYWluKSBcW2xpc3QgJGNlbGxzXF1cbiIKLSMgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgJGNvbW1hbmQKLSAgICAgICAgIH0KLQotICAgICAgICAgIwotICAgICAgICAgIyBJZiB0aGVyZSBhcmUgbm8gdGllIGNlbGxzIGF0IGFsbCwgdGhlcmUncyBub3RoaW5nIHRvIGRvCi0gICAgICAgICAjCi0KLSAgICAgICAgIGlmIHshJGhhc19kZWZhdWx0ICYmICEkaGFzX3NwZWNpZmljfSB7Ci0gICAgICAgICAgICByZXR1cm4gIiIKLSAgICAgICAgIH0KLQotICAgICAgICAgc2V0IGFsbF90aWVfY2VsbHMgW2xzb3J0IC11bmlxdWUgW2pvaW4gJGFsbF90aWVfY2VsbHNdXQotCi0gICAgICAgICAjCi0gICAgICAgICAjIElmIHRoZXJlIGFyZSBubyBkb21haW4tc3BlY2lmaWMgZW50cmllcywgbGlmZSBpcyByZWFsIHNpbXBsZQotICAgICAgICAgIwotCi0jICAgICAgICAgaWYgeyEkaGFzX3NwZWNpZmljfSB7Ci0jICAgICAgICAgICAgc2V0IGNvbW1hbmQgIlxuc2V0X2RiIGFkZF90aWVvZmZzX2NlbGxzIFwiJGRlZmF1bHRfY2VsbHNcIlxuJGFyZ3MiCi0jICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHNldF90aWVfaGlfbG9fbW9kZSAkY29tbWFuZF0KLSMgICAgICAgICAgICBpZiB7JGFkZH0gewotIyAgICAgICAgICAgICAgIGZvcmVhY2ggY2VsbCAkZGVmYXVsdF9jZWxscyB7Ci0jICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJzZXREb250VXNlICRjZWxsIGZhbHNlXG4iCi0jICAgICAgICAgICAgICAgfQotIyAgICAgICAgICAgICAgIGlmIHtbbGxlbmd0aCAkdmFycyhwb3dlcl9kb21haW5zKV0gPiAwfSB7Ci0jICAgICAgICAgICAgICAgICAgZm9yZWFjaCBkb21haW4gJHZhcnMocG93ZXJfZG9tYWlucykgewotIyAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAgIiAgIGNhdGNoIHthZGRfdGllb2ZmcyAtcG93ZXJfZG9tYWluICRkb21haW4gLXByZWZpeCAkZG9tYWlufVxuIgotIyAgICAgICAgICAgICAgICAgIH0KLSMgICAgICAgICAgICAgICB9Ci0jICAgICAgICAgICAgICAgZm9yZWFjaCBjZWxsICRkZWZhdWx0X2NlbGxzIHsKLSMgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgInNldERvbnRVc2UgJGNlbGwgdHJ1ZVxuIgotIyAgICAgICAgICAgICAgIH0KLSMgICAgICAgICAgICB9Ci0jICAgICAgICAgfSBlbHNlIHsKLSMgICAgICAgICAgICBmb3JlYWNoIGNlbGwgJGRlZmF1bHRfY2VsbHMgewotIyAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAic2V0RG9udFVzZSAkY2VsbCBmYWxzZVxuIgotIyAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIHtbbGxlbmd0aCAkdmFycyhwb3dlcl9kb21haW5zKV0gPiAwfSB7Ci0gICAgICAgICAgICAgICBmb3JlYWNoIGRvbWFpbiAkdmFycyhwb3dlcl9kb21haW5zKSB7Ci0gICAgICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJGRvbWFpbix0aWVfY2VsbHMpXX0gewotICAgICAgICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgIlxuc2V0X2RiIGFkZF90aWVvZmZzX2NlbGxzIFwiJHZhcnMoJGRvbWFpbix0aWVfY2VsbHMpXCJcbiRhcmdzIgotICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgZGVmYXVsdF9jZWxsc119IHsgCi0gICAgICAgICAgICAgICAgICAgICAgICBzZXQgY29tbWFuZCAiXG5zZXRfZGIgYWRkX3RpZW9mZnNfY2VsbHMgXCIkZGVmYXVsdF9jZWxsc1wiXG4kYXJncyIKLSAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZQotICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHNldF90aWVfaGlfbG9fbW9kZSAkY29tbWFuZF0KLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAgIiAgIGNhdGNoIHthZGRfdGllb2ZmcyAtcG93ZXJfZG9tYWluICRkb21haW4gLXByZWZpeCAkZG9tYWlufVxuIgotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotIyAgICAgICAgICAgIGZvcmVhY2ggY2VsbCAkZGVmYXVsdF9jZWxscyB7Ci0jICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJzZXREb250VXNlICRjZWxsIHRydWVcbiIKLSMgICAgICAgICAgICB9Ci0jICAgICAgICAgfQotICAgICAgfSBlbHNlaWYgeyFbY2F0Y2gge3NldCBjZWxscyAkdmFycyh0aWVfY2VsbHMpfV19IHsKLSAgICAgICAgIHNldCBjb21tYW5kICJcbnNldF9kYiBhZGRfdGllb2Zmc19jZWxscyBcIiRjZWxsc1wiXG4kYXJncyIKLSMgICAgICAgICBpZiB7JG1vZGV9IHsKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxzZXRfdGllX2hpX2xvX21vZGUgJGNvbW1hbmRdCi0jICAgICAgICAgfQotICAgICAgICAgIHNldCBjb21tYW5kICIiCi0jICAgICAgICAgYXBwZW5kIGNvbW1hbmQgImZvcmVhY2ggY2VsbCBceyRjZWxsc1x9IHtcbiIKLSMgICAgICAgICBhcHBlbmQgY29tbWFuZCAiICAgc2V0RG9udFVzZSBcJGNlbGwgZmFsc2VcbiIKLSMgICAgICAgICBhcHBlbmQgY29tbWFuZCAifVxuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmQgImFkZF90aWVvZmZzXG4iCi0jICAgICAgICAgYXBwZW5kIGNvbW1hbmQgImZvcmVhY2ggY2VsbCBceyRjZWxsc1x9IHtcbiIKLSMgICAgICAgICBhcHBlbmQgY29tbWFuZCAiICAgc2V0RG9udFVzZSBcJGNlbGwgdHJ1ZVxuIgotIyAgICAgICAgIGFwcGVuZCBjb21tYW5kICJ9XG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgJGNvbW1hbmQKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgICBzZXQgY29tbWFuZHMgIiIKLSAgICAgIH0KLQotICAgICAgcmV0dXJuICRjb21tYW5kcwotICAgfQotCi0gICBwcm9jIGFkZF9maWxsZXJfY2VsbHMge30gewotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgIyBUaGlzIHByb2NlZHVyZSBpbnNlcnRzIHRpZSBoaS9sbyBjZWxscyBiYXNlZCBvbiBpbmZvcm1hdGlvbiBpbiB0aGUKLSAgICAgICMgc2V0dXAudGNsCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0KLSAgICAgIGdsb2JhbCB2YXJzCi0gICAgICBnbG9iYWwgZXJyb3JzCi0KLSAgICAgIHNldCBjb21tYW5kcyAiIgotCi0gICAgICBzZXQgY2NvbW1hbmRzICIiCi0gICAgICBpZiB7JHZhcnModmVyYm9zZSl9IHsKLSAgICAgICAgIGFwcGVuZCBjY29tbWFuZHMgIiNcbiIKLSAgICAgICAgIGFwcGVuZCBjY29tbWFuZHMgIiMgQUREIEZJTExFUiBDRUxMU1xuIgotICAgICAgICAgYXBwZW5kIGNjb21tYW5kcyAiI1xuIgotICAgICAgfQotCi0gICAgICBhcHBlbmQgY29tbWFuZHMgJGNjb21tYW5kcwotCi0gICAgICBpZiB7W0ZGOjppc19scF9mbG93XSAmJiAoW2luZm8gZXhpc3RzIHZhcnMocG93ZXJfZG9tYWlucyldICYmIChbbGxlbmd0aCAkdmFycyhwb3dlcl9kb21haW5zKV0gPiAxKSl9IHsKLQotICAgICAgICAgIyBHZXQgdGhlIHNldCBvZiBmaWxsZXIgY2VsbHMgdG8gdXNlLCBib3RoIGRvbWFpbi1zcGVjaWZpYyBhbmQgZ2VuZXJpYy4KLQotICAgICAgICAgc2V0IGFsbF9maWxsZXJfY2VsbHMgW2xpc3RdCi0KLSAgICAgICAgIHNldCBoYXNfZGVmYXVsdCBmYWxzZQotICAgICAgICAgaWYgeyFbY2F0Y2gge3NldCBkZWZhdWx0X2NlbGxzICR2YXJzKGZpbGxlcl9jZWxscyl9XX0gewotICAgICAgICAgICAgc2V0IGhhc19kZWZhdWx0IHRydWUKLSAgICAgICAgICAgIGxhcHBlbmQgYWxsX2ZpbGxlcl9jZWxscyAkdmFycyhmaWxsZXJfY2VsbHMpCi0gICAgICAgICB9Ci0gICAgICAgICBzZXQgaGFzX3NwZWNpZmljIGZhbHNlCi0gICAgICAgICBmb3JlYWNoIGRvbWFpbiBbRkY6OmdldF9ieV9zdWZmaXggdmFycyAiLGZpbGxlcl9jZWxscyJdIHsKLSAgICAgICAgICAgIHNldCBjZWxscyAkdmFycygkZG9tYWluLGZpbGxlcl9jZWxscykKLSAgICAgICAgICAgIGxhcHBlbmQgYWxsX2ZpbGxlcl9jZWxscyAkdmFycygkZG9tYWluLGZpbGxlcl9jZWxscykKLSAgICAgICAgICAgIGlmIHshW2xsZW5ndGggJGNlbGxzXX0gewotICAgICAgICAgICAgICAgY29udGludWUKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHNldCBoYXNfc3BlY2lmaWMgdHJ1ZQotIyAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJzZXQgZmlsbGVyX2NlbGxzKCRkb21haW4pIFxbbGlzdCAkY2VsbHNcXVxuIgotIyAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAkY29tbWFuZAotICAgICAgICAgfQotCi0gICAgICAgICAjCi0gICAgICAgICAjIElmIHRoZXJlIGFyZSBubyBmaWxsZXIgY2VsbHMgYXQgYWxsLCB0aGVyZSdzIG5vdGhpbmcgdG8gZG8KLSAgICAgICAgICMKLQotICAgICAgICAgaWYgeyEkaGFzX2RlZmF1bHQgJiYgISRoYXNfc3BlY2lmaWN9IHsKLSAgICAgICAgICAgIHJldHVybiAiIgotICAgICAgICAgfQotCi0gICAgICAgICBzZXQgYWxsX2ZpbGxlcl9jZWxscyBbbHNvcnQgLXVuaXF1ZSBbam9pbiAkYWxsX2ZpbGxlcl9jZWxsc11dCi0KLSAgICAgICAgICMKLSAgICAgICAgICMgSWYgdGhlcmUgYXJlIG5vIGRvbWFpbi1zcGVjaWZpYyBlbnRyaWVzLCBsaWZlIGlzIHJlYWwgc2ltcGxlCi0gICAgICAgICAjCi0KLSMgICAgICAgICBpZiB7ISRoYXNfc3BlY2lmaWN9IHsKLSMgICAgICAgICAgICBzZXQgY29tbWFuZCAic2V0X2RiIGFkZF9maWxsZXJzX2NlbGxzIFwiJGRlZmF1bHRfY2VsbHNcIlxuc2V0X2RiIGFkZF9maWxsZXJzX3ByZWZpeCBGSUxMXG4iCi0jICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHNldF9maWxsZXJfbW9kZSAkY29tbWFuZF0KLSMgICAgICAgICAgICBpZiB7JGFkZH0gewotIyAgICAgICAgICAgICAgIGZvcmVhY2ggY2VsbCAkZGVmYXVsdF9jZWxscyB7Ci0jICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJzZXREb250VXNlICRjZWxsIGZhbHNlXG4iCi0jICAgICAgICAgICAgICAgfQotIyAgICAgICAgICAgICAgIGlmIHtbbGxlbmd0aCAkdmFycyhwb3dlcl9kb21haW5zKV0gPiAwfSB7Ci0jICAgICAgICAgICAgICAgICAgZm9yZWFjaCBkb21haW4gJHZhcnMocG93ZXJfZG9tYWlucykgewotIyAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAgIiAgIGNhdGNoIHthZGRfZmlsbGVycyAtcG93ZXJfZG9tYWluICRkb21haW59XG4iCi0jICAgICAgICAgICAgICAgICAgfQotIyAgICAgICAgICAgICAgIH0KLSMgICAgICAgICAgICAgICBmb3JlYWNoIGNlbGwgJGRlZmF1bHRfY2VsbHMgewotIyAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAic2V0RG9udFVzZSAkY2VsbCB0cnVlXG4iCi0jICAgICAgICAgICAgICAgfQotIyAgICAgICAgICAgIH0KLSMgICAgICAgICB9IGVsc2UgewotIyAgICAgICAgICAgIGZvcmVhY2ggY2VsbCAkZGVmYXVsdF9jZWxscyB7Ci0jICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJzZXREb250VXNlICRjZWxsIGZhbHNlXG4iCi0jICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYge1tsbGVuZ3RoICR2YXJzKHBvd2VyX2RvbWFpbnMpXSA+IDB9IHsKLSAgICAgICAgICAgICAgIHNldCBkZWZhdWx0IDAKLSAgICAgICAgICAgICAgIGZvcmVhY2ggZG9tYWluICR2YXJzKHBvd2VyX2RvbWFpbnMpIHsKLSAgICAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkZG9tYWluLGZpbGxlcl9jZWxscyldfSB7Ci0gICAgICAgICAgICAgICAgICAgICBzZXQgY29tbWFuZCAic2V0X2RiIGFkZF9maWxsZXJzX2NlbGxzIFwiJHZhcnMoJGRvbWFpbixmaWxsZXJfY2VsbHMpXCJcbnNldF9kYiBhZGRfZmlsbGVyc19wcmVmaXggRklMTFxuIgotICAgICAgICAgICAgICAgICAgICAgc2V0IGRlZmF1bHQgMAotICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgZGVmYXVsdF9jZWxsc119IHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIHshJGRlZmF1bHR9IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldCBjb21tYW5kICJzZXRfZGIgYWRkX2ZpbGxlcnNfY2VsbHMgXCIkZGVmYXVsdF9jZWxsc1wiXG5zZXRfZGIgYWRkX2ZpbGxlcnNfcHJlZml4IEZJTExcbiIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldCBkZWZhdWx0IDEKLSAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgIiIKLSAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWUKLSAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxzZXRfZmlsbGVyX21vZGUgJGNvbW1hbmRdCi0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgICIgICBjYXRjaCB7YWRkX2ZpbGxlcnMgLXBvd2VyX2RvbWFpbiAkZG9tYWlufVxuIgotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotIyAgICAgICAgICAgIGZvcmVhY2ggY2VsbCAkZGVmYXVsdF9jZWxscyB7Ci0jICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJzZXREb250VXNlICRjZWxsIHRydWVcbiIKLSMgICAgICAgICAgICB9Ci0jICAgICAgIH0KLSAgIH0gZWxzZWlmIHshW2NhdGNoIHtzZXQgY2VsbHMgJHZhcnMoZmlsbGVyX2NlbGxzKX1dfSB7Ci0gICAgICAgICBzZXQgY29tbWFuZCAic2V0X2RiIGFkZF9maWxsZXJzX2NlbGxzIFwiJGNlbGxzXCJcbnNldF9kYiBhZGRfZmlsbGVyc19wcmVmaXggRklMTFxuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHNldF9maWxsZXJfbW9kZSAkY29tbWFuZF0KLSAgICAgICAgICAgIHNldCBjb21tYW5kICJhZGRfZmlsbGVyc1xuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICRjb21tYW5kCi0gICAgICB9IGVsc2UgewotICAgICAgICAgc2V0IGNvbW1hbmRzICIiCi0gICAgICB9Ci0KLSAgICAgIHJldHVybiAkY29tbWFuZHMKLSAgIH0KLQotICAgcHJvYyBkZWxldGVfZmlsbGVyX2NlbGxzIHt9IHsKLQotICAgICAgZ2xvYmFsIHZhcnMKLQotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgIyBSZW1vdmUgZmlsbGVyIGNlbGxzCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0KLSAgICAgIHNldCBjb21tYW5kICJkZWxldGVfZmlsbGVyXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksZGVsZXRlX2ZpbGxlcl9jZWxscyAkY29tbWFuZF0KLSAgICAgIHJldHVybiAkY29tbWFuZHMKLSAgIH0KLQotICAgcHJvYyBpbnNlcnRfd2VsbHRhcHNfZW5kY2FwcyB7e291dGxpbmUgZmFsc2V9fSB7Ci0KLSAgICAgIGdsb2JhbCB2YXJzCi0KLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICMgSW5zZXJ0IHdlbGx0YXBzIGFuZCBwcmUvcG9zdCBlbmRjYXBzCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0KLSAgICAgIGdsb2JhbCB2YXJzCi0gICAgICBnbG9iYWwgZXJyb3JzCi0gICAgICBnbG9iYWwgd2FybmluZ3MKLQotICAgICAgc2V0IGNvbW1hbmRzICIiCi0KLSAgICAgIGlmIHtbRkY6OmlzX2xwX2Zsb3ddICYmIChbaW5mbyBleGlzdCB2YXJzKHBvd2VyX2RvbWFpbnMpXSAmJiAoW2xsZW5ndGggJHZhcnMocG93ZXJfZG9tYWlucyldID4gMSkpfSB7Ci0KLSAgICAgICAgIGlmIHskdmFycyhmbGF0KSA9PSAiZnVsbCJ9IHsKLSAgICAgICAgICAgICMKLSAgICAgICAgICAgICMgSnVzdCBsaWtlIHRpZSBhbmQgZmlsbGVyIGNlbGxzLCB3ZSBjYW4gaGF2ZSBwb3dlciBkb21haW4tc3BlY2lmaWMKLSAgICAgICAgICAgICMgY2VsbHMgYW5kIHNldHRpbmdzIHRoYXQgd2UgbmVlZCB0byB3b3JyeSBhYm91dC4KLSAgICAgICAgICAgICMKLSAgIAotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRl9OT1ZVUzo6Z2V0X3Bvd2VyX2RvbWFpbnNfY29kZV0KLSAgIAotICAgICAgICAgICAgIwotICAgICAgICAgICAgIyBHZXQgdGhlIHNldCBvZiBkb21haW5zIHRoYXQgd2UgbmVlZCB0byB3b3JyeSBhYm91dAotICAgICAgICAgICAgIwotICAgCi0gICAgICAgICAgICBzZXQgcHJlIFtGRjo6Z2V0X2J5X3N1ZmZpeCB2YXJzICIscHJlX2VuZGNhcCJdCi0gICAgICAgICAgICBzZXQgcG9zdCBbRkY6OmdldF9ieV9zdWZmaXggdmFycyAiLHBvc3RfZW5kY2FwIl0KLSAgICAgICAgICAgIHNldCBlbmRjYXBzIFtGRjo6bGludGVyc2VjdGlvbiAkcHJlICRwb3N0XQotICAgICAgICAgICAgc2V0IHdlbGx0YXBzIFtGRjo6Z2V0X2J5X3N1ZmZpeCB2YXJzICIsd2VsbHRhcHMiXQotICAgCi0gICAgICAgICAgICAjCi0gICAgICAgICAgICAjIEZvciBldmVyeSBkb21haW4gaW4gdGhlIHVuaW9uLCB3ZSBuZWVkIHRvIGlzc3VlIHN0YXRlbWVudHMgaWYgdGhhdAotICAgICAgICAgICAgIyBkb21haW4gaXMgb25lIG9mIHRoZSBwb3dlciBkb21haW5zIGluIHRoZSBkZXNpZ24KLSAgICAgICAgICAgICMKLSAgICAgICAgICAgICMgTk9URTogV2UgcmVhbGx5IGRvbid0IG5lZWQgdG8gd29ycnkgYWJvdXQgaW5kZW50aW5nIHRoZSBjb21tYW5kcwotICAgICAgICAgICAgIyAgICAgICB0byBsb29rIG5pY2Ugc2luY2UgdGhlIG91dHB1dCByb3V0aW5lIHdpbGwgZm9ybWF0IGl0IGNvcnJlY3RseQotICAgICAgICAgICAgIwotICAgCi0gICAgICAgICAgICBzZXQgZG9tYWlucyBbRkY6Omx1bmlvbiAkZW5kY2FwcyAkd2VsbHRhcHNdCi0KLSAgICAgICAgICAgIGZvcmVhY2ggZG9tYWluICRkb21haW5zIHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiaWYge1xbbHNlYXJjaCBcJGRvbWFpbnMgJGRvbWFpblxdICE9IC0xfSB7XG4iCi0gICAKLSAgICAgICAgICAgICAgICMKLSAgICAgICAgICAgICAgICMgSGFuZGxlIHRoZSBlbmQgY2FwcwotICAgICAgICAgICAgICAgIwotICAgCi0gICAgICAgICAgICAgICBzZXQgc3RkX2FyZ3MgIi1wcmVmaXggJGRvbWFpbiAtcG93ZXJfZG9tYWluICRkb21haW4iCi0gICAgICAgICAgICAgICBzZXQgYWRkICJhZGRfZW5kY2FwcyAkc3RkX2FyZ3MiCi0gICAgICAgICAgICAgICBpZiB7IVtjYXRjaCB7c2V0IHByZSAkdmFycygkZG9tYWluLHByZV9lbmRjYXApfV0gJiYKLSAgICAgICAgICAgICAgICAgICAhW2NhdGNoIHtzZXQgcG9zdCAkdmFycygkZG9tYWluLHBvc3RfZW5kY2FwKX1dfSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiRhZGQgLXN0YXJ0X3Jvd19jYXAgJHByZSAtZW5kX3Jvd19jYXAgJHBvc3RcbiIKLSAgICAgICAgICAgICAgIH0gZWxzZWlmIHshW2NhdGNoIHtzZXQgcHJlICR2YXJzKHByZV9lbmRjYXApfV0gJiYKLSAgICAgICAgICAgICAgICAgICAgICAgICAhW2NhdGNoIHtzZXQgcG9zdCAkdmFycyhwb3N0X2VuZGNhcCl9XX0gewotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIkYWRkIC1zdGFydF9yb3dfY2FwICRwcmUgLWVuZF9yb3dfY2FwICRwb3N0XG4iCi0gICAgICAgICAgICAgICB9Ci0gICAKLSAgICAgICAgICAgICAgIHNldCB0YXBzICIiCi0gICAgICAgICAgICAgICBpZiB7W2NhdGNoIHtzZXQgdGFwcyAkdmFycygkZG9tYWluLHdlbGx0YXBzKX1dfSB7Ci0gICAgICAgICAgICAgICAgICBjYXRjaCB7c2V0IHRhcHMgJHZhcnMod2VsbHRhcHMpfQotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgaWYgeyR0YXBzID09ICIifSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIlx9XG4iCi0gICAgICAgICAgICAgICAgICBjb250aW51ZQotICAgICAgICAgICAgICAgfQotICAgCi0gICAgICAgICAgICAgICAjCi0gICAgICAgICAgICAgICAjIEhhbmRsZSB3ZWxsIHRhcHMKLSAgICAgICAgICAgICAgICMKLSAgIAotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJhZGRfd2VsbF90YXBzICRzdGRfYXJncyAtY2VsbCBcW2xpc3QgJHRhcHNcXSIKLSAgIAotICAgICAgICAgICAgICAgaWYgeyFbY2F0Y2gge3NldCBpICR2YXJzKCRkb21haW4sd2VsbHRhcHMsY2VsbF9pbnRlcnZhbCl9XX0gewotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIgLWNlbGxfaW50ZXJ2YWwgJGkiCi0gICAgICAgICAgICAgICB9IGVsc2VpZiB7IVtjYXRjaCB7c2V0IGkgJHZhcnMod2VsbHRhcHMsY2VsbF9pbnRlcnZhbCl9XX0gewotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIgLWNlbGxfaW50ZXJ2YWwgJGkiCi0gICAgICAgICAgICAgICB9Ci0gICAKLSAgICAgICAgICAgICAgIGlmIHshW2NhdGNoIHtzZXQgb2Zmc2V0ICR2YXJzKCRkb21haW4sd2VsbHRhcHMscm93X29mZnNldCl9XSB8fAotICAgICAgICAgICAgICAgICAgICFbY2F0Y2gge3NldCBvZmZzZXQgJHZhcnMod2VsbHRhcHMscm93X29mZnNldCl9XX0gewotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIgLWluX3Jvd19vZmZzZXQgJG9mZnNldCIKLSAgICAgICAgICAgICAgIH0KLSAgIAotICAgICAgICAgICAgICAgaWYgeyFbY2F0Y2gge3NldCBjaGVja2VyICR2YXJzKCRkb21haW4sd2VsbHRhcHMsY2hlY2tlcmJvYXJkKX1dIHx8Ci0gICAgICAgICAgICAgICAgICAgIVtjYXRjaCB7c2V0IGNoZWNrZXIgJHZhcnMod2VsbHRhcHMsY2hlY2tlcmJvYXJkKX1dfSB7Ci0gICAgICAgICAgICAgICAgICBpZiB7JGNoZWNrZXJ9IHsKLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIC1jaGVja2VyX2JvYXJkIgotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJcbiIKLSAgIAotICAgICAgICAgICAgICAgIwotICAgICAgICAgICAgICAgIyBBZGQgYSB2ZXJpZnkgc3RlcCwgaWYgcmVxdWVzdGVkCi0gICAgICAgICAgICAgICAjCi0gICAKLSMgICAgICAgICAgICAgICBpZiB7IVtjYXRjaCB7c2V0IHJ1bGUgJHZhcnMoJGRvbWFpbix3ZWxsdGFwcyx2ZXJpZnlfcnVsZSl9XSB8fAotIyAgICAgICAgICAgICAgICAgICAhW2NhdGNoIHtzZXQgcnVsZSAkdmFycyh3ZWxsdGFwcyx2ZXJpZnlfcnVsZSl9XX0gewotIyAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiY2hlY2tfd2VsbF90YXAgLWNlbGxzIFxbbGlzdCAkdGFwc1xdIgotIyAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIC1wb3dlcl9kb21haW4gJGRvbWFpbiIKLSMgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiAtcmVwb3J0ICR2YXJzKHJwdF9kaXIpLyRkb21haW4ud2VsbHRhcC5ycHRcbiIKLSMgICAgICAgICAgICAgICB9Ci0gICAKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAifVxuIgotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAjCi0gICAgICAgICAgICAjIFdlJ3ZlIHRha2VuIGNhcmUgb2YgYWxsIG9mIHRoZSBkb21haW5zIHRoYXQgd2UgaGF2ZSBleHBsaWNpdAotICAgICAgICAgICAgIyBzZXR0aW5ncyBmb3IuICBIb3dldmVyLCB3ZSBtYXkgc3RpbGwgaGF2ZSBkb21haW5zIGluIHRoZSBkZXNpZ24KLSAgICAgICAgICAgICMgdGhhdCB3ZSBrbm93IG5vdGhpbmcgZXhwbGljaXQgYWJvdXQuICBXZSBuZWVkIHRvIGhhbmRsZSB0aGVzZQotICAgICAgICAgICAgIyB3aXRoIGEgZGlmZmVyZW50IHNldCBvZiBjb2RlLgotICAgICAgICAgICAgIwotICAgICAgICAgICAgIyBXZSBhcmUgZ29pbmcgdG8gY2hlYXQuICBTaW5jZSB0aGUgY29kZSB3ZSBuZWVkIGlzIGFscmVhZHkgd3JpdHRlbgotICAgICAgICAgICAgIyAoYmVsb3cpLCB3ZSBhcmUgZ29pbmcgdG8gcmVjdXJzaXZlbHkgY2FsbCB0aGlzIHJvdXRpbmUgdG8gZ2V0Ci0gICAgICAgICAgICAjIHRoZSBza2VsZXRvbiB0aGF0IHdlIG5lZWQgYW5kIHdyYXAgaXQgdXAgaW50byBhIGZvci1sb29wLiAgVGhpcwotICAgICAgICAgICAgIyBzaG91bGQgZ2V0IHVzIHNvbWV0aGluZyB0aGF0IGxvb2tzIGxpa2UgdGhlIGZvbGxvd2luZzoKLSAgICAgICAgICAgICMgICAgICAgc2V0IHByb2Nlc3NlZCBbbGlzdCBkb21haW4xIGRvbWFpbjIgZG9tYWluM10KLSAgICAgICAgICAgICMgICAgICAgZm9yZWFjaCBkb21haW4gJGRvbWFpbnMgewotICAgICAgICAgICAgIyAgICAgICAgICBpZiB7W2xzZWFyY2ggJHByb2Nlc3NlZF9kb21haW5zICRkb21haW5dID09IC0xfSB7Ci0gICAgICAgICAgICAjICAgICAgICAgICAgIGFkZEVuZENhcCAtcG93ZXJfZG9tYWluICRkb21haW4gLXByZWZpeCAkZG9tYWluIC4uLgotICAgICAgICAgICAgIyAgICAgICAgICAgICBhZGRXZWxsVGFwIC1wb3dlcl9kb21haW4gJGRvbWFpbiAtcHJlZml4ICRkb21haW4gLi4uCi0gICAgICAgICAgICAjICAgICAgICAgICAgIHZlcmlmeVdlbGxUYXAgLXBvd2VyX2RvbWFpbiAkZG9tYWluIC4uLgotICAgICAgICAgICAgIyAgICAgICAgICB9Ci0gICAgICAgICAgICAjICAgICAgIH0KLSAgICAgICAgICAgICMKLSAgICAgICAgICAgICMgTk9URTogVGhlIG91dHB1dCByb3V0aW5lIHdpbGwgdGFrZSBjYXJlIG9mIG1ha2luZyB0aGlzIGxvb2sgcHJldHR5Ci0gICAgICAgICAgICAjICAgICAgIGF0IHRoZSBlbmQuICBXZSBkb24ndCBuZWVkIHRvIHdvcnJ5IGFib3V0IGluZGVudGF0aW9uIGZvcgotICAgICAgICAgICAgIyAgICAgICB0aGUgaW5zZXJ0ZWQgY29tbWFuZHMKLSAgICAgICAgICAgICMKLSAgIAotIyAgICAgICAgICAgIHNldCBzYXZlICR2YXJzKGNwZl9maWxlKQotIyAgICAgICAgICAgIHVuc2V0IHZhcnMoY3BmX2ZpbGUpCi0jICAgICAgICAgICAgc2V0IGRlZmF1bHRfaW5zZXJ0IFtpbnNlcnRfd2VsbHRhcHNfZW5kY2FwcyB0cnVlXQotIyAgICAgICAgICAgIGlmIHskZGVmYXVsdF9pbnNlcnQgIT0gIiJ9IHsKLSMgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgInNldCBwcm9jZXNzZWRfZG9tYWlucyBcW2xpc3QgJGRvbWFpbnNcXVxuIgotIyAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiZm9yZWFjaCBkb21haW4gXCRkb21haW5zIHtcbiIKLSMgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiAgIGlmIHtcW2xzZWFyY2ggXCRwcm9jZXNzZWRfZG9tYWlucyBcJGRvbWFpblxdID09IC0xfSB7XG4iCi0jICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIgICAgICAkZGVmYXVsdF9pbnNlcnQiCi0jICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIgICB9XG4iCi0jICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJ9XG4iCi0jICAgICAgICAgICAgfQotIyAgICAgICAgICAgIHNldCB2YXJzKGNwZl9maWxlKSAkc2F2ZQotICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiZmZfcHJvY3M6Omluc2VydF93ZWxsdGFwc19lbmRjYXBzXG4iCi0gICAgICAgICB9Ci0gICAgICB9IGVsc2UgewotICAgICAgICAgIwotICAgICAgICAgIyBUaGVyZSBpcyBubyBDUEYgZmlsZSB0aGF0IHdlIG5lZWQgdG8gd29ycnkgYWJvdXQuICBIb3dldmVyLCBpZgotICAgICAgICAgIyAkb3V0bGluZSBpcyB0cnVlLCBpdCBtZWFucyB0aGF0IHRoZSBjb2RlIChhYm92ZSkgdGhhdCBoYW5kbGVzIHBvd2VyCi0gICAgICAgICAjIGRvbWFpbnMgY2FsbGVkIHRoaXMgcm91dGluZSByZWN1cnNpdmVseSwgYW5kIHdlIG5lZWQgdG8gY2hhbmdlCi0gICAgICAgICAjIHRoZSBjb21tYW5kcyBhIGxpdHRsZSBiaXQgdG8gaW5jbHVkZSB2YXJpYWJsZXMgZm9yIHBvd2VyIGRvbWFpbnMKLSAgICAgICAgICMKLSAgICAgICAgICMgU3RhcnQgd2l0aCB0aGUgc2ltcGxlIGNhc2U6IGVuZGNhcHMKLSAgICAgICAgICMKLQotICAgICAgICAgaWYgeyFbY2F0Y2gge3NldCBwcmUgJHZhcnMocHJlX2VuZGNhcCl9XSAmJgotICAgICAgICAgICAgICFbY2F0Y2gge3NldCBwb3N0ICR2YXJzKHBvc3RfZW5kY2FwKX1dfSB7Ci0KLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiYWRkX2VuZGNhcHMgLXN0YXJ0X3Jvd19jYXAgJHByZSAtZW5kX3Jvd19jYXAgJHBvc3QiCi0gICAgICAgICAgICBpZiB7ISRvdXRsaW5lfSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiAtcHJlZml4IEVORENBUFxuIgotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIC1wcmVmaXggXCRkb21haW4gLXBvd2VyX2RvbWFpbiBcJGRvbWFpblxuIgotICAgICAgICAgICAgfQotICAgICAgICAgfQotCi0gICAgICAgICAjCi0gICAgICAgICAjIE5vdyBwcm9jZXNzIHdlbGx0YXBzCi0gICAgICAgICAjCi0KLSAgICAgICAgIGlmIHshW2NhdGNoIHtzZXQgdGFwcyAkdmFycyh3ZWxsdGFwcyl9XX0gewotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJhZGRfd2VsbF90YXBzIC1jZWxsIFxbbGlzdCAkdGFwc1xdIgotICAgICAgICAgICAgaWYgeyEkb3V0bGluZX0gewotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIgLXByZWZpeCBXRUxMVEFQIgotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIC1wcmVmaXggXCRkb21haW4gLXBvd2VyX2RvbWFpbiBcJGRvbWFpbiIKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgaWYgeyFbY2F0Y2gge3NldCBtYXhfZ2FwICR2YXJzKHdlbGx0YXBzLG1heF9nYXApfV19IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIC1tYXhfZ2FwICRtYXhfZ2FwIgotICAgICAgICAgICAgfSBlbHNlaWYgeyFbY2F0Y2gge3NldCBpbnRlcnZhbCAkdmFycyh3ZWxsdGFwcyxjZWxsX2ludGVydmFsKX1dfSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiAtY2VsbF9pbnRlcnZhbCAkaW50ZXJ2YWwiCi0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGlmIHshW2NhdGNoIHtzZXQgb2Zmc2V0ICR2YXJzKHdlbGx0YXBzLHJvd19vZmZzZXQpfV19IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIC1pbl9yb3dfb2Zmc2V0ICRvZmZzZXQiCi0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGlmIHshW2NhdGNoIHtzZXQgY2hlY2tlciAkdmFycyh3ZWxsdGFwcyxjaGVja2VyYm9hcmQpfV19IHsKLSAgICAgICAgICAgICAgIGlmIHskY2hlY2tlcn0gewotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIgLWNoZWNrZXJfYm9hcmQiCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIlxuIgotCi0gICAgICAgICAgICAjCi0gICAgICAgICAgICAjIElmIGEgdmVyaWZ5IHJlcXVlc3QgaGFzIGJlZW4gbWFkZSwgY3JlYXRlIHRoZSBjb21tYW5kIHRvCi0gICAgICAgICAgICAjIGRvIHNvLiAgQWdhaW4sIHRha2UgaW50byBhY2NvdW50IHRoZSBwb3RlbnRpYWwgZm9yIGEgcmVjdXJzaXZlCi0gICAgICAgICAgICAjIGNhbGwgdG8gdGhpcyByb3V0aW5lLgotICAgICAgICAgICAgIwotCi0jICAgICAgICAgICAgaWYgeyFbY2F0Y2gge3NldCBydWxlICR2YXJzKHdlbGx0YXBzLHZlcmlmeV9ydWxlKX1dfSB7Ci0jICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJjaGVja193ZWxsX3RhcCAtY2VsbHMgXFtsaXN0ICR0YXBzXF0gIgotIyAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIC1yZXBvcnQgJHZhcnMocnB0X2RpcikvIgotIyAgICAgICAgICAgICAgIGlmIHshJG91dGxpbmV9IHsKLSMgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIndlbGx0YXAucnB0XG4iCi0jICAgICAgICAgICAgICAgfSBlbHNlIHsKLSMgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIlwkZG9tYWluLndlbGx0YXAucnB0IC1wb3dlcl9kb21haW4gXCRkb21haW5cbiIKLSMgICAgICAgICAgICAgICB9Ci0jICAgICAgICAgICAgfSBlbHNlaWYgeyEkb3V0bGluZX0gewotIyMgICAgICAgICAgICAgICBwdXRzICAiPEZGPiBDYW5ub3QgcnVuIHZlcmlmeVdlbGxUYXAgYmVjYXVzZSB2YXJzKHdlbGx0YXBzLHZlcmlmeV9ydWxlKSBpcyBub3QgZGVmaW5lZCIKLSMgICAgICAgICAgICAgICBzZXQgd2FybmluZ3MoJHZhcnMod2FybmluZ19jb3VudCkpICJDYW5ub3QgcnVuIHZlcmlmeVdlbGxUYXAgYmVjYXVzZSB2YXJzKHdlbGx0YXBzLHZlcmlmeV9ydWxlKSBpcyBub3QgZGVmaW5lZCIKLSMgICAgICAgICAgICAgICBpbmNyIHZhcnMod2FybmluZ19jb3VudCkKLSMgICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0gICAgICB9Ci0KLSAgICAgICMKLSAgICAgICMgSWYgd2UgY3JlYXRlZCBhbnkgY29tbWFuZHMgdG8gYmUgZXhlY3V0ZWQsIHByZWZpeCB0aGUgY29tbWFuZHMgd2l0aCBhCi0gICAgICAjIGhlYWRlcgotICAgICAgIwotCi0gICAgICBpZiB7KCRjb21tYW5kcyAhPSAiIikgJiYgISRvdXRsaW5lfSB7Ci0gICAgICAgICBzZXQgYm9keSAkY29tbWFuZHMKLQotICAgICAgICAgc2V0IGNvbW1hbmRzICIiCi0gICAgICAgICBpZiB7JHZhcnModmVyYm9zZSl9IHsKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiI1xuIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjIElOU0VSVElORyBXRUxMVEFQUyBBTkQvT1IgRU5EQ0FQU1xuIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjXG4iCi0gICAgICAgICB9Ci0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgJGJvZHkKLSAgICAgIH0KLQotICAgICAgcmV0dXJuICRjb21tYW5kcwotICAgfQotCi0gICBwcm9jIHJvdXRlX3NlY29uZGFyeV9wZ19uZXRzIHt9IHsKLQotICAgICAgZ2xvYmFsIHZhcnMKLSAgICAgIGdsb2JhbCBlcnJvcnMKLQotICAgICAgIwotICAgICAgIyBEb24ndCB0cnkgdG8gcm91dGUgdW5sZXNzIHRoZSBwcm9wZXIgZmxhZ3MgYXJlIGluIHBsYWNlIHRvIGRvIHNvCi0gICAgICAjCi0KLSAgICAgIGlmIHshW2luZm8gZXhpc3RzIHZhcnMocm91dGVfc2Vjb25kYXJ5X3BnX25ldHMpXSB8fAotICAgICAgICAgICEkdmFycyhyb3V0ZV9zZWNvbmRhcnlfcGdfbmV0cyl9IHsKLSAgICAgICAgIHJldHVybiAiIgotICAgICAgfQotCi0gICAgICBzZXQgY29tbWFuZHMgIiMgPEZGPiBST1VUSU5HIFNFQ09OREFSWSBQT1dFUiBORVRTIC4uLlxuIgotCi0gICAgICAjCi0gICAgICAjIEVuYWJsZSBnbG9iYWwgcGluIHBhaXJzIChpZiBkZWZpbmVkKQotICAgICAgIwotCi0gICAgICBpZiB7W2NhdGNoIHtzZXQgYXJnICR2YXJzKHNlY29uZGFyeV9wZyxjZWxsX3Bpbl9wYWlycyl9XX0gewotICAgICAgICAgcHV0cyAiPEZGPiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09IgotICAgICAgICAgcHV0cyAiPEZGPiBFUlJPUjogTm8gY2VsbC9waW4gcGFpcnMgZGVmaW5lZC4gIFBsZWFzZSBkZWZpbmUgY2VsbC9waW4iCi0gICAgICAgICBwdXRzICI8RkY+ICAgICAgICBwYWlycyBpbiB5b3VyIHNldHVwLnRjbCB1c2luZyB0aGUgdmFyaWFibGUiCi0gICAgICAgICBwdXRzICI8RkY+ICAgICAgICB2YXJzKHNlY29uZGFyeV9wZyxjZWxsX3Bpbl9wYWlycykiCi0gICAgICAgICBwdXRzICI8RkY+ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0iCi0gICAgICAgICBpZiB7JHZhcnMoY29kZWdlbil9IHsKLSAgICAgICAgICAgIHJldHVybiAkY29tbWFuZHMKLSAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgdXBsZXZlbCAjMCBldmFsICRjb21tYW5kcwotICAgICAgICAgfQotICAgICAgfQotICAgICAgYXBwZW5kIGNvbW1hbmRzICJzZXRfcGdfcGluc191c2Vfc2lnbmFsX3JvdXRlICRhcmdcbiIKLQotICAgICAgIwotICAgICAgIyBCdWlsZCBjb21tYW5kcyBmb3IgaW5kaXZpZHVhbCBuZXRzIChpZiBkZWZpbmVkKQotICAgICAgIwotCi0gICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoc2Vjb25kYXJ5X3BnLG5ldHMpXX0gewotICAgICAgICAgZm9yZWFjaCBuZXQgJHZhcnMoc2Vjb25kYXJ5X3BnLG5ldHMpIHsKLSAgICAgICAgICAgIGlmIHshW2NhdGNoIHtzZXQgYXJnICR2YXJzKCRuZXQsY2VsbF9waW5fcGFpcnMpfV19IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAic2V0X3BnX3BpbnNfdXNlX3NpZ25hbF9yb3V0ZSAkYXJnXG4iCi0gICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0gICAgICAgICBzZXQgbmV0cyAkdmFycyhzZWNvbmRhcnlfcGcsbmV0cykKLSAgICAgICAgIHNldCBuZXRGb3JtYXQgIiAtbmV0cyAlcyIKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgICBzZXQgbmV0cyBbbGlzdCAic2Vjb25kYXJ5X3BnIl0KLSAgICAgICAgIHNldCBuZXRGb3JtYXQgIiIKLSAgICAgIH0KLQotICAgICAgZm9yZWFjaCBuZXQgJG5ldHMgewotICAgICAgICAgc2V0IHJvdXRlICJyb3V0ZV9zZWNvbmRhcnlfcGdfcGlucyIKLSAgICAgICAgIGFwcGVuZCByb3V0ZSBbZm9ybWF0ICRuZXRGb3JtYXQgJG5ldF0KLSAgICAgICAgIGNhdGNoIHthcHBlbmQgcm91dGUgIiAtcGF0dGVybiAkdmFycygkbmV0LHBhdHRlcm4pIn0KLSAgICAgICAgIGNhdGNoIHthcHBlbmQgcm91dGUgIiAtbWF4X3BpbnNfcGVyX3RydW5rICR2YXJzKCRuZXQsbWF4X2Zhbm91dCkifQotICAgICAgICAgY2F0Y2gge2FwcGVuZCByb3V0ZSAiIC1ub25fZGVmYXVsdF9ydWxlICR2YXJzKCRuZXQsbm9uX2RlZmF1bHRfcnVsZSkifQotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIkcm91dGVcbiIKLSAgICAgIH0KLSAgICAgIHJldHVybiAkY29tbWFuZHMKLSAgIH0KLQotICAgcHJvYyBhZGRfcG93ZXJfc3dpdGNoZXMge3tkb21haW5zICIifX0gewotCi0gICAgICBnbG9iYWwgdmFycwotICAgICAgZ2xvYmFsIGVycm9ycwotICAgICAgZ2xvYmFsIG1hcAotCi0gICAgICBzb3VyY2UgJHZhcnMoc2NyaXB0X3BhdGgpL0VUQy9JTk9WVVMvbWFwX29wdGlvbnMudGNsCi0KLSAgICAgIGlmIHskZG9tYWlucyA9PSAiIn0gewotICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkZfTk9WVVM6OmdldF9wb3dlcl9kb21haW5zX2NvZGVdCi0jICAgICAgICAgZXZhbCBbRkY6OmdldF9wb3dlcl9kb21haW5zX2NvZGVdCi0gICAgICB9Ci0KLSAgICAgIGZvcmVhY2ggZG9tYWluICRkb21haW5zIHsKLSAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkZG9tYWluLHN3aXRjaGFibGUpXSAmJgotICAgICAgICAgICAgICR2YXJzKCRkb21haW4sc3dpdGNoYWJsZSl9IHsKLSAgICAgICAgICAgIHNldCB0eXBlICR2YXJzKCRkb21haW4sc3dpdGNoX3R5cGUpCi0KLSAgICAgICAgICAgIGRlbGV0ZVBvd2VyU3dpdGNoIC0kdHlwZSAtcG93ZXJfZG9tYWluICRkb21haW4KLQotICAgICAgICAgICAgc2V0IGNvbW1hbmQgImFkZFBvd2VyU3dpdGNoIC1wb3dlcl9kb21haW4gJGRvbWFpbiAtJHR5cGUiCi0KLSAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkZG9tYWluLGNoZWNrZXJfYm9hcmQpXSAmJgotICAgICAgICAgICAgICAgICR2YXJzKCRkb21haW4sY2hlY2tlcl9ib2FyZCl9IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgLWNoZWNrZXJCb2FyZCIKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkZG9tYWluLGJhY2tfdG9fYmFja19jaGFpbildICYmCi0gICAgICAgICAgICAgICAgJHZhcnMoJGRvbWFpbixiYWNrX3RvX2JhY2tfY2hhaW4pfSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiIC1iYWNrVG9CYWNrQ2hhaW4iCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJGRvbWFpbixsb29wX2JhY2tfYXRfZW5kKV0gJiYKLSAgICAgICAgICAgICAgICAkdmFycygkZG9tYWluLGxvb3BfYmFja19hdF9lbmQpfSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiIC1sb29wYmFja0F0RW5kIgotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCRkb21haW4sY2hlY2tfaGVpZ2h0KV0gJiYKLSAgICAgICAgICAgICAgICAhJHZhcnMoJGRvbWFpbixjaGVja19oZWlnaHQpfSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiIC1ub0RvdWJsZUhlaWdodENoZWNrIgotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCRkb21haW4sdmVyaWZ5X3Jvd3MpXSAmJgotICAgICAgICAgICAgICAgICEkdmFycygkZG9tYWluLHZlcmlmeV9yb3dzKX0gewotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAtbm9Sb3dWZXJpZnkiCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJGRvbWFpbixlbmFibGVfY2hhaW4pXSAmJgotICAgICAgICAgICAgICAgICEkdmFycygkZG9tYWluLGVuYWJsZV9jaGFpbil9IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgLW5vRW5hYmxlQ2hhaW4iCi0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGZvcmVhY2ggb3B0aW9uIFthcnJheSBuYW1lcyBtYXBdIHsKLSAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkZG9tYWluLCRvcHRpb24pXX0gewotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAtJG1hcCgkb3B0aW9uKSAkdmFycygkZG9tYWluLCRvcHRpb24pIgotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICB1cGxldmVsICMwIGV2YWwgJGNvbW1hbmQKLSAgICAgICAgIH0KLSAgICAgIH0KLSAgIH0KLQotICAgcHJvYyBydW5fY2xvY2tfZWNvIHthcmdzfSB7Ci0KLSAgICAgIGdsb2JhbCB2YXJzCi0gICAgICBnbG9iYWwgZXJyb3JzCi0KLSAgICAgIGlmIHtbbGxlbmd0aCAkYXJnc10gIT0gMX0gewotICAgICAgICAgcHV0cyAiPEZGPiBJbnRlcm5hbCBlcnJvciBpbiBydW5fY2xvY2tfZWNvLiAgV3JvbmcgbnVtYmVyIG9mIGFyZ3MuIgotICAgICAgICAgZXhpdCAtMTExCi0gICAgICB9Ci0KLSAgICAgIHNldCBjb21tYW5kcyAiIgotIyAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyA8RkY+IFJVTk5JTkcgQ0xPQ0sgRUNPXG4iCi0gICAgICBzd2l0Y2ggJGFyZ3MgewotICAgICAgICAgInBvc3Rfcm91dGUiIHsKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkZfTk9WVVM6OmRlbGV0ZV9maWxsZXJfY2VsbHNdCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgImNsb2NrX2VjbyAtcG9zdF9yb3V0ZSAtdXNlX3NwZWNfZmlsZV9jZWxsc19vbmx5XG4iCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGX05PVlVTOjphZGRfZmlsbGVyX2NlbGxzXQotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJjaGFuZ2VDbG9ja1N0YXR1cyAtYWxsIC1ub19maXhlZF9uZXRfd2lyZXNcbiIKLSAgICAgICAgIH0KLSAgICAgICAgICJwb3N0X2N0cyIgeyAKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiY2xvY2tfZWNvIC1wb3N0X2N0cyAtdXNlX3NwZWNfZmlsZV9jZWxsc19vbmx5XG4iCi0gICAgICAgICB9Ci0gICAgICAgICBkZWZhdWx0IHsKLSAgICAgICAgICAgIHB1dHMgIjxGRj4gSW50ZXJuYWwgZXJyb3IgaW4gcnVuX2Nsb2NrX2Vjby4iCi0gICAgICAgICAgICBwdXRzICI8RkY+IEludmFsaWQgYXJndW1lbnQ7IHZhbGlkIGFyZ3VtZW50cyBhcmUgcG9zdF9jdHMgYW5kIHBvc3Rfcm91dGUuIgotICAgICAgICAgICAgZXhpdCAtMTExCi0gICAgICAgICB9Ci0gICAgICB9Ci0gICAjICAgaWYgeyR2YXJzKGNvZGVnZW4pfSB7Ci0gICAgICAgICByZXR1cm4gJGNvbW1hbmRzCi0gICAjICAgfSBlbHNlIHsKLSAgICMgICAgICAgdXBsZXZlbCAjMCBldmFsICRjb21tYW5kcwotICAgIyAgIH0KLSAgIH0KLQotICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgIyBNYWluIGZvdW5kYXRpb24gZmxvdyBzdGVwIHByb2NlZHVyZXMKLSAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLQotICAgcHJvYyBydW5fc3luX21hcCB7e2Zvcm1hdCAxfX0gewotICAgCi0gICAgICBnbG9iYWwgdmFycwotICAgICAgZ2xvYmFsIGVudgotICAgICAgZ2xvYmFsIGVycm9ycwotCi0gICAgICBzZXQgdmFycyhzdGVwKSBzeW5fbWFwCi0KLSAgICAgIHNldCBjb21tYW5kcyAiIgotCi0jICAgICAgYXBwZW5kIGNvbW1hbmRzICJzb3VyY2UgJHZhcnMoc2NyaXB0X2RpcikvdmFycy50Y2xcbiIKLQotICAgICAgYXBwZW5kIGNvbW1hbmRzICJwcm9jIFB1dHMge2FyZ3N9IHtwdXRzIFwkYXJnc31cbiIKLQotICAgICAgaWYgeyR2YXJzKG5vdnVzKX0gewotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJwdXRzIFxbZ2V0X2RiIHByb2dyYW1fdmVyc2lvbiAvXF1cbiIKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgInB1dHMgXFtnZXRfYXR0ciBwcm9ncmFtX3ZlcnNpb24gL1xdXG4iCi0gICAgICB9Ci0KLSAgICAgICMjIGVuYWJsZSBtdWx0aSBwcm9jZXNzaW5nCi0gICAgICBhcHBlbmQgY29tbWFuZHMgInNldCBob3N0bGlzdCBcW2xyZXBlYXQgJHZhcnMobG9jYWxfY3B1cykgbG9jYWxob3N0XF1cbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyAic2V0X2RiIHN1cGVyX3RocmVhZF9zZXJ2ZXJzIFwkaG9zdGxpc3RcbiIKLSAgICAgCi0jICAgICAgaWYgeyR2YXJzKGNhcHR1cmVfbWV0cmljcyl9IHsKLSMgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIlxuZW5hYmxlX21ldHJpY3MgLW9uXG4iCi0jICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJwdXNoX3NuYXBzaG90X3N0YWNrXG4iCi0jICAgICAgfQotICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6c291cmNlX3BsdWcgcHJlX3N5bl9zZXR1cF90Y2xdCi0gICAgICAKLSAgICAgICAgIHNldCBjb21tYW5kICJzZXRfZGIgaW5mb3JtYXRpb25fbGV2ZWwgMVxuIgotICAgICAgYXBwZW5kIGNvbW1hbmQgInNldF9kYiBzb3VyY2VfdmVyYm9zZSBmYWxzZVxuIgotICAgICAgYXBwZW5kIGNvbW1hbmQgInNldF9kYiAtcXVpZXQgcHJpbnRfZXJyb3JfaW5mbyBmYWxzZVxuIgotICAgICAgYXBwZW5kIGNvbW1hbmQgInNldF9kYiAtcXVpZXQgZWNob19jb21tYW5kcyBmYWxzZVxuIgotICAgICAgYXBwZW5kIGNvbW1hbmQgInNldF9kYiBtZXNnX2NvbG9yaW5nIGZhbHNlXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZCAic2V0X2RiIHFvc19yZXBvcnRfYmFzaWNfY29zdF9ncm91cHMgdHJ1ZVxuIgotCi0gICAgICAgICBzZXQgY29tbWFuZCAic2V0X2RiIGxpYl9sZWZfY29uc2lzdGVuY3lfY2hlY2tfZW5hYmxlIHRydWVcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kICJzZXRfZGIgc2NyaXB0X3NlYXJjaF9wYXRoIHsuL31cbiIKLSAgICAgIAotICAgICAgYXBwZW5kIGNvbW1hbmQgInN1cHByZXNzX21lc3NhZ2VzIHtMQlItMzAgTEJSLTMxIExCUi0xNzAgTEJSLTcyIExCUi0xNTUgUEhZUy0yMTAgUEhZUy0yNTYgTEJSLTIwMSBMQlItMzQgTEJSLTgzIExCUi00MCBMQlItMTYyIExCUi0xMjJ9XG4iCi0gICAgICBhcHBlbmQgY29tbWFuZCAicmVkaXJlY3QgL2Rldi9udWxsIHtzZXQgbWFwX2ZhbmN5X25hbWVzIDF9XG4iCi0KLSAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OnNvdXJjZV9wbHVnIHBvc3Rfc3luX3NldHVwX3RjbF0KLSAgICAgIAotICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6c291cmNlX3BsdWcgcHJlX3N5bl9sb2FkX2xpYl90Y2xdCi0KLSAgICAgIHNldCBjb21tYW5kIFtGRl9OT1ZVUzo6aW5pdGlhbGl6ZV9zdGVwICR2YXJzKHN0ZXApXQotICAgICAgc2V0IGNvbW1hbmQgW0ZGX05PVlVTOjppbml0aWFsaXplX3RpbWluZ10KLQotICAgICAgc2V0IGNvbW1hbmQgIlxucmVhZF9tbW1jICR2YXJzKHZpZXdfZGVmaW5pdGlvbl90Y2wpXG5cbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxyZWFkX21tbWMgJGNvbW1hbmRdCi0gICAgIAotICAgICAgc2V0IGNvbW1hbmQgIiIgCi0gICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMobGVmX2ZpbGVzKV19IHsKLSAgICAgICAgYXBwZW5kIGNvbW1hbmQgInJlYWRfcGh5c2ljYWwgLWxlZiBcIlxcXG4iCi0gICAgICAgIGZvcmVhY2ggbGVmICR2YXJzKGxlZl9maWxlcykgewotICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiXHQkbGVmXFxcbiIKLSAgICAgICAgfQotICAgICAgICBhcHBlbmQgY29tbWFuZCAiXCJcbiIKLSAgICAgIH0KLSAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxyZWFkX3BoeXNpY2FsICRjb21tYW5kXQotICAgICAgCi0jICAgICAgZm9yZWFjaCBsaWIgJHZhcnMoJHZhcnMoW3N0cmluZyB0cmltICR2YXJzKCR2YXJzKCR2YXJzKGRlZmF1bHRfc2V0dXBfdmlldyksZGVsYXlfY29ybmVyKSx0aW1pbmdfY29uZGl0aW9uKV0sbGlicmFyeV9zZXQpLHRpbWluZykgewotIyAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgICAkbGliIFxcXG4iCi0jICAgICAgfQotIyAgICAgIGFwcGVuZCBjb21tYW5kICJcIlxuIgotIyAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxyZWFkX2xpYiAkY29tbWFuZF0KLSAgICAgIAotIyAgICAgIHNldCBjb21tYW5kICJcbnNldF9kYiBsZWZfbGlicmFyeSBcIlxcXG4iCi0jICAgICAgZm9yZWFjaCBsZWYgJHZhcnMobGVmX2ZpbGVzKSB7Ci0jICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAgICRsZWYgXFxcbiIKLSMgICAgICB9Ci0jICAgICAgYXBwZW5kIGNvbW1hbmQgIlwiXG4iCi0jICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHJlYWRfbGVmICRjb21tYW5kXQotICAgICAgCi0jICAgICAgc2V0IGNvbW1hbmQgIlxuc2V0X2RiIHFyY190ZWNoX2ZpbGUgJHZhcnMoJHZhcnMoJHZhcnMoJHZhcnMoZGVmYXVsdF9zZXR1cF92aWV3KSxkZWxheV9jb3JuZXIpLHJjX2Nvcm5lcikscXhfdGVjaF9maWxlKVxuIgotIyAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxyZWFkX3FyYyAkY29tbWFuZF0KLSAgICAgIAotICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGRvbnRfdXNlX2xpc3QpXSAmJiAkdmFycyhkb250X3VzZV9saXN0KSAhPSAiIiB9IHsKLSAgICAgICAgIGZvcmVhY2ggY2VsbCAkdmFycyhkb250X3VzZV9saXN0KSB7Ci0gICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJzZXRfZGIgYXZvaWQgdHJ1ZSBcW2ZpbmQgLyAtbGliY2VsbCAkY2VsbFxdXG4iCi0gICAgICAgICB9Ci0gICAgICB9Ci0KLSAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OnNvdXJjZV9wbHVnIHBvc3Rfc3luX2xvYWRfbGliX3RjbF0KLQotICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGNwZl9maWxlKV19IHsKLSAgICAgICAgIHNldCBjb21tYW5kICJyZWFkX3Bvd2VyX2ludGVudCAtbW9kdWxlICR2YXJzKGRlc2lnbikgLWNwZiAkdmFycyhjcGZfZmlsZSlcbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxyZWFkX3Bvd2VyX2ludGVudCAkY29tbWFuZF0KLSAgICAgIH0KLQotICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGllZWUxODAxX2ZpbGUpXX0gewotICAgICAgICAgc2V0IGNvbW1hbmQgInJlYWRfcG93ZXJfaW50ZW50IC1tb2R1bGUgJHZhcnMoZGVzaWduKSAtMTgwMSAkdmFycyhpZWVlMTgwMV9maWxlKVxuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHJlYWRfcG93ZXJfaW50ZW50ICRjb21tYW5kXQotICAgICAgfQotICAgICAKLSAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhoZGxfc2VhcmNoX3BhdGgpXX0gewotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJzZXRfZGIgaGRsX3NlYXJjaF9wYXRoIFwiJHZhcnMoaGRsX3NlYXJjaF9wYXRoKVwiXG4iCi0gICAgICB9IAotICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGhkbF9maWxlX2xpc3QpXX0gewotICAgICAgICAgc2V0IGNvbW1hbmQgInJlYWRfaGRsIC12MjAwMSBcIiR2YXJzKGhkbF9maWxlX2xpc3QpXCJcbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxyZWFkX2hkbCAkY29tbWFuZF0KLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjpzb3VyY2VfcGx1ZyBzeW5fbG9hZF9ydGxfdGNsXQotICAgICAgfQotCi0gICAgICBhcHBlbmQgY29tbWFuZHMgIlxuI3NldCByZWFkX2RlZl9saWJjZWxsX21pc21hdGNoX2Vycm9yIDBcbiIKLSAgICAgIAotICAgICAgICAgc2V0IGNvbW1hbmQgIiNzZXRfZGIgZ2VuX21vZHVsZV9wcmVmaXggICAgICAgICAgICAgICAgX0dFTlVTX1xuIgotICAgICAgYXBwZW5kIGNvbW1hbmQgIiNzZXRfZGIgaGRsX2FycmF5X25hbWluZ19zdHlsZSAgICAgICAgICAgJXNfJWRcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kICIjc2V0X2RiIGhkbF9yZWdfbmFtaW5nX3N0eWxlICAgICAgICAgICAgICVzX3JlZyVzXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZCAiI3NldF9kYiBoZGxfdXNlX2lmX2dlbmVyYXRlX3ByZWZpeCAgICAgICBmYWxzZVxuIgotICAgICAgYXBwZW5kIGNvbW1hbmQgIiNzZXRfZGIgaGRsX3VzZV9mb3JfZ2VuZXJhdGVfcHJlZml4ICAgICAgdHJ1ZVxuIgotICAgICAgYXBwZW5kIGNvbW1hbmQgIiNzZXRfZGIgaGRsX3VzZV9ibG9ja19wcmVmaXggICAgICAgICAgICAgZmFsc2VcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kICIjc2V0X2RiIGhkbF9tYXhfbG9vcF9saW1pdCAgICAgICAgICAgICAgIDgwOTZcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kICIjc2V0X2RiIGhkbF9nZW5lcmF0ZV9pbmRleF9zdHlsZSAgICAgICAgICVzXyVkX1xuIgotICAgICAgYXBwZW5kIGNvbW1hbmQgIiNzZXRfZGIgaGRsX2dlbmVyYXRlX3NlcGFyYXRvciAgICAgICAgICAgX1xuIgotICAgICAgYXBwZW5kIGNvbW1hbmQgIiNzZXRfZGIgaGRsX2luc3RhbmNlX2FycmF5X25hbWluZ19zdHlsZSAgJXNfJWRfXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZCAiI3NldF9kYiBoZGxfcGFyYW1ldGVyX25hbWluZ19zdHlsZSAgICAgICBfJXMlZFxuIgotICAgICAgYXBwZW5kIGNvbW1hbmQgIiNzZXRfZGIgaGRsX3JlY29yZF9uYW1pbmdfc3R5bGUgICAgICAgICAgJXNcWyVzXF1cbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kICIjc2V0X2RiIGhkbF91c2VfdGVjaGVsdF9maXJzdCAgICAgICAgICAgIHRydWVcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kICIjc2V0X2RiIGhkbF9lcnJvcl9vbl9ibGFja2JveCAgICAgICAgICAgIHRydWVcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kICIjc2V0X2RiIGhkbF90cmFja19maWxlbmFtZV9yb3dfY29sICAgICAgIGZhbHNlXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZCAiI3NldF9kYiBoZGxfZW5hYmxlX3Byb2NfbmFtZSAgICAgICAgICAgICBmYWxzZVxuIgotICAgICAgYXBwZW5kIGNvbW1hbmQgIiNzZXRfZGIgaGRsX2Vycm9yX29uX2xhdGNoICAgICAgICAgICAgICAgZmFsc2VcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kICIjc2V0X2RiIGhkbF91bmNvbm5lY3RlZF9pbnB1dF9wb3J0X3ZhbHVlIG5vbmVcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kICIjc2V0X2RiIGhkbF91bmRyaXZlbl9vdXRwdXRfcG9ydF92YWx1ZSAgIG5vbmVcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kICIjc2V0X2RiIGhkbF91bmRyaXZlbl9zaWduYWxfdmFsdWUgICAgICAgIG5vbmVcbiIKLSAgICAgIAotICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHNldF9oZGxfYXR0cmlidXRlcyAkY29tbWFuZF0KLQotICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6c291cmNlX3BsdWcgcHJlX3N5bl9sb2FkX2VsYWJfdGNsXQotICAgICAgCi0gICAgICBhcHBlbmQgY29tbWFuZHMgIlxuZWxhYm9yYXRlICR2YXJzKGRlc2lnbilcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxlbGFib3JhdGUgJGNvbW1hbmRdCi0KLSAgICAgIGFwcGVuZCBjb21tYW5kcyAiXG5pbml0X2Rlc2lnblxuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLGluaXRfZGVzaWduICRjb21tYW5kXQotCi0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjpzb3VyY2VfcGx1ZyBwb3N0X3N5bl9sb2FkX2VsYWJfdGNsXQotCi0gICAgICBhcHBlbmQgY29tbWFuZHMgIndyaXRlX2RiICR2YXJzKGRlc2lnbikgLWFsbF9yb290X2F0dHJpYnV0ZXMgLXRvX2ZpbGUgJHZhcnMoZGJzX2RpcikvZWxhYi5kYlxuIgotICAgICAgCi0gICAgICBhcHBlbmQgY29tbWFuZHMgImNoZWNrX2Rlc2lnbiAtbXVsdGlwbGVfZHJpdmVyIC11bmRyaXZlbiAtdW5yZXNvbHZlZCA+ICR2YXJzKHJwdF9kaXIpL2NoZWNrX2Rlc2lnbi5ycHRcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyAicmVwb3J0IGRhdGFwYXRoIC1hbGwgLW1heF93aWR0aCB7e2ZpbGVuYW1lIDUxMn19ID4gJHZhcnMocnB0X2RpcikvcmVwb3J0X2RhdGFwYXRoLnJwdFxuIgotICAgICAgCi0gICAgICAKLSMgICAgICBhcHBlbmQgY29tbWFuZHMgIiNzZXQgdHJlYXRfaW52YWxpZF9mcm9tX3RvX2FzX3Rocm91Z2ggMVxuIgotICAgICAKLSAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhjbG9ja19nYXRlX2NlbGxzKV19IHsKLSAgICAgICAgICAgIHNldCBjb21tYW5kICJzZXRfZGIgbHBfY2xvY2tfZ2F0aW5nX2NlbGwgXFtmaW5kIC9saWIqIC1saWJjZWxsICR2YXJzKGNsb2NrX2dhdGVfY2VsbHMpXF1cblxuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmQgInNldF9kYiBscF9pbnNlcnRfY2xvY2tfZ2F0aW5nICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxpbnNlcnRfY2xvY2tfZ2F0aW5nICRjb21tYW5kXQotICAgICAgfQotCi0gICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMobGVha2FnZV9wb3dlcl9lZmZvcnQpXSAmJiAoJHZhcnMobGVha2FnZV9wb3dlcl9lZmZvcnQpICE9ICJub25lIil9IHsKLSAgICAgICAgIHNldCBjb21tYW5kICJzZXRfZGIgbHBfbXVsdGlfdnRfb3B0aW1pemF0aW9uX2VmZm9ydCAgICAgICAgICAgICAgICAkdmFycyhsZWFrYWdlX3Bvd2VyX2VmZm9ydClcbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxsZWFrYWdlX3Bvd2VyX2VmZm9ydCAkY29tbWFuZF0KLSAgICAgIH0KLSAgICAgIGFwcGVuZCBjb21tYW5kICIjc2V0X2RiIGxwX2luc2VydF9vcGVyYW5kX2lzb2xhdGlvbiAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kICIjc2V0X2RiIGxwX3Bvd2VyX2FuYWx5c2lzX2VmZm9ydCAgICAgICAgICAgICAgICAgICAgICAgbG93XG4iCi0gICAgICBhcHBlbmQgY29tbWFuZCAiI3NldF9kYiBscF9jbG9ja19nYXRpbmdfaGllcmFyY2hpY2FsICAgICAgICAgICAgICAgICAgIGZhbHNlXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZCAiI3NldF9kYiBscF9jbG9ja19nYXRpbmdfYXV0b19jb3N0X2dyb3VwX2luaXRpYWxfdGFyZ2V0IDBcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kICIjc2V0X2RiIGxwX2Nsb2NrX2dhdGluZ19tYXhfZmxvcHMgICAgICAgICAgICAgICAgICAgICAgaW5maW5pdHlcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kICIjc2V0X2RiIGxwX2Nsb2NrX2dhdGluZ19taW5fZmxvcHMgICAgICAgICAgICAgICAgICAgICAgM1xuIgotICAgICAgYXBwZW5kIGNvbW1hbmQgIiNzZXRfZGIgbHBfY2xvY2tfZ2F0aW5nX2F1dG9fcGF0aF9hZGp1c3QgICAgICAgICAgICAgICBmaXhlZFxuIgotICAgICAgYXBwZW5kIGNvbW1hbmQgIiNzZXRfZGIgbHBfY2xvY2tfZ2F0aW5nX2F1dG9fcGF0aF9hZGp1c3RfZml4ZWRfZGVsYXkgICAxNzVcbiIKLQotICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHNldF9pY2dfYXR0cmlidXRlcyAkY29tbWFuZF0KLQotIyAgICAgIGFwcGVuZCBjb21tYW5kICIjc2V0X2RiIGxwX3Bvd2VyX29wdGltaXphdGlvbl93ZWlnaHQgXCJcIlxuIgotCi0gICAgICAKLSAgICAgICMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotICAgICAgIyBERlQgU2V0dGluZ3MKLSAgICAgICMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotICAgICAgICAgc2V0IGNvbW1hbmQgIiNzZXRfZGIgZGZ0X3NjYW5fbWFwX21vZGUgICAgICAgICAgICAgICAgICAgICAgICAgZm9yY2VfYWxsXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZCAiI3NldF9kYiBkZnRfc2Nhbl9zdHlsZSAgICAgICAgICAgICAgICAgICAgICAgICAgICBtdXhlZF9zY2FuXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZCAiI3NldF9kYiBkZnRfcHJlZml4ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBERlRfXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZCAiI3NldF9kYiB1c2Vfc2Nhbl9zZXFzX2Zvcl9ub25fZGZ0ICAgICAgICAgICAgICAgICB0cnVlXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZCAiI3NldF9kYiBkZnRfc2Nhbl9tYXBfbW9kZSAgICAgICAgICAgICAgICAgICAgICAgICBmb3JjZV9hbGxcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kICIjc2V0X2RiIGRmdF9jb25uZWN0X3NoaWZ0X2VuYWJsZV9kdXJpbmdfbWFwcGluZyAgIHRpZV9vZmZcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kICIjc2V0X2RiIGRmdF9jb25uZWN0X3NjYW5fZGF0YV9waW5zX2R1cmluZ19tYXBwaW5nIGxvb3BiYWNrXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZCAiI3NldF9kYiBkZnRfc2Nhbl9vdXRwdXRfcHJlZmVyZW5jZSAgICAgICAgICAgICAgICBub25faW52ZXJ0ZWRcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kICIjc2V0X2RiIGRmdF9sb2NrdXBfZWxlbWVudF90eXBlICAgICAgICAgICAgICAgICAgIGVkZ2Vfc2Vuc2l0aXZlXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZCAiI3NldF9kYiBkZnRfbWl4X2Nsb2NrX2VkZ2VzX2luX3NjYW5fY2hhaW5zICAgICAgICBmYWxzZVxuIgotICAgICAgCi0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksc2V0X2RmdF9hdHRyaWJ1dGVzICRjb21tYW5kXQotCi0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjpzb3VyY2VfcGx1ZyBzeW5fc2V0dXBfZGZ0X3RjbF0KLQotICAgICAgc2V0IGNvbW1hbmQgIiIKLSAgICAgICMjIFJDIHRpbWluZyBzdGlsbCBjb21lcyBmcm9tIGNwZiwgSW5ub3Z1cyB0aW1pbmcgY29tZXMgZnJvbSBzZXR1cC50Y2wKLSAgICAgIGlmIFtpbmZvIGV4aXN0cyB2YXJzKGNwZl9maWxlKV0gewotICAgICAgICBhcHBlbmQgY29tbWFuZCAiYXBwbHlfcG93ZXJfaW50ZW50IC1zdW1tYXJ5XG4iCi0gICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxhcHBseV9wb3dlcl9pbnRlbnQgJGNvbW1hbmRdCi0gICAgICB9IGVsc2UgewotIyAgICAgICAgYXBwZW5kIGNvbW1hbmQgInNldCBtb2RlIFtsaW5kZXggJHZhcnMoY29uc3RyYWludF9tb2RlcykgMF1cbiIKLSMgICAgICAgIGFwcGVuZCBjb21tYW5kICJpZiB7IFxbZmluZCAvIC1tb2RlIFwkbW9kZSBcXSA9PSBcIlwifSB7XG4iCi0jICAgICAgICBhcHBlbmQgY29tbWFuZCAiICAgY3JlYXRlX21vZGUgLWRlZmF1bHQgLW5hbWUgXCRtb2RlXG4iCi0jICAgICAgICBhcHBlbmQgY29tbWFuZCAifVxuIgotIyAgICAgICAgIyMgTm93IHBvcHVsYXRlIHRoZSB0aW1pbmcgbW9kZXMKLSMgICAgICAgIGZvcmVhY2ggbW9kZSAkdmFycyhjb25zdHJhaW50X21vZGVzKSB7Ci0jICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkbW9kZSxzeW50aF9zZGMpXX0gewotIyAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiaWYgeyBcW2ZpbmQgLyAtbW9kZSAkbW9kZVxdID09IFwiXCIgfSB7XG4iCi0jICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgICBjcmVhdGVfbW9kZSAtbmFtZSAkbW9kZVxuIgotIyAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAifVxuIgotIyAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAicmVhZF9zZGMgLW1vZGUgJG1vZGUgJHZhcnMoJG1vZGUsc3ludGhfc2RjKVxuIgotIyAgICAgICAgICAgfSBlbHNlIHsKLSMgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCRtb2RlLHByZV9jdHNfc2RjKV19IHsKLSMgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgImlmIHsgXFtmaW5kIC8gLW1vZGUgJG1vZGVcXSA9PSBcIlwiIH0ge1xuIgotIyAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiICAgY3JlYXRlX21vZGUgLW5hbWUgJG1vZGVcbiIKLSMgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIn1cbiIKLSMgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgInJlYWRfc2RjIC1tb2RlICRtb2RlICR2YXJzKCRtb2RlLHByZV9jdHNfc2RjKVxuIgotIyAgICAgICAgICAgICB9Ci0jICAgICAgICAgIH0KLSMgICAgICAgIH0KLSMgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxhcHBseV9jb25zdHJhaW50cyAkY29tbWFuZF0KLSMgICAgICAgIGFwcGVuZCBjb21tYW5kICJwdXRzIFwiVGhlIG51bWJlciBvZiBleGNlcHRpb25zIGlzIFxbbGxlbmd0aCBcW2ZpbmQgLyAtZXhjZXB0aW9uICpcXVxdXCJcbiIKLQotICAgICAgICAgICBzZXQgY29tbWFuZCAiXG5kZWZpbmVfY29zdF9ncm91cCAtbmFtZSBpbjJvdXRcbiIKLSAgICAgICAgYXBwZW5kIGNvbW1hbmQgImRlZmluZV9jb3N0X2dyb3VwIC1uYW1lIGluMnJlZ1xuIgotICAgICAgICBhcHBlbmQgY29tbWFuZCAiZGVmaW5lX2Nvc3RfZ3JvdXAgLW5hbWUgcmVnMm91dFxuIgotICAgICAgICBhcHBlbmQgY29tbWFuZCAiZGVmaW5lX2Nvc3RfZ3JvdXAgLW5hbWUgcmVnMnJlZ1xuIgotCi0jICAgICAgICBzZXQgbW9kZSBbbGluZGV4ICR2YXJzKGNvbnN0cmFpbnRfbW9kZXMpIDBdCi0jICAgICAgICBzZXQgbW9kZSAkdmFycyhkZWZhdWx0X3N5bnRoZXNpc19tb2RlKQotICAgICAgICBzZXQgbW9kZSAkdmFycyhkZWZhdWx0X3N5bnRoZXNpc192aWV3KQotCi0gICAgICAgIGFwcGVuZCBjb21tYW5kICJwYXRoX2dyb3VwIC1tb2RlICRtb2RlIC1mcm9tIFxbYWxsOjphbGxfaW5wc1xdIC10byBcW2FsbDo6YWxsX291dHNcXSAtZ3JvdXAgaW4yb3V0IC1uYW1lIGluMm91dFxuIgotICAgICAgICBhcHBlbmQgY29tbWFuZCAicGF0aF9ncm91cCAtbW9kZSAkbW9kZSAtZnJvbSBcW2FsbDo6YWxsX2lucHNcXSAtdG8gXFthbGw6OmFsbF9zZXFzXF0gLWdyb3VwIGluMnJlZyAtbmFtZSBpbjJyZWdcbiIKLSAgICAgICAgYXBwZW5kIGNvbW1hbmQgInBhdGhfZ3JvdXAgLW1vZGUgJG1vZGUgLWZyb20gXFthbGw6OmFsbF9zZXFzXF0gLXRvIFxbYWxsOjphbGxfb3V0c1xdIC1ncm91cCByZWcyb3V0IC1uYW1lIHJlZzJvdXRcbiIKLSAgICAgICAgYXBwZW5kIGNvbW1hbmQgInBhdGhfZ3JvdXAgLW1vZGUgJG1vZGUgLWZyb20gXFthbGw6OmFsbF9zZXFzXF0gLXRvIFxbYWxsOjphbGxfc2Vxc1xdIC1ncm91cCByZWcycmVnIC1uYW1lIHJlZzJyZWdcbiIKLQotIyAgICAgICAgYXBwZW5kIGNvbW1hbmQgInBhdGhfZ3JvdXAgLWZyb20gXFthbGw6OmFsbF9pbnBzXF0gLXRvIFxbYWxsOjphbGxfb3V0c1xdIC1ncm91cCBpbjJvdXQgLW5hbWUgaW4yb3V0XG4iCi0jICAgICAgICBhcHBlbmQgY29tbWFuZCAicGF0aF9ncm91cCAtZnJvbSBcW2FsbDo6YWxsX2lucHNcXSAtdG8gXFthbGw6OmFsbF9zZXFzXF0gLWdyb3VwIGluMnJlZyAtbmFtZSBpbjJyZWdcbiIKLSMgICAgICAgIGFwcGVuZCBjb21tYW5kICJwYXRoX2dyb3VwIC1mcm9tIFxbYWxsOjphbGxfc2Vxc1xdIC10byBcW2FsbDo6YWxsX291dHNcXSAtZ3JvdXAgcmVnMm91dCAtbmFtZSByZWcyb3V0XG4iCi0jICAgICAgICBhcHBlbmQgY29tbWFuZCAicGF0aF9ncm91cCAtZnJvbSBcW2FsbDo6YWxsX3NlcXNcXSAtdG8gXFthbGw6OmFsbF9zZXFzXF0gLWdyb3VwIHJlZzJyZWcgLW5hbWUgcmVnMnJlZ1xuIgotCi0gICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxjcmVhdGVfcGF0aF9ncm91cHMgJGNvbW1hbmRdCi0gICAgICB9Ci0KLQotICAgICAgc2V0IGNvbW1hbmQgIiIKLSAgICAgIHNldCBmaXJzdCAxCi0gICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoZGVmX2ZpbGVzKV19IHsKLSAgICAgICAgIGZvcmVhY2ggZmlsZSAkdmFycyhkZWZfZmlsZXMpIHsKLSAgICAgICAgICAgIGlmIHtbZmlsZSBleGlzdHMgJGZpbGVdfSB7Ci0gICAgICAgICAgICAgICBpZiB7JGZpcnN0fSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAicmVhZF9kZWYgJGZpbGVcbiIKLSAgICAgICAgICAgICAgICAgIHNldCBmaXJzdCAwCi0gICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJyZWFkX2RlZiAtaW5jciAkZmlsZVxuIgotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAgfQotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHJlYWRfZGVmICRjb21tYW5kXQotICAgICAgfQotICAgICAgCi0gICAgICBhcHBlbmQgY29tbWFuZHMgInJlcG9ydCB0aW1pbmcgLWxpbnRcbiIKLQotICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKG1heF9yb3V0ZV9sYXllcildfSB7Ci0jICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJcbnNldF9kYiBudW1iZXJfb2Zfcm91dGluZ19sYXllcnMgJHZhcnMobWF4X3JvdXRlX2xheWVyKSBkZXNpZ25zLyR2YXJzKGRlc2lnbilcbiIKLSAgICAgIH0KLQotIyAgICAgIGFwcGVuZCBjb21tYW5kcyAiI2ZvcmVhY2ggY2cgXFtmaW5kIC8gLWNvc3RfZ3JvdXAgKlxdIHtcbiIKLSMgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIHJlcG9ydCB0aW1pbmcgLWNvc3RfZ3JvdXAgW2xpc3QgXCRjZ10gPj4gJHZhcnMocnB0X2RpcikvY29zdF9ncm91cC5tYXAucnB0XG4iCi0jICAgICAgYXBwZW5kIGNvbW1hbmRzICIjfVxuIgotICAgICAgCi0jICAgICAgYXBwZW5kIGNvbW1hbmRzICIjc2V0X3JlbW92ZV9hc3NpZ25fb3B0aW9ucyAtc2tpcF91bmNvbnN0cmFpbmVkX3BhdGhzIC1waHlzaWNhbFxuIgotIyAgICAgIGFwcGVuZCBjb21tYW5kcyAiI3NldF9kYiB1dGlsaXphdGlvbiAwIFxbZmluZCAvIC1sYXllciBNMVxdXG4iCi0KLSAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OnNvdXJjZV9wbHVnIHByZV9zeW5fZ2VuX3RjbF0KLQotICAgICAgc2V0IGNvbW1hbmQgIlxuc3ludGhlc2l6ZSAtdG9fZ2VuZXJpYyAtZWZmb3J0IG1lZGl1bVxuXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksc3luMmdlbiAkY29tbWFuZF0KLSAgICAgIAotICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6c291cmNlX3BsdWcgcG9zdF9zeW5fZ2VuX3RjbF0KLQotICAgICAgYXBwZW5kIGNvbW1hbmRzICJ3cml0ZV9kYiAkdmFycyhkZXNpZ24pIC1hbGxfcm9vdF9hdHRyaWJ1dGVzIC10b19maWxlICR2YXJzKGRic19kaXIpL3N5bl9nZW4uZGJcbiIKLSAgICAgCi0gICAgICBzZXQgY29tbWFuZCAiXG5zeW50aGVzaXplIC10b19tYXAgLWVmZm9ydCBoaWdoIC1jbG9ja19nYXRpbmdfb25seVxuXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksc3luMmljZyAkY29tbWFuZF0KLSAgICAgIAotIyAgICAgIHNldCBjZ19jZWxscyAiXG4iCi0jICAgICAgZm9yZWFjaCBpIFtmaWx0ZXIgbGliY2VsbCAtaW52ZXJ0ICIiIFtmaW5kIC8gLWluc3QgaW5zdGFuY2VzX3NlcS8qXV0gewotIyAgICAgICBpZiB7W2dldF9hdHRyIGNsb2NrX2dhdGluZ19pbnRlZ3JhdGVkX2NlbGwgW2dldF9hdHRyIGxpYmNlbGwgJGldXSAhPSAiIiB9IHsKLSMgICAgICAgICBsYXBwZW5kIGNnX2NlbGxzICRpCi0jICAgICAgIH0KLSMgICAgICB9Ci0jICAgICAgaWYgeyAkY2dfY2VsbHMgIT0gIiIgfSB7Ci0jICAgICAgICBzZXQgQ0dfQURKVVNUIFtwYXRoX2FkanVzdCAtZGVsYXkgLTE1MCAtdG8gJGNnX2NlbGxzXQotIyAgICAgIH0KLSAgICAgIAotICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6c291cmNlX3BsdWcgcHJlX3N5bl9tYXBfdGNsXQotICAgICAgCi0gICAgICAjIFN5bnRoZXNpemluZyB0byBnYXRlcyB1c2luZyBlZmZvcnQgbGV2ZWwgZGVmaW5lZCBieSB2YXJzKHN5bl9tYXBfZWZmb3J0KS4KLSAgICAgIHNldCBjb21tYW5kICJcbnN5bnRoZXNpemUgLXRvX21hcHBlZCAtZWZmb3J0IGhpZ2ggLW5vX2luY3JlbWVudGFsXG5cbiIKLQotICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHN5bjJtYXAgJGNvbW1hbmRdCi0gICAgICAKLSAgICAgICAgIHNldCBjb21tYW5kICIiIAotICAgICAgYXBwZW5kIGNvbW1hbmQgInJlcG9ydF9hcmVhICAgICAgICAgICA+ICR2YXJzKHJwdF9kaXIpLyR2YXJzKHN0ZXApLmFyZWEucnB0XG4iCi0gICAgICBhcHBlbmQgY29tbWFuZCAicmVwb3J0X2RwICAgICAgICAgICAgID4gJHZhcnMocnB0X2RpcikvJHZhcnMoc3RlcCkuZGF0YXBhdGgucnB0XG4iCi0gICAgICBhcHBlbmQgY29tbWFuZCAicmVwb3J0X3RpbWluZyAtbWF4X3BhdGhzIDUgICAgICAgICAgICAgLXBhdGhfdHlwZSBzdW1tYXJ5ICAgICA+ICR2YXJzKHJwdF9kaXIpLyR2YXJzKHN0ZXApLnN0YXJ0X2VuZF9zbGFjay5ycHRcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kICJyZXBvcnRfdGltaW5nIC1tYXhfcGF0aHMgMSAgIC1ud29yc3QgMSAtcGF0aF90eXBlIGZ1bGxfY2xvY2sgID4gJHZhcnMocnB0X2RpcikvJHZhcnMoc3RlcCkud29yc3RfbWF4X3BhdGgucnB0XG4iCi0gICAgICBhcHBlbmQgY29tbWFuZCAicmVwb3J0X3RpbWluZyAtbWF4X3BhdGhzIDUwMCAtbndvcnN0IDEgLXBhdGhfdHlwZSBmdWxsX2Nsb2NrICA+ICR2YXJzKHJwdF9kaXIpLyR2YXJzKHN0ZXApLnRvcF81MDBfcGF0aHMucnB0XG4iCi0gICAgICBhcHBlbmQgY29tbWFuZCAicmVwb3J0X2dhdGVzIC1wb3dlciAgID4gJHZhcnMocnB0X2RpcikvJHZhcnMoc3RlcCkuZ2F0ZXNfcG93ZXIucnB0XG4iCi0gICAgICBhcHBlbmQgY29tbWFuZCAicmVwb3J0X2Nsb2NrX2dhdGluZyAgID4gJHZhcnMocnB0X2RpcikvJHZhcnMoc3RlcCkuY2xvY2tnYXRpbmcucnB0XG4iCi0gICAgICBhcHBlbmQgY29tbWFuZCAicmVwb3J0X3Bvd2VyIC1kZXB0aCAwID4gJHZhcnMocnB0X2RpcikvJHZhcnMoc3RlcCkucG93ZXIucnB0XG4iCi0KLSAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxnZW5lcmF0ZV9yZXBvcnRzICRjb21tYW5kXQotCi0gICAgICBpZiB7JHZhcnMoY2FwdHVyZV9tZXRyaWNzKX0gewotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJwb3Bfc25hcHNob3Rfc3RhY2tcbiIKLSAgICAgICAgIGlmIHtbbGluZGV4IFtzcGxpdCAkdmFycyh2ZXJzaW9uKSAiLiJdICAwXSA+IDE2fSB7Ci0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgImNyZWF0ZV9zbmFwc2hvdCAtbmFtZSAkdmFycyhzdGVwKSAtY2F0ZWdvcmllcyBkZXNpZ25cbiIKLSAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgImNyZWF0ZV9zbmFwc2hvdCAtbmFtZSAkdmFycyhzdGVwKVxuIgotICAgICAgICAgfQotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJ3cml0ZV9tZXRyaWMgLWZvcm1hdCB0Y2wgLWZpbGUgJHZhcnMoZGJzX2RpcikvJHZhcnMoc3RlcCkudW1cbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAicmVwb3J0X21ldHJpYyAtZmlsZSAkdmFycyhycHRfZGlyKS8kdmFycyhkZXNpZ24pLmh0bWwgLWZvcm1hdCBodG1sXG4iCi0gICAgICB9Ci0KLSAgICAgIGFwcGVuZCBjb21tYW5kcyAid3JpdGVfZGIgJHZhcnMoZGVzaWduKSAtYWxsX3Jvb3RfYXR0cmlidXRlcyAtdG9fZmlsZSAkdmFycyhkYnNfZGlyKS9zeW5fbWFwLmRiXG4iCi0gICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMobWFpbCx0byldfSB7Ci0gICAgICAgICBzZXQgc3VtbWFyeV9maWxlICR2YXJzKHN0ZXApLnN1bW1hcnkKLSAgICAgICAgIGlmIHshW2luZm8gZXhpc3RzIHZhcnMobWFpbCxzdGVwcyldIHx8IFwKLSAgICAgICAgICAgICAoW2luZm8gZXhpc3RzIHZhcnMobWFpbCxzdGVwcyldICYmIChbbHNlYXJjaCAkdmFycyhtYWlsLHN0ZXBzKSAkdmFycyhzdGVwKV0gIT0gLTEpKX0gewotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJwdXRzIFwiPEZGPiBNQUlMSU5HIFJFU1VMVFMgVE8gJHZhcnMobWFpbCx0bylcIlxuIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJpZiB7XFtmaWxlIGV4aXN0cyAkdmFycyhycHRfZGlyKS8kc3VtbWFyeV9maWxlXF19IHtcbiIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiICAgZXhlYyAvYmluL21haWwgLXMgXCJGRjogJHZhcnMoZGVzaWduKSwgJHZhcnMoc3RlcCkgY29tcGxldGVkIChcW3NoZWxsIHB3ZFxdKVwiIDwgJHZhcnMocnB0X2RpcikvJHN1bW1hcnlfZmlsZSAkdmFycyhtYWlsLHRvKVxuIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJ9IGVsc2VpZiB7XFtmaWxlIGV4aXN0cyAkdmFycyhycHRfZGlyKS8ke3N1bW1hcnlfZmlsZX0uZ3pcXX0ge1xuIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIgICBleGVjIGd1bnppcCAtYyAkdmFycyhycHRfZGlyKS8ke3N1bW1hcnlfZmlsZX0uZ3ogXHwgL2Jpbi9tYWlsIC1zIFwiRkY6ICR2YXJzKGRlc2lnbiksICR2YXJzKHN0ZXApIGNvbXBsZXRlZCAoXFtwd2RcXSlcIiAkdmFycyhtYWlsLHRvKVxuIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJ9IGVsc2Uge1xuIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIgICBleGVjIC9iaW4vbWFpbCAtcyBcIkZGOiAkdmFycyhkZXNpZ24pLCAkdmFycyhzdGVwKSBjb21wbGV0ZWQgKFxbc2hlbGwgcHdkXF0pXCIgPCAvZGV2L251bGwgJHZhcnMobWFpbCx0bylcbiIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAifVxuIgotICAgICAgICAgfQotICAgICAgfQotCi0gICAgICBhcHBlbmQgY29tbWFuZHMgImlmIHtcW2luZm8gZXhpc3RzIGVudihWUEFUSClcXX0geyIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyAiZXhlYyAvYmluL3RvdWNoIFwkZW52KFZQQVRIKS8kdmFycyhzdGVwKSIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyAifVxuIgotCi0gICAgICByZXR1cm4gJGNvbW1hbmRzCi0KLSAgIH0KLQotICAgcHJvYyBydW5fc3luX2luY3Ige3tmb3JtYXQgMX19IHsKLQotICAgICAgZ2xvYmFsIHZhcnMKLSAgICAgIGdsb2JhbCBlbnYKLSAgICAgIGdsb2JhbCBlcnJvcnMKLQotICAgICAgc2V0IHZhcnMoc3RlcCkgc3luX2luY3IKLQotICAgICAgc2V0IGNvbW1hbmRzICIiCi0KLSMgICAgICBhcHBlbmQgY29tbWFuZHMgInNvdXJjZSAkdmFycyhzY3JpcHRfZGlyKS92YXJzLnRjbFxuIgotCi0gICAgICBhcHBlbmQgY29tbWFuZHMgInByb2MgUHV0cyB7YXJnc30ge3B1dHMgXCRhcmdzfVxuIgotCi0gICAgICBpZiB7JHZhcnMobm92dXMpfSB7Ci0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgInB1dHMgXFtnZXRfZGIgcHJvZ3JhbV92ZXJzaW9uIC9cXVxuIgotICAgICAgfSBlbHNlIHsKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAicHV0cyBcW2dldF9hdHRyIHByb2dyYW1fdmVyc2lvbiAvXF1cbiIKLSAgICAgIH0KLSAgICAgCi0gICAgICAjIyBlbmFibGUgbXVsdGkgcHJvY2Vzc2luZwotICAgICAgYXBwZW5kIGNvbW1hbmRzICJzZXQgaG9zdGxpc3QgXFtscmVwZWF0ICR2YXJzKGxvY2FsX2NwdXMpIGxvY2FsaG9zdFxdXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgInNldF9kYiBzdXBlcl90aHJlYWRfc2VydmVycyBcJGhvc3RsaXN0XG4iCi0gICAgIAotIyAgICAgIGlmIHskdmFycyhjYXB0dXJlX21ldHJpY3MpfSB7Ci0jICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJcbmVuYWJsZV9tZXRyaWNzIC1vblxuIgotIyAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAicHVzaF9zbmFwc2hvdF9zdGFja1xuIgotIyAgICAgIH0KLSAgICAgIAotICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6c291cmNlX3BsdWcgcHJlX3N5bl9pbmNyX3RjbF0KLSAgICAgIAotIyAgICAgIGFwcGVuZCBjb21tYW5kcyAiY2F0Y2ggeyBzZXRfcmVtb3ZlX2Fzc2lnbl9vcHRpb25zIC1za2lwX3VuY29uc3RyYWluZWRfcGF0aHMgLXBoeXNpY2FsIH1cbiIKLSMgICAgICBhcHBlbmQgY29tbWFuZHMgInNldF9kYiByZW1vdmVfYXNzaWducyB0cnVlXG4iCi0gICAgICAKLSAgICAgIGlmIHskdmFycyhlbmFibGVfcGFtKX0gewotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJcbnNldF9kYiBwaHlzaWNhbF9hd2FyZV9yZXN0cnVjdHVyaW5nIHRydWVcbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAic2V0X2RiIHBoeXNpY2FsX2F3YXJlX3N0cnVjdHVyaW5nICAgdHJ1ZVxuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJzZXRfZGIgcGh5c2ljYWxfYXdhcmVfbWFwcGluZyAgICAgICB0cnVlXG4iCi0gICAgICB9Ci0gICAgICAKLSAgICAgICMjIyMgT1BUSU1JWkFUSU9OIEVGRk9SVCBDT05UUk9MCi0gICAgICBpZiB7JHZhcnMoaGlnaF90aW1pbmdfZWZmb3J0KX0gewotICAgICAgICAgICAgc2V0IGNvbW1hbmQgIlxuc2V0X2RiIHRuc19vcHRvIHRydWVcbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kICJzZXRfZGIgaW9wdF9lbmFibGVfcGFyYWxsZWxpemF0aW9uIHRydWVcbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kICJzZXRfZGIgdWx0cmFfZ2xvYmFsX21hcHBpbmcgdHJ1ZVxuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmQgInNldF9kYiBpb3B0X3VsdHJhX29wdGltaXphdGlvbiB0cnVlXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksc2V0X2hpZ2hfZWZmb3J0X2F0dHJpYnV0ZXMgJGNvbW1hbmRdCi0gICAgICB9Ci0KLSAgICAgICAgIHNldCBjb21tYW5kICIjc2V0X2RiIG9wdGltaXplX21lcmdlX2Zsb3BzICAgICAgZmFsc2VcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kICIjc2V0X2RiIG9wdGltaXplX2NvbnN0YW50XzBfZmxvcHMgdHJ1ZVxuIgotICAgICAgYXBwZW5kIGNvbW1hbmQgIiNzZXRfZGIgb3B0aW1pemVfY29uc3RhbnRfMV9mbG9wcyBmYWxzZVxuIgotICAgICAgYXBwZW5kIGNvbW1hbmQgIiNzZXRfZGIgb3B0aW1pemVfY29uc3RhbnRfbGF0Y2hlcyBmYWxzZVxuIgotICAgICAgYXBwZW5kIGNvbW1hbmQgIiNzZXRfZGIgZGVsZXRlX3VubG9hZGVkX3NlcXMgICAgICB0cnVlXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZCAiI3NldF9kYiBvcHRpbWl6ZV9uZXRfYXJlYSAgICAgICAgIGZhbHNlXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZCAiI3NldF9kYiBkcF9hcmVhX21vZGUgICAgICAgICAgICAgIHRydWVcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kICIjc2V0X2RiIGF1dG9fdW5ncm91cCAgICAgICAgICAgICAgbm9uZVxuIgotICAgICAgYXBwZW5kIGNvbW1hbmQgIiNzZXRfZGIgYXV0b191bmdyb3VwX21pbl9lZmZvcnQgICBsb3dcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kICIjc2V0X2RiIHVuZ3JvdXBfc2VwYXJhdG9yICAgICAgICAgXG4iCi0gICAgICAKLSAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxzZXRfb3B0X2F0dHJpYnV0ZXMgJGNvbW1hbmRdCi0KLSAgICAgICMjIyBEZXRhaWwgU3RhdHMgd2hpbGUgcnVubmluZwotIyAgICAgIGFwcGVuZCBjb21tYW5kcyAiI3NldCBpb3B0X3N0YXRzIDFcbiIKLSAgICAgIAotICAgICAgIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gICAgICAjIE1heCBsZWFrYWdlIHBvd2VyID8KLSAgICAgICMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIyAgICAgIGFwcGVuZCBjb21tYW5kcyAiI3NldF9kYiBtYXhfbGVha2FnZV9wb3dlciA/XG4iCi0gICAgICBzZXQgY29tbWFuZCAiXG5zeW50aGVzaXplIC10b19tYXBwZWQgLWVmZm9ydCBoaWdoIC1pbmNyXG5cbiIKLQotICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHN5bjJpbmNyICRjb21tYW5kXQotCi0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjpzb3VyY2VfcGx1ZyBwb3N0X3N5bl9pbmNyX3RjbF0KLQotIyAgICAgIGFwcGVuZCBjb21tYW5kcyAiZm9yZWFjaCBjZyBcW2ZpbmQgLyAtY29zdF9ncm91cCAqXF0ge1xuIgotIyAgICAgIGFwcGVuZCBjb21tYW5kcyAiICByZXBvcnQgdGltaW5nIC1jb3N0X2dyb3VwIFwkY2cgPj4gJHZhcnMocnB0X2Rpcikvc3luX2luY3JfXFtmaWxlIHRhaWwgXCRjZ1xdLnJwdFxuIgotIyAgICAgIGFwcGVuZCBjb21tYW5kcyAifVxuIgotICAgICAgCi0gICAgICAgICAgc2V0IGNvbW1hbmQgIiIKLSAgICAgIGFwcGVuZCBjb21tYW5kICJyZXBvcnRfYXJlYSAgICAgICAgICAgPiAkdmFycyhycHRfZGlyKS8kdmFycyhzdGVwKS5hcmVhLnJwdFxuIgotICAgICAgYXBwZW5kIGNvbW1hbmQgInJlcG9ydF9kcCAgICAgICAgICAgICA+ICR2YXJzKHJwdF9kaXIpLyR2YXJzKHN0ZXApLmRhdGFwYXRoLnJwdFxuIgotICAgICAgYXBwZW5kIGNvbW1hbmQgInJlcG9ydF90aW1pbmcgLW1heF9wYXRocyA1ICAgICAgICAgICAgIC1wYXRoX3R5cGUgc3VtbWFyeSAgICAgPiAkdmFycyhycHRfZGlyKS8kdmFycyhzdGVwKS5zdGFydF9lbmRfc2xhY2sucnB0XG4iCi0gICAgICBhcHBlbmQgY29tbWFuZCAicmVwb3J0X3RpbWluZyAtbWF4X3BhdGhzIDEgICAtbndvcnN0IDEgLXBhdGhfdHlwZSBmdWxsX2Nsb2NrICA+ICR2YXJzKHJwdF9kaXIpLyR2YXJzKHN0ZXApLndvcnN0X21heF9wYXRoLnJwdFxuIgotICAgICAgYXBwZW5kIGNvbW1hbmQgInJlcG9ydF90aW1pbmcgLW1heF9wYXRocyA1MDAgLW53b3JzdCAxIC1wYXRoX3R5cGUgZnVsbF9jbG9jayAgPiAkdmFycyhycHRfZGlyKS8kdmFycyhzdGVwKS50b3BfNTAwX3BhdGhzLnJwdFxuIgotICAgICAgYXBwZW5kIGNvbW1hbmQgInJlcG9ydF9nYXRlcyAtcG93ZXIgICA+ICR2YXJzKHJwdF9kaXIpLyR2YXJzKHN0ZXApLmdhdGVzX3Bvd2VyLnJwdFxuIgotICAgICAgYXBwZW5kIGNvbW1hbmQgInJlcG9ydF9jbG9ja19nYXRpbmcgICA+ICR2YXJzKHJwdF9kaXIpLyR2YXJzKHN0ZXApLmNsb2NrZ2F0aW5nLnJwdFxuIgotICAgICAgYXBwZW5kIGNvbW1hbmQgInJlcG9ydF9wb3dlciAtZGVwdGggMCA+ICR2YXJzKHJwdF9kaXIpLyR2YXJzKHN0ZXApLnBvd2VyLnJwdFxuIgotCi0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksZ2VuZXJhdGVfcmVwb3J0cyAkY29tbWFuZF0KLQotICAgICAgaWYgeyR2YXJzKGNhcHR1cmVfbWV0cmljcyl9IHsKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAicG9wX3NuYXBzaG90X3N0YWNrXG4iCi0gICAgICAgICBpZiB7W2xpbmRleCBbc3BsaXQgJHZhcnModmVyc2lvbikgIi4iXSAgMF0gPiAxNn0gewotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJjcmVhdGVfc25hcHNob3QgLW5hbWUgJHZhcnMoc3RlcCkgLWNhdGVnb3JpZXMgZGVzaWduXG4iCi0gICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJjcmVhdGVfc25hcHNob3QgLW5hbWUgJHZhcnMoc3RlcClcbiIKLSAgICAgICAgIH0KLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAid3JpdGVfbWV0cmljIC1mb3JtYXQgdGNsIC1maWxlICR2YXJzKGRic19kaXIpLyR2YXJzKHN0ZXApLnVtXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgInJlcG9ydF9tZXRyaWMgLWZpbGUgJHZhcnMocnB0X2RpcikvJHZhcnMoZGVzaWduKS5odG1sIC1mb3JtYXQgaHRtbFxuIgotICAgICAgfQotCi0gICAgICAgICBzZXQgY29tbWFuZCAid3JpdGVfZGIgJHZhcnMoZGVzaWduKSAtYWxsX3Jvb3RfYXR0cmlidXRlcyAtdG9fZmlsZSAkdmFycyhkYnNfZGlyKS8kdmFycyhzdGVwKS5kYlxuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHdyaXRlX2RiICRjb21tYW5kXQotCi0gICAgICBpZiB7ISR2YXJzKGVuYWJsZV9yY3ApfSB7Ci0gICAgICAgICAgICBzZXQgY29tbWFuZCAiXG53cml0ZV9kZXNpZ24gLWlubm92dXMgLWd6aXAgLWJhc2VuYW1lICR2YXJzKGRic19kaXIpLyR2YXJzKHN0ZXApLyR2YXJzKHN0ZXApXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZCAic2V0IGZpbGUgXFtvcGVuICR2YXJzKGRic19kaXIpLyR2YXJzKHN0ZXApLyR2YXJzKHN0ZXApLm5vdnVzX3NldHVwLnRjbCB3XF1cbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kICJwdXRzIFwkZmlsZSBcImV2YWxfZW5jIFx7c291cmNlICR2YXJzKGRic19kaXIpLyR2YXJzKHN0ZXApLyR2YXJzKHN0ZXApLmVuY19zZXR1cC50Y2xcfVwiXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZCAiY2xvc2UgXCRmaWxlXG5cbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSx3cml0ZV9kZXNpZ24gJGNvbW1hbmRdCi0gICAgICB9Ci0KLSAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhtYWlsLHRvKV19IHsKLSAgICAgICAgIHNldCBzdW1tYXJ5X2ZpbGUgJHZhcnMoc3RlcCkuc3VtbWFyeQotICAgICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycyhtYWlsLHN0ZXBzKV0gfHwgXAotICAgICAgICAgICAgIChbaW5mbyBleGlzdHMgdmFycyhtYWlsLHN0ZXBzKV0gJiYgKFtsc2VhcmNoICR2YXJzKG1haWwsc3RlcHMpICR2YXJzKHN0ZXApXSAhPSAtMSkpfSB7Ci0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgInB1dHMgXCI8RkY+IE1BSUxJTkcgUkVTVUxUUyBUTyAkdmFycyhtYWlsLHRvKVwiXG4iCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgImlmIHtcW2ZpbGUgZXhpc3RzICR2YXJzKHJwdF9kaXIpLyRzdW1tYXJ5X2ZpbGVcXX0ge1xuIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIgICBleGVjIC9iaW4vbWFpbCAtcyBcIkZGOiAkdmFycyhkZXNpZ24pLCAkdmFycyhzdGVwKSBjb21wbGV0ZWQgKFxbc2hlbGwgcHdkXF0pXCIgPCAkdmFycyhycHRfZGlyKS8kc3VtbWFyeV9maWxlICR2YXJzKG1haWwsdG8pXG4iCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIn0gZWxzZWlmIHtcW2ZpbGUgZXhpc3RzICR2YXJzKHJwdF9kaXIpLyR7c3VtbWFyeV9maWxlfS5nelxdfSB7XG4iCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiAgIGV4ZWMgZ3VuemlwIC1jICR2YXJzKHJwdF9kaXIpLyR7c3VtbWFyeV9maWxlfS5neiBcfCAvYmluL21haWwgLXMgXCJGRjogJHZhcnMoZGVzaWduKSwgJHZhcnMoc3RlcCkgY29tcGxldGVkIChcW3B3ZFxdKVwiICR2YXJzKG1haWwsdG8pXG4iCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIn0gZWxzZSB7XG4iCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiAgIGV4ZWMgL2Jpbi9tYWlsIC1zIFwiRkY6ICR2YXJzKGRlc2lnbiksICR2YXJzKHN0ZXApIGNvbXBsZXRlZCAoXFtzaGVsbCBwd2RcXSlcIiA8IC9kZXYvbnVsbCAkdmFycyhtYWlsLHRvKVxuIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJ9XG4iCi0gICAgICAgICB9Ci0gICAgICB9Ci0KLSAgICAgIGFwcGVuZCBjb21tYW5kcyAiaWYge1xbaW5mbyBleGlzdHMgZW52KFZQQVRIKVxdfSB7IgotICAgICAgYXBwZW5kIGNvbW1hbmRzICJleGVjIC9iaW4vdG91Y2ggXCRlbnYoVlBBVEgpLyR2YXJzKHN0ZXApIgotICAgICAgYXBwZW5kIGNvbW1hbmRzICJ9XG4iCi0KLSAgICAgIHJldHVybiAkY29tbWFuZHMKLQotICAgfQotCi0gICBwcm9jIHJ1bl9zeW5fcGxhY2Uge3tmb3JtYXQgMX19IHsKLQotICAgICAgZ2xvYmFsIHZhcnMKLSAgICAgIGdsb2JhbCBlbnYKLSAgICAgIGdsb2JhbCBlcnJvcnMKLQotICAgICAgc2V0IHZhcnMoc3RlcCkgc3luX3BsYWNlCi0KLSAgICAgIHNldCBjb21tYW5kcyAiIgotCi0jICAgICAgYXBwZW5kIGNvbW1hbmRzICJzb3VyY2UgJHZhcnMoc2NyaXB0X2RpcikvdmFycy50Y2xcbiIKLQotICAgICAgYXBwZW5kIGNvbW1hbmRzICJwcm9jIFB1dHMge2FyZ3N9IHtwdXRzIFwkYXJnc31cbiIKLQotICAgICAgaWYgeyR2YXJzKG5vdnVzKX0gewotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJwdXRzIFxbZ2V0X2RiIHByb2dyYW1fdmVyc2lvblxdXG4iCi0gICAgICB9IGVsc2UgewotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJwdXRzIFxbZ2V0X2F0dHIgcHJvZ3JhbV92ZXJzaW9uXF1cbiIKLSAgICAgIH0KLSAgICAgCi0gICAgICAjIyBlbmFibGUgbXVsdGkgcHJvY2Vzc2luZwotICAgICAgYXBwZW5kIGNvbW1hbmRzICJzZXQgaG9zdGxpc3QgXFtscmVwZWF0ICR2YXJzKGxvY2FsX2NwdXMpIGxvY2FsaG9zdFxdXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgInNldF9kYiBzdXBlcl90aHJlYWRfc2VydmVycyBcJGhvc3RsaXN0XG4iCi0gICAgIAotIyAgICAgIGlmIHskdmFycyhjYXB0dXJlX21ldHJpY3MpfSB7Ci0jICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJcbmVuYWJsZV9tZXRyaWNzIC1vblxuIgotIyAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAicHVzaF9zbmFwc2hvdF9zdGFja1xuIgotIyAgICAgIH0KLQotICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKHBvc3Rsb2FkX3N5bl9wbGFjZV90Y2wpXX0gewotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJzZXRfZGIgZW5jX3Bvc3Rsb2FkX3NjcmlwdCAkdmFycyhwb3N0bG9hZF9zeW5fcGxhY2VfdGNsKVxuIgotICAgICAgfQotICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKHByZWV4cG9ydF9zeW5fcGxhY2VfdGNsKV19IHsKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAic2V0X2RiIGVuY19wcmVleHBvcnRfc2NyaXB0ICR2YXJzKHByZWV4cG9ydF9zeW5fcGxhY2VfdGNsKVxuIgotICAgICAgfQotICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKHByZWFubm90YXRpb25fc3luX3BsYWNlZF90Y2wpXX0gewotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJzZXRfZGIgZW5jX3ByZWFubm90YXRpb25fdGNsICR2YXJzKHByZWFubm90YXRpb25fc3luX3BsYWNlZF90Y2wpXG4iCi0gICAgICB9Ci0KLSAgICAgIGFwcGVuZCBjb21tYW5kcyAic2V0X2RiIGVuY190ZW1wX2RpciAuL0lOTk9WVVMvcmNwX3J1blxuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzICJzZXRfZGIgZW5jX2d6aXBfaW50ZXJmYWNlX2ZpbGVzIHRydWVcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyAic2V0X2RiIHBxb3NfcGxhY2VtZW50X2VmZm9ydCBub192YWx1ZVxuIgotCi0jICAgICAgYXBwZW5kIGNvbW1hbmRzICJzZXQgOjpwaHlzOjpwcW9zX3Ruc19vcHQgMVxuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzICJzZXRfZGIgaW9wdF9lbmFibGVfcGFyYWxsZWxpemF0aW9uIGZhbHNlXG4iCi0gICAgICAKLSMgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoZGVmX2ZpbGVzKV19IHsKLSMgICAgICAgICBmb3JlYWNoIGZpbGUgJHZhcnMoZGVmX2ZpbGVzKSB7Ci0jICAgICAgICAgICAgaWYge1tmaWxlIGV4aXN0cyAkZmlsZV19IHsKLSMgICAgICAgICAgICAgICBzZXQgY29tbWFuZCAicmVhZF9kZWYgJHZhcnMoZGVmX2ZpbGVzKVxuIgotIyAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxyZWFkX2RlZiAkY29tbWFuZF0KLSMgICAgICAgICAgICB9Ci0jICAgICAgICAgfQotIyAgICAgIH0KLSAgICAgIAotICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6c291cmNlX3BsdWcgcHJlX3N5bl9wbGFjZV90Y2xdCi0gICAgIAotICAgICAgc2V0IGNvbW1hbmQgIlxuc3ludGhlc2l6ZSAtdG9fcGxhY2VkIC1lZmZvcnQgaGlnaCAtcHFvc19vbmx5XG5cbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxzeW4ycGxhY2UgJGNvbW1hbmRdCi0KLSAgICAgIHNldCBjb21tYW5kICJcbnN5bnRoZXNpemUgLXRvX3BsYWNlZCAtZWZmb3J0IGhpZ2ggLWluY3JcblxuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHN5bjJwbGFjZV9pbmNyICRjb21tYW5kXQotCi0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjpzb3VyY2VfcGx1ZyBwb3N0X3N5bl9wbGFjZV90Y2xdCi0KLSAgICAgIGFwcGVuZCBjb21tYW5kcyAiOjpwaHlzOjpxb3Nfc3RhdHMgLXF1aWV0IC10YWcgc3luMnBsYWNlZFxuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzICI6OnBoeXM6OnFvc193cml0ZV9zdGF0c19hcnJheSA+ICR2YXJzKHJwdF9kaXIpL3Fvc19zdGF0cy5xZGJcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyAiOjpwaHlzOjpxb3Nfc3VtbWFyeVxuIgotCi0gICAgICBhcHBlbmQgY29tbWFuZHMgImZvcmVhY2ggY2cgXFtmaW5kIC8gLWNvc3RfZ3JvdXAgKlxdIHtcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyAiICByZXBvcnQgdGltaW5nIC1jb3N0X2dyb3VwIFwkY2cgPj4gJHZhcnMocnB0X2Rpcikvc3luX3BsYWNlX1xbZmlsZSB0YWlsIFwkY2dcXS5ycHRcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyAifVxuIgotICAgICAgCi0gICAgICBhcHBlbmQgY29tbWFuZCAicmVwb3J0X2FyZWEgICAgICAgICAgID4gJHZhcnMocnB0X2RpcikvJHZhcnMoc3RlcCkuYXJlYS5ycHRcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kICJyZXBvcnRfZHAgICAgICAgICAgICAgPiAkdmFycyhycHRfZGlyKS8kdmFycyhzdGVwKS5kYXRhcGF0aC5ycHRcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kICJyZXBvcnRfdGltaW5nIC1tYXhfcGF0aHMgNSAgICAgICAgICAgICAtcGF0aF90eXBlIHN1bW1hcnkgICAgID4gJHZhcnMocnB0X2RpcikvJHZhcnMoc3RlcCkuc3RhcnRfZW5kX3NsYWNrLnJwdFxuIgotICAgICAgYXBwZW5kIGNvbW1hbmQgInJlcG9ydF90aW1pbmcgLW1heF9wYXRocyAxICAgLW53b3JzdCAxIC1wYXRoX3R5cGUgZnVsbF9jbG9jayAgPiAkdmFycyhycHRfZGlyKS8kdmFycyhzdGVwKS53b3JzdF9tYXhfcGF0aC5ycHRcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kICJyZXBvcnRfdGltaW5nIC1tYXhfcGF0aHMgNTAwIC1ud29yc3QgMSAtcGF0aF90eXBlIGZ1bGxfY2xvY2sgID4gJHZhcnMocnB0X2RpcikvJHZhcnMoc3RlcCkudG9wXzUwMF9wYXRocy5ycHRcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kICJyZXBvcnRfZ2F0ZXMgLXBvd2VyICAgPiAkdmFycyhycHRfZGlyKS8kdmFycyhzdGVwKS5nYXRlc19wb3dlci5ycHRcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kICJyZXBvcnRfY2xvY2tfZ2F0aW5nICAgPiAkdmFycyhycHRfZGlyKS8kdmFycyhzdGVwKS5jbG9ja2dhdGluZy5ycHRcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kICJyZXBvcnRfcG93ZXIgLWRlcHRoIDAgPiAkdmFycyhycHRfZGlyKS8kdmFycyhzdGVwKS5wb3dlci5ycHRcbiIKLQotICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLGdlbmVyYXRlX3JlcG9ydHMgJGNvbW1hbmRdCi0KLSAgICAgIGlmIHskdmFycyhjYXB0dXJlX21ldHJpY3MpfSB7Ci0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgInBvcF9zbmFwc2hvdF9zdGFja1xuIgotICAgICAgICAgaWYge1tsaW5kZXggW3NwbGl0ICR2YXJzKHZlcnNpb24pICIuIl0gIDBdID4gMTZ9IHsKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiY3JlYXRlX3NuYXBzaG90IC1uYW1lICR2YXJzKHN0ZXApIC1jYXRlZ29yaWVzIGRlc2lnblxuIgotICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiY3JlYXRlX3NuYXBzaG90IC1uYW1lICR2YXJzKHN0ZXApXG4iCi0gICAgICAgICB9Ci0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIndyaXRlX21ldHJpYyAtZm9ybWF0IHRjbCAtZmlsZSAkdmFycyhkYnNfZGlyKS8kdmFycyhzdGVwKS51bVxuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJyZXBvcnRfbWV0cmljIC1maWxlICR2YXJzKHJwdF9kaXIpLyR2YXJzKGRlc2lnbikuaHRtbCAtZm9ybWF0IGh0bWxcbiIKLSAgICAgIH0KLQotICAgICAgICAgc2V0IGNvbW1hbmQgIndyaXRlX2RiICR2YXJzKGRlc2lnbikgLWFsbF9yb290X2F0dHJpYnV0ZXMgLXRvX2ZpbGUgJHZhcnMoZGJzX2RpcikvJHZhcnMoc3RlcCkuZGJcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSx3cml0ZV9kYiAkY29tbWFuZF0KLQotICAgICAgaWYgeyR2YXJzKGVuYWJsZV9yY3ApfSB7Ci0gICAgICAgICAgICBzZXQgY29tbWFuZCAiXG53cml0ZV9kZXNpZ24gLWlubm92dXMgLWd6aXAgLWJhc2VuYW1lICR2YXJzKGRic19kaXIpLyR2YXJzKHN0ZXApLyR2YXJzKHN0ZXApXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZCAic2V0IGZpbGUgXFtvcGVuICR2YXJzKGRic19kaXIpLyR2YXJzKHN0ZXApLyR2YXJzKHN0ZXApLm5vdnVzX3NldHVwLnRjbCB3XF1cbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kICJwdXRzIFwkZmlsZSBcImV2YWxfZW5jIFx7c291cmNlICR2YXJzKGRic19kaXIpLyR2YXJzKHN0ZXApLyR2YXJzKHN0ZXApLmVuY19zZXR1cC50Y2xcfVwiXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZCAiY2xvc2UgXCRmaWxlXG5cbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSx3cml0ZV9kZXNpZ24gJGNvbW1hbmRdCi0gICAgICB9Ci0KLSAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhtYWlsLHRvKV19IHsKLSAgICAgICAgIHNldCBzdW1tYXJ5X2ZpbGUgJHZhcnMoc3RlcCkuc3VtbWFyeQotICAgICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycyhtYWlsLHN0ZXBzKV0gfHwgXAotICAgICAgICAgICAgIChbaW5mbyBleGlzdHMgdmFycyhtYWlsLHN0ZXBzKV0gJiYgKFtsc2VhcmNoICR2YXJzKG1haWwsc3RlcHMpICR2YXJzKHN0ZXApXSAhPSAtMSkpfSB7Ci0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgInB1dHMgXCI8RkY+IE1BSUxJTkcgUkVTVUxUUyBUTyAkdmFycyhtYWlsLHRvKVwiXG4iCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgImlmIHtcW2ZpbGUgZXhpc3RzICR2YXJzKHJwdF9kaXIpLyRzdW1tYXJ5X2ZpbGVcXX0ge1xuIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIgICBleGVjIC9iaW4vbWFpbCAtcyBcIkZGOiAkdmFycyhkZXNpZ24pLCAkdmFycyhzdGVwKSBjb21wbGV0ZWQgKFxbc2hlbGwgcHdkXF0pXCIgPCAkdmFycyhycHRfZGlyKS8kc3VtbWFyeV9maWxlICR2YXJzKG1haWwsdG8pXG4iCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIn0gZWxzZWlmIHtcW2ZpbGUgZXhpc3RzICR2YXJzKHJwdF9kaXIpLyR7c3VtbWFyeV9maWxlfS5nelxdfSB7XG4iCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiAgIGV4ZWMgZ3VuemlwIC1jICR2YXJzKHJwdF9kaXIpLyR7c3VtbWFyeV9maWxlfS5neiBcfCAvYmluL21haWwgLXMgXCJGRjogJHZhcnMoZGVzaWduKSwgJHZhcnMoc3RlcCkgY29tcGxldGVkIChcW3B3ZFxdKVwiICR2YXJzKG1haWwsdG8pXG4iCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIn0gZWxzZSB7XG4iCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiAgIGV4ZWMgL2Jpbi9tYWlsIC1zIFwiRkY6ICR2YXJzKGRlc2lnbiksICR2YXJzKHN0ZXApIGNvbXBsZXRlZCAoXFtzaGVsbCBwd2RcXSlcIiA8IC9kZXYvbnVsbCAkdmFycyhtYWlsLHRvKVxuIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJ9XG4iCi0gICAgICAgICB9Ci0gICAgICB9Ci0KLSAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxzY2hlZHVsZV9mbG93ICRjb21tYW5kXQotCi0gICAgICBhcHBlbmQgY29tbWFuZHMgImlmIHtcW2luZm8gZXhpc3RzIGVudihWUEFUSClcXX0geyIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyAiZXhlYyAvYmluL3RvdWNoIFwkZW52KFZQQVRIKS8kdmFycyhzdGVwKSIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyAifVxuIgotCi0gICAgICByZXR1cm4gJGNvbW1hbmRzCi0KLSAgIH0KLQotICAgcHJvYyBydW5faW5pdCB7e2Zvcm1hdCAxfX0gewotCi0gICAgICBnbG9iYWwgdmFycwotICAgICAgZ2xvYmFsIGVudgotICAgICAgZ2xvYmFsIGVycm9ycwotICAgICAgZ2xvYmFsIHdhcm5pbmdzCi0gICAgICBnbG9iYWwgZW52Ci0KLSAgICAgIHNldCBjb21tYW5kcyAiIgotICAgICAgc2V0IHVjb21tZW50cyAiIgotICAgICAgc2V0IGNvbW1lbnRzICIiCi0KLSAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyh2aWV3X2RlZmluaXRpb25fdGNsKV19IHsKLSAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnModmlld19kZWZpbml0aW9uX3RjbClcbiIKLSAgICAgIH0KLQotICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycyhzdGVwKV0gfHwgKCgkdmFycyhzdGVwKSAhPSAicGFydGl0aW9uX3BsYWNlIikgJiYgKCR2YXJzKHN0ZXApICE9ICJtb2RlbF9nZW4iKSAmJiAoJHZhcnMoc3RlcCkgIT0gInByb3RvdHlwZSIpKX0geyAKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAic2V0IHZhcnMoc3RlcCkgaW5pdFxuIgotICAgICAgICAgc2V0IHZhcnMoc3RlcCkgaW5pdAotICAgICAgfSAKLQotICAgICAgaWYgeyR2YXJzKHJlcG9ydF9ydW5fdGltZSl9IHsKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAic2V0IHZhcnMoJHZhcnMoc3RlcCksc3RhcnRfdGltZSkgXFtjbG9jayBzZWNvbmRzXF1cbiIKLSAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMocmVwb3J0X3J1bl90aW1lKVxuIgotICAgICAgfSBlbHNlIHsKLSAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKHJlcG9ydF9ydW5fdGltZSlcbiIKLSAgICAgIH0KLQotICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCR2YXJzKHN0ZXApLHJwdF9kaXIpXX0gewotICAgICAgICAgc2V0IHZhcnMocnB0X2RpcikgJHZhcnMoJHZhcnMoc3RlcCkscnB0X2RpcikKLSAgICAgICAgIGZpbGUgbWtkaXIgJHZhcnMoJHZhcnMoc3RlcCkscnB0X2RpcikKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgICBzZXQgdmFycyhycHRfZGlyKSAkdmFycyhvcmlnX3JwdF9kaXIpCi0gICAgICB9Ci0KLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICMgTWFrZSBzdXJlIG5lY2Vzc2FyeSBkYXRhIGlzIGRlZmluZWQKLSAgICAgICMgQ3JlYXRlIG1ha2UgZGlyZWN0b3J5IGlmIGl0IGRvZXNuJ3QgZXhpc3RzCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICBpZiB7ISR2YXJzKGNvZGVnZW4pfSAgeyAKLSAgICAgICAgIHNldCBjb21tYW5kICJGRl9OT1ZVUzo6Y2hlY2tfc2V0dXBcbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kICJzbGVlcCAzXG4iCi0gICAgICAgICB1cGxldmVsICMwIGV2YWwgJGNvbW1hbmQgCi0gICAgICB9Ci0KLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICMgTWFrZSBzdXJlIG5lY2Vzc2FyeSBkYXRhIGlzIGRlZmluZWQKLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLQotICAgICAgZm9yZWFjaCBkaXIgIltzdWJzdCAkdmFycyhkYnNfZGlyKV0gW3N1YnN0ICR2YXJzKHJwdF9kaXIpXSBbc3Vic3QgJHZhcnMobG9nX2RpcildIiB7Ci0gICAgICAgICBzZXQgbmV3RGlyIFtzdWJzdCAkZGlyXQotICAgICAgICAgaWYgeyFbZmlsZSBleGlzdHMgJG5ld0Rpcl19ICB7Ci0gICAgICAgICAgICBmaWxlIG1rZGlyICRuZXdEaXIKLSAgICAgICAgIH0KLSAgICAgIH0KLQotIyAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhidWZmZXJfdGllX2Fzc2lnbildICYmICR2YXJzKGJ1ZmZlcl90aWVfYXNzaWduKX0gIHsKLSMgICAgICAgICBhcHBlbmQgY29tbWFuZHMgInNldF9kYiBpbml0X2J1ZmZlcl90aWVfYXNzaWduIHRydWVcbiIKLSMgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKGJ1ZmZlcl90aWVfYXNzaWduKVxuIgotIyAgICAgIH0gZWxzZSB7Ci0jICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMoYnVmZmVyX3RpZV9hc3NpZ24pXG4iCi0jICAgICAgfQotCi0gICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoZ3JvdW5kX25ldHMpXX0gIHsKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAic2V0X2RiIGluaXRfZ3JvdW5kX25ldHMgXCIkdmFycyhncm91bmRfbmV0cylcIlxuIgotICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhncm91bmRfbmV0cylcbiIKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhncm91bmRfbmV0cylcbiIKLSAgICAgIH0KLQotICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKHBvd2VyX25ldHMpXX0gIHsKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAic2V0X2RiIGluaXRfcG93ZXJfbmV0cyBcIiR2YXJzKHBvd2VyX25ldHMpXCJcbiIKLSAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMocG93ZXJfbmV0cylcbiIKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhwb3dlcl9uZXRzKVxuIgotICAgICAgfQotCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAjIExvYWQgcHJlLWluaXRpYWxpemF0aWFvbiBwbHVnLWluIHNjcmlwdAotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6c291cmNlX3BsdWcgcHJlX2luaXRfdGNsXQotCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAjIFRoZXNlIGZsb3cgc2NyaXB0cyBzdXBwb3J0IHRoZSBmb2xsb3dpbmc6Ci0gICAgICAjIC0gRmxhdCBjaGlwIG9yIGJsb2NrCi0gICAgICAjIC0gSGllcmFyY2hpY2FsIHBhcnRpdGlvbgotICAgICAgIyAtIFRvcCBsZXZlbCBwYXJ0aXRpb24KLSAgICAgICMKLSAgICAgICMgVGhlIGRhdGEgbG9hZGluZyBtZWNoYW5pc20gYXJlIHNsaWdodGx5IGRpZmZlcmVudCBmb3IgZWFjaCBzbyB3ZSBkZXRlcm1pbmUKLSAgICAgICMgZmlyc3QgaWYgd2UgYXJlIGluIGEgaGllcmFyY2hpY2FsIGZsb3cgKGkuZS4gdmFycyhwYXJ0aXRpb25fbGlzdCkgaXMKLSAgICAgICMgZGVmaW5lZCBhbmQsIGlmIHNvLCB3aGV0aGVyIHdlIGFyZSBpbiBhIGhpZXJhcmNoaWNhbCBwYXJ0aXRpb24gZmxvdwotICAgICAgIyBvciBhIHRvcCBwYXJ0aXRpb24gZmxvdyAoaS5lLiBjd2QgPT0gJHZhcnMoZGVzaWduKSAtIHNlZSBiZWxvdykKLSAgICAgICMKLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLQotICAgICAgIEZGX05PVlVTOjpjaGVja19mbG93Ci0KLSMgICAgICBhcHBlbmQgY29tbWFuZHMgIiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiIKLSMgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgICAgICAgICAgICAgICAgICAgICAgICAgICBFWEVDVVRJTkcgRkxPV1xuIgotIyAgICAgIGFwcGVuZCBjb21tYW5kcyAiIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIgotCi0gICAgICBzZXQgaGllciAwCi0gICAgICAKLSAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkdmFycyhzdGVwKSxzdGFydGluZ19kYnMpXX0gewotICAgICAgICAgaWYge1tzdHJpbmcgY29tcGFyZSAtbm9jYXNlICR2YXJzKGRic19mb3JtYXQpICJvYSJdPT0wfSB7Ci0gICAgICAgICAgICMgSW50ZXJwcmV0IHRoZSBzdGFydGluZyBEQlMgYXMgYW4gT0EgdHJpcGxlCi0gICAgICAgICAgIHNldCByZXN0b3JlX2NvbW1hbmQgIltsaXN0IHJlYWRfZGIgLWNlbGx2aWV3ICR2YXJzKCR2YXJzKHN0ZXApLHN0YXJ0aW5nX2RicyldXG4iCi0gICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgaWYge1tmaWxlIGlzZGlyZWN0b3J5ICR2YXJzKCR2YXJzKHN0ZXApLHN0YXJ0aW5nX2RicyldfSB7Ci0gICAgICAgICAgICAgIHNldCByZXN0b3JlX2NvbW1hbmQgInJlYWRfZGIgJHZhcnMoJHZhcnMoc3RlcCksc3RhcnRpbmdfZGJzKSBcbiIKLSAgICAgICAgICAgIH0gZWxzZWlmIHtbZmlsZSBleGlzdHMgJHZhcnMoJHZhcnMoc3RlcCksc3RhcnRpbmdfZGJzKV19IHsKLSAgICAgICAgICAgICAgc2V0IHJlc3RvcmVfY29tbWFuZCAicmVhZF9kYiAkdmFycygkdmFycyhzdGVwKSxzdGFydGluZ19kYnMpIFxuIgotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgcHV0cyAiPEZGPiBTdGFydGluZyBEQlMgKCR2YXJzKCR2YXJzKHN0ZXApLHN0YXJ0aW5nX2RicykpIGRlZmluZWQgYnV0IGRvZXMgbm90IGV4aXN0IgotICAgICAgICAgICAgICBzZXQgcmVzdG9yZV9jb21tYW5kICJyZWFkX2RiICR2YXJzKCR2YXJzKHN0ZXApLHN0YXJ0aW5nX2RicykgXG4iCi0gICAgICAgICAgICAgIHNldCB3YXJuaW5ncygkdmFycyh3YXJuaW5nX2NvdW50KSkgIlN0YXJ0aW5nIERCUyAoJHZhcnMoJHZhcnMoc3RlcCksc3RhcnRpbmdfZGJzKSkgZGVmaW5lZCBidXQgZG9lcyBub3QgZXhpc3QiCi0gICAgICAgICAgICAgIGluY3IgdmFycyh3YXJuaW5nX2NvdW50KQotICAgICAgICAgICAgfQotICAgICAgICAgfQotCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCkscmVhZF9kYiAkcmVzdG9yZV9jb21tYW5kXQotCi0gICAgICB9IGVsc2UgewotCi0gICAgICAgICBpZiB7IVtpbmZvIGV4aXN0cyB2YXJzKHBhcnRpdGlvbl9saXN0KV0gfHwgKFtpbmZvIGV4aXN0cyB2YXJzKHBhcnRpdGlvbl9saXN0KV0gJiYgXAotICAgICAgICAgICAgICAoW2ZpbGUgdGFpbCBbZmlsZSBkaXJuYW1lIFtwd2RdXV0gIT0gIiR2YXJzKHBhcnRpdGlvbl9kaXIpIikpfSB7Ci0gICAKLSAgICAgICAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICAgICAgICMgUGFydGl0aW9uIHN0ZXAgb3IgZmxhdCBpbml0IHN0ZXAKLSAgICAgICAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgCi0gICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMocGFydGl0aW9uX2xpc3QpXX0geyAKLSAgICAgICAgICAgICAgIHNldCBoaWVyIDEKLSAgICAgICAgICAgIH0KLSAgIAotICAgICAgICAgICAgaWYgeyR2YXJzKHZlcmJvc2UpfSB7Ci0gICAgICAgICAgICAgICBpZiB7IVtpbmZvIGV4aXN0cyB2YXJzKHBhcnRpdGlvbl9saXN0KV19IHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiI1xuIgotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjIEZMQVQgSU1QTEVNRU5UQVRJT04gRkxPV1xuIgotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjXG4iCi0gICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjXG4iCi0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgUEFSVElUSU9OSU5HIEZMT1dcbiIKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiI1xuIgotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgCi0gICAgICAgICAgICBpZiB7JHZhcnModmVyYm9zZSl9IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiI1xuIgotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjIExPQURJTkcgREVTSUdOIERBVEFcbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiI1xuIgotICAgICAgICAgICAgfQotICAgICAgICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgICAgICAgIyBMb2FkIGRlc2lnbiBjb25maWd1cmF0aW9uIGZpbGUKLSAgICAgICAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgIAotICAgICAgICAgICAgaWYge1tsaW5kZXggW3NwbGl0ICR2YXJzKHZlcnNpb24pICIuIl0gMF0gPD0gMTB9IHsKLSAgICAgICAgICAgICAgIHNvdXJjZSAkdmFycyhzY3JpcHRfcGF0aCkvRVRDL0lOTk9WVVMvZ2VuZXJpYy5jb25mCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiB7JHZhcnMoaWxtKX0gewotICAgICAgICAgICAgICAgc2V0IGlsbV9saXN0ICR2YXJzKGlsbV9saXN0KQotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhpbG1fbGlzdCkgXCI8bGlzdCBvZiBJTE1zPlwiXG4iCi0gICAgICAgICAgICAgICBpZiB7JHZhcnMobW9kZSkgPT0gImJvdHRvbV91cCJ9IHsKLSAgICAgICAgICAgICAgICAgIGZvcmVhY2ggcGFydCAkdmFycyhwYXJ0aXRpb25fbGlzdCkgewotICAgICAgICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCRwYXJ0LGlsbV9kaXIpXX0gewotICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyg8aWxtPixpbG1fZGlyKSBcIjxwYXRoIHRvIElMTSBkaXJlY3Rvcnk+XCJcbiIKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIHtbbHNlYXJjaCAkaWxtX2xpc3QgJHBhcnRdID09IC0xfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICBsYXBwZW5kIGlsbV9saXN0ICRwYXJ0Ci0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICBmb3JlYWNoIGlsbSAkaWxtX2xpc3QgewotICAgICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCRpbG0sbGVmX2ZpbGUpXSAmJiBbZmlsZSBleGlzdHMgJHZhcnMoJGlsbSxsZWZfZmlsZSldfSB7Ci0gICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKDxpbG0+LGxlZl9maWxlKSBcIjxMRUYgZmlsZSBmb3IgYmxvY2sgYXNzb2NpYXRlZCB3aXRoIElMTT5cIlxuIgotICAgICAgICAgICAgICAgICAgICAgaWYge1tsaW5kZXggW3NwbGl0ICR2YXJzKHZlcnNpb24pICIuIl0gIDBdIDw9IDEwfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBsYXBwZW5kIHJkYV9JbnB1dCh1aV9sZWZmaWxlKSAkdmFycygkaWxtLGxlZl9maWxlKQotICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIHtbc3RyaW5nIGNvbXBhcmUgJHZhcnMoZGJzX2Zvcm1hdCkgImZlIl09PTB9IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhcHBlbmQgdmFycyhsZWZfZmlsZXMpICR2YXJzKCRpbG0sbGVmX2ZpbGUpCi0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgcHV0cyAiPEZGPiBXQVJOSU5HOiBMRUYgZmlsZSBlaXRoZXIgbm90IGRlZmluZWQgb3IgZG9lc24ndCBleGlzdCBmb3IgJGlsbSIKLSAgICAgICAgICAgICAgICAgICAgIHB1dHMgIjxGRj4gICAgICAgICAgUGxlYXNlIG1ha2Ugc3VyZSBpdCBpcyBpbiB5b3VyIHZhcnMobGVmX2ZpbGVzKSBsaXN0IgotICAgICAgICAgICAgICAgICAgICAgc2V0IHdhcm5pbmdzKCR2YXJzKHdhcm5pbmdfY291bnQpKSAiTEVGIGZpbGUgZWl0aGVyIG5vdCBkZWZpbmVkIG9yIGRvZXNuJ3QgZXhpc3QgZm9yICRpbG1cblx0UGxlYXNlIG1ha2Ugc3VyZSBpdCBpcyBpbiB5b3VyIHZhcnMobGVmX2ZpbGVzKSBsaXN0IgotICAgICAgICAgICAgICAgICAgICAgaW5jciB2YXJzKHdhcm5pbmdfY291bnQpCi0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJGlsbSxzZXR1cF9saWIpXSAmJiBbZmlsZSBleGlzdHMgJHZhcnMoJGlsbSxzZXR1cF9saWIpXX0gewotICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyg8aWxtPixzZXR1cF9saWIpIFwiPExJQiBmaWxlIGZvciBibG9jayBhc3NvY2lhdGVkIHdpdGggSUxNPlwiXG4iCi0gICAgICAgICAgICAgICAgICAgICBpZiB7W2xpbmRleCBbc3BsaXQgJHZhcnModmVyc2lvbikgIi4iXSAgMF0gPD0gMTB9IHsgCi0gICAgICAgICAgICAgICAgICAgICAgICBsYXBwZW5kIHJkYV9JbnB1dCh1aV90aW1lbGliKSAkdmFycygkaWxtLHNldHVwX2xpYikKLSAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiB7W3N0cmluZyBjb21wYXJlICR2YXJzKGRic19mb3JtYXQpICJmZSJdPT0wfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JlYWNoIHNldCAkdmFycyhsaWJyYXJ5X3NldHMpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIHtbbHNlYXJjaCAkdmFycygkc2V0LHRpbWluZykgJHZhcnMoJGlsbSxzZXR1cF9saWIpXSA9PSAtMX0gewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFwcGVuZCB2YXJzKCRzZXQsdGltaW5nKSAkdmFycygkaWxtLHNldHVwX2xpYikKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICBwdXRzICI8RkY+IFdBUk5JTkc6IExJQiBmaWxlIGVpdGhlciBub3QgZGVmaW5lZCBvciBkb2Vzbid0IGV4aXN0IGZvciAkaWxtIgotICAgICAgICAgICAgICAgICAgICAgcHV0cyAiPEZGPiAgICAgICAgICBQbGVhc2UgbWFrZSBzdXJlIGl0IGlzIGluIHlvdXIgbGlicmFyeSBzZXQgZGVmaW5pdGlvbnMiCi0gICAgICAgICAgICAgICAgICAgICBzZXQgd2FybmluZ3MoJHZhcnMod2FybmluZ19jb3VudCkpICJMSUIgZmlsZSBlaXRoZXIgbm90IGRlZmluZWQgb3IgZG9lc24ndCBleGlzdCBmb3IgJGlsbVxuXHRQbGVhc2UgbWFrZSBzdXJlIGl0IGlzIGluIHlvdXIgbGlicmFyeSBzZXQgZGVmaW5pdGlvbnMiCi0gICAgICAgICAgICAgICAgICAgICBpbmNyIHZhcnMod2FybmluZ19jb3VudCkKLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhpbG1fbGlzdCkgXCI8bGlzdCBvZiBJTE1zPlwiXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyg8aWxtPixpbG1fZGlyKSBcIjxwYXRoIHRvIElMTSBkaXJlY3Rvcnk+XCJcbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKDxpbG0+LGxlZl9maWxlKSBcIjxMRUYgZmlsZSBmb3IgYmxvY2sgYXNzb2NpYXRlZCB3aXRoIElMTT5cIlxuIgotICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMoPGlsbT4sc2V0dXBfbGliKSBcIjxMSUIgZmlsZSBmb3IgYmxvY2sgYXNzb2NpYXRlZCB3aXRoIElMTT5cIlxuIgotICAgICAgICAgICAgfQotICAgCi0gICAgICAgICAgICBGRl9OT1ZVUzo6ZHVtcF9jb25maWcKLSAgIAotICAgICAgICAgICAgaWYge1tzdHJpbmcgY29tcGFyZSAtbm9jYXNlICR2YXJzKG5ldGxpc3RfdHlwZSkgInZlcmlsb2ciXT49MH0gewotICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgIiIgCi0gICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnModmlld19kZWZpbml0aW9uX3RjbCldfSB7Ci0gICAgICAgICAgICAgICAgICBzZXQgbW1tY19maWxlICR2YXJzKHZpZXdfZGVmaW5pdGlvbl90Y2wpCi0gICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgc2V0IG1tbWNfZmlsZSAkdmFycyhzY3JpcHRfZGlyKS92aWV3X2RlZmluaXRpb24udGNsCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAicmVhZF9tbW1jICRtbW1jX2ZpbGVcbiIKLSAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhsZWZfZmlsZXMpXX0gewotICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAicmVhZF9waHlzaWNhbCAtbGVmIFwiXFxcbiIKLSAgICAgICAgICAgICAgICAgZm9yZWFjaCBsZWYgJHZhcnMobGVmX2ZpbGVzKSB7Ci0jICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAicmVhZF9waHlzaWNhbCAtbGVmICRsZWZcbiIKLSAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIlx0JGxlZlxcXG4iCi0gICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIlwiXG4iCi0gICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKG9hX3JlZl9saWIpXX0gewotICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgInJlYWRfcGh5c2ljYWwgLW9hX3JlZl9saWIgIgotICAgICAgICAgICAgICAgICAgICAgZm9yZWFjaCBsaWIgJHZhcnMob2FfcmVmX2xpYikgewotICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgICIgJGxpYiIKLSAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJcbiIKLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhuZXRsaXN0KV19IHsKLSAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAicmVhZF9uZXRsaXN0ICR2YXJzKG5ldGxpc3QpXG4iCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoY3BmX2ZpbGUpXX0gewotICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJyZWFkX3Bvd2VyX2ludGVudCAtY3BmICR2YXJzKGNwZl9maWxlKVxuIgotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgImluaXRfZGVzaWduXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksaW5pdF9kZXNpZ24gJGNvbW1hbmRdCi0gICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMocG93ZXJfYW5hbHlzaXNfdmlldyldICYmICgkdmFycyhwb3dlcl9hbmFseXNpc192aWV3KSAhPSAiIil9IHsKLSAgICAgICAgICAgICAgICAgIHNldCBjb21tYW5kICJzZXRfZGIgcG93ZXJfbGVha2FnZV9wb3dlcl92aWV3ICR2YXJzKHBvd2VyX2FuYWx5c2lzX3ZpZXcpXG4iCi0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAic2V0X2RiIHBvd2VyX2R5bmFtaWNfcG93ZXJfdmlldyAkdmFycyhwb3dlcl9hbmFseXNpc192aWV3KVxuIgotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHNldF9wb3dlcl9hbmFseXNpc19tb2RlICRjb21tYW5kXQotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIGlmIHskaGllcn0gewotICAgICAgICAgICAgICAgICAgaWYgeyR2YXJzKHN0ZXApID09ICJwYXJ0aXRpb25fcGxhY2UifSB7IAotICAgICAgICAgICAgICAgICAgICBzZXQgY29tbWFuZCAicmVhZF9kYiAtY2VsbHZpZXcgXFtsaXN0ICR2YXJzKG9hX2Rlc2lnbl9saWIpICR2YXJzKG9hX2Rlc2lnbl9jZWxsKSAkdmFycyhvYV9kZXNpZ25fdmlldylcXVxuIgotICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgInJlYWRfZGIgLWNlbGx2aWV3IFxbbGlzdCAkdmFycyhvYV9wYXJ0aXRpb25fbGliKSAkdmFycyhvYV9kZXNpZ25fY2VsbCkgJHZhcnMob2FfZGVzaWduX3ZpZXcpXF1cbiIKLSAgICAgICAgICAgICAgICAgIH0gCi0gICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICBzZXQgY29tbWFuZCAicmVhZF9kYiAtY2VsbHZpZXcgXFtsaXN0ICR2YXJzKG9hX2Rlc2lnbl9saWIpICR2YXJzKG9hX2Rlc2lnbl9jZWxsKSAkdmFycyhvYV9kZXNpZ25fdmlldylcXVxuIgotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHJlYWRfZGIgJGNvbW1hbmRdCi0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICAgICAgICMgTG9hZCAiYWx3YXlzIHNvdXJjZSIgcGx1Zy1pbiBzY3JpcHQKLSAgICAgICAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OnNvdXJjZV9wbHVnIGFsd2F5c19zb3VyY2VfdGNsXQotICAgCi0gICAgICAgICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAgICAgICAjIENoZWNrIGZvciB0aGUgZXhpc3RlbmNlIG9mIGVpdGhlciBhIGZsb29ycGxhbiBmaWxlLCBhCi0gICAgICAgICAgICAjIERFRiBmaWxlLCBvciBib3RoIGFuZCBsb2FkIHRoZW0KLSAgICAgICAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICAgICAgIHNldCBjb21tYW5kICIiIAotICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGZwX3RjbF9maWxlKV0gfHwgW2luZm8gZXhpc3RzIHZhcnMoZnBfdGNsX3Byb2MpXX0gewotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhmcF90Y2xfZmlsZSlcbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMoZnBfdGNsX3Byb2MpXG4iCi0gICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoZnBfdGNsX2ZpbGUpXSAmJiAhW2luZm8gZXhpc3RzIHZhcnMoZnBfdGNsX3Byb2MpXX0gewotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgImZmX3Byb2NzOjpzb3VyY2VfZmlsZSAkdmFycyhmcF90Y2xfZmlsZSlcbiIKLSAgICAgICAgICAgICAgIH0gZWxzZWlmIHshW2luZm8gZXhpc3QgdmFycyhmcF90Y2xfZmlsZSldICYmIFtpbmZvIGV4aXN0cyB2YXJzKGZwX3RjbF9wcm9jKV19IHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICIkdmFycyhmcF90Y2xfcHJvYylcbiIKLSAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiIyAgRVJST1I6IEJvdGggZnBfdGNsX2ZpbGUgYW5kIGZwX3RjbF9wcm9jIGFyZSBkZWZpbmVkIGJ1dCBhcmUgbXV0dWFsbHkgZXhjbHVzaXZlXG4iCi0gICAgICAgICAgICAgICAgICBzZXQgZXJyb3JzKCR2YXJzKGVycm9yX2NvdW50KSkgIkJvdGggZnBfdGNsX2ZpbGUgYW5kIGZwX3RjbF9wcm9jIGFyZSBkZWZpbmVkIGJ1dCBhcmUgbXV0dWFsbHkgZXhjbHVzaXZlIgotICAgICAgICAgICAgICAgICAgaW5jciB2YXJzKGVycm9yX2NvdW50KQotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKGZwX3RjbF9maWxlKVxuIgotICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMoZnBfdGNsX3Byb2MpXG4iCi0gICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoZnBfZmlsZSldfSB7Ci0gICAgICAgICAgICAgICAgICBpZiB7W2ZpbGUgZXhpc3RzICR2YXJzKGZwX2ZpbGUpXX0gewotICAgIyAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJwdXRzIFwiPEZGPiBMT0FESU5HIEZQIEZJTEUgJHZhcnMoZnBfZmlsZSlcIlxuIgotICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgInJlYWRfZmxvb3JwbGFuICR2YXJzKGZwX2ZpbGUpXG4iCi0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKGZwX2ZpbGUpXG4iCi0gICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMoZnBfZmlsZSlcbiIKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhvYV9mcCldfSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAib2FJbiAkdmFycyhvYV9mcClcbiIKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMob2FfZnApXG4iCi0gICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMob2FfZnApXG4iCi0gICAgICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhkZWZfZmlsZXMpXX0gewotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhkZWZfZmlsZXMpXG4iCi0gICAgICAgICAgICAgICAgICBpZiB7JHZhcnMocmMpfSB7Ci0gICAgICAgICAgICAgICAgICAgICBpZiB7JHZhcnMoZW5hYmxlX3JjcCl9IHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHNldCB2YXJzKG5ldGxpc3QpICAgJHZhcnMoZGJzX2Rpcikvc3luX3BsYWNlL3N5bl9wbGFjZS52Lmd6Ci0gICAgICAgICAgICAgICAgICAgICAgICBzZXQgdmFycyhkZWZfZmlsZXMpICR2YXJzKGRic19kaXIpL3N5bl9wbGFjZS9zeW5fcGxhY2UuZGVmLmd6Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoaW5zZXJ0X2RmdCldICYmICR2YXJzKGluc2VydF9kZnQpfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICBsYXBwZW5kIHZhcnMoZGVmX2ZpbGVzKSAkdmFycyhkYnNfZGlyKS9zeW5fcGxhY2Uvc3luX3BsYWNlLnNjYW4uZGVmLmd6Ci0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICAgc2V0IHZhcnMobmV0bGlzdCkgICAkdmFycyhkYnNfZGlyKS9zeW5faW5jci9zeW5faW5jci52Lmd6Ci0gICAgICAgICAgICAgICAgICAgICAgICBzZXQgdmFycyhkZWZfZmlsZXMpICR2YXJzKGRic19kaXIpL3N5bl9pbmNyL3N5bl9pbmNyLmRlZi5negotICAgICAgICAgICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGluc2VydF9kZnQpXSAmJiAkdmFycyhpbnNlcnRfZGZ0KX0gewotICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFwcGVuZCB2YXJzKGRlZl9maWxlcykgJHZhcnMoZGJzX2Rpcikvc3luX2luY3Ivc3luX2luY3Iuc2Nhbi5kZWYuZ3oKLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgIGZvcmVhY2ggZGVmX2ZpbGUgJHZhcnMoZGVmX2ZpbGVzKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAicmVhZF9kZWYgJGRlZl9maWxlXG4iCi0gICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgIGZvcmVhY2ggZGVmX2ZpbGUgJHZhcnMoZGVmX2ZpbGVzKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiB7W2ZpbGUgZXhpc3RzICRkZWZfZmlsZV19IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJyZWFkX2RlZiAkZGVmX2ZpbGVcbiIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMoZGVmX2ZpbGVzKVxuIgotICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKGRlZl9maWxlcylcbiIKLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKGRlZl9maWxlcylcbiIKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxyZWFkX2Zsb29ycGxhbiAkY29tbWFuZF0KLSAgIAotICAgICAgICAgICAgaWYgeygkdmFycyhwYXJlbnQpID09ICJyYyIpICYmICR2YXJzKHJjKX0gewotICAgICAgICAgICAgICAgc2V0IGNvbW1hbmRzIFtGRjo6c291cmNlX3BsdWcgYWx3YXlzX3NvdXJjZV90Y2xdCi0gICAgICAgICAgICAgICBpZiB7JHZhcnMocmVwb3J0X3J1bl90aW1lKX0gewotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJzZXQgdmFycygkdmFycyhzdGVwKSxzdGFydF90aW1lKSBcW2Nsb2NrIHNlY29uZHNcXVxuIgotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6c291cmNlX3BsdWcgcHJlX2luaXRfdGNsXQotICAgICAgICAgICAgfQotICAgCi0gICAjICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGd1aWRlcyldfSB7Ci0gICAjICAgICAgICAgICAgc2V0IGNvbW1hbmQgIlxuYnVpbGRfZ3VpZGVzXG4iCi0gICAjICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kIGluaXQsYnVpbGRfZ3VpZGVzICRjb21tYW5kXQotICAgIyAgICAgICAgIH0KLSAgICMgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoYmxvY2thZ2VzKV19IHsKLSAgICMgICAgICAgICAgICBzZXQgY29tbWFuZCAiXG5hZGRfYmxvY2thZ2VzXG4iCi0gICAjICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kIGluaXQsYWRkX2Jsb2NrYWdlcyAkY29tbWFuZF0KLSAgICMgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGlmIHskdmFycyhhZGRfdHJhY2tzKX0gewotICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgImFkZF90cmFja3NcbiIKLSAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhob25vcl9waXRjaCldICYmICR2YXJzKGhvbm9yX3BpdGNoKX0gewotICAgICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgIiBhZGRfdHJhY2tzIC1ob25vcl9waXRjaFxuIgotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLGFkZF90cmFja3MgJGNvbW1hbmRdCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKGFkZF90cmFja3MpXG4iCi0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMoYWRkX3RyYWNrcylcbiIKLSAgICAgICAgICAgIH0KLSAgCi0gICAgICAgICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAgICAgICAjIERlZmluZSBwb3dlciBpbnRlbnQgaWYgaXQgaXMgZGVmaW5lZCAobG93IHBvd2VyIGZsb3cpCi0gICAgICAgICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0KLSAgICMgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGX05PVlVTOjpsb2FkX3Bvd2VyX2ludGVudF0KLSAgIAotICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGFjdGl2aXR5X2ZpbGUpXX0gewotICAgIyAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAkaGVhZGVyCi0gICAjICAgICAgICAgICAgc2V0IGhlYWRlciAiIgotICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgInJlYWRBY3Rpdml0eUZpbGUgLWZvcm1hdCAkdmFycyhhY3Rpdml0eV9maWxlX2Zvcm1hdCkgJHZhcnMoYWN0aXZpdHlfZmlsZSlcbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxyZWFkX2FjdGl2aXR5X2ZpbGUgJGNvbW1hbmRdCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKGFjdGl2aXR5X2ZpbGUpXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKGFjdGl2aXR5X2ZpbGVfZm9ybWF0KVxuIgotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKGFjdGl2aXR5X2ZpbGUpXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhhY3Rpdml0eV9maWxlX2Zvcm1hdClcbiIKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgICAgICAgIyBTcGVjaWZ5IElMTXMgaWYgZGVmaW5lZAotICAgICAgICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyBpbG1fbGlzdF0gJiYgKCRpbG1fbGlzdCAhPSAiIil9IHsKLSAgICAgICAgICAgICAgIHNldCBjb21tYW5kICIiCi0gICAgICAgICAgICAgICBmb3JlYWNoIGNlbGwgJGlsbV9saXN0IHsKLSAgICAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkY2VsbCxpbG1fZGlyKV0gJiYgW2ZpbGUgaXNkaXJlY3RvcnkgJHZhcnMoJGNlbGwsaWxtX2RpcildfSB7Ci0gICAgICAgICAgICAgICAgICAgICBpZiB7W2xpbmRleCBbc3BsaXQgJHZhcnModmVyc2lvbikgIi4iXSAgMF0gPD0gMTB9IHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJyZWFkX2lsbSAtY2VsbCAkY2VsbCAtZGlyZWN0b3J5ICR2YXJzKCRjZWxsLGlsbV9kaXIpXG4iCi0gICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICBpZiB7W3N0cmluZyBjb21wYXJlIC1ub2Nhc2UgJHZhcnMoZGJzX2Zvcm1hdCkgIm9hIl09PTB9IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJyZWFkX2lsbSAtY2VsbCAkY2VsbCAtb2FfY2VsbHZpZXcgeyR2YXJzKG9hX3BhcnRpdGlvbl9saWIpIFxbZ2V0X2RiIGRlc2lnbnMgLm5hbWVcXSBpbG19XG4iCi0gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgInJlYWRfaWxtIC1jZWxsICRjZWxsIC1kaXJlY3RvcnkgJHZhcnMoJGNlbGwsaWxtX2RpcilcbiIKLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICBwdXRzICI8RkY+IEVSUk9SOiBpbG0gZGlyZWN0b3J5IG1pc3NpbmcgZm9yICRjZWxsIgotICAgICAgICAgICAgICAgICAgICAgc2V0IGVycm9ycygkdmFycyhlcnJvcl9jb3VudCkpICJJTE0gZGlyZWN0b3J5IG1pc3NpbmcgZm9yICRjZWxsIgotICAgICAgICAgICAgICAgICAgICAgaW5jciB2YXJzKGVycm9yX2NvdW50KQotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgaWYgeyRjb21tYW5kICE9ICIifSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksc3BlY2lmeV9pbG0gJGNvbW1hbmRdCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAKLSMgICAgICAgICAgICBpZiB7JHZhcnMoaWxtKSAmJiBbaW5mbyBleGlzdHMgdmFycyhpbG1fbm9uX3NkY19maWxlKV19IHsKLSMgICAgICAgICAgICAgICBpZiB7W2ZpbGUgZXhpc3RzICR2YXJzKGlsbV9ub25fc2RjX2ZpbGUpXX0gewotIyAgICAgICAgICAgICAgICAgIGlmIHtbbGluZGV4IFtzcGxpdCAkdmFycyh2ZXJzaW9uKSAiLiJdICAwXSA8PSAxMH0gewotIyAgICAgICAgICAgICAgICAgICAgIHNldCBjb21tYW5kICJsb2FkVGltaW5nQ29uIC1pbG1Ob25TZGNGaWxlICR2YXJzKGlsbV9ub25fc2RjX2ZpbGUpXG4iCi0jICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSMgICAgICAgICAgICAgICAgICAgICBzZXQgY29tbWFuZCAic2V0SWxtTm9uU2RjQ29uc3RyYWludEZpbGUgJHZhcnMoaWxtX25vbl9zZGNfZmlsZSlcbiIKLSMgICAgICAgICAgICAgICAgICB9Ci0jICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLGxvYWRfaWxtX25vbl9zZGNfZmlsZSAkY29tbWFuZF0KLSMgICAgICAgICAgICAgICB9Ci0jICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhpbG1fbm9uX3NkY19maWxlKVxuIgotIyAgICAgICAgICAgIH0gZWxzZSB7Ci0jICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMoaWxtX25vbl9zZGNfZmlsZSlcbiIKLSMgICAgICAgICAgICB9Ci0gICAKLSAgICAgICAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICAgICAgICMgTG9hZCB0aW1pbmcgZW52aXJvbWVudCBiYXNlZCBvbiB0aGUgZmxvdyBzZXR0aW5nIGluIHRoZQotICAgICAgICAgICAgIyBzZXR1cC50Y2wgZmlsZS4gSWYgdGhlIGZsb3cgaXMgbW1tYywgbG9hZCB0aGUgbW1tYyBzZXR1cAotICAgICAgICAgICAgIyBoZXJlIGVsc2UgbG9hZCB0aGUgZGVmYXVsdCB0aW1pbmcgZW52aXJvbm1lbnQKLSAgICAgICAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICMgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiNcbiIKLSAgICMgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgU0VUVElORyBVUCBUSU1JTkcgRU5WSVJPTk1FTlRcbiIKLSAgICMgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiNcbiIKLSAgICAgICAgICAgIGlmIHskdmFycyhmbG93KSA9PSAibW1tYyJ9IHsKLSAgICAgICAgICAgICAgIHNldCBjb21tYW5kIFtGRl9OT1ZVUzo6aW5pdGlhbGl6ZV90aW1pbmcgbW1tY10KLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBzZXQgY29tbWFuZCBbRkZfTk9WVVM6OmluaXRpYWxpemVfdGltaW5nIG1pbm1heF0KLSAgICAgICAgICAgIH0KLSAgIAotICAgIyAgICAgZm9yZWFjaCB2YXIgW2FycmF5IG5hbWUgdmFyc10gewotICAgIyAgICAgICAgaWYgeygkdmFyICE9ICJzdGVwIikgJiYgKCR2YXIgIT0gIm1vZGUiKSAmJiAoJHZhciAhPSAiaWxtIikgJiYgXAotICAgIyAgICAgICAgICAgICgkdmFyICE9ICJmbGF2b3IiKSAmJiAoJHZhciAhPSAidXNlcl9tb2RlIikgJiYgKCR2YXIgIT0gImZsYXQiKSAmJiBcCi0gICAjICAgICAgICAgICAgKCR2YXIgIT0gInJlcG9ydF9ydW5fdGltZSIpICYmICgkdmFyICE9ICJtYWtlZmlsZSIpICYmICgkdmFyICE9ICJjb2RlZ2VuIikgJiYgXAotICAgIyAgICAgICAgICAgICgkdmFyICE9ICJiYWNrdXBfZGF0YSIpICYmICgkdmFyICE9ICJ2ZXJib3NlIikgJiYgKCR2YXIgIT0gImZvcm1hdF9saW5lcyIpICYmIFwKLSAgICMgICAgICAgICAgICAoJHZhciAhPSAid2FybmluZ19jb3VudCIpICYmICgkdmFyICE9ICJlcnJvcl9jb3VudCIpICYmICgkdmFyICE9ICJyYyIpICYmIFwKLSAgICMgICAgICAgICAgICAoJHZhciAhPSAiYWRkX3RyYWNrcyIpICYmICgkdmFyICE9ICJmaXhfaG9sZCIpICYmICgkdmFyICE9ICJob25vcl9waXRjaCIpICYmIFwKLSAgICMgICAgICAgICAgICAoJHZhciAhPSAic2NyaXB0X3BhdGgiKSAmJiAoJHZhciAhPSAiZml4X2hvbGQiKSAmJiAoJHZhciAhPSAiaG9ub3JfcGl0Y2giKSAmJiBcCi0gICAjICAgICAgICAgICAgKCR2YXIgIT0gInN0ZXBzIikgJiYgKCR2YXIgIT0gInNvdXJjZWQiKSAmJiAoJHZhciAhPSAidmVyc2lvbiIpfSB7Ci0gICAjICAgICAgICAgICBzZXQgdmFycygkdmFyKSAiXFxcJHZhcnMoJHZhcikiCi0gICAjICAgICAgICB9Ci0gICAjICAgICB9Ci0gICAgICAKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxpbml0aWFsaXplX3RpbWluZyAkY29tbWFuZF0KLSAgICAgICAgICAgIGlmIHskdmFycyhmbG93KSA9PSAibW1tYyJ9IHsKLSAgICAgICAgICAgICAgIHNldCBjb21tYW5kIFtGRl9OT1ZVUzo6ZGVyYXRlX3RpbWluZyBtbW1jXQotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLGRlcmF0ZV90aW1pbmcgJGNvbW1hbmRdCi0gICAgICAgICAgICB9Ci0gICAKLSAgICAgICAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICAgICAgICMgTG9hZCBzY2FuIERFRiBpZiBpdCBleGlzdHMKLSAgICAgICAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhzY2FuX2RlZildfSB7Ci0gICAgICAgICAgICAgICBpZiB7W2ZpbGUgZXhpc3RzICR2YXJzKHNjYW5fZGVmKV19IHsKLSAgICAgICAgICAgICAgICAgIGlmIHskdmFycyh2ZXJib3NlKX0gewotICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjXG4iCi0gICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgPEZGPiBMT0FESU5HIFNDQU4gREVGIEZJTEVcbiIKLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiI1xuIgotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgInJlYWRfZGVmICR2YXJzKHNjYW5fZGVmKVxuIgotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLGxvYWRfc2NhbiAkY29tbWFuZF0KLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMoc2Nhbl9kZWYpXG4iCi0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMoc2Nhbl9kZWYpXG4iCi0gICAgICAgICAgICB9Ci0gICAKLSAgICAgICAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICAgICAgICMgU3BlY2lmeSBzcGFyZSBnYXRlcyBmb3IgcGxhY2VtZW50IGFuZCBvcHRpbWl6YXRpb24gY29uc2lkZXJhdGlvbjsgdGhpcyBhc3N1bWVzCi0gICAgICAgICAgICAjIHRoZSBzcGFyZSBjZWxscyBhcmUgaW4gdGhlIG5ldGxpc3QuCi0gICAgICAgICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAKLSAgICAgICAgICAgIHNldCBjb21tYW5kICIiCi0gICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoc3BhcmVfY2VsbHMpXX0gewotICAgICAgICAgICAgICAgZm9yZWFjaCBzcGFyZV9jZWxsICR2YXJzKHNwYXJlX2NlbGxzKSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAic3BlY2lmeV9zcGFyZV9nYXRlIC1pbnN0ICRzcGFyZV9jZWxsXG4iCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKHNwYXJlX2NlbGxzKVxuIgotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKHNwYXJlX2NlbGxzKVxuIgotICAgICAgICAgICAgfQotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHNwZWNpZnlfc3BhcmVfZ2F0ZXMgJGNvbW1hbmRdCi0gICAKLSAgICAgICAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICAgICAgICMgTG9hZCB0aGUgcmVjb21tZW5kZWQgY29tbWFuZCBtb2RlIHNldHRpbmdzCi0gICAgICAgICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAgICAgICBpZiB7JHZhcnModmVyYm9zZSl9IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiI1xuIgotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjIERFRklOSU5HIE1PREUgU0VUVElOR1NcbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiI1xuIgotICAgICAgICAgICAgfQotICAgCi0gICAgICAgICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAgICAgICAjIFNldCBkb24ndCB1c2UgY2VsbHM7IGRpc2FibGUgc29tZSAoY2xvY2sgYnVmZmVycywgc3Ryb25nIGJ1ZmZlcnMsIGV0Yy4pLAotICAgICAgICAgICAgIyBlbmFibGUgb3RoZXJzIHRoYXQgbWF5IGhhdmUgImRvbnRfdXNlIHRydWUiIGluIHRoZSBsaWJyYXJ5IChsaWtlIGRlbGF5IGNlbGxzCi0gICAgICAgICAgICAjIGZvciBob2xkIGZpeGluZykKLSAgICAgICAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICAgICAgIHNldCBjb21tYW5kICIiCi0gICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoZG9udF91c2VfbGlzdCldfSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAic2V0X2ludGVyYWN0aXZlX2NvbnN0cmFpbnRfbW9kZXMgXFthbGxfY29uc3RyYWludF9tb2RlcyAtYWN0aXZlXF1cbiIKLSAgICAgICAgICAgICAgIGZvcmVhY2ggY2VsbCAkdmFycyhkb250X3VzZV9saXN0KSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAic2V0X2RvbnRfdXNlIHRydWUgJGNlbGxcbiIKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMoZG9udF91c2VfbGlzdClcbiIKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhkb250X3VzZV9saXN0KVxuIgotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGRvbnRfdXNlX2ZpbGUpXSAmJiBbZmlsZSBleGlzdHMgJHZhcnMoZG9udF91c2VfZmlsZSldfSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAic291cmNlICR2YXJzKGRvbnRfdXNlX2ZpbGUpXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKGRvbnRfdXNlX2ZpbGUpXG4iCi0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMoZG9udF91c2VfZmlsZSlcbiIKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyh1c2VfbGlzdCldfSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAic2V0X2ludGVyYWN0aXZlX2NvbnN0cmFpbnRfbW9kZXMgXFthbGxfY29uc3RyYWludF9tb2RlcyAtYWN0aXZlXF1cbiIKLSAgICAgICAgICAgICAgIGZvcmVhY2ggY2VsbCAkdmFycyh1c2VfbGlzdCkgewotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgInNldF9kb250X3VzZSBmYWxzZSAkY2VsbFxuIgotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyh1c2VfbGlzdClcbiIKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyh1c2VfbGlzdClcbiIKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIHskY29tbWFuZCAhPSAiIn0gewotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHNldF9kb250X3VzZSAkY29tbWFuZF0KLSAgICAgICAgICAgIH0KLSAgIAotICAgICAgICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgICAgICAgIyBTZXQgbWF4aW11bSByb3V0aW5nIGxheWVycwotICAgICAgICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKG1heF9yb3V0ZV9sYXllcildfSB7Ci0gICAgICAgICAgICAgICBzZXQgY29tbWFuZCAic2V0X21heF9yb3V0ZV9sYXllciAkdmFycyhtYXhfcm91dGVfbGF5ZXIpXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksc2V0X21heF9yb3V0ZV9sYXllciAkY29tbWFuZF0KLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMobWF4X3JvdXRlX2xheWVyKVxuIgotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKG1heF9yb3V0ZV9sYXllcilcbiIKLSAgICAgICAgICAgIH0KLSAgIAotICAgICAgICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgICAgICAgIyBTZXQgZGVzaWduIG1vZGUKLSAgICAgICAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICAgICAgIHNldCBwcm9jZXNzIFtyZWdzdWIgIm5tIiAkdmFycyhwcm9jZXNzKSAiIl0KLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAic2V0X2RiIGRlc2lnbl9wcm9jZXNzX25vZGUgJHByb2Nlc3NcbiIKLSAgICAgICAgICAgIGlmIHtbc3RyaW5nIHRvbG93ZXIgJHZhcnMoZmxvd19lZmZvcnQpXSAhPSAic3RhbmRhcmQifSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgInNldF9kYiBkZXNpZ25fZmxvd19lZmZvcnQgW3N0cmluZyB0b2xvd2VyICR2YXJzKGZsb3dfZWZmb3J0KV1cbiIKLSAgICAgICAgICAgIH0KLSAgIAotICAgICAgICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgICAgICAgIyBJbnNlcnQgd2VsbHRhcHMgYW5kIHByZS9wb3N0IGVuZGNhcHMKLSAgICAgICAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICAgICAgIGlmIHsoW0ZGOjpnZXRfYnlfc3VmZml4IHZhcnMgIndlbGx0YXBzIl0gIT0gIiIpIHx8Ci0gICAgICAgICAgICAgICAgKChbRkY6OmdldF9ieV9zdWZmaXggdmFycyAicHJlX2VuZGNhcCJdICE9ICIiKSAmJgotICAgICAgICAgICAgICAgICAoW0ZGOjpnZXRfYnlfc3VmZml4IHZhcnMgInBvc3RfZW5kY2FwIl0gIT0gIiIpKX0gewotICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgW0ZGX05PVlVTOjppbnNlcnRfd2VsbHRhcHNfZW5kY2Fwc10KLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxpbnNlcnRfd2VsbHRhcHNfZW5kY2FwcyAkY29tbWFuZF0KLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMod2VsbHRhcHMpXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKHByZV9lbmRjYXApXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKHBvc3RfZW5kY2FwKVxuIgotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKHdlbGx0YXBzKVxuIgotICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMocHJlX2VuZGNhcClcbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKHBvc3RfZW5kY2FwKVxuIgotICAgICAgICAgICAgfQotICAgCi0gICAgICAgICB9IGVsc2UgewotICAgCi0gICAgICAgICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAgICAgICAjIFBhcnRpdGlvbiBpbml0IHN0ZXAKLSAgICAgICAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgIAotICAgICAgICAgICAgc2V0IHB0biBbZmlsZSB0YWlsIFtwd2RdXQotICAgICAgICAgICAgc2V0IHZhcnMoZGVzaWduKSAkcHRuCi0gICAgICAgICAgICBzZXQgc2tpcF9jcGYgZmFsc2UKLSAgICMgICAgICAgICBzZXQgdmFycyhpbG0pIDAKLSAgICAgICAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICAgICAgIGlmIHtbbHNlYXJjaCAkdmFycyhwYXJ0aXRpb25fbGlzdCkgJHB0bl0gPT0gLTF9IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIgotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICAgICAgICBUT1AgKCRwdG4pIElNUExFTUVOVEFUSU9OIEZMT1dcbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIgotICAgICAgICAgICAgICAgaWYge1tsaW5kZXggW3NwbGl0ICR2YXJzKHZlcnNpb24pICIuIl0gIDBdIDw9IDEwfSB7Ci0gICAgICAgICAgICAgICAgICBzZXQgY29tbWFuZCAibG9hZENvbmZpZyAkcHRuLmNvbmYgMFxuIgotICAgICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKHNhdmVfaWxtX25vbl9zZGNfZmlsZSldfSB7Ci0gICAgICAgICAgICAgICAgICAgICBzZXQgdmFycyhpbG1fbm9uX3NkY19maWxlKSAkdmFycyhzYXZlX2lsbV9ub25fc2RjX2ZpbGUpCi0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiZ2xvYmFsIHJkYV9JbnB1dFxuIgotICAgICAgICAgICAgICAgICAgZm9yZWFjaCBwYXJ0ICR2YXJzKHBhcnRpdGlvbl9saXN0KSB7Ci0gICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJsYXBwZW5kIHJkYV9JbnB1dCh1aV9sZWZmaWxlKSAuLi8kcGFydC8kcGFydC5hbnRlbm5hLmxlZlxuIgotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgImNvbW1pdENvbmZpZ1xuIgotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLGxvYWRfY29uZmlnICRjb21tYW5kXQotICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgIGlmIHtbc3RyaW5nIGNvbXBhcmUgJHZhcnMoZGJzX2Zvcm1hdCkgIm9hIl09PTB9IHsKLSAgICAgICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgInJlYWRfZGIgLWNlbGx2aWV3IFxbbGlzdCAkdmFycyhvYV9wYXJ0aXRpb25fbGliKSAkcHRuIGxheW91dFxdXG4iCi0gICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgaWYgeyR2YXJzKHVzZV9mbGV4bW9kZWxzKX0gewotICAgICAgICAgICAgICAgICAgICAgICAgaWYgeyR2YXJzKGZsZXhtb2RlbF9hc19wdG4pfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICBpZiB7W2xpbmRleCBbc3BsaXQgJHZhcnModmVyc2lvbikgIi4iXSAgMF0gPCAxNn0gewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgInJlYWRfZGIgJHtwdG59X3Byb3RvX2Vjby5lbmMuZGF0XG4iCi0gICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgInJlYWRfZGIgJHtwdG59X3Byb3RvX2Z1bGwuZW5jLmRhdFxuIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldCBjb21tYW5kICJyZWFkX2RiIC5cbiIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJmZl9yZXBsYWNlX2ZsZXhtb2RlbF93aXRoX2Z1bGxfbmV0bGlzdFxuIgotICAgICAgICAgICAgICAgICAgICAgICAgfSAKLSAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICAgIHNldCBjb21tYW5kICJyZWFkX2RiIC5cbiIKLSAgICAgICAgICAgICAgICAgICAgICB9IAotICAgIyAgICAgICAgICAgICAgICAgIGZvcmVhY2ggcGFydCAkdmFycyhwYXJ0aXRpb25fbGlzdCkgewotICAgIyAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgImlmIHtcW2ZpbGUgZXhpc3RzIC4uLyRwYXJ0LyRwYXJ0LmFudGVubmEubGVmXF19IHtcbiIKLSAgICMgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJsb2FkTGVmRmlsZSAuLi8kcGFydC8kcGFydC5hbnRlbm5hLmxlZlxuIgotICAgIyAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIn1cbiIKLSAgICMgICAgICAgICAgICAgICAgICB9Ci0gICAjICAgICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgInNvdXJjZSAkcHRuLmdsb2JhbHNcbiIKLSAgICMgICAgICAgICAgICAgICAgICBmb3JlYWNoIHBhcnQgJHZhcnMocGFydGl0aW9uX2xpc3QpIHsKLSAgICMgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJsYXBwZW5kIGluaXRfbGVmX2ZpbGUgLi4vJHBhcnQvJHBhcnQuYW50ZW5uYS5sZWZcbiIKLSAgICMgICAgICAgICAgICAgICAgICB9Ci0gICAjICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgImluaXRfZGVzaWduXG4iCi0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCkscmVhZF9kYiAkY29tbWFuZF0KLSAgICAgICAgICAgICAgICAgIHNldCByZXN0b3JlX2Rlc2lnbiB0cnVlCi0gICAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICAgIGlmIHskdmFycyhjYXB0dXJlX21ldHJpY3MpICYmICgoJHZhcnMoc3RlcCkgPT0gImluaXQiKSB8fCAoKCR2YXJzKHN0ZXApID09ICJwYXJ0aXRpb25fcGxhY2UiKSAmJiAhJHZhcnModXNlX2ZsZXhtb2RlbHMpKSB8fCAoJHZhcnMoc3RlcCkgPT0gIm1vZGVsX2dlbiIpKX0gewotICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJlbmFibGVfbWV0cmljcyAtb25cbiIKLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAicHVzaF9zbmFwc2hvdF9zdGFja1xuIgotICAgICAgICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAgICAgICAjIEZsZXhJTE0gZmxvdwotICAgICAgICAgICAgICAgICAgaWYgeyR2YXJzKHRvcCl9IHsKLSAgICAgICAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyh2aWV3X2RlZmluaXRpb25fdGNsKV19IHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHNldCBtbW1jX2ZpbGUgW2ZpbGUgbm9ybWFsaXplICR2YXJzKHZpZXdfZGVmaW5pdGlvbl90Y2wpXQotICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHNldCBtbW1jX2ZpbGUgW2ZpbGUgbm9ybWFsaXplICR2YXJzKHNjcmlwdF9kaXIpL3ZpZXdfZGVmaW5pdGlvbi50Y2xdCi0gICAgICAgICAgICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgICAgICAgICAgaWYgeyR2YXJzKGVuYWJsZV9mbGV4aWxtKX0gewotICAgICAgICAgICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgIiIKLSAgICAgICAgICAgICAgICAgICAgICAgIHNldCBkaXJzICIiCi0gICAgICAgICAgICAgICAgICAgICAgICBmb3JlYWNoIGJsb2NrICR2YXJzKHBhcnRpdGlvbl9saXN0KSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgZGlycyAiXFxcbiAgIC1mbGV4X2lsbSB7JHtibG9ja30gLi4vJHtibG9ja30vJHtibG9ja30uZmxleGlsbX0iCi0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICBzZXQgY29tbWFuZCAiY29tbWl0X21vZHVsZV9tb2RlbCAkZGlyc1xcXG4iCi0gICAgICAgICAgICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoY3BmX2ZpbGUpXX0gewotICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAgIC1tbW1jX2ZpbGUgJHZhcnMobW1tY19maWxlKVxcXG4iCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiICAgLWNwZl9maWxlICR2YXJzKGNwZl9maWxlKVxuIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0IHNraXBfY3BmIHRydWUKLSAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiICAgLW1tbWNfZmlsZSAkdmFycyhtbW1jX2ZpbGUpXG4iCi0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksY29tbWl0X21vZHVsZV9tb2RlbCAkY29tbWFuZF0KLSAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIH0gICAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyBQQVJUSVRJT04gKCRwdG4pIElNUExFTUVOVEFUSU9OIEZMT1dcbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIgotCi0gICAgICAgICAgICAgICBpZiB7JHZhcnModXNlX2ZsZXhtb2RlbHMpfSAgewotICAgICAgICAgICAgICAgICAgaWYgeyR2YXJzKGZsZXhtb2RlbF9hc19wdG4pfSB7Ci0gICAgICAgICAgICAgICAgICAgICBpZiB7W2xpbmRleCBbc3BsaXQgJHZhcnModmVyc2lvbikgIi4iXSAgMF0gPCAxNn0gewotICAgICAgICAgICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgInJlYWRfZGIgJHtwdG59X3Byb3RvX2Vjby5lbmMuZGF0XG4iCi0gICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgInJlYWRfZGIgJHtwdG59X3Byb3RvX2Z1bGwuZW5jLmRhdFxuIgotICAgICAgICAgICAgICAgICAgICAgfQotIyAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxyZXN0b3JlX2Rlc2lnbiAkY29tbWFuZF0KLSAgICAgICAgICAgICAgICAgIH0gZWxzZSB7IAotICAgICAgICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgImZmX3JlcGxhY2VfZmxleG1vZGVsX3dpdGhfZnVsbF9uZXRsaXN0XG4iCi0jICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLGZmX3JlcGxhY2VfZmxleG1vZGVsX3dpdGhfZnVsbF9uZXRsaXN0ICRjb21tYW5kXQotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgIGlmIHtbc3RyaW5nIGNvbXBhcmUgJHZhcnMoZGJzX2Zvcm1hdCkgIm9hIl09PTB9IHsKLSAgICAgICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgInJlYWRfZGIgLWNlbGxfdmlldyBcW2xpc3QgJHZhcnMob2FfcGFydGl0aW9uX2xpYikgJHB0biBsYXlvdXRcXVxuIgotICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgIHNldCBjb21tYW5kICJyZWFkX2RiIC5cbiIKLSMgICAgICAgICAgICAgICAgICBzZXQgY29tbWFuZCAic291cmNlICRwdG4uZ2xvYmFsc1xuIgotIyAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJpbml0X2Rlc2lnblxuIgotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHJlc3RvcmVfZGVzaWduICRjb21tYW5kXQotICAgICAgICAgICAgICAgICAgc2V0IHJlc3RvcmVfZGVzaWduIHRydWUKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgIAotICAgICAgICAgICAgaWYgeyR2YXJzKGNhcHR1cmVfbWV0cmljcykgJiYgKCgkdmFycyhzdGVwKSA9PSAiaW5pdCIpIHx8ICgoJHZhcnMoc3RlcCkgPT0gInBhcnRpdGlvbl9wbGFjZSIpICYmICEkdmFycyh1c2VfZmxleG1vZGVscykpIHx8ICgkdmFycyhzdGVwKSA9PSAibW9kZWxfZ2VuIikpfSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgImVuYWJsZV9tZXRyaWNzIC1vblxuIgotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJwdXNoX3NuYXBzaG90X3N0YWNrXG4iCi0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OnNvdXJjZV9wbHVnIGFsd2F5c19zb3VyY2VfdGNsXQotICAgCi0gICAgICAgICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAgICAgICAjIExvYWQgZmxvb3JwbGFuIGZpbGUgb3IgREVGOyB1c2UgZGVmSW4gdG8gbG9hZCBhIERFRiBmaWxlCi0gICAgICAgICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAgICAgICBpZiB7W3N0cmluZyBjb21wYXJlICR2YXJzKGRic19mb3JtYXQpICJmZSJdPT0wfSB7Ci0gICAgICAgICAgICAgICBpZiB7IVtpbmZvIGV4aXN0cyByZXN0b3JlX2Rlc2lnbl19IHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAicmVhZF9mbG9vcnBsYW4gJHB0bi5mcFxuIgotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJzb3VyY2UgJHB0bi5tb2RlXG4iCi0gICAgICAgICAgICAgICAgICBpZiB7W2ZpbGUgZXhpc3RzICRwdG4uc2Nhbi5kZWZdfSB7Ci0gICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgInB1dHMgXCI8RkY+IExPQURJTkcgU0NBTiBERUYgRklMRSAkcHRuLnNjYW4uZGVmXCJcbiIKLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAicmVhZF9kZWYgJHB0bi5zY2FuLmRlZlxuIgotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgCi0gICAgICAgICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAgICAgICAjIE92ZXJyaWRlIG1heGltdW0gcm91dGluZyBsYXllciBpZiBkZWZpbmVkIGZvciB0aGUgcGFydGl0aW9uCi0gICAgICAgICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJHB0bixtYXhfcm91dGVfbGF5ZXIpXX0gewotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJzZXRfbWF4X3JvdXRlX2xheWVyICgkcHRuLG1heF9yb3V0ZV9sYXllcilcbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMobWF4X3JvdXRlX2xheWVyKVxuIgotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKG1heF9yb3V0ZV9sYXllcilcbiIKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgICAgICAgIyBTcGVjaWZ5IHRoZSBJTE0gbW9kZWxzIGZvciB0aGUgdG9wIHBhcnRpdGlvbgotICAgICAgICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgICAgICAgaWYgeyR2YXJzKHRvcCl9IHsKLSAgICAgICAgICAgICAgIGlmIHshJHZhcnMoZW5hYmxlX2ZsZXhpbG0pfSB7Ci0gICAgICAgICAgICAgICAgICBzZXQgY29tbWFuZCAiIgotICAgICAgICAgICAgICAgICAgZm9yZWFjaCBwYXJ0ICR2YXJzKHBhcnRpdGlvbl9saXN0KSB7Ci0gICAgICAgICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJHBhcnQsaWxtX2RpcildICYmICgkdmFycyhjb2RlZ2VuKSB8fCBbZmlsZSBpc2RpcmVjdG9yeSAkdmFycygkcGFydCxpbG1fZGlyKV0pfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiB7W2xpbmRleCBbc3BsaXQgJHZhcnModmVyc2lvbikgIi4iXSAgMF0gPD0gMTB9IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJyZWFkX2lsbSAtY2VsbCAkcGFydCAtZGlyICR2YXJzKCRwYXJ0LGlsbV9kaXIpXG4iCi0gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICAgICBpZiB7W3N0cmluZyBjb21wYXJlIC1ub2Nhc2UgJHZhcnMoZGJzX2Zvcm1hdCkgIm9hIl09PTB9IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJyZWFkX2lsbSAtY2VsbCAkcGFydCAtb2FfY2VsbHZpZXcgeyR2YXJzKG9hX3BhcnRpdGlvbl9saWIpIFxbZ2V0X2RiIGRlc2lnbnMgLm5hbWVcXSBpbG19XG4iCi0gICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgInJlYWRfaWxtIC1jZWxsICRwYXJ0IC1kaXJlY3RvcnkgJHZhcnMoJHBhcnQsaWxtX2RpcilcbiIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiB7W2xpbmRleCBbc3BsaXQgJHZhcnModmVyc2lvbikgIi4iXSAgMF0gPD0gMTB9IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJyZWFkX2lsbSAtY2VsbCAkcGFydCAtZGlyZWN0b3J5IC4uLyRwYXJ0LyRwYXJ0LmlsbVxuIgotICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgaWYge1tzdHJpbmcgY29tcGFyZSAtbm9jYXNlICR2YXJzKGRic19mb3JtYXQpICJvYSJdPT0wfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAicmVhZF9pbG0gLWNlbGwgJHBhcnQgLW9hX2NlbGx2aWV3IHskdmFycyhvYV9wYXJ0aXRpb25fbGliKSBcW2dldF9kYiBkZXNpZ25zIC5uYW1lXF0gaWxtfVxuIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJyZWFkX2lsbSAtY2VsbCAkcGFydCAtZGlyZWN0b3J5IC4uLyRwYXJ0LyRwYXJ0LmlsbVxuIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgaWYgeyRjb21tYW5kICE9ICIifSB7Ci0gICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksc3BlY2lmeV9pbG0gJGNvbW1hbmRdCi0gICAgICAgICAgICAgICAgICB9Ci0jICAgICAgICAgICAgICAgICAgaWYgeyR2YXJzKGlsbSkgJiYgW2luZm8gZXhpc3RzIHZhcnMoaWxtX25vbl9zZGNfZmlsZSldfSB7Ci0jICAgICAgICAgICAgICAgICAgICAgaWYge1tmaWxlIGV4aXN0cyAkdmFycyhpbG1fbm9uX3NkY19maWxlKV19IHsKLSMgICAgICAgICAgICAgICAgICAgICAgICBpZiB7W2xpbmRleCBbc3BsaXQgJHZhcnModmVyc2lvbikgIi4iXSAgMF0gPD0gMTB9IHsKLSMgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXQgY29tbWFuZCAibG9hZFRpbWluZ0NvbiAtaWxtTm9uU2RjRmlsZSAkdmFycyhpbG1fbm9uX3NkY19maWxlKVxuIgotIyAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0jICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldCBjb21tYW5kICJzZXRJbG1Ob25TZGNDb25zdHJhaW50RmlsZSAkdmFycyhpbG1fbm9uX3NkY19maWxlKVxuIgotIyAgICAgICAgICAgICAgICAgICAgICAgIH0KLSMgICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksbG9hZF9pbG1fbm9uX3NkY19maWxlICRjb21tYW5kXQotIyAgICAgICAgICAgICAgICAgICAgIH0KLSMgICAgICAgICAgICAgICAgICB9Ci0gICAKLSAgICAgICAgICAgICAgICAgIHNldCBjb21tYW5kIFtGRl9OT1ZVUzo6aW5pdGlhbGl6ZV90aW1pbmcgbW1tY10KLSAgICMgICAgICAgICAgICAgICBpZiB7IVtpbmZvIGV4aXN0cyB2YXJzKGNwZl9maWxlKV19IHsKLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxpbml0aWFsaXplX3RpbWluZyAkY29tbWFuZF0KLSAgICMgICAgICAgICAgICAgICB9IGVsc2UgewotICAgIyAgICAgICAgICAgICAgICAgIHNldCBkZWZlcl9jb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxpbml0aWFsaXplX3RpbWluZyAkY29tbWFuZF0gCi0gICAjICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgICAgICAgIyBMb2FkIHBvd2VyIGludGVudCAoaWYgaXQgaXMgZGVmaW5lZCkKLSAgICAgICAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICAgICAgIGlmIHsoW2luZm8gZXhpc3RzIHZhcnMoY3BmX2ZpbGUpXSkgJiYgKCR2YXJzKGNwZl9maWxlKSAhPSAiIikgJiYgISRza2lwX2NwZn0gewotICAgICAgICAgICAgICAgc2V0IHNhdmUgJHZhcnMoY3BmX2ZpbGUpCi0gICAgICAgICAgICAgICBpZiB7ISR2YXJzKHRvcCl9IHsKLSAgICAgICAgICAgICAgICAgIHNldCB2YXJzKGNwZl9maWxlKSAiJHB0bi5jcGYiCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRl9OT1ZVUzo6bG9hZF9wb3dlcl9pbnRlbnRdCi0gICAgICAgICAgICAgICAgc2V0IHZhcnMoY3BmX2ZpbGUpICRzYXZlIAotICAgICAgICAgICAgfSBlbHNlaWYge1tpbmZvIGV4aXN0cyB2YXJzKGllZWUxODAxX2ZpbGUpXX0gewotICAgICAgICAgICAgICAgc2V0IHNhdmUgJHZhcnMoaWVlZTE4MDFfZmlsZSkKLSAgICAgICAgICAgICAgIGlmIHshJHZhcnModG9wKX0gewotICAgICAgICAgICAgICAgICAgc2V0IHZhcnMoaWVlZTE4MDFfZmlsZSkgIiRwdG4uY3BmIgotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRl9OT1ZVUzo6bG9hZF9wb3dlcl9pbnRlbnRdCi0gICAgICAgICAgICAgICBzZXQgY29tbWFuZCAicmVhZF9wb3dlcl9pbnRlbnQgJHZhcnMoaWVlZTE4MDFfZmlsZSkgLTE4MDFcbiIKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhjcGZfZmlsZSlcbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKGllZWUxODAxX2ZpbGUpXG4iCi0gICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0gICAgICB9Ci0KLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICMgTG9hZCBwb3N0LWluaXRpYWxpemF0aW9uIHBsdWctaW4gc2NyaXB0Ci0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjpzb3VyY2VfcGx1ZyBwb3N0X2luaXRfdGNsIDBdCi0KLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICMgQ2hlY2sgcHJlLXBsYWNlIHRpbWluZyAoYW5kIGdlbmVyYXRlIHRpbWluZyBncmFwaCBmb3IgcGxhY2VtZW50KQotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgaWYgeygkdmFycyhzdGVwKSAhPSAibW9kZWxfZ2VuIikgJiYgKCR2YXJzKHN0ZXApICE9ICJwYXJ0aXRpb25fcGxhY2UiKX0gewotICAgICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycyh0aW1lX2Rlc2lnbl9vcHRpb25zLHNldHVwKV19IHsKLSAgICAgICAgICAgIHNldCBjb21tYW5kICJ0aW1lX2Rlc2lnbiAtcHJlX3BsYWNlIC1yZXBvcnRfcHJlZml4IHByZXBsYWNlIC1yZXBvcnRfZGlyICR2YXJzKHJwdF9kaXIpXG4iCi0gICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgc2V0IGNvbW1hbmQgW2Zvcm1hdCAidGltZV9kZXNpZ24gLXByZV9wbGFjZSAtcmVwb3J0X3ByZWZpeCBwcmVwbGFjZSAtcmVwb3J0X2RpciAkdmFycyhycHRfZGlyKSAlc1xuIiAkdmFycyh0aW1lX2Rlc2lnbl9vcHRpb25zLHNldHVwKV0KLSAgICAgICAgIH0KLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSx0aW1lX2Rlc2lnbiAkY29tbWFuZF0KLSAgICAgIH0KLQotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgIyBDaGVjayBkYXRhIHNldHVwIChzYW5pdHkgY2hlY2spCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICBzZXQgY29tbWFuZCAiY2hlY2tfbGVnYWN5X2Rlc2lnbiAtYWxsXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksY2hlY2tfZGVzaWduICRjb21tYW5kXQotCi0gICAgICBpZiB7ISR2YXJzKGlsbSl9IHsKLSAgICAgICAgIHNldCBjb21tYW5kICJjaGVja190aW1pbmdcbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxjaGVja190aW1pbmcgJGNvbW1hbmRdCi0gICAgICB9Ci0KLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICMgR2VuZXJhdGUgcmVwb3J0cwotICAgICAgIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotICAgICAgIyBSZXBvcnQgcG93ZXIgZG9tYWluIGZvciBsZXZlbC1zaGlmdGVycywgaXNvbGF0aW9uIGFuZCBwZyBuZXRzCi0gICAgICAjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gICAgICBpZiB7W0ZGOjppc19scF9mbG93XSAmJiAoW2luZm8gZXhpc3RzIHZhcnMocG93ZXJfZG9tYWlucyldICYmIChbbGxlbmd0aCAkdmFycyhwb3dlcl9kb21haW5zKV0gPiAxKSl9IHsKLSMgICAgICAgICBzZXQgY29tbWFuZCAic2V0IGRvbWFpbnMgXFtGRl9OT1ZVUzo6Z2V0X3Bvd2VyX2RvbWFpbnNfY29kZVxdXG4iCi0jICAgICAgICAgc2V0IGNvbW1hbmQgW0ZGX05PVlVTOjpnZXRfcG93ZXJfZG9tYWluc19jb2RlXQotCi0gICAgICAgICBhcHBlbmQgY29tbWFuZCAiZm9yZWFjaCBkb21haW4gXFtnZXRfZGIgcG93ZXJfZG9tYWlucyAubmFtZVxdIHtcbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgICBzZXQgZG9tYWluX2ZpbGUgXFtyZWdzdWIgLWFsbCB7XFtcXVxbPD58XFwvPyo6XF19IFwkZG9tYWluIF9cXVxuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAgIHJlcG9ydF9wb3dlcl9kb21haW5zIC1wb3dlcl9kb21haW4gXCRkb21haW4gLW91dF9maWxlICR2YXJzKHJwdF9kaXIpL1wke2RvbWFpbl9maWxlfS5ycHQgLXNoaWZ0ZXIgLWlzb19pbnN0IC1wZ19uZXRzXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZCAiICAgcmVwb3J0X3Bvd2VyX2RvbWFpbnMgLXBvd2VyX2RvbWFpbiBcJGRvbWFpbiAtb3V0X2ZpbGUgJHZhcnMocnB0X2RpcikvXCR7ZG9tYWluX2ZpbGV9X2JpbmRpbmcucnB0IC1iaW5kX2xpYlxuIgotCi0gICAgICAjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gICAgICAjIFJlcG9ydCBsaWJyYXJ5IGJpbmRpbmcgZm9yIHBvd2VyIGRvbWFpbnMKLSAgICAgICMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSMgICAgICAgICBhcHBlbmQgY29tbWFuZCAiICAgZm9yZWFjaCBhbmFseXNpc192aWV3IFxbYWxsX2FuYWx5c2lzX3ZpZXdzXF0ge1xuIgotIyAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgICAgICBzZXRfZGVmYXVsdF92aWV3IC1zZXR1cCBcJGFuYWx5c2lzX3ZpZXdcbiIKLSMgICAgICAgICBhcHBlbmQgY29tbWFuZCAiICAgICAgcmVwb3J0X3Bvd2VyX2RvbWFpbnMgLXBvd2VyX2RvbWFpbiBcJGRvbWFpbiAtZmlsZSAkdmFycyhycHRfZGlyKS9cJHtkb21haW5fZmlsZX1fXCRhbmFseXNpc192aWV3LnJwdCAtYmluZF9saWJcbiIKLSMgICAgICAgICBhcHBlbmQgY29tbWFuZCAiICAgfVxuIgotCi0jICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAgICAgc2V0X2RiIHRpbWluZ19hbmFseXNpc19jaGVja190eXBlIGhvbGRcbiIKLQotIyAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgICBmb3JlYWNoIGFuYWx5c2lzX3ZpZXcgXFthbGxfaG9sZF9hbmFseXNpc192aWV3c1xdIHtcbiIKLSMgICAgICAgICBhcHBlbmQgY29tbWFuZCAiICAgICAgc2V0X2RlZmF1bHRfdmlldyAtaG9sZCBcJGFuYWx5c2lzX3ZpZXdcbiIKLSMgICAgICAgICBhcHBlbmQgY29tbWFuZCAiICAgICAgcmVwb3J0X3Bvd2VyX2RvbWFpbnMgLXBvd2VyX2RvbWFpbiBcJGRvbWFpbiAtZmlsZSAkdmFycyhycHRfZGlyKS9cJHtkb21haW5fZmlsZX1fXCRhbmFseXNpc192aWV3LnJwdCAtYmluZF9saWJcbiIKLSMgICAgICAgICBhcHBlbmQgY29tbWFuZCAiICAgfVxuIgotCi0jICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAgIHNldF9kYiB0aW1pbmdfYW5hbHlzaXNfY2hlY2tfdHlwZSBzZXR1cFxuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIn1cbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxyZXBvcnRfcG93ZXJfZG9tYWlucyAkY29tbWFuZF0KLSAgICAgICAgIGlmIHskdmFycyhmbG93KSA9PSJtbW1jIn0gewotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJzZXRfZGVmYXVsdF92aWV3IC1zZXR1cCAkdmFycyhkZWZhdWx0X3NldHVwX3ZpZXcpIC1ob2xkICR2YXJzKGRlZmF1bHRfaG9sZF92aWV3KVxuIgotICAgICAgICAgfQotICAgICAgfQotCi0gICAgICBpZiB7W2luZm8gZXhpc3RzIGNvbW1lbnRzXX0gewotICAgICAgICAgaWYgeyRjb21tZW50cyA9PSAiIn0gewotICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGNvbW1lbnRzKV19IHsKLSAgICAgICAgICAgICAgIHVuc2V0IHZhcnMoY29tbWVudHMpCi0gICAgICAgICAgICB9Ci0gICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgc2V0IHZhcnMoY29tbWVudHMpICRjb21tZW50cwotICAgICAgICAgfQotICAgICAgfQotICAgICAgaWYge1tpbmZvIGV4aXN0cyB1Y29tbWVudHNdfSB7Ci0gICAgICAgICBpZiB7JHVjb21tZW50cyA9PSAiIn0gewotICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKHVjb21tZW50cyldfSB7Ci0gICAgICAgICAgICAgICB1bnNldCB2YXJzKHVjb21tZW50cykKLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBzZXQgdmFycyh1Y29tbWVudHMpICR1Y29tbWVudHMKLSAgICAgICAgIH0KLSAgICAgIH0KLSAgICAgIHNldCBmY29tbWFuZHMgW0ZGX05PVlVTOjppbnNlcnRfY29tbWVudHNdIAotICAgICAgYXBwZW5kIGZjb21tYW5kcyAkY29tbWFuZHMKLQotICAgICAgaWYgeyR2YXJzKGNvZGVnZW4pfSB7Ci0gICAgICAgICByZXR1cm4gJGZjb21tYW5kcwotICAgICAgfSBlbHNlIHsKLSAgICAgICAgICB1cGxldmVsICMwIGV2YWwgJGNvbW1hbmRzCi0gICAgICB9Ci0KLSAgIH0KLQotICAgcHJvYyBydW5fcGxhY2Uge3tmb3JtYXQgMX19IHsKLQotICAgICAgZ2xvYmFsIHZhcnMKLSAgICAgIGdsb2JhbCBlbnYKLSAgICAgIGdsb2JhbCBlcnJvcnMKLQotICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKHBhcmVudCldICYmICgkdmFycyhwYXJlbnQpID09ICJyYyIpfSB7Ci0gICAgICAgICBzZXQgdmFycyhzdGVwKSByY3AKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgICBpZiB7JHZhcnMoc3RlcCkgIT0gInBhcnRpdGlvbl9wbGFjZSJ9IHsKLSAgICAgICAgICAgIHNldCB2YXJzKHN0ZXApIHBsYWNlCi0gICAgICAgICB9Ci0gICAgICB9Ci0gICAgICBzZXQgY29tbWFuZHMgIiIKLSMgICAgICBhcHBlbmQgY29tbWFuZHMgInNldCB2YXJzKHN0ZXApICR2YXJzKHN0ZXApXG4iCi0KLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICMgSW5pdGlhbGl6ZSBzdGVwIC4uLgotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgc2V0IGNvbW1hbmQgW0ZGX05PVlVTOjppbml0aWFsaXplX3N0ZXAgcGxhY2VdCi0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGX05PVlVTOjppbnNlcnRfY29tbWVudHNdIAotICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLGluaXRpYWxpemVfc3RlcCAkY29tbWFuZF0KLQotICAgICAgYXBwZW5kIGNvbW1hbmRzICJwdXRzIFwiPEZGPiBSVU5OSU5HIFBMQUNFTUVOVCAuLi5cIlxuIgotCi0gICAgICBpZiB7JHZhcnModmVyYm9zZSl9IHsKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiI1xuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjIFJVTk5JTkcgUExBQ0VNRU5UXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiNcbiIKLSAgICAgIH0KLQotICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKHBhcnRpdGlvbl9saXN0KV0gJiYgKCR2YXJzKHN0ZXApICE9ICJwYXJ0aXRpb25fcGxhY2UiKSAmJiBcCi0gICAgICAgICAgKChbbHNlYXJjaCAkdmFycyhwYXJ0aXRpb25fbGlzdCkgJHZhcnMoZGVzaWduKV0gPT0gLTEpICYmICR2YXJzKGVuYWJsZV9mbGV4aWxtKSl9IHsKLSAgICAgICAgIHNldCBjb21tYW5kICIiCi0gICAgICAgICBhcHBlbmQgY29tbWFuZCAic2V0X2RiIG9wdF9oaWVyX29wdF9zdGFnZSBwcmVfY3RzXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksc2V0X2hpZXJfbW9kZSAkY29tbWFuZF0KLSAgICAgIH0KLQotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgIyBMb2FkIG9wdGlvbmFsIHByZSBwbGFjZW1lbnQgZmlsZSAocGx1Zy1pbikKLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLQotICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6c291cmNlX3BsdWcgcHJlX3BsYWNlX3RjbF0KLQotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgIyBSdW4gc3RhbmRhcmQgY2VsbCBwbGFjZW1lbnQgb3IgbG9hZCBwbGFjZW1lbnQgcGx1Zy1pbgotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCi0gICAgICBzZXQgY29tbWFuZCAiIgotICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKHBsYWNlX3RjbCldfSB7Ci0gICAgICAgICAgaWYge1tmaWxlIGV4aXN0cyAkdmFycyhwbGFjZV90Y2wpXX0gewotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgW0ZGOjpzb3VyY2VfcGx1ZyBwbGFjZV90Y2xdCi0gICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHNldCBlcnJvcnMoJHZhcnMoZXJyb3JfY291bnQpKSAiUGx1Zy1pbiB2YXJzKHBsYWNlX3RjbCkgZGVmaW5lZCBidXQgdGhlIGZpbGUgZG9lcyBub3QgZXhpc3QiCi0gICAgICAgICAgICBpbmNyIHZhcnMoZXJyb3JfY291bnQpCi0jICAgICAgICAgICAgc2V0IHZhcnMoYWJvcnQpIDEKLSAgICAgICAgICB9Ci0gICAgICB9IGVsc2UgewotICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKHNkcF9maWxlcyldfSB7Ci0gICAgICAgICAgICBmb3JlYWNoIGZpbGUgJHZhcnMoc2RwX2ZpbGVzKSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiI3JlYWRfc2RwX2ZpbGUgLWZpbGUgJGZpbGUgLWhpZXJfcGF0aCA8aW5zdGFuY2U+IC1vcmlnaW4gPHggeT4gLWxlZnRfb3Zlcl9ncm91cCA8dHJ1ZSB8IGZhbHNlPlxuIgotICAgICAgICAgICAgfQotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiNwbGFuX2Rlc2lnbiAtdXNlcl9zZHBfZ3JvdXBcbiIKLSAgICAgICAgIH0KLSAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhwYXJlbnQpXSAmJiAoJHZhcnMocGFyZW50KSA9PSAicmMiKX0gewotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgInBsYWNlX2Rlc2lnbiBcbiIKLSAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBpZiB7JHZhcnMocGxhY2Vfb3B0X2Rlc2lnbil9IHsKLSMgICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoaGllcildfSB7Ci0jICAgICAgICAgICAgICAgICAgaWYgeygkdmFycyh0b3ApICYmICR2YXJzKGVuYWJsZV9mbGV4aWxtKSl9IHsKLSMgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAicGxhY2VfZGVzaWduICIKLSMgICAgICAgICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMobm9fcHJlX3BsYWNlX29wdCldICYmICR2YXJzKG5vX3ByZV9wbGFjZV9vcHQpfSB7Ci0jICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAtbm9fcHJlX3BsYWNlX29wdCIKLSMgICAgICAgICAgICAgICAgICAgICB9Ci0jICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIlxuIgotIyAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0jICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgInBsYWNlX29wdF9kZXNpZ24gLXJlcG9ydF9kaXIgJHZhcnMocnB0X2RpcikgLXJlcG9ydF9wcmVmaXggJHZhcnMoc3RlcClcbiIKLSMgICAgICAgICAgICAgICAgICB9Ci0jICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJwbGFjZV9vcHRfZGVzaWduIC1yZXBvcnRfZGlyICR2YXJzKHJwdF9kaXIpIC1yZXBvcnRfcHJlZml4ICR2YXJzKHN0ZXApXG4iCi0jICAgICAgICAgICAgICAgfQotCi0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgInBsYWNlX2Rlc2lnbiAiCi0gICAgICAgICAgICAgICBpZiB7KCR2YXJzKHN0ZXApID09ICJwYXJ0aXRpb25fcGxhY2UiKSAmJiAkdmFycyh1c2VfZmxleG1vZGVscyl9IHsgIAotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAtbm9fcHJlX3BsYWNlX29wdCIKLSAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMobm9fcHJlX3BsYWNlX29wdCldICYmICR2YXJzKG5vX3ByZV9wbGFjZV9vcHQpfSB7Ci0gICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiIC1ub19wcmVfcGxhY2Vfb3B0IgotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIlxuIgotICAgICAgICAgICAgfQotICAgICAgICAgfQotICAgICAgfQotCi0gICAgICBpZiB7W2luZm8gZXhpc3QgdmFycyhwYXJlbnQpXSAmJiAoJHZhcnMocGFyZW50KSAhPSAicmMiKSAmJiAgJHZhcnMocmMpICYmICR2YXJzKGVuYWJsZV9yY3ApfSB7Ci0gICAgICAgICBzZXQgY29tbWFuZCAiZWNvX3BsYWNlXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksZWNvX3BsYWNlICRjb21tYW5kXQotICAgICAgfSBlbHNlIHsKLSMgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoaGllcl9jYXNlKV0gJiYgW3JlZ2V4cCAiXjEiICR2YXJzKGhpZXJfY2FzZSldfSB7Ci0jICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHBsYWNlX2Rlc2lnbiAicGxhY2VfZGVzaWduIC1ub19wcmVfcGxhY2Vfb3B0XG4iXQotIyAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCkscGxhY2VfZGVzaWduICRjb21tYW5kXQotIyAgICAgICAgIH0KLSAgICAgIH0KLQotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgIyBMb2FkIG9wdGlvbmFsIHBvc3QgcGxhY2VtZW50IGZpbGUgKHBsdWctaW4pCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0KLSAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OnNvdXJjZV9wbHVnIHBvc3RfcGxhY2VfdGNsIDBdCi0KLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICMgQWRkIHRpZSBjZWxscyBmb3IgbG9naWMgMC8xIG5ldHMKLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLQotICAgICAgc2V0IGNvbW1hbmQgW0ZGX05PVlVTOjphZGRfdGllX2NlbGxzIGZhbHNlIHRydWVdCi0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksYWRkX3RpZV9jZWxscyAkY29tbWFuZF0KLQotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgIyBDaGVjayBwb3N0LXBsYWNlIHRpbWluZwotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgaWYgeyFbcmVnZXhwICJwbGFjZV9vcHRfZGVzaWduIiAkY29tbWFuZHNdICYmICgkdmFycyhzdGVwKSA9PSAicGxhY2UiKX0gewotICAgICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycyh0aW1lX2Rlc2lnbl9vcHRpb25zLHNldHVwKV19IHsKLSAgICAgICAgICAgIHNldCBjb21tYW5kICJ0aW1lX2Rlc2lnbiAtcHJlX2N0cyAtcmVwb3J0X3ByZWZpeCBwbGFjZSAtcmVwb3J0X2RpciAkdmFycyhycHRfZGlyKVxuIgotICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHNldCBjb21tYW5kIFtmb3JtYXQgInRpbWVfZGVzaWduICVzIC1wcmVfY3RzIC1yZXBvcnRfcHJlZml4IHBsYWNlIC1yZXBvcnRfZGlyICR2YXJzKHJwdF9kaXIpXG4iICR2YXJzKHRpbWVfZGVzaWduX29wdGlvbnMsc2V0dXApXQotICAgICAgICAgfQotICAgICAgfQotIyAgICAgIGlmIHsoJHZhcnMoc3RlcCkgPT0gInBhcnRpdGlvbl9wbGFjZSIpICYmICR2YXJzKHVzZV9mbGV4bW9kZWxzKX0gewotIyAgICAgICAgIGlmIHshW3JlZ2V4cCAicHJvdG8iICRjb21tYW5kXX0gewotIyAgICAgICAgICAgIHJlZ3N1YiAidGltZV9kZXNpZ24iICRjb21tYW5kICJ0aW1lX2Rlc2lnbiAtcHJvdG8iIGNvbW1hbmQKLSMgICAgICAgICB9Ci0jICAgICAgfQotIyAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSx0aW1lX2Rlc2lnbiAkY29tbWFuZF0KLQotICAgICAgaWYgeygkdmFycyh1c2VyX21vZGUpID09ICJoaWVyIikgJiYgJHZhcnMocGxhY2Vfb3B0X2Rlc2lnbikgJiYgKCR2YXJzKHN0ZXApICE9ICJwYXJ0aXRpb25fcGxhY2UiKX0gewotICAgICAgICAgc2V0IHB0biBbZmlsZSB0YWlsIFtwd2RdXQotICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKHBhcnRpdGlvbl9saXN0KV0gJiYgKFtsc2VhcmNoICR2YXJzKHBhcnRpdGlvbl9saXN0KSAkcHRuXSAhPSAtMSl9IHsKLSAgICAgICAgICAgIGlmIHskdmFycyhlbmFibGVfZmxleGlsbSl9IHsKLSAgICAgICAgICAgICAgIHNldCBjb21tYW5kICJ3cml0ZV9pbG0gLW9wdF9zdGFnZSBwcmVjdHMgLXR5cGVfZmxleF9pbG0gZmxleElsbSAtdG9fZGlyIFxbZ2V0X2RiIGRlc2lnbnMgLm5hbWVcXS5mbGV4aWxtXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksd3JpdGVfZmxleF9pbG0gJGNvbW1hbmRdCi0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgaWYgeyEkdmFycyhibGFja19ib3gpfSB7Ci0gICAgICAgICAgICAgICAgICBpZiB7W3N0cmluZyBjb21wYXJlIC1ub2Nhc2UgJHZhcnMoZGJzX2Zvcm1hdCkgImZlIl09PTB9IHsKLSAgICAgICAgICAgICAgICAgICAgIHNldCBjb21tYW5kICJ3cml0ZV9pbG0gLW9wdF9zdGFnZSBwcmVjdHMgLXR5cGVfZmxleF9pbG0gaWxtIC1tb2RlbF90eXBlIHRpbWluZyAtdG9fZGlyIFxbZ2V0X2RiIGRlc2lnbnMgLm5hbWVcXS5pbG0gLWhvbGRcbiIKLSAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICBzZXQgY29tbWFuZCAid3JpdGVfaWxtIC1vcHRfc3RhZ2UgcHJlY3RzIC10eXBlX2ZsZXhfaWxtIGlsbSAtbW9kZWxfdHlwZSB0aW1pbmcgLW9hX2NlbGx2aWV3IHskdmFycyhvYV9wYXJ0aXRpb25fbGliKSBcW2dldF9kYiBkZXNpZ25zIC5uYW1lXF0gaWxtfVxuIgotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgfSAKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSx3cml0ZV9pbG0gJGNvbW1hbmRdCi0gICAgICAgICAgICB9Ci0gICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgaWYgeyR2YXJzKGVuYWJsZV9mbGV4aWxtKX0gewotICAgICAgICAgICAgICAgIyBSZS1hc3NpZ24gcGlucyBiYXNlZCBvbiBuZXcgbmV0bGlzdCBjaGFuZ2VzCi0gICAgICAgICAgICAgICBpZiB7W2xpbmRleCBbc3BsaXQgJHZhcnModmVyc2lvbikgIi4iXSAgMF0gPCAxNn0gewotICAgICAgICAgICAgICAgICBzZXQgY29tbWFuZCAiIgotICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAicm91dGVfdHJpYWxcbiIKLSAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHRyaWFsX3JvdXRlMSAkY29tbWFuZF0KLSAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgIHNldCBjb21tYW5kICIiCi0gICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJyb3V0ZV9lYXJseV9nbG9iYWxcbiIKLSAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLGVhcmx5X3JvdXRlMSAkY29tbWFuZF0KLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIHNldCBjb21tYW5kICIiCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAidGltZV9kZXNpZ24gLXByZV9jdHMgLXJlcG9ydF9kaXIgJHZhcnMocnB0X2RpcikgLXJlcG9ydF9wcmVmaXggYXNzZW1ibGVfZmxleGlsbVxuIgotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHRpbWVfZGVzaWduICRjb21tYW5kXQotICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICBzZXQgY29tbWFuZCAiIgotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgImFzc2lnbl9wYXJ0aXRpb25fcGluc1xuIgotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLGFzc2lnbl9wYXJ0aXRpb25fcGlucyAkY29tbWFuZF0KLSAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgIiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJjaGVja19waW5fYXNzaWdubWVudFxuIgotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLGNoZWNrX3Bpbl9hc3NpZ25tZW50ICRjb21tYW5kXQotCi0gICAgICAgICAgICAgICBpZiB7W2xpbmRleCBbc3BsaXQgJHZhcnModmVyc2lvbikgIi4iXSAgMF0gPCAxNn0gewotICAgICAgICAgICAgICAgICBzZXQgY29tbWFuZCAiIgotICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAic2V0X2RiIHJvdXRlX3RyaWFsX2hvbm9yX3BpbiB0cnVlXG4iCi0gICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxzZXRfdHJpYWxfcm91dGVfbW9kZTIgJGNvbW1hbmRdCi0gICAgICAgICAgICAgICAgIHNldCBjb21tYW5kICIiCi0gICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJyb3V0ZV90cmlhbFxuIgotICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksdHJpYWxfcm91dGUyICRjb21tYW5kXQotICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgIiIKLSAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgInNldF9kYiByb3V0ZV9lYXJseV9nbG9iYWxfaG9ub3JfcGFydGl0aW9uX3BpbiAuXG4iCi0gICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxzZXRfcm91dGVfbW9kZTIgJGNvbW1hbmRdCi0gICAgICAgICAgICAgICAgIHNldCBjb21tYW5kICIiCi0gICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJyb3V0ZV9lYXJseV9nbG9iYWxcbiIKLSAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLGVhcmx5X3JvdXRlMiAkY29tbWFuZF0KLSAgICAgICAgICAgICAgIH0gICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgIiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJjcmVhdGVfdGltaW5nX2J1ZGdldFxuIgotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLGNyZWF0ZV90aW1pbmdfYnVkZ2V0ICRjb21tYW5kXQotICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgIHNldCBjb21tYW5kICIiCi0gICAgICAgICAgICAgICBzZXQgZGlycyAiIgotICAgICAgICAgICAgICAgZm9yZWFjaCBibG9jayAkdmFycyhwYXJ0aXRpb25fbGlzdCkgewotICAgICAgICAgICAgICAgICAgYXBwZW5kIGRpcnMgIlxcXG4gICAtZ29sZGVuX2Jsb2NrX2RpciAuLi8kYmxvY2svJHZhcnMoZGJzX2RpcikvcGxhY2UuZW5jICIKLSAgICAgICAgICAgICAgIH0KLSMgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAidXBkYXRlX3BhcnRpdGlvbiBcXFxuICAgLWZsZXhfaWxtX2VjbyAkZGlycyBcXFxuICAgLWZsZXhfaWxtX2RpciAuLi8uLi8kdmFycyhwYXJ0aXRpb25fZGlyKV9QUkVDVFMvIFxcXG4gICAtcG9zdF9lY29fc3VmZml4IHBvc3RfZWNvIC1waW5fbG9jYXRpb25cbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJ1cGRhdGVfcGFydGl0aW9uIFxcXG4gICAtZmxleF9pbG1fZWNvICRkaXJzIFxcXG4gICAtZmxleF9pbG1fZGlyIC4uLy4uLyR2YXJzKHBhcnRpdGlvbl9kaXIpX0ZMRVhJTE0vIFxcXG4gICAtcG9zdF9lY29fc3VmZml4IHBvc3RfZWNvIC1waW5fbG9jYXRpb25cbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSx1cGRhdGVfcGFydGl0aW9uICRjb21tYW5kXQotICAgICAgICAgICAgfQotICAgICAgICAgfQotICAgICAgfQotCi0gICAgICBpZiB7JHZhcnMoY29kZWdlbil9IHsKLSAgICAgICAgIHJldHVybiAkY29tbWFuZHMKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgICB1cGxldmVsICMwIGV2YWwgJGNvbW1hbmRzCi0gICAgICB9Ci0gICB9Ci0KLSAgIHByb2MgcnVuX3ByZWN0cyB7e2Zvcm1hdCAxfX0gewotCi0gICAgICBnbG9iYWwgdmFycwotICAgICAgZ2xvYmFsIGVudgotICAgICAgZ2xvYmFsIGVycm9ycwotICAgICAgZ2xvYmFsIHdhcm5pbmdzCi0KLSAgICAgIGlmIHskdmFycyhwbGFjZV9vcHRfZGVzaWduKX0gewotIyAgICAgICAgIGlmIHshKCgkdmFycyh1c2VyX21vZGUpID09ICJoaWVyIikgJiYgKFtmaWxlIHRhaWwgW3B3ZF1dID09ICR2YXJzKHRvcF9jZWxsKSAmJiAkdmFycyhlbmFibGVfZmxleGlsbSkpKX0gewotICAgICAgICAgICAgcmV0dXJuICIiCi0jICAgICAgICAgfSBlbHNlIHsKLSMgICAgICAgICAgICBzZXQgd2FybmluZ3MoJHZhcnMod2FybmluZ19jb3VudCkpICJGZWF0dXJlIHZhcnMocGxhY2Vfb3B0X2Rlc2lnbikgbm90IHN1cHBvcnQgZm9yIHRvcCBsZXZlbCBpbXBsZW1lbnRhdGlvbiB3aGVuIHZhcnMoZW5hYmxlX2ZsZXhpbG0pIGlzIHRydWUiCi0jICAgICAgICAgICAgaW5jciB2YXJzKHdhcm5pbmdfY291bnQpCi0jICAgICAgICAgfQotICAgICAgfQotCi0gICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMocGFyZW50KV0gJiYgKCR2YXJzKHBhcmVudCkgPT0gInJjIil9IHsKLSAgICAgICAgIHNldCB2YXJzKHN0ZXApIHJjcAotICAgICAgfSBlbHNlIHsKLSAgICAgICAgIHNldCB2YXJzKHN0ZXApIHByZWN0cwotICAgICAgfQotCi0gICAgICBzZXQgY29tbWFuZHMgIiIKLSMgICAgICBhcHBlbmQgY29tbWFuZHMgInNldCB2YXJzKHN0ZXApICR2YXJzKHN0ZXApXG4iCi0KLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICMgSW5pdGlhbGl6ZSBzdGVwIC4uLgotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCi0gICAgICBzZXQgY29tbWFuZCBbRkZfTk9WVVM6OmluaXRpYWxpemVfc3RlcCBwcmVjdHNdCi0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGX05PVlVTOjppbnNlcnRfY29tbWVudHNdIAotICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLGluaXRpYWxpemVfc3RlcCAkY29tbWFuZF0KLQotICAgICAgYXBwZW5kIGNvbW1hbmRzICJwdXRzIFwiPEZGPiBSVU5OSU5HIFBSRS1DVFMgT1BUSU1JWkFUSU9OIC4uLlwiXG4iCi0KLSAgICAgIGlmIHskdmFycyh2ZXJib3NlKX0gewotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgUlVOTklORyBQUkUtQ1RTIE9QVElNSVpBVElPTlxuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjXG4iCi0gICAgICB9Ci0KLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICMgTG9hZCBvcHRpb25hbCBwcmUgQ1RTIGZpbGUgKHBsdWctaW4pCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0KLSAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OnNvdXJjZV9wbHVnIHByZV9wcmVjdHNfdGNsXQotCi0gICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMocGFyZW50KV0gJiYgKCR2YXJzKHBhcmVudCkgPT0gInJjIil9IHsKLSAgICAgICAgIHJldHVybiAkY29tbWFuZHMKLSAgICAgIH0KLQotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgIyBSdW4gcHJlLUNUUyBvcHRpbWl6YXRpb24KLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLQotICAgICAgaWYgeyhbaW5mbyBleGlzdHMgdmFycyhwYXJ0aXRpb25fbGlzdCldKSAmJiAoW2ZpbGUgdGFpbCBbZmlsZSBkaXJuYW1lIFtwd2RdXV0gPT0gIiR2YXJzKHBhcnRpdGlvbl9kaXIpIil9IHsKLSAgICAgICAgIHNldCBwdG4gW2ZpbGUgdGFpbCBbcHdkXV0KLSAgICAgICAgIGlmIHsoW2xzZWFyY2ggJHZhcnMocGFydGl0aW9uX2xpc3QpICRwdG5dID09IC0xKSAmJiAkdmFycyhlbmFibGVfZmxleGlsbSl9IHsKLSAgICAgICAgICMgVG9wIGxldmVsIGZsb3cgZm9yIGZsZXhJbG0KLSAgICAgICAgICAgICMgUmVhZCBQb3dlciBJbnRlbnQgaGVyZSAuLi4KLSAgICAgICAgICAgIHNldCBjb21tYW5kICIiCi0gICAgICAgICAgICBmb3JlYWNoIGJsb2NrICR2YXJzKHBhcnRpdGlvbl9saXN0KSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAic2V0X3BhcnRpdGlvbl9waW5fc3RhdHVzIC1wYXJ0aXRpb24gJGJsb2NrIC1waW5zICogLXN0YXR1cyB1bnBsYWNlZFxuIgotICAgICAgICAgICAgfQotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHNldF9wYXJ0aXRpb25fcGluX3N0YXR1cyAkY29tbWFuZF0KLSAgICAgICAgICAgCi0gICAgICAgICAgICBzZXQgY29tbWFuZCAiIgotICAgICAgICAgICAgaWYge1tsaW5kZXggW3NwbGl0ICR2YXJzKHZlcnNpb24pICIuIl0gIDBdIDwgMTZ9IHsKLSAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgInNldF9kYiByb3V0ZV90cmlhbF9ob25vcl9waW4gZmFsc2VcbnNldF9kYiByb3V0ZV90cmlhbF9oYW5kbGVfcGFydGl0aW9uX2NvbXBsZXggdHJ1ZVxuIgotICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksc2V0X3RyaWFsX3JvdXRlX21vZGUxICRjb21tYW5kXQotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgInNldF9kYiByb3V0ZV9lYXJseV9nbG9iYWxfaG9ub3JfcGFydGl0aW9uX3BpbiB7fVxuc2V0X2RiIHJvdXRlX2Vhcmx5X2dsb2JhbF9ob25vcl9wYXJ0aXRpb25fZmVuY2UgLlxuIgotICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksc2V0X3JvdXRlX21vZGUxICRjb21tYW5kXQotICAgICAgICAgICAgfQotICAgICAgICAgICAgCi0gICAgICAgICAgICBzZXQgY29tbWFuZCAiIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgInNldF9kYiBvcHRfaGllcl9vcHRfc3RhZ2UgcHJlQ1RTXG4iCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksc2V0X2hpZXJfbW9kZSAkY29tbWFuZF0KLSAgICAgICAgICAgIAotIyAgICAgICAgICAgIHNldCBjb21tYW5kICIiCi0jICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgInNldF9kYiBvcHRfaGFuZGxlX3BhcnRpdGlvbl9jb21wbGV4IHRydWVcbiIKLSMgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksc2V0X29wdF9tb2RlICRjb21tYW5kXQotICAgICAgICAgICAgCi0jICAgICAgICAgICAgc2V0IGNvbW1hbmQgIiIKLSMgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAib3B0X2Rlc2lnbiAtcHJlX2N0cyAtcmVwb3J0X2RpciAkdmFycyhycHRfZGlyKSAtcmVwb3J0X3ByZWZpeCBmbGV4aWxtXG4iCi0jICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLG9wdF9kZXNpZ24gJGNvbW1hbmRdCi0gICAgICAgICAgICAKLSAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAjIE5vbiBmbGV4SWxtIHRvcCBmbG93IGFuZCBwYXJ0aXRpb24gZmxvdwotICAgICAgICAgICBzZXQgY29tbWFuZCAib3B0X2Rlc2lnbiAtcHJlX2N0cyAtcmVwb3J0X2RpciAkdmFycyhycHRfZGlyKSAtcmVwb3J0X3ByZWZpeCBwcmVjdHNcbiIKLSAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLG9wdF9kZXNpZ24gJGNvbW1hbmRdCi0gICAgICAgICB9Ci0gICAgICB9IGVsc2UgewotICAgICAgIyBGbGF0IGZsb3cgCi0gICAgICAgIHNldCBjb21tYW5kICJvcHRfZGVzaWduIC1wcmVfY3RzIC1yZXBvcnRfZGlyICR2YXJzKHJwdF9kaXIpIC1yZXBvcnRfcHJlZml4IHByZWN0c1xuIgotICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksb3B0X2Rlc2lnbiAkY29tbWFuZF0KLSAgICAgIH0KLQotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgIyBMb2FkIG9wdGlvbmFsIHBvc3QgQ1RTIGZpbGUgKHBsdWctaW4pCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0KLSAgICAgIHNldCBjb21tYW5kICIiCi0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjpzb3VyY2VfcGx1ZyBwb3N0X3ByZWN0c190Y2wgMF0KLQotICAgICAgaWYgeygkdmFycyh1c2VyX21vZGUpID09ICJoaWVyIil9IHsKLSAgICAgICAgIHNldCBwdG4gW2ZpbGUgdGFpbCBbcHdkXV0KLSAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhwYXJ0aXRpb25fbGlzdCldICYmIChbbHNlYXJjaCAkdmFycyhwYXJ0aXRpb25fbGlzdCkgJHB0bl0gIT0gLTEpICYmICEkdmFycyhwbGFjZV9vcHRfZGVzaWduKX0gewotICAgICAgICAgICAgaWYgeyR2YXJzKGVuYWJsZV9mbGV4aWxtKX0gewotICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgIndyaXRlX2lsbSAtb3B0X3N0YWdlIHByZWN0cyAtdHlwZV9mbGV4X2lsbSBmbGV4SWxtIC10b19kaXIgXFtnZXRfZGIgZGVzaWducyAubmFtZVxdLmZsZXhpbG1cbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxjcmVhdGVfZmxleF9pbG0gJGNvbW1hbmRdCi0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgaWYgeyEkdmFycyhibGFja19ib3gpfSB7Ci0gICAgICAgICAgICAgICAgICBpZiB7W3N0cmluZyBjb21wYXJlIC1ub2Nhc2UgJHZhcnMoZGJzX2Zvcm1hdCkgImZlIl09PTB9IHsKLSAgICAgICAgICAgICAgICAgICAgIHNldCBjb21tYW5kICJ3cml0ZV9pbG0gLW9wdF9zdGFnZSBwcmVjdHMgLXR5cGVfZmxleF9pbG0gaWxtIC10b19kaXIgXFtnZXRfZGIgZGVzaWducyAubmFtZVxdLmlsbVxuIgotICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgIHNldCBjb21tYW5kICJ3cml0ZV9pbG0gLW9wdF9zdGFnZSBwcmVjdHMgLXR5cGVfZmxleF9pbG0gaWxtIC1vYV9jZWxsdmlldyB7JHZhcnMob2FfcGFydGl0aW9uX2xpYikgXFtnZXRfZGIgZGVzaWducyAubmFtZVxdIGlsbX1cbiIKLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIH0gCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksd3JpdGVfaWxtICRjb21tYW5kXQotICAgICAgICAgICAgfQotICAgICAgICAgfSBlbHNlIHsgOyAjIFRvcCBsZXZlbCB1bmNvbmRpdGlvbmFsIChubyBwbGFjZV9vcHRfZGVzaWduIHN1cHBvcnQpIC4uLgotICAgICAgICAgICAgaWYgeyR2YXJzKGVuYWJsZV9mbGV4aWxtKX0gewotICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgIiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJ3cml0ZV9kYiAkdmFycyhkYnNfZGlyKS9wcmVjdHNfZmxleGlsbS5lbmNcbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxzYXZlX2Rlc2lnbiAkY29tbWFuZF0KLQotICAgICAgICAgICAgICAgIyBSZS1hc3NpZ24gcGlucyBiYXNlZCBvbiBuZXcgbmV0bGlzdCBjaGFuZ2VzCi0gICAgICAgICAgICAgICBpZiB7W2xpbmRleCBbc3BsaXQgJHZhcnModmVyc2lvbikgIi4iXSAgMF0gPCAxNn0gewotICAgICAgICAgICAgICAgICBzZXQgY29tbWFuZCAiIgotICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAicm91dGVfdHJpYWxcbiIKLSAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHRyaWFsX3JvdXRlMSAkY29tbWFuZF0KLSAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgIHNldCBjb21tYW5kICIiCi0gICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJyb3V0ZV9lYXJseV9nbG9iYWxcbiIKLSAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLGVhcmx5X3JvdXRlMSAkY29tbWFuZF0KLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgIiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJ0aW1lX2Rlc2lnbiAtcHJlX2N0cyAtcmVwb3J0X2RpciAkdmFycyhycHRfZGlyKSAtcmVwb3J0X3ByZWZpeCBwcmVjdHNfZmxleGlsbVxuIgotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHRpbWVfZGVzaWduICRjb21tYW5kXQotICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICBzZXQgY29tbWFuZCAiIgotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgImFzc2lnbl9wYXJ0aXRpb25fcGluc1xuIgotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLGFzc2lnbl9wYXJ0aXRpb25fcGlucyAkY29tbWFuZF0KLSAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgIiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJjaGVja19waW5fYXNzaWdubWVudFxuIgotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLGNoZWNrX3Bpbl9hc3NpZ25tZW50ICRjb21tYW5kXQotICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICBzZXQgY29tbWFuZCAiIgotICAgICAgICAgICAgICAgaWYge1tsaW5kZXggW3NwbGl0ICR2YXJzKHZlcnNpb24pICIuIl0gIDBdIDwgMTZ9IHsKLSAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgInNldF9kYiByb3V0ZV90cmlhbF9ob25vcl9waW4gdHJ1ZVxuIgotICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksc2V0X3RyaWFsX3JvdXRlX21vZGUyICRjb21tYW5kXQotICAgICAgICAgICAgICAgICBzZXQgY29tbWFuZCAiIgotICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAicm91dGVfdHJpYWxcbiIKLSAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHRyaWFsX3JvdXRlMiAkY29tbWFuZF0KLSAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJzZXRfZGIgcm91dGVfZWFybHlfZ2xvYmFsX2hvbm9yX3BhcnRpdGlvbl9waW4gLlxuIgotICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksc2V0X3JvdXRlX21vZGUyICRjb21tYW5kXQotICAgICAgICAgICAgICAgICBzZXQgY29tbWFuZCAiIgotICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAicm91dGVfZWFybHlfZ2xvYmFsXG4iCi0gICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxlYXJseV9yb3V0ZTIgJGNvbW1hbmRdCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgIAotIyAgICAgICAgICAgICAgIHNldCBjb21tYW5kICIiCi0jICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgInNldF9kYiBidWRnZXRfZW5hYmxlX210X2J1ZGdldGluZyB0cnVlXG4iCi0jICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHNldF9idWRnZXRpbmdfbW9kZSAkY29tbWFuZF0KLQotICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgIiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJjcmVhdGVfdGltaW5nX2J1ZGdldFxuIgotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLGNyZWF0ZV90aW1pbmdfYnVkZ2V0ICRjb21tYW5kXQotICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICBzZXQgY29tbWFuZCAiIgotICAgICAgICAgICAgICAgc2V0IGRpcnMgIiIKLSAgICAgICAgICAgICAgIGZvcmVhY2ggYmxvY2sgJHZhcnMocGFydGl0aW9uX2xpc3QpIHsKLSAgICAgICAgICAgICAgICAgIGlmIHskdmFycyhwbGFjZV9vcHRfZGVzaWduKX0gewotICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGRpcnMgIlxcXG4gICAtZ29sZGVuX2Jsb2NrX2RpciAuLi8kYmxvY2svJHZhcnMoZGJzX2RpcikvcGxhY2UuZW5jICIKLSAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICBhcHBlbmQgZGlycyAiXFxcbiAgIC1nb2xkZW5fYmxvY2tfZGlyIC4uLyRibG9jay8kdmFycyhkYnNfZGlyKS9wcmVjdHMuZW5jICIKLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIH0KLSMgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAidXBkYXRlX3BhcnRpdGlvbiBcXFxuICAgLWZsZXhfaWxtX2VjbyAkZGlycyBcXFxuICAgLWZsZXhfaWxtX2RpciAuLi8uLi8kdmFycyhwYXJ0aXRpb25fZGlyKV9QUkVDVFMvIFxcXG4gICAtcG9zdF9lY29fc3VmZml4IHBvc3RfZWNvIC1waW5fbG9jYXRpb25cbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJ1cGRhdGVfcGFydGl0aW9uIFxcXG4gICAtZmxleF9pbG1fZWNvICRkaXJzIFxcXG4gICAtZmxleF9pbG1fZGlyIC4uLy4uLyR2YXJzKHBhcnRpdGlvbl9kaXIpX0ZMRVhJTE0vIFxcXG4gICAtcG9zdF9lY29fc3VmZml4IHBvc3RfZWNvIC1waW5fbG9jYXRpb25cbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSx1cGRhdGVfcGFydGl0aW9uICRjb21tYW5kXQotICAgICAgICAgICAgfQotICAgICAgICAgfQotICAgICAgfQotCi0gICAgICBpZiB7JHZhcnMoY29kZWdlbil9IHsKLSAgICAgICAgIHJldHVybiAkY29tbWFuZHMKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgdXBsZXZlbCAjMCBldmFsICRjb21tYW5kcwotICAgICAgfQotICAgfQotCi0gICBwcm9jIHJ1bl9jdHMge3tmb3JtYXQgMX19IHsKLQotICAgICAgZ2xvYmFsIHZhcnMKLSAgICAgIGdsb2JhbCBlcnJvcnMKLQotICAgICAgaWYgeyR2YXJzKHNraXBfY3RzKX0gewotICAgICAgICAgcmV0dXJuICIiCi0gICAgICB9Ci0KLSAgICAgIHNldCB2YXJzKHN0ZXApIGN0cwotICAgICAgc2V0IGNvbW1hbmRzICIiCi0gICAgICBzZXQgdWNvbW1lbnRzICIiCi0jICAgICAgYXBwZW5kIGNvbW1hbmRzICJzZXQgdmFycyhzdGVwKSAkdmFycyhzdGVwKVxuIgotCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAjIEluaXRpYWxpemUgc3RlcCAuLi4KLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLQotICAgICAgc2V0IGNvbW1hbmQgW0ZGX05PVlVTOjppbml0aWFsaXplX3N0ZXAgY3RzXQotICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRl9OT1ZVUzo6aW5zZXJ0X2NvbW1lbnRzXSAKLSAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCBjdHMsaW5pdGlhbGl6ZV9zdGVwICRjb21tYW5kXQotCi0gICAgICBzZXQgdmFycyhvbmx5X29wdGlvbnMpIHRydWUKLQotICAgICAgaWYge1tyZWdleHAgIl5jY29wdCIgJHZhcnMoY3RzX2VuZ2luZSldfSB7Ci0gICAgICAgICBzZXQgY29tbWFuZCBbRkZfTk9WVVM6OmluaXRpYWxpemVfc3RlcCBwb3N0Y3RzXQotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kIHBvc3RjdHMsaW5pdGlhbGl6ZV9zdGVwICRjb21tYW5kXQotICAgICAgICAgaWYgeyR2YXJzKHBvc3RjdHNfc2V0dXBfaG9sZCl9IHsKLSAgICAgICAgICAgIHNldCBjb21tYW5kIFtGRl9OT1ZVUzo6aW5pdGlhbGl6ZV9zdGVwIHBvc3RjdHNfaG9sZF0KLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCBwb3N0Y3RzX2hvbGQsaW5pdGlhbGl6ZV9zdGVwICRjb21tYW5kXQotICAgICAgICAgfQotICAgICAgfQotCi0gICAgICBzZXQgdmFycyhvbmx5X29wdGlvbnMpIGZhbHNlCi0KLSAgICAgIGlmIHskdmFycyh0b3ApICYmICgkdmFycyh1c2VyX21vZGUpID09ICJoaWVyIikgJiYgKCR2YXJzKGhpZXJfZmxvd190eXBlKSA9PSAiMnBhc3MiKSAmJiAkdmFycyhlbmFibGVfZmxleGlsbSl9IHsKLSAgICAgICAgICMgUmVhZCBQb3dlciBJbnRlbnQgaGVyZSAuLi4KLSAgICAgICAgIHNldCBjb21tYW5kICIiCi0gICAgICAgICBmb3JlYWNoIHBhcnQgJHZhcnMocGFydGl0aW9uX2xpc3QpIHsKLSAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkcGFydCxpbG1fZGlyKV0gJiYgKCR2YXJzKGNvZGVnZW4pIHx8IFtmaWxlIGlzZGlyZWN0b3J5ICR2YXJzKCRwYXJ0LGlsbV9kaXIpXSl9IHsKLSAgICAgICAgICAgICAgIGlmIHtbbGluZGV4IFtzcGxpdCAkdmFycyh2ZXJzaW9uKSAiLiJdICAwXSA8PSAxMH0gewotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgInJlYWRfaWxtIC1jZWxsICRwYXJ0IC1kaXIgJHZhcnMoJHBhcnQsaWxtX2RpcilcbiIKLSAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgIGlmIHtbc3RyaW5nIGNvbXBhcmUgLW5vY2FzZSAkdmFycyhkYnNfZm9ybWF0KSAib2EiXT09MH0gewotICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgInJlYWRfaWxtIC1jZWxsICRwYXJ0IC1vYV9jZWxsdmlldyB7JHZhcnMob2FfcGFydGl0aW9uX2xpYikgXFtnZXRfZGIgZGVzaWducyAubmFtZVxdIGlsbX1cbiIKLSAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAicmVhZF9pbG0gLWNlbGwgJHBhcnQgLWRpcmVjdG9yeSAkdmFycygkcGFydCxpbG1fZGlyKVxuIgotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgaWYge1tzdHJpbmcgY29tcGFyZSAtbm9jYXNlICR2YXJzKGRic19mb3JtYXQpICJvYSJdPT0wfSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAicmVhZF9pbG0gLWNlbGwgJHBhcnRcbiIKLSAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAicmVhZF9pbG0gLWNlbGwgJHBhcnQgLWRpcmVjdG9yeSAuLi8kcGFydC8kcGFydC5pbG1cbiIKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0gICAgICAgICBpZiB7JGNvbW1hbmQgIT0gIiJ9IHsKLSMgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksc3BlY2lmeV9pbG0gIiRjb21tYW5kXG5zZXRfZGIgaWxtX2tlZXBfZmxhdHRlbiB0cnVlXG4iXQotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHNwZWNpZnlfaWxtICRjb21tYW5kXQotICAgICAgICAgfQotCi0gICAgICAgICBzZXQgY29tbWFuZCBbRkZfTk9WVVM6OmluaXRpYWxpemVfdGltaW5nIG1tbWNdCi0jICAgICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycyhjcGZfZmlsZSldIHx8IChbaW5mbyBleGlzdHMgdmFycyhjcGZfZmlsZSldICYmICEkdmFycyhjcGZfdGltaW5nKSkgfSB7Ci0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksaW5pdGlhbGl6ZV90aW1pbmcgJGNvbW1hbmRdCi0jICAgICAgICAgfSBlbHNlIHsKLSMgICAgICAgICAgICBzZXQgZGVmZXJfY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksaW5pdGlhbGl6ZV90aW1pbmcgJGNvbW1hbmRdIAotIyAgICAgICAgIH0KLSAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGX05PVlVTOjpsb2FkX3Bvd2VyX2ludGVudF0KLSAgICAgIH0KLQotICAgICAgYXBwZW5kIGNvbW1hbmRzICJwdXRzIFwiPEZGPiBSVU5OSU5HIENMT0NLIFRSRUUgU1lOVEhFU0lTIC4uLlwiXG4iCi0KLSAgICAgIGlmIHskdmFycyh2ZXJib3NlKX0gewotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgUlVOTklORyBDTE9DSyBUUkVFIFNZTlRIRVNJU1xuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjXG4iCi0gICAgICB9Ci0KLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICMgTG9hZCBwcmUtQ1RTIGZpbGUgKHBsdWctaW4pCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICBpZiB7JHZhcnMoY3RzX2VuZ2luZSkgPT0gImN0cyJ9IHsKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OnNvdXJjZV9wbHVnIHByZV9jdHNfdGNsXQotICAgICAgfQotCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAjIFJ1biBDVFMKLSAgICAgICMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSAgICAgICMgR2VuZXJhdGUgdGhlIGNsb2NrIHRyZWUgdXNpbmcgY2xvY2tEZXNpZ24gd2hpY2g6Ci0gICAgICAjIC0gbG9hZHMgdGhlIGNsb2NrIHNwZWNpZmljYXRpb24gZmlsZQotICAgICAgIyAtIHJlbW92ZXMgZXhpc3RpbmcgYnVmZmVycyBpbiB0aGUgY2xvY2sgdHJlZSAobm90IG1hcmtlZCBkb24ndCB0b3VjaCk7Ci0gICAgICAjICAgaWYgYSBjbG9jayB0cmVlIGhhcyBiZWVuIHByZXZpb3VzbHkgaW5zZXJ0ZWQsIHVzZSBjaGFuZ2VDbG9ja1N0YXR1cwotICAgICAgIyAgIHRvIHVuZml4IHRoZSB0cmVlIHNvIHRoYXQgaXQgY2FuIGJlIHJlbW92ZWQKLSAgICAgICMgLSB1bmZpeGVzIHRoZSBjbG9jayBuZXRzIGFmdGVyIHRyZWUgaW5zZXJ0aW9uCi0gICAgICAjIE5lZWQgdG8gbWFrZSBzdXJlIHRoZSBjbG9jayBnYXRpbmcgY2VsbHMgYXJlIHVzYWJsZSBkdXJpbmcgY2xvY2tEZXNpZ24uCi0gICAgICAjIERpc2FibGUgdGhlbSBhZnRlcndhcmRzLgotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCi0gICAgICBzZXQgY2xvY2tfZ2F0ZV9jZWxscyBbbGlzdF0KLSAgICAgIHNldCBjb21tYW5kICIiCi0gICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoY2xvY2tfZ2F0ZV9jZWxscyldfSB7Ci0gICAgICAgICBhcHBlbmQgY29tbWFuZCAic2V0X2ludGVyYWN0aXZlX2NvbnN0cmFpbnRfbW9kZXMgXFthbGxfY29uc3RyYWludF9tb2RlcyAtYWN0aXZlXF1cbiIKLSAgICAgICAgIHNldCBjbG9ja19nYXRlX2NlbGxzICR2YXJzKGNsb2NrX2dhdGVfY2VsbHMpCi0gICAgICAgICBmb3JlYWNoIGNlbGwgJGNsb2NrX2dhdGVfY2VsbHMgewotICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJzZXRfZG9udF91c2UgZmFsc2UgJGNlbGxcbiIKLSAgICAgICAgIH0KLSAgICAgIH0KLSAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCBjdHMsZW5hYmxlX2Nsb2NrX2dhdGVfY2VsbHMgJGNvbW1hbmRdCi0KLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICMgUnVuIENUUwotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCi0gICAgICBzZXQgY29tbWFuZCAiIgotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgIyBSdW4gY2NvcHREZXNpZ24gLi4uIGNvbnZlcnQgdG8gcHJvcGFnYXRlZCB0aW1pbmcgZmlyc3QgaW4gc2NyaXB0ZWQgaW50ZWdyYXRpb24KLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhjdHNfdGNsKV19IHsKLSAgICAgICAgIGlmIHtbZmlsZSBleGlzdHMgJHZhcnMoY3RzX3RjbCldfSB7Ci0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjpzb3VyY2VfcGx1ZyBwcmVfY3RzX3RjbF0KLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OnNvdXJjZV9wbHVnIGN0c190Y2xdCi0gICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgc2V0IGVycm9ycygkdmFycyhlcnJvcl9jb3VudCkpICJQbHVnLWluIHZhcnMoY3RzX3RjbCkgZGVmaW5lZCBidXQgdGhlIGZpbGUgZG9lcyBub3QgZXhpc3QiCi0gICAgICAgICAgICBpbmNyIHZhcnMoZXJyb3JfY291bnQpCi0gICAgICAgICB9Ci0gICAgICB9IGVsc2UgewotICAgICAgICAgc2V0IGlzX25hdGl2ZSBbZXhwciB7JHZhcnMoY2NvcHRfaW50ZWdyYXRpb24pID09ICJuYXRpdmUifV0KLSAgICAgICAgIHNldCBjb21tYW5kIFtGRl9OT1ZVUzo6dXBkYXRlX3RpbWluZyBtbW1jIFtleHByICEkaXNfbmF0aXZlXV0KLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCBjdHMsdXBkYXRlX3RpbWluZyAkY29tbWFuZF0KLSAgICAgICAgIHNldCBjb21tYW5kIFtGRl9OT1ZVUzo6ZGVyYXRlX3RpbWluZyBtbW1jXQotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLGRlcmF0ZV90aW1pbmcgJGNvbW1hbmRdCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjpzb3VyY2VfcGx1ZyBwcmVfY3RzX3RjbF0KLSAgICAgICAgIGlmIHtbcmVnZXhwICJeY2NvcHQiICR2YXJzKGN0c19lbmdpbmUpXX0gewotICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjpzb3VyY2VfcGx1ZyBwcmVfcG9zdGN0c190Y2wgMF0KLSAgICAgICAgICAgaWYgeyR2YXJzKHBvc3RjdHNfc2V0dXBfaG9sZCl9IHsKLSAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6c291cmNlX3BsdWcgcHJlX3Bvc3RjdHNfaG9sZF90Y2xdCi0gICAgICAgICAgIH0KLSAgICAgICAgIH0KLQotICAgICAgICAgIyBDcmVhdGUgYSBDQ09wdCBjbG9jayB0cmVlIHNwZWMgaWYgcnVubmluZyB3aXRoIG5hdGl2ZSBpbnRlZ3JhdGlvbgotICAgICAgICAgaWYgeyR2YXJzKGNjb3B0X2VmZm9ydCkgIT0gImxvdyJ9IHsKLSMgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksc2V0X2Njb3B0X21vZGUgInNldF9jY29wdF9tb2RlIC1lZmZvcnQgJHZhcnMoY2NvcHRfZWZmb3J0KVxuIl0KLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxzZXRfY2NvcHRfZWZmb3J0ICJzZXRfY2NvcHRfZWZmb3J0IC1lZmZvcnQgJHZhcnMoY2NvcHRfZWZmb3J0KVxuIl0KLSAgICAgICAgIH0KLSAgICAgICAgIHNldCBjY29wdF9jb21tYW5kICJjY29wdF9kZXNpZ24iCi0KLSAgICAgICAgIGlmIHskdmFycyhwb3N0Y3RzX3NldHVwX2hvbGQpfSB7Ci0gICAgICAgICAgICBhcHBlbmQgY2NvcHRfY29tbWFuZCAiIC1ob2xkIgotICAgICAgICAgfQotCi0gICAgICAgICBzZXQgY29tbWFuZCAiY3JlYXRlX2Nsb2NrX3RyZWVfc3BlY1xuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kIGN0cyxjcmVhdGVfY2xvY2tfdHJlZV9zcGVjICRjb21tYW5kXQotCi0gICAgICAgICBhcHBlbmQgY2NvcHRfY29tbWFuZCAiXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgY3RzLGNjb3B0X2Rlc2lnbiAkY2NvcHRfY29tbWFuZF0KLQotICAgICAgfQotCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAjIExvYWQgb3B0aW9uYWwgcG9zdCBDVFMgZmlsZSAocGx1Zy1pbikKLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLQotICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6c291cmNlX3BsdWcgcG9zdF9jdHNfdGNsIDBdCi0gICAgICBpZiB7W3JlZ2V4cCAiXmNjb3B0IiAkdmFycyhjdHNfZW5naW5lKV19IHsKLSAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6c291cmNlX3BsdWcgcG9zdF9wb3N0Y3RzX3RjbCAwXQotICAgICAgICBpZiB7JHZhcnMocG9zdGN0c19zZXR1cF9ob2xkKX0gewotICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjpzb3VyY2VfcGx1ZyBwb3N0X3Bvc3RjdHNfaG9sZF90Y2xdCi0gICAgICAgIH0KLSAgICAgIH0KLQotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgIyBSZXNldCBjbG9jayBnYXRpbmcgY2VsbCB1c2FnZQotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgIyBDaGVjayBwb3N0LWN0cyB0aW1pbmcKLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgIGlmIHshW2luZm8gZXhpc3RzIHZhcnModGltZV9kZXNpZ25fb3B0aW9ucyxzZXR1cCldfSB7Ci0gICAgICAgICBzZXQgY29tbWFuZCAidGltZV9kZXNpZ24gLXBvc3RjdHMgLXJlcG9ydF9wcmVmaXggY3RzIC1yZXBvcnRfZGlyICR2YXJzKHJwdF9kaXIpXG4iCi0gICAgICB9IGVsc2UgewotICAgICAgICAgc2V0IGNvbW1hbmQgW2Zvcm1hdCAidGltZV9kZXNpZ24gLXBvc3RjdHMgLXJlcG9ydF9wcmVmaXggY3RzIC1yZXBvcnRfZGlyICR2YXJzKHJwdF9kaXIpICVzXG4iICR2YXJzKHRpbWVfZGVzaWduX29wdGlvbnMsc2V0dXApXQotICAgICAgfQotICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kIGN0cyx0aW1lX2Rlc2lnbiAkY29tbWFuZF0KLQotICAgICAgaWYgeygkdmFycyhoaWVyX2Zsb3dfdHlwZSkgPT0gIjJwYXNzIikgJiYgISR2YXJzKGVuYWJsZV9mbGV4aWxtKX0gewotICAgICAgICAgc2V0IHB0biBbZmlsZSB0YWlsIFtwd2RdXQotICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKHBhcnRpdGlvbl9saXN0KV0gJiYgKFtsc2VhcmNoICR2YXJzKHBhcnRpdGlvbl9saXN0KSAkcHRuXSAhPSAtMSl9IHsKLSAgICAgICAgICAgIGlmIHtbc3RyaW5nIGNvbXBhcmUgLW5vY2FzZSAkdmFycyhkYnNfZm9ybWF0KSAiZmUiXT09MH0gewotICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgIndyaXRlX2lsbSAtb3B0X3N0YWdlIHBvc3RjdHMgLXR5cGVfZmxleF9pbG0gaWxtIC10b19kaXIgXFtnZXRfZGIgZGVzaWducyAubmFtZVxdLmlsbVxuIgotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIHNldCBjb21tYW5kICJ3cml0ZV9pbG0gLW9wdF9zdGFnZSBwb3N0Y3RzIC10eXBlX2ZsZXhfaWxtIGlsbSAtb2FfY2VsbHZpZXcgeyR2YXJzKG9hX3BhcnRpdGlvbl9saWIpIFxbZ2V0X2RiIGRlc2lnbnMgLm5hbWVcXSBpbG19XG4iCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksd3JpdGVfaWxtICRjb21tYW5kXQotICAgICAgICAgfQotICAgICAgfQotCi0gICAgICBpZiB7JHZhcnMoY29kZWdlbil9IHsKLSAgICAgICAgIHJldHVybiAkY29tbWFuZHMKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgdXBsZXZlbCAjMCBldmFsICRjb21tYW5kcwotICAgICAgfQotICAgfQotCi0gICBwcm9jIHJ1bl9wb3N0Y3RzIHt7Zm9ybWF0IDF9fSB7Ci0KLSAgICAgIGdsb2JhbCB2YXJzCi0gICAgICBnbG9iYWwgZW52Ci0gICAgICBnbG9iYWwgZXJyb3JzCi0KLSAgICAgaWYgeyR2YXJzKHNraXBfY3RzKX0geyByZXR1cm4gIiIgfQotCi0jICAgICBpZiB7W3JlZ2V4cCAiXmNjb3B0IiBbc3RyaW5nIHRvbG93ZXIgJHZhcnMoY3RzX2VuZ2luZSldXX0gewotIyAgICAgICAgcmV0dXJuICIiCi0jICAgICB9Ci0gICAgIGlmIHtbc3RyaW5nIHRvbG93ZXIgJHZhcnMoY3RzX2VuZ2luZSldID09ICJjY29wdCJ9IHsgCi0gICAgICAgIHJldHVybiAiIgotICAgICB9Ci0KLSAgICAgIHNldCB2YXJzKHN0ZXApIHBvc3RjdHMKLSAgICAgIHNldCBjb21tYW5kcyAiIgotIyAgICAgIGFwcGVuZCBjb21tYW5kcyAic2V0IHZhcnMoc3RlcCkgJHZhcnMoc3RlcClcbiIKLSAKLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICMgSW5pdGlhbGl6ZSBzdGVwIC4uLgotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCi0gICAgICBzZXQgY29tbWFuZCBbRkZfTk9WVVM6OmluaXRpYWxpemVfc3RlcCBwb3N0Y3RzXQotICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRl9OT1ZVUzo6aW5zZXJ0X2NvbW1lbnRzXSAKLSAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCBwb3N0Y3RzLGluaXRpYWxpemVfc3RlcCAkY29tbWFuZF0KLQotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgIyBTcGVjaWZ5IHRoZSBJTE0gbW9kZWxzIGZvciB0aGUgdG9wIHBhcnRpdGlvbiAob25seSBmb3IgMnBhc3MgZmxvdykKLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgIGlmIHskdmFycyh0b3ApICYmICgkdmFycyh1c2VyX21vZGUpID09ICJoaWVyIikgJiYgKCR2YXJzKGhpZXJfZmxvd190eXBlKSA9PSAiMnBhc3MiKSAmJiAhJHZhcnMoZW5hYmxlX2ZsZXhpbG0pfSB7Ci0jICAgICAgICAgaWYgeyEkKHZhcnMoYmxhY2tfYm94KX0geyAKLSAgICAgICAgICAgIHNldCBjb21tYW5kICIiCi0gICAgICAgICAgICBmb3JlYWNoIHBhcnQgJHZhcnMocGFydGl0aW9uX2xpc3QpIHsKLSAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkcGFydCxpbG1fZGlyKV0gJiYgKCR2YXJzKGNvZGVnZW4pIHx8IFtmaWxlIGlzZGlyZWN0b3J5ICR2YXJzKCRwYXJ0LGlsbV9kaXIpXSl9IHsKLSAgICAgICAgICAgICAgICAgIGlmIHtbbGluZGV4IFtzcGxpdCAkdmFycyh2ZXJzaW9uKSAiLiJdICAwXSA8PSAxMH0gewotICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgInNwZWNpZnlJbG0gLWNlbGwgJHBhcnQgLWRpciAkdmFycygkcGFydCxpbG1fZGlyKVxuIgotICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgaWYge1tzdHJpbmcgY29tcGFyZSAtbm9jYXNlICR2YXJzKGRic19mb3JtYXQpICJvYSJdPT0wfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAic3BlY2lmeUlsbSAtY2VsbCAkcGFydFxuIgotICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJzcGVjaWZ5SWxtIC1jZWxsICRwYXJ0IC1kaXIgJHZhcnMoJHBhcnQsaWxtX2RpcilcbiIKLSAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICBpZiB7W2xpbmRleCBbc3BsaXQgJHZhcnModmVyc2lvbikgIi4iXSAgMF0gPD0gMTB9IHsKLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJzcGVjaWZ5SWxtIC1jZWxsICRwYXJ0IC1kaXIgLi4vJHBhcnQvJHBhcnQuaWxtXG4iCi0gICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICBpZiB7W3N0cmluZyBjb21wYXJlIC1ub2Nhc2UgJHZhcnMoZGJzX2Zvcm1hdCkgIm9hIl09PTB9IHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJzcGVjaWZ5SWxtIC1jZWxsICRwYXJ0XG4iCi0gICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgInNwZWNpZnlJbG0gLWNlbGwgJHBhcnQgLWRpciAuLi8kcGFydC8kcGFydC5pbG1cbiIKLSAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIHskY29tbWFuZCAhPSAiIn0gewotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHNwZWNpZnlfaWxtICRjb21tYW5kXQotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgeyR2YXJzKGZsb3cpID09ICJtbW1jIn0gewotICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgW0ZGX05PVlVTOjp1cGRhdGVfdGltaW5nIG1tbWNdCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgcG9zdGN0cyx1cGRhdGVfdGltaW5nICRjb21tYW5kXQotICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgW0ZGX05PVlVTOjpkZXJhdGVfdGltaW5nIG1tbWNdCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksZGVyYXRlX3RpbWluZyAkY29tbWFuZF0KLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBzZXQgY29tbWFuZCBbRkZfTk9WVVM6OnVwZGF0ZV90aW1pbmcgbWlubWF4XQotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kIHBvc3RjdHMsdXBkYXRlX3RpbWluZyAkY29tbWFuZF0KLSAgICAgICAgICAgICAgIHNldCBjb21tYW5kIFtGRl9OT1ZVUzo6ZGVyYXRlX3RpbWluZyBtaW5tYXhdCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksZGVyYXRlX3RpbWluZyAkY29tbWFuZF0KLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIHskdmFycyhpbG0pICYmIFtpbmZvIGV4aXN0cyB2YXJzKGlsbV9ub25fc2RjX2ZpbGUpXX0gewotICAgICAgICAgICAgICAgaWYge1tmaWxlIGV4aXN0cyAkdmFycyhpbG1fbm9uX3NkY19maWxlKV19IHsKLSAgICAgICAgICAgICAgICAgIGlmIHtbbGluZGV4IFtzcGxpdCAkdmFycyh2ZXJzaW9uKSAiLiJdICAwXSA8PSAxMH0gewotICAgICAgICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgImxvYWRUaW1pbmdDb24gLWlsbU5vblNkY0ZpbGUgJHZhcnMoaWxtX25vbl9zZGNfZmlsZSlcbiIKLSAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICBzZXQgY29tbWFuZCAic2V0SWxtTm9uU2RjQ29uc3RyYWludEZpbGUgJHZhcnMoaWxtX25vbl9zZGNfZmlsZSlcbiIKLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxsb2FkX2lsbV9ub25fc2RjX2ZpbGUgJGNvbW1hbmRdCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0jICAgICAgICAgfQotCi0jICAgICAgICAgc2V0IGNvbW1hbmQgW0ZGX05PVlVTOjppbml0aWFsaXplX3RpbWluZyBtbW1jXQotIyAgICAgICAgIGlmIHshW2luZm8gZXhpc3RzIHZhcnMoY3BmX2ZpbGUpXX0gewotIyAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxpbml0aWFsaXplX3RpbWluZyAkY29tbWFuZF0KLSMgICAgICAgICB9IGVsc2UgewotIyAgICAgICAgICAgIHNldCBkZWZlcl9jb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxpbml0aWFsaXplX3RpbWluZyAkY29tbWFuZF0gCi0jICAgICAgICAgfQotICAgICAgfQotCi0gICAgICBhcHBlbmQgY29tbWFuZHMgInB1dHMgXCI8RkY+IFJVTk5JTkcgUE9TVC1DVFMgT1BUSU1JWkFUSU9OIC4uLlwiXG4iCi0KLSAgICAgIGlmIHskdmFycyh2ZXJib3NlKX0gewotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgUlVOTklORyBQT1NULUNUUyBPUFRJTUlaQVRJT05cbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiI1xuIgotICAgICAgfQotCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAjIExvYWQgb3B0aW9uYWwgcHJlIHBvc3RDVFMgZmlsZSAocGx1Zy1pbikKLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLQotICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6c291cmNlX3BsdWcgcHJlX3Bvc3RjdHNfdGNsXQotCi0gICAgICBpZiB7JHZhcnMoY3RzX2VuZ2luZSkgPT0gImNjb3B0IiAmJiAkdmFycyhjY29wdF9pbnRlZ3JhdGlvbikgPT0gIm5hdGl2ZSJ9IHsKLSAgICAgICAgIHNldCBjb21tYW5kICJwdXRzIFwiPEZGPiBOTyBQT1NULUNUUyBPUFRJTUlaQVRJT04gUkVRVUlSRUQgRk9SIENDT1BUIE5BVElWRSBJTlRFR1JBVElPTlwiXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgcG9zdGN0cyxvcHRfZGVzaWduICRjb21tYW5kXQotICAgICAgfSBlbHNlIHsKLSAgICAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICAgICMgUnVuIHBvc3QtQ1RTIG9wdGltaXphdGlvbgotICAgICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgICAgCi0gICAgICAgICBzZXQgY29tbWFuZCAib3B0X2Rlc2lnbiAtcG9zdF9jdHMgLXJlcG9ydF9kaXIgJHZhcnMocnB0X2RpcikgLXJlcG9ydF9wcmVmaXggcG9zdGN0c1xuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kIHBvc3RjdHMsb3B0X2Rlc2lnbiAkY29tbWFuZF0KLSAgICAgIH0KLSAgICAgICAgIAotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgIyBMb2FkIG9wdGlvbmFsIHBvc3QgcG9zdENUUyBmaWxlIChwbHVnLWluKQotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCi0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjpzb3VyY2VfcGx1ZyBwb3N0X3Bvc3RjdHNfdGNsIDBdCi0gICAgICBpZiB7JHZhcnMoY29kZWdlbil9IHsKLSAgICAgICAgIHJldHVybiAkY29tbWFuZHMKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgdXBsZXZlbCAjMCBldmFsICRjb21tYW5kcwotICAgICAgfQotICAgfQotCi0gICBwcm9jIHJ1bl9wb3N0Y3RzX2hvbGQge3tmb3JtYXQgMX19IHsKLQotICAgICAgZ2xvYmFsIHZhcnMKLSAgICAgIGdsb2JhbCBlbnYKLSAgICAgIGdsb2JhbCBlcnJvcnMKLQotICAgICAgaWYgeyR2YXJzKHNraXBfY3RzKSB8fCAoW2xzZWFyY2ggJHZhcnMoZml4X2hvbGQpIHBvc3RjdHNdIDwgMCkgfHwgJHZhcnMocG9zdGN0c19zZXR1cF9ob2xkKX0gewotICAgICAgICAgcmV0dXJuICIiCi0gICAgICB9Ci0KLSAgICAgIHNldCB2YXJzKHN0ZXApIHBvc3RjdHNfaG9sZAotICAgICAgc2V0IGNvbW1hbmRzICIiIAotIyAgICAgIGFwcGVuZCBjb21tYW5kcyAic2V0IHZhcnMoc3RlcCkgJHZhcnMoc3RlcClcbiIKLQotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgIyBJbml0aWFsaXplIHN0ZXAgLi4uCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0KLSAgICAgIHNldCBjb21tYW5kIFtGRl9OT1ZVUzo6aW5pdGlhbGl6ZV9zdGVwIHBvc3RjdHNfaG9sZF0KLSAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkZfTk9WVVM6Omluc2VydF9jb21tZW50c10gCi0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgcG9zdGN0c19ob2xkLGluaXRpYWxpemVfc3RlcCAkY29tbWFuZF0KLQotICAgICAgYXBwZW5kIGNvbW1hbmRzICJwdXRzIFwiPEZGPiBSVU5OSU5HIFBPU1QtQ1RTIEhPTEQgRklYSU5HIC4uLlwiXG4iCi0KLSAgICAgIGlmIHskdmFycyh2ZXJib3NlKX0gewotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgUlVOTklORyBQT1NULUNUUyBIT0xEIEZJWElOR1xuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjXG4iCi0gICAgICB9Ci0KLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICMgTG9hZCBwcmUtcG9zdENUUyBob2xkIGZpbGUgKHBsdWctaW4pCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0KLSAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OnNvdXJjZV9wbHVnIHByZV9wb3N0Y3RzX2hvbGRfdGNsXQotCi0gICAgICBzZXQgY29tbWFuZCAib3B0X2Rlc2lnbiAtcG9zdF9jdHMgLWhvbGQgLXJlcG9ydF9kaXIgJHZhcnMocnB0X2RpcikgLXJlcG9ydF9wcmVmaXggcG9zdGN0c19ob2xkXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgcG9zdGN0c19ob2xkLG9wdF9kZXNpZ24gJGNvbW1hbmRdCi0KLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICMgTG9hZCBwb3N0LXBvc3RDVFMgaG9sZCBmaWxlIChwbHVnLWluKQotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCi0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjpzb3VyY2VfcGx1ZyBwb3N0X3Bvc3RjdHNfaG9sZF90Y2wgMF0KLQotICAgICAgaWYgeyR2YXJzKGNvZGVnZW4pfSB7Ci0gICAgICAgICByZXR1cm4gJGNvbW1hbmRzCi0gICAgICB9IGVsc2UgewotICAgICAgICAgIHVwbGV2ZWwgIzAgZXZhbCAkY29tbWFuZHMKLSAgICAgIH0KLSAgIH0KLQotICAgcHJvYyBydW5fcm91dGUge3tmb3JtYXQgMX19IHsKLQotICAgICAgZ2xvYmFsIHZhcnMKLSAgICAgIGdsb2JhbCBlbnYKLSAgICAgIGdsb2JhbCBlcnJvcnMKLQotICAgICAgc2V0IHZhcnMoc3RlcCkgcm91dGUKLSAgICAgIHNldCBjb21tYW5kcyAiIgotIyAgICAgIGFwcGVuZCBjb21tYW5kcyAic2V0IHZhcnMoc3RlcCkgJHZhcnMoc3RlcClcbiIKLQotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgIyBJbml0aWFsaXplIHN0ZXAgLi4uCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0KLSAgICAgIHNldCBjb21tYW5kIFtGRl9OT1ZVUzo6aW5pdGlhbGl6ZV9zdGVwIHJvdXRlXQotICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRl9OT1ZVUzo6aW5zZXJ0X2NvbW1lbnRzXSAKLSAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCByb3V0ZSxpbml0aWFsaXplX3N0ZXAgJGNvbW1hbmRdCi0gICAgICBzZXQgY29tbWFuZCBbRkZfTk9WVVM6OmFkZF9maWxsZXJfY2VsbHNdCi0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgcm91dGUsYWRkX2ZpbGxlcl9jZWxscyAkY29tbWFuZF0KLQotICAgICAgYXBwZW5kIGNvbW1hbmRzICJwdXRzIFwiPEZGPiBSVU5OSU5HIEdMT0JBTC9ERVRBSUwgUk9VVElORyAuLi5cIlxuIgotCi0gICAgICBpZiB7JHZhcnModmVyYm9zZSl9IHsKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiI1xuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjIFJVTk5JTkcgR0xPQkFML0RFVEFJTCBST1VUSU5HXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiNcbiIKLSAgICAgIH0KLQotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgIyBMb2FkIG9wdGlvbmFsIHByZSByb3V0ZSBmaWxlIChwbHVnLWluKQotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCi0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjpzb3VyY2VfcGx1ZyBwcmVfcm91dGVfdGNsXQotCi0gICAgICBzZXQgY29tbWFuZCBbRkZfTk9WVVM6OnJvdXRlX3NlY29uZGFyeV9wZ19uZXRzXQotICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kIHJvdXRlLHJvdXRlX3NlY29uZGFyeV9wZ19uZXRzICRjb21tYW5kXQotCi0gICAgICBzZXQgY29tbWFuZCAiY2hlY2tfcGxhY2UgJHZhcnMocnB0X2RpcikvJHZhcnMoc3RlcCksY2hlY2tfcGxhY2UucnB0XG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgcm91dGUsY2hlY2tfcGxhY2UgJGNvbW1hbmRdCi0KLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICMgUm91dGUgdGhlIGRlc2lnbgotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCi0gICAgICBzZXQgY29tbWFuZCAiIgotICAgICAgc2V0IGFyZ3MgIiIKLSAgICAgIGlmIHsoJHZhcnMoZW5hYmxlX29jdikgPT0gInByZV9wb3N0cm91dGUiKSB8fCAoJHZhcnMoZW5hYmxlX29jdikgPT0gInByZV9wb3N0Y3RzIil9IHsKLSMgICAgICAgICBpZiB7JHZhcnMoZmxvdykgIT0gImRlZmF1bHQifSB7Ci0gICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKGVuYWJsZV9vY3YpXG4iCi0gICAgICAgICAgICBhcHBlbmQgYXJncyAic2V0X2RiIHRpbWluZ19hbmFseXNpc190eXBlIG9jdlxuIgotIyAgICAgICAgIH0KLSAgICAgICAgIGlmIHskdmFycyhlbmFibGVfYW9jdil9IHsKLSAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMoZW5hYmxlX2FvY3YpXG4iCi0gICAgICAgICAgICBhcHBlbmQgYXJncyAic2V0X2RiIHRpbWluZ19hbmFseXNpc19hb2N2IHRydWVcbiIKLSAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhlbmFibGVfYW9jdilcbiIKLSAgICAgICAgIH0KLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhlbmFibGVfb2N2KSBcInByZV9wb3N0cm91dGVcIlxuIgotICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMoZW5hYmxlX2FvY3YpIFwidHJ1ZVwiXG4iCi0gICAgICB9Ci0gICAgICBpZiB7JGFyZ3MgIT0gIiJ9IHsKLSAgICAgICAgIHNldCBjb21tYW5kICIkYXJnc1xuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kIHJvdXRlLHNldF9hbmFseXNpc19tb2RlICRjb21tYW5kXQotICAgICAgfQotCi0gICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMocG9zdHJvdXRlX3NwcmVhZF93aXJlcyldICYmICEkdmFycyhwb3N0cm91dGVfc3ByZWFkX3dpcmVzKX0gewotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJzZXRfZGIgcm91dGVfZGVzaWduX2RldGFpbF9wb3N0X3JvdXRlX3NwcmVhZF93aXJlIGZhbHNlXG4iCi0gICAgICB9Ci0KLSAgICAgIHNldCBjb21tYW5kICJyb3V0ZV9kZXNpZ24iCi0gICAgICBpZiB7JHZhcnModHJhY2tfb3B0KX0gewotICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyh0cmFja19vcHQpXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZCAiIC10cmFja19vcHQiCi0gICAgICB9IGVsc2UgewotICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnModHJhY2tfb3B0KVxuIgotICAgICAgfQotICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kIHJvdXRlLHJvdXRlX2Rlc2lnbiAiJGNvbW1hbmRcbiJdCi0KLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICMgUnVuIGNrRUNPIGlmIHJlcXVlc3RlZAotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCi0gICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoY2xvY2tfZWNvKV0gJiYgKCgkdmFycyhjbG9ja19lY28pID09ICJwb3N0X3JvdXRlIikgfHwgKCR2YXJzKGNsb2NrX2VjbykgPT0gImJvdGgiKSl9IHsKLSAgICAgICAgIHNldCBjb21tYW5kIFtGRl9OT1ZVUzo6cnVuX2Nsb2NrX2VjbyBwb3N0X3JvdXRlXQotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kIHJvdXRlLHJ1bl9jbG9ja19lY28gJGNvbW1hbmRdCi0gICAgICB9Ci0KLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICMgT3B0aW9uYWxseSBydW4gd2lyZSBzcHJlYWRpbmcKLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLQotICAgICAgaWYge1tyZWdzdWIgIm5tIiAkdmFycyhwcm9jZXNzKSAiIl0gPj0gMTZ9IHsKLSAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKHBvc3Ryb3V0ZV9zcHJlYWRfd2lyZXMpXSAmJiAkdmFycyhwb3N0cm91dGVfc3ByZWFkX3dpcmVzKX0gewotICAgICAgICAgIHNldCBjb21tYW5kICJzZXRfZGIgcm91dGVfZGVzaWduX2RldGFpbF9wb3N0X3JvdXRlX3NwcmVhZF93aXJlIHRydWVcbnNldF9kYiByb3V0ZV93aXRoX3RpbWluZ19kcml2ZW4gZmFsc2VcbiIKLSAgICAgICAgICBhcHBlbmQgY29tbWFuZCAicm91dGVEZXNpZ24gLXdpcmVPcHRcbiIKLSAgICAgICAgICBhcHBlbmQgY29tbWFuZCAic2V0X2RiIHJvdXRlX2Rlc2lnbl9kZXRhaWxfcG9zdF9yb3V0ZV9zcHJlYWRfd2lyZSBmYWxzZVxuIgotICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCByb3V0ZSxzcHJlYWRfd2lyZXMgJGNvbW1hbmRdCi0gICAgICAgIH0KLSAgICAgIH0KLQotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgIyBPcHRpb25hbGx5IHJ1biBMUEEKLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLQotICAgICAgaWYgeyR2YXJzKHZlcmlmeV9saXRobyl9IHsKLSAgICAgICAgIGZpbGUgbWtkaXIgJHZhcnMocnB0X2RpcikvTFBBL0RNQwotICAgICAgICAgc2V0IGNvbW1hbmQgImNoZWNrX2xpdGhvIC1yb3V0aW5nX2xheWVyc19vbmx5IC10ZWNoRmlsZSAkdmFycyhscGFfdGVjaF9maWxlKSAtZGlyICR2YXJzKHJwdF9kaXIpL0xQQVxuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmQgInZpb2xhdGlvbkJyb3dzZXIgLWFsbCAtbm9fZGlzcGxheV9mYWxzZVxuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmQgImxvYWRWaW9sYXRpb25SZXBvcnQgLXR5cGUgQ0ROTGl0aG8gLWZpbGVuYW1lICR2YXJzKHJwdF9kaXIpL0xQQS9ETUMvbWVyZ2VkLmhpZlxuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kIHJvdXRlLHZlcmlmeV9saXRobyAkY29tbWFuZF0KLSAgICAgIH0KLQotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgIyBTZXQgZXh0cmFjdGlvbiBtb2RlIHRvIHBvc3Ryb3V0ZQotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgc2V0IGNvbW1hbmQgInNldF9kYiBleHRyYWN0X3JjX2VuZ2luZSBwb3N0X3JvdXRlXG4iCi0gICAgICBpZiB7IVtjYXRjaCB7c2V0IGFyZyAkdmFycyhwb3N0cm91dGVfZXh0cmFjdGlvbl9lZmZvcnQpfV19IHsKLSAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMocG9zdHJvdXRlX2V4dHJhY3Rpb25fZWZmb3J0KVxuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmQgInNldF9kYiBleHRyYWN0X3JjX2VmZm9ydF9sZXZlbCAkYXJnXG4iCi0gICAgICB9IGVsc2UgewotICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMocG9zdHJvdXRlX2V4dHJhY3Rpb25fZWZmb3J0KVxuIgotICAgICAgfQotICAgICAgaWYgeyFbY2F0Y2gge3NldCBhcmcgJHZhcnModG90YWxfY190aHJlc2gpfV19IHsKLSAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnModG90YWxfY190aHJlc2gpXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZCAic2V0X2RiIGV4dHJhY3RfcmNfdG90YWxfY2FwX3RocmVzaG9sZCAkYXJnXG4iCi0gICAgICB9IGVsc2UgewotICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnModG90YWxfY190aHJlc2gpXG4iCi0gICAgICB9Ci0gICAgICBpZiB7IVtjYXRjaCB7c2V0IGFyZyAkdmFycyhyZWxhdGl2ZV9jX3RocmVzaCl9XX0gewotICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhyZWxhdGl2ZV9jX3RocmVzaClcbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kICJzZXRfZGIgZXh0cmFjdF9yY19yZWxhdGl2ZV9jYXBfdGhyZXNob2xkICRhcmdcbiIKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhyZWxhdGl2ZV9jX3RocmVzaClcbiIKLSAgICAgIH0KLSAgICAgIGlmIHshW2NhdGNoIHtzZXQgYXJnICR2YXJzKGNvdXBsaW5nX2NfdGhyZXNoKX1dfSB7Ci0gICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKGNvdXBsaW5nX2NfdGhyZXNoKVxuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmQgInNldF9kYiBleHRyYWN0X3JjX2NvdXBsaW5nX2NhcF90aHJlc2hvbGQgJGFyZ1xuIgotICAgICAgfSBlbHNlIHsKLSAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKHJlbGF0aXZlX2NfdGhyZXNoKVxuIgotICAgICAgfQotICAgICAgaWYgeyFbY2F0Y2gge3NldCBhcmcgJHZhcnMocXJjX2xheWVyX21hcCl9XX0gewotICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhxcmNfbGF5ZXJfbWFwKVxuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmQgInNldF9kYiBleHRyYWN0X3JjX2xlZl90ZWNoX2ZpbGVfbWFwICRhcmciCi0gICAgICB9IGVsc2UgewotICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMocXJjX2xheWVyX21hcClcbiIKLSAgICAgIH0KLSAgICAgIGFwcGVuZCBjb21tYW5kICJcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCByb3V0ZSxzZXRfZXh0cmFjdF9yY19tb2RlICRjb21tYW5kXQotCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAjIExvYWQgb3B0aW9uYWwgcG9zdCByb3V0ZSBmaWxlIChwbHVnLWluKQotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCi0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjpzb3VyY2VfcGx1ZyBwb3N0X3JvdXRlX3RjbCAwXQotCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAjIFVwZGF0ZSB0byBNTU1DIGlmIGZsb3cgaXMgInByX21tbWMiCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0KLSAgICAgIGlmIHskdmFycyhmbG93KSAhPSAiZGVmYXVsdCJ9IHsKLSAgICAgICAgIGlmIHskdmFycyhmbG93KSA9PSAicHJfbW1tYyJ9IHsKLSAgICAgICAgICAgIHNldCBjb21tYW5kIFtGRl9OT1ZVUzo6aW5pdGlhbGl6ZV90aW1pbmcgbW1tY10KLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCByb3V0ZSxpbml0aWFsaXplX3RpbWluZyAkY29tbWFuZF0KLSAgICAgICAgIH0KLSAgICAgIH0KLQotICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycyh0aW1lX2Rlc2lnbl9vcHRpb25zLHNldHVwKV19IHsKLSAgICAgICAgIHNldCBjb21tYW5kICJ0aW1lX2Rlc2lnbiAtcG9zdF9yb3V0ZSAtcmVwb3J0X3ByZWZpeCByb3V0ZSAtcmVwb3J0X2RpciAkdmFycyhycHRfZGlyKVxuIgotICAgICAgfSBlbHNlIHsKLSAgICAgICAgIHNldCBjb21tYW5kIFtmb3JtYXQgInRpbWVfZGVzaWduIC1wb3N0X3JvdXRlIC1yZXBvcnRfcHJlZml4IHJvdXRlIC1yZXBvcnRfZGlyICR2YXJzKHJwdF9kaXIpICVzXG4iICR2YXJzKHRpbWVfZGVzaWduX29wdGlvbnMsc2V0dXApXQotICAgICAgfQotICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kIHJvdXRlLHRpbWVfZGVzaWduICRjb21tYW5kXQotCi0gICAgICBpZiB7JHZhcnMoY29kZWdlbil9IHsKLSAgICAgICAgIHJldHVybiAkY29tbWFuZHMKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgdXBsZXZlbCAjMCBldmFsICRjb21tYW5kcwotICAgICAgfQotICAgfQotCi0gICBwcm9jIHJ1bl9wb3N0cm91dGUge3tmb3JtYXQgMX19IHsKLQotICAgICAgZ2xvYmFsIHZhcnMKLSAgICAgIGdsb2JhbCBlbnYKLSAgICAgIGdsb2JhbCBlcnJvcnMKLQotICAgICAgc2V0IHZhcnMoc3RlcCkgcG9zdHJvdXRlCi0gICAgICBzZXQgY29tbWFuZHMgICIiCi0jICAgICAgYXBwZW5kIGNvbW1hbmRzICJzZXQgdmFycyhzdGVwKSAkdmFycyhzdGVwKVxuIgotCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAjIEluaXRpYWxpemUgc3RlcCAuLi4KLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLQotICAgICAgc2V0IGNvbW1hbmQgW0ZGX05PVlVTOjppbml0aWFsaXplX3N0ZXAgcG9zdHJvdXRlXQotICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRl9OT1ZVUzo6aW5zZXJ0X2NvbW1lbnRzXSAKLSAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCBwb3N0cm91dGUsaW5pdGlhbGl6ZV9zdGVwICRjb21tYW5kXQotCi0gICAgICBpZiB7JHZhcnMobWV0YWxmaWxsKSA9PSAicHJlX3Bvc3Ryb3V0ZSJ9IHsKLSAgICAgICAgIHNldCBjb21tYW5kIFtGRjo6c291cmNlX3BsdWcgbWV0YWxmaWxsX3RjbF0KLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCBwb3N0cm91dGUsYWRkX21ldGFsZmlsbCAkY29tbWFuZF0KLSAgICAgIH0KLQotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgIyBSdW4gY2tFQ08gaWYgcmVxdWVzdGVkCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0KLSAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhjbG9ja19lY28pXSAmJiAoKCR2YXJzKGNsb2NrX2VjbykgPT0gInBvc3Rfcm91dGUiKSB8fCAoJHZhcnMoY2xvY2tfZWNvKSA9PSAiYm90aCIpKX0gewotICAgICAgICAgc2V0IGNvbW1hbmQgW0ZGX05PVlVTOjpydW5fY2xvY2tfZWNvIHBvc3Rfcm91dGVdCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgInB1dHMgXCI8RkY+IFJVTk5JTkcgUE9TVC1ST1VURSBDTE9DSyBFQ08gLi4uXCJcbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCByb3V0ZSxydW5fY2xvY2tfZWNvICRjb21tYW5kXQotICAgICAgfQotCi0gICAgICBhcHBlbmQgY29tbWFuZHMgInB1dHMgXCI8RkY+IFJVTk5JTkcgUE9TVC1ST1VURSBPUFRJTUlaQVRJT04gLi4uXCJcbiIKLQotICAgICAgaWYgeyR2YXJzKHZlcmJvc2UpfSB7Ci0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiNcbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyBSVU5OSU5HIFBPU1QtUk9VVEUgT1BUSU1JWkFUSU9OXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiNcbiIKLSAgICAgIH0KLQotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgIyBMb2FkIG9wdGlvbmFsIHByZSBwb3N0cm91dGUgZmlsZSAocGx1Zy1pbikKLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLQotICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6c291cmNlX3BsdWcgcHJlX3Bvc3Ryb3V0ZV90Y2xdCi0gICAgICBpZiB7JHZhcnMoaGlnaF90aW1pbmdfZWZmb3J0KSAmJiBbcmVnZXhwICI5LjEiICR2YXJzKHZlcnNpb24pXX0gewotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJvcHRfbGVha2FnZV9wb3dlciAtZml4X3RpbWluZ19vbmx5XG4iCi0gICAgICB9Ci0gICAgICBpZiB7JHZhcnMocG9zdHJvdXRlX3NldHVwX2hvbGQpfSB7Ci0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjpzb3VyY2VfcGx1ZyBwcmVfcG9zdHJvdXRlX2hvbGRfdGNsXQotICAgICAgICAgc2V0IGNvbW1hbmQgIm9wdF9kZXNpZ24gLXBvc3Rfcm91dGUgLXJlcG9ydF9kaXIgJHZhcnMocnB0X2RpcikgLXJlcG9ydF9wcmVmaXggcG9zdHJvdXRlIC1zZXR1cCAtaG9sZFxuIgotICAgICAgfSBlbHNlIHsKLSAgICAgICAgIHNldCBjb21tYW5kICJvcHRfZGVzaWduIC1wb3N0X3JvdXRlIC1yZXBvcnRfZGlyICR2YXJzKHJwdF9kaXIpIC1yZXBvcnRfcHJlZml4IHBvc3Ryb3V0ZVxuIgotICAgICAgfQotICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kIHBvc3Ryb3V0ZSxvcHRfZGVzaWduICRjb21tYW5kXQotCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAjIFRyaW0gbWV0YWwgZmlsbCBpZiBhZGRlZAotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCi0gICAgICBpZiB7JHZhcnMobWV0YWxmaWxsKSA9PSAicHJlX3Bvc3Ryb3V0ZSJ9IHsKLSAgICAgICAgIHNldCBjb21tYW5kICJ0cmltX21ldGFsX2ZpbGxcbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCBwb3N0cm91dGUsdHJpbV9tZXRhbF9maWxsICRjb21tYW5kXQotICAgICAgfQotCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAjIE9wdGlvbmFsbHkgcnVuIExQQQotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCi0gICAgICBpZiB7JHZhcnModmVyaWZ5X2xpdGhvKX0gewotICAgICAgICAgIyBCQ0w6IEFkZGVkIHN1YnN0IHRvIGhhbmRsZSBkZXJlcmVuY2luZyB2YXJpYWJsZXMKLSAgICAgICAgIGZpbGUgbWtkaXIgW3N1YnN0ICR2YXJzKHJwdF9kaXIpXS9MUEEvRE1DCi0gICAgICAgICBzZXQgY29tbWFuZCAidmVyaWZ5TGl0aG8gLXJvdXRpbmdMYXllcnNPbmx5IC10ZWNoRmlsZSAkdmFycyhscGFfdGVjaF9maWxlKSAtZGlyICR2YXJzKHJwdF9kaXIpL0xQQVxuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmQgInZpb2xhdGlvbkJyb3dzZXIgLWFsbCAtbm9fZGlzcGxheV9mYWxzZVxuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmQgImxvYWRWaW9sYXRpb25SZXBvcnQgLXR5cGUgQ0ROTGl0aG8gLWZpbGVuYW1lICR2YXJzKHJwdF9kaXIpL0xQQS9ETUMvbWVyZ2VkLmhpZlxuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kIHBvc3Ryb3V0ZSx2ZXJpZnlfbGl0aG8gJGNvbW1hbmRdCi0gICAgICB9Ci0KLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICMgTG9hZCBvcHRpb25hbCBwb3N0IHBvc3RSb3V0ZSBmaWxlIChwbHVnLWluKQotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCi0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjpzb3VyY2VfcGx1ZyBwb3N0X3Bvc3Ryb3V0ZV90Y2wgMF0KLSAgICAgIGlmIHskdmFycyhwb3N0cm91dGVfc2V0dXBfaG9sZCl9IHsKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OnNvdXJjZV9wbHVnIHBvc3RfcG9zdHJvdXRlX2hvbGRfdGNsXQotICAgICAgfQotIAotICAgICAgaWYgeyR2YXJzKGNvZGVnZW4pfSB7Ci0gICAgICAgICByZXR1cm4gJGNvbW1hbmRzCi0gICAgICB9IGVsc2UgewotICAgICAgICAgIHVwbGV2ZWwgIzAgZXZhbCAkY29tbWFuZHMKLSAgICAgIH0KLSAgIH0KLQotICAgcHJvYyBydW5fcG9zdHJvdXRlX2hvbGQge3tmb3JtYXQgMX19IHsKLQotICAgICAgZ2xvYmFsIHZhcnMKLSAgICAgIGdsb2JhbCBlbnYKLSAgICAgIGdsb2JhbCBlcnJvcnMKLQotICAgICAgaWYge1tsc2VhcmNoICR2YXJzKGZpeF9ob2xkKSBwb3N0cm91dGVdIDwgMH0gewotICAgICAgICAgcmV0dXJuICIiCi0gICAgICB9Ci0KLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICMgSW5pdGlhbGl6ZSBzdGVwIC4uLgotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCi0gICAgICBzZXQgdmFycyhzdGVwKSBwb3N0cm91dGVfaG9sZAotICAgICAgc2V0IGNvbW1hbmRzICIiCi0jICAgICAgYXBwZW5kIGNvbW1hbmRzICJzZXQgdmFycyhzdGVwKSAkdmFycyhzdGVwKVxuIgotCi0gICAgICBzZXQgY29tbWFuZCBbRkZfTk9WVVM6OmluaXRpYWxpemVfc3RlcCBwb3N0cm91dGVfaG9sZF0KLSAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkZfTk9WVVM6Omluc2VydF9jb21tZW50c10gCi0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgcG9zdHJvdXRlX2hvbGQsaW5pdGlhbGl6ZV9zdGVwICRjb21tYW5kXQotCi0gICAgICBhcHBlbmQgY29tbWFuZHMgInB1dHMgXCI8RkY+IFJVTk5JTkcgUE9TVC1ST1VURSBIT0xEIEZJWElORyAuLi5cIlxuIgotCi0gICAgICBpZiB7JHZhcnModmVyYm9zZSl9IHsKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiI1xuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjIFJVTk5JTkcgUE9TVC1ST1VURSBIT0xEIEZJWElOR1xuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjXG4iCi0gICAgICB9Ci0KLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICMgTG9hZCBvcHRpb25hbCBwcmUgcG9zdFJvdXRlIGhvbGQgZmlsZSAocGx1Zy1pbikKLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLQotICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6c291cmNlX3BsdWcgcHJlX3Bvc3Ryb3V0ZV9ob2xkX3RjbF0KLSAgICAgIHNldCBjb21tYW5kICJvcHRfZGVzaWduIC1wb3N0X3JvdXRlIC1ob2xkIgotICAgICAgYXBwZW5kIGNvbW1hbmQgIiAtcmVwb3J0X2RpciAkdmFycyhycHRfZGlyKSAtcmVwb3J0X3ByZWZpeCBwb3N0cm91dGVfaG9sZFxuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kIHBvc3Ryb3V0ZV9ob2xkLG9wdF9kZXNpZ24gJGNvbW1hbmRdCi0KLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICMgVHJpbSBtZXRhbCBmaWxsIGlmIGFkZGVkCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0KLSAgICAgIGlmIHskdmFycyhtZXRhbGZpbGwpID09ICJwcmVfcG9zdHJvdXRlIn0gewotICAgICAgICAgc2V0IGNvbW1hbmQgInRyaW1fbWV0YWxfZmlsbFxuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kIHBvc3Ryb3V0ZV9ob2xkLHRyaW1fbWV0YWxfZmlsbCAkY29tbWFuZF0KLSAgICAgIH0KLQotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgIyBPcHRpb25hbGx5IHJ1biBMUEEKLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLQotICAgICAgaWYgeyR2YXJzKHZlcmlmeV9saXRobyl9IHsKLSAgICAgICAgICMgQkNMOiBBZGRlZCBzdWJzdCB0byBoYW5kbGUgZGVyZXJlbmNpbmcgdmFyaWFibGVzCi0gICAgICAgICBmaWxlIG1rZGlyICBbc3Vic3QgJHZhcnMocnB0X2RpcildL0xQQS9ETUMKLSAgICAgICAgIHNldCBjb21tYW5kICJ2ZXJpZnlMaXRobyAtcm91dGluZ0xheWVyc09ubHkgLXRlY2hGaWxlICR2YXJzKGxwYV90ZWNoX2ZpbGUpIC1kaXIgJHZhcnMocnB0X2RpcikvTFBBXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZCAidmlvbGF0aW9uQnJvd3NlciAtYWxsIC1ub19kaXNwbGF5X2ZhbHNlXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZCAibG9hZFZpb2xhdGlvblJlcG9ydCAtdHlwZSBDRE5MaXRobyAtZmlsZW5hbWUgJHZhcnMocnB0X2RpcikvTFBBL0RNQy9tZXJnZWQuaGlmXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgcG9zdHJvdXRlX2hvbGQsdmVyaWZ5X2xpdGhvICRjb21tYW5kXQotICAgICAgfQotCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAjIExvYWQgb3B0aW9uYWwgcG9zdCBwb3N0Um91dGUgaG9sZCBmaWxlIChwbHVnLWluKQotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCi0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjpzb3VyY2VfcGx1ZyBwb3N0X3Bvc3Ryb3V0ZV9ob2xkX3RjbCAwXQotCi0gICAgICBpZiB7JHZhcnMoY29kZWdlbil9IHsKLSAgICAgICAgIHJldHVybiAkY29tbWFuZHMKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgdXBsZXZlbCAjMCBldmFsICRjb21tYW5kcwotICAgICAgfQotICAgfQotCi0gICBwcm9jIHJ1bl9zaWdub2ZmIHt7Zm9ybWF0IDF9fSB7Ci0KLSAgICAgIGdsb2JhbCB2YXJzCi0gICAgICBnbG9iYWwgZW52Ci0gICAgICBnbG9iYWwgZXJyb3JzCi0gICAgICBnbG9iYWwgZW52Ci0KLSAgICAgIGlmIHskdmFycyhzdGVwKSAhPSAiYXNzZW1ibGUifSB7Ci0gICAgICAgICBzZXQgdmFycyhzdGVwKSBzaWdub2ZmCi0gICAgICB9Ci0gICAgICBzZXQgY29tbWFuZHMgIiIKLQotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgIyBPcHRpb25hbGx5IHZlcmlmeS9maXggbGl0aG8KLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgIGlmIHskdmFycyhmaXhfbGl0aG8pfSB7Ci0gICAgICAgICAjIEJDTDogQWRkZWQgc3Vic3QgdG8gaGFuZGxlIGRlcmVyZW5jaW5nIHZhcmlhYmxlcwotICAgICAgICAgZmlsZSBta2RpciAgW3N1YnN0ICR2YXJzKHJwdF9kaXIpXS9MUEEvRE1DCi0gICAgICAgICBzZXQgY29tbWFuZCAibG9hZFZpb2xhdGlvblJlcG9ydCAtdHlwZSBDRE5MaXRobyAtZmlsZW5hbWUgJHZhcnMocnB0X2RpcikvTFBBL0RNQy9tZXJnZWQuaGlmXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZCAic2V0TmFub1JvdXRlTW9kZSAtZHJvdXRlUG9zdFJvdXRlTGl0aG9SZXBhaXIgdHJ1ZSBcXFxuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAgICAgICAgICAgICAgICAgLWRyb3V0ZU1pbmltaXplVG9wb2xvZ3lDaGFuZ2UgdHJ1ZVxuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmQgImdsb2JhbERldGFpbFJvdXRlXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZCAid3JpdGVIaWYgLWZpbGUgJHZhcnMocnB0X2RpcikvTFBBL2luY3JfdmVyaWZ5LmhpZlxuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmQgInZlcmlmeUxpdGhvIC1zaWduT2ZmIFxcXG4iIAotICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAgICAgICAgICAgIC1kaXIgJHZhcnMoZGJzX2RpcikvTFBBMiBcXFxuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAgICAgICAgICAgIC1jcHUgJHZhcnMobG9jYWxfY3B1cykgXFxcbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgICAgICAgICAgICAtY29uZmlnICR2YXJzKGxwYV9jb25mX2ZpbGUpIFxcXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZCAiICAgICAgICAgICAgLWluY3JDaGVjayAkdmFycyhycHRfZGlyKS9MUEEvaW5jcl92ZXJpZnkuaGlmXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZCAidmlvbGF0aW9uQnJvd3NlciAtYWxsIC1ub19kaXNwbGF5X2ZhbHNlXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZCAibG9hZFZpb2xhdGlvblJlcG9ydCAtdHlwZSBDRE5MaXRobyAtZmlsZW5hbWUgJHZhcnMocnB0X2RpcikvTFBBMi9ETUMvbWVyZ2VkLmhpZlxuIgotCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgc2lnbm9mZixmaXhfbGl0aG8gJGNvbW1hbmRdCi0gICAgICB9Ci0KLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICMgTG9hZCBvcHRpb25hbCBtZXRhbGZpbGwgcGx1Zy1pbgotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgaWYgeyR2YXJzKG1ldGFsZmlsbCkgPT0gInByZV9zaWdub2ZmIn0gewotICAgICAgICAgc2V0IGNvbW1hbmQgW0ZGOjpzb3VyY2VfcGx1ZyBtZXRhbGZpbGxfdGNsXQotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kIHNpZ25vZmYsYWRkX21ldGFsZmlsbCAkY29tbWFuZF0KLSAgICAgIH0KLQotICAgICAgc2V0IGNvbW1hbmQgW0ZGX05PVlVTOjppbml0aWFsaXplX3N0ZXAgc2lnbm9mZl0KLSAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkZfTk9WVVM6Omluc2VydF9jb21tZW50c10gCi0jICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kIHNpZ25vZmYsaW5pdGlhbGl6ZV9zdGVwICRjb21tYW5kXQotICAgICAgYXBwZW5kIGNvbW1hbmRzICRjb21tYW5kCi0KLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICMgTG9hZCBvcHRpb25hbCBwcmUgc2lnbm9mZiBmaWxlIChwbHVnLWluKQotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6c291cmNlX3BsdWcgcHJlX3NpZ25vZmZfdGNsXQotCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAjIFJ1biBSQyBFeHRyYWN0aW9uCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0KLSAgICAgIGFwcGVuZCBjb21tYW5kcyAicHV0cyBcIjxGRj4gUlVOTklORyBGSU5BTCBTSUdOT0ZGIC4uLlwiXG4iCi0KLSAgICAgIGlmIHskdmFycyh2ZXJib3NlKX0gewotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgUlVOTklORyBGSU5BTCBTSUdOT0ZGXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiNcbiIKLSAgICAgIH0KLQotICAgICAgc2V0IGNvbW1hbmQgImV4dHJhY3RfcmNcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCBzaWdub2ZmLGV4dHJhY3RfcmMgJGNvbW1hbmRdCi0KLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICMgRHVtcCBTUEVGIGZvciBzaWdub2ZmIFNUQQotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCi0gICAgICBpZiB7JHZhcnMoc2tpcF9zaWdub2ZmX2NoZWNrcyl9IHsKLSAgICAgICAgIHNldCBjb21tYW5kICIiCi0gICAgICAgICBmb3JlYWNoIGNvcm5lciAkdmFycyhyY19jb3JuZXJzKSB7Ci0gICAgICAgICBhcHBlbmQgY29tbWFuZCAid3JpdGVfcGFyYXNpdGljcyAtcmNfY29ybmVyICRjb3JuZXIgLXNwZWZfZmlsZSAkY29ybmVyLnNwZWYuZ3pcbiIKLSAgICAgICAgIH0KLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgICBzZXQgY29tbWFuZCAiZm9yZWFjaCBjb3JuZXIgXCR2YXJzKGFjdGl2ZV9yY19jb3JuZXJzKSB7XG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZCAiICAgd3JpdGVfcGFyYXNpdGljcyAtcmNfY29ybmVyIFwkY29ybmVyIC1zcGVmX2ZpbGUgXCRjb3JuZXIuc3BlZi5nelxuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIn1cbiIKLSAgICAgIH0gCi0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgc2lnbm9mZixkdW1wX3NwZWYgJGNvbW1hbmRdCi0KLSAgICAgIGlmIHskdmFycyhzdGVwKSA9PSAiYXNzZW1ibGUiICYmCi0gICAgICAgICAgW2luZm8gZXhpc3RzIHZhcnMoZW5hYmxlX3NpZ25vZmZfZWNvKV0gJiYgJHZhcnMoZW5hYmxlX3NpZ25vZmZfZWNvKX0gewotICAgICAgICAgc2V0IGNvbW1hbmQgInRpbWVfc2lnbm9mZiAtcmVwb3J0X29ubHkgLW5vX2Vjb19kYlxuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kIHNpZ25vZmYsdGltZV9zaWdub2ZmICRjb21tYW5kXSAgICAgICAgIAotICAgICAgfSBlbHNlIHsKLSAgICAgICAgIGlmIHskdmFycyhlbmFibGVfc2lfYXdhcmUpfSB7Ci0gICAgICAgICAgICBpZiB7IVtpbmZvIGV4aXN0cyB2YXJzKHRpbWVfZGVzaWduX29wdGlvbnMsc2V0dXApXX0gewotICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgInRpbWVfZGVzaWduIC1yZXBvcnRfcHJlZml4IHNpZ25vZmYgLXNpZ25fb2ZmIC1yZXBvcnRfb25seSAtcmVwb3J0X2RpciAkdmFycyhycHRfZGlyKVxuIgotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIHNldCBjb21tYW5kIFtmb3JtYXQgInRpbWVfZGVzaWduIC1yZXBvcnRfcHJlZml4IHNpZ25vZmYgLXNpZ25fb2ZmIC1yZXBvcnRfb25seSAtcmVwb3J0X2RpciAkdmFycyhycHRfZGlyKSAlc1xuIiAkdmFycyh0aW1lX2Rlc2lnbl9vcHRpb25zLHNldHVwKV0KLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBpZiB7IVtpbmZvIGV4aXN0cyB2YXJzKHRpbWVfZGVzaWduX29wdGlvbnMsc2V0dXApXX0gewotICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgInRpbWVfZGVzaWduIC1yZXBvcnRfcHJlZml4IHNpZ25vZmYgLXNpZ25fb2ZmIC1zaSAtcmVwb3J0X29ubHkgLXJlcG9ydF9kaXIgJHZhcnMocnB0X2RpcilcbiIKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBzZXQgY29tbWFuZCBbZm9ybWF0ICJ0aW1lX2Rlc2lnbiAtcmVwb3J0X3ByZWZpeCBzaWduX29mZiAtc2lnbm9mZiAtc2kgLXJlcG9ydF9vbmx5IC1yZXBvcnRfZGlyICR2YXJzKHJwdF9kaXIpICVzXG4iICR2YXJzKHRpbWVfZGVzaWduX29wdGlvbnMsc2V0dXApXQotICAgICAgICAgICAgfQotICAgICAgICAgfQotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kIHNpZ25vZmYsdGltZV9kZXNpZ25fc2V0dXAgJGNvbW1hbmRdCi0gICAgICAgICBpZiB7JHZhcnMoZW5hYmxlX3NpX2F3YXJlKX0gewotICAgICAgICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycyh0aW1lX2Rlc2lnbl9vcHRpb25zLGhvbGQpXX0gewotICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgInRpbWVfZGVzaWduIC1yZXBvcnRfcHJlZml4IHNpZ25vZmYgLXNpZ25fb2ZmIC1yZXBvcnRfb25seSAtaG9sZCAtcmVwb3J0X2RpciAkdmFycyhycHRfZGlyKVxuIgotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIHNldCBjb21tYW5kIFtmb3JtYXQgInRpbWVfZGVzaWduIC1yZXBvcnRfcHJlZml4IHNpZ25vZmYgLXNpZ25fb2ZmIC1yZXBvcnRfb25seSAtaG9sZCAtcmVwb3J0X2RpciAkdmFycyhycHRfZGlyKSAlc1xuIiAkdmFycyh0aW1lX2Rlc2lnbl9vcHRpb25zLGhvbGQpXQotICAgICAgICAgICAgfQotICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIGlmIHshW2luZm8gZXhpc3RzIHZhcnModGltZV9kZXNpZ25fb3B0aW9ucyxob2xkKV19IHsKLSAgICAgICAgICAgICAgIHNldCBjb21tYW5kICJ0aW1lX2Rlc2lnbiAtcmVwb3J0X3ByZWZpeCBzaWdub2ZmIC1zaWduX29mZiAtc2kgLXJlcG9ydF9vbmx5IC1ob2xkICAtcmVwb3J0X2RpciAkdmFycyhycHRfZGlyKVxuIgotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIHNldCBjb21tYW5kIFtmb3JtYXQgInRpbWVfZGVzaWduIC1yZXBvcnRfcHJlZml4IHNpZ25fb2ZmIC1zaWdub2ZmIC1zaSAtcmVwb3J0X29ubHkgLWhvbGQgLXJlcG9ydF9kaXIgJHZhcnMocnB0X2RpcikgJXNcbiIgJHZhcnModGltZV9kZXNpZ25fb3B0aW9ucyxob2xkKV0KLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0KLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCBzaWdub2ZmLHRpbWVfZGVzaWduX2hvbGQgJGNvbW1hbmRdCi0gICAgICB9Ci0KLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICMgRHVtcCBHRFMgYW5kL29yIE9BIGRhdGEgYmFzZQotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGdkc19sYXllcl9tYXApXX0gewotICAgICAgICAgc2V0IGNvbW1hbmQgIndyaXRlX3N0cmVhbSAkdmFycyhkZXNpZ24pLmdkcy5neiAtbWFwX2ZpbGUgJHZhcnMoZ2RzX2xheWVyX21hcCkgIgotICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGdkc19maWxlcyldfSB7Ci0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiLW1lcmdlIHsgIgotICAgICAgICAgICAgZm9yZWFjaCBmaWxlICR2YXJzKGdkc19maWxlcykgewotICAgICAgICAgICAgICAgaWYge1tmaWxlIGV4aXN0cyAkZmlsZV19IHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICIkZmlsZSAiCi0gICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgcHV0cyAgIjxGRj4gV0FSTklORzogR0RTIEZJTEUgJGZpbGUgRE9FUyBOT1QgRVhJU1QgLi4uLiBTS0lQUElOR1xuIgotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIn0iCi0gICAgICAgICB9Ci0gICAgICAgICBhcHBlbmQgY29tbWFuZCAiXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgc2lnbm9mZixzdHJlYW1fb3V0ICRjb21tYW5kXQotICAgICAgfQotICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKG9hc2lzX2xheWVyX21hcCldfSB7Ci0gICAgICAgICBzZXQgY29tbWFuZCAid3JpdGVfb2FzaXMgJHZhcnMoZGVzaWduKS5vYXNpcy5neiAtbWFwX2ZpbGUgJHZhcnMob2FzaXNfbGF5ZXJfbWFwKSAiCi0gICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMob2FzaXNfZmlsZXMpXX0gewotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIi1tZXJnZSB7ICIKLSAgICAgICAgICAgIGZvcmVhY2ggZmlsZSAkdmFycyhvYXNpc19maWxlcykgewotICAgICAgICAgICAgICAgaWYge1tmaWxlIGV4aXN0cyAkZmlsZV19IHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICIkZmlsZSAiCi0gICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgcHV0cyAgIjxGRj4gV0FSTklORzogT0FTSVMgRklMRSAkZmlsZSBET0VTIE5PVCBFWElTVCAuLi4uIFNLSVBQSU5HXG4iCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAifSIKLSAgICAgICAgIH0KLSAgICAgICAgIGFwcGVuZCBjb21tYW5kICJcbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCBzaWdub2ZmLG9hc2lzX291dCAkY29tbWFuZF0KLSAgICAgIH0KLQotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgIyBEdW1wIE1vZGVsIGZvciBUb3AgTGV2ZWwgKEhpZXJhcmNoaWNhbCBGbG93IE9ubHkpCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICBzZXQgcHRuIFtmaWxlIHRhaWwgW3B3ZF1dCi0gICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMocGFydGl0aW9uX2xpc3QpXX0gewotICAgICAgICAgaWYgeyhbbHNlYXJjaCAkdmFycyhwYXJ0aXRpb25fbGlzdCkgJHB0bl0gIT0gLTEpfSB7Ci0gICAgICAgICAgICBpZiB7W3N0cmluZyBjb21wYXJlIC1ub2Nhc2UgJHZhcnMoZGJzX2Zvcm1hdCkgImZlIl09PTB9IHsKLSAgICAgICAgICAgICAgIHNldCBjb21tYW5kICJ3cml0ZV9pbG0gLW9wdF9zdGFnZSBwb3N0Y3RzIC10eXBlX2ZsZXhfaWxtIGlsbSAtdG9fZGlyIFxbZ2V0X2RiIGRlc2lnbnMgLm5hbWVcXS5pbG1cbiIKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBpZiB7W2xpbmRleCBbc3BsaXQgJHZhcnModmVyc2lvbikgIi4iXSAgMF0gPiAxMH0gewotICAgICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgIndyaXRlX2lsbSAtb3B0X3N0YWdlIHBvc3RjdHMgLXR5cGVfZmxleF9pbG0gaWxtIC1vYV9jZWxsdmlldyB7JHZhcnMob2FfcGFydGl0aW9uX2xpYikgXFtnZXRfZGIgZGVzaWducyAubmFtZVxdIGlsbX1cbiIKLSAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICBzZXQgY29tbWFuZCAid3JpdGVfaWxtIC1vcHRfc3RhZ2UgcG9zdGN0cyAtdHlwZV9mbGV4X2lsbSBpbG0gLXRvX2RpciBcW2dldF9kYiBkZXNpZ25zIC5uYW1lXF0uaWxtXG4iCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9IAotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kIHNpZ25vZmYsd3JpdGVfaWxtICRjb21tYW5kXQotICAgICAgICAgfSBlbHNlaWYgeyR2YXJzKHN0ZXApICE9ICJhc3NlbWJsZSJ9IHsKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCBzaWdub2ZmLHVuZmxhdHRlbl9pbG0gInVuZmxhdHRlbl9pbG1cbiJdCi0gICAgICAgICB9Ci0gICAgICB9Ci0KLSAgICAgIGlmIHskdmFycyh2ZXJib3NlKX0gewotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgUlVOTklORyBWRVJJRlkgQ09NTUFORFNcbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiI1xuIgotICAgICAgfQotCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAjIFJ1biB2ZXJpZnkgY29tbWFuZHMKLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgIGlmIHshKFtpbmZvIGV4aXN0cyB2YXJzKGVuYWJsZV9zaWdub2ZmX2VjbyldICYmICR2YXJzKGVuYWJsZV9zaWdub2ZmX2VjbykpfSB7Ci0gICAgICAgICBzZXQgY29tbWFuZCAicmVwb3J0X3N1bW1hcnkgLW91dF9kaXIgJHZhcnMocnB0X2RpcilcbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCBzaWdub2ZmLHJlcG9ydF9zdW1tYXJ5ICRjb21tYW5kXQotICAgICAgfQotICAgICAgc2V0IGNvbW1hbmQgImNoZWNrX2Nvbm5lY3Rpdml0eVxuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kIHNpZ25vZmYsY2hlY2tfY29ubmVjdGl2aXR5ICRjb21tYW5kXQotICAgICAgc2V0IGNvbW1hbmQgImNoZWNrX2RyY1xuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kIHNpZ25vZmYsY2hlY2tfZHJjICRjb21tYW5kXQotICAgICAgc2V0IGNvbW1hbmQgImNoZWNrX21ldGFsX2RlbnNpdHlcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCBzaWdub2ZmLGNoZWNrX21ldGFsX2RlbnNpdHkgJGNvbW1hbmRdCi0gICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMocGFydGl0aW9uX2xpc3QpXSAmJiAoW2xzZWFyY2ggJHZhcnMocGFydGl0aW9uX2xpc3QpICRwdG5dICE9IC0xKX0gewotICAgICAgICAgaWYge1tzdHJpbmcgY29tcGFyZSAkdmFycyhkYnNfZm9ybWF0KSAiZmUiXT09MH0gewotICAgICAgICAgICBzZXQgY29tbWFuZCAiY2hlY2tfcHJvY2Vzc19hbnRlbm5hIC1sZWZfZmlsZSAkcHRuLmFudGVubmEubGVmXG4iCi0gICAgICAgICB9IGVsc2UgewotICAgICAgICAgICBzZXQgY29tbWFuZCAiY2hlY2tfcHJvY2Vzc19hbnRlbm5hXG4iCi0gICAgICAgICAjIE5vdCBzdXJlIHlldCAgaG93IHNhdmVfYWJzdHJhY3QgIHdvdWxkIGJlIGNhbGxlZC0gc2tpcCB0aGlzIGZvciBub3cuCi0gICAgICAgICB9Ci0gICAgICB9IGVsc2UgewotICAgICAgICAgc2V0IGNvbW1hbmQgImNoZWNrX3Byb2Nlc3NfYW50ZW5uYVxuIgotICAgICAgfQotICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kIHNpZ25vZmYsdmVyaWZ5X3Byb2Nlc3NfYW50ZW5uYSAkY29tbWFuZF0KLQotICAgICAgaWYgeyhbaW5mbyBleGlzdHMgdmFycyhlbmFibGVfbHZzKV0gJiYgJHZhcnMoZW5hYmxlX2x2cykpICYmICgkdmFycyhkYnNfZm9ybWF0KSA9PSAib2EiKX0gewotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRl9FREk6OmNyZWF0ZV9sdnNfZGF0YV0KLSAgICAgIH0KLSAgICAgIGlmIHskdmFycyhub3Z1cyl9IHsKLSAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJzZXRfZmxvd2tpdF93cml0ZV9kYl9hcmdzIC1kZWZcbiIKLSAgICAgIH0KLQotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgIyBMb2FkIG9wdGlvbmFsIHBvc3Qgc2lnbm9mZiBmaWxlIChwbHVnLWluKQotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6c291cmNlX3BsdWcgcG9zdF9zaWdub2ZmX3RjbCAwXQotCi0gICAgICBpZiB7JHZhcnMoY29kZWdlbil9IHsKLSAgICAgICAgIHJldHVybiAkY29tbWFuZHMKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgdXBsZXZlbCAjMCBldmFsICRjb21tYW5kcwotICAgICAgfQotCi0gICB9Ci0KLSAgIHByb2MgcnVuX2Fzc2VtYmxlIHt7Zm9ybWF0IDF9fSB7Ci0KLSAgICAgIGdsb2JhbCB2YXJzCi0gICAgICBnbG9iYWwgZXJyb3JzCi0gICAgICBnbG9iYWwgZW52Ci0KLSAgICAgIHNldCB2YXJzKHN0ZXApIGFzc2VtYmxlCi0gICAgICBzZXQgY29tbWFuZHMgIiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyAic2V0IHZhcnMoc3RlcCkgJHZhcnMoc3RlcClcbiIKLQotICAgICAgRkZfTk9WVVM6OmluaXRpYWxpemVfc3RlcCBhc3NlbWJsZQotCi0jICAgICAgaWYgeyR2YXJzKHJlcG9ydF9ydW5fdGltZSl9IHsKLSMgICAgICAgICBhcHBlbmQgY29tbWFuZHMgInNldCB2YXJzKCR2YXJzKHN0ZXApLHN0YXJ0X3RpbWUpIFxbY2xvY2sgc2Vjb25kc1xdXG4iCi0jICAgICAgfQotCi0gICAgICBpZiB7JHZhcnModmVyYm9zZSl9IHsKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiI1xuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjIEFTU0VNQkxJTkcgREVTSUdOXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiNcbiIKLSAgICAgIH0KLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICMgTG9hZCAicHJlIGFzc2VtYmxlIiBwbHVnLWluIHNjcmlwdAotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6c291cmNlX3BsdWcgcHJlX2Fzc2VtYmxlX3RjbF0KLQotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgIyBBc3NlbWJsZSB0aGUgZGVzaWduCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICBzZXQgdmFycyhpbG0pIGZhbHNlCi0gICAgICBzZXQgaWxtX2xpc3QgW2xpc3RdCi0gICAgICBzZXQgcGFjX2xpc3QgW2xpc3RdCi0gICAgICBpZiB7JHZhcnMoZW5hYmxlX3BhYyl9IHsKLSAgICAgICAgIGZvcmVhY2ggcGFydCAkdmFycyhwYXJ0aXRpb25fbGlzdCkgewotICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCRwYXJ0LHBhY19tb2RlKV19ICB7Ci0gICAgICAgICAgICAgICBpZiB7JHZhcnMoJHBhcnQscGFjX21vZGUpID09ICJpbG0ifSB7Ci0gICAgICAgICAgICAgICAgICBsYXBwZW5kIGlsbV9saXN0ICRwYXJ0Ci0gICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgbGFwcGVuZCBwYWNfbGlzdCAkcGFydAotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAgfQotICAgICAgfQotICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGlsbV9saXN0KV0gJiYgKCR2YXJzKGlsbV9saXN0KSAhPSAiIil9IHsKLSAgICAgICAgIGZvcmVhY2ggaWxtICR2YXJzKGlsbV9saXN0KSB7Ci0gICAgICAgICAgICBpZiB7KFtsc2VhcmNoICRpbG1fbGlzdCAkaWxtXSA9PSAtMSkgJiYgKFtsc2VhcmNoICRwYWNfbGlzdCAkaWxtXSA9PSAtMSl9IHsKLSAgICAgICAgICAgICAgIGxhcHBlbmQgaWxtX2xpc3QgJGlsbQotICAgICAgICAgICAgfQotICAgICAgICAgfQotICAgICAgfQotICAgICAgaWYgeyRpbG1fbGlzdCAhPSAiIn0gewotICAgICAgICAgc2V0IHZhcnMoaWxtKSB0cnVlIAotICAgICAgfQotCi0gICAgICBpZiB7JHZhcnMoaGllcl9mbG93X3R5cGUpID09ICIycGFzcyJ9IHsKLSAgICAgICAgIHNldCBwYXJ0aXRpb25fZGlyICR2YXJzKHBhcnRpdGlvbl9kaXJfcGFzczIpCi0gICAgICAgfSBlbHNlIHsKLSAgICAgICAgIHNldCBwYXJ0aXRpb25fZGlyICR2YXJzKHBhcnRpdGlvbl9kaXIpCi0gICAgICB9Ci0gICAgICBzZXQgZGlyIFtmaWxlIHRhaWwgW3N1YnN0ICR2YXJzKGRic19kaXIpXV0KLQotICAgICAgaWYge1tsaW5kZXggW3NwbGl0ICR2YXJzKHZlcnNpb24pICIuIl0gIDBdID4gMTB9IHsKLSAgICAgICAgIHNldCBjb21tYW5kIFtGRl9OT1ZVUzo6aW5pdGlhbGl6ZV90aW1pbmcgbW1tY10KLSAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhjcGZfZmlsZSldICYmICR2YXJzKGNwZl90aW1pbmcpfSB7Ci0gICAgICAgICAgICBzZXQgbW1tY19maWxlICR2YXJzKHNjcmlwdF9kaXIpL2luY3Jfdmlld19kZWZpbml0aW9uLnRjbAotICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyh2aWV3X2RlZmluaXRpb25fdGNsKV19IHsKLSAgICAgICAgICAgICAgIHNldCBtbW1jX2ZpbGUgJHZhcnModmlld19kZWZpbml0aW9uX3RjbCkKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBzZXQgbW1tY19maWxlICR2YXJzKHNjcmlwdF9kaXIpL3ZpZXdfZGVmaW5pdGlvbi50Y2wKLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0KLSAgICAgIH0KLSAgICAgIGlmIHsoW3N0cmluZyBjb21wYXJlIC1ub2Nhc2UgJHZhcnMoZGJzX2Zvcm1hdCkgIm9hIl09PTApICYmIChbbGluZGV4IFtzcGxpdCAkdmFycyh2ZXJzaW9uKSAiLiJdICAwXSA+IDEwKX0gewotCi0gICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJHZhcnMoZGVzaWduKSxhc3NlbWJsZV9zdGVwKV19IHsKLSAgICAgICAgICAgIHNldCBjb21tYW5kICJhc3NlbWJsZV9kZXNpZ24gLXRvcF9kZXNpZ24geyR2YXJzKG9hX3BhcnRpdGlvbl9saWIpICR2YXJzKGRlc2lnbikgJHZhcnMoJHZhcnMoZGVzaWduKSxhc3NlbWJsZV9zdGVwKX0gLW1tbWNfZmlsZSAkbW1tY19maWxlIgotICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHNldCBjb21tYW5kICJhc3NlbWJsZV9kZXNpZ24gLXRvcF9kZXNpZ24geyR2YXJzKG9hX3BhcnRpdGlvbl9saWIpICR2YXJzKGRlc2lnbikgc2lnbm9mZn0gLW1tbWNfZmlsZSAkbW1tY19maWxlIgotICAgICAgICAgfQotICAgICAgICAgZm9yZWFjaCBwYXJ0ICR2YXJzKHBhcnRpdGlvbl9saXN0KSB7Ci0gICAgICAgICAgICBpZiB7W2xzZWFyY2ggJGlsbV9saXN0ICRwYXJ0XSA9PSAtMX0gewotICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCRwYXJ0LGFzc2VtYmxlX3N0ZXApXX0gewotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIlxcXG4gICAtYmxvY2sgeyR2YXJzKG9hX3BhcnRpdGlvbl9saWIpICRwYXJ0ICR2YXJzKCR2YXJzKCRwYXJ0KSxhc3NlbWJsZV9zdGVwKX0iCi0gICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIlxcXG4gICAtYmxvY2sgeyR2YXJzKG9hX3BhcnRpdGlvbl9saWIpICRwYXJ0IHNpZ25vZmZ9IgotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAgfQotICAgICAgfSBlbHNlIHsKLSMgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgYXNzZW1ibGUsaW5pdGlhbGl6ZV90aW1pbmcgJGNvbW1hbmRdCi0gICAgICAgICBpZiB7W2xpbmRleCBbc3BsaXQgJHZhcnModmVyc2lvbikgIi4iXSAgMF0gPiAxMH0gewotICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGNwZl9maWxlKV0gJiYgJHZhcnMoY3BmX3RpbWluZyl9IHsKLSAgICAgICAgICAgICAgIHNldCBhc3NlbWJsZV9jb21tYW5kICJhc3NlbWJsZV9kZXNpZ24gLXBvd2VyX2ludGVudF9maWxlICR2YXJzKGNwZl9maWxlKSIKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBzZXQgYXNzZW1ibGVfY29tbWFuZCAiYXNzZW1ibGVfZGVzaWduIC1tbW1jX2ZpbGUgJG1tbWNfZmlsZSIKLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBzZXQgYXNzZW1ibGVfY29tbWFuZCAiYXNzZW1ibGVfZGVzaWduIgotICAgICAgICAgfQotICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCR2YXJzKGRlc2lnbiksYXNzZW1ibGVfZGJzKV19IHsKLSAgICAgICAgICAgIHNldCBjb21tYW5kICIkYXNzZW1ibGVfY29tbWFuZCAtdG9wX2RpciAkdmFycygkdmFycyhkZXNpZ24pLGFzc2VtYmxlX2RicykiCi0gICAgICAgICB9IGVsc2VpZiB7W2luZm8gZXhpc3RzIHZhcnMoJHZhcnMoZGVzaWduKSxhc3NlbWJsZV9zdGVwKV19IHsKLSAgICAgICAgICAgIHNldCBjb21tYW5kICIkYXNzZW1ibGVfY29tbWFuZCAkcGFydGl0aW9uX2Rpci8kdmFycyhkZXNpZ24pLyRkaXIvJHZhcnMoJHZhcnMoZGVzaWduKSxhc3NlbWJsZV9zdGVwKS5lbmMiCi0gICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgaWYgeyR2YXJzKGdlbmVyYXRlX2Zsb3dfc3RlcHMpfSB7Ci0gICAgICAgICAgICAgICBzZXQgY29tbWFuZCAiJGFzc2VtYmxlX2NvbW1hbmQgLXRvcF9kaXIgJHBhcnRpdGlvbl9kaXIvJHZhcnMoZGVzaWduKS8kZGlyL3RvcC50b3Bfc2lnbm9mZi5lbmMgIgotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIHNldCBjb21tYW5kICIkYXNzZW1ibGVfY29tbWFuZCAtdG9wX2RpciAkcGFydGl0aW9uX2Rpci8kdmFycyhkZXNpZ24pLyRkaXIvc2lnbm9mZi5lbmMgIgotICAgICAgICAgICAgfQotICAgICAgICAgfQotICAgICAgICAgZm9yZWFjaCBwYXJ0ICR2YXJzKHBhcnRpdGlvbl9saXN0KSB7Ci0gICAgICAgICAgICBpZiB7W2xzZWFyY2ggJGlsbV9saXN0ICRwYXJ0XSA9PSAtMX0gewotICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCRwYXJ0LGFzc2VtYmxlX2RicyldfSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiXFxcbiAgIC1ibG9ja19kaXIgJHZhcnMoJHBhcnQsYXNzZW1ibGVfZGJzKSIKLSAgICAgICAgICAgICAgIH0gZWxzZWlmIHtbaW5mbyBleGlzdHMgdmFycygkcGFydCxhc3NlbWJsZV9zdGVwKV19IHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJcXFxuICAgLWJsb2NrX2RpciAkcGFydGl0aW9uX2Rpci8kcGFydC8kZGlyLyR2YXJzKCRwYXJ0LGFzc2VtYmxlX3N0ZXApLmVuYyIKLSAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICBpZiB7JHZhcnMoZ2VuZXJhdGVfZmxvd19zdGVwcyl9IHsKLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJcXFxuICAgLWJsb2NrX2RpciAkcGFydGl0aW9uX2Rpci8kcGFydC8kZGlyL2Jsb2NrLnNpZ25vZmYuZW5jIgotICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJcXFxuICAgLWJsb2NrX2RpciAkcGFydGl0aW9uX2Rpci8kcGFydC8kZGlyL3NpZ25vZmYuZW5jIgotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAgfQotICAgICAgfQotICAgICAgaWYgeyR2YXJzKGVuYWJsZV9wYWMpfSB7Ci0gICAgICAgICBhcHBlbmQgY29tbWFuZCAiXFxcbiAtaGllckRpciAkdmFycyhwYWNfc2NyYXRjaF9kaXIpIgotICAgICAgfQotICAgICAgYXBwZW5kIGNvbW1hbmQgIlxuXG4iCi0KLSAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCBhc3NlbWJsZSxhc3NlbWJsZV9kZXNpZ24gJGNvbW1hbmRdCi0gICAgICBpZiB7KFtsaW5kZXggW3NwbGl0ICR2YXJzKHZlcnNpb24pICIuIl0gIDBdID4gMTApICYmICR2YXJzKGNwZl90aW1pbmcpfSB7Ci0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgInNvdXJjZSAkbW1tY19maWxlXG4iCi0gICAgICB9Ci0gICAgICBpZiB7JHZhcnMoZmxvdykgPT0gIm1tbWMifSB7Ci0gICAgICAgICBzZXQgY29tbWFuZCBbRkZfTk9WVVM6OmRlcmF0ZV90aW1pbmcgbW1tY10KLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxkZXJhdGVfdGltaW5nICRjb21tYW5kXQotICAgICAgfQotCi0gICAgICBpZiB7JHZhcnMoY2FwdHVyZV9tZXRyaWNzKX0gewotICAgICAgICAgaWYge1tsaW5kZXggW3NwbGl0ICR2YXJzKHZlcnNpb24pICIuIl0gIDBdID4gMTN9IHsKLSAgICAgICAgICAgIGlmIHskdmFycyhzdGVwKSAhPSAiZGVidWcifSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgImVuYWJsZV9tZXRyaWNzIC1vblxuIgotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJwdXNoX3NuYXBzaG90X3N0YWNrXG4iCi0gICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0gICAgICB9Ci0KLSAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OnNvdXJjZV9wbHVnIGFsd2F5c19zb3VyY2VfdGNsXQotCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAjIExvYWQgInBvc3QgYXNzZW1ibGUiIHBsdWctaW4gc2NyaXB0Ci0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjpzb3VyY2VfcGx1ZyBwb3N0X2Fzc2VtYmxlX3RjbCAwXQotCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAjIFNwZWNpZnkgSUxNcyBpZiBkZWZpbmVkCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICBpZiB7JHZhcnMoaWxtKX0gewotICAgICAgICAgaWYgeyR2YXJzKHZlcmJvc2UpfSB7Ci0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiNcbiIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyBTUEVDSUZZSU5HIElMTXNcbiIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiI1xuIgotICAgICAgICAgfQotICAgICAgICAgc2V0IGNvbW1hbmQgIiIgCi0gICAgICAgICBmb3JlYWNoIGNlbGwgJGlsbV9saXN0IHsKLSAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkY2VsbCxpbG1fZGlyKV0gJiYgW2ZpbGUgaXNkaXJlY3RvcnkgJHZhcnMoJGNlbGwsaWxtX2RpcildfSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAic3BlY2lmeUlsbSAtY2VsbCAkY2VsbCAtZGlyICR2YXJzKCRjZWxsLGlsbV9kaXIpXG4iCi0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgcHV0cyAiPEZGPiBXQVJOSU5HOiBJTE0gRElSRUNUT1JZIE1JU1NJTkcgRk9SICRjZWxsIC4uLiBTS0lQUElORyIKLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0gCi0gIAotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kIGFzc2VtYmxlLHNwZWNpZnlfaWxtICRjb21tYW5kXQotICAKLSAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhpbG1fbm9uX3NkY19maWxlKV19IHsKLSAgICAgICAgICAgIGlmIHtbbGluZGV4IFtzcGxpdCAkdmFycyh2ZXJzaW9uKSAiLiJdICAwXSA8PSAxMH0gewotICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgImxvYWRUaW1pbmdDb24gLWlsbU5vblNkY0ZpbGUgJHZhcnMoaWxtX25vbl9zZGNfZmlsZSlcbiIKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBzZXQgY29tbWFuZCAic2V0SWxtTm9uU2RjQ29uc3RyYWludEZpbGUgJHZhcnMoaWxtX25vbl9zZGNfZmlsZSlcbiIKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCBhc3NlbWJsZSxsb2FkX2lsbV9ub25fc2RjX2ZpbGUgJGNvbW1hbmRdCi0gICAgICAgICB9Ci0gICAgICB9Ci0KLSMgICAgICBpZiB7W2xpbmRleCBbc3BsaXQgJHZhcnModmVyc2lvbikgIi4iXSAgMF0gPD0gMTB9IHsKLSMgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoY3BmX2ZpbGUpXX0gewotIyAgICAgICAgICAgIHNldCBjb21tYW5kICJsb2FkQ1BGICR2YXJzKGNwZl9maWxlKVxuIgotIyAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCBhc3NlbWJsZSxsb2FkX2NwZiAkY29tbWFuZF0KLSMgICAgICAgICAgICBzZXQgY29tbWFuZCAiY29tbWl0Q1BGIgotIyAgICAgICAgICAgIGlmIHskdmFycyhjcGZfa2VlcF9yb3dzKX0gewotIyAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgLWtlZXBSb3dzIgotIyAgICAgICAgICAgIH0KLSMgICAgICAgICAgICBpZiB7JHZhcnMoY3BmX3Bvd2VyX2RvbWFpbil9IHsKLSMgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiIC1wb3dlcl9kb21haW4iCi0jICAgICAgICAgICAgfQotIyAgICAgICAgICAgIGlmIHskdmFycyhjcGZfaXNvbGF0aW9uKX0gewotIyAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgLWlzb2xhdGlvbiIKLSMgICAgICAgICAgICB9Ci0jICAgICAgICAgICAgaWYgeyR2YXJzKGNwZl9zdGF0ZV9yZXRlbnRpb24pfSB7Ci0jICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAtc3RhdGVfcmV0ZW50aW9uIgotIyAgICAgICAgICAgIH0KLSMgICAgICAgICAgICBpZiB7JHZhcnMoY3BmX2xldmVsX3NoaWZ0ZXIpfSB7Ci0jICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAtbGV2ZWxfc2hpZnRlciIKLSMgICAgICAgICAgICB9Ci0jICAgICAgICAgICAgaWYgeyR2YXJzKGNwZl9wb3dlcl9zd2l0Y2gpfSB7Ci0jICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAtcG93ZXJfc3dpdGNoIgotIyAgICAgICAgICAgIH0KLSMgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiXG4iCi0jICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kIGFzc2VtYmxlLGNvbW1pdF9jcGYgJGNvbW1hbmRdCi0jICAgICAgICAgfQotIyAgICAgIH0KLQotICAgICAgaWYge1tsaW5kZXggW3NwbGl0ICR2YXJzKHZlcnNpb24pICIuIl0gIDBdIDw9IDEwfSB7Ci0gICAgICAgICBzZXQgY29tbWFuZCBbRkZfTk9WVVM6OmluaXRpYWxpemVfdGltaW5nIG1tbWNdCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgYXNzZW1ibGUsaW5pdGlhbGl6ZV90aW1pbmcgJGNvbW1hbmRdCi0gICAgICB9IGVsc2VpZiB7W2luZm8gZXhpc3RzIHZhcnMoY3BmX2ZpbGUpXSAmJiAkdmFycyhjcGZfdGltaW5nKX0gewotICAgICAgICAgc2V0IGNvbW1hbmQgW0ZGX05PVlVTOjppbml0aWFsaXplX3RpbWluZyBtbW1jXQotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kIGFzc2VtYmxlLGluaXRpYWxpemVfdGltaW5nICRjb21tYW5kXQotICAgICAgfQotCi0gICAgICBzZXQgY29tbWFuZCBbRkZfTk9WVVM6OnVwZGF0ZV90aW1pbmcgbW1tYyBdCi0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgYXNzZW1ibGUsdXBkYXRlX3RpbWluZyAkY29tbWFuZF0KLQotICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGVuYWJsZV9zaWdub2ZmX2VjbyldICYmICR2YXJzKGVuYWJsZV9zaWdub2ZmX2Vjbyl9IHsKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OnNvdXJjZV9wbHVnIHByZV9zaWdub2ZmX2Vjb190Y2wgMF0KLSAgICAgICAgIHNldCBjb21tYW5kICJjaGVja19jb25uZWN0aXZpdHlcbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCBhc3NlbWJsZSxwcmVfc2lnbm9mZl9lY29fdmVyaWZ5X2Nvbm5lY3Rpdml0eSAkY29tbWFuZF0KLSAgICAgICAgIHNldCBjb21tYW5kICJjaGVja19kcmNcbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCBhc3NlbWJsZSxwcmVfc2lnbm9mZl9lY29fdmVyaWZ5X2dlb21ldHJ5ICRjb21tYW5kXQotCi0gICAgICAgICBpZiB7JHZhcnModmVyYm9zZSl9IHsKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiI1xuIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjIFJVTk5JTkcgU0lHTi1PRkYgRUNPXG4iCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiNcbiIKLSAgICAgICAgIH0KLQotICAgICAgICAgc2V0IGNvbW1hbmQgW0ZGX05PVlVTOjpkZWxldGVfZmlsbGVyX2NlbGxzXQotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kIGFzc2VtYmxlLGRlbGV0ZV9maWxsZXJfY2VsbHMgJGNvbW1hbmRdCi0KLSAgICAgICAgIHNldCBjb21tYW5kICJleHRyYWN0X3JjXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgYXNzZW1ibGUsZXh0cmFjdF9yYyAkY29tbWFuZF0KLQotICAgICAgICAgc2V0IG9wIFtvcGVuIHB0bi50eHQgd10KLSAgICAgICAgIGZvcmVhY2ggcHRuICR2YXJzKHBhcnRpdGlvbl9saXN0KSB7Ci0gICAgICAgICAgICBwdXRzICRvcCAiJHB0biIKLSAgICAgICAgIH0KLSAgICAgICAgIGNsb3NlICRvcCAKLQotICAgICAgICAgc2V0IGNvbW1hbmQgInNldF9kYiBvcHRfc2lnbm9mZl9wYXJ0aXRpb25fbGlzdF9maWxlIFwicHRuLnR4dFwiXG4iIAotICAgICAgICAgYXBwZW5kIGNvbW1hbmQgInNldF9kYiBvcHRfc2lnbm9mZl9vcHRpbWl6ZV9yZXBsaWNhdGVkX21vZHVsZXMgdHJ1ZVxuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kIGFzc2VtYmxlLHNldF9zaWdub2ZmX21vZGUgJGNvbW1hbmRdCi0KLSAgICAgICAgIHNldCBjb21tYW5kICJ0aW1lX3NpZ25vZmYgLXJlcG9ydF9vbmx5XG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgYXNzZW1ibGUsdGltZV9zaWdub2ZmICRjb21tYW5kXQotICAgICAgICAgc2V0IGNvbW1hbmQgIm9wdF9kZXNpZ25fc2lnbm9mZiAtc2V0dXAgLW5vX2Vjb19yb3V0ZVxuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kIGFzc2VtYmxlLHNpZ25vZmZfb3B0X2Rlc2lnbiAkY29tbWFuZF0KLSAgICAgICAgIHNldCBjb21tYW5kICJhZGRfZmlsbGVyXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgYXNzZW1ibGUsYWRkX2ZpbGxlcl9jZWxscyAkY29tbWFuZF0KLSAgICAgICAgIHNldCBjb21tYW5kICJlY29fcm91dGUgLWhhbmRsZV9wYXJ0aXRpb25cbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCBhc3NlbWJsZSxlY29fcm91dGUgJGNvbW1hbmRdCi0KLSAgICAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICAgICMgT3B0aW9uYWxseSBydW4gTFBBCi0gICAgICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAKLSAgICAgICAgIGlmIHskdmFycyh2ZXJpZnlfbGl0aG8pfSB7Ci0gICAgICAgICAgICAjIEJDTDogQWRkZWQgc3Vic3QgdG8gaGFuZGxlIGRlcmVyZW5jaW5nIHZhcmlhYmxlcwotICAgICAgICAgICAgZmlsZSBta2RpciAgW3N1YnN0ICR2YXJzKHJwdF9kaXIpXS9MUEEvRE1DCi0gICAgICAgICAgICBzZXQgY29tbWFuZCAidmVyaWZ5TGl0aG8gLXJvdXRpbmdMYXllcnNPbmx5IC10ZWNoRmlsZSAkdmFycyhscGFfdGVjaF9maWxlKSAtZGlyICR2YXJzKHJwdF9kaXIpL0xQQVxuIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgInZpb2xhdGlvbkJyb3dzZXIgLWFsbCAtbm9fZGlzcGxheV9mYWxzZVxuIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgImxvYWRWaW9sYXRpb25SZXBvcnQgLXR5cGUgQ0ROTGl0aG8gLWZpbGVuYW1lICR2YXJzKHJwdF9kaXIpL0xQQS9ETUMvbWVyZ2VkLmhpZlxuIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kIGFzc2VtYmxlLHZlcmlmeV9saXRobyAkY29tbWFuZF0KLSAgICAgICAgIH0KLQotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6c291cmNlX3BsdWcgcG9zdF9zaWdub2ZmX2Vjb190Y2wgMF0KLSAgICAgICAgIHNldCBjb21tYW5kICJjaGVja19jb25uZWN0aXZpdHlcbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCBhc3NlbWJsZSxwb3N0X3NpZ25vZmZfZWNvX3ZlcmlmeV9jb25uZWN0aXZpdHkgJGNvbW1hbmRdCi0gICAgICAgICBzZXQgY29tbWFuZCAiY2hlY2tfZHJjXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgYXNzZW1ibGUscG9zdF9zaWdub2ZmX2Vjb192ZXJpZnlfZ2VvbWV0cnkgJGNvbW1hbmRdCi0gICAgICB9IGVsc2VpZiB7JHZhcnMoZW5hYmxlX3BhYyl9IHsKLSAgICAgICAgIHNldCBjb21tYW5kICJjaGVja19jb25uZWN0aXZpdHlcbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCBhc3NlbWJsZSxwcmVfcGFjX3ZlcmlmeV9jb25uZWN0aXZpdHkgJGNvbW1hbmRdCi0gICAgICAgICBzZXQgY29tbWFuZCAiY2hlY2tfZHJjXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgYXNzZW1ibGUscHJlX3BhY192ZXJpZnlfZ2VvbWV0cnkgJGNvbW1hbmRdCi0KLSAgICAgICAgIGlmIHskdmFycyh2ZXJib3NlKX0gewotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjXG4iCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgREVGSU5JTkcgUEFDIE1PREVTXG4iCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiNcbiIKLSAgICAgICAgIH0KLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OnNvdXJjZV9wbHVnIHByZV9wYWNfdGNsIDBdCi0gICAgICAgICBzZXQgY29tbWFuZCAiIgotICAgICAgICAgZm9yZWFjaCBwYXJ0ICRwYWNfbGlzdCB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAic2V0IGhpbnN0IFxbZGJISW5zdE5hbWUgXFtkYkNlbGxISW5zdCBcW2RiR2V0Q2VsbEJ5TmFtZSAkcGFydFxdXF1cXVxuIgotICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCRwYXJ0LHBhY19tb2RlKV19IHsKLSAgICAgICAgICAgICAgIGlmIHskdmFycygkcGFydCxwYWNfbW9kZSkgPT0gInJlYWRfb25seSJ9IHsgc2V0IHZhcnMoJHBhcnQscGFjX21vZGUpICJyZWFkT25seSIgfQotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgInNldE1vZHVsZVZpZXcgLWhpbnN0IFwkaGluc3QgLXR5cGUgJHZhcnMoJHBhcnQscGFjX21vZGUpXG4iCi0gICAgICAgICAgICB9IAotICAgICAgICAgfQotCi0gICAgICAgICBhcHBlbmQgY29tbWFuZCAiZ2V0TW9kdWxlVmlld1xuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kIGFzc2VtYmxlLHNldF9tb2R1bGVfdmlldyAkY29tbWFuZF0KLQotICAgICAgICAgaWYgeyR2YXJzKHZlcmJvc2UpfSB7Ci0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiNcbiIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyBSVU5OSU5HIFBPU1QgQVNTRU1CTFkgQ0xPU1VSRVxuIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjXG4iCi0gICAgICAgICB9Ci0jICAgICAgICAgc2V0IGNvbW1hbmQgW0ZGX05PVlVTOjpkZWxldGVfZmlsbGVyX2NlbGxzXQotIyAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCBhc3NlbWJsZSxkZWxldGVfZmlsbGVyX2NlbGxzICRjb21tYW5kXQotICAgICAgICAgc2V0IGNvbW1hbmQgIm9wdF9kZXNpZ24gLXBvc3Rfcm91dGUgLXJlcG9ydF9kaXIgJHZhcnMocnB0X2RpcikgLXJlcG9ydF9wcmVmaXggcGFjXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgYXNzZW1ibGUsb3B0X2Rlc2lnbiAkY29tbWFuZF0KLSMgICAgICAgICBzZXQgY29tbWFuZCBbRkZfTk9WVVM6OmFkZF9maWxsZXJfY2VsbHNdCi0jICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kIGFzc2VtYmxlLGFkZF9maWxsZXJfY2VsbHMgJGNvbW1hbmRdCi0KLSAgICAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICAgICMgT3B0aW9uYWxseSBydW4gTFBBCi0gICAgICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAKLSAgICAgICAgIGlmIHskdmFycyh2ZXJpZnlfbGl0aG8pfSB7Ci0gICAgICAgICAgICAjIEJDTDogQWRkZWQgc3Vic3QgdG8gaGFuZGxlIGRlcmVyZW5jaW5nIHZhcmlhYmxlcwotICAgICAgICAgICAgZmlsZSBta2RpciAgW3N1YnN0ICR2YXJzKHJwdF9kaXIpXS9MUEEvRE1DCi0gICAgICAgICAgICBzZXQgY29tbWFuZCAidmVyaWZ5TGl0aG8gLXJvdXRpbmdMYXllcnNPbmx5IC10ZWNoRmlsZSAkdmFycyhscGFfdGVjaF9maWxlKSAtZGlyICR2YXJzKHJwdF9kaXIpL0xQQVxuIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgInZpb2xhdGlvbkJyb3dzZXIgLWFsbCAtbm9fZGlzcGxheV9mYWxzZVxuIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgImxvYWRWaW9sYXRpb25SZXBvcnQgLXR5cGUgQ0ROTGl0aG8gLWZpbGVuYW1lICR2YXJzKHJwdF9kaXIpL0xQQS9ETUMvbWVyZ2VkLmhpZlxuIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kIGFzc2VtYmxlLHZlcmlmeV9saXRobyAkY29tbWFuZF0KLSAgICAgICAgIH0KLQotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6c291cmNlX3BsdWcgcG9zdF9wYWNfdGNsIDBdCi0gICAgICAgICBzZXQgY29tbWFuZCAiY2hlY2tfY29ubmVjdGl2aXR5XG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgYXNzZW1ibGUscG9zdF9wYWNfdmVyaWZ5X2Nvbm5lY3Rpdml0eSAkY29tbWFuZF0KLSAgICAgICAgIHNldCBjb21tYW5kICJjaGVja19kcmNcbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCBhc3NlbWJsZSxwb3N0X3BhY192ZXJpZnlfZ2VvbWV0cnkgJGNvbW1hbmRdCi0gICAgICB9Ci0KLSAgICAgIGlmIHshJHZhcnMoY29kZWdlbil9IHsKLSAgICAgICAgIHVwbGV2ZWwgIzAgZXZhbCAkY29tbWFuZHMKLSAgICAgICAgIHNldCBjb21tYW5kcyAiIiAKLSAgICAgIH0KLQotICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRl9OT1ZVUzo6cnVuX3NpZ25vZmYgJGZvcm1hdF0KLQotIyAgICAgIGlmIHskdmFycyhtYWtlZmlsZSl9IHsgCi0jICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiaWYge1xbaW5mbyBleGlzdHMgZW52KFZQQVRIKVxdfSB7XG4iCi0jICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiZXhlYyAvYmluL3RvdWNoIFwkZW52KFZQQVRIKS9hc3NlbWJsZVxuIgotIyAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIn1cbiIKLSMgICAgICAgfQotCi0gICAgICBpZiB7JHZhcnMoY29kZWdlbil9IHsKLSAgICAgICAgIHJldHVybiAkY29tbWFuZHMKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgICB1cGxldmVsICMwIGV2YWwgJGNvbW1hbmRzCi0gICAgICB9Ci0gICB9Ci0KLSAgIHByb2MgcnVuX3JlYnVkZ2V0IHt7Zm9ybWF0IDF9fSB7Ci0KLSAgICAgIGdsb2JhbCB2YXJzCi0gICAgICBnbG9iYWwgZXJyb3JzCi0gICAgICBnbG9iYWwgZW52Ci0KLSAgICAgIHNldCB2YXJzKHN0ZXApIHJlYnVkZ2V0Ci0gICAgICBzZXQgY29tbWFuZHMgIiIKLSMgICAgICBhcHBlbmQgY29tbWFuZHMgInNldCB2YXJzKHN0ZXApICR2YXJzKHN0ZXApXG4iCi0KLSAgICAgIEZGX05PVlVTOjppbml0aWFsaXplX3N0ZXAgJHZhcnMoc3RlcCkKLQotIyAgICAgIGlmIHskdmFycyhyZXBvcnRfcnVuX3RpbWUpfSB7Ci0jICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJzZXQgdmFycygkdmFycyhzdGVwKSxzdGFydF90aW1lKSBcW2Nsb2NrIHNlY29uZHNcXVxuIgotIyAgICAgIH0KLSAgICAgIGlmIHshJHZhcnMoZW5hYmxlX2ZsZXhpbG0pfSB7Ci0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIlxuaWYge1xbZmlsZSBpc2ZpbGUgJHZhcnMocGFjX3NjcmF0Y2hfZGlyKS8ucGFjRmxvd0xvY2tcXX0ge1xuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIgICBmaWxlIGRlbGV0ZSAkdmFycyhwYWNfc2NyYXRjaF9kaXIpLy5wYWNGbG93TG9ja1xuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJ9XG4iCi0gICAgICAgfSBlbHNlIHsKLSMgICAgICAgICBhcHBlbmQgY29tbWFuZHMgImlmIHtcW2ZpbGUgaXNmaWxlICR2YXJzKHNjcmlwdF9kaXIpL3ZpZXdfZGVmaW5pdGlvbi50Y2xdfSB7XG4iCi0jICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIgICBmaWxlIGNvcHkgLWZvcmNlICR2YXJzKHNjcmlwdF9kaXIpL3ZpZXdfZGVmaW5pdGlvbi50Y2wgJHZhcnMocGFydGl0aW9uX2RpcikvJHZhcnMoZGVzaWduKS92aWV3RGVmaW5pdGlvbi50Y2xcbiIKLSMgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIn1cbiIKLSAgICAgICB9Ci0KLSAgICAgIGlmIHskdmFycyh2ZXJib3NlKX0gewotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgQVNTRU1CTElORyBERVNJR05cbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiI1xuIgotICAgICAgfQotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgIyBMb2FkICJwcmUgcmVidWRnZXQiIHBsdWctaW4gc2NyaXB0Ci0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjpzb3VyY2VfcGx1ZyBwcmVfcmVidWRnZXRfdGNsXQotCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAjIEdldCB0aGUgRmxleElMTSBFQ08gcGF0aHMKLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgIGlmIHskdmFycyhlbmFibGVfZmxleGlsbSl9IHsKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiaWYge1xbZmlsZSBpc2ZpbGUgXCRlbnYoVlBBVEgpL2ZsZXhpbG1cXX0ge1xuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIgICBzb3VyY2UgXCRlbnYoVlBBVEgpL2ZsZXhpbG1cbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAifVxuIgotICAgICAgfQotCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAjIEFzc2VtYmxlIHRoZSBkZXNpZ24KLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgIHNldCB2YXJzKGlsbSkgZmFsc2UKLSAgICAgIHNldCBpbG1fbGlzdCBbbGlzdF0KLSAgICAgIHNldCBwYWNfbGlzdCBbbGlzdF0KLSAgICAgIGlmIHskdmFycyhlbmFibGVfcGFjKX0gewotICAgICAgICAgZm9yZWFjaCBwYXJ0ICR2YXJzKHBhcnRpdGlvbl9saXN0KSB7Ci0gICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJHBhcnQscGFjX21vZGUpXX0gIHsKLSAgICAgICAgICAgICAgIGlmIHskdmFycygkcGFydCxwYWNfbW9kZSkgPT0gImlsbSJ9IHsKLSAgICAgICAgICAgICAgICAgIGxhcHBlbmQgaWxtX2xpc3QgJHBhcnQKLSAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICBsYXBwZW5kIHBhY19saXN0ICRwYXJ0Ci0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0gICAgICB9Ci0gICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoaWxtX2xpc3QpXSAmJiAoJHZhcnMoaWxtX2xpc3QpICE9ICIiKX0gewotICAgICAgICAgZm9yZWFjaCBpbG0gJHZhcnMoaWxtX2xpc3QpIHsKLSAgICAgICAgICAgIGlmIHsoW2xzZWFyY2ggJGlsbV9saXN0ICRpbG1dID09IC0xKSAmJiAoW2xzZWFyY2ggJHBhY19saXN0ICRpbG1dID09IC0xKX0gewotICAgICAgICAgICAgICAgbGFwcGVuZCBpbG1fbGlzdCAkaWxtCi0gICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0gICAgICB9Ci0gICAgICBpZiB7JGlsbV9saXN0ICE9ICIifSB7Ci0gICAgICAgICBzZXQgdmFycyhpbG0pIHRydWUgCi0gICAgICB9Ci0KLSAgICAgICMgQkNMOiBBZGRlZCB0YWlsIG9mIHN1YnN0IG9mIHZhcnMoZGJzX2RpcikKLSAgICAgICMgTm90ZSAtIEVESUZGIEhpZXJhcmNoaWNhbCBmbG93IGlzIGN1cnJlbnRseSBJTkNPTVBBVElCTEUgd2l0aCBGRiBkaXIgc3RydWN0dXJlCi0gICAgICAjIFRoZSBmb2xsb3dpbmcgY29kZSBhcHBlYXJzIHRvIHJlbHkgb24gdmFycyhkYnNfZGlyKSBhbHdheXMgYmVpbmcgdW5kZXIgJHZhcnMocGFydGl0aW9uX2RpcikvJHZhcnMoZGVzaWduKQotICAgICAgIyBUaGlzIG5lZWRzIHRvIGJlIHJlY29uY2lsZWQKLSAgICAgIHNldCBkaXIgW2ZpbGUgdGFpbCBbc3Vic3QgJHZhcnMoZGJzX2RpcildXQotCi0gICAgICBpZiB7W2xpbmRleCBbc3BsaXQgJHZhcnModmVyc2lvbikgIi4iXSAgMF0gPiAxMH0gewotICAgICAgICAgc2V0IGNvbW1hbmQgW0ZGX05PVlVTOjppbml0aWFsaXplX3RpbWluZyBtbW1jXQotICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGNwZl9maWxlKV0gJiYgJHZhcnMoY3BmX3RpbWluZyl9IHsKLSAgICAgICAgICAgIHNldCBtbW1jX2ZpbGUgJHZhcnMoc2NyaXB0X2RpcikvaW5jcl92aWV3X2RlZmluaXRpb24udGNsCi0gICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKHZpZXdfZGVmaW5pdGlvbl90Y2wpXX0gewotICAgICAgICAgICAgICAgc2V0IG1tbWNfZmlsZSAkdmFycyh2aWV3X2RlZmluaXRpb25fdGNsKQotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIHNldCBtbW1jX2ZpbGUgJHZhcnMoc2NyaXB0X2Rpcikvdmlld19kZWZpbml0aW9uLnRjbAotICAgICAgICAgICAgfQotICAgICAgICAgfQotICAgICAgfQotICAgICAgaWYgeyhbc3RyaW5nIGNvbXBhcmUgLW5vY2FzZSAkdmFycyhkYnNfZm9ybWF0KSAib2EiXT09MCkgJiYgKFtsaW5kZXggW3NwbGl0ICR2YXJzKHZlcnNpb24pICIuIl0gIDBdID4gMTApfSB7Ci0KLSAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkdmFycyhkZXNpZ24pLHJlYnVkZ2V0X2Fzc2VtYmxlX3N0ZXApXX0gewotICAgICAgICAgICAgc2V0IGNvbW1hbmQgImFzc2VtYmxlX2Rlc2lnbiAtdG9wX2Rlc2lnbiB7JHZhcnMob2FfcGFydGl0aW9uX2xpYikgJHZhcnMoZGVzaWduKSAkdmFycygkdmFycyhkZXNpZ24pLHJlYnVkZ2V0X2Fzc2VtYmxlX3N0ZXApfSAtbW1tY19maWxlICRtbW1jX2ZpbGUiCi0gICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgc2V0IGNvbW1hbmQgImFzc2VtYmxlX2Rlc2lnbiAtdG9wX2Rlc2lnbiB7JHZhcnMob2FfcGFydGl0aW9uX2xpYikgJHZhcnMoZGVzaWduKSBjdHN9IC1tbW1jX2ZpbGUgJG1tbWNfZmlsZSIKLSAgICAgICAgIH0KLSAgICAgICAgIGZvcmVhY2ggcGFydCAkdmFycyhwYXJ0aXRpb25fbGlzdCkgewotICAgICAgICAgICAgaWYge1tsc2VhcmNoICRpbG1fbGlzdCAkcGFydF0gPT0gLTF9IHsKLSAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkcGFydCxyZWJ1ZGdldF9hc3NlbWJsZV9zdGVwKV19IHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJcXFxuICAgLWJsb2NrIHskdmFycyhvYV9wYXJ0aXRpb25fbGliKSAkcGFydCAkdmFycygkdmFycygkcGFydCkscmVidWRnZXRfYXNzZW1ibGVfc3RlcCl9IgotICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJcXFxuICAgLWJsb2NrIHskdmFycyhvYV9wYXJ0aXRpb25fbGliKSAkcGFydCBjdHN9IgotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAgfQotICAgICAgfSBlbHNlIHsKLSMgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgcmVidWRnZXQsaW5pdGlhbGl6ZV90aW1pbmcgJGNvbW1hbmRdCi0gICAgICAgICBpZiB7W2xpbmRleCBbc3BsaXQgJHZhcnModmVyc2lvbikgIi4iXSAgMF0gPiAxMH0gewotICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGNwZl9maWxlKV0gJiYgJHZhcnMoY3BmX3RpbWluZyl9IHsKLSAgICAgICAgICAgICAgIHNldCBhc3NlbWJsZV9jb21tYW5kICJhc3NlbWJsZV9kZXNpZ24gLXBvd2VyX2ludGVudF9maWxlICR2YXJzKGNwZl9maWxlKSIKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBzZXQgYXNzZW1ibGVfY29tbWFuZCAiYXNzZW1ibGVfZGVzaWduIC1tbW1jX2ZpbGUgJG1tbWNfZmlsZSIKLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBzZXQgYXNzZW1ibGVfY29tbWFuZCAiYXNzZW1ibGVfZGVzaWduIgotICAgICAgICAgfQotICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCR2YXJzKGRlc2lnbikscmVidWRnZXRfYXNzZW1ibGVfZGJzKV19IHsKLSAgICAgICAgICAgIHNldCBjb21tYW5kICIkYXNzZW1ibGVfY29tbWFuZCAtdG9wX2RpciAkdmFycygkdmFycyhkZXNpZ24pLHJlYnVkZ2V0X2Fzc2VtYmxlX2RicykiCi0gICAgICAgICB9IGVsc2VpZiB7W2luZm8gZXhpc3RzIHZhcnMoJHZhcnMoZGVzaWduKSxyZWJ1ZGdldF9hc3NlbWJsZV9zdGVwKV19IHsKLSAgICAgICAgICAgIHNldCBjb21tYW5kICIkYXNzZW1ibGVfY29tbWFuZCAkdmFycyhwYXJ0aXRpb25fZGlyKS8kdmFycyhkZXNpZ24pLyRkaXIvJHZhcnMoJHZhcnMoZGVzaWduKSxyZWJ1ZGdldF9hc3NlbWJsZV9zdGVwKS5lbmMiCi0gICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgaWYgeyR2YXJzKGVuYWJsZV9mbGV4aWxtKX0gewotICAgICAgICAgICAgICAgaWYgeyR2YXJzKGdlbmVyYXRlX2Zsb3dfc3RlcHMpfSB7Ci0gICAgICAgICAgICAgICAgICBzZXQgY29tbWFuZCAiJGFzc2VtYmxlX2NvbW1hbmQgXFxcbiAgIC10b3BfZGlyICR2YXJzKHBhcnRpdGlvbl9kaXIpX0ZMRVhJTE0vJHZhcnMoZGVzaWduKSAiCi0gICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgIiRhc3NlbWJsZV9jb21tYW5kIFxcXG4gICAtdG9wX2RpciAkdmFycyhwYXJ0aXRpb25fZGlyKV9GTEVYSUxNLyR2YXJzKGRlc2lnbikgIgotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIGlmIHskdmFycyhnZW5lcmF0ZV9mbG93X3N0ZXBzKX0gewotICAgICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgIiRhc3NlbWJsZV9jb21tYW5kIC10b3BfZGlyICR2YXJzKHBhcnRpdGlvbl9kaXIpLyR2YXJzKGRlc2lnbikvJGRpci90b3AuY3RzLmVuYyAiCi0gICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgIiRhc3NlbWJsZV9jb21tYW5kIC10b3BfZGlyICR2YXJzKHBhcnRpdGlvbl9kaXIpLyR2YXJzKGRlc2lnbikvJGRpci9jdHMuZW5jICIKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0KLSAgICAgICAgIGZvcmVhY2ggcGFydCAkdmFycyhwYXJ0aXRpb25fbGlzdCkgewotICAgICAgICAgICAgaWYge1tsc2VhcmNoICRpbG1fbGlzdCAkcGFydF0gPT0gLTF9IHsKLSAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkcGFydCxyZWJ1ZGdldF9hc3NlbWJsZV9kYnMpXX0gewotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIlxcXG4gICAtYmxvY2tfZGlyICR2YXJzKCRwYXJ0LHJlYnVkZ2V0X2Fzc2VtYmxlX2RicykiCi0gICAgICAgICAgICAgICB9IGVsc2VpZiB7W2luZm8gZXhpc3RzIHZhcnMoJHBhcnQscmVidWRnZXRfYXNzZW1ibGVfc3RlcCldfSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiXFxcbiAgIC1ibG9ja19kaXIgJHZhcnMocGFydGl0aW9uX2RpcikvJHBhcnQvJGRpci8kdmFycygkcGFydCxyZWJ1ZGdldF9hc3NlbWJsZV9zdGVwKS5lbmMiCi0gICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgaWYgeyR2YXJzKGVuYWJsZV9mbGV4aWxtKX0gewotICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIlxcXG4gICAtYmxvY2tfZGlyIFwkdmFycygkcGFydCxjZHR2KSAiCi0gICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgaWYgeyR2YXJzKGdlbmVyYXRlX2Zsb3dfc3RlcHMpfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiXFxcbiAgIC1ibG9ja19kaXIgJHZhcnMocGFydGl0aW9uX2RpcikvJHBhcnQvJGRpci9ibG9jay5jdHMuZW5jIgotICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJcXFxuICAgLWJsb2NrX2RpciAkdmFycyhwYXJ0aXRpb25fZGlyKS8kcGFydC8kZGlyL2N0cy5lbmMiCi0gICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0gICAgICB9Ci0gICAgICBpZiB7JHZhcnMoZW5hYmxlX3BhYyl9IHsKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kICJcXFxuIC1oaWVyRGlyICR2YXJzKHBhY19zY3JhdGNoX2RpcikiCi0gICAgICB9Ci0gICAgICBhcHBlbmQgY29tbWFuZCAiXG4iCi0KLSAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxhc3NlbWJsZV9kZXNpZ24gJGNvbW1hbmRdCi0gICAgICBpZiB7KFtsaW5kZXggW3NwbGl0ICR2YXJzKHZlcnNpb24pICIuIl0gIDBdID4gMTApICYmICR2YXJzKGNwZl90aW1pbmcpfSB7Ci0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgInNvdXJjZSAkbW1tY19maWxlXG4iCi0gICAgICB9Ci0gICAgICBpZiB7JHZhcnMoZmxvdykgPT0gIm1tbWMifSB7Ci0gICAgICAgICBzZXQgY29tbWFuZCBbRkZfTk9WVVM6OmRlcmF0ZV90aW1pbmcgbW1tY10KLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxkZXJhdGVfdGltaW5nICRjb21tYW5kXQotICAgICAgfQotCi0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjpzb3VyY2VfcGx1ZyBhbHdheXNfc291cmNlX3RjbF0KLQotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgIyBMb2FkICJwb3N0IHJlYnVkZ2V0IiBwbHVnLWluIHNjcmlwdAotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6c291cmNlX3BsdWcgcG9zdF9yZWJ1ZGdldF90Y2wgMF0KLQotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgIyBTcGVjaWZ5IElMTXMgaWYgZGVmaW5lZAotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgaWYgeyR2YXJzKGlsbSl9IHsKLSAgICAgICAgIGlmIHskdmFycyh2ZXJib3NlKX0gewotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjXG4iCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgU1BFQ0lGWUlORyBJTE1zXG4iCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiNcbiIKLSAgICAgICAgIH0KLSAgICAgICAgIHNldCBjb21tYW5kICIiIAotICAgICAgICAgZm9yZWFjaCBjZWxsICRpbG1fbGlzdCB7Ci0gICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJGNlbGwsaWxtX2RpcildICYmIFtmaWxlIGlzZGlyZWN0b3J5ICR2YXJzKCRjZWxsLGlsbV9kaXIpXX0gewotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgInNwZWNpZnlJbG0gLWNlbGwgJGNlbGwgLWRpciAkdmFycygkY2VsbCxpbG1fZGlyKVxuIgotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIHB1dHMgIjxGRj4gV0FSTklORzogSUxNIERJUkVDVE9SWSBNSVNTSU5HIEZPUiAkY2VsbCAuLi4gU0tJUFBJTkciCi0gICAgICAgICAgICB9Ci0gICAgICAgICB9IAotICAKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxzcGVjaWZ5X2lsbSAkY29tbWFuZF0KLSAgCi0gICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoaWxtX25vbl9zZGNfZmlsZSldfSB7Ci0gICAgICAgICAgICBpZiB7W2xpbmRleCBbc3BsaXQgJHZhcnModmVyc2lvbikgIi4iXSAgMF0gPD0gMTB9IHsKLSAgICAgICAgICAgICAgIHNldCBjb21tYW5kICJsb2FkVGltaW5nQ29uIC1pbG1Ob25TZGNGaWxlICR2YXJzKGlsbV9ub25fc2RjX2ZpbGUpXG4iCi0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgInNldElsbU5vblNkY0NvbnN0cmFpbnRGaWxlICR2YXJzKGlsbV9ub25fc2RjX2ZpbGUpXG4iCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksbG9hZF9pbG1fbm9uX3NkY19maWxlICRjb21tYW5kXQotICAgICAgICAgfQotICAgICAgfQotCi0jICAgICAgaWYge1tsaW5kZXggW3NwbGl0ICR2YXJzKHZlcnNpb24pICIuIl0gIDBdIDw9IDEwfSB7Ci0jICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGNwZl9maWxlKV19IHsKLSMgICAgICAgICAgICBzZXQgY29tbWFuZCAibG9hZENQRiAkdmFycyhjcGZfZmlsZSlcbiIKLSMgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksbG9hZF9jcGYgJGNvbW1hbmRdCi0jICAgICAgICAgICAgc2V0IGNvbW1hbmQgImNvbW1pdENQRiIKLSMgICAgICAgICAgICBpZiB7JHZhcnMoY3BmX2tlZXBfcm93cyl9IHsKLSMgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiIC1rZWVwUm93cyIKLSMgICAgICAgICAgICB9Ci0jICAgICAgICAgICAgaWYgeyR2YXJzKGNwZl9wb3dlcl9kb21haW4pfSB7Ci0jICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAtcG93ZXJfZG9tYWluIgotIyAgICAgICAgICAgIH0KLSMgICAgICAgICAgICBpZiB7JHZhcnMoY3BmX2lzb2xhdGlvbil9IHsKLSMgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiIC1pc29sYXRpb24iCi0jICAgICAgICAgICAgfQotIyAgICAgICAgICAgIGlmIHskdmFycyhjcGZfc3RhdGVfcmV0ZW50aW9uKX0gewotIyAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgLXN0YXRlX3JldGVudGlvbiIKLSMgICAgICAgICAgICB9Ci0jICAgICAgICAgICAgaWYgeyR2YXJzKGNwZl9sZXZlbF9zaGlmdGVyKX0gewotIyAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgLWxldmVsX3NoaWZ0ZXIiCi0jICAgICAgICAgICAgfQotIyAgICAgICAgICAgIGlmIHskdmFycyhjcGZfcG93ZXJfc3dpdGNoKX0gewotIyAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgLXBvd2VyX3N3aXRjaCIKLSMgICAgICAgICAgICB9Ci0jICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIlxuIgotIyAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxjb21taXRfY3BmICRjb21tYW5kXQotIyAgICAgICAgIH0KLSMgICAgICB9Ci0KLSAgICAgIGlmIHtbbGluZGV4IFtzcGxpdCAkdmFycyh2ZXJzaW9uKSAiLiJdICAwXSA8PSAxMH0gewotICAgICAgICAgc2V0IGNvbW1hbmQgW0ZGX05PVlVTOjppbml0aWFsaXplX3RpbWluZyBtbW1jXQotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLGluaXRpYWxpemVfdGltaW5nICRjb21tYW5kXQotICAgICAgfSBlbHNlaWYge1tpbmZvIGV4aXN0cyB2YXJzKGNwZl9maWxlKV0gJiYgJHZhcnMoY3BmX3RpbWluZyl9IHsKLSAgICAgICAgIHNldCBjb21tYW5kIFtGRl9OT1ZVUzo6aW5pdGlhbGl6ZV90aW1pbmcgbW1tY10KLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxpbml0aWFsaXplX3RpbWluZyAkY29tbWFuZF0KLSAgICAgIH0KLQotICAgICAgaWYgeyEkdmFycyhlbmFibGVfZmxleGlsbSl9IHsKLSAgICAgICAgIHNldCBjb21tYW5kIFtGRl9OT1ZVUzo6dXBkYXRlX3RpbWluZyBtbW1jIF0KLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSx1cGRhdGVfdGltaW5nICRjb21tYW5kXQotICAgICAgfQotCi0gICAgICBpZiB7JHZhcnMoZW5hYmxlX3BhYyl9IHsKLQotICAgICAgICAgaWYgeyR2YXJzKHZlcmJvc2UpfSB7Ci0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiNcbiIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyBERUZJTklORyBQQUMgTU9ERVNcbiIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiI1xuIgotICAgICAgICAgfQotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6c291cmNlX3BsdWcgcHJlX3BhY190Y2wgMF0KLSAgICAgICAgIHNldCBjb21tYW5kICIiCi0gICAgICAgICBmb3JlYWNoIHBhcnQgJHBhY19saXN0IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJzZXQgaGluc3QgXFtkYkhJbnN0TmFtZSBcW2RiQ2VsbEhJbnN0IFxbZGJHZXRDZWxsQnlOYW1lICRwYXJ0XF1cXVxdXG4iCi0gICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJHBhcnQscGFjX21vZGUpXX0gewotICAgICAgICAgICAgICAgaWYgeyR2YXJzKCRwYXJ0LHBhY19tb2RlKSA9PSAicmVhZF9vbmx5In0geyBzZXQgdmFycygkcGFydCxwYWNfbW9kZSkgInJlYWRPbmx5IiB9Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAic2V0TW9kdWxlVmlldyAtaGluc3QgXCRoaW5zdCAtdHlwZSAkdmFycygkcGFydCxwYWNfbW9kZSlcbiIKLSAgICAgICAgICAgIH0gCi0gICAgICAgICB9Ci0KLSAgICAgICAgIGFwcGVuZCBjb21tYW5kICJnZXRNb2R1bGVWaWV3XG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksc2V0X21vZHVsZV92aWV3ICRjb21tYW5kXQotCi0gICAgICAgICBpZiB7ISR2YXJzKGVuYWJsZV9mbGV4aWxtKX0gewotICAgICAgICAgICAgaWYgeyR2YXJzKHZlcmJvc2UpfSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiNcbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyBSVU5OSU5HIFBPU1QgQVNTRU1CTFkgQ0xPU1VSRVxuIgotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjXG4iCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBzZXQgY29tbWFuZCAib3B0X2Rlc2lnbiAtcG9zdF9jdHMgLXJlcG9ydF9kaXIgJHZhcnMocnB0X2RpcikgLXJlcG9ydF9wcmVmaXggcGFjXG4iCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksb3B0X2Rlc2lnbiAkY29tbWFuZF0KLSAgIAotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6c291cmNlX3BsdWcgcG9zdF9wYWNfdGNsIDBdCi0gICAgICAgICB9Ci0gICAgICB9Ci0KLSAgICAgIGlmIHtbbGluZGV4IFtzcGxpdCAkdmFycyh2ZXJzaW9uKSAiLiJdICAwXSA8IDE2fSB7Ci0gICAgICAgIHNldCBjb21tYW5kICJzZXRfZGIgcm91dGVfdHJpYWxfZmxvb3JwbGFuX21vZGUgdHJ1ZVxuc2V0X2RiIHJvdXRlX3RyaWFsX2hvbm9yX3BpbiB0cnVlXG4iCi0gICAgICAgIGFwcGVuZCBjb21tYW5kICJyb3V0ZV90cmlhbFxuIgotICAgICAgfSBlbHNlIHsKLSAgICAgICAgc2V0IGNvbW1hbmQgInNldF9kYiByb3V0ZV90cmlhbF9mbG9vcnBsYW5fbW9kZSB0cnVlXG5zZXRfZGIgcm91dGVfZWFybHlfZ2xvYmFsX2hvbm9yX3BhcnRpdGlvbl9waW4gLlxuIgotICAgICAgICBhcHBlbmQgY29tbWFuZCAicm91dGVfZWFybHlfZ2xvYmFsXG4iCi0gICAgICB9Ci0gICAgICBhcHBlbmQgY29tbWFuZCAiY3JlYXRlX3RpbWluZ19idWRnZXQgLW5vX3RyaWFsX2lwbyAtbm9fY29uc3RhbnRfbW9kZWxcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxjcmVhdGVfdGltaW5nX2J1ZGdldCAkY29tbWFuZF0KLQotICAgICAgaWYge1tzdHJpbmcgY29tcGFyZSAtbm9jYXNlICR2YXJzKGRic19mb3JtYXQpICJvYSJdPT0wfSB7Ci0gICAgICAgICBpZiB7W2xpbmRleCBbc3BsaXQgJHZhcnModmVyc2lvbikgIi4iXSAgMF0gPiAxMH0gewotICAgICAgICAgICAgc2V0IGNvbW1hbmQgIndyaXRlX2RiIC1vYV9saWJfY2VsbF92aWV3IHskdmFycyhvYV9kZXNpZ25fbGliKSAkdmFycyhkZXNpZ24pIGJ1ZGdldH1cbiIKLSAgICAgICAgIH0KLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgICBzZXQgY29tbWFuZCAid3JpdGVfZGIgJHZhcnMoZGJzX2RpcikvYnVkZ2V0LmVuY1xuIgotICAgICAgfQotICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHNhdmVfYnVkZ2V0X2RicyAkY29tbWFuZF0KLQotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgIyBQYXJ0aXRpb24gYW5kIHNhdmUgdGhlIHBhcnRpdGlvbnMgaW50byB0aGUKLSAgICAgICMgZGlyZWN0b3J5IFBBUlRJVElPTgotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotIyAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OnNvdXJjZV9wbHVnIHByZV9wYXJ0aXRpb25fdGNsXQotCi0jICAgICAgc2V0IGNvbW1hbmQgInNldCBwdG5nUHRuVGltaW5nTGliRm9ybWF0IGxpYlxucGFydGl0aW9uIC1idWlsZFNjYW5cbiIKLSAgICAgIHNldCBjb21tYW5kICJwYXJ0aXRpb24gLWJ1aWxkU2NhblxuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHBhcnRpdGlvbiAkY29tbWFuZF0KLSAgICAgIGlmIHtbbGluZGV4IFtzcGxpdCAkdmFycyh2ZXJzaW9uKSAiLiJdICAwXSA+IDEwfSB7Ci0gICAgICAgICBpZiB7KFtzdHJpbmcgY29tcGFyZSAkdmFycyhkYnNfZm9ybWF0KSAib2EiXT09MCl9IHsKLSAgICAgICAgICAgIGlmIHskdmFycyhoaWVyX2Zsb3dfdHlwZSkgPT0gIjFwYXNzIn0gewotICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgInNhdmVQYXJ0aXRpb24gLXB0bkxpYiAkdmFycyhvYV9wYXJ0aXRpb25fbGliKSAtZGlyICR2YXJzKHBhcnRpdGlvbl9kaXIpXG4iCi0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgInNhdmVQYXJ0aXRpb24gLXB0bkxpYiAkdmFycyhvYV9wYXJ0aXRpb25fbGliKSAtZGlyICR2YXJzKHBhcnRpdGlvbl9kaXJfcGFzczIpXG4iCi0gICAgICAgICAgICB9Ci0gICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgaWYgeyR2YXJzKGhpZXJfZmxvd190eXBlKSA9PSAiMXBhc3MifSB7Ci0gICAgICAgICAgICAgICBzZXQgY29tbWFuZCAic2F2ZVBhcnRpdGlvbiAtZGlyICR2YXJzKHBhcnRpdGlvbl9kaXIpIC1kZWYgLXNjYW5EZWZcbiIKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBzZXQgY29tbWFuZCAic2F2ZVBhcnRpdGlvbiAtZGlyICR2YXJzKHBhcnRpdGlvbl9kaXJfcGFzczIpIC1kZWYgLXNjYW5EZWZcbiIKLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0KLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgICBzZXQgY29tbWFuZCAic2F2ZVBhcnRpdGlvbiAtZGlyICR2YXJzKHBhcnRpdGlvbl9kaXIpIC1kZWYgLXNjYW5EZWZcbiIKLSAgICAgIH0KLSAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxzYXZlX3BhcnRpdGlvbiAkY29tbWFuZF0KLSMgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjpzb3VyY2VfcGx1ZyBwb3N0X3BhcnRpdGlvbl90Y2xdCi0KLSAgICAgIGlmIHskdmFycyh1c2VfZmxleG1vZGVscykgJiYgJHZhcnMoZmxleG1vZGVsX2FzX3B0bil9IHsKLSMgICAgICAgICBzZXQgY29tbWFuZCAicmVwbGFjZV9wcm90b19tb2RlbCBcXFxuIgotIyAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgICAtcHJlX2Z0X2RpciAkdmFycyhlY29fZGlyKS9wcmVfZnQgXFxcbiIKLSMgICAgICAgICBhcHBlbmQgY29tbWFuZCAiICAgLXBvc3RfZnRfZGlyICR2YXJzKGVjb19kaXIpL3Bvc3RfZnQgXFxcbiIKLSMgICAgICAgICBhcHBlbmQgY29tbWFuZCAiICAgLXB0bl9kaXIgJHZhcnMocGFydGl0aW9uX2RpcikgXFxcbiIKLSMgICAgICAgICBhcHBlbmQgY29tbWFuZCAiICAgLXB0bl9mdWxsX25ldGxpc3RfZGlyIC4vdGVtcF9uZXRsaXN0X2RpciBcXFxuIgotIyAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgICAtb3V0X2RpciAkdmFycyhwYXJ0aXRpb25fZGlyKVxuIgotCi0gICAgICAgICBzZXQgY29tbWFuZCAicmVwbGFjZV9wcm90b19tb2RlbCBcXFxuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAgIC1wdG5fZGlyICR2YXJzKHBhcnRpdGlvbl9kaXIpIFxcXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZCAiICAgLW91dF9kaXIgJHZhcnMocGFydGl0aW9uX2RpcilcbiIKLQotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHJlcGxhY2VfcHJvdG9fbW9kZWwgJGNvbW1hbmRdCi0gICAgICB9Ci0KLSAgICAgIGlmIHshJHZhcnMoY29kZWdlbil9IHsKLSAgICAgICAgIHVwbGV2ZWwgIzAgZXZhbCAkY29tbWFuZHMKLSAgICAgICAgIHNldCBjb21tYW5kcyAiIiAKLSAgICAgIH0KLQotIyAgICAgIGlmIHskdmFycyhtYWtlZmlsZSkgJiYgISR2YXJzKGdlbmVyYXRlX2Zsb3dfc3RlcHMpfSB7IAotICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiaWYge1xbaW5mbyBleGlzdHMgZW52KFZQQVRIKVxdfSB7XG4iCi0gICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJleGVjIC9iaW4vdG91Y2ggXCRlbnYoVlBBVEgpLyR2YXJzKHN0ZXApXG4iCi0gICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJ9XG4iCi0jICAgICAgIH0KLQotIyAgICAgIGlmIHskdmFycyhlbmFibGVfZmxleGlsbSl9IHsKLSMgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgQ29weSBNYWtlZmlsZXMgaW4gY2FzZSB0aGV5IGdldCBkZWxldGVkIGR1cmluZyB0aGUgZmxvdyAuLi5cbiIKLSMgICAgICAgICBmb3JlYWNoIHBhcnQgW2NvbmNhdCAkdmFycyhkZXNpZ24pICR2YXJzKHBhcnRpdGlvbl9saXN0KV0gewotIyAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiZmlsZSBjb3B5IC1mb3JjZSAkdmFycyhzY3JpcHRfZGlyKS8kcGFydC5NYWtlZmlsZSAkdmFycyhwYXJ0aXRpb25fZGlyX3Bhc3MyKS8kcGFydC9NYWtlZmlsZVxuIgotIyAgICAgICAgIH0KLSMgICAgICAgICBhcHBlbmQgY29tbWFuZHMgImZpbGUgY29weSAtZm9yY2UgJHZhcnMocGFydGl0aW9uX2RpcikvTWFrZWZpbGUgJHZhcnMocGFydGl0aW9uX2Rpcl9wYXNzMikvTWFrZWZpbGVcbiIKLSMgICAgICAgICBhcHBlbmQgY29tbWFuZHMgImZpbGUgY29weSAtZm9yY2UgJHZhcnMocGFydGl0aW9uX2RpcikvTWFrZWZpbGUucGFydGl0aW9uICR2YXJzKHBhcnRpdGlvbl9kaXJfcGFzczIpL01ha2VmaWxlLnBhcnRpdGlvblxuIgotIyAgICAgIH0KLQotICAgICAgaWYgeyR2YXJzKGNvZGVnZW4pfSB7Ci0gICAgICAgICByZXR1cm4gJGNvbW1hbmRzCi0gICAgICB9IGVsc2UgewotICAgICAgICAgdXBsZXZlbCAjMCBldmFsICRjb21tYW5kcwotICAgICAgfQotICAgfQotCi0gICBwcm9jIHJ1bl9hc3NlbWJsZV9mbGV4aWxtIHt7Zm9ybWF0IDF9fSB7Ci0KLSAgICAgIGdsb2JhbCB2YXJzCi0gICAgICBnbG9iYWwgZXJyb3JzCi0gICAgICBnbG9iYWwgZW52Ci0KLSAgICAgIHNldCB2YXJzKHN0ZXApIGFzc2VtYmxlX2ZsZXhpbG0KLSAgICAgIHNldCBjb21tYW5kcyAiIgotIyAgICAgIGFwcGVuZCBjb21tYW5kcyAic2V0IHZhcnMoc3RlcCkgJHZhcnMoc3RlcClcbiIKLQotICAgICAgRkZfTk9WVVM6OmluaXRpYWxpemVfc3RlcCAkdmFycyhzdGVwKQotCi0gICAgICBpZiB7JHZhcnModmVyYm9zZSl9IHsKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiI1xuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjIEFTU0VNQkxJTkcgREVTSUdOXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiNcbiIKLSAgICAgIH0KLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICMgTG9hZCAicHJlIHJlYnVkZ2V0IiBwbHVnLWluIHNjcmlwdAotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6c291cmNlX3BsdWcgcHJlX3JlYnVkZ2V0X3RjbF0KLQotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgIyBBc3NlbWJsZSB0aGUgZGVzaWduCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICBzZXQgdmFycyhpbG0pIGZhbHNlCi0gICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoaWxtX2xpc3QpXSAmJiAoJHZhcnMoaWxtX2xpc3QpICE9ICIiKX0gewotICAgICAgICAgc2V0IHZhcnMoaWxtKSB0cnVlIAotICAgICAgfSBlbHNlIHsKLSAgICAgICAgIHNldCB2YXJzKGlsbV9saXN0KSAiIgotICAgICAgfQotCi0gICAgICAjIEJDTDogQWRkZWQgdGFpbCBvZiBzdWJzdCBvZiB2YXJzKGRic19kaXIpCi0gICAgICAjIE5vdGUgLSBFRElGRiBIaWVyYXJjaGljYWwgZmxvdyBpcyBjdXJyZW50bHkgSU5DT01QQVRJQkxFIHdpdGggRkYgZGlyIHN0cnVjdHVyZQotICAgICAgIyBUaGUgZm9sbG93aW5nIGNvZGUgYXBwZWFycyB0byByZWx5IG9uIHZhcnMoZGJzX2RpcikgYWx3YXlzIGJlaW5nIHVuZGVyICR2YXJzKHBhcnRpdGlvbl9kaXIpLyR2YXJzKGRlc2lnbikKLSAgICAgICMgVGhpcyBuZWVkcyB0byBiZSByZWNvbmNpbGVkCi0gICAgICBzZXQgZGlyIFtmaWxlIHRhaWwgW3N1YnN0ICR2YXJzKGRic19kaXIpXV0KLQotICAgICAgaWYge1tsaW5kZXggW3NwbGl0ICR2YXJzKHZlcnNpb24pICIuIl0gIDBdID4gMTB9IHsKLSAgICAgICAgIHNldCBjb21tYW5kIFtGRl9OT1ZVUzo6aW5pdGlhbGl6ZV90aW1pbmcgbW1tY10KLSAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhjcGZfZmlsZSldICYmICR2YXJzKGNwZl90aW1pbmcpfSB7Ci0gICAgICAgICAgICBzZXQgbW1tY19maWxlICR2YXJzKHNjcmlwdF9kaXIpL2luY3Jfdmlld19kZWZpbml0aW9uLnRjbAotICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyh2aWV3X2RlZmluaXRpb25fdGNsKV19IHsKLSAgICAgICAgICAgICAgIHNldCBtbW1jX2ZpbGUgJHZhcnModmlld19kZWZpbml0aW9uX3RjbCkKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBzZXQgbW1tY19maWxlICR2YXJzKHNjcmlwdF9kaXIpL3ZpZXdfZGVmaW5pdGlvbi50Y2wKLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0KLSAgICAgIH0KLSAgICAgIGlmIHsoW3N0cmluZyBjb21wYXJlIC1ub2Nhc2UgJHZhcnMoZGJzX2Zvcm1hdCkgIm9hIl09PTApICYmIChbbGluZGV4IFtzcGxpdCAkdmFycyh2ZXJzaW9uKSAiLiJdICAwXSA+IDEwKX0gewotCi0gICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJHZhcnMoZGVzaWduKSxyZWJ1ZGdldF9hc3NlbWJsZV9zdGVwKV19IHsKLSAgICAgICAgICAgIHNldCBjb21tYW5kICJhc3NlbWJsZV9kZXNpZ24gLXRvcF9kZXNpZ24geyR2YXJzKG9hX3BhcnRpdGlvbl9saWIpICR2YXJzKGRlc2lnbikgJHZhcnMoJHZhcnMoZGVzaWduKSxyZWJ1ZGdldF9hc3NlbWJsZV9zdGVwKX0gLW1tbWNfZmlsZSAkbW1tY19maWxlIgotICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHNldCBjb21tYW5kICJhc3NlbWJsZV9kZXNpZ24gLXRvcF9kZXNpZ24geyR2YXJzKG9hX3BhcnRpdGlvbl9saWIpICR2YXJzKGRlc2lnbikgY3RzfSAtbW1tY19maWxlICRtbW1jX2ZpbGUiCi0gICAgICAgICB9Ci0gICAgICAgICBmb3JlYWNoIHBhcnQgJHZhcnMocGFydGl0aW9uX2xpc3QpIHsKLSAgICAgICAgICAgIGlmIHtbbHNlYXJjaCAkaWxtX2xpc3QgJHBhcnRdID09IC0xfSB7Ci0gICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJHBhcnQscmVidWRnZXRfYXNzZW1ibGVfc3RlcCldfSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiXFxcbiAgIC1ibG9jayB7JHZhcnMob2FfcGFydGl0aW9uX2xpYikgJHBhcnQgJHZhcnMoJHZhcnMoJHBhcnQpLHJlYnVkZ2V0X2Fzc2VtYmxlX3N0ZXApfSIKLSAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiXFxcbiAgIC1ibG9jayB7JHZhcnMob2FfcGFydGl0aW9uX2xpYikgJHBhcnQgY3RzfSIKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0KLSAgICAgIH0gZWxzZSB7Ci0jICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kIHJlYnVkZ2V0LGluaXRpYWxpemVfdGltaW5nICRjb21tYW5kXQotICAgICAgICAgaWYge1tsaW5kZXggW3NwbGl0ICR2YXJzKHZlcnNpb24pICIuIl0gIDBdID4gMTB9IHsKLSAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhjcGZfZmlsZSldICYmICR2YXJzKGNwZl90aW1pbmcpfSB7Ci0gICAgICAgICAgICAgICBzZXQgYXNzZW1ibGVfY29tbWFuZCAiYXNzZW1ibGVfZGVzaWduIC1jcGZfZmlsZSAkdmFycyhjcGZfZmlsZSkiCi0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgc2V0IGFzc2VtYmxlX2NvbW1hbmQgImFzc2VtYmxlX2Rlc2lnbiAtbW1tY19maWxlICRtbW1jX2ZpbGUiCi0gICAgICAgICAgICB9Ci0gICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgc2V0IGFzc2VtYmxlX2NvbW1hbmQgImFzc2VtYmxlX2Rlc2lnbiIKLSAgICAgICAgIH0KLSAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkdmFycyhkZXNpZ24pLHJlYnVkZ2V0X2Fzc2VtYmxlX2RicyldfSB7Ci0gICAgICAgICAgICBzZXQgY29tbWFuZCAiJGFzc2VtYmxlX2NvbW1hbmQgLWRlZl9tZXJnZSAtdG9wX2Rlc2lnbiAkdmFycygkdmFycyhkZXNpZ24pLHJlYnVkZ2V0X2Fzc2VtYmxlX2RicykiCi0gICAgICAgICB9IGVsc2VpZiB7W2luZm8gZXhpc3RzIHZhcnMoJHZhcnMoZGVzaWduKSxyZWJ1ZGdldF9hc3NlbWJsZV9zdGVwKV19IHsKLSAgICAgICAgICAgIHNldCBjb21tYW5kICIkYXNzZW1ibGVfY29tbWFuZCAtZGVmX21lcmdlICR2YXJzKHBhcnRpdGlvbl9kaXIpLyR2YXJzKGRlc2lnbikvJGRpci8kdmFycygkdmFycyhkZXNpZ24pLHJlYnVkZ2V0X2Fzc2VtYmxlX3N0ZXApLmVuYyIKLSAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBpZiB7JHZhcnMoZW5hYmxlX2ZsZXhpbG0pfSB7Ci0jICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgIiRhc3NlbWJsZV9jb21tYW5kIFxcXG4gICAtdG9wX2RpciAkdmFycyhwYXJ0aXRpb25fZGlyX3Bhc3MyKS8kdmFycyhkZXNpZ24pICIKLSAgICAgICAgICAgICAgIHNldCBjb21tYW5kICIkYXNzZW1ibGVfY29tbWFuZCBcXFxuICAgIC10b3BfZGlyICR2YXJzKHBhcnRpdGlvbl9kaXIpX1BSRUNUUy8kdmFycyhkZXNpZ24pICIKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBzZXQgY29tbWFuZCAiJGFzc2VtYmxlX2NvbW1hbmQgLXRvcF9kaXIgJHZhcnMocGFydGl0aW9uX2RpcikvJHZhcnMoZGVzaWduKS8kZGlyL2N0cy5lbmMgIgotICAgICAgICAgICAgfQotICAgICAgICAgfQotICAgICAgICAgZm9yZWFjaCBwYXJ0ICR2YXJzKHBhcnRpdGlvbl9saXN0KSB7Ci0gICAgICAgICAgICBpZiB7W2xzZWFyY2ggJHZhcnMoaWxtX2xpc3QpICRwYXJ0XSA9PSAtMX0gewotICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCRwYXJ0LHJlYnVkZ2V0X2Fzc2VtYmxlX2RicyldfSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiXFxcbiAgIC1ibG9ja19kaXIgJHZhcnMoJHBhcnQscmVidWRnZXRfYXNzZW1ibGVfZGJzKSIKLSAgICAgICAgICAgICAgIH0gZWxzZWlmIHtbaW5mbyBleGlzdHMgdmFycygkcGFydCxyZWJ1ZGdldF9hc3NlbWJsZV9zdGVwKV19IHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJcXFxuICAgLWJsb2NrX2RpciAkdmFycyhwYXJ0aXRpb25fZGlyKS8kcGFydC8kZGlyLyR2YXJzKCRwYXJ0LHJlYnVkZ2V0X2Fzc2VtYmxlX3N0ZXApLmVuYyIKLSAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICBpZiB7JHZhcnMoZW5hYmxlX2ZsZXhpbG0pfSB7Ci0gICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiXFxcbiAgIC1ibG9ja19kaXIgJHZhcnMocGFydGl0aW9uX2RpcilfUFJFQ1RTLyRwYXJ0LyR7cGFydH1fcG9zdF9lY28uZW5jIgotICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJcXFxuICAgLWJsb2NrX2RpciAkdmFycyhwYXJ0aXRpb25fZGlyKS8kcGFydC8kZGlyL2N0cy5lbmMiCi0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0gICAgICB9Ci0gICAgICBhcHBlbmQgY29tbWFuZCAiXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksYXNzZW1ibGVfZGVzaWduICRjb21tYW5kXQotCi0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjpzb3VyY2VfcGx1ZyBhbHdheXNfc291cmNlX3RjbF0KLQotCi0gICAgICBzZXQgY29tbWFuZCAiIgotICAgICAgIyBBZGRpdGlvbmFsIHRpbWluZyBzZXR1cAotICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCR2YXJzKGRlc2lnbiksbGF0ZW5jeV9zZGMpXX0gewotICAgICAgICAgYXBwZW5kIGNvbW1hbmQgImZvcmVhY2ggbW9kZSBcW2FsbF9jb25zdHJhaW50X21vZGVzIC1hY3RpdmVcXSB7XG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZCAiICAgc2V0IHNkY19maWxlcyBcW2dldF9jb25zdHJhaW50X21vZGUgXCRtb2RlIC1zZGNfZmlsZXNcXVxuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAgIHNldCBzZGNfbGlzdCBcW2NvbmNhdCBcJHNkY19maWxlcyAkdmFycygkdmFycyhkZXNpZ24pLGxhdGVuY3lfc2RjKVxdXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZCAiICAgdXBkYXRlX2NvbnN0cmFpbnRfbW9kZSAtbmFtZSBcJG1vZGUgLXNkY19maWxlcyBcJHNkY19saXN0XG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZCAifVxuIgotCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksdXBkYXRlX2NvbnN0cmFpbnRfbW9kZSAkY29tbWFuZF0KLSAgICAgIH0KLQotICAgICAgZm9yZWFjaCB2aWV3IFtjb25jYXQgJHZhcnMoc2V0dXBfYW5hbHlzaXNfdmlld3MpICR2YXJzKGhvbGRfYW5hbHlzaXNfdmlld3MpXSB7Ci0gICAgICAgICBmb3JlYWNoIHB0biAkdmFycyhwYXJ0aXRpb25fbGlzdCkgewotICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCRwdG4sJHZpZXcsbGF0ZW5jeV9zZGMpXX0gewotICAgICAgICAgICAgICAgc2V0IGxhdGVuY3koJHZpZXcsJHB0bikgJHZhcnMoJHB0biwkdmlldyxsYXRlbmN5X3NkYykKLSAgICAgICAgICAgIH0gZWxzZWlmIHtbaW5mbyBleGlzdHMgdmFycygkcHRuLGxhdGVuY3lfc2RjKV19IHsKLSAgICAgICAgICAgICAgIHNldCBsYXRlbmN5KCR2aWV3LCRwdG4pICR2YXJzKCRwdG4sbGF0ZW5jeV9zZGMpCi0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgc2V0IGxhdGVuY3koJHZpZXcsJHB0bikgIm5vbmUiCi0gICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0gICAgICB9Ci0gICAgICAKLSAgICAgIHNldCBjb21tYW5kICIiCi0gICAgICBmb3JlYWNoIHZpZXcgW2NvbmNhdCAkdmFycyhzZXR1cF9hbmFseXNpc192aWV3cykgJHZhcnMoaG9sZF9hbmFseXNpc192aWV3cyldIHsKLSAgICAgICAgIGZvcmVhY2ggcHRuICR2YXJzKHBhcnRpdGlvbl9saXN0KSB7Ci0gICAgICAgICAgICBpZiB7JGxhdGVuY3koJHZpZXcsJHB0bikgIT0gIm5vbmUifSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAic2V0X3BhcnRpdGlvbl91c2VyX2NvbnN0cmFpbnRzX2ZpbGUgLXZpZXcgJHZpZXcgLW5hbWUgJGxhdGVuY3koJHZpZXcsJHB0bikgLXBhcnRpdGlvbiAkcHRuXG4iCi0gICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0gICAgICB9Ci0KLSAgICAgIGlmIHskY29tbWFuZCAhPSAiIn0geyAgICAgIAotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHNldF9wYXJ0aXRpb25fdXNlcl9jb25zdHJhaW50c19maWxlICRjb21tYW5kXQotICAgICAgfQotCi0gICAgICBpZiB7KFtsaW5kZXggW3NwbGl0ICR2YXJzKHZlcnNpb24pICIuIl0gIDBdID4gMTApICYmICR2YXJzKGNwZl90aW1pbmcpfSB7Ci0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgInNvdXJjZSAkbW1tY19maWxlXG4iCi0gICAgICB9Ci0gICAgICBpZiB7JHZhcnMoZmxvdykgPT0gIm1tbWMifSB7Ci0gICAgICAgICBzZXQgY29tbWFuZCBbRkZfTk9WVVM6OmRlcmF0ZV90aW1pbmcgbW1tY10KLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxkZXJhdGVfdGltaW5nICRjb21tYW5kXQotICAgICAgfQotCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAjIExvYWQgInBvc3QgYXNzZW1ibGVfZmxleGlsbSIgcGx1Zy1pbiBzY3JpcHQKLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OnNvdXJjZV9wbHVnIHBvc3RfZmxleGlsbSAwXQotCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAjIFNwZWNpZnkgSUxNcyBpZiBkZWZpbmVkCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICBpZiB7JHZhcnMoaWxtKX0gewotICAgICAgICAgaWYgeyR2YXJzKHZlcmJvc2UpfSB7Ci0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiNcbiIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyBTUEVDSUZZSU5HIElMTXNcbiIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiI1xuIgotICAgICAgICAgfQotICAgICAgICAgc2V0IGNvbW1hbmQgIiIgCi0gICAgICAgICBmb3JlYWNoIGNlbGwgJHZhcnMoaWxtX2xpc3QpIHsKLSAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkY2VsbCxpbG1fZGlyKV0gJiYgW2ZpbGUgaXNkaXJlY3RvcnkgJHZhcnMoJGNlbGwsaWxtX2RpcildfSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAic3BlY2lmeV9pbG0gLWNlbGwgJGNlbGwgLWRpciAkdmFycygkY2VsbCxpbG1fZGlyKVxuIgotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIHB1dHMgIjxGRj4gV0FSTklORzogSUxNIERJUkVDVE9SWSBNSVNTSU5HIEZPUiAkY2VsbCAuLi4gU0tJUFBJTkciCi0gICAgICAgICAgICB9Ci0gICAgICAgICB9IAotICAKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxzcGVjaWZ5X2lsbSAkY29tbWFuZF0KLSAgCi0gICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoaWxtX25vbl9zZGNfZmlsZSldfSB7Ci0gICAgICAgICAgICBpZiB7W2xpbmRleCBbc3BsaXQgJHZhcnModmVyc2lvbikgIi4iXSAgMF0gPD0gMTB9IHsKLSAgICAgICAgICAgICAgIHNldCBjb21tYW5kICJsb2FkVGltaW5nQ29uIC1pbG1Ob25TZGNGaWxlICR2YXJzKGlsbV9ub25fc2RjX2ZpbGUpXG4iCi0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgInNldElsbU5vblNkY0NvbnN0cmFpbnRGaWxlICR2YXJzKGlsbV9ub25fc2RjX2ZpbGUpXG4iCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksbG9hZF9pbG1fbm9uX3NkY19maWxlICRjb21tYW5kXQotICAgICAgICAgfQotICAgICAgfQotCi0jICAgICAgaWYge1tsaW5kZXggW3NwbGl0ICR2YXJzKHZlcnNpb24pICIuIl0gIDBdIDw9IDEwfSB7Ci0jICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGNwZl9maWxlKV19IHsKLSMgICAgICAgICAgICBzZXQgY29tbWFuZCAibG9hZENQRiAkdmFycyhjcGZfZmlsZSlcbiIKLSMgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksbG9hZF9jcGYgJGNvbW1hbmRdCi0jICAgICAgICAgICAgc2V0IGNvbW1hbmQgImNvbW1pdENQRiIKLSMgICAgICAgICAgICBpZiB7JHZhcnMoY3BmX2tlZXBfcm93cyl9IHsKLSMgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiIC1rZWVwUm93cyIKLSMgICAgICAgICAgICB9Ci0jICAgICAgICAgICAgaWYgeyR2YXJzKGNwZl9wb3dlcl9kb21haW4pfSB7Ci0jICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAtcG93ZXJfZG9tYWluIgotIyAgICAgICAgICAgIH0KLSMgICAgICAgICAgICBpZiB7JHZhcnMoY3BmX2lzb2xhdGlvbil9IHsKLSMgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiIC1pc29sYXRpb24iCi0jICAgICAgICAgICAgfQotIyAgICAgICAgICAgIGlmIHskdmFycyhjcGZfc3RhdGVfcmV0ZW50aW9uKX0gewotIyAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgLXN0YXRlX3JldGVudGlvbiIKLSMgICAgICAgICAgICB9Ci0jICAgICAgICAgICAgaWYgeyR2YXJzKGNwZl9sZXZlbF9zaGlmdGVyKX0gewotIyAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgLWxldmVsX3NoaWZ0ZXIiCi0jICAgICAgICAgICAgfQotIyAgICAgICAgICAgIGlmIHskdmFycyhjcGZfcG93ZXJfc3dpdGNoKX0gewotIyAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgLXBvd2VyX3N3aXRjaCIKLSMgICAgICAgICAgICB9Ci0jICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIlxuIgotIyAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxjb21taXRfY3BmICRjb21tYW5kXQotIyAgICAgICAgIH0KLSMgICAgICB9Ci0KLSAgICAgIGlmIHtbbGluZGV4IFtzcGxpdCAkdmFycyh2ZXJzaW9uKSAiLiJdICAwXSA8PSAxMH0gewotICAgICAgICAgc2V0IGNvbW1hbmQgW0ZGX05PVlVTOjppbml0aWFsaXplX3RpbWluZyBtbW1jXQotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLGluaXRpYWxpemVfdGltaW5nICRjb21tYW5kXQotICAgICAgfSBlbHNlaWYge1tpbmZvIGV4aXN0cyB2YXJzKGNwZl9maWxlKV0gJiYgJHZhcnMoY3BmX3RpbWluZyl9IHsKLSAgICAgICAgIHNldCBjb21tYW5kIFtGRl9OT1ZVUzo6aW5pdGlhbGl6ZV90aW1pbmcgbW1tY10KLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxpbml0aWFsaXplX3RpbWluZyAkY29tbWFuZF0KLSAgICAgIH0KLQotICAgICAgaWYgeyEkdmFycyhlbmFibGVfZmxleGlsbSl9IHsKLSAgICAgICAgIHNldCBjb21tYW5kIFtGRl9OT1ZVUzo6dXBkYXRlX3RpbWluZyBtbW1jIF0KLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSx1cGRhdGVfdGltaW5nICRjb21tYW5kXQotICAgICAgfQotCi0gICAgICBzZXQgY29tbWFuZCAiIgotICAgICAgZm9yZWFjaCBuYW1lICR2YXJzKHBhcnRpdGlvbl9saXN0KSB7Ci0gICAgICAgICBhcHBlbmQgY29tbWFuZCAic2V0X3BhcnRpdGlvbl9waW5fc3RhdHVzIC1wYXJ0aXRpb24gJG5hbWUgLXBpbnMgKiAtc3RhdHVzIHBsYWNlZFxuIgotICAgICAgfSAKLSAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxzZXRfcGFydGl0aW9uX3Bpbl9zdGF0dXMgJGNvbW1hbmRdCi0KLSMgICAgICBzZXQgY29tbWFuZCAiZGJfZGVsZXRlX3JvdXRlX3RyaWFsXG4iCi0jICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLGRlbGV0ZV9yb3V0ZV90cmlhbCAkY29tbWFuZF0KLQotICAgICAgaWYge1tsaW5kZXggW3NwbGl0ICR2YXJzKHZlcnNpb24pICIuIl0gIDBdIDwgMTZ9IHsKLSAgICAgICAgc2V0IGNvbW1hbmQgInNldF9kYiByb3V0ZV90cmlhbF9oYW5kbGVfcGFydGl0aW9uX2NvbXBsZXggdHJ1ZVxuIiAKLSAgICAgICAgYXBwZW5kIGNvbW1hbmQgInNldF9kYiByb3V0ZV90cmlhbF9ob25vcl9waW4gZmFsc2VcbiIKLSAgICAgICAgYXBwZW5kIGNvbW1hbmQgInJvdXRlX3RyaWFsXG4iCi0gICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxyb3V0ZV90cmlhbCAkY29tbWFuZF0KLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgIHNldCBjb21tYW5kICJzZXRfZGIgc2V0X2RiIHJvdXRlX2Vhcmx5X2dsb2JhbF9ob25vcl9wYXJ0aXRpb25fZmVuY2UgLlxuIiAKLSAgICAgICAgYXBwZW5kIGNvbW1hbmQgInNldF9kYiByb3V0ZV9lYXJseV9nbG9iYWxfaG9ub3JfcGFydGl0aW9uX3BpbiB7fVxuIgotICAgICAgICBhcHBlbmQgY29tbWFuZCAicm91dGVfZWFybHlfZ2xvYmFsXG4iCi0gICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxlYXJseV9yb3V0ZSAkY29tbWFuZF0KLSAgICAgIH0KLQotICAgICAgc2V0IGNvbW1hbmQgIiIKLSAgICAgIGFwcGVuZCBjb21tYW5kICJjcmVhdGVfYWN0aXZlX2xvZ2ljX3ZpZXcgLXR5cGUgZmxhdF90b3BcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kICJ0aW1lX2Rlc2lnbiAtcHJlX2N0cyAtcmVwb3J0X2RpciAkdmFycyhycHRfZGlyKSAtcmVwb3J0X3ByZWZpeCBhc3NlbWJsZV9wcmVjdHNfZmxleGlsbVxuIgotICAgICAgYXBwZW5kIGNvbW1hbmQgImNsZWFyX2FjdGl2ZV9sb2dpY192aWV3XG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksY3JlYXRlX2FjdGl2ZV9sb2dpY192aWV3ICRjb21tYW5kXQotCi0jICAgICAgYXBwZW5kIGNvbW1hbmQgImRlcml2ZV90aW1pbmdfYnVkZ2V0IC1ub190cmlhbF9pcG8gLW5vX2NvbnN0YW50X21vZGVsXG4iCi0jICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLGRlcml2ZV90aW1pbmdfYnVkZ2V0ICRjb21tYW5kXQotCi0jICAgICAgaWYge1tzdHJpbmcgY29tcGFyZSAtbm9jYXNlICR2YXJzKGRic19mb3JtYXQpICJvYSJdPT0wfSB7Ci0jICAgICAgICAgaWYge1tsaW5kZXggW3NwbGl0ICR2YXJzKHZlcnNpb24pICIuIl0gIDBdID4gMTB9IHsKLSMgICAgICAgICAgICBzZXQgY29tbWFuZCAid3JpdGVfZGIgLWNlbGx2aWV3IHskdmFycyhvYV9kZXNpZ25fbGliKSAkdmFycyhkZXNpZ24pIGJ1ZGdldH1cbiIKLSMgICAgICAgICB9IGVsc2UgewotIyAgICAgICAgICAgIHNldCBjb21tYW5kICJ3cml0ZV9vYV9kZXNpZ24gJHZhcnMob2FfZGVzaWduX2xpYikgJHZhcnMoZGVzaWduKSBidWRnZXRcbiIKLSMgICAgICAgICB9Ci0jICAgICAgfSBlbHNlIHsKLSMgICAgICAgICBzZXQgY29tbWFuZCAid3JpdGVfZGVzaWduICR2YXJzKGRic19kaXIpL2J1ZGdldC5lbmNcbiIKLSMgICAgICB9Ci0jICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHNhdmVfZGVzaWduLGJ1ZGdldCAkY29tbWFuZF0KLQotICAgICAgYXBwZW5kIGNvbW1hbmRzICIjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgIiMgPEZGPiBHRU5FUkFUSU5HIFJFUE9SVFNcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyAiIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIgotCi0gICAgICBpZiB7JHZhcnMocmVwb3J0X3Bvd2VyKX0gewotICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKHBvd2VyX2FuYWx5c2lzX3ZpZXcpXSAmJiAoJHZhcnMocG93ZXJfYW5hbHlzaXNfdmlldykgIT0gIiIpfSB7Ci0gICAgICAgICAgICBzZXQgY29tbWFuZCAicmVwb3J0X3Bvd2VyIC12aWV3ICR2YXJzKHBvd2VyX2FuYWx5c2lzX3ZpZXcpIC1vdXRmaWxlICR2YXJzKHJwdF9kaXIpLyR2YXJzKHN0ZXApLnBvd2VyLnJwdFxuIgotICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHNldCBjb21tYW5kICJyZXBvcnRfcG93ZXIgLW91dGZpbGUgJHZhcnMocnB0X2RpcikvJHZhcnMoc3RlcCkucG93ZXIucnB0XG4iCi0gICAgICAgICB9Ci0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCkscmVwb3J0X3Bvd2VyICRjb21tYW5kXQotICAgICAgfQotCi0gICAgICBpZiB7W0ZGOjppc19scF9mbG93XSAmJiBbaW5mbyBleGlzdHMgdmFycyhwb3dlcl9kb21haW5zKV0gJiYgW2xsZW5ndGggJHZhcnMocG93ZXJfZG9tYWlucyldID4gMX0gewotCi0gICAgICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAgICAjIFZlcmlmeSBwb3dlciBkb21haW4KLSAgICAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLQotIyAgICAgICAgIHNldCBjb21tYW5kICJjaGVja19wb3dlcl9kb21haW5zIC1iaW5kIC1nY29ubiIKLSMgICAgICAgICBhcHBlbmQgY29tbWFuZCAiIC1pc29fbmV0X3BkICR2YXJzKHJwdF9kaXIpLyR2YXJzKHN0ZXApLmlzb25ldHMucnB0IgotIyAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgLXhfbmV0X3BkICR2YXJzKHJwdF9kaXIpLyR2YXJzKHN0ZXApLnhuZXRzLnJwdFxuIgotCi0jICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLGNoZWNrX3Bvd2VyX2RvbWFpbiAkY29tbWFuZF0KLQotICAgICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgICAgIyBSdW4gQ0xQCi0gICAgICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0KLSAgICAgICAgIGlmIHskdmFycyhydW5fY2xwKSAmJiAoW2F1dG9fZXhlY29rIGxlY10gIT0gIiIpfSB7Ci0gICAgICAgICAgICBzZXQgY29tbWFuZCAicnVuX2NscCAiCi0gICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoY2xwX29wdGlvbnMpXX0gewotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgJHZhcnMoY2xwX29wdGlvbnMpCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiXG4iCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCkscnVuX2NscCAkY29tbWFuZF0KLSAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBpZiB7IVtpbmZvIGV4aXN0cyB2YXJzKGNscF93YXJuaW5nKV19IHsKLSAgICAgICAgICAgICAgIHB1dHMgIjxGRj4gV0FSTklORzogVU5BQkxFIFRPIFJVTiBDTFAgLi4uIFBMRUFTRSBNQUtFIFNVUkUgSVQgSVMgSU4gWU9VUiBQQVRIIgotICAgICAgICAgICAgICAgc2V0IHZhcnMoY2xwX3dhcm5pbmcpIHRydWUKLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0KLSAgICAgIH0KLSAgICAgIGlmIHshJHZhcnMoY29kZWdlbil9IHsKLSAgICAgICAgIHVwbGV2ZWwgIzAgZXZhbCAkY29tbWFuZHMKLSAgICAgICAgIHNldCBjb21tYW5kcyAiIiAKLSAgICAgIH0KLQotICAgICAgaWYgeyEkdmFycyhnZW5lcmF0ZV9mbG93X3N0ZXBzKX0geyAKLSAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgImlmIHtcW2luZm8gZXhpc3RzIGVudihWUEFUSClcXX0ge1xuIgotICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiZXhlYyAvYmluL3RvdWNoIFwkZW52KFZQQVRIKS8kdmFycyhzdGVwKVxuIgotICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAifVxuIgotICAgICAgIH0KLQotIyAgICAgIGlmIHskdmFycyhlbmFibGVfZmxleGlsbSl9IHsKLSMgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgQ29weSBNYWtlZmlsZXMgaW4gY2FzZSB0aGV5IGdldCBkZWxldGVkIGR1cmluZyB0aGUgZmxvdyAuLi5cbiIKLSMgICAgICAgICBmb3JlYWNoIHBhcnQgW2NvbmNhdCAkdmFycyhkZXNpZ24pICR2YXJzKHBhcnRpdGlvbl9saXN0KV0gewotIyAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiZmlsZSBjb3B5IC1mb3JjZSAkdmFycyhzY3JpcHRfZGlyKS8kcGFydC5NYWtlZmlsZSAkdmFycyhwYXJ0aXRpb25fZGlyX3Bhc3MyKS8kcGFydC9NYWtlZmlsZVxuIgotIyAgICAgICAgIH0KLSMgICAgICAgICBhcHBlbmQgY29tbWFuZHMgImZpbGUgY29weSAtZm9yY2UgJHZhcnMocGFydGl0aW9uX2RpcikvTWFrZWZpbGUgJHZhcnMocGFydGl0aW9uX2Rpcl9wYXNzMikvTWFrZWZpbGVcbiIKLSMgICAgICAgICBhcHBlbmQgY29tbWFuZHMgImZpbGUgY29weSAtZm9yY2UgJHZhcnMocGFydGl0aW9uX2RpcikvTWFrZWZpbGUucGFydGl0aW9uICR2YXJzKHBhcnRpdGlvbl9kaXJfcGFzczIpL01ha2VmaWxlLnBhcnRpdGlvblxuIgotIyAgICAgIH0KLQotICAgICAgaWYgeyR2YXJzKGNvZGVnZW4pfSB7Ci0gICAgICAgICByZXR1cm4gJGNvbW1hbmRzCi0gICAgICB9IGVsc2UgewotICAgICAgICAgdXBsZXZlbCAjMCBldmFsICRjb21tYW5kcwotICAgICAgfQotICAgfQotCi0gICBwcm9jIHJ1bl9mbGV4aWxtIHt7Zm9ybWF0IDF9fSB7Ci0KLSAgICAgIGdsb2JhbCB2YXJzCi0gICAgICBnbG9iYWwgZXJyb3JzCi0gICAgICBnbG9iYWwgZW52Ci0KLSAgICAgIHNldCB2YXJzKHN0ZXApIGZsZXhpbG0KLSAgICAgIHNldCBjb21tYW5kcyAiIgotIyAgICAgIGFwcGVuZCBjb21tYW5kcyAic2V0IHZhcnMoc3RlcCkgJHZhcnMoc3RlcClcbiIKLQotICAgICAgRkZfTk9WVVM6OmluaXRpYWxpemVfc3RlcCBmbGV4aWxtCi0KLSMgICAgICBpZiB7JHZhcnMocmVwb3J0X3J1bl90aW1lKX0gewotIyAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAic2V0IHZhcnMoJHZhcnMoc3RlcCksc3RhcnRfdGltZSkgXFtjbG9jayBzZWNvbmRzXF1cbiIKLSMgICAgICB9Ci0KLSAgICAgIGlmIHskdmFycyh2ZXJib3NlKX0gewotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgUkVTVE9SSU5HIERFU0lHTlxuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjXG4iCi0gICAgICB9Ci0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAjIExvYWQgInByZSBmbGV4aWxtIiBwbHVnLWluIHNjcmlwdAotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6c291cmNlX3BsdWcgcHJlX2ZsZXhpbG1fdGNsXQotCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAjIFJlc3RvcmUgdGhlIGRlc2lnbgotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgc2V0IHZhcnMoaWxtKSBmYWxzZQotICAgICAgc2V0IGlsbV9saXN0IFtsaXN0XQotICAgICAgc2V0IHBhY19saXN0IFtsaXN0XQotICAgICAgaWYgeyR2YXJzKGVuYWJsZV9wYWMpfSB7Ci0gICAgICAgICBmb3JlYWNoIHBhcnQgJHZhcnMocGFydGl0aW9uX2xpc3QpIHsKLSAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkcGFydCxwYWNfbW9kZSldfSAgewotICAgICAgICAgICAgICAgaWYgeyR2YXJzKCRwYXJ0LHBhY19tb2RlKSA9PSAiaWxtIn0gewotICAgICAgICAgICAgICAgICAgbGFwcGVuZCBpbG1fbGlzdCAkcGFydAotICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgIGxhcHBlbmQgcGFjX2xpc3QgJHBhcnQKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0KLSAgICAgIH0KLSAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhpbG1fbGlzdCldICYmICgkdmFycyhpbG1fbGlzdCkgIT0gIiIpfSB7Ci0gICAgICAgICBmb3JlYWNoIGlsbSAkdmFycyhpbG1fbGlzdCkgewotICAgICAgICAgICAgaWYgeyhbbHNlYXJjaCAkaWxtX2xpc3QgJGlsbV0gPT0gLTEpICYmIChbbHNlYXJjaCAkcGFjX2xpc3QgJGlsbV0gPT0gLTEpfSB7Ci0gICAgICAgICAgICAgICBsYXBwZW5kIGlsbV9saXN0ICRpbG0KLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0KLSAgICAgIH0KLSAgICAgIGlmIHskaWxtX2xpc3QgIT0gIiJ9IHsKLSAgICAgICAgIHNldCB2YXJzKGlsbSkgdHJ1ZSAKLSAgICAgIH0KLQotICAgICAgIyBCQ0w6IEFkZGVkIHRhaWwgb2Ygc3Vic3Qgb2YgdmFycyhkYnNfZGlyKQotICAgICAgIyBOb3RlIC0gRURJRkYgSGllcmFyY2hpY2FsIGZsb3cgaXMgY3VycmVudGx5IElOQ09NUEFUSUJMRSB3aXRoIEZGIGRpciBzdHJ1Y3R1cmUKLSAgICAgICMgVGhlIGZvbGxvd2luZyBjb2RlIGFwcGVhcnMgdG8gcmVseSBvbiB2YXJzKGRic19kaXIpIGFsd2F5cyBiZWluZyB1bmRlciAkdmFycyhwYXJ0aXRpb25fZGlyKS8kdmFycyhkZXNpZ24pCi0gICAgICAjIFRoaXMgbmVlZHMgdG8gYmUgcmVjb25jaWxlZAotICAgICAgc2V0IGRpciBbZmlsZSB0YWlsIFtzdWJzdCAkdmFycyhkYnNfZGlyKV1dCi0KLSAgICAgIGlmIHtbbGluZGV4IFtzcGxpdCAkdmFycyh2ZXJzaW9uKSAiLiJdICAwXSA+IDEwfSB7Ci0gICAgICAgICBzZXQgY29tbWFuZCBbRkZfTk9WVVM6OmluaXRpYWxpemVfdGltaW5nIG1tbWNdCi0gICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoY3BmX2ZpbGUpXSAmJiAkdmFycyhjcGZfdGltaW5nKX0gewotICAgICAgICAgICAgc2V0IG1tbWNfZmlsZSAkdmFycyhzY3JpcHRfZGlyKS9pbmNyX3ZpZXdfZGVmaW5pdGlvbi50Y2wKLSAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnModmlld19kZWZpbml0aW9uX3RjbCldfSB7Ci0gICAgICAgICAgICAgICBzZXQgbW1tY19maWxlICR2YXJzKHZpZXdfZGVmaW5pdGlvbl90Y2wpCi0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgc2V0IG1tbWNfZmlsZSAkdmFycyhzY3JpcHRfZGlyKS92aWV3X2RlZmluaXRpb24udGNsCi0gICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0gICAgICB9Ci0KLSMgICAgICBhcHBlbmQgY29tbWFuZHMgInNldExpbWl0ZWRBY2Nlc3NGZWF0dXJlIGVuY0ZsZXhJTE0gMVxuIgotCi0gICAgICBhcHBlbmQgY29tbWFuZHMgImZpbGUgY29weSAtZm9yY2UgJHZhcnMoc2NyaXB0X2Rpcikvdmlld19kZWZpbml0aW9uLnRjbCAkdmFycyhwYXJ0aXRpb25fZGlyKS8kdmFycyhkZXNpZ24pLyR2YXJzKGRic19kaXIpL3ByZWN0cy5lbmMvdmlld0RlZmluaXRpb24udGNsXG4iCi0KLSAgICAgIHNldCBjd2QgW2V4ZWMgcHdkXQotICAgICAgYXBwZW5kIGNvbW1hbmRzICJjZCAkdmFycyhwYXJ0aXRpb25fZGlyKS8kdmFycyhkZXNpZ24pXG4iCi0KLSMgICAgICBzZXQgY29tbWFuZCAicmVhZF9kYiAuICR2YXJzKGRlc2lnbilcbiIKLSAgICAgIHNldCBjb21tYW5kICJyZWFkX2RiICR2YXJzKGRic19kaXIpL3ByZWN0cy5lbmMgXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgZmxleGlsbSxyZWFkX2RiICRjb21tYW5kXQotCi0jICAgICAgaWYgeyhbbGluZGV4IFtzcGxpdCAkdmFycyh2ZXJzaW9uKSAiLiJdICAwXSA+IDEwKSAmJiAkdmFycyhjcGZfdGltaW5nKX0gewotIyAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAic291cmNlICRtbW1jX2ZpbGVcbiIKLSMgICAgICB9Ci0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjpzb3VyY2VfcGx1ZyBhbHdheXNfc291cmNlX3RjbF0KLQotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgIyBMb2FkICJwb3N0IGZsZXhpbG0iIHBsdWctaW4gc2NyaXB0Ci0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjpzb3VyY2VfcGx1ZyBwb3N0X2ZsZXhpbG0gMF0KLQotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgIyBTcGVjaWZ5IElMTXMgaWYgZGVmaW5lZAotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgaWYgeyR2YXJzKGlsbSl9IHsKLSAgICAgICAgIGlmIHskdmFycyh2ZXJib3NlKX0gewotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjXG4iCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgU1BFQ0lGWUlORyBJTE1zXG4iCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiNcbiIKLSAgICAgICAgIH0KLSAgICAgICAgIHNldCBjb21tYW5kICIiIAotICAgICAgICAgZm9yZWFjaCBjZWxsICRpbG1fbGlzdCB7Ci0gICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJGNlbGwsaWxtX2RpcildICYmIFtmaWxlIGlzZGlyZWN0b3J5ICR2YXJzKCRjZWxsLGlsbV9kaXIpXX0gewotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgInNwZWNpZnlJbG0gLWNlbGwgJGNlbGwgLWRpciAkdmFycygkY2VsbCxpbG1fZGlyKVxuIgotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIHB1dHMgIjxGRj4gV0FSTklORzogSUxNIERJUkVDVE9SWSBNSVNTSU5HIEZPUiAkY2VsbCAuLi4gU0tJUFBJTkciCi0gICAgICAgICAgICB9Ci0gICAgICAgICB9IAotICAKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxzcGVjaWZ5X2lsbSAkY29tbWFuZF0KLSAgCi0jICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGlsbV9ub25fc2RjX2ZpbGUpXX0gewotIyAgICAgICAgICAgIGlmIHtbbGluZGV4IFtzcGxpdCAkdmFycyh2ZXJzaW9uKSAiLiJdICAwXSA8PSAxMH0gewotIyAgICAgICAgICAgICAgIHNldCBjb21tYW5kICJsb2FkVGltaW5nQ29uIC1pbG1Ob25TZGNGaWxlICR2YXJzKGlsbV9ub25fc2RjX2ZpbGUpXG4iCi0jICAgICAgICAgICAgfSBlbHNlIHsKLSMgICAgICAgICAgICAgICBzZXQgY29tbWFuZCAic2V0X2lsbV9ub25fc2RjX2NvbnN0cmFpbnRzX2ZpbGUgJHZhcnMoaWxtX25vbl9zZGNfZmlsZSlcbiIKLSMgICAgICAgICAgICB9Ci0jICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLGxvYWRfaWxtX25vbl9zZGNfZmlsZSAkY29tbWFuZF0KLSMgICAgICAgICB9Ci0jICAgICAgfQotCi0jICAgICAgaWYge1tsaW5kZXggW3NwbGl0ICR2YXJzKHZlcnNpb24pICIuIl0gIDBdIDw9IDEwfSB7Ci0jICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGNwZl9maWxlKV19IHsKLSMgICAgICAgICAgICBzZXQgY29tbWFuZCAibG9hZENQRiAkdmFycyhjcGZfZmlsZSlcbiIKLSMgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksbG9hZF9jcGYgJGNvbW1hbmRdCi0jICAgICAgICAgICAgc2V0IGNvbW1hbmQgImNvbW1pdENQRiIKLSMgICAgICAgICAgICBpZiB7JHZhcnMoY3BmX2tlZXBfcm93cyl9IHsKLSMgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiIC1rZWVwUm93cyIKLSMgICAgICAgICAgICB9Ci0jICAgICAgICAgICAgaWYgeyR2YXJzKGNwZl9wb3dlcl9kb21haW4pfSB7Ci0jICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAtcG93ZXJfZG9tYWluIgotIyAgICAgICAgICAgIH0KLSMgICAgICAgICAgICBpZiB7JHZhcnMoY3BmX2lzb2xhdGlvbil9IHsKLSMgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiIC1pc29sYXRpb24iCi0jICAgICAgICAgICAgfQotIyAgICAgICAgICAgIGlmIHskdmFycyhjcGZfc3RhdGVfcmV0ZW50aW9uKX0gewotIyAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgLXN0YXRlX3JldGVudGlvbiIKLSMgICAgICAgICAgICB9Ci0jICAgICAgICAgICAgaWYgeyR2YXJzKGNwZl9sZXZlbF9zaGlmdGVyKX0gewotIyAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgLWxldmVsX3NoaWZ0ZXIiCi0jICAgICAgICAgICAgfQotIyAgICAgICAgICAgIGlmIHskdmFycyhjcGZfcG93ZXJfc3dpdGNoKX0gewotIyAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgLXBvd2VyX3N3aXRjaCIKLSMgICAgICAgICAgICB9Ci0jICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIlxuIgotIyAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxjb21taXRfY3BmICRjb21tYW5kXQotIyAgICAgICAgIH0KLSAgICAgIH0KLQotIyAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhjcGZfZmlsZSldICYmICR2YXJzKGNwZl90aW1pbmcpfSB7Ci0gICAgICAgICBzZXQgY29tbWFuZCBbRkZfTk9WVVM6OmluaXRpYWxpemVfdGltaW5nIG1tbWNdCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksaW5pdGlhbGl6ZV90aW1pbmcgJGNvbW1hbmRdCi0jICAgICAgfQotCi0jICAgICAgc2V0IGNvbW1hbmQgW0ZGX05PVlVTOjp1cGRhdGVfdGltaW5nIG1tbWMgXQotIyAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSx1cGRhdGVfdGltaW5nICRjb21tYW5kXQotCi0gICAgICAgZm9yZWFjaCBtb2RlIFtjb25jYXQgJHZhcnMoYWN0aXZlX3NldHVwX3ZpZXdzKSAkdmFycyhhY3RpdmVfaG9sZF92aWV3cyldIHsKLSAgICAgICAgIHNldCBjb21tYW5kICJ1cGRhdGVfY29uc3RyYWludF9tb2RlIC1uYW1lICRtb2RlIC1pbG1fc2RjX2ZpbGVzIFxbZ2V0X2NvbnN0cmFpbnRfbW9kZSAkbW9kZSAtc2RjX2ZpbGVzXF1cbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSx1cGRhdGVfY29uc3RyYWludF9tb2RlICRjb21tYW5kXQotICAgICAgfQotCi0gICAgICBhcHBlbmQgY29tbWFuZHMgImNkICRjd2RcbiIKLQotICAgICAgc2V0IGNvbW1hbmQgIiIKLSAgICAgIGZvcmVhY2ggcGFydCAkdmFycyhwYXJ0aXRpb25fbGlzdCkgewotICAgICAgICAgYXBwZW5kIGNvbW1hbmQgInNldF9tb2R1bGVfbW9kZWwgLWNlbGwgJHBhcnQgXFxcbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kICItdHlwZSBmbGV4SWxtIFxcXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZCAiLWRpciAkdmFycyhwYXJ0aXRpb25fZGlyKS8kcGFydC8kcGFydC5mbGV4aWxtXG4iCi0gICAgICB9Ci0KLSAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxzZXRfbW9kdWxlX21vZGVsICRjb21tYW5kXQotCi0gICAgICBzZXQgY29tbWFuZCAiY29tbWl0X21vZHVsZV9tb2RlbFxuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLGNvbW1pdF9tb2R1bGVfbW9kZWwgJGNvbW1hbmRdCi0KLSAgICAgIHNldCBjb21tYW5kICIiIAotICAgICAgZm9yZWFjaCBwYXJ0ICR2YXJzKHBhcnRpdGlvbl9saXN0KSB7Ci0gICAgICAgICBhcHBlbmQgY29tbWFuZCAic2V0TW9kdWxlVmlldyAtcGFydGl0aW9uICRwYXJ0IC10eXBlIGludGVyZmFjZVxuIgotICAgICAgfQotICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHNldF9tb2R1bGVfdmlldyAkY29tbWFuZF0KLQotICAgICAgc2V0IGNvbW1hbmQgImdldE1vZHVsZVZpZXdcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxnZXRfbW9kdWxlX3ZpZXcgJGNvbW1hbmRdCi0KLSAgICAgIGlmIHskdmFycyhmbG93KSA9PSAibW1tYyJ9IHsKLSAgICAgICAgIHNldCBjb21tYW5kIFtGRl9OT1ZVUzo6ZGVyYXRlX3RpbWluZyBtbW1jXQotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLGRlcmF0ZV90aW1pbmcgJGNvbW1hbmRdCi0gICAgICAgICBzZXQgY29tbWFuZCAiIgotIyAgICAgICAgIGZvcmVhY2ggbW9kZSAkdmFycyhjb25zdHJhaW50X21vZGVzKSB7Ci0jICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgInVwZGF0ZV9jb25zdHJhaW50X21vZGUgLW5hbWUgJG1vZGUgLXNkY19maWxlcyBcIiR2YXJzKCRtb2RlLHByZV9jdHNfc2RjKVwiXG4iICAgCi0jICAgICAgICAgfQotIyAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSx1cGRhdGVfY29uc3RyYWludF9tb2RlICRjb21tYW5kXQotICAgICAgfQotCi0gICAgICAjc2V0X2FuYWx5c2lzX3ZpZXcgLXNldHVwIFthbGxfc2V0dXBfYW5hbHlzaXNfdmlld3NdIC1ob2xkIFthbGxfaG9sZF9hbmFseXNpc192aWV3c10KLSAgICAgICNwdXRzICI8RkY+IFNFVFVQIC0+IFthbGxfc2V0dXBfYW5hbHlzaXNfdmlld3NdIiAKLSAgICAgICNwdXRzICI8RkY+IEhPTEQgLT4gW2FsbF9ob2xkX2FuYWx5c2lzX3ZpZXdzXSIgCi0KLSAgICAgIHNldCBjb21tYW5kICJjcmVhdGVfYWN0aXZlX2xvZ2ljX3ZpZXcgLXR5cGUgdG9wX2NyaXRpY2FsIC1wcmVfY3RzXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksY3JlYXRlX2FjdGl2ZV9sb2dpY192aWV3ICRjb21tYW5kXQotICAgICAgc2V0IGNvbW1hbmQgInNldF9kYiBvcHRfaGllcl9vcHRfc3RhZ2UgcHJlX2N0c1xuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHNldF9oaWVyX21vZGUgJGNvbW1hbmRdCi0jICAgICAgc2V0IGNvbW1hbmQgInNldE9wdE1vZGUgLWFkZEluc3RhbmNlUHJlRml4IEZsZXhJTE1JXyAtYWRkTmV0UHJlRml4IEZsZXhJTE1OX1xuIgotIyAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxzZXRfb3B0X21vZGUgJGNvbW1hbmRdCi0KLSAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OnNvdXJjZV9wbHVnIHByZV9mbGV4aWxtX3RjbCAwXQotICAgICAgc2V0IGNvbW1hbmQgIiIKLSAgICAgIGZvcmVhY2ggcGFydCAkcGFjX2xpc3QgewotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgInNldCBoaW5zdCBcW2RiSEluc3ROYW1lIFxbZGJDZWxsSEluc3QgXFtkYkdldENlbGxCeU5hbWUgJHBhcnRcXVxdXF1cbiIKLSAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkcGFydCxwYWNfbW9kZSldfSB7Ci0gICAgICAgICAgICBpZiB7JHZhcnMoJHBhcnQscGFjX21vZGUpID09ICJyZWFkX29ubHkifSB7IHNldCB2YXJzKCRwYXJ0LHBhY19tb2RlKSAicmVhZE9ubHkiIH0KLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJzZXRNb2R1bGVWaWV3IC1oaW5zdCBcJGhpbnN0IC10eXBlICR2YXJzKCRwYXJ0LHBhY19tb2RlKVxuIgotICAgICAgICAgfSAKLSAgICAgIH0KLQotICAgICAgYXBwZW5kIGNvbW1hbmQgImdldE1vZHVsZVZpZXdcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxzZXRfbW9kdWxlX3ZpZXcgJGNvbW1hbmRdCi0KLSAgICAgIGlmIHskdmFycyh2ZXJib3NlKX0gewotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgUlVOTklORyBGTEVYSUxNIE9QVElNSVpBVElPTlxuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjXG4iCi0gICAgICB9Ci0gICAgICBzZXQgY29tbWFuZCAib3B0X2Rlc2lnbiAtcHJlX2N0cyAtcmVwb3J0X2RpciAkdmFycyhycHRfZGlyKSAtcmVwb3J0X3ByZWZpeCBmbGV4aWxtXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksb3B0X2Rlc2lnbiAkY29tbWFuZF0KLQotICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6c291cmNlX3BsdWcgcG9zdF9mbGV4aWxtX3RjbCAwXQotCi0gICAgICBpZiB7W3N0cmluZyBjb21wYXJlIC1ub2Nhc2UgJHZhcnMoZGJzX2Zvcm1hdCkgIm9hIl09PTB9IHsKLSAgICAgICAgIGlmIHtbbGluZGV4IFtzcGxpdCAkdmFycyh2ZXJzaW9uKSAiLiJdICAwXSA+IDEwfSB7Ci0gICAgICAgICAgICBzZXQgY29tbWFuZCAid3JpdGVfZGIgLW9hX2xpYl9jZWxsX3ZpZXcgeyR2YXJzKG9hX2Rlc2lnbl9saWIpICR2YXJzKGRlc2lnbikgZmxleGlsbX1cbiIKLSAgICAgICAgIH0gCi0gICAgICB9IGVsc2UgewotICAgICAgICAgc2V0IGNvbW1hbmQgIndyaXRlX2RiICR2YXJzKGRic19kaXIpL2ZsZXhpbG0uZW5jXG4iCi0gICAgICB9Ci0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksc2F2ZV9kYnMgJGNvbW1hbmRdCi0KLSAgICAgIHNldCBjb21tYW5kICJjbGVhcl9hY3RpdmVfbG9naWNfdmlld1xuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLGNsZWFyX2FjdGl2ZV9sb2dpY192aWV3ICRjb21tYW5kXQotCi0gICAgICBzZXQgY29tbWFuZCAidXBkYXRlX3BhcnRpdGlvbiAtZmxleF9pbG1fZWNvIFxcXG4iCi0gICAgICBmb3JlYWNoIHBhcnQgJHZhcnMocGFydGl0aW9uX2xpc3QpIHsgCi0gICAgICAgICBhcHBlbmQgY29tbWFuZCAiICAgIC1nb2xkZW5fYmxvY2tfZGlyICR2YXJzKHBhcnRpdGlvbl9kaXIpLyRwYXJ0LyR2YXJzKGRic19kaXIpL3ByZWN0cy5lbmMgXFxcbiIKLSAgICAgIH0gCi0gICAgICBhcHBlbmQgY29tbWFuZCAiICAgIC1mbGV4X2lsbV9kaXIgJHZhcnMocGFydGl0aW9uX2RpcilfRkxFWElMTVxuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHVwZGF0ZV9wYXJ0aXRpb24gJGNvbW1hbmRdCi0KLSAgICAgIHNldCBjb21tYW5kICJyZXBvcnRfcmVzb3VyY2UgLWVuZCBvcHRfZmxleElsbVxuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHJlcG9ydF9yZXNvdXJjZSAkY29tbWFuZF0KLQotICAgICAgYXBwZW5kIGNvbW1hbmRzICIjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgIiMgPEZGPiBHRU5FUkFUSU5HIFJFUE9SVFNcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyAiIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIgotCi0gICAgICBpZiB7JHZhcnMocmVwb3J0X3Bvd2VyKX0gewotICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKHBvd2VyX2FuYWx5c2lzX3ZpZXcpXSAmJiAoJHZhcnMocG93ZXJfYW5hbHlzaXNfdmlldykgIT0gIiIpfSB7Ci0gICAgICAgICAgICBzZXQgY29tbWFuZCAicmVwb3J0X3Bvd2VyIC12aWV3ICR2YXJzKHBvd2VyX2FuYWx5c2lzX3ZpZXcpIC1vdXRmaWxlICR2YXJzKHJwdF9kaXIpLyR2YXJzKHN0ZXApLnBvd2VyLnJwdFxuIgotICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHNldCBjb21tYW5kICJyZXBvcnRfcG93ZXIgLW91dGZpbGUgJHZhcnMocnB0X2RpcikvJHZhcnMoc3RlcCkucG93ZXIucnB0XG4iCi0gICAgICAgICB9Ci0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCkscmVwb3J0X3Bvd2VyICRjb21tYW5kXQotICAgICAgfQotCi0gICAgICBpZiB7W0ZGOjppc19scF9mbG93XSAmJiBbaW5mbyBleGlzdHMgdmFycyhwb3dlcl9kb21haW5zKV0gJiYgW2xsZW5ndGggJHZhcnMocG93ZXJfZG9tYWlucyldID4gMX0gewotCi0gICAgICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAgICAjIFZlcmlmeSBwb3dlciBkb21haW4KLSAgICAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLQotIyAgICAgICAgIHNldCBjb21tYW5kICJjaGVja19wb3dlcl9kb21haW5zIC1iaW5kIC1nY29ubiIKLSMgICAgICAgICBhcHBlbmQgY29tbWFuZCAiIC1pc29fbmV0X3BkICR2YXJzKHJwdF9kaXIpLyR2YXJzKHN0ZXApLmlzb25ldHMucnB0IgotIyAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgLXhfbmV0X3BkICR2YXJzKHJwdF9kaXIpLyR2YXJzKHN0ZXApLnhuZXRzLnJwdFxuIgotCi0jICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLGNoZWNrX3Bvd2VyX2RvbWFpbnMgJGNvbW1hbmRdCi0KLSAgICAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICAgICMgUnVuIENMUAotICAgICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCi0gICAgICAgICBpZiB7JHZhcnMocnVuX2NscCkgJiYgKFthdXRvX2V4ZWNvayBsZWNdICE9ICIiKX0gewotICAgICAgICAgICAgc2V0IGNvbW1hbmQgInJ1bl9jbHAgIgotICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGNscF9vcHRpb25zKV19IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICR2YXJzKGNscF9vcHRpb25zKQotICAgICAgICAgICAgfQotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIlxuIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHJ1bl9jbHAgJGNvbW1hbmRdCi0gICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycyhjbHBfd2FybmluZyldfSB7Ci0gICAgICAgICAgICAgICBwdXRzICI8RkY+IFdBUk5JTkc6IFVOQUJMRSBUTyBSVU4gQ0xQIC4uLiBQTEVBU0UgTUFLRSBTVVJFIElUIElTIElOIFlPVVIgUEFUSCIKLSAgICAgICAgICAgICAgIHNldCB2YXJzKGNscF93YXJuaW5nKSB0cnVlCi0gICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0gICAgICB9Ci0gICAgICBpZiB7ISR2YXJzKGNvZGVnZW4pfSB7Ci0gICAgICAgICB1cGxldmVsICMwIGV2YWwgJGNvbW1hbmRzCi0gICAgICAgICBzZXQgY29tbWFuZHMgIiIgCi0gICAgICB9Ci0KLSMgICAgICBpZiB7JHZhcnMobWFrZWZpbGUpfSB7IAotICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiaWYge1xbaW5mbyBleGlzdHMgZW52KFZQQVRIKVxdfSB7XG4iCi0gICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJzZXQgb3AgXFtvcGVuICRlbnYoVlBBVEgpL2ZsZXhpbG0gd1xdXG4iCi0gICAgICAgICAgZm9yZWFjaCBwYXJ0ICR2YXJzKHBhcnRpdGlvbl9saXN0KSB7Ci0gICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJwdXRzIFwkb3AgXCJzZXQgdmFycygkcGFydCxjZHR2KSBcJDo6UmRhX0NEVFY6OmlsbURhdGFJbmZvKCRwYXJ0LGJsb2NrRGlyKVwiXG4iCi0gICAgICAgICAgfQotICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiY2xvc2UgXCRvcFxuIgotIyAgICAgICAgICBmb3JlYWNoIHBhcnQgJHZhcnMocGFydGl0aW9uX2xpc3QpIHsKLSMgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJmaWxlIGNvcHkgLWZvcmNlICR2YXJzKHBhcnRpdGlvbl9kaXJfcGFzczIpLyRwYXJ0L01ha2VmaWxlICR2YXJzKHBhcnRpdGlvbl9kaXJfcGFzczIpLyRwYXJ0Lk1ha2VmaWxlXG4iCi0jICAgICAgICAgIH0KLQotICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiZXhlYyAvYmluL3RvdWNoIFwkZW52KFZQQVRIKS8kdmFycyhzdGVwKVxuIgotICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAifVxuIgotIyAgICAgICB9Ci0KLQotICAgICAgaWYgeyR2YXJzKGNvZGVnZW4pfSB7Ci0gICAgICAgICByZXR1cm4gJGNvbW1hbmRzCi0gICAgICB9IGVsc2UgewotICAgICAgICAgdXBsZXZlbCAjMCBldmFsICRjb21tYW5kcwotICAgICAgfQotICAgfQotCi0gICBwcm9jIHJ1bl9wYXJ0aXRpb25fcGxhY2Uge3tmb3JtYXQgMX19IHsKLQotICAgICAgZ2xvYmFsIHZhcnMKLSAgICAgIGdsb2JhbCBlcnJvcnMKLSAgICAgIGdsb2JhbCBlbnYKLQotICAgICAgc2V0IHZhcnMoc3RlcCkgcGFydGl0aW9uX3BsYWNlCi0gICAgICBzZXQgdmFycyhoaWVyKSB0cnVlCi0gICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnModGltZV9kZXNpZ25fb3B0aW9ucyxzZXR1cCldfSB7Ci0gICAgICAgICBzZXQgdG1wX3RpbWVfZGVzaWduX29wdGlvbnNfc2V0dXAgJHZhcnModGltZV9kZXNpZ25fb3B0aW9ucyxzZXR1cCkKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgICBzZXQgdmFycyh0aW1lX2Rlc2lnbl9vcHRpb25zLHNldHVwKSAiIgotICAgICAgfQotCi0gICAgICBzZXQgY29tbWFuZHMgIiIKLQotCi0gICAgICBpZiB7ISR2YXJzKHVzZV9mbGV4bW9kZWxzKX0gewotICAgICAgICAjIEluaXRpYWxpc2UgdGhlIGRlc2lnbiBpZiBub3QgdXNpbmcgZmxleG1vZGVscyAKLSAgICAgICAgaWYgeyR2YXJzKGNvZGVnZW4pfSB7IAotICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGX05PVlVTOjpydW5faW5pdCAkZm9ybWF0XQotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICBGRl9OT1ZVUzo6cnVuX2luaXQgJGZvcm1hdAotICAgICAgICB9Ci0gICAgICB9Ci0KLSAgICAgIGlmIHskdmFycyh1c2VfcHJvdG9fbmV0X2RlbGF5X21vZGVsKSB9IHsKLSAgICAgICAgIGlmIHshJHZhcnModXNlX2ZsZXhtb2RlbHMpfSB7Ci0gICAgICAgICAgICBzZXQgY29tbWFuZCAiY2F0Y2gge2V4ZWMgcm0gLXJmIHByb3RvX21vZGVsX0JBQ0tVUH1cbmNhdGNoIHtleGVjIG12IC1mIHByb3RvX21vZGVsIHByb3RvX21vZGVsX0JBQ0tVUH1cbiIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxwcm90b19tb2RlbF9CQUNLVVAgJGNvbW1hbmRdCi0gICAgICAgICAgICBzZXQgY29tbWFuZCAiY3JlYXRlX3Byb3RvX25ldF9kZWxheV9tb2RlbFxuIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLGNyZWF0ZV9wc19wZXJfbWljcm9uX21vZGVsICRjb21tYW5kXQotICAgICAgICAgfQotICAgICAgICAgc2V0IGNvbW1hbmQgInRpbWVfZGVzaWduIC1wcm90byAtcHJlX3BsYWNlIC1yZXBvcnRfcHJlZml4IHByZXBsYWNlIC1yZXBvcnRfZGlyICR2YXJzKHJwdF9kaXIpXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksdGltZV9kZXNpZ24gJGNvbW1hbmRdCi0gICAgICB9IGVsc2UgewotICAgICAgICAgc2V0IGNvbW1hbmQgInRpbWVfZGVzaWduIC1wcmVfcGxhY2UgLXJlcG9ydF9wcmVmaXggcHJlcGxhY2UgLXJlcG9ydF9kaXIgJHZhcnMocnB0X2RpcilcbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSx0aW1lX2Rlc2lnbiAkY29tbWFuZF0KLSAgICAgIH0KLSAgICAgCi0gICAgICBpZiB7JHZhcnModXNlX2ZsZXhtb2RlbHMpfSB7Ci0gICAgICAgICBzZXQgY29tbWFuZCAicmVwb3J0X3Byb3RvX21vZGVscyAtY3JlYXRlZFxuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHJlcG9ydF9wcm90b19tb2RlbHMgJGNvbW1hbmRdCi0gICAgICB9Ci0gICAgICAKLSAgICAgIGlmIHtbc3RyaW5nIGNvbXBhcmUgLW5vY2FzZSAkdmFycyhkYnNfZm9ybWF0KSAib2EiXT09MH0gewotICAgICAgICAgaWYge1tsaW5kZXggW3NwbGl0ICR2YXJzKHZlcnNpb24pICIuIl0gIDBdID4gMTB9IHsKLSAgICAgICAgICAgIHNldCBjb21tYW5kICJ3cml0ZV9kYiAtb2FfbGliX2NlbGxfdmlldyB7JHZhcnMob2FfZGVzaWduX2xpYikgJHZhcnMoZGVzaWduKSBpbml0fVxuIgotICAgICAgICAgfSAKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgICBpZiB7JHZhcnMoc3RlcCkgIT0gInBhcnRpdGlvbl9wbGFjZSJ9IHsKLSAgICAgICAgICAgIHNldCBjb21tYW5kICJ3cml0ZV9kYiAkdmFycyhkYnNfZGlyKS9pbml0LmVuYyBcbiIKLSAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBzZXQgY29tbWFuZCAiIgotICAgICAgICAgfQotICAgICAgfQotCi0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksc2F2ZV9kZXNpZ24saW5pdCAkY29tbWFuZF0KLQotICAgICAgc2V0IGNvbW1hbmQgIiIKLSAgICAgICMgQWRkaXRpb25hbCB0aW1pbmcgc2V0dXAKLSAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkdmFycyhkZXNpZ24pLGxhdGVuY3lfc2RjKV19IHsKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kICJmb3JlYWNoIG1vZGUgXFthbGxfY29uc3RyYWludF9tb2RlcyAtYWN0aXZlXF0ge1xuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAgIHNldCBzZGNfZmlsZXMgXFtnZXRfY29uc3RyYWludF9tb2RlIFwkbW9kZSAtc2RjX2ZpbGVzXF1cbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgICBzZXQgc2RjX2xpc3QgXFtjb25jYXQgXCRzZGNfZmlsZXMgJHZhcnMoJHZhcnMoZGVzaWduKSxsYXRlbmN5X3NkYylcXVxuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAgIHVwZGF0ZV9jb25zdHJhaW50X21vZGUgLW5hbWUgXCRtb2RlIC1zZGNfZmlsZXMgXCRzZGNfbGlzdFxuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIn1cbiIKLQotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHVwZGF0ZV9jb25zdHJhaW50X21vZGUgJGNvbW1hbmRdCi0gICAgICB9Ci0KLSAgICAgIGZvcmVhY2ggdmlldyBbY29uY2F0ICR2YXJzKHNldHVwX2FuYWx5c2lzX3ZpZXdzKSAkdmFycyhob2xkX2FuYWx5c2lzX3ZpZXdzKV0gewotICAgICAgICAgZm9yZWFjaCBwdG4gJHZhcnMocGFydGl0aW9uX2xpc3QpIHsKLSAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkcHRuLCR2aWV3LGxhdGVuY3lfc2RjKV19IHsKLSAgICAgICAgICAgICAgIHNldCBsYXRlbmN5KCR2aWV3LCRwdG4pICR2YXJzKCRwdG4sJHZpZXcsbGF0ZW5jeV9zZGMpCi0gICAgICAgICAgICB9IGVsc2VpZiB7W2luZm8gZXhpc3RzIHZhcnMoJHB0bixsYXRlbmN5X3NkYyldfSB7Ci0gICAgICAgICAgICAgICBzZXQgbGF0ZW5jeSgkdmlldywkcHRuKSAkdmFycygkcHRuLGxhdGVuY3lfc2RjKQotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIHNldCBsYXRlbmN5KCR2aWV3LCRwdG4pICJub25lIgotICAgICAgICAgICAgfQotICAgICAgICAgfQotICAgICAgfQotICAgICAgCi0gICAgICBzZXQgY29tbWFuZCAiIgotICAgICAgZm9yZWFjaCB2aWV3IFtjb25jYXQgJHZhcnMoc2V0dXBfYW5hbHlzaXNfdmlld3MpICR2YXJzKGhvbGRfYW5hbHlzaXNfdmlld3MpXSB7Ci0gICAgICAgICBmb3JlYWNoIHB0biAkdmFycyhwYXJ0aXRpb25fbGlzdCkgewotICAgICAgICAgICAgaWYgeyRsYXRlbmN5KCR2aWV3LCRwdG4pICE9ICJub25lIn0gewotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgInNldF9wYXJ0aXRpb25fdXNlcl9jb25zdHJhaW50c19maWxlIC12aWV3ICR2aWV3IC1uYW1lICRsYXRlbmN5KCR2aWV3LCRwdG4pIC1wYXJ0aXRpb24gJHB0blxuIgotICAgICAgICAgICAgfQotICAgICAgICAgfQotICAgICAgfQotCi0gICAgICBpZiB7JGNvbW1hbmQgIT0gIiJ9IHsgICAgICAKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxzZXRfcGFydGl0aW9uX3VzZXJfY29uc3RyYWludHNfZmlsZSAkY29tbWFuZF0KLSAgICAgIH0KLQotICAgICAgIyBJbnNlcnQgZmVlZHRocm91Z2ggYW5kIHRyaWFsIHJvdXRlLCBhcyBhcHByb3ByaWF0ZQotICAgICAgc2V0IGRvX3RyaWFsX3JvdXRlX3RpbWVfZGVzaWduIDEKLQotICAgICAgIyBQcmUtcGxhY2VtZW50Ci0gICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMocGxhY2Usc2V0X3BsYWNlX21vZGUsc2tpcCldfSB7Ci0gICAgICAgICBzZXQgY2FjaGVfc2tpcF9wbGFjZV9tb2RlICR2YXJzKHBsYWNlLHNldF9wbGFjZV9tb2RlLHNraXApCi0gICAgICB9Ci0gICAgICBzZXQgdmFycyhwbGFjZSxzZXRfcGxhY2VfbW9kZSxza2lwKSAxCi0gICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMocGxhY2UscGxhY2VfZGVzaWduLHNraXApXX0gewotICAgICAgICAgc2V0IGNhY2hlX3NraXBfcGxhY2VfZGVzaWduICR2YXJzKHBsYWNlLHBsYWNlX2Rlc2lnbixza2lwKQotICAgICAgfQotICAgICAgc2V0IHZhcnMocGxhY2UscGxhY2VfZGVzaWduLHNraXApIDEKLQotICAgICAgc2V0IHZhcnMoaGllcl9jYXNlKSAiJHZhcnModXNlX2ZsZXhtb2RlbHMpJHZhcnMocGxhY2VtZW50X2Jhc2VkX3B0bikkdmFycyhhYnV0dGVkX2Rlc2lnbikkdmFycyhpbnNlcnRfZmVlZHRocm91Z2gpIgotCi0gICAgICAjIERpc2FibGUgc2NhbiByZW9yZGVyIGZvciBwYXJ0aXRpb25pbmcgZmxvdwotICAgICAgIyBzZXQgY29tbWFuZCAic2V0X2RiIHBsYWNlX3Jlb3JkZXJfc2NhbiBmYWxzZVxuIgotICAgICAgIyBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksc2V0X3BsYWNlX21vZGUgJGNvbW1hbmRdCi0KLSAgICAgIGFwcGVuZCBjb21tYW5kICJpZiB7XFtnZXRfZGIgaGluc3RzIC5wYXJ0aXRpb24uY2xvbmVzXF0gIT0gXCJcIn0ge1xuIgotICAgICAgYXBwZW5kIGNvbW1hbmQgIiAgIGFsaWduX3BhcnRpdGlvbl9jbG9uZXNcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kICJ9XG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksYWxpZ25fcGFydGl0aW9uX2Nsb25lcyAkY29tbWFuZF0KLQotICAgICAgc3dpdGNoICR2YXJzKGhpZXJfY2FzZSkgewotICAgICAgICAgIjAwMDAiIHsKLSAgICAgICAgICAgIGlmIHskdmFycyhlbmFibGVfbnJncil9IHsKLSMgICAgICAgICAgICAgICBzZXQgY29tbWFuZCAic2V0X2RiIGRlc2lnbl91c2VfdHVyYm9fbnJncl9mbG93IHRydWVcbiIKLSMgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksc2V0X2Rlc2lnbl9tb2RlICRjb21tYW5kXQotICAgICAgICAgICAgfQotICAgICAgICAgfQotICAgICAgICAgIjAwMDEiIHsKLSAgICAgICAgICAgIGlmIHskdmFycyhlbmFibGVfbnJncil9IHsKLSMgICAgICAgICAgICAgICBzZXQgY29tbWFuZCAic2V0X2RiIGRlc2lnbl91c2VfdHVyYm9fbnJncl9mbG93IHRydWVcbiIKLSMgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksc2V0X2Rlc2lnbl9tb2RlICRjb21tYW5kXQotICAgICAgICAgICAgfQotICAgICAgICAgICAgc2V0IGNvbW1hbmQgInNldF9kYiBwbGFjZV9nbG9iYWxfY29uZ19lZmZvcnQgYXV0b1xuc2V0X2RiIHBsYWNlX2dsb2JhbF9jbG9ja19nYXRlX2F3YXJlIHRydWVcbnNldF9kYiBwbGFjZV9nbG9iYWxfcGxhY2VfaW9fcGlucyB0cnVlXG4iCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksc2V0X3BsYWNlX21vZGUgJGNvbW1hbmRdCi0gICAgICAgICB9Ci0gICAgICAgICAiMDAxMCIgewotICAgICAgICAgICAgaWYgeyR2YXJzKGVuYWJsZV9ucmdyKX0gewotIyAgICAgICAgICAgICAgIHNldCBjb21tYW5kICJzZXRfZGIgZGVzaWduX3VzZV90dXJib19ucmdyX2Zsb3cgdHJ1ZVxuIgotIyAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxzZXRfZGVzaWduX21vZGUgJGNvbW1hbmRdCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBzZXQgY29tbWFuZCAic2V0X2RiIHBsYWNlX2dsb2JhbF9jb25nX2VmZm9ydCBhdXRvXG5zZXRfZGIgcGxhY2VfZ2xvYmFsX2Nsb2NrX2dhdGVfYXdhcmUgdHJ1ZVxuc2V0X2RiIHBsYWNlX2dsb2JhbF9wbGFjZV9pb19waW5zIHRydWVcbiIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxzZXRfcGxhY2VfbW9kZSAkY29tbWFuZF0KLSAgICAgICAgIH0KLSAgICAgICAgICIwMDExIiB7Ci0gICAgICAgICAgICBpZiB7JHZhcnMoZW5hYmxlX25yZ3IpfSB7Ci0jICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgInNldF9kYiBkZXNpZ25fdXNlX3R1cmJvX25yZ3JfZmxvdyB0cnVlXG4iCi0jICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHNldF9kZXNpZ25fbW9kZSAkY29tbWFuZF0KLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHNldCBjb21tYW5kICJzZXRfZGIgcGxhY2VfZ2xvYmFsX2NvbmdfZWZmb3J0IGF1dG9cbnNldF9kYiBwbGFjZV9nbG9iYWxfY2xvY2tfZ2F0ZV9hd2FyZSB0cnVlXG5zZXRfZGIgcGxhY2VfZ2xvYmFsX3BsYWNlX2lvX3BpbnMgdHJ1ZVxuIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHNldF9wbGFjZV9tb2RlICRjb21tYW5kXQotICAgICAgICAgfQotICAgICAgICAgIjAxMDAiIHsKLSAgICAgICAgICAgIGlmIHskdmFycyhlbmFibGVfbnJncil9IHsKLSMgICAgICAgICAgICAgICBzZXQgY29tbWFuZCAic2V0X2RiIGRlc2lnbl91c2VfdHVyYm9fbnJncl9mbG93IHRydWVcbiIKLSMgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksc2V0X2Rlc2lnbl9tb2RlICRjb21tYW5kXQotICAgICAgICAgICAgfQotICAgICAgICAgICAgc2V0IGNvbW1hbmQgInNldF9kYiBwbGFjZV9nbG9iYWxfY29uZ19lZmZvcnQgYXV0b1xuc2V0X2RiIHBsYWNlX2dsb2JhbF9jbG9ja19nYXRlX2F3YXJlIHRydWVcbnNldF9kYiBwbGFjZV9nbG9iYWxfcGxhY2VfaW9fcGlucyB0cnVlXG5zZXRfZGIgcGxhY2VfZGVzaWduX2Zsb29ycGxhbl9tb2RlIHRydWVcbiIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxzZXRfcGxhY2VfbW9kZSAkY29tbWFuZF0KLSAgICAgICAgIH0KLSAgICAgICAgICIwMTAxIiB7Ci0gICAgICAgICAgICBpZiB7JHZhcnMoZW5hYmxlX25yZ3IpfSB7Ci0jICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgInNldF9kYiBkZXNpZ25fdXNlX3R1cmJvX25yZ3JfZmxvdyB0cnVlXG4iCi0jICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHNldF9kZXNpZ25fbW9kZSAkY29tbWFuZF0KLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHNldCBjb21tYW5kICJzZXRfZGIgcGxhY2VfZ2xvYmFsX2NvbmdfZWZmb3J0IGF1dG9cbnNldF9kYiBwbGFjZV9nbG9iYWxfY2xvY2tfZ2F0ZV9hd2FyZSB0cnVlXG5zZXRfZGIgcGxhY2VfZ2xvYmFsX3BsYWNlX2lvX3BpbnMgdHJ1ZVxuc2V0X2RiIHBsYWNlX2Rlc2lnbl9mbG9vcnBsYW5fbW9kZSB0cnVlXG4iCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksc2V0X3BsYWNlX21vZGUgJGNvbW1hbmRdCi0gICAgICAgICB9Ci0gICAgICAgICAiMDExMCIgewotICAgICAgICAgICAgaWYgeyR2YXJzKGVuYWJsZV9ucmdyKX0gewotIyAgICAgICAgICAgICAgIHNldCBjb21tYW5kICJzZXRfZGIgZGVzaWduX3VzZV90dXJib19ucmdyX2Zsb3cgdHJ1ZVxuIgotIyAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxzZXRfZGVzaWduX21vZGUgJGNvbW1hbmRdCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBzZXQgY29tbWFuZCAic2V0X2RiIHBsYWNlX2dsb2JhbF9jb25nX2VmZm9ydCBhdXRvXG5zZXRfZGIgcGxhY2VfZ2xvYmFsX2Nsb2NrX2dhdGVfYXdhcmUgdHJ1ZVxuc2V0X2RiIHBsYWNlX2dsb2JhbF9wbGFjZV9pb19waW5zIHRydWVcbnNldF9kYiBwbGFjZV9kZXNpZ25fZmxvb3JwbGFuX21vZGUgdHJ1ZVxuIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHNldF9wbGFjZV9tb2RlICRjb21tYW5kXQotICAgICAgICAgfQotICAgICAgICAgIjAxMTEiIHsKLSAgICAgICAgICAgIGlmIHskdmFycyhlbmFibGVfbnJncil9IHsKLSMgICAgICAgICAgICAgICBzZXQgY29tbWFuZCAic2V0X2RiIGRlc2lnbl91c2VfdHVyYm9fbnJncl9mbG93IHRydWVcbiIKLSMgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksc2V0X2Rlc2lnbl9tb2RlICRjb21tYW5kXQotICAgICAgICAgICAgfQotICAgICAgICAgICAgc2V0IGNvbW1hbmQgInNldF9kYiBwbGFjZV9nbG9iYWxfY29uZ19lZmZvcnQgYXV0b1xuc2V0X2RiIHBsYWNlX2dsb2JhbF9jbG9ja19nYXRlX2F3YXJlIHRydWVcbnNldF9kYiBwbGFjZV9nbG9iYWxfcGxhY2VfaW9fcGlucyB0cnVlXG5zZXRfZGIgcGxhY2VfZGVzaWduX2Zsb29ycGxhbl9tb2RlIHRydWVcbiIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxzZXRfcGxhY2VfbW9kZSAkY29tbWFuZF0KLSAgICAgICAgIH0KLSAgIAotICAgICAgICAgIjEwMDAiIHsKLSAgICAgICAgICAgIHNldCBjb21tYW5kICJzZXRfZGIgcGxhY2VfZ2xvYmFsX2NvbmdfZWZmb3J0IGF1dG9cbnNldF9kYiBwbGFjZV9nbG9iYWxfY2xvY2tfZ2F0ZV9hd2FyZSB0cnVlXG5zZXRfZGIgcGxhY2VfZ2xvYmFsX3BsYWNlX2lvX3BpbnMgdHJ1ZVxuIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHNldF9wbGFjZV9tb2RlICRjb21tYW5kXQotICAgICAgICAgICAgaWYgeyEkdmFycyhmbGV4bW9kZWxfYXNfcHRuKX0gewotICAgICAgICAgICAgICBzZXQgY29tbWFuZCAic2V0X3Byb3RvX21vZGVsX3BoeXNpY2FsX2NvbnN0cmFpbnQgLXR5cGUgc29mdF9ndWlkZVxuIgotICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksc2V0X3Byb3RvX21vZGVsX3BoeXNpY2FsX2NvbnN0cmFpbnQgJGNvbW1hbmRdCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBzZXQgY29tbWFuZCAic2V0X3Byb3RvX21vZGUgLXBsYWNlX2VmZm9ydCBkZWZhdWx0XG4iCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksc2V0X3Byb3RvX21vZGUgJGNvbW1hbmRdCi0gICAgICAgICAgICBzZXQgY29tbWFuZCAic2V0X2RiIHJvdXRlX3RyaWFsX2Zsb29ycGxhbl9tb2RlIHRydWVcbiIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxzZXRfcm91dGVfdHJpYWxfbW9kZSAkY29tbWFuZF0KLSAgICAgICAgIH0KLSAgICAgICAgICIxMDAxIiB7Ci0gICAgICAgICAgICBzZXQgY29tbWFuZCAic2V0X2RiIHBsYWNlX2dsb2JhbF9jb25nX2VmZm9ydCBhdXRvXG5zZXRfZGIgcGxhY2VfZ2xvYmFsX2Nsb2NrX2dhdGVfYXdhcmUgdHJ1ZVxuc2V0X2RiIHBsYWNlX2dsb2JhbF9wbGFjZV9pb19waW5zIHRydWVcbiIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxzZXRfcGxhY2VfbW9kZSAkY29tbWFuZF0KLSAgICAgICAgICAgIGlmIHshJHZhcnMoZmxleG1vZGVsX2FzX3B0bil9IHsKLSAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgInNldF9wcm90b19tb2RlbF9waHlzaWNhbF9jb25zdHJhaW50IC10eXBlIHNvZnRfZ3VpZGVcbiIKLSAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHNldF9wcm90b19tb2RlbF9waHlzaWNhbF9jb25zdHJhaW50ICRjb21tYW5kXQotICAgICAgICAgICAgfQotICAgICAgICAgICAgc2V0IGNvbW1hbmQgInNldF9wcm90b19tb2RlIC1wbGFjZV9lZmZvcnQgZGVmYXVsdFxuIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHNldF9wcm90b19tb2RlICRjb21tYW5kXQotICAgICAgICAgICAgc2V0IGNvbW1hbmQgInNldF9kYiByb3V0ZV90cmlhbF9mbG9vcnBsYW5fbW9kZSB0cnVlXG4iCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksc2V0X3JvdXRlX3RyaWFsX21vZGUgJGNvbW1hbmRdCi0gICAgICAgICB9Ci0gICAgICAgICAiMTAxMCIgewotICAgICAgICAgICAgc2V0IGNvbW1hbmQgInNldF9kYiBwbGFjZV9nbG9iYWxfY29uZ19lZmZvcnQgYXV0b1xuc2V0X2RiIHBsYWNlX2dsb2JhbF9jbG9ja19nYXRlX2F3YXJlIHRydWVcbnNldF9kYiBwbGFjZV9nbG9iYWxfcGxhY2VfaW9fcGlucyB0cnVlXG4iCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksc2V0X3BsYWNlX21vZGUgJGNvbW1hbmRdCi0gICAgICAgICAgICBpZiB7ISR2YXJzKGZsZXhtb2RlbF9hc19wdG4pfSB7Ci0gICAgICAgICAgICAgIHNldCBjb21tYW5kICJzZXRfcHJvdG9fbW9kZWxfcGh5c2ljYWxfY29uc3RyYWludCAtdHlwZSBzb2Z0X2d1aWRlXG4iCi0gICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxzZXRfcHJvdG9fbW9kZWxfcGh5c2ljYWxfY29uc3RyYWludCAkY29tbWFuZF0KLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHNldCBjb21tYW5kICJzZXRfcHJvdG9fbW9kZSAtcGxhY2VfZWZmb3J0IGRlZmF1bHRcbiIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxzZXRfcHJvdG9fbW9kZSAkY29tbWFuZF0KLSAgICAgICAgICAgIHNldCBjb21tYW5kICJzZXRfZGIgcm91dGVfdHJpYWxfZmxvb3JwbGFuX21vZGUgdHJ1ZVxuIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHNldF9yb3V0ZV90cmlhbF9tb2RlICRjb21tYW5kXQotICAgICAgICAgfQotICAgICAgICAgIjEwMTEiIHsKLSAgICAgICAgICAgIHNldCBjb21tYW5kICJzZXRfZGIgcGxhY2VfZ2xvYmFsX2NvbmdfZWZmb3J0IGF1dG9cbnNldF9kYiBwbGFjZV9nbG9iYWxfY2xvY2tfZ2F0ZV9hd2FyZSB0cnVlXG5zZXRfZGIgcGxhY2VfZ2xvYmFsX3BsYWNlX2lvX3BpbnMgdHJ1ZVxuIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHNldF9wbGFjZV9tb2RlICRjb21tYW5kXQotICAgICAgICAgICAgaWYgeyEkdmFycyhmbGV4bW9kZWxfYXNfcHRuKX0gewotICAgICAgICAgICAgICBzZXQgY29tbWFuZCAic2V0X3Byb3RvX21vZGVsX3BoeXNpY2FsX2NvbnN0cmFpbnQgLXR5cGUgc29mdF9ndWlkZVxuIgotICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksc2V0X3Byb3RvX21vZGVsX3BoeXNpY2FsX2NvbnN0cmFpbnQgJGNvbW1hbmRdCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBzZXQgY29tbWFuZCAic2V0X3Byb3RvX21vZGUgLXBsYWNlX2VmZm9ydCBkZWZhdWx0XG4iCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksc2V0X3Byb3RvX21vZGUgJGNvbW1hbmRdCi0gICAgICAgICAgICBzZXQgY29tbWFuZCAic2V0X2RiIHJvdXRlX3RyaWFsX2Zsb29ycGxhbl9tb2RlIHRydWVcbiIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxzZXRfcm91dGVfdHJpYWxfbW9kZSAkY29tbWFuZF0KLSAgICAgICAgIH0KLSAgICAgICAgICIxMTAwIiB7Ci0gICAgICAgICAgICBzZXQgY29tbWFuZCAic2V0X2RiIHBsYWNlX2dsb2JhbF9jb25nX2VmZm9ydCBhdXRvXG5zZXRfZGIgcGxhY2VfZ2xvYmFsX2Nsb2NrX2dhdGVfYXdhcmUgdHJ1ZVxuc2V0X2RiIHBsYWNlX2dsb2JhbF9wbGFjZV9pb19waW5zIHRydWVcbnNldF9kYiBwbGFjZV9kZXNpZ25fZmxvb3JwbGFuX21vZGUgdHJ1ZVxuIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHNldF9wbGFjZV9tb2RlICRjb21tYW5kXQotICAgICAgICAgICAgaWYgeyEkdmFycyhmbGV4bW9kZWxfYXNfcHRuKX0gewotICAgICAgICAgICAgICBzZXQgY29tbWFuZCAic2V0X3Byb3RvX21vZGVsX3BoeXNpY2FsX2NvbnN0cmFpbnQgLXR5cGUgc29mdF9ndWlkZVxuIgotICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksc2V0X3Byb3RvX21vZGVsX3BoeXNpY2FsX2NvbnN0cmFpbnQgJGNvbW1hbmRdCi0gICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0gICAgICAgICAiMTEwMSIgewotICAgICAgICAgICAgc2V0IGNvbW1hbmQgInNldF9kYiBwbGFjZV9nbG9iYWxfY29uZ19lZmZvcnQgYXV0b1xuc2V0X2RiIHBsYWNlX2dsb2JhbF9jbG9ja19nYXRlX2F3YXJlIHRydWVcbnNldF9kYiBwbGFjZV9nbG9iYWxfcGxhY2VfaW9fcGlucyB0cnVlXG5zZXRfZGIgcGxhY2VfZGVzaWduX2Zsb29ycGxhbl9tb2RlIHRydWVcbiIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxzZXRfcGxhY2VfbW9kZSAkY29tbWFuZF0KLSAgICAgICAgICAgIGlmIHshJHZhcnMoZmxleG1vZGVsX2FzX3B0bil9IHsKLSAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgInNldF9wcm90b19tb2RlbF9waHlzaWNhbF9jb25zdHJhaW50IC10eXBlIHNvZnRfZ3VpZGVcbiIKLSAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHNldF9wcm90b19tb2RlbF9waHlzaWNhbF9jb25zdHJhaW50ICRjb21tYW5kXQotICAgICAgICAgICAgfQotICAgICAgICAgfQotICAgICAgICAgIjExMTAiIHsKLSAgICAgICAgICAgIHNldCBjb21tYW5kICJzZXRfZGIgcGxhY2VfZ2xvYmFsX2NvbmdfZWZmb3J0IGF1dG9cbnNldF9kYiBwbGFjZV9nbG9iYWxfY2xvY2tfZ2F0ZV9hd2FyZSB0cnVlXG5zZXRfZGIgcGxhY2VfZ2xvYmFsX3BsYWNlX2lvX3BpbnMgdHJ1ZVxuc2V0X2RiIHBsYWNlX2Rlc2lnbl9mbG9vcnBsYW5fbW9kZSB0cnVlXG4iCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksc2V0X3BsYWNlX21vZGUgJGNvbW1hbmRdCi0gICAgICAgICAgICBpZiB7ISR2YXJzKGZsZXhtb2RlbF9hc19wdG4pfSB7Ci0gICAgICAgICAgICAgIHNldCBjb21tYW5kICJzZXRfcHJvdG9fbW9kZWxfcGh5c2ljYWxfY29uc3RyYWludCAtdHlwZSBzb2Z0X2d1aWRlXG4iCi0gICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxzZXRfcm91dGVfdHJpYWxfbW9kZSAkY29tbWFuZF0KLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0KLSAgICAgICAgICIxMTExIiB7Ci0gICAgICAgICAgICBzZXQgY29tbWFuZCAic2V0X2RiIHBsYWNlX2dsb2JhbF9jb25nX2VmZm9ydCBhdXRvXG5zZXRfZGIgcGxhY2VfZ2xvYmFsX2Nsb2NrX2dhdGVfYXdhcmUgdHJ1ZVxuc2V0X2RiIHBsYWNlX2dsb2JhbF9wbGFjZV9pb19waW5zIHRydWVcbnNldF9kYiBwbGFjZV9kZXNpZ25fZmxvb3JwbGFuX21vZGUgdHJ1ZVxuIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHNldF9wbGFjZV9tb2RlICRjb21tYW5kXQotICAgICAgICAgICAgaWYgeyEkdmFycyhmbGV4bW9kZWxfYXNfcHRuKX0gewotICAgICAgICAgICAgICBzZXQgY29tbWFuZCAic2V0X3Byb3RvX21vZGVsX3BoeXNpY2FsX2NvbnN0cmFpbnQgLXR5cGUgc29mdF9ndWlkZVxuIgotICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksc2V0X3Byb3RvX21vZGVsX3BoeXNpY2FsX2NvbnN0cmFpbnQgJGNvbW1hbmRdCi0gICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0gICAgICB9Ci0KLSAgICAgIGlmIHskdmFycyh1c2VfcHJvdG9fbmV0X2RlbGF5X21vZGVsKX0geyAgCi0gICAgICAgICBzZXQgY29tbWFuZCAic2V0X3Byb3RvX21vZGUgLXRpbWluZ19uZXRfZGVsYXlfbW9kZWwgdXNlX2FjdHVhbF93aXJlXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksc2V0X3Byb3RvX21vZGVsICRjb21tYW5kXSAKLSAgICAgIH0KLQotICAgICAgIyBQbGFjZSBkZXNpZ24gCi0gIAotICAgICAgc2V0IHNhdmUgJHZhcnMocGxhY2Vfb3B0X2Rlc2lnbikKLSAgICAgIGlmIHskdmFycyhjb2RlZ2VuKX0geyAKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkZfTk9WVVM6OnJ1bl9wbGFjZSAkZm9ybWF0XQotICAgICAgfSBlbHNlIHsKLSAgICAgICAgIHVwbGV2ZWwgIzAgZXZhbCAkY29tbWFuZHMgCi0gICAgICAgICBGRl9OT1ZVUzo6cnVuX3BsYWNlICRmb3JtYXQKLSAgICAgICAgIHNldCBjb21tYW5kcyAiIgotICAgICAgfQotICAgICAgc2V0IHZhcnMocGxhY2Vfb3B0X2Rlc2lnbikgJHNhdmUKLSAgICAgCi0gICAgICBpZiB7W2luZm8gZXhpc3RzIGNhY2hlX3NraXBfcGxhY2VfbW9kZV19IHsgCi0gICAgICAgICBzZXQgdmFycyhwbGFjZSxzZXRfcGxhY2VfbW9kZSxza2lwKSAkY2FjaGVfc2tpcF9wbGFjZV9tb2RlCi0gICAgICB9IGVsc2UgewotICAgICAgICAgc2V0IHZhcnMocGxhY2Usc2V0X3BsYWNlX21vZGUsc2tpcCkgZmFsc2UKLSAgICAgIH0KLSAgICAgIGlmIHtbaW5mbyBleGlzdHMgY2FjaGVfc2tpcF9wbGFjZV9tb2RlXX0geyAKLSAgICAgICAgIHNldCB2YXJzKHBsYWNlLHBsYWNlX2Rlc2lnbixza2lwKSAkY2FjaGVfc2tpcF9wbGFjZV9kZXNpZ24KLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgICBzZXQgdmFycyhwbGFjZSxwbGFjZV9kZXNpZ24sc2tpcCkgZmFsc2UKLSAgICAgIH0KLQotICAgICAgaWYge1tzdHJpbmcgY29tcGFyZSAtbm9jYXNlICR2YXJzKGRic19mb3JtYXQpICJvYSJdPT0wfSB7Ci0gICAgICAgICBpZiB7W2xpbmRleCBbc3BsaXQgJHZhcnModmVyc2lvbikgIi4iXSAgMF0gPiAxMH0gewotICAgICAgICAgICAgc2V0IGNvbW1hbmQgIndyaXRlX2RiIC1vYV9saWJfY2VsbF92aWV3IHskdmFycyhvYV9kZXNpZ25fbGliKSAkdmFycyhkZXNpZ24pIHBsYWNlfVxuIgotICAgICAgICAgfSAKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgICBzZXQgY29tbWFuZCAid3JpdGVfZGIgJHZhcnMoZGJzX2RpcikvcGxhY2UuZW5jIFxuIgotICAgICAgfQotICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHNhdmVfZGVzaWduICRjb21tYW5kXQotICAgCi0gICAgICAjIFBvc3QtcGxhY2VtZW50Ci0gICAgICBzd2l0Y2ggJHZhcnMoaGllcl9jYXNlKSB7Ci0gICAgICAgICAiMDAwMCIgewotICAgICAgICAgICAgaWYge1tsaW5kZXggW3NwbGl0ICR2YXJzKHZlcnNpb24pICIuIl0gIDBdIDwgMTZ9IHsKLSAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgInNldF9kYiByb3V0ZV90cmlhbF9oYW5kbGVfcGFydGl0aW9uX2NvbXBsZXggdHJ1ZVxuIgotICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksc2V0X3JvdXRlX3RyaWFsX21vZGUgJGNvbW1hbmRdCi0gICAgICAgICAgICAgIHNldCBjb21tYW5kICJyb3V0ZV90cmlhbFxuIgotICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCkscm91dGVfdHJpYWwgJGNvbW1hbmRdCi0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICBzZXQgY29tbWFuZCAic2V0X2RiIHJvdXRlX2Vhcmx5X2dsb2JhbF9ob25vcl9wYXJ0aXRpb25fZmVuY2UgLlxuIgotICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksc2V0X3JvdXRlX19tb2RlICRjb21tYW5kXQotICAgICAgICAgICAgICBzZXQgY29tbWFuZCAicm91dGVfZWFybHlfZ2xvYmFsXG4iCi0gICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxlYXJseV9yb3V0ZSAkY29tbWFuZF0KLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0KLSAgICAgICAgICIwMDAxIiB7Ci0gICAgICAgICAgICBpZiB7W2xpbmRleCBbc3BsaXQgJHZhcnModmVyc2lvbikgIi4iXSAgMF0gPCAxNn0gewotICAgICAgICAgICAgICBzZXQgY29tbWFuZCAicm91dGVfdHJpYWxcbiIKLSAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHJvdXRlX3RyaWFsXzEgJGNvbW1hbmRdCi0gICAgICAgICAgICAgIHNldCBjb21tYW5kICJhZGRfcGFydGl0aW9uX2ZlZWR0aHJ1cyAtcm91dGVfYmFzZWQgLXdyaXRlX3RvcG9sb2dpY2FsX2ZpbGUgdG9wby50eHQgLW5ldF9tYXBwaW5nIG5ldG1hcHBpbmcudHh0IC1kb3VibGVfYnVmZmVyXG4iCi0gICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxpbnNlcnRfcHRuX2ZlZWR0aHJvdWdoICRjb21tYW5kXQotICAgICAgICAgICAgICBzZXQgY29tbWFuZCAic2V0X2RiIHJvdXRlX3RyaWFsX2hhbmRsZV9wYXJ0aXRpb25fY29tcGxleCB0cnVlXG4iCi0gICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxzZXRfcm91dGVfdHJpYWxfbW9kZSAkY29tbWFuZF0KLSAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgInJvdXRlX3RyaWFsXG4iCi0gICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxyb3V0ZV90cmlhbF8yICRjb21tYW5kXQotICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICBzZXQgY29tbWFuZCAicm91dGVfZWFybHlfZ2xvYmFsXG4iCi0gICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxlYXJseV9yb3V0ZV8xICRjb21tYW5kXQotICAgICAgICAgICAgICBzZXQgY29tbWFuZCAiYWRkX3BhcnRpdGlvbl9mZWVkdGhydXMgLXJvdXRlX2Jhc2VkIC13cml0ZV90b3BvbG9naWNhbF9maWxlIHRvcG8udHh0IC1uZXRfbWFwcGluZyBuZXRtYXBwaW5nLnR4dCAtZG91YmxlX2J1ZmZlclxuIgotICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksaW5zZXJ0X3B0bl9mZWVkdGhyb3VnaCAkY29tbWFuZF0KLSAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgInNldF9kYiByb3V0ZV9lYXJseV9nbG9iYWxfaG9ub3JfcGFydGl0aW9uX2ZlbmNlIC5cbiIKLSAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHNldF9yb3V0ZV9tb2RlICRjb21tYW5kXQotICAgICAgICAgICAgICBzZXQgY29tbWFuZCAicm91dGVfZWFybHlfZ2xvYmFsXG4iCi0gICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxlYXJseV9yb3V0ZV8yICRjb21tYW5kXQotICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0gICAgICAgICAiMDAxMCIgewotICAgICAgICAgICAgaWYge1tsaW5kZXggW3NwbGl0ICR2YXJzKHZlcnNpb24pICIuIl0gIDBdIDwgMTZ9IHsKLSAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgInNldF9kYiByb3V0ZV90cmlhbF9oYW5kbGVfcGFydGl0aW9uX2NvbXBsZXggdHJ1ZVxuIgotICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksc2V0X3JvdXRlX3RyaWFsX21vZGUgJGNvbW1hbmRdCi0gICAgICAgICAgICAgIHNldCBjb21tYW5kICJyb3V0ZV90cmlhbFxuIgotICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCkscm91dGVfdHJpYWwgJGNvbW1hbmRdCi0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICBzZXQgY29tbWFuZCAic2V0X2RiIHJvdXRlX2Vhcmx5X2dsb2JhbF9ob25vcl9wYXJ0aXRpb25fZmVuY2UgLlxuIgotICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksc2V0X3JvdXRlX21vZGUgJGNvbW1hbmRdCi0gICAgICAgICAgICAgIHNldCBjb21tYW5kICJyb3V0ZV9lYXJseV9nbG9iYWxcbiIKLSAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLGVhcmx5X3JvdXRlICRjb21tYW5kXQotICAgICAgICAgICAgfQotICAgICAgICAgfQotICAgICAgICAgIjAwMTEiIHsKLSAgICAgICAgICAgIGlmIHtbbGluZGV4IFtzcGxpdCAkdmFycyh2ZXJzaW9uKSAiLiJdICAwXSA8IDE2fSB7Ci0gICAgICAgICAgICAgIHNldCBjb21tYW5kICJyb3V0ZV90cmlhbFxuIgotICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCkscm91dGVfdHJpYWxfMSAkY29tbWFuZF0KLSAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgImFkZF9wYXJ0aXRpb25fZmVlZHRocnVzIC1yb3V0ZV9iYXNlZCAtd3JpdGVfdG9wb2xvZ2ljYWxfZmlsZSB0b3BvLnR4dCAtbmV0X21hcHBpbmcgbmV0bWFwcGluZy50eHQgLWRvdWJsZV9idWZmZXJcbiIKLSAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLGluc2VydF9wdG5fZmVlZHRocm91Z2ggJGNvbW1hbmRdCi0gICAgICAgICAgICAgIHNldCBjb21tYW5kICJzZXRfZGIgcm91dGVfdHJpYWxfaGFuZGxlX3BhcnRpdGlvbl9jb21wbGV4IHRydWVcbiIKLSAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHNldF9yb3V0ZV90cmlhbF9tb2RlICRjb21tYW5kXQotICAgICAgICAgICAgICBzZXQgY29tbWFuZCAicm91dGVfdHJpYWxcbiIKLSAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHJvdXRlX3RyaWFsXzIgJGNvbW1hbmRdCi0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICBzZXQgY29tbWFuZCAicm91dGVfZWFybHlfZ2xvYmFsXG4iCi0gICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxlYXJseV9yb3V0ZV8xICRjb21tYW5kXQotICAgICAgICAgICAgICBzZXQgY29tbWFuZCAiYWRkX3BhcnRpdGlvbl9mZWVkdGhydXMgLXJvdXRlX2Jhc2VkIC13cml0ZV90b3BvbG9naWNhbF9maWxlIHRvcG8udHh0IC1uZXRfbWFwcGluZyBuZXRtYXBwaW5nLnR4dCAtZG91YmxlX2J1ZmZlclxuIgotICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksaW5zZXJ0X3B0bl9mZWVkdGhyb3VnaCAkY29tbWFuZF0KLSAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgInNldF9kYiByb3V0ZV9lYXJseV9nbG9iYWxfaG9ub3JfcGFydGl0aW9uX2ZlbmNlIC5cbiIKLSAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHNldF9yb3V0ZV90cmlhbF9tb2RlICRjb21tYW5kXQotICAgICAgICAgICAgICBzZXQgY29tbWFuZCAicm91dGVfZWFybHlfZ2xvYmFsXG4iCi0gICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxlYXJseV9yb3V0ZV8yICRjb21tYW5kXQotICAgICAgICAgICAgfQotICAgICAgICAgfQotICAgICAgICAgIjAxMDAiIHsKLSAgICAgICAgIH0KLSAgICAgICAgICIwMTAxIiB7Ci0gICAgICAgICB9Ci0gICAgICAgICAiMDExMCIgewotICAgICAgICAgfQotICAgICAgICAgIjAxMTEiIHsKLSAgICAgICAgICAgIHNldCBjb21tYW5kICJhZGRfcGFydGl0aW9uX2ZlZWR0aHJ1cyAtd3JpdGVfdG9wb2xvZ2ljYWxfZmlsZSB0b3BvLnR4dCAtbmV0X21hcHBpbmcgbmV0bWFwcGluZy50eHQgLWRvdWJsZV9idWZmZXJcbiIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxpbnNlcnRfcHRuX2ZlZWR0aHJvdWdoICRjb21tYW5kXQotICAgICAgICAgfQotICAgICAgICAgIjEwMDAiIHsKLSAgICAgICAgICAgIGlmIHtbbGluZGV4IFtzcGxpdCAkdmFycyh2ZXJzaW9uKSAiLiJdICAwXSA8IDE2fSB7Ci0gICAgICAgICAgICAgIHNldCBjb21tYW5kICJzZXRfZGIgcm91dGVfdHJpYWxfaGFuZGxlX3BhcnRpdGlvbl9jb21wbGV4IHRydWVcbiIKLSAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHNldF9yb3V0ZV90cmlhbF9tb2RlICRjb21tYW5kXQotICAgICAgICAgICAgICBzZXQgY29tbWFuZCAicm91dGVfdHJpYWxcbiIKLSAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHJvdXRlX3RyaWFsICRjb21tYW5kXQotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgInNldF9kYiByb3V0ZV9lYXJseV9nbG9iYWxfaG9ub3JfcGFydGl0aW9uX2ZlbmNlIC5cbiIKLSAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHNldF9yb3V0ZV9tb2RlICRjb21tYW5kXQotICAgICAgICAgICAgICBzZXQgY29tbWFuZCAicm91dGVfZWFybHlfZ2xvYmFsXG4iCi0gICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxyb3V0ZV9lYXJseSAkY29tbWFuZF0KLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0KLSAgICAgICAgICIxMDAxIiB7Ci0gICAgICAgICAgICBpZiB7W2xpbmRleCBbc3BsaXQgJHZhcnModmVyc2lvbikgIi4iXSAgMF0gPCAxNn0gewotICAgICAgICAgICAgICBzZXQgY29tbWFuZCAicm91dGVfdHJpYWxcbiIKLSAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHJvdXRlX3RyaWFsICRjb21tYW5kXQotICAgICAgICAgICAgICBzZXQgY29tbWFuZCAiYWRkX3BhcnRpdGlvbl9mZWVkdGhydXMgLXJvdXRlX2Jhc2VkIC13cml0ZV90b3BvbG9naWNhbF9maWxlIHRvcG8udHh0IC1uZXRfbWFwcGluZyBuZXRtYXBwaW5nLnR4dCAtZG91YmxlX2J1ZmZlclxuIgotICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksaW5zZXJ0X3B0bl9mZWVkdGhyb3VnaCAkY29tbWFuZF0KLSAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgInNldF9kYiByb3V0ZV90cmlhbF9oYW5kbGVfcGFydGl0aW9uX2NvbXBsZXggdHJ1ZVxuIgotICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksc2V0X3JvdXRlX3RyaWFsX21vZGUgJGNvbW1hbmRdCi0gICAgICAgICAgICAgIHNldCBjb21tYW5kICJyb3V0ZV90cmlhbFxuIgotICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCkscm91dGVfdHJpYWwgJGNvbW1hbmRdCi0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICBzZXQgY29tbWFuZCAicm91dGVfZWFybHlfZ2xvYmFsXG4iCi0gICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxlYXJseV9yb3V0ZV8xICRjb21tYW5kXQotICAgICAgICAgICAgICBzZXQgY29tbWFuZCAiYWRkX3BhcnRpdGlvbl9mZWVkdGhydXMgLXJvdXRlX2Jhc2VkIC13cml0ZV90b3BvbG9naWNhbF9maWxlIHRvcG8udHh0IC1uZXRfbWFwcGluZyBuZXRtYXBwaW5nLnR4dCAtZG91YmxlX2J1ZmZlclxuIgotICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksaW5zZXJ0X3B0bl9mZWVkdGhyb3VnaCAkY29tbWFuZF0KLSAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgInNldF9kYiByb3V0ZV9lYXJseV9nbG9iYWxfaG9ub3JfcGFydGl0aW9uX2ZlbmNlIC5cbiIKLSAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHNldF9yb3V0ZV9fbW9kZSAkY29tbWFuZF0KLSAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgInJvdXRlX2Vhcmx5X2dsb2JhbFxuIgotICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksZWFybHlfcm91dGVfMiAkY29tbWFuZF0KLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0KLSAgICAgICAgICIxMDEwIiB7Ci0gICAgICAgICAgICBpZiB7W2xpbmRleCBbc3BsaXQgJHZhcnModmVyc2lvbikgIi4iXSAgMF0gPCAxNn0gewotICAgICAgICAgICAgICBzZXQgY29tbWFuZCAic2V0X2RiIHJvdXRlX3RyaWFsX2hhbmRsZV9wYXJ0aXRpb25fY29tcGxleCB0cnVlXG4iCi0gICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxzZXRfcm91dGVfdHJpYWxfbW9kZSAkY29tbWFuZF0KLSAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgInJvdXRlX3RyaWFsXG4iCi0gICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxyb3V0ZV90cmlhbCAkY29tbWFuZF0KLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgIHNldCBjb21tYW5kICJzZXRfZGIgcm91dGVfZWFybHlfZ2xvYmFsX2hvbm9yX3BhcnRpdGlvbl9mZW5jZSAuXG4iCi0gICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxzZXRfcm91dGVfbW9kZSAkY29tbWFuZF0KLSAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgInJvdXRlX2Vhcmx5X2dsb2JhbFxuIgotICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksZWFybHlfcm91dGUgJGNvbW1hbmRdCi0gICAgICAgICAgICB9Ci0gICAgICAKLSAgICAgICAgIH0KLSAgICAgICAgICIxMDExIiB7Ci0gICAgICAgICAgICBpZiB7W2xpbmRleCBbc3BsaXQgJHZhcnModmVyc2lvbikgIi4iXSAgMF0gPCAxNn0gewotICAgICAgICAgICAgICBzZXQgY29tbWFuZCAicm91dGVfdHJpYWxcbiIKLSAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHJvdXRlX3RyaWFsICRjb21tYW5kXQotICAgICAgICAgICAgICBzZXQgY29tbWFuZCAiYWRkX3BhcnRpdGlvbl9mZWVkdGhydXMgLXJvdXRlX2Jhc2VkIC13cml0ZV90b3BvbG9naWNhbF9maWxlIHRvcG8udHh0IC1uZXRfbWFwcGluZyBuZXRtYXBwaW5nLnR4dCAtZG91YmxlX2J1ZmZlclxuIgotICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksaW5zZXJ0X3B0bl9mZWVkdGhyb3VnaCAkY29tbWFuZF0KLSAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgInNldF9kYiByb3V0ZV90cmlhbF9oYW5kbGVfcGFydGl0aW9uX2NvbXBsZXggdHJ1ZVxuIgotICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksc2V0X3JvdXRlX3RyaWFsX21vZGUgJGNvbW1hbmRdCi0gICAgICAgICAgICAgIHNldCBjb21tYW5kICJyb3V0ZV90cmlhbFxuIgotICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCkscm91dGVfdHJpYWwgJGNvbW1hbmRdCi0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICBzZXQgY29tbWFuZCAicm91dGVfZWFybHlfZ2xvYmFsXG4iCi0gICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxlYXJseV9yb3V0ZV8xICRjb21tYW5kXQotICAgICAgICAgICAgICBzZXQgY29tbWFuZCAiYWRkX3BhcnRpdGlvbl9mZWVkdGhydXMgLXJvdXRlX2Jhc2VkIC13cml0ZV90b3BvbG9naWNhbF9maWxlIHRvcG8udHh0IC1uZXRfbWFwcGluZyBuZXRtYXBwaW5nLnR4dCAtZG91YmxlX2J1ZmZlclxuIgotICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksaW5zZXJ0X3B0bl9mZWVkdGhyb3VnaCAkY29tbWFuZF0KLSAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgInNldF9kYiByb3V0ZV9lYXJseV9nbG9iYWxfaG9ub3JfcGFydGl0aW9uX2ZlbmNlIC5cbiIKLSAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHNldF9yb3V0ZV90cmlhbF9tb2RlICRjb21tYW5kXQotICAgICAgICAgICAgICBzZXQgY29tbWFuZCAicm91dGVfZWFybHlfZ2xvYmFsXG4iCi0gICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxyb3V0ZV9lYXJseV8yICRjb21tYW5kXQotICAgICAgICAgICAgfQotICAgICAgICAgfQotICAgICAgICAgIjExMDAiIHsKLSAgICAgICAgIH0KLSAgICAgICAgICIxMTAxIiB7Ci0gICAgICAgICAgICBzZXQgY29tbWFuZCAiYWRkX3BhcnRpdGlvbl9mZWVkdGhydXMgLXdyaXRlX3RvcG9sb2dpY2FsX2ZpbGUgdG9wby50eHQgLW5ldF9tYXBwaW5nIG5ldG1hcHBpbmcudHh0IC1kb3VibGVfYnVmZmVyXG4iCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksaW5zZXJ0X3B0bl9mZWVkdGhyb3VnaCAkY29tbWFuZF0KLSAgICAgICAgIH0KLSAgICAgICAgICIxMTEwIiB7Ci0gICAgICAgICAgICBzZXQgZG9fcm91dGVfdHJpYWxfdGltZV9kZXNpZ24gMCAgICAgICAgICAgIAotICAgICAgICAgfQotICAgICAgICAgIjExMTEiIHsKLSAgICAgICAgICAgIHNldCBjb21tYW5kICJhZGRfcGFydGl0aW9uX2ZlZWR0aHJ1cyAtd3JpdGVfdG9wb2xvZ2ljYWxfZmlsZSB0b3BvLnR4dCAtbmV0X21hcHBpbmcgbmV0bWFwcGluZy50eHQgLWRvdWJsZV9idWZmZXJcbiIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxpbnNlcnRfcHRuX2ZlZWR0aHJvdWdoICRjb21tYW5kXQotICAgICAgICAgfQotICAgICAgfQotICAgICAgaWYgeyR2YXJzKHVzZV9wcm90b19uZXRfZGVsYXlfbW9kZWwpfSB7IAotICAgICAgICBzZXQgY29tbWFuZCAidGltZV9kZXNpZ24gLXByb3RvIC1wcmVfY3RzIC1yZXBvcnRfcHJlZml4IHBsYWNlIC1yZXBvcnRfZGlyICR2YXJzKHJwdF9kaXIpXG4iCi0gICAgICB9IGVsc2UgewotICAgICAgICBzZXQgY29tbWFuZCAidGltZV9kZXNpZ24gLXByZV9jdHMgLXJlcG9ydF9wcmVmaXggcGxhY2UgLXJlcG9ydF9kaXIgJHZhcnMocnB0X2RpcilcbiIKLSAgICAgIH0KLSAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSx0aW1lX2Rlc2lnbiAkY29tbWFuZF0KLQotCSAgIyBPdXRwdXQgb3IgcnVuIHRoZSBnZW5lcmF0ZWQgY29tbWFuZHMKLQkgIGlmIHskdmFycyhjb2RlZ2VuKX0gewotCQkgcmV0dXJuICRjb21tYW5kcwotCSAgfSBlbHNlIHsKLQkJICB1cGxldmVsICMwIGV2YWwgJGNvbW1hbmRzCi0JICB9Ci0KLSAgIH0KLQotICAgcHJvYyBydW5fYXNzaWduX3BpbiB7e2Zvcm1hdCAxfX0gewotICAgICAgZ2xvYmFsIHZhcnMKLSAgICAgIGdsb2JhbCBlcnJvcnMKLSAgICAgIGdsb2JhbCBlbnYKLQotICAgICAgc2V0IHZhcnMoc3RlcCkgYXNzaWduX3BpbgotICAgICAgc2V0IHZhcnMoaGllcikgdHJ1ZQotICAgICAgc2V0IGNvbW1hbmRzICIiCi0KLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICMgQXNzaWduIHBhcnRpdGlvbiBwaW5zIHZpYSBwbHVnLWluIGFzIHRoaXMgdGhlCi0gICAgICAjIHBpdGNoLCBkZXB0aCwgYW5kIGxheWVyIHZhbHVlcyBhcmUgZGVzaWduIHNwZWNpZmljCi0gICAgICAjIEFsc28sIHZlcmlmeSB0aGUgcGluIGFzc2lnbm1lbnQgYW5kIGZpeCB0aGVtCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0KLSAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OnNvdXJjZV9wbHVnIHByZV9hc3NpZ25fcGluX3RjbF0KLQotICAgICAgc2V0IGNvbW1hbmQgImFzc2lnbl9wYXJ0aXRpb25fcGluc1xuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLGFzc2lnbl9wYXJ0aXRpb25fcGlucyAkY29tbWFuZF0KLQotICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6c291cmNlX3BsdWcgcG9zdF9hc3NpZ25fcGluX3RjbF0KLQotICAgICAgc2V0IGNvbW1hbmQgImNoZWNrX3Bpbl9hc3NpZ25tZW50XG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksY2hlY2tfcGluX2Fzc2lnbm1lbnQgJGNvbW1hbmRdCi0KLSAgICAgIHNldCBjb21tYW5kICJyZXBvcnRfdW5hbGlnbmVkX25ldHMgLW91dF9maWxlICR2YXJzKHJwdF9kaXIpL3VuYWxpZ25lZC5ycHRcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxyZXBvcnRfdW5hbGlnbmVkX25ldHMgJGNvbW1hbmRdCi0KLSAgICAgIGlmIHshKFtpbmZvIGV4aXN0cyB2YXJzKHBsYWNlbWVudF9iYXNlZF9wdG4pXSAmJiAkdmFycyhwbGFjZW1lbnRfYmFzZWRfcHRuKSl9IHsKLSAgICAgICAgaWYge1tsaW5kZXggW3NwbGl0ICR2YXJzKHZlcnNpb24pICIuIl0gIDBdIDwgMTZ9IHsKLSAgICAgICAgICBzZXQgY29tbWFuZCAic2V0X2RiIHJvdXRlX3RyaWFsX2hhbmRsZV9wYXJ0aXRpb25fY29tcGxleCB0cnVlXG5zZXRfZGIgcm91dGVfdHJpYWxfaG9ub3JfcGluIHRydWVcbiIKLSAgICAgICAgICBhcHBlbmQgY29tbWFuZCAicm91dGVfdHJpYWxcbiIKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICBzZXQgY29tbWFuZCAic2V0X2RiIHJvdXRlX2Vhcmx5X2dsb2JhbF9ob25vcl9wYXJ0aXRpb25fZmVuY2UgLlxuc2V0X2RiIHJvdXRlX2Vhcmx5X2dsb2JhbF9ob25vcl9wYXJ0aXRpb25fcGluIC5cbiIKLSAgICAgICAgICBhcHBlbmQgY29tbWFuZCAicm91dGVfZWFybHlfZ2xvYmFsXG4iCi0gICAgICAgIH0KLSAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHJvdXRlX3RyaWFsICRjb21tYW5kXQotICAgICAgfQotCi0gICAgICBpZiB7JHZhcnMoY29kZWdlbil9IHsKLSAgICAgICAgIHJldHVybiAkY29tbWFuZHMKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgdXBsZXZlbCAjMCBldmFsICRjb21tYW5kcwotICAgICAgfQotICAgfQotCi0gICBwcm9jIHJ1bl9tb2RlbF9nZW4ge3tmb3JtYXQgMX19IHsKLQotICAgICAgZ2xvYmFsIHZhcnMKLSAgICAgIGdsb2JhbCBlcnJvcnMKLSAgICAgIGdsb2JhbCBlbnYKLQotICAgICAgc2V0IHZhcnMoc3RlcCkgbW9kZWxfZ2VuCi0gICAgICBzZXQgdmFycyhoaWVyKSB0cnVlCi0gICAgICBzZXQgY29tbWFuZHMgIiIKLQotICAgICAgIyBJbml0aWFsaXNlIHRoZSBkZXNpZ24KLSAgICAgIGlmIHskdmFycyhjb2RlZ2VuKX0geyAKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkZfTk9WVVM6OnJ1bl9pbml0ICRmb3JtYXRdCi0gICAgICB9IGVsc2UgewotICAgICAgICAgRkZfTk9WVVM6OnJ1bl9pbml0ICRmb3JtYXQKLSAgICAgIH0KLQotICAgICAgaWYge1tzdHJpbmcgY29tcGFyZSAtbm9jYXNlICR2YXJzKGRic19mb3JtYXQpICJvYSJdPT0wfSB7Ci0gICAgICAgICBzZXQgY29tbWFuZCAid3JpdGVfZGIgLW9hX2xpYl9jZWxsX3ZpZXcgeyR2YXJzKG9hX2Rlc2lnbl9saWIpICR2YXJzKGRlc2lnbikgaW5pdH1cbiIKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgICBzZXQgY29tbWFuZCAid3JpdGVfZGIgJHZhcnMoZGJzX2RpcikvaW5pdC5lbmNcbiIKLSAgICAgIH0KLQotICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHNhdmVfZGVzaWduLGluaXQgJGNvbW1hbmRdCi0gICAgICAKLQotICAgICAgaWYgeyR2YXJzKHVzZV9wcm90b19uZXRfZGVsYXlfbW9kZWwpICYmICR2YXJzKHVzZV9mbGV4bW9kZWxzKX0gewotICAgICAgICAgc2V0IGNvbW1hbmQgImNhdGNoIHtleGVjIHJtIC1yZiBwcm90b19tb2RlbF9CQUNLVVB9XG5jYXRjaCB7ZXhlYyBtdiAtZiBwcm90b19tb2RlbCBwcm90b19tb2RlbF9CQUNLVVB9XG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCkscHJvdG9fbW9kZWxfQkFDS1VQICRjb21tYW5kXQotICAgICAgICAgc2V0IGNvbW1hbmQgImNyZWF0ZV9wc19wZXJfbWljcm9uX21vZGVsXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksY3JlYXRlX3BzX3Blcl9taWNyb25fbW9kZWwgJGNvbW1hbmRdCi0gICAgICB9Ci0KLSAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OnNvdXJjZV9wbHVnIHByZV9tb2RlbF9nZW5fdGNsXQotICAgICAgCi0gICAgICBpZiB7JHZhcnMoZW5hYmxlX25yZ3IpfSB7Ci0jICAgICAgICAgc2V0IGNvbW1hbmQgInNldF9kYiBkZXNpZ25fdXNlX3R1cmJvX25yZ3JfZmxvdyB0cnVlXG4iCi0jICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHNldF9kZXNpZ25fbW9kZSAkY29tbWFuZF0KLSAgICAgIH0KLQotICAgICAgc2V0IHZhcnMoaGllcl9jYXNlKSAiJHZhcnMoZmxleG1vZGVsX2FzX3B0bikkdmFycyhpbnNlcnRfZmVlZHRocm91Z2gpIgotCi0gICAgICBzd2l0Y2ggJHZhcnMoaGllcl9jYXNlKSB7Ci0gICAgICAgICAiMDAiIHsKLSAgICAgICAgICAgIHNldCBjb21tYW5kICJpZGVudGlmeV9wcm90b19tb2RlbFxuIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLGlkZW50aWZ5X3Byb3RvX21vZGVsICRjb21tYW5kXQotICAgICAgICAgfQotICAgICAgICAgIjAxIiB7Ci0gICAgICAgICAgICBzZXQgY29tbWFuZCAiaWRlbnRpZnlfcHJvdG9fbW9kZWxcbiIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxpZGVudGlmeV9wcm90b19tb2RlbCAkY29tbWFuZF0KLSAgICAgICAgIH0KLSAgICAgICAgICIxMCIgewotICAgICAgICAgICAgc2V0IGNvbW1hbmQgICJzZXRfZGIgcHJvdG9fY3JlYXRlX3BhcnRpdGlvbl9hc19mbGV4bW9kZWwgdHJ1ZVxuIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHNldF9wcm90b19tb2RlICRjb21tYW5kXQotIyAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhwYXJ0aXRpb25fbGlzdCldICYmICgkdmFycyhwYXJ0aXRpb25fbGlzdCkgIT0gIiIpfSB7Ci0jICAgICAgICAgICAgICAgZm9yZWFjaCBwdG4gJHZhcnMocGFydGl0aW9uX2xpc3QpIHsKLSMgICAgICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgInNldF9wcm90b19tb2RlbCAtbW9kZWwgJHB0biAtdHlwZSBmbGV4X21vZHVsZVxuIgotIyAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksc2V0X3Byb3RvX21vZGVsICRjb21tYW5kXQotIyAgICAgICAgICAgICAgICB9Ci0jICAgICAgICAgICAgfSBlbHNlIHsKLSMgICAgICAgICAgICAgICBwdXRzICI8RkY+IEVSUk9SOiBGbGV4bW9kZWwgcGFydGl0aW9uIGZsb3cgZW5hYmxlZCBidXQgbm8gcGFydGl0aW9ucyBhcmUgZGVmaW5lZCIKLSMgICAgICAgICAgICAgICBzZXQgZXJyb3JzKCR2YXJzKGVycm9yX2NvdW50KSkgIkZsZXhtb2RlbCBwYXJ0aXRpb24gZmxvdyBlbmFibGVkIGJ1dCBubyBwYXJ0aXRpb25zIGFyZSBkZWZpbmVkIgotIyAgICAgICAgICAgICAgIGluY3IgdmFycyhlcnJvcl9jb3VudCkKLSMgICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0gICAgICAgICAiMTEiIHsKLSAgICAgICAgICAgIHNldCBjb21tYW5kICAic2V0X2RiIHByb3RvX2NyZWF0ZV9wYXJ0aXRpb25fYXNfZmxleG1vZGVsIHRydWVcbiIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxzZXRfcHJvdG9fbW9kZSAkY29tbWFuZF0KLSMgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMocGFydGl0aW9uX2xpc3QpXSAmJiAoJHZhcnMocGFydGl0aW9uX2xpc3QpICE9ICIiKX0gewotIyAgICAgICAgICAgICAgIGZvcmVhY2ggcHRuICR2YXJzKHBhcnRpdGlvbl9saXN0KSB7Ci0jICAgICAgICAgICAgICAgICAgIHNldCBjb21tYW5kICJzZXRfcHJvdG9fbW9kZWwgLW1vZGVsICRwdG4gLXR5cGUgZmxleF9tb2R1bGVcbiIKLSMgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHNldF9wcm90b19tb2RlbCAkY29tbWFuZF0KLSMgICAgICAgICAgICAgICAgfQotIyAgICAgICAgICAgIH0gZWxzZSB7Ci0jICAgICAgICAgICAgICAgcHV0cyAiPEZGPiBFUlJPUjogRmxleG1vZGVsIHBhcnRpdGlvbiBmbG93IGVuYWJsZWQgYnV0IG5vIHBhcnRpdGlvbnMgYXJlIGRlZmluZWQiCi0jICAgICAgICAgICAgICAgc2V0IGVycm9ycygkdmFycyhlcnJvcl9jb3VudCkpICJGbGV4bW9kZWwgcGFydGl0aW9uIGZsb3cgZW5hYmxlZCBidXQgbm8gcGFydGl0aW9ucyBhcmUgZGVmaW5lZCIKLSMgICAgICAgICAgICAgICBpbmNyIHZhcnMoZXJyb3JfY291bnQpCi0jICAgICAgICAgICAgfQotICAgICAgICAgfQotICAgICAgfQotCi0jICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKG1vZGVsX2dlbixtaW5faW5zdCldfSB7Ci0jICAgICAgICAgc2V0IG1pbl9pbnN0ICR2YXJzKG1vZGVsX2dlbixtaW5faW5zdCkKLSMgICAgICB9IGVsc2UgewotIyAgICAgICAgIHNldCBtaW5faW5zdCAxMDAwCi0jICAgICAgfQotIyAgICAgIHNldCBjb21tYW5kICJzZXRfZGIgaWxtX2tlZXBfaGlnaF9mYW5vdXRfcG9ydHMgZmFsc2VcbiIKLSMgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksc2V0SWxtTW9kZSAkY29tbWFuZF0KLSAgICAgCi0gICAgICBzZXQgY29tbWFuZCAic2V0X2RiIGlsbV9rZWVwX2hpZ2hfZmFub3V0X3BvcnRzIGZhbHNlXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksc2V0X2lsbV9tb2RlICRjb21tYW5kXQotICAgICAgaWYgeyR2YXJzKGZsZXhtb2RlbF9hcnRfYmFzZWQpfSB7Ci0gICAgICAgICBzZXQgY29tbWFuZCAiY3JlYXRlX3Byb3RvX21vZGVsIC1vdXRfZGlyICR2YXJzKGRic19kaXIpL21vZGVsX2dlbi5lbmNcbiIKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgICBzZXQgY29tbWFuZCAiY3JlYXRlX3Byb3RvX21vZGVsIC1wYXJ0aXRpb25fYmFzZWRcbmNvbW1pdF9wcm90b19tb2RlbFxuIgotICAgICAgfQotICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLGNyZWF0ZV9wcm90b19tb2RlbCAkY29tbWFuZF0KLSAgICAgIGlmIHskdmFycyhjcmVhdGVfZmxleGZpbGxlcl9ibG9ja2FnZSl9IHsKLSAgICAgICAgIHNldCBjb21tYW5kICJjcmVhdGVfZmxleGZpbGxlcl9yb3V0ZV9ibG9ja2FnZVxuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLGNyZWF0ZV9mbGV4ZmlsbGVyX3JvdXRlX2Jsb2NrYWdlICRjb21tYW5kXQotICAgICAgfQotCi0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjpzb3VyY2VfcGx1ZyBwb3N0X21vZGVsX2dlbl90Y2xdCi0KLSAgICAgIGlmIHskdmFycyhjb2RlZ2VuKX0gewotICAgICAgICAgcmV0dXJuICRjb21tYW5kcwotICAgICAgfSBlbHNlIHsKLSAgICAgICAgICB1cGxldmVsICMwIGV2YWwgJGNvbW1hbmRzCi0gICAgICB9Ci0gICB9Ci0KLSAgIHByb2MgcnVuX3BhcnRpdGlvbiB7e2Zvcm1hdCAxfX0gewotCi0gICAgICBnbG9iYWwgdmFycwotICAgICAgZ2xvYmFsIGVycm9ycwotICAgICAgZ2xvYmFsIGVudgotCi0gICAgICBzZXQgdmFycyhzdGVwKSBwYXJ0aXRpb24KLSAgICAgIHNldCB2YXJzKGhpZXIpIHRydWUKLQotICAgICAgc2V0IGNvbW1hbmRzICIiCi0KLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICMgQnVkZ2V0IHRoZSBibG9ja3MgYmFzZWQgb24gdGhlIG1vZGUKLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLQotICAgICAgc2V0IGNvbW1hbmQgIiIKLSMgICAgICBhcHBlbmQgY29tbWFuZCAic2V0X2dsb2JhbCB0aW1pbmdfc3VwcG9ydF9oaWVyYXJjaGljYWxfcGluX2NvbnN0cmFpbnRzIHRydWVcbiIKLSMgICAgICBhcHBlbmQgY29tbWFuZCAic2V0X2RiIHRiZ1ByaW50RXhjZXB0aW9uSW5mb0luSnVzdGlmeSAxXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksc2V0X2J1ZGdldF92YXJzICRjb21tYW5kXQotCi0gICAgICBpZiB7JHZhcnMoYnVkZ2V0X21vZGUpID09ICJwcm90b19uZXRfZGVsYXlfbW9kZWwiICYmICR2YXJzKHVzZV9wcm90b19uZXRfZGVsYXlfbW9kZWwpfSB7Ci0gICAgICAgICBzZXQgY29tbWFuZCAidGltZV9kZXNpZ24gLXByb3RvIC1yZXBvcnRfcHJlZml4IGJ1ZGdldCAtcmVwb3J0X2RpciAkdmFycyhycHRfZGlyKVxuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHRpbWVfZGVzaWduICRjb21tYW5kXQotICAgICAgfQotCi0gICAgICAjIERlZmluZSBidWRnZXRpbmcgb3B0aW9ucyAuLi4KLSAgICAgIHNldCBjb21tYW5kICIiCi0KLSAgICAgIGFwcGVuZCBjb21tYW5kICJzZXRfZGIgYnVkZ2V0X3dyaXRlX2xhdGVuY3lfcGVyX2Nsb2NrIHRydWVcbiIKLQotICAgICAgYXBwZW5kIGNvbW1hbmQgImlmIHtcW2dldF9kYiBoaW5zdHMgLnBhcnRpdGlvbi5jbG9uZXNcXSAhPSBcIlwifSB7XG4iCi0gICAgICBhcHBlbmQgY29tbWFuZCAiICAgc2V0X2RiIGJ1ZGdldF9tZXJnZV9jbG9uZXMgdHJ1ZVxuIgotICAgICAgYXBwZW5kIGNvbW1hbmQgIn1cbiIKLSAgICAgIAotICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGFidXR0ZWRfZGVzaWduKV0gJiYgJHZhcnMoYWJ1dHRlZF9kZXNpZ24pfSB7Ci0gICAgICAgICBhcHBlbmQgY29tbWFuZCAic2V0X2RiIGJ1ZGdldF9hYnV0dGVkIHRydWVcbiIKLSAgICAgIH0KLSAgICAgIAotIyAgICAgIHN3aXRjaCBbc3RyaW5nIHRvbG93ZXIgJHZhcnMoYnVkZ2V0X21vZGUpXSB7Ci0jICAgICAgICAgZ2lnYV9vcHQgewotIyAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJzZXRfZGIgYnVkZ2V0X3ZpcnR1YWxfb3B0X2VuZ2luZSBnaWdhX29wdFxuIgotIyAgICAgICAgIH0KLSMgICAgICAgICBwcm90b19uZXRfZGVsYXlfbW9kZWwgewotIyAgICAgICAgICAgIGlmIHskdmFycyh1c2VfcHJvdG9fbmV0X2RlbGF5X21vZGVsKX0gewotIyAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJzZXRfZGIgYnVkZ2V0X3ZpcnR1YWxfb3B0X2VuZ2luZSBub25lXG4iCi0jICAgICAgICAgICAgfQotIyAgICAgICAgIH0KLSMgICAgICB9Ci0jICAgICAgYXBwZW5kIGNvbW1hbmQgInNldF9kYiBidWRnZXRfZW5hYmxlX210X2J1ZGdldGluZyB0cnVlXG4iCi0KLSAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxzZXRfYnVkZ2V0aW5nX21vZGUgJGNvbW1hbmRdCi0gICAgICAKLSAgICAgIGlmIHsoW3N0cmluZyB0b2xvd2VyICR2YXJzKGJ1ZGdldF9tb2RlKV0gIT0gInByb3RvX25ldF9kZWxheV9tb2RlbCIpICYmICR2YXJzKHVzZV9wcm90b19uZXRfZGVsYXlfbW9kZWwpfSB7Ci0gICAgICAgICBzZXQgY29tbWFuZCAic2V0X3Byb3RvX3RpbWluZ19zZXR0aW5ncyAtcmVzZXRcbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxzZXRfcHJvdG9fdGltaW5nX3NldHRpbmdzICRjb21tYW5kXQotICAgICAgfQotICAgICAgc2V0IGNvbW1hbmQgImNyZWF0ZV90aW1pbmdfYnVkZ2V0IC1qdXN0aWZ5XG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksY3JlYXRlX3RpbWluZ19idWRnZXQgJGNvbW1hbmRdCi0KLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICMgUnVuIENMUAotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgaWYge1tGRjo6aXNfbHBfZmxvd10gJiYgW2luZm8gZXhpc3RzIHZhcnMocG93ZXJfZG9tYWlucyldICYmIFtsbGVuZ3RoICR2YXJzKHBvd2VyX2RvbWFpbnMpXSA+IDF9IHsKLSAgICAgICAgIGlmIHskdmFycyhydW5fY2xwKSAmJiAoW2F1dG9fZXhlY29rIGxlY10gIT0gIiIpfSB7Ci0gICAgICAgICAgICBzZXQgY29tbWFuZCAicnVuX2NscCAiCi0gICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoY2xwX29wdGlvbnMpXX0gewotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgJHZhcnMoY2xwX29wdGlvbnMpCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiXG4iCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCkscnVuX2NscCAkY29tbWFuZF0KLSAgICAgICAgIH0KLSAgICAgIH0KLQotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgIyBQYXJ0aXRpb24gYW5kIHNhdmUgdGhlIHBhcnRpdGlvbnMgaW50byB0aGUKLSAgICAgICMgZGlyZWN0b3J5IFBBUlRJVElPTgotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCi0jICAgICAgaWYgeyR2YXJzKHVzZV9mbGV4bW9kZWxzKX0gewotIyAgICAgICAgIHNldCBtYXhfbGF5ZXIgW2dldFRyaWFsUm91dGVNb2RlIC1tYXhSb3V0ZUxheWVyXQotIyAgICAgICAgIHNldFBsYWNlTW9kZSAtcmVzZXQKLSMgICAgICAgICBzZXRUcmlhbFJvdXRlTW9kZSAtcmVzZXQKLSMgICAgICAgICBzZXRUcmlhbFJvdXRlTW9kZSAtbWF4Um91dGVMYXllciAkbWF4X2xheWVyCi0jICAgICAgfQotCi0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjpzb3VyY2VfcGx1ZyBwcmVfcGFydGl0aW9uX3RjbF0KLQotICAgICAgc2V0IGNvbW1hbmQgImNvbW1pdF9wYXJ0aXRpb24gLWJ1aWxkX3NjYW5cbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxwYXJ0aXRpb24gJGNvbW1hbmRdCi0gICAgICBpZiB7W2xpbmRleCBbc3BsaXQgJHZhcnModmVyc2lvbikgIi4iXSAgMF0gPiAxMH0gewotICAgICAgICAgaWYgeyhbc3RyaW5nIGNvbXBhcmUgJHZhcnMoZGJzX2Zvcm1hdCkgIm9hIl09PTApfSB7Ci0gICAgICAgICAgICBzZXQgY29tbWFuZCAid3JpdGVfcGFydGl0aW9ucyAtcGFydGl0aW9uX2xpYiAkdmFycyhvYV9wYXJ0aXRpb25fbGliKSAtZGlyICR2YXJzKHBhcnRpdGlvbl9kaXIpXG4iCi0gICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgc2V0IGNvbW1hbmQgIndyaXRlX3BhcnRpdGlvbnMgLWRpciAkdmFycyhwYXJ0aXRpb25fZGlyKSAtZGVmIC1kZWZfc2NhblxuIgotICAgICAgICAgfQotICAgICAgfSBlbHNlIHsKLSAgICAgICAgIHNldCBjb21tYW5kICJ3cml0ZV9wYXJ0aXRpb25zIC1kaXIgJHZhcnMocGFydGl0aW9uX2RpcikgLWRlZiAtZGVmX3NjYW5cbiIKLSAgICAgIH0KLSAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxzYXZlX3BhcnRpdGlvbiAkY29tbWFuZF0KLQotICAgICAgaWYgeyR2YXJzKHVzZV9mbGV4bW9kZWxzKSAmJiAkdmFycyhmbGV4bW9kZWxfYXNfcHRuKX0gewotIyAgICAgICAgIHNldCBjb21tYW5kICJyZXBsYWNlX3Byb3RvX21vZGVsIFxcXG4iCi0jICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAgIC1wcmVfZnRfZGlyICR2YXJzKGVjb19kaXIpL3ByZV9mdCBcXFxuIgotIyAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgICAtcG9zdF9mdF9kaXIgJHZhcnMoZWNvX2RpcikvcG9zdF9mdCBcXFxuIgotIyAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgICAtcHRuX2RpciAkdmFycyhwYXJ0aXRpb25fZGlyKSBcXFxuIgotIyAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgICAtcHRuX2Z1bGxfbmV0bGlzdF9kaXIgLi90ZW1wX25ldGxpc3RfZGlyIFxcXG4iCi0jICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAgIC1vdXRfZGlyICR2YXJzKHBhcnRpdGlvbl9kaXIpXG4iCi0KLSAgICAgICAgIHNldCBjb21tYW5kICJyZXBsYWNlX3Byb3RvX21vZGVsIFxcXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZCAiICAgLXB0bl9kaXIgJHZhcnMocGFydGl0aW9uX2RpcikgXFxcbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgICAtb3V0X2RpciAkdmFycyhwYXJ0aXRpb25fZGlyKVxuIgotCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCkscmVwbGFjZV9wcm90b19tb2RlbCAkY29tbWFuZF0KLSAgICAgIH0KLQotICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6c291cmNlX3BsdWcgcG9zdF9wYXJ0aXRpb25fdGNsXQotCi0gICAgICBhcHBlbmQgY29tbWFuZHMgIiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyA8RkY+IEdFTkVSQVRJTkcgUkVQT1JUU1xuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzICIjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4iCi0KLSAgICAgIGlmIHskdmFycyhyZXBvcnRfcG93ZXIpfSB7Ci0gICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMocG93ZXJfYW5hbHlzaXNfdmlldyldICYmICgkdmFycyhwb3dlcl9hbmFseXNpc192aWV3KSAhPSAiIil9IHsKLSAgICAgICAgICAgIHNldCBjb21tYW5kICJyZXBvcnRfcG93ZXIgLXZpZXcgJHZhcnMocG93ZXJfYW5hbHlzaXNfdmlldykgLW91dGZpbGUgJHZhcnMocnB0X2RpcikvJHZhcnMoc3RlcCkucG93ZXIucnB0XG4iCi0gICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgc2V0IGNvbW1hbmQgInJlcG9ydF9wb3dlciAtb3V0ZmlsZSAkdmFycyhycHRfZGlyKS8kdmFycyhzdGVwKS5wb3dlci5ycHRcbiIKLSAgICAgICAgIH0KLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxyZXBvcnRfcG93ZXIgJGNvbW1hbmRdCi0gICAgICB9Ci0gICAgICBzZXQgY29tbWFuZCAiIgotCi0gICAgICBpZiB7W0ZGOjppc19scF9mbG93XSAmJiBbaW5mbyBleGlzdHMgdmFycyhwb3dlcl9kb21haW5zKV0gJiYgW2xsZW5ndGggJHZhcnMocG93ZXJfZG9tYWlucyldID4gMX0gewotCi0gICAgICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAgICAjIFZlcmlmeSBwb3dlciBkb21haW4KLSAgICAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLQotIyAgICAgICAgIHNldCBjb21tYW5kICJjaGVja19wb3dlcl9kb21haW4gLWJpbmQgLWdjb25uIgotIyAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgLWlzb19uZXRfcGQgJHZhcnMocnB0X2RpcikvJHZhcnMoc3RlcCkuaXNvbmV0cy5ycHQiCi0jICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAteF9uZXRfcGQgJHZhcnMocnB0X2RpcikvJHZhcnMoc3RlcCkueG5ldHMucnB0XG4iCi0KLSMgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksY2hlY2tfcG93ZXJfZG9tYWluICRjb21tYW5kXQotCi0gICAgICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAgICAjIFJ1biBDTFAKLSAgICAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLQotICAgICAgICAgaWYgeyR2YXJzKHJ1bl9jbHApICYmIChbYXV0b19leGVjb2sgbGVjXSAhPSAiIil9IHsKLSAgICAgICAgICAgIHNldCBjb21tYW5kICJydW5fY2xwICIKLSAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhjbHBfb3B0aW9ucyldfSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAkdmFycyhjbHBfb3B0aW9ucykKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJcbiIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxydW5fY2xwICRjb21tYW5kXQotICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIGlmIHshW2luZm8gZXhpc3RzIHZhcnMoY2xwX3dhcm5pbmcpXX0gewotICAgICAgICAgICAgICAgcHV0cyAiPEZGPiBXQVJOSU5HOiBVTkFCTEUgVE8gUlVOIENMUCAuLi4gUExFQVNFIE1BS0UgU1VSRSBJVCBJUyBJTiBZT1VSIFBBVEgiCi0gICAgICAgICAgICAgICBzZXQgdmFycyhjbHBfd2FybmluZykgdHJ1ZQotICAgICAgICAgICAgfQotICAgICAgICAgfQotICAgICAgfQotCi0gICAgICBpZiB7ISR2YXJzKGNvZGVnZW4pfSB7Ci0gICAgICAgICAgdXBsZXZlbCAjMCBldmFsICRjb21tYW5kcwotICAgICAgfQotCi0gICAgICBzZXQgcGF0aCBbZmlsZSBub3JtYWxpemUgJHZhcnMoc2NyaXB0X3BhdGgpXQotICAgCi0gICAgICBmaWxlIG1rZGlyICR2YXJzKHBhcnRpdGlvbl9kaXIpCi0KLSAgICAgIGlmIHshW2ZpbGUgZXhpc3RzICR2YXJzKHBhcnRpdGlvbl9kaXIpL01ha2VmaWxlLnBhcnRpdGlvbl19IHsKLSAgICAgICAgIGZpbGUgY29weSAkdmFycyhzY3JpcHRfcGF0aCkvRVRDL0lOTk9WVVMvTWFrZWZpbGUucGFydGl0aW9uICR2YXJzKHBhcnRpdGlvbl9kaXIpCi0gICAgICB9Ci0gICAgICBzZXQgb3AgW29wZW4gJHZhcnMocGFydGl0aW9uX2RpcikvTWFrZWZpbGUgd10KLSAgICAgIGlmIHshW2luZm8gZXhpc3RzIGVudihWUEFUSCldfSB7Ci0gICAgICAgICBzZXQgZW52KFZQQVRIKSAibWFrZSIKLSAgICAgIH0KLSAgICAgIHB1dHMgJG9wICJWUEFUSD0kZW52KFZQQVRIKSIKLSAgICAgIHB1dHMgJG9wICJCTE9DS1MgPSAkdmFycyhwYXJ0aXRpb25fbGlzdCkiCi0gICAgICBwdXRzICRvcCAiIgotICAgICAgcHV0cyAkb3AgImluY2x1ZGUgTWFrZWZpbGUucGFydGl0aW9uIgotICAgICAgY2xvc2UgJG9wCi0gICAKLSAgICAgIGZvcmVhY2ggdmFyIFthcnJheSBuYW1lcyB2YXJzXSB7Ci0gICAgICAgICBzZXQgc3ZhcnMoJHZhcikgJHZhcnMoJHZhcikKLSAgICAgIH0KLSAgICAgIHNldCB2YXJzKG1vZGUpIGZsYXQKLSMgICAgICBzZXQgdmFycyhoaWVyKSB0cnVlCi0gICAgICBzZXQgbGluayBbZmlsZSBub3JtYWxpemUgJHZhcnMoc2NyaXB0X3Jvb3QpXQotICAgICAgZm9yZWFjaCBibG9jayBbY29uY2F0ICR2YXJzKGRlc2lnbikgJHZhcnMocGFydGl0aW9uX2xpc3QpXSB7Ci0gICAgICAgICBleGVjIG1rZGlyIC1wICR2YXJzKHBhcnRpdGlvbl9kaXIpLyRibG9jawotIyAgICAgICAgIGlmIHtbZmlsZSBleGlzdHMgLmZmLnRjbF19IHsKLSMgICAgICAgICAgICBmaWxlIGNvcHkgLWZvcmNlIC5mZi50Y2wgJHZhcnMocGFydGl0aW9uX2RpcikvJGJsb2NrCi0jICAgICAgICAgfQotICAgICAgICAgaWYge1tmaWxlIGV4aXN0cyAkdmFycyhwYXJ0aXRpb25fZGlyKS8kYmxvY2svTWFrZWZpbGVdfSB7Ci0gICAgICAgICAgICBmaWxlIGRlbGV0ZSAkdmFycyhwYXJ0aXRpb25fZGlyKS8kYmxvY2svTWFrZWZpbGUKLSAgICAgICAgIH0KLSAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkYmxvY2ssaW5ub3Z1c19jb25maWdfdGNsKV0gJiYgW2ZpbGUgZXhpc3RzICR2YXJzKCRibG9jayxpbm5vdnVzX2NvbmZpZ190Y2wpXX0gewotICAgICAgICAgICAgcHV0cyAiPEZGPiBTb3VyY2luZyAkdmFycygkYmxvY2ssaW5ub3Z1c19jb25maWdfdGNsKSIKLSAgICAgICAgICAgIHNvdXJjZSAkdmFycygkYmxvY2ssaW5ub3Z1c19jb25maWdfdGNsKQotICAgICAgICAgfSAKLSAgICAgICAgIHNldCBjd2QgW3B3ZF0KLSAgICAgICAgCi0gICAgICAgICBpZiB7KFtsaW5kZXggW3NwbGl0ICR2YXJzKHZlcnNpb24pICIuIl0gIDBdID4gMTApICAmJiAoW3N0cmluZyBjb21wYXJlICR2YXJzKGRic19mb3JtYXQpICJvYSJdPT0wKX0gewotICAgICAgICAgICAgaWYge1tmaWxlIGV4aXN0cyBjZHMubGliXX0gewotICAgICAgICAgICAgICAgc2V0IGlwIFtvcGVuIGNkcy5saWIgcl0KLSAgICAgICAgICAgICAgIHNldCBpIDAgCi0gICAgICAgICAgICAgICB3aGlsZSB7W2dldHMgJGlwIGxpbmVdPj0wfSB7Ci0gICAgICAgICAgICAgICAgICBzZXQgY2RzX2xpYigkaSkgJGxpbmUKLSAgICAgICAgICAgICAgICAgIGluY3IgaQotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgY2xvc2UgJGlwCi0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgcHV0cyAiPEZGPiBFUlJPUjogQSBjZHMubGliIGZpbGUgaXMgcmVxdWlyZWQgZm9yIG9wZW4gYWNjZXNzIGZsb3dzIC4uLiIKLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0gCi0gICAgICAgICBjZCAkdmFycyhwYXJ0aXRpb25fZGlyKS8kYmxvY2sKLSAgICAgICAgIHNldCB2YXJzKGRlc2lnbikgJGJsb2NrCi0gICAgICAgICBpZiB7JHZhcnMoY29kZWdlbil9IHsKLSAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhwcm9jX2ZpbGUpXX0gewotICAgICAgICAgICAgICAgdW5zZXQgdmFycyhwcm9jX2ZpbGUpCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICB1bnNldCB2YXJzKHN0ZXBzKQotICAgICAgICAgfSAKLSAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhjdHNfc3BlYyldfSB7Ci0gICAgICAgICAgICB1bnNldCB2YXJzKGN0c19zcGVjKQotICAgICAgICAgfQotICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCRibG9jayxjdHNfc3BlYyldfSB7Ci0gICAgICAgICAgICBzZXQgdmFycyhjdHNfc3BlYykgJHZhcnMoJGJsb2NrLGN0c19zcGVjKQotICAgICAgICAgfQotCi0gICAgICAgICBpZiB7ISR2YXJzKGNvZGVnZW4pfSB7IAotICAgICAgICAgICAgZXhlYyBsbiAtcyAkbGluayBTQ1JJUFRTCi0gICAgICAgICAgICBleGVjIGxuIC1zIFNDUklQVFMvTWFrZWZpbGUuZWRpLmZsYXQgTWFrZWZpbGUKLSAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBzZXQgdmFycyhtb2RlKSBmbGF0Ci0gICAgICAgICAgICBzZXQgdmFycyhoaWVyKSB0cnVlIAotICAgICAgICAgICAgdW5zZXQgdmFycyhzdGVwKQotICAgICAgICAgICAgZXhlY3V0ZV9mbG93IGFsbCAkdmFycyhmb3JtYXRfbGluZXMpCi0gICAgICAgICAgICBGRjo6ZHVtcF92YXJzCi0gICAgICAgICB9Ci0gICAgICAgICBjZCAkY3dkCi0jICAgICAgICAgc2V0IGFjdGlvbnMgJHZhcnMoYWN0aW9ucykKLSAgICAgICAgIGZvcmVhY2ggdmFyIFthcnJheSBuYW1lcyB2YXJzXSB7Ci0gICAgICAgICAgICBpZiB7JHZhciAhPSAicHJvY2Vzc2VkX3BsdWdpbnMifSB7Ci0gICAgICAgICAgICAgICB1bnNldCB2YXJzKCR2YXIpCi0gICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0jICAgICAgICAgc2V0IHZhcnMoYWN0aW9ucykgJGFjdGlvbnMKLSAgICAgICAgIGZvcmVhY2ggdmFyIFthcnJheSBuYW1lcyBzdmFyc10gewotICAgICAgICAgICAgaWYgeyR2YXIgIT0gInByb2Nlc3NlZF9wbHVnaW5zIn0gewotICAgICAgICAgICAgICAgc2V0IHZhcnMoJHZhcikgJHN2YXJzKCR2YXIpCi0gICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0gICAgICB9Ci0gICAgICBpZiB7JHZhcnMoaGllcl9mbG93X3R5cGUpID09ICIycGFzcyJ9IHsKLSAgICAgICAgIGZvcmVhY2ggYmxvY2sgW2NvbmNhdCAkdmFycyhkZXNpZ24pICR2YXJzKHBhcnRpdGlvbl9saXN0KV0gewotICAgICAgICAgICAgZXhlYyBta2RpciAtcCAkdmFycyhwYXJ0aXRpb25fZGlyX3Bhc3MyKS8kYmxvY2svJHZhcnMoc2NyaXB0X2RpcikvSU5OT1ZVUwotICAgICAgICAgICAgZXhlYyBta2RpciAtcCAkdmFycyhwYXJ0aXRpb25fZGlyX3Bhc3MyKS8kYmxvY2svJHZhcnMocnB0X2RpcikKLSAgICAgICAgICAgIGlmIHtbZmlsZSBpc2RpcmVjdG9yeSAkdmFycyhwYXJ0aXRpb25fZGlyX3Bhc3MyKS8kYmxvY2svJHZhcnMoc2NyaXB0X2RpcikvRVRDXX0gewotICAgICAgICAgICAgICAgZmlsZSBkZWxldGUgLWZvcmNlICR2YXJzKHBhcnRpdGlvbl9kaXJfcGFzczIpLyRibG9jay8kdmFycyhzY3JpcHRfZGlyKS9FVEMKLSAgICAgICAgICAgIH0KLSMgICAgICAgICAgICBmaWxlIGNvcHkgLWZvcmNlICR2YXJzKHBhcnRpdGlvbl9kaXIpLyRibG9jay8kdmFycyhzY3JpcHRfZGlyKS9FVEMgJHZhcnMocGFydGl0aW9uX2Rpcl9wYXNzMikvJGJsb2NrLyR2YXJzKHNjcmlwdF9kaXIpL0VUQwotICAgICAgICAgICAgZm9yZWFjaCBmaWxlIFtnbG9iICR2YXJzKHBhcnRpdGlvbl9kaXIpL01ha2UqXSB7Ci0gICAgICAgICAgICAgICBpZiB7W2ZpbGUgaXNmaWxlICRmaWxlXX0gewotICAgICAgICAgICAgICAgICAgZmlsZSBjb3B5IC1mb3JjZSAkZmlsZSAkdmFycyhwYXJ0aXRpb25fZGlyX3Bhc3MyKQotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGZvcmVhY2ggZmlsZSBbZ2xvYiAkdmFycyhwYXJ0aXRpb25fZGlyKS8kYmxvY2svJHZhcnMoc2NyaXB0X2RpcikvKl0gewotICAgICAgICAgICAgICAgaWYge1tmaWxlIGlzZmlsZSAkZmlsZV19IHsKLSAgICAgICAgICAgICAgICAgIGZpbGUgY29weSAtZm9yY2UgJGZpbGUgJHZhcnMocGFydGl0aW9uX2Rpcl9wYXNzMikvJGJsb2NrLyR2YXJzKHNjcmlwdF9kaXIpCi0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYge1tmaWxlIGlzZmlsZSAkdmFycyhwYXJ0aXRpb25fZGlyKS8kYmxvY2svLmlsbV9ub25fc2RjX2ZpbGUudGNsXX0gewotICAgICAgICAgICAgICAgZmlsZSBjb3B5IC1mb3JjZSAkdmFycyhwYXJ0aXRpb25fZGlyKS8kYmxvY2svLmlsbV9ub25fc2RjX2ZpbGUudGNsICR2YXJzKHBhcnRpdGlvbl9kaXJfcGFzczIpLyRibG9jawotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYge1tmaWxlIGlzZmlsZSAkdmFycyhwYXJ0aXRpb25fZGlyKS8kYmxvY2svZW1wdHkuc2RjXX0gewotICAgICAgICAgICAgICAgZmlsZSBjb3B5IC1mb3JjZSAkdmFycyhwYXJ0aXRpb25fZGlyKS8kYmxvY2svZW1wdHkuc2RjICR2YXJzKHBhcnRpdGlvbl9kaXJfcGFzczIpLyRibG9jawotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYge1tmaWxlIGlzZmlsZSAkdmFycyhwYXJ0aXRpb25fZGlyKS8kYmxvY2svTWFrZWZpbGUucGFzczJdfSB7Ci0gICAgICAgICAgICAgICBmaWxlIGNvcHkgLWZvcmNlICR2YXJzKHBhcnRpdGlvbl9kaXIpLyRibG9jay9NYWtlZmlsZS5wYXNzMiAkdmFycyhwYXJ0aXRpb25fZGlyX3Bhc3MyKS8kYmxvY2svTWFrZWZpbGUKLSAgICAgICAgICAgICAgIGZpbGUgZGVsZXRlICR2YXJzKHBhcnRpdGlvbl9kaXIpLyRibG9jay9NYWtlZmlsZS5wYXNzMgotICAgICAgICAgICAgfQotICAgICAgICAgICAgY2QgJHZhcnMocGFydGl0aW9uX2Rpcl9wYXNzMikvJGJsb2NrCi0gICAgICAgICAgICBpZiB7JHZhcnMoZW5hYmxlX2ZsZXhpbG0pfSB7Ci0gICAgICAgICAgICAgICBzZXQgaW5kZXggW2xzZWFyY2ggW0ZGOjphZGp1c3Rfc3RlcHNdIGN0c10KLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBzZXQgaW5kZXggW2xzZWFyY2ggW0ZGOjphZGp1c3Rfc3RlcHNdIHBvc3RjdHNdCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBjZCAkY3dkCi0gICAgICAgICAgICBmb3JlYWNoIHN0ZXAgW2xyYW5nZSAkdmFycyhzdGVwcykgJGluZGV4IGVuZF0gewotICAgICAgICAgICAgICAgaWYge1tsc2VhcmNoICR2YXJzKGZzdGVwcykgJHN0ZXBdICE9IC0xfSB7Ci0gICAgICAgICAgICAgICAgICBpZiB7W2ZpbGUgaXNmaWxlICR2YXJzKHBhcnRpdGlvbl9kaXIpLyRibG9jay8kdmFycyhzY3JpcHRfZGlyKS9JTk5PVlVTL3J1bl8kc3RlcC50Y2xdfSB7Ci0gICAgICAgICAgICAgICAgICAgICBmaWxlIGNvcHkgIC1mb3JjZSAkdmFycyhwYXJ0aXRpb25fZGlyKS8kYmxvY2svJHZhcnMoc2NyaXB0X2RpcikvSU5OT1ZVUy9ydW5fJHN0ZXAudGNsIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICR2YXJzKHBhcnRpdGlvbl9kaXJfcGFzczIpLyRibG9jay8kdmFycyhzY3JpcHRfZGlyKS9JTk5PVlVTCi0gICAgICAgICAgICAgICAgICAgICBmaWxlIGRlbGV0ZSAgLWZvcmNlICR2YXJzKHBhcnRpdGlvbl9kaXIpLyRibG9jay8kdmFycyhzY3JpcHRfZGlyKS9JTk5PVlVTL3J1bl8kc3RlcC50Y2wKLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSMgICAgICAgICAgICBpZiB7JHZhcnMoZW5hYmxlX2ZsZXhpbG0pfSB7Ci0jICAgICAgICAgICAgICAgZmlsZSBjb3B5IC1mb3JjZSAkdmFycyhwYXJ0aXRpb25fZGlyKS8kYmxvY2svTWFrZWZpbGUucGFzczIgJHZhcnMocGFydGl0aW9uX2Rpcl9wYXNzMikvJGJsb2NrLk1ha2VmaWxlCi0jICAgICAgICAgICAgIH0gZWxzZSB7Ci0jICAgICAgICAgICAgICAgZmlsZSBjb3B5IC1mb3JjZSAkdmFycyhwYXJ0aXRpb25fZGlyKS8kYmxvY2svTWFrZWZpbGUucGFzczIgJHZhcnMocGFydGl0aW9uX2Rpcl9wYXNzMikvJGJsb2NrL01ha2VmaWxlCi0jICAgICAgICAgICAgIH0KLSMgICAgICAgICAgICBjZCAkdmFycyhwYXJ0aXRpb25fZGlyX3Bhc3MyKS8kYmxvY2sKLSMgICAgICAgICAgICBzZXQgYWRqdXN0ZWQgW0ZGOjphZGp1c3Rfc3RlcHNdCi0jICAgICAgICAgICAgRkY6Omdlbl9tYWtlZmlsZSBbbHJhbmdlICR2YXJzKHN0ZXBzKSAkaW5kZXggZW5kXSBmbGF0Ci0jICAgICAgICAgICAgRkY6Omdlbl9tYWtlZmlsZSBbbHJhbmdlICRhZGp1c3RlZCAkaW5kZXggZW5kXSBmbGF0Ci0jICAgICAgICAgICAgY2QgJGN3ZAotICAgICAgICAgfQotICAgICAgfQotIAotICAgICAgZm9yZWFjaCB2YXIgW2FycmF5IG5hbWVzIHZhcnNdIHsKLSAgICAgICAgIHVuc2V0IHZhcnMoJHZhcikKLSAgICAgIH0KLSAgICAgIGZvcmVhY2ggdmFyIFthcnJheSBuYW1lcyBzdmFyc10gewotICAgICAgICAgc2V0IHZhcnMoJHZhcikgJHN2YXJzKCR2YXIpCi0gICAgICB9Ci0KLSAgICAgIGlmIHskdmFycyhjb2RlZ2VuKX0gewotIyAgICAgICAgIGlmIHskdmFycyhtYWtlZmlsZSl9IHsKLSMgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIlxuZXhlYyAvYmluL3RvdWNoICRlbnYoVlBBVEgpL3BhcnRpdGlvblxuIgotIyAgICAgICAgIH0KLSAgICAgICAgIHJldHVybiAkY29tbWFuZHMKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgICBleGVjIC9iaW4vdG91Y2ggJGVudihWUEFUSCkvcGFydGl0aW9uCi0gICAgICB9Ci0gICB9Ci0KLSAgIHByb2MgcnVuX2RlYnVnIHt7Zm9ybWF0IDF9fSB7Ci0KLSAgICAgIGdsb2JhbCB2YXJzCi0gICAgICBnbG9iYWwgZXJyb3JzCi0gICAgICBnbG9iYWwgZW52Ci0KLSAgICAgIHNldCBjb21tYW5kcyAiIgotICAgICAgYXBwZW5kIGNvbW1hbmRzICJcbmdsb2JhbCBlbnZcbiIKLQotICAgICAgYXBwZW5kIGNvbW1hbmRzICJpZiB7XFtpbmZvIGV4aXN0cyBlbnYoU1RFUClcXX0ge1xuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzICJbRkZfTk9WVVM6OmxvYWRfZGVzaWduIFwkZW52KFNURVApXVxuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzICJ9XG4iCi0KLSMgICAgICBhcHBlbmQgY29tbWFuZHMgIltGRjo6c291cmNlX3BsdWcgYWx3YXlzX3NvdXJjZV90Y2xdXG4iCi0KLSAgICAgIGFwcGVuZCBjb21tYW5kcyAiZ3VpX2ZpdFxuIgotCi0gICAgICBpZiB7JHZhcnMoY29kZWdlbil9IHsKLSAgICAgICAgIHJldHVybiAkY29tbWFuZHMKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgdXBsZXZlbCAjMCBldmFsICRjb21tYW5kcwotICAgICAgfQotCi0gICB9Ci0KLSAgIHByb2MgcnVuX2xlYyB7fSB7Ci0KLSAgICAgIGdsb2JhbCB2YXJzCi0gICAgICBnbG9iYWwgZXJyb3JzCi0gICAgICBnbG9iYWwgZW52Ci0KLSAgICAgIHNldCBjb21tYW5kcyAiIgotCi0gICAgICBhcHBlbmQgY29tbWFuZHMgInZweG1vZGVcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyAic2V0IGRvZmlsZSBhYm9ydCBleGl0XG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgInNldCB1bmRlZmluZWQgY2VsbCBibGFja19ib3ggLW5vYXNjZW5kIC1ib3RoXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgInRjbG1vZGVcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyAiLy8gc2V0dXAgdmFyaWFibGVzIFxuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzICJnbG9iYWwgdmFyc1xuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzICJwcm9jIFB1dHMge2FyZ3N9IHtcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyAiICAgcHV0cyBcJGFyZ3NcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyAifVxuIgotCi0gICAgICBhcHBlbmQgY29tbWFuZCAiLy8gRGVmaW5lIHRoZSBuZXRsaXN0IHRvIGJlIHZlcmlmeVxuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzICJpZiB7XFtpbmZvIGV4aXN0cyBlbnYoU1RFUClcXSAmJiBcW2ZpbGUgZXhpc3RzICR2YXJzKGRic19kaXIpL0xFQy9cJGVudihTVEVQKS52Lmd6XF19IHtcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyAiICAgc2V0IHJldmlzZWROZXRsaXN0ICR2YXJzKGRic19kaXIpL0xFQy9cJGVudihTVEVQKS52Lmd6XG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgIn0gZWxzZSB7XG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgIiAgIHB1dHMgXCI8RkY+IEZhaWxlZCB0byBmaW5kIG5ldGxpc3QgIERCUy9MRUMvXCRlbnYoU1RFUCkudi5nelwiXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgIn1cbiIKLQotICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKHRocmVhZHMpXX0gewotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJ2cHggc2V0IGNvbXBhcmUgb3B0aW9uIC10aHJlYWRzICR2YXJzKHRocmVhZHMpXG4iCi0gICAgICB9Ci0KLSAgICAgIGFwcGVuZCBjb21tYW5kcyAiLy8gcmVhZCBsaWJlcnR5IGNlbGwgZGVmaW5pdGlvbnNcbiIKLSAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkdmFycyhkZWZhdWx0X3NldHVwX3ZpZXcpLGRlbGF5X2Nvcm5lcildfSB7Ci0gICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJHZhcnMoJHZhcnMoZGVmYXVsdF9zZXR1cF92aWV3KSxkZWxheV9jb3JuZXIpLGxpYnJhcnlfc2V0KV19IHsKLSAgICAgICAgICAgIHNldCBzZXQgJHZhcnMoJHZhcnMoJHZhcnMoZGVmYXVsdF9zZXR1cF92aWV3KSxkZWxheV9jb3JuZXIpLGxpYnJhcnlfc2V0KQotICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHJldHVybgotICAgICAgICAgfQotICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHJldHVybgotICAgICAgfQotICAgICAgYXBwZW5kIGNvbW1hbmRzICJ2cHggcmVhZCBsaWJyYXJ5IC1zdGF0ZXRhYmxlIC1ib3RoIC1saWJlcnR5IFxbbGlzdCAkdmFycygkc2V0LHRpbWluZylcXVxuIgotCi0gICAgICBhcHBlbmQgY29tbWFuZHMgIi8vIHJlYWQgcmVmZXJlbmNlIG5ldGxpc3RcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyAidnB4IHJlYWQgZGVzaWduIC12ZXJpbG9nIC1zZW5zaXRpdmUgLWdvbGRlbiAkdmFycyhuZXRsaXN0KVxuIgotCi0gICAgICBhcHBlbmQgY29tbWFuZHMgIi8vIHJlYWQgcG9zdC1pbXBsZW1lbnRhdGlvbiBuZXRsaXN0XG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgInZweCByZWFkIGRlc2lnbiAtdmVyaWxvZyAtc2Vuc2l0aXZlIC1yZXZpc2VkIFwkcmV2aXNlZE5ldGxpc3RcbiIKLQotICAgICAgYXBwZW5kIGNvbW1hbmRzICIvL3NldCB0b3AgbGV2ZWxcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyAidnB4IHNldCByb290IG1vZHVsZSAkdmFycyhkZXNpZ24pIC1ib3RoXG4iCi0KLSAgICAgIHJlZ3N1YiAtYWxsICIjIiBbRkY6OnNvdXJjZV9wbHVnIHByZV9sZWNfdGNsXSAiLy8iIHRlbXAKLSAgICAgIGFwcGVuZCBjb21tYW5kcyAkdGVtcAotCi0gICAgICBhcHBlbmQgY29tbWFuZHMgInZweG1vZGVcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyAicmVwb3J0IGRlc2lnbiBkYXRhXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgInJlcG9ydCBibGFjayBib3hcbiIKLQotICAgICAgYXBwZW5kIGNvbW1hbmRzICJzZXQgbWFwcGluZyBtZXRob2QgLW5hbWUgZmlyc3RcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyAic2V0IGZsYXR0ZW4gbW9kZWwgLXNlcV9jb25zdGFudCAtc2VxX2NvbnN0YW50X3hfdG8gMFxuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzICJzZXQgZmxhdHRlbiBtb2RlbCAtbm9kZmZfdG9fZGxhdF96ZXJvIC1ub2RmZl90b19kbGF0X2ZlZWRiYWNrXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgInNldCBmbGF0dGVuIG1vZGVsIC1nYXRlZF9jbG9ja1xuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzICJzZXQgc3lzdGVtIG1vZGUgbGVjXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgImFkZCBjb21wYXJlIHBvaW50IC1hbGxcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyAiY29tcGFyZSAtZ2F0ZV90b19nYXRlXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgInVzYWdlXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgIi8vICAgdnB4IHJlcG9ydCBjb21wYXJlIGRhdGEiCi0gICAgICBhcHBlbmQgY29tbWFuZHMgInJlcG9ydCBjb21wYXJlIGRhdGEgLWNsYXNzIG5vbmVxdWl2YWxlbnQgLWNsYXNzIGFib3J0IC1jbGFzcyBub3Rjb21wYXJlZFxuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzICJyZXBvcnQgdmVyaWZpY2F0aW9uIC12ZXJib3NlXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgInJlcG9ydCBzdGF0aXN0aWNzXG4iCi0KLSAgICAgIGFwcGVuZCBjb21tYW5kcyAidGNsbW9kZVxuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzICJzZXQgcG9pbnRzX2NvdW50IFxbZ2V0X2NvbXBhcmVfcG9pbnRzIC1jb3VudFxdXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgInNldCBkaWZmX2NvdW50IFxbZ2V0X2NvbXBhcmVfcG9pbnRzIC1kaWZmIC1jb3VudFxdXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgInNldCBhYm9ydF9jb3VudCBcW2dldF9jb21wYXJlX3BvaW50cyAtYWJvcnQgLWNvdW50XF1cbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyAic2V0IHVua25vd25fY291bnQgXFtnZXRfY29tcGFyZV9wb2ludHMgLXVua25vd24gLWNvdW50XF1cbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyAiaWYge1wkcG9pbnRzX2NvdW50ID09IDB9IHtcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyAiICAgIHB1dHMgXCItLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cIlxuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzICIgICAgcHV0cyBcIkVSUk9SOiBObyBjb21wYXJlIHBvaW50cyBkZXRlY3RlZFwiXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgIiAgICBwdXRzIFwiLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXCJcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyAifVxuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzICJpZiB7XCRkaWZmX2NvdW50ID4gMH0ge1xuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzICIgICAgcHV0cyBcIi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVwiXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgIiAgICBwdXRzIFwiRVJST1I6IERpZmZlcmVudCBLZXkgUG9pbnRzIGRldGVjdGVkXCJcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyAiICAgIHB1dHMgXCItLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cIlxuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzICJ9XG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgImlmIHtcJGFib3J0X2NvdW50ID4gMH0ge1xuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzICIgICAgcHV0cyBcIi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXCJcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyAiICAgIHB1dHMgXCJFUlJPUjogQWJvcnQgUG9pbnRzIGRldGVjdGVkIFwiXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgIiAgICBwdXRzIFwiLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cIlxuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzICJ9XG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgImlmIHtcJHVua25vd25fY291bnQgPiAwfSB7XG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgIiAgICBwdXRzIFwiLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVwiXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgIiAgICBwdXRzIFwiRVJST1I6IFVua25vd24gS2V5IFBvaW50cyBkZXRlY3RlZFwiXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgIiAgICBwdXRzIFwiLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVwiXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgIn1cbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyAicHV0cyBcIk5vIG9mIGNvbXBhcmUgcG9pbnRzID0gXCRwb2ludHNfY291bnRcIlxuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzICJwdXRzIFwiTm8gb2YgZGlmZiBwb2ludHMgICAgPSBcJGRpZmZfY291bnRcIlxuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzICJwdXRzIFwiTm8gb2YgYWJvcnQgcG9pbnRzICAgPSBcJGFib3J0X2NvdW50XCJcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyAicHV0cyBcIk5vIG9mIHVua25vd24gcG9pbnRzID0gXCR1bmtub3duX2NvdW50XCJcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyAiZXhpdCAwXG4iCi0KLSAgICAgIGlmIHskdmFycyhjb2RlZ2VuKX0gewotICAgICAgICAgcmV0dXJuICRjb21tYW5kcwotICAgICAgfSBlbHNlIHsKLSAgICAgICAgICB1cGxldmVsICMwIGV2YWwgJGNvbW1hbmRzCi0gICAgICB9Ci0KLSAgIH0KLQotICAgcHJvYyBkdW1wX2NvbmZpZyB7fSB7Ci0KLSAgICAgIGdsb2JhbCB2YXJzCi0gICAgICBnbG9iYWwgdWRtCi0gICAgICBnbG9iYWwgcmRhX0lucHV0Ci0gICAgICBnbG9iYWwgcmRhX2RlZmF1bHRzCi0KLSMgICAgICBzZXQgY29tbWFuZHMgIiIKLSAgICAgIGZpbGUgbWtkaXIgJHZhcnMoc2NyaXB0X2RpcikKLSAgICAgIGlmIHtbaW5mbyBjb21tYW5kIEZGRjo6Z2V0X3Rvb2xdIG5lICIiICYmIFtGRkY6OmdldF90b29sXSBlcSAicmMifSB7Ci0gICAgICAgIHRjbF9zb3VyY2UgJHZhcnMoc2NyaXB0X3BhdGgpL0VUQy9JTk5PVlVTL3VkbS50Y2wKLSAgICAgIH0gZWxzZSB7IAotICAgICAgICBzb3VyY2UgJHZhcnMoc2NyaXB0X3BhdGgpL0VUQy9JTk5PVlVTL3VkbS50Y2wKLSAgICAgIH0KLSAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhjcGZfZmlsZSldfSB7Ci0gICAgICAgICBpZiB7JHZhcnMoY3BmX3RpbWluZyl9IHsKLSAgICAgICAgICAgIHVuc2V0IGluaXQobW1tY19maWxlKQotICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHVuc2V0IGluaXQoY3BmX2ZpbGUpCi0gICAgICAgICB9Ci0gICAgICB9Ci0gICAgICBpZiB7W2xpbmRleCBbc3BsaXQgJHZhcnModmVyc2lvbikgIi4iXSAgMF0gPiAxMH0gewotICAgICAgICAgaWYgeyEkdmFycyhnZW5lcmF0ZV9mbG93X3N0ZXBzKSB8fCAoW2xpbmRleCBbc3BsaXQgJHZhcnModmVyc2lvbikgIi4iXSAgMF0gPCAxNSl9IHsKLSAgICAgICAgICAgIHNldCBvcCBbb3BlbiAkdmFycyhzY3JpcHRfZGlyKS9pbml0LnRjbCB3XQotICAgICAgICAgICAgIyBCQ0w6IFRyeWluZyB0byBmaXggZW1iZWRkZWQgcGF0aHMuLi4KLSAgICAgICAgICAgIHNldCByZWxhdGl2aXplTWVzZ0xvZyAiIgotICAgICAgICAgICAgc2V0IHJlbGF0aXZpemVNZXNnTG9nICIkcmVsYXRpdml6ZU1lc2dMb2cgW0ZGOjpyZW1vdmVfb3V0ZXJfYnJhY2VzIFtGRjo6cmVsYXRpdml6ZUZpbGVPckRpciAtYXJyIGluaXQgLXZhcmRpciBmZl9leGVfZGlyIC1yZWxhdGl2ZVBhdGhzT2tdXSIKLQotICAgICAgICAgICAgI2ZvcmVhY2ggdmFyIFthcnJheSBuYW1lcyBpbml0XSB7Ci0gICAgICAgICAgICAjICAgcHV0cyAkb3AgInNldCBpbml0XyR2YXIgXCIkaW5pdCgkdmFyKVwiIgotICAgICAgICAgICAgI30KLSAgICAgICAgICAgIGZvcmVhY2ggdmFyIFthcnJheSBuYW1lcyBuaW5pdF0gewotICAgICAgICAgICAgICAgaWYgeyR2YXJzKG5ldGxpc3RfdHlwZSkgPT0gInZlcmlsb2cifSB7Ci0gICAgICAgICAgICAgICAgICBpZiB7JHZhciA9PSAib2FfZGVzaWduX2xpYiJ9IHsgY29udGludWUgfQotICAgICAgICAgICAgICAgICAgaWYgeyR2YXIgPT0gIm9hX2Rlc2lnbl9jZWxsIn0geyBjb250aW51ZSB9Ci0gICAgICAgICAgICAgICAgICBpZiB7JHZhciA9PSAib2FfZGVzaWduX3ZpZXcifSB7IGNvbnRpbnVlIH0KLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIHB1dHMgJG9wICJzZXRfZGIgaW5pdF8kdmFyIFwiJG5pbml0KCR2YXIpXCIiCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBjbG9zZSAkb3AKLSAgICAgICAgIH0KLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgICBzZXQgb3AgW29wZW4gJHZhcnMoc2NyaXB0X2RpcikvcnVuLmNvbmYgd10KLSAgICAgICAgICNCQ0w6IEFkZGVkIC5mZi50Y2wgc291cmNpbmcgaW4gcnVuLmNvbmYgaW4gb3JkZXIgdG8gcHVsbCBpbiBjb2RlZ2VuIHZhcmlhYmxlcwotICAgICAgICAgcHV0cyAkb3AgIiMgU2V0IHVwIGNvZGVnZW4gdmFyaWFibGVzIChwb3NzaWJseSkgbmVlZGVkIHRvIHJlc29sdmUgc29tZSBjb25mIHZhcmlhYmxlcyIKLSAgICAgICAgICNwdXRzICRvcCAiaWYge1xbZmlsZSBleGlzdHMgLmZmLnRjbFxdfSB7IgotICAgICAgICAgI3B1dHMgJG9wICIgIHNvdXJjZSAuZmYudGNsIgotICAgICAgICAgI3B1dHMgJG9wICJ9IgotICAgICAgICAgI0JDTDogT25seSBlbmNsb3NlIGluIGN1cmxpZXMgaWYgc3Vic3QgaXMgbm90IHBhcnQgb2YgdGhlIG5ldGxpc3QgbmFtZQotICAgICAgICAgZm9yZWFjaCB2YXIgW2FycmF5IG5hbWVzIHJkYV9JbnB1dF0gewotICAgICAgICAgICAjIEJDTDogb25seSB1c2UgY3VybGllcyBpZiB0aGUgdmFyaWFibGUgZG9lc24ndCBjb250YWluIHN1YnN0IChvdGhlcndpc2Ugc3Vic3Qgd2lsbCBub3QgYmUgcGVyZm9ybWVkKQotICAgICAgICAgICBpZiB7W3JlZ2V4cCB7c3Vic3R9ICRyZGFfSW5wdXQoJHZhcildfSB7Ci0gICAgICAgICAgICAgcHV0cyAkb3AgInNldCByZGFfSW5wdXQoJHZhcikgXCIkcmRhX0lucHV0KCR2YXIpXCIiCi0gICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgcHV0cyAkb3AgInNldCByZGFfSW5wdXQoJHZhcikgXHskcmRhX0lucHV0KCR2YXIpXH0iCi0gICAgICAgICAgIH0KLSAgICAgICAgIH0KLSMgICAgICAgICBpZiB7JHZhcnMoZmxhdCkgIT0gImZ1bGwifSB7Ci0jICAgICAgICAgICAgcHV0cyAkb3AgInNldCByZGFfSW5wdXQodWlfdmlld19kZWZpbml0aW9uX2ZpbGUpIFwiJHZhcnMoc2NyaXB0X2Rpcikvdmlld19kZWZpbml0aW9uLnRjbFwiIgotIyAgICAgICAgIH0KLSAgICAgIH0KLSAgIH0KLQotICAgcHJvYyBnZXRfcmVxdWlyZWRfcHJvY3Mge2ZpbGV9IHsKLSAgICAgICMKLSAgICAgICMgR2l2ZW4gYSBsaXN0IG9mIHJlcXVpcmVkIHByb2NlZHVyZXMsIHJldHVybiB0aGUgbGluZXMgdGhhdCByZXByZXNlbnQKLSAgICAgICMgdGhvc2UgcHJvY2VkdXJlcyBmcm9tIHRoZSB1dGlscy50Y2wgZmlsZQotICAgICAgIwotCi0gICAgICBnbG9iYWwgdmFycwotICAgICAgZ2xvYmFsIGVycm9ycwotCi0gICAgICAjCi0gICAgICAjIFJlYWQgdGhlIGZpbGUgYW5kIGdhdGhlciBhbGwgb2YgdGhlIGNvbnRlbnRzCi0gICAgICAjCi0KLSAgICAgIHNldCBhbGxfbGluZXMgIiIKLSAgICAgIHNldCBsZW5ndGggMAotICAgICAgc2V0IGlwIFtvcGVuICRmaWxlXQotICAgICAgd2hpbGUge1tnZXRzICRpcCBsaW5lXT49MH0gewotICAgICAgICAgc2V0IHV0aWxzX2xpbmVzKCRsZW5ndGgpICRsaW5lCi0gICAgICAgICBpbmNyIGxlbmd0aAotICAgICAgfQotICAgICAgY2xvc2UgJGlwCi0KLSAgICAgICMKLSAgICAgICMgSXRlcmF0ZSBhY3Jvc3MgZWFjaCBsaW5lIGFuZCBwdWxsIG91dCByZWxldmFudCBwcm9jZWR1cmVzCi0gICAgICAjCi0KLSAgICAgIHNldCBsaW5lcyAiIgotICAgICAgc2V0IGkgMAotICAgICAgd2hpbGUgeyRpIDwgJGxlbmd0aH0gewotICAgICAgICAgc2V0IGxpbmUgW3JlZ3N1YiAicHV0cyIgJHV0aWxzX2xpbmVzKCRpKSAicHV0cyJdCi0gICAgICAgICBmb3JlYWNoIHByb2MgJHZhcnMocmVxdWlyZWRfcHJvY3MpIHsKLSAgICAgICAgICAgIGlmIHtbcmVnZXhwICJwcm9jICRwcm9jIiAkbGluZV0gPiAwfSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgbGluZXMgIiAkbGluZVxuIgotICAgICAgICAgICAgICAgaW5jciBpCi0gICAgICAgICAgICAgICB3aGlsZSB7JGkgPCAkbGVuZ3RofSB7Ci0gICAgICAgICAgICAgICAgICBzZXQgbGluZSAkdXRpbHNfbGluZXMoJGkpCi0gICAgICAgICAgICAgICAgICBpZiB7W3JlZ2V4cCAicHJvYyAiICRsaW5lXSA+IDB9IHsKLSAgICAgICAgICAgICAgICAgICAgIGluY3IgaSAtMQotICAgICAgICAgICAgICAgICAgICAgYnJlYWsKLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIGlmIHshW3JlZ2V4cCAiXiMiIFtzdHJpbmcgdHJpbWxlZnQgJGxpbmVdIF0gJiYgKCRpICE9IFtleHByICRsZW5ndGgtMV0pfSB7Ci0gICAgICAgICAgICAgICAgICAgICBhcHBlbmQgbGluZXMgIiRsaW5lXG4iCi0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICBpbmNyIGkKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIGJyZWFrCi0gICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0gICAgICAgICBpbmNyIGkKLSAgICAgIH0KLQotICAgICAgc2V0IGxpbmVzIFtzdHJpbmcgdHJpbXJpZ2h0ICRsaW5lc10KLSAgICAgIHJldHVybiAiJGxpbmVzXG4iCi0gICB9Ci0KLSAgIHByb2Mgbm9ybWFsaXplX2ZpbGVzIHt9IHsKLQotICAgICAgZ2xvYmFsIHZhcnMKLSAgICAgIGdsb2JhbCBlcnJvcnMKLQotICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKG5vcm1hbGl6ZV9maWxlcyldICYmICEkdmFycyhub3JtYWxpemVfZmlsZXMpfSB7Ci0gICAgICAgICByZXR1cm4KLSAgICAgIH0KLQotICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKHZpZXdfZGVmaW5pdGlvbl90Y2wpXX0gewotICAgICAgICAgc2V0IG1tbWNfZmlsZSBbZmlsZSBub3JtYWxpemUgJHZhcnModmlld19kZWZpbml0aW9uX3RjbCldCi0gICAgICB9IGVsc2UgewotICAgICAgICAgc2V0IG1tbWNfZmlsZSBbZmlsZSBub3JtYWxpemUgJHZhcnMoc2NyaXB0X2Rpcikvdmlld19kZWZpbml0aW9uLnRjbF0KLSAgICAgIH0KLSAgICAgIHNldCB2YXJzKG1tbWNfZmlsZSkgJG1tbWNfZmlsZQotCi0gICAgICBmb3JlYWNoIGZpbGVfdmFyIFtsaXN0IGNwZl9maWxlIGRlZl9maWxlcyBuZXRsaXN0IGN0c19zcGVjIGxlZl9maWxlcyBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgZ2RzX2ZpbGVzIGFjdGl2aXR5X2ZpbGUgaWxtX25vbl9zZGNfZmlsZSBdIHsKLSAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkZmlsZV92YXIpXX0gewotICAgICAgICAgICAgc2V0IHRlbXAgW2xpc3RdCi0gICAgICAgICAgICBmb3JlYWNoIGZpbGUgJHZhcnMoJGZpbGVfdmFyKSB7ICAKLSAgICAgICAgICAgICAgIGxhcHBlbmQgdGVtcCBbZmlsZSBub3JtYWxpemUgJGZpbGVdCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBzZXQgdmFycygkZmlsZV92YXIpICR0ZW1wCi0gICAgICAgICB9Ci0gICAgICB9Ci0gICB9Ci0KLSAgIHByb2Mgbm9ybWFsaXplX2NvbnN0cmFpbnRzIHt9IHsKLQotICAgICAgZ2xvYmFsIHZhcnMKLQotICAgICAgc2V0IGN3ZCBbcHdkXQotICAgICAgY2QgJHZhcnMoY3dkKQotCi0gICAgICBmb3JlYWNoIG1vZGUgJHZhcnMoY29uc3RyYWludF9tb2RlcykgewotICAgICAgICAgZm9yZWFjaCB2YXIgInByZV9jdHNfc2RjIGluY3JfY3RzX3NkYyBwb3N0X2N0c19zZGMgcHJlX2N0c19pbG1fc2RjIiB7Ci0gICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJG1vZGUsJHZhcildfSB7Ci0gICAgICAgICAgICAgICAgICBzZXQgdGVtcCBbbGlzdF0KLSAgICAgICAgICAgICAgIGZvcmVhY2ggZmlsZSAkdmFycygkbW9kZSwkdmFyKSB7Ci0gICAgICAgICAgICAgICAgICBsYXBwZW5kIHRlbXAgW2ZpbGUgbm9ybWFsaXplICRmaWxlXQotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgc2V0IHZhcnMoJG1vZGUsJHZhcikgJHRlbXAKLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0KLSAgICAgIH0KLSAgICAgIGNkICRjd2QKLSAgIH0KLQotICAgcHJvYyBkZW5vcm1hbGl6ZV9maWxlcyB7fSB7Ci0gICAKLSAgICAgIGdsb2JhbCB2YXJzCi0gICAgICBnbG9iYWwgdHZhcnMKLSAgIAotICAgICAgZm9yZWFjaCB2YXIgW2FycmF5IG5hbWVzIHZhcnNdIHsKLSAgICAgICAgIGlmIHsoJHZhciAhPSAic2V0dXBfcGF0aCIpICYmICgkdmFyICE9ICJzY3JpcHRfZGlyIikgJiYgKCR2YXIgIT0gInNjcmlwdF9wYXRoIikgJiYgKCR2YXIgPT0gImV4ZWN1dGVfc3RyaW5nIil9IHsKLSAgICAgICAgICAgIHNldCB0dmFycygkdmFyKSAkdmFycygkdmFyKQotICAgICAgICAgfQotICAgICAgfQotCi0jICAgICAgc2V0IG9wIFtvcGVuIC5zZXR1cC5mZi50Y2wgd10KLSAgICAgIGNhdGNoIHt1bnNldCBwYXRoX2FycmF5fQotICAgICAgc2V0IHBhdGhfbGlzdCBbbGlzdF0KLSAgICAgIHNldCBwYXRoX3ZhcnMgW2xpc3RdCi0gICAgICBmb3JlYWNoIHZhciBbYXJyYXkgbmFtZXMgdHZhcnNdIHsKLSAgICAgICAgIGlmIFtmaWxlIGlzZGlyZWN0b3J5ICR0dmFycygkdmFyKV0gewotICAgICAgICAgICAgc2V0IHBhdGhfYXJyYXkoJHR2YXJzKCR2YXIpKSAkdmFyCi0gICAgICAgICAgICBsYXBwZW5kIHBhdGhfdmFycyAkdmFyCi0gICAgICAgICAgICBsYXBwZW5kIHBhdGhfbGlzdCAkdHZhcnMoJHZhcikgIAotICAgICAgICAgfQotICAgICAgfQotICAgICAgCi0gICAgICBzZXQgc29ydGVkX3BhdGhfbGlzdCBbbHNvcnQgLWRlY3JlYXNpbmcgJHBhdGhfbGlzdF0KLSMgICAgICBwdXRzICItPiBGb3VuZCBbbGxlbmd0aCAkc29ydGVkX3BhdGhfbGlzdF0iCi0gICAgICBmb3JlYWNoIHBhdGggJHNvcnRlZF9wYXRoX2xpc3QgewotIyAgICAgICAgIHB1dHMgIiRwYXRoIC0+ICRwYXRoX2FycmF5KCRwYXRoKSAoW3N0cmluZyBsZW5ndGggJHBhdGhdKSIKLSMgICAgICAgICBwdXRzICRvcCAic2V0IHZhcnMoJHBhdGhfYXJyYXkoJHBhdGgpKSAkcGF0aCIKLSAgICAgIH0KLSAgICAgIAotICAgICAgZm9yZWFjaCB2YXIgW2FycmF5IG5hbWVzIHR2YXJzXSB7Ci0gICAgICAgICBzZXQgZm91bmQgMAotICAgICAgICAgZm9yZWFjaCBwYXRoICRzb3J0ZWRfcGF0aF9saXN0IHsKLSAgICAgICAgICAgICBpZiB7KCR2YXIgPT0gJHBhdGhfYXJyYXkoJHBhdGgpKSB8fCAoW3N0cmluZyBmaXJzdCAiXFsiICAkdmFyXSAhPSAtMSl9IHsKLSAgICAgICAgICAgICAgICBicmVhawotICAgICAgICAgICAgIH0KLSAgICAgICMgICAgICBwdXRzICRvcCAiW2Zvcm1hdCAicmVnc3ViIC1hbGwgXCIlc1wiIFwiJXNcIiBcXCQlcyIgJHBhdGggW2pvaW4gJHR2YXJzKCR2YXIpXSAkcGF0aF9hcnJheSgkcGF0aCkgdGVtcF0iCi0gICAgICAgICAgICBpZiB7W2NhdGNoIHtzZXQgY29tbWFuZCBbZm9ybWF0ICJyZWdzdWIgLWFsbCBcIiVzXCIgXCIlc1wiIFxcXCR2YXJzKCVzKSB0ZW1wIiAkcGF0aCBbam9pbiAkdHZhcnMoJHZhcildICRwYXRoX2FycmF5KCRwYXRoKV19XX0gewotICAgICAgICAgICAgICAgYnJlYWsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHNldCBmb28gW2V2YWwgJGNvbW1hbmRdCi0gICAgICAgICAgICBpZiB7JGZvbyA+IDB9IHsKLSMgICAgICAgICAgICAgICBwdXRzICRvcCAic2V0IHZhcnMoJHZhcikgXCJbam9pbiAkdGVtcF1cIiIKLSAgICAgICAgICAgICAgIGlmIHtbbGxlbmd0aCAkdGVtcF0gPiAxfSB7Ci0gICAgICAgICAgICAgICAgICBzZXQgdmFycygkdmFyKSBbam9pbiAkdGVtcF0KLSAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICBzZXQgdmFycygkdmFyKSAkdGVtcAotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgc2V0IGZvdW5kIDEKLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0KLSMgICAgICAgICBpZiB7ISRmb3VuZH0gewotIyAgICAgICAgICAgIHB1dHMgJG9wICJzZXQgdmFycygkdmFyKSBcIltqb2luICR2YXJzKCR2YXIpXVwiIgotIyAgICAgICAgIH0KLSAgICAgIH0KLSMgICAgICBmb3JlYWNoIHBhdGggJHNvcnRlZF9wYXRoX2xpc3QgewotIyAgICAgICAgIHNldCB2YXJzKCRwYXRoX2FycmF5KCRwYXRoKSkgJHBhdGgKLSMgICAgICB9Ci0jICAgICAgY2xvc2UgJG9wCi0jICAgICAgc291cmNlIC5zZXR1cC5mZi50Y2wgCi0gICB9Ci0KLQotICAgcHJvYyBnZW5fY2hlY2sge30gewotCi0gICAgICBnbG9iYWwgdmFycwotICAgICAgZ2xvYmFsIGVycm9ycwotCi0gICAgICBzZXQgb3AgW29wZW4gJHZhcnMoc2NyaXB0X2RpcikvY2hlY2tfcW9yLnRjbCB3XQotCi0gICAgICBwdXRzICRvcCAiIyFbbGluZGV4ICR2YXJzKGV4ZWN1dGVfc3RyaW5nKSAwXSIKLSAgICAgIAotICAgICAgcHV0cyAkb3AgImlmIHshXFtsbGVuZ3RoIFwkYXJndlxdfSB7IgotICAgICAgcHV0cyAkb3AgIiAgIHB1dHMgXCI8RkY+IEVSUk9SOiBNSVNTSU5HIFFPUiBSRVNVTFQgRklMRSBOQU1FXCIiCi0gICAgICBwdXRzICRvcCAiICAgZXhpdCAtMSIKLSAgICAgIHB1dHMgJG9wICJ9IgotICAgICAgCi0gICAgICBwdXRzICRvcCAiZm9yZWFjaCBuYW1lIFwkYXJndiB7IgotICAgICAgcHV0cyAkb3AgIiAgIGlmIHshXFtmaWxlIGV4aXN0cyBcJG5hbWVcXX0geyIKLSAgICAgIHB1dHMgJG9wICIgICAgICBwdXRzIFwiPEZGPiBFUlJPUjogUU9SIFJFU1VMVCBGSUxFIE1JU1NJTkcgKFwkbmFtZSlcIiIKLSAgICAgIHB1dHMgJG9wICIgICAgICBleGl0IC0xIgotICAgICAgcHV0cyAkb3AgIiAgIH0iCi0gICAgICAKLSAgICAgIHB1dHMgJG9wICIgICBmaWxlIHN0YXQgXCRuYW1lIHFvcl9zdGF0IgotICAgICAgcHV0cyAkb3AgIiAgIGlmIHshXCRxb3Jfc3RhdChzaXplKX0geyIKLSAgICAgIHB1dHMgJG9wICIgICAgICBjb250aW51ZSIKLSAgICAgIHB1dHMgJG9wICIgICB9IgotICAgICAgcHV0cyAkb3AgIiAgIHNldCBxb3JfZmlsZSBcW29wZW4gXCRuYW1lIHJcXSIKLSAgICAgIHB1dHMgJG9wICIgICBnZXRzIFwkcW9yX2ZpbGUgcW9yX3Jlc3VsdCIKLSAgICAgIHB1dHMgJG9wICIgICBpZiB7XFtleHByIFwkcW9yX3Jlc3VsdFxdfSB7IgotICAgICAgcHV0cyAkb3AgIiAgICAgIGV4aXQgLTEiCi0gICAgICBwdXRzICRvcCAiICAgfSIKLSAgICAgIHB1dHMgJG9wICJ9IgotICAgICAgCi0gICAgICBwdXRzICRvcCAiZXhpdCAwIgotCi0gICAgICBjbG9zZSAkb3AKLQotICAgICAgZXhlYyBjaG1vZCAreCAgJHZhcnMoc2NyaXB0X2RpcikvY2hlY2tfcW9yLnRjbAotICAgfQotCi0gICBwcm9jIHNvdXJjZV9jb25maWdfZmlsZXMge30gewotCi0gICAgICBnbG9iYWwgdmFycwotICAgICAgZ2xvYmFsIGVudgotICAgICAgZ2xvYmFsIHVzZXJfdmFycwotICAgICAgZ2xvYmFsIGRlc2MKLSAgICAgIGdsb2JhbCBlcnJvcnMKLQotICAgICAgcHV0cyAiPEZGPiBMT0FESU5HIENPTkZJR1VSQVRJT04gRklMRVM6IgotICAgICAgc2V0IHZhcnMoY29uZmlnX2ZpbGVzKSBbbGlzdF0KLSAgICAgIGZvcmVhY2ggZmlsZSAic2V0dXAudGNsIGlubm92dXNfY29uZmlnLnRjbCBscF9jb25maWcudGNsIGdlbnVzX2NvbmZpZy50Y2wiIHsKLSAgICAgICAgIHNldCB0ZW1wIFtyZWdzdWIgIlxcLiIgJGZpbGUgIl8iXQotICAgICAgICAgc2V0IHZhcnMoJHRlbXApIFtsaXN0XSAKLSAgICAgICAgIGlmIHtbZmlsZSBleGlzdHMgJHZhcnMoc2V0dXBfcGF0aCkvJGZpbGVdfSB7Ci0gICAgICAgICAgICBGRjo6c291cmNlX2ZpbGUgJHZhcnMoc2V0dXBfcGF0aCkvJGZpbGUKLSAgICAgICAgICAgIGxhcHBlbmQgdmFycygkdGVtcCkgJHZhcnMoc2V0dXBfcGF0aCkvJGZpbGUKLSAgICAgICAgICAgIGxhcHBlbmQgdmFycyhjb25maWdfZmlsZXMpICR2YXJzKHNldHVwX3BhdGgpLyRmaWxlCi0gICAgICAgICB9Ci0gICAgICAgICBpZiB7KCR2YXJzKHNldHVwX3BhdGgpICE9ICIuIikgJiYgW2ZpbGUgZXhpc3RzICRmaWxlXX0gewotICAgICAgICAgICAgRkY6OnNvdXJjZV9maWxlICRmaWxlCi0gICAgICAgICAgICBsYXBwZW5kIHZhcnMoJHRlbXApICRmaWxlCi0gICAgICAgICAgICBsYXBwZW5kIHZhcnMoY29uZmlnX2ZpbGVzKSAkZmlsZQotICAgICAgICAgfQotICAgICAgICAgaWYgeyR2YXJzKCR0ZW1wKSAhPSAiIn0gewotICAgICAgICAgICAgcHV0cyAiPEZGPiAgICAkdGVtcCAtPiAkdmFycygkdGVtcCkiCi0gICAgICAgICB9Ci0gICAgICB9Ci0KLSAgICAgIGZvcmVhY2ggdmFyIFthcnJheSBuYW1lcyB2YXJzXSB7Ci0gICAgICAgICBzZXQgdXNlcl92YXJzKCR2YXIpICR2YXJzKCR2YXIpCi0jICAgICAgICAgcHV0cyAkdmFyCi0gICAgICB9Ci0KLSAgICAgIGlmIHtbRkY6OmlzX2xwX2Zsb3ddfSB7Ci0gICAgICAgICBzZXQgdmFycyhyZXF1aXJlZF9wcm9jcykgXAotICAgICAgICAgICAgInNvdXJjZV9maWxlIHN5c3RlbV9pbmZvIGdldF9jbG9ja19wb3J0cyBnZXRfcG93ZXJfZG9tYWlucyBtb2RpZnlfcG93ZXJfZG9tYWlucyBhZGRfcG93ZXJfc3dpdGNoZXMgXAotICAgICAgICAgICAgIHJvdXRlX3NlY29uZGFyeV9wZ19uZXRzIGluc2VydF93ZWxsdGFwc19lbmRjYXBzIHJlcG9ydF90aW1lIGJ1ZmZlcl9hbHdheXNfb25fbmV0cyBcCi0gICAgICAgICAgICAgc2F2ZV9yZXN1bHRzIGxvYWRfYXBwbGV0IGdldF90b29sIGxvYWRfcGF0aF9ncm91cHMiCi0gICAgICB9IGVsc2UgewotICAgICAgICAgc2V0IHZhcnMocmVxdWlyZWRfcHJvY3MpIFwKLSAgICAgICAgICAgICJzb3VyY2VfZmlsZSBzeXN0ZW1faW5mbyBnZXRfY2xvY2tfcG9ydHMgcmVwb3J0X3RpbWUgaW5zZXJ0X3dlbGx0YXBzX2VuZGNhcHMgXAotICAgICAgICAgICAgIHNhdmVfcmVzdWx0cyBsb2FkX2FwcGxldCBnZXRfdG9vbCBsb2FkX3BhdGhfZ3JvdXBzICIKLSAgICAgIH0KLSAgIH0KLQotICAgcHJvYyBleGVjdXRlX2Zsb3cge3N0ZXAge2Zvcm1hdCAxfSB7YWJvcnQgIiJ9fSB7Ci0KLSAgICAgICMKLSAgICAgICMgVGhpcyBpcyB0aGUgZW50cnkgcG9pbnQsIHJlc3BvbnNpYmxlIGZvciBjYWxsaW5nIGZ1bmN0aW9ucyBhbmQKLSAgICAgICMgYWdncmVnYXRpbmcgcmVzdWx0cyBmb3IgZWFjaCBzdGVwIGluIHRoZSBmbG93Ci0gICAgICAjCi0gICAgICBnbG9iYWwgdmFycwotICAgICAgZ2xvYmFsIGRhcmdzCi0gICAgICBnbG9iYWwgZmFyZ3MKLSAgICAgIGdsb2JhbCBzdmFycwotICAgICAgZ2xvYmFsIGVudgotICAgICAgZ2xvYmFsIGVycm9ycwotCi0gICAgICBpZiB7IVtpbmZvIGV4aXN0cyB2YXJzKHNvdXJjZWQpXX0geyBzZXQgdmFycyhzb3VyY2VkKSAwIH0KLSMgICAgICBpZiB7IVtpbmZvIGV4aXN0cyB2YXJzKHNpbmdsZSldfSB7IHNldCB2YXJzKHNpbmdsZSkgMCB9Ci0gICAgICBpZiB7IVtpbmZvIGV4aXN0cyB2YXJzKGNhdGNoX2Vycm9ycyldfSB7IHNldCB2YXJzKGNhdGNoX2Vycm9ycykgMCB9Ci0gICAgICBpZiB7IVtpbmZvIGV4aXN0cyB2YXJzKHN0b3Bfc3RlcCldfSB7IHNldCB2YXJzKHN0b3Bfc3RlcCkgInNpZ25vZmYiIH0KLSAgICAgIGlmIHshW2luZm8gZXhpc3RzIHZhcnMoaW5pdGlhbGl6ZWQpXX0geyBzZXQgdmFycyhpbml0aWFsaXplZCkgMCB9Ci0gICAgICBpZiB7IVtpbmZvIGV4aXN0cyB2YXJzKGxvYWRlZCldfSB7IHNldCB2YXJzKGxvYWRlZCkgMCB9Ci0gICAgICBpZiB7IVtpbmZvIGV4aXN0cyB2YXJzKGJzdGVwcyldfSB7IHNldCB2YXJzKGJzdGVwcykgW2xpc3RdIH0KLSAgICAgIGlmIHshW2luZm8gZXhpc3RzIGVudihWUEFUSCldfSB7IHNldCBlbnYoVlBBVEgpIG1ha2UgfQotCi0gICAgICAjCi0gICAgICAjIElmIG5vIHN0ZXBzIGFyZSBkZWZpbmVkLCBzZXQgdGhlIHN0ZXBzIHRvIGV4ZWN1dGUgYmFzZWQgdXBvbiB0aGUKLSAgICAgICMgbW9kZSB0aGF0IHRoZSBzeXN0ZW0gaXMgcnVubmluZyBpbi4gIFdlIG5lZWQgdG8gZG8gdGhpcyBiZWNhdXNlIHRoZQotICAgICAgIyBoaWVyYXJjaGljYWwgZmxvdyB3aWxsIHVuc2V0IHRoZSB2YXJzKCkgYXJyYXkgYmVmb3JlIHJlY3Vyc2l2ZWx5Ci0gICAgICAjIGNhbGxpbmcgdGhpcyByb3V0aW5lLgotICAgICAgIwotCi0gICAgICBpZiB7IVtpbmZvIGV4aXN0cyB2YXJzKHN0ZXBzKV19IHsKLSAgICAgICAgICMgQkNMOiBNb3ZlZCB0aGUgZm9sbG93aW5nIGlmIC8gZWxzZSB1cCAoaXQgbXVzdCBhbHdheXMgZXhlY3V0ZSkKLSAgICAgICAgIGlmIHshW2luZm8gZXhpc3RzIHZhcnMobW9kZSldfSB7IAotICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyBmYXJncyhtb2RlKV19IHsKLSAgICAgICAgICAgICAgIHNldCB2YXJzKG1vZGUpICRmYXJncyhtb2RlKQotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIHNldCB2YXJzKG1vZGUpICRkYXJncyhtb2RlKQotICAgICAgICAgICAgfQotICAgICAgICAgfQotIyAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhoaWVyKV0gJiYgISR2YXJzKGhpZXIpfSB7Ci0jICAgICAgICAgICAgRkY6OnNldF9zdGVwcyAkdmFycyhtb2RlKSAkZm9ybWF0Ci0jICAgICAgICAgICAgdW5zZXQgdmFycyhtb2RlKQotIyAgICAgICAgIH0gZWxzZSB7Ci0jICAgICAgICAgICAgRkY6OnNldF9zdGVwcyAkdmFycyhtb2RlKSAkZm9ybWF0Ci0jICAgICAgICAgfQotICAgICAgfQotCi0gICAgICAjCi0gICAgICAjIFNldCB0aGUgcHJvY2VkdXJlcyB0aGF0IHdlIHdpbGwgbmVlZCB0byBpbmNsdWRlIHdpdGhpbiBlYWNoIGZpbGUgdGhhdAotICAgICAgIyB3ZSBjcmVhdGUgdG8gcnVuIGEgc3RlcC4KLSAgICAgICMKLQotIyAgICAgIHNldCB2YXJzKHJlcXVpcmVkX3Byb2NzKSBcCi0jICAgICAgICAgInNvdXJjZV9wbHVnIGdldF9jbG9ja19wb3J0cyBnZXRfcG93ZXJfZG9tYWlucyByZXBvcnRfdGltZSIKLQotICAgICAgIwotICAgICAgIyBNYWtlIHN1cmUgdGhhdCB0aGUgdmFyaWFibGVzIGFyZSBhY3R1YWxseSBzb3VyY2VkIGZyb20gdGhlCi0gICAgICAjIGNvbmZpZ3VyYXRpb24gZmlsZXMKLSAgICAgICMKLQotICAgICAgaWYgeyEkdmFycyhzb3VyY2VkKSAmJiAoJHN0ZXAgIT0gInNvdXJjZSIpfSB7Ci0gICAgICAgICBleGVjdXRlX2Zsb3cgInNvdXJjZSIgJGZvcm1hdCAkYWJvcnQKLSAgICAgIH0KLQotICAgICAgaWYgeyR2YXJzKHNvdXJjZWQpfSB7IAotICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGhpZXIpXSAmJiAhJHZhcnMoaGllcil9IHsKLSAgICAgICAgICAgIEZGOjpzZXRfc3RlcHMgJHZhcnMobW9kZSkgJGZvcm1hdAotICAgICAgICAgICAgdW5zZXQgdmFycyhtb2RlKQotICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIEZGOjpzZXRfc3RlcHMgJHZhcnMobW9kZSkgJGZvcm1hdAotICAgICAgICAgfQotICAgICAgfQotICAgICAgIwotICAgICAgIyBFeGVjdXRlIHRoZSBhcHByb3ByaWF0ZSBzdGVwIHBlciB0aGUgY29tbWFuZAotICAgICAgIwotCi0gICAgICBzZXQgYWN0aW9uICIiCi0gICAgICBzd2l0Y2ggLS0gJHN0ZXAgewotICAgICAgICAgInNvdXJjZSIgewotICAgICAgICAgICAgaWYgeyEkdmFycyhzb3VyY2VkKX0gewotICAgICAgICAgICAgICAgRkZfTk9WVVM6OnNvdXJjZV9jb25maWdfZmlsZXMKLSAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgZmFyZ3ModmVyc2lvbildfSB7Ci0gICAgICAgICAgICAgICAgICBpZiB7IVtyZWdleHAgIl4xMCIgJGZhcmdzKHZlcnNpb24pXSAmJiAhW3JlZ2V4cCAiXjkiICRmYXJncyh2ZXJzaW9uKV19IHsKLSAgICAgICAgICAgICAgICAgICAgIEZGX05PVlVTOjpkZW5vcm1hbGl6ZV9maWxlcwotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgfSBlbHNlaWYge1tpbmZvIGV4aXN0cyBkYXJncyh2ZXJzaW9uKV19IHsKLSAgICAgICAgICAgICAgICAgIGlmIHshW3JlZ2V4cCAiXjEwIiAkZGFyZ3ModmVyc2lvbildICYmICFbcmVnZXhwICJeOSIgJGRhcmdzKHZlcnNpb24pXX0gewotICAgICAgICAgICAgICAgICAgICAgRkZfTk9WVVM6OmRlbm9ybWFsaXplX2ZpbGVzCi0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICBmb3JlYWNoIGFyZyBbam9pbiAkdmFycyhhcmdfbGlzdCldIHsKLSAgICAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkYXJnKV19IHsKLSAgICAgICAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgZmFyZ3MoJGFyZyldfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiB7JHZhcnMoJGFyZykgIT0gJGZhcmdzKCRhcmcpfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICBwdXRzICI8RkY+IFdBUk5JTkc6IE92ZXJ3cml0aW5nIHZhcnMoJGFyZykgZnJvbSAkdmFycygkYXJnKSB0byAkZmFyZ3MoJGFyZykgLi4uIgotICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgc2V0IHZhcnMoJGFyZykgJGZhcmdzKCRhcmcpCi0gICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICAgIyBPbmx5IHNldCB0aGUgZmFyZyBpZiBpdCB3YXNuJ3Qgc2V0IGluIGEgY29uZmlnIGZpbGUKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIHshW2luZm8gZXhpc3RzIHZhcnMoJGFyZyldfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgIHNldCB2YXJzKCRhcmcpICRkYXJncygkYXJnKQotICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgZmFyZ3MoJGFyZyldfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBzZXQgdmFycygkYXJnKSAkZmFyZ3MoJGFyZykKLSAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBzZXQgdmFycygkYXJnKSAkZGFyZ3MoJGFyZykKLSAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIH0gCi0gICAgICAgICAgICAgICB9IAotICAgICAgICAgICAgICAgRkZfTk9WVVM6OnNlZWRfdmFyaWFibGVzCi0jICAgICAgICAgICAgICAgRkZfTk9WVVM6OmNoZWNrX3NldHVwCi0jICAgICAgICAgICAgICAgRkZfTk9WVVM6Om5vcm1hbGl6ZV9maWxlcyAKLSAgICAgICAgICAgICAgIHNldCB2YXJzKHNvdXJjZWQpIHRydWUKLSAgICAgICAgICAgICAgIHNldCB2YXJzKHRvcF9jZWxsKSAkdmFycyhkZXNpZ24pCi0gICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0gICAgICAgICAic291cmNlX29ubHkiIHsKLSAgICAgICAgICAgICMgQkNMOiBBZGRlZCB0aGlzIGluIHNpbmNlIGkgd2FudCB0byBzb3VyY2UgdGhlIHZhcmlhYmxlcyB3L291dCBjYWxsaW5nIGNoZWNrX3NldHVwCi0gICAgICAgICAgICBpZiB7ISR2YXJzKHNvdXJjZWQpfSB7Ci0gICAgICAgICAgICAgICBGRl9OT1ZVUzo6c291cmNlX2NvbmZpZ19maWxlcwotICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyBmYXJncyh2ZXJzaW9uKV19IHsKLSAgICAgICAgICAgICAgICAgIGlmIHshW3JlZ2V4cCAiXjEwIiAkZmFyZ3ModmVyc2lvbildICYmICFbcmVnZXhwICJeOSIgJGZhcmdzKHZlcnNpb24pXX0gewotICAgICAgICAgICAgICAgICAgICAgRkZfTk9WVVM6OmRlbm9ybWFsaXplX2ZpbGVzCi0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICB9IGVsc2VpZiB7W2luZm8gZXhpc3RzIGRhcmdzKHZlcnNpb24pXX0gewotICAgICAgICAgICAgICAgICAgaWYgeyFbcmVnZXhwICJeMTAiICRkYXJncyh2ZXJzaW9uKV0gJiYgIVtyZWdleHAgIl45IiAkZGFyZ3ModmVyc2lvbildfSB7Ci0gICAgICAgICAgICAgICAgICAgICBGRl9OT1ZVUzo6ZGVub3JtYWxpemVfZmlsZXMKLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIGZvcmVhY2ggYXJnIFtqb2luICR2YXJzKGFyZ19saXN0KV0gewotICAgICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCRhcmcpXX0gewotICAgICAgICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyBmYXJncygkYXJnKV19IHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIHskdmFycygkYXJnKSAhPSAkZmFyZ3MoJGFyZyl9IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1dHMgIjxGRj4gV0FSTklORzogT3ZlcndyaXRpbmcgdmFycygkYXJnKSBmcm9tICR2YXJzKCRhcmcpIHRvICRmYXJncygkYXJnKSAuLi4iCi0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICBzZXQgdmFycygkYXJnKSAkZmFyZ3MoJGFyZykKLSAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAjIE9ubHkgc2V0IHRoZSBmYXJnIGlmIGl0IHdhc24ndCBzZXQgaW4gYSBjb25maWcgZmlsZQotICAgICAgICAgICAgICAgICAgICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycygkYXJnKV19IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0IHZhcnMoJGFyZykgJGRhcmdzKCRhcmcpCi0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyBmYXJncygkYXJnKV19IHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHNldCB2YXJzKCRhcmcpICRmYXJncygkYXJnKQotICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHNldCB2YXJzKCRhcmcpICRkYXJncygkYXJnKQotICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgfSAKLSAgICAgICAgICAgICAgIH0gCi0gICAgICAgICAgICAgICBGRl9OT1ZVUzo6c2VlZF92YXJpYWJsZXMKLSMgICAgICAgICAgICAgICBGRl9OT1ZVUzo6Y2hlY2tfc2V0dXAKLSMgICAgICAgICAgICAgICBGRl9OT1ZVUzo6bm9ybWFsaXplX2ZpbGVzIAotIyAgICAgICAgICAgICAgIHNldCB2YXJzKHNvdXJjZWQpIHRydWUKLSAgICAgICAgICAgICAgIHNldCB2YXJzKHRvcF9jZWxsKSAkdmFycyhkZXNpZ24pCi0gICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0gICAgICAgICAiY2hlY2siIHsKLSAgICAgICAgICAgIGlmIHskYWJvcnQgPT0gIiJ9IHsKLSAgICAgICAgICAgICAgIHNldCBhYm9ydCAkdmFycyhhYm9ydCkKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHNldCBzYXZlICR2YXJzKGFib3J0KQotICAgICAgICAgICAgc2V0IHZhcnMoYWJvcnQpICRhYm9ydAotICAgICAgICAgICAgc2V0IHZhcnMoYWJvcnQpICRzYXZlCi0gICAgICAgICAgICBpZiB7IVtpbmZvIGV4aXN0cyB2YXJzKG1vZGUpXX0gewotICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyBmYXJncyhtb2RlKV19IHsKLSAgICAgICAgICAgICAgICAgIHNldCB2YXJzKG1vZGUpICRmYXJncyhtb2RlKQotICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgIHNldCB2YXJzKG1vZGUpICRkYXJncyhtb2RlKQotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgeyR2YXJzKG1vZGUpID09ICJoaWVyIn0gewotICAgICAgICAgICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycyhwYXJ0aXRpb25fbGlzdCldfSB7Ci0gICAgICAgICAgICAgICAgICBwdXRzICI8RkY+IEZMT1cgTU9ERSAkdmFycyhtb2RlKSBTRUxFQ1RFRCBCVVQgXCR2YXJzKHBhcnRpdGlvbl9saXN0KSBOT1QgREVGSU5FRCIKLSAgICAgICAgICAgICAgICAgIGV4aXQgOTkKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIGlmIHtbZmlsZSB0YWlsIFtmaWxlIGRpcm5hbWUgW3B3ZF1dXSAhPSAiJHZhcnMocGFydGl0aW9uX2RpcikifSB7Ci0gICAgICAgICAgICAgICAgICBGRl9OT1ZVUzo6Y2hlY2tfc2V0dXAKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICBGRl9OT1ZVUzo6Y2hlY2tfc2V0dXAKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgRkY6OnByb2Nlc3NfZmlsZV9saXN0cwotICAgICAgICAgfQotCi0gICAgICAgICAiYWxsIiB7Ci0KLSAgICAgICAgICAgICMKLSAgICAgICAgICAgICMgV2UgaGF2ZSBhbHJlYWR5IHNvdXJjZWQgaW4gYWxsIG9mIHRoZSBmaWxlcy4gIE5vdyBleGVjdXRlIHRoZQotICAgICAgICAgICAgIyByZXN0IG9mIHRoZSBzdGVwcywgaW5jbHVkaW5nIGNoZWNrCi0gICAgICAgICAgICAjCi0KLSAgICAgICAgICAgIHB1dHMgIi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iCi0gICAgICAgICAgICBwdXRzICI8RkY+IEdlbmVyYXRpbmcgc2NyaXB0cyBmb3IgJHZhcnMoZGVzaWduKSIKLSAgICAgICAgICAgIHB1dHMgIi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iCi0gICAgICAgICAgICBleGVjdXRlX2Zsb3cgY2hlY2sgJGZvcm1hdCAkYWJvcnQKLQotICAgICAgICAgICAgc2V0IHZhcnMoc3RlcHMpIFtqb2luICR2YXJzKHN0ZXBzKV0KLSAgICAgICAgICAgIHNldCB2YXJzKGFsbCkgdHJ1ZQotICAgICAgICAgICAgc2V0IGNvbW1hbmRzICIiCi0KLSAgICAgICAgICAgIGlmIHskdmFycyhtb2RlKSA9PSAiaGllciJ9IHsKLSAgICAgICAgICAgICAgIGlmIHtbZmlsZSB0YWlsIFtmaWxlIGRpcm5hbWUgW3B3ZF1dXSA9PSAiJHZhcnMocGFydGl0aW9uX2RpcikifSB7Ci0gICAgICAgICAgICAgICAgICBzZXQgYWxsX3N0ZXBzICR2YXJzKGZzdGVwcykKLSAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICBzZXQgYWxsX3N0ZXBzICR2YXJzKGhzdGVwcykKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBpZiB7ISR2YXJzKGdlbmVyYXRlX2Zsb3dfc3RlcHMpfSB7Ci0gICAgICAgICAgICAgICAgICBmaWxlIG1rZGlyICR2YXJzKHNjcmlwdF9kaXIpL0lOTk9WVVMKLSAgICAgICAgICAgICAgICAgIHNldCBmaHIgW29wZW4gJHZhcnMoc2NyaXB0X3BhdGgpL0lOTk9WVVMvcnVuX2FsbC50Y2wgcl0gCi0gICAgICAgICAgICAgICAgICBzZXQgZmh3IFtvcGVuICR2YXJzKHNjcmlwdF9kaXIpL0lOTk9WVVMvcnVuX2FsbC50Y2wgd10gCi0gICAgICAgICAgICAgICAgICB3aGlsZSB7W2dldHMgJGZociBsaW5lXT49MH0gewotICAgICAgICAgICAgICAgICAgICAgcmVnc3ViICJzb3VyY2UgRkYiICRsaW5lICJzb3VyY2UgJHZhcnMoc2NyaXB0X2RpcikiIGxpbmUKLSAgICAgICAgICAgICAgICAgICAgIHB1dHMgJGZodyAiICAgJGxpbmUiCi0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICBjbG9zZSAkZmhyCi0gICAgICAgICAgICAgICAgICBjbG9zZSAkZmh3Ci0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICBzZXQgYWxsX3N0ZXBzICR2YXJzKHN0ZXBzKQotICAgICAgICAgICAgfQotICAgICAgICAgICAgIwotICAgICAgICAgICAgIyBFeGVjdXRlIGVhY2ggc3RlcCBvZiB0aGUgZmxvdyBhbmQgZ2V0IGEgY29tcG9zaXRlIGxpc3Qgb2YgdGhlCi0gICAgICAgICAgICAjIGFjdHVhbCBzdGVwcyB0aGF0IGhhZCBhY3Rpb25zIGdlbmVyYXRlZCBmb3IgdGhlbS4gIFRoZW4gY3JlYXRlCi0gICAgICAgICAgICAjIGEgTWFrZWZpbGUgZm9yIHRob3NlIHN0ZXBzCi0gICAgICAgICAgICAjCi0gICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMocmNfc3RlcHMpXX0gewotICAgICAgICAgICAgICAgc2V0IGFjdGlvbnMgJHZhcnMocmNfc3RlcHMpCi0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICBzZXQgYWN0aW9ucyBbbGlzdF0KLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgICMgCi0gICAgICAgICAgICBmb3JlYWNoIHN0ZXAgJGFsbF9zdGVwcyB7Ci0gICAgICAgICAgICAgICBzZXQgY29tbWFuZHMgW2V4ZWN1dGVfZmxvdyAkc3RlcCAkZm9ybWF0ICRhYm9ydF0KLSAgICAgICAgICAgICAgIGlmIHskY29tbWFuZHMgIT0gIiJ9IHsKLSAgICAgICAgICAgICAgICAgICBsYXBwZW5kIGFjdGlvbnMgJGNvbW1hbmRzCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICAjc2V0IHZhcnMobWFrZV90b29sX2FyZ3MpICItbm93aW4gLTY0IgotCi0gICAgICAgICAgICBpZiB7KCR2YXJzKHVzZXJfbW9kZSkgPT0gImhpZXIiKSAmJiAoJHZhcnMoaGllcl9mbG93X3R5cGUpID09ICIycGFzcyIpfSB7Ci0gICAgICAgICAgICAgICAjIE9ubHkgZ2VuZXJhdGUgc3RlcHMgdXAgdG8gKGFuZCBpbmNsdWRpbmcpIGN0cyBmb3IgMnBhc3MgZmxvd3MKLSAgICAgICAgICAgICAgICMgR28gYWhlYWQgYW5kIGdlbmVyYXRlIGJvdGggTWFrZWZpbGVzIGFzIHRoZSBhY3Rpb25zIGFyZSBrbm93bgotICAgICAgICAgICAgICAgaWYgeyR2YXJzKGVuYWJsZV9mbGV4aWxtKX0gewotICAgICAgICAgICAgICAgICAgaWYgeyR2YXJzKHBsYWNlX29wdF9kZXNpZ24pfSB7Ci0gICAgICAgICAgICAgICAgICAgICBpZiB7W2ZpbGUgdGFpbCBbcHdkXV0gPT0gJHZhcnModG9wX2NlbGwpfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBzZXQgaW5kZXggW2xzZWFyY2ggJGFjdGlvbnMgInByZWN0cyJdCi0gICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICAgc2V0IGluZGV4IFtsc2VhcmNoICRhY3Rpb25zICJwbGFjZSJdCi0gICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgc2V0IGluZGV4IFtsc2VhcmNoICRhY3Rpb25zICJwcmVjdHMiXQotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgRkY6Omdlbl9tYWtlZmlsZSBbbHJhbmdlICRhY3Rpb25zIFtleHByICRpbmRleCsxXSBlbmRdICR2YXJzKG1vZGUpCi0gICAgICAgICAgICAgICAgICBmaWxlIGNvcHkgLWZvcmNlIE1ha2VmaWxlIE1ha2VmaWxlLnBhc3MyCi0gICAgICAgICAgICAgICAgICBGRjo6Z2VuX21ha2VmaWxlIFtscmFuZ2UgJGFjdGlvbnMgMCAkaW5kZXhdICR2YXJzKG1vZGUpCi0gICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgc2V0IGluZGV4IFtsc2VhcmNoICRhY3Rpb25zICJjdHMiXQotICAgICAgICAgICAgICAgICAgRkY6Omdlbl9tYWtlZmlsZSBbbHJhbmdlICRhY3Rpb25zIFtleHByICRpbmRleCsxXSBlbmRdICR2YXJzKG1vZGUpCi0gICAgICAgICAgICAgICAgICBmaWxlIGNvcHkgLWZvcmNlIE1ha2VmaWxlIE1ha2VmaWxlLnBhc3MyCi0gICAgICAgICAgICAgICAgICBGRjo6Z2VuX21ha2VmaWxlIFtscmFuZ2UgJGFjdGlvbnMgMCAkaW5kZXhdICR2YXJzKG1vZGUpCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgRkY6Omdlbl9tYWtlZmlsZSAkYWN0aW9ucyAkdmFycyhtb2RlKQotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgeyR2YXJzKGVuYWJsZV9xb3JfY2hlY2spfSB7IAotICAgICAgICAgICAgICAgRkZfTk9WVVM6Omdlbl9jaGVjawotICAgICAgICAgICAgfQotICAgICAgICAgICAgZXhlY3V0ZV9mbG93IGRlYnVnICRmb3JtYXQgJGFib3J0Ci0gICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMocnVuX2xlYyldICYmICR2YXJzKHJ1bl9sZWMpfSB7Ci0gICAgICAgICAgICAgICBleGVjdXRlX2Zsb3cgbGVjICRmb3JtYXQgJGFib3J0Ci0gICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0gICAgICAgICAibGVjIiB7Ci0jICAgICAgICAgICAgcHV0cyAiLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIKLSMgICAgICAgICAgICBwdXRzICI8RkY+IEdlbmVyYXRpbmcgc2NyaXB0cyBmb3IgJHZhcnMoZGVzaWduKSIKLSAgICAgICAgICAgIHB1dHMgIi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iCi0gICAgICAgICAgICBpZiB7IVtpbmZvIGV4aXN0cyB2YXJzKG5ldGxpc3QpXX0gewotICAgICAgICAgICAgICAgcHV0cyAiPEZGPiBDYW5ub3QgZ2VuZXJhdGUgJ2xlYycgc3RlcCB3L28gdmVyaWxvZyBuZXRsaXN0IGRlZmluZWQiCi0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgaWYgeyEkdmFycyhnZW5lcmF0ZV9mbG93X3N0ZXBzKX0gewotICAgICAgICAgICAgICAgICAgZmlsZSBta2RpciAkdmFycyhzY3JpcHRfZGlyKS9JTk5PVlVTCi0gICAgICAgICAgICAgICAgICBzZXQgb3AgW29wZW4gJHZhcnMoc2NyaXB0X2RpcikvSU5OT1ZVUy9ydW5fbGVjLnRjbCB3XQotICAgICAgICAgICAgICAgICAgcHV0cyAkb3AgIi8vIgotICAgICAgICAgICAgICAgICAgcHV0cyAkb3AgIi8vIElubm92dXMgRm91bmRhdGlvbiBGbG93IENvZGUgR2VuZXJhdG9yLCBbZXhlYyBkYXRlXSIKLSAgICAgICAgICAgICAgICAgIHB1dHMgJG9wICIvLyIKLSAgICAgICAgICAgICAgICAgIGlmIHskc3RlcCA9PSAibGVjIn0gewotICAgICAgICAgICAgICAgICAgICAgcHV0cyAkb3AgInRjbG1vZGUiCi0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAjcHV0cyAkb3AgImlmIHtcW2ZpbGUgZXhpc3RzIC5mZi50Y2xcXX0geyIKLSAgICAgICAgICAgICAgICAgICNwdXRzICRvcCAiICAgc291cmNlIC5mZi50Y2wiCi0gICAgICAgICAgICAgICAgICAjcHV0cyAkb3AgIn0iCi0gICAgICAgICAgICAgICAgICBzZXQgdmFyc0ZpbGUgW0ZGOjpyZWxQYXRoVG8gW2ZpbGUgbm9ybWFsaXplICR2YXJzKHNjcmlwdF9kaXIpL3ZhcnMudGNsXSBbZmlsZSBub3JtYWxpemUgJHZhcnMocnVuZGlyKV1dCi0gICAgICAgICAgICAgICAgICBwdXRzICRvcCAiaWYge1xbZmlsZSBleGlzdHMgJHZhcnNGaWxlXF19IHsiCi0gICAgICAgICAgICAgICAgICBwdXRzICRvcCAiICAgc291cmNlICR2YXJzRmlsZSIKLSAgICAgICAgICAgICAgICAgIHB1dHMgJG9wICJ9IgotICAgICAgICAgICAgICAgICAgcHV0cyAkb3AgInNvdXJjZSAkdmFycyhzY3JpcHRfZGlyKS9wcm9jcy50Y2wiCi0gICAgICAgICAgICAgICAgICBwdXRzICAiPEZGPiBHZW5lcmF0aW5nIHN0ZXAgJHN0ZXAiCi0gICAgICAgICAgICAgICAgICBzZXQgY29tbWFuZHMgW0ZGX05PVlVTOjpydW5fbGVjXQotICAgICAgICAgICAgICAgICAgcHV0cyAkb3AgW0ZGOjpwcmV0dHlfcHJpbnQgJGNvbW1hbmRzICRmb3JtYXRdCi0gICAgICAgICAgICAgICAgICBjbG9zZSAkb3AKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSMgICAgICAgICAgICBGRjo6Z2VuX21ha2VmaWxlIGxlYyAkdmFycyhtb2RlKQotICAgICAgICAgfQotICAgICAgICAgImRlZmF1bHQiIHsKLQotICAgICAgICAgICAgIwotICAgICAgICAgICAgIyBSdW4gZWFjaCBzdGVwIGVpdGhlciBzaW5ndWFybHkgb3IgcmVjdXJzaXZlbHkKLSAgICAgICAgICAgICMKLSAgICAgICAgICAgICMKLSAgICAgICAgICAgICMgQ3JlYXRlIHRoZSBsaXN0IG9mIGNvbW1hbmRzIHRoYXQgaGFwcGVuIGF0IHRoZSBiZWdpbmluZyBvZgotICAgICAgICAgICAgIyBlYWNoIHNjcmlwdAotICAgICAgICAgICAgIwotCi0gICAgICAgICAgICBpZiB7KFtsc2VhcmNoICR2YXJzKHN0ZXBzKSAkc3RlcF0gPT0gLTEpICYmICgkc3RlcCAhPSAiZGVidWciKX0gewotICAgICAgICAgICAgICAgcHV0cyAgIjxGRj4gRVJST1I6IFVua25vd24gRm91bmRhdGlvbiBGbG93IHN0ZXAgXCIkc3RlcFwiLiIKLSAgICAgICAgICAgICAgIGV4aXQgOTkKLSAgICAgICAgICAgIH0KLQotIyAgICAgICAgICAgIGlmIHsoW2xzZWFyY2ggJHZhcnMoc3RlcHMpICRzdGVwXSA9PSAtMSkgJiYgKCRzdGVwICE9ICJkZWJ1ZyIpfSB7Ci0jICAgICAgICAgICAgICAgcHV0cyAgIjxGRj4gRVJST1I6IFVua25vd24gRm91bmRhdGlvbiBGbG93IHN0ZXAgXCIkc3RlcFwiLiIKLSMgICAgICAgICAgICAgICBleGl0IDk5Ci0jICAgICAgICAgICAgfSBlbHNlIHsKLSMgICAgICAgICAgICAgICBpZiB7KCR2YXJzKGZpeF9ob2xkKSB8fCAoISR2YXJzKGZpeF9ob2xkKSAmJiAhW3JlZ2V4cCAiX2hvbGQiICRzdGVwXSkpICYmCi0jICAgICAgICAgICAgICAgICAgICEoJHZhcnMoc2tpcF9jdHMpICYmICgoJHN0ZXAgPT0gImN0cyIpIHx8IFtyZWdleHAgInBvc3RjdHMiICRzdGVwXSkpfSB7Ci0jICAgICAgICAgICAgICAgICAgcHV0cyAgIjxGRj4gR2VuZXJhdGluZyBzdGVwICRzdGVwIgotIyAgICAgICAgICAgICAgIH0KLSMgICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgICMKLSAgICAgICAgICAgICMgV2UgbmVlZCB0byBlbnN1cmUgdGhhdCB3ZSBjaGVjayB0aGUgdmFyaWFibGUgY29udGVudHMgYW5kCi0gICAgICAgICAgICAjIGluaXRpYWxpemUgdGhlIGZsb3cgYXQgbGVhc3Qgb25jZSBpbiBhIGdpdmVuIHJ1biwgbm8gbWF0dGVyCi0gICAgICAgICAgICAjIHdoYXQgc3RlcCB0aGUgdXNlciB3YW50cyB0byBleGVjdXRlCi0gICAgICAgICAgICAjCi0KLSMgICAgICAgICAgICBzZXQgaGVhZGVyICJcbiNcbiMgQ29tbWFuZHMgZm9yICRzdGVwXG4jXG5cbiIKLQotICAgICAgICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycyhhbGwpXX0gewotICAgICAgICAgICAgICAgZXhlY3V0ZV9mbG93IGNoZWNrICRmb3JtYXQgJGFib3J0Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICAjIEJDTDogQ2hhbmdlZCB0byB0Y2wgZmlsZSBta2RpcgotICAgICAgICAgICAgZmlsZSBta2RpciAkdmFycyhzY3JpcHRfZGlyKS9JTk5PVlVTCi0gICAgICAgICAgICBzZXQgY29tbWFuZHMgIiIKLSMgICAgICAgICAgICBzZXQgY29tbWFuZHMgInBvc3QtMTAuMTAtYjAwOVxuIgotICAgICAgICAgICAgaWYgeyEkdmFycyhpbml0aWFsaXplZCl9IHsKLSAgICAgICAgICAgICAgIHNldCB2YXJzKHN0ZXApICRzdGVwCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGX05PVlVTOjppbml0aWFsaXplX2Zsb3ddCi0jICAgICAgICAgICAgICAgdW5zZXQgdmFycyhzdGVwKQotICAgICAgICAgICAgICAgc2V0IHZhcnMoaW5pdF9jb21tYW5kcykgJGNvbW1hbmRzCi0gICAgICAgICAgICAgICBzZXQgdmFycyhpbml0aWFsaXplZCkgMQotICAgICAgICAgICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycyh3YXJuaW5nX2NvdW50KV19IHsKLSAgICAgICAgICAgICAgICAgIHNldCB2YXJzKHdhcm5pbmdfY291bnQpIDAKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIGlmIHshW2luZm8gZXhpc3RzIHZhcnMoZXJyb3JfY291bnQpXX0gewotICAgICAgICAgICAgICAgICAgc2V0IHZhcnMoZXJyb3JfY291bnQpIDAKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgIwotICAgICAgICAgICAgIyBHZXQgdGhlIGNvbW1hbmRzIHRvIGV4ZWN1dGUgdGhlIHN0ZXAuICBXZSBhbHNvIG5lZWQgdG8gZ2V0IHRoZQotICAgICAgICAgICAgIyBjb21tYW5kcyB0byBsb2FkIHRoZSBkYXRhYmFzZSBmb3IgdGhhdCBzdGVwLCBhc3N1bWluZyB0aGF0IGEKLSAgICAgICAgICAgICMgZGF0YWJhc2UgZXhpc3RzIGZyb20gYSBwcmlvciBzdGVwLiAgVGhvc2UgbG9hZCBjb21tYW5kcyBhcmUKLSAgICAgICAgICAgICMgcHJlcGVuZGVkIHRvIHRoZSBleGVjdXRpb24gY29tbWFuZHMuICBTYXZlIGNvbW1hbmRzIGFyZQotICAgICAgICAgICAgIyBhcHBlbmRlZAotICAgICAgICAgICAgIwotCi0gICAgICAgICAgICBpZiB7W2luZm8gY29tbWFuZHMgOjpGRl9OT1ZVUzo6cnVuXyRzdGVwXSBuZSAiIn0gIHsKLSAgICAgICAgICAgICAgIHNldCB0ZW1wX2NvbW1hbmRzIFtGRl9OT1ZVUzo6cnVuXyRzdGVwICRmb3JtYXRdCi0gICAgICAgICAgICAgICBpZiB7JHRlbXBfY29tbWFuZHMgPT0gIiJ9IHsKLSAgICAgICAgICAgICAgICAgIHJldHVybiAiIgotICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgIGlmIHskdmFycyhzdGVwKSAhPSAiaW5pdCJ9IHsKLSAgICAgICAgICAgICAgICAgICAgIHNldCBzdGVwX2NvbW1hbmRzICJcbiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4iCi0gICAgICAgICAgICAgICAgICAgICBpZiB7JHZhcnMocmVwb3J0X3J1bl90aW1lKX0gewotICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIHN0ZXBfY29tbWFuZHMgInNldCB2YXJzKHN0ZXApICR7c3RlcH1cbiIKLSAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBzdGVwX2NvbW1hbmRzICJzZXQgdmFycygke3N0ZXB9LHN0YXJ0X3RpbWUpIFxbY2xvY2sgc2Vjb25kc1xdXG4iCi0gICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICBpZiB7JHZhcnMoY2FwdHVyZV9tZXRyaWNzKX0gewotICAgICAgICAgICAgICAgICAgICAgICAgaWYge1tsaW5kZXggW3NwbGl0ICR2YXJzKHZlcnNpb24pICIuIl0gIDBdID4gMTN9IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBzdGVwX2NvbW1hbmRzICJwdXNoX3NuYXBzaG90X3N0YWNrXG4iCi0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICBhcHBlbmQgc3RlcF9jb21tYW5kcyAiIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuIgotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgYXBwZW5kIHN0ZXBfY29tbWFuZHMgJHRlbXBfY29tbWFuZHMKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBzdGVwX2NvbW1hbmRzICIjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4iCi0gICAgICAgICAgICAgICAgICBwdXRzICAiPEZGPiBHZW5lcmF0aW5nIHN0ZXAgJHN0ZXAiCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9IGVsc2VpZiB7W2luZm8gZXhpc3RzIHZhcnMoY3VzdG9tX3N0ZXBfZGlyKV19IHsKLSAgICAgICAgICAgICAgIGlmIHtbZmlsZSBpc2ZpbGUgJHZhcnMoY3VzdG9tX3N0ZXBfZGlyKS9ydW5fJHtzdGVwfS50Y2xdfSB7Ci0gICAgICAgICAgICAgICAgICBwdXRzICAiPEZGPiBHZW5lcmF0aW5nIHN0ZXAgJHN0ZXAiCi0gICAgICAgICAgICAgICAgICBzZXQgZmhyIFtvcGVuICR2YXJzKGN1c3RvbV9zdGVwX2RpcikvcnVuXyRzdGVwLnRjbCByXQotICAgICAgICAgICAgICAgICAgc2V0IHN0ZXBfY29tbWFuZHMgIlxuIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiIKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBzdGVwX2NvbW1hbmRzICIjIFNvdXJjaW5nIGN1c3RvbSBzY3JpcHQgLi4uXG4iCi0gICAgICAgICAgICAgICAgICBhcHBlbmQgc3RlcF9jb21tYW5kcyAiIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiIKLSAgICAgICAgICAgICAgICAgIGlmIHskdmFycyhyZXBvcnRfcnVuX3RpbWUpICYmICgkc3RlcCAhPSAiaW5pdCIpfSB7Ci0gICAgICAgICAgICAgICAgICAgICBhcHBlbmQgc3RlcF9jb21tYW5kcyAic2V0IHZhcnMoc3RlcCkgJHtzdGVwfVxuIgotICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIHN0ZXBfY29tbWFuZHMgInNldCB2YXJzKCR7c3RlcH0sc3RhcnRfdGltZSkgXFtjbG9jayBzZWNvbmRzXF1cbiIKLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIGlmIHskdmFycyhjYXB0dXJlX21ldHJpY3MpICYmICgkdmFycyhzdGVwKSAhPSAiaW5pdCIpfSB7Ci0gICAgICAgICAgICAgICAgICAgICBpZiB7W2xpbmRleCBbc3BsaXQgJHZhcnModmVyc2lvbikgIi4iXSAgMF0gPiAxM30gewotICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIHN0ZXBfY29tbWFuZHMgInB1c2hfc25hcHNob3Rfc3RhY2tcbiIKLSAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBzdGVwX2NvbW1hbmRzICIjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4iCi0gICAgICAgICAgICAgICAgICB3aGlsZSB7W2dldHMgJGZociBsaW5lXT49MH0gewotICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBzdGVwX2NvbW1hbmRzICIkbGluZVxuIgotICAgICAgICAgICAgICAgICAgfQotIyAgICAgICAgICAgICAgICAgIGFwcGVuZCBzdGVwX2NvbW1hbmRzICJzb3VyY2UgJHZhcnMoY3VzdG9tX3N0ZXBfZGlyKS9ydW5fJHN0ZXAudGNsXG4iCi0gICAgICAgICAgICAgICAgICBhcHBlbmQgc3RlcF9jb21tYW5kcyAiIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuIgotICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgIHB1dHMgIjxGRj4gRVJST1I6IFVuYWJsZSB0byBnZW5lcmF0ZSBzdGVwICRzdGVwIgotICAgICAgICAgICAgICAgICAgc2V0IGVycm9ycygkdmFycyhlcnJvcl9jb3VudCkpICJVbmFibGUgdG8gZ2VuZXJhdGUgc3RlcCAkc3RlcCAtIHByb2NlZHVyZSAncnVuXyRzdGVwJyBtdXN0IGJlIGRlZmluZWQgb3IgYSBcJHZhcnMoY3VzdG9tX3N0ZXBfZGlyKS9ydW5fJHN0ZXAudGNsIGZpbGUgbXVzdCBiZSBwcm92aWRlZCIKLSAgICAgICAgICAgICAgICAgIGluY3IgdmFycyhlcnJvcl9jb3VudCkKLSAgICAgICAgICAgICAgICAgIHJldHVybiAiIgotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIHB1dHMgIjxGRj4gRVJST1I6IFVuYWJsZSB0byBnZW5lcmF0ZSBzdGVwICRzdGVwIgotICAgICAgICAgICAgICAgICAgc2V0IGVycm9ycygkdmFycyhlcnJvcl9jb3VudCkpICJVbmFibGUgdG8gZ2VuZXJhdGUgc3RlcCAkc3RlcCAtIHByb2NlZHVyZSAncnVuXyRzdGVwJyBtdXN0IGJlIGRlZmluZWQgb3IgYSBcJHZhcnMoY3VzdG9tX3N0ZXBfZGlyKS9ydW5fJHN0ZXAudGNsIGZpbGUgbXVzdCBiZSBwcm92aWRlZCIKLSAgICAgICAgICAgICAgIGluY3IgdmFycyhlcnJvcl9jb3VudCkKLSAgICAgICAgICAgICAgIHJldHVybiAiIgotICAgICAgICAgICAgfQotICAgICAgICAgICAgc2V0IHRoaXNfaW5kZXggW2xzZWFyY2ggJHZhcnMoc3RlcHMpICRzdGVwXQotICAgICAgICAgICAgc2V0IHByaW9yIFtsaW5kZXggJHZhcnMoc3RlcHMpIFtleHByICR0aGlzX2luZGV4IC0gMV1dCi0jICAgICAgICAgICAgaWYgeyEkdmFycyhmaXhfaG9sZCkgJiYgW3JlZ2V4cCBfaG9sZCAkcHJpb3JdfSB7Ci0jICAgICAgICAgICAgICAgc2V0IHByaW9yIFtsaW5kZXggJHZhcnMoc3RlcHMpIFtleHByICR0aGlzX2luZGV4IC0gMl1dCi0jICAgICAgICAgICAgICAgaWYge1tyZWdleHAgX2hvbGQgJHByaW9yXX0gewotIyAgICAgICAgICAgICAgICAgIHNldCBwcmlvciBbbGluZGV4ICR2YXJzKHN0ZXBzKSBbZXhwciAkdGhpc19pbmRleCAtIDNdXQotIyAgICAgICAgICAgICAgIH0KLSMgICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiB7W3JlZ2V4cCBfaG9sZCAkcHJpb3JdICYmIChbbHNlYXJjaCAkdmFycyhmaXhfaG9sZCkgW3JlZ3N1YiBfaG9sZCAkcHJpb3IgIiJdXTwwKX0gewotICAgICAgICAgICAgICAgc2V0IHByaW9yIFtsaW5kZXggJHZhcnMoc3RlcHMpIFtleHByICR0aGlzX2luZGV4IC0gMl1dCi0gICAgICAgICAgICAgICBpZiB7W3JlZ2V4cCBfaG9sZCAkcHJpb3JdICYmIChbbHNlYXJjaCAkdmFycyhmaXhfaG9sZCkgW3JlZ3N1YiBfaG9sZCAkcHJpb3IgIiJdXTwwKX0gewotICAgICAgICAgICAgICAgICAgc2V0IHByaW9yIFtsaW5kZXggJHZhcnMoc3RlcHMpIFtleHByICR0aGlzX2luZGV4IC0gM11dCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGlmIHsoJHN0ZXAgPT0gImN0cyIpICYmICR2YXJzKHBsYWNlX29wdF9kZXNpZ24pfSB7Ci0gICAgICAgICAgICAgICBzZXQgcHJpb3IgInBsYWNlIgotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgeygkc3RlcCA9PSAicm91dGUiKSAmJiAkdmFycyhza2lwX2N0cyl9IHsKLSAgICAgICAgICAgICAgIHNldCBwcmlvciAicHJlY3RzIgotICAgICAgICAgICAgfQotIyAgICAgICAgICAgIGlmIHsoJHN0ZXAgPT0gInJvdXRlIikgJiYgW3JlZ2V4cCAiXmNjb3B0IiBbc3RyaW5nIHRvbG93ZXIgJHZhcnMoY3RzX2VuZ2luZSldXX0gewotIyAgICAgICAgICAgICAgIHNldCBwcmlvciAiY3RzIgotIyAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIHtbcmVnZXhwICJeY2NvcHQiIFtzdHJpbmcgdG9sb3dlciAkdmFycyhjdHNfZW5naW5lKV1dfSB7Ci0gICAgICAgICAgICAgICBpZiB7KFtzdHJpbmcgdG9sb3dlciAkdmFycyhmaXhfaG9sZCldICE9ICJmYWxzZSIpfSB7Ci0gICAgICAgICAgICAgICAgICBpZiB7KCRzdGVwID09ICJwb3N0Y3RzX2hvbGQiKSAmJiBbbHNlYXJjaCAkdmFycyhmaXhfaG9sZCkgJHN0ZXBdfSB7Ci0gICAgICAgICAgICAgICAgICAgICBzZXQgcHJpb3IgY3RzCi0gICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgaWYgeygkc3RlcCA9PSAicm91dGUiKX0gewotICAgICAgICAgICAgICAgICAgICAgICAgc2V0IHByaW9yIGN0cwotICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgIGlmIHsoJHN0ZXAgPT0gInJvdXRlIil9IHsKLSAgICAgICAgICAgICAgICAgICAgIHNldCBwcmlvciBjdHMKLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgc2V0IHRoaXNfaW5kZXggW2xzZWFyY2ggW0ZGOjphZGp1c3Rfc3RlcHNdICRzdGVwXQotICAgICAgICAgICAgc2V0IHByaW9yIFtsaW5kZXggW0ZGOjphZGp1c3Rfc3RlcHNdIFtleHByICR0aGlzX2luZGV4IC0gMV1dCi0KLSAgICAgICAgICAgIHNldCBub19kYl9zdGVwcyBbbGlzdCAiaW5pdCIgInJlYnVkZ2V0IiAiZmxleGlsbSIgImFzc2VtYmxlIiAiYXNzZW1ibGVfZmxleGlsbSIgImRlYnVnIl0KLSAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyh1c2VfZmxleG1vZGVscyldICYmICR2YXJzKHVzZV9mbGV4bW9kZWxzKX0gewotICAgICAgICAgICAgICAgbGFwcGVuZCBub19kYl9zdGVwcyAibW9kZWxfZ2VuIgotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIGxhcHBlbmQgbm9fZGJfc3RlcHMgImZlZWR0aHJvdWdoIgotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgeyhbbHNlYXJjaCAkbm9fZGJfc3RlcHMgJHN0ZXBdID09IC0xKSAmJiAoJHByaW9yICE9ICIiKX0gewotICAgICAgICAgICAgICAgc2V0IGxvYWRfY29tbWFuZHMgW0ZGX05PVlVTOjpsb2FkX2Rlc2lnbiAkcHJpb3IgJHN0ZXBdCi0jICAgICAgICAgICAgICAgc2V0IHJlc3RvcmVfY29tbWFuZHMgW2xpbmRleCBbRkZfTk9WVVM6OmxvYWRfZGVzaWduICRmb3JtYXQgJHByaW9yXSAxXQotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIHNldCBsb2FkX2NvbW1hbmRzICIiCi0jICAgICAgICAgICAgICAgc2V0IHJlc3RvcmVfY29tbWFuZHMgIiIKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgaWYgeyEkdmFycyhsb2FkZWQpfSB7Ci0gICAgICAgICAgICAgICBzZXQgdmFycyhsb2FkZWQpIDEKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAkbG9hZF9jb21tYW5kcwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAjIG1vZGVsX2dlbiBzYXZlcyBpdHMgZGF0YWJhc2UgZXhwbGljaXRseQotIyAgICAgICAgICAgIHNldCBub19zYXZlX3N0ZXBzIFtsaXN0ICJkZWJ1ZyIgIm1vZGVsX2dlbiJdCi0gICAgICAgICAgICBzZXQgbm9fc2F2ZV9zdGVwcyBbbGlzdCAiZGVidWciXQotICAgICAgICAgICAgaWYge1tsc2VhcmNoICRub19zYXZlX3N0ZXBzICRzdGVwXSA9PSAtMX0gewotICAgICAgICAgICAgICAgc2V0IHNhdmVfY29tbWFuZHMgW0ZGX05PVlVTOjpzYXZlX3Jlc3VsdHMgJHN0ZXAgJGZvcm1hdF0KLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBzZXQgc2F2ZV9jb21tYW5kcyAiIgotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAjCi0gICAgICAgICAgICAjIFdyaXRlIHRoZSBjb21tYW5kcyB0byBhIGZpbGUsIG5hbWVkIGZvciB0aGUgc3RlcCB3ZSBhcmUKLSAgICAgICAgICAgICMgZXhlY3V0aW5nCi0gICAgICAgICAgICAjCi0KLSMgICAgICAgICAgICBpZiB7ISR2YXJzKGdlbmVyYXRlX2Zsb3dfc3RlcHMpfSB7Ci0gICAgICAgICAgICAgICBpZiB7W3JlZ2V4cCAiXnN5biIgJHN0ZXBdfSB7Ci0gICAgICAgICAgICAgICAgICBmaWxlIG1rZGlyICR2YXJzKHNjcmlwdF9kaXIpL0dFTlVTCi0gICAgICAgICAgICAgICAgICBzZXQgb3AgW29wZW4gJHZhcnMoc2NyaXB0X2RpcikvR0VOVVMvcnVuXyR7c3RlcH0udGNsIHddCi0gICAgICAgICAgICAgICB9IGVsc2UgeyAKLSAgICAgICAgICAgICAgICAgIHNldCBvcCBbb3BlbiAkdmFycyhzY3JpcHRfZGlyKS9JTk5PVlVTL3J1bl8ke3N0ZXB9LnRjbCB3XQotICAgICAgICAgICAgICAgfQotCi0gICAjICAgICAgICAgICAgaWYgeyR2YXJzKGRlYnVnKX0gewotICAgIyAgICAgICAgICAgICAgIHB1dHMgIjxERUJVRz4gT3BlbmluZyBmaWxlOiAkdmFycyhzY3JpcHRfZGlyKS9JTk5PVlVTL3J1bl8ke3N0ZXB9LnRjbCBpbiBbZXhlYyBwd2RdIC0+ICRvcCIKLSAgICMgICAgICAgICAgICB9Ci0gICAKLSAgICAgICAgICAgICAgIHB1dHMgJG9wIFtzdHJpbmcgcmVwZWF0ICIjIiA2OF0KLSAgICAgICAgICAgICAgIHB1dHMgJG9wICIjIElubm92dXMgRm91bmRhdGlvbiBGbG93IENvZGUgR2VuZXJhdG9yLCBbZXhlYyBkYXRlXSIKLSAgICAgICAgICAgICAgIHB1dHMgJG9wICIjIFZlcnNpb24gOiAxNy4xMC1wMDAzXzEiCi0gICAgICAgICAgICAgICBwdXRzICRvcCBbc3RyaW5nIHJlcGVhdCAiIyIgNjhdCi0gICAKLSAgICAgICAgICAgICAgIGlmIHtbZmlsZSB0YWlsIFtmaWxlIGRpcm5hbWUgW3B3ZF1dXSAhPSAiJHZhcnMocGFydGl0aW9uX2RpcikifSB7Ci0gICAgICAgICAgICAgICAgICBzZXQgdmFyc0ZpbGUgW0ZGOjpyZWxQYXRoVG8gW2ZpbGUgbm9ybWFsaXplICR2YXJzKHNjcmlwdF9kaXIpL3ZhcnMudGNsXSBbZmlsZSBub3JtYWxpemUgJHZhcnMocnVuZGlyKV1dCi0gICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgc2V0IHZhcnNGaWxlICR2YXJzKHNjcmlwdF9kaXIpL3ZhcnMudGNsCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICBwdXRzICRvcCAiXG5pZiB7XFtmaWxlIGV4aXN0cyAkdmFyc0ZpbGVcXX0geyIKLSAgICAgICAgICAgICAgIHB1dHMgJG9wICIgICBzb3VyY2UgJHZhcnNGaWxlIgotICAgICAgICAgICAgICAgcHV0cyAkb3AgIn0iCi0gICAgICAgICAgICAgICAjcHV0cyAkb3AgImlmIHtcW2ZpbGUgZXhpc3RzIFwkdmFycyhzY3JpcHRfZGlyKS92YXJzLnRjbFxdfSB7IgotICAgICAgICAgICAgICAgI3B1dHMgJG9wICIgICBzb3VyY2UgXCR2YXJzKHNjcmlwdF9kaXIpL3ZhcnMudGNsIgotICAgICAgICAgICAgICAgI3B1dHMgJG9wICJ9XG4iCi0gICAgICAgICAgICAgICBpZiB7ISR2YXJzKGZyZWV6ZV92YXJzKX0gewotICAgICAgICAgICAgICAgICAgaWYgeyhbZmlsZSB0YWlsIFtmaWxlIGRpcm5hbWUgW3B3ZF1dXSAhPSAiJHZhcnMocGFydGl0aW9uX2RpcikiKSAmJiAhW3JlZ2V4cCBzeW5fICRzdGVwXX0gewotICAgICAgICAgICAgICAgICAgICAgcHV0cyAkb3AgImZvcmVhY2ggZmlsZSBcJHZhcnMoY29uZmlnX2ZpbGVzKSB7IgotICAgICAgICAgICAgICAgICAgICAgcHV0cyAkb3AgIiAgIHNvdXJjZSBcJGZpbGUiCi0gICAgICAgICAgICAgICAgICAgICBwdXRzICRvcCAifVxuIgotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgcHV0cyAkb3AgInNvdXJjZSBcJHZhcnMoc2NyaXB0X2RpcikvcHJvY3MudGNsIgotICAgICAgICAgICAgICAgcHV0cyAkb3AgInNvdXJjZSAkdmFycyhzY3JpcHRfZGlyKS9wcm9jcy50Y2wiCi0gICAgICAgICAgICAgICBpZiB7ISRmb3JtYXR9IHsKLSAgICAgICAgICAgICAgICAgIHB1dHMgJG9wICRoZWFkZXIKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIHJlZ3N1YiAtYWxsICJpbml0LCIgJHZhcnMoaW5pdF9jb21tYW5kcykgIiRzdGVwLCIgY29tbWFuZHMKLSAgICAgICAgICAgICAgIHNldCBvZiBbb3BlbiAkdmFycyhzY3JpcHRfZGlyKS9JTk5PVlVTLy5oZWFkIHddCi0gICAgICAgICAgICAgICBwdXRzICRvZiBbRkY6OnByZXR0eV9wcmludCAkdmFycyhpbml0X2NvbW1hbmRzKSAkZm9ybWF0XQotICAgICAgICAgICAgICAgY2xvc2UgJG9mIAotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICRsb2FkX2NvbW1hbmRzICRzdGVwX2NvbW1hbmRzICRzYXZlX2NvbW1hbmRzCi0gICAjICAgICAgICAgICAgc2V0IGNvbW1hbmRzICIiCi0gICAjICAgICAgICAgICAgaWYgeygkc3RlcCAhPSAicGFydGl0aW9uIikgJiYgKCRzdGVwICE9ICJyZWJ1ZGdldCIpICYmICgkc3RlcCAhPSAiZmxleGlsbSIpfSB7Ci0gICAjICAgICAgICAgICAgICAgaWYgeyFbcmVnZXhwIF9ob2xkICRzdGVwXX0gewotICAgIyAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAkbG9hZF9jb21tYW5kcyAkc3RlcF9jb21tYW5kcyAkc2F2ZV9jb21tYW5kcwotICAgIyAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAjIyAgICAgICAgICAgICAgICAgIGlmIHshKFtsc2VhcmNoICR2YXJzKGZpeF9ob2xkKSBbcmVnc3ViIF9ob2xkICRzdGVwICIiXV08MCl9IHsKLSAgICMjICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICRzdGVwX2NvbW1hbmRzCi0gICAjIyAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAjICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICRsb2FkX2NvbW1hbmRzICRzdGVwX2NvbW1hbmRzICRzYXZlX2NvbW1hbmRzCi0gICAjIyAgICAgICAgICAgICAgICAgIH0KLSAgICMgICAgICAgICAgICAgICB9Ci0gICAjIyAgICAgICAgICAgICAgIGlmIHskc3RlcCA9PSAiZGVidWcifSB7Ci0gICAjIyAgICAgICAgICAgICAgICAgIHNldCB2YXJzKHN0ZXApIGRlYnVnCi0gICAjIyAgICAgICAgICAgICAgIH0KLSAgICMgICAgICAgICAgICB9IGVsc2UgewotICAgIyAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAkbG9hZF9jb21tYW5kcyAkc3RlcF9jb21tYW5kcwotICAgIyAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIGxhcHBlbmQgdmFycyhic3RlcHMpICRzdGVwCi0gICAgICAgICAgICAgICBzZXQgb2YgW29wZW4gJHZhcnMoc2NyaXB0X2RpcikvSU5OT1ZVUy8ubG9hZF8kc3RlcCB3XQotICAgIyAgICAgICAgICAgIHB1dHMgJG9mIFtGRjo6cHJldHR5X3ByaW50ICRyZXN0b3JlX2NvbW1hbmRzICRmb3JtYXRdCi0gICAgICAgICAgICAgICBwdXRzICRvZiBbRkY6OnByZXR0eV9wcmludCAkbG9hZF9jb21tYW5kcyAkZm9ybWF0XQotICAgICAgICAgICAgICAgY2xvc2UgJG9mCi0gICAgICAgICAgICAgICBzZXQgb2YgW29wZW4gJHZhcnMoc2NyaXB0X2RpcikvSU5OT1ZVUy8uJHN0ZXAgd10KLSAgICAgICAgICAgICAgIHB1dHMgJG9mIFtGRjo6cHJldHR5X3ByaW50ICRzdGVwX2NvbW1hbmRzICRmb3JtYXRdCi0gICAgICAgICAgICAgICBwdXRzICRvZiBbRkY6OnByZXR0eV9wcmludCAkc2F2ZV9jb21tYW5kcyAkZm9ybWF0XQotICAgICAgICAgICAgICAgY2xvc2UgJG9mCi0gICAjICAgICAgICAgICAgaWYge1tyZWdleHAgInBvc3Ryb3V0ZV9zaSIgJHN0ZXBdICYmICRza2lwX2NvbW1hbmRzICE9ICIifSB7Ci0gICAjICAgICAgICAgICAgICAgc2V0IGNvbW1hbmRzICRza2lwX2NvbW1hbmRzCi0gICAjICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgaWYgeyEkZm9ybWF0fSB7Ci0gICAgICAgICAgICAgICAgICBzZXQgY29tbWFuZHMgW0ZGOjpzdHJpcF9saW5lcyAkY29tbWFuZHMgW2xpc3QgInB1dHMiICIjIl1dCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICBpZiB7JHZhcnMoY2F0Y2hfZXJyb3JzKSAmJiAoJHN0ZXAgIT0gImRlYnVnIil9IHsKLSAgICAgICAgICAgICAgICAgIHB1dHMgJG9wICJcbmlmIHsgXFtjYXRjaCB7XG4iCi0gICAgICAgICAgICAgICAgICBwdXRzICRvcCBbRkY6OnByZXR0eV9wcmludCAkY29tbWFuZHMgJGZvcm1hdF0KLSAgICAgICAgICAgICAgICAgIHB1dHMgJG9wICJ9IHN0ZXBfZXJyb3JcXX0ge1xuIgotICAgICAgICAgICAgICAgICAgcHV0cyAkb3AgIiAgIHB1dHMgXCI8RkY+ID09PT09PT09PT09IFNURVAgRVhFQ1VUSU9OIEVSUk9SID09PT09PT09PT09PVwiIgotICAgICAgICAgICAgICAgICAgcHV0cyAkb3AgIiAgIHB1dHMgXCI8RkY+IEVSUk9SIFJVTk5JTkcgU1RFUCAnJHN0ZXAnXCIiCi0gICAgICAgICAgICAgICAgICBpZiB7JHZhcnMoc2F2ZV9vbl9jYXRjaCl9IHsKLSAgICAgICAgICAgICAgICAgICAgIGlmIHtbcmVnZXhwICJec3luIiAkdmFycyhzdGVwKV19IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgcHV0cyAkb3AgIiAgIHdyaXRlX2RiICR2YXJzKGRlc2lnbikgLWFsbF9yb290X2F0dHJpYnV0ZXMgLXRvX2ZpbGUgJHZhcnMoZGJzX2RpcikvJHZhcnMoc3RlcCkuY2F0Y2guZGJcbiIKLSAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgIHB1dHMgJG9wICIgICBwdXRzIFwiPEZGPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cIiIKLSAgICAgICAgICAgICAgICAgICAgICAgcHV0cyAkb3AgIiAgIHB1dHMgXCI8RkY+IC4uLiBTQVZJTkcgREVTSUdOIFRPICR2YXJzKGRic19kaXIpLyR2YXJzKHN0ZXApLmNhdGNoLmVuY1wiIgotICAgICAgICAgICAgICAgICAgICAgICBpZiB7W3N0cmluZyBjb21wYXJlIC1ub2Nhc2UgJHZhcnMoZGJzX2Zvcm1hdCkgIm9hIl09PTB9IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgaWYge1tsaW5kZXggW3NwbGl0ICR2YXJzKHZlcnNpb24pICIuIl0gIDBdID4gMTB9IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHV0cyAkb3AgIiAgIHdyaXRlX2RiIC1vYV9saWJfY2VsbF92aWV3IHskdmFycyhvYV9kZXNpZ25fbGliKSAkdmFycyhkZXNpZ24pICR2YXJzKHN0ZXApLmNhdGNofVxuIgotICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdXRzICRvcCAiICAgc2F2ZU9hRGVzaWduICR2YXJzKG9hX2Rlc2lnbl9saWIpICR2YXJzKGRlc2lnbikgJHZhcnMoc3RlcCkuY2F0Y2hcbiIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICAgICBwdXRzICRvcCAiICAgd3JpdGVfZGIgJHZhcnMoZGJzX2RpcikvJHZhcnMoc3RlcCkuY2F0Y2guZW5jXG4iCi0gICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIH0gCi0gICAgICAgICAgICAgICAgICBwdXRzICRvcCAiICAgcHV0cyBcIjxGRj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXCIiCi0gICAgICAgICAgICAgICAgICBwdXRzICRvcCAiICAgcHV0cyBcIjxGRj4gXCRzdGVwX2Vycm9yXCIiCi0gICAgICAgICAgICAgICAgICBwdXRzICRvcCAiICAgcHV0cyBcIjxGRj4gLS0tLS0tLS0tLS0tLS0tLS0tLSBERVRBSUxTIC0tLS0tLS0tLS0tLS0tLS0tLVwiIgotICAgICAgICAgICAgICAgICAgcHV0cyAkb3AgIiAgIHB1dHMgXCI8RkY+IFwkZXJyb3JJbmZvXCIiCi0gICAgICAgICAgICAgICAgICBwdXRzICRvcCAiICAgcHV0cyBcIjxGRj4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVwiIgotICAgICAgICAgICAgICAgICAgaWYgeyR2YXJzKGJhdGNoKX0gewotICAgICAgICAgICAgICAgICAgICAgcHV0cyAkb3AgIiAgIGV4aXQgLTEiCi0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICBwdXRzICRvcCAifSIKLSAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICBwdXRzICRvcCBbRkY6OnByZXR0eV9wcmludCAkY29tbWFuZHMgJGZvcm1hdF0KLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIGlmIHskdmFycyhiYXRjaCkgJiYgKCRzdGVwICE9ICJkZWJ1ZyIpfSB7Ci0gICAgICAgICAgICAgICAgICBwdXRzICRvcCAiaWYgeyFcW2luZm8gZXhpc3RzIHZhcnMoc2luZ2xlKVxdfSB7XG4gICBleGl0IDBcbn1cbiIKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGNsb3NlICRvcAotIyAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgc2V0IHNjb21tYW5kcyBbc3BsaXQgJGNvbW1hbmRzICJcbiJdCi0KLSAgICAgICAgICAgIGlmIHskdmFycyhnZW5lcmF0ZV9mbG93X3N0ZXBzKX0gewotICAgICAgICAgICAgICAgYXBwZW5kIHZhcnMoZmxvd19zdGVwcykgIlxuY3JlYXRlX2Zsb3dfc3RlcCAtbmFtZSAkc3RlcCBce1xuIgotICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGhzdGVwcyldICYmIChbbHNlYXJjaCAkdmFycyhoc3RlcHMpICRzdGVwXSAhPSAtMSl9IHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCB2YXJzKGZsb3dfc3RlcHMsaGllcikgIlxuY3JlYXRlX2Zsb3dfc3RlcCAtbmFtZSAkc3RlcCBce1xuIgotICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCB2YXJzKGZsb3dfc3RlcHMsZmxhdCkgIlxuY3JlYXRlX2Zsb3dfc3RlcCAtbmFtZSAkc3RlcCBce1xuIgotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgc2V0IHNraXAgMAotICAgICAgICAgICAgICAgZm9yZWFjaCBsaW5lICRzY29tbWFuZHMgewotICAgICAgICAgICAgICAgICAgaWYgeyRza2lwICE9IDB9IHsKLSAgICAgICAgICAgICAgICAgICAgIHNldCBza2lwIFtleHByICRza2lwLTFdCi0gICAgICAgICAgICAgICAgICAgICBjb250aW51ZQotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgaWYge1tyZWdleHAgZmZfcHJvY3MgJGxpbmVdfSB7IGNvbnRpbnVlIH0KLSMgICAgICAgICAgICAgICAgICBpZiB7W3JlZ2V4cCAiIyIgJGxpbmVdfSB7IGNvbnRpbnVlIH0KLSAgICAgICAgICAgICAgICAgIGlmIHtbcmVnZXhwICJFUlJPUiBMT0FESU5HIERBVEFCQVNFIiAkbGluZV19IHsgY29udGludWUgfQotICAgICAgICAgICAgICAgICAgaWYge1tyZWdleHAgIlBsdWdpbiAtPiIgJGxpbmVdfSB7IGNvbnRpbnVlIH0KLSMgICAgICAgICAgICAgICAgICBpZiB7W3JlZ2V4cCAiUHV0cyIgJGxpbmVdfSB7IHJlZ3N1YiBQdXRzICRsaW5lIHB1dHMgbGluZSB9Ci0jICAgICAgICAgICAgICAgICAgaWYge1tyZWdleHAgIlB1dHMgXCI8RkY+IiAkbGluZV19IHsgY29udGludWUgfQotICAgICAgICAgICAgICAgICAgaWYge1tyZWdleHAgIlZQQVRIIiAkbGluZV19IHsgY29udGludWUgfQotICAgICAgICAgICAgICAgICAgaWYge1tyZWdleHAgInNldCB2YXJzIiAkbGluZV0gJiYgIVtyZWdleHAgIixwb3N0X2N0c19zZGMiICRsaW5lXSAmJiAhW3JlZ2V4cCAiYWN0aXZlX3JjX2Nvcm5lcnMiICRsaW5lXX0geyBjb250aW51ZSB9Ci0gICAgICAgICAgICAgICAgICBpZiB7KCRzdGVwID09ICJpbml0IikgJiYgJHZhcnMocmMpfSB7Ci0jICAgICAgICAgICAgICAgICAgICAgaWYge1tyZWdleHAgInJlYWRfbW1tYyIgJGxpbmVdfSB7IGNvbnRpbnVlIH0KLSMgICAgICAgICAgICAgICAgICAgICBpZiB7W3JlZ2V4cCAicmVhZF9uZXRsaXN0IiAkbGluZV19IHsgY29udGludWUgfQotIyAgICAgICAgICAgICAgICAgICAgIGlmIHtbcmVnZXhwICJyZWFkX3BoeXNpY2FsIiAkbGluZV19IHsgY29udGludWUgfQotIyAgICAgICAgICAgICAgICAgICAgIGlmIHtbcmVnZXhwICJpbml0X2Rlc2lnbiIgJGxpbmVdfSB7IGNvbnRpbnVlIH0KLSAgICAgICAgICAgICAgICAgICAgIGlmIHtbcmVnZXhwICJyZWFkX21tbWMiICRsaW5lXX0geyByZWdzdWIgcmVhZF9tbW1jICRsaW5lICIjcmVhZF9tbW1jIiBsaW5lIH0KLSAgICAgICAgICAgICAgICAgICAgIGlmIHtbcmVnZXhwICJyZWFkX25ldGxpc3QiICRsaW5lXX0geyByZWdzdWIgcmVhZF9uZXRsaXN0ICRsaW5lICIjcmVhZF9uZXRsaXN0IiBsaW5lIH0KLSAgICAgICAgICAgICAgICAgICAgIGlmIHtbcmVnZXhwICJyZWFkX3BoeXNpY2FsIiAkbGluZV19IHsgcmVnc3ViIHJlYWRfcGh5c2ljYWwgJGxpbmUgIiNyZWFkX3BoeXNpY2FsIiBsaW5lIH0KLSAgICAgICAgICAgICAgICAgICAgIGlmIHtbcmVnZXhwICJpbml0X2Rlc2lnbiIgJGxpbmVdfSB7IHJlZ3N1YiBpbml0X2Rlc2lnbiAkbGluZSAiI2luaXRfZGVzaWduIiBsaW5lIH0KLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIGlmIHskc3RlcCAhPSAiaW5pdCJ9IHsKLSAgICAgICAgICAgICAgICAgICAgIGlmIHtbcmVnZXhwICJyZXN0b3JlX2Rlc2lnbiIgJGxpbmVdfSB7IHNldCBza2lwIDc7IGNvbnRpbnVlIH0KLSAgICAgICAgICAgICAgICAgICAgIGlmIHshKCgkc3RlcCA9PSAiY3RzIikgJiYgJHZhcnMoZW5hYmxlX2ZsZXhpbG0pKX0geyAKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIHtbcmVnZXhwICJyZWFkX2RiIiAkbGluZV19IHsgY29udGludWUgfQotICAgICAgICAgICAgICAgICAgICAgfSAgZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiB7W3JlZ2V4cCAicmVhZF9kYiIgJGxpbmVdfSB7Ci0jICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldCBsaW5lIFtzdHJpbmcgdHJpbSBbbGluZGV4ICRsaW5lIDJdXQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldCBsaW5lICJyZWFkX2RiIFxbZmlsZSB0YWlsIFxbcHdkXF1cXV9wb3N0X2Vjby5lbmNcbiIKLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIGlmIHtbcmVnZXhwICJ3cml0ZV9kYiAiICRsaW5lXX0geyBjb250aW51ZSB9Ci0gICAgICAgICAgICAgICAgICBpZiB7W3JlZ2V4cCAibWV0cmljIiAkbGluZV19IHsgY29udGludWUgfQotICAgICAgICAgICAgICAgICAgaWYge1tyZWdleHAgInNuYXBzaG90IiAkbGluZV19IHsgY29udGludWUgfQotICAgICAgICAgICAgICAgICAgaWYge1tyZWdleHAgInJlcG9ydF9tZXRyaWMiICRsaW5lXX0geyBjb250aW51ZSB9Ci0gICAgICAgICAgICAgICAgICBpZiB7JGxpbmUgPT0gIiJ9IHsgY29udGludWUgfQotI2lmIHskc3RlcCA9PSAiaW5pdCJ9IHsgcHV0cyAkbGluZSB9Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgdmFycyhmbG93X3N0ZXBzKSAiXHQkbGluZVxuIgotICAgICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGhzdGVwcyldICYmIChbbHNlYXJjaCAkdmFycyhoc3RlcHMpICRzdGVwXSAhPSAtMSl9IHsKLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCB2YXJzKGZsb3dfc3RlcHMsaGllcikgIlx0JGxpbmVcbiIKLSAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICBhcHBlbmQgdmFycyhmbG93X3N0ZXBzLGZsYXQpICJcdCRsaW5lXG4iCi0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICBhcHBlbmQgdmFycyhmbG93X3N0ZXBzKSAiXH1cbiIKLSAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhoc3RlcHMpXSAmJiAoW2xzZWFyY2ggJHZhcnMoaHN0ZXBzKSAkc3RlcF0gIT0gLTEpfSB7Ci0gICAgICAgICAgICAgICAgICBpZiB7JHN0ZXAgPT0gInBhcnRpdGlvbiJ9IHsKLSAgICAgICAgICAgICAgICAgICAgIGZvcmVhY2ggcCAkdmFycyhwYXJ0aXRpb25fbGlzdCkgewotICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIHZhcnMoZmxvd19zdGVwcyxoaWVyKSAiXG5cdHNjaGVkdWxlX2Zsb3cgLWZsb3cgYmxvY2sgLWRpcmVjdG9yeSAkdmFycyhwYXJ0aXRpb25fZGlyKS8kcFxuIgotICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgaWYgeyRzdGVwID09ICJhc3NlbWJsZV9mbGV4aWxtIn0gewotICAgICAgICAgICAgICAgICAgICAgZm9yZWFjaCBwICR2YXJzKHBhcnRpdGlvbl9saXN0KSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgdmFycyhmbG93X3N0ZXBzLGhpZXIpICJcblx0c2NoZWR1bGVfZmxvdyAtZmxvdyBibG9jayAtZGlyZWN0b3J5ICR2YXJzKHBhcnRpdGlvbl9kaXIpX1BSRUNUUy8kcFxuIgotICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgaWYgeygkc3RlcCA9PSAiYXNzZW1ibGUiKSB8fCAoJHN0ZXAgPT0gInBhcnRpdGlvbiIpfSB7Ci0gICAgICAgICAgICAgICAgICAgICBhcHBlbmQgdmFycyhmbG93X3N0ZXBzLGhpZXIpICJcblx9IFxuIgotICAgICAgICAgICAgICAgICAgfSBlbHNlIHsgCi0gICAgICAgICAgICAgICAgICAgICBhcHBlbmQgdmFycyhmbG93X3N0ZXBzLGhpZXIpICJcblx9XG4iCi0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgaWYgeyhbZmlsZSB0YWlsIFtmaWxlIGRpcm5hbWUgW3B3ZF1dXSA9PSAiJHZhcnMocGFydGl0aW9uX2RpcikiKX0gewotICAgICAgICAgICAgICAgICAgICAgaWYgeyRzdGVwID09ICJzaWdub2ZmIn0gewotICAgICAgICAgICAgICAgICAgICAgICAgaWYge1tsc2VhcmNoICR2YXJzKHBhcnRpdGlvbl9saXN0KSAkdmFycyhkZXNpZ24pXSA9PSAtMX0gewotICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIHZhcnMoZmxvd19zdGVwcyxmbGF0KSAiXG5cdHNjaGVkdWxlX2Zsb3cgLWZsb3cgZmluYWxfYXNzZW1ibHkgLWRpcmVjdG9yeSAuLi8uLiAtbm9fZGJcbiIKLSAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICBpZiB7JHZhcnMoZW5hYmxlX2ZsZXhpbG0pfSB7Ci0jICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIHZhcnMoZmxvd19zdGVwcyxmbGF0KSAiXG5cdHNjaGVkdWxlX2Zsb3cgLWZsb3cgdG9wIC1kaXJlY3RvcnkgJHZhcnMocGFydGl0aW9uX2RpcilfUFJFQ1RTLyR2YXJzKHRvcF9jZWxsKVxuIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIHZhcnMoZmxvd19zdGVwcyxmbGF0KSAiXG5cdHNjaGVkdWxlX2Zsb3cgLWZsb3cgdG9wIC1kaXJlY3RvcnkgLi4vJHZhcnModG9wX2NlbGwpIC1ub19kYiAtc3luY1xuIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgdmFycyhmbG93X3N0ZXBzLGZsYXQpICJcblx0c2NoZWR1bGVfZmxvdyAtZmxvdyB0b3AgLWRpcmVjdG9yeSAkdmFycyhwYXJ0aXRpb25fZGlyKS8kdmFycyh0b3BfY2VsbClcbiIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCB2YXJzKGZsb3dfc3RlcHMsZmxhdCkgIlxuXHRzY2hlZHVsZV9mbG93IC1mbG93IHRvcCAtZGlyZWN0b3J5IC4uLyR2YXJzKHRvcF9jZWxsKSAtbm9fZGIgLXN5bmNcbiIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgIGlmIHskc3RlcCA9PSAicHJlY3RzIiAmJiAkdmFycyhlbmFibGVfZmxleGlsbSl9IHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIHtbbHNlYXJjaCAkdmFycyhwYXJ0aXRpb25fbGlzdCkgJHZhcnMoZGVzaWduKV0gPT0gLTF9IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCB2YXJzKGZsb3dfc3RlcHMsZmxhdCkgIlxuXHRzY2hlZHVsZV9mbG93IC1mbG93IGludGVybWVkaWF0ZV9hc3NlbWJseVxuIgotICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCB2YXJzKGZsb3dfc3RlcHMsZmxhdCkgIlxuXHRzY2hlZHVsZV9mbG93IC1mbG93IHRvcCAtZGlyZWN0b3J5ICR2YXJzKHBhcnRpdGlvbl9kaXIpLyR2YXJzKHRvcF9jZWxsKVxuIgotICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgIGlmIHtbcmVnZXhwIHN5bl8gJHN0ZXBdfSB7IAotICAgICAgICAgICAgICAgICAgICAgICAgaWYgeyR2YXJzKHJjKX0gewotICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgeyR2YXJzKGVuYWJsZV9yY3ApICYmICgkc3RlcCA9PSAic3luX3BsYWNlIil9IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCB2YXJzKGZsb3dfc3RlcHMsZmxhdCkgIlxuXHRzY2hlZHVsZV9mbG93IC1mbG93IGlubm92dXMgLWRiIFwiJHZhcnMoZGJzX2Rpcikvc3luX3BsYWNlL3N5bl9wbGFjZS5lbmNfc2V0dXAudGNsXCJcbiIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZWlmIHshJHZhcnMoZW5hYmxlX3JjcCkgJiYgKCR2YXJzKHN0ZXApID09ICJzeW5faW5jciIpfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgdmFycyhmbG93X3N0ZXBzLGZsYXQpICJcblx0c2NoZWR1bGVfZmxvdyAtZmxvdyBpbm5vdnVzIC1kYiBcIiR2YXJzKGRic19kaXIpL3N5bl9pbmNyL3N5bl9pbmNyLmVuY19zZXR1cC50Y2xcIlxuIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgfSAKLSMgICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgdmFycyhmbG93X3N0ZXBzLGZsYXQpICJcfVxuIgotICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSMgICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgdmFycyhmbG93X3N0ZXBzLGZsYXQpICJcfVxuIgotICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgYXBwZW5kIHZhcnMoZmxvd19zdGVwcyxmbGF0KSAiXH1cbiIKLSAgICAgICAgICAgICAgIH0gICAgCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBzZXQgYWN0aW9uICRzdGVwCi0gICAgICAgICB9Ci0gICAgICB9Ci0KLSAgICAgICMKLSAgICAgICMgQ3JlYXRlIGEgZmlsZSB0aGF0IHNldHMgdXAgYWxsIG9mIHRoZSB2YXJpYWJsZSBzZXR0aW5ncyB0aGF0IHdlcmUKLSAgICAgICMgdXNlZCBpbiB0aGlzIGludm9jYXRpb24KLSAgICAgICMKLQotICAgICAgcmV0dXJuICRhY3Rpb24KLSAgIH0KLQotICAgcHJvYyBpbnNlcnRfY29tbWVudHMge30gewotCi0gICAgICBnbG9iYWwgdmFycwotCi0gICAgICBzZXQgY29tbWVudHMgIiIKLSAgICAgIGFwcGVuZCBjb21tZW50cyAiIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjI1xuIgotICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIFZhcmlhYmxlcyBhZmZlY3RpbmcgdGhpcyBzdGVwOlxuIgotICAgICAgYXBwZW5kIGNvbW1lbnRzICIjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4iCi0gICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoY29tbWVudHMpXX0gewotICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICR2YXJzKGNvbW1lbnRzKQotICAgICAgICAgdW5zZXQgdmFycyhjb21tZW50cykKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgICAgTm8gdmFyaWFibGVzIGRlZmluZWQgZm9yIHRoaXMgc3RlcCAuLi5cbiIKLSAgICAgIH0KLSAgICAgIGFwcGVuZCBjb21tZW50cyAiIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjI1xuIgotICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKHVjb21tZW50cyldfSB7Ci0gICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgQWRkaXRpb25hbCB2YXJpYWJsZXMgZm9yIHRoaXMgc3RlcDpcbiIKLSAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIgotICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICR2YXJzKHVjb21tZW50cykKLSAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjI1xuIgotICAgICAgICAgdW5zZXQgdmFycyh1Y29tbWVudHMpCi0gICAgICB9Ci0gICAgICByZXR1cm4gJGNvbW1lbnRzCi0gICB9Ci0KLSAgIHByb2MgcnVuX2FsbCB7fSB7Ci0gCi0gICAgICBnbG9iYWwgdmFycwotCi0gICAgICBzZXQgdGltZSAwCi0gICAgICBzZXQgaW5kZXggMAotICAgICAgc2V0IHN0b3Bfc3RlcCBzaWdub2ZmCi0gICAgICBzZXQgdmFycyhjb2RlZ2VuKSBmYWxzZQotICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycyh2cGF0aCldfSB7IHNldCB2YXJzKHZwYXRoKSBtYWtlIH0KLSAgICAgIAotICAgICAgZm9yZWFjaCBzdGVwICR2YXJzKHN0ZXBzKSB7Ci0gICAgICAgICBpZiB7W2ZpbGUgZXhpc3RzICR2YXJzKHZwYXRoKS8kc3RlcF19IHsKLSAgICAgICAgICAgIGlmIHtbZmlsZSBtdGltZSAkdmFycyh2cGF0aCkvJHN0ZXBdID4gJHRpbWV9IHsKLSAgICAgICAgICAgICAgIGlmIHtbbGluZGV4ICR2YXJzKHN0ZXBzKSAkaW5kZXhdID09ICJzaWdub2ZmIn0gewotICAgICAgICAgICAgICAgICAgcHV0cyAiPEZGPiBTVEVQIHNpZ25vZmYgQ09NUExFVEUgLi4uIE5PVEhJTkcgVE8gRE8iCi0gICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgc2V0IHN0YXJ0X3N0ZXAgW2xpbmRleCAkdmFycyhzdGVwcykgW2V4cHIgJGluZGV4ICsgMV1dCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgc2V0IHN0YXJ0X3N0ZXAgJHN0ZXAKLSAgICAgICAgICAgIGJyZWFrCi0gICAgICAgICB9Ci0gICAgICAgICBpbmNyIGluZGV4Ci0gICAgICB9Ci0gICAgICAKLSAgICAgIHB1dHMgIjxGRj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iCi0gICAgICBpZiB7JHN0YXJ0X3N0ZXAgPT0gJHN0b3Bfc3RlcH0gewotICAgICAgICAgcHV0cyAiPEZGPiBSVU5OSU5HIFNURVAgJHN0YXJ0X3N0ZXAgLi4uIgotICAgICAgfSBlbHNlIHsKLSAgICAgICAgIHB1dHMgIjxGRj4gUlVOTklORyBTVEVQICRzdGFydF9zdGVwIHRocm91Z2ggJHN0b3Bfc3RlcCAuLi4iCi0gICAgICB9Ci0gICAgICBwdXRzICI8RkY+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIgotICAgICAgc2xlZXAgNQotICAgICAgCi0gICAgICAjCi0gICAgICAjIEVtdWxhdGUgdGhlIGZ1bmN0aW9uYWxpdHkgb2YgdGhlICJtYWtlIiBwcm9ncmFtLiAgSWYgYSBmaWxlIGRvZXNuJ3QgZXhpc3QsCi0gICAgICAjIG9yIGlmIGl0J3MgcHJlZGVjZXNzb3Igc3RlcCBoYXMgZXhlY3V0ZWQgbW9yZSByZWNlbnRseSwgcnVuIHRoZSBjdXJyZW50Ci0gICAgICAjIHN0ZXAgYW5kIHVwZGF0ZSB0aGUgdGltZS9kYXRlIHN0YW1wcyBvZiB0aGUgZmlsZXMgd2UgdHJhY2sgcHJvZ3Jlc3Mgd2l0aAotICAgICAgIwotICAgICAgCi0gICAgICBzZXQgdmFycyhzdG9wX3N0ZXApICRzdG9wX3N0ZXAKLSAgICAgIAotICAgICAgc2V0IGxhc3Rfc3RlcCAiIgotICAgICAgc2V0IHZhcnMocmVzdG9yZV9kZXNpZ24pIDEKLSAgICAgIGlmIHskdmFycyhlbmFibGVfcW9yX2NoZWNrKX0gewotICAgICAgICAgc2V0IGNoZWNrX3FvciAkdmFycyhzY3JpcHRfZGlyKS9jaGVja19xb3IudGNsCi0gICAgICB9Ci0gICAgICBleGVjIG1rZGlyIC1wIG1ha2UKLSAgICAgIGZvcmVhY2ggc3RlcCAkdmFycyhzdGVwcykgewotICAgICAgICAgc2V0IHZhcnMoc3RlcCkgJHN0ZXAKLSAgICAgICAgIHB1dHMgIjxGRj4gU1RFUCAkdmFycyhzdGVwKSAuLi4iCi0gICAgICAgICBzZXQgdGhpc19zZW1hcGhvcmUgIiR2YXJzKHZwYXRoKS8kc3RlcCIKLSAgICAgICAgIHNldCBsYXN0X3NlbWFwaG9yZSAiJHZhcnModnBhdGgpLyRsYXN0X3N0ZXAiCi0gICAgICAKLSAgICAgICAgIHNldCBydW5fc3RlcCBmYWxzZQotICAgICAgICAgaWYgeyFbZmlsZSBleGlzdHMgJHRoaXNfc2VtYXBob3JlXX0gewotICAgICAgICAgICAgc2V0IHJ1bl9zdGVwIHRydWUKLSAgICAgICAgIH0gZWxzZWlmIHskbGFzdF9zdGVwICE9ICIifSB7Ci0gICAgICAgICAgICBmaWxlIHN0YXQgJHRoaXNfc2VtYXBob3JlIHRoaXNfc3RhdAotICAgICAgICAgICAgZmlsZSBzdGF0ICRsYXN0X3NlbWFwaG9yZSBsYXN0X3N0YXQKLSAgICAgICAgICAgIGlmIHskdGhpc19zdGF0KG10aW1lKSA8ICRsYXN0X3N0YXQobXRpbWUpfSB7Ci0gICAgICAgICAgICAgICBzZXQgcnVuX3N0ZXAgdHJ1ZQotICAgICAgICAgICAgfQotICAgICAgICAgfQotICAgICAgCi0gICAgICAgICAjCi0gICAgICAgICAjIENoZWNrIHRoZSBxdWFsaXR5IG9mIHJlc3VsdHMgZnJvbSB0aGUgbGFzdCBzdGVwLiAgSWYgdGhlIHJlc3VsdHMgYXJlbid0Ci0gICAgICAgICAjIGFzIGV4cGVjdGVkLCBkb24ndCBwcm9jZWVkIHRvIHRoZSBuZXh0IHN0ZXAKLSAgICAgICAgICMKLSAgICAgICAgIGlmIHskdmFycyhlbmFibGVfcW9yX2NoZWNrKX0gewotICAgICAgICAgICAgaWYgeyRzdGVwICE9ICJpbml0In0gewotICAgICAgICAgICAgICAgc2V0IHFvciBbY2F0Y2gge2V4ZWMgJGNoZWNrX3FvciAkbGFzdF9zZW1hcGhvcmV9IG1zZ10KLSAgICAgICAgICAgICAgIGlmIHskcW9yfSB7Ci0gICAgICAgICAgICAgICAgICBwdXRzICI8RkY+IEVSUk9SOiBRT1IgUkVTVUxUIENIRUNLIElORElDQVRFUyBBIFBST0JMRU0gSU4gU1RFUCAkbGFzdF9zdGVwIgotICAgICAgICAgICAgICAgICAgZXhpdCAtMTExCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0gICAgICAKLSAgICAgICAgIHNldCBsYXN0X3N0ZXAgJHN0ZXAKLSAgICAgICAgIGlmIHshJHJ1bl9zdGVwfSB7Ci0gICAgICAgICAgICBjb250aW51ZQotICAgICAgICAgfQotICAgICAgCi0gICAgICAgICAjCi0gICAgICAgICAjIFNvdXJjZSB0aGUgY29udHJvbCBmaWxlIHRoYXQgcnVucyB0aGUgc3RlcC4gIElmIGl0IGhhZCBhbiBlcnJvciwgZXhpdAotICAgICAgICAgIyBpbW1lZGlhdGVseS4gIE90aGVyd2lzZSwgdXBkYXRlIHRoZSB0aW1lL2RhdGUgc3RhbXAgb2YgdGhlIGNvcnJlc3BvbmRpbmcKLSAgICAgICAgICMKLSAgICAgICAgICMKLSAgICAgIAotICAgICAgICAgaWYge1tjYXRjaCB7RkZfTk9WVVM6OnJ1bl8kc3RlcH0gbWVzc2FnZV19IHsKLSAgICAgICAgICAgIHB1dHMgJG1lc3NhZ2UKLSAgICAgICAgICAgIGV4aXQgLTExMQotICAgICAgICAgfQotICAgICAgICAgc2V0IHZhcnMocmVzdG9yZV9kZXNpZ24pIDAKLSAgICAgIAotICAgICAgICAgIwotICAgICAgICAgIyBJZiB0aGVyZSBpcyBhIFFPUiBjaGVjayBmaWxlIGZvciB0aGlzIHN0ZXAsIGV4ZWN1dGUgaXQgYW5kIHBsYWNlIHRoZQotICAgICAgICAgIyByZXN1bHQgaW50byB0aGUgbWFrZSBmaWxlLiAgT3RoZXJ3aXNlIGp1c3QgdG91Y2ggdGhlIGZpbGUKLSAgICAgICAgICMKLSAgICAgIAotICAgICAgICAgaWYgeyR2YXJzKGVuYWJsZV9xb3JfY2hlY2spfSB7Ci0gICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJHN0ZXAscW9yX3RjbF19IHsKLSAgICAgICAgICAgICAgIHNldCBxb3JfZmlsZSAkdmFycygkc3RlcCxxb3JfdGNsKQotICAgICAgICAgICAgICAgaWYge1tmaWxlIGV4aXN0cyAkcW9yX2ZpbGVdfSB7Ci0gICAgICAgICAgICAgICAgICBzZXQgcW9yIFtjYXRjaCB7ZXhlYyAkcW9yX2ZpbGV9IG1zZ10KLSAgICAgICAgICAgICAgICAgIHNldCBtYWtlX2ZpbGUgW29wZW4gJHRoaXNfc2VtYXBob3JlIHddCi0gICAgICAgICAgICAgICAgICBwdXRzICRtYWtlX2ZpbGUgIiRxb3IiCi0gICAgICAgICAgICAgICAgICBjbG9zZSAkbWFrZV9maWxlCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0gICAgICAgICBleGVjIC9iaW4vdG91Y2ggJHRoaXNfc2VtYXBob3JlCi0gICAgICAKLSAgICAgICAgIGlmIHskc3RlcCA9PSAkc3RvcF9zdGVwfSB7Ci0gICAgICAgICAgICBwdXRzICI8RkY+IERvbmUiIAotICAgICAgICAgfQotICAgICAgfQotICAgfQotCi0gICBwcm9jIGxvYWRfcG93ZXJfaW50ZW50IHt9IHsKLQotICAgICAgZ2xvYmFsIHZhcnMKLQotICAgICAgc2V0IGNvbW1hbmRzICIiCi0KLSAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhjcGZfZmlsZSldfSB7Ci0gICAgICAgICBpZiB7W2ZpbGUgZXh0ZW5zaW9uICR2YXJzKGNwZl9maWxlKV0gPT0gIi5jcGZkYiJ9IHsKLSAgICAgICAgICAgIHNldCBjb21tYW5kICJyZWFkX3Bvd2VyX2ludGVudCAtbXN2REIgJHZhcnMoY3BmX2ZpbGUpXG4iCi0gICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgc2V0IGNvbW1hbmQgInJlYWRfcG93ZXJfaW50ZW50IC1jcGYgJHZhcnMoY3BmX2ZpbGUpXG4iCi0gICAgICAgICB9Ci0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCkscmVhZF9wb3dlcl9pbnRlbnQgJGNvbW1hbmRdCi0gICAgICAgICBzZXQgY29tbWFuZCAiY29tbWl0X3Bvd2VyX2ludGVudCIKLSAgICAgICAgIGlmIHskdmFycyhjcGZfcG93ZXJfZG9tYWluKX0gewotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAtcG93ZXJfZG9tYWluIgotICAgICAgICAgfQotICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGNwZl9rZWVwX3Jvd3MpXSAmJiAkdmFycyhjcGZfa2VlcF9yb3dzKX0gewotICAgICAgICAgICBpZiB7JHZhcnMobm92dXMpfSB7Ci0gICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgLWtlZXBfcm93cyIKLSAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAta2VlcFJvd3MiCi0gICAgICAgICAgIH0KLSAgICAgICAgIH0KLSAgICAgICAgIGlmIHskdmFycyhjcGZfaXNvbGF0aW9uKX0gewotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAtaXNvbGF0aW9uIgotICAgICAgICAgfQotICAgICAgICAgaWYgeyR2YXJzKGNwZl9zdGF0ZV9yZXRlbnRpb24pfSB7Ci0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiIC1zdGF0ZV9yZXRlbnRpb24iCi0gICAgICAgICB9Ci0gICAgICAgICBpZiB7JHZhcnMoY3BmX2xldmVsX3NoaWZ0ZXIpfSB7Ci0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiIC1sZXZlbF9zaGlmdGVyIgotICAgICAgICAgfQotICAgICAgICAgaWYgeyR2YXJzKGNwZl9wb3dlcl9zd2l0Y2gpfSB7Ci0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiIC1wb3dlcl9zd2l0Y2giCi0gICAgICAgICB9Ci0gICAgICAgICBhcHBlbmQgY29tbWFuZCAiXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksY29tbWl0X3Bvd2VyX2ludGVudCAkY29tbWFuZF0KLSAgICAgIH0gZWxzZWlmIHtbaW5mbyBleGlzdHMgdmFycyhpZWVlMTgwMV9maWxlKV19IHsKLSAgICAgICAgIHNldCBjb21tYW5kICJyZWFkX3Bvd2VyX2ludGVudCAkdmFycyhpZWVlMTgwMV9maWxlKSAtMTgwMVxuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHJlYWRfcG93ZXJfaW50ZW50ICRjb21tYW5kXQotICAgICAgICAgc2V0IGNvbW1hbmQgImNvbW1pdF9wb3dlcl9pbnRlbnQiCi0gICAgICAgICBpZiB7JHZhcnMoaWVlZTE4MDFfcG93ZXJfZG9tYWluKX0gewotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAtcG93ZXJfZG9tYWluIgotICAgICAgICAgfQotICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGllZWUxODAxX2tlZXBfcm93cyldICYmICR2YXJzKGllZWUxODAxX2tlZXBfcm93cyl9IHsKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgLWtlZXBSb3dzIgotICAgICAgICAgfQotICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIlxuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLGNvbW1pdF9wb3dlcl9pbnRlbnQgJGNvbW1hbmRdCi0gICAgICB9Ci0gICAgICByZXR1cm4gJGNvbW1hbmRzCi0gICB9Ci0KLSAgIHByb2MgZHVtcF9ub3Z1c19hdHRyaWJ1dGVzIHt9IHsKLQotICAgICAgZ2xvYmFsIHZhcnMKLQotICAgICAgc2V0IG1hcChhY3Rpdml0eV9maWxlX2Zvcm1hdCkgIiMgcmVhZF9hY3Rpdml0eV9maWxlIDxmaWxlPiAtZm9ybWF0IiAKLSAgICAgIHNldCBtYXAoYXNzaWduX2J1ZmZlcikgZGVmdW5jdAotICAgICAgc2V0IG1hcChidWRnZXRfbW9kZSkgInNldF9kYiBidWRnZXRfdmlydHVhbF9vcHRfZW5naW5lIgotICAgICAgc2V0IG1hcChjYXB0dXJlX21ldHJpY3MpICIjIGVuYWJsZV9tZXRyaWNzIC1vbiIKLSAgICAgIHNldCBtYXAoY2NvcHRfZWZmb3J0KSBkZWZ1bmN0Ci0gICAgICBzZXQgbWFwKGNjb3B0X2ludGVncmF0aW9uKSBkZWZ1bmN0Ci0gICAgICBzZXQgbWFwKGNkYl9maWxlKSBkZWZ1bmN0Ci0gICAgICBzZXQgbWFwKGNsa19sZWFmX2JvdHRvbV9sYXllcikgIiMgY3JlYXRlX3JvdXRlX3R5cGUgLW5hbWUgbGVhZiAtYm90dG9tX3ByZWZlcnJlZF9sYXllciA8bGF5ZXI+IC10b3BfcHJlZmVycmVkX2xheWVyIDxsYXllcj4gLXNoaWVsZF9uZXQgPG5ldD4gLW5vbl9kZWZhdWx0X3J1bGUgPG5kcj4iCi0gICAgICBzZXQgbWFwKGNsa19sZWFmX3RvcF9sYXllcikgIiMgY3JlYXRlX3JvdXRlX3R5cGUgLW5hbWUgbGVhZiAtYm90dG9tX3ByZWZlcnJlZF9sYXllciA8bGF5ZXI+IC10b3BfcHJlZmVycmVkX2xheWVyIDxsYXllcj4gLXNoaWVsZF9uZXQgPG5ldD4gLW5vbl9kZWZhdWx0X3J1bGUgPG5kcj4iCi0gICAgICBzZXQgbWFwKGNsa19tYXhfc2tldykgInNldF9kYiBjdHNfdGFyZ2V0X3NrZXciCi0gICAgICBzZXQgbWFwKGNsa19tYXhfc2xldykgInNldF9kYiBjdHNfdGFyZ2V0X21heF90cmFuc2l0aW9uX3RpbWUiCi0gICAgICBzZXQgbWFwKGNsa190cmVlX3NoaWVsZF9uZXQpICIjIGNyZWF0ZV9yb3V0ZV90eXBlIC1uYW1lIGxlYWYgLWJvdHRvbV9wcmVmZXJyZWRfbGF5ZXIgPGxheWVyPiAtdG9wX3ByZWZlcnJlZF9sYXllciA8bGF5ZXI+IC1zaGllbGRfbmV0IDxuZXQ+IC1ub25fZGVmYXVsdF9ydWxlIDxuZHI+IgotICAgICAgc2V0IG1hcChjbGtfdHJlZV9zaGllbGRfdGhyZXNoKSAic2V0X2RiIGN0c19yb3V0aW5nX3RvcF9taW5fZmFub3V0IgotICAgICAgc2V0IG1hcChjbGtfdHJlZV9ib3R0b21fbGF5ZXIpICIjIGNyZWF0ZV9yb3V0ZV90eXBlIC1uYW1lIHRvcCAtYm90dG9tX3ByZWZlcnJlZF9sYXllciA8bGF5ZXI+IC10b3BfcHJlZmVycmVkX2xheWVyIDxsYXllcj4gLXNoaWVsZF9uZXQgPG5ldD4gLW5vbl9kZWZhdWx0X3J1bGUgPG5kcj4iCi0gICAgICBzZXQgbWFwKGNsa190cmVlX3RvcF9sYXllcikgIiMgY3JlYXRlX3JvdXRlX3R5cGUgLW5hbWUgdG9wIC1ib3R0b21fcHJlZmVycmVkX2xheWVyIDxsYXllcj4gLXRvcF9wcmVmZXJyZWRfbGF5ZXIgPGxheWVyPiAtc2hpZWxkX25ldCA8bmV0PiAtbm9uX2RlZmF1bHRfcnVsZSA8bmRyPiIKLSAgICAgIHNldCBtYXAoY2xvY2tfZ2F0ZV9hd2FyZSkgInNldF9kYiBwbGFjZV9nbG9iYWxfY2xvY2tfZ2F0ZV9hd2FyZSIKLSAgICAgIHNldCBtYXAoY29uZ2VzdGlvbl9lZmZvcnQpICJzZXRfZGIgcGxhY2VfZ2xvYmFsX2NvbmdfZWZmb3J0IgotICAgICAgc2V0IG1hcChjcGZfZmlsZSkgIiMgcmVhZF9wb3dlcl9pbnRlbnQgLWNwZiA8ZmlsZT4iCi0gICAgICBzZXQgbWFwKGNwZl9pc29sYXRpb24pIGRlZnVuY3QKLSAgICAgIHNldCBtYXAoY3BmX2tlZXBfcm93cykgZGVmdW5jdAotICAgICAgc2V0IG1hcChjcGZfbGV2ZWxfc2hpZnRlcikgZGVmdW5jdAotICAgICAgc2V0IG1hcChjcGZfcG93ZXJfZG9tYWluKSBkZWZ1bmN0Ci0gICAgICBzZXQgbWFwKGNwZl9wb3dlcl9zd2l0Y2gpIGRlZnVuY3QKLSAgICAgIHNldCBtYXAoY3BmX3N0YXRlX3JldGVudGlvbikgZGVmdW5jdAotICAgICAgc2V0IG1hcChjcGZfdGltaW5nKSBkZWZ1bmN0Ci0gICAgICBzZXQgbWFwKGNwdXNfcGVyX3JlbW90ZV9ob3N0KSAic2V0X211bHRpX2NwdV91c2FnZSAtY3B1X3Blcl9yZW1vdGVfaG9zdCIKLSAgICAgIHNldCBtYXAoZmxleG1vZGVsX2FzX3B0bikgInNldF9kYiBwcm90b19jcmVhdGVfcGFydGl0aW9uX2FzX2ZsZXhtb2RlbCIKLSAgICAgIHNldCBtYXAoY3JlYXRlX2ZsZXhmaWxsZXJfYmxvY2thZ2UpICJzZXRfZGIgcHJvdG9fZmxleGZpbGxlcl9yb3V0ZV9ibG9ja2FnZSIKLSAgICAgIHNldCBtYXAoY3RzX2J1ZmZlcl9jZWxscykgInNldF9kYiBjdHNfYnVmZmVyX2NlbGxzIgotICAgICAgc2V0IG1hcChjdHNfZW5naW5lKSBub25lCi0gICAgICBzZXQgbWFwKGN0c19pbnZlcnRlcl9jZWxscykgInNldF9kYiBjdHNfaW52ZXJ0ZXJfY2VsbHMiCi0gICAgICBzZXQgbWFwKGN0c191c2VfaW52ZXJ0ZXJzKSAic2V0X2RiIGN0c191c2VfaW52ZXJ0ZXJzIgotICAgICAgc2V0IG1hcChkYnNfZGlyKSAic2V0X2RiIGZsb3dfZGF0YWJhc2VfZGlyZWN0b3J5IgotICAgICAgc2V0IG1hcChkZWx0YV9kZWxheV90aHJlc2hvbGQpICJzZXRfZGIgc2lfZGVsYXlfZGVsdGFfdGhyZXNob2xkIgotICAgICAgc2V0IG1hcChlbmFibGVfYW9jdikgInNldF9kYiB0aW1pbmdfYW5hbHlzaXNfYW9jdiIKLSAgICAgIHNldCBtYXAoZW5hYmxlX3NvY3YpICJzZXRfZGIgdGltaW5nX2FuYWx5c2lzX3NvY3YiCi0gICAgICBzZXQgbWFwKGVuYWJsZV9jcHByKSAic2V0X2RiIHRpbWluZ19hbmFseXNpc19jcHByIgotICAgICAgc2V0IG1hcChlbmFibGVfZmxleGlsbSkgIiMgbm9uZSA6IHBvc3NpYmxlIGZ1dHVyZSBoaWVyIGZsb3cgb3B0aW9uIgotICAgICAgc2V0IG1hcChlbmFibGVfbHZzKSAiIyBub25lIDogcG9zc2libGUgZnV0dXJlIGZsb3cgb3B0aW9uIgotICAgICAgc2V0IG1hcChlbmFibGVfbnJncikgZGVmdW5jdAotICAgICAgc2V0IG1hcChlbmFibGVfb2N2KSAic2V0X2RiIHRpbWluZ19hbmFseXNpc190eXBlIG9jdiIKLSAgICAgIHNldCBtYXAoZW5hYmxlX3BhYykgZGVmdW5jdAotICAgICAgc2V0IG1hcChlbmFibGVfcGFtKSAiIyBub25lIDogcG9zc2libGUgZnV0dXJlIGZsb3cgb3B0aW9uIgotICAgICAgc2V0IG1hcChlbmFibGVfcW9yX2NoZWNrKSBkZWZ1bmN0Ci0gICAgICBzZXQgbWFwKGVuYWJsZV9yY3ApICIjIG5vbmUgOiBjdXJyZW50IGZsb3cgdGVtcGxhdGUgb3B0aW9uIgotICAgICAgc2V0IG1hcChlbmFibGVfc2lfYXdhcmUpICJzZXRfZGIgZGVsYXljYWxfZW5hYmxlX3NpIgotICAgICAgc2V0IG1hcChlbmFibGVfc2lnbm9mZl9lY28pICIjIG5vbmUgOiBwb3NzaWJsZSBmdXR1cmUgZmxvdyBvcHRpb24iCi0gICAgICBzZXQgbWFwKGVuYWJsZV9zcykgZGVmdW5jdAotICAgICAgc2V0IG1hcChmaWxsZXJfY2VsbHMpICJzZXRfZGIgYWRkX2ZpbGxlcnNfY2VsbHMiCi0gICAgICBzZXQgbWFwKGZpeF9mYW5vdXRfbG9hZCkgInNldF9kYiBvcHRfZml4X2Zhbm91dF9sb2FkIgotICAgICAgc2V0IG1hcChmaXhfaG9sZF9pZ25vcmVfaW9zKSAic2V0X2RiIGZpeF9ob2xkX2lnbm9yZV9wYXRoX2dyb3VwcyIKLSAgICAgIHNldCBtYXAoZml4X2xpdGhvKSAic2V0X2RiIHJvdXRlX2Rlc2lnbl9kZXRhaWxfcG9zdF9yb3V0ZV9saXRob19yZXBhaXIiCi0gICAgICBzZXQgbWFwKGZsb3dfZWZmb3J0KSAic2V0X2RiIGRlc2lnbl9mbG93X2VmZm9ydCIKLSAgICAgIHNldCBtYXAoYWRkX3RyYWNrcykgIiMgYWRkX3RyYWNrcyIKLSAgICAgIHNldCBtYXAoZ3JvdW5kX25ldHMpICJzZXRfZGIgaW5pdF9ncm91bmRfbmV0cyIKLSAgICAgIHNldCBtYXAoaGlnaF90aW1pbmdfZWZmb3J0KSBkZWZ1bmN0Ci0gICAgICBzZXQgbWFwKGllZWUxODAxX2ZpbGUpICIjIHJlYWRfcG93ZXJfaW50ZW50IC0xODAxIgotICAgICAgc2V0IG1hcChpZWVlMTgwMV9pc29sYXRpb24pIGRlZnVuY3QKLSAgICAgIHNldCBtYXAoaWVlZTE4MDFfa2VlcF9yb3dzKSBkZWZ1bmN0Ci0gICAgICBzZXQgbWFwKGllZWUxODAxX2xldmVsX3NoaWZ0ZXIpIGRlZnVuY3QKLSAgICAgIHNldCBtYXAoaWVlZTE4MDFfcG93ZXJfZG9tYWluKSBkZWZ1bmN0Ci0gICAgICBzZXQgbWFwKGllZWUxODAxX3Bvd2VyX3N3aXRjaCkgZGVmdW5jdAotICAgICAgc2V0IG1hcChpZWVlMTgwMV9zdGF0ZV9yZXRlbnRpb24pIGRlZnVuY3QKLSAgICAgIHNldCBtYXAoaWVlZTE4MDFfdGltaW5nKSBkZWZ1bmN0Ci0gICAgICBzZXQgbWFwKGxpdGhvX2RyaXZlbl9yb3V0aW5nKSAic2V0X2RiIHJvdXRlX2Rlc2lnbl93aXRoX2xpdGhvX2RyaXZlbiIgCi0gICAgICBzZXQgbWFwKGxvY2FsX2NwdXMpICJzZXRfbXVsdGlfY3B1X3VzYWdlIC1sb2NhbF9jcHUiCi0gICAgICBzZXQgbWFwKGxvZ19kaXIpICJzZXRfZGIgZmxvd19sb2dfZGlyZWN0b3J5IgotICAgICAgc2V0IG1hcChtYXhfcm91dGVfbGF5ZXIpICJzZXRfZGIgcm91dGVfdG9wX3JvdXRpbmdfbGF5ZXIiCi0gICAgICBzZXQgbWFwKG11bHRpX2N1dF9lZmZvcnQpICJzZXRfZGIgcm91dGVfZGVzaWduX2RldGFpbF91c2VfbXVsdGlfY3V0X3ZpYV9lZmZvcnQiCi0gICAgICBzZXQgbWFwKG9hX2Fic3RyYWN0X25hbWUpICJzZXRfZGIgaW5pdF9vYV9hYnN0cmFjdF92aWV3cyIKLSAgICAgIHNldCBtYXAob2FfbGF5b3V0X25hbWUpICJzZXRfZGIgaW5pdF9vYV9sYXlvdXRfdmlld3MiCi0gICAgICBzZXQgbWFwKG9hX2Rlc2lnbl9jZWxsKSAic2V0X2RiIGluaXRfb2FfZGVzaWduX2NlbGwiCi0gICAgICBzZXQgbWFwKG9hX2Rlc2lnbl9saWIpICJzZXRfZGIgaW5pdF9vYV9kZXNpZ25fbGliIgotICAgICAgc2V0IG1hcChvYV9kZXNpZ25fdmlldykgInNldF9kYiBpbml0X29hX2Rlc2lnbl92aWV3IgotICAgICAgc2V0IG1hcChwbGFjZV9pb19waW5zKSAic2V0X2RiIHBsYWNlX2dsb2JhbF9wbGFjZV9pb19waW5zIgotICAgICAgc2V0IG1hcChwb3dlcl9hbmFseXNpc192aWV3KSAic2V0X2RiIHBvd2VyX3ZpZXciCi0gICAgICBzZXQgbWFwKHBvd2VyX2VmZm9ydCkgInNldF9kYiBkZXNpZ25fcG93ZXJfZWZmb3J0IgotICAgICAgc2V0IG1hcChwb3dlcl9uZXRzKSAic2V0X2RiIGluaXRfcG93ZXJfbmV0cyIKLSAgICAgIHNldCBtYXAocG9zdHJvdXRlX2V4dHJhY3Rpb25fZWZmb3J0KSAic2V0X2RiIGV4dHJhY3RfcmNfZWZmb3J0X2xldmVsIgotICAgICAgc2V0IG1hcChwcm9jZXNzKSAic2V0X2RiIGRlc2lnbl9wcm9jZXNzX25vZGUiCi0gICAgICBzZXQgbWFwKHJlbW90ZV9ob3N0cykgInNldF9tdWx0aV9jcHVfdXNhZ2UgLXJlbW90ZV9ob3N0cyIKLSAgICAgIHNldCBtYXAocmVzaXplX3NoaWZ0ZXJfYW5kX2lzb19pbnN0cykgInNldF9kYiBvcHRfcmVzaXplX2xldmVsX3NoaWZ0ZXJfYW5kX2lzb19pbnN0cyIKLSAgICAgIHNldCBtYXAocm91dGVfY2xvY2tfbmV0cykgbm9uZQotICAgICAgc2V0IG1hcChzaWdub2ZmX2V4dHJhY3Rpb25fZWZmb3J0KSAic2V0X2RiIGV4dHJhY3RfcmNfZWZmb3J0X2xldmVsIgotICAgICAgc2V0IG1hcChza2V3X2J1ZmZlcnMpICJzZXRfZGIgb3B0X2Nsb2NrX3NrZXdfYnVmZmVyX2NlbGxzIgotICAgICAgc2V0IG1hcChzdXBlcmhvc3RzKSBkZWZ1bmN0Ci0gICAgICBzZXQgbWFwKHN1cGVydGhyZWFkcykgZGVmdW5jdAotICAgICAgc2V0IG1hcCh0aHJlYWRzKSBkZWZ1bmN0Ci0gICAgICBzZXQgbWFwKHRpZV9jZWxscykgInNldF9kYiBhZGRfdGllb2Zmc19jZWxscyIKLSAgICAgIHNldCBtYXAodGllX2NlbGxzLG1heF9mYW5vdXQpICJzZXRfZGIgYWRkX3RpZW9mZnNfbWF4X2Rpc3RhbmNlIiAKLSAgICAgIHNldCBtYXAodG9wX2NlbGwpICIjIFxbZ2V0X2RiIGRlc2lnbnMgLm5hbWVcXSIKLSAgICAgIHNldCBtYXAodHF1YW50dXNfZmlsZSkgZGVmdW5jdAotICAgICAgc2V0IG1hcCh1cGRhdGVfaW9fbGF0ZW5jeSkgInNldF9kYiBjdHNfdXBkYXRlX2lvX2xhdGVuY3kiCi0gICAgICBzZXQgbWFwKHVzZV9wcm90b19uZXRfZGVsYXlfbW9kZWwpICJzZXRfZGIgcHJvdG9fdXNlX3RpbWluZ19uZXRfZGVsYXlfbW9kZWwiCi0gICAgIAotICAgICAgZmlsZSBta2RpciAkdmFycyhzY3JpcHRfZGlyKQotICAgICAgZmlsZSBkZWxldGUgJHZhcnMoc2NyaXB0X2RpcikvYXR0cmlidXRlcy50Y2wKLSAgICAgIHNldCBvcCBbb3BlbiAkdmFycyhzY3JpcHRfZGlyKS8uYXR0cmlidXRlcy50Y2wgd10KLSAgICAgIAotICAgICAgZm9yZWFjaCB2YXIgW2FycmF5IG5hbWVzIHZhcnNdIHsKLSAgICAgICAgaWYge1tpbmZvIGV4aXN0cyBtYXAoJHZhcildfSB7Ci0gICAgICAgICAgIGlmIHsoJG1hcCgkdmFyKSA9PSAibm9uZSIpIHx8ICgkdmFycygkdmFyKSA9PSAiIil9IHsKLSAgICAgICAgICAgICAgY29udGludWUgCi0gICAgICAgICAgIH0KLSAgICAgICAgICAgaWYgeyRtYXAoJHZhcikgPT0gImRlZnVuY3QifSB7Ci0jICAgICAgICAgICAgICBwdXRzICRvcCAiIyB2YXJzKCR2YXIpIGlzICRtYXAoJHZhcikiCi0gICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgIGlmIHtbbGxlbmd0aCAkdmFycygkdmFyKV0gPiAxfSB7Ci0gICAgICAgICAgICAgICAgIHB1dHMgJG9wICIkbWFwKCR2YXIpIFxbbGlzdCAkdmFycygkdmFyKVxdIDsgIyAkdmFyICIKLSAgICAgICAgICAgICAgfSBlbHNlaWYge1tyZWdleHAgIl4jIiAkbWFwKCR2YXIpXX0gewotIyAgICAgICAgICAgICAgICAgcHV0cyAkb3AgIiRtYXAoJHZhcikgOyAjICR2YXIgIgotICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICBpZiB7JHZhciA9PSAicHJvY2VzcyJ9IHsKLSAgICAgICAgICAgICAgICAgICAgc2V0IHZhcnMoJHZhcikgW3JlZ3N1YiAibm0iICR2YXJzKHByb2Nlc3MpICIiXQotICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgIGlmIHskdmFyID09ICJlbmFibGVfb2N2In0gewotICAgICAgICAgICAgICAgICAgIHNldCAkdmFycygkdmFyKSAiIgotICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgIHB1dHMgJG9wICIkbWFwKCR2YXIpICR2YXJzKCR2YXIpIDsgIyAkdmFyICIKLSAgICAgICAgICAgICAgfQotICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICAgIH0KLSAgICAgIAotICAgICAgY2xvc2UgJG9wCi0gICAgICAKLSAgICAgIGV4ZWMgY2F0ICR2YXJzKHNjcmlwdF9kaXIpLy5hdHRyaWJ1dGVzLnRjbCB8IHNvcnQgPiAkdmFycyhzY3JpcHRfZGlyKS9hdHRyaWJ1dGVzLnRjbAotICAgICAgZmlsZSBkZWxldGUgJHZhcnMoc2NyaXB0X2RpcikvLmF0dHJpYnV0ZXMudGNsCi0KLSAgIH0KLQotICAgcHJvYyBjb252ZXJ0X3BsdWdpbnMge30gewotCi0gICAgIGdsb2JhbCB2YXJzCi0gICAgIGdsb2JhbCB3YXJuaW5ncwotCi0gICAgIHNldCBhbmNob3IoYWx3YXlzX3NvdXJjZV90Y2wpICJiZWZvcmUgaW5pdF9mbG9vcnBsYW4iCi0gICAgIHNldCBhbmNob3IoZmluYWxfYWx3YXlzX3NvdXJjZV90Y2wpICJiZWZvcmUgYmxvY2tfZmluaXNoIgotICAgICBzZXQgYW5jaG9yKHByZV9pbml0X3RjbCkgImJlZm9yZSBpbml0X2Rlc2lnbiIKLSAgICAgc2V0IGFuY2hvcihwb3N0X2luaXRfdGNsKSAiYWZ0ZXIgYWRkX3RyYWNrcyIKLSAgICAgc2V0IGFuY2hvcihwcmVfcGxhY2VfdGNsKSAiYmVmb3JlIHJ1bl9wbGFjZV9vcHQiCi0gICAgIHNldCBhbmNob3IocG9zdF9wbGFjZV90Y2wpICJhZnRlciBydW5fcGxhY2Vfb3B0IgotICAgICBpZiB7W2xpbmRleCBbc3BsaXQgJHZhcnModmVyc2lvbikgIi4iXSAgMF0gPiAxNn0gewotICAgICAgIHNldCBhbmNob3IocHJlX2N0c190Y2wpICJiZWZvcmUgYWRkX2Nsb2NrX3NwZWMiCi0gICAgICAgc2V0IGFuY2hvcihwb3N0X2N0c190Y2wpICJhZnRlciBhZGRfY2xvY2tfdHJlZSIKLSAgICAgfSBlbHNlIHsKLSAgICAgICBzZXQgYW5jaG9yKHByZV9jdHNfdGNsKSAiYmVmb3JlIGJ1aWxkX2Nsb2NrX3RyZWUiCi0gICAgICAgc2V0IGFuY2hvcihwb3N0X2N0c190Y2wpICJhZnRlciBidWlsZF9jbG9ja190cmVlIgotICAgICB9Ci0gICAgIHNldCBhbmNob3IocHJlX3JvdXRlX3RjbCkgImJlZm9yZSBydW5fcm91dGUiCi0gICAgIHNldCBhbmNob3IocG9zdF9yb3V0ZV90Y2wpICJhZnRlciBydW5fcm91dGUiCi0gICAgIHNldCBhbmNob3IocHJlX3Bvc3Ryb3V0ZV90Y2wpICJiZWZvcmUgcnVuX29wdF9wb3N0cm91dGUiCi0gICAgIHNldCBhbmNob3IocG9zdF9wb3N0cm91dGVfdGNsKSAiYWZ0ZXIgcnVuX29wdF9wb3N0cm91dGUiCi0gICAgICNzZXQgYW5jaG9yKHByZV9zaWdub2ZmX3RjbCkgImJlZm9yZSBydW5fc3RhIgotICAgICAjc2V0IGFuY2hvcihwb3N0X3NpZ25vZmZfdGNsKSAiYWZ0ZXIgcnVuX3N0YSIKLQotICAgICBzZXQgc3RlcChwcmVfaW5pdF90Y2wpICJpbml0IgotICAgICBzZXQgc3RlcChwb3N0X2luaXRfdGNsKSAiaW5pdCIKLSAgICAgc2V0IHN0ZXAocHJlX3BsYWNlX3RjbCkgInBsYWNlIgotICAgICBzZXQgc3RlcChwb3N0X3BsYWNlX3RjbCkgInBsYWNlIgotICAgICBzZXQgc3RlcChwcmVfY3RzX3RjbCkgImN0cyIKLSAgICAgc2V0IHN0ZXAocG9zdF9jdHNfdGNsKSAiY3RzIgotICAgICBzZXQgc3RlcChwcmVfcm91dGVfdGNsKSAicm91dGUiCi0gICAgIHNldCBzdGVwKHBvc3Rfcm91dGVfdGNsKSAicm91dGUiCi0gICAgIHNldCBzdGVwKHByZV9wb3N0cm91dGVfdGNsKSAicG9zdHJvdXRlIgotICAgICBzZXQgc3RlcChwb3N0X3Bvc3Ryb3V0ZV90Y2wpICJwb3N0cm91dGUiCi0gICAgIHNldCBzdGVwKHByZV9zaWdub2ZmX3RjbCkgInNpZ25vZmYiCi0gICAgIHNldCBzdGVwKHBvc3Rfc2lnbm9mZl90Y2wpICJzaWdub2ZmIgotICAKLSAgICAgc2V0IGNmIFtvcGVuIGNvbnZlcnRfcGx1Z2lucy50Y2wgd10KLQotICAgICAjZmlsZSBkZWxldGUgLWZvcmNlIC5mZnRtcAotICAgICAjZmlsZSBta2RpciAuZmZ0bXAKLQotICAgICBzZXQgbmV3X3BsdWdzIFtsaXN0XSAKLSAgICAgc2V0IG9sZF9wbHVncyBbbGlzdF0KLSAgICAgZm9yZWFjaCBwbHVnICR2YXJzKHBsdWdpbnNfZGVmaW5lZCkgewotICAgICAgIGlmIHtbZmlsZSBleGlzdHMgJHZhcnMocGx1Z19kaXIpLyR2YXJzKCRwbHVnKV19IHsgCi0gICAgICAgICAgc2V0IHBsdWdfZmlsZSBbZmlsZSBub3JtYWxpemUgJHZhcnMocGx1Z19kaXIpLyR2YXJzKCRwbHVnKV0KLSAgICAgICAgICBsYXBwZW5kIG9sZF9wbHVncyAiJHBsdWcgJHZhcnMocGx1Z19kaXIpLyR2YXJzKCRwbHVnKSIKLSAgICAgICB9IGVsc2UgewotICAgICAgICAgIGlmIHtbZmlsZSBleGlzdHMgJHZhcnMoJHBsdWcpXX0gewotICAgICAgICAgICAgIHNldCBwbHVnX2ZpbGUgJHZhcnMoJHBsdWcpCi0gICAgICAgICAgICAgbGFwcGVuZCBvbGRfcGx1Z3MgIiRwbHVnICR2YXJzKCRwbHVnKSIKLSAgICAgICAgICB9IGVsc2UgeyAKLSAgICAgICAgICAgICBjb250aW51ZSAKLSAgICAgICAgICB9Ci0gICAgICAgfQotICAgICAgICNwdXRzICRjZiAiY29udmVydF9sZWdhY3lfdG9fY29tbW9uX3VpICRwbHVnX2ZpbGUgLmZmdG1wL1tmaWxlIHRhaWwgJHBsdWdfZmlsZV0iCi0gICAgICAgI2xhcHBlbmQgbmV3X3BsdWdzICIkcGx1ZyAuZmZ0bXAvW2ZpbGUgdGFpbCAkcGx1Z19maWxlXSIKLSAgICAgICAjcHV0cyAkY2YgImNvbnZlcnRfbGVnYWN5X3RvX2NvbW1vbl91aSAkcGx1Z19maWxlIFtmaWxlIGRpcm5hbWUgJHBsdWdfZmlsZV1fY3VpL1tmaWxlIHRhaWwgJHBsdWdfZmlsZV0iCi0gICAgICAgcHV0cyAkY2YgImZpbGUgbWtkaXIgY29udmVydGVkX3BsdWdpbnMiCi0gICAgICAgcHV0cyAkY2YgImNvbnZlcnRfbGVnYWN5X3RvX2NvbW1vbl91aSAkcGx1Z19maWxlIGNvbnZlcnRlZF9wbHVnaW5zL1tmaWxlIHRhaWwgJHBsdWdfZmlsZV0iCi0gICAgICAgbGFwcGVuZCBuZXdfcGx1Z3MgIiRwbHVnIGN1aS4kcGx1Z19maWxlIgotICAgICB9Ci0KLSAgICAgcHV0cyAkY2YgImV4aXQiCi0gICAgIGNsb3NlICRjZgotCi0gICAgIGlmIHshW2luZm8gZXhpc3RzIHZhcnMoY29udmVydF9wbHVnaW5zKV0gfHwgKFtpbmZvIGV4aXN0cyB2YXJzKGNvbnZlcnRfcGx1Z2lucyldICAmJiAhJHZhcnMoY29udmVydF9wbHVnaW5zKSl9IHsKLSMgICAgICAgUHV0cyAiPEZGPiBDb252ZXJ0aW5nIFtsbGVuZ3RoICR2YXJzKHBsdWdpbnNfZGVmaW5lZCldIHBsdWdpbnMgLi4uIgotIyAgICAgICBpZiB7W2NhdGNoIHtldmFsICJleGVjIGlubm92dXMgLW5vd2luIC1ub3Z1c191aSAtZmlsZXMgLmNvbnZlcnRfcGx1Z2lucy50Y2wifV19IHsKLSMgICAgICAgICAgcHV0cyAiPEZGPiBXQVJOSU5HOiBDYW5ub3QgZmluZCBJbm5vdnVzIGluIHlvdXIgcGF0aCBzbyBwbHVnaW5zIHdpbGwgbm90IGJlIGNvbnZlcnRlZCIKLSMgICAgICAgICAgc2V0IHdhcm5pbmdzKCR2YXJzKHdhcm5pbmdfY291bnQpKSAiQ2Fubm90IGZpbmQgSW5ub3Z1cyBpbiB5b3VyIHBhdGggc28gcGx1Z2lucyB3aWxsIG5vdCBiZSBjb252ZXJ0ZWQiCi0jICAgICAgICAgIGluY3IgdmFycyh3YXJuaW5nX2NvdW50KQotIyAgICAgICAgICByZXR1cm4gCi0jICAgICAgIH0KLSAgICAgfQotICAgIAotICAgICBmaWxlIG1rZGlyICR2YXJzKHNjcmlwdF9kaXIpCi0gICAgIHNldCBvZiBbb3BlbiAkdmFycyhzY3JpcHRfZGlyKS9wbHVnX3N0ZXBzLnRjbCB3XQotCi0gICAgIHNldCBwbHVnX2RpY3QgW2pvaW4gJG5ld19wbHVnc10KLSAgICAgc2V0IHBsdWdfZGljdCBbam9pbiAkb2xkX3BsdWdzXQotICAgICBmb3JlYWNoIGtleSBbZGljdCBrZXlzICRwbHVnX2RpY3RdIHsKLSAgICAgICAjcHV0cyAiJGtleSAtPiBbZGljdCBnZXQgJHBsdWdfZGljdCAka2V5XSIKLSAgICAgICBzZXQgaXAgW29wZW4gW2RpY3QgZ2V0ICRwbHVnX2RpY3QgJGtleV0gcl0KLSAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMobGVnYWN5X3BsdWdpbnMpXSAmJiAkdmFycyhsZWdhY3lfcGx1Z2lucyl9IHsKLSAgICAgICAgIHB1dHMgJG9mICJjcmVhdGVfZmxvd19zdGVwIC1uYW1lIFtyZWdzdWIgIl90Y2wiICRrZXkgIl9wbHVnIl0gLWxlZ2FjeSBceyIKLSAgICAgICB9IGVsc2UgewotICAgICAgICAgcHV0cyAkb2YgImNyZWF0ZV9mbG93X3N0ZXAgLW5hbWUgW3JlZ3N1YiAiX3RjbCIgJGtleSAiX3BsdWciXSBceyIKLSAgICAgICB9Ci0gICAgICAgZm9yZWFjaCBmaWxlICR2YXJzKGNvbmZpZ19maWxlcykgewotICAgICAgICAgIHB1dHMgJG9mICJzb3VyY2UgJGZpbGUiIAotICAgICAgIH0KLSAgICAgICBpZiB7W2luZm8gZXhpc3RzIHN0ZXAoJGtleSldfSB7Ci0gICAgICAgICBwdXRzICRvZiAic2V0IHZhcnMoc3RlcCkgJHN0ZXAoJGtleSkiIAotICAgICAgIH0KLSAgICAgICB3aGlsZSB7W2dldHMgJGlwIGxpbmVdPj0wfSB7Ci0gICAgICAgICBwdXRzICRvZiAiICAgICRsaW5lIgotICAgICAgIH0KLSAgICAgICBwdXRzICRvZiAiXH0iCi0gICAgICAgaWYge1tpbmZvIGV4aXN0cyBhbmNob3IoJGtleSldfSB7Ci0gICAgICAgICBwdXRzICRvZiAiZWRpdF9mbG93IC1hcHBlbmQgZmxvd19zdGVwOltyZWdzdWIgIl90Y2wiICRrZXkgIl9wbHVnIl0gLVtsaW5kZXggJGFuY2hvcigka2V5KSAwXSBmbG93X3N0ZXA6W2xpbmRleCAkYW5jaG9yKCRrZXkpIDFdIgotICAgICAgIH0gIGVsc2UgewotIyAgICAgICAgIHB1dHMgIjxGRj4gTm8gYW5jaG9yIGZvdW5kIGZvciAkcGx1ZyIKLSAgICAgICAgIHNldCB3YXJuaW5ncygkdmFycyh3YXJuaW5nX2NvdW50KSkgIk5vIGFuY2hvciBmb3VuZCBmb3IgJGtleSIKLSAgICAgICAgIGluY3IgdmFycyh3YXJuaW5nX2NvdW50KQotICAgICAgIH0KLSAgICAgICBjbG9zZSAkaXAKLSAgICAgfQotICAgICBjbG9zZSAkb2YKLSAgICAgZmlsZSBkZWxldGUgLWZvcmNlIC5mZnRtcAotICAgICBpZiB7W2ZpbGUgZXhpc3RzIHNjcmlwdHMvZmxvd19jb25maWcudGVtcGxhdGVdfSB7Ci0gICAgICAgZmlsZSBjb3B5IC1mb3JjZSBzY3JpcHRzL2Zsb3dfY29uZmlnLnRlbXBsYXRlIHNjcmlwdHMvZmxvd19jb25maWcudGNsCi0gICAgIH0gCi0gICAgIGlmIHtbZmlsZSBleGlzdHMgJHZhcnMoc2NyaXB0X2Rpcikvdmlld19kZWZpbml0aW9uLnRjbF19IHsKLSAgICAgICBmaWxlIG1rZGlyIHNjcmlwdHMKLSAgICAgICBmaWxlIGNvcHkgLWZvcmNlICR2YXJzKHNjcmlwdF9kaXIpL3ZpZXdfZGVmaW5pdGlvbi50Y2wgc2NyaXB0cy9tbW1jX2NvbmZpZy50Y2wKLSAgICAgfSBlbHNlICB7Ci0gICAgICAgICBzZXQgd2FybmluZ3MoJHZhcnMod2FybmluZ19jb3VudCkpICJGaWxlICR2YXJzKHNjcmlwdF9kaXIpL3ZpZXdfZGVmaW5pdGlvbi50Y2wgbm90IGZvdW5kIgotICAgICAgICAgaW5jciB2YXJzKHdhcm5pbmdfY291bnQpCi0gICAgIH0KLSMgICAgIHNldCBvcCBbb3BlbiBzY3JpcHRzL2Zsb3dfY29uZmlnLnRjbCBhXQotIyAgICAgcHV0cyAkb3AgInNvdXJjZSAkdmFycyhzY3JpcHRfZGlyKS9wbHVnX3N0ZXBzLnRjbCIKLSMgICAgIGNsb3NlICRvcAotICAgfQotfQotCi1uYW1lc3BhY2UgZXZhbCBmZl9ub3Z1czo6IHsKLSAgIHByb2MgcnVuX2luaXQge30gewotICAgICAgdXBsZXZlbCAjMCBldmFsIFtGRl9OT1ZVUzo6cnVuX2luaXRdCi0gICB9Ci0gICBwcm9jIHJ1bl9wbGFjZSB7fSB7Ci0gICAgICB1cGxldmVsICMwIGV2YWwgW0ZGX05PVlVTOjpydW5fcGxhY2VdCi0gICB9Ci0gICBwcm9jIHJ1bl9wcmVjdHMge30gewotICAgICAgdXBsZXZlbCAjMCBldmFsIFtGRl9OT1ZVUzo6cnVuX3ByZWN0c10KLSAgIH0KLSAgIHByb2MgcnVuX2N0cyB7fSB7Ci0gICAgICB1cGxldmVsICMwIGV2YWwgW0ZGX05PVlVTOjpydW5fY3RzXQotICAgfQotICAgcHJvYyBydW5fcG9zdGN0cyB7fSB7Ci0gICAgICB1cGxldmVsICMwIGV2YWwgW0ZGX05PVlVTOjpydW5fcG9zdGN0c10KLSAgIH0KLSAgIHByb2MgcnVuX3Bvc3RjdHNfaG9sZCB7fSB7Ci0gICAgICB1cGxldmVsICMwIGV2YWwgW0ZGX05PVlVTOjpydW5fcG9zdGN0c19ob2xkXQotICAgfQotICAgcHJvYyBydW5fcm91dGUge30gewotICAgICAgdXBsZXZlbCAjMCBldmFsIFtGRl9OT1ZVUzo6cnVuX3JvdXRlXQotICAgfQotICAgcHJvYyBydW5fcG9zdHJvdXRlIHt9IHsKLSAgICAgIHVwbGV2ZWwgIzAgZXZhbCBbRkZfTk9WVVM6OnJ1bl9wb3N0cm91dGVdCi0gICB9Ci0gICBwcm9jIHJ1bl9wb3N0cm91dGVfaG9sZCB7fSB7Ci0gICAgICB1cGxldmVsICMwIGV2YWwgW0ZGX05PVlVTOjpydW5fcG9zdHJvdXRlX2hvbGRdCi0gICB9Ci0gICBwcm9jIHJ1bl9wb3N0cm91dGVfc2lfaG9sZCB7fSB7Ci0gICAgICB1cGxldmVsICMwIGV2YWwgW0ZGX05PVlVTOjpydW5fcG9zdHJvdXRlX3NpX2hvbGRdCi0gICB9Ci0gICBwcm9jIHJ1bl9wb3N0cm91dGVfc2kge30gewotICAgICAgdXBsZXZlbCAjMCBldmFsIFtGRl9OT1ZVUzo6cnVuX3Bvc3Ryb3V0ZV9zaV0KLSAgIH0KLSAgIHByb2MgcnVuX3NpZ25vZmYge30gewotICAgICAgdXBsZXZlbCAjMCBldmFsIFtGRl9OT1ZVUzo6cnVuX3NpZ25vZmZdCi0gICB9Ci0gICBwcm9jIHJ1bl9hc3NlbWJsZSB7fSB7Ci0gICAgICB1cGxldmVsICMwIGV2YWwgW0ZGX05PVlVTOjpydW5fYXNzZW1ibGVdCi0gICB9Ci0gICBwcm9jIHJ1bl9yZWJ1ZGdldCB7fSB7Ci0gICAgICB1cGxldmVsICMwIGV2YWwgW0ZGX05PVlVTOjpydW5fcmVidWRnZXRdCi0gICB9Ci0gICBwcm9jIHJ1bl9mbGV4aWxtIHt9IHsKLSAgICAgIHVwbGV2ZWwgIzAgZXZhbCBbRkZfTk9WVVM6OnJ1bl9mbGV4aWxtXQotICAgfQotICAgcHJvYyBydW5fYXNzZW1ibGVfZmxleGlsbSB7fSB7Ci0gICAgICB1cGxldmVsICMwIGV2YWwgW0ZGX05PVlVTOjpydW5fYXNzZW1ibGVfZmxleGlsbV0KLSAgIH0KLSAgIHByb2MgcnVuX3BhcnRpdGlvbiB7fSB7Ci0gICAgICB1cGxldmVsICMwIGV2YWwgW0ZGX05PVlVTOjpydW5fcGFydGl0aW9uXQotICAgfQotICAgcHJvYyBydW5fbGVjIHt9IHsKLSAgICAgIHVwbGV2ZWwgIzAgZXZhbCBbRkZfTk9WVVM6OnJ1bl9sZWNdCi0gICB9Ci0gICBwcm9jIHJ1bl9hbGwge30gewotICAgICAgdXBsZXZlbCAjMCBGRl9OT1ZVUzo6cnVuX2FsbAotICAgfQotfQotCi1uYW1lc3BhY2UgZXZhbCBGRl9FREk6OiB7Ci0KLSAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICMgUHJvY2VkdXJlIHRvIHNlZWQgY2VydGFpbiBmbG93IHZhcmlhYmxlcyB0byBhIGtub3duIGRlZmF1bHQgdmFsdWUgYXMgd2VsbAotICAgIyBhcyBkYXRhIHZhcmlhYmxlcyByZXF1aXJlZCB0byBzZWVkIHRoZSBnZW5lcmljIGNvbmZpZ3VyYXRpb24gZmlsZQotICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgcHJvYyBzZWVkX3ZhcmlhYmxlcyB7e2ZvcmNlIDB9fSB7Ci0KLSAgICAgIGdsb2JhbCB2YXJzCi0gICAgICBnbG9iYWwgcmRhX2RlZmF1bHRzCi0gICAgICBnbG9iYWwgdWRtCi0gICAgICBnbG9iYWwgZW52Ci0gICAgICBnbG9iYWwgaW5mb3MKLSAgICAgIGdsb2JhbCB3YXJuaW5ncwotICAgICAgZ2xvYmFsIGVycm9ycwotICAgICAgZ2xvYmFsIGZhcmdzIAotICAgICAgZ2xvYmFsIGRhcmdzIAotCi0gICAgICBpZiB7JGZvcmNlfSB7Ci0gICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoc2VlZCldfSB7Ci0gICAgICAgICAgICB1bnNldCB2YXJzKHNlZWQpCi0gICAgICAgICB9Ci0gICAgICB9Ci0KLSAgICAgIGlmIHshW2luZm8gZXhpc3RzIHZhcnMoc2VlZCldfSB7Ci0KLSAgICAgICAgIHB1dHMgIjxGRj4gU2VlZGluZyB2YXJpYWJsZXMgLi4uIgotCi0gICAgICAgICBpZiB7IVtpbmZvIGV4aXN0cyB2YXJzKHdhcm5pbmdfY291bnQpXX0gewotICAgICAgICAgICAgc2V0IHZhcnMod2FybmluZ19jb3VudCkgMAotICAgICAgICAgfQotICAgICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycyhlcnJvcl9jb3VudCldfSB7Ci0gICAgICAgICAgICBzZXQgdmFycyhlcnJvcl9jb3VudCkgMAotICAgICAgICAgfQotICAgICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycyhpbmZvX2NvdW50KV19IHsKLSAgICAgICAgICAgIHNldCB2YXJzKGluZm9fY291bnQpIDAKLSAgICAgICAgIH0KLQotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgIyBTZXQgdmFycyh2ZXJzaW9uKSB0byAiMTcuMS4wIiBpZiBub3QgZGVmaW5lZAotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycyh2ZXJzaW9uKV19IHsKLSAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgZmFyZ3ModmVyc2lvbildfSB7Ci0jICAgICAgICAgICAgICAgcHV0cyAiPEZGPiBJTkZPOiBWYXJpYWJsZSB2YXJzKHZlcnNpb24pIG5vdCBkZWZpbmVkIC0gc2V0dGluZyB0byAnJGZhcmdzKHZlcnNpb24pJyIKLSAgICAgICAgICAgICAgIHNldCB2YXJzKHZlcnNpb24pICRmYXJncyh2ZXJzaW9uKQotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIHNldCB2YXJzKHZlcnNpb24pICRkYXJncyh2ZXJzaW9uKQotICAgICAgICAgICAgfQotICAgICAgICAgICAgc2V0IHZhcnMoZmxvdykgbW1tYwotICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIGlmIHsoW2xzZWFyY2ggJEZGOjp2YWxpZF92ZXJzaW9ucyAkdmFycyh2ZXJzaW9uKV0gPCAwKX0gewotICAgICAgICAgICAgICAgc2V0IG1zZyAiVmVyc2lvbiAnJHZhcnModmVyc2lvbiknIG5vdCBzdXBwb3J0ZWQgLSBzZXR0aW5nIHRvICcxNy4xLjAnIgotICAgICAgICAgICAgICAgcHV0cyAiPEZGPiBXQVJOSU5HOiAkbXNnIgotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICAkbXNnXG4iCi0gICAgICAgICAgICAgICBzZXQgd2FybmluZ3MoJHZhcnMod2FybmluZ19jb3VudCkpICRtc2cKLSAgICAgICAgICAgICAgIGluY3IgdmFycyh3YXJuaW5nX2NvdW50KQotICAgICAgICAgICAgICAgc2V0IHZhcnMoZmxvdykgbW1tYwotICAgICAgICAgICAgICAgc2V0IHZhcnModmVyc2lvbikgIjE3LjEuMCIKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBpZiB7W2xpbmRleCBbc3BsaXQgJHZhcnModmVyc2lvbikgIi4iXSAgMF0gPiAxMH0gewotICAgICAgICAgICAgICAgICAgc2V0IHZhcnMoZmxvdykgbW1tYwotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAgfQotCi0gICAgICAgICBpZiB7JHZhcnMobW9kZSkgPT0gInRvcF9kb3duIn0geyBzZXQgdmFycyhtb2RlKSBoaWVyIH0KLQotICAgICAgICAgaWYge1tyZWdleHAgIjkuMSIgJHZhcnModmVyc2lvbildfSB7Ci0gICAgICAgICAgICBzZXQgdmFycyhlbmFibGVfbGRiKSBGQUxTRQotICAgICAgICAgfQotICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGVuYWJsZV9sZGIpXSAmJiAkdmFycyhlbmFibGVfbGRiKX0gewotICAgICAgICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycyhyYW5fY29tcGlsZSldfSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGX0VESTo6cnVuX2NvbXBpbGVdIAotICAgICAgICAgICAgfQotICAgICAgICAgfQotCi0KLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICMgU2V0IHZhcnMoZmxvdykgdG8gIm1tbWMiIGlmIG5vdCBkZWZpbmVkCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAgICBpZiB7IVtpbmZvIGV4aXN0cyB2YXJzKGZsb3cpXX0gewotICAgICAgICAgICAgcHV0cyAiPEZGPiBJTkZPOiBWYXJpYWJsZSB2YXJzKGZsb3cpIG5vdCBkZWZpbmVkIC0gc2V0dGluZyB0byAnbW1tYyciCi0gICAgICAgICAgICBzZXQgdmFycyhmbG93KSBtbW1jCi0gICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgaWYgeyhbbHNlYXJjaCBbbGlzdCAiZGVmYXVsdCIgInByX21tbWMiICJtbW1jIl0gJHZhcnMoZmxvdyldIDwgMCl9IHsKLSAgICAgICAgICAgICAgIHB1dHMgIjxGRj4gV0FSTklORzogRmxvdyB0eXBlICckdmFycyhmbG93KScgbm90IHN1cHBvcnRlZCAtIHNldHRpbmcgdG8gJ21tbWMnIgotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICBXQVJOSU5HOiBGbG93IHR5cGUgJyR2YXJzKGZsb3cpJyBub3Qgc3VwcG9ydGVkIC0gc2V0dGluZyB0byAnbW1tYydcbiIKLSAgICAgICAgICAgICAgIHNldCB3YXJuaW5ncygkdmFycyh3YXJuaW5nX2NvdW50KSkgIkZsb3cgdHlwZSAnJHZhcnMoZmxvdyknIG5vdCBzdXBwb3J0ZWQgLSBzZXR0aW5nIHRvICdtbW1jJyIKLSAgICAgICAgICAgICAgIGluY3IgdmFycyh3YXJuaW5nX2NvdW50KQotICAgICAgICAgICAgICAgc2V0IHZhcnMoZmxvdykgbW1tYwotICAgICAgICAgICAgfQotICAgICAgICAgfQotCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAjIE1ha2Ugc3VyZSBhbGwgc2NhbGluZyBmYWN0b3JzIGFyZSBlaXRoZXIgc2V0IG9yIGFyZSAxLjAgLi4uIGFsc28KLSAgICAgICMgc3VwcG9ydCBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eSBvZiBvbGQgbmFtZXMKLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICAgIHNldCBtYXAocHJlX3JvdXRlX3Jlc19mYWN0b3IpIGRlZl9yZXNfZmFjdG9yCi0gICAgICAgICBzZXQgbWFwKHByZV9yb3V0ZV9jbGtfcmVzX2ZhY3RvcikgZGVmX2Nsa19yZXNfZmFjdG9yCi0gICAgICAgICBzZXQgbWFwKHByZV9yb3V0ZV9jYXBfZmFjdG9yKSBkZWZfY2FwX2ZhY3RvcgotICAgICAgICAgc2V0IG1hcChwcmVfcm91dGVfY2xrX2NhcF9mYWN0b3IpIGRlZl9jbGtfY2FwX2ZhY3RvcgotICAgICAgICAgc2V0IG1hcChwb3N0X3JvdXRlX3Jlc19mYWN0b3IpIGRldF9yZXNfZmFjdG9yCi0gICAgICAgICBzZXQgbWFwKHBvc3Rfcm91dGVfY2xrX3Jlc19mYWN0b3IpIGRldF9jbGtfcmVzX2ZhY3RvcgotICAgICAgICAgc2V0IG1hcChwb3N0X3JvdXRlX2NhcF9mYWN0b3IpIGRldF9jYXBfZmFjdG9yCi0gICAgICAgICBzZXQgbWFwKHBvc3Rfcm91dGVfY2xrX2NhcF9mYWN0b3IpIGRldF9jbGtfY2FwX2ZhY3RvcgotICAgICAgICAgc2V0IG1hcChwb3N0X3JvdXRlX3hjYXBfZmFjdG9yKSB4Y2FwX2ZhY3RvcgotCi0gICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnModmlld19kZWZpbml0aW9uX3RjbCldICYmICFbaW5mbyBleGlzdHMgdmFycyhwYXJzZWRfdmlld19kZWZpbml0aW9uX3RjbCldfSB7Ci0gICAgICAgICAgICBpZiB7IVtmaWxlIGV4aXN0cyAkdmFycyh2aWV3X2RlZmluaXRpb25fdGNsKV19IHsKLSAgICAgICAgICAgICAgIHB1dHMgIjxGRj4gRVJST1I6IFZpZXcgZGVmaW5pdGlvbiBmaWxlICR2YXJzKHZpZXdfZGVmaW5pdGlvbl90Y2wpIGRvZXMgbm90IGV4aXN0IC4uLiBjYW5ub3QgY29udGludWUiCi0gICAgICAgICAgICAgICBleGl0Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBzb3VyY2UgJHZhcnMoc2NyaXB0X3BhdGgpL0VUQy9JTk5PVlVTL292ZXJsYXkudGNsCi0gICAgICAgICAgICBwdXRzICI8RkY+IFBhcnNpbmcgdXNlciB2aWV3IGRlZmluaXRpb24gZmlsZSAuLi4iCi0gICAgICAgICAgICBzZXQgcmMgW2NhdGNoIHtzb3VyY2UgJHZhcnModmlld19kZWZpbml0aW9uX3RjbCl9XQotIyAgICAgICAgICAgIHB1dHMgIi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iCi0gICAgICAgICAgICBmb3JlYWNoIHZhciAibGlicmFyeV9zZXRzIHJjX2Nvcm5lcnMgZGVsYXlfY29ybmVycyBzZXR1cF9hbmFseXNpc192aWV3cyBob2xkX2FuYWx5c2lzX3ZpZXdzIHBvd2VyX2RvbWFpbnMiIHsKLSAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCR2YXIpXX0gewotICAgICAgICAgICAgICAgIHNldCBpbmZvcygkdmFycyhpbmZvX2NvdW50KSkgIlZhcmlhYmxlIHZhcnMoJHZhcikgaGFzIGJlZW4gc2V0IHRvIFwiJHZhcnMoJHZhcilcIiIKLSAgICAgICAgICAgICAgICBpbmNyIHZhcnMoaW5mb19jb3VudCkKLSAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotIyAgICAgICAgICAgIHB1dHMgJHJjCi0jICAgICAgICAgICAgcHV0cyAiLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIKLSAgICAgICAgICAgIHNldCB2YXJzKHBhcnNlZF92aWV3X2RlZmluaXRpb25fdGNsKSB0cnVlCi0gICAgICAgICB9Ci0KLSMgICAgICAgICBpZiB7IVtpbmZvIGV4aXN0cyB2YXJzKHZpZXdfZGVmaW5pdGlvbl90Y2wpXX0gewotCi0gICAgICAgICAgICBmb3JlYWNoIHJjX2Nvcm5lciAkdmFycyhyY19jb3JuZXJzKSB7Ci0gICAgICAgICAgICAgICBmb3JlYWNoIG9wdGlvbiAicHJlX3JvdXRlX3Jlc19mYWN0b3IgcHJlX3JvdXRlX2Nsa19yZXNfZmFjdG9yIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3N0X3JvdXRlX3Jlc19mYWN0b3IgcG9zdF9yb3V0ZV9jbGtfcmVzX2ZhY3RvciBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJlX3JvdXRlX2NhcF9mYWN0b3IgcHJlX3JvdXRlX2Nsa19jYXBfZmFjdG9yIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3N0X3JvdXRlX2NhcF9mYWN0b3IgcG9zdF9yb3V0ZV9jbGtfY2FwX2ZhY3RvciBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zdF9yb3V0ZV94Y2FwX2ZhY3RvciIgewotICAgICAgICAgICAgICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycygkcmNfY29ybmVyLCRvcHRpb24pXSAmJiBbaW5mbyBleGlzdHMgdmFycygkcmNfY29ybmVyLCRtYXAoJG9wdGlvbikpXX0gewotICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICBJTkZPOiBWYXJpYWJsZSAkbWFwKCRvcHRpb24pIGhhcyBiZWVuIGNoYW5nZWQgdG8gJG9wdGlvbiAuLi4gcGxlYXNlIHVwZGF0ZVxuIgotICAgICAgICAgICAgICAgICAgICAgc2V0IGluZm9zKCR2YXJzKGluZm9fY291bnQpKSAiVmFyaWFibGUgJG1hcCgkb3B0aW9uKSBoYXMgYmVlbiBjaGFuZ2VkIHRvICRvcHRpb24gLi4uIHBsZWFzZSB1cGRhdGUiCi0gICAgICAgICAgICAgICAgICAgICBpbmNyIHZhcnMoaW5mb19jb3VudCkKLSAgICAgICAgICAgICAgICAgICAgIHNldCB2YXJzKCRyY19jb3JuZXIsJG9wdGlvbikgJHZhcnMoJHJjX2Nvcm5lciwkbWFwKCRvcHRpb24pKQotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgCi0gICAgICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAgICAjIFRoZSBmb2xsb3dpbmcgd2lsbCBiZSB1c2VkIHRvIHNlZWQgdGhlIGNvbmZpZyBmaWxlCi0gICAgICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAKLSAgICAgICAgICAgIGlmIHshW0ZGOjppc19scF9mbG93XX0gewotCi0gICAgICAgICAgICAgICBzZXQgbWF4X2xpYnMgW2xpc3RdCi0gICAgICAgICAgICAgICBzZXQgbWluX2xpYnMgW2xpc3RdCi0gICAKLSAgICAgICAgICAgICAgIHNldCBjb3VudCAwCi0gICAKLSAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkdmFycygkdmFycyhkZWZhdWx0X3NldHVwX3ZpZXcpLGRlbGF5X2Nvcm5lciksbGlicmFyeV9zZXQpXX0gewotICAgICAgICAgICAgICAgICAgZm9yZWFjaCBsaWIgJHZhcnMoJHZhcnMoJHZhcnMoJHZhcnMoZGVmYXVsdF9zZXR1cF92aWV3KSxkZWxheV9jb3JuZXIpLGxpYnJhcnlfc2V0KSx0aW1pbmcpIHsKLSAgICAgICAgICAgICAgICAgICAgIGlmIHtbbHNlYXJjaCAkbWF4X2xpYnMgJGxpYl0gPT0gLTF9IHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGxhcHBlbmQgbWF4X2xpYnMgJGxpYgotICAgICAgICAgICAgICAgICAgICAgICAgaW5jciBjb3VudAotICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkdmFycygkdmFycyhkZWZhdWx0X3NldHVwX3ZpZXcpLGRlbGF5X2Nvcm5lciksbGF0ZV9saWJyYXJ5X3NldCldfSB7Ci0gICAgICAgICAgICAgICAgICAgICBmb3JlYWNoIGxpYiAkdmFycygkdmFycygkdmFycygkdmFycyhkZWZhdWx0X3NldHVwX3ZpZXcpLGRlbGF5X2Nvcm5lciksbGF0ZV9saWJyYXJ5X3NldCksdGltaW5nKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiB7W2xzZWFyY2ggJG1heF9saWJzICRsaWJdID09IC0xfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICBsYXBwZW5kIG1heF9saWJzICRsaWIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGluY3IgY291bnQKLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIH0KLSAgIAotICAgICAgICAgICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycyh0aW1lbGliLG1heCldfSB7Ci0gICAgICAgICAgICAgICAgICBzZXQgdmFycyh0aW1lbGliLG1heCkgJG1heF9saWJzCi0gICAgICAgICAgICAgICB9Ci0gICAKLSAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkdmFycygkdmFycyhkZWZhdWx0X2hvbGRfdmlldyksZGVsYXlfY29ybmVyKSxsaWJyYXJ5X3NldCldfSB7Ci0gICAgICAgICAgICAgICAgICBmb3JlYWNoIGxpYiAkdmFycygkdmFycygkdmFycygkdmFycyhkZWZhdWx0X2hvbGRfdmlldyksZGVsYXlfY29ybmVyKSxsaWJyYXJ5X3NldCksdGltaW5nKSB7Ci0gICAgICAgICAgICAgICAgICAgICBpZiB7W2xzZWFyY2ggJG1pbl9saWJzICRsaWJdID09IC0xfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBsYXBwZW5kIG1pbl9saWJzICRsaWIKLSAgICAgICAgICAgICAgICAgICAgICAgIGluY3IgY291bnQKLSAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJHZhcnMoJHZhcnMoZGVmYXVsdF9ob2xkX3ZpZXcpLGRlbGF5X2Nvcm5lciksZWFybHlfbGlicmFyeV9zZXQpXX0gewotICAgICAgICAgICAgICAgICAgICAgZm9yZWFjaCBsaWIgJHZhcnMoJHZhcnMoJHZhcnMoJHZhcnMoZGVmYXVsdF9ob2xkX3ZpZXcpLGRlbGF5X2Nvcm5lciksZWFybHlfbGlicmFyeV9zZXQpLHRpbWluZykgewotICAgICAgICAgICAgICAgICAgICAgICAgaWYge1tsc2VhcmNoICRtaW5fbGlicyAkbGliXSA9PSAtMX0gewotICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFwcGVuZCBtaW5fbGlicyAkbGliCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBpbmNyIGNvdW50Ci0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICB9Ci0gICAKLSAgICAgICAgICAgICAgIGlmIHshW2luZm8gZXhpc3RzIHZhcnModGltZWxpYixtaW4pXX0gewotICAgICAgICAgICAgICAgICAgc2V0IHZhcnModGltZWxpYixtaW4pICRtaW5fbGlicwotICAgICAgICAgICAgICAgfQotICAgCi0gICAgICAgICAgICAgICBpZiB7IVtpbmZvIGV4aXN0cyB2YXJzKHRpbWVsaWIpXX0gewotICAgICAgICAgICAgICAgICAgc2V0IHZhcnModGltZWxpYikgIiIKLSAgICAgICAgICAgICAgIH0KLSAgIAotICAgICAgICAgICAgICAgc2V0IHZhcnMoY2RiX2ZpbGUpICIiCi0gICAgICAgICAgICAgICBzZXQgdmFycyhjZGJfZmlsZSxtaW4pICIiCi0gICAgICAgICAgICAgICBzZXQgdmFycyhjZGJfZmlsZSxtYXgpICIiCi0gICAKLSAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkdmFycygkdmFycyhkZWZhdWx0X3NldHVwX3ZpZXcpLGRlbGF5X2Nvcm5lciksbGlicmFyeV9zZXQpXX0gewotICAgICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCR2YXJzKCR2YXJzKCR2YXJzKGRlZmF1bHRfc2V0dXBfdmlldyksZGVsYXlfY29ybmVyKSxsaWJyYXJ5X3NldCksc2kpXX0gewotICAgICAgICAgICAgICAgICAgICAgc2V0IHZhcnMoY2RiX2ZpbGUsbWF4KSAkdmFycygkdmFycygkdmFycygkdmFycyhkZWZhdWx0X3NldHVwX3ZpZXcpLGRlbGF5X2Nvcm5lciksbGlicmFyeV9zZXQpLHNpKQotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgfSBlbHNlaWYge1tpbmZvIGV4aXN0cyB2YXJzKCR2YXJzKCR2YXJzKGRlZmF1bHRfc2V0dXBfdmlldyksZGVsYXlfY29ybmVyKSxsYXRlX2xpYnJhcnlfc2V0KV19IHsKLSAgICAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgYXJzKCR2YXJzKCR2YXJzKCR2YXJzKGRlZmF1bHRfc2V0dXBfdmlldyksZGVsYXlfY29ybmVyKSxsYXRlX2xpYnJhcnlfc2V0KSxzaSldfSB7Ci0gICAgICAgICAgICAgICAgICAgICBzZXQgdmFycyhjZGJfZmlsZSxtYXgpICR2YXJzKCR2YXJzKCR2YXJzKCR2YXJzKGRlZmF1bHRfc2V0dXBfdmlldyksZGVsYXlfY29ybmVyKSxsYXRlX2xpYnJhcnlfc2V0KSxzaSkKLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICBzZXQgdmFycyhjZGJfZmlsZSxtYXgpICIiCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJHZhcnMoJHZhcnMoZGVmYXVsdF9ob2xkX3ZpZXcpLGRlbGF5X2Nvcm5lciksbGlicmFyeV9zZXQpXX0gewotICAgICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCR2YXJzKCR2YXJzKCR2YXJzKGRlZmF1bHRfaG9sZF92aWV3KSxkZWxheV9jb3JuZXIpLGxpYnJhcnlfc2V0KSxzaSldfSB7Ci0gICAgICAgICAgICAgICAgICAgICBzZXQgdmFycyhjZGJfZmlsZSxtaW4pICR2YXJzKCR2YXJzKCR2YXJzKCR2YXJzKGRlZmF1bHRfaG9sZF92aWV3KSxkZWxheV9jb3JuZXIpLGxpYnJhcnlfc2V0KSxzaSkKLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIH0gZWxzZWlmIHtbaW5mbyBleGlzdHMgdmFycygkdmFycygkdmFycyhkZWZhdWx0X2hvbGRfdmlldyksZGVsYXlfY29ybmVyKSxlYXJseV9saWJyYXJ5X3NldCldfSB7Ci0gICAgICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJHZhcnMoJHZhcnMoJHZhcnMoZGVmYXVsdF9ob2xkX3ZpZXcpLGRlbGF5X2Nvcm5lciksZWFybHlfbGlicmFyeV9zZXQpLHNpKV19IHsKLSAgICAgICAgICAgICAgICAgICAgIHNldCB2YXJzKGNkYl9maWxlLG1pbikgJHZhcnMoJHZhcnMoJHZhcnMoJHZhcnMoZGVmYXVsdF9ob2xkX3ZpZXcpLGRlbGF5X2Nvcm5lciksZWFybHlfbGlicmFyeV9zZXQpLHNpKQotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgIHNldCB2YXJzKGNkYl9maWxlLG1pbikgIiIKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkdmFycygkdmFycyhkZWZhdWx0X3NldHVwX3ZpZXcpLGNvbnN0cmFpbnRfbW9kZSkscHJlX2N0c19zZGMpXX0gewotICAgICAgICAgICAgICAgICAgaWYgeyR2YXJzKGZsb3cpICE9ICJtbW1jIn0gewotICAgICAgICAgICAgICAgICAgICAgc2V0IHZhcnModGltaW5nY29uX2ZpbGUpICR2YXJzKCR2YXJzKCR2YXJzKGRlZmF1bHRfc2V0dXBfdmlldyksY29uc3RyYWludF9tb2RlKSxwcmVfY3RzX3NkYykKLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIHNldCB2YXJzKHByZV9jdHNfc2RjKSAkdmFycygkdmFycygkdmFycyhkZWZhdWx0X3NldHVwX3ZpZXcpLGNvbnN0cmFpbnRfbW9kZSkscHJlX2N0c19zZGMpCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJHZhcnMoJHZhcnMoZGVmYXVsdF9zZXR1cF92aWV3KSxjb25zdHJhaW50X21vZGUpLHByZV9jdHNfaWxtX3NkYyldfSB7Ci0gICAgICAgICAgICAgICAgICBpZiB7JHZhcnMoZmxvdykgIT0gIm1tbWMifSB7Ci0gICAgICAgICAgICAgICAgICAgICBzZXQgdmFycyh0aW1pbmdjb25fZmlsZSxmdWxsKSAkdmFycygkdmFycygkdmFycyhkZWZhdWx0X3NldHVwX3ZpZXcpLGNvbnN0cmFpbnRfbW9kZSkscHJlX2N0c19pbG1fc2RjKQotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCR2YXJzKCR2YXJzKGRlZmF1bHRfc2V0dXBfdmlldyksY29uc3RyYWludF9tb2RlKSxpbmNyX2N0c19zZGMpXX0gewotICAgICAgICAgICAgICAgICAgc2V0IHZhcnMoaW5jcl9jdHNfc2RjKSAkdmFycygkdmFycygkdmFycyhkZWZhdWx0X3NldHVwX3ZpZXcpLGNvbnN0cmFpbnRfbW9kZSksaW5jcl9jdHNfc2RjKQotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCR2YXJzKCR2YXJzKGRlZmF1bHRfc2V0dXBfdmlldyksY29uc3RyYWludF9tb2RlKSxwb3N0X2N0c19zZGMpXX0gewotICAgICAgICAgICAgICAgICAgc2V0IHZhcnMocG9zdF9jdHNfc2RjKSAkdmFycygkdmFycygkdmFycyhkZWZhdWx0X3NldHVwX3ZpZXcpLGNvbnN0cmFpbnRfbW9kZSkscG9zdF9jdHNfc2RjKQotICAgICAgICAgICAgICAgfQotICAgCi0gICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJHZhcnMoJHZhcnMoJHZhcnMoZGVmYXVsdF9ob2xkX3ZpZXcpLGRlbGF5X2Nvcm5lcikscmNfY29ybmVyKSxjYXBfdGFibGUpXSAmJlwKLSAgICAgICAgICAgICAgICAgICBbaW5mbyBleGlzdHMgdmFycygkdmFycygkdmFycygkdmFycyhkZWZhdWx0X3NldHVwX3ZpZXcpLGRlbGF5X2Nvcm5lcikscmNfY29ybmVyKSxjYXBfdGFibGUpXX0gewotICAgICAgICAgICAgICAgICAgc2V0IHZhcnMoY2FwdGJsX2ZpbGUpIFtjb25jYXQgXAotICAgICAgICAgICAgICAgICAgICAgICAiLWJlc3QiICR2YXJzKCR2YXJzKCR2YXJzKCR2YXJzKGRlZmF1bHRfaG9sZF92aWV3KSxkZWxheV9jb3JuZXIpLHJjX2Nvcm5lciksY2FwX3RhYmxlKSBcCi0gICAgICAgICAgICAgICAgICAgICAgICItd29yc3QiICR2YXJzKCR2YXJzKCR2YXJzKCR2YXJzKGRlZmF1bHRfc2V0dXBfdmlldyksZGVsYXlfY29ybmVyKSxyY19jb3JuZXIpLGNhcF90YWJsZSkgXAotICAgICAgICAgICAgICAgICAgICAgIF0KLSAgICAgICAgICAgICAgICAgIHNldCB2YXJzKHdjX2NhcF90YWJsZSkgJHZhcnMoJHZhcnMoJHZhcnMoJHZhcnMoZGVmYXVsdF9zZXR1cF92aWV3KSxkZWxheV9jb3JuZXIpLHJjX2Nvcm5lciksY2FwX3RhYmxlKQotICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkdmFycygkdmFycygkdmFycyhkZWZhdWx0X3NldHVwX3ZpZXcpLGRlbGF5X2Nvcm5lcikscmNfY29ybmVyKSxjYXBfdGFibGUpXX0gewotICAgICAgICAgICAgICAgICAgICAgIHNldCB2YXJzKGNhcHRibF9maWxlKSBbY29uY2F0IFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIi1iZXN0IiAkdmFycygkdmFycygkdmFycygkdmFycyhkZWZhdWx0X3NldHVwX3ZpZXcpLGRlbGF5X2Nvcm5lcikscmNfY29ybmVyKSxjYXBfdGFibGUpIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIi13b3JzdCIgJHZhcnMoJHZhcnMoJHZhcnMoJHZhcnMoZGVmYXVsdF9zZXR1cF92aWV3KSxkZWxheV9jb3JuZXIpLHJjX2Nvcm5lciksY2FwX3RhYmxlKSBcCi0gICAgICAgICAgICAgICAgICAgICAgXQotICAgICAgICAgICAgICAgICAgICAgIHNldCB2YXJzKHdjX2NhcF90YWJsZSkgJHZhcnMoJHZhcnMoJHZhcnMoJHZhcnMoZGVmYXVsdF9zZXR1cF92aWV3KSxkZWxheV9jb3JuZXIpLHJjX2Nvcm5lciksY2FwX3RhYmxlKQotICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgIHNldCB2YXJzKGNhcHRibF9maWxlKSAiIgotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIHNldCB2YXJzKHRpbWVsaWIpICIiCi0gICAgICAgICAgICAgICBzZXQgdmFycyhjZGJfZmlsZSkgIiIKLSAgICAgICAgICAgICAgIHNldCB2YXJzKHRpbWVsaWIsbWF4KSAiIgotICAgICAgICAgICAgICAgc2V0IHZhcnMoY2RiX2ZpbGUsbWF4KSAiIgotICAgICAgICAgICAgICAgc2V0IHZhcnModGltZWxpYixtaW4pICIiCi0gICAgICAgICAgICAgICBzZXQgdmFycyhjZGJfZmlsZSxtaW4pICIiCi0gICAgICAgICAgICAgICBzZXQgZm91bmRfbWF4IDAgCi0gICAgICAgICAgICAgICBzZXQgZm91bmRfbWluIDAgCi0gICAKLSAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhzZXR1cF9hbmFseXNpc192aWV3cyldICYmIFtpbmZvIGV4aXN0cyB2YXJzKGhvbGRfYW5hbHlzaXNfdmlld3MpXX0gewotICAgICAgICAgICAgICAgICAgZm9yZWFjaCB2aWV3ICR2YXJzKHNldHVwX2FuYWx5c2lzX3ZpZXdzKSB7Ci0gICAgICAgICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJHZhcnMoJHZpZXcsZGVsYXlfY29ybmVyKSxsaWJyYXJ5X3NldCldfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJHZhcnMoJHZhcnMoJHZpZXcsZGVsYXlfY29ybmVyKSxsaWJyYXJ5X3NldCksdGltaW5nKV19IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcmVhY2ggZmlsZSAkdmFycygkdmFycygkdmFycygkdmlldyxkZWxheV9jb3JuZXIpLGxpYnJhcnlfc2V0KSx0aW1pbmcpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIHtbbHNlYXJjaCAkdmFycyh0aW1lbGliLG1heCkgJGZpbGVdID09IC0xfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXBwZW5kIHZhcnModGltZWxpYixtYXgpICRmaWxlCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXQgZm91bmRfbWF4IDEKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICBwdXRzICI8RkY+IFdBUk5JTkc6IFZhcmlhYmxlIHZhcnMoJHZhcnMoJHZhcnMoJHZpZXcsZGVsYXlfY29ybmVyKSxsaWJyYXJ5X3NldCksdGltaW5nKSBub3QgZGVmaW5lZCIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldCB3YXJuaW5ncygkdmFycyh3YXJuaW5nX2NvdW50KSkgIlZhcmlhYmxlIHZhcnMoJHZhcnMoJHZhcnMoJHZpZXcsZGVsYXlfY29ybmVyKSxsaWJyYXJ5X3NldCksdGltaW5nKSBub3QgZGVmaW5lZCIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGluY3IgdmFycyh3YXJuaW5nX2NvdW50KQotICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIHshW2luZm8gZXhpc3RzIHZhcnMoJHZhcnMoJHZpZXcsZGVsYXlfY29ybmVyKSxlYXJseV9saWJyYXJ5X3NldCldfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHV0cyAiPEZGPiBXQVJOSU5HOiBWYXJpYWJsZSB2YXJzKCR2YXJzKCR2aWV3LGRlbGF5X2Nvcm5lciksbGlicmFyeV9zZXQpIG5vdCBkZWZpbmVkIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldCB3YXJuaW5ncygkdmFycyh3YXJuaW5nX2NvdW50KSkgIlZhcmlhYmxlIHZhcnMoJHZhcnMoJHZpZXcsZGVsYXlfY29ybmVyKSxsaWJyYXJ5X3NldCkgbm90IGRlZmluZWQiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5jciB2YXJzKHdhcm5pbmdfY291bnQpCi0gICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIGZvcmVhY2ggdmlldyAkdmFycyhob2xkX2FuYWx5c2lzX3ZpZXdzKSB7Ci0gICAgICAgICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJHZhcnMoJHZpZXcsZGVsYXlfY29ybmVyKSxsaWJyYXJ5X3NldCldfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJHZhcnMoJHZhcnMoJHZpZXcsZGVsYXlfY29ybmVyKSxsaWJyYXJ5X3NldCksdGltaW5nKV19IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcmVhY2ggZmlsZSAkdmFycygkdmFycygkdmFycygkdmlldyxkZWxheV9jb3JuZXIpLGxpYnJhcnlfc2V0KSx0aW1pbmcpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIHtbbHNlYXJjaCAkdmFycyh0aW1lbGliLG1pbikgJGZpbGVdID09IC0xfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXBwZW5kIHZhcnModGltZWxpYixtaW4pICRmaWxlCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXQgZm91bmRfbWluIDEKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICBwdXRzICI8RkY+IFdBUk5JTkc6IHZhcnMoJHZhcnMoJHZhcnMoJHZpZXcsZGVsYXlfY29ybmVyKSxsaWJyYXJ5X3NldCksdGltaW5nKSBub3QgZGVmaW5lZCIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldCB3YXJuaW5ncygkdmFycyh3YXJuaW5nX2NvdW50KSkgIlZhcmlhYmxlIHZhcnMoJHZhcnMoJHZhcnMoJHZpZXcsZGVsYXlfY29ybmVyKSxsaWJyYXJ5X3NldCksdGltaW5nKSBub3QgZGVmaW5lZCIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGluY3IgdmFycyh3YXJuaW5nX2NvdW50KQotICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIHshW2luZm8gZXhpc3RzIHZhcnMoJHZhcnMoJHZpZXcsZGVsYXlfY29ybmVyKSxlYXJseV9saWJyYXJ5X3NldCldfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICBwdXRzICI8RkY+IFdBUk5JTkc6IHZhcnMoJHZhcnMoJHZpZXcsZGVsYXlfY29ybmVyKSxlYXJseV9saWJyYXJ5X3NldCkgbm90IGRlZmluZWQiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBzZXQgd2FybmluZ3MoJHZhcnMod2FybmluZ19jb3VudCkpICJWYXJpYWJsZSB2YXJzKCR2YXJzKCR2aWV3LGRlbGF5X2Nvcm5lciksZWFybHlfbGlicmFyeV9zZXQpIG5vdCBkZWZpbmVkIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5jciB2YXJzKHdhcm5pbmdfY291bnQpCi0gICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKHBvd2VyX2FuYWx5c2lzX3ZpZXcpXSAmJiAoJHZhcnMocG93ZXJfYW5hbHlzaXNfdmlldykgIT0gIiIpfSB7Ci0gICAgICAgICAgICAgICAgICAgICBzZXQgdmlldyAkdmFycyhwb3dlcl9hbmFseXNpc192aWV3KQotICAgICAgICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCR2YXJzKCR2aWV3LGRlbGF5X2Nvcm5lciksbGlicmFyeV9zZXQpXX0gewotICAgICAgICAgICAgICAgICAgICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycygkdmFycygkdmFycygkdmlldyxkZWxheV9jb3JuZXIpLGxpYnJhcnlfc2V0KSx0aW1pbmcpXX0gewotICAgICAgICAgICAgICAgICAgICAgICAgICAgcHV0cyAiPEZGPiBXQVJOSU5HOiB2YXJzKCR2YXJzKCR2YXJzKCR2aWV3LGRlbGF5X2Nvcm5lciksbGlicmFyeV9zZXQpLHRpbWluZykgbm90IGRlZmluZWQiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBzZXQgd2FybmluZ3MoJHZhcnMod2FybmluZ19jb3VudCkpICJWYXJpYWJsZSB2YXJzKCR2YXJzKCR2YXJzKCR2aWV3LGRlbGF5X2Nvcm5lciksbGlicmFyeV9zZXQpLHRpbWluZykgbm90IGRlZmluZWQiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBpbmNyIHZhcnMod2FybmluZ19jb3VudCkKLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiB7IVtpbmZvIGV4aXN0cyB2YXJzKCR2YXJzKCR2aWV3LGRlbGF5X2Nvcm5lciksZWFybHlfbGlicmFyeV9zZXQpXX0gewotICAgICAgICAgICAgICAgICAgICAgICAgICAgcHV0cyAiPEZGPiBXQVJOSU5HOiB2YXJzKCR2YXJzKCR2aWV3LGRlbGF5X2Nvcm5lciksZWFybHlfbGlicmFyeV9zZXQpIG5vdCBkZWZpbmVkIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0IHdhcm5pbmdzKCR2YXJzKHdhcm5pbmdfY291bnQpKSAiVmFyaWFibGUgdmFycygkdmFycygkdmlldyxkZWxheV9jb3JuZXIpLGVhcmx5X2xpYnJhcnlfc2V0KSBub3QgZGVmaW5lZCIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGluY3IgdmFycyh3YXJuaW5nX2NvdW50KQotICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICB9Ci0gICAKLSAgICAgICAgICAgICAgIGlmIHshJGZvdW5kX21pbiB8fCAhJGZvdW5kX21heH0gewotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICBXQVJOSU5HOiBFaXRoZXIgc2V0dXAgb3IgaG9sZCBhbmFseXNpcyB2aWV3cyBpbmFkZXF1YXRlbHkgZGVmaW5lZCIKLSAgICAgICAgICAgICAgICAgIHNldCB3YXJuaW5ncygkdmFycyh3YXJuaW5nX2NvdW50KSkgIkVpdGhlciBzZXR1cCBvciBob2xkIGFuYWx5c2lzIHZpZXdzIGluYWRlcXVhdGVseSBkZWZpbmVkIgotICAgICAgICAgICAgICAgICAgaW5jciB2YXJzKHdhcm5pbmdfY291bnQpCi0gICAgICAgICAgICAgICAgICBzZXQgdmFycyh0aW1lbGliLG1pbikgIiIKLSAgICAgICAgICAgICAgICAgIHNldCB2YXJzKHRpbWVsaWIsbWF4KSAiIgotICAgICAgICAgICAgICAgICAgZm9yZWFjaCBsaWJyYXJ5X3NldCAkdmFycyhsaWJyYXJ5X3NldHMpIHsKLSAgICAgICAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkbGlicmFyeV9zZXQsdGltaW5nKV19IHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHNldCB2YXJzKHRpbWVsaWIpIFtjb25jYXQgJHZhcnModGltZWxpYikgJHZhcnMoJGxpYnJhcnlfc2V0LHRpbWluZyldCi0gICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJGxpYnJhcnlfc2V0LHNpKV19IHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHNldCB2YXJzKGNkYl9maWxlKSBbY29uY2F0ICR2YXJzKGNkYl9maWxlKSAkdmFycygkbGlicmFyeV9zZXQsc2kpXQotICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgc2V0IHZhcnMoY2FwdGJsX2ZpbGUpICIiCi0gICAgICAgICAgICAgICBzZXQgdmFycyh0aW1pbmdjb25fZmlsZSkgIiIKLSAgICAgICMgICAgICAgICAgIHNldCB2YXJzKHByZV9yb3V0ZV9yZXNfZmFjdG9yKSAxLjAKLSAgICAgICMgICAgICAgICAgIHNldCB2YXJzKHBvc3Rfcm91dGVfcmVzX2ZhY3RvcikgMS4wCi0gICAgICAjICAgICAgICAgICBzZXQgdmFycyhwcmVfcm91dGVfY2FwX2ZhY3RvcikgMS4wCi0gICAgICAjICAgICAgICAgICBzZXQgdmFycyhwb3N0X3JvdXRlX2NhcF9mYWN0b3IpIDEuMAotICAgICAgIyAgICAgICAgICAgc2V0IHZhcnMocHJlX3JvdXRlX2Nsa19yZXNfZmFjdG9yKSAxLjAKLSAgICAgICMgICAgICAgICAgIHNldCB2YXJzKHBvc3Rfcm91dGVfY2xrX3Jlc19mYWN0b3IpIDEuMAotICAgICAgIyAgICAgICAgICAgc2V0IHZhcnMocHJlX3JvdXRlX2Nsa19jYXBfZmFjdG9yKSAxLjAKLSAgICAgICMgICAgICAgICAgIHNldCB2YXJzKHBvc3Rfcm91dGVfY2xrX2NhcF9mYWN0b3IpIDEuMAotICAgICAgIyAgICAgICAgICAgc2V0IHZhcnMocG9zdF9yb3V0ZV94Y2FwX2ZhY3RvcikgMS4wCi0gICAgICAjICAgICAgICAgc2V0IHZhcnMocXh0ZWNoX2ZpbGUpICIiCi0gICAgICAjICAgICAgICAgc2V0IHZhcnMocXhjb25mX2ZpbGUpICIiCi0gICAgICAjICAgICAgICAgc2V0IHZhcnMocXhsaWJfZmlsZSkgIiIKLSAgICAgICMgICAgICAgICBzZXQgdmFycyhxeGxheWVybWFwX2ZpbGUpICIiCi0gICAgICAgICAgICB9Ci0gICAKLSAgICAgICAgICAgIHNldCBtYXAocXhfdGVjaF9maWxlKSBxeHRlY2hfZmlsZQotICAgICAgICAgICAgc2V0IG1hcChxeF9jb25mX2ZpbGUpIHF4Y29uZl9maWxlCi0gICAgICAgICAgICBzZXQgbWFwKHF4X2xpYl9maWxlKSBxeGxpYl9maWxlCi0gICAKLSAgICAgICAgICAgIGZvcmVhY2ggb3B0aW9uICJxeF90ZWNoX2ZpbGUgcXhfY29uZl9maWxlIHF4X2xpYl9maWxlIiB7Ci0gICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJHZhcnMoJHZhcnMoJHZhcnMoZGVmYXVsdF9zZXR1cF92aWV3KSxkZWxheV9jb3JuZXIpLHJjX2Nvcm5lciksJG9wdGlvbildfSB7Ci0gICAgICAgICAgICAgICAgICBzZXQgdmFycygkbWFwKCRvcHRpb24pKSAkdmFycygkdmFycygkdmFycygkdmFycyhkZWZhdWx0X3NldHVwX3ZpZXcpLGRlbGF5X2Nvcm5lcikscmNfY29ybmVyKSwkb3B0aW9uKQotICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgIHNldCB2YXJzKCRtYXAoJG9wdGlvbikpICIiCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiB7IVtpbmZvIGV4aXN0cyB2YXJzKHF4X2xheWVybWFwX2ZpbGUpXX0gewotICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKHFyY19sYXllcl9tYXApXX0gewotICAgICAgICAgICAgICAgICAgc2V0IHZhcnMocXhsYXllcm1hcF9maWxlKSAkdmFycyhxcmNfbGF5ZXJfbWFwKQotICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgIHNldCB2YXJzKHF4bGF5ZXJtYXBfZmlsZSkgIiIKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBzZXQgdmFycyhxeGxheWVybWFwX2ZpbGUpICR2YXJzKHF4X2xheWVybWFwX2ZpbGUpCi0gICAgICAgICAgICAgICBzZXQgdmFycyhxcmNfbGF5ZXJfbWFwKSAkdmFycyhxeF9sYXllcm1hcF9maWxlKSAKLSAgICAgICAgICAgIH0KLSMgICAgICAgICB9Ci0KLSAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICMgQmFja3dhcmRzIGNvbXBhdGliaWxpdHkKLSAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhsZWFrYWdlX2VmZm9ydCldICYmICFbaW5mbyBleGlzdHMgdmFycyhsZWFrYWdlX3Bvd2VyX2VmZm9ydCldfSB7Ci0gICAgICAgICAgICBzZXQgdmFycyhsZWFrYWdlX3Bvd2VyX2VmZm9ydCkgJHZhcnMobGVha2FnZV9lZmZvcnQpCi0gICAgICAgICB9Ci0gICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoZW5hYmxlX2NwcHIpXSAmJiAoKCR2YXJzKGVuYWJsZV9jcHByKSA9PSAwKSB8fCAoJHZhcnMoZW5hYmxlX2NwcHIpID09IGZhbHNlKSl9IHsKLSAgICAgICAgICAgIHNldCB2YXJzKGVuYWJsZV9jcHByKSBub25lCi0gICAgICAgICB9Ci0gICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoZW5hYmxlX2NwcHIpXSAmJiAoKCR2YXJzKGVuYWJsZV9jcHByKSA9PSAxKSB8fCAoJHZhcnMoZW5hYmxlX2NwcHIpID09IHRydWUpKX0gewotICAgICAgICAgICAgc2V0IHZhcnMoZW5hYmxlX2NwcHIpIGJvdGgKLSAgICAgICAgIH0KLSAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhkZWZfZmlsZSldfSB7Ci0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIFdBUk5JTkc6IFZhcmlhYmxlIGRlZl9maWxlIGhhcyBiZWVuIGNoYW5nZWQgdG8gZGVmX2ZpbGVzIC4uLiBwbGVhc2UgdXBkYXRlXG4iCi0gICAgICAgICAgICBzZXQgd2FybmluZ3MoJHZhcnMod2FybmluZ19jb3VudCkpICJWYXJpYWJsZSBkZWZfZmlsZSBoYXMgYmVlbiBjaGFuZ2VkIHRvIGRlZl9maWxlcyAuLi4gcGxlYXNlIHVwZGF0ZSIKLSAgICAgICAgICAgIGluY3IgdmFycyh3YXJuaW5nX2NvdW50KQotICAgICAgICAgICAgc2V0IHZhcnMoZGVmX2ZpbGVzKSAkdmFycyhkZWZfZmlsZSkKLSAgICAgICAgIH0KLQotICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgIyBTZWVkIHRoZSByZXN0IG9mIHRoZSBjb25maWcgdmFyaWFibGVzIGFsbG93aW5nIHVzZXIgb3ZlcnJpZGVzIC4uLgotICAgIyBEZWZhdWx0IHZhbHVlcyBmb3IgYWxsIHZhcmlhYmxlcyBhcmUgaW4gZGVmYXVsdHMudGNsCi0gICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0KLSAgICAgICAgIGlmIHshW2luZm8gZXhpc3RzIHZhcnMoc2NyaXB0X3BhdGgpXX0gewotICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKHNjcmlwdF9yb290KV19IHsKLSAgICAgICAgICAgICAgIHNldCB2YXJzKHNjcmlwdF9wYXRoKSAkdmFycyhzY3JpcHRfcm9vdCkKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBwdXRzICI8RkY+IEVSUk9SOiBWYXJpYWJsZSB2YXJzKHNjcmlwdF9yb290KSBub3QgZGVmaW5lZCIKLSAgICAgICAgICAgICAgIGV4aXQgIDEKLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBpZiB7IVtpbmZvIGV4aXN0cyB2YXJzKHNjcmlwdF9yb290KV19IHsKLSAgICAgICAgICAgICAgIHNldCB2YXJzKHNjcmlwdF9yb290KSAkdmFycyhzY3JpcHRfcGF0aCkKLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0KLSAgICAgICAgIGlmIHshW2luZm8gZXhpc3RzIHZhcnMoc2V0dXBfcGF0aCldfSB7Ci0gICAgICAgICAgICAgICBzZXQgdmFycyhzZXR1cF9wYXRoKSAiLiIKLSAgICAgICAgIH0KLSAgICAgICAgIGlmIHtbaW5mbyBjb21tYW5kIEZGRjo6Z2V0X3Rvb2xdIG5lICIiICYmIFtGRkY6OmdldF90b29sXSBlcSAicmMifSB7Ci0gICAgICAgICAgIHRjbF9zb3VyY2UgJHZhcnMoc2NyaXB0X3BhdGgpL0VUQy9JTk5PVlVTL3JkYV9kZWZhdWx0cy50Y2wKLSAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgIHNvdXJjZSAkdmFycyhzY3JpcHRfcGF0aCkvRVRDL2NvbW1vbl9kZWZhdWx0cy50Y2wKLSAgICAgICAgICAgc291cmNlICR2YXJzKHNjcmlwdF9wYXRoKS9FVEMvSU5OT1ZVUy9kZWZhdWx0cy50Y2wKLSAgICAgICAgICAgc291cmNlICR2YXJzKHNjcmlwdF9wYXRoKS9FVEMvSU5OT1ZVUy9yZGFfZGVmYXVsdHMudGNsCi0gICAgICAgICB9Ci0KLSAgICAgICAgIGZvcmVhY2ggb3B0aW9uIFthcnJheSBuYW1lcyByZGFfZGVmYXVsdHNdIHsKLSAgICAgICAgICAgIGlmIHshW2luZm8gZXhpc3RzIHZhcnMoJG9wdGlvbildfSB7Ci0gICAgICAgICAgICAgICBzZXQgdmFycygkb3B0aW9uKSAkcmRhX2RlZmF1bHRzKCRvcHRpb24pCi0gICAgICAgICAgICB9ICBlbHNlIHsKLSAgICAgICAgICAgICAgIGlmIHskdmFycygkb3B0aW9uKSAhPSAkcmRhX2RlZmF1bHRzKCRvcHRpb24pfSB7Ci0jICAgICAgICAgICAgICAgICAgcHV0cyAiIyA8RkY+IElORk86IFVzZXIgb3ZlcnJpZGUgb2YgJG9wdGlvbiB0byAkdmFycygkb3B0aW9uKSIKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0KLQotICAgICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycyhjcHVzX3Blcl9yZW1vdGVfaG9zdCldICYmIFtpbmZvIGV4aXN0cyB2YXJzKGNwdV9wZXJfcmVtb3RlX2hvc3QpXX0gewotICAgICAgICAgICAgUHV0cyAiPEZGPiBJTkZPOiBTZXR0aW5nICd2YXJzKGNwdXNfcGVyX3JlbW90ZV9ob3N0KScgdG8gJ3ZhcnMoY3B1X3Blcl9yZW1vdGVfaG9zdCknIgotICAgICAgICAgICAgUHV0cyAiPEZGPiBJTkZPOiAgICAgICAgICAgICAgICAgIF4iCi0gICAgICAgICAgICBQdXRzICI8RkY+IElORk86IFBsZWFzZSB1cGRhdGUgeW91ciBzZXR1cCB0byBjcHVzX3Blcl9yZW1vdGUgLi4uIgotICAgICAgICAgICAgc2V0IHZhcnMoY3B1c19wZXJfcmVtb3RlX2hvc3QpICR2YXJzKGNwdV9wZXJfcmVtb3RlX2hvc3QpCi0gICAgICAgICB9Ci0KLSAgICAgICAgIGlmIHshW2luZm8gZXhpc3RzIHZhcnMoZmxleG1vZGVsX2FydF9iYXNlZCldfSB7Ci0gICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoZmxleG1vZGVsX2FzX3B0bildICYmICR2YXJzKGZsZXhtb2RlbF9hc19wdG4pfSB7Ci0gICAgICAgICAgICAgICBzZXQgZmxvd19kZWZhdWx0cyhmbGV4bW9kZWxfYXJ0X2Jhc2VkKSAxCi0gICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0gICAgICAgICBpZiB7IVtpbmZvIGV4aXN0cyB2YXJzKGhpZ2hfdGltaW5nX2VmZm9ydCldfSB7Ci0gICAgICAgICAgICBzZXQgdmFycyhoaWdoX3RpbWluZ19lZmZvcnQpICRmbG93X2RlZmF1bHRzKGhpZ2hfdGltaW5nX2VmZm9ydCkKLSAgICAgICAgIH0KLSAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhjbG9ja19lY28pXSAmJiAoJHZhcnMoY2xvY2tfZWNvKSA9PSAicG9zdGN0cyIpfSB7Ci0gICAgICAgICAgICBzZXQgdmFycyhjbG9ja19lY28pICJwb3N0X2N0cyIKLSAgICAgICAgIH0KLSAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhjbG9ja19lY28pXSAmJiAoJHZhcnMoY2xvY2tfZWNvKSA9PSAicG9zdHJvdXRlIil9IHsKLSAgICAgICAgICAgIHNldCB2YXJzKGNsb2NrX2VjbykgInBvc3Rfcm91dGUiCi0gICAgICAgICB9Ci0gICAgICAgICBpZiB7W3JlZ2V4cCAiOS4xIiAkdmFycyh2ZXJzaW9uKV19IHsgCi0gICAgICAgICAgICBpZiB7JHZhcnMoaGlnaF90aW1pbmdfZWZmb3J0KX0gewotICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGNyaXRpY2FsX3JhbmdlKV0gJiYgKCR2YXJzKGNyaXRpY2FsX3JhbmdlKSAhPSAxLjApfSB7Ci0gICAgICAgICAgICAgICAgICBQdXRzICI8RkY+IEhpZ2ggdGltaW5nIGVmZm9ydCBlbmFibGVkIGJ1dCBjcml0aWNhbF9yYW5nZSBvdmVycmlkZGVuIGJ5IHVzZXIgc2V0dGluZ3MiCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoY2xvY2tfZWNvKV0gJiYgKCR2YXJzKGNsb2NrX2VjbykgIT0gInBvc3RfY3RzIil9IHsKLSAgICAgICAgICAgICAgICAgIFB1dHMgIjxGRj4gSGlnaCB0aW1pbmcgZWZmb3J0IGVuYWJsZWQgYnV0IGNsb2NrX2VjbyBvdmVycmlkZGVuIGJ5IHVzZXIgc2V0dGluZ3MiCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoaW5fcGxhY2Vfb3B0KV0gJiYgISR2YXJzKGluX3BsYWNlX29wdCl9IHsKLSAgICAgICAgICAgICAgICAgIFB1dHMgIjxGRj4gSGlnaCB0aW1pbmcgZWZmb3J0IGVuYWJsZWQgYnV0IGluX3BsYWNlX29wdCBvdmVycmlkZGVuIGJ5IHVzZXIgc2V0dGluZ3MiCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0KLSAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhjdHNfZW5naW5lKV0gJiYgKFtzdHJpbmcgdG9sb3dlciAkdmFycyhjdHNfZW5naW5lKV0gPT0gImN0cyIpfSB7Ci0gICAgICAgICAgICBzZXQgZmxvd19kZWZhdWx0cyh1cGRhdGVfaW9fbGF0ZW5jeSkgZmFsc2UKLSMgICAgICAgICAgICBzZXQgdmFycyhjdHMsdXBkYXRlX3RpbWluZyxza2lwKSB0cnVlCi0gICAgICAgICB9Ci0KLSAgICAgICAgIGZvcmVhY2ggb3B0aW9uIFthcnJheSBuYW1lcyBmbG93X2RlZmF1bHRzXSB7Ci0gICAgICAgICAgICBpZiB7IVtpbmZvIGV4aXN0cyB2YXJzKCRvcHRpb24pXX0gewotICAgICAgICAgICAgICAgc2V0IHZhcnMoJG9wdGlvbikgJGZsb3dfZGVmYXVsdHMoJG9wdGlvbikKLSAgICAgICAgICAgICAgIGlmIHskdmFycyhoaWdoX3RpbWluZ19lZmZvcnQpICYmIFtyZWdleHAgIjkuMSIgJHZhcnModmVyc2lvbildfSB7Ci0gICAgICAgICAgICAgICAgICBzZXQgdmFycyhpbl9wbGFjZV9vcHQpIHRydWUKLSAgICAgICAgICAgICAgICAgIHNldCB2YXJzKGNyaXRpY2FsX3JhbmdlKSAxLjAKLSMgICAgICAgICAgICAgICAgICBzZXQgdmFycyh1c2VmdWxfc2tldykgdHJ1ZQotICAgICAgICAgICAgICAgICAgc2V0IHZhcnMoY2xvY2tfZWNvKSBwb3N0X2N0cwotICAgICAgICAgICAgICAgfQotIyAgICAgICAgICAgICAgIGlmIHskdmFycyhjdHNfZW5naW5lKSA9PSAiY2NvcHRfZGVzaWduIn0gewotIyAgICAgICAgICAgICAgICAgIHNldCB2YXJzKGNjb3B0X2VmZm9ydCkgbG93Ci0jICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAgfQotCi0gICAgICAgICBpZiB7IVtpbmZvIGV4aXN0cyB2YXJzKHRpbWVfaW5mb19kYildfSB7Ci0gICAgICAgICAgICBzZXQgZmxvd19kZWZhdWx0cyh0aW1lX2luZm9fZGIpICR2YXJzKHJwdF9kaXIpL3RpbWVfaW5mby5kYgotICAgICAgICAgfQotICAgICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycyh0aW1lX2luZm9fZnVsbF9ycHQpXX0gewotICAgICAgICAgICAgc2V0IGZsb3dfZGVmYXVsdHModGltZV9pbmZvX2Z1bGxfcnB0KSAkdmFycyhycHRfZGlyKS90aW1lX2luZm9fZnVsbC5ycHQKLSAgICAgICAgIH0KLSAgICAgICAgIGlmIHshW2luZm8gZXhpc3RzIHZhcnMoaHRtbF9zdW1tYXJ5KV19IHsKLSAgICAgICAgICAgIHNldCBmbG93X2RlZmF1bHRzKGh0bWxfc3VtbWFyeSkgJHZhcnMocnB0X2Rpcikvc3VtbWFyeS5odG1sCi0gICAgICAgICB9Ci0KLSAgICAgICAgIGlmIHshW2luZm8gZXhpc3RzIHZhcnMoZW5hYmxlX3NpX2F3YXJlKV19IHsKLSMgICAgICAgICAgICBpZiB7W3JlZ3N1YiAibm0iICR2YXJzKHByb2Nlc3MpICIiXSA8PSA2NX0gewotIyAgICAgICAgICAgICAgIHNldCB2YXJzKGVuYWJsZV9zaV9hd2FyZSkgdHJ1ZQotIyAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBzZXQgdmFycyhlbmFibGVfc2lfYXdhcmUpIGZhbHNlCi0jICAgICAgICAgICAgfQotICAgICAgICAgfQotCi0KLSAgICAgICAgIGlmIHshW2luZm8gZXhpc3RzIHZhcnMoZGJzX2Zvcm1hdCldfSB7Ci0gICAgICAgICAgICBpZiB7W3N0cmluZyBjb21wYXJlIC1ub2Nhc2UgJHZhcnMobmV0bGlzdF90eXBlKSAidmVyaWxvZyJdPj0wfSB7Ci0gICAgICAgICAgICAgICBzZXQgdmFycyhkYnNfZm9ybWF0KSBmZQotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIHNldCB2YXJzKGRic19mb3JtYXQpIG9hCi0gICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0gICAgICAgICBpZiB7IVtpbmZvIGV4aXN0cyB2YXJzKHBhcnRpdGlvbl9kaXIpXX0geyAKLSAgICAgICAgICAgIHNldCB2YXJzKHBhcnRpdGlvbl9kaXIpIFBBUlRJVElPTgotICAgICAgICAgfQotICAgICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycyhwYXJ0aXRpb25fZGlyX3Bhc3MyKV19IHsgCi0gICAgICAgICAgICBpZiB7JHZhcnMoZW5hYmxlX2ZsZXhpbG0pfSB7Ci0gICAgICAgICAgICAgICBzZXQgdmFycyhwYXJ0aXRpb25fZGlyX3Bhc3MyKSAkdmFycyhwYXJ0aXRpb25fZGlyKV9QUkVDVFMKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBzZXQgdmFycyhwYXJ0aXRpb25fZGlyX3Bhc3MyKSAkdmFycyhwYXJ0aXRpb25fZGlyKV9DVFMKLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0KLSAgICAgICAgIGlmIHskdmFycyh1c2VyX21vZGUpID09ICJoaWVyIn0gewotICAgICAgICAgICAgRkZfRURJOjpub3JtYWxpemVfZmlsZXMKLSAgICAgICAgICAgIGlmIHskdmFycyhlbmFibGVfZmxleGlsbSl9IHsKLSMgICAgICAgICAgICAgICBzZXQgdmFycyhjdHMsc3RhcnRpbmdfZGJzKSAiXFtnbG9iICpfcG9zdEVDTy5lbmNcXSIKLSMgICAgICAgICAgICAgICAjIERMTSBpcyBhIHR3byBwYXNzIGZsb3cgYnV0IHVzZXIgZG9lc24ndCBuZWVkIHRvIHNwZWNpZnkgaXQKLSAgICAgICAgICAgICAgIHNldCB2YXJzKGhpZXJfZmxvd190eXBlKSAiMnBhc3MiCi0jICAgICAgICAgICAgICAgc2V0IHZhcnMocGxhY2Vfb3B0X2Rlc2lnbikgZmFsc2UKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBpZiB7JHZhcnMoaGllcl9mbG93X3R5cGUpID09ICIycGFzcyJ9IHsKLSAgICAgICAgICAgICAgICAgIHNldCB2YXJzKHBvc3RjdHMsc3RhcnRpbmdfZGJzKSAuCi0gICAgICAgICAgICAgICB9Ci0jICAgICAgICAgICAgfQotICAgICAgICAgfQotICAgICAgICAgaWYge1tzdHJpbmcgY29tcGFyZSAtbm9jYXNlICR2YXJzKGRic19mb3JtYXQpICJvYSJdPT0wfSB7Ci0gICAgICAgICAgICBpZiB7IVtpbmZvIGV4aXN0cyB2YXJzKG9hX2Fic3RyYWN0X25hbWUpXX0geyBzZXQgdmFycyhvYV9hYnN0cmFjdF9uYW1lKSBhYnN0cmFjdH0KLSAgICAgICAgICAgIGlmIHshW2luZm8gZXhpc3RzIHZhcnMob2FfbGF5b3V0X25hbWUpXX0geyBzZXQgdmFycyhvYV9sYXlvdXRfbmFtZSkgbGF5b3V0fQotICAgICAgICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycyhvYV9kZXNpZ25fY2VsbCldfSB7IHNldCB2YXJzKG9hX2Rlc2lnbl9jZWxsKSAkdmFycyhkZXNpZ24pfQotICAgICAgICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycyhvYV9kZXNpZ25fdmlldyldfSB7IHNldCB2YXJzKG9hX2Rlc2lnbl92aWV3KSAiIn0KLSAgICAgICAgICAgIGlmIHshW2luZm8gZXhpc3RzIHZhcnMob2FfcGFydGl0aW9uX2xpYildfSB7IHNldCB2YXJzKG9hX3BhcnRpdGlvbl9saWIpIE9BX1BUTl9MSUJ9Ci0gICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycyhvYV9hYnN0cmFjdF9uYW1lKV19IHsgc2V0IHZhcnMob2FfYWJzdHJhY3RfbmFtZSkgIiJ9Ci0gICAgICAgICAgICBpZiB7IVtpbmZvIGV4aXN0cyB2YXJzKG9hX2xheW91dF9uYW1lKV19IHsgc2V0IHZhcnMob2FfbGF5b3V0X25hbWUpICIifQotICAgICAgICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycyhvYV9kZXNpZ25fY2VsbCldfSB7IHNldCB2YXJzKG9hX2Rlc2lnbl9jZWxsKSAiIn0KLSAgICAgICAgICAgIGlmIHshW2luZm8gZXhpc3RzIHZhcnMob2FfZGVzaWduX3ZpZXcpXX0geyBzZXQgdmFycyhvYV9kZXNpZ25fdmlldykgIiJ9Ci0gICAgICAgICAgICBpZiB7IVtpbmZvIGV4aXN0cyB2YXJzKG9hX2Rlc2lnbl9saWIpXX0geyBzZXQgdmFycyhvYV9kZXNpZ25fbGliKSAiIn0KLSAgICAgICAgIH0KLQotICAgICAgICAgaWYgeyhbc3RyaW5nIHRvbG93ZXIgJHZhcnMoZml4X2hvbGQpXSA9PSAidHJ1ZSIpIHx8ICgkdmFycyhmaXhfaG9sZCkgPT0gMSl9IHsKLSAgICAgICAgICAgIHNldCBpbmZvcygkdmFycyhpbmZvX2NvdW50KSkgIkNoYW5naW5nIHZhcnMoZml4X2hvbGQpIGZyb20gJHZhcnMoZml4X2hvbGQpIHRvIFwiJGZsb3dfZGVmYXVsdHMoZml4X2hvbGQpXCIiCi0gICAgICAgICAgICBpbmNyIHZhcnMoaW5mb19jb3VudCkKLSAgICAgICAgICAgIHNldCB2YXJzKGZpeF9ob2xkKSAkZmxvd19kZWZhdWx0cyhmaXhfaG9sZCkKLSAgICAgICAgIH0KLSAgICAgICAgIGlmIHsoW3N0cmluZyB0b2xvd2VyICR2YXJzKGVuYWJsZV9vY3YpXSA9PSAidHJ1ZSIpIHx8ICgkdmFycyhlbmFibGVfb2N2KSA9PSAxKX0gewotICAgICAgICAgICAgc2V0IGluZm9zKCR2YXJzKGluZm9fY291bnQpKSAiQ2hhbmdpbmcgdmFycyhlbmFibGVfb2N2KSBmcm9tIFwiJHZhcnMoZW5hYmxlX3NzKVwiIHRvIFwicHJlX3Bvc3Ryb3V0ZVwiIgotICAgICAgICAgICAgaW5jciB2YXJzKGluZm9fY291bnQpCi0gICAgICAgICAgICBzZXQgdmFycyhlbmFibGVfb2N2KSBwcmVfY3RzCi0gICAgICAgICB9IGVsc2VpZiB7KCR2YXJzKGVuYWJsZV9vY3YpID09ICJub25lIikgfHwgKCR2YXJzKGVuYWJsZV9vY3YpID09IDApfSB7Ci0gICAgICAgICAgICBzZXQgaW5mb3MoJHZhcnMoaW5mb19jb3VudCkpICJDaGFuZ2luZyB2YXJzKGVuYWJsZV9vY3YpIGZyb20gXCIkdmFycyhlbmFibGVfb2N2KVwiIHRvIFwiZmFsc2VcIiIKLSAgICAgICAgICAgIGluY3IgdmFycyhpbmZvX2NvdW50KQotICAgICAgICAgICAgc2V0IHZhcnMoZW5hYmxlX29jdikgZmFsc2UKLSAgICAgICAgIH0KLSAgICAgICAgIGlmIHtbbGluZGV4IFtzcGxpdCAkdmFycyh2ZXJzaW9uKSAiLiJdICAwXSA+IDExfSB7Ci0gICAgICAgICAgICBpZiB7W3N0cmluZyB0b2xvd2VyICR2YXJzKGVuYWJsZV9vY3YpXSA9PSAiZmFsc2UifSB7Ci0gICAgICAgICAgICAgICBpZiB7W2xpbmRleCBbc3BsaXQgJHZhcnModmVyc2lvbikgIi4iXSAgMF0gPCAxNX0gewotICAgICAgICAgICAgICAgICAgc2V0IGluZm9zKCR2YXJzKGluZm9fY291bnQpKSAiQ2hhbmdpbmcgdmFycyhlbmFibGVfb2N2KSBmcm9tIFwiJHZhcnMoZW5hYmxlX29jdilcIiB0byBcInByZV9wb3N0cm91dGVcIiIKLSAgICAgICAgICAgICAgICAgIGluY3IgdmFycyhpbmZvX2NvdW50KQotICAgICAgICAgICAgICAgICAgc2V0IHZhcnMoZW5hYmxlX29jdikgInByZV9wb3N0cm91dGUiCi0gICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgc2V0IGluZm9zKCR2YXJzKGluZm9fY291bnQpKSAiQ2hhbmdpbmcgdmFycyhlbmFibGVfb2N2KSBmcm9tIFwiJHZhcnMoZW5hYmxlX29jdilcIiB0byBcInByZV9jdHNcIiIKLSAgICAgICAgICAgICAgICAgIGluY3IgdmFycyhpbmZvX2NvdW50KQotICAgICAgICAgICAgICAgICAgc2V0IHZhcnMoZW5hYmxlX29jdikgInByZV9jdHMiCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0gICAgICAgICBpZiB7KFtzdHJpbmcgdG9sb3dlciAkdmFycyhlbmFibGVfc3MpXSA9PSAidHJ1ZSIpIHx8ICgkdmFycyhlbmFibGVfc3MpID09IDEpfSB7Ci0gICAgICAgICAgICBzZXQgaW5mb3MoJHZhcnMoaW5mb19jb3VudCkpICJDaGFuZ2luZyB2YXJzKGVuYWJsZV9zcykgZnJvbSAkdmFycyhlbmFibGVfc3MpIHRvIFwicHJlX3Bvc3Ryb3V0ZVwiIgotICAgICAgICAgICAgaW5jciB2YXJzKGluZm9fY291bnQpCi0gICAgICAgICAgICBzZXQgdmFycyhlbmFibGVfc3MpIHByZV9wb3N0cm91dGUKLSAgICAgICAgIH0gZWxzZWlmIHsoJHZhcnMoZW5hYmxlX3NzKSA9PSAibm9uZSIpIHx8ICgkdmFycyhlbmFibGVfc3MpID09IDApfSB7Ci0gICAgICAgICAgICBzZXQgaW5mb3MoJHZhcnMoaW5mb19jb3VudCkpICJDaGFuZ2luZyB2YXJzKGVuYWJsZV9zcykgZnJvbSAkdmFycyhlbmFibGVfc3MpIHRvIFwiZmFsc2VcIiIKLSAgICAgICAgICAgIGluY3IgdmFycyhpbmZvX2NvdW50KQotICAgICAgICAgICAgc2V0IHZhcnMoZW5hYmxlX3NzKSBmYWxzZQotICAgICAgICAgfQotICAgICAgICAgaWYgeyhbc3RyaW5nIHRvbG93ZXIgJHZhcnMobWV0YWxmaWxsKV0gPT0gIm5vbmUiKSB8fCAoW3N0cmluZyB0b2xvd2VyICR2YXJzKG1ldGFsZmlsbCldID09ICJmYWxzZSIgJiYgJHZhcnMobWV0YWxmaWxsKSAhPSAiZmFsc2UiKSB8fCAoJHZhcnMobWV0YWxmaWxsKSA9PSAwKX0gewotICAgICAgICAgICAgc2V0IGluZm9zKCR2YXJzKGluZm9fY291bnQpKSAiQ2hhbmdpbmcgdmFycyhtZXRhbGZpbGwpIGZyb20gJHZhcnMobWV0YWxmaWxsKSB0byBcImZhbHNlXCIiCi0gICAgICAgICAgICBpbmNyIHZhcnMoaW5mb19jb3VudCkKLSAgICAgICAgICAgIHNldCB2YXJzKG1ldGFsZmlsbCkgZmFsc2UKLSAgICAgICAgIH0KLSAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhjbG9ja19lY28pXX0gewotICAgICAgICAgICAgaWYgeygkdmFycyhjbG9ja19lY28pID09ICJ0cnVlIikgfHwgKCR2YXJzKGNsb2NrX2VjbykgPT0gMSl9IHsKLSAgICAgICAgICAgICAgIHNldCBpbmZvcygkdmFycyhpbmZvX2NvdW50KSkgIkNoYW5naW5nIHZhcnMoY2xvY2tfZWNvKSBmcm9tICR2YXJzKGNsb2NrX2VjbykgdG8gXCJwb3N0X2N0c1wiIgotICAgICAgICAgICAgICAgaW5jciB2YXJzKGluZm9fY291bnQpCi0gICAgICAgICAgICAgICBzZXQgdmFycyhjbG9ja19lY28pIHBvc3RfY3RzCi0gICAgICAgICAgICB9IGVsc2VpZiB7KCR2YXJzKGNsb2NrX2VjbykgPT0gImZhbHNlIikgfHwgKCR2YXJzKGNsb2NrX2VjbykgPT0gMCl9IHsKLSAgICAgICAgICAgICAgIHNldCBpbmZvcygkdmFycyhpbmZvX2NvdW50KSkgIkNoYW5naW5nIHZhcnMoY2xvY2tfZWNvKSBmcm9tICR2YXJzKGNsb2NrX2VjbykgdG8gXCJub25lXCIiCi0gICAgICAgICAgICAgICBpbmNyIHZhcnMoaW5mb19jb3VudCkKLSAgICAgICAgICAgICAgIHNldCB2YXJzKGNsb2NrX2Vjbykgbm9uZQotICAgICAgICAgICAgfSBlbHNlaWYgeygkdmFycyhjbG9ja19lY28pID09ICJwcmVyb3V0ZSIpIHx8ICgkdmFycyhjbG9ja19lY28pID09ICJwcmVfcm91dGUiKX0gewotICAgICAgICAgICAgICAgc2V0IGluZm9zKCR2YXJzKGluZm9fY291bnQpKSAiQ2hhbmdpbmcgdmFycyhjbG9ja19lY28pIGZyb20gJHZhcnMoY2xvY2tfZWNvKSB0byBcInBvc3RfY3RzXCIiCi0gICAgICAgICAgICAgICBpbmNyIHZhcnMoaW5mb19jb3VudCkKLSAgICAgICAgICAgICAgIHNldCB2YXJzKGNsb2NrX2VjbykgcG9zdF9jdHMKLSAgICAgICAgICAgIH0gZWxzZWlmIHskdmFycyhjbG9ja19lY28pID09ICJwb3N0cm91dGUifSB7Ci0gICAgICAgICAgICAgICBzZXQgaW5mb3MoJHZhcnMoaW5mb19jb3VudCkpICJDaGFuZ2luZyB2YXJzKGNsb2NrX2VjbykgZnJvbSAkdmFycyhjbG9ja19lY28pIHRvIFwicG9zdF9yb3V0ZVwiIgotICAgICAgICAgICAgICAgaW5jciB2YXJzKGluZm9fY291bnQpCi0gICAgICAgICAgICAgICBzZXQgdmFycyhjbG9ja19lY28pIHBvc3Rfcm91dGUKLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0KLSAgICAgICAgIGlmIHsoW3N0cmluZyB0b2xvd2VyICR2YXJzKHVzZV9mbGV4bW9kZWxzKV0gPT0gInRydWUiKSB8fCAoJHZhcnModXNlX2ZsZXhtb2RlbHMpID09IDEpfSB7Ci0gICAgICAgICAgICBzZXQgdmFycyh1c2VfZmxleG1vZGVscykgMQotICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHNldCB2YXJzKHVzZV9mbGV4bW9kZWxzKSAwCi0gICAgICAgICB9Ci0jICAgICAgICAgaWYgeyR2YXJzKHVzZV9mbGV4bW9kZWxzKSAmJiAkdmFycyhwbGFjZV9vcHRfZGVzaWduKX0gewotIyAgICAgICAgICAgIHNldCB3YXJuaW5ncygkdmFycyh3YXJuaW5nX2NvdW50KSkgIlNldHRpbmcgdmFycyhwbGFjZV9vcHRfZGVzaWduKSB0byAnZmFsc2UnIGFzIHZhcnModXNlX2ZsZXhtb2RlbHMpIGlzIHRydWUiCi0jICAgICAgICAgICAgaW5jciB2YXJzKHdhcm5pbmdfY291bnQpCi0jICAgICAgICAgICAgc2V0IHZhcnMocGxhY2Vfb3B0X2Rlc2lnbikgZmFsc2UKLSMgICAgICAgICB9Ci0gICAgICAgICBpZiB7KFtzdHJpbmcgdG9sb3dlciAkdmFycyhmbGV4bW9kZWxfYXNfcHRuKV0gPT0gInRydWUiKSB8fCAoJHZhcnMoZmxleG1vZGVsX2FzX3B0bikgPT0gMSl9IHsKLSAgICAgICAgICAgIHNldCB2YXJzKGZsZXhtb2RlbF9hc19wdG4pIDEKLSAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBzZXQgdmFycyhmbGV4bW9kZWxfYXNfcHRuKSAwCi0gICAgICAgICB9Ci0gICAgICAgICBpZiB7KFtzdHJpbmcgdG9sb3dlciAkdmFycyhwbGFjZW1lbnRfYmFzZWRfcHRuKV0gPT0gInRydWUiKSB8fCAoJHZhcnMocGxhY2VtZW50X2Jhc2VkX3B0bikgPT0gMSl9IHsKLSAgICAgICAgICAgIHNldCB2YXJzKHBsYWNlbWVudF9iYXNlZF9wdG4pIDEKLSAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBzZXQgdmFycyhwbGFjZW1lbnRfYmFzZWRfcHRuKSAwCi0gICAgICAgICB9Ci0gICAgICAgICBpZiB7KFtzdHJpbmcgdG9sb3dlciAkdmFycyhhYnV0dGVkX2Rlc2lnbildID09ICJ0cnVlIikgfHwgKCR2YXJzKGFidXR0ZWRfZGVzaWduKSA9PSAxKX0gewotICAgICAgICAgICAgc2V0IHZhcnMoYWJ1dHRlZF9kZXNpZ24pIDEKLSAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBzZXQgdmFycyhhYnV0dGVkX2Rlc2lnbikgMAotICAgICAgICAgfQotICAgICAgICAgaWYgeyhbc3RyaW5nIHRvbG93ZXIgJHZhcnMoaW5zZXJ0X2ZlZWR0aHJvdWdoKV0gPT0gInRydWUiKSB8fCAoJHZhcnMoaW5zZXJ0X2ZlZWR0aHJvdWdoKSA9PSAxKX0gewotICAgICAgICAgICAgc2V0IHZhcnMoaW5zZXJ0X2ZlZWR0aHJvdWdoKSAxCi0gICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgc2V0IHZhcnMoaW5zZXJ0X2ZlZWR0aHJvdWdoKSAwCi0gICAgICAgICB9Ci0gICAgICAgICBpZiB7IVtpbmZvIGV4aXN0cyB2YXJzKHJlc2l6ZV9zaGlmdGVyX2FuZF9pc29faW5zdHMpXSB8fCAkdmFycyhyZXNpemVfc2hpZnRlcl9hbmRfaXNvX2luc3RzKSA9PSAiIn0gewotICAgICAgICAgICAgc2V0IHZhcnMocmVzaXplX3NoaWZ0ZXJfYW5kX2lzb19pbnN0cykgdHJ1ZQotICAgICAgICAgfQotICAgICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycyhhY3Rpdml0eV9maWxlX2Zvcm1hdCldIHx8ICR2YXJzKGFjdGl2aXR5X2ZpbGVfZm9ybWF0KSA9PSAiIn0gewotICAgICAgICAgICAgc2V0IHZhcnMoYWN0aXZpdHlfZmlsZV9mb3JtYXQpIFRDRgotICAgICAgICAgfQotICAgICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycyhwb3dlcl9uZXRzKV19IHsKLSAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhwd3JuZXQpXX0gewotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICBJTkZPOiBWYXJpYWJsZSBwd3JuZXQgaGFzIGJlZW4gY2hhbmdlZCB0byBwb3dlcl9uZXRzIC4uLiBwbGVhc2UgdXBkYXRlXG4iCi0gICAgICAgICAgICAgICBzZXQgaW5mb3MoJHZhcnMoaW5mb19jb3VudCkpICJWYXJpYWJsZSBwd3JuZXQgaGFzIGJlZW4gY2hhbmdlZCB0byBwb3dlcl9uZXRzIC4uLiBwbGVhc2UgdXBkYXRlIgotICAgICAgICAgICAgICAgaW5jciB2YXJzKGluZm9fY291bnQpCi0gICAgICAgICAgICAgICBzZXQgdmFycyhwb3dlcl9uZXRzKSAkdmFycyhwd3JuZXQpCi0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgc2V0IHZhcnMocG93ZXJfbmV0cykgIiIKLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0KLSAgICAgICAgIGlmIHshW2luZm8gZXhpc3RzIHZhcnMoZ3JvdW5kX25ldHMpXX0gewotICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGduZG5ldCldfSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIElORk86IFZhcmlhYmxlIGduZG5ldCBoYXMgYmVlbiBjaGFuZ2VkIHRvIGdyb3VuZF9uZXRzIC4uLiBwbGVhc2UgdXBkYXRlXG4iCi0gICAgICAgICAgICAgICBzZXQgaW5mb3MoJHZhcnMoaW5mb19jb3VudCkpICJWYXJpYWJsZSBnbmRuZXQgaGFzIGJlZW4gY2hhbmdlZCB0byBncm91bmRfbmV0cyAuLi4gcGxlYXNlIHVwZGF0ZSIKLSAgICAgICAgICAgICAgIGluY3IgdmFycyhpbmZvX2NvdW50KQotICAgICAgICAgICAgICAgc2V0IHZhcnMoZ3JvdW5kX25ldHMpICR2YXJzKGduZG5ldCkKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBzZXQgdmFycyhncm91bmRfbmV0cykgIiIKLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0KLSAgICAgICAgIGlmIHshW2luZm8gZXhpc3RzIHZhcnMoc3VwZXJob3N0cyldfSB7Ci0gICAgICAgICAgICBzZXQgdmFycyhzdXBlcmhvc3RzKSAwCi0gICAgICAgICB9Ci0KLSAgICAgICAgIGlmIHshW2luZm8gZXhpc3RzIHZhcnMoc3VwZXJ0aHJlYWRzKV19IHsKLSAgICAgICAgICAgIHNldCB2YXJzKHN1cGVydGhyZWFkcykgMQotICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIGlmIHsoJHZhcnModGhyZWFkcykgPiAxKSAmJiAoJHZhcnMoc3VwZXJ0aHJlYWRzKSA9PSAxKX0gewotICAgICAgICAgICAgICAgc2V0IHZhcnMoc3VwZXJ0aHJlYWRzKSAkdmFycyh0aHJlYWRzKQotICAgICAgICAgICAgfQotICAgICAgICAgfQotICAgICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycyhtYWtlZmlsZSldfSB7Ci0gICAgICAgICAgICBzZXQgdmFycyhtYWtlZmlsZSkgMQotICAgICAgICAgfQotICAgICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycyhmbGF0KV19IHsKLSAgICAgICAgICAgIHNldCB2YXJzKGZsYXQpIG5vbmUKLSAgICAgICAgIH0KLSAgICAgICAgIGlmIHshW2luZm8gZXhpc3RzIHZhcnMoYWJvcnQpXX0gewotICAgICAgICAgICAgc2V0IHZhcnMoYWJvcnQpIDAKLSAgICAgICAgIH0KLSAgICAgICAgIGlmIHshW2luZm8gZXhpc3RzIHZhcnMoY2F0Y2hfZXJyb3JzKV19IHsKLSAgICAgICAgICAgIHNldCB2YXJzKGNhdGNoX2Vycm9ycykgMQotICAgICAgICAgfQotICAgICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycyhyZXN0b3JlX2Rlc2lnbildfSB7Ci0gICAgICAgICAgICBzZXQgdmFycyhyZXN0b3JlX2Rlc2lnbikgMQotICAgICAgICAgfQotICAgICAgICAgaWYgeyR2YXJzKGNhdGNoX2Vycm9ycyl9IHsKLSAgICAgICAgICAgIGlmIHshW2luZm8gZXhpc3RzIHZhcnMoc2F2ZV9vbl9jYXRjaCldfSB7Ci0gICAgICAgICAgICAgICBzZXQgdmFycyhzYXZlX29uX2NhdGNoKSAxCi0gICAgICAgICAgICB9IAotICAgICAgICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycyhleGl0X29uX2Vycm9yKV19IHsKLSAgICAgICAgICAgICAgIHNldCB2YXJzKGV4aXRfb25fZXJyb3IpIDEKLSAgICAgICAgICAgIH0gCi0gICAgICAgICB9Ci0gICAgICAgICBpZiB7IVtpbmZvIGV4aXN0cyBlbnYoVlBBVEgpXX0gewotICAgICAgICAgICAgc2V0IGVudihWUEFUSCkgJGZsb3dfZGVmYXVsdHModnBhdGgpCi0gICAgICAgICAgICBQdXRzICI8RkY+IElORk86IFNldHRpbmcgZW52KFZQQVRIKSB0byAkZmxvd19kZWZhdWx0cyh2cGF0aCkiCi0gICAgICAgICB9Ci0gICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoY3BmX2ZpbGUpXX0gewotICAgICAgICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycyhjcGZfdGltaW5nKV19IHsKLSAgICAgICAgICAgICAgIHNldCB2YXJzKGNwZl90aW1pbmcpIHRydWUKLSMgICAgICAgICAgICAgICBzZXQgdmFycyhmbGF0KSB0cnVlCi0gICAgICAgICAgICB9Ci0gICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgc2V0IHZhcnMoY3BmX3RpbWluZykgZmFsc2UKLSAgICAgICAgIH0KLQotICAgICAgICAgaWYgeyEkdmFycyhjb2RlZ2VuKX0geyAKLSAgICAgICAgICAgIGlmIHtbRkY6OmlzX2xwX2Zsb3ddfSB7Ci0gICAgICAgICAgICAgICBjYXRjaCB7YWxpYXMgZmZfbW9kaWZ5X3Bvd2VyX2RvbWFpbnMgRkZfRURJOjptb2RpZnlfcG93ZXJfZG9tYWluc30KLSAgICAgICAgICAgICAgIGNhdGNoIHthbGlhcyBmZl9hZGRfcG93ZXJfc3dpdGNoZXMgRkZfRURJOjphZGRfcG93ZXJfc3dpdGNoZXN9Ci0gICAgICAgICAgICAgICBjYXRjaCB7YWxpYXMgZmZfcm91dGVfc2Vjb25kYXJ5X3BnX25ldHMgRkZfRURJOjpyb3V0ZV9zZWNvbmRhcnlfcGdfbmV0c30KLSAgICAgICAgICAgICAgIGNhdGNoIHthbGlhcyBmZl9nZXRfcG93ZXJfZG9tYWlucyBGRl9FREk6OmdldF9wb3dlcl9kb21haW5zfQotICAgICAgICAgICAgICAgY2F0Y2gge2FsaWFzIGZmX2J1ZmZlcl9hbHdheXNfb25fbmV0cyBGRl9FREk6OmJ1ZmZlcl9hbHdheXNfb25fbmV0c30KLSAgICAgICAgICAgICAgIGNhdGNoIHthbGlhcyBmZl9pbnNlcnRfd2VsbHRhcHNfZW5kY2FwcyBGRl9FREk6Omluc2VydF93ZWxsdGFwc19lbmRjYXBzfQotICAgICAgICAgICAgfQotICAgICAgICAgICAgc2V0IGZsb3dfZGVmYXVsdHMoc2NyaXB0X2RpcikgIi4iCi0gICAgICAgIH0KLQotIyBSZW1lbWJlciB0aGVzZSBmb3Igc3RlcCBiYXNlZCByZXBvcnRpbmcgLi4uCi0gICAgICAgICBzZXQgdmFycyhvcmlnX3JwdF9kaXIpICAkdmFycyhycHRfZGlyKQotICAgICAgICAgc2V0IHZhcnMob3JpZ19sb2dfZGlyKSAgJHZhcnMobG9nX2RpcikKLSAgICAgICAgIHNldCB2YXJzKG9yaWdfZGJzX2RpcikgICR2YXJzKGRic19kaXIpCi0KLSMgQWRkIHRoZXNlIGZvciBnZXQgbWV0cmljCi0gICAgICAgICBpZiB7IVtpbmZvIGV4aXN0cyB2YXJzKGh0bWxfc3VtbWFyeSldfSB7Ci0gICAgICAgICAgICBzZXQgdmFycyhodG1sX3N1bW1hcnkpICAkdmFycyhycHRfZGlyKS9zdW1tYXJ5Lmh0bWwKLSAgICAgICAgIH0KLSAgICAgICAgIGlmIHshW2luZm8gZXhpc3RzIHZhcnModGltZV9pbmZvX2RiKV19IHsKLSAgICAgICAgICAgIHNldCB2YXJzKHRpbWVfaW5mb19kYikgICR2YXJzKHJwdF9kaXIpL3RpbWVfaW5mby5kYgotICAgICAgICAgfQotICAgICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycyh0aW1lX2luZm9fcnB0KV19IHsKLSAgICAgICAgICAgIHNldCB2YXJzKHRpbWVfaW5mb19ycHQpICAkdmFycyhycHRfZGlyKS90aW1lX2luZm8ucnB0Ci0gICAgICAgICB9Ci0KLSAgICAgICAgIGlmIHtbaW5mbyBjb21tYW5kIEZGRjo6Z2V0X3Rvb2xdIG5lICIiICYmIFtGRkY6OmdldF90b29sXSBlcSAicmMifSB7Ci0gICAgICAgICAgIHRjbF9zb3VyY2UgJHZhcnMoc2NyaXB0X3BhdGgpL0VUQy9JTk5PVlVTL3VkbS50Y2wKLSAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgIHNvdXJjZSAkdmFycyhzY3JpcHRfcGF0aCkvRVRDL0lOTk9WVVMvdWRtLnRjbAotICAgICAgICAgfQotICAgICAgICAgaWYgeyEkdmFycyhyYykgfHwgKCR2YXJzKHJjKSAmJiAhW2luZm8gZXhpc3RzIHZhcnMocmNfc3RlcHMpXSl9IHsKLSAgICAgICAgICAgIHNldCB2YXJzKHNlZWQpIDEKLSAgICAgICAgIH0KLSAgICAgIH0KLQotIyAgICAgIGlmIHshW2luZm8gZXhpc3RzIHZhcnModmlld19kZWZpbml0aW9uX3RjbCldfSB7Ci0gICAgICAgICBGRl9FREk6Om5vcm1hbGl6ZV9jb25zdHJhaW50cyAKLSMgICAgICB9Ci0KLSAgICAgICMgRGlzYWJsZSB0aGlzIGZvciAxNC4yMAotICAgICAgc2V0IHZhcnMoZ2VuZXJhdGVfZmxvd19zdGVwcykgMAotCi0gICAgICBpZiB7JHZhcnMoZ2VuZXJhdGVfZmxvd19zdGVwcyl9IHsKLSAgICAgICAgIHNldCB2YXJzKHNraXBfc2lnbm9mZl9jaGVja3MpIHRydWUKLSAgICAgICAgIEZGX0VESTo6bm9ybWFsaXplX2ZpbGVzIAotICAgICAgfQotCi0jICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKHZpZXdfZGVmaW5pdGlvbl90Y2wpXX0gewotIyAgICAgICAgIHNldCB2YXJzKHNraXBfc2lnbm9mZl9jaGVja3MpIGZhbHNlCi0jICAgICAgfQotICAgICAgIyAgUkMgU3R1ZmYgLi4uCi0gICAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotICAgICAgaWYgeyR2YXJzKHJjKX0gewotICAgICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycyhvdmZfZGlyKV19IHsgc2V0IHZhcnMob3ZmX2RpcikgT1ZGIH0KLSAgICAgICAgIGlmIHshW2luZm8gZXhpc3RzIHZhcnMobGVjX2RpcildfSB7IHNldCB2YXJzKGxlY19kaXIpIExFQyB9Ci0gICAgICAgICBpZiB7IVtpbmZvIGV4aXN0cyB2YXJzKGVuYWJsZV9yY3ApXX0geyBzZXQgdmFycyhlbmFibGVfcmNwKSAwIH0KLSAgICAgICAgIGlmIHshW2luZm8gZXhpc3RzIHZhcnMoZW5hYmxlX3BhbSldfSB7IHNldCB2YXJzKGVuYWJsZV9wYW0pIDAgfQotICAgICAgICAgc2V0IHZhcnMoc3luX21hcCxzZXRfbWlzY19hdHRyaWJ1dGVzLHNraXApIGZhbHNlCi0gICAgICAgICBzZXQgdmFycyhzeW5fbWFwLHNldF9saWJfYXR0cmlidXRlcyxza2lwKSBmYWxzZQotICAgICAgICAgc2V0IHZhcnMoc3luX21hcCxzZXRfaGRsX2F0dHJpYnV0ZXMsc2tpcCkgZmFsc2UKLSAgICAgICAgIHNldCB2YXJzKHN5bl9tYXAsc2V0X2ljZ19hdHRyaWJ1dGVzLHNraXApIHRydWUKLSAgICAgICAgIHNldCB2YXJzKHN5bl9tYXAsc2V0X2RmdF9hdHRyaWJ1dGVzLHNraXApIHRydWUKLSAgICAgICAgIHNldCB2YXJzKHN5bl9pbmNyLHNldF9vcHRfYXR0cmlidXRlcyxza2lwKSB0cnVlCi0KLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICMgU2V0IG5ldGxpc3QgYW5kIGRlZiB2YXJpYWJsZXMgd2hlbiBSQyAvIFJDUCBlbmFibGVkCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAgICBpZiB7JHZhcnMoZW5hYmxlX3JjcCl9IHsKLSAgICAgICAgICAgIHNldCB2YXJzKG5ldGxpc3QpICR2YXJzKGRic19kaXIpL3N5bl9wbGFjZS9zeW5fcGxhY2Uudi5negotICAgICAgICAgICAgc2V0IHZhcnMoZGVmX2ZpbGVzKSAkdmFycyhkYnNfZGlyKS9zeW5fcGxhY2Uvc3luX3BsYWNlLmRlZi5negotICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHNldCB2YXJzKG5ldGxpc3QpICR2YXJzKGRic19kaXIpL3N5bl9pbmNyL3N5bl9pbmNyLnYuZ3oKLSMgICAgICAgICAgICBzZXQgdmFycyhkZWZfZmlsZXMpICR2YXJzKGRic19kaXIpL3N5bl9pbmNyL3N5bl9pbmNyLmRlZi5negotICAgICAgICAgfQotICAgICAgfQotCi0gICB9Ci0KLSAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICMgUHJvY2VkdXJlIHRvIGNoZWNrIHRoZSBmbG93IHZhcmlhYmxlcyBkZWZpbmVkIGluIHRoZSBzZXR1cC50Y2wKLSAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgIHByb2MgY2hlY2tfc2V0dXAge30gewotCi0gICAgICBnbG9iYWwgdmFycwotICAgICAgZ2xvYmFsIHR2YXJzCi0gICAgICBnbG9iYWwgZXJyb3JzCi0gICAgICBnbG9iYWwgd2FybmluZ3MKLSAgICAgIGdsb2JhbCBpbmZvcwotICAgICAgZ2xvYmFsIGNoZWNrCi0KLSAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhjaGVja19zZXR1cCldICAmJiAhJHZhcnMoY2hlY2tfc2V0dXApfSB7Ci0gICAgICAgICByZXR1cm4KLSAgICAgIH0KLQotICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKHdhcm5pbmdfY291bnQpXX0gewotICAgICAgICAgc2V0IHdhcm5pbmdfY291bnQgJHZhcnMod2FybmluZ19jb3VudCkKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgICBzZXQgd2FybmluZ19jb3VudCAwCi0gICAgICB9Ci0gICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoZXJyb3JfY291bnQpXX0gewotICAgICAgICAgc2V0IGVycm9yX2NvdW50ICR2YXJzKGVycm9yX2NvdW50KQotICAgICAgfSBlbHNlIHsKLSAgICAgICAgIHNldCBlcnJvcl9jb3VudCAwCi0gICAgICB9Ci0gICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoaW5mb19jb3VudCldfSB7Ci0gICAgICAgICBzZXQgaW5mb19jb3VudCAkdmFycyhpbmZvX2NvdW50KQotICAgICAgfSBlbHNlIHsKLSAgICAgICAgIHNldCBpbmZvX2NvdW50IDAKLSAgICAgIH0KLQotICAgICAgaWYgeyR2YXJzKHBsYWNlX29wdF9kZXNpZ24pICYmICR2YXJzKGVuYWJsZV9mbGV4aWxtKX0gewotICAgICAgICAgc2V0IHdhcm5pbmdzKCR3YXJuaW5nX2NvdW50KSAiRmVhdHVyZSB2YXJzKHBsYWNlX29wdF9kZXNpZ24pIG5vdCBzdXBwb3J0IGZvciB0b3AgbGV2ZWwgaW1wbGVtZW50YXRpb24gd2hlbiB2YXJzKGVuYWJsZV9mbGV4aWxtKSBpcyB0cnVlIgotICAgICAgICAgaW5jciB3YXJuaW5nX2NvdW50Ci0gICAgICB9Ci0KLSAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhwb3dlcl9hbmFseXNpc192aWV3KV19IHsKLSAgICAgICAgIGlmIHtbbHNlYXJjaCBbY29uY2F0ICR2YXJzKHNldHVwX2FuYWx5c2lzX3ZpZXdzKSAkdmFycyhob2xkX2FuYWx5c2lzX3ZpZXdzKV0gJHZhcnMocG93ZXJfYW5hbHlzaXNfdmlldyldID09IC0xfSB7Ci0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIEVSUk9SOiBQb3dlciBhbmFseXNpcyB2aWV3ICR2YXJzKHBvd2VyX2FuYWx5c2lzX3ZpZXcpIGlzIG5vdCBhIGRlZmluZWQgdmlld1xuIgotICAgICAgICAgICAgc2V0IGVycm9ycygkZXJyb3JfY291bnQpICJQb3dlciBhbmFseXNpcyB2aWV3ICR2YXJzKHBvd2VyX2FuYWx5c2lzX3ZpZXcpIGlzIG5vdCBhIGRlZmluZWQgdmlldyIKLSAgICAgICAgICAgIGluY3IgZXJyb3JfY291bnQKLSAgICAgICAgIH0KLSAgICAgIH0KLQotICAgICAgc2V0IHZhbGlkIFtsaXN0IHRyaWFsX2lwbyBnaWdhX29wdCBwcm90b19uZXRfZGVsYXlfbW9kZWxdCi0gICAgICBpZiB7W2xzZWFyY2ggJHZhbGlkIFtzdHJpbmcgdG9sb3dlciAkdmFycyhidWRnZXRfbW9kZSldXSA9PSAtMX0gewotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICBFUlJPUjogVmFyaWFibGUgdmFycyhidWRnZXRfbW9kZSkgaGFzIGlsbGVnYWwgdmFsdWUgJHZhcnMoYnVkZ2V0X21vZGUpXG4iCi0gICAgICAgICBzZXQgZXJyb3JzKCRlcnJvcl9jb3VudCkgIlZhcmlhYmxlIHZhcnMoYnVkZ2V0X21vZGUpIGhhcyBpbGxlZ2FsIHZhbHVlICR2YXJzKGJ1ZGdldF9tb2RlKSIKLSAgICAgICAgIGluY3IgZXJyb3JfY291bnQKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgICAgICAgIE11c3QgYmUgb25lIG9mICckdmFsaWQnXG4iCi0gICAgICB9Ci0gICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoY3RzX2VuZ2luZSldfSB7Ci0gICAgICAgICBpZiB7W3N0cmluZyB0b2xvd2VyICR2YXJzKGN0c19lbmdpbmUpXSA9PSAiY2NvcHRkZXNpZ24ifSB7IAotICAgICAgICAgICAgc2V0IHZhcnMoY3RzX2VuZ2luZSkgY2NvcHQgCi0gICAgICAgICB9IAotICAgICAgICAgaWYge1tzdHJpbmcgdG9sb3dlciAkdmFycyhjdHNfZW5naW5lKV0gPT0gImNsb2NrZGVzaWduIn0geyAKLSAgICAgICAgICAgIHNldCB2YXJzKGN0c19lbmdpbmUpIGN0cyAKLSAgICAgICAgIH0KLSAgICAgICAgIHNldCB2YWxpZCBbbGlzdCBjdHMgY2NvcHQgY2NvcHRfY3RzXQotICAgICAgICAgaWYge1tsc2VhcmNoICR2YWxpZCBbc3RyaW5nIHRvbG93ZXIgJHZhcnMoY3RzX2VuZ2luZSldXSA9PSAtMX0gewotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICBFUlJPUjogVmFyaWFibGUgdmFycyhjdHNfZW5naW5lKSBoYXMgaWxsZWdhbCB2YWx1ZSAkdmFycyhjdHNfZW5naW5lKVxuIgotICAgICAgICAgICAgc2V0IGVycm9ycygkZXJyb3JfY291bnQpICJWYXJpYWJsZSB2YXJzKGN0c19lbmdpbmUpIGhhcyBpbGxlZ2FsIHZhbHVlICR2YXJzKGN0c19lbmdpbmUpIgotICAgICAgICAgICAgaW5jciBlcnJvcl9jb3VudAotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICAgICAgICAgTXVzdCBiZSBvbmUgb2YgJyR2YWxpZCdcbiIKLSAgICAgICAgIH0KLSAgICAgIH0KLQotIyAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhjdHNfc3BlYyldfSB7Ci0jICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICBJTkZPOiBWYXJpYWJsZSBjdHNfc3BlYyBkZWZpbmVkIHNvIHNldCBjdHNfZW5naW5lIHRvIGN0c1xuIgotIyAgICAgICAgIHNldCBpbmZvcygkaW5mb19jb3VudCkgIlZhcmlhYmxlIGN0c19zcGVjIGRlZmluZWQgc28gc2V0IGN0c19lbmdpbmUgdG8gY3RzIgotIyAgICAgICAgIGluY3IgaW5mb19jb3VudAotIyAgICAgICAgIHNldCB2YXJzKGN0c19lbmdpbmUpIGN0cwotIyAgICAgICAgIGZvcmVhY2ggZmlsZSAkdmFycyhjdHNfc3BlYykgewotIyAgICAgICAgICAgIGxhcHBlbmQgY2hlY2soZmlsZXMpICRmaWxlCi0jICAgICAgICAgfQotIyAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgSU5GTzogICAgY3RzX3NwZWMgPSAkdmFycyhjdHNfc3BlYylcbiIKLSMgICAgICB9Ci0KLSAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhjY29wdF9pbnRlZ3JhdGlvbildfSB7Ci0gICAgICAgICBzZXQgdmFsaWQge3NjcmlwdGVkIG5hdGl2ZX0KLSAgICAgICAgIGlmIHtbbHNlYXJjaCAkdmFsaWQgJHZhcnMoY2NvcHRfaW50ZWdyYXRpb24pXSA9PSAtMX0gewotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICBFUlJPUjogVmFyaWFibGUgdmFycyhjdHNfZW5naW5lKSBoYXMgaWxsZWdhbCB2YWx1ZSAkdmFycyhjdHNfZW5naW5lKVxuIgotICAgICAgICAgICAgc2V0IGVycm9ycygkZXJyb3JfY291bnQpICJWYXJpYWJsZSB2YXJzKGN0c19lbmdpbmUpIGhhcyBpbGxlZ2FsIHZhbHVlICR2YXJzKGN0c19lbmdpbmUpIgotICAgICAgICAgICAgaW5jciBlcnJvcl9jb3VudAotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICAgICAgICAgTXVzdCBiZSBvbmUgb2YgJyR2YWxpZCdcbiIKLSAgICAgICAgIH0KLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAjIERlZmF1bHQgdG8gbmF0aXZlIGludGVncmF0aW9uCi0gICAgICAgICBzZXQgdmFycyhjY29wdF9pbnRlZ3JhdGlvbikgIm5hdGl2ZSIKLSAgICAgIH0KLSAgICAgIGlmIHtbbGluZGV4IFtzcGxpdCAkdmFycyh2ZXJzaW9uKSAiLiJdICAwXSA+IDEwfSB7Ci0gICAgICAgICBmb3JlYWNoIHZhciBbYXJyYXkgbmFtZXMgdmFyc10gewotICAgICAgICAgICAgc2V0IHNhdmVfdmFycygkdmFyKSAkdmFycygkdmFyKQotICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB0dmFycygkdmFyKV19IHsKLSAgICAgICAgICAgICAgIHNldCB2YXJzKCR2YXIpICR0dmFycygkdmFyKQotICAgICAgICAgICAgfQotICAgICAgICAgfQotICAgICAgfQotCi0gICAgICBzZXQgY29tbWFuZHMgICIiCi0KLSAgICAgIHNldCBjaGVjayhmaWxlcykgW2xpc3RdCi0gICAgICBzZXQgY2hlY2soaW50ZWdlcnMpIFtsaXN0XQotCi0KLSAgICAgIGlmIHshW2luZm8gZXhpc3RzIHZhcnMoYWJvcnQpXX0gewotICAgICAgICAgc2V0IHZhcnMoYWJvcnQpIDAKLSAgICAgIH0KLQotICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGNoZWNrX3ZhcnMpXSAmJiAkdmFycyhjaGVja192YXJzKX0gewotICAgICAgICAgc291cmNlICR2YXJzKHNjcmlwdF9yb290KS9FVEMvSU5OT1ZVUy9jaGVja192YXJzLnRjbAotICAgICAgfQotCi0gICAgICBhcHBlbmQgY29tbWFuZHMgIiMgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgICAgICAgICAgICAgIFJlcXVpcmVkIFZhcmlhYmxlc1xuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4iCi0gICAgICBzZXQgY291bnQgMAotICAgICAgZm9yZWFjaCByZXF1aXJlZCAiZnBfdGNsX2ZpbGUgZnBfZmlsZSBkZWZfZmlsZXMiIHsKLSAgICAgICAgIGlmIHshJHZhcnMocmMpfSB7Ci0gICAgICAgICAgICMgQkNMOiBPbmx5IGNoZWNrIGZvciB2YXJzKGRlZl9maWxlcykgaWYgbm90IGluIFJDIG1vZGUKLSAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCRyZXF1aXJlZCldICYmICgkdmFycygkcmVxdWlyZWQpICE9ICIiKX0gewotICAgICAgICAgICAgICBpZiB7JHJlcXVpcmVkID09ICJkZWZfZmlsZXMifSB7Ci0gICAgICAgICAgICAgICAgIHNldCBmaXJzdCAxCi0gICAgICAgICAgICAgICAgICMgQkNMOiBBZGRlZCBzdWJzdCBhcm91bmQgdmFycyhkZWZfZmlsZXMpIHRvIHJlc29sdmUgdmFycyhydW5kaXIpCi0gICAgICAgICAgICAgICAgIGZvcmVhY2ggZmlsZSBbc3Vic3QgJHZhcnMoZGVmX2ZpbGVzKV0gewotICAgICAgICAgICAgICAgICAgICBpZiB7JGZpcnN0ID09IDF9IHsKLSAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICBJTkZPOiAgICAkcmVxdWlyZWQgPSAkZmlsZVxuIgotICAgICAgICAgICAgICAgICAgICAgICBzZXQgZmlyc3QgMAotICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIElORk86ICAgICAgICAgICAgICAgICRmaWxlIgotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgIGlmIHshJHZhcnMocmMpfSB7IAotICAgICAgICAgICAgICAgICAgICAgICBsYXBwZW5kIGNoZWNrKGZpbGVzKSAkZmlsZQotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgbGFwcGVuZCBjaGVjayhmaWxlcykgJHZhcnMoJHJlcXVpcmVkKQotICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIElORk86ICAgICRyZXF1aXJlZCA9ICR2YXJzKCRyZXF1aXJlZClcbiIKLSAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICBpbmNyIGNvdW50Ci0gICAgICAgICAgIH0KLSAgICAgICAgIH0KLSAgICAgIH0KLSAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhmcF90Y2xfcHJvYyldfSB7Ci0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIElORk86ICAgIGZwX3RjbF9wcm9jID0gJHZhcnMoZnBfdGNsX3Byb2MpXG4iCi0gICAgICAgICBpbmNyIGNvdW50Ci0gICAgICB9Ci0KLSAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhvYV9mcCldfSB7IAotICAgICAgICAgaWYge1tsbGVuZ3RoICR2YXJzKG9hX2ZwKV0gPT0gM30gewotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICBJTkZPOiAgICAgICAgICBvYV9mcCA9ICR2YXJzKG9hX2ZwKVxuIgotICAgICAgICAgICAgaW5jciBjb3VudAotICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgRVJST1I6IE9BIGZsb29ycGxhbiB2YXJpYWJsZSAob2FfZnApIHNob3VsZCBiZSAnbGliIGNlbGwgdmlldyciCi0gICAgICAgICAgICBzZXQgZXJyb3JzKCRlcnJvcl9jb3VudCkgIk9BIGZsb29ycGxhbiB2YXJpYWJsZSAob2FfZnApIHNob3VsZCBiZSAnbGliIGNlbGwgdmlldyciCi0gICAgICAgICAgICBpbmNyIGVycm9yX2NvdW50Ci0gICAgICAgICB9Ci0gICAgICB9IGVsc2UgewotICAgICAgICAgaWYgeyRjb3VudCA9PSAwfSB7Ci0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIFdBUk5JTkc6IE5laXRoZXIgZnBfZmlsZSwgZGVmX2ZpbGVzLCBmcF90Y2xfZmlsZSwgZnBfdGNsX3Byb2MgYXJlIGRlZmluZWRcbiIKLSAgICAgICAgICAgIHNldCB3YXJuaW5ncygkd2FybmluZ19jb3VudCkgIkVpdGhlciBmcF9maWxlLCBkZWZfZmlsZXMsIGZwX3RjbF9maWxlLCBmcF90Y2xfcHJvYyBzaG91bGQgYmUgZGVmaW5lZCIKLSAgICAgICAgICAgIGluY3Igd2FybmluZ19jb3VudAotICAgICAgICAgfQotICAgICAgfQotCi0gICAgICBpZiB7W3N0cmluZyBjb21wYXJlIC1ub2Nhc2UgJHZhcnMobmV0bGlzdF90eXBlKSAidmVyaWxvZyJdPj0wfSB7Ci0gICAgICAgICAjIEJDTDogTm90ZSAtIFRoaXMgY29kZSByZW1vdmVkIGFzIHRoZSBSQyBGb3VuZGF0aW9uIEZsb3cgd2lsbCBzZXQgdmFycyhkZWZfbmV0bGlzdCkgd2hlbiBpdAotICAgICAgICAgIyBpc24ndCBkZWZpbmVkIGluIHRoZSB1c2VyJ3Mgc2V0dXAudGNsCi0gICAgICAgICAjaWYgeyR2YXJzKHJjKSAmJiAhW2luZm8gZXhpc3RzIHZhcnMobmV0bGlzdCldfSB7Ci0gICAgICAgICAjICAgc2V0IHZhcnMobmV0bGlzdCkgJHZhcnMoZGJzX2RpcikvJHZhcnMoZGVzaWduKS5zeW5fcGxhY2VkLnYuZ3oKLSAgICAgICAgICN9Ci0gICAgICAgICBpZiB7ISR2YXJzKHJjKX0gewotICAgICAgICAgICAjIEJDTDogT25seSBjaGVjayBmb3IgdmFycyhuZXRsaXN0KSBpZiBub3QgaW4gUkMgbW9kZQotICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMobmV0bGlzdCldfSB7Ci0gICAgICAgICAgICAgICMgQkNMOiBBZGRlZCBzdWJzdCBhcm91bmQgdmFycyhuZXRsaXN0KQotICAgICAgICAgICAgICBmb3JlYWNoIGZpbGUgW3N1YnN0ICR2YXJzKG5ldGxpc3QpXSB7Ci0gICAgICAgICAgICAgICAgIGlmIHshJHZhcnMocmMpfSB7Ci0gICAgICAgICAgICAgICAgICAgIGxhcHBlbmQgY2hlY2soZmlsZXMpICRmaWxlCi0gICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIElORk86ICAgIG5ldGxpc3QgPSAkdmFycyhuZXRsaXN0KVxuIgotICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICBpZiB7KCR2YXJzKG5ldGxpc3RfdHlwZSkgPT0gIlZlcmlsb2ciKX0gewotICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIEVSUk9SOiBBIHZlcmlsb2cgbmV0bGlzdCBmaWxlIG11c3QgYmUgZGVmaW5lZFxuIgotICAgICAgICAgICAgICAgICBzZXQgZXJyb3JzKCRlcnJvcl9jb3VudCkgIkEgdmVyaWxvZyBuZXRsaXN0IGZpbGUgbXVzdCBiZSBkZWZpbmVkIgotICAgICAgICAgICAgICAgICBpbmNyIGVycm9yX2NvdW50Ci0gICAgICAgICAgICAgIH0KLSAgICAgICAgICAgfQotICAgICAgICAgfQotICAgICAgfSBlbHNlaWYge1tzdHJpbmcgY29tcGFyZSAtbm9jYXNlICR2YXJzKG5ldGxpc3RfdHlwZSkgIm9hIl09PTB9IHsKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgSU5GTzogICAgbmV0bGlzdF90eXBlID0gJHZhcnMobmV0bGlzdF90eXBlKVxuIgotICAgICAgICAgZm9yZWFjaCByZXF1aXJlZCAib2FfcmVmX2xpYiBvYV9kZXNpZ25fbGliIG9hX2Rlc2lnbl9jZWxsIG9hX2Rlc2lnbl92aWV3IiB7Ci0gICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJHJlcXVpcmVkKV0gJiYgKCR2YXJzKCRyZXF1aXJlZCkgIT0gIiIpfSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIElORk86ICAgICAgICRyZXF1aXJlZCA9ICR2YXJzKCRyZXF1aXJlZClcbiIKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIEVSUk9SOiBWYXJpYWJsZSAkcmVxdWlyZWQgbXVzdCBiZSBkZWZpbmVkIHdoZW4gbmV0bGlzdF90eXBlIGlzIG9wZW4gYWNjZXNzIgotICAgICAgICAgICAgICAgc2V0IGVycm9ycygkZXJyb3JfY291bnQpICJWYXJpYWJsZSAkcmVxdWlyZWQgbXVzdCBiZSBkZWZpbmVkIHdoZW4gbmV0bGlzdF90eXBlIGlzIG9wZW4gYWNjZXNzIgotICAgICAgICAgICAgICAgaW5jciBlcnJvcl9jb3VudAotICAgICAgICAgICAgfQotICAgICAgICAgfQotICAgICAgfQotICAgICAgaWYge1tzdHJpbmcgY29tcGFyZSAtbm9jYXNlICR2YXJzKGRic19mb3JtYXQpICJvYSJdPT0wfSB7Ci0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIElORk86ICAgIGRic19mb3JtYXQgPSAkdmFycyhkYnNfZm9ybWF0KVxuIgotICAgICAgICAgZm9yZWFjaCByZXF1aXJlZCAib2FfcmVmX2xpYiBvYV9kZXNpZ25fbGliIG9hX2Fic3RyYWN0X25hbWUgb2FfbGF5b3V0X25hbWUiIHsKLSAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkcmVxdWlyZWQpXSAmJiAoJHZhcnMoJHJlcXVpcmVkKSAhPSAiIil9IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgSU5GTzogICAgICAgJHJlcXVpcmVkID0gJHZhcnMoJHJlcXVpcmVkKVxuIgotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgRVJST1I6IFZhcmlhYmxlICRyZXF1aXJlZCBtdXN0IGJlIGRlZmluZWQgd2hlbiBkYnNfZm9ybWF0IGlzIG9wZW4gYWNjZXNzIgotICAgICAgICAgICAgICAgc2V0IGVycm9ycygkZXJyb3JfY291bnQpICJWYXJpYWJsZSAkcmVxdWlyZWQgbXVzdCBiZSBkZWZpbmVkIHdoZW4gZGJzX2Zvcm1hdCBpcyBvcGVuIGFjY2VzcyIKLSAgICAgICAgICAgICAgIGluY3IgZXJyb3JfY291bnQKLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0KLSAgICAgIH0KLSAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhlbmFibGVfbHZzKV0gJiYgJHZhcnMoZW5hYmxlX2x2cyl9IHsKLSAgICAgICAgIGlmIHtbc3RyaW5nIGNvbXBhcmUgLW5vY2FzZSAkdmFycyhkYnNfZm9ybWF0KSAib2EiXSE9MH0gewotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICBXQVJOSU5HOiBWYXJpYWJsZSBlbmFibGVfbHZzIGlzIG9ubHkgYWxsb3dlZCB3aGVuIGRic19mb3JtYXQgaXMgb3BlbiBhY2Nlc3MiCi0gICAgICAgICAgICBzZXQgd2FybmluZ3MoJHdhcm5pbmdfY291bnQpICJWYXJpYWJsZSBlbmFibGVfbHZzIGlzIG9ubHkgYWxsb3dlZCB3aGVuIGRic19mb3JtYXQgaXMgb3BlbiBhY2Nlc3MiCi0gICAgICAgICAgICBpbmNyIHdhcm5pbmdfY291bnQKLSAgICAgICAgICAgIHNldCB2YXJzKGVuYWJsZV9sdnMpIGZhbHNlCi0gICAgICAgICB9Ci0gICAgICB9Ci0jICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKG5ldGxpc3QpXX0gewotIyAgICAgICAgIGZvcmVhY2ggZmlsZSAkdmFycyhuZXRsaXN0KSB7Ci0jICAgICAgICAgICAgbGFwcGVuZCBjaGVjayhmaWxlcykgJGZpbGUKLSMgICAgICAgICB9Ci0jICAgICAgfSBlbHNlIHsKLSMgICAgICAgICBpZiB7JHZhcnMobmV0bGlzdF90eXBlKSA9PSAiVmVyaWxvZyJ9IHsKLSMgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIEVSUk9SOiBBIHZlcmlsb2cgbmV0bGlzdCBmaWxlIG11c3QgYmUgZGVmaW5lZFxuIgotIyAgICAgICAgICAgIHNldCBlcnJvcnMoJGVycm9yX2NvdW50KSAiQSB2ZXJpbG9nIG5ldGxpc3QgZmlsZSBtdXN0IGJlIGRlZmluZWQiCi0jICAgICAgICAgICAgaW5jciBlcnJvcl9jb3VudAotIwotIyAgICAgICAgIH0KLSMgICAgICB9Ci0KLSAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhjdHNfc3BlYyldICYmICgkdmFycyhjdHNfZW5naW5lKSA9PSAiY2NvcHQiKX0gewotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICBFUlJPUjogVmFyaWFibGUgY3RzX3NwZWMgZGVmaW5lZCBhbmQgY3RzX2VuZ2luZSBpcyBzZXQgdG8gY2NvcHRcbiIKLSAgICAgICAgIHNldCBlcnJvcnMoJGVycm9yX2NvdW50KSAiVmFyaWFibGUgY3RzX3NwZWMgZGVmaW5lZCBhbmQgY3RzX2VuZ2luZSBpcyBzZXQgdG8gY2NvcHQiCi0gICAgICAgICBpbmNyIGVycm9yX2NvdW50Ci0gICAgICAgICBmb3JlYWNoIGZpbGUgJHZhcnMoY3RzX3NwZWMpIHsKLSAgICAgICAgICAgIGxhcHBlbmQgY2hlY2soZmlsZXMpICRmaWxlCi0gICAgICAgICB9Ci0gICAgICB9Ci0KLSMgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoY3BmX2ZpbGUpXSAmJiAkdmFycyhjcGZfdGltaW5nKX0gewotIyAgICAgICAgIHNldCByZXF1aXJlZF9saXN0ICJmbG93IHByb2Nlc3MgbGlicmFyeV9zZXRzIHJjX2Nvcm5lcnMgZGVsYXlfY29ybmVycyIKLSMgICAgICB9IGVsc2UgewotICAgICAgICAgc2V0IHJlcXVpcmVkX2xpc3QgImZsb3cgcHJvY2VzcyBsaWJyYXJ5X3NldHMgcmNfY29ybmVycyBkZWxheV9jb3JuZXJzIHNldHVwX2FuYWx5c2lzX3ZpZXdzIFwKLSAgICAgICAgICAgICAgICAgICAgICAgaG9sZF9hbmFseXNpc192aWV3cyBhY3RpdmVfc2V0dXBfdmlld3MgYWN0aXZlX2hvbGRfdmlld3MgZGVmYXVsdF9zZXR1cF92aWV3IGRlZmF1bHRfaG9sZF92aWV3IgotIyAgICAgIH0KLQotICAgICAgZm9yZWFjaCByZXF1aXJlZCAkcmVxdWlyZWRfbGlzdCB7Ci0gICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJHJlcXVpcmVkKV0gJiYgKCR2YXJzKCRyZXF1aXJlZCkgIT0gIiIpfSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIElORk86ICAgICRyZXF1aXJlZCA9ICR2YXJzKCRyZXF1aXJlZClcbiIKLSAgICAgICAgICAgICAgIGlmIHskcmVxdWlyZWQgPT0gImZsb3cifSB7Ci0gICAgICAgICAgICAgICAgICBpZiB7KFtpbmZvIGV4aXN0cyB2YXJzKHBhcnRpdGlvbl9saXN0KV0gfHwgKCR2YXJzKGlsbV9saXN0KSAhPSAiIikpICYmICgkdmFycyhmbG93KSAhPSAibW1tYyIpfSB7Ci0gICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIEVSUk9SOiBGbG93IHZhcmlhYmxlIHZhcnMoZmxvdykgbXVzdCBiZSBcIm1tbWNcIiB3aGVuIElMTXMgYXJlIGRlZmluZWRcbiIKLSAgICAgICAgICAgICAgICAgICAgIHNldCBlcnJvcnMoJGVycm9yX2NvdW50KSAiIyAgRVJST1I6IEZsb3cgdmFyaWFibGUgdmFycyhmbG93KSBtdXN0IGJlIFwibW1tY1wiIHdoZW4gSUxNcyBhcmUgZGVmaW5lZCIKLSAgICAgICAgICAgICAgICAgICAgIGluY3IgZXJyb3JfY291bnQKLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgIH0KLSAgICAgIH0KLQotIyAgICAgIGlmIHshW2luZm8gZXhpc3RzIHZhcnModmlld19kZWZpbml0aW9uX3RjbCldfSB7Ci0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgICAgICAgICAgICAgICAgTGlicmFyeSBTZXRzXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiIKLSAgICAgICAgIGZvcmVhY2ggbGlicmFyeV9zZXQgJHZhcnMobGlicmFyeV9zZXRzKSB7Ci0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIElORk86ICRsaWJyYXJ5X3NldDpcbiIKLSAgICAgICAgICAgIGZvcmVhY2ggcmVxdWlyZWQgInRpbWluZyIgewotICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCRsaWJyYXJ5X3NldCwkcmVxdWlyZWQpXSAmJiAoJHZhcnMoJGxpYnJhcnlfc2V0LCRyZXF1aXJlZCkgIT0gIiIpfSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIElORk86ICAgICRyZXF1aXJlZCA9IFxuIgotICAgICAgICAgICAgICAgICAgZm9yZWFjaCBsaWIgJHZhcnMoJGxpYnJhcnlfc2V0LCRyZXF1aXJlZCkgewotICAgIyAgICAgICAgICAgICAgICAgIGxhcHBlbmQgY2hlY2soZmlsZXMpICRsaWIKLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgSU5GTzogICAgICAgJGxpYlxuIgotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgIGlmIHtbRkY6OmlzX2xwX2Zsb3ddfSB7Ci0gICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIFdBUk5JTkc6IFZhcmlhYmxlIHZhcnMoJGxpYnJhcnlfc2V0LCRyZXF1aXJlZCkgbm90IGRlZmluZWRcbiIKLSAgICAgICAgICAgICAgICAgICAgIHNldCB3YXJuaW5ncygkd2FybmluZ19jb3VudCkgIlZhcmlhYmxlIHZhcnMoJGxpYnJhcnlfc2V0LCRyZXF1aXJlZCkgbm90IGRlZmluZWQiCi0gICAgICAgICAgICAgICAgICAgICBpbmNyIHdhcm5pbmdfY291bnQKLSAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIEVSUk9SOiBSZXF1aXJlZCB2YXJpYWJsZSB2YXJzKCRsaWJyYXJ5X3NldCwkcmVxdWlyZWQpIG5vdCBkZWZpbmVkIG9yIGVtcHR5XG4iCi0gICAgICAgICAgICAgICAgICAgICBzZXQgZXJyb3JzKCRlcnJvcl9jb3VudCkgIlJlcXVpcmVkIHZhcmlhYmxlIHZhcnMoJGxpYnJhcnlfc2V0LCRyZXF1aXJlZCkgbm90IGRlZmluZWQgb3IgZW1wdHkiCi0gICAgICAgICAgICAgICAgICAgICBpbmNyIGVycm9yX2NvdW50Ci0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJGxpYnJhcnlfc2V0LGFvY3YpXX0gewotICAgICAgICAgICAgICAgZm9yZWFjaCBmaWxlICR2YXJzKCRsaWJyYXJ5X3NldCxhb2N2KSB7Ci0gICAgICAgICAgICAgICAgICBpZiB7IVtmaWxlIGV4aXN0cyAkZmlsZV19IHsKLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgV0FSTklORzogQU9DViB0YWJsZSBmaWxlIGRvZXMgbm90IGV4aXN0ICgkZmlsZSlcbiIKLSAgICAgICAgICAgICAgICAgICAgIHNldCB3YXJuaW5ncygkd2FybmluZ19jb3VudCkgIkFPQ1YgdGFibGUgZmlsZSBkb2VzIG5vdCBleGlzdCAoJGZpbGUpIgotICAgICAgICAgICAgICAgICAgICAgaW5jciB3YXJuaW5nX2NvdW50Ci0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgaWYgeyR2YXJzKGVuYWJsZV9hb2N2KX0gewotICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICBXQVJOSU5HOiBBT0NWIGVuYWJsZWQsIGJ1dCB0YWJsZSBub3QgcHJvdmlkZWQgZm9yICRsaWJyYXJ5X3NldFxuIgotICAgICAgICAgICAgICAgICAgICAgc2V0IHdhcm5pbmdzKCR3YXJuaW5nX2NvdW50KSAiQU9DViBlbmFibGVkLCBidXQgdGFibGUgbm90IHByb3ZpZGVkIGZvciAkbGlicmFyeV9zZXQiCi0gICAgICAgICAgICAgICAgICAgICBpbmNyIHdhcm5pbmdfY291bnQKLSAgICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCRsaWJyYXJ5X3NldCxzb2N2KV19IHsKLSAgICAgICAgICAgICAgIGZvcmVhY2ggZmlsZSAkdmFycygkbGlicmFyeV9zZXQsc29jdikgewotICAgICAgICAgICAgICAgICAgaWYgeyFbZmlsZSBleGlzdHMgJGZpbGVdfSB7Ci0gICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIFdBUk5JTkc6IFNPQ1YgdGFibGUgZmlsZSBkb2VzIG5vdCBleGlzdCAoJGZpbGUpXG4iCi0gICAgICAgICAgICAgICAgICAgICBzZXQgd2FybmluZ3MoJHdhcm5pbmdfY291bnQpICJTT0NWIHRhYmxlIGZpbGUgZG9lcyBub3QgZXhpc3QgKCRmaWxlKSIKLSAgICAgICAgICAgICAgICAgICAgIGluY3Igd2FybmluZ19jb3VudAotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIGlmIHskdmFycyhlbmFibGVfc29jdil9IHsKLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgV0FSTklORzogU09DViBlbmFibGVkLCBidXQgdGFibGUgbm90IHByb3ZpZGVkIGZvciAkbGlicmFyeV9zZXRcbiIKLSAgICAgICAgICAgICAgICAgICAgIHNldCB3YXJuaW5ncygkd2FybmluZ19jb3VudCkgIlNPQ1YgZW5hYmxlZCwgYnV0IHRhYmxlIG5vdCBwcm92aWRlZCBmb3IgJGxpYnJhcnlfc2V0IgotICAgICAgICAgICAgICAgICAgICAgaW5jciB3YXJuaW5nX2NvdW50Ci0gICAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkbGlicmFyeV9zZXQsc2kpXX0gewotICAgICAgICAgICAgICAgZm9yZWFjaCBmaWxlICR2YXJzKCRsaWJyYXJ5X3NldCxzaSkgewotICAgICAgICAgICAgICAgICAgaWYgeyFbZmlsZSBleGlzdHMgJGZpbGVdfSB7Ci0gICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIFdBUk5JTkc6IENEQiBmaWxlIGRvZXMgbm90IGV4aXN0ICgkZmlsZSlcbiIKLSAgICAgICAgICAgICAgICAgICAgIHNldCB3YXJuaW5ncygkd2FybmluZ19jb3VudCkgIkNEQiBmaWxlIGRvZXMgbm90IGV4aXN0ICgkZmlsZSkiCi0gICAgICAgICAgICAgICAgICAgICBpbmNyIHdhcm5pbmdfY291bnQKLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0gCi0gICAgICAgICB9Ci0jICAgICAgfQotCi0gICAgICBhcHBlbmQgY29tbWFuZHMgIiMgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgICAgICAgICAgICAgICAgTEVGIEZpbGVzXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgIiMgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiIKLSAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhsZWZfZmlsZXMpXX0gewotICAgICAgICAgZm9yZWFjaCBmaWxlICR2YXJzKGxlZl9maWxlcykgewotICAgIyAgICBsYXBwZW5kIGNoZWNrKGZpbGVzKSAkZmlsZQotICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgSU5GTzogJGZpbGVcbiIKLSAgICAgICAgIH0KLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgICBpZiB7KFtzdHJpbmcgdG9sb3dlciAkdmFycyhuZXRsaXN0X3R5cGUpXSA9PSAidmVyaWxvZyIpICYmICghW2luZm8gZXhpc3RzIHZhcnMob2FfcmVmX2xpYildKX0gewotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICBFUlJPUjogUmVxdWlyZWQgdmFyaWFibGUgdmFycyhsZWZfZmlsZXMpIG5vdCBkZWZpbmVkXG4iCi0gICAgICAgICAgICBzZXQgZXJyb3JzKCRlcnJvcl9jb3VudCkgIlJlcXVpcmVkIHZhcmlhYmxlIHZhcnMobGVmX2ZpbGVzKSBub3QgZGVmaW5lZCIKLSAgICAgICAgICAgIGluY3IgZXJyb3JfY291bnQKLSAgICAgICAgIH0KLSAgICAgIH0KLQotICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKHBhcnRpdGlvbl9saXN0KV19IHsKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICAgICAgICAgICAgICAgICBIaWVyYXJjaGljYWwgXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgSU5GTzogcGFydGl0aW9ucyA9ICR2YXJzKHBhcnRpdGlvbl9saXN0KVxuIgotICAgICAgICAgc2V0IGN0c19zcGVjIFtGRjo6Z2V0X2J5X3N1ZmZpeCB2YXJzICIsY3RzX3NwZWMiXSAKLSAgICAgICAgIGlmIHskY3RzX3NwZWMgIT0gIiJ9IHsKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgIENUUyBTcGVjcyA6IFxuIgotICAgICAgICAgICAgZm9yZWFjaCBwYXJ0aXRpb24gJGN0c19zcGVjIHsKLSAgICAgICAgICAgICAgIGxhcHBlbmQgY2hlY2soZmlsZXMpICR2YXJzKCRwYXJ0aXRpb24sY3RzX3NwZWMpCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgICAgICAkcGFydGl0aW9uIC0+ICR2YXJzKCRwYXJ0aXRpb24sY3RzX3NwZWMpXG4iCi0gICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0gICAgICAgICBzZXQgbGF0ZW5jeV9zZGMgW0ZGOjpnZXRfYnlfc3VmZml4IHZhcnMgIixsYXRlbmN5X3NkYyJdCi0gICAgICAgICBpZiB7JGxhdGVuY3lfc2RjICE9ICIifSB7Ci0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgICBMYXRlbmN5IFNEQ3MgOlxuIgotICAgICAgICAgICAgZm9yZWFjaCBwYXJ0aXRpb24gJGxhdGVuY3lfc2RjIHsKLSAgICAgICAgICAgICAgIGxhcHBlbmQgY2hlY2soZmlsZXMpICR2YXJzKCRwYXJ0aXRpb24sbGF0ZW5jeV9zZGMpCi0gICAgICAgICAgICAgICBpZiB7W2xsZW5ndGggW3NwbGl0ICRwYXJ0aXRpb24gIiwiXV0gPT0gMX0geyAgCi0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgICAgICAkcGFydGl0aW9uIC0+ICR2YXJzKCRwYXJ0aXRpb24sbGF0ZW5jeV9zZGMpXG4iCi0gICAgICAgICAgICAgICB9IGVsc2UgeyAKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgICAgIFtsaW5kZXggW3NwbGl0ICRwYXJ0aXRpb24gIiwiXSAwXSAoW2xpbmRleCBbc3BsaXQgJHBhcnRpdGlvbiAiLCJdIDFdKSAtPiAkdmFycygkcGFydGl0aW9uLGxhdGVuY3lfc2RjKVxuIgotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAgfQotICAgICAgfQotICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGVuYWJsZV9wYWMpXSAmJiAkdmFycyhlbmFibGVfcGFjKX0gewotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICBXQVJOSU5HOiBQQUMgaXMgb2Jzb2xldGUgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSB2ZXJzaW9uLiBDb25zaWRlciB1c2luZyBTaWduLW9mZiBFQ08uIgotICAgICAgICAgc2V0IHdhcm5pbmdzKCR3YXJuaW5nX2NvdW50KSAiUEFDIGlzIG9ic29sZXRlIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgdmVyc2lvbi4gQ29uc2lkZXIgdXNpbmcgU2lnbi1vZmYgRUNPLiIKLSAgICAgICAgIGluY3Igd2FybmluZ19jb3VudAotICAgICAgICAgc2V0IHBhY19tb2RlIFtGRjo6Z2V0X2J5X3N1ZmZpeCB2YXJzICIscGFjX21vZGUiXQotICAgICAgICAgaWYgeyRwYWNfbW9kZSAhPSAiIn0gewotICAgICAgICAgICAgc2V0IHBhY19saXN0IFtsaXN0ICJyZWFkX29ubHkiICJpbnRlcmZhY2UiICJpbG0iICJhbGwiXQotICAgICAgICAgICAgZm9yZWFjaCBwYWMgJHBhY19tb2RlIHsKLSAgICAgICAgICAgICAgIGlmIHtbbHNlYXJjaCAkcGFjX2xpc3QgJHZhcnMoJHBhYyxwYWNfbW9kZSldID09IC0xfSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIEVSUk9SOiAkcGFjIHBhY19tb2RlIGludmFsaWQgdmFsdWU7IG11c3QgYmUgb25lIG9mIFwnJHBhY19saXN0XCdcbiIKLSAgICAgICAgICAgICAgICAgIHNldCBlcnJvcnMoJGVycm9yX2NvdW50KSAiJHBhYyBwYWNfbW9kZSBpbnZhbGlkIHZhbHVlOyBtdXN0IGJlIG9uZSBvZiBcJyRwYWNfbGlzdFwnIiAKLSAgICAgICAgICAgICAgICAgIGluY3IgZXJyb3JfY291bnQKLSAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAgfQotICAgICAgfQotICAgICAgaWYge1tGRjo6aXNfbHBfZmxvd119IHsKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICAgICAgICAgICAgICAgIExvdyBQb3dlciBcbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuIgotICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGllZWUxODAxX2ZpbGUpXX0gewotICAgICAgICAgICAgIHNldCB3YXJuaW5ncygkd2FybmluZ19jb3VudCkgIlVzaW5nIHZhcnMoaWVlZTE4MDFfZmlsZSkgcmVxdWlyZXMgdGhlIGZvbGxvd2luZyBsaW1pdGVkIGFjY2VzcyBmZWF0dXJlIDogbXZzU3VwcG9ydElFRUUxODAxIgotICAgICAgICAgICAgIGluY3Igd2FybmluZ19jb3VudAotICAgICAgICAgfQotICAgICAgICAgc2V0IG51bV9wb3dlcl9pbnRlbnRfZmlsZXMgMAotICAgICAgICAgZm9yZWFjaCB2IHtjcGZfZmlsZSBpZWVlMTgwMV9maWxlfSB7Ci0gICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJHYpXX0gewotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICBJTkZPOiAkdiA9ICR2YXJzKCR2KVxuIgotICAgICAgICAgICAgICAgbGFwcGVuZCBjaGVjayhmaWxlcykgJHZhcnMoJHYpCi0gICAgICAgICAgICAgICBpbmNyIG51bV9wb3dlcl9pbnRlbnRfZmlsZXMKLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0KLSAgICAgICAgIGlmIHskbnVtX3Bvd2VyX2ludGVudF9maWxlcyA+IDF9IHsKLSAgICAgICAgICAgIHNldCBlcnJvcnMoJGVycm9yX2NvdW50KSAidmFycyhjcGZfZmlsZSkgYW5kIHZhcnMoaWVlZTE4MDFfZmlsZSkgbWF5IG5vdCBib3RoIGJlIHNwZWNpZmllZC4iCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIEVSUk9SOiAkZXJyb3JzKCRlcnJvcl9jb3VudClcbiIKLSAgICAgICAgICAgIGluY3IgZXJyb3JfY291bnQKLSAgICAgICAgIH0KLQotICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKHBvd2VyX2RvbWFpbnMpXSAmJiAoJHZhcnMocG93ZXJfZG9tYWlucykgIT0gIiIpfSB7Ci0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIElORk86IHBvd2VyX2RvbWFpbnMgPSAgJHZhcnMocG93ZXJfZG9tYWlucylcbiIKLSAgICAgICAgICAgIGZvcmVhY2ggZG9tYWluICR2YXJzKHBvd2VyX2RvbWFpbnMpIHsKLSAgICAgICAgICAgICAgIHNldCBwcmludCgkZG9tYWluKSAxCi0gICAgICAgICAgICAgICBmb3JlYWNoIG9wdGlvbmFsICJmaWxsZXJfY2VsbHMgdGllX2NlbGxzIGVuZGNhcHMgd2VsbHRhcHMiIHsKLSAgICAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkZG9tYWluLCRvcHRpb25hbCldICYmICgkdmFycygkZG9tYWluLCRvcHRpb25hbCkgIT0gIiIpfSB7Ci0gICAgICAgICAgICAgICAgICAgICBpZiB7JHByaW50KCRkb21haW4pfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIElORk86ICAgICRkb21haW46XG4iCi0gICAgICAgICAgICAgICAgICAgICAgICBzZXQgcHJpbnQoJGRvbWFpbikgMAotICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICBJTkZPOiAgICAgICAkb3B0aW9uYWwgPSAkdmFycygkZG9tYWluLCRvcHRpb25hbClcbiIKLSAgICAgICAgICAgICAgICAgIH0KLSMgICAgICAgICAgICAgICAgIGlmIHskb3B0aW9uYWwgPT0gImZpbGxlcl9jZWxsc30gewotIyAgICAgICAgICAgICAgICAgICAgIHNldCBwcm9jZXNzIFtyZWdzdWIgIm5tIiAkdmFycyhwcm9jZXNzKSAiIl0KLSMgICAgICAgICAgICAgICAgICAgICBpZiB7W2V4cHIgJHByb2Nlc3MgPD0gMjgpXSAmJiBbaW5mbyBleGlzdHMgdmFycyhmaWxsZXJfY2VsbHMsbWluX2dhcCldfSB7Ci0jICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICBFUlJPUjogRm9yIHByb2Nlc3Mgbm9kZSA8IDI4bm0sIHZhcmlhYmxlIHZhcnMoZmlsbGVyX2NlbGxzLG1pbl9nYXApIGlzIHJlcXVpcmVkXG4iCi0jICAgICAgICAgICAgICAgICAgICAgICAgc2V0IGVycm9ycygkZXJyb3JfY291bnQpICJGb3IgcHJvY2VzcyBub2RlIDwgMjhubSwgdmFyaWFibGUgdmFycyhmaWxsZXJfY2VsbHMsbWluX2dhcCkgaXMgcmVxdWlyZWQiCi0jICAgICAgICAgICAgICAgICAgICAgICAgaW5jciBlcnJvcl9jb3VudAotIyAgICAgICAgICAgICAgICAgICAgIH0KLSMgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICBXQVJOSU5HOiBSZWNvbW1lbmRlZCB2YXJpYWJsZSB2YXJzKHBvd2VyX2RvbWFpbnMpIG5vdCBkZWZpbmVkXG4iCi0gICAgICAgICAgICBzZXQgd2FybmluZ3MoJHdhcm5pbmdfY291bnQpICJSZWNvbW1lbmRlZCB2YXJpYWJsZSB2YXJzKHBvd2VyX2RvbWFpbnMpIG5vdCBkZWZpbmVkIgotICAgICAgICAgICAgaW5jciB3YXJuaW5nX2NvdW50Ci0gICAgICAgICB9Ci0gICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMocG93ZXJfYW5hbHlzaXNfdmlldyldICYmICgkdmFycyhwb3dlcl9hbmFseXNpc192aWV3KSAhPSAiIil9IHsKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgSU5GTzogcG93ZXJfYW5hbHlzaXNfdmlldyA9ICAkdmFycyhwb3dlcl9hbmFseXNpc192aWV3KVxuIgotICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgV0FSTklORzogUmVjb21tZW5kZWQgdmFyaWFibGUgdmFycyhwb3dlcl9hbmFseXNpc192aWV3KSBub3QgZGVmaW5lZFxuIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICAgICAgICAgICBXaWxsIGRlZmF1bHQgdG8gdGhlIGRlZmF1bHQgc2V0dXAgYW5hbHlzaXMgdmlld1xuIgotICAgICAgICAgICAgc2V0IHdhcm5pbmdzKCR3YXJuaW5nX2NvdW50KSAiUmVjb21tZW5kZWQgdmFyaWFibGUgdmFycyhwb3dlcl9hbmFseXNpc192aWV3KSBub3QgZGVmaW5lZCIKLSAgICAgICAgICAgIGluY3Igd2FybmluZ19jb3VudAotICAgICAgICAgfQotICAgICAgfQotCi0jICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycyh2aWV3X2RlZmluaXRpb25fdGNsKV19IHsKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICAgICAgICAgICAgICAgICAgUkMgQ29ybmVyc1xuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4iCi0gICAgICAgICBzZXQgY2hlY2socmNfY29ybmVycykgW2xpc3RdCi0gICAgICAgICBmb3JlYWNoIHJjX2Nvcm5lciAkdmFycyhyY19jb3JuZXJzKSB7Ci0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIElORk86ICRyY19jb3JuZXI6XG4iCi0gICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJHJjX2Nvcm5lcixjYXBfdGFibGUpXSAmJiAoJHZhcnMoJHJjX2Nvcm5lcixjYXBfdGFibGUpICE9ICIiKX0gewotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICBJTkZPOiAgICBjYXBfdGFibGUgPSAkdmFycygkcmNfY29ybmVyLGNhcF90YWJsZSlcbiIKLSAgICAgICAgICAgICAgIGxhcHBlbmQgY2hlY2socmNfY29ybmVycykgJHZhcnMoJHJjX2Nvcm5lcixjYXBfdGFibGUpCi0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycygkcmNfY29ybmVyLHF4X3RlY2hfZmlsZSldfSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIEVSUk9SOiBWYXJpYWJsZSB2YXJzKCRyY19jb3JuZXIsY2FwX3RhYmxlKSBvciB2YXJzKCRyY19jb3JuZXIscXhfdGVjaF9maWxlKSBtdXN0IGJlIGRlZmluZWRcbiIKLSAgICAgICAgICAgICAgICAgIHNldCBlcnJvcnMoJGVycm9yX2NvdW50KSAiVmFyaWFibGUgdmFycygkcmNfY29ybmVyLGNhcF90YWJsZSkgb3IgdmFycygkcmNfY29ybmVyLHF4X3RlY2hfZmlsZSkgbXVzdCBiZSBkZWZpbmVkIgotICAgICAgICAgICAgICAgICAgaW5jciBlcnJvcl9jb3VudAotICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgaWYge1tsaW5kZXggW3NwbGl0ICR2YXJzKHZlcnNpb24pICIuIl0gIDBdIDwgMTV9IHsKLSAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIElORk86IFZhcmlhYmxlIHZhcnMoJHJjX2Nvcm5lcixjYXBfdGFibGUpIG5vdCBkZWZpbmVkXG4iCi0gICAgICAgICAgICAgICAgICAgc2V0IGluZm9zKCRpbmZvX2NvdW50KSAiVmFyaWFibGUgdmFycygkcmNfY29ybmVyLGNhcF90YWJsZSkgbm90IGRlZmluZWQiCi0gICAgICAgICAgICAgICAgICAgaW5jciBpbmZvX2NvdW50Ci0gICAgICAgICAgICAgICAgIH0gCi0gICAgICAgICAgICAgICB9IAotICAgICAgICAgICAgfQotIyAgICAgICAgICAgIGlmIHskdmFycyhjdHNfZW5naW5lKSAhPSAiY3RzIn0gewotIyAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkcmNfY29ybmVyLGF0Zl9maWxlKV0gJiYgKCR2YXJzKCRyY19jb3JuZXIsYXRmX2ZpbGUpICE9ICIiKX0gewotIyAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgSU5GTzogICAgIGF0Zl9maWxlID0gJHZhcnMoJHJjX2Nvcm5lcixhdGZfZmlsZSlcbiIKLSMgICAgICAgICAgICAgICAgICBsYXBwZW5kIGNoZWNrKHJjX2Nvcm5lcnMpICR2YXJzKCRyY19jb3JuZXIsYXRmX2ZpbGUpCi0jICAgICAgICAgICAgICAgfSBlbHNlIHsKLSMgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIFdBUk5JTkc6IFJlY29tbWVuZGVkIHZhcmlhYmxlIHZhcnMoJHJjX2Nvcm5lcixhdGZfZmlsZSkgbm90IGRlZmluZWRcbiIKLSMgICAgICAgICAgICAgICAgICBzZXQgd2FybmluZ3MoJHdhcm5pbmdfY291bnQpICJSZWNvbW1lbmRlZCB2YXJpYWJsZSB2YXJzKCRyY19jb3JuZXIsYXRmX2ZpbGUpIG5vdCBkZWZpbmVkIgotIyAgICAgICAgICAgICAgICAgIGluY3Igd2FybmluZ19jb3VudAotIyAgICAgICAgICAgICAgIH0KLSMgICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJHJjX2Nvcm5lcixUKV0gJiYgKCR2YXJzKCRyY19jb3JuZXIsVCkgIT0gIiIpfSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIElORk86ICAgIHRlbXBlcmF0dXJlID0gJHZhcnMoJHJjX2Nvcm5lcixUKVxuIgotICAgICAgICAgICAgICAgbGFwcGVuZCBjaGVjayhpbnRlZ2VycykgIiRyY19jb3JuZXIsVCIKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIFdBUk5JTkc6IFJlY29tbWVuZGVkIHZhcmlhYmxlIHZhcnMoJHJjX2Nvcm5lcixUKSBub3QgZGVmaW5lZFxuIgotICAgICAgICAgICAgICAgc2V0IHdhcm5pbmdzKCR3YXJuaW5nX2NvdW50KSAiUmVjb21tZW5kZWQgdmFyaWFibGUgdmFycygkcmNfY29ybmVyLFQpIG5vdCBkZWZpbmVkIgotICAgICAgICAgICAgICAgaW5jciB3YXJuaW5nX2NvdW50Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJHJjX2Nvcm5lcixxeF90ZWNoX2ZpbGUpXSAmJiAoJHZhcnMoJHJjX2Nvcm5lcixxeF90ZWNoX2ZpbGUpICE9ICIiKX0gewotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICBJTkZPOiAgICBxeF90ZWNoX2ZpbGUgPSAkdmFycygkcmNfY29ybmVyLHF4X3RlY2hfZmlsZSlcbiIKLSAgICAgICAgICAgICAgIGxhcHBlbmQgY2hlY2socmNfY29ybmVycykgJHZhcnMoJHJjX2Nvcm5lcixxeF90ZWNoX2ZpbGUpCi0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKHBvc3Ryb3V0ZV9leHRyYWN0aW9uX2VmZm9ydCldICYmICgkdmFycyhwb3N0cm91dGVfZXh0cmFjdGlvbl9lZmZvcnQpICE9ICJsb3ciKX0gewotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICBFUlJPUjogcXhfdGVjaF9maWxlIG5vdCBkZWZpbmVkIGZvciAkcmNfY29ybmVyIGFuZCBwb3N0cm91dGVfZXh0cmFjdGlvbl9lZmZvcnQgaXMgc2V0IHRvICR2YXJzKHBvc3Ryb3V0ZV9leHRyYWN0aW9uX2VmZm9ydClcbiIKLSAgICAgICAgICAgICAgICAgIHNldCBlcnJvcnMoJGVycm9yX2NvdW50KSAicXhfdGVjaF9maWxlIG5vdCBkZWZpbmVkIGZvciAkcmNfY29ybmVyIGFuZCBwb3N0cm91dGVfZXh0cmFjdGlvbl9lZmZvcnQgaXMgc2V0IHRvICR2YXJzKHBvc3Ryb3V0ZV9leHRyYWN0aW9uX2VmZm9ydCkiCi0gICAgICAgICAgICAgICAgICBpbmNyIGVycm9yX2NvdW50Ci0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoc2lnbm9mZl9leHRyYWN0aW9uX2VmZm9ydCldICYmICgkdmFycyhzaWdub2ZmX2V4dHJhY3Rpb25fZWZmb3J0KSAhPSAibG93Iil9IHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgRVJST1I6IHF4X3RlY2hfZmlsZSBub3QgZGVmaW5lZCBmb3IgJHJjX2Nvcm5lciBhbmQgc2lnbm9mZl9leHRyYWN0aW9uX2VmZm9ydCBpcyBzZXQgdG8gJHZhcnMoc2lnbm9mZl9leHRyYWN0aW9uX2VmZm9ydClcbiIKLSAgICAgICAgICAgICAgICAgIHNldCBlcnJvcnMoJGVycm9yX2NvdW50KSAicXhfdGVjaF9maWxlIG5vdCBkZWZpbmVkIGZvciAkcmNfY29ybmVyIGFuZCBzaWdub2ZmX2V4dHJhY3Rpb25fZWZmb3J0IGlzIHNldCB0byAkdmFycyhzaWdub2ZmX2V4dHJhY3Rpb25fZWZmb3J0KSIKLSAgICMgICAgICAgICAgICAgICBzZXQgZXJyb3JzKCRlcnJvcl9jb3VudCkgIlJlcXVpcmVkIHZhcmlhYmxlIHZhcnMoJHJjX2Nvcm5lcixjYXBfdGFibGUpIG5vdCBkZWZpbmVkIgotICAgICAgICAgICAgICAgICAgaW5jciBlcnJvcl9jb3VudAotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAgfQotICAgCi0gICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMob3Bjb25kcyldfSB7Ci0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgICAgICAgICAgICBPcGVyYXRpbmcgQ29uZGl0aW9uc1xuIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4iCi0gICAgICAgICAgICBmb3JlYWNoIG9wY29uZCAkdmFycyhvcGNvbmRzKSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIElORk86ICRvcGNvbmQ6XG4iCi0gICAgICAgICAgICAgICBmb3JlYWNoIHJlcXVpcmVkICJsaWJyYXJ5X2ZpbGUgUCBWIFQiIHsKLSAgICAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkb3Bjb25kLCRyZXF1aXJlZCldICYmICgkdmFycygkb3Bjb25kLCRyZXF1aXJlZCkgIT0gIiIpfSB7Ci0gICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIElORk86ICAgICRyZXF1aXJlZCA9ICR2YXJzKCRvcGNvbmQsJHJlcXVpcmVkKVxuIgotICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgRVJST1I6IFJlcXVpcmVkIHZhcmlhYmxlIHZhcnMoJG9wY29uZCwkcmVxdWlyZWQpIG5vdCBkZWZpbmVkXG4iCi0gICAgICAgICAgICAgICAgICAgICBzZXQgZXJyb3JzKCRlcnJvcl9jb3VudCkgIlJlcXVpcmVkIHZhcmlhYmxlIHZhcnMoJG9wY29uZCwkcmVxdWlyZWQpIG5vdCBkZWZpbmVkIgotICAgICAgICAgICAgICAgICAgICAgaW5jciBlcnJvcl9jb3VudAotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAgfQotICAgCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgICAgICAgICAgICAgIERlbGF5IENvcm5lcnNcbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuIgotICAgICAgICAgc2V0IGdvb2RfY29ybmVycyBbbGlzdF0KLSAgICAgICAgIGZvcmVhY2ggZGVsYXlfY29ybmVyICR2YXJzKGRlbGF5X2Nvcm5lcnMpIHsKLSAgICAgICAgICAgIHNldCBhcmdzIDAKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgSU5GTzogJGRlbGF5X2Nvcm5lcjpcbiIKLSAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkZGVsYXlfY29ybmVyLHJjX2Nvcm5lcildICYmICgkdmFycygkZGVsYXlfY29ybmVyLHJjX2Nvcm5lcikgIT0gIiIpfSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIElORk86ICAgIHJjX2Nvcm5lciA9ICR2YXJzKCRkZWxheV9jb3JuZXIscmNfY29ybmVyKVxuIgotICAgICAgICAgICAgICAgaW5jciBhcmdzCi0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICBFUlJPUjogUmVxdWlyZWQgdmFyaWFibGUgdmFycygkZGVsYXlfY29ybmVyLHJjX2Nvcm5lcikgbm90IGRlZmluZWRcbiIKLSAgICAgICAgICAgICAgIHNldCBlcnJvcnMoJGVycm9yX2NvdW50KSAiUmVxdWlyZWQgdmFyaWFibGUgdmFycygkZGVsYXlfY29ybmVyLHJjX2Nvcm5lcikgbm90IGRlZmluZWQiCi0gICAgICAgICAgICAgICBpbmNyIGVycm9yX2NvdW50Ci0gICAgICAgICAgICB9Ci0gICAKLSAgICAgICAgICAgIGlmIHsoIVtGRjo6aXNfbHBfZmxvd10pIHx8IChbRkY6OmlzX2xwX2Zsb3ddICYmICEkdmFycyhjcGZfdGltaW5nKSl9IHsKLSAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkZGVsYXlfY29ybmVyLGxpYnJhcnlfc2V0KV0gJiYgKCR2YXJzKCRkZWxheV9jb3JuZXIsbGlicmFyeV9zZXQpICE9ICIiKX0gewotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICBJTkZPOiAgICBsaWJyYXJ5X3NldCA9ICR2YXJzKCRkZWxheV9jb3JuZXIsbGlicmFyeV9zZXQpXG4iCi0gICAgICAgICAgICAgICAgICBpbmNyIGFyZ3MKLSAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICBmb3JlYWNoIGFkZGl0aW9uYWwgImVhcmx5X2xpYnJhcnlfc2V0IGxhdGVfbGlicmFyeV9zZXQiIHsKLSAgICAgICAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkZGVsYXlfY29ybmVyLCRhZGRpdGlvbmFsKV0gJiYgKCR2YXJzKCRkZWxheV9jb3JuZXIsJGFkZGl0aW9uYWwpICE9ICIiKX0gewotICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICBJTkZPOiAgICAkYWRkaXRpb25hbCA9ICR2YXJzKCRkZWxheV9jb3JuZXIsJGFkZGl0aW9uYWwpXG4iCi0gICAgICAgICAgICAgICAgICAgICAgICBpbmNyIGFyZ3MKLSAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIEVSUk9SOiBSZXF1aXJlZCB2YXJpYWJsZSB2YXJzKCRkZWxheV9jb3JuZXIsbGlicmFyeV9zZXQpIGFuZCB2YXJzKCRkZWxheV9jb3JuZXIsJGFkZGl0aW9uYWwpIG5vdCBkZWZpbmVkXG4iCi0gICAgICAgICAgICAgICAgICAgICAgICBzZXQgZXJyb3JzKCRlcnJvcl9jb3VudCkgIlJlcXVpcmVkIHZhcmlhYmxlIHZhcnMoJGRlbGF5X2Nvcm5lcixsaWJyYXJ5X3NldCkgYW5kIHZhcnMoJGRlbGF5X2Nvcm5lciwkYWRkaXRpb25hbCkgbm90IGRlZmluZWRcbiIKLSAgICAgICAgICAgICAgICAgICAgICAgIGluY3IgZXJyb3JfY291bnQKLSAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGZvcmVhY2ggb3B0aW9uYWwgIm9wY29uZCBvcGNvbmRfbGlicmFyeSBlYXJseV9vcGNvbmRfbGlicmFyeSBsYXRlX29wY29uZF9saWJyYXJ5IiB7Ci0gICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJGRlbGF5X2Nvcm5lciwkb3B0aW9uYWwpXSAmJiAoJHZhcnMoJGRlbGF5X2Nvcm5lciwkb3B0aW9uYWwpICE9ICIiKX0gewotICAgICAgICAgICAgICAgICAgaW5jciBhcmdzCi0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIElORk86ICAgICRvcHRpb25hbCA9ICR2YXJzKCRkZWxheV9jb3JuZXIsJG9wdGlvbmFsKVxuIgotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAgICAgZm9yZWFjaCBvcHRpb25hbCAicG93ZXJfZG9tYWlucyIgewotICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCRkZWxheV9jb3JuZXIsJG9wdGlvbmFsKV0gJiYgKCR2YXJzKCRkZWxheV9jb3JuZXIsJG9wdGlvbmFsKSAhPSAiIil9IHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgSU5GTzogICAgJG9wdGlvbmFsID0gJHZhcnMoJGRlbGF5X2Nvcm5lciwkb3B0aW9uYWwpXG4iCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiB7ISR2YXJzKGNwZl90aW1pbmcpICYmICgkYXJncyA+IDEpfSB7Ci0gICAgICAgICAgICAgICBsYXBwZW5kIGdvb2RfY29ybmVycyAkZGVsYXlfY29ybmVyCi0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgaWYgeyRhcmdzID4gMH0gewotICAgICAgICAgICAgICAgICAgbGFwcGVuZCBnb29kX2Nvcm5lcnMgJGRlbGF5X2Nvcm5lcgotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAgfQotCi0gICAgICAgICBzZXQgdmFycyhnb29kX2Nvcm5lcnMpICRnb29kX2Nvcm5lcnMKLSAgIAotICAgICAgICAgc2V0IGNoZWNrKGNvbnN0cmFpbnRfbW9kZXMpIFtsaXN0XQotICAgICAgICAgaWYge1tGRjo6aXNfbHBfZmxvd119IHsKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICAgICAgICAgICAgIENvbnN0cmFpbnQgTW9kZXNcbiIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuIgotICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGNvbnN0cmFpbnRfbW9kZXMpXX0gewotICAgICAgICAgICAgICAgZm9yZWFjaCBtb2RlICR2YXJzKGNvbnN0cmFpbnRfbW9kZXMpIHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgSU5GTzogJG1vZGU6XG4iCi0gICAgICAgICAgICAgICAgICBmb3JlYWNoIG90aGVyICJwcmVfY3RzX3NkYyBpbmNyX2N0c19zZGMgcG9zdF9jdHNfc2RjIiB7Ci0gICAgICAgICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJG1vZGUsJG90aGVyKV0gJiYgKCR2YXJzKCRtb2RlLCRvdGhlcikgIT0gIiIpfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIElORk86ICAgICRvdGhlciA9ICR2YXJzKCRtb2RlLCRvdGhlcilcbiIKLSAgICAgICAgICAgICAgICAgICAgICAgIGxhcHBlbmQgY2hlY2soY29uc3RyYWludF9tb2RlcykgJHZhcnMoJG1vZGUsJG90aGVyKQotICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIHshJHZhcnMoY3BmX3RpbWluZyl9IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIHsoJG90aGVyID09ICJwcmVfY3RzX3NkYyIpICYmICR2YXJzKHJjKX0gewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0IHZhcnMoJG1vZGUsJG90aGVyKSAkdmFycyhkYnNfZGlyKS8kdmFycyhkZXNpZ24pLnN5bl9wbGFjZWQuJG1vZGUuc2RjCi0gICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2VpZiB7KCRvdGhlciA9PSAicHJlX2N0c19zZGMiKSAmJiAhJHZhcnMocmMpfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgRVJST1I6ICAgIFZhcmlhYmxlIHZhcnMoJG1vZGUsJG90aGVyKSBub3QgZGVmaW5lZFxuIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0IGVycm9ycygkZXJyb3JfY291bnQpICJWYXJpYWJsZSB2YXJzKCRtb2RlLCRvdGhlcikgbm90IGRlZmluZWQiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmNyIGVycm9yX2NvdW50Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgeygkb3RoZXIgPT0gInByZV9jdHNfc2RjIikgfHwgKCgkb3RoZXIgPT0gInBvc3RfY3RzX3NkYyIpICYmICFbaW5mbyBleGlzdHMgdmFycygkbW9kZSxpbmNyX2N0c19zZGMpXSl9IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgSU5GTzogICAgVmFyaWFibGUgdmFycygkbW9kZSwkb3RoZXIpIG5vdCBkZWZpbmVkXG4iCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIElORk86ICAgIFZhcmlhYmxlIHZhcnMoJG1vZGUsJG90aGVyKSBub3QgZGVmaW5lZFxuIgotICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgSU5GTzogTm8gY29uc3RyYWludCBtb2RlIGluZm9ybWF0aW9uIGRlZmluZWRcbiIKLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgICAgICAgUG9zdCBDVFMgbGF0ZW5jeSBhZGp1c3RtZW50IG11c3QgYmVcbiIKLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgICAgICAgbWFuYWdlZCBieSB0aGUgdXNlciB2aWEgcGx1Zy1pbnNcbiIKLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgICAgICAgICAgICBDb25zdHJhaW50IE1vZGVzXG4iCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiIKLSAgICAgICAgICAgIGlmIHskdmFycyhyYyl9IHsKLSAgICAgICAgICAgICAgIHNldCByZXF1aXJlZF9saXN0ICJzeW50aF9zZGMgcHJlX2N0c19zZGMiCi0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgc2V0IHJlcXVpcmVkX2xpc3QgInByZV9jdHNfc2RjIgotICAgICAgICAgICAgfSAKLSAgICAgICAgICAgIGZvcmVhY2ggbW9kZSAkdmFycyhjb25zdHJhaW50X21vZGVzKSB7Ci0gICAgICAgICAgICAgICBzZXQgZm91bmQgMAotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICBJTkZPOiAkbW9kZTpcbiIKLSAgICAgICAgICAgICAgIGZvcmVhY2ggcmVxdWlyZWQgJHJlcXVpcmVkX2xpc3QgewotICAgICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCRtb2RlLCRyZXF1aXJlZCldICYmICgkdmFycygkbW9kZSwkcmVxdWlyZWQpICE9ICIiKX0gewotICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICBJTkZPOiAgICAkcmVxdWlyZWQgPSAkdmFycygkbW9kZSwkcmVxdWlyZWQpXG4iCi0gICAgICAgICAgICAgICAgICAgICBsYXBwZW5kIGNoZWNrKGNvbnN0cmFpbnRfbW9kZXMpICR2YXJzKCRtb2RlLCRyZXF1aXJlZCkKLSAgICAgICAgICAgICAgICAgICAgIGluY3IgZm91bmQKLSAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICBpZiB7W2xsZW5ndGggJHJlcXVpcmVkX2xpc3RdID09IDF9IHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgRVJST1I6IFJlcXVpcmVkIHZhcmlhYmxlIHZhcnMoJG1vZGUsJHJlcXVpcmVkKSBub3QgZGVmaW5lZFxuIgotICAgICAgICAgICAgICAgICAgICAgICAgc2V0IGVycm9ycygkZXJyb3JfY291bnQpICJSZXF1aXJlZCB2YXJpYWJsZSB2YXJzKCRtb2RlLCRyZXF1aXJlZCkgbm90IGRlZmluZWQiCi0gICAgICAgICAgICAgICAgICAgICAgICBpbmNyIGVycm9yX2NvdW50Ci0gICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICBpZiB7KFtsbGVuZ3RoICRyZXF1aXJlZF9saXN0XSA+IDEpICYmICgkZm91bmQgPT0gMCl9IHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgRVJST1I6IE9uZSBvZiB0aGUgcmVxdWlyZWQgdmFyaWFibGVzICgkcmVxdWlyZWRfbGlzdCkgbm90IGRlZmluZWRcbiIKLSAgICAgICAgICAgICAgICAgIHNldCBlcnJvcnMoJGVycm9yX2NvdW50KSAiT25lIG9mIHRoZSByZXF1aXJlZCB2YXJpYWJsZXMgKCRyZXF1aXJlZF9saXN0KSBub3QgZGVmaW5lZCIKLSAgICAgICAgICAgICAgICAgIGluY3IgZXJyb3JfY291bnQKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIGZvcmVhY2ggb3RoZXIgInBvc3RfY3RzX3NkYyBpbmNyX2N0c19zZGMiIHsKLSAgICAgICAgICAgICAgICAgIGlmIHskb3RoZXIgPT0gInBvc3RfY3RzX3NkYyIgJiYgIVtpbmZvIGV4aXN0cyB2YXJzKCRvdGhlcildfSB7Ci0gICAgICAgICAgICAgICAgICAgICBpZiB7IVtpbmZvIGV4aXN0cyB2YXJzKCRtb2RlLCRvdGhlcildfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIElORk86ICAgIFZhcmlhYmxlIHZhcnMoJG1vZGUsJG90aGVyKSBub3QgZGVmaW5lZFxuIgotICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgSU5GTzogICAgJG90aGVyID0gJHZhcnMoJG1vZGUsJG90aGVyKVxuIgotICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkbW9kZSwkb3RoZXIpXSAmJiAoJHZhcnMoJG1vZGUsJG90aGVyKSAhPSAiIil9IHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgSU5GTzogICAgJG90aGVyID0gJHZhcnMoJG1vZGUsJG90aGVyKVxuIgotICAgICAgICAgICAgICAgICAgICAgICAgbGFwcGVuZCBjaGVjayhjb25zdHJhaW50X21vZGVzKSAkdmFycygkbW9kZSwkb3RoZXIpCi0gICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICBJTkZPOiAgICBWYXJpYWJsZSB2YXJzKCRtb2RlLCRvdGhlcikgbm90IGRlZmluZWRcbiIKLSAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0KLSAgIAotICAgICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycyhob2xkX2FuYWx5c2lzX3ZpZXdzKV19IHsKLSAgICAgICAgICAgIHNldCB2YXJzKGhvbGRfYW5hbHlzaXNfdmlld3MpICIiCi0gICAgICAgICB9Ci0gICAgICAgICBpZiB7IVtpbmZvIGV4aXN0cyB2YXJzKHBvd2VyX2FuYWx5c2lzX3ZpZXcpXX0gewotICAgICAgICAgICAgc2V0IHZhcnMocG93ZXJfYW5hbHlzaXNfdmlldykgIiIKLSAgICAgICAgIH0KLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICAgICAgICAgICAgIEFuYWx5c2lzIFZpZXdzXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiIKLSAgICAgICAgIGlmIHtbRkY6OmlzX2xwX2Zsb3ddfSB7Ci0gICAgICAgICAgICBmb3JlYWNoIGFuYWx5c2lzX3ZpZXcgW2NvbmNhdCAkdmFycyhzZXR1cF9hbmFseXNpc192aWV3cykgJHZhcnMoaG9sZF9hbmFseXNpc192aWV3cykgJHZhcnMocG93ZXJfYW5hbHlzaXNfdmlldyldIHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgSU5GTzogJGFuYWx5c2lzX3ZpZXc6XG4iCi0gICAgICAgICAgICAgICBmb3JlYWNoIG90aGVyICJkZWxheV9jb3JuZXIgY29uc3RyYWludF9tb2RlIiB7Ci0gICAgICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJGFuYWx5c2lzX3ZpZXcsJG90aGVyKV0gJiYgKCR2YXJzKCRhbmFseXNpc192aWV3LCRvdGhlcikgIT0gIiIpfSB7Ci0gICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIElORk86ICAgICRvdGhlciA9ICR2YXJzKCRhbmFseXNpc192aWV3LCRvdGhlcilcbiIKLSAgICAgICAgICAgICAgICAgICAgIGxhcHBlbmQgY2hlY2soYW5hbHlzaXNfdmlldykgJHZhcnMoJGFuYWx5c2lzX3ZpZXcsJG90aGVyKQotICAgICAgICAgICAgICAgICAgfSAKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBzZXQgY2hlY2soYW5hbHlzaXNfdmlld3MpIFtsaXN0XQotICAgICAgICAgICAgZm9yZWFjaCBhbmFseXNpc192aWV3IFtjb25jYXQgJHZhcnMoc2V0dXBfYW5hbHlzaXNfdmlld3MpICR2YXJzKGhvbGRfYW5hbHlzaXNfdmlld3MpICR2YXJzKHBvd2VyX2FuYWx5c2lzX3ZpZXcpXSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIElORk86ICRhbmFseXNpc192aWV3OlxuIgotICAgICAgICAgICAgICAgZm9yZWFjaCByZXF1aXJlZCAiZGVsYXlfY29ybmVyIGNvbnN0cmFpbnRfbW9kZSIgewotICAgICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCRhbmFseXNpc192aWV3LCRyZXF1aXJlZCldICYmICgkdmFycygkYW5hbHlzaXNfdmlldywkcmVxdWlyZWQpICE9ICIiKX0gewotICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICBJTkZPOiAgICAkcmVxdWlyZWQgPSAkdmFycygkYW5hbHlzaXNfdmlldywkcmVxdWlyZWQpXG4iCi0gICAgICAgICAgICAgICAgICAgICBsYXBwZW5kIGNoZWNrKGFuYWx5c2lzX3ZpZXcpICR2YXJzKCRhbmFseXNpc192aWV3LCRyZXF1aXJlZCkKLSAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIEVSUk9SOiBSZXF1aXJlZCB2YXJpYWJsZSB2YXJzKCRhbmFseXNpc192aWV3LCRyZXF1aXJlZCkgbm90IGRlZmluZWRcbiIKLSAgICAgICAgICAgICAgICAgICAgIHNldCBlcnJvcnMoJGVycm9yX2NvdW50KSAiUmVxdWlyZWQgdmFyaWFibGUgdmFycygkYW5hbHlzaXNfdmlldywkcmVxdWlyZWQpIG5vdCBkZWZpbmVkIgotICAgICAgICAgICAgICAgICAgICAgaW5jciBlcnJvcl9jb3VudAotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAgfQotIyAgICAgIH0KLQotICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgIiMgICAgICAgICAgICAgUmVjb21tZW5kZWQgVmFyaWFibGVzXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgIiMgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiIKLSAgICAgIGZvcmVhY2ggcmVjb21tZW5kZWQgInNjYW5fZGVmIGdkc19sYXllcl9tYXAiIHsKLSAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkcmVjb21tZW5kZWQpXSAmJiAoJHZhcnMoJHJlY29tbWVuZGVkKSAhPSAiIil9IHsKLSAgICAgICAgICAgIGxhcHBlbmQgY2hlY2soZmlsZXMpICR2YXJzKCRyZWNvbW1lbmRlZCkKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgSU5GTzogJHJlY29tbWVuZGVkID0gJHZhcnMoJHJlY29tbWVuZGVkKVxuIgotICAgICAgICAgfQotICAgICAgfQotICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGdkc19maWxlcyldICYmICgkdmFycyhnZHNfZmlsZXMpICE9ICIiKX0gewotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICBJTkZPOiBnZHNfZmlsZXMgPSAkdmFycyhnZHNfZmlsZXMpXG4iCi0gICAgICAgICBmb3JlYWNoIGZpbGUgJHZhcnMoZ2RzX2ZpbGVzKSB7Ci0gICAgICAgICAgICBsYXBwZW5kIGNoZWNrKGZpbGVzKSAkZmlsZQotICAgICAgICAgfQotICAgICAgfQotCi0gICAgICBmb3JlYWNoIHJlY29tbWVuZGVkICJtYXhfcm91dGVfbGF5ZXIgZmlsbGVyX2NlbGxzIHRpZV9jZWxscyBkb250X3VzZV9saXN0IGFudGVubmFfZGlvZGUiIHsKLSAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkcmVjb21tZW5kZWQpXSAmJiAoJHZhcnMoJHJlY29tbWVuZGVkKSAhPSAiIil9IHsKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgSU5GTzogJHJlY29tbWVuZGVkID0gJHZhcnMoJHJlY29tbWVuZGVkKVxuIgotICAgICAgICAgICAgaWYgeyRyZWNvbW1lbmRlZCA9PSAidGllX2NlbGxzIn0gewotICAgICAgICAgICAgICAgaWYge1tsbGVuZ3RoICR2YXJzKHRpZV9jZWxscyldID4gMn0gewotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICBFUlJPUjogUmVjb21tZW5kZWQgdmFyaWFibGUgdmFycygkcmVjb21tZW5kZWQpIGhhcyBtb3JlIHRoYW4gdHdvIGNlbGxzXG4iCi0gICAgICAgICAgICAgICAgICBzZXQgZXJyb3JzKCRlcnJvcl9jb3VudCkgIlJlY29tbWVuZGVkIHZhcmlhYmxlIHZhcnMoJHJlY29tbWVuZGVkKSBoYXMgbW9yZSB0aGFuIHR3byBjZWxscyIKLSAgICAgICAgICAgICAgICAgIGluY3IgZXJyb3JfY291bnQKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIHskcmVjb21tZW5kZWQgPT0gImFudGVubmFfZGlvZGUifSB7Ci0gICAgICAgICAgICAgICBpZiB7W2xsZW5ndGggJHZhcnMoYW50ZW5uYV9kaW9kZSldID4gMX0gewotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICBFUlJPUjogUmVjb21tZW5kZWQgdmFyaWFibGUgdmFycygkcmVjb21tZW5kZWQpIGhhcyBtb3JlIHRoYW4gb25lIGNlbGxzXG4iCi0gICAgICAgICAgICAgICAgICBzZXQgZXJyb3JzKCRlcnJvcl9jb3VudCkgIlJlY29tbWVuZGVkIHZhcmlhYmxlIHZhcnMoJHJlY29tbWVuZGVkKSBoYXMgbW9yZSB0aGFuIG9uZSBjZWxscyIKLSAgICAgICAgICAgICAgICAgIGluY3IgZXJyb3JfY291bnQKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIHskcmVjb21tZW5kZWQgPT0gIm1heF9yb3V0ZV9sYXllciJ9IHsKLSAgICAgICAgICAgICAgIGxhcHBlbmQgY2hlY2soaW50ZWdlcnMpICIkcmVjb21tZW5kZWQiCi0gICAgICAgICAgICB9Ci0gICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgaWYgeygkcmVjb21tZW5kZWQgPT0gImRvbnRfdXNlX2xpc3QiKX0gewotICAgICAgICAgICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycyhkb250X3VzZV9maWxlKV19IHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgV0FSTklORzogUmVjb21tZW5kZWQgdmFyaWFibGVzIGRvbnRfdXNlX2xpc3QgYW5kIGRvbnRfdXNlX2ZpbGUgbm90IGRlZmluZWRcbiIKLSAgICAgICAgICAgICAgICAgIHNldCB3YXJuaW5ncygkd2FybmluZ19jb3VudCkgIlJlY29tbWVuZGVkIHZhcmlhYmxlcyBkb250X3VzZV9saXN0IGFuZCBkb250X3VzZV9maWxlIG5vdCBkZWZpbmVkIgotICAgICAgICAgICAgICAgICAgaW5jciB3YXJuaW5nX2NvdW50Ci0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICBXQVJOSU5HOiBSZWNvbW1lbmRlZCB2YXJpYWJsZSB2YXJzKCRyZWNvbW1lbmRlZCkgbm90IGRlZmluZWRcbiIKLSAgICAgICAgICAgICAgIHNldCB3YXJuaW5ncygkd2FybmluZ19jb3VudCkgIlJlY29tbWVuZGVkIHZhcmlhYmxlIHZhcnMoJHJlY29tbWVuZGVkKSBub3QgZGVmaW5lZCIKLSAgICAgICAgICAgICAgIGluY3Igd2FybmluZ19jb3VudAotICAgICAgICAgICAgfSAgCi0gICAgICAgICB9Ci0gICAgICB9Ci0gICAgICBmb3JlYWNoIG9wdGlvbmFsICJzaXplX29ubHlfZmlsZSBkb250X3VzZV9maWxlIiB7Ci0gICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJG9wdGlvbmFsKV19IHsKLSAgICAgICAgICAgIGxhcHBlbmQgY2hlY2soZmlsZXMpICR2YXJzKCRvcHRpb25hbCkKLSAgICAgICAgIH0KLSAgICAgIH0KLQotICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgIiMgICAgICAgICAgICAgICAgIE90aGVyIFZhcmlhYmxlc1xuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4iCi0gICAgICBmb3JlYWNoIG90aGVyICJqdGFnX2NlbGxzIGp0YWdfcm93cyBzcGFyZV9jZWxscyIgewotICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCRvdGhlcildICYmICgkdmFycygkb3RoZXIpICE9ICIiKX0gewotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICBJTkZPOiAkb3RoZXIgPSAkdmFycygkb3RoZXIpXG4iCi0gICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICBJTkZPOiBWYXJpYWJsZSB2YXJzKCRvdGhlcikgbm90IGRlZmluZWRcbiIKLSAgICAgICAgIH0KLSAgICAgIH0KLQotIyAgICAgIGlmIHshW2luZm8gZXhpc3RzIHZhcnModmlld19kZWZpbml0aW9uX3RjbCldfSB7Ci0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgICAgICAgICAgICAgICAgU2NhbGUgRmFjdG9yc1xuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4iCi0gICAgICAgICBmb3JlYWNoIHJjX2Nvcm5lciAkdmFycyhyY19jb3JuZXJzKSB7Ci0gICAgICAgICAgICBzZXQgaSAwCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIElORk86ICRyY19jb3JuZXI6XG4iCi0gICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJHJjX2Nvcm5lcixzY2FsZV90Y2wpXX0gewotICAgICAgICAgICAgICAgaWYge1tmaWxlIGV4aXN0cyAkdmFycygkcmNfY29ybmVyLHNjYWxlX3RjbCldfSB7Ci0gICAgICAgICAgICAgICAgICBpbmNyIGkKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgSU5GTzogICBzY2FsaW5nIGZpbGUgPSAkdmFycygkcmNfY29ybmVyLHNjYWxlX3RjbClcbiIKLSAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICBwdXRzICI8RkY+IEVSUk9SOiBTY2FsaW5nIGZpbGUgJHZhcnMoJHJjX2Nvcm5lcixzY2FsZV90Y2wpIGZvciByYyBjb3JuZXIgJHJjX2Nvcm5lciBkZWZpbmVkIGJ1dCBkb2VzIG5vdCBleGlzdCIKLSAgICAgICAgICAgICAgICAgIHNldCBlcnJvcnMoJGVycm9yX2NvdW50KSAiU2NhbGluZyBmaWxlICR2YXJzKCRyY19jb3JuZXIsc2NhbGVfdGNsKSBmb3IgcmMgY29ybmVyICRyY19jb3JuZXIgZGVmaW5lZCBidXQgZG9lcyBub3QgZXhpc3QiCi0gICAgICAgICAgICAgICAgICBpbmNyIGVycm9yX2NvdW50Ci0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgZm9yZWFjaCBvdGhlciAicHJlX3JvdXRlX3Jlc19mYWN0b3IgcG9zdF9yb3V0ZV9yZXNfZmFjdG9yIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByZV9yb3V0ZV9jYXBfZmFjdG9yIHBvc3Rfcm91dGVfY2FwX2ZhY3RvciBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmVfcm91dGVfY2xrX3Jlc19mYWN0b3IgcG9zdF9yb3V0ZV9jbGtfcmVzX2ZhY3RvciBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmVfcm91dGVfY2xrX2NhcF9mYWN0b3IgcG9zdF9yb3V0ZV9jbGtfY2FwX2ZhY3RvciBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3N0X3JvdXRlX3hjYXBfZmFjdG9yIiB7Ci0gICAgICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJHJjX2Nvcm5lciwkb3RoZXIpXX0gewotICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICBJTkZPOiAgICAkb3RoZXIgPSAkdmFycygkcmNfY29ybmVyLCRvdGhlcilcbiIKLSAgICAgICAgICAgICAgICAgICAgIGluY3IgaQotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgeyRpID09IDB9IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgV0FSTklORzogTm8gc2NhbGUgZmFjdG9ycyBzZXQgZm9yIHJjIGNvcm5lciAoJHJjX2Nvcm5lcilcbiIKLSAgICAgICAgICAgICAgIHNldCB3YXJuaW5ncygkd2FybmluZ19jb3VudCkgIk5vIHNjYWxlIGZhY3RvcnMgc2V0IGZvciByYyBjb3JuZXIgKCRyY19jb3JuZXIpIgotICAgICAgICAgICAgICAgaW5jciB3YXJuaW5nX2NvdW50Ci0gICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0gICAKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICAgICAgICAgICAgICAgIERlcmF0aW5nIEZhY3RvcnNcbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuIgotICAgICAgICAgc2V0IGkgMAotICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGRlcmF0ZV90Y2wpXX0gewotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICBJTkZPOiAgICBkZXJhdGUgZmlsZSA9ICR2YXJzKGRlcmF0ZV90Y2wpXG4iCi0gICAgICAgICAgICBsYXBwZW5kIGNoZWNrKGZpbGVzKSAkdmFycyhkZXJhdGVfdGNsKQotICAgICAgICAgICAgaW5jciBpCi0gICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgZm9yZWFjaCBkZWxheV9jb3JuZXIgJHZhcnMoZGVsYXlfY29ybmVycykgewotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICBJTkZPOiAkZGVsYXlfY29ybmVyOlxuIgotICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCRkZWxheV9jb3JuZXIsZGVyYXRlX3RjbCldfSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIElORk86ICAgIGRlcmF0ZSBmaWxlID0gJHZhcnMoJGRlbGF5X2Nvcm5lcixkZXJhdGVfdGNsKVxuIgotICAgICAgICAgICAgICAgICAgbGFwcGVuZCBjaGVjayhmaWxlcykgJHZhcnMoJGRlbGF5X2Nvcm5lcixkZXJhdGVfdGNsKQotICAgICAgICAgICAgICAgICAgaW5jciBpCi0gICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGRlcmF0ZV90Y2wpXX0gewotICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICBJTkZPOiAgICBkZXJhdGUgZmlsZSA9ICR2YXJzKGRlcmF0ZV90Y2wpXG4iCi0gICAgICAgICAgICAgICAgICAgICBsYXBwZW5kIGNoZWNrKGZpbGVzKSAkdmFycyhkZXJhdGVfdGNsKQotICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgIGZvcmVhY2ggb3RoZXIgImVhcmx5X2RhdGFfY2VsbCBlYXJseV9jbG9ja19jZWxsIGVhcmx5X2NlbGxfY2hlY2sgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF0ZV9kYXRhX2NlbGwgbGF0ZV9jbG9ja19jZWxsIGxhdGVfY2VsbF9jaGVjayBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhX2NlbGxfZWFybHkgY2xvY2tfY2VsbF9lYXJseSBjZWxsX2NoZWNrX2Vhcmx5IFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGFfY2VsbF9sYXRlIGNsb2NrX2NlbGxfbGF0ZSBjZWxsX2NoZWNrX2xhdGUiIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkZGVsYXlfY29ybmVyLCRvdGhlcildfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIElORk86ICAgICRvdGhlciA9ICR2YXJzKCRkZWxheV9jb3JuZXIsJG90aGVyKVxuIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5jciBpCi0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICBpZiB7JGkgPT0gMH0gewotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICBXQVJOSU5HOiBObyBkZXJhdGluZyBmYWN0b3JzIHNldCBmb3IgZGVsYXkgY29ybmVyICgkZGVsYXlfY29ybmVyKVxuIgotICAgICAgICAgICAgICAgICAgc2V0IHdhcm5pbmdzKCR3YXJuaW5nX2NvdW50KSAiTm8gZGVyYXRpbmcgZmFjdG9ycyBzZXQgZm9yIGRlbGF5IGNvcm5lciAoJGRlbGF5X2Nvcm5lcikiCi0gICAgICAgICAgICAgICAgICBpbmNyIHdhcm5pbmdfY291bnQKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0KLSMgICAgICB9Ci0gICAgICBpZiB7IVtyZWdleHAgIjkuMSIgJHZhcnModmVyc2lvbildfSB7Ci0KLSAgICAgICAgIHNldCB2YWxpZCAiVFJVRSBGQUxTRSB0cnVlIGZhbHNlIGF1dG8iCi0KLSAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhlbmFibGVfc2lfYXdhcmUpXX0gewotICAgICAgICAgICAgaWYge1tsc2VhcmNoICR2YWxpZCAkdmFycyhlbmFibGVfc2lfYXdhcmUpXSA9PSAtMX0gewotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICBFUlJPUjogVmFyaWFibGUgdmFycyhlbmFibGVfc2lfYXdhcmUpIGhhcyBpbGxlZ2FsIHZhbHVlXG4iCi0gICAgICAgICAgICAgICBzZXQgZXJyb3JzKCRlcnJvcl9jb3VudCkgIlZhcmlhYmxlIHZhcnMoZW5hYmxlX3NpX2F3YXJlKSBoYXMgaWxsZWdhbCB2YWx1ZSIKLSAgICAgICAgICAgICAgICAgIGluY3IgZXJyb3JfY291bnQKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgICAgICAgIE11c3QgYmUgb25lIG9mICckdmFsaWQnXG4iCi0gICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0gICAgICB9Ci0KLSMgICAgICBzZXQgdmFsaWQgInBvc3RjdHMgcG9zdHJvdXRlIHBvc3Ryb3V0ZV9zaSB0cnVlIGZhbHNlIgotIyAgICAgIGZvcmVhY2ggdmFyICJmaXhfaG9sZCIgewotIyAgICAgICAgIGlmIHtbbHNlYXJjaCAkdmFsaWQgW3N0cmluZyB0b2xvd2VyICR2YXJzKCR2YXIpXV0gPT0gLTF9IHsKLSMgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIEVSUk9SOiBWYXJpYWJsZSB2YXJzKCR2YXIpIGhhcyBpbGxlZ2FsIHZhbHVlICR2YXJzKCR2YXIpXG4iCi0jICAgICAgICAgICAgc2V0IGVycm9ycygkZXJyb3JfY291bnQpICJWYXJpYWJsZSB2YXJzKCR2YXIpIGhhcyBpbGxlZ2FsIHZhbHVlICR2YXJzKCR2YXIpIgotIyAgICAgICAgICAgIGluY3IgZXJyb3JfY291bnQKLSMgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgICAgICAgICBNdXN0IGJlIG9uZSBvZiAnJHZhbGlkJ1xuIgotIyAgICAgICAgIH0KLSMgICAgICB9Ci0gICAgICAKLQotICAgICAgc2V0IHZhbGlkIFtsaXN0IHRydWUgZmFsc2VdCi0gICAgICBmb3JlYWNoIHZhciAiZml4X2hvbGRfaWdub3JlX2lvcyBmaXhfaG9sZF9hbGxvd190bnNfZGVncmFkYXRpb24iIHsKLSAgICAgICAgIGlmIHshW2luZm8gZXhpc3RzIHZhcnMoJHZhcildfSB7Ci0gICAgICAgICAgICBjb250aW51ZQotICAgICAgICAgfQotICAgICAgICAgaWYge1tsc2VhcmNoICR2YWxpZCBbc3RyaW5nIHRvbG93ZXIgJHZhcnMoJHZhcildXSA9PSAtMX0gewotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICBFUlJPUjogVmFyaWFibGUgdmFycygkdmFyKSBoYXMgaWxsZWdhbCB2YWx1ZSAkdmFycygkdmFyKVxuIgotICAgICAgICAgICAgc2V0IGVycm9ycygkZXJyb3JfY291bnQpICJWYXJpYWJsZSB2YXJzKCR2YXIpIGhhcyBpbGxlZ2FsIHZhbHVlICR2YXJzKCR2YXIpIgotICAgICAgICAgICAgaW5jciBlcnJvcl9jb3VudAotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICAgICAgICAgTXVzdCBiZSBvbmUgb2YgJyR2YWxpZCdcbiIKLSAgICAgICAgIH0KLSAgICAgIH0KLSAgICAgIAotICAgICAgc2V0IHZhbGlkICJwcmVfcGxhY2UgcHJlX3ByZWN0cyBwcmVfY3RzIHByZV9wb3N0Y3RzIHByZV9wb3N0cm91dGUgcHJlX3Bvc3Ryb3V0ZV9zaSBwcmVfc2lnbm9mZiB0cnVlIGZhbHNlIgotICAgICAgZm9yZWFjaCBvcHRpb24gIm1ldGFsZmlsbCBlbmFibGVfb2N2IGVuYWJsZV9zcyIgewotICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCRvcHRpb24pXX0gewotICAgICAgICAgICAgaWYge1tsc2VhcmNoICR2YWxpZCAkdmFycygkb3B0aW9uKV0gPT0gLTF9IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgRVJST1I6IFZhcmlhYmxlIHZhcnMoJG9wdGlvbikgaGFzIGlsbGVnYWwgdmFsdWUgKCR2YXJzKCRvcHRpb24pKVxuIgotICAgICAgICAgICAgICAgc2V0IGVycm9ycygkZXJyb3JfY291bnQpICJWYXJpYWJsZSB2YXJzKCRvcHRpb24pIGhhcyBpbGxlZ2FsIHZhbHVlICgkdmFycygkb3B0aW9uKSkiCi0gICAgICAgICAgICAgICBpbmNyIGVycm9yX2NvdW50Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgICAgICAgICBNdXN0IGJlIG9uZSBvZiAnJHZhbGlkJ1xuIgotICAgICAgICAgICAgfQotICAgICAgICAgfQotICAgICAgfQotCi0gICAgICBzZXQgcGFjcyBbRkY6OmdldF9ieV9zdWZmaXggdmFycyAiLHBhY19tb2RlIl0gCi0gICAgICBzZXQgdmFsaWQgInJlYWRfb25seSBpbnRlcmZhY2UgYWxsIgotCi0gICAgICBmb3JlYWNoIHBhYyAkcGFjcyB7Ci0gICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMocGFjX21vZGUpXX0gewotICAgICAgICAgICAgaWYge1tsc2VhcmNoICR2YWxpZCAkdmFycyhwYWNfbW9kZSldID09IC0xfSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIEVSUk9SOiBWYXJpYWJsZSB2YXJzKHBhY19tb2RlKSBoYXMgaWxsZWdhbCB2YWx1ZVxuIgotICAgICAgICAgICAgICAgc2V0IGVycm9ycygkZXJyb3JfY291bnQpICJWYXJpYWJsZSB2YXJzKHBhY19tb2RlKSBoYXMgaWxsZWdhbCB2YWx1ZSIKLSAgICAgICAgICAgICAgIGluY3IgZXJyb3JfY291bnQKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgICAgICAgIE11c3QgYmUgb25lIG9mICckdmFsaWQnXG4iCi0gICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0gICAgICB9Ci0KLSAgICAgIHNldCB2YWxpZCAiZGVmYXVsdCBwZXNzaW1pc3RpYyIKLQotICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKHNpX2FuYWx5c2lzX3R5cGUpXX0gewotICAgICAgICAgaWYge1tsc2VhcmNoICR2YWxpZCAkdmFycyhzaV9hbmFseXNpc190eXBlKV0gPT0gLTF9IHsKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgRVJST1I6IFZhcmlhYmxlIHZhcnMoc2lfYW5hbHlzaXNfdHlwZSkgaGFzIGlsbGVnYWwgdmFsdWVcbiIKLSAgICAgICAgICAgIHNldCBlcnJvcnMoJGVycm9yX2NvdW50KSAiVmFyaWFibGUgdmFycyhzaV9hbmFseXNpc190eXBlKSBoYXMgaWxsZWdhbCB2YWx1ZSIKLSAgICAgICAgICAgIGluY3IgZXJyb3JfY291bnQKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgICAgICAgIE11c3QgYmUgb25lIG9mICckdmFsaWQnXG4iCi0gICAgICAgICB9Ci0gICAgICB9Ci0KLSAgICAgIHNldCB2YWxpZCAicG9zdF9jdHMgcG9zdF9yb3V0ZSBib3RoIG5vbmUiCi0KLSAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhjbG9ja19lY28pXX0gewotICAgICAgICAgaWYge1tsc2VhcmNoICR2YWxpZCAkdmFycyhjbG9ja19lY28pXSA9PSAtMX0gewotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICBFUlJPUjogVmFyaWFibGUgdmFycyhjbG9ja19lY28pIGhhcyBpbGxlZ2FsIHZhbHVlXG4iCi0gICAgICAgICAgICBzZXQgZXJyb3JzKCRlcnJvcl9jb3VudCkgIlZhcmlhYmxlIHZhcnMoY2xvY2tfZWNvKSBoYXMgaWxsZWdhbCB2YWx1ZSIKLSAgICAgICAgICAgIGluY3IgZXJyb3JfY291bnQKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgICAgICAgIE11c3QgYmUgb25lIG9mICckdmFsaWQnXG4iCi0gICAgICAgICB9Ci0gICAgICB9Ci0jICAgICAgaWYgeyR2YXJzKGVuYWJsZV9mbGV4aWxtKX0gewotIyAgICAgICAgIHNldCB3YXJuaW5ncygkd2FybmluZ19jb3VudCkgIlVzaW5nIHZhcnMoZW5hYmxlX2ZsZXhpbG0pIHJlcXVpcmVzIHRoZSBmb2xsb3dpbmcgbGltaXRlZCBhY2Nlc3MgZmVhdHVyZSA6IGVuY0ZsZXhJTE0iCi0jICAgICAgICAgaW5jciB3YXJuaW5nX2NvdW50Ci0jICAgICAgICAgaWYgeyR2YXJzKHBsYWNlX29wdF9kZXNpZ24pfSB7Ci0jICAgICAgICAgICAgc2V0IHdhcm5pbmdzKCR3YXJuaW5nX2NvdW50KSAiVmFyaWFibGUgdmFycyhwbGFjZV9vcHRfZGVzaWduKSBub3Qgc3VwcG9ydGVkIHdoZW4gdmFycyhlbmFibGVfZmxleGlsbSkgaXMgdHJ1ZSIKLSMgICAgICAgICAgICBpbmNyIHdhcm5pbmdfY291bnQKLSMgICAgICAgICB9Ci0jICAgICAgfQotICAgICAgaWYgeyR2YXJzKHVzZV9mbGV4bW9kZWxzKSAmJiAkdmFycyhmbGV4bW9kZWxfcHJvdG90eXBlKX0gewotICAgICAgICAgc2V0IHZhbGlkIFtsaXN0IGZsYXQgbXVsdGlfbGV2ZWwgdG9wX3RvX2JvdHRvbV0KLSAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhmbGV4bW9kZWxfcHJvdG90eXBlX2Zsb3dfc3R5bGUpXX0gewotICAgICAgICAgICAgaWYge1tsc2VhcmNoICR2YWxpZCAkdmFycyhmbGV4bW9kZWxfcHJvdG90eXBlX2Zsb3dfc3R5bGUpXSA9PSAtMX0gewotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICBFUlJPUjogVmFyaWFibGUgdmFycyhmbGV4bW9kZWxfcHJvdG90eXBlX2Zsb3dfc3R5bGUpIGhhcyBpbGxlZ2FsIHZhbHVlICgkdmFycyhmbGV4bW9kZWxfcHJvdG90eXBlX2Zsb3dfc3R5bGUpKVxuIgotICAgICAgICAgICAgICAgc2V0IGVycm9ycygkZXJyb3JfY291bnQpICJWYXJpYWJsZSB2YXJzKGZsZXhtb2RlbF9wcm90b3R5cGVfZmxvd19zdHlsZSkgaGFzIGlsbGVnYWwgdmFsdWUgKCR2YXJzKGZsZXhtb2RlbF9wcm90b3R5cGVfZmxvd19zdHlsZSkpIgotICAgICAgICAgICAgICAgaW5jciBlcnJvcl9jb3VudAotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICAgICAgICAgTXVzdCBiZSBvbmUgb2YgJyR2YWxpZCdcbiIKLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0KLSAgICAgIH0KLQotICAgICAgc2V0IGNoZWNrKHBsdWdpbnMpIFtsaXN0XQotICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKG1ldGFsZmlsbCldICYmICgkdmFycyhtZXRhbGZpbGwpICE9IGZhbHNlKX0gewotICAgICAgICAgc2V0IGNoZWNrKHBsdWdpbnMpIG1ldGFsZmlsbF90Y2wKLSAgICAgIH0KLSAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICAgICAgICAgICAgICAgIFBsdWctaW5zXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgIiMgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiIKLSAgICAgIHNldCByY19wbHVnaW5zICJzeW5faW5pdF90Y2wgc3luX2xvYWRfcnRsX3RjbCBwcmVfc3luX2xvYWRfbGliX3RjbCBwb3N0X3N5bl9sb2FkX2xpYl90Y2wgXAotICAgICAgICAgICAgICAgICAgICAgIHByZV9zeW5fZWxhYl90Y2wgcG9zdF9zeW5fZWxhYl90Y2wgc3luX2RmdF9zZXR1cF90Y2wgcHJlX3N5bl9nZW5fdGNsIFwKLSAgICAgICAgICAgICAgICAgICAgICBwb3N0X3N5bl9nZW5fdGNsIHByZV9zeW5fbWFwX3RjbCBwb3N0X3N5bl9tYXBfdGNsIHBvc3Rfc3luX2RmdF90Y2wgXAotICAgICAgICAgICAgICAgICAgICAgIHByZV9zeW5faW5jcl90Y2wgcG9zdF9zeW5faW5jcl90Y2wgcHJlX3N5bl9wbGFjZV90Y2wgcG9zdGxvYWRfc3luX3BsYWNlX3RjbCBcCi0gICAgICAgICAgICAgICAgICAgICAgcHJlZXhwb3J0X3N5bl9wbGFjZV90Y2wgcHJlYW5ub3RhdGlvbl9zeW5fcGxhY2VfdGNsIHBvc3Rfc3luX3BsYWNlX3RjbCBwcmVfc3luX2V4aXRfdGNsIgotICAgICAgc2V0IGVkaV9wbHVnaW5zICJhbHdheXNfc291cmNlX3RjbCBwcmVfaW5pdF90Y2wgcG9zdF9pbml0X3RjbCBcCi0gICAgICAgICAgICAgICAgICAgICAgIHByZV9wbGFjZV90Y2wgcGxhY2VfdGNsIHBvc3RfcGxhY2VfdGNsIHByZV9jdHNfdGNsIGN0c190Y2wgcG9zdF9jdHNfdGNsIFwKLSAgICAgICAgICAgICAgICAgICAgICAgcHJlX3ByZWN0c190Y2wgcG9zdF9wcmVjdHNfdGNsIHByZV9wb3N0Y3RzX3RjbCBwb3N0X3Bvc3RjdHNfdGNsIFwKLSAgICAgICAgICAgICAgICAgICAgICAgcHJlX3Bvc3RjdHNfaG9sZF90Y2wgcG9zdF9wb3N0Y3RzX2hvbGRfdGNsIHByZV9yb3V0ZV90Y2wgcG9zdF9yb3V0ZV90Y2wgXAotICAgICAgICAgICAgICAgICAgICAgICBwcmVfcG9zdHJvdXRlX3RjbCBwb3N0X3Bvc3Ryb3V0ZV90Y2wgcHJlX3Bvc3Ryb3V0ZV9ob2xkX3RjbCBwb3N0X3Bvc3Ryb3V0ZV9ob2xkX3RjbCBcCi0gICAgICAgICAgICAgICAgICAgICAgIHByZV9wb3N0cm91dGVfc2lfdGNsIHBvc3RfcG9zdHJvdXRlX3NpX3RjbCBwcmVfcG9zdHJvdXRlX3NpX2hvbGRfdGNsIAotICAgICAgICAgICAgICAgICAgICAgICBwb3N0X3Bvc3Ryb3V0ZV9zaV9ob2xkX3RjbCBwcmVfc2lnbm9mZl90Y2wgcG9zdF9zaWdub2ZmX3RjbCBcCi0gICAgICAgICAgICAgICAgICAgICAgIHByZV9yZWJ1ZGdldF90Y2wgcG9zdF9yZWJ1ZGdldF90Y2wgcHJlX2ZsZXhpbG1fdGNsIHBvc3RfZmxleGlsbV90Y2wgXAotICAgICAgICAgICAgICAgICAgICAgICBwcmVfYXNzZW1ibGVfdGNsIHBvc3RfYXNzZW1ibGVfdGNsIHByZV9wcm90b3R5cGVfdGNsIHBvc3RfcHJvdG90eXBlX3RjbCBwcmVfbW9kZWxfZ2VuX3RjbCBwb3N0X21vZGVsX2dlbl90Y2wgXAotICAgICAgICAgICAgICAgICAgICAgICBwcmVfcGFydGl0aW9uX3BsYWNlX3RjbCBwb3N0X3BhcnRpdGlvbl9wbGFjZV90Y2wgcHJlX2Fzc2VtYmxlX2ZsZXhfaWxtX3RjbCBwb3N0X2Fzc2VtYmxlX2ZsZXhpbG1fdGNsIgotCi0gICAgICBpZiB7JHZhcnMocmMpfSB7Ci0gICAgICAgICBzZXQgcGx1Z2luX2xpc3QgW2pvaW4gW2NvbmNhdCAkcmNfcGx1Z2lucyAkZWRpX3BsdWdpbnNdXQotICAgICAgfSBlbHNlIHsKLSAgICAgICAgIHNldCBwbHVnaW5fbGlzdCAkZWRpX3BsdWdpbnMKLSAgICAgIH0KLSAgICAgIGZvcmVhY2ggcGx1Z2luICRwbHVnaW5fbGlzdCB7Ci0gICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJHBsdWdpbildICYmICgkdmFycygkcGx1Z2luKSAhPSAiIil9IHsKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgSU5GTzogUGx1Zy1pbiAkcGx1Z2luID0gJHZhcnMoJHBsdWdpbilcbiIKLSAgICAgICAgICAgIGxhcHBlbmQgY2hlY2socGx1Z2lucykgJHBsdWdpbgotICAgICAgICAgICAgbGFwcGVuZCB2YXJzKHBsdWdpbnNfZGVmaW5lZCkgJHBsdWdpbiAKLSAgICAgICAgIH0KLSAgICAgIH0KLQotICAgICAgc2V0IGRpc3QobHNmKSAicXVldWUgcmVzb3VyY2UgYXJncyIKLSAgICAgIHNldCBkaXN0KGN1c3RvbSkgInNjcmlwdCIKLSAgICAgIHNldCBkaXN0KHJzaCkgImhvc3RfbGlzdCIKLSAgICAgIHNldCBkaXN0KGxvY2FsKSAiIgotCi0gICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoZGlzdHJpYnV0ZSldfSB7Ci0gICAgICAgICBpZiB7W2luZm8gZXhpc3RzIGRpc3QoJHZhcnMoZGlzdHJpYnV0ZSkpXX0gewotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4iCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgICAgICAgICAgICAgICBEaXN0cmlidXRpb24gU2V0dXBcbiIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICBJTkZPOiBNb2RlID0gJHZhcnMoZGlzdHJpYnV0ZSlcbiIKLSAgICAgICAgICAgIGZvcmVhY2ggb3B0aW9uICRkaXN0KCR2YXJzKGRpc3RyaWJ1dGUpKSB7Ci0gICAgICAgICAgICAgICBpZiB7IVtpbmZvIGV4aXN0cyB2YXJzKCR2YXJzKGRpc3RyaWJ1dGUpLCRvcHRpb24pXX0gewotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICBFUlJPUjogUmVxdWlyZWQgdmFyaWFibGUgdmFycygkdmFycyhkaXN0cmlidXRlKSwkb3B0aW9uKSBub3QgZGVmaW5lZFxuIgotICAgICAgICAgICAgICAgICAgc2V0IGVycm9ycygkZXJyb3JfY291bnQpICJSZXF1aXJlZCB2YXJpYWJsZSB2YXJzKCR2YXJzKGRpc3RyaWJ1dGUpLCRvcHRpb24pIG5vdCBkZWZpbmVkIgotICAgICAgICAgICAgICAgICAgaW5jciBlcnJvcl9jb3VudAotICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgSU5GTzogICAgJG9wdGlvbiA9ICR2YXJzKCR2YXJzKGRpc3RyaWJ1dGUpLCRvcHRpb24pXG4iCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICBFUlJPUjogRGlzdHJpYnV0aW9uIG1vZGUgJHZhcnMoZGlzdHJpYnV0ZSkgbm90IHN1cHBvcnRlZFxuIgotICAgICAgICAgICAgc2V0IGVycm9ycygkZXJyb3JfY291bnQpICJEaXN0cmlidXRpb24gbW9kZSAkdmFycyhkaXN0cmlidXRlKSBub3Qgc3VwcG9ydGVkIgotICAgICAgICAgICAgaW5jciBlcnJvcl9jb3VudAotICAgICAgICAgfQotICAgICAgfSBlbHNlIHsKLSAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhob3N0cyldICYmICgkdmFycyhob3N0cykgPiAxKX0gewotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjV0FSTklORzogVmFyaWFibGUgdmFycyhob3N0cykgPiAxIGJ1dCB2YXJzKGRpc3RyaWJ1dGUpIG5vdCBkZWZpbmVkXG4iCi0gICAgICAgICAgICBzZXQgd2FybmluZ3MoJHdhcm5pbmdfY291bnQpICJWYXJpYWJsZSB2YXJzKGhvc3RzKSA+IDEgYnV0IHZhcnMoZGlzdHJpYnV0ZSkgbm90IGRlZmluZWQiCi0gICAgICAgICAgICBpbmNyIHdhcm5pbmdfY291bnQKLSAgICAgICAgIH0KLSAgICAgIH0KLQotICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgIiMgICAgICAgICAgICAgICBUeXBlIENoZWNrXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgIiMgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiIKLSAgICAgIGZvcmVhY2ggaW50ZWdlciAkY2hlY2soaW50ZWdlcnMpIHsKLSAgICAgICAgIGlmIHshW3N0cmluZyBpcyBpbnRlZ2VyIC1zdHJpY3QgJHZhcnMoJGludGVnZXIpXX0gewotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICBFUlJPUjogVmFyaWFibGVzIGlzIG5vdCBhbiBpbnRlZ2VyICgkaW50ZWdlcikgLi4uXG4iCi0gICAgICAgICAgICBzZXQgZXJyb3JzKCRlcnJvcl9jb3VudCkgIlZhcmlhYmxlcyBpcyBub3QgYW4gaW50ZWdlciAoJGludGVnZXIpIC4uLiIKLSAgICAgICAgICAgIGluY3IgZXJyb3JfY291bnQKLSAgICAgICAgIH0KLSAgICAgIH0gCi0gICAgICBhcHBlbmQgY29tbWFuZHMgIiMgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgICAgICAgICAgICAgIEZpbGUgQ2hlY2tcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuIgotICAgICAgc2V0IGZpbGVzIDAKLSAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgSU5GTzogQ2hlY2tpbmcgZGVzaWduIGZpbGVzIC4uLlxuIgotICAgICAgZm9yZWFjaCBmaWxlICRjaGVjayhmaWxlcykgewotICAgIyAgIGFwcGVuZCBjb21tYW5kcyAiIyAgSU5GTzogICAgJGZpbGUgLi4uXG4iCi0gICAgICAgICBpZiB7IVtmaWxlIGV4aXN0cyAkZmlsZV19IHsKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgRVJST1I6IEZpbGUgZG9lcyBub3QgZXhpc3QgKCRmaWxlKSAuLi5cbiIKLSAgICAgICAgICAgIHNldCBlcnJvcnMoJGVycm9yX2NvdW50KSAiRmlsZSBkb2VzIG5vdCBleGlzdCAoJGZpbGUpIgotICAgICAgICAgICAgaW5jciBlcnJvcl9jb3VudAotICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIGluY3IgZmlsZXMKLSAgICAgICAgIH0KLSAgICAgIH0KLSAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgSU5GTzogICAgLi4uIGZvdW5kICRmaWxlcyBmaWxlc1xuIgotICAgICAgc2V0IGZpbGVzIDAKLSAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgSU5GTzogQ2hlY2tpbmcgTEVGIGZpbGVzIC4uLlxuIgotICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGxlZl9maWxlcyldfSB7Ci0gICAgICAgICBmb3JlYWNoIGZpbGUgJHZhcnMobGVmX2ZpbGVzKSB7Ci0gICAgICAgICAgICBpZiB7IVtmaWxlIGV4aXN0cyAkZmlsZV19IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgRVJST1I6IEZpbGUgZG9lcyBub3QgZXhpc3QgKCRmaWxlKVxuIgotICAgICAgICAgICAgICAgc2V0IGVycm9ycygkZXJyb3JfY291bnQpICJGaWxlIGRvZXMgbm90IGV4aXN0ICgkZmlsZSkiCi0gICAgICAgICAgICAgICBpbmNyIGVycm9yX2NvdW50Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgaW5jciBmaWxlcwotICAgICAgICAgICAgfQotICAgICAgICAgfQotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICBJTkZPOiAgICAuLi4gZm91bmQgKCRmaWxlcy9bbGxlbmd0aCAkdmFycyhsZWZfZmlsZXMpXSkgbGVmIGZpbGVzXG4iCi0gICAgICB9Ci0gICAgICBzZXQgZmlsZXMgMAotICAgICAgc2V0IHRvdGFsIDAKLSMgICAgICBpZiB7IVtpbmZvIGV4aXN0cyB2YXJzKHZpZXdfZGVmaW5pdGlvbl90Y2wpXX0gewotIyAgICAgIGlmIHshW2luZm8gZXhpc3RzIHZhcnMoY3BmX2ZpbGUpXX0gewotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICBJTkZPOiBDaGVja2luZyBsaWJyYXJ5IHNldHMgLi4uXG4iCi0gICAgICAgICBmb3JlYWNoIGxpYnJhcnlfc2V0ICR2YXJzKGxpYnJhcnlfc2V0cykgewotIyAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhlbmFibGVfbGRiKV0gJiYgJHZhcnMoZW5hYmxlX2xkYil9IHsKLSMgICAgICAgICAgICAgICBzZXQgdGVtcF9saXN0ICR2YXJzKCRsaWJyYXJ5X3NldCx0aW1pbmcsb3JpZykKLSMgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgc2V0IHRlbXBfbGlzdCAkdmFycygkbGlicmFyeV9zZXQsdGltaW5nKQotIyAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGZvcmVhY2ggZmlsZSAkdGVtcF9saXN0IHsKLSAgICAgICAgICAgICAgIGluY3IgdG90YWwKLSAgICAgICAgICAgICAgIGlmIHshW2ZpbGUgZXhpc3RzICRmaWxlXX0gewotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICBFUlJPUjogRmlsZSBkb2VzIG5vdCBleGlzdCAoJGZpbGUpXG4iCi0jICAgICAgICAgICAgICAgICAgc2V0IGVycm9ycygkZXJyb3JfY291bnQpICJGaWxlIGRvZXMgbm90IGV4aXN0ICgkZmlsZSkiCi0jICAgICAgICAgICAgICAgICAgaW5jciBlcnJvcl9jb3VudAotICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgIGluY3IgZmlsZXMKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0gCi0gICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJGxpYnJhcnlfc2V0LHNpKV19IHsKLSAgICAgICAgICAgICAgIGZvcmVhY2ggZmlsZSAkdmFycygkbGlicmFyeV9zZXQsc2kpIHsKLSAgICAgICAgICAgICAgICAgIGluY3IgdG90YWwKLSAgICAgICAgICAgICAgICAgIGlmIHshW2ZpbGUgZXhpc3RzICRmaWxlXX0gewotICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICBXQVJOSU5HOiBDREIgZmlsZSBkb2VzIG5vdCBleGlzdCAoJGZpbGUpXG4iCi0jICAgICAgICAgICAgICAgICAgICAgc2V0IHdhcm5pbmdzKCR3YXJuaW5nX2NvdW50KSAiQ0RCIGZpbGUgZG9lcyBub3QgZXhpc3QgKCRmaWxlKSIKLSMgICAgICAgICAgICAgICAgICAgICBpbmNyIHdhcm5pbmdfY291bnQKLSAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICBpbmNyIGZpbGVzCi0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgaWYgeyEkdmFycyhlbmFibGVfc2lfYXdhcmUpfSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIFdBUk5JTkc6IENEQiBsaWJyYXJpZXMgbm90IGRlZmluZWQgZm9yICRsaWJyYXJ5X3NldCBsaWJyYXJ5IHNldFxuIgotICAgICAgICAgICAgICAgICAgc2V0IHdhcm5pbmdzKCR3YXJuaW5nX2NvdW50KSAiQ0RCIGxpYnJhcmllcyBub3QgZGVmaW5lZCBmb3IgJGxpYnJhcnlfc2V0IGxpYnJhcnkgc2V0IgotICAgICAgICAgICAgICAgICAgaW5jciB3YXJuaW5nX2NvdW50Ci0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIElORk86ICAgIC4uLiBmb3VuZCAoJGZpbGVzLyR0b3RhbCkgbGlicmFyeSBmaWxlc1xuIgotICAgICAgICAgaWYgeyR0b3RhbCAhPSAkZmlsZXN9IHsKLSAgICAgICAgICAgIHNldCBlcnJvcnMoJGVycm9yX2NvdW50KSAiW2V4cHIgJHRvdGFsIC0gJGZpbGVzXSB0aW1pbmcgbGlicmFyeSBmaWxlcyB3ZXJlIG5vdCBmb3VuZCAiCi0gICAgICAgICAgICBpbmNyIGVycm9yX2NvdW50Ci0gICAgICAgICB9Ci0gICAgICAgICBzZXQgZmlsZXMgMAotIyAgICAgIH0KLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgSU5GTzogQ2hlY2tpbmcgcmMgY29ybmVycyAuLi5cbiIKLSAgICAgICAgIGZvcmVhY2ggZmlsZSAkY2hlY2socmNfY29ybmVycykgewotICAgICAgICAgICAgaWYgeyFbZmlsZSBleGlzdHMgJGZpbGVdfSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIEVSUk9SOiBGaWxlIGRvZXMgbm90IGV4aXN0ICgkZmlsZSlcbiIKLSAgICAgICAgICAgICAgIHNldCBlcnJvcnMoJGVycm9yX2NvdW50KSAiRmlsZSBkb2VzIG5vdCBleGlzdCAoJGZpbGUpIgotICAgICAgICAgICAgICAgaW5jciBlcnJvcl9jb3VudAotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIGluY3IgZmlsZXMKLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0KLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgSU5GTzogICAgLi4uIGZvdW5kICRmaWxlcyBmaWxlc1xuIgotICAgICAgICAgc2V0IGZpbGVzIDAKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgSU5GTzogQ2hlY2tpbmcgY29uc3RyYWludCBtb2RlcyAuLi5cbiIKLSAgICAgICAgIGZvcmVhY2ggZmlsZV9saXN0ICRjaGVjayhjb25zdHJhaW50X21vZGVzKSB7Ci0gICAgICAgICAgICBmb3JlYWNoIGZpbGUgJGZpbGVfbGlzdCB7Ci0gICAgICAgICAgICAgICBpZiB7IVtmaWxlIGV4aXN0cyAkZmlsZV19IHsKLSAgICAgICAgICAgICAgICAgIGlmIHshW2luZm8gZXhpc3RzIHZhcnMoY3BmX2ZpbGUpXSB8fCAoW2luZm8gZXhpc3RzIHZhcnMoY3BmX2ZpbGUpXSAmJiAhJHZhcnMoY3BmX3RpbWluZykpfSB7Ci0gICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIEVSUk9SOiBGaWxlIGRvZXMgbm90IGV4aXN0ICgkZmlsZSlcbiIKLSAgICAgICAgICAgICAgICAgICAgIHNldCBlcnJvcnMoJGVycm9yX2NvdW50KSAiRmlsZSBkb2VzIG5vdCBleGlzdCAoJGZpbGUpIgotICAgICAgICAgICAgICAgICAgICAgaW5jciBlcnJvcl9jb3VudAotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgIGluY3IgZmlsZXMKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0KLSMgICAgICB9Ci0gICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIElORk86ICAgIC4uLiBmb3VuZCAkZmlsZXMgZmlsZXNcbiIKLSAgICAgIHNldCBmaWxlcyAwCi0gICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICBJTkZPOiBDaGVja2luZyBwbHVnaW4gZmlsZXMgLi4uXG4iCi0gICAgICBmb3JlYWNoIHBsdWcgJGNoZWNrKHBsdWdpbnMpIHsKLSAgICAgICAgIHNldCBmaWxlICR2YXJzKCRwbHVnKQotICAgICAgICAgaWYgeyFbZmlsZSBleGlzdHMgJGZpbGVdICYmICFbZmlsZSBleGlzdHMgJHZhcnMocGx1Z19kaXIpLyRmaWxlXX0gewotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICBXQVJOSU5HOiBGaWxlIGRvZXMgbm90IGV4aXN0ICgkZmlsZSkgLi4uIGNvbnRpbnVpbmdcbiIKLSAgICAgICAgICAgIGxhcHBlbmQgdmFycyhtaXNzaW5nX3BsdWdpbnMpICRwbHVnIAotICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIGxhcHBlbmQgdmFycyhwbHVnaW5zX2ZvdW5kKSAkcGx1ZyAKLSAgICAgICAgICAgIGluY3IgZmlsZXMKLSAgICAgICAgICAgIGlmIHshJHZhcnMoZW5hYmxlX2NlbHRpY19zdGVwcyl9IHsgCi0gICAgICAgICAgICAgICBpZiB7W3JlZ2V4cCAicG9zdHJvdXRlX3NpIiAkcGx1Z119IHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCB3YXJuaW5ncygkd2FybmluZ19jb3VudCkgIlBsdWctaW4gJHBsdWcgd2lsbCBiZSBza2lwcGVkIGZvciBzaUF3YXJlIGZsb3ciCi0gICAgICAgICAgICAgICAgICBpbmNyIHdhcm5pbmdfY291bnQKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgV0FSTklORzogUGx1Zy1pbiAkcGx1ZyB3aWxsIGJlIHNraXBwZWQgZm9yIHNpQXdhcmUgZmxvd1xuIgotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICAgICAgICAgICBUbyBlbmFibGUgY2VsdGljIGJhc2VkIFNJIGZsb3csIHVzZSB2YXJzKGVuYWJsZV9jZWx0aWNfc3RlcHMpXG4iCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0gICAgICB9Ci0gICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIElORk86ICAgIC4uLiBmb3VuZCAkZmlsZXMgZmlsZXNcbiIKLQotICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICAgICAgICAgICAgICAgICAgICBGbG93IE9wdGlvbnNcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiIKLSAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhwYXJ0aXRpb25fbGlzdCldfSB7Ci0gICAgICAgICBzZXQgZmxvdyBoaWVyYXJjaGljYWwKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgICBzZXQgZmxvdyBmbGF0Ci0gICAgICB9Ci0gICAgICBzZXQgdmFsaWQgW2xpc3Qgbm9uZSBkZWZhdWx0IHN0YW5kYXJkIGV4cHJlc3MgZXh0cmVtZV0KLSAgICAgIGlmIHtbbHNlYXJjaCAkdmFsaWQgW3N0cmluZyB0b2xvd2VyICR2YXJzKGZsb3dfZWZmb3J0KV1dID09IC0xfSB7Ci0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIEVSUk9SOiBWYXJpYWJsZSB2YXJzKGZsb3dfZWZmb3J0KSBoYXMgaWxsZWdhbCB2YWx1ZSAkdmFycyhmbG93X2VmZm9ydClcbiIKLSAgICAgICAgIHNldCBlcnJvcnMoJGVycm9yX2NvdW50KSAiVmFyaWFibGUgdmFycyhmbG93X2VmZm9ydCkgaGFzIGlsbGVnYWwgdmFsdWUgJHZhcnMoZmxvd19lZmZvcnQpIgotICAgICAgICAgaW5jciBlcnJvcl9jb3VudAotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICAgICAgICAgTXVzdCBiZSBvbmUgb2YgJyR2YWxpZCdcbiIKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgICBpZiB7KFtzdHJpbmcgdG9sb3dlciAkdmFycyhmbG93X2VmZm9ydCldID09ICJub25lIikgfHwgKFtzdHJpbmcgdG9sb3dlciAkdmFycyhmbG93X2VmZm9ydCldID09ICJkZWZhdWx0Iil9IHsKLSAgICAgICAgICAgIGFwcGVuZCB3YXJuaW5ncygkd2FybmluZ19jb3VudCkgIkNoYW5naW5nIHZhcnMoZmxvd19lZmZvcnQpIGZyb20gJyR2YXJzKGZsb3dfZWZmb3J0KScgdG8gJ3N0YW5kYXJkJyIKLSAgICAgICAgICAgIGluY3Igd2FybmluZ19jb3VudAotICAgICAgICAgICAgc2V0IHZhcnMoZmxvd19lZmZvcnQpIHN0YW5kYXJkCi0gICAgICAgICB9Ci0gICAgICB9Ci0gICAgICBzZXQgdmFsaWQgW2xpc3Qgbm9uZSBsb3cgaGlnaF0KLSAgICAgIGlmIHtbbHNlYXJjaCAkdmFsaWQgW3N0cmluZyB0b2xvd2VyICR2YXJzKHBvd2VyX2VmZm9ydCldXSA9PSAtMX0gewotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICBFUlJPUjogVmFyaWFibGUgdmFycyhwb3dlcl9lZmZvcnQpIGhhcyBpbGxlZ2FsIHZhbHVlICR2YXJzKHBvd2VyX2VmZm9ydClcbiIKLSAgICAgICAgIHNldCBlcnJvcnMoJGVycm9yX2NvdW50KSAiVmFyaWFibGUgdmFycyhwb3dlcl9lZmZvcnQpIGhhcyBpbGxlZ2FsIHZhbHVlICR2YXJzKHBvd2VyX2VmZm9ydCkiCi0gICAgICAgICBpbmNyIGVycm9yX2NvdW50Ci0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgICAgICAgICBNdXN0IGJlIG9uZSBvZiAnJHZhbGlkJ1xuIgotICAgICAgfQotICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICAgICAgICAgICAgICAgICAgICBGbG93ID0gJGZsb3dcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgICAgICAgICAgICAgICAgICBQb3dlciA9ICR2YXJzKHBvd2VyX2VmZm9ydClcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgICAgICAgICAgICAgICAgIEZsYXZvciA9ICR2YXJzKGZsb3cpXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgIiMgICAgICAgICAgICAgICAgICBFZmZvcnQgPSAkdmFycyhmbG93X2VmZm9ydClcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgICAgICAgICAgICAgICAgICAgUGxhY2VtZW50IE9wdGlvbnNcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiIKLSAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhwbGFjZV9vcHRfZGVzaWduKV19IHsKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgICAgICAgUGxhY2UgT3B0IERlc2lnbiA9ICR2YXJzKHBsYWNlX29wdF9kZXNpZ24pXG4iCi0gICAgICB9Ci0gICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoaW5fcGxhY2Vfb3B0KV19IHsKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgICAgICAgICAgIEluIFBsYWNlIE9wdCA9ICR2YXJzKGluX3BsYWNlX29wdClcbiIKLSAgICAgIH0KLSAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhub19wcmVfcGxhY2Vfb3B0KV19IHsKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgICAgICAgIE5vIFByZVBsYWNlIE9wdCA9ICR2YXJzKG5vX3ByZV9wbGFjZV9vcHQpXG4iCi0gICAgICB9Ci0gICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMocGxhY2VfaW9fcGlucyldfSB7Ci0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgICAgICAgICAgIFBsYWNlIElPIFBpbnMgPSAkdmFycyhwbGFjZV9pb19waW5zKVxuIgotICAgICAgfQotICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGNsb2NrX2dhdGVfYXdhcmUpXX0gewotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICAgICAgICBDbG9jayBHYXRlIEF3YXJlID0gJHZhcnMoY2xvY2tfZ2F0ZV9hd2FyZSlcbiIKLSAgICAgIH0KLSAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhjb25nZXN0aW9uX2VmZm9ydCldfSB7Ci0gICAgICAgICBpZiB7JHZhcnMoY29uZ2VzdGlvbl9lZmZvcnQpID09ICJub25lIn0gewotICAgICAgICAgICAgdW5zZXQgdmFycyhjb25nZXN0aW9uX2VmZm9ydCkgIAotICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgICAgICBDb25nZXN0aW9uIEVmZm9ydCA9ICR2YXJzKGNvbmdlc3Rpb25fZWZmb3J0KVxuIgotICAgICAgICAgfQotICAgICAgfQotICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICAgICAgICAgICAgICAgICAgIENsb2NrIFRyZWUgT3B0aW9uc1xuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICAgICAgICBSb3V0ZSBDbG9jayBOZXRzID0gJHZhcnMocm91dGVfY2xvY2tfbmV0cylcbiIKLSAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhjbG9ja19lY28pXX0gewotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICAgICAgICAgICAgICAgQ2xvY2sgRUNPID0gJHZhcnMoY2xvY2tfZWNvKVxuIgotICAgICAgfQotICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICAgICAgICAgICAgICAgICBPcHRpbWl6YXRpb24gT3B0aW9uc1xuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIgotICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGxlYWthZ2VfZWZmb3J0KV19IHsKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgICAgICAgICBMZWFrYWdlIEVmZm9ydCA9ICR2YXJzKGxlYWthZ2VfZWZmb3J0KVxuIgotICAgICAgfQotICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKHByZXNlcnZlX2Fzc2VydGlvbnMpXX0gewotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICAgICBQcmVzZXJ2ZSBBc3NlcnRpb25zID0gJHZhcnMocHJlc2VydmVfYXNzZXJ0aW9ucylcbiIKLSAgICAgIH0KLSAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyh1c2VmdWxfc2tldyldfSB7Ci0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgICAgICAgICAgICAgVXNlZnVsIFNrZXcgPSAkdmFycyh1c2VmdWxfc2tldylcbiIKLSAgICAgIH0KLSAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhjcml0aWNhbF9yYW5nZSldfSB7Ci0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgICAgICAgICAgQ3JpdGljYWwgUmFuZ2UgPSAkdmFycyhjcml0aWNhbF9yYW5nZSlcbiIKLSAgICAgIH0KLSAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhhbGxfZW5kX3BvaW50cyldfSB7Ci0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgICAgICAgICAgQWxsIEVuZCBQb2ludHMgPSAkdmFycyhhbGxfZW5kX3BvaW50cylcbiIKLSAgICAgIH0KLSAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhzaXplX29ubHlfZmlsZSldfSB7Ci0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgICAgICAgICAgU2l6ZSBPbmx5IEZpbGUgPSAkdmFycyhzaXplX29ubHlfZmlsZSlcbiIKLSAgICAgIH0KLSAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhkb250X3VzZV9maWxlKV19IHsKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgICAgICAgICBEb24ndCBVc2UgRmlsZSA9ICR2YXJzKGRvbnRfdXNlX2ZpbGUpXG4iCi0gICAgICB9Ci0gICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoc2tld19idWZmZXJzKV19IHsKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgICAgICAgICAgIFNrZXcgQnVmZmVycyA9ICR2YXJzKHNrZXdfYnVmZmVycylcbiIKLSAgICAgIH0KLSAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhlbmFibGVfcGFjKV19IHsKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgICAgICAgICAgICAgRW5hYmxlIFBBQyA9ICR2YXJzKGVuYWJsZV9wYWMpXG4iCi0gICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMocGFydGl0aW9uX2xpc3QpXX0gewotICAgICAgICAgICAgZm9yZWFjaCBwYWMgJHZhcnMocGFydGl0aW9uX2xpc3QpIHsKLSAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkcGFjLHBhY19tb2RlKV19IHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgICAgICAgICAgICAgICAgICAkcGFjIC0+ICR2YXJzKCRwYWMscGFjX21vZGUpXG4iCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0gICAgICB9Ci0gICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgIiMgICAgICAgICAgICAgICAgICBIb2xkIEZpeGluZyBPcHRpb25zXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgIiMgICAgICAgICAgICAgICAgRml4IEhvbGQgPSAkdmFycyhmaXhfaG9sZClcbiIKLSAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhmaXhfaG9sZF9lZmZvcnQpXX0gewotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICAgICAgICAgRml4IEhvbGQgRWZmb3J0ID0gJHZhcnMoZml4X2hvbGRfZWZmb3J0KVxuIgotICAgICAgfQotICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGZpeF9ob2xkX2lnbm9yZV9pb3MpXX0gewotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICAgICAgICAgICAgIElnbm9yZSBJT3MgID0gJHZhcnMoZml4X2hvbGRfaWdub3JlX2lvcylcbiIKLSAgICAgIH0KLSAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhmaXhfaG9sZF9hbGxvd190bnNfZGVncmFkYXRpb24pXX0gewotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICAgQWxsb3cgVE5TIERlZ3JhZGF0aW9uID0gJHZhcnMoZml4X2hvbGRfYWxsb3dfdG5zX2RlZ3JhZGF0aW9uKVxuIgotICAgICAgfQotICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICAgICAgICAgICAgICAgICAgICAgVGltaW5nIE9wdGlvbnNcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgICAgICAgICAgICBFbmFibGUgQ1BQUiA9ICR2YXJzKGVuYWJsZV9jcHByKVxuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICAgICAgICAgICAgICBFbmFibGUgT0NWID0gJHZhcnMoZW5hYmxlX29jdilcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgICAgICAgICAgICBFbmFibGUgQU9DViA9ICR2YXJzKGVuYWJsZV9hb2N2KVxuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICAgICAgICAgICAgIEVuYWJsZSBTT0NWID0gJHZhcnMoZW5hYmxlX3NvY3YpXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgIiMgICAgICAgICAgICAgICBFbmFibGUgU1MgPSAkdmFycyhlbmFibGVfc3MpXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgIiMgICAgICAgICAgICAgICAgICAgIFJvdXRpbmcgT3B0aW9uc1xuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIgotICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKHRyYWNrX29wdCldfSB7Ci0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgICAgSW4gUm91dGUgT3B0aW1pemF0aW9uID0gJHZhcnModHJhY2tfb3B0KVxuIgotIyAgICAgICAgIGlmIHskdmFycyh0cmFja19vcHQpfSB7Ci0jICAgICAgICAgICAgc2V0IHZhcnMoZW5hYmxlX3NpX2F3YXJlKSB0cnVlCi0jICAgICAgICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycyh0cXVhbnR1c19maWxlKV19IHsKLSMgICAgICAgICAgICAgICBzZXQgZXJyb3JzKCRlcnJvcl9jb3VudCkgInRRdWFudHVzIGZpbGUgLSB2YXJzKHRxdWFudHVzX2ZpbGUpIC0gcmVxdWlyZWQgd2hlbiB2YXJzKHRyYWNrX29wdCkgc2V0IHRvIHRydWUiCi0jICAgICAgICAgICAgICAgaW5jciBlcnJvcl9jb3VudAotIyAgICAgICAgICAgIH0KLSMgICAgICAgICB9Ci0gICAgICB9Ci0gICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMobXVsdGlfY3V0X2VmZm9ydCldfSB7Ci0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgICAgICAgIE11bHRpLUN1dCBFZmZvcnQgPSAkdmFycyhtdWx0aV9jdXRfZWZmb3J0KVxuIgotICAgICAgfQotICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGxpdGhvX2RyaXZlbl9yb3V0aW5nKV19IHsKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgICBMaXRobyBEcml2ZW4gUm91dGluZyA9ICR2YXJzKGxpdGhvX2RyaXZlbl9yb3V0aW5nKVxuIgotICAgICAgfQotICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGFudGVubmFfZGlvZGUpXSAmJiAoJHZhcnMoYW50ZW5uYV9kaW9kZSkgIT0gIiIpfSB7Ci0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgICAgICAgICAgIEFudGVubmEgRGlvZGUgPSAkdmFycyhhbnRlbm5hX2Rpb2RlKVxuIgotICAgICAgfQotICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKHJlbGF0aXZlX2NfdGhyZXNoKV0gfHwgXAotICAgICAgICAgIFtpbmZvIGV4aXN0cyB2YXJzKHRvdGFsX2NfdGhyZXNoKV0gfHwgXAotICAgICAgICAgIFtpbmZvIGV4aXN0cyB2YXJzKGNvdXBsaW5nX2NfdGhyZXNoKV0gfHxcCi0gICAgICAgICAgW2luZm8gZXhpc3RzIHZhcnMocG9zdHJvdXRlX2V4dHJhY3Rpb25fZWZmb3J0KV0gfHxcCi0gICAgICAgICAgW2luZm8gZXhpc3RzIHZhcnMoc2lnbm9mZl9leHRyYWN0aW9uX2VmZm9ydCldfSB7Ci0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgICAgICAgICAgICAgICAgICAgRXh0cmFjdGlvbiBPcHRpb25zXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4iCi0gICAgICB9Ci0gICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMocmVsYXRpdmVfY190aHJlc2gpXX0gewotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICAgIFJlbGF0aXZlIEMgVGhyZXNob2xkID0gJHZhcnMocmVsYXRpdmVfY190aHJlc2gpXG4iCi0gICAgICB9Ci0gICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnModG90YWxfY190aHJlc2gpXX0gewotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICAgICAgIFRvdGFsIEMgVGhyZXNob2xkID0gJHZhcnModG90YWxfY190aHJlc2gpXG4iCi0gICAgICB9Ci0gICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoY291cGxpbmdfY190aHJlc2gpXX0gewotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICAgIENvdXBsaW5nIEMgVGhyZXNob2xkID0gJHZhcnMoY291cGxpbmdfY190aHJlc2gpXG4iCi0gICAgICB9Ci0gICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMocG9zdHJvdXRlX2V4dHJhY3Rpb25fZWZmb3J0KV19IHsKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgUG9zdHJvdXRlIEVmZm9ydCBMZXZlbCA9ICR2YXJzKHBvc3Ryb3V0ZV9leHRyYWN0aW9uX2VmZm9ydClcbiIKLSAgICAgIH0KLSAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhzaWdub2ZmX2V4dHJhY3Rpb25fZWZmb3J0KV19IHsKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgICBTaWdub2ZmIEVmZm9ydCBMZXZlbCA9ICR2YXJzKHNpZ25vZmZfZXh0cmFjdGlvbl9lZmZvcnQpXG4iCi0gICAgICB9Ci0KLSAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgICAgICAgICAgICAgICAgICAgICAgIERGTSBPcHRpb25zXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4iCi0gICAgICBzZXQgY2hlY2tfbHBhX3RlY2ggMAotICAgICAgc2V0IGNoZWNrX2xwYV9jb25mIDAKLSAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhmaXhfbGl0aG8pXSAmJiAkdmFycyhmaXhfbGl0aG8pfSB7Ci0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgICAgICAgICAgICAgICBGaXggTGl0aG8gPSAkdmFycyhmaXhfbGl0aG8pXG4iCi0gICAgICAgICBzZXQgY2hlY2tfbHBhX2NvbmYgMQotICAgICAgICAgc2V0IHZhcnModmVyaWZ5X2xpdGhvKSB0cnVlCi0gICAgICB9Ci0gICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnModmVyaWZ5X2xpdGhvKV0gJiYgJHZhcnModmVyaWZ5X2xpdGhvKX0gewotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICAgICAgICAgICAgVmVyaWZ5IExpdGhvID0gJHZhcnModmVyaWZ5X2xpdGhvKVxuIgotICAgICAgICAgc2V0IGNoZWNrX2xwYV90ZWNoIDEKLSAgICAgIH0KLSAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhscGFfdGVjaF9maWxlKV19IHsKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgICAgICAgICAgTFBBIFRlY2ggRmlsZSA9ICR2YXJzKGxwYV90ZWNoX2ZpbGUpXG4iCi0gICAgICB9IAotICAgICAgaWYgeyRjaGVja19scGFfdGVjaH0geyAKLSAgICAgICAgIGlmIHshW2luZm8gZXhpc3RzIHZhcnMobHBhX3RlY2hfZmlsZSldfSB7Ci0gICAgICAgICAgICBzZXQgZXJyb3JzKCRlcnJvcl9jb3VudCkgIkxQQSB0ZWNoIGZpbGUgbm90IGRlZmluZWQgLi4uIgotICAgICAgICAgICAgaW5jciBlcnJvcl9jb3VudAotICAgICAgICAgfQotICAgICAgfQotICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGxwYV9jb25mX2ZpbGUpXX0gewotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICAgICAgICAgICBMUEEgQ29uZiBGaWxlID0gJHZhcnMobHBhX2NvbmZfZmlsZSlcbiIKLSAgICAgIH0KLSAgICAgIGlmIHskY2hlY2tfbHBhX2NvbmZ9IHsgCi0gICAgICAgICBpZiB7IVtpbmZvIGV4aXN0cyB2YXJzKGxwYV9jb25mX2ZpbGUpXX0gewotICAgICAgICAgICAgc2V0IGVycm9ycygkZXJyb3JfY291bnQpICJMUEEgY29uZiBmaWxlIG5vdCBkZWZpbmVkIC4uLiIKLSAgICAgICAgICAgIGluY3IgZXJyb3JfY291bnQKLSAgICAgICAgIH0KLSAgICAgIH0KLSAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgICAgICAgICAgICAgICBTaWduYWwgSW50ZWdyaXR5IE9wdGlvbnNcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgICAgICAgICAgICAgICAgUHJvY2VzcyA9ICR2YXJzKHByb2Nlc3MpXG4iCi0gICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoZGVsdGFfZGVsYXlfdGhyZXNob2xkKV19IHsKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgIERlbHRhIERlbGF5IFRocmVzaG9sZCA9ICR2YXJzKGRlbHRhX2RlbGF5X3RocmVzaG9sZClcbiIKLSAgICAgIH0KLSAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhjZWx0aWNfc2V0dGluZ3MpXX0gewotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICAgICAgICAgQ2VsdGljIFNldHRpbmdzID0gJHZhcnMoY2VsdGljX3NldHRpbmdzKVxuIgotICAgICAgfQotICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKHNpX2FuYWx5c2lzX3R5cGUpXX0gewotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICAgICAgICAgICBBbmFseXNpcyBUeXBlID0gJHZhcnMoc2lfYW5hbHlzaXNfdHlwZSlcbiIKLSAgICAgIH0KLSAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhhY2NlcHRhYmxlX3ducyldfSB7Ci0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgICAgICAgICAgIEFuYWx5c2lzIFR5cGUgPSAkdmFycyhhY2NlcHRhYmxlX3ducylcbiIKLSAgICAgIH0KLQotICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGRpc3RyaWJ1dGUpXX0gewotICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyBkaXN0KCR2YXJzKGRpc3RyaWJ1dGUpKV19IHsKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgICAgICAgICAgICAgICAgICBNdWx0aXBsZSBDUFVzXG4iCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4iCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgICAgICAgICAgICAgICAgICAgIE1vZGUgPSAkdmFycyhkaXN0cmlidXRlKVxuIgotICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGxvY2FsX2NwdXMpXX0gewotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICAgICAgQ1BVcyBPbiBMb2NhbCBIb3N0ID0gJHZhcnMobG9jYWxfY3B1cylcbiIKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhyZW1vdGVfaG9zdHMpXX0gewotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICBOdW1iZXIgb2YgUmVtb3RlIEhvc3RzID0gJHZhcnMocmVtb3RlX2hvc3RzKVxuIgotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGNwdXNfcGVyX3JlbW90ZV9ob3N0KV19IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgICBDUFVzIFBlciBSZW1vdGUgSG9zdCA9ICR2YXJzKGNwdXNfcGVyX3JlbW90ZV9ob3N0KVxuIgotICAgICAgICAgICAgfQotICAgICAgICAgfQotICAgICAgfSBlbHNlIHsKLSAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhsb2NhbF9jcHVzKV19IHsKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgICAgICAgICAgICAgICAgICBNdWx0aXBsZSBDUFVzXG4iCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4iCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgICAgICBDUFVzIE9uIExvY2FsIEhvc3QgPSAkdmFycyhsb2NhbF9jcHVzKVxuIgotICAgICAgICAgfQotICAgICAgfQotICAgICAgaWYgeyR2YXJzKGhpZ2hfdGltaW5nX2VmZm9ydCl9IHsKLSAgICAgICAgIGlmIHtbbGluZGV4IFtzcGxpdCAkdmFycyh2ZXJzaW9uKSAiLiJdICAwXSA8IDE1fSB7Ci0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4iCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgICAgICAgICAgPDw8IEhJR0ggRUZGT1JUIEZMT1cgRU5BQkxFRCA+Pj5cbiIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiIKLSAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIFdBUk5JTkc6IFZhcmlhYmxlIHZhcnMoaGlnaF90aW1pbmdfZWZmb3J0KSBub3Qgc3VwcG9ydGVkIGFueW1vcmUuIFBsZWFzZSB1c2UgdmFycyhmbG93X2VmZm9ydCkuXG4iCi0gICAgICAgICAgICBzZXQgd2FybmluZ3MoJHdhcm5pbmdfY291bnQpICJWYXJpYWJsZSB2YXJzKGhpZ2hfdGltaW5nX2VmZm9ydCkgbm90IHN1cHBvcnRlZCBhbnltb3JlLiBQbGVhc2UgdXNlIHZhcnMoZmxvd19lZmZvcnQpLiIKLSAgICAgICAgICAgIGluY3Igd2FybmluZ19jb3VudAotICAgICAgICAgfQotICAgICAgfQotCi0gICAgICBhcHBlbmQgY29tbWFuZHMgIiMgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgIiMgICAgQWJvcnQgb24gU2V0dXAgRXJyb3IgPSAkdmFycyhhYm9ydClcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiIKLQotICAgICAgaWYge1tsaW5kZXggW3NwbGl0ICR2YXJzKHZlcnNpb24pICIuIl0gIDBdID4gMTB9IHsKLSAgICAgICAgIGZvcmVhY2ggdmFyIFthcnJheSBuYW1lcyBzYXZlX3ZhcnNdIHsKLSAgICAgICAgICAgIHNldCB2YXJzKCR2YXIpICRzYXZlX3ZhcnMoJHZhcikKLSAgICAgICAgIH0KLSAgICAgIH0KLQotICAgICAgc2V0IGNvbW1hbmQgIiIKLSAgICAgIHNldCB2YXJzKGluZm9fY291bnQpICRpbmZvX2NvdW50Ci0gICAgICBpZiB7JGluZm9fY291bnQgPiAwfSB7Ci0gICAgICAgICBhcHBlbmQgY29tbWFuZCAiIyAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kICIjICAgICAgICAgICAgICAgICAgIEluZm8gU3VtbWFyeVxuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiMgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4iCi0KLSAgICAgICAgIGZvciB7c2V0IGkgMH0geyRpPCRpbmZvX2NvdW50fSB7aW5jciBpfSB7Ci0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiIyAgKFtleHByICRpICsgMV0pICRpbmZvcygkaSlcbiIKLSAgICAgICAgIH0KLSAgICAgICAgIGFwcGVuZCBjb21tYW5kICIjICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIgotCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgJGNvbW1hbmQKLSAgICAgIH0KLSAgICAgIHNldCB2YXJzKHdhcm5pbmdfY291bnQpICR3YXJuaW5nX2NvdW50Ci0gICAgICBpZiB7JHdhcm5pbmdfY291bnQgPiAwfSB7Ci0gICAgICAgICBhcHBlbmQgY29tbWFuZCAiIyAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kICIjICAgICAgICAgICAgICAgICAgIFdhcm5pbmcgU3VtbWFyeVxuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiMgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4iCi0KLSAgICAgICAgIGZvciB7c2V0IGkgMH0geyRpPCR3YXJuaW5nX2NvdW50fSB7aW5jciBpfSB7Ci0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiIyAgKFtleHByICRpICsgMV0pICR3YXJuaW5ncygkaSlcbiIKLSAgICAgICAgIH0KLSAgICAgICAgIGFwcGVuZCBjb21tYW5kICIjICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIgotCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgJGNvbW1hbmQKLSAgICAgIH0KLSAgICAgIHNldCB2YXJzKGVycm9yX2NvdW50KSAkZXJyb3JfY291bnQKLSAgICAgIGlmIHskZXJyb3JfY291bnQgPiAwfSB7Ci0gICAgICAgICBhcHBlbmQgY29tbWFuZCAiIyAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kICIjICAgICAgICAgICAgICAgICAgICBFcnJvciBTdW1tYXJ5XG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZCAiIyAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiIKLQotICAgICAgICAgZm9yIHtzZXQgaSAwfSB7JGk8JGVycm9yX2NvdW50fSB7aW5jciBpfSB7Ci0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiIyAgKFtleHByICRpICsgMV0pICRlcnJvcnMoJGkpXG4iCi0gICAgICAgICB9Ci0gICAgICAgICBhcHBlbmQgY29tbWFuZCAiIyAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiIKLQotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICRjb21tYW5kCi0KLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgICAgICAgICAgICAgICAgICAgU0VUVVAgQ0hFQ0sgUEFTU0VEXG4iCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4iCi0gICAgICB9Ci0KLSAgICAgIGZpbGUgbWtkaXIgJHZhcnMoc2NyaXB0X2RpcikKLSAgICAgIHNldCBvcCBbb3BlbiAkdmFycyhzY3JpcHRfZGlyKS9jaGVjay5ycHQgd10KLQotICAgICAgcHV0cyAkb3AgJGNvbW1hbmRzCi0KLSAgICAgIGNsb3NlICRvcAotCi0gICAgICBpZiB7JHZhcnMoYWJvcnQpICYmICgkZXJyb3JfY291bnQgPiAwKX0gewotICAgICAgICAgcHV0cyAiPEZGPiBBYm9ydGluZyBkdWUgdG8gcHJldmlvdXMgZXJyb3JzIC4uLiIKLSAgICAgICAgIHB1dHMgIjxGRj4gU2VlICR2YXJzKHNjcmlwdF9kaXIpL2NoZWNrLnJwdCBmb3IgZGV0YWlscyIKLSAgICAgICAgIHB1dHMgIiIKLSAgICAgICAgIHB1dHMgIiAgICAgICAgICAgICAgICAgIEVycm9yIFN1bW1hcnkiCi0gICAgICAgICBwdXRzICIgICAgICAgICAgICAgICAgICAtLS0tLS0tLS0tLS0tIgotCi0gICAgICAgICBmb3Ige3NldCBpIDB9IHskaTwkZXJyb3JfY291bnR9IHtpbmNyIGl9IHsKLSAgICAgICAgICAgIHB1dHMgIiAgIChbZXhwciAkaSArIDFdKSAkZXJyb3JzKCRpKSIKLSAgICAgICAgIH0KLSAgICAgICAgIHB1dHMgIi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iCi0gICAgICAgICBleGl0IC0xCi0gICAgICB9Ci0KLSAgICAgIGlmIHshJHZhcnMoY29kZWdlbil9IHsKLSAgICAgICAgIGlmIHshW0ZGOjppc19scF9mbG93XX0gewotICAgICAgICAgICAgcmV0dXJuCi0gICAgICAgICB9Ci0gICAgICAgICBzZXQgdmFycyhyZXF1aXJlZF9wcm9jcykgImdldF9jbG9ja19wb3J0cyBnZXRfcG93ZXJfZG9tYWlucyBtb2RpZnlfcG93ZXJfZG9tYWlucyBhZGRfcG93ZXJfc3dpdGNoZXMgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb3V0ZV9zZWNvbmRhcnlfcGdfbmV0cyBidWZmZXJfYWx3YXlzX29uX25ldHMgaW5zZXJ0X3dlbGx0YXBzX2VuZGNhcHMiCi0gICAgICB9Ci0KLSAgICAgIHNldCB2YXJzKGNoZWNrX3NldHVwKSAwCi0KLSAgICAgICMgUmVjb3JkIGVycm9ycyBmb3IgbGF0ZXIgcHJvY2Vzc2luZwotICAgICAgc2V0IHZhcnMoY2hlY2tfc2V0dXBfZXJyb3JzKSB7fQotICAgICAgZm9yIHtzZXQgaSAwfSB7JGk8JGVycm9yX2NvdW50fSB7aW5jciBpfSB7Ci0gICAgICAgICBsYXBwZW5kIHZhcnMoY2hlY2tfc2V0dXBfZXJyb3JzKSAkZXJyb3JzKCRpKQotICAgICAgfQotICAgfQotCi0gICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAjIFByb2NlZHVyZSB0byBkZXRlcm1pbmUgZmxvdyBmbGF2b3IsIGNoZWNrIGZvciBpbG1zLCBldGMuCi0gICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0KLSAgIHByb2MgY2hlY2tfZmxvdyB7fSB7Ci0gICAKLSAgICAgIGdsb2JhbCB2YXJzCi0gICAKLSAgICAgIHNldCB2YXJzKGlsbSkgMAotICAgICAgc2V0IHZhcnModG9wKSAwCi0gICAKLSAgICAgIGlmIHshW2luZm8gZXhpc3RzIHZhcnMocGFydGl0aW9uX2xpc3QpXSB8fCAoW2luZm8gZXhpc3RzIHZhcnMocGFydGl0aW9uX2xpc3QpXSAmJiBcCi0gICAgICAgICAgIChbZmlsZSB0YWlsIFtmaWxlIGRpcm5hbWUgW3B3ZF1dXSAhPSAiJHZhcnMocGFydGl0aW9uX2RpcikiKSl9IHsKLQotICAgICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycyhwYXJ0aXRpb25fbGlzdCldfSB7Ci0gICAgICAgICAgICBzZXQgdmFycyhmbGF2b3IpIGZsYXQKLSAgICAgICAgICAgIGlmIHshW2luZm8gZXhpc3RzIHZhcnMobW9kZSldfSB7Ci0gICAgICAgICAgICAgICBzZXQgdmFycyhtb2RlKSAiZmxhdCIKLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBzZXQgdmFycyhmbGF2b3IpIGhpZXIKLSAgICAgICAgICAgIGlmIHshW2luZm8gZXhpc3RzIHZhcnMobW9kZSldfSB7Ci0gICAgICAgICAgICAgICBzZXQgdmFycyhtb2RlKSAidG9wX2Rvd24iCi0gICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0gICAgIAotICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKHBhcnRpdGlvbl9saXN0KV0gJiYgKCR2YXJzKG1vZGUpID09ICJib3R0b21fdXAiKX0gewotICAgICAgICAgICAgc2V0IHZhcnMoaWxtKSAxCi0gICAgICAgICB9Ci0gICAKLSAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhpbG1fbGlzdCldICYmICgkdmFycyhpbG1fbGlzdCkgIT0gIiIpfSB7Ci0gICAgICAgICAgICBzZXQgdmFycyhpbG0pIDEKLSAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBzZXQgdmFycyhpbG0pIDAKLSAgICAgICAgIH0KLSAgIAotICAgICAgfSBlbHNlIHsKLSAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhwYXJ0aXRpb25fbGlzdCldfSB7Ci0gICAgICAgICAgICBzZXQgcHRuIFtmaWxlIHRhaWwgW3B3ZF1dCi0gICAgICAgICAgICBzZXQgdmFycyhwdG4pICRwdG4KLSAgICAgICAgICAgIGlmIHsoW2ZpbGUgdGFpbCBbZmlsZSBkaXJuYW1lIFtwd2RdXV0gPT0gIiR2YXJzKHBhcnRpdGlvbl9kaXIpIikgJiYKLSAgICAgICAgICAgICAgICAoW2xzZWFyY2ggJHZhcnMocGFydGl0aW9uX2xpc3QpICRwdG5dID09IC0xKX0gewotICAgICAgICAgICAgICAgc2V0IHZhcnMoaWxtKSAxCi0gICAgICAgICAgICAgICBzZXQgdmFycyh0b3ApIDEKLSMgICAgICAgICAgICAgICBGRl9FREk6Om5vcm1hbGl6ZV9jb25zdHJhaW50cwotICAgICAgICAgICAgfQotICAgICAgICAgfQotICAgICAgfQotICAgICAgaWYgeyR2YXJzKGRlYnVnKX0gewotICAgICAgICAgcHV0cyAiPERFQlVHPiBGbG93IC0+ICR2YXJzKGZsYXZvcikgOiBTdGVwIC0+ICR2YXJzKHN0ZXApIDogSUxNIC0+ICR2YXJzKGlsbSkiCi0gICAgICB9Ci0gICB9Ci0KLSAgIHByb2MgcnVuX2NvbXBpbGUge30gewotCi0gICAgICBnbG9iYWwgdmFycwotCi0gICAgICBmaWxlIG1rZGlyICR2YXJzKHNjcmlwdF9kaXIpL0lOTk9WVVMKLSAgICAgIHNldCBvcCBbb3BlbiAkdmFycyhzY3JpcHRfZGlyKS9JTk5PVlVTL3J1bl9jb21waWxlLnRjbCB3XQotCi0gICAgICBzZXQgY29tbWFuZHMgIiIKLQotICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycyhsZGJfZGlyKV19IHsKLSAgICAgICAgIHNldCB2YXJzKGxkYl9kaXIpIExEQgotICAgICAgfQotICAgICAgZmlsZSBta2RpciAkdmFycyhsZGJfZGlyKQotICAgICAgc2V0IGRvbmVfbGlzdCBbbGlzdF0KLQotICAgICAgZm9yZWFjaCBzZXQgJHZhcnMobGlicmFyeV9zZXRzKSB7Ci0gICAgICAgICBzZXQgZmlsZV9saXN0IFtsaXN0XQotICAgICAgICAgZm9yZWFjaCBmaWxlICR2YXJzKCRzZXQsdGltaW5nKSB7Ci0gICAgICAgICAgICBpZiB7W2xzZWFyY2ggJGRvbmVfbGlzdCAkZmlsZV0gPT0gLTF9IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAid3JpdGVfbGRiIC1saWJyYXJ5ICRmaWxlIC1vdXRmaWxlICR2YXJzKGxkYl9kaXIpL1tmaWxlIHRhaWwgJGZpbGUubGRiXVxuIgotICAgICAgICAgICAgICAgbGFwcGVuZCBkb25lX2xpc3QgJGZpbGUKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGxhcHBlbmQgZmlsZV9saXN0ICR2YXJzKGxkYl9kaXIpL1tmaWxlIHRhaWwgJGZpbGVdLmxkYgotICAgICAgICAgfQotICAgICAgICAgc2V0IHZhcnMoJHNldCx0aW1pbmcsb3JpZykgJHZhcnMoJHNldCx0aW1pbmcpCi0gICAgICAgICBzZXQgdmFycygkc2V0LHRpbWluZykgJGZpbGVfbGlzdAotICAgICAgfQotCi0gICAgICBwdXRzICRvcCAiJGNvbW1hbmRzXG5leGl0XG4iCi0gICAgICBjbG9zZSAkb3AKLQotICAgICAgc2V0IHZhcnMocmFuX2NvbXBpbGUpIDEKLSAgIH0KLQotCi0gICAjIEdlbmVyYXRlIHRoZSBjb21tYW5kIHRvIHZlcmlmeSBnZW9tZXRyeS4gVGhpcyBpcyB2ZXJpZnlHZW9tZXRyeQotICAgIyBmb3IgdHJhZGl0aW9uYWwgcHJvY2Vzc2VzLCB2ZXJpZnlfZHJjIGZvciAyMG5tIGFuZCBiZWxvdy4KLSAgIHByb2MgdmVyaWZ5X2dlb21ldHJ5X2NvbW1hbmQge30gewotICAgICBnbG9iYWwgdmFycwotICAgICBzZXQgcHJvY2VzcyBbcmVnc3ViICJubSIgJHZhcnMocHJvY2VzcykgIiJdCi0gICAgIGlmIHsoW2xpbmRleCBbc3BsaXQgJHZhcnModmVyc2lvbikgIi4iXSAgMF0gPiAxNikgfHwgKChbbGluZGV4IFtzcGxpdCAkdmFycyh2ZXJzaW9uKSAiLiJdIDBdID09IDE2KSAmJiAoW2xpbmRleCBbc3BsaXQgJHZhcnModmVyc2lvbikgIi4iXSAgMV0gPiAxKSl9IHsKLSAgICAgICByZXR1cm4gInZlcmlmeV9kcmMiCi0gICAgIH0gZWxzZSB7Ci0gICAgICAgaWYgeyRwcm9jZXNzID4gMjh9IHsKLSAgICAgICAgIHJldHVybiAidmVyaWZ5R2VvbWV0cnkiCi0gICAgICAgfSBlbHNlIHsKLSAgICAgICAgIHJldHVybiAidmVyaWZ5X2RyYyIKLSAgICAgICB9Ci0gICAgIH0KLSAgIH0KLQotICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgIyBQcm9jZWR1cmUgdG8gaW5pdGlhbGl6ZSB0aGUgZm91bmRhdGlvbiBmbG93IAotICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCi0gICBwcm9jIGluaXRpYWxpemVfZmxvdyB7fSB7Ci0gICAgICBnbG9iYWwgdmFycwotICAgICAgZ2xvYmFsIGVudgotCi0gICAgICBzZXQgY29tbWFuZHMgIiIKLQotICAgICAgRkZfRURJOjpzZWVkX3ZhcmlhYmxlcyAxCi0gICAgICBGRl9FREk6OmNoZWNrX3NldHVwCi0KLSAgICAgIGlmIHtbaW5mbyBleGlzdCBlbnYoVlBBVEgpXX0gewotICAgICAgICAgZmlsZSBta2RpciAkZW52KFZQQVRIKQotICAgICAgfQotCi0gICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoY2FwdHVyZV9tZXRyaWNzKV0gJiYgJHZhcnMoY2FwdHVyZV9tZXRyaWNzKX0geyAKLSAgICAgICAgIGlmIHtbbGluZGV4IFtzcGxpdCAkdmFycyh2ZXJzaW9uKSAiLiJdICAwXSA8IDE0fSB7Ci0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIlxuIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyBMb2FkaW5nIGFwcGxldHMgZm9yIG1ldHJpY3MgY2FwdHVyZSAuLi5cbiIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiIKLSAgICAgICAgICAgIGlmIHtbZmlsZSB0YWlsIFtmaWxlIGRpcm5hbWUgW2V4ZWMgcHdkXV1dID09ICR2YXJzKHBhcnRpdGlvbl9kaXIpfSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgInNvdXJjZSAkdmFycyhub3JtX3NjcmlwdF9wYXRoKS9FVEMvYXBwbGV0LnRjbFxuIgotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJzb3VyY2UgJHZhcnMobm9ybV9zY3JpcHRfcGF0aCkvRVRDL2NvbXBhdGliaWxpdHkudGNsXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgInNldF9hdHRyaWJ1dGUgYXBwbGV0X3NlYXJjaF9wYXRoICR2YXJzKG5vcm1fc2NyaXB0X3BhdGgpL0VUQy9hcHBsZXRzIC9cbiIKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgInNvdXJjZSBcJHZhcnMoc2NyaXB0X3BhdGgpL0VUQy9hcHBsZXQudGNsXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgInNvdXJjZSBcJHZhcnMoc2NyaXB0X3BhdGgpL0VUQy9jb21wYXRpYmlsaXR5LnRjbFxuIgotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJzZXRfYXR0cmlidXRlIGFwcGxldF9zZWFyY2hfcGF0aCBcJHZhcnMoc2NyaXB0X3BhdGgpL0VUQy9hcHBsZXRzIC9cbiIKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiYXBwbGV0IGxvYWQgbWVhc3VyZVxuIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJhcHBsZXQgbG9hZCB0aW1lX2luZm9cbiIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJpZiB7XFtmaWxlIGV4aXN0cyAkdmFycyh0aW1lX2luZm9fZGIpXF19IHtcbiIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiICAgdGltZV9pbmZvIC1xdWlldCAtdGFibGUgZmZfZXh0IC1sb2FkICR2YXJzKHRpbWVfaW5mb19kYilcbiIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAifVxuIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4iCi0gICAgICAgICB9Ci0gICAgICB9Ci0KLQotIyAgICAgIGFwcGVuZCBjb21tYW5kcyAiIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIgotIyAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgICAgICAgICAgICAgICAgUlVOIFNDUklQVCBGT1IgU1RFUCAnW3N0cmluZyB0b3VwcGVyICR2YXJzKHN0ZXApXSdcbiIKLSMgICAgICBhcHBlbmQgY29tbWFuZHMgIiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiIKLSAgICAgIGlmIHskdmFycyhyZXBvcnRfc3lzdGVtX2luZm8pfSB7Ci0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgImZmX3Byb2NzOjpzeXN0ZW1faW5mb1xuIgotICAgICAgfQotICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRl9FREk6OmluaXRpYWxpemVfbXVsdGljcHVdCi0KLSAgICAgIGlmIHskdmFycyhjb2RlZ2VuKX0gewotICAgICAgICAgcmV0dXJuICRjb21tYW5kcwotICAgICAgfSBlbHNlIHsKLSAgICAgICAgICB1cGxldmVsICMwIGV2YWwgJGNvbW1hbmRzCi0gICAgICB9Ci0gICB9Ci0KLSAgIHByb2MgbG9hZF9kZXNpZ24ge3N0ZXAge2N1cnJlbnRfc3RlcCAiIn0ge2Zvcm1hdCAxfX0gewotCi0gICAgICBnbG9iYWwgZW52Ci0gICAgICBnbG9iYWwgdmFycwotICAgICAgZ2xvYmFsIGVycm9ycwotCi0gICAgICBnbG9iYWwgd2FybmluZ3MKLQotICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGhpZXIpXX0gewotICAgICAgICAgc2V0IGhpZXIgdHJ1ZQotICAgICAgfSBlbHNlIHsKLSAgICAgICAgIHNldCBoaWVyIGZhbHNlCi0gICAgICB9Ci0KLSAgICAgIGlmIHskY3VycmVudF9zdGVwID09ICIifSB7Ci0gICAgICAgICBzZXQgY3VycmVudF9zdGVwICRzdGVwCi0gICAgICB9Ci0KLSMgICAgICBpZiB7JHN0ZXAgPT0iIn0gewotIyAgICAgICAgIHNldCBzdGVwICR2YXJzKHN0ZXApCi0jICAgICAgfQotIyAgICAgIGlmIHshW2luZm8gZXhpc3RzIHZhcnMoc3RlcCldfSB7Ci0jICAgICAgICAgc2V0IHZhcnMoc3RlcCkgJHN0ZXAKLSMgICAgICB9Ci0gICAgICBpZiB7ISR2YXJzKGNvZGVnZW4pfSB7Ci0gICAgICAgICBzZXQgcmVzdG9yZV9kZXNpZ24gdHJ1ZQotICAgICAgfQotICAgICAgc2V0IGRlc2lnbiAkdmFycyhkZXNpZ24pCi0KLSAgICAgIGlmIHtbcmVnZXhwICJec3luIiAkY3VycmVudF9zdGVwXX0gewotICAgICAgICAgIHJldHVybiAiXG5yZWFkX2RiICR2YXJzKGRic19kaXIpLyRzdGVwLmRiXG4iIAotICAgICAgfQotCi0gICAgICAjIEJ1aWxkIHJlc3RvcmVfZGVzaWduIGNvbW1hbmQgc3RyaW5nCi0gICAgICAjIC4uLiBjaGVjayBmaXJzdCBmb3Igc3RhcnRpbmdfZGJzCi0gICAgICAjIC4uLiBpZiBub3Qgd2UgbmVlZCB0byBrbm93IHRoZSBkZXNpZ24gbmFtZSBhcyB0aGlzIG1heSBiZSBhIAotICAgICAgIyAgICAgcmVjdXJzaXZlIGNhbGwgaW4gYSBoaWVyYXJoaWNhbCBmbG93Ci0gICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJGN1cnJlbnRfc3RlcCxzdGFydGluZ19kYnMpXX0gewotICAgICAgICAgaWYge1tzdHJpbmcgY29tcGFyZSAtbm9jYXNlICR2YXJzKGRic19mb3JtYXQpICJvYSJdPT0wfSB7Ci0gICAgICAgICAgICAjIEludGVycHJldCB0aGUgc3RhcnRpbmcgREJTIGFzIGFuIE9BIHRyaXBsZQotICAgICAgICAgICAgc2V0IHJlc3RvcmVfY29tbWFuZCAiW2xpc3QgcmVzdG9yZURlc2lnbiAtY2VsbHZpZXcgJHZhcnMoJGN1cnJlbnRfc3RlcCxzdGFydGluZ19kYnMpXVxuIgotICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIGlmIHtbZmlsZSBpc2RpcmVjdG9yeSAkdmFycygkY3VycmVudF9zdGVwLHN0YXJ0aW5nX2RicyldfSB7Ci0gICAgICAgICAgICAgICBzZXQgcmVzdG9yZV9jb21tYW5kICJyZXN0b3JlRGVzaWduICR2YXJzKCRjdXJyZW50X3N0ZXAsc3RhcnRpbmdfZGJzKSAkZGVzaWduXG4iCi0gICAgICAgICAgICB9IGVsc2VpZiB7W2ZpbGUgZXhpc3RzICR2YXJzKCRjdXJyZW50X3N0ZXAsc3RhcnRpbmdfZGJzKV19IHsKLSAgICAgICAgICAgICAgIHNldCByZXN0b3JlX2NvbW1hbmQgInJlc3RvcmVEZXNpZ24gJHZhcnMoJGN1cnJlbnRfc3RlcCxzdGFydGluZ19kYnMpLmRhdCAkZGVzaWduXG4iCi0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgcHV0cyAiPEZGPiBTdGFydGluZyBEQlMgKCR2YXJzKCRjdXJyZW50X3N0ZXAsc3RhcnRpbmdfZGJzKSkgZGVmaW5lZCBidXQgZG9lcyBub3QgZXhpc3QiCi0gICAgICAgICAgICAgICBzZXQgcmVzdG9yZV9jb21tYW5kICJyZXN0b3JlRGVzaWduICR2YXJzKCRjdXJyZW50X3N0ZXAsc3RhcnRpbmdfZGJzKS5kYXQgJGRlc2lnblxuIgotICAgICAgICAgICAgICAgc2V0IHdhcm5pbmdzKCR2YXJzKHdhcm5pbmdfY291bnQpKSAiU3RhcnRpbmcgREJTICgkdmFycygkY3VycmVudF9zdGVwLHN0YXJ0aW5nX2RicykpIGRlZmluZWQgYnV0IGRvZXMgbm90IGV4aXN0IgotICAgICAgICAgICAgICAgaW5jciB2YXJzKHdhcm5pbmdfY291bnQpCi0gICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0gICAgICB9IGVsc2UgewotICAgICAgICAgIyBCQ0w6IEFkZGVkIHN1YnN0IGFyb3VuZCB2YXJzKGRic19kaXIpIHRvIHJlc29sdmUgdmFycyhydW5kaXIpCi0gICAgICAgICBzZXQgZGlyIFtzdWJzdCAkdmFycyhkYnNfZGlyKV0KLSAgICAgICAgICMgQWRkaW5nIHRoaXMgZm9yIFBWIC4uLgotICAgICAgICAgaWYgeyEkdmFycyhjb2RlZ2VuKX0gewotICAgICAgICAgICAgaWYge1tmaWxlIGV4aXN0cyAkZGlyLyRzdGVwLmVuY119IHsKLSAgICAgICAgICAgICAgICMgQkNMOiBDaGFuZ2VkICJEQlMiIHRvICRkaXIKLSAgICAgICAgICAgICAgIGlmIHshW2NhdGNoIHtzZXQgZm9vIFtnbG9iICRkaXIvJHN0ZXAuZW5jLmRhdC8qLmNvbmZdfV19IHsKLSAgICAgICAgICAgICAgICAgICMgQkNMOiBDaGFuZ2VkICJEQlMiIHRvICRkaXIKLSAgICAgICAgICAgICAgICAgIHJlZ3N1YiAiXFxcLmNvbmYiIFtnbG9iICRkaXIvJHN0ZXAuZW5jLmRhdC8qLmNvbmZdICIiIHRlbXAKLSAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAjIEJDTDogQ2hhbmdlZCAiREJTIiB0byAkZGlyCi0gICAgICAgICAgICAgICAgICBpZiB7IVtjYXRjaCB7c2V0IGZvbyBbZ2xvYiAkZGlyLyRzdGVwLmVuYy5kYXQvKi5nbG9iYWxzXX1dfSB7Ci0gICAgICAgICAgICAgICAgICAgICAjIEJDTDogQ2hhbmdlZCAiREJTIiB0byAkZGlyCi0gICAgICAgICAgICAgICAgICAgICByZWdzdWIgIlxcXC5nbG9iYWxzIiBbZ2xvYiAkZGlyLyRzdGVwLmVuYy5kYXQvKi5nbG9iYWxzXSAiIiB0ZW1wCi0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICBpZiB7JGRlc2lnbiAhPSBbZmlsZSB0YWlsICR0ZW1wXX0gewotICAgICAgICAgICAgICAgICAgc2V0IHZhcnMoZGVzaWduKSBbZmlsZSB0YWlsICR0ZW1wXQotICAgICAgICAgICAgICAgICAgUHV0cyAiPEZGPiBVcGRhdGluZyBkZXNpZ24gbmFtZSB0byAkZGVzaWduIgotICAgICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKHBhcnRpdGlvbl9saXN0KV19IHsKLSAgICAgICAgICAgICAgICAgICAgIGlmIHtbbHNlYXJjaCAkdmFycyhwYXJ0aXRpb25fbGlzdCkgW2ZpbGUgdGFpbCBbcHdkXV1dICE9IC0xfSB7Ci0gICAgICAgICAgICAgICAgICAgICBzZXQgZGVzaWduIFtmaWxlIHRhaWwgW3B3ZF1dCi0gICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgUHV0cyAiPEZGPiBTdGFydGluZyBEQlMgJGRpci8kc3RlcC5lbmMgZGVmaW5lZCBidXQgZG9lcyBub3QgZXhpc3QiCi0gICAgICAgICAgICAgICBleGl0IC0xCi0gICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0KLSAgICAgICAgICMgT2YgY291cnNlLCB0aGUgY29tbWFuZCB3aWxsIGRlcGVuZCBvbiB0aGUgZGF0YWJhc2UgZm9ybWF0IC4uLiBhbmQgdGhlIHZlcnNpb24KLSAgICAgICAgIGlmIHtbc3RyaW5nIGNvbXBhcmUgLW5vY2FzZSAkdmFycyhkYnNfZm9ybWF0KSAib2EiXT09MH0gewotICAgICAgICAgICAgaWYge1tsaW5kZXggW3NwbGl0ICR2YXJzKHZlcnNpb24pICIuIl0gIDBdID4gMTB9IHsKLSAgICAgICAgICAgICAgIGlmIHskaGllcn0gewotICAgICAgICAgICAgICAgICBzZXQgcmVzdG9yZV9jb21tYW5kICJyZXN0b3JlRGVzaWduIC1jZWxsdmlldyBcW2xpc3QgJHZhcnMob2FfcGFydGl0aW9uX2xpYikgJGRlc2lnbiAkc3RlcFxdXG4iCi0gICAgICAgICAgICAgICB9IGVsc2UgeyAKLSAgICAgICAgICAgICAgICAgc2V0IHJlc3RvcmVfY29tbWFuZCAicmVzdG9yZURlc2lnbiAtY2VsbHZpZXcgXFtsaXN0ICR2YXJzKG9hX2Rlc2lnbl9saWIpICRkZXNpZ24gJHN0ZXBcXVxuIgotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIHNldCByZXN0b3JlX2NvbW1hbmQgInJlc3RvcmVPYURlc2lnbiAkdmFycyhvYV9kZXNpZ25fbGliKSAkZGVzaWduICRzdGVwXG4iCi0gICAgICAgICAgICB9Ci0gICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgaWYgeyR2YXJzKHVzZXJfbW9kZSkgPT0gImhpZXIiICYmICgkdmFycyhoaWVyX2Zsb3dfdHlwZSkgPT0gIjJwYXNzIil9IHsKLSAgICAgICAgICAgICAgIGlmIHskdmFycyhzdGVwKSA9PSAiY3RzIiAmJiAkdmFycyhlbmFibGVfZmxleGlsbSl9IHsKLSAgICAgICAgICAgICAgICAgIGlmIHsoW2xzZWFyY2ggJHZhcnMocGFydGl0aW9uX2xpc3QpICR2YXJzKGRlc2lnbildICE9IC0xKX0gIHsKLSAgICAgICAgICAgICAgICAgICAgIHNldCByZXN0b3JlX2NvbW1hbmQgInJlc3RvcmVEZXNpZ24gJHtkZXNpZ259X3Bvc3RFQ08uZW5jLmRhdCAkZGVzaWduXG4iCi0gICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgc2V0IHJlc3RvcmVfY29tbWFuZCAicmVzdG9yZURlc2lnbiAuICRkZXNpZ25cbiIKLSAgICAgICAgICAgICAgICAgIH0gIAotICAgICAgICAgICAgICAgfSBlbHNlaWYgeyhbbHNlYXJjaCBbRkY6OmFkanVzdF9zdGVwc10gJHZhcnMoc3RlcCldID09IFtleHByIFtsc2VhcmNoIFtGRjo6YWRqdXN0X3N0ZXBzXSBjdHNdKzFdKSAmJiAhJHZhcnMoZW5hYmxlX2ZsZXhpbG0pfSB7Ci0gICAgICAgICAgICAgICAgICBzZXQgcmVzdG9yZV9jb21tYW5kICJyZXN0b3JlRGVzaWduIC4gJGRlc2lnblxuIgotICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgIHNldCByZXN0b3JlX2NvbW1hbmQgInJlc3RvcmVEZXNpZ24gJGRpci8kc3RlcC5lbmMuZGF0ICRkZXNpZ25cbiIKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBpZiB7JHZhcnMoc3RlcCkgIT0gInBhcnRpdGlvbl9wbGFjZSJ9IHsKLSAgICAgICAgICAgICAgICAgIHNldCByZXN0b3JlX2NvbW1hbmQgInJlc3RvcmVEZXNpZ24gJGRpci8kc3RlcC5lbmMuZGF0ICRkZXNpZ25cbiIKLSAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICBpZiB7JHZhcnModXNlX2ZsZXhtb2RlbHMpfSB7Ci0gICAgICAgICAgICAgICAgICAgIHNldCByZXN0b3JlX2NvbW1hbmQgInJlc3RvcmVEZXNpZ24gJGRpci8kc3RlcC5lbmMuZGF0ICRkZXNpZ25cbiIKLSAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgIHJldHVybiAiIgotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAgfQotICAgICAgfQotICAgICAgIyBQYXNzIHRoZSBjb21tYW5kIHRocm91Z2ggdGhlIHdyYXBwZXIgYW5kIHRoZW4gbWFrZSBpdCBjb25kaXRpb25hbCBzbyBpdCBjYW4gCi0gICAgICAjIGJlIGRpc2FibGVkIGluIGEgc2luZ2xlIHByb2Nlc3MgZmxvdwotICAgICAgc2V0IHJlc3RvcmVfY29tbWFuZCBbRkY6OndyYXBfY29tbWFuZCAkY3VycmVudF9zdGVwLHJlc3RvcmVfZGVzaWduICRyZXN0b3JlX2NvbW1hbmRdCi0gICAgICBzZXQgY29uZF9yZXN0b3JlX2NvbW1hbmQgImlmIHtcJHZhcnMocmVzdG9yZV9kZXNpZ24pfSB7ICRyZXN0b3JlX2NvbW1hbmQgfSIKLQotICAgICAgaWYgeyEkZm9ybWF0fSB7Ci0gICAgICAgICBpZiB7JHZhcnMoY29kZWdlbil9IHsKLSAgICAgICAgICAgIHJldHVybiAkY29uZF9yZXN0b3JlX2NvbW1hbmQKLSAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgZXZhbCAkY29uZF9yZXN0b3JlX2NvbW1hbmQKLSAgICAgICAgIH0KLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgICBpZiB7JHZhcnMoY2F0Y2hfZXJyb3JzKX0gewotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJcbmlmIHtcJHZhcnMocmVzdG9yZV9kZXNpZ24pfSB7XG4iCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiAgIGlmIHtcW2NhdGNoIHtcbiRyZXN0b3JlX2NvbW1hbmR9XF19IHtcbiIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiICAgICAgUHV0cyBcIjxGRj4gRVJST1IgTE9BRElORyBEQVRBQkFTRSBGUk9NIFNURVAgJHN0ZXAgLi4uIEVYSVRJTkdcIlxuIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIgICAgICBleGl0IC0xXG4iCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiAgIH1cbiIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAifVxuIgotICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiXG5pZiB7XCR2YXJzKHJlc3RvcmVfZGVzaWduKX0geyBbc3RyaW5nIHRyaW0gJHJlc3RvcmVfY29tbWFuZF0gfVxuIgotICAgICAgICAgfQotCi0gICAgICAgICBpZiB7JHZhcnMoY2FwdHVyZV9tZXRyaWNzKX0gewotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJcbnVtOjplbmFibGVfbWV0cmljcyAtb25cbiIKLSMgICAgICAgICAgICBpZiB7IVtpbmZvIGV4aXN0cyB2YXJzKHB1c2hlZCldIHx8IChbaW5mbyBleGlzdHMgdmFycyhwdXNoZWQpXSAmJiAhJHZhcnMocHVzaGVkKSkgfSB7Ci0jICAgICAgICAgICAgICAgIyBHRzEgCi0jICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJ1bTo6cHVzaF9zbmFwc2hvdF9zdGFja1xuIgotIyAgICAgICAgICAgICAgIHNldCB2YXJzKHB1c2hlZCkgdHJ1ZQotIyAgICAgICAgICAgIH0KLSAgICAgICAgIH0KLQotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6c291cmNlX3BsdWcgYWx3YXlzX3NvdXJjZV90Y2xdCi0KLSAgICAgICAgIGlmIHskdmFycyhjb2RlZ2VuKX0gewotICAgICAgICAgICAgcmV0dXJuICRjb21tYW5kcwotICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICB1cGxldmVsICMwIGV2YWwgJGNvbW1hbmRzCi0gICAgICAgICB9Ci0gICAgICB9Ci0gICB9Ci0KLSAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICMgU2V0dXAgcHJvY2VkdXJlIGZvciBydW4qIHN0ZXBzCi0gICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0KLSAgIHByb2MgaW5pdGlhbGl6ZV9zdGVwIHtzdGVwfSB7Ci0KLSAgICAgIGdsb2JhbCB2YXJzCi0gICAgICBnbG9iYWwgZW52Ci0gICAgICBnbG9iYWwgZXJyb3JzCi0gICAgICBnbG9iYWwgd2FybmluZ3MKLQotICAgICAgaWYgeyFbaW5mbyBleGlzdHMgc3RlcF19IHsKLSAgICAgICAgIHNldCBzdGVwICR2YXJzKHN0ZXApCi0gICAgICB9Ci0KLSAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkc3RlcCxycHRfZGlyKV19IHsKLSAgICAgICAgIHNldCB2YXJzKHJwdF9kaXIpICR2YXJzKCRzdGVwLHJwdF9kaXIpCi0gICAgICAgICBmaWxlIG1rZGlyICR2YXJzKCRzdGVwLHJwdF9kaXIpCi0gICAgICB9IGVsc2UgewotICAgICAgICAgc2V0IHZhcnMocnB0X2RpcikgJHZhcnMob3JpZ19ycHRfZGlyKQotICAgICAgfQotCi0gICAgICBzZXQgdmFycygkc3RlcCxjb21tYW5kcykgIiIKLQotICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycyh3YXJuaW5nX2NvdW50KV19IHsKLSAgICAgICAgIHNldCB2YXJzKHdhcm5pbmdfY291bnQpIDAKLSAgICAgIH0KLSAgICAgIGlmIHshW2luZm8gZXhpc3RzIHZhcnMoZXJyb3JfY291bnQpXX0gewotICAgICAgICAgc2V0IHZhcnMoZXJyb3JfY291bnQpIDAKLSAgICAgIH0KLQotICAgICAgc2V0IGNvbW1hbmRzICIiCi0gICAgICBpZiB7JHZhcnModmVyYm9zZSl9IHsKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiI1xuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjIFNURVAgJHN0ZXBcbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiI1xuIgotICAgICAgfQotCi0jICAgICAgaWYgeyR2YXJzKGVuYWJsZV9xb3JfY2hlY2spfSB7Ci0jICAgICAgICAgc2V0IHFvciBbY2F0Y2gge2V4ZWMgJGNoZWNrX3FvciAkZW52KFZQQVRIKS8kbGFzdF9zdGVwfSBtc2ddCi0jICAgICAgICAgaWYgeyRxb3J9IHsKLSMgICAgICAgICAgICBwdXRzICI8RkY+IEVSUk9SOiBRT1IgUkVTVUxUIENIRUNLIElORElDQVRFUyBBIFBST0JMRU0gSU4gU1RFUCAkbGFzdF9zdGVwIgotIyAgICAgICAgICAgIGV4aXQgLTExMQotIyAgICAgICAgIH0KLSMgICAgICB9Ci0gICAgICBzZXQgdXBkYXRlX3NldHVwIDAKLSAgICAgIHNldCB1cGRhdGVfaG9sZCAwCi0KLSAgICAgIHNldCBjb21tYW5kICIiCi0gICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJHN0ZXAsYWN0aXZlX3NldHVwX3ZpZXdzKV0gJiYgKFtsbGVuZ3RoICR2YXJzKCRzdGVwLGFjdGl2ZV9zZXR1cF92aWV3cyldPjApfSB7Ci0gICAgICAgICBhcHBlbmQgY29tbWFuZCAic2V0IHNldHVwX2FuYWx5c2lzX3ZpZXdzIFwiJHZhcnMoJHN0ZXAsYWN0aXZlX3NldHVwX3ZpZXdzKVwiXG4iCi0gICAgICAgICBzZXQgdXBkYXRlX3NldHVwIDEKLSAgICAgIH0KLSAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkc3RlcCxhY3RpdmVfaG9sZF92aWV3cyldICYmIChbbGxlbmd0aCAkdmFycygkc3RlcCxhY3RpdmVfaG9sZF92aWV3cyldPjApfSB7Ci0gICAgICAgICBhcHBlbmQgY29tbWFuZCAic2V0IGhvbGRfYW5hbHlzaXNfdmlld3MgXCIkdmFycygkc3RlcCxhY3RpdmVfaG9sZF92aWV3cylcIlxuIgotICAgICAgICAgc2V0IHVwZGF0ZV9ob2xkIDEKLSAgICAgIH0KLQotICAgICAgc2V0IGNvbW1lbnRzICIiCi0gICAgICBhcHBlbmQgY29tbWVudHMgIiMgVGhlIGFjdGl2ZSBhbmFseXNpcyB2aWV3cyBhcmUgY29udHJvbGxlZCBieSB0aGUgZm9sbG93aW5nIHZhcmlhYmxlczpcbiIgIAotICAgICAgYXBwZW5kIGNvbW1lbnRzICIjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4iCi0gICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKCRzdGVwLGFjdGl2ZV9zZXR1cF92aWV3cylcbiIKLSAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMoJHN0ZXAsYWN0aXZlX2hvbGRfdmlld3MpXG4iCi0gICAgICBhcHBlbmQgY29tbWVudHMgIiNcbiIKLSAgICAgIGFwcGVuZCBjb21tZW50cyAiIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjI1xuIgotICAgICAgaWYgeyR1cGRhdGVfc2V0dXAgfHwgJHVwZGF0ZV9ob2xkfSB7Ci0gICAgICAgICBpZiB7JHZhcnModmVyYm9zZSl9IHsKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiI1xuIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjIDxGRj4gVVBEQVRJTkcgQU5BTFlTSVMgVklFV1MgLi4uXG4iCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiNcbiIKLSAgICAgICAgIH0KLSAgICAgICAgIGlmIHshJHVwZGF0ZV9zZXR1cCAmJiAkdXBkYXRlX2hvbGR9IHsKLSMgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAic2V0X2FuYWx5c2lzX3ZpZXcgLXNldHVwIFxbYWxsX3NldHVwX2FuYWx5c2lzX3ZpZXdzXF0gLWhvbGQgXFtsaXN0IFwkaG9sZF9hbmFseXNpc192aWV3c1xdXG4iCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAic2V0X2FuYWx5c2lzX3ZpZXcgLXNldHVwIFxbYWxsX3NldHVwX2FuYWx5c2lzX3ZpZXdzXF0gLWhvbGQgXCRob2xkX2FuYWx5c2lzX3ZpZXdzXG4iCi0gICAgICAgICB9Ci0gICAgICAgICBpZiB7JHVwZGF0ZV9zZXR1cCAmJiAhJHVwZGF0ZV9ob2xkfSB7Ci0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAic2V0X2FuYWx5c2lzX3ZpZXcgLXNldHVwIFwkc2V0dXBfYW5hbHlzaXNfdmlld3MgLWhvbGQgXFthbGxfaG9sZF9hbmFseXNpc192aWV3c1xdXG4iCi0gICAgICAgICB9Ci0gICAgICAgICBpZiB7JHVwZGF0ZV9zZXR1cCAmJiAkdXBkYXRlX2hvbGR9IHsKLSMgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAic2V0X2FuYWx5c2lzX3ZpZXcgLXNldHVwIFxbbGlzdCBcJHNldHVwX2FuYWx5c2lzX3ZpZXdzXF0gLWhvbGQgXFtsaXN0IFwkaG9sZF9hbmFseXNpc192aWV3c1xdXG4iCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAic2V0X2FuYWx5c2lzX3ZpZXcgLXNldHVwIFwkc2V0dXBfYW5hbHlzaXNfdmlld3MgLWhvbGQgXCRob2xkX2FuYWx5c2lzX3ZpZXdzXG4iCi0gICAgICAgICB9Ci0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgJGNvbW1lbnRzCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiRjb21tYW5kXG4iCi0gICAgIH0gZWxzZSB7Ci0gICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgc2V0X2FuYWx5c2lzX3ZpZXcgLXNldHVwIFwkdmFycygkc3RlcCxhY3RpdmVfc2V0dXBfdmlld3MpIC1ob2xkIFwkdmFycygkc3RlcCxhY3RpdmVfaG9sZF92aWV3cylcbiIKLSAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiI1xuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICRjb21tZW50cwotICAgICB9Ci0KLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICMgQ2hlY2sgaWYgaW4gdG9wIGxldmVsIHBhcnRpdGlvbiAoaWxtKSBmbG93Ci0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0KLSAgICAgIEZGX0VESTo6Y2hlY2tfZmxvdwotCi0jICAgICAgaWYgeyR2YXJzKHJlcG9ydF9ydW5fdGltZSl9IHsKLSMgICAgICAgICBhcHBlbmQgY29tbWFuZHMgInNldCB2YXJzKCRzdGVwLHN0YXJ0X3RpbWUpIFxbY2xvY2sgc2Vjb25kc1xdXG4iCi0jICAgICAgfQotCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAjIExvYWQgdGhlIHJlY29tbWVuZGVkIGNvbW1hbmQgbW9kZSBzZXR0aW5ncyBmb3Igc3RlcAotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCi0jICAgICAgYXBwZW5kIGNvbW1hbmRzICIjXG4iCi0jICAgICAgYXBwZW5kIGNvbW1hbmRzICIjIERFRklOSU5HIE1PREUgU0VUVElOR1NcbiIKLSMgICAgICBhcHBlbmQgY29tbWFuZHMgIiNcbiIKLQotICAgICAgc2V0IGNvbW1lbnRzICIiCi0gICAgICBzZXQgdWNvbW1lbnRzICIiCi0KLSAgICAgIHN3aXRjaCAkc3RlcCB7Ci0KLSAgICAgICAgICJwbGFjZSIgewotICAgICAgICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgICAgICAgIyBTZXQgcGxhY2VtZW50IG9wdGlvbnMgLi4uCi0gICAgICAgICAgICAjIC0gU2V0IG9wdGltaXphdGlvbiBvcHRpb25zIGlmIGluUGxhY2VPcHQgaXMgZW5hYmxlZAotICAgICAgICAgICAgIyAtIExvYWQgdGhlIENUUyBzcGVjIGZvciBjbG9jayBnYXRlIGF3YXJlIHBsYWNlbWVudAotICAgICAgICAgICAgIyAtIFBsYWNlIEpUQUcgY2VsbHMgaWYgcmVxdWVzdGVkCi0gICAgICAgICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0KLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbbGluZGV4IFtGRl9FREk6OnNldF9kZXNpZ25fbW9kZV0gMF0KLSAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyBbbGluZGV4IFtGRl9FREk6OnNldF9kZXNpZ25fbW9kZV0gMV0KLSAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgW2xpbmRleCBbRkZfRURJOjpzZXRfZGVzaWduX21vZGVdIDJdCi0KLSAgICAgICAgICAgIHNldCBhcmdzICIiCi0gICAgICAgICAgICBpZiB7JHZhcnMoZmxvdykgPT0gIm1tbWMifSB7Ci0gICAgICAgICAgICAgICBpZiB7KCR2YXJzKGVuYWJsZV9vY3YpID09ICJwcmVfcGxhY2UiKSB8fCAoKCR2YXJzKGVuYWJsZV9vY3YpID09ICJwcmVfcHJlY3RzIikgJiYgKCR2YXJzKHBsYWNlX29wdF9kZXNpZ24pIHx8ICR2YXJzKHByZXJvdXRlX29wdF9kZXNpZ24pKSl9IHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMoZW5hYmxlX29jdilcbiIKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBhcmdzICItYW5hbHlzaXNUeXBlIG9uQ2hpcFZhcmlhdGlvbiAiCi0gICAgICAgICAgICAgICAgICBpZiB7JHZhcnMoZW5hYmxlX2FvY3YpfSB7Ci0gICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKGVuYWJsZV9hb2N2KVxuIgotICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGFyZ3MgIi1hb2N2IHRydWUgIgotICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKGVuYWJsZV9hb2N2KVxuIgotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgaWYgeyR2YXJzKGVuYWJsZV9zb2N2KX0gewotICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhlbmFibGVfc29jdilcbiIKLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBhcmdzICItc29jdiB0cnVlICIKLSAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhlbmFibGVfc29jdilcbiIKLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhlbmFibGVfb2N2KSBcIiR2YXJzKGVuYWJsZV9vY3YpXCJcbiIKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKGVuYWJsZV9hb2N2KSBcInRydWVcIlxuIgotICAgICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMoZW5hYmxlX3NvY3YpIFwidHJ1ZVwiXG4iCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiB7JGFyZ3MgIT0gIiJ9IHsKLSAgICAgICAgICAgICAgIHNldCBjb21tYW5kICJzZXRBbmFseXNpc01vZGUgJGFyZ3NcbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCBwcmVjdHMsc2V0X2FuYWx5c2lzX21vZGUgJGNvbW1hbmRdCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiB7JHZhcnMoZW5hYmxlX3NzKSA9PSAicHJlX3BsYWNlIn0gewotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhlbmFibGVfc3MpXG4iCi0gICAgICAgICAgICAgICBzZXQgY29tbWFuZCAic2V0RGVsYXlDYWxNb2RlIC1lbmdpbmUgc2lnbmFsU3Rvcm1cbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCBwbGFjZSxzZXRfZGVsYXlfY2FsX21vZGUgJGNvbW1hbmRdCi0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMoZW5hYmxlX3NzKSBcInByZV9wbGFjZVwiXG4iCi0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIHNldCBhcmdzICIiCi0gICAgICAgICAgICBpZiB7IVtjYXRjaCB7c2V0IGFyZyAkdmFycyhjb25nZXN0aW9uX2VmZm9ydCl9XX0gewotICAgICAgICAgICAgICAgYXBwZW5kIGFyZ3MgIiAtcGxhY2VfZ2xvYmFsX2NvbmdfZWZmb3J0ICRhcmciCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKGNvbmdlc3Rpb25fZWZmb3J0KVxuIgotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKGNvbmdlc3Rpb25fZWZmb3J0KSBcImF1dG8gbG93IG1lZGl1bSBoaWdoXCJcbiIKLSAgICAgICAgICAgIH0KLSMgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoY2xvY2tfZ2F0ZV9hd2FyZSldICYmICAkdmFycyhjbG9ja19nYXRlX2F3YXJlKX0gewotIyAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMoY2xvY2tfZ2F0ZV9hd2FyZSlcbiIKLSMgICAgICAgICAgICAgICBhcHBlbmQgYXJncyAiIC1wbGFjZV9nbG9iYWxfY2xvY2tfZ2F0ZV9hd2FyZSB0cnVlIgotIyAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIHshW2NhdGNoIHtzZXQgYXJnICR2YXJzKGNsb2NrX2dhdGVfYXdhcmUpfV19IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMoY2xvY2tfZ2F0ZV9hd2FyZSlcbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBhcmdzICIgLXBsYWNlX2dsb2JhbF9jbG9ja19nYXRlX2F3YXJlICRhcmciCi0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMoY2xvY2tfZ2F0ZV9hd2FyZSkgXCJ0cnVlXCJcbiIKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIHshW2NhdGNoIHtzZXQgYXJnICR2YXJzKHBsYWNlX2lvX3BpbnMpfV19IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMocGxhY2VfaW9fcGlucylcbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBhcmdzICIgLXBsYWNlX2dsb2JhbF9wbGFjZV9pb19waW5zICRhcmciCi0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMocGxhY2VfaW9fcGlucykgXCJ0cnVlXCJcbiIKLSAgICAgICAgICAgIH0KLSMgICAgICAgICAgICBzZXQgcHJvY2VzcyBbcmVnc3ViICJubSIgJHZhcnMocHJvY2VzcykgIiJdCi0jICAgICAgICAgICAgaWYge1tleHByICRwcm9jZXNzIDwgMjhdICYmIFtpbmZvIGV4aXN0cyB2YXJzKGZpbGxlcl9jZWxscyxtaW5fZ2FwKV19IHsKLSMgICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKGZpbGxlcl9jZWxscyxtaW5fZ2FwKVxuIgotIyAgICAgICAgICAgICAgIGFwcGVuZCBhcmdzICIgLWZpbGxlckdhcE1pbkdhcCAkdmFycyhmaWxsZXJfY2VsbHMsbWluX2dhcCkgLWZpbGxlckdhcEVmZm9ydCBoaWdoXG4iCi0jICAgICAgICAgICAgfSBlbHNlIHsKLSMgICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhmaWxsZXJfY2VsbHMsbWluX2dhcCkgXCI8bWljcm9ucz5cIlxuIgotIyAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKGZpbGxlcl9jZWxscyxnYXBfZWZmb3J0KSBcIjxsb3cgbWVkaXVtIGhpZ2g+IFwiXG4iCi0jICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBpZiB7JGFyZ3MgIT0gIiJ9IHsKLSAgICAgICAgICAgICAgIHNldCBjb21tYW5kICJzZXRQbGFjZU1vZGUgJGFyZ3NcbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCBwbGFjZSxzZXRfcGxhY2VfbW9kZSAkY29tbWFuZF0KLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgc2V0IGFyZ3MgIiIKLSMgICAgICAgICAgICBpZiB7IVtjYXRjaCB7c2V0IGFyZyAkdmFycyhzaXplX29ubHlfZmlsZSl9XX0gewotIyAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMoc2l6ZV9vbmx5X2ZpbGUpXG4iCi0jICAgICAgICAgICAgICAgYXBwZW5kIGFyZ3MgIiAtc2l6ZU9ubHlGaWxlICRhcmciCi0jICAgICAgICAgICAgfSBlbHNlIHsKLSMgICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhzaXplX29ubHlfZmlsZSkgXCI8ZmlsZT5cIlxuIgotIyAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIHsoW2luZm8gZXhpc3RzIHZhcnMoaW5fcGxhY2Vfb3B0KV0gJiYgJHZhcnMoaW5fcGxhY2Vfb3B0KSkgfHwgJHZhcnMocGxhY2Vfb3B0X2Rlc2lnbil9IHsKLSAgICAgICAgICAgICAgIGlmIHshW2NhdGNoIHtzZXQgYXJnICR2YXJzKHNpemVfb25seV9maWxlKX1dfSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKHNpemVfb25seV9maWxlKVxuIgotICAgICAgICAgICAgICAgICAgYXBwZW5kIGFyZ3MgIiAtc2l6ZU9ubHlGaWxlICRhcmciCi0gICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMoc2l6ZV9vbmx5X2ZpbGUpIFwiPGZpbGU+XCJcbiIKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMoaW5fcGxhY2Vfb3B0KVxuIgotIyAgICAgICAgICAgICAgIHNldCBhcmdzICIiCi0gICAgICAgICAgICAgICBpZiB7W2xpbmRleCBbc3BsaXQgJHZhcnModmVyc2lvbikgIi4iXSAgMF0gPCAxN30gewotICAgICAgICAgICAgICAgICAgaWYgeyFbY2F0Y2gge3NldCBhcmcgJHZhcnMocHJlc2VydmVfYXNzZXJ0aW9ucyl9XX0gewotICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhwcmVzZXJ2ZV9hc3NlcnRpb25zKVxuIgotICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGFyZ3MgIiAtcHJlc2VydmVBc3NlcnRpb25zICRhcmciCi0gICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMocHJlc2VydmVfYXNzZXJ0aW9ucykgXCJ0cnVlXCJcbiIKLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIGlmIHshW2NhdGNoIHtzZXQgYXJnICR2YXJzKGxlYWthZ2VfcG93ZXJfZWZmb3J0KX1dfSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKGxlYWthZ2VfcG93ZXJfZWZmb3J0KVxuIgotICAgICAgICAgICAgICAgICAgYXBwZW5kIGFyZ3MgIiAtbGVha2FnZVBvd2VyRWZmb3J0ICRhcmciCi0gICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMobGVha2FnZV9wb3dlcl9lZmZvcnQpIFwibG93IG9yIGhpZ2hcIlxuIgotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgaWYgeyFbY2F0Y2gge3NldCBhcmcgJHZhcnMoZHluYW1pY19wb3dlcl9lZmZvcnQpfV19IHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMoZHluYW1pY19wb3dlcl9lZmZvcnQpXG4iCi0gICAgICAgICAgICAgICAgICBhcHBlbmQgYXJncyAiIC1keW5hbWljUG93ZXJFZmZvcnQgJGFyZyIKLSAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhkeW5hbWljX3Bvd2VyX2VmZm9ydCkgXCJsb3cgb3IgaGlnaFwiXG4iCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICBpZiB7IVtjYXRjaCB7c2V0IGFyZyAkdmFycyhjbG9ja19nYXRlX2F3YXJlX29wdCl9XX0gewotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhjbG9ja19nYXRlX2F3YXJlX29wdClcbiIKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBhcmdzICIgLWNsa0dhdGVBd2FyZSAkYXJnIgotICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKGNsb2NrX2dhdGVfYXdhcmVfb3B0KSBcInRydWVcIlxuIgotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgaWYgeyFbY2F0Y2gge3NldCBhcmcgJHZhcnMoY3JpdGljYWxfcmFuZ2UpfV19IHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMoY3JpdGljYWxfcmFuZ2UpXG4iCi0gICAgICAgICAgICAgICAgICBhcHBlbmQgYXJncyAiIC1jcml0aWNhbFJhbmdlICRhcmciCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoYWxsX2VuZF9wb2ludHMpXSAmJiAkdmFycyhhbGxfZW5kX3BvaW50cyl9IHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMoYWxsX2VuZF9wb2ludHMpXG4iCi0gICAgICAgICAgICAgICAgICBhcHBlbmQgYXJncyAiIC1hbGxFbmRQb2ludHMgdHJ1ZSIKLSAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhhbGxfZW5kX3BvaW50cykgXCJ0cnVlXCJcbiIKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIGlmIHshW2NhdGNoIHtzZXQgYXJnICR2YXJzKGZpeF9mYW5vdXRfbG9hZCl9XX0gewotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhmaXhfZmFub3V0X2xvYWQpXG4iCi0gICAgICAgICAgICAgICAgICBhcHBlbmQgYXJncyAiIC1maXhGYW5vdXRMb2FkICRhcmciCi0gICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMoZml4X2Zhbm91dF9sb2FkKSBcIjxmaWxlPlwiXG4iCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgIGlmIHshW2NhdGNoIHtzZXQgYXJnICR2YXJzKHVzZWZ1bF9za2V3KX1dfSB7Ci0gICAgICAgICAgICAgICAgIGlmIHskdmFycyhjY29wdF9lZmZvcnQpID09ICJsb3cifSB7IAotICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyh1c2VmdWxfc2tldylcbiIKLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBhcmdzICIgLXVzZWZ1bFNrZXcgJGFyZyIKLSAgICAgICAgICAgICAgICAgICAgIGlmIHskdmFycyh1c2VmdWxfc2tldykgJiYgIVtjYXRjaCB7c2V0IGFyZyAkdmFycyhza2V3X2J1ZmZlcnMpfV19IHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMoc2tld19idWZmZXJzKVxuIgotICAgICAgICAgICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgInNldFVzZWZ1bFNrZXdNb2RlIC1kZWxheVByZUNUUyB0cnVlIC11c2VDZWxscyBcW2xpc3QgJGFyZ1xdXG4iCi0gICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgcHJlY3RzLHNldF91c2VmdWxfc2tld19tb2RlICRjb21tYW5kXQotICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyA8RkY+IFZhcmlhYmxlIHZhcnModXNlZnVsX3NrZXcpIGlnbm9yZWQgd2hlbiB2YXJzKGNjb3B0X2VmZm9ydCkgaXMgJHZhcnMoY2NvcHRfZWZmb3J0KVxuIgotICAgICAgICAgICAgICAgICAgICAgc2V0IHdhcm5pbmdzKCR2YXJzKHdhcm5pbmdfY291bnQpKSAiVmFyaWFibGUgdmFycyh1c2VmdWxfc2tldykgaWdub3JlZCB3aGVuIHZhcnMoY2NvcHRfZWZmb3J0KSBpcyAkdmFycyhjY29wdF9lZmZvcnQpXG4iCi0gICAgICAgICAgICAgICAgICAgICBpbmNyIHZhcnMod2FybmluZ19jb3VudCkKLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnModXNlZnVsX3NrZXcpIFwidHJ1ZVwiXG4iCi0gICAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKHNrZXdfYnVmZmVycykgXCI8bGlzdCBvZiBidWZmZXJzPlwiXG4iCi0gICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIHskYXJncyAhPSAiIn0gewotICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgInNldE9wdE1vZGUgJGFyZ3NcbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCBwbGFjZSxzZXRfb3B0X21vZGUgJGNvbW1hbmRdCi0gICAgICAgICAgICB9Ci0KLSMgICAgICAgICAgICBzZXQgY29tbWFuZCBbRkZfRURJOjphZGRfdGllX2NlbGxzIHRydWUgZmFsc2VdCi0jICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kIHBsYWNlLGFkZF90aWVfY2VsbHMgJGNvbW1hbmRdCi0KLSAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhjdHNfc3BlYyldfSB7Ci0gICAgICAgICAgICAgICBzZXQgY29tbWFuZCAiY2xlYW51cFNwZWNpZnlDbG9ja1RyZWVcbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCBwbGFjZSxjbGVhbnVwX3NwZWNpZnlfY2xvY2tfdHJlZSAkY29tbWFuZF0KLSAgICAgICAgICAgICAgIHNldCBjb21tYW5kICIiCi0gICAgICAgICAgICAgICBmb3JlYWNoIHNwZWMgJHZhcnMoY3RzX3NwZWMpIHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJzcGVjaWZ5Q2xvY2tUcmVlIC1maWxlICRzcGVjXG4iCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgcGxhY2Usc3BlY2lmeV9jbG9ja190cmVlICRjb21tYW5kXQotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoanRhZ19jZWxscyldICYmCi0gICAgICAgICAgICAgICAgW2luZm8gZXhpc3RzIHZhcnMoanRhZ19yb3dzKV19IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMoanRhZ19jZWxscyksIHZhcnMoanRhZ19yb3dzKVxuIgotIyAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyBQTEFDSU5HIEpUQUcgQ0VMTFNcbiIKLSAgICAgICAgICAgICAgIHNldCBjb21tYW5kICIiCi0gICAgICAgICAgICAgICBmb3JlYWNoIGluc3QgJHZhcnMoanRhZ19jZWxscykgewotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgInNwZWNpZnlKdGFnIC1pbnN0ICRpbnN0XG4iCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgcGxhY2Usc3BlY2lmeV9qdGFnICRjb21tYW5kXQotICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgInBsYWNlSnRhZyAtbnJSb3cgJHZhcnMoanRhZ19yb3dzKVxuIgotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kIHBsYWNlLHBsYWNlX2p0YWcgJGNvbW1hbmRdCi0gICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0KLSAgICAgICAgICJwcmVjdHMiIHsKLSAgICAgICAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICAgICAgICMgU2V0IG9wdGltaXphdGlvbiBvcHRpb25zIC4uLgotICAgICAgICAgICAgIyBFbmFibGUgc2lnbmFsU3Rvcm0gaWYgcmVxdWVzdGVkIChyZXF1aXJlZCBmb3IgRUNTTS9DQ1MgZmxvd3MpCi0gICAgICAgICAgICAjIEZvciBsb3cgcG93ZXIgZmxvd3MsIG1ha2Ugc3VyZSBhbHdheXMtb24gYnVmZmVycyBhcmUgZW5hYmxlZAotICAgICAgICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW2xpbmRleCBbRkZfRURJOjpzZXRfZGVzaWduX21vZGVdIDBdCi0gICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgW2xpbmRleCBbRkZfRURJOjpzZXRfZGVzaWduX21vZGVdIDFdCi0gICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzIFtsaW5kZXggW0ZGX0VESTo6c2V0X2Rlc2lnbl9tb2RlXSAyXQotCi0gICAgICAgICAgICBzZXQgYXJncyAiIiAKLSAgICAgICAgICAgIGlmIHskdmFycyhmbG93KSA9PSAibW1tYyJ9IHsKLSAgICAgICAgICAgICAgIGlmIHskdmFycyhlbmFibGVfb2N2KSA9PSAicHJlX3ByZWN0cyJ9IHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMoZW5hYmxlX29jdilcbiIKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBhcmdzICItYW5hbHlzaXNUeXBlIG9uQ2hpcFZhcmlhdGlvbiAiCi0gICAgICAgICAgICAgICAgICBpZiB7JHZhcnMoZW5hYmxlX2FvY3YpfSB7Ci0gICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKGVuYWJsZV9hb2N2KVxuIgotICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGFyZ3MgIi1hb2N2IHRydWUgIgotICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKGVuYWJsZV9hb2N2KVxuIgotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgaWYgeyR2YXJzKGVuYWJsZV9zb2N2KX0gewotICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhlbmFibGVfc29jdilcbiIKLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBhcmdzICItc29jdiB0cnVlICIKLSAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhlbmFibGVfc29jdilcbiIKLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhlbmFibGVfb2N2KSBcInByZV9wcmVjdHNcIlxuIgotICAgICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMoZW5hYmxlX2FvY3YpIFwidHJ1ZVwiXG4iCi0gICAgICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhlbmFibGVfc29jdikgXCJ0cnVlXCJcbiIKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIHskYXJncyAhPSAiIn0gewotICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgInNldEFuYWx5c2lzTW9kZSAkYXJnc1xuIgotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kIHByZWN0cyxzZXRfYW5hbHlzaXNfbW9kZSAkY29tbWFuZF0KLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhjbG9ja19nYXRlX2Nsb25lKV0gJiYgJHZhcnMoY2xvY2tfZ2F0ZV9jbG9uZSl9IHsKLSAgICAgICAgICAgICAgIGlmIHsoW2luZm8gZXhpc3RzIHZhcnMocGFydGl0aW9uX2xpc3QpXSl9IHsKLSAgICAgICAgICAgICAgICAgIGlmIHtbZmlsZSB0YWlsIFtmaWxlIGRpcm5hbWUgW3B3ZF1dXSA9PSAiJHZhcnMocGFydGl0aW9uX2RpcikifSB7Ci0gICAgICAgICAgICAgICAgICAgICBzZXQgcHRuIFtmaWxlIHRhaWwgW3B3ZF1dCi0gICAgICAgICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJHB0bixjdHNfc3BlYyldfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBzZXQgdmFycyhjdHNfc3BlYykgJHZhcnMoJHB0bixjdHNfc3BlYykKLSAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIH0KLSAgICAgIAotICAgICAgICAgICAgICAgc2V0IHNjb21tYW5kICIiCi0gICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoY3RzX3NwZWMpXX0gewotICAgICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgImNsZWFudXBTcGVjaWZ5Q2xvY2tUcmVlXG4iCi0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgcHJlY3RzLGNsZWFudXBfc3BlY2lmeV9jbG9ja190cmVlICRjb21tYW5kXQotICAgICAgICAgICAgICAgICAgZm9yZWFjaCBzcGVjICR2YXJzKGN0c19zcGVjKSB7Ci0gICAgICAgICAgICAgICAgICAgICBhcHBlbmQgc2NvbW1hbmQgInNwZWNpZnlDbG9ja1RyZWUgLWZpbGUgJHNwZWNcbiIKLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICBzZXQgY29tbWFuZCAiY3JlYXRlQ2xvY2tUcmVlU3BlY1xuIgotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kIHByZWN0cyxjcmVhdGVfY2xvY2tfdHJlZV9zcGVjICRjb21tYW5kXQotICAgICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGN0c19jZWxscyldfSB7Ci0gICAgICAgICAgICAgICAgICAgIGFwcGVuZCBzY29tbWFuZCAic3BlY2lmeUNsb2NrVHJlZSAtdXBkYXRlIFwiQXV0b0NUU1Jvb3RQaW4gKiBCdWZmZXIgJHZhcnMoY3RzX2NlbGxzKVwiXG4iCi0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMocm91dGVfY2xvY2tfbmV0cyldICYmICR2YXJzKHJvdXRlX2Nsb2NrX25ldHMpfSB7Ci0gICAgICAgICAgICAgICAgIGFwcGVuZCBzY29tbWFuZCAic3BlY2lmeUNsb2NrVHJlZSAtdXBkYXRlIFwiQXV0b0NUU1Jvb3RQaW4gKiBSb3V0ZUNsa05ldCBZRVNcIlxuIgotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgaWYgeyEkdmFycyhpbG0pfSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgcHJlY3RzLHNwZWNpZnlfY2xvY2tfdHJlZSAkc2NvbW1hbmRdCi0gICAgICAgICAgICAgICB9Ci0jICAgICAgICAgICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycyhjdHNfc3BlYyldfSB7Ci0jICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJjbG9ja0Rlc2lnbiAtZ2VuU3BlY09ubHkgXFtwaWRcXS5jdHN0Y2hcbiIKLSMgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgInNwZWNpZnlDbG9ja1RyZWUgLWZpbGUgXFtwaWRcXS5jdHN0Y2hcbiIKLSMgICAgICAgICAgICAgICB9IGVsc2UgewotIyAgICAgICAgICAgICAgICAgIGZvcmVhY2ggc3BlYyAkdmFycyhjdHNfc3BlYykgewotIyAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAic3BlY2lmeUNsb2NrVHJlZSAtZmlsZSAkc3BlY1xuIgotIyAgICAgICAgICAgICAgICAgIH0KLSMgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIHNldCBhcmdzICIiCi0gICAgICAgICAgICBpZiB7W2xpbmRleCBbc3BsaXQgJHZhcnModmVyc2lvbikgIi4iXSAgMF0gPCAxN30gewotICAgICAgICAgICAgICAgaWYgeyFbY2F0Y2gge3NldCBhcmcgJHZhcnMocHJlc2VydmVfYXNzZXJ0aW9ucyl9XX0gewotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhwcmVzZXJ2ZV9hc3NlcnRpb25zKVxuIgotICAgICAgICAgICAgICAgICAgYXBwZW5kIGFyZ3MgIiAtcHJlc2VydmVBc3NlcnRpb25zICRhcmciCi0gICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMocHJlc2VydmVfYXNzZXJ0aW9ucykgXCJ0cnVlXCJcbiIKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIHshW2NhdGNoIHtzZXQgYXJnICR2YXJzKGxlYWthZ2VfcG93ZXJfZWZmb3J0KX1dfSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKGxlYWthZ2VfcG93ZXJfZWZmb3J0KVxuIgotICAgICAgICAgICAgICAgYXBwZW5kIGFyZ3MgIiAtbGVha2FnZVBvd2VyRWZmb3J0ICRhcmciCi0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMobGVha2FnZV9wb3dlcl9lZmZvcnQpIFwibG93IG9yIGhpZ2hcIlxuIgotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgeyFbY2F0Y2gge3NldCBhcmcgJHZhcnMoZHluYW1pY19wb3dlcl9lZmZvcnQpfV19IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMoZHluYW1pY19wb3dlcl9lZmZvcnQpXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgYXJncyAiIC1keW5hbWljUG93ZXJFZmZvcnQgJGFyZyIKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhkeW5hbWljX3Bvd2VyX2VmZm9ydCkgXCJsb3cgb3IgaGlnaFwiXG4iCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiB7IVtjYXRjaCB7c2V0IGFyZyAkdmFycyhjbG9ja19nYXRlX2F3YXJlX29wdCl9XX0gewotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhjbG9ja19nYXRlX2F3YXJlX29wdClcbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBhcmdzICIgLWNsa0dhdGVBd2FyZSAkYXJnIgotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKGNsb2NrX2dhdGVfYXdhcmVfb3B0KSBcInRydWVcIlxuIgotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgeyFbY2F0Y2gge3NldCBhcmcgJHZhcnMoY3JpdGljYWxfcmFuZ2UpfV19IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMoY3JpdGljYWxfcmFuZ2UpXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgYXJncyAiIC1jcml0aWNhbFJhbmdlICRhcmciCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoYWxsX2VuZF9wb2ludHMpXSAmJiAkdmFycyhhbGxfZW5kX3BvaW50cyl9IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMoYWxsX2VuZF9wb2ludHMpXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgYXJncyAiIC1hbGxFbmRQb2ludHMgdHJ1ZSIKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhhbGxfZW5kX3BvaW50cykgXCJ0cnVlXCJcbiIKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIHshW2NhdGNoIHtzZXQgYXJnICR2YXJzKHNpemVfb25seV9maWxlKX1dfSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKHNpemVfb25seV9maWxlKVxuIgotICAgICAgICAgICAgICAgYXBwZW5kIGFyZ3MgIiAtc2l6ZU9ubHlGaWxlICRhcmciCi0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMoc2l6ZV9vbmx5X2ZpbGUpIFwiPGZpbGU+XCJcbiIKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIHshW2NhdGNoIHtzZXQgYXJnICR2YXJzKGZpeF9mYW5vdXRfbG9hZCl9XX0gewotICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKGZpeF9mYW5vdXRfbG9hZClcbiIKLSAgICAgICAgICAgICAgYXBwZW5kIGFyZ3MgIiAtZml4RmFub3V0TG9hZCAkYXJnIgotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMoZml4X2Zhbm91dF9sb2FkKSBcIjxmaWxlPlwiXG4iCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiB7IVtjYXRjaCB7c2V0IGFyZyAkdmFycyh1c2VmdWxfc2tldyl9XX0gewotICAgICAgICAgICAgICAgaWYgeyR2YXJzKGNjb3B0X2VmZm9ydCkgPT0gImxvdyJ9IHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnModXNlZnVsX3NrZXcpXG4iCi0gICAgICAgICAgICAgICAgICBhcHBlbmQgYXJncyAiIC11c2VmdWxTa2V3ICRhcmciCi0gICAgICAgICAgICAgICAgICBpZiB7JHZhcnModXNlZnVsX3NrZXcpICYmICFbY2F0Y2gge3NldCBhcmcgJHZhcnMoc2tld19idWZmZXJzKX1dfSB7Ci0gICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKHNrZXdfYnVmZmVycylcbiIKLSAgICAgICAgICAgICAgICAgICAgIHNldCBjb21tYW5kICJzZXRVc2VmdWxTa2V3TW9kZSAtZGVsYXlQcmVDVFMgdHJ1ZSAtdXNlQ2VsbHMgXFtsaXN0ICRhcmdcXVxuIgotICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kIHByZWN0cyxzZXRfdXNlZnVsX3NrZXdfbW9kZSAkY29tbWFuZF0KLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgPEZGPiBWYXJpYWJsZSB2YXJzKHVzZWZ1bF9za2V3KSBpZ25vcmVkIHdoZW4gdmFycyhjY29wdF9lZmZvcnQpIGlzICR2YXJzKGNjb3B0X2VmZm9ydClcbiIKLSAgICAgICAgICAgICAgICAgIHNldCB3YXJuaW5ncygkdmFycyh3YXJuaW5nX2NvdW50KSkgIlZhcmlhYmxlIHZhcnModXNlZnVsX3NrZXcpIGlnbm9yZWQgd2hlbiB2YXJzKGNjb3B0X2VmZm9ydCkgaXMgJHZhcnMoY2NvcHRfZWZmb3J0KVxuIgotICAgICAgICAgICAgICAgICAgaW5jciB2YXJzKHdhcm5pbmdfY291bnQpCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnModXNlZnVsX3NrZXcpIFwidHJ1ZVwiXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhza2V3X2J1ZmZlcnMpIFwiPGxpc3Qgb2YgYnVmZmVycz5cIlxuIgotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYge1tGRjo6aXNfbHBfZmxvd119IHsKLSAgICAgICAgICAgICAgIGlmIHshW2NhdGNoIHtzZXQgYXJnICR2YXJzKHJlc2l6ZV9zaGlmdGVyX2FuZF9pc29faW5zdHMpfV19IHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMocmVzaXplX3NoaWZ0ZXJfYW5kX2lzb19pbnN0cylcbiIKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBhcmdzICIgLXJlc2l6ZVNoaWZ0ZXJBbmRJc29JbnN0cyAkYXJnIgotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgeyRhcmdzICE9ICIifSB7Ci0gICAgICAgICAgICAgICBzZXQgY29tbWFuZCAic2V0T3B0TW9kZSAkYXJnc1xuIgotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kIHByZWN0cyxzZXRfb3B0X21vZGUgJGNvbW1hbmRdCi0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGlmIHskdmFycyhlbmFibGVfc3MpID09ICJwcmVfcHJlY3RzIn0gewotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhlbmFibGVfc3MpXG4iCi0gICAgICAgICAgICAgICBzZXQgY29tbWFuZCAic2V0RGVsYXlDYWxNb2RlIC1lbmdpbmUgc2lnbmFsU3Rvcm1cbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCBwcmVjdHMsc2V0X2RlbGF5X2NhbF9tb2RlICRjb21tYW5kXQotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKGVuYWJsZV9zcykgXCJwcmVfcHJlY3RzXCJcbiIKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIHtbRkY6OmlzX2xwX2Zsb3ddfSB7Ci0gICAgICAgICAgICAgICBzZXQgY29tbWFuZCAiIgotICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGFsd2F5c19vbl9idWZmZXJzKV19IHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMoYWx3YXlzX29uX2J1ZmZlcnMpXG4iCi0gICAgICAgICAgICAgICAgICBmb3JlYWNoIGJ1ZmZlciAkdmFycyhhbHdheXNfb25fYnVmZmVycykgewotICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgInNldERvbnRVc2UgJGJ1ZmZlciBmYWxzZVxuIgotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgZm9yZWFjaCBkb21haW4gW0ZGOjpnZXRfYnlfc3VmZml4IHZhcnMgIixhbHdheXNfb25fYnVmZmVycyJdIHsKLSAgICAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkZG9tYWluLGFsd2F5c19vbl9idWZmZXJzKV19IHsKLSAgICAgICAgICAgICAgICAgICAgIGZvcmVhY2ggYnVmZmVyICR2YXJzKCRkb21haW4sYWx3YXlzX29uX2J1ZmZlcnMpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJzZXREb250VXNlICRidWZmZXIgZmFsc2VcbiIKLSAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIGlmIHskY29tbWFuZCAhPSAiIn0gewotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kIHByZWN0cyxzZXRfZG9udF91c2UgJGNvbW1hbmRdCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0KLSAgICAgICAgICJjdHMiIHsKLSAgICAgICAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICAgICAgICMgU2V0IENUUyBvcHRpb25zIC4uLiB0aGlzIGluY2x1ZGVzIG5hbm9yb3V0ZSBvcHRpb25zIGFzIHRoZSBjbG9jawotICAgICAgICAgICAgIyBuZXQgaXMgdHlwaWNhbGx5IHJvdXRlZCBkdXJpbmcgQ1RTLiBGb3IgaGllcmFyY2hpY2FsIGZsb3dzLCB0aGUKLSAgICAgICAgICAgICMgY2xvY2sgdHJlZSBzcGVjIGlzIGRlZmluZWQgcGVyIHBhcnRpdGlvbiAuCi0gICAgICAgICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0KLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbbGluZGV4IFtGRl9FREk6OnNldF9kZXNpZ25fbW9kZV0gMF0KLSAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyBbbGluZGV4IFtGRl9FREk6OnNldF9kZXNpZ25fbW9kZV0gMV0KLSAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgW2xpbmRleCBbRkZfRURJOjpzZXRfZGVzaWduX21vZGVdIDJdCi0KLSAgICAgICAgICAgIHNldCBhcmdzICIiIAotICAgICAgICAgICAgaWYgeyR2YXJzKGVuYWJsZV9vY3YpID09ICJwcmVfY3RzIn0gewotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhlbmFibGVfb2N2KVxuIgotICAgICAgICAgICAgICAgYXBwZW5kIGFyZ3MgIi1hbmFseXNpc1R5cGUgb25DaGlwVmFyaWF0aW9uICIKLSAgICAgICAgICAgICAgIGlmIHskdmFycyhlbmFibGVfYW9jdil9IHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMoZW5hYmxlX2FvY3YpXG4iCi0gICAgICAgICAgICAgICAgICBhcHBlbmQgYXJncyAiLWFvY3YgdHJ1ZSAiCi0gICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMoZW5hYmxlX2FvY3YpXG4iCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICBpZiB7JHZhcnMoZW5hYmxlX3NvY3YpfSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKGVuYWJsZV9zb2N2KVxuIgotICAgICAgICAgICAgICAgICAgYXBwZW5kIGFyZ3MgIi1zb2N2IHRydWUgIgotICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKGVuYWJsZV9zb2N2KVxuIgotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKGVuYWJsZV9vY3YpIFwicHJlX2N0c1wiXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhlbmFibGVfYW9jdikgXCJ0cnVlXCJcbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKGVuYWJsZV9zb2N2KSBcInRydWVcIlxuIgotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgeyRhcmdzICE9ICIifSB7Ci0gICAgICAgICAgICAgICBzZXQgY29tbWFuZCAic2V0QW5hbHlzaXNNb2RlICRhcmdzXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgY3RzLHNldF9hbmFseXNpc19tb2RlICRjb21tYW5kXQotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBzZXQgYXJncyAiIiAKLSAgICAgICAgICAgIGlmIHskdmFycyhlbmFibGVfY3BwcikgIT0gImZhbHNlIn0gewotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhlbmFibGVfY3BwcilcbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBhcmdzICItY3BwciAkdmFycyhlbmFibGVfY3BwcikgIgotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKGVuYWJsZV9jcHByKVxuIgotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgeyRhcmdzICE9ICIifSB7Ci0gICAgICAgICAgICAgICBzZXQgY29tbWFuZCAic2V0QW5hbHlzaXNNb2RlICRhcmdzXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgY3RzLHNldF9hbmFseXNpc19tb2RlICRjb21tYW5kXQotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBzZXQgY29tbWFuZCAic2V0Q1RTTW9kZSAiCi0gICAgICAgICAgICBpZiB7JHZhcnMoY3RzX2VuZ2luZSkgPT0gImN0cyJ9IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMoY3RzX2VuZ2luZSlcbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgLWVuZ2luZSBjayIKLSAgICAgICAgICAgIH0gCi0gICAgICAgICAgICBpZiB7IVtjYXRjaCB7c2V0IGFyZyAkdmFycyhyb3V0ZV9jbG9ja19uZXRzKX1dfSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKHJvdXRlX2Nsb2NrX25ldHMpXG4iCi0gICAgICAgICAgICAgICBpZiB7ISR2YXJzKHJvdXRlX2Nsb2NrX25ldHMpfSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiIC1yb3V0ZUNsa05ldCAkYXJnIgotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKHJvdXRlX2Nsb2NrX25ldHMpXG4iCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoY2xrX3RyZWVfdG9wX2xheWVyKV0gJiYgJHZhcnMoY2xrX3RyZWVfdG9wX2xheWVyKSAhPSB7fX0gewotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhjbGtfdHJlZV90b3BfbGF5ZXIpXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiIC1yb3V0ZVRvcFByZWZlcnJlZExheWVyICR2YXJzKGNsa190cmVlX3RvcF9sYXllcikiCi0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMoY2xrX3RyZWVfdG9wX2xheWVyKVxuIgotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGNsa19sZWFmX3RvcF9sYXllcildICYmICR2YXJzKGNsa19sZWFmX3RvcF9sYXllcikgIT0ge319IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMoY2xrX2xlYWZfdG9wX2xheWVyKVxuIgotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAtcm91dGVMZWFmVG9wUHJlZmVycmVkTGF5ZXIgJHZhcnMoY2xrX2xlYWZfdG9wX2xheWVyKSIKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhjbGtfbGVhZl90b3BfbGF5ZXIpXG4iCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoY2xrX3RyZWVfYm90dG9tX2xheWVyKV0gJiYgJHZhcnMoY2xrX3RyZWVfYm90dG9tX2xheWVyKSAhPSB7fX0gewotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhjbGtfdHJlZV9ib3R0b21fbGF5ZXIpXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiIC1yb3V0ZUJvdHRvbVByZWZlcnJlZExheWVyICR2YXJzKGNsa190cmVlX2JvdHRvbV9sYXllcikiCi0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMoY2xrX3RyZWVfYm90dG9tX2xheWVyKVxuIgotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGNsa19sZWFmX2JvdHRvbV9sYXllcildICYmICR2YXJzKGNsa19sZWFmX2JvdHRvbV9sYXllcikgIT0ge319IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMoY2xrX2xlYWZfYm90dG9tX2xheWVyKVxuIgotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAtcm91dGVMZWFmQm90dG9tUHJlZmVycmVkTGF5ZXIgJHZhcnMoY2xrX2xlYWZfYm90dG9tX2xheWVyKSIKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhjbGtfbGVhZl9ib3R0b21fbGF5ZXIpXG4iCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoY2xrX3RyZWVfbmRyKV0gJiYgJHZhcnMoY2xrX3RyZWVfbmRyKSAhPSB7fX0gewotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhjbGtfdHJlZV9uZHIpXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiIC1yb3V0ZU5vbkRlZmF1bHRSdWxlICR2YXJzKGNsa190cmVlX25kcikiCi0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMoY2xrX3RyZWVfbmRyKVxuIgotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGNsa190cmVlX2V4dHJhX3NwYWNlKV0gJiYgJHZhcnMoY2xrX3RyZWVfZXh0cmFfc3BhY2UpICE9IHt9fSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKGNsa190cmVlX2V4dHJhX3NwYWNlKVxuIgotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAtcm91dGVQcmVmZXJyZWRFeHRyYVNwYWNlICR2YXJzKGNsa190cmVlX2V4dHJhX3NwYWNlKSIKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhjbGtfdHJlZV9leHRyYV9zcGFjZSlcbiIKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhjbGtfbGVhZl9uZHIpXSAmJiAkdmFycyhjbGtfbGVhZl9uZHIpICE9IHt9fSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKGNsa19sZWFmX25kcilcbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgLXJvdXRlTGVhZk5vbkRlZmF1bHRSdWxlICR2YXJzKGNsa19sZWFmX25kcikiCi0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMoY2xrX2xlYWZfbmRyKVxuIgotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGNsa19sZWFmX2V4dHJhX3NwYWNlKV0gJiYgJHZhcnMoY2xrX2xlYWZfZXh0cmFfc3BhY2UpICE9IHt9fSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKGNsa19sZWFmX2V4dHJhX3NwYWNlKVxuIgotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAtcm91dGVMZWFmUHJlZmVycmVkRXh0cmFTcGFjZSAkdmFycyhjbGtfbGVhZl9leHRyYV9zcGFjZSkiCi0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMoY2xrX2xlYWZfZXh0cmFfc3BhY2UpXG4iCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiB7JGNvbW1hbmQgIT0gInNldENUU01vZGUgIn0gewotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIlxuIgotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kIGN0cyxzZXRfY3RzX21vZGUgJGNvbW1hbmRdCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBzZXQgY29tbWFuZCAiIgotICAgICAgICAgICAgaWYge1tzdHJpbmcgdG9sb3dlciAkdmFycyhjdHNfZW5naW5lKV0gIT0gImN0cyJ9IHsKLSMgICAgICAgICAgICAgICBGRl9FREk6OmFzc2lnbl9jdHNfY2VsbHMKLSMgICAgICAgICAgICAgICBmb3JlYWNoIGNvcm5lciAkdmFycyhyY19jb3JuZXJzKSB7Ci0jICAgICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCRjb3JuZXIsYXRmX2ZpbGUpXX0gewotIyAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAidXBkYXRlX2Njb3B0X3JjX2Nvcm5lciAtbmFtZSAkY29ybmVyIC1hdGYgJHZhcnMoJGNvcm5lcixhdGZfZmlsZSlcbiIKLSMgICAgICAgICAgICAgICAgICB9Ci0jICAgICAgICAgICAgICAgfQotIyAgICAgICAgICAgICAgIGlmIHskY29tbWFuZCAhPSAiIn0gewotIyAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJcbiIKLSMgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgY3RzLHVwZGF0ZV9jY29wdF9yY19jb3JuZXIgJGNvbW1hbmRdCi0jICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgInNldF9jY29wdF9tb2RlICIKLSAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhjY29wdF9pbnRlZ3JhdGlvbildfSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKGNjb3B0X2ludGVncmF0aW9uKVxuIgotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAtaW50ZWdyYXRpb24gXCIkdmFycyhjY29wdF9pbnRlZ3JhdGlvbilcIiIKLSAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhjY29wdF9pbnRlZ3JhdGlvbilcbiIKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhjdHNfaW52ZXJ0ZXJfY2VsbHMpXX0gewotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhjdHNfaW52ZXJ0ZXJfY2VsbHMpXG4iCi0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiIC1jdHNfaW52ZXJ0ZXJfY2VsbHMgXCIkdmFycyhjdHNfaW52ZXJ0ZXJfY2VsbHMpXCIiCi0gICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMoY3RzX2ludmVydGVyX2NlbGxzKVxuIgotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGN0c19idWZmZXJfY2VsbHMpXX0gewotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhjdHNfYnVmZmVyX2NlbGxzKVxuIgotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAtY3RzX2J1ZmZlcl9jZWxscyBcIiR2YXJzKGN0c19idWZmZXJfY2VsbHMpXCIiCi0gICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMoY3RzX2J1ZmZlcl9jZWxscylcbiIKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhjbG9ja19nYXRlX2NlbGxzKV19IHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMoY2xvY2tfZ2F0ZV9jZWxscylcbiIKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgLWN0c19jbG9ja19nYXRpbmdfY2VsbHMgXCIkdmFycyhjbG9ja19nYXRlX2NlbGxzKVwiIgotICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKGNsb2NrX2dhdGVfY2VsbHMpXG4iCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoY3RzX3VzZV9pbnZlcnRlcnMpXX0gewotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhjdHNfdXNlX2ludmVydGVycylcbiIKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgLWN0c191c2VfaW52ZXJ0ZXJzIFtzdHJpbmcgdG9sb3dlciAkdmFycyhjdHNfdXNlX2ludmVydGVycyldIgotICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKGN0c191c2VfaW52ZXJ0ZXJzKVxuIgotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKHVwZGF0ZV9pb19sYXRlbmN5KV19IHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnModXBkYXRlX2lvX2xhdGVuY3kpXG4iCi0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiIC1jY29wdF9tb2RpZnlfY2xvY2tfbGF0ZW5jeSAkdmFycyh1cGRhdGVfaW9fbGF0ZW5jeSkiICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnModXBkYXRlX2lvX2xhdGVuY3kpXG4iCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoY3RzX2lvX29wdCldfSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKGN0c19pb19vcHQpXG4iCi0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiIC1pb19vcHQgW3N0cmluZyB0b2xvd2VyICR2YXJzKGN0c19pb19vcHQpXSIKLSAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhjdHNfaW9fb3B0KVxuIgotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGNjb3B0X2VmZm9ydCldfSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKGNjb3B0X2VmZm9ydClcbiIKLSMgICAgICAgICAgICAgICAgICBpZiB7JHZhcnMoY2NvcHRfZWZmb3J0KSAhPSAibG93In0gewotIyAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgLWVmZm9ydCAkdmFycyhjY29wdF9lZmZvcnQpIgotIyAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhjY29wdF9lZmZvcnQpXG4iCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoY3RzX3RhcmdldF9za2V3KV19IHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMoY3RzX3RhcmdldF9za2V3KVxuIgotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAtY3RzX3RhcmdldF9za2V3ICR2YXJzKGN0c190YXJnZXRfc2tldykiICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMoY3RzX3RhcmdldF9za2V3KVxuIgotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGN0c190YXJnZXRfc2xldyldfSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKGN0c190YXJnZXRfc2xldylcbiIKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgLWN0c190YXJnZXRfc2xldyAkdmFycyhjdHNfdGFyZ2V0X3NsZXcpIiAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKGN0c190YXJnZXRfc2xldylcbiIKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhwcmVfY2NvcHRfdGNsKV19IHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMocHJlX2Njb3B0X3RjbClcbiIKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgLXByZV90Y2wgXHsgc291cmNlICR2YXJzKHByZV9jY29wdF90Y2wpIFx9IiAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKHBvc3RfY2NvcHRfdGNsKV19IHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMocG9zdF9jY29wdF90Y2wpXG4iCi0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiIC1wb3N0X3RjbCBceyBzb3VyY2UgJHZhcnMocG9zdF9jY29wdF90Y2wpIFx9IgotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGNjb3B0X2V4ZWN1dGFibGUpXX0gewotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhjY29wdF9leGVjdXRhYmxlKVxuIgotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAtZW52QWR2YW5jZWRJbnRlZ3JhdGlvbkxpbmsgJHZhcnMoY2NvcHRfZXhlY3V0YWJsZSkiICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMoY2NvcHRfZXhlY3V0YWJsZSlcbiIKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhjbGtfdHJlZV9uZHIpXX0gewotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAtcm91dGVfdG9wX25vbl9kZWZhdWx0X3J1bGUgJHZhcnMoY2xrX3RyZWVfbmRyKSIKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhjbGtfdHJlZV9zaGllbGRfbmV0KV19IHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMoY2xrX3RyZWVfc2hpZWxkX25ldClcbiIKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgLXJvdXRlX3RvcF9zaGllbGRpbmdfbmV0ICR2YXJzKGNsa190cmVlX3NoaWVsZF9uZXQpIgotICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKGNsa190cmVlX3NoaWVsZF9uZXQpXG4iCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoY2xrX3RyZWVfdG9wX2xheWVyKV19IHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgLXJvdXRlX3RvcF90b3BfcHJlZmVycmVkX2xheWVyICR2YXJzKGNsa190cmVlX3RvcF9sYXllcikiCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoY2xrX3RyZWVfYm90dG9tX2xheWVyKV19IHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgLXJvdXRlX3RvcF9ib3R0b21fcHJlZmVycmVkX2xheWVyICR2YXJzKGNsa190cmVlX2JvdHRvbV9sYXllcikiCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgY3RzLHNldF9jY29wdF9tb2RlICRjb21tYW5kXQotICAgICAgICAgICAgfQotICAgICAgICAgICAgc2V0IGFyZ3MgIiIKLSAgICAgICAgICAgIGlmIHshW2NhdGNoIHtzZXQgYXJnICR2YXJzKG11bHRpX2N1dF9lZmZvcnQpfV19IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMobXVsdGlfY3V0X2VmZm9ydClcbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBhcmdzICIgLWRyb3V0ZVVzZU11bHRpQ3V0VmlhRWZmb3J0ICRhcmciCi0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMobXVsdGlfY3V0X2VmZm9ydClcbiIKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIHshW2NhdGNoIHtzZXQgYXJnICR2YXJzKGxpdGhvX2RyaXZlbl9yb3V0aW5nKX1dfSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKGxpdGhvX2RyaXZlbl9yb3V0aW5nKVxuIgotICAgICAgICAgICAgICAgYXBwZW5kIGFyZ3MgIiAtcm91dGVXaXRoTGl0aG9Ecml2ZW4gJGFyZyIKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhsaXRob19kcml2ZW5fcm91dGluZylcbiIKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIHskYXJncyAhPSAiIn0gewotICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgIlxuc2V0TmFub1JvdXRlTW9kZSAkYXJnc1xuIgotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kIGN0cyxzZXRfbmFub3JvdXRlX21vZGUgJGNvbW1hbmRdCi0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGlmIHsoW2luZm8gZXhpc3RzIHZhcnMocGFydGl0aW9uX2xpc3QpXSkgJiYKLSAgICAgICAgICAgICAgICAoW2ZpbGUgdGFpbCBbZmlsZSBkaXJuYW1lIFtwd2RdXV0gPT0gIiR2YXJzKHBhcnRpdGlvbl9kaXIpIil9IHsKLSAgICAgICAgICAgICAgIHNldCBwdG4gW2ZpbGUgdGFpbCBbcHdkXV0KLSAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkcHRuLGN0c19zcGVjKV19IHsKLSAgICAgICAgICAgICAgICAgIHNldCB2YXJzKGN0c19zcGVjKSAkdmFycygkcHRuLGN0c19zcGVjKQotICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgIGlmIHskcHRuICE9ICR2YXJzKGRlc2lnbil9IHsKLSAgICAgICAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhjdHNfc3BlYyldfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICB1bnNldCB2YXJzKGN0c19zcGVjKQotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0KLQotICAgICAgICAgInBvc3RjdHMiIHsKLSAgICAgICAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICAgICAgICMgT3B0aW9uYWxseSBlbmFibGUgY3Bwciwgc2lnbmFsU3Rvcm0sIGFuZCBvbkNoaXBWYXJpYXRpb24gKGlmCi0gICAgICAgICAgICAjIE1NTUMpCi0gICAgICAgICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0KLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbbGluZGV4IFtGRl9FREk6OnNldF9kZXNpZ25fbW9kZV0gMF0KLSAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyBbbGluZGV4IFtGRl9FREk6OnNldF9kZXNpZ25fbW9kZV0gMV0KLSAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgW2xpbmRleCBbRkZfRURJOjpzZXRfZGVzaWduX21vZGVdIDJdCi0KLSAgICAgICAgICAgIGlmIHskdmFycyhlbmFibGVfc3MpID09ICJwcmVfcG9zdGN0cyJ9IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMoZW5hYmxlX3NzKVxuIgotICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgInNldERlbGF5Q2FsTW9kZSAtZW5naW5lIHNpZ25hbFN0b3JtXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgcG9zdGN0cyxzZXRfZGVsYXlfY2FsX21vZGUgJGNvbW1hbmRdCi0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMoZW5hYmxlX3NzKSBcInByZV9wb3N0Y3RzXCJcbiIKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHNldCBhcmdzICIiIAotICAgICAgICAgICAgaWYgeyR2YXJzKGVuYWJsZV9jcHByKSAhPSAiZmFsc2UifSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKGVuYWJsZV9jcHByKVxuIgotICAgICAgICAgICAgICAgYXBwZW5kIGFyZ3MgIi1jcHByICR2YXJzKGVuYWJsZV9jcHByKSAiCi0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMoZW5hYmxlX2NwcHIpXG4iCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiB7JHZhcnMoZmxvdykgPT0gIm1tbWMifSB7Ci0gICAgICAgICAgICAgICBpZiB7JHZhcnMoZW5hYmxlX29jdikgPT0gInByZV9wb3N0Y3RzIn0gewotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhlbmFibGVfb2N2KVxuIgotICAgICAgICAgICAgICAgICAgYXBwZW5kIGFyZ3MgIi1hbmFseXNpc1R5cGUgb25DaGlwVmFyaWF0aW9uICIKLSAgICAgICAgICAgICAgICAgIGlmIHskdmFycyhlbmFibGVfYW9jdil9IHsKLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMoZW5hYmxlX2FvY3YpXG4iCi0gICAgICAgICAgICAgICAgICAgICBhcHBlbmQgYXJncyAiLWFvY3YgdHJ1ZSAiCi0gICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMoZW5hYmxlX2FvY3YpXG4iCi0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICBpZiB7JHZhcnMoZW5hYmxlX3NvY3YpfSB7Ci0gICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKGVuYWJsZV9zb2N2KVxuIgotICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGFyZ3MgIi1zb2N2IHRydWUgIgotICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKGVuYWJsZV9zb2N2KVxuIgotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKGVuYWJsZV9vY3YpIFwicHJlX3Bvc3RjdHNcIlxuIgotICAgICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMoZW5hYmxlX2FvY3YpIFwidHJ1ZVwiXG4iCi0gICAgICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhlbmFibGVfc29jdikgXCJ0cnVlXCJcbiIKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIHskYXJncyAhPSAiIn0gewotICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgInNldEFuYWx5c2lzTW9kZSAkYXJnc1xuIgotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kIHBvc3RjdHMsc2V0X2FuYWx5c2lzX21vZGUgJGNvbW1hbmRdCi0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhjdHNfc3BlYyldfSB7Ci0gICAgICAgICAgICAgICBpZiB7IVtjYXRjaCB7c2V0IGFyZyAkdmFycyhjbG9ja19nYXRlX2Nsb25lKX1dfSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKGNsb2NrX2dhdGVfY2xvbmUpXG4iCi0gICAgICAgICAgICAgICAgICBzZXQgY29tbWFuZCAic2V0T3B0TW9kZSAtcG9zdEN0c0Nsa0dhdGVDbG9uaW5nICRhcmdcbiIKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCBwb3N0Y3RzLHNldF9vcHRfbW9kZSAkY29tbWFuZF0KLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0KLQotICAgICAgICAgInBvc3RjdHNfaG9sZCIgewotICAgICAgICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgICAgICAgIyBTZXQgaG9sZCBmaXhpbmcgb3B0aW9ucyAuLi4KLSAgICAgICAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLQotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtsaW5kZXggW0ZGX0VESTo6c2V0X2Rlc2lnbl9tb2RlXSAwXQotICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzIFtsaW5kZXggW0ZGX0VESTo6c2V0X2Rlc2lnbl9tb2RlXSAxXQotICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyBbbGluZGV4IFtGRl9FREk6OnNldF9kZXNpZ25fbW9kZV0gMl0KLQotICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGRlbGF5X2NlbGxzKV19IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMoZGVsYXlfY2VsbHMpXG4iCi0gICAgICAgICAgICAgICBzZXQgY29tbWFuZCAiIgotICAgICAgICAgICAgICAgZm9yZWFjaCBkZWxheV9jZWxsICR2YXJzKGRlbGF5X2NlbGxzKSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAic2V0RG9udFVzZSAkZGVsYXlfY2VsbCBmYWxzZVxuIgotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgaWYgeyRjb21tYW5kICE9ICIifSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgcG9zdGN0c19ob2xkLHNldF9kb250X3VzZSAkY29tbWFuZF0KLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhkZWxheV9jZWxscylcbiIKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHNldCBhcmdzICIiCi0gICAgICAgICAgICBpZiB7IVtjYXRjaCB7c2V0IGFyZyAkdmFycyhmaXhfaG9sZF9hbGxvd190bnNfZGVncmFkYXRpb24pfV19IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMoZml4X2hvbGRfYWxsb3dfdG5zX2RlZ3JhZGF0aW9uKVxuIgotICAgICAgICAgICAgICAgYXBwZW5kIGFyZ3MgIiAtZml4SG9sZEFsbG93U2V0dXBUbnNEZWdyYWRlICRhcmciCi0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMoZml4X2hvbGRfYWxsb3dfdG5zX2RlZ3JhZGF0aW9uKVxuIgotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgeyR2YXJzKGZpeF9ob2xkX2lnbm9yZV9pb3MpfSB7Ci0gICAgICAgICAgICAgICAjYXBwZW5kIGNvbW1hbmRzICJzZXRBbmFseXNpc01vZGUgLWhvbm9yQ2xvY2tEb21haW5zIHRydWVcbiIgCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKGZpeF9ob2xkX2lnbm9yZV9pb3MpXG4iCi0jICAgICAgICAgICAgICAgYXBwZW5kIGFyZ3MgIiAtaWdub3JlUGF0aEdyb3Vwc0ZvckhvbGQge2luMnJlZyByZWcyb3V0IGluMm91dH0iCi0gICAgICAgICAgICAgICBhcHBlbmQgYXJncyAiIC1pZ25vcmVQYXRoR3JvdXBzRm9ySG9sZCB7ZGVmYXVsdH0iCi0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMoZml4X2hvbGRfaWdub3JlX2lvcylcbiIKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIHskYXJncyAhPSAiIn0gewotICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgInNldE9wdE1vZGUgJGFyZ3NcbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCBwb3N0Y3RzX2hvbGQsc2V0X29wdF9tb2RlICRjb21tYW5kXQotICAgICAgICAgICAgfQotICAgICAgICAgfQotCi0gICAgICAgICAicm91dGUiIHsKLSAgICAgICAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICAgICAgICMgU2V0IHJvdXRpbmcgb3B0aW9ucyAgLi4uCi0gICAgICAgICAgICAjIFJlY29tbWVuZGF0aW9ucyBmb3IgbXVsdGljdXQgdmlhIGluc2VydGlvbiBhbmQgbGl0aG8gZHJpdmVuCi0gICAgICAgICAgICAjIHJvdXRpbmcuICBUaGVzZSBhbGwgaW5jdXIgcnVudGltZSBwZW5hbHRpZXMgYnV0IGhhdmUgeWllbGQKLSAgICAgICAgICAgICMgYWR2YW50YWdlcyBzbyBhcmUgaW5jbHVkZWQgaGVyZS4gVGhlIHJvdXRlV2l0aExpdGhvRHJpdmVuIG9wdGlvbgotICAgICAgICAgICAgIyBpcyByZWNvbW1lbmRlZCBmb3IgNDVubSBidXQgbWF5IGFsc28gYmUgdXNlZCBhdCA2NW5tLiBUaGUKLSAgICAgICAgICAgICMgLWRyb3V0ZVVzZU11bHRpQ3V0VmlhRWZmb3J0IGNhbiBiZSBzZXQgdG8gaGlnaCBpZiBuZWVkZWQ7Ci0gICAgICAgICAgICAjIGV4cGVjdCBhbiBhdmVyYWdlIG9mIDUlIGNvdmVyYWdlIGltcHJvdmVtZW50IHdpdGggYW4gYXZlcmFnZSAxMCUKLSAgICAgICAgICAgICMgcnVudGltZSBoaXQgdmVyc3VzIG1lZGl1bQotICAgICAgICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCi0gICAgICAgICAgICBpZiB7KCR2YXJzKGVuYWJsZV9jcHByKSAhPSAiZmFsc2UiKSB8fCAkdmFycyh0cmFja19vcHQpfSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKGVuYWJsZV9jcHByKVxuIgotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyh0cmFja19vcHQpXG4iCi0gICAgICAgICAgICAgICBzZXQgY29tbWFuZCAic2V0QW5hbHlzaXNNb2RlIC1jcHByIGJvdGhcbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCByb3V0ZSxzZXRfYW5hbHlzaXNfbW9kZSAkY29tbWFuZF0KLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyh0cmFja19vcHQpXG4iCi0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGlmIHskdmFycyhlbmFibGVfc2lfYXdhcmUpfSB7Ci0gICAgICAgICAgICAgICBzZXQgY29tbWFuZCAic2V0RGVsYXlDYWxNb2RlIC1zaUF3YXJlIHRydWUgLWVuZ2luZSBhYWVcbiAiCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgcG9zdHJvdXRlLHNldF9kZWxheV9jYWxfbW9kZSAkY29tbWFuZF0KLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMoZW5hYmxlX3NpX2F3YXJlKVxuIgotICAgICAgICAgICAgICAgaWYgeyR2YXJzKGVuYWJsZV9zcykgPT0gInByZV9wb3N0cm91dGUifSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgPEZGPiBWYXJpYWJsZSB2YXJzKGVuYWJsZV9zcykgaWdub3JlZCB3aGVuIHZhcnMoZW5hYmxlX3NpX2F3YXJlKSBpcyBzZXRcbiIKLSAgICAgICAgICAgICAgICAgIHNldCB3YXJuaW5ncygkdmFycyh3YXJuaW5nX2NvdW50KSkgIlZhcmlhYmxlIHZhcnMoZW5hYmxlX3NzKSBpZ25vcmVkIHdoZW4gdmFycyhlbmFibGVfc2lfYXdhcmUpIGlzIHNldFxuIgotICAgICAgICAgICAgICAgICAgaW5jciB2YXJzKHdhcm5pbmdfY291bnQpCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMoZW5hYmxlX3NpX2F3YXJlKVxuIgotICAgICAgICAgICAgICAgaWYgeyR2YXJzKGVuYWJsZV9zcykgPT0gInByZV9wb3N0cm91dGUifSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKGVuYWJsZV9zcylcbiIKLSAgICAgICAgICAgICAgICAgIHNldCBjb21tYW5kICJzZXREZWxheUNhbE1vZGUgLWVuZ2luZSBzaWduYWxTdG9ybSAtc2lnbm9mZiB0cnVlIC1zaUF3YXJlIGZhbHNlXG4iCi0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgcG9zdHJvdXRlLHNldF9kZWxheV9jYWxfbW9kZSAkY29tbWFuZF0KLSAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICBzZXQgY29tbWFuZCAic2V0RGVsYXlDYWxNb2RlIC1zaUF3YXJlIGZhbHNlXG4iCi0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgcG9zdHJvdXRlLHNldF9kZWxheV9jYWxfbW9kZSAkY29tbWFuZF0KLSAgICAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKGVuYWJsZV9zcykgXCJwcmVfcG9zdHJvdXRlXCJcbiIKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHNldCBhcmdzICIiCi0gICAgICAgICAgICBpZiB7IVtjYXRjaCB7c2V0IGFyZyAkdmFycyhtdWx0aV9jdXRfZWZmb3J0KX1dfSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKG11bHRpX2N1dF9lZmZvcnQpXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgYXJncyAiIC1kcm91dGVVc2VNdWx0aUN1dFZpYUVmZm9ydCAkYXJnIgotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKG11bHRpX2N1dF9lZmZvcnQpXG4iCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiB7IVtjYXRjaCB7c2V0IGFyZyAkdmFycyhsaXRob19kcml2ZW5fcm91dGluZyl9XX0gewotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhsaXRob19kcml2ZW5fcm91dGluZylcbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBhcmdzICIgLXJvdXRlV2l0aExpdGhvRHJpdmVuICRhcmciCi0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMobGl0aG9fZHJpdmVuX3JvdXRpbmcpXG4iCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiB7IVtjYXRjaCB7c2V0IGFyZyAkdmFycyhhbnRlbm5hX2Rpb2RlKX1dfSB7Ci0gICAgICAgICAgICAgICBpZiB7JHZhcnMoYW50ZW5uYV9kaW9kZSkgIT0gIiJ9IHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMoYW50ZW5uYV9kaW9kZSlcbiIKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBhcmdzICIgLXJvdXRlQW50ZW5uYUNlbGxOYW1lICRhcmciCi0gICAgICAgICAgICAgICAgICBhcHBlbmQgYXJncyAiIC1yb3V0ZUluc2VydEFudGVubmFEaW9kZSB0cnVlIgotICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKGFudGVubmFfZGlvZGUpXG4iCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMoYW50ZW5uYV9kaW9kZSlcbiIKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIHskYXJncyAhPSAiIn0gewotICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgIlxuc2V0TmFub1JvdXRlTW9kZSAkYXJnc1xuIgotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kIHJvdXRlLHNldF9uYW5vcm91dGVfbW9kZSAkY29tbWFuZF0KLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIHskdmFycyh0cmFja19vcHQpfSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKHRyYWNrX29wdClcbiIKLSAgICAgICAgICAgICAgIHNldCBjb21tYW5kICJzZXRFeHRyYWN0UkNNb2RlIC1lbmdpbmUgcG9zdFJvdXRlIgotICAgICAgICAgICAgICAgaWYgeyFbY2F0Y2gge3NldCBhcmcgJHZhcnModHF1YW50dXNfZmlsZSl9XX0gewotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyh0cXVhbnR1c19maWxlKVxuIgotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAtdFF1YW50dXNNb2RlbEZpbGUgJGFyZyIKLSAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyh0cXVhbnR1c19maWxlKVxuIgotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAtZWZmb3J0TGV2ZWwgbWVkaXVtIgotICAgICAgICAgICAgICAgaWYgeyFbY2F0Y2gge3NldCBhcmcgJHZhcnModG90YWxfY190aHJlc2gpfV19IHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnModG90YWxfY190aHJlc2gpXG4iCi0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiIC10b3RhbF9jX3RoICRhcmciCi0gICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnModG90YWxfY190aHJlc2gpXG4iCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICBpZiB7IVtjYXRjaCB7c2V0IGFyZyAkdmFycyhyZWxhdGl2ZV9jX3RocmVzaCl9XX0gewotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhyZWxhdGl2ZV9jX3RocmVzaClcbiIKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgLXJlbGF0aXZlX2NfdGggJGFyZyIKLSAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhyZWxhdGl2ZV9jX3RocmVzaClcbiIKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIGlmIHshW2NhdGNoIHtzZXQgYXJnICR2YXJzKGNvdXBsaW5nX2NfdGhyZXNoKX1dfSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKGNvdXBsaW5nX2NfdGhyZXNoKVxuIgotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAtY291cGxpbmdfY190aCAkYXJnIgotICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKHJlbGF0aXZlX2NfdGhyZXNoKVxuIgotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgaWYgeyFbY2F0Y2gge3NldCBhcmcgJHZhcnMocXJjX2xheWVyX21hcCl9XX0gewotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhxcmNfbGF5ZXJfbWFwKVxuIgotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAtbGVmVGVjaEZpbGVNYXAgJGFyZyIKLSAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhxcmNfbGF5ZXJfbWFwKVxuIgotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIlxuIgotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kIHBvc3Ryb3V0ZSxzZXRfZXh0cmFjdF9yY19tb2RlICRjb21tYW5kXQotICAgICAgICAgICAgfQotICAgICAgICAgfQotCi0gICAgICAgICAicG9zdHJvdXRlIiB7Ci0gICAgICAgICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAgICAgICAjIFNldCBleHRyYWN0aW9uIGVmZm9ydCBmb3IgcG9zdHJvdXRlIG9wdGltaXphdGlvbgotICAgICAgICAgICAgIyBFbmFibGUgc2lnbmFsU3Rvcm0gaWYgcmVxdWVzdGVkCi0gICAgICAgICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0KLSAgICAgICAgICAgIHNldCBwcm9jZXNzIFtyZWdzdWIgIm5tIiAkdmFycyhwcm9jZXNzKSAiIl0KLSAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMocHJvY2VzcylcbiIKLSAgICAgICAgICAgIGlmIHtbbGluZGV4IFtzcGxpdCAkdmFycyh2ZXJzaW9uKSAiLiJdICAwXSA8IDE1fSB7Ci0gICAgICAgICAgICAgICBpZiB7JHZhcnMoaGlnaF90aW1pbmdfZWZmb3J0KX0gewotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhoaWdoX3RpbWluZ19lZmZvcnQpXG4iCi0gICAgICAgICAgICAgICAgICBpZiB7IVtyZWdleHAgIjkuMSIgJHZhcnModmVyc2lvbildfSB7Ci0gICAgICAgICAgICAgICAgICAgICBzZXQgY29tbWFuZCAic2V0RGVzaWduTW9kZSAtcHJvY2VzcyAkcHJvY2VzcyAtZmxvd0VmZm9ydCBoaWdoXG4iCi0gICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgInNldERlc2lnbk1vZGUgLXByb2Nlc3MgJHByb2Nlc3NcbiIKLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCBwb3N0cm91dGUsc2V0X2Rlc2lnbl9tb2RlICRjb21tYW5kXQotICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJzZXRPcHRNb2RlIC11bmZpeENsa0luc3RGb3JPcHQgdHJ1ZVxuIgotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgIHNldCBjb21tYW5kICJzZXREZXNpZ25Nb2RlIC1wcm9jZXNzICRwcm9jZXNzXG4iCi0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgcG9zdHJvdXRlLHNldF9kZXNpZ25fbW9kZSAkY29tbWFuZF0KLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW2xpbmRleCBbRkZfRURJOjpzZXRfZGVzaWduX21vZGVdIDBdCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgW2xpbmRleCBbRkZfRURJOjpzZXRfZGVzaWduX21vZGVdIDFdCi0gICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzIFtsaW5kZXggW0ZGX0VESTo6c2V0X2Rlc2lnbl9tb2RlXSAyXQotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBzZXQgY29tbWFuZCAic2V0RXh0cmFjdFJDTW9kZSAtZW5naW5lIHBvc3RSb3V0ZSIKLSAgICAgICAgICAgIGlmIHshW2NhdGNoIHtzZXQgYXJnICR2YXJzKHBvc3Ryb3V0ZV9leHRyYWN0aW9uX2VmZm9ydCl9XX0gewotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhwb3N0cm91dGVfZXh0cmFjdGlvbl9lZmZvcnQpXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiIC1lZmZvcnRMZXZlbCAkYXJnIgotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKHBvc3Ryb3V0ZV9leHRyYWN0aW9uX2VmZm9ydClcbiIKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIHshW2NhdGNoIHtzZXQgYXJnICR2YXJzKHRvdGFsX2NfdGhyZXNoKX1dfSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKHRvdGFsX2NfdGhyZXNoKVxuIgotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAtdG90YWxfY190aCAkYXJnIgotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKHRvdGFsX2NfdGhyZXNoKVxuIgotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgeyFbY2F0Y2gge3NldCBhcmcgJHZhcnMocmVsYXRpdmVfY190aHJlc2gpfV19IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMocmVsYXRpdmVfY190aHJlc2gpXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiIC1yZWxhdGl2ZV9jX3RoICRhcmciCi0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMocmVsYXRpdmVfY190aHJlc2gpXG4iCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiB7IVtjYXRjaCB7c2V0IGFyZyAkdmFycyhjb3VwbGluZ19jX3RocmVzaCl9XX0gewotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhjb3VwbGluZ19jX3RocmVzaClcbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgLWNvdXBsaW5nX2NfdGggJGFyZyIKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhyZWxhdGl2ZV9jX3RocmVzaClcbiIKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIHshW2NhdGNoIHtzZXQgYXJnICR2YXJzKHFyY19sYXllcl9tYXApfV19IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMocXJjX2xheWVyX21hcClcbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgLWxlZlRlY2hGaWxlTWFwICRhcmciCi0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMocXJjX2xheWVyX21hcClcbiIKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJcbiIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCBwb3N0cm91dGUsc2V0X2V4dHJhY3RfcmNfbW9kZSAkY29tbWFuZF0KLSAgICAgICAgICAgICAKLQotICAgICAgICAgICAgc2V0IGFyZ3MgIiIKLSAgICAgICAgICAgIGlmIHsoJHZhcnMoZW5hYmxlX29jdikgPT0gInByZV9wb3N0cm91dGUiKSB8fCAoJHZhcnMoZW5hYmxlX29jdikgPT0gInByZV9wb3N0Y3RzIil9IHsKLSAgICAgICAgICAgICAgIGlmIHskdmFycyhmbG93KSAhPSAiZGVmYXVsdCJ9IHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMoZW5hYmxlX29jdilcbiIKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBhcmdzICItYW5hbHlzaXNUeXBlIG9uQ2hpcFZhcmlhdGlvbiAiCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICBpZiB7JHZhcnMoZW5hYmxlX2FvY3YpfSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKGVuYWJsZV9hb2N2KVxuIgotICAgICAgICAgICAgICAgICAgYXBwZW5kIGFyZ3MgIi1hb2N2IHRydWUgIgotICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKGVuYWJsZV9hb2N2KVxuIgotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgaWYgeyR2YXJzKGVuYWJsZV9zb2N2KX0gewotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhlbmFibGVfc29jdilcbiIKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBhcmdzICItc29jdiB0cnVlICIKLSAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhlbmFibGVfc29jdilcbiIKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhlbmFibGVfb2N2KSBcInByZV9wb3N0cm91dGVcIlxuIgotICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMoZW5hYmxlX2FvY3YpIFwidHJ1ZVwiXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhlbmFibGVfc29jdikgXCJ0cnVlXCJcbiIKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIHskdmFycyhlbmFibGVfY3BwcikgIT0gImZhbHNlIn0gewotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhlbmFibGVfY3BwcilcbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBhcmdzICItY3BwciAkdmFycyhlbmFibGVfY3BwcikgIgotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKGVuYWJsZV9jcHByKVxuIgotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgeyRhcmdzICE9ICIifSB7Ci0gICAgICAgICAgICAgICBzZXQgY29tbWFuZCAic2V0QW5hbHlzaXNNb2RlICRhcmdzXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgcG9zdHJvdXRlLHNldF9hbmFseXNpc19tb2RlICRjb21tYW5kXQotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBpZiB7W3JlZ2V4cCAiOS4xIiAkdmFycyh2ZXJzaW9uKV19IHsKLSAgICAgICAgICAgICAgIGlmIHskdmFycyhlbmFibGVfc3MpID09ICJwcmVfcG9zdHJvdXRlIn0gewotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhlbmFibGVfc3MpXG4iCi0gICAgICAgICAgICAgICAgICBzZXQgY29tbWFuZCAic2V0RGVsYXlDYWxNb2RlIC1lbmdpbmUgc2lnbmFsU3Rvcm0gLXNpZ25vZmYgdHJ1ZSAiCi0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgcG9zdHJvdXRlLHNldF9kZWxheV9jYWxfbW9kZSAkY29tbWFuZF0KLSAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhlbmFibGVfc3MpIFwicHJlX3Bvc3Ryb3V0ZVwiXG4iCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9IGVsc2UgeyAKLSAgICAgICAgICAgICAgIGlmIHskdmFycyhlbmFibGVfc2lfYXdhcmUpfSB7Ci0gICAgICAgICAgICAgICAgICBzZXQgY29tbWFuZCAic2V0RGVsYXlDYWxNb2RlIC1zaUF3YXJlIHRydWUgLWVuZ2luZSBhYWVcbiAiCi0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgcG9zdHJvdXRlLHNldF9kZWxheV9jYWxfbW9kZSAkY29tbWFuZF0KLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMoZW5hYmxlX3NpX2F3YXJlKVxuIgotICAgICAgICAgICAgICAgICAgaWYgeyR2YXJzKGVuYWJsZV9zcykgPT0gInByZV9wb3N0cm91dGUifSB7Ci0gICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgPEZGPiBWYXJpYWJsZSB2YXJzKGVuYWJsZV9zcykgaWdub3JlZCB3aGVuIHZhcnMoZW5hYmxlX3NpX2F3YXJlKSBpcyBzZXRcbiIKLSAgICAgICAgICAgICAgICAgICAgIHNldCB3YXJuaW5ncygkdmFycyh3YXJuaW5nX2NvdW50KSkgIlZhcmlhYmxlIHZhcnMoZW5hYmxlX3NzKSBpZ25vcmVkIHdoZW4gdmFycyhlbmFibGVfc2lfYXdhcmUpIGlzIHNldFxuIgotICAgICAgICAgICAgICAgICAgICAgaW5jciB2YXJzKHdhcm5pbmdfY291bnQpCi0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMoZW5hYmxlX3NpX2F3YXJlKVxuIgotICAgICAgICAgICAgICAgICAgaWYgeyR2YXJzKGVuYWJsZV9zcykgPT0gInByZV9wb3N0cm91dGUifSB7Ci0gICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKGVuYWJsZV9zcylcbiIKLSAgICAgICAgICAgICAgICAgICAgIHNldCBjb21tYW5kICJzZXREZWxheUNhbE1vZGUgLWVuZ2luZSBzaWduYWxTdG9ybSAtc2lnbm9mZiB0cnVlIC1zaUF3YXJlIGZhbHNlXG4iCi0gICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgcG9zdHJvdXRlLHNldF9kZWxheV9jYWxfbW9kZSAkY29tbWFuZF0KLSAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICBzZXQgY29tbWFuZCAic2V0RGVsYXlDYWxNb2RlIC1zaUF3YXJlIGZhbHNlXG4iCi0gICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgcG9zdHJvdXRlLHNldF9kZWxheV9jYWxfbW9kZSAkY29tbWFuZF0KLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKGVuYWJsZV9zcykgXCJwcmVfcG9zdHJvdXRlXCJcbiIKLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0KLQotICAgICAgICAgInBvc3Ryb3V0ZV9ob2xkIiB7Ci0gICAgICAgICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAgICAgICAjIFNldCBob2xkIGZpeGluZyBvcHRpb25zIC4uLgotICAgICAgICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW2xpbmRleCBbRkZfRURJOjpzZXRfZGVzaWduX21vZGVdIDBdCi0gICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgW2xpbmRleCBbRkZfRURJOjpzZXRfZGVzaWduX21vZGVdIDFdCi0gICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzIFtsaW5kZXggW0ZGX0VESTo6c2V0X2Rlc2lnbl9tb2RlXSAyXQotCi0gICAgICAgICAgICBzZXQgY29tbWFuZCAic2V0RXh0cmFjdFJDTW9kZSAtZW5naW5lIHBvc3RSb3V0ZSIKLSAgICAgICAgICAgIGlmIHshW2NhdGNoIHtzZXQgYXJnICR2YXJzKHBvc3Ryb3V0ZV9leHRyYWN0aW9uX2VmZm9ydCl9XX0gewotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhwb3N0cm91dGVfZXh0cmFjdGlvbl9lZmZvcnQpXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiIC1lZmZvcnRMZXZlbCAkYXJnIgotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKHBvc3Ryb3V0ZV9leHRyYWN0aW9uX2VmZm9ydClcbiIKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIHshW2NhdGNoIHtzZXQgYXJnICR2YXJzKHRvdGFsX2NfdGhyZXNoKX1dfSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKHRvdGFsX2NfdGhyZXNoKVxuIgotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAtdG90YWxfY190aCAkYXJnIgotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKHRvdGFsX2NfdGhyZXNoKVxuIgotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgeyFbY2F0Y2gge3NldCBhcmcgJHZhcnMocmVsYXRpdmVfY190aHJlc2gpfV19IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMocmVsYXRpdmVfY190aHJlc2gpXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiIC1yZWxhdGl2ZV9jX3RoICRhcmciCi0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMocmVsYXRpdmVfY190aHJlc2gpXG4iCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiB7IVtjYXRjaCB7c2V0IGFyZyAkdmFycyhjb3VwbGluZ19jX3RocmVzaCl9XX0gewotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhjb3VwbGluZ19jX3RocmVzaClcbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgLWNvdXBsaW5nX2NfdGggJGFyZyIKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhjb3VwbGluZ19jX3RocmVzaClcbiIKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIHshW2NhdGNoIHtzZXQgYXJnICR2YXJzKHFyY19sYXllcl9tYXApfV19IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMocXJjX2xheWVyX21hcClcbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgLWxlZlRlY2hGaWxlTWFwICRhcmciCi0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMocXJjX2xheWVyX21hcClcbiIKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJcbiIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCBwb3N0cm91dGVfaG9sZCxzZXRfZXh0cmFjdF9yY19tb2RlICRjb21tYW5kXQotICAgICAgICAgICAgc2V0IGNvbW1hbmQgIiIgCi0gICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoZGVsYXlfY2VsbHMpXX0gewotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhkZWxheV9jZWxscylcbiIKLSAgICAgICAgICAgICAgIGZvcmVhY2ggZGVsYXlfY2VsbCAkdmFycyhkZWxheV9jZWxscykgewotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgInNldERvbnRVc2UgJGRlbGF5X2NlbGwgZmFsc2VcbiIKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhkZWxheV9jZWxscylcbiIKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIHskY29tbWFuZCAhPSAiIn0gewotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kIHBvc3Ryb3V0ZV9ob2xkLHNldF9kb250X3VzZV9tb2RlICRjb21tYW5kXQotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBzZXQgYXJncyAiIgotICAgICAgICAgICAgaWYgeyFbY2F0Y2gge3NldCBhcmcgJHZhcnMoZml4X2hvbGRfYWxsb3dfdG5zX2RlZ3JhZGF0aW9uKX1dfSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKGZpeF9ob2xkX2FsbG93X3Ruc19kZWdyYWRhdGlvbilcbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBhcmdzICIgLWZpeEhvbGRBbGxvd1NldHVwVG5zRGVncmFkZSAkYXJnIgotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKGZpeF9ob2xkX2FsbG93X3Ruc19kZWdyYWRhdGlvbilcbiIKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIHskdmFycyhmaXhfaG9sZF9pZ25vcmVfaW9zKX0gewotICAgICAgICAgICAgICAgI2FwcGVuZCBjb21tYW5kcyAic2V0QW5hbHlzaXNNb2RlIC1ob25vckNsb2NrRG9tYWlucyB0cnVlXG4iIAotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhmaXhfaG9sZF9pZ25vcmVfaW9zKVxuIgotIyAgICAgICAgICAgICAgIGFwcGVuZCBhcmdzICIgLWlnbm9yZVBhdGhHcm91cHNGb3JIb2xkIHtpbjJyZWcgcmVnMm91dCBpbjJvdXR9IgotICAgICAgICAgICAgICAgYXBwZW5kIGFyZ3MgIiAtaWdub3JlUGF0aEdyb3Vwc0ZvckhvbGQge2RlZmF1bHR9IgotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKGZpeF9ob2xkX2lnbm9yZV9pb3MpXG4iCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiB7JGFyZ3MgIT0gIiJ9IHsKLSAgICAgICAgICAgICAgIHNldCBjb21tYW5kICJzZXRPcHRNb2RlICRhcmdzXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgcG9zdHJvdXRlX2hvbGQsc2V0X29wdF9tb2RlICRjb21tYW5kXQotICAgICAgICAgICAgfQotICAgICAgICAgfQotCi0gICAgICAgICAicG9zdHJvdXRlX3NpIiB7Ci0gICAgICAgICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAgICAgICAjIFNldCBub2lzZSwgZXh0cmFjdGlvbiwgYW5kIFNJIG9wdGlvbnMgLi4uCi0gICAgICAgICAgICAjIEVuYWJsZSBzaWduYWxTdG9ybSBpZiByZXF1ZXN0ZWQKLSAgICAgICAgICAgICMgRW5hYmxlIG9uQ2hpcFZhcmlhdGlvbiAoaWYgTU1NQykKLSAgICAgICAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLQotICAgICAgICAgICAgc2V0IHByb2Nlc3MgW3JlZ3N1YiAibm0iICR2YXJzKHByb2Nlc3MpICIiXQotICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhwcm9jZXNzKVxuIgotICAgICAgICAgICAgaWYgeyR2YXJzKGhpZ2hfdGltaW5nX2VmZm9ydCl9IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMoaGlnaF90aW1pbmdfZWZmb3J0KVxuIgotICAgICAgICAgICAgICAgaWYgeyFbcmVnZXhwICI5LjEiICR2YXJzKHZlcnNpb24pXX0gewotICAgICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgInNldERlc2lnbk1vZGUgLXByb2Nlc3MgJHByb2Nlc3MgLWZsb3dFZmZvcnQgaGlnaFxuIgotICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgIHNldCBjb21tYW5kICJzZXREZXNpZ25Nb2RlIC1wcm9jZXNzICRwcm9jZXNzXG4iCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgInNldERlc2lnbk1vZGUgLXByb2Nlc3MgJHByb2Nlc3NcbiIKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCBwb3N0cm91dGVfc2ksc2V0X2Rlc2lnbl9tb2RlICRjb21tYW5kXQotCi0gICAgICAgICAgICBzZXQgY29tbWFuZCAic2V0RXh0cmFjdFJDTW9kZSAtY291cGxlZCB0cnVlIgotICAgICAgICAgICAgaWYgeyFbY2F0Y2gge3NldCBhcmcgJHZhcnModG90YWxfY190aHJlc2gpfV19IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnModG90YWxfY190aHJlc2gpXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiIC10b3RhbF9jX3RoICRhcmciCi0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnModG90YWxfY190aHJlc2gpXG4iCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiB7IVtjYXRjaCB7c2V0IGFyZyAkdmFycyhyZWxhdGl2ZV9jX3RocmVzaCl9XX0gewotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhyZWxhdGl2ZV9jX3RocmVzaClcbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgLXJlbGF0aXZlX2NfdGggJGFyZyIKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhyZWxhdGl2ZV9jX3RocmVzaClcbiIKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIHshW2NhdGNoIHtzZXQgYXJnICR2YXJzKGNvdXBsaW5nX2NfdGhyZXNoKX1dfSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKGNvdXBsaW5nX2NfdGhyZXNoKVxuIgotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAtY291cGxpbmdfY190aCAkYXJnIgotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKGNvdXBsaW5nX2NfdGhyZXNoKVxuIgotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgeyFbY2F0Y2gge3NldCBhcmcgJHZhcnMocXJjX2xheWVyX21hcCl9XX0gewotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhxcmNfbGF5ZXJfbWFwKVxuIgotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAtbGVmVGVjaEZpbGVNYXAgJGFyZyIKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhxcmNfbGF5ZXJfbWFwKVxuIgotICAgICAgICAgICAgfQotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIlxuIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kIHBvc3Ryb3V0ZV9zaSxzZXRfZXh0cmFjdF9yY19tb2RlICRjb21tYW5kXQotCi0gICAgICAgICAgICBzZXQgYXJncyAiIgotICAgICAgICAgICAgaWYgeyFbY2F0Y2gge3NldCBhcmcgJHZhcnMoZGVsdGFfZGVsYXlfdGhyZXNob2xkKX1dfSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKGRlbHRhX2RlbGF5X3RocmVzaG9sZClcbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBhcmdzICIgLWRlbHRhRGVsYXlUaHJlc2hvbGQgJGFyZyIKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhkZWx0YV9kZWxheV90aHJlc2hvbGQpXG4iCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiB7IVtjYXRjaCB7c2V0IGFyZyAkdmFycyhjZWx0aWNfc2V0dGluZ3MpfV19IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMoY2VsdGljX3NldHRpbmdzKVxuIgotICAgICAgICAgICAgICAgYXBwZW5kIGFyZ3MgIiAtaW5zQ2VsdElDUHJlVGNsIFwiJGFyZ1wiIgotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKGNlbHRpY19zZXR0aW5ncylcbiIKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIHshW2NhdGNoIHtzZXQgYXJnICR2YXJzKHNpX2FuYWx5c2lzX3R5cGUpfV19IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMoc2lfYW5hbHlzaXNfdHlwZSlcbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBhcmdzICIgLWFuYWx5c2lzVHlwZSAkYXJnIgotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKHNpX2FuYWx5c2lzX3R5cGUpXG4iCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiB7JHZhcnMoaGlnaF90aW1pbmdfZWZmb3J0KSAmJiBbcmVnZXhwICI5LjEiICR2YXJzKHZlcnNpb24pXX0gewotIyAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMoaGlnaF90aW1pbmdfZWZmb3J0KVxuIgotICAgICAgICAgICAgICAgYXBwZW5kIGFyZ3MgIiAtYWNjZXB0YWJsZVdOUyAwIgotICAgICAgICAgICAgfSBlbHNlaWYge1tpbmZvIGV4aXN0cyB2YXJzKGFjY2VwdGFibGVfd25zKV19IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBhcmdzICIgLWFjY2VwdGFibGVXTlMgJHZhcnMoYWNjZXB0YWJsZV93bnMpIgotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgeyRhcmdzICE9ICIifSB7Ci0gICAgICAgICAgICAgICBzZXQgY29tbWFuZCAic2V0U0lNb2RlICRhcmdzXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgcG9zdHJvdXRlX3NpLHNldF9zaV9tb2RlICRjb21tYW5kXQotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBzZXQgYXJncyAiIgotICAgICAgICAgICAgaWYgeyR2YXJzKGVuYWJsZV9vY3YpID09ICJwcmVfcG9zdHJvdXRlX3NpIn0gewotICAgICAgICAgICAgICAgaWYgeyR2YXJzKGZsb3cpICE9ICJkZWZhdWx0In0gewotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhlbmFibGVfb2N2KVxuIgotICAgICAgICAgICAgICAgICAgYXBwZW5kIGFyZ3MgIi1hbmFseXNpc1R5cGUgb25DaGlwVmFyaWF0aW9uICIKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIGlmIHskdmFycyhlbmFibGVfYW9jdil9IHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMoZW5hYmxlX2FvY3YpXG4iCi0gICAgICAgICAgICAgICAgICBhcHBlbmQgYXJncyAiLWFvY3YgdHJ1ZSAiCi0gICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMoZW5hYmxlX2FvY3YpXG4iCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICBpZiB7JHZhcnMoZW5hYmxlX3NvY3YpfSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKGVuYWJsZV9zb2N2KVxuIgotICAgICAgICAgICAgICAgICAgYXBwZW5kIGFyZ3MgIi1zb2N2IHRydWUgIgotICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKGVuYWJsZV9zb2N2KVxuIgotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKGVuYWJsZV9vY3YpIFwicHJlX3Bvc3Ryb3V0ZV9zaVwiXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhlbmFibGVfYW9jdikgXCJ0cnVlXCJcbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKGVuYWJsZV9zb2N2KSBcInRydWVcIlxuIgotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgeyR2YXJzKGVuYWJsZV9jcHByKSAhPSAiZmFsc2UifSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKGVuYWJsZV9jcHByKVxuIgotICAgICAgICAgICAgICAgYXBwZW5kIGFyZ3MgIi1jcHByICR2YXJzKGVuYWJsZV9jcHByKSAiCi0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMoZW5hYmxlX2NwcHIpXG4iCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiB7JGFyZ3MgIT0gIiJ9IHsKLSAgICAgICAgICAgICAgIHNldCBjb21tYW5kICJzZXRBbmFseXNpc01vZGUgJGFyZ3NcbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCBwb3N0cm91dGVfc2ksc2V0X2FuYWx5c2lzX21vZGUgJGNvbW1hbmRdCi0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGlmIHskdmFycyhlbmFibGVfc3MpID09ICJwcmVfcG9zdHJvdXRlX3NpIn0gewotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhlbmFibGVfc3MpXG4iCi0gICAgICAgICAgICAgICBzZXQgY29tbWFuZCAic2V0RGVsYXlDYWxNb2RlIC1lbmdpbmUgc2lnbmFsU3Rvcm1cbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCBwb3N0cm91dGVfc2ksc2V0X2RlbGF5X2NhbF9tb2RlICRjb21tYW5kXQotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKGVuYWJsZV9zcykgXCJwcmVfcG9zdHJvdXRlX3NpXCJcbiIKLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0KLQotICAgICAgICAgInBvc3Ryb3V0ZV9zaV9ob2xkIiB7Ci0gICAgICAgICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAgICAgICAjIFNldCBob2xkIGZpeGluZyBvcHRpb25zIC4uLgotICAgICAgICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCi0gICAgICAgICAgICBzZXQgcHJvY2VzcyBbcmVnc3ViICJubSIgJHZhcnMocHJvY2VzcykgIiJdCi0gICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKHByb2Nlc3MpXG4iCi0gICAgICAgICAgICBpZiB7W2xpbmRleCBbc3BsaXQgJHZhcnModmVyc2lvbikgIi4iXSAgMF0gPCAxNX0gewotICAgICAgICAgICAgICAgaWYgeyR2YXJzKGhpZ2hfdGltaW5nX2VmZm9ydCl9IHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMoaGlnaF90aW1pbmdfZWZmb3J0KVxuIgotICAgICAgICAgICAgICAgICAgaWYgeyFbcmVnZXhwICI5LjEiICR2YXJzKHZlcnNpb24pXX0gewotICAgICAgICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgInNldERlc2lnbk1vZGUgLXByb2Nlc3MgJHByb2Nlc3MgLWZsb3dFZmZvcnQgaGlnaFxuIgotICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgIHNldCBjb21tYW5kICJzZXREZXNpZ25Nb2RlIC1wcm9jZXNzICRwcm9jZXNzXG4iCi0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgInNldERlc2lnbk1vZGUgLXByb2Nlc3MgJHByb2Nlc3NcbiIKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBpZiB7W3N0cmluZyB0b2xvd2VyICR2YXJzKGZsb3dfZWZmb3J0KV0gIT0gInN0YW5kYXJkIn0gewotICAgICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgInNldERlc2lnbk1vZGUgLXByb2Nlc3MgJHByb2Nlc3MgLWZsb3dFZmZvcnQgW3N0cmluZyB0b2xvd2VyICR2YXJzKGZsb3dfZWZmb3J0KV1cbiIKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMoZmxvd19lZmZvcnQpXG4iCi0gICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgInNldERlc2lnbk1vZGUgLXByb2Nlc3MgJHByb2Nlc3NcbiIKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCBwb3N0cm91dGVfc2lfaG9sZCxzZXRfZGVzaWduX21vZGUgJGNvbW1hbmRdCi0KLSAgICAgICAgICAgIHNldCBjb21tYW5kICIiCi0gICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoZGVsYXlfY2VsbHMpXX0gewotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhkZWxheV9jZWxscylcbiIKLSAgICAgICAgICAgICAgIGZvcmVhY2ggZGVsYXlfY2VsbCAkdmFycyhkZWxheV9jZWxscykgewotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgInNldERvbnRVc2UgJGRlbGF5X2NlbGwgZmFsc2VcbiIKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhkZWxheV9jZWxscylcbiIKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIHskY29tbWFuZCAhPSAiIn0gewotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kIHBvc3Ryb3V0ZV9zaV9ob2xkLHNldF9kb250X3VzZSAkY29tbWFuZF0KLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgc2V0IGFyZ3MgIiIKLSAgICAgICAgICAgIGlmIHshW2NhdGNoIHtzZXQgYXJnICR2YXJzKGZpeF9ob2xkX2FsbG93X3Ruc19kZWdyYWRhdGlvbil9XX0gewotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhmaXhfaG9sZF9hbGxvd190bnNfZGVncmFkYXRpb24pXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgYXJncyAiIC1maXhIb2xkQWxsb3dTZXR1cFRuc0RlZ3JhZGUgJGFyZyIKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhmaXhfaG9sZF9hbGxvd190bnNfZGVncmFkYXRpb24pXG4iCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiB7JHZhcnMoZml4X2hvbGRfaWdub3JlX2lvcyl9IHsKLSAgICAgICAgICAgICAgICNhcHBlbmQgY29tbWFuZHMgInNldEFuYWx5c2lzTW9kZSAtaG9ub3JDbG9ja0RvbWFpbnMgdHJ1ZVxuIiAKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMoZml4X2hvbGRfaWdub3JlX2lvcylcbiIKLSMgICAgICAgICAgICAgICBhcHBlbmQgYXJncyAiIC1pZ25vcmVQYXRoR3JvdXBzRm9ySG9sZCB7aW4ycmVnIHJlZzJvdXQgaW4yb3V0fSIKLSAgICAgICAgICAgICAgIGFwcGVuZCBhcmdzICIgLWlnbm9yZVBhdGhHcm91cHNGb3JIb2xkIHtkZWZhdWx0fSIKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhmaXhfaG9sZF9pZ25vcmVfaW9zKVxuIgotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgeyRhcmdzICE9ICIifSB7Ci0gICAgICAgICAgICAgICBzZXQgY29tbWFuZCAic2V0T3B0TW9kZSAkYXJnc1xuIgotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kIHBvc3Ryb3V0ZV9zaV9ob2xkLHNldF9vcHRfbW9kZSAkY29tbWFuZF0KLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgICAgICAgIyBTZXQgbm9pc2UsIGV4dHJhY3Rpb24sIGFuZCBTSSBvcHRpb25zIC4uLgotICAgICAgICAgICAgIyBFbmFibGUgc2lnbmFsU3Rvcm0gaWYgcmVxdWVzdGVkCi0gICAgICAgICAgICAjIEVuYWJsZSBvbkNoaXBWYXJpYXRpb24gKGlmIE1NTUMpCi0gICAgICAgICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0KLSAgICAgICAgICAgIHNldCBjb21tYW5kICJzZXRFeHRyYWN0UkNNb2RlIC1jb3VwbGVkIHRydWUiCi0gICAgICAgICAgICBpZiB7IVtjYXRjaCB7c2V0IGFyZyAkdmFycyh0b3RhbF9jX3RocmVzaCl9XX0gewotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyh0b3RhbF9jX3RocmVzaClcbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgLXRvdGFsX2NfdGggJGFyZyIKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyh0b3RhbF9jX3RocmVzaClcbiIKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIHshW2NhdGNoIHtzZXQgYXJnICR2YXJzKHJlbGF0aXZlX2NfdGhyZXNoKX1dfSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKHJlbGF0aXZlX2NfdGhyZXNoKVxuIgotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAtcmVsYXRpdmVfY190aCAkYXJnIgotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKHJlbGF0aXZlX2NfdGhyZXNoKVxuIgotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgeyFbY2F0Y2gge3NldCBhcmcgJHZhcnMoY291cGxpbmdfY190aHJlc2gpfV19IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMoY291cGxpbmdfY190aHJlc2gpXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiIC1jb3VwbGluZ19jX3RoICRhcmciCi0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMoY291cGxpbmdfY190aHJlc2gpXG4iCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiB7IVtjYXRjaCB7c2V0IGFyZyAkdmFycyhxcmNfbGF5ZXJfbWFwKX1dfSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKHFyY19sYXllcl9tYXApXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiIC1sZWZUZWNoRmlsZU1hcCAkYXJnIgotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKHFyY19sYXllcl9tYXApXG4iCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiXG4iCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgcG9zdHJvdXRlX3NpX2hvbGQsc2V0X2V4dHJhY3RfcmNfbW9kZSAkY29tbWFuZF0KLQotICAgICAgICAgICAgc2V0IGFyZ3MgIiIKLSAgICAgICAgICAgIGlmIHshW2NhdGNoIHtzZXQgYXJnICR2YXJzKGRlbHRhX2RlbGF5X3RocmVzaG9sZCl9XX0gewotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhkZWx0YV9kZWxheV90aHJlc2hvbGQpXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgYXJncyAiIC1kZWx0YURlbGF5VGhyZXNob2xkICRhcmciCi0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMoZGVsdGFfZGVsYXlfdGhyZXNob2xkKVxuIgotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgeyFbY2F0Y2gge3NldCBhcmcgJHZhcnMoY2VsdGljX3NldHRpbmdzKX1dfSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKGNlbHRpY19zZXR0aW5ncylcbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBhcmdzICIgLWluc0NlbHRJQ1ByZVRjbCBcIiRhcmdcIiIKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhjZWx0aWNfc2V0dGluZ3MpXG4iCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiB7IVtjYXRjaCB7c2V0IGFyZyAkdmFycyhzaV9hbmFseXNpc190eXBlKX1dfSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKHNpX2FuYWx5c2lzX3R5cGUpXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgYXJncyAiIC1hbmFseXNpc1R5cGUgJGFyZyIKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhzaV9hbmFseXNpc190eXBlKVxuIgotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgeyR2YXJzKGhpZ2hfdGltaW5nX2VmZm9ydCkgJiYgW3JlZ2V4cCAiOS4xIiAkdmFycyh2ZXJzaW9uKV19IHsKLSMgICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKGhpZ2hfdGltaW5nX2VmZm9ydClcbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBhcmdzICIgLWFjY2VwdGFibGVXTlMgMCIKLSAgICAgICAgICAgIH0gZWxzZWlmIHtbaW5mbyBleGlzdHMgdmFycyhhY2NlcHRhYmxlX3ducyldfSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgYXJncyAiIC1hY2NlcHRhYmxlV05TICR2YXJzKGFjY2VwdGFibGVfd25zKSIKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIHskYXJncyAhPSAiIn0gewotICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgInNldFNJTW9kZSAkYXJnc1xuIgotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kIHBvc3Ryb3V0ZV9zaV9ob2xkLHNldF9zaV9tb2RlICRjb21tYW5kXQotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgeyR2YXJzKGVuYWJsZV9zcykgPT0gInByZV9wb3N0cm91dGVfc2kifSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKGVuYWJsZV9zcylcbiIKLSAgICAgICAgICAgICAgIHNldCBjb21tYW5kICJzZXREZWxheUNhbE1vZGUgLWVuZ2luZSBzaWduYWxTdG9ybVxuIgotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kIHBvc3Ryb3V0ZV9zaV9ob2xkLHNldF9kZWxheV9jYWxfbW9kZSAkY29tbWFuZF0KLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhlbmFibGVfc3MpIFwicHJlX3Bvc3Ryb3V0ZV9zaVwiXG4iCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiB7JHZhcnMoZW5hYmxlX29jdikgPT0gInByZV9wb3N0cm91dGVfc2kifSAgewotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhlbmFibGVfb2N2KVxuIgotICAgICAgICAgICAgICAgaWYgeyR2YXJzKGZsb3cpICE9ICJkZWZhdWx0In0gewotICAgICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgInNldEFuYWx5c2lzTW9kZSAtYW5hbHlzaXNUeXBlIG9uQ2hpcFZhcmlhdGlvblxuIgotICAgICAgICAgICAgICAgICAgaWYgeyR2YXJzKGVuYWJsZV9hb2N2KX0gewotICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhlbmFibGVfYW9jdilcbiIKLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICItYW9jdiB0cnVlICIKLSAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhlbmFibGVfYW9jdilcbiIKLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIGlmIHskdmFycyhlbmFibGVfc29jdil9IHsKLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMoZW5hYmxlX3NvY3YpXG4iCi0gICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiLXNvY3YgdHJ1ZSAiCi0gICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMoZW5hYmxlX3NvY3YpXG4iCi0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgcG9zdHJvdXRlX3NpX2hvbGQsc2V0X2FuYWx5c2lzX21vZGUgJGNvbW1hbmRdCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMoZW5hYmxlX29jdikgXCJwcmVfcG9zdHJvdXRlX3NpXCJcbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKGVuYWJsZV9hb2N2KSBcInRydWVcIlxuIgotICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMoZW5hYmxlX3NvY3YpIFwidHJ1ZVwiXG4iCi0gICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0KLSAgICAgICAgICJzaWdub2ZmIiB7Ci0gICAgICAgICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAgICAgICAjIEZvciB0aGUgZGVmYXVsdCBmbG93LCBzd2l0Y2ggdG8gTU1NQyBmb3IgZmluYWwgU1RBIHRvIHN1cHBvcnQKLSAgICAgICAgICAgICMgbXVsdGlwbGUgUkMgY29ybmVycy4gIEFsc28sIGVuYWJsZSBDQ0UgKHNpZ25vZmYpIGV4dHJhY3Rpb24gaWYKLSAgICAgICAgICAgICMgdGhlIFFSQyB0ZWNoZmlsZSBleGlzdHMKLSAgICAgICAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICAgICAgIGlmIHskdmFycyhmbG93KSA9PSAiZGVmYXVsdCJ9IHsKLSAgICAgICAgICAgICAgIGlmIHskdmFycyh2ZXJib3NlKX0gewotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjXG4iCi0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgPEZGPiBVUERBVElORyBUSU1JTkcgRU5WSVJPTk1FTlQiCi0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiNcbiIKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIHNldCBjb21tYW5kIFtGRl9FREk6OmluaXRpYWxpemVfdGltaW5nIG1tbWNdCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgc2lnbm9mZixpbml0aWFsaXplX3RpbWluZyAkY29tbWFuZF0KLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHNldCBwcm9jZXNzIFtyZWdzdWIgIm5tIiAkdmFycyhwcm9jZXNzKSAiIl0KLSAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMocHJvY2VzcylcbiIKLSAgICAgICAgICAgIHNldCBjb21tYW5kICJzZXREZXNpZ25Nb2RlIC1wcm9jZXNzICRwcm9jZXNzXG4iCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgc2lnbm9mZixzZXRfZGVzaWduX21vZGUgJGNvbW1hbmRdCi0KLSAgICAgICAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICAgICAgICMgU2V0IG5vaXNlLCBleHRyYWN0aW9uLCBhbmQgU0kgb3B0aW9ucyAuLi4KLSAgICAgICAgICAgICMgRW5hYmxlIHNpZ25hbFN0b3JtIGlmIHJlcXVlc3RlZAotICAgICAgICAgICAgIyBFbmFibGUgb25DaGlwVmFyaWF0aW9uIChpZiBNTU1DKQotICAgICAgICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCi0gICAgICAgICAgICBzZXQgY29tbWFuZCAic2V0RXh0cmFjdFJDTW9kZSAtY291cGxlZCB0cnVlIgotICAgICAgICAgICAgaWYgeyFbY2F0Y2gge3NldCBhcmcgJHZhcnMoc2lnbm9mZl9leHRyYWN0aW9uX2VmZm9ydCl9XX0gewotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhzaWdub2ZmX2V4dHJhY3Rpb25fZWZmb3J0KVxuIgotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAtZWZmb3J0TGV2ZWwgJGFyZyIKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiIC1lZmZvcnRMZXZlbCBoaWdoIgotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgeyFbY2F0Y2gge3NldCBhcmcgJHZhcnModG90YWxfY190aHJlc2gpfV19IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnModG90YWxfY190aHJlc2gpXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiIC10b3RhbF9jX3RoICRhcmciCi0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnModG90YWxfY190aHJlc2gpXG4iCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiB7IVtjYXRjaCB7c2V0IGFyZyAkdmFycyhyZWxhdGl2ZV9jX3RocmVzaCl9XX0gewotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhyZWxhdGl2ZV9jX3RocmVzaClcbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgLXJlbGF0aXZlX2NfdGggJGFyZyIKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhyZWxhdGl2ZV9jX3RocmVzaClcbiIKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIHshW2NhdGNoIHtzZXQgYXJnICR2YXJzKGNvdXBsaW5nX2NfdGhyZXNoKX1dfSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKGNvdXBsaW5nX2NfdGhyZXNoKVxuIgotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAtY291cGxpbmdfY190aCAkYXJnIgotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKGNvdXBsaW5nX2NfdGhyZXNoKVxuIgotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgeyFbY2F0Y2gge3NldCBhcmcgJHZhcnMocXJjX2xheWVyX21hcCl9XX0gewotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhxcmNfbGF5ZXJfbWFwKVxuIgotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAtbGVmVGVjaEZpbGVNYXAgJGFyZyIKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhxcmNfbGF5ZXJfbWFwKVxuIgotICAgICAgICAgICAgfQotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIlxuIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kIHNpZ25vZmYsc2V0X2V4dHJhY3RfcmNfbW9kZSAkY29tbWFuZF0KLQotICAgICAgICAgICAgc2V0IGFyZ3MgIiIKLSAgICAgICAgICAgIGlmIHshW2NhdGNoIHtzZXQgYXJnICR2YXJzKGRlbHRhX2RlbGF5X3RocmVzaG9sZCl9XX0gewotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhkZWx0YV9kZWxheV90aHJlc2hvbGQpXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgYXJncyAiIC1kZWx0YURlbGF5VGhyZXNob2xkICRhcmciCi0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMoZGVsdGFfZGVsYXlfdGhyZXNob2xkKVxuIgotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgeyFbY2F0Y2gge3NldCBhcmcgJHZhcnMoY2VsdGljX3NldHRpbmdzKX1dfSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKGNlbHRpY19zZXR0aW5ncylcbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBhcmdzICIgLWluc0NlbHRJQ1ByZVRjbCBcIiRhcmdcIiIKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhjZWx0aWNfc2V0dGluZ3MpXG4iCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiB7IVtjYXRjaCB7c2V0IGFyZyAkdmFycyhzaV9hbmFseXNpc190eXBlKX1dfSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKHNpX2FuYWx5c2lzX3R5cGUpXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgYXJncyAiIC1hbmFseXNpc1R5cGUgJGFyZyIKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhzaV9hbmFseXNpc190eXBlKVxuIgotICAgICAgICAgICAgfQotICAgICAgICAgICAgc2V0IGFyZ3MgIiIKLSAgICAgICAgICAgIGlmIHskdmFycyhlbmFibGVfb2N2KSAhPSAiZmFsc2UifSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKGVuYWJsZV9vY3YpXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgYXJncyAiLWFuYWx5c2lzVHlwZSBvbkNoaXBWYXJpYXRpb24gIgotICAgICAgICAgICAgICAgaWYgeyR2YXJzKGVuYWJsZV9hb2N2KX0gewotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhlbmFibGVfYW9jdilcbiIKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBhcmdzICItYW9jdiB0cnVlICIKLSAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhlbmFibGVfYW9jdilcbiIKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIGlmIHskdmFycyhlbmFibGVfc29jdil9IHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMoZW5hYmxlX3NvY3YpXG4iCi0gICAgICAgICAgICAgICAgICBhcHBlbmQgYXJncyAiLXNvY3YgdHJ1ZSAiCi0gICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMoZW5hYmxlX3NvY3YpXG4iCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMoZW5hYmxlX29jdikgXCJwcmVfc2lnbm9mZlwiXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhlbmFibGVfYW9jdikgXCJ0cnVlXCJcbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKGVuYWJsZV9zb2N2KSBcInRydWVcIlxuIgotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgeyR2YXJzKGVuYWJsZV9jcHByKSAhPSAiZmFsc2UifSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKGVuYWJsZV9jcHByKVxuIgotICAgICAgICAgICAgICAgYXBwZW5kIGFyZ3MgIi1jcHByICR2YXJzKGVuYWJsZV9jcHByKSAiCi0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMoZW5hYmxlX2NwcHIpXG4iCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiB7JGFyZ3MgIT0gIiJ9IHsKLSAgICAgICAgICAgICAgIHNldCBjb21tYW5kICJzZXRBbmFseXNpc01vZGUgJGFyZ3NcbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCBzaWdub2ZmLHNldF9hbmFseXNpc19tb2RlICRjb21tYW5kXQotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYge1tyZWdleHAgIjkuMSIgJHZhcnModmVyc2lvbildfSB7Ci0gICAgICAgICAgICAgICBpZiB7JHZhcnMoZW5hYmxlX3NzKSA9PSAicHJlX3NpZ25vZmYifSB7Ci0gICAgICAgICAgICAgICAgICBzZXQgY29tbWFuZCAic2V0RGVsYXlDYWxNb2RlIC1lbmdpbmUgc2lnbmFsU3Rvcm0gLXNpZ25vZmYgdHJ1ZVxuIgotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kIHNpZ25vZmYsc2V0X2RlbGF5X2NhbF9tb2RlICRjb21tYW5kXQotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhlbmFibGVfc3MpXG4iCi0gICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMoZW5hYmxlX3NzKSBcInByZV9zaWdub2ZmXCJcbiIKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0gZWxzZSB7Ci0jICAgICAgICAgICAgICAgaWYgeyR2YXJzKGVuYWJsZV9zaV9hd2FyZSl9IHsKLSMgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKGVuYWJsZV9zaV9hd2FyZSlcbiIKLSMgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiLXNpQXdhcmUgdHJ1ZSAtZW5naW5lIGFhZVxuICIKLSAgICAgICAgICAgICAgICAgIGlmIHskdmFycyhlbmFibGVfc3MpID09ICJwcmVfc2lnbm9mZiJ9IHsKLSAgICAgICAgICAgICAgICAgICAgIHNldCBjb21tYW5kICJzZXREZWxheUNhbE1vZGUgLWVuZ2luZSBzaWduYWxTdG9ybSAtc2lnbm9mZiB0cnVlXG4iCi0gICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgc2lnbm9mZixzZXRfZGVsYXlfY2FsX21vZGUgJGNvbW1hbmRdCi0jICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICI8RkY+IFZhcmlhYmxlIHZhcnMoZW5hYmxlX3NzKSBpZ25vcmVkIHdoZW4gdmFycyhlbmFibGVfc2lfYXdhcmUpIGlzIHNldFxuIgotIyAgICAgICAgICAgICAgICAgICAgIHNldCB3YXJuaW5ncygkdmFycyh3YXJuaW5nX2NvdW50KSkgIlZhcmlhYmxlIHZhcnMoZW5hYmxlX3NzKSBpZ25vcmVkIHdoZW4gdmFycyhlbmFibGVfc2lfYXdhcmUpIGlzIHNldFxuIgotIyAgICAgICAgICAgICAgICAgICAgIGluY3IgdmFycyh3YXJuaW5nX2NvdW50KQotICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKGVuYWJsZV9zcykgXCJwcmVfc2lnbm9mZlwiXG4iCi0gICAgICAgICAgICAgICAgICB9Ci0jICAgICAgICAgICAgICAgfSBlbHNlIHsKLSMgICAgICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhlbmFibGVfc2lfYXdhcmUpXG4iCi0jICAgICAgICAgICAgICAgICAgaWYgeyR2YXJzKGVuYWJsZV9zcykgPT0gInByZV9zaWdub2ZmIn0gewotIyAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMoZW5hYmxlX3NzKVxuIgotIyAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICItZW5naW5lIHNpZ25hbFN0b3JtIC1zaWdub2ZmIHRydWUgIgotIyAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0jICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMoZW5hYmxlX3NzKSBcInByZV9zaWdub2ZmXCJcbiIKLSMgICAgICAgICAgICAgICAgICB9Ci0jICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBpZiB7JHZhcnMoc2tpcF9zaWdub2ZmX2NoZWNrcyl9IHsKLSAgICAgICAgICAgICAgIHNldCBjb21tYW5kICJzZXRFeHRyYWN0UkNNb2RlIC1lbmdpbmUgcG9zdFJvdXRlIC1lZmZvcnRMZXZlbCAkdmFycyhzaWdub2ZmX2V4dHJhY3Rpb25fZWZmb3J0KSAtY291cGxlZCB0cnVlXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgc2lnbm9mZixzZXRfZXh0cmFjdF9yY19tb2RlICRjb21tYW5kXQotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAic2V0IHZhcnMoYWN0aXZlX3JjX2Nvcm5lcnMpIFxbbGlzdFxdXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgImZvcmVhY2ggdmlldyBcW2NvbmNhdCBcW2FsbF9zZXR1cF9hbmFseXNpc192aWV3c1xdIFxbYWxsX2hvbGRfYW5hbHlzaXNfdmlld3NcXVxdIHtcbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiICAgc2V0IGNvcm5lciBcW2dldF9kZWxheV9jb3JuZXIgXFtnZXRfYW5hbHlzaXNfdmlldyBcJHZpZXcgLWRlbGF5X2Nvcm5lclxdIC1yY19jb3JuZXJcXVxuIgotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIgICBpZiB7XFtsc2VhcmNoIFwkdmFycyhhY3RpdmVfcmNfY29ybmVycykgXCRjb3JuZXJcXSA9PSAtMSB9IHtcbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiICAgICAgbGFwcGVuZCB2YXJzKGFjdGl2ZV9yY19jb3JuZXJzKSBcJGNvcm5lclxuIgotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIgICB9XG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIn1cbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiUHV0cyBcIjxGRj4gQUNUSVZFIFJDIENPUk5FUiBMSVNUOiBcJHZhcnMoYWN0aXZlX3JjX2Nvcm5lcnMpXCJcbiIKLSAgIAotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJzZXQgZW1wdHlfY29ybmVycyBcW2xpc3RcXVxuIgotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJmb3JlYWNoIGNvcm5lciBcJHZhcnMoYWN0aXZlX3JjX2Nvcm5lcnMpIHtcbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiICAgaWYgeyFcW2ZpbGUgZXhpc3RzIFxbZ2V0X3JjX2Nvcm5lciBcJGNvcm5lciAtcXhfdGVjaF9maWxlXF1cXX0ge1xuIgotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIgICAgICBsYXBwZW5kIGVtcHR5X2Nvcm5lcnMgXCRjb3JuZXJcbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiICAgfVxuIgotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJ9XG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgImlmIHtcW2xsZW5ndGggXCRlbXB0eV9jb3JuZXJzXF0gPT0gMH0ge1xuIgotICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgIiAgc2V0RXh0cmFjdFJDTW9kZSAtZW5naW5lIHBvc3RSb3V0ZSAtZWZmb3J0TGV2ZWwgJHZhcnMoc2lnbm9mZl9leHRyYWN0aW9uX2VmZm9ydCkgLWNvdXBsZWQgdHJ1ZVxuIgotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kIHNpZ25vZmYsc2V0X2V4dHJhY3RfcmNfbW9kZSAkY29tbWFuZF0KLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAifSBlbHNlIHtcbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiICAgICAgUHV0cyBcIjxGRj4gQ0FOJ1QgUlVOIFNJR05PRkYgRVhUUkFDVElPTiBCRUNBVVNFIHF4X3RlY2hfZmlsZSBJUyBOT1QgREVGSU5FRCBGT1IgdGhlc2UgY29ybmVyczogXCRlbXB0eV9jb3JuZXJzXCJcbiIKLSAgICAgICAgICAgICAgIHNldCBjb21tYW5kICIgICAgICBzZXRFeHRyYWN0UkNNb2RlIC1lbmdpbmUgcG9zdFJvdXRlIC1lZmZvcnRMZXZlbCBsb3cgLWNvdXBsZWQgdHJ1ZVxuIgotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kIHNpZ25vZmYsc2V0X2V4dHJhY3RfcmNfbW9kZSAkY29tbWFuZF0KLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAifVxuIgotICAgICAgICAgICAgfQotICAgICAgICAgfQotICAgICAgfQotICAgICAgaWYge1tpbmZvIGV4aXN0cyB1Y29tbWVudHNdfSB7Ci0gICAgICAgICBpZiB7JHVjb21tZW50cyA9PSAiIn0gewotICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKHVjb21tZW50cyldfSB7Ci0gICAgICAgICAgICAgICB1bnNldCB2YXJzKHVjb21tZW50cykKLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBzZXQgdmFycyh1Y29tbWVudHMpICR1Y29tbWVudHMKLSAgICAgICAgIH0KLSAgICAgIH0KLSAgICAgIGlmIHtbaW5mbyBleGlzdHMgY29tbWVudHNdfSB7Ci0gICAgICAgICBpZiB7JGNvbW1lbnRzID09ICIifSB7Ci0gICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoY29tbWVudHMpXX0gewotICAgICAgICAgICAgICAgdW5zZXQgdmFycyhjb21tZW50cykKLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBzZXQgdmFycyhjb21tZW50cykgJGNvbW1lbnRzIAotICAgICAgICAgfQotICAgICAgfQotICAgICAgc2V0IHZhcnMoJHN0ZXAsY29tbWFuZHMpICRjb21tYW5kcwotICAgICAgcmV0dXJuICRjb21tYW5kcwotICAgfQotCi0gICBwcm9jIHNhdmVfcmVzdWx0cyB7e3N0ZXAgIiJ9IHtmb3JtYXQgMH19IHsKLQotICAgICAgaWYge1tyZWdleHAgIl5zeW4iICRzdGVwXX0gewotICAgICAgICAgcmV0dXJuICIiCi0gICAgICB9Ci0KLSAgICAgIGdsb2JhbCB2YXJzCi0gICAgICBnbG9iYWwgZXJyb3JzCi0gICAgICBnbG9iYWwgZW52Ci0KLSAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhoaWVyKV19IHsKLSAgICAgICAgIHNldCBoaWVyIHRydWUKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgICBzZXQgaGllciBmYWxzZQotICAgICAgfQotICAgICAgaWYgeyRzdGVwICE9ICIifSB7Ci0gICAgICAgICBzZXQgdmFycyhzdGVwKSAkc3RlcAotICAgICAgfQotCi0gICAgICBpZiB7JHZhcnMoZGVidWcpfSB7Ci0gICAgICAgICBwdXRzICI8REVCVUc+IFNhdmluZyByZXN1bHRzIGZvciAkdmFycyhzdGVwKSAuLi4iCi0gICAgICB9Ci0KLSAgICAgIHNldCBjb21tYW5kcyAiIgotICAgICAgaWYgeyR2YXJzKGJhdGNoKX0gewotICAgICAgICAgaWYgeyR2YXJzKHZlcmJvc2UpfSB7Ci0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiNcbiIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyBTQVZJTkcgUkVTVUxUU1xuIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjXG4iCi0gICAgICAgICB9Ci0gICAKLSMgICAgICAgICBpZiB7W3JlZ2V4cCBfaG9sZCAkdmFycyhzdGVwKV0gJiYgKCFbbHNlYXJjaCAkdmFycyhmaXhfaG9sZCkgJHZhcnMoc3RlcCldIDwwKX0gewotIyAgIAotIyAgICAgICAgICAgIGlmIHshJGZvcm1hdH0gewotIyAgICAgICAgICAgICAgIHNldCBjb21tYW5kcyAiIgotIyAgICAgICAgICAgIH0gZWxzZSB7Ci0jICAgICAgICAgICAgICAgaWYgeyR2YXJzKHJlcG9ydF9ydW5fdGltZSl9IHsKLSMgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIkZGX0VESTo6cmVwb3J0X3RpbWUgJHZhcnMoc3RlcClcbiIKLSMgICAgICAgICAgICAgICB9Ci0jICAgICAgICAgICAgfQotIyAgICAgICAgICAgIGlmIHskdmFycyhjb2RlZ2VuKX0gewotIyAgICAgICAgICAgICAgIHJldHVybiAkY29tbWFuZHMKLSMgICAgICAgICAgICB9IGVsc2UgewotIyAgICAgICAgICAgICAgICB1cGxldmVsICMwIGV2YWwgJGNvbW1hbmRzCi0jICAgICAgICAgICAgfQotIyAgICAgICAgIH0gCi0KLSAgICAgICAgIGlmIHskdmFycyhzdGVwKSAhPSAicGFydGl0aW9uIn0gewotICAgICAgICAgICAgc2V0IGhlYWRlciAiIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIgotICAgICAgICAgICAgYXBwZW5kIGhlYWRlciAiIyA8RkY+IEdFTkVSQVRJTkcgUkVQT1JUU1xuIgotICAgICAgICAgICAgYXBwZW5kIGhlYWRlciAiIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIgotICAgCi0gICAgICAgICAgICBpZiB7JHZhcnMocmVwb3J0X3Bvd2VyKX0gewotICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKHBvd2VyX2FuYWx5c2lzX3ZpZXcpXSAmJiAoJHZhcnMocG93ZXJfYW5hbHlzaXNfdmlldykgIT0gIiIpfSB7Ci0gICAgICAgICAgICAgICAgICBzZXQgY29tbWFuZCAicmVwb3J0X3Bvd2VyIC12aWV3ICR2YXJzKHBvd2VyX2FuYWx5c2lzX3ZpZXcpIC1vdXRmaWxlICR2YXJzKHJwdF9kaXIpLyR2YXJzKHN0ZXApLnBvd2VyLnJwdFxuIgotICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgIHNldCBjb21tYW5kICJyZXBvcnRfcG93ZXIgLW91dGZpbGUgJHZhcnMocnB0X2RpcikvJHZhcnMoc3RlcCkucG93ZXIucnB0XG4iCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCkscmVwb3J0X3Bvd2VyICRjb21tYW5kXQotICAgICAgICAgICAgfQotICAgICAgCi0gICAgICAgICAgICBpZiB7W0ZGOjppc19scF9mbG93XSAmJiBbaW5mbyBleGlzdHMgdmFycyhwb3dlcl9kb21haW5zKV0gJiYgW2xsZW5ndGggJHZhcnMocG93ZXJfZG9tYWlucyldID4gMX0gewotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICRoZWFkZXIKLSAgICAgICAgICAgICAgIHNldCBoZWFkZXIgIiIKLSAgICAgIAotICAgICAgICAgICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgICAgICAgICAgIyBWZXJpZnkgcG93ZXIgZG9tYWluCi0gICAgICAgICAgICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAKLSAgICAgICAgICAgICAgIHNldCBjb21tYW5kICJ2ZXJpZnlQb3dlckRvbWFpbiAtYmluZCAtZ2Nvbm4iCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiIC1pc29OZXRQRCAkdmFycyhycHRfZGlyKS8kdmFycyhzdGVwKS5pc29uZXRzLnJwdCIKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgLXhOZXRQRCAkdmFycyhycHRfZGlyKS8kdmFycyhzdGVwKS54bmV0cy5ycHRcbiIKLSAgIAotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICRzdGVwLHZlcmlmeV9wb3dlcl9kb21haW4gJGNvbW1hbmRdCi0gICAgICAKLSAgICAgICAgICAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICAgICAgICAgICMgUnVuIENMUAotICAgICAgICAgICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgCi0gICAgICAgICAgICAgICBpZiB7JHZhcnMocnVuX2NscCkgJiYgKFthdXRvX2V4ZWNvayBsZWNdICE9ICIiKX0gewotICAgICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgInJ1bkNMUCAiCi0gICAgICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoY2xwX29wdGlvbnMpXX0gewotICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgJHZhcnMoY2xwX29wdGlvbnMpCi0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiXG4iCi0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHN0ZXAscnVuX2NscCAkY29tbWFuZF0KLSAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICBpZiB7IVtpbmZvIGV4aXN0cyB2YXJzKGNscF93YXJuaW5nKV19IHsKLSAgICAgICAgICAgICAgICAgICAgIHB1dHMgIjxGRj4gV0FSTklORzogVU5BQkxFIFRPIFJVTiBDTFAgLi4uIFBMRUFTRSBNQUtFIFNVUkUgSVQgSVMgSU4gWU9VUiBQQVRIIgotICAgICAgICAgICAgICAgICAgICAgc2V0IHZhcnMoY2xwX3dhcm5pbmcpIHRydWUKLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0KLQotICAgICAgICAgc2V0IG1hcChpbml0KSB1bnBsYWNlZAotICAgICAgICAgc2V0IG1hcChwYXJ0aXRpb25fcGxhY2UpIHBsYWNlZAotICAgICAgICAgc2V0IG1hcChtb2RlbF9nZW4pIHBsYWNlZAotICAgICAgICAgc2V0IG1hcChhc3NpZ25fcGluKSBwbGFjZWQKLSAgICAgICAgICNzZXQgbWFwKHBhcnRpdGlvbikge30KLSAgICAgICAgIHNldCBtYXAocGxhY2UpIHBsYWNlZAotICAgICAgICAgc2V0IG1hcChwcmVjdHMpIHBsYWNlZAotICAgICAgICAgc2V0IG1hcChjdHMpIGNsb2NrX3N5bnRoZXNpemVkCi0gICAgICAgICBzZXQgbWFwKHBvc3RjdHMpIGNsb2NrX3N5bnRoZXNpemVkCi0gICAgICAgICBzZXQgbWFwKHBvc3RjdHNfaG9sZCkgY2xvY2tfc3ludGhlc2l6ZWQKLSAgICAgICAgIHNldCBtYXAocm91dGUpIGNsb2NrX3N5bnRoZXNpemVkX3JvdXRlZAotICAgICAgICAgc2V0IG1hcChwb3N0cm91dGUpIGNsb2NrX3N5bnRoZXNpemVkX3JvdXRlZAotICAgICAgICAgc2V0IG1hcChwb3N0cm91dGVfaG9sZCkgY2xvY2tfc3ludGhlc2l6ZWRfcm91dGVkCi0gICAgICAgICBzZXQgbWFwKHNpZ25vZmYpIGNsb2NrX3N5bnRoZXNpemVkX3JvdXRlZAotICAgICAgICAgc2V0IG1hcChhc3NlbWJsZSkgcGxhY2VkX3JvdXRlZAotICAKLSAgICAgICAgIGlmIHskdmFycyhjYXB0dXJlX21ldHJpY3MpICYmICgkdmFycyhzdGVwKSAhPSAiZGVidWciKX0gewotICAgICAgICAgICAgaWYge1tsaW5kZXggW3NwbGl0ICR2YXJzKHZlcnNpb24pICIuIl0gIDBdID4gMTN9IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAidW06OnBvcF9zbmFwc2hvdF9zdGFja1xuIgotICAgICAgICAgICAgICAgaWYge1tsaW5kZXggW3NwbGl0ICR2YXJzKHZlcnNpb24pICIuIl0gIDBdID4gMTZ9IHsKLSAgICAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgbWFwKCRzdGVwKV19IHsKLSAgICAgICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGNvbXB1dGVfbWV0cmljcyldICYmICR2YXJzKGNvbXB1dGVfbWV0cmljcyl9IHsKLSAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgImNyZWF0ZV9zbmFwc2hvdCAtbmFtZSAkdmFycyhzdGVwKSAtY2F0ZWdvcmllcyBcW2RpY3QgZ2V0IFwkbWV0cmljX2NhdGVnb3J5X3N0YXR1c19tYXAgJG1hcCgkc3RlcClcXVxuIgotICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiY3JlYXRlX3NuYXBzaG90IC1uYW1lICR2YXJzKHN0ZXApIC1jYXRlZ29yaWVzIGRlc2lnblxuIgotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgImNyZWF0ZV9zbmFwc2hvdCAtbmFtZSAkdmFycyhzdGVwKSAtY2F0ZWdvcmllcyBkZXNpZ25cbiIKLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgImNyZWF0ZV9zbmFwc2hvdCAtbmFtZSAkdmFycyhzdGVwKSAtY2F0ZWdvcmllcyBkZXNpZ25cbiIKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAicmVwb3J0X21ldHJpYyAtZmlsZSAkdmFycyhycHRfZGlyKS9tZXRyaWNzLmh0bWwgLWZvcm1hdCBodG1sXG4iCi0gICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0KLSMgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiNcbiIKLSMgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgSE9VU0VLRUVQSU5HXG4iCi0jICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjXG4iCi0gICAKLSAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhtYWlsLHRvKV19IHsKLSAgICAgICAgICAgIHN3aXRjaCAkdmFycyhzdGVwKSB7Ci0gICAgICAgICAgICAgICBpbml0ICAgICB7IHNldCBzdW1tYXJ5X2ZpbGUgcHJlcGxhY2Uuc3VtbWFyeSB9Ci0gICAgICAgICAgICAgICBhc3NlbWJsZSB7IHNldCBzdW1tYXJ5X2ZpbGUgc2lnbm9mZi5zdW1tYXJ5IH0KLSAgICAgICAgICAgICAgIGRlZmF1bHQgIHsgc2V0IHN1bW1hcnlfZmlsZSAkdmFycyhzdGVwKS5zdW1tYXJ5IH0KLSAgICAgICAgICAgIH0gCi0gICAgICAgICAgICBpZiB7IVtpbmZvIGV4aXN0cyB2YXJzKG1haWwsc3RlcHMpXSB8fCBcCi0gICAgICAgICAgICAgICAgKFtpbmZvIGV4aXN0cyB2YXJzKG1haWwsc3RlcHMpXSAmJiAoW2xzZWFyY2ggJHZhcnMobWFpbCxzdGVwcykgJHZhcnMoc3RlcCldICE9IC0xKSl9IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiUHV0cyBcIjxGRj4gTUFJTElORyBSRVNVTFRTIFRPICR2YXJzKG1haWwsdG8pXCJcbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiaWYge1xbZmlsZSBleGlzdHMgJHZhcnMocnB0X2RpcikvJHN1bW1hcnlfZmlsZVxdfSB7XG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiAgIGV4ZWMgL2Jpbi9tYWlsIC1zIFwiRkY6ICR2YXJzKGRlc2lnbiksICR2YXJzKHN0ZXApIGNvbXBsZXRlZCAoXFtwd2RcXSlcIiA8ICR2YXJzKHJwdF9kaXIpLyRzdW1tYXJ5X2ZpbGUgJHZhcnMobWFpbCx0bylcbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAifSBlbHNlaWYge1xbZmlsZSBleGlzdHMgJHZhcnMocnB0X2RpcikvJHtzdW1tYXJ5X2ZpbGV9Lmd6XF19IHtcbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiICAgZXhlYyBndW56aXAgLWMgJHZhcnMocnB0X2RpcikvJHtzdW1tYXJ5X2ZpbGV9Lmd6IFx8IC9iaW4vbWFpbCAtcyBcIkZGOiAkdmFycyhkZXNpZ24pLCAkdmFycyhzdGVwKSBjb21wbGV0ZWQgKFxbcHdkXF0pXCIgJHZhcnMobWFpbCx0bylcbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAifSBlbHNlIHtcbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiICAgZXhlYyAvYmluL21haWwgLXMgXCJGRjogJHZhcnMoZGVzaWduKSwgJHZhcnMoc3RlcCkgY29tcGxldGVkIChcW3B3ZFxdKVwiIDwgL2Rldi9udWxsICR2YXJzKG1haWwsdG8pXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIn1cbiIKLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0KLSAgIAotICAgICAgICAgaWYgeygkc3RlcCAhPSAicGFydGl0aW9uIikgJiYgKCRzdGVwICE9ICJyZWJ1ZGdldCIpICYmICgkc3RlcCAhPSAiZmxleGlsbSIpfSB7Ci0gICAgICAgICAgICBzZXQgYXJncyAiIgotICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKHNhdmVfcmMpXSAmJiAkdmFycyhzYXZlX3JjKX0gewotICAgICAgICAgICAgICAgaWYge1tyZWdleHAgInJvdXRlIiAkdmFycyhzdGVwKV19IHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBhcmdzICIgLXJjIgotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhzYXZlX2NvbnN0cmFpbnRzKV0gJiYgJHZhcnMoc2F2ZV9jb25zdHJhaW50cyl9IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBhcmdzICIgLXRjb24iCi0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgICMgQkNMOiBBZGRlZCBzdWJzdCBhcm91bmQgdmFycyhkYnNfZGlyKSB0byByZXNvbHZlIHZhcnMocnVuZGlyKQotICAgICAgICAgICAgc2V0IGRpciBbc3Vic3QgJHZhcnMoZGJzX2RpcildCi0gICAgICAgICAgICBzZXQgZGVzaWduICR2YXJzKGRlc2lnbikKLSAgICAgICAgICAgIGlmIHtbc3RyaW5nIGNvbXBhcmUgLW5vY2FzZSAkdmFycyhkYnNfZm9ybWF0KSAib2EiXT09MH0gewotICAgICAgICAgICAgICAgaWYge1tsaW5kZXggW3NwbGl0ICR2YXJzKHZlcnNpb24pICIuIl0gIDBdID4gMTB9IHsKLSAgICAgICAgICAgICAgICAgIGlmIHskaGllcn0gewotICAgICAgICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgInNhdmVEZXNpZ24gJGFyZ3MgLWNlbGx2aWV3IHskdmFycyhvYV9wYXJ0aXRpb25fbGliKSAkdmFycyhkZXNpZ24pICR2YXJzKHN0ZXApfVxuIgotICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgIHNldCBjb21tYW5kICJzYXZlRGVzaWduICRhcmdzIC1jZWxsdmlldyB7JHZhcnMob2FfZGVzaWduX2xpYikgJHZhcnMoZGVzaWduKSAkdmFycyhzdGVwKX1cbiIKLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICBzZXQgY29tbWFuZCAic2F2ZU9hRGVzaWduICR2YXJzKG9hX2Rlc2lnbl9saWIpICRkZXNpZ24gJHZhcnMoc3RlcClcbiIKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMocmVsYXRpdmVfcGF0aCldICYmICR2YXJzKHJlbGF0aXZlX3BhdGgpfSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgYXJncyAiIC1yZWxhdGl2ZVBhdGgiCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoYWJzb2x1dGVfbGliX3BhdGgpXSAmJiAkdmFycyhhYnNvbHV0ZV9saWJfcGF0aCl9IHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBhcmdzICIgLWFic29sdXRlTGliUGF0aCIKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIHNldCBjb21tYW5kICJzYXZlRGVzaWduICRhcmdzICRkaXIvJHZhcnMoc3RlcCkuZW5jIC1jb21wcmVzc1xuIgotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgeyEoKCR2YXJzKHN0ZXApID09ICJtb2RlbF9nZW4iKSAmJiAkdmFycyh1c2VfZmxleG1vZGVscykgJiYgJHZhcnMoZmxleG1vZGVsX2FydF9iYXNlZCkpfSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHN0ZXAsc2F2ZV9kZXNpZ24gJGNvbW1hbmRdCi0gICAgICAgICAgICAgICBpZiB7JHZhcnMocnVuX2xlYyl9IHsKLSAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICRzdGVwLHNhdmVfbGVjX25ldGxpc3QgInNhdmVOZXRsaXN0ICR2YXJzKGRic19kaXIpL0xFQy8kc3RlcC52Lmd6XG4iXQotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAgfQotCi0gICAgICAgICBpZiB7IVtpbmZvIGV4aXN0cyBlbnYoVlBBVEgpXX0gewotICAgICAgICAgICAgc2V0IGVudihWUEFUSCkgIm1ha2UiCi0gICAgICAgICB9Ci0KLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiaWYge1xbaW5mbyBleGlzdHMgZW52KFZQQVRIKVxdfSB7IgotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJleGVjIC9iaW4vdG91Y2ggXCRlbnYoVlBBVEgpLyR2YXJzKHN0ZXApIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJ9XG4iCi0gIAotICAgCi0gICAgICAgICBpZiB7JGZvcm1hdH0gewotICAgICAgICAgICAgaWYgeyR2YXJzKHJlcG9ydF9ydW5fdGltZSl9IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiZmZfcHJvY3M6OnJlcG9ydF90aW1lXG4iCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiB7JHZhcnMoY2FwdHVyZV9tZXRyaWNzKX0gewotICAgICAgICAgICAgICAgaWYge1tsaW5kZXggW3NwbGl0ICR2YXJzKHZlcnNpb24pICIuIl0gIDBdIDwgMTR9IHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbZXZhbCBGRjo6Y2FwdHVyZV9tZXRyaWNzXQotICAgICAgICAgICAgICAgfSAKLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0KLSAgIAotICAgICAgICAgaWYgeyR2YXJzKGVuYWJsZV9xb3JfY2hlY2spfSB7Ci0jICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCRzdGVwLHFvcl90Y2xdfSB7Ci0jICAgICAgICAgICAgICAgc2V0IHFvcl9maWxlICR2YXJzKCRzdGVwLHFvcl90Y2wpCi0jICAgICAgICAgICAgICAgaWYge1tmaWxlIGV4aXN0cyAkcW9yX2ZpbGVdfSB7Ci0jICAgICAgICAgICAgICAgICAgc2V0IHFvciBbY2F0Y2gge2V4ZWMgJHFvcl9maWxlfSBtc2ddCi0jICAgICAgICAgICAgICAgICAgc2V0IG1ha2VfZmlsZSBbb3BlbiAkdGhpc19zZW1hcGhvcmUgd10KLSMgICAgICAgICAgICAgICAgICBwdXRzICRtYWtlX2ZpbGUgIiRxb3IiCi0jICAgICAgICAgICAgICAgICAgY2xvc2UgJG1ha2VfZmlsZQotIyAgICAgICAgICAgICAgIH0KLSMgICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJHN0ZXAscW9yX3RjbCldfSB7Ci0gICAgICAgICAgICAgICBpZiB7W2ZpbGUgZXhpc3RzICR2YXJzKCRzdGVwLHFvcl90Y2wpXX0gewotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6c291cmNlX3BsdWcgJHtzdGVwfSxxb3JfdGNsXQotICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiPEZGPiBXQVJOSU5HOiBRT1IgZmlsZSAkdmFycygkc3RlcCxxb3JfdGNsKSBkb2VzIG5vdCBleGlzdCIKLSAgICAgICAgICAgICAgICAgIHNldCB3YXJuaW5ncygkd2FybmluZ19jb3VudCkgIldBUk5JTkc6IFFPUiBmaWxlICR2YXJzKCRzdGVwLHFvcl90Y2wpIGRvZXMgbm90IGV4aXN0IgotICAgICAgICAgICAgICAgICAgaW5jciB3YXJuaW5nX2NvdW50Ci0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgaWYgeyR2YXJzKG1ha2VmaWxlKX0gewotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJcbmlmIHtcW2luZm8gZXhpc3RzIGVudihWUEFUSClcXX0ge1xuIgotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIgICBleGVjIC9iaW4vdG91Y2ggXCRlbnYoVlBBVEgpLyR7c3RlcH1fcW9yXG4iCi0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIn1cbiIKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0KLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OnNvdXJjZV9wbHVnIGZpbmFsX2Fsd2F5c19zb3VyY2VfdGNsXQotCi0gICAgICB9IGVsc2UgewotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJQdXRzIFwiPEZGPiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XCJcbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiUHV0cyBcIjxGRj4gSU5GTzogUnVubmluZyBpbiBpbnRlcmFjdGl2ZSBtb2RlIC4uLlwiXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIlB1dHMgXCI8RkY+ICAgICAgIFBsZWFzZSBydW4gJ2ZmX3Byb2NzOjpzYXZlX3Jlc3VsdHMgPGN1cnJlbnRfc3RlcD4nIFwiXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIlB1dHMgXCI8RkY+ICAgICAgIHRvIHByZXBhcmUgYSBkYXRhYmFzZSBmb3IgdGhlIG5leHQgc3RlcFwiXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIlB1dHMgXCI8RkY+ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cIlxuIgotICAgICAgICAgaWYgeyR2YXJzKG1ha2VmaWxlKX0geyAKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiaWYge1xbaW5mbyBleGlzdHMgZW52KFZQQVRIKVxdfSB7XG4iCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgImV4ZWMgL2Jpbi90b3VjaCBcJGVudihWUEFUSCkvJHZhcnMoc3RlcClcbiIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAifVxuIgotICAgICAgICAgfQotICAgICAgfQotCi0gICAgICBpZiB7JHZhcnMoY29kZWdlbil9IHsKLSAgICAgICAgIHJldHVybiAkY29tbWFuZHMKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgICB1cGxldmVsICMwIGV2YWwgJGNvbW1hbmRzCi0gICAgICB9Ci0KLSAgIH0KLQotICAgcHJvYyBpbml0aWFsaXplX211bHRpY3B1IHt9IHsKLQotICAgICBnbG9iYWwgdmFycwotCi0gICAgIGlmIHtbcmVnZXhwICJec3luIiAkdmFycyhzdGVwKV19IHsgcmV0dXJuICIiIH0KLQotICAgICAgc2V0IGNvbW1hbmRzICIiCi0jICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjXG4iCi0jICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICBTRVRUSU5HIFVQIE1VTFRJIFBST0NFU1MgRElTVFJJQlVUSU9OIEFORCBUSFJFQURJTkdcbiIKLSMgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiNcbiIKLQotICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGRpc3RyaWJ1dGVfdGltZW91dCldfSB7Ci0gICAgICAgICBzZXQgY29tbWFuZCAic2V0RGlzdHJpYnV0ZUhvc3QgLXRpbWVPdXQgJHZhcnMoZGlzdHJpYnV0ZV90aW1lb3V0KSAiCi0gICAgICB9IGVsc2UgewotICAgICAgICAgc2V0IGNvbW1hbmQgInNldERpc3RyaWJ1dGVIb3N0ICIKLSAgICAgIH0KLQotICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGRpc3RyaWJ1dGUpXX0gewotICAgICAgICAgc3dpdGNoICR2YXJzKGRpc3RyaWJ1dGUpIHsKLSAgICAgICAgICAgICJyc2giIHsKLSMgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIFJVTk5JTkcgUlNIIG9uICR2YXJzKHJzaCxob3N0X2xpc3QpXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiLXJzaCAtYWRkIFxbbGlzdCAkdmFycyhyc2gsaG9zdF9saXN0KVxdXG4iCi0gICAgICAgICAgICAgICBzZXQgdmFycyhyZW1vdGVfaG9zdHMpIFtsbGVuZ3RoICR2YXJzKHJzaCxob3N0X2xpc3QpXQotICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICJsb2NhbCIgewotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIi1sb2NhbFxuIgotICAgICAgICAgICAgfQotICAgICAgICAgICAgImN1c3RvbSIgewotIyAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgUlVOTklORyBDVVNUT00gKCR2YXJzKGN1c3RvbSxzY3JpcHQpKVxuIgotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIi1jdXN0b20gLWN1c3RvbV9zY3JpcHQgeyAkdmFycyhjdXN0b20sc2NyaXB0KSB9XG4iCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICAibHNmIiB7Ci0jICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICBSVU5OSU5HIExTRiAoJHZhcnMobHNmLHF1ZXVlKSwgJHZhcnMobHNmLHJlc291cmNlKSwgJHZhcnMobHNmLGFyZ3MpXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiLWxzZiAtcXVldWUgJHZhcnMobHNmLHF1ZXVlKSAtcmVzb3VyY2UgeyAkdmFycyhsc2YscmVzb3VyY2UpIH0gLWxzZl9hcmdzIHsgJHZhcnMobHNmLGFyZ3MpIH1cbiIKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGRlZmF1bHQgewotICAgICAgICAgICAgICAgIHB1dHMgICI8RkY+IERJU1RSSUJVVElPTiBUWVBFICR2YXJzKGRpc3RyaWJ1dGUpIE5PVCBTVVBQT1JURURcbiIKLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0KLQotIyAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAkY29tbWFuZAotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHNldF9kaXN0cmlidXRlZF9ob3N0cyAkY29tbWFuZF0KLQotICAgICAgICAgc2V0IGNvbW1hbmQgInNldE11bHRpQ3B1VXNhZ2UgIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIi1sb2NhbENwdSAkdmFycyhsb2NhbF9jcHVzKSAiCi0gICAgICAgICBhcHBlbmQgY29tbWFuZCAiLXJlbW90ZUhvc3QgJHZhcnMocmVtb3RlX2hvc3RzKSAiCi0gICAgICAgICBhcHBlbmQgY29tbWFuZCAiLWNwdVBlclJlbW90ZUhvc3QgJHZhcnMoY3B1c19wZXJfcmVtb3RlX2hvc3QpXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksc2V0X211bHRpX2NwdV91c2FnZSAkY29tbWFuZF0KLQotICAgICAgfSBlbHNlIHsKLQotICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIi1sb2NhbFxuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHNldF9kaXN0cmlidXRlX2hvc3QgJGNvbW1hbmRdCi0KLSAgICAgICAgIHNldCBjb21tYW5kICJzZXRNdWx0aUNwdVVzYWdlIC1sb2NhbENwdSAkdmFycyhsb2NhbF9jcHVzKVxuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHNldF9tdWx0aV9jcHVfdXNhZ2UgJGNvbW1hbmRdCi0KLSAgICAgIH0KLQotICAgICAgcmV0dXJuICRjb21tYW5kcwotCi0gICB9Ci0gICBwcm9jIGRlcmF0ZV90aW1pbmcgIHt7dHlwZSBtaW5tYXh9fSB7Ci0KLSAgICAgIGdsb2JhbCB2YXJzCi0gICAgICBnbG9iYWwgZXJyb3JzCi0KLSMgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnModmlld19kZWZpbml0aW9uX3RjbCldfSB7Ci0jICAgICAgICAgcmV0dXJuICIiCi0jICAgICAgfQotCi0jICAgICAgaWYgeyR2YXJzKGVuYWJsZV9hb2N2KX0gewotIyAgICAgICAgIHNldCBjb21tYW5kcyAiIgotIyAgICAgICAgIGZvcmVhY2ggY29ybmVyICR2YXJzKGRlbGF5X2Nvcm5lcnMpIHsKLSMgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgInJlc2V0X3RpbWluZ19kZXJhdGUgLWRlbGF5X2Nvcm5lciAkY29ybmVyXG4iCi0jICAgICAgICAgfSAgIAotIyAgICAgICAgIHJldHVybiAkY29tbWFuZHMKLSMgICAgICB9Ci0KLSAgICAgIHNldCBjb21tYW5kcyAiUHV0cyBcIjxGRj4gREVSQVRJTkcgREVMQVkgQ09STkVSUyAuLi5cIlxuIgotICAgICAgaWYgeyR2YXJzKHZlcmJvc2UpfSB7Ci0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiNcbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgREVSQVRJTkcgREVMQVkgQ09STkVSUyAoJHR5cGUpIC4uLlxuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjXG4iCi0gICAgICB9Ci0gICAgICBzd2l0Y2ggJHR5cGUgewotICAgICAgICAgIm1tbWMiIHsKLSAgICAgICAgICAgIHNldCBmb3VuZF9jb3JuZXIgMAotICAgICAgICAgICAgZm9yZWFjaCBjb3JuZXIgJHZhcnMoZGVsYXlfY29ybmVycykgewotICAgICAgICAgICAgICAgc2V0IGRlcmF0ZV9maWxlIDAKLSAgICAgICAgICAgICAgIHNldCBjb21tYW5kKCRjb3JuZXIpICIiCi0gICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJGNvcm5lcixkZXJhdGVfdGNsKV19IHsKLSAgICAgICAgICAgICAgICAgIHNldCBkZXJhdGVfZmlsZSAxCi0gICAgICAgICAgICAgICAgICBpbmNyIGZvdW5kX2Nvcm5lciAxCi0gICAgICAgICAgICAgICAgICBpZiB7W2ZpbGUgZXhpc3RzICR2YXJzKCRjb3JuZXIsZGVyYXRlX3RjbCldfSB7Ci0gICAgICAgICAgICAgICAgICAgICBpZiB7JGNvbW1hbmQoJGNvcm5lcikgPT0gIiJ9IHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kKCRjb3JuZXIpIFtGRjo6c291cmNlX3BsdWcgIiRjb3JuZXIsZGVyYXRlX3RjbCJdCi0gICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICBpZiB7ISRkZXJhdGVfZmlsZX0gewotICAgICAgICAgICAgICAgICAgZm9yZWFjaCBvYmplY3QgImNlbGwgbmV0IiB7Ci0gICAgICAgICAgICAgICAgICAgICBmb3JlYWNoIG1vZGUgImVhcmx5IGxhdGUiIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGZvcmVhY2ggdHlwZSAiZGF0YSBjbG9jayIgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCRjb3JuZXIsJHt0eXBlfV8ke29iamVjdH1fJHttb2RlfSldfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCgkY29ybmVyKSAiICAgc2V0X3RpbWluZ19kZXJhdGUgLSR0eXBlIC0ke29iamVjdH1fZGVsYXkgLSRtb2RlIC1kZWxheV9jb3JuZXIgJGNvcm5lciAkdmFycygkY29ybmVyLCR7dHlwZX1fJHtvYmplY3R9XyR7bW9kZX0pXG4iCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXQgZm91bmRfY29ybmVyIDEKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkY29ybmVyLCR7b2JqZWN0fV8ke3R5cGV9XyR7bW9kZX0pXX0gewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQoJGNvcm5lcikgIiAgIHNldF90aW1pbmdfZGVyYXRlIC0kdHlwZSAtJHtvYmplY3R9X2RlbGF5IC0kbW9kZSAtZGVsYXlfY29ybmVyICRjb3JuZXIgJHZhcnMoJGNvcm5lciwke29iamVjdH1fJHt0eXBlfV8ke21vZGV9KVxuIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0IGZvdW5kX2Nvcm5lciAxCi0gICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJGNvcm5lcixjZWxsX2NoZWNrXyR7bW9kZX0pXX0gewotICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQoJGNvcm5lcikgIiAgIHNldF90aW1pbmdfZGVyYXRlIC1jZWxsX2NoZWNrIC0kbW9kZSAtZGVsYXlfY29ybmVyICRjb3JuZXIgJHZhcnMoJGNvcm5lcixjZWxsX2NoZWNrXyR7bW9kZX0pXG4iCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBzZXQgZm91bmRfY29ybmVyIDEKLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkY29ybmVyLGNoZWNrX2NlbGxfJHttb2RlfSldfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCgkY29ybmVyKSAiICAgc2V0X3RpbWluZ19kZXJhdGUgLWNlbGxfY2hlY2sgLSRtb2RlIC1kZWxheV9jb3JuZXIgJGNvcm5lciAkdmFycygkY29ybmVyLGNoZWNrX2NlbGxfJHttb2RlfSlcbiIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldCBmb3VuZF9jb3JuZXIgMQotICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgICAgICAgIyBUaGVyZSBjYW4gb25seSBiZSBvbmUgaWxtX25vbl9zZGNfZmlsZSwgc28gbmVlZCB0byBjb21iaW5lIHRoZW0gd2l0aCAKLSAgICAgICAgICAgICMgdGhlIHRpbWluZyBkZXJhdGUgY29tbWFuZHMgaWYgYm90aCBleGlzdHMKLSAgICAgICAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICAgICAgIGlmIHskZm91bmRfY29ybmVyPjB9IHsKLSAgICAgICAgICAgICAgIGlmICR2YXJzKGlsbSkgewotICAgICAgICAgICAgICAgICAgc2V0IG9wIFtvcGVuIC5pbG1fbm9uX3NkY19maWxlLnRjbCB3XQotICAgICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGlsbV9ub25fc2RjX2ZpbGUpXSAmJiBbZmlsZSBleGlzdHMgJHZhcnMoaWxtX25vbl9zZGNfZmlsZSldfSB7IAotICAgICAgICAgICAgICAgICAgICAgc2V0IGZociBbb3BlbiAkdmFycyhpbG1fbm9uX3NkY19maWxlKSByXQotICAgICAgICAgICAgICAgICAgICAgcHV0cyAkb3AgIiMiCi0gICAgICAgICAgICAgICAgICAgICBwdXRzICRvcCAiIyBDb250ZW50cyBvZiAkdmFycyhpbG1fbm9uX3NkY19maWxlKSIKLSAgICAgICAgICAgICAgICAgICAgIHB1dHMgJG9wICIjIgotICAgICAgICAgICAgICAgICAgICAgd2hpbGUge1tnZXRzICRmaHIgbGluZV0+PTB9IHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHB1dHMgJG9wICIgICAkbGluZSIKLSAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgIGNsb3NlICRmaHIKLSAgICAgICAgICAgICAgICAgICAgIHB1dHMgJG9wICIjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iCi0gICAgICAgICAgICAgICAgICAgICBzZXQgdmFycyhzYXZlX2lsbV9ub25fc2RjX2ZpbGUpICR2YXJzKGlsbV9ub25fc2RjX2ZpbGUpCi0gICAgICAgICAgICAgICAgICAgICB1bnNldCB2YXJzKGlsbV9ub25fc2RjX2ZpbGUpCi0gICAgICAgICAgICAgICAgICB9IAotICAgICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGRlcmF0ZV90Y2wpXX0gewotICAgICAgICAgICAgICAgICAgICAgICAgcHV0cyAkb3AgInNvdXJjZSAkdmFycyhkZXJhdGVfdGNsKSIKLSAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICBmb3JlYWNoIGNvcm5lciAkdmFycyhkZWxheV9jb3JuZXJzKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBwdXRzICRvcCAkY29tbWFuZCgkY29ybmVyKQotICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgY2xvc2UgJG9wCi0gICAgICAgICAgICAgICAgICBpZiB7W2xpbmRleCBbc3BsaXQgJHZhcnModmVyc2lvbikgIi4iXSAgMF0gPD0gMTB9IHsKLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAibG9hZFRpbWluZ0NvbiAtaWxtTm9uU2RjRmlsZSAuaWxtX25vbl9zZGNfZmlsZS50Y2xcbiIKLSAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgInNldElsbU5vblNkY0NvbnN0cmFpbnRGaWxlIC5pbG1fbm9uX3NkY19maWxlLnRjbFxuIgotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhkZXJhdGVfdGNsKV19IHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OnNvdXJjZV9wbHVnIGRlcmF0ZV90Y2xdCi0gICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIlxuIgotICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAic2V0IGFjdGl2ZV9jb3JuZXJzIFxbYWxsX2RlbGF5X2Nvcm5lcnNcXVxuIgotICAgICAgICAgICAgICAgICAgICAgZm9yZWFjaCBjb3JuZXIgJHZhcnMoZGVsYXlfY29ybmVycykgewotICAgICAgICAgICAgICAgICAgICAgICAgaWYgeyRjb21tYW5kKCRjb3JuZXIpICE9ICIifSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgImlmIHtcW2xzZWFyY2ggXCRhY3RpdmVfY29ybmVycyAkY29ybmVyXF0gIT0gLTF9IHtcbiIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAkY29tbWFuZCgkY29ybmVyKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJ9XG4iCi0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGRlcmF0ZV90Y2wpXX0gewotICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6c291cmNlX3BsdWcgZGVyYXRlX3RjbF0KLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiXG4iCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0gICAgICAgICAibWlubWF4IiB7Ci0KLSAgICAgICAgICAgIHNldCBjb3JuZXJzKG1pbikgJHZhcnMoJHZhcnMoZGVmYXVsdF9ob2xkX3ZpZXcpLGRlbGF5X2Nvcm5lcikKLSAgICAgICAgICAgIHNldCBjb3JuZXJzKG1heCkgJHZhcnMoJHZhcnMoZGVmYXVsdF9zZXR1cF92aWV3KSxkZWxheV9jb3JuZXIpCi0KLSAgICAgICAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAgICAgICAjIERlcmF0ZSB0aW1pbmcgaWYgZGVyYXRpbmcgZmFjdG9ycyBhcmUgZGVmaW5lZAotICAgICAgICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICAgICAgIGZvcmVhY2ggb2JqZWN0ICJjZWxsIG5ldCIgewotICAgICAgICAgICAgICAgZm9yZWFjaCBjb3JuZXIgIm1pbiBtYXgiIHsKLSAgICAgICAgICAgICAgICAgIGZvcmVhY2ggdHlwZSAiZGF0YSBjbG9jayIgewotICAgICAgICAgICAgICAgICAgICAgZm9yZWFjaCBtb2RlICJlYXJseSBsYXRlIiB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJGNvcm5lcnMoJGNvcm5lciksJHt0eXBlfV8ke29iamVjdH1fJHttb2RlfSldfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgInNldF90aW1pbmdfZGVyYXRlIC0kY29ybmVyIC0kdHlwZSAtJHtvYmplY3R9X2RlbGF5IC0kbW9kZSAkdmFycygkY29ybmVycygkY29ybmVyKSwke3R5cGV9XyR7b2JqZWN0fV8ke21vZGV9KVxuIgotICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCRjb3JuZXJzKCRjb3JuZXIpLCR7b2JqZWN0fV8ke3R5cGV9XyR7bW9kZX0pXX0gewotICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJzZXRfdGltaW5nX2RlcmF0ZSAtJGNvcm5lciAtJHR5cGUgLSR7b2JqZWN0fV9kZWxheSAtJG1vZGUgJHZhcnMoJGNvcm5lcnMoJGNvcm5lciksJHtvYmplY3R9XyR7dHlwZX1fJHttb2RlfSlcbiIKLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGZvcmVhY2ggY29ybmVyICJtaW4gbWF4IiB7Ci0gICAgICAgICAgICAgICBmb3JlYWNoIG1vZGUgImVhcmx5IGxhdGUiIHsKLSAgICAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkY29ybmVycygkY29ybmVyKSxjZWxsX2NoZWNrXyR7bW9kZX0pXX0gewotICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJzZXRfdGltaW5nX2RlcmF0ZSAtY2VsbF9jaGVjayAtJG1vZGUgJHZhcnMoJGNvcm5lcnMoJGNvcm5lciksY2VsbF9jaGVja18ke21vZGV9KVxuIgotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCRjb3JuZXJzKCRjb3JuZXIpLGNoZWNrX2NlbGxfJHttb2RlfSldfSB7Ci0gICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgInNldF90aW1pbmdfZGVyYXRlIC1jZWxsX2NoZWNrIC0kbW9kZSAkdmFycygkY29ybmVycygkY29ybmVyKSxjaGVja19jZWxsXyR7bW9kZX0pXG4iCi0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0gICAgICAgICBkZWZhdWx0IHsKLSAgICAgICAgICAgIFB1dHMgIjxGRj4gSU5WQUxJRCBPUFRJT04gLi4uIE1VU1QgQkUgRUlUSEVSIG1pbm1heCBPUiBtbW1jIgotICAgICAgICAgfQotICAgICAgfQotICAgICAgaWYge1tsaW5kZXggW3NwbGl0ICR2YXJzKHZlcnNpb24pICIuIl0gIDBdID4gMTB9IHsKLSAgICAgICAgIHNldCBvcCBbb3BlbiAkdmFycyhzY3JpcHRfZGlyKS90aW1pbmdkZXJhdGUuc2RjIHddCi0gICAgICAgICBwdXRzICRvcCAkY29tbWFuZHMKLSAgICAgICAgIGNsb3NlICRvcAotIyAgICAgICAgIHNldCBjb21tYW5kcyAic291cmNlIFwkdmFycyhzY3JpcHRfZGlyKS90aW1pbmdkZXJhdGUuc2RjXG4iCi0gICAgICAgICBzZXQgY29tbWFuZHMgInNvdXJjZSAkdmFycyhzY3JpcHRfZGlyKS90aW1pbmdkZXJhdGUuc2RjXG4iCi0gICAgICB9IAotICAgICAgcmV0dXJuICRjb21tYW5kcwotICAgfQotICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgIyBUaGUgY29kZSBiZWxvdyB1cGRhdGVzIHRpbWluZyBkZXBlbmRpbmcgb24gd2hldGhlciB0aGUgY3VycmVudCBtb2R1bGUgaXMKLSAgICMgLSB0b3AgcGFydGl0aW9uIGluIGEgaGllcmFyY2hpY2FsIGZsb3cKLSAgICMgLSBwYXJ0aXRpb24gaW4gYSBoaWVyYXJjaGljYWwgZmxvdwotICAgIyAtIGNoaXAgb3IgYmxvY2sgaW4gYSBmbGF0IGZsb3cKLSAgICMgVGltaW5nIGlzIHVwZGF0ZWQgYnkgaW5jcmVtZW50YWxseSBhZGRpbmcgdGhlIHZhcnMoaW5jcl9jdHNfc2RjKSB0byBlYWNoCi0gICAjIGNvbnN0cmFpbnQgbW9kZSB0aGF0IGhhcyBvbmUgZGVmaW5lZAotICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCi0gICBwcm9jIHVwZGF0ZV90aW1pbmcge3t0eXBlIG1pbm1heH0ge3N3aXRjaF90b19wcm9wYWdhdGVkIHRydWV9fSB7Ci0KLSAgICAgIGdsb2JhbCB2YXJzCi0KLSAgICAgIGlmIHshW2luZm8gZXhpc3RzIHZhcnMoY29uc3RyYWludF9tb2RlcyldfSB7Ci0gICAgICAgICByZXR1cm4KLSAgICAgIH0KLQotICAgICAgc2V0IGNvbW1hbmRzICJQdXRzIFwiPEZGPiBVUERBVElORyBUSU1JTkcgLi4uXCJcbiIKLQotICAgICAgc2V0IHB0biBbZmlsZSB0YWlsIFtwd2RdXQotICAgICAgc2V0IHBhcmVudCBbZmlsZSB0YWlsIFtmaWxlIGRpcm5hbWUgW3B3ZF1dXQotICAgICAgc2V0IHVwZGF0ZSB0cnVlCi0gICAgICBzZXQgdG9wIGZhbHNlCi0gICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMocGFydGl0aW9uX2xpc3QpXSAmJiAoJHBhcmVudCA9PSAiJHZhcnMocGFydGl0aW9uX2RpcikiKX0gewotICAgICAgICAgaWYge1tsc2VhcmNoICR2YXJzKHBhcnRpdGlvbl9saXN0KSAkcHRuXSAhPSAtMX0gewotIyAgICAgICAgICAgIHNldCBpbG0gZmFsc2UKLSAgICAgICAgICAgIHNldCB1cGRhdGUgZmFsc2UKLSAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBzZXQgdG9wIHRydWUKLSAgICAgICAgIH0KLSAgICAgIH0KLQotIyAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgSUxNICR2YXJzKGlsbSksIFVQREFURSAkdXBkYXRlXG4iCi0KLSAgICAgIGlmIHskc3dpdGNoX3RvX3Byb3BhZ2F0ZWR9IHsKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAic2V0IG9wIFxbb3BlbiBwcm9wLnNkYyB3XF1cbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAicHV0cyBcJG9wIFwic2V0X3Byb3BhZ2F0ZWRfY2xvY2sgXFxcW2FsbF9jbG9ja3NcXFxdXCJcbiIKLSAgICAgICAgIGlmIHskdmFycyhpbG0pfSB7Ci0gICAgICAgICAgICBpZiB7JHZhcnMoZmxhdCkgIT0gIm5vbmUifSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGX0VESTo6Z2V0X2Nsb2NrX3BvcnRzXQotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAic2V0IGNsb2NrX3BvcnRzIFxbRkZfRURJOjpnZXRfY2xvY2tfcG9ydHNcXVxuIgotICAgICAgICAgICAgfQotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJpZiB7XFtsbGVuZ3RoIFwkY2xvY2tfcG9ydHNcXSA+IDB9IHtcbiIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiICAgZm9yZWFjaCBwb3J0IFwkY2xvY2tfcG9ydHMge1xuIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIgICAgICBwdXRzIFwkb3AgXCJzZXRfcHJvcGFnYXRlZF9jbG9jayBcJHBvcnRcIlxuIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIgICB9XG4iCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIn1cbiIKLSAgICAgICAgIH0KLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiY2xvc2UgXCRvcFxuIgotICAgICAgfQotCi0gICAgICBzd2l0Y2ggJHR5cGUgewotCi0gICAgICAgICAibWlubWF4IiB7Ci0gICAgICAgICAgICBpZiB7JHZhcnMoaWxtKSAmJiAkdXBkYXRlfSB7Ci0gICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoaW5jcl9jdHNfc2RjKV19IHsKLSAgICAgICAgICAgICAgICAgIGZvcmVhY2ggZmlsZSAkdmFycyhpbmNyX2N0c19zZGMpIHsKLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAibG9hZFRpbWluZ0NvbiAtaWxtIC1pbmNyICRmaWxlXG4iCi0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICB9IGVsc2VpZiB7W2luZm8gZXhpc3RzIHZhcnMocG9zdF9jdHNfc2RjKV19IHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJ1bmxvYWRUaW1pbmdDb25cbiIKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAibG9hZFRpbWluZ0NvbiAgW2xpbmRleCAkdmFycyhwb3N0X2N0c19zZGMpIDBdXG4iCi0gICAgICAgICAgICAgICAgICBmb3JlYWNoIHNkYyBbbHJhbmdlICR2YXJzKHBvc3RfY3RzX3NkYykgMSBlbmRdIHsKLSAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJsb2FkVGltaW5nQ29uIC1pbG0gLWluY3IgJHNkY1xuIgotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgaWYgeyRzd2l0Y2hfdG9fcHJvcGFnYXRlZH0gewotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJsb2FkVGltaW5nQ29uIC1pbG0gLWluY3IgcHJvcC5zZGNcbiIKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBpZiB7JHVwZGF0ZX0gewotICAgICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGluY3JfY3RzX3NkYyldfSB7Ci0gICAgICAgICAgICAgICAgICAgICBmb3JlYWNoIGZpbGUgJHZhcnMoaW5jcl9jdHNfc2RjKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgImxvYWRUaW1pbmdDb24gLWluY3IgJGZpbGVcbiIKLSAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIH0gZWxzZWlmIHtbaW5mbyBleGlzdHMgdmFycyhwb3N0X2N0c19zZGMpXX0gewotICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJ1bmxvYWRUaW1pbmdDb25cbiIKLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAibG9hZFRpbWluZ0NvbiBbbGluZGV4ICR2YXJzKHBvc3RfY3RzX3NkYykgMF1cbiIKLSAgICAgICAgICAgICAgICAgICAgIGZvcmVhY2ggc2RjIFtscmFuZ2UgJHZhcnMocG9zdF9jdHNfc2RjKSAxIGVuZF0gewotICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgImxvYWRUaW1pbmdDb24gLWluY3IgJHNkY1xuIgotICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgaWYgeyRzd2l0Y2hfdG9fcHJvcGFnYXRlZH0gewotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJsb2FkVGltaW5nQ29uIC1pbmNyIHByb3Auc2RjXG4iCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0gICAgICAgICAibW1tYyIgewotIyAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyh1cGRhdGVfaW9fbGF0ZW5jeSldICYmICR2YXJzKHVwZGF0ZV9pb19sYXRlbmN5KX0gewotIyAgICAgICAgICAgICAgIHVwZGF0ZV9pb19sYXRlbmN5Ci0jICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgeyRzd2l0Y2hfdG9fcHJvcGFnYXRlZH0gewotICAgICAgICAgICAgICAgc2V0IHByb3Bfc2RjICJwcm9wLnNkYyIKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBzZXQgcHJvcF9zZGMgIiIKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgZm9yZWFjaCBtb2RlICR2YXJzKGNvbnN0cmFpbnRfbW9kZXMpIHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiaWYge1xbbHNlYXJjaCBcW2FsbF9jb25zdHJhaW50X21vZGVzXF0gJG1vZGVcXSAhPSAtMX0ge1xuIgotICAgICAgICAgICAgICAgaWYgeyR1cGRhdGV9IHsKLSAgICAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkbW9kZSxpbmNyX2N0c19zZGMpXX0gewotICAgICAgICAgICAgICAgICAgICAgaWYgeyR2YXJzKGlsbSl9IHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAic2V0IHZhcnMoJG1vZGUscG9zdF9jdHNfc2RjX2xpc3QpIFxbY29uY2F0IFxbZ2V0X2NvbnN0cmFpbnRfbW9kZSAkbW9kZSAtaWxtX3NkY19maWxlc1xdICR2YXJzKCRtb2RlLGluY3JfY3RzX3NkYykgJHByb3Bfc2RjXF1cbiIKLSAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgInNldCB2YXJzKCRtb2RlLHBvc3RfY3RzX3NkY19saXN0KSBcW2NvbmNhdCBcW2dldF9jb25zdHJhaW50X21vZGUgJG1vZGUgLXNkY19maWxlc1xdICR2YXJzKCRtb2RlLGluY3JfY3RzX3NkYykgJHByb3Bfc2RjXF1cbiIKLSAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkbW9kZSxwb3N0X2N0c19zZGMpXX0gewotICAgICAgICAgICAgICAgICAgICAgICAgcHV0cyAgIjxGRj4gV0FSTklORzogQk9USCB2YXJzKCRtb2RlLGluY3JfY3RzX3NkYykgQU5EIHZhcnMoJG1vZGUscG9zdF9jdHNfc2RjKSBBUkUgREVGSU5FRCAuLi4iCi0gICAgICAgICAgICAgICAgICAgICAgICBwdXRzICAiPEZGPiAgICAgICAgICBVU0lORyB2YXJzKCRtb2RlLGluY3JfY3RzX3NkYykiCi0gICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCRtb2RlLHBvc3RfY3RzX3NkYyldfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgInNldCB2YXJzKCRtb2RlLHBvc3RfY3RzX3NkY19saXN0KSBcW2NvbmNhdCAkdmFycygkbW9kZSxwb3N0X2N0c19zZGMpICRwcm9wX3NkY1xdXG4iCi0gICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICAgaWYgeyR2YXJzKGlsbSl9IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIHskdmFycyhjdHNfZW5naW5lKSA9PSAiY3RzIiB8fCAoJHZhcnMoc3RlcCkgPT0gImFzc2VtYmxlIil9IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAic2V0IHZhcnMoJG1vZGUscG9zdF9jdHNfc2RjX2xpc3QpIFxbY29uY2F0IFxbZ2V0X2NvbnN0cmFpbnRfbW9kZSAkbW9kZSAtaWxtX3NkY19maWxlc1xdICRwcm9wX3NkY1xdXG4iCi0gICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgeyR2YXJzKHN0ZXApICE9ICJhc3NlbWJsZSJ9IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAiIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIHskdmFycyhjdHNfZW5naW5lKSA9PSAiY3RzIiB8fCAoJHZhcnMoc3RlcCkgPT0gImFzc2VtYmxlIil9IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAic2V0IHZhcnMoJG1vZGUscG9zdF9jdHNfc2RjX2xpc3QpIFxbY29uY2F0IFxbZ2V0X2NvbnN0cmFpbnRfbW9kZSAkbW9kZSAtc2RjX2ZpbGVzXF0gJHByb3Bfc2RjXF1cbiIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiB7JHZhcnMoc3RlcCkgIT0gImFzc2VtYmxlIn0gewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICIiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgaWYgeyR2YXJzKGlsbSl9IHsKLSAgICAgICAgICAgICAgICAgICAgIGlmIHskdmFycyhjdHNfZW5naW5lKSA9PSAiY3RzIn0gewotICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJzZXQgdmFycygkbW9kZSxwb3N0X2N0c19zZGNfbGlzdCkgXFtjb25jYXQgXFtnZXRfY29uc3RyYWludF9tb2RlICRtb2RlIC1pbG1fc2RjX2ZpbGVzXF0gJHByb3Bfc2RjXF1cbiIKLSAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiB7W3JlZ2V4cCAiXmFzc2VtYmxlIiAkdmFycyhzdGVwKV19IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICIiCi0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgaWYgeyR2YXJzKGN0c19lbmdpbmUpID09ICJjdHMifSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgInNldCB2YXJzKCRtb2RlLHBvc3RfY3RzX3NkY19saXN0KSBcW2NvbmNhdCBcW2dldF9jb25zdHJhaW50X21vZGUgJG1vZGUgLXNkY19maWxlc1xdICRwcm9wX3NkY1xdXG4iCi0gICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotIyAgICAgICAgICAgICAgICAgICAgICAgIGlmIHtbcmVnZXhwICJeYXNzZW1ibGUiICR2YXJzKHN0ZXApXX0gewotICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gIiIKLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAifVxuIgotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBpZiB7ISR2YXJzKGlsbSl9IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAic2V0IHJlc3RvcmUgXFtnZXRfZ2xvYmFsIHRpbWluZ19kZWZlcl9tbW1jX29iamVjdF91cGRhdGVzXF1cbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAic2V0X2dsb2JhbCB0aW1pbmdfZGVmZXJfbW1tY19vYmplY3RfdXBkYXRlcyB0cnVlXG4iCi0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGlmIHskdmFycyhpbG0pfSB7Ci0gICAgICAgICAgICAgICBleGVjIC9iaW4vdG91Y2ggZW1wdHkuc2RjCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgImZvcmVhY2ggbW9kZSBcW2FsbF9jb25zdHJhaW50X21vZGVzXF0ge1xuIgotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIgICBpZiB7XFtpbmZvIGV4aXN0cyB2YXJzKFwkbW9kZSxwb3N0X2N0c19zZGNfbGlzdClcXX0ge1xuIgotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIgICAgICB1cGRhdGVfY29uc3RyYWludF9tb2RlIC1uYW1lIFwkbW9kZSAtaWxtX3NkY19maWxlcyBcJHZhcnMoXCRtb2RlLHBvc3RfY3RzX3NkY19saXN0KVxuIgotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIgICB9IGVsc2Uge1xuIgotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIgICAgICBmb3JlYWNoIHZpZXcgXFthbGxfYW5hbHlzaXNfdmlld3NdIHtcbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiICAgICAgICAgc2V0IG0gXFtyZWdzdWIgX1wkdmlldyBcJG1vZGUgXCJcIlxdXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiAgICAgICAgIGlmIHtcW2luZm8gZXhpc3RzIHZhcnMoXCRtLHBvc3RfY3RzX3NkY19saXN0KVxdfSB7XG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiAgICAgICAgICAgIHVwZGF0ZV9jb25zdHJhaW50X21vZGUgLW5hbWUgXCRtb2RlIC1pbG1fc2RjX2ZpbGVzIFwkdmFycyhcJG0scG9zdF9jdHNfc2RjX2xpc3QpXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiAgICAgICAgIH1cbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiICAgICAgfSBcbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiICAgfSBcbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAifSBcbiIKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgImZvcmVhY2ggbW9kZSBcW2FsbF9jb25zdHJhaW50X21vZGVzXF0gXHtcbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiICAgaWYgXHtcW2luZm8gZXhpc3RzIHZhcnMoXCRtb2RlLHBvc3RfY3RzX3NkY19saXN0KVxdXH0gXHtcbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiICAgICAgdXBkYXRlX2NvbnN0cmFpbnRfbW9kZSAtbmFtZSBcJG1vZGUgLXNkY19maWxlcyBcJHZhcnMoXCRtb2RlLHBvc3RfY3RzX3NkY19saXN0KVxuIgotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIgICBcfSBlbHNlIFx7XG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiAgICAgIGZvcmVhY2ggdmlldyBcW2FsbF9hbmFseXNpc192aWV3c10gXHtcbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiICAgICAgICAgc2V0IG0gXFtyZWdzdWIgX1wkdmlldyBcJG1vZGUgXCJcIlxdXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiAgICAgICAgIGlmIFx7XFtpbmZvIGV4aXN0cyB2YXJzKFwkbSxwb3N0X2N0c19zZGNfbGlzdClcXVx9IFx7XG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiAgICAgICAgICAgIHVwZGF0ZV9jb25zdHJhaW50X21vZGUgLW5hbWUgXCRtb2RlIC1zZGNfZmlsZXMgXCR2YXJzKFwkbSxwb3N0X2N0c19zZGNfbGlzdClcbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiICAgICAgICAgXH1cbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiICAgICAgXH0gXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiAgIFx9IFxuIgotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJcfSBcbiIKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgaWYgeyEkdmFycyhpbG0pfSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgInNldF9hbmFseXNpc192aWV3IC11cGRhdGVfdGltaW5nXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgInNldF9nbG9iYWwgdGltaW5nX2RlZmVyX21tbWNfb2JqZWN0X3VwZGF0ZXMgXCRyZXN0b3JlXG4iCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBzZXQgdGhpc19pbmRleCBbbHNlYXJjaCAkdmFycyhzdGVwcykgJHZhcnMoc3RlcCldCi0gICAgICAgICAgICBzZXQgcHJpb3IgW2xpbmRleCAkdmFycyhzdGVwcykgW2V4cHIgJHRoaXNfaW5kZXggLSAxXV0KLSAgICAgICAgICAgICMgQkNMOiBBZGRlZCBzdWJzdCBhcm91bmQgdmFycyhkYnNfZGlyKQotICAgICAgICAgICAgaWYge1tmaWxlIGlzZmlsZSBbc3Vic3QgJHZhcnMoZGJzX2RpcildLyRwcmlvci5lbmMuZGF0L21tbWMvcGF0aGdyb3VwLnNkY119IHsKLSAgICAgICAgICAgICAgICMgQkNMOiBBZGRlZCBzdWJzdCBhcm91bmQgdmFycyhkYnNfZGlyKQotICAgICAgICAgICAgICAgc2V0IHZhcnMocGF0aF9ncm91cF9zZGMpIFtzdWJzdCAkdmFycyhkYnNfZGlyKV0vJHByaW9yLmVuYy5kYXQvbW1tYy9wYXRoZ3JvdXAuc2RjCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgImZmX3Byb2NzOjpsb2FkX3BhdGhfZ3JvdXBzICR2YXJzKHBhdGhfZ3JvdXBfc2RjKVxuIgotICAgICAgICAgICAgfQotICAgICAgICAgfQotICAgICAgICAgZGVmYXVsdCB7Ci0gICAgICAgICAgICBwdXRzICR2YXJzKGNvZGdlbl9sb2cpICI8RkY+IElOVkFMSUQgT1BUSU9OIC4uLiBNVVNUIEJFIEVJVEhFUiBtaW5tYXggT1IgbW1tYyIKLSAgICAgICAgIH0KLSAgICAgIH0KLSAgICAgIHJldHVybiAkY29tbWFuZHMKLSAgIH0KLQotICAgcHJvYyBpbml0aWFsaXplX3RpbWluZyB7e3R5cGUgbW1tY319IHsKLQotICAgICAgZ2xvYmFsIHZhcnMKLSAgICAgIGdsb2JhbCBlbnYKLSAgICAgIGdsb2JhbCBpbml0Ci0gICAgICBnbG9iYWwgd2FybmluZ3MKLQotICAgICAgc2V0IHZhcnMoZGVsYXlfY29ybmVycykgJHZhcnMoZ29vZF9jb3JuZXJzKQotCi0jICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKHZpZXdfZGVmaW5pdGlvbl90Y2wpXX0gewotIyAgICAgICAgIHJldHVybiAiIgotIyAgICAgIH0KLQotICAgICAgaWYgeyR2YXJzKHZlcmJvc2UpfSB7Ci0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiNcbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgSU5JVElBTElaSU5HIFtzdHJpbmcgdG91cHBlciAkdHlwZV0gVElNSU5HXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiNcbiIKLSAgICAgIH0KLQotICAgICAgaWYgeyR2YXJzKGRlYnVnKX0gewotICAgICAgICAgIHB1dHMgIjxERUJVRz4gRXhlY3V0aW5nIHByb2M6IGluaXRpYWxpemVfdGltaW5nIC4uLiIKLSAgICAgIH0KLQotICAgICAgc3dpdGNoICR0eXBlIHsKLSAgICAgICAgIG1pbm1heCB7Ci0jICAgICAgICAgICAgaWYgeyhbbGxlbmd0aCAkdmFycyhyY19jb3JuZXJzKV0gPiAxKX0gewotIyAgICAgICAgICAgICAgIHB1dHMgICI8RkY+IFdBUk5JTkc6IFRIRSBcImRlZmF1bHRcIiBGTE9XIFNIT1VMRCBPTkxZIEhBVkUgQSBTSU5HTEUgUkMgQ09STkVSIgotIyAgICAgICAgICAgICAgIHB1dHMgICI8RkY+ICAgICAgICAgIEJVVCBbbGxlbmd0aCAkdmFycyhyY19jb3JuZXJzKV0gQ09STkVSUyBBUkUgREVGSU5FRCAoJHZhcnMocmNfY29ybmVycykpIgotIyAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgICAgICAgIyBEZWZpbmUgUkMgY29ybmVycyBhbmQgc2V0IHRoZSBhcHByb3ByaWF0ZSB0ZW1wZXJhdHVyZXMuICBUaGlzCi0gICAgICAgICAgICAjIHJlcXVpcmVzIHRoYXQgdGhlIGNhcCB0YWJsZXMgdXNlIC1iZXN0Ly13b3JzdCBzeW50YXggaW4gdGhlCi0gICAgICAgICAgICAjIGNvbmZpZ3VyYXRpb24gZmlsZS4gIFNjYWxpbmcgZmFjdG9ycyBzaG91bGQgYmUgZGVyaXZlZCB1c2luZwotICAgICAgICAgICAgIyBPc3RyaWNoIFZhbHVlcyBmb3IgdGhlIGRlZmF1bHQgdGltaW5nIGVudmlyb25tZW50IGlzIGRlcml2ZWQKLSAgICAgICAgICAgICMgZnJvbSB0aGUgZGVmYXVsdCBzZXR1cCBhbmQgaG9sZCBhbmFseXNpcyB2aWV3cwotICAgICAgICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCi0gICAgICAgICAgICBzZXQgY29ybmVycyhtaW4pICR2YXJzKCR2YXJzKGRlZmF1bHRfaG9sZF92aWV3KSxkZWxheV9jb3JuZXIpCi0gICAgICAgICAgICBzZXQgY29ybmVycyhtYXgpICR2YXJzKCR2YXJzKGRlZmF1bHRfc2V0dXBfdmlldyksZGVsYXlfY29ybmVyKQotICAgICAgICAgICAgc2V0IGNvcm5lciAkdmFycygkY29ybmVycyhtYXgpLHJjX2Nvcm5lcikKLQotIyAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyBlbnYoRkZfS0lUX1BBVEgpXX0gewotICAgICAgICAgICAgaWYgeyFbY2F0Y2gge3NldCBtYXggJHZhcnMoJHZhcnMoJGNvcm5lcnMobWF4KSxyY19jb3JuZXIpLFQpfV0gJiYKLSAgICAgICAgICAgICAgICAhW2NhdGNoIHtzZXQgbWluICR2YXJzKCR2YXJzKCRjb3JuZXJzKG1pbikscmNfY29ybmVyKSxUKX1dfSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgXAotICAgICAgICAgICAgICAgICAgImRlZmluZVJDQ29ybmVyIC1sYXRlIHdvcnN0ICRtYXggLWVhcmx5IGJlc3QgJG1pblxuIgotICAgICAgICAgICAgfQotIyAgICAgICAgICAgfSBlbHNlIHsKLSMgICAgICAgICAgICAgIFB1dHMgIjxGRj4gVVNJTkcgU0lOR0xFIFJDIENPUk5FUiAkdmFycygkY29ybmVycyhtYXgpLHJjX2Nvcm5lcikiCi0jICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJHZhcnMoJGNvcm5lcnMobWF4KSxyY19jb3JuZXIpLFQpXX0gewotIyAgICAgICAgICAgICAgICAgc2V0RXh0cmFjdFJDTW9kZSAtc2NPcFRlbXAgJHZhcnMoJHZhcnMoJGNvcm5lcnMobWF4KSxyY19jb3JuZXIpLFQpCi0jICAgICAgICAgICAgICB9Ci0jICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICAgICAgICMgU2V0IHNjYWxpbmcgZmFjdG9ycyAuLi4gZm9yIHByZS1yb3V0ZSBvcHRpbWl6YXRpb24sIHRoZSBkZXRhaWxlZAotICAgICAgICAgICAgIyBjYXAgZmFjdG9yIGlzIHNldCB0byB0aGUgZGV0YWlsZWQgY2xvY2sgY2FwIGZhY3Rvci4gIFRoaXMgd2lsbAotICAgICAgICAgICAgIyBiZSByZXNldCBwb3N0LXJvdXRlCi0gICAgICAgICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0KLSAgICAgICAgICAgc2V0IGFyZ3MgIiIKLSAgICAgICAgICAgIGlmIHshW2NhdGNoIHtzZXQgYXJnICR2YXJzKCRjb3JuZXIscHJlX3JvdXRlX3Jlc19mYWN0b3IpfV19IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBhcmdzICIgLXByZVJvdXRlX3JlcyAkYXJnIgotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgeyFbY2F0Y2gge3NldCBhcmcgJHZhcnMoJGNvcm5lcixwcmVfcm91dGVfY2FwX2ZhY3Rvcil9XX0gewotICAgICAgICAgICAgICAgYXBwZW5kIGFyZ3MgIiAtcHJlUm91dGVfY2FwICRhcmciCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiB7IVtjYXRjaCB7c2V0IGFyZyAkdmFycygkY29ybmVyLHByZV9yb3V0ZV9jbGtfcmVzX2ZhY3Rvcil9XX0gewotICAgICAgICAgICAgICAgYXBwZW5kIGFyZ3MgIiAtcHJlUm91dGVfY2xrcmVzICRhcmciCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiB7IVtjYXRjaCB7c2V0IGFyZyAkdmFycygkY29ybmVyLHByZV9yb3V0ZV9jbGtfY2FwX2ZhY3Rvcil9XX0gewotICAgICAgICAgICAgICAgYXBwZW5kIGFyZ3MgIiAtcHJlUm91dGVfY2xrY2FwICRhcmciCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiB7IVtjYXRjaCB7c2V0IGFyZyAkdmFycygkY29ybmVyLHBvc3Rfcm91dGVfcmVzX2ZhY3Rvcil9XX0gewotICAgICAgICAgICAgICAgYXBwZW5kIGFyZ3MgIiAtcG9zdFJvdXRlX3JlcyAiCi0gICAgICAgICAgICAgICBpZiB7W2xsZW5ndGggJGFyZ10gPiAxfSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgYXJncyAiXCJbbGluZGV4ICRhcmcgMl0sW2xpbmRleCAkYXJnIDFdLFtsaW5kZXggJGFyZyAwXVwiIgotICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBhcmdzICRhcmcKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIHshW2NhdGNoIHtzZXQgYXJnICR2YXJzKCRjb3JuZXIscG9zdF9yb3V0ZV9jYXBfZmFjdG9yKX1dfSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgYXJncyAiIC1wb3N0Um91dGVfY2FwICIKLSAgICAgICAgICAgICAgIGlmIHtbbGxlbmd0aCAkYXJnXSA+IDF9IHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBhcmdzICJcIltsaW5kZXggJGFyZyAyXSxbbGluZGV4ICRhcmcgMV0sW2xpbmRleCAkYXJnIDBdXCIiCi0gICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgYXBwZW5kIGFyZ3MgJGFyZwotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgeyFbY2F0Y2gge3NldCBhcmcgJHZhcnMoJGNvcm5lcixwb3N0X3JvdXRlX2Nsa19yZXNfZmFjdG9yKX1dfSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgYXJncyAiIC1wb3N0Um91dGVfY2xrcmVzICIKLSAgICAgICAgICAgICAgIGlmIHtbbGxlbmd0aCAkYXJnXSA+IDF9IHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBhcmdzICJcIltsaW5kZXggJGFyZyAyXSxbbGluZGV4ICRhcmcgMV0sW2xpbmRleCAkYXJnIDBdXCIiCi0gICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgYXBwZW5kIGFyZ3MgJGFyZwotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgeyFbY2F0Y2gge3NldCBhcmcgJHZhcnMoJGNvcm5lcixwb3N0X3JvdXRlX2Nsa19jYXBfZmFjdG9yKX1dfSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgYXJncyAiIC1wb3N0Um91dGVfY2xrY2FwICIKLSAgICAgICAgICAgICAgIGlmIHtbbGxlbmd0aCAkYXJnXSA+IDF9IHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBhcmdzICJcIltsaW5kZXggJGFyZyAyXSxbbGluZGV4ICRhcmcgMV0sW2xpbmRleCAkYXJnIDBdXCIiCi0gICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgYXBwZW5kIGFyZ3MgJGFyZwotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgeyFbY2F0Y2gge3NldCBhcmcgJHZhcnMoJGNvcm5lcixwb3N0X3JvdXRlX3hjYXBfZmFjdG9yKX1dfSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgYXJncyAiIC1wb3N0Um91dGVfeGNhcCAiCi0gICAgICAgICAgICAgICBpZiB7W2xsZW5ndGggJGFyZ10gPiAxfSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgYXJncyAiXCJbbGluZGV4ICRhcmcgMl0sW2xpbmRleCAkYXJnIDFdLFtsaW5kZXggJGFyZyAwXVwiIgotICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBhcmdzICRhcmcKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIHskYXJncyAhPSAiIn0gewotICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgInNldFJDRmFjdG9yICRhcmdzXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksc2V0X3JjX2ZhY3RvciAkY29tbWFuZF0KLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHNldCBjb21tYW5kIFtGRl9FREk6OmRlcmF0ZV90aW1pbmcgbWlubWF4XQotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLGRlcmF0ZV90aW1pbmcgJGNvbW1hbmRdCi0gICAgICAgICB9Ci0gICAgICAgICBtbW1jIHsKLSAgICAgICAgICAgIGlmIHskdmFycyh2ZXJib3NlKX0gewotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIENSRUFUSU5HIFJDIENPUk5FUlMgLi4uXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiNcbiIKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGZvcmVhY2ggcmMgJHZhcnMocmNfY29ybmVycykgewotIyAgICAgICAgICAgICAgIHNldCBjb21tYW5kICJcbiIKLSAgICAgICAgICAgICAgIHNldCBjb21tYW5kICIiCi0gICAgICAgICAgICAgICBzZXQgbm9uX2NvbW1hbmQgIiIKLSAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkcmMsc2NhbGVfdGNsKV19IHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJjcmVhdGVfcmNfY29ybmVyIC1uYW1lICRyYyIKLSMgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiIC1jYXBfdGFibGUgJHZhcnMoJHJjLGNhcF90YWJsZSkgIgotICAgICAgICAgICAgICAgICAgZm9yZWFjaCBvcHRpb24gImNhcF90YWJsZSBUIHF4X3RlY2hfZmlsZSBxeF9jb25mX2ZpbGUgcXhfbGliX2ZpbGUiIHsKLSAgICAgICAgICAgICAgICAgICAgIGlmIHshW2NhdGNoIHtzZXQgYXJnICR2YXJzKCRyYywkb3B0aW9uKX1dfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiIC0kb3B0aW9uICRhcmciCi0gICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiXG4iCi0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCBbRkY6OnNvdXJjZV9wbHVnICIkcmMsc2NhbGVfdGNsIl0KLSAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiY3JlYXRlX3JjX2Nvcm5lciAtbmFtZSAkcmMiCi0gICAgICAgICAgICAgICAgICBmb3JlYWNoIG9wdGlvbiAiY2FwX3RhYmxlIFQgcXhfdGVjaF9maWxlIHF4X2NvbmZfZmlsZSBxeF9saWJfZmlsZSIgewotICAgICAgICAgICAgICAgICAgICAgaWYgeyFbY2F0Y2gge3NldCBhcmcgJHZhcnMoJHJjLCRvcHRpb24pfV19IHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgLSRvcHRpb24gJGFyZyIKLSAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIH0KLSMgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiXG4iCi0jICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAtY2FwX3RhYmxlICR2YXJzKCRyYyxjYXBfdGFibGUpICIKLSAgICAgICAgICAgICAgICAgIGlmIHshW2NhdGNoIHtzZXQgYXJnICR2YXJzKCRyYyxwcmVfcm91dGVfcmVzX2ZhY3Rvcil9XX0gewotICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAtcHJlUm91dGVfcmVzICRhcmciCi0gICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIG5vbl9jb21tYW5kICIjIC1wcmVSb3V0ZV9yZXMgXCR2YXJzKCRyYyxwcmVfcm91dGVfcmVzX2ZhY3RvcilcbiIKLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIGlmIHshW2NhdGNoIHtzZXQgYXJnICR2YXJzKCRyYyxwcmVfcm91dGVfY2FwX2ZhY3Rvcil9XX0gewotICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAtcHJlUm91dGVfY2FwICRhcmciCi0gICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIG5vbl9jb21tYW5kICIjIC1wcmVSb3V0ZV9jYXAgXCR2YXJzKCRyYyxwcmVfcm91dGVfY2FwX2ZhY3RvcilcbiIKLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIGlmIHshW2NhdGNoIHtzZXQgYXJnICR2YXJzKCRyYyxwcmVfcm91dGVfY2xrX3Jlc19mYWN0b3IpfV19IHsKLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgLXByZVJvdXRlX2Nsa3JlcyAkYXJnIgotICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBub25fY29tbWFuZCAiIyAtcHJlUm91dGVfY2xrcmVzIFwkdmFycygkcmMscHJlX3JvdXRlX2Nsa19yZXNfZmFjdG9yKVxuIgotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgaWYgeyFbY2F0Y2gge3NldCBhcmcgJHZhcnMoJHJjLHByZV9yb3V0ZV9jbGtfY2FwX2ZhY3Rvcil9XX0gewotICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAtcHJlUm91dGVfY2xrY2FwICRhcmciCi0gICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIG5vbl9jb21tYW5kICIjIC1wcmVSb3V0ZV9jbGtjYXAgXCR2YXJzKCRyYyxwcmVfcm91dGVfY2xrX2NhcF9mYWN0b3IpXG4iCi0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICBpZiB7IVtjYXRjaCB7c2V0IGFyZyAkdmFycygkcmMscG9zdF9yb3V0ZV9yZXNfZmFjdG9yKX1dfSB7Ci0gICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiIC1wb3N0Um91dGVfcmVzICIKLSAgICAgICAgICAgICAgICAgICAgIGlmIHtbbGxlbmd0aCAkYXJnXSA+IDF9IHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJcIiRhcmdcIiIKLSAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAkYXJnCi0gICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIG5vbl9jb21tYW5kICIjIC1wb3N0Um91dGVfcmVzIFwkdmFycygkcmMscG9zdF9yb3V0ZV9yZXNfZmFjdG9yKVxuIgotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgaWYgeyFbY2F0Y2gge3NldCBhcmcgJHZhcnMoJHJjLHBvc3Rfcm91dGVfY2FwX2ZhY3Rvcil9XX0gewotICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAtcG9zdFJvdXRlX2NhcCAiCi0gICAgICAgICAgICAgICAgICAgICBpZiB7W2xsZW5ndGggJGFyZ10gPiAxfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiXCIkYXJnXCIiCi0gICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgJGFyZwotICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBub25fY29tbWFuZCAiIyAtcG9zdFJvdXRlX2NhcCBcJHZhcnMoJHJjLHBvc3Rfcm91dGVfY2FwX2ZhY3RvcilcbiIKLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIGlmIHshW2NhdGNoIHtzZXQgYXJnICR2YXJzKCRyYyxwb3N0X3JvdXRlX2Nsa19yZXNfZmFjdG9yKX1dfSB7Ci0gICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiIC1wb3N0Um91dGVfY2xrcmVzICIKLSAgICAgICAgICAgICAgICAgICAgIGlmIHtbbGxlbmd0aCAkYXJnXSA+IDF9IHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJcIiRhcmdcIiIKLSAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAkYXJnCi0gICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIG5vbl9jb21tYW5kICIjIC1wb3N0Um91dGVfcmVzIFwkdmFycygkcmMscG9zdF9yb3V0ZV9jbGtfcmVzX2ZhY3RvcilcbiIKLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIGlmIHshW2NhdGNoIHtzZXQgYXJnICR2YXJzKCRyYyxwb3N0X3JvdXRlX2Nsa19jYXBfZmFjdG9yKX1dfSB7Ci0gICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiIC1wb3N0Um91dGVfY2xrY2FwICIKLSAgICAgICAgICAgICAgICAgICAgIGlmIHtbbGxlbmd0aCAkYXJnXSA+IDF9IHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJcIiRhcmdcIiIKLSAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAkYXJnCi0gICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIG5vbl9jb21tYW5kICIjIC1wb3N0Um91dGVfY2xrY2FwIFwkdmFycygkcmMscG9zdF9yb3V0ZV9jbGtfY2FwX2ZhY3RvcilcbiIKLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIGlmIHshW2NhdGNoIHtzZXQgYXJnICR2YXJzKCRyYyxwb3N0X3JvdXRlX3hjYXBfZmFjdG9yKX1dfSB7Ci0gICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiIC1wb3N0Um91dGVfeGNhcCAiCi0gICAgICAgICAgICAgICAgICAgICBpZiB7W2xsZW5ndGggJGFyZ10gPiAxfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiXCIkYXJnXCIiCi0gICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgJGFyZwotICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBub25fY29tbWFuZCAiIyAtcG9zdFJvdXRlX3hjYXAgXCR2YXJzKCRyYyxwb3N0X3JvdXRlX3hjYXBfZmFjdG9yKVxuIgotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIlxuIgotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLGNyZWF0ZV9yY19jb3JuZXIgJGNvbW1hbmRdCi0gICAgICAgICAgICAgICBpZiB7JG5vbl9jb21tYW5kICE9ICIifSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiIKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyBBZGRpdGlvbmFsICh1bnVzZWQpIG9wdGlvbnMgLi4uLlxuIgotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4iCi0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgJG5vbl9jb21tYW5kCi0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiIKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIHshW2luZm8gZXhpc3RzIHZhcnMoY3BmX2ZpbGUpXSB8fCAoW2luZm8gZXhpc3RzIHZhcnMoY3BmX2ZpbGUpXSAmJiAhJHZhcnMoY3BmX3RpbWluZykpfSB7Ci0gICAgICAgICAgICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAgICAgICAgICAjIENQRl9USU1JTkcgPT0gRkFMU0UKLSAgICAgICAgICAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICAgICAgICAgIHNldCBjb21tYW5kICIiCi0gICAgICAgICAgICAgICBpZiB7JHZhcnModmVyYm9zZSl9IHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICIjXG4iCi0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiIyA8RkY+IENSRUFUSU5HIExJQlJBUlkgU0VUUyAuLi5cbiIKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICIjXG4iCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgJGNvbW1hbmQKLSAgICAgICAgICAgICAgIGZvcmVhY2ggc2V0ICR2YXJzKGxpYnJhcnlfc2V0cykgewotICAgICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgIiIKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJjcmVhdGVfbGlicmFyeV9zZXQgLW5hbWUgJHNldCAtdGltaW5nIFxbbGlzdCAiCi0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiJHZhcnMoJHNldCx0aW1pbmcpICIKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJcXVxuIgotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLGNyZWF0ZV9saWJyYXJ5X3NldCAkY29tbWFuZF0KLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhvcGNvbmRzKV19IHsKLSAgICAgICAgICAgICAgICAgIGlmIHskdmFycyh2ZXJib3NlKX0gewotICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiNcbiIKLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICIjIDxGRj4gQ1JFQVRJTkcgT1BFUkFUSU5HIENPTkRJVElPTlMgLi4uXG4iCi0gICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiI1xuIgotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgZm9yZWFjaCBvcGNvbmQgJHZhcnMob3Bjb25kcykgewotICAgICAgICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgImNyZWF0ZV9vcF9jb25kIC1uYW1lICRvcGNvbmQiCi0gICAgICAgICAgICAgICAgICAgICAjIFdlIGFscmVhZHkgY2hlY2tlZCBzbyB3ZSBrbm93IHRoZXNlIG9wdGlvbnMgZXhpc3QKLSAgICAgICAgICAgICAgICAgICAgIGZvcmVhY2ggb3B0aW9uICJsaWJyYXJ5X2ZpbGUgUCBWIFQiIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgLSRvcHRpb24gJHZhcnMoJG9wY29uZCwkb3B0aW9uKSIKLSAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJcbiIKLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxjcmVhdGVfb3BfY29uZCAkY29tbWFuZF0KLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIHNldCBjb21tYW5kICIiCi0gICAgICAgICAgICAgICBpZiB7JHZhcnModmVyYm9zZSl9IHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICIjXG4iCi0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiIyA8RkY+IENSRUFUSU5HIERFTEFZIENPUk5FUlMgLi4uXG4iCi0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiI1xuIgotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICRjb21tYW5kCi0gICAgICAgICAgICAgICBmb3JlYWNoIGMgJHZhcnMoZGVsYXlfY29ybmVycykgewotIyAgICAgICAgICAgICAgICAgIGlmIHshW2luZm8gZXhpc3RzIHZhcnMoJGMscmNfY29ybmVyKV19IHsgCi0jICAgICAgICAgICAgICAgICAgICAgcHV0cyAiU2tpcHBpbmcgZGVsYXkgY29ybmVycyAkYyIKLSMgICAgICAgICAgICAgICAgICAgICBQdXRzICI8RkY+IEVSUk9SOiBSQyBjb3JuZXIgZm9yIGRlbGF5IGNvcm5lciAkYyBtaXNzaW5nIgotIyAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlIAotIyAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIHNldCBjb21tYW5kICIiCi0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiY3JlYXRlX2RlbGF5X2Nvcm5lciAtbmFtZSAkYyIKLSAgICAgICAgICAgICAgICAgIGlmIHshW2NhdGNoIHtzZXQgYXJnICR2YXJzKCRjLGxpYnJhcnlfc2V0KX1dfSB7Ci0gICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiIC1saWJyYXJ5X3NldCAkYXJnIgotICAgICAgICAgICAgICAgICAgfSBlbHNlaWYgeyFbY2F0Y2gge3NldCBlYXJseSAkdmFycygkYyxlYXJseV9saWJyYXJ5X3NldCl9XSAmJgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICFbY2F0Y2gge3NldCBsYXRlICR2YXJzKCRjLGxhdGVfbGlicmFyeV9zZXQpfV19IHsKLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgLWVhcmx5X2xpYnJhcnlfc2V0ICRlYXJseSIKLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgLWxhdGVfbGlicmFyeV9zZXQgJGxhdGUiCi0gICAgICAgICAgICAgICAgICB9ICBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgIFB1dHMgIjxGRj4gRVJST1I6IExpYnJhcnkgc2V0cyBmb3IgZGVsYXkgY29ybmVyICRjIG5vdCBkZWZpbmVkIHByb3Blcmx5IgotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAtcmNfY29ybmVyICR2YXJzKCRjLHJjX2Nvcm5lcikiCi0gICAgICAgICAgICAgICAgICBpZiB7IVtjYXRjaCB7c2V0IG9wY29uZCAkdmFycygkYyxvcGNvbmQpfV0gJiYKLSAgICAgICAgICAgICAgICAgICAgICAhW2NhdGNoIHtzZXQgbGlicmFyeSAkdmFycygkYyxvcGNvbmRfbGlicmFyeSl9XX0gewotICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAtb3Bjb25kX2xpYnJhcnkgJGxpYnJhcnkiCi0gICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiIC1vcGNvbmQgJG9wY29uZCIKLSAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICBpZiB7IVtjYXRjaCB7c2V0IGVhcmx5ICR2YXJzKCRjLGVhcmx5X29wY29uZF9saWJyYXJ5KX1dICYmCi0gICAgICAgICAgICAgICAgICAgICAgICAgIVtjYXRjaCB7c2V0IGxhdGUgJHZhcnMoJGMsbGF0ZV9vcGNvbmRfbGlicmFyeSl9XX0gewotICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAtZWFybHlfb3Bjb25kX2xpYnJhcnkgJGVhcmx5IgotICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAtbGF0ZV9vcGNvbmRfbGlicmFyeSAkbGF0ZSIKLSAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgIGlmIHshW2NhdGNoIHtzZXQgZWFybHlfb3Bjb25kICR2YXJzKCRjLGVhcmx5X29wY29uZCl9XSAmJgotICAgICAgICAgICAgICAgICAgICAgICAgICFbY2F0Y2gge3NldCBsYXRlX29wY29uZCAkdmFycygkYyxsYXRlX29wY29uZCl9XX0gewotICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAtZWFybHlfb3Bjb25kICRlYXJseV9vcGNvbmQiCi0gICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiIC1sYXRlX29wY29uZCAkbGF0ZV9vcGNvbmQiCi0gICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiXG4iCi0gICAgICAgICAgICAgICAgICBpZiB7IVtjYXRjaCB7c2V0IGRvbWFpbnMgJHZhcnMoJGMscG93ZXJfZG9tYWlucyl9XX0gewotICAgICAgICAgICAgICAgICAgICAgc2V0IGF0dHJpYnV0ZV9saXN0ICJsaWJyYXJ5X3NldCBvcGNvbmRfbGlicmFyeSBvcGNvbmQgaXJkcm9wX2ZpbGUgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXRlX2xpYnJhcnlfc2V0IGVhcmx5X2xpYnJhcnlfc2V0IFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF0ZV9vcGNvbmRfbGlicmFyeSBlYXJseV9vcGNvbmRfbGlicmFyeSBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhdGVfb3Bjb25kIGVhcmx5X29wY29uZCBsYXRlX2lyZHJvcF9maWxlIGVhcmx5X2lyZHJvcF9maWxlIgotICAgICAgICAgICAgICAgICAgICAgZm9yZWFjaCBkb21haW4gJGRvbWFpbnMgewotICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiB1cGRhdGVfZGVsYXlfY29ybmVyIC1uYW1lICRjIC1wb3dlcl9kb21haW4gXCIkZG9tYWluXCIiCi0gICAgICAgICAgICAgICAgICAgICAgICAgZm9yZWFjaCBhdHRyICRhdHRyaWJ1dGVfbGlzdCB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCRjLCRkb21haW4sJGF0dHIpXX0gewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgLSRhdHRyICR2YXJzKCRjLCRkb21haW4sJGF0dHIpIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gCi0gICAgICAgICAgICAgICAgICAgICAgICAgfSAKLSAgICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiXG4iCi0gICAgICAgICAgICAgICAgICAgICB9Ci0jICAgICAgICAgICAgICAgICAgICAgICAgaWYgeyFbY2F0Y2gge3NldCBvcGNvbmQgJHZhcnMoJGRvbWFpbixvcGNvbmQpfV0gJiYKLSMgICAgICAgICAgICAgICAgICAgICAgICAgICAgIVtjYXRjaCB7c2V0IGxpYnJhcnkgJHZhcnMoJGRvbWFpbixvcGNvbmRfbGlicmFyeSl9XX0gewotIyAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgLW9wY29uZF9saWJyYXJ5ICRsaWJyYXJ5IgotIyAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgLW9wY29uZCAkb3Bjb25kIgotIyAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxjcmVhdGVfZGVsYXlfY29ybmVyICRjb21tYW5kXQotICAgICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAgICBzZXQgY29tbWFuZCAiIgotICAgICAgICAgICAgICAgaWYgeyR2YXJzKHZlcmJvc2UpfSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiI1xuIgotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiMgPEZGPiBDUkVBVElORyBDT05TVFJBSU5UIE1PREVTIC4uLlxuIgotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiNcbiIKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAkY29tbWFuZAotCi0gICAgICAgICAgICAgICAjIFZhcmlhYmxlIGNjb21tYW5kIGNhcHR1cmVzIHRoZSBjb25zdHJhaW50IGNyZWF0aW9uIGZvciB0aGUgdmlld19kZWZpbml0aW9uLnRjbCAKLSAgICAgICAgICAgICAgICMgVmFyaWFibGUgdWNvbW1hbmQgY2FwdHVyZSB0aGUgY29uc3RyYWludCB1cGRhdGVzIGZvciBoaWVyL2lsbSBmbG93cwotICAgICAgICAgICAgICAgIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAKLSAgICAgICAgICAgICAgIHNldCBjY29tbWFuZCAiIgotCi0gICAgICAgICAgICAgICBzZXQgYWN0aXZlX3ZpZXdzIFtsaXN0XQotICAgICAgICAgICAgICAgc2V0IGFjdGl2ZV9tb2RlcyBbbGlzdF0KLQotICAgICAgICAgICAgICAgIyBHZXQgbW9kZXMgYWN0dWFsbHkgdXNlZCAuLi4gKGNoYW5nZWQgZnJvbSBhY3RpdmUgdG8gYWxsIHZpZXdzKQotICAgICAgICAgICAgICAgZm9yZWFjaCB2aWV3IFtjb25jYXQgJHZhcnMoc2V0dXBfYW5hbHlzaXNfdmlld3MpICR2YXJzKGhvbGRfYW5hbHlzaXNfdmlld3MpXSB7Ci0gICAgICAgICAgICAgICAgICBpZiB7W2xzZWFyY2ggJGFjdGl2ZV92aWV3cyAkdmlld10gPT0gLTF9IHsKLSMgICAgICAgICAgICAgICAgICAgICBsYXBwZW5kIGFjdGl2ZV92aWV3cyAkdmlldwotICAgICAgICAgICAgICAgICAgICAgaWYge1tsc2VhcmNoICRhY3RpdmVfbW9kZXMgJHZhcnMoJHZpZXcsY29uc3RyYWludF9tb2RlKV0gPT0gLTF9IHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGxhcHBlbmQgYWN0aXZlX21vZGVzICR2YXJzKCR2aWV3LGNvbnN0cmFpbnRfbW9kZSkKLSAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIHNldCBmbGF0dGVuX2lsbSAwCi0gICAgICAgICAgICAgICBmb3JlYWNoIGNvbnN0cmFpbnRfbW9kZSAkYWN0aXZlX21vZGVzIHsKLSAgICAgICAgICAgICAgICAgIGlmIHshJHZhcnMoaWxtKX0gewotICAgICAgICAgICAgICAgICAgICAgIyBEZWZhdWx0IGZsYXQgZmxvdwotICAgICAgICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCRjb25zdHJhaW50X21vZGUscHJlX2N0c19zZGMpXX0gewotICAgICAgICAgICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgICJjcmVhdGVfY29uc3RyYWludF9tb2RlIC1uYW1lICRjb25zdHJhaW50X21vZGUgIgotICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIi1zZGNfZmlsZXMgXFtsaXN0ICR2YXJzKCRjb25zdHJhaW50X21vZGUscHJlX2N0c19zZGMpXF0gIgotICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIlxuIgotICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNjb21tYW5kIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLGNyZWF0ZV9jb25zdHJhaW50X21vZGUgJGNvbW1hbmRdCi0gICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICAgcHV0cyAiQ29uc3RyYWludCBmaWxlIG5vdCBmb3VuZCBmb3IgJGNvbnN0cmFpbnRfbW9kZSAuLi4iIAotICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgaWYgeyR2YXJzKHJjKX0gewotICAgICAgICAgICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCRjb25zdHJhaW50X21vZGUsc3ludGhfc2RjKV19IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldCBjb21tYW5kICAiY3JlYXRlX2NvbnN0cmFpbnRfbW9kZSAtbmFtZSAkY29uc3RyYWludF9tb2RlICIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICItc2RjX2ZpbGVzIFxbbGlzdCAkdmFycygkY29uc3RyYWludF9tb2RlLHN5bnRoX3NkYylcXSAiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiXG4iCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY2NvbW1hbmQgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksY3JlYXRlX2NvbnN0cmFpbnRfbW9kZSAkY29tbWFuZF0KLSAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICBwdXRzICJDb25zdHJhaW50IGZpbGUgbm90IGZvdW5kIGZvciAkY29uc3RyYWludF9tb2RlIC4uLiIgCi0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgc2V0IHNkY3MgIiIKLSAgICAgICAgICAgICAgICAgICAgICMgSUxNIGZsb3cKLSAgICAgICAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhwYXJ0aXRpb25fbGlzdCldfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAjIEhpZXJhcmNoeSArIElMTXMKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkY29uc3RyYWludF9tb2RlLHByZV9jdHNfaWxtX3NkYyldfSB7Ci0jICAgICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiLXNkY19maWxlcyBcW2xpc3QgJHZhcnMoJGNvbnN0cmFpbnRfbW9kZSxwcmVfY3RzX3NkYylcXSAiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBleGVjIC9iaW4vdG91Y2ggZW1wdHkuc2RjCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgc2RjcyAiLXNkY19maWxlcyBlbXB0eS5zZGMgIiAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBzZGNzICItaWxtX3NkY19maWxlcyBcW2xpc3QgJHZhcnMoJGNvbnN0cmFpbnRfbW9kZSxwcmVfY3RzX2lsbV9zZGMpXF1cbiIKLSAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICBleGVjIC9iaW4vdG91Y2ggZW1wdHkuc2RjCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgc2RjcyAiLXNkY19maWxlcyBlbXB0eS5zZGMgIiAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBzZGNzICItaWxtX3NkY19maWxlcyBcW2xpc3QgJHZhcnMoJGNvbnN0cmFpbnRfbW9kZSxwcmVfY3RzX3NkYylcXVxuIgotICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgaWYgeyR2YXJzKHRvcCl9IHsgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBpZiB7IVtpbmZvIGV4aXN0cyB1Y29tbWFuZF19IHsgc2V0IHVjb21tYW5kICIifQotICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgICJ1cGRhdGVfY29uc3RyYWludF9tb2RlIC1uYW1lICRjb25zdHJhaW50X21vZGUgIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgJHNkY3MKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWFuZCBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSx1cGRhdGVfY29uc3RyYWludF9tb2RlICRjb21tYW5kXQotIyAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWFuZCBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxmbGF0dGVuX2lsbSAiZmxhdHRlbklsbVxuc2V0SWxtTW9kZSAta2VlcEZsYXR0ZW4gdHJ1ZVxuIl0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldCBkeW5hbWljX3VwZGF0ZSAxCi0jICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWUKLSAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICBzZXQgY29tbWFuZCAgImNyZWF0ZV9jb25zdHJhaW50X21vZGUgLW5hbWUgJGNvbnN0cmFpbnRfbW9kZSAiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAkc2RjcwotICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNjb21tYW5kIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLGNyZWF0ZV9jb25zdHJhaW50X21vZGUgJGNvbW1hbmRdCi0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICAgIyBJTE0gb25seQotICAgICAgICAgICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgICJjcmVhdGVfY29uc3RyYWludF9tb2RlIC1uYW1lICRjb25zdHJhaW50X21vZGUgIgotICAgICAgICAgICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCRjb25zdHJhaW50X21vZGUscHJlX2N0c19pbG1fc2RjKV19IHsKLSMgICAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICItc2RjX2ZpbGVzIFxbbGlzdCAkdmFycygkY29uc3RyYWludF9tb2RlLHByZV9jdHNfc2RjKVxdICIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4ZWMgL2Jpbi90b3VjaCBlbXB0eS5zZGMKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBzZGNzICItc2RjX2ZpbGVzIGVtcHR5LnNkYyAiIAotICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIHNkY3MgIi1pbG1fc2RjX2ZpbGVzIFxbbGlzdCAkdmFycygkY29uc3RyYWludF9tb2RlLHByZV9jdHNfaWxtX3NkYylcXVxuIgotICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4ZWMgL2Jpbi90b3VjaCBlbXB0eS5zZGMKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBzZGNzICItc2RjX2ZpbGVzIGVtcHR5LnNkYyAiIAotICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIHNkY3MgIi1pbG1fc2RjX2ZpbGVzIFxbbGlzdCAkdmFycygkY29uc3RyYWludF9tb2RlLHByZV9jdHNfc2RjKVxdXG4iCi0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0jICAgICAgICAgICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCRjb25zdHJhaW50X21vZGUscHJlX2N0c19zZGMpXX0gewotIyAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldCBjb21tYW5kICAiY3JlYXRlX2NvbnN0cmFpbnRfbW9kZSAtbmFtZSAkY29uc3RyYWludF9tb2RlICIKLSMgICAgICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiLXNkY19maWxlcyBcW2xpc3QgJHZhcnMoJGNvbnN0cmFpbnRfbW9kZSxwcmVfY3RzX3NkYylcXSAiCi0jICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIlxuIgotIyAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjY29tbWFuZCBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxjcmVhdGVfY29uc3RyYWludF9tb2RlICRjb21tYW5kXQotIyAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0jICAgICAgICAgICAgICAgICAgICAgICAgICAgcHV0cyAiQ29uc3RyYWludCBmaWxlIG5vdCBmb3VuZCBmb3IgJGNvbnN0cmFpbnRfbW9kZSAuLi4iIAotIyAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICRzZGNzCi0gICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY2NvbW1hbmQgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksY3JlYXRlX2NvbnN0cmFpbnRfbW9kZSAkY29tbWFuZF0KLSMgICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY2NvbW1hbmQgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksZmxhdHRlbl9pbG0gImZsYXR0ZW5JbG1cbnNldElsbU1vZGUgLWtlZXBGbGF0dGVuIHRydWVcbiJdCi0gICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICRjY29tbWFuZAotCi0gICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIGR5bmFtaWNfdXBkYXRlXSAmJiAkZHluYW1pY191cGRhdGV9IHsKLSMgICAgICAgICAgICAgICAgICBzZXQgY29tbWFuZCAiIgotIyAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJmb3JlYWNoIG1vZGUgXFthbGxfY29uc3RyYWludF9tb2Rlc1xdIHtcbiIKLSMgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiICAgdXBkYXRlX2NvbnN0cmFpbnRfbW9kZSAtbmFtZSBcJG1vZGUgLXNkY19maWxlcyBlbXB0eS5zZGMgXFxcbiIKLSMgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiICAgICAgLWlsbV9zZGNfZmlsZXMgXFtnZXRfY29uc3RyYWludF9tb2RlIFwkbW9kZSAtc2RjX2ZpbGVzXF1cbiIKLSMgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAifVxuIgotIyAgICAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWFuZCBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSx1cGRhdGVfY29uc3RyYWludF9tb2RlICRjb21tYW5kXQotCi0gICAgICAgICAgICAgICAgICBzZXQgY29tbWFuZCAiIgotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgImZvcmVhY2ggbW9kZSBcW2FsbF9jb25zdHJhaW50X21vZGVzXSBce1xuIgotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAgIGZvcmVhY2ggdmlldyBcW2FsbF9hbmFseXNpc192aWV3c10gXHtcbiIKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgICAgICBzZXQgbSBcW3JlZ3N1YiBfXCR2aWV3IFwkbW9kZSBcIlwiXF1cbiIKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgICAgICBpZiBceyggXCRtICE9IFwkbW9kZSApICYmICggXFtsc2VhcmNoIFxbYWxsX2NvbnN0cmFpbnRfbW9kZXNcXSBcJG1cXSAhPSAtMSkgXH0gXHtcbiIKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgICAgICAgICB1cGRhdGVfY29uc3RyYWludF9tb2RlIC1uYW1lIFwkbW9kZSAtc2RjX2ZpbGVzIGVtcHR5LnNkYyAtaWxtX3NkY19maWxlcyBcW2dldF9jb25zdHJhaW50X21vZGUgXCRtIC1pbG1fc2RjX2ZpbGVzXF1cbiIKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgICAgICBcfVxuIgotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAgIFx9IFxuIgotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIlx9IFxuIgotICAgICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tYW5kIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLGR5bmFtaWNfdXBkYXRlICRjb21tYW5kXQotCi0gICAgICAgICAgICAgICAgICBpZiB7JHZhcnMoaWxtKX0gewotIyAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWFuZCBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxmbGF0dGVuX2lsbSAiZmxhdHRlbklsbVxuc2V0SWxtTW9kZSAta2VlcEZsYXR0ZW4gdHJ1ZVxuIl0KLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWFuZCBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxmbGF0dGVuX2lsbSAiZmxhdHRlbklsbVxuIl0KLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIH0gCi0KLSAgICAgICAgICAgICAgIGlmIHsoJHZhcnModXNlcl9tb2RlKSA9PSAiaGllciIpICYmICFbaW5mbyBleGlzdHMgdmFycyh2aWV3X2RlZmluaXRpb25fdGNsKV19IHsKLSAgICAgICAgICAgICAgICAgIGlmIHsoJHZhcnMoc3RlcCkgPT0gImFzc2VtYmxlIikgfHwgKCR2YXJzKHN0ZXApID09ICJyZWJ1ZGdldCIpIHx8ICgkdmFycyhzdGVwKSA9PSAiYXNzZW1ibGVfZmxleGlsbSIpIHx8ICgkdmFycyhzdGVwKSA9PSAicGFydGl0aW9uX3BsYWNlIikgfHwgKCR2YXJzKHN0ZXApID09ICJtb2RlbF9nZW4iKSB8fCAoJHZhcnMoc3RlcCkgPT0gInByb3RvdHlwZSIpfSB7Ci0gICAgICAgICAgICAgICAgICAgICAjIENyZWF0ZSBtbW1jIGZpbGUgZm9yIHBhcnRpdGlvbiBhbmQgYXNzZW1ibGUgc3RlcAotICAgICAgICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGNwZl9maWxlKV0gJiYgJHZhcnMoY3BmX3RpbWluZyl9IHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHNldCBtbW1jX2ZpbGUgJHZhcnMoc2NyaXB0X2RpcikvaW5jcl92aWV3X2RlZmluaXRpb24udGNsCi0gICAgICAgICAgICAgICAgICAgICAgICBzZXQgb3AgW29wZW4gJG1tbWNfZmlsZSB3XQotICAgICAgICAgICAgICAgICAgICAgICAgcHV0cyAkb3AgW0ZGOjpwcmV0dHlfcHJpbnQgJGNvbW1hbmRzIDFdCi0gICAgICAgICAgICAgICAgICAgICAgICBjbG9zZSAkb3AKLSAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnModmlld19kZWZpbml0aW9uX3RjbCldfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICBzZXQgbW1tY19maWxlICR2YXJzKHZpZXdfZGVmaW5pdGlvbl90Y2wpCi0gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0IG1tbWNfZmlsZSAkdmFycyhzY3JpcHRfZGlyKS92aWV3X2RlZmluaXRpb24udGNsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBzZXQgb3AgW29wZW4gJG1tbWNfZmlsZSB3XQotICAgICAgICAgICAgICAgICAgICAgICAgICAgcHV0cyAkb3AgW0ZGOjpwcmV0dHlfcHJpbnQgJGNvbW1hbmRzIDFdCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBjbG9zZSAkb3AKLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICNyZXR1cm4gJGNvbW1hbmRzCi0gICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgIyBSZXR1cm4gb25seSBjb25zdHJhaW50IG1vZGUgdXBkYXRlcyBmb3IgdG9wIGxldmVsIGZsb3cKLSAgICAgICAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdWNvbW1hbmRdfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJHVjb21tYW5kCi0gICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKHZpZXdfZGVmaW5pdGlvbl90Y2wpXX0gewotICAgICAgICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB1Y29tbWFuZF19IHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAkdWNvbW1hbmQKLSAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycyhwb3dlcl9hbmFseXNpc192aWV3KV19IHsKLSAgICAgICAgICAgICAgICAgIHNldCB2YXJzKHBvd2VyX2FuYWx5c2lzX3ZpZXcpICIiCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICBzZXQgdmFycyhhbGxfYW5hbHlzaXNfdmlld3MpIFwKLSAgICAgICAgICAgICAgICAgIFtsc29ydCAtdW5pcXVlIFtjb25jYXQgJHZhcnMoc2V0dXBfYW5hbHlzaXNfdmlld3MpIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgJHZhcnMoaG9sZF9hbmFseXNpc192aWV3cykgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAkdmFycyhwb3dlcl9hbmFseXNpc192aWV3KV1dCi0gICAgICAgICAgICAgICBzZXQgY29tbWFuZCAiIgotICAgICAgICAgICAgICAgaWYgeyR2YXJzKHZlcmJvc2UpfSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiI1xuIgotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiMgPEZGPiBDUkVBVElORyBBTkFMWVNJUyBWSUVXUyAuLi5cbiIKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICIjXG4iCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICBmb3JlYWNoIHZpZXcgJHZhcnMoYWxsX2FuYWx5c2lzX3ZpZXdzKSB7Ci0jICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgImlmIHtcW2xzZWFyY2ggXFthbGxfYW5hbHlzaXNfdmlld3NcXSAkdmlld1xdID09IC0xfSB7XG4iCi0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiICAgY3JlYXRlX2FuYWx5c2lzX3ZpZXciCi0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiICAgICAgLW5hbWUgJHZpZXciCi0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiICAgICAgLWNvbnN0cmFpbnRfbW9kZSAkdmFycygkdmlldyxjb25zdHJhaW50X21vZGUpIgotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAgICAgIC1kZWxheV9jb3JuZXIgJHZhcnMoJHZpZXcsZGVsYXlfY29ybmVyKVxuIgotIyAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJ9XG4iCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksY3JlYXRlX2FuYWx5c2lzX3ZpZXcgJGNvbW1hbmRdCi0gICAgICAgICAgICAgICBpZiB7IVtpbmZvIGV4aXN0cyB2YXJzKGdlbl9wb3N0bG9hZCldfSB7IAotICAgICAgICAgICAgICAgICAgaWYge1tsaW5kZXggW3NwbGl0ICR2YXJzKHZlcnNpb24pICIuIl0gIDBdIDw9IDEwfSB7Ci0gICAgICAgICAgICAgICAgICAgICAjIExlZ2FjeSBzdXBwb3J0LCBzbyBubyBJRUVFIDE4MDEgc3VwcG9ydAotICAgICAgICAgICAgICAgICAgICAgIyBhcHBlbmQgY29tbWFuZHMgW0ZGX0VESTo6bG9hZF9wb3dlcl9pbnRlbnRdCi0gICAgICAgICAgICAgICAgICAgICBzZXQgY29tbWFuZCAiIgotICAgICAgICAgICAgICAgICAgICAgZm9yZWFjaCBjICR2YXJzKGRlbGF5X2Nvcm5lcnMpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIHshW2NhdGNoIHtzZXQgZG9tYWlucyAkdmFycygkYyxwb3dlcl9kb21haW5zKX1dfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JlYWNoIGRvbWFpbiAkZG9tYWlucyB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiIHVwZGF0ZV9kZWxheV9jb3JuZXIgLW5hbWUgJGMgLXBvd2VyX2RvbWFpbiBcIiRkb21haW5cIlxuIgotICAgICAgIyAgICAgICAgICAgICAgICAgICAgICAgIGlmIHshW2NhdGNoIHtzZXQgb3Bjb25kICR2YXJzKCRkb21haW4sb3Bjb25kKX1dICYmCi0gICAgICAjICAgICAgICAgICAgICAgICAgICAgICAgICAgICFbY2F0Y2gge3NldCBsaWJyYXJ5ICR2YXJzKCRkb21haW4sb3Bjb25kX2xpYnJhcnkpfV19IHsKLSAgICAgICMgICAgICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiIC1vcGNvbmRfbGlicmFyeSAkbGlicmFyeSIKLSAgICAgICMgICAgICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiIC1vcGNvbmQgJG9wY29uZCIKLSAgICAgICMgICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgaW5pdCx1cGRhdGVfZGVsYXlfY29ybmVyICRjb21tYW5kXQotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICAgICAgICAgICMgQ1BGX1RJTUlORyA9PSBUUlVFCi0gICAgICAgICAgICAgICAjIFNpbmNlIHRoZSBkZWxheSBjb3JuZXIgbmFtZXMgYXJlIGRlcml2ZWQgZnJvbSB0aGUgQ1BGLCB0aGV5Ci0gICAgICAgICAgICAgICAjIGFyZSBub3Qga25vd24uICBIb3dldmVyLCB0aGV5IGNhbiBiZSByZXRyaWV2ZWQgZnJvbSB0aGUKLSAgICAgICAgICAgICAgICMgYW5hbHlzaXNfdmlld3MKLSAgICAgICAgICAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSMgICAgICAgICAgICAgICBpZiB7JHZhcnModmVyYm9zZSl9IHsKLSMgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgIFVQREFUSU5HIERFTEFZIENPUk5FUlMgIC4uLlxuIgotIyAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIGlmIHshW2luZm8gZXhpc3RzIHZhcnMoZGVsYXlfY29ybmVycyldfSB7Ci0gICAgICAgICAgICAgICAgICBzZXQgdmFycyhkZWxheV9jb3JuZXJzKSBbRkY6OltnZXRfYnlfc3VmZml4IHZhcnMgIixyY19jb3JuZXIiXV0KLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIHNldCBjb21tYW5kICIiCi0gICAgICAgICAgICAgICBmb3JlYWNoIGNvcm5lciAkdmFycyhkZWxheV9jb3JuZXJzKSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiaWYge1xbbHNlYXJjaCAtZXhhY3QgXFthbGxfZGVsYXlfY29ybmVyc1xdICRjb3JuZXJcXSAhPSAtMX0ge1xuIgotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAgIHVwZGF0ZV9kZWxheV9jb3JuZXIgLW5hbWUgJGNvcm5lciAtcmNfY29ybmVyICR2YXJzKCRjb3JuZXIscmNfY29ybmVyKVxuIgotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIn1cbiIKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSx1cGRhdGVfZGVsYXlfY29ybmVyICRjb21tYW5kXQotICAgICAgICAgICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgICAgICAgICAgIyBVcGRhdGUgY29uc3RyYWludHMgbW9kZXMgaWYgYW4gSUxNIGZsb3cKLSAgICAgICAgICAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICAgICAgICAgIHNldCBjY29tbWFuZCAiIgotICAgICAgICAgICAgICAgZm9yZWFjaCBjb25zdHJhaW50X21vZGUgJHZhcnMoY29uc3RyYWludF9tb2RlcykgewotICAgICAgICAgICAgICAgICAgaWYgeyR2YXJzKGlsbSl9IHsKLSAgICAgICAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhwYXJ0aXRpb25fbGlzdCldfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBzZXQgY29tbWFuZCAgInVwZGF0ZV9jb25zdHJhaW50X21vZGUgLW5hbWUgJGNvbnN0cmFpbnRfbW9kZSAiCi0gICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgICJjcmVhdGVfY29uc3RyYWludF9tb2RlIC1uYW1lICRjb25zdHJhaW50X21vZGUgIgotICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCRjb25zdHJhaW50X21vZGUscHJlX2N0c19pbG1fc2RjKV19IHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICItc2RjX2ZpbGVzIFxbbGlzdCAkdmFycygkY29uc3RyYWludF9tb2RlLHByZV9jdHNfc2RjKVxdICIKLSAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICItaWxtX3NkY19maWxlcyBcW2xpc3QgJHZhcnMoJGNvbnN0cmFpbnRfbW9kZSxwcmVfY3RzX2lsbV9zZGMpXF0gIgotICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGV4ZWMgL2Jpbi90b3VjaCBlbXB0eS5zZGMKLSAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICItc2RjX2ZpbGVzIGVtcHR5LnNkYyAiCi0gICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiLWlsbV9zZGNfZmlsZXMgXFtsaXN0ICR2YXJzKCRjb25zdHJhaW50X21vZGUscHJlX2N0c19zZGMpXF0gIgotICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIlxuIgotICAgICAgICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKHBhcnRpdGlvbl9saXN0KV19IHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjY29tbWFuZCBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSx1cGRhdGVfY29uc3RyYWludF9tb2RlICRjb21tYW5kXQotICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjY29tbWFuZCBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxjcmVhdGVfY29uc3RyYWludF9tb2RlICRjb21tYW5kXQotICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAgICAgICAgICAjIFJldHVybiBlYXJseSBmb3IgcGFydGl0aW9uIGltcGxlbWVudGF0aW9uIGZsb3dzIC4uLgotICAgICAgICAgICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgICAgICAgICAgaWYgeygoJHZhcnMobW9kZSkgPT0gImhpZXIiKSB8fCAoW2luZm8gZXhpc3RzIHZhcnMoaGllcildICYmICR2YXJzKGhpZXIpKSkgJiYgKCR2YXJzKHN0ZXApICE9ICJwYXJ0aXRpb25fcGxhY2UiKX0gewotICAgICAgICAgICAgICAgICAgc2V0IGNvbW1hbmRzICRjY29tbWFuZAotICAgICAgICAgICAgICAgICAgcmV0dXJuICRjb21tYW5kcwotICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAkY2NvbW1hbmQKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgICAgICAgIyBVcGRhdGUgbGlicmFyeV9zZXRzIHdpdGggU0kgbGlicmFyaWVzIGlmIGRlZmluZWQKLSAgICAgICAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLQotIyAgICAgICAgICAgIGlmIHskdmFycyh2ZXJib3NlKX0gewotIyAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyAgVVBEQVRJTkcgTElCUkFSWSBTRVRTICAuLi5cbiIKLSMgICAgICAgICAgICB9Ci0gICAgICAgICAgICBzZXQgY29tbWFuZCAiIgotICAgICAgICAgICAgZm9yZWFjaCBzZXQgJHZhcnMobGlicmFyeV9zZXRzKSB7Ci0gICAgICAgICAgICAgICBpZiB7KFtpbmZvIGV4aXN0cyB2YXJzKCRzZXQsc2kpXSAmJiAoJHZhcnMoJHNldCxzaSkgIT0gIiIpKSB8fCBcCi0gICAgICAgICAgICAgICAgICAgKFtpbmZvIGV4aXN0cyB2YXJzKCRzZXQsc29jdildICYmICgkdmFycygkc2V0LHNvY3YpICE9ICIiKSkgfHwgXAotICAgICAgICAgICAgICAgICAgIChbaW5mbyBleGlzdHMgdmFycygkc2V0LGFvY3YpXSAmJiAoJHZhcnMoJHNldCxhb2N2KSAhPSAiIikpfSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAidXBkYXRlX2xpYnJhcnlfc2V0IC1uYW1lICRzZXQiCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJHNldCxzb2N2KV0gJiYgKCR2YXJzKCRzZXQsc29jdikgIT0gIiIpfSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiIC1zb2N2IFxbbGlzdCIKLSAgICAgICAgICAgICAgICAgIGZvcmVhY2ggZmlsZSAkdmFycygkc2V0LHNvY3YpIHsKLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgJGZpbGUiCi0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiXF0iCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJHNldCxhb2N2KV0gJiYgKCR2YXJzKCRzZXQsYW9jdikgIT0gIiIpfSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiIC1hb2N2IFxbbGlzdCIKLSAgICAgICAgICAgICAgICAgIGZvcmVhY2ggZmlsZSAkdmFycygkc2V0LGFvY3YpIHsKLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgJGZpbGUiCi0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiXF0iCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJHNldCxzaSldICYmICgkdmFycygkc2V0LHNpKSAhPSAiIil9IHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgLXNpIFxbbGlzdCIKLSAgICAgICAgICAgICAgICAgIGZvcmVhY2ggZmlsZSAkdmFycygkc2V0LHNpKSB7Ci0gICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiICRmaWxlIgotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIlxdIgotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIlxuIgotICAgICAgICAgICAgfQotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHVwZGF0ZV9saWJyYXJ5X3NldCAkY29tbWFuZF0KLQotICAgICAgICAgICAgaWYgeyR2YXJzKGZsb3cpICE9ICJtbW1jIn0gewotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRl9FREk6OnVwZGF0ZV90aW1pbmcgbW1tY10KLSAgICAgICAgICAgIH0KLSMgICAgICAgICAgICBzZXQgY29tbWFuZCBbRkZfRURJOjpkZXJhdGVfdGltaW5nIG1tbWNdCi0jICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLGRlcmF0ZV90aW1pbmcgJGNvbW1hbmRdCi0KLSAgICAgICAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICAgICAgICMgRGVmaW5lIHNldHVwIC8gaG9sZCBhbmFseXNpcyB2aWV3cyBhbmQgZW5hYmxlIHRoZSBkZWZhdWx0IHZpZXdzCi0gICAgICAgICAgICAjIGZvciBlYWNoCi0gICAgICAgICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0KLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAic2V0X2FuYWx5c2lzX3ZpZXciCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiAtc2V0dXAgXFtsaXN0ICR2YXJzKGFjdGl2ZV9zZXR1cF92aWV3cylcXSIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIC1ob2xkIFxbbGlzdCAkdmFycyhhY3RpdmVfaG9sZF92aWV3cylcXVxuIgotIyAgICAgICAgICAgIHNldCBjb21tYW5kICJzZXRfZGVmYXVsdF92aWV3IC1zZXR1cCAkdmFycyhkZWZhdWx0X3NldHVwX3ZpZXcpIC1ob2xkICR2YXJzKGRlZmF1bHRfaG9sZF92aWV3KVxuIgotIyAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxzZXRfZGVmYXVsdF92aWV3ICRjb21tYW5kXQotIyAgICAgICAgICAgIHNldCBjb21tYW5kIFtGRl9FREk6OmRlcmF0ZV90aW1pbmcgbW1tY10KLSMgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksZGVyYXRlX3RpbWluZyAkY29tbWFuZF0KLSMgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMocG93ZXJfYW5hbHlzaXNfdmlldyldICYmICgkdmFycyhwb3dlcl9hbmFseXNpc192aWV3KSAhPSAiIil9IHsKLSMgICAgICAgICAgICAgICBzZXQgY29tbWFuZCAic2V0X3Bvd2VyX2FuYWx5c2lzX21vZGUgLWFuYWx5c2lzX3ZpZXcgJHZhcnMocG93ZXJfYW5hbHlzaXNfdmlldylcbiIKLSMgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksc2V0X3Bvd2VyX2FuYWx5c2lzX21vZGUgJGNvbW1hbmRdCi0jICAgICAgICAgICAgfQotICAgICAgICAgICAgZmlsZSBta2RpciAkdmFycyhzY3JpcHRfZGlyKQotICAgICAgICAgICAgaWYge1tsaW5kZXggW3NwbGl0ICR2YXJzKHZlcnNpb24pICIuIl0gIDBdIDw9IDEwfSB7Ci0gICAgICAgICAgICAgICBpZiB7JHZhcnMoZmxhdCkgIT0gImZ1bGwifSB7Ci0gICAgICAgICAgICAgICAgICBzZXQgb3AgW29wZW4gJHZhcnMoc2NyaXB0X2RpcikvbW1tYy50Y2wgd10KLSAgICAgICAgICAgICAgICAgIHB1dHMgJG9wIFtGRjo6cHJldHR5X3ByaW50ICRjb21tYW5kcyAxXQotICAgICAgICAgICAgICAgICAgY2xvc2UgJG9wCi0jICAgICAgICAgICAgICAgICAgc2V0IGNvbW1hbmRzICJzb3VyY2UgXCR2YXJzKHNjcmlwdF9kaXIpL21tbWMudGNsXG4iCi0gICAgICAgICAgICAgICAgICBzZXQgY29tbWFuZHMgInNvdXJjZSAkdmFycyhzY3JpcHRfZGlyKS9tbW1jLnRjbFxuIgotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhjcGZfZmlsZSldICYmICR2YXJzKGNwZl90aW1pbmcpfSB7Ci0gICAgICAgICAgICAgICAgICBzZXQgbW1tY19maWxlICR2YXJzKHNjcmlwdF9kaXIpL2luY3Jfdmlld19kZWZpbml0aW9uLnRjbAotICAgICAgICAgICAgICAgICAgc2V0IG9wIFtvcGVuICRtbW1jX2ZpbGUgd10KLSAgICAgICAgICAgICAgICAgIHB1dHMgJG9wIFtGRjo6cHJldHR5X3ByaW50ICRjb21tYW5kcyAxXQotICAgICAgICAgICAgICAgICAgY2xvc2UgJG9wCi0gICAgICAgICAgICAgICAgICByZXR1cm4gInNvdXJjZSAkdmFycyhzY3JpcHRfZGlyKS9pbmNyX3ZpZXdfZGVmaW5pdGlvbi50Y2xcbiIKLSAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyh2aWV3X2RlZmluaXRpb25fdGNsKV19IHsKLSAgICAgICAgICAgICAgICAgICAgIHNldCBtbW1jX2ZpbGUgJHZhcnModmlld19kZWZpbml0aW9uX3RjbCkKLSAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgIHNldCBtbW1jX2ZpbGUgJHZhcnMoc2NyaXB0X2Rpcikvdmlld19kZWZpbml0aW9uLnRjbAotICAgICAgICAgICAgICAgICAgICAgc2V0IG9wIFtvcGVuICRtbW1jX2ZpbGUgd10KLSAgICAgICAgICAgICAgICAgICAgIHB1dHMgJG9wIFtGRjo6cHJldHR5X3ByaW50ICRjb21tYW5kcyAxXQotICAgICAgICAgICAgICAgICAgICAgY2xvc2UgJG9wCi0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICByZXR1cm4KLSMgICAgICAgICAgICAgICByZXR1cm4gJGNvbW1hbmRzCi0gICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0gICAgICAgICBkZWZhdWx0IHsKLSAgICAgICAgICAgIHB1dHMgICI8RkY+IElOVkFMSUQgT1BUSU9OIC4uLiBNVVNUIEJFIEVJVEhFUiBtaW5tYXggT1IgbW1tYyIKLSAgICAgICAgIH0KLSAgICAgIH0KLSAgICAgIHJldHVybiAkY29tbWFuZHMKLSAgIH0KLQotICAgcHJvYyB1cGRhdGVfcmNfY29ybmVycyB7fSB7Ci0KLSAgICAgIGdsb2JhbCB2YXJzCi0KLSAgICAgIGZvcmVhY2ggcmNfY29ybmVyIFthbGxfcmNfY29ybmVyc10gewotICAgICAgICAgaWYgeyRyY19jb3JuZXIgIT0gImRlZmF1bHRfcmNfY29ybmVyIn0gewotICAgICAgICAgICAgc2V0IHVwZGF0ZSBmYWxzZQotICAgICAgICAgICAgc2V0IGNvbW1hbmQgInVwZGF0ZV9yY19jb3JuZXIgLW5hbWUgJHJjX2Nvcm5lciAiCi0gICAgICAgICAgICBpZiB7W2dldF9yY19jb3JuZXIgJHJjX2Nvcm5lciAtY2FwX3RhYmxlXSAhPSAkdmFycygkcmNfY29ybmVyLGNhcF90YWJsZSl9IHsKLSAgICAgICAgICAgICAgIHNldCB1cGRhdGUgdHJ1ZQotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIi1jYXBfdGFibGUgJHZhcnMoJHJjX2Nvcm5lcixjYXBfdGFibGUpICIKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIHtbZ2V0X3JjX2Nvcm5lciAkcmNfY29ybmVyIC1wcmVSb3V0ZV9yZXNdICE9ICR2YXJzKCRyY19jb3JuZXIscHJlX3JvdXRlX3Jlc19mYWN0b3IpfSB7Ci0gICAgICAgICAgICAgICBzZXQgdXBkYXRlIHRydWUKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICItcHJlUm91dGVfcmVzICR2YXJzKCRyY19jb3JuZXIscHJlX3JvdXRlX3Jlc19mYWN0b3IpICIKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIHtbZ2V0X3JjX2Nvcm5lciAkcmNfY29ybmVyIC1wcmVSb3V0ZV9jYXBdICE9ICR2YXJzKCRyY19jb3JuZXIscHJlX3JvdXRlX2NhcF9mYWN0b3IpfSB7Ci0gICAgICAgICAgICAgICBzZXQgdXBkYXRlIHRydWUKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICItcHJlUm91dGVfY2FwICR2YXJzKCRyY19jb3JuZXIscHJlX3JvdXRlX2NhcF9mYWN0b3IpICIKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIHtbZ2V0X3JjX2Nvcm5lciAkcmNfY29ybmVyIC1wb3N0Um91dGVfcmVzXSAhPSAkdmFycygkcmNfY29ybmVyLHBvc3Rfcm91dGVfcmVzX2ZhY3Rvcil9IHsKLSAgICAgICAgICAgICAgIHNldCB1cGRhdGUgdHJ1ZQotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIi1wb3N0Um91dGVfcmVzIFwiJHZhcnMoJHJjX2Nvcm5lcixwb3N0X3JvdXRlX3Jlc19mYWN0b3IpXCIgIgotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYge1tnZXRfcmNfY29ybmVyICRyY19jb3JuZXIgLXBvc3RSb3V0ZV9jYXBdICE9ICR2YXJzKCRyY19jb3JuZXIscG9zdF9yb3V0ZV9jYXBfZmFjdG9yKX0gewotICAgICAgICAgICAgICAgc2V0IHVwZGF0ZSB0cnVlCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiLXBvc3RSb3V0ZV9jYXAgXCIkdmFycygkcmNfY29ybmVyLHBvc3Rfcm91dGVfY2FwX2ZhY3RvcilcIiAiCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiB7W2dldF9yY19jb3JuZXIgJHJjX2Nvcm5lciAtcHJlUm91dGVfY2xrcmVzXSAhPSAkdmFycygkcmNfY29ybmVyLHByZV9yb3V0ZV9jbGtfcmVzX2ZhY3Rvcil9IHsKLSAgICAgICAgICAgICAgIHNldCB1cGRhdGUgdHJ1ZQotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIi1wcmVSb3V0ZV9jbGtyZXMgJHZhcnMoJHJjX2Nvcm5lcixwcmVfcm91dGVfY2xrX3Jlc19mYWN0b3IpICIKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIHtbZ2V0X3JjX2Nvcm5lciAkcmNfY29ybmVyIC1wcmVSb3V0ZV9jbGtjYXBdICE9ICR2YXJzKCRyY19jb3JuZXIscHJlX3JvdXRlX2Nsa19jYXBfZmFjdG9yKX0gewotICAgICAgICAgICAgICAgc2V0IHVwZGF0ZSB0cnVlCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiLXByZVJvdXRlX2Nsa2NhcCAkdmFycygkcmNfY29ybmVyLHByZV9yb3V0ZV9jbGtfY2FwX2ZhY3RvcikgIgotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYge1tnZXRfcmNfY29ybmVyICRyY19jb3JuZXIgLXBvc3RSb3V0ZV9jbGtyZXNdICE9ICR2YXJzKCRyY19jb3JuZXIscG9zdF9yb3V0ZV9jbGtfcmVzX2ZhY3Rvcil9IHsKLSAgICAgICAgICAgICAgIHNldCB1cGRhdGUgdHJ1ZQotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIi1wb3N0Um91dGVfY2xrcmVzIFwiJHZhcnMoJHJjX2Nvcm5lcixwb3N0X3JvdXRlX2Nsa19yZXNfZmFjdG9yKVwiICIKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIHtbZ2V0X3JjX2Nvcm5lciAkcmNfY29ybmVyIC1wb3N0Um91dGVfY2xrY2FwXSAhPSAkdmFycygkcmNfY29ybmVyLHBvc3Rfcm91dGVfY2xrX2NhcF9mYWN0b3IpfSB7Ci0gICAgICAgICAgICAgICBzZXQgdXBkYXRlIHRydWUKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICItcG9zdFJvdXRlX2Nsa2NhcCBcIiR2YXJzKCRyY19jb3JuZXIscG9zdF9yb3V0ZV9jbGtfY2FwX2ZhY3RvcilcIiAiCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiB7W2dldF9yY19jb3JuZXIgJHJjX2Nvcm5lciAtcG9zdFJvdXRlX3hjYXBdICE9ICR2YXJzKCRyY19jb3JuZXIscG9zdF9yb3V0ZV94Y2FwX2ZhY3Rvcil9IHsKLSAgICAgICAgICAgICAgIHNldCB1cGRhdGUgdHJ1ZQotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIi1wb3N0Um91dGVfeGNhcCBcIiR2YXJzKCRyY19jb3JuZXIscG9zdF9yb3V0ZV94Y2FwX2ZhY3RvcilcIiAiCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBmb3JlYWNoIG9wdGlvbiAiVCBxeF90ZWNoX2ZpbGUgcXhfY29uZl9maWxlIHF4X2xpYl9maWxlIiB7Ci0gICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCRyY19jb3JuZXIsJG9wdGlvbildfSB7Ci0gICAgICAgICAgICAgICAgICAgaWYge1tnZXRfcmNfY29ybmVyICRyY19jb3JuZXIgLSRvcHRpb25dICE9ICR2YXJzKCRyY19jb3JuZXIsJG9wdGlvbil9IHsKLSAgICAgICAgICAgICAgICAgICAgICBzZXQgdXBkYXRlIHRydWUKLSAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiLSRvcHRpb24gJHZhcnMoJHJjX2Nvcm5lciwkb3B0aW9uKSAiCi0gICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIHskdXBkYXRlfSB7Ci0gICAgICAgICAgICAgICB1cGxldmVsICMwIGV2YWwgJGNvbW1hbmQKLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0KLSAgICAgIH0KLSAgIH0KLSAgIHByb2MgcmVzZXRfcmNfY29ybmVycyB7fSB7Ci0KLSAgICAgIGdsb2JhbCB2YXJzCi0KLSAgICAgIGZvcmVhY2ggY29ybmVyICR2YXJzKHJjX2Nvcm5lcnMpIHsKLSAgICAgICAgIHVwZGF0ZV9yY19jb3JuZXIgLW5hbWUgJGNvcm5lciBcCi0gICAgICAgICAgICAtcHJlUm91dGVfcmVzIDEuMCBcCi0gICAgICAgICAgICAtcHJlUm91dGVfY2xrcmVzIDEuMCBcCi0gICAgICAgICAgICAtcHJlUm91dGVfY2FwIDEuMCBcCi0gICAgICAgICAgICAtcHJlUm91dGVfY2xrY2FwIDEuMCBcCi0gICAgICAgICAgICAtcG9zdFJvdXRlX3JlcyAxLjAgXAotICAgICAgICAgICAgLXBvc3RSb3V0ZV9jbGtyZXMgMS4wIFwKLSAgICAgICAgICAgIC1wb3N0Um91dGVfY2FwIDEuMCBcCi0gICAgICAgICAgICAtcG9zdFJvdXRlX2Nsa19hcCAxLjAgXAotICAgICAgICAgICAgLXBvc3RSb3V0ZV94Y2FwIDEuMAotICAgICAgfQotICAgfQotICAgcHJvYyBhZGRfdmlld3Mge30gewotCi0gICAgICBnbG9iYWwgdmFycwotCi0gICAgICBQdXRzICI8RkY+IENSRUFUSU5HIFJDIENPUk5FUlMgLi4uIgotICAgICAgZm9yZWFjaCByY19jb3JuZXIgJHZhcnMocmNfY29ybmVycykgewotICAgICAgICAgaWYge1tsc2VhcmNoIFthbGxfcmNfY29ybmVyc10gJHJjX2Nvcm5lcl0gPT0gLTF9IHsKLSAgICAgICAgICAgIHNldCBjb21tYW5kICJjcmVhdGVfcmNfY29ybmVyIC1uYW1lICRyY19jb3JuZXIgIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIi1jYXBfdGFibGUgJHZhcnMoJHJjX2Nvcm5lcixjYXBfdGFibGUpXF0gIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIi1wcmVSb3V0ZV9yZXMgJHZhcnMoJHJjX2Nvcm5lcixwcmVfcm91dGVfcmVzX2ZhY3RvcikgIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIi1wcmVSb3V0ZV9jbGtyZXMgJHZhcnMoJHJjX2Nvcm5lcixwcmVfcm91dGVfY2xrX3Jlc19mYWN0b3IpICIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICItcHJlUm91dGVfY2FwICR2YXJzKCRyY19jb3JuZXIscHJlX3JvdXRlX2NhcF9mYWN0b3IpICIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICItcHJlUm91dGVfY2xrY2FwICR2YXJzKCRyY19jb3JuZXIscHJlX3JvdXRlX2Nsa19jYXBfZmFjdG9yKSAiCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiLXBvc3RSb3V0ZV9yZXMgXCIkdmFycygkcmNfY29ybmVyLHBvc3Rfcm91dGVfcmVzX2ZhY3RvcilcIiAiCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiLXBvc3RSb3V0ZV9jbGtyZXMgXCIkdmFycygkcmNfY29ybmVyLHBvc3Rfcm91dGVfY2xrX3Jlc19mYWN0b3IpXCIgIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIi1wb3N0Um91dGVfY2FwIFwiJHZhcnMoJHJjX2Nvcm5lcixwb3N0X3JvdXRlX2NhcF9mYWN0b3IpXCIgIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIi1wb3N0Um91dGVfY2xrY2FwIFwiJHZhcnMoJHJjX2Nvcm5lcixwb3N0X3JvdXRlX2Nsa19jYXBfZmFjdG9yKVwiICIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICItcG9zdFJvdXRlX3hjYXAgJHZhcnMoJHJjX2Nvcm5lcixwb3N0X3JvdXRlX3hjYXBfZmFjdG9yKSAiCi0gICAgICAgICAgICBmb3JlYWNoIG9wdGlvbiAiVCBxeF90ZWNoX2ZpbGUgcXhfY29uZl9maWxlIHF4X2xpYl9maWxlIiB7Ci0gICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCRyY19jb3JuZXIsJG9wdGlvbildfSB7Ci0gICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiLSRvcHRpb24gJHZhcnMoJHJjX2Nvcm5lciwkb3B0aW9uKSAiCi0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAgICAgdXBsZXZlbCAjMCBldmFsICRjb21tYW5kCi0gICAgICAgICB9Ci0gICAgICB9Ci0KLSAgICAgIGlmIHshW0ZGOjppc19scF9mbG93XSB8fCBcCi0gICAgICAgICAgKFtGRjo6aXNfbHBfZmxvd10gJiYgKFtsbGVuZ3RoIFthbGxfYW5hbHlzaXNfdmlld3NdXSA9PSAyKSl9IHsKLQotICAgICAgICAgUHV0cyAiPEZGPiBDUkVBVElORyBMSUJSQVJZIFNFVFMgLi4uIgotICAgICAgICAgZm9yZWFjaCBsaWJyYXJ5X3NldCAkdmFycyhsaWJyYXJ5X3NldHMpIHsKLSAgICAgICAgICAgIGlmIHtbbHNlYXJjaCBbYWxsX2xpYnJhcnlfc2V0c10gJGxpYnJhcnlfc2V0XSA9PSAtMX0gewotICAgICAgICAgICAgICAgY3JlYXRlX2xpYnJhcnlfc2V0IC1uYW1lICRsaWJyYXJ5X3NldCBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLXRpbWluZyAkdmFycygkbGlicmFyeV9zZXQsdGltaW5nKQotICAgICAgICAgICAgfQotICAgICAgICAgfQotCi0gICAgICAgICBQdXRzICI8RkY+IENSRUFUSU5HIERFTEFZIENPUk5FUlMgLi4uXG4iCi0gICAgICAgICBmb3JlYWNoIGRlbGF5X2Nvcm5lciAkdmFycyhkZWxheV9jb3JuZXJzKSB7Ci0gICAgICAgICAgICBpZiB7W2xzZWFyY2ggW2FsbF9kZWxheV9jb3JuZXJzXSAkZGVsYXlfY29ybmVyXSA9PSAtMX0gewotICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgImNyZWF0ZV9kZWxheV9jb3JuZXIgLW5hbWUgJGRlbGF5X2Nvcm5lciAiCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiLWxpYnJhcnlfc2V0ICR2YXJzKCRkZWxheV9jb3JuZXIsbGlicmFyeV9zZXQpICIKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICItcmNfY29ybmVyICR2YXJzKCRkZWxheV9jb3JuZXIscmNfY29ybmVyKSAiCi0gICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJGRlbGF5X2Nvcm5lcixvcGNvbmQpXSAmJiBbaW5mbyBleGlzdHMgdmFycygkZGVsYXlfY29ybmVyLG9wY29uZF9saWJyYXJ5KV19IHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICItb3Bjb25kX2xpYnJhcnkgJHZhcnMoJGRlbGF5X2Nvcm5lcixvcGNvbmRfbGlicmFyeSkgIgotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIi1vcGNvbmQgJHZhcnMoJGRlbGF5X2Nvcm5lcixvcGNvbmQpICIKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIHVwbGV2ZWwgIzAgZXZhbCAkY29tbWFuZAotICAgICAgICAgICAgICAgaWYgeyFbY2F0Y2gge3NldCBkb21haW5zICR2YXJzKCRjLHBvd2VyX2RvbWFpbnMpfV19IHsKLSAgICAgICAgICAgICAgICAgIHNldCBjb21tYW5kICIgdXBkYXRlX2RlbGF5X2Nvcm5lciAtbmFtZSAkYyAtcG93ZXJfZG9tYWlucyBcIiRkb21haW5zXCIiCi0gICAgICAgICAgICAgICAgICB1cGxldmVsICMwIGV2YWwgJGNvbW1hbmQKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0KLQotICAgICAgICAgUHV0cyAiPEZGPiBVUERBVElORyBDT05TVFJBSU5UIE1PREVTIC4uLiIKLSAgICAgICAgIGZvcmVhY2ggbW9kZSAkdmFycyhjb25zdHJhaW50X21vZGVzKSB7Ci0gICAgICAgICAgICBpZiB7W2xzZWFyY2ggW2FsbF9jb25zdHJhaW50X21vZGVzXSAkbW9kZV0gPT0gLTF9IHsKLSAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkbW9kZSxwcmVfY3RzX3NkYyxmdWxsKV19IHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiY3JlYXRlX2NvbnN0cmFpbnRfbW9kZSAiCi0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiAtbmFtZSAkbW9kZSAiCi0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiAtc2RjX2ZpbGVzICR2YXJzKCRtb2RlLHByZV9jdHNfc2RjLGZ1bGwpXG4iCi0gICAgICAgICAgICAgICB9IGVsc2VpZiB7W2luZm8gZXhpc3RzIHZhcnMoJG1vZGUscHJlX2N0c19zZGMpfSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgImNyZWF0ZV9jb25zdHJhaW50X21vZGUgIgotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIgLW5hbWUgJG1vZGUgIgotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIgLXNkY19maWxlcyAkdmFycygkbW9kZSxwcmVfY3RzX3NkYylcbiIKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0KLQotICAgICAgICAgc2V0IHZhcnMoYWxsX2FuYWx5c2lzX3ZpZXdzKSBbbHNvcnQgLXVuaXEgW2NvbmNhdCAkdmFycyhzZXR1cF9hbmFseXNpc192aWV3cykgJHZhcnMoaG9sZF9hbmFseXNpc192aWV3cyldXQotICAgICAgICAgUHV0cyAiPEZGPiBVUERBVElORyBBTkFMWVNJUyBWSUVXUyAuLi4iCi0KLSAgICAgICAgIGZvcmVhY2ggYW5hbHlzaXNfdmlldyAkdmFycyhhbGxfYW5hbHlzaXNfdmlld3MpIHsKLSAgICAgICAgICAgIGlmIHtbbHNlYXJjaCBbYWxsX2FuYWx5c2lzX3ZpZXdzXSAkYW5hbHlzaXNfdmlld10gPT0gLTF9IHsKLSAgICAgICAgICAgICAgIGNyZWF0ZV9hbmFseXNpc192aWV3IC1uYW1lICRhbmFseXNpc192aWV3IFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC1jb25zdHJhaW50X21vZGUgJHZhcnMoJGFuYWx5c2lzX3ZpZXcsY29uc3RyYWludF9tb2RlKSBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtZGVsYXlfY29ybmVyICR2YXJzKCRhbmFseXNpc192aWV3LGRlbGF5X2Nvcm5lcikKLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0KLSAgICAgIH0gZWxzZSB7Ci0KLSAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICMgU2luY2UgdGhlIGRlbGF5IGNvcm5lciBuYW1lcyBhcmUgZGVyaXZlZCBmcm9tIHRoZSBDUEYsIHRoZXkgYXJlIG5vdAotICAgIyBrbm93bi4gIEhvd2V2ZXIsIHRoZXkgY2FuIGJlIHJldHJpZXZlZCBmcm9tIHRoZSBhbmFseXNpc192aWV3cwotICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgICAgUHV0cyAiPEZGPiBVUERBVElORyBERUxBWSBDT1JORVJTICAuLi4iCi0gICAgICAgICBmb3JlYWNoIGNvcm5lciAkdmFycyhkZWxheV9jb3JuZXJzKSB7Ci0gICAgICAgICAgICBQdXRzICJVcGRhdGluZyBkZWxheSBjb3JuZXIgJGNvcm5lciB3aXRoIFJDIENvcm5lciAkdmFycygkY29ybmVyLHJjX2Nvcm5lcikgLi4uIgotICAgICAgICAgICAgdXBkYXRlX2RlbGF5X2Nvcm5lciAtbmFtZSAkY29ybmVyIC1yY19jb3JuZXIgJHZhcnMoJGNvcm5lcixyY19jb3JuZXIpCi0gICAgICAgICB9Ci0gICAgICB9Ci0KLSAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICMgVXBkYXRlIGxpYnJhcnlfc2V0cyB3aXRoIFNJIGxpYnJhcmllcyBpZiBkZWZpbmVkCi0gICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICBQdXRzICI8RkY+IFVQREFUSU5HIExJQlJBUlkgU0VUUyAgLi4uIgotICAgICAgZm9yZWFjaCBsaWJyYXJ5X3NldCAkdmFycyhsaWJyYXJ5X3NldHMpIHsKLSAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkbGlicmFyeV9zZXQsc2kpXSAmJiAoJHZhcnMoJGxpYnJhcnlfc2V0LHNpKSAhPSAiIil9IHsKLSAgICAgICAgICAgIHVwZGF0ZV9saWJyYXJ5X3NldCAtbmFtZSAkbGlicmFyeV9zZXQgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC1zaSAkdmFycygkbGlicmFyeV9zZXQsc2kpCi0gICAgICAgICB9Ci0gICAgICB9Ci0gICAgICBmb3JlYWNoIGxpYnJhcnlfc2V0ICR2YXJzKGxpYnJhcnlfc2V0cykgewotICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCRsaWJyYXJ5X3NldCxhb2N2KV0gJiYgKCR2YXJzKCRsaWJyYXJ5X3NldCxhb2N2KSAhPSAiIil9IHsKLSAgICAgICAgICAgIHVwZGF0ZV9saWJyYXJ5X3NldCAtbmFtZSAkbGlicmFyeV9zZXQgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC1hb2N2ICR2YXJzKCRsaWJyYXJ5X3NldCxhb2N2KQotICAgICAgICAgfQotICAgICAgfQotCi0KLSAgICAgIHNldF9pbnRlcmFjdGl2ZV9jb25zdHJhaW50X21vZGVzIFthbGxfY29uc3RyYWludF9tb2RlcyAtYWN0aXZlXQotCi0gICAgICBQdXRzICI8RkY+IERFUkFUSU5HIERFTEFZIENPUk5FUlMgLi4uIgotICAgICAgRkZfRURJOjpkZXJhdGVfdGltaW5nIG1tbWMKLQotICAgICAgaWYgeyR2YXJzKGZsb3cpICE9ICJtbW1jIn0gewotICAgICAgICAgRkZfRURJOjp1cGRhdGVfdGltaW5nIG1tbWMKLSAgICAgIH0KLQotICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgIyBEZWZpbmUgc2V0dXAgLyBob2xkIGFuYWx5c2lzIHZpZXdzIGFuZCBlbmFibGUgdGhlIGRlZmF1bHQgdmlld3MgZm9yIGVhY2gKLSAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgIHNldF9hbmFseXNpc192aWV3IC1zZXR1cCAkdmFycyhhY3RpdmVfc2V0dXBfdmlld3MpIC1ob2xkICR2YXJzKGFjdGl2ZV9ob2xkX3ZpZXdzKQotICAgICAgc2V0X2RlZmF1bHRfdmlldyAtc2V0dXAgJHZhcnMoZGVmYXVsdF9zZXR1cF92aWV3KSAtaG9sZCAkdmFycyhkZWZhdWx0X2hvbGRfdmlldykKLSAgIH0KLQotICAgcHJvYyBnZXRfcG93ZXJfZG9tYWluc19jb2RlIHt9IHsKLQotICAgICAgZ2xvYmFsIHZhcnMKLQotICAgICAgc2V0IGNvbW1hbmRzICJzZXQgZG9tYWlucyBcW2xpc3RcXVxuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzICJkYkZvckVhY2hQb3dlckRvbWFpbiBcW2RiZ0hlYWRcXSBkb21haW4ge1xuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzICIgICBpZiB7XFtkYkdyb3VwSEluc3RMaXN0IFxbZGJQb3dlckRvbWFpbk5hbWUgXCRkb21haW5cXVxdICE9IFwiMHgwXCJ9IHtcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyAiICAgICAgbGFwcGVuZCBkb21haW5zIFxbZGJQb3dlckRvbWFpbk5hbWUgXCRkb21haW5cXVxuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzICIgICB9XG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgIn1cbiIKLSAgICAgIHJldHVybiAkY29tbWFuZHMKLSAgIH0KLQotCi0gICBwcm9jIGdldF9jbG9ja19wb3J0cyB7fSB7Ci0KLSAgICAgIGdsb2JhbCB2YXJzCi0KLSAgICAgIHNldCBjb21tYW5kcyAiIgotCi0gICAgICBpZiB7ISR2YXJzKGNvZGVnZW4pIHx8ICgkdmFycyhjb2RlZ2VuKSAmJiAoJHZhcnMoZmxhdCkgIT0gIm5vbmUiKSl9IHsKLQotICAgICAgICAgaWYgeyR2YXJzKGlsbSl9IHsKLSAgICAgICAgICAgIGlmIHskdmFycyhzdGVwKSAhPSAiY3RzIn0geyAKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAic2V0SWxtVHlwZSAtbW9kZWwgc2lcbiIKLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0KLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAic2V0IGNsb2NrX3BvcnRzIFxbbGlzdFxdXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgInNldCBjbG9ja3MgXFtnZXRfY2xvY2tzICpcXVxuIgotCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgImZvcmVhY2hfaW5fY29sbGVjdGlvbiBjbG9jayBcJGNsb2NrcyB7XG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiAgIHNldCBzb3VyY2VzICBcW2dldF9wcm9wZXJ0eSBcJGNsb2NrIHNvdXJjZXNcXVxuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIgICBmb3JlYWNoX2luX2NvbGxlY3Rpb24gc291cmNlIFwkc291cmNlcyB7XG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiAgICAgc2V0IHNvdXJjZV9uYW1lIFxbZ2V0X3Byb3BlcnR5IFwkc291cmNlIGhpZXJhcmNoaWNhbF9uYW1lXF1cbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiICAgICBzZXQgc291cmNlX3R5cGUgXFtnZXRfcHJvcGVydHkgXCRzb3VyY2Ugb2JqZWN0X3R5cGVcXVxuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIgICAgIGlmIHtcJHNvdXJjZV90eXBlID09IFwicG9ydFwifSB7XG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiAgICAgICBsYXBwZW5kIGNsb2NrX3BvcnRzIFwkc291cmNlX25hbWVcbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiICAgIH1cbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiICB9XG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIn1cbiIKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIkZGOjpnZXRfY2xvY2tfcG9ydHNcbiIKLSAgICAgIH0KLSAgICAgIHJldHVybiAkY29tbWFuZHMKLSAgIH0KLQotICAgcHJvYyBhZGRfdGllX2NlbGxzIHt7bW9kZSB0cnVlfSB7YWRkIHRydWV9fSB7Ci0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAjIFRoaXMgcHJvY2VkdXJlIGluc2VydHMgdGllIGhpL2xvIGNlbGxzIGJhc2VkIG9uIGluZm9ybWF0aW9uIGluIHRoZQotICAgICAgIyBzZXR1cC50Y2wKLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLQotICAgICAgZ2xvYmFsIHZhcnMKLSAgICAgIGdsb2JhbCBlcnJvcnMKLQotICAgICAgc2V0IGNvbW1hbmRzICIiCi0gICAgICBpZiB7JHZhcnModmVyYm9zZSl9IHsKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiI1xuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjIEFERElORyBUSUUgQ0VMTFNcbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiI1xuIgotICAgICAgfQotCi0gICAgICBzZXQgYXJncyAiIgotICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKHRpZV9jZWxscyxtYXhfZGlzdGFuY2UpXX0gewotICAgICAgICAgYXBwZW5kIGFyZ3MgIiAtbWF4RGlzdGFuY2UgJHZhcnModGllX2NlbGxzLG1heF9kaXN0YW5jZSkiCi0gICAgICB9Ci0gICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnModGllX2NlbGxzLG1heF9mYW5vdXQpXX0gewotICAgICAgICAgYXBwZW5kIGFyZ3MgIiAtbWF4RmFub3V0ICR2YXJzKHRpZV9jZWxscyxtYXhfZmFub3V0KSIKLSAgICAgIH0KLQotICAgICAgaWYge1tGRjo6aXNfbHBfZmxvd10gJiYgKFtpbmZvIGV4aXN0cyB2YXJzKHBvd2VyX2RvbWFpbnMpXSAmJiAoW2xsZW5ndGggJHZhcnMocG93ZXJfZG9tYWlucyldID4gMSkpfSB7Ci0KLSAgICAgICAgICMgR2V0IHRoZSBzZXQgb2YgdGllIGNlbGxzIHRvIHVzZSwgYm90aCBkb21haW4tc3BlY2lmaWMgYW5kIGdlbmVyaWMuCi0KLSAgICAgICAgIHNldCBhbGxfdGllX2NlbGxzIFtsaXN0XQotCi0gICAgICAgICBzZXQgaGFzX2RlZmF1bHQgZmFsc2UKLSAgICAgICAgIGlmIHshW2NhdGNoIHtzZXQgZGVmYXVsdF9jZWxscyAkdmFycyh0aWVfY2VsbHMpfV19IHsKLSAgICAgICAgICAgIHNldCBoYXNfZGVmYXVsdCB0cnVlCi0gICAgICAgICAgICBsYXBwZW5kIGFsbF90aWVfY2VsbHMgJHZhcnModGllX2NlbGxzKQotICAgICAgICAgfQotICAgICAgICAgc2V0IGhhc19zcGVjaWZpYyBmYWxzZQotICAgICAgICAgZm9yZWFjaCBkb21haW4gW0ZGOjpnZXRfYnlfc3VmZml4IHZhcnMgIix0aWVfY2VsbHMiXSB7Ci0gICAgICAgICAgICBzZXQgY2VsbHMgJHZhcnMoJGRvbWFpbix0aWVfY2VsbHMpCi0gICAgICAgICAgICBsYXBwZW5kIGFsbF90aWVfY2VsbHMgJHZhcnMoJGRvbWFpbix0aWVfY2VsbHMpCi0gICAgICAgICAgICBpZiB7IVtsbGVuZ3RoICRjZWxsc119IHsKLSAgICAgICAgICAgICAgIGNvbnRpbnVlCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBzZXQgaGFzX3NwZWNpZmljIHRydWUKLSMgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAic2V0IHRpZV9jZWxscygkZG9tYWluKSBcW2xpc3QgJGNlbGxzXF1cbiIKLSMgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgJGNvbW1hbmQKLSAgICAgICAgIH0KLQotICAgICAgICAgIwotICAgICAgICAgIyBJZiB0aGVyZSBhcmUgbm8gdGllIGNlbGxzIGF0IGFsbCwgdGhlcmUncyBub3RoaW5nIHRvIGRvCi0gICAgICAgICAjCi0KLSAgICAgICAgIGlmIHshJGhhc19kZWZhdWx0ICYmICEkaGFzX3NwZWNpZmljfSB7Ci0gICAgICAgICAgICByZXR1cm4gIiIKLSAgICAgICAgIH0KLQotICAgICAgICAgc2V0IGFsbF90aWVfY2VsbHMgW2xzb3J0IC11bmlxdWUgW2pvaW4gJGFsbF90aWVfY2VsbHNdXQotCi0gICAgICAgICAjCi0gICAgICAgICAjIElmIHRoZXJlIGFyZSBubyBkb21haW4tc3BlY2lmaWMgZW50cmllcywgbGlmZSBpcyByZWFsIHNpbXBsZQotICAgICAgICAgIwotCi0jICAgICAgICAgaWYgeyEkaGFzX3NwZWNpZmljfSB7Ci0jICAgICAgICAgICAgc2V0IGNvbW1hbmQgInNldFRpZUhpTG9Nb2RlIC1jZWxsIFwiJGRlZmF1bHRfY2VsbHNcIiAkYXJnc1xuIgotIyAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxzZXRfdGllX2hpX2xvX21vZGUgJGNvbW1hbmRdCi0jICAgICAgICAgICAgaWYgeyRhZGR9IHsKLSMgICAgICAgICAgICAgICBmb3JlYWNoIGNlbGwgJGRlZmF1bHRfY2VsbHMgewotIyAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAic2V0RG9udFVzZSAkY2VsbCBmYWxzZVxuIgotIyAgICAgICAgICAgICAgIH0KLSMgICAgICAgICAgICAgICBpZiB7W2xsZW5ndGggJHZhcnMocG93ZXJfZG9tYWlucyldID4gMH0gewotIyAgICAgICAgICAgICAgICAgIGZvcmVhY2ggZG9tYWluICR2YXJzKHBvd2VyX2RvbWFpbnMpIHsKLSMgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgICIgICBjYXRjaCB7YWRkVGllSGlMbyAtcG93ZXJEb21haW4gJGRvbWFpbiAtcHJlZml4ICRkb21haW59XG4iCi0jICAgICAgICAgICAgICAgICAgfQotIyAgICAgICAgICAgICAgIH0KLSMgICAgICAgICAgICAgICBmb3JlYWNoIGNlbGwgJGRlZmF1bHRfY2VsbHMgewotIyAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAic2V0RG9udFVzZSAkY2VsbCB0cnVlXG4iCi0jICAgICAgICAgICAgICAgfQotIyAgICAgICAgICAgIH0KLSMgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgZm9yZWFjaCBjZWxsICRkZWZhdWx0X2NlbGxzIHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAic2V0RG9udFVzZSAkY2VsbCBmYWxzZVxuIgotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYge1tsbGVuZ3RoICR2YXJzKHBvd2VyX2RvbWFpbnMpXSA+IDB9IHsKLSAgICAgICAgICAgICAgIGZvcmVhY2ggZG9tYWluICR2YXJzKHBvd2VyX2RvbWFpbnMpIHsKLSAgICAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkZG9tYWluLHRpZV9jZWxscyldfSB7Ci0gICAgICAgICAgICAgICAgICAgICBzZXQgY29tbWFuZCAic2V0VGllSGlMb01vZGUgLWNlbGwgXCIkdmFycygkZG9tYWluLHRpZV9jZWxscylcIiAkYXJnc1xuIgotICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgZGVmYXVsdF9jZWxsc119IHsgCi0gICAgICAgICAgICAgICAgICAgICAgICBzZXQgY29tbWFuZCAic2V0VGllSGlMb01vZGUgLWNlbGwgXCIkZGVmYXVsdF9jZWxsc1wiICRhcmdzXG4iCi0gICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWUKLSAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxzZXRfdGllX2hpX2xvX21vZGUgJGNvbW1hbmRdCi0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgICIgICBjYXRjaCB7YWRkVGllSGlMbyAtcG93ZXJEb21haW4gJGRvbWFpbiAtcHJlZml4ICRkb21haW59XG4iCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBmb3JlYWNoIGNlbGwgJGRlZmF1bHRfY2VsbHMgewotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJzZXREb250VXNlICRjZWxsIHRydWVcbiIKLSAgICAgICAgICAgIH0KLSMgICAgICAgICB9Ci0gICAgICB9IGVsc2VpZiB7IVtjYXRjaCB7c2V0IGNlbGxzICR2YXJzKHRpZV9jZWxscyl9XX0gewotICAgICAgICAgc2V0IGNvbW1hbmQgInNldFRpZUhpTG9Nb2RlIC1jZWxsIFwiJGNlbGxzXCIgJGFyZ3NcbiIKLSMgICAgICAgICBpZiB7JG1vZGV9IHsKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxzZXRfdGllX2hpX2xvX21vZGUgJGNvbW1hbmRdCi0jICAgICAgICAgfQotICAgICAgICAgICAgc2V0IGNvbW1hbmQgImZvcmVhY2ggY2VsbCBceyRjZWxsc1x9IHtcbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgICBzZXREb250VXNlIFwkY2VsbCBmYWxzZVxuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIn1cbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kICJhZGRUaWVIaUxvXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZCAiZm9yZWFjaCBjZWxsIFx7JGNlbGxzXH0ge1xuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAgIHNldERvbnRVc2UgXCRjZWxsIHRydWVcbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kICJ9XG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgJGNvbW1hbmQKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgICBzZXQgY29tbWFuZHMgIiIKLSAgICAgIH0KLQotICAgICAgcmV0dXJuICRjb21tYW5kcwotICAgfQotCi0gICBwcm9jIGFkZF9maWxsZXJfY2VsbHMge30gewotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgIyBUaGlzIHByb2NlZHVyZSBpbnNlcnRzIHRpZSBoaS9sbyBjZWxscyBiYXNlZCBvbiBpbmZvcm1hdGlvbiBpbiB0aGUKLSAgICAgICMgc2V0dXAudGNsCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0KLSAgICAgIGdsb2JhbCB2YXJzCi0gICAgICBnbG9iYWwgZXJyb3JzCi0KLSAgICAgIHNldCBjb21tYW5kcyAiIgotCi0gICAgICBzZXQgY2NvbW1hbmRzICIiCi0gICAgICBpZiB7JHZhcnModmVyYm9zZSl9IHsKLSAgICAgICAgIGFwcGVuZCBjY29tbWFuZHMgIiNcbiIKLSAgICAgICAgIGFwcGVuZCBjY29tbWFuZHMgIiMgQUREIEZJTExFUiBDRUxMU1xuIgotICAgICAgICAgYXBwZW5kIGNjb21tYW5kcyAiI1xuIgotICAgICAgfQotCi0gICAgICBhcHBlbmQgY29tbWFuZHMgJGNjb21tYW5kcwotCi0gICAgICBpZiB7W0ZGOjppc19scF9mbG93XSAmJiAoW2luZm8gZXhpc3RzIHZhcnMocG93ZXJfZG9tYWlucyldICYmIChbbGxlbmd0aCAkdmFycyhwb3dlcl9kb21haW5zKV0gPiAxKSl9IHsKLQotICAgICAgICAgIyBHZXQgdGhlIHNldCBvZiBmaWxsZXIgY2VsbHMgdG8gdXNlLCBib3RoIGRvbWFpbi1zcGVjaWZpYyBhbmQgZ2VuZXJpYy4KLQotICAgICAgICAgc2V0IGFsbF9maWxsZXJfY2VsbHMgW2xpc3RdCi0KLSAgICAgICAgIHNldCBoYXNfZGVmYXVsdCBmYWxzZQotICAgICAgICAgaWYgeyFbY2F0Y2gge3NldCBkZWZhdWx0X2NlbGxzICR2YXJzKGZpbGxlcl9jZWxscyl9XX0gewotICAgICAgICAgICAgc2V0IGhhc19kZWZhdWx0IHRydWUKLSAgICAgICAgICAgIGxhcHBlbmQgYWxsX2ZpbGxlcl9jZWxscyAkdmFycyhmaWxsZXJfY2VsbHMpCi0gICAgICAgICB9Ci0gICAgICAgICBzZXQgaGFzX3NwZWNpZmljIGZhbHNlCi0gICAgICAgICBmb3JlYWNoIGRvbWFpbiBbRkY6OmdldF9ieV9zdWZmaXggdmFycyAiLGZpbGxlcl9jZWxscyJdIHsKLSAgICAgICAgICAgIHNldCBjZWxscyAkdmFycygkZG9tYWluLGZpbGxlcl9jZWxscykKLSAgICAgICAgICAgIGxhcHBlbmQgYWxsX2ZpbGxlcl9jZWxscyAkdmFycygkZG9tYWluLGZpbGxlcl9jZWxscykKLSAgICAgICAgICAgIGlmIHshW2xsZW5ndGggJGNlbGxzXX0gewotICAgICAgICAgICAgICAgY29udGludWUKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHNldCBoYXNfc3BlY2lmaWMgdHJ1ZQotIyAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJzZXQgZmlsbGVyX2NlbGxzKCRkb21haW4pIFxbbGlzdCAkY2VsbHNcXVxuIgotIyAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAkY29tbWFuZAotICAgICAgICAgfQotCi0gICAgICAgICAjCi0gICAgICAgICAjIElmIHRoZXJlIGFyZSBubyBmaWxsZXIgY2VsbHMgYXQgYWxsLCB0aGVyZSdzIG5vdGhpbmcgdG8gZG8KLSAgICAgICAgICMKLQotICAgICAgICAgaWYgeyEkaGFzX2RlZmF1bHQgJiYgISRoYXNfc3BlY2lmaWN9IHsKLSAgICAgICAgICAgIHJldHVybiAiIgotICAgICAgICAgfQotCi0gICAgICAgICBzZXQgYWxsX2ZpbGxlcl9jZWxscyBbbHNvcnQgLXVuaXF1ZSBbam9pbiAkYWxsX2ZpbGxlcl9jZWxsc11dCi0KLSAgICAgICAgICMKLSAgICAgICAgICMgSWYgdGhlcmUgYXJlIG5vIGRvbWFpbi1zcGVjaWZpYyBlbnRyaWVzLCBsaWZlIGlzIHJlYWwgc2ltcGxlCi0gICAgICAgICAjCi0KLSMgICAgICAgICBpZiB7ISRoYXNfc3BlY2lmaWN9IHsKLSMgICAgICAgICAgICBzZXQgY29tbWFuZCAic2V0RmlsbGVyTW9kZSAtY29yZSBcIiRkZWZhdWx0X2NlbGxzXCIgLWNvcmVQcmVmaXggRklMTFxuIgotIyAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxzZXRfZmlsbGVyX21vZGUgJGNvbW1hbmRdCi0jICAgICAgICAgICAgaWYgeyRhZGR9IHsKLSMgICAgICAgICAgICAgICBmb3JlYWNoIGNlbGwgJGRlZmF1bHRfY2VsbHMgewotIyAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAic2V0RG9udFVzZSAkY2VsbCBmYWxzZVxuIgotIyAgICAgICAgICAgICAgIH0KLSMgICAgICAgICAgICAgICBpZiB7W2xsZW5ndGggJHZhcnMocG93ZXJfZG9tYWlucyldID4gMH0gewotIyAgICAgICAgICAgICAgICAgIGZvcmVhY2ggZG9tYWluICR2YXJzKHBvd2VyX2RvbWFpbnMpIHsKLSMgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgICIgICBjYXRjaCB7YWRkRmlsbGVyIC1wb3dlckRvbWFpbiAkZG9tYWlufVxuIgotIyAgICAgICAgICAgICAgICAgIH0KLSMgICAgICAgICAgICAgICB9Ci0jICAgICAgICAgICAgICAgZm9yZWFjaCBjZWxsICRkZWZhdWx0X2NlbGxzIHsKLSMgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgInNldERvbnRVc2UgJGNlbGwgdHJ1ZVxuIgotIyAgICAgICAgICAgICAgIH0KLSMgICAgICAgICAgICB9Ci0jICAgICAgICAgfSBlbHNlIHsKLSMgICAgICAgICAgICBmb3JlYWNoIGNlbGwgJGRlZmF1bHRfY2VsbHMgewotIyAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAic2V0RG9udFVzZSAkY2VsbCBmYWxzZVxuIgotIyAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIHtbbGxlbmd0aCAkdmFycyhwb3dlcl9kb21haW5zKV0gPiAwfSB7Ci0gICAgICAgICAgICAgICBzZXQgZGVmYXVsdCAwCi0gICAgICAgICAgICAgICBmb3JlYWNoIGRvbWFpbiAkdmFycyhwb3dlcl9kb21haW5zKSB7Ci0gICAgICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJGRvbWFpbixmaWxsZXJfY2VsbHMpXX0gewotICAgICAgICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgInNldEZpbGxlck1vZGUgLWNvcmUgXCIkdmFycygkZG9tYWluLGZpbGxlcl9jZWxscylcIiAtY29yZVByZWZpeCBGSUxMXG4iCi0gICAgICAgICAgICAgICAgICAgICBzZXQgZGVmYXVsdCAwCi0gICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyBkZWZhdWx0X2NlbGxzXX0gewotICAgICAgICAgICAgICAgICAgICAgICAgaWYgeyEkZGVmYXVsdH0gewotICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgInNldEZpbGxlck1vZGUgLWNvcmUgXCIkZGVmYXVsdF9jZWxsc1wiIC1jb3JlUHJlZml4IEZJTExcbiIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldCBkZWZhdWx0IDEKLSAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgIiIKLSAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWUKLSAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxzZXRfZmlsbGVyX21vZGUgJGNvbW1hbmRdCi0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgICIgICBjYXRjaCB7YWRkRmlsbGVyIC1wb3dlckRvbWFpbiAkZG9tYWlufVxuIgotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotIyAgICAgICAgICAgIGZvcmVhY2ggY2VsbCAkZGVmYXVsdF9jZWxscyB7Ci0jICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJzZXREb250VXNlICRjZWxsIHRydWVcbiIKLSMgICAgICAgICAgICB9Ci0jICAgICAgIH0KLSAgIH0gZWxzZWlmIHshW2NhdGNoIHtzZXQgY2VsbHMgJHZhcnMoZmlsbGVyX2NlbGxzKX1dfSB7Ci0gICAgICAgICBzZXQgY29tbWFuZCAic2V0RmlsbGVyTW9kZSAtY29yZSBcIiRjZWxsc1wiIC1jb3JlUHJlZml4IEZJTExcbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxzZXRfZmlsbGVyX21vZGUgJGNvbW1hbmRdCi0jICAgICAgICAgICAgc2V0IGNvbW1hbmQgImZvcmVhY2ggY2VsbCBceyRjZWxsc1x9IHtcbiIKLSMgICAgICAgICBhcHBlbmQgY29tbWFuZCAiICAgc2V0RG9udFVzZSBcJGNlbGwgZmFsc2VcbiIKLSMgICAgICAgICBhcHBlbmQgY29tbWFuZCAifVxuIgotICAgICAgICAgICAgc2V0IGNvbW1hbmQgImFkZEZpbGxlclxuIgotIyAgICAgICAgIGFwcGVuZCBjb21tYW5kICJmb3JlYWNoIGNlbGwgXHskY2VsbHNcfSB7XG4iCi0jICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAgIHNldERvbnRVc2UgXCRjZWxsIHRydWVcbiIKLSMgICAgICAgICBhcHBlbmQgY29tbWFuZCAifVxuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICRjb21tYW5kCi0gICAgICB9IGVsc2UgewotICAgICAgICAgc2V0IGNvbW1hbmRzICIiCi0gICAgICB9Ci0KLSAgICAgIHJldHVybiAkY29tbWFuZHMKLSAgIH0KLQotICAgcHJvYyBkZWxldGVfZmlsbGVyX2NlbGxzIHt9IHsKLQotICAgICAgZ2xvYmFsIHZhcnMKLQotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgIyBSZW1vdmUgZmlsbGVyIGNlbGxzCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0KLSAgICAgIHNldCBjb21tYW5kICJkZWxldGVGaWxsZXJcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxkZWxldGVfZmlsbGVyX2NlbGxzICRjb21tYW5kXQotICAgICAgcmV0dXJuICRjb21tYW5kcwotICAgfQotCi0gICBwcm9jIGluc2VydF93ZWxsdGFwc19lbmRjYXBzIHt7b3V0bGluZSBmYWxzZX19IHsKLQotICAgICAgZ2xvYmFsIHZhcnMKLQotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgIyBJbnNlcnQgd2VsbHRhcHMgYW5kIHByZS9wb3N0IGVuZGNhcHMKLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLQotICAgICAgZ2xvYmFsIHZhcnMKLSAgICAgIGdsb2JhbCBlcnJvcnMKLSAgICAgIGdsb2JhbCB3YXJuaW5ncwotCi0gICAgICBzZXQgY29tbWFuZHMgIiIKLQotICAgICAgaWYge1tGRjo6aXNfbHBfZmxvd10gJiYgKFtpbmZvIGV4aXN0IHZhcnMocG93ZXJfZG9tYWlucyldICYmIChbbGxlbmd0aCAkdmFycyhwb3dlcl9kb21haW5zKV0gPiAwKSl9IHsKLQotICAgICAgICAgaWYgeyR2YXJzKGZsYXQpID09ICJmdWxsIn0gewotICAgICAgICAgICAgIwotICAgICAgICAgICAgIyBKdXN0IGxpa2UgdGllIGFuZCBmaWxsZXIgY2VsbHMsIHdlIGNhbiBoYXZlIHBvd2VyIGRvbWFpbi1zcGVjaWZpYwotICAgICAgICAgICAgIyBjZWxscyBhbmQgc2V0dGluZ3MgdGhhdCB3ZSBuZWVkIHRvIHdvcnJ5IGFib3V0LgotICAgICAgICAgICAgIwotICAgCi0jICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRl9FREk6OmdldF9wb3dlcl9kb21haW5zX2NvZGVdCi0gICAKLSAgICAgICAgICAgICMKLSAgICAgICAgICAgICMgR2V0IHRoZSBzZXQgb2YgZG9tYWlucyB0aGF0IHdlIG5lZWQgdG8gd29ycnkgYWJvdXQKLSAgICAgICAgICAgICMKLSAgIAotICAgICAgICAgICAgc2V0IHByZSBbRkY6OmdldF9ieV9zdWZmaXggdmFycyAiLHByZV9lbmRjYXAiXQotICAgICAgICAgICAgc2V0IHBvc3QgW0ZGOjpnZXRfYnlfc3VmZml4IHZhcnMgIixwb3N0X2VuZGNhcCJdCi0gICAgICAgICAgICBzZXQgZW5kY2FwcyBbRkY6OmxpbnRlcnNlY3Rpb24gJHByZSAkcG9zdF0KLSAgICAgICAgICAgIHNldCB3ZWxsdGFwcyBbRkY6OmdldF9ieV9zdWZmaXggdmFycyAiLHdlbGx0YXBzIl0KLSAgIAotICAgICAgICAgICAgIwotICAgICAgICAgICAgIyBGb3IgZXZlcnkgZG9tYWluIGluIHRoZSB1bmlvbiwgd2UgbmVlZCB0byBpc3N1ZSBzdGF0ZW1lbnRzIGlmIHRoYXQKLSAgICAgICAgICAgICMgZG9tYWluIGlzIG9uZSBvZiB0aGUgcG93ZXIgZG9tYWlucyBpbiB0aGUgZGVzaWduCi0gICAgICAgICAgICAjCi0gICAgICAgICAgICAjIE5PVEU6IFdlIHJlYWxseSBkb24ndCBuZWVkIHRvIHdvcnJ5IGFib3V0IGluZGVudGluZyB0aGUgY29tbWFuZHMKLSAgICAgICAgICAgICMgICAgICAgdG8gbG9vayBuaWNlIHNpbmNlIHRoZSBvdXRwdXQgcm91dGluZSB3aWxsIGZvcm1hdCBpdCBjb3JyZWN0bHkKLSAgICAgICAgICAgICMKLSAgIAotICAgICAgICAgICAgc2V0IGRvbWFpbnMgW0ZGOjpsdW5pb24gJGVuZGNhcHMgJHdlbGx0YXBzXQotCi0gICAgICAgICAgICBmb3JlYWNoIGRvbWFpbiAkZG9tYWlucyB7Ci0jICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJpZiB7XFtsc2VhcmNoIFwkZG9tYWlucyAkZG9tYWluXF0gIT0gLTF9IHtcbiIKLSAgIAotICAgICAgICAgICAgICAgIwotICAgICAgICAgICAgICAgIyBIYW5kbGUgdGhlIGVuZCBjYXBzCi0gICAgICAgICAgICAgICAjCi0gICAKLSAgICAgICAgICAgICAgIHNldCBzdGRfYXJncyAiLXByZWZpeCAkZG9tYWluIC1wb3dlckRvbWFpbiAkZG9tYWluIgotICAgICAgICAgICAgICAgc2V0IGFkZCAiICAgYWRkRW5kQ2FwICRzdGRfYXJncyIKLSAgICAgICAgICAgICAgIGlmIHshW2NhdGNoIHtzZXQgcHJlICR2YXJzKCRkb21haW4scHJlX2VuZGNhcCl9XSAmJgotICAgICAgICAgICAgICAgICAgICFbY2F0Y2gge3NldCBwb3N0ICR2YXJzKCRkb21haW4scG9zdF9lbmRjYXApfV19IHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiJGFkZCAtcHJlQ2FwICRwcmUgLXBvc3RDYXAgJHBvc3RcbiIKLSAgICAgICAgICAgICAgIH0gZWxzZWlmIHshW2NhdGNoIHtzZXQgcHJlICR2YXJzKHByZV9lbmRjYXApfV0gJiYKLSAgICAgICAgICAgICAgICAgICAgICAgICAhW2NhdGNoIHtzZXQgcG9zdCAkdmFycyhwb3N0X2VuZGNhcCl9XX0gewotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIkYWRkIC1wcmVDYXAgJHByZSAtcG9zdENhcCAkcG9zdFxuIgotICAgICAgICAgICAgICAgfQotICAgCi0gICAgICAgICAgICAgICBzZXQgdGFwcyAiIgotICAgICAgICAgICAgICAgaWYge1tjYXRjaCB7c2V0IHRhcHMgJHZhcnMoJGRvbWFpbix3ZWxsdGFwcyl9XX0gewotICAgICAgICAgICAgICAgICAgY2F0Y2gge3NldCB0YXBzICR2YXJzKHdlbGx0YXBzKX0KLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIGlmIHskdGFwcyA9PSAiIn0gewotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJcfVxuIgotICAgICAgICAgICAgICAgICAgY29udGludWUKLSAgICAgICAgICAgICAgIH0KLSAgIAotICAgICAgICAgICAgICAgIwotICAgICAgICAgICAgICAgIyBIYW5kbGUgd2VsbCB0YXBzCi0gICAgICAgICAgICAgICAjCi0gICAKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiICAgYWRkV2VsbFRhcCAkc3RkX2FyZ3MgLWNlbGwgXFtsaXN0ICR0YXBzXF0iCi0gICAKLSAgICAgICAgICAgICAgIGlmIHshW2NhdGNoIHtzZXQgaSAkdmFycygkZG9tYWluLHdlbGx0YXBzLGNlbGxfaW50ZXJ2YWwpfV19IHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIC1jZWxsSW50ZXJ2YWwgJGkiCi0gICAgICAgICAgICAgICB9IGVsc2VpZiB7IVtjYXRjaCB7c2V0IGkgJHZhcnMod2VsbHRhcHMsY2VsbF9pbnRlcnZhbCl9XX0gewotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIgLWNlbGxJbnRlcnZhbCAkaSIKLSAgICAgICAgICAgICAgIH0KLSAgIAotICAgICAgICAgICAgICAgaWYgeyFbY2F0Y2gge3NldCBvZmZzZXQgJHZhcnMoJGRvbWFpbix3ZWxsdGFwcyxyb3dfb2Zmc2V0KX1dIHx8Ci0gICAgICAgICAgICAgICAgICAgIVtjYXRjaCB7c2V0IG9mZnNldCAkdmFycyh3ZWxsdGFwcyxyb3dfb2Zmc2V0KX1dfSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiAtaW5Sb3dPZmZzZXQgJG9mZnNldCIKLSAgICAgICAgICAgICAgIH0KLSAgIAotICAgICAgICAgICAgICAgaWYgeyFbY2F0Y2gge3NldCBjaGVja2VyICR2YXJzKCRkb21haW4sd2VsbHRhcHMsY2hlY2tlcmJvYXJkKX1dIHx8Ci0gICAgICAgICAgICAgICAgICAgIVtjYXRjaCB7c2V0IGNoZWNrZXIgJHZhcnMod2VsbHRhcHMsY2hlY2tlcmJvYXJkKX1dfSB7Ci0gICAgICAgICAgICAgICAgICBpZiB7JGNoZWNrZXJ9IHsKLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIC1jaGVja2VyYm9hcmQiCi0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIlxuIgotICAgCi0gICAgICAgICAgICAgICAjCi0gICAgICAgICAgICAgICAjIEFkZCBhIHZlcmlmeSBzdGVwLCBpZiByZXF1ZXN0ZWQKLSAgICAgICAgICAgICAgICMKLSAgIAotICAgICAgICAgICAgICAgaWYgeyFbY2F0Y2gge3NldCBydWxlICR2YXJzKCRkb21haW4sd2VsbHRhcHMsdmVyaWZ5X3J1bGUpfV0gfHwKLSAgICAgICAgICAgICAgICAgICAhW2NhdGNoIHtzZXQgcnVsZSAkdmFycyh3ZWxsdGFwcyx2ZXJpZnlfcnVsZSl9XX0gewotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJ2ZXJpZnlXZWxsVGFwIC1jZWxscyBcW2xpc3QgJHRhcHNcXSIKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIC1wb3dlckRvbWFpbiAkZG9tYWluIgotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIgLXJlcG9ydCAkdmFycyhycHRfZGlyKS8kZG9tYWluLndlbGx0YXAucnB0IgotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIgLXJ1bGUgJHJ1bGVcbiIKLSAgICAgICAgICAgICAgIH0KLSAgIAotIyAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAifVxuIgotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAjCi0gICAgICAgICAgICAjIFdlJ3ZlIHRha2VuIGNhcmUgb2YgYWxsIG9mIHRoZSBkb21haW5zIHRoYXQgd2UgaGF2ZSBleHBsaWNpdAotICAgICAgICAgICAgIyBzZXR0aW5ncyBmb3IuICBIb3dldmVyLCB3ZSBtYXkgc3RpbGwgaGF2ZSBkb21haW5zIGluIHRoZSBkZXNpZ24KLSAgICAgICAgICAgICMgdGhhdCB3ZSBrbm93IG5vdGhpbmcgZXhwbGljaXQgYWJvdXQuICBXZSBuZWVkIHRvIGhhbmRsZSB0aGVzZQotICAgICAgICAgICAgIyB3aXRoIGEgZGlmZmVyZW50IHNldCBvZiBjb2RlLgotICAgICAgICAgICAgIwotICAgICAgICAgICAgIyBXZSBhcmUgZ29pbmcgdG8gY2hlYXQuICBTaW5jZSB0aGUgY29kZSB3ZSBuZWVkIGlzIGFscmVhZHkgd3JpdHRlbgotICAgICAgICAgICAgIyAoYmVsb3cpLCB3ZSBhcmUgZ29pbmcgdG8gcmVjdXJzaXZlbHkgY2FsbCB0aGlzIHJvdXRpbmUgdG8gZ2V0Ci0gICAgICAgICAgICAjIHRoZSBza2VsZXRvbiB0aGF0IHdlIG5lZWQgYW5kIHdyYXAgaXQgdXAgaW50byBhIGZvci1sb29wLiAgVGhpcwotICAgICAgICAgICAgIyBzaG91bGQgZ2V0IHVzIHNvbWV0aGluZyB0aGF0IGxvb2tzIGxpa2UgdGhlIGZvbGxvd2luZzoKLSAgICAgICAgICAgICMgICAgICAgc2V0IHByb2Nlc3NlZCBbbGlzdCBkb21haW4xIGRvbWFpbjIgZG9tYWluM10KLSAgICAgICAgICAgICMgICAgICAgZm9yZWFjaCBkb21haW4gJGRvbWFpbnMgewotICAgICAgICAgICAgIyAgICAgICAgICBpZiB7W2xzZWFyY2ggJHByb2Nlc3NlZF9kb21haW5zICRkb21haW5dID09IC0xfSB7Ci0gICAgICAgICAgICAjICAgICAgICAgICAgIGFkZEVuZENhcCAtcG93ZXJEb21haW4gJGRvbWFpbiAtcHJlZml4ICRkb21haW4gLi4uCi0gICAgICAgICAgICAjICAgICAgICAgICAgIGFkZFdlbGxUYXAgLXBvd2VyRG9tYWluICRkb21haW4gLXByZWZpeCAkZG9tYWluIC4uLgotICAgICAgICAgICAgIyAgICAgICAgICAgICB2ZXJpZnlXZWxsVGFwIC1wb3dlckRvbWFpbiAkZG9tYWluIC4uLgotICAgICAgICAgICAgIyAgICAgICAgICB9Ci0gICAgICAgICAgICAjICAgICAgIH0KLSAgICAgICAgICAgICMKLSAgICAgICAgICAgICMgTk9URTogVGhlIG91dHB1dCByb3V0aW5lIHdpbGwgdGFrZSBjYXJlIG9mIG1ha2luZyB0aGlzIGxvb2sgcHJldHR5Ci0gICAgICAgICAgICAjICAgICAgIGF0IHRoZSBlbmQuICBXZSBkb24ndCBuZWVkIHRvIHdvcnJ5IGFib3V0IGluZGVudGF0aW9uIGZvcgotICAgICAgICAgICAgIyAgICAgICB0aGUgaW5zZXJ0ZWQgY29tbWFuZHMKLSAgICAgICAgICAgICMKLSAgIAotIyAgICAgICAgICAgIHNldCBzYXZlICR2YXJzKGNwZl9maWxlKQotIyAgICAgICAgICAgIHVuc2V0IHZhcnMoY3BmX2ZpbGUpCi0jICAgICAgICAgICAgc2V0IGRlZmF1bHRfaW5zZXJ0IFtpbnNlcnRfd2VsbHRhcHNfZW5kY2FwcyB0cnVlXQotIyAgICAgICAgICAgIGlmIHskZGVmYXVsdF9pbnNlcnQgIT0gIiJ9IHsKLSMgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgInNldCBwcm9jZXNzZWRfZG9tYWlucyBcW2xpc3QgJGRvbWFpbnNcXVxuIgotIyAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiZm9yZWFjaCBkb21haW4gXCRkb21haW5zIHtcbiIKLSMgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiAgIGlmIHtcW2xzZWFyY2ggXCRwcm9jZXNzZWRfZG9tYWlucyBcJGRvbWFpblxdID09IC0xfSB7XG4iCi0jICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIgICAgICAkZGVmYXVsdF9pbnNlcnQiCi0jICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIgICB9XG4iCi0jICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJ9XG4iCi0jICAgICAgICAgICAgfQotIyAgICAgICAgICAgIHNldCB2YXJzKGNwZl9maWxlKSAkc2F2ZQotICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiZmZfcHJvY3M6Omluc2VydF93ZWxsdGFwc19lbmRjYXBzXG4iCi0gICAgICAgICB9Ci0gICAgICB9IGVsc2UgewotICAgICAgICAgIwotICAgICAgICAgIyBUaGVyZSBpcyBubyBDUEYgZmlsZSB0aGF0IHdlIG5lZWQgdG8gd29ycnkgYWJvdXQuICBIb3dldmVyLCBpZgotICAgICAgICAgIyAkb3V0bGluZSBpcyB0cnVlLCBpdCBtZWFucyB0aGF0IHRoZSBjb2RlIChhYm92ZSkgdGhhdCBoYW5kbGVzIHBvd2VyCi0gICAgICAgICAjIGRvbWFpbnMgY2FsbGVkIHRoaXMgcm91dGluZSByZWN1cnNpdmVseSwgYW5kIHdlIG5lZWQgdG8gY2hhbmdlCi0gICAgICAgICAjIHRoZSBjb21tYW5kcyBhIGxpdHRsZSBiaXQgdG8gaW5jbHVkZSB2YXJpYWJsZXMgZm9yIHBvd2VyIGRvbWFpbnMKLSAgICAgICAgICMKLSAgICAgICAgICMgU3RhcnQgd2l0aCB0aGUgc2ltcGxlIGNhc2U6IGVuZGNhcHMKLSAgICAgICAgICMKLQotICAgICAgICAgaWYgeyFbY2F0Y2gge3NldCBwcmUgJHZhcnMocHJlX2VuZGNhcCl9XSAmJgotICAgICAgICAgICAgICFbY2F0Y2gge3NldCBwb3N0ICR2YXJzKHBvc3RfZW5kY2FwKX1dfSB7Ci0KLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiYWRkRW5kQ2FwIC1wcmVDYXAgJHByZSAtcG9zdENhcCAkcG9zdCIKLSAgICAgICAgICAgIGlmIHshJG91dGxpbmV9IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIC1wcmVmaXggRU5EQ0FQXG4iCi0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIgLXByZWZpeCBcJGRvbWFpbiAtcG93ZXJEb21haW4gXCRkb21haW5cbiIKLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0KLQotICAgICAgICAgIwotICAgICAgICAgIyBOb3cgcHJvY2VzcyB3ZWxsdGFwcwotICAgICAgICAgIwotCi0gICAgICAgICBpZiB7IVtjYXRjaCB7c2V0IHRhcHMgJHZhcnMod2VsbHRhcHMpfV19IHsKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiYWRkV2VsbFRhcCAtY2VsbCBcW2xpc3QgJHRhcHNcXSIKLSAgICAgICAgICAgIGlmIHshJG91dGxpbmV9IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIC1wcmVmaXggV0VMTFRBUCIKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiAtcHJlZml4IFwkZG9tYWluIC1wb3dlckRvbWFpbiBcJGRvbWFpbiIKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgaWYgeyFbY2F0Y2gge3NldCBtYXhfZ2FwICR2YXJzKHdlbGx0YXBzLG1heF9nYXApfV19IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIC1tYXhHYXAgJG1heF9nYXAiCi0gICAgICAgICAgICB9IGVsc2VpZiB7IVtjYXRjaCB7c2V0IGludGVydmFsICR2YXJzKHdlbGx0YXBzLGNlbGxfaW50ZXJ2YWwpfV19IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIC1jZWxsSW50ZXJ2YWwgJGludGVydmFsIgotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBpZiB7IVtjYXRjaCB7c2V0IG9mZnNldCAkdmFycyh3ZWxsdGFwcyxyb3dfb2Zmc2V0KX1dfSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiAtaW5Sb3dPZmZzZXQgJG9mZnNldCIKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgaWYgeyFbY2F0Y2gge3NldCBjaGVja2VyICR2YXJzKHdlbGx0YXBzLGNoZWNrZXJib2FyZCl9XX0gewotICAgICAgICAgICAgICAgaWYgeyRjaGVja2VyfSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiAtY2hlY2tlcmJvYXJkIgotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJcbiIKLQotICAgICAgICAgICAgIwotICAgICAgICAgICAgIyBJZiBhIHZlcmlmeSByZXF1ZXN0IGhhcyBiZWVuIG1hZGUsIGNyZWF0ZSB0aGUgY29tbWFuZCB0bwotICAgICAgICAgICAgIyBkbyBzby4gIEFnYWluLCB0YWtlIGludG8gYWNjb3VudCB0aGUgcG90ZW50aWFsIGZvciBhIHJlY3Vyc2l2ZQotICAgICAgICAgICAgIyBjYWxsIHRvIHRoaXMgcm91dGluZS4KLSAgICAgICAgICAgICMKLQotICAgICAgICAgICAgaWYgeyFbY2F0Y2gge3NldCBydWxlICR2YXJzKHdlbGx0YXBzLHZlcmlmeV9ydWxlKX1dfSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgInZlcmlmeVdlbGxUYXAgLWNlbGxzIFxbbGlzdCAkdGFwc1xdICIKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIC1yZXBvcnQgJHZhcnMocnB0X2RpcikvIgotICAgICAgICAgICAgICAgaWYgeyEkb3V0bGluZX0gewotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJ3ZWxsdGFwLnJwdCIKLSAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIlwkZG9tYWluLndlbGx0YXAucnB0IC1wb3dlckRvbWFpbiBcJGRvbWFpbiIKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIC1ydWxlICRydWxlXG4iCi0gICAgICAgICAgICB9IGVsc2VpZiB7ISRvdXRsaW5lfSB7Ci0jICAgICAgICAgICAgICAgcHV0cyAgIjxGRj4gQ2Fubm90IHJ1biB2ZXJpZnlXZWxsVGFwIGJlY2F1c2UgdmFycyh3ZWxsdGFwcyx2ZXJpZnlfcnVsZSkgaXMgbm90IGRlZmluZWQiCi0gICAgICAgICAgICAgICBzZXQgd2FybmluZ3MoJHZhcnMod2FybmluZ19jb3VudCkpICJDYW5ub3QgcnVuIHZlcmlmeVdlbGxUYXAgYmVjYXVzZSB2YXJzKHdlbGx0YXBzLHZlcmlmeV9ydWxlKSBpcyBub3QgZGVmaW5lZCIKLSAgICAgICAgICAgICAgIGluY3IgdmFycyh3YXJuaW5nX2NvdW50KQotICAgICAgICAgICAgfQotICAgICAgICAgfQotICAgICAgfQotCi0gICAgICAjCi0gICAgICAjIElmIHdlIGNyZWF0ZWQgYW55IGNvbW1hbmRzIHRvIGJlIGV4ZWN1dGVkLCBwcmVmaXggdGhlIGNvbW1hbmRzIHdpdGggYQotICAgICAgIyBoZWFkZXIKLSAgICAgICMKLQotICAgICAgaWYgeygkY29tbWFuZHMgIT0gIiIpICYmICEkb3V0bGluZX0gewotICAgICAgICAgc2V0IGJvZHkgJGNvbW1hbmRzCi0KLSAgICAgICAgIHNldCBjb21tYW5kcyAiIgotICAgICAgICAgaWYgeyR2YXJzKHZlcmJvc2UpfSB7Ci0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiNcbiIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyBJTlNFUlRJTkcgV0VMTFRBUFMgQU5EL09SIEVORENBUFNcbiIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiI1xuIgotICAgICAgICAgfQotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICRib2R5Ci0gICAgICB9Ci0KLSAgICAgIHJldHVybiAkY29tbWFuZHMKLSAgIH0KLQotICAgcHJvYyByb3V0ZV9zZWNvbmRhcnlfcGdfbmV0cyB7fSB7Ci0KLSAgICAgIGdsb2JhbCB2YXJzCi0gICAgICBnbG9iYWwgZXJyb3JzCi0KLSAgICAgICMKLSAgICAgICMgRG9uJ3QgdHJ5IHRvIHJvdXRlIHVubGVzcyB0aGUgcHJvcGVyIGZsYWdzIGFyZSBpbiBwbGFjZSB0byBkbyBzbwotICAgICAgIwotCi0gICAgICBpZiB7IVtpbmZvIGV4aXN0cyB2YXJzKHJvdXRlX3NlY29uZGFyeV9wZ19uZXRzKV0gfHwKLSAgICAgICAgICAhJHZhcnMocm91dGVfc2Vjb25kYXJ5X3BnX25ldHMpfSB7Ci0gICAgICAgICByZXR1cm4gIiIKLSAgICAgIH0KLQotICAgICAgc2V0IGNvbW1hbmRzICIjIDxGRj4gUk9VVElORyBTRUNPTkRBUlkgUE9XRVIgTkVUUyAuLi5cbiIKLQotICAgICAgIwotICAgICAgIyBFbmFibGUgZ2xvYmFsIHBpbiBwYWlycyAoaWYgZGVmaW5lZCkKLSAgICAgICMKLQotICAgICAgaWYge1tjYXRjaCB7c2V0IGFyZyAkdmFycyhzZWNvbmRhcnlfcGcsY2VsbF9waW5fcGFpcnMpfV19IHsKLSAgICAgICAgIHB1dHMgIjxGRj4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSIKLSAgICAgICAgIHB1dHMgIjxGRj4gRVJST1I6IE5vIGNlbGwvcGluIHBhaXJzIGRlZmluZWQuICBQbGVhc2UgZGVmaW5lIGNlbGwvcGluIgotICAgICAgICAgcHV0cyAiPEZGPiAgICAgICAgcGFpcnMgaW4geW91ciBzZXR1cC50Y2wgdXNpbmcgdGhlIHZhcmlhYmxlIgotICAgICAgICAgcHV0cyAiPEZGPiAgICAgICAgdmFycyhzZWNvbmRhcnlfcGcsY2VsbF9waW5fcGFpcnMpIgotICAgICAgICAgcHV0cyAiPEZGPiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09IgotICAgICAgICAgaWYgeyR2YXJzKGNvZGVnZW4pfSB7Ci0gICAgICAgICAgICByZXR1cm4gJGNvbW1hbmRzCi0gICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgIHVwbGV2ZWwgIzAgZXZhbCAkY29tbWFuZHMKLSAgICAgICAgIH0KLSAgICAgIH0KLSAgICAgIGFwcGVuZCBjb21tYW5kcyAic2V0UEdQaW5Vc2VTaWduYWxSb3V0ZSAkYXJnXG4iCi0KLSAgICAgICMKLSAgICAgICMgQnVpbGQgY29tbWFuZHMgZm9yIGluZGl2aWR1YWwgbmV0cyAoaWYgZGVmaW5lZCkKLSAgICAgICMKLQotICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKHNlY29uZGFyeV9wZyxuZXRzKV19IHsKLSAgICAgICAgIGZvcmVhY2ggbmV0ICR2YXJzKHNlY29uZGFyeV9wZyxuZXRzKSB7Ci0gICAgICAgICAgICBpZiB7IVtjYXRjaCB7c2V0IGFyZyAkdmFycygkbmV0LGNlbGxfcGluX3BhaXJzKX1dfSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgInNldFBHUGluVXNlU2lnbmFsUm91dGUgJGFyZ1xuIgotICAgICAgICAgICAgfQotICAgICAgICAgfQotICAgICAgICAgc2V0IG5ldHMgJHZhcnMoc2Vjb25kYXJ5X3BnLG5ldHMpCi0gICAgICAgICBzZXQgbmV0Rm9ybWF0ICIgLW5ldHMgJXMiCi0gICAgICB9IGVsc2UgewotICAgICAgICAgc2V0IG5ldHMgW2xpc3QgInNlY29uZGFyeV9wZyJdCi0gICAgICAgICBzZXQgbmV0Rm9ybWF0ICIiCi0gICAgICB9Ci0KLSAgICAgIGZvcmVhY2ggbmV0ICRuZXRzIHsKLSAgICAgICAgIHNldCByb3V0ZSAicm91dGVQR1BpblVzZVNpZ25hbFJvdXRlIgotICAgICAgICAgYXBwZW5kIHJvdXRlIFtmb3JtYXQgJG5ldEZvcm1hdCAkbmV0XQotICAgICAgICAgY2F0Y2gge2FwcGVuZCByb3V0ZSAiIC1wYXR0ZXJuICR2YXJzKCRuZXQscGF0dGVybikifQotICAgICAgICAgY2F0Y2gge2FwcGVuZCByb3V0ZSAiIC1tYXhGYW5vdXQgJHZhcnMoJG5ldCxtYXhfZmFub3V0KSJ9Ci0gICAgICAgICBjYXRjaCB7YXBwZW5kIHJvdXRlICIgLW5vbkRlZmF1bHRSdWxlICR2YXJzKCRuZXQsbm9uX2RlZmF1bHRfcnVsZSkifQotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIkcm91dGVcbiIKLSAgICAgIH0KLSAgICAgIHJldHVybiAkY29tbWFuZHMKLSAgIH0KLQotICAgcHJvYyBhZGRfcG93ZXJfc3dpdGNoZXMge3tkb21haW5zICIifX0gewotCi0gICAgICBnbG9iYWwgdmFycwotICAgICAgZ2xvYmFsIGVycm9ycwotICAgICAgZ2xvYmFsIG1hcAotCi0gICAgICBzb3VyY2UgJHZhcnMoc2NyaXB0X3BhdGgpL0VUQy9JTk5PVlVTL21hcF9vcHRpb25zLnRjbAotCi0gICAgICBpZiB7JGRvbWFpbnMgPT0gIiJ9IHsKLSAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGX0VESTo6Z2V0X3Bvd2VyX2RvbWFpbnNfY29kZV0KLSMgICAgICAgICBldmFsIFtGRjo6Z2V0X3Bvd2VyX2RvbWFpbnNfY29kZV0KLSAgICAgIH0KLQotICAgICAgZm9yZWFjaCBkb21haW4gJGRvbWFpbnMgewotICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCRkb21haW4sc3dpdGNoYWJsZSldICYmCi0gICAgICAgICAgICAgJHZhcnMoJGRvbWFpbixzd2l0Y2hhYmxlKX0gewotICAgICAgICAgICAgc2V0IHR5cGUgJHZhcnMoJGRvbWFpbixzd2l0Y2hfdHlwZSkKLQotICAgICAgICAgICAgZGVsZXRlUG93ZXJTd2l0Y2ggLSR0eXBlIC1wb3dlckRvbWFpbiAkZG9tYWluCi0KLSAgICAgICAgICAgIHNldCBjb21tYW5kICJhZGRQb3dlclN3aXRjaCAtcG93ZXJEb21haW4gJGRvbWFpbiAtJHR5cGUiCi0KLSAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkZG9tYWluLGNoZWNrZXJfYm9hcmQpXSAmJgotICAgICAgICAgICAgICAgICR2YXJzKCRkb21haW4sY2hlY2tlcl9ib2FyZCl9IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgLWNoZWNrZXJCb2FyZCIKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkZG9tYWluLGJhY2tfdG9fYmFja19jaGFpbildICYmCi0gICAgICAgICAgICAgICAgJHZhcnMoJGRvbWFpbixiYWNrX3RvX2JhY2tfY2hhaW4pfSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiIC1iYWNrVG9CYWNrQ2hhaW4iCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJGRvbWFpbixsb29wX2JhY2tfYXRfZW5kKV0gJiYKLSAgICAgICAgICAgICAgICAkdmFycygkZG9tYWluLGxvb3BfYmFja19hdF9lbmQpfSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiIC1sb29wYmFja0F0RW5kIgotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCRkb21haW4sY2hlY2tfaGVpZ2h0KV0gJiYKLSAgICAgICAgICAgICAgICAhJHZhcnMoJGRvbWFpbixjaGVja19oZWlnaHQpfSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiIC1ub0RvdWJsZUhlaWdodENoZWNrIgotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCRkb21haW4sdmVyaWZ5X3Jvd3MpXSAmJgotICAgICAgICAgICAgICAgICEkdmFycygkZG9tYWluLHZlcmlmeV9yb3dzKX0gewotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAtbm9Sb3dWZXJpZnkiCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJGRvbWFpbixlbmFibGVfY2hhaW4pXSAmJgotICAgICAgICAgICAgICAgICEkdmFycygkZG9tYWluLGVuYWJsZV9jaGFpbil9IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgLW5vRW5hYmxlQ2hhaW4iCi0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGZvcmVhY2ggb3B0aW9uIFthcnJheSBuYW1lcyBtYXBdIHsKLSAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkZG9tYWluLCRvcHRpb24pXX0gewotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAtJG1hcCgkb3B0aW9uKSAkdmFycygkZG9tYWluLCRvcHRpb24pIgotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICB1cGxldmVsICMwIGV2YWwgJGNvbW1hbmQKLSAgICAgICAgIH0KLSAgICAgIH0KLSAgIH0KLQotICAgcHJvYyBydW5fY2xvY2tfZWNvIHthcmdzfSB7Ci0KLSAgICAgIGdsb2JhbCB2YXJzCi0gICAgICBnbG9iYWwgZXJyb3JzCi0KLSAgICAgIGlmIHtbbGxlbmd0aCAkYXJnc10gIT0gMX0gewotICAgICAgICAgcHV0cyAiPEZGPiBJbnRlcm5hbCBlcnJvciBpbiBydW5fY2xvY2tfZWNvLiAgV3JvbmcgbnVtYmVyIG9mIGFyZ3MuIgotICAgICAgICAgZXhpdCAtMTExCi0gICAgICB9Ci0KLSAgICAgIHNldCBjb21tYW5kcyAiIgotIyAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyA8RkY+IFJVTk5JTkcgQ0xPQ0sgRUNPXG4iCi0gICAgICBzd2l0Y2ggJGFyZ3MgewotICAgICAgICAgInBvc3Rfcm91dGUiIHsKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkZfRURJOjpkZWxldGVfZmlsbGVyX2NlbGxzXQotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJja0VDTyAtcG9zdFJvdXRlIC11c2VTcGVjRmlsZUNlbGxzT25seVxuIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRl9FREk6OmFkZF9maWxsZXJfY2VsbHNdCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgImNoYW5nZUNsb2NrU3RhdHVzIC1hbGwgLW5vRml4ZWROZXRXaXJlc1xuIgotICAgICAgICAgfQotICAgICAgICAgInBvc3RfY3RzIiB7IAotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJja0VDTyAtcG9zdENUUyAtdXNlU3BlY0ZpbGVDZWxsc09ubHlcbiIKLSAgICAgICAgIH0KLSAgICAgICAgIGRlZmF1bHQgewotICAgICAgICAgICAgcHV0cyAiPEZGPiBJbnRlcm5hbCBlcnJvciBpbiBydW5fY2xvY2tfZWNvLiIKLSAgICAgICAgICAgIHB1dHMgIjxGRj4gSW52YWxpZCBhcmd1bWVudDsgdmFsaWQgYXJndW1lbnRzIGFyZSBwb3N0X2N0cyBhbmQgcG9zdF9yb3V0ZS4iCi0gICAgICAgICAgICBleGl0IC0xMTEKLSAgICAgICAgIH0KLSAgICAgIH0KLSAgICMgICBpZiB7JHZhcnMoY29kZWdlbil9IHsKLSAgICAgICAgIHJldHVybiAkY29tbWFuZHMKLSAgICMgICB9IGVsc2UgewotICAgIyAgICAgICB1cGxldmVsICMwIGV2YWwgJGNvbW1hbmRzCi0gICAjICAgfQotICAgfQotCi0gICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAjIE1haW4gZm91bmRhdGlvbiBmbG93IHN0ZXAgcHJvY2VkdXJlcwotICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCi0gICBwcm9jIHJ1bl9zeW5fbWFwIHt7Zm9ybWF0IDF9fSB7Ci0gICAKLSAgICAgIGdsb2JhbCB2YXJzCi0gICAgICBnbG9iYWwgZW52Ci0gICAgICBnbG9iYWwgZXJyb3JzCi0KLSAgICAgIHNldCB2YXJzKHN0ZXApIHN5bl9tYXAKLQotICAgICAgc2V0IGNvbW1hbmRzICIiCi0KLSAgICAgIGFwcGVuZCBjb21tYW5kcyAicHJvYyBQdXRzIHthcmdzfSB7cHV0cyBcJGFyZ3N9XG4iCi0KLSAgICAgIGFwcGVuZCBjb21tYW5kcyAicHV0cyBcW2dldF9hdHRyIHByb2dyYW1fdmVyc2lvbiAvXF1cbiIKLQotICAgICAgIyMgZW5hYmxlIG11bHRpIHByb2Nlc3NpbmcKLSAgICAgIGFwcGVuZCBjb21tYW5kcyAic2V0IGhvc3RsaXN0IFxbbHJlcGVhdCAkdmFycyhsb2NhbF9jcHVzKSBsb2NhbGhvc3RcXVxuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzICJzZXRfYXR0cmlidXRlIHN1cGVyX3RocmVhZF9zZXJ2ZXJzIFwkaG9zdGxpc3QgL1xuIgotICAgICAKLSAgICAgIGlmIHskdmFycyhjYXB0dXJlX21ldHJpY3MpfSB7Ci0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIlxudW06OmVuYWJsZV9tZXRyaWNzIC1vblxuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJ1bTo6cHVzaF9zbmFwc2hvdF9zdGFja1xuIgotICAgICAgfQotICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6c291cmNlX3BsdWcgcHJlX3N5bl9zZXR1cF90Y2xdCi0gICAgICAKLSAgICAgICAgIHNldCBjb21tYW5kICJzZXRfYXR0cmlidXRlIGluZm9ybWF0aW9uX2xldmVsIDEgL1xuIgotICAgICAgYXBwZW5kIGNvbW1hbmQgInNldF9hdHRyaWJ1dGUgc291cmNlX3ZlcmJvc2UgZmFsc2UgL1xuIgotICAgICAgYXBwZW5kIGNvbW1hbmQgInNldF9hdHRyaWJ1dGUgLXF1aWV0IHByaW50X2Vycm9yX2luZm8gZmFsc2UgL1xuIgotICAgICAgYXBwZW5kIGNvbW1hbmQgInNldF9hdHRyaWJ1dGUgLXF1aWV0IGVjaG9fY29tbWFuZHMgZmFsc2UgL1xuIgotICAgICAgYXBwZW5kIGNvbW1hbmQgInNldF9hdHRyaWJ1dGUgbWVzZ19jb2xvcmluZyBmYWxzZSAvXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZCAic2V0X2F0dHJpYnV0ZSBxb3NfcmVwb3J0X2Jhc2ljX2Nvc3RfZ3JvdXBzIHRydWUgL1xuIgotCi0gICAgICAgICBzZXQgY29tbWFuZCAic2V0X2F0dHJpYnV0ZSBsaWJfbGVmX2NvbnNpc3RlbmN5X2NoZWNrX2VuYWJsZSB0cnVlIC9cbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kICJzZXRfYXR0cmlidXRlIHNjcmlwdF9zZWFyY2hfcGF0aCB7Li99IC9cbiIKLSAgICAgIAotICAgICAgYXBwZW5kIGNvbW1hbmQgInN1cHByZXNzX21lc3NhZ2VzIHtMQlItMzAgTEJSLTMxIExCUi0xNzAgTEJSLTcyIExCUi0xNTUgUEhZUy0yMTAgUEhZUy0yNTYgTEJSLTIwMSBMQlItMzQgTEJSLTgzIExCUi00MCBMQlItMTYyIExCUi0xMjJ9XG4iCi0gICAgICBhcHBlbmQgY29tbWFuZCAicmVkaXJlY3QgL2Rldi9udWxsIHtzZXQgbWFwX2ZhbmN5X25hbWVzIDF9XG4iCi0KLSAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OnNvdXJjZV9wbHVnIHBvc3Rfc3luX3NldHVwX3RjbF0KLSAgICAgIAotICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6c291cmNlX3BsdWcgcHJlX3N5bl9sb2FkX2xpYl90Y2xdCi0gICAgICAKLSAgICAgIHNldCBjb21tYW5kICJcbnNldF9hdHRyaWJ1dGUgbGlicmFyeSBcIlxcXG4iCi0gICAgICBmb3JlYWNoIGxpYiAkdmFycygkdmFycygkdmFycygkdmFycyhkZWZhdWx0X3NldHVwX3ZpZXcpLGRlbGF5X2Nvcm5lciksbGlicmFyeV9zZXQpLHRpbWluZykgewotICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAgICRsaWIgXFxcbiIKLSAgICAgIH0KLSAgICAgIGFwcGVuZCBjb21tYW5kICJcIlxuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHJlYWRfbGliICRjb21tYW5kXQotICAgICAgCi0gICAgICBzZXQgY29tbWFuZCAiXG5zZXRfYXR0cmlidXRlIGxlZl9saWJyYXJ5IFwiXFxcbiIKLSAgICAgIGZvcmVhY2ggbGVmICR2YXJzKGxlZl9maWxlcykgewotICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAgICRsZWYgXFxcbiIKLSAgICAgIH0KLSAgICAgIGFwcGVuZCBjb21tYW5kICJcIlxuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHJlYWRfbGVmICRjb21tYW5kXQotICAgICAgCi0gICAgICBzZXQgY29tbWFuZCAiXG5zZXRfYXR0cmlidXRlIHFyY190ZWNoX2ZpbGUgJHZhcnMoJHZhcnMoJHZhcnMoJHZhcnMoZGVmYXVsdF9zZXR1cF92aWV3KSxkZWxheV9jb3JuZXIpLHJjX2Nvcm5lcikscXhfdGVjaF9maWxlKVxuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHJlYWRfcXJjICRjb21tYW5kXQotICAgICAgCi0gICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoZG9udF91c2VfbGlzdCldICYmICR2YXJzKGRvbnRfdXNlX2xpc3QpICE9ICIiIH0gewotICAgICAgICAgZm9yZWFjaCBjZWxsICR2YXJzKGRvbnRfdXNlX2xpc3QpIHsKLSAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgInNldF9hdHRyaWJ1dGUgYXZvaWQgdHJ1ZSBcW2ZpbmQgLyAtbGliY2VsbCAkY2VsbFxdXG4iCi0gICAgICAgICB9Ci0gICAgICB9Ci0KLSAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OnNvdXJjZV9wbHVnIHBvc3Rfc3luX2xvYWRfbGliX3RjbF0KLQotICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGNwZl9maWxlKV19IHsKLSAgICAgICAgIHNldCBjb21tYW5kICJyZWFkX3Bvd2VyX2ludGVudCAtbW9kdWxlICR2YXJzKGRlc2lnbikgLWNwZiAkdmFycyhjcGZfZmlsZSlcbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxyZWFkX3Bvd2VyX2ludGVudCAkY29tbWFuZF0KLSAgICAgIH0KLQotICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGllZWUxODAxX2ZpbGUpXX0gewotICAgICAgICAgc2V0IGNvbW1hbmQgInJlYWRfcG93ZXJfaW50ZW50IC1tb2R1bGUgJHZhcnMoZGVzaWduKSAtMTgwMSAkdmFycyhpZWVlMTgwMV9maWxlKVxuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHJlYWRfcG93ZXJfaW50ZW50ICRjb21tYW5kXQotICAgICAgfQotICAgICAKLSAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhoZGxfc2VhcmNoX3BhdGgpXX0gewotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJzZXRfYXR0cmlidXRlIGhkbF9zZWFyY2hfcGF0aCBcIiR2YXJzKGhkbF9zZWFyY2hfcGF0aClcIiAvXG4iCi0gICAgICB9IAotICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGhkbF9maWxlX2xpc3QpXX0gewotICAgICAgICAgc2V0IGNvbW1hbmQgInJlYWRfaGRsIC12MjAwMSBcIiR2YXJzKGhkbF9maWxlX2xpc3QpXCJcbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxyZWFkX2hkbCAkY29tbWFuZF0KLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjpzb3VyY2VfcGx1ZyBzeW5fbG9hZF9ydGxfdGNsXQotICAgICAgfQotCi0gICAgICBhcHBlbmQgY29tbWFuZHMgIlxuI3NldCByZWFkX2RlZl9saWJjZWxsX21pc21hdGNoX2Vycm9yIDBcbiIKLSAgICAgCi0gICAgICBpZiB7MH0gewotICAgICAgICAgc2V0IGNvbW1hbmQgIiNzZXRfYXR0cmlidXRlIGdlbl9tb2R1bGVfcHJlZml4ICAgICAgICAgICAgICAgIF9SQ18gL1xuIgotICAgICAgYXBwZW5kIGNvbW1hbmQgIiNzZXRfYXR0cmlidXRlIGhkbF9hcnJheV9uYW1pbmdfc3R5bGUgICAgICAgICAgICVzXyVkIC9cbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kICIjc2V0X2F0dHJpYnV0ZSBoZGxfcmVnX25hbWluZ19zdHlsZSAgICAgICAgICAgICAlc19yZWclcyAvXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZCAiI3NldF9hdHRyaWJ1dGUgaGRsX3VzZV9pZl9nZW5lcmF0ZV9wcmVmaXggICAgICAgZmFsc2UgL1xuIgotICAgICAgYXBwZW5kIGNvbW1hbmQgIiNzZXRfYXR0cmlidXRlIGhkbF91c2VfZm9yX2dlbmVyYXRlX3ByZWZpeCAgICAgIHRydWUgL1xuIgotICAgICAgYXBwZW5kIGNvbW1hbmQgIiNzZXRfYXR0cmlidXRlIGhkbF91c2VfYmxvY2tfcHJlZml4ICAgICAgICAgICAgIGZhbHNlIC9cbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kICIjc2V0X2F0dHJpYnV0ZSBoZGxfbWF4X2xvb3BfbGltaXQgICAgICAgICAgICAgICA4MDk2IC9cbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kICIjc2V0X2F0dHJpYnV0ZSBoZGxfZ2VuZXJhdGVfaW5kZXhfc3R5bGUgICAgICAgICAlc18lZF8gL1xuIgotICAgICAgYXBwZW5kIGNvbW1hbmQgIiNzZXRfYXR0cmlidXRlIGhkbF9nZW5lcmF0ZV9zZXBhcmF0b3IgICAgICAgICAgIF8gL1xuIgotICAgICAgYXBwZW5kIGNvbW1hbmQgIiNzZXRfYXR0cmlidXRlIGhkbF9pbnN0YW5jZV9hcnJheV9uYW1pbmdfc3R5bGUgICVzXyVkXyAvXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZCAiI3NldF9hdHRyaWJ1dGUgaGRsX3BhcmFtZXRlcl9uYW1pbmdfc3R5bGUgICAgICAgXyVzJWQgL1xuIgotICAgICAgYXBwZW5kIGNvbW1hbmQgIiNzZXRfYXR0cmlidXRlIGhkbF9yZWNvcmRfbmFtaW5nX3N0eWxlICAgICAgICAgICVzXFslc1xdIC9cbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kICIjc2V0X2F0dHJpYnV0ZSBoZGxfdXNlX3RlY2hlbHRfZmlyc3QgICAgICAgICAgICB0cnVlIC9cbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kICIjc2V0X2F0dHJpYnV0ZSBoZGxfZXJyb3Jfb25fYmxhY2tib3ggICAgICAgICAgICB0cnVlIC9cbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kICIjc2V0X2F0dHJpYnV0ZSBoZGxfdHJhY2tfZmlsZW5hbWVfcm93X2NvbCAgICAgICBmYWxzZSAvXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZCAiI3NldF9hdHRyaWJ1dGUgaGRsX2VuYWJsZV9wcm9jX25hbWUgICAgICAgICAgICAgZmFsc2UgL1xuIgotICAgICAgYXBwZW5kIGNvbW1hbmQgIiNzZXRfYXR0cmlidXRlIGhkbF9lcnJvcl9vbl9sYXRjaCAgICAgICAgICAgICAgIGZhbHNlIC9cbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kICIjc2V0X2F0dHJpYnV0ZSBoZGxfdW5jb25uZWN0ZWRfaW5wdXRfcG9ydF92YWx1ZSBub25lIC9cbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kICIjc2V0X2F0dHJpYnV0ZSBoZGxfdW5kcml2ZW5fb3V0cHV0X3BvcnRfdmFsdWUgICBub25lIC9cbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kICIjc2V0X2F0dHJpYnV0ZSBoZGxfdW5kcml2ZW5fc2lnbmFsX3ZhbHVlICAgICAgICBub25lIC9cbiIKLSAgICAgIH0KLSAgICAgIAotICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHNldF9oZGxfYXR0cmlidXRlcyAkY29tbWFuZF0KLQotICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6c291cmNlX3BsdWcgcHJlX3N5bl9sb2FkX2VsYWJfdGNsXQotICAgICAgCi0gICAgICBhcHBlbmQgY29tbWFuZHMgIlxuZWxhYm9yYXRlICR2YXJzKGRlc2lnbilcbiIKLQotICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6c291cmNlX3BsdWcgcG9zdF9zeW5fbG9hZF9lbGFiX3RjbF0KLQotICAgICAgYXBwZW5kIGNvbW1hbmRzICJ3cml0ZV9kYiAkdmFycyhkZXNpZ24pIC1hbGxfcm9vdF9hdHRyaWJ1dGVzIC10b19maWxlICR2YXJzKGRic19kaXIpL2VsYWIuZGJcbiIKLSAgICAgIAotICAgICAgYXBwZW5kIGNvbW1hbmRzICJyZWRpcmVjdCAkdmFycyhycHRfZGlyKS9jaGVja19kZXNpZ24ucnB0IHsgY2hlY2tfZGVzaWduIC1tdWx0aWRyaXZlbiAtdW5kcml2ZW4gLXVucmVzb2x2ZWQgfVxuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzICJyZWRpcmVjdCAkdmFycyhycHRfZGlyKS9yZXBvcnRfZGF0YXBhdGgucnB0IHsgcmVwb3J0IGRhdGFwYXRoIC1hbGwgLW1heF93aWR0aCB7e2ZpbGVuYW1lIDUxMn19IH1cbiIKLSAgICAgIAotICAgICAgCi0jICAgICAgYXBwZW5kIGNvbW1hbmRzICIjc2V0IHRyZWF0X2ludmFsaWRfZnJvbV90b19hc190aHJvdWdoIDFcbiIKLSAgICAgCi0gICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoY2xvY2tfZ2F0ZV9jZWxscyldfSB7Ci0gICAgICAgICAgICBzZXQgY29tbWFuZCAic2V0X2F0dHJpYnV0ZSBscF9jbG9ja19nYXRpbmdfY2VsbCBcW2ZpbmQgL2xpYiogLWxpYmNlbGwgJHZhcnMoY2xvY2tfZ2F0ZV9jZWxscylcXSAvZGVzaWducy8qXG5cbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kICJzZXRfYXR0cmlidXRlIGxwX2luc2VydF9jbG9ja19nYXRpbmcgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZSAvXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksaW5zZXJ0X2Nsb2NrX2dhdGluZyAkY29tbWFuZF0KLSAgICAgIH0KLQotICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGxlYWthZ2VfcG93ZXJfZWZmb3J0KV0gJiYgKCR2YXJzKGxlYWthZ2VfcG93ZXJfZWZmb3J0KSAhPSAibm9uZSIpfSB7Ci0gICAgICAgICBzZXQgY29tbWFuZCAic2V0X2F0dHJpYnV0ZSBscF9tdWx0aV92dF9vcHRpbWl6YXRpb25fZWZmb3J0ICAgICAgICAgICAgICAgICR2YXJzKGxlYWthZ2VfcG93ZXJfZWZmb3J0KSAvXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksbGVha2FnZV9wb3dlcl9lZmZvcnQgJGNvbW1hbmRdCi0gICAgICB9Ci0gICAgICBhcHBlbmQgY29tbWFuZCAiI3NldF9hdHRyaWJ1dGUgbHBfaW5zZXJ0X29wZXJhbmRfaXNvbGF0aW9uICAgICAgICAgICAgICAgICAgICBmYWxzZSAvXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZCAiI3NldF9hdHRyaWJ1dGUgbHBfcG93ZXJfYW5hbHlzaXNfZWZmb3J0ICAgICAgICAgICAgICAgICAgICAgICBsb3cgL1xuIgotICAgICAgYXBwZW5kIGNvbW1hbmQgIiNzZXRfYXR0cmlidXRlIGxwX2Nsb2NrX2dhdGluZ19oaWVyYXJjaGljYWwgICAgICAgICAgICAgICAgICAgZmFsc2UgL1xuIgotICAgICAgYXBwZW5kIGNvbW1hbmQgIiNzZXRfYXR0cmlidXRlIGxwX2Nsb2NrX2dhdGluZ19hdXRvX2Nvc3RfZ3JvdXBfaW5pdGlhbF90YXJnZXQgMCAvZGVzaWducy8qXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZCAiI3NldF9hdHRyaWJ1dGUgbHBfY2xvY2tfZ2F0aW5nX21heF9mbG9wcyAgICAgICAgICAgICAgICAgICAgICBpbmZpbml0eSAvZGVzaWducy8kdmFycyhkZXNpZ24pXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZCAiI3NldF9hdHRyaWJ1dGUgbHBfY2xvY2tfZ2F0aW5nX21pbl9mbG9wcyAgICAgICAgICAgICAgICAgICAgICAzIC9kZXNpZ25zLyR2YXJzKGRlc2lnbilcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kICIjc2V0X2F0dHJpYnV0ZSBscF9jbG9ja19nYXRpbmdfYXV0b19wYXRoX2FkanVzdCAgICAgICAgICAgICAgIGZpeGVkIC9kZXNpZ25zLypcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kICIjc2V0X2F0dHJpYnV0ZSBscF9jbG9ja19nYXRpbmdfYXV0b19wYXRoX2FkanVzdF9maXhlZF9kZWxheSAgIDE3NSAvZGVzaWducy8qXG4iCi0KLSAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxzZXRfaWNnX2F0dHJpYnV0ZXMgJGNvbW1hbmRdCi0KLSMgICAgICBhcHBlbmQgY29tbWFuZCAiI3NldF9hdHRyaWJ1dGUgbHBfcG93ZXJfb3B0aW1pemF0aW9uX3dlaWdodCBcIlwiIC9kZXNpZ25zLypcbiIKLQotICAgICAgCi0gICAgICAjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSAgICAgICMgREZUIFNldHRpbmdzCi0gICAgICAjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSAgICAgICAgIHNldCBjb21tYW5kICIjc2V0X2F0dHJpYnV0ZSBkZnRfc2Nhbl9tYXBfbW9kZSAgICAgICAgICAgICAgICAgICAgICAgICBmb3JjZV9hbGwgL2Rlc2lnbnMvJHZhcnMoZGVzaWduKVxuIgotICAgICAgYXBwZW5kIGNvbW1hbmQgIiNzZXRfYXR0cmlidXRlIGRmdF9zY2FuX3N0eWxlICAgICAgICAgICAgICAgICAgICAgICAgICAgIG11eGVkX3NjYW4gL1xuIgotICAgICAgYXBwZW5kIGNvbW1hbmQgIiNzZXRfYXR0cmlidXRlIGRmdF9wcmVmaXggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERGVF8gL1xuIgotICAgICAgYXBwZW5kIGNvbW1hbmQgIiNzZXRfYXR0cmlidXRlIHVzZV9zY2FuX3NlcXNfZm9yX25vbl9kZnQgICAgICAgICAgICAgICAgIHRydWUgL1xuIgotICAgICAgYXBwZW5kIGNvbW1hbmQgIiNzZXRfYXR0cmlidXRlIGRmdF9zY2FuX21hcF9tb2RlIGZvcmNlX2FsbCAgICAgICAgICAgICAgIC9kZXMqLypcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kICIjc2V0X2F0dHJpYnV0ZSBkZnRfY29ubmVjdF9zaGlmdF9lbmFibGVfZHVyaW5nX21hcHBpbmcgICB0aWVfb2ZmIC9kZXNpZ25zLypcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kICIjc2V0X2F0dHJpYnV0ZSBkZnRfY29ubmVjdF9zY2FuX2RhdGFfcGluc19kdXJpbmdfbWFwcGluZyBsb29wYmFjayAvZGVzaWducy8qXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZCAiI3NldF9hdHRyaWJ1dGUgZGZ0X3NjYW5fb3V0cHV0X3ByZWZlcmVuY2UgICAgICAgICAgICAgICAgbm9uX2ludmVydGVkIC9kZXNpZ25zLypcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kICIjc2V0X2F0dHJpYnV0ZSBkZnRfbG9ja3VwX2VsZW1lbnRfdHlwZSAgICAgICAgICAgICAgICAgICBlZGdlX3NlbnNpdGl2ZSAvZGVzaWducy8qXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZCAiI3NldF9hdHRyaWJ1dGUgZGZ0X21peF9jbG9ja19lZGdlc19pbl9zY2FuX2NoYWlucyAgICAgICAgZmFsc2UgL2Rlc2lnbnMvKlxuIgotICAgICAgCi0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksc2V0X2RmdF9hdHRyaWJ1dGVzICRjb21tYW5kXQotCi0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjpzb3VyY2VfcGx1ZyBzeW5fc2V0dXBfZGZ0X3RjbF0KLQotICAgICAgc2V0IGNvbW1hbmQgIiIKLSAgICAgICMjIFJDIHRpbWluZyBzdGlsbCBjb21lcyBmcm9tIGNwZiwgSW5ub3Z1cyB0aW1pbmcgY29tZXMgZnJvbSBzZXR1cC50Y2wKLSAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhjcGZfZmlsZSldfSB7Ci0gICAgICAgIGFwcGVuZCBjb21tYW5kICJhcHBseV9wb3dlcl9pbnRlbnQgLXN1bW1hcnlcbiIKLSAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLGFwcGx5X3Bvd2VyX2ludGVudCAkY29tbWFuZF0KLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgIGFwcGVuZCBjb21tYW5kICJzZXQgbW9kZSBbbGluZGV4ICR2YXJzKGNvbnN0cmFpbnRfbW9kZXMpIDBdXG4iCi0gICAgICAgIGFwcGVuZCBjb21tYW5kICJpZiB7IFxbZmluZCAvIC1tb2RlIFwkbW9kZSBcXSA9PSBcIlwifSB7XG4iCi0gICAgICAgIGFwcGVuZCBjb21tYW5kICIgICBjcmVhdGVfbW9kZSAtZGVmYXVsdCAtbmFtZSBcJG1vZGVcbiIKLSAgICAgICAgYXBwZW5kIGNvbW1hbmQgIn1cbiIKLSAgICAgICAgZm9yZWFjaCBtb2RlIFtscmFuZ2UgJHZhcnMoY29uc3RyYWludF9tb2RlcykgMSBlbmRdIHsKLSAgICAgICAgfQotICAgICAgICAjIyBOb3cgcG9wdWxhdGUgdGhlIHRpbWluZyBtb2RlcwotICAgICAgICBmb3JlYWNoIG1vZGUgJHZhcnMoY29uc3RyYWludF9tb2RlcykgewotICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkbW9kZSxzeW50aF9zZGMpXX0gewotICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJpZiB7IFxbZmluZCAvIC1tb2RlICRtb2RlXF0gPT0gXCJcIiB9IHtcbiIKLSAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiICAgY3JlYXRlX21vZGUgLW5hbWUgJG1vZGVcbiIKLSAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAifVxuIgotICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJyZWFkX3NkYyAtbW9kZSAkbW9kZSAkdmFycygkbW9kZSxzeW50aF9zZGMpXG4iCi0gICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCRtb2RlLHByZV9jdHNfc2RjKV19IHsKLSAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiaWYgeyBcW2ZpbmQgLyAtbW9kZSAkbW9kZVxdID09IFwiXCIgfSB7XG4iCi0gICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAgIGNyZWF0ZV9tb2RlIC1uYW1lICRtb2RlXG4iCi0gICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIn1cbiIKLSAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAicmVhZF9zZGMgLW1vZGUgJG1vZGUgJHZhcnMoJG1vZGUscHJlX2N0c19zZGMpXG4iCi0gICAgICAgICAgICAgfQotICAgICAgICAgICB9Ci0gICAgICAgIH0KLQotICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksYXBwbHlfY29uc3RyYWludHMgJGNvbW1hbmRdCi0gICAgICAgIGFwcGVuZCBjb21tYW5kICJwdXRzIFwiVGhlIG51bWJlciBvZiBleGNlcHRpb25zIGlzIFxbbGxlbmd0aCBcW2ZpbmQgLyAtZXhjZXB0aW9uICpcXVxdXCJcbiIKLQotICAgICAgICAgICBzZXQgY29tbWFuZCAiXG5kZWZpbmVfY29zdF9ncm91cCAtbmFtZSBpbjJvdXRcbiIKLSAgICAgICAgYXBwZW5kIGNvbW1hbmQgImRlZmluZV9jb3N0X2dyb3VwIC1uYW1lIGluMnJlZ1xuIgotICAgICAgICBhcHBlbmQgY29tbWFuZCAiZGVmaW5lX2Nvc3RfZ3JvdXAgLW5hbWUgcmVnMm91dFxuIgotICAgICAgICBhcHBlbmQgY29tbWFuZCAiZGVmaW5lX2Nvc3RfZ3JvdXAgLW5hbWUgcmVnMnJlZ1xuIgotCi0gICAgICAgIHNldCBtb2RlIFtsaW5kZXggJHZhcnMoY29uc3RyYWludF9tb2RlcykgMF0KLSAgICAgICAgYXBwZW5kIGNvbW1hbmQgInBhdGhfZ3JvdXAgLW1vZGUgJG1vZGUgLWZyb20gXFthbGw6OmFsbF9pbnBzXF0gLXRvIFxbYWxsOjphbGxfb3V0c1xdIC1ncm91cCBpbjJvdXQgLW5hbWUgaW4yb3V0XG4iCi0gICAgICAgIGFwcGVuZCBjb21tYW5kICJwYXRoX2dyb3VwIC1tb2RlICRtb2RlIC1mcm9tIFxbYWxsOjphbGxfaW5wc1xdIC10byBcW2FsbDo6YWxsX3NlcXNcXSAtZ3JvdXAgaW4ycmVnIC1uYW1lIGluMnJlZ1xuIgotICAgICAgICBhcHBlbmQgY29tbWFuZCAicGF0aF9ncm91cCAtbW9kZSAkbW9kZSAtZnJvbSBcW2FsbDo6YWxsX3NlcXNcXSAtdG8gXFthbGw6OmFsbF9vdXRzXF0gLWdyb3VwIHJlZzJvdXQgLW5hbWUgcmVnMm91dFxuIgotICAgICAgICBhcHBlbmQgY29tbWFuZCAicGF0aF9ncm91cCAtbW9kZSAkbW9kZSAtZnJvbSBcW2FsbDo6YWxsX3NlcXNcXSAtdG8gXFthbGw6OmFsbF9zZXFzXF0gLWdyb3VwIHJlZzJyZWcgLW5hbWUgcmVnMnJlZ1xuIgotCi0gICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxjcmVhdGVfcGF0aF9ncm91cHMgJGNvbW1hbmRdCi0gICAgICB9Ci0KLSAgICAgIHNldCBjb21tYW5kICIiCi0gICAgICBzZXQgZmlyc3QgMQotICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGRlZl9maWxlcyldfSB7Ci0gICAgICAgICBmb3JlYWNoIGZpbGUgJHZhcnMoZGVmX2ZpbGVzKSB7Ci0gICAgICAgICAgICBpZiB7W2ZpbGUgZXhpc3RzICRmaWxlXX0gewotICAgICAgICAgICAgICAgaWYgeyRmaXJzdH0gewotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgInJlYWRfZGVmICRmaWxlXG4iCi0gICAgICAgICAgICAgICAgICBzZXQgZmlyc3QgMAotICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAicmVhZF9kZWYgLWluY3IgJGZpbGVcbiIKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0KLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxyZWFkX2RlZiAkY29tbWFuZF0KLSAgICAgIH0KLSAgICAgIAotICAgICAgYXBwZW5kIGNvbW1hbmRzICJyZXBvcnQgdGltaW5nIC1saW50XG4iCi0KLSAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhtYXhfcm91dGVfbGF5ZXIpXX0gewotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJcbnNldF9hdHRyaWJ1dGUgbnVtYmVyX29mX3JvdXRpbmdfbGF5ZXJzICR2YXJzKG1heF9yb3V0ZV9sYXllcikgZGVzaWducy8kdmFycyhkZXNpZ24pXG4iCi0gICAgICB9Ci0KLSMgICAgICBhcHBlbmQgY29tbWFuZHMgIiNmb3JlYWNoIGNnIFxbZmluZCAvIC1jb3N0X2dyb3VwICpcXSB7XG4iCi0jICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICByZXBvcnQgdGltaW5nIC1jb3N0X2dyb3VwIFtsaXN0IFwkY2ddID4+ICR2YXJzKHJwdF9kaXIpL2Nvc3RfZ3JvdXAubWFwLnJwdFxuIgotIyAgICAgIGFwcGVuZCBjb21tYW5kcyAiI31cbiIKLSAgICAgIAotIyAgICAgIGFwcGVuZCBjb21tYW5kcyAiI3NldF9yZW1vdmVfYXNzaWduX29wdGlvbnMgLXNraXBfdW5jb25zdHJhaW5lZF9wYXRocyAtcGh5c2ljYWxcbiIKLSMgICAgICBhcHBlbmQgY29tbWFuZHMgIiNzZXRfYXR0cmlidXRlIHV0aWxpemF0aW9uIDAgXFtmaW5kIC8gLWxheWVyIE0xXF1cbiIKLQotICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6c291cmNlX3BsdWcgcHJlX3N5bl9nZW5fdGNsXQotCi0gICAgICBzZXQgY29tbWFuZCAiXG5zeW50aGVzaXplIC10b19nZW5lcmljIC1lZmZvcnQgbWVkaXVtXG5cbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxzeW4yZ2VuICRjb21tYW5kXQotICAgICAgCi0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjpzb3VyY2VfcGx1ZyBwb3N0X3N5bl9nZW5fdGNsXQotCi0gICAgICBhcHBlbmQgY29tbWFuZHMgIndyaXRlX2RiICR2YXJzKGRlc2lnbikgLWFsbF9yb290X2F0dHJpYnV0ZXMgLXRvX2ZpbGUgJHZhcnMoZGJzX2Rpcikvc3luX2dlbi5kYlxuIgotICAgICAgCi0gICAgICBhcHBlbmQgY29tbWFuZHMgInJlZGlyZWN0IC10ZWUgJHZhcnMocnB0X2RpcikvcmVwb3J0X21ldHJpYy5zeW5fZ2VuLnJwdCB7IHJlcG9ydCBxb3IgLW5vcG93ZXIgfVxuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzICJyZWRpcmVjdCAtYXBwZW5kICR2YXJzKHJwdF9kaXIpL3JlcG9ydF9tZXRyaWMuc3luX2dlbi5ycHQgeyByZXBvcnQgdGltaW5nIC1mdWxsIC1udW0gMjUwIC1lbmQgfVxuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzICJyZWRpcmVjdCAtYXBwZW5kICR2YXJzKHJwdF9kaXIpL3JlcG9ydF9tZXRyaWMuc3luX2dlbi5ycHQgeyByZXBvcnQgdGltaW5nIC1mdWxsIC1udW0gMjUgfVxuIgotICAgICAgCi0gICAgICBhcHBlbmQgY29tbWFuZHMgImdlbmVyYXRlX3JlcG9ydHMgLXRhZyBzeW5fZ2VuIC1vdXRkaXIgJHZhcnMocnB0X2RpcilcbiIKLQotICAgICAgc2V0IGNvbW1hbmQgIlxuc3ludGhlc2l6ZSAtdG9fbWFwIC1lZmZvcnQgaGlnaCAtY2xvY2tfZ2F0aW5nX29ubHlcblxuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHN5bjJpY2cgJGNvbW1hbmRdCi0gICAgICAKLSMgICAgICBzZXQgY2dfY2VsbHMgIlxuIgotIyAgICAgIGZvcmVhY2ggaSBbZmlsdGVyIGxpYmNlbGwgLWludmVydCAiIiBbZmluZCAvIC1pbnN0IGluc3RhbmNlc19zZXEvKl1dIHsKLSMgICAgICAgaWYge1tnZXRfYXR0ciBjbG9ja19nYXRpbmdfaW50ZWdyYXRlZF9jZWxsIFtnZXRfYXR0ciBsaWJjZWxsICRpXV0gIT0gIiIgfSB7Ci0jICAgICAgICAgbGFwcGVuZCBjZ19jZWxscyAkaQotIyAgICAgICB9Ci0jICAgICAgfQotIyAgICAgIGlmIHsgJGNnX2NlbGxzICE9ICIiIH0gewotIyAgICAgICAgc2V0IENHX0FESlVTVCBbcGF0aF9hZGp1c3QgLWRlbGF5IC0xNTAgLXRvICRjZ19jZWxsc10KLSMgICAgICB9Ci0gICAgICAKLSAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OnNvdXJjZV9wbHVnIHByZV9zeW5fbWFwX3RjbF0KLSAgICAgIAotICAgICAgYXBwZW5kIGNvbW1hbmRzICJpZiB7XFtsbGVuZ3RoIFxbZmluZCAtbW9kZSAqXF1cXSA+IDB9IHtcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyAiICByZWRpcmVjdCAkdmFycyhycHRfZGlyKS9yZXBvcnRfdGltaW5nX2xpbnQuZWxhYi5neiB7IHJlcG9ydCB0aW1pbmcgLWxpbnQgLXZlcmJvc2UgLW1vZGUgXFtsaW5kZXggXFtmaW5kIC1tb2RlICpcXSAwXF0gfVxuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzICJ9IGVsc2Uge1xuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzICIgIHJlZGlyZWN0ICR2YXJzKHJwdF9kaXIpL3JlcG9ydF90aW1pbmdfbGludC5lbGFiLmd6IHsgcmVwb3J0IHRpbWluZyAtbGludCAtdmVyYm9zZSB9XG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgIn1cbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyAicmVkaXJlY3QgJHZhcnMocnB0X2RpcikvcmVwb3J0X3NlcXVlbnRpYWwuZWxhYi5ycHQuZ3ogeyByZXBvcnQgc2VxdWVudGlhbCAtaGllciB9XG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgInJlZGlyZWN0ICR2YXJzKHJwdF9kaXIpL3JlcG9ydF9jZG5fbG9vcF9icmVha2Vycy5lbGFiLnJwdC5neiB7IHJlcG9ydCBjZG5fbG9vcF9icmVha2VyIH1cbiIKLSAgICAgICAgICAKLSAgICAgICMgU3ludGhlc2l6aW5nIHRvIGdhdGVzIHVzaW5nIGVmZm9ydCBsZXZlbCBkZWZpbmVkIGJ5IHZhcnMoc3luX21hcF9lZmZvcnQpLgotICAgICAgc2V0IGNvbW1hbmQgIlxuc3ludGhlc2l6ZSAtdG9fbWFwcGVkIC1lZmZvcnQgaGlnaCAtbm9faW5jcmVtZW50YWxcblxuIgotCi0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksc3luMm1hcCAkY29tbWFuZF0KLSAgICAgIAotICAgICAgaWYgeyR2YXJzKGNhcHR1cmVfbWV0cmljcyl9IHsKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAidW06OnBvcF9zbmFwc2hvdF9zdGFja1xuIgotICAgICAgICAgc2V0IGNvbW1hbmQgIiIKLSAgICAgICAgIGlmIHtbbGluZGV4IFtzcGxpdCAkdmFycyh2ZXJzaW9uKSAiLiJdICAwXSA+IDE2fSB7Ci0gICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoY29tcHV0ZV9tZXRyaWNzKV0gJiYgJHZhcnMoY29tcHV0ZV9tZXRyaWNzKX0gewotICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgImNyZWF0ZV9zbmFwc2hvdCAtbmFtZSAkdmFycyhzdGVwKSAtY2F0ZWdvcmllcyBcW2RpY3QgZ2V0IFxbZ2V0X2F0dHIgbWV0cmljX2NhdGVnb3J5X3N0YXR1c19tYXBcXSBcW2dldF9hdHRyIHN0YXRlIFxbZmluZCAvIC1kZXNpZ24gKlxdXF1cXVxuIgotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJjcmVhdGVfc25hcHNob3QgLW5hbWUgJHZhcnMoc3RlcCkgLWNhdGVnb3JpZXMgZGVzaWduXG4iCi0gICAgICAgICAgIH0KLSAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgImNyZWF0ZV9zbmFwc2hvdCAtbmFtZSAkdmFycyhzdGVwKVxuIgotICAgICAgICAgfQotICAgICAgICAgYXBwZW5kIGNvbW1hbmQgInVtOjpzYXZlX21ldHJpY19maWxlICR2YXJzKGRic19kaXIpLyR2YXJzKHN0ZXApLnVtXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZCAidW06OnJlcG9ydF9tZXRyaWMgLWZpbGUgJHZhcnMocnB0X2RpcikvJHZhcnMoZGVzaWduKS5odG1sIC1mb3JtYXQgaHRtbFxuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLGNyZWF0ZV9zbmFwc2hvdCAkY29tbWFuZF0KLSAgICAgIH0KLQotIyAgICAgIGFwcGVuZCBjb21tYW5kcyAid3JpdGVfZGIgJHZhcnMoZGVzaWduKSAtYWxsX3Jvb3RfYXR0cmlidXRlcyAtdG9fZmlsZSAkdmFycyhkYnNfZGlyKS9zeW5fbWFwLmRiXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgIndyaXRlX2RiICR2YXJzKGRlc2lnbikgLWFsbF9yb290X2F0dHJpYnV0ZXMgLXRvX2ZpbGUgJHZhcnMoZGJzX2Rpcikvc3luX21hcC5kYlxuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzICJ3cml0ZV9oZGwgXFtmaW5kIC8gLWRlc2lnbiAkdmFycyhkZXNpZ24pXF0gPiAkdmFycyhkYnNfZGlyKS9zeW5fbWFwLnYuZ3pcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyAid3JpdGVfaGRsIFxbZmluZCAvIC1kZXNpZ24gJHZhcnMoZGVzaWduKVxdIC1sZWMgPiAkdmFycyhsZWNfZGlyKS9zeW5fbWFwLkxFQ09OTFkudi5nelxuIgotICAgICAgCi0gICAgICAjIFdyaXRlIG91dCBSVEwgdmVyc3VzIG1hcHBlZCBMRUMgZG9maWxlCi0gICAgICBhcHBlbmQgY29tbWFuZHMgIndyaXRlX2RvX2xlYyAtcmV2aXNlZCAkdmFycyhsZWNfZGlyKS9zeW5fbWFwLkxFQ09OTFkudi5neiAgLWxvZ2ZpbGUgcnRsMm1hcC5sb2cgID4gJHZhcnMobGVjX2RpcikvcnRsMm1hcC5kb2ZcbiIKLQotICAgICAgICAgc2V0IGNvbW1hbmQgInJlZGlyZWN0ICR2YXJzKGxlY19kaXIpL2RlbGV0ZWRfc2VxdWVudGlhbHMucnB0IHtyZXBvcnQgc2VxdWVudGlhbCAtZGVsZXRlZF9zZXFzfVxuIgotICAgICAgYXBwZW5kIGNvbW1hbmQgInJlZGlyZWN0IC10ZWUgJHZhcnMocnB0X2Rpcikvc3luX21hcC5xb3IucnB0IHsgcmVwb3J0IHFvciAtbm9wb3dlciB9XG4iCi0gICAgICBhcHBlbmQgY29tbWFuZCAicmVkaXJlY3QgLWFwcGVuZCAkdmFycyhycHRfZGlyKS9zeW5fbWFwLnFvci5ycHQgeyByZXBvcnQgdGltaW5nIC1mdWxsIC1udW0gMjUwIC1lbmQgfVxuIgotICAgICAgYXBwZW5kIGNvbW1hbmQgInJlZGlyZWN0IC1hcHBlbmQgJHZhcnMocnB0X2Rpcikvc3luX21hcC5xb3IucnB0IHsgcmVwb3J0IHRpbWluZyAtZnVsbCAtbnVtIDI1IH1cbiIKLSAgICAgIAotICAgICAgYXBwZW5kIGNvbW1hbmQgImdlbmVyYXRlX3JlcG9ydHMgLXRhZyBzeW5fbWFwIC1vdXRkaXIgJHZhcnMocnB0X2RpcilcbiIKLQotICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLGdlbmVyYXRlX3JlcG9ydHMgJGNvbW1hbmRdCi0gICAgIAotICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKG1haWwsdG8pXX0gewotICAgICAgICAgc2V0IHN1bW1hcnlfZmlsZSAkdmFycyhzdGVwKS5xb3IucnB0Ci0gICAgICAgICBpZiB7IVtpbmZvIGV4aXN0cyB2YXJzKG1haWwsc3RlcHMpXSB8fCBcCi0gICAgICAgICAgICAgKFtpbmZvIGV4aXN0cyB2YXJzKG1haWwsc3RlcHMpXSAmJiAoW2xzZWFyY2ggJHZhcnMobWFpbCxzdGVwcykgJHZhcnMoc3RlcCldICE9IC0xKSl9IHsKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAicHV0cyBcIjxGRj4gTUFJTElORyBSRVNVTFRTIFRPICR2YXJzKG1haWwsdG8pXCJcbiIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiaWYge1xbZmlsZSBleGlzdHMgJHZhcnMocnB0X2RpcikvJHN1bW1hcnlfZmlsZVxdfSB7XG4iCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiAgIGV4ZWMgL2Jpbi9tYWlsIC1zIFwiRkY6ICR2YXJzKGRlc2lnbiksICR2YXJzKHN0ZXApIGNvbXBsZXRlZCAoXFtzaCBwd2RcXSlcIiA8ICR2YXJzKHJwdF9kaXIpLyRzdW1tYXJ5X2ZpbGUgJHZhcnMobWFpbCx0bylcbiIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAifSBlbHNlaWYge1xbZmlsZSBleGlzdHMgJHZhcnMocnB0X2RpcikvJHtzdW1tYXJ5X2ZpbGV9Lmd6XF19IHtcbiIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiICAgZXhlYyBndW56aXAgLWMgJHZhcnMocnB0X2RpcikvJHtzdW1tYXJ5X2ZpbGV9Lmd6IFx8IC9iaW4vbWFpbCAtcyBcIkZGOiAkdmFycyhkZXNpZ24pLCAkdmFycyhzdGVwKSBjb21wbGV0ZWQgKFxbcHdkXF0pXCIgJHZhcnMobWFpbCx0bylcbiIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAifSBlbHNlIHtcbiIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiICAgZXhlYyAvYmluL21haWwgLXMgXCJGRjogJHZhcnMoZGVzaWduKSwgJHZhcnMoc3RlcCkgY29tcGxldGVkIChcW3NoIHB3ZFxdKVwiIDwgL2Rldi9udWxsICR2YXJzKG1haWwsdG8pXG4iCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIn1cbiIKLSAgICAgICAgIH0KLSAgICAgIH0KLQotICAgICAgYXBwZW5kIGNvbW1hbmRzICJpZiB7XFtpbmZvIGV4aXN0cyBlbnYoVlBBVEgpXF19IHsiCi0gICAgICBhcHBlbmQgY29tbWFuZHMgImV4ZWMgL2Jpbi90b3VjaCBcJGVudihWUEFUSCkvJHZhcnMoc3RlcCkiCi0gICAgICBhcHBlbmQgY29tbWFuZHMgIn1cbiIKLQotICAgICAgcmV0dXJuICRjb21tYW5kcwotCi0gICB9Ci0KLSAgIHByb2MgcnVuX3N5bl9pbmNyIHt7Zm9ybWF0IDF9fSB7Ci0KLSAgICAgIGdsb2JhbCB2YXJzCi0gICAgICBnbG9iYWwgZW52Ci0gICAgICBnbG9iYWwgZXJyb3JzCi0KLSAgICAgIHNldCB2YXJzKHN0ZXApIHN5bl9pbmNyCi0KLSAgICAgIHNldCBjb21tYW5kcyAiIgotCi0gICAgICBhcHBlbmQgY29tbWFuZHMgInByb2MgUHV0cyB7YXJnc30ge3B1dHMgXCRhcmdzfVxuIgotCi0gICAgICBhcHBlbmQgY29tbWFuZHMgInB1dHMgXFtnZXRfYXR0ciBwcm9ncmFtX3ZlcnNpb24gL1xdXG4iCi0gICAgIAotICAgICAgIyMgZW5hYmxlIG11bHRpIHByb2Nlc3NpbmcKLSAgICAgIGFwcGVuZCBjb21tYW5kcyAic2V0IGhvc3RsaXN0IFxbbHJlcGVhdCAkdmFycyhsb2NhbF9jcHVzKSBsb2NhbGhvc3RcXVxuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzICJzZXRfYXR0cmlidXRlIHN1cGVyX3RocmVhZF9zZXJ2ZXJzIFwkaG9zdGxpc3QgL1xuIgotICAgICAKLSAgICAgIGlmIHskdmFycyhjYXB0dXJlX21ldHJpY3MpfSB7Ci0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIlxudW06OmVuYWJsZV9tZXRyaWNzIC1vblxuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJ1bTo6cHVzaF9zbmFwc2hvdF9zdGFja1xuIgotICAgICAgfQotICAgICAgCi0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjpzb3VyY2VfcGx1ZyBwcmVfc3luX2luY3JfdGNsXQotICAgICAgCi0jICAgICAgYXBwZW5kIGNvbW1hbmRzICJjYXRjaCB7IHNldF9yZW1vdmVfYXNzaWduX29wdGlvbnMgLXNraXBfdW5jb25zdHJhaW5lZF9wYXRocyAtcGh5c2ljYWwgfVxuIgotIyAgICAgIGFwcGVuZCBjb21tYW5kcyAic2V0X2F0dHJpYnV0ZSByZW1vdmVfYXNzaWducyB0cnVlIC9cbiIKLSAgICAgIAotICAgICAgaWYgeyR2YXJzKGVuYWJsZV9wYW0pfSB7Ci0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIlxuc2V0X2F0dHJpYnV0ZSBwaHlzaWNhbF9hd2FyZV9yZXN0cnVjdHVyaW5nIHRydWUgL2RlcyovKlxuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJzZXRfYXR0cmlidXRlIHBoeXNpY2FsX2F3YXJlX3N0cnVjdHVyaW5nICAgdHJ1ZSAvZGVzKi8qXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgInNldF9hdHRyaWJ1dGUgcGh5c2ljYWxfYXdhcmVfbWFwcGluZyAgICAgICB0cnVlIC9kZXMqLypcbiIKLSAgICAgIH0KLSAgICAgIAotICAgICAgIyMjIyBPUFRJTUlaQVRJT04gRUZGT1JUIENPTlRST0wKLSAgICAgIGlmIHskdmFycyhoaWdoX3RpbWluZ19lZmZvcnQpfSB7Ci0gICAgICAgICAgICBzZXQgY29tbWFuZCAiXG5zZXRfYXR0cmlidXRlIHRuc19vcHRvIHRydWUgL1xuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmQgInNldF9hdHRyaWJ1dGUgaW9wdF9lbmFibGVfcGFyYWxsZWxpemF0aW9uIHRydWUgL1xuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmQgInNldF9hdHRyaWJ1dGUgdWx0cmFfZ2xvYmFsX21hcHBpbmcgdHJ1ZSAvXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZCAic2V0X2F0dHJpYnV0ZSBpb3B0X3VsdHJhX29wdGltaXphdGlvbiB0cnVlIC9cbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxzZXRfaGlnaF9lZmZvcnRfYXR0cmlidXRlcyAkY29tbWFuZF0KLSAgICAgIH0KLQotICAgICAgICAgc2V0IGNvbW1hbmQgIiNzZXRfYXR0cmlidXRlIG9wdGltaXplX21lcmdlX2Zsb3BzICAgICAgZmFsc2UgL1xuIgotICAgICAgYXBwZW5kIGNvbW1hbmQgIiNzZXRfYXR0cmlidXRlIG9wdGltaXplX2NvbnN0YW50XzBfZmxvcHMgdHJ1ZSAvXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZCAiI3NldF9hdHRyaWJ1dGUgb3B0aW1pemVfY29uc3RhbnRfMV9mbG9wcyBmYWxzZSAvXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZCAiI3NldF9hdHRyaWJ1dGUgb3B0aW1pemVfY29uc3RhbnRfbGF0Y2hlcyBmYWxzZSAvXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZCAiI3NldF9hdHRyaWJ1dGUgZGVsZXRlX3VubG9hZGVkX3NlcXMgICAgICB0cnVlIC9cbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kICIjc2V0X2F0dHJpYnV0ZSBvcHRpbWl6ZV9uZXRfYXJlYSAgICAgICAgIGZhbHNlIC9cbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kICIjc2V0X2F0dHJpYnV0ZSBkcF9hcmVhX21vZGUgICAgICAgICAgICAgIHRydWUgL1xuIgotICAgICAgYXBwZW5kIGNvbW1hbmQgIiNzZXRfYXR0cmlidXRlIGF1dG9fdW5ncm91cCAgICAgICAgICAgICAgbm9uZSAvXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZCAiI3NldF9hdHRyaWJ1dGUgYXV0b191bmdyb3VwX21pbl9lZmZvcnQgICBsb3cgL1xuIgotICAgICAgYXBwZW5kIGNvbW1hbmQgIiNzZXRfYXR0cmlidXRlIHVuZ3JvdXBfc2VwYXJhdG9yICAgICAgICAgL1xuIgotICAgICAgCi0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksc2V0X29wdF9hdHRyaWJ1dGVzICRjb21tYW5kXQotCi0gICAgICAjIyMgRGV0YWlsIFN0YXRzIHdoaWxlIHJ1bm5pbmcKLSMgICAgICBhcHBlbmQgY29tbWFuZHMgIiNzZXQgaW9wdF9zdGF0cyAxXG4iCi0gICAgICAKLSAgICAgICMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotICAgICAgIyBNYXggbGVha2FnZSBwb3dlciA/Ci0gICAgICAjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSMgICAgICBhcHBlbmQgY29tbWFuZHMgIiNzZXRfYXR0cmlidXRlIG1heF9sZWFrYWdlX3Bvd2VyID8gL2Rlc2lnbnMvKlxuIgotICAgICAgc2V0IGNvbW1hbmQgIlxuc3ludGhlc2l6ZSAtdG9fbWFwcGVkIC1lZmZvcnQgaGlnaCAtaW5jclxuXG4iCi0KLSAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxzeW4yaW5jciAkY29tbWFuZF0KLQotICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6c291cmNlX3BsdWcgcG9zdF9zeW5faW5jcl90Y2xdCi0KLSAgICAgIGFwcGVuZCBjb21tYW5kcyAiZm9yZWFjaCBjZyBcW2ZpbmQgLyAtY29zdF9ncm91cCAqXF0ge1xuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzICIgIHJlcG9ydCB0aW1pbmcgLWNvc3RfZ3JvdXAgXCRjZyA+PiAkdmFycyhycHRfZGlyKS9zeW5faW5jcl9cW2ZpbGUgdGFpbCBcJGNnXF0ucnB0XG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgIn1cbiIKLSAgICAgIAotICAgICAgICAgc2V0IGNvbW1hbmQgIndyaXRlX2RiICR2YXJzKGRlc2lnbikgLWFsbF9yb290X2F0dHJpYnV0ZXMgLXRvX2ZpbGUgJHZhcnMoZGJzX2RpcikvJHZhcnMoc3RlcCkuZGJcbiIKLSMgICAgICBhcHBlbmQgY29tbWFuZCAid3JpdGVfZGIgJHZhcnMoZGVzaWduKSAtYWxsX3Jvb3RfYXR0cmlidXRlcyAtdG9fZmlsZSAkdmFycyhkYnNfZGlyKS8kdmFycyhzdGVwKS5kYlxuIgotCi0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksd3JpdGVfZGIgJGNvbW1hbmRdCi0KLSAgICAgICAgIHNldCBjb21tYW5kICJ3cml0ZV9oZGwgXFtmaW5kIC8gLWRlc2lnbiAkdmFycyhkZXNpZ24pXF0gPiAkdmFycyhkYnNfZGlyKS8kdmFycyhzdGVwKS52Lmd6XG4iCi0gICAgICBhcHBlbmQgY29tbWFuZCAid3JpdGVfaGRsIFxbZmluZCAvIC1kZXNpZ24gJHZhcnMoZGVzaWduKVxdIC1sZWMgPiAkdmFycyhsZWNfZGlyKS8kdmFycyhzdGVwKS5MRUNPTkxZLnYuZ3pcbiIKLQotICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHdyaXRlX2hkbCAkY29tbWFuZF0KLQotICAgICAgaWYgeyR2YXJzKGNhcHR1cmVfbWV0cmljcyl9IHsKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAidW06OnBvcF9zbmFwc2hvdF9zdGFja1xuIgotICAgICAgICAgaWYge1tsaW5kZXggW3NwbGl0ICR2YXJzKHZlcnNpb24pICIuIl0gIDBdID4gMTZ9IHsKLSAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhjb21wdXRlX21ldHJpY3MpXSAmJiAkdmFycyhjb21wdXRlX21ldHJpY3MpfSB7Ci0gICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiY3JlYXRlX3NuYXBzaG90IC1uYW1lICR2YXJzKHN0ZXApIC1jYXRlZ29yaWVzIFxbZGljdCBnZXQgXFtnZXRfYXR0ciBtZXRyaWNfY2F0ZWdvcnlfc3RhdHVzX21hcFxdIFxbZ2V0X2F0dHIgc3RhdGUgXFtmaW5kIC8gLWRlc2lnbiAqXF1cXVxdXG4iCi0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgImNyZWF0ZV9zbmFwc2hvdCAtbmFtZSAkdmFycyhzdGVwKSAtY2F0ZWdvcmllcyBkZXNpZ25cbiIKLSAgICAgICAgICAgfQotICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiY3JlYXRlX3NuYXBzaG90IC1uYW1lICR2YXJzKHN0ZXApXG4iCi0gICAgICAgICB9Ci0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgInVtOjpzYXZlX21ldHJpY19maWxlICR2YXJzKGRic19kaXIpLyR2YXJzKHN0ZXApLnVtXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgInVtOjpyZXBvcnRfbWV0cmljIC1maWxlICR2YXJzKHJwdF9kaXIpLyR2YXJzKGRlc2lnbikuaHRtbCAtZm9ybWF0IGh0bWxcbiIKLSAgICAgIH0KLQotICAgICAgaWYgeyEkdmFycyhlbmFibGVfcmNwKX0gewotICAgICAgICAgICAgc2V0IGNvbW1hbmQgIlxud3JpdGVfZGVzaWduIC1pbm5vdnVzIC1nemlwIC1iYXNlbmFtZSAkdmFycyhkYnNfZGlyKS8kdmFycyhzdGVwKS8kdmFycyhzdGVwKVxuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmQgInNldCBmaWxlIFxbb3BlbiAkdmFycyhkYnNfZGlyKS8kdmFycyhzdGVwKS8kdmFycyhzdGVwKS5ub3Z1c19zZXR1cC50Y2wgd1xdXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZCAicHV0cyBcJGZpbGUgXCJldmFsX2VuYyBce3NvdXJjZSAkdmFycyhkYnNfZGlyKS8kdmFycyhzdGVwKS8kdmFycyhzdGVwKS5lbmNfc2V0dXAudGNsXH1cIlxuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmQgImNsb3NlIFwkZmlsZVxuXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksd3JpdGVfZGVzaWduICRjb21tYW5kXQotICAgICAgfQotCi0gICAgICAjIFdyaXRlIG91dCBSVEwgdmVyc3VzIG1hcHBlZCBMRUMgZG9maWxlCi0gICAgICBhcHBlbmQgY29tbWFuZHMgIndyaXRlX2RvX2xlYyAtcmV2aXNlZCAkdmFycyhsZWNfZGlyKS8kdmFycyhzdGVwKS5MRUNPTkxZLnYuZ3ogIC1sb2dmaWxlIHJ0bDJpbmNyLmxvZyAgPiAkdmFycyhsZWNfZGlyKS9ydGwyaW5jci5kb2ZcbiIKLQotICAgICAgICAgc2V0IGNvbW1hbmQgInJlZGlyZWN0ICR2YXJzKGxlY19kaXIpL2RlbGV0ZWRfc2VxdWVudGlhbHMucnB0IHtyZXBvcnQgc2VxdWVudGlhbCAtZGVsZXRlZF9zZXFzfVxuIgotICAgICAgYXBwZW5kIGNvbW1hbmQgInJlZGlyZWN0IC10ZWUgJHZhcnMocnB0X2RpcikvJHZhcnMoc3RlcCkucW9yLnJwdCB7IHJlcG9ydCBxb3IgLW5vcG93ZXIgfVxuIgotICAgICAgYXBwZW5kIGNvbW1hbmQgInJlZGlyZWN0IC1hcHBlbmQgJHZhcnMocnB0X2RpcikvJHZhcnMoc3RlcCkucW9yLnJwdCB7IHJlcG9ydCB0aW1pbmcgLWZ1bGwgLW51bSAyNTAgLWVuZCB9XG4iCi0gICAgICBhcHBlbmQgY29tbWFuZCAicmVkaXJlY3QgLWFwcGVuZCAkdmFycyhycHRfZGlyKS8kdmFycyhzdGVwKS5xb3IucnB0IHsgcmVwb3J0IHRpbWluZyAtZnVsbCAtbnVtIDI1IH1cbiIKLSAgICAgIAotICAgICAgYXBwZW5kIGNvbW1hbmQgImdlbmVyYXRlX3JlcG9ydHMgLXRhZyAkdmFycyhzdGVwKSAtb3V0ZGlyICR2YXJzKHJwdF9kaXIpL2dlbmVyYXRlX3JlcG9ydHNcbiIKLQotICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLGdlbmVyYXRlX3JlcG9ydHMgJGNvbW1hbmRdCi0KLSAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhtYWlsLHRvKV19IHsKLSAgICAgICAgIHNldCBzdW1tYXJ5X2ZpbGUgJHZhcnMoc3RlcCkucW9yLnJwdAotICAgICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycyhtYWlsLHN0ZXBzKV0gfHwgXAotICAgICAgICAgICAgIChbaW5mbyBleGlzdHMgdmFycyhtYWlsLHN0ZXBzKV0gJiYgKFtsc2VhcmNoICR2YXJzKG1haWwsc3RlcHMpICR2YXJzKHN0ZXApXSAhPSAtMSkpfSB7Ci0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgInB1dHMgXCI8RkY+IE1BSUxJTkcgUkVTVUxUUyBUTyAkdmFycyhtYWlsLHRvKVwiXG4iCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgImlmIHtcW2ZpbGUgZXhpc3RzICR2YXJzKHJwdF9kaXIpLyRzdW1tYXJ5X2ZpbGVcXX0ge1xuIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIgICBleGVjIC9iaW4vbWFpbCAtcyBcIkZGOiAkdmFycyhkZXNpZ24pLCAkdmFycyhzdGVwKSBjb21wbGV0ZWQgKFxbc2ggcHdkXF0pXCIgPCAkdmFycyhycHRfZGlyKS8kc3VtbWFyeV9maWxlICR2YXJzKG1haWwsdG8pXG4iCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIn0gZWxzZWlmIHtcW2ZpbGUgZXhpc3RzICR2YXJzKHJwdF9kaXIpLyR7c3VtbWFyeV9maWxlfS5nelxdfSB7XG4iCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiAgIGV4ZWMgZ3VuemlwIC1jICR2YXJzKHJwdF9kaXIpLyR7c3VtbWFyeV9maWxlfS5neiBcfCAvYmluL21haWwgLXMgXCJGRjogJHZhcnMoZGVzaWduKSwgJHZhcnMoc3RlcCkgY29tcGxldGVkIChcW3B3ZFxdKVwiICR2YXJzKG1haWwsdG8pXG4iCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIn0gZWxzZSB7XG4iCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiAgIGV4ZWMgL2Jpbi9tYWlsIC1zIFwiRkY6ICR2YXJzKGRlc2lnbiksICR2YXJzKHN0ZXApIGNvbXBsZXRlZCAoXFtzaCBwd2RcXSlcIiA8IC9kZXYvbnVsbCAkdmFycyhtYWlsLHRvKVxuIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJ9XG4iCi0gICAgICAgICB9Ci0gICAgICB9Ci0KLSAgICAgIGFwcGVuZCBjb21tYW5kcyAiaWYge1xbaW5mbyBleGlzdHMgZW52KFZQQVRIKVxdfSB7IgotICAgICAgYXBwZW5kIGNvbW1hbmRzICJleGVjIC9iaW4vdG91Y2ggXCRlbnYoVlBBVEgpLyR2YXJzKHN0ZXApIgotICAgICAgYXBwZW5kIGNvbW1hbmRzICJ9XG4iCi0KLSAgICAgIHJldHVybiAkY29tbWFuZHMKLQotICAgfQotCi0gICBwcm9jIHJ1bl9zeW5fcGxhY2Uge3tmb3JtYXQgMX19IHsKLQotICAgICAgZ2xvYmFsIHZhcnMKLSAgICAgIGdsb2JhbCBlbnYKLSAgICAgIGdsb2JhbCBlcnJvcnMKLQotICAgICAgc2V0IHZhcnMoc3RlcCkgc3luX3BsYWNlCi0KLSAgICAgIHNldCBjb21tYW5kcyAiIgotCi0gICAgICBhcHBlbmQgY29tbWFuZHMgInByb2MgUHV0cyB7YXJnc30ge3B1dHMgXCRhcmdzfVxuIgotCi0gICAgICBhcHBlbmQgY29tbWFuZHMgInB1dHMgXFtnZXRfYXR0ciBwcm9ncmFtX3ZlcnNpb24gL1xdXG4iCi0gICAgIAotICAgICAgIyMgZW5hYmxlIG11bHRpIHByb2Nlc3NpbmcKLSAgICAgIGFwcGVuZCBjb21tYW5kcyAic2V0IGhvc3RsaXN0IFxbbHJlcGVhdCAkdmFycyhsb2NhbF9jcHVzKSBsb2NhbGhvc3RcXVxuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzICJzZXRfYXR0cmlidXRlIHN1cGVyX3RocmVhZF9zZXJ2ZXJzIFwkaG9zdGxpc3QgL1xuIgotICAgICAKLSAgICAgIGlmIHskdmFycyhjYXB0dXJlX21ldHJpY3MpfSB7Ci0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIlx1bTo6bmVuYWJsZV9tZXRyaWNzIC1vblxuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJ1bTo6cHVzaF9zbmFwc2hvdF9zdGFja1xuIgotICAgICAgfQotCi0gICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMocG9zdGxvYWRfc3luX3BsYWNlX3RjbCldfSB7Ci0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgInNldF9hdHRyaWJ1dGUgZW5jX3Bvc3Rsb2FkX3NjcmlwdCAkdmFycyhwb3N0bG9hZF9zeW5fcGxhY2VfdGNsKSAvXG4iCi0gICAgICB9Ci0gICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMocHJlZXhwb3J0X3N5bl9wbGFjZV90Y2wpXX0gewotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJzZXRfYXR0cmlidXRlIGVuY19wcmVleHBvcnRfc2NyaXB0ICR2YXJzKHByZWV4cG9ydF9zeW5fcGxhY2VfdGNsKSAvXG4iCi0gICAgICB9Ci0gICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMocHJlYW5ub3RhdGlvbl9zeW5fcGxhY2VkX3RjbCldfSB7Ci0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgInNldF9hdHRyaWJ1dGUgZW5jX3ByZWFubm90YXRpb25fdGNsICR2YXJzKHByZWFubm90YXRpb25fc3luX3BsYWNlZF90Y2wpIC9cbiIKLSAgICAgIH0KLQotICAgICAgYXBwZW5kIGNvbW1hbmRzICJzZXRfYXR0cmlidXRlIGVuY190ZW1wX2RpciAuL0lOTk9WVVMvcmNwX3J1biAvXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgInNldF9hdHRyaWJ1dGUgZW5jX2d6aXBfaW50ZXJmYWNlX2ZpbGVzIHRydWUgL1xuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzICJzZXRfYXR0cmlidXRlIHBxb3NfcGxhY2VtZW50X2VmZm9ydCBub192YWx1ZSAvXG4iCi0KLSAgICAgIGFwcGVuZCBjb21tYW5kcyAic2V0IDo6cGh5czo6cHFvc190bnNfb3B0IDFcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyAic2V0X2F0dHJpYnV0ZSBpb3B0X2VuYWJsZV9wYXJhbGxlbGl6YXRpb24gZmFsc2UgL1xuIgotICAgICAgCi0jICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGRlZl9maWxlcyldfSB7Ci0jICAgICAgICAgZm9yZWFjaCBmaWxlICR2YXJzKGRlZl9maWxlcykgewotIyAgICAgICAgICAgIGlmIHtbZmlsZSBleGlzdHMgJGZpbGVdfSB7Ci0jICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgInJlYWRfZGVmICR2YXJzKGRlZl9maWxlcylcbiIKLSMgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCkscmVhZF9kZWYgJGNvbW1hbmRdCi0jICAgICAgICAgICAgfQotIyAgICAgICAgIH0KLSMgICAgICB9Ci0gICAgICAKLSAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OnNvdXJjZV9wbHVnIHByZV9zeW5fcGxhY2VfdGNsXQotICAgICAKLSAgICAgIHNldCBjb21tYW5kICJcbnN5bnRoZXNpemUgLXRvX3BsYWNlZCAtZWZmb3J0IGhpZ2ggLXBxb3Nfb25seVxuXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZCAid3JpdGVfZGIgJHZhcnMoZGVzaWduKSAtYWxsX3Jvb3RfYXR0cmlidXRlcyAtdG9fZmlsZSAkdmFycyhkYnNfZGlyKS8kdmFycyhzdGVwKS5kYlxuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHN5bjJwbGFjZSAkY29tbWFuZF0KLSAKLSAgICAgIHNldCBjb21tYW5kICJcbnN5bnRoZXNpemUgLXRvX3BsYWNlZCAtZWZmb3J0IGhpZ2ggLWluY3JcblxuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHN5bjJwbGFjZV9pbmNyICRjb21tYW5kXQotCi0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjpzb3VyY2VfcGx1ZyBwb3N0X3N5bl9wbGFjZV90Y2xdCi0KLSAgICAgIGFwcGVuZCBjb21tYW5kcyAiOjpwaHlzOjpxb3Nfc3RhdHMgLXF1aWV0IC10YWcgc3luMnBsYWNlZFxuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzICI6OnBoeXM6OnFvc193cml0ZV9zdGF0c19hcnJheSA+ICR2YXJzKHJwdF9kaXIpL3Fvc19zdGF0cy5xZGJcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyAiOjpwaHlzOjpxb3Nfc3VtbWFyeVxuIgotCi0gICAgICBhcHBlbmQgY29tbWFuZHMgImZvcmVhY2ggY2cgXFtmaW5kIC8gLWNvc3RfZ3JvdXAgKlxdIHtcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyAiICByZXBvcnQgdGltaW5nIC1jb3N0X2dyb3VwIFwkY2cgPj4gJHZhcnMocnB0X2Rpcikvc3luX3BsYWNlX1xbZmlsZSB0YWlsIFwkY2dcXS5ycHRcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyAifVxuIgotICAgICAgCi0gICAgICBpZiB7JHZhcnMoY2FwdHVyZV9tZXRyaWNzKX0gewotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJ1bTo6cG9wX3NuYXBzaG90X3N0YWNrXG4iCi0gICAgICAgICBpZiB7W2xpbmRleCBbc3BsaXQgJHZhcnModmVyc2lvbikgIi4iXSAgMF0gPiAxNn0gewotICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGNvbXB1dGVfbWV0cmljcyldICYmICR2YXJzKGNvbXB1dGVfbWV0cmljcyl9IHsKLSAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJjcmVhdGVfc25hcHNob3QgLW5hbWUgJHZhcnMoc3RlcCkgLWNhdGVnb3JpZXMgXFtkaWN0IGdldCBcW2dldF9hdHRyIG1ldHJpY19jYXRlZ29yeV9zdGF0dXNfbWFwXF0gXFtnZXRfYXR0ciBzdGF0ZSBcW2ZpbmQgLyAtZGVzaWduICpcXVxdXF1cbiIKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiY3JlYXRlX3NuYXBzaG90IC1uYW1lICR2YXJzKHN0ZXApIC1jYXRlZ29yaWVzIGRlc2lnblxuIgotICAgICAgICAgICB9Ci0gICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJjcmVhdGVfc25hcHNob3QgLW5hbWUgJHZhcnMoc3RlcClcbiIKLSAgICAgICAgIH0KLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAidW06OnNhdmVfbWV0cmljX2ZpbGUgJHZhcnMoZGJzX2RpcikvJHZhcnMoc3RlcCkudW1cbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAidW06OnJlcG9ydF9tZXRyaWMgLWZpbGUgJHZhcnMocnB0X2RpcikvJHZhcnMoZGVzaWduKS5odG1sIC1mb3JtYXQgaHRtbFxuIgotICAgICAgfQotCi0gICAgICAgICBzZXQgY29tbWFuZCAid3JpdGVfZGIgJHZhcnMoZGVzaWduKSAtc2NyaXB0ICR2YXJzKGRic19kaXIpLyR2YXJzKHN0ZXApX2RiX3Njci50Y2wgLWFsbF9yb290X2F0dHJpYnV0ZXMgLXRvX2ZpbGUgJHZhcnMoZGJzX2RpcikvJHZhcnMoc3RlcCkuZGJcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kICJ3cml0ZV9kYiAkdmFycyhkZXNpZ24pIC1hbGxfcm9vdF9hdHRyaWJ1dGVzIC10b19maWxlICR2YXJzKGRic19kaXIpLyR2YXJzKHN0ZXApLmRiXG4iCi0KLSAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSx3cml0ZV9kYiAkY29tbWFuZF0KLQotICAgICAgICAgc2V0IGNvbW1hbmQgIndyaXRlX2hkbCBcW2ZpbmQgLyAtZGVzaWduICR2YXJzKGRlc2lnbilcXSA+ICR2YXJzKGRic19kaXIpLyR2YXJzKHN0ZXApLnYuZ3pcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kICJ3cml0ZV9oZGwgXFtmaW5kIC8gLWRlc2lnbiAkdmFycyhkZXNpZ24pXF0gLWxlYyA+ICR2YXJzKGxlY19kaXIpLyR2YXJzKHN0ZXApLkxFQ09OTFkudi5nelxuIgotCi0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksd3JpdGVfaGRsICRjb21tYW5kXQotCi0gICAgICBpZiB7JHZhcnMoZW5hYmxlX3JjcCl9IHsKLSAgICAgICAgICAgIHNldCBjb21tYW5kICJcbndyaXRlX2Rlc2lnbiAtaW5ub3Z1cyAtZ3ppcCAtYmFzZW5hbWUgJHZhcnMoZGJzX2RpcikvJHZhcnMoc3RlcCkvJHZhcnMoc3RlcClcbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kICJzZXQgZmlsZSBcW29wZW4gJHZhcnMoZGJzX2RpcikvJHZhcnMoc3RlcCkvJHZhcnMoc3RlcCkubm92dXNfc2V0dXAudGNsIHdcXVxuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmQgInB1dHMgXCRmaWxlIFwiZXZhbF9lbmMgXHtzb3VyY2UgJHZhcnMoZGJzX2RpcikvJHZhcnMoc3RlcCkvJHZhcnMoc3RlcCkuZW5jX3NldHVwLnRjbFx9XCJcbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kICJjbG9zZSBcJGZpbGVcblxuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHdyaXRlX2Rlc2lnbiAkY29tbWFuZF0KLSAgICAgIH0KLQotICAgICAgIyBXcml0ZSBvdXQgUlRMIHZlcnN1cyBtYXBwZWQgTEVDIGRvZmlsZQotICAgICAgYXBwZW5kIGNvbW1hbmRzICJ3cml0ZV9kb19sZWMgLXJldmlzZWQgJHZhcnMobGVjX2RpcikvJHZhcnMoc3RlcCkuTEVDT05MWS52Lmd6ICAtbG9nZmlsZSBydGwyaW5jci5sb2cgID4gJHZhcnMobGVjX2RpcikvcnRsMmluY3IuZG9mXG4iCi0KLSAgICAgICAgIHNldCBjb21tYW5kICJyZWRpcmVjdCAkdmFycyhsZWNfZGlyKS9kZWxldGVkX3NlcXVlbnRpYWxzLnJwdCB7cmVwb3J0IHNlcXVlbnRpYWwgLWRlbGV0ZWRfc2Vxc31cbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kICJyZWRpcmVjdCAtdGVlICR2YXJzKHJwdF9kaXIpLyR2YXJzKHN0ZXApLnFvci5ycHQgeyByZXBvcnQgcW9yIC1ub3Bvd2VyIH1cbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kICJyZWRpcmVjdCAtYXBwZW5kICR2YXJzKHJwdF9kaXIpLyR2YXJzKHN0ZXApLnFvci5ycHQgeyByZXBvcnQgdGltaW5nIC1mdWxsIC1udW0gMjUwIC1lbmQgfVxuIgotICAgICAgYXBwZW5kIGNvbW1hbmQgInJlZGlyZWN0IC1hcHBlbmQgJHZhcnMocnB0X2RpcikvJHZhcnMoc3RlcCkucW9yLnJwdCB7IHJlcG9ydCB0aW1pbmcgLWZ1bGwgLW51bSAyNSB9XG4iCi0gICAgICAKLSAgICAgIGFwcGVuZCBjb21tYW5kICJnZW5lcmF0ZV9yZXBvcnRzIC10YWcgJHZhcnMoc3RlcCkgLW91dGRpciAkdmFycyhycHRfZGlyKS9nZW5lcmF0ZV9yZXBvcnRzXG4iCi0KLSAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxnZW5lcmF0ZV9yZXBvcnRzICRjb21tYW5kXQotCi0gICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMobWFpbCx0byldfSB7Ci0gICAgICAgICBzZXQgc3VtbWFyeV9maWxlICR2YXJzKHN0ZXApLnFvci5ycHQKLSAgICAgICAgIGlmIHshW2luZm8gZXhpc3RzIHZhcnMobWFpbCxzdGVwcyldIHx8IFwKLSAgICAgICAgICAgICAoW2luZm8gZXhpc3RzIHZhcnMobWFpbCxzdGVwcyldICYmIChbbHNlYXJjaCAkdmFycyhtYWlsLHN0ZXBzKSAkdmFycyhzdGVwKV0gIT0gLTEpKX0gewotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJwdXRzIFwiPEZGPiBNQUlMSU5HIFJFU1VMVFMgVE8gJHZhcnMobWFpbCx0bylcIlxuIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJpZiB7XFtmaWxlIGV4aXN0cyAkdmFycyhycHRfZGlyKS8kc3VtbWFyeV9maWxlXF19IHtcbiIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiICAgZXhlYyAvYmluL21haWwgLXMgXCJGRjogJHZhcnMoZGVzaWduKSwgJHZhcnMoc3RlcCkgY29tcGxldGVkIChcW3NoIHB3ZFxdKVwiIDwgJHZhcnMocnB0X2RpcikvJHN1bW1hcnlfZmlsZSAkdmFycyhtYWlsLHRvKVxuIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJ9IGVsc2VpZiB7XFtmaWxlIGV4aXN0cyAkdmFycyhycHRfZGlyKS8ke3N1bW1hcnlfZmlsZX0uZ3pcXX0ge1xuIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIgICBleGVjIGd1bnppcCAtYyAkdmFycyhycHRfZGlyKS8ke3N1bW1hcnlfZmlsZX0uZ3ogXHwgL2Jpbi9tYWlsIC1zIFwiRkY6ICR2YXJzKGRlc2lnbiksICR2YXJzKHN0ZXApIGNvbXBsZXRlZCAoXFtwd2RcXSlcIiAkdmFycyhtYWlsLHRvKVxuIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJ9IGVsc2Uge1xuIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIgICBleGVjIC9iaW4vbWFpbCAtcyBcIkZGOiAkdmFycyhkZXNpZ24pLCAkdmFycyhzdGVwKSBjb21wbGV0ZWQgKFxbc2ggcHdkXF0pXCIgPCAvZGV2L251bGwgJHZhcnMobWFpbCx0bylcbiIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAifVxuIgotICAgICAgICAgfQotICAgICAgfQotCi0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksc2NoZWR1bGVfZmxvdyAkY29tbWFuZF0KLQotICAgICAgYXBwZW5kIGNvbW1hbmRzICJpZiB7XFtpbmZvIGV4aXN0cyBlbnYoVlBBVEgpXF19IHsiCi0gICAgICBhcHBlbmQgY29tbWFuZHMgImV4ZWMgL2Jpbi90b3VjaCBcJGVudihWUEFUSCkvJHZhcnMoc3RlcCkiCi0gICAgICBhcHBlbmQgY29tbWFuZHMgIn1cbiIKLQotICAgICAgcmV0dXJuICRjb21tYW5kcwotCi0gICB9Ci0KLSAgIHByb2MgcnVuX2luaXQge3tmb3JtYXQgMX19IHsKLQotICAgICAgZ2xvYmFsIHZhcnMKLSAgICAgIGdsb2JhbCBlbnYKLSAgICAgIGdsb2JhbCBlcnJvcnMKLSAgICAgIGdsb2JhbCB3YXJuaW5ncwotICAgICAgZ2xvYmFsIGVudgotCi0gICAgICBzZXQgY29tbWFuZHMgIiIKLSAgICAgIHNldCB1Y29tbWVudHMgIiIKLSAgICAgIHNldCBjb21tZW50cyAiIgotCi0gICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnModmlld19kZWZpbml0aW9uX3RjbCldfSB7Ci0gICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKHZpZXdfZGVmaW5pdGlvbl90Y2wpXG4iCi0gICAgICB9Ci0KLSAgICAgIGlmIHshW2luZm8gZXhpc3RzIHZhcnMoc3RlcCldIHx8ICgoJHZhcnMoc3RlcCkgIT0gInBhcnRpdGlvbl9wbGFjZSIpICYmICgkdmFycyhzdGVwKSAhPSAibW9kZWxfZ2VuIikgJiYgKCR2YXJzKHN0ZXApICE9ICJwcm90b3R5cGUiKSl9IHsgCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgInNldCB2YXJzKHN0ZXApIGluaXRcbiIKLSAgICAgICAgIHNldCB2YXJzKHN0ZXApIGluaXQKLSAgICAgIH0gCi0KLSAgICAgIGlmIHskdmFycyhyZXBvcnRfcnVuX3RpbWUpfSB7Ci0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgInNldCB2YXJzKCR2YXJzKHN0ZXApLHN0YXJ0X3RpbWUpIFxbY2xvY2sgc2Vjb25kc1xdXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKHJlcG9ydF9ydW5fdGltZSlcbiIKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhyZXBvcnRfcnVuX3RpbWUpXG4iCi0gICAgICB9Ci0KLSAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkdmFycyhzdGVwKSxycHRfZGlyKV19IHsKLSAgICAgICAgIHNldCB2YXJzKHJwdF9kaXIpICR2YXJzKCR2YXJzKHN0ZXApLHJwdF9kaXIpCi0gICAgICAgICBmaWxlIG1rZGlyICR2YXJzKCR2YXJzKHN0ZXApLHJwdF9kaXIpCi0gICAgICB9IGVsc2UgewotICAgICAgICAgc2V0IHZhcnMocnB0X2RpcikgJHZhcnMob3JpZ19ycHRfZGlyKQotICAgICAgfQotCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAjIE1ha2Ugc3VyZSBuZWNlc3NhcnkgZGF0YSBpcyBkZWZpbmVkCi0gICAgICAjIENyZWF0ZSBtYWtlIGRpcmVjdG9yeSBpZiBpdCBkb2Vzbid0IGV4aXN0cwotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgaWYgeyEkdmFycyhjb2RlZ2VuKX0gIHsgCi0gICAgICAgICBzZXQgY29tbWFuZCAiRkZfRURJOjpjaGVja19zZXR1cFxuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmQgInNsZWVwIDNcbiIKLSAgICAgICAgIHVwbGV2ZWwgIzAgZXZhbCAkY29tbWFuZCAKLSAgICAgIH0KLQotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgIyBNYWtlIHN1cmUgbmVjZXNzYXJ5IGRhdGEgaXMgZGVmaW5lZAotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCi0gICAgICBpZiB7IVtpbmZvIGV4aXN0cyBlbnYoVlBBVEgpXX0gewotICAgICAgICAgc2V0IGVudihWUEFUSCkgIm1ha2UiICAKLSAgICAgIH0KLSAgICAgIGFwcGVuZCBjb21tYW5kcyAiZXhlYyBta2RpciAtcCBcJGVudihWUEFUSClcbiIKLQotICAgICAgaWYgeyR2YXJzKGJhY2t1cF9kYXRhKX0gewotICAgICAgICAgcHV0cyAiIyA8RkY+IEJBQ0tJTkcgVVAgUFJJT1IgUlVOIERBVEEgSUYgSVQgRVhJU1RTLi4uXG4iCi0gICAgICAgICBzZXQgZGF0ZSBbc3RyaW5nIHRvdXBwZXIgW2Nsb2NrIGZvcm1hdCBbY2xvY2sgc2Vjb25kc10gLWZvcm1hdCB7JWglZF8lSDolTX1dXQotICAgICAgICAgZXhlYyBta2RpciAtcCBCQUNLVVAvJGRhdGUKLSAgICAgICAgICMgQkNMOiBBZGRlZCBzdWJzdCB0byBoYW5kbGUgZGVyZXJlbmNpbmcgdmFyaWFibGVzCi0gICAgICAgIAotICAgICAgICAgZm9yZWFjaCBkaXIgIltzdWJzdCAkdmFycyhkYnNfZGlyKV0gW3N1YnN0ICR2YXJzKHJwdF9kaXIpXSBbc3Vic3QgJHZhcnMobG9nX2RpcildIiB7Ci0gICAgICAgICAgICBpZiB7W2ZpbGUgaXNkaXJlY3RvcnkgJGRpcl19IHsKLSAgICAgICAgICAgICAgIGV4ZWMgbXYgJGRpciBCQUNLVVAvJGRhdGUKLSAgICAgICAgICAgICAgICMgQkNMOiBDaGFuZ2VkIHRvIGZpbGUgbWtkaXIKLSAgICAgICAgICAgICAgIHB1dHMgIk1ha2luZyAkZGlyIgotICAgICAgICAgICAgICAgZmlsZSBta2RpciAkZGlyCi0gICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0jICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJzbGVlcCA1XG4iCi0gICAgICB9Ci0gICAgICAjIEJDTDogQWRkZWQgc3Vic3QgdG8gaGFuZGxlIGRlcmVyZW5jaW5nIHZhcmlhYmxlcwotICAgICAgZm9yZWFjaCBkaXIgIltzdWJzdCAkdmFycyhkYnNfZGlyKV0gW3N1YnN0ICR2YXJzKHJwdF9kaXIpXSBbc3Vic3QgJHZhcnMobG9nX2RpcildIiB7Ci0gICAgICAgICBzZXQgbmV3RGlyIFtzdWJzdCAkZGlyXQotICAgICAgICAgaWYgeyFbZmlsZSBleGlzdHMgJG5ld0Rpcl19ICB7Ci0gICAgICAgICAgICBmaWxlIG1rZGlyICRuZXdEaXIKLSAgICAgICAgIH0KLSAgICAgIH0KLQotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgIyBMb2FkIHByZS1pbml0aWFsaXphdGlhb24gcGx1Zy1pbiBzY3JpcHQKLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OnNvdXJjZV9wbHVnIHByZV9pbml0X3RjbF0KLQotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgIyBUaGVzZSBmbG93IHNjcmlwdHMgc3VwcG9ydCB0aGUgZm9sbG93aW5nOgotICAgICAgIyAtIEZsYXQgY2hpcCBvciBibG9jawotICAgICAgIyAtIEhpZXJhcmNoaWNhbCBwYXJ0aXRpb24KLSAgICAgICMgLSBUb3AgbGV2ZWwgcGFydGl0aW9uCi0gICAgICAjCi0gICAgICAjIFRoZSBkYXRhIGxvYWRpbmcgbWVjaGFuaXNtIGFyZSBzbGlnaHRseSBkaWZmZXJlbnQgZm9yIGVhY2ggc28gd2UgZGV0ZXJtaW5lCi0gICAgICAjIGZpcnN0IGlmIHdlIGFyZSBpbiBhIGhpZXJhcmNoaWNhbCBmbG93IChpLmUuIHZhcnMocGFydGl0aW9uX2xpc3QpIGlzCi0gICAgICAjIGRlZmluZWQgYW5kLCBpZiBzbywgd2hldGhlciB3ZSBhcmUgaW4gYSBoaWVyYXJjaGljYWwgcGFydGl0aW9uIGZsb3cKLSAgICAgICMgb3IgYSB0b3AgcGFydGl0aW9uIGZsb3cgKGkuZS4gY3dkID09ICR2YXJzKGRlc2lnbikgLSBzZWUgYmVsb3cpCi0gICAgICAjCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAgRkZfRURJOjpjaGVja19mbG93Ci0KLSMgICAgICBhcHBlbmQgY29tbWFuZHMgIiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiIKLSMgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgICAgICAgICAgICAgICAgICAgICAgICAgICBFWEVDVVRJTkcgRkxPV1xuIgotIyAgICAgIGFwcGVuZCBjb21tYW5kcyAiIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIgotCi0gICAgICBzZXQgaGllciAwCi0gICAgICAKLSAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkdmFycyhzdGVwKSxzdGFydGluZ19kYnMpXX0gewotICAgICAgICAgaWYge1tzdHJpbmcgY29tcGFyZSAtbm9jYXNlICR2YXJzKGRic19mb3JtYXQpICJvYSJdPT0wfSB7Ci0gICAgICAgICAgICMgSW50ZXJwcmV0IHRoZSBzdGFydGluZyBEQlMgYXMgYW4gT0EgdHJpcGxlCi0gICAgICAgICAgIHNldCByZXN0b3JlX2NvbW1hbmQgIltsaXN0IHJlc3RvcmVEZXNpZ24gLWNlbGx2aWV3ICR2YXJzKCR2YXJzKHN0ZXApLHN0YXJ0aW5nX2RicyldXG4iCi0gICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgaWYge1tmaWxlIGlzZGlyZWN0b3J5ICR2YXJzKCR2YXJzKHN0ZXApLHN0YXJ0aW5nX2RicyldfSB7Ci0gICAgICAgICAgICAgIHNldCByZXN0b3JlX2NvbW1hbmQgInJlc3RvcmVEZXNpZ24gJHZhcnMoJHZhcnMoc3RlcCksc3RhcnRpbmdfZGJzKSAkdmFycyhkZXNpZ24pXG4iCi0gICAgICAgICAgICB9IGVsc2VpZiB7W2ZpbGUgZXhpc3RzICR2YXJzKCR2YXJzKHN0ZXApLHN0YXJ0aW5nX2RicyldfSB7Ci0gICAgICAgICAgICAgIHNldCByZXN0b3JlX2NvbW1hbmQgInJlc3RvcmVEZXNpZ24gJHZhcnMoJHZhcnMoc3RlcCksc3RhcnRpbmdfZGJzKS5kYXQgJHZhcnMoZGVzaWduKVxuIgotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgcHV0cyAiPEZGPiBTdGFydGluZyBEQlMgKCR2YXJzKCR2YXJzKHN0ZXApLHN0YXJ0aW5nX2RicykpIGRlZmluZWQgYnV0IGRvZXMgbm90IGV4aXN0IgotICAgICAgICAgICAgICBzZXQgcmVzdG9yZV9jb21tYW5kICJyZXN0b3JlRGVzaWduICR2YXJzKCR2YXJzKHN0ZXApLHN0YXJ0aW5nX2RicykuZGF0ICR2YXJzKGRlc2lnbilcbiIKLSAgICAgICAgICAgICAgc2V0IHdhcm5pbmdzKCR2YXJzKHdhcm5pbmdfY291bnQpKSAiU3RhcnRpbmcgREJTICgkdmFycygkdmFycyhzdGVwKSxzdGFydGluZ19kYnMpKSBkZWZpbmVkIGJ1dCBkb2VzIG5vdCBleGlzdCIKLSAgICAgICAgICAgICAgaW5jciB2YXJzKHdhcm5pbmdfY291bnQpCi0gICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0KLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxyZXN0b3JlX2Rlc2lnbiAkcmVzdG9yZV9jb21tYW5kXQotCi0gICAgICB9IGVsc2UgewotCi0gICAgICAgICBpZiB7IVtpbmZvIGV4aXN0cyB2YXJzKHBhcnRpdGlvbl9saXN0KV0gfHwgKFtpbmZvIGV4aXN0cyB2YXJzKHBhcnRpdGlvbl9saXN0KV0gJiYgXAotICAgICAgICAgICAgICAoW2ZpbGUgdGFpbCBbZmlsZSBkaXJuYW1lIFtwd2RdXV0gIT0gIiR2YXJzKHBhcnRpdGlvbl9kaXIpIikpfSB7Ci0gICAKLSAgICAgICAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICAgICAgICMgUGFydGl0aW9uIHN0ZXAgb3IgZmxhdCBpbml0IHN0ZXAKLSAgICAgICAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLQotICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKHBhcnRpdGlvbl9saXN0KV19IHsKLSAgICAgICAgICAgICAgIHNldCBoaWVyIDEKLSAgICAgICAgICAgIH0KLSAgIAotICAgICAgICAgICAgaWYgeyR2YXJzKHZlcmJvc2UpfSB7Ci0gICAgICAgICAgICAgICBpZiB7IVtpbmZvIGV4aXN0cyB2YXJzKHBhcnRpdGlvbl9saXN0KV19IHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiI1xuIgotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjIEZMQVQgSU1QTEVNRU5UQVRJT04gRkxPV1xuIgotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjXG4iCi0gICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjXG4iCi0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgUEFSVElUSU9OSU5HIEZMT1dcbiIKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiI1xuIgotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgCi0gICAgICAgICAgICBpZiB7JHZhcnModmVyYm9zZSl9IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiI1xuIgotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjIExPQURJTkcgREVTSUdOIERBVEFcbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiI1xuIgotICAgICAgICAgICAgfQotICAgICAgICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgICAgICAgIyBMb2FkIGRlc2lnbiBjb25maWd1cmF0aW9uIGZpbGUKLSAgICAgICAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgIAotICAgICAgICAgICAgaWYge1tsaW5kZXggW3NwbGl0ICR2YXJzKHZlcnNpb24pICIuIl0gMF0gPD0gMTB9IHsKLSAgICAgICAgICAgICAgIHNvdXJjZSAkdmFycyhzY3JpcHRfcGF0aCkvRVRDL0lOTk9WVVMvZ2VuZXJpYy5jb25mCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiB7JHZhcnMoaWxtKX0gewotICAgICAgICAgICAgICAgc2V0IGlsbV9saXN0ICR2YXJzKGlsbV9saXN0KQotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhpbG1fbGlzdCkgXCI8bGlzdCBvZiBJTE1zPlwiXG4iCi0gICAgICAgICAgICAgICBpZiB7JHZhcnMobW9kZSkgPT0gImJvdHRvbV91cCJ9IHsKLSAgICAgICAgICAgICAgICAgIGZvcmVhY2ggcGFydCAkdmFycyhwYXJ0aXRpb25fbGlzdCkgewotICAgICAgICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCRwYXJ0LGlsbV9kaXIpXX0gewotICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyg8aWxtPixpbG1fZGlyKSBcIjxwYXRoIHRvIElMTSBkaXJlY3Rvcnk+XCJcbiIKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIHtbbHNlYXJjaCAkaWxtX2xpc3QgJHBhcnRdID09IC0xfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICBsYXBwZW5kIGlsbV9saXN0ICRwYXJ0Ci0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICBmb3JlYWNoIGlsbSAkaWxtX2xpc3QgewotICAgICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCRpbG0sbGVmX2ZpbGUpXSAmJiBbZmlsZSBleGlzdHMgJHZhcnMoJGlsbSxsZWZfZmlsZSldfSB7Ci0gICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKDxpbG0+LGxlZl9maWxlKSBcIjxMRUYgZmlsZSBmb3IgYmxvY2sgYXNzb2NpYXRlZCB3aXRoIElMTT5cIlxuIgotICAgICAgICAgICAgICAgICAgICAgaWYge1tsaW5kZXggW3NwbGl0ICR2YXJzKHZlcnNpb24pICIuIl0gIDBdIDw9IDEwfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBsYXBwZW5kIHJkYV9JbnB1dCh1aV9sZWZmaWxlKSAkdmFycygkaWxtLGxlZl9maWxlKQotICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIHtbc3RyaW5nIGNvbXBhcmUgJHZhcnMoZGJzX2Zvcm1hdCkgImZlIl09PTB9IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhcHBlbmQgdmFycyhsZWZfZmlsZXMpICR2YXJzKCRpbG0sbGVmX2ZpbGUpCi0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgcHV0cyAiPEZGPiBXQVJOSU5HOiBMRUYgZmlsZSBlaXRoZXIgbm90IGRlZmluZWQgb3IgZG9lc24ndCBleGlzdCBmb3IgJGlsbSIKLSAgICAgICAgICAgICAgICAgICAgIHB1dHMgIjxGRj4gICAgICAgICAgUGxlYXNlIG1ha2Ugc3VyZSBpdCBpcyBpbiB5b3VyIHZhcnMobGVmX2ZpbGVzKSBsaXN0IgotICAgICAgICAgICAgICAgICAgICAgc2V0IHdhcm5pbmdzKCR2YXJzKHdhcm5pbmdfY291bnQpKSAiTEVGIGZpbGUgZWl0aGVyIG5vdCBkZWZpbmVkIG9yIGRvZXNuJ3QgZXhpc3QgZm9yICRpbG1cblx0UGxlYXNlIG1ha2Ugc3VyZSBpdCBpcyBpbiB5b3VyIHZhcnMobGVmX2ZpbGVzKSBsaXN0IgotICAgICAgICAgICAgICAgICAgICAgaW5jciB2YXJzKHdhcm5pbmdfY291bnQpCi0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJGlsbSxzZXR1cF9saWIpXSAmJiBbZmlsZSBleGlzdHMgJHZhcnMoJGlsbSxzZXR1cF9saWIpXX0gewotICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyg8aWxtPixzZXR1cF9saWIpIFwiPExJQiBmaWxlIGZvciBibG9jayBhc3NvY2lhdGVkIHdpdGggSUxNPlwiXG4iCi0gICAgICAgICAgICAgICAgICAgICBpZiB7W2xpbmRleCBbc3BsaXQgJHZhcnModmVyc2lvbikgIi4iXSAgMF0gPD0gMTB9IHsgCi0gICAgICAgICAgICAgICAgICAgICAgICBsYXBwZW5kIHJkYV9JbnB1dCh1aV90aW1lbGliKSAkdmFycygkaWxtLHNldHVwX2xpYikKLSAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiB7W3N0cmluZyBjb21wYXJlICR2YXJzKGRic19mb3JtYXQpICJmZSJdPT0wfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JlYWNoIHNldCAkdmFycyhsaWJyYXJ5X3NldHMpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIHtbbHNlYXJjaCAkdmFycygkc2V0LHRpbWluZykgJHZhcnMoJGlsbSxzZXR1cF9saWIpXSA9PSAtMX0gewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFwcGVuZCB2YXJzKCRzZXQsdGltaW5nKSAkdmFycygkaWxtLHNldHVwX2xpYikKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICBwdXRzICI8RkY+IFdBUk5JTkc6IExJQiBmaWxlIGVpdGhlciBub3QgZGVmaW5lZCBvciBkb2Vzbid0IGV4aXN0IGZvciAkaWxtIgotICAgICAgICAgICAgICAgICAgICAgcHV0cyAiPEZGPiAgICAgICAgICBQbGVhc2UgbWFrZSBzdXJlIGl0IGlzIGluIHlvdXIgbGlicmFyeSBzZXQgZGVmaW5pdGlvbnMiCi0gICAgICAgICAgICAgICAgICAgICBzZXQgd2FybmluZ3MoJHZhcnMod2FybmluZ19jb3VudCkpICJMSUIgZmlsZSBlaXRoZXIgbm90IGRlZmluZWQgb3IgZG9lc24ndCBleGlzdCBmb3IgJGlsbVxuXHRQbGVhc2UgbWFrZSBzdXJlIGl0IGlzIGluIHlvdXIgbGlicmFyeSBzZXQgZGVmaW5pdGlvbnMiCi0gICAgICAgICAgICAgICAgICAgICBpbmNyIHZhcnMod2FybmluZ19jb3VudCkKLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhpbG1fbGlzdCkgXCI8bGlzdCBvZiBJTE1zPlwiXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyg8aWxtPixpbG1fZGlyKSBcIjxwYXRoIHRvIElMTSBkaXJlY3Rvcnk+XCJcbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKDxpbG0+LGxlZl9maWxlKSBcIjxMRUYgZmlsZSBmb3IgYmxvY2sgYXNzb2NpYXRlZCB3aXRoIElMTT5cIlxuIgotICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMoPGlsbT4sc2V0dXBfbGliKSBcIjxMSUIgZmlsZSBmb3IgYmxvY2sgYXNzb2NpYXRlZCB3aXRoIElMTT5cIlxuIgotICAgICAgICAgICAgfQotICAgCi0gICAgICAgICAgICBGRl9FREk6OmR1bXBfY29uZmlnCi0gICAKLSAgICAgICAgICAgIGlmIHtbbGluZGV4IFtzcGxpdCAkdmFycyh2ZXJzaW9uKSAiLiJdICAwXSA8PSAxMH0gewotICAgICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgImxvYWRDb25maWcgXCR2YXJzKHNjcmlwdF9kaXIpL3J1bi5jb25mXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksbG9hZF9jb25maWcgJGNvbW1hbmRdCi0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgaWYge1tzdHJpbmcgY29tcGFyZSAtbm9jYXNlICR2YXJzKG5ldGxpc3RfdHlwZSkgInZlcmlsb2ciXT49MH0gewotIyAgICAgICAgICAgICAgICAgIHNldCBjb21tYW5kICJzb3VyY2UgXCR2YXJzKHNjcmlwdF9kaXIpL2luaXQudGNsXG4iCi0gICAgICAgICAgICAgICAgICBpZiB7JHZhcnMoZ2VuZXJhdGVfZmxvd19zdGVwcyl9IHsgCi0gICAgICAgICAgICAgICAgICAgICBzZXQgY29tbWFuZCAiIgotICAgICAgICAgICAgICAgICAgICAgc2V0IGlwIFtvcGVuICR2YXJzKHNjcmlwdF9kaXIpL2luaXQudGNsIHJdCi0gICAgICAgICAgICAgICAgICAgICB3aGlsZSB7W2dldHMgJGlwIGxpbmVdPj0wfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiJGxpbmVcbiIKLSAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICBzZXQgY29tbWFuZCAic291cmNlICR2YXJzKHNjcmlwdF9kaXIpL2luaXQudGNsXG4iCi0gICAgICAgICAgICAgICAgICB9IAotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgImluaXRfZGVzaWduXG4iCi0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksaW5pdF9kZXNpZ24gJGNvbW1hbmRdCi0gICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgaWYgeyRoaWVyfSB7Ci0gICAgICAgICAgICAgICAgICAgICBpZiB7JHZhcnMoc3RlcCkgPT0gInBhcnRpdGlvbl9wbGFjZSJ9IHsgCi0gICAgICAgICAgICAgICAgICAgICAgIHNldCBjb21tYW5kICJyZXN0b3JlRGVzaWduIC1jZWxsdmlldyBcW2xpc3QgJHZhcnMob2FfZGVzaWduX2xpYikgJHZhcnMob2FfZGVzaWduX2NlbGwpICR2YXJzKG9hX2Rlc2lnbl92aWV3KVxdXG4iCi0gICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICBzZXQgY29tbWFuZCAicmVzdG9yZURlc2lnbiAtY2VsbHZpZXcgXFtsaXN0ICR2YXJzKG9hX3BhcnRpdGlvbl9saWIpICR2YXJzKG9hX2Rlc2lnbl9jZWxsKSAkdmFycyhvYV9kZXNpZ25fdmlldylcXVxuIgotICAgICAgICAgICAgICAgICAgICAgfSAKLSAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgIHNldCBjb21tYW5kICJyZXN0b3JlRGVzaWduIC1jZWxsdmlldyBcW2xpc3QgJHZhcnMob2FfZGVzaWduX2xpYikgJHZhcnMob2FfZGVzaWduX2NlbGwpICR2YXJzKG9hX2Rlc2lnbl92aWV3KVxdXG4iCi0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCkscmVzdG9yZV9kZXNpZ24gJGNvbW1hbmRdCi0gICAgICAgICAgICAgICB9Ci0gICAjICAgICAgICAgICAgaWYgeyEkdmFycyhjb2RlZ2VuKX0gewotICAgIyAgICAgICAgICAgICAgIFB1dHMgIjxGRj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIgotICAgIyAgICAgICAgICAgICAgIFB1dHMgIjxGRj4gJGNvbW1hbmRzIgotICAgIyAgICAgICAgICAgICAgIFB1dHMgIjxGRj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIgotICAgIyAgICAgICAgICAgICAgIHVwbGV2ZWwgIzAgZXZhbCAkY29tbWFuZHMKLSAgICMgICAgICAgICAgICAgICBzZXQgY29tbWFuZHMgIiIgIAotICAgIyAgICAgICAgICAgIH0gIAotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBpZiB7JHZhcnMoY2FwdHVyZV9tZXRyaWNzKX0gewotIyAgICAgICAgICAgICAgICBpZiB7KCR2YXJzKHN0ZXApICE9ICJwYXJ0aXRpb25fcGxhY2UiKSAmJiAoJHZhcnMoc3RlcCkgIT0gIm1vZGVsX2dlbiIpICYmICgkdmFycyhzdGVwKSAhPSAicHJvdG90eXBlIil9IHsgCi0gICAgICAgICAgICAgICAgICBpZiB7W2xpbmRleCBbc3BsaXQgJHZhcnModmVyc2lvbikgIi4iXSAgMF0gPiAxM30gewotICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJ1bTo6ZW5hYmxlX21ldHJpY3MgLW9uXG4iCi0gICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgInVtOjpwdXNoX3NuYXBzaG90X3N0YWNrXG4iCi0gICAgICAgICAgICAgICAgICB9Ci0jICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAgICAgICAjIExvYWQgImFsd2F5cyBzb3VyY2UiIHBsdWctaW4gc2NyaXB0Ci0gICAgICAgICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjpzb3VyY2VfcGx1ZyBhbHdheXNfc291cmNlX3RjbF0KLQotICAgICAgICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgICAgICAgIyBDaGVjayBmb3IgdGhlIGV4aXN0ZW5jZSBvZiBlaXRoZXIgYSBmbG9vcnBsYW4gZmlsZSwgYQotICAgICAgICAgICAgIyBERUYgZmlsZSwgb3IgYm90aCBhbmQgbG9hZCB0aGVtCi0gICAgICAgICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAgICAgICBzZXQgY29tbWFuZCAiIiAKLSAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhmcF90Y2xfZmlsZSldIHx8IFtpbmZvIGV4aXN0cyB2YXJzKGZwX3RjbF9wcm9jKV19IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMoZnBfdGNsX2ZpbGUpXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKGZwX3RjbF9wcm9jKVxuIgotICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGZwX3RjbF9maWxlKV0gJiYgIVtpbmZvIGV4aXN0cyB2YXJzKGZwX3RjbF9wcm9jKV19IHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJmZl9wcm9jczo6c291cmNlX2ZpbGUgJHZhcnMoZnBfdGNsX2ZpbGUpXG4iCi0gICAgICAgICAgICAgICB9IGVsc2VpZiB7IVtpbmZvIGV4aXN0IHZhcnMoZnBfdGNsX2ZpbGUpXSAmJiBbaW5mbyBleGlzdHMgdmFycyhmcF90Y2xfcHJvYyldfSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiJHZhcnMoZnBfdGNsX3Byb2MpXG4iCi0gICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiMgIEVSUk9SOiBCb3RoIGZwX3RjbF9maWxlIGFuZCBmcF90Y2xfcHJvYyBhcmUgZGVmaW5lZCBidXQgYXJlIG11dHVhbGx5IGV4Y2x1c2l2ZVxuIgotICAgICAgICAgICAgICAgICAgc2V0IGVycm9ycygkdmFycyhlcnJvcl9jb3VudCkpICJCb3RoIGZwX3RjbF9maWxlIGFuZCBmcF90Y2xfcHJvYyBhcmUgZGVmaW5lZCBidXQgYXJlIG11dHVhbGx5IGV4Y2x1c2l2ZSIKLSAgICAgICAgICAgICAgICAgIGluY3IgdmFycyhlcnJvcl9jb3VudCkKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhmcF90Y2xfZmlsZSlcbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKGZwX3RjbF9wcm9jKVxuIgotICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGZwX2ZpbGUpXX0gewotICAgICAgICAgICAgICAgICAgaWYge1tmaWxlIGV4aXN0cyAkdmFycyhmcF9maWxlKV19IHsKLSAgICMgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiUHV0cyBcIjxGRj4gTE9BRElORyBGUCBGSUxFICR2YXJzKGZwX2ZpbGUpXCJcbiIKLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJsb2FkRlBsYW4gJHZhcnMoZnBfZmlsZSlcbiIKLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMoZnBfZmlsZSlcbiIKLSAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhmcF9maWxlKVxuIgotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKG9hX2ZwKV19IHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJvYUluICR2YXJzKG9hX2ZwKVxuIgotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhvYV9mcClcbiIKLSAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhvYV9mcClcbiIKLSAgICAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGRlZl9maWxlcyldfSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKGRlZl9maWxlcylcbiIKLSAgICAgICAgICAgICAgICAgIGlmIHskdmFycyhyYyl9IHsKLSAgICAgICAgICAgICAgICAgICAgIGlmIHskdmFycyhlbmFibGVfcmNwKX0gewotICAgICAgICAgICAgICAgICAgICAgICAgc2V0IHZhcnMobmV0bGlzdCkgICAkdmFycyhkYnNfZGlyKS9zeW5fcGxhY2Uvc3luX3BsYWNlLnYuZ3oKLSAgICAgICAgICAgICAgICAgICAgICAgIHNldCB2YXJzKGRlZl9maWxlcykgJHZhcnMoZGJzX2Rpcikvc3luX3BsYWNlL3N5bl9wbGFjZS5kZWYuZ3oKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhpbnNlcnRfZGZ0KV0gJiYgJHZhcnMoaW5zZXJ0X2RmdCl9IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhcHBlbmQgdmFycyhkZWZfZmlsZXMpICR2YXJzKGRic19kaXIpL3N5bl9wbGFjZS9zeW5fcGxhY2Uuc2Nhbi5kZWYuZ3oKLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBzZXQgdmFycyhuZXRsaXN0KSAgICR2YXJzKGRic19kaXIpL3N5bl9pbmNyL3N5bl9pbmNyLnYuZ3oKLSMgICAgICAgICAgICAgICAgICAgICAgICBzZXQgdmFycyhkZWZfZmlsZXMpICR2YXJzKGRic19kaXIpL3N5bl9pbmNyL3N5bl9pbmNyLmRlZi5negotICAgICAgICAgICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGluc2VydF9kZnQpXSAmJiAkdmFycyhpbnNlcnRfZGZ0KX0gewotICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFwcGVuZCB2YXJzKGRlZl9maWxlcykgJHZhcnMoZGJzX2Rpcikvc3luX2luY3Ivc3luX2luY3Iuc2Nhbi5kZWYuZ3oKLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgIGZvcmVhY2ggZGVmX2ZpbGUgJHZhcnMoZGVmX2ZpbGVzKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiZGVmSW4gJGRlZl9maWxlXG4iCi0gICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgIGZvcmVhY2ggZGVmX2ZpbGUgJHZhcnMoZGVmX2ZpbGVzKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiB7W2ZpbGUgZXhpc3RzICRkZWZfZmlsZV19IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJkZWZJbiAkZGVmX2ZpbGVcbiIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMoZGVmX2ZpbGVzKVxuIgotICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKGRlZl9maWxlcylcbiIKLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICBpZiB7JHZhcnMocmMpfSB7Ci0gICAgICAgICAgICAgICAgICAgICBpZiB7JHZhcnMoZW5hYmxlX3JjcCl9IHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHNldCB2YXJzKG5ldGxpc3QpICAgJHZhcnMoZGJzX2Rpcikvc3luX3BsYWNlL3N5bl9wbGFjZS52Lmd6Ci0gICAgICAgICAgICAgICAgICAgICAgICBzZXQgdmFycyhkZWZfZmlsZXMpICR2YXJzKGRic19kaXIpL3N5bl9wbGFjZS9zeW5fcGxhY2UuZGVmLmd6Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoaW5zZXJ0X2RmdCldICYmICR2YXJzKGluc2VydF9kZnQpfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICBsYXBwZW5kIHZhcnMoZGVmX2ZpbGVzKSAkdmFycyhkYnNfZGlyKS9zeW5fcGxhY2Uvc3luX3BsYWNlLnNjYW4uZGVmLmd6Ci0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICAgc2V0IHZhcnMobmV0bGlzdCkgICAkdmFycyhkYnNfZGlyKS9zeW5faW5jci9zeW5faW5jci52Lmd6Ci0gICAgICAgICAgICAgICAgICAgICAgICBzZXQgdmFycyhkZWZfZmlsZXMpICR2YXJzKGRic19kaXIpL3N5bl9pbmNyL3N5bl9pbmNyLmRlZi5negotICAgICAgICAgICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGluc2VydF9kZnQpXSAmJiAkdmFycyhpbnNlcnRfZGZ0KX0gewotICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFwcGVuZCB2YXJzKGRlZl9maWxlcykgJHZhcnMoZGJzX2Rpcikvc3luX2luY3Ivc3luX2luY3Iuc2Nhbi5kZWYuZ3oKLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhkZWZfZmlsZXMpXG4iCi0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksbG9hZF9mbG9vcnBsYW4gJGNvbW1hbmRdCi0gICAKLSAgICAgICAgICAgIGlmIHsoJHZhcnMocGFyZW50KSA9PSAicmMiKSAmJiAkdmFycyhyYyl9IHsKLSAgICAgICAgICAgICAgIHNldCBjb21tYW5kcyBbRkY6OnNvdXJjZV9wbHVnIGFsd2F5c19zb3VyY2VfdGNsXQotICAgICAgICAgICAgICAgaWYgeyR2YXJzKHJlcG9ydF9ydW5fdGltZSl9IHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAic2V0IHZhcnMoJHZhcnMoc3RlcCksc3RhcnRfdGltZSkgXFtjbG9jayBzZWNvbmRzXF1cbiIKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OnNvdXJjZV9wbHVnIHByZV9pbml0X3RjbF0KLSAgICAgICAgICAgIH0KLSAgIAotICAgIyAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhndWlkZXMpXX0gewotICAgIyAgICAgICAgICAgIHNldCBjb21tYW5kICJcbmJ1aWxkX2d1aWRlc1xuIgotICAgIyAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCBpbml0LGJ1aWxkX2d1aWRlcyAkY29tbWFuZF0KLSAgICMgICAgICAgICB9Ci0gICAjICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGJsb2NrYWdlcyldfSB7Ci0gICAjICAgICAgICAgICAgc2V0IGNvbW1hbmQgIlxuYWRkX2Jsb2NrYWdlc1xuIgotICAgIyAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCBpbml0LGFkZF9ibG9ja2FnZXMgJGNvbW1hbmRdCi0gICAjICAgICAgICAgfQotCi0gICAgICAgICAgICBpZiB7W2xpbmRleCBbc3BsaXQgJHZhcnModmVyc2lvbikgIi4iXSAgMF0gPCAxNX0gewotICAgICAgICAgICAgICBpZiB7JHZhcnMoZ2VuZXJhdGVfdHJhY2tzKX0gewotICAgICAgICAgICAgICAgICBzZXQgY29tbWFuZCAiZ2VuZXJhdGVUcmFja3NcbiIKLSAgICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGhvbm9yX3BpdGNoKV0gJiYgJHZhcnMoaG9ub3JfcGl0Y2gpfSB7Ci0gICAgICAgICAgICAgICAgICAgIHNldCBjb21tYW5kICIgZ2VuZXJhdGVUcmFja3MgLWhvbm9yUGl0Y2hcbiIKLSAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksZ2VuZXJhdGVfdHJhY2tzICRjb21tYW5kXQotICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKGdlbmVyYXRlX3RyYWNrcylcbiIKLSAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMoZ2VuZXJhdGVfdHJhY2tzKVxuIgotICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9IGVsc2UgeyAKLSAgICAgICAgICAgICAgaWYgeyR2YXJzKGFkZF90cmFja3MpfSB7Ci0gICAgICAgICAgICAgICAgIHNldCBjb21tYW5kICJhZGRfdHJhY2tzXG4iCi0gICAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhob25vcl9waXRjaCldICYmICR2YXJzKGhvbm9yX3BpdGNoKX0gewotICAgICAgICAgICAgICAgICAgICBzZXQgY29tbWFuZCAiIGFkZF90cmFja3MgLWhvbm9yX3BpdGNoXG4iCi0gICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLGFkZF90cmFja3MgJGNvbW1hbmRdCi0gICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMoYWRkX3RyYWNrcylcbiIKLSAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMoYWRkX3RyYWNrcylcbiIKLSAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAgICAgICAjIFNwZWNpZnkgSUxNcyBpZiBkZWZpbmVkCi0gICAgICAgICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIGlsbV9saXN0XSAmJiAoJGlsbV9saXN0ICE9ICIiKX0gewotICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgIiIKLSAgICAgICAgICAgICAgIGZvcmVhY2ggY2VsbCAkaWxtX2xpc3QgewotICAgICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCRjZWxsLGlsbV9kaXIpXSAmJiBbZmlsZSBpc2RpcmVjdG9yeSAkdmFycygkY2VsbCxpbG1fZGlyKV19IHsKLSAgICAgICAgICAgICAgICAgICAgIGlmIHtbbGluZGV4IFtzcGxpdCAkdmFycyh2ZXJzaW9uKSAiLiJdICAwXSA8PSAxMH0gewotICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgInNwZWNpZnlJbG0gLWNlbGwgJGNlbGwgLWRpciAkdmFycygkY2VsbCxpbG1fZGlyKVxuIgotICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgaWYge1tzdHJpbmcgY29tcGFyZSAtbm9jYXNlICR2YXJzKGRic19mb3JtYXQpICJvYSJdPT0wfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAic3BlY2lmeUlsbSAtY2VsbCAkY2VsbFxuIgotICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJzcGVjaWZ5SWxtIC1jZWxsICRjZWxsIC1kaXIgJHZhcnMoJGNlbGwsaWxtX2RpcilcbiIKLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICBwdXRzICI8RkY+IEVSUk9SOiBpbG0gZGlyZWN0b3J5IG1pc3NpbmcgZm9yICRjZWxsIgotICAgICAgICAgICAgICAgICAgICAgc2V0IGVycm9ycygkdmFycyhlcnJvcl9jb3VudCkpICJJTE0gZGlyZWN0b3J5IG1pc3NpbmcgZm9yICRjZWxsIgotICAgICAgICAgICAgICAgICAgICAgaW5jciB2YXJzKGVycm9yX2NvdW50KQotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLGRlcmF0ZV90aW1pbmcgW0ZGX0VESTo6ZGVyYXRlX3RpbWluZyBtbW1jXV0KLSAgICAgICAgICAgICAgIGlmIHskY29tbWFuZCAhPSAiIn0gewotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHNwZWNpZnlfaWxtICJzZXRJbG1Nb2RlIC1rZWVwRmxhdHRlbiB0cnVlXG4ke2NvbW1hbmR9ZmxhdHRlbklsbVxuIl0KLSMgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksc3BlY2lmeV9pbG0gJGNvbW1hbmRdCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGlmIHskdmFycyhpbG0pICYmIFtpbmZvIGV4aXN0cyB2YXJzKGlsbV9ub25fc2RjX2ZpbGUpXX0gewotICAgICAgICAgICAgICAgaWYge1tmaWxlIGV4aXN0cyAkdmFycyhpbG1fbm9uX3NkY19maWxlKV19IHsKLSAgICAgICAgICAgICAgICAgIGlmIHtbbGluZGV4IFtzcGxpdCAkdmFycyh2ZXJzaW9uKSAiLiJdICAwXSA8PSAxMH0gewotICAgICAgICAgICAgICAgICAgICAgc2V0IGxjb21tYW5kICJsb2FkVGltaW5nQ29uIC1pbG1Ob25TZGNGaWxlICR2YXJzKGlsbV9ub25fc2RjX2ZpbGUpXG4iCi0gICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgc2V0IGxjb21tYW5kICJzZXRJbG1Ob25TZGNDb25zdHJhaW50RmlsZSAkdmFycyhpbG1fbm9uX3NkY19maWxlKVxuIgotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLGxvYWRfaWxtX25vbl9zZGNfZmlsZSAkbGNvbW1hbmRdCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKGlsbV9ub25fc2RjX2ZpbGUpXG4iCi0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMoaWxtX25vbl9zZGNfZmlsZSlcbiIKLSAgICAgICAgICAgIH0KLSAgIAotICAgICAgICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgICAgICAgIyBEZWZpbmUgcG93ZXIgaW50ZW50IGlmIGl0IGlzIGRlZmluZWQgKGxvdyBwb3dlciBmbG93KQotICAgICAgICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgICAgICAKLSAgICAgICAgICAgIGlmIHtbbGluZGV4IFtzcGxpdCAkdmFycyh2ZXJzaW9uKSAiLiJdICAwXSA8IDE0fSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGX0VESTo6bG9hZF9wb3dlcl9pbnRlbnRdCi0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRl9OT1ZVUzo6bG9hZF9wb3dlcl9pbnRlbnRdCi0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhhY3Rpdml0eV9maWxlKV19IHsKLSAgICMgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgJGhlYWRlcgotICAgIyAgICAgICAgICAgIHNldCBoZWFkZXIgIiIKLSAgICAgICAgICAgICAgIHNldCBjb21tYW5kICJyZWFkQWN0aXZpdHlGaWxlIC1mb3JtYXQgJHZhcnMoYWN0aXZpdHlfZmlsZV9mb3JtYXQpICR2YXJzKGFjdGl2aXR5X2ZpbGUpXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCkscmVhZF9hY3Rpdml0eV9maWxlICRjb21tYW5kXQotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhhY3Rpdml0eV9maWxlKVxuIgotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhhY3Rpdml0eV9maWxlX2Zvcm1hdClcbiIKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhhY3Rpdml0eV9maWxlKVxuIgotICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMoYWN0aXZpdHlfZmlsZV9mb3JtYXQpXG4iCi0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICAgICAgICMgTG9hZCB0aW1pbmcgZW52aXJvbWVudCBiYXNlZCBvbiB0aGUgZmxvdyBzZXR0aW5nIGluIHRoZQotICAgICAgICAgICAgIyBzZXR1cC50Y2wgZmlsZS4gSWYgdGhlIGZsb3cgaXMgbW1tYywgbG9hZCB0aGUgbW1tYyBzZXR1cAotICAgICAgICAgICAgIyBoZXJlIGVsc2UgbG9hZCB0aGUgZGVmYXVsdCB0aW1pbmcgZW52aXJvbm1lbnQKLSAgICAgICAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICMgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiNcbiIKLSAgICMgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgU0VUVElORyBVUCBUSU1JTkcgRU5WSVJPTk1FTlRcbiIKLSAgICMgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiNcbiIKLQotICAgICAgICAgICAgaWYgeyR2YXJzKGZsb3cpID09ICJtbW1jIn0gewotICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgW0ZGX0VESTo6aW5pdGlhbGl6ZV90aW1pbmcgbW1tY10KLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBzZXQgY29tbWFuZCBbRkZfRURJOjppbml0aWFsaXplX3RpbWluZyBtaW5tYXhdCi0gICAgICAgICAgICB9Ci0gICAKLSAgICMgICAgIGZvcmVhY2ggdmFyIFthcnJheSBuYW1lIHZhcnNdIHsKLSAgICMgICAgICAgIGlmIHsoJHZhciAhPSAic3RlcCIpICYmICgkdmFyICE9ICJtb2RlIikgJiYgKCR2YXIgIT0gImlsbSIpICYmIFwKLSAgICMgICAgICAgICAgICAoJHZhciAhPSAiZmxhdm9yIikgJiYgKCR2YXIgIT0gInVzZXJfbW9kZSIpICYmICgkdmFyICE9ICJmbGF0IikgJiYgXAotICAgIyAgICAgICAgICAgICgkdmFyICE9ICJyZXBvcnRfcnVuX3RpbWUiKSAmJiAoJHZhciAhPSAibWFrZWZpbGUiKSAmJiAoJHZhciAhPSAiY29kZWdlbiIpICYmIFwKLSAgICMgICAgICAgICAgICAoJHZhciAhPSAiYmFja3VwX2RhdGEiKSAmJiAoJHZhciAhPSAidmVyYm9zZSIpICYmICgkdmFyICE9ICJmb3JtYXRfbGluZXMiKSAmJiBcCi0gICAjICAgICAgICAgICAgKCR2YXIgIT0gIndhcm5pbmdfY291bnQiKSAmJiAoJHZhciAhPSAiZXJyb3JfY291bnQiKSAmJiAoJHZhciAhPSAicmMiKSAmJiBcCi0gICAjICAgICAgICAgICAgKCR2YXIgIT0gImdlbmVyYXRlX3RyYWNrcyIpICYmICgkdmFyICE9ICJmaXhfaG9sZCIpICYmICgkdmFyICE9ICJob25vcl9waXRjaCIpICYmIFwKLSAgICMgICAgICAgICAgICAoJHZhciAhPSAic2NyaXB0X3BhdGgiKSAmJiAoJHZhciAhPSAiZml4X2hvbGQiKSAmJiAoJHZhciAhPSAiaG9ub3JfcGl0Y2giKSAmJiBcCi0gICAjICAgICAgICAgICAgKCR2YXIgIT0gInN0ZXBzIikgJiYgKCR2YXIgIT0gInNvdXJjZWQiKSAmJiAoJHZhciAhPSAidmVyc2lvbiIpfSB7Ci0gICAjICAgICAgICAgICBzZXQgdmFycygkdmFyKSAiXFxcJHZhcnMoJHZhcikiCi0gICAjICAgICAgICB9Ci0gICAjICAgICB9Ci0KLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxpbml0aWFsaXplX3RpbWluZyAkY29tbWFuZF0KLQotICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKHBvd2VyX2FuYWx5c2lzX3ZpZXcpXSAmJiAoJHZhcnMocG93ZXJfYW5hbHlzaXNfdmlldykgIT0gIiIpfSB7Ci0gICAgICAgICAgICAgICBzZXQgY29tbWFuZCAic2V0X3Bvd2VyX2FuYWx5c2lzX21vZGUgLWFuYWx5c2lzX3ZpZXcgJHZhcnMocG93ZXJfYW5hbHlzaXNfdmlldylcbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxzZXRfcG93ZXJfYW5hbHlzaXNfbW9kZSAkY29tbWFuZF0KLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgaWYgeyEkdmFycyhpbG0pICYmICgkdmFycyhmbG93KSA9PSAibW1tYyIpfSB7Ci0gICAgICAgICAgICAgICBzZXQgY29tbWFuZCBbRkZfRURJOjpkZXJhdGVfdGltaW5nIG1tbWNdCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksZGVyYXRlX3RpbWluZyAkY29tbWFuZF0KLSAgICAgICAgICAgIH0KLSAgIAotICAgICAgICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgICAgICAgIyBMb2FkIHNjYW4gREVGIGlmIGl0IGV4aXN0cwotICAgICAgICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKHNjYW5fZGVmKV19IHsKLSAgICAgICAgICAgICAgIGlmIHtbZmlsZSBleGlzdHMgJHZhcnMoc2Nhbl9kZWYpXX0gewotICAgICAgICAgICAgICAgICAgaWYgeyR2YXJzKHZlcmJvc2UpfSB7Ci0gICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiNcbiIKLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyA8RkY+IExPQURJTkcgU0NBTiBERUYgRklMRVxuIgotICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjXG4iCi0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICBzZXQgY29tbWFuZCAiZGVmSW4gJHZhcnMoc2Nhbl9kZWYpXG4iCi0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksbG9hZF9zY2FuICRjb21tYW5kXQotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhzY2FuX2RlZilcbiIKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhzY2FuX2RlZilcbiIKLSAgICAgICAgICAgIH0KLSAgIAotICAgICAgICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgICAgICAgIyBTcGVjaWZ5IHNwYXJlIGdhdGVzIGZvciBwbGFjZW1lbnQgYW5kIG9wdGltaXphdGlvbiBjb25zaWRlcmF0aW9uOyB0aGlzIGFzc3VtZXMKLSAgICAgICAgICAgICMgdGhlIHNwYXJlIGNlbGxzIGFyZSBpbiB0aGUgbmV0bGlzdC4KLSAgICAgICAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgIAotICAgICAgICAgICAgc2V0IGNvbW1hbmQgIiIKLSAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhzcGFyZV9jZWxscyldfSB7Ci0gICAgICAgICAgICAgICBmb3JlYWNoIHNwYXJlX2NlbGwgJHZhcnMoc3BhcmVfY2VsbHMpIHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJzcGVjaWZ5U3BhcmVHYXRlIC1pbnN0ICRzcGFyZV9jZWxsXG4iCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKHNwYXJlX2NlbGxzKVxuIgotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKHNwYXJlX2NlbGxzKVxuIgotICAgICAgICAgICAgfQotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHNwZWNpZnlfc3BhcmVfZ2F0ZXMgJGNvbW1hbmRdCi0gICAKLSAgICAgICAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICAgICAgICMgTG9hZCB0aGUgcmVjb21tZW5kZWQgY29tbWFuZCBtb2RlIHNldHRpbmdzCi0gICAgICAgICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAgICAgICBpZiB7JHZhcnModmVyYm9zZSl9IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiI1xuIgotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjIERFRklOSU5HIE1PREUgU0VUVElOR1NcbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiI1xuIgotICAgICAgICAgICAgfQotICAgCi0gICAgICAgICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAgICAgICAjIFNldCBkb24ndCB1c2UgY2VsbHM7IGRpc2FibGUgc29tZSAoY2xvY2sgYnVmZmVycywgc3Ryb25nIGJ1ZmZlcnMsIGV0Yy4pLAotICAgICAgICAgICAgIyBlbmFibGUgb3RoZXJzIHRoYXQgbWF5IGhhdmUgImRvbnRfdXNlIHRydWUiIGluIHRoZSBsaWJyYXJ5IChsaWtlIGRlbGF5IGNlbGxzCi0gICAgICAgICAgICAjIGZvciBob2xkIGZpeGluZykKLSAgICAgICAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICAgICAgIHNldCBjb21tYW5kICIiCi0gICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoZG9udF91c2VfbGlzdCldfSB7Ci0gICAgICAgICAgICAgICBmb3JlYWNoIGNlbGwgJHZhcnMoZG9udF91c2VfbGlzdCkgewotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgInNldERvbnRVc2UgJGNlbGwgdHJ1ZVxuIgotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhkb250X3VzZV9saXN0KVxuIgotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKGRvbnRfdXNlX2xpc3QpXG4iCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoZG9udF91c2VfZmlsZSldICYmIFtmaWxlIGV4aXN0cyAkdmFycyhkb250X3VzZV9maWxlKV19IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJzb3VyY2UgJHZhcnMoZG9udF91c2VfZmlsZSlcbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMoZG9udF91c2VfZmlsZSlcbiIKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhkb250X3VzZV9maWxlKVxuIgotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKHVzZV9saXN0KV19IHsKLSAgICAgICAgICAgICAgIGZvcmVhY2ggY2VsbCAkdmFycyh1c2VfbGlzdCkgewotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgInNldERvbnRVc2UgJGNlbGwgZmFsc2VcbiIKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnModXNlX2xpc3QpXG4iCi0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnModXNlX2xpc3QpXG4iCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiB7JGNvbW1hbmQgIT0gIiJ9IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxzZXRfZG9udF91c2UgJGNvbW1hbmRdCi0gICAgICAgICAgICB9Ci0gICAKLSAgICAgICAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICAgICAgICMgU2V0IG1heGltdW0gcm91dGluZyBsYXllcnMKLSAgICAgICAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhtYXhfcm91dGVfbGF5ZXIpXX0gewotICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgInNldE1heFJvdXRlTGF5ZXIgJHZhcnMobWF4X3JvdXRlX2xheWVyKVxuIgotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHNldF9tYXhfcm91dGVfbGF5ZXIgJGNvbW1hbmRdCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKG1heF9yb3V0ZV9sYXllcilcbiIKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhtYXhfcm91dGVfbGF5ZXIpXG4iCi0gICAgICAgICAgICB9Ci0gICAKLSAgICAgICAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICAgICAgICMgU2V0IGRlc2lnbiBtb2RlCi0gICAgICAgICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW2xpbmRleCBbRkZfRURJOjpzZXRfZGVzaWduX21vZGVdIDBdCi0gICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgW2xpbmRleCBbRkZfRURJOjpzZXRfZGVzaWduX21vZGVdIDFdCi0gICAgICAgICAgICBhcHBlbmQgdWNvbW1lbnRzIFtsaW5kZXggW0ZGX0VESTo6c2V0X2Rlc2lnbl9tb2RlXSAyXQotCi0gICAgICAgICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAgICAgICAjIEluc2VydCB3ZWxsdGFwcyBhbmQgcHJlL3Bvc3QgZW5kY2FwcwotICAgICAgICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgICAgICAgaWYgeyhbRkY6OmdldF9ieV9zdWZmaXggdmFycyAid2VsbHRhcHMiXSAhPSAiIikgfHwKLSAgICAgICAgICAgICAgICAoKFtGRjo6Z2V0X2J5X3N1ZmZpeCB2YXJzICJwcmVfZW5kY2FwIl0gIT0gIiIpICYmCi0gICAgICAgICAgICAgICAgIChbRkY6OmdldF9ieV9zdWZmaXggdmFycyAicG9zdF9lbmRjYXAiXSAhPSAiIikpfSB7Ci0gICAgICAgICAgICAgICBzZXQgY29tbWFuZCBbRkZfRURJOjppbnNlcnRfd2VsbHRhcHNfZW5kY2Fwc10KLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxpbnNlcnRfd2VsbHRhcHNfZW5kY2FwcyAkY29tbWFuZF0KLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMod2VsbHRhcHMpXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKHByZV9lbmRjYXApXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKHBvc3RfZW5kY2FwKVxuIgotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKHdlbGx0YXBzKVxuIgotICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMocHJlX2VuZGNhcClcbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKHBvc3RfZW5kY2FwKVxuIgotICAgICAgICAgICAgfQotICAgCi0gICAgICAgICB9IGVsc2UgewotCi0gICAgICAgICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAgICAgICAjIFBhcnRpdGlvbiBpbml0IHN0ZXAKLSAgICAgICAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgIAotICAgICAgICAgICAgc2V0IHB0biBbZmlsZSB0YWlsIFtwd2RdXQotICAgICAgICAgICAgc2V0IHZhcnMoZGVzaWduKSAkcHRuCi0gICAgICAgICAgICBzZXQgc2tpcF9jcGYgZmFsc2UKLSAgICAgICAgICAgIHNldCBza2lwXzE4MDEgZmFsc2UKLSAgICAgICAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICAgICAgIGlmIHtbbHNlYXJjaCAkdmFycyhwYXJ0aXRpb25fbGlzdCkgJHB0bl0gPT0gLTF9IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIgotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjICAgICAgICBUT1AgKCRwdG4pIElNUExFTUVOVEFUSU9OIEZMT1dcbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIgotICAgICAgICAgICAgICAgaWYge1tsaW5kZXggW3NwbGl0ICR2YXJzKHZlcnNpb24pICIuIl0gIDBdIDw9IDEwfSB7Ci0gICAgICAgICAgICAgICAgICBzZXQgY29tbWFuZCAibG9hZENvbmZpZyAkcHRuLmNvbmYgMFxuIgotICAgICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKHNhdmVfaWxtX25vbl9zZGNfZmlsZSldfSB7Ci0gICAgICAgICAgICAgICAgICAgICBzZXQgdmFycyhpbG1fbm9uX3NkY19maWxlKSAkdmFycyhzYXZlX2lsbV9ub25fc2RjX2ZpbGUpCi0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiZ2xvYmFsIHJkYV9JbnB1dFxuIgotICAgICAgICAgICAgICAgICAgZm9yZWFjaCBwYXJ0ICR2YXJzKHBhcnRpdGlvbl9saXN0KSB7Ci0gICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJsYXBwZW5kIHJkYV9JbnB1dCh1aV9sZWZmaWxlKSAuLi8kcGFydC8kcGFydC5hbnRlbm5hLmxlZlxuIgotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgImNvbW1pdENvbmZpZ1xuIgotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLGxvYWRfY29uZmlnICRjb21tYW5kXQotICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgIGlmIHtbc3RyaW5nIGNvbXBhcmUgJHZhcnMoZGJzX2Zvcm1hdCkgIm9hIl09PTB9IHsKLSAgICAgICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgInJlc3RvcmVEZXNpZ24gLWNlbGxWaWV3IFxbbGlzdCAkdmFycyhvYV9wYXJ0aXRpb25fbGliKSAkcHRuIGxheW91dFxdXG4iCi0gICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgaWYgeyR2YXJzKHVzZV9mbGV4bW9kZWxzKX0gewotICAgICAgICAgICAgICAgICAgICAgICAgaWYgeyR2YXJzKGZsZXhtb2RlbF9hc19wdG4pfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICBpZiB7W2xpbmRleCBbc3BsaXQgJHZhcnModmVyc2lvbikgIi4iXSAgMF0gPCAxNn0gewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgInJlc3RvcmVEZXNpZ24gJHtwdG59X3Byb3RvX2Vjby5lbmMuZGF0ICRwdG5cbiIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXQgY29tbWFuZCAicmVzdG9yZURlc2lnbiAke3B0bn1fcHJvdG9fZnVsbC5lbmMuZGF0ICRwdG5cbiIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICBzZXQgY29tbWFuZCAicmVzdG9yZURlc2lnbiAuICRwdG5cbiIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJmZl9yZXBsYWNlX2ZsZXhtb2RlbF93aXRoX2Z1bGxfbmV0bGlzdFxuIgotICAgICAgICAgICAgICAgICAgICAgICAgfSAKLSAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICAgIHNldCBjb21tYW5kICJyZXN0b3JlRGVzaWduIC4gJHB0blxuIgotICAgICAgICAgICAgICAgICAgICAgIH0gCi0gICAgICAgICAgICAgICAgICAgICAgaWYgeyR2YXJzKGNhcHR1cmVfbWV0cmljcyl9IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICBpZiB7W2xpbmRleCBbc3BsaXQgJHZhcnModmVyc2lvbikgIi4iXSAgMF0gPiAxM30gewotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAidW06OmVuYWJsZV9tZXRyaWNzIC1vblxuIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAidW06OnB1c2hfc25hcHNob3Rfc3RhY2tcbiIKLSAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgfQotIyAgICAgICAgICAgICAgIGZvcmVhY2ggcGFydCAkdmFycyhwYXJ0aXRpb25fbGlzdCkgewotIyAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgImlmIHtcW2ZpbGUgZXhpc3RzIC4uLyRwYXJ0LyRwYXJ0LmFudGVubmEubGVmXF19IHtcbiIKLSMgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJsb2FkTGVmRmlsZSAuLi8kcGFydC8kcGFydC5hbnRlbm5hLmxlZlxuIgotIyAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIn1cbiIKLSMgICAgICAgICAgICAgICB9Ci0jICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgInNvdXJjZSAkcHRuLmdsb2JhbHNcbiIKLSMgICAgICAgICAgICAgICBmb3JlYWNoIHBhcnQgJHZhcnMocGFydGl0aW9uX2xpc3QpIHsKLSMgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJsYXBwZW5kIGluaXRfbGVmX2ZpbGUgLi4vJHBhcnQvJHBhcnQuYW50ZW5uYS5sZWZcbiIKLSMgICAgICAgICAgICAgICB9Ci0jICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgImluaXRfZGVzaWduXG4iCi0gICAgICAgICAgICAgICAgICB9IAotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHJlc3RvcmVfZGVzaWduICRjb21tYW5kXQotICAgICAgICAgICAgICAgICAgc2V0IHJlc3RvcmVfZGVzaWduIHRydWUKLQotICAgICAgICAgICAgICAgICAgaWYgeyR2YXJzKHRvcCl9IHsKLSAgICAgICAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyh2aWV3X2RlZmluaXRpb25fdGNsKV19IHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHNldCBtbW1jX2ZpbGUgW2ZpbGUgbm9ybWFsaXplICR2YXJzKHZpZXdfZGVmaW5pdGlvbl90Y2wpXQotICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHNldCBtbW1jX2ZpbGUgW2ZpbGUgbm9ybWFsaXplICR2YXJzKHNjcmlwdF9kaXIpL3ZpZXdfZGVmaW5pdGlvbi50Y2xdCi0gICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICBpZiB7JHZhcnMoZW5hYmxlX2ZsZXhpbG0pfSB7IAotICAgICAgICAgICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgIiIKLSAgICAgICAgICAgICAgICAgICAgICAgIHNldCBkaXJzICIiCi0gICAgICAgICAgICAgICAgICAgICAgICBmb3JlYWNoIGJsb2NrICR2YXJzKHBhcnRpdGlvbl9saXN0KSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgZGlycyAiXFxcbiAgIC1mbGV4X2lsbSB7JHtibG9ja30gLi4vJHtibG9ja30vJHtibG9ja30uZmxleGlsbX0iCi0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICBzZXQgY29tbWFuZCAiY29tbWl0X21vZHVsZV9tb2RlbCAkZGlyc1xcXG4iCi0gICAgICAgICAgICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoY3BmX2ZpbGUpXX0gewotICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAgIC1tbW1jX2ZpbGUgJHZhcnMobW1tY19maWxlKVxcXG4iCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiICAgLWNwZl9maWxlICR2YXJzKGNwZl9maWxlKVxuIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0IHNraXBfY3BmIHRydWUgIAotICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlaWYge1tpbmZvIGV4aXN0cyB2YXJzKGllZWUxODAxX2ZpbGUpXX0gewotICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAgIC1tbW1jX2ZpbGUgJHZhcnMobW1tY19maWxlKVxcXG4iCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiICAgLTE4MDEgJHZhcnMoaWVlZTE4MDFfZmlsZSlcbiIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldCBza2lwXzE4MDEgdHJ1ZSAgCi0gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAgIC1tbW1jX2ZpbGUgJHZhcnMobW1tY19maWxlKVxuIgotICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLGNvbW1pdF9tb2R1bGVfbW9kZWwgJGNvbW1hbmRdCi0gICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgUEFSVElUSU9OICgkcHRuKSBJTVBMRU1FTlRBVElPTiBGTE9XXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiIKLSAgICAgICAgICAgICAgIGlmIHtbbGluZGV4IFtzcGxpdCAkdmFycyh2ZXJzaW9uKSAiLiJdICAwXSA8PSAxMH0gewotICAgICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgImxvYWRDb25maWcgJHB0bi5jb25mXG4iCi0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksbG9hZF9jb25maWcgJGNvbW1hbmRdCi0gICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgaWYgeyR2YXJzKHVzZV9mbGV4bW9kZWxzKX0gIHsKLSAgICAgICAgICAgICAgICAgICAgIGlmIHskdmFycyhmbGV4bW9kZWxfYXNfcHRuKX0gewotICAgICAgICAgICAgICAgICAgICAgICAgaWYge1tsaW5kZXggW3NwbGl0ICR2YXJzKHZlcnNpb24pICIuIl0gIDBdIDwgMTZ9IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldCBjb21tYW5kICJyZXN0b3JlRGVzaWduICR7cHRufV9wcm90b19lY28uZW5jLmRhdCAkcHRuXG4iCi0gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgInJlc3RvcmVEZXNpZ24gJHtwdG59X3Byb3RvX2Z1bGwuZW5jLmRhdCAkcHRuXG4iCi0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeyAKLSAgICAgICAgICAgICAgICAgICAgICAgIHNldCBjb21tYW5kICJyZXN0b3JlRGVzaWduIC4gJHB0blxuIgotICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgImZmX3JlcGxhY2VfZmxleG1vZGVsX3dpdGhfZnVsbF9uZXRsaXN0XG4iCi0gICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgaWYge1tzdHJpbmcgY29tcGFyZSAkdmFycyhkYnNfZm9ybWF0KSAib2EiXT09MH0gewotICAgICAgICAgICAgICAgICAgICAgICBzZXQgY29tbWFuZCAicmVzdG9yZURlc2lnbiAtY2VsbFZpZXcgXFtsaXN0ICR2YXJzKG9hX3BhcnRpdGlvbl9saWIpICRwdG4gbGF5b3V0XF1cbiIKLSAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBzZXQgY29tbWFuZCAicmVzdG9yZURlc2lnbiAuICRwdG5cbiIKLSAgICMgICAgICAgICAgICAgICAgICBzZXQgY29tbWFuZCAic291cmNlICRwdG4uZ2xvYmFsc1xuIgotICAgIyAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJpbml0X2Rlc2lnblxuIgotICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHJlc3RvcmVfZGVzaWduICRjb21tYW5kXQotICAgICAgICAgICAgICAgICAgc2V0IHJlc3RvcmVfZGVzaWduIHRydWUKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgaWYgeyR2YXJzKGNhcHR1cmVfbWV0cmljcyl9IHsKLSAgICAgICAgICAgICAgIGlmIHtbbGluZGV4IFtzcGxpdCAkdmFycyh2ZXJzaW9uKSAiLiJdICAwXSA+IDEzfSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgInVtOjplbmFibGVfbWV0cmljcyAtb25cbiIKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAidW06OnB1c2hfc25hcHNob3Rfc3RhY2tcbiIKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6c291cmNlX3BsdWcgYWx3YXlzX3NvdXJjZV90Y2xdCi0gICAKLSAgICAgICAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICAgICAgICMgTG9hZCBmbG9vcnBsYW4gZmlsZSBvciBERUY7IHVzZSBkZWZJbiB0byBsb2FkIGEgREVGIGZpbGUKLSAgICAgICAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICAgICAgIGlmIHtbc3RyaW5nIGNvbXBhcmUgJHZhcnMoZGJzX2Zvcm1hdCkgImZlIl09PTB9IHsKLSAgICAgICAgICAgICAgIGlmIHshW2luZm8gZXhpc3RzIHJlc3RvcmVfZGVzaWduXX0gewotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJsb2FkRlBsYW4gJHB0bi5mcFxuIgotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJzb3VyY2UgJHB0bi5tb2RlXG4iCi0gICAgICAgICAgICAgICAgICBpZiB7W2ZpbGUgZXhpc3RzICRwdG4uc2Nhbi5kZWZdfSB7Ci0gICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIlB1dHMgXCI8RkY+IExPQURJTkcgU0NBTiBERUYgRklMRSAkcHRuLnNjYW4uZGVmXCJcbiIKLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiZGVmSW4gJHB0bi5zY2FuLmRlZlxuIgotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgCi0gICAgICAgICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAgICAgICAjIE92ZXJyaWRlIG1heGltdW0gcm91dGluZyBsYXllciBpZiBkZWZpbmVkIGZvciB0aGUgcGFydGl0aW9uCi0gICAgICAgICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJHB0bixtYXhfcm91dGVfbGF5ZXIpXX0gewotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJzZXRNYXhSb3V0ZUxheWVyICR2YXJzKCRwdG4sbWF4X3JvdXRlX2xheWVyKVxuIgotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhtYXhfcm91dGVfbGF5ZXIpXG4iCi0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMobWF4X3JvdXRlX2xheWVyKVxuIgotICAgICAgICAgICAgfQotICAgCi0gICAgICAgICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAgICAgICAjIFNwZWNpZnkgdGhlIElMTSBtb2RlbHMgZm9yIHRoZSB0b3AgcGFydGl0aW9uCi0gICAgICAgICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAgICAgICBpZiAkdmFycyh0b3ApIHsKLSAgICAgICAgICAgICAgIGlmIHshJHZhcnMoZW5hYmxlX2ZsZXhpbG0pfSB7Ci0gICAgICAgICAgICAgICAgICBzZXQgY29tbWFuZCAiIgotICAgICAgICAgICAgICAgICAgZm9yZWFjaCBwYXJ0ICR2YXJzKHBhcnRpdGlvbl9saXN0KSB7Ci0gICAgICAgICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJHBhcnQsaWxtX2RpcildICYmICgkdmFycyhjb2RlZ2VuKSB8fCBbZmlsZSBpc2RpcmVjdG9yeSAkdmFycygkcGFydCxpbG1fZGlyKV0pfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiB7W2xpbmRleCBbc3BsaXQgJHZhcnModmVyc2lvbikgIi4iXSAgMF0gPD0gMTB9IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJzcGVjaWZ5SWxtIC1jZWxsICRwYXJ0IC1kaXIgJHZhcnMoJHBhcnQsaWxtX2RpcilcbiIKLSAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgIGlmIHtbc3RyaW5nIGNvbXBhcmUgLW5vY2FzZSAkdmFycyhkYnNfZm9ybWF0KSAib2EiXT09MH0gewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgInNwZWNpZnlJbG0gLWNlbGwgJHBhcnRcbiIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAic3BlY2lmeUlsbSAtY2VsbCAkcGFydCAtZGlyICR2YXJzKCRwYXJ0LGlsbV9kaXIpXG4iCi0gICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICAgaWYge1tsaW5kZXggW3NwbGl0ICR2YXJzKHZlcnNpb24pICIuIl0gIDBdIDw9IDEwfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAic3BlY2lmeUlsbSAtY2VsbCAkcGFydCAtZGlyIC4uLyRwYXJ0LyRwYXJ0LmlsbVxuIgotICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgaWYge1tzdHJpbmcgY29tcGFyZSAtbm9jYXNlICR2YXJzKGRic19mb3JtYXQpICJvYSJdPT0wfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAic3BlY2lmeUlsbSAtY2VsbCAkcGFydFxuIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJzcGVjaWZ5SWxtIC1jZWxsICRwYXJ0IC1kaXIgLi4vJHBhcnQvJHBhcnQuaWxtXG4iCi0gICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksc2V0SWxtTW9kZSAic2V0SWxtTW9kZSAta2VlcEZsYXR0ZW4gdHJ1ZVxuIl0KLSAgICAgICAgICAgICAgICAgIGlmIHskY29tbWFuZCAhPSAiIn0gewotICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHNwZWNpZnlfaWxtICRjb21tYW5kXQotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgIiIKLSAgICAgICAgICAgICAgICAgIGZvcmVhY2ggcGFydCAkdmFycyhwYXJ0aXRpb25fbGlzdCkgewotICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiaWYge1xbZmlsZSBleGlzdHMgLi4vJHBhcnQvJHBhcnQuYW50ZW5uYS5sZWZcXX0ge1xuIgotICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiICAgbG9hZExlZkZpbGUgLi4vJHBhcnQvJHBhcnQuYW50ZW5uYS5sZWZcbiIKLSAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIn1cbiIKLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIGlmIHskY29tbWFuZCAhPSAiIn0gewotICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLGxvYWRfbGVmX2ZpbGUgJGNvbW1hbmRdCi0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICBpZiB7JHZhcnMoaWxtKSAmJiBbaW5mbyBleGlzdHMgdmFycyhpbG1fbm9uX3NkY19maWxlKV19IHsKLSAgICAgICAgICAgICAgICAgICAgIGlmIHtbZmlsZSBleGlzdHMgJHZhcnMoaWxtX25vbl9zZGNfZmlsZSldfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiB7W2xpbmRleCBbc3BsaXQgJHZhcnModmVyc2lvbikgIi4iXSAgMF0gPD0gMTB9IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldCBjb21tYW5kICJsb2FkVGltaW5nQ29uIC1pbG1Ob25TZGNGaWxlICR2YXJzKGlsbV9ub25fc2RjX2ZpbGUpXG4iCi0gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldCBjb21tYW5kICJzZXRJbG1Ob25TZGNDb25zdHJhaW50RmlsZSAkdmFycyhpbG1fbm9uX3NkY19maWxlKVxuIgotICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLGxvYWRfaWxtX25vbl9zZGNfZmlsZSAkY29tbWFuZF0KLSAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIHNldCBjb21tYW5kIFtGRl9FREk6OmluaXRpYWxpemVfdGltaW5nIG1tbWNdCi0gICAjICAgICAgICAgICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycyhjcGZfZmlsZSldfSB7Ci0gICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksaW5pdGlhbGl6ZV90aW1pbmcgJGNvbW1hbmRdCi0gICAjICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICMgICAgICAgICAgICAgICAgICBzZXQgZGVmZXJfY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksaW5pdGlhbGl6ZV90aW1pbmcgJGNvbW1hbmRdIAotICAgIyAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICAgICAgICMgTG9hZCBwb3dlciBpbnRlbnQgKGlmIGl0IGlzIGRlZmluZWQpCi0gICAgICAgICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAgICAgICBpZiB7KFtpbmZvIGV4aXN0cyB2YXJzKGNwZl9maWxlKV0pICYmICgkdmFycyhjcGZfZmlsZSkgIT0gIiIpICYmICEkc2tpcF9jcGZ9IHsKLSAgICAgICAgICAgICAgIHNldCBzYXZlICR2YXJzKGNwZl9maWxlKQotICAgICAgICAgICAgICAgaWYgeyEkdmFycyh0b3ApfSB7Ci0gICAgICAgICAgICAgICAgICBzZXQgdmFycyhjcGZfZmlsZSkgIiRwdG4uY3BmIgotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgaWYge1tsaW5kZXggW3NwbGl0ICR2YXJzKHZlcnNpb24pICIuIl0gIDBdIDwgMTR9IHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkZfRURJOjpsb2FkX3Bvd2VyX2ludGVudF0KLSAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGX05PVlVTOjpsb2FkX3Bvd2VyX2ludGVudF0KLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIHNldCB2YXJzKGNwZl9maWxlKSAkc2F2ZSAKLSAgICAgICAgICAgIH0gZWxzZWlmIHtbaW5mbyBleGlzdHMgdmFycyhpZWVlMTgwMV9maWxlKV0gJiYgISRza2lwXzE4MDF9IHsKLSAgICAgICAgICAgICAgIHNldCBzYXZlICR2YXJzKGllZWUxODAxX2ZpbGUpCi0gICAgICAgICAgICAgICBpZiB7ISR2YXJzKHRvcCl9IHsKLSMgICAgICAgICAgICAgICAgICBzZXQgdmFycyhpZWVlMTgwMV9maWxlKSAiJHB0bi5jcGYiCi0gICAgICAgICAgICAgICAgICBzZXQgdmFycyhjcGZfZmlsZSkgIiRwdG4uY3BmZGIiCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICBpZiB7W2xpbmRleCBbc3BsaXQgJHZhcnModmVyc2lvbikgIi4iXSAgMF0gPCAxNH0gewotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRl9FREk6OmxvYWRfcG93ZXJfaW50ZW50XQotICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkZfTk9WVVM6OmxvYWRfcG93ZXJfaW50ZW50XQotICAgICAgICAgICAgICAgfQotIyAgICAgICAgICAgICAgIHNldCBjb21tYW5kICJyZWFkX3Bvd2VyX2ludGVudCAkdmFycyhpZWVlMTgwMV9maWxlKSAtMTgwMVxuIgotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKGNwZl9maWxlKVxuIgotICAgICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMoaWVlZTE4MDFfZmlsZSlcbiIKLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0KLSAgICAgIH0KLQotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgIyBMb2FkIHBvc3QtaW5pdGlhbGl6YXRpb24gcGx1Zy1pbiBzY3JpcHQKLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OnNvdXJjZV9wbHVnIHBvc3RfaW5pdF90Y2wgMF0KLQotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgIyBDaGVjayBwcmUtcGxhY2UgdGltaW5nIChhbmQgZ2VuZXJhdGUgdGltaW5nIGdyYXBoIGZvciBwbGFjZW1lbnQpCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICBpZiB7KCR2YXJzKHN0ZXApICE9ICJtb2RlbF9nZW4iKSAmJiAoJHZhcnMoc3RlcCkgIT0gInBhcnRpdGlvbl9wbGFjZSIpICYmICgkdmFycyhzdGVwKSAhPSAicHJvdG90eXBlIil9IHsKLSAgICAgICAgIGlmIHshW2luZm8gZXhpc3RzIHZhcnModGltZV9kZXNpZ25fb3B0aW9ucyxzZXR1cCldfSB7Ci0gICAgICAgICAgICBzZXQgY29tbWFuZCAidGltZURlc2lnbiAtcHJlcGxhY2UgLXByZWZpeCBwcmVwbGFjZSAtb3V0RGlyICR2YXJzKHJwdF9kaXIpXG4iCi0gICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgc2V0IGNvbW1hbmQgW2Zvcm1hdCAidGltZURlc2lnbiAtcHJlcGxhY2UgLXByZWZpeCBwcmVwbGFjZSAtb3V0RGlyICR2YXJzKHJwdF9kaXIpICVzXG4iICR2YXJzKHRpbWVfZGVzaWduX29wdGlvbnMsc2V0dXApXQotICAgICAgICAgfQotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHRpbWVfZGVzaWduICRjb21tYW5kXQotICAgICAgfQotCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAjIENoZWNrIGRhdGEgc2V0dXAgKHNhbml0eSBjaGVjaykKLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgIHNldCBjb21tYW5kICJjaGVja0Rlc2lnbiAtYWxsXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksY2hlY2tfZGVzaWduICRjb21tYW5kXQotCi0gICAgICBpZiB7ISR2YXJzKGlsbSl9IHsKLSAgICAgICAgIHNldCBjb21tYW5kICJjaGVja190aW1pbmdcbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxjaGVja190aW1pbmcgJGNvbW1hbmRdCi0gICAgICB9Ci0KLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICMgR2VuZXJhdGUgcmVwb3J0cwotICAgICAgIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotICAgICAgIyBSZXBvcnQgcG93ZXIgZG9tYWluIGZvciBsZXZlbC1zaGlmdGVycywgaXNvbGF0aW9uIGFuZCBwZyBuZXRzCi0gICAgICAjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gICAgICBpZiB7W0ZGOjppc19scF9mbG93XSAmJiAoW2luZm8gZXhpc3RzIHZhcnMocG93ZXJfZG9tYWlucyldICYmIChbbGxlbmd0aCAkdmFycyhwb3dlcl9kb21haW5zKV0gPiAxKSl9IHsKLSMgICAgICAgICBzZXQgY29tbWFuZCAic2V0IGRvbWFpbnMgXFtGRl9FREk6OmdldF9wb3dlcl9kb21haW5zX2NvZGVcXVxuIgotICAgICAgICAgc2V0IGNvbW1hbmQgW0ZGX0VESTo6Z2V0X3Bvd2VyX2RvbWFpbnNfY29kZV0KLQotICAgICAgICAgYXBwZW5kIGNvbW1hbmQgImZvcmVhY2ggZG9tYWluIFwkZG9tYWlucyB7XG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZCAiICAgc2V0IGRvbWFpbl9maWxlIFxbcmVnc3ViIC1hbGwge1xbXF1cWzw+fFxcLz8qOlxdfSBcJGRvbWFpbiBfXF1cbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgICByZXBvcnRQb3dlckRvbWFpbiAtcG93ZXJEb21haW4gXCRkb21haW4gLWZpbGUgJHZhcnMocnB0X2RpcikvXCR7ZG9tYWluX2ZpbGV9LnJwdCAtc2hpZnRlciAtaXNvSW5zdCAtcGdOZXRcbiIKLQotICAgICAgIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotICAgICAgIyBSZXBvcnQgbGlicmFyeSBiaW5kaW5nIGZvciBwb3dlciBkb21haW5zCi0gICAgICAjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gICAgICAgICBhcHBlbmQgY29tbWFuZCAiICAgZm9yZWFjaCBhbmFseXNpc192aWV3IFxbYWxsX3NldHVwX2FuYWx5c2lzX3ZpZXdzXF0ge1xuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAgICAgIHNldF9kZWZhdWx0X3ZpZXcgLXNldHVwIFwkYW5hbHlzaXNfdmlld1xuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAgICAgIHJlcG9ydFBvd2VyRG9tYWluIC1wb3dlckRvbWFpbiBcJGRvbWFpbiAtZmlsZSAkdmFycyhycHRfZGlyKS9cJHtkb21haW5fZmlsZX1fXCRhbmFseXNpc192aWV3LnJwdCAtYmluZExpYlxuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAgIH1cbiIKLQotICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAgICAgc2V0QW5hbHlzaXNNb2RlIC1jaGVja1R5cGUgaG9sZFxuIgotCi0gICAgICAgICBhcHBlbmQgY29tbWFuZCAiICAgZm9yZWFjaCBhbmFseXNpc192aWV3IFxbYWxsX2hvbGRfYW5hbHlzaXNfdmlld3NcXSB7XG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZCAiICAgICAgc2V0X2RlZmF1bHRfdmlldyAtaG9sZCBcJGFuYWx5c2lzX3ZpZXdcbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgICAgICByZXBvcnRQb3dlckRvbWFpbiAtcG93ZXJEb21haW4gXCRkb21haW4gLWZpbGUgJHZhcnMocnB0X2RpcikvXCR7ZG9tYWluX2ZpbGV9X1wkYW5hbHlzaXNfdmlldy5ycHQgLWJpbmRMaWJcbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgICB9XG4iCi0KLSAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgICBzZXRBbmFseXNpc01vZGUgLWNoZWNrVHlwZSBzZXR1cFxuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIn1cbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxyZXBvcnRfcG93ZXJfZG9tYWlucyAkY29tbWFuZF0KLSAgICAgICAgIGlmIHskdmFycyhmbG93KSA9PSJtbW1jIn0gewotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJzZXRfZGVmYXVsdF92aWV3IC1zZXR1cCAkdmFycyhkZWZhdWx0X3NldHVwX3ZpZXcpIC1ob2xkICR2YXJzKGRlZmF1bHRfaG9sZF92aWV3KVxuIgotICAgICAgICAgfQotICAgICAgfQotCi0gICAgICBpZiB7W2luZm8gZXhpc3RzIGNvbW1lbnRzXX0gewotICAgICAgICAgaWYgeyRjb21tZW50cyA9PSAiIn0gewotICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGNvbW1lbnRzKV19IHsKLSAgICAgICAgICAgICAgIHVuc2V0IHZhcnMoY29tbWVudHMpCi0gICAgICAgICAgICB9Ci0gICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgc2V0IHZhcnMoY29tbWVudHMpICRjb21tZW50cwotICAgICAgICAgfQotICAgICAgfQotICAgICAgaWYge1tpbmZvIGV4aXN0cyB1Y29tbWVudHNdfSB7Ci0gICAgICAgICBpZiB7JHVjb21tZW50cyA9PSAiIn0gewotICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKHVjb21tZW50cyldfSB7Ci0gICAgICAgICAgICAgICB1bnNldCB2YXJzKHVjb21tZW50cykKLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBzZXQgdmFycyh1Y29tbWVudHMpICR1Y29tbWVudHMKLSAgICAgICAgIH0KLSAgICAgIH0KLSAgICAgIHNldCBmY29tbWFuZHMgW0ZGX0VESTo6aW5zZXJ0X2NvbW1lbnRzXSAKLSAgICAgIGFwcGVuZCBmY29tbWFuZHMgJGNvbW1hbmRzCi0KLSAgICAgIGlmIHskdmFycyhjb2RlZ2VuKX0gewotICAgICAgICAgcmV0dXJuICRmY29tbWFuZHMKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgdXBsZXZlbCAjMCBldmFsICRjb21tYW5kcwotICAgICAgfQotCi0gICB9Ci0KLSAgIHByb2MgcnVuX3BsYWNlIHt7Zm9ybWF0IDF9fSB7Ci0KLSAgICAgIGdsb2JhbCB2YXJzCi0gICAgICBnbG9iYWwgZW52Ci0gICAgICBnbG9iYWwgZXJyb3JzCi0KLSAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhwYXJlbnQpXSAmJiAoJHZhcnMocGFyZW50KSA9PSAicmMiKX0gewotICAgICAgICAgc2V0IHZhcnMoc3RlcCkgcmNwCi0gICAgICB9IGVsc2UgewotICAgICAgICAgaWYgeyR2YXJzKHN0ZXApICE9ICJwYXJ0aXRpb25fcGxhY2UifSB7Ci0gICAgICAgICAgICBzZXQgdmFycyhzdGVwKSBwbGFjZQotICAgICAgICAgfQotICAgICAgfQotICAgICAgc2V0IGNvbW1hbmRzICIiCi0jICAgICAgYXBwZW5kIGNvbW1hbmRzICJzZXQgdmFycyhzdGVwKSAkdmFycyhzdGVwKVxuIgotCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAjIEluaXRpYWxpemUgc3RlcCAuLi4KLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgIHNldCBjb21tYW5kIFtGRl9FREk6OmluaXRpYWxpemVfc3RlcCBwbGFjZV0KLSAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkZfRURJOjppbnNlcnRfY29tbWVudHNdIAotICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLGluaXRpYWxpemVfc3RlcCAkY29tbWFuZF0KLQotICAgICAgYXBwZW5kIGNvbW1hbmRzICJQdXRzIFwiPEZGPiBSVU5OSU5HIFBMQUNFTUVOVCAuLi5cIlxuIgotCi0gICAgICBpZiB7JHZhcnModmVyYm9zZSl9IHsKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiI1xuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjIFJVTk5JTkcgUExBQ0VNRU5UXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiNcbiIKLSAgICAgIH0KLQotICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKHBhcnRpdGlvbl9saXN0KV0gJiYgKCR2YXJzKHN0ZXApICE9ICJwYXJ0aXRpb25fcGxhY2UiKSAmJiBcCi0gICAgICAgICAgKChbbHNlYXJjaCAkdmFycyhwYXJ0aXRpb25fbGlzdCkgJHZhcnMoZGVzaWduKV0gPT0gLTEpICYmICR2YXJzKGVuYWJsZV9mbGV4aWxtKSl9IHsKLSAgICAgICAgIHNldCBjb21tYW5kICIiCi0gICAgICAgICBhcHBlbmQgY29tbWFuZCAic2V0SGllck1vZGUgLW9wdFN0YWdlIHByZUNUU1xuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHNldF9oaWVyX21vZGUgJGNvbW1hbmRdCi0gICAgICAgICAgICAKLSAgICAgICAgIHNldCBjb21tYW5kICIiCi0gICAgICAgICBmb3JlYWNoIGJsb2NrICR2YXJzKHBhcnRpdGlvbl9saXN0KSB7Ci0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAic2V0UHRuUGluU3RhdHVzIC1jZWxsICRibG9jayAtcGluICogLXN0YXR1cyB1bnBsYWNlZFxuIgotICAgICAgICAgfQotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHNldF9wdG5fcGluX3N0YXR1cyAkY29tbWFuZF0KLQotICAgICAgICAgc2V0IGNvbW1hbmQgIiIKLSAgICAgICAgIGlmIHtbbGluZGV4IFtzcGxpdCAkdmFycyh2ZXJzaW9uKSAiLiJdICAwXSA8IDE2fSB7Ci0gICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJzZXRUcmlhbFJvdXRlTW9kZSAtaG9ub3JQaW4gZmFsc2UgLWhhbmRsZVBhcnRpdGlvbkNvbXBsZXggdHJ1ZVxuIgotICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksc2V0X3RyaWFsX3JvdXRlX21vZGUxICRjb21tYW5kXQotICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgInNldFJvdXRlTW9kZSAtZWFybHlHbG9iYWxSb3V0ZVBhcnRpdGlvbkhvbm9yRmVuY2UgLiAtZWFybHlHbG9iYWxSb3V0ZVBhcnRpdGlvbkhvbm9yUGluIHt9XG4iCi0gICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxzZXRfcm91dGVfbW9kZTEgJGNvbW1hbmRdCi0gICAgICAgICB9Ci0gICAgICAgICAKLSAgICAgICAgIHNldCBjb21tYW5kICIiCi0gICAgICAgICBhcHBlbmQgY29tbWFuZCAic2V0T3B0TW9kZSAtaGFuZGxlUGFydGl0aW9uQ29tcGxleCB0cnVlXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksc2V0X29wdF9tb2RlICRjb21tYW5kXQotICAgICAgICAgCi0gICAgICB9Ci0KLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICMgTG9hZCBvcHRpb25hbCBwcmUgcGxhY2VtZW50IGZpbGUgKHBsdWctaW4pCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0KLSAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OnNvdXJjZV9wbHVnIHByZV9wbGFjZV90Y2xdCi0KLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICMgUnVuIHN0YW5kYXJkIGNlbGwgcGxhY2VtZW50IG9yIGxvYWQgcGxhY2VtZW50IHBsdWctaW4KLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLQotICAgICAgc2V0IGNvbW1hbmQgIiIKLSAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhwbGFjZV90Y2wpXX0gewotICAgICAgICAgIGlmIHtbZmlsZSBleGlzdHMgJHZhcnMocGxhY2VfdGNsKV19IHsKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kIFtGRjo6c291cmNlX3BsdWcgcGxhY2VfdGNsXQotICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBzZXQgZXJyb3JzKCR2YXJzKGVycm9yX2NvdW50KSkgIlBsdWctaW4gdmFycyhwbGFjZV90Y2wpIGRlZmluZWQgYnV0IHRoZSBmaWxlIGRvZXMgbm90IGV4aXN0IgotICAgICAgICAgICAgaW5jciB2YXJzKGVycm9yX2NvdW50KQotIyAgICAgICAgICAgIHNldCB2YXJzKGFib3J0KSAxCi0gICAgICAgICAgfQotICAgICAgfSBlbHNlIHsKLSAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhzZHBfZmlsZXMpXX0gewotICAgICAgICAgICAgZm9yZWFjaCBmaWxlICR2YXJzKHNkcF9maWxlcykgewotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiNyZWFkU2RwRmlsZSAtZmlsZSAkZmlsZSAtaGllclBhdGggPGluc3RhbmNlPiAtb3JpZ2luIDx4IHk+IC1sZWZ0T3Zlckdyb3VwIDx0cnVlIHwgZmFsc2U+XG4iCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiI3BsYW5EZXNpZ24gLXVzZVNkcEdyb3VwXG4iCi0gICAgICAgICB9Ci0KLSAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhwYXJlbnQpXSAmJiAoJHZhcnMocGFyZW50KSA9PSAicmMiKX0gewotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgInBsYWNlRGVzaWduIFxuIgotICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIGlmIHskdmFycyhwbGFjZV9vcHRfZGVzaWduKSAmJiAoJHZhcnMoc3RlcCkgIT0gInBhcnRpdGlvbl9wbGFjZSIpfSB7Ci0jICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGhpZXIpXX0gewotIyAgICAgICAgICAgICAgICAgIGlmIHsoJHZhcnModG9wKSAmJiAkdmFycyhlbmFibGVfZmxleGlsbSkpfSB7Ci0jICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgInBsYWNlRGVzaWduICIKLSMgICAgICAgICAgICAgICAgICAgICBpZiB7W2xpbmRleCBbc3BsaXQgJHZhcnModmVyc2lvbikgIi4iXSAgMF0gPCAxM30gewotIyAgICAgICAgICAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhpbl9wbGFjZV9vcHQpXSAmJiAkdmFycyhpbl9wbGFjZV9vcHQpfSB7Ci0jICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAtaW5QbGFjZU9wdCIKLSMgICAgICAgICAgICAgICAgICAgICAgICB9Ci0jICAgICAgICAgICAgICAgICAgICAgfQotIyAgICAgICAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhub19wcmVfcGxhY2Vfb3B0KV0gJiYgJHZhcnMobm9fcHJlX3BsYWNlX29wdCl9IHsKLSMgICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiIC1ub1ByZVBsYWNlT3B0IgotIyAgICAgICAgICAgICAgICAgICAgIH0KLSMgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiXG4iCi0jICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSMgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAicGxhY2Vfb3B0X2Rlc2lnbiAtb3V0X2RpciAkdmFycyhycHRfZGlyKSAtcHJlZml4ICR2YXJzKHN0ZXApXG4iCi0jICAgICAgICAgICAgICAgICAgfQotIyAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAicGxhY2Vfb3B0X2Rlc2lnbiAtb3V0X2RpciAkdmFycyhycHRfZGlyKSAtcHJlZml4ICR2YXJzKHN0ZXApXG4iCi0jICAgICAgICAgICAgICAgfQotCi0gICAgICAgICAgICB9IGVsc2UgeyAKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJwbGFjZURlc2lnbiAiCi0gICAgICAgICAgICAgICBpZiB7W2xpbmRleCBbc3BsaXQgJHZhcnModmVyc2lvbikgIi4iXSAgMF0gPCAxM30gewotICAgICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGluX3BsYWNlX29wdCldICYmICR2YXJzKGluX3BsYWNlX29wdCl9IHsKLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgLWluUGxhY2VPcHQiCi0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICBpZiB7KCR2YXJzKHN0ZXApID09ICJwYXJ0aXRpb25fcGxhY2UiKSAmJiAkdmFycyh1c2VfZmxleG1vZGVscyl9IHsgIAotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAtbm9QcmVQbGFjZU9wdCIKLSAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMobm9fcHJlX3BsYWNlX29wdCldICYmICR2YXJzKG5vX3ByZV9wbGFjZV9vcHQpfSB7Ci0gICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiIC1ub1ByZVBsYWNlT3B0IgotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIlxuIgotICAgICAgICAgICAgfQotICAgICAgICAgfQotICAgICAgfQotCi0gICAgICBpZiB7W2luZm8gZXhpc3QgdmFycyhwYXJlbnQpXSAmJiAoJHZhcnMocGFyZW50KSAhPSAicmMiKSAmJiAgJHZhcnMocmMpICYmICR2YXJzKGVuYWJsZV9yY3ApfSB7Ci0gICAgICAgICBzZXQgY29tbWFuZCAiZWNvUGxhY2VcbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxlY29fcGxhY2UgJGNvbW1hbmRdCi0gICAgICB9IGVsc2UgewotIyAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhoaWVyX2Nhc2UpXSAmJiBbcmVnZXhwICJeMSIgJHZhcnMoaGllcl9jYXNlKV19IHsKLSMgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCkscGxhY2VfZGVzaWduICJwbGFjZURlc2lnbiAtbm9QcmVQbGFjZU9wdFxuIl0KLSMgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHBsYWNlX2Rlc2lnbiAkY29tbWFuZF0KLSMgICAgICAgICB9Ci0gICAgICB9Ci0KLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICMgTG9hZCBvcHRpb25hbCBwb3N0IHBsYWNlbWVudCBmaWxlIChwbHVnLWluKQotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCi0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjpzb3VyY2VfcGx1ZyBwb3N0X3BsYWNlX3RjbCAwXQotCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAjIEFkZCB0aWUgY2VsbHMgZm9yIGxvZ2ljIDAvMSBuZXRzCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0KLSAgICAgIHNldCBjb21tYW5kIFtGRl9FREk6OmFkZF90aWVfY2VsbHMgZmFsc2UgdHJ1ZV0KLSAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxhZGRfdGllX2NlbGxzICRjb21tYW5kXQotCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAjIENoZWNrIHBvc3QtcGxhY2UgdGltaW5nCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICBpZiB7IVtyZWdleHAgInBsYWNlX29wdF9kZXNpZ24iICRjb21tYW5kc10gJiYgKCR2YXJzKHN0ZXApID09ICJwbGFjZSIpfSB7Ci0gICAgICAgICBpZiB7IVtpbmZvIGV4aXN0cyB2YXJzKHRpbWVfZGVzaWduX29wdGlvbnMsc2V0dXApXX0gewotICAgICAgICAgICAgc2V0IGNvbW1hbmQgInRpbWVEZXNpZ24gLXByZWN0cyAtcHJlZml4IHBsYWNlIC1vdXREaXIgJHZhcnMocnB0X2RpcilcbiIKLSAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBzZXQgY29tbWFuZCBbZm9ybWF0ICJ0aW1lRGVzaWduICVzIC1wcmVjdHMgLXByZWZpeCBwbGFjZSAtb3V0RGlyICR2YXJzKHJwdF9kaXIpXG4iICR2YXJzKHRpbWVfZGVzaWduX29wdGlvbnMsc2V0dXApXQotICAgICAgICAgfQotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHRpbWVfZGVzaWduICRjb21tYW5kXQotICAgICAgfQotIyAgICAgIGlmIHsoJHZhcnMoc3RlcCkgPT0gInBhcnRpdGlvbl9wbGFjZSIpICYmICR2YXJzKHVzZV9mbGV4bW9kZWxzKX0gewotIyAgICAgICAgIGlmIHshW3JlZ2V4cCAicHJvdG8iICRjb21tYW5kXX0gewotIyAgICAgICAgICAgIHJlZ3N1YiAidGltZURlc2lnbiIgJGNvbW1hbmQgInRpbWVEZXNpZ24gLXByb3RvIiBjb21tYW5kCi0jICAgICAgICAgfQotIyAgICAgIH0KLQotICAgICAgaWYgeygkdmFycyh1c2VyX21vZGUpID09ICJoaWVyIikgJiYgJHZhcnMocGxhY2Vfb3B0X2Rlc2lnbikgJiYgKCR2YXJzKHN0ZXApICE9ICJwYXJ0aXRpb25fcGxhY2UiKX0gewotICAgICAgICAgc2V0IHB0biBbZmlsZSB0YWlsIFtwd2RdXQotICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKHBhcnRpdGlvbl9saXN0KV0gJiYgKFtsc2VhcmNoICR2YXJzKHBhcnRpdGlvbl9saXN0KSAkcHRuXSAhPSAtMSl9IHsKLSAgICAgICAgICAgIGlmIHskdmFycyhlbmFibGVfZmxleGlsbSl9IHsKLSAgICAgICAgICAgICAgIHNldCBjb21tYW5kICJjcmVhdGVJbnRlcmZhY2VMb2dpYyAtZGlyICRwdG4uZmxleGlsbSAtdXNlVHlwZSBmbGV4SWxtIC1vcHRTdGFnZSBwcmVDVFNcbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxjcmVhdGVfZmxleF9pbG0gJGNvbW1hbmRdCi0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgaWYgeyEkdmFycyhibGFja19ib3gpfSB7Ci0gICAgICAgICAgICAgICAgICBpZiB7W3N0cmluZyBjb21wYXJlIC1ub2Nhc2UgJHZhcnMoZGJzX2Zvcm1hdCkgImZlIl09PTB9IHsKLSAgICAgICAgICAgICAgICAgICAgIHNldCBjb21tYW5kICJjcmVhdGVJbnRlcmZhY2VMb2dpYyAtbW9kZWxUeXBlIHRpbWluZyAtZGlyICRwdG4uaWxtIC1ob2xkXG4iCi0gICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgImNyZWF0ZUludGVyZmFjZUxvZ2ljIC1tb2RlbFR5cGUgdGltaW5nIC1jZWxsdmlldyB7JHZhcnMob2FfcGFydGl0aW9uX2xpYikgJHB0biBhYnN0cmFjdH1cbiIKLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIH0gCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksY3JlYXRlX2lsbSAkY29tbWFuZF0KLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBpZiB7JHZhcnMoZW5hYmxlX2ZsZXhpbG0pfSB7Ci0gICAgICAgICAgICAgICBzZXQgY29tbWFuZCAiIgotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgInNhdmVEZXNpZ24gJHZhcnMoZGJzX2RpcikvcHJlY3RzX2ZsZXhpbG0uZW5jIC1jb21wcmVzc1xuIgotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHNhdmVfZGVzaWduICRjb21tYW5kXQotCi0gICAgICAgICAgICAgICAjIFJlLWFzc2lnbiBwaW5zIGJhc2VkIG9uIG5ldyBuZXRsaXN0IGNoYW5nZXMKLSAgICAgICAgICAgICAgIHNldCBjb21tYW5kICIiCi0gICAgICAgICAgICAgICBpZiB7W2xpbmRleCBbc3BsaXQgJHZhcnModmVyc2lvbikgIi4iXSAgMF0gPCAxNn0gewotICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAidHJpYWxSb3V0ZVxuIgotICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksdHJpYWxfcm91dGUxICRjb21tYW5kXQotICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgImVhcmx5R2xvYmFsUm91dGVcbiIKLSAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLGVhcmx5X2dsb2JhbF9yb3V0ZTEgJGNvbW1hbmRdCi0gICAgICAgICAgICAgICB9Ci0gCi0gICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgIHNldCBjb21tYW5kICIiCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAidGltZURlc2lnbiAtcHJlQ1RTIC1vdXREaXIgJHZhcnMocnB0X2RpcikgLXByZWZpeCBwcmVjdHNfZmxleGlsbVxuIgotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHRpbWVfZGVzaWduX2ZsZXhpbG0gJGNvbW1hbmRdCi0KLSAgICAgICAgICAgICAgIHNldCBjb21tYW5kICIiCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiYXNzaWduUHRuUGluXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksYXNzaWduX3B0bl9waW4gJGNvbW1hbmRdCi0gICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgIHNldCBjb21tYW5kICIiCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiY2hlY2tQaW5Bc3NpZ25tZW50XG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksY2hlY2tfcGluX2Fzc2lnbm1lbnQgJGNvbW1hbmRdCi0gICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgIHNldCBjb21tYW5kICIiCi0gICAgICAgICAgICAgICBpZiB7W2xpbmRleCBbc3BsaXQgJHZhcnModmVyc2lvbikgIi4iXSAgMF0gPCAxNn0gewotICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAic2V0VHJpYWxSb3V0ZU1vZGUgLWhvbm9yUGluIHRydWVcbiIKLSAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHNldF90cmlhbF9yb3V0ZV9tb2RlMiAkY29tbWFuZF0KLSAgICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgIiIKLSAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgInRyaWFsUm91dGVcbiIKLSAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHRyaWFsX3JvdXRlMiAkY29tbWFuZF0KLSAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJzZXRSb3V0ZU1vZGUgLWVhcmx5R2xvYmFsUm91dGVQYXJ0aXRpb25Ib25vclBpbiAuXG4iCi0gICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxzZXRfcm91dGVfbW9kZTIgJGNvbW1hbmRdCi0gICAgICAgICAgICAgICAgIHNldCBjb21tYW5kICIiCi0gICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJlYXJseUdsb2JhbFJvdXRlXG4iCi0gICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxlYXJseV9nbG9iYWxfcm91dGUyICRjb21tYW5kXQotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAKLSMgICAgICAgICAgICAgICBzZXQgY29tbWFuZCAiIgotIyAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJzZXRCdWRnZXRpbmdNb2RlIC1lbmFibGVNVEJ1ZGdldGluZyB0cnVlXG4iCi0jICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHNldF9idWRnZXRpbmdfbW9kZSAkY29tbWFuZF0KLSAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgIiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJkZXJpdmVUaW1pbmdCdWRnZXRcbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxkZXJpdmVfdGltaW5nX2J1ZGdldCAkY29tbWFuZF0KLSAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgIiIKLSAgICAgICAgICAgICAgIHNldCBkaXJzICIiCi0gICAgICAgICAgICAgICBmb3JlYWNoIGJsb2NrICR2YXJzKHBhcnRpdGlvbl9saXN0KSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgZGlycyAiXFxcbiAgIC1nb2xkZW5CbG9ja0RpciAuLi8kYmxvY2svJHZhcnMoZGJzX2RpcikvcGxhY2UuZW5jLmRhdCAiCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAidXBkYXRlX3BhcnRpdGlvbiBcXFxuICAgLWZsZXhJbG1FQ08gJGRpcnMgXFxcbiAgIC1mbGV4SWxtRGlyIC4uLy4uL1BBUlRJVElPTl9GTEVYSUxNIFxcXG4gICAtcG9zdEVDT1N1ZmZpeCBwb3N0RUNPIC1waW5Mb2NhdGlvblxuIgotIyAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJ1cGRhdGVfcGFydGl0aW9uIFxcXG4gICAtZmxleElsbUVDTyAkZGlycyBcXFxuICAgLWZsZXhJbG1EaXIgLi4vLi4vUEFSVElUSU9OX0ZMRVhJTE0gXFxcbiAgIC1wb3N0RUNPU3VmZml4IHBvc3RFQ08gLXBpbkxvY2F0aW9uIC1hbGxvd1BvcnRFQ09cbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSx1cGRhdGVfcGFydGl0aW9uICRjb21tYW5kXQotICAgICAgICAgICAgfQotICAgICAgICAgfQotICAgICAgfQotCi0gICAgICBpZiB7JHZhcnMoY29kZWdlbil9IHsKLSAgICAgICAgIHJldHVybiAkY29tbWFuZHMKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgICB1cGxldmVsICMwIGV2YWwgJGNvbW1hbmRzCi0gICAgICB9Ci0gICB9Ci0KLSAgIHByb2MgcnVuX3ByZWN0cyB7e2Zvcm1hdCAxfX0gewotCi0gICAgICBnbG9iYWwgdmFycwotICAgICAgZ2xvYmFsIGVudgotICAgICAgZ2xvYmFsIGVycm9ycwotICAgICAgZ2xvYmFsIHdhcm5pbmdzCi0KLSAgICAgIGlmIHskdmFycyhwbGFjZV9vcHRfZGVzaWduKX0gewotIyAgICAgICAgIGlmIHshKCR2YXJzKHVzZXJfbW9kZSkgPT0gImhpZXIiKX0gewotICAgICAgICAgICAgcmV0dXJuICIiCi0jICAgICAgICAgfSBlbHNlIHsKLSMgICAgICAgICAgICBzZXQgd2FybmluZ3MoJHZhcnMod2FybmluZ19jb3VudCkpICJGZWF0dXJlIHZhcnMocGxhY2Vfb3B0X2Rlc2lnbikgbm90IHN1cHBvcnQgZm9yIHRvcCBsZXZlbCBpbXBsZW1lbnRhdGlvbiB3aGVuIHZhcnMoZW5hYmxlX2ZsZXhpbG0pIGlzIHRydWUiCi0jICAgICAgICAgICAgaW5jciB2YXJzKHdhcm5pbmdfY291bnQpCi0jICAgICAgICAgfQotICAgICAgfQotCi0gICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMocGFyZW50KV0gJiYgKCR2YXJzKHBhcmVudCkgPT0gInJjIil9IHsKLSAgICAgICAgIHNldCB2YXJzKHN0ZXApIHJjcAotICAgICAgfSBlbHNlIHsKLSAgICAgICAgIHNldCB2YXJzKHN0ZXApIHByZWN0cwotICAgICAgfQotCi0gICAgICBzZXQgY29tbWFuZHMgIiIKLSMgICAgICBhcHBlbmQgY29tbWFuZHMgInNldCB2YXJzKHN0ZXApICR2YXJzKHN0ZXApXG4iCi0KLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICMgSW5pdGlhbGl6ZSBzdGVwIC4uLgotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCi0gICAgICBzZXQgY29tbWFuZCBbRkZfRURJOjppbml0aWFsaXplX3N0ZXAgcHJlY3RzXQotICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRl9FREk6Omluc2VydF9jb21tZW50c10gCi0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksaW5pdGlhbGl6ZV9zdGVwICRjb21tYW5kXQotCi0gICAgICBhcHBlbmQgY29tbWFuZHMgIlB1dHMgXCI8RkY+IFJVTk5JTkcgUFJFLUNUUyBPUFRJTUlaQVRJT04gLi4uXCJcbiIKLQotICAgICAgaWYgeyR2YXJzKHZlcmJvc2UpfSB7Ci0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiNcbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyBSVU5OSU5HIFBSRS1DVFMgT1BUSU1JWkFUSU9OXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiNcbiIKLSAgICAgIH0KLQotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgIyBMb2FkIG9wdGlvbmFsIHByZSBDVFMgZmlsZSAocGx1Zy1pbikKLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLQotICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6c291cmNlX3BsdWcgcHJlX3ByZWN0c190Y2xdCi0KLSAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhwYXJlbnQpXSAmJiAoJHZhcnMocGFyZW50KSA9PSAicmMiKX0gewotICAgICAgICAgcmV0dXJuICRjb21tYW5kcwotICAgICAgfQotCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAjIFJ1biBwcmUtQ1RTIG9wdGltaXphdGlvbgotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCi0gICAgICBpZiB7KFtpbmZvIGV4aXN0cyB2YXJzKHBhcnRpdGlvbl9saXN0KV0pICYmIChbZmlsZSB0YWlsIFtmaWxlIGRpcm5hbWUgW3B3ZF1dXSA9PSAiJHZhcnMocGFydGl0aW9uX2RpcikiKX0gewotICAgICAgICAgc2V0IHB0biBbZmlsZSB0YWlsIFtwd2RdXQotICAgICAgICAgaWYgeyhbbHNlYXJjaCAkdmFycyhwYXJ0aXRpb25fbGlzdCkgJHB0bl0gPT0gLTEpICYmICR2YXJzKGVuYWJsZV9mbGV4aWxtKX0gewotICAgICAgICAgIyBUb3AgbGV2ZWwgZmxvdyBmb3IgZmxleElsbQotICAgICAgICAgICAgCi0gICAgICAgICAgICBzZXQgY29tbWFuZCAiIgotICAgICAgICAgICAgZm9yZWFjaCBibG9jayAkdmFycyhwYXJ0aXRpb25fbGlzdCkgewotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgInNldFB0blBpblN0YXR1cyAtY2VsbCAkYmxvY2sgLXBpbiAqIC1zdGF0dXMgdW5wbGFjZWRcbiIKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxzZXRfcHRuX3Bpbl9zdGF0dXMgJGNvbW1hbmRdCi0gICAgICAgICAgICAKLSAgICAgICAgICAgc2V0IGNvbW1hbmQgIiIKLSAgICAgICAgICAgaWYge1tsaW5kZXggW3NwbGl0ICR2YXJzKHZlcnNpb24pICIuIl0gIDBdIDwgMTZ9IHsKLSAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAic2V0VHJpYWxSb3V0ZU1vZGUgLWhvbm9yUGluIGZhbHNlIC1oYW5kbGVQYXJ0aXRpb25Db21wbGV4IHRydWVcbiIKLSAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksc2V0X3RyaWFsX3JvdXRlX21vZGUxICRjb21tYW5kXQotICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJzZXRSb3V0ZU1vZGUgLWVhcmx5R2xvYmFsUm91dGVQYXJ0aXRpb25Ib25vckZlbmNlIC4gLWVhcmx5R2xvYmFsUm91dGVQYXJ0aXRpb25Ib25vclBpbiB7fVxuIgotICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxzZXRfcm91dGVfbW9kZTEgJGNvbW1hbmRdCi0gICAgICAgICAgIH0KLSAgICAgICAgICAgCi0jICAgICAgICAgICAgc2V0IGNvbW1hbmQgIiIKLSMgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAic2V0SGllck1vZGUgLW9wdFN0YWdlIHByZUNUU1xuIgotIyAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxzZXRfaGllcl9tb2RlICRjb21tYW5kXQotICAgICAgICAgICAgCi0gICAgICAgICAgICBzZXQgY29tbWFuZCAiIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgInNldE9wdE1vZGUgLWhhbmRsZVBhcnRpdGlvbkNvbXBsZXggdHJ1ZVxuIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHNldF9vcHRfbW9kZSAkY29tbWFuZF0KLSAgICAgICAgICAgIAotICAgICAgICAgICAgc2V0IGNvbW1hbmQgIiIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJvcHREZXNpZ24gLXByZUNUUyAtb3V0RGlyICR2YXJzKHJwdF9kaXIpIC1wcmVmaXggZmxleGlsbVxuIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLG9wdF9kZXNpZ24gJGNvbW1hbmRdCi0gICAgICAgICAgICAKLSAgICAgICAgICAgIHNldCBjb21tYW5kICIiCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAic2F2ZURlc2lnbiAkdmFycyhkYnNfZGlyKS9wcmVjdHNfZmxleGlsbS5lbmMgLWNvbXByZXNzXG4iCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksc2F2ZV9kZXNpZ24gJGNvbW1hbmRdCi0gICAgICAgICB9IGVsc2UgewotICAgICAgICAgIyBOb24gZmxleElsbSB0b3AgZmxvdyBhbmQgcGFydGl0aW9uIGZsb3cKLSAgICAgICAgICAgc2V0IGNvbW1hbmQgIm9wdERlc2lnbiAtcHJlQ1RTIC1vdXREaXIgJHZhcnMocnB0X2RpcikgLXByZWZpeCBwcmVjdHNcbiIKLSAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLG9wdF9kZXNpZ24gJGNvbW1hbmRdCi0gICAgICAgICB9Ci0gICAgICB9IGVsc2UgewotICAgICAgIyBGbGF0IGZsb3cgCi0gICAgICAgIHNldCBjb21tYW5kICJvcHREZXNpZ24gLXByZUNUUyAtb3V0RGlyICR2YXJzKHJwdF9kaXIpIC1wcmVmaXggcHJlY3RzXG4iCi0gICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxvcHRfZGVzaWduICRjb21tYW5kXQotICAgICAgfQotCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAjIExvYWQgb3B0aW9uYWwgcG9zdCBDVFMgZmlsZSAocGx1Zy1pbikKLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLQotICAgICAgc2V0IGNvbW1hbmQgIiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OnNvdXJjZV9wbHVnIHBvc3RfcHJlY3RzX3RjbCAwXQotCi0gICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoY2xvY2tfZ2F0ZV9jbG9uZSldICYmICR2YXJzKGNsb2NrX2dhdGVfY2xvbmUpfSB7Ci0gICAgICAgICBpZiB7JHZhcnModmVyYm9zZSl9IHsKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiI1xuIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjIFJVTk5JTkcgQ0xPQ0sgR0FURSBDTE9OSU5HXG4iCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiNcbiIKLSAgICAgICAgIH0KLSAgICAgICAgICMgU2V0IHNwZWNfZmlsZSBpZiBvbmUgaXMgZGVmaW5lZAotICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGN0c19zcGVjKV19IHsKLSAgICAgICAgICAgIHNldCBzcGVjX2ZpbGUgJHZhcnMoY3RzX3NwZWMpCi0gICAgICAgICB9Ci0gICAgICAgICBpZiB7KFtpbmZvIGV4aXN0cyB2YXJzKHBhcnRpdGlvbl9saXN0KV0pICYmCi0gICAgICAgICAgICAgKFtmaWxlIHRhaWwgW2ZpbGUgZGlybmFtZSBbcHdkXV1dID09ICIkdmFycyhwYXJ0aXRpb25fZGlyKSIpfSB7Ci0gICAgICAgICAgICBzZXQgcHRuIFtmaWxlIHRhaWwgW3B3ZF1dCi0gICAgICAgICAgICAjIE92ZXJyaWRlIHdpdGggcGFydGl0aW9uIHNwZWMgaWYgZGVmaW5lZAotICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCRwdG4sY3RzX3NwZWMpXX0gewotICAgICAgICAgICAgICAgc2V0IHNwZWNfZmlsZSAkdmFycygkcHRuLGN0c19zcGVjKQotICAgICAgICAgICAgfQotICAgICAgICAgfQotICAgICAgICAgIyBMb2FkIGZpbmFsIHNwZWMgZmlsZSBvciBnZW5lcmF0ZSBvbmUKLSMgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHNwZWNfZmlsZV19IHsKLSMgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgImNsZWFudXBTcGVjaWZ5Q2xvY2tUcmVlXG4iCi0jICAgICAgICAgICAgZm9yZWFjaCBzcGVjICRzcGVjX2ZpbGUgewotIyAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAic3BlY2lmeUNsb2NrVHJlZSAtZmlsZSAkc3BlY1xuIgotIyAgICAgICAgICAgIH0KLSMgICAgICAgICB9IGVsc2UgewotIyAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiY3JlYXRlQ2xvY2tUcmVlU3BlY1xuIgotIyAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhjdHNfY2VsbHMpXX0gewotIyAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJzcGVjaWZ5Q2xvY2tUcmVlIC11cGRhdGUgXCJBdXRvQ1RTUm9vdFBpbiAqIEJ1ZmZlciBcW2xpc3QgJHZhcnMoY3RzX2NlbGxzKVxdXCJcbiIKLSMgICAgICAgICAgICB9Ci0jICAgICAgICAgfQotIyAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhyb3V0ZV9jbG9ja19uZXRzKV0gJiYgJHZhcnMocm91dGVfY2xvY2tfbmV0cyl9IHsKLSMgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgInNwZWNpZnlDbG9ja1RyZWUgLXVwZGF0ZSBcIkF1dG9DVFNSb290UGluICogUm91dGVDbGtOZXQgWUVTXCJcbiIKLSMgICAgICAgICB9Ci0gICAKLSAgICAgICAgIHNldCBjb21tYW5kICJja0Nsb25lR2F0ZSAtdGltaW5nRHJpdmVuIC1mb3JjZVJlY29udmVyZ2VudFxuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLGNrX2Nsb25lX2dhdGUgJGNvbW1hbmRdCi0gICAgICB9Ci0gICAgICBpZiB7KCR2YXJzKHVzZXJfbW9kZSkgPT0gImhpZXIiKX0gewotICAgICAgICAgc2V0IHB0biBbZmlsZSB0YWlsIFtwd2RdXQotICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKHBhcnRpdGlvbl9saXN0KV0gJiYgKFtsc2VhcmNoICR2YXJzKHBhcnRpdGlvbl9saXN0KSAkcHRuXSAhPSAtMSkgJiYgISR2YXJzKHBsYWNlX29wdF9kZXNpZ24pfSB7Ci0gICAgICAgICAgICBpZiB7JHZhcnMoZW5hYmxlX2ZsZXhpbG0pfSB7Ci0gICAgICAgICAgICAgICBzZXQgY29tbWFuZCAiY3JlYXRlSW50ZXJmYWNlTG9naWMgLWRpciAkcHRuLmZsZXhpbG0gLXVzZVR5cGUgZmxleElsbSAtb3B0U3RhZ2UgcHJlQ1RTXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksY3JlYXRlX2ZsZXhfaWxtICRjb21tYW5kXQotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIGlmIHshJHZhcnMoYmxhY2tfYm94KX0gewotICAgICAgICAgICAgICAgICAgaWYge1tzdHJpbmcgY29tcGFyZSAtbm9jYXNlICR2YXJzKGRic19mb3JtYXQpICJmZSJdPT0wfSB7Ci0gICAgICAgICAgICAgICAgICAgICBzZXQgY29tbWFuZCAiY3JlYXRlSW50ZXJmYWNlTG9naWMgLW1vZGVsVHlwZSB0aW1pbmcgLWRpciAkcHRuLmlsbSAtaG9sZFxuIgotICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgIHNldCBjb21tYW5kICJjcmVhdGVJbnRlcmZhY2VMb2dpYyAtbW9kZWxUeXBlIHRpbWluZyAtY2VsbHZpZXcgeyR2YXJzKG9hX3BhcnRpdGlvbl9saWIpICRwdG4gYWJzdHJhY3R9XG4iCi0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICB9IAotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLGNyZWF0ZV9pbG0gJGNvbW1hbmRdCi0gICAgICAgICAgICB9Ci0gICAgICAgICB9IGVsc2UgeyA7ICMgVG9wIGxldmVsIHVuY29uZGl0aW9uYWwgKG5vIHBsYWNlX29wdF9kZXNpZ24gc3VwcG9ydCkgLi4uCi0gICAgICAgICAgICBpZiB7JHZhcnMoZW5hYmxlX2ZsZXhpbG0pfSB7Ci0gICAgICAgICAgICAgICAjIFJlLWFzc2lnbiBwaW5zIGJhc2VkIG9uIG5ldyBuZXRsaXN0IGNoYW5nZXMKLSAgICAgICAgICAgICAgIHNldCBjb21tYW5kICIiCi0gICAgICAgICAgICAgICBpZiB7W2xpbmRleCBbc3BsaXQgJHZhcnModmVyc2lvbikgIi4iXSAgMF0gPCAxNn0gewotICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAidHJpYWxSb3V0ZVxuIgotICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksdHJpYWxfcm91dGUxICRjb21tYW5kXQotICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgImVhcmx5R2xvYmFsUm91dGVcbiIKLSAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLGVhcmx5X3JvdXRlMSAkY29tbWFuZF0KLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgIiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJ0aW1lRGVzaWduIC1wcmVDVFMgLW91dERpciAkdmFycyhycHRfZGlyKSAtcHJlZml4IGFzc2VtYmxlX2ZsZXhpbG1cbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSx0aW1lX2Rlc2lnbiAkY29tbWFuZF0KLSAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgIiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJhc3NpZ25QdG5QaW5cbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxhc3NpZ25fcHRuX3BpbiAkY29tbWFuZF0KLSAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgIiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJjaGVja1BpbkFzc2lnbm1lbnRcbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxjaGVja19waW5fYXNzaWdubWVudCAkY29tbWFuZF0KLSAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgIiIKLSAgICAgICAgICAgICAgIGlmIHtbbGluZGV4IFtzcGxpdCAkdmFycyh2ZXJzaW9uKSAiLiJdICAwXSA8IDE2fSB7Ci0gICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJzZXRUcmlhbFJvdXRlTW9kZSAtaG9ub3JQaW4gdHJ1ZVxuIgotICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksc2V0X3RyaWFsX3JvdXRlX21vZGUyICRjb21tYW5kXQotICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgInNldFJvdXRlTW9kZSAtZWFybHlHbG9iYWxSb3V0ZVBhcnRpdGlvbkhvbm9yUGluIC5cbiIKLSAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHNldF9yb3V0ZV9tb2RlMiAkY29tbWFuZF0KLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgIiIKLSAgICAgICAgICAgICAgIGlmIHtbbGluZGV4IFtzcGxpdCAkdmFycyh2ZXJzaW9uKSAiLiJdICAwXSA8IDE2fSB7Ci0gICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJ0cmlhbFJvdXRlXG4iCi0gICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSx0cmlhbF9yb3V0ZTIgJGNvbW1hbmRdCi0gICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJlYXJseUdsb2JhbFJvdXRlXG4iCi0gICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxlYXJseV9yb3V0ZTIgJGNvbW1hbmRdCi0gICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIAotIyAgICAgICAgICAgICAgIHNldCBjb21tYW5kICIiCi0jICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgInNldEJ1ZGdldGluZ01vZGUgLWVuYWJsZU1UQnVkZ2V0aW5nIHRydWVcbiIKLSMgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksc2V0X2J1ZGdldGluZ19tb2RlICRjb21tYW5kXQotICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICBzZXQgY29tbWFuZCAiIgotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgImRlcml2ZVRpbWluZ0J1ZGdldFxuIgotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLGRlcml2ZV90aW1pbmdfYnVkZ2V0ICRjb21tYW5kXQotICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICBzZXQgY29tbWFuZCAiIgotICAgICAgICAgICAgICAgc2V0IGRpcnMgIiIKLSAgICAgICAgICAgICAgIGZvcmVhY2ggYmxvY2sgJHZhcnMocGFydGl0aW9uX2xpc3QpIHsKLSAgICAgICAgICAgICAgICAgIGlmIHskdmFycyhwbGFjZV9vcHRfZGVzaWduKX0gewotICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGRpcnMgIlxcXG4gICAtZ29sZGVuQmxvY2tEaXIgLi4vJGJsb2NrLyR2YXJzKGRic19kaXIpL3BsYWNlLmVuYy5kYXQgIgotICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBkaXJzICJcXFxuICAgLWdvbGRlbkJsb2NrRGlyIC4uLyRibG9jay8kdmFycyhkYnNfZGlyKS9wcmVjdHMuZW5jLmRhdCAiCi0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAidXBkYXRlX3BhcnRpdGlvbiBcXFxuICAgLWZsZXhJbG1FQ08gJGRpcnMgXFxcbiAgIC1mbGV4SWxtRGlyIC4uLy4uL1BBUlRJVElPTl9GTEVYSUxNIFxcXG4gICAtcG9zdEVDT1N1ZmZpeCBwb3N0RUNPIC1waW5Mb2NhdGlvblxuIgotIyAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJ1cGRhdGVfcGFydGl0aW9uIFxcXG4gICAtZmxleElsbUVDTyAkZGlycyBcXFxuICAgLWZsZXhJbG1EaXIgLi4vLi4vUEFSVElUSU9OX0ZMRVhJTE0gXFxcbiAgIC1wb3N0RUNPU3VmZml4IHBvc3RFQ08gLXBpbkxvY2F0aW9uIC1hbGxvd1BvcnRFQ09cbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSx1cGRhdGVfcGFydGl0aW9uICRjb21tYW5kXQotICAgICAgICAgICAgfQotICAgICAgICAgfQotICAgICAgfQotCi0gICAgICBpZiB7JHZhcnMoY29kZWdlbil9IHsKLSAgICAgICAgIHJldHVybiAkY29tbWFuZHMKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgdXBsZXZlbCAjMCBldmFsICRjb21tYW5kcwotICAgICAgfQotICAgfQotCi0gICBwcm9jIHJ1bl9jdHMge3tmb3JtYXQgMX19IHsKLQotICAgICAgZ2xvYmFsIHZhcnMKLSAgICAgIGdsb2JhbCBlcnJvcnMKLQotICAgICAgaWYgeyR2YXJzKHNraXBfY3RzKX0gewotICAgICAgICAgcmV0dXJuICIiCi0gICAgICB9Ci0KLSAgICAgIHNldCB2YXJzKHN0ZXApIGN0cwotICAgICAgc2V0IGNvbW1hbmRzICIiCi0gICAgICBzZXQgdWNvbW1lbnRzICIiCi0jICAgICAgYXBwZW5kIGNvbW1hbmRzICJzZXQgdmFycyhzdGVwKSAkdmFycyhzdGVwKVxuIgotCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAjIEluaXRpYWxpemUgc3RlcCAuLi4KLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLQotICAgICAgc2V0IGNvbW1hbmQgW0ZGX0VESTo6aW5pdGlhbGl6ZV9zdGVwIGN0c10KLSAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkZfRURJOjppbnNlcnRfY29tbWVudHNdIAotICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kIGN0cyxpbml0aWFsaXplX3N0ZXAgJGNvbW1hbmRdCi0KLSAgICAgIGlmIHskdmFycyh0b3ApICYmICgkdmFycyh1c2VyX21vZGUpID09ICJoaWVyIikgJiYgKCR2YXJzKGhpZXJfZmxvd190eXBlKSA9PSAiMnBhc3MiKSAmJiAkdmFycyhlbmFibGVfZmxleGlsbSl9IHsKLSAgICAgICAgICMgUmVhZCBQb3dlciBJbnRlbnQgaGVyZSAuLi4KLSAgICAgICAgIEZGX0VESTo6bm9ybWFsaXplX2ZpbGVzCi0jICAgICAgICAgc2V0IHNhdmUgJHZhcnMoY3BmX3Bvd2VyX2RvbWFpbikKLSMgICAgICAgICBzZXQgdmFycyhjcGZfcG93ZXJfZG9tYWluKSB0cnVlCi0jICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRl9FREk6OmxvYWRfcG93ZXJfaW50ZW50XQotIyAgICAgICAgIHNldCB2YXJzKGNwZl9wb3dlcl9kb21haW4pICRzYXZlCi0gICAgICAgICBzZXQgY29tbWFuZCAiIgotICAgICAgICAgZm9yZWFjaCBwYXJ0ICR2YXJzKHBhcnRpdGlvbl9saXN0KSB7Ci0gICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJHBhcnQsaWxtX2RpcildICYmICgkdmFycyhjb2RlZ2VuKSB8fCBbZmlsZSBpc2RpcmVjdG9yeSAkdmFycygkcGFydCxpbG1fZGlyKV0pfSB7Ci0gICAgICAgICAgICAgICBpZiB7W2xpbmRleCBbc3BsaXQgJHZhcnModmVyc2lvbikgIi4iXSAgMF0gPD0gMTB9IHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJzcGVjaWZ5SWxtIC1jZWxsICRwYXJ0IC1kaXIgJHZhcnMoJHBhcnQsaWxtX2RpcilcbiIKLSAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgIGlmIHtbc3RyaW5nIGNvbXBhcmUgLW5vY2FzZSAkdmFycyhkYnNfZm9ybWF0KSAib2EiXT09MH0gewotICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgInNwZWNpZnlJbG0gLWNlbGwgJHBhcnRcbiIKLSAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAic3BlY2lmeUlsbSAtY2VsbCAkcGFydCAtZGlyICR2YXJzKCRwYXJ0LGlsbV9kaXIpXG4iCi0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgaWYge1tsaW5kZXggW3NwbGl0ICR2YXJzKHZlcnNpb24pICIuIl0gIDBdIDw9IDEwfSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAic3BlY2lmeUlsbSAtY2VsbCAkcGFydCAtZGlyIC4uLyRwYXJ0LyRwYXJ0LmlsbVxuIgotICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgaWYge1tzdHJpbmcgY29tcGFyZSAtbm9jYXNlICR2YXJzKGRic19mb3JtYXQpICJvYSJdPT0wfSB7Ci0gICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAic3BlY2lmeUlsbSAtY2VsbCAkcGFydFxuIgotICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJzcGVjaWZ5SWxtIC1jZWxsICRwYXJ0IC1kaXIgLi4vJHBhcnQvJHBhcnQuaWxtXG4iCi0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0gICAgICAgICBpZiB7JGNvbW1hbmQgIT0gIiJ9IHsKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxzcGVjaWZ5X2lsbSAkY29tbWFuZF0KLSAgICAgICAgIH0KLQotICAgICAgICAgc2V0IGNvbW1hbmQgW0ZGX0VESTo6aW5pdGlhbGl6ZV90aW1pbmcgbW1tY10KLSMgICAgICAgICBpZiB7IVtpbmZvIGV4aXN0cyB2YXJzKGNwZl9maWxlKV0gfHwgKFtpbmZvIGV4aXN0cyB2YXJzKGNwZl9maWxlKV0gJiYgISR2YXJzKGNwZl90aW1pbmcpKSB9IHsKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxpbml0aWFsaXplX3RpbWluZyAkY29tbWFuZF0KLSMgICAgICAgICB9IGVsc2UgewotIyAgICAgICAgICAgIHNldCBkZWZlcl9jb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxpbml0aWFsaXplX3RpbWluZyAkY29tbWFuZF0gCi0jICAgICAgICAgfQotICAgICAgICAgaWYge1tsaW5kZXggW3NwbGl0ICR2YXJzKHZlcnNpb24pICIuIl0gIDBdIDwgMTR9IHsKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkZfRURJOjpsb2FkX3Bvd2VyX2ludGVudF0KLSAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGX05PVlVTOjpsb2FkX3Bvd2VyX2ludGVudF0KLSAgICAgICAgIH0KLSAgICAgIH0KLQotICAgICAgYXBwZW5kIGNvbW1hbmRzICJQdXRzIFwiPEZGPiBSVU5OSU5HIENMT0NLIFRSRUUgU1lOVEhFU0lTIC4uLlwiXG4iCi0KLSAgICAgIGlmIHskdmFycyh2ZXJib3NlKX0gewotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgUlVOTklORyBDTE9DSyBUUkVFIFNZTlRIRVNJU1xuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjXG4iCi0gICAgICB9Ci0KLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICMgTG9hZCBwcmUtQ1RTIGZpbGUgKHBsdWctaW4pCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICBpZiB7JHZhcnMoY3RzX2VuZ2luZSkgPT0gImN0cyJ9IHsKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OnNvdXJjZV9wbHVnIHByZV9jdHNfdGNsXQotICAgICAgfQotCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAjIFJ1biBDVFMKLSAgICAgICMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSAgICAgICMgR2VuZXJhdGUgdGhlIGNsb2NrIHRyZWUgdXNpbmcgY2xvY2tEZXNpZ24gd2hpY2g6Ci0gICAgICAjIC0gbG9hZHMgdGhlIGNsb2NrIHNwZWNpZmljYXRpb24gZmlsZQotICAgICAgIyAtIHJlbW92ZXMgZXhpc3RpbmcgYnVmZmVycyBpbiB0aGUgY2xvY2sgdHJlZSAobm90IG1hcmtlZCBkb24ndCB0b3VjaCk7Ci0gICAgICAjICAgaWYgYSBjbG9jayB0cmVlIGhhcyBiZWVuIHByZXZpb3VzbHkgaW5zZXJ0ZWQsIHVzZSBjaGFuZ2VDbG9ja1N0YXR1cwotICAgICAgIyAgIHRvIHVuZml4IHRoZSB0cmVlIHNvIHRoYXQgaXQgY2FuIGJlIHJlbW92ZWQKLSAgICAgICMgLSB1bmZpeGVzIHRoZSBjbG9jayBuZXRzIGFmdGVyIHRyZWUgaW5zZXJ0aW9uCi0gICAgICAjIE5lZWQgdG8gbWFrZSBzdXJlIHRoZSBjbG9jayBnYXRpbmcgY2VsbHMgYXJlIHVzYWJsZSBkdXJpbmcgY2xvY2tEZXNpZ24uCi0gICAgICAjIERpc2FibGUgdGhlbSBhZnRlcndhcmRzLgotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCi0gICAgICBzZXQgY2xvY2tfZ2F0ZV9jZWxscyBbbGlzdF0KLSAgICAgIHNldCBjb21tYW5kICIiCi0gICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoY2xvY2tfZ2F0ZV9jZWxscyldfSB7Ci0gICAgICAgICBzZXQgY2xvY2tfZ2F0ZV9jZWxscyAkdmFycyhjbG9ja19nYXRlX2NlbGxzKQotICAgICAgICAgZm9yZWFjaCBjZWxsICRjbG9ja19nYXRlX2NlbGxzIHsKLSAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAic2V0RG9udFVzZSAkY2VsbCBmYWxzZVxuIgotICAgICAgICAgfQotICAgICAgfQotICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kIGN0cyxlbmFibGVfY2xvY2tfZ2F0ZV9jZWxscyAkY29tbWFuZF0KLQotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgIyBSdW4gQ1RTCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0KLSAgICAgIHNldCBjb21tYW5kICIiCi0gICAgICBpZiB7W3N0cmluZyB0b2xvd2VyICR2YXJzKGN0c19lbmdpbmUpXSA9PSAiY3RzIn0gewotICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGN0c190Y2wpXX0gewotICAgICAgICAgICAgaWYge1tmaWxlIGV4aXN0cyAkdmFycyhjdHNfdGNsKV19IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OnNvdXJjZV9wbHVnIGN0c190Y2xdCi0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgc2V0IGVycm9ycygkdmFycyhlcnJvcl9jb3VudCkpICJQbHVnLWluIHZhcnMoY3RzX3RjbCkgZGVmaW5lZCBidXQgdGhlIGZpbGUgZG9lcyBub3QgZXhpc3QiCi0gICAgICAgICAgICAgICBpbmNyIHZhcnMoZXJyb3JfY291bnQpCi0jICAgICAgICAgICAgICAgc2V0IHZhcnMoYWJvcnQpIDEKLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoY3RzX3NwZWMpXX0gewotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgImNsZWFudXBTcGVjaWZ5Q2xvY2tUcmVlXG4iCi0gICAgICAgICAgICAgICBmb3JlYWNoIHNwZWMgJHZhcnMoY3RzX3NwZWMpIHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJzcGVjaWZ5Q2xvY2tUcmVlIC1maWxlICRzcGVjXG4iCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgaWYge1tsaW5kZXggW3NwbGl0ICR2YXJzKHZlcnNpb24pICIuIl0gIDBdIDwgMTV9IHsKLSAgICAgICAgICAgICAgICAgIGlmIHshJHZhcnMoaWxtKX0geyAKLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJjcmVhdGVDbG9ja1RyZWVTcGVjXG4iCi0gICAgICAgICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoY3RzX2NlbGxzKV19IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgInNwZWNpZnlDbG9ja1RyZWUgLXVwZGF0ZSBcIkF1dG9DVFNSb290UGluICogQnVmZmVyICR2YXJzKGN0c19jZWxscylcIlxuIgotICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGN0c19zcGVjKV0gfHwgKCFbaW5mbyBleGlzdHMgdmFycyhjdHNfc3BlYyldICYmIChbbGluZGV4IFtzcGxpdCAkdmFycyh2ZXJzaW9uKSAiLiJdICAwXSA8IDE1KSl9IHsKLSAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhyb3V0ZV9jbG9ja19uZXRzKV0gJiYgJHZhcnMocm91dGVfY2xvY2tfbmV0cyl9IHsKLSAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgInNwZWNpZnlDbG9ja1RyZWUgLXVwZGF0ZSBcIkF1dG9DVFNSb290UGluICogUm91dGVDbGtOZXQgWUVTXCJcbiIKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCBjdHMsY3JlYXRlX2Nsb2NrX3RyZWVfc3BlYyAkY29tbWFuZF0KLSAgICAgICAgICAgICAgIHNldCBjb21tYW5kICIiCi0gICAgICAgICAgICAgICBpZiB7JHZhcnModXBkYXRlX2lvX2xhdGVuY3kpfSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiY2xvY2tEZXNpZ24gLXNraXBUaW1lRGVzaWduIC11cGRhdGVJb0xhdGVuY3kgLW91dERpciAkdmFycyhycHRfZGlyKVxuIgotICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJjbG9ja0Rlc2lnbiAtc2tpcFRpbWVEZXNpZ24gLW91dERpciAkdmFycyhycHRfZGlyKVxuIgotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJjbG9ja0Rlc2lnbiAtc2tpcFRpbWVEZXNpZ24gLW91dERpciAkdmFycyhycHRfZGlyKVxuIgotICAgICAgICAgICAgfQotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kIGN0cyxjbG9ja19kZXNpZ24gJGNvbW1hbmRdCi0gICAgICAgICB9Ci0gICAgICAgICBzZXQgY29tbWFuZCAiIgotICAgICAgICAgZm9yZWFjaCBjZWxsICRjbG9ja19nYXRlX2NlbGxzIHsKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJzZXREb250VXNlICRjZWxsIHRydWVcbiIKLSAgICAgICAgIH0KLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCBjdHMsZGlzYWJsZV9jbG9ja19nYXRlX2NlbGxzICRjb21tYW5kXQotCi0gICAgICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAgICAjIFJ1biBja0VDTyBpZiByZXF1ZXN0ZWQKLSAgICAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLQotICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGNsb2NrX2VjbyldICYmICgoJHZhcnMoY2xvY2tfZWNvKSA9PSAicG9zdF9jdHMiKSB8fCAoJHZhcnMoY2xvY2tfZWNvKSA9PSAiYm90aCIpKX0gewotICAgICAgICAgICAgc2V0IGNvbW1hbmQgW0ZGX0VESTo6cnVuX2Nsb2NrX2VjbyBwb3N0X2N0c10KLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCBjdHMscnVuX2Nsb2NrX2VjbyAkY29tbWFuZF0KLSAgICAgICAgIH0KLQotICAgICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgICAgIyBVcGRhdGUgdGltaW5nIGJhc2VkIG9uIHZhcnMoPG1vZGU+LGluY3JfY3RzX3NkYykgYW5kCi0gICAgICAgICAjIHZhcnMoPG1vZGU+LHBvc3RfY3RzX3NkYykKLSAgICAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLQotICAgICAgICAgaWYgeyR2YXJzKGZsb3cpID09ICJtbW1jIn0gewotICAgICAgICAgICAgc2V0IGNvbW1hbmQgW0ZGX0VESTo6dXBkYXRlX3RpbWluZyBtbW1jXQotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kIGN0cyx1cGRhdGVfdGltaW5nICRjb21tYW5kXQotICAgICAgICAgICAgc2V0IGNvbW1hbmQgW0ZGX0VESTo6ZGVyYXRlX3RpbWluZyBtbW1jXQotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLGRlcmF0ZV90aW1pbmcgJGNvbW1hbmRdCi0gICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgc2V0IGNvbW1hbmQgW0ZGX0VESTo6dXBkYXRlX3RpbWluZyBtaW5tYXhdCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgY3RzLHVwZGF0ZV90aW1pbmcgJGNvbW1hbmRdCi0gICAgICAgICAgICBzZXQgY29tbWFuZCBbRkZfRURJOjpkZXJhdGVfdGltaW5nIG1pbm1heF0KLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxkZXJhdGVfdGltaW5nICRjb21tYW5kXQotICAgICAgICAgfQotICAgICAgICAgaWYgeyR2YXJzKGlsbSkgJiYgW2luZm8gZXhpc3RzIHZhcnMoaWxtX25vbl9zZGNfZmlsZSldfSB7Ci0gICAgICAgICAgICBpZiB7W2ZpbGUgZXhpc3RzICR2YXJzKGlsbV9ub25fc2RjX2ZpbGUpXX0gewotICAgICAgICAgICAgICAgaWYge1tsaW5kZXggW3NwbGl0ICR2YXJzKHZlcnNpb24pICIuIl0gIDBdIDw9IDEwfSB7Ci0gICAgICAgICAgICAgICAgICBzZXQgY29tbWFuZCAibG9hZFRpbWluZ0NvbiAtaWxtTm9uU2RjRmlsZSAkdmFycyhpbG1fbm9uX3NkY19maWxlKVxuIgotICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgIHNldCBjb21tYW5kICJzZXRJbG1Ob25TZGNDb25zdHJhaW50RmlsZSAkdmFycyhpbG1fbm9uX3NkY19maWxlKVxuIgotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXIoc3RlcCksbG9hZF9pbG1fbm9uX3NkY19maWxlICRjb21tYW5kXQotICAgICAgICAgICAgfQotICAgICAgICAgfQotICAgICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgICAgIyBDaGVjayBwb3N0LWN0cyB0aW1pbmcKLSAgICAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICAgIGlmIHshW2luZm8gZXhpc3RzIHZhcnModGltZV9kZXNpZ25fb3B0aW9ucyxzZXR1cCldfSB7Ci0gICAgICAgICAgICBzZXQgY29tbWFuZCAidGltZURlc2lnbiAtcG9zdGN0cyAtcHJlZml4IGN0cyAtb3V0RGlyICR2YXJzKHJwdF9kaXIpXG4iCi0gICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgc2V0IGNvbW1hbmQgW2Zvcm1hdCAidGltZURlc2lnbiAtcG9zdGN0cyAtcHJlZml4IGN0cyAtb3V0RGlyICR2YXJzKHJwdF9kaXIpICVzXG4iICR2YXJzKHRpbWVfZGVzaWduX29wdGlvbnMsc2V0dXApXQotICAgICAgICAgfQotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kIGN0cyx0aW1lX2Rlc2lnbiAkY29tbWFuZF0KLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAgICAjIFJ1biBjY29wdERlc2lnbiAuLi4gY29udmVydCB0byBwcm9wYWdhdGVkIHRpbWluZyBmaXJzdAotICAgICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGN0c190Y2wpXX0gewotICAgICAgICAgICAgaWYge1tmaWxlIGV4aXN0cyAkdmFycyhjdHNfdGNsKV19IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OnNvdXJjZV9wbHVnIHByZV9jdHNfdGNsXQotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6c291cmNlX3BsdWcgY3RzX3RjbF0KLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBzZXQgZXJyb3JzKCR2YXJzKGVycm9yX2NvdW50KSkgIlBsdWctaW4gdmFycyhjdHNfdGNsKSBkZWZpbmVkIGJ1dCB0aGUgZmlsZSBkb2VzIG5vdCBleGlzdCIKLSAgICAgICAgICAgICAgIGluY3IgdmFycyhlcnJvcl9jb3VudCkKLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBzZXQgaXNfbmF0aXZlIFtleHByIHskdmFycyhjY29wdF9pbnRlZ3JhdGlvbikgPT0gIm5hdGl2ZSJ9XQotICAgICAgICAgICAgc2V0IGNvbW1hbmQgW0ZGX0VESTo6dXBkYXRlX3RpbWluZyBtbW1jIFtleHByICEkaXNfbmF0aXZlXV0KLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCBjdHMsdXBkYXRlX3RpbWluZyAkY29tbWFuZF0KLSAgICAgICAgICAgIHNldCBjb21tYW5kIFtGRl9FREk6OmRlcmF0ZV90aW1pbmcgbW1tY10KLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxkZXJhdGVfdGltaW5nICRjb21tYW5kXQotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6c291cmNlX3BsdWcgcHJlX2N0c190Y2xdCi0gICAgICAgICAgICBpZiB7W2xpbmRleCBbc3BsaXQgJHZhcnModmVyc2lvbikgIi4iXSAgMF0gPD0gMTR9IHsKLSAgICAgICAgICAgICAgIGlmIHtbcmVnZXhwICJeY2NvcHQiICR2YXJzKGN0c19lbmdpbmUpXSAmJiAoJHZhcnMoY2NvcHRfZWZmb3J0KSAhPSAibG93Iil9IHsKLSAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6c291cmNlX3BsdWcgcHJlX3Bvc3RjdHNfdGNsIDBdCi0gICAgICAgICAgICAgICAgIGlmIHskdmFycyhwb3N0Y3RzX3NldHVwX2hvbGQpfSB7Ci0gICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OnNvdXJjZV9wbHVnIHByZV9wb3N0Y3RzX2hvbGRfdGNsXQotICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgaWYgeyR2YXJzKGNjb3B0X2VmZm9ydCkgIT0gImxvdyJ9IHsKLSAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6c291cmNlX3BsdWcgcHJlX3Bvc3RjdHNfdGNsIDBdCi0gICAgICAgICAgICAgICAgIGlmIHskdmFycyhwb3N0Y3RzX3NldHVwX2hvbGQpfSB7Ci0gICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OnNvdXJjZV9wbHVnIHByZV9wb3N0Y3RzX2hvbGRfdGNsXQotICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiB7JHZhcnMoY2NvcHRfZWZmb3J0KSAhPSAibG93In0gewotIyAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxzZXRfY2NvcHRfbW9kZSAic2V0X2Njb3B0X21vZGUgLWVmZm9ydCAkdmFycyhjY29wdF9lZmZvcnQpXG4iXQotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHNldF9jY29wdF9tb2RlICJzZXRfY2NvcHRfZWZmb3J0IC0kdmFycyhjY29wdF9lZmZvcnQpXG4iXQotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBpZiB7JHZhcnMoY3RzX2VuZ2luZSkgPT0gImNjb3B0X2N0cyJ9IHsKLSAgICAgICAgICAgICAgIHNldCBjY29wdF9jb21tYW5kICJjY29wdF9kZXNpZ24gLW91dERpciAkdmFycyhycHRfZGlyKSAtcHJlZml4ICR2YXJzKHN0ZXApIC1jdHMiCi0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgc2V0IGNjb3B0X2NvbW1hbmQgImNjb3B0X2Rlc2lnbiAtb3V0RGlyICR2YXJzKHJwdF9kaXIpIC1wcmVmaXggJHZhcnMoc3RlcCkiCi0KLSAgICAgICAgICAgICAgIGlmIHskdmFycyhwb3N0Y3RzX3NldHVwX2hvbGQpfSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY2NvcHRfY29tbWFuZCAiIC1ob2xkIgotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBpZiB7JGlzX25hdGl2ZX0gewotICAgICAgICAgICAgICAgaWYge1tsaW5kZXggW3NwbGl0ICR2YXJzKHZlcnNpb24pICIuIl0gIDBdIDw9IDE0fSB7Ci0gICAgICAgICAgICAgICAgICBpZiB7JHZhcnMoY3RzX2VuZ2luZSkgPT0gImNjb3B0X2N0cyIgJiYgW2luZm8gZXhpc3RzIHZhcnMoY3RzX3NwZWMpXX0gewotICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgImNsZWFudXBTcGVjaWZ5Q2xvY2tUcmVlXG4iCi0gICAgICAgICAgICAgICAgICAgICBmb3JlYWNoIHNwZWMgJHZhcnMoY3RzX3NwZWMpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJzcGVjaWZ5Q2xvY2tUcmVlIC1maWxlICRzcGVjXG4iCi0gICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAic2V0X2Njb3B0X21vZGUgLWltcG9ydF9lZGlfY3RzX3NwZWMgdHJ1ZVxuIgotICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kIGN0cyxjcmVhdGVfY2NvcHRfY2xvY2tfdHJlZV9zcGVjICRjb21tYW5kXQotICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgIHNldCBjb21tYW5kICJjcmVhdGVfY2NvcHRfY2xvY2tfdHJlZV9zcGVjXG4iCi0gICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgY3RzLGNyZWF0ZV9jY29wdF9jbG9ja190cmVlX3NwZWMgJGNvbW1hbmRdCi0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgaWYgeygkdmFycyhjY29wdF9lZmZvcnQpID09ICJsb3ciKSAmJiBbaW5mbyBleGlzdHMgdmFycyhjdHNfc3BlYyldfSB7Ci0gICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiY2xlYW51cFNwZWNpZnlDbG9ja1RyZWVcbiIKLSAgICAgICAgICAgICAgICAgICAgIGZvcmVhY2ggc3BlYyAkdmFycyhjdHNfc3BlYykgewotICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgInNwZWNpZnlDbG9ja1RyZWUgLWZpbGUgJHNwZWNcbiIKLSAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJzZXRfY2NvcHRfbW9kZSAtaW1wb3J0X2VkaV9jdHNfc3BlYyB0cnVlXG4iCi0gICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgY3RzLGNyZWF0ZV9jY29wdF9jbG9ja190cmVlX3NwZWMgJGNvbW1hbmRdCi0gICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgImNyZWF0ZV9jY29wdF9jbG9ja190cmVlX3NwZWNcbiIKLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCBjdHMsY3JlYXRlX2Njb3B0X2Nsb2NrX3RyZWVfc3BlYyAkY29tbWFuZF0KLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgYXBwZW5kIGNjb3B0X2NvbW1hbmQgIlxuIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kIGN0cyxjY29wdF9kZXNpZ24gJGNjb3B0X2NvbW1hbmRdCi0gICAgICAgICB9Ci0gICAgICB9Ci0KLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICMgTG9hZCBvcHRpb25hbCBwb3N0IENUUyBmaWxlIChwbHVnLWluKQotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCi0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjpzb3VyY2VfcGx1ZyBwb3N0X2N0c190Y2wgMF0KLSAgICAgIGlmIHtbbGluZGV4IFtzcGxpdCAkdmFycyh2ZXJzaW9uKSAiLiJdICAwXSA8PSAxNH0gewotICAgICAgICAgaWYge1tyZWdleHAgIl5jY29wdCIgJHZhcnMoY3RzX2VuZ2luZSldICYmICgkdmFycyhjY29wdF9lZmZvcnQpICE9ICJsb3ciKX0gewotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6c291cmNlX3BsdWcgcG9zdF9wb3N0Y3RzX3RjbCAwXQotICAgICAgICAgICAgaWYgeyR2YXJzKHBvc3RjdHNfc2V0dXBfaG9sZCl9IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OnNvdXJjZV9wbHVnIHBvc3RfcG9zdGN0c19ob2xkX3RjbF0KLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0gCi0gICAgICB9IGVsc2UgewotICAgICAgICAgaWYgeyR2YXJzKGNjb3B0X2VmZm9ydCkgIT0gImxvdyJ9IHsKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OnNvdXJjZV9wbHVnIHBvc3RfcG9zdGN0c190Y2wgMF0KLSAgICAgICAgICAgIGlmIHskdmFycyhwb3N0Y3RzX3NldHVwX2hvbGQpfSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjpzb3VyY2VfcGx1ZyBwb3N0X3Bvc3RjdHNfaG9sZF90Y2xdCi0gICAgICAgICAgICB9Ci0gICAgICAgICB9IAotICAgICAgfQotCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAjIFJlc2V0IGNsb2NrIGdhdGluZyBjZWxsIHVzYWdlCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0KLSAgICAgIGlmIHskdmFycyhoaWVyX2Zsb3dfdHlwZSkgPT0gIjJwYXNzIn0gewotICAgICAgICAgc2V0IHB0biBbZmlsZSB0YWlsIFtwd2RdXQotICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKHBhcnRpdGlvbl9saXN0KV0gJiYgKFtsc2VhcmNoICR2YXJzKHBhcnRpdGlvbl9saXN0KSAkcHRuXSAhPSAtMSkgJiYgISR2YXJzKGVuYWJsZV9mbGV4aWxtKX0gewotICAgICAgICAgICAgaWYge1tzdHJpbmcgY29tcGFyZSAtbm9jYXNlICR2YXJzKGRic19mb3JtYXQpICJmZSJdPT0wfSB7Ci0gICAgICAgICAgICAgICBzZXQgY29tbWFuZCAiY3JlYXRlSW50ZXJmYWNlTG9naWMgLW1vZGVsVHlwZSB0aW1pbmcgLWRpciAkcHRuLmlsbSAtaG9sZFxuIgotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIGlmIHtbbGluZGV4IFtzcGxpdCAkdmFycyh2ZXJzaW9uKSAiLiJdICAwXSA+IDEwfSB7Ci0gICAgICAgICAgICAgICAgICBzZXQgY29tbWFuZCAiY3JlYXRlSW50ZXJmYWNlTG9naWMgLW1vZGVsVHlwZSB0aW1pbmcgLWNlbGx2aWV3IHskdmFycyhvYV9wYXJ0aXRpb25fbGliKSAkcHRuIGFic3RyYWN0fVxuIgotICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgIHNldCBjb21tYW5kICJjcmVhdGVJbnRlcmZhY2VMb2dpYyAtbW9kZWxUeXBlIHRpbWluZyAtZGlyICRwdG4uaWxtIC1ob2xkXG4iCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksY3JlYXRlX2lsbSAkY29tbWFuZF0KLSAgICAgICAgIH0KLSAgICAgIH0KLQotICAgICAgaWYgeyR2YXJzKGNvZGVnZW4pfSB7Ci0gICAgICAgICByZXR1cm4gJGNvbW1hbmRzCi0gICAgICB9IGVsc2UgewotICAgICAgICAgIHVwbGV2ZWwgIzAgZXZhbCAkY29tbWFuZHMKLSAgICAgIH0KLSAgIH0KLQotICAgcHJvYyBydW5fcHJlcm91dGUge3tmb3JtYXQgMX19IHsKLQotICAgICAgZ2xvYmFsIHZhcnMKLSAgICAgIGdsb2JhbCBlcnJvcnMKLQotICAgICAgc2V0IHZhcnMoc3RlcCkgcHJlcm91dGUKLSAgICAgIHNldCBjb21tYW5kcyAiIgotICAgICAgc2V0IHVjb21tZW50cyAiIgotCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAjIEluaXRpYWxpemUgc3RlcCAuLi4KLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLQotICAgICAgc2V0IGNvbW1hbmQgW0ZGX0VESTo6aW5pdGlhbGl6ZV9zdGVwIHBsYWNlXQotICAgICAgYXBwZW5kIGNvbW1hbmQgW0ZGX0VESTo6aW5pdGlhbGl6ZV9zdGVwIHByZWN0c10KLSAgICAgIGFwcGVuZCBjb21tYW5kIFtGRl9FREk6OmluaXRpYWxpemVfc3RlcCBjdHNdCi0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGX0VESTo6aW5zZXJ0X2NvbW1lbnRzXSAKLSAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCBwcmVyb3V0ZSxpbml0aWFsaXplX3N0ZXAgJGNvbW1hbmRdCi0KLSAgICAgIGlmIHskdmFycyh0b3ApICYmICgkdmFycyh1c2VyX21vZGUpID09ICJoaWVyIikgJiYgKCR2YXJzKGhpZXJfZmxvd190eXBlKSA9PSAiMnBhc3MiKSAmJiAkdmFycyhlbmFibGVfZmxleGlsbSl9IHsKLSAgICAgICAgICMgUmVhZCBQb3dlciBJbnRlbnQgaGVyZSAuLi4KLSAgICAgICAgIEZGX0VESTo6bm9ybWFsaXplX2ZpbGVzCi0gICAgICAgICBzZXQgY29tbWFuZCAiIgotICAgICAgICAgZm9yZWFjaCBwYXJ0ICR2YXJzKHBhcnRpdGlvbl9saXN0KSB7Ci0gICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJHBhcnQsaWxtX2RpcildICYmICgkdmFycyhjb2RlZ2VuKSB8fCBbZmlsZSBpc2RpcmVjdG9yeSAkdmFycygkcGFydCxpbG1fZGlyKV0pfSB7Ci0gICAgICAgICAgICAgICBpZiB7W2xpbmRleCBbc3BsaXQgJHZhcnModmVyc2lvbikgIi4iXSAgMF0gPD0gMTB9IHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJzcGVjaWZ5SWxtIC1jZWxsICRwYXJ0IC1kaXIgJHZhcnMoJHBhcnQsaWxtX2RpcilcbiIKLSAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgIGlmIHtbc3RyaW5nIGNvbXBhcmUgLW5vY2FzZSAkdmFycyhkYnNfZm9ybWF0KSAib2EiXT09MH0gewotICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgInNwZWNpZnlJbG0gLWNlbGwgJHBhcnRcbiIKLSAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAic3BlY2lmeUlsbSAtY2VsbCAkcGFydCAtZGlyICR2YXJzKCRwYXJ0LGlsbV9kaXIpXG4iCi0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgaWYge1tsaW5kZXggW3NwbGl0ICR2YXJzKHZlcnNpb24pICIuIl0gIDBdIDw9IDEwfSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAic3BlY2lmeUlsbSAtY2VsbCAkcGFydCAtZGlyIC4uLyRwYXJ0LyRwYXJ0LmlsbVxuIgotICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgaWYge1tzdHJpbmcgY29tcGFyZSAtbm9jYXNlICR2YXJzKGRic19mb3JtYXQpICJvYSJdPT0wfSB7Ci0gICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAic3BlY2lmeUlsbSAtY2VsbCAkcGFydFxuIgotICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJzcGVjaWZ5SWxtIC1jZWxsICRwYXJ0IC1kaXIgLi4vJHBhcnQvJHBhcnQuaWxtXG4iCi0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0gICAgICAgICBpZiB7JGNvbW1hbmQgIT0gIiJ9IHsKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxzcGVjaWZ5X2lsbSAkY29tbWFuZF0KLSAgICAgICAgIH0KLQotICAgICAgICAgc2V0IGNvbW1hbmQgW0ZGX0VESTo6aW5pdGlhbGl6ZV90aW1pbmcgbW1tY10KLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxpbml0aWFsaXplX3RpbWluZyAkY29tbWFuZF0KLSAgICAgICAgIGlmIHtbbGluZGV4IFtzcGxpdCAkdmFycyh2ZXJzaW9uKSAiLiJdICAwXSA8IDE0fSB7Ci0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGX0VESTo6bG9hZF9wb3dlcl9pbnRlbnRdCi0gICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRl9OT1ZVUzo6bG9hZF9wb3dlcl9pbnRlbnRdCi0gICAgICAgICB9Ci0gICAgICB9Ci0KLSAgICAgIGFwcGVuZCBjb21tYW5kcyAiUHV0cyBcIjxGRj4gUlVOTklORyBQUkUgUk9VVEUgT1BUSU1JWkFUSU9OIC4uLlwiXG4iCi0KLSAgICAgIGlmIHskdmFycyh2ZXJib3NlKX0gewotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgUlVOTklORyBQUkUgUk9VVEUgT1BUSU1JWkFUSU9OXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiNcbiIKLSAgICAgIH0KLQotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgIyBMb2FkIHByZS1DVFMgZmlsZSAocGx1Zy1pbikKLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OnNvdXJjZV9wbHVnIHByZV9wcmVyb3V0ZV90Y2xdCi0KLSAgICAgIHNldCBjbG9ja19nYXRlX2NlbGxzIFtsaXN0XQotICAgICAgc2V0IGNvbW1hbmQgIiIKLSAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhjbG9ja19nYXRlX2NlbGxzKV19IHsKLSAgICAgICAgIHNldCBjbG9ja19nYXRlX2NlbGxzICR2YXJzKGNsb2NrX2dhdGVfY2VsbHMpCi0gICAgICAgICBmb3JlYWNoIGNlbGwgJGNsb2NrX2dhdGVfY2VsbHMgewotICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJzZXREb250VXNlICRjZWxsIGZhbHNlXG4iCi0gICAgICAgICB9Ci0gICAgICB9Ci0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgY3RzLGVuYWJsZV9jbG9ja19nYXRlX2NlbGxzICRjb21tYW5kXQotCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAjIFJ1biBwcmUtcm91dGUgb3B0aW1pemF0aW9uIGZsb3cKLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLQotICAgICAgc2V0IGNvbW1hbmQgIiIKLQotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgIyBVcGRhdGUgdGltaW5nIGJhc2VkIG9uIHZhcnMoPG1vZGU+LGluY3JfY3RzX3NkYykgYW5kCi0gICAgICAjIHZhcnMoPG1vZGU+LHBvc3RfY3RzX3NkYykKLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLQotICAgICAgc2V0IGNvbW1hbmQgW0ZGX0VESTo6dXBkYXRlX3RpbWluZyBtbW1jXQotICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kIGN0cyx1cGRhdGVfdGltaW5nICRjb21tYW5kXQotICAgICAgc2V0IGNvbW1hbmQgW0ZGX0VESTo6ZGVyYXRlX3RpbWluZyBtbW1jXQotICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLGRlcmF0ZV90aW1pbmcgJGNvbW1hbmRdCi0KLSAgICAgIGlmIHskdmFycyhpbG0pICYmIFtpbmZvIGV4aXN0cyB2YXJzKGlsbV9ub25fc2RjX2ZpbGUpXX0gewotICAgICAgICAgaWYge1tmaWxlIGV4aXN0cyAkdmFycyhpbG1fbm9uX3NkY19maWxlKV19IHsKLSAgICAgICAgICAgIHNldCBjb21tYW5kICJzZXRJbG1Ob25TZGNDb25zdHJhaW50RmlsZSAkdmFycyhpbG1fbm9uX3NkY19maWxlKVxuIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXIoc3RlcCksbG9hZF9pbG1fbm9uX3NkY19maWxlICRjb21tYW5kXQotICAgICAgICAgfQotICAgICAgfQotCi0gICAgICBzZXQgY29tbWFuZCAicHJlcm91dGVfb3B0X2Rlc2lnbiAtcHJlZml4ICR2YXJzKHN0ZXApIC1vdXRfZGlyICR2YXJzKHJwdF9kaXIpXG4iCi0KLSAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCBwcmVyb3V0ZSxvcHRfZGVzaWduICRjb21tYW5kXQotCi0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjpzb3VyY2VfcGx1ZyBwb3N0X3ByZXJvdXRlX3RjbF0KLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICMgUmVzZXQgY2xvY2sgZ2F0aW5nIGNlbGwgdXNhZ2UKLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLQotICAgICAgaWYgeyR2YXJzKGhpZXJfZmxvd190eXBlKSA9PSAiMnBhc3MifSB7Ci0gICAgICAgICBzZXQgcHRuIFtmaWxlIHRhaWwgW3B3ZF1dCi0gICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMocGFydGl0aW9uX2xpc3QpXSAmJiAoW2xzZWFyY2ggJHZhcnMocGFydGl0aW9uX2xpc3QpICRwdG5dICE9IC0xKSAmJiAhJHZhcnMoZW5hYmxlX2ZsZXhpbG0pfSB7Ci0gICAgICAgICAgICBpZiB7W3N0cmluZyBjb21wYXJlIC1ub2Nhc2UgJHZhcnMoZGJzX2Zvcm1hdCkgImZlIl09PTB9IHsKLSAgICAgICAgICAgICAgIHNldCBjb21tYW5kICJjcmVhdGVJbnRlcmZhY2VMb2dpYyAtbW9kZWxUeXBlIHRpbWluZyAtZGlyICRwdG4uaWxtIC1ob2xkXG4iCi0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgImNyZWF0ZUludGVyZmFjZUxvZ2ljIC1tb2RlbFR5cGUgdGltaW5nIC1jZWxsdmlldyB7JHZhcnMob2FfcGFydGl0aW9uX2xpYikgJHB0biBhYnN0cmFjdH1cbiIKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxjcmVhdGVfaWxtICRjb21tYW5kXQotICAgICAgICAgfQotICAgICAgfQotCi0gICAgICBpZiB7JHZhcnMoY29kZWdlbil9IHsKLSAgICAgICAgIHJldHVybiAkY29tbWFuZHMKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgdXBsZXZlbCAjMCBldmFsICRjb21tYW5kcwotICAgICAgfQotICAgfQotCi0gICBwcm9jIHJ1bl9wb3N0Y3RzIHt7Zm9ybWF0IDF9fSB7Ci0KLSAgICAgIGdsb2JhbCB2YXJzCi0gICAgICBnbG9iYWwgZW52Ci0gICAgICBnbG9iYWwgZXJyb3JzCi0KLSMgICAgICBpZiB7KCR2YXJzKHNraXBfY3RzKSkgfHwgW3JlZ2V4cCAiXmNjb3B0IiBbc3RyaW5nIHRvbG93ZXIgJHZhcnMoY3RzX2VuZ2luZSldXX0gewotIyAgICAgICAgIGlmIHskdmFycyhjdHNfZW5naW5lKSAhPSAiY2NvcHRfY3RzIn0gewotIyAgICAgICAgICAgIHJldHVybiAiIgotIyAgICAgICAgIH0KLSMgICAgICB9Ci0KLSAgICAgaWYgeyR2YXJzKHNraXBfY3RzKX0geyByZXR1cm4gIiIgfQotCi0gICAgIGlmIHtbbGluZGV4IFtzcGxpdCAkdmFycyh2ZXJzaW9uKSAiLiJdICAwXSA8PSAxNH0gewotICAgICAgICBpZiB7W3JlZ2V4cCAiXmNjb3B0IiBbc3RyaW5nIHRvbG93ZXIgJHZhcnMoY3RzX2VuZ2luZSldXSAmJiAoJHZhcnMoY2NvcHRfZWZmb3J0KSAhPSAibG93Iil9IHsKLSAgICAgICAgICAgcmV0dXJuICIiCi0gICAgICAgIH0KLSAgICAgfSBlbHNlIHsKLSAgICAgICAgaWYge1tzdHJpbmcgdG9sb3dlciAkdmFycyhjdHNfZW5naW5lKV0gPT0gImNjb3B0In0geyAKLSAgICAgICAgICAgcmV0dXJuICIiCi0gICAgICAgIH0KLSMgICAgICAgIGlmIHskdmFycyhjY29wdF9lZmZvcnQpICE9ICJsb3cifSB7Ci0jICAgICAgICAgICByZXR1cm4gIiIKLSMgICAgICAgIH0KLSAgICAgfQotCi0gICAgICBzZXQgdmFycyhzdGVwKSBwb3N0Y3RzCi0gICAgICBzZXQgY29tbWFuZHMgIiIKLSMgICAgICBhcHBlbmQgY29tbWFuZHMgInNldCB2YXJzKHN0ZXApICR2YXJzKHN0ZXApXG4iCi0gCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAjIEluaXRpYWxpemUgc3RlcCAuLi4KLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLQotICAgICAgc2V0IGNvbW1hbmQgW0ZGX0VESTo6aW5pdGlhbGl6ZV9zdGVwIHBvc3RjdHNdCi0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGX0VESTo6aW5zZXJ0X2NvbW1lbnRzXSAKLSAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCBwb3N0Y3RzLGluaXRpYWxpemVfc3RlcCAkY29tbWFuZF0KLQotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgIyBTcGVjaWZ5IHRoZSBJTE0gbW9kZWxzIGZvciB0aGUgdG9wIHBhcnRpdGlvbiAob25seSBmb3IgMnBhc3MgZmxvdykKLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgIGlmIHskdmFycyh0b3ApICYmICgkdmFycyh1c2VyX21vZGUpID09ICJoaWVyIikgJiYgKCR2YXJzKGhpZXJfZmxvd190eXBlKSA9PSAiMnBhc3MiKSAmJiAhJHZhcnMoZW5hYmxlX2ZsZXhpbG0pfSB7Ci0jICAgICAgICAgaWYgeyEkKHZhcnMoYmxhY2tfYm94KX0geyAKLSAgICAgICAgICAgIHNldCBjb21tYW5kICIiCi0gICAgICAgICAgICBmb3JlYWNoIHBhcnQgJHZhcnMocGFydGl0aW9uX2xpc3QpIHsKLSAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkcGFydCxpbG1fZGlyKV0gJiYgKCR2YXJzKGNvZGVnZW4pIHx8IFtmaWxlIGlzZGlyZWN0b3J5ICR2YXJzKCRwYXJ0LGlsbV9kaXIpXSl9IHsKLSAgICAgICAgICAgICAgICAgIGlmIHtbbGluZGV4IFtzcGxpdCAkdmFycyh2ZXJzaW9uKSAiLiJdICAwXSA8PSAxMH0gewotICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgInNwZWNpZnlJbG0gLWNlbGwgJHBhcnQgLWRpciAkdmFycygkcGFydCxpbG1fZGlyKVxuIgotICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgaWYge1tzdHJpbmcgY29tcGFyZSAtbm9jYXNlICR2YXJzKGRic19mb3JtYXQpICJvYSJdPT0wfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAic3BlY2lmeUlsbSAtY2VsbCAkcGFydFxuIgotICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJzcGVjaWZ5SWxtIC1jZWxsICRwYXJ0IC1kaXIgJHZhcnMoJHBhcnQsaWxtX2RpcilcbiIKLSAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICBpZiB7W2xpbmRleCBbc3BsaXQgJHZhcnModmVyc2lvbikgIi4iXSAgMF0gPD0gMTB9IHsKLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJzcGVjaWZ5SWxtIC1jZWxsICRwYXJ0IC1kaXIgLi4vJHBhcnQvJHBhcnQuaWxtXG4iCi0gICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICBpZiB7W3N0cmluZyBjb21wYXJlIC1ub2Nhc2UgJHZhcnMoZGJzX2Zvcm1hdCkgIm9hIl09PTB9IHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJzcGVjaWZ5SWxtIC1jZWxsICRwYXJ0XG4iCi0gICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgInNwZWNpZnlJbG0gLWNlbGwgJHBhcnQgLWRpciAuLi8kcGFydC8kcGFydC5pbG1cbiIKLSAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIHskY29tbWFuZCAhPSAiIn0gewotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHNwZWNpZnlfaWxtICRjb21tYW5kXQotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgeyR2YXJzKGZsb3cpID09ICJtbW1jIn0gewotICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgW0ZGX0VESTo6dXBkYXRlX3RpbWluZyBtbW1jXQotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kIHBvc3RjdHMsdXBkYXRlX3RpbWluZyAkY29tbWFuZF0KLSAgICAgICAgICAgICAgIHNldCBjb21tYW5kIFtGRl9FREk6OmRlcmF0ZV90aW1pbmcgbW1tY10KLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxkZXJhdGVfdGltaW5nICRjb21tYW5kXQotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIHNldCBjb21tYW5kIFtGRl9FREk6OnVwZGF0ZV90aW1pbmcgbWlubWF4XQotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kIHBvc3RjdHMsdXBkYXRlX3RpbWluZyAkY29tbWFuZF0KLSAgICAgICAgICAgICAgIHNldCBjb21tYW5kIFtGRl9FREk6OmRlcmF0ZV90aW1pbmcgbWlubWF4XQotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLGRlcmF0ZV90aW1pbmcgJGNvbW1hbmRdCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiB7JHZhcnMoaWxtKSAmJiBbaW5mbyBleGlzdHMgdmFycyhpbG1fbm9uX3NkY19maWxlKV19IHsKLSAgICAgICAgICAgICAgIGlmIHtbZmlsZSBleGlzdHMgJHZhcnMoaWxtX25vbl9zZGNfZmlsZSldfSB7Ci0gICAgICAgICAgICAgICAgICBpZiB7W2xpbmRleCBbc3BsaXQgJHZhcnModmVyc2lvbikgIi4iXSAgMF0gPD0gMTB9IHsKLSAgICAgICAgICAgICAgICAgICAgIHNldCBjb21tYW5kICJsb2FkVGltaW5nQ29uIC1pbG1Ob25TZGNGaWxlICR2YXJzKGlsbV9ub25fc2RjX2ZpbGUpXG4iCi0gICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgInNldElsbU5vblNkY0NvbnN0cmFpbnRGaWxlICR2YXJzKGlsbV9ub25fc2RjX2ZpbGUpXG4iCi0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksbG9hZF9pbG1fbm9uX3NkY19maWxlICRjb21tYW5kXQotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotIyAgICAgICAgIH0KLQotIyAgICAgICAgIHNldCBjb21tYW5kIFtGRl9FREk6OmluaXRpYWxpemVfdGltaW5nIG1tbWNdCi0jICAgICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycyhjcGZfZmlsZSldfSB7Ci0jICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLGluaXRpYWxpemVfdGltaW5nICRjb21tYW5kXQotIyAgICAgICAgIH0gZWxzZSB7Ci0jICAgICAgICAgICAgc2V0IGRlZmVyX2NvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLGluaXRpYWxpemVfdGltaW5nICRjb21tYW5kXSAKLSMgICAgICAgICB9Ci0gICAgICB9Ci0KLSAgICAgIGFwcGVuZCBjb21tYW5kcyAiUHV0cyBcIjxGRj4gUlVOTklORyBQT1NULUNUUyBPUFRJTUlaQVRJT04gLi4uXCJcbiIKLQotICAgICAgaWYgeyR2YXJzKHZlcmJvc2UpfSB7Ci0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiNcbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyBSVU5OSU5HIFBPU1QtQ1RTIE9QVElNSVpBVElPTlxuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjXG4iCi0gICAgICB9Ci0KLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICMgTG9hZCBvcHRpb25hbCBwcmUgcG9zdENUUyBmaWxlIChwbHVnLWluKQotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCi0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjpzb3VyY2VfcGx1ZyBwcmVfcG9zdGN0c190Y2xdCi0KLSAgICAgIGlmIHtbbGluZGV4IFtzcGxpdCAkdmFycyh2ZXJzaW9uKSAiLiJdICAwXSA8PSAxNH0gewotICAgICAgICAgaWYgeyR2YXJzKGN0c19lbmdpbmUpID09ICJjY29wdCIgJiYgJHZhcnMoY2NvcHRfaW50ZWdyYXRpb24pID09ICJuYXRpdmUifSB7Ci0gICAgICAgICAgICBzZXQgY29tbWFuZCAiUHV0cyBcIjxGRj4gTk8gUE9TVC1DVFMgT1BUSU1JWkFUSU9OIFJFUVVJUkVEIEZPUiBDQ09QVCBOQVRJVkUgSU5URUdSQVRJT05cIlxuIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kIHBvc3RjdHMsb3B0X2Rlc2lnbiAkY29tbWFuZF0KLSAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAgICAgICAjIFJ1biBwb3N0LUNUUyBvcHRpbWl6YXRpb24KLSAgICAgICAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICAgICAgIAotICAgICAgICAgICAgc2V0IGNvbW1hbmQgIm9wdERlc2lnbiAtcG9zdENUUyAtb3V0RGlyICR2YXJzKHJwdF9kaXIpIC1wcmVmaXggcG9zdGN0c1xuIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kIHBvc3RjdHMsb3B0X2Rlc2lnbiAkY29tbWFuZF0KLSAgICAgICAgIH0KLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgICBpZiB7JHZhcnMoY3RzX2VuZ2luZSkgPT0gImNjb3B0X2N0cyJ9IHsKLSAgICAgICAgICAgIHNldCBjb21tYW5kICJvcHREZXNpZ24gLXBvc3RDVFMgLW91dERpciAkdmFycyhycHRfZGlyKSAtcHJlZml4IHBvc3RjdHNcbiIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCBwb3N0Y3RzLG9wdF9kZXNpZ24gJGNvbW1hbmRdCi0gICAgICAgICAgfQotICAgICAgIH0KLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICMgTG9hZCBvcHRpb25hbCBwb3N0IHBvc3RDVFMgZmlsZSAocGx1Zy1pbikKLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLQotICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6c291cmNlX3BsdWcgcG9zdF9wb3N0Y3RzX3RjbCAwXQotICAgICAgaWYgeyR2YXJzKGNvZGVnZW4pfSB7Ci0gICAgICAgICByZXR1cm4gJGNvbW1hbmRzCi0gICAgICB9IGVsc2UgewotICAgICAgICAgIHVwbGV2ZWwgIzAgZXZhbCAkY29tbWFuZHMKLSAgICAgIH0KLSAgIH0KLQotICAgcHJvYyBydW5fcG9zdGN0c19ob2xkIHt7Zm9ybWF0IDF9fSB7Ci0KLSAgICAgIGdsb2JhbCB2YXJzCi0gICAgICBnbG9iYWwgZW52Ci0gICAgICBnbG9iYWwgZXJyb3JzCi0KLSAgICAgIGlmIHskdmFycyhza2lwX2N0cykgfHwgKFtsc2VhcmNoICR2YXJzKGZpeF9ob2xkKSBwb3N0Y3RzXSA8IDApIHx8ICgkdmFycyhwb3N0Y3RzX3NldHVwX2hvbGQpICYmICgkdmFycyhjdHNfZW5naW5lKSAhPSAiY2NvcHRfY3RzIikpfSB7Ci0gICAgICAgICByZXR1cm4gIiIKLSAgICAgIH0KLQotICAgICAgc2V0IHZhcnMoc3RlcCkgcG9zdGN0c19ob2xkCi0gICAgICBzZXQgY29tbWFuZHMgIiIgCi0jICAgICAgYXBwZW5kIGNvbW1hbmRzICJzZXQgdmFycyhzdGVwKSAkdmFycyhzdGVwKVxuIgotCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAjIEluaXRpYWxpemUgc3RlcCAuLi4KLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLQotICAgICAgc2V0IGNvbW1hbmQgW0ZGX0VESTo6aW5pdGlhbGl6ZV9zdGVwIHBvc3RjdHNfaG9sZF0KLSAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkZfRURJOjppbnNlcnRfY29tbWVudHNdIAotICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kIHBvc3RjdHNfaG9sZCxpbml0aWFsaXplX3N0ZXAgJGNvbW1hbmRdCi0KLSAgICAgIGFwcGVuZCBjb21tYW5kcyAiUHV0cyBcIjxGRj4gUlVOTklORyBQT1NULUNUUyBIT0xEIEZJWElORyAuLi5cIlxuIgotCi0gICAgICBpZiB7JHZhcnModmVyYm9zZSl9IHsKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiI1xuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjIFJVTk5JTkcgUE9TVC1DVFMgSE9MRCBGSVhJTkdcbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiI1xuIgotICAgICAgfQotCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAjIExvYWQgcHJlLXBvc3RDVFMgaG9sZCBmaWxlIChwbHVnLWluKQotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCi0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjpzb3VyY2VfcGx1ZyBwcmVfcG9zdGN0c19ob2xkX3RjbF0KLQotICAgICAgc2V0IGNvbW1hbmQgIm9wdERlc2lnbiAtcG9zdENUUyAtaG9sZCAtb3V0RGlyICR2YXJzKHJwdF9kaXIpIC1wcmVmaXggcG9zdGN0c19ob2xkXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgcG9zdGN0c19ob2xkLG9wdF9kZXNpZ24gJGNvbW1hbmRdCi0KLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICMgTG9hZCBwb3N0LXBvc3RDVFMgaG9sZCBmaWxlIChwbHVnLWluKQotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCi0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjpzb3VyY2VfcGx1ZyBwb3N0X3Bvc3RjdHNfaG9sZF90Y2wgMF0KLQotICAgICAgaWYgeyR2YXJzKGNvZGVnZW4pfSB7Ci0gICAgICAgICByZXR1cm4gJGNvbW1hbmRzCi0gICAgICB9IGVsc2UgewotICAgICAgICAgIHVwbGV2ZWwgIzAgZXZhbCAkY29tbWFuZHMKLSAgICAgIH0KLSAgIH0KLQotICAgcHJvYyBydW5fcm91dGUge3tmb3JtYXQgMX19IHsKLQotICAgICAgZ2xvYmFsIHZhcnMKLSAgICAgIGdsb2JhbCBlbnYKLSAgICAgIGdsb2JhbCBlcnJvcnMKLQotICAgICAgc2V0IHZhcnMoc3RlcCkgcm91dGUKLSAgICAgIHNldCBjb21tYW5kcyAiIgotIyAgICAgIGFwcGVuZCBjb21tYW5kcyAic2V0IHZhcnMoc3RlcCkgJHZhcnMoc3RlcClcbiIKLQotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgIyBJbml0aWFsaXplIHN0ZXAgLi4uCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0KLSAgICAgIHNldCBjb21tYW5kIFtGRl9FREk6OmluaXRpYWxpemVfc3RlcCByb3V0ZV0KLSAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkZfRURJOjppbnNlcnRfY29tbWVudHNdIAotICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kIHJvdXRlLGluaXRpYWxpemVfc3RlcCAkY29tbWFuZF0KLSAgICAgIHNldCBjb21tYW5kIFtGRl9FREk6OmFkZF9maWxsZXJfY2VsbHNdCi0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgcm91dGUsYWRkX2ZpbGxlcl9jZWxscyAkY29tbWFuZF0KLQotICAgICAgYXBwZW5kIGNvbW1hbmRzICJQdXRzIFwiPEZGPiBSVU5OSU5HIEdMT0JBTC9ERVRBSUwgUk9VVElORyAuLi5cIlxuIgotCi0gICAgICBpZiB7JHZhcnModmVyYm9zZSl9IHsKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiI1xuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjIFJVTk5JTkcgR0xPQkFML0RFVEFJTCBST1VUSU5HXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiNcbiIKLSAgICAgIH0KLQotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgIyBMb2FkIG9wdGlvbmFsIHByZSByb3V0ZSBmaWxlIChwbHVnLWluKQotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCi0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjpzb3VyY2VfcGx1ZyBwcmVfcm91dGVfdGNsXQotCi0gICAgICBzZXQgY29tbWFuZCBbRkZfRURJOjpyb3V0ZV9zZWNvbmRhcnlfcGdfbmV0c10KLSAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCByb3V0ZSxyb3V0ZV9zZWNvbmRhcnlfcGdfbmV0cyAkY29tbWFuZF0KLQotICAgICAgc2V0IGNvbW1hbmQgImNoZWNrUGxhY2UgJHZhcnMocnB0X2RpcikvJHZhcnMoc3RlcCksY2hlY2tfcGxhY2UucnB0XG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgcm91dGUsY2hlY2tfcGxhY2UgJGNvbW1hbmRdCi0KLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICMgUm91dGUgdGhlIGRlc2lnbgotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCi0gICAgICBzZXQgY29tbWFuZCAiIgotICAgICAgc2V0IGFyZ3MgIiIKLSAgICAgIGlmIHsoJHZhcnMoZW5hYmxlX29jdikgPT0gInByZV9wb3N0cm91dGUiKSB8fCAoJHZhcnMoZW5hYmxlX29jdikgPT0gInByZV9wb3N0Y3RzIil9IHsKLSMgICAgICAgICBpZiB7JHZhcnMoZmxvdykgIT0gImRlZmF1bHQifSB7Ci0gICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKGVuYWJsZV9vY3YpXG4iCi0gICAgICAgICAgICBhcHBlbmQgYXJncyAiLWFuYWx5c2lzVHlwZSBvbkNoaXBWYXJpYXRpb24gIgotIyAgICAgICAgIH0KLSAgICAgICAgIGlmIHskdmFycyhlbmFibGVfYW9jdil9IHsKLSAgICAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMoZW5hYmxlX2FvY3YpXG4iCi0gICAgICAgICAgICBhcHBlbmQgYXJncyAiLWFvY3YgdHJ1ZSAiCi0gICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMoZW5hYmxlX2FvY3YpXG4iCi0gICAgICAgICB9Ci0gICAgICAgICBpZiB7JHZhcnMoZW5hYmxlX3NvY3YpfSB7Ci0gICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKGVuYWJsZV9zb2N2KVxuIgotICAgICAgICAgICAgYXBwZW5kIGFyZ3MgIi1zb2N2IHRydWUgIgotICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKGVuYWJsZV9zb2N2KVxuIgotICAgICAgICAgfQotICAgICAgfSBlbHNlIHsKLSAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKGVuYWJsZV9vY3YpIFwicHJlX3Bvc3Ryb3V0ZVwiXG4iCi0gICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhlbmFibGVfYW9jdikgXCJ0cnVlXCJcbiIKLSAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKGVuYWJsZV9zb2N2KSBcInRydWVcIlxuIgotICAgICAgfQotICAgICAgaWYgeyRhcmdzICE9ICIifSB7Ci0gICAgICAgICBzZXQgY29tbWFuZCAic2V0QW5hbHlzaXNNb2RlICRhcmdzXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgcm91dGUsc2V0X2FuYWx5c2lzX21vZGUgJGNvbW1hbmRdCi0gICAgICB9Ci0KLSAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhwb3N0cm91dGVfc3ByZWFkX3dpcmVzKV0gJiYgISR2YXJzKHBvc3Ryb3V0ZV9zcHJlYWRfd2lyZXMpfSB7Ci0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgInNldE5hbm9Sb3V0ZU1vZGUgLWRyb3V0ZVBvc3RSb3V0ZVNwcmVhZFdpcmUgZmFsc2VcbiIKLSAgICAgIH0KLQotICAgICAgc2V0IGNvbW1hbmQgInJvdXRlRGVzaWduIgotICAgICAgaWYgeyR2YXJzKHRyYWNrX29wdCl9IHsKLSAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnModHJhY2tfb3B0KVxuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAtdHJhY2tPcHQiCi0gICAgICB9IGVsc2UgewotICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnModHJhY2tfb3B0KVxuIgotICAgICAgfQotCi0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgcm91dGUscm91dGVfZGVzaWduICIkY29tbWFuZFxuIl0KLQotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgIyBSdW4gY2tFQ08gaWYgcmVxdWVzdGVkCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0KLSAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhjbG9ja19lY28pXSAmJiAoKCR2YXJzKGNsb2NrX2VjbykgPT0gInBvc3Rfcm91dGUiKSB8fCAoJHZhcnMoY2xvY2tfZWNvKSA9PSAiYm90aCIpKX0gewotICAgICAgICAgc2V0IGNvbW1hbmQgW0ZGX0VESTo6cnVuX2Nsb2NrX2VjbyBwb3N0X3JvdXRlXQotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kIHJvdXRlLHJ1bl9jbG9ja19lY28gJGNvbW1hbmRdCi0gICAgICB9Ci0KLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICMgT3B0aW9uYWxseSBydW4gd2lyZSBzcHJlYWRpbmcKLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLQotICAgICAgaWYge1tyZWdzdWIgIm5tIiAkdmFycyhwcm9jZXNzKSAiIl0gPiAxNn0gewotICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMocG9zdHJvdXRlX3NwcmVhZF93aXJlcyldICYmICR2YXJzKHBvc3Ryb3V0ZV9zcHJlYWRfd2lyZXMpfSB7Ci0gICAgICAgICAgc2V0IGNvbW1hbmQgInNldE5hbm9Sb3V0ZU1vZGUgLWRyb3V0ZVBvc3RSb3V0ZVNwcmVhZFdpcmUgdHJ1ZSAtcm91dGVXaXRoVGltaW5nRHJpdmVuIGZhbHNlXG4iCi0gICAgICAgICAgYXBwZW5kIGNvbW1hbmQgInJvdXRlRGVzaWduIC13aXJlT3B0XG4iCi0gICAgICAgICAgYXBwZW5kIGNvbW1hbmQgInNldE5hbm9Sb3V0ZU1vZGUgLWRyb3V0ZVBvc3RSb3V0ZVNwcmVhZFdpcmUgZmFsc2VcbiIKLSAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgcm91dGUsc3ByZWFkX3dpcmVzICRjb21tYW5kXQotICAgICAgICB9Ci0gICAgICB9Ci0KLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICMgT3B0aW9uYWxseSBydW4gTFBBCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0KLSAgICAgIGlmIHskdmFycyh2ZXJpZnlfbGl0aG8pfSB7Ci0gICAgICAgICBmaWxlIG1rZGlyICR2YXJzKHJwdF9kaXIpL0xQQS9ETUMKLSAgICAgICAgIHNldCBjb21tYW5kICJ2ZXJpZnlMaXRobyAtcm91dGluZ0xheWVyc09ubHkgLXRlY2hGaWxlICR2YXJzKGxwYV90ZWNoX2ZpbGUpIC1kaXIgJHZhcnMocnB0X2RpcikvTFBBXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZCAidmlvbGF0aW9uQnJvd3NlciAtYWxsIC1ub19kaXNwbGF5X2ZhbHNlXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZCAibG9hZFZpb2xhdGlvblJlcG9ydCAtdHlwZSBDRE5MaXRobyAtZmlsZW5hbWUgJHZhcnMocnB0X2RpcikvTFBBL0RNQy9tZXJnZWQuaGlmXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgcm91dGUsdmVyaWZ5X2xpdGhvICRjb21tYW5kXQotICAgICAgfQotCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAjIFNldCBleHRyYWN0aW9uIG1vZGUgdG8gcG9zdHJvdXRlCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICBzZXQgY29tbWFuZCAic2V0RXh0cmFjdFJDTW9kZSAtZW5naW5lIHBvc3RSb3V0ZSIKLSAgICAgIGlmIHshW2NhdGNoIHtzZXQgYXJnICR2YXJzKHBvc3Ryb3V0ZV9leHRyYWN0aW9uX2VmZm9ydCl9XX0gewotICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhwb3N0cm91dGVfZXh0cmFjdGlvbl9lZmZvcnQpXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZCAiIC1lZmZvcnRMZXZlbCAkYXJnIgotICAgICAgfSBlbHNlIHsKLSAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKHBvc3Ryb3V0ZV9leHRyYWN0aW9uX2VmZm9ydClcbiIKLSAgICAgIH0KLSAgICAgIGlmIHshW2NhdGNoIHtzZXQgYXJnICR2YXJzKHRvdGFsX2NfdGhyZXNoKX1dfSB7Ci0gICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKHRvdGFsX2NfdGhyZXNoKVxuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAtdG90YWxfY190aCAkYXJnIgotICAgICAgfSBlbHNlIHsKLSAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKHRvdGFsX2NfdGhyZXNoKVxuIgotICAgICAgfQotICAgICAgaWYgeyFbY2F0Y2gge3NldCBhcmcgJHZhcnMocmVsYXRpdmVfY190aHJlc2gpfV19IHsKLSAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMocmVsYXRpdmVfY190aHJlc2gpXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZCAiIC1yZWxhdGl2ZV9jX3RoICRhcmciCi0gICAgICB9IGVsc2UgewotICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMocmVsYXRpdmVfY190aHJlc2gpXG4iCi0gICAgICB9Ci0gICAgICBpZiB7IVtjYXRjaCB7c2V0IGFyZyAkdmFycyhjb3VwbGluZ19jX3RocmVzaCl9XX0gewotICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhjb3VwbGluZ19jX3RocmVzaClcbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgLWNvdXBsaW5nX2NfdGggJGFyZyIKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhyZWxhdGl2ZV9jX3RocmVzaClcbiIKLSAgICAgIH0KLSAgICAgIGlmIHshW2NhdGNoIHtzZXQgYXJnICR2YXJzKHFyY19sYXllcl9tYXApfV19IHsKLSAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMocXJjX2xheWVyX21hcClcbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgLWxlZlRlY2hGaWxlTWFwICRhcmciCi0gICAgICB9IGVsc2UgewotICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMocXJjX2xheWVyX21hcClcbiIKLSAgICAgIH0KLSAgICAgIGFwcGVuZCBjb21tYW5kICJcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCByb3V0ZSxzZXRfZXh0cmFjdF9yY19tb2RlICRjb21tYW5kXQotCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAjIExvYWQgb3B0aW9uYWwgcG9zdCByb3V0ZSBmaWxlIChwbHVnLWluKQotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCi0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjpzb3VyY2VfcGx1ZyBwb3N0X3JvdXRlX3RjbCAwXQotCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAjIFVwZGF0ZSB0byBNTU1DIGlmIGZsb3cgaXMgInByX21tbWMiCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0KLSAgICAgIGlmIHskdmFycyhmbG93KSAhPSAiZGVmYXVsdCJ9IHsKLSAgICAgICAgIGlmIHskdmFycyhmbG93KSA9PSAicHJfbW1tYyJ9IHsKLSAgICAgICAgICAgIHNldCBjb21tYW5kIFtGRl9FREk6OmluaXRpYWxpemVfdGltaW5nIG1tbWNdCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgcm91dGUsaW5pdGlhbGl6ZV90aW1pbmcgJGNvbW1hbmRdCi0gICAgICAgICB9Ci0gICAgICB9Ci0KLSAgICAgIGlmIHshW2luZm8gZXhpc3RzIHZhcnModGltZV9kZXNpZ25fb3B0aW9ucyxzZXR1cCldfSB7Ci0gICAgICAgICBzZXQgY29tbWFuZCAidGltZURlc2lnbiAtcG9zdHJvdXRlIC1wcmVmaXggcm91dGUgLW91dERpciAkdmFycyhycHRfZGlyKVxuIgotICAgICAgfSBlbHNlIHsKLSAgICAgICAgIHNldCBjb21tYW5kIFtmb3JtYXQgInRpbWVEZXNpZ24gLXBvc3Ryb3V0ZSAtcHJlZml4IHJvdXRlIC1vdXREaXIgJHZhcnMocnB0X2RpcikgJXNcbiIgJHZhcnModGltZV9kZXNpZ25fb3B0aW9ucyxzZXR1cCldCi0gICAgICB9Ci0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgcm91dGUsdGltZV9kZXNpZ24gJGNvbW1hbmRdCi0KLSAgICAgIGlmIHskdmFycyhjb2RlZ2VuKX0gewotICAgICAgICAgcmV0dXJuICRjb21tYW5kcwotICAgICAgfSBlbHNlIHsKLSAgICAgICAgICB1cGxldmVsICMwIGV2YWwgJGNvbW1hbmRzCi0gICAgICB9Ci0gICB9Ci0KLSAgIHByb2MgcnVuX3Bvc3Ryb3V0ZSB7e2Zvcm1hdCAxfX0gewotCi0gICAgICBnbG9iYWwgdmFycwotICAgICAgZ2xvYmFsIGVudgotICAgICAgZ2xvYmFsIGVycm9ycwotCi0gICAgICBzZXQgdmFycyhzdGVwKSBwb3N0cm91dGUKLSAgICAgIHNldCBjb21tYW5kcyAgIiIKLSMgICAgICBhcHBlbmQgY29tbWFuZHMgInNldCB2YXJzKHN0ZXApICR2YXJzKHN0ZXApXG4iCi0KLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICMgSW5pdGlhbGl6ZSBzdGVwIC4uLgotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCi0gICAgICBpZiB7JHZhcnMocG9zdHJvdXRlX3NldHVwX2hvbGQpfSB7Ci0gICAgICAgICBzZXQgY29tbWFuZCBbRkZfRURJOjppbml0aWFsaXplX3N0ZXAgcG9zdHJvdXRlX2hvbGRdCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGX0VESTo6aW5zZXJ0X2NvbW1lbnRzXSAKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCBwb3N0cm91dGVfaG9sZCxpbml0aWFsaXplX3N0ZXAgJGNvbW1hbmRdCi0gICAgICB9Ci0KLSAgICAgIHNldCBjb21tYW5kIFtGRl9FREk6OmluaXRpYWxpemVfc3RlcCBwb3N0cm91dGVdCi0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGX0VESTo6aW5zZXJ0X2NvbW1lbnRzXSAKLSAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCBwb3N0cm91dGUsaW5pdGlhbGl6ZV9zdGVwICRjb21tYW5kXQotCi0gICAgICBpZiB7JHZhcnMobWV0YWxmaWxsKSA9PSAicHJlX3Bvc3Ryb3V0ZSJ9IHsKLSAgICAgICAgIHNldCBjb21tYW5kIFtGRjo6c291cmNlX3BsdWcgbWV0YWxmaWxsX3RjbF0KLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCBwb3N0cm91dGUsYWRkX21ldGFsZmlsbCAkY29tbWFuZF0KLSAgICAgIH0KLQotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgIyBSdW4gY2tFQ08gaWYgcmVxdWVzdGVkCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0KLSAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhjbG9ja19lY28pXSAmJiAoKCR2YXJzKGNsb2NrX2VjbykgPT0gInBvc3Rfcm91dGUiKSB8fCAoJHZhcnMoY2xvY2tfZWNvKSA9PSAiYm90aCIpKX0gewotICAgICAgICAgc2V0IGNvbW1hbmQgW0ZGX0VESTo6cnVuX2Nsb2NrX2VjbyBwb3N0X3JvdXRlXQotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJQdXRzIFwiPEZGPiBSVU5OSU5HIFBPU1QtUk9VVEUgQ0xPQ0sgRUNPIC4uLlwiXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgcm91dGUscnVuX2Nsb2NrX2VjbyAkY29tbWFuZF0KLSAgICAgIH0KLQotICAgICAgYXBwZW5kIGNvbW1hbmRzICJQdXRzIFwiPEZGPiBSVU5OSU5HIFBPU1QtUk9VVEUgT1BUSU1JWkFUSU9OIC4uLlwiXG4iCi0KLSAgICAgIGlmIHskdmFycyh2ZXJib3NlKX0gewotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgUlVOTklORyBQT1NULVJPVVRFIE9QVElNSVpBVElPTlxuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjXG4iCi0gICAgICB9Ci0KLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICMgTG9hZCBvcHRpb25hbCBwcmUgcG9zdHJvdXRlIGZpbGUgKHBsdWctaW4pCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0KLSAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OnNvdXJjZV9wbHVnIHByZV9wb3N0cm91dGVfdGNsXQotICAgICAgaWYgeyR2YXJzKGhpZ2hfdGltaW5nX2VmZm9ydCkgJiYgW3JlZ2V4cCAiOS4xIiAkdmFycyh2ZXJzaW9uKV19IHsKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAib3B0TGVha2FnZVBvd2VyIC1maXhUaW1pbmdPbmx5XG4iCi0gICAgICB9Ci0gICAgICBpZiB7JHZhcnMocG9zdHJvdXRlX3NldHVwX2hvbGQpfSB7Ci0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjpzb3VyY2VfcGx1ZyBwcmVfcG9zdHJvdXRlX2hvbGRfdGNsXQotICAgICAgICAgc2V0IGNvbW1hbmQgIm9wdERlc2lnbiAtcG9zdFJvdXRlIC1vdXREaXIgJHZhcnMocnB0X2RpcikgLXByZWZpeCBwb3N0cm91dGUgLXNldHVwIC1ob2xkXG4iCi0gICAgICB9IGVsc2UgewotICAgICAgICAgc2V0IGNvbW1hbmQgIm9wdERlc2lnbiAtcG9zdFJvdXRlIC1vdXREaXIgJHZhcnMocnB0X2RpcikgLXByZWZpeCBwb3N0cm91dGVcbiIKLSAgICAgIH0KLSAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCBwb3N0cm91dGUsb3B0X2Rlc2lnbiAkY29tbWFuZF0KLQotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgIyBUcmltIG1ldGFsIGZpbGwgaWYgYWRkZWQKLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLQotICAgICAgaWYgeyR2YXJzKG1ldGFsZmlsbCkgPT0gInByZV9wb3N0cm91dGUifSB7Ci0gICAgICAgICBzZXQgY29tbWFuZCAidHJpbU1ldGFsRmlsbFxuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kIHBvc3Ryb3V0ZSx0cmltX21ldGFsZmlsbCAkY29tbWFuZF0KLSAgICAgIH0KLQotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgIyBPcHRpb25hbGx5IHJ1biBMUEEKLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLQotICAgICAgaWYgeyR2YXJzKHZlcmlmeV9saXRobyl9IHsKLSAgICAgICAgICMgQkNMOiBBZGRlZCBzdWJzdCB0byBoYW5kbGUgZGVyZXJlbmNpbmcgdmFyaWFibGVzCi0gICAgICAgICBmaWxlIG1rZGlyIFtzdWJzdCAkdmFycyhycHRfZGlyKV0vTFBBL0RNQwotICAgICAgICAgc2V0IGNvbW1hbmQgInZlcmlmeUxpdGhvIC1yb3V0aW5nTGF5ZXJzT25seSAtdGVjaEZpbGUgJHZhcnMobHBhX3RlY2hfZmlsZSkgLWRpciAkdmFycyhycHRfZGlyKS9MUEFcbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kICJ2aW9sYXRpb25Ccm93c2VyIC1hbGwgLW5vX2Rpc3BsYXlfZmFsc2VcbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kICJsb2FkVmlvbGF0aW9uUmVwb3J0IC10eXBlIENETkxpdGhvIC1maWxlbmFtZSAkdmFycyhycHRfZGlyKS9MUEEvRE1DL21lcmdlZC5oaWZcbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCBwb3N0cm91dGUsdmVyaWZ5X2xpdGhvICRjb21tYW5kXQotICAgICAgfQotCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAjIExvYWQgb3B0aW9uYWwgcG9zdCBwb3N0Um91dGUgZmlsZSAocGx1Zy1pbikKLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLQotICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6c291cmNlX3BsdWcgcG9zdF9wb3N0cm91dGVfdGNsIDBdCi0KLSAgICAgIGlmIHskdmFycyhjb2RlZ2VuKX0gewotICAgICAgICAgcmV0dXJuICRjb21tYW5kcwotICAgICAgfSBlbHNlIHsKLSAgICAgICAgICB1cGxldmVsICMwIGV2YWwgJGNvbW1hbmRzCi0gICAgICB9Ci0gICB9Ci0KLSAgIHByb2MgcnVuX3Bvc3Ryb3V0ZV9ob2xkIHt7Zm9ybWF0IDF9fSB7Ci0KLSAgICAgIGdsb2JhbCB2YXJzCi0gICAgICBnbG9iYWwgZW52Ci0gICAgICBnbG9iYWwgZXJyb3JzCi0KLSAgICAgIGlmIHsoW2xzZWFyY2ggJHZhcnMoZml4X2hvbGQpIHBvc3Ryb3V0ZV0gPCAwKSB8fCAkdmFycyhwb3N0cm91dGVfc2V0dXBfaG9sZCl9IHsKLSAgICAgICAgIHJldHVybiAiIgotICAgICAgfQotCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAjIEluaXRpYWxpemUgc3RlcCAuLi4KLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLQotICAgICAgc2V0IHZhcnMoc3RlcCkgcG9zdHJvdXRlX2hvbGQKLSAgICAgIHNldCBjb21tYW5kcyAiIgotIyAgICAgIGFwcGVuZCBjb21tYW5kcyAic2V0IHZhcnMoc3RlcCkgJHZhcnMoc3RlcClcbiIKLQotICAgICAgc2V0IGNvbW1hbmQgW0ZGX0VESTo6aW5pdGlhbGl6ZV9zdGVwIHBvc3Ryb3V0ZV9ob2xkXQotICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRl9FREk6Omluc2VydF9jb21tZW50c10gCi0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgcG9zdHJvdXRlX2hvbGQsaW5pdGlhbGl6ZV9zdGVwICRjb21tYW5kXQotCi0gICAgICBhcHBlbmQgY29tbWFuZHMgIlB1dHMgXCI8RkY+IFJVTk5JTkcgUE9TVC1ST1VURSBIT0xEIEZJWElORyAuLi5cIlxuIgotCi0gICAgICBpZiB7JHZhcnModmVyYm9zZSl9IHsKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiI1xuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjIFJVTk5JTkcgUE9TVC1ST1VURSBIT0xEIEZJWElOR1xuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjXG4iCi0gICAgICB9Ci0KLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICMgTG9hZCBvcHRpb25hbCBwcmUgcG9zdFJvdXRlIGhvbGQgZmlsZSAocGx1Zy1pbikKLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLQotICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6c291cmNlX3BsdWcgcHJlX3Bvc3Ryb3V0ZV9ob2xkX3RjbF0KLSAgICAgIHNldCBjb21tYW5kICJvcHREZXNpZ24gLXBvc3RSb3V0ZSAtaG9sZCIKLSAgICAgIGFwcGVuZCBjb21tYW5kICIgLW91dERpciAkdmFycyhycHRfZGlyKSAtcHJlZml4IHBvc3Ryb3V0ZV9ob2xkXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgcG9zdHJvdXRlX2hvbGQsb3B0X2Rlc2lnbiAkY29tbWFuZF0KLQotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgIyBUcmltIG1ldGFsIGZpbGwgaWYgYWRkZWQKLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLQotICAgICAgaWYgeyR2YXJzKG1ldGFsZmlsbCkgPT0gInByZV9wb3N0cm91dGUifSB7Ci0gICAgICAgICBzZXQgY29tbWFuZCAidHJpbU1ldGFsRmlsbFxuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kIHBvc3Ryb3V0ZV9ob2xkLHRyaW1fbWV0YWxmaWxsICRjb21tYW5kXQotICAgICAgfQotCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAjIE9wdGlvbmFsbHkgcnVuIExQQQotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCi0gICAgICBpZiB7JHZhcnModmVyaWZ5X2xpdGhvKX0gewotICAgICAgICAgIyBCQ0w6IEFkZGVkIHN1YnN0IHRvIGhhbmRsZSBkZXJlcmVuY2luZyB2YXJpYWJsZXMKLSAgICAgICAgIGZpbGUgbWtkaXIgIFtzdWJzdCAkdmFycyhycHRfZGlyKV0vTFBBL0RNQwotICAgICAgICAgc2V0IGNvbW1hbmQgInZlcmlmeUxpdGhvIC1yb3V0aW5nTGF5ZXJzT25seSAtdGVjaEZpbGUgJHZhcnMobHBhX3RlY2hfZmlsZSkgLWRpciAkdmFycyhycHRfZGlyKS9MUEFcbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kICJ2aW9sYXRpb25Ccm93c2VyIC1hbGwgLW5vX2Rpc3BsYXlfZmFsc2VcbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kICJsb2FkVmlvbGF0aW9uUmVwb3J0IC10eXBlIENETkxpdGhvIC1maWxlbmFtZSAkdmFycyhycHRfZGlyKS9MUEEvRE1DL21lcmdlZC5oaWZcbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCBwb3N0cm91dGVfaG9sZCx2ZXJpZnlfbGl0aG8gJGNvbW1hbmRdCi0gICAgICB9Ci0KLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICMgTG9hZCBvcHRpb25hbCBwb3N0IHBvc3RSb3V0ZSBob2xkIGZpbGUgKHBsdWctaW4pCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0KLSAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OnNvdXJjZV9wbHVnIHBvc3RfcG9zdHJvdXRlX2hvbGRfdGNsIDBdCi0KLSAgICAgIGlmIHskdmFycyhjb2RlZ2VuKX0gewotICAgICAgICAgcmV0dXJuICRjb21tYW5kcwotICAgICAgfSBlbHNlIHsKLSAgICAgICAgICB1cGxldmVsICMwIGV2YWwgJGNvbW1hbmRzCi0gICAgICB9Ci0gICB9Ci0KLSAgIHByb2MgcnVuX3Bvc3Ryb3V0ZV9zaV9ob2xkIHt7Zm9ybWF0IDF9fSB7Ci0KLSAgICAgIGdsb2JhbCB2YXJzCi0gICAgICBnbG9iYWwgZW52Ci0gICAgICBnbG9iYWwgZXJyb3JzCi0KLSAgICAgIGlmIHsoW2xzZWFyY2ggJHZhcnMoZml4X2hvbGQpIHBvc3Ryb3V0ZV0gPCAwKSB8fCAkdmFycyhwb3N0cm91dGVfc2V0dXBfaG9sZCl9IHsKLSAgICAgICAgIHJldHVybiAiIgotICAgICAgfQotCi0gICAgICBzZXQgdmFycyhzdGVwKSBwb3N0cm91dGVfc2lfaG9sZAotICAgICAgc2V0IGNvbW1hbmRzICIiCi0jICAgICAgYXBwZW5kIGNvbW1hbmRzICJzZXQgdmFycyhzdGVwKSAkdmFycyhzdGVwKVxuIgotCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAjIEluaXRpYWxpemUgc3RlcCAuLi4KLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLQotICAgICAgc2V0IGNvbW1hbmQgW0ZGX0VESTo6aW5pdGlhbGl6ZV9zdGVwIHBvc3Ryb3V0ZV9zaV9ob2xkXQotICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRl9FREk6Omluc2VydF9jb21tZW50c10gCi0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgcG9zdHJvdXRlX3NpX2hvbGQsaW5pdGlhbGl6ZV9zdGVwICRjb21tYW5kXQotCi0gICAgICBhcHBlbmQgY29tbWFuZHMgIlB1dHMgXCI8RkY+IFJVTk5JTkcgUE9TVC1ST1VURSBTSS1BV0FSRSBIT0xEIEZJWElORyAuLi5cIlxuIgotCi0gICAgICBpZiB7JHZhcnModmVyYm9zZSl9IHsKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiI1xuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjIFJVTk5JTkcgUE9TVC1ST1VURSBTSSBBV0FSRSBIT0xEIEZJWElOR1xuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjXG4iCi0gICAgICB9Ci0KLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICMgRm9yY2UgY2VsdGljIGJhc2VkIFNJIGRlbGF5IGNhbGN1bGF0aW9uCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0KLSAgICAgIHNldCBjb21tYW5kICJzZXREZWxheUNhbE1vZGUgLWVuZ2luZSBzaWduYWxTdG9ybSAtc2lBd2FyZSBmYWxzZVxuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kIHBvc3Ryb3V0ZV9zaV9ob2xkLHNldF9kZWxheV9jYWxfbW9kZSAkY29tbWFuZF0KLQotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgIyBMb2FkIHByZS1wb3N0Um91dGUgU0kgaG9sZCBmaWxlIChwbHVnLWluKQotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCi0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjpzb3VyY2VfcGx1ZyBwcmVfcG9zdHJvdXRlX3NpX2hvbGRfdGNsXQotCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAjIExvYWQgb3B0aW9uYWwgbWV0YWxmaWxsIHBsdWctaW4KLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLQotICAgICAgaWYgeyR2YXJzKG1ldGFsZmlsbCkgPT0gInByZV9wb3N0cm91dGVfc2kifSB7Ci0gICAgICAgICBzZXQgY29tbWFuZCBbRkY6OnNvdXJjZV9wbHVnIG1ldGFsZmlsbF90Y2xdCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgcG9zdHJvdXRlX3NpX2hvbGQsYWRkX21ldGFsZmlsbCAkY29tbWFuZF0KLSAgICAgIH0KLQotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgIyBSdW4gcG9zdHJvdXRlIFNJIGhvbGQgZml4aW5nCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0KLSAgICAgIHNldCBjb21tYW5kICJvcHREZXNpZ24gLXBvc3RSb3V0ZSAtc2kgLWhvbGQiCi0gICAgICBhcHBlbmQgY29tbWFuZCAiIC1vdXREaXIgJHZhcnMocnB0X2RpcikgLXByZWZpeCBwb3N0cm91dGVfc2lfaG9sZFxuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kIHBvc3Ryb3V0ZV9zaV9ob2xkLG9wdF9kZXNpZ24gJGNvbW1hbmRdCi0KLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICMgVHJpbSBtZXRhbCBmaWxsIGlmIGFkZGVkCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0KLSAgICAgIGlmIHsoJHZhcnMobWV0YWxmaWxsKSA9PSAicHJlX3Bvc3Ryb3V0ZSIpIHx8Ci0gICAgICAgICAgKCR2YXJzKG1ldGFsZmlsbCkgPT0gInByZV9wb3N0cm91dGVfc2kiKX0gewotICAgICAgICAgc2V0IGNvbW1hbmQgInRyaW1NZXRhbEZpbGxcbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCBwb3N0cm91dGVfc2lfaG9sZCx0cmltX21ldGFsZmlsbCAkY29tbWFuZF0KLSAgICAgIH0KLQotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgIyBPcHRpb25hbGx5IHJ1biBMUEEKLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLQotICAgICAgaWYgeyR2YXJzKHZlcmlmeV9saXRobyl9IHsKLSAgICAgICAgICMgQkNMOiBBZGRlZCBzdWJzdCB0byBoYW5kbGUgZGVyZXJlbmNpbmcgdmFyaWFibGVzCi0gICAgICAgICBmaWxlIG1rZGlyICBbc3Vic3QgJHZhcnMocnB0X2RpcildL0xQQS9ETUMKLSAgICAgICAgIHNldCBjb21tYW5kICJ2ZXJpZnlMaXRobyAtcm91dGluZ0xheWVyc09ubHkgLXRlY2hGaWxlICR2YXJzKGxwYV90ZWNoX2ZpbGUpIC1kaXIgJHZhcnMocnB0X2RpcikvTFBBXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZCAidmlvbGF0aW9uQnJvd3NlciAtYWxsIC1ub19kaXNwbGF5X2ZhbHNlXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZCAibG9hZFZpb2xhdGlvblJlcG9ydCAtdHlwZSBDRE5MaXRobyAtZmlsZW5hbWUgJHZhcnMocnB0X2RpcikvTFBBL0RNQy9tZXJnZWQuaGlmXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgcG9zdF9wb3N0cm91dGVfc2lfaG9sZCx2ZXJpZnlfbGl0aG8gJGNvbW1hbmRdCi0gICAgICB9Ci0KLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICMgTG9hZCBvcHRpb25hbCBwb3N0IHBvc3RSb3V0ZSBTSSBob2xkIGZpbGUgKHBsdWctaW4pCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0KLSAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OnNvdXJjZV9wbHVnIHBvc3RfcG9zdHJvdXRlX3NpX2hvbGRfdGNsIDBdCi0KLSAgICAgIGlmIHskdmFycyhjb2RlZ2VuKX0gewotICAgICAgICAgcmV0dXJuICRjb21tYW5kcwotICAgICAgfSBlbHNlIHsKLSAgICAgICAgICB1cGxldmVsICMwIGV2YWwgJGNvbW1hbmRzCi0gICAgICB9Ci0gICB9Ci0KLSAgIHByb2MgcnVuX3Bvc3Ryb3V0ZV9zaSB7e2Zvcm1hdCAxfX0gewotCi0gICAgICBnbG9iYWwgdmFycwotICAgICAgZ2xvYmFsIGVudgotICAgICAgZ2xvYmFsIGVycm9ycwotCi0gICAgICBzZXQgdmFycyhzdGVwKSBwb3N0cm91dGVfc2kKLSAgICAgIHNldCBjb21tYW5kcyAiIgotIyAgICAgIGFwcGVuZCBjb21tYW5kcyAic2V0IHZhcnMoc3RlcCkgJHZhcnMoc3RlcClcbiIKLQotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgIyBJbml0aWFsaXplIHN0ZXAgLi4uCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0KLSAgICAgIHNldCBjb21tYW5kIFtGRl9FREk6OmluaXRpYWxpemVfc3RlcCBwb3N0cm91dGVfc2ldCi0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGX0VESTo6aW5zZXJ0X2NvbW1lbnRzXSAKLSAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCBwb3N0cm91dGVfc2ksaW5pdGlhbGl6ZV9zdGVwICRjb21tYW5kXQotCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAjIEZvcmNlIGNlbHRpYyBiYXNlZCBTSSBkZWxheSBjYWxjdWxhdGlvbgotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCi0gICAgICBzZXQgY29tbWFuZCAic2V0RGVsYXlDYWxNb2RlIC1lbmdpbmUgc2lnbmFsU3Rvcm0gLXNpQXdhcmUgZmFsc2VcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCBwb3N0cm91dGVfc2ksc2V0X2RlbGF5X2NhbF9tb2RlICRjb21tYW5kXQotCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAjIExvYWQgb3B0aW9uYWwgbWV0YWxmaWxsIHBsdWctaW4KLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLQotICAgICAgaWYgeyR2YXJzKG1ldGFsZmlsbCkgPT0gInByZV9wb3N0cm91dGVfc2kifSB7Ci0gICAgICAgICBzZXQgY29tbWFuZCBbRkY6OnNvdXJjZV9wbHVnIG1ldGFsZmlsbF90Y2xdCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgcG9zdHJvdXRlX3NpLGFkZF9tZXRhbGZpbGwgJGNvbW1hbmRdCi0gICAgICB9Ci0KLSAgICAgIGFwcGVuZCBjb21tYW5kcyAiUHV0cyBcIjxGRj4gUlVOTklORyBQT1NULVJPVVRFIFNJLUFXQVJFIE9QVElNSVpBVElPTiAuLi5cIlxuIgotCi0gICAgICBpZiB7JHZhcnModmVyYm9zZSl9IHsKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiI1xuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjIFJVTk5JTkcgUE9TVC1ST1VURSBTSSBBV0FSRSBPUFRJTUlaQVRJT05cbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiI1xuIgotICAgICAgfQotCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAjIExvYWQgb3B0aW9uYWwgcHJlIHBvc3RSb3V0ZSBTSSBmaWxlIChwbHVnLWluKQotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCi0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjpzb3VyY2VfcGx1ZyBwcmVfcG9zdHJvdXRlX3NpX3RjbF0KLQotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgIyBSdW4gcG9zdCByb3V0ZSBzZXR1cCBmaXhpbmcgdy9TSQotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCi0gICAgICBzZXQgY29tbWFuZCAib3B0RGVzaWduIC1wb3N0Um91dGUgLXNpIgotICAgICAgYXBwZW5kIGNvbW1hbmQgIiAtb3V0RGlyICR2YXJzKHJwdF9kaXIpIC1wcmVmaXggcG9zdHJvdXRlX3NpXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgcG9zdHJvdXRlX3NpLG9wdF9kZXNpZ24gJGNvbW1hbmRdCi0KLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICMgVHJpbSBtZXRhbCBmaWxsIGlmIGFkZGVkCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0KLSAgICAgIGlmIHsoJHZhcnMobWV0YWxmaWxsKSA9PSAicHJlX3Bvc3Ryb3V0ZSIpIHx8Ci0gICAgICAgICAgKCR2YXJzKG1ldGFsZmlsbCkgPT0gInByZV9wb3N0cm91dGVfc2kiKX0gewotICAgICAgICAgc2V0IGNvbW1hbmQgInRyaW1NZXRhbEZpbGxcbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCBwb3N0cm91dGVfc2lfaG9sZCx0cmltX21ldGFsZmlsbCAkY29tbWFuZF0KLSAgICAgIH0KLQotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgIyBPcHRpb25hbGx5IHJ1biBMUEEKLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLQotICAgICAgaWYgeyR2YXJzKHZlcmlmeV9saXRobyl9IHsKLSAgICAgICAgICMgQkNMOiBBZGRlZCBzdWJzdCB0byBoYW5kbGUgZGVyZXJlbmNpbmcgdmFyaWFibGVzCi0gICAgICAgICBmaWxlIG1rZGlyIFtzdWJzdCAkdmFycyhycHRfZGlyKV0vTFBBL0RNQwotICAgICAgICAgc2V0IGNvbW1hbmQgInZlcmlmeUxpdGhvIC1yb3V0aW5nTGF5ZXJzT25seSAtdGVjaEZpbGUgJHZhcnMobHBhX3RlY2hfZmlsZSkgLWRpciAkdmFycyhycHRfZGlyKS9MUEFcbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kICJ2aW9sYXRpb25Ccm93c2VyIC1hbGwgLW5vX2Rpc3BsYXlfZmFsc2VcbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kICJsb2FkVmlvbGF0aW9uUmVwb3J0IC10eXBlIENETkxpdGhvIC1maWxlbmFtZSAkdmFycyhycHRfZGlyKS9MUEEvRE1DL21lcmdlZC5oaWZcbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCBwb3N0X3Bvc3Ryb3V0ZV9zaSx2ZXJpZnlfbGl0aG8gJGNvbW1hbmRdCi0gICAgICB9Ci0KLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICMgTG9hZCBvcHRpb25hbCBwb3N0IHBvc3RSb3V0ZSBTSSBmaWxlIChwbHVnLWluKQotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCi0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjpzb3VyY2VfcGx1ZyBwb3N0X3Bvc3Ryb3V0ZV9zaV90Y2wgMF0KLQotICAgICAgaWYgeyR2YXJzKGNvZGVnZW4pfSB7Ci0gICAgICAgICByZXR1cm4gJGNvbW1hbmRzCi0gICAgICB9IGVsc2UgewotICAgICAgICAgIHVwbGV2ZWwgIzAgZXZhbCAkY29tbWFuZHMKLSAgICAgIH0KLSAgIH0KLQotICAgcHJvYyBydW5fc2lnbm9mZiB7e2Zvcm1hdCAxfX0gewotCi0gICAgICBnbG9iYWwgdmFycwotICAgICAgZ2xvYmFsIGVudgotICAgICAgZ2xvYmFsIGVycm9ycwotICAgICAgZ2xvYmFsIGVudgotCi0gICAgICBpZiB7JHZhcnMoc3RlcCkgIT0gImFzc2VtYmxlIn0gewotICAgICAgICAgc2V0IHZhcnMoc3RlcCkgc2lnbm9mZgotICAgICAgfQotICAgICAgc2V0IGNvbW1hbmRzICIiCi0KLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICMgT3B0aW9uYWxseSB2ZXJpZnkvZml4IGxpdGhvCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICBpZiB7JHZhcnMoZml4X2xpdGhvKX0gewotICAgICAgICAgIyBCQ0w6IEFkZGVkIHN1YnN0IHRvIGhhbmRsZSBkZXJlcmVuY2luZyB2YXJpYWJsZXMKLSAgICAgICAgIGZpbGUgbWtkaXIgIFtzdWJzdCAkdmFycyhycHRfZGlyKV0vTFBBL0RNQwotICAgICAgICAgc2V0IGNvbW1hbmQgImxvYWRWaW9sYXRpb25SZXBvcnQgLXR5cGUgQ0ROTGl0aG8gLWZpbGVuYW1lICR2YXJzKHJwdF9kaXIpL0xQQS9ETUMvbWVyZ2VkLmhpZlxuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmQgInNldE5hbm9Sb3V0ZU1vZGUgLWRyb3V0ZVBvc3RSb3V0ZUxpdGhvUmVwYWlyIHRydWUgXFxcbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgICAgICAgICAgICAgICAgIC1kcm91dGVNaW5pbWl6ZVRvcG9sb2d5Q2hhbmdlIHRydWVcbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kICJnbG9iYWxEZXRhaWxSb3V0ZVxuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIndyaXRlSGlmIC1maWxlICR2YXJzKHJwdF9kaXIpL0xQQS9pbmNyX3ZlcmlmeS5oaWZcbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kICJ2ZXJpZnlMaXRobyAtc2lnbk9mZiBcXFxuIiAKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgICAgICAgICAgICAtZGlyICR2YXJzKGRic19kaXIpL0xQQTIgXFxcbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgICAgICAgICAgICAtY3B1ICR2YXJzKGxvY2FsX2NwdXMpIFxcXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZCAiICAgICAgICAgICAgLWNvbmZpZyAkdmFycyhscGFfY29uZl9maWxlKSBcXFxuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAgICAgICAgICAgIC1pbmNyQ2hlY2sgJHZhcnMocnB0X2RpcikvTFBBL2luY3JfdmVyaWZ5LmhpZlxuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmQgInZpb2xhdGlvbkJyb3dzZXIgLWFsbCAtbm9fZGlzcGxheV9mYWxzZVxuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmQgImxvYWRWaW9sYXRpb25SZXBvcnQgLXR5cGUgQ0ROTGl0aG8gLWZpbGVuYW1lICR2YXJzKHJwdF9kaXIpL0xQQTIvRE1DL21lcmdlZC5oaWZcbiIKLQotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kIHNpZ25vZmYsZml4X2xpdGhvICRjb21tYW5kXQotICAgICAgfQotCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAjIExvYWQgb3B0aW9uYWwgbWV0YWxmaWxsIHBsdWctaW4KLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgIGlmIHskdmFycyhtZXRhbGZpbGwpID09ICJwcmVfc2lnbm9mZiJ9IHsKLSAgICAgICAgIHNldCBjb21tYW5kIFtGRjo6c291cmNlX3BsdWcgbWV0YWxmaWxsX3RjbF0KLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCBzaWdub2ZmLGFkZF9tZXRhbGZpbGwgJGNvbW1hbmRdCi0gICAgICB9Ci0KLSAgICAgIHNldCBjb21tYW5kIFtGRl9FREk6OmluaXRpYWxpemVfc3RlcCBzaWdub2ZmXQotICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRl9FREk6Omluc2VydF9jb21tZW50c10gCi0jICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kIHNpZ25vZmYsaW5pdGlhbGl6ZV9zdGVwICRjb21tYW5kXQotICAgICAgYXBwZW5kIGNvbW1hbmRzICRjb21tYW5kCi0KLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICMgTG9hZCBvcHRpb25hbCBwcmUgc2lnbm9mZiBmaWxlIChwbHVnLWluKQotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6c291cmNlX3BsdWcgcHJlX3NpZ25vZmZfdGNsXQotCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAjIFJ1biBSQyBFeHRyYWN0aW9uCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0KLSAgICAgIGFwcGVuZCBjb21tYW5kcyAiUHV0cyBcIjxGRj4gUlVOTklORyBGSU5BTCBTSUdOT0ZGIC4uLlwiXG4iCi0KLSAgICAgIGlmIHskdmFycyh2ZXJib3NlKX0gewotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgUlVOTklORyBGSU5BTCBTSUdOT0ZGXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiNcbiIKLSAgICAgIH0KLQotICAgICAgc2V0IGNvbW1hbmQgImV4dHJhY3RSQ1xuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kIHNpZ25vZmYsZXh0cmFjdF9yYyAkY29tbWFuZF0KLQotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgIyBEdW1wIFNQRUYgZm9yIHNpZ25vZmYgU1RBCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0KLSAgICAgIGlmIHskdmFycyhza2lwX3NpZ25vZmZfY2hlY2tzKX0gewotICAgICAgICAgc2V0IGNvbW1hbmQgIiIKLSAgICAgICAgIGZvcmVhY2ggY29ybmVyICR2YXJzKHJjX2Nvcm5lcnMpIHsKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJyY091dCAtcmNfY29ybmVyICRjb3JuZXIgLXNwZWYgJGNvcm5lci5zcGVmLmd6XG4iCi0gICAgICAgICB9Ci0gICAgICB9IGVsc2UgewotICAgICAgICAgc2V0IGNvbW1hbmQgImZvcmVhY2ggY29ybmVyIFwkdmFycyhhY3RpdmVfcmNfY29ybmVycykge1xuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAgIHJjT3V0IC1yY19jb3JuZXIgXCRjb3JuZXIgLXNwZWYgXCRjb3JuZXIuc3BlZi5nelxuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIn1cbiIKLSAgICAgIH0gCi0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgc2lnbm9mZixkdW1wX3NwZWYgJGNvbW1hbmRdCi0KLSAgICAgIGlmIHsoKCR2YXJzKHN0ZXApID09ICJhc3NlbWJsZSIpIHx8ICgkdmFycyhzdGVwKSA9PSAic2lnbm9mZiIpKX0gewotICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGVuYWJsZV9zaWdub2ZmX2VjbyldICYmICR2YXJzKGVuYWJsZV9zaWdub2ZmX2Vjbyl9IHsKLSAgICAgICAgICAgIHNldCBjb21tYW5kICJzaWdub2ZmVGltZURlc2lnbiAtcmVwb3J0T25seSAtbm9FY29EYiAtb3V0RGlyICR2YXJzKHJwdF9kaXIpXG4iCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgc2lnbm9mZixzaWdub2ZmX3RpbWVfZGVzaWduICRjb21tYW5kXSAgICAgICAgIAotICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIGlmIHskdmFycyhlbmFibGVfc2lfYXdhcmUpfSB7Ci0gICAgICAgICAgICAgICBpZiB7IVtpbmZvIGV4aXN0cyB2YXJzKHRpbWVfZGVzaWduX29wdGlvbnMsc2V0dXApXX0gewotICAgICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgInRpbWVEZXNpZ24gLXByZWZpeCBzaWdub2ZmIC1zaWdub2ZmIC1yZXBvcnRPbmx5IC1vdXREaXIgJHZhcnMocnB0X2RpcilcbiIKLSAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICBzZXQgY29tbWFuZCBbZm9ybWF0ICJ0aW1lRGVzaWduIC1wcmVmaXggc2lnbm9mZiAtc2lnbm9mZiAtcmVwb3J0T25seSAtb3V0RGlyICR2YXJzKHJwdF9kaXIpICVzXG4iICR2YXJzKHRpbWVfZGVzaWduX29wdGlvbnMsc2V0dXApXQotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIGlmIHshW2luZm8gZXhpc3RzIHZhcnModGltZV9kZXNpZ25fb3B0aW9ucyxzZXR1cCldfSB7Ci0gICAgICAgICAgICAgICAgICBzZXQgY29tbWFuZCAidGltZURlc2lnbiAtcHJlZml4IHNpZ25vZmYgLXNpZ25vZmYgLXNpIC1yZXBvcnRPbmx5IC1vdXREaXIgJHZhcnMocnB0X2RpcilcbiIKLSAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICBzZXQgY29tbWFuZCBbZm9ybWF0ICJ0aW1lRGVzaWduIC1wcmVmaXggc2lnbm9mZiAtc2lnbm9mZiAtc2kgLXJlcG9ydE9ubHkgLW91dERpciAkdmFycyhycHRfZGlyKSAlc1xuIiAkdmFycyh0aW1lX2Rlc2lnbl9vcHRpb25zLHNldHVwKV0KLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCBzaWdub2ZmLHRpbWVfZGVzaWduX3NldHVwICRjb21tYW5kXQotICAgICAgICAgICAgaWYgeyR2YXJzKGVuYWJsZV9zaV9hd2FyZSl9IHsKLSAgICAgICAgICAgICAgIGlmIHshW2luZm8gZXhpc3RzIHZhcnModGltZV9kZXNpZ25fb3B0aW9ucyxob2xkKV19IHsKLSAgICAgICAgICAgICAgICAgIHNldCBjb21tYW5kICJ0aW1lRGVzaWduIC1wcmVmaXggc2lnbm9mZiAtc2lnbm9mZiAtcmVwb3J0T25seSAtaG9sZCAtb3V0RGlyICR2YXJzKHJwdF9kaXIpXG4iCi0gICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgW2Zvcm1hdCAidGltZURlc2lnbiAtcHJlZml4IHNpZ25vZmYgLXNpZ25vZmYgLXJlcG9ydE9ubHkgLWhvbGQgLW91dERpciAkdmFycyhycHRfZGlyKSAlc1xuIiAkdmFycyh0aW1lX2Rlc2lnbl9vcHRpb25zLGhvbGQpXQotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIGlmIHshW2luZm8gZXhpc3RzIHZhcnModGltZV9kZXNpZ25fb3B0aW9ucyxob2xkKV19IHsKLSAgICAgICAgICAgICAgICAgIHNldCBjb21tYW5kICJ0aW1lRGVzaWduIC1wcmVmaXggc2lnbm9mZiAtc2lnbm9mZiAtc2kgLXJlcG9ydE9ubHkgLWhvbGQgIC1vdXREaXIgJHZhcnMocnB0X2RpcilcbiIKLSAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICBzZXQgY29tbWFuZCBbZm9ybWF0ICJ0aW1lRGVzaWduIC1wcmVmaXggc2lnbm9mZiAtc2lnbm9mZiAtc2kgLXJlcG9ydE9ubHkgLWhvbGQgLW91dERpciAkdmFycyhycHRfZGlyKSAlc1xuIiAkdmFycyh0aW1lX2Rlc2lnbl9vcHRpb25zLGhvbGQpXQotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kIHNpZ25vZmYsdGltZV9kZXNpZ25faG9sZCAkY29tbWFuZF0KLSAgICAgICAgIH0KLSAgICAgIH0KLQotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgIyBEdW1wIEdEUyBhbmQvb3IgT0EgZGF0YSBiYXNlCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoZ2RzX2xheWVyX21hcCldfSB7Ci0gICAgICAgICBzZXQgY29tbWFuZCAic3RyZWFtT3V0ICR2YXJzKGRlc2lnbikuZ2RzLmd6IC1tYXBGaWxlICR2YXJzKGdkc19sYXllcl9tYXApICIKLSAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhnZHNfZmlsZXMpXX0gewotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIi1tZXJnZSB7ICIKLSAgICAgICAgICAgIGZvcmVhY2ggZmlsZSAkdmFycyhnZHNfZmlsZXMpIHsKLSAgICAgICAgICAgICAgIGlmIHtbZmlsZSBleGlzdHMgJGZpbGVdfSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiJGZpbGUgIgotICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgIHB1dHMgICI8RkY+IFdBUk5JTkc6IEdEUyBGSUxFICRmaWxlIERPRVMgTk9UIEVYSVNUIC4uLi4gU0tJUFBJTkdcbiIKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJ9IgotICAgICAgICAgfQotICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIlxuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kIHNpZ25vZmYsc3RyZWFtX291dCAkY29tbWFuZF0KLSAgICAgIH0KLSAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhvYXNpc19sYXllcl9tYXApXX0gewotICAgICAgICAgc2V0IGNvbW1hbmQgIm9hc2lzT3V0ICR2YXJzKGRlc2lnbikub2FzaXMuZ3ogLW1hcEZpbGUgJHZhcnMob2FzaXNfbGF5ZXJfbWFwKSAiCi0gICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMob2FzaXNfZmlsZXMpXX0gewotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIi1tZXJnZSB7ICIKLSAgICAgICAgICAgIGZvcmVhY2ggZmlsZSAkdmFycyhvYXNpc19maWxlcykgewotICAgICAgICAgICAgICAgaWYge1tmaWxlIGV4aXN0cyAkZmlsZV19IHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICIkZmlsZSAiCi0gICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgcHV0cyAgIjxGRj4gV0FSTklORzogT0FTSVMgRklMRSAkZmlsZSBET0VTIE5PVCBFWElTVCAuLi4uIFNLSVBQSU5HXG4iCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAifSIKLSAgICAgICAgIH0KLSAgICAgICAgIGFwcGVuZCBjb21tYW5kICJcbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCBzaWdub2ZmLG9hc2lzX291dCAkY29tbWFuZF0KLSAgICAgIH0KLQotIyAgICAgIGlmIHsoW2luZm8gZXhpc3RzIHZhcnMob2FfcmVmX2xpYildICYmICgkdmFycyhvYV9yZWZfbGliKSAhPSAiIikpICYmCi0jICAgICAgICAgIChbaW5mbyBleGlzdHMgdmFycyhvYV9kZXNpZ25fbGliKV0gJiYgKCR2YXJzKG9hX2Rlc2lnbl9saWIpICE9ICIiKSl9IHsKLSMgICAgICAgICBzZXQgY29tbWFuZCAic2F2ZU9hRGVzaWduICR2YXJzKG9hX2Rlc2lnbl9saWIpICR2YXJzKGRlc2lnbikgc2lnbm9mZlxuIgotIyAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCBzaWdub2ZmLHNhdmVfb2FfZGVzaWduICRjb21tYW5kXQotIyAgICAgIH0KLQotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgIyBEdW1wIE1vZGVsIGZvciBUb3AgTGV2ZWwgKEhpZXJhcmNoaWNhbCBGbG93IE9ubHkpCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICBzZXQgcHRuIFtmaWxlIHRhaWwgW3B3ZF1dCi0gICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMocGFydGl0aW9uX2xpc3QpXX0gewotICAgICAgICAgaWYgeyhbbHNlYXJjaCAkdmFycyhwYXJ0aXRpb25fbGlzdCkgJHB0bl0gIT0gLTEpfSB7Ci0gICAgICAgICAgICBpZiB7W3N0cmluZyBjb21wYXJlIC1ub2Nhc2UgJHZhcnMoZGJzX2Zvcm1hdCkgImZlIl09PTB9IHsKLSAgICAgICAgICAgICAgIHNldCBjb21tYW5kICJjcmVhdGVJbnRlcmZhY2VMb2dpYyAtZGlyICRwdG4uaWxtXG4iCi0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgaWYge1tsaW5kZXggW3NwbGl0ICR2YXJzKHZlcnNpb24pICIuIl0gIDBdID4gMTB9IHsKLSAgICAgICAgICAgICAgICAgIHNldCBjb21tYW5kICJjcmVhdGVJbnRlcmZhY2VMb2dpYyAtY2VsbHZpZXcgeyR2YXJzKG9hX3BhcnRpdGlvbl9saWIpICRwdG4gYWJzdHJhY3R9XG4iCi0gICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgImNyZWF0ZUludGVyZmFjZUxvZ2ljIC1kaXIgJHB0bi5pbG1cbiIKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0gCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgc2lnbm9mZixjcmVhdGVfaWxtICRjb21tYW5kXQotICAgICAgICAgfSBlbHNlaWYgeyR2YXJzKHN0ZXApICE9ICJhc3NlbWJsZSJ9IHsKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCBzaWdub2ZmLHVuZmxhdHRlbklsbSAidW5mbGF0dGVuSWxtXG4iXQotICAgICAgICAgfQotICAgICAgfQotCi0gICAgICBpZiB7JHZhcnModmVyYm9zZSl9IHsKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiI1xuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjIFJVTk5JTkcgVkVSSUZZIENPTU1BTkRTXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiNcbiIKLSAgICAgIH0KLQotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgIyBSdW4gdmVyaWZ5IGNvbW1hbmRzCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICBpZiB7IShbaW5mbyBleGlzdHMgdmFycyhlbmFibGVfc2lnbm9mZl9lY28pXSAmJiAkdmFycyhlbmFibGVfc2lnbm9mZl9lY28pKX0gewotICAgICAgICAgc2V0IGNvbW1hbmQgInN1bW1hcnlSZXBvcnQgLW91dERpciAkdmFycyhycHRfZGlyKVxuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kIHNpZ25vZmYsc3VtbWFyeV9yZXBvcnQgJGNvbW1hbmRdCi0gICAgICB9Ci0gICAgICBzZXQgY29tbWFuZCAidmVyaWZ5Q29ubmVjdGl2aXR5IC1ub0FudGVubmFcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCBzaWdub2ZmLHZlcmlmeV9jb25uZWN0aXZpdHkgJGNvbW1hbmRdCi0gICAgICBzZXQgY29tbWFuZCAiW3ZlcmlmeV9nZW9tZXRyeV9jb21tYW5kXVxuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kIHNpZ25vZmYsdmVyaWZ5X2dlb21ldHJ5ICRjb21tYW5kXQotICAgICAgc2V0IGNvbW1hbmQgInZlcmlmeU1ldGFsRGVuc2l0eVxuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kIHNpZ25vZmYsdmVyaWZ5X21ldGFsX2RlbnNpdHkgJGNvbW1hbmRdCi0gICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMocGFydGl0aW9uX2xpc3QpXSAmJiAoW2xzZWFyY2ggJHZhcnMocGFydGl0aW9uX2xpc3QpICRwdG5dICE9IC0xKX0gewotICAgICAgICAgaWYge1tzdHJpbmcgY29tcGFyZSAkdmFycyhkYnNfZm9ybWF0KSAiZmUiXT09MH0gewotICAgICAgICAgICBzZXQgY29tbWFuZCAidmVyaWZ5UHJvY2Vzc0FudGVubmEgLWxlZmZpbGUgJHB0bi5hbnRlbm5hLmxlZlxuIgotICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgc2V0IGNvbW1hbmQgInZlcmlmeVByb2Nlc3NBbnRlbm5hXG4iCi0gICAgICAgICAjIE5vdCBzdXJlIHlldCAgaG93IHNhdmVfYWJzdHJhY3QgIHdvdWxkIGJlIGNhbGxlZC0gc2tpcCB0aGlzIGZvciBub3cuCi0gICAgICAgICB9Ci0gICAgICB9IGVsc2UgewotICAgICAgICAgc2V0IGNvbW1hbmQgInZlcmlmeVByb2Nlc3NBbnRlbm5hXG4iCi0gICAgICB9Ci0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgc2lnbm9mZix2ZXJpZnlfcHJvY2Vzc19hbnRlbm5hICRjb21tYW5kXQotCi0gICAgICBpZiB7KFtpbmZvIGV4aXN0cyB2YXJzKGVuYWJsZV9sdnMpXSAmJiAkdmFycyhlbmFibGVfbHZzKSkgJiYgKCR2YXJzKGRic19mb3JtYXQpID09ICJvYSIpfSB7Ci0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGX0VESTo6Y3JlYXRlX2x2c19kYXRhXQotICAgICAgfQotCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAjIExvYWQgb3B0aW9uYWwgcG9zdCBzaWdub2ZmIGZpbGUgKHBsdWctaW4pCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjpzb3VyY2VfcGx1ZyBwb3N0X3NpZ25vZmZfdGNsIDBdCi0KLSAgICAgIGlmIHskdmFycyhjb2RlZ2VuKX0gewotICAgICAgICAgcmV0dXJuICRjb21tYW5kcwotICAgICAgfSBlbHNlIHsKLSAgICAgICAgICB1cGxldmVsICMwIGV2YWwgJGNvbW1hbmRzCi0gICAgICB9Ci0KLSAgIH0KLQotICAgcHJvYyBydW5fYXNzZW1ibGUge3tmb3JtYXQgMX19IHsKLQotICAgICAgZ2xvYmFsIHZhcnMKLSAgICAgIGdsb2JhbCBlcnJvcnMKLSAgICAgIGdsb2JhbCBlbnYKLQotICAgICAgc2V0IHZhcnMoc3RlcCkgYXNzZW1ibGUKLSAgICAgIHNldCBjb21tYW5kcyAiIgotICAgICAgYXBwZW5kIGNvbW1hbmRzICJzZXQgdmFycyhzdGVwKSAkdmFycyhzdGVwKVxuIgotCi0gICAgICBGRl9FREk6OmluaXRpYWxpemVfc3RlcCBhc3NlbWJsZQotCi0jICAgICAgaWYgeyR2YXJzKHJlcG9ydF9ydW5fdGltZSl9IHsKLSMgICAgICAgICBhcHBlbmQgY29tbWFuZHMgInNldCB2YXJzKCR2YXJzKHN0ZXApLHN0YXJ0X3RpbWUpIFxbY2xvY2sgc2Vjb25kc1xdXG4iCi0jICAgICAgfQotCi0gICAgICBpZiB7JHZhcnModmVyYm9zZSl9IHsKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiI1xuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjIEFTU0VNQkxJTkcgREVTSUdOXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiNcbiIKLSAgICAgIH0KLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICMgTG9hZCAicHJlIGFzc2VtYmxlIiBwbHVnLWluIHNjcmlwdAotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6c291cmNlX3BsdWcgcHJlX2Fzc2VtYmxlX3RjbF0KLQotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgIyBBc3NlbWJsZSB0aGUgZGVzaWduCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICBzZXQgdmFycyhpbG0pIGZhbHNlCi0gICAgICBzZXQgaWxtX2xpc3QgW2xpc3RdCi0gICAgICBzZXQgcGFjX2xpc3QgW2xpc3RdCi0gICAgICBpZiB7JHZhcnMoZW5hYmxlX3BhYyl9IHsKLSAgICAgICAgIGZvcmVhY2ggcGFydCAkdmFycyhwYXJ0aXRpb25fbGlzdCkgewotICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCRwYXJ0LHBhY19tb2RlKV19ICB7Ci0gICAgICAgICAgICAgICBpZiB7JHZhcnMoJHBhcnQscGFjX21vZGUpID09ICJpbG0ifSB7Ci0gICAgICAgICAgICAgICAgICBsYXBwZW5kIGlsbV9saXN0ICRwYXJ0Ci0gICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgbGFwcGVuZCBwYWNfbGlzdCAkcGFydAotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAgfQotICAgICAgfQotICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGlsbV9saXN0KV0gJiYgKCR2YXJzKGlsbV9saXN0KSAhPSAiIil9IHsKLSAgICAgICAgIGZvcmVhY2ggaWxtICR2YXJzKGlsbV9saXN0KSB7Ci0gICAgICAgICAgICBpZiB7KFtsc2VhcmNoICRpbG1fbGlzdCAkaWxtXSA9PSAtMSkgJiYgKFtsc2VhcmNoICRwYWNfbGlzdCAkaWxtXSA9PSAtMSl9IHsKLSAgICAgICAgICAgICAgIGxhcHBlbmQgaWxtX2xpc3QgJGlsbQotICAgICAgICAgICAgfQotICAgICAgICAgfQotICAgICAgfQotICAgICAgaWYgeyRpbG1fbGlzdCAhPSAiIn0gewotICAgICAgICAgc2V0IHZhcnMoaWxtKSB0cnVlIAotICAgICAgfQotCi0gICAgICAjIEJDTDogQWRkZWQgdGFpbCBvZiBzdWJzdCBvZiB2YXJzKGRic19kaXIpCi0gICAgICAjIE5vdGUgLSBFRElGRiBIaWVyYXJjaGljYWwgZmxvdyBpcyBjdXJyZW50bHkgSU5DT01QQVRJQkxFIHdpdGggRkYgZGlyIHN0cnVjdHVyZQotICAgICAgIyBUaGUgZm9sbG93aW5nIGNvZGUgYXBwZWFycyB0byByZWx5IG9uIHZhcnMoZGJzX2RpcikgYWx3YXlzIGJlaW5nIHVuZGVyICR2YXJzKHBhcnRpdGlvbl9kaXIpLyR2YXJzKGRlc2lnbikKLSAgICAgICMgVGhpcyBuZWVkcyB0byBiZSByZWNvbmNpbGVkCi0KLSAgICAgIGlmIHskdmFycyhoaWVyX2Zsb3dfdHlwZSkgPT0gIjJwYXNzIn0gewotICAgICAgICAgc2V0IHBhcnRpdGlvbl9kaXIgJHZhcnMocGFydGl0aW9uX2Rpcl9wYXNzMikKLSAgICAgICB9IGVsc2UgewotICAgICAgICAgc2V0IHBhcnRpdGlvbl9kaXIgJHZhcnMocGFydGl0aW9uX2RpcikKLSAgICAgIH0KLSAgICAgIHNldCBkaXIgW2ZpbGUgdGFpbCBbc3Vic3QgJHZhcnMoZGJzX2RpcildXQotCi0gICAgICBpZiB7W2xpbmRleCBbc3BsaXQgJHZhcnModmVyc2lvbikgIi4iXSAgMF0gPiAxMH0gewotICAgICAgICAgc2V0IGNvbW1hbmQgW0ZGX0VESTo6aW5pdGlhbGl6ZV90aW1pbmcgbW1tY10KLSAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhjcGZfZmlsZSldICYmICR2YXJzKGNwZl90aW1pbmcpfSB7Ci0gICAgICAgICAgICBzZXQgbW1tY19maWxlICR2YXJzKHNjcmlwdF9kaXIpL2luY3Jfdmlld19kZWZpbml0aW9uLnRjbAotICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKHZpZXdfZGVmaW5pdGlvbl90Y2wpXX0gewotICAgICAgICAgICAgICAgIHNldCBtbW1jX2ZpbGUgJHZhcnModmlld19kZWZpbml0aW9uX3RjbCkKLSAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgIHNldCBtbW1jX2ZpbGUgJHZhcnMoc2NyaXB0X2Rpcikvdmlld19kZWZpbml0aW9uLnRjbAotICAgICAgICAgICAgIH0KLSAgICAgICAgICB9Ci0gICAgICB9Ci0gICAgICBpZiB7KFtzdHJpbmcgY29tcGFyZSAtbm9jYXNlICR2YXJzKGRic19mb3JtYXQpICJvYSJdPT0wKSAmJiAoW2xpbmRleCBbc3BsaXQgJHZhcnModmVyc2lvbikgIi4iXSAgMF0gPiAxMCl9IHsKLQotICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCR2YXJzKGRlc2lnbiksYXNzZW1ibGVfc3RlcCldfSB7Ci0gICAgICAgICAgICBzZXQgY29tbWFuZCAiYXNzZW1ibGVEZXNpZ24gLXRvcERlc2lnbiB7JHZhcnMob2FfcGFydGl0aW9uX2xpYikgJHZhcnMoZGVzaWduKSAkdmFycygkdmFycyhkZXNpZ24pLGFzc2VtYmxlX3N0ZXApfSAtbW1tY0ZpbGUgJG1tbWNfZmlsZSIKLSAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBzZXQgY29tbWFuZCAiYXNzZW1ibGVEZXNpZ24gLXRvcERlc2lnbiB7JHZhcnMob2FfcGFydGl0aW9uX2xpYikgJHZhcnMoZGVzaWduKSBzaWdub2ZmfSAtbW1tY0ZpbGUgJG1tbWNfZmlsZSIKLSAgICAgICAgIH0KLSAgICAgICAgIGZvcmVhY2ggcGFydCAkdmFycyhwYXJ0aXRpb25fbGlzdCkgewotICAgICAgICAgICAgaWYge1tsc2VhcmNoICRpbG1fbGlzdCAkcGFydF0gPT0gLTF9IHsKLSAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkcGFydCxhc3NlbWJsZV9zdGVwKV19IHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJcXFxuICAgLWJsb2NrIHskdmFycyhvYV9wYXJ0aXRpb25fbGliKSAkcGFydCAkdmFycygkdmFycygkcGFydCksYXNzZW1ibGVfc3RlcCl9IgotICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJcXFxuICAgLWJsb2NrIHskdmFycyhvYV9wYXJ0aXRpb25fbGliKSAkcGFydCBzaWdub2ZmfSIKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0KLSAgICAgIH0gZWxzZSB7Ci0jICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kIGFzc2VtYmxlLGluaXRpYWxpemVfdGltaW5nICRjb21tYW5kXQotICAgICAgICAgaWYge1tsaW5kZXggW3NwbGl0ICR2YXJzKHZlcnNpb24pICIuIl0gIDBdID4gMTB9IHsKLSAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhjcGZfZmlsZSldICYmICR2YXJzKGNwZl90aW1pbmcpfSB7Ci0gICAgICAgICAgICAgICBzZXQgYXNzZW1ibGVfY29tbWFuZCAiYXNzZW1ibGVEZXNpZ24gLWNwZkZpbGUgJHZhcnMoY3BmX2ZpbGUpIgotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIHNldCBhc3NlbWJsZV9jb21tYW5kICJhc3NlbWJsZURlc2lnbiAtbW1tY0ZpbGUgJG1tbWNfZmlsZSIKLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBzZXQgYXNzZW1ibGVfY29tbWFuZCAiYXNzZW1ibGVEZXNpZ24iCi0gICAgICAgICB9Ci0gICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJHZhcnMoZGVzaWduKSxhc3NlbWJsZV9kYnMpXX0gewotICAgICAgICAgICAgc2V0IGNvbW1hbmQgIiRhc3NlbWJsZV9jb21tYW5kIC1mZSAtdG9wRGlyICR2YXJzKCR2YXJzKGRlc2lnbiksYXNzZW1ibGVfZGJzKSIKLSAgICAgICAgIH0gZWxzZWlmIHtbaW5mbyBleGlzdHMgdmFycygkdmFycyhkZXNpZ24pLGFzc2VtYmxlX3N0ZXApXX0gewotICAgICAgICAgICAgc2V0IGNvbW1hbmQgIiRhc3NlbWJsZV9jb21tYW5kIC1mZSAkcGFydGl0aW9uX2Rpci8kdmFycyhkZXNpZ24pLyRkaXIvJHZhcnMoJHZhcnMoZGVzaWduKSxhc3NlbWJsZV9zdGVwKS5lbmMuZGF0IgotICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHNldCBjb21tYW5kICIkYXNzZW1ibGVfY29tbWFuZCAtZmUgLXRvcERpciAkcGFydGl0aW9uX2Rpci8kdmFycyhkZXNpZ24pLyRkaXIvc2lnbm9mZi5lbmMuZGF0ICIKLSAgICAgICAgIH0KLSAgICAgICAgIGZvcmVhY2ggcGFydCAkdmFycyhwYXJ0aXRpb25fbGlzdCkgewotICAgICAgICAgICAgaWYge1tsc2VhcmNoICRpbG1fbGlzdCAkcGFydF0gPT0gLTF9IHsKLSAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkcGFydCxhc3NlbWJsZV9kYnMpXX0gewotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIlxcXG4gICAtYmxvY2tEaXIgJHZhcnMoJHBhcnQsYXNzZW1ibGVfZGJzKSIKLSAgICAgICAgICAgICAgIH0gZWxzZWlmIHtbaW5mbyBleGlzdHMgdmFycygkcGFydCxhc3NlbWJsZV9zdGVwKV19IHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJcXFxuICAgLWJsb2NrRGlyICRwYXJ0aXRpb25fZGlyLyRwYXJ0LyRkaXIvJHZhcnMoJHBhcnQsYXNzZW1ibGVfc3RlcCkuZW5jLmRhdCIKLSAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiXFxcbiAgIC1ibG9ja0RpciAkcGFydGl0aW9uX2Rpci8kcGFydC8kZGlyL3NpZ25vZmYuZW5jLmRhdCIKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0KLSAgICAgIH0KLSAgICAgIGlmIHskdmFycyhlbmFibGVfcGFjKX0gewotICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIlxcXG4gLWhpZXJEaXIgJHZhcnMocGFjX3NjcmF0Y2hfZGlyKSIKLSAgICAgIH0KLSAgICAgIGFwcGVuZCBjb21tYW5kICJcblxuIgotCi0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgYXNzZW1ibGUsYXNzZW1ibGVfZGVzaWduICRjb21tYW5kXQotCi0gICAgICBpZiB7KFtsaW5kZXggW3NwbGl0ICR2YXJzKHZlcnNpb24pICIuIl0gIDBdID4gMTApICYmICR2YXJzKGNwZl90aW1pbmcpfSB7Ci0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgInNvdXJjZSAkbW1tY19maWxlXG4iCi0gICAgICB9Ci0gICAgICBpZiB7JHZhcnMoZmxvdykgPT0gIm1tbWMifSB7Ci0gICAgICAgICBzZXQgY29tbWFuZCBbRkZfRURJOjpkZXJhdGVfdGltaW5nIG1tbWNdCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksZGVyYXRlX3RpbWluZyAkY29tbWFuZF0KLSAgICAgIH0KLSAgICAgIGlmIHskdmFycyhjYXB0dXJlX21ldHJpY3MpfSB7Ci0gICAgICAgICBpZiB7W2xpbmRleCBbc3BsaXQgJHZhcnModmVyc2lvbikgIi4iXSAgMF0gPiAxM30gewotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJ1bTo6ZW5hYmxlX21ldHJpY3MgLW9uXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgInVtOjpwdXNoX3NuYXBzaG90X3N0YWNrXG4iCi0gICAgICAgICB9Ci0gICAgICB9Ci0KLSAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OnNvdXJjZV9wbHVnIGFsd2F5c19zb3VyY2VfdGNsXQotCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAjIExvYWQgInBvc3QgYXNzZW1ibGUiIHBsdWctaW4gc2NyaXB0Ci0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjpzb3VyY2VfcGx1ZyBwb3N0X2Fzc2VtYmxlX3RjbCAwXQotCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAjIFNwZWNpZnkgSUxNcyBpZiBkZWZpbmVkCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICBpZiB7JHZhcnMoaWxtKX0gewotICAgICAgICAgaWYgeyR2YXJzKHZlcmJvc2UpfSB7Ci0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiNcbiIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyBTUEVDSUZZSU5HIElMTXNcbiIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiI1xuIgotICAgICAgICAgfQotICAgICAgICAgc2V0IGNvbW1hbmQgIiIgCi0gICAgICAgICBmb3JlYWNoIGNlbGwgJGlsbV9saXN0IHsKLSAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkY2VsbCxpbG1fZGlyKV0gJiYgW2ZpbGUgaXNkaXJlY3RvcnkgJHZhcnMoJGNlbGwsaWxtX2RpcildfSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAic3BlY2lmeUlsbSAtY2VsbCAkY2VsbCAtZGlyICR2YXJzKCRjZWxsLGlsbV9kaXIpXG4iCi0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgcHV0cyAiPEZGPiBXQVJOSU5HOiBJTE0gRElSRUNUT1JZIE1JU1NJTkcgRk9SICRjZWxsIC4uLiBTS0lQUElORyIKLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0gCi0gIAotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kIGFzc2VtYmxlLHNwZWNpZnlfaWxtICRjb21tYW5kXQotICAKLSAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhpbG1fbm9uX3NkY19maWxlKV19IHsKLSAgICAgICAgICAgIGlmIHtbbGluZGV4IFtzcGxpdCAkdmFycyh2ZXJzaW9uKSAiLiJdICAwXSA8PSAxMH0gewotICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgImxvYWRUaW1pbmdDb24gLWlsbU5vblNkY0ZpbGUgJHZhcnMoaWxtX25vbl9zZGNfZmlsZSlcbiIKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBzZXQgY29tbWFuZCAic2V0SWxtTm9uU2RjQ29uc3RyYWludEZpbGUgJHZhcnMoaWxtX25vbl9zZGNfZmlsZSlcbiIKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCBhc3NlbWJsZSxsb2FkX2lsbV9ub25fc2RjX2ZpbGUgJGNvbW1hbmRdCi0gICAgICAgICB9Ci0gICAgICB9Ci0KLSAgICAgIGlmIHtbbGluZGV4IFtzcGxpdCAkdmFycyh2ZXJzaW9uKSAiLiJdICAwXSA8IDE0fSB7Ci0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGX0VESTo6bG9hZF9wb3dlcl9pbnRlbnRdCi0gICAgICB9IGVsc2UgewotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRl9OT1ZVUzo6bG9hZF9wb3dlcl9pbnRlbnRdCi0gICAgICB9Ci0KLSAgICAgIGlmIHtbbGluZGV4IFtzcGxpdCAkdmFycyh2ZXJzaW9uKSAiLiJdICAwXSA8PSAxMH0gewotICAgICAgICAgc2V0IGNvbW1hbmQgW0ZGX0VESTo6aW5pdGlhbGl6ZV90aW1pbmcgbW1tY10KLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCBhc3NlbWJsZSxpbml0aWFsaXplX3RpbWluZyAkY29tbWFuZF0KLSAgICAgIH0gZWxzZWlmIHtbaW5mbyBleGlzdHMgdmFycyhjcGZfZmlsZSldICYmICR2YXJzKGNwZl90aW1pbmcpfSB7Ci0gICAgICAgICBzZXQgY29tbWFuZCBbRkZfRURJOjppbml0aWFsaXplX3RpbWluZyBtbW1jXQotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kIGFzc2VtYmxlLGluaXRpYWxpemVfdGltaW5nICRjb21tYW5kXQotICAgICAgfQotCi0gICAgICBzZXQgY29tbWFuZCBbRkZfRURJOjp1cGRhdGVfdGltaW5nIG1tbWMgMSBdCi0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgYXNzZW1ibGUsdXBkYXRlX3RpbWluZyAkY29tbWFuZF0KLQotICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGVuYWJsZV9zaWdub2ZmX2VjbyldICYmICR2YXJzKGVuYWJsZV9zaWdub2ZmX2Vjbyl9IHsKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OnNvdXJjZV9wbHVnIHByZV9zaWdub2ZmX2Vjb190Y2wgMF0KLSAgICAgICAgIHNldCBjb21tYW5kICJ2ZXJpZnlDb25uZWN0aXZpdHlcbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCBhc3NlbWJsZSxwcmVfc2lnbm9mZl9lY29fdmVyaWZ5X2Nvbm5lY3Rpdml0eSAkY29tbWFuZF0KLSAgICAgICAgIHNldCBjb21tYW5kICJbdmVyaWZ5X2dlb21ldHJ5X2NvbW1hbmRdXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgYXNzZW1ibGUscHJlX3NpZ25vZmZfZWNvX3ZlcmlmeV9nZW9tZXRyeSAkY29tbWFuZF0KLQotICAgICAgICAgaWYgeyR2YXJzKHZlcmJvc2UpfSB7Ci0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiNcbiIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyBSVU5OSU5HIFNJR04tT0ZGIEVDT1xuIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjXG4iCi0gICAgICAgICB9Ci0KLSAgICAgICAgIHNldCBjb21tYW5kIFtGRl9FREk6OmRlbGV0ZV9maWxsZXJfY2VsbHNdCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgYXNzZW1ibGUsZGVsZXRlX2ZpbGxlcl9jZWxscyAkY29tbWFuZF0KLSAgICAgICAgIHNldCBjb21tYW5kICJleHRyYWN0UkNcbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCBhc3NlbWJsZSxleHRyYWN0X3JjICRjb21tYW5kXQotICAgICAgICAgc2V0IG9wIFtvcGVuIHB0bi50eHQgd10KLSMgICAgICAgICBkYkZvckVhY2hIZWFkUHRuIFtkYmdIZWFkXSBwdHIgewotIyAgICAgICAgICAgIHNldCBwdG4gW2RiUHRuTmFtZSAkcHRyXQotIyAgICAgICAgICAgIHB1dHMgJG9wICIkcHRuIgotIyAgICAgICAgIH0KLSAgICAgICAgIGZvcmVhY2ggcHRuICR2YXJzKHBhcnRpdGlvbl9saXN0KSB7IAotICAgICAgICAgICAgcHV0cyAkb3AgIiRwdG4iCi0gICAgICAgICB9Ci0gICAgICAgICBjbG9zZSAkb3AKLSAgICAgICAgIHNldCBjb21tYW5kICJzZXRTaWdub2ZmT3B0TW9kZSAtcGFydGl0aW9uTGlzdEZpbGUgXCJwdG4udHh0XCIgLW9wdGltaXplUmVwbGljYXRlZE1vZHVsZXMgdHJ1ZVxuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kIGFzc2VtYmxlLHNpZ25vZmZfdGltZV9kZXNpZ24gJGNvbW1hbmRdCi0gICAgICAgICBzZXQgY29tbWFuZCAic2lnbm9mZlRpbWVEZXNpZ24gLXJlcG9ydE9ubHlcbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCBhc3NlbWJsZSxzaWdub2ZmX3RpbWVfZGVzaWduICRjb21tYW5kXQotICAgICAgICAgc2V0IGNvbW1hbmQgInNpZ25vZmZPcHREZXNpZ24gLXNldHVwIC1ub0Vjb1JvdXRlXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgYXNzZW1ibGUsc2lnbm9mZl9vcHRfZGVzaWduICRjb21tYW5kXQotIyAgICAgICAgIHNldCBjb21tYW5kICJhZGRGaWxsZXJcbiIKLSMgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgYXNzZW1ibGUsYWRkX2ZpbGxlcl9jZWxscyAkY29tbWFuZF0KLSAgICAgICAgIHNldCBjb21tYW5kICJlY29Sb3V0ZSAtaGFuZGxlUGFydGl0aW9uXG4iCi0gICAgICAgICAjc2V0IGNvbW1hbmQgImVjb1JvdXRlXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgYXNzZW1ibGUsZWNvX3JvdXRlICRjb21tYW5kXQotCi0gICAgICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAgICAjIE9wdGlvbmFsbHkgcnVuIExQQQotICAgICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgCi0gICAgICAgICBpZiB7JHZhcnModmVyaWZ5X2xpdGhvKX0gewotICAgICAgICAgICAgIyBCQ0w6IEFkZGVkIHN1YnN0IHRvIGhhbmRsZSBkZXJlcmVuY2luZyB2YXJpYWJsZXMKLSAgICAgICAgICAgIGZpbGUgbWtkaXIgIFtzdWJzdCAkdmFycyhycHRfZGlyKV0vTFBBL0RNQwotICAgICAgICAgICAgc2V0IGNvbW1hbmQgInZlcmlmeUxpdGhvIC1yb3V0aW5nTGF5ZXJzT25seSAtdGVjaEZpbGUgJHZhcnMobHBhX3RlY2hfZmlsZSkgLWRpciAkdmFycyhycHRfZGlyKS9MUEFcbiIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJ2aW9sYXRpb25Ccm93c2VyIC1hbGwgLW5vX2Rpc3BsYXlfZmFsc2VcbiIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJsb2FkVmlvbGF0aW9uUmVwb3J0IC10eXBlIENETkxpdGhvIC1maWxlbmFtZSAkdmFycyhycHRfZGlyKS9MUEEvRE1DL21lcmdlZC5oaWZcbiIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCBhc3NlbWJsZSx2ZXJpZnlfbGl0aG8gJGNvbW1hbmRdCi0gICAgICAgICB9Ci0KLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OnNvdXJjZV9wbHVnIHBvc3Rfc2lnbm9mZl9lY29fdGNsIDBdCi0gICAgICAgICBzZXQgY29tbWFuZCAidmVyaWZ5Q29ubmVjdGl2aXR5XG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgYXNzZW1ibGUscG9zdF9zaWdub2ZmX2Vjb192ZXJpZnlfY29ubmVjdGl2aXR5ICRjb21tYW5kXQotICAgICAgICAgc2V0IGNvbW1hbmQgIlt2ZXJpZnlfZ2VvbWV0cnlfY29tbWFuZF1cbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCBhc3NlbWJsZSxwb3N0X3NpZ25vZmZfZWNvX3ZlcmlmeV9nZW9tZXRyeSAkY29tbWFuZF0KLSAgICAgIH0gZWxzZWlmIHskdmFycyhlbmFibGVfcGFjKX0gewotICAgICAgICAgc2V0IGNvbW1hbmQgInZlcmlmeUNvbm5lY3Rpdml0eVxuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kIGFzc2VtYmxlLHByZV9wYWNfdmVyaWZ5X2Nvbm5lY3Rpdml0eSAkY29tbWFuZF0KLSAgICAgICAgIHNldCBjb21tYW5kICJbdmVyaWZ5X2dlb21ldHJ5X2NvbW1hbmRdXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgYXNzZW1ibGUscHJlX3BhY192ZXJpZnlfZ2VvbWV0cnkgJGNvbW1hbmRdCi0KLSAgICAgICAgIGlmIHskdmFycyh2ZXJib3NlKX0gewotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjXG4iCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgREVGSU5JTkcgUEFDIE1PREVTXG4iCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiNcbiIKLSAgICAgICAgIH0KLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OnNvdXJjZV9wbHVnIHByZV9wYWNfdGNsIDBdCi0gICAgICAgICBzZXQgY29tbWFuZCAiIgotICAgICAgICAgZm9yZWFjaCBwYXJ0ICRwYWNfbGlzdCB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAic2V0IGhpbnN0IFxbZGJISW5zdE5hbWUgXFtkYkNlbGxISW5zdCBcW2RiR2V0Q2VsbEJ5TmFtZSAkcGFydFxdXF1cXVxuIgotICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCRwYXJ0LHBhY19tb2RlKV19IHsKLSAgICAgICAgICAgICAgIGlmIHskdmFycygkcGFydCxwYWNfbW9kZSkgPT0gInJlYWRfb25seSJ9IHsgc2V0IHZhcnMoJHBhcnQscGFjX21vZGUpICJyZWFkT25seSIgfQotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgInNldE1vZHVsZVZpZXcgLWhpbnN0IFwkaGluc3QgLXR5cGUgJHZhcnMoJHBhcnQscGFjX21vZGUpXG4iCi0gICAgICAgICAgICB9IAotICAgICAgICAgfQotCi0gICAgICAgICBhcHBlbmQgY29tbWFuZCAiZ2V0TW9kdWxlVmlld1xuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kIGFzc2VtYmxlLHNldF9tb2R1bGVfdmlldyAkY29tbWFuZF0KLQotICAgICAgICAgaWYgeyR2YXJzKHZlcmJvc2UpfSB7Ci0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiNcbiIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyBSVU5OSU5HIFBPU1QgQVNTRU1CTFkgQ0xPU1VSRVxuIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjXG4iCi0gICAgICAgICB9Ci0gICAgICAgICBzZXQgY29tbWFuZCBbRkZfRURJOjpkZWxldGVfZmlsbGVyX2NlbGxzXQotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kIGFzc2VtYmxlLGRlbGV0ZV9maWxsZXJfY2VsbHMgJGNvbW1hbmRdCi0gICAgICAgICBzZXQgY29tbWFuZCAib3B0RGVzaWduIC1wb3N0Um91dGUgLW91dERpciAkdmFycyhycHRfZGlyKSAtcHJlZml4IHBhY1xuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kIGFzc2VtYmxlLG9wdF9kZXNpZ24gJGNvbW1hbmRdCi0gICAgICAgICBzZXQgY29tbWFuZCBbRkZfRURJOjphZGRfZmlsbGVyX2NlbGxzXQotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kIGFzc2VtYmxlLGFkZF9maWxsZXJfY2VsbHMgJGNvbW1hbmRdCi0KLSAgICAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICAgICMgT3B0aW9uYWxseSBydW4gTFBBCi0gICAgICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAKLSAgICAgICAgIGlmIHskdmFycyh2ZXJpZnlfbGl0aG8pfSB7Ci0gICAgICAgICAgICAjIEJDTDogQWRkZWQgc3Vic3QgdG8gaGFuZGxlIGRlcmVyZW5jaW5nIHZhcmlhYmxlcwotICAgICAgICAgICAgZmlsZSBta2RpciAgW3N1YnN0ICR2YXJzKHJwdF9kaXIpXS9MUEEvRE1DCi0gICAgICAgICAgICBzZXQgY29tbWFuZCAidmVyaWZ5TGl0aG8gLXJvdXRpbmdMYXllcnNPbmx5IC10ZWNoRmlsZSAkdmFycyhscGFfdGVjaF9maWxlKSAtZGlyICR2YXJzKHJwdF9kaXIpL0xQQVxuIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgInZpb2xhdGlvbkJyb3dzZXIgLWFsbCAtbm9fZGlzcGxheV9mYWxzZVxuIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgImxvYWRWaW9sYXRpb25SZXBvcnQgLXR5cGUgQ0ROTGl0aG8gLWZpbGVuYW1lICR2YXJzKHJwdF9kaXIpL0xQQS9ETUMvbWVyZ2VkLmhpZlxuIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kIGFzc2VtYmxlLHZlcmlmeV9saXRobyAkY29tbWFuZF0KLSAgICAgICAgIH0KLQotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6c291cmNlX3BsdWcgcG9zdF9wYWNfdGNsIDBdCi0gICAgICAgICBzZXQgY29tbWFuZCAidmVyaWZ5Q29ubmVjdGl2aXR5XG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgYXNzZW1ibGUscG9zdF9wYWNfdmVyaWZ5X2Nvbm5lY3Rpdml0eSAkY29tbWFuZF0KLSAgICAgICAgIHNldCBjb21tYW5kICJbdmVyaWZ5X2dlb21ldHJ5X2NvbW1hbmRdXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgYXNzZW1ibGUscG9zdF9wYWNfdmVyaWZ5X2dlb21ldHJ5ICRjb21tYW5kXQotICAgICAgfQotCi0gICAgICBpZiB7ISR2YXJzKGNvZGVnZW4pfSB7Ci0gICAgICAgICB1cGxldmVsICMwIGV2YWwgJGNvbW1hbmRzCi0gICAgICAgICBzZXQgY29tbWFuZHMgIiIgCi0gICAgICB9Ci0KLSAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkZfRURJOjpydW5fc2lnbm9mZiAkZm9ybWF0XQotCi0jICAgICAgaWYgeyR2YXJzKG1ha2VmaWxlKX0geyAKLSMgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJpZiB7XFtpbmZvIGV4aXN0cyBlbnYoVlBBVEgpXF19IHtcbiIKLSMgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJleGVjIC9iaW4vdG91Y2ggXCRlbnYoVlBBVEgpL2Fzc2VtYmxlXG4iCi0jICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAifVxuIgotIyAgICAgICB9Ci0KLSAgICAgIGlmIHskdmFycyhjb2RlZ2VuKX0gewotICAgICAgICAgcmV0dXJuICRjb21tYW5kcwotICAgICAgfSBlbHNlIHsKLSAgICAgICAgIHVwbGV2ZWwgIzAgZXZhbCAkY29tbWFuZHMKLSAgICAgIH0KLSAgIH0KLQotICAgcHJvYyBydW5fcmVidWRnZXQge3tmb3JtYXQgMX19IHsKLQotICAgICAgZ2xvYmFsIHZhcnMKLSAgICAgIGdsb2JhbCBlcnJvcnMKLSAgICAgIGdsb2JhbCBlbnYKLQotICAgICAgc2V0IHZhcnMoc3RlcCkgcmVidWRnZXQKLSAgICAgIHNldCBjb21tYW5kcyAiIgotIyAgICAgIGFwcGVuZCBjb21tYW5kcyAic2V0IHZhcnMoc3RlcCkgJHZhcnMoc3RlcClcbiIKLQotICAgICAgRkZfRURJOjppbml0aWFsaXplX3N0ZXAgJHZhcnMoc3RlcCkKLQotIyAgICAgIGlmIHskdmFycyhyZXBvcnRfcnVuX3RpbWUpfSB7Ci0jICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJzZXQgdmFycygkdmFycyhzdGVwKSxzdGFydF90aW1lKSBcW2Nsb2NrIHNlY29uZHNcXVxuIgotIyAgICAgIH0KLSAgICAgIGlmIHshJHZhcnMoZW5hYmxlX2ZsZXhpbG0pfSB7Ci0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIlxuaWYge1xbZmlsZSBpc2ZpbGUgJHZhcnMocGFjX3NjcmF0Y2hfZGlyKS8ucGFjRmxvd0xvY2tcXX0ge1xuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIgICBmaWxlIGRlbGV0ZSAkdmFycyhwYWNfc2NyYXRjaF9kaXIpLy5wYWNGbG93TG9ja1xuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJ9XG4iCi0gICAgICAgfSBlbHNlIHsKLSMgICAgICAgICBhcHBlbmQgY29tbWFuZHMgImlmIHtcW2ZpbGUgaXNmaWxlICR2YXJzKHNjcmlwdF9kaXIpL3ZpZXdfZGVmaW5pdGlvbi50Y2xdfSB7XG4iCi0jICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIgICBmaWxlIGNvcHkgLWZvcmNlICR2YXJzKHNjcmlwdF9kaXIpL3ZpZXdfZGVmaW5pdGlvbi50Y2wgJHZhcnMocGFydGl0aW9uX2RpcikvJHZhcnMoZGVzaWduKS92aWV3RGVmaW5pdGlvbi50Y2xcbiIKLSMgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIn1cbiIKLSAgICAgICB9Ci0KLSAgICAgIGlmIHskdmFycyh2ZXJib3NlKX0gewotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgQVNTRU1CTElORyBERVNJR05cbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiI1xuIgotICAgICAgfQotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgIyBMb2FkICJwcmUgcmVidWRnZXQiIHBsdWctaW4gc2NyaXB0Ci0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjpzb3VyY2VfcGx1ZyBwcmVfcmVidWRnZXRfdGNsXQotCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAjIEdldCB0aGUgRmxleElMTSBFQ08gcGF0aHMKLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgIGlmIHskdmFycyhlbmFibGVfZmxleGlsbSl9IHsKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiaWYge1xbZmlsZSBpc2ZpbGUgXCRlbnYoVlBBVEgpL2ZsZXhpbG1cXX0ge1xuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIgICBzb3VyY2UgXCRlbnYoVlBBVEgpL2ZsZXhpbG1cbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAifVxuIgotICAgICAgfQotCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAjIEFzc2VtYmxlIHRoZSBkZXNpZ24KLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgIHNldCB2YXJzKGlsbSkgZmFsc2UKLSAgICAgIHNldCBpbG1fbGlzdCBbbGlzdF0KLSAgICAgIHNldCBwYWNfbGlzdCBbbGlzdF0KLSAgICAgIGlmIHskdmFycyhlbmFibGVfcGFjKX0gewotICAgICAgICAgZm9yZWFjaCBwYXJ0ICR2YXJzKHBhcnRpdGlvbl9saXN0KSB7Ci0gICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJHBhcnQscGFjX21vZGUpXX0gIHsKLSAgICAgICAgICAgICAgIGlmIHskdmFycygkcGFydCxwYWNfbW9kZSkgPT0gImlsbSJ9IHsKLSAgICAgICAgICAgICAgICAgIGxhcHBlbmQgaWxtX2xpc3QgJHBhcnQKLSAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICBsYXBwZW5kIHBhY19saXN0ICRwYXJ0Ci0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0gICAgICB9Ci0gICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoaWxtX2xpc3QpXSAmJiAoJHZhcnMoaWxtX2xpc3QpICE9ICIiKX0gewotICAgICAgICAgZm9yZWFjaCBpbG0gJHZhcnMoaWxtX2xpc3QpIHsKLSAgICAgICAgICAgIGlmIHsoW2xzZWFyY2ggJGlsbV9saXN0ICRpbG1dID09IC0xKSAmJiAoW2xzZWFyY2ggJHBhY19saXN0ICRpbG1dID09IC0xKX0gewotICAgICAgICAgICAgICAgbGFwcGVuZCBpbG1fbGlzdCAkaWxtCi0gICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0gICAgICB9Ci0gICAgICBpZiB7JGlsbV9saXN0ICE9ICIifSB7Ci0gICAgICAgICBzZXQgdmFycyhpbG0pIHRydWUgCi0gICAgICB9Ci0KLSAgICAgICMgQkNMOiBBZGRlZCB0YWlsIG9mIHN1YnN0IG9mIHZhcnMoZGJzX2RpcikKLSAgICAgICMgTm90ZSAtIEVESUZGIEhpZXJhcmNoaWNhbCBmbG93IGlzIGN1cnJlbnRseSBJTkNPTVBBVElCTEUgd2l0aCBGRiBkaXIgc3RydWN0dXJlCi0gICAgICAjIFRoZSBmb2xsb3dpbmcgY29kZSBhcHBlYXJzIHRvIHJlbHkgb24gdmFycyhkYnNfZGlyKSBhbHdheXMgYmVpbmcgdW5kZXIgJHZhcnMocGFydGl0aW9uX2RpcikvJHZhcnMoZGVzaWduKQotICAgICAgIyBUaGlzIG5lZWRzIHRvIGJlIHJlY29uY2lsZWQKLSAgICAgIHNldCBkaXIgW2ZpbGUgdGFpbCBbc3Vic3QgJHZhcnMoZGJzX2RpcildXQotCi0gICAgICBpZiB7W2xpbmRleCBbc3BsaXQgJHZhcnModmVyc2lvbikgIi4iXSAgMF0gPiAxMH0gewotICAgICAgICAgc2V0IGNvbW1hbmQgW0ZGX0VESTo6aW5pdGlhbGl6ZV90aW1pbmcgbW1tY10KLSAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhjcGZfZmlsZSldICYmICR2YXJzKGNwZl90aW1pbmcpfSB7Ci0gICAgICAgICAgICBzZXQgbW1tY19maWxlICR2YXJzKHNjcmlwdF9kaXIpL2luY3Jfdmlld19kZWZpbml0aW9uLnRjbAotICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKHZpZXdfZGVmaW5pdGlvbl90Y2wpXX0gewotICAgICAgICAgICAgICAgIHNldCBtbW1jX2ZpbGUgJHZhcnModmlld19kZWZpbml0aW9uX3RjbCkKLSAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgIHNldCBtbW1jX2ZpbGUgJHZhcnMoc2NyaXB0X2Rpcikvdmlld19kZWZpbml0aW9uLnRjbAotICAgICAgICAgICAgIH0KLSAgICAgICAgICB9Ci0gICAgICB9Ci0gICAgICBpZiB7KFtzdHJpbmcgY29tcGFyZSAtbm9jYXNlICR2YXJzKGRic19mb3JtYXQpICJvYSJdPT0wKSAmJiAoW2xpbmRleCBbc3BsaXQgJHZhcnModmVyc2lvbikgIi4iXSAgMF0gPiAxMCl9IHsKLQotICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCR2YXJzKGRlc2lnbikscmVidWRnZXRfYXNzZW1ibGVfc3RlcCldfSB7Ci0gICAgICAgICAgICBzZXQgY29tbWFuZCAiYXNzZW1ibGVEZXNpZ24gLXRvcERlc2lnbiB7JHZhcnMob2FfcGFydGl0aW9uX2xpYikgJHZhcnMoZGVzaWduKSAkdmFycygkdmFycyhkZXNpZ24pLHJlYnVkZ2V0X2Fzc2VtYmxlX3N0ZXApfSAtbW1tY0ZpbGUgJG1tbWNfZmlsZSIKLSAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBzZXQgY29tbWFuZCAiYXNzZW1ibGVEZXNpZ24gLXRvcERlc2lnbiB7JHZhcnMob2FfcGFydGl0aW9uX2xpYikgJHZhcnMoZGVzaWduKSBjdHN9IC1tbW1jRmlsZSAkbW1tY19maWxlIgotICAgICAgICAgfQotICAgICAgICAgZm9yZWFjaCBwYXJ0ICR2YXJzKHBhcnRpdGlvbl9saXN0KSB7Ci0gICAgICAgICAgICBpZiB7W2xzZWFyY2ggJGlsbV9saXN0ICRwYXJ0XSA9PSAtMX0gewotICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCRwYXJ0LHJlYnVkZ2V0X2Fzc2VtYmxlX3N0ZXApXX0gewotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIlxcXG4gICAtYmxvY2sgeyR2YXJzKG9hX3BhcnRpdGlvbl9saWIpICRwYXJ0ICR2YXJzKCR2YXJzKCRwYXJ0KSxyZWJ1ZGdldF9hc3NlbWJsZV9zdGVwKX0iCi0gICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIlxcXG4gICAtYmxvY2sgeyR2YXJzKG9hX3BhcnRpdGlvbl9saWIpICRwYXJ0IGN0c30iCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0gICAgICB9IGVsc2UgewotIyAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCByZWJ1ZGdldCxpbml0aWFsaXplX3RpbWluZyAkY29tbWFuZF0KLSAgICAgICAgIGlmIHtbbGluZGV4IFtzcGxpdCAkdmFycyh2ZXJzaW9uKSAiLiJdICAwXSA+IDEwfSB7Ci0gICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoY3BmX2ZpbGUpXSAmJiAkdmFycyhjcGZfdGltaW5nKX0gewotICAgICAgICAgICAgICAgc2V0IGFzc2VtYmxlX2NvbW1hbmQgImFzc2VtYmxlRGVzaWduIC1jcGZGaWxlICR2YXJzKGNwZl9maWxlKSIKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBzZXQgYXNzZW1ibGVfY29tbWFuZCAiYXNzZW1ibGVEZXNpZ24gLW1tbWNGaWxlICRtbW1jX2ZpbGUiCi0gICAgICAgICAgICB9Ci0gICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgc2V0IGFzc2VtYmxlX2NvbW1hbmQgImFzc2VtYmxlRGVzaWduIgotICAgICAgICAgfQotICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCR2YXJzKGRlc2lnbikscmVidWRnZXRfYXNzZW1ibGVfZGJzKV19IHsKLSAgICAgICAgICAgIHNldCBjb21tYW5kICIkYXNzZW1ibGVfY29tbWFuZCAtZmUgLXRvcERpciAkdmFycygkdmFycyhkZXNpZ24pLHJlYnVkZ2V0X2Fzc2VtYmxlX2RicykiCi0gICAgICAgICB9IGVsc2VpZiB7W2luZm8gZXhpc3RzIHZhcnMoJHZhcnMoZGVzaWduKSxyZWJ1ZGdldF9hc3NlbWJsZV9zdGVwKV19IHsKLSAgICAgICAgICAgIHNldCBjb21tYW5kICIkYXNzZW1ibGVfY29tbWFuZCAtZmUgJHZhcnMocGFydGl0aW9uX2RpcikvJHZhcnMoZGVzaWduKS8kZGlyLyR2YXJzKCR2YXJzKGRlc2lnbikscmVidWRnZXRfYXNzZW1ibGVfc3RlcCkuZW5jLmRhdCIKLSAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBpZiB7JHZhcnMoZW5hYmxlX2ZsZXhpbG0pfSB7Ci0jICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgIiRhc3NlbWJsZV9jb21tYW5kIFxcXG4gICAtZmUgXFxcbiAgIC10b3BEaXIgJHZhcnMocGFydGl0aW9uX2Rpcl9wYXNzMikvJHZhcnMoZGVzaWduKSAiCi0gICAgICAgICAgICAgICBzZXQgY29tbWFuZCAiJGFzc2VtYmxlX2NvbW1hbmQgXFxcbiAgIC1mZSBcXFxuICAgLXRvcERpciAkdmFycyhwYXJ0aXRpb25fZGlyKV9GTEVYSUxNLyR2YXJzKGRlc2lnbikgIgotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIHNldCBjb21tYW5kICIkYXNzZW1ibGVfY29tbWFuZCAtZmUgLXRvcERpciAkdmFycyhwYXJ0aXRpb25fZGlyKS8kdmFycyhkZXNpZ24pLyRkaXIvY3RzLmVuYy5kYXQgIgotICAgICAgICAgICAgfQotICAgICAgICAgfQotICAgICAgICAgZm9yZWFjaCBwYXJ0ICR2YXJzKHBhcnRpdGlvbl9saXN0KSB7Ci0gICAgICAgICAgICBpZiB7W2xzZWFyY2ggJGlsbV9saXN0ICRwYXJ0XSA9PSAtMX0gewotICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCRwYXJ0LHJlYnVkZ2V0X2Fzc2VtYmxlX2RicyldfSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiXFxcbiAgIC1ibG9ja0RpciAkdmFycygkcGFydCxyZWJ1ZGdldF9hc3NlbWJsZV9kYnMpIgotICAgICAgICAgICAgICAgfSBlbHNlaWYge1tpbmZvIGV4aXN0cyB2YXJzKCRwYXJ0LHJlYnVkZ2V0X2Fzc2VtYmxlX3N0ZXApXX0gewotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIlxcXG4gICAtYmxvY2tEaXIgJHZhcnMocGFydGl0aW9uX2RpcikvJHBhcnQvJGRpci8kdmFycygkcGFydCxyZWJ1ZGdldF9hc3NlbWJsZV9zdGVwKS5lbmMuZGF0IgotICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgIGlmIHskdmFycyhlbmFibGVfZmxleGlsbSl9IHsKLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJcXFxuICAgLWJsb2NrRGlyIFwkdmFycygkcGFydCxjZHR2KSAiCi0gICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIlxcXG4gICAtYmxvY2tEaXIgJHZhcnMocGFydGl0aW9uX2RpcikvJHBhcnQvJGRpci9jdHMuZW5jLmRhdCIKLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0KLSAgICAgIH0KLSAgICAgIGlmIHskdmFycyhlbmFibGVfcGFjKX0gewotICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIlxcXG4gLWhpZXJEaXIgJHZhcnMocGFjX3NjcmF0Y2hfZGlyKSIKLSAgICAgIH0KLSAgICAgIGFwcGVuZCBjb21tYW5kICJcbiIKLQotICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLGFzc2VtYmxlX2Rlc2lnbiAkY29tbWFuZF0KLSAgICAgIGlmIHsoW2xpbmRleCBbc3BsaXQgJHZhcnModmVyc2lvbikgIi4iXSAgMF0gPiAxMCkgJiYgJHZhcnMoY3BmX3RpbWluZyl9IHsKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAic291cmNlICRtbW1jX2ZpbGVcbiIKLSAgICAgIH0KLSAgICAgIGlmIHskdmFycyhmbG93KSA9PSAibW1tYyJ9IHsKLSAgICAgICAgIHNldCBjb21tYW5kIFtGRl9FREk6OmRlcmF0ZV90aW1pbmcgbW1tY10KLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxkZXJhdGVfdGltaW5nICRjb21tYW5kXQotICAgICAgfQotCi0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjpzb3VyY2VfcGx1ZyBhbHdheXNfc291cmNlX3RjbF0KLQotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgIyBMb2FkICJwb3N0IHJlYnVkZ2V0IiBwbHVnLWluIHNjcmlwdAotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6c291cmNlX3BsdWcgcG9zdF9yZWJ1ZGdldF90Y2wgMF0KLQotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgIyBTcGVjaWZ5IElMTXMgaWYgZGVmaW5lZAotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgaWYgeyR2YXJzKGlsbSl9IHsKLSAgICAgICAgIGlmIHskdmFycyh2ZXJib3NlKX0gewotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjXG4iCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgU1BFQ0lGWUlORyBJTE1zXG4iCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiNcbiIKLSAgICAgICAgIH0KLSAgICAgICAgIHNldCBjb21tYW5kICIiIAotICAgICAgICAgZm9yZWFjaCBjZWxsICRpbG1fbGlzdCB7Ci0gICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJGNlbGwsaWxtX2RpcildICYmIFtmaWxlIGlzZGlyZWN0b3J5ICR2YXJzKCRjZWxsLGlsbV9kaXIpXX0gewotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgInNwZWNpZnlJbG0gLWNlbGwgJGNlbGwgLWRpciAkdmFycygkY2VsbCxpbG1fZGlyKVxuIgotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIHB1dHMgIjxGRj4gV0FSTklORzogSUxNIERJUkVDVE9SWSBNSVNTSU5HIEZPUiAkY2VsbCAuLi4gU0tJUFBJTkciCi0gICAgICAgICAgICB9Ci0gICAgICAgICB9IAotICAKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxzcGVjaWZ5X2lsbSAkY29tbWFuZF0KLSAgCi0gICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoaWxtX25vbl9zZGNfZmlsZSldfSB7Ci0gICAgICAgICAgICBpZiB7W2xpbmRleCBbc3BsaXQgJHZhcnModmVyc2lvbikgIi4iXSAgMF0gPD0gMTB9IHsKLSAgICAgICAgICAgICAgIHNldCBjb21tYW5kICJsb2FkVGltaW5nQ29uIC1pbG1Ob25TZGNGaWxlICR2YXJzKGlsbV9ub25fc2RjX2ZpbGUpXG4iCi0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgInNldElsbU5vblNkY0NvbnN0cmFpbnRGaWxlICR2YXJzKGlsbV9ub25fc2RjX2ZpbGUpXG4iCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksbG9hZF9pbG1fbm9uX3NkY19maWxlICRjb21tYW5kXQotICAgICAgICAgfQotICAgICAgfQotCi0gICAgICBpZiB7W2xpbmRleCBbc3BsaXQgJHZhcnModmVyc2lvbikgIi4iXSAgMF0gPCAxNH0gewotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRl9FREk6OmxvYWRfcG93ZXJfaW50ZW50XQotICAgICAgfSBlbHNlIHsKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkZfTk9WVVM6OmxvYWRfcG93ZXJfaW50ZW50XQotICAgICAgfQotCi0gICAgICBpZiB7W2xpbmRleCBbc3BsaXQgJHZhcnModmVyc2lvbikgIi4iXSAgMF0gPD0gMTB9IHsKLSAgICAgICAgIHNldCBjb21tYW5kIFtGRl9FREk6OmluaXRpYWxpemVfdGltaW5nIG1tbWNdCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksaW5pdGlhbGl6ZV90aW1pbmcgJGNvbW1hbmRdCi0gICAgICB9IGVsc2VpZiB7W2luZm8gZXhpc3RzIHZhcnMoY3BmX2ZpbGUpXSAmJiAkdmFycyhjcGZfdGltaW5nKX0gewotICAgICAgICAgc2V0IGNvbW1hbmQgW0ZGX0VESTo6aW5pdGlhbGl6ZV90aW1pbmcgbW1tY10KLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxpbml0aWFsaXplX3RpbWluZyAkY29tbWFuZF0KLSAgICAgIH0KLQotICAgICAgaWYgeyEkdmFycyhlbmFibGVfZmxleGlsbSl9IHsKLSAgICAgICAgIHNldCBjb21tYW5kIFtGRl9FREk6OnVwZGF0ZV90aW1pbmcgbW1tYyBdCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksdXBkYXRlX3RpbWluZyAkY29tbWFuZF0KLSAgICAgIH0KLQotICAgICAgaWYgeyR2YXJzKGVuYWJsZV9wYWMpfSB7Ci0KLSAgICAgICAgIGlmIHskdmFycyh2ZXJib3NlKX0gewotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjXG4iCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgREVGSU5JTkcgUEFDIE1PREVTXG4iCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiNcbiIKLSAgICAgICAgIH0KLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OnNvdXJjZV9wbHVnIHByZV9wYWNfdGNsIDBdCi0gICAgICAgICBzZXQgY29tbWFuZCAiIgotICAgICAgICAgZm9yZWFjaCBwYXJ0ICRwYWNfbGlzdCB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAic2V0IGhpbnN0IFxbZGJISW5zdE5hbWUgXFtkYkNlbGxISW5zdCBcW2RiR2V0Q2VsbEJ5TmFtZSAkcGFydFxdXF1cXVxuIgotICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCRwYXJ0LHBhY19tb2RlKV19IHsKLSAgICAgICAgICAgICAgIGlmIHskdmFycygkcGFydCxwYWNfbW9kZSkgPT0gInJlYWRfb25seSJ9IHsgc2V0IHZhcnMoJHBhcnQscGFjX21vZGUpICJyZWFkT25seSIgfQotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgInNldE1vZHVsZVZpZXcgLWhpbnN0IFwkaGluc3QgLXR5cGUgJHZhcnMoJHBhcnQscGFjX21vZGUpXG4iCi0gICAgICAgICAgICB9IAotICAgICAgICAgfQotCi0gICAgICAgICBhcHBlbmQgY29tbWFuZCAiZ2V0TW9kdWxlVmlld1xuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHNldF9tb2R1bGVfdmlldyAkY29tbWFuZF0KLQotICAgICAgICAgaWYgeyEkdmFycyhlbmFibGVfZmxleGlsbSl9IHsKLSAgICAgICAgICAgIGlmIHskdmFycyh2ZXJib3NlKX0gewotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgUlVOTklORyBQT1NUIEFTU0VNQkxZIENMT1NVUkVcbiIKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiI1xuIgotICAgICAgICAgICAgfQotICAgICAgICAgICAgc2V0IGNvbW1hbmQgIm9wdERlc2lnbiAtcG9zdENUUyAtb3V0RGlyICR2YXJzKHJwdF9kaXIpIC1wcmVmaXggcGFjXG4iCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksb3B0X2Rlc2lnbiAkY29tbWFuZF0KLSAgIAotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6c291cmNlX3BsdWcgcG9zdF9wYWNfdGNsIDBdCi0gICAgICAgICB9Ci0gICAgICB9Ci0KLSAgICAgIGlmIHtbbGluZGV4IFtzcGxpdCAkdmFycyh2ZXJzaW9uKSAiLiJdICAwXSA8IDE2fSB7Ci0gICAgICAgIHNldCBjb21tYW5kICJzZXRUcmlhbFJvdXRlTW9kZSAtaGFuZGxlUGFydGl0aW9uQ29tcGxleCB0cnVlIC1ob25vclBpbiB0cnVlXG4iCi0gICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxzZXRfdHJpYWxfcm91dGVfbW9kZTEgJGNvbW1hbmRdCi0gICAgICAgIHNldCBjb21tYW5kICJ0cmlhbFJvdXRlXG4iCi0gICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSx0cmlhbF9yb3V0ZTEgJGNvbW1hbmRdCi0gICAgICB9IGVsc2UgewotICAgICAgICBzZXQgY29tbWFuZCAic2V0Um91dGVNb2RlIC1lYXJseUdsb2JhbFJvdXRlUGFydGl0aW9uSG9ub3JGZW5jZSAuIC1lYXJseUdsb2JhbFJvdXRlUGFydGl0aW9uSG9ub3JQaW4gLlxuIgotICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksc2V0X3JvdXRlX21vZGUxICRjb21tYW5kXQotICAgICAgICBzZXQgY29tbWFuZCAiZWFybHlHbG9iYWxSb3V0ZVxuIgotICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksZWFybHlfZ2xvYmFsX3JvdXRlMSAkY29tbWFuZF0KLSAgICAgIH0KLQotICAgICAgYXBwZW5kIGNvbW1hbmQgImRlcml2ZVRpbWluZ0J1ZGdldCAtbm9UcmlhbElQTyAtbm9Db25zdGFudE1vZGVsXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksZGVyaXZlX3RpbWluZ19idWRnZXQgJGNvbW1hbmRdCi0KLSAgICAgIGlmIHtbc3RyaW5nIGNvbXBhcmUgLW5vY2FzZSAkdmFycyhkYnNfZm9ybWF0KSAib2EiXT09MH0gewotICAgICAgICAgaWYge1tsaW5kZXggW3NwbGl0ICR2YXJzKHZlcnNpb24pICIuIl0gIDBdID4gMTB9IHsKLSAgICAgICAgICAgIHNldCBjb21tYW5kICJzYXZlRGVzaWduIC1jZWxsdmlldyB7JHZhcnMob2FfZGVzaWduX2xpYikgJHZhcnMoZGVzaWduKSBidWRnZXR9XG4iCi0gICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgc2V0IGNvbW1hbmQgInNhdmVPYURlc2lnbiAkdmFycyhvYV9kZXNpZ25fbGliKSAkdmFycyhkZXNpZ24pIGJ1ZGdldFxuIgotICAgICAgICAgfQotICAgICAgfSBlbHNlIHsKLSAgICAgICAgIHNldCBjb21tYW5kICJzYXZlRGVzaWduICR2YXJzKGRic19kaXIpL2J1ZGdldC5lbmMgLWNvbXByZXNzXG4iCi0gICAgICB9Ci0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksc2F2ZV9kZXNpZ24sYnVkZ2V0ICRjb21tYW5kXQotCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAjIFBhcnRpdGlvbiBhbmQgc2F2ZSB0aGUgcGFydGl0aW9ucyBpbnRvIHRoZQotICAgICAgIyBkaXJlY3RvcnkgUEFSVElUSU9OCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0jICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6c291cmNlX3BsdWcgcHJlX3BhcnRpdGlvbl90Y2xdCi0KLSMgICAgICBzZXQgY29tbWFuZCAic2V0IHB0bmdQdG5UaW1pbmdMaWJGb3JtYXQgbGliXG5wYXJ0aXRpb24gLWJ1aWxkU2NhblxuIgotICAgICAgc2V0IGNvbW1hbmQgInBhcnRpdGlvbiAtYnVpbGRTY2FuXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCkscGFydGl0aW9uICRjb21tYW5kXQotICAgICAgaWYge1tsaW5kZXggW3NwbGl0ICR2YXJzKHZlcnNpb24pICIuIl0gIDBdID4gMTB9IHsKLSAgICAgICAgIGlmIHsoW3N0cmluZyBjb21wYXJlICR2YXJzKGRic19mb3JtYXQpICJvYSJdPT0wKX0gewotICAgICAgICAgICAgaWYgeyR2YXJzKGhpZXJfZmxvd190eXBlKSA9PSAiMXBhc3MifSB7Ci0gICAgICAgICAgICAgICBzZXQgY29tbWFuZCAic2F2ZVBhcnRpdGlvbiAtcHRuTGliICR2YXJzKG9hX3BhcnRpdGlvbl9saWIpIC1kaXIgJHZhcnMocGFydGl0aW9uX2RpcilcbiIKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBzZXQgY29tbWFuZCAic2F2ZVBhcnRpdGlvbiAtcHRuTGliICR2YXJzKG9hX3BhcnRpdGlvbl9saWIpIC1kaXIgJHZhcnMocGFydGl0aW9uX2Rpcl9wYXNzMilcbiIKLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBpZiB7JHZhcnMoaGllcl9mbG93X3R5cGUpID09ICIxcGFzcyJ9IHsKLSAgICAgICAgICAgICAgIHNldCBjb21tYW5kICJzYXZlUGFydGl0aW9uIC1kaXIgJHZhcnMocGFydGl0aW9uX2RpcikgLWRlZiAtc2NhbkRlZlxuIgotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIHNldCBjb21tYW5kICJzYXZlUGFydGl0aW9uIC1kaXIgJHZhcnMocGFydGl0aW9uX2Rpcl9wYXNzMikgLWRlZiAtc2NhbkRlZlxuIgotICAgICAgICAgICAgfQotICAgICAgICAgfQotICAgICAgfSBlbHNlIHsKLSAgICAgICAgIHNldCBjb21tYW5kICJzYXZlUGFydGl0aW9uIC1kaXIgJHZhcnMocGFydGl0aW9uX2RpcikgLWRlZiAtc2NhbkRlZlxuIgotICAgICAgfQotICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHNhdmVfcGFydGl0aW9uICRjb21tYW5kXQotIyAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OnNvdXJjZV9wbHVnIHBvc3RfcGFydGl0aW9uX3RjbF0KLQotICAgICAgaWYgeyR2YXJzKHVzZV9mbGV4bW9kZWxzKSAmJiAkdmFycyhmbGV4bW9kZWxfYXNfcHRuKX0gewotIyAgICAgICAgIHNldCBjb21tYW5kICJyZXBsYWNlX3Byb3RvX21vZGVsIFxcXG4iCi0jICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAgIC1wcmVfZnRfZGlyICR2YXJzKGVjb19kaXIpL3ByZV9mdCBcXFxuIgotIyAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgICAtcG9zdF9mdF9kaXIgJHZhcnMoZWNvX2RpcikvcG9zdF9mdCBcXFxuIgotIyAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgICAtcHRuX2RpciAkdmFycyhwYXJ0aXRpb25fZGlyKSBcXFxuIgotIyAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgICAtcHRuX2Z1bGxfbmV0bGlzdF9kaXIgLi90ZW1wX25ldGxpc3RfZGlyIFxcXG4iCi0jICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAgIC1vdXRfZGlyICR2YXJzKHBhcnRpdGlvbl9kaXIpXG4iCi0KLSAgICAgICAgIHNldCBjb21tYW5kICJyZXBsYWNlX3Byb3RvX21vZGVsIFxcXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZCAiICAgLXB0bl9kaXIgJHZhcnMocGFydGl0aW9uX2RpcikgXFxcbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgICAtb3V0X2RpciAkdmFycyhwYXJ0aXRpb25fZGlyKVxuIgotCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCkscmVwbGFjZV9wcm90b19tb2RlbCAkY29tbWFuZF0KLSAgICAgIH0KLQotICAgICAgYXBwZW5kIGNvbW1hbmRzICIjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgIiMgPEZGPiBHRU5FUkFUSU5HIFJFUE9SVFNcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyAiIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIgotCi0gICAgICBpZiB7JHZhcnMocmVwb3J0X3Bvd2VyKX0gewotICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKHBvd2VyX2FuYWx5c2lzX3ZpZXcpXSAmJiAoJHZhcnMocG93ZXJfYW5hbHlzaXNfdmlldykgIT0gIiIpfSB7Ci0gICAgICAgICAgICBzZXQgY29tbWFuZCAicmVwb3J0X3Bvd2VyIC12aWV3ICR2YXJzKHBvd2VyX2FuYWx5c2lzX3ZpZXcpIC1vdXRmaWxlICR2YXJzKHJwdF9kaXIpLyR2YXJzKHN0ZXApLnBvd2VyLnJwdFxuIgotICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHNldCBjb21tYW5kICJyZXBvcnRfcG93ZXIgLW91dGZpbGUgJHZhcnMocnB0X2RpcikvJHZhcnMoc3RlcCkucG93ZXIucnB0XG4iCi0gICAgICAgICB9Ci0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCkscmVwb3J0X3Bvd2VyICRjb21tYW5kXQotICAgICAgfQotCi0gICAgICBpZiB7W0ZGOjppc19scF9mbG93XSAmJiBbaW5mbyBleGlzdHMgdmFycyhwb3dlcl9kb21haW5zKV0gJiYgW2xsZW5ndGggJHZhcnMocG93ZXJfZG9tYWlucyldID4gMX0gewotCi0gICAgICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAgICAjIFZlcmlmeSBwb3dlciBkb21haW4KLSAgICAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLQotICAgICAgICAgc2V0IGNvbW1hbmQgInZlcmlmeVBvd2VyRG9tYWluIC1iaW5kIC1nY29ubiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgLWlzb05ldFBEICR2YXJzKHJwdF9kaXIpLyR2YXJzKHN0ZXApLmlzb25ldHMucnB0IgotICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAteE5ldFBEICR2YXJzKHJwdF9kaXIpLyR2YXJzKHN0ZXApLnhuZXRzLnJwdFxuIgotCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksdmVyaWZ5X3Bvd2VyX2RvbWFpbiAkY29tbWFuZF0KLQotICAgICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgICAgIyBSdW4gQ0xQCi0gICAgICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0KLSAgICAgICAgIGlmIHskdmFycyhydW5fY2xwKSAmJiAoW2F1dG9fZXhlY29rIGxlY10gIT0gIiIpfSB7Ci0gICAgICAgICAgICBzZXQgY29tbWFuZCAicnVuQ0xQICIKLSAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhjbHBfb3B0aW9ucyldfSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAkdmFycyhjbHBfb3B0aW9ucykKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJcbiIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxydW5fY2xwICRjb21tYW5kXQotICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIGlmIHshW2luZm8gZXhpc3RzIHZhcnMoY2xwX3dhcm5pbmcpXX0gewotICAgICAgICAgICAgICAgcHV0cyAiPEZGPiBXQVJOSU5HOiBVTkFCTEUgVE8gUlVOIENMUCAuLi4gUExFQVNFIE1BS0UgU1VSRSBJVCBJUyBJTiBZT1VSIFBBVEgiCi0gICAgICAgICAgICAgICBzZXQgdmFycyhjbHBfd2FybmluZykgdHJ1ZQotICAgICAgICAgICAgfQotICAgICAgICAgfQotICAgICAgfQotICAgICAgaWYgeyEkdmFycyhjb2RlZ2VuKX0gewotICAgICAgICAgdXBsZXZlbCAjMCBldmFsICRjb21tYW5kcwotICAgICAgICAgc2V0IGNvbW1hbmRzICIiIAotICAgICAgfQotCi0jICAgICAgaWYgeyR2YXJzKG1ha2VmaWxlKX0geyAKLSAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgImlmIHtcW2luZm8gZXhpc3RzIGVudihWUEFUSClcXX0ge1xuIgotICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiZXhlYyAvYmluL3RvdWNoIFwkZW52KFZQQVRIKS8kdmFycyhzdGVwKVxuIgotICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAifVxuIgotIyAgICAgICB9Ci0KLSMgICAgICBpZiB7JHZhcnMoZW5hYmxlX2ZsZXhpbG0pfSB7Ci0jICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjIENvcHkgTWFrZWZpbGVzIGluIGNhc2UgdGhleSBnZXQgZGVsZXRlZCBkdXJpbmcgdGhlIGZsb3cgLi4uXG4iCi0jICAgICAgICAgZm9yZWFjaCBwYXJ0IFtjb25jYXQgJHZhcnMoZGVzaWduKSAkdmFycyhwYXJ0aXRpb25fbGlzdCldIHsKLSMgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgImZpbGUgY29weSAtZm9yY2UgJHZhcnMoc2NyaXB0X2RpcikvJHBhcnQuTWFrZWZpbGUgJHZhcnMocGFydGl0aW9uX2Rpcl9wYXNzMikvJHBhcnQvTWFrZWZpbGVcbiIKLSMgICAgICAgICB9Ci0jICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJmaWxlIGNvcHkgLWZvcmNlICR2YXJzKHBhcnRpdGlvbl9kaXIpL01ha2VmaWxlICR2YXJzKHBhcnRpdGlvbl9kaXJfcGFzczIpL01ha2VmaWxlXG4iCi0jICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJmaWxlIGNvcHkgLWZvcmNlICR2YXJzKHBhcnRpdGlvbl9kaXIpL01ha2VmaWxlLnBhcnRpdGlvbiAkdmFycyhwYXJ0aXRpb25fZGlyX3Bhc3MyKS9NYWtlZmlsZS5wYXJ0aXRpb25cbiIKLSMgICAgICB9Ci0KLSAgICAgIGlmIHskdmFycyhjb2RlZ2VuKX0gewotICAgICAgICAgcmV0dXJuICRjb21tYW5kcwotICAgICAgfSBlbHNlIHsKLSAgICAgICAgIHVwbGV2ZWwgIzAgZXZhbCAkY29tbWFuZHMKLSAgICAgIH0KLSAgIH0KLQotICAgcHJvYyBydW5fYXNzZW1ibGVfZmxleGlsbSB7e2Zvcm1hdCAxfX0gewotCi0gICAgICBnbG9iYWwgdmFycwotICAgICAgZ2xvYmFsIGVycm9ycwotICAgICAgZ2xvYmFsIGVudgotCi0gICAgICBzZXQgdmFycyhzdGVwKSBhc3NlbWJsZV9mbGV4aWxtCi0gICAgICBzZXQgY29tbWFuZHMgIiIKLSMgICAgICBhcHBlbmQgY29tbWFuZHMgInNldCB2YXJzKHN0ZXApICR2YXJzKHN0ZXApXG4iCi0KLSAgICAgIEZGX0VESTo6aW5pdGlhbGl6ZV9zdGVwICR2YXJzKHN0ZXApCi0KLSAgICAgIGlmIHskdmFycyh2ZXJib3NlKX0gewotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgQVNTRU1CTElORyBERVNJR05cbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiI1xuIgotICAgICAgfQotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgIyBMb2FkICJwcmUgcmVidWRnZXQiIHBsdWctaW4gc2NyaXB0Ci0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjpzb3VyY2VfcGx1ZyBwcmVfcmVidWRnZXRfdGNsXQotCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAjIEFzc2VtYmxlIHRoZSBkZXNpZ24KLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgIHNldCB2YXJzKGlsbSkgZmFsc2UKLSAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhpbG1fbGlzdCldICYmICgkdmFycyhpbG1fbGlzdCkgIT0gIiIpfSB7Ci0gICAgICAgICBzZXQgdmFycyhpbG0pIHRydWUgCi0gICAgICB9IGVsc2UgewotICAgICAgICAgc2V0IHZhcnMoaWxtX2xpc3QpICIiCi0gICAgICB9Ci0KLSAgICAgICMgQkNMOiBBZGRlZCB0YWlsIG9mIHN1YnN0IG9mIHZhcnMoZGJzX2RpcikKLSAgICAgICMgTm90ZSAtIEVESUZGIEhpZXJhcmNoaWNhbCBmbG93IGlzIGN1cnJlbnRseSBJTkNPTVBBVElCTEUgd2l0aCBGRiBkaXIgc3RydWN0dXJlCi0gICAgICAjIFRoZSBmb2xsb3dpbmcgY29kZSBhcHBlYXJzIHRvIHJlbHkgb24gdmFycyhkYnNfZGlyKSBhbHdheXMgYmVpbmcgdW5kZXIgJHZhcnMocGFydGl0aW9uX2RpcikvJHZhcnMoZGVzaWduKQotICAgICAgIyBUaGlzIG5lZWRzIHRvIGJlIHJlY29uY2lsZWQKLSAgICAgIHNldCBkaXIgW2ZpbGUgdGFpbCBbc3Vic3QgJHZhcnMoZGJzX2RpcildXQotCi0gICAgICBpZiB7W2xpbmRleCBbc3BsaXQgJHZhcnModmVyc2lvbikgIi4iXSAgMF0gPiAxMH0gewotICAgICAgICAgc2V0IGNvbW1hbmQgW0ZGX0VESTo6aW5pdGlhbGl6ZV90aW1pbmcgbW1tY10KLSAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhjcGZfZmlsZSldICYmICR2YXJzKGNwZl90aW1pbmcpfSB7Ci0gICAgICAgICAgICBzZXQgbW1tY19maWxlICR2YXJzKHNjcmlwdF9kaXIpL2luY3Jfdmlld19kZWZpbml0aW9uLnRjbAotICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKHZpZXdfZGVmaW5pdGlvbl90Y2wpXX0gewotICAgICAgICAgICAgICAgIHNldCBtbW1jX2ZpbGUgJHZhcnModmlld19kZWZpbml0aW9uX3RjbCkKLSAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgIHNldCBtbW1jX2ZpbGUgJHZhcnMoc2NyaXB0X2Rpcikvdmlld19kZWZpbml0aW9uLnRjbAotICAgICAgICAgICAgIH0KLSAgICAgICAgICB9Ci0gICAgICB9Ci0gICAgICBpZiB7KFtzdHJpbmcgY29tcGFyZSAtbm9jYXNlICR2YXJzKGRic19mb3JtYXQpICJvYSJdPT0wKSAmJiAoW2xpbmRleCBbc3BsaXQgJHZhcnModmVyc2lvbikgIi4iXSAgMF0gPiAxMCl9IHsKLQotICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCR2YXJzKGRlc2lnbikscmVidWRnZXRfYXNzZW1ibGVfc3RlcCldfSB7Ci0gICAgICAgICAgICBzZXQgY29tbWFuZCAiYXNzZW1ibGVEZXNpZ24gLXRvcERlc2lnbiB7JHZhcnMob2FfcGFydGl0aW9uX2xpYikgJHZhcnMoZGVzaWduKSAkdmFycygkdmFycyhkZXNpZ24pLHJlYnVkZ2V0X2Fzc2VtYmxlX3N0ZXApfSAtbW1tY0ZpbGUgJG1tbWNfZmlsZSIKLSAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBzZXQgY29tbWFuZCAiYXNzZW1ibGVEZXNpZ24gLXRvcERlc2lnbiB7JHZhcnMob2FfcGFydGl0aW9uX2xpYikgJHZhcnMoZGVzaWduKSBjdHN9IC1tbW1jRmlsZSAkbW1tY19maWxlIgotICAgICAgICAgfQotICAgICAgICAgZm9yZWFjaCBwYXJ0ICR2YXJzKHBhcnRpdGlvbl9saXN0KSB7Ci0gICAgICAgICAgICBpZiB7W2xzZWFyY2ggJGlsbV9saXN0ICRwYXJ0XSA9PSAtMX0gewotICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCRwYXJ0LHJlYnVkZ2V0X2Fzc2VtYmxlX3N0ZXApXX0gewotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIlxcXG4gICAtYmxvY2sgeyR2YXJzKG9hX3BhcnRpdGlvbl9saWIpICRwYXJ0ICR2YXJzKCR2YXJzKCRwYXJ0KSxyZWJ1ZGdldF9hc3NlbWJsZV9zdGVwKX0iCi0gICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIlxcXG4gICAtYmxvY2sgeyR2YXJzKG9hX3BhcnRpdGlvbl9saWIpICRwYXJ0IGN0c30iCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0gICAgICB9IGVsc2UgewotIyAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCByZWJ1ZGdldCxpbml0aWFsaXplX3RpbWluZyAkY29tbWFuZF0KLSAgICAgICAgIGlmIHtbbGluZGV4IFtzcGxpdCAkdmFycyh2ZXJzaW9uKSAiLiJdICAwXSA+IDEwfSB7Ci0gICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoY3BmX2ZpbGUpXSAmJiAkdmFycyhjcGZfdGltaW5nKX0gewotICAgICAgICAgICAgICAgc2V0IGFzc2VtYmxlX2NvbW1hbmQgImFzc2VtYmxlRGVzaWduIC1jcGZGaWxlICR2YXJzKGNwZl9maWxlKSIKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBzZXQgYXNzZW1ibGVfY29tbWFuZCAiYXNzZW1ibGVEZXNpZ24gLW1tbWNGaWxlICRtbW1jX2ZpbGUiCi0gICAgICAgICAgICB9Ci0gICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgc2V0IGFzc2VtYmxlX2NvbW1hbmQgImFzc2VtYmxlRGVzaWduIgotICAgICAgICAgfQotICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCR2YXJzKGRlc2lnbikscmVidWRnZXRfYXNzZW1ibGVfZGJzKV19IHsKLSAgICAgICAgICAgIHNldCBjb21tYW5kICIkYXNzZW1ibGVfY29tbWFuZCAtZGVmTWVyZ2UgLXRvcERpciAkdmFycygkdmFycyhkZXNpZ24pLHJlYnVkZ2V0X2Fzc2VtYmxlX2RicykiCi0gICAgICAgICB9IGVsc2VpZiB7W2luZm8gZXhpc3RzIHZhcnMoJHZhcnMoZGVzaWduKSxyZWJ1ZGdldF9hc3NlbWJsZV9zdGVwKV19IHsKLSAgICAgICAgICAgIHNldCBjb21tYW5kICIkYXNzZW1ibGVfY29tbWFuZCAtZGVmTWVyZ2UgJHZhcnMocGFydGl0aW9uX2RpcikvJHZhcnMoZGVzaWduKS8kZGlyLyR2YXJzKCR2YXJzKGRlc2lnbikscmVidWRnZXRfYXNzZW1ibGVfc3RlcCkuZW5jLmRhdCIKLSAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBpZiB7JHZhcnMoZW5hYmxlX2ZsZXhpbG0pfSB7Ci0jICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgIiRhc3NlbWJsZV9jb21tYW5kIFxcXG4gICAtZGVmTWVyZ2UgXFxcbiAgIC10b3BEaXIgJHZhcnMocGFydGl0aW9uX2Rpcl9wYXNzMikvJHZhcnMoZGVzaWduKSAiCi0gICAgICAgICAgICAgICBzZXQgY29tbWFuZCAiJGFzc2VtYmxlX2NvbW1hbmQgXFxcbiAgIC1kZWZNZXJnZSBcXFxuICAgLXRvcERpciAkdmFycyhwYXJ0aXRpb25fZGlyKV9QUkVDVFMvJHZhcnMoZGVzaWduKSAiCi0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgIiRhc3NlbWJsZV9jb21tYW5kIC1kZWZNZXJnZSAtdG9wRGlyICR2YXJzKHBhcnRpdGlvbl9kaXIpLyR2YXJzKGRlc2lnbikvJGRpci9jdHMuZW5jLmRhdCAiCi0gICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0gICAgICAgICBmb3JlYWNoIHBhcnQgJHZhcnMocGFydGl0aW9uX2xpc3QpIHsKLSAgICAgICAgICAgIGlmIHtbbHNlYXJjaCAkdmFycyhpbG1fbGlzdCkgJHBhcnRdID09IC0xfSB7Ci0gICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJHBhcnQscmVidWRnZXRfYXNzZW1ibGVfZGJzKV19IHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJcXFxuICAgLWJsb2NrRGlyICR2YXJzKCRwYXJ0LHJlYnVkZ2V0X2Fzc2VtYmxlX2RicykiCi0gICAgICAgICAgICAgICB9IGVsc2VpZiB7W2luZm8gZXhpc3RzIHZhcnMoJHBhcnQscmVidWRnZXRfYXNzZW1ibGVfc3RlcCldfSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiXFxcbiAgIC1ibG9ja0RpciAkdmFycyhwYXJ0aXRpb25fZGlyKS8kcGFydC8kZGlyLyR2YXJzKCRwYXJ0LHJlYnVkZ2V0X2Fzc2VtYmxlX3N0ZXApLmVuYy5kYXQiCi0gICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgaWYgeyR2YXJzKGVuYWJsZV9mbGV4aWxtKX0gewotICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIlxcXG4gICAtYmxvY2tEaXIgJHZhcnMocGFydGl0aW9uX2RpcilfUFJFQ1RTLyRwYXJ0LyR7cGFydH1fcG9zdEVDTy5lbmMuZGF0IgotICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJcXFxuICAgLWJsb2NrRGlyICR2YXJzKHBhcnRpdGlvbl9kaXIpLyRwYXJ0LyRkaXIvY3RzLmVuYy5kYXQiCi0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0gICAgICB9Ci0gICAgICBhcHBlbmQgY29tbWFuZCAiXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksYXNzZW1ibGVfZGVzaWduICRjb21tYW5kXQotCi0gICAgICBpZiB7JHZhcnMoY2FwdHVyZV9tZXRyaWNzKX0gewotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJ1bTo6ZW5hYmxlX21ldHJpY3MgLW9uXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgInVtOjpwdXNoX3NuYXBzaG90X3N0YWNrXG4iCi0gICAgICB9Ci0gICAgICAKLSAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OnNvdXJjZV9wbHVnIGFsd2F5c19zb3VyY2VfdGNsXQotCi0gICAgICBzZXQgY29tbWFuZCAiIgotICAgICAgIyBBZGRpdGlvbmFsIHRpbWluZyBzZXR1cAotICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCR2YXJzKGRlc2lnbiksbGF0ZW5jeV9zZGMpXX0gewotICAgICAgICAgYXBwZW5kIGNvbW1hbmQgImZvcmVhY2ggbW9kZSBcW2FsbF9jb25zdHJhaW50X21vZGVzIC1hY3RpdmVcXSB7XG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZCAiICAgc2V0IHNkY19maWxlcyBcW2dldF9jb25zdHJhaW50X21vZGUgXCRtb2RlIC1zZGNfZmlsZXNcXVxuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAgIHNldCBzZGNfbGlzdCBcW2NvbmNhdCBcJHNkY19maWxlcyAkdmFycygkdmFycyhkZXNpZ24pLGxhdGVuY3lfc2RjKVxdXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZCAiICAgdXBkYXRlX2NvbnN0cmFpbnRfbW9kZSAtbmFtZSBcJG1vZGUgLXNkY19maWxlcyBcJHNkY19saXN0XG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZCAifVxuIgotCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksdXBkYXRlX2NvbnN0cmFpbnRfbW9kZSAkY29tbWFuZF0KLSAgICAgIH0KLQotICAgICAgZm9yZWFjaCB2aWV3IFtjb25jYXQgJHZhcnMoc2V0dXBfYW5hbHlzaXNfdmlld3MpICR2YXJzKGhvbGRfYW5hbHlzaXNfdmlld3MpXSB7Ci0gICAgICAgICBmb3JlYWNoIHB0biAkdmFycyhwYXJ0aXRpb25fbGlzdCkgewotICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCRwdG4sJHZpZXcsbGF0ZW5jeV9zZGMpXX0gewotICAgICAgICAgICAgICAgc2V0IGxhdGVuY3koJHZpZXcsJHB0bikgJHZhcnMoJHB0biwkdmlldyxsYXRlbmN5X3NkYykKLSAgICAgICAgICAgIH0gZWxzZWlmIHtbaW5mbyBleGlzdHMgdmFycygkcHRuLGxhdGVuY3lfc2RjKV19IHsKLSAgICAgICAgICAgICAgIHNldCBsYXRlbmN5KCR2aWV3LCRwdG4pICR2YXJzKCRwdG4sbGF0ZW5jeV9zZGMpCi0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgc2V0IGxhdGVuY3koJHZpZXcsJHB0bikgIm5vbmUiCi0gICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0gICAgICB9Ci0gICAgICAKLSAgICAgIHNldCBjb21tYW5kICIiCi0gICAgICBmb3JlYWNoIHZpZXcgW2NvbmNhdCAkdmFycyhzZXR1cF9hbmFseXNpc192aWV3cykgJHZhcnMoaG9sZF9hbmFseXNpc192aWV3cyldIHsKLSAgICAgICAgIGZvcmVhY2ggcHRuICR2YXJzKHBhcnRpdGlvbl9saXN0KSB7Ci0gICAgICAgICAgICBpZiB7JGxhdGVuY3koJHZpZXcsJHB0bikgIT0gIm5vbmUifSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiICAgc2V0UHRuVXNlckNuc0ZpbGUgLXZpZXcgJHZpZXcgLWZpbGVOYW1lICRsYXRlbmN5KCR2aWV3LCRwdG4pIC1wdG5OYW1lICRwdG5cbiIKLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0KLSAgICAgIH0KLQotICAgICAgaWYgeyRjb21tYW5kICE9ICIifSB7ICAgICAgCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksc2V0X3B0bl91c2VyX2Nuc19maWxlICRjb21tYW5kXQotICAgICAgfQotCi0gICAgICBpZiB7KFtsaW5kZXggW3NwbGl0ICR2YXJzKHZlcnNpb24pICIuIl0gIDBdID4gMTApICYmICR2YXJzKGNwZl90aW1pbmcpfSB7Ci0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgInNvdXJjZSAkbW1tY19maWxlXG4iCi0gICAgICB9Ci0gICAgICBpZiB7JHZhcnMoZmxvdykgPT0gIm1tbWMifSB7Ci0gICAgICAgICBzZXQgY29tbWFuZCBbRkZfRURJOjpkZXJhdGVfdGltaW5nIG1tbWNdCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksZGVyYXRlX3RpbWluZyAkY29tbWFuZF0KLSAgICAgIH0KLQotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgIyBMb2FkICJwb3N0IGFzc2VtYmxlX2ZsZXhpbG0iIHBsdWctaW4gc2NyaXB0Ci0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjpzb3VyY2VfcGx1ZyBwb3N0X2ZsZXhpbG0gMF0KLQotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgIyBTcGVjaWZ5IElMTXMgaWYgZGVmaW5lZAotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgaWYgeyR2YXJzKGlsbSl9IHsKLSAgICAgICAgIGlmIHskdmFycyh2ZXJib3NlKX0gewotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjXG4iCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgU1BFQ0lGWUlORyBJTE1zXG4iCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiNcbiIKLSAgICAgICAgIH0KLSAgICAgICAgIHNldCBjb21tYW5kICIiIAotICAgICAgICAgZm9yZWFjaCBjZWxsICR2YXJzKGlsbV9saXN0KSB7Ci0gICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJGNlbGwsaWxtX2RpcildICYmIFtmaWxlIGlzZGlyZWN0b3J5ICR2YXJzKCRjZWxsLGlsbV9kaXIpXX0gewotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgInNwZWNpZnlJbG0gLWNlbGwgJGNlbGwgLWRpciAkdmFycygkY2VsbCxpbG1fZGlyKVxuIgotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIHB1dHMgIjxGRj4gV0FSTklORzogSUxNIERJUkVDVE9SWSBNSVNTSU5HIEZPUiAkY2VsbCAuLi4gU0tJUFBJTkciCi0gICAgICAgICAgICB9Ci0gICAgICAgICB9IAotICAKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxzcGVjaWZ5X2lsbSAkY29tbWFuZF0KLSAgCi0gICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoaWxtX25vbl9zZGNfZmlsZSldfSB7Ci0gICAgICAgICAgICBpZiB7W2xpbmRleCBbc3BsaXQgJHZhcnModmVyc2lvbikgIi4iXSAgMF0gPD0gMTB9IHsKLSAgICAgICAgICAgICAgIHNldCBjb21tYW5kICJsb2FkVGltaW5nQ29uIC1pbG1Ob25TZGNGaWxlICR2YXJzKGlsbV9ub25fc2RjX2ZpbGUpXG4iCi0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgInNldElsbU5vblNkY0NvbnN0cmFpbnRGaWxlICR2YXJzKGlsbV9ub25fc2RjX2ZpbGUpXG4iCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksbG9hZF9pbG1fbm9uX3NkY19maWxlICRjb21tYW5kXQotICAgICAgICAgfQotICAgICAgfQotCi0gICAgICBpZiB7W2xpbmRleCBbc3BsaXQgJHZhcnModmVyc2lvbikgIi4iXSAgMF0gPCAxNH0gewotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRl9FREk6OmxvYWRfcG93ZXJfaW50ZW50XQotICAgICAgfSBlbHNlIHsKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkZfTk9WVVM6OmxvYWRfcG93ZXJfaW50ZW50XQotICAgICAgfQotCi0gICAgICBpZiB7W2xpbmRleCBbc3BsaXQgJHZhcnModmVyc2lvbikgIi4iXSAgMF0gPD0gMTB9IHsKLSAgICAgICAgIHNldCBjb21tYW5kIFtGRl9FREk6OmluaXRpYWxpemVfdGltaW5nIG1tbWNdCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksaW5pdGlhbGl6ZV90aW1pbmcgJGNvbW1hbmRdCi0gICAgICB9IGVsc2VpZiB7W2luZm8gZXhpc3RzIHZhcnMoY3BmX2ZpbGUpXSAmJiAkdmFycyhjcGZfdGltaW5nKX0gewotICAgICAgICAgc2V0IGNvbW1hbmQgW0ZGX0VESTo6aW5pdGlhbGl6ZV90aW1pbmcgbW1tY10KLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxpbml0aWFsaXplX3RpbWluZyAkY29tbWFuZF0KLSAgICAgIH0KLQotIyAgICAgIGlmIHshJHZhcnMoZW5hYmxlX2ZsZXhpbG0pfSB7Ci0jICAgICAgICAgc2V0IGNvbW1hbmQgW0ZGX0VESTo6dXBkYXRlX3RpbWluZyBtbW1jIF0KLSMgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksdXBkYXRlX3RpbWluZyAkY29tbWFuZF0KLSMgICAgICB9Ci0KLSAgICAgIHNldCBjb21tYW5kICIiCi0gICAgICBmb3JlYWNoIG5hbWUgJHZhcnMocGFydGl0aW9uX2xpc3QpIHsKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kICJzZXRQdG5QaW5TdGF0dXMgLWNlbGwgJG5hbWUgLXBpbiAqIC1zdGF0dXMgcGxhY2VkXG4iCi0gICAgICB9IAotICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHNldF9wdG5fcGluX3N0YXR1cyAkY29tbWFuZF0KLSAgICAgIHNldCBjb21tYW5kICJkYkRlbGV0ZVRyaWFsUm91dGVcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxkZWxldGVfdHJpYWxfcm91dGUgJGNvbW1hbmRdCi0KLSAgICAgIGlmIHtbbGluZGV4IFtzcGxpdCAkdmFycyh2ZXJzaW9uKSAiLiJdICAwXSA8IDE2fSB7Ci0gICAgICAgIHNldCBjb21tYW5kICJzZXRUcmlhbFJvdXRlTW9kZSAtaGFuZGxlUGFydGl0aW9uQ29tcGxleCB0cnVlIC1ob25vclBpbiBmYWxzZVxuIgotICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksc2V0X3RyaWFsX3JvdXRlX21vZGUgJGNvbW1hbmRdCi0gICAgICAgIHNldCBjb21tYW5kICJ0cmlhbFJvdXRlXG4iCi0gICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSx0cmlhbF9yb3V0ZSAkY29tbWFuZF0KLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgIHNldCBjb21tYW5kICJzZXRSb3V0ZU1vZGUgLWVhcmx5R2xvYmFsUm91dGVQYXJ0aXRpb25Ib25vckZlbmNlIC4gLWVhcmx5R2xvYmFsUm91dGVQYXJ0aXRpb25Ib25vclBpbiB7fVxuIgotICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksc2V0X3JvdXRlX21vZGUgJGNvbW1hbmRdCi0gICAgICAgIHNldCBjb21tYW5kICJlYXJseUdsb2JhbFJvdXRlXG4iCi0gICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxlYXJseV9nbG9iYWxfcm91dGUgJGNvbW1hbmRdCi0gICAgICB9Ci0KLSAgICAgIHNldCBjb21tYW5kICIiCi0gICAgICBhcHBlbmQgY29tbWFuZCAiY3JlYXRlQWN0aXZlTG9naWNWaWV3IC10eXBlIGZsYXRUb3BcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kICJ0aW1lRGVzaWduIC1wcmVDVFMgLW91dERpciAkdmFycyhycHRfZGlyKSAtcHJlZml4IGFzc2VtYmxlX3ByZWN0c19mbGV4aWxtXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZCAiY2xlYXJBY3RpdmVMb2dpY1ZpZXdcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxjcmVhdGVfYWN0aXZlX2xvZ2ljX3ZpZXcgJGNvbW1hbmRdCi0KLQotIyAgICAgIGFwcGVuZCBjb21tYW5kICJkZXJpdmVUaW1pbmdCdWRnZXQgLW5vVHJpYWxJUE8gLW5vQ29uc3RhbnRNb2RlbFxuIgotIyAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxkZXJpdmVfdGltaW5nX2J1ZGdldCAkY29tbWFuZF0KLQotIyAgICAgIGlmIHtbc3RyaW5nIGNvbXBhcmUgLW5vY2FzZSAkdmFycyhkYnNfZm9ybWF0KSAib2EiXT09MH0gewotIyAgICAgICAgIGlmIHtbbGluZGV4IFtzcGxpdCAkdmFycyh2ZXJzaW9uKSAiLiJdICAwXSA+IDEwfSB7Ci0jICAgICAgICAgICAgc2V0IGNvbW1hbmQgInNhdmVEZXNpZ24gLWNlbGx2aWV3IHskdmFycyhvYV9kZXNpZ25fbGliKSAkdmFycyhkZXNpZ24pIGJ1ZGdldH1cbiIKLSMgICAgICAgICB9IGVsc2UgewotIyAgICAgICAgICAgIHNldCBjb21tYW5kICJzYXZlT2FEZXNpZ24gJHZhcnMob2FfZGVzaWduX2xpYikgJHZhcnMoZGVzaWduKSBidWRnZXRcbiIKLSMgICAgICAgICB9Ci0jICAgICAgfSBlbHNlIHsKLSMgICAgICAgICBzZXQgY29tbWFuZCAic2F2ZURlc2lnbiAkdmFycyhkYnNfZGlyKS9idWRnZXQuZW5jIC1jb21wcmVzc1xuIgotIyAgICAgIH0KLSMgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksc2F2ZV9kZXNpZ24sYnVkZ2V0ICRjb21tYW5kXQotCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAjIFBhcnRpdGlvbiBhbmQgc2F2ZSB0aGUgcGFydGl0aW9ucyBpbnRvIHRoZQotICAgICAgIyBkaXJlY3RvcnkgUEFSVElUSU9OCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0jICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6c291cmNlX3BsdWcgcHJlX3BhcnRpdGlvbl90Y2xdCi0KLSMgICAgICBzZXQgY29tbWFuZCAic2V0IHB0bmdQdG5UaW1pbmdMaWJGb3JtYXQgbGliXG5wYXJ0aXRpb24gLWJ1aWxkU2NhblxuIgotIyAgICAgIHNldCBjb21tYW5kICJwYXJ0aXRpb24gLWJ1aWxkU2NhblxuIgotIyAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxwYXJ0aXRpb24gJGNvbW1hbmRdCi0jICAgICAgaWYge1tsaW5kZXggW3NwbGl0ICR2YXJzKHZlcnNpb24pICIuIl0gIDBdID4gMTB9IHsKLSMgICAgICAgICBpZiB7KFtzdHJpbmcgY29tcGFyZSAkdmFycyhkYnNfZm9ybWF0KSAib2EiXT09MCl9IHsKLSMgICAgICAgICAgICBpZiB7JHZhcnMoaGllcl9mbG93X3R5cGUpID09ICIxcGFzcyJ9IHsKLSMgICAgICAgICAgICAgICBzZXQgY29tbWFuZCAic2F2ZVBhcnRpdGlvbiAtcHRuTGliICR2YXJzKG9hX3BhcnRpdGlvbl9saWIpIC1kaXIgJHZhcnMocGFydGl0aW9uX2RpcilcbiIKLSMgICAgICAgICAgICB9IGVsc2UgewotIyAgICAgICAgICAgICAgIHNldCBjb21tYW5kICJzYXZlUGFydGl0aW9uIC1wdG5MaWIgJHZhcnMob2FfcGFydGl0aW9uX2xpYikgLWRpciAkdmFycyhwYXJ0aXRpb25fZGlyX3Bhc3MyKVxuIgotIyAgICAgICAgICAgIH0KLSMgICAgICAgICB9IGVsc2UgewotIyAgICAgICAgICAgIGlmIHskdmFycyhoaWVyX2Zsb3dfdHlwZSkgPT0gIjFwYXNzIn0gewotIyAgICAgICAgICAgICAgIHNldCBjb21tYW5kICJzYXZlUGFydGl0aW9uIC1kaXIgJHZhcnMocGFydGl0aW9uX2RpcikgLWRlZiAtc2NhbkRlZlxuIgotIyAgICAgICAgICAgIH0gZWxzZSB7Ci0jICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgInNhdmVQYXJ0aXRpb24gLWRpciAkdmFycyhwYXJ0aXRpb25fZGlyX3Bhc3MyKSAtZGVmIC1zY2FuRGVmXG4iCi0jICAgICAgICAgICAgfQotIyAgICAgICAgIH0KLSMgICAgICB9IGVsc2UgewotIyAgICAgICAgIHNldCBjb21tYW5kICJzYXZlUGFydGl0aW9uIC1kaXIgJHZhcnMocGFydGl0aW9uX2RpcikgLWRlZiAtc2NhbkRlZlxuIgotIyAgICAgIH0KLSMgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksc2F2ZV9wYXJ0aXRpb24gJGNvbW1hbmRdCi0jICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6c291cmNlX3BsdWcgcG9zdF9wYXJ0aXRpb25fdGNsXQotCi0gICAgICBhcHBlbmQgY29tbWFuZHMgIiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyA8RkY+IEdFTkVSQVRJTkcgUkVQT1JUU1xuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzICIjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4iCi0KLSAgICAgIGlmIHskdmFycyhyZXBvcnRfcG93ZXIpfSB7Ci0gICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMocG93ZXJfYW5hbHlzaXNfdmlldyldICYmICgkdmFycyhwb3dlcl9hbmFseXNpc192aWV3KSAhPSAiIil9IHsKLSAgICAgICAgICAgIHNldCBjb21tYW5kICJyZXBvcnRfcG93ZXIgLXZpZXcgJHZhcnMocG93ZXJfYW5hbHlzaXNfdmlldykgLW91dGZpbGUgJHZhcnMocnB0X2RpcikvJHZhcnMoc3RlcCkucG93ZXIucnB0XG4iCi0gICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgc2V0IGNvbW1hbmQgInJlcG9ydF9wb3dlciAtb3V0ZmlsZSAkdmFycyhycHRfZGlyKS8kdmFycyhzdGVwKS5wb3dlci5ycHRcbiIKLSAgICAgICAgIH0KLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxyZXBvcnRfcG93ZXIgJGNvbW1hbmRdCi0gICAgICB9Ci0KLSAgICAgIGlmIHtbRkY6OmlzX2xwX2Zsb3ddICYmIFtpbmZvIGV4aXN0cyB2YXJzKHBvd2VyX2RvbWFpbnMpXSAmJiBbbGxlbmd0aCAkdmFycyhwb3dlcl9kb21haW5zKV0gPiAxfSB7Ci0KLSAgICAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICAgICMgVmVyaWZ5IHBvd2VyIGRvbWFpbgotICAgICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCi0gICAgICAgICBzZXQgY29tbWFuZCAidmVyaWZ5UG93ZXJEb21haW4gLWJpbmQgLWdjb25uIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAtaXNvTmV0UEQgJHZhcnMocnB0X2RpcikvJHZhcnMoc3RlcCkuaXNvbmV0cy5ycHQiCi0gICAgICAgICBhcHBlbmQgY29tbWFuZCAiIC14TmV0UEQgJHZhcnMocnB0X2RpcikvJHZhcnMoc3RlcCkueG5ldHMucnB0XG4iCi0KLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSx2ZXJpZnlfcG93ZXJfZG9tYWluICRjb21tYW5kXQotCi0gICAgICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAgICAjIFJ1biBDTFAKLSAgICAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLQotICAgICAgICAgaWYgeyR2YXJzKHJ1bl9jbHApICYmIChbYXV0b19leGVjb2sgbGVjXSAhPSAiIil9IHsKLSAgICAgICAgICAgIHNldCBjb21tYW5kICJydW5DTFAgIgotICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGNscF9vcHRpb25zKV19IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICR2YXJzKGNscF9vcHRpb25zKQotICAgICAgICAgICAgfQotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIlxuIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHJ1bl9jbHAgJGNvbW1hbmRdCi0gICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycyhjbHBfd2FybmluZyldfSB7Ci0gICAgICAgICAgICAgICBwdXRzICI8RkY+IFdBUk5JTkc6IFVOQUJMRSBUTyBSVU4gQ0xQIC4uLiBQTEVBU0UgTUFLRSBTVVJFIElUIElTIElOIFlPVVIgUEFUSCIKLSAgICAgICAgICAgICAgIHNldCB2YXJzKGNscF93YXJuaW5nKSB0cnVlCi0gICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0gICAgICB9Ci0gICAgICBpZiB7ISR2YXJzKGNvZGVnZW4pfSB7Ci0gICAgICAgICB1cGxldmVsICMwIGV2YWwgJGNvbW1hbmRzCi0gICAgICAgICBzZXQgY29tbWFuZHMgIiIgCi0gICAgICB9Ci0KLSMgICAgICBpZiB7JHZhcnMobWFrZWZpbGUpfSB7IAotICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiaWYge1xbaW5mbyBleGlzdHMgZW52KFZQQVRIKVxdfSB7XG4iCi0gICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJleGVjIC9iaW4vdG91Y2ggXCRlbnYoVlBBVEgpLyR2YXJzKHN0ZXApXG4iCi0gICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJ9XG4iCi0jICAgICAgIH0KLQotIyAgICAgIGlmIHskdmFycyhlbmFibGVfZmxleGlsbSl9IHsKLSMgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgQ29weSBNYWtlZmlsZXMgaW4gY2FzZSB0aGV5IGdldCBkZWxldGVkIGR1cmluZyB0aGUgZmxvdyAuLi5cbiIKLSMgICAgICAgICBmb3JlYWNoIHBhcnQgW2NvbmNhdCAkdmFycyhkZXNpZ24pICR2YXJzKHBhcnRpdGlvbl9saXN0KV0gewotIyAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiZmlsZSBjb3B5IC1mb3JjZSAkdmFycyhzY3JpcHRfZGlyKS8kcGFydC5NYWtlZmlsZSAkdmFycyhwYXJ0aXRpb25fZGlyX3Bhc3MyKS8kcGFydC9NYWtlZmlsZVxuIgotIyAgICAgICAgIH0KLSMgICAgICAgICBhcHBlbmQgY29tbWFuZHMgImZpbGUgY29weSAtZm9yY2UgJHZhcnMocGFydGl0aW9uX2RpcikvTWFrZWZpbGUgJHZhcnMocGFydGl0aW9uX2Rpcl9wYXNzMikvTWFrZWZpbGVcbiIKLSMgICAgICAgICBhcHBlbmQgY29tbWFuZHMgImZpbGUgY29weSAtZm9yY2UgJHZhcnMocGFydGl0aW9uX2RpcikvTWFrZWZpbGUucGFydGl0aW9uICR2YXJzKHBhcnRpdGlvbl9kaXJfcGFzczIpL01ha2VmaWxlLnBhcnRpdGlvblxuIgotIyAgICAgIH0KLQotICAgICAgaWYgeyR2YXJzKGNvZGVnZW4pfSB7Ci0gICAgICAgICByZXR1cm4gJGNvbW1hbmRzCi0gICAgICB9IGVsc2UgewotICAgICAgICAgdXBsZXZlbCAjMCBldmFsICRjb21tYW5kcwotICAgICAgfQotICAgfQotCi0gICBwcm9jIHJ1bl9mbGV4aWxtIHt7Zm9ybWF0IDF9fSB7Ci0KLSAgICAgIGdsb2JhbCB2YXJzCi0gICAgICBnbG9iYWwgZXJyb3JzCi0gICAgICBnbG9iYWwgZW52Ci0KLSAgICAgIHNldCB2YXJzKHN0ZXApIGZsZXhpbG0KLSAgICAgIHNldCBjb21tYW5kcyAiIgotIyAgICAgIGFwcGVuZCBjb21tYW5kcyAic2V0IHZhcnMoc3RlcCkgJHZhcnMoc3RlcClcbiIKLQotICAgICAgRkZfRURJOjppbml0aWFsaXplX3N0ZXAgZmxleGlsbQotCi0jICAgICAgaWYgeyR2YXJzKHJlcG9ydF9ydW5fdGltZSl9IHsKLSMgICAgICAgICBhcHBlbmQgY29tbWFuZHMgInNldCB2YXJzKCR2YXJzKHN0ZXApLHN0YXJ0X3RpbWUpIFxbY2xvY2sgc2Vjb25kc1xdXG4iCi0jICAgICAgfQotCi0gICAgICBpZiB7JHZhcnModmVyYm9zZSl9IHsKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiI1xuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjIFJFU1RPUklORyBERVNJR05cbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiI1xuIgotICAgICAgfQotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgIyBMb2FkICJwcmUgZmxleGlsbSIgcGx1Zy1pbiBzY3JpcHQKLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OnNvdXJjZV9wbHVnIHByZV9mbGV4aWxtX3RjbF0KLQotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgIyBSZXN0b3JlIHRoZSBkZXNpZ24KLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgIHNldCB2YXJzKGlsbSkgZmFsc2UKLSAgICAgIHNldCBpbG1fbGlzdCBbbGlzdF0KLSAgICAgIHNldCBwYWNfbGlzdCBbbGlzdF0KLSAgICAgIGlmIHskdmFycyhlbmFibGVfcGFjKX0gewotICAgICAgICAgZm9yZWFjaCBwYXJ0ICR2YXJzKHBhcnRpdGlvbl9saXN0KSB7Ci0gICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJHBhcnQscGFjX21vZGUpXX0gIHsKLSAgICAgICAgICAgICAgIGlmIHskdmFycygkcGFydCxwYWNfbW9kZSkgPT0gImlsbSJ9IHsKLSAgICAgICAgICAgICAgICAgIGxhcHBlbmQgaWxtX2xpc3QgJHBhcnQKLSAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICBsYXBwZW5kIHBhY19saXN0ICRwYXJ0Ci0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0gICAgICB9Ci0gICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoaWxtX2xpc3QpXSAmJiAoJHZhcnMoaWxtX2xpc3QpICE9ICIiKX0gewotICAgICAgICAgZm9yZWFjaCBpbG0gJHZhcnMoaWxtX2xpc3QpIHsKLSAgICAgICAgICAgIGlmIHsoW2xzZWFyY2ggJGlsbV9saXN0ICRpbG1dID09IC0xKSAmJiAoW2xzZWFyY2ggJHBhY19saXN0ICRpbG1dID09IC0xKX0gewotICAgICAgICAgICAgICAgbGFwcGVuZCBpbG1fbGlzdCAkaWxtCi0gICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0gICAgICB9Ci0gICAgICBpZiB7JGlsbV9saXN0ICE9ICIifSB7Ci0gICAgICAgICBzZXQgdmFycyhpbG0pIHRydWUgCi0gICAgICB9Ci0KLSAgICAgICMgQkNMOiBBZGRlZCB0YWlsIG9mIHN1YnN0IG9mIHZhcnMoZGJzX2RpcikKLSAgICAgICMgTm90ZSAtIEVESUZGIEhpZXJhcmNoaWNhbCBmbG93IGlzIGN1cnJlbnRseSBJTkNPTVBBVElCTEUgd2l0aCBGRiBkaXIgc3RydWN0dXJlCi0gICAgICAjIFRoZSBmb2xsb3dpbmcgY29kZSBhcHBlYXJzIHRvIHJlbHkgb24gdmFycyhkYnNfZGlyKSBhbHdheXMgYmVpbmcgdW5kZXIgJHZhcnMocGFydGl0aW9uX2RpcikvJHZhcnMoZGVzaWduKQotICAgICAgIyBUaGlzIG5lZWRzIHRvIGJlIHJlY29uY2lsZWQKLSAgICAgIHNldCBkaXIgW2ZpbGUgdGFpbCBbc3Vic3QgJHZhcnMoZGJzX2RpcildXQotCi0gICAgICBpZiB7W2xpbmRleCBbc3BsaXQgJHZhcnModmVyc2lvbikgIi4iXSAgMF0gPiAxMH0gewotICAgICAgICAgc2V0IGNvbW1hbmQgW0ZGX0VESTo6aW5pdGlhbGl6ZV90aW1pbmcgbW1tY10KLSAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhjcGZfZmlsZSldICYmICR2YXJzKGNwZl90aW1pbmcpfSB7Ci0gICAgICAgICAgICBzZXQgbW1tY19maWxlICR2YXJzKHNjcmlwdF9kaXIpL2luY3Jfdmlld19kZWZpbml0aW9uLnRjbAotICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyh2aWV3X2RlZmluaXRpb25fdGNsKV19IHsKLSAgICAgICAgICAgICAgIHNldCBtbW1jX2ZpbGUgJHZhcnModmlld19kZWZpbml0aW9uX3RjbCkKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBzZXQgbW1tY19maWxlICR2YXJzKHNjcmlwdF9kaXIpL3ZpZXdfZGVmaW5pdGlvbi50Y2wKLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0KLSAgICAgIH0KLQotIyAgICAgIGFwcGVuZCBjb21tYW5kcyAic2V0TGltaXRlZEFjY2Vzc0ZlYXR1cmUgZW5jRmxleElMTSAxXG4iCi0KLSAgICAgIGFwcGVuZCBjb21tYW5kcyAiZmlsZSBjb3B5IC1mb3JjZSAkdmFycyhzY3JpcHRfZGlyKS92aWV3X2RlZmluaXRpb24udGNsICR2YXJzKHBhcnRpdGlvbl9kaXIpLyR2YXJzKGRlc2lnbikvJHZhcnMoZGJzX2RpcikvcHJlY3RzLmVuYy5kYXQvdmlld0RlZmluaXRpb24udGNsXG4iCi0KLSAgICAgIHNldCBjd2QgW2V4ZWMgcHdkXQotICAgICAgYXBwZW5kIGNvbW1hbmRzICJjZCAkdmFycyhwYXJ0aXRpb25fZGlyKS8kdmFycyhkZXNpZ24pXG4iCi0KLSMgICAgICBzZXQgY29tbWFuZCAicmVzdG9yZURlc2lnbiAuICR2YXJzKGRlc2lnbilcbiIKLSAgICAgIHNldCBjb21tYW5kICJyZXN0b3JlRGVzaWduICR2YXJzKGRic19kaXIpL3ByZWN0cy5lbmMuZGF0ICR2YXJzKGRlc2lnbilcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCBmbGV4aWxtLHJlc3RvcmVfZGVzaWduICRjb21tYW5kXQotCi0jICAgICAgaWYgeyhbbGluZGV4IFtzcGxpdCAkdmFycyh2ZXJzaW9uKSAiLiJdICAwXSA+IDEwKSAmJiAkdmFycyhjcGZfdGltaW5nKX0gewotIyAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAic291cmNlICRtbW1jX2ZpbGVcbiIKLSMgICAgICB9Ci0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjpzb3VyY2VfcGx1ZyBhbHdheXNfc291cmNlX3RjbF0KLQotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgIyBMb2FkICJwb3N0IGZsZXhpbG0iIHBsdWctaW4gc2NyaXB0Ci0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjpzb3VyY2VfcGx1ZyBwb3N0X2ZsZXhpbG0gMF0KLQotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgIyBTcGVjaWZ5IElMTXMgaWYgZGVmaW5lZAotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgaWYgeyR2YXJzKGlsbSl9IHsKLSAgICAgICAgIGlmIHskdmFycyh2ZXJib3NlKX0gewotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjXG4iCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgU1BFQ0lGWUlORyBJTE1zXG4iCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiNcbiIKLSAgICAgICAgIH0KLSAgICAgICAgIHNldCBjb21tYW5kICIiIAotICAgICAgICAgZm9yZWFjaCBjZWxsICRpbG1fbGlzdCB7Ci0gICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJGNlbGwsaWxtX2RpcildICYmIFtmaWxlIGlzZGlyZWN0b3J5ICR2YXJzKCRjZWxsLGlsbV9kaXIpXX0gewotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgInNwZWNpZnlJbG0gLWNlbGwgJGNlbGwgLWRpciAkdmFycygkY2VsbCxpbG1fZGlyKVxuIgotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIHB1dHMgIjxGRj4gV0FSTklORzogSUxNIERJUkVDVE9SWSBNSVNTSU5HIEZPUiAkY2VsbCAuLi4gU0tJUFBJTkciCi0gICAgICAgICAgICB9Ci0gICAgICAgICB9IAotICAKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxzcGVjaWZ5X2lsbSAkY29tbWFuZF0KLSAgCi0gICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoaWxtX25vbl9zZGNfZmlsZSldfSB7Ci0gICAgICAgICAgICBpZiB7W2xpbmRleCBbc3BsaXQgJHZhcnModmVyc2lvbikgIi4iXSAgMF0gPD0gMTB9IHsKLSAgICAgICAgICAgICAgIHNldCBjb21tYW5kICJsb2FkVGltaW5nQ29uIC1pbG1Ob25TZGNGaWxlICR2YXJzKGlsbV9ub25fc2RjX2ZpbGUpXG4iCi0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgInNldElsbU5vblNkY0NvbnN0cmFpbnRGaWxlICR2YXJzKGlsbV9ub25fc2RjX2ZpbGUpXG4iCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksbG9hZF9pbG1fbm9uX3NkY19maWxlICRjb21tYW5kXQotICAgICAgICAgfQotICAgICAgfQotCi0gICAgICBpZiB7W2xpbmRleCBbc3BsaXQgJHZhcnModmVyc2lvbikgIi4iXSAgMF0gPCAxNH0gewotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRl9FREk6OmxvYWRfcG93ZXJfaW50ZW50XQotICAgICAgfSBlbHNlIHsKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkZfTk9WVVM6OmxvYWRfcG93ZXJfaW50ZW50XQotICAgICAgfQotCi0jICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGNwZl9maWxlKV0gJiYgJHZhcnMoY3BmX3RpbWluZyl9IHsKLSAgICAgICAgIHNldCBjb21tYW5kIFtGRl9FREk6OmluaXRpYWxpemVfdGltaW5nIG1tbWNdCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksaW5pdGlhbGl6ZV90aW1pbmcgJGNvbW1hbmRdCi0jICAgICAgfQotCi0jICAgICAgc2V0IGNvbW1hbmQgW0ZGX0VESTo6dXBkYXRlX3RpbWluZyBtbW1jIF0KLSMgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksdXBkYXRlX3RpbWluZyAkY29tbWFuZF0KLQotICAgICAgZm9yZWFjaCBtb2RlIFtjb25jYXQgJHZhcnMoYWN0aXZlX3NldHVwX3ZpZXdzKSAkdmFycyhhY3RpdmVfaG9sZF92aWV3cyldIHsKLSMgICAgICAgICBleGVjIC9iaW4vdG91Y2ggZW1wdHkuc2RjCi0jICAgICAgICAgc2V0IGNvbW1hbmQgInVwZGF0ZV9jb25zdHJhaW50X21vZGUgLW5hbWUgJG1vZGUgLXNkY19maWxlcyBlbXB0eS5zZGMgLWlsbV9zZGNfZmlsZXMgXFtnZXRfY29uc3RyYWludF9tb2RlICRtb2RlIC1zZGNfZmlsZXNcXVxuIgotICAgICAgICAgc2V0IGNvbW1hbmQgInVwZGF0ZV9jb25zdHJhaW50X21vZGUgLW5hbWUgJG1vZGUgLWlsbV9zZGNfZmlsZXMgXFtnZXRfY29uc3RyYWludF9tb2RlICRtb2RlIC1zZGNfZmlsZXNcXVxuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHVwZGF0ZV9jb25zdHJhaW50X21vZGUgJGNvbW1hbmRdCi0gICAgICB9Ci0KLSAgICAgIGFwcGVuZCBjb21tYW5kcyAiY2QgJGN3ZFxuIgotCi0gICAgICBzZXQgY29tbWFuZCAiIgotICAgICAgZm9yZWFjaCBwYXJ0ICR2YXJzKHBhcnRpdGlvbl9saXN0KSB7Ci0gICAgICAgICBhcHBlbmQgY29tbWFuZCAic2V0X21vZHVsZV9tb2RlbCAtY2VsbCAkcGFydCBcXFxuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIi10eXBlIGZsZXhJbG0gXFxcbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kICItZGlyICR2YXJzKHBhcnRpdGlvbl9kaXIpLyRwYXJ0LyRwYXJ0LmZsZXhpbG1cbiIKLSAgICAgIH0KLQotICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHNldF9tb2R1bGVfbW9kZWwgJGNvbW1hbmRdCi0KLSAgICAgIHNldCBjb21tYW5kICJjb21taXRfbW9kdWxlX21vZGVsXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksY29tbWl0X21vZHVsZV9tb2RlbCAkY29tbWFuZF0KLQotICAgICAgc2V0IGNvbW1hbmQgIiIgCi0gICAgICBmb3JlYWNoIHBhcnQgJHZhcnMocGFydGl0aW9uX2xpc3QpIHsKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kICJzZXRNb2R1bGVWaWV3IC1wYXJ0aXRpb24gJHBhcnQgLXR5cGUgaW50ZXJmYWNlXG4iCi0gICAgICB9Ci0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksc2V0X21vZHVsZV92aWV3ICRjb21tYW5kXQotCi0gICAgICBzZXQgY29tbWFuZCAiZ2V0TW9kdWxlVmlld1xuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLGdldF9tb2R1bGVfdmlldyAkY29tbWFuZF0KLQotICAgICAgaWYgeyR2YXJzKGZsb3cpID09ICJtbW1jIn0gewotICAgICAgICAgc2V0IGNvbW1hbmQgW0ZGX0VESTo6ZGVyYXRlX3RpbWluZyBtbW1jXQotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLGRlcmF0ZV90aW1pbmcgJGNvbW1hbmRdCi0gICAgICAgICBzZXQgY29tbWFuZCAiIgotIyAgICAgICAgIGZvcmVhY2ggbW9kZSAkdmFycyhjb25zdHJhaW50X21vZGVzKSB7Ci0jICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgInVwZGF0ZV9jb25zdHJhaW50X21vZGUgLW5hbWUgJG1vZGUgLXNkY19maWxlcyBcIiR2YXJzKCRtb2RlLHByZV9jdHNfc2RjKVwiXG4iICAgCi0jICAgICAgICAgfQotIyAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSx1cGRhdGVfY29uc3RyYWludF9tb2RlICRjb21tYW5kXQotICAgICAgfQotCi0gICAgICAjc2V0X2FuYWx5c2lzX3ZpZXcgLXNldHVwIFthbGxfc2V0dXBfYW5hbHlzaXNfdmlld3NdIC1ob2xkIFthbGxfaG9sZF9hbmFseXNpc192aWV3c10KLSAgICAgICNQdXRzICI8RkY+IFNFVFVQIC0+IFthbGxfc2V0dXBfYW5hbHlzaXNfdmlld3NdIiAKLSAgICAgICNQdXRzICI8RkY+IEhPTEQgLT4gW2FsbF9ob2xkX2FuYWx5c2lzX3ZpZXdzXSIgCi0KLSAgICAgIHNldCBjb21tYW5kICJjcmVhdGVBY3RpdmVMb2dpY1ZpZXcgLXR5cGUgdG9wQ3JpdGljYWwgLXByZUNUU1xuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLGNyZWF0ZV9hY3RpdmVfbG9naWNfdmlldyAkY29tbWFuZF0KLSAgICAgIHNldCBjb21tYW5kICJzZXRIaWVyTW9kZSAtb3B0U3RhZ2UgcHJlQ1RTXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksc2V0X2hpZXJfbW9kZSAkY29tbWFuZF0KLSAgICAgIHNldCBjb21tYW5kICJzZXRPcHRNb2RlIC1hZGRJbnN0YW5jZVByZUZpeCBGbGV4SUxNSV8gLWFkZE5ldFByZUZpeCBGbGV4SUxNTl9cbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxzZXRfb3B0X21vZGUgJGNvbW1hbmRdCi0KLSAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OnNvdXJjZV9wbHVnIHByZV9mbGV4aWxtX3RjbCAwXQotICAgICAgc2V0IGNvbW1hbmQgIiIKLSAgICAgIGZvcmVhY2ggcGFydCAkcGFjX2xpc3QgewotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgInNldCBoaW5zdCBcW2RiSEluc3ROYW1lIFxbZGJDZWxsSEluc3QgXFtkYkdldENlbGxCeU5hbWUgJHBhcnRcXVxdXF1cbiIKLSAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkcGFydCxwYWNfbW9kZSldfSB7Ci0gICAgICAgICAgICBpZiB7JHZhcnMoJHBhcnQscGFjX21vZGUpID09ICJyZWFkX29ubHkifSB7IHNldCB2YXJzKCRwYXJ0LHBhY19tb2RlKSAicmVhZE9ubHkiIH0KLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJzZXRNb2R1bGVWaWV3IC1oaW5zdCBcJGhpbnN0IC10eXBlICR2YXJzKCRwYXJ0LHBhY19tb2RlKVxuIgotICAgICAgICAgfSAKLSAgICAgIH0KLQotICAgICAgYXBwZW5kIGNvbW1hbmQgImdldE1vZHVsZVZpZXdcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxzZXRfbW9kdWxlX3ZpZXcgJGNvbW1hbmRdCi0KLSAgICAgIGlmIHskdmFycyh2ZXJib3NlKX0gewotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIiMgUlVOTklORyBGTEVYSUxNIE9QVElNSVpBVElPTlxuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICIjXG4iCi0gICAgICB9Ci0gICAgICBzZXQgY29tbWFuZCAib3B0RGVzaWduIC1wcmVDVFMgLW91dERpciAkdmFycyhycHRfZGlyKSAtcHJlZml4IGZsZXhpbG1cbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxvcHRfZGVzaWduICRjb21tYW5kXQotCi0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjpzb3VyY2VfcGx1ZyBwb3N0X2ZsZXhpbG1fdGNsIDBdCi0KLSMgICAgICBzZXQgY29tbWFuZCAic2V0VHJpYWxSb3V0ZU1vZGUgLWhhbmRsZVBhcnRpdGlvbkNvbXBsZXggdHJ1ZSAtaG9ub3JQaW4gdHJ1ZVxuIgotIyAgICAgIGFwcGVuZCBjb21tYW5kICJ0cmlhbFJvdXRlXG4iCi0jICAgICAgYXBwZW5kIGNvbW1hbmQgImRlcml2ZVRpbWluZ0J1ZGdldCAtbm9Db25zdGFudE1vZGVsXG4iCi0jICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLGRlcml2ZV90aW1pbmdfYnVkZ2V0ICRjb21tYW5kXQotCi0gICAgICBpZiB7W3N0cmluZyBjb21wYXJlIC1ub2Nhc2UgJHZhcnMoZGJzX2Zvcm1hdCkgIm9hIl09PTB9IHsKLSAgICAgICAgIGlmIHtbbGluZGV4IFtzcGxpdCAkdmFycyh2ZXJzaW9uKSAiLiJdICAwXSA+IDEwfSB7Ci0gICAgICAgICAgICBzZXQgY29tbWFuZCAic2F2ZURlc2lnbiAtY2VsbHZpZXcgeyR2YXJzKG9hX2Rlc2lnbl9saWIpICR2YXJzKGRlc2lnbikgZmxleGlsbX1cbiIKLSAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBzZXQgY29tbWFuZCAic2F2ZU9hRGVzaWduICR2YXJzKG9hX2Rlc2lnbl9saWIpICR2YXJzKGRlc2lnbikgZmxleGlsbVxuIgotICAgICAgICAgfQotICAgICAgfSBlbHNlIHsKLSAgICAgICAgIHNldCBjb21tYW5kICJzYXZlRGVzaWduICR2YXJzKGRic19kaXIpL2ZsZXhpbG0uZW5jIC1jb21wcmVzc1xuIgotICAgICAgfQotICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHNhdmVfZGVzaWduICRjb21tYW5kXQotCi0gICAgICBzZXQgY29tbWFuZCAiY2xlYXJBY3RpdmVMb2dpY1ZpZXdcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxjbGVhcl9hY3RpdmVfbG9naWNfdmlldyAkY29tbWFuZF0KLQotIyMjIHNhdmUgcG9zdE9wdCBkYXRhIGFuZCBjb21taXQgRUNPICMjIwotCi0jICAgICAgc2V0IGNvbW1hbmQgInVwZGF0ZV9wYXJ0aXRpb24gLWZsZXhJbG1FQ08gXFxcbiIKLSMgICAgICBhcHBlbmQgY29tbWFuZCAiICAgIC1nb2xkZW5EaXIgJHZhcnMocGFydGl0aW9uX2RpcikgXFxcbiIKLSMgICAgICBhcHBlbmQgY29tbWFuZCAiICAgIC1mbGV4SWxtRGlyICR2YXJzKHBhcnRpdGlvbl9kaXIpX0ZMRVhJTE1cbiIKLSMgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksdXBkYXRlX3BhcnRpdGlvbiAkY29tbWFuZF0KLQotICAgICAgc2V0IGNvbW1hbmQgInVwZGF0ZV9wYXJ0aXRpb24gLWZsZXhJbG1FQ08gXFxcbiIKLSAgICAgIGZvcmVhY2ggcGFydCAkdmFycyhwYXJ0aXRpb25fbGlzdCkgeyAKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgICAgLWdvbGRlbkJsb2NrRGlyICR2YXJzKHBhcnRpdGlvbl9kaXIpLyRwYXJ0LyR2YXJzKGRic19kaXIpL3ByZWN0cy5lbmMuZGF0IFxcXG4iCi0gICAgICB9IAotICAgICAgYXBwZW5kIGNvbW1hbmQgIiAgICAtZmxleElsbURpciAkdmFycyhwYXJ0aXRpb25fZGlyKV9GTEVYSUxNXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksdXBkYXRlX3BhcnRpdGlvbiAkY29tbWFuZF0KLQotICAgICAgc2V0IGNvbW1hbmQgInJlcG9ydF9yZXNvdXJjZSAtZW5kIG9wdF9mbGV4SWxtXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCkscmVwb3J0X3Jlc291cmNlICRjb21tYW5kXQotCi0gICAgICBhcHBlbmQgY29tbWFuZHMgIiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyAiIyA8RkY+IEdFTkVSQVRJTkcgUkVQT1JUU1xuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzICIjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4iCi0KLSAgICAgIGlmIHskdmFycyhyZXBvcnRfcG93ZXIpfSB7Ci0gICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMocG93ZXJfYW5hbHlzaXNfdmlldyldICYmICgkdmFycyhwb3dlcl9hbmFseXNpc192aWV3KSAhPSAiIil9IHsKLSAgICAgICAgICAgIHNldCBjb21tYW5kICJyZXBvcnRfcG93ZXIgLXZpZXcgJHZhcnMocG93ZXJfYW5hbHlzaXNfdmlldykgLW91dGZpbGUgJHZhcnMocnB0X2RpcikvJHZhcnMoc3RlcCkucG93ZXIucnB0XG4iCi0gICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgc2V0IGNvbW1hbmQgInJlcG9ydF9wb3dlciAtb3V0ZmlsZSAkdmFycyhycHRfZGlyKS8kdmFycyhzdGVwKS5wb3dlci5ycHRcbiIKLSAgICAgICAgIH0KLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxyZXBvcnRfcG93ZXIgJGNvbW1hbmRdCi0gICAgICB9Ci0KLSAgICAgIGlmIHtbRkY6OmlzX2xwX2Zsb3ddICYmIFtpbmZvIGV4aXN0cyB2YXJzKHBvd2VyX2RvbWFpbnMpXSAmJiBbbGxlbmd0aCAkdmFycyhwb3dlcl9kb21haW5zKV0gPiAxfSB7Ci0KLSAgICAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICAgICMgVmVyaWZ5IHBvd2VyIGRvbWFpbgotICAgICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCi0gICAgICAgICBzZXQgY29tbWFuZCAidmVyaWZ5UG93ZXJEb21haW4gLWJpbmQgLWdjb25uIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAtaXNvTmV0UEQgJHZhcnMocnB0X2RpcikvJHZhcnMoc3RlcCkuaXNvbmV0cy5ycHQiCi0gICAgICAgICBhcHBlbmQgY29tbWFuZCAiIC14TmV0UEQgJHZhcnMocnB0X2RpcikvJHZhcnMoc3RlcCkueG5ldHMucnB0XG4iCi0KLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSx2ZXJpZnlfcG93ZXJfZG9tYWluICRjb21tYW5kXQotCi0gICAgICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAgICAjIFJ1biBDTFAKLSAgICAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLQotICAgICAgICAgaWYgeyR2YXJzKHJ1bl9jbHApICYmIChbYXV0b19leGVjb2sgbGVjXSAhPSAiIil9IHsKLSAgICAgICAgICAgIHNldCBjb21tYW5kICJydW5DTFAgIgotICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGNscF9vcHRpb25zKV19IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICR2YXJzKGNscF9vcHRpb25zKQotICAgICAgICAgICAgfQotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIlxuIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHJ1bl9jbHAgJGNvbW1hbmRdCi0gICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycyhjbHBfd2FybmluZyldfSB7Ci0gICAgICAgICAgICAgICBwdXRzICI8RkY+IFdBUk5JTkc6IFVOQUJMRSBUTyBSVU4gQ0xQIC4uLiBQTEVBU0UgTUFLRSBTVVJFIElUIElTIElOIFlPVVIgUEFUSCIKLSAgICAgICAgICAgICAgIHNldCB2YXJzKGNscF93YXJuaW5nKSB0cnVlCi0gICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0gICAgICB9Ci0gICAgICBpZiB7ISR2YXJzKGNvZGVnZW4pfSB7Ci0gICAgICAgICB1cGxldmVsICMwIGV2YWwgJGNvbW1hbmRzCi0gICAgICAgICBzZXQgY29tbWFuZHMgIiIgCi0gICAgICB9Ci0KLSMgICAgICBpZiB7JHZhcnMobWFrZWZpbGUpfSB7IAotICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiaWYge1xbaW5mbyBleGlzdHMgZW52KFZQQVRIKVxdfSB7XG4iCi0gICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJzZXQgb3AgXFtvcGVuICRlbnYoVlBBVEgpL2ZsZXhpbG0gd1xdXG4iCi0gICAgICAgICAgZm9yZWFjaCBwYXJ0ICR2YXJzKHBhcnRpdGlvbl9saXN0KSB7Ci0gICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJwdXRzIFwkb3AgXCJzZXQgdmFycygkcGFydCxjZHR2KSBcJDo6UmRhX0NEVFY6OmlsbURhdGFJbmZvKCRwYXJ0LGJsb2NrRGlyKVwiXG4iCi0gICAgICAgICAgfQotICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiY2xvc2UgXCRvcFxuIgotIyAgICAgICAgICBmb3JlYWNoIHBhcnQgJHZhcnMocGFydGl0aW9uX2xpc3QpIHsKLSMgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJmaWxlIGNvcHkgLWZvcmNlICR2YXJzKHBhcnRpdGlvbl9kaXJfcGFzczIpLyRwYXJ0L01ha2VmaWxlICR2YXJzKHBhcnRpdGlvbl9kaXJfcGFzczIpLyRwYXJ0Lk1ha2VmaWxlXG4iCi0jICAgICAgICAgIH0KLQotICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAiZXhlYyAvYmluL3RvdWNoIFwkZW52KFZQQVRIKS8kdmFycyhzdGVwKVxuIgotICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAifVxuIgotIyAgICAgICB9Ci0KLQotICAgICAgaWYgeyR2YXJzKGNvZGVnZW4pfSB7Ci0gICAgICAgICByZXR1cm4gJGNvbW1hbmRzCi0gICAgICB9IGVsc2UgewotICAgICAgICAgdXBsZXZlbCAjMCBldmFsICRjb21tYW5kcwotICAgICAgfQotICAgfQotCi0gICBwcm9jIHJ1bl9wYXJ0aXRpb25fcGxhY2Uge3tmb3JtYXQgMX19IHsKLQotICAgICAgZ2xvYmFsIHZhcnMKLSAgICAgIGdsb2JhbCBlcnJvcnMKLSAgICAgIGdsb2JhbCBlbnYKLQotCi0gICAgICBzZXQgdmFycyhzdGVwKSBwYXJ0aXRpb25fcGxhY2UKLSAgICAgIHNldCB2YXJzKGhpZXIpIHRydWUKLSAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyh0aW1lX2Rlc2lnbl9vcHRpb25zLHNldHVwKV19IHsKLSAgICAgICAgIHNldCB0bXBfdGltZV9kZXNpZ25fb3B0aW9uc19zZXR1cCAkdmFycyh0aW1lX2Rlc2lnbl9vcHRpb25zLHNldHVwKQotICAgICAgfSBlbHNlIHsKLSAgICAgICAgIHNldCB2YXJzKHRpbWVfZGVzaWduX29wdGlvbnMsc2V0dXApICIiCi0gICAgICB9Ci0KLSAgICAgIHNldCBjb21tYW5kcyAiIgotCi0gICAgICBpZiB7ISR2YXJzKHVzZV9mbGV4bW9kZWxzKX0gewotICAgICAgICAjIEluaXRpYWxpc2UgdGhlIGRlc2lnbiBpZiBub3QgdXNpbmcgZmxleG1vZGVscyAKLSAgICAgICAgaWYgeyR2YXJzKGNvZGVnZW4pfSB7IAotICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGX0VESTo6cnVuX2luaXQgJGZvcm1hdF0KLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgRkZfRURJOjpydW5faW5pdCAkZm9ybWF0Ci0gICAgICAgIH0KLSAgICAgIH0KLQotICAgICAgaWYgeyR2YXJzKHVzZV9wcm90b19uZXRfZGVsYXlfbW9kZWwpfSB7Ci0gICAgICAgICBpZiB7ISR2YXJzKHVzZV9mbGV4bW9kZWxzKX0gewotICAgICAgICAgICAgc2V0IGNvbW1hbmQgImNhdGNoIHtleGVjIHJtIC1yZiBwcm90b19tb2RlbF9CQUNLVVB9XG5jYXRjaCB7ZXhlYyBtdiAtZiBwcm90b19tb2RlbCBwcm90b19tb2RlbF9CQUNLVVB9XG4iCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCkscHJvdG9fbW9kZWxfQkFDS1VQICRjb21tYW5kXQotICAgICAgICAgICAgc2V0IGNvbW1hbmQgImNyZWF0ZV9wc19wZXJfbWljcm9uX21vZGVsXG4iCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksY3JlYXRlX3BzX3Blcl9taWNyb25fbW9kZWwgJGNvbW1hbmRdCi0gICAgICAgICB9Ci0gICAgICAgICBzZXQgY29tbWFuZCAidGltZURlc2lnbiAtcHJvdG8gLXByZVBsYWNlIC1wcmVmaXggcHJlcGxhY2UgLW91dERpciAkdmFycyhycHRfZGlyKVxuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHRpbWVfZGVzaWduICRjb21tYW5kXQotICAgICAgfSBlbHNlIHsKLSAgICAgICAgIHNldCBjb21tYW5kICJ0aW1lRGVzaWduIC1wcmVQbGFjZSAtcHJlZml4IHByZXBsYWNlIC1vdXREaXIgJHZhcnMocnB0X2RpcilcbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSx0aW1lX2Rlc2lnbiAkY29tbWFuZF0KLSAgICAgIH0KLSAgICAgCi0gICAgICBpZiB7JHZhcnModXNlX2ZsZXhtb2RlbHMpfSB7Ci0gICAgICAgICBzZXQgY29tbWFuZCAicmVwb3J0X3Byb3RvX21vZGVsIC1jcmVhdGVkXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCkscmVwb3J0X3Byb3RvX21vZGVsICRjb21tYW5kXQotICAgICAgfQotICAgICAgCi0gICAgICBpZiB7W3N0cmluZyBjb21wYXJlIC1ub2Nhc2UgJHZhcnMoZGJzX2Zvcm1hdCkgIm9hIl09PTB9IHsKLSAgICAgICAgIGlmIHtbbGluZGV4IFtzcGxpdCAkdmFycyh2ZXJzaW9uKSAiLiJdICAwXSA+IDEwfSB7Ci0gICAgICAgICAgICBzZXQgY29tbWFuZCAic2F2ZURlc2lnbiAtY2VsbHZpZXcgeyR2YXJzKG9hX2Rlc2lnbl9saWIpICR2YXJzKGRlc2lnbikgaW5pdH1cbiIKLSAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBzZXQgY29tbWFuZCAic2F2ZU9hRGVzaWduICR2YXJzKG9hX2Rlc2lnbl9saWIpICR2YXJzKGRlc2lnbikgaW5pdFxuIgotICAgICAgICAgfQotICAgICAgfSBlbHNlIHsKLSAgICAgICAgIGlmIHsoJHZhcnMoc3RlcCkgIT0gInBhcnRpdGlvbl9wbGFjZSIpfSB7Ci0gICAgICAgICAgICBzZXQgY29tbWFuZCAic2F2ZURlc2lnbiAkdmFycyhkYnNfZGlyKS9pbml0LmVuYyAtY29tcHJlc3NcbiIKLSAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBzZXQgY29tbWFuZCAiIgotICAgICAgICAgfQotICAgICAgfQotCi0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksc2F2ZV9kZXNpZ24saW5pdCAkY29tbWFuZF0KLQotICAgICAgc2V0IGNvbW1hbmQgIiIKLSAgICAgICMgQWRkaXRpb25hbCB0aW1pbmcgc2V0dXAKLSAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkdmFycyhkZXNpZ24pLGxhdGVuY3lfc2RjKV19IHsKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kICJmb3JlYWNoIG1vZGUgXFthbGxfY29uc3RyYWludF9tb2RlcyAtYWN0aXZlXF0ge1xuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAgIHNldCBzZGNfZmlsZXMgXFtnZXRfY29uc3RyYWludF9tb2RlIFwkbW9kZSAtc2RjX2ZpbGVzXF1cbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgICBzZXQgc2RjX2xpc3QgXFtjb25jYXQgXCRzZGNfZmlsZXMgJHZhcnMoJHZhcnMoZGVzaWduKSxsYXRlbmN5X3NkYylcXVxuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAgIHVwZGF0ZV9jb25zdHJhaW50X21vZGUgLW5hbWUgXCRtb2RlIC1zZGNfZmlsZXMgXCRzZGNfbGlzdFxuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIn1cbiIKLQotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHVwZGF0ZV9jb25zdHJhaW50X21vZGUgJGNvbW1hbmRdCi0gICAgICB9Ci0KLSAgICAgIGZvcmVhY2ggdmlldyBbY29uY2F0ICR2YXJzKHNldHVwX2FuYWx5c2lzX3ZpZXdzKSAkdmFycyhob2xkX2FuYWx5c2lzX3ZpZXdzKV0gewotICAgICAgICAgZm9yZWFjaCBwdG4gJHZhcnMocGFydGl0aW9uX2xpc3QpIHsKLSAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkcHRuLCR2aWV3LGxhdGVuY3lfc2RjKV19IHsKLSAgICAgICAgICAgICAgIHNldCBsYXRlbmN5KCR2aWV3LCRwdG4pICR2YXJzKCRwdG4sJHZpZXcsbGF0ZW5jeV9zZGMpCi0gICAgICAgICAgICB9IGVsc2VpZiB7W2luZm8gZXhpc3RzIHZhcnMoJHB0bixsYXRlbmN5X3NkYyldfSB7Ci0gICAgICAgICAgICAgICBzZXQgbGF0ZW5jeSgkdmlldywkcHRuKSAkdmFycygkcHRuLGxhdGVuY3lfc2RjKQotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIHNldCBsYXRlbmN5KCR2aWV3LCRwdG4pICJub25lIgotICAgICAgICAgICAgfQotICAgICAgICAgfQotICAgICAgfQotICAgICAgCi0gICAgICBzZXQgY29tbWFuZCAiIgotICAgICAgZm9yZWFjaCB2aWV3IFtjb25jYXQgJHZhcnMoc2V0dXBfYW5hbHlzaXNfdmlld3MpICR2YXJzKGhvbGRfYW5hbHlzaXNfdmlld3MpXSB7Ci0gICAgICAgICBmb3JlYWNoIHB0biAkdmFycyhwYXJ0aXRpb25fbGlzdCkgewotICAgICAgICAgICAgaWYgeyRsYXRlbmN5KCR2aWV3LCRwdG4pICE9ICJub25lIn0gewotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAgIHNldFB0blVzZXJDbnNGaWxlIC12aWV3ICR2aWV3IC1maWxlTmFtZSAkbGF0ZW5jeSgkdmlldywkcHRuKSAtcHRuTmFtZSAkcHRuXG4iCi0gICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0gICAgICB9Ci0KLSAgICAgIGlmIHskY29tbWFuZCAhPSAiIn0geyAgICAgIAotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHNldF9wdG5fdXNlcl9jbnNfZmlsZSAkY29tbWFuZF0KLSAgICAgIH0KLQotICAgICAgIyBJbnNlcnQgZmVlZHRocm91Z2ggYW5kIHRyaWFsIHJvdXRlLCBhcyBhcHByb3ByaWF0ZQotICAgICAgc2V0IGRvX3RyaWFsX3JvdXRlX3RpbWVfZGVzaWduIDEKLQotICAgICAgIyBQcmUtcGxhY2VtZW50Ci0gICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMocGxhY2Usc2V0X3BsYWNlX21vZGUsc2tpcCldfSB7Ci0gICAgICAgICBzZXQgY2FjaGVfc2tpcF9wbGFjZV9tb2RlICR2YXJzKHBsYWNlLHNldF9wbGFjZV9tb2RlLHNraXApCi0gICAgICB9Ci0gICAgICBzZXQgdmFycyhwbGFjZSxzZXRfcGxhY2VfbW9kZSxza2lwKSAxCi0gICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMocGxhY2UscGxhY2VfZGVzaWduLHNraXApXX0gewotICAgICAgICAgc2V0IGNhY2hlX3NraXBfcGxhY2VfZGVzaWduICR2YXJzKHBsYWNlLHBsYWNlX2Rlc2lnbixza2lwKQotICAgICAgfQotICAgICAgc2V0IHZhcnMocGxhY2UscGxhY2VfZGVzaWduLHNraXApIDEKLQotICAgICAgYXBwZW5kIGNvbW1hbmQgImlmIHtcW2RiR2V0IC1lIHRvcC5wdG5zLmNsb25lc1xdICE9IFwiXCJ9IHtcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kICIgICBhbGlnblB0bkNsb25lXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZCAifVxuIiAKLSAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxhbGlnbl9wYXJ0aXRpb25fY2xvbmUgJGNvbW1hbmRdCi0KLSAgICAgIHNldCB2YXJzKGhpZXJfY2FzZSkgIiR2YXJzKHVzZV9mbGV4bW9kZWxzKSR2YXJzKHBsYWNlbWVudF9iYXNlZF9wdG4pJHZhcnMoYWJ1dHRlZF9kZXNpZ24pJHZhcnMoaW5zZXJ0X2ZlZWR0aHJvdWdoKSIKLQotICAgICAgIyBEaXNhYmxlIHNjYW4gcmVvcmRlciBmb3IgcGFydGl0aW9uaW5nIGZsb3cKLSAgICAgICMgc2V0IGNvbW1hbmQgInNldFBsYWNlTW9kZSAtcmVvcmRlclNjYW4gZmFsc2VcbiIKLSAgICAgICMgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHNldF9wbGFjZV9tb2RlICRjb21tYW5kXQotCi0gICAgICBzd2l0Y2ggJHZhcnMoaGllcl9jYXNlKSB7Ci0gICAgICAgICAiMDAwMCIgewotICAgICAgICAgICAgaWYgeyR2YXJzKGVuYWJsZV9ucmdyKX0gewotICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgInNldERlc2lnbk1vZGUgLXVzZVR1cmJvTlJHUkZsb3cgdHJ1ZVxuIgotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHNldF9kZXNpZ25fbW9kZSAkY29tbWFuZF0KLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0KLSAgICAgICAgICIwMDAxIiB7Ci0gICAgICAgICAgICBpZiB7JHZhcnMoZW5hYmxlX25yZ3IpfSB7Ci0gICAgICAgICAgICAgICBzZXQgY29tbWFuZCAic2V0RGVzaWduTW9kZSAtdXNlVHVyYm9OUkdSRmxvdyB0cnVlXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksc2V0X2Rlc2lnbl9tb2RlICRjb21tYW5kXQotICAgICAgICAgICAgfQotICAgICAgICAgICAgc2V0IGNvbW1hbmQgInNldFBsYWNlTW9kZSAtcGxhY2VfZ2xvYmFsX2NvbmdfZWZmb3J0IGF1dG8gLXBsYWNlX2dsb2JhbF9jbG9ja19nYXRlX2F3YXJlIHRydWUgLXBsYWNlX2dsb2JhbF9wbGFjZV9pb19waW5zIHRydWVcbiIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxzZXRfcGxhY2VfbW9kZSAkY29tbWFuZF0KLSAgICAgICAgIH0KLSAgICAgICAgICIwMDEwIiB7Ci0gICAgICAgICAgICBpZiB7JHZhcnMoZW5hYmxlX25yZ3IpfSB7Ci0gICAgICAgICAgICAgICBzZXQgY29tbWFuZCAic2V0RGVzaWduTW9kZSAtdXNlVHVyYm9OUkdSRmxvdyB0cnVlXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksc2V0X2Rlc2lnbl9tb2RlICRjb21tYW5kXQotICAgICAgICAgICAgfQotICAgICAgICAgICAgc2V0IGNvbW1hbmQgInNldFBsYWNlTW9kZSAtcGxhY2VfZ2xvYmFsX2NvbmdfZWZmb3J0IGF1dG8gLXBsYWNlX2dsb2JhbF9jbG9ja19nYXRlX2F3YXJlIHRydWUgLXBsYWNlX2dsb2JhbF9wbGFjZV9pb19waW5zIHRydWVcbiIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxzZXRfcGxhY2VfbW9kZSAkY29tbWFuZF0KLSAgICAgICAgIH0KLSAgICAgICAgICIwMDExIiB7Ci0gICAgICAgICAgICBpZiB7JHZhcnMoZW5hYmxlX25yZ3IpfSB7Ci0gICAgICAgICAgICAgICBzZXQgY29tbWFuZCAic2V0RGVzaWduTW9kZSAtdXNlVHVyYm9OUkdSRmxvdyB0cnVlXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksc2V0X2Rlc2lnbl9tb2RlICRjb21tYW5kXQotICAgICAgICAgICAgfQotICAgICAgICAgICAgc2V0IGNvbW1hbmQgInNldFBsYWNlTW9kZSAtcGxhY2VfZ2xvYmFsX2NvbmdfZWZmb3J0IGF1dG8gLXBsYWNlX2dsb2JhbF9jbG9ja19nYXRlX2F3YXJlIHRydWUgLXBsYWNlX2dsb2JhbF9wbGFjZV9pb19waW5zIHRydWVcbiIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxzZXRfcGxhY2VfbW9kZSAkY29tbWFuZF0KLSAgICAgICAgIH0KLSAgICAgICAgICIwMTAwIiB7Ci0gICAgICAgICAgICBpZiB7JHZhcnMoZW5hYmxlX25yZ3IpfSB7Ci0gICAgICAgICAgICAgICBzZXQgY29tbWFuZCAic2V0RGVzaWduTW9kZSAtdXNlVHVyYm9OUkdSRmxvdyB0cnVlXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksc2V0X2Rlc2lnbl9tb2RlICRjb21tYW5kXQotICAgICAgICAgICAgfQotICAgICAgICAgICAgc2V0IGNvbW1hbmQgInNldFBsYWNlTW9kZSAtcGxhY2VfZ2xvYmFsX2NvbmdfZWZmb3J0IGF1dG8gLXBsYWNlX2dsb2JhbF9jbG9ja19nYXRlX2F3YXJlIHRydWUgLXBsYWNlX2dsb2JhbF9wbGFjZV9pb19waW5zIHRydWUgLWZwIHRydWVcbiIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxzZXRfcGxhY2VfbW9kZSAkY29tbWFuZF0KLSAgICAgICAgIH0KLSAgICAgICAgICIwMTAxIiB7Ci0gICAgICAgICAgICBpZiB7JHZhcnMoZW5hYmxlX25yZ3IpfSB7Ci0gICAgICAgICAgICAgICBzZXQgY29tbWFuZCAic2V0RGVzaWduTW9kZSAtdXNlVHVyYm9OUkdSRmxvdyB0cnVlXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksc2V0X2Rlc2lnbl9tb2RlICRjb21tYW5kXQotICAgICAgICAgICAgfQotICAgICAgICAgICAgc2V0IGNvbW1hbmQgInNldFBsYWNlTW9kZSAtcGxhY2VfZ2xvYmFsX2NvbmdfZWZmb3J0IGF1dG8gLXBsYWNlX2dsb2JhbF9jbG9ja19nYXRlX2F3YXJlIHRydWUgLXBsYWNlX2dsb2JhbF9wbGFjZV9pb19waW5zIHRydWUgLWZwIHRydWVcbiIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxzZXRfcGxhY2VfbW9kZSAkY29tbWFuZF0KLSAgICAgICAgIH0KLSAgICAgICAgICIwMTEwIiB7Ci0gICAgICAgICAgICBpZiB7JHZhcnMoZW5hYmxlX25yZ3IpfSB7Ci0gICAgICAgICAgICAgICBzZXQgY29tbWFuZCAic2V0RGVzaWduTW9kZSAtdXNlVHVyYm9OUkdSRmxvdyB0cnVlXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksc2V0X2Rlc2lnbl9tb2RlICRjb21tYW5kXQotICAgICAgICAgICAgfQotICAgICAgICAgICAgc2V0IGNvbW1hbmQgInNldFBsYWNlTW9kZSAtcGxhY2VfZ2xvYmFsX2NvbmdfZWZmb3J0IGF1dG8gLXBsYWNlX2dsb2JhbF9jbG9ja19nYXRlX2F3YXJlIHRydWUgLXBsYWNlX2dsb2JhbF9wbGFjZV9pb19waW5zIHRydWUgLWZwIHRydWVcbiIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxzZXRfcGxhY2VfbW9kZSAkY29tbWFuZF0KLSAgICAgICAgIH0KLSAgICAgICAgICIwMTExIiB7Ci0gICAgICAgICAgICBpZiB7JHZhcnMoZW5hYmxlX25yZ3IpfSB7Ci0gICAgICAgICAgICAgICBzZXQgY29tbWFuZCAic2V0RGVzaWduTW9kZSAtdXNlVHVyYm9OUkdSRmxvdyB0cnVlXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksc2V0X2Rlc2lnbl9tb2RlICRjb21tYW5kXQotICAgICAgICAgICAgfQotICAgICAgICAgICAgc2V0IGNvbW1hbmQgInNldFBsYWNlTW9kZSAtcGxhY2VfZ2xvYmFsX2NvbmdfZWZmb3J0IGF1dG8gLXBsYWNlX2dsb2JhbF9jbG9ja19nYXRlX2F3YXJlIHRydWUgLXBsYWNlX2dsb2JhbF9wbGFjZV9pb19waW5zIHRydWUgLWZwIHRydWVcbiIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxzZXRfcGxhY2VfbW9kZSAkY29tbWFuZF0KLSAgICAgICAgIH0KLSAgIAotICAgICAgICAgIjEwMDAiIHsKLSAgICAgICAgICAgIHNldCBjb21tYW5kICJzZXRQbGFjZU1vZGUgLXBsYWNlX2dsb2JhbF9jb25nX2VmZm9ydCBhdXRvIC1wbGFjZV9nbG9iYWxfY2xvY2tfZ2F0ZV9hd2FyZSB0cnVlIC1wbGFjZV9nbG9iYWxfcGxhY2VfaW9fcGlucyB0cnVlIFxuIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHNldF9wbGFjZV9tb2RlICRjb21tYW5kXQotICAgICAgICAgICAgaWYgeyEkdmFycyhmbGV4bW9kZWxfYXNfcHRuKX0gewotICAgICAgICAgICAgICBzZXQgY29tbWFuZCAic2V0X3Byb3RvX21vZGVsX3BoeXNpY2FsX2NvbnN0cmFpbnQgLXR5cGUgc29mdF9ndWlkZVxuIgotICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksc2V0X3Byb3RvX21vZGVsX3BoeXNpY2FsX2NvbnN0cmFpbnQgJGNvbW1hbmRdCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBzZXQgY29tbWFuZCAic2V0X3Byb3RvX21vZGUgLXBsYWNlX2VmZm9ydCBkZWZhdWx0XG4iCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksc2V0X3Byb3RvX21vZGUgJGNvbW1hbmRdCi0gICAgICAgICAgICBzZXQgY29tbWFuZCAic2V0VHJpYWxSb3V0ZU1vZGUgLWZsb29ycGxhbk1vZGUgdHJ1ZVxuIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHNldF90cmlhbF9yb3V0ZV9tb2RlICRjb21tYW5kXQotICAgICAgICAgfQotICAgICAgICAgIjEwMDEiIHsKLSAgICAgICAgICAgIHNldCBjb21tYW5kICJzZXRQbGFjZU1vZGUgLXBsYWNlX2dsb2JhbF9jb25nX2VmZm9ydCBhdXRvIC1wbGFjZV9nbG9iYWxfY2xvY2tfZ2F0ZV9hd2FyZSB0cnVlIC1wbGFjZV9nbG9iYWxfcGxhY2VfaW9fcGlucyB0cnVlIFxuIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHNldF9wbGFjZV9tb2RlICRjb21tYW5kXQotICAgICAgICAgICAgaWYgeyEkdmFycyhmbGV4bW9kZWxfYXNfcHRuKX0gewotICAgICAgICAgICAgICBzZXQgY29tbWFuZCAic2V0X3Byb3RvX21vZGVsX3BoeXNpY2FsX2NvbnN0cmFpbnQgLXR5cGUgc29mdF9ndWlkZVxuIgotICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksc2V0X3Byb3RvX21vZGVsX3BoeXNpY2FsX2NvbnN0cmFpbnQgJGNvbW1hbmRdCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBzZXQgY29tbWFuZCAic2V0X3Byb3RvX21vZGUgLXBsYWNlX2VmZm9ydCBkZWZhdWx0XG4iCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksc2V0X3Byb3RvX21vZGUgJGNvbW1hbmRdCi0gICAgICAgICAgICBzZXQgY29tbWFuZCAic2V0VHJpYWxSb3V0ZU1vZGUgLWZsb29ycGxhbk1vZGUgdHJ1ZVxuIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHNldF90cmlhbF9yb3V0ZV9tb2RlICRjb21tYW5kXQotICAgICAgICAgfQotICAgICAgICAgIjEwMTAiIHsKLSAgICAgICAgICAgIHNldCBjb21tYW5kICJzZXRQbGFjZU1vZGUgLXBsYWNlX2dsb2JhbF9jb25nX2VmZm9ydCBhdXRvIC1wbGFjZV9nbG9iYWxfY2xvY2tfZ2F0ZV9hd2FyZSB0cnVlIC1wbGFjZV9nbG9iYWxfcGxhY2VfaW9fcGlucyB0cnVlIFxuIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHNldF9wbGFjZV9tb2RlICRjb21tYW5kXQotICAgICAgICAgICAgaWYgeyEkdmFycyhmbGV4bW9kZWxfYXNfcHRuKX0gewotICAgICAgICAgICAgICBzZXQgY29tbWFuZCAic2V0X3Byb3RvX21vZGVsX3BoeXNpY2FsX2NvbnN0cmFpbnQgLXR5cGUgc29mdF9ndWlkZVxuIgotICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksc2V0X3Byb3RvX21vZGVsX3BoeXNpY2FsX2NvbnN0cmFpbnQgJGNvbW1hbmRdCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBzZXQgY29tbWFuZCAic2V0X3Byb3RvX21vZGUgLXBsYWNlX2VmZm9ydCBkZWZhdWx0XG4iCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksc2V0X3Byb3RvX21vZGUgJGNvbW1hbmRdCi0gICAgICAgICAgICBzZXQgY29tbWFuZCAic2V0VHJpYWxSb3V0ZU1vZGUgLWZsb29ycGxhbk1vZGUgdHJ1ZVxuIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHNldF90cmlhbF9yb3V0ZV9tb2RlICRjb21tYW5kXQotICAgICAgICAgfQotICAgICAgICAgIjEwMTEiIHsKLSAgICAgICAgICAgIHNldCBjb21tYW5kICJzZXRQbGFjZU1vZGUgLXBsYWNlX2dsb2JhbF9jb25nX2VmZm9ydCBhdXRvIC1wbGFjZV9nbG9iYWxfY2xvY2tfZ2F0ZV9hd2FyZSB0cnVlIC1wbGFjZV9nbG9iYWxfcGxhY2VfaW9fcGlucyB0cnVlIFxuIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHNldF9wbGFjZV9tb2RlICRjb21tYW5kXQotICAgICAgICAgICAgaWYgeyEkdmFycyhmbGV4bW9kZWxfYXNfcHRuKX0gewotICAgICAgICAgICAgICBzZXQgY29tbWFuZCAic2V0X3Byb3RvX21vZGVsX3BoeXNpY2FsX2NvbnN0cmFpbnQgLXR5cGUgc29mdF9ndWlkZVxuIgotICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksc2V0X3Byb3RvX21vZGVsX3BoeXNpY2FsX2NvbnN0cmFpbnQgJGNvbW1hbmRdCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBzZXQgY29tbWFuZCAic2V0X3Byb3RvX21vZGUgLXBsYWNlX2VmZm9ydCBkZWZhdWx0XG4iCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksc2V0X3Byb3RvX21vZGUgJGNvbW1hbmRdCi0gICAgICAgICAgICBzZXQgY29tbWFuZCAic2V0VHJpYWxSb3V0ZU1vZGUgLWZsb29ycGxhbk1vZGUgdHJ1ZVxuIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHNldF90cmlhbF9yb3V0ZV9tb2RlICRjb21tYW5kXQotICAgICAgICAgfQotICAgICAgICAgIjExMDAiIHsKLSAgICAgICAgICAgIHNldCBjb21tYW5kICJzZXRQbGFjZU1vZGUgLXBsYWNlX2dsb2JhbF9jb25nX2VmZm9ydCBhdXRvIC1wbGFjZV9nbG9iYWxfY2xvY2tfZ2F0ZV9hd2FyZSB0cnVlIC1wbGFjZV9nbG9iYWxfcGxhY2VfaW9fcGlucyB0cnVlIC1mcCB0cnVlXG4iCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksc2V0X3BsYWNlX21vZGUgJGNvbW1hbmRdCi0gICAgICAgICAgICBpZiB7ISR2YXJzKGZsZXhtb2RlbF9hc19wdG4pfSB7Ci0gICAgICAgICAgICAgIHNldCBjb21tYW5kICJzZXRfcHJvdG9fbW9kZWxfcGh5c2ljYWxfY29uc3RyYWludCAtdHlwZSBzb2Z0X2d1aWRlXG4iCi0gICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxzZXRfcHJvdG9fbW9kZWxfcGh5c2ljYWxfY29uc3RyYWludCAkY29tbWFuZF0KLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0KLSAgICAgICAgICIxMTAxIiB7Ci0gICAgICAgICAgICBzZXQgY29tbWFuZCAic2V0UGxhY2VNb2RlIC1wbGFjZV9nbG9iYWxfY29uZ19lZmZvcnQgYXV0byAtcGxhY2VfZ2xvYmFsX2Nsb2NrX2dhdGVfYXdhcmUgdHJ1ZSAtcGxhY2VfZ2xvYmFsX3BsYWNlX2lvX3BpbnMgdHJ1ZSAtZnAgdHJ1ZVxuIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHNldF9wbGFjZV9tb2RlICRjb21tYW5kXQotICAgICAgICAgICAgaWYgeyEkdmFycyhmbGV4bW9kZWxfYXNfcHRuKX0gewotICAgICAgICAgICAgICBzZXQgY29tbWFuZCAic2V0X3Byb3RvX21vZGVsX3BoeXNpY2FsX2NvbnN0cmFpbnQgLXR5cGUgc29mdF9ndWlkZVxuIgotICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksc2V0X3Byb3RvX21vZGVsX3BoeXNpY2FsX2NvbnN0cmFpbnQgJGNvbW1hbmRdCi0gICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0gICAgICAgICAiMTExMCIgewotICAgICAgICAgICAgc2V0IGNvbW1hbmQgInNldFBsYWNlTW9kZSAtcGxhY2VfZ2xvYmFsX2NvbmdfZWZmb3J0IGF1dG8gLXBsYWNlX2dsb2JhbF9jbG9ja19nYXRlX2F3YXJlIHRydWUgLXBsYWNlX2dsb2JhbF9wbGFjZV9pb19waW5zIHRydWUgLWZwIHRydWVcbiIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxzZXRfcGxhY2VfbW9kZSAkY29tbWFuZF0KLSAgICAgICAgICAgIGlmIHshJHZhcnMoZmxleG1vZGVsX2FzX3B0bil9IHsKLSAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgInNldF9wcm90b19tb2RlbF9waHlzaWNhbF9jb25zdHJhaW50IC10eXBlIHNvZnRfZ3VpZGVcbiIKLSAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHNldF90cmlhbF9yb3V0ZV9tb2RlICRjb21tYW5kXQotICAgICAgICAgICAgfQotICAgICAgICAgfQotICAgICAgICAgIjExMTEiIHsKLSAgICAgICAgICAgIHNldCBjb21tYW5kICJzZXRQbGFjZU1vZGUgLXBsYWNlX2dsb2JhbF9jb25nX2VmZm9ydCBhdXRvIC1wbGFjZV9nbG9iYWxfY2xvY2tfZ2F0ZV9hd2FyZSB0cnVlIC1wbGFjZV9nbG9iYWxfcGxhY2VfaW9fcGlucyB0cnVlIC1mcCB0cnVlXG4iCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksc2V0X3BsYWNlX21vZGUgJGNvbW1hbmRdCi0gICAgICAgICAgICBpZiB7ISR2YXJzKGZsZXhtb2RlbF9hc19wdG4pfSB7Ci0gICAgICAgICAgICAgIHNldCBjb21tYW5kICJzZXRfcHJvdG9fbW9kZWxfcGh5c2ljYWxfY29uc3RyYWludCAtdHlwZSBzb2Z0X2d1aWRlXG4iCi0gICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxzZXRfcHJvdG9fbW9kZWxfcGh5c2ljYWxfY29uc3RyYWludCAkY29tbWFuZF0KLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0KLSAgICAgIH0KLQotICAgICAgaWYgeyR2YXJzKHVzZV9wcm90b19uZXRfZGVsYXlfbW9kZWwpfSB7ICAKLSAgICAgICAgIHNldCBjb21tYW5kICJzZXRfcHJvdG9fbW9kZSAtdGltaW5nX25ldF9kZWxheV9tb2RlbCB1c2VfYWN0dWFsX3dpcmVcbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxzZXRfcHJvdG9fbW9kZWwgJGNvbW1hbmRdIAotICAgICAgfQotCi0gICAgICAjIFBsYWNlIGRlc2lnbiAKLSAgCi0gICAgICBzZXQgc2F2ZSAkdmFycyhwbGFjZV9vcHRfZGVzaWduKQotICAgICAgaWYgeyR2YXJzKGNvZGVnZW4pfSB7IAotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRl9FREk6OnJ1bl9wbGFjZSAkZm9ybWF0XQotICAgICAgfSBlbHNlIHsKLSAgICAgICAgIHVwbGV2ZWwgIzAgZXZhbCAkY29tbWFuZHMgCi0gICAgICAgICBGRl9FREk6OnJ1bl9wbGFjZSAkZm9ybWF0Ci0gICAgICAgICBzZXQgY29tbWFuZHMgIiIKLSAgICAgIH0KLSAgICAgIHNldCB2YXJzKHBsYWNlX29wdF9kZXNpZ24pICRzYXZlCi0KLSAgICAgIGlmIHtbaW5mbyBleGlzdHMgY2FjaGVfc2tpcF9wbGFjZV9tb2RlXX0geyAKLSAgICAgICAgIHNldCB2YXJzKHBsYWNlLHNldF9wbGFjZV9tb2RlLHNraXApICRjYWNoZV9za2lwX3BsYWNlX21vZGUKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgICBzZXQgdmFycyhwbGFjZSxzZXRfcGxhY2VfbW9kZSxza2lwKSBmYWxzZQotICAgICAgfQotICAgICAgaWYge1tpbmZvIGV4aXN0cyBjYWNoZV9za2lwX3BsYWNlX21vZGVdfSB7IAotICAgICAgICAgc2V0IHZhcnMocGxhY2UscGxhY2VfZGVzaWduLHNraXApICRjYWNoZV9za2lwX3BsYWNlX2Rlc2lnbgotICAgICAgfSBlbHNlIHsKLSAgICAgICAgIHNldCB2YXJzKHBsYWNlLHBsYWNlX2Rlc2lnbixza2lwKSBmYWxzZQotICAgICAgfQotICAgCi0gICAgICBpZiB7W3N0cmluZyBjb21wYXJlIC1ub2Nhc2UgJHZhcnMoZGJzX2Zvcm1hdCkgIm9hIl09PTB9IHsKLSAgICAgICAgIGlmIHtbbGluZGV4IFtzcGxpdCAkdmFycyh2ZXJzaW9uKSAiLiJdICAwXSA+IDEwfSB7Ci0gICAgICAgICAgICBzZXQgY29tbWFuZCAic2F2ZURlc2lnbiAtY2VsbHZpZXcgeyR2YXJzKG9hX2Rlc2lnbl9saWIpICR2YXJzKGRlc2lnbikgcGxhY2V9XG4iCi0gICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgc2V0IGNvbW1hbmQgInNhdmVPYURlc2lnbiAkdmFycyhvYV9kZXNpZ25fbGliKSAkdmFycyhkZXNpZ24pIHBsYWNlXG4iCi0gICAgICAgICB9Ci0gICAgICB9IGVsc2UgewotICAgICAgICAgc2V0IGNvbW1hbmQgInNhdmVEZXNpZ24gJHZhcnMoZGJzX2RpcikvcGxhY2UuZW5jIC1jb21wcmVzc1xuIgotICAgICAgfQotICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHNhdmVfZGVzaWduICRjb21tYW5kXQotICAgCi0gICAgICAjIFBvc3QtcGxhY2VtZW50Ci0gICAgICBzd2l0Y2ggJHZhcnMoaGllcl9jYXNlKSB7Ci0gICAgICAgICIwMDAwIiB7Ci0gICAgICAgICAgaWYge1tsaW5kZXggW3NwbGl0ICR2YXJzKHZlcnNpb24pICIuIl0gIDBdIDwgMTZ9IHsKLSAgICAgICAgICAgIHNldCBjb21tYW5kICJzZXRUcmlhbFJvdXRlTW9kZSAtaGFuZGxlUGFydGl0aW9uQ29tcGxleCB0cnVlXG4iCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksc2V0X3RyaWFsX3JvdXRlX21vZGUgJGNvbW1hbmRdCi0gICAgICAgICAgICBzZXQgY29tbWFuZCAidHJpYWxSb3V0ZVxuIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHRyaWFsX3JvdXRlICRjb21tYW5kXQotICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBzZXQgY29tbWFuZCAic2V0Um91dGVNb2RlIC1lYXJseUdsb2JhbFJvdXRlUGFydGl0aW9uSG9ub3JGZW5jZSAuXG4iCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksc2V0X3JvdXRlX21vZGUgJGNvbW1hbmRdCi0gICAgICAgICAgICBzZXQgY29tbWFuZCAiZWFybHlHbG9iYWxSb3V0ZVxuIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLGVhcmx5X2dsb2JhbF9yb3V0ZSAkY29tbWFuZF0KLSAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICAgICAgIjAwMDEiIHsKLSAgICAgICAgICBpZiB7W2xpbmRleCBbc3BsaXQgJHZhcnModmVyc2lvbikgIi4iXSAgMF0gPCAxNn0gewotICAgICAgICAgICAgc2V0IGNvbW1hbmQgInRyaWFsUm91dGVcbiIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSx0cmlhbF9yb3V0ZV8xICRjb21tYW5kXQotICAgICAgICAgICAgc2V0IGNvbW1hbmQgImluc2VydFB0bkZlZWR0aHJvdWdoIC1yb3V0ZUJhc2VkIC1zYXZlVG9wb0ZpbGUgdG9wby50eHQgLW5ldE1hcHBpbmcgbmV0bWFwcGluZy50eHQgLWRvdWJsZUJ1ZmZlclxuIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLGluc2VydF9wdG5fZmVlZHRocm91Z2ggJGNvbW1hbmRdCi0gICAgICAgICAgICBzZXQgY29tbWFuZCAic2V0VHJpYWxSb3V0ZU1vZGUgLWhhbmRsZVBhcnRpdGlvbkNvbXBsZXggdHJ1ZVxuIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHNldF90cmlhbF9yb3V0ZV9tb2RlICRjb21tYW5kXQotICAgICAgICAgICAgc2V0IGNvbW1hbmQgInRyaWFsUm91dGVcbiIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSx0cmlhbF9yb3V0ZV8yICRjb21tYW5kXQotICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBzZXQgY29tbWFuZCAiZWFybHlHbG9iYWxSb3V0ZVxuIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLGVhcmx5X2dsb2JhbF9yb3V0ZV8xICRjb21tYW5kXQotICAgICAgICAgICAgc2V0IGNvbW1hbmQgImluc2VydFB0bkZlZWR0aHJvdWdoIC1yb3V0ZUJhc2VkIC1zYXZlVG9wb0ZpbGUgdG9wby50eHQgLW5ldE1hcHBpbmcgbmV0bWFwcGluZy50eHQgLWRvdWJsZUJ1ZmZlclxuIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLGluc2VydF9wdG5fZmVlZHRocm91Z2ggJGNvbW1hbmRdCi0gICAgICAgICAgICBzZXQgY29tbWFuZCAic2V0Um91dGVNb2RlIC1lYXJseUdsb2JhbFJvdXRlUGFydGl0aW9uSG9ub3JGZW5jZSAuXG4iCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksc2V0X3JvdXRlX21vZGUgJGNvbW1hbmRdCi0gICAgICAgICAgICBzZXQgY29tbWFuZCAiZWFybHlHbG9iYWxSb3V0ZVxuIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLGVhcmx5X2dsb2JhbF9yb3V0ZV8yICRjb21tYW5kXQotICAgICAgICAgIH0KLQotICAgICAgICB9Ci0gICAgICAgICIwMDEwIiB7Ci0jICAgICAgICAgICAgc2V0IGNvbW1hbmQgInNldFRyaWFsUm91dGVNb2RlIC1oYW5kbGVQYXJ0aXRpb25Db21wbGV4IHRydWVcbiIKLSMgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksc2V0X3RyaWFsX3JvdXRlX21vZGUgJGNvbW1hbmRdCi0jICAgICAgICAgICAgc2V0IGNvbW1hbmQgInRyaWFsUm91dGVcbiIKLSMgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksdHJpYWxfcm91dGUgJGNvbW1hbmRdCi0gICAgICAgIH0KLSAgICAgICAgIjAwMTEiIHsKLSAgICAgICAgICBpZiB7W2xpbmRleCBbc3BsaXQgJHZhcnModmVyc2lvbikgIi4iXSAgMF0gPCAxNn0gewotICAgICAgICAgICAgc2V0IGNvbW1hbmQgInRyaWFsUm91dGVcbiIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSx0cmlhbF9yb3V0ZV8xICRjb21tYW5kXQotICAgICAgICAgICAgc2V0IGNvbW1hbmQgImluc2VydFB0bkZlZWR0aHJvdWdoIC1yb3V0ZUJhc2VkIC1zYXZlVG9wb0ZpbGUgdG9wby50eHQgLW5ldE1hcHBpbmcgbmV0bWFwcGluZy50eHQgLWRvdWJsZUJ1ZmZlclxuIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLGluc2VydF9wdG5fZmVlZHRocm91Z2ggJGNvbW1hbmRdCi0gICAgICAgICAgICBzZXQgY29tbWFuZCAic2V0VHJpYWxSb3V0ZU1vZGUgLWhhbmRsZVBhcnRpdGlvbkNvbXBsZXggdHJ1ZVxuIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHNldF90cmlhbF9yb3V0ZV9tb2RlICRjb21tYW5kXQotICAgICAgICAgICAgc2V0IGNvbW1hbmQgInRyaWFsUm91dGVcbiIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSx0cmlhbF9yb3V0ZV8yICRjb21tYW5kXQotICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBzZXQgY29tbWFuZCAiZWFybHlHbG9iYWxSb3V0ZVxuIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLGVhcmx5X2dsb2JhbF9yb3V0ZV8xICRjb21tYW5kXQotICAgICAgICAgICAgc2V0IGNvbW1hbmQgImluc2VydFB0bkZlZWR0aHJvdWdoIC1yb3V0ZUJhc2VkIC1zYXZlVG9wb0ZpbGUgdG9wby50eHQgLW5ldE1hcHBpbmcgbmV0bWFwcGluZy50eHQgLWRvdWJsZUJ1ZmZlclxuIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLGluc2VydF9wdG5fZmVlZHRocm91Z2ggJGNvbW1hbmRdCi0gICAgICAgICAgICBzZXQgY29tbWFuZCAic2V0Um91dGVNb2RlIC1lYXJseUdsb2JhbFJvdXRlUGFydGl0aW9uSG9ub3JGZW5jZSAuXG4iCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksc2V0X3JvdXRlX21vZGUgJGNvbW1hbmRdCi0gICAgICAgICAgICBzZXQgY29tbWFuZCAiZWFybHlHbG9iYWxSb3V0ZVxuIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLGVhcmx5X2dsb2JhbF9yb3V0ZV8yICRjb21tYW5kXQotICAgICAgICAgIH0KLSAgICAgICAgfQotICAgICAgICAiMDEwMCIgewotIyAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJ0aW1lRGVzaWduIC1wcmVjdHMgLXByZWZpeCBwbGFjZSAtb3V0RGlyICR2YXJzKHJwdF9kaXIpXG4iCi0jICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHRpbWVfZGVzaWduICRjb21tYW5kXQotICAgICAgICB9Ci0gICAgICAgICIwMTAxIiB7Ci0gICAgICAgICAgICBzZXQgY29tbWFuZCAiaW5zZXJ0UHRuRmVlZHRocm91Z2ggLXNhdmVUb3BvRmlsZSB0b3BvLnR4dCAtbmV0TWFwcGluZyBuZXRtYXBwaW5nLnR4dCAtZG91YmxlQnVmZmVyXG4iCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksaW5zZXJ0X3B0bl9mZWVkdGhyb3VnaCAkY29tbWFuZF0KLSAgICAgICAgfQotICAgICAgICAiMDExMCIgewotIyAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJ0aW1lRGVzaWduIC1wcmVjdHMgLXByZWZpeCBwbGFjZSAtb3V0RGlyICR2YXJzKHJwdF9kaXIpXG4iCi0jICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHRpbWVfZGVzaWduICRjb21tYW5kXQotICAgICAgICB9Ci0gICAgICAgICIwMTExIiB7Ci0gICAgICAgICAgICBzZXQgY29tbWFuZCAiaW5zZXJ0UHRuRmVlZHRocm91Z2ggLXNhdmVUb3BvRmlsZSB0b3BvLnR4dCAtbmV0TWFwcGluZyBuZXRtYXBwaW5nLnR4dCAtZG91YmxlQnVmZmVyXG4iCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksaW5zZXJ0X3B0bl9mZWVkdGhyb3VnaCAkY29tbWFuZF0KLSAgICAgICAgfQotICAgICAgICAiMTAwMCIgewotICAgICAgICAgIGlmIHtbbGluZGV4IFtzcGxpdCAkdmFycyh2ZXJzaW9uKSAiLiJdICAwXSA8IDE2fSB7Ci0gICAgICAgICAgICBzZXQgY29tbWFuZCAic2V0VHJpYWxSb3V0ZU1vZGUgLWhhbmRsZVBhcnRpdGlvbkNvbXBsZXggdHJ1ZVxuIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHNldF90cmlhbF9yb3V0ZV9tb2RlICRjb21tYW5kXQotICAgICAgICAgICAgc2V0IGNvbW1hbmQgInRyaWFsUm91dGVcbiIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSx0cmlhbF9yb3V0ZSAkY29tbWFuZF0KLSAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgc2V0IGNvbW1hbmQgInNldFJvdXRlTW9kZSAtZWFybHlHbG9iYWxSb3V0ZVBhcnRpdGlvbkhvbm9yRmVuY2UgLlxuIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHNldF9yb3V0ZV9tb2RlICRjb21tYW5kXQotICAgICAgICAgICAgc2V0IGNvbW1hbmQgImVhcmx5R2xvYmFsUm91dGVcbiIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxlYXJseV9nbG9iYWxfcm91dGUgJGNvbW1hbmRdCi0gICAgICAgICAgfQotICAgICAgICB9Ci0gICAgICAgICIxMDAxIiB7Ci0gICAgICAgICAgaWYge1tsaW5kZXggW3NwbGl0ICR2YXJzKHZlcnNpb24pICIuIl0gIDBdIDwgMTZ9IHsKLSAgICAgICAgICAgIHNldCBjb21tYW5kICJ0cmlhbFJvdXRlXG4iCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksdHJpYWxfcm91dGVfMSAkY29tbWFuZF0KLSAgICAgICAgICAgIHNldCBjb21tYW5kICJpbnNlcnRQdG5GZWVkdGhyb3VnaCAtcm91dGVCYXNlZCAtc2F2ZVRvcG9GaWxlIHRvcG8udHh0IC1uZXRNYXBwaW5nIG5ldG1hcHBpbmcudHh0IC1kb3VibGVCdWZmZXJcbiIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxpbnNlcnRfcHRuX2ZlZWR0aHJvdWdoICRjb21tYW5kXQotICAgICAgICAgICAgc2V0IGNvbW1hbmQgInNldFRyaWFsUm91dGVNb2RlIC1oYW5kbGVQYXJ0aXRpb25Db21wbGV4IHRydWVcbiIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxzZXRfdHJpYWxfcm91dGVfbW9kZSAkY29tbWFuZF0KLSAgICAgICAgICAgIHNldCBjb21tYW5kICJ0cmlhbFJvdXRlXG4iCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksdHJpYWxfcm91dGVfMiAkY29tbWFuZF0KLSAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgc2V0IGNvbW1hbmQgImVhcmx5R2xvYmFsUm91dGVcbiIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxlYXJseV9nbG9iYWxfcm91dGVfMSAkY29tbWFuZF0KLSAgICAgICAgICAgIHNldCBjb21tYW5kICJpbnNlcnRQdG5GZWVkdGhyb3VnaCAtcm91dGVCYXNlZCAtc2F2ZVRvcG9GaWxlIHRvcG8udHh0IC1uZXRNYXBwaW5nIG5ldG1hcHBpbmcudHh0IC1kb3VibGVCdWZmZXJcbiIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxpbnNlcnRfcHRuX2ZlZWR0aHJvdWdoICRjb21tYW5kXQotICAgICAgICAgICAgc2V0IGNvbW1hbmQgInNldFJvdXRlTW9kZSAtZWFybHlHbG9iYWxSb3V0ZVBhcnRpdGlvbkhvbm9yRmVuY2UgLlxuIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHNldF9yb3V0ZV9tb2RlICRjb21tYW5kXQotICAgICAgICAgICAgc2V0IGNvbW1hbmQgImVhcmx5R2xvYmFsUm91dGVcbiIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxlYXJseV9nbG9iYWxfcm91dGVfMiAkY29tbWFuZF0KLSAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICAgICAgIjEwMTAiIHsKLSAgICAgICAgICBpZiB7W2xpbmRleCBbc3BsaXQgJHZhcnModmVyc2lvbikgIi4iXSAgMF0gPCAxNn0gewotICAgICAgICAgICAgc2V0IGNvbW1hbmQgInNldFRyaWFsUm91dGVNb2RlIC1oYW5kbGVQYXJ0aXRpb25Db21wbGV4IHRydWVcbiIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxzZXRfdHJpYWxfcm91dGVfbW9kZSAkY29tbWFuZF0KLSAgICAgICAgICAgIHNldCBjb21tYW5kICJ0cmlhbFJvdXRlXG4iCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksdHJpYWxfcm91dGUgJGNvbW1hbmRdCi0gICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHNldCBjb21tYW5kICJzZXRSb3V0ZU1vZGUgLWVhcmx5R2xvYmFsUm91dGVQYXJ0aXRpb25Ib25vckZlbmNlIC5cbiIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxzZXRfcm91dGVfbW9kZSAkY29tbWFuZF0KLSAgICAgICAgICAgIHNldCBjb21tYW5kICJlYXJseUdsb2JhbFJvdXRlXG4iCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksZWFybHlfZ2xvYmFsX3JvdXRlICRjb21tYW5kXQotICAgICAgICAgIH0KLSAgICAgICAgfQotICAgICAgICAiMTAxMSIgewotICAgICAgICAgIGlmIHtbbGluZGV4IFtzcGxpdCAkdmFycyh2ZXJzaW9uKSAiLiJdICAwXSA8IDE2fSB7Ci0gICAgICAgICAgICBzZXQgY29tbWFuZCAidHJpYWxSb3V0ZVxuIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHRyaWFsX3JvdXRlXzEgJGNvbW1hbmRdCi0gICAgICAgICAgICBzZXQgY29tbWFuZCAiaW5zZXJ0UHRuRmVlZHRocm91Z2ggLXJvdXRlQmFzZWQgLXNhdmVUb3BvRmlsZSB0b3BvLnR4dCAtbmV0TWFwcGluZyBuZXRtYXBwaW5nLnR4dCAtZG91YmxlQnVmZmVyXG4iCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksaW5zZXJ0X3B0bl9mZWVkdGhyb3VnaCAkY29tbWFuZF0KLSAgICAgICAgICAgIHNldCBjb21tYW5kICJzZXRUcmlhbFJvdXRlTW9kZSAtaGFuZGxlUGFydGl0aW9uQ29tcGxleCB0cnVlXG4iCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksc2V0X3RyaWFsX3JvdXRlX21vZGUgJGNvbW1hbmRdCi0gICAgICAgICAgICBzZXQgY29tbWFuZCAidHJpYWxSb3V0ZVxuIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHRyaWFsX3JvdXRlXzIgJGNvbW1hbmRdCi0gICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHNldCBjb21tYW5kICJlYXJseUdsb2JhbFJvdXRlXG4iCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksZWFybHlfZ2xvYmFsX3JvdXRlXzEgJGNvbW1hbmRdCi0gICAgICAgICAgICBzZXQgY29tbWFuZCAiaW5zZXJ0UHRuRmVlZHRocm91Z2ggLXJvdXRlQmFzZWQgLXNhdmVUb3BvRmlsZSB0b3BvLnR4dCAtbmV0TWFwcGluZyBuZXRtYXBwaW5nLnR4dCAtZG91YmxlQnVmZmVyXG4iCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksaW5zZXJ0X3B0bl9mZWVkdGhyb3VnaCAkY29tbWFuZF0KLSAgICAgICAgICAgIHNldCBjb21tYW5kICJzZXRSb3V0ZU1vZGUgLWVhcmx5R2xvYmFsUm91dGVQYXJ0aXRpb25Ib25vckZlbmNlIC5cbiIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxzZXRfcm91dGVfbW9kZSAkY29tbWFuZF0KLSAgICAgICAgICAgIHNldCBjb21tYW5kICJlYXJseUdsb2JhbFJvdXRlXG4iCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksZWFybHlfZ2xvYmFsX3JvdXRlXzIgJGNvbW1hbmRdCi0gICAgICAgICAgfQotICAgICAgICB9Ci0gICAgICAgICIxMTAwIiB7Ci0gICAgICAgIH0KLSAgICAgICAgIjExMDEiIHsKLSAgICAgICAgICAgIHNldCBjb21tYW5kICJpbnNlcnRQdG5GZWVkdGhyb3VnaCAtc2F2ZVRvcG9GaWxlIHRvcG8udHh0IC1uZXRNYXBwaW5nIG5ldG1hcHBpbmcudHh0IC1kb3VibGVCdWZmZXJcbiIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxpbnNlcnRfcHRuX2ZlZWR0aHJvdWdoICRjb21tYW5kXQotICAgICAgICB9Ci0gICAgICAgICIxMTEwIiB7Ci0gICAgICAgICAgICBzZXQgZG9fdHJpYWxfcm91dGVfdGltZV9kZXNpZ24gMCAgICAgICAgICAgIAotICAgICAgICB9Ci0gICAgICAgICIxMTExIiB7Ci0gICAgICAgICAgICBzZXQgY29tbWFuZCAiaW5zZXJ0UHRuRmVlZHRocm91Z2ggLXNhdmVUb3BvRmlsZSB0b3BvLnR4dCAtbmV0TWFwcGluZyBuZXRtYXBwaW5nLnR4dCAtZG91YmxlQnVmZmVyXG4iCi0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksaW5zZXJ0X3B0bl9mZWVkdGhyb3VnaCAkY29tbWFuZF0KLSAgICAgICAgfQotICAgICAgfQotICAgICAgaWYgeyR2YXJzKHVzZV9wcm90b19uZXRfZGVsYXlfbW9kZWwpfSB7IAotICAgICAgICBzZXQgY29tbWFuZCAidGltZURlc2lnbiAtcHJvdG8gLXByZWN0cyAtcHJlZml4IHBsYWNlIC1vdXREaXIgJHZhcnMocnB0X2RpcilcbiIKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgIHNldCBjb21tYW5kICJ0aW1lRGVzaWduIC1wcmVjdHMgLXByZWZpeCBwbGFjZSAtb3V0RGlyICR2YXJzKHJwdF9kaXIpXG4iCi0gICAgICB9Ci0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksdGltZV9kZXNpZ24gJGNvbW1hbmRdCi0KLQkgICMgT3V0cHV0IG9yIHJ1biB0aGUgZ2VuZXJhdGVkIGNvbW1hbmRzCi0JICBpZiB7JHZhcnMoY29kZWdlbil9IHsKLQkJIHJldHVybiAkY29tbWFuZHMKLQkgIH0gZWxzZSB7Ci0JCSAgdXBsZXZlbCAjMCBldmFsICRjb21tYW5kcwotCSAgfQotCi0gICB9Ci0KLSAgIHByb2MgcnVuX2Fzc2lnbl9waW4ge3tmb3JtYXQgMX19IHsKLSAgICAgIGdsb2JhbCB2YXJzCi0gICAgICBnbG9iYWwgZXJyb3JzCi0gICAgICBnbG9iYWwgZW52Ci0KLSAgICAgIHNldCB2YXJzKHN0ZXApIGFzc2lnbl9waW4KLSAgICAgIHNldCB2YXJzKGhpZXIpIHRydWUKLSAgICAgIHNldCBjb21tYW5kcyAiIgotCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAjIEFzc2lnbiBwYXJ0aXRpb24gcGlucyB2aWEgcGx1Zy1pbiBhcyB0aGlzIHRoZQotICAgICAgIyBwaXRjaCwgZGVwdGgsIGFuZCBsYXllciB2YWx1ZXMgYXJlIGRlc2lnbiBzcGVjaWZpYwotICAgICAgIyBBbHNvLCB2ZXJpZnkgdGhlIHBpbiBhc3NpZ25tZW50IGFuZCBmaXggdGhlbQotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCi0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjpzb3VyY2VfcGx1ZyBwcmVfYXNzaWduX3Bpbl90Y2xdCi0KLSAgICAgIHNldCBjb21tYW5kICJhc3NpZ25QdG5QaW5cbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxhc3NpZ25fcHRuX3BpbnMgJGNvbW1hbmRdCi0KLSAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OnNvdXJjZV9wbHVnIHBvc3RfYXNzaWduX3Bpbl90Y2xdCi0KLSAgICAgIHNldCBjb21tYW5kICJjaGVja1BpbkFzc2lnbm1lbnQgLW91dEZpbGUgcGluY2hlY2sucnB0XG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksY2hlY2tfcGluX2Fzc2lnbm1lbnQgJGNvbW1hbmRdCi0KLSAgICAgIHNldCBjb21tYW5kICJyZXBvcnRVbmFsaWduZWROZXRzIC1ycHRGaWxlICR2YXJzKHJwdF9kaXIpL3VuYWxpZ25lZC5ycHRcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxyZXBvcnRfdW5hbGlnbmVkX25ldHMgJGNvbW1hbmRdCi0KLSAgICAgIGlmIHshKFtpbmZvIGV4aXN0cyB2YXJzKHBsYWNlbWVudF9iYXNlZF9wdG4pXSAmJiAkdmFycyhwbGFjZW1lbnRfYmFzZWRfcHRuKSl9IHsKLSAgICAgICAgaWYge1tsaW5kZXggW3NwbGl0ICR2YXJzKHZlcnNpb24pICIuIl0gIDBdIDwgMTZ9IHsKLSAgICAgICAgICBzZXQgY29tbWFuZCAic2V0VHJpYWxSb3V0ZU1vZGUgLWhvbm9yUGluIHRydWUgLWhhbmRsZVBhcnRpdGlvbkNvbXBsZXggdHJ1ZVxuIgotICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJ0cmlhbFJvdXRlXG4iCi0gICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHRyaWFsX3JvdXRlICRjb21tYW5kXQotICAgICAgICB9IGVsc2UgewotICAgICAgICAgIHNldCBjb21tYW5kICJzZXRSb3V0ZU1vZGUgLWVhcmx5R2xvYmFsUm91dGVQYXJ0aXRpb25Ib25vckZlbmNlIC4gLWVhcmx5R2xvYmFsUm91dGVQYXJ0aXRpb25Ib25vclBpbiAuXG4iCi0gICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHNldF9yb3V0ZV9tb2RlICRjb21tYW5kXQotICAgICAgICAgIHNldCBjb21tYW5kICJlYXJseUdsb2JhbFJvdXRlXG4iCi0gICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLGVhcmx5X2dsb2JhbF9yb3V0ZSAkY29tbWFuZF0KLSAgICAgICAgfQotICAgICAgfQotCi0gICAgICBpZiB7JHZhcnMoY29kZWdlbil9IHsKLSAgICAgICAgIHJldHVybiAkY29tbWFuZHMKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgdXBsZXZlbCAjMCBldmFsICRjb21tYW5kcwotICAgICAgfQotICAgfQotCi0gICBwcm9jIHJ1bl9tb2RlbF9nZW4ge3tmb3JtYXQgMX19IHsKLQotICAgICAgZ2xvYmFsIHZhcnMKLSAgICAgIGdsb2JhbCBlcnJvcnMKLSAgICAgIGdsb2JhbCBlbnYKLQotICAgICAgc2V0IHZhcnMoc3RlcCkgbW9kZWxfZ2VuCi0gICAgICBzZXQgdmFycyhoaWVyKSB0cnVlCi0gICAgICBzZXQgY29tbWFuZHMgIiIKLQotICAgICAgIyBJbml0aWFsaXNlIHRoZSBkZXNpZ24KLSAgICAgIGlmIHskdmFycyh1c2VfZmxleG1vZGVscyl9IHsKLSAgICAgICAgIyBJbml0aWFsaXNlIHRoZSBkZXNpZ24gaWYgbm90IHVzaW5nIGZsZXhtb2RlbCBwcm90b3R5cGUKLSAgICAgICAgaWYgeyR2YXJzKGNvZGVnZW4pfSB7IAotICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGX0VESTo6cnVuX2luaXQgJGZvcm1hdF0KLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgRkZfRURJOjpydW5faW5pdCAkZm9ybWF0Ci0gICAgICAgIH0KLQotICAgICAgICBpZiB7W3N0cmluZyBjb21wYXJlIC1ub2Nhc2UgJHZhcnMoZGJzX2Zvcm1hdCkgIm9hIl09PTB9IHsKLSAgICAgICAgICAgaWYge1tsaW5kZXggW3NwbGl0ICR2YXJzKHZlcnNpb24pICIuIl0gIDBdID4gMTB9IHsKLSAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgInNhdmVEZXNpZ24gLWNlbGx2aWV3IHskdmFycyhvYV9kZXNpZ25fbGliKSAkdmFycyhkZXNpZ24pIGluaXR9XG4iCi0gICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgIHNldCBjb21tYW5kICJzYXZlT2FEZXNpZ24gJHZhcnMob2FfZGVzaWduX2xpYikgJHZhcnMoZGVzaWduKSBpbml0XG4iCi0gICAgICAgICAgIH0KLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgc2V0IGNvbW1hbmQgInNhdmVEZXNpZ24gJHZhcnMoZGJzX2RpcikvaW5pdC5lbmMgLWNvbXByZXNzXG4iCi0gICAgICAgIH0KLSAgICAgIAotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHNhdmVfZGVzaWduLGluaXQgJGNvbW1hbmRdCi0gICAgICB9Ci0KLSAgICAgIGlmIHskdmFycyh1c2VfcHJvdG9fbmV0X2RlbGF5X21vZGVsKSAmJiAkdmFycyh1c2VfZmxleG1vZGVscyl9IHsKLSAgICAgICAgIHNldCBjb21tYW5kICJjYXRjaCB7ZXhlYyBybSAtcmYgcHJvdG9fbW9kZWxfQkFDS1VQfVxuY2F0Y2gge2V4ZWMgbXYgLWYgcHJvdG9fbW9kZWwgcHJvdG9fbW9kZWxfQkFDS1VQfVxuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHByb3RvX21vZGVsX0JBQ0tVUCAkY29tbWFuZF0KLSAgICAgICAgIHNldCBjb21tYW5kICJjcmVhdGVfcHNfcGVyX21pY3Jvbl9tb2RlbFxuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLGNyZWF0ZV9wc19wZXJfbWljcm9uX21vZGVsICRjb21tYW5kXQotIyAgICAgICAgIHNldCBjb21tYW5kICJ0aW1lRGVzaWduIC1wcm90byAtcHJlUGxhY2UgLXByZWZpeCBwcmVwbGFjZSAtb3V0RGlyICR2YXJzKHJwdF9kaXIpXG4iCi0jICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHRpbWVfZGVzaWduICRjb21tYW5kXQotICAgICAgfQotCi0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjpzb3VyY2VfcGx1ZyBwcmVfbW9kZWxfZ2VuX3RjbF0KLSAgICAgIAotICAgICAgaWYgeyR2YXJzKGVuYWJsZV9ucmdyKX0gewotICAgICAgICAgc2V0IGNvbW1hbmQgInNldERlc2lnbk1vZGUgLXVzZVR1cmJvTlJHUkZsb3cgdHJ1ZVxuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHNldF9kZXNpZ25fbW9kZSAkY29tbWFuZF0KLSAgICAgIH0KLQotICAgICAgc2V0IHZhcnMoaGllcl9jYXNlKSAiJHZhcnMoZmxleG1vZGVsX2FzX3B0bikkdmFycyhpbnNlcnRfZmVlZHRocm91Z2gpIgotCi0gICAgICBzd2l0Y2ggJHZhcnMoaGllcl9jYXNlKSB7Ci0gICAgICAgICAiMDAiIHsKLSAgICAgICAgICAgIHNldCBjb21tYW5kICJpZGVudGlmeV9wcm90b19tb2RlbFxuIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLGlkZW50aWZ5X3Byb3RvX21vZGVsICRjb21tYW5kXQotICAgICAgICAgfQotICAgICAgICAgIjAxIiB7Ci0gICAgICAgICAgICBzZXQgY29tbWFuZCAiaWRlbnRpZnlfcHJvdG9fbW9kZWxcbiIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxpZGVudGlmeV9wcm90b19tb2RlbCAkY29tbWFuZF0KLSAgICAgICAgIH0KLSAgICAgICAgICIxMCIgewotICAgICAgICAgICAgc2V0IGNvbW1hbmQgICJzZXRfcHJvdG9fbW9kZSAtY3JlYXRlX3BhcnRpdGlvbl9hc19mbGV4bW9kZWwgdHJ1ZVxuIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHNldF9wcm90b19tb2RlICRjb21tYW5kXQotIyAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhwYXJ0aXRpb25fbGlzdCldICYmICgkdmFycyhwYXJ0aXRpb25fbGlzdCkgIT0gIiIpfSB7Ci0jICAgICAgICAgICAgICAgZm9yZWFjaCBwdG4gJHZhcnMocGFydGl0aW9uX2xpc3QpIHsKLSMgICAgICAgICAgICAgICAgICAgc2V0IGNvbW1hbmQgInNldF9wcm90b19tb2RlbCAtbW9kZWwgJHB0biAtdHlwZSBmbGV4X21vZHVsZVxuIgotIyAgICAgICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksc2V0X3Byb3RvX21vZGVsICRjb21tYW5kXQotIyAgICAgICAgICAgICAgICB9Ci0jICAgICAgICAgICAgfSBlbHNlIHsKLSMgICAgICAgICAgICAgICBwdXRzICI8RkY+IEVSUk9SOiBGbGV4bW9kZWwgcGFydGl0aW9uIGZsb3cgZW5hYmxlZCBidXQgbm8gcGFydGl0aW9ucyBhcmUgZGVmaW5lZCIKLSMgICAgICAgICAgICAgICBzZXQgZXJyb3JzKCR2YXJzKGVycm9yX2NvdW50KSkgIkZsZXhtb2RlbCBwYXJ0aXRpb24gZmxvdyBlbmFibGVkIGJ1dCBubyBwYXJ0aXRpb25zIGFyZSBkZWZpbmVkIgotIyAgICAgICAgICAgICAgIGluY3IgdmFycyhlcnJvcl9jb3VudCkKLSMgICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0gICAgICAgICAiMTEiIHsKLSAgICAgICAgICAgIHNldCBjb21tYW5kICAic2V0X3Byb3RvX21vZGUgLWNyZWF0ZV9wYXJ0aXRpb25fYXNfZmxleG1vZGVsIHRydWVcbiIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxzZXRfcHJvdG9fbW9kZSAkY29tbWFuZF0KLSMgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMocGFydGl0aW9uX2xpc3QpXSAmJiAoJHZhcnMocGFydGl0aW9uX2xpc3QpICE9ICIiKX0gewotIyAgICAgICAgICAgICAgIGZvcmVhY2ggcHRuICR2YXJzKHBhcnRpdGlvbl9saXN0KSB7Ci0jICAgICAgICAgICAgICAgICAgIHNldCBjb21tYW5kICJzZXRfcHJvdG9fbW9kZWwgLW1vZGVsICRwdG4gLXR5cGUgZmxleF9tb2R1bGVcbiIKLSMgICAgICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHNldF9wcm90b19tb2RlbCAkY29tbWFuZF0KLSMgICAgICAgICAgICAgICAgfQotIyAgICAgICAgICAgIH0gZWxzZSB7Ci0jICAgICAgICAgICAgICAgcHV0cyAiPEZGPiBFUlJPUjogRmxleG1vZGVsIHBhcnRpdGlvbiBmbG93IGVuYWJsZWQgYnV0IG5vIHBhcnRpdGlvbnMgYXJlIGRlZmluZWQiCi0jICAgICAgICAgICAgICAgc2V0IGVycm9ycygkdmFycyhlcnJvcl9jb3VudCkpICJGbGV4bW9kZWwgcGFydGl0aW9uIGZsb3cgZW5hYmxlZCBidXQgbm8gcGFydGl0aW9ucyBhcmUgZGVmaW5lZCIKLSMgICAgICAgICAgICAgICBpbmNyIHZhcnMoZXJyb3JfY291bnQpCi0jICAgICAgICAgICAgfQotIyAgICAgICAgIH0KLSAgICAgIH0KLQotIyAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhtb2RlbF9nZW4sbWluX2luc3QpXX0gewotIyAgICAgICAgIHNldCBtaW5faW5zdCAkdmFycyhtb2RlbF9nZW4sbWluX2luc3QpCi0jICAgICAgfSBlbHNlIHsKLSMgICAgICAgICBzZXQgbWluX2luc3QgMTAwMAotIyAgICAgIH0KLSMgICAgICBzZXQgY29tbWFuZCAic2V0SWxtTW9kZSAtaGlnaEZhbm91dFBvcnQgZmFsc2VcbiIKLSMgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksc2V0SWxtTW9kZSAkY29tbWFuZF0KLSAgICAgCi0gICAgICBzZXQgY29tbWFuZCAic2V0SWxtTW9kZSAta2VlcEhpZ2hGYW5vdXRQb3J0cyBmYWxzZVxuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHNldF9pbG1fbW9kZSAkY29tbWFuZF0KLSAgICAgIGlmIHskdmFycyhmbGV4bW9kZWxfYXJ0X2Jhc2VkKX0gewotICAgICAgICAgc2V0IGNvbW1hbmQgImNyZWF0ZV9wcm90b19tb2RlbCAtb3V0X2RpciAkdmFycyhkYnNfZGlyKS9tb2RlbF9nZW4uZW5jXG4iCi0gICAgICB9IGVsc2UgewotICAgICAgICAgc2V0IGNvbW1hbmQgImNyZWF0ZV9wcm90b19tb2RlbCAtcGFydGl0aW9uX2Jhc2VkXG5jb21taXRfcHJvdG9fbW9kZWxcbiIKLSAgICAgIH0KLSAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxjcmVhdGVfcHJvdG9fbW9kZWwgJGNvbW1hbmRdCi0gICAgICBpZiB7JHZhcnMoY3JlYXRlX2ZsZXhmaWxsZXJfYmxvY2thZ2UpfSB7Ci0gICAgICAgICBzZXQgY29tbWFuZCAiY3JlYXRlX2ZsZXhmaWxsZXJfcm91dGVfYmxvY2thZ2VcbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxjcmVhdGVfZmxleGZpbGxlcl9yb3V0ZV9ibG9ja2FnZSAkY29tbWFuZF0KLSAgICAgIH0KLQotICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6c291cmNlX3BsdWcgcG9zdF9tb2RlbF9nZW5fdGNsXQotCi0gICAgICBpZiB7JHZhcnMoY29kZWdlbil9IHsKLSAgICAgICAgIHJldHVybiAkY29tbWFuZHMKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgdXBsZXZlbCAjMCBldmFsICRjb21tYW5kcwotICAgICAgfQotICAgfQotCi0gICBwcm9jIHJ1bl9wcm90b3R5cGUge3tmb3JtYXQgMX19IHsKLQotICAgICAgZ2xvYmFsIHZhcnMKLSAgICAgIGdsb2JhbCBlcnJvcnMKLSAgICAgIGdsb2JhbCBlbnYKLQotICAgICAgc2V0IHZhcnMoc3RlcCkgcHJvdG90eXBlCi0gICAgICBzZXQgdmFycyhoaWVyKSB0cnVlCi0gICAgICBzZXQgY29tbWFuZHMgIiIKLQotICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6c291cmNlX3BsdWcgcHJlX3Byb3RvdHlwZV90Y2xdCi0KLSAgICAgIHNldCBjb21tYW5kICJyZXBvcnRfcHJvdG9fbW9kZWwgLWNyZWF0ZWRcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxyZXBvcnRfcHJvdG9fbW9kZWwgJGNvbW1hbmRdCi0gICAgICBzZXQgY29tbWFuZCAidW5ncm91cCAtdHlwZSBmbGV4X21vZGVsXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksdW5ncm91cF9mbGV4aWxtXzEgJGNvbW1hbmRdCi0KLSAgICAgIHNldCBjb21tYW5kICJ0aW1lRGVzaWduIC1wcm90byAtcHJlcGxhY2UgXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksdGltZV9kZXNpZ24gJGNvbW1hbmRdCi0jICAgICAgc2V0IGNvbW1hbmQgImRlZmluZVBhcnRpdGlvbiAtcHJvdG8gW2xpc3QgJHZhcnMocGFydGl0aW9uX2xpc3QpXVxuIgotICAgICAgc2V0IGNvbW1hbmQgIiIKLSAgICAgIGZvcmVhY2ggcHRuICR2YXJzKHBhcnRpdGlvbl9saXN0KSB7Ci0gICAgICAgICBhcHBlbmQgY29tbWFuZCAiZGVmaW5lUGFydGl0aW9uIC1wcm90byBcW2RiR2V0IFxbZGJHZXRDZWxsQnlOYW1lICRwdG5cXS5oaW5zdC5uYW1lXF1cbiIKLSAgICAgIH0KLSAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxkZWZpbmVfcGFydGl0aW9uICRjb21tYW5kXQotCi0gICAgICBzZXQgY29tbWFuZCAic2V0X3Byb3RvX21vZGUgIC1wcm90b19kZXNpZ25fbGV2ZWwgJHZhcnMoZmxleG1vZGVsX3Byb3RvdHlwZV9mbG93X3N0eWxlKVxuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHNldF9wcm90b19tb2RlICRjb21tYW5kXQotICAgICAgc2V0IGNvbW1hbmQgInNldF9wcm90b19kZXNpZ25fbW9kZSAtcmVzZXRcbiIKLSAgICAgIGlmIHskdmFycyhmbGV4bW9kZWxfcHJvdG90eXBlX2Nvbmdlc3Rpb25fYXdhcmUpfSB7Ci0gICAgICAgICBhcHBlbmQgY29tbWFuZCAic2V0X3Byb3RvX2Rlc2lnbl9tb2RlIC1jb25nZXN0aW9uX2F3YXJlIHRydWVcbiIKLSAgICAgIH0KLSAgICAgIGlmIHskdmFycyhmbGV4bW9kZWxfcHJvdG90eXBlX3RpbWluZ19hd2FyZSl9IHsKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kICJzZXRfcHJvdG9fZGVzaWduX21vZGUgLXRpbWluZ19hd2FyZSB0cnVlXG4iCi0gICAgICB9Ci0KLSMgRm9sbG93aW5nIDIgc2V0dGluZ3Mgd2lsbCBiZSByZW1vdmVkIAotICAgICAgYXBwZW5kIGNvbW1hbmQgInNldF9wcm90b19kZXNpZ25fbW9kZSAtbmV3X2FsZ29yaXRobSB0cnVlXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZCAic2V0X3Byb3RvX2Rlc2lnbl9tb2RlIC1yZXBvcnRfdGltaW5nIGZhbHNlXG4iCi0KLSAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxzZXRfcHJvdG9fZGVzaWduX21vZGUgJGNvbW1hbmRdCi0KLSAgICAgIGlmIHskdmFycyhmbGV4bW9kZWxfcHJvdG90eXBlX2Zsb3dfc3R5bGUpID09ICJ0b3BfdG9fYm90dG9tIn0gewotIyAgICAgICAgIGlmIHshW2luZm8gZXhpc3RzIHZhcnMoZmxleG1vZGVsX3Byb3RvdHlwZV9tYXhfbGV2ZWwpXX0gewotIyAgICAgICAgICAgIHNldCB2YXJzKGZsZXhtb2RlbF9wcm90b3R5cGVfbWF4X2xldmVsKSAxCi0jICAgICAgICAgfQotIyAgICAgICAgIHNldCBjb21tYW5kICJzZXQgbWF4X2xldmVsICR2YXJzKGZsZXhtb2RlbF9wcm90b3R5cGVfbWF4X2xldmVsKVxuIgotICAgICAgICAgc2V0IGNvbW1hbmQgInNldCBtYXhfbGV2ZWwgXFtnZXRfZmxleG1vZGVsX21heF9sZXZlbFxdXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZCAic2V0IGxldmVsIDBcbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kICJ3aGlsZSB7XCRsZXZlbCA8IFwkbWF4X2xldmVsfSB7XG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZCAic2V0X3Byb3RvX21vZGUgLXBhcnRpdGlvbl9sZXZlbF9udW0gXCRsZXZlbFxuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmQgInByb3RvX2Rlc2lnbiAtY29uc3RyYWludHMgJHZhcnMoZmxleG1vZGVsX3Byb3RvdHlwZV91c2VyX2NvbnRyYWludHMpXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZCAiY2hlY2tGUGxhbiAtb3V0RmlsZSAkdmFycyhycHRfZGlyKS9jaGVja19mcGxhbl9wcm90b19kZXNpZ25fbGV2ZWxfXCR7bGV2ZWx9LnJwdCAgXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZCAicGxhY2VEZXNpZ24gLW5vUHJlUGxhY2VPcHRcbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kICJ0aW1lRGVzaWduIC1wcm90byAtcHJlY3RzIC1wcmVmaXggIHByb3RvX2Rlc2lnbl9sZXZlbF9cJHtsZXZlbH0gLW91dERpciAkdmFycyhycHRfZGlyKVxuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmQgImxvYWRfdGltaW5nX2RlYnVnX3JlcG9ydCAtcHJvdG8gXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZCAiZmlsZSBjb3B5IC1mb3JjZSAkdmFycyhwbHVnX2RpcikvcG9zdF9wcm90b19kZXNpZ25fbGV2ZWwudGNsIC5wb3N0X3Byb3RvX2Rlc2lnbl9sZXZlbF9cJHtsZXZlbH0udGNsXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZCAic291cmNlIC5wb3N0X3Byb3RvX2Rlc2lnbl9sZXZlbF9cJHtsZXZlbH0udGNsXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZCAiaW5jciBsZXZlbCAxXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZCAifVxuIgotICAgICAgfSBlbHNlIHsKLSAgICAgICAgIHNldCBjb21tYW5kICJzZXQgbGV2ZWwgJHZhcnMoZmxleG1vZGVsX3Byb3RvdHlwZV9mbG93X3N0eWxlKVxuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmQgInByb3RvX2Rlc2lnbiAtY29uc3RyYWludHMgJHZhcnMoZmxleG1vZGVsX3Byb3RvdHlwZV91c2VyX2NvbnRyYWludHMpXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZCAiY2hlY2tGUGxhbiAtb3V0RmlsZSAkdmFycyhycHRfZGlyKS9jaGVja19mcGxhbl9wcm90b19kZXNpZ25fbGV2ZWxfXCR7bGV2ZWx9LnJwdCAgXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZCAicGxhY2VEZXNpZ25cbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kICJ0aW1lRGVzaWduIC1wcm90byAtcHJlY3RzIC1wcmVmaXggIHByb3RvX2Rlc2lnbl9sZXZlbF9cJHtsZXZlbH0gLW91dERpciAkdmFycyhycHRfZGlyKVxuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmQgImxvYWRfdGltaW5nX2RlYnVnX3JlcG9ydCAtcHJvdG8gXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZCAic291cmNlICR2YXJzKHBsdWdfZGlyKS9wb3N0X3Byb3RvX2Rlc2lnbl9sZXZlbC50Y2xcbiIKLSAgICAgIH0KLSAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxwcm90b19sb29wICRjb21tYW5kXQotCi0gICAgICBzZXQgY29tbWFuZCAidW5ncm91cCAtdHlwZSBmbGV4X21vZGVsIC1kaXNwbGF5X2FsbF9jb25zdHJhaW50c1xuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHVuZ3JvdXBfZmxleGlsbV8yICRjb21tYW5kXQotCi0gICAgICBzZXQgY29tbWFuZCAic2V0X3Byb3RvX3RpbWluZ19zZXR0aW5ncyAtcmVzZXRcbiIKLSAgICAgIAotICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6c291cmNlX3BsdWcgcG9zdF9wcm90b3R5cGVfdGNsXQotCi0gICAgICBpZiB7JHZhcnMoY29kZWdlbil9IHsKLSAgICAgICAgIHJldHVybiAkY29tbWFuZHMKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgdXBsZXZlbCAjMCBldmFsICRjb21tYW5kcwotICAgICAgfQotICAgfQotCi0gICBwcm9jIHJ1bl9wYXJ0aXRpb24ge3tmb3JtYXQgMX19IHsKLQotICAgICAgZ2xvYmFsIHZhcnMKLSAgICAgIGdsb2JhbCBlcnJvcnMKLSAgICAgIGdsb2JhbCBlbnYKLQotICAgICAgc2V0IHZhcnMoc3RlcCkgcGFydGl0aW9uCi0gICAgICBzZXQgdmFycyhoaWVyKSB0cnVlCi0KLSAgICAgIHNldCBjb21tYW5kcyAiIgotCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gICAgICAjIEJ1ZGdldCB0aGUgYmxvY2tzIGJhc2VkIG9uIHRoZSBtb2RlCi0gICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0KLSAgICAgIHNldCBjb21tYW5kICIiCi0gICAgICBhcHBlbmQgY29tbWFuZCAic2V0X2dsb2JhbCB0aW1pbmdfc3VwcG9ydF9oaWVyYXJjaGljYWxfcGluX2NvbnN0cmFpbnRzIHRydWVcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kICJzZXQgdGJnUHJpbnRFeGNlcHRpb25JbmZvSW5KdXN0aWZ5IDFcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxzZXRfYnVkZ2V0X3ZhcnMgJGNvbW1hbmRdCi0KLSAgICAgIGlmIHskdmFycyhidWRnZXRfbW9kZSkgPT0gInByb3RvX25ldF9kZWxheV9tb2RlbCIgJiYgJHZhcnModXNlX3Byb3RvX25ldF9kZWxheV9tb2RlbCl9IHsKLSAgICAgICAgIHNldCBjb21tYW5kICJ0aW1lRGVzaWduIC1wcm90byAtcHJlZml4IGJ1ZGdldCAtb3V0RGlyICR2YXJzKHJwdF9kaXIpXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksdGltZV9kZXNpZ24gJGNvbW1hbmRdCi0gICAgICB9Ci0KLSAgICAgICMgRGVmaW5lIGJ1ZGdldGluZyBvcHRpb25zIC4uLgotICAgICAgc2V0IGNvbW1hbmQgIiIKLQotICAgICAgYXBwZW5kIGNvbW1hbmQgInNldEJ1ZGdldGluZ01vZGUgLXdyaXRlTGF0ZW5jeVBlckNsb2NrIHRydWVcbiIKLQotICAgICAgYXBwZW5kIGNvbW1hbmQgImlmIHtcW2RiR2V0IC1lIHRvcC5wdG5zLmNsb25lc1xdICE9IFwiXCJ9IHtcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kICIgICBzZXRCdWRnZXRpbmdNb2RlIC1tZXJnZUNsb25lcyB0cnVlXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZCAifVxuIgotICAgICAgCi0gICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoYWJ1dHRlZF9kZXNpZ24pXSAmJiAkdmFycyhhYnV0dGVkX2Rlc2lnbil9IHsKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kICJzZXRCdWRnZXRpbmdNb2RlIC1hYnV0dGVkIHRydWVcbiIKLSAgICAgIH0KLSAgICAgIAotICAgICAgc3dpdGNoIFtzdHJpbmcgdG9sb3dlciAkdmFycyhidWRnZXRfbW9kZSldIHsKLSAgICAgICAgIGdpZ2Ffb3B0IHsKLSAgICAgICAgICAgICAjIFRoaXMgaXMgZGVmYXVsdCBiZWhhdmlvciBub3cKLSMgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAic2V0QnVkZ2V0aW5nTW9kZSAtdmlydHVhbE9wdEVuZ2luZSBnaWdhT3B0XG4iCi0gICAgICAgICB9Ci0gICAgICAgICB0cmlhbF9pcG8gewotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgInNldEJ1ZGdldGluZ01vZGUgLXZpcnR1YWxPcHRFbmdpbmUgdHJpYWxJUE9cbiIKLSAgICAgICAgIH0KLSAgICAgICAgIHByb3RvX25ldF9kZWxheV9tb2RlbCB7Ci0gICAgICAgICAgICBpZiB7JHZhcnModXNlX3Byb3RvX25ldF9kZWxheV9tb2RlbCl9IHsKLSAgICAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJzZXRCdWRnZXRpbmdNb2RlIC12aXJ0dWFsT3B0RW5naW5lIG5vbmVcbiIKLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0KLSAgICAgIH0KLSMgICAgICBhcHBlbmQgY29tbWFuZCAic2V0QnVkZ2V0aW5nTW9kZSAtZW5hYmxlTVRCdWRnZXRpbmcgdHJ1ZVxuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHNldF9idWRnZXRpbmdfbW9kZSAkY29tbWFuZF0KLQotICAgICAgaWYgeyhbc3RyaW5nIHRvbG93ZXIgJHZhcnMoYnVkZ2V0X21vZGUpXSAhPSAicHJvdG9fbmV0X2RlbGF5X21vZGVsIikgJiYgJHZhcnModXNlX3Byb3RvX25ldF9kZWxheV9tb2RlbCl9IHsKLSAgICAgICAgIHNldCBjb21tYW5kICJzZXRfcHJvdG9fdGltaW5nX3NldHRpbmdzIC1yZXNldFxuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHNldF9wcm90b190aW1pbmdfc2V0dGluZ3MgJGNvbW1hbmRdCi0gICAgICB9Ci0gICAgICBzZXQgY29tbWFuZCAiZGVyaXZlVGltaW5nQnVkZ2V0IC1qdXN0aWZ5XG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksZGVyaXZlX3RpbWluZ19idWRnZXQgJGNvbW1hbmRdCi0KLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICMgUnVuIENMUAotICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotICAgICAgaWYge1tGRjo6aXNfbHBfZmxvd10gJiYgW2luZm8gZXhpc3RzIHZhcnMocG93ZXJfZG9tYWlucyldICYmIFtsbGVuZ3RoICR2YXJzKHBvd2VyX2RvbWFpbnMpXSA+IDF9IHsKLSAgICAgICAgIGlmIHskdmFycyhydW5fY2xwKSAmJiAoW2F1dG9fZXhlY29rIGxlY10gIT0gIiIpfSB7Ci0gICAgICAgICAgICBzZXQgY29tbWFuZCAicnVuQ0xQICIKLSAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhjbHBfb3B0aW9ucyldfSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAkdmFycyhjbHBfb3B0aW9ucykKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICJcbiIKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxydW5fY2xwICRjb21tYW5kXQotICAgICAgICAgfQotICAgICAgfQotCi0gICAgICBpZiB7JHZhcnModXNlX2ZsZXhtb2RlbHMpIHx8ICR2YXJzKHBsYWNlbWVudF9iYXNlZF9wdG4pfSB7Ci0gICAgICAgICBzZXQgY29tbWFuZCAic2V0IG1heF9sYXllciBcW2dldFRyaWFsUm91dGVNb2RlIC1tYXhSb3V0ZUxheWVyXF1cbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kICJzZXRQbGFjZU1vZGUgLXJlc2V0ICBcbiIKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kICJzZXRUcmlhbFJvdXRlTW9kZSAtcmVzZXQgIFxuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmQgInNldFRyaWFsUm91dGVNb2RlIC1tYXhSb3V0ZUxheWVyIFwkbWF4X2xheWVyXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksc2V0X3RyaWFsX3JvdXRlX21vZGUgJGNvbW1hbmRdCi0gICAgICB9Ci0KLSAgICAgIGlmIHskdmFycyh1c2VfcHJvdG9fbmV0X2RlbGF5X21vZGVsKX0gewotICAgICAgICAgc2V0IGNvbW1hbmQgInNldF9wcm90b190aW1pbmdfc2V0dGluZ3MgLXJlc2V0XG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksc2V0X3Byb3RvX3RpbWluZ19zZXR0aW5ncyAkY29tbWFuZF0KLSAgICAgIH0KLSAgICAgICAKLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgICMgUGFydGl0aW9uIGFuZCBzYXZlIHRoZSBwYXJ0aXRpb25zIGludG8gdGhlCi0gICAgICAjIGRpcmVjdG9yeSBQQVJUSVRJT04KLSAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OnNvdXJjZV9wbHVnIHByZV9wYXJ0aXRpb25fdGNsXQotCi0KLSMgICAgICBzZXQgY29tbWFuZCAic2V0IHB0bmdQdG5UaW1pbmdMaWJGb3JtYXQgbGliXG5wYXJ0aXRpb24gLWJ1aWxkU2NhblxuIgotICAgICAgc2V0IGNvbW1hbmQgInBhcnRpdGlvbiAtYnVpbGRTY2FuXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCkscGFydGl0aW9uICRjb21tYW5kXQotICAgICAgaWYge1tsaW5kZXggW3NwbGl0ICR2YXJzKHZlcnNpb24pICIuIl0gIDBdID4gMTB9IHsKLSAgICAgICAgIGlmIHsoW3N0cmluZyBjb21wYXJlICR2YXJzKGRic19mb3JtYXQpICJvYSJdPT0wKX0gewotICAgICAgICAgICAgc2V0IGNvbW1hbmQgInNhdmVQYXJ0aXRpb24gLXB0bkxpYiAkdmFycyhvYV9wYXJ0aXRpb25fbGliKSAtZGlyICR2YXJzKHBhcnRpdGlvbl9kaXIpXG4iCi0gICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgc2V0IGNvbW1hbmQgInNhdmVQYXJ0aXRpb24gLWRpciAkdmFycyhwYXJ0aXRpb25fZGlyKSAtZGVmIC1zY2FuRGVmXG4iCi0gICAgICAgICB9Ci0gICAgICB9IGVsc2UgewotICAgICAgICAgc2V0IGNvbW1hbmQgInNhdmVQYXJ0aXRpb24gLWRpciAkdmFycyhwYXJ0aXRpb25fZGlyKSAtZGVmIC1zY2FuRGVmXG4iCi0gICAgICB9Ci0gICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksc2F2ZV9wYXJ0aXRpb24gJGNvbW1hbmRdCi0KLSAgICAgIGlmIHskdmFycyh1c2VfZmxleG1vZGVscykgJiYgJHZhcnMoZmxleG1vZGVsX2FzX3B0bil9IHsKLSMgICAgICAgICBzZXQgY29tbWFuZCAicmVwbGFjZV9wcm90b19tb2RlbCBcXFxuIgotIyAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgICAtcHJlX2Z0X2RpciAkdmFycyhlY29fZGlyKS9wcmVfZnQgXFxcbiIKLSMgICAgICAgICBhcHBlbmQgY29tbWFuZCAiICAgLXBvc3RfZnRfZGlyICR2YXJzKGVjb19kaXIpL3Bvc3RfZnQgXFxcbiIKLSMgICAgICAgICBhcHBlbmQgY29tbWFuZCAiICAgLXB0bl9kaXIgJHZhcnMocGFydGl0aW9uX2RpcikgXFxcbiIKLSMgICAgICAgICBhcHBlbmQgY29tbWFuZCAiICAgLXB0bl9mdWxsX25ldGxpc3RfZGlyIC4vdGVtcF9uZXRsaXN0X2RpciBcXFxuIgotIyAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgICAtb3V0X2RpciAkdmFycyhwYXJ0aXRpb25fZGlyKVxuIgotCi0gICAgICAgICBzZXQgY29tbWFuZCAicmVwbGFjZV9wcm90b19tb2RlbCBcXFxuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAgIC1wdG5fZGlyICR2YXJzKHBhcnRpdGlvbl9kaXIpIFxcXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZCAiICAgLW91dF9kaXIgJHZhcnMocGFydGl0aW9uX2RpcilcbiIKLQotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLHJlcGxhY2VfcHJvdG9fbW9kZWwgJGNvbW1hbmRdCi0gICAgICB9Ci0KLSAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OnNvdXJjZV9wbHVnIHBvc3RfcGFydGl0aW9uX3RjbF0KLQotICAgICAgaWYgeyEkdmFycyhjb2RlZ2VuKX0gewotICAgICAgICAgIHVwbGV2ZWwgIzAgZXZhbCAkY29tbWFuZHMKLSAgICAgIH0KLQotICAgICAgc2V0IHBhdGggW2ZpbGUgbm9ybWFsaXplICR2YXJzKHNjcmlwdF9wYXRoKV0KLSAgIAotICAgICAgZmlsZSBta2RpciAkdmFycyhwYXJ0aXRpb25fZGlyKQotCi0gICAgICBpZiB7IVtmaWxlIGV4aXN0cyAkdmFycyhwYXJ0aXRpb25fZGlyKS9NYWtlZmlsZS5wYXJ0aXRpb25dfSB7Ci0gICAgICAgICBmaWxlIGNvcHkgJHZhcnMoc2NyaXB0X3BhdGgpL0VUQy9JTk5PVlVTL01ha2VmaWxlLnBhcnRpdGlvbiAkdmFycyhwYXJ0aXRpb25fZGlyKQotICAgICAgfQotICAgICAgc2V0IG9wIFtvcGVuICR2YXJzKHBhcnRpdGlvbl9kaXIpL01ha2VmaWxlIHddCi0gICAgICBpZiB7IVtpbmZvIGV4aXN0cyBlbnYoVlBBVEgpXX0gewotICAgICAgICAgc2V0IGVudihWUEFUSCkgIm1ha2UiCi0gICAgICB9Ci0gICAgICBwdXRzICRvcCAiVlBBVEg9JGVudihWUEFUSCkiCi0gICAgICBwdXRzICRvcCAiQkxPQ0tTID0gJHZhcnMocGFydGl0aW9uX2xpc3QpIgotICAgICAgcHV0cyAkb3AgIiIKLSAgICAgIHB1dHMgJG9wICJpbmNsdWRlIE1ha2VmaWxlLnBhcnRpdGlvbiIKLSAgICAgIGNsb3NlICRvcAotICAgCi0gICAgICBmb3JlYWNoIHZhciBbYXJyYXkgbmFtZXMgdmFyc10gewotICAgICAgICAgc2V0IHN2YXJzKCR2YXIpICR2YXJzKCR2YXIpCi0gICAgICB9Ci0gICAgICBzZXQgdmFycyhtb2RlKSBmbGF0Ci0jICAgICAgc2V0IHZhcnMoaGllcikgdHJ1ZQotICAgICAgc2V0IGxpbmsgW2ZpbGUgbm9ybWFsaXplICR2YXJzKHNjcmlwdF9yb290KV0KLSAgICAgIGZvcmVhY2ggYmxvY2sgW2NvbmNhdCAkdmFycyhkZXNpZ24pICR2YXJzKHBhcnRpdGlvbl9saXN0KV0gewotICAgICAgICAgZXhlYyBta2RpciAtcCAkdmFycyhwYXJ0aXRpb25fZGlyKS8kYmxvY2sKLSMgICAgICAgICBpZiB7W2ZpbGUgZXhpc3RzIC5mZi50Y2xdfSB7Ci0jICAgICAgICAgICAgZmlsZSBjb3B5IC1mb3JjZSAuZmYudGNsICR2YXJzKHBhcnRpdGlvbl9kaXIpLyRibG9jawotIyAgICAgICAgIH0KLSAgICAgICAgIGlmIHtbZmlsZSBleGlzdHMgJHZhcnMocGFydGl0aW9uX2RpcikvJGJsb2NrL01ha2VmaWxlXX0gewotICAgICAgICAgICAgZmlsZSBkZWxldGUgJHZhcnMocGFydGl0aW9uX2RpcikvJGJsb2NrL01ha2VmaWxlCi0gICAgICAgICB9Ci0gICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJGJsb2NrLGlubm92dXNfY29uZmlnX3RjbCldICYmIFtmaWxlIGV4aXN0cyAkdmFycygkYmxvY2ssaW5ub3Z1c19jb25maWdfdGNsKV19IHsKLSAgICAgICAgICAgIHB1dHMgIjxGRj4gU291cmNpbmcgJHZhcnMoJGJsb2NrLGlubm92dXNfY29uZmlnX3RjbCkiCi0gICAgICAgICAgICBzb3VyY2UgJHZhcnMoJGJsb2NrLGlubm92dXNfY29uZmlnX3RjbCkKLSAgICAgICAgIH0gCi0gICAgICAgICBzZXQgY3dkIFtwd2RdCi0gICAgICAgIAotICAgICAgICAgaWYgeyhbbGluZGV4IFtzcGxpdCAkdmFycyh2ZXJzaW9uKSAiLiJdICAwXSA+IDEwKSAgJiYgKFtzdHJpbmcgY29tcGFyZSAkdmFycyhkYnNfZm9ybWF0KSAib2EiXT09MCl9IHsKLSAgICAgICAgICAgIGlmIHtbZmlsZSBleGlzdHMgY2RzLmxpYl19IHsKLSAgICAgICAgICAgICAgIHNldCBpcCBbb3BlbiBjZHMubGliIHJdCi0gICAgICAgICAgICAgICBzZXQgaSAwIAotICAgICAgICAgICAgICAgd2hpbGUge1tnZXRzICRpcCBsaW5lXT49MH0gewotICAgICAgICAgICAgICAgICAgc2V0IGNkc19saWIoJGkpICRsaW5lCi0gICAgICAgICAgICAgICAgICBpbmNyIGkKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIGNsb3NlICRpcAotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIHB1dHMgIjxGRj4gRVJST1I6IEEgY2RzLmxpYiBmaWxlIGlzIHJlcXVpcmVkIGZvciBvcGVuIGFjY2VzcyBmbG93cyAuLi4iCi0gICAgICAgICAgICB9Ci0gICAgICAgICB9IAotICAgICAgICAgY2QgJHZhcnMocGFydGl0aW9uX2RpcikvJGJsb2NrCi0gICAgICAgICBzZXQgdmFycyhkZXNpZ24pICRibG9jawotICAgICAgICAgaWYgeyR2YXJzKGNvZGVnZW4pfSB7Ci0gICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMocHJvY19maWxlKV19IHsKLSAgICAgICAgICAgICAgIHVuc2V0IHZhcnMocHJvY19maWxlKQotICAgICAgICAgICAgfQotICAgICAgICAgICAgdW5zZXQgdmFycyhzdGVwcykKLSAgICAgICAgIH0gCi0gICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoY3RzX3NwZWMpXX0gewotICAgICAgICAgICAgdW5zZXQgdmFycyhjdHNfc3BlYykKLSAgICAgICAgIH0KLSAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkYmxvY2ssY3RzX3NwZWMpXX0gewotICAgICAgICAgICAgc2V0IHZhcnMoY3RzX3NwZWMpICR2YXJzKCRibG9jayxjdHNfc3BlYykKLSAgICAgICAgIH0KLQotICAgICAgICAgaWYgeyEkdmFycyhjb2RlZ2VuKX0geyAKLSAgICAgICAgICAgIGV4ZWMgbG4gLXMgJGxpbmsgU0NSSVBUUwotICAgICAgICAgICAgZXhlYyBsbiAtcyBTQ1JJUFRTL01ha2VmaWxlLmVkaS5mbGF0IE1ha2VmaWxlCi0gICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgc2V0IHZhcnMobW9kZSkgZmxhdAotICAgICAgICAgICAgc2V0IHZhcnMoaGllcikgdHJ1ZSAKLSAgICAgICAgICAgIHVuc2V0IHZhcnMoc3RlcCkKLSAgICAgICAgICAgIGV4ZWN1dGVfZmxvdyBhbGwgJHZhcnMoZm9ybWF0X2xpbmVzKQotICAgICAgICAgICAgRkY6OmR1bXBfdmFycwotICAgICAgICAgfQotICAgICAgICAgY2QgJGN3ZAotIyAgICAgICAgIHNldCBhY3Rpb25zICR2YXJzKGFjdGlvbnMpCi0gICAgICAgICBmb3JlYWNoIHZhciBbYXJyYXkgbmFtZXMgdmFyc10gewotICAgICAgICAgICAgdW5zZXQgdmFycygkdmFyKQotICAgICAgICAgfQotIyAgICAgICAgIHNldCB2YXJzKGFjdGlvbnMpICRhY3Rpb25zCi0gICAgICAgICBmb3JlYWNoIHZhciBbYXJyYXkgbmFtZXMgc3ZhcnNdIHsKLSAgICAgICAgICAgIHNldCB2YXJzKCR2YXIpICRzdmFycygkdmFyKQotICAgICAgICAgfQotICAgICAgfQotICAgICAgaWYgeyR2YXJzKGhpZXJfZmxvd190eXBlKSA9PSAiMnBhc3MifSB7Ci0gICAgICAgICBmb3JlYWNoIGJsb2NrIFtjb25jYXQgJHZhcnMoZGVzaWduKSAkdmFycyhwYXJ0aXRpb25fbGlzdCldIHsKLSAgICAgICAgICAgIGV4ZWMgbWtkaXIgLXAgJHZhcnMocGFydGl0aW9uX2Rpcl9wYXNzMikvJGJsb2NrLyR2YXJzKHNjcmlwdF9kaXIpL0lOTk9WVVMKLSAgICAgICAgICAgIGV4ZWMgbWtkaXIgLXAgJHZhcnMocGFydGl0aW9uX2Rpcl9wYXNzMikvJGJsb2NrLyR2YXJzKHJwdF9kaXIpCi0gICAgICAgICAgICBpZiB7W2ZpbGUgaXNkaXJlY3RvcnkgJHZhcnMocGFydGl0aW9uX2Rpcl9wYXNzMikvJGJsb2NrLyR2YXJzKHNjcmlwdF9kaXIpL0VUQ119IHsKLSAgICAgICAgICAgICAgIGZpbGUgZGVsZXRlIC1mb3JjZSAkdmFycyhwYXJ0aXRpb25fZGlyX3Bhc3MyKS8kYmxvY2svJHZhcnMoc2NyaXB0X2RpcikvRVRDCi0gICAgICAgICAgICB9Ci0jICAgICAgICAgICAgZmlsZSBjb3B5IC1mb3JjZSAkdmFycyhwYXJ0aXRpb25fZGlyKS8kYmxvY2svJHZhcnMoc2NyaXB0X2RpcikvRVRDICR2YXJzKHBhcnRpdGlvbl9kaXJfcGFzczIpLyRibG9jay8kdmFycyhzY3JpcHRfZGlyKS9FVEMKLSAgICAgICAgICAgIGZvcmVhY2ggZmlsZSBbZ2xvYiAkdmFycyhwYXJ0aXRpb25fZGlyKS9NYWtlKl0gewotICAgICAgICAgICAgICAgaWYge1tmaWxlIGlzZmlsZSAkZmlsZV19IHsKLSAgICAgICAgICAgICAgICAgIGZpbGUgY29weSAtZm9yY2UgJGZpbGUgJHZhcnMocGFydGl0aW9uX2Rpcl9wYXNzMikKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBmb3JlYWNoIGZpbGUgW2dsb2IgJHZhcnMocGFydGl0aW9uX2RpcikvJGJsb2NrLyR2YXJzKHNjcmlwdF9kaXIpLypdIHsKLSAgICAgICAgICAgICAgIGlmIHtbZmlsZSBpc2ZpbGUgJGZpbGVdfSB7Ci0gICAgICAgICAgICAgICAgICBmaWxlIGNvcHkgLWZvcmNlICRmaWxlICR2YXJzKHBhcnRpdGlvbl9kaXJfcGFzczIpLyRibG9jay8kdmFycyhzY3JpcHRfZGlyKQotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIHtbZmlsZSBpc2ZpbGUgJHZhcnMocGFydGl0aW9uX2RpcikvJGJsb2NrLy5pbG1fbm9uX3NkY19maWxlLnRjbF19IHsKLSAgICAgICAgICAgICAgIGZpbGUgY29weSAtZm9yY2UgJHZhcnMocGFydGl0aW9uX2RpcikvJGJsb2NrLy5pbG1fbm9uX3NkY19maWxlLnRjbCAkdmFycyhwYXJ0aXRpb25fZGlyX3Bhc3MyKS8kYmxvY2sKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIHtbZmlsZSBpc2ZpbGUgJHZhcnMocGFydGl0aW9uX2RpcikvJGJsb2NrL2VtcHR5LnNkY119IHsKLSAgICAgICAgICAgICAgIGZpbGUgY29weSAtZm9yY2UgJHZhcnMocGFydGl0aW9uX2RpcikvJGJsb2NrL2VtcHR5LnNkYyAkdmFycyhwYXJ0aXRpb25fZGlyX3Bhc3MyKS8kYmxvY2sKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIHtbZmlsZSBpc2ZpbGUgJHZhcnMocGFydGl0aW9uX2RpcikvJGJsb2NrL01ha2VmaWxlLnBhc3MyXX0gewotICAgICAgICAgICAgICAgZmlsZSBjb3B5IC1mb3JjZSAkdmFycyhwYXJ0aXRpb25fZGlyKS8kYmxvY2svTWFrZWZpbGUucGFzczIgJHZhcnMocGFydGl0aW9uX2Rpcl9wYXNzMikvJGJsb2NrL01ha2VmaWxlCi0gICAgICAgICAgICAgICBmaWxlIGRlbGV0ZSAkdmFycyhwYXJ0aXRpb25fZGlyKS8kYmxvY2svTWFrZWZpbGUucGFzczIKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGNkICR2YXJzKHBhcnRpdGlvbl9kaXJfcGFzczIpLyRibG9jawotICAgICAgICAgICAgaWYgeyR2YXJzKGVuYWJsZV9mbGV4aWxtKX0gewotICAgICAgICAgICAgICAgc2V0IGluZGV4IFtsc2VhcmNoIFtGRjo6YWRqdXN0X3N0ZXBzXSBjdHNdCi0gICAgICAgICAgICB9IGVsc2UgewotIyAgICAgICAgICAgICAgIHNldCBpbmRleCBbbHNlYXJjaCBbRkY6OmFkanVzdF9zdGVwc10gcG9zdGN0c10KLSMgICAgICAgICAgICAgICBzZXQgaW5kZXggW2xzZWFyY2ggW0ZGOjphZGp1c3Rfc3RlcHNdIHBvc3RjdHNfaG9sZF0KLSAgICAgICAgICAgICAgIHNldCBpbmRleCBbZXhwciBbbHNlYXJjaCBbRkY6OmFkanVzdF9zdGVwc10gY3RzXSsyXQotICAgICAgICAgICAgfQotICAgICAgICAgICAgY2QgJGN3ZAotI3B1dHMgIlNQTElUIEZMT1dTOiAkaW5kZXgsIFtGRjo6YWRqdXN0X3N0ZXBzXSIKLSAgICAgICAgICAgIGZvcmVhY2ggc3RlcCBbbHJhbmdlICR2YXJzKHN0ZXBzKSAkaW5kZXggZW5kXSB7Ci0gICAgICAgICAgICAgICBpZiB7W2xzZWFyY2ggJHZhcnMoZnN0ZXBzKSAkc3RlcF0gIT0gLTF9IHsKLSAgICAgICAgICAgICAgICAgIGlmIHtbZmlsZSBpc2ZpbGUgJHZhcnMocGFydGl0aW9uX2RpcikvJGJsb2NrLyR2YXJzKHNjcmlwdF9kaXIpL0lOTk9WVVMvcnVuXyRzdGVwLnRjbF19IHsKLSNwdXRzICJDT1BZOiAkdmFycyhwYXJ0aXRpb25fZGlyKS8kYmxvY2svJHZhcnMoc2NyaXB0X2RpcikvSU5OT1ZVUy9ydW5fJHN0ZXAudGNsICR2YXJzKHBhcnRpdGlvbl9kaXJfcGFzczIpLyRibG9jay8kdmFycyhzY3JpcHRfZGlyKS9JTk5PVlVTIgotICAgICAgICAgICAgICAgICAgICAgZmlsZSBjb3B5ICAtZm9yY2UgJHZhcnMocGFydGl0aW9uX2RpcikvJGJsb2NrLyR2YXJzKHNjcmlwdF9kaXIpL0lOTk9WVVMvcnVuXyRzdGVwLnRjbCBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkdmFycyhwYXJ0aXRpb25fZGlyX3Bhc3MyKS8kYmxvY2svJHZhcnMoc2NyaXB0X2RpcikvSU5OT1ZVUwotI3B1dHMgIkRFTEVURTogJHZhcnMocGFydGl0aW9uX2RpcikvJGJsb2NrLyR2YXJzKHNjcmlwdF9kaXIpL0lOTk9WVVMvcnVuXyRzdGVwLnRjbCIKLSAgICAgICAgICAgICAgICAgICAgIGZpbGUgZGVsZXRlICAtZm9yY2UgJHZhcnMocGFydGl0aW9uX2RpcikvJGJsb2NrLyR2YXJzKHNjcmlwdF9kaXIpL0lOTk9WVVMvcnVuXyRzdGVwLnRjbAotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotIyAgICAgICAgICAgIHNldCBhZGp1c3RlZCBbRkY6OmFkanVzdF9zdGVwc10KLSMgICAgICAgICAgICBjZCAkdmFycyhwYXJ0aXRpb25fZGlyKS8kYmxvY2sKLSNwdXRzICIxOiAkYWRqdXN0ZWQgOiBbbHJhbmdlICRhZGp1c3RlZCAwICRpbmRleF0iCi0jICAgICAgICAgICAgRkY6Omdlbl9tYWtlZmlsZSBbbHJhbmdlICRhZGp1c3RlZCAkaW5kZXggZW5kXSBmbGF0Ci0jICAgICAgICAgICAgY2QgJGN3ZAotIyAgICAgICAgICAgIGNkICR2YXJzKHBhcnRpdGlvbl9kaXJfcGFzczIpLyRibG9jawotI3B1dHMgIjI6ICRhZGp1c3RlZCA6IFtscmFuZ2UgJGFkanVzdGVkICRpbmRleCBlbmRdIgotIyAgICAgICAgICAgIEZGOjpnZW5fbWFrZWZpbGUgW2xyYW5nZSAkYWRqdXN0ZWQgJGluZGV4IGVuZF0gZmxhdAotIyAgICAgICAgICAgIGNkICRjd2QKLSAgICAgICAgIH0KLSAgICAgIH0KLSAKLSAgICAgIGZvcmVhY2ggdmFyIFthcnJheSBuYW1lcyB2YXJzXSB7Ci0gICAgICAgICB1bnNldCB2YXJzKCR2YXIpCi0gICAgICB9Ci0gICAgICBmb3JlYWNoIHZhciBbYXJyYXkgbmFtZXMgc3ZhcnNdIHsKLSAgICAgICAgIHNldCB2YXJzKCR2YXIpICRzdmFycygkdmFyKQotICAgICAgfQotCi0gICAgICBpZiB7JHZhcnMoY29kZWdlbil9IHsKLSMgICAgICAgICBpZiB7JHZhcnMobWFrZWZpbGUpfSB7Ci0jICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICJcbmV4ZWMgL2Jpbi90b3VjaCAkZW52KFZQQVRIKS9wYXJ0aXRpb25cbiIKLSMgICAgICAgICB9Ci0gICAgICAgICByZXR1cm4gJGNvbW1hbmRzCi0gICAgICB9IGVsc2UgewotICAgICAgICAgZXhlYyAvYmluL3RvdWNoICRlbnYoVlBBVEgpL3BhcnRpdGlvbgotICAgICAgfQotICAgfQotCi0gICBwcm9jIHJ1bl9kZWJ1ZyB7e2Zvcm1hdCAxfX0gewotCi0gICAgICBnbG9iYWwgdmFycwotICAgICAgZ2xvYmFsIGVycm9ycwotICAgICAgZ2xvYmFsIGVudgotCi0gICAgICBzZXQgdmFycyhzdGVwKSBkZWJ1ZwotCi0gICAgICBzZXQgY29tbWFuZHMgIiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyAiXG5nbG9iYWwgZW52XG4iCi0KLSAgICAgIGFwcGVuZCBjb21tYW5kcyAiaWYge1xbaW5mbyBleGlzdHMgZW52KFNURVApXF19IHtcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyAiW0ZGX0VESTo6bG9hZF9kZXNpZ24gXCRlbnYoU1RFUCldXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgIn1cbiIKLQotIyAgICAgIGFwcGVuZCBjb21tYW5kcyAiW0ZGOjpzb3VyY2VfcGx1ZyBhbHdheXNfc291cmNlX3RjbF1cbiIKLQotICAgICAgYXBwZW5kIGNvbW1hbmRzICJ3aW5cbiIKLQotICAgICAgaWYgeyR2YXJzKGNvZGVnZW4pfSB7Ci0gICAgICAgICByZXR1cm4gJGNvbW1hbmRzCi0gICAgICB9IGVsc2UgewotICAgICAgICAgIHVwbGV2ZWwgIzAgZXZhbCAkY29tbWFuZHMKLSAgICAgIH0KLQotICAgfQotCi0gICBwcm9jIHJ1bl9sZWMge30gewotCi0gICAgICBnbG9iYWwgdmFycwotICAgICAgZ2xvYmFsIGVycm9ycwotICAgICAgZ2xvYmFsIGVudgotCi0gICAgICBzZXQgY29tbWFuZHMgIiIKLQotICAgICAgYXBwZW5kIGNvbW1hbmRzICJ2cHhtb2RlXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgInNldCBkb2ZpbGUgYWJvcnQgZXhpdFxuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzICJzZXQgdW5kZWZpbmVkIGNlbGwgYmxhY2tfYm94IC1ub2FzY2VuZCAtYm90aFxuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzICJ0Y2xtb2RlXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgIi8vIHNldHVwIHZhcmlhYmxlcyBcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyAiZ2xvYmFsIHZhcnNcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyAicHJvYyBQdXRzIHthcmdzfSB7XG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgIiAgIHB1dHMgXCRhcmdzXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgIn1cbiIKLQotICAgICAgYXBwZW5kIGNvbW1hbmQgIi8vIERlZmluZSB0aGUgbmV0bGlzdCB0byBiZSB2ZXJpZnlcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyAiaWYge1xbaW5mbyBleGlzdHMgZW52KFNURVApXF0gJiYgXFtmaWxlIGV4aXN0cyAkdmFycyhkYnNfZGlyKS9MRUMvXCRlbnYoU1RFUCkudi5nelxdfSB7XG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgIiAgIHNldCByZXZpc2VkTmV0bGlzdCAkdmFycyhkYnNfZGlyKS9MRUMvXCRlbnYoU1RFUCkudi5nelxuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzICJ9IGVsc2Uge1xuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzICIgICBQdXRzIFwiPEZGPiBGYWlsZWQgdG8gZmluZCBuZXRsaXN0ICBEQlMvTEVDL1wkZW52KFNURVApLnYuZ3pcIlxuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzICJ9XG4iCi0KLSAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyh0aHJlYWRzKV19IHsKLSAgICAgICAgIGFwcGVuZCBjb21tYW5kcyAidnB4IHNldCBjb21wYXJlIG9wdGlvbiAtdGhyZWFkcyAkdmFycyh0aHJlYWRzKVxuIgotICAgICAgfQotCi0gICAgICBhcHBlbmQgY29tbWFuZHMgIi8vIHJlYWQgbGliZXJ0eSBjZWxsIGRlZmluaXRpb25zXG4iCi0gICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJHZhcnMoZGVmYXVsdF9zZXR1cF92aWV3KSxkZWxheV9jb3JuZXIpXX0gewotICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCR2YXJzKCR2YXJzKGRlZmF1bHRfc2V0dXBfdmlldyksZGVsYXlfY29ybmVyKSxsaWJyYXJ5X3NldCldfSB7Ci0gICAgICAgICAgICBzZXQgc2V0ICR2YXJzKCR2YXJzKCR2YXJzKGRlZmF1bHRfc2V0dXBfdmlldyksZGVsYXlfY29ybmVyKSxsaWJyYXJ5X3NldCkKLSAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICByZXR1cm4KLSAgICAgICAgIH0KLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICByZXR1cm4KLSAgICAgIH0KLSAgICAgIGFwcGVuZCBjb21tYW5kcyAidnB4IHJlYWQgbGlicmFyeSAtc3RhdGV0YWJsZSAtYm90aCAtbGliZXJ0eSBcW2xpc3QgJHZhcnMoJHNldCx0aW1pbmcpXF1cbiIKLQotICAgICAgYXBwZW5kIGNvbW1hbmRzICIvLyByZWFkIHJlZmVyZW5jZSBuZXRsaXN0XG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgInZweCByZWFkIGRlc2lnbiAtdmVyaWxvZyAtc2Vuc2l0aXZlIC1nb2xkZW4gJHZhcnMobmV0bGlzdClcbiIKLQotICAgICAgYXBwZW5kIGNvbW1hbmRzICIvLyByZWFkIHBvc3QtaW1wbGVtZW50YXRpb24gbmV0bGlzdFxuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzICJ2cHggcmVhZCBkZXNpZ24gLXZlcmlsb2cgLXNlbnNpdGl2ZSAtcmV2aXNlZCBcJHJldmlzZWROZXRsaXN0XG4iCi0KLSAgICAgIGFwcGVuZCBjb21tYW5kcyAiLy9zZXQgdG9wIGxldmVsXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgInZweCBzZXQgcm9vdCBtb2R1bGUgJHZhcnMoZGVzaWduKSAtYm90aFxuIgotCi0gICAgICByZWdzdWIgLWFsbCAiIyIgW0ZGOjpzb3VyY2VfcGx1ZyBwcmVfbGVjX3RjbF0gIi8vIiB0ZW1wCi0gICAgICBhcHBlbmQgY29tbWFuZHMgJHRlbXAKLQotICAgICAgYXBwZW5kIGNvbW1hbmRzICJ2cHhtb2RlXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgInJlcG9ydCBkZXNpZ24gZGF0YVxuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzICJyZXBvcnQgYmxhY2sgYm94XG4iCi0KLSAgICAgIGFwcGVuZCBjb21tYW5kcyAic2V0IG1hcHBpbmcgbWV0aG9kIC1uYW1lIGZpcnN0XG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgInNldCBmbGF0dGVuIG1vZGVsIC1zZXFfY29uc3RhbnQgLXNlcV9jb25zdGFudF94X3RvIDBcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyAic2V0IGZsYXR0ZW4gbW9kZWwgLW5vZGZmX3RvX2RsYXRfemVybyAtbm9kZmZfdG9fZGxhdF9mZWVkYmFja1xuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzICJzZXQgZmxhdHRlbiBtb2RlbCAtZ2F0ZWRfY2xvY2tcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyAic2V0IHN5c3RlbSBtb2RlIGxlY1xuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzICJhZGQgY29tcGFyZSBwb2ludCAtYWxsXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgImNvbXBhcmUgLWdhdGVfdG9fZ2F0ZVxuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzICJ1c2FnZVxuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzICIvLyAgIHZweCByZXBvcnQgY29tcGFyZSBkYXRhIgotICAgICAgYXBwZW5kIGNvbW1hbmRzICJyZXBvcnQgY29tcGFyZSBkYXRhIC1jbGFzcyBub25lcXVpdmFsZW50IC1jbGFzcyBhYm9ydCAtY2xhc3Mgbm90Y29tcGFyZWRcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyAicmVwb3J0IHZlcmlmaWNhdGlvbiAtdmVyYm9zZVxuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzICJyZXBvcnQgc3RhdGlzdGljc1xuIgotCi0gICAgICBhcHBlbmQgY29tbWFuZHMgInRjbG1vZGVcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyAic2V0IHBvaW50c19jb3VudCBcW2dldF9jb21wYXJlX3BvaW50cyAtY291bnRcXVxuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzICJzZXQgZGlmZl9jb3VudCBcW2dldF9jb21wYXJlX3BvaW50cyAtZGlmZiAtY291bnRcXVxuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzICJzZXQgYWJvcnRfY291bnQgXFtnZXRfY29tcGFyZV9wb2ludHMgLWFib3J0IC1jb3VudFxdXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgInNldCB1bmtub3duX2NvdW50IFxbZ2V0X2NvbXBhcmVfcG9pbnRzIC11bmtub3duIC1jb3VudFxdXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgImlmIHtcJHBvaW50c19jb3VudCA9PSAwfSB7XG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgIiAgICBwdXRzIFwiLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXCJcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyAiICAgIHB1dHMgXCJFUlJPUjogTm8gY29tcGFyZSBwb2ludHMgZGV0ZWN0ZWRcIlxuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzICIgICAgcHV0cyBcIi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVwiXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgIn1cbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyAiaWYge1wkZGlmZl9jb3VudCA+IDB9IHtcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyAiICAgIHB1dHMgXCItLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cIlxuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzICIgICAgcHV0cyBcIkVSUk9SOiBEaWZmZXJlbnQgS2V5IFBvaW50cyBkZXRlY3RlZFwiXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgIiAgICBwdXRzIFwiLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXCJcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyAifVxuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzICJpZiB7XCRhYm9ydF9jb3VudCA+IDB9IHtcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyAiICAgIHB1dHMgXCItLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVwiXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgIiAgICBwdXRzIFwiRVJST1I6IEFib3J0IFBvaW50cyBkZXRlY3RlZCBcIlxuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzICIgICAgcHV0cyBcIi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXCJcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyAifVxuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzICJpZiB7XCR1bmtub3duX2NvdW50ID4gMH0ge1xuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzICIgICAgcHV0cyBcIi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cIlxuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzICIgICAgcHV0cyBcIkVSUk9SOiBVbmtub3duIEtleSBQb2ludHMgZGV0ZWN0ZWRcIlxuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzICIgICAgcHV0cyBcIi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cIlxuIgotICAgICAgYXBwZW5kIGNvbW1hbmRzICJ9XG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgInB1dHMgXCJObyBvZiBjb21wYXJlIHBvaW50cyA9IFwkcG9pbnRzX2NvdW50XCJcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyAicHV0cyBcIk5vIG9mIGRpZmYgcG9pbnRzICAgID0gXCRkaWZmX2NvdW50XCJcbiIKLSAgICAgIGFwcGVuZCBjb21tYW5kcyAicHV0cyBcIk5vIG9mIGFib3J0IHBvaW50cyAgID0gXCRhYm9ydF9jb3VudFwiXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgInB1dHMgXCJObyBvZiB1bmtub3duIHBvaW50cyA9IFwkdW5rbm93bl9jb3VudFwiXG4iCi0gICAgICBhcHBlbmQgY29tbWFuZHMgImV4aXQgMFxuIgotCi0gICAgICBpZiB7JHZhcnMoY29kZWdlbil9IHsKLSAgICAgICAgIHJldHVybiAkY29tbWFuZHMKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgdXBsZXZlbCAjMCBldmFsICRjb21tYW5kcwotICAgICAgfQotCi0gICB9Ci0KLSAgIHByb2MgZHVtcF9jb25maWcge30gewotCi0gICAgICBnbG9iYWwgdmFycwotICAgICAgZ2xvYmFsIHVkbQotICAgICAgZ2xvYmFsIHJkYV9JbnB1dAotICAgICAgZ2xvYmFsIHJkYV9kZWZhdWx0cwotCi0jICAgICAgc2V0IGNvbW1hbmRzICIiCi0gICAgICBmaWxlIG1rZGlyICR2YXJzKHNjcmlwdF9kaXIpCi0gICAgICBpZiB7W2luZm8gY29tbWFuZCBGRkY6OmdldF90b29sXSBuZSAiIiAmJiBbRkZGOjpnZXRfdG9vbF0gZXEgInJjIn0gewotICAgICAgICB0Y2xfc291cmNlICR2YXJzKHNjcmlwdF9wYXRoKS9FVEMvSU5OT1ZVUy91ZG0udGNsCi0gICAgICB9IGVsc2UgeyAKLSAgICAgICAgc291cmNlICR2YXJzKHNjcmlwdF9wYXRoKS9FVEMvSU5OT1ZVUy91ZG0udGNsCi0gICAgICB9Ci0gICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoY3BmX2ZpbGUpXX0gewotICAgICAgICAgaWYgeyR2YXJzKGNwZl90aW1pbmcpfSB7Ci0gICAgICAgICAgICB1bnNldCBpbml0KG1tbWNfZmlsZSkKLSAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICB1bnNldCBpbml0KGNwZl9maWxlKQotICAgICAgICAgfQotICAgICAgfQotICAgICAgaWYge1tsaW5kZXggW3NwbGl0ICR2YXJzKHZlcnNpb24pICIuIl0gIDBdID4gMTB9IHsKLSAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyh2aWV3X2RlZmluaXRpb25fdGNsKV19IHsKLSAgICAgICAgICAgIHNldCBpbml0KG1tbWNfZmlsZSkgJHZhcnModmlld19kZWZpbml0aW9uX3RjbCkKLSAgICAgICAgIH0KLSAgICAgICAgIHNldCBvcCBbb3BlbiAkdmFycyhzY3JpcHRfZGlyKS9pbml0LnRjbCB3XQotICAgICAgICAgIyBCQ0w6IFRyeWluZyB0byBmaXggZW1iZWRkZWQgcGF0aHMuLi4KLSAgICAgICAgIHNldCByZWxhdGl2aXplTWVzZ0xvZyAiIgotICAgICAgICAgc2V0IHJlbGF0aXZpemVNZXNnTG9nICIkcmVsYXRpdml6ZU1lc2dMb2cgW0ZGOjpyZW1vdmVfb3V0ZXJfYnJhY2VzIFtGRjo6cmVsYXRpdml6ZUZpbGVPckRpciAtYXJyIGluaXQgLXZhcmRpciBmZl9leGVfZGlyIC1yZWxhdGl2ZVBhdGhzT2tdXSIKLQotICAgICAgICAgZm9yZWFjaCB2YXIgW2FycmF5IG5hbWVzIGluaXRdIHsKLSAgICAgICAgICAgIGlmIHtbZmlsZSBleGlzdHMgJGluaXQoJHZhcildfSB7Ci0gICAgICAgICAgICAgICBzZXQgbnZhciBbbGlzdF0KLSAgICAgICAgICAgICAgIGZvcmVhY2ggZmlsZSAkaW5pdCgkdmFyKSB7Ci0gICAgICAgICAgICAgICAgICBpZiB7IVtyZWdleHAgIm9hXyIgJHZhcl19IHsKLSAgICAgICAgICAgICAgICAgICAgIGxhcHBlbmQgbnZhciBbZmlsZSBub3JtYWxpemUgJGZpbGVdCi0gICAgICAgICAgICAgICAgICAgICBwdXRzICRvcCAic2V0IGluaXRfJHZhciBcIiRudmFyXCIiCi0gICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgcHV0cyAkb3AgInNldCBpbml0XyR2YXIgXCIkaW5pdCgkdmFyKVwiIgotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIGlmIHskdmFycyhuZXRsaXN0X3R5cGUpID09ICJ2ZXJpbG9nIn0gewotICAgICAgICAgICAgICAgICAgaWYgeyR2YXIgPT0gIm9hX2Rlc2lnbl9saWIifSB7IGNvbnRpbnVlIH0KLSAgICAgICAgICAgICAgICAgIGlmIHskdmFyID09ICJvYV9kZXNpZ25fY2VsbCJ9IHsgY29udGludWUgfQotICAgICAgICAgICAgICAgICAgaWYgeyR2YXIgPT0gIm9hX2Rlc2lnbl92aWV3In0geyBjb250aW51ZSB9Ci0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICBwdXRzICRvcCAic2V0IGluaXRfJHZhciBcIiRpbml0KCR2YXIpXCIiCi0gICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0jICAgICAgICAgZm9yZWFjaCB2YXIgW2FycmF5IG5hbWVzIG5pbml0XSB7Ci0jICAgICAgICAgICAgcHV0cyAkbnAgInNldF9kYiBpbml0XyR2YXIgXCIkbmluaXQoJHZhcilcIiIKLSMgICAgICAgICB9Ci0gICAgICAgICBmb3JlYWNoIHZhciBbYXJyYXkgbmFtZXMgY29uZl0gewotICAgICAgICAgICAgcHV0cyAkb3AgInNldCBjb25mXyR2YXIgXCIkY29uZigkdmFyKVwiIgotICAgICAgICAgfQotICAgICAgICAgZm9yZWFjaCB2YXIgW2FycmF5IG5hbWVzIGN0c10gewotICAgICAgICAgICAgcHV0cyAkb3AgInNldCBjdHNfJHZhciBcIiRjdHMoJHZhcilcIiIKLSAgICAgICAgIH0KLSAgICAgICAgIGZvcmVhY2ggdmFyIFthcnJheSBuYW1lcyBkZWxheWNhbF0gewotICAgICAgICAgICAgcHV0cyAkb3AgInNldCBkZWxheWNhbF8kdmFyIFwiJGRlbGF5Y2FsKCR2YXIpXCIiCi0gICAgICAgICB9Ci0gICAgICAgICBmb3JlYWNoIHZhciBbYXJyYXkgbmFtZXMgZXh0cmFjdF0gewotICAgICAgICAgICAgcHV0cyAkb3AgInNldCBleHRyYWN0XyR2YXIgXCIkZXh0cmFjdCgkdmFyKVwiIgotICAgICAgICAgfQotIyAgICAgICAgIGZvcmVhY2ggdmFyIFthcnJheSBuYW1lcyBmcF0gewotIyAgICAgICAgICAgIHB1dHMgJG9wICJzZXQgZnBfJHZhciBceyRmcCgkdmFyKVx9IgotIyAgICAgICAgIH0KLSAgICAgICAgIGZvcmVhY2ggdmFyIFthcnJheSBuYW1lcyBvcHRdIHsKLSAgICAgICAgICAgIHB1dHMgJG9wICJzZXQgb3B0XyR2YXIgXCIkb3B0KCR2YXIpXCIiCi0gICAgICAgICB9Ci0jICAgICAgICAgZm9yZWFjaCB2YXIgW2FycmF5IG5hbWVzIHJkYV9JbnB1dF0gewotIyAgICAgICAgICAgIHB1dHMgJG9wICJzZXQgcmRhX0lucHV0KCR2YXIpIFx7JHJkYV9JbnB1dCgkdmFyKVx9IgotIyAgICAgICAgIH0KLSMgICAgICAgICBmb3JlYWNoIHZhciBbYXJyYXkgbmFtZXMgcmRhX2RlZmF1bHRzXSB7Ci0jICAgICAgICAgICAgcHV0cyAkb3AgInNldCByZGFfSW5wdXQoJHZhcikgXHskdmFycygkdmFyKVx9IgotIyAgICAgICAgIH0KLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgICBzZXQgb3AgW29wZW4gJHZhcnMoc2NyaXB0X2RpcikvcnVuLmNvbmYgd10KLSAgICAgICAgICNCQ0w6IEFkZGVkIC5mZi50Y2wgc291cmNpbmcgaW4gcnVuLmNvbmYgaW4gb3JkZXIgdG8gcHVsbCBpbiBjb2RlZ2VuIHZhcmlhYmxlcwotICAgICAgICAgcHV0cyAkb3AgIiMgU2V0IHVwIGNvZGVnZW4gdmFyaWFibGVzIChwb3NzaWJseSkgbmVlZGVkIHRvIHJlc29sdmUgc29tZSBjb25mIHZhcmlhYmxlcyIKLSAgICAgICAgICNwdXRzICRvcCAiaWYge1xbZmlsZSBleGlzdHMgLmZmLnRjbFxdfSB7IgotICAgICAgICAgI3B1dHMgJG9wICIgIHNvdXJjZSAuZmYudGNsIgotICAgICAgICAgI3B1dHMgJG9wICJ9IgotICAgICAgICAgI0JDTDogT25seSBlbmNsb3NlIGluIGN1cmxpZXMgaWYgc3Vic3QgaXMgbm90IHBhcnQgb2YgdGhlIG5ldGxpc3QgbmFtZQotICAgICAgICAgZm9yZWFjaCB2YXIgW2FycmF5IG5hbWVzIHJkYV9JbnB1dF0gewotICAgICAgICAgICAjIEJDTDogb25seSB1c2UgY3VybGllcyBpZiB0aGUgdmFyaWFibGUgZG9lc24ndCBjb250YWluIHN1YnN0IChvdGhlcndpc2Ugc3Vic3Qgd2lsbCBub3QgYmUgcGVyZm9ybWVkKQotICAgICAgICAgICBpZiB7W3JlZ2V4cCB7c3Vic3R9ICRyZGFfSW5wdXQoJHZhcildfSB7Ci0gICAgICAgICAgICAgcHV0cyAkb3AgInNldCByZGFfSW5wdXQoJHZhcikgXCIkcmRhX0lucHV0KCR2YXIpXCIiCi0gICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgcHV0cyAkb3AgInNldCByZGFfSW5wdXQoJHZhcikgXHskcmRhX0lucHV0KCR2YXIpXH0iCi0gICAgICAgICAgIH0KLSAgICAgICAgIH0KLSMgICAgICAgICBpZiB7JHZhcnMoZmxhdCkgIT0gImZ1bGwifSB7Ci0jICAgICAgICAgICAgcHV0cyAkb3AgInNldCByZGFfSW5wdXQodWlfdmlld19kZWZpbml0aW9uX2ZpbGUpIFwiJHZhcnMoc2NyaXB0X2Rpcikvdmlld19kZWZpbml0aW9uLnRjbFwiIgotIyAgICAgICAgIH0KLSAgICAgIH0KLSAgICAgIGNsb3NlICRvcAotIyAgICAgIGNsb3NlICRucAotICAgfQotCi0gICBwcm9jIGdldF9yZXF1aXJlZF9wcm9jcyB7ZmlsZX0gewotICAgICAgIwotICAgICAgIyBHaXZlbiBhIGxpc3Qgb2YgcmVxdWlyZWQgcHJvY2VkdXJlcywgcmV0dXJuIHRoZSBsaW5lcyB0aGF0IHJlcHJlc2VudAotICAgICAgIyB0aG9zZSBwcm9jZWR1cmVzIGZyb20gdGhlIHV0aWxzLnRjbCBmaWxlCi0gICAgICAjCi0KLSAgICAgIGdsb2JhbCB2YXJzCi0gICAgICBnbG9iYWwgZXJyb3JzCi0KLSAgICAgICMKLSAgICAgICMgUmVhZCB0aGUgZmlsZSBhbmQgZ2F0aGVyIGFsbCBvZiB0aGUgY29udGVudHMKLSAgICAgICMKLQotICAgICAgc2V0IGFsbF9saW5lcyAiIgotICAgICAgc2V0IGxlbmd0aCAwCi0gICAgICBzZXQgaXAgW29wZW4gJGZpbGVdCi0gICAgICB3aGlsZSB7W2dldHMgJGlwIGxpbmVdPj0wfSB7Ci0gICAgICAgICBzZXQgdXRpbHNfbGluZXMoJGxlbmd0aCkgJGxpbmUKLSAgICAgICAgIGluY3IgbGVuZ3RoCi0gICAgICB9Ci0gICAgICBjbG9zZSAkaXAKLQotICAgICAgIwotICAgICAgIyBJdGVyYXRlIGFjcm9zcyBlYWNoIGxpbmUgYW5kIHB1bGwgb3V0IHJlbGV2YW50IHByb2NlZHVyZXMKLSAgICAgICMKLQotICAgICAgc2V0IGxpbmVzICIiCi0gICAgICBzZXQgaSAwCi0gICAgICB3aGlsZSB7JGkgPCAkbGVuZ3RofSB7Ci0gICAgICAgICBzZXQgbGluZSAkdXRpbHNfbGluZXMoJGkpCi0gICAgICAgICBmb3JlYWNoIHByb2MgJHZhcnMocmVxdWlyZWRfcHJvY3MpIHsKLSAgICAgICAgICAgIGlmIHtbcmVnZXhwICJwcm9jICRwcm9jIiAkbGluZV0gPiAwfSB7Ci0gICAgICAgICAgICAgICBhcHBlbmQgbGluZXMgIiAkbGluZVxuIgotICAgICAgICAgICAgICAgaW5jciBpCi0gICAgICAgICAgICAgICB3aGlsZSB7JGkgPCAkbGVuZ3RofSB7Ci0gICAgICAgICAgICAgICAgICBzZXQgbGluZSAkdXRpbHNfbGluZXMoJGkpCi0gICAgICAgICAgICAgICAgICBpZiB7W3JlZ2V4cCAicHJvYyAiICRsaW5lXSA+IDB9IHsKLSAgICAgICAgICAgICAgICAgICAgIGluY3IgaSAtMQotICAgICAgICAgICAgICAgICAgICAgYnJlYWsKLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIGlmIHshW3JlZ2V4cCAiXiMiIFtzdHJpbmcgdHJpbWxlZnQgJGxpbmVdIF0gJiYgKCRpICE9IFtleHByICRsZW5ndGgtMV0pfSB7Ci0gICAgICAgICAgICAgICAgICAgICBhcHBlbmQgbGluZXMgIiRsaW5lXG4iCi0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICBpbmNyIGkKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIGJyZWFrCi0gICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0gICAgICAgICBpbmNyIGkKLSAgICAgIH0KLQotICAgICAgc2V0IGxpbmVzIFtzdHJpbmcgdHJpbXJpZ2h0ICRsaW5lc10KLSAgICAgIHJldHVybiAiJGxpbmVzXG4iCi0gICB9Ci0KLSAgIHByb2Mgbm9ybWFsaXplX2ZpbGVzIHt9IHsKLQotICAgICAgZ2xvYmFsIHZhcnMKLSAgICAgIGdsb2JhbCBlcnJvcnMKLQotICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKG5vcm1hbGl6ZV9maWxlcyldICYmICEkdmFycyhub3JtYWxpemVfZmlsZXMpfSB7Ci0gICAgICAgICByZXR1cm4KLSAgICAgIH0KLQotICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKHZpZXdfZGVmaW5pdGlvbl90Y2wpXX0gewotICAgICAgICAgc2V0IG1tbWNfZmlsZSBbZmlsZSBub3JtYWxpemUgJHZhcnModmlld19kZWZpbml0aW9uX3RjbCldCi0gICAgICB9IGVsc2UgewotICAgICAgICAgc2V0IG1tbWNfZmlsZSBbZmlsZSBub3JtYWxpemUgJHZhcnMoc2NyaXB0X2Rpcikvdmlld19kZWZpbml0aW9uLnRjbF0KLSAgICAgIH0KLSAgICAgIHNldCB2YXJzKG1tbWNfZmlsZSkgJG1tbWNfZmlsZQotCi0gICAgICBmb3JlYWNoIGZpbGVfdmFyIFtsaXN0IGNwZl9maWxlIGRlZl9maWxlcyBuZXRsaXN0IGN0c19zcGVjIGxlZl9maWxlcyBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgZ2RzX2ZpbGVzIGFjdGl2aXR5X2ZpbGUgaWxtX25vbl9zZGNfZmlsZSBdIHsKLSAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkZmlsZV92YXIpXX0gewotICAgICAgICAgICAgc2V0IHRlbXAgW2xpc3RdCi0gICAgICAgICAgICBmb3JlYWNoIGZpbGUgJHZhcnMoJGZpbGVfdmFyKSB7ICAKLSAgICAgICAgICAgICAgIGxhcHBlbmQgdGVtcCBbZmlsZSBub3JtYWxpemUgJGZpbGVdCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBzZXQgdmFycygkZmlsZV92YXIpICR0ZW1wCi0gICAgICAgICB9Ci0gICAgICB9Ci0gICB9Ci0KLSAgIHByb2Mgbm9ybWFsaXplX2NvbnN0cmFpbnRzIHt9IHsKLQotICAgICAgZ2xvYmFsIHZhcnMKLQotICAgICAgc2V0IGN3ZCBbcHdkXQotICAgICAgY2QgJHZhcnMoY3dkKQotCi0gICAgICBmb3JlYWNoIG1vZGUgJHZhcnMoY29uc3RyYWludF9tb2RlcykgewotICAgICAgICAgZm9yZWFjaCB2YXIgInByZV9jdHNfc2RjIHByZV9jdHNfaWxtX3NkYyBpbmNyX2N0c19zZGMgcG9zdF9jdHNfc2RjIiB7Ci0gICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJG1vZGUsJHZhcildfSB7Ci0gICAgICAgICAgICAgICAgICBzZXQgdGVtcCBbbGlzdF0KLSAgICAgICAgICAgICAgIGZvcmVhY2ggZmlsZSAkdmFycygkbW9kZSwkdmFyKSB7Ci0gICAgICAgICAgICAgICAgICBsYXBwZW5kIHRlbXAgW2ZpbGUgbm9ybWFsaXplICRmaWxlXQotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgc2V0IHZhcnMoJG1vZGUsJHZhcikgJHRlbXAKLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0KLSAgICAgIH0KLSAgICAgIGNkICRjd2QKLSAgIH0KLQotICAgcHJvYyBkZW5vcm1hbGl6ZV9maWxlcyB7fSB7Ci0gICAKLSAgICAgIGdsb2JhbCB2YXJzCi0gICAgICBnbG9iYWwgdHZhcnMKLSAgIAotICAgICAgZm9yZWFjaCB2YXIgW2FycmF5IG5hbWVzIHZhcnNdIHsKLSAgICAgICAgIGlmIHsoJHZhciAhPSAic2V0dXBfcGF0aCIpICYmICgkdmFyICE9ICJzY3JpcHRfZGlyIikgJiYgKCR2YXIgIT0gInNjcmlwdF9wYXRoIikgJiYgKCR2YXIgPT0gImV4ZWN1dGVfc3RyaW5nIil9IHsKLSAgICAgICAgICAgIHNldCB0dmFycygkdmFyKSAkdmFycygkdmFyKQotICAgICAgICAgfQotICAgICAgfQotCi0jICAgICAgc2V0IG9wIFtvcGVuIC5zZXR1cC5mZi50Y2wgd10KLSAgICAgIGNhdGNoIHt1bnNldCBwYXRoX2FycmF5fQotICAgICAgc2V0IHBhdGhfbGlzdCBbbGlzdF0KLSAgICAgIHNldCBwYXRoX3ZhcnMgW2xpc3RdCi0gICAgICBmb3JlYWNoIHZhciBbYXJyYXkgbmFtZXMgdHZhcnNdIHsKLSAgICAgICAgIGlmIFtmaWxlIGlzZGlyZWN0b3J5ICR0dmFycygkdmFyKV0gewotICAgICAgICAgICAgc2V0IHBhdGhfYXJyYXkoJHR2YXJzKCR2YXIpKSAkdmFyCi0gICAgICAgICAgICBsYXBwZW5kIHBhdGhfdmFycyAkdmFyCi0gICAgICAgICAgICBsYXBwZW5kIHBhdGhfbGlzdCAkdHZhcnMoJHZhcikgIAotICAgICAgICAgfQotICAgICAgfQotICAgICAgCi0gICAgICBzZXQgc29ydGVkX3BhdGhfbGlzdCBbbHNvcnQgLWRlY3JlYXNpbmcgJHBhdGhfbGlzdF0KLSMgICAgICBwdXRzICItPiBGb3VuZCBbbGxlbmd0aCAkc29ydGVkX3BhdGhfbGlzdF0iCi0gICAgICBmb3JlYWNoIHBhdGggJHNvcnRlZF9wYXRoX2xpc3QgewotIyAgICAgICAgIHB1dHMgIiRwYXRoIC0+ICRwYXRoX2FycmF5KCRwYXRoKSAoW3N0cmluZyBsZW5ndGggJHBhdGhdKSIKLSMgICAgICAgICBwdXRzICRvcCAic2V0IHZhcnMoJHBhdGhfYXJyYXkoJHBhdGgpKSAkcGF0aCIKLSAgICAgIH0KLSAgICAgIAotICAgICAgZm9yZWFjaCB2YXIgW2FycmF5IG5hbWVzIHR2YXJzXSB7Ci0gICAgICAgICBzZXQgZm91bmQgMAotICAgICAgICAgZm9yZWFjaCBwYXRoICRzb3J0ZWRfcGF0aF9saXN0IHsKLSAgICAgICAgICAgICBpZiB7KCR2YXIgPT0gJHBhdGhfYXJyYXkoJHBhdGgpKSB8fCAoW3N0cmluZyBmaXJzdCAiXFsiICAkdmFyXSAhPSAtMSl9IHsKLSAgICAgICAgICAgICAgICBicmVhawotICAgICAgICAgICAgIH0KLSAgICAgICMgICAgICBwdXRzICRvcCAiW2Zvcm1hdCAicmVnc3ViIC1hbGwgXCIlc1wiIFwiJXNcIiBcXCQlcyIgJHBhdGggW2pvaW4gJHR2YXJzKCR2YXIpXSAkcGF0aF9hcnJheSgkcGF0aCkgdGVtcF0iCi0gICAgICAgICAgICBpZiB7W2NhdGNoIHtzZXQgY29tbWFuZCBbZm9ybWF0ICJyZWdzdWIgLWFsbCBcIiVzXCIgXCIlc1wiIFxcXCR2YXJzKCVzKSB0ZW1wIiAkcGF0aCBbam9pbiAkdHZhcnMoJHZhcildICRwYXRoX2FycmF5KCRwYXRoKV19XX0gewotICAgICAgICAgICAgICAgYnJlYWsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHNldCBmb28gW2V2YWwgJGNvbW1hbmRdCi0gICAgICAgICAgICBpZiB7JGZvbyA+IDB9IHsKLSMgICAgICAgICAgICAgICBwdXRzICRvcCAic2V0IHZhcnMoJHZhcikgXCJbam9pbiAkdGVtcF1cIiIKLSAgICAgICAgICAgICAgIGlmIHtbbGxlbmd0aCAkdGVtcF0gPiAxfSB7Ci0gICAgICAgICAgICAgICAgICBzZXQgdmFycygkdmFyKSBbam9pbiAkdGVtcF0KLSAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICBzZXQgdmFycygkdmFyKSAkdGVtcAotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgc2V0IGZvdW5kIDEKLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0KLSMgICAgICAgICBpZiB7ISRmb3VuZH0gewotIyAgICAgICAgICAgIHB1dHMgJG9wICJzZXQgdmFycygkdmFyKSBcIltqb2luICR2YXJzKCR2YXIpXVwiIgotIyAgICAgICAgIH0KLSAgICAgIH0KLSMgICAgICBmb3JlYWNoIHBhdGggJHNvcnRlZF9wYXRoX2xpc3QgewotIyAgICAgICAgIHNldCB2YXJzKCRwYXRoX2FycmF5KCRwYXRoKSkgJHBhdGgKLSMgICAgICB9Ci0jICAgICAgY2xvc2UgJG9wCi0jICAgICAgc291cmNlIC5zZXR1cC5mZi50Y2wgCi0gICB9Ci0KLSAgIHByb2Mgc291cmNlX2NvbmZpZ19maWxlcyB7fSB7Ci0KLSAgICAgIGdsb2JhbCB2YXJzCi0gICAgICBnbG9iYWwgZW52Ci0gICAgICBnbG9iYWwgdXNlcl92YXJzCi0gICAgICBnbG9iYWwgZGVzYwotICAgICAgZ2xvYmFsIGVycm9ycwotCi0gICAgICBwdXRzICI8RkY+IExPQURJTkcgQ09ORklHVVJBVElPTiBGSUxFUzoiCi0gICAgICBzZXQgdmFycyhjb25maWdfZmlsZXMpIFtsaXN0XQotICAgICAgZm9yZWFjaCBmaWxlICJzZXR1cC50Y2wgaW5ub3Z1c19jb25maWcudGNsIGxwX2NvbmZpZy50Y2wgZ2VudXNfY29uZmlnLnRjbCIgewotICAgICAgICAgc2V0IHRlbXAgW3JlZ3N1YiAiXFwuIiAkZmlsZSAiXyJdCi0gICAgICAgICBzZXQgdmFycygkdGVtcCkgW2xpc3RdIAotICAgICAgICAgaWYge1tmaWxlIGV4aXN0cyAkdmFycyhzZXR1cF9wYXRoKS8kZmlsZV19IHsKLSAgICAgICAgICAgIEZGOjpzb3VyY2VfZmlsZSAkdmFycyhzZXR1cF9wYXRoKS8kZmlsZQotICAgICAgICAgICAgbGFwcGVuZCB2YXJzKCR0ZW1wKSAkdmFycyhzZXR1cF9wYXRoKS8kZmlsZQotICAgICAgICAgICAgbGFwcGVuZCB2YXJzKGNvbmZpZ19maWxlcykgJHZhcnMoc2V0dXBfcGF0aCkvJGZpbGUKLSAgICAgICAgIH0KLSAgICAgICAgIGlmIHsoJHZhcnMoc2V0dXBfcGF0aCkgIT0gIi4iKSAmJiBbZmlsZSBleGlzdHMgJGZpbGVdfSB7Ci0gICAgICAgICAgICBGRjo6c291cmNlX2ZpbGUgJGZpbGUKLSAgICAgICAgICAgIGxhcHBlbmQgdmFycygkdGVtcCkgJGZpbGUKLSAgICAgICAgICAgIGxhcHBlbmQgdmFycyhjb25maWdfZmlsZXMpICRmaWxlCi0gICAgICAgICB9Ci0gICAgICAgICBpZiB7JHZhcnMoJHRlbXApICE9ICIifSB7Ci0gICAgICAgICAgICBwdXRzICI8RkY+ICAgICR0ZW1wIC0+ICR2YXJzKCR0ZW1wKSIKLSAgICAgICAgIH0KLSAgICAgIH0KLQotICAgICAgZm9yZWFjaCB2YXIgW2FycmF5IG5hbWVzIHZhcnNdIHsKLSAgICAgICAgIHNldCB1c2VyX3ZhcnMoJHZhcikgJHZhcnMoJHZhcikKLSMgICAgICAgICBwdXRzICR2YXIKLSAgICAgIH0KLQotICAgICAgaWYge1tGRjo6aXNfbHBfZmxvd119IHsKLSAgICAgICAgIHNldCB2YXJzKHJlcXVpcmVkX3Byb2NzKSBcCi0gICAgICAgICAgICAic291cmNlX2ZpbGUgc3lzdGVtX2luZm8gZ2V0X2Nsb2NrX3BvcnRzIGdldF9wb3dlcl9kb21haW5zIG1vZGlmeV9wb3dlcl9kb21haW5zIGFkZF9wb3dlcl9zd2l0Y2hlcyBcCi0gICAgICAgICAgICAgcm91dGVfc2Vjb25kYXJ5X3BnX25ldHMgaW5zZXJ0X3dlbGx0YXBzX2VuZGNhcHMgcmVwb3J0X3RpbWUgYnVmZmVyX2Fsd2F5c19vbl9uZXRzIFwKLSAgICAgICAgICAgICBzYXZlX3Jlc3VsdHMgbG9hZF9hcHBsZXQgZ2V0X3Rvb2wgbG9hZF9wYXRoX2dyb3VwcyIKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgICBzZXQgdmFycyhyZXF1aXJlZF9wcm9jcykgXAotICAgICAgICAgICAgInNvdXJjZV9maWxlIHN5c3RlbV9pbmZvIGdldF9jbG9ja19wb3J0cyByZXBvcnRfdGltZSBpbnNlcnRfd2VsbHRhcHNfZW5kY2FwcyBcCi0gICAgICAgICAgICAgc2F2ZV9yZXN1bHRzIGxvYWRfYXBwbGV0IGdldF90b29sIGxvYWRfcGF0aF9ncm91cHMgIgotICAgICAgfQotICAgfQotCi0gICBwcm9jIGV4ZWN1dGVfZmxvdyB7c3RlcCB7Zm9ybWF0IDF9IHthYm9ydCAiIn19IHsKLQotICAgICAgIwotICAgICAgIyBUaGlzIGlzIHRoZSBlbnRyeSBwb2ludCwgcmVzcG9uc2libGUgZm9yIGNhbGxpbmcgZnVuY3Rpb25zIGFuZAotICAgICAgIyBhZ2dyZWdhdGluZyByZXN1bHRzIGZvciBlYWNoIHN0ZXAgaW4gdGhlIGZsb3cKLSAgICAgICMKLSAgICAgIGdsb2JhbCB2YXJzCi0gICAgICBnbG9iYWwgZGFyZ3MKLSAgICAgIGdsb2JhbCBmYXJncwotICAgICAgZ2xvYmFsIHN2YXJzCi0gICAgICBnbG9iYWwgZW52Ci0gICAgICBnbG9iYWwgZXJyb3JzCi0KLSAgICAgIGlmIHshW2luZm8gZXhpc3RzIHZhcnMoc291cmNlZCldfSB7IHNldCB2YXJzKHNvdXJjZWQpIDAgfQotIyAgICAgIGlmIHshW2luZm8gZXhpc3RzIHZhcnMoc2luZ2xlKV19IHsgc2V0IHZhcnMoc2luZ2xlKSAwIH0KLSAgICAgIGlmIHshW2luZm8gZXhpc3RzIHZhcnMoY2F0Y2hfZXJyb3JzKV19IHsgc2V0IHZhcnMoY2F0Y2hfZXJyb3JzKSAwIH0KLSAgICAgIGlmIHshW2luZm8gZXhpc3RzIHZhcnMoc3RvcF9zdGVwKV19IHsgc2V0IHZhcnMoc3RvcF9zdGVwKSAic2lnbm9mZiIgfQotICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycyhpbml0aWFsaXplZCldfSB7IHNldCB2YXJzKGluaXRpYWxpemVkKSAwIH0KLSAgICAgIGlmIHshW2luZm8gZXhpc3RzIHZhcnMobG9hZGVkKV19IHsgc2V0IHZhcnMobG9hZGVkKSAwIH0KLSAgICAgIGlmIHshW2luZm8gZXhpc3RzIHZhcnMoYnN0ZXBzKV19IHsgc2V0IHZhcnMoYnN0ZXBzKSBbbGlzdF0gfQotICAgICAgaWYgeyFbaW5mbyBleGlzdHMgZW52KFZQQVRIKV19IHsgc2V0IGVudihWUEFUSCkgbWFrZSB9Ci0KLSAgICAgICMKLSAgICAgICMgSWYgbm8gc3RlcHMgYXJlIGRlZmluZWQsIHNldCB0aGUgc3RlcHMgdG8gZXhlY3V0ZSBiYXNlZCB1cG9uIHRoZQotICAgICAgIyBtb2RlIHRoYXQgdGhlIHN5c3RlbSBpcyBydW5uaW5nIGluLiAgV2UgbmVlZCB0byBkbyB0aGlzIGJlY2F1c2UgdGhlCi0gICAgICAjIGhpZXJhcmNoaWNhbCBmbG93IHdpbGwgdW5zZXQgdGhlIHZhcnMoKSBhcnJheSBiZWZvcmUgcmVjdXJzaXZlbHkKLSAgICAgICMgY2FsbGluZyB0aGlzIHJvdXRpbmUuCi0gICAgICAjCi0KLSAgICAgIGlmIHshW2luZm8gZXhpc3RzIHZhcnMoc3RlcHMpXX0gewotICAgICAgICAgIyBCQ0w6IE1vdmVkIHRoZSBmb2xsb3dpbmcgaWYgLyBlbHNlIHVwIChpdCBtdXN0IGFsd2F5cyBleGVjdXRlKQotICAgICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycyhtb2RlKV19IHsgCi0gICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIGZhcmdzKG1vZGUpXX0gewotICAgICAgICAgICAgICAgc2V0IHZhcnMobW9kZSkgJGZhcmdzKG1vZGUpCi0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgc2V0IHZhcnMobW9kZSkgJGRhcmdzKG1vZGUpCi0gICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0jICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGhpZXIpXSAmJiAhJHZhcnMoaGllcil9IHsKLSMgICAgICAgICAgICBGRjo6c2V0X3N0ZXBzICR2YXJzKG1vZGUpICRmb3JtYXQKLSMgICAgICAgICAgICB1bnNldCB2YXJzKG1vZGUpCi0jICAgICAgICAgfSBlbHNlIHsKLSMgICAgICAgICAgICBGRjo6c2V0X3N0ZXBzICR2YXJzKG1vZGUpICRmb3JtYXQKLSMgICAgICAgICB9Ci0gICAgICB9Ci0KLSAgICAgICMKLSAgICAgICMgU2V0IHRoZSBwcm9jZWR1cmVzIHRoYXQgd2Ugd2lsbCBuZWVkIHRvIGluY2x1ZGUgd2l0aGluIGVhY2ggZmlsZSB0aGF0Ci0gICAgICAjIHdlIGNyZWF0ZSB0byBydW4gYSBzdGVwLgotICAgICAgIwotCi0jICAgICAgc2V0IHZhcnMocmVxdWlyZWRfcHJvY3MpIFwKLSMgICAgICAgICAic291cmNlX3BsdWcgZ2V0X2Nsb2NrX3BvcnRzIGdldF9wb3dlcl9kb21haW5zIHJlcG9ydF90aW1lIgotCi0gICAgICAjCi0gICAgICAjIE1ha2Ugc3VyZSB0aGF0IHRoZSB2YXJpYWJsZXMgYXJlIGFjdHVhbGx5IHNvdXJjZWQgZnJvbSB0aGUKLSAgICAgICMgY29uZmlndXJhdGlvbiBmaWxlcwotICAgICAgIwotCi0gICAgICBpZiB7ISR2YXJzKHNvdXJjZWQpICYmICgkc3RlcCAhPSAic291cmNlIil9IHsKLSAgICAgICAgIGV4ZWN1dGVfZmxvdyAic291cmNlIiAkZm9ybWF0ICRhYm9ydAotICAgICAgfQotCi0gICAgICBpZiB7JHZhcnMoc291cmNlZCl9IHsgCi0gICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoaGllcildICYmICEkdmFycyhoaWVyKX0gewotICAgICAgICAgICAgRkY6OnNldF9zdGVwcyAkdmFycyhtb2RlKSAkZm9ybWF0Ci0gICAgICAgICAgICB1bnNldCB2YXJzKG1vZGUpCi0gICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgRkY6OnNldF9zdGVwcyAkdmFycyhtb2RlKSAkZm9ybWF0Ci0gICAgICAgICB9Ci0gICAgICB9Ci0gICAgICAjCi0gICAgICAjIEV4ZWN1dGUgdGhlIGFwcHJvcHJpYXRlIHN0ZXAgcGVyIHRoZSBjb21tYW5kCi0gICAgICAjCi0KLSAgICAgIHNldCBhY3Rpb24gIiIKLSAgICAgIHN3aXRjaCAtLSAkc3RlcCB7Ci0gICAgICAgICAic291cmNlIiB7Ci0gICAgICAgICAgICBpZiB7ISR2YXJzKHNvdXJjZWQpfSB7Ci0gICAgICAgICAgICAgICBGRl9FREk6OnNvdXJjZV9jb25maWdfZmlsZXMKLSAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgZmFyZ3ModmVyc2lvbildfSB7Ci0gICAgICAgICAgICAgICAgICBpZiB7IVtyZWdleHAgIl4xMCIgJGZhcmdzKHZlcnNpb24pXSAmJiAhW3JlZ2V4cCAiXjkiICRmYXJncyh2ZXJzaW9uKV19IHsKLSAgICAgICAgICAgICAgICAgICAgIEZGX0VESTo6ZGVub3JtYWxpemVfZmlsZXMKLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIH0gZWxzZWlmIHtbaW5mbyBleGlzdHMgZGFyZ3ModmVyc2lvbildfSB7Ci0gICAgICAgICAgICAgICAgICBpZiB7IVtyZWdleHAgIl4xMCIgJGRhcmdzKHZlcnNpb24pXSAmJiAhW3JlZ2V4cCAiXjkiICRkYXJncyh2ZXJzaW9uKV19IHsKLSAgICAgICAgICAgICAgICAgICAgIEZGX0VESTo6ZGVub3JtYWxpemVfZmlsZXMKLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIGZvcmVhY2ggYXJnIFtqb2luICR2YXJzKGFyZ19saXN0KV0gewotICAgICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKCRhcmcpXX0gewotICAgICAgICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyBmYXJncygkYXJnKV19IHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIHskdmFycygkYXJnKSAhPSAkZmFyZ3MoJGFyZyl9IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1dHMgIjxGRj4gV0FSTklORzogT3ZlcndyaXRpbmcgdmFycygkYXJnKSBmcm9tICR2YXJzKCRhcmcpIHRvICRmYXJncygkYXJnKSAuLi4iCi0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICBzZXQgdmFycygkYXJnKSAkZmFyZ3MoJGFyZykKLSAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAjIE9ubHkgc2V0IHRoZSBmYXJnIGlmIGl0IHdhc24ndCBzZXQgaW4gYSBjb25maWcgZmlsZQotICAgICAgICAgICAgICAgICAgICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycygkYXJnKV19IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0IHZhcnMoJGFyZykgJGRhcmdzKCRhcmcpCi0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyBmYXJncygkYXJnKV19IHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHNldCB2YXJzKCRhcmcpICRmYXJncygkYXJnKQotICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHNldCB2YXJzKCRhcmcpICRkYXJncygkYXJnKQotICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgfSAKLSAgICAgICAgICAgICAgIH0gCi0gICAgICAgICAgICAgICBGRl9FREk6OnNlZWRfdmFyaWFibGVzCi0jICAgICAgICAgICAgICAgRkZfRURJOjpjaGVja19zZXR1cAotIyAgICAgICAgICAgICAgIEZGX0VESTo6bm9ybWFsaXplX2ZpbGVzIAotICAgICAgICAgICAgICAgc2V0IHZhcnMoc291cmNlZCkgdHJ1ZQotICAgICAgICAgICAgICAgc2V0IHZhcnModG9wX2NlbGwpICR2YXJzKGRlc2lnbikKLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0KLSAgICAgICAgICJzb3VyY2Vfb25seSIgewotICAgICAgICAgICAgIyBCQ0w6IEFkZGVkIHRoaXMgaW4gc2luY2UgaSB3YW50IHRvIHNvdXJjZSB0aGUgdmFyaWFibGVzIHcvb3V0IGNhbGxpbmcgY2hlY2tfc2V0dXAKLSAgICAgICAgICAgIGlmIHshJHZhcnMoc291cmNlZCl9IHsKLSAgICAgICAgICAgICAgIEZGX0VESTo6c291cmNlX2NvbmZpZ19maWxlcwotICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyBmYXJncyh2ZXJzaW9uKV19IHsKLSAgICAgICAgICAgICAgICAgIGlmIHshW3JlZ2V4cCAiXjEwIiAkZmFyZ3ModmVyc2lvbildICYmICFbcmVnZXhwICJeOSIgJGZhcmdzKHZlcnNpb24pXX0gewotICAgICAgICAgICAgICAgICAgICAgRkZfRURJOjpkZW5vcm1hbGl6ZV9maWxlcwotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgfSBlbHNlaWYge1tpbmZvIGV4aXN0cyBkYXJncyh2ZXJzaW9uKV19IHsKLSAgICAgICAgICAgICAgICAgIGlmIHshW3JlZ2V4cCAiXjEwIiAkZGFyZ3ModmVyc2lvbildICYmICFbcmVnZXhwICJeOSIgJGRhcmdzKHZlcnNpb24pXX0gewotICAgICAgICAgICAgICAgICAgICAgRkZfRURJOjpkZW5vcm1hbGl6ZV9maWxlcwotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgZm9yZWFjaCBhcmcgW2pvaW4gJHZhcnMoYXJnX2xpc3QpXSB7Ci0gICAgICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJGFyZyldfSB7Ci0gICAgICAgICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIGZhcmdzKCRhcmcpXX0gewotICAgICAgICAgICAgICAgICAgICAgICAgaWYgeyR2YXJzKCRhcmcpICE9ICRmYXJncygkYXJnKX0gewotICAgICAgICAgICAgICAgICAgICAgICAgICAgcHV0cyAiPEZGPiBXQVJOSU5HOiBPdmVyd3JpdGluZyB2YXJzKCRhcmcpIGZyb20gJHZhcnMoJGFyZykgdG8gJGZhcmdzKCRhcmcpIC4uLiIKLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgIHNldCB2YXJzKCRhcmcpICRmYXJncygkYXJnKQotICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICMgT25seSBzZXQgdGhlIGZhcmcgaWYgaXQgd2Fzbid0IHNldCBpbiBhIGNvbmZpZyBmaWxlCi0gICAgICAgICAgICAgICAgICAgICAgICBpZiB7IVtpbmZvIGV4aXN0cyB2YXJzKCRhcmcpXX0gewotICAgICAgICAgICAgICAgICAgICAgICAgICBzZXQgdmFycygkYXJnKSAkZGFyZ3MoJGFyZykKLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIGZhcmdzKCRhcmcpXX0gewotICAgICAgICAgICAgICAgICAgICAgICAgc2V0IHZhcnMoJGFyZykgJGZhcmdzKCRhcmcpCi0gICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICAgc2V0IHZhcnMoJGFyZykgJGRhcmdzKCRhcmcpCi0gICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICB9IAotICAgICAgICAgICAgICAgfSAKLSAgICAgICAgICAgICAgIEZGX0VESTo6c2VlZF92YXJpYWJsZXMKLSMgICAgICAgICAgICAgICBGRl9FREk6OmNoZWNrX3NldHVwCi0jICAgICAgICAgICAgICAgRkZfRURJOjpub3JtYWxpemVfZmlsZXMgCi0jICAgICAgICAgICAgICAgc2V0IHZhcnMoc291cmNlZCkgdHJ1ZQotICAgICAgICAgICAgICAgc2V0IHZhcnModG9wX2NlbGwpICR2YXJzKGRlc2lnbikKLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0KLSAgICAgICAgICJjaGVjayIgewotICAgICAgICAgICAgaWYgeyRhYm9ydCA9PSAiIn0gewotICAgICAgICAgICAgICAgc2V0IGFib3J0ICR2YXJzKGFib3J0KQotICAgICAgICAgICAgfQotICAgICAgICAgICAgc2V0IHNhdmUgJHZhcnMoYWJvcnQpCi0gICAgICAgICAgICBzZXQgdmFycyhhYm9ydCkgJGFib3J0Ci0gICAgICAgICAgICBzZXQgdmFycyhhYm9ydCkgJHNhdmUKLSAgICAgICAgICAgIGlmIHshW2luZm8gZXhpc3RzIHZhcnMobW9kZSldfSB7Ci0gICAgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIGZhcmdzKG1vZGUpXX0gewotICAgICAgICAgICAgICAgICAgc2V0IHZhcnMobW9kZSkgJGZhcmdzKG1vZGUpCi0gICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgc2V0IHZhcnMobW9kZSkgJGRhcmdzKG1vZGUpCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiB7JHZhcnMobW9kZSkgPT0gImhpZXIifSB7Ci0gICAgICAgICAgICAgICBpZiB7IVtpbmZvIGV4aXN0cyB2YXJzKHBhcnRpdGlvbl9saXN0KV19IHsKLSAgICAgICAgICAgICAgICAgIHB1dHMgIjxGRj4gRkxPVyBNT0RFICR2YXJzKG1vZGUpIFNFTEVDVEVEIEJVVCBcJHZhcnMocGFydGl0aW9uX2xpc3QpIE5PVCBERUZJTkVEIgotICAgICAgICAgICAgICAgICAgZXhpdCA5OQotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgaWYge1tmaWxlIHRhaWwgW2ZpbGUgZGlybmFtZSBbcHdkXV1dICE9ICIkdmFycyhwYXJ0aXRpb25fZGlyKSJ9IHsKLSAgICAgICAgICAgICAgICAgIEZGX0VESTo6Y2hlY2tfc2V0dXAKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICBGRl9FREk6OmNoZWNrX3NldHVwCi0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIEZGOjpwcm9jZXNzX2ZpbGVfbGlzdHMKLSAgICAgICAgIH0KLQotICAgICAgICAgImFsbCIgewotCi0gICAgICAgICAgICAjCi0gICAgICAgICAgICAjIFdlIGhhdmUgYWxyZWFkeSBzb3VyY2VkIGluIGFsbCBvZiB0aGUgZmlsZXMuICBOb3cgZXhlY3V0ZSB0aGUKLSAgICAgICAgICAgICMgcmVzdCBvZiB0aGUgc3RlcHMsIGluY2x1ZGluZyBjaGVjawotICAgICAgICAgICAgIwotCi0gICAgICAgICAgICBwdXRzICItLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIgotICAgICAgICAgICAgcHV0cyAiPEZGPiBHZW5lcmF0aW5nIHNjcmlwdHMgZm9yICR2YXJzKGRlc2lnbikiCi0gICAgICAgICAgICBwdXRzICItLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIgotICAgICAgICAgICAgZXhlY3V0ZV9mbG93IGNoZWNrICRmb3JtYXQgJGFib3J0Ci0gICAgICAgICAgICAjIEJDTDogY2hhbmdlZCB0byBmaWxlIG1rZGlyCi0gICAgICAgICAgICBmaWxlIG1rZGlyICR2YXJzKHNjcmlwdF9kaXIpL0lOTk9WVVMKLQotICAgICAgICAgICAgc2V0IHZhcnMoc3RlcHMpIFtqb2luICR2YXJzKHN0ZXBzKV0KLSAgICAgICAgICAgIHNldCB2YXJzKGFsbCkgdHJ1ZQotICAgICAgICAgICAgc2V0IGNvbW1hbmRzICIiCi0gICAgICAgICAgICBzZXQgdG9wIDAKLQotICAgICAgICAgICAgaWYgeyR2YXJzKG1vZGUpID09ICJoaWVyIn0gewotICAgICAgICAgICAgICAgaWYge1tmaWxlIHRhaWwgW2ZpbGUgZGlybmFtZSBbcHdkXV1dID09ICIkdmFycyhwYXJ0aXRpb25fZGlyKSJ9IHsKLSAgICAgICAgICAgICAgICAgIHNldCBhbGxfc3RlcHMgJHZhcnMoZnN0ZXBzKQotICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgIHNldCBhbGxfc3RlcHMgJHZhcnMoaHN0ZXBzKQotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIHNldCBmaHIgW29wZW4gJHZhcnMoc2NyaXB0X3BhdGgpL0lOTk9WVVMvcnVuX2FsbC50Y2wgcl0gCi0gICAgICAgICAgICAgICBzZXQgZmh3IFtvcGVuICR2YXJzKHNjcmlwdF9kaXIpL0lOTk9WVVMvcnVuX2FsbC50Y2wgd10gCi0gICAgICAgICAgICAgICB3aGlsZSB7W2dldHMgJGZociBsaW5lXT49MH0gewotICAgICAgICAgICAgICAgICAgcmVnc3ViICJzb3VyY2UgRkYiICRsaW5lICJzb3VyY2UgJHZhcnMoc2NyaXB0X2RpcikiIGxpbmUKLSAgICAgICAgICAgICAgICAgIHB1dHMgJGZodyAiICAgJGxpbmUiCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICBjbG9zZSAkZmhyCi0gICAgICAgICAgICAgICBjbG9zZSAkZmh3Ci0gICAgICAgICAgICAgICBzZXQgYWxsX3N0ZXBzICR2YXJzKHN0ZXBzKQotICAgICAgICAgICAgfQotICAgICAgICAgICAgIwotICAgICAgICAgICAgIyBFeGVjdXRlIGVhY2ggc3RlcCBvZiB0aGUgZmxvdyBhbmQgZ2V0IGEgY29tcG9zaXRlIGxpc3Qgb2YgdGhlCi0gICAgICAgICAgICAjIGFjdHVhbCBzdGVwcyB0aGF0IGhhZCBhY3Rpb25zIGdlbmVyYXRlZCBmb3IgdGhlbS4gIFRoZW4gY3JlYXRlCi0gICAgICAgICAgICAjIGEgTWFrZWZpbGUgZm9yIHRob3NlIHN0ZXBzCi0gICAgICAgICAgICAjCi0gICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMocmNfc3RlcHMpXX0gewotICAgICAgICAgICAgICAgc2V0IGFjdGlvbnMgJHZhcnMocmNfc3RlcHMpCi0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICBzZXQgYWN0aW9ucyBbbGlzdF0KLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgICMgCi0KLSAgICAgICAgICAgIGZvcmVhY2ggc3RlcCAkYWxsX3N0ZXBzIHsKLSAgICAgICAgICAgICAgIHNldCBjb21tYW5kcyBbZXhlY3V0ZV9mbG93ICRzdGVwICRmb3JtYXQgJGFib3J0XQotICAgICAgICAgICAgICAgaWYgeyRjb21tYW5kcyAhPSAiIn0gewotICAgICAgICAgICAgICAgICAgIGxhcHBlbmQgYWN0aW9ucyAkY29tbWFuZHMKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgaWYgeygkdmFycyh1c2VyX21vZGUpID09ICJoaWVyIikgJiYgKCR2YXJzKGhpZXJfZmxvd190eXBlKSA9PSAiMnBhc3MiKX0gewotICAgICAgICAgICAgICAgIyBPbmx5IGdlbmVyYXRlIHN0ZXBzIHVwIHRvIChhbmQgaW5jbHVkaW5nKSBjdHMgZm9yIDJwYXNzIGZsb3dzCi0gICAgICAgICAgICAgICAjIEdvIGFoZWFkIGFuZCBnZW5lcmF0ZSBib3RoIE1ha2VmaWxlcyBhcyB0aGUgYWN0aW9ucyBhcmUga25vd24KLSAgICAgICAgICAgICAgIGlmIHskdmFycyhlbmFibGVfZmxleGlsbSl9IHsKLSAgICAgICAgICAgICAgICAgIGlmIHskdmFycyhwbGFjZV9vcHRfZGVzaWduKX0gewotIyAgICAgICAgICAgICAgICAgICAgIGlmIHtbZmlsZSB0YWlsIFtwd2RdXSA9PSAkdmFycyh0b3BfY2VsbCl9IHsKLSMgICAgICAgICAgICAgICAgICAgICAgICBzZXQgaW5kZXggW2xzZWFyY2ggJGFjdGlvbnMgInByZWN0cyJdCi0jICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHNldCBpbmRleCBbbHNlYXJjaCAkYWN0aW9ucyAicGxhY2UiXQotIyAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICBzZXQgaW5kZXggW2xzZWFyY2ggJGFjdGlvbnMgInByZWN0cyJdCi0gICAgICAgICAgICAgICAgICB9Ci0jcHV0cyAiMTogJGFjdGlvbnMgOiBbbHJhbmdlICRhY3Rpb25zIFtleHByICRpbmRleCsxXSBlbmRdIChbcHdkXSkiCi0gICAgICAgICAgICAgICAgICBGRjo6Z2VuX21ha2VmaWxlIFtscmFuZ2UgJGFjdGlvbnMgW2V4cHIgJGluZGV4KzFdIGVuZF0gJHZhcnMobW9kZSkKLSAgICAgICAgICAgICAgICAgIGZpbGUgY29weSAtZm9yY2UgTWFrZWZpbGUgTWFrZWZpbGUucGFzczIKLSAgICAgICAgICAgICAgICAgIGlmIHtbbGxlbmd0aCBbbHJhbmdlICRhY3Rpb25zIDAgJGluZGV4XV0gIT0gMH0geyAKLSNwdXRzICIyOiAkYWN0aW9ucyA6IFtscmFuZ2UgJGFjdGlvbnMgMCAkaW5kZXhdIChbcHdkXSkiCi0gICAgICAgICAgICAgICAgICAgICBGRjo6Z2VuX21ha2VmaWxlIFtscmFuZ2UgJGFjdGlvbnMgMCAkaW5kZXhdICR2YXJzKG1vZGUpCi0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgc2V0IGluZGV4IFtsc2VhcmNoICRhY3Rpb25zICJjdHMiXQotI3B1dHMgIjM6ICRhY3Rpb25zIDogW2xyYW5nZSAkYWN0aW9ucyBbZXhwciAkaW5kZXgrMV0gZW5kXSAoW3B3ZF0pIgotICAgICAgICAgICAgICAgICAgRkY6Omdlbl9tYWtlZmlsZSBbbHJhbmdlICRhY3Rpb25zIFtleHByICRpbmRleCsxXSBlbmRdICR2YXJzKG1vZGUpCi0gICAgICAgICAgICAgICAgICBpZiB7JHZhcnMobW9kZSkgIT0gImhpZXIifSB7IAotICAgICAgICAgICAgICAgICAgICAgZmlsZSBjb3B5IC1mb3JjZSBNYWtlZmlsZSBNYWtlZmlsZS5wYXNzMgotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgaWYge1tsbGVuZ3RoIFtscmFuZ2UgJGFjdGlvbnMgMCAkaW5kZXhdXSAhPSAwfSB7IAotI3B1dHMgIjQ6ICRhY3Rpb25zIDogW2xyYW5nZSAkYWN0aW9ucyAwICRpbmRleF0gKFtwd2RdKSIKLSAgICAgICAgICAgICAgICAgICAgIEZGOjpnZW5fbWFrZWZpbGUgW2xyYW5nZSAkYWN0aW9ucyAwICRpbmRleF0gJHZhcnMobW9kZSkKLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0gZWxzZSB7Ci0jcHV0cyAiNTogJGFjdGlvbnMgKFtwd2RdKSIKLSAgICAgICAgICAgICAgIEZGOjpnZW5fbWFrZWZpbGUgJGFjdGlvbnMgJHZhcnMobW9kZSkKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgaWYgeyR2YXJzKGVuYWJsZV9xb3JfY2hlY2spfSB7IAotICAgICAgICAgICAgICAgRkZfRURJOjpnZW5fY2hlY2sKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGV4ZWN1dGVfZmxvdyBkZWJ1ZyAkZm9ybWF0ICRhYm9ydAotICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKHJ1bl9sZWMpXSAmJiAkdmFycyhydW5fbGVjKX0gewotICAgICAgICAgICAgICAgZXhlY3V0ZV9mbG93IGxlYyAkZm9ybWF0ICRhYm9ydAotICAgICAgICAgICAgfQotICAgICAgICAgfQotICAgICAgICAgImxlYyIgewotIyAgICAgICAgICAgIHB1dHMgIi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iCi0jICAgICAgICAgICAgcHV0cyAiPEZGPiBHZW5lcmF0aW5nIHNjcmlwdHMgZm9yICR2YXJzKGRlc2lnbikiCi0gICAgICAgICAgICBwdXRzICItLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIgotICAgICAgICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycyhuZXRsaXN0KV19IHsKLSAgICAgICAgICAgICAgIHB1dHMgIjxGRj4gQ2Fubm90IGdlbmVyYXRlICdsZWMnIHN0ZXAgdy9vIHZlcmlsb2cgbmV0bGlzdCBkZWZpbmVkIgotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICMgQkNMOiBDaGFuZ2VkIHRvIHRjbCBmaWxlIG1rZGlyCi0gICAgICAgICAgICAgICBmaWxlIG1rZGlyICR2YXJzKHNjcmlwdF9kaXIpL0lOTk9WVVMKLSAgICAgICAgICAgICAgIHNldCBvcCBbb3BlbiAkdmFycyhzY3JpcHRfZGlyKS9JTk5PVlVTL3J1bl9sZWMudGNsIHddCi0gICAgICAgICAgICAgICBwdXRzICRvcCAiLy8iCi0gICAgICAgICAgICAgICBwdXRzICRvcCAiLy8gSW5ub3Z1cyBGb3VuZGF0aW9uIEZsb3cgQ29kZSBHZW5lcmF0b3IsIFtleGVjIGRhdGVdIgotICAgICAgICAgICAgICAgcHV0cyAkb3AgIi8vIgotICAgICAgICAgICAgICAgaWYgeyRzdGVwID09ICJsZWMifSB7Ci0gICAgICAgICAgICAgICAgICBwdXRzICRvcCAidGNsbW9kZSIKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICNwdXRzICRvcCAiaWYge1xbZmlsZSBleGlzdHMgLmZmLnRjbFxdfSB7IgotICAgICAgICAgICAgICAgI3B1dHMgJG9wICIgICBzb3VyY2UgLmZmLnRjbCIKLSAgICAgICAgICAgICAgICNwdXRzICRvcCAifSIKLSAgICAgICAgICAgICAgIHNldCB2YXJzRmlsZSBbRkY6OnJlbFBhdGhUbyBbZmlsZSBub3JtYWxpemUgJHZhcnMoc2NyaXB0X2RpcikvdmFycy50Y2xdIFtmaWxlIG5vcm1hbGl6ZSAkdmFycyhydW5kaXIpXV0KLSAgICAgICAgICAgICAgIHB1dHMgJG9wICJpZiB7XFtmaWxlIGV4aXN0cyAkdmFyc0ZpbGVcXX0geyIKLSAgICAgICAgICAgICAgIHB1dHMgJG9wICIgICBzb3VyY2UgJHZhcnNGaWxlIgotICAgICAgICAgICAgICAgcHV0cyAkb3AgIn0iCi0jICAgICAgICAgICAgICAgcHV0cyAkb3AgInNvdXJjZSBcJHZhcnMoc2NyaXB0X2RpcikvcHJvY3MudGNsIgotICAgICAgICAgICAgICAgaWYgeyFbcmVnZXhwIHN5bl8gJHN0ZXBdfSB7Ci0gICAgICAgICAgICAgICAgICAgcHV0cyAkb3AgInNvdXJjZSAkdmFycyhzY3JpcHRfZGlyKS9wcm9jcy50Y2wiCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICBwdXRzICAiPEZGPiBHZW5lcmF0aW5nIHN0ZXAgJHN0ZXAiCi0gICAgICAgICAgICAgICBzZXQgY29tbWFuZHMgW0ZGX0VESTo6cnVuX2xlY10KLSAgICAgICAgICAgICAgIHB1dHMgJG9wIFtGRjo6cHJldHR5X3ByaW50ICRjb21tYW5kcyAkZm9ybWF0XQotICAgICAgICAgICAgICAgY2xvc2UgJG9wCi0gICAgICAgICAgICB9Ci0jICAgICAgICAgICAgRkY6Omdlbl9tYWtlZmlsZSBsZWMgJHZhcnMobW9kZSkKLSAgICAgICAgIH0KLSAgICAgICAgICJkZWZhdWx0IiB7Ci0KLSAgICAgICAgICAgICMKLSAgICAgICAgICAgICMgUnVuIGVhY2ggc3RlcCBlaXRoZXIgc2luZ3Vhcmx5IG9yIHJlY3Vyc2l2ZWx5Ci0gICAgICAgICAgICAjCi0gICAgICAgICAgICAjCi0gICAgICAgICAgICAjIENyZWF0ZSB0aGUgbGlzdCBvZiBjb21tYW5kcyB0aGF0IGhhcHBlbiBhdCB0aGUgYmVnaW5pbmcgb2YKLSAgICAgICAgICAgICMgZWFjaCBzY3JpcHQKLSAgICAgICAgICAgICMKLQotICAgICAgICAgICAgaWYgeyhbbHNlYXJjaCAkdmFycyhzdGVwcykgJHN0ZXBdID09IC0xKSAmJiAoJHN0ZXAgIT0gImRlYnVnIil9IHsKLSAgICAgICAgICAgICAgIHB1dHMgICI8RkY+IEVSUk9SOiBVbmtub3duIEZvdW5kYXRpb24gRmxvdyBzdGVwIFwiJHN0ZXBcIi4iCi0gICAgICAgICAgICAgICBleGl0IDk5Ci0gICAgICAgICAgICB9Ci0KLSMgICAgICAgICAgICBpZiB7KFtsc2VhcmNoICR2YXJzKHN0ZXBzKSAkc3RlcF0gPT0gLTEpICYmICgkc3RlcCAhPSAiZGVidWciKX0gewotIyAgICAgICAgICAgICAgIHB1dHMgICI8RkY+IEVSUk9SOiBVbmtub3duIEZvdW5kYXRpb24gRmxvdyBzdGVwIFwiJHN0ZXBcIi4iCi0jICAgICAgICAgICAgICAgZXhpdCA5OQotIyAgICAgICAgICAgIH0gZWxzZSB7Ci0jICAgICAgICAgICAgICAgaWYgeygkdmFycyhmaXhfaG9sZCkgfHwgKCEkdmFycyhmaXhfaG9sZCkgJiYgIVtyZWdleHAgIl9ob2xkIiAkc3RlcF0pKSAmJgotIyAgICAgICAgICAgICAgICAgICAhKCR2YXJzKHNraXBfY3RzKSAmJiAoKCRzdGVwID09ICJjdHMiKSB8fCBbcmVnZXhwICJwb3N0Y3RzIiAkc3RlcF0pKX0gewotIyAgICAgICAgICAgICAgICAgIHB1dHMgICI8RkY+IEdlbmVyYXRpbmcgc3RlcCAkc3RlcCIKLSMgICAgICAgICAgICAgICB9Ci0jICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAjCi0gICAgICAgICAgICAjIFdlIG5lZWQgdG8gZW5zdXJlIHRoYXQgd2UgY2hlY2sgdGhlIHZhcmlhYmxlIGNvbnRlbnRzIGFuZAotICAgICAgICAgICAgIyBpbml0aWFsaXplIHRoZSBmbG93IGF0IGxlYXN0IG9uY2UgaW4gYSBnaXZlbiBydW4sIG5vIG1hdHRlcgotICAgICAgICAgICAgIyB3aGF0IHN0ZXAgdGhlIHVzZXIgd2FudHMgdG8gZXhlY3V0ZQotICAgICAgICAgICAgIwotCi0jICAgICAgICAgICAgc2V0IGhlYWRlciAiXG4jXG4jIENvbW1hbmRzIGZvciAkc3RlcFxuI1xuXG4iCi0KLSAgICAgICAgICAgIGlmIHshW2luZm8gZXhpc3RzIHZhcnMoYWxsKV19IHsKLSAgICAgICAgICAgICAgIGV4ZWN1dGVfZmxvdyBjaGVjayAkZm9ybWF0ICRhYm9ydAotICAgICAgICAgICAgfQotICAgICAgICAgICAgIyBCQ0w6IENoYW5nZWQgdG8gdGNsIGZpbGUgbWtkaXIKLSAgICAgICAgICAgIGZpbGUgbWtkaXIgJHZhcnMoc2NyaXB0X2RpcikvSU5OT1ZVUwotICAgICAgICAgICAgc2V0IGNvbW1hbmRzICIiCi0jICAgICAgICAgICAgc2V0IGNvbW1hbmRzICJwb3N0LTEwLjEwLWIwMDlcbiIKLSAgICAgICAgICAgIGlmIHshJHZhcnMoaW5pdGlhbGl6ZWQpfSB7Ci0gICAgICAgICAgICAgICBzZXQgdmFycyhzdGVwKSAkc3RlcAotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRl9FREk6OmluaXRpYWxpemVfZmxvd10KLSMgICAgICAgICAgICAgICB1bnNldCB2YXJzKHN0ZXApCi0gICAgICAgICAgICAgICBzZXQgdmFycyhpbml0X2NvbW1hbmRzKSAkY29tbWFuZHMKLSAgICAgICAgICAgICAgIHNldCB2YXJzKGluaXRpYWxpemVkKSAxCi0gICAgICAgICAgICAgICBpZiB7IVtpbmZvIGV4aXN0cyB2YXJzKHdhcm5pbmdfY291bnQpXX0gewotICAgICAgICAgICAgICAgICAgc2V0IHZhcnMod2FybmluZ19jb3VudCkgMAotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycyhlcnJvcl9jb3VudCldfSB7Ci0gICAgICAgICAgICAgICAgICBzZXQgdmFycyhlcnJvcl9jb3VudCkgMAotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAjCi0gICAgICAgICAgICAjIEdldCB0aGUgY29tbWFuZHMgdG8gZXhlY3V0ZSB0aGUgc3RlcC4gIFdlIGFsc28gbmVlZCB0byBnZXQgdGhlCi0gICAgICAgICAgICAjIGNvbW1hbmRzIHRvIGxvYWQgdGhlIGRhdGFiYXNlIGZvciB0aGF0IHN0ZXAsIGFzc3VtaW5nIHRoYXQgYQotICAgICAgICAgICAgIyBkYXRhYmFzZSBleGlzdHMgZnJvbSBhIHByaW9yIHN0ZXAuICBUaG9zZSBsb2FkIGNvbW1hbmRzIGFyZQotICAgICAgICAgICAgIyBwcmVwZW5kZWQgdG8gdGhlIGV4ZWN1dGlvbiBjb21tYW5kcy4gIFNhdmUgY29tbWFuZHMgYXJlCi0gICAgICAgICAgICAjIGFwcGVuZGVkCi0gICAgICAgICAgICAjCi0KLSAgICAgICAgICAgIGlmIHtbaW5mbyBjb21tYW5kcyA6OkZGX0VESTo6cnVuXyRzdGVwXSBuZSAiIn0gIHsKLSAgICAgICAgICAgICAgIHNldCB0ZW1wX2NvbW1hbmRzIFtGRl9FREk6OnJ1bl8kc3RlcCAkZm9ybWF0XQotICAgICAgICAgICAgICAgaWYgeyR0ZW1wX2NvbW1hbmRzID09ICIifSB7Ci0gICAgICAgICAgICAgICAgICByZXR1cm4gIiIKLSAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICBpZiB7JHZhcnMoc3RlcCkgIT0gImluaXQifSB7Ci0gICAgICAgICAgICAgICAgICAgICBzZXQgc3RlcF9jb21tYW5kcyAiXG4jLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIgotICAgICAgICAgICAgICAgICAgICAgaWYgeyR2YXJzKHJlcG9ydF9ydW5fdGltZSl9IHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBzdGVwX2NvbW1hbmRzICJzZXQgdmFycyhzdGVwKSAke3N0ZXB9XG4iCi0gICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgc3RlcF9jb21tYW5kcyAic2V0IHZhcnMoJHtzdGVwfSxzdGFydF90aW1lKSBcW2Nsb2NrIHNlY29uZHNcXVxuIgotICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgaWYgeyR2YXJzKGNhcHR1cmVfbWV0cmljcyl9IHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIHtbbGluZGV4IFtzcGxpdCAkdmFycyh2ZXJzaW9uKSAiLiJdICAwXSA+IDEzfSB7Ci0jICAgICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgc3RlcF9jb21tYW5kcyAidW06OmVuYWJsZV9tZXRyaWNzIC1vblxuIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBHRzcKLSMgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiB7IVtpbmZvIGV4aXN0cyB2YXJzKHB1c2hlZCldIHx8IChbaW5mbyBleGlzdHMgdmFycyhwdXNoZWQpXSAmJiAhJHZhcnMocHVzaGVkKSkgfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgc3RlcF9jb21tYW5kcyAidW06OnB1c2hfc25hcHNob3Rfc3RhY2tcbiIKLSMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXQgdmFycyhwdXNoZWQpIHRydWUKLSMgICAgICAgICAgICAgICAgICAgICAgICAgICB9IAotICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIHN0ZXBfY29tbWFuZHMgIiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiIKLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBzdGVwX2NvbW1hbmRzICR0ZW1wX2NvbW1hbmRzCi0gICAgICAgICAgICAgICAgICBhcHBlbmQgc3RlcF9jb21tYW5kcyAiIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuIgotICAgICAgICAgICAgICAgICAgcHV0cyAgIjxGRj4gR2VuZXJhdGluZyBzdGVwICRzdGVwIgotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfSBlbHNlaWYge1tpbmZvIGV4aXN0cyB2YXJzKGN1c3RvbV9zdGVwX2RpcildfSB7Ci0gICAgICAgICAgICAgICBpZiB7W2ZpbGUgaXNmaWxlICR2YXJzKGN1c3RvbV9zdGVwX2RpcikvcnVuXyR7c3RlcH0udGNsXX0gewotICAgICAgICAgICAgICAgICAgcHV0cyAgIjxGRj4gR2VuZXJhdGluZyBzdGVwICRzdGVwIgotICAgICAgICAgICAgICAgICAgc2V0IGZociBbb3BlbiAkdmFycyhjdXN0b21fc3RlcF9kaXIpL3J1bl8kc3RlcC50Y2wgcl0KLSAgICAgICAgICAgICAgICAgIHNldCBzdGVwX2NvbW1hbmRzICJcbiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4iCi0gICAgICAgICAgICAgICAgICBhcHBlbmQgc3RlcF9jb21tYW5kcyAiIyBTb3VyY2luZyBjdXN0b20gc2NyaXB0IC4uLlxuIgotICAgICAgICAgICAgICAgICAgYXBwZW5kIHN0ZXBfY29tbWFuZHMgIiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4iCi0gICAgICAgICAgICAgICAgICBpZiB7JHZhcnMocmVwb3J0X3J1bl90aW1lKSAmJiAoJHN0ZXAgIT0gImluaXQiKX0gewotICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIHN0ZXBfY29tbWFuZHMgInNldCB2YXJzKHN0ZXApICR7c3RlcH1cbiIKLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBzdGVwX2NvbW1hbmRzICJzZXQgdmFycygke3N0ZXB9LHN0YXJ0X3RpbWUpIFxbY2xvY2sgc2Vjb25kc1xdXG4iCi0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICBpZiB7JHZhcnMoY2FwdHVyZV9tZXRyaWNzKSAmJiAoJHZhcnMoc3RlcCkgIT0gImluaXQiKX0gewotICAgICAgICAgICAgICAgICAgICAgaWYge1tsaW5kZXggW3NwbGl0ICR2YXJzKHZlcnNpb24pICIuIl0gIDBdID4gMTN9IHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBzdGVwX2NvbW1hbmRzICJ1bTo6ZW5hYmxlX21ldHJpYyAtb25cbiIKLSAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCBzdGVwX2NvbW1hbmRzICJ1bTo6cHVzaF9zbmFwc2hvdF9zdGFja1xuIgotICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgYXBwZW5kIHN0ZXBfY29tbWFuZHMgIiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiIKLSAgICAgICAgICAgICAgICAgIHdoaWxlIHtbZ2V0cyAkZmhyIGxpbmVdPj0wfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIHN0ZXBfY29tbWFuZHMgIiRsaW5lXG4iCi0gICAgICAgICAgICAgICAgICB9Ci0jICAgICAgICAgICAgICAgICAgYXBwZW5kIHN0ZXBfY29tbWFuZHMgInNvdXJjZSAkdmFycyhjdXN0b21fc3RlcF9kaXIpL3J1bl8kc3RlcC50Y2xcbiIKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCBzdGVwX2NvbW1hbmRzICIjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4iCi0gICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgcHV0cyAiPEZGPiBFUlJPUjogVW5hYmxlIHRvIGdlbmVyYXRlIHN0ZXAgJHN0ZXAiCi0gICAgICAgICAgICAgICAgICBzZXQgZXJyb3JzKCR2YXJzKGVycm9yX2NvdW50KSkgIlVuYWJsZSB0byBnZW5lcmF0ZSBzdGVwICRzdGVwIC0gcHJvY2VkdXJlICdydW5fJHN0ZXAnIG11c3QgYmUgZGVmaW5lZCBvciBhIFwkdmFycyhjdXN0b21fc3RlcF9kaXIpL3J1bl8kc3RlcC50Y2wgZmlsZSBtdXN0IGJlIHByb3ZpZGVkIgotICAgICAgICAgICAgICAgICAgaW5jciB2YXJzKGVycm9yX2NvdW50KQotICAgICAgICAgICAgICAgICAgcmV0dXJuICIiCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgcHV0cyAiPEZGPiBFUlJPUjogVW5hYmxlIHRvIGdlbmVyYXRlIHN0ZXAgJHN0ZXAiCi0gICAgICAgICAgICAgICAgICBzZXQgZXJyb3JzKCR2YXJzKGVycm9yX2NvdW50KSkgIlVuYWJsZSB0byBnZW5lcmF0ZSBzdGVwICRzdGVwIC0gcHJvY2VkdXJlICdydW5fJHN0ZXAnIG11c3QgYmUgZGVmaW5lZCBvciBhIFwkdmFycyhjdXN0b21fc3RlcF9kaXIpL3J1bl8kc3RlcC50Y2wgZmlsZSBtdXN0IGJlIHByb3ZpZGVkIgotICAgICAgICAgICAgICAgaW5jciB2YXJzKGVycm9yX2NvdW50KQotICAgICAgICAgICAgICAgcmV0dXJuICIiCi0gICAgICAgICAgICB9Ci0jICAgICAgICAgICAgc2V0IHRoaXNfaW5kZXggW2xzZWFyY2ggJHZhcnMoc3RlcHMpICRzdGVwXQotIyAgICAgICAgICAgIHNldCBwcmlvciBbbGluZGV4ICR2YXJzKHN0ZXBzKSBbZXhwciAkdGhpc19pbmRleCAtIDFdXQotIyMgICAgICAgICAgICBpZiB7ISR2YXJzKGZpeF9ob2xkKSAmJiBbcmVnZXhwIF9ob2xkICRwcmlvcl19IHsKLSMjICAgICAgICAgICAgICAgc2V0IHByaW9yIFtsaW5kZXggJHZhcnMoc3RlcHMpIFtleHByICR0aGlzX2luZGV4IC0gMl1dCi0jIyAgICAgICAgICAgICAgIGlmIHtbcmVnZXhwIF9ob2xkICRwcmlvcl19IHsKLSMjICAgICAgICAgICAgICAgICAgc2V0IHByaW9yIFtsaW5kZXggJHZhcnMoc3RlcHMpIFtleHByICR0aGlzX2luZGV4IC0gM11dCi0jIyAgICAgICAgICAgICAgIH0KLSMjICAgICAgICAgICAgfQotIyAgICAgICAgICAgIGlmIHtbcmVnZXhwIF9ob2xkICRwcmlvcl0gJiYgKFtsc2VhcmNoICR2YXJzKGZpeF9ob2xkKSBbcmVnc3ViIF9ob2xkICRwcmlvciAiIl1dPDApfSB7Ci0jICAgICAgICAgICAgICAgc2V0IHByaW9yIFtsaW5kZXggJHZhcnMoc3RlcHMpIFtleHByICR0aGlzX2luZGV4IC0gMl1dCi0jICAgICAgICAgICAgICAgaWYge1tyZWdleHAgX2hvbGQgJHByaW9yXSAmJiAoW2xzZWFyY2ggJHZhcnMoZml4X2hvbGQpIFtyZWdzdWIgX2hvbGQgJHByaW9yICIiXV08MCl9IHsKLSMgICAgICAgICAgICAgICAgICBzZXQgcHJpb3IgW2xpbmRleCAkdmFycyhzdGVwcykgW2V4cHIgJHRoaXNfaW5kZXggLSAzXV0KLSMgICAgICAgICAgICAgICB9Ci0jICAgICAgICAgICAgfQotIyAgICAgICAgICAgIGlmIHsoJHN0ZXAgPT0gImN0cyIpICYmICR2YXJzKHBsYWNlX29wdF9kZXNpZ24pfSB7Ci0jICAgICAgICAgICAgICAgc2V0IHByaW9yICJwbGFjZSIKLSMgICAgICAgICAgICB9Ci0jICAgICAgICAgICAgaWYgeygkc3RlcCA9PSAicm91dGUiKSAmJiAkdmFycyhza2lwX2N0cyl9IHsKLSMgICAgICAgICAgICAgICBzZXQgcHJpb3IgInByZWN0cyIKLSMgICAgICAgICAgICB9Ci0jIyAgICAgICAgICAgIGlmIHsoJHN0ZXAgPT0gInJvdXRlIikgJiYgW3JlZ2V4cCAiXmNjb3B0IiBbc3RyaW5nIHRvbG93ZXIgJHZhcnMoY3RzX2VuZ2luZSldXX0gewotIyMgICAgICAgICAgICAgICBzZXQgcHJpb3IgImN0cyIKLSMjICAgICAgICAgICAgfQotIyAgICAgICAgICAgIGlmIHtbcmVnZXhwICJeY2NvcHQiIFtzdHJpbmcgdG9sb3dlciAkdmFycyhjdHNfZW5naW5lKV1dfSB7Ci0jICAgICAgICAgICAgICAgaWYgeyhbc3RyaW5nIHRvbG93ZXIgJHZhcnMoZml4X2hvbGQpXSAhPSAiZmFsc2UiKX0gewotIyAgICAgICAgICAgICAgICAgIGlmIHsoJHN0ZXAgPT0gInBvc3RjdHNfaG9sZCIpICYmIFtsc2VhcmNoICR2YXJzKGZpeF9ob2xkKSAkc3RlcF19IHsKLSMgICAgICAgICAgICAgICAgICAgICBzZXQgcHJpb3IgY3RzCi0jICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSMgICAgICAgICAgICAgICAgICAgICBpZiB7KCRzdGVwID09ICJyb3V0ZSIpfSB7Ci0jICAgICAgICAgICAgICAgICAgICAgICAgc2V0IHByaW9yIGN0cwotIyAgICAgICAgICAgICAgICAgICAgIH0KLSMgICAgICAgICAgICAgICAgICB9Ci0jICAgICAgICAgICAgICAgfSBlbHNlIHsKLSMgICAgICAgICAgICAgICAgICBpZiB7KCRzdGVwID09ICJyb3V0ZSIpfSB7Ci0jICAgICAgICAgICAgICAgICAgICAgc2V0IHByaW9yIGN0cwotIyAgICAgICAgICAgICAgICAgIH0KLSMgICAgICAgICAgICAgICB9Ci0jICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBzZXQgdGhpc19pbmRleCBbbHNlYXJjaCBbRkY6OmFkanVzdF9zdGVwc10gJHN0ZXBdCi0gICAgICAgICAgICBzZXQgcHJpb3IgW2xpbmRleCBbRkY6OmFkanVzdF9zdGVwc10gW2V4cHIgJHRoaXNfaW5kZXggLSAxXV0KLSAgICAgICAgICAgIHNldCBub19kYl9zdGVwcyBbbGlzdCAiaW5pdCIgInJlYnVkZ2V0IiAiZmxleGlsbSIgImFzc2VtYmxlIiAiYXNzZW1ibGVfZmxleGlsbSIgImRlYnVnIl0KLSAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyh1c2VfZmxleG1vZGVscyldICYmICR2YXJzKHVzZV9mbGV4bW9kZWxzKX0gewotICAgICAgICAgICAgICAgbGFwcGVuZCBub19kYl9zdGVwcyAibW9kZWxfZ2VuIgotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIGxhcHBlbmQgbm9fZGJfc3RlcHMgImZlZWR0aHJvdWdoIgotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgeyhbbHNlYXJjaCAkbm9fZGJfc3RlcHMgJHN0ZXBdID09IC0xKSAmJiAoJHByaW9yICE9ICIiKX0gewotICAgICAgICAgICAgICAgc2V0IGxvYWRfY29tbWFuZHMgW0ZGX0VESTo6bG9hZF9kZXNpZ24gJHByaW9yICRzdGVwXQotIyAgICAgICAgICAgICAgIHNldCByZXN0b3JlX2NvbW1hbmRzIFtsaW5kZXggW0ZGX0VESTo6bG9hZF9kZXNpZ24gJGZvcm1hdCAkcHJpb3JdIDFdCi0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgc2V0IGxvYWRfY29tbWFuZHMgIiIKLSMgICAgICAgICAgICAgICBzZXQgcmVzdG9yZV9jb21tYW5kcyAiIgotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBpZiB7ISR2YXJzKGxvYWRlZCl9IHsKLSAgICAgICAgICAgICAgIHNldCB2YXJzKGxvYWRlZCkgMQotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICRsb2FkX2NvbW1hbmRzCi0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgICMgbW9kZWxfZ2VuIHNhdmVzIGl0cyBkYXRhYmFzZSBleHBsaWNpdGx5Ci0jICAgICAgICAgICAgc2V0IG5vX3NhdmVfc3RlcHMgW2xpc3QgImRlYnVnIiAibW9kZWxfZ2VuIl0KLSAgICAgICAgICAgIHNldCBub19zYXZlX3N0ZXBzIFtsaXN0ICJkZWJ1ZyJdCi0gICAgICAgICAgICBpZiB7W2xzZWFyY2ggJG5vX3NhdmVfc3RlcHMgJHN0ZXBdID09IC0xfSB7Ci0gICAgICAgICAgICAgICBzZXQgc2F2ZV9jb21tYW5kcyBbRkZfRURJOjpzYXZlX3Jlc3VsdHMgJHN0ZXAgJGZvcm1hdF0KLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBzZXQgc2F2ZV9jb21tYW5kcyAiIgotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAjCi0gICAgICAgICAgICAjIFdyaXRlIHRoZSBjb21tYW5kcyB0byBhIGZpbGUsIG5hbWVkIGZvciB0aGUgc3RlcCB3ZSBhcmUKLSAgICAgICAgICAgICMgZXhlY3V0aW5nCi0gICAgICAgICAgICAjCi0KLSAgICAgICAgICAgIGlmIHtbcmVnZXhwICJec3luIiAkc3RlcF19IHsKLSAgICAgICAgICAgICAgIGZpbGUgbWtkaXIgJHZhcnMoc2NyaXB0X2RpcikvR0VOVVMKLSAgICAgICAgICAgICAgIHNldCBvcCBbb3BlbiAkdmFycyhzY3JpcHRfZGlyKS9HRU5VUy9ydW5fJHtzdGVwfS50Y2wgd10KLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBzZXQgb3AgW29wZW4gJHZhcnMoc2NyaXB0X2RpcikvSU5OT1ZVUy9ydW5fJHtzdGVwfS50Y2wgd10KLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgaWYgeyR2YXJzKGRlYnVnKX0gewotIyAgICAgICAgICAgICAgIHB1dHMgIjxERUJVRz4gT3BlbmluZyBmaWxlOiAkdmFycyhzY3JpcHRfZGlyKS9JTk5PVlVTL3J1bl8ke3N0ZXB9LnRjbCBpbiBbZXhlYyBwd2RdIC0+ICRvcCIKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgcHV0cyAkb3AgW3N0cmluZyByZXBlYXQgIiMiIDY4XQotICAgICAgICAgICAgcHV0cyAkb3AgIiMgSW5ub3Z1cyBGb3VuZGF0aW9uIEZsb3cgQ29kZSBHZW5lcmF0b3IsIFtleGVjIGRhdGVdIgotICAgICAgICAgICAgcHV0cyAkb3AgIiMgVmVyc2lvbiA6IDE3LjEwLXAwMDNfMSIKLSAgICAgICAgICAgIHB1dHMgJG9wIFtzdHJpbmcgcmVwZWF0ICIjIiA2OF0KLQotICAgICAgICAgICAgaWYge1tmaWxlIHRhaWwgW2ZpbGUgZGlybmFtZSBbcHdkXV1dICE9ICIkdmFycyhwYXJ0aXRpb25fZGlyKSJ9IHsKLSAgICAgICAgICAgICAgIHNldCB2YXJzRmlsZSBbRkY6OnJlbFBhdGhUbyBbZmlsZSBub3JtYWxpemUgJHZhcnMoc2NyaXB0X2RpcikvdmFycy50Y2xdIFtmaWxlIG5vcm1hbGl6ZSAkdmFycyhydW5kaXIpXV0KLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBzZXQgdmFyc0ZpbGUgJHZhcnMoc2NyaXB0X2RpcikvdmFycy50Y2wKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHB1dHMgJG9wICJcbmlmIHtcW2ZpbGUgZXhpc3RzICR2YXJzRmlsZVxdfSB7IgotICAgICAgICAgICAgcHV0cyAkb3AgIiAgIHNvdXJjZSAkdmFyc0ZpbGUiCi0gICAgICAgICAgICBwdXRzICRvcCAifSIKLSAgICAgICAgICAgICNwdXRzICRvcCAiaWYge1xbZmlsZSBleGlzdHMgXCR2YXJzKHNjcmlwdF9kaXIpL3ZhcnMudGNsXF19IHsiCi0gICAgICAgICAgICAjcHV0cyAkb3AgIiAgIHNvdXJjZSBcJHZhcnMoc2NyaXB0X2RpcikvdmFycy50Y2wiCi0gICAgICAgICAgICAjcHV0cyAkb3AgIn1cbiIKLSAgICAgICAgICAgIGlmIHshJHZhcnMoZnJlZXplX3ZhcnMpfSB7Ci0gICAgICAgICAgICAgICBpZiB7KFtmaWxlIHRhaWwgW2ZpbGUgZGlybmFtZSBbcHdkXV1dICE9ICIkdmFycyhwYXJ0aXRpb25fZGlyKSIpICYmICFbcmVnZXhwIHN5bl8gJHN0ZXBdfSB7Ci0gICAgICAgICAgICAgICAgICBwdXRzICRvcCAiZm9yZWFjaCBmaWxlIFwkdmFycyhjb25maWdfZmlsZXMpIHsiCi0gICAgICAgICAgICAgICAgICBwdXRzICRvcCAiICAgc291cmNlIFwkZmlsZSIKLSAgICAgICAgICAgICAgICAgIHB1dHMgJG9wICJ9XG4iCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0jICAgICAgICAgICAgcHV0cyAkb3AgInNvdXJjZSBcJHZhcnMoc2NyaXB0X2RpcikvcHJvY3MudGNsIgotICAgICAgICAgICAgcHV0cyAkb3AgInNvdXJjZSAkdmFycyhzY3JpcHRfZGlyKS9wcm9jcy50Y2wiCi0gICAgICAgICAgICBpZiB7ISRmb3JtYXR9IHsKLSAgICAgICAgICAgICAgIHB1dHMgJG9wICRoZWFkZXIKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHJlZ3N1YiAtYWxsICJpbml0LCIgJHZhcnMoaW5pdF9jb21tYW5kcykgIiRzdGVwLCIgY29tbWFuZHMKLSAgICAgICAgICAgIHNldCBvZiBbb3BlbiAkdmFycyhzY3JpcHRfZGlyKS9JTk5PVlVTLy5oZWFkIHddCi0gICAgICAgICAgICBwdXRzICRvZiBbRkY6OnByZXR0eV9wcmludCAkdmFycyhpbml0X2NvbW1hbmRzKSAkZm9ybWF0XQotICAgICAgICAgICAgY2xvc2UgJG9mIAotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmRzICRsb2FkX2NvbW1hbmRzICRzdGVwX2NvbW1hbmRzICRzYXZlX2NvbW1hbmRzCi0gICAgICAgICAgICBsYXBwZW5kIHZhcnMoYnN0ZXBzKSAkc3RlcAotICAgICAgICAgICAgc2V0IG9mIFtvcGVuICR2YXJzKHNjcmlwdF9kaXIpL0lOTk9WVVMvLmxvYWRfJHN0ZXAgd10KLSMgICAgICAgICAgICBwdXRzICRvZiBbRkY6OnByZXR0eV9wcmludCAkcmVzdG9yZV9jb21tYW5kcyAkZm9ybWF0XQotICAgICAgICAgICAgcHV0cyAkb2YgW0ZGOjpwcmV0dHlfcHJpbnQgJGxvYWRfY29tbWFuZHMgJGZvcm1hdF0KLSAgICAgICAgICAgIGNsb3NlICRvZgotICAgICAgICAgICAgc2V0IG9mIFtvcGVuICR2YXJzKHNjcmlwdF9kaXIpL0lOTk9WVVMvLiRzdGVwIHddCi0gICAgICAgICAgICBwdXRzICRvZiBbRkY6OnByZXR0eV9wcmludCAkc3RlcF9jb21tYW5kcyAkZm9ybWF0XQotICAgICAgICAgICAgcHV0cyAkb2YgW0ZGOjpwcmV0dHlfcHJpbnQgJHNhdmVfY29tbWFuZHMgJGZvcm1hdF0KLSAgICAgICAgICAgIGNsb3NlICRvZgotIyAgICAgICAgICAgIGlmIHtbcmVnZXhwICJwb3N0cm91dGVfc2kiICRzdGVwXSAmJiAkc2tpcF9jb21tYW5kcyAhPSAiIn0gewotIyAgICAgICAgICAgICAgIHNldCBjb21tYW5kcyAkc2tpcF9jb21tYW5kcwotIyAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIHshJGZvcm1hdH0gewotICAgICAgICAgICAgICAgc2V0IGNvbW1hbmRzIFtGRjo6c3RyaXBfbGluZXMgJGNvbW1hbmRzIFtsaXN0ICJwdXRzIiAiIyJdXQotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgeyR2YXJzKGNhdGNoX2Vycm9ycykgJiYgKCRzdGVwICE9ICJkZWJ1ZyIpfSB7Ci0gICAgICAgICAgICAgICBwdXRzICRvcCAiXG5pZiB7IFxbY2F0Y2gge1xuIgotICAgICAgICAgICAgICAgcHV0cyAkb3AgW0ZGOjpwcmV0dHlfcHJpbnQgJGNvbW1hbmRzICRmb3JtYXRdCi0gICAgICAgICAgICAgICBwdXRzICRvcCAifSBzdGVwX2Vycm9yXF19IHtcbiIKLSAgICAgICAgICAgICAgIHB1dHMgJG9wICIgICBQdXRzIFwiPEZGPiA9PT09PT09PT09PSBTVEVQIEVYRUNVVElPTiBFUlJPUiA9PT09PT09PT09PT1cIiIKLSAgICAgICAgICAgICAgIHB1dHMgJG9wICIgICBQdXRzIFwiPEZGPiBFUlJPUiBSVU5OSU5HIFNURVAgJyRzdGVwJ1wiIgotICAgICAgICAgICAgICAgaWYgeyR2YXJzKHNhdmVfb25fY2F0Y2gpfSB7Ci0gICAgICAgICAgICAgICAgICBpZiB7W3JlZ2V4cCAiXnN5biIgJHZhcnMoc3RlcCldfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgIHB1dHMgJG9wICIgICB3cml0ZV9kYiAkdmFycyhkZXNpZ24pIC1hbGxfcm9vdF9hdHRyaWJ1dGVzIC10b19maWxlICR2YXJzKGRic19kaXIpLyR2YXJzKHN0ZXApLmNhdGNoLmRiXG4iCi0gICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgcHV0cyAkb3AgIiAgIFB1dHMgXCI8RkY+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVwiIgotICAgICAgICAgICAgICAgICAgICAgcHV0cyAkb3AgIiAgIFB1dHMgXCI8RkY+IC4uLiBTQVZJTkcgREVTSUdOIFRPICR2YXJzKGRic19kaXIpLyR2YXJzKHN0ZXApLmNhdGNoLmVuY1wiIgotICAgICAgICAgICAgICAgICAgICAgaWYge1tzdHJpbmcgY29tcGFyZSAtbm9jYXNlICR2YXJzKGRic19mb3JtYXQpICJvYSJdPT0wfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiB7W2xpbmRleCBbc3BsaXQgJHZhcnModmVyc2lvbikgIi4iXSAgMF0gPiAxMH0gewotICAgICAgICAgICAgICAgICAgICAgICAgICAgcHV0cyAkb3AgIiAgIHNhdmVEZXNpZ24gLWNlbGx2aWV3IHskdmFycyhvYV9kZXNpZ25fbGliKSAkdmFycyhkZXNpZ24pICR2YXJzKHN0ZXApLmNhdGNofVxuIgotICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1dHMgJG9wICIgICBzYXZlT2FEZXNpZ24gJHZhcnMob2FfZGVzaWduX2xpYikgJHZhcnMoZGVzaWduKSAkdmFycyhzdGVwKS5jYXRjaFxuIgotICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHB1dHMgJG9wICIgICBzYXZlRGVzaWduICR2YXJzKGRic19kaXIpLyR2YXJzKHN0ZXApLmNhdGNoLmVuYyAtY29tcHJlc3NcbiIKLSAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIH0gCi0gICAgICAgICAgICAgICBwdXRzICRvcCAiICAgUHV0cyBcIjxGRj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXCIiCi0gICAgICAgICAgICAgICBwdXRzICRvcCAiICAgUHV0cyBcIjxGRj4gXCRzdGVwX2Vycm9yXCIiCi0gICAgICAgICAgICAgICBwdXRzICRvcCAiICAgUHV0cyBcIjxGRj4gLS0tLS0tLS0tLS0tLS0tLS0tLSBERVRBSUxTIC0tLS0tLS0tLS0tLS0tLS0tLVwiIgotICAgICAgICAgICAgICAgcHV0cyAkb3AgIiAgIFB1dHMgXCI8RkY+IFwkZXJyb3JJbmZvXCIiCi0gICAgICAgICAgICAgICBwdXRzICRvcCAiICAgUHV0cyBcIjxGRj4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVwiIgotICAgICAgICAgICAgICAgaWYgeyR2YXJzKGJhdGNoKX0gewotIyAgICAgICAgICAgICAgICAgaWYgeyR2YXJzKGV4aXRfb25fZXJyb3IpfSB7Ci0gICAgICAgICAgICAgICAgICAgIHB1dHMgJG9wICIgICBleGl0IC0xIgotIyAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgcHV0cyAkb3AgIn0iCi0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgcHV0cyAkb3AgW0ZGOjpwcmV0dHlfcHJpbnQgJGNvbW1hbmRzICRmb3JtYXRdCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiB7JHZhcnMoYmF0Y2gpICYmICgkc3RlcCAhPSAiZGVidWciKX0gewotICAgICAgICAgICAgICAgcHV0cyAkb3AgImlmIHshXFtpbmZvIGV4aXN0cyB2YXJzKHNpbmdsZSlcXX0ge1xuICAgZXhpdCAwXG59XG4iCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBjbG9zZSAkb3AKLSAgICAgICAgICAgIHNldCBzY29tbWFuZHMgW3NwbGl0ICRjb21tYW5kcyAiXG4iXQotICAgICAgICAgICAgaWYgJHZhcnMoZ2VuZXJhdGVfZmxvd19zdGVwcykgewotICAgICAgICAgICAgICAgaWYge1tyZWdleHAgc3luXyAkc3RlcF19IHsKLSAgICAgICAgICAgICAgICAgIGFwcGVuZCB2YXJzKGZsb3dfc3RlcHMpICJcbmNyZWF0ZV9mbG93X3N0ZXAgLW5hbWUgJHN0ZXAgXHtcbiIKLSAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgdmFycyhmbG93X3N0ZXBzKSAiXG5jcmVhdGVfZmxvd19zdGVwIC1uYW1lICRzdGVwIFx7XG4gICBldmFsX2xlZ2FjeSBce1xuICIKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhoc3RlcHMpXSAmJiAoW2xzZWFyY2ggJHZhcnMoaHN0ZXBzKSAkc3RlcF0gIT0gLTEpfSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgdmFycyhmbG93X3N0ZXBzLGhpZXIpICJcbmNyZWF0ZV9mbG93X3N0ZXAgLW5hbWUgJHN0ZXAgXHtcbiAgIGV2YWxfbGVnYWN5IFx7XG4gIgotICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgIGlmIHtbcmVnZXhwIHN5bl8gJHN0ZXBdfSB7IAotICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIHZhcnMoZmxvd19zdGVwcyxmbGF0KSAiXG5jcmVhdGVfZmxvd19zdGVwIC1uYW1lICRzdGVwIFx7XG4iCi0gICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIHZhcnMoZmxvd19zdGVwcyxmbGF0KSAiXG5jcmVhdGVfZmxvd19zdGVwIC1uYW1lICRzdGVwIFx7XG4gICBldmFsX2xlZ2FjeSBce1xuICIKLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIHNldCBza2lwIDAKLSAgICAgICAgICAgICAgIGZvcmVhY2ggbGluZSAkc2NvbW1hbmRzIHsKLSAgICAgICAgICAgICAgICAgIGlmIHskc2tpcCAhPSAwfSB7Ci0gICAgICAgICAgICAgICAgICAgICBzZXQgc2tpcCBbZXhwciAkc2tpcC0xXQotICAgICAgICAgICAgICAgICAgICAgY29udGludWUKLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIGlmIHtbcmVnZXhwIGZmX3Byb2NzICRsaW5lXX0geyBjb250aW51ZSB9Ci0gICAgICAgICAgICAgICAgICBpZiB7W3JlZ2V4cCAiIyIgJGxpbmVdfSB7IGNvbnRpbnVlIH0KLSAgICAgICAgICAgICAgICAgIGlmIHtbcmVnZXhwICJQdXRzIiAkbGluZV19IHsgY29udGludWUgfQotICAgICAgICAgICAgICAgICAgaWYge1tyZWdleHAgIlZQQVRIIiAkbGluZV19IHsgY29udGludWUgfQotICAgICAgICAgICAgICAgICAgaWYge1tyZWdleHAgInNldCB2YXJzIiAkbGluZV0gJiYgIVtyZWdleHAgIixwb3N0X2N0c19zZGMiICRsaW5lXX0geyBjb250aW51ZSB9Ci0gICAgICAgICAgICAgICAgICBpZiB7JHN0ZXAgIT0gImluaXQifSB7Ci0jICAgICAgICAgICAgICAgICAgICAgaWYge1tyZWdleHAgInJlc3RvcmVfZGVzaWduIiAkbGluZV19IHsgc2V0IHNraXAgNzsgY29udGludWUgfQotICAgICAgICAgICAgICAgICAgICAgaWYgeyEoKCRzdGVwID09ICJjdHMiKSAmJiAkdmFycyhlbmFibGVfZmxleGlsbSkpfSB7IAotICAgICAgICAgICAgICAgICAgICAgICAgaWYge1tyZWdleHAgInJlc3RvcmVEZXNpZ24iICRsaW5lXX0geyBjb250aW51ZSB9Ci0gICAgICAgICAgICAgICAgICAgICB9ICBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIHtbcmVnZXhwICJyZXN0b3JlRGVzaWduIiAkbGluZV19IHsKLSMgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0IGxpbmUgW3N0cmluZyB0cmltIFtsaW5kZXggJGxpbmUgMl1dCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0IGxpbmUgInJlc3RvcmVEZXNpZ24gXFtmaWxlIHRhaWwgXFtwd2RcXVxdX3Bvc3RFQ08uZW5jLmRhdCBcW2ZpbGUgdGFpbCBcW3B3ZFxdXF0iCi0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgaWYge1tyZWdleHAgInJlc3RvcmVEZXNpZ24iICRsaW5lXX0gewotICAgICAgICAgICAgICAgICAgICAgICAgIHNldCBsaW5lICJyZXN0b3JlRGVzaWduIC4gXFtmaWxlIHRhaWwgXFtwd2RcXV0iCi0gICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICBpZiB7W3JlZ2V4cCAic2F2ZURlc2lnbiIgJGxpbmVdfSB7IGNvbnRpbnVlIH0KLSAgICAgICAgICAgICAgICAgIGlmIHtbcmVnZXhwICJtZXRyaWMiICRsaW5lXX0geyBjb250aW51ZSB9Ci0gICAgICAgICAgICAgICAgICBpZiB7W3JlZ2V4cCAic25hcHNob3QiICRsaW5lXX0geyBjb250aW51ZSB9Ci0gICAgICAgICAgICAgICAgICBpZiB7W3JlZ2V4cCAicmVwb3J0X21ldHJpYyIgJGxpbmVdfSB7IGNvbnRpbnVlIH0KLSAgICAgICAgICAgICAgICAgIGlmIHskbGluZSA9PSAiIn0geyBjb250aW51ZSB9Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgdmFycyhmbG93X3N0ZXBzKSAiXHQkbGluZVxuIgotICAgICAgICAgICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGhzdGVwcyldICYmIChbbHNlYXJjaCAkdmFycyhoc3RlcHMpICRzdGVwXSAhPSAtMSl9IHsKLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCB2YXJzKGZsb3dfc3RlcHMsaGllcikgIlx0JGxpbmVcbiIKLSAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICBhcHBlbmQgdmFycyhmbG93X3N0ZXBzLGZsYXQpICJcdCRsaW5lXG4iCi0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICBhcHBlbmQgdmFycyhmbG93X3N0ZXBzKSAiXH1cbiIKLSAgICAgICAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhoc3RlcHMpXSAmJiAoW2xzZWFyY2ggJHZhcnMoaHN0ZXBzKSAkc3RlcF0gIT0gLTEpfSB7Ci0gICAgICAgICAgICAgICAgICBhcHBlbmQgdmFycyhmbG93X3N0ZXBzLGhpZXIpICJcbiAgIFx9XG4iCi0gICAgICAgICAgICAgICAgICBpZiB7JHN0ZXAgPT0gInBhcnRpdGlvbiJ9IHsKLSAgICAgICAgICAgICAgICAgICAgIGZvcmVhY2ggcCAkdmFycyhwYXJ0aXRpb25fbGlzdCkgewotIyAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCB2YXJzKGZsb3dfc3RlcHMsaGllcikgIlxuICBzY2hlZHVsZV9mbG93IC1mbG93ICRwIC1kaXIgJHZhcnMocGFydGl0aW9uX2RpcikvJHAiCi0gICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgdmFycyhmbG93X3N0ZXBzLGhpZXIpICJcbiAgc2NoZWR1bGVfZmxvdyAtZmxvdyBibG9jayAtZGlyICR2YXJzKHBhcnRpdGlvbl9kaXIpLyRwIgotICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgYXBwZW5kIHZhcnMoZmxvd19zdGVwcyxoaWVyKSAiXG5cfVxuIgotICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgIGlmIHsoW2ZpbGUgdGFpbCBbZmlsZSBkaXJuYW1lIFtwd2RdXV0gPT0gIiR2YXJzKHBhcnRpdGlvbl9kaXIpIikgJiYgKCRzdGVwID09ICJzaWdub2ZmIil9IHsKLSAgICAgICAgICAgICAgICAgICAgIGlmIHtbbHNlYXJjaCAkdmFycyhwYXJ0aXRpb25fbGlzdCkgJHZhcnMoZGVzaWduKV0gPT0gLTF9IHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCB2YXJzKGZsb3dfc3RlcHMsZmxhdCkgIlxuICAgXH1cbiIKLSAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCB2YXJzKGZsb3dfc3RlcHMsZmxhdCkgIlxuICBzY2hlZHVsZV9mbG93IC1mbG93IGZpbmFsX2Fzc2VtYmx5IgotICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIHZhcnMoZmxvd19zdGVwcyxmbGF0KSAiXG5cfVxuIgotICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCB2YXJzKGZsb3dfc3RlcHMsZmxhdCkgIlxuICAgXH1cbiIKLSMgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCB2YXJzKGZsb3dfc3RlcHMsZmxhdCkgIlxuICBzY2hlZHVsZV9mbG93IC1mbG93ICR2YXJzKHRvcF9jZWxsKSAtZGlyICR2YXJzKHBhcnRpdGlvbl9kaXIpLyR2YXJzKHRvcF9jZWxsKSIKLSAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCB2YXJzKGZsb3dfc3RlcHMsZmxhdCkgIlxuICBzY2hlZHVsZV9mbG93IC1mbG93IHRvcCAtZGlyICR2YXJzKHBhcnRpdGlvbl9kaXIpLyR2YXJzKHRvcF9jZWxsKSIKLSAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCB2YXJzKGZsb3dfc3RlcHMsZmxhdCkgIlxuXH1cbiIKLSAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICBpZiB7W3JlZ2V4cCBzeW5fICRzdGVwXX0geyAKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIHskdmFycyhyYyl9IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIHskdmFycyhlbmFibGVfcmNwKSAmJiAoJHN0ZXAgPT0gInN5bl9wbGFjZSIpfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgdmFycyhmbG93X3N0ZXBzLGZsYXQpICJcbiAgc2NoZWR1bGVfZmxvdyAtZmxvdyBpbm5vdnVzIC1kYiBcIiR2YXJzKGRic19kaXIpL3N5bl9wbGFjZS9zeW5fcGxhY2Uubm92dXNfc2V0dXAudGNsXCJcbiIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZWlmIHshJHZhcnMoZW5hYmxlX3JjcCkgJiYgKCR2YXJzKHN0ZXApID09ICJzeW5faW5jciIpfSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgdmFycyhmbG93X3N0ZXBzLGZsYXQpICJcbiAgc2NoZWR1bGVfZmxvdyAtZmxvdyBpbm5vdnVzIC1kYiBcIiR2YXJzKGRic19kaXIpL3N5bl9pbmNyL3N5bl9pbmNyLm5vdnVzX3NldHVwLnRjbFwiXG4iCi0gICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICB9IAotICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIHZhcnMoZmxvd19zdGVwcyxmbGF0KSAiXH1cbiIKLSAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgdmFycyhmbG93X3N0ZXBzLGZsYXQpICJcfVxuXH1cbiIKLSAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIH0gICAgCi0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIHNldCBhY3Rpb24gJHN0ZXAKLQotICAgICAgICAgfQotICAgICAgfQotCi0gICAgICAjCi0gICAgICAjIENyZWF0ZSBhIGZpbGUgdGhhdCBzZXRzIHVwIGFsbCBvZiB0aGUgdmFyaWFibGUgc2V0dGluZ3MgdGhhdCB3ZXJlCi0gICAgICAjIHVzZWQgaW4gdGhpcyBpbnZvY2F0aW9uCi0gICAgICAjCi0KLSAgICMgR0RHIC0gaXMgdGhpcyBuZWVkZWQgYW55bW9yZQotICAgaWYgezB9IHsKLSAgICAgICMgQkNMOiBDaGFuZ2VkIHRvIHRjbCBmaWxlIG1rZGlyCi0gICAgICBmaWxlIG1rZGlyICR2YXJzKHNjcmlwdF9kaXIpCi0gICAgICBzZXQgb3AgW29wZW4gJHZhcnMoc2NyaXB0X2RpcikvdmFycy50Y2wgd10KLSAgICAgIHB1dHMgJG9wICIjIHRoaXMgaXMgdGhlIG9uZSIKLSAgICAgIHB1dHMgJG9wICJpZiB7IVxbaW5mbyBleGlzdHMgdmFyc1xdfSB7IgotICAgICAgcHV0cyAkb3AgIiAgIGdsb2JhbCB2YXJzIgotICAgICAgcHV0cyAkb3AgIn0iCi0jICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKHVzZXJfYXJyYXlzKV19IHsKLSMgICAgICAgICBmb3JlYWNoIGFycmF5ICR2YXJzKHVzZXJfYXJyYXlzKSB7Ci0jICAgICAgICAgICAgcHV0cyAkb3AgIiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIgotIyAgICAgICAgICAgIHB1dHMgJG9wICJnbG9iYWwgJGFycmF5IgotIyAgICAgICAgICAgIHNldCBjbWQgICJhcnJheSBuYW1lcyAkYXJyYXkiCi0jICAgICAgICAgICAgc2V0IHV2YXJzIFtldmFsICRjbWRdCi0jICAgICAgICAgICAgZm9yZWFjaCB2YXIgJHV2YXJzIHsKLSMgICAgICAgICAgICAgICBpZiB7W3JlZ2V4cCB7XCR9ICR2YXJzKCR2YXIpXX0gewotIyAgICAgICAgICAgICAgICAgcHV0cyAkb3AgInNldCAkYXJyYXkoJHZhcikgXCIkJGFycmF5KCR2YXIpXCIiCi0jICAgICAgICAgICAgICAgfSBlbHNlIHsKLSMgICAgICAgICAgICAgICAgIHB1dHMgJG9wICJzZXQgJGFycmF5KCR2YXIpIFx7JGFycmF5KCR2YXIpXH0iCi0jICAgICAgICAgICAgICAgfQotIyAgICAgICAgICAgIH0KLSMgICAgICAgICB9Ci0jICAgICAgfQotICAgICAgIyMgQkNMOiBBZGRlZCBzb3VyY2luZyAuZmYudGNsIHRvIHZhcnMudGNsCi0gICAgICAjcHV0cyAkb3AgImlmIHtcW2ZpbGUgZXhpc3RzIC5mZi50Y2xcXX0geyIKLSAgICAgICNwdXRzICRvcCAiICBzb3VyY2UgLmZmLnRjbCIKLSAgICAgICNwdXRzICRvcCAifSIKLSAgICAgIHB1dHMgJG9wICJnbG9iYWwgZW52XG5cbiIKLSAgICAgIHB1dHMgJG9wICIjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIKLSAgICAgIHB1dHMgJG9wICJzZXQgZW52KFZQQVRIKSAkZW52KFZQQVRIKSIKLSAgICAgIHB1dHMgJG9wICJzZXQgdmFycyhydW5kaXIpICR2YXJzKHJ1bmRpcikiCi0gICAgICBmb3JlYWNoIHZhciBbbHNvcnQgW2FycmF5IG5hbWVzIHZhcnNdXSB7Ci0gICAgICAgICAjIEJDTDogT25seSB3cml0ZSBvdXQgdmFyaWFibGUgdmFsdWVzIGluIGN1cmxpZXMgaWYgbm90IHVzaW5nICR2YXJzKCkgaW4gdGhlIHZhbHVlIG9mIHRoZSB2YXJpYWJsZQotICAgICAgICAgaWYge1tyZWdleHAge1wkfSAkdmFycygkdmFyKV19IHsKLSAgICAgICAgICAgcHV0cyAkb3AgInNldCB2YXJzKCR2YXIpIFwiJHZhcnMoJHZhcilcIiIKLSAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgIHB1dHMgJG9wICJzZXQgdmFycygkdmFyKSBceyR2YXJzKCR2YXIpXH0iCi0gICAgICAgICB9Ci0gICAgICB9Ci0gICAgICBwdXRzICRvcCAic2V0IHZhcnMocmVzdG9yZV9kZXNpZ24pIHt0cnVlfSIKLSMgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoY3BmX2ZpbGUpXX0gewotIyAgICAgICAgIHB1dHMgJG9wICJjYXRjaCB7YWxpYXMgZmZfbW9kaWZ5X3Bvd2VyX2RvbWFpbnMgRkZfRURJOjptb2RpZnlfcG93ZXJfZG9tYWluc30iCi0jICAgICAgICAgcHV0cyAkb3AgImNhdGNoIHthbGlhcyBmZl9hZGRfcG93ZXJfc3dpdGNoZXMgRkZfRURJOjphZGRfcG93ZXJfc3dpdGNoZXN9IgotIyAgICAgICAgIHB1dHMgJG9wICJjYXRjaCB7YWxpYXMgZmZfcm91dGVfc2Vjb25kYXJ5X3BnX25ldHMgRkZfRURJOjpyb3V0ZV9zZWNvbmRhcnlfcGdfbmV0c30iCi0jICAgICAgICAgcHV0cyAkb3AgImNhdGNoIHthbGlhcyBmZl9nZXRfcG93ZXJfZG9tYWlucyBGRl9FREk6OmdldF9wb3dlcl9kb21haW5zfSIKLSMgICAgICAgICBwdXRzICRvcCAiY2F0Y2gge2FsaWFzIGZmX2J1ZmZlcl9hbHdheXNfb25fbmV0cyBGRl9FREk6OmJ1ZmZlcl9hbHdheXNfb25fbmV0c30iCi0jICAgICAgICAgcHV0cyAkb3AgImNhdGNoIHthbGlhcyBmZl9pbnNlcnRfd2VsbHRhcHNfZW5kY2FwcyBGRl9FREk6Omluc2VydF93ZWxsdGFwc19lbmRjYXBzfSIKLSMgICAgICB9Ci0gICAgICBjbG9zZSAkb3AKLSAgIH0KLQotICAgICAgcmV0dXJuICRhY3Rpb24KLSAgIH0KLQotICAgcHJvYyBpbnNlcnRfY29tbWVudHMge30gewotCi0gICAgICBnbG9iYWwgdmFycwotCi0gICAgICBzZXQgY29tbWVudHMgIiIKLSAgICAgIGFwcGVuZCBjb21tZW50cyAiIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjI1xuIgotICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIFZhcmlhYmxlcyBhZmZlY3RpbmcgdGhpcyBzdGVwOlxuIgotICAgICAgYXBwZW5kIGNvbW1lbnRzICIjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4iCi0gICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoY29tbWVudHMpXX0gewotICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICR2YXJzKGNvbW1lbnRzKQotICAgICAgICAgdW5zZXQgdmFycyhjb21tZW50cykKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgICAgTm8gdmFyaWFibGVzIGRlZmluZWQgZm9yIHRoaXMgc3RlcCAuLi5cbiIKLSAgICAgIH0KLSAgICAgIGFwcGVuZCBjb21tZW50cyAiIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjI1xuIgotICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKHVjb21tZW50cyldfSB7Ci0gICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgQWRkaXRpb25hbCB2YXJpYWJsZXMgZm9yIHRoaXMgc3RlcDpcbiIKLSAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIgotICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICR2YXJzKHVjb21tZW50cykKLSAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjI1xuIgotICAgICAgICAgdW5zZXQgdmFycyh1Y29tbWVudHMpCi0gICAgICB9Ci0gICAgICByZXR1cm4gJGNvbW1lbnRzCi0gICB9Ci0KLSMgICBwcm9jIHJ1bl9hbGwge30gewotIyAKLSMgICAgICBnbG9iYWwgdmFycwotIwotIyAgICAgIHNldCB0aW1lIDAKLSMgICAgICBzZXQgaW5kZXggMAotIyAgICAgIHNldCBzdG9wX3N0ZXAgc2lnbm9mZgotIyAgICAgIHNldCB2YXJzKGNvZGVnZW4pIGZhbHNlCi0jICAgICAgaWYgeyFbaW5mbyBleGlzdHMgdmFycyh2cGF0aCldfSB7IHNldCB2YXJzKHZwYXRoKSBtYWtlIH0KLSMgICAgICAKLSMgICAgICBmb3JlYWNoIHN0ZXAgJHZhcnMoc3RlcHMpIHsKLSMgICAgICAgICBpZiB7W2ZpbGUgZXhpc3RzICR2YXJzKHZwYXRoKS8kc3RlcF19IHsKLSMgICAgICAgICAgICBpZiB7W2ZpbGUgbXRpbWUgJHZhcnModnBhdGgpLyRzdGVwXSA+ICR0aW1lfSB7Ci0jICAgICAgICAgICAgICAgaWYge1tsaW5kZXggJHZhcnMoc3RlcHMpICRpbmRleF0gPT0gInNpZ25vZmYifSB7Ci0jICAgICAgICAgICAgICAgICAgUHV0cyAiPEZGPiBTVEVQIHNpZ25vZmYgQ09NUExFVEUgLi4uIE5PVEhJTkcgVE8gRE8iCi0jICAgICAgICAgICAgICAgfSBlbHNlIHsKLSMgICAgICAgICAgICAgICAgICBzZXQgc3RhcnRfc3RlcCBbbGluZGV4ICR2YXJzKHN0ZXBzKSBbZXhwciAkaW5kZXggKyAxXV0KLSMgICAgICAgICAgICAgICB9Ci0jICAgICAgICAgICAgfQotIyAgICAgICAgIH0gZWxzZSB7Ci0jICAgICAgICAgICAgc2V0IHN0YXJ0X3N0ZXAgJHN0ZXAKLSMgICAgICAgICAgICBicmVhawotIyAgICAgICAgIH0KLSMgICAgICAgICBpbmNyIGluZGV4Ci0jICAgICAgfQotIyAgICAgIAotIyAgICAgIHB1dHMgIjxGRj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iCi0jICAgICAgaWYgeyRzdGFydF9zdGVwID09ICRzdG9wX3N0ZXB9IHsKLSMgICAgICAgICBwdXRzICI8RkY+IFJVTk5JTkcgU1RFUCAkc3RhcnRfc3RlcCAuLi4iCi0jICAgICAgfSBlbHNlIHsKLSMgICAgICAgICBwdXRzICI8RkY+IFJVTk5JTkcgU1RFUCAkc3RhcnRfc3RlcCB0aHJvdWdoICRzdG9wX3N0ZXAgLi4uIgotIyAgICAgIH0KLSMgICAgICBwdXRzICI8RkY+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIgotIyAgICAgIHNsZWVwIDUKLSMgICAgICAKLSMgICAgICAjCi0jICAgICAgIyBFbXVsYXRlIHRoZSBmdW5jdGlvbmFsaXR5IG9mIHRoZSAibWFrZSIgcHJvZ3JhbS4gIElmIGEgZmlsZSBkb2Vzbid0IGV4aXN0LAotIyAgICAgICMgb3IgaWYgaXQncyBwcmVkZWNlc3NvciBzdGVwIGhhcyBleGVjdXRlZCBtb3JlIHJlY2VudGx5LCBydW4gdGhlIGN1cnJlbnQKLSMgICAgICAjIHN0ZXAgYW5kIHVwZGF0ZSB0aGUgdGltZS9kYXRlIHN0YW1wcyBvZiB0aGUgZmlsZXMgd2UgdHJhY2sgcHJvZ3Jlc3Mgd2l0aAotIyAgICAgICMKLSMgICAgICAKLSMgICAgICBzZXQgdmFycyhzdG9wX3N0ZXApICRzdG9wX3N0ZXAKLSMgICAgICAKLSMgICAgICBzZXQgbGFzdF9zdGVwICIiCi0jICAgICAgc2V0IHZhcnMocmVzdG9yZV9kZXNpZ24pIDEKLSMgICAgICBpZiB7JHZhcnMoZW5hYmxlX3Fvcl9jaGVjayl9IHsKLSMgICAgICAgICBzZXQgY2hlY2tfcW9yICR2YXJzKHNjcmlwdF9kaXIpL2NoZWNrX3Fvci50Y2wKLSMgICAgICB9Ci0jICAgICAgZXhlYyBta2RpciAtcCBtYWtlCi0jICAgICAgZm9yZWFjaCBzdGVwICR2YXJzKHN0ZXBzKSB7Ci0jICAgICAgICAgc2V0IHZhcnMoc3RlcCkgJHN0ZXAKLSMgICAgICAgICBQdXRzICI8RkY+IFNURVAgJHZhcnMoc3RlcCkgLi4uIgotIyAgICAgICAgIHNldCB0aGlzX3NlbWFwaG9yZSAiJHZhcnModnBhdGgpLyRzdGVwIgotIyAgICAgICAgIHNldCBsYXN0X3NlbWFwaG9yZSAiJHZhcnModnBhdGgpLyRsYXN0X3N0ZXAiCi0jICAgICAgCi0jICAgICAgICAgc2V0IHJ1bl9zdGVwIGZhbHNlCi0jICAgICAgICAgaWYgeyFbZmlsZSBleGlzdHMgJHRoaXNfc2VtYXBob3JlXX0gewotIyAgICAgICAgICAgIHNldCBydW5fc3RlcCB0cnVlCi0jICAgICAgICAgfSBlbHNlaWYgeyRsYXN0X3N0ZXAgIT0gIiJ9IHsKLSMgICAgICAgICAgICBmaWxlIHN0YXQgJHRoaXNfc2VtYXBob3JlIHRoaXNfc3RhdAotIyAgICAgICAgICAgIGZpbGUgc3RhdCAkbGFzdF9zZW1hcGhvcmUgbGFzdF9zdGF0Ci0jICAgICAgICAgICAgaWYgeyR0aGlzX3N0YXQobXRpbWUpIDwgJGxhc3Rfc3RhdChtdGltZSl9IHsKLSMgICAgICAgICAgICAgICBzZXQgcnVuX3N0ZXAgdHJ1ZQotIyAgICAgICAgICAgIH0KLSMgICAgICAgICB9Ci0jICAgICAgCi0jICAgICAgICAgIwotIyAgICAgICAgICMgQ2hlY2sgdGhlIHF1YWxpdHkgb2YgcmVzdWx0cyBmcm9tIHRoZSBsYXN0IHN0ZXAuICBJZiB0aGUgcmVzdWx0cyBhcmVuJ3QKLSMgICAgICAgICAjIGFzIGV4cGVjdGVkLCBkb24ndCBwcm9jZWVkIHRvIHRoZSBuZXh0IHN0ZXAKLSMgICAgICAgICAjCi0jICAgICAgICAgaWYgeyR2YXJzKGVuYWJsZV9xb3JfY2hlY2spfSB7Ci0jICAgICAgICAgICAgaWYgeyRzdGVwICE9ICJpbml0In0gewotIyAgICAgICAgICAgICAgIHNldCBxb3IgW2NhdGNoIHtleGVjICRjaGVja19xb3IgJGxhc3Rfc2VtYXBob3JlfSBtc2ddCi0jICAgICAgICAgICAgICAgaWYgeyRxb3J9IHsKLSMgICAgICAgICAgICAgICAgICBwdXRzICI8RkY+IEVSUk9SOiBRT1IgUkVTVUxUIENIRUNLIElORElDQVRFUyBBIFBST0JMRU0gSU4gU1RFUCAkbGFzdF9zdGVwIgotIyAgICAgICAgICAgICAgICAgIGV4aXQgLTExMQotIyAgICAgICAgICAgICAgIH0KLSMgICAgICAgICAgICB9Ci0jICAgICAgICAgfQotIyAgICAgIAotIyAgICAgICAgIHNldCBsYXN0X3N0ZXAgJHN0ZXAKLSMgICAgICAgICBpZiB7ISRydW5fc3RlcH0gewotIyAgICAgICAgICAgIGNvbnRpbnVlCi0jICAgICAgICAgfQotIyAgICAgIAotIyAgICAgICAgICMKLSMgICAgICAgICAjIFNvdXJjZSB0aGUgY29udHJvbCBmaWxlIHRoYXQgcnVucyB0aGUgc3RlcC4gIElmIGl0IGhhZCBhbiBlcnJvciwgZXhpdAotIyAgICAgICAgICMgaW1tZWRpYXRlbHkuICBPdGhlcndpc2UsIHVwZGF0ZSB0aGUgdGltZS9kYXRlIHN0YW1wIG9mIHRoZSBjb3JyZXNwb25kaW5nCi0jICAgICAgICAgIwotIyAgICAgICAgICMKLSMgICAgICAKLSMgICAgICAgICBpZiB7W2NhdGNoIHtGRl9FREk6OnJ1bl8kc3RlcH0gbWVzc2FnZV19IHsKLSMgICAgICAgICAgICBwdXRzICRtZXNzYWdlCi0jICAgICAgICAgICAgZXhpdCAtMTExCi0jICAgICAgICAgfQotIyAgICAgICAgIHNldCB2YXJzKHJlc3RvcmVfZGVzaWduKSAwCi0jICAgICAgCi0jICAgICAgICAgIwotIyAgICAgICAgICMgSWYgdGhlcmUgaXMgYSBRT1IgY2hlY2sgZmlsZSBmb3IgdGhpcyBzdGVwLCBleGVjdXRlIGl0IGFuZCBwbGFjZSB0aGUKLSMgICAgICAgICAjIHJlc3VsdCBpbnRvIHRoZSBtYWtlIGZpbGUuICBPdGhlcndpc2UganVzdCB0b3VjaCB0aGUgZmlsZQotIyAgICAgICAgICMKLSMgICAgICAKLSMgICAgICAgICBpZiB7JHZhcnMoZW5hYmxlX3Fvcl9jaGVjayl9IHsKLSMgICAgICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoJHN0ZXAscW9yX3RjbF19IHsKLSMgICAgICAgICAgICAgICBzZXQgcW9yX2ZpbGUgJHZhcnMoJHN0ZXAscW9yX3RjbCkKLSMgICAgICAgICAgICAgICBpZiB7W2ZpbGUgZXhpc3RzICRxb3JfZmlsZV19IHsKLSMgICAgICAgICAgICAgICAgICBzZXQgcW9yIFtjYXRjaCB7ZXhlYyAkcW9yX2ZpbGV9IG1zZ10KLSMgICAgICAgICAgICAgICAgICBzZXQgbWFrZV9maWxlIFtvcGVuICR0aGlzX3NlbWFwaG9yZSB3XQotIyAgICAgICAgICAgICAgICAgIHB1dHMgJG1ha2VfZmlsZSAiJHFvciIKLSMgICAgICAgICAgICAgICAgICBjbG9zZSAkbWFrZV9maWxlCi0jICAgICAgICAgICAgICAgfQotIyAgICAgICAgICAgIH0KLSMgICAgICAgICB9Ci0jICAgICAgICAgZXhlYyAvYmluL3RvdWNoICR0aGlzX3NlbWFwaG9yZQotIyAgICAgIAotIyAgICAgICAgIGlmIHskc3RlcCA9PSAkc3RvcF9zdGVwfSB7Ci0jICAgICAgICAgICAgUHV0cyAiPEZGPiBEb25lIiAKLSMgICAgICAgICB9Ci0jICAgICAgfQotIyAgIH0KLQotICAgcHJvYyBsb2FkX3Bvd2VyX2ludGVudCB7fSB7Ci0KLSAgICAgIGdsb2JhbCB2YXJzCi0KLSAgICAgIHNldCBjb21tYW5kcyAiIgotCi0gICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMoY3BmX2ZpbGUpXX0gewotICAgICAgICAgc2V0IGNvbW1hbmQgImxvYWRDUEYgJHZhcnMoY3BmX2ZpbGUpXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksbG9hZF9jcGYgJGNvbW1hbmRdCi0gICAgICAgICBzZXQgY29tbWFuZCAiY29tbWl0Q1BGIgotICAgICAgICAgaWYgeyR2YXJzKGNwZl9rZWVwX3Jvd3MpfSB7Ci0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiIC1rZWVwUm93cyIKLSAgICAgICAgIH0KLSAgICAgICAgIGlmIHskdmFycyhjcGZfcG93ZXJfZG9tYWluKX0gewotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAtcG93ZXJEb21haW4iCi0gICAgICAgICB9Ci0gICAgICAgICBpZiB7JHZhcnMoY3BmX2lzb2xhdGlvbil9IHsKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgLWlzb2xhdGlvbiIKLSAgICAgICAgIH0KLSAgICAgICAgIGlmIHskdmFycyhjcGZfc3RhdGVfcmV0ZW50aW9uKX0gewotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAtc3RhdGVfcmV0ZW50aW9uIgotICAgICAgICAgfQotICAgICAgICAgaWYgeyR2YXJzKGNwZl9sZXZlbF9zaGlmdGVyKX0gewotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAtbGV2ZWxfc2hpZnRlciIKLSAgICAgICAgIH0KLSAgICAgICAgIGlmIHskdmFycyhjcGZfcG93ZXJfc3dpdGNoKX0gewotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAtcG93ZXJfc3dpdGNoIgotICAgICAgICAgfQotICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIlxuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLGNvbW1pdF9jcGYgJGNvbW1hbmRdCi0gICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKGNwZl9maWxlKVxuIgotICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhjcGZfaXNvbGF0aW9uKVxuIgotICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhjcGZfc3RhdGVfcmV0ZW50aW9uKVxuIgotICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhjcGZfbGV2ZWxfc2hpZnRlcilcbiIKLSAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMoY3BmX3Bvd2VyX3N3aXRjaClcbiIKLSAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMoY3BmX3Bvd2VyX2RvbWFpbilcbiIKLSAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMoY3BmX2tlZXBfcm93cylcbiIKLSAgICAgIH0gZWxzZWlmIHtbaW5mbyBleGlzdHMgdmFycyhpZWVlMTgwMV9maWxlKV19IHsKLSAgICAgICAgIHNldCBjb21tYW5kICJyZWFkX3Bvd2VyX2ludGVudCAkdmFycyhpZWVlMTgwMV9maWxlKSAtMTgwMVxuIgotICAgICAgICAgYXBwZW5kIGNvbW1hbmRzIFtGRjo6d3JhcF9jb21tYW5kICR2YXJzKHN0ZXApLGxvYWRfaWVlZTE4MDEgJGNvbW1hbmRdCi0gICAgICAgICBzZXQgY29tbWFuZCAiY29tbWl0X3Bvd2VyX2ludGVudCIKLSAgICAgICAgIGlmIHskdmFycyhpZWVlMTgwMV9rZWVwX3Jvd3MpfSB7Ci0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiIC1rZWVwUm93cyIKLSAgICAgICAgIH0KLSAgICAgICAgIGlmIHskdmFycyhpZWVlMTgwMV9wb3dlcl9kb21haW4pfSB7Ci0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiIC1wb3dlcl9kb21haW4iCi0gICAgICAgICB9Ci0gICAgICAgICBpZiB7JHZhcnMoaWVlZTE4MDFfaXNvbGF0aW9uKX0gewotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAtaXNvbGF0aW9uIgotICAgICAgICAgfQotICAgICAgICAgaWYgeyR2YXJzKGllZWUxODAxX3N0YXRlX3JldGVudGlvbil9IHsKLSAgICAgICAgICAgIGFwcGVuZCBjb21tYW5kICIgLXN0YXRlX3JldGVudGlvbiIKLSAgICAgICAgIH0KLSAgICAgICAgIGlmIHskdmFycyhpZWVlMTgwMV9sZXZlbF9zaGlmdGVyKX0gewotICAgICAgICAgICAgYXBwZW5kIGNvbW1hbmQgIiAtbGV2ZWxfc2hpZnRlciIKLSAgICAgICAgIH0KLSAgICAgICAgIGlmIHskdmFycyhpZWVlMTgwMV9wb3dlcl9zd2l0Y2gpfSB7Ci0gICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiIC1wb3dlcl9zd2l0Y2giCi0gICAgICAgICB9Ci0gICAgICAgICBhcHBlbmQgY29tbWFuZCAiXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksY29tbWl0X2llZWUxODAxICRjb21tYW5kXQotICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhpZWVlMTgwMV9maWxlKVxuIgotICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhpZWVlMTgwMV9pc29sYXRpb24pXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKGllZWUxODAxX3N0YXRlX3JldGVudGlvbilcbiIKLSAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMoaWVlZTE4MDFfbGV2ZWxfc2hpZnRlcilcbiIKLSAgICAgICAgIGFwcGVuZCBjb21tZW50cyAiIyAtIHZhcnMoaWVlZTE4MDFfcG93ZXJfc3dpdGNoKVxuIgotICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhpZWVlMTgwMV9wb3dlcl9kb21haW4pXG4iCi0gICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKGllZWUxODAxX2tlZXBfcm93cylcbiIKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhjcGZfZmlsZSlcbiIKLSAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKGNwZl9pc29sYXRpb24pXG4iCi0gICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhjcGZfc3RhdGVfcmV0ZW50aW9uKVxuIgotICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMoY3BmX2xldmVsX3NoaWZ0ZXIpXG4iCi0gICAgICAgICBhcHBlbmQgdWNvbW1lbnRzICIjIC0gdmFycyhjcGZfcG93ZXJfc3dpdGNoKVxuIgotICAgICAgICAgYXBwZW5kIHVjb21tZW50cyAiIyAtIHZhcnMoY3BmX3Bvd2VyX2RvbWFpbilcbiIKLSAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKGNwZl9rZWVwX3Jvd3MpXG4iCi0gICAgICB9Ci0gICAgICByZXR1cm4gJGNvbW1hbmRzCi0gICB9Ci0KLSAgIHByb2Mgc2V0X2Rlc2lnbl9tb2RlIHt9IHsKLQotICAgICAgZ2xvYmFsIHZhcnMKLQotICAgICAgc2V0IGNvbW1hbmRzICIiCi0gICAgICBzZXQgY29tbWVudHMgIiIKLSAgICAgIHNldCB1Y29tbWVudHMgIiIKLQotICAgICAgc2V0IHByb2Nlc3MgW3JlZ3N1YiAibm0iICR2YXJzKHByb2Nlc3MpICIiXQotICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhwcm9jZXNzKVxuIgotICAgICAgaWYge1tsaW5kZXggW3NwbGl0ICR2YXJzKHZlcnNpb24pICIuIl0gIDBdIDwgMTV9IHsKLSAgICAgICAgIGlmIHskdmFycyhoaWdoX3RpbWluZ19lZmZvcnQpfSB7Ci0gICAgICAgICAgICBhcHBlbmQgY29tbWVudHMgIiMgLSB2YXJzKGhpZ2hfdGltaW5nX2VmZm9ydClcbiIKLSAgICAgICAgICAgIGlmIHshW3JlZ2V4cCAiOS4xIiAkdmFycyh2ZXJzaW9uKV19IHsKLSAgICAgICAgICAgICAgIHNldCBjb21tYW5kICJzZXREZXNpZ25Nb2RlIC1wcm9jZXNzICRwcm9jZXNzIC1mbG93RWZmb3J0IGhpZ2hcbiIKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBzZXQgY29tbWFuZCAic2V0RGVzaWduTW9kZSAtcHJvY2VzcyAkcHJvY2Vzc1xuIgotICAgICAgICAgICAgfQotICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHNldCBjb21tYW5kICJzZXREZXNpZ25Nb2RlIC1wcm9jZXNzICRwcm9jZXNzXG4iCi0gICAgICAgICB9Ci0gICAgICB9IGVsc2UgewotICAgICAgICAgaWYge1tzdHJpbmcgdG9sb3dlciAkdmFycyhmbG93X2VmZm9ydCldICE9ICJzdGFuZGFyZCJ9IHsKLSAgICAgICAgICAgIHNldCBjb21tYW5kICJzZXREZXNpZ25Nb2RlIC1wcm9jZXNzICRwcm9jZXNzIC1mbG93RWZmb3J0IFtzdHJpbmcgdG9sb3dlciAkdmFycyhmbG93X2VmZm9ydCldIgotICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhmbG93X2VmZm9ydClcbiIKLSAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBzZXQgY29tbWFuZCAic2V0RGVzaWduTW9kZSAtcHJvY2VzcyAkcHJvY2VzcyIKLSAgICAgICAgIH0KLSAgICAgICAgIGlmIHskdmFycyhwb3dlcl9lZmZvcnQpICE9ICJub25lIn0gewotICAgICAgICAgICAgICAgYXBwZW5kIGNvbW1lbnRzICIjIC0gdmFycyhwb3dlcl9lZmZvcnQpXG4iCi0gICAgICAgICAgICAgICBhcHBlbmQgY29tbWFuZCAiIC1wb3dlckVmZm9ydCAkdmFycyhwb3dlcl9lZmZvcnQpIgotICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIGFwcGVuZCB1Y29tbWVudHMgIiMgLSB2YXJzKHBvd2VyX2VmZm9ydCkgXCJsb3cgb3IgaGlnaFwiXG4iCi0gICAgICAgICB9Ci0gICAgICB9Ci0jICAgICAgdXBsZXZlbCAjMCBhcHBlbmQgY29tbWFuZHMgW0ZGOjp3cmFwX2NvbW1hbmQgJHZhcnMoc3RlcCksc2V0X2Rlc2lnbl9tb2RlICIkY29tbWFuZFxuIl0KLSAgICAgIGFwcGVuZCBjb21tYW5kcyBbRkY6OndyYXBfY29tbWFuZCAkdmFycyhzdGVwKSxzZXRfZGVzaWduX21vZGUgIiRjb21tYW5kXG4iXQotCi0gICAgICByZXR1cm4gW2xpc3QgJGNvbW1hbmRzICRjb21tZW50cyAkdWNvbW1lbnRzXQotICAgfQotCi0gICAjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gICAjIFRoaXMgc2NyaXB0IHdpbGwgcHJlcGFyZSBhIGRpZ2l0YWwgYmxvY2sgZm9yIExWUy4gSXQgY2FuIGJlIGFkZGVkIHRvIHRoZSBGRiBieSBhZGRpbmcgdGhlIHRhZzoKLSAgICMKLSAgICMgICAgc2V0IHZhcnMoc2lnbm9mZixzYXZlX2Rlc2lnbixwb3N0X3RjbCkgICAgICAgIDxwYXRoPi9jcmVhdGVTeW1ib2xBbmRDREYudGNsCi0gICAjIAotICAgIyBOb3RlLCBpdCBtdXN0IGJlIHJ1biBhZnRlciB0aGUgZGVzaWduIGlzIHNhdmVkIGluIHRoZSBzaWdub2ZmIHN0ZXAuCi0gICAjCi0gICAjIFRoZSBzY3JpcHQgZG9lcyB0aGUgZm9sbG93aW5nOgotICAgIwotICAgIyAxKSBDcmVhdGVzIHRoZSBTS0lMTCBzY3JpcHQ6IGdnQ3JlYXRlU3ltYm9sQW5kQ0RGLmlsCi0gICAjCi0gICAjICAgIFdoZW4gdGhpcyBzY3JpcHQgaXMgY2FsbGVkIGJ5IFZpcnR1b3NvIChsYXRlciBpbiB0aGUgZmxvdyksIGl0IHdpbGwgcGVyZm9ybSAKLSAgICMgICAgdGhlIGZvbGxvd2luZzoKLSAgICMKLSAgICMgICAgICAgLWNvcHkgdmlldzogIDxsaWI+IDxjZWxsPiBzaWdub2ZmIAotICAgIyAgICAgICAgICAgICAgIHRvOiAgPGxpYj4gPGNlbGw+IGxheW91dAotICAgIwotICAgIyAgICAgICAtUmVtYXN0ZXIgdGhlIGluc3RhbmNlcyBvZiB0aGUgdmlldyAibGF5b3V0IiB0byByZWZlcmVuY2UgJ2xheW91dCcgdmlld3MgCi0gICAjICAgICAgICByYXRoZXIgdGhhbiAnYWJzdHJhY3QnIHZpZXdzCi0gICAjCi0gICAjICAgICAgIC1DcmVhdGUgaWhkbCBwYXJhbWV0ZXIgYW5kIGNvbW1hbmQgZmlsZXMgd2hpY2ggYXJlIHVzZWQgYnkgdmVyaWxvZ0luCi0gICAjCi0gICAjICAgICAgIC1DcmVhdGUgYSB2ZXJpbG9nIHN0dWIgZmlsZSBmcm9tIHRoZSBwaHlzaWNhbCBuZXRsaXN0Ci0gICAjCi0gICAjICAgICAgIC1SdW4gaWhkbCAodmVyaWxvZ0luKSBvbiB0aGUgc3R1YiBmaWxlIHRvIGNyZWF0ZSB0aGUgJ3N5bWJvbCcgdmlldwotICAgIwotICAgIyAgICAgICAtQ29weSB0aGUgc3ltYm9sIHZpZXcgdG8gY3JlYXRlIHRoZSBhdUNkbCB2aWV3Ci0gICAjCi0gICAjICAgICAgIC1Vc2UgZWl0aGVyIHYyY2RsIG9yIHYybHZzIHRvIGNvbnZlcnQgdGhlIHZlcmlsb2cgbmV0bGlzdCB0byBDREwgCi0gICAjICAgICAgICBhbmQgc3RvcmUgaXQgaW4gdGhlIGF1Q2RsIHZpZXcKLSAgICMKLSAgICMgICAgICAgLUNyZWF0ZSB0aGUgYmFzZSBsZXZlbCBDREYgdG8gc3VwcG9ydCBhdUNkbCBuZXRsaXN0aW5nCi0gICAjCi0gICAjCi0gICAjIDIpIFNhdmVzIGEgcGh5c2ljYWwgbmV0bGlzdCB0aGF0IGV4Y2x1ZGVzIGZpbGxlciBjZWxscy4gVGhpcyB3aWxsIGJlIHVzZWQgbGF0ZXIgCi0gICAjICAgIHRvIGNyZWF0ZSB0aGUgQ0RMIHZpZXcuCi0gICAjCi0gICAjIDMpIENyZWF0ZXMgdGhlIC5zaW1yYyBmaWxlIHVzZWQgYnkgaWhkbC4KLSAgICMKLSAgICMgNCkgQ3JlYXRlcyB0aGUgU0tJTEwgc2NyaXB0OiBQb3N0UHJvY2Vzc0luVmlydHVvc28uaWwuCi0gICAjCi0gICAjICAgIFRoaXMgc2NyaXB0IHJlYWRzL2V4ZWN1dGVzIHRoZSBzY3JpcHQgZ2dDcmVhdGVTeW1ib2xBbmRDREYuaWwuCi0gICAjCi0gICAjCi0gICAjIDUpIElmIFZpcnR1b3NvIGlzIGluIHRoZSB1c2VyJ3MgcGF0aCwgaXQgd2lsbCBleGVjdXRlIHRoZSBzY3JpcHQ6Ci0gICAjCi0gICAjICAgICAgICAgUG9zdFByb2Nlc3NJblZpcnR1b3NvLmlsIAotICAgIyAKLSAgICMKLSAgICMKLSAgICMgIENyZWF0ZWQgYnk6ICAgQmlsbCBXYXJlaGFtICAgICAwMS8yNi8yMDE1Ci0gICAjICAgICAgICAgICAgICAgIFZpa3JhbSBBZ2Fyd2FsCi0gICAjICAgICAgICAgICAgICAgIEdyZWcgR29ydG9uCi0gICAjCi0gICAjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gICAKLSAgIHByb2MgY3JlYXRlX2x2c19kYXRhIHt9IHsKLSAgIAotICAgICAgZ2xvYmFsIHZhcnMKLSAgICAgIGdsb2JhbCBpbmZvcwotICAgICAgZ2xvYmFsIHdhcm5pbmdzCi0gICAKLSAgICAgICMgQ3JlYXRlIHRoZSBnZ0NyZWF0ZVN5bWJvbEFuZENERi5pbCBza2lsbCBjb2RlCi0gICAgICAKLSAgICAgIHNldCBpbmZvcygkdmFycyhpbmZvX2NvdW50KSkgIkNyZWF0ZWQgdGhlICR2YXJzKHNjcmlwdF9kaXIpL2dnQ3JlYXRlU3ltYm9sQW5kU0RGLmlsIFNLSUxMIHNjcmlwdFxuIgotICAgICAgaW5jciB2YXJzKGluZm9fY291bnQpCi0gICAgICBzZXQgb3AgW29wZW4gJHZhcnMoc2NyaXB0X2RpcikvZ2dDcmVhdGVTeW1ib2xBbmRDREYuaWwgd10KLSAgICAgIHB1dHMgJG9wICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7IgotICAgICAgcHV0cyAkb3AgIjs7OyIKLSAgICAgIHB1dHMgJG9wICI7OzsgRnVuY3Rpb246IGdnQ3JlYXRlU3ltYm9sQW5kQ0RGIC0gcGVyZm9ybXMgc2V2ZXJhbCBmdW5jdGlvbnMgdG8gcHJlcGFyZSBhIGRpZ2l0YWwiCi0gICAgICBwdXRzICRvcCAiOzs7ICBibG9jayBzYXZlZCBmcm9tIElubm92dXMgaW4gT0EgZm9yIGZvbGxvdyBvbiBpbnRlZ3JhdGlvbiBpbiBhIHRvcCBsZXZlbCBWaXJ0dW9zbyIKLSAgICAgIHB1dHMgJG9wICI7OzsgIHNjaGVtYXRpYyB0byBzdXBwb3J0IFBWUyBMVlMuIgotICAgICAgcHV0cyAkb3AgIjs7OyIKLSAgICAgIHB1dHMgJG9wICI7OzsgSW5wdXRzOiIKLSAgICAgIHB1dHMgJG9wICI7OzsgICAgIGxpYnJhcnkgICAgICAgIDogTmFtZSBvZiB0aGUgbGlicmFyeSB3aXRoIHRoZSBkaWdpdGFsIGJsb2NrIgotICAgICAgcHV0cyAkb3AgIjs7OyAgICAgY2VsbE5hbWUgICAgICAgOiBOYW1lIG9mIHRoZSBkaWdpdGFsIGJsb2NrIgotICAgICAgcHV0cyAkb3AgIjs7OyAgICAgdmlld05hbWUgICAgICAgOiBOYW1lIG9mIHRoZSBkaWdpdGFsIGJsb2NrIHVucmVtYXN0ZXJlZCBsYXlvdXQgdmlldyIKLSAgICAgIHB1dHMgJG9wICI7OzsgICAgIHZlcmlsb2dGaWxlICAgIDogTmFtZSBvZiB0aGUgdmVyaWxvZyBuZXRsaXN0IgotICAgICAgcHV0cyAkb3AgIjs7OyAgICAgb3ZlcndyaXRlICAgICAgOiBPdmVyd3JpdGUgZXhpc3RpbmcgbGlicmFyeSIKLSAgICAgIHB1dHMgJG9wICI7OzsiCi0gICAgICBwdXRzICRvcCAiOzs7IE91dHB1dHM6IgotICAgICAgcHV0cyAkb3AgIjs7OyAgICAgbGF5b3V0IHZpZXcgICAgOiBcImxheW91dFwiIHZpZXcgd2l0aCBhYnN0cmFjdHMgcmVtYXN0ZXJlZCB0byB0eXBlIGxheW91dCIKLSAgICAgIHB1dHMgJG9wICI7OzsgICAgIHN5bWJvbCB2aWV3ICAgIDogXCJzeW1ib2xcIiB2aWV3IHdpdGggcGlucyB0byBtYXRjaCB2ZXJpbG9nRmlsIgotICAgICAgcHV0cyAkb3AgIjs7OyAgICAgYXVDZGwgdmlldyAgICAgOiBjb3B5IG9mIHN5bWJvbCB2aWV3IGZvciBjZGwgbmV0bGlzdGluZyBzdG9wIGFuZCB2aWV3IGxpc3RzIgotICAgICAgcHV0cyAkb3AgIjs7OyAgICAgYXVDZGwgQ0RGICAgICAgOiBiYXNlIENERiBhdUNkbCBzaW11bGF0aW9uIHByb3BlcnRpZXMgZm9yIG5ldGxpc3RpbmciCi0gICAgICBwdXRzICRvcCAiOzs7IgotICAgICAgcHV0cyAkb3AgIjs7OyBnZ0NyZWF0ZVN5bWJvbEFuZENERihcImxpYm5hbWVcIiBcImNlbGxOYW1lXCIgXCJ2aWV3TmFtZVwiIFwiL3BhdGhfdG9fZmlsZS9teW5hbWUudlwiKSIKLSAgICAgIHB1dHMgJG9wICI7OzsiCi0gICAgICBwdXRzICRvcCAiOzs7IE5vdGVzOiIKLSAgICAgIHB1dHMgJG9wICI7OzsiCi0gICAgICBwdXRzICRvcCAiOzs7IFRoZSBpbnB1dCBsYXlvdXQgZmlsZSBmcm9tIElubm92dXMgb24gT0EgY3JlYXRlZCB3aXRoIHRoZSBmb2xsb3dpbmcgY29tbm1hbmQ6IgotICAgICAgcHV0cyAkb3AgIjs7OyAgICAgc2F2ZURlc2lnbiAtY2VsbHZpZXcgeyBsaWJyYXJ5IGNlbGxOYW1lIHZpZXdOYW1lIH0iCi0gICAgICBwdXRzICRvcCAiOzs7IFVzZWQgdmlld05hbWUgXCJlZGlfcm91dGVkXCIgdG8gc2lnbmlmeSByb3V0ZWQgZGVzaWduIGZyb20gRURJLiIKLSAgICAgIHB1dHMgJG9wICI7OzsgVGhpcyBmaWxlIGNhbiBiZSB1c2VkIHRvIHJlc3RvcmUgZGVzaWduIGluIElubm92dXMuIFlvdSBjYW4gYWxzbyBydW4gb2FPdXQiCi0gICAgICBwdXRzICRvcCAiOzs7IGZyb20gSW5ub3Z1cyBhbmQgaGF2ZSBpdCBjcmVhdGUgYSBsYXlvdXQgdmlldyB3aXRoIHRoZSBhYnN0cmFjdHMgcmVtYXN0ZXJlZC4iCi0gICAgICBwdXRzICRvcCAiOzs7IFRoaXMgc2NyaXB0IHdpbGwgdGFrZSBjYXJlIG9mIHRoaXMgc3RlcCBpbiBWaXJ0dW9zbyBzbyB5b3UgZG9uJ3QgaGF2ZSB0byBydW4iCi0gICAgICBwdXRzICRvcCAiOzs7IHRoZSBzZWNvbmQgc2F2ZSBmcm9tIElubm92dXMuIgotICAgICAgcHV0cyAkb3AgIjs7OyIKLSAgICAgIHB1dHMgJG9wICI7OzsgVGhlIHZlcmlsb2dGaWxlIHdhcyBjcmVhdGVkIGZyb20gSW5ub3Z1cyB1c2luZyB0aGUgZm9sbG93aW5nIGNvbW1hbmQ6IgotICAgICAgcHV0cyAkb3AgIjs7OyAgICAgc2F2ZU5ldGxpc3QgbXluYW1lLnYgLWV4Y2x1ZGVMZWFmQ2VsbCAtcGh5cyAtZXhjbHVkZUNlbGxJbnN0IFwiRklMTDEgLi4uXCIiCi0gICAgICBwdXRzICRvcCAiOzs7IFVzZWQgXCJjZWxsTmFtZV9waHlzX25vZmlsbC52XCIgYXMgYW4gZXhhbXBsZS4iCi0gICAgICBwdXRzICRvcCAiOzs7IFRoaXMgY3JlYXRlcyBhIHBoeXNpY2FsIHZlcmlsb2cgbmV0bGlzdCB3aXRoIHBvd2VyIGFuZCBncm91bmQgcGlucywgZXhjbHVkZXMiCi0gICAgICBwdXRzICRvcCAiOzs7IGxlYWYgY2VsbHMgKHN0YW5kYXJkIGNlbGxzKSBhbmQgcmVtb3ZlcyB0aGUgRklMTCBjZWxscyBsaXN0ZWQuIgotICAgICAgcHV0cyAkb3AgIjs7OyIKLSAgICAgIHB1dHMgJG9wICI7OzsgVGhlIHNjcmlwdCBpcyB3cml0dGVuIHRvIGFjY2VwdCB0aGUgaW5wdXRzIGZyb20gdGhlIGNvbW1hbmQgbGluZS4gVGhpcyBjYW4gYmUiCi0gICAgICBwdXRzICRvcCAiOzs7IG1vZGlmaWVkIHRvIHB1bGwgZnJvbSB0aGUgYWN0aXZlIHdpbmRvdyBhbmQvb3IgYSBmb3JtLiIKLSAgICAgIHB1dHMgJG9wICI7OzsiCi0gICAgICBwdXRzICRvcCAiOzs7IFRoZSBsYXlvdXQgc2F2ZWQgZnJvbSBJbm5vdnVzIHNob3VsZCBiZSBuYW1lZCBzb21ldGhpbmcgb3RoZXIgdGhhbiBcImxheW91dFwiLiBJdCBpcyIKLSAgICAgIHB1dHMgJG9wICI7OzsgYXNzdW1lZCB0aGF0IGFsbCB0aGUgaW5zdGFuY2VzIGFyZSBvZiB0eXBlIFwiYWJzdHJhY3RcIiBhbmQgbmVlZCB0byBiZSByZW1hc3RlcmVkIgotICAgICAgcHV0cyAkb3AgIjs7OyB0byB0eXBlIFwibGF5b3V0XCIuIFRvIGNoYW5nZSB0aGUgZGVmYXVsdCBuYW1lIGZvciB0aGUgcmVtYXN0ZXJlZCBsYXlvdXQgdmlldyBmcm9tIgotICAgICAgcHV0cyAkb3AgIjs7OyBcImxheW91dFwiLCBjaGFuZ2UgdGhlIFwibmV3Vmlld1wiIHZhcmlhYmxlLiIKLSAgICAgIHB1dHMgJG9wICI7OzsiCi0gICAgICBwdXRzICRvcCAiOzs7IFRoZSBzeW1ib2wgdmlldyBpcyBjcmVhdGVkIHVzaW5nIFZlcmlsb2dJbi4gVGhlIHBoeXNpY2FsIFZlcmlsb2cgbmV0bGlzdCBmcm9tIEVESSIKLSAgICAgIHB1dHMgJG9wICI7OzsgaXMgcGFyc2VkIGFuZCBhIHRlbXBvcmFyeSBuZXRsaXN0IGNyZWF0ZWQgdGhhdCBvbmx5IGhhcyB0aGUgbW9kdWxlIGFuZCBwaW5zIgotICAgICAgcHV0cyAkb3AgIjs7OyBkZWZpbmVkIGZvciB0aGUgZGlnaXRhbCBibG9jayBcImNlbGxOYW1lXCIuIFRoZSByZWd1bGFyIGV4cHJlc3Npb24gY2hlY2tzIHRvIHN0YXJ0IgotICAgICAgcHV0cyAkb3AgIjs7OyBhbmQgc3RvcCB0aGUgcGFyc2luZyBvZiB0aGUgaW5wdXQgdmVyaWxvZyBuZXRsaXN0IHRvIGp1c3QgZXh0cmFjdCB0aGUgcGluIgotICAgICAgcHV0cyAkb3AgIjs7OyBkZWZpbml0aW9ucyBpcyBiYXNpYyBhbmQgc3BlY2lmaWMgdG8gdGhlIHN5bnRheCBzZWVuIGluIGEgY291cGxlIGV4YW1wbGVzIGZyb20iCi0gICAgICBwdXRzICRvcCAiOzs7IEVESS4gU2VlIGNvbW1lbnRzIGluIHRoZSBcIkNyZWF0aW5nIC90bXAvaWhkbF92ZXJpbG9nLnZcIiBzZWN0aW9uIGZvciBkZXRhaWxzLiIKLSAgICAgIHB1dHMgJG9wICI7OzsiCi0gICAgICBwdXRzICRvcCAiOzs7IFR3byBsb2cgZmlsZXMgYXJlIGNyZWF0ZWQgZHVyaW5nIFZlcmlsb2dJbjoiCi0gICAgICBwdXRzICRvcCAiOzs7ICAgVmVyaWxvZ0luLmxvZyIKLSAgICAgIHB1dHMgJG9wICI7OzsgICBWZXJpbG9nSW5fc3Rkb3V0LmxvZyIKLSAgICAgIHB1dHMgJG9wICI7OzsiCi0gICAgICBwdXRzICRvcCAiOzs7IFRoZSBkZWZhdWx0IGlzIHRvIG92ZXJ3cml0ZSB0aGUgZXhpc3Rpbmcgc3ltYm9sIGR1cmluZyBWZXJpbG9nSW4gaWYgaXQgd2FzIgotICAgICAgcHV0cyAkb3AgIjs7OyBwcmV2aW91c2x5IGNyZWF0ZWQgYnkgVmVyaWxvZ0luIFwib3ZlcndyaXRlX3N5bWJvbCA6PSAxXCIuIFRvIG5vdCBvdmVyd3JpdGUgdGhlIgotICAgICAgcHV0cyAkb3AgIjs7OyBzeW1ib2wsIHJlZ2FyZGxlc3Mgb2YgdGhlIHNvdXJjZSBzZXQgaXQgdG8gXCJvdmVyd3JpdGVfc3ltYm9sIDo9IDBcIi4iCi0gICAgICBwdXRzICRvcCAiOzs7IgotICAgICAgcHV0cyAkb3AgIjs7OyBWZXJpbG9nSW4gaXMgcnVuIHZpYSB0aGUgdW5peCBjb21tYW5kIGxpbmUgdXNpbmcgaWhkbC4gVGhlIGloZGwgaW5wdXQgZmlsZXMgYXJlIgotICAgICAgcHV0cyAkb3AgIjs7OyBjcmVhdGVkIGluIC90bXAuIgotICAgICAgcHV0cyAkb3AgIjs7OyIKLSAgICAgIHB1dHMgJG9wICI7OzsgU2VlIFwiVmVyaWxvZyBJbiBmb3IgVmlydHVvc28gRGVzaWduIEVudmlyb25tZW50IFVzZXIgR3VpZGUgYW5kIFJlZmVyZW5jZVwiLiIKLSAgICAgIHB1dHMgJG9wICI7OzsiCi0gICAgICBwdXRzICRvcCAiOzs7IFRoZSBhdUNkbCB2aWV3IGlzIGp1c3QgYSBjb3B5IG9mIHRoZSBzeW1ib2wgdmlldyBjcmVhdGVkIGJ5IFZlcmlsb2dJbi4iCi0gICAgICBwdXRzICRvcCAiOzs7IgotICAgICAgcHV0cyAkb3AgIjs7OyBUaGUgQ0RGIGF1Q2RsIHNpbXVsYXRpb24gcGFyYW1ldGVycyBhcmUgY3JlYXRlZCBhdCB0aGUgXCJiYXNlXCIgY2VsbCBsZXZlbCB0byIKLSAgICAgIHB1dHMgJG9wICI7OzsgZW5hYmxlIGNkbCBuZXRsaXN0aW5nIG9mIGp1c3QgdGhlIHN1YmNrdCBuYW1lIGFuZCBwaW5zLiBXaGVuIHJ1bm5pbmcgTFZTIHRoZSIKLSAgICAgIHB1dHMgJG9wICI7OzsgYXNzb2NpYXRlZCBWZXJpbG9nIG5ldGxpc3QgYW5kIElQIGNkbCB2aWV3cyBzaG91bGQgYmUgaW5jbHVkZWQuIgotICAgICAgcHV0cyAkb3AgIjs7OyAiCi0gICAgICBwdXRzICRvcCAiOzs7IFdyaXR0ZW4gYnk6ICAgIEdyZWcgR29ydG9uLCAgICA1LzE4LzE0IgotICAgICAgcHV0cyAkb3AgIjs7OyIKLSAgICAgIHB1dHMgJG9wICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7IgotICAgICAgcHV0cyAkb3AgIiIKLSAgICAgIHB1dHMgJG9wICJwcm9jZWR1cmUoZ2dDcmVhdGVTeW1ib2xBbmRDREYobGlicmFyeSBjZWxsTmFtZSB2aWV3TmFtZSB2ZXJpbG9nRmlsZSBAb3B0aW9uYWwgKG92ZXJ3cml0ZSBuaWwpKSIKLSAgICAgIHB1dHMgJG9wICIiCi0gICAgICBwdXRzICRvcCAiICAgIHByb2coIChjdiBuZXdWaWV3IGN2MiBpaHMgc3RhcnRTdHJpbmcgcHJpbnRNb2R1bGUgY3YzIGN2NCBjaWQgY2RscGF0aCBwb3J0b3JkZXIgT1VURklMRSBJTkZJTEUgYmFzZUNERmlkIG5leHRMaW5lKSIKLSAgICAgIHB1dHMgJG9wICIiCi0gICAgICBwdXRzICRvcCAiICAgIDsgdmlldyBuYW1lIHRvIHVzZSBmb3IgY29weSBvZiBzYXZlZCBJbm5vdnVzIGxheW91dCB2aWV3IHRoYXQgbmVlZHMgdG8gYmUgcmVtYXN0ZXJlZCIKLSAgICAgIHB1dHMgJG9wICIgICAgbmV3Vmlldz1cImxheW91dFwiIgotICAgICAgcHV0cyAkb3AgIiIKLSAgICAgIHB1dHMgJG9wICIgICAgOyBHZXQgbGlicmFyeSBjZWxsIGFuZCB2aWV3IGZyb20gdGhlIGFjdGl2ZSB3aW5kb3ciCi0gICAgICBwdXRzICRvcCAiICAgIDsgQWRkIGN3IHRvIHRoZSBsZXQgc3RhdGVtZW50IgotICAgICAgcHV0cyAkb3AgIiAgICA7IGN3PWhpR2V0Q3VycmVudFdpbmRvdygpIgotICAgICAgcHV0cyAkb3AgIiAgICA7IGN2PWN3LT5jZWxsVmlldyIKLSAgICAgIHB1dHMgJG9wICIgICAgOyBsaWJyYXJ5PWN2LT5saWJOYW1lIgotICAgICAgcHV0cyAkb3AgIiAgICA7IGNlbGxOYW1lPWN2LT5jZWxsTmFtZSIKLSAgICAgIHB1dHMgJG9wICIgICAgOyB2aWV3TmFtZT1jdi0+dmlld05hbWUiCi0gICAgICBwdXRzICRvcCAiICAgIDsgdmVyaWxvZ0ZpbGU9XCIuL1NDUklQVC9jb3VudGVyc1Rlc3QudlwiIgotICAgICAgcHV0cyAkb3AgIiIKLSAgICAgIHB1dHMgJG9wICIgICAgOyBWZXJpZnkgdGhlIGV4aXN0YW5jZSBvZiB0aGUgaW5wdXQgcGFyYW1ldGVycyIKLSAgICAgIHB1dHMgJG9wICIgICAgdW5sZXNzKGlzRmlsZSh2ZXJpbG9nRmlsZSkiCi0gICAgICBwdXRzICRvcCAiICAgICAgICBwcmludGYoXCJUaGUgdmVyaWxvZyBmaWxlICVzIGRvZXMgbm90IGV4aXN0LlxcblwiIHZlcmlsb2dGaWxlKSIKLSAgICAgIHB1dHMgJG9wICIgICAgICAgIHByaW50ZihcIlBsZWFzZSBmaXggYW5kIHJ1biBhZ2Fpbi5cXG5cIikiCi0gICAgICBwdXRzICRvcCAiICAgICAgICByZXR1cm4oKSIKLSAgICAgIHB1dHMgJG9wICIgICAgKSIKLSAgICAgIHB1dHMgJG9wICIgICAgdW5sZXNzKGN2PWRiT3BlbkNlbGxWaWV3QnlUeXBlKCBsaWJyYXJ5IGNlbGxOYW1lIHZpZXdOYW1lICkiCi0gICAgICBwdXRzICRvcCAiICAgICAgICBwcmludGYoXCJUaGUgJXMgJXMgJXMgY2VsbCB2aWV3IGRvZXMgbm90IGV4aXN0LlxcblwiIGxpYnJhcnkgY2VsbE5hbWUgdmlld05hbWUpIgotICAgICAgcHV0cyAkb3AgIiAgICAgICAgcHJpbnRmKFwiUGxlYXNlIGZpeCBhbmQgcnVuIGFnYWluLlxcblwiKSIKLSAgICAgIHB1dHMgJG9wICIgICAgICAgIHJldHVybigpIgotICAgICAgcHV0cyAkb3AgIiAgICApIgotICAgICAgcHV0cyAkb3AgIiIKLSAgICAgIHB1dHMgJG9wICIgICAgOyBDb3B5IHByZXNlbnQgdmlldyB0byBhIGxheW91dCB2aWV3IChvciB2YWx1ZSBkZWZpbmVkIGJ5IHBhcmFtZXRlciBuZXdWaWV3KSIKLSAgICAgIHB1dHMgJG9wICIgICAgcHJpbnRmKFwiICBSdW5uaW5nIGdnQ3JlYXRlU3ltYm9sQW5kQ0RGOlxcblwiKSIKLSAgICAgIHB1dHMgJG9wICIgICAgcHJpbnRmKFwiICBDb3B5ICVzICVzICVzIHRvICVzICVzICVzLlxcblwiIGxpYnJhcnkgY2VsbE5hbWUgdmlld05hbWUgbGlicmFyeSBjZWxsTmFtZSBuZXdWaWV3KSIKLSAgICAgIHB1dHMgJG9wICIgICAgdW5sZXNzKGRiQ29weUNlbGxWaWV3KGN2IGxpYnJhcnkgY2VsbE5hbWUgbmV3VmlldyBuaWwgbmlsIG92ZXJ3cml0ZSkiCi0gICAgICBwdXRzICRvcCAiICAgICAgICBwcmludGYoXCJDYW4ndCBjcmVhdGUgdGhlIG5ldyAlcyB2aWV3LlxcblwiIG5ld1ZpZXcpIgotICAgICAgcHV0cyAkb3AgIiAgICAgICAgcHJpbnRmKFwiUGxlYXNlIHVzZSB0aGUgb3ZlcndyaXRlIHBhcmFtZXRlcjogZ2dDcmVhdGVTeW1ib2xBbmRDREYobGliIGNlbGwgdmlldyB2ZXJpbG9nZmlsZSB0KSBhbmQgY2hlY2sgcGVybWlzc2lvbnMuXFxuXCIpIgotICAgICAgcHV0cyAkb3AgIiAgICAgICAgcmV0dXJuKCkiCi0gICAgICBwdXRzICRvcCAiICAgICkiCi0gICAgICBwdXRzICRvcCAiIgotICAgICAgcHV0cyAkb3AgIiAgICA7IFJlbWFzdGVyIGluc3RhbmNlcyBmcm9tIHR5cGUgYWJzdHJhY3QgdG8gbGF5b3V0IGluIHRoZSBsYXlvdXQgdmlldyIKLSAgICAgIHB1dHMgJG9wICIgICAgY3YyPWRiT3BlbkNlbGxWaWV3QnlUeXBlKCBsaWJyYXJ5IGNlbGxOYW1lIG5ld1ZpZXcgXCJtYXNrTGF5b3V0XCIgXCJhXCIpIgotICAgICAgcHV0cyAkb3AgIiAgICBwcmludGYoXCIgIE9wZW4gJXMgJXMgJXMgZm9yIGVkaXQuXFxuXCIgbGlicmFyeSBjZWxsTmFtZSBuZXdWaWV3KSIKLSAgICAgIHB1dHMgJG9wICIiCi0gICAgICBwdXRzICRvcCAiICAgIGlocz1zZXRvZihpaCBjdjJ+Pmluc3RIZWFkZXJzIGlofj52aWV3TmFtZT09XCJhYnN0cmFjdFwiKSIKLSAgICAgIHB1dHMgJG9wICIgICAgZm9yZWFjaChpaCBpaHMiCi0gICAgICBwdXRzICRvcCAiICAgICAgICB3aGVuKGRkR2V0T2JqKGlofj5saWJOYW1lIGlofj5jZWxsTmFtZSBcImxheW91dFwiICkiCi0gICAgICBwdXRzICRvcCAiICAgICAgICAgICAgaWh+Pm1hc3RlciA9IGRiT3BlbkNlbGxWaWV3QnlUeXBlKCBpaH4+bGliTmFtZSBpaH4+Y2VsbE5hbWUgXCJsYXlvdXRcIiApIgotICAgICAgcHV0cyAkb3AgIiAgICAgICAgKSIKLSAgICAgIHB1dHMgJG9wICIgICAgKSIKLSAgICAgIHB1dHMgJG9wICIiCi0gICAgICBwdXRzICRvcCAiICAgIGRiU2F2ZShjdjIpIgotICAgICAgcHV0cyAkb3AgIiAgICBkYkNsb3NlKGN2MikiCi0gICAgICBwdXRzICRvcCAiIgotICAgICAgcHV0cyAkb3AgIiAgICA7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OzsiCi0gICAgICBwdXRzICRvcCAiICAgIDsgVXNlIHZlcmlsb2dJbiB0byBjcmVhdGUgYSBzeW1ib2wiCi0gICAgICBwdXRzICRvcCAiICAgIDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OyIKLSAgICAgIHB1dHMgJG9wICIgICAgcHJpbnRmKFwiICBSdW5uaW5nIFZlcmlsb2dJbiB0byBjcmVhdGUgdGhlICVzICVzIHN5bWJvbCB2aWV3LlxcblwiIGxpYnJhcnkgY2VsbE5hbWUpIgotICAgICAgcHV0cyAkb3AgIiIKLSAgICAgIHB1dHMgJG9wICIgICAgOyBDcmVhdGUgdGhlIGloZGwgY29tbWFuZCBmaWxlIGluIC90bXAiCi0gICAgICBwdXRzICRvcCAiICAgIHByaW50ZihcIiAgICBDcmVhdGluZyAvdG1wL2loZGxfZmlsZXNfJXNcXG5cIiBjZWxsTmFtZSkiCi0gICAgICBwdXRzICRvcCAiICAgIE9VVEZJTEU9b3V0ZmlsZShzdHJjYXQoXCIvdG1wL2loZGxfZmlsZXNfXCIgY2VsbE5hbWUpKSIKLSAgICAgIHB1dHMgJG9wICIgICAgZnByaW50ZiggT1VURklMRSBcIi1wYXJhbSAvdG1wL2loZGxfcGFyYW1zXyVzXFxuXCIgY2VsbE5hbWUpIgotICAgICAgcHV0cyAkb3AgIiAgICBmcHJpbnRmKCBPVVRGSUxFIFwiLWNkc2xpYiAuL2Nkcy5saWJcXG5cIikiCi0gICAgICBwdXRzICRvcCAiICAgIGNsb3NlKE9VVEZJTEUpIgotICAgICAgcHV0cyAkb3AgIiAgICBPVVRGSUxFPW5pbCIKLSAgICAgIHB1dHMgJG9wICIiCi0gICAgICBwdXRzICRvcCAiICAgIDsgQ3JlYXRlIHRoZSBpaGRsIHBhcmFtZXRlcnMgZmlsZSBpbiAvdG1wIgotICAgICAgcHV0cyAkb3AgIiAgICA7IE5lZWQgdG8gc2V0IHBvd2VyIGFuZCBncm91bmQgbmV0cyB0byBhIG5hbWUgbm90IHVzZWQgaW4gdGhlIGlucHV0IgotICAgICAgcHV0cyAkb3AgIiAgICA7IHZlcmlsb2cgbmV0bGlzdCBvciB0aGUgcG93ZXIgYW5kIGdyb3VuZCBwaW5zIHdpbGwgYmUgY2hhbmdlZCB0byIKLSAgICAgIHB1dHMgJG9wICIgICAgOyBnbG9iYWwgbmFtZXMgb24gdGhlIHN5bWJvbCBwaW5zLiIKLSAgICAgIHB1dHMgJG9wICIgICAgcHJpbnRmKFwiICAgIENyZWF0aW5nIC90bXAvaWhkbF9wYXJhbXNfJXNcXG5cIiBjZWxsTmFtZSkiCi0gICAgICBwdXRzICRvcCAiICAgIE9VVEZJTEU9b3V0ZmlsZShzdHJjYXQoXCIvdG1wL2loZGxfcGFyYW1zX1wiIGNlbGxOYW1lKSkiCi0gICAgICBwdXRzICRvcCAiICAgIGZwcmludGYoIE9VVEZJTEUgXCJkZXN0X3NjaF9saWIgOj0gJXNcXG5cIiBsaWJyYXJ5KSIKLSAgICAgIHB1dHMgJG9wICIgICAgZnByaW50ZiggT1VURklMRSBcInJlZl9saWJfbGlzdCA6PSBiYXNpY1xcblwiKSIKLSAgICAgIHB1dHMgJG9wICIgICAgZnByaW50ZiggT1VURklMRSBcInN0cnVjdHVyYWxfdmlld3MgOj0gNFxcblwiKSIKLSAgICAgIHB1dHMgJG9wICIgICAgZnByaW50ZiggT1VURklMRSBcImZ1bmN0aW9uYWxfdmlld19uYW1lIDo9IGZ1bmN0aW9uYWxfdG9wb25seVxcblwiKSIKLSAgICAgIHB1dHMgJG9wICIgICAgZnByaW50ZiggT1VURklMRSBcInN5bWJvbF92aWV3X25hbWUgOj0gc3ltYm9sXFxuXCIpIgotICAgICAgcHV0cyAkb3AgIiAgICBmcHJpbnRmKCBPVVRGSUxFIFwib3ZlcndyaXRlX3N5bWJvbCA6PSAxXFxuXCIpIgotICAgICAgcHV0cyAkb3AgIiAgICBmcHJpbnRmKCBPVVRGSUxFIFwicG93ZXJfbmV0IDo9IFB4eF9kdW1teVZhbHVlXFxuXCIpIgotICAgICAgcHV0cyAkb3AgIiAgICBmcHJpbnRmKCBPVVRGSUxFIFwiZ3JvdW5kX25ldCA6PSBHeHhfZHVtbXlWYWx1ZVxcblwiKSIKLSAgICAgIHB1dHMgJG9wICIgICAgZnByaW50ZiggT1VURklMRSBcImxvZ19maWxlX25hbWUgOj0gLi9WZXJpbG9nSW4ubG9nXFxuXCIpIgotICAgICAgcHV0cyAkb3AgIiAgICBjbG9zZShPVVRGSUxFKSIKLSAgICAgIHB1dHMgJG9wICIgICAgT1VURklMRT1uaWwiCi0gICAgICBwdXRzICRvcCAiIgotICAgICAgcHV0cyAkb3AgIiAgICA7IFBhcnNlIHRoZSBWZXJpbG9nIGZpbGUgZnJvbSBJbm5vdnVzIGFuZCBjcmVhdGUgYSBWZXJpbG9nIGZpbGUgd2l0aCBqdXN0IHRoZSIKLSAgICAgIHB1dHMgJG9wICIgICAgOyB0b3AgbW9kdWxlIGRlZmluaXRpb24gZm9yIFwiY2VsbE5hbWVcIiB3aXRoIG9ubHkgdGhlIHBpbnMgZGVmaW5lLiIKLSAgICAgIHB1dHMgJG9wICIgICAgOyBUaGUgcmVndWxhciBleHByZXNzaW9uIGNoZWNrcyB0byBzdGFydCBhbmQgc3RvcCBwcmludGluZyB0aGUgVmVyaWxvZyIKLSAgICAgIHB1dHMgJG9wICIgICAgOyBtb2R1bGUgYXJlIHNpbXBsZSBhbmQgdGllZCB0byB0aGUgc3ludGF4IGZyb20gRURJLiBJdCBzdGFydHMgb24gdGhlIGV4YWN0IgotICAgICAgcHV0cyAkb3AgIiAgICA7IHN0cmluZyBcIm1vZHVsZSBjZWxsTmFtZVwiIHdoZXJlIGNlbGxOYW1lIGlzIHlvdXIgY2VsbE5hbWUuIEl0IHN0b3BzIGF0IHRoZSIKLSAgICAgIHB1dHMgJG9wICIgICAgOyBmaXJzdCBjb21tZW50IGxpbmUgd2hpY2ggaGFzIGJlZW4gXCIvLyBJbnRlcm5hbCB3aXJlc1wiIG9yIgotICAgICAgcHV0cyAkb3AgIiAgICA7IFwiLy8gTW9kdWxlIGluc3RhbnRpYXRpb25zXCIgaW4gbXkgZXhhbXBsZXMuIFRoZXNlIGNvbWUgYWZ0ZXIgdGhlIHBpbiIKLSAgICAgIHB1dHMgJG9wICIgICAgOyBkZWZpbml0aW9ucy4iCi0gICAgICBwdXRzICRvcCAiICAgIHByaW50ZihcIiAgICBDcmVhdGluZyAvdG1wL2loZGxfdmVyaWxvZ18lcy52XFxuXCIgY2VsbE5hbWUpIgotICAgICAgcHV0cyAkb3AgIiAgICBJTkZJTEU9aW5maWxlKHZlcmlsb2dGaWxlKSIKLSAgICAgIHB1dHMgJG9wICIgICAgT1VURklMRT1vdXRmaWxlKHNwcmludGYobmlsIFwiL3RtcC9paGRsX3Zlcmlsb2dfJXMudlwiIGNlbGxOYW1lKSkiCi0gICAgICBwdXRzICRvcCAiICAgIHN0YXJ0U3RyaW5nPWJ1aWxkU3RyaW5nKCBsaXN0KFwibW9kdWxlXCIgY2VsbE5hbWUpICkiCi0gICAgICBwdXRzICRvcCAiICAgIHByaW50TW9kdWxlPVwibm9cIiIKLSAgICAgIHB1dHMgJG9wICIgICAgd2hlbiggSU5GSUxFIgotICAgICAgcHV0cyAkb3AgIiAgICAgICAgd2hpbGUoIGdldHMobmV4dExpbmUgSU5GSUxFKSIKLSAgICAgIHB1dHMgJG9wICIgICAgICAgICAgICBpZigocmV4TWF0Y2hwKHN0YXJ0U3RyaW5nIG5leHRMaW5lKSB8fCBwcmludE1vZHVsZT09XCJ5ZXNcIikgdGhlbiIKLSAgICAgIHB1dHMgJG9wICIgICAgICAgICAgICAgICAgaWYocmV4TWF0Y2hwKFwiLy9cIiBuZXh0TGluZSkgdGhlbiIKLSAgICAgIHB1dHMgJG9wICIgICAgICAgICAgICAgICAgICAgIHByaW50TW9kdWxlPVwibm9cIiIKLSAgICAgIHB1dHMgJG9wICIgICAgICAgICAgICAgICAgICAgIGZwcmludGYoT1VURklMRSBcImVuZG1vZHVsZVxcblwiKSIKLSAgICAgIHB1dHMgJG9wICIgICAgICAgICAgICAgICAgZWxzZSIKLSAgICAgIHB1dHMgJG9wICIgICAgICAgICAgICAgICAgICAgIHByaW50TW9kdWxlPVwieWVzXCIiCi0gICAgICBwdXRzICRvcCAiICAgICAgICAgICAgICAgICAgICBmcHJpbnRmKE9VVEZJTEUgbmV4dExpbmUpIgotICAgICAgcHV0cyAkb3AgIiAgICAgICAgICAgICAgICApIgotICAgICAgcHV0cyAkb3AgIiAgICAgICAgICAgICkgOyBpZiBtb2R1bGUgY2VsbE5hbWUiCi0gICAgICBwdXRzICRvcCAiICAgICAgICApIDsgd2hpbGUgbmV4dExpbmUiCi0gICAgICBwdXRzICRvcCAiICAgICAgICBjbG9zZShJTkZJTEUpIgotICAgICAgcHV0cyAkb3AgIiAgICApIDsgd2hlbiBJTkZJTEUiCi0gICAgICBwdXRzICRvcCAiICAgIGNsb3NlKE9VVEZJTEUpIgotICAgICAgcHV0cyAkb3AgIiAgICBPVVRGSUxFPW5pbCIKLSAgICAgIHB1dHMgJG9wICIiCi0gICAgICBwdXRzICRvcCAiICAgIDsgUnVuIGloZGwgdG8gY3JlYXRlIHRoZSBzeW1ib2wgdmlldyBhbmQgdGVtcG9yYXJ5IGZ1bmN0aW9uYWwgdmlldy4iCi0gICAgICBwdXRzICRvcCAiICAgIDsgRnVuY3Rpb24gd2lsbCBvdmVyd3JpdGUgZXhpc3Rpbmcgc3ltYm9sIHZpZXcgaWYgcHJldmlvdXNseSBjcmVhdGVkIGJ5IFZlcmlsb2dJbi4iCi0gICAgICBwdXRzICRvcCAiICAgIHByaW50ZihcIiAgICBSdW5uaW5nIGloZGwgLWYgL3RtcC9paGRsX2ZpbGVzXyVzIC90bXAvaWhkbF92ZXJpbG9nXyVzLnYgPiYgVmVyaWxvZ0luX3N0ZG91dF8lcy5sb2dcXG5cIiBjZWxsTmFtZSBjZWxsTmFtZSBjZWxsTmFtZSkiCi0gICAgICBwdXRzICRvcCAiICAgIHN5c3RlbShzcHJpbnRmKG5pbCBcImloZGwgLWYgL3RtcC9paGRsX2ZpbGVzXyVzIC90bXAvaWhkbF92ZXJpbG9nXyVzLnYgPiYgVmVyaWxvZ0luX3N0ZG91dF8lcy5sb2dcIiBjZWxsTmFtZSBjZWxsTmFtZSBjZWxsTmFtZSApKSIKLSAgICAgIHB1dHMgJG9wICIiCi0gICAgICBwdXRzICRvcCAiICAgIDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OyIKLSAgICAgIHB1dHMgJG9wICIgICAgOyBDb3B5IHRoZSBzeW1ib2wgdmlldyB0byBhbiBhdUNkbCB2aWV3IgotICAgICAgcHV0cyAkb3AgIiAgICA7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OzsiCi0gICAgICBwdXRzICRvcCAiIgotICAgICAgcHV0cyAkb3AgIiAgICBwcmludGYoXCIgIENvcHkgJXMgJXMgc3ltYm9sIHRvICVzICVzIGF1Q2RsLlxcblwiIGxpYnJhcnkgY2VsbE5hbWUgbGlicmFyeSBjZWxsTmFtZSkiCi0gICAgICBwdXRzICRvcCAiICAgIG5ld1ZpZXc9XCJhdUNkbFwiIgotICAgICAgcHV0cyAkb3AgIiAgICBjdjM9ZGJPcGVuQ2VsbFZpZXdCeVR5cGUoIGxpYnJhcnkgY2VsbE5hbWUgXCJzeW1ib2xcIikiCi0gICAgICBwdXRzICRvcCAiICAgIGN2ND1kYkNvcHlDZWxsVmlldyggY3YzIGxpYnJhcnkgY2VsbE5hbWUgbmV3VmlldyBuaWwgbmlsIG92ZXJ3cml0ZSkiCi0gICAgICBwdXRzICRvcCAiICAgIGRiQ3JlYXRlUHJvcChjdjQgXCJDRExfTkVUTElTVF9GSUxFXCIgJ3N0cmluZyBcImNkbC5uZXRsaXN0XCIpIgotICAgICAgcHV0cyAkb3AgIiAgICBwb3J0b3JkZXIgPSBjdjR+PnBvcnRPcmRlciIKLSAgICAgIHB1dHMgJG9wICIgICAgZGJDbG9zZShjdjMpIgotICAgICAgcHV0cyAkb3AgIiAgICBkYlNhdmUoY3Y0KSIKLSAgICAgIHB1dHMgJG9wICIgICAgZGJDbG9zZShjdjQpIgotICAgICAgcHV0cyAkb3AgIiIKLSAgICAgIHB1dHMgJG9wICIgICAgO0NvbnZlcnQgdGhlIHZlcmlsb2cgbmV0bGlzdCB0byBjZGwgbmV0bGlzdCBhbmQgc3RvcmUgaXQgaW4gdGhlIGF1Q2RsIGNlbGx2aWV3LiIKLSAgICAgIHB1dHMgJG9wICIgICAgY2RscGF0aCA9IGRkR2V0T2JqUmVhZFBhdGgoZGRHZXRPYmooIGxpYnJhcnkgY2VsbE5hbWUgbmV3VmlldyApKSIKLSAgICAgIHB1dHMgJG9wICIiCi0gICAgICBwdXRzICRvcCAiICAgIGxldCgocGF0aHMpIgotICAgICAgcHV0cyAkb3AgIiAgICAgICBwYXRocyA9IHBhcnNlU3RyaW5nKGdldFNoZWxsRW52VmFyKFwiUEFUSFwiKSBcIjpcIikiCi0gICAgICBwdXRzICRvcCAiICAgICAgIGlmKCBpc0ZpbGVOYW1lKFwidjJjZGxcIiBwYXRocykgdGhlbiIKLSAgICAgIHB1dHMgJG9wICIgICAgICAgICAgc3lzdGVtKHNwcmludGYobmlsIFwidjJjZGwgLXYgJXMgLW8gJXMvY2RsLm5ldGxpc3QgLWEgXFxcIlw8XD5cXFwiIFw+XCYgdjJjZGwubG9nXCIgdmVyaWxvZ0ZpbGUgY2RscGF0aCkpIgotICAgICAgcHV0cyAkb3AgIiAgICAgICBlbHNlIgotICAgICAgcHV0cyAkb3AgIiAgICAgICAgICBpZiggaXNGaWxlTmFtZShcInYybHZzXCIgcGF0aHMpIHRoZW4iCi0gICAgICBwdXRzICRvcCAiICAgICAgICAgICAgIHN5c3RlbShzcHJpbnRmKG5pbCBcInYybHZzIC12ICVzIC1vICVzL2NkbC5uZXRsaXN0IC1hIFxcXCJcPFw+XFxcIiBcPlwmIHYyY2RsLmxvZ1wiIHZlcmlsb2dGaWxlIGNkbHBhdGgpKSIKLSAgICAgIHB1dHMgJG9wICIgICAgICAgICAgZWxzZSIKLSAgICAgIHB1dHMgJG9wICIgICAgICAgICAgICAgcHJpbnRmKFwiICAgRVJST1I6IFVuYWJsZSB0byBmaW5kIFZlcmlsb2cgLT4gQ0RMIHRyYW5zbGF0b3IhISFcXG5cIikiCi0gICAgICBwdXRzICRvcCAiICAgICAgICAgICAgIHByaW50ZihcIiAgICAgICAgICBOZWl0aGVyIHYyY2RsIG5vciB2Mmx2cyB3ZXJlIGZvdW5kIGluIHlvdXIgcGF0aC5cXG5cXG5cXG5cIikiCi0gICAgICBwdXRzICRvcCAiICAgICAgICkiCi0gICAgICBwdXRzICRvcCAiICAgICkiCi0gICAgICBwdXRzICRvcCAiIgotICAgICAgcHV0cyAkb3AgIiAgICA7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OzsiCi0gICAgICBwdXRzICRvcCAiICAgIDsgQ3JlYXRlIHRoZSBiYXNlIGxldmVsIENERiBmb3IgYXVDZGwgbmV0bGlzdGluZyIKLSAgICAgIHB1dHMgJG9wICIgICAgOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7IgotICAgICAgcHV0cyAkb3AgIiAgICA7IFRoZSBzdWJja3Qgb2YgdGhlIHRvcCBtb2R1bGUgaXMgbmV0bGlzdGVkLiBXaGVuIHJ1bm5pbmcgUFZTIExWUyBpbmNsdWRlIgotICAgICAgcHV0cyAkb3AgIiAgICA7IHRoZSB0b3AgbGV2ZWwgVmVyaWxvZyBuZXRsaXN0IGFuZCBhc3NvY2lhdGVkIElQIGNkbCBuZXRsaXN0cy4iCi0gICAgICBwdXRzICRvcCAiICAgIHByaW50ZihcIiAgQ3JlYXRlIEJhc2UgbGV2ZWwgQ0RGIGZvciAlcyAlcyB0byBzdXBwb3J0IGNkbCBuZXRsaXN0aW5nLlxcblwiIGxpYnJhcnkgY2VsbE5hbWUpIgotICAgICAgcHV0cyAkb3AgIiAgICBjaWQ9ZGRHZXRPYmoobGlicmFyeSBjZWxsTmFtZSkiCi0gICAgICBwdXRzICRvcCAiICAgIHVubGVzcyhiYXNlQ0RGaWQ9Y2RmR2V0QmFzZUNlbGxDREYoY2lkKSIKLSAgICAgIHB1dHMgJG9wICIgICAgICAgIGJhc2VDREZpZD1jZGZDcmVhdGVCYXNlQ2VsbENERihjaWQpIgotICAgICAgcHV0cyAkb3AgIgliYXNlQ0RGaWQtPnNpbUluZm8gPSBsaXN0KCBuaWwgKSIKLSAgICAgIHB1dHMgJG9wICIJYmFzZUNERmlkLT5zaW1JbmZvLT5hdUNkbCA9ICcobmlsKSIKLSAgICAgIHB1dHMgJG9wICIgICAgKSIKLSAgICAgIHB1dHMgJG9wICIgICAgYmFzZUNERmlkLT5zaW1JbmZvLT5hdUNkbC0+bmV0bGlzdFByb2NlZHVyZT1cImFuc0NkbFN1YmNrdENhbGxcIiIKLSAgICAgIHB1dHMgJG9wICIgICAgYmFzZUNERmlkLT5zaW1JbmZvLT5hdUNkbC0+bmFtZVByZWZpeD1cIlhcIiIKLSAgICAgIHB1dHMgJG9wICIgICAgYmFzZUNERmlkLT5zaW1JbmZvLT5hdUNkbC0+Y29tcG9uZW50TmFtZT1cInN1YmNpcmN1aXRcIiIKLSAgICAgIHB1dHMgJG9wICIgICAgYmFzZUNERmlkLT5zaW1JbmZvLT5hdUNkbC0+dGVybU9yZGVyPXBvcnRvcmRlciIKLSAgICAgIHB1dHMgJG9wICIgICAgO2Jhc2VDREZpZC0+c2ltSW5mby0+YXVDZGwtPm1vZGVsTmFtZT1cImNvdW50ZXJzXCIiCi0gICAgICBwdXRzICRvcCAiICAgIGNkZlNhdmVDREYoYmFzZUNERmlkKSIKLSAgICAgIHB1dHMgJG9wICIiCi0gICAgICBwdXRzICRvcCAiICAgICkgOyBwcm9nIgotICAgICAgcHV0cyAkb3AgIiIKLSAgICAgIHB1dHMgJG9wICIpIDsgcHJvY2VkdXJlIGdnQ3JlYXRlU3ltYm9sQW5kQ0RGKCkiCi0gICAgICBjbG9zZSAkb3AKLSAgIAotICAgICAgc2V0IGNvbW1hbmRzICIiCi0gICAgICAKLSAgICAgIHNldCBuZXRsaXN0ICR2YXJzKGRic19kaXIpLyR2YXJzKGRlc2lnbilfcGh5c19ub2ZpbGwudgotICAgICAgCi0gICAgICAjIENyZWF0ZSB0aGUgbmV0bGlzdAotICAgICAgIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gICAgICBhcHBlbmQgY29tbWFuZHMgInNhdmVOZXRsaXN0ICRuZXRsaXN0IC1leGNsdWRlTGVhZkNlbGwgLXBoeXMgLWV4Y2x1ZGVDZWxsSW5zdCBcW2RiR2V0IC11IC1lIHRvcC5waHlzSW5zdHMuY2VsbC5uYW1lXF1cbiIKLSAgICAgIAotICAgICAgIyBDcmVhdGUgdGhlIC5zaW1yYyBmaWxlCi0gICAgICAjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSAgICAgIHNldCBvcCBbb3BlbiAuc2ltcmMgd10KLSAgICAgIHB1dHMgJG9wICJhdUNkbEVuYWJsZU5ldGxpc3RJbmNsdXNpb249dCIKLSAgICAgIHB1dHMgJG9wICJhdUNkbENERlBpbkNudHJsPXQiCi0gICAgICBjbG9zZSAkb3AKLSAgICAgIAotICAgICAgIyBDcmVhdGUgdGhlIFZpcnR1b3NvIHJlcGxheSBmaWxlCi0gICAgICAjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSAgICAgIHNldCBvcCBbb3BlbiAkdmFycyhzY3JpcHRfZGlyKS9Qb3N0UHJvY2Vzc0luVmlydHVvc28uaWwgd10KLSAgICAgIHB1dHMgJG9wICJsb2FkKFwiJHZhcnMoc2NyaXB0X2RpcikvZ2dDcmVhdGVTeW1ib2xBbmRDREYuaWxcIikiCi0gICAgICBwdXRzICRvcCAiZ2dDcmVhdGVTeW1ib2xBbmRDREYoXCIkdmFycyhvYV9kZXNpZ25fbGliKVwiIFwiJHZhcnMoZGVzaWduKVwiIFwic2lnbm9mZlwiIFwiJG5ldGxpc3RcIiB0KSIKLSAgICAgIHB1dHMgJG9wICJleGl0KCkiCi0gICAgICBjbG9zZSAkb3AKLSAgICAgIAotICAgICAgIyBDYWxsIFZpcnR1b3NvIAotICAgICAgIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gICAgICBpZiAhW3N0cmluZyBtYXRjaCBbYXV0b19leGVjb2sgdmlydHVvc29dICIiXSB7Ci0gICAgICAgICBhcHBlbmQgY29tbWFuZHMgIlxuZXhlYyB2aXJ0dW9zbyAtcmVwbGF5ICR2YXJzKHNjcmlwdF9kaXIpL1Bvc3RQcm9jZXNzSW5WaXJ0dW9zby5pbCAtbm9ncmFwaCAtbG9nICR2YXJzKGxvZ19kaXIpL1Bvc3RQcm9jZXNzSW5WaXJ0dW9zby5sb2dcbiIgCi0gICAgICAgICByZXR1cm4gJGNvbW1hbmRzCi0gICAgICB9IGVsc2UgewotICAgICAgICAgc2V0IHdhcm5pbmdzKCR2YXJzKHdhcm5pbmdfY291bnQpKSAiVW5hYmxlIHRvIGZpbmQgVmlydHVvc28gZXhlY3V0YWJsZSEgVGhlIHJlbWFzdGVyZWQgbGF5b3V0IHZpZXcsIHN5bWJvbCwgYXVDZGwgdmlld3MgYW5kIGF1Q2RsIENERiB3aWxsIG5vdCBiZSBjcmVhdGVkIgotICAgICAgICAgaW5jciB2YXJzKHdhcm5pbmdfY291bnQpCi0gICAgICAgICByZXR1cm4gJGNvbW1hbmRzCi0gICAgICB9Ci0gICB9Ci0KLX0KZGlmZiAtLWdpdCBhL2Zsb3cvcG5yL1NDUklQVFMvSU5OT1ZVUy9ydW5fYWxsLnRjbCBiL2Zsb3cvcG5yL1NDUklQVFMvSU5OT1ZVUy9ydW5fYWxsLnRjbApkZWxldGVkIGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMmJlYTE5ZS4uMDAwMDAwMAotLS0gYS9mbG93L3Buci9TQ1JJUFRTL0lOTk9WVVMvcnVuX2FsbC50Y2wKKysrIC9kZXYvbnVsbApAQCAtMSwxODQgKzAsMCBAQAotIyEvdXNyL2Jpbi9lbnYgdGNsc2gKLSMgLSotVENMLSotCi0jCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0jICAgICAgICAgICAgICAgICAgICAgICBDQURFTkNFIENPUFlSSUdIVCBOT1RJQ0UKLSMgICAgICAgICCpIDIwMDgtMjAxMyBDYWRlbmNlIERlc2lnbiBTeXN0ZW1zLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0jCi0jIFRoaXMgRm91bmRhdGlvbiBGbG93IGlzIHByb3ZpZGVkIGFzIGFuIGV4YW1wbGUgb2YgaG93IHRvIHBlcmZvcm0gc3BlY2lhbGl6ZWQKLSMgdGFza3MuCi0jCi0jIFRoaXMgd29yayBtYXkgbm90IGJlIGNvcGllZCwgcmUtcHVibGlzaGVkLCB1cGxvYWRlZCwgb3IgZGlzdHJpYnV0ZWQgaW4gYW55IHdheSwKLSMgaW4gYW55IG1lZGl1bSwgd2hldGhlciBpbiB3aG9sZSBvciBpbiBwYXJ0LCB3aXRob3V0IHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbgotIyBmcm9tIENhZGVuY2UuIE5vdHdpdGhzdGFuZGluZyBhbnkgcmVzdHJpY3Rpb25zIGhlcmVpbiwgc3ViamVjdCB0byBjb21wbGlhbmNlCi0jIHdpdGggdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mIHRoZSBDYWRlbmNlIHNvZnR3YXJlIGxpY2Vuc2UgYWdyZWVtZW50IHVuZGVyCi0jIHdoaWNoIHRoaXMgbWF0ZXJpYWwgd2FzIHByb3ZpZGVkLCB0aGlzIG1hdGVyaWFsIG1heSBiZSBjb3BpZWQgYW5kIGludGVybmFsbHkKLSMgZGlzdHJpYnV0ZWQgc29sZWx5IGZvciBpbnRlcm5hbCBwdXJwb3NlcyBmb3IgdXNlIHdpdGggQ2FkZW5jZSB0b29scy4KLSMKLSMgVGhpcyB3b3JrIGlzIENhZGVuY2UgaW50ZWxsZWN0dWFsIHByb3BlcnR5IGFuZCBtYXkgdW5kZXIgbm8gY2lyY3Vtc3RhbmNlcyBiZQotIyBnaXZlbiB0byB0aGlyZCBwYXJ0aWVzLCBuZWl0aGVyIGluIG9yaWdpbmFsIG5vciBpbiBtb2RpZmllZCB2ZXJzaW9ucywgd2l0aG91dAotIyBleHBsaWNpdCB3cml0dGVuIHBlcm1pc3Npb24gZnJvbSBDYWRlbmNlLiBUaGUgaW5mb3JtYXRpb24gY29udGFpbmVkIGhlcmVpbiBpcwotIyB0aGUgcHJvcHJpZXRhcnkgYW5kIGNvbmZpZGVudGlhbCBpbmZvcm1hdGlvbiBvZiBDYWRlbmNlIG9yIGl0cyBsaWNlbnNvcnMsIGFuZAotIyBpcyBzdXBwbGllZCBzdWJqZWN0IHRvLCBhbmQgbWF5IGJlIHVzZWQgb25seSBieSBDYWRlbmNlJ3MgY3VycmVudCBjdXN0b21lcnMKLSMgaW4gYWNjb3JkYW5jZSB3aXRoLCBhIHByZXZpb3VzbHkgZXhlY3V0ZWQgbGljZW5zZSBhZ3JlZW1lbnQgYmV0d2VlbiBDYWRlbmNlCi0jIGFuZCBpdHMgY3VzdG9tZXIuCi0jCi0jLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0jIFRISVMgTUFURVJJQUwgSVMgUFJPVklERUQgQlkgQ0FERU5DRSAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVECi0jIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GCi0jIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuCi0jIElOIE5PIEVWRU5UIFNIQUxMIENBREVOQ0UgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTAotIyBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLAotIyBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUICAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IKLSMgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyAgTUFURVJJQUwsIEVWRU4gSUYKLSMgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0KLXNvdXJjZSBGRi92YXJzLnRjbAotCi1pZiB7IVtpbmZvIGV4aXN0cyBlbnYoVlBBVEgpXX0gewotICAgc2V0IGVudihWUEFUSCkgIm1ha2UiCi19Ci0KLWlmIHtbaW5mbyBleGlzdHMgZW52KEZGX1NUQVJUKV19IHsKLSAgIGlmIHtbZmlsZSBleGlzdHMgJGVudihWUEFUSCkvJGVudihGRl9TVEFSVCldfSB7Ci0gICAgICBleGVjIHJtICRlbnYoVlBBVEgpLyRlbnYoRkZfU1RBUlQpCi0gICB9Ci0gICBzZXQgc3RhcnRfc3RlcCAkZW52KEZGX1NUQVJUKQotfSBlbHNlIHsKLSAgIHNldCBzdGFydF9zdGVwIGluaXQKLX0KLWlmIHtbaW5mbyBleGlzdHMgZW52KEZGX1NUT1ApXX0gewotICAgc2V0IHN0b3Bfc3RlcCAkZW52KEZGX1NUT1ApCi19IGVsc2UgewotICAgc2V0IHN0b3Bfc3RlcCBzaWdub2ZmCi19Ci0KLSMKLSMgU3RhcnQgd2l0aCBhbGwgcG9zc2libGUgc3RlcHMgaW4gdGhlIGZsb3cgdGhhdCB3ZSBjYW4gZXhlY3V0ZS4gIFRoZW4gZmluZAotIyB0aGUgc3Vic2V0IG9mIHN0ZXBzIHRoYXQgd2UgZ2VuZXJhdGVkIGEgVGNsIGNvbnRyb2wgZmlsZSBmb3IKLSMKLQotc2V0IHZhcnMoc2luZ2xlKSB0cnVlCi0KLXNldCBmb3VuZF9zdGVwcyBbbGlzdF0KLWZvcmVhY2ggc3RlcCAkdmFycyhic3RlcHMpIHsKLSAgIHNldCBydW5fZmlsZSgkc3RlcCkgIiR2YXJzKHNjcmlwdF9kaXIpL0lOTk9WVVMvcnVuXyRzdGVwLnRjbCIKLSAgIGlmIHtbZmlsZSBleGlzdHMgJHJ1bl9maWxlKCRzdGVwKV19IHsKLSAgICAgIGxhcHBlbmQgZm91bmRfc3RlcHMgJHN0ZXAKLSAgIH0KLX0KLSNzZXQgc3RlcHMgJGZvdW5kX3N0ZXBzCi0KLXNldCB0aW1lIDAKLXNldCBpbmRleCAwCi1mb3JlYWNoIHN0ZXAgJGZvdW5kX3N0ZXBzIHsKLSAgIGlmIHtbZmlsZSBleGlzdHMgJGVudihWUEFUSCkvJHN0ZXBdfSB7Ci0gICAgICBpZiB7W2ZpbGUgbXRpbWUgJGVudihWUEFUSCkvJHN0ZXBdID4gJHRpbWV9IHsKLSAgICAgICAgIGlmIHtbbGluZGV4ICRmb3VuZF9zdGVwcyAkaW5kZXhdID09ICJzaWdub2ZmIn0gewotICAgICAgICAgICAgcHV0cyAiPEZGPiBTVEVQIHNpZ25vZmYgQ09NUExFVEUgLi4uIE5PVEhJTkcgVE8gRE8iCi0gICAgICAgICAgICBleGl0Ci0gICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgc2V0IHN0YXJ0X3N0ZXAgW2xpbmRleCAkZm91bmRfc3RlcHMgW2V4cHIgJGluZGV4ICsgMV1dCi0gICAgICAgICB9Ci0gICAgICB9Ci0gICB9IGVsc2UgewotICAgICAgc2V0IHN0YXJ0X3N0ZXAgJHN0ZXAKLSAgICAgIGJyZWFrCi0gICB9Ci0gICBpbmNyIGluZGV4Ci19Ci0KLXB1dHMgIjxGRj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iCi1pZiB7JHN0YXJ0X3N0ZXAgPT0gJHN0b3Bfc3RlcH0gewotICAgcHV0cyAiPEZGPiBSVU5OSU5HIFNURVAgJHN0YXJ0X3N0ZXAgLi4uIgotfSBlbHNlIHsKLSAgIHB1dHMgIjxGRj4gUlVOTklORyBTVEVQICRzdGFydF9zdGVwIHRocm91Z2ggJHN0b3Bfc3RlcCAuLi4iCi19Ci1wdXRzICI8RkY+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIgotc2xlZXAgNQotCi0jCi0jIEVtdWxhdGUgdGhlIGZ1bmN0aW9uYWxpdHkgb2YgdGhlICJtYWtlIiBwcm9ncmFtLiAgSWYgYSBmaWxlIGRvZXNuJ3QgZXhpc3QsCi0jIG9yIGlmIGl0J3MgcHJlZGVjZXNzb3Igc3RlcCBoYXMgZXhlY3V0ZWQgbW9yZSByZWNlbnRseSwgcnVuIHRoZSBjdXJyZW50Ci0jIHN0ZXAgYW5kIHVwZGF0ZSB0aGUgdGltZS9kYXRlIHN0YW1wcyBvZiB0aGUgZmlsZXMgd2UgdHJhY2sgcHJvZ3Jlc3Mgd2l0aAotIwotCi1zZXQgdmFycyhzdG9wX3N0ZXApICRzdG9wX3N0ZXAKLQotc2V0IGxhc3Rfc3RlcCAiIgotc2V0IHZhcnMoc2luZ2xlKSAxCi1pZiB7JHZhcnMoZW5hYmxlX3Fvcl9jaGVjayl9IHsKLSAgIHNldCBjaGVja19xb3IgJHZhcnMoc2NyaXB0X2RpcikvY2hlY2tfcW9yLnRjbAotfQotZXhlYyBta2RpciAtcCBtYWtlCi1mb3JlYWNoIHN0ZXAgJGZvdW5kX3N0ZXBzIHsKLSAgIHNldCB2YXJzKHN0ZXApICRzdGVwCi0gICBwdXRzICI8RkY+IFNURVAgJHZhcnMoc3RlcCkgLi4uIgotICAgc2V0IHRoaXNfc2VtYXBob3JlICIkZW52KFZQQVRIKS8kc3RlcCIKLSAgIHNldCBsYXN0X3NlbWFwaG9yZSAiJGVudihWUEFUSCkvJGxhc3Rfc3RlcCIKLQotICAgc2V0IHJ1bl9zdGVwIGZhbHNlCi0gICBpZiB7IVtmaWxlIGV4aXN0cyAkdGhpc19zZW1hcGhvcmVdfSB7Ci0gICAgICBzZXQgcnVuX3N0ZXAgdHJ1ZQotICAgfSBlbHNlaWYgeyRsYXN0X3N0ZXAgIT0gIiJ9IHsKLSAgICAgIGZpbGUgc3RhdCAkdGhpc19zZW1hcGhvcmUgdGhpc19zdGF0Ci0gICAgICBmaWxlIHN0YXQgJGxhc3Rfc2VtYXBob3JlIGxhc3Rfc3RhdAotICAgICAgaWYgeyR0aGlzX3N0YXQobXRpbWUpIDwgJGxhc3Rfc3RhdChtdGltZSl9IHsKLSAgICAgICAgIHNldCBydW5fc3RlcCB0cnVlCi0gICAgICB9Ci0gICB9Ci0KLSAgICMKLSAgICMgQ2hlY2sgdGhlIHF1YWxpdHkgb2YgcmVzdWx0cyBmcm9tIHRoZSBsYXN0IHN0ZXAuICBJZiB0aGUgcmVzdWx0cyBhcmVuJ3QKLSAgICMgYXMgZXhwZWN0ZWQsIGRvbid0IHByb2NlZWQgdG8gdGhlIG5leHQgc3RlcAotICAgIwotICAgaWYgeyR2YXJzKGVuYWJsZV9xb3JfY2hlY2spfSB7Ci0gICAgICBpZiB7JHN0ZXAgIT0gImluaXQifSB7Ci0gICAgICAgICBzZXQgcW9yIFtjYXRjaCB7ZXhlYyAkY2hlY2tfcW9yICRsYXN0X3NlbWFwaG9yZX0gbXNnXQotICAgICAgICAgaWYgeyRxb3J9IHsKLSAgICAgICAgICAgIHB1dHMgIjxGRj4gRVJST1I6IFFPUiBSRVNVTFQgQ0hFQ0sgSU5ESUNBVEVTIEEgUFJPQkxFTSBJTiBTVEVQICRsYXN0X3N0ZXAiCi0gICAgICAgICAgICBleGl0IC0xMTEKLSAgICAgICAgIH0KLSAgICAgIH0KLSAgIH0KLQotICAgc2V0IGxhc3Rfc3RlcCAkc3RlcAotICAgaWYgeyEkcnVuX3N0ZXB9IHsKLSAgICAgIGNvbnRpbnVlCi0gICB9Ci0KLSAgICMKLSAgICMgU291cmNlIHRoZSBjb250cm9sIGZpbGUgdGhhdCBydW5zIHRoZSBzdGVwLiAgSWYgaXQgaGFkIGFuIGVycm9yLCBleGl0Ci0gICAjIGltbWVkaWF0ZWx5LiAgT3RoZXJ3aXNlLCB1cGRhdGUgdGhlIHRpbWUvZGF0ZSBzdGFtcCBvZiB0aGUgY29ycmVzcG9uZGluZwotICAgIwotICAgIwotCi0gICBpZiB7W2NhdGNoIHtzb3VyY2UgJHJ1bl9maWxlKCRzdGVwKX0gbWVzc2FnZV19IHsKLSAgICAgIHB1dHMgJG1lc3NhZ2UKLSAgICAgIGV4aXQgLTExMQotICAgfQotCi0gICAjCi0gICAjIElmIHRoZXJlIGlzIGEgUU9SIGNoZWNrIGZpbGUgZm9yIHRoaXMgc3RlcCwgZXhlY3V0ZSBpdCBhbmQgcGxhY2UgdGhlCi0gICAjIHJlc3VsdCBpbnRvIHRoZSBtYWtlIGZpbGUuICBPdGhlcndpc2UganVzdCB0b3VjaCB0aGUgZmlsZQotICAgIwotCi0gICBpZiB7JHZhcnMoZW5hYmxlX3Fvcl9jaGVjayl9IHsKLSAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycygkc3RlcCxxb3JfdGNsXX0gewotICAgICAgICAgc2V0IHFvcl9maWxlICR2YXJzKCRzdGVwLHFvcl90Y2wpCi0gICAgICAgICBpZiB7W2ZpbGUgZXhpc3RzICRxb3JfZmlsZV19IHsKLSAgICAgICAgICAgIHNldCBxb3IgW2NhdGNoIHtleGVjICRxb3JfZmlsZX0gbXNnXQotICAgICAgICAgICAgc2V0IG1ha2VfZmlsZSBbb3BlbiAkdGhpc19zZW1hcGhvcmUgd10KLSAgICAgICAgICAgIHB1dHMgJG1ha2VfZmlsZSAiJHFvciIKLSAgICAgICAgICAgIGNsb3NlICRtYWtlX2ZpbGUKLSAgICAgICAgIH0KLSAgICAgIH0KLSAgIH0KLSAgIGV4ZWMgL2Jpbi90b3VjaCAkdGhpc19zZW1hcGhvcmUKLQotICAgaWYgeyRzdGVwID09ICRzdG9wX3N0ZXB9IHsKLSAgICAgIGV4aXQgCi0gICB9Ci19CmRpZmYgLS1naXQgYS9mbG93L3Buci9TQ1JJUFRTL0lOTk9WVVMvcnVuX2RlYnVnLnRjbCBiL2Zsb3cvcG5yL1NDUklQVFMvSU5OT1ZVUy9ydW5fZGVidWcudGNsCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDc1NQppbmRleCA1MWNiMWEyLi4wMDAwMDAwCi0tLSBhL2Zsb3cvcG5yL1NDUklQVFMvSU5OT1ZVUy9ydW5fZGVidWcudGNsCisrKyAvZGV2L251bGwKQEAgLTEsODYgKzAsMCBAQAotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotIyAgICAgICAgICAgICAgICAgICAgICAgQ0FERU5DRSBDT1BZUklHSFQgTk9USUNFCi0jICAgICAgICAgqSAyMDA4LTIwMTMgQ2FkZW5jZSBEZXNpZ24gU3lzdGVtcywgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIwotIyBUaGlzIEZvdW5kYXRpb24gRmxvdyBpcyBwcm92aWRlZCBhcyBhbiBleGFtcGxlIG9mIGhvdyB0byBwZXJmb3JtIHNwZWNpYWxpemVkCi0jIHRhc2tzLgotIwotIyBUaGlzIHdvcmsgbWF5IG5vdCBiZSBjb3BpZWQsIHJlLXB1Ymxpc2hlZCwgdXBsb2FkZWQsIG9yIGRpc3RyaWJ1dGVkIGluIGFueSB3YXksCi0jIGluIGFueSBtZWRpdW0sIHdoZXRoZXIgaW4gd2hvbGUgb3IgaW4gcGFydCwgd2l0aG91dCBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24KLSMgZnJvbSBDYWRlbmNlLiBOb3R3aXRoc3RhbmRpbmcgYW55IHJlc3RyaWN0aW9ucyBoZXJlaW4sIHN1YmplY3QgdG8gY29tcGxpYW5jZQotIyB3aXRoIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB0aGUgQ2FkZW5jZSBzb2Z0d2FyZSBsaWNlbnNlIGFncmVlbWVudCB1bmRlcgotIyB3aGljaCB0aGlzIG1hdGVyaWFsIHdhcyBwcm92aWRlZCwgdGhpcyBtYXRlcmlhbCBtYXkgYmUgY29waWVkIGFuZCBpbnRlcm5hbGx5Ci0jIGRpc3RyaWJ1dGVkIHNvbGVseSBmb3IgaW50ZXJuYWwgcHVycG9zZXMgZm9yIHVzZSB3aXRoIENhZGVuY2UgdG9vbHMuCi0jCi0jIFRoaXMgd29yayBpcyBDYWRlbmNlIGludGVsbGVjdHVhbCBwcm9wZXJ0eSBhbmQgbWF5IHVuZGVyIG5vIGNpcmN1bXN0YW5jZXMgYmUKLSMgZ2l2ZW4gdG8gdGhpcmQgcGFydGllcywgbmVpdGhlciBpbiBvcmlnaW5hbCBub3IgaW4gbW9kaWZpZWQgdmVyc2lvbnMsIHdpdGhvdXQKLSMgZXhwbGljaXQgd3JpdHRlbiBwZXJtaXNzaW9uIGZyb20gQ2FkZW5jZS4gVGhlIGluZm9ybWF0aW9uIGNvbnRhaW5lZCBoZXJlaW4gaXMKLSMgdGhlIHByb3ByaWV0YXJ5IGFuZCBjb25maWRlbnRpYWwgaW5mb3JtYXRpb24gb2YgQ2FkZW5jZSBvciBpdHMgbGljZW5zb3JzLCBhbmQKLSMgaXMgc3VwcGxpZWQgc3ViamVjdCB0bywgYW5kIG1heSBiZSB1c2VkIG9ubHkgYnkgQ2FkZW5jZSdzIGN1cnJlbnQgY3VzdG9tZXJzCi0jIGluIGFjY29yZGFuY2Ugd2l0aCwgYSBwcmV2aW91c2x5IGV4ZWN1dGVkIGxpY2Vuc2UgYWdyZWVtZW50IGJldHdlZW4gQ2FkZW5jZQotIyBhbmQgaXRzIGN1c3RvbWVyLgotIwotIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIyBUSElTIE1BVEVSSUFMIElTIFBST1ZJREVEIEJZIENBREVOQ0UgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRAotIyBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRgotIyBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELgotIyBJTiBOTyBFVkVOVCBTSEFMTCBDQURFTkNFIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwKLSMgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwKLSMgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SCi0jIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgIE1BVEVSSUFMLCBFVkVOIElGCi0jIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCi1zZXQgdmFycyhzdGVwKSBkZWJ1ZwotCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0jIFNvdXJjZSBzY3JpcHQgdG8gZGVmaW5lIGRlc2lnbiBzcGVjaWZpYyB2YXJpYWJsZXMKLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLWlmIHtbaW5mbyBleGlzdHMgZW52KEZGX1NFVFVQX1BBVEgpXX0gewotICAgaWYge1tmaWxlIGV4aXN0cyAkZW52KEZGX1NFVFVQX1BBVEgpXX0gewotICAgICAgUHV0cyAiPEZGPiBMT0FESU5HICRlbnYoRkZfU0VUVVBfUEFUSCkvc2V0dXAudGNsIC4uLiIKLSAgICAgIGlmIHsgWyBjYXRjaCB7IHNvdXJjZSAkZW52KEZGX1NFVFVQX1BBVEgpL3NldHVwLnRjbH0gc2V0dXBfZXJyb3IgXSB9IHsKLSAgICAgICAgIFB1dHMgIjxGRj4gPT09PT09PT09PT09PSBTRVRVUCBFUlJPUiA9PT09PT09PT09PT09PT09PT0iCi0gICAgICAgICBQdXRzICI8RkY+ICRlcnJvckluZm8iCi0gICAgICAgICBQdXRzICI8RkY+ICRzZXR1cF9lcnJvciIKLSAgICAgICAgIFB1dHMgIjxGRj4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSIKLSAgICAgICAgIHNldCByZXR1cm5fY29kZSA5OQotICAgICAgICAgZXhpdCAkcmV0dXJuX2NvZGUKLSAgICAgIH0KLSAgIH0gZWxzZSB7Ci0gICAgICBQdXRzICI8RkY+IEVSUk9SOiAkZW52KEZGX1NFVFVQX1BBVEgpL3NldHVwLnRjbCBkb2VzIG5vdCBleGlzdCIKLSAgICAgIGV4aXQKLSAgIH0KLX0gZWxzZSB7Ci0gICBpZiB7W2ZpbGUgZXhpc3RzIHNldHVwLnRjbF19IHsKLSAgICAgIFB1dHMgIjxGRj4gTE9BRElORyBzZXR1cC50Y2wgLi4uIgotICAgICAgaWYgeyBbIGNhdGNoIHsgc291cmNlIHNldHVwLnRjbH0gc2V0dXBfZXJyb3IgXSB9IHsKLSAgICAgICAgIFB1dHMgIjxGRj4gPT09PT09PT09PT09PSBTRVRVUCBFUlJPUiA9PT09PT09PT09PT09PT09PT0iCi0gICAgICAgICBQdXRzICI8RkY+ICRlcnJvckluZm8iCi0gICAgICAgICBQdXRzICI8RkY+ICRzZXR1cF9lcnJvciIKLSAgICAgICAgIFB1dHMgIjxGRj4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSIKLSAgICAgICAgIHNldCByZXR1cm5fY29kZSA5OQotICAgICAgICAgZXhpdCAkcmV0dXJuX2NvZGUKLSAgICAgIH0KLSAgIH0gZWxzZSB7Ci0gICAgICBQdXRzICI8RkY+IEVSUk9SOiBzZXR1cC50Y2wgZG9lcyBub3QgZXhpc3QiCi0gICAgICBleGl0Ci0gICB9Ci19Ci0KLXNvdXJjZSAkdmFycyhzY3JpcHRfcm9vdCkvRURJL3Byb2NzLnRjbAotc291cmNlICR2YXJzKHNjcmlwdF9yb290KS9FVEMvdXRpbHMudGNsCi0KLTo6RkZfRURJOjppbml0aWFsaXplX2Zsb3cKLQotaWYge1tpbmZvIGV4aXN0cyBlbnYoU1RFUCldfSB7Ci0gICA6OkZGX0VESTo6bG9hZF9kZXNpZ24gMCAkZW52KFNURVApCi19Ci0KLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSMgTG9hZCAiYWx3YXlzIHNvdXJjZSIgcGx1Zy1pbiBzY3JpcHQKLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLTo6RkY6OnNvdXJjZV9wbHVnIGFsd2F5c19zb3VyY2VfdGNsCi0KLXdpbgpkaWZmIC0tZ2l0IGEvZmxvdy9wbnIvU0NSSVBUUy9JTk5PVlVTL3J1bl9sZWMudGNsIGIvZmxvdy9wbnIvU0NSSVBUUy9JTk5PVlVTL3J1bl9sZWMudGNsCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDc1NQppbmRleCA1ODI3M2M3Li4wMDAwMDAwCi0tLSBhL2Zsb3cvcG5yL1NDUklQVFMvSU5OT1ZVUy9ydW5fbGVjLnRjbAorKysgL2Rldi9udWxsCkBAIC0xLDEzOSArMCwwIEBACi0vLyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotLy8gICAgICAgICAgICAgICAgICAgICAgIENBREVOQ0UgQ09QWVJJR0hUIE5PVElDRQotLy8gICAgICAgICCpIDIwMDgtMjAwOSBDYWRlbmNlIERlc2lnbiBTeXN0ZW1zLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotLy8KLS8vIFRoaXMgRm91bmRhdGlvbiBGbG93IGlzIHByb3ZpZGVkIGFzIGFuIGV4YW1wbGUgb2YgaG93IHRvIHBlcmZvcm0gc3BlY2lhbGl6ZWQKLS8vIHRhc2tzIHdpdGhpbiBJbm5vdnVzIFN5c3RlbS4KLS8vCi0vLyBUaGlzIHdvcmsgbWF5IG5vdCBiZSBjb3BpZWQsIHJlLXB1Ymxpc2hlZCwgdXBsb2FkZWQsIG9yIGRpc3RyaWJ1dGVkIGluIGFueSB3YXksCi0vLyBpbiBhbnkgbWVkaXVtLCB3aGV0aGVyIGluIHdob2xlIG9yIGluIHBhcnQsIHdpdGhvdXQgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uCi0vLyBmcm9tIENhZGVuY2UuIE5vdHdpdGhzdGFuZGluZyBhbnkgcmVzdHJpY3Rpb25zIGhlcmVpbiwgc3ViamVjdCB0byBjb21wbGlhbmNlCi0vLyB3aXRoIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB0aGUgQ2FkZW5jZSBzb2Z0d2FyZSBsaWNlbnNlIGFncmVlbWVudCB1bmRlcgotLy8gd2hpY2ggdGhpcyBtYXRlcmlhbCB3YXMgcHJvdmlkZWQsIHRoaXMgbWF0ZXJpYWwgbWF5IGJlIGNvcGllZCBhbmQgaW50ZXJuYWxseQotLy8gZGlzdHJpYnV0ZWQgc29sZWx5IGZvciBpbnRlcm5hbCBwdXJwb3NlcyBmb3IgdXNlIHdpdGggQ2FkZW5jZSB0b29scy4KLS8vCi0vLyBUaGlzIHdvcmsgaXMgQ2FkZW5jZSBpbnRlbGxlY3R1YWwgcHJvcGVydHkgYW5kIG1heSB1bmRlciBubyBjaXJjdW1zdGFuY2VzIGJlCi0vLyBnaXZlbiB0byB0aGlyZCBwYXJ0aWVzLCBuZWl0aGVyIGluIG9yaWdpbmFsIG5vciBpbiBtb2RpZmllZCB2ZXJzaW9ucywgd2l0aG91dAotLy8gZXhwbGljaXQgd3JpdHRlbiBwZXJtaXNzaW9uIGZyb20gQ2FkZW5jZS4gVGhlIGluZm9ybWF0aW9uIGNvbnRhaW5lZCBoZXJlaW4gaXMKLS8vIHRoZSBwcm9wcmlldGFyeSBhbmQgY29uZmlkZW50aWFsIGluZm9ybWF0aW9uIG9mIENhZGVuY2Ugb3IgaXRzIGxpY2Vuc29ycywgYW5kCi0vLyBpcyBzdXBwbGllZCBzdWJqZWN0IHRvLCBhbmQgbWF5IGJlIHVzZWQgb25seSBieSBDYWRlbmNlJ3MgY3VycmVudCBjdXN0b21lcnMKLS8vIGluIGFjY29yZGFuY2Ugd2l0aCwgYSBwcmV2aW91c2x5IGV4ZWN1dGVkIGxpY2Vuc2UgYWdyZWVtZW50IGJldHdlZW4gQ2FkZW5jZQotLy8gYW5kIGl0cyBjdXN0b21lci4KLS8vCi0vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotLy8gVEhJUyBNQVRFUklBTCBJUyBQUk9WSURFRCBCWSBDQURFTkNFICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQKLS8vIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GCi0vLyBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELgotLy8gSU4gTk8gRVZFTlQgU0hBTEwgQ0FERU5DRSBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMCi0vLyBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLAotLy8gV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SCi0vLyBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTICBNQVRFUklBTCwgRVZFTiBJRgotLy8gQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0vLyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCi12cHhtb2RlCi1zZXQgZG9maWxlIGFib3J0IGV4aXQKLXNldCB1bmRlZmluZWQgY2VsbCBibGFja19ib3ggLW5vYXNjZW5kIC1ib3RoCi10Y2xtb2RlCi0vLyBzZXR1cCB2YXJpYWJsZXMgCi1nbG9iYWwgdmFycwotcHJvYyBQdXRzIHthcmdzfSB7Ci0JcHV0cyAkYXJncwotfQotLy8jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLS8vIFNvdXJjZSBzY3JpcHQgdG8gZGVmaW5lIGRlc2lnbiBzcGVjaWZpYyB2YXJpYWJsZXMKLS8vIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi1pZiB7W2luZm8gZXhpc3RzIGVudihGRl9TRVRVUF9QQVRIKV19IHsKLSAgIGlmIHtbZmlsZSBleGlzdHMgJGVudihGRl9TRVRVUF9QQVRIKV19IHsKLSAgICAgIFB1dHMgIjxGRj4gTE9BRElORyAkZW52KEZGX1NFVFVQX1BBVEgpL3NldHVwLnRjbCAuLi4iCi0gICAgICBjYXRjaCB7c291cmNlICRlbnYoRkZfU0VUVVBfUEFUSCkvc2V0dXAudGNsfQotICAgfSBlbHNlIHsKLSAgICAgIFB1dHMgIjxGRj4gRVJST1I6ICRlbnYoRkZfU0VUVVBfUEFUSCkvc2V0dXAudGNsIGRvZXMgbm90IGV4aXN0IgotICAgICAgZXhpdAotICAgfQotfSBlbHNlIHsKLSAgIGlmIHtbZmlsZSBleGlzdHMgc2V0dXAudGNsXX0gewotICAgICAgY2F0Y2gge3NvdXJjZSBzZXR1cC50Y2x9Ci0gICB9IGVsc2UgewotICAgICAgUHV0cyAiPEZGPiBFUlJPUjogc2V0dXAudGNsIGRvZXMgbm90IGV4aXN0IgotICAgICAgZXhpdAotICAgfQotfQotCi0vL0RlZmluZSB0aGUgbmV0bGlzdCB0byBiZSB2ZXJpZnkKLWlmIHtbaW5mbyBleGlzdHMgZW52KFNURVApXSAmJiBbZmlsZSBleGlzdHMgREJTLyRlbnYoU1RFUCkuZW5jLmRhdC8kdmFycyhkZXNpZ24pLnYuZ3pdfSB7Ci0Jc2V0IHJldmlzZWROZXRsaXN0IERCUy8kZW52KFNURVApLmVuYy5kYXQvJHZhcnMoZGVzaWduKS52Lmd6Ci19IGVsc2UgewotICAgUHV0cyAiPEZGPiBGYWlsZWQgdG8gZmluZCBuZXRsaXN0ICBEQlMvJGVudihTVEVQKS5lbmMuZGF0LyR2YXJzKGRlc2lnbikudi5neiIKLX0KLQotc2V0IHJjIFtjYXRjaCB7c291cmNlICR2YXJzKHNjcmlwdF9yb290KS9FVEMvdXRpbHMudGNsfV0KLWlmIHtbaW5mbyBleGlzdHMgdmFycyh0aHJlYWRzKV19IHsKLQl2cHggc2V0IGNvbXBhcmUgb3B0aW9uIC10aHJlYWRzICR2YXJzKHRocmVhZHMpCi19Ci0KLQotLy8gcmVhZCBMaWJlcnR5IGNlbGwgZGVmaW5pdGlvbnMKLXNldCBsaWJTZXQgJHZhcnMoJHZhcnMoJHZhcnMoZGVmYXVsdF9zZXR1cF92aWV3KSxkZWxheV9jb3JuZXIpLGxpYnJhcnlfc2V0KQotdnB4IHJlYWQgbGlicmFyeSAtc3RhdGV0YWJsZSAtYm90aCAtbGliZXJ0eSAkdmFycygke2xpYlNldH0sdGltaW5nKQotCi0vLyByZWFkIHJlZmVyZW5jZSBuZXRsaXN0Ci12cHggcmVhZCBkZXNpZ24gLXZlcmlsb2cgLXNlbnNpdGl2ZSAtZ29sZGVuICR2YXJzKG5ldGxpc3QpCi0KLS8vIHJlYWQgcG9zdC1pbXBsZW1lbnRhdGlvbiBuZXRsaXN0Ci12cHggcmVhZCBkZXNpZ24gLXZlcmlsb2cgLXNlbnNpdGl2ZSAtcmV2aXNlZCAkcmV2aXNlZE5ldGxpc3QKLQotLy9zZXQgdG9wIGxldmVsCi12cHggc2V0IHJvb3QgbW9kdWxlICR2YXJzKGRlc2lnbikgLWJvdGgKLQotZmZfc291cmNlX3BsdWcgcHJlX2xlY19jaGVja190Y2wKLQotdnB4bW9kZQotcmVwb3J0IGRlc2lnbiBkYXRhCi1yZXBvcnQgYmxhY2sgYm94Ci0KLXNldCBtYXBwaW5nIG1ldGhvZCAtbmFtZSBmaXJzdAotc2V0IGZsYXR0ZW4gbW9kZWwgLXNlcV9jb25zdGFudCAtc2VxX2NvbnN0YW50X3hfdG8gMAotc2V0IGZsYXR0ZW4gbW9kZWwgLW5vZGZmX3RvX2RsYXRfemVybyAtbm9kZmZfdG9fZGxhdF9mZWVkYmFjawotc2V0IGZsYXR0ZW4gbW9kZWwgLWdhdGVkX2Nsb2NrCi0KLXNldCBzeXN0ZW0gbW9kZSBsZWMKLWFkZCBjb21wYXJlIHBvaW50IC1hbGwKLWNvbXBhcmUgLWdhdGVfdG9fZ2F0ZQotdXNhZ2UKLS8vICAgdnB4IHJlcG9ydCBjb21wYXJlIGRhdGEKLXJlcG9ydCBjb21wYXJlIGRhdGEgLWNsYXNzIG5vbmVxdWl2YWxlbnQgLWNsYXNzIGFib3J0IC1jbGFzcyBub3Rjb21wYXJlZAotcmVwb3J0IHZlcmlmaWNhdGlvbiAtdmVyYm9zZQotcmVwb3J0IHN0YXRpc3RpY3MKLQotdGNsbW9kZQotc2V0IHBvaW50c19jb3VudCBbZ2V0X2NvbXBhcmVfcG9pbnRzIC1jb3VudF0KLXNldCBkaWZmX2NvdW50IFtnZXRfY29tcGFyZV9wb2ludHMgLWRpZmYgLWNvdW50XQotc2V0IGFib3J0X2NvdW50IFtnZXRfY29tcGFyZV9wb2ludHMgLWFib3J0IC1jb3VudF0KLXNldCB1bmtub3duX2NvdW50IFtnZXRfY29tcGFyZV9wb2ludHMgLXVua25vd24gLWNvdW50XQotaWYgeyRwb2ludHNfY291bnQgPT0gMH0gewotICAgIHB1dHMgIi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIKLSAgICBwdXRzICJFUlJPUjogTm8gY29tcGFyZSBwb2ludHMgZGV0ZWN0ZWQiCi0gICAgcHV0cyAiLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIgotfQotaWYgeyRkaWZmX2NvdW50ID4gMH0gewotICAgIHB1dHMgIi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIKLSAgICBwdXRzICJFUlJPUjogRGlmZmVyZW50IEtleSBQb2ludHMgZGV0ZWN0ZWQiCi0gICAgcHV0cyAiLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIgotfQotaWYgeyRhYm9ydF9jb3VudCA+IDB9IHsKLSAgICBwdXRzICItLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIKLSAgICBwdXRzICJFUlJPUjogQWJvcnQgUG9pbnRzIGRldGVjdGVkICIKLSAgICBwdXRzICItLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIKLX0KLWlmIHskdW5rbm93bl9jb3VudCA+IDB9IHsKLSAgICBwdXRzICItLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIgotICAgIHB1dHMgIkVSUk9SOiBVbmtub3duIEtleSBQb2ludHMgZGV0ZWN0ZWQiCi0gICAgcHV0cyAiLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIKLX0KLXB1dHMgIk5vIG9mIGNvbXBhcmUgcG9pbnRzID0gJHBvaW50c19jb3VudCIKLXB1dHMgIk5vIG9mIGRpZmYgcG9pbnRzICAgID0gJGRpZmZfY291bnQiCi1wdXRzICJObyBvZiBhYm9ydCBwb2ludHMgICA9ICRhYm9ydF9jb3VudCIKLXB1dHMgIk5vIG9mIHVua25vd24gcG9pbnRzID0gJHVua25vd25fY291bnQiCi1leGl0IDAKZGlmZiAtLWdpdCBhL2Zsb3cvcG5yL1NDUklQVFMvSU5OT1ZVUy9ydW5fc2luZ2xlLnRjbCBiL2Zsb3cvcG5yL1NDUklQVFMvSU5OT1ZVUy9ydW5fc2luZ2xlLnRjbApkZWxldGVkIGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggNGRjNmVlNC4uMDAwMDAwMAotLS0gYS9mbG93L3Buci9TQ1JJUFRTL0lOTk9WVVMvcnVuX3NpbmdsZS50Y2wKKysrIC9kZXYvbnVsbApAQCAtMSwxNTQgKzAsMCBAQAotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotIyAgICAgICAgICAgICAgICAgICAgICAgQ0FERU5DRSBDT1BZUklHSFQgTk9USUNFCi0jICAgICAgICAgqSAyMDA4LTIwMDkgQ2FkZW5jZSBEZXNpZ24gU3lzdGVtcywgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIwotIyBUaGlzIEZvdW5kYXRpb24gRmxvdyBpcyBwcm92aWRlZCBhcyBhbiBleGFtcGxlIG9mIGhvdyB0byBwZXJmb3JtIHNwZWNpYWxpemVkCi0jIHRhc2tzIHdpdGhpbiBJbm5vdnVzIFN5c3RlbS4KLSMKLSMgVGhpcyB3b3JrIG1heSBub3QgYmUgY29waWVkLCByZS1wdWJsaXNoZWQsIHVwbG9hZGVkLCBvciBkaXN0cmlidXRlZCBpbiBhbnkgd2F5LAotIyBpbiBhbnkgbWVkaXVtLCB3aGV0aGVyIGluIHdob2xlIG9yIGluIHBhcnQsIHdpdGhvdXQgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uCi0jIGZyb20gQ2FkZW5jZS4gTm90d2l0aHN0YW5kaW5nIGFueSByZXN0cmljdGlvbnMgaGVyZWluLCBzdWJqZWN0IHRvIGNvbXBsaWFuY2UKLSMgd2l0aCB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgdGhlIENhZGVuY2Ugc29mdHdhcmUgbGljZW5zZSBhZ3JlZW1lbnQgdW5kZXIKLSMgd2hpY2ggdGhpcyBtYXRlcmlhbCB3YXMgcHJvdmlkZWQsIHRoaXMgbWF0ZXJpYWwgbWF5IGJlIGNvcGllZCBhbmQgaW50ZXJuYWxseQotIyBkaXN0cmlidXRlZCBzb2xlbHkgZm9yIGludGVybmFsIHB1cnBvc2VzIGZvciB1c2Ugd2l0aCBDYWRlbmNlIHRvb2xzLgotIwotIyBUaGlzIHdvcmsgaXMgQ2FkZW5jZSBpbnRlbGxlY3R1YWwgcHJvcGVydHkgYW5kIG1heSB1bmRlciBubyBjaXJjdW1zdGFuY2VzIGJlCi0jIGdpdmVuIHRvIHRoaXJkIHBhcnRpZXMsIG5laXRoZXIgaW4gb3JpZ2luYWwgbm9yIGluIG1vZGlmaWVkIHZlcnNpb25zLCB3aXRob3V0Ci0jIGV4cGxpY2l0IHdyaXR0ZW4gcGVybWlzc2lvbiBmcm9tIENhZGVuY2UuIFRoZSBpbmZvcm1hdGlvbiBjb250YWluZWQgaGVyZWluIGlzCi0jIHRoZSBwcm9wcmlldGFyeSBhbmQgY29uZmlkZW50aWFsIGluZm9ybWF0aW9uIG9mIENhZGVuY2Ugb3IgaXRzIGxpY2Vuc29ycywgYW5kCi0jIGlzIHN1cHBsaWVkIHN1YmplY3QgdG8sIGFuZCBtYXkgYmUgdXNlZCBvbmx5IGJ5IENhZGVuY2UncyBjdXJyZW50IGN1c3RvbWVycwotIyBpbiBhY2NvcmRhbmNlIHdpdGgsIGEgcHJldmlvdXNseSBleGVjdXRlZCBsaWNlbnNlIGFncmVlbWVudCBiZXR3ZWVuIENhZGVuY2UKLSMgYW5kIGl0cyBjdXN0b21lci4KLSMKLSMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSMgVEhJUyBNQVRFUklBTCBJUyBQUk9WSURFRCBCWSBDQURFTkNFICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQKLSMgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YKLSMgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4KLSMgSU4gTk8gRVZFTlQgU0hBTEwgQ0FERU5DRSBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMCi0jIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksCi0jIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUgotIyBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTICBNQVRFUklBTCwgRVZFTiBJRgotIyBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLQotZ2xvYmFsIGVudiAKLQotaWYgeyFbaW5mbyBleGlzdHMgZW52KFZQQVRIKV19IHsKLSAgIHNldCBlbnYoVlBBVEgpICIuL21ha2UiCi19Ci0KLWlmIHshW2luZm8gZXhpc3RzIHZhcnNdfSB7Ci0gICBzb3VyY2UgRkYvdmFycy50Y2wKLX0KLWZvcmVhY2ggZmlsZSAkdmFycyhjb25maWdfZmlsZXMpIHsKLSAgIHNvdXJjZSAkZmlsZQotfQotCi1zZXQgdmFycyhjb2RlZ2VuKSBmYWxzZQotCi1pZiB7W2luZm8gZXhpc3RzIGVudihGRl9TVEFSVCldfSB7Ci0gICBpZiB7W2ZpbGUgZXhpc3RzICRlbnYoVlBBVEgpLyRlbnYoRkZfU1RBUlQpXX0gewotICAgICAgZXhlYyBybSAkZW52KFZQQVRIKS8kZW52KEZGX1NUQVJUKQotICAgfQotICAgc2V0IHN0YXJ0X3N0ZXAgJGVudihGRl9TVEFSVCkKLX0gZWxzZSB7Ci0gICBzZXQgc3RhcnRfc3RlcCBpbml0Ci19Ci1pZiB7W2luZm8gZXhpc3RzIGVudihGRl9TVE9QKV19IHsKLSAgIHNldCBzdG9wX3N0ZXAgJGVudihGRl9TVE9QKQotfSBlbHNlIHsKLSAgIHNldCBzdG9wX3N0ZXAgc2lnbm9mZgotfQotCi1zb3VyY2UgJHZhcnMoc2NyaXB0X3Jvb3QpL0lOTk9WVVMvcHJvY3MudGNsCi0KLXNldCBzdGVwX2xpc3QgJHZhcnMoYnN0ZXBzKQotCi1zZXQgdGltZSAwCi1zZXQgaW5kZXggMAotZm9yZWFjaCBzdGVwICRzdGVwX2xpc3QgewotICAgaWYge1tmaWxlIGV4aXN0cyAkZW52KFZQQVRIKS8kc3RlcF19IHsKLSAgICAgIGlmIHtbZmlsZSBtdGltZSAkZW52KFZQQVRIKS8kc3RlcF0gPiAkdGltZX0gewotICAgICAgICAgaWYge1tsaW5kZXggJHN0ZXBfbGlzdCAkaW5kZXhdID09ICJzaWdub2ZmIn0gewotICAgICAgICAgICAgUHV0cyAiPEZGPiBTdGVwIHNpZ25vZmYgY29tcGxldGUgLi4uIG5vdGhpbmcgdG8gZG8iCi0gICAgICAgICAgICBleGl0Ci0gICAgICAgICB9IGVsc2UgeyAKLSAgICAgICAgICAgIHNldCBzdGFydF9zdGVwIFtsaW5kZXggJHN0ZXBfbGlzdCBbZXhwciAkaW5kZXggKyAxXV0KLSAgICAgICAgIH0KLSAgICAgIH0KLSAgIH0gZWxzZSB7Ci0gICAgICBzZXQgc3RhcnRfc3RlcCAkc3RlcAotICAgICAgYnJlYWsKLSAgIH0KLSAgIGluY3IgaW5kZXgKLX0KLQotaWYge1tsc2VhcmNoICRzdGVwX2xpc3QgJHN0YXJ0X3N0ZXBdID4gW2xzZWFyY2ggJHN0ZXBfbGlzdCAkc3RvcF9zdGVwXX0gewotICAgUHV0cyAiPEZGPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIKLSAgIFB1dHMgIjxGRj4gJHN0b3Bfc3RlcCBzdGVwIGlzIHVwIHRvIGRhdGUiCi0gICBQdXRzICI8RkY+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIgotICAgZXhpdAotfQotUHV0cyAiPEZGPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIKLWlmIHskc3RhcnRfc3RlcCA9PSAkc3RvcF9zdGVwfSB7Ci0gICBQdXRzICI8RkY+IFJVTk5JTkcgU1RFUCAkc3RhcnRfc3RlcCAuLi4iCi19IGVsc2UgeyAKLSAgIFB1dHMgIjxGRj4gUlVOTklORyBTVEVQICRzdGFydF9zdGVwIHRocm91Z2ggJHN0b3Bfc3RlcCAuLi4iCi19Ci1QdXRzICI8RkY+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIgotc2xlZXAgNQotCi1pZiB7W2luZm8gZXhpc3RzIHZhcnMoc2NyaXB0X3Jvb3QpXX0gewotICAgc291cmNlICR2YXJzKHNjcmlwdF9yb290KS9JTk5PVlVTL3Byb2NzLnRjbAotICAgc291cmNlICR2YXJzKHNjcmlwdF9yb290KS9FVEMvdXRpbHMudGNsCi0jICAgc291cmNlICR2YXJzKHNjcmlwdF9yb290KS9FVEMvSU5OT1ZVUy91dGlscy50Y2wKLX0gZWxzZSAgewotICAgUHV0cyAiPEZGPiBFUlJPUjogdmFycyhzY3JpcHRfcm9vdCkgbm90IGRlZmluZWQgLi4uIHBsZWFzZSBkZWZpbmUgeW91ciBpbiBzZXR1cC50Y2wiCi0gICBleGl0IDEKLX0KLQotc2V0IGZvdW5kIDAKLXNldCBpbmRleCAwCi1zZXQgcHJvY19saXN0IFtsaXN0XSAKLWZvcmVhY2ggc3RlcCAkc3RlcF9saXN0IHsKLSAgIGlmIHskc3RlcCA9PSAkc3RhcnRfc3RlcH0gewotICAgICAgc2V0IHZhcnMoc3RlcCkgJHN0ZXAKLSAgICAgIGV2YWwgIjo6RkZfRURJOjppbml0aWFsaXplX2Zsb3ciCi0gICAgICBpZiB7JHN0ZXAgPT0gImluaXQifSB7Ci0gICAgICAgICBldmFsIDo6RkZfRURJOjpydW5faW5pdCAwCi0gICAgICB9IGVsc2UgewotICAgICAgICAgc2V0IG5leHRfc3RlcCBbbGluZGV4ICRzdGVwX2xpc3QgW2V4cHIgJGluZGV4LTFdXQotICAgICAgICAgaWYgeyEkdmFycyhmaXhfaG9sZCl9IHsKLSAgICAgICAgICAgIHN3aXRjaCAkc3RlcCB7Ci0gICAgICAgICAgICAgICAicm91dGUiIHsgc2V0IG5leHRfc3RlcCAicG9zdGN0cyIgfQotICAgICAgICAgICAgICAgInBvc3Ryb3V0ZV9zaSIgeyBzZXQgbmV4dF9zdGVwICJwb3N0cm91dGUiIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0KLSAgICAgICAgIGV2YWwgIjo6RkZfRURJOjpsb2FkX2Rlc2lnbiAwICRuZXh0X3N0ZXAiCi0gICAgICAgICBldmFsICI6OkZGX0VESTo6cnVuXyRzdGVwIDAiCi0gICAgICB9Ci0gICAgICBldmFsICI6OkZGX0VESTo6c2F2ZV9yZXN1bHRzIDAgJHN0ZXAiCi0gICAgICBpZiB7JHN0ZXAgPT0gJHN0b3Bfc3RlcH0gewotICAgICAgICAgUHV0cyAiPEZGPiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09IgotICAgICAgICAgUHV0cyAiPEZGPiAgICAgICAgICBGT1VOREFUSU9OIEZMT1cgQ09NUExFVEUiCi0gICAgICAgICBQdXRzICI8RkY+ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0iCi0gICAgICAgICBleGl0Ci0gICAgICB9Ci0gICAgICBzZXQgZm91bmQgMQotICAgfSBlbHNlIHsKLSAgICAgIGlmIHskZm91bmR9IHsKLSAgICAgICAgIGV2YWwgIjo6RkZfRURJOjpydW5fJHN0ZXAgMCIKLSAgICAgICAgIGV2YWwgIjo6RkZfRURJOjpzYXZlX3Jlc3VsdHMgMCAkc3RlcCIKLSAgICAgICAgIGlmIHskc3RlcCA9PSAkc3RvcF9zdGVwfSB7Ci0gICAgICAgICAgICBQdXRzICI8RkY+ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0iCi0gICAgICAgICAgICBQdXRzICI8RkY+ICAgICAgICAgIEZPVU5EQVRJT04gRkxPVyBDT01QTEVURSIKLSAgICAgICAgICAgIFB1dHMgIjxGRj4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSIKLSAgICAgICAgICAgIHNldCBmb3VuZCAwCi0gICAgICAgICB9IAotICAgICAgfSAKLSAgIH0KLSAgIGluY3IgaW5kZXggICAKLX0KLQotZXhpdApkaWZmIC0tZ2l0IGEvZmxvdy9wbnIvU0NSSVBUUy9nZW5fZmxvdy50Y2wgYi9mbG93L3Buci9TQ1JJUFRTL2dlbl9mbG93LnRjbApkZWxldGVkIGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMTNkNWMxOC4uMDAwMDAwMAotLS0gYS9mbG93L3Buci9TQ1JJUFRTL2dlbl9mbG93LnRjbAorKysgL2Rldi9udWxsCkBAIC0xLDExMiArMCwwIEBACi0jIS91c3IvYmluL2VudiB0Y2xzaAotIyAtKi1UQ0wtKi0KLQotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotIyAgICAgICAgICAgICAgICAgICAgICAgQ0FERU5DRSBDT1BZUklHSFQgTk9USUNFCi0jICAgICAgICAgqSAyMDA4LTIwMTMgQ2FkZW5jZSBEZXNpZ24gU3lzdGVtcywgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIwotIyBUaGlzIEZvdW5kYXRpb24gRmxvdyBpcyBwcm92aWRlZCBhcyBhbiBleGFtcGxlIG9mIGhvdyB0byBwZXJmb3JtIHNwZWNpYWxpemVkCi0jIHRhc2tzLgotIwotIyBUaGlzIHdvcmsgbWF5IG5vdCBiZSBjb3BpZWQsIHJlLXB1Ymxpc2hlZCwgdXBsb2FkZWQsIG9yIGRpc3RyaWJ1dGVkIGluIGFueSB3YXksCi0jIGluIGFueSBtZWRpdW0sIHdoZXRoZXIgaW4gd2hvbGUgb3IgaW4gcGFydCwgd2l0aG91dCBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24KLSMgZnJvbSBDYWRlbmNlLiBOb3R3aXRoc3RhbmRpbmcgYW55IHJlc3RyaWN0aW9ucyBoZXJlaW4sIHN1YmplY3QgdG8gY29tcGxpYW5jZQotIyB3aXRoIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB0aGUgQ2FkZW5jZSBzb2Z0d2FyZSBsaWNlbnNlIGFncmVlbWVudCB1bmRlcgotIyB3aGljaCB0aGlzIG1hdGVyaWFsIHdhcyBwcm92aWRlZCwgdGhpcyBtYXRlcmlhbCBtYXkgYmUgY29waWVkIGFuZCBpbnRlcm5hbGx5Ci0jIGRpc3RyaWJ1dGVkIHNvbGVseSBmb3IgaW50ZXJuYWwgcHVycG9zZXMgZm9yIHVzZSB3aXRoIENhZGVuY2UgdG9vbHMuCi0jCi0jIFRoaXMgd29yayBpcyBDYWRlbmNlIGludGVsbGVjdHVhbCBwcm9wZXJ0eSBhbmQgbWF5IHVuZGVyIG5vIGNpcmN1bXN0YW5jZXMgYmUKLSMgZ2l2ZW4gdG8gdGhpcmQgcGFydGllcywgbmVpdGhlciBpbiBvcmlnaW5hbCBub3IgaW4gbW9kaWZpZWQgdmVyc2lvbnMsIHdpdGhvdXQKLSMgZXhwbGljaXQgd3JpdHRlbiBwZXJtaXNzaW9uIGZyb20gQ2FkZW5jZS4gVGhlIGluZm9ybWF0aW9uIGNvbnRhaW5lZCBoZXJlaW4gaXMKLSMgdGhlIHByb3ByaWV0YXJ5IGFuZCBjb25maWRlbnRpYWwgaW5mb3JtYXRpb24gb2YgQ2FkZW5jZSBvciBpdHMgbGljZW5zb3JzLCBhbmQKLSMgaXMgc3VwcGxpZWQgc3ViamVjdCB0bywgYW5kIG1heSBiZSB1c2VkIG9ubHkgYnkgQ2FkZW5jZSdzIGN1cnJlbnQgY3VzdG9tZXJzCi0jIGluIGFjY29yZGFuY2Ugd2l0aCwgYSBwcmV2aW91c2x5IGV4ZWN1dGVkIGxpY2Vuc2UgYWdyZWVtZW50IGJldHdlZW4gQ2FkZW5jZQotIyBhbmQgaXRzIGN1c3RvbWVyLgotIwotIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIyBUSElTIE1BVEVSSUFMIElTIFBST1ZJREVEIEJZIENBREVOQ0UgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRAotIyBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRgotIyBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELgotIyBJTiBOTyBFVkVOVCBTSEFMTCBDQURFTkNFIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwKLSMgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwKLSMgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SCi0jIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgIE1BVEVSSUFMLCBFVkVOIElGCi0jIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0jIEZvdW5kYXRpb24gRmxvdyBDb2RlIEdlbmVyYXRvcgotIyBWZXJzaW9uIDogMTcuMTAtcDAwM18xCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyAKLQotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0jIFBhcnNlIHRoZSBhcmd1bWVudHMgcGFzc2VkIGluIHRvIHRoZSBzY3JpcHQuICBUaGVzZSBzZXQgdXAgdGhlIGVudmlyb25tZW50ICMKLSMgZm9yIHRoZSByZXN0IG9mIHRoZSBzeXN0ZW0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIwotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0KLWlmIHsoW2ZpbGUgdGFpbCBbaW5mbyBuYW1lb2ZleGVjdXRhYmxlXV0gPT0gImVuY291bnRlciIpIHx8IChbZmlsZSB0YWlsIFtpbmZvIG5hbWVvZmV4ZWN1dGFibGVdXSA9PSAidmVsb2NpdHkiKSB8fFwKLSAgICAoW2ZpbGUgdGFpbCBbaW5mbyBuYW1lb2ZleGVjdXRhYmxlXV0gPT0gImdlbnVzIikgfHwgKFtmaWxlIHRhaWwgW2luZm8gbmFtZW9mZXhlY3V0YWJsZV1dID09ICJpbm5vdnVzIil9IHsKLSAgIHB1dHMgIjxGRj4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09IgotICAgcHV0cyAiPEZGPiBMb2FkaW5nIHRoZSBGb3VuZGF0aW9uIEZsb3cgQ29kZSBHZW5lcmF0b3IiCi0gICBwdXRzICI8RkY+IFZlcnNpb24gOiAxNy4xMC1wMDAzXzEiCi0jICAgcHV0cyAiPEZGPiBBdmFpbGFibGUgUHJvY2VkdXJlczoiCi0gICBwdXRzICI8RkY+ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSIKLSAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhzY3JpcHRfcm9vdCldfSB7IAotICAgICBzZXQgZGVmYXVsdF9zY3JpcHRfcGF0aCAgJHZhcnMoc2NyaXB0X3Jvb3QpCi0gICAgIHNldCB2YXJzKGV4ZWN1dGVfc3RyaW5nKSBbZm9ybWF0ICIlcyAlcyIgJHZhcnMoc2NyaXB0X3Jvb3QpL2dlbl9lZGlfZmxvdy50Y2wgJGFyZ3ZdCi0gICB9IGVsc2UgewotICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKHNjcmlwdF9wYXRoKV19IHsKLSAgICAgICAgIHNldCB2YXJzKHNjcmlwdF9yb290KSAgJHZhcnMoc2NyaXB0X3BhdGgpCi0gICAgICAgICBzZXQgZGVmYXVsdF9zY3JpcHRfcGF0aCAgJHZhcnMoc2NyaXB0X3BhdGgpCi0gICAgICAgICBzZXQgdmFycyhleGVjdXRlX3N0cmluZykgW2Zvcm1hdCAiJXMgJXMiICR2YXJzKHNjcmlwdF9wYXRoKS9nZW5fZWRpX2Zsb3cudGNsICRhcmd2XQotICAgICAgfSBlbHNlIHsgCi0jICAgICAgcHV0cyAiPEZGPiBWYXJpYWJsZSB2YXJzKHNjcmlwdF9yb290KSByZXF1aXJlZCBmb3IgTWFrZWZpbGUgZ2VuZXJhdGlvbiAuLi4iCi0gICAgICAgICBwdXRzICI8RkY+IFZhcmlhYmxlIHZhcnMoc2NyaXB0X3Jvb3QpIG5vdCBkZWZpbmVkIC4uLiBzZXR0aW5nIHRvIFtmaWxlIGRpcm5hbWUgW2ZpbGUgZGlybmFtZSBbZmlsZSBkaXJuYW1lIFtmaWxlIGRpcm5hbWUgW2ZpbGUgZGlybmFtZSBbaW5mbyBuYW1lb2ZleGVjdXRhYmxlXV1dXV1dL3NoYXJlL0ZvdW5kYXRpb25GbG93cy9TQ1JJUFRTIgotICAgICAgICAgc2V0IGRlZmF1bHRfc2NyaXB0X3BhdGggW2ZpbGUgZGlybmFtZSBbZmlsZSBkaXJuYW1lIFtmaWxlIGRpcm5hbWUgW2ZpbGUgZGlybmFtZSBbZmlsZSBkaXJuYW1lIFtpbmZvIG5hbWVvZmV4ZWN1dGFibGVdXV1dXV0vc2hhcmUvRm91bmRhdGlvbkZsb3dzL1NDUklQVFMKLSAgICAgICAgIHNldCB2YXJzKHNjcmlwdF9yb290KSAkZGVmYXVsdF9zY3JpcHRfcGF0aAotICAgICAgfQotICAgfQotfSBlbHNlIHsKLSAgIHNldCB2YXJzKGV4ZWN1dGVfc3RyaW5nKSBbZm9ybWF0ICIlcyAlcyAlcyIgW2luZm8gbmFtZW9mZXhlY3V0YWJsZV0gW2ZpbGUgbm9ybWFsaXplICRhcmd2MF0gJGFyZ3ZdCi0gICAKLSAgIHNldCBub3JtYWxpemVkIFtmaWxlIG5vcm1hbGl6ZSAkYXJndjBdCi0gICBpZiB7W2ZpbGUgaXNkaXJlY3RvcnkgJG5vcm1hbGl6ZWRdfSB7Ci0gICAgICBzZXQgZGVmYXVsdF9zY3JpcHRfcGF0aCAkbm9ybWFsaXplZAotICAgfSBlbHNlaWYge1tmaWxlIGlzZGlyZWN0b3J5IFtmaWxlIGRpcm5hbWUgJG5vcm1hbGl6ZWRdXX0gewotICAgICAgc2V0IGRlZmF1bHRfc2NyaXB0X3BhdGggW2ZpbGUgZGlybmFtZSAkbm9ybWFsaXplZF0KLSAgIH0KLSAgIAotfQotCi1zZXQgdmFycyhzY3JpcHRfcGF0aCkgJGRlZmF1bHRfc2NyaXB0X3BhdGgKLSNwdXRzICR2YXJzKHNjcmlwdF9wYXRoKQotIwotIyBDaGVjayB0aGUgcGF0aHMgdG8gbWFrZSBzdXJlIHRoYXQgdGhlIGZpbGVzIHRoYXQgd2UgbmVlZCBhY3R1YWxseSBleGlzdAotIwotaWYgeyFbZmlsZSBleGlzdHMgJHZhcnMoc2NyaXB0X3BhdGgpL0lOTk9WVVMvcHJvY3MudGNsXX0gewotICAgcHV0cyBbZm9ybWF0ICRGRk1NOjptaXNzaW5nRmlsZXMgJHZhcnMoc2NyaXB0X3BhdGgpL0lOTk9WVVMvcHJvY3MudGNsXQotICAgZXhpdCAtMQotfQotaWYgeyFbZmlsZSBleGlzdHMgJHZhcnMoc2NyaXB0X3BhdGgpL0VUQy91dGlscy50Y2xdfSB7Ci0gICBwdXRzIFtmb3JtYXQgJEZGTU06Om1pc3NpbmdGaWxlcyAkdmFycyhzY3JpcHRfcGF0aCkvRVRDL3V0aWxzLnRjbF0KLSAgIGV4aXQgLTEKLX0KLQotIwotIyBTb3VyY2UgdGhlIG90aGVyIFRjbCBmaWxlcyB0byBleGVjdXRlIHRoZSBmbG93LiAgVGhlbiBkbyBzbwotIwotI3B1dHMgIjxGRj4gU291cmNpbmcgJHZhcnMoc2NyaXB0X3BhdGgpL0lOTk9WVVMvcHJvY3MudGNsIgotc291cmNlICIkdmFycyhzY3JpcHRfcGF0aCkvSU5OT1ZVUy9wcm9jcy50Y2wiCi1pZiB7W2ZpbGUgZXhpc3RzICR2YXJzKHNjcmlwdF9wYXRoKS9SQy9wcm9jcy50Y2xdfSB7Ci0jICAgcHV0cyAiPEZGPiBTb3VyY2luZyAkdmFycyhzY3JpcHRfcGF0aCkvUkMvcHJvY3MudGNsIgotICAgc291cmNlICIkdmFycyhzY3JpcHRfcGF0aCkvUkMvcHJvY3MudGNsIgotfQotI3B1dHMgIjxGRj4gU291cmNpbmcgJHZhcnMoc2NyaXB0X3BhdGgpL0lOTk9WVVMvdXRpbHMudGNsIgotc291cmNlICIkdmFycyhzY3JpcHRfcGF0aCkvRVRDL3V0aWxzLnRjbCIKLQotaWYgeyhbZmlsZSB0YWlsIFtpbmZvIG5hbWVvZmV4ZWN1dGFibGVdXSA9PSAidGNsc2giKX0gewotICAgc2V0IGNvbW1hbmQgIkZGOjpnZW5fZmxvdyAkYXJndiIKLSAgIGV2YWwgJGNvbW1hbmQKLSAgIGV4aXQgMAotfQpkaWZmIC0tZ2l0IGEvZmxvdy9wbnIvU0NSSVBUUy9nZW5faW5ub3Z1c19mbG93LnRjbCBiL2Zsb3cvcG5yL1NDUklQVFMvZ2VuX2lubm92dXNfZmxvdy50Y2wKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDEzZDVjMTguLjAwMDAwMDAKLS0tIGEvZmxvdy9wbnIvU0NSSVBUUy9nZW5faW5ub3Z1c19mbG93LnRjbAorKysgL2Rldi9udWxsCkBAIC0xLDExMiArMCwwIEBACi0jIS91c3IvYmluL2VudiB0Y2xzaAotIyAtKi1UQ0wtKi0KLQotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotIyAgICAgICAgICAgICAgICAgICAgICAgQ0FERU5DRSBDT1BZUklHSFQgTk9USUNFCi0jICAgICAgICAgqSAyMDA4LTIwMTMgQ2FkZW5jZSBEZXNpZ24gU3lzdGVtcywgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIwotIyBUaGlzIEZvdW5kYXRpb24gRmxvdyBpcyBwcm92aWRlZCBhcyBhbiBleGFtcGxlIG9mIGhvdyB0byBwZXJmb3JtIHNwZWNpYWxpemVkCi0jIHRhc2tzLgotIwotIyBUaGlzIHdvcmsgbWF5IG5vdCBiZSBjb3BpZWQsIHJlLXB1Ymxpc2hlZCwgdXBsb2FkZWQsIG9yIGRpc3RyaWJ1dGVkIGluIGFueSB3YXksCi0jIGluIGFueSBtZWRpdW0sIHdoZXRoZXIgaW4gd2hvbGUgb3IgaW4gcGFydCwgd2l0aG91dCBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24KLSMgZnJvbSBDYWRlbmNlLiBOb3R3aXRoc3RhbmRpbmcgYW55IHJlc3RyaWN0aW9ucyBoZXJlaW4sIHN1YmplY3QgdG8gY29tcGxpYW5jZQotIyB3aXRoIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB0aGUgQ2FkZW5jZSBzb2Z0d2FyZSBsaWNlbnNlIGFncmVlbWVudCB1bmRlcgotIyB3aGljaCB0aGlzIG1hdGVyaWFsIHdhcyBwcm92aWRlZCwgdGhpcyBtYXRlcmlhbCBtYXkgYmUgY29waWVkIGFuZCBpbnRlcm5hbGx5Ci0jIGRpc3RyaWJ1dGVkIHNvbGVseSBmb3IgaW50ZXJuYWwgcHVycG9zZXMgZm9yIHVzZSB3aXRoIENhZGVuY2UgdG9vbHMuCi0jCi0jIFRoaXMgd29yayBpcyBDYWRlbmNlIGludGVsbGVjdHVhbCBwcm9wZXJ0eSBhbmQgbWF5IHVuZGVyIG5vIGNpcmN1bXN0YW5jZXMgYmUKLSMgZ2l2ZW4gdG8gdGhpcmQgcGFydGllcywgbmVpdGhlciBpbiBvcmlnaW5hbCBub3IgaW4gbW9kaWZpZWQgdmVyc2lvbnMsIHdpdGhvdXQKLSMgZXhwbGljaXQgd3JpdHRlbiBwZXJtaXNzaW9uIGZyb20gQ2FkZW5jZS4gVGhlIGluZm9ybWF0aW9uIGNvbnRhaW5lZCBoZXJlaW4gaXMKLSMgdGhlIHByb3ByaWV0YXJ5IGFuZCBjb25maWRlbnRpYWwgaW5mb3JtYXRpb24gb2YgQ2FkZW5jZSBvciBpdHMgbGljZW5zb3JzLCBhbmQKLSMgaXMgc3VwcGxpZWQgc3ViamVjdCB0bywgYW5kIG1heSBiZSB1c2VkIG9ubHkgYnkgQ2FkZW5jZSdzIGN1cnJlbnQgY3VzdG9tZXJzCi0jIGluIGFjY29yZGFuY2Ugd2l0aCwgYSBwcmV2aW91c2x5IGV4ZWN1dGVkIGxpY2Vuc2UgYWdyZWVtZW50IGJldHdlZW4gQ2FkZW5jZQotIyBhbmQgaXRzIGN1c3RvbWVyLgotIwotIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIyBUSElTIE1BVEVSSUFMIElTIFBST1ZJREVEIEJZIENBREVOQ0UgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRAotIyBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRgotIyBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELgotIyBJTiBOTyBFVkVOVCBTSEFMTCBDQURFTkNFIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwKLSMgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwKLSMgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SCi0jIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgIE1BVEVSSUFMLCBFVkVOIElGCi0jIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0jIEZvdW5kYXRpb24gRmxvdyBDb2RlIEdlbmVyYXRvcgotIyBWZXJzaW9uIDogMTcuMTAtcDAwM18xCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyAKLQotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0jIFBhcnNlIHRoZSBhcmd1bWVudHMgcGFzc2VkIGluIHRvIHRoZSBzY3JpcHQuICBUaGVzZSBzZXQgdXAgdGhlIGVudmlyb25tZW50ICMKLSMgZm9yIHRoZSByZXN0IG9mIHRoZSBzeXN0ZW0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIwotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0KLWlmIHsoW2ZpbGUgdGFpbCBbaW5mbyBuYW1lb2ZleGVjdXRhYmxlXV0gPT0gImVuY291bnRlciIpIHx8IChbZmlsZSB0YWlsIFtpbmZvIG5hbWVvZmV4ZWN1dGFibGVdXSA9PSAidmVsb2NpdHkiKSB8fFwKLSAgICAoW2ZpbGUgdGFpbCBbaW5mbyBuYW1lb2ZleGVjdXRhYmxlXV0gPT0gImdlbnVzIikgfHwgKFtmaWxlIHRhaWwgW2luZm8gbmFtZW9mZXhlY3V0YWJsZV1dID09ICJpbm5vdnVzIil9IHsKLSAgIHB1dHMgIjxGRj4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09IgotICAgcHV0cyAiPEZGPiBMb2FkaW5nIHRoZSBGb3VuZGF0aW9uIEZsb3cgQ29kZSBHZW5lcmF0b3IiCi0gICBwdXRzICI8RkY+IFZlcnNpb24gOiAxNy4xMC1wMDAzXzEiCi0jICAgcHV0cyAiPEZGPiBBdmFpbGFibGUgUHJvY2VkdXJlczoiCi0gICBwdXRzICI8RkY+ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSIKLSAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhzY3JpcHRfcm9vdCldfSB7IAotICAgICBzZXQgZGVmYXVsdF9zY3JpcHRfcGF0aCAgJHZhcnMoc2NyaXB0X3Jvb3QpCi0gICAgIHNldCB2YXJzKGV4ZWN1dGVfc3RyaW5nKSBbZm9ybWF0ICIlcyAlcyIgJHZhcnMoc2NyaXB0X3Jvb3QpL2dlbl9lZGlfZmxvdy50Y2wgJGFyZ3ZdCi0gICB9IGVsc2UgewotICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKHNjcmlwdF9wYXRoKV19IHsKLSAgICAgICAgIHNldCB2YXJzKHNjcmlwdF9yb290KSAgJHZhcnMoc2NyaXB0X3BhdGgpCi0gICAgICAgICBzZXQgZGVmYXVsdF9zY3JpcHRfcGF0aCAgJHZhcnMoc2NyaXB0X3BhdGgpCi0gICAgICAgICBzZXQgdmFycyhleGVjdXRlX3N0cmluZykgW2Zvcm1hdCAiJXMgJXMiICR2YXJzKHNjcmlwdF9wYXRoKS9nZW5fZWRpX2Zsb3cudGNsICRhcmd2XQotICAgICAgfSBlbHNlIHsgCi0jICAgICAgcHV0cyAiPEZGPiBWYXJpYWJsZSB2YXJzKHNjcmlwdF9yb290KSByZXF1aXJlZCBmb3IgTWFrZWZpbGUgZ2VuZXJhdGlvbiAuLi4iCi0gICAgICAgICBwdXRzICI8RkY+IFZhcmlhYmxlIHZhcnMoc2NyaXB0X3Jvb3QpIG5vdCBkZWZpbmVkIC4uLiBzZXR0aW5nIHRvIFtmaWxlIGRpcm5hbWUgW2ZpbGUgZGlybmFtZSBbZmlsZSBkaXJuYW1lIFtmaWxlIGRpcm5hbWUgW2ZpbGUgZGlybmFtZSBbaW5mbyBuYW1lb2ZleGVjdXRhYmxlXV1dXV1dL3NoYXJlL0ZvdW5kYXRpb25GbG93cy9TQ1JJUFRTIgotICAgICAgICAgc2V0IGRlZmF1bHRfc2NyaXB0X3BhdGggW2ZpbGUgZGlybmFtZSBbZmlsZSBkaXJuYW1lIFtmaWxlIGRpcm5hbWUgW2ZpbGUgZGlybmFtZSBbZmlsZSBkaXJuYW1lIFtpbmZvIG5hbWVvZmV4ZWN1dGFibGVdXV1dXV0vc2hhcmUvRm91bmRhdGlvbkZsb3dzL1NDUklQVFMKLSAgICAgICAgIHNldCB2YXJzKHNjcmlwdF9yb290KSAkZGVmYXVsdF9zY3JpcHRfcGF0aAotICAgICAgfQotICAgfQotfSBlbHNlIHsKLSAgIHNldCB2YXJzKGV4ZWN1dGVfc3RyaW5nKSBbZm9ybWF0ICIlcyAlcyAlcyIgW2luZm8gbmFtZW9mZXhlY3V0YWJsZV0gW2ZpbGUgbm9ybWFsaXplICRhcmd2MF0gJGFyZ3ZdCi0gICAKLSAgIHNldCBub3JtYWxpemVkIFtmaWxlIG5vcm1hbGl6ZSAkYXJndjBdCi0gICBpZiB7W2ZpbGUgaXNkaXJlY3RvcnkgJG5vcm1hbGl6ZWRdfSB7Ci0gICAgICBzZXQgZGVmYXVsdF9zY3JpcHRfcGF0aCAkbm9ybWFsaXplZAotICAgfSBlbHNlaWYge1tmaWxlIGlzZGlyZWN0b3J5IFtmaWxlIGRpcm5hbWUgJG5vcm1hbGl6ZWRdXX0gewotICAgICAgc2V0IGRlZmF1bHRfc2NyaXB0X3BhdGggW2ZpbGUgZGlybmFtZSAkbm9ybWFsaXplZF0KLSAgIH0KLSAgIAotfQotCi1zZXQgdmFycyhzY3JpcHRfcGF0aCkgJGRlZmF1bHRfc2NyaXB0X3BhdGgKLSNwdXRzICR2YXJzKHNjcmlwdF9wYXRoKQotIwotIyBDaGVjayB0aGUgcGF0aHMgdG8gbWFrZSBzdXJlIHRoYXQgdGhlIGZpbGVzIHRoYXQgd2UgbmVlZCBhY3R1YWxseSBleGlzdAotIwotaWYgeyFbZmlsZSBleGlzdHMgJHZhcnMoc2NyaXB0X3BhdGgpL0lOTk9WVVMvcHJvY3MudGNsXX0gewotICAgcHV0cyBbZm9ybWF0ICRGRk1NOjptaXNzaW5nRmlsZXMgJHZhcnMoc2NyaXB0X3BhdGgpL0lOTk9WVVMvcHJvY3MudGNsXQotICAgZXhpdCAtMQotfQotaWYgeyFbZmlsZSBleGlzdHMgJHZhcnMoc2NyaXB0X3BhdGgpL0VUQy91dGlscy50Y2xdfSB7Ci0gICBwdXRzIFtmb3JtYXQgJEZGTU06Om1pc3NpbmdGaWxlcyAkdmFycyhzY3JpcHRfcGF0aCkvRVRDL3V0aWxzLnRjbF0KLSAgIGV4aXQgLTEKLX0KLQotIwotIyBTb3VyY2UgdGhlIG90aGVyIFRjbCBmaWxlcyB0byBleGVjdXRlIHRoZSBmbG93LiAgVGhlbiBkbyBzbwotIwotI3B1dHMgIjxGRj4gU291cmNpbmcgJHZhcnMoc2NyaXB0X3BhdGgpL0lOTk9WVVMvcHJvY3MudGNsIgotc291cmNlICIkdmFycyhzY3JpcHRfcGF0aCkvSU5OT1ZVUy9wcm9jcy50Y2wiCi1pZiB7W2ZpbGUgZXhpc3RzICR2YXJzKHNjcmlwdF9wYXRoKS9SQy9wcm9jcy50Y2xdfSB7Ci0jICAgcHV0cyAiPEZGPiBTb3VyY2luZyAkdmFycyhzY3JpcHRfcGF0aCkvUkMvcHJvY3MudGNsIgotICAgc291cmNlICIkdmFycyhzY3JpcHRfcGF0aCkvUkMvcHJvY3MudGNsIgotfQotI3B1dHMgIjxGRj4gU291cmNpbmcgJHZhcnMoc2NyaXB0X3BhdGgpL0lOTk9WVVMvdXRpbHMudGNsIgotc291cmNlICIkdmFycyhzY3JpcHRfcGF0aCkvRVRDL3V0aWxzLnRjbCIKLQotaWYgeyhbZmlsZSB0YWlsIFtpbmZvIG5hbWVvZmV4ZWN1dGFibGVdXSA9PSAidGNsc2giKX0gewotICAgc2V0IGNvbW1hbmQgIkZGOjpnZW5fZmxvdyAkYXJndiIKLSAgIGV2YWwgJGNvbW1hbmQKLSAgIGV4aXQgMAotfQpkaWZmIC0tZ2l0IGEvZmxvdy9wbnIvU0NSSVBUUy9nZW5faW5ub3Z1c19zZXR1cC50Y2wgYi9mbG93L3Buci9TQ1JJUFRTL2dlbl9pbm5vdnVzX3NldHVwLnRjbApkZWxldGVkIGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDk5MjA1MC4uMDAwMDAwMAotLS0gYS9mbG93L3Buci9TQ1JJUFRTL2dlbl9pbm5vdnVzX3NldHVwLnRjbAorKysgL2Rldi9udWxsCkBAIC0xLDIxODkgKzAsMCBAQAotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotIyAgICAgICAgICAgICAgICAgICAgICAgQ0FERU5DRSBDT1BZUklHSFQgTk9USUNFCi0jICAgICAgICAgqSAyMDA4LTIwMTMgQ2FkZW5jZSBEZXNpZ24gU3lzdGVtcywgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIwotIyBUaGlzIEZvdW5kYXRpb24gRmxvdyBpcyBwcm92aWRlZCBhcyBhbiBleGFtcGxlIG9mIGhvdyB0byBwZXJmb3JtIHNwZWNpYWxpemVkCi0jIHRhc2tzLgotIwotIyBUaGlzIHdvcmsgbWF5IG5vdCBiZSBjb3BpZWQsIHJlLXB1Ymxpc2hlZCwgdXBsb2FkZWQsIG9yIGRpc3RyaWJ1dGVkIGluIGFueSB3YXksCi0jIGluIGFueSBtZWRpdW0sIHdoZXRoZXIgaW4gd2hvbGUgb3IgaW4gcGFydCwgd2l0aG91dCBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24KLSMgZnJvbSBDYWRlbmNlLiBOb3R3aXRoc3RhbmRpbmcgYW55IHJlc3RyaWN0aW9ucyBoZXJlaW4sIHN1YmplY3QgdG8gY29tcGxpYW5jZQotIyB3aXRoIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB0aGUgQ2FkZW5jZSBzb2Z0d2FyZSBsaWNlbnNlIGFncmVlbWVudCB1bmRlcgotIyB3aGljaCB0aGlzIG1hdGVyaWFsIHdhcyBwcm92aWRlZCwgdGhpcyBtYXRlcmlhbCBtYXkgYmUgY29waWVkIGFuZCBpbnRlcm5hbGx5Ci0jIGRpc3RyaWJ1dGVkIHNvbGVseSBmb3IgaW50ZXJuYWwgcHVycG9zZXMgZm9yIHVzZSB3aXRoIENhZGVuY2UgdG9vbHMuCi0jCi0jIFRoaXMgd29yayBpcyBDYWRlbmNlIGludGVsbGVjdHVhbCBwcm9wZXJ0eSBhbmQgbWF5IHVuZGVyIG5vIGNpcmN1bXN0YW5jZXMgYmUKLSMgZ2l2ZW4gdG8gdGhpcmQgcGFydGllcywgbmVpdGhlciBpbiBvcmlnaW5hbCBub3IgaW4gbW9kaWZpZWQgdmVyc2lvbnMsIHdpdGhvdXQKLSMgZXhwbGljaXQgd3JpdHRlbiBwZXJtaXNzaW9uIGZyb20gQ2FkZW5jZS4gVGhlIGluZm9ybWF0aW9uIGNvbnRhaW5lZCBoZXJlaW4gaXMKLSMgdGhlIHByb3ByaWV0YXJ5IGFuZCBjb25maWRlbnRpYWwgaW5mb3JtYXRpb24gb2YgQ2FkZW5jZSBvciBpdHMgbGljZW5zb3JzLCBhbmQKLSMgaXMgc3VwcGxpZWQgc3ViamVjdCB0bywgYW5kIG1heSBiZSB1c2VkIG9ubHkgYnkgQ2FkZW5jZSdzIGN1cnJlbnQgY3VzdG9tZXJzCi0jIGluIGFjY29yZGFuY2Ugd2l0aCwgYSBwcmV2aW91c2x5IGV4ZWN1dGVkIGxpY2Vuc2UgYWdyZWVtZW50IGJldHdlZW4gQ2FkZW5jZQotIyBhbmQgaXRzIGN1c3RvbWVyLgotIwotIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIyBUSElTIE1BVEVSSUFMIElTIFBST1ZJREVEIEJZIENBREVOQ0UgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRAotIyBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRgotIyBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELgotIyBJTiBOTyBFVkVOVCBTSEFMTCBDQURFTkNFIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwKLSMgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwKLSMgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SCi0jIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgIE1BVEVSSUFMLCBFVkVOIElGCi0jIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCi1wcm9jIGNvbnYybW1tYyB7fSB7Ci0KLSAgIGdsb2JhbCByZGFfSW5wdXQKLQotICAgaWYgeyFbaW5mbyBleGlzdHMgc2xvd19saWJzXX0gewotICAgICAgc2V0IHNsb3dfbGlicyBbbGlzdF0KLSAgIH0gCi0gICBpZiB7IVtpbmZvIGV4aXN0cyBmYXN0X2xpYnNdfSB7Ci0gICAgICBzZXQgZmFzdF9saWJzIFtsaXN0XQotICAgfSAKLQotICAgaWYgeyRyZGFfSW5wdXQodWlfdGltZWxpYixtYXgpICE9ICIifSB7Ci0gICAgICBmb3JlYWNoIGxpYiAkcmRhX0lucHV0KHVpX3RpbWVsaWIsbWF4KSB7Ci0gICAgICAgICBmb3JlYWNoIGdsb2JfbGliIFtnbG9iICRsaWJdIHsKLSAgICAgICAgICAgIGlmIHtbZmlsZSBpc2RpcmVjdG9yeSAkZ2xvYl9saWJdfSB7Ci0gICAgICAgICAgICAgICBmb3JlYWNoIG5lc3RlZF9nbG9iX2xpYiBbZ2xvYiAkZ2xvYl9saWIvXCpdIHsKLSAgICAgICAgICAgICAgICAgIGxhcHBlbmQgc2xvd19saWJzICRuZXN0ZWRfZ2xvYl9saWIKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBsYXBwZW5kIHNsb3dfbGlicyAkZ2xvYl9saWIKLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0KLSAgICAgIH0KLSAgICAgIGZvcmVhY2ggbGliICRyZGFfSW5wdXQodWlfdGltZWxpYikgewotICAgICAgICAgZm9yZWFjaCBnbG9iX2xpYiBbZ2xvYiAkbGliXSB7Ci0gICAgICAgICAgICBpZiB7W2ZpbGUgaXNkaXJlY3RvcnkgJGdsb2JfbGliXX0gewotICAgICAgICAgICAgICAgZm9yZWFjaCBuZXN0ZWRfZ2xvYl9saWIgW2dsb2IgJGdsb2JfbGliL1wqXSB7Ci0gICAgICAgICAgICAgICAgICBsYXBwZW5kIHNsb3dfbGlicyAkbmVzdGVkX2dsb2JfbGliCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgbGFwcGVuZCBzbG93X2xpYnMgJGdsb2JfbGliCi0gICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0gICAgICB9Ci0gICAjICAgc2V0IHNsb3dfbGlicyBbY29uY2F0ICRyZGFfSW5wdXQodWlfdGltZWxpYixtYXgpICRyZGFfSW5wdXQodWlfdGltZWxpYildCi0gICB9IGVsc2UgewotICAgICAgZm9yZWFjaCBsaWIgJHJkYV9JbnB1dCh1aV90aW1lbGliKSB7Ci0gICAgICAgICBmb3JlYWNoIGdsb2JfbGliIFtnbG9iICRsaWJdIHsKLSAgICAgICAgICAgIGlmIHtbZmlsZSBpc2RpcmVjdG9yeSAkZ2xvYl9saWJdfSB7Ci0gICAgICAgICAgICAgICBmb3JlYWNoIG5lc3RlZF9nbG9iX2xpYiBbZ2xvYiAkZ2xvYl9saWIvXCpdIHsKLSAgICAgICAgICAgICAgICAgIGxhcHBlbmQgc2xvd19saWJzICRuZXN0ZWRfZ2xvYl9saWIKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBsYXBwZW5kIHNsb3dfbGlicyAkZ2xvYl9saWIKLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0KLSAgICAgIH0KLSAgICMgICBzZXQgc2xvd19saWJzICRyZGFfSW5wdXQodWlfdGltZWxpYikKLSAgIH0KLSAgIGlmIHskcmRhX0lucHV0KHVpX3RpbWVsaWIsbWluKSAhPSAiIn0gewotICAgICAgZm9yZWFjaCBsaWIgJHJkYV9JbnB1dCh1aV90aW1lbGliLG1pbikgewotICAgICAgICAgZm9yZWFjaCBnbG9iX2xpYiBbZ2xvYiAkbGliXSB7Ci0gICAgICAgICAgICBpZiB7W2ZpbGUgaXNkaXJlY3RvcnkgJGdsb2JfbGliXX0gewotICAgICAgICAgICAgICAgZm9yZWFjaCBuZXN0ZWRfZ2xvYl9saWIgW2dsb2IgJGdsb2JfbGliL1wqXSB7Ci0gICAgICAgICAgICAgICAgICBsYXBwZW5kIGZhc3RfbGlicyAkbmVzdGVkX2dsb2JfbGliCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgbGFwcGVuZCBmYXN0X2xpYnMgJGdsb2JfbGliCi0gICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0gICAgICB9Ci0gICAgICBmb3JlYWNoIGxpYiAkcmRhX0lucHV0KHVpX3RpbWVsaWIpIHsKLSAgICAgICAgIGZvcmVhY2ggZ2xvYl9saWIgW2dsb2IgJGxpYl0gewotICAgICAgICAgICAgaWYge1tmaWxlIGlzZGlyZWN0b3J5ICRnbG9iX2xpYl19IHsKLSAgICAgICAgICAgICAgIGZvcmVhY2ggbmVzdGVkX2dsb2JfbGliIFtnbG9iICRnbG9iX2xpYi9cKl0gewotICAgICAgICAgICAgICAgICAgbGFwcGVuZCBmYXN0X2xpYnMgJG5lc3RlZF9nbG9iX2xpYgotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIGxhcHBlbmQgZmFzdF9saWJzICRnbG9iX2xpYgotICAgICAgICAgICAgfQotICAgICAgICAgfSAKLSAgICAgIH0KLSAgICMgICBzZXQgZmFzdF9saWJzIFtjb25jYXQgJHJkYV9JbnB1dCh1aV90aW1lbGliLG1pbikgJHJkYV9JbnB1dCh1aV90aW1lbGliKV0KLSAgIH0gZWxzZSB7Ci0gICAgICBzZXQgZmFzdF9saWJzICRzbG93X2xpYnMKLSAgIH0KLSAgIAotICAgI3B1dHMgIi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIiAKLSAgICNwdXRzICJQUVJTOiAkc2xvd19saWJzIgotICAgI3B1dHMgIlBRUlM6ICRmYXN0X2xpYnMiCi0gICAjcHV0cyAiLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iIAotICAgCi0gICBzZXQgc2RjX2ZpbGVzIFtsaXN0XQotICAgZm9yZWFjaCBmaWxlICRyZGFfSW5wdXQodWlfdGltaW5nY29uX2ZpbGUpIHsKLSAgICAgIGxhcHBlbmQgc2RjX2ZpbGVzICRmaWxlCi0gICB9Ci0gICAKLSAgIHNldCBpbG1fc2RjX2ZpbGVzIFtsaXN0XQotICAgaWYge1tpbmZvIGV4aXN0cyByZGFfSW5wdXQodWlfdGltaW5nY29uX2ZpbGUsZnVsbCldfSB7Ci0gICAgICBmb3JlYWNoIGZpbGUgJHJkYV9JbnB1dCh1aV90aW1pbmdjb25fZmlsZSxmdWxsKSB7Ci0gICAgICAgICBsYXBwZW5kIGlsbV9zZGNfZmlsZXMgJGZpbGUKLSAgICAgIH0KLSAgIH0KLSAgIAotICAgaWYgeyRyZGFfSW5wdXQodWlfY2RiX2ZpbGUsbWF4KSAhPSAiIn0gewotICAgICAgc2V0IHNsb3dfY2RicyBbY29uY2F0ICRyZGFfSW5wdXQodWlfY2RiX2ZpbGUsbWF4KSAkcmRhX0lucHV0KHVpX2NkYl9maWxlKV0KLSAgIH0gZWxzZSB7Ci0gICAgICBpZiB7JHJkYV9JbnB1dCh1aV9jZGJfZmlsZSkgIT0gIiJ9IHsKLSAgICAgICAgIHNldCBzbG93X2NkYnMgJHJkYV9JbnB1dCh1aV9jZGJfZmlsZSkKLSAgICAgIH0KLSAgIH0KLSAgIGlmIHskcmRhX0lucHV0KHVpX2NkYl9maWxlLG1pbikgIT0gIiJ9IHsKLSAgICAgIHNldCBmYXN0X2NkYnMgW2NvbmNhdCAkcmRhX0lucHV0KHVpX2NkYl9maWxlLG1pbikgJHJkYV9JbnB1dCh1aV9jZGJfZmlsZSldCi0gICB9IGVsc2UgewotICAgICAgaWYgeyRyZGFfSW5wdXQodWlfY2RiX2ZpbGUpICE9ICIifSB7Ci0gICAgICAgICBzZXQgZmFzdF9jZGJzICRyZGFfSW5wdXQodWlfY2RiX2ZpbGUpCi0gICAgICB9IGVsc2UgewotICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyBzbG93X2NkYnNdICYmICgkc2xvd19jZGJzICE9ICIiKX0gewotICAgICAgICAgICAgc2V0IGZhc3RfY2RicyAkc2xvd19jZGJzCi0gICAgICAgIH0KLSAgICAgfQotICAgfQotCi0gICBzZXQgYmNfY2FwX3RhYmxlICIiCi0gICBzZXQgd2NfY2FwX3RhYmxlICIiCi0gIAotICAgaWYge1tsbGVuZ3RoICRyZGFfSW5wdXQodWlfY2FwdGJsX2ZpbGUpXSA+IDF9IHsKLSAgICAgIGZvciB7c2V0IGkgMH0geyRpPFtsbGVuZ3RoICRyZGFfSW5wdXQodWlfY2FwdGJsX2ZpbGUpXX0ge2luY3IgaX0gewotICAgICAgICAgaWYge1tsaW5kZXggJHJkYV9JbnB1dCh1aV9jYXB0YmxfZmlsZSkgJGldID09ICItYmVzdCJ9IHsKLSAgICAgICAgICAgIHNldCBiY19jYXBfdGFibGUgW2ZpbGUgbm9ybWFsaXplIFtsaW5kZXggJHJkYV9JbnB1dCh1aV9jYXB0YmxfZmlsZSkgW2V4cHIgJGkrMV1dXQotICAgICAgICAgfQotICAgICAgICAgaWYge1tsaW5kZXggJHJkYV9JbnB1dCh1aV9jYXB0YmxfZmlsZSkgJGldID09ICItd29yc3QifSB7Ci0gICAgICAgICAgICBzZXQgd2NfY2FwX3RhYmxlIFtmaWxlIG5vcm1hbGl6ZSBbbGluZGV4ICRyZGFfSW5wdXQodWlfY2FwdGJsX2ZpbGUpIFtleHByICRpKzFdXV0KLSAgICAgICAgIH0KLSAgICAgIH0KLSAgIH0gZWxzZSB7Ci0gICAgICBzZXQgd2NfY2FwX3RhYmxlIFtmaWxlIG5vcm1hbGl6ZSAkcmRhX0lucHV0KHVpX2NhcHRibF9maWxlKV0KLSAgICAgIHNldCBiY19jYXBfdGFibGUgW2ZpbGUgbm9ybWFsaXplICRyZGFfSW5wdXQodWlfY2FwdGJsX2ZpbGUpXQotICAgfQotICAgCi0gICBzZXQgYmNfcXhfdGVjaF9maWxlICIiCi0gICBzZXQgd2NfcXhfdGVjaF9maWxlICIiCi0gICAKLSAgIGlmIHtbbGxlbmd0aCAkcmRhX0lucHV0KHVpX3F4dGVjaF9maWxlKV0gPiAxfSB7Ci0gICAgICBmb3Ige3NldCBpIDB9IHskaTxbbGxlbmd0aCAkcmRhX0lucHV0KHVpX3F4dGVjaF9maWxlKV19IHtpbmNyIGl9IHsKLSAgICAgICAgIGlmIHtbbGluZGV4ICRyZGFfSW5wdXQodWlfcXh0ZWNoX2ZpbGUpICRpXSA9PSAiLWJlc3QifSB7Ci0gICAgICAgICAgICBzZXQgYmNfcXhfdGVjaF9maWxlIFtmaWxlIG5vcm1hbGl6ZSBbbGluZGV4ICRyZGFfSW5wdXQodWlfcXh0ZWNoX2ZpbGUpIFtleHByICRpKzFdXV0KLSAgICAgICAgIH0KLSAgICAgICAgIGlmIHtbbGluZGV4ICRyZGFfSW5wdXQodWlfcXh0ZWNoX2ZpbGUpICRpXSA9PSAiLXdvcnN0In0gewotICAgICAgICAgICAgc2V0IHdjX3F4X3RlY2hfZmlsZSBbZmlsZSBub3JtYWxpemUgW2xpbmRleCAkcmRhX0lucHV0KHVpX3F4dGVjaF9maWxlKSBbZXhwciAkaSsxXV1dCi0gICAgICAgICB9Ci0gICAgICB9Ci0gICB9IGVsc2UgewotICAgICAgc2V0IHdjX3F4X3RlY2hfZmlsZSBbZmlsZSBub3JtYWxpemUgJHJkYV9JbnB1dCh1aV9xeHRlY2hfZmlsZSldCi0gICAgICBzZXQgYmNfcXhfdGVjaF9maWxlIFtmaWxlIG5vcm1hbGl6ZSAkcmRhX0lucHV0KHVpX3F4dGVjaF9maWxlKV0KLSAgIH0KLSAgIAotICAgCi0jICAgaWYgeyR3Y19jYXBfdGFibGUgPT0gIiJ9IHsKLSMgICAgICBQdXRzICItLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIgCi0jICAgICAgUHV0cyAiXFtQUVJTXF1cW0VSUk9SXF0gTm8gY2FwIHRhYmxlcyBkZWZpbmVkIGZvciB0aGlzIHRlc3RjYXNlIC4uLiBhYm9ydGluZyIKLSMgICAgICBQdXRzICItLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIgCi0jICAgICAgZXhpdCAxCi0jICAgfQotICAgCi0gICBpZiB7KFtpbmZvIGV4aXN0cyBkZ25fbWF4X3RlbXBdID09IDApIHx8IChbaW5mbyBleGlzdHMgZGduX21heF90ZW1wXSAmJiAkZGduX21heF90ZW1wID09ICIiKX0gewotICAgICAgc2V0IG1heF90ZW1wICIiCi0gICB9IGVsc2UgewotICAgICAgc2V0IG1heF90ZW1wICRkZ25fbWF4X3RlbXAKLSAgIH0KLSAgIAotICAgaWYgeyhbaW5mbyBleGlzdHMgZGduX21pbl90ZW1wXSA9PSAwKSB8fCAoW2luZm8gZXhpc3RzIGRnbl9taW5fdGVtcF0gJiYgJGRnbl9taW5fdGVtcCA9PSAiIil9IHsKLSAgICAgIHNldCBtaW5fdGVtcCAiIgotICAgfSBlbHNlIHsKLSAgICAgIHNldCBtaW5fdGVtcCBbZXhwciBhYnMoJGRnbl9taW5fdGVtcCldCi0gICB9Ci0KLSAgIHNldCBwcmVfcm91dGVfcmVzX2ZhY3RvciAkcmRhX0lucHV0KHVpX3ByZVJvdXRlX3JlcykKLSAgIHNldCBwcmVfcm91dGVfY2xrX3Jlc19mYWN0b3IgMS4wCi0gICBzZXQgcG9zdF9yb3V0ZV9yZXNfZmFjdG9yICRyZGFfSW5wdXQodWlfcG9zdFJvdXRlX3JlcykKLSAgIHNldCBwb3N0X3JvdXRlX2Nsa19yZXNfZmFjdG9yICIxLjAgMS4wIDEuMCIKLSAgIHNldCBwcmVfcm91dGVfY2FwX2ZhY3RvciAkcmRhX0lucHV0KHVpX3ByZVJvdXRlX2NhcCkKLSAgIHNldCBwcmVfcm91dGVfY2xrX2NhcF9mYWN0b3IgMS4wCi0gICBzZXQgcG9zdF9yb3V0ZV9jYXBfZmFjdG9yICRyZGFfSW5wdXQodWlfcG9zdFJvdXRlX2NhcCkKLSAgIHNldCBwb3N0X3JvdXRlX2Nsa19jYXBfZmFjdG9yICIxLjAgMS4wIDEuMCIKLSAgIHNldCBwb3N0X3JvdXRlX3hjYXBfZmFjdG9yICRyZGFfSW5wdXQodWlfcG9zdFJvdXRlX3hjYXApCi0gICBzZXQgc2hyaW5rX2ZhY3RvciAkcmRhX0lucHV0KHVpX3Nocl9zY2FsZSkKLSMgICBzZXQgcmVsYXRpdmVfY190aHJlc2ggJHJkYV9JbnB1dCh1aV9yZWxfY190aHJlc2gpCi0jICAgc2V0IHRvdGFsX2NfdGhyZXNoICRyZGFfSW5wdXQodWlfdG90X2NfdGhyZXNoKQotIyAgIHNldCBjb3VwbGluZ19jX3RocmVzaCAkcmRhX0lucHV0KHVpX2NwbF9jX3RocmVzaCkKLQotICAgY3JlYXRlX3JjX2Nvcm5lciAtbmFtZSByY19tYXggIFwKLSAgICAgICAgICAgICAgICAgICAgLXByZVJvdXRlX3JlcyAkcHJlX3JvdXRlX3Jlc19mYWN0b3IgXAotICAgICAgICAgICAgICAgICAgICAtcHJlUm91dGVfY2xrcmVzICRwcmVfcm91dGVfY2xrX3Jlc19mYWN0b3IgXAotICAgICAgICAgICAgICAgICAgICAtcHJlUm91dGVfY2FwICRwcmVfcm91dGVfY2FwX2ZhY3RvciBcCi0gICAgICAgICAgICAgICAgICAgIC1wcmVSb3V0ZV9jbGtjYXAgJHByZV9yb3V0ZV9jbGtfY2FwX2ZhY3RvciBcCi0gICAgICAgICAgICAgICAgICAgIC1wb3N0Um91dGVfcmVzICRwb3N0X3JvdXRlX3Jlc19mYWN0b3IgXAotICAgICAgICAgICAgICAgICAgICAtcG9zdFJvdXRlX2Nsa3JlcyAkcG9zdF9yb3V0ZV9jbGtfcmVzX2ZhY3RvciBcCi0gICAgICAgICAgICAgICAgICAgIC1wb3N0Um91dGVfY2FwICRwb3N0X3JvdXRlX2NhcF9mYWN0b3IgXAotICAgICAgICAgICAgICAgICAgICAtcG9zdFJvdXRlX2Nsa2NhcCAkcG9zdF9yb3V0ZV9jbGtfY2FwX2ZhY3RvciBcCi0gICAgICAgICAgICAgICAgICAgIC1wb3N0Um91dGVfeGNhcCAkcG9zdF9yb3V0ZV94Y2FwX2ZhY3RvcgotICAKLSAgIGlmIHskd2NfY2FwX3RhYmxlICE9ICIifSB7Ci0gICAgICB1cGRhdGVfcmNfY29ybmVyIC1uYW1lIHJjX21heCAtY2FwX3RhYmxlICR3Y19jYXBfdGFibGUKLSAgIH0KLSAgIGlmIHskbWF4X3RlbXAgIT0gIiJ9IHsKLSAgICAgIHVwZGF0ZV9yY19jb3JuZXIgLW5hbWUgcmNfbWF4IC1UICRtYXhfdGVtcAotICAgfQotCi0gICBpZiB7JHdjX3F4X3RlY2hfZmlsZSAhPSAiIiB9IHsKLSAgICAgIHVwZGF0ZV9yY19jb3JuZXIgLW5hbWUgcmNfbWF4IC1xeF90ZWNoX2ZpbGUgJHdjX3F4X3RlY2hfZmlsZQotICAgfQotICAgIAotICAgY3JlYXRlX3JjX2Nvcm5lciAtbmFtZSByY19taW4gIFwKLSAgICAgICAgICAgICAgICAgICAgLXByZVJvdXRlX3JlcyAkcHJlX3JvdXRlX3Jlc19mYWN0b3IgXAotICAgICAgICAgICAgICAgICAgICAtcHJlUm91dGVfY2xrcmVzICRwcmVfcm91dGVfY2xrX3Jlc19mYWN0b3IgXAotICAgICAgICAgICAgICAgICAgICAtcHJlUm91dGVfY2FwICRwcmVfcm91dGVfY2FwX2ZhY3RvciBcCi0gICAgICAgICAgICAgICAgICAgIC1wcmVSb3V0ZV9jbGtjYXAgJHByZV9yb3V0ZV9jbGtfY2FwX2ZhY3RvciBcCi0gICAgICAgICAgICAgICAgICAgIC1wb3N0Um91dGVfcmVzICRwb3N0X3JvdXRlX3Jlc19mYWN0b3IgXAotICAgICAgICAgICAgICAgICAgICAtcG9zdFJvdXRlX2Nsa3JlcyAkcG9zdF9yb3V0ZV9jbGtfcmVzX2ZhY3RvciBcCi0gICAgICAgICAgICAgICAgICAgIC1wb3N0Um91dGVfY2FwICRwb3N0X3JvdXRlX2NhcF9mYWN0b3IgXAotICAgICAgICAgICAgICAgICAgICAtcG9zdFJvdXRlX2Nsa2NhcCAkcG9zdF9yb3V0ZV9jbGtfY2FwX2ZhY3RvciBcCi0gICAgICAgICAgICAgICAgICAgIC1wb3N0Um91dGVfeGNhcCAkcG9zdF9yb3V0ZV94Y2FwX2ZhY3RvcgotICAgCi0gICBpZiB7JGJjX2NhcF90YWJsZSAhPSAiIn0gewotICAgICAgdXBkYXRlX3JjX2Nvcm5lciAtbmFtZSByY19taW4gLWNhcF90YWJsZSAkYmNfY2FwX3RhYmxlCi0gICB9Ci0gICBpZiB7JG1pbl90ZW1wICE9ICIifSB7Ci0gICAgICB1cGRhdGVfcmNfY29ybmVyIC1uYW1lIHJjX21pbiAtVCAkbWluX3RlbXAKLSAgIH0KLQotICAgaWYgeyRiY19xeF90ZWNoX2ZpbGUgIT0gIiIgfSB7Ci0gICAgICB1cGRhdGVfcmNfY29ybmVyIC1uYW1lIHJjX21pbiAtcXhfdGVjaF9maWxlICRiY19xeF90ZWNoX2ZpbGUKLSAgIH0KLSAgICAKLSAgIGlmIHtbaW5mbyBleGlzdHMgc2xvd19jZGJzXSAmJiAoJHNsb3dfY2RicyAhPSAiIil9IHsKLSAgICAgIGNyZWF0ZV9saWJyYXJ5X3NldCAtbmFtZSBsaWJzX21heCAtdGltaW5nICRzbG93X2xpYnMgLXNpICRzbG93X2NkYnMgCi0gICAgICBjcmVhdGVfbGlicmFyeV9zZXQgLW5hbWUgbGlic19taW4gLXRpbWluZyAkZmFzdF9saWJzIC1zaSAkZmFzdF9jZGJzIAotICAgfSBlbHNlIHsKLSAgICAgIGNyZWF0ZV9saWJyYXJ5X3NldCAtbmFtZSBsaWJzX21heCAtdGltaW5nICRzbG93X2xpYnMKLSAgICAgIGNyZWF0ZV9saWJyYXJ5X3NldCAtbmFtZSBsaWJzX21pbiAtdGltaW5nICRmYXN0X2xpYnMKLSAgIH0KLSAgIAotICAgY3JlYXRlX2RlbGF5X2Nvcm5lciAtbmFtZSBjb3JuZXJfbWF4IC1saWJyYXJ5X3NldCBsaWJzX21heCAtcmNfY29ybmVyIHJjX21heAotICAgY3JlYXRlX2RlbGF5X2Nvcm5lciAtbmFtZSBjb3JuZXJfbWluIC1saWJyYXJ5X3NldCBsaWJzX21pbiAtcmNfY29ybmVyIHJjX21pbgotICAgUHV0cyAiXFtJTkZPXF0gY3JlYXRlX2NvbnN0cmFpbnRfbW9kZSBzZXR1cF9mdW5jX21vZGUgd2l0aCAiCi0gICBQdXRzICJcW0lORk9cXSAgIFNEQyBmaWxlczogJHNkY19maWxlcyIKLSAgIGlmIHskaWxtX3NkY19maWxlcyAhPSAiIn0gewotICAgICBQdXRzICJcW0lORk9cXSAgIElMTSBTREMgZmlsZXM6ICRpbG1fc2RjX2ZpbGVzIiAKLSAgICAgY3JlYXRlX2NvbnN0cmFpbnRfbW9kZSAtbmFtZSBzZXR1cF9mdW5jX21vZGUgLXNkY19maWxlcyAkc2RjX2ZpbGVzIC1pbG1fc2RjX2ZpbGVzIGlsbV9zZGNfZmlsZXMKLSAgIH0gZWxzZSB7Ci0gICAgIGNyZWF0ZV9jb25zdHJhaW50X21vZGUgLW5hbWUgc2V0dXBfZnVuY19tb2RlIC1zZGNfZmlsZXMgJHNkY19maWxlcyAKLSAgIH0KLSAgIGNyZWF0ZV9hbmFseXNpc192aWV3IC1uYW1lIHNldHVwX2Z1bmMgLWNvbnN0cmFpbnRfbW9kZSBzZXR1cF9mdW5jX21vZGUgLWRlbGF5X2Nvcm5lciBjb3JuZXJfbWF4Ci0jICAgUHV0cyAiXFtJTkZPXF0gY3JlYXRlX2NvbnN0cmFpbnRfbW9kZSBob2xkX2Z1bmNfbW9kZSB3aXRoICIKLSMgICBQdXRzICJcW0lORk9cXSAgIFNEQyBmaWxlczogJHNkY19maWxlcyIKLSMgICBpZiB7JGlsbV9zZGNfZmlsZXMgIT0gIiJ9IHsKLSMgICAgIFB1dHMgIlxbSU5GT1xdICAgSUxNIFNEQyBmaWxlczogJGlsbV9zZGNfZmlsZXMiIAotIyAgICAgY3JlYXRlX2NvbnN0cmFpbnRfbW9kZSAtbmFtZSBob2xkX2Z1bmNfbW9kZSAtc2RjX2ZpbGVzICRzZGNfZmlsZXMgLWlsbV9zZGNfZmlsZXMgaWxtX3NkY19maWxlcwotIyAgIH0gZWxzZSB7Ci0jICAgICBjcmVhdGVfY29uc3RyYWludF9tb2RlIC1uYW1lIGhvbGRfZnVuY19tb2RlIC1zZGNfZmlsZXMgJHNkY19maWxlcyAKLSMgICB9Ci0gICBjcmVhdGVfYW5hbHlzaXNfdmlldyAtbmFtZSBob2xkX2Z1bmMgLWNvbnN0cmFpbnRfbW9kZSBzZXR1cF9mdW5jX21vZGUgLWRlbGF5X2Nvcm5lciBjb3JuZXJfbWluCi0gICBzZXRfYW5hbHlzaXNfdmlldyAtc2V0dXAge3NldHVwX2Z1bmN9IC1ob2xkIHtob2xkX2Z1bmN9IAotICAgc2V0X2RlZmF1bHRfdmlldyAtc2V0dXAge3NldHVwX2Z1bmN9IC1ob2xkIHtob2xkX2Z1bmN9IAotICAgc2V0X2ludGVyYWN0aXZlX2NvbnN0cmFpbnRfbW9kZXMgW2FsbF9jb25zdHJhaW50X21vZGVzIC1hY3RpdmVdIAotfQotCi1wcm9jIGNyZWF0ZV9scF9jb25maWdfZmlsZSB7fSB7Ci0KLSAgIGdsb2JhbCB2YXJzCi0KLSAgIHNldCBvcCBbb3BlbiBscF9jb25maWcuYXV0by50Y2wgd10KLQotICAgaWYge1tmaWxlIGV4aXN0cyBzZXR1cC5hdXRvLnRjbF19IHsKLSAgICAgIHNvdXJjZSBzZXR1cC5hdXRvLnRjbAotICAgfQotICAgaWYge1tmaWxlIGV4aXN0cyBpbm5vdnVzX2NvbmZpZy5hdXRvLnRjbF19IHsKLSAgICAgIHNvdXJjZSBpbm5vdnVzX2NvbmZpZy5hdXRvLnRjbAotICAgfQotCi0gICBwdXRzICRvcCAiIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIgotICAgcHV0cyAkb3AgIiMgTG93IHBvd2VyIGNvbmZpZ3VyYXRpb24gZmlsZSBvdmVybGF5LiAgVGhpcyBmaWxlIGNvbnRhaW5zIGZvdW5kYXRpb24gZmxvdyB2YXJpYWJsZXMiCi0gICBwdXRzICRvcCAiIyB0aGF0IGFyZSBzcGVjaWZpYyB0byB0aGUgTFAgZmxvdyBhbmQgc2hvdWxkIGJlIHVzZWQgaW4gYWRkaXRpb24gdG8gdGhlIHNldHVwLnRjbCIKLSAgIHB1dHMgJG9wICIjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMiCi0gICBwdXRzICRvcCAiIyAgICAgICAgICAgICAgICAgICAgICAgICAgIFRpZSBjZWxsIGluZm9ybWF0aW9uIgotICAgcHV0cyAkb3AgIiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIKLSAgIHB1dHMgJG9wICIjIFRoZSB2YXJpYWJsZSB2YXJzKHRpZV9jZWxscykgaXMgZGVmaW5lZCBpbiB0aGUgc2V0dXAudGNsIGFuZCBpcyB1c2VkIHRvIGRlZmluZSBhICIKLSAgIHB1dHMgJG9wICIjIFwiZ2xvYmFsXCIgdGllIGNlbGwgbGlzdC4gVGhpcyBsaXN0IHdpbGwgYmUgdXNlZCBieSBkZWZhdWx0IGZvciBlYWNoIHBvd2VyIGRvbWFpbi4iCi0gICBwdXRzICRvcCAiIyBJdCBjYW4gYmUgb3ZlcnJpZGRlbiBmb3IgYSBnaXZlbiBwb3dlciBkb21haW4gYnkgc2V0dGluZyB2YXJzKDxwb3dlcl9kb21haW4+LHRpZV9jZWxscykuIgotICAgcHV0cyAkb3AgIiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIKLSAgIHB1dHMgJG9wICIjIgotICAgcHV0cyAkb3AgIiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyIKLSAgIHB1dHMgJG9wICIjICAgICAgICAgICAgICAgICAgICAgICAgIFBsYWNlbWVudCBPcHRpb25zIgotICAgcHV0cyAkb3AgIiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIKLSAgIHB1dHMgJG9wICIjc2V0IHZhcnMocmVzaXplX3NoaWZ0ZXJfYW5kX2lzb19pbnN0cykgPHRydWUgfCBmYWxzZT4iCi0gICBwdXRzICRvcCAiIyIKLSAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhwb3dlcl9kb21haW5zKV19IHsKLSAgICAgIGZvcmVhY2ggZG9tYWluICR2YXJzKHBvd2VyX2RvbWFpbnMpIHsKLSAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyh0aWVfY2VsbHMpXX0gewotICAgICAgICAgICAgcHV0cyAkb3AgIiMgc2V0IHZhcnMoJGRvbWFpbix0aWVfY2VsbHMpXHRcIiR2YXJzKHRpZV9jZWxscylcIiIKLSAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBwdXRzICRvcCAiIyBzZXQgdmFycygkZG9tYWluLHRpZV9jZWxscykgICAgPHRpZSBjZWxscyBmb3IgPHBvd2VyX2RvbWFpbj4+IgotICAgICAgICAgfQotICAgICAgfQotICAgfQotICAgcHV0cyAkb3AgIiMiCi0gICBwdXRzICRvcCAiIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIgotICAgcHV0cyAkb3AgIiMgICAgICAgICAgICAgICAgICAgICAgICAgRmlsbGVyIGNlbGwgaW5mb3JtYXRpb24iCi0gICBwdXRzICRvcCAiIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIgotICAgcHV0cyAkb3AgIiMgVGhlIHZhcmlhYmxlIHZhcnMoZmlsbGVyX2NlbGxzKSBpcyBkZWZpbmVkIGluIHRoZSBzZXR1cC50Y2wgYW5kIGlzIHVzZWQgdG8gZGVmaW5lIGEgIgotICAgcHV0cyAkb3AgIiMgXCJnbG9iYWxcIiBmaWxsZXIgY2VsbCBsaXN0LiBUaGlzIGxpc3Qgd2lsbCBiZSB1c2VkIGJ5IGRlZmF1bHQgZm9yIGVhY2ggcG93ZXIgZG9tYWluLiIKLSAgIHB1dHMgJG9wICIjIEl0IGNhbiBiZSBvdmVycmlkZGVuIGZvciBhIGdpdmVuIHBvd2VyIGRvbWFpbiBieSBzZXR0aW5nIHZhcnMoPHBvd2VyX2RvbWFpbj4sZmlsbGVyX2NlbGxzKS4iCi0gICBwdXRzICRvcCAiIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIgotICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKHBvd2VyX2RvbWFpbnMpXX0gewotICAgICAgZm9yZWFjaCBkb21haW4gJHZhcnMocG93ZXJfZG9tYWlucykgewotICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGZpbGxlcl9jZWxscyldfSB7Ci0gICAgICAgICAgICBwdXRzICRvcCAiIyBzZXQgdmFycygkZG9tYWluLGZpbGxlcl9jZWxscylcdFwiJHZhcnMoZmlsbGVyX2NlbGxzKVwiIgotICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHB1dHMgJG9wICIjIHNldCB2YXJzKCRkb21haW4sZmlsbGVyX2NlbGxzKSA8ZmlsbGVyIGNlbGxzIGZvciA8cG93ZXJfZG9tYWluPj4iCi0gICAgICAgICB9Ci0gICAgICB9Ci0gICB9Ci0gICBwdXRzICRvcCAiIyIKLSAgIHB1dHMgJG9wICIjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMiCi0gICBwdXRzICRvcCAiIyAgICAgICAgICAgICAgICAgICAgICAgICAgV2VsbHRhcCBjZWxsIGluZm9ybWF0aW9uIgotICAgcHV0cyAkb3AgIiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIKLSAgIHB1dHMgJG9wICIjIFRoZSB2YXJpYWJsZSB2YXJzKHdlbGx0YXBzKSBpcyBkZWZpbmVkIGluIHRoZSBzZXR1cC50Y2wgYW5kIGlzIHVzZWQgdG8gZGVmaW5lIGEgIgotICAgcHV0cyAkb3AgIiMgXCJnbG9iYWxcIiB3ZWxsdGFwIGNlbGwgbGlzdC4gVGhpcyBsaXN0IHdpbGwgYmUgdXNlZCBieSBkZWZhdWx0IGZvciBlYWNoIHBvd2VyIGRvbWFpbi4iCi0gICBwdXRzICRvcCAiIyBJdCBjYW4gYmUgb3ZlcnJpZGRlbiBmb3IgYSBnaXZlbiBwb3dlciBkb21haW4gYnkgc2V0dGluZyB2YXJzKDxwb3dlcl9kb21haW4+LHdlbGx0YXBzKS4iCi0gICBwdXRzICRvcCAiIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIgotICAgcHV0cyAkb3AgIiMgICAgdmVyaWZ5X3J1bGUgOiBtYXhpbXVtIGRpc3RhbmNlIChpbiBtaWNyb25zKSBiZXR3ZWVuIHdlbGx0YXAgY2VsbHMgYW5kIHN0YW5kYXJkIGNlbGxzICIKLSAgIHB1dHMgJG9wICIjICAgICAgICAgICAgICAgICAgaW4gbWljcm9ucyIKLSAgIHB1dHMgJG9wICIjICAgICAgICBtYXhfZ2FwIDogc3BlY2lmaWVzIHRoZSBtYXhpbXVtIGRpc3RhbmNlIGZyb20gdGhlIHJpZ2h0IGVkZ2Ugb2Ygb25lIHdlbGwtdGFwIGNlbGwgIgotICAgcHV0cyAkb3AgIiMgICAgICAgICAgICAgICAgICB0byB0aGUgbGVmdCBlZGdlIG9mICB0aGUgZm9sbG93aW5nIHdlbGwtdGFwIGNlbGwgaW4gdGhlIHNhbWUgcm93IgotICAgcHV0cyAkb3AgIiMgIGNlbGxfaW50ZXJ2YWwgOiBzcGVjaWZpZXMgdGhlIG1heGltdW0gZGlzdGFuY2UgZnJvbSB0aGUgY2VudGVyIG9mIG9uZSB3ZWxsLXRhcCBjZWxsICIKLSAgIHB1dHMgJG9wICIjICAgICAgICAgICAgICAgICAgdG8gdGhlIGNlbnRlciBvZiB0aGUgZm9sbG93aW5nIHdlbGwtdGFwIGNlbGwgaW4gdGhlIHNhbWUgcm93IgotICAgcHV0cyAkb3AgIiMiCi0gICBwdXRzICRvcCAiIyBOT1RFOiBtYXhfZ2FwIGFuZCBjZWxsX2ludGVydmFsIHBhcmFtZXRlcnMgYXJlIG11dHVhbGx5IGV4Y2x1c2l2ZSwgdXNlciBoYXMgdG8gZGVmaW5lICIKLSAgIHB1dHMgJG9wICIjICAgICAgIG9ubHkgb25lIG9mIHRoZXNlIHBhcmFtZXRlcnMgdG8gYWRkIHdlbGx0YXAgY2VsbHMiCi0gICBwdXRzICRvcCAiIyIKLSAgIHB1dHMgJG9wICIjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iCi0gICBpZiB7W2luZm8gZXhpc3RzIHZhcnMocG93ZXJfZG9tYWlucyldfSB7Ci0gICAgICBmb3JlYWNoIGRvbWFpbiAkdmFycyhwb3dlcl9kb21haW5zKSB7Ci0gICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMod2VsbHRhcHMpXX0gewotICAgICAgICAgICAgcHV0cyAkb3AgIiMgc2V0IHZhcnMoJGRvbWFpbix2YXJzKHdlbGx0YXBzKSkgICAgICAgICAgICAgICAgIDx3ZWxsdGFwIGNlbGwgbGlzdCBmb3IgPHBvd2VyX2RvbWFpbj4+IgotICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHB1dHMgJG9wICIjIHNldCB2YXJzKCRkb21haW4sd2VsbHRhcHMpICAgICAgICAgICAgICAgICA8d2VsbHRhcCBjZWxsIGxpc3QgZm9yIDxwb3dlcl9kb21haW4+PiIKLSAgICAgICAgIH0gCi0gICAgICAgICBwdXRzICRvcCAiIyBzZXQgdmFycygkZG9tYWluLHdlbGx0YXBzLGNoZWNrZXJib2FyZCkgIDx0cnVlIG9yIGZhbHNlPiIKLSAgICAgICAgIHB1dHMgJG9wICIjIHNldCB2YXJzKCRkb21haW4sd2VsbHRhcHMsbWF4X2dhcCkgICAgICAgPG1heCBnYXAgaW4gbWljcm9ucz4iCi0gICAgICAgICBwdXRzICRvcCAiIyBzZXQgdmFycygkZG9tYWluLHdlbGx0YXBzLGNlbGxfaW50ZXJ2YWwpIDxjZWxsIGludGVydmFsIGluIG1pY3JvbnM+IgotICAgICAgICAgcHV0cyAkb3AgIiMgc2V0IHZhcnMoJGRvbWFpbix3ZWxsdGFwcyxyb3dfb2Zmc2V0KSAgICA8cm93IG9mZnNldCBpbiBtaWNyb25zPiIKLSAgICAgICAgIHB1dHMgJG9wICIjIHNldCB2YXJzKCRkb21haW4sd2VsbHRhcHMsdmVyaWZ5X3J1bGUpICAgPHZlcmlmeSBydWxlIGRpc3RhbmNlPiIKLSAgICAgIH0KLSAgIH0KLSAgIHB1dHMgJG9wICIjIgotICAgcHV0cyAkb3AgIiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyIKLSAgIHB1dHMgJG9wICIjICAgICAgICAgICAgICAgICAgICAgICAgICBFbmRjYXAgY2VsbCBpbmZvcm1hdGlvbiIKLSAgIHB1dHMgJG9wICIjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iCi0gICBwdXRzICRvcCAiIyBUaGUgdmFyaWFibGVzIHZhcnMocHJlX2VuZGNhcCkgYW5kIHZhcnMocG9zdF9lbmRjYXApIGFyZSBzZXQgaW4gdGhlIHNldHVwLnRjbCBmaWxlIGFuZCIKLSAgIHB1dHMgJG9wICIjIGFyZSB1c2VkIHRvIGRlZmluZSBcImdsb2JhbFwiIGVuZGNhcCBjZWxscy4gVGhlc2UgdXNlZCBieSBkZWZhdWx0IGZvciBlYWNoIHBvd2VyIGRvbWFpbi4iCi0gICBwdXRzICRvcCAiIyBUaGV5IGNhbiBiZSBvdmVycmlkZGVuIGZvciBhIGdpdmVuIHBvd2VyIGRvbWFpbiBzZXR0aW5nIHZhcnMoPHBvd2VyX2RvbWFpbj4scHJlX2VuZGNhcCkiCi0gICBwdXRzICRvcCAiIyBhbmQvb3IgdmFycyg8cG93ZXJfZG9tYWluPixwb3N0X2VuZGNhcCkuIgotICAgcHV0cyAkb3AgIiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIKLSAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhwb3dlcl9kb21haW5zKV19IHsKLSAgICAgIGZvcmVhY2ggZG9tYWluICR2YXJzKHBvd2VyX2RvbWFpbnMpIHsKLSAgICAgICAgIHB1dHMgJG9wICIjIHNldCB2YXJzKCRkb21haW4scHJlX2VuZGNhcCkgIDxwcmUgZW5kY2FwIGNlbGwgZm9yIDxwb3dlcl9kb21haW4+PiIKLSAgICAgICAgIHB1dHMgJG9wICIjIHNldCB2YXJzKCRkb21haW4scG9zdF9lbmRjYXApIDxwb3N0IGVuZGNhcCBjZWxsIGZvciA8cG93ZXJfZG9tYWluPj4iCi0gICAgICB9Ci0gICB9Ci0gICBwdXRzICRvcCAiIyIKLSAgIHB1dHMgJG9wICIjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMiCi0gICBwdXRzICRvcCAiIyAgICAgICAgICAgICAgICAgICAgICAgICAgICBBbHdheXMgb24gbmV0IGJ1ZmZlcmluZyIKLSAgIHB1dHMgJG9wICIjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iCi0gICBwdXRzICRvcCAiIyBCeSBkZWZhdWx0IFNPQ0UgZG9lcyBhbHdheXMtb24tbmV0IHN5bnRoZXNpcyBmb3IgU1JQRyBjb250cm9sIHNpZ25hbCBhbmQgUFNPIGVuYWJsZSAiCi0gICBwdXRzICRvcCAiIyBzaWduYWxzIGFzIHBhcnQgb2Ygb3B0RGVzaWduIC1wcmVDVFMsIGJ1dCB0aGlzIGNhbiBiZSBtYW51YWxseSBkb25lIGZvciBzcGVjaWZpYyBuZXRzIGlmIgotICAgcHV0cyAkb3AgIiMgbmVjZXNzYXJ5LiAgVG8gZG8gdGhpcywgZGVmaW5lIHRoZSBmb2xsb3dpbmcgdmFyaWFibGVzIGFuZCB1bmNvbW1lbnQgdGhlIHByZV9wcmVjdHMudGNsIgotICAgcHV0cyAkb3AgIiMgcGx1Zy1pbiB0ZW1wbGF0ZSIKLSAgIHB1dHMgJG9wICIjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iCi0gICBwdXRzICRvcCAiIyBzZXQgdmFycyhhbHdheXNfb25fYnVmZmVycykgICAgICAgICAgICAgICAgICAgPGxpc3Qgb2YgYWx3YXlzIG9uIGJ1ZmZlcnM+IgotICAgcHV0cyAkb3AgIiMgc2V0IHZhcnMoYWx3YXlzX29uX25ldHMpICAgICAgICAgICAgICAgICAgICAgIDxsaXN0IG9mIGFsd2F5cyBvbiBuZXRzPiIKLSAgIHB1dHMgJG9wICIjIHNldCB2YXJzKGFsd2F5c19vbl9uZXRzLG1heF9mYW5vdXQpICAgICAgICAgICA8bWF4IGZhbm91dCBsaW1pdCBmb3IgYWx3YXlzIG9uIG5ldHM+IChvcHRpb25hbCkiCi0gICBwdXRzICRvcCAiIyBzZXQgdmFycyhhbHdheXNfb25fbmV0cyxtYXhfdHJhbikgICAgICAgICAgICAgPG1heCB0cmFuc2l0aW9uIG9uIGFsd2F5cyBvbiBuZXRzPiAob3B0aW9uYWwpIgotICAgcHV0cyAkb3AgIiMgc2V0IHZhcnMoYWx3YXlzX29uX25ldHMsbWF4X3NrZXcpICAgICAgICAgICAgIDxtYXggc2tldyBmb3IgYWx3YXlzIG9uIG5ldHM+IChvcHRpb25hbCkiCi0gICBwdXRzICRvcCAiIyBzZXQgdmFycyhhbHdheXNfb25fbmV0cyxtYXhfZGVsYXkpICAgICAgICAgICAgPG1heCBkZWxheSBmb3IgYWx3YXlzIG9uIG5ldHM+IChvcHRpb25hbCkiCi0gICBpZiB7W2luZm8gZXhpc3RzIHZhcnMocG93ZXJfZG9tYWlucyldfSB7Ci0gICAgICBmb3JlYWNoIGRvbWFpbiAkdmFycyhwb3dlcl9kb21haW5zKSB7Ci0gICAgICAgICBwdXRzICRvcCAiIyBzZXQgdmFycygkZG9tYWluLGFsd2F5c19vbl9idWZmZXJzKSAgPGJ1ZmZlcnMgZm9yIDxwb3dlciBkb21haW4+PiIKLSAgICAgIH0KLSAgIH0KLSAgIHB1dHMgJG9wICIjIgotICAgcHV0cyAkb3AgIiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyIKLSAgIHB1dHMgJG9wICIjICAgICAgICAgICAgICAgICAgICAgIFNlY29uZGFyeSBwb3dlci9ncm91bmQgcm91dGluZyIKLSAgIHB1dHMgJG9wICIjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iCi0gICBwdXRzICRvcCAiIyBBdXRvbWF0aWMgc2Vjb25kYXJ5IHBvd2VyIHJvdXRpbmcgY2FuIGJlIGVuYWJsZWQgdGhlIGZvdW5kYXRpb24gZmxvd3MgYnkgc2V0dGluZyAiCi0gICBwdXRzICRvcCAiIyB2YXJzKHJvdXRlX3NlY29uZGFyeV9wZ19uZXRzKSB0byB0cnVlIGFuZCBwcm92aWRpbmcgY2VsbCBwaW4gcGFpciBpbmZvcm1hdGlvbiB0byIKLSAgIHB1dHMgJG9wICIjIGlkZW50aWZ5IHRoZSBjb25uZWN0aW9ucyByZXF1aXJpbmcgcm91dGluZyAoUFRCVUZGRDE6VFZERCBMVkxMSENENDpWRERMLCBlLmcuKSAiCi0gICBwdXRzICRvcCAiIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIgotICAgcHV0cyAkb3AgIiMgc2V0IHZhcnMocm91dGVfc2Vjb25kYXJ5X3BnX25ldHMpICAgICAgICAgXFt0cnVlIHwgZmFsc2VcXSIKLSAgIHB1dHMgJG9wICIjIHNldCB2YXJzKHNlY29uZGFyeV9wZyxjZWxsX3Bpbl9wYWlycykgICAgIDxzZWNvbmRhcnkgcG93ZXIgY2VsbCBwaW4gcGFpciBsaXN0PiIKLSAgIHB1dHMgJG9wICIjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iCi0gICBwdXRzICRvcCAiI0luIGFkZGl0aW9uLCB0aGUgZm9sbG93aW5nIGNhbiBvcHRpb25hbGx5IGRlZmluZWQgZWl0aGVyIGdsb2JhbGx5IG9yIHBlciBwL2cgbmV0IgotICAgcHV0cyAkb3AgIiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIKLSAgIHB1dHMgJG9wICIjIHNldCB2YXJzKHNlY29uZGFyeV9wZyxtYXhfZmFub3V0KSAgICAgICAgICAgPG1heCBmYW5vdXQgZm9yIHNlY29uZGFyeSBwb3dlciByb3V0aW5nPiIKLSAgIHB1dHMgJG9wICIjIHNldCB2YXJzKHNlY29uZGFyeV9wZyxwYXR0ZXJuKSAgICAgICAgICAgICAgPHNlY29uZGFyeSBwb3dlciByb3V0aW5nIHBhdHRlcm4gdHJ1bmsgfCBzdGVpbmVyPiIKLSAgIHB1dHMgJG9wICIjIHNldCB2YXJzKHNlY29uZGFyeV9wZyxub25fZGVmYXVsdF9ydWxlKSAgICAgPG5vbi1kZWZhdWx0IHJ1bGUgZm9yIHNlY29uZGFyeSBwL2cvIHJvdXRpbmc+IgotICAgcHV0cyAkb3AgIiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIKLSAgIHB1dHMgJG9wICIjIFRvIG9wdGlvbmFsbHkgb3ZlcnJpZGUgZm9yIGEgZ2l2ZW4gcC9nIG5ldChzKSwgdXNlIHRoZSB2YXJzKHJvdXRlX3NlY29uZGFyeV9wZ19uZXRzKSB0byAiCi0gICBwdXRzICRvcCAiIyBkZWZpbmUgdGhlIGxpc3Qgb2YgbmV0cyB0byBiZSBvdmVycmlkZGVuIGFuZCB0aGVuIG92ZXJyaWRlIHZhcnMoPHAvZyBuZXQ+LDxvcHRpb24+KSIKLSAgIHB1dHMgJG9wICIjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iCi0gICBwdXRzICRvcCAiIyBzZXQgdmFycyhzZWNvbmRhcnlfcGcsbmV0cykgICAgICAgICAgICAgICAgICA8bGlzdCBvZiBwb3dlci9ncm91bmQgbmV0cz4iCi0gICBwdXRzICRvcCAiIyBzZXQgdmFycyg8cC9nX25ldD4sbWF4X2Zhbm91dCkgICAgICAgICAgICAgICA8bWF4IGZhbm91dD4iCi0gICBwdXRzICRvcCAiIyBzZXQgdmFycyg8cC9nX25ldD4scGF0dGVybikgICAgICAgICAgICAgICAgICA8dHJ1bmsgfCBzdGVpbmVyPiIKLSAgIHB1dHMgJG9wICIjIHNldCB2YXJzKDxwL2dfbmV0Pixub25fZGVmYXVsdF9ydWxlKSAgICAgICAgIDxub24gZGVmYXVsdCBydWxlPiIKLSAgIHB1dHMgJG9wICIjIgotICAgcHV0cyAkb3AgIiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyIKLSAgIHB1dHMgJG9wICIjICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcnVuQ0xQIG9wdGlvbnMiCi0gICBwdXRzICRvcCAiIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIgotICAgcHV0cyAkb3AgIiMgc2V0IHZhcnMoY2xwX29wdGlvbnMpICA8b3B0aW9ucyBmb3IgcnVuQ0xQPiIKLSAgIHB1dHMgJG9wICIjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iCi0gICBwdXRzICRvcCAiIyBzZXQgdmFycyhjbHBfb3B0aW9ucykgIFwiXCIiCi0gICBwdXRzICRvcCAiIyIKLSAgIHB1dHMgJG9wICIjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMiCi0gICBwdXRzICRvcCAiIyAgICAgICAgICAgICAgTW9kaWZ5IHBvd2VyIGRvbWFpbnMsIHJvdyBjcmVhdGlvbiBmb3IgcG93ZXIgZG9tYWlucyIKLSAgIHB1dHMgJG9wICIjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iCi0gICBwdXRzICRvcCAiIyBUaGUgZm91bmRhdGlvbiBmbG93cyBjb250YWluIGEgc2FtcGxlIHBvc3RfaW5pdF90Y2wgKFBMVUcvcG9zdF9pbml0LnRjbCkgcGx1Zy1pbiB0byBkbyAiCi0gICBwdXRzICRvcCAiIyBwb3dlciBkb21haW4gbW9kaWZpY2F0aW9uIGF1dG9tYXRpY2FsbHkgYmFzZWQgb24gdGhlIGZvbGxvaW5nIHZhcmlhYmxlczoiCi0gICBwdXRzICRvcCAiIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIgotICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKHBvd2VyX2RvbWFpbnMpXX0gewotICAgICAgZm9yZWFjaCBkb21haW4gJHZhcnMocG93ZXJfZG9tYWlucykgewotICAgICAgICAgcHV0cyAkb3AgIiMgc2V0IHZhcnMoJGRvbWFpbixiYm94KSAgICAgICAgIDxsbHggbGx5IHVyeCB1cnk+OyBib25kYXJ5IGNvb3JkaW5hdGVzIGluIG1pY3JvbnMiCi0gICAgICAgICBwdXRzICRvcCAiIyBzZXQgdmFycygkZG9tYWluLHJzX2V4dHMpICAgICAgPHRvcCBib3QgbGVmdCByaWdodD47IGRpc3RhbmNlIGluIG1pY3JvbnMgICIKLSAgICAgICAgIHB1dHMgJG9wICIjIHNldCB2YXJzKCRkb21haW4sbWluX2dhcHMpICAgICA8dG9wIGJvdCBsZWZ0IHJpZ2h0PjsgZGlzdGFuY2UgaW4gbWljcm9ucyIKLSAgICAgIH0KLSAgIH0KLSAgIHB1dHMgJG9wICIjIgotICAgcHV0cyAkb3AgIiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyIKLSAgIHB1dHMgJG9wICIjICAgICAgICAgICAgICAgICAgICAgICAgICAgUG93ZXIgU2h1dC1vZmYgUGxhbm5pbmcgIgotICAgcHV0cyAkb3AgIiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIKLSAgIHB1dHMgJG9wICIjIFRoZSBmb3VuZGF0aW9uIGZsb3dzIGNvbnRhaW4gYSBzYW1wbGUgcG9zdF9pbml0X3RjbCAoUExVRy9wb3N0X2luaXQudGNsKSBwbHVnLWluIHRvIGRvICIKLSAgIHB1dHMgJG9wICIjIHBvd2VyIHN3aXRjaCBpbnNlcnRpb24gYXV0b21hdGljYWxseSBiYXNlZCBvbiB0aGUgZm9sbG93aW5nIGluZm9ybWF0aW9uOiIKLSAgIHB1dHMgJG9wICIjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iCi0gICBwdXRzICRvcCAiIyBzZXQgdmFycyg8cG93ZXJfZG9tYWluPixzd2l0Y2hhYmxlKSAgICAgICAgIDx0cnVlIHwgZmFsc2U+IgotICAgcHV0cyAkb3AgIiMgc2V0IHZhcnMoPHBvd2VyX2RvbWFpbj4sc3dpdGNoX3R5cGUpICAgICAgICA8Y29sdW1uIHwgcmluZz4iCi0gICBwdXRzICRvcCAiIyBzZXQgdmFycyg8cG93ZXJfZG9tYWluPixzd2l0Y2hfY2VsbCkgICAgICAgIDxQU08gY2VsbCBuYW1lPiIKLSAgIHB1dHMgJG9wICIjIHNldCB2YXJzKDxwb3dlcl9kb21haW4+LGlucHV0X2VuYWJsZV9waW4pICAgPFBTTyBjZWxsIGlucHV0IGVuYWJsZSBwaW4+IgotICAgcHV0cyAkb3AgIiMgc2V0IHZhcnMoPHBvd2VyX2RvbWFpbj4sb3V0cHV0X2VuYWJsZV9waW4pICA8UFNPIGNlbGwgb3V0cHV0IGVuYWJsZSBwaW4+IgotICAgcHV0cyAkb3AgIiMgc2V0IHZhcnMoPHBvd2VyX2RvbWFpbj4saW5wdXRfZW5hYmxlX25ldCkgICA8UFNPIGNlbGwgaW5wdXQgZW5hYmxlIG5ldD4iCi0gICBwdXRzICRvcCAiIyBzZXQgdmFycyg8cG93ZXJfZG9tYWluPixvdXRwdXRfZW5hYmxlX25ldCkgIDxQU08gY2VsbCBvdXRwdXQgZW5hYmxlIG5ldD4iCi0gICBwdXRzICRvcCAiIyBzZXQgdmFycyg8cG93ZXJfZG9tYWluPixzd2l0Y2hfaW5zdGFuY2UpICAgIDxzd2l0Y2hNb2R1bGVJbnN0YW5jZT4iCi0gICBwdXRzICRvcCAiIyBzZXQgdmFycyg8cG93ZXJfZG9tYWluPix0b3Bfb2Zmc2V0KSAgICAgICAgIDx0b3Agb2Zmc2V0IGluIG1pY3JvbnM+IgotICAgcHV0cyAkb3AgIiMgc2V0IHZhcnMoPHBvd2VyX2RvbWFpbj4sYm90dG9tX29mZnNldCkgICAgICA8Ym90dG9tIG9mZnNldCBpbiBtaWNyb25zPiIKLSAgIHB1dHMgJG9wICIjIHNldCB2YXJzKDxwb3dlcl9kb21haW4+LHJpZ2h0X29mZnNldCkgICAgICAgPHJpZ2h0IG9mZnNldCBpbiBtaWNyb25zPiIKLSAgIHB1dHMgJG9wICIjIHNldCB2YXJzKDxwb3dlcl9kb21haW4+LGxlZnRfb2Zmc2V0KSAgICAgICAgPGxlZnQgb2Zmc2V0IGluIG1pY3JvbnM+IgotICAgcHV0cyAkb3AgIiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIKLSAgIHB1dHMgJG9wICIjIEJlbG93IHZhcmlhYmxlcyBhcmUgZm9yIGNvbHVtbiBiYXNlZCBwc28gaW1wbGVtZXRhdGlvbiIKLSAgIHB1dHMgJG9wICIjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iCi0gICBwdXRzICRvcCAiIyBzZXQgdmFycyg8cG93ZXJfZG9tYWluPixjaGVja2VyX2JvYXJkKSAgICAgPHRydWUgfCBmYWxzZT4iCi0gICBwdXRzICRvcCAiIyBzZXQgdmFycyg8cG93ZXJfZG9tYWluPixob3Jpem9uYWxfcGl0Y2gpICAgPGluIG1pY3JvbnM+IgotICAgcHV0cyAkb3AgIiMgc2V0IHZhcnMoPHBvd2VyX2RvbWFpbj4sY29sdW1uX2hlaWdodCkgICAgIDxTd2l0Y2ggY2VsbCBjb2x1bW4gaGVpZ2h0IGluIG1pY3JvbnM+IgotICAgcHV0cyAkb3AgIiMgc2V0IHZhcnMoPHBvd2VyX2RvbWFpbj4sc2tpcF9yb3dzKSAgICAgICAgIDxOdW1iZXIgb2Ygcm93cyB0byBza2lwPiIKLSAgIHB1dHMgJG9wICIjIHNldCB2YXJzKDxwb3dlcl9kb21haW4+LGJhY2tfdG9fYmFja19jaGFpbikgPHRydWV8ZmFsc2U+IgotICAgcHV0cyAkb3AgIiMgLi4uIENvbm5lY3RzIHRoZSBlbmFibGVOZXRPdXQgYXQgdGhlIHRvcCBvZiBhIGNvbHVtbiB0byB0aGUgZW5hYmxlTmV0SW4gYXQgdGhlIHRvcCBvZiAiCi0gICBwdXRzICRvcCAiIyAuLi4gdGhlIG5leHQgY29sdW1uLCBhbmQgY29ubmVjdHMgdGhlIGVuYWJsZU5ldE91dCBhdCB0aGUgYm90dG9tIG9mIHRoZSBjb2x1bW4gdG8gdGhlICIKLSAgIHB1dHMgJG9wICIjIC4uLiBlbmFibGVOZXRJbiBhdCB0aGUgYm90dG9tIG9mIHRoZSBuZXh0IGNvbHVtbiIKLSAgIHB1dHMgJG9wICIjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iCi0gICBwdXRzICRvcCAiIyBCZWxvdyB2YXJpYWJsZXMgYXJlIGZvciByaW5nIGJhc2VkIHBzbyBpbXBsZW1ldGF0aW9uIgotICAgcHV0cyAkb3AgIiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIKLSAgIHB1dHMgJG9wICIjIHNldCB2YXJzKDxwb3dlcl9kb21haW4+LHRvcF9yaW5nKSAgICAgPDF8MD4iCi0gICBwdXRzICRvcCAiIyBzZXQgdmFycyg8cG93ZXJfZG9tYWluPixib3R0b21fcmluZykgIDwxfDA+IgotICAgcHV0cyAkb3AgIiMgc2V0IHZhcnMoPHBvd2VyX2RvbWFpbj4scmlnaHRfcmluZykgICA8MXwwPiIKLSAgIHB1dHMgJG9wICIjIHNldCB2YXJzKDxwb3dlcl9kb21haW4+LGxlZnRfcmluZykgICAgPDF8MD4iCi0gICBwdXRzICRvcCAiIyAuLi4gZGVmaW5lcyB3aGljaCBzaWRlIG9mIHRoZSBwb3dlciBkb21haW4gdG8gaW5zZXJ0IHN3aXRjaGVzOiIKLSAgIHB1dHMgJG9wICIjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iCi0gICBwdXRzICRvcCAiIyBzZXQgdmFycyg8cG93ZXJfZG9tYWluPix0b3Bfc3dpdGNoX2NlbGwpICAgIDxwc28gY2VsbCBuYW1lPiIKLSAgIHB1dHMgJG9wICIjIHNldCB2YXJzKDxwb3dlcl9kb21haW4+LGJvdHRvbV9zd2l0Y2hfY2VsbCkgPHBzbyBjZWxsIG5hbWU+IgotICAgcHV0cyAkb3AgIiMgc2V0IHZhcnMoPHBvd2VyX2RvbWFpbj4sbGVmdF9zd2l0Y2hfY2VsbCkgICA8cHNvIGNlbGwgbmFtZT4iCi0gICBwdXRzICRvcCAiIyBzZXQgdmFycyg8cG93ZXJfZG9tYWluPixyaWdodF9zd2l0Y2hfY2VsbCkgIDxwc28gY2VsbCBuYW1lPiIKLSAgIHB1dHMgJG9wICIjIC4uLiBkZWZpbmUgcHNvIGNlbGwgbmFtZSBmb3IgZWFjaCBzaWRlIG9mIHRoZSBwb3dlciBkb21haW4iCi0gICBwdXRzICRvcCAiIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIgotICAgcHV0cyAkb3AgIiMgc2V0IHZhcnMoPHBvd2VyX2RvbWFpbj4sdG9wX2ZpbGxlcl9jZWxsKSAgICA8ZmlsbGVyIGNlbGwgbmFtZT4iCi0gICBwdXRzICRvcCAiIyBzZXQgdmFycyg8cG93ZXJfZG9tYWluPixib3R0b21fZmlsbGVyX2NlbGwpIDxmaWxsZXIgY2VsbCBuYW1lPiIKLSAgIHB1dHMgJG9wICIjIHNldCB2YXJzKDxwb3dlcl9kb21haW4+LGxlZnRfZmlsbGVyX2NlbGwpICAgPGZpbGxlciBjZWxsIG5hbWU+IgotICAgcHV0cyAkb3AgIiMgc2V0IHZhcnMoPHBvd2VyX2RvbWFpbj4scmlnaHRfZmlsbGVyX2NlbGwpICA8ZmlsbGVyIGNlbGwgbmFtZT4iCi0gICBwdXRzICRvcCAiIyBzZXQgdmFycyg8cG93ZXJfZG9tYWluPixjb3JuZXJfY2VsbF9saXN0KSAgIDxjb3JuZXIgY2VsbCBuYW1lPiIKLSAgIHB1dHMgJG9wICIjIC4uLiBkZWZpbmUgZmlsbGVyIGNlbGwgbmFtZSBmb3IgZWFjaCBzaWRlIG9mIHRoZSBwb3dlciBkb21haW4iCi0gICBwdXRzICRvcCAiIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIgotICAgcHV0cyAkb3AgIiMgc2V0IHZhcnMoPHBvd2VyX2RvbWFpbj4sZGlzdHJpYnV0ZSkgICAgICAgICA8dHJ1ZSBvciBmYWxzZT4iCi0gICBwdXRzICRvcCAiIyBzZXQgdmFycyg8cG93ZXJfZG9tYWluPix0b3Bfc3dpdGNoZXMpICAgICAgIDxpbnRlZ2VyPiIKLSAgIHB1dHMgJG9wICIjIHNldCB2YXJzKDxwb3dlcl9kb21haW4+LGJvdHRvbV9zd2l0Y2hlcykgICAgPGludGVnZXI+IgotICAgcHV0cyAkb3AgIiMgc2V0IHZhcnMoPHBvd2VyX2RvbWFpbj4sbGVmdF9zd2l0Y2hlcykgICAgICA8aW50ZWdlcj4iCi0gICBwdXRzICRvcCAiIyBzZXQgdmFycyg8cG93ZXJfZG9tYWluPixyaWdodF9zd2l0Y2hlcykgICAgIDxpbnRlZ2VyPiIKLSAgIHB1dHMgJG9wICIjIC4uLiBkZWZpbmUgdGhlIG51bWJlciBvZiBzd2l0Y2hlcyBmb3IgZWFjaCBzaWRlIG9mIHRoZSBwb3dlciBkb21haW4iCi0gICBwdXRzICRvcCAiIyIKLQotICAgY2xvc2UgJG9wCi0KLSAgIFB1dHMgIjxGRj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIgotICAgUHV0cyAiPEZGPiBDcmVhdGVkIGxvdyBwb3dlciBjb25maWcgZmlsZSBcImxwX2NvbmZpZy5hdXRvLnRjbFwiIgotICAgUHV0cyAiPEZGPiAgICBUaGlzIGZpbGUgaXMgdXNlZCB0byBkZWZpbmUgdmFyaWFibGVzIHNwZWNpZmljIHRvIHRoZSBMUCBmb3VuZGF0aW9uIGZsb3cuIgotICAgUHV0cyAiPEZGPiAgICBBbGwgdGhlIGluZm9ybWFpdG9uIGluIHRoaXMgZmlsZSBpcyBvcHRpb25hbCBidXQgaXMgaW50ZW5kZWQgdG8gaGVscCAiCi0gICBQdXRzICI8RkY+ICAgIGF1dG9tYXRlIHNvbWUgb2YgdGhlIG1vc3QgY29tbW9uIExQIGNvbW1hbmRzLiAgUGxlYXNlIGVkaXQgYW5kIGNvcHkiCi0gICBQdXRzICI8RkY+ICAgIHRvIGxwX2NvbmZpZy50Y2wgdG8gZW5hYmxlIChtYWtlIHN1cmUgaXQgaXMgc291cmNlZCBmcm9tIHNldHVwLnRjbCkuIgotCi19Ci0KLXByb2MgY3JlYXRlX2ludnNfdGFnX2ZpbGUge30gewotCi0gICBnbG9iYWwgdmFycwotICAgZ2xvYmFsIHRhZ3MKLQotICAgc2V0IHN0ZXBzIFtsaXN0ICJmZWVkdGhyb3VnaCIgImFzc2lnbl9waW4iICJtb2RlbF9nZW4iICJwYXJ0aXRpb24iIFwKLSAgICAgICAgICAgICAgICAgImluaXQiICJwbGFjZSIgInByZWN0cyIgImN0cyIgInBvc3RjdHMiICJwb3N0Y3RzX2hvbGQiICJyb3V0ZSIgXAotICAgICAgICAgICAgICAgICAicG9zdHJvdXRlIiAicG9zdHJvdXRlX2hvbGQiICJzaWdub2ZmIiAiYXNzZW1ibGUiXQotCi0gICBzZXQgdGFncyhpbml0KSBbbGlzdCBcCi0gICAgICBzZXRfZGlzdHJpYnV0ZV9ob3N0IFwKLSAgICAgIHNldF9tdWx0aV9jcHVfdXNhZ2UgXAotICAgICAgc2V0X2Rpc3RyaWJ1dGVfaG9zdCBcCi0gICAgICBzZXRfbXVsdGlfY3B1X3VzYWdlIFwKLSAgICAgIHNldF9yY19mYWN0b3IgXAotICAgICAgZGVyYXRlX3RpbWluZyBcCi0gICAgICBjcmVhdGVfcmNfY29ybmVyIFwKLSAgICAgIGNyZWF0ZV9saWJyYXJ5X3NldCBcCi0gICAgICBjcmVhdGVfZGVsYXlfY29ybmVyIFwKLSAgICAgIGNyZWF0ZV9jb25zdHJhaW50X21vZGUgXAotICAgICAgY3JlYXRlX2FuYWx5c2lzX3ZpZXcgXAotICAgICAgdXBkYXRlX2RlbGF5X2Nvcm5lciBcCi0gICAgICB1cGRhdGVfbGlicmFyeV9zZXQgXAotICAgICAgZGVyYXRlX3RpbWluZyBcCi0gICAgICBzZXRfZGVmYXVsdF92aWV3IFwKLSAgICAgIHNldF9wb3dlcl9hbmFseXNpc19tb2RlIFwKLSAgICAgIGluaXRfZGVzaWduIFwKLSAgICAgIGxvYWRfZmxvb3JwbGFuIFwKLSAgICAgIGdlbmVyYXRlX3RyYWNrcyBcCi0gICAgICBsb2FkX2NwZiBcCi0gICAgICBjb21taXRfY3BmIFwKLSAgICAgIHJlYWRfYWN0aXZpdHlfZmlsZSBcCi0gICAgICBzcGVjaWZ5X2lsbSBcCi0gICAgICBsb2FkX2lsbV9ub25fc2RjX2ZpbGUgXAotICAgICAgaW5pdGlhbGl6ZV90aW1pbmcgXAotICAgICAgbG9hZF9zY2FuIFwKLSAgICAgIHNwZWNpZnlfc3BhcmVfZ2F0ZXMgXAotICAgICAgc2V0X2RvbnRfdXNlIFwKLSAgICAgIHNldF9tYXhfcm91dGVfbGF5ZXIgXAotICAgICAgc2V0X2Rlc2lnbl9tb2RlIFwKLSAgICAgIGluc2VydF93ZWxsdGFwc19lbmRjYXBzIFwKLSAgICAgIHRpbWVfZGVzaWduIFwKLSAgICAgIGNoZWNrX2Rlc2lnbiBcCi0gICAgICBjaGVja190aW1pbmcgXAotICAgICAgcmVwb3J0X3Bvd2VyX2RvbWFpbnMgXAotICAgICAgZmZfcmVwbGFjZV9mbGV4bW9kZWxfd2l0aF9mdWxsX25ldGxpc3QgXAotICAgXQotICAgc2V0IHRhZ3MocGxhY2UpIFtsaXN0IFwKLSAgICAgIHNldF9kaXN0cmlidXRlX2hvc3QgXAotICAgICAgc2V0X211bHRpX2NwdV91c2FnZSBcCi0gICAgICByZXN0b3JlX2Rlc2lnbiBcCi0gICAgICBpbml0aWFsaXplX3N0ZXAgXAotICAgICAgICAgc2V0X2Rlc2lnbl9tb2RlIFwKLSAgICAgICAgIHNldF9kZWxheV9jYWxfbW9kZSBcCi0gICAgICAgICBzZXRfcGxhY2VfbW9kZSBcCi0gICAgICAgICBzZXRfb3B0X21vZGUgXAotICAgICAgICAgc2V0X3RpZV9oaWxvX21vZGUgXAotICAgICAgICAgY2xlYW51cF9zcGVjaWZ5X2Nsb2NrX3RyZWUgXAotICAgICAgICAgc3BlY2lmeV9jbG9ja190cmVlIFwKLSAgICAgIHNwZWNpZnlfanRhZyBcCi0gICAgICBwbGFjZV9qdGFnIFwKLSAgICAgIHBsYWNlX2Rlc2lnbiBcCi0gICAgICBwbGFjZV9vcHRfZGVzaWduIFwKLSAgICAgIGFkZF90aWVfY2VsbHMgXAotICAgICAgdGltZV9kZXNpZ24gXAotICAgICAgc2F2ZV9kZXNpZ24gXAotICAgICAgcmVwb3J0X3Bvd2VyIFwKLSAgICAgIHZlcmlmeV9wb3dlcl9kb21haW4gXAotICAgICAgcnVuX2NscCBcCi0gICBdCi0gICBzZXQgdGFncyhwcmVjdHMpIFtsaXN0IFwKLSAgICAgIHNldF9kaXN0cmlidXRlX2hvc3QgXAotICAgICAgc2V0X211bHRpX2NwdV91c2FnZSBcCi0gICAgICBpbml0aWFsaXplX3N0ZXAgXAotICAgICAgICAgc2V0X2Rlc2lnbl9tb2RlIFwKLSAgICAgICAgIHNldF9pbG1fdHlwZSBcCi0gICAgICAgICBjbGVhbnVwX3NwZWNpZnlfY2xvY2tfdHJlZSBcCi0gICAgICAgICBjcmVhdGVfY2xvY2tfdHJlZV9zcGVjIFwKLSAgICAgICAgIHNwZWNpZnlfY2xvY2tfdHJlZSBcCi0gICAgICAgICBzZXRfdXNlZnVsX3NrZXdfbW9kZSBcCi0gICAgICAgICBzZXRfb3B0X21vZGUgXAotICAgICAgICAgc2V0X2Rlc2lnbl9tb2RlIFwKLSAgICAgICAgIHNldF9kZWxheV9jYWxfbW9kZSBcCi0gICAgICAgICBzZXRfZG9udF91c2UgXAotICAgICAgb3B0X2Rlc2lnbiBcCi0gICAgICBja19jbG9uZV9nYXRlIFwKLSAgICAgIHNhdmVfZGVzaWduIFwKLSAgICAgIHJlcG9ydF9wb3dlciBcCi0gICAgICB2ZXJpZnlfcG93ZXJfZG9tYWluIFwKLSAgICAgIHJ1bl9jbHAgXAotICAgXQotICAgc2V0IHRhZ3MoY3RzKSBbbGlzdCBcCi0gICAgICBzZXRfZGlzdHJpYnV0ZV9ob3N0IFwKLSAgICAgIHNldF9tdWx0aV9jcHVfdXNhZ2UgXAotICAgICAgaW5pdGlhbGl6ZV9zdGVwIFwKLSAgICAgICAgIHNldF9kZXNpZ25fbW9kZSBcCi0gICAgICAgICBzZXRfY3RzX21vZGUgXAotICAgICAgICAgc2V0X2Njb3B0X21vZGUgXAotICAgICAgICAgc2V0X25hbm9yb3V0ZV9tb2RlIFwKLSAgICAgIGVuYWJsZV9jbG9ja19nYXRlX2NlbGxzIFwKLSAgICAgIGNsZWFudXBfc3BlY2lmeV9jbG9ja190cmVlIFwKLSAgICAgIGNyZWF0ZV9jbG9ja190cmVlX3NwZWMgXAotICAgICAgc3BlY2lmeV9jbG9ja190cmVlIFwKLSAgICAgIGNsb2NrX2Rlc2lnbiBcCi0gICAgICBjY29wdF9kZXNpZ24gXAotICAgICAgZGlzYWJsZV9jbG9ja19nYXRlX2NlbGxzIFwKLSAgICAgIHJ1bl9jbG9ja19lY28gXAotICAgICAgdXBkYXRlX3RpbWluZyBcCi0gICAgICB0aW1lX2Rlc2lnbiBcCi0gICAgICBzYXZlX2Rlc2lnbiBcCi0gICAgICByZXBvcnRfcG93ZXIgXAotICAgICAgdmVyaWZ5X3Bvd2VyX2RvbWFpbiBcCi0gICAgICBydW5fY2xwIFwKLSAgIF0KLSAgIHNldCB0YWdzKHBvc3RjdHMpIFtsaXN0IFwKLSAgICAgIHNldF9kaXN0cmlidXRlX2hvc3QgXAotICAgICAgc2V0X211bHRpX2NwdV91c2FnZSBcCi0gICAgICBpbml0aWFsaXplX3N0ZXAgXAotICAgICAgICAgc2V0X2Rlc2lnbl9tb2RlIFwKLSAgICAgICAgIHNldF9kZWxheV9jYWxfbW9kZSBcCi0gICAgICAgICBzZXRfYW5hbHlzaXNfbW9kZSBcCi0gICAgICAgICBzZXRfb3B0X21vZGUgXAotICAgICAgb3B0X2Rlc2lnbiBcCi0gICAgICBzYXZlX2Rlc2lnbiBcCi0gICAgICByZXBvcnRfcG93ZXIgXAotICAgICAgdmVyaWZ5X3Bvd2VyX2RvbWFpbiBcCi0gICAgICBydW5fY2xwIFwKLSAgIF0KLSAgIHNldCB0YWdzKHBvc3RjdHNfaG9sZCkgW2xpc3QgXAotICAgICAgc2V0X2Rpc3RyaWJ1dGVfaG9zdCBcCi0gICAgICBzZXRfbXVsdGlfY3B1X3VzYWdlIFwKLSAgICAgIGluaXRpYWxpemVfc3RlcCBcCi0gICAgICAgICBzZXRfZG9udF91c2UgXAotICAgICAgICAgc2V0X29wdF9tb2RlIFwKLSAgICAgIG9wdF9kZXNpZ24gXAotICAgICAgc2F2ZV9kZXNpZ24gXAotICAgICAgcmVwb3J0X3Bvd2VyIFwKLSAgICAgIHZlcmlmeV9wb3dlcl9kb21haW4gXAotICAgICAgcnVuX2NscCBcCi0gICBdCi0gICBzZXQgdGFncyhyb3V0ZSkgW2xpc3QgXAotICAgICAgc2V0X2Rpc3RyaWJ1dGVfaG9zdCBcCi0gICAgICBzZXRfbXVsdGlfY3B1X3VzYWdlIFwKLSAgICAgIGluaXRpYWxpemVfc3RlcCBcCi0gICAgICAgICBzZXRfbmFub3JvdXRlX21vZGUgXAotICAgICAgICAgYWRkX2ZpbGxlcl9jZWxscyBcCi0gICAgICByb3V0ZV9zZWNvbmRhcnlfcGdfbmV0cyBcCi0gICAgICBjaGVja19wbGFjZSBcCi0gICAgICByb3V0ZV9kZXNpZ24gXAotICAgICAgcnVuX2Nsb2NrX2VjbyBcCi0gICAgICBzcHJlYWRfd2lyZXMgXAotICAgICAgaW5pdGlhbGl6ZV90aW1pbmcgXAotICAgICAgdGltZV9kZXNpZ24gXAotICAgICAgc2F2ZV9kZXNpZ24gXAotICAgICAgcmVwb3J0X3Bvd2VyIFwKLSAgICAgIHZlcmlmeV9wb3dlcl9kb21haW4gXAotICAgICAgcnVuX2NscCBcCi0gICBdCi0gICBzZXQgdGFncyhwb3N0cm91dGUpIFtsaXN0IFwKLSAgICAgIHNldF9kaXN0cmlidXRlX2hvc3QgXAotICAgICAgc2V0X211bHRpX2NwdV91c2FnZSBcCi0gICAgICBpbml0aWFsaXplX3N0ZXAgXAotICAgICAgICAgc2V0X2Rlc2lnbl9tb2RlIFwKLSAgICAgICAgIHNldF9leHRyYWN0X3JjX21vZGUgXAotICAgICAgICAgc2V0X2FuYWx5c2lzX21vZGUgXAotICAgICAgICAgc2V0X2RlbGF5X2NhbF9tb2RlIFwKLSAgICAgIGFkZF9tZXRhbGZpbGwgXAotICAgICAgb3B0X2Rlc2lnbiBcCi0gICAgICB0cmltX21ldGFsZmlsbCBcCi0gICAgICBzYXZlX2Rlc2lnbiBcCi0gICAgICByZXBvcnRfcG93ZXIgXAotICAgICAgdmVyaWZ5X3Bvd2VyX2RvbWFpbiBcCi0gICAgICBydW5fY2xwIFwKLSAgIF0KLSAgIHNldCB0YWdzKHBvc3Ryb3V0ZV9ob2xkKSBbbGlzdCBcCi0gICAgICBzZXRfZGlzdHJpYnV0ZV9ob3N0IFwKLSAgICAgIHNldF9tdWx0aV9jcHVfdXNhZ2UgXAotICAgICAgaW5pdGlhbGl6ZV9zdGVwIFwKLSAgICAgICAgIHNldF9kb250X3VzZV9tb2RlIFwKLSAgICAgICAgIHNldF9vcHRfbW9kZSBcCi0gICAgICBvcHRfZGVzaWduIFwKLSAgICAgIHRyaW1fbWV0YWxmaWxsIFwKLSAgICAgIHNhdmVfZGVzaWduIFwKLSAgICAgIHJlcG9ydF9wb3dlciBcCi0gICAgICB2ZXJpZnlfcG93ZXJfZG9tYWluIFwKLSAgICAgIHJ1bl9jbHAgXAotICAgXQotICAgc2V0IHRhZ3Moc2lnbm9mZikgW2xpc3QgXAotICAgICAgc2V0X2Rpc3RyaWJ1dGVfaG9zdCBcCi0gICAgICBzZXRfbXVsdGlfY3B1X3VzYWdlIFwKLSAgICAgIGluaXRpYWxpemVfdGltaW5nIFwKLSAgICAgIGluaXRpYWxpemVfc3RlcCBcCi0gICAgICAgICBzZXRfYW5hbHlzaXNfbW9kZSBcCi0gICAgICAgICBzZXRfZXh0cmFjdF9yY19tb2RlIFwKLSAgICAgIGV4dHJhY3RfcmMgXAotICAgICAgZHVtcF9zcGVmIFwKLSAgICAgIHNpZ25vZmZfdGltZV9kZXNpZ24gXAotICAgICAgdGltZV9kZXNpZ25fc2V0dXAgXAotICAgICAgdGltZV9kZXNpZ25faG9sZCBcCi0gICAgICBzdHJlYW1fb3V0IFwKLSAgICAgIHNhdmVfb2FfZGVzaWduIFwKLSAgICAgIGNyZWF0ZV9pbG0gXAotICAgICAgc3VtbWFyeV9yZXBvcnQgXAotICAgICAgdmVyaWZ5X2Nvbm5lY3Rpdml0eSBcCi0gICAgICB2ZXJpZnlfZ2VvbWV0cnkgXAotICAgICAgdmVyaWZ5X21ldGFsX2RlbnNpdHkgXAotICAgICAgdmVyaWZ5X3Byb2Nlc3NfYW50ZW5uYSBcCi0gICAgICBzYXZlX2Rlc2lnbiBcCi0gICAgICByZXBvcnRfcG93ZXIgXAotICAgICAgdmVyaWZ5X3Bvd2VyX2RvbWFpbiBcCi0gICAgICBydW5fY2xwIFwKLSAgIAotICAgXQotICAgc2V0IHRhZ3MoZmVlZHRocm91Z2gpIFtsaXN0IFwKLSAgICAgIGluaXRpYWxpemVfdGltaW5nIFwKLSAgICAgIGxvYWRfY3BmIFwKLSAgICAgIGNvbW1pdF9jcGYgXAotICAgICAgcnVuX2NscF9pbml0IFwKLSAgICAgIHNhdmVfaW5pdF9kYnMgXAotICAgICAgc2V0X2J1ZGdldGluZ19tb2RlIFwKLSAgICAgIHVwZGF0ZV9jb25zdHJhaW50X21vZGUgXAotICAgICAgc2V0X3B0bl91c2VyX2Nuc19maWxlIFwKLSAgICAgIHNldF9wbGFjZV9tb2RlIFwKLSAgICAgIHNldF9wcm90b19tb2RlbCBcCi0gICAgICBwbGFjZV9kZXNpZ24gXAotICAgICAgdGltZV9kZXNpZ24gXAotICAgICAgc2F2ZV9wbGFjZV9kYnMgXAotICAgICAgaW5zZXJ0X3B0bl9mZWVkdGhyb3VnaCBcCi0gICAgICB0cmlhbF9yb3V0ZSBcCi0gICAgICB0cmlhbF9yb3V0ZV90aW1lX2Rlc2lnbiBcCi0gICBdCi0gICBzZXQgdGFncyhhc3NpZ25fcGluKSBbbGlzdCBcCi0gICAgICBhc3NpZ25fcHRuX3BpbnMgXAotICAgICAgY2hlY2tfcGluX2Fzc2lnbm1lbnQgXAotICAgICAgcmVwb3J0X3VuYWxpZ25lZF9uZXRzIFwKLSAgICAgIHRyaWFsX3JvdXRlIFwKLSAgIF0KLSAgIHNldCB0YWdzKG1vZGVsX2dlbikgW2xpc3QgXAotICAgICAgY3JlYXRlX3BzX3Blcl9taWNyb25fbW9kZWwgXAotICAgICAgaWRlbnRpZnlfcHJvdG9fbW9kZWwgXAotICAgICAgcmVwb3J0X3Byb3RvX21vZGVsIFwKLSAgICAgIHNldElsbU1vZGUgXAotICAgICAgY3JlYXRlX3Byb3RvX21vZGVsIFwKLSAgICAgIGNyZWF0ZV9mbGV4ZmlsbGVyX3JvdXRlX2Jsb2NrYWdlIFwKLSAgICAgIHJlcG9ydF9wcm90b19tb2RlbCBcCi0gICAgICBzYXZlRGVzaWduIFwKLSAgIF0KLSAgIHNldCB0YWdzKHBhcnRpdGlvbikgW2xpc3QgXAotICAgICAgdGltZV9kZXNpZ25fcHJvdG8gXAotICAgICAgc2V0X3BzcG1fdmFycyBcCi0gICAgICBzZXRfYnVkZ2V0aW5nX21vZGUgXAotICAgICAgc2V0X3B0bl9waW5fc3RhdHVzIFwKLSAgICAgIGRlcml2ZV90aW1pbmdfYnVkZ2V0IFwKLSAgICAgIHNhdmVfYnVkZ2V0X2RicyBcCi0gICAgICBydW5fY2xwIFwKLSAgICAgIHBhcnRpdGlvbiBcCi0gICAgICBzYXZlX3BhcnRpdGlvbiBcCi0gICBdCi0gICBzZXQgdGFncyhhc3NlbWJsZSkgW2xpc3QgXAotICAgICAgYXNzZW1ibGVfZGVzaWduIFwKLSAgICAgIHNwZWNpZnlfaWxtIFwKLSAgICAgIGxvYWRfaWxtX25vbl9zZGNfZmlsZSBcCi0gICAgICBsb2FkX2NwZiBcCi0gICAgICBjb21taXRfY3BmIFwKLSAgICAgIGluaXRpYWxpemVfdGltaW5nIFwKLSAgICAgIHVwZGF0ZV90aW1pbmcgXAotICAgICAgcHJlX3NpZ25vZmZfZWNvX3ZlcmlmeV9jb25uZWN0aXZpdHkgXAotICAgICAgcHJlX3NpZ25vZmZfZWNvX3ZlcmlmeV9nZW9tZXRyeSBcCi0gICAgICBzZXRfbW9kdWxlX3ZpZXcgXAotICAgICAgZGVsZXRlX2ZpbGxlcl9jZWxscyBcCi0gICAgICBvcHRfZGVzaWduIFwKLSAgICAgIGV4dHJhY3RfcmMgXAotICAgICAgc2lnbm9mZl9vcHRfZGVzaWduIFwKLSAgICAgIHNpZ25vZmZfdGltZV9kZXNpZ24gXAotICAgICAgYWRkX2ZpbGxlcl9jZWxscyBcCi0gICAgICBlY29fcm91dGUgXAotICAgICAgcG9zdF9zaWdub2ZmX2Vjb192ZXJpZnlfY29ubmVjdGl2aXR5IFwKLSAgICAgIHBvc3Rfc2lnbm9mZl9lY29fdmVyaWZ5X2dlb21ldHJ5IFwKLSAgIF0KLQotICAgc2V0IG9wIFtvcGVuIGludnMuYXV0by50Y2wgd10KLQotICAgcHV0cyAkb3AgIiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyIKLSAgIHB1dHMgJG9wICIjICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDRE5TIEZPVU5EQVRJT04gRkxPVyIKLSAgIHB1dHMgJG9wICIjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iCi0gICBwdXRzICRvcCAiIyBUaGlzIGlzIHRoZSBmb3VuZGF0aW9uIGZsb3cgdGFncyBmaWxlLiAgRWFjaCBmbG93IHN0ZXAgaXMgYSBzZXF1ZW5jZSBvZiBjb21tYW5kcyBhbmQiIAotICAgcHV0cyAkb3AgIiMgZWFjaCBjb21tYW5kIGhhcyBhIHRhZyBhc3NvY2lhdGVkIHdpdGggaXQgYW5kIGVhY2ggdGFnIGhhcyBmb3VyIGF0dHJpYnV0ZXM6IgotICAgcHV0cyAkb3AgIiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIKLSAgIHB1dHMgJG9wICIjICAgICAgIHByZV90Y2wgLT4gZmlsZSB0byBiZSBzb3VyY2VkIHByaW9yIHRvIHRoZSBjb21tYW5kIgotICAgcHV0cyAkb3AgIiMgICAgICBwb3N0X3RjbCAtPiBmaWxlIHRvIGJlIHNvdXJjZWQgYWZ0ZXIgdGhlIGNvbW1hbmQiCi0gICBwdXRzICRvcCAiIyAgIHJlcGxhY2VfdGNsIC0+IGZpbGUgdG8gYmUgc291cmNlZCBpbnN0ZWFkIG9mIHRoZSBjb21tYW5kIgotICAgcHV0cyAkb3AgIiMgICAgICAgICAgc2tpcCAtPiBza2lwIHRoZSBjb21tYW5kIGVudGlyZWx5ICh0cnVlIHwgZmFsc2UpIgotICAgcHV0cyAkb3AgIiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIKLSAgIHB1dHMgJG9wICIjIFRoZXNlIGF0dHJpYnV0ZXMgcHJvdmlkZSBtb3JlIGdyYW51bGFyaXR5IHRoYXQgdGhlIHBsdWctaW5zIGFuZCBhcmUgaW50ZW5kZWQgdG8iCi0gICBwdXRzICRvcCAiIyBhbGxvdyBmb3IgZmxvdyBjdXN0b21pemF0aW9uIGF0IGEgdmVyeSBkZXRhaWxlZCBsZXZlbC4gIFRvIGVuYWJsZSwgc2ltcGx5IHVuY29tbWVudCIKLSAgIHB1dHMgJG9wICIjIHRoZSB0YWcsIGFzc2lnbiB0aGUgYXBwcm9wcmlhdGUgdmFsdWUsIGFuZCBtYWtlIHN1cmUgdGhpcyBmaWxlIGdldHMgc291cmNlZCIKLSAgIHB1dHMgJG9wICIjIGZyb20gdGhlIHNldHVwLnRjbCBvciBpbm5vdnVzX2NvbmZpZy50Y2wuICBLZWVwIGluIG1pbmQsIHRoZXNlIHRhZ3Mgd2lsbCBvbmx5IgotICAgcHV0cyAkb3AgIiMgYmUgZXZhbHVhdGVkIGlmIHRoZSBjb21tYW5kIHRoZXkgYXJlIGFzc29jaWF0ZWQgaXMgZXhlY3V0ZWQgYXMgcGFydCBvZiB0aGUgZmxvdyIKLSAgIHB1dHMgJG9wICIjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iCi0gICBwdXRzICRvcCAiIyAgICAgICAgIHZlcmJvc2UgLT4gUHJpbnQgdGFnIHJlbGF0ZWQgY29tbWVudHMgZm9yIGltcG9ydGVkIHRhZ3MiCi0gICBwdXRzICRvcCAiIyB2ZXJib3NpdHlfbGV2ZWwgLT4gUHJpbnQgdGFnIHJlbGF0ZWQgY29tbWVudHMgZm9yIEFMTCBwb3NzaWJsZSB0YWdzIFxbTE9XIHwgSElHSFxdIgotICAgcHV0cyAkb3AgIiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIKLQotICAgZm9yZWFjaCBzdGVwICRzdGVwcyB7Ci0gICAgICBmb3JlYWNoIGNvbW1hbmQgJHRhZ3MoJHN0ZXApIHsKLSAgICAgICAgIGZvcmVhY2ggdGFnICJwcmVfdGNsIHBvc3RfdGNsIHJlcGxhY2VfdGNsIHNraXAiIHsKLSAgICAgICAgICAgIHNldCBzdHJpbmcgIiNzZXQgdmFycygkc3RlcCwkY29tbWFuZCwkdGFnKSIKLSAgICAgICAgICAgIHNldCBsZW5ndGggW3N0cmluZyBsZW5ndGggJHN0cmluZ10KLSAgICAgICAgICAgIHNldCBkaWZmIFtleHByIDYwLSRsZW5ndGhdCi0gICAgICAgICAgICBzZXQgc3BhY2VzIFtzdHJpbmcgcmVwZWF0ICIgIiAkZGlmZl0KLSAgICAgICAgICAgIGlmIHskdGFnID09ICJza2lwIn0gewotICAgICAgICAgICAgICAgcHV0cyAkb3AgW2Zvcm1hdCAiJXMlcyVzIiAkc3RyaW5nICRzcGFjZXMgIjx0cnVlIG9yIGZhbHNlPiJdCi0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgcHV0cyAkb3AgW2Zvcm1hdCAiJXMlcyVzIiAkc3RyaW5nICRzcGFjZXMgIjxmaWxlPiJdCi0gICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0gICAgICB9Ci0gICAgICBwdXRzICRvcCAiIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIgotICAgfQotCi19Ci0KLXByb2MgcGFkIHthIHthZGQgMH19IHsKLSAgIAotICAgaWYge1tleHByIFtzdHJpbmcgbGVuZ3RoICRhXSArICRhZGRdIDwgNn0gewotICAgICAgcmV0dXJuICJcdFx0XHRcdCIKLSAgIH0gZWxzZWlmIHtbZXhwciBbc3RyaW5nIGxlbmd0aCAkYV0gKyAkYWRkXSA8IDEyfSB7IAotICAgICAgcmV0dXJuICJcdFx0XHQiCi0gICB9IGVsc2VpZiB7W2V4cHIgW3N0cmluZyBsZW5ndGggJGFdICsgJGFkZF0gPCAxOH0geyAKLSAgICAgIHJldHVybiAiXHRcdCIKLSAgIH0gZWxzZWlmIHtbZXhwciBbc3RyaW5nIGxlbmd0aCAkYV0gKyAkYWRkXSA8IDI0fSB7IAotICAgICAgcmV0dXJuICJcdCIKLSAgIH0KLQotfQotCi1wcm9jIGZvcm1hdF9zdHJpbmcge2EgYiB7bGFyZ2UgMH19IHsKLQotICAgc2V0IGFkZCAwCi0KLSAgIGlmIHtbcmVnZXhwICIjIiAkYV19IHsKLSAgICAgIHJlZ3N1YiAiIyIgJGEgIiIgYQotICAgICAgc2V0IGFkZCAxCi0gICB9Ci0KLSMgICBwdXRzICIkYSwgW3N0cmluZyBsZW5ndGggJGFdIgotCi0gICBpZiB7JGxhcmdlfSB7Ci0gICAgICBpZiB7W2V4cHIgW3N0cmluZyBsZW5ndGggJGFdICsgJGFkZF0gPCA0fSB7Ci0gICAgICAgICBzZXQgdGFicyAiXHRcdFx0XHRcdFx0XHRcdFx0XHQiCi0gICAgICB9IGVsc2VpZiB7W2V4cHIgW3N0cmluZyBsZW5ndGggJGFdICsgJGFkZF0gPCA4fSB7IAotICAgICAgICAgc2V0IHRhYnMgIlx0XHRcdFx0XHRcdFx0XHRcdCIKLSAgICAgIH0gZWxzZWlmIHtbZXhwciBbc3RyaW5nIGxlbmd0aCAkYV0gKyAkYWRkXSA8IDEyfSB7IAotICAgICAgICAgc2V0IHRhYnMgIlx0XHRcdFx0XHRcdFx0XHQiCi0gICAgICB9IGVsc2VpZiB7W2V4cHIgW3N0cmluZyBsZW5ndGggJGFdICsgJGFkZF0gPCAxNn0geyAKLSAgICAgICAgIHNldCB0YWJzICJcdFx0XHRcdFx0XHRcdCIKLSAgICAgIH0gZWxzZWlmIHtbZXhwciBbc3RyaW5nIGxlbmd0aCAkYV0gKyAkYWRkXSA8IDIwfSB7IAotICAgICAgICAgc2V0IHRhYnMgIlx0XHRcdFx0XHRcdCIKLSAgICAgIH0gZWxzZWlmIHtbZXhwciBbc3RyaW5nIGxlbmd0aCAkYV0gKyAkYWRkXSA8IDI0fSB7IAotICAgICAgICAgc2V0IHRhYnMgIlx0XHRcdFx0XHQiCi0gICAgICB9IGVsc2VpZiB7W2V4cHIgW3N0cmluZyBsZW5ndGggJGFdICsgJGFkZF0gPCAyOH0geyAKLSAgICAgICAgIHNldCB0YWJzICJcdFx0XHRcdCIKLSAgICAgIH0gZWxzZWlmIHtbZXhwciBbc3RyaW5nIGxlbmd0aCAkYV0gKyAkYWRkXSA8IDMyfSB7IAotICAgICAgICAgc2V0IHRhYnMgIlx0XHRcdCIKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgICBzZXQgdGFicyAiXHRcdCIKLSAgICAgIH0KLSAgIH0gZWxzZSB7Ci0gICAgICBpZiB7W2V4cHIgW3N0cmluZyBsZW5ndGggJGFdICsgJGFkZF0gPCA0fSB7Ci0gICAgICAgICBzZXQgdGFicyAiXHRcdFx0XHRcdFx0IgotICAgICAgfSBlbHNlaWYge1tleHByIFtzdHJpbmcgbGVuZ3RoICRhXSArICRhZGRdIDwgOH0geyAKLSAgICAgICAgIHNldCB0YWJzICJcdFx0XHRcdFx0IgotICAgICAgfSBlbHNlaWYge1tleHByIFtzdHJpbmcgbGVuZ3RoICRhXSArICRhZGRdIDwgMTJ9IHsgCi0gICAgICAgICBzZXQgdGFicyAiXHRcdFx0XHQiCi0gICAgICB9IGVsc2VpZiB7W2V4cHIgW3N0cmluZyBsZW5ndGggJGFdICsgJGFkZF0gPCAxNn0geyAKLSAgICAgICAgIHNldCB0YWJzICJcdFx0XHQiCi0gICAgICB9IGVsc2VpZiB7W2V4cHIgW3N0cmluZyBsZW5ndGggJGFdICsgJGFkZF0gPCAyMH0geyAKLSAgICAgICAgIHNldCB0YWJzICJcdFx0IgotICAgICAgfSBlbHNlIHsKLSAgICAgICAgIHNldCB0YWJzICJcdCIKLSAgICAgIH0KLSAgIH0KLQotICAgIyBIYW5kbGUgdGhlIGVtcHR5IHN0cmluZyBjb3JyZWN0bHkKLSAgIGlmIHskYiA9PSB7fX0geyBzZXQgYiB7e319IH0KLQotICAgaWYgeyRhZGR9IHsKLSAgICAgIHJldHVybiBbZm9ybWF0ICIjc2V0ICRhJXMlcyIgJHRhYnMgJGJdIAotICAgfSBlbHNlIHsKLSAgICAgIHJldHVybiBbZm9ybWF0ICJzZXQgJGElcyVzIiAkdGFicyAkYl0gCi0gICB9Ci19Ci0KLXByb2MgZ2V0X2xpbmVfbWF0Y2gge3BhdHRlcm4gZmlsZSB7bGFzdCAxfX0gewotCi0gICBzZXQgaXAgW29wZW4gJGZpbGUgcl0KLQotICAgd2hpbGUge1tnZXRzICRpcCBsaW5lXT49MH0gewotICAgICAgaWYge1tyZWdleHAgIiRwYXR0ZXJuIiAkbGluZV0+MH0gewotICAgICAgICBpZiB7JGxhc3R9IHsKLSAgICAgICAgICAgc2V0IG1hdGNoICRsaW5lCi0gICAgICAgICB9IGVsc2UgewotICAgICAgICAgICBsYXBwZW5kIG1hdGNoICRsaW5lCi0gICAgICAgICB9Ci0gICAgICB9Ci0gICB9Ci0gICBpZiB7W2luZm8gZXhpc3RzIG1hdGNoXX0geyAKLSAgICAgIHJldHVybiAkbWF0Y2gKLSAgIH0KLX0KLQotc2V0IG9wMSBbb3BlbiBzZXR1cC5hdXRvLnRjbCB3XQotc2V0IG9wMiBbb3BlbiBpbm5vdnVzX2NvbmZpZy5hdXRvLnRjbCB3XQotCi1wdXRzICRvcDEgIiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyIKLXB1dHMgJG9wMSAiIyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ0ROUyBGT1VOREFUSU9OIEZMT1ciCi1wdXRzICRvcDEgIiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIKLXB1dHMgJG9wMSAiIyBUaGlzIGlzIHRoZSBmb3VuZGF0aW9uIGZsb3cgc2V0dXAgZmlsZS4gIEl0IGNvbnRhaW5zIGFsbCB0aGUgbmVjZXNzYXJ5IGRlc2lnbiIKLXB1dHMgJG9wMSAiIyBkYXRhIHRvIGRyaXZlIGFsbCB0aGUgQ0ROUyBmb3VuZGF0aW9uIGZsb3dzLiBFYWNoIGZsb3cgY2FuIGFsc28gaGF2ZSBhbiIKLXB1dHMgJG9wMSAiIyBhZGRpdGlvbmFsIGNvbmZpZ3VyYXRpb24gZmlsZSB0byBkZWZpbmUgZmxvdyBzcGVjaWZpYyBpbmZvcm1hdGlvbjoiIAotcHV0cyAkb3AxICIjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iCi1wdXRzICRvcDEgIiMgSU5OT1ZVUyAtPiAgIGlubm92dXNfY29uZmlnLnRjbCAoZm9yIGZsYXQgYW5kIGhpZXIgaW1wbGVtZW50YXRpb24gZmxvd3MpIgotcHV0cyAkb3AxICIjICAgICAgICAgKyAgICAgbHBfY29uZmlnLnRjbCAoYWRkaXRpb25hbCBpbmZvcm1hdGlvbiBmb3IgZmxhdCBhbmQgaGllciBscCBmbG93cykiCi0jcHV0cyAkb3AxICIjICAgICAgICAgLT4gcHJvdG9fY29uZmlnLnRjbCAoZm9yIHRoZSBwcm90b3R5cGluZyBmbG93KSIKLSNwdXRzICRvcDEgIiMgICAgIEVUUyAtPiAgIGV0c19jb25maWcudGNsIgotI3B1dHMgJG9wMSAiIyAgICAgRVBTIC0+ICAgZXBzX2NvbmZpZy50Y2wiCi1wdXRzICRvcDEgIiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIKLXB1dHMgJG9wMSAiIyBBIHNpbmdsZSBzZXR1cC50Y2wgaXMgYWxsIHRoYXQgaXMgcmVxdWlyZWQuICBUaGVzZSBhZGRpdGlvbmFsIGZpbGVzIGFyZSB0byBlbmFibGUgIgotcHV0cyAkb3AxICIjIHRoZSBzaGFyaW5nIG9mIGEgc2V0dXAudGNsIChkZXNpZ24gZGF0YSkgYW1vbmdzdCBkZXNpZ24gZ3JvdXBzIHdoaWxlIGFsc28gYWxsb3dpbmciIAotcHV0cyAkb3AxICIjIGRpZmZlcmVudCBmbG93IG9wdGlvbnMgdG8gYmUgc2V0IGluIHRoZSAqX2NvbmZpZy5jbCBmaWxlcyBmb3IgZGlmZmVyZW50IGJsb2NrcyBvciBydW5zIgotcHV0cyAkb3AxICIjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMiCi1wdXRzICRvcDEgIiIKLQotcHV0cyAkb3AyICIjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMiCi1wdXRzICRvcDIgIiMgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElOTk9WVVMgRk9VTkRBVElPTiBGTE9XIgotcHV0cyAkb3AyICIjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iCi1wdXRzICRvcDIgIiMgVGhpcyBpcyB0aGUgSU5OT1ZVUyBmb3VuZGF0aW9uIGZsb3cgY29uZmlndXJhdGlvbiBmaWxlLiAgSXQgY29udGFpbnMgYWxsIHRoZSBuZWNlc3NhcnkgZmxvdyIKLXB1dHMgJG9wMiAiIyBvcHRpb25zIHRvIGRyaXZlIHRoZSBDRE5TIGZsYXQgYW5kL29yIGhpZXIgaW1wbGVtZW50YXRpb24gZmxvd3MuICIKLXB1dHMgJG9wMiAiIyBGb3IgbG93IHBvd2VyIGZsb3dzLCBhbiBvcHRpb25hbC9hZGRpdGlvbmFsIGNvbmZpZ3VyYXRpb24gZmlsZSAobHBfY29uZmlnLnRjbCkgY2FuIGJlICIKLXB1dHMgJG9wMiAiIyB1c2VkIHRvIGVuYWJsZSBsb3cgcG93ZXIgZm91bmRhdGlvbiBmbG93IGZlYXR1cmVzIGFuZCBkZWZpbmUgZG9tYWluIHNwZWNpZmljIGluZm9ybWF0aW9uLiIKLXB1dHMgJG9wMiAiIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIgotaWYgeyFbaW5mbyBleGlzdHMgdmFycyh2ZXJzaW9uKV19IHsKLSAgICBzZXQgdmFycyh2ZXJzaW9uKSAxNy4xLjAKLX0KLWlmIHtbbGluZGV4IFtzcGxpdCAkdmFycyh2ZXJzaW9uKSAiLiJdICAwXSA8PSAxMCAmJiBbbGxlbmd0aCBbYWxsX2FuYWx5c2lzX3ZpZXdzXV0gPT0gMn0gewotICAgcHV0cyAiQ29udmVydGluZyBkZWZhdWx0IHRpbWluZyBlbnZpcm9ubWVudCB0byBNTU1DIiAKLSAgIGNvbnYybW1tYwotfQotCi1nbG9iYWwgcmRhX0lucHV0Ci0KLXB1dHMgJG9wMSAiIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIgotcHV0cyAkb3AxICIjIFRoZSB2YXJpYWJsZSB2YXJzKHZlcnNpb24pIHRlbGxzIHRoZSBjb2RlIGdlbmVyYXRvciB3aGljaCB2ZXJzaW9uIG9mIElOTk9WVVMgeW91IHdpbGwgYmUiCi1wdXRzICRvcDEgIiMgdGFyZ2V0aW5nLiIKLXB1dHMgJG9wMSAiIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIgotcHV0cyAkb3AxICJzZXQgdmFycyh2ZXJzaW9uKSAkdmFycyh2ZXJzaW9uKSIKLSNwdXRzICRvcDEgIiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyIKLSNwdXRzICRvcDEgIiMgRm9yIG5vbi1jb2RnZW4gZmxvdywgdGhlIGZvbGxvd2luZyBtdXN0IGJlIHNldCAtIGl0IHNob3VsZCBwb2ludCB0byB0aGUgZm91bmRhdGlvbiAiIAotI3B1dHMgJG9wMSAiIyBmbG93IGluc3RhbGxhdGlvbiBkaXJlY3RvcnkiCi1wdXRzICRvcDEgIiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIKLSNwdXRzICRvcDEgIiNzZXQgdmFycyhzY3JpcHRfcm9vdCkgU0NSSVBUUyIKLSNwdXRzICRvcDEgIiIKLSNwdXRzICRvcDIgIiMgVGhlIHZhcnMoZmxvdykgdmFyaWFibGUgY2FuIGJlIHVzZWQgdG8gZGVmaW5lIHRoZSB0eXBlIG9mIGZsb3cgdG8gcnVuLiBJZiBub3Qgc2V0LCIgCi0jcHV0cyAkb3AyICIjIG1tbWMgd2lsbCBiZSB1c2VkLiAgU3VwcG9ydGVkIHZhbHVlcyBhcmU6IgotI3B1dHMgJG9wMiAiIyAgICAtIGRlZmF1bHQgKG1pbm1heCB0aW1pbmcpIgotI3B1dHMgJG9wMiAiIyAgICAtIHByX21tbWMgKG1pbm1heCB0aW1pbmcgcHJlLXJvdXRlLCBtbW1jIHRpbWluZyBwb3N0LXJvdXRlKSIKLSNwdXRzICRvcDIgIiMgICAgLSBtbW1jICAgIChtbW1jIHRpbWluZykiCi0jcHV0cyAkb3AyICIjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMiCi0jaWYge1tpbmZvIGV4aXN0cyA6OkNQRjo6Y3BmQ29tbWl0dGVkXX0gewotIyAgIHB1dHMgJG9wMiAic2V0IHZhcnMoZmxvdykgICAgIG1tbWMiCi0jfSBlbHNlIHsKLSMgICBwdXRzICRvcDIgInNldCB2YXJzKGZsb3cpICAgICBkZWZhdWx0IgotI30KLXB1dHMgJG9wMiAic2V0IHZhcnMocGx1Z19kaXIpIFBMVUcvSU5OT1ZVUyIKLXB1dHMgJG9wMiAic2V0IHZhcnMoZGJzX2RpcikgIERCUyIKLXB1dHMgJG9wMiAic2V0IHZhcnMobG9nX2RpcikgIExPRyIKLXB1dHMgJG9wMiAic2V0IHZhcnMocnB0X2RpcikgIFJQVCIKLXB1dHMgJG9wMiAiIyBZb3UgY2FuIHNldCBhIHJlcG9ydCBkaXJlY3RvcnkgcGVyIHN0ZXAgdXNpbmcgdmFycyg8c3RlcD4scnB0X2RpcikgLi4uIgotcHV0cyAkb3AyICIiCi0KLWlmIHtbaW5mbyBleGlzdHMgcmRhX0lucHV0KHVpX25ldGxpc3QpXX0gewotICAgc2V0IHZhcnMobmV0bGlzdCkgW2xpc3RdCi0gICBmb3JlYWNoICBmaWxlICRyZGFfSW5wdXQodWlfbmV0bGlzdCkgewotICAgICAgbGFwcGVuZCB2YXJzKG5ldGxpc3QpIFtmaWxlIG5vcm1hbGl6ZSAkZmlsZV0KLSAgIH0gIAotfSBlbHNlIHsKLSAgIGNhdGNoIHtzZXQgdmFycyhuZXRsaXN0KSBbZmlsZSBub3JtYWxpemUgW2xpbmRleCBbZ2V0X2xpbmVfbWF0Y2ggIlJlYWRpbmcgbmV0bGlzdCBmaWxlIiBbZ2V0TG9nRmlsZU5hbWVdXSAzXV19Ci19Ci1jYXRjaCB7c2V0IHZhcnMoZnBfZmlsZSkgW2ZpbGUgbm9ybWFsaXplIFtsaW5kZXggW2dldF9saW5lX21hdGNoICJSZWFkaW5nIGZsb29ycGxhbiIgW2dldExvZ0ZpbGVOYW1lXV0gNF1dfQotI2NhdGNoIHtzZXQgdmFycyhjdHNfc3BlYykgW3JlZ3N1YiAtYWxsICInIiAgW2xpbmRleCBbZ2V0X2xpbmVfbWF0Y2ggIlJlYWRpbmcgY2xvY2sgdHJlZSBzcGVjIGZpbGUiIFtnZXRMb2dGaWxlTmFtZV1dIDVdICIiXX0KLSNjYXRjaCB7c2V0IHZhcnMoY3RzX3NwZWMpIFtyZWdzdWIgLWFsbCAiXCIiICR2YXJzKGN0c19zcGVjKV0gIiJ9Ci1zZXQgdmFycyhjdHNfc3BlYykgIiIKLXNldCBzcGVjT3B0IFtja0dldENrU3BlY09wdGlvbl0KLSBmb3IgeyBzZXQgaSAwIH0geyAkaSA8IFtsbGVuZ3RoICRzcGVjT3B0XSB9IHsgaW5jciBpIH0gewotICAgaWYgeyBbc3RyaW5nIG1hdGNoIC1ub2Nhc2UgW2xpbmRleCAkc3BlY09wdCAkaV0gIi1maWxlIiBdIHx8ICBbc3RyaW5nIG1hdGNoIC1ub2Nhc2UgW2xpbmRleCAkc3BlY09wdCAkaV0gIi1zcGVjRmlsZSIgXSAgfSB7Ci0gICAgICBpbmNyIGkKLSAgICAgIHNldCBjbGtGaWxlIFtsaW5kZXggJHNwZWNPcHQgJGldCi0gICAgICBpZiB7IFtmaWxlIGV4aXN0cyAkY2xrRmlsZSBdIH0gewotICAgICAgICAgaWYgeyBbbHNlYXJjaCAtZXhhY3QgJHZhcnMoY3RzX3NwZWMpICRjbGtGaWxlXSA9PSAtMSB9IHsKLSAgICAgICAgICAgICAgbGFwcGVuZCB2YXJzKGN0c19zcGVjKSBbZmlsZSBub3JtYWxpemUgJGNsa0ZpbGVdCi0gICAgICAgICB9Ci0gICAgICB9Ci0gICB9Ci19Ci0KLWZvcmVhY2ggb3B0aW9uIFtnZXREZXNpZ25Nb2RlIC1xdWlldF0gewotICAgaWYge1tsaW5kZXggJG9wdGlvbiAwXSA9PSAicHJvY2VzcyJ9IHsKLSAgICAgIHNldCB2YXJzKHByb2Nlc3MpIFtsaW5kZXggJG9wdGlvbiAxXW5tCi0gICB9Ci19Ci1jYXRjaCB7c2V0IHZhcnMobWF4X3JvdXRlX2xheWVyKSBbZ2V0TWF4Um91dGVMYXllcl19Ci0KLXB1dHMgJG9wMSAiIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyIKLXB1dHMgJG9wMSAiIyBEZWZpbmUgZGVzaWduIGRhdGEgLi4uIgotcHV0cyAkb3AxICIjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIgotcHV0cyAkb3AxIFtmb3JtYXRfc3RyaW5nIHZhcnMoZGVzaWduKSBbZGJDZWxsTmFtZSBbZGJnVG9wQ2VsbF1dXQotCi1pZiB7W2xpbmRleCBbc3BsaXQgJHZhcnModmVyc2lvbikgIi4iXSAgMF0gPiAxMH0gewotICAgaWYge1tpbmZvIGV4aXN0cyBpbml0X3Zlcmlsb2ddICYmICgkaW5pdF92ZXJpbG9nICE9ICIiKX0geyAKLSAgICAgc2V0IHZhcnMobmV0bGlzdCkgJGluaXRfdmVyaWxvZwotICAgfQotICAgaWYge1tpbmZvIGV4aXN0cyBpbml0X29hX3JlZl9saWJdICYmICgkaW5pdF9vYV9yZWZfbGliICE9ICIiKX0geyAKLSAgICAgc2V0IHZhcnMob2FfcmVmX2xpYikgJGluaXRfb2FfcmVmX2xpYgotICAgfQotIyAgICAgIGNhdGNoIHtzZXQgcmVzdG9yZV9kZXNpZ24gW2dldF9saW5lX21hdGNoICJyZXN0b3JlRGVzaWduIiBbZ2V0TG9nRmlsZU5hbWVdfQotIyAgICAgIHNldCB2YXJzKG5ldGxpc3RfdHlwZSkgb2EKLSMgICAgICBzZXQgdmFycyhvYV9kZXNpZ25fbGliKSAgW2xpbmRleCAkcmVzdG9yZV9kZXNpZ24gMV0KLSMgICAgICBzZXQgdmFycyhvYV9kZXNpZ25fY2VsbCkgW2xpbmRleCAkcmVzdG9yZV9kZXNpZ24gMl0KLSMgICAgICBzZXQgdmFycyhvYV9kZXNpZ25fdmlldykgW2xpbmRleCAkcmVzdG9yZV9kZXNpZ24gM10KLSAgIGlmIHtbaW5mbyBleGlzdHMgaW5pdF9hYnN0cmFjdF92aWV3XSAmJiAoJGluaXRfYWJzdHJhY3RfdmlldyAhPSAiIil9IHsKLSAgICAgIHNldCB2YXJzKG9hX2Fic3RyYWN0X25hbWUpICRpbml0X2Fic3RyYWN0X3ZpZXcKLSAgIH0KLSAgIGlmIHtbaW5mbyBleGlzdHMgaW5pdF9vYV9kZXNpZ25fbGliXSAmJiAoJGluaXRfb2FfZGVzaWduX2xpYiAhPSAiIil9IHsKLSAgICAgIHNldCB2YXJzKG9hX2Rlc2lnbl9saWIpICRpbml0X29hX2Rlc2lnbl9saWIKLSAgIH0KLSAgIGlmIHtbaW5mbyBleGlzdHMgaW5pdF9vYV9kZXNpZ25fY2VsbF0gJiYgKCRpbml0X29hX2Rlc2lnbl9jZWxsICE9ICIiKX0gewotICAgICAgc2V0IHZhcnMob2FfZGVzaWduX2NlbGwpICRpbml0X29hX2Rlc2lnbl9jZWxsCi0gICB9Ci0gICBpZiB7W2luZm8gZXhpc3RzIGluaXRfb2FfZGVzaWduX3ZpZXddICYmICgkaW5pdF9vYV9kZXNpZ25fdmlldyAhPSAiIil9IHsKLSAgICAgIHNldCB2YXJzKG9hX2Rlc2lnbl92aWV3KSAkaW5pdF9vYV9kZXNpZ25fdmlldwotICAgfQotICAgaWYge1tpbmZvIGV4aXN0cyBpbml0X2Fic3RyYWN0X3ZpZXddICYmICgkaW5pdF9hYnN0cmFjdF92aWV3ICE9ICIiKX0gewotICAgICAgc2V0IHZhcnMob2FfYWJzdHJhY3RfbmFtZSkgJGluaXRfYWJzdHJhY3RfdmlldwotICAgfQotICAgaWYge1tpbmZvIGV4aXN0cyBpbml0X2xheW91dF92aWV3XSAmJiAoJGluaXRfbGF5b3V0X3ZpZXcgIT0gIiIpfSB7Ci0gICAgICBzZXQgdmFycyhvYV9sYXlvdXRfbmFtZSkgJGluaXRfbGF5b3V0X3ZpZXcKLSAgIH0KLSAgIHB1dHMgJG9wMSAiIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMiCi0gICBwdXRzICRvcDEgIiMgVmFyaWFibGVzIGZvciBPQSBkZXNpZ24gaW1wb3J0IGFuZCBleHBvcnQiCi0gICBwdXRzICRvcDEgIiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIgotICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKG9hX2Rlc2lnbl9saWIpXX0gewotICAgICAgcHV0cyAkb3AxICJzZXQgdmFycyhuZXRsaXN0X3R5cGUpICAgICBvYSIKLSAgICAgIHB1dHMgJG9wMSAic2V0IHZhcnMob2FfZGVzaWduX2xpYikgICAgJHZhcnMob2FfZGVzaWduX2xpYikiCi0gICB9IGVsc2UgewotICAgICAgcHV0cyAkb3AxICIjc2V0IHZhcnMob2FfZGVzaWduX2xpYikgICAgPE9BIGRlc2lnbiBsaWJyYXJ5PiIKLSAgIH0KLSAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhvYV9kZXNpZ25fY2VsbCldfSB7Ci0gICAgICBwdXRzICRvcDEgInNldCB2YXJzKG9hX2Rlc2lnbl9jZWxsKSAgICAkdmFycyhvYV9kZXNpZ25fY2VsbCkiCi0gICB9IGVsc2UgewotICAgICAgcHV0cyAkb3AxICIjc2V0IHZhcnMob2FfZGVzaWduX2NlbGwpICAgPE9BIGRlc2lnbiBjZWxsPiIKLSAgIH0KLSAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhvYV9kZXNpZ25fdmlldyldfSB7Ci0gICAgICBwdXRzICRvcDEgInNldCB2YXJzKG9hX2Rlc2lnbl92aWV3KSAgICAkdmFycyhvYV9kZXNpZ25fdmlldykiCi0gICB9IGVsc2UgewotICAgICAgcHV0cyAkb3AxICIjc2V0IHZhcnMob2FfZGVzaWduX3ZpZXcpICAgPE9BIGRlc2lnbiB2aWV3PiIKLSAgIH0KLSAgIHB1dHMgJG9wMSAiI3NldCB2YXJzKGRic19mb3JtYXQpICAgICAgIG9hIgotICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKG9hX3JlZl9saWIpXX0gewotICAgICAgcHV0cyAkb3AxICJzZXQgdmFycyhvYV9yZWZfbGliKSAgICAgICAgJHZhcnMob2FfcmVmX2xpYikiCi0gICB9IGVsc2UgewotICAgICAgcHV0cyAkb3AxICIjc2V0IHZhcnMob2FfcmVmX2xpYikgICAgICAgPE9BIHJlZmVyZW5jZSBsaWJyYXJ5PiIKLSAgIH0KLSAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhvYV9hYnN0cmFjdF9uYW1lKV19IHsKLSAgICAgIHB1dHMgJG9wMSAic2V0IHZhcnMob2FfYWJzdHJhY3RfbmFtZSkgICR2YXJzKG9hX2Fic3RyYWN0X25hbWUpIgotICAgfSBlbHNlIHsKLSAgICAgIHB1dHMgJG9wMSAiI3NldCB2YXJzKG9hX2Fic3RyYWN0X25hbWUpIDxPQSBhYnN0cmFjdCBuYW1lPiIKLSAgIH0KLSAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhvYV9sYXlvdXRfbmFtZSldfSB7Ci0gICAgICBwdXRzICRvcDEgInNldCB2YXJzKG9hX2xheW91dF9uYW1lKSAgICAkdmFycyhvYV9sYXlvdXRfbmFtZSkiCi0gICB9IGVsc2UgewotICAgICAgcHV0cyAkb3AxICIjc2V0IHZhcnMob2FfbGF5b3V0X25hbWUpICAgPE9BIGxheW91dCBuYW1lPiIKLSAgIH0KLSAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhuZXRsaXN0KV19IHsKLSMgICAgICBwdXRzICRvcDEgW2Zvcm1hdCAic2V0IHZhcnMobmV0bGlzdCklcyVzIiBbcGFkIHZhcnMobmV0bGlzdCldICR2YXJzKG5ldGxpc3QpXQotICAgICAgcHV0cyAkb3AxIFtmb3JtYXRfc3RyaW5nIHZhcnMobmV0bGlzdCkgXCIkdmFycyhuZXRsaXN0KVwiXQotICAgICAgcHV0cyAkb3AxIFtmb3JtYXRfc3RyaW5nIHZhcnMobmV0bGlzdF90eXBlKSB2ZXJpbG9nXQotICAgfQotICAgcHV0cyAkb3AxICIjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyIKLX0gZWxzZSB7Ci0gICBpZiB7W2luZm8gZXhpc3RzIHZhcnMobmV0bGlzdCldfSB7Ci0jICAgICAgcHV0cyAkb3AxIFtmb3JtYXQgInNldCB2YXJzKG5ldGxpc3QpJXMlcyIgW3BhZCB2YXJzKG5ldGxpc3QpXSAkdmFycyhuZXRsaXN0KV0KLSAgICAgIHB1dHMgJG9wMSBbZm9ybWF0X3N0cmluZyB2YXJzKG5ldGxpc3QpIFwiJHZhcnMobmV0bGlzdClcIl0KLSAgICAgIHB1dHMgJG9wMSBbZm9ybWF0X3N0cmluZyB2YXJzKG5ldGxpc3RfdHlwZSkgdmVyaWxvZ10KLSAgIH0KLSAgIHB1dHMgJG9wMSAiIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMiCi0gICBwdXRzICRvcDEgIiMgVmFyaWFibGVzIGZvciBPQSBkZXNpZ24gaW1wb3J0IGFuZCBleHBvcnQiCi0gICBwdXRzICRvcDEgIiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIgotICAgcHV0cyAkb3AxICIjc2V0IHZhcnMob2FfZGVzaWduX2xpYikgICAgPE9BIGRlc2lnbiBsaWJyYXJ5PiIKLSAgIHB1dHMgJG9wMSAiI3NldCB2YXJzKG9hX2Rlc2lnbl9jZWxsKSAgIDxPQSBkZXNpZ24gY2VsbD4iCi0gICBwdXRzICRvcDEgIiNzZXQgdmFycyhvYV9kZXNpZ25fdmlldykgICA8T0EgZGVzaWduIHZpZXc+IgotICAgcHV0cyAkb3AxICIjc2V0IHZhcnMob2FfcmVmX2xpYikgICAgICAgPE9BIHJlZmVyZW5jZSBsaWJyYXJ5PiIKLSAgIHB1dHMgJG9wMSAiI3NldCB2YXJzKG9hX2Fic3RyYWN0X25hbWUpIDxPQSBhYnN0cmFjdCBuYW1lPiIKLSAgIHB1dHMgJG9wMSAiI3NldCB2YXJzKG9hX2xheW91dF9uYW1lKSAgIDxPQSBsYXlvdXQgbmFtZT4iCi19Ci1pZiB7W2luZm8gZXhpc3RzIHZhcnMoZnBfZmlsZSldfSB7Ci0gICBwdXRzICRvcDEgW2Zvcm1hdF9zdHJpbmcgdmFycyhmcF9maWxlKSAkdmFycyhmcF9maWxlKV0KLX0gZWxzZSB7Ci0gICBwdXRzICRvcDEgW2Zvcm1hdF9zdHJpbmcgI3ZhcnMoZnBfZmlsZSkgPGZsb29ycGxhbl9maWxlPl0KLX0KLXB1dHMgJG9wMSBbZm9ybWF0X3N0cmluZyAjdmFycyhvYV9mcCkgPE9BX2Zsb29ycGxhbj5dCi1wdXRzICRvcDEgW2Zvcm1hdF9zdHJpbmcgI3ZhcnMoZGVmX2ZpbGVzKSA8ZGVmX2ZpbGVzPl0KLSNwdXRzICRvcDEgIiNzZXQgdmFycyhzY2FuX2RlZikgICAgICAgPHNjYW5fZGVmPiIKLXB1dHMgJG9wMSAiIyBOT1RFOiB2YXJzKGN0c19zcGVjKSBpcyBvbmx5IHJlcXVpcmVkIGZvciBjdHMgZmxvd3MuIgotcHV0cyAkb3AxICIjICAgICAgIEZvciBjY29wdCBmbG93cywgaXQgaXMgbm90IHJlcXVpcmVkIgotaWYge1tmaWxlIGV4aXN0cyAkdmFycyhjdHNfc3BlYyldfSB7Ci0gICBwdXRzICRvcDEgW2Zvcm1hdF9zdHJpbmcgdmFycyhjdHNfc3BlYykgXCIkdmFycyhjdHNfc3BlYylcIl0gCi19IGVsc2UgewotICAgcHV0cyAkb3AxIFtmb3JtYXRfc3RyaW5nICN2YXJzKGN0c19zcGVjKSA8Y3RzX3NwZWM+XQotfQotaWYge1tpbmZvIGV4aXN0cyB2YXJzKHByb2Nlc3MpXX0gewotICAgcHV0cyAkb3AxIFtmb3JtYXRfc3RyaW5nIHZhcnMocHJvY2VzcykgJHZhcnMocHJvY2VzcyldCi19IGVsc2UgewotICAgcHV0cyAkb3AxIFtmb3JtYXRfc3RyaW5nICN2YXJzKHByb2Nlc3MpIDxwcm9jZXNzPl0KLX0KLWlmIHtbaW5mbyBleGlzdHMgdmFycyhtYXhfcm91dGVfbGF5ZXIpXX0gewotICAgcHV0cyAkb3AxIFtmb3JtYXRfc3RyaW5nIHZhcnMobWF4X3JvdXRlX2xheWVyKSAkdmFycyhtYXhfcm91dGVfbGF5ZXIpXQotfSBlbHNlIHsKLSAgIHB1dHMgJG9wMSBbZm9ybWF0X3N0cmluZyAjdmFycyhtYXhfcm91dGVfbGF5ZXIpIDxtYXhfcm91dGVfbGF5ZXI+XQotfQotcHV0cyAkb3AxICIjIE5PVEU6IFdoZW4gZ2VuZXJhdGVfdHJhY2tzIGlzIHNldCwgdGhlIHRyYWNrcyBpbiB0aGUgREVGIGFyZSBpZ25vcmVkOyBldmVuIHRoZSBwaXRjaCIKLXB1dHMgJG9wMSAiIyAgICAgICBUbyBnZW5lcmF0ZSBuZXcgdHJhY2tzIGJ1dCBwcmVzZXJ2ZSB0aGUgcGl0Y2gsIHVzZSB2YXJzKGhvbm9yX3BpdGNoKSB0cnVlIgotcHV0cyAkb3AxIFtmb3JtYXRfc3RyaW5nICN2YXJzKGdlbmVyYXRlX3RyYWNrcykgIjx0cnVlIHwgZmFsc2U+Il0KLXB1dHMgJG9wMSBbZm9ybWF0X3N0cmluZyAjdmFycyhob25vcl9waXRjaCkgIjx0cnVlIHwgZmFsc2U+Il0KLWlmIHtbaW5mbyBleGlzdHMgcmRhX0lucHV0KHVpX3B3cm5ldCldICYmICgkcmRhX0lucHV0KHVpX3B3cm5ldCkgIT0gIiIpfSB7Ci0gICBwdXRzICRvcDEgInNldCB2YXJzKHBvd2VyX25ldHMpICAgXCIkcmRhX0lucHV0KHVpX3B3cm5ldClcIiIKLX0gZWxzZSB7Ci0gICBwdXRzICRvcDEgIiNzZXQgdmFycyhwb3dlcl9uZXRzKSAgICAgICAgICAgICA8bGlzdCBvZiBwb3dlciBuZXRzPiIKLX0KLWlmIHtbaW5mbyBleGlzdHMgcmRhX0lucHV0KHVpX2duZG5ldCldICYmICgkcmRhX0lucHV0KHVpX2duZG5ldCkgIT0gIiIpfSB7Ci0gICBwdXRzICRvcDEgInNldCB2YXJzKGdyb3VuZF9uZXRzKSAgXCIkcmRhX0lucHV0KHVpX2duZG5ldClcIiIKLX0gZWxzZSB7Ci0gICBwdXRzICRvcDEgIiNzZXQgdmFycyhncm91bmRfbmV0cykgICAgICAgICAgICA8bGlzdCBvZiBncm91bmQgbmV0cz4iCi19Ci1wdXRzICRvcDEgIiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyIKLXB1dHMgJG9wMSAiIyBGb3IgaGllcmFyY2hpY2FsIGRlc2lnbnMsIGRlZmluZSB2YXJzKHBhcnRpdGlvbl9saXN0KSB3aGljaCBzaG91bGQgYmUgYSBsaXN0ICIKLXB1dHMgJG9wMSAiIyBvZiBhbGwgZGVmaW5lZCBwYXJ0aXRpb25zIChETyBOT1QgSU5DTFVERSBUSEUgVE9QIFBBUlRJVElPTikuIgotcHV0cyAkb3AxICIjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iCi1wdXRzICRvcDEgIiMgVG8gYXNzaXN0IHRoZSBidWRnZXRpbmcgcHJvY2VzcywgYWxzbyBkZWZpbmUgdGhlIGZvbGxvd2luZyBmb3IgZWFjaCBwYXJ0aXRpb24iCi1wdXRzICRvcDEgIiMgLSBzZXQgdmFycyg8cGFydGl0aW9uPixjdHNfc3BlYykgPGZpbGU+IgotcHV0cyAkb3AxICIjIC0gc2V0IHZhcnMoPHBhcnRpdGlvbj4sbGF0ZW5jeV9zZGMpIDxmaWxlPiIKLXB1dHMgJG9wMSAiIyIKLXB1dHMgJG9wMSAiIyBUaGVzZSBmaWxlcyBzaG91bGQgY29udGFpbiB0aGUgZXhwZWN0ZWQgY2xvY2sgbGF0ZW5jeSBmb3IgdGhlIGNsb2NrIHRyZWUocykiCi1wdXRzICRvcDEgIiMgRm9yIGV4YW1wbGUsIGlmIHBhcnRpdGlvbiBBIGhhcyBhbiBleHBlY3RlZCBjbG9jayBsYXRlbmN5IG9mIDUwMHBzIG91dCBvZiBhIHRvdGFsIGNsb2NrIgotcHV0cyAkb3AxICIjIGxhdGVuY3kgb2YgMW5zLCB0aGUgdG9wIGxldmVsIGNvbnN0cmFpbnRzIHdvdWxkIGhhdmUgJ3NldF9jbG9ja19sYXRlbmN5IDEuMCA8Y2xvY2sgcGluPiciCi1wdXRzICRvcDEgIiMgYW5kIEEgd291bGQgaGF2ZSBhIGxhdGVuY3kgc2RjIGZpbGUgY29udGFpbmluZyAnc2V0X2Nsb2NrX2xhdGVuY3kgMC41IDxwdG4gY2xvY2sgcGluPiciCi1wdXRzICRvcDEgIiMgTGlrZXdpc2UsIHRoZSB0b3AgbGV2ZWwgQ1RTIHNwZWMgd291bGQgY29udGFpbiAnTWF4RGVsYXkgMW5zJyBhbmQgdGhlIHZhcnMoQSxjdHNfc3BlYykiCi1wdXRzICRvcDEgIiMgd291bGQgY29udGFpbiAnTWFjcm9Nb2RlbCBBLzxwdG4gY2xvY2sgcGluPiA1MDBwcyA1MDBwcyA1MDBwcyA1MDBwcyAwZkYiCi1wdXRzICRvcDEgIiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIKLXB1dHMgJG9wMSAiIyBEdXJpbmcgYXNzZW1ibHksIHRoZSBmb3VuZGF0aW9uIGZsb3cgZGVmYXVsdHMgdG8gYXNzZW1ibHkgdGhlICdzaWdub2ZmJyBkYXRhYmFzZXMiCi1wdXRzICRvcDEgIiMgZnJvbSBlYWNoIHBhcnRpdGlvbiBzdWItZGlyZWN0b3J5LiAgVG8gc3BlY2lmeSBhIGRpZmZlcmVudCBkYXRhYmFzZSB0byB1c2UgZm9yIGFueSIKLXB1dHMgJG9wMSAiIyBwYXJ0aXRpb24gKGluY2x1ZGluZyB0aGUgdG9wKSwgc3BlY2lmeSB0aGUgZm9sbG93aW5nOiIKLXB1dHMgJG9wMSAiIyAgICAtIHZhcnMoPHB0bj4sYXNzZW1ibGVfZGJzKSAgPHBhdGggdG8gSU5OT1ZVUyBkYXRhYmFzZSBkaXJlY3Rvcnk+IgotcHV0cyAkb3AxICIjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iCi1wdXRzICRvcDEgIiMgSWYgdmFycyh1c2VfZmxleG1vZGVscykgaXMgc2V0IHRvIHRydWUsIEZsZXhtb2RlbHMgd2lsbCBiZSB1c2VkLiBTb21lIGFkZGl0aW9uYWwiCi1wdXRzICRvcDEgIiMgb3B0aW9ucyBmb3IgZmxleG1vZGVsIHVzYWdlIGFyZToiCi1wdXRzICRvcDEgIiMgICAgc2V0IHZhcnModXNlX3Byb3RvX25ldF9kZWxheV9tb2RlbCkgZmFsc2UiCi1wdXRzICRvcDEgIiMgICAgc2V0IHZhcnMoZmxleG1vZGVsX2FzX3B0bikgdHJ1ZSIKLXB1dHMgJG9wMSAiIyAgICBzZXQgdmFycyhmbGV4bW9kZWxfYXJ0X2Jhc2VkKSB0cnVlIgotcHV0cyAkb3AxICIjICAgIHNldCB2YXJzKGNyZWF0ZV9mbGV4ZmlsbGVyX2Jsb2NrYWdlKSB0cnVlIgotcHV0cyAkb3AxICIjICAgIHNldCB2YXJzKGVuYWJsZV9ucmdyKSB0cnVlIgotcHV0cyAkb3AxICIjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iCi1wdXRzICRvcDEgIiMgSWYgdmFycyhpbnNlcnRfZmVlZHRocm91Z2gpIGlzIHNldCB0byB0cnVlLCBmZWVkdGhyb3VnaCBpbnNlcnRpb24gd2lsbCBiZSBjYWxsZWQiCi1wdXRzICRvcDEgIiMgIGJlZm9yZSBwYXJ0aXRpb25pbmcuIFNvbWUgYWRkaXRpb25hbCBvcHRpb25zIGZvciBwYXJ0aXRpb25pbmcgYXJlOiIKLXB1dHMgJG9wMSAiIyAgICBzZXQgdmFycyhhYnV0dGVkX2Rlc2lnbikgdHJ1ZSIKLXB1dHMgJG9wMSAiIyAgICBzZXQgdmFycyhwbGFjZW1lbnRfYmFzZWRfcHRuKSB0cnVlIgotcHV0cyAkb3AxICIjICAgIHNldCB2YXJzKGJ1ZGdldF9tb2RlKSB7IHRyaWFsX2lwbyBnaWdhX29wdCBwcm90b19uZXRfZGVsYXlfbW9kZWwgfSIKLXB1dHMgJG9wMSAiIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIgotcHV0cyAkb3AxICIjIEZsZXhpbG0gY3JlYXRpb24gY2FuIGJlIGVuYWJsZWQgZm9yIHRoZSBwYXJ0aXRpb25zLCB1c2luZyB2YXJzKGVuYWJsZV9mbGV4aWxtKSB0cnVlIgotcHV0cyAkb3AxICIjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iCi1wdXRzICRvcDEgIiMgRmluYWxseSwgZWFjaCBwYXJ0aXRpb24gY2FuIGhhdmUgaXRzIG93biBpbm5vdnVzX2NvbmZpZy50Y2wgKElOQ0xVRElORyBUSEUgVE9QIFBBUlRJVElPTikuIgotcHV0cyAkb3AxICIjIFRvIGVuYWJsZSB0aGlzLCBkZWZpbmUgdmFycyg8cGFydGl0aW9uPiw8aW5ub3Z1c19jb25maWdfdGNsPiIKLXB1dHMgJG9wMSAiIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIgotc2V0IHZhcnMocGFydGl0aW9uX2xpc3QpICIiCi1kYkZvckVhY2hDZWxsUHRuIFtkYkdldCB0b3BdIHB0biB7Ci0gICBsYXBwZW5kIHZhcnMocGFydGl0aW9uX2xpc3QpIFtkYlB0bk5hbWUgJHB0bl0KLX0KLWlmIHskdmFycyhwYXJ0aXRpb25fbGlzdCkgIT0gIiJ9IHsKLSAgIHB1dHMgJG9wMSAic2V0IHZhcnMocGFydGl0aW9uX2xpc3QpICAgICAgICBcW2xpc3QgJHZhcnMocGFydGl0aW9uX2xpc3QpXF0iCi0gICBmb3JlYWNoIHBhcnQgJHZhcnMocGFydGl0aW9uX2xpc3QpIHsKLSAgICAgIHB1dHMgJG9wMSAiI3NldCB2YXJzKCRwYXJ0LGN0c19zcGVjKSAgICAgICA8cGFydGl0aW9uIGN0cyBzcGVjIGZpbGU+IgotICAgICAgcHV0cyAkb3AxICIjc2V0IHZhcnMoJHBhcnQsbGF0ZW5jeV9zZGMpICAgIDxwYXJ0aXRpb24gbGF0ZW5jeSBzZGMgZmlsZT4iCi0gICAgICBwdXRzICRvcDEgIiNzZXQgdmFycygkcGFydCxhc3NlbWJsZV9kYnMpICAgPGRhdGFiYXNlIGRpcmVjdG9yeT4iCi0gICAgICBwdXRzICRvcDEgIiNzZXQgdmFycygkcGFydCxpbG1fZGlyKSAgICAgICAgPHBhdGggdG8gSUxNIGRpcmV0b3J5PiIKLSAgICAgIHB1dHMgJG9wMSAiI3NldCB2YXJzKCRwYXJ0LGxlZl9maWxlKSAgICAgICA8cGF0aCB0byBMRUYgZmlsZT4iCi0gICAgICBwdXRzICRvcDEgIiNzZXQgdmFycygkcGFydCxpbm5vdnVzX2NvbmZpZ190Y2wpIDxwYXJ0aXRpb24gc3BlY2lmaWMgaW5ub3Z1c19jb25maWcudGNsPiIKLSAgIH0KLX0gZWxzZSB7Ci0gICBwdXRzICRvcDEgIiNzZXQgdmFycyhwYXJ0aXRpb25fbGlzdCkgICAgICAgICAgICAgPGxpc3Qgb2YgcGFydGl0aW9ucz4iCi0gICBwdXRzICRvcDEgIiNzZXQgdmFycyg8cGFydGl0aW9uPixjdHNfc3BlYykgICAgICAgPHBhcnRpdGlvbiBjdHMgc3BlYyBmaWxlPiIKLSAgIHB1dHMgJG9wMSAiI3NldCB2YXJzKDxwYXJ0aXRpb24+LGxhdGVuY3lfc2RjKSAgICA8cGFydGl0aW9uIGxhdGVuY3kgc2RjIGZpbGU+IgotICAgcHV0cyAkb3AxICIjc2V0IHZhcnMoPHBhcnRpdGlvbj4sYXNzZW1ibGVfZGJzKSAgIDxkYXRhYmFzZSBkaXJlY3Rvcnk+IgotICAgcHV0cyAkb3AxICIjc2V0IHZhcnMoPHBhcnRpdGlvbj4saWxtX2RpcikgICAgICAgIDxwYXRoIHRvIElMTSBkaXJldG9yeT4iCi0gICBwdXRzICRvcDEgIiNzZXQgdmFycyg8cGFydGl0aW9uPixsZWZfZmlsZSkgICAgICAgPHBhdGggdG8gTEVGIGZpbGU+IgotICAgcHV0cyAkb3AxICIjc2V0IHZhcnMoPHBhcnRpdGlvbj4saW5ub3Z1c19jb25maWdfdGNsKSA8cGFydGl0aW9uIHNwZWNpZmljIGlubm92dXNfY29uZmlnLnRjbD4iCi19Ci0KLWlmIHsoIVtjYXRjaCB7ZGJHZXQgdG9wLmlzUHJvdG9Nb2RlbENvbW1pdHRlZH0gdmFsXSkgJiYgJHZhbH0gewotICAgcHV0cyAkb3AxICJzZXQgdmFycyh1c2VfZmxleG1vZGVscykgdHJ1ZSIKLX0gZWxzZSB7Ci0gICBwdXRzICRvcDEgIiNzZXQgdmFycyh1c2VfZmxleG1vZGVscykgPGJvb2xlYW4+IgotfQotCi1wdXRzICRvcDEgIiIKLQotcHV0cyAkb3AxICIjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIgotcHV0cyAkb3AxICIjIE9wdGlvbmFsbHkgZGVmaW5lIHVzZXIgSUxNcyB0byBiZSBzcGVjaWZpZWQgZHVyaW5nIHRoZSBmbG93LiBUaGVzZSB3aWxsIGJlIHNwZWNpZmllZCAiCi1wdXRzICRvcDEgIiMgZHVyaW5nIHRoZSBmbGF0IGluaXQgc3RlcCBhbmQgdGhlIGhpZXJhcmNoaWNhbCBwYXJ0aXRpb25pbmcgc3RlcC4gVGhlIElMTXMgc2hvdWxkIgotcHV0cyAkb3AxICIjIG5vdCBiZSBoaWVyYXJoaWNhbCBwYXJ0aXRpb25zICh0aGV5IGFyZSBoYW5kbGVkIGF1dG9tYXRpY2FsbHkuICBTZWUgYmVsb3cgZm9yICIKLXB1dHMgJG9wMSAiIyBoYW5kbGluZyBwYXJ0aXRpb24gSUxNcyBkdXJpbmcgcG9zdCBhc3NlbWJseSBjbG9zdXJlLiIKLXB1dHMgJG9wMSAiIyAtIHZhcnMoaWxtX2xpc3QpICA8bGlzdCBvZiBpbG0gbW9kdWxlcz4iCi1wdXRzICRvcDEgIiMgLSB2YXJzKDxpbG0+LGlsbV9kaXIpICA8cGF0aCB0byBJTE0gZGlyZXRvcnk+IgotcHV0cyAkb3AxICIjIC0gdmFycyg8aWxtPixsZWZfZmlsZSkgPHBhdGggdG8gTEVGIGZpbGU+IgotcHV0cyAkb3AxICIjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIgotcHV0cyAkb3AxICIjIHNldCB2YXJzKGlsbV9saXN0KSBcW2xpc3RcXSIKLWlmIHtbaW5mbyBleGlzdHMgcmRhX0lucHV0KHVpX2lsbWRpcildICYmICgkcmRhX0lucHV0KHVpX2lsbWRpcikgIT0gIiIpfSB7Ci0gICBzZXQgaWxtX2xpc3QgW2xpc3RdCi0gICBmb3Ige3NldCBpIDB9IHskaSA8IFtsbGVuZ3RoICRyZGFfSW5wdXQodWlfaWxtZGlyKV19IHtpbmNyIGl9IHsKLSAgICAgIHNldCBpbG0gW2xpbmRleCAkcmRhX0lucHV0KHVpX2lsbWRpcikgJGldCi0gICAgICBpbmNyIGkKLSAgICAgIHNldCBkaXIgW2xpbmRleCAkcmRhX0lucHV0KHVpX2lsbWRpcikgJGldCi0gICAgICBsYXBwZW5kIGlsbV9saXN0ICRpbG0KLSAgICAgIHNldCB2YXJzKCRpbG0saWxtX2RpcikgJGRpcgotICAgfQotICAgaWYgeyRpbG1fbGlzdCAhPSAiIn0gewotICAgICAgcHV0cyAkb3AxICJzZXQgdmFycyhpbG1fbGlzdCkgXFtsaXN0ICRpbG1fbGlzdFxdIgotICAgICAgZm9yZWFjaCBpbG0gJGlsbV9saXN0IHsKLSAgICAgICAgIHB1dHMgJG9wMSAic2V0IHZhcnMoJGlsbSxpbG1fZGlyKSAkdmFycygkaWxtLGlsbV9kaXIpIgotICAgICAgfQotICAgfQotfQotcHV0cyAkb3AxICIjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIgotcHV0cyAkb3AxICIjIERlZmluZSBsZWYgZmlsZXMgLi4uIgotcHV0cyAkb3AxICIjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIgotcHV0cyAkb3AxICJzZXQgdmFycyhsZWZfZmlsZXMpIFwiXFwiCi1mb3JlYWNoIGZpbGUgJHJkYV9JbnB1dCh1aV9sZWZmaWxlKSB7Ci0gICBwdXRzICRvcDEgIiAgIFtmaWxlIG5vcm1hbGl6ZSAkZmlsZV0gXFwiCi19Ci1wdXRzICRvcDEgIlwiIgotCi1wdXRzICRvcDEgIiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMiCi1wdXRzICRvcDEgIiMgRGVmaW5lIGxpYnJhcnkgc2V0cyAuLi4iCi1wdXRzICRvcDEgIiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iCi1wdXRzICRvcDEgIiMgc2V0IHZhcnMobGlicmFyeV9zZXRzKSA8bGlzdCBvZiBsaWJyYXJ5IHNldHM+IgotcHV0cyAkb3AxICIjIHNldCB2YXJzKDxzZXQ+LHRpbWluZykgPGxpc3Qgb2YgbGliIGZpbGVzPiIKLXB1dHMgJG9wMSAiIyBzZXQgdmFycyg8c2V0PixzaSkgPGxpc3Qgb2YgY2RiL3VkbiBmaWxlcz4iCi1wdXRzICRvcDEgIiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMiCi1zZXQgbGlicmFyeV9zZXRzIFtsaXN0XQotCi1mb3JlYWNoIGxpYnJhcnlfc2V0IFthbGxfbGlicmFyeV9zZXRzXSB7Ci0gICBpZiB7W2xsZW5ndGggW2FsbF9saWJyYXJ5X3NldHNdXSA+IDJ9IHsKLSMgICAgICBpZiB7W3JlZ2V4cCAiXmRlZmF1bHQiICRsaWJyYXJ5X3NldF0gPT0gMH0gewotICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyA6OkNQRjo6Y3BmQ29tbWl0dGVkXX0gewotICAgICAgICAgICAgaWYgeyhbcmVnZXhwICJeZG9tYWluXyIgJGxpYnJhcnlfc2V0XSA9PSAwKX0gewotICAgICAgICAgICAgICAgbGFwcGVuZCBsaWJyYXJ5X3NldHMgJGxpYnJhcnlfc2V0Ci0gICAgICAgICAgICB9Ci0gICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgbGFwcGVuZCBsaWJyYXJ5X3NldHMgJGxpYnJhcnlfc2V0Ci0gICAgICAgICB9Ci0jICAgICAgfQotICAgfSBlbHNlIHsKLSAgICAgIGxhcHBlbmQgbGlicmFyeV9zZXRzICRsaWJyYXJ5X3NldAotICAgfQotfQotCi1pZiB7JGxpYnJhcnlfc2V0cyAhPSAiIn0gewotICAgcHV0cyAkb3AxICJzZXQgdmFycyhsaWJyYXJ5X3NldHMpIFwiJGxpYnJhcnlfc2V0c1wiIgotfQotCi1mb3JlYWNoIGxpYnJhcnlfc2V0ICRsaWJyYXJ5X3NldHMgewotICAgZm9yZWFjaCBvcHRpb24gInRpbWluZyBzaSBhb2N2IiB7Ci0gICAgICBpZiB7W2dldF9saWJyYXJ5X3NldCAkbGlicmFyeV9zZXQgLSRvcHRpb25dICE9ICIifSB7Ci0gICAgICAgICBzZXQgZmlsZV9saXN0IFtnZXRfbGlicmFyeV9zZXQgJGxpYnJhcnlfc2V0IC0kb3B0aW9uXQotICAgICAgICAgcHV0cyAkb3AxICJzZXQgdmFycygkbGlicmFyeV9zZXQsJG9wdGlvbikgXCJcXCIKLSAgICAgICAgIGZvcmVhY2ggZmlsZSAkZmlsZV9saXN0IHsKLSAgICAgICAgICAgIHB1dHMgJG9wMSAiICAgW2ZpbGUgbm9ybWFsaXplICRmaWxlXSBcXCIgCi0gICAgICAgICB9IAotICAgICAgICAgcHV0cyAkb3AxICJcIiIgCi0gICAgICB9Ci0gICB9Ci19Ci0KLXB1dHMgJG9wMSAiIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyIKLXB1dHMgJG9wMSAiIyBEZWZpbmUgcmMgY29ybmVycyAuLi4iCi1wdXRzICRvcDEgIiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iCi1wdXRzICRvcDEgIiMgc2V0IHZhcnMocmNfY29ybmVycykgPGxpc3Qgb2YgcmMgY29ybmVycz4iCi1wdXRzICRvcDEgIiMgc2V0IHZhcnMoPHJjX2Nvcm5lcj4sVCkgPHRlbXBlcmF0dXJlPiIKLXB1dHMgJG9wMSAiIyBzZXQgdmFycyg8cmNfY29ybmVyPixjYXBfdGFibGUpIDxjYXAgdGFibGUgZm9yIGNvcm5lcj4iCi1wdXRzICRvcDEgIiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMiCi1zZXQgcmNfY29ybmVycyBbbGlzdF0KLWZvcmVhY2ggcmNfY29ybmVyIFthbGxfcmNfY29ybmVyc10gewotIyAgIGlmIHtbbGxlbmd0aCBbYWxsX3JjX2Nvcm5lcnNdXSA+IDF9IHsKLSMgICAgICBpZiB7W3JlZ2V4cCAiXmRlZmF1bHQiICRyY19jb3JuZXIgXSA9PSAwfSB7Ci0jICAgICAgICAgbGFwcGVuZCByY19jb3JuZXJzICRyY19jb3JuZXIKLSMgICAgICB9Ci0jICAgfSBlbHNlIHsKLSAgICAgIGxhcHBlbmQgcmNfY29ybmVycyAkcmNfY29ybmVyCi0jICAgfQotfQotaWYgeyRyY19jb3JuZXJzICE9ICIifSB7Ci0gICBwdXRzICRvcDEgInNldCB2YXJzKHJjX2Nvcm5lcnMpIFwiJHJjX2Nvcm5lcnNcIiIKLX0KLWZvcmVhY2ggcmNfY29ybmVyICRyY19jb3JuZXJzIHsKLSAgIGZvcmVhY2ggb3B0aW9uICJUIGNhcF90YWJsZSIgewotICAgICAgaWYge1tnZXRfcmNfY29ybmVyICRyY19jb3JuZXIgLSRvcHRpb25dICE9ICIifSB7Ci0gICAgICAgICBpZiB7JG9wdGlvbiA9PSAiY2FwX3RhYmxlIn0gewotICAgICAgICAgICAgcHV0cyAkb3AxICJzZXQgdmFycygkcmNfY29ybmVyLCRvcHRpb24pIFtmaWxlIG5vcm1hbGl6ZSBbZ2V0X3JjX2Nvcm5lciAkcmNfY29ybmVyIC0kb3B0aW9uXV0iCi0gICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgcHV0cyAkb3AxICJzZXQgdmFycygkcmNfY29ybmVyLCRvcHRpb24pIFtnZXRfcmNfY29ybmVyICRyY19jb3JuZXIgLSRvcHRpb25dIiAKLSAgICAgICAgIH0KLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgICBpZiB7KCRvcHRpb24gPT0gIlQiKSAmJiAoW2dldF9yY19jb3JuZXIgJHJjX2Nvcm5lciAtJG9wdGlvbl0gPT0gIiIpfSB7Ci0gICAgICAgICAgICBwdXRzICRvcDEgIiNzZXQgdmFycygkcmNfY29ybmVyLCRvcHRpb24pIDI1IDsgIyBFRElUIEZPUiBDT1JSRUNUIFQgVkFMVUUiCi0gICAgICAgICB9Ci0gICAgICAgICBpZiB7KCRvcHRpb24gPT0gImNhcF90YWJsZSIpICYmIChbZ2V0X3JjX2Nvcm5lciAkcmNfY29ybmVyIC0kb3B0aW9uXSA9PSAiIil9IHsKLSAgICAgICAgICAgIHB1dHMgJG9wMSAiI3NldCB2YXJzKCRyY19jb3JuZXIsJG9wdGlvbikgOyAjIEVESVQgRk9SIENPUlJFQ1QgQ0FQIFRBQkxFIERFRklOSVRJT04iCi0gICAgICAgICB9Ci0gICAgICB9Ci0gICB9Ci0gICBwdXRzICRvcDEgIiNzZXQgdmFycygkcmNfY29ybmVyLGF0Zl9maWxlKSIKLX0KLQotcHV0cyAkb3AxICIjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIgotcHV0cyAkb3AxICIjIE9wdGlvbmFsbHkgZGVmaW5lIFFSQyB0ZWNobm9sb2d5IGluZm9ybWF0aW9uIgotcHV0cyAkb3AxICIjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIgotcHV0cyAkb3AxICIjIHNldCB2YXJzKDxyY19jb3JuZXI+LHF4X3RlY2hfZmlsZSkgPHF4X3RlY2hfZmlsZSBmb3IgY29ybmVyPiIKLXB1dHMgJG9wMSAiIyBzZXQgdmFycyg8cmNfY29ybmVyPixxeF9saWJfZmlsZSkgIDxxeF9saWJfZmlsZSBmb3IgY29ybmVyPiIKLXB1dHMgJG9wMSAiIyBzZXQgdmFycyg8cmNfY29ybmVyPixxeF9jb25mX2ZpbGUpIDxxeF9jb25mX2ZpbGUgZm9yIGNvcm5lcj4iCi1wdXRzICRvcDEgIiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMiCi1mb3JlYWNoIHJjX2Nvcm5lciAkcmNfY29ybmVycyB7Ci0gICBmb3JlYWNoIG9wdGlvbiAicXhfdGVjaF9maWxlIHF4X2xpYl9maWxlIHF4X2NvbmZfZmlsZSIgewotICAgICAgaWYge1tnZXRfcmNfY29ybmVyICRyY19jb3JuZXIgLSRvcHRpb25dICE9ICIifSB7Ci0gICAgICAgICBwdXRzICRvcDEgInNldCB2YXJzKCRyY19jb3JuZXIsJG9wdGlvbikgW2ZpbGUgbm9ybWFsaXplIFtnZXRfcmNfY29ybmVyICRyY19jb3JuZXIgLSRvcHRpb25dXSIgCi0gICAgICB9Ci0gICB9Ci19Ci0KLXB1dHMgJG9wMSAiIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyIKLXB1dHMgJG9wMSAiIyBTY2FsZSBmYWN0b3JzIGFyZSBhbHNvIG9wdGlvbmFsIGJ1dCBhcmUgc3Ryb25nbHkgZW5jb3VyYWdlZCBmb3IgcHJlX3JvdXRlIG9wdGltaXphdGlvbiAiCi1wdXRzICRvcDEgIiMgaW4gb3JkZXIgdG8gb2J0YWluIHRoZSBiZXN0IGZsb3cgY29udmVyZ2VuY2UgYW5kIFFvUi4gIFNjYWxpbmcgZmFjdG9ycyBhcmUgYXBwbGllZCBwZXIiCi1wdXRzICRvcDEgIiMgcmMgY29ybmVyIGJ5IHNldHRpbmcgdGhlIGluZGl2aWR1YWwgdmFsdWVzIE9SIHZpYSBhIHNjYWxlX3RjbCBmaWxlIHdoaWNoIG11c3QgY29udGFpbiIgCi1wdXRzICRvcDEgIiMgc3ludGFjdGljYWxseSBjb3JyZWN0IHVwZGF0ZV9yY19jb3JuZXIgY29tbWFuZHMgZm9yIGEgZ2l2ZW4gcmNfY29ybmVyIgotcHV0cyAkb3AxICIjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIgotcHV0cyAkb3AxICIjIHNldCB2YXJzKDxyY19jb3JuZXI+LHNjYWxlX3RjbCkgICAgICAgICAgICAgICAgIDxmaWxlPiIKLXB1dHMgJG9wMSAiIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIKLXB1dHMgJG9wMSAiIyBzZXQgdmFycyg8cmNfY29ybmVyPixwcmVfcm91dGVfcmVzX2ZhY3RvcikgICAgICA8cHJlLXJvdXRlIHJlc2lzdGFuY2Ugc2NhbGUgZmFjdG9yPiIKLXB1dHMgJG9wMSAiIyBzZXQgdmFycyg8cmNfY29ybmVyPixwcmVfcm91dGVfY2xrX3Jlc19mYWN0b3IpICA8cHJlLXJvdXRlIGNsb2NrIHJlc2lzdGFuY2Ugc2NhbGUgZmFjdG9yPiIKLXB1dHMgJG9wMSAiIyBzZXQgdmFycyg8cmNfY29ybmVyPixwb3N0X3JvdXRlX3Jlc19mYWN0b3IpICAgICA8cG9zdC1yb3V0ZSByZXNpc3RhbmNlIHNjYWxlIGZhY3RvciAodHJpcGxldHMpPiIKLXB1dHMgJG9wMSAiIyBzZXQgdmFycyg8cmNfY29ybmVyPixwb3N0X3JvdXRlX2Nsa19yZXNfZmFjdG9yKSA8cG9zdC1yb3V0ZSBjbG9jayByZXNpc3RhbmNlIHNjYWxlIGZhY3Rvcj4iCi1wdXRzICRvcDEgIiMgc2V0IHZhcnMoPHJjX2Nvcm5lcj4scHJlX3JvdXRlX2NhcF9mYWN0b3IpICAgICAgPHByZS1yb3V0ZSBjYXBhY2l0YW5jZSBzY2FsZSBmYWN0b3I+IgotcHV0cyAkb3AxICIjIHNldCB2YXJzKDxyY19jb3JuZXI+LHByZV9yb3V0ZV9jbGtfY2FwX2ZhY3RvcikgIDxwcmUtcm91dGUgY2xvY2sgY2FwYWNpdGFuY2Ugc2NhbGUgZmFjdG9yPiIKLXB1dHMgJG9wMSAiIyBzZXQgdmFycyg8cmNfY29ybmVyPixwb3N0X3JvdXRlX2NhcF9mYWN0b3IpICAgICA8cG9zdC1yb3V0ZSBjYXBhY2l0YW5jZSBzY2FsZSBmYWN0b3IgKHRyaXBsZXRzKT4iCi1wdXRzICRvcDEgIiMgc2V0IHZhcnMoPHJjX2Nvcm5lcj4scG9zdF9yb3V0ZV9jbGtfY2FwX2ZhY3RvcikgPHBvc3Qtcm91dGUgY2xvY2sgY2FwYWNpdGFuY2Ugc2NhbGUgZmFjdG9yPiIKLXB1dHMgJG9wMSAiIyBzZXQgdmFycyg8cmNfY29ybmVyPixwb3N0X3JvdXRlX3hjYXBfZmFjdG9yKSAgICA8cG9zdC1yb3V0ZSBjb3VwbGluZyBjYXBhY2l0YW5jZSBzY2FsZSBmYWN0b3IgKHRyaXBsZXRzKT4iCi1wdXRzICRvcDEgIiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMiCi0KLWZvcmVhY2ggcmNfY29ybmVyICRyY19jb3JuZXJzIHsKLSAgIGlmIHtbZ2V0X3JjX2Nvcm5lciAkcmNfY29ybmVyIC1wcmVSb3V0ZV9yZXNdICE9ICIifSB7Ci0gICAgICBwdXRzICRvcDEgInNldCB2YXJzKCRyY19jb3JuZXIscHJlX3JvdXRlX3Jlc19mYWN0b3IpIFx0XHRbZm9ybWF0ICU0LjJmIFtleHByIFtnZXRfcmNfY29ybmVyICRyY19jb3JuZXIgLXByZVJvdXRlX3Jlc10qMS4wXV0iIAotICAgfQotICAgaWYge1tnZXRfcmNfY29ybmVyICRyY19jb3JuZXIgLXByZVJvdXRlX2Nsa3Jlc10gIT0gIiJ9IHsKLSAgICAgIHB1dHMgJG9wMSAic2V0IHZhcnMoJHJjX2Nvcm5lcixwcmVfcm91dGVfY2xrX3Jlc19mYWN0b3IpIFx0W2Zvcm1hdCAlNC4yZiBbZXhwciBbZ2V0X3JjX2Nvcm5lciAkcmNfY29ybmVyIC1wcmVSb3V0ZV9jbGtyZXNdKjEuMF1dIiAKLSAgICB9Ci0gICBpZiB7W2dldF9yY19jb3JuZXIgJHJjX2Nvcm5lciAtcG9zdFJvdXRlX3Jlc10gIT0gIiJ9IHsKLSAgICAgIHNldCB0cmlwbGV0cyBbZ2V0X3JjX2Nvcm5lciAkcmNfY29ybmVyIC1wb3N0Um91dGVfcmVzXQotICAgICAgc2V0IHNjYWxhciBbbGluZGV4ICR0cmlwbGV0cyAwXQotICAgICAgaWYge1tsbGVuZ3RoICRzY2FsYXJdID09IDF9IHsKLSAgICAgICAgIHNldCBwc3RyaW5nIFtmb3JtYXQgIiU0LjJmICU0LjJmICU0LjJmIiBbZXhwciBbbGluZGV4ICRzY2FsYXIgMF0qMS4wXSAxLjAgMS4wXQotICAgICAgfQotICAgICAgaWYge1tsbGVuZ3RoICRzY2FsYXJdID09IDJ9IHsKLSAgICAgICAgIHNldCBwc3RyaW5nIFtmb3JtYXQgIiU0LjJmICU0LjJmICU0LjJmIiBbZXhwciBbbGluZGV4ICRzY2FsYXIgMF0qMS4wXSBbZXhwciBbbGluZGV4ICRzY2FsYXIgMV0qMS4wXSAxLjBdCi0gICAgICB9Ci0gICAgICBpZiB7W2xsZW5ndGggJHNjYWxhcl0gPT0gM30gewotICAgICAgICAgc2V0IHBzdHJpbmcgW2Zvcm1hdCAiJTQuMmYgJTQuMmYgJTQuMmYiIFtleHByIFtsaW5kZXggJHNjYWxhciAwXSoxLjBdIFtleHByIFtsaW5kZXggJHNjYWxhciAxXSoxLjBdIFtleHByIFtsaW5kZXggJHNjYWxhciAyXSoxLjBdXQotICAgICAgfQotICAgICAgcHV0cyAkb3AxICJzZXQgdmFycygkcmNfY29ybmVyLHBvc3Rfcm91dGVfcmVzX2ZhY3RvcikgXHRcdFwiJHBzdHJpbmdcIiIKLSAgIH0KLSAgIGlmIHtbZ2V0X3JjX2Nvcm5lciAkcmNfY29ybmVyIC1wb3N0Um91dGVfY2xrcmVzXSAhPSAiIn0gewotICAgICAgc2V0IHRyaXBsZXRzIFtnZXRfcmNfY29ybmVyICRyY19jb3JuZXIgLXBvc3RSb3V0ZV9jbGtyZXNdCi0gICAgICBzZXQgc2NhbGFyIFtsaW5kZXggJHRyaXBsZXRzIDBdCi0gICAgICBpZiB7W2xsZW5ndGggJHNjYWxhcl0gPT0gMX0gewotICAgICAgICAgc2V0IHBzdHJpbmcgW2Zvcm1hdCAiJTQuMmYgJTQuMmYgJTQuMmYiIFtleHByIFtsaW5kZXggJHNjYWxhciAwXSoxLjBdIDEuMCAxLjBdCi0gICAgICB9Ci0gICAgICBpZiB7W2xsZW5ndGggJHNjYWxhcl0gPT0gMn0gewotICAgICAgICAgc2V0IHBzdHJpbmcgW2Zvcm1hdCAiJTQuMmYgJTQuMmYgJTQuMmYiIFtleHByIFtsaW5kZXggJHNjYWxhciAwXSoxLjBdIFtleHByIFtsaW5kZXggJHNjYWxhciAxXSoxLjBdIDEuMF0KLSAgICAgIH0KLSAgICAgIGlmIHtbbGxlbmd0aCAkc2NhbGFyXSA9PSAzfSB7Ci0gICAgICAgICBzZXQgcHN0cmluZyBbZm9ybWF0ICIlNC4yZiAlNC4yZiAlNC4yZiIgW2V4cHIgW2xpbmRleCAkc2NhbGFyIDBdKjEuMF0gW2V4cHIgW2xpbmRleCAkc2NhbGFyIDFdKjEuMF0gW2V4cHIgW2xpbmRleCAkc2NhbGFyIDJdKjEuMF1dCi0gICAgICB9Ci0gICAgICBwdXRzICRvcDEgInNldCB2YXJzKCRyY19jb3JuZXIscG9zdF9yb3V0ZV9jbGtfcmVzX2ZhY3RvcikgXHRcdFwiJHBzdHJpbmdcIiIKLSAgICB9Ci0gICBpZiB7W2dldF9yY19jb3JuZXIgJHJjX2Nvcm5lciAtcHJlUm91dGVfY2FwXSAhPSAiIn0gewotICAgICAgcHV0cyAkb3AxICJzZXQgdmFycygkcmNfY29ybmVyLHByZV9yb3V0ZV9jYXBfZmFjdG9yKSBcdFx0W2Zvcm1hdCAlNC4yZiBbZXhwciBbZ2V0X3JjX2Nvcm5lciAkcmNfY29ybmVyIC1wcmVSb3V0ZV9jYXBdKjEuMF1dIiAKLSAgIH0KLSAgIGlmIHtbZ2V0X3JjX2Nvcm5lciAkcmNfY29ybmVyIC1wcmVSb3V0ZV9jbGtjYXBdICE9ICIifSB7Ci0gICAgICBwdXRzICRvcDEgInNldCB2YXJzKCRyY19jb3JuZXIscHJlX3JvdXRlX2Nsa19jYXBfZmFjdG9yKSBcdFtmb3JtYXQgJTQuMmYgW2V4cHIgW2dldF9yY19jb3JuZXIgJHJjX2Nvcm5lciAtcHJlUm91dGVfY2xrY2FwXSoxLjBdXSIgCi0gICAgfQotICAgaWYge1tnZXRfcmNfY29ybmVyICRyY19jb3JuZXIgLXBvc3RSb3V0ZV9jYXBdICE9ICIifSB7Ci0gICAgICBzZXQgdHJpcGxldHMgW2dldF9yY19jb3JuZXIgJHJjX2Nvcm5lciAtcG9zdFJvdXRlX2NhcF0KLSAgICAgIHNldCBzY2FsYXIgW2xpbmRleCAkdHJpcGxldHMgMF0KLSAgICAgIGlmIHtbbGxlbmd0aCAkc2NhbGFyXSA9PSAxfSB7Ci0gICAgICAgICBzZXQgcHN0cmluZyBbZm9ybWF0ICIlNC4yZiAlNC4yZiAlNC4yZiIgW2V4cHIgW2xpbmRleCAkc2NhbGFyIDBdKjEuMF0gMS4wIDEuMF0KLSAgICAgIH0KLSAgICAgIGlmIHtbbGxlbmd0aCAkc2NhbGFyXSA9PSAyfSB7Ci0gICAgICAgICBzZXQgcHN0cmluZyBbZm9ybWF0ICIlNC4yZiAlNC4yZiAlNC4yZiIgW2V4cHIgW2xpbmRleCAkc2NhbGFyIDBdKjEuMF0gW2V4cHIgW2xpbmRleCAkc2NhbGFyIDFdKjEuMF0gMS4wXQotICAgICAgfQotICAgICAgaWYge1tsbGVuZ3RoICRzY2FsYXJdID09IDN9IHsKLSAgICAgICAgIHNldCBwc3RyaW5nIFtmb3JtYXQgIiU0LjJmICU0LjJmICU0LjJmIiBbZXhwciBbbGluZGV4ICRzY2FsYXIgMF0qMS4wXSBbZXhwciBbbGluZGV4ICRzY2FsYXIgMV0qMS4wXSBbZXhwciBbbGluZGV4ICRzY2FsYXIgMl0qMS4wXV0KLSAgICAgIH0KLSAgICAgIHB1dHMgJG9wMSAic2V0IHZhcnMoJHJjX2Nvcm5lcixwb3N0X3JvdXRlX2NhcF9mYWN0b3IpIFx0XHRcIiRwc3RyaW5nXCIiCi0gICB9Ci0gICBpZiB7W2dldF9yY19jb3JuZXIgJHJjX2Nvcm5lciAtcG9zdFJvdXRlX2Nsa2NhcF0gIT0gIiJ9IHsKLSAgICAgIHNldCB0cmlwbGV0cyBbZ2V0X3JjX2Nvcm5lciAkcmNfY29ybmVyIC1wb3N0Um91dGVfY2xrY2FwXQotICAgICAgc2V0IHNjYWxhciBbbGluZGV4ICR0cmlwbGV0cyAwXQotICAgICAgaWYge1tsbGVuZ3RoICRzY2FsYXJdID09IDF9IHsKLSAgICAgICAgIHNldCBwc3RyaW5nIFtmb3JtYXQgIiU0LjJmICU0LjJmICU0LjJmIiBbZXhwciBbbGluZGV4ICRzY2FsYXIgMF0qMS4wXSAxLjAgMS4wXQotICAgICAgfQotICAgICAgaWYge1tsbGVuZ3RoICRzY2FsYXJdID09IDJ9IHsKLSAgICAgICAgIHNldCBwc3RyaW5nIFtmb3JtYXQgIiU0LjJmICU0LjJmICU0LjJmIiBbZXhwciBbbGluZGV4ICRzY2FsYXIgMF0qMS4wXSBbZXhwciBbbGluZGV4ICRzY2FsYXIgMV0qMS4wXSAxLjBdCi0gICAgICB9Ci0gICAgICBpZiB7W2xsZW5ndGggJHNjYWxhcl0gPT0gM30gewotICAgICAgICAgc2V0IHBzdHJpbmcgW2Zvcm1hdCAiJTQuMmYgJTQuMmYgJTQuMmYiIFtleHByIFtsaW5kZXggJHNjYWxhciAwXSoxLjBdIFtleHByIFtsaW5kZXggJHNjYWxhciAxXSoxLjBdIFtleHByIFtsaW5kZXggJHNjYWxhciAyXSoxLjBdXQotICAgICAgfQotICAgICAgcHV0cyAkb3AxICJzZXQgdmFycygkcmNfY29ybmVyLHBvc3Rfcm91dGVfY2xrX2NhcF9mYWN0b3IpIFx0XHRcIiRwc3RyaW5nXCIiCi0gICB9Ci0gICBpZiB7W2dldF9yY19jb3JuZXIgJHJjX2Nvcm5lciAtcG9zdFJvdXRlX3hjYXBdICE9ICIifSB7Ci0gICAgICBzZXQgdHJpcGxldHMgW2dldF9yY19jb3JuZXIgJHJjX2Nvcm5lciAtcG9zdFJvdXRlX3hjYXBdCi0gICAgICBzZXQgc2NhbGFyIFtsaW5kZXggJHRyaXBsZXRzIDBdCi0gICAgICBpZiB7W2xsZW5ndGggJHNjYWxhcl0gPT0gMX0gewotICAgICAgICAgc2V0IHBzdHJpbmcgW2Zvcm1hdCAiJTQuMmYgJTQuMmYgJTQuMmYiIFtleHByIFtsaW5kZXggJHNjYWxhciAwXSoxLjBdIDEuMCAxLjBdCi0gICAgICB9Ci0gICAgICBpZiB7W2xsZW5ndGggJHNjYWxhcl0gPT0gMn0gewotICAgICAgICAgc2V0IHBzdHJpbmcgW2Zvcm1hdCAiJTQuMmYgJTQuMmYgJTQuMmYiIFtleHByIFtsaW5kZXggJHNjYWxhciAwXSoxLjBdIFtleHByIFtsaW5kZXggJHNjYWxhciAxXSoxLjBdIDEuMF0KLSAgICAgIH0KLSAgICAgIGlmIHtbbGxlbmd0aCAkc2NhbGFyXSA9PSAzfSB7Ci0gICAgICAgICBzZXQgcHN0cmluZyBbZm9ybWF0ICIlNC4yZiAlNC4yZiAlNC4yZiIgW2V4cHIgW2xpbmRleCAkc2NhbGFyIDBdKjEuMF0gW2V4cHIgW2xpbmRleCAkc2NhbGFyIDFdKjEuMF0gW2V4cHIgW2xpbmRleCAkc2NhbGFyIDJdKjEuMF1dCi0gICAgICB9Ci0gICAgICBwdXRzICRvcDEgInNldCB2YXJzKCRyY19jb3JuZXIscG9zdF9yb3V0ZV94Y2FwX2ZhY3RvcikgXHRcdFwiJHBzdHJpbmdcIiIKLSAgIH0KLSAgIHB1dHMgJG9wMSAgIiIgCi19Ci1wdXRzICRvcDEgIiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMiCi1wdXRzICRvcDEgIiMgRGVmaW5lIG9wZXJhdGluZyBjb25kaXRpb25zIChvcHRpb25hbCkiCi1wdXRzICRvcDEgIiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iCi1wdXRzICRvcDEgIiMgc2V0IHZhcnMob3Bjb25kcykgPGxpc3Qgb2Ygb3BlcmF0aW5nIGNvbmRpdGlvbnM+IgotcHV0cyAkb3AxICIjIHNldCB2YXJzKDxvcGNvbmQ+LGxpYnJhcnlfZmlsZSkgPGxpYnJhcnkgZmlsZSA+IgotcHV0cyAkb3AxICIjIHNldCB2YXJzKDxvcGNvbmQ+LFApIDxwcm9jZXNzIHNjYWxlIGZhY3Rvcj4iCi1wdXRzICRvcDEgIiMgc2V0IHZhcnMoPG9wY29uZD4sVikgPHZvbHRhZ2U+IgotcHV0cyAkb3AxICIjIHNldCB2YXJzKDxvcGNvbmQ+LFQpIDx0ZW1wZXJhdHVyZT4iCi1wdXRzICRvcDEgIiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMiCi1pZiB7IVtpbmZvIGV4aXN0cyA6OkNQRjo6Y3BmQ29tbWl0dGVkXX0gewotICAgc2V0IG9wY29uZHMgW2xpc3RdCi0gICBmb3JlYWNoIG9wY29uZCBbYWxsX29wX2NvbmRzXSB7Ci0gICAjICAgaWYge1tyZWdleHAgIl5kZWZhdWx0IiAkb3Bjb25kIF0gPT0gMH0gewotICAgICAgICAgbGFwcGVuZCBvcGNvbmRzICRvcGNvbmQKLSAgICMgICB9Ci0gICB9Ci0gICBpZiB7JG9wY29uZHMgIT0gIiJ9IHsKLSAgICAgIHB1dHMgJG9wMSAiI3NldCB2YXJzKG9wY29uZHMpIFwiJG9wY29uZHNcIiIKLSAgIH0KLSAgIGZvcmVhY2ggb3Bjb25kICRvcGNvbmRzIHsKLSAgICAgIGZvcmVhY2ggb3B0aW9uICJsaWJyYXJ5X2ZpbGUgUCBWIFQiIHsKLSAgICAgICAgIGlmIHtbZ2V0X29wX2NvbmQgJG9wY29uZCAtJG9wdGlvbl0gIT0gIiJ9IHsKLSAgICAgICAgICAgIHB1dHMgJG9wMSAiI3NldCB2YXJzKCRvcGNvbmQsJG9wdGlvbikgW2dldF9vcF9jb25kICRvcGNvbmQgLSRvcHRpb25dIiAKLSAgICAgICAgIH0KLSAgICAgIH0KLSAgIH0KLX0KLQotcHV0cyAkb3AxICIjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIgotcHV0cyAkb3AxICIjIERlZmluZSBkZWxheSBjb3JuZXJzIC4uLiIKLXB1dHMgJG9wMSAiIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIKLXB1dHMgJG9wMSAiIyBzZXQgdmFycyhkZWxheV9jb3JuZXJzKSA8bGlzdCBvZiBkZWxheSBjb3JuZXJzPiIKLXB1dHMgJG9wMSAiIyBzZXQgdmFycyg8ZGVsYXlfY29ybmVyPixsaWJyYXJ5X3NldCkgPGxpYnJhcnlfc2V0PiAocHJldmlvdXNseSBkZWZpbmVkKSIKLXB1dHMgJG9wMSAiIyBzZXQgdmFycyg8ZGVsYXlfY29ybmVyPixvcGNvbmQpIDxvcGNvbmQ+IChwcmV2aW91c2x5IGRlZmluZWQpIChvcHRpb25hbCkiCi1wdXRzICRvcDEgIiMgc2V0IHZhcnMoPGRlbGF5X2Nvcm5lcj4scmNfY29ybmVyKSBsaWJyYXJ5X3NldD4gKHByZXZpb3VzbHkgZGVmaW5lZCkiCi1wdXRzICRvcDEgIiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMiCi1zZXQgZGVsYXlfY29ybmVycyBbbGlzdF0KLWZvcmVhY2ggZGVsYXlfY29ybmVyIFthbGxfZGVsYXlfY29ybmVyc10gewotIyAgIGlmIHtbbGxlbmd0aCBbYWxsX2RlbGF5X2Nvcm5lcnNdXSA+IDJ9IHsKLSMgICAgICBpZiB7W3JlZ2V4cCAiXmRlZmF1bHQiICRkZWxheV9jb3JuZXIgXSA9PSAwfSB7Ci0jICAgICAgICAgbGFwcGVuZCBkZWxheV9jb3JuZXJzICRkZWxheV9jb3JuZXIKLSMgICAgICB9Ci0jICAgfSBlbHNlIHsKLSAgICAgIGxhcHBlbmQgZGVsYXlfY29ybmVycyAkZGVsYXlfY29ybmVyCi0jICAgfQotfQotaWYgeyRkZWxheV9jb3JuZXJzICE9ICIifSB7Ci0gICBwdXRzICRvcDEgInNldCB2YXJzKGRlbGF5X2Nvcm5lcnMpIFwiJGRlbGF5X2Nvcm5lcnNcIiIKLX0KLWZvcmVhY2ggZGMgJGRlbGF5X2Nvcm5lcnMgewotICAgIHNldCBhdHRyaWJ1dGVfbGlzdCAicmNfY29ybmVyIGxpYnJhcnlfc2V0IG9wY29uZF9saWJyYXJ5IG9wY29uZCBpcmRyb3BfZmlsZSBsYXRlX2xpYnJhcnlfc2V0IGVhcmx5X2xpYnJhcnlfc2V0IAotICAgICAgICAgICAgICAgICAgICAgICAgbGF0ZV9vcGNvbmRfbGlicmFyeSBlYXJseV9vcGNvbmRfbGlicmFyeSBsYXRlX29wY29uZCBlYXJseV9vcGNvbmQgbGF0ZV9pcmRyb3BfZmlsZSBlYXJseV9pcmRyb3BfZmlsZSIKLQotICAgZm9yZWFjaCBhdHRyICRhdHRyaWJ1dGVfbGlzdCB7Ci0gICAjIEV4dHJhY3Rpb24gdGhlIGNvcm5lciBsZXZlbCBwcm9wZXJ0aWVzCi0gICAgICBpZiB7W2dldF9kZWxheV9jb3JuZXIgJGRjIC0kYXR0cl0gIT0gIiJ9IHsgCi0gICAgICAgICBwdXRzICRvcDEgInNldCB2YXJzKCRkYywkYXR0cikgXHRbZ2V0X2RlbGF5X2Nvcm5lciAkZGMgLSRhdHRyXSIKLSAgICAgIH0KLSAgICMgRXh0cmFjdGlvbiB0aGUgcG93ZXIgZG9tYWluIGxldmVsIHByb3BlcnRpZXMKLSAgICAgIHNldCBkb21haW5zIFtnZXRfZGVsYXlfY29ybmVyICRkYyAtcG93ZXJfZG9tYWluX2xpc3RdCi0gICAgICBpZiB7JGRvbWFpbnMgIT0gIiJ9IHsKLSAgICAgICAgaWYgeyFbaW5mbyBleGlzdHMgZG9uZSgkZGMscG93ZXJfZG9tYWlucyldfSB7Ci0gICAgICAgICAgIHB1dHMgJG9wMSAic2V0IHZhcnMoJGRjLHBvd2VyX2RvbWFpbnMpIFwiJGRvbWFpbnNcIiIKLSAgICAgICAgICAgIGZvcmVhY2ggcGQgW2dldF9kZWxheV9jb3JuZXIgJGRjIC1wb3dlcl9kb21haW5fbGlzdF0gewotICAgICAgICAgICAgICBwdXRzICRvcDEgIiMgQXR0cmlidXRlcyBmb3IgcG93ZXIgZG9tYWluICRwZCIKLSAgICAgICAgICAgICAgIGZvcmVhY2ggYXR0ciAkYXR0cmlidXRlX2xpc3QgewotICAgICAgICAgICAgICAgICAgaWYge1tnZXRfZGVsYXlfY29ybmVyIC1wb3dlcl9kb21haW4gJHBkICRkYyAtJGF0dHJdICE9ICIifSB7Ci0gICAgICAgICAgICAgICAgICAgICBzZXQgZG9uZSgkZGMsJHBkLCRhdHRyKSBUUlVFCi0gICAgICAgICAgICAgICAgICAgICBwdXRzICRvcDEgInNldCB2YXJzKCRkYywkcGQsJGF0dHIpIFx0W2dldF9kZWxheV9jb3JuZXIgJGRjIC1wb3dlcl9kb21haW4gJHBkIC0kYXR0cl0iCi0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICB9IAotICAgICAgICAgICAgfQotICAgICAgICAgICBzZXQgZG9uZSgkZGMscG93ZXJfZG9tYWlucykgVFJVRQotICAgICAgICAgfSAKLSAgICAgIH0KLSAgIH0KLX0KLQotCi1wdXRzICRvcDEgIiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMiCi1wdXRzICRvcDEgIiMgT3B0aW9uYWxseSBkZWZpbmUgZGVyYXRpbmcgZmFjdG9ycyBmb3IgT0NWIGhlcmUgKGNsb2NrIGFuZCBkYXRhKS4gIgotcHV0cyAkb3AxICIjIERlcmF0aW5nIGZhY3RvcnMgYXJlIGFwcGxpZWQgcGVyIGRlbGF5IGNvcm5lciB1c2luZyBlaXRoZXIgaW5kaXZpZHVhbCIKLXB1dHMgJG9wMSAiIyB2YWx1ZXMgT1IgdmlhIGEgZGVyYXRlX3RjbCBmaWxlIHdoaWNoIG11c3QgY29udGFpbiBzeW50YWN0aWNhbGx5IGNvcnJlY3QiCi1wdXRzICRvcDEgIiMgc2V0X3RpbWluZ19kZXJhdGUgY29tbWFuZHMgZm9yIGEgZ2l2ZW4gZGVsYXlfY29ybmVyIgotcHV0cyAkb3AxICIjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIgotcHV0cyAkb3AxICIjc2V0IHZhcnMoPGRlbGF5X2Nvcm5lcj4sZGVyYXRlX3RjbCkgICAgICAgIDxmaWxlPiIKLXB1dHMgJG9wMSAiIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIKLXB1dHMgJG9wMSAiI3NldCB2YXJzKDxkZWxheV9jb3JuZXI+LGRhdGFfY2VsbF9sYXRlKSAgICA8ZmxvYXQ+IgotcHV0cyAkb3AxICIjc2V0IHZhcnMoPGRlbGF5X2Nvcm5lcj4sZGF0YV9jZWxsX2Vhcmx5KSAgIDxmbG9hdD4iCi1wdXRzICRvcDEgIiNzZXQgdmFycyg8ZGVsYXlfY29ybmVyPixkYXRhX25ldF9sYXRlKSAgICAgPGZsb2F0PiIKLXB1dHMgJG9wMSAiI3NldCB2YXJzKDxkZWxheV9jb3JuZXI+LGRhdGFfbmV0X2Vhcmx5KSAgICA8ZmxvYXQ+IgotcHV0cyAkb3AxICIjc2V0IHZhcnMoPGRlbGF5X2Nvcm5lcj4sY2xvY2tfY2VsbF9sYXRlKSAgIDxmbG9hdD4iCi1wdXRzICRvcDEgIiNzZXQgdmFycyg8ZGVsYXlfY29ybmVyPixjbG9ja19jZWxsX2Vhcmx5KSAgPGZsb2F0PiIKLXB1dHMgJG9wMSAiI3NldCB2YXJzKDxkZWxheV9jb3JuZXI+LGNsb2NrX25ldF9sYXRlKSAgICA8ZmxvYXQ+IgotcHV0cyAkb3AxICIjc2V0IHZhcnMoPGRlbGF5X2Nvcm5lcj4sY2xvY2tfbmV0X2Vhcmx5KSAgIDxmbG9hdD4iCi1wdXRzICRvcDEgIiNzZXQgdmFycyg8ZGVsYXlfY29ybmVyPixjZWxsX2NoZWNrX2xhdGUpICAgPGZsb2F0PiIKLXB1dHMgJG9wMSAiI3NldCB2YXJzKDxkZWxheV9jb3JuZXI+LGNlbGxfY2hlY2tfZWFybHkpICA8ZmxvYXQ+IgotcHV0cyAkb3AxICIjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIgotCi1zZXQgbWFwKGVhcmx5X2NlbGxfY2hlY2tfZGVyYXRlX2ZhY3RvcikgZWFybHlfY2VsbF9jaGVjawotc2V0IG1hcChlYXJseV9jbGtfY2VsbF9kZXJhdGVfZmFjdG9yKSBjbG9ja19jZWxsX2Vhcmx5Ci1zZXQgbWFwKGVhcmx5X2RhdGFfY2VsbF9kZXJhdGVfZmFjdG9yKSBkYXRhX2NlbGxfZWFybHkKLXNldCBtYXAobGF0ZV9jZWxsX2NoZWNrX2RlcmF0ZV9mYWN0b3IpIGxhdGVfY2VsbF9jaGVjawotc2V0IG1hcChsYXRlX2Nsa19jZWxsX2RlcmF0ZV9mYWN0b3IpIGNsb2NrX2NlbGxfbGF0ZQotc2V0IG1hcChsYXRlX2RhdGFfY2VsbF9kZXJhdGVfZmFjdG9yKSBkYXRhX2NlbGxfbGF0ZQotCi0jdGltZURlc2lnbiAtcHJlUGxhY2UKLSNmb3JlYWNoIHZpZXcgW2FsbF9zZXR1cF9hbmFseXNpc192aWV3c10gewotIyAgIGZvcmVhY2ggdHlwZSAiZWFybHlfY2VsbF9jaGVja19kZXJhdGVfZmFjdG9yIGVhcmx5X2Nsa19jZWxsX2RlcmF0ZV9mYWN0b3IgZWFybHlfZGF0YV9jZWxsX2RlcmF0ZV9mYWN0b3IgXAotIyAgICAgICAgICAgICAgICAgbGF0ZV9jZWxsX2NoZWNrX2RlcmF0ZV9mYWN0b3IgbGF0ZV9jbGtfY2VsbF9kZXJhdGVfZmFjdG9yIGxhdGVfZGF0YV9jZWxsX2RlcmF0ZV9mYWN0b3IiIHsKLSMKLSMgICAgICBwdXRzICRvcDEgInNldCB2YXJzKFtnZXRfYW5hbHlzaXNfdmlldyAkdmlldyAtZGVsYXlfY29ybmVyXSwkbWFwKCR0eXBlKSkgW2dldF9wcm9wZXJ0eSBbbGluZGV4IFthbGxfcmVnaXN0ZXJzXSAwXSAkdHlwZSAtdmlldyAkdmlld10iCi0jICAgfQotI30KLSN0aW1lRGVzaWduIC1wcmVQbGFjZSAtaG9sZAotI2ZvcmVhY2ggdmlldyBbYWxsX2hvbGRfYW5hbHlzaXNfdmlld3NdIHsKLSMgICBmb3JlYWNoIHR5cGUgImVhcmx5X2NlbGxfY2hlY2tfZGVyYXRlX2ZhY3RvciBlYXJseV9jbGtfY2VsbF9kZXJhdGVfZmFjdG9yIGVhcmx5X2RhdGFfY2VsbF9kZXJhdGVfZmFjdG9yIFwKLSMgICAgICAgICAgICAgICAgIGxhdGVfY2VsbF9jaGVja19kZXJhdGVfZmFjdG9yIGxhdGVfY2xrX2NlbGxfZGVyYXRlX2ZhY3RvciBsYXRlX2RhdGFfY2VsbF9kZXJhdGVfZmFjdG9yIiB7Ci0jCi0jICAgICAgcHV0cyAkb3AxICJzZXQgdmFycyhbZ2V0X2FuYWx5c2lzX3ZpZXcgJHZpZXcgLWRlbGF5X2Nvcm5lcl0sJG1hcCgkdHlwZSkpIFtnZXRfcHJvcGVydHkgW2xpbmRleCBbYWxsX3JlZ2lzdGVyc10gMF0gJHR5cGUgLXZpZXcgJHZpZXddIgotIyAgIH0KLSN9Ci0KLXB1dHMgJG9wMSAiIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyIKLXB1dHMgJG9wMSAiIyBEZWZpbmUgY29uc3RyYWludCBtb2RlcyAuLi4gIgotcHV0cyAkb3AxICIjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIgotcHV0cyAkb3AxICIjIHNldCB2YXJzKGNvbnN0cmFpbnRfbW9kZXMpICAgICAgICA8bGlzdCBvZiBjb25zdHJhaW50IG1vZGVzPiIKLXB1dHMgJG9wMSAiIyBzZXQgdmFycyg8bW9kZT4scHJlX2N0c19zZGMpICAgICAgPHByZSBjdHMgY29uc3RyYWludCBmaWxlPiAocmVxdWlyZWQpIgotcHV0cyAkb3AxICIjIHNldCB2YXJzKDxtb2RlPixwb3N0X2N0c19zZGMpICAgICA8cG9zdCBjdHMgY29uc3RyYWludCBmaWxlPiAob3B0aW9uYWwpIgotcHV0cyAkb3AxICIjIHNldCB2YXJzKDxtb2RlPixpbmNyX2N0c19zZGMpICAgICA8aW5jcmVtZW50YWwgcG9zdCBjdHMgY29uc3RyYWludCBmaWxlPiAob3B0aW9uYWwpIgotcHV0cyAkb3AxICIjIHNldCB2YXJzKDxtb2RlPixwcmVfY3RzX2lsbV9zZGMpICA8cHJlIGN0cyBpbG0gY29uc3RyYWludCBmaWxlPiAob3B0aW9uYWwpIgotcHV0cyAkb3AxICIjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIgotc2V0IGNvbnN0cmFpbnRfbW9kZXMgW2xpc3RdCi1mb3JlYWNoIGNvbnN0cmFpbnRfbW9kZSBbYWxsX2NvbnN0cmFpbnRfbW9kZXNdIHsKLSMgICBpZiB7W2xsZW5ndGggW2FsbF9jb25zdHJhaW50X21vZGVzXV0gPiAyfSB7Ci0jICAgICAgaWYge1tyZWdleHAgIl5kZWZhdWx0X21vZGUiICRjb25zdHJhaW50X21vZGUgXSA9PSAwfSB7Ci0jICAgICAgICAgbGFwcGVuZCBjb25zdHJhaW50X21vZGVzICRjb25zdHJhaW50X21vZGUKLSMgICAgICB9Ci0jICAgfSBlbHNlIHsKLSAgICAgIGxhcHBlbmQgY29uc3RyYWludF9tb2RlcyAkY29uc3RyYWludF9tb2RlCi0jICAgfQotfQotaWYgeyRjb25zdHJhaW50X21vZGVzICE9ICIifSB7Ci0gICBwdXRzICRvcDEgInNldCB2YXJzKGNvbnN0cmFpbnRfbW9kZXMpIFwiJGNvbnN0cmFpbnRfbW9kZXNcIiIKLX0KLWZvcmVhY2ggY29uc3RyYWludF9tb2RlICRjb25zdHJhaW50X21vZGVzIHsKLSAgIGlmIHtbZ2V0X2NvbnN0cmFpbnRfbW9kZSAkY29uc3RyYWludF9tb2RlIC1zZGNfZmlsZXNdICE9ICIifSB7Ci0jICAgICAgcHV0cyAkb3AxICJzZXQgdmFycygkY29uc3RyYWludF9tb2RlLHByZV9jdHNfc2RjKSBcIltmaWxlIG5vcm1hbGl6ZSBbZ2V0X2NvbnN0cmFpbnRfbW9kZSAkY29uc3RyYWludF9tb2RlIC1zZGNfZmlsZXNdXVwiIiAKLSAgICAgc2V0IHByZV9jdHNfc2RjX2xpc3QgW2xpc3RdCi0gICAgIGZvcmVhY2ggZmlsZSBbZ2V0X2NvbnN0cmFpbnRfbW9kZSAkY29uc3RyYWludF9tb2RlIC1zZGNfZmlsZXNdICB7Ci0gICAgICAgIGxhcHBlbmQgcHJlX2N0c19zZGNfbGlzdCBbZmlsZSBub3JtYWxpemUgJGZpbGVdCi0gICAgIH0KLSAgICAgcHV0cyAkb3AxICJzZXQgdmFycygkY29uc3RyYWludF9tb2RlLHByZV9jdHNfc2RjKSBcIltqb2luICRwcmVfY3RzX3NkY19saXN0XVwiIiAKLSAgICAgIGlmIHtbaW5mbyBleGlzdHMgZGduX3Bvc3RfY3RzX3NkY10gJiYgKCRkZ25fcG9zdF9jdHNfc2RjICE9ICIiKSB9IHsKLSAgICAgICAgIHB1dHMgJG9wMSAic2V0IHZhcnMoJGNvbnN0cmFpbnRfbW9kZSxwb3N0X2N0c19zZGMpIFwiJGRnbl9wb3N0X2N0c19zZGNcIiIgCi0gICAgICB9Ci0gICB9Ci0gICBpZiB7W2dldF9jb25zdHJhaW50X21vZGUgJGNvbnN0cmFpbnRfbW9kZSAtaWxtX3NkY19maWxlc10gIT0gIiJ9IHsKLSMgICAgICBwdXRzICRvcDEgInNldCB2YXJzKCRjb25zdHJhaW50X21vZGUscHJlX2N0c19pbG1fc2RjKSBcIltmaWxlIG5vcm1hbGl6ZSBbZ2V0X2NvbnN0cmFpbnRfbW9kZSAkY29uc3RyYWludF9tb2RlIC1pbG1fc2RjX2ZpbGVzXV1cIiIgCi0gICAgIHNldCBpbG1fY3RzX3NkY19saXN0IFtsaXN0XQotICAgICBmb3JlYWNoIGZpbGUgW2dldF9jb25zdHJhaW50X21vZGUgJGNvbnN0cmFpbnRfbW9kZSAtaWxtX3NkY19maWxlc10gIHsKLSAgICAgICAgbGFwcGVuZCBpbG1fY3RzX3NkY19saXN0IFtmaWxlIG5vcm1hbGl6ZSAkZmlsZV0KLSAgICAgfQotICAgICBwdXRzICRvcDEgInNldCB2YXJzKCRjb25zdHJhaW50X21vZGUscHJlX2N0c19pbG1fc2RjKSBcIltqb2luICRpbG1fY3RzX3NkY19saXN0XVwiIiAKLSAgIH0KLX0KLQotcHV0cyAkb3AxICIjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIgotcHV0cyAkb3AxICIjIERlZmluZSBzZXR1cCBhbmQgaG9sZCBhbmFseXNpcyB2aWV3cyAuLi4gZWFjaCBhbmFseXNpcyB2aWV3IHJlcXVpcmVzIgotcHV0cyAkb3AxICIjIGEgZGVsYXkgY29ybmVyIGFuZCBhIGNvbnN0cmFpbnQgbW9kZSIKLXB1dHMgJG9wMSAiIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyIKLQotI3NldCBhbmFseXNpc192aWV3cyAiIgotc2V0IGFuYWx5c2lzX3ZpZXdzIFtjb25jYXQgW2FsbF9zZXR1cF9hbmFseXNpc192aWV3c10gW2FsbF9ob2xkX2FuYWx5c2lzX3ZpZXdzXV0KLSNmb3JlYWNoIHZpZXcgW2FsbF9hbmFseXNpc192aWV3c10gewotIyAgIGlmIHtbbGxlbmd0aCBbYWxsX2FuYWx5c2lzX3ZpZXdzXV0gPiAyfSB7Ci0jICAgICAgaWYge1tyZWdleHAgIl5kZWZhdWx0IiAkdmlldyBdID09IDB9IHsKLSMgICAgICAgICBsYXBwZW5kIGFuYWx5c2lzX3ZpZXdzICR2aWV3Ci0jICAgICAgfQotIyAgIH0gZWxzZSB7Ci0jICAgICAgbGFwcGVuZCBhbmFseXNpc192aWV3cyAkdmlldwotIyAgIH0KLSN9Ci1mb3JlYWNoIHZpZXcgJGFuYWx5c2lzX3ZpZXdzIHsKLSAgIGZvcmVhY2ggb3B0aW9uICJkZWxheV9jb3JuZXIgY29uc3RyYWludF9tb2RlIiB7Ci0gICAgICBpZiB7W2dldF9hbmFseXNpc192aWV3ICR2aWV3IC0kb3B0aW9uXSAhPSAiIn0gewotICAgICAgICAgcHV0cyAkb3AxICJzZXQgdmFycygkdmlldywkb3B0aW9uKSBbZ2V0X2FuYWx5c2lzX3ZpZXcgJHZpZXcgLSRvcHRpb25dIiAKLSAgICAgIH0KLSAgIH0KLX0KLXB1dHMgJG9wMSAiIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyIKLXB1dHMgJG9wMSAiIyBFRElUL1ZFUklGWSBUSEVTRSBMSVNUUyEhIgotcHV0cyAkb3AxICIjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIgotcHV0cyAkb3AxICJzZXQgdmFycyhzZXR1cF9hbmFseXNpc192aWV3cykgXCJbYWxsX3NldHVwX2FuYWx5c2lzX3ZpZXdzXVwiIgotcHV0cyAkb3AxICJzZXQgdmFycyhob2xkX2FuYWx5c2lzX3ZpZXdzKSAgXCJbYWxsX2hvbGRfYW5hbHlzaXNfdmlld3NdXCIiCi0jcHV0cyAkb3AxICJzZXQgdmFycyhzZXR1cF9hbmFseXNpc192aWV3cykgXCIkYW5hbHlzaXNfdmlld3NcIiIKLSNwdXRzICRvcDEgInNldCB2YXJzKGhvbGRfYW5hbHlzaXNfdmlld3MpIFwiJGFuYWx5c2lzX3ZpZXdzXCIiCi0KLXB1dHMgJG9wMSAiIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyIKLXB1dHMgJG9wMSAiIyBEZWZpbmUgYWN0aXZlIHNldHVwIGFuZCBob2xkIGFuYWx5c2lzIHZpZXcgbGlzdHMgYW5kIGRlZmF1bHQgdmlld3MiCi1wdXRzICRvcDEgIiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMiCi1wdXRzICRvcDEgInNldCB2YXJzKGRlZmF1bHRfc2V0dXBfdmlldykgIFxbbGluZGV4IFwkdmFycyhzZXR1cF9hbmFseXNpc192aWV3cykgMFxdIgotcHV0cyAkb3AxICJzZXQgdmFycyhkZWZhdWx0X2hvbGRfdmlldykgICBcW2xpbmRleCBcJHZhcnMoaG9sZF9hbmFseXNpc192aWV3cykgMFxdIgotI3B1dHMgJG9wMSAic2V0IHZhcnMoYWN0aXZlX3NldHVwX3ZpZXdzKSBcJHZhcnMoc2V0dXBfYW5hbHlzaXNfdmlld3MpIgotI3B1dHMgJG9wMSAic2V0IHZhcnMoYWN0aXZlX2hvbGRfdmlld3MpICBcJHZhcnMoaG9sZF9hbmFseXNpc192aWV3cykiCi1wdXRzICRvcDEgInNldCB2YXJzKGFjdGl2ZV9zZXR1cF92aWV3cykgIFwkdmFycyhzZXR1cF9hbmFseXNpc192aWV3cykiCi1wdXRzICRvcDEgInNldCB2YXJzKGFjdGl2ZV9ob2xkX3ZpZXdzKSAgIFwkdmFycyhob2xkX2FuYWx5c2lzX3ZpZXdzKSIKLXB1dHMgJG9wMSAiIgotcHV0cyAkb3AxICIjc2V0IHZhcnMoZ2RzX2ZpbGVzKSAgICAgICAgIDxsaXN0IG9mIGdkcyBmaWxlcz4iCi1wdXRzICRvcDEgIiNzZXQgdmFycyhnZHNfbGF5ZXJfbWFwKSAgICAgPGdkcyBsYXllciBtYXAgZmlsZT4iCi1wdXRzICRvcDEgIiNzZXQgdmFycyhxcmNfbGF5ZXJfbWFwKSAgICAgPHFyYyBsYXllciBtYXAgZmlsZT4iCi1wdXRzICRvcDEgIiNzZXQgdmFycyhxcmNfbGlicmFyeSkgICAgICAgPHFyYyBsaWJyYXJ5IGRpcmVjdG9yeT4iCi1wdXRzICRvcDEgIiNzZXQgdmFycyhxcmNfY29uZmlnX2ZpbGUpICAgPHFyYyBjb25maWcgZmlsZT4iCi1wdXRzICRvcDEgIiIKLXB1dHMgJG9wMiAiIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyIKLXB1dHMgJG9wMiAiIyBFbmFibGUgb25DaGlwVmFyaWF0aW9uIChmb3IgTU1NQyBmbG93cykuICBPcHRpb25zIGFyZToiCi1wdXRzICRvcDIgIiMgcHJlX3BsYWNlLCBwcmVfcHJlY3RzLCBwcmVfY3RzLCBwcmVfcG9zdGN0cywgcHJlX3Bvc3Ryb3V0ZSwgcHJlX3NpZ25vZmYsIGZhbHNlIgotcHV0cyAkb3AyICIjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIgotcHV0cyAkb3AyICJzZXQgdmFycyhlbmFibGVfb2N2KSAgICAgICAgcHJlX2N0cyIKLXB1dHMgJG9wMiAiIgotcHV0cyAkb3AyICIjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIgotcHV0cyAkb3AyICIjIE9wdGlvbmFsbHkgZW5hYmxlIGFvY3YiCi1wdXRzICRvcDIgIiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMiCi1wdXRzICRvcDIgInNldCB2YXJzKGVuYWJsZV9hb2N2KSAgICAgICBmYWxzZSIKLXB1dHMgJG9wMiAiIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyIKLXB1dHMgJG9wMiAiIyBPcHRpb25hbGx5IGVuYWJsZSBjcHByOyBvcHRpb25zIGFyZTogc2V0dXAsIGhvbGQsIGJvdGgsIG5vbmUiCi1wdXRzICRvcDIgIiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMiCi1wdXRzICRvcDIgInNldCB2YXJzKGVuYWJsZV9jcHByKSAgICAgICBib3RoIgotcHV0cyAkb3AyICIiCi0jcHV0cyAkb3AyICIjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIgotI3B1dHMgJG9wMiAiIyBPcHRpb25hbGx5IGVuYWJsZSBzaWduYWxTdG9ybSBkZWxheSBjYWxjdWxhdGlvbiBkdXJpbmcgdGhlIGZsb3cuIgotI3B1dHMgJG9wMiAiIyBUaGlzIGlzIGEgcmVxdWlyZW1lbnQgd2hlbiB1c2luZyBFQ1NNL0NDUyBtb2RlbHMuICBUaGUgZm9sbG93aW5nIGFyZSIKLSNwdXRzICRvcDIgIiMgdmFsdWUgb3B0aW9uczogcHJlX3BsYWNlIHByZV9wcmVjdHMgcHJlX3Bvc3RjdHMgcHJlX3Bvc3Ryb3V0ZSBwcmVfc2lnbm9mZiBmYWxzZSIKLSNwdXRzICRvcDIgIiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMiCi0jcHV0cyAkb3AyICJzZXQgdmFycyhlbmFibGVfc3MpICAgICAgICAgZmFsc2UiCi0jcHV0cyAkb3AyICIiCi1wdXRzICRvcDIgIiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMiCi1wdXRzICRvcDIgIiMgT3B0aW9uYWxseSBlbmFibGUgc2lnbm9mZiBFQ08gZm9yIHRoZSBoaWVyYXJoaWNhbCBmbG93IgotcHV0cyAkb3AyICIjIElGICdpbG0nLCBUSEVOIFRIRSBGT0xMT1dJTkcgU0hPVUxEIEJFIFNFVCBJTiBUSEUgc2V0dXAudGNsIgotcHV0cyAkb3AyICIjIC0gdmFycyg8cHRuPixpbG1fZGlyKSAgIDxwYXRoIHRvIElMTSBkaXJldG9yeT4iCi1wdXRzICRvcDIgIiMgLSB2YSNycyg8cHRuPixsZWZfZmlsZSkgIDxwYXRoIHRvIExFRiBmaWxlPiIKLXB1dHMgJG9wMiAiIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyIKLXB1dHMgJG9wMiAic2V0IHZhcnMoZW5hYmxlX3NpZ25vZmZfZWNvKSAgICAgICAgICAgIGZhbHNlIgotcHV0cyAkb3AyICIiCi1wdXRzICRvcDIgIiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMiCi1wdXRzICRvcDIgIiMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGbG93IE9wdGlvbnMiCi1wdXRzICRvcDIgIiMgT3B0aW9uYWxseSBlbmFibGUgZGVzaWduIG1vZGUgb3B0aW9uczoiCi1wdXRzICRvcDIgIiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iCi1wdXRzICRvcDIgIiNzZXQgdmFycyhmbG93X2VmZm90KSAgICAgICA8ZXhwcmVzcyB8IHN0YW5kYXJkIHwgZXh0cmVtZT4iCi1wdXRzICRvcDIgIiNzZXQgdmFycyhwb3dlcl9lZmZvcnQpICAgICA8bm9uZSB8IGxvdyB8IGhpZ2g+IgotcHV0cyAkb3AyICIiCi1wdXRzICRvcDIgIiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMiCi1wdXRzICRvcDIgIiMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQbGFjZW1lbnQgT3B0aW9ucyIKLXB1dHMgJG9wMiAiIyBOT1RFOiBXaGVuIHBsYWNlX29wdF9kZXNpZ24gaXMgZW5hYmxlZCwgdGhlIHByZWN0cyBzdGVwIHdpbGwgYmUgc2tpcHBlZCIKLXB1dHMgJG9wMiAiIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIKLXB1dHMgJG9wMiAiI3NldCB2YXJzKGluX3BsYWNlX29wdCkgICAgIHRydWUiCi1wdXRzICRvcDIgIiNzZXQgdmFycyhub19wcmVfcGxhY2Vfb3B0KSB0cnVlIgotcHV0cyAkb3AyICIjc2V0IHZhcnMocGxhY2Vfb3B0X2Rlc2lnbikgIDx0cnVlIHwgZmFsc2U+IgotcHV0cyAkb3AyICIjc2V0IHZhcnMocGxhY2VfaW9fcGlucykgICAgIDx0cnVlIHwgZmFsc2U+IgotcHV0cyAkb3AyICIjc2V0IHZhcnMoY2xvY2tfZ2F0ZV9hd2FyZSkgIDx0cnVlIHwgZmFsc2U+IgotcHV0cyAkb3AyICIjc2V0IHZhcnMoY29uZ2VzdGlvbl9lZmZvcnQpIDxhdXRvIHwgbG93IHwgaGlnaD4iCi1wdXRzICRvcDIgIiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iCi1mb3JlYWNoIG9wdGlvbiBbZ2V0UGxhY2VNb2RlIC1xdWlldF0gewotICAgaWYge1tsaW5kZXggJG9wdGlvbiAwXSA9PSAiY2xrR2F0ZUF3YXJlIn0gewotICAgICAgcHV0cyAkb3AyICJzZXQgdmFycyhjbG9ja19nYXRlX2F3YXJlKSAgW2xpbmRleCAkb3B0aW9uIDFdIgotICAgfQotICAgaWYge1tsaW5kZXggJG9wdGlvbiAwXSA9PSAiY29uZ0VmZm9ydCJ9IHsKLSAgICAgIHB1dHMgJG9wMiAic2V0IHZhcnMoY29uZ2VzdGlvbl9lZmZvcnQpIFtsaW5kZXggJG9wdGlvbiAxXSIKLSAgIH0KLSAgIGlmIHtbbGluZGV4ICRvcHRpb24gMF0gPT0gInBsYWNlSW9QaW5zIn0gewotICAgICAgcHV0cyAkb3AyICJzZXQgdmFycyhwbGFjZV9pb19waW5zKSAgICAgW2xpbmRleCAkb3B0aW9uIDFdIgotICAgfQotfQotcHV0cyAkb3AyICIiCi1wdXRzICRvcDIgIiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMiCi1wdXRzICRvcDIgIiMgICAgICAgICAgICAgICAgICAgICBUaWUvRmlsbGVyL1RhcCBDZWxsIE9wdGlvbnMiCi1wdXRzICRvcDIgIiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iCi1wdXRzICRvcDIgIiMgICAgICAgICAgICAgICAgICAgICAgICAgVGllIGNlbGwgaW5mb3JtYXRpb24iCi1wdXRzICRvcDIgIiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iCi1mb3JlYWNoIG9wdGlvbiBbZ2V0VGllSGlMb01vZGUgLXF1aWV0XSB7Ci0gICBzd2l0Y2ggLWV4YWN0IC0tIFtsaW5kZXggJG9wdGlvbiAwXSB7Ci0gICAgICAiY2VsbCIgewotICAgICAgICAgaWYge1tsaW5kZXggJG9wdGlvbiAxXSAhPSAiIn0gewotICAgICAgICAgICAgcHV0cyAkb3AyICJzZXQgdmFycyh0aWVfY2VsbHMpIFwiW2xpbmRleCAkb3B0aW9uIDFdXCIiCi0gICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgcHV0cyAkb3AyICIjc2V0IHZhcnModGllX2NlbGxzKSA8dGllX2NlbGxzPiIKLSAgICAgICAgIH0KLSAgICAgIH0KLSAgICAgICJtYXhEaXN0YW5jZSIgewotICAgICAgICAgaWYge1tsaW5kZXggJG9wdGlvbiAxXSAhPSAwfSB7Ci0gICAgICAgICAgICBwdXRzICRvcDIgInNldCB2YXJzKHRpZV9jZWxscyxtYXhfZGlzdGFuY2UpIFtsaXN0IFtsaW5kZXggJG9wdGlvbiAxXV0iCi0gICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgcHV0cyAkb3AyICIjc2V0IHZhcnModGllX2NlbGxzLG1heF9kaXN0YW5jZSkgPGZsb2F0PiIKLSAgICAgICAgIH0KLSAgICAgIH0KLSAgICAgICJtYXhGYW5vdXQiIHsKLSAgICAgICAgIGlmIHtbbGluZGV4ICRvcHRpb24gMV0gIT0gMH0gewotICAgICAgICAgICAgcHV0cyAkb3AyICJzZXQgdmFycyh0aWVfY2VsbHMsbWF4X2Zhbm91dCkgW2xpc3QgW2xpbmRleCAkb3B0aW9uIDFdXSIKLSAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBwdXRzICRvcDIgIiNzZXQgdmFycyh0aWVfY2VsbHMsbWF4X2Zhbm91dCkgPGludD4iCi0gICAgICAgICB9Ci0gICAgICB9Ci0gICB9Ci19Ci1wdXRzICRvcDIgIiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iCi1wdXRzICRvcDIgIiMgICAgICAgICAgICAgICAgICAgICBGaWxsZXIgY2VsbCBpbmZvcm1hdGlvbiIKLXB1dHMgJG9wMiAiIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIKLWZvcmVhY2ggb3B0aW9uIFtnZXRGaWxsZXJNb2RlIC1xdWlldF0gewotICAgaWYge1tsaW5kZXggJG9wdGlvbiAwXSA9PSAiY29yZSJ9IHsKLSAgICAgIGlmIHtbbGluZGV4ICRvcHRpb24gMV0gIT0gIiJ9IHsKLSAgICAgICAgIHB1dHMgJG9wMiAic2V0IHZhcnMoZmlsbGVyX2NlbGxzKSBcIltsaW5kZXggJG9wdGlvbiAxXVwiIgotICAgICAgfSBlbHNlIHsKLSAgICAgICAgIHB1dHMgJG9wMiAiI3NldCB2YXJzKGZpbGxlcl9jZWxscykgPGZpbGxlcl9jZWxscz4iCi0gICAgICB9Ci0gICB9Ci19Ci1wdXRzICRvcDIgIiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIgotcHV0cyAkb3AyICIjICAgICAgICAgICAgICAgICAgICAgV2VsbHRhcCBjZWxsIGluZm9ybWF0aW9uIgotcHV0cyAkb3AyICIjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIKLXB1dHMgJG9wMiAiIyAgICB2ZXJpZnlfcnVsZSA6IG1heGltdW0gZGlzdGFuY2UgKGluIG1pY3JvbnMpIGJldHdlZW4gd2VsbHRhcCBjZWxscyBhbmQgc3RhbmRhcmQgY2VsbHMgIgotcHV0cyAkb3AyICIjICAgICAgICAgICAgICAgICAgaW4gbWljcm9ucyIKLXB1dHMgJG9wMiAiIyAgICAgICAgbWF4X2dhcCA6IHNwZWNpZmllcyB0aGUgbWF4aW11bSBkaXN0YW5jZSBmcm9tIHRoZSByaWdodCBlZGdlIG9mIG9uZSB3ZWxsLXRhcCBjZWxsICIKLXB1dHMgJG9wMiAiIyAgICAgICAgICAgICAgICAgIHRvIHRoZSBsZWZ0IGVkZ2Ugb2YgIHRoZSBmb2xsb3dpbmcgd2VsbC10YXAgY2VsbCBpbiB0aGUgc2FtZSByb3ciCi1wdXRzICRvcDIgIiMgIGNlbGxfaW50ZXJ2YWwgOiBzcGVjaWZpZXMgdGhlIG1heGltdW0gZGlzdGFuY2UgZnJvbSB0aGUgY2VudGVyIG9mIG9uZSB3ZWxsLXRhcCBjZWxsICIKLXB1dHMgJG9wMiAiIyAgICAgICAgICAgICAgICAgIHRvIHRoZSBjZW50ZXIgb2YgdGhlIGZvbGxvd2luZyB3ZWxsLXRhcCBjZWxsIGluIHRoZSBzYW1lIHJvdyIKLXB1dHMgJG9wMiAiIyIKLXB1dHMgJG9wMiAiIyBOT1RFOiBtYXhfZ2FwIGFuZCBjZWxsX2ludGVydmFsIHBhcmFtZXRlcnMgYXJlIG11dHVhbGx5IGV4Y2x1c2l2ZSwgdXNlciBoYXMgdG8gZGVmaW5lICIKLXB1dHMgJG9wMiAiIyAgICAgICBvbmx5IG9uZSBvZiB0aGVzZSBwYXJhbWV0ZXJzIHRvIGFkZCB3ZWxsdGFwIGNlbGxzIgotcHV0cyAkb3AyICIjIgotcHV0cyAkb3AyICIjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIKLXB1dHMgJG9wMiAiI3NldCB2YXJzKHdlbGx0YXBzKSAgICAgICAgICAgICAgICAgICAgICAgICA8d2VsbHRhcCBjZWxscz4iCi1wdXRzICRvcDIgIiNzZXQgdmFycyh3ZWxsdGFwcyxjaGVja2VyYm9hcmQpICAgICAgICAgICAgPHRydWUgb3IgZmFsc2U+IgotcHV0cyAkb3AyICIjc2V0IHZhcnMod2VsbHRhcHMsbWF4X2dhcCkgICAgICAgICAgICAgICAgIDxtYXggZ2FwPiIKLXB1dHMgJG9wMiAiI3NldCB2YXJzKHdlbGx0YXBzLGNlbGxfaW50ZXJ2YWwpICAgICAgICAgICA8Y2VsbCBpbnRlcnZhbD4iCi1wdXRzICRvcDIgIiNzZXQgdmFycyh3ZWxsdGFwcyx2ZXJpZnlfcnVsZSkgICAgICAgICAgICAgPGRpc3RhbmNlIGludGVydmFsPiIKLXB1dHMgJG9wMiAiIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iCi1wdXRzICRvcDIgIiMgICAgICAgICAgICAgICAgICAgICAgICAgIEVuZGNhcCBjZWxsIGluZm9ybWF0aW9uIgotcHV0cyAkb3AyICIjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIKLXB1dHMgJG9wMiAiI3NldCB2YXJzKHByZV9lbmRjYXApICAgICAgICAgICAgICAgICAgICAgICA8cHJlIGVuZGNhcCBjZWxsPiIKLXB1dHMgJG9wMiAiI3NldCB2YXJzKHBvc3RfZW5kY2FwKSAgICAgICAgICAgICAgICAgICAgICA8cG9zdCBlbmRjYXAgY2VsbD4iCi1wdXRzICRvcDIgIiIKLWlmIHtbaW5mbyBleGlzdHMgOjpDUEY6OmNwZkNvbW1pdHRlZF0gfHwgW2luZm8gZXhpc3RzIDo6TVNWOjppZWVlMTgwMUxvYWRlZF19IHsKLSAgIHB1dHMgJG9wMSAiIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIgotICAgcHV0cyAkb3AxICIjICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMUCBGbG93IE9wdGlvbnMiCi0gICBwdXRzICRvcDEgIiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iCi0gICBzZXQgbHBmaWxlIHt9Ci0gICBpZiB7W2luZm8gZXhpc3RzIDo6Q1BGOjpjcGZDb21taXR0ZWRdICYmICQ6OkNQRjo6Y3BmQ29tbWl0dGVkICYmCi0gICAgICAgW2luZm8gZXhpc3RzIDo6Q1BGOjpjcGZfZmlsZV0gJiYgJDo6Q1BGOjpjcGZfZmlsZSAhPSAiIn0gewotICAgICAgc2V0IGxwZm9ybWF0IGNwZgotICAgICAgc2V0IGxwZmlsZSBnZW5fc2V0dXAuW3BpZF0uJGxwZm9ybWF0OyAjICQ6OkNQRjo6Y3BmX2ZpbGUgaXMgbm90IHVzZWQgZGlyZWN0bHkKLSAgIGlmIHtbbGluZGV4IFtzcGxpdCAkdmFycyh2ZXJzaW9uKSAiLiJdICAwXSA8IDE1fSB7Ci0gICAgICBzYXZlQ1BGICRscGZpbGUKLSAgIH0gZWxzZSB7Ci0gICAgICB3cml0ZV9wb3dlcl9pbnRlbnQgLWNwZiAkbHBmaWxlCi0gICB9IAotICAgfSBlbHNlaWYge1tpbmZvIGV4aXN0cyA6Ok1TVjo6aWVlZTE4MDFMb2FkZWRdICYmICQ6Ok1TVjo6aWVlZTE4MDFMb2FkZWQgJiYKLSAgICAgICAgICAgICBbaW5mbyBleGlzdHMgOjpNU1ZfVVBGOjp1cGZfZmlsZV19IHsKLSAgICAgIHNldCBscGZpbGUgW2ZpbGUgbm9ybWFsaXplICQ6Ok1TVl9VUEY6OnVwZl9maWxlXQotICAgICAgc2V0IGxwZm9ybWF0IGllZWUxODAxCi0gICB9Ci0KLSAgIGlmIHskbHBmaWxlID09IHt9fSB7Ci0gICAgICBwdXRzICJXQVJOSU5HOiBDYW5ub3QgZGV0ZXJtaW5lIENQRiBvciBJRUVFIDE4MDEgZmlsZSAuLi4iCi0gICB9IGVsc2UgewotICAgICAgc2V0IHZhcnMoJHtscGZvcm1hdH1fZmlsZSkgJGxwZmlsZQotICAgICBwdXRzICRvcDEgInNldCB2YXJzKCR7bHBmb3JtYXR9X2ZpbGUpICAgICAgIFwiJHZhcnMoJHtscGZvcm1hdH1fZmlsZSlcIiIKLSAgICAgIHB1dHMgJG9wMSAiIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIKLSAgICAgIHB1dHMgJG9wMSAiIyBEZWZpbmUgdGhlIGZvbGxvd2luZyB0byBzZWxlY3RpdmVseSBjb21taXQgc2VjdGlvbnMgb2YgdGhlIFtzdHJpbmcgdG91cHBlciAkbHBmb3JtYXRdIGZpbGUiCi0gICAgICBwdXRzICRvcDEgIiNzZXQgdmFycygke2xwZm9ybWF0fV9wb3dlcl9kb21haW4pICAgICA8dHJ1ZSB8IGZhbHNlPiIKLSAgICAgIHB1dHMgJG9wMSAiI3NldCB2YXJzKCR7bHBmb3JtYXR9X3Bvd2VyX3N3aXRjaCkgICAgIDx0cnVlIHwgZmFsc2U+IgotICAgICAgcHV0cyAkb3AxICIjc2V0IHZhcnMoJHtscGZvcm1hdH1faXNvbGF0aW9uKSAgICAgICAgPHRydWUgfCBmYWxzZT4iCi0gICAgICBwdXRzICRvcDEgIiNzZXQgdmFycygke2xwZm9ybWF0fV9sZXZlbF9zaGlmdGVyKSAgICA8dHJ1ZSB8IGZhbHNlPiIKLSAgICAgIHB1dHMgJG9wMSAiI3NldCB2YXJzKCR7bHBmb3JtYXR9X3N0YXRlX3JldGVudGlvbikgIDx0cnVlIHwgZmFsc2U+IgotICAgICAgcHV0cyAkb3AxICIjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIgotICAgICAgcHV0cyAkb3AxICIjc2V0IHZhcnMoJHtscGZvcm1hdH1fa2VlcF9yb3dzKSAgICAgICAgPHRydWUgfCBmYWxzZT4iCi0gICAgICBwdXRzICRvcDEgIiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIgotICAgICAgcHV0cyAkb3AxICIjIFRoZSB2YXJzKHBvd2VyX2RvbWFpbnMpIGlzIG9wdGlvbmFsLiAgSWYgbm90IGRlZmluZWQsIHRoZSBwb3dlciIgCi0gICAgICBwdXRzICRvcDEgIiMgcG93ZXIgZG9tYWluIGxpc3Qgd2lsbCBiZSBwaWNrZWQgdXAgYXV0b21hdGljYWxseSIKLSAgICAgIHB1dHMgJG9wMSAiIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iCi0gICAgICBzZXQgcG93ZXJfZG9tYWlucyBbbGlzdF0KLSAgICAgIGRiRm9yRWFjaFBvd2VyRG9tYWluIFtkYmdIZWFkXSBwZCB7Ci0gICAgICAgICBsYXBwZW5kIHBvd2VyX2RvbWFpbnMgW2RiUG93ZXJEb21haW5OYW1lICRwZF0KLSAgICAgIH0KLSAgICAgIGlmIHskcG93ZXJfZG9tYWlucyAhPSAiIn0gewotICAgICAgICAgcHV0cyAkb3AxICJzZXQgdmFycyhwb3dlcl9kb21haW5zKSBcIiRwb3dlcl9kb21haW5zXCIiCi0gICAgICB9IGVsc2UgewotICAgICAgICAgcHV0cyAkb3AxICIjc2V0IHZhcnMocG93ZXJfZG9tYWlucykgICAgICAgICAgICAgICAgICAgICAgIDxsaXN0IG9mIHBvd2VyIGRvbWFpbnM+IgotICAgICAgfQotICAgICAgcHV0cyAkb3AxICIjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIKLSAgICAgIHB1dHMgJG9wMSAiIyBBZGRpdGlvbmFsIG9wdGlvbmFsIGxvdyBwb3dlciB2YXJpYWJsZXMgY2FuIGJlIGRlZmluZWQgaW4gdGhlIGxwX2NvbmZpZy50Y2wgZmlsZS4iCi0gICAgICBwdXRzICRvcDEgIiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIgotICAgfQotfQotcHV0cyAkb3AyICIiCi1wdXRzICRvcDIgIiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIgotcHV0cyAkb3AyICIjICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENsb2NrIFRyZWUgT3B0aW9ucyIKLXB1dHMgJG9wMiAiIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iCi1wdXRzICRvcDIgIiNzZXQgdmFycyhyb3V0ZV9jbG9ja19uZXRzKSA8dHJ1ZSB8IGZhbHNlPiIKLXB1dHMgJG9wMiAiI3NldCB2YXJzKGN0c19jZWxscykgICAgICAgIDxsaXN0IG9mIGNsb2NrIGJ1ZmZlcnM+IgotcHV0cyAkb3AyICIjc2V0IHZhcnMoY2xvY2tfZ2F0ZV9jZWxscykgPGxpc3Qgb2YgY2xvY2sgZ2F0aW5nIGNlbGxzPiIKLXB1dHMgJG9wMiAiI3NldCB2YXJzKGNsb2NrX2dhdGVfY2xvbmUpIDx0cnVlIHwgZmFsc2U+IgotcHV0cyAkb3AyICIjc2V0IHZhcnMoY2xvY2tfZWNvKSAgICAgICAgPHByZV9yb3V0ZSB8IHBvc3Rfcm91dGUgfCBib3RoIHwgbm9uZT4iCi1wdXRzICRvcDIgIiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIgotcHV0cyAkb3AyICIjc2V0IHZhcnMoY2xrX3RyZWVfdG9wX2xheWVyKSAgICAgPHRyZWVfdG9wX3ByZWZlcnJlZF9sYXllcj4iCi1wdXRzICRvcDIgIiNzZXQgdmFycyhjbGtfdHJlZV9ib3R0b21fbGF5ZXIpICA8dHJlZV9ib3R0b21fcHJlZmVycmVkX2xheWVyPiAiCi1wdXRzICRvcDIgIiNzZXQgdmFycyhjbGtfdHJlZV9uZHIpICAgICAgICAgICA8dHJlZV9ub25fZGVmYXVsdF9ydWxlPiIKLXB1dHMgJG9wMiAiI3NldCB2YXJzKGNsa190cmVlX3NoaWVsZF9uZXQpICAgIDx0cmVlX3NoaWVsZF9uZXQ+ICIKLXB1dHMgJG9wMiAiI3NldCB2YXJzKGNsa19sZWFmX3RvcF9sYXllcikgICAgIDxsZWFmX3RvcF9wcmVmZXJyZWRfbGF5ZXI+IgotcHV0cyAkb3AyICIjc2V0IHZhcnMoY2xrX2xlYWZfYm90dG9tX2xheWVyKSAgPGxlYWZfYm90dG9tX3ByZWZlcnJlZF9sYXllcj4iCi1wdXRzICRvcDIgIiNzZXQgdmFycyhjdHNfbGVhZl9uZHIpICAgICAgICAgICA8bGVhZl9ub25fZGVmYXVsdF9sYXllcj4iCi1wdXRzICRvcDIgIiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIgotcHV0cyAkb3AyICIjIEFkZGl0aW9uYWwgdmFyaWFibGVzIHRvIGVuYWJsZS9zdXBwb3J0IGNjb3B0IgotcHV0cyAkb3AyICIjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIKLXB1dHMgJG9wMiAiI3NldCB2YXJzKGN0c19lbmdpbmUpIDxjbG9ja0Rlc2lnbiB8IGNjb3B0RGVzaWduPiIKLXB1dHMgJG9wMiAiI3NldCB2YXJzKGN0c19idWZmZXJfY2VsbHMpIDxsaXN0IG9mIGJ1ZmZlcnM+IgotcHV0cyAkb3AyICIjc2V0IHZhcnMoY3RzX2ludmVydGVyX2NlbGxzKSA8bGlzdCBvZiBpbnZlcnRlcnM+IgotcHV0cyAkb3AyICIjc2V0IHZhcnMoY3RzX3VzZV9pbnZlcnRlcnMpIDx0cnVlIHwgZmFsc2U+IgotcHV0cyAkb3AyICIjc2V0IHZhcnMoY3RzX2lvX29wdCkgPG9uIHNlY29uZGFyeSBvZmY+IgotI3B1dHMgJG9wMiAiI3NldCB2YXJzKGNjb3B0X2ludGVncmF0aW9uKSA8bmF0aXZlIHwgc2NyaXB0ZWQ+IgotI3B1dHMgJG9wMiAiI3NldCB2YXJzKGNjb3B0X2V4ZWN1dGFibGUpIDxwYXRoIHRvIGNjb3B0IGV4ZWN1dGFibGU+IgotCi1wdXRzICRvcDIgIiIKLXB1dHMgJG9wMiAiIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMiCi1wdXRzICRvcDIgIiMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPcHRpbWl6YXRpb24gT3B0aW9ucyIKLXB1dHMgJG9wMiAiIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIKLXB1dHMgJG9wMiAiIyBGb3IgZGlmZmljdWx0IHRpbWluZyBkZXNpZ25zLCAnc2V0IHZhcnMoaGlnaF90aW1pbmdfZWZmb3J0KSB0cnVlJyIKLXB1dHMgJG9wMiAiIyBUaGlzIGVuYWJsZXMgYSB2YXJpZXR5IG9mIG9wdGlvbnMgdGhyb3VnaG91dCB0aGUgZmxvdyBmb3Igb3B0aW1hbCIKLXB1dHMgJG9wMiAiIyBRb1IgYXQgdGhlIGV4cGVuc2Ugb2YgcnVudGltZSIKLXB1dHMgJG9wMiAiIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIKLXB1dHMgJG9wMiAiI3NldCB2YXJzKGhpZ2hfdGltaW5nX2VmZm9ydCkgICAgICAgICAgICAgPHRydWUgfCBmYWxzZT4iCi1wdXRzICRvcDIgIiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iCi0jcHV0cyAkb3AyICIjc2V0IHZhcnMoY3JpdGljYWxfcmFuZ2UpICAgICAgICAgICAgICAgICA8ZmxvYXQ+IgotcHV0cyAkb3AyICIjc2V0IHZhcnMocHJlc2VydmVfYXNzZXJ0aW9ucykgICAgICAgICAgICA8dHJ1ZSB8IGZhbHNlPiIgCi1wdXRzICRvcDIgIiNzZXQgdmFycyhjbG9ja19nYXRlX2F3YXJlX29wdCkgICAgICAgICAgIDx0cnVlIHwgZmFsc2U+IgotI3B1dHMgJG9wMiAiI3NldCB2YXJzKHBvd2VyX2VmZm9ydCkgICAgICAgICAgICAgICAgICAgPG5vbmUgfCBsb3cgfCBoaWdoPiIKLSNwdXRzICRvcDIgIiNzZXQgdmFycyhwb3dlcl9yYXRpbykgICAgICAgICAgICAgICAgICAgIDxmbG9hdD4iCi1wdXRzICRvcDIgIiNzZXQgdmFycyhmaXhfaG9sZF9hbGxvd190bnNfZGVncmFkYXRpb24pIDx0cnVlIHwgZmFsc2U+IgotcHV0cyAkb3AyICIjc2V0IHZhcnModXNlZnVsX3NrZXcpICAgICAgICAgICAgICAgICAgICA8dHJ1ZSB8IGZhbHNlPiIKLSNwdXRzICRvcDIgIiNzZXQgdmFycyhza2V3X2J1ZmZlcnMpICAgICAgICAgICAgICAgICAgIDx0cnVlIHwgZmFsc2U+IgotcHV0cyAkb3AyICIjc2V0IHZhcnMoZml4X2hvbGQpICAgICAgICAgICAgICAgICAgICAgICA8ZmFsc2UgfCBwb3N0Y3RzIHwgcG9zdHJvdXRlID4iCi1wdXRzICRvcDIgIiNzZXQgdmFycyhmaXhfaG9sZF9pZ25vcmVfaW9zKSAgICAgICAgICAgIDx0cnVlIHwgZmFsc2U+IgotcHV0cyAkb3AyICIjc2V0IHZhcnMoZGVsYXlfY2VsbHMpICAgICAgICAgICAgICAgICAgICA8bGlzdCBvZiBkZWxheSBjZWxscz4iCi1wdXRzICRvcDIgIiNzZXQgdmFycyhkb250X3VzZV9saXN0KSAgICAgICAgICAgICAgICAgIDxsaXN0IG9mIGNlbGxzPiIKLXB1dHMgJG9wMiAiI3NldCB2YXJzKGRvbnRfdXNlX2ZpbGUpICAgICAgICAgICAgICAgICAgPGZpbGUgb2YgZG9udCB1c2UgY29tbWFuZHM+IgotcHV0cyAkb3AyICIjc2V0IHZhcnModXNlX2xpc3QpICAgICAgICAgICAgICAgICAgICAgICA8bGlzdCBvZiBjZWxscz4iCi1wdXRzICRvcDIgIiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iCi1mb3JlYWNoIG9wdGlvbiBbZ2V0T3B0TW9kZSAtcXVpZXRdIHsKLSAgIGlmIHtbbGluZGV4ICRvcHRpb24gMF0gPT0gImNyaXRpY2FsUmFuZ2UifSB7Ci0gICAgICBwdXRzICRvcDIgIiNzZXQgdmFycyhjcml0aWNhbF9yYW5nZSkgICAgICAgICAgICAgICAgIFtsaW5kZXggJG9wdGlvbiAxXSIKLSAgIH0KLSAgIGlmIHtbbGluZGV4ICRvcHRpb24gMF0gPT0gInByZXNlcnZlQXNzZXJ0aW9ucyJ9IHsKLSAgICAgIHB1dHMgJG9wMiAic2V0IHZhcnMocHJlc2VydmVfYXNzZXJ0aW9ucykgICAgICAgICAgICBbbGluZGV4ICRvcHRpb24gMV0iCi0gICB9IAotIyAgIGlmIHtbbGluZGV4ICRvcHRpb24gMF0gPT0gImxlYWthZ2VQb3dlckVmZm9ydCJ9IHsKLSMgICAgICBwdXRzICRvcDIgInNldCB2YXJzKGxlYWthZ2VfcG93ZXJfZWZmb3J0KSAgICAgICAgICAgW2xpbmRleCAkb3B0aW9uIDFdIgotIyAgIH0KLSMgICBpZiB7W2xpbmRleCAkb3B0aW9uIDBdID09ICJkeW5hbWljUG93ZXJFZmZvcnQifSB7Ci0jICAgICAgcHV0cyAkb3AyICJzZXQgdmFycyhkeW5hbWljX3Bvd2VyX2VmZm9ydCkgICAgICAgICAgIFtsaW5kZXggJG9wdGlvbiAxXSIKLSMgICB9Ci0gICBpZiB7W2xpbmRleCAkb3B0aW9uIDBdID09ICJmaXhIb2xkQWxsb3dTZXR1cFRuc0RlZ3JhZGUifSB7Ci0gICAgICBwdXRzICRvcDIgInNldCB2YXJzKGZpeF9ob2xkX2FsbG93X3Ruc19kZWdyYWRhdGlvbikgW2xpbmRleCAkb3B0aW9uIDFdIgotICAgfQotICAgaWYge1tsaW5kZXggJG9wdGlvbiAwXSA9PSAiY2xrR2F0ZUF3YXJlIn0gewotICAgICAgcHV0cyAkb3AyICJzZXQgdmFycyhjbG9ja19nYXRlX2F3YXJlX29wdCkgICAgICAgICAgIFtsaW5kZXggJG9wdGlvbiAxXSIKLSAgIH0KLSAgIGlmIHtbbGluZGV4ICRvcHRpb24gMF0gPT0gInVzZWZ1bFNrZXcifSB7Ci0gICAgICBwdXRzICRvcDIgInNldCB2YXJzKHVzZWZ1bF9za2V3KSAgICAgICAgICAgICAgICAgICAgW2xpbmRleCAkb3B0aW9uIDFdIgotICAgfQotfQotI2ZvcmVhY2ggb3B0aW9uIFtnZXRVc2VmdWxTa2V3TW9kZSAtcXVpZXRdIHsKLSMgICBpZiB7W2xpbmRleCAkb3B0aW9uIDBdID09ICJ1c2VDZWxscyJ9IHsKLSMgICAgICBpZiB7W2xpbmRleCAkb3B0aW9uIDFdICE9ICIifSB7Ci0jICAgICAgICAgcHV0cyAkb3AyICJzZXQgdmFycyhza2V3X2J1ZmZlcnMpIFwiXFwiCi0jICAgICAgICAgZm9yZWFjaCBjZWxsIFtsaW5kZXggJG9wdGlvbiAxXSB7Ci0jICAgICAgICAgICAgcHV0cyAkb3AyICIgICAkY2VsbCBcXCIKLSMgICAgICAgICB9Ci0jICAgICAgICAgcHV0cyAkb3AyICJcIiIgCi0jICAgICAgfSAKLSMgICB9Ci0jfQotY2F0Y2gge3NldCBmb28gW2dldF9saW5lX21hdGNoICJzZXQgZG9uJ3QgdXNlIGJ5IFVzZXIiIFtnZXRMb2dGaWxlTmFtZV1dfQotaWYge1tpbmZvIGV4aXN0cyBmb29dICYmICgkZm9vICE9ICIiKSB9IHsKLSAgIHB1dHMgJG9wMiAic2V0IHZhcnMoZG9udF91c2VfbGlzdCkgXCJcXCIKLSAgIGZvcmVhY2ggbGluZSBbZ2V0X2xpbmVfbWF0Y2ggInNldCBkb24ndCB1c2UgYnkgVXNlciIgW2dldExvZ0ZpbGVOYW1lXSAwXSB7Ci0jICAgICAgbGFwcGVuZCB2YXJzKGRvbnRfdXNlX2xpc3QpIFtsaW5kZXggW3NwbGl0IFtsaW5kZXggJGxpbmUgMF0gIi8iXSAxXQotICAgICAgIHB1dHMgJG9wMiAiICAgW2xpbmRleCBbc3BsaXQgW2xpbmRleCAkbGluZSAwXSAiLyJdIDFdIFxcIgotICAgfQotICAgcHV0cyAkb3AyICJcIiIKLX0KLXB1dHMgJG9wMiAiIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMiCi1wdXRzICRvcDIgIiMgICAgICAgICAgICAgICAgICAgICAgICAgICAgUG93ZXIgQW5hbHlzaXMgT3B0aW9ucyIKLXB1dHMgJG9wMiAiIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iCi1wdXRzICRvcDIgIiNzZXQgdmFycyhhY3Rpdml0eV9maWxlKSAgICAgICAgPGFjdGl2aXR5IGZpbGU+IgotcHV0cyAkb3AyICIjc2V0IHZhcnMoYWN0aXZpdHlfZmlsZV9mb3JtYXQpIDxUQ0YgfCBTQUYgfCBWQ0Q+IgotcHV0cyAkb3AyICIjc2V0IHZhcnMocmVwb3J0X3Bvd2VyKSAgICAgICAgIDx0cnVlIG9yIGZhbHNlPiIKLXB1dHMgJG9wMiAiI3NldCB2YXJzKHBvd2VyX2FuYWx5c2lzX3ZpZXcpICA8cG93ZXIgYW5hbHlzaXMgdmlldz4iCi1wdXRzICRvcDIgIiIKLXB1dHMgJG9wMiAiIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMiCi1wdXRzICRvcDIgIiMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOYW5vcm91dGUgT3B0aW9ucyIKLXB1dHMgJG9wMiAiIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iCi1wdXRzICRvcDIgIiNzZXQgdmFycyhtdWx0aV9jdXRfZWZmb3J0KSAgICAgICAgPGxvdyB8IG1lZGl1bSB8IGhpZ2g+IgotcHV0cyAkb3AyICIjc2V0IHZhcnMoYW50ZW5uYV9kaW9kZSkgICAgICAgICAgIDxjZWxsIG5hbWU+IgotcHV0cyAkb3AyICIjc2V0IHZhcnMobGl0aG9fZHJpdmVuX3JvdXRpbmcpICAgIDx0cnVlIHwgZmFsc2U+IgotcHV0cyAkb3AyICIjc2V0IHZhcnModmVyaWZ5X2xpdGhvKSAgICAgICAgICAgIDx0cnVlIHwgZmFsc2U+IgotcHV0cyAkb3AyICIjc2V0IHZhcnMobHBhX3RlY2hfZmlsZSkgICAgICAgICAgIDxmaWxlIG5hbWU+IgotcHV0cyAkb3AyICIjc2V0IHZhcnMoZml4X2xpdGhvKSAgICAgICAgICAgICAgIDx0cnVlIHwgZmFsc2U+IgotcHV0cyAkb3AyICIjc2V0IHZhcnMobHBhX2NvbmZfZmlsZSkgICAgICAgICAgIDxmaWxlIG5hbWU+IgotcHV0cyAkb3AyICIjc2V0IHZhcnMocG9zdHJvdXRlX3NwcmVhZF93aXJlcykgIDx0cnVlIHwgZmFsc2U+IgotcHV0cyAkb3AyICIjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIKLWZvcmVhY2ggb3B0aW9uIFtnZXROYW5vUm91dGVNb2RlIC1xdWlldF0gewotICAgaWYge1tsaW5kZXggJG9wdGlvbiAwXSA9PSAiZHJvdXRlVXNlTXVsdGlDdXRWaWFFZmZvcnQifSB7Ci0gICAgICBwdXRzICRvcDIgInNldCB2YXJzKG11bHRpX2N1dF9lZmZvcnQpICAgICBbbGluZGV4ICRvcHRpb24gMV0iCi0gICB9Ci0gICBpZiB7W2xpbmRleCAkb3B0aW9uIDBdID09ICJyb3V0ZVdpdGhMaXRob0RyaXZlbiJ9IHsKLSAgICAgIHB1dHMgJG9wMiAic2V0IHZhcnMobGl0aG9fZHJpdmVuX3JvdXRpbmcpIFtsaW5kZXggJG9wdGlvbiAxXSIKLSAgIH0KLX0KLQotcHV0cyAkb3AyICIjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyIKLXB1dHMgJG9wMiAiIyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEV4dHJhY3Rpb24gT3B0aW9ucyIKLXB1dHMgJG9wMiAiIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iCi1wdXRzICRvcDIgIiNzZXQgdmFycyhjb3VwbGluZ19jX3RocmVzaCkgICAgICAgPGZsb2F0PiIKLXB1dHMgJG9wMiAiI3NldCB2YXJzKHJlbGF0aXZlX2NfdGhyZXNoKSAgICAgICA8ZmxvYXQ+IgotcHV0cyAkb3AyICIjc2V0IHZhcnModG90YWxfY190aHJlc2gpICAgICAgICAgIDxmbG9hdD4iCi1wdXRzICRvcDIgIiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIgotZm9yZWFjaCBvcHRpb24gW2dldEV4dHJhY3RSQ01vZGUgLXF1aWV0XSB7Ci0gICBpZiB7W2xpbmRleCAkb3B0aW9uIDBdID09ICJjb3VwbGluZ19jX3RoIn0gewotICAgICAgcHV0cyAkb3AyICIjc2V0IHZhcnMoY291cGxpbmdfY190aHJlc2gpICAgICAgIFtsaW5kZXggJG9wdGlvbiAxXSIKLSAgIH0KLSAgIGlmIHtbbGluZGV4ICRvcHRpb24gMF0gPT0gInJlbGF0aXZlX2NfdGgifSB7Ci0gICAgICBwdXRzICRvcDIgIiNzZXQgdmFycyhyZWxhdGl2ZV9jX3RocmVzaCkgICAgICAgW2xpbmRleCAkb3B0aW9uIDFdIgotICAgfQotICAgaWYge1tsaW5kZXggJG9wdGlvbiAwXSA9PSAidG90YWxfY190aCJ9IHsKLSAgICAgIHB1dHMgJG9wMiAiI3NldCB2YXJzKHRvdGFsX2NfdGhyZXNoKSAgICAgICAgICBbbGluZGV4ICRvcHRpb24gMV0iCi0gICB9Ci19Ci1wdXRzICRvcDIgIiMgU2lnbm9mZiBleHRyYWN0aW9uIHJlcXVpcmVzIHFyY190ZWNoIGZpbGU7IGlmIHlvdSBkb250IGhhdmUgb25lLCBwbGVhc2Ugc3dpdGNoIHRvIGVmZm9ydCBsb3cuIgotcHV0cyAkb3AyICIjIEJ1dCBrZWVwIGluIG1pbmQsIGVmZm9ydCBsb3cgaXMgTk9UIGFsbG93ZWQgZm9yIHByb2Nlc3Mgbm9kZXMgMzJubSBhbmQgYmVsb3ciCi1wdXRzICRvcDIgIiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIgotcHV0cyAkb3AyICIjc2V0IHZhcnMocG9zdHJvdXRlX2V4dHJhY3Rpb25fZWZmb3J0KSA8bG93IHwgbWVkaXVtIHwgaGlnaD4iCi1wdXRzICRvcDIgIiNzZXQgdmFycyhzaWdub2ZmX2V4dHJhY3Rpb25fZWZmb3J0KSAgIDxsb3cgfCBtZWRpdW0gfCBoaWdoIHwgc2lnbm9mZj4iCi1wdXRzICRvcDIgIiIKLXB1dHMgJG9wMiAiIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMiCi1wdXRzICRvcDIgIiMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTaWduYWwgSW50ZWdyaXR5IE9wdGlvbnMiCi1wdXRzICRvcDIgIiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIgotcHV0cyAkb3AyICIjc2V0IHZhcnMoZGVsdGFfZGVsYXlfdGhyZXNob2xkKSAgPGZsb2F0PiAoaW4gbmFub3NlY29uZHMpIgotcHV0cyAkb3AyICIjc2V0IHZhcnMoY2VsdGljX3NldHRpbmdzKSAgICAgICAgPHN0cmluZz4iCi1wdXRzICRvcDIgIiNzZXQgdmFycyhzaV9hbmFseXNpc190eXBlKSAgICAgICA8ZGVmYXVsdCB8IHBlc3NpbWlzdGljPiIKLXB1dHMgJG9wMiAiI3NldCB2YXJzKGFjY2VwdGFibGVfd25zKSAgICAgICAgIDxmbG9hdD4iCi1wdXRzICRvcDIgIiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIgotZm9yZWFjaCBvcHRpb24gW2dldFNJTW9kZSAtcXVpZXRdIHsKLSAgIGlmIHtbbGluZGV4ICRvcHRpb24gMF0gPT0gImRlbHRhRGVsYXlUaHJlc2hvbGQifSB7Ci0gICAgICBwdXRzICRvcDIgInNldCB2YXJzKGRlbHRhX2RlbGF5X3RocmVzaG9sZCkgW2xpbmRleCAkb3B0aW9uIDFdIgotICAgfQotICAgaWYge1tsaW5kZXggJG9wdGlvbiAwXSA9PSAiaW5zQ2VsdElDUHJlVENMIn0gewotICAgICAgcHV0cyAkb3AyICJzZXQgdmFycyhjZWx0aWNfc2V0dGluZ3MpICAgICAgIFtsaW5kZXggJG9wdGlvbiAxXSIKLSAgIH0KLSAgIGlmIHtbbGluZGV4ICRvcHRpb24gMF0gPT0gImFuYWx5c2lzVHlwZSJ9IHsKLSAgICAgIHB1dHMgJG9wMiAic2V0IHZhcnMoc2lfYW5hbHlzaXNfdHlwZSkgICAgICAgW2xpbmRleCAkb3B0aW9uIDFdIgotICAgfQotfQotCi1wdXRzICRvcDIgIiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIgotcHV0cyAkb3AyICIjIE9wdGlvbmFsbHkgZGVmaW5lIHRoZSBmb2xsb3dpbmcgd2hlbiBhcHBsaWNhYmxlIgotcHV0cyAkb3AyICIjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIKLXB1dHMgJG9wMiAiI3NldCB2YXJzKGFzc2lnbl9idWZmZXIpICAgICB7MSAtYnVmZmVyIDxidWZmZXIgbmFtZT59IgotcHV0cyAkb3AyICIjc2V0IHZhcnMoYnVmZmVyX3RpZV9hc3NpZ24pIDx0cnVlIHwgZmFsc2U+IgotcHV0cyAkb3AyICIjc2V0IHZhcnMoanRhZ19yb3dzKSAgICAgICAgIDxudW1iZXIgb2Ygcm93cyBmb3IganRhZyBwbGFjZW1lbnQ+IgotcHV0cyAkb3AyICIjc2V0IHZhcnMoanRhZ19jZWxscykgICAgICAgIDxsaXN0IG9mIGp0YWcgY2VsbHM+IgotcHV0cyAkb3AyICIjc2V0IHZhcnMoc3BhcmVfY2VsbHMpICAgICAgIDxsaXN0IG9mIHNwYXJlIGNlbGxzIGluc3RhbmNlcz4iCi0KLQotcHV0cyAkb3AyICIjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyIKLXB1dHMgJG9wMiAiIyBCZWxvdyBhcmUgdGhlIGF2YWlsYWJsZSBwbHVnLWlucyBmb3IgdGhlIGZsYXQgZm91bmRhdGlvbiBmbG93LiAgRWFjaCAiCi1wdXRzICRvcDIgIiMgc2hvdWxkIHBvaW50IHRvIGEgZmlsZS4gSWYgdGhlIGZpbGUgZG9lc24ndCBleGlzdCwgdGhlIGZsb3cgd2lsbCBwcmludCIKLXB1dHMgJG9wMiAiIyBhIHdhcm5pbmcgYW4gY29udGludWUuICBUaGUgcGxhY2VfdGNsIGFuZCBjdHNfdGNsIGFyZSB1bmlxdWUgaW4gdGhhdCAiCi1wdXRzICRvcDIgIiMgdGhleSBSRVBMQUNFIHRoZSBwbGFjZURlc2lnbiBhbmQgY2xvY2tEZXNpZ24gY2FsbHMsIHJlc3BlY3RpdmVseS4iCi1wdXRzICRvcDIgIiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIgotcHV0cyAkb3AyICJzZXQgdmFycyhhbHdheXNfc291cmNlX3RjbCkgICAgICAgICAgIFwkdmFycyhwbHVnX2RpcikvYWx3YXlzX3NvdXJjZS50Y2wiCi1wdXRzICRvcDIgInNldCB2YXJzKGZpbmFsX2Fsd2F5c19zb3VyY2VfdGNsKSAgICAgXCR2YXJzKHBsdWdfZGlyKS9maW5hbF9hbHdheXNfc291cmNlLnRjbCIKLXB1dHMgJG9wMiAic2V0IHZhcnMocHJlX2luaXRfdGNsKSAgICAgICAgICAgICAgICBcJHZhcnMocGx1Z19kaXIpL3ByZV9pbml0LnRjbCIKLXB1dHMgJG9wMiAic2V0IHZhcnMocG9zdF9pbml0X3RjbCkgICAgICAgICAgICAgICBcJHZhcnMocGx1Z19kaXIpL3Bvc3RfaW5pdC50Y2wiCi1wdXRzICRvcDIgInNldCB2YXJzKHByZV9wbGFjZV90Y2wpICAgICAgICAgICAgICAgXCR2YXJzKHBsdWdfZGlyKS9wcmVfcGxhY2UudGNsIgotcHV0cyAkb3AyICIjc2V0IHZhcnMocGxhY2VfdGNsKSAgICAgICAgICAgICAgICAgIFwkdmFycyhwbHVnX2RpcikvcGxhY2UudGNsIgotcHV0cyAkb3AyICJzZXQgdmFycyhwb3N0X3BsYWNlX3RjbCkgICAgICAgICAgICAgIFwkdmFycyhwbHVnX2RpcikvcG9zdF9wbGFjZS50Y2wiCi1wdXRzICRvcDIgInNldCB2YXJzKHByZV9wcmVjdHNfdGNsKSAgICAgICAgICAgICAgXCR2YXJzKHBsdWdfZGlyKS9wcmVfcHJlY3RzLnRjbCIKLXB1dHMgJG9wMiAic2V0IHZhcnMocG9zdF9wcmVjdHNfdGNsKSAgICAgICAgICAgICBcJHZhcnMocGx1Z19kaXIpL3Bvc3RfcHJlY3RzLnRjbCIKLXB1dHMgJG9wMiAic2V0IHZhcnMocHJlX2N0c190Y2wpICAgICAgICAgICAgICAgICBcJHZhcnMocGx1Z19kaXIpL3ByZV9jdHMudGNsIgotcHV0cyAkb3AyICIjc2V0IHZhcnMoY3RzX3RjbCkgICAgICAgICAgICAgICAgICAgIFwkdmFycyhwbHVnX2RpcikvY3RzLnRjbCIKLXB1dHMgJG9wMiAic2V0IHZhcnMocG9zdF9jdHNfdGNsKSAgICAgICAgICAgICAgICBcJHZhcnMocGx1Z19kaXIpL3Bvc3RfY3RzLnRjbCIKLXB1dHMgJG9wMiAic2V0IHZhcnMocHJlX3Bvc3RjdHNfdGNsKSAgICAgICAgICAgICBcJHZhcnMocGx1Z19kaXIpL3ByZV9wb3N0Y3RzLnRjbCIKLXB1dHMgJG9wMiAic2V0IHZhcnMocG9zdF9wb3N0Y3RzX3RjbCkgICAgICAgICAgICBcJHZhcnMocGx1Z19kaXIpL3Bvc3RfcG9zdGN0cy50Y2wiCi1wdXRzICRvcDIgInNldCB2YXJzKHByZV9yb3V0ZV90Y2wpICAgICAgICAgICAgICAgXCR2YXJzKHBsdWdfZGlyKS9wcmVfcm91dGUudGNsIgotcHV0cyAkb3AyICJzZXQgdmFycyhwb3N0X3JvdXRlX3RjbCkgICAgICAgICAgICAgIFwkdmFycyhwbHVnX2RpcikvcG9zdF9yb3V0ZS50Y2wiCi1wdXRzICRvcDIgInNldCB2YXJzKHByZV9wb3N0Y3RzX2hvbGRfdGNsKSAgICAgICAgXCR2YXJzKHBsdWdfZGlyKS9wcmVfcG9zdGN0c19ob2xkLnRjbCIKLXB1dHMgJG9wMiAic2V0IHZhcnMocG9zdF9wb3N0Y3RzX2hvbGRfdGNsKSAgICAgICBcJHZhcnMocGx1Z19kaXIpL3Bvc3RfcG9zdGN0c19ob2xkLnRjbCIKLXB1dHMgJG9wMiAic2V0IHZhcnMocHJlX3Bvc3Ryb3V0ZV90Y2wpICAgICAgICAgICBcJHZhcnMocGx1Z19kaXIpL3ByZV9wb3N0cm91dGUudGNsIgotcHV0cyAkb3AyICJzZXQgdmFycyhwb3N0X3Bvc3Ryb3V0ZV90Y2wpICAgICAgICAgIFwkdmFycyhwbHVnX2RpcikvcG9zdF9wb3N0cm91dGUudGNsIgotcHV0cyAkb3AyICJzZXQgdmFycyhwcmVfcG9zdHJvdXRlX2hvbGRfdGNsKSAgICAgIFwkdmFycyhwbHVnX2RpcikvcHJlX3Bvc3Ryb3V0ZV9ob2xkLnRjbCIKLXB1dHMgJG9wMiAic2V0IHZhcnMocG9zdF9wb3N0cm91dGVfaG9sZF90Y2wpICAgICBcJHZhcnMocGx1Z19kaXIpL3Bvc3RfcG9zdHJvdXRlX2hvbGQudGNsIgotcHV0cyAkb3AyICJzZXQgdmFycyhwcmVfc2lnbm9mZl90Y2wpICAgICAgICAgICAgIFwkdmFycyhwbHVnX2RpcikvcHJlX3NpZ25vZmYudGNsIgotcHV0cyAkb3AyICJzZXQgdmFycyhwb3N0X3NpZ25vZmZfdGNsKSAgICAgICAgICAgIFwkdmFycyhwbHVnX2RpcikvcG9zdF9zaWdub2ZmLnRjbCIKLXB1dHMgJG9wMiAiIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIKLXB1dHMgJG9wMiAiIyBCZWxvdyBhcmUgdGhlIHBsdWctaW5zIGF2YWlsYWJsZSBmb3IgdGhlIGhpZXJhcmNoaWNhbCBmbG93IC4uLiBub3RlIgotcHV0cyAkb3AyICIjIHRoZSBhZGRpdGlvbmFsIHBsdWctaW5zIGZvciB0aGUgcGFydGl0aW9uIGFuZCBhc3NlbWJsZSBzdGVwcy4gICIKLXB1dHMgJG9wMiAiIyBLZWVwIGluIG1pbmQgIgotcHV0cyAkb3AyICIjICAgIC0gVGhlIHBhcnRpdGlvbmluZyBzdGVwIHdpbGwgYWxzbyBsb2FkIHRoZSBwcmUvcG9zdCBpbml0IgotcHV0cyAkb3AyICIjICAgICAgYW5kIHByZS9wb3N0IHBsYWNlIHBsdWctaW5zIChzZWUgYWJvdmUpLiIKLXB1dHMgJG9wMiAiIyAgICAtIFRoZSBhc3NlbWJsZSBzdGVwIHdpbGwgYWxzbyBsb2FkIHRoZSBwcmUvcG9zdCBzaWdub2ZmIgotcHV0cyAkb3AyICIjICAgICAgcGx1Zy1pbnMgYXMgd2VsbC4gICIKLXB1dHMgJG9wMiAiIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIKLXB1dHMgJG9wMiAiI3NldCB2YXJzKGFsd2F5c19zb3VyY2VfdGNsKSAgICAgICAgICBcJHZhcnMocGx1Z19kaXIpL3Bvc3Rfc2lnbm9mZi50Y2wiCi1wdXRzICRvcDIgIiNzZXQgdmFycyhmaW5hbF9hbHdheXNfc291cmNlX3RjbCkgICAgXCR2YXJzKHBsdWdfZGlyKS9maW5hbF9hbHdheXNfc291cmNlLnRjbCIKLXB1dHMgJG9wMiAiI3NldCB2YXJzKHByZV9tb2RlbF9nZW5fdGNsKSAgICAgICAgICBcJHZhcnMocGx1Z19kaXIpL3ByZV9tb2RlbF9nZW4udGNsIgotcHV0cyAkb3AyICIjc2V0IHZhcnMocG9zdF9tb2RlbF9nZW5fdGNsKSAgICAgICAgIFwkdmFycyhwbHVnX2RpcikvcG9zdF9tb2RlbF9nZW4udGNsIgotcHV0cyAkb3AyICIjc2V0IHZhcnMocHJlX3Bpbl9hc3NpZ25fdGNsKSAgICAgICAgIFwkdmFycyhwbHVnX2RpcikvcHJlX3Bpbl9hc3NpZ24udGNsIgotcHV0cyAkb3AyICIjc2V0IHZhcnMocG9zdF9waW5fYXNzaWduX3RjbCkgICAgICAgIFwkdmFycyhwbHVnX2RpcikvcG9zdF9waW5fYXNzaWduLnRjbCIKLXB1dHMgJG9wMiAiI3NldCB2YXJzKHByZV9wYXJ0aXRpb25fdGNsKSAgICAgICAgICBcJHZhcnMocGx1Z19kaXIpL3ByZV9wYXJ0aXRpb24udGNsIgotcHV0cyAkb3AyICIjc2V0IHZhcnMocG9zdF9wYXJ0aXRpb25fdGNsKSAgICAgICAgIFwkdmFycyhwbHVnX2RpcikvcG9zdF9wYXJ0aXRpb24udGNsIgotcHV0cyAkb3AyICIjc2V0IHZhcnMocHJlX2Fzc2VtYmxlX3RjbCkgICAgICAgICAgIFwkdmFycyhwbHVnX2RpcikvcHJlX2Fzc2VtYmxlLnRjbCIKLXB1dHMgJG9wMiAiI3NldCB2YXJzKHBvc3RfYXNzZW1ibGVfdGNsKSAgICAgICAgICBcJHZhcnMocGx1Z19kaXIpL3Bvc3RfYXNzZW1ibGUudGNsIgotcHV0cyAkb3AyICIjc2V0IHZhcnMocHJlX3NpZ25vZmZfdGNsKSAgICAgICAgICAgIFwkdmFycyhwbHVnX2RpcikvcHJlX3NpZ25vZmYudGNsIgotcHV0cyAkb3AyICIjc2V0IHZhcnMocG9zdF9zaWdub2ZmX3RjbCkgICAgICAgICAgIFwkdmFycyhwbHVnX2RpcikvcG9zdF9zaWdub2ZmLnRjbCIKLXB1dHMgJG9wMiAiIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIKLXB1dHMgJG9wMiAiIyBBbGwgb3RoZXIgcGx1Zy1pbnMgYXJlIG9ubHkgdXNlZCBkdXJpbmcgdGhlIGZsYXQgaW1wbGVtZW50YXRpb24iCi1wdXRzICRvcDIgIiMgb2YgdGhlIHBhcnRpdGlvbnMuIFRvIGVuYWJsZSBwbHVnLWlucyBmb3IgcGFydGl0aW9uIGltcGxlbWVudGF0aW9uIgotcHV0cyAkb3AyICIjIGRlZmluZSBpbiB0aGUgdmFycyg8cGFydD4saW5ub3Z1c19jb25maWdfdGNsKSBmaWxlIGZvciB0aGF0IHBhcnRpdGlvbiIKLXB1dHMgJG9wMiAiIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIKLXB1dHMgJG9wMiAiIyBUbyBpbnNlcnQgbWV0YWwgZmlsbCBkdXJpbmcgdGhlIGZsb3cgZGVmaW5lIHRoZSBmb2xsb3dpbmcgdHdvIHZhcmlhYmxlczoiCi1wdXRzICRvcDIgIiMgLSB2YXJzKG1ldGFsZmlsbCkgICAgXFtwcmVfcG9zdHJvdXRlLCBwcmVfc2lnbm9mZlxdIgotcHV0cyAkb3AyICIjIC0gdmFycyhtZXRhbGZpbGxfdGNsKSA8cGF0aCB0byBtZXRhbGZpbGwgcGx1Zy1pbiBmaWxlPiIKLXB1dHMgJG9wMiAiIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIKLXB1dHMgJG9wMiAiI3NldCB2YXJzKG1ldGFsZmlsbCkgICAgICAgICAgICAgICAgICBwcmVfcG9zdHJvdXRlIgotcHV0cyAkb3AyICIjc2V0IHZhcnMobWV0YWxmaWxsX3RjbCkgICAgICAgICAgICAgXCR2YXJzKHBsdWdfZGlyKS9tZXRhbGZpbGwudGNsIgotCi1wdXRzICRvcDIgIiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyIKLXB1dHMgJG9wMiAiIyBEaXN0cmlidXRpb24gc2V0dXAgLi4uIHZhcnMoZGlzdHJpYnV0ZSkgY2FuIGJlIG9uZSBvZiB0aGUgZm9sbG93aW5nOiIKLXB1dHMgJG9wMiAiIyBsc2YsIHJzaCwgbG9jYWwsIG9yIGN1c3RvbSIKLXB1dHMgJG9wMiAiIyBEZXBlbmRpbmcgb24gdGhlIHZhbHVlIG9mIHZhcnMoZGlzdHJpYnV0ZSksIGFkZGl0aW9uIHZhcmlhYmxlcyIKLXB1dHMgJG9wMiAiIyBtYXkgYmUgcmVxdWlyZWQuICBTb21lIGV4YW1wbGVzIGFyZSBzaG93biBiZWxvdyIKLXB1dHMgJG9wMiAiIyBBbHNvLCBhIHRpbWVvdXQgY2FuIGJlIHNldCAodW5pdCBpcyBzZWNvbmRzKSIKLXB1dHMgJG9wMiAiIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIKLXB1dHMgJG9wMiAiI3NldCB2YXJzKGRpc3RyaWJ1dGUpICAgICAgICAgICBjdXN0b20iCi1wdXRzICRvcDIgIiNzZXQgdmFycyhkaXN0cmlidXRlX3RpbWVvdXQpICAgMzYwMCIKLXB1dHMgJG9wMiAiI3NldCB2YXJzKGN1c3RvbSxzY3JpcHQpICAgICAgICB7L2dyaWQvc2ZpL2Zhcm0vYmluL2dyaWRzdWIgLVcgNzI6MDAgLVAgU09DNy4xIC1SIFwiU0ZJQVJDSD09T1BUNjQgJiYgT1NSRUw9PUVFNDBcIiAtcSBsbng2NH0iCi1wdXRzICRvcDIgIiNzZXQgdmFycyhsc2YscXVldWUpICAgICAgICAgICAgbG54NjQiCi1wdXRzICRvcDIgIiNzZXQgdmFycyhsc2YscmVzb3VyY2UpICAgICAgICAgXCJTRklBUkNIPT1PUFQ2NCAmJiBPU1JFTD09RUU0MFwiIgotcHV0cyAkb3AyICIjc2V0IHZhcnMobHNmLGFyZ3MpICAgICAgICAgICAgIFwiLVcgNzI6MDAgLVAgU09DOC4xXCIiCi1wdXRzICRvcDIgIiNzZXQgdmFycyhsb2NhbF9jcHVzKSAgICAgICAgICAgMiIKLXB1dHMgJG9wMiAiI3NldCB2YXJzKHJlbW90ZV9ob3N0cykgICAgICAgICAyIgotcHV0cyAkb3AyICIjc2V0IHZhcnMoY3B1X3Blcl9yZW1vdGVfaG9zdCkgIDIiCi1wdXRzICRvcDIgIiNzZXQgdmFycyhyc2gsaG9zdHMpICAgICAgICAgICAgPGxpc3Qgb2YgaG9zdHM+IgotcHV0cyAkb3AyICIjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMiCi1wdXRzICRvcDIgIiMgQ2FwdHVyZSBxb3IgYW5kIHJ1biB0aW1lIG1ldHJpY3MgLi4uIgotcHV0cyAkb3AyICIjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIgotcHV0cyAkb3AyICIjc2V0IHZhcnMoY2FwdHVyZV9tZXRyaWNzKSBmYWxzZSIKLXB1dHMgJG9wMiAic2V0IHZhcnMocmVwb3J0X3J1bl90aW1lKSB0cnVlIgotcHV0cyAkb3AyICIjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIgotcHV0cyAkb3AyICIjc2V0IHZhcnMoaHRtbF9zdW1tYXJ5KSA8ZmlsZW5hbWU+IgotcHV0cyAkb3AyICIjc2V0IHZhcnModGltZV9pbmZvX3JwdCkgPGZpbGVuYW1lPiIKLXB1dHMgJG9wMiAiI3NldCB2YXJzKHRpbWVfaW5mb19kYnMpIDxmaWxlbmFtZT4iCi1wdXRzICRvcDIgIiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyIKLXB1dHMgJG9wMiAiIyBNYWtlZmlsZSBvcHRpb25zIC4uLiIKLXB1dHMgJG9wMiAiIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIKLXB1dHMgJG9wMiAiI3NldCB2YXJzKG1ha2VfdG9vbCkgPGlubm92dXMgZXhlY3V0YWJsZT4iCi1wdXRzICRvcDIgIiNzZXQgdmFycyhtYWtlX3Rvb2xfYXJncykgXCItNjQgLW5vd2luXCIiCi1wdXRzICRvcDIgIiNzZXQgdmFycyhtYWtlX3N5bl90b29sKSA8cmMgZXhlY3V0YWJsZT4iCi1wdXRzICRvcDIgIiNzZXQgdmFycyhtYWtlX3N5bl90b29sX2FyZ3MpIFwiLTY0XCIiCi1wdXRzICRvcDIgIiNzZXQgdmFycyhtYWtlX2Jyb3dzZXIpIG1vemlsbGEiCi1wdXRzICRvcDIgIiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyIKLXB1dHMgJG9wMiAiIyBBYm9ydCBpZiB0aGVyZSBhcmUgZXJyb3JzIGluIHRoZSBzZXR1cC50Y2wiCi1wdXRzICRvcDIgIiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iCi1wdXRzICRvcDIgInNldCB2YXJzKGFib3J0KSB0cnVlIgotcHV0cyAkb3AyICIjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMiCi1wdXRzICRvcDIgIiMgU2VuZCBtYWlsIGR1cmluZyBmbG93IGV4ZWN1dGlvbjsgIHZhcnMobWFpbCxzdGVwcykgZGVmYXVsdHMgdG8gQUxMIHN0ZXBzLiIKLXB1dHMgJG9wMiAiI3NldCB2YXJzKG1haWwsdG8pICAgICAgICAgICAgICBcIjxsaXN0IG9mIGVtYWlsIGFkZHJlc3Nlcz5cIiIKLXB1dHMgJG9wMiAiI3NldCB2YXJzKG1haWwsc3RlcHMpICAgICAgICAgICBcIjxsaXN0IG9mIHN0ZXBzPlwiIgotcHV0cyAkb3AyICIjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMiCi1wdXRzICRvcDEgInB1dHMgXCI8RkY+IEZpbmlzaGVkIGxvYWRpbmcgc2V0dXAudGNsIGZpbGVcIiIKLXB1dHMgJG9wMiAicHV0cyBcIjxGRj4gRmluaXNoZWQgbG9hZGluZyB0aGUgSU5OT1ZVUyBjb25maWd1cmF0aW9uIGZpbGVcIiIKLQotY2xvc2UgJG9wMQotY2xvc2UgJG9wMgotCi1QdXRzICI8RkY+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIKLVB1dHMgIjxGRj4gRmluaXNoZWQgZ2VuZXJhdGluZyBzZXR1cCBmaWxlIFwic2V0dXAuYXV0by50Y2xcIiAuLi4gIgotUHV0cyAiPEZGPiBwbGVhc2UgZWRpdCBhbmQgcmVuYW1lIHRvIHNldHVwLnRjbCB0byBlbmFibGUiCi1QdXRzICI8RkY+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIKLVB1dHMgIjxGRj4gRmluaXNoZWQgZ2VuZXJhdGluZyBJTk5PVlVTIGNvbmZpZyBmaWxlIFwiaW5ub3Z1c19jb25maWcuYXV0by50Y2xcIiAuLi4gIgotUHV0cyAiPEZGPiBwbGVhc2UgZWRpdCBhbmQgcmVuYW1lIHRvIGlubm92dXNfY29uZmlnLnRjbCB0byBlbmFibGUiCi1QdXRzICI8RkY+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIKLSNwdXRzICIgICAgIFBsZWFzZSBjaGVjayBmb3IgY29ycmVjdG5lc3MgYW5kIGFkZCBhZGRpdGlvbmFsIGluZm9ybWF0aW9uIGFzIG5lY2Vzc2FyeSIKLWlmIHtbaW5mbyBleGlzdHMgbHBmaWxlXX0gewotICAgY3JlYXRlX2xwX2NvbmZpZ19maWxlCi0gICBQdXRzICI8RkY+IEZpbmlzaGVkIGdlbmVyYXRpbmcgbG93IHBvd2VyIGNvbmZpZyBmaWxlIFwibHBfY29uZmlnLmF1dG8udGNsXCIgLi4uICIKLSAgIFB1dHMgIjxGRj4gcGxlYXNlIGVkaXQgYW5kIHJlbmFtZSB0byBscF9jb25maWcudGNsIHRvIGVuYWJsZSIKLSAgIFB1dHMgIjxGRj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIgotfQotY3JlYXRlX2ludnNfdGFnX2ZpbGUKLVB1dHMgIjxGRj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIgotUHV0cyAiPEZGPiBGaW5pc2hlZCBnZW5lcmF0aW5nIElOTk9WVVMgdGFnIGZpbGUgXCJpbnZzLmF1dG8udGNsXCIgLi4uICIKLVB1dHMgIjxGRj4gVGhpcyBmaWxlIGlzIGZvciBkZXRhaWxlZCBmbG93IGN1c3RvbWl6YXRpb24gYW5kIGluIHB1cmVseSBvcHRpb25hbC4iCi1QdXRzICI8RkY+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIKLWlmIHtbaW5mbyBleGlzdHMgZG9uZV19IHsgCi0gICBmb3JlYWNoIHZhciBbYXJyYXkgbmFtZXMgZG9uZV0gewotICAgICAgdW5zZXQgZG9uZSgkdmFyKQotICAgfQotfQpkaWZmIC0tZ2l0IGEvZmxvdy9wbnIvU0NSSVBUUy9nZW5fc2V0dXAudGNsIGIvZmxvdy9wbnIvU0NSSVBUUy9nZW5fc2V0dXAudGNsCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwOTkyMDUwLi4wMDAwMDAwCi0tLSBhL2Zsb3cvcG5yL1NDUklQVFMvZ2VuX3NldHVwLnRjbAorKysgL2Rldi9udWxsCkBAIC0xLDIxODkgKzAsMCBAQAotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotIyAgICAgICAgICAgICAgICAgICAgICAgQ0FERU5DRSBDT1BZUklHSFQgTk9USUNFCi0jICAgICAgICAgqSAyMDA4LTIwMTMgQ2FkZW5jZSBEZXNpZ24gU3lzdGVtcywgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIwotIyBUaGlzIEZvdW5kYXRpb24gRmxvdyBpcyBwcm92aWRlZCBhcyBhbiBleGFtcGxlIG9mIGhvdyB0byBwZXJmb3JtIHNwZWNpYWxpemVkCi0jIHRhc2tzLgotIwotIyBUaGlzIHdvcmsgbWF5IG5vdCBiZSBjb3BpZWQsIHJlLXB1Ymxpc2hlZCwgdXBsb2FkZWQsIG9yIGRpc3RyaWJ1dGVkIGluIGFueSB3YXksCi0jIGluIGFueSBtZWRpdW0sIHdoZXRoZXIgaW4gd2hvbGUgb3IgaW4gcGFydCwgd2l0aG91dCBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24KLSMgZnJvbSBDYWRlbmNlLiBOb3R3aXRoc3RhbmRpbmcgYW55IHJlc3RyaWN0aW9ucyBoZXJlaW4sIHN1YmplY3QgdG8gY29tcGxpYW5jZQotIyB3aXRoIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB0aGUgQ2FkZW5jZSBzb2Z0d2FyZSBsaWNlbnNlIGFncmVlbWVudCB1bmRlcgotIyB3aGljaCB0aGlzIG1hdGVyaWFsIHdhcyBwcm92aWRlZCwgdGhpcyBtYXRlcmlhbCBtYXkgYmUgY29waWVkIGFuZCBpbnRlcm5hbGx5Ci0jIGRpc3RyaWJ1dGVkIHNvbGVseSBmb3IgaW50ZXJuYWwgcHVycG9zZXMgZm9yIHVzZSB3aXRoIENhZGVuY2UgdG9vbHMuCi0jCi0jIFRoaXMgd29yayBpcyBDYWRlbmNlIGludGVsbGVjdHVhbCBwcm9wZXJ0eSBhbmQgbWF5IHVuZGVyIG5vIGNpcmN1bXN0YW5jZXMgYmUKLSMgZ2l2ZW4gdG8gdGhpcmQgcGFydGllcywgbmVpdGhlciBpbiBvcmlnaW5hbCBub3IgaW4gbW9kaWZpZWQgdmVyc2lvbnMsIHdpdGhvdXQKLSMgZXhwbGljaXQgd3JpdHRlbiBwZXJtaXNzaW9uIGZyb20gQ2FkZW5jZS4gVGhlIGluZm9ybWF0aW9uIGNvbnRhaW5lZCBoZXJlaW4gaXMKLSMgdGhlIHByb3ByaWV0YXJ5IGFuZCBjb25maWRlbnRpYWwgaW5mb3JtYXRpb24gb2YgQ2FkZW5jZSBvciBpdHMgbGljZW5zb3JzLCBhbmQKLSMgaXMgc3VwcGxpZWQgc3ViamVjdCB0bywgYW5kIG1heSBiZSB1c2VkIG9ubHkgYnkgQ2FkZW5jZSdzIGN1cnJlbnQgY3VzdG9tZXJzCi0jIGluIGFjY29yZGFuY2Ugd2l0aCwgYSBwcmV2aW91c2x5IGV4ZWN1dGVkIGxpY2Vuc2UgYWdyZWVtZW50IGJldHdlZW4gQ2FkZW5jZQotIyBhbmQgaXRzIGN1c3RvbWVyLgotIwotIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIyBUSElTIE1BVEVSSUFMIElTIFBST1ZJREVEIEJZIENBREVOQ0UgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRAotIyBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRgotIyBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELgotIyBJTiBOTyBFVkVOVCBTSEFMTCBDQURFTkNFIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwKLSMgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwKLSMgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SCi0jIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgIE1BVEVSSUFMLCBFVkVOIElGCi0jIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCi1wcm9jIGNvbnYybW1tYyB7fSB7Ci0KLSAgIGdsb2JhbCByZGFfSW5wdXQKLQotICAgaWYgeyFbaW5mbyBleGlzdHMgc2xvd19saWJzXX0gewotICAgICAgc2V0IHNsb3dfbGlicyBbbGlzdF0KLSAgIH0gCi0gICBpZiB7IVtpbmZvIGV4aXN0cyBmYXN0X2xpYnNdfSB7Ci0gICAgICBzZXQgZmFzdF9saWJzIFtsaXN0XQotICAgfSAKLQotICAgaWYgeyRyZGFfSW5wdXQodWlfdGltZWxpYixtYXgpICE9ICIifSB7Ci0gICAgICBmb3JlYWNoIGxpYiAkcmRhX0lucHV0KHVpX3RpbWVsaWIsbWF4KSB7Ci0gICAgICAgICBmb3JlYWNoIGdsb2JfbGliIFtnbG9iICRsaWJdIHsKLSAgICAgICAgICAgIGlmIHtbZmlsZSBpc2RpcmVjdG9yeSAkZ2xvYl9saWJdfSB7Ci0gICAgICAgICAgICAgICBmb3JlYWNoIG5lc3RlZF9nbG9iX2xpYiBbZ2xvYiAkZ2xvYl9saWIvXCpdIHsKLSAgICAgICAgICAgICAgICAgIGxhcHBlbmQgc2xvd19saWJzICRuZXN0ZWRfZ2xvYl9saWIKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBsYXBwZW5kIHNsb3dfbGlicyAkZ2xvYl9saWIKLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0KLSAgICAgIH0KLSAgICAgIGZvcmVhY2ggbGliICRyZGFfSW5wdXQodWlfdGltZWxpYikgewotICAgICAgICAgZm9yZWFjaCBnbG9iX2xpYiBbZ2xvYiAkbGliXSB7Ci0gICAgICAgICAgICBpZiB7W2ZpbGUgaXNkaXJlY3RvcnkgJGdsb2JfbGliXX0gewotICAgICAgICAgICAgICAgZm9yZWFjaCBuZXN0ZWRfZ2xvYl9saWIgW2dsb2IgJGdsb2JfbGliL1wqXSB7Ci0gICAgICAgICAgICAgICAgICBsYXBwZW5kIHNsb3dfbGlicyAkbmVzdGVkX2dsb2JfbGliCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgbGFwcGVuZCBzbG93X2xpYnMgJGdsb2JfbGliCi0gICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0gICAgICB9Ci0gICAjICAgc2V0IHNsb3dfbGlicyBbY29uY2F0ICRyZGFfSW5wdXQodWlfdGltZWxpYixtYXgpICRyZGFfSW5wdXQodWlfdGltZWxpYildCi0gICB9IGVsc2UgewotICAgICAgZm9yZWFjaCBsaWIgJHJkYV9JbnB1dCh1aV90aW1lbGliKSB7Ci0gICAgICAgICBmb3JlYWNoIGdsb2JfbGliIFtnbG9iICRsaWJdIHsKLSAgICAgICAgICAgIGlmIHtbZmlsZSBpc2RpcmVjdG9yeSAkZ2xvYl9saWJdfSB7Ci0gICAgICAgICAgICAgICBmb3JlYWNoIG5lc3RlZF9nbG9iX2xpYiBbZ2xvYiAkZ2xvYl9saWIvXCpdIHsKLSAgICAgICAgICAgICAgICAgIGxhcHBlbmQgc2xvd19saWJzICRuZXN0ZWRfZ2xvYl9saWIKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBsYXBwZW5kIHNsb3dfbGlicyAkZ2xvYl9saWIKLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0KLSAgICAgIH0KLSAgICMgICBzZXQgc2xvd19saWJzICRyZGFfSW5wdXQodWlfdGltZWxpYikKLSAgIH0KLSAgIGlmIHskcmRhX0lucHV0KHVpX3RpbWVsaWIsbWluKSAhPSAiIn0gewotICAgICAgZm9yZWFjaCBsaWIgJHJkYV9JbnB1dCh1aV90aW1lbGliLG1pbikgewotICAgICAgICAgZm9yZWFjaCBnbG9iX2xpYiBbZ2xvYiAkbGliXSB7Ci0gICAgICAgICAgICBpZiB7W2ZpbGUgaXNkaXJlY3RvcnkgJGdsb2JfbGliXX0gewotICAgICAgICAgICAgICAgZm9yZWFjaCBuZXN0ZWRfZ2xvYl9saWIgW2dsb2IgJGdsb2JfbGliL1wqXSB7Ci0gICAgICAgICAgICAgICAgICBsYXBwZW5kIGZhc3RfbGlicyAkbmVzdGVkX2dsb2JfbGliCi0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgbGFwcGVuZCBmYXN0X2xpYnMgJGdsb2JfbGliCi0gICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0gICAgICB9Ci0gICAgICBmb3JlYWNoIGxpYiAkcmRhX0lucHV0KHVpX3RpbWVsaWIpIHsKLSAgICAgICAgIGZvcmVhY2ggZ2xvYl9saWIgW2dsb2IgJGxpYl0gewotICAgICAgICAgICAgaWYge1tmaWxlIGlzZGlyZWN0b3J5ICRnbG9iX2xpYl19IHsKLSAgICAgICAgICAgICAgIGZvcmVhY2ggbmVzdGVkX2dsb2JfbGliIFtnbG9iICRnbG9iX2xpYi9cKl0gewotICAgICAgICAgICAgICAgICAgbGFwcGVuZCBmYXN0X2xpYnMgJG5lc3RlZF9nbG9iX2xpYgotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIGxhcHBlbmQgZmFzdF9saWJzICRnbG9iX2xpYgotICAgICAgICAgICAgfQotICAgICAgICAgfSAKLSAgICAgIH0KLSAgICMgICBzZXQgZmFzdF9saWJzIFtjb25jYXQgJHJkYV9JbnB1dCh1aV90aW1lbGliLG1pbikgJHJkYV9JbnB1dCh1aV90aW1lbGliKV0KLSAgIH0gZWxzZSB7Ci0gICAgICBzZXQgZmFzdF9saWJzICRzbG93X2xpYnMKLSAgIH0KLSAgIAotICAgI3B1dHMgIi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIiAKLSAgICNwdXRzICJQUVJTOiAkc2xvd19saWJzIgotICAgI3B1dHMgIlBRUlM6ICRmYXN0X2xpYnMiCi0gICAjcHV0cyAiLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iIAotICAgCi0gICBzZXQgc2RjX2ZpbGVzIFtsaXN0XQotICAgZm9yZWFjaCBmaWxlICRyZGFfSW5wdXQodWlfdGltaW5nY29uX2ZpbGUpIHsKLSAgICAgIGxhcHBlbmQgc2RjX2ZpbGVzICRmaWxlCi0gICB9Ci0gICAKLSAgIHNldCBpbG1fc2RjX2ZpbGVzIFtsaXN0XQotICAgaWYge1tpbmZvIGV4aXN0cyByZGFfSW5wdXQodWlfdGltaW5nY29uX2ZpbGUsZnVsbCldfSB7Ci0gICAgICBmb3JlYWNoIGZpbGUgJHJkYV9JbnB1dCh1aV90aW1pbmdjb25fZmlsZSxmdWxsKSB7Ci0gICAgICAgICBsYXBwZW5kIGlsbV9zZGNfZmlsZXMgJGZpbGUKLSAgICAgIH0KLSAgIH0KLSAgIAotICAgaWYgeyRyZGFfSW5wdXQodWlfY2RiX2ZpbGUsbWF4KSAhPSAiIn0gewotICAgICAgc2V0IHNsb3dfY2RicyBbY29uY2F0ICRyZGFfSW5wdXQodWlfY2RiX2ZpbGUsbWF4KSAkcmRhX0lucHV0KHVpX2NkYl9maWxlKV0KLSAgIH0gZWxzZSB7Ci0gICAgICBpZiB7JHJkYV9JbnB1dCh1aV9jZGJfZmlsZSkgIT0gIiJ9IHsKLSAgICAgICAgIHNldCBzbG93X2NkYnMgJHJkYV9JbnB1dCh1aV9jZGJfZmlsZSkKLSAgICAgIH0KLSAgIH0KLSAgIGlmIHskcmRhX0lucHV0KHVpX2NkYl9maWxlLG1pbikgIT0gIiJ9IHsKLSAgICAgIHNldCBmYXN0X2NkYnMgW2NvbmNhdCAkcmRhX0lucHV0KHVpX2NkYl9maWxlLG1pbikgJHJkYV9JbnB1dCh1aV9jZGJfZmlsZSldCi0gICB9IGVsc2UgewotICAgICAgaWYgeyRyZGFfSW5wdXQodWlfY2RiX2ZpbGUpICE9ICIifSB7Ci0gICAgICAgICBzZXQgZmFzdF9jZGJzICRyZGFfSW5wdXQodWlfY2RiX2ZpbGUpCi0gICAgICB9IGVsc2UgewotICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyBzbG93X2NkYnNdICYmICgkc2xvd19jZGJzICE9ICIiKX0gewotICAgICAgICAgICAgc2V0IGZhc3RfY2RicyAkc2xvd19jZGJzCi0gICAgICAgIH0KLSAgICAgfQotICAgfQotCi0gICBzZXQgYmNfY2FwX3RhYmxlICIiCi0gICBzZXQgd2NfY2FwX3RhYmxlICIiCi0gIAotICAgaWYge1tsbGVuZ3RoICRyZGFfSW5wdXQodWlfY2FwdGJsX2ZpbGUpXSA+IDF9IHsKLSAgICAgIGZvciB7c2V0IGkgMH0geyRpPFtsbGVuZ3RoICRyZGFfSW5wdXQodWlfY2FwdGJsX2ZpbGUpXX0ge2luY3IgaX0gewotICAgICAgICAgaWYge1tsaW5kZXggJHJkYV9JbnB1dCh1aV9jYXB0YmxfZmlsZSkgJGldID09ICItYmVzdCJ9IHsKLSAgICAgICAgICAgIHNldCBiY19jYXBfdGFibGUgW2ZpbGUgbm9ybWFsaXplIFtsaW5kZXggJHJkYV9JbnB1dCh1aV9jYXB0YmxfZmlsZSkgW2V4cHIgJGkrMV1dXQotICAgICAgICAgfQotICAgICAgICAgaWYge1tsaW5kZXggJHJkYV9JbnB1dCh1aV9jYXB0YmxfZmlsZSkgJGldID09ICItd29yc3QifSB7Ci0gICAgICAgICAgICBzZXQgd2NfY2FwX3RhYmxlIFtmaWxlIG5vcm1hbGl6ZSBbbGluZGV4ICRyZGFfSW5wdXQodWlfY2FwdGJsX2ZpbGUpIFtleHByICRpKzFdXV0KLSAgICAgICAgIH0KLSAgICAgIH0KLSAgIH0gZWxzZSB7Ci0gICAgICBzZXQgd2NfY2FwX3RhYmxlIFtmaWxlIG5vcm1hbGl6ZSAkcmRhX0lucHV0KHVpX2NhcHRibF9maWxlKV0KLSAgICAgIHNldCBiY19jYXBfdGFibGUgW2ZpbGUgbm9ybWFsaXplICRyZGFfSW5wdXQodWlfY2FwdGJsX2ZpbGUpXQotICAgfQotICAgCi0gICBzZXQgYmNfcXhfdGVjaF9maWxlICIiCi0gICBzZXQgd2NfcXhfdGVjaF9maWxlICIiCi0gICAKLSAgIGlmIHtbbGxlbmd0aCAkcmRhX0lucHV0KHVpX3F4dGVjaF9maWxlKV0gPiAxfSB7Ci0gICAgICBmb3Ige3NldCBpIDB9IHskaTxbbGxlbmd0aCAkcmRhX0lucHV0KHVpX3F4dGVjaF9maWxlKV19IHtpbmNyIGl9IHsKLSAgICAgICAgIGlmIHtbbGluZGV4ICRyZGFfSW5wdXQodWlfcXh0ZWNoX2ZpbGUpICRpXSA9PSAiLWJlc3QifSB7Ci0gICAgICAgICAgICBzZXQgYmNfcXhfdGVjaF9maWxlIFtmaWxlIG5vcm1hbGl6ZSBbbGluZGV4ICRyZGFfSW5wdXQodWlfcXh0ZWNoX2ZpbGUpIFtleHByICRpKzFdXV0KLSAgICAgICAgIH0KLSAgICAgICAgIGlmIHtbbGluZGV4ICRyZGFfSW5wdXQodWlfcXh0ZWNoX2ZpbGUpICRpXSA9PSAiLXdvcnN0In0gewotICAgICAgICAgICAgc2V0IHdjX3F4X3RlY2hfZmlsZSBbZmlsZSBub3JtYWxpemUgW2xpbmRleCAkcmRhX0lucHV0KHVpX3F4dGVjaF9maWxlKSBbZXhwciAkaSsxXV1dCi0gICAgICAgICB9Ci0gICAgICB9Ci0gICB9IGVsc2UgewotICAgICAgc2V0IHdjX3F4X3RlY2hfZmlsZSBbZmlsZSBub3JtYWxpemUgJHJkYV9JbnB1dCh1aV9xeHRlY2hfZmlsZSldCi0gICAgICBzZXQgYmNfcXhfdGVjaF9maWxlIFtmaWxlIG5vcm1hbGl6ZSAkcmRhX0lucHV0KHVpX3F4dGVjaF9maWxlKV0KLSAgIH0KLSAgIAotICAgCi0jICAgaWYgeyR3Y19jYXBfdGFibGUgPT0gIiJ9IHsKLSMgICAgICBQdXRzICItLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIgCi0jICAgICAgUHV0cyAiXFtQUVJTXF1cW0VSUk9SXF0gTm8gY2FwIHRhYmxlcyBkZWZpbmVkIGZvciB0aGlzIHRlc3RjYXNlIC4uLiBhYm9ydGluZyIKLSMgICAgICBQdXRzICItLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIgCi0jICAgICAgZXhpdCAxCi0jICAgfQotICAgCi0gICBpZiB7KFtpbmZvIGV4aXN0cyBkZ25fbWF4X3RlbXBdID09IDApIHx8IChbaW5mbyBleGlzdHMgZGduX21heF90ZW1wXSAmJiAkZGduX21heF90ZW1wID09ICIiKX0gewotICAgICAgc2V0IG1heF90ZW1wICIiCi0gICB9IGVsc2UgewotICAgICAgc2V0IG1heF90ZW1wICRkZ25fbWF4X3RlbXAKLSAgIH0KLSAgIAotICAgaWYgeyhbaW5mbyBleGlzdHMgZGduX21pbl90ZW1wXSA9PSAwKSB8fCAoW2luZm8gZXhpc3RzIGRnbl9taW5fdGVtcF0gJiYgJGRnbl9taW5fdGVtcCA9PSAiIil9IHsKLSAgICAgIHNldCBtaW5fdGVtcCAiIgotICAgfSBlbHNlIHsKLSAgICAgIHNldCBtaW5fdGVtcCBbZXhwciBhYnMoJGRnbl9taW5fdGVtcCldCi0gICB9Ci0KLSAgIHNldCBwcmVfcm91dGVfcmVzX2ZhY3RvciAkcmRhX0lucHV0KHVpX3ByZVJvdXRlX3JlcykKLSAgIHNldCBwcmVfcm91dGVfY2xrX3Jlc19mYWN0b3IgMS4wCi0gICBzZXQgcG9zdF9yb3V0ZV9yZXNfZmFjdG9yICRyZGFfSW5wdXQodWlfcG9zdFJvdXRlX3JlcykKLSAgIHNldCBwb3N0X3JvdXRlX2Nsa19yZXNfZmFjdG9yICIxLjAgMS4wIDEuMCIKLSAgIHNldCBwcmVfcm91dGVfY2FwX2ZhY3RvciAkcmRhX0lucHV0KHVpX3ByZVJvdXRlX2NhcCkKLSAgIHNldCBwcmVfcm91dGVfY2xrX2NhcF9mYWN0b3IgMS4wCi0gICBzZXQgcG9zdF9yb3V0ZV9jYXBfZmFjdG9yICRyZGFfSW5wdXQodWlfcG9zdFJvdXRlX2NhcCkKLSAgIHNldCBwb3N0X3JvdXRlX2Nsa19jYXBfZmFjdG9yICIxLjAgMS4wIDEuMCIKLSAgIHNldCBwb3N0X3JvdXRlX3hjYXBfZmFjdG9yICRyZGFfSW5wdXQodWlfcG9zdFJvdXRlX3hjYXApCi0gICBzZXQgc2hyaW5rX2ZhY3RvciAkcmRhX0lucHV0KHVpX3Nocl9zY2FsZSkKLSMgICBzZXQgcmVsYXRpdmVfY190aHJlc2ggJHJkYV9JbnB1dCh1aV9yZWxfY190aHJlc2gpCi0jICAgc2V0IHRvdGFsX2NfdGhyZXNoICRyZGFfSW5wdXQodWlfdG90X2NfdGhyZXNoKQotIyAgIHNldCBjb3VwbGluZ19jX3RocmVzaCAkcmRhX0lucHV0KHVpX2NwbF9jX3RocmVzaCkKLQotICAgY3JlYXRlX3JjX2Nvcm5lciAtbmFtZSByY19tYXggIFwKLSAgICAgICAgICAgICAgICAgICAgLXByZVJvdXRlX3JlcyAkcHJlX3JvdXRlX3Jlc19mYWN0b3IgXAotICAgICAgICAgICAgICAgICAgICAtcHJlUm91dGVfY2xrcmVzICRwcmVfcm91dGVfY2xrX3Jlc19mYWN0b3IgXAotICAgICAgICAgICAgICAgICAgICAtcHJlUm91dGVfY2FwICRwcmVfcm91dGVfY2FwX2ZhY3RvciBcCi0gICAgICAgICAgICAgICAgICAgIC1wcmVSb3V0ZV9jbGtjYXAgJHByZV9yb3V0ZV9jbGtfY2FwX2ZhY3RvciBcCi0gICAgICAgICAgICAgICAgICAgIC1wb3N0Um91dGVfcmVzICRwb3N0X3JvdXRlX3Jlc19mYWN0b3IgXAotICAgICAgICAgICAgICAgICAgICAtcG9zdFJvdXRlX2Nsa3JlcyAkcG9zdF9yb3V0ZV9jbGtfcmVzX2ZhY3RvciBcCi0gICAgICAgICAgICAgICAgICAgIC1wb3N0Um91dGVfY2FwICRwb3N0X3JvdXRlX2NhcF9mYWN0b3IgXAotICAgICAgICAgICAgICAgICAgICAtcG9zdFJvdXRlX2Nsa2NhcCAkcG9zdF9yb3V0ZV9jbGtfY2FwX2ZhY3RvciBcCi0gICAgICAgICAgICAgICAgICAgIC1wb3N0Um91dGVfeGNhcCAkcG9zdF9yb3V0ZV94Y2FwX2ZhY3RvcgotICAKLSAgIGlmIHskd2NfY2FwX3RhYmxlICE9ICIifSB7Ci0gICAgICB1cGRhdGVfcmNfY29ybmVyIC1uYW1lIHJjX21heCAtY2FwX3RhYmxlICR3Y19jYXBfdGFibGUKLSAgIH0KLSAgIGlmIHskbWF4X3RlbXAgIT0gIiJ9IHsKLSAgICAgIHVwZGF0ZV9yY19jb3JuZXIgLW5hbWUgcmNfbWF4IC1UICRtYXhfdGVtcAotICAgfQotCi0gICBpZiB7JHdjX3F4X3RlY2hfZmlsZSAhPSAiIiB9IHsKLSAgICAgIHVwZGF0ZV9yY19jb3JuZXIgLW5hbWUgcmNfbWF4IC1xeF90ZWNoX2ZpbGUgJHdjX3F4X3RlY2hfZmlsZQotICAgfQotICAgIAotICAgY3JlYXRlX3JjX2Nvcm5lciAtbmFtZSByY19taW4gIFwKLSAgICAgICAgICAgICAgICAgICAgLXByZVJvdXRlX3JlcyAkcHJlX3JvdXRlX3Jlc19mYWN0b3IgXAotICAgICAgICAgICAgICAgICAgICAtcHJlUm91dGVfY2xrcmVzICRwcmVfcm91dGVfY2xrX3Jlc19mYWN0b3IgXAotICAgICAgICAgICAgICAgICAgICAtcHJlUm91dGVfY2FwICRwcmVfcm91dGVfY2FwX2ZhY3RvciBcCi0gICAgICAgICAgICAgICAgICAgIC1wcmVSb3V0ZV9jbGtjYXAgJHByZV9yb3V0ZV9jbGtfY2FwX2ZhY3RvciBcCi0gICAgICAgICAgICAgICAgICAgIC1wb3N0Um91dGVfcmVzICRwb3N0X3JvdXRlX3Jlc19mYWN0b3IgXAotICAgICAgICAgICAgICAgICAgICAtcG9zdFJvdXRlX2Nsa3JlcyAkcG9zdF9yb3V0ZV9jbGtfcmVzX2ZhY3RvciBcCi0gICAgICAgICAgICAgICAgICAgIC1wb3N0Um91dGVfY2FwICRwb3N0X3JvdXRlX2NhcF9mYWN0b3IgXAotICAgICAgICAgICAgICAgICAgICAtcG9zdFJvdXRlX2Nsa2NhcCAkcG9zdF9yb3V0ZV9jbGtfY2FwX2ZhY3RvciBcCi0gICAgICAgICAgICAgICAgICAgIC1wb3N0Um91dGVfeGNhcCAkcG9zdF9yb3V0ZV94Y2FwX2ZhY3RvcgotICAgCi0gICBpZiB7JGJjX2NhcF90YWJsZSAhPSAiIn0gewotICAgICAgdXBkYXRlX3JjX2Nvcm5lciAtbmFtZSByY19taW4gLWNhcF90YWJsZSAkYmNfY2FwX3RhYmxlCi0gICB9Ci0gICBpZiB7JG1pbl90ZW1wICE9ICIifSB7Ci0gICAgICB1cGRhdGVfcmNfY29ybmVyIC1uYW1lIHJjX21pbiAtVCAkbWluX3RlbXAKLSAgIH0KLQotICAgaWYgeyRiY19xeF90ZWNoX2ZpbGUgIT0gIiIgfSB7Ci0gICAgICB1cGRhdGVfcmNfY29ybmVyIC1uYW1lIHJjX21pbiAtcXhfdGVjaF9maWxlICRiY19xeF90ZWNoX2ZpbGUKLSAgIH0KLSAgICAKLSAgIGlmIHtbaW5mbyBleGlzdHMgc2xvd19jZGJzXSAmJiAoJHNsb3dfY2RicyAhPSAiIil9IHsKLSAgICAgIGNyZWF0ZV9saWJyYXJ5X3NldCAtbmFtZSBsaWJzX21heCAtdGltaW5nICRzbG93X2xpYnMgLXNpICRzbG93X2NkYnMgCi0gICAgICBjcmVhdGVfbGlicmFyeV9zZXQgLW5hbWUgbGlic19taW4gLXRpbWluZyAkZmFzdF9saWJzIC1zaSAkZmFzdF9jZGJzIAotICAgfSBlbHNlIHsKLSAgICAgIGNyZWF0ZV9saWJyYXJ5X3NldCAtbmFtZSBsaWJzX21heCAtdGltaW5nICRzbG93X2xpYnMKLSAgICAgIGNyZWF0ZV9saWJyYXJ5X3NldCAtbmFtZSBsaWJzX21pbiAtdGltaW5nICRmYXN0X2xpYnMKLSAgIH0KLSAgIAotICAgY3JlYXRlX2RlbGF5X2Nvcm5lciAtbmFtZSBjb3JuZXJfbWF4IC1saWJyYXJ5X3NldCBsaWJzX21heCAtcmNfY29ybmVyIHJjX21heAotICAgY3JlYXRlX2RlbGF5X2Nvcm5lciAtbmFtZSBjb3JuZXJfbWluIC1saWJyYXJ5X3NldCBsaWJzX21pbiAtcmNfY29ybmVyIHJjX21pbgotICAgUHV0cyAiXFtJTkZPXF0gY3JlYXRlX2NvbnN0cmFpbnRfbW9kZSBzZXR1cF9mdW5jX21vZGUgd2l0aCAiCi0gICBQdXRzICJcW0lORk9cXSAgIFNEQyBmaWxlczogJHNkY19maWxlcyIKLSAgIGlmIHskaWxtX3NkY19maWxlcyAhPSAiIn0gewotICAgICBQdXRzICJcW0lORk9cXSAgIElMTSBTREMgZmlsZXM6ICRpbG1fc2RjX2ZpbGVzIiAKLSAgICAgY3JlYXRlX2NvbnN0cmFpbnRfbW9kZSAtbmFtZSBzZXR1cF9mdW5jX21vZGUgLXNkY19maWxlcyAkc2RjX2ZpbGVzIC1pbG1fc2RjX2ZpbGVzIGlsbV9zZGNfZmlsZXMKLSAgIH0gZWxzZSB7Ci0gICAgIGNyZWF0ZV9jb25zdHJhaW50X21vZGUgLW5hbWUgc2V0dXBfZnVuY19tb2RlIC1zZGNfZmlsZXMgJHNkY19maWxlcyAKLSAgIH0KLSAgIGNyZWF0ZV9hbmFseXNpc192aWV3IC1uYW1lIHNldHVwX2Z1bmMgLWNvbnN0cmFpbnRfbW9kZSBzZXR1cF9mdW5jX21vZGUgLWRlbGF5X2Nvcm5lciBjb3JuZXJfbWF4Ci0jICAgUHV0cyAiXFtJTkZPXF0gY3JlYXRlX2NvbnN0cmFpbnRfbW9kZSBob2xkX2Z1bmNfbW9kZSB3aXRoICIKLSMgICBQdXRzICJcW0lORk9cXSAgIFNEQyBmaWxlczogJHNkY19maWxlcyIKLSMgICBpZiB7JGlsbV9zZGNfZmlsZXMgIT0gIiJ9IHsKLSMgICAgIFB1dHMgIlxbSU5GT1xdICAgSUxNIFNEQyBmaWxlczogJGlsbV9zZGNfZmlsZXMiIAotIyAgICAgY3JlYXRlX2NvbnN0cmFpbnRfbW9kZSAtbmFtZSBob2xkX2Z1bmNfbW9kZSAtc2RjX2ZpbGVzICRzZGNfZmlsZXMgLWlsbV9zZGNfZmlsZXMgaWxtX3NkY19maWxlcwotIyAgIH0gZWxzZSB7Ci0jICAgICBjcmVhdGVfY29uc3RyYWludF9tb2RlIC1uYW1lIGhvbGRfZnVuY19tb2RlIC1zZGNfZmlsZXMgJHNkY19maWxlcyAKLSMgICB9Ci0gICBjcmVhdGVfYW5hbHlzaXNfdmlldyAtbmFtZSBob2xkX2Z1bmMgLWNvbnN0cmFpbnRfbW9kZSBzZXR1cF9mdW5jX21vZGUgLWRlbGF5X2Nvcm5lciBjb3JuZXJfbWluCi0gICBzZXRfYW5hbHlzaXNfdmlldyAtc2V0dXAge3NldHVwX2Z1bmN9IC1ob2xkIHtob2xkX2Z1bmN9IAotICAgc2V0X2RlZmF1bHRfdmlldyAtc2V0dXAge3NldHVwX2Z1bmN9IC1ob2xkIHtob2xkX2Z1bmN9IAotICAgc2V0X2ludGVyYWN0aXZlX2NvbnN0cmFpbnRfbW9kZXMgW2FsbF9jb25zdHJhaW50X21vZGVzIC1hY3RpdmVdIAotfQotCi1wcm9jIGNyZWF0ZV9scF9jb25maWdfZmlsZSB7fSB7Ci0KLSAgIGdsb2JhbCB2YXJzCi0KLSAgIHNldCBvcCBbb3BlbiBscF9jb25maWcuYXV0by50Y2wgd10KLQotICAgaWYge1tmaWxlIGV4aXN0cyBzZXR1cC5hdXRvLnRjbF19IHsKLSAgICAgIHNvdXJjZSBzZXR1cC5hdXRvLnRjbAotICAgfQotICAgaWYge1tmaWxlIGV4aXN0cyBpbm5vdnVzX2NvbmZpZy5hdXRvLnRjbF19IHsKLSAgICAgIHNvdXJjZSBpbm5vdnVzX2NvbmZpZy5hdXRvLnRjbAotICAgfQotCi0gICBwdXRzICRvcCAiIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIgotICAgcHV0cyAkb3AgIiMgTG93IHBvd2VyIGNvbmZpZ3VyYXRpb24gZmlsZSBvdmVybGF5LiAgVGhpcyBmaWxlIGNvbnRhaW5zIGZvdW5kYXRpb24gZmxvdyB2YXJpYWJsZXMiCi0gICBwdXRzICRvcCAiIyB0aGF0IGFyZSBzcGVjaWZpYyB0byB0aGUgTFAgZmxvdyBhbmQgc2hvdWxkIGJlIHVzZWQgaW4gYWRkaXRpb24gdG8gdGhlIHNldHVwLnRjbCIKLSAgIHB1dHMgJG9wICIjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMiCi0gICBwdXRzICRvcCAiIyAgICAgICAgICAgICAgICAgICAgICAgICAgIFRpZSBjZWxsIGluZm9ybWF0aW9uIgotICAgcHV0cyAkb3AgIiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIKLSAgIHB1dHMgJG9wICIjIFRoZSB2YXJpYWJsZSB2YXJzKHRpZV9jZWxscykgaXMgZGVmaW5lZCBpbiB0aGUgc2V0dXAudGNsIGFuZCBpcyB1c2VkIHRvIGRlZmluZSBhICIKLSAgIHB1dHMgJG9wICIjIFwiZ2xvYmFsXCIgdGllIGNlbGwgbGlzdC4gVGhpcyBsaXN0IHdpbGwgYmUgdXNlZCBieSBkZWZhdWx0IGZvciBlYWNoIHBvd2VyIGRvbWFpbi4iCi0gICBwdXRzICRvcCAiIyBJdCBjYW4gYmUgb3ZlcnJpZGRlbiBmb3IgYSBnaXZlbiBwb3dlciBkb21haW4gYnkgc2V0dGluZyB2YXJzKDxwb3dlcl9kb21haW4+LHRpZV9jZWxscykuIgotICAgcHV0cyAkb3AgIiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIKLSAgIHB1dHMgJG9wICIjIgotICAgcHV0cyAkb3AgIiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyIKLSAgIHB1dHMgJG9wICIjICAgICAgICAgICAgICAgICAgICAgICAgIFBsYWNlbWVudCBPcHRpb25zIgotICAgcHV0cyAkb3AgIiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIKLSAgIHB1dHMgJG9wICIjc2V0IHZhcnMocmVzaXplX3NoaWZ0ZXJfYW5kX2lzb19pbnN0cykgPHRydWUgfCBmYWxzZT4iCi0gICBwdXRzICRvcCAiIyIKLSAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhwb3dlcl9kb21haW5zKV19IHsKLSAgICAgIGZvcmVhY2ggZG9tYWluICR2YXJzKHBvd2VyX2RvbWFpbnMpIHsKLSAgICAgICAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyh0aWVfY2VsbHMpXX0gewotICAgICAgICAgICAgcHV0cyAkb3AgIiMgc2V0IHZhcnMoJGRvbWFpbix0aWVfY2VsbHMpXHRcIiR2YXJzKHRpZV9jZWxscylcIiIKLSAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBwdXRzICRvcCAiIyBzZXQgdmFycygkZG9tYWluLHRpZV9jZWxscykgICAgPHRpZSBjZWxscyBmb3IgPHBvd2VyX2RvbWFpbj4+IgotICAgICAgICAgfQotICAgICAgfQotICAgfQotICAgcHV0cyAkb3AgIiMiCi0gICBwdXRzICRvcCAiIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIgotICAgcHV0cyAkb3AgIiMgICAgICAgICAgICAgICAgICAgICAgICAgRmlsbGVyIGNlbGwgaW5mb3JtYXRpb24iCi0gICBwdXRzICRvcCAiIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIgotICAgcHV0cyAkb3AgIiMgVGhlIHZhcmlhYmxlIHZhcnMoZmlsbGVyX2NlbGxzKSBpcyBkZWZpbmVkIGluIHRoZSBzZXR1cC50Y2wgYW5kIGlzIHVzZWQgdG8gZGVmaW5lIGEgIgotICAgcHV0cyAkb3AgIiMgXCJnbG9iYWxcIiBmaWxsZXIgY2VsbCBsaXN0LiBUaGlzIGxpc3Qgd2lsbCBiZSB1c2VkIGJ5IGRlZmF1bHQgZm9yIGVhY2ggcG93ZXIgZG9tYWluLiIKLSAgIHB1dHMgJG9wICIjIEl0IGNhbiBiZSBvdmVycmlkZGVuIGZvciBhIGdpdmVuIHBvd2VyIGRvbWFpbiBieSBzZXR0aW5nIHZhcnMoPHBvd2VyX2RvbWFpbj4sZmlsbGVyX2NlbGxzKS4iCi0gICBwdXRzICRvcCAiIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIgotICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKHBvd2VyX2RvbWFpbnMpXX0gewotICAgICAgZm9yZWFjaCBkb21haW4gJHZhcnMocG93ZXJfZG9tYWlucykgewotICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKGZpbGxlcl9jZWxscyldfSB7Ci0gICAgICAgICAgICBwdXRzICRvcCAiIyBzZXQgdmFycygkZG9tYWluLGZpbGxlcl9jZWxscylcdFwiJHZhcnMoZmlsbGVyX2NlbGxzKVwiIgotICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHB1dHMgJG9wICIjIHNldCB2YXJzKCRkb21haW4sZmlsbGVyX2NlbGxzKSA8ZmlsbGVyIGNlbGxzIGZvciA8cG93ZXJfZG9tYWluPj4iCi0gICAgICAgICB9Ci0gICAgICB9Ci0gICB9Ci0gICBwdXRzICRvcCAiIyIKLSAgIHB1dHMgJG9wICIjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMiCi0gICBwdXRzICRvcCAiIyAgICAgICAgICAgICAgICAgICAgICAgICAgV2VsbHRhcCBjZWxsIGluZm9ybWF0aW9uIgotICAgcHV0cyAkb3AgIiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIKLSAgIHB1dHMgJG9wICIjIFRoZSB2YXJpYWJsZSB2YXJzKHdlbGx0YXBzKSBpcyBkZWZpbmVkIGluIHRoZSBzZXR1cC50Y2wgYW5kIGlzIHVzZWQgdG8gZGVmaW5lIGEgIgotICAgcHV0cyAkb3AgIiMgXCJnbG9iYWxcIiB3ZWxsdGFwIGNlbGwgbGlzdC4gVGhpcyBsaXN0IHdpbGwgYmUgdXNlZCBieSBkZWZhdWx0IGZvciBlYWNoIHBvd2VyIGRvbWFpbi4iCi0gICBwdXRzICRvcCAiIyBJdCBjYW4gYmUgb3ZlcnJpZGRlbiBmb3IgYSBnaXZlbiBwb3dlciBkb21haW4gYnkgc2V0dGluZyB2YXJzKDxwb3dlcl9kb21haW4+LHdlbGx0YXBzKS4iCi0gICBwdXRzICRvcCAiIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIgotICAgcHV0cyAkb3AgIiMgICAgdmVyaWZ5X3J1bGUgOiBtYXhpbXVtIGRpc3RhbmNlIChpbiBtaWNyb25zKSBiZXR3ZWVuIHdlbGx0YXAgY2VsbHMgYW5kIHN0YW5kYXJkIGNlbGxzICIKLSAgIHB1dHMgJG9wICIjICAgICAgICAgICAgICAgICAgaW4gbWljcm9ucyIKLSAgIHB1dHMgJG9wICIjICAgICAgICBtYXhfZ2FwIDogc3BlY2lmaWVzIHRoZSBtYXhpbXVtIGRpc3RhbmNlIGZyb20gdGhlIHJpZ2h0IGVkZ2Ugb2Ygb25lIHdlbGwtdGFwIGNlbGwgIgotICAgcHV0cyAkb3AgIiMgICAgICAgICAgICAgICAgICB0byB0aGUgbGVmdCBlZGdlIG9mICB0aGUgZm9sbG93aW5nIHdlbGwtdGFwIGNlbGwgaW4gdGhlIHNhbWUgcm93IgotICAgcHV0cyAkb3AgIiMgIGNlbGxfaW50ZXJ2YWwgOiBzcGVjaWZpZXMgdGhlIG1heGltdW0gZGlzdGFuY2UgZnJvbSB0aGUgY2VudGVyIG9mIG9uZSB3ZWxsLXRhcCBjZWxsICIKLSAgIHB1dHMgJG9wICIjICAgICAgICAgICAgICAgICAgdG8gdGhlIGNlbnRlciBvZiB0aGUgZm9sbG93aW5nIHdlbGwtdGFwIGNlbGwgaW4gdGhlIHNhbWUgcm93IgotICAgcHV0cyAkb3AgIiMiCi0gICBwdXRzICRvcCAiIyBOT1RFOiBtYXhfZ2FwIGFuZCBjZWxsX2ludGVydmFsIHBhcmFtZXRlcnMgYXJlIG11dHVhbGx5IGV4Y2x1c2l2ZSwgdXNlciBoYXMgdG8gZGVmaW5lICIKLSAgIHB1dHMgJG9wICIjICAgICAgIG9ubHkgb25lIG9mIHRoZXNlIHBhcmFtZXRlcnMgdG8gYWRkIHdlbGx0YXAgY2VsbHMiCi0gICBwdXRzICRvcCAiIyIKLSAgIHB1dHMgJG9wICIjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iCi0gICBpZiB7W2luZm8gZXhpc3RzIHZhcnMocG93ZXJfZG9tYWlucyldfSB7Ci0gICAgICBmb3JlYWNoIGRvbWFpbiAkdmFycyhwb3dlcl9kb21haW5zKSB7Ci0gICAgICAgICBpZiB7W2luZm8gZXhpc3RzIHZhcnMod2VsbHRhcHMpXX0gewotICAgICAgICAgICAgcHV0cyAkb3AgIiMgc2V0IHZhcnMoJGRvbWFpbix2YXJzKHdlbGx0YXBzKSkgICAgICAgICAgICAgICAgIDx3ZWxsdGFwIGNlbGwgbGlzdCBmb3IgPHBvd2VyX2RvbWFpbj4+IgotICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHB1dHMgJG9wICIjIHNldCB2YXJzKCRkb21haW4sd2VsbHRhcHMpICAgICAgICAgICAgICAgICA8d2VsbHRhcCBjZWxsIGxpc3QgZm9yIDxwb3dlcl9kb21haW4+PiIKLSAgICAgICAgIH0gCi0gICAgICAgICBwdXRzICRvcCAiIyBzZXQgdmFycygkZG9tYWluLHdlbGx0YXBzLGNoZWNrZXJib2FyZCkgIDx0cnVlIG9yIGZhbHNlPiIKLSAgICAgICAgIHB1dHMgJG9wICIjIHNldCB2YXJzKCRkb21haW4sd2VsbHRhcHMsbWF4X2dhcCkgICAgICAgPG1heCBnYXAgaW4gbWljcm9ucz4iCi0gICAgICAgICBwdXRzICRvcCAiIyBzZXQgdmFycygkZG9tYWluLHdlbGx0YXBzLGNlbGxfaW50ZXJ2YWwpIDxjZWxsIGludGVydmFsIGluIG1pY3JvbnM+IgotICAgICAgICAgcHV0cyAkb3AgIiMgc2V0IHZhcnMoJGRvbWFpbix3ZWxsdGFwcyxyb3dfb2Zmc2V0KSAgICA8cm93IG9mZnNldCBpbiBtaWNyb25zPiIKLSAgICAgICAgIHB1dHMgJG9wICIjIHNldCB2YXJzKCRkb21haW4sd2VsbHRhcHMsdmVyaWZ5X3J1bGUpICAgPHZlcmlmeSBydWxlIGRpc3RhbmNlPiIKLSAgICAgIH0KLSAgIH0KLSAgIHB1dHMgJG9wICIjIgotICAgcHV0cyAkb3AgIiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyIKLSAgIHB1dHMgJG9wICIjICAgICAgICAgICAgICAgICAgICAgICAgICBFbmRjYXAgY2VsbCBpbmZvcm1hdGlvbiIKLSAgIHB1dHMgJG9wICIjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iCi0gICBwdXRzICRvcCAiIyBUaGUgdmFyaWFibGVzIHZhcnMocHJlX2VuZGNhcCkgYW5kIHZhcnMocG9zdF9lbmRjYXApIGFyZSBzZXQgaW4gdGhlIHNldHVwLnRjbCBmaWxlIGFuZCIKLSAgIHB1dHMgJG9wICIjIGFyZSB1c2VkIHRvIGRlZmluZSBcImdsb2JhbFwiIGVuZGNhcCBjZWxscy4gVGhlc2UgdXNlZCBieSBkZWZhdWx0IGZvciBlYWNoIHBvd2VyIGRvbWFpbi4iCi0gICBwdXRzICRvcCAiIyBUaGV5IGNhbiBiZSBvdmVycmlkZGVuIGZvciBhIGdpdmVuIHBvd2VyIGRvbWFpbiBzZXR0aW5nIHZhcnMoPHBvd2VyX2RvbWFpbj4scHJlX2VuZGNhcCkiCi0gICBwdXRzICRvcCAiIyBhbmQvb3IgdmFycyg8cG93ZXJfZG9tYWluPixwb3N0X2VuZGNhcCkuIgotICAgcHV0cyAkb3AgIiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIKLSAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhwb3dlcl9kb21haW5zKV19IHsKLSAgICAgIGZvcmVhY2ggZG9tYWluICR2YXJzKHBvd2VyX2RvbWFpbnMpIHsKLSAgICAgICAgIHB1dHMgJG9wICIjIHNldCB2YXJzKCRkb21haW4scHJlX2VuZGNhcCkgIDxwcmUgZW5kY2FwIGNlbGwgZm9yIDxwb3dlcl9kb21haW4+PiIKLSAgICAgICAgIHB1dHMgJG9wICIjIHNldCB2YXJzKCRkb21haW4scG9zdF9lbmRjYXApIDxwb3N0IGVuZGNhcCBjZWxsIGZvciA8cG93ZXJfZG9tYWluPj4iCi0gICAgICB9Ci0gICB9Ci0gICBwdXRzICRvcCAiIyIKLSAgIHB1dHMgJG9wICIjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMiCi0gICBwdXRzICRvcCAiIyAgICAgICAgICAgICAgICAgICAgICAgICAgICBBbHdheXMgb24gbmV0IGJ1ZmZlcmluZyIKLSAgIHB1dHMgJG9wICIjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iCi0gICBwdXRzICRvcCAiIyBCeSBkZWZhdWx0IFNPQ0UgZG9lcyBhbHdheXMtb24tbmV0IHN5bnRoZXNpcyBmb3IgU1JQRyBjb250cm9sIHNpZ25hbCBhbmQgUFNPIGVuYWJsZSAiCi0gICBwdXRzICRvcCAiIyBzaWduYWxzIGFzIHBhcnQgb2Ygb3B0RGVzaWduIC1wcmVDVFMsIGJ1dCB0aGlzIGNhbiBiZSBtYW51YWxseSBkb25lIGZvciBzcGVjaWZpYyBuZXRzIGlmIgotICAgcHV0cyAkb3AgIiMgbmVjZXNzYXJ5LiAgVG8gZG8gdGhpcywgZGVmaW5lIHRoZSBmb2xsb3dpbmcgdmFyaWFibGVzIGFuZCB1bmNvbW1lbnQgdGhlIHByZV9wcmVjdHMudGNsIgotICAgcHV0cyAkb3AgIiMgcGx1Zy1pbiB0ZW1wbGF0ZSIKLSAgIHB1dHMgJG9wICIjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iCi0gICBwdXRzICRvcCAiIyBzZXQgdmFycyhhbHdheXNfb25fYnVmZmVycykgICAgICAgICAgICAgICAgICAgPGxpc3Qgb2YgYWx3YXlzIG9uIGJ1ZmZlcnM+IgotICAgcHV0cyAkb3AgIiMgc2V0IHZhcnMoYWx3YXlzX29uX25ldHMpICAgICAgICAgICAgICAgICAgICAgIDxsaXN0IG9mIGFsd2F5cyBvbiBuZXRzPiIKLSAgIHB1dHMgJG9wICIjIHNldCB2YXJzKGFsd2F5c19vbl9uZXRzLG1heF9mYW5vdXQpICAgICAgICAgICA8bWF4IGZhbm91dCBsaW1pdCBmb3IgYWx3YXlzIG9uIG5ldHM+IChvcHRpb25hbCkiCi0gICBwdXRzICRvcCAiIyBzZXQgdmFycyhhbHdheXNfb25fbmV0cyxtYXhfdHJhbikgICAgICAgICAgICAgPG1heCB0cmFuc2l0aW9uIG9uIGFsd2F5cyBvbiBuZXRzPiAob3B0aW9uYWwpIgotICAgcHV0cyAkb3AgIiMgc2V0IHZhcnMoYWx3YXlzX29uX25ldHMsbWF4X3NrZXcpICAgICAgICAgICAgIDxtYXggc2tldyBmb3IgYWx3YXlzIG9uIG5ldHM+IChvcHRpb25hbCkiCi0gICBwdXRzICRvcCAiIyBzZXQgdmFycyhhbHdheXNfb25fbmV0cyxtYXhfZGVsYXkpICAgICAgICAgICAgPG1heCBkZWxheSBmb3IgYWx3YXlzIG9uIG5ldHM+IChvcHRpb25hbCkiCi0gICBpZiB7W2luZm8gZXhpc3RzIHZhcnMocG93ZXJfZG9tYWlucyldfSB7Ci0gICAgICBmb3JlYWNoIGRvbWFpbiAkdmFycyhwb3dlcl9kb21haW5zKSB7Ci0gICAgICAgICBwdXRzICRvcCAiIyBzZXQgdmFycygkZG9tYWluLGFsd2F5c19vbl9idWZmZXJzKSAgPGJ1ZmZlcnMgZm9yIDxwb3dlciBkb21haW4+PiIKLSAgICAgIH0KLSAgIH0KLSAgIHB1dHMgJG9wICIjIgotICAgcHV0cyAkb3AgIiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyIKLSAgIHB1dHMgJG9wICIjICAgICAgICAgICAgICAgICAgICAgIFNlY29uZGFyeSBwb3dlci9ncm91bmQgcm91dGluZyIKLSAgIHB1dHMgJG9wICIjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iCi0gICBwdXRzICRvcCAiIyBBdXRvbWF0aWMgc2Vjb25kYXJ5IHBvd2VyIHJvdXRpbmcgY2FuIGJlIGVuYWJsZWQgdGhlIGZvdW5kYXRpb24gZmxvd3MgYnkgc2V0dGluZyAiCi0gICBwdXRzICRvcCAiIyB2YXJzKHJvdXRlX3NlY29uZGFyeV9wZ19uZXRzKSB0byB0cnVlIGFuZCBwcm92aWRpbmcgY2VsbCBwaW4gcGFpciBpbmZvcm1hdGlvbiB0byIKLSAgIHB1dHMgJG9wICIjIGlkZW50aWZ5IHRoZSBjb25uZWN0aW9ucyByZXF1aXJpbmcgcm91dGluZyAoUFRCVUZGRDE6VFZERCBMVkxMSENENDpWRERMLCBlLmcuKSAiCi0gICBwdXRzICRvcCAiIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIgotICAgcHV0cyAkb3AgIiMgc2V0IHZhcnMocm91dGVfc2Vjb25kYXJ5X3BnX25ldHMpICAgICAgICAgXFt0cnVlIHwgZmFsc2VcXSIKLSAgIHB1dHMgJG9wICIjIHNldCB2YXJzKHNlY29uZGFyeV9wZyxjZWxsX3Bpbl9wYWlycykgICAgIDxzZWNvbmRhcnkgcG93ZXIgY2VsbCBwaW4gcGFpciBsaXN0PiIKLSAgIHB1dHMgJG9wICIjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iCi0gICBwdXRzICRvcCAiI0luIGFkZGl0aW9uLCB0aGUgZm9sbG93aW5nIGNhbiBvcHRpb25hbGx5IGRlZmluZWQgZWl0aGVyIGdsb2JhbGx5IG9yIHBlciBwL2cgbmV0IgotICAgcHV0cyAkb3AgIiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIKLSAgIHB1dHMgJG9wICIjIHNldCB2YXJzKHNlY29uZGFyeV9wZyxtYXhfZmFub3V0KSAgICAgICAgICAgPG1heCBmYW5vdXQgZm9yIHNlY29uZGFyeSBwb3dlciByb3V0aW5nPiIKLSAgIHB1dHMgJG9wICIjIHNldCB2YXJzKHNlY29uZGFyeV9wZyxwYXR0ZXJuKSAgICAgICAgICAgICAgPHNlY29uZGFyeSBwb3dlciByb3V0aW5nIHBhdHRlcm4gdHJ1bmsgfCBzdGVpbmVyPiIKLSAgIHB1dHMgJG9wICIjIHNldCB2YXJzKHNlY29uZGFyeV9wZyxub25fZGVmYXVsdF9ydWxlKSAgICAgPG5vbi1kZWZhdWx0IHJ1bGUgZm9yIHNlY29uZGFyeSBwL2cvIHJvdXRpbmc+IgotICAgcHV0cyAkb3AgIiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIKLSAgIHB1dHMgJG9wICIjIFRvIG9wdGlvbmFsbHkgb3ZlcnJpZGUgZm9yIGEgZ2l2ZW4gcC9nIG5ldChzKSwgdXNlIHRoZSB2YXJzKHJvdXRlX3NlY29uZGFyeV9wZ19uZXRzKSB0byAiCi0gICBwdXRzICRvcCAiIyBkZWZpbmUgdGhlIGxpc3Qgb2YgbmV0cyB0byBiZSBvdmVycmlkZGVuIGFuZCB0aGVuIG92ZXJyaWRlIHZhcnMoPHAvZyBuZXQ+LDxvcHRpb24+KSIKLSAgIHB1dHMgJG9wICIjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iCi0gICBwdXRzICRvcCAiIyBzZXQgdmFycyhzZWNvbmRhcnlfcGcsbmV0cykgICAgICAgICAgICAgICAgICA8bGlzdCBvZiBwb3dlci9ncm91bmQgbmV0cz4iCi0gICBwdXRzICRvcCAiIyBzZXQgdmFycyg8cC9nX25ldD4sbWF4X2Zhbm91dCkgICAgICAgICAgICAgICA8bWF4IGZhbm91dD4iCi0gICBwdXRzICRvcCAiIyBzZXQgdmFycyg8cC9nX25ldD4scGF0dGVybikgICAgICAgICAgICAgICAgICA8dHJ1bmsgfCBzdGVpbmVyPiIKLSAgIHB1dHMgJG9wICIjIHNldCB2YXJzKDxwL2dfbmV0Pixub25fZGVmYXVsdF9ydWxlKSAgICAgICAgIDxub24gZGVmYXVsdCBydWxlPiIKLSAgIHB1dHMgJG9wICIjIgotICAgcHV0cyAkb3AgIiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyIKLSAgIHB1dHMgJG9wICIjICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcnVuQ0xQIG9wdGlvbnMiCi0gICBwdXRzICRvcCAiIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIgotICAgcHV0cyAkb3AgIiMgc2V0IHZhcnMoY2xwX29wdGlvbnMpICA8b3B0aW9ucyBmb3IgcnVuQ0xQPiIKLSAgIHB1dHMgJG9wICIjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iCi0gICBwdXRzICRvcCAiIyBzZXQgdmFycyhjbHBfb3B0aW9ucykgIFwiXCIiCi0gICBwdXRzICRvcCAiIyIKLSAgIHB1dHMgJG9wICIjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMiCi0gICBwdXRzICRvcCAiIyAgICAgICAgICAgICAgTW9kaWZ5IHBvd2VyIGRvbWFpbnMsIHJvdyBjcmVhdGlvbiBmb3IgcG93ZXIgZG9tYWlucyIKLSAgIHB1dHMgJG9wICIjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iCi0gICBwdXRzICRvcCAiIyBUaGUgZm91bmRhdGlvbiBmbG93cyBjb250YWluIGEgc2FtcGxlIHBvc3RfaW5pdF90Y2wgKFBMVUcvcG9zdF9pbml0LnRjbCkgcGx1Zy1pbiB0byBkbyAiCi0gICBwdXRzICRvcCAiIyBwb3dlciBkb21haW4gbW9kaWZpY2F0aW9uIGF1dG9tYXRpY2FsbHkgYmFzZWQgb24gdGhlIGZvbGxvaW5nIHZhcmlhYmxlczoiCi0gICBwdXRzICRvcCAiIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIgotICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKHBvd2VyX2RvbWFpbnMpXX0gewotICAgICAgZm9yZWFjaCBkb21haW4gJHZhcnMocG93ZXJfZG9tYWlucykgewotICAgICAgICAgcHV0cyAkb3AgIiMgc2V0IHZhcnMoJGRvbWFpbixiYm94KSAgICAgICAgIDxsbHggbGx5IHVyeCB1cnk+OyBib25kYXJ5IGNvb3JkaW5hdGVzIGluIG1pY3JvbnMiCi0gICAgICAgICBwdXRzICRvcCAiIyBzZXQgdmFycygkZG9tYWluLHJzX2V4dHMpICAgICAgPHRvcCBib3QgbGVmdCByaWdodD47IGRpc3RhbmNlIGluIG1pY3JvbnMgICIKLSAgICAgICAgIHB1dHMgJG9wICIjIHNldCB2YXJzKCRkb21haW4sbWluX2dhcHMpICAgICA8dG9wIGJvdCBsZWZ0IHJpZ2h0PjsgZGlzdGFuY2UgaW4gbWljcm9ucyIKLSAgICAgIH0KLSAgIH0KLSAgIHB1dHMgJG9wICIjIgotICAgcHV0cyAkb3AgIiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyIKLSAgIHB1dHMgJG9wICIjICAgICAgICAgICAgICAgICAgICAgICAgICAgUG93ZXIgU2h1dC1vZmYgUGxhbm5pbmcgIgotICAgcHV0cyAkb3AgIiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIKLSAgIHB1dHMgJG9wICIjIFRoZSBmb3VuZGF0aW9uIGZsb3dzIGNvbnRhaW4gYSBzYW1wbGUgcG9zdF9pbml0X3RjbCAoUExVRy9wb3N0X2luaXQudGNsKSBwbHVnLWluIHRvIGRvICIKLSAgIHB1dHMgJG9wICIjIHBvd2VyIHN3aXRjaCBpbnNlcnRpb24gYXV0b21hdGljYWxseSBiYXNlZCBvbiB0aGUgZm9sbG93aW5nIGluZm9ybWF0aW9uOiIKLSAgIHB1dHMgJG9wICIjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iCi0gICBwdXRzICRvcCAiIyBzZXQgdmFycyg8cG93ZXJfZG9tYWluPixzd2l0Y2hhYmxlKSAgICAgICAgIDx0cnVlIHwgZmFsc2U+IgotICAgcHV0cyAkb3AgIiMgc2V0IHZhcnMoPHBvd2VyX2RvbWFpbj4sc3dpdGNoX3R5cGUpICAgICAgICA8Y29sdW1uIHwgcmluZz4iCi0gICBwdXRzICRvcCAiIyBzZXQgdmFycyg8cG93ZXJfZG9tYWluPixzd2l0Y2hfY2VsbCkgICAgICAgIDxQU08gY2VsbCBuYW1lPiIKLSAgIHB1dHMgJG9wICIjIHNldCB2YXJzKDxwb3dlcl9kb21haW4+LGlucHV0X2VuYWJsZV9waW4pICAgPFBTTyBjZWxsIGlucHV0IGVuYWJsZSBwaW4+IgotICAgcHV0cyAkb3AgIiMgc2V0IHZhcnMoPHBvd2VyX2RvbWFpbj4sb3V0cHV0X2VuYWJsZV9waW4pICA8UFNPIGNlbGwgb3V0cHV0IGVuYWJsZSBwaW4+IgotICAgcHV0cyAkb3AgIiMgc2V0IHZhcnMoPHBvd2VyX2RvbWFpbj4saW5wdXRfZW5hYmxlX25ldCkgICA8UFNPIGNlbGwgaW5wdXQgZW5hYmxlIG5ldD4iCi0gICBwdXRzICRvcCAiIyBzZXQgdmFycyg8cG93ZXJfZG9tYWluPixvdXRwdXRfZW5hYmxlX25ldCkgIDxQU08gY2VsbCBvdXRwdXQgZW5hYmxlIG5ldD4iCi0gICBwdXRzICRvcCAiIyBzZXQgdmFycyg8cG93ZXJfZG9tYWluPixzd2l0Y2hfaW5zdGFuY2UpICAgIDxzd2l0Y2hNb2R1bGVJbnN0YW5jZT4iCi0gICBwdXRzICRvcCAiIyBzZXQgdmFycyg8cG93ZXJfZG9tYWluPix0b3Bfb2Zmc2V0KSAgICAgICAgIDx0b3Agb2Zmc2V0IGluIG1pY3JvbnM+IgotICAgcHV0cyAkb3AgIiMgc2V0IHZhcnMoPHBvd2VyX2RvbWFpbj4sYm90dG9tX29mZnNldCkgICAgICA8Ym90dG9tIG9mZnNldCBpbiBtaWNyb25zPiIKLSAgIHB1dHMgJG9wICIjIHNldCB2YXJzKDxwb3dlcl9kb21haW4+LHJpZ2h0X29mZnNldCkgICAgICAgPHJpZ2h0IG9mZnNldCBpbiBtaWNyb25zPiIKLSAgIHB1dHMgJG9wICIjIHNldCB2YXJzKDxwb3dlcl9kb21haW4+LGxlZnRfb2Zmc2V0KSAgICAgICAgPGxlZnQgb2Zmc2V0IGluIG1pY3JvbnM+IgotICAgcHV0cyAkb3AgIiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIKLSAgIHB1dHMgJG9wICIjIEJlbG93IHZhcmlhYmxlcyBhcmUgZm9yIGNvbHVtbiBiYXNlZCBwc28gaW1wbGVtZXRhdGlvbiIKLSAgIHB1dHMgJG9wICIjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iCi0gICBwdXRzICRvcCAiIyBzZXQgdmFycyg8cG93ZXJfZG9tYWluPixjaGVja2VyX2JvYXJkKSAgICAgPHRydWUgfCBmYWxzZT4iCi0gICBwdXRzICRvcCAiIyBzZXQgdmFycyg8cG93ZXJfZG9tYWluPixob3Jpem9uYWxfcGl0Y2gpICAgPGluIG1pY3JvbnM+IgotICAgcHV0cyAkb3AgIiMgc2V0IHZhcnMoPHBvd2VyX2RvbWFpbj4sY29sdW1uX2hlaWdodCkgICAgIDxTd2l0Y2ggY2VsbCBjb2x1bW4gaGVpZ2h0IGluIG1pY3JvbnM+IgotICAgcHV0cyAkb3AgIiMgc2V0IHZhcnMoPHBvd2VyX2RvbWFpbj4sc2tpcF9yb3dzKSAgICAgICAgIDxOdW1iZXIgb2Ygcm93cyB0byBza2lwPiIKLSAgIHB1dHMgJG9wICIjIHNldCB2YXJzKDxwb3dlcl9kb21haW4+LGJhY2tfdG9fYmFja19jaGFpbikgPHRydWV8ZmFsc2U+IgotICAgcHV0cyAkb3AgIiMgLi4uIENvbm5lY3RzIHRoZSBlbmFibGVOZXRPdXQgYXQgdGhlIHRvcCBvZiBhIGNvbHVtbiB0byB0aGUgZW5hYmxlTmV0SW4gYXQgdGhlIHRvcCBvZiAiCi0gICBwdXRzICRvcCAiIyAuLi4gdGhlIG5leHQgY29sdW1uLCBhbmQgY29ubmVjdHMgdGhlIGVuYWJsZU5ldE91dCBhdCB0aGUgYm90dG9tIG9mIHRoZSBjb2x1bW4gdG8gdGhlICIKLSAgIHB1dHMgJG9wICIjIC4uLiBlbmFibGVOZXRJbiBhdCB0aGUgYm90dG9tIG9mIHRoZSBuZXh0IGNvbHVtbiIKLSAgIHB1dHMgJG9wICIjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iCi0gICBwdXRzICRvcCAiIyBCZWxvdyB2YXJpYWJsZXMgYXJlIGZvciByaW5nIGJhc2VkIHBzbyBpbXBsZW1ldGF0aW9uIgotICAgcHV0cyAkb3AgIiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIKLSAgIHB1dHMgJG9wICIjIHNldCB2YXJzKDxwb3dlcl9kb21haW4+LHRvcF9yaW5nKSAgICAgPDF8MD4iCi0gICBwdXRzICRvcCAiIyBzZXQgdmFycyg8cG93ZXJfZG9tYWluPixib3R0b21fcmluZykgIDwxfDA+IgotICAgcHV0cyAkb3AgIiMgc2V0IHZhcnMoPHBvd2VyX2RvbWFpbj4scmlnaHRfcmluZykgICA8MXwwPiIKLSAgIHB1dHMgJG9wICIjIHNldCB2YXJzKDxwb3dlcl9kb21haW4+LGxlZnRfcmluZykgICAgPDF8MD4iCi0gICBwdXRzICRvcCAiIyAuLi4gZGVmaW5lcyB3aGljaCBzaWRlIG9mIHRoZSBwb3dlciBkb21haW4gdG8gaW5zZXJ0IHN3aXRjaGVzOiIKLSAgIHB1dHMgJG9wICIjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iCi0gICBwdXRzICRvcCAiIyBzZXQgdmFycyg8cG93ZXJfZG9tYWluPix0b3Bfc3dpdGNoX2NlbGwpICAgIDxwc28gY2VsbCBuYW1lPiIKLSAgIHB1dHMgJG9wICIjIHNldCB2YXJzKDxwb3dlcl9kb21haW4+LGJvdHRvbV9zd2l0Y2hfY2VsbCkgPHBzbyBjZWxsIG5hbWU+IgotICAgcHV0cyAkb3AgIiMgc2V0IHZhcnMoPHBvd2VyX2RvbWFpbj4sbGVmdF9zd2l0Y2hfY2VsbCkgICA8cHNvIGNlbGwgbmFtZT4iCi0gICBwdXRzICRvcCAiIyBzZXQgdmFycyg8cG93ZXJfZG9tYWluPixyaWdodF9zd2l0Y2hfY2VsbCkgIDxwc28gY2VsbCBuYW1lPiIKLSAgIHB1dHMgJG9wICIjIC4uLiBkZWZpbmUgcHNvIGNlbGwgbmFtZSBmb3IgZWFjaCBzaWRlIG9mIHRoZSBwb3dlciBkb21haW4iCi0gICBwdXRzICRvcCAiIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIgotICAgcHV0cyAkb3AgIiMgc2V0IHZhcnMoPHBvd2VyX2RvbWFpbj4sdG9wX2ZpbGxlcl9jZWxsKSAgICA8ZmlsbGVyIGNlbGwgbmFtZT4iCi0gICBwdXRzICRvcCAiIyBzZXQgdmFycyg8cG93ZXJfZG9tYWluPixib3R0b21fZmlsbGVyX2NlbGwpIDxmaWxsZXIgY2VsbCBuYW1lPiIKLSAgIHB1dHMgJG9wICIjIHNldCB2YXJzKDxwb3dlcl9kb21haW4+LGxlZnRfZmlsbGVyX2NlbGwpICAgPGZpbGxlciBjZWxsIG5hbWU+IgotICAgcHV0cyAkb3AgIiMgc2V0IHZhcnMoPHBvd2VyX2RvbWFpbj4scmlnaHRfZmlsbGVyX2NlbGwpICA8ZmlsbGVyIGNlbGwgbmFtZT4iCi0gICBwdXRzICRvcCAiIyBzZXQgdmFycyg8cG93ZXJfZG9tYWluPixjb3JuZXJfY2VsbF9saXN0KSAgIDxjb3JuZXIgY2VsbCBuYW1lPiIKLSAgIHB1dHMgJG9wICIjIC4uLiBkZWZpbmUgZmlsbGVyIGNlbGwgbmFtZSBmb3IgZWFjaCBzaWRlIG9mIHRoZSBwb3dlciBkb21haW4iCi0gICBwdXRzICRvcCAiIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIgotICAgcHV0cyAkb3AgIiMgc2V0IHZhcnMoPHBvd2VyX2RvbWFpbj4sZGlzdHJpYnV0ZSkgICAgICAgICA8dHJ1ZSBvciBmYWxzZT4iCi0gICBwdXRzICRvcCAiIyBzZXQgdmFycyg8cG93ZXJfZG9tYWluPix0b3Bfc3dpdGNoZXMpICAgICAgIDxpbnRlZ2VyPiIKLSAgIHB1dHMgJG9wICIjIHNldCB2YXJzKDxwb3dlcl9kb21haW4+LGJvdHRvbV9zd2l0Y2hlcykgICAgPGludGVnZXI+IgotICAgcHV0cyAkb3AgIiMgc2V0IHZhcnMoPHBvd2VyX2RvbWFpbj4sbGVmdF9zd2l0Y2hlcykgICAgICA8aW50ZWdlcj4iCi0gICBwdXRzICRvcCAiIyBzZXQgdmFycyg8cG93ZXJfZG9tYWluPixyaWdodF9zd2l0Y2hlcykgICAgIDxpbnRlZ2VyPiIKLSAgIHB1dHMgJG9wICIjIC4uLiBkZWZpbmUgdGhlIG51bWJlciBvZiBzd2l0Y2hlcyBmb3IgZWFjaCBzaWRlIG9mIHRoZSBwb3dlciBkb21haW4iCi0gICBwdXRzICRvcCAiIyIKLQotICAgY2xvc2UgJG9wCi0KLSAgIFB1dHMgIjxGRj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIgotICAgUHV0cyAiPEZGPiBDcmVhdGVkIGxvdyBwb3dlciBjb25maWcgZmlsZSBcImxwX2NvbmZpZy5hdXRvLnRjbFwiIgotICAgUHV0cyAiPEZGPiAgICBUaGlzIGZpbGUgaXMgdXNlZCB0byBkZWZpbmUgdmFyaWFibGVzIHNwZWNpZmljIHRvIHRoZSBMUCBmb3VuZGF0aW9uIGZsb3cuIgotICAgUHV0cyAiPEZGPiAgICBBbGwgdGhlIGluZm9ybWFpdG9uIGluIHRoaXMgZmlsZSBpcyBvcHRpb25hbCBidXQgaXMgaW50ZW5kZWQgdG8gaGVscCAiCi0gICBQdXRzICI8RkY+ICAgIGF1dG9tYXRlIHNvbWUgb2YgdGhlIG1vc3QgY29tbW9uIExQIGNvbW1hbmRzLiAgUGxlYXNlIGVkaXQgYW5kIGNvcHkiCi0gICBQdXRzICI8RkY+ICAgIHRvIGxwX2NvbmZpZy50Y2wgdG8gZW5hYmxlIChtYWtlIHN1cmUgaXQgaXMgc291cmNlZCBmcm9tIHNldHVwLnRjbCkuIgotCi19Ci0KLXByb2MgY3JlYXRlX2ludnNfdGFnX2ZpbGUge30gewotCi0gICBnbG9iYWwgdmFycwotICAgZ2xvYmFsIHRhZ3MKLQotICAgc2V0IHN0ZXBzIFtsaXN0ICJmZWVkdGhyb3VnaCIgImFzc2lnbl9waW4iICJtb2RlbF9nZW4iICJwYXJ0aXRpb24iIFwKLSAgICAgICAgICAgICAgICAgImluaXQiICJwbGFjZSIgInByZWN0cyIgImN0cyIgInBvc3RjdHMiICJwb3N0Y3RzX2hvbGQiICJyb3V0ZSIgXAotICAgICAgICAgICAgICAgICAicG9zdHJvdXRlIiAicG9zdHJvdXRlX2hvbGQiICJzaWdub2ZmIiAiYXNzZW1ibGUiXQotCi0gICBzZXQgdGFncyhpbml0KSBbbGlzdCBcCi0gICAgICBzZXRfZGlzdHJpYnV0ZV9ob3N0IFwKLSAgICAgIHNldF9tdWx0aV9jcHVfdXNhZ2UgXAotICAgICAgc2V0X2Rpc3RyaWJ1dGVfaG9zdCBcCi0gICAgICBzZXRfbXVsdGlfY3B1X3VzYWdlIFwKLSAgICAgIHNldF9yY19mYWN0b3IgXAotICAgICAgZGVyYXRlX3RpbWluZyBcCi0gICAgICBjcmVhdGVfcmNfY29ybmVyIFwKLSAgICAgIGNyZWF0ZV9saWJyYXJ5X3NldCBcCi0gICAgICBjcmVhdGVfZGVsYXlfY29ybmVyIFwKLSAgICAgIGNyZWF0ZV9jb25zdHJhaW50X21vZGUgXAotICAgICAgY3JlYXRlX2FuYWx5c2lzX3ZpZXcgXAotICAgICAgdXBkYXRlX2RlbGF5X2Nvcm5lciBcCi0gICAgICB1cGRhdGVfbGlicmFyeV9zZXQgXAotICAgICAgZGVyYXRlX3RpbWluZyBcCi0gICAgICBzZXRfZGVmYXVsdF92aWV3IFwKLSAgICAgIHNldF9wb3dlcl9hbmFseXNpc19tb2RlIFwKLSAgICAgIGluaXRfZGVzaWduIFwKLSAgICAgIGxvYWRfZmxvb3JwbGFuIFwKLSAgICAgIGdlbmVyYXRlX3RyYWNrcyBcCi0gICAgICBsb2FkX2NwZiBcCi0gICAgICBjb21taXRfY3BmIFwKLSAgICAgIHJlYWRfYWN0aXZpdHlfZmlsZSBcCi0gICAgICBzcGVjaWZ5X2lsbSBcCi0gICAgICBsb2FkX2lsbV9ub25fc2RjX2ZpbGUgXAotICAgICAgaW5pdGlhbGl6ZV90aW1pbmcgXAotICAgICAgbG9hZF9zY2FuIFwKLSAgICAgIHNwZWNpZnlfc3BhcmVfZ2F0ZXMgXAotICAgICAgc2V0X2RvbnRfdXNlIFwKLSAgICAgIHNldF9tYXhfcm91dGVfbGF5ZXIgXAotICAgICAgc2V0X2Rlc2lnbl9tb2RlIFwKLSAgICAgIGluc2VydF93ZWxsdGFwc19lbmRjYXBzIFwKLSAgICAgIHRpbWVfZGVzaWduIFwKLSAgICAgIGNoZWNrX2Rlc2lnbiBcCi0gICAgICBjaGVja190aW1pbmcgXAotICAgICAgcmVwb3J0X3Bvd2VyX2RvbWFpbnMgXAotICAgICAgZmZfcmVwbGFjZV9mbGV4bW9kZWxfd2l0aF9mdWxsX25ldGxpc3QgXAotICAgXQotICAgc2V0IHRhZ3MocGxhY2UpIFtsaXN0IFwKLSAgICAgIHNldF9kaXN0cmlidXRlX2hvc3QgXAotICAgICAgc2V0X211bHRpX2NwdV91c2FnZSBcCi0gICAgICByZXN0b3JlX2Rlc2lnbiBcCi0gICAgICBpbml0aWFsaXplX3N0ZXAgXAotICAgICAgICAgc2V0X2Rlc2lnbl9tb2RlIFwKLSAgICAgICAgIHNldF9kZWxheV9jYWxfbW9kZSBcCi0gICAgICAgICBzZXRfcGxhY2VfbW9kZSBcCi0gICAgICAgICBzZXRfb3B0X21vZGUgXAotICAgICAgICAgc2V0X3RpZV9oaWxvX21vZGUgXAotICAgICAgICAgY2xlYW51cF9zcGVjaWZ5X2Nsb2NrX3RyZWUgXAotICAgICAgICAgc3BlY2lmeV9jbG9ja190cmVlIFwKLSAgICAgIHNwZWNpZnlfanRhZyBcCi0gICAgICBwbGFjZV9qdGFnIFwKLSAgICAgIHBsYWNlX2Rlc2lnbiBcCi0gICAgICBwbGFjZV9vcHRfZGVzaWduIFwKLSAgICAgIGFkZF90aWVfY2VsbHMgXAotICAgICAgdGltZV9kZXNpZ24gXAotICAgICAgc2F2ZV9kZXNpZ24gXAotICAgICAgcmVwb3J0X3Bvd2VyIFwKLSAgICAgIHZlcmlmeV9wb3dlcl9kb21haW4gXAotICAgICAgcnVuX2NscCBcCi0gICBdCi0gICBzZXQgdGFncyhwcmVjdHMpIFtsaXN0IFwKLSAgICAgIHNldF9kaXN0cmlidXRlX2hvc3QgXAotICAgICAgc2V0X211bHRpX2NwdV91c2FnZSBcCi0gICAgICBpbml0aWFsaXplX3N0ZXAgXAotICAgICAgICAgc2V0X2Rlc2lnbl9tb2RlIFwKLSAgICAgICAgIHNldF9pbG1fdHlwZSBcCi0gICAgICAgICBjbGVhbnVwX3NwZWNpZnlfY2xvY2tfdHJlZSBcCi0gICAgICAgICBjcmVhdGVfY2xvY2tfdHJlZV9zcGVjIFwKLSAgICAgICAgIHNwZWNpZnlfY2xvY2tfdHJlZSBcCi0gICAgICAgICBzZXRfdXNlZnVsX3NrZXdfbW9kZSBcCi0gICAgICAgICBzZXRfb3B0X21vZGUgXAotICAgICAgICAgc2V0X2Rlc2lnbl9tb2RlIFwKLSAgICAgICAgIHNldF9kZWxheV9jYWxfbW9kZSBcCi0gICAgICAgICBzZXRfZG9udF91c2UgXAotICAgICAgb3B0X2Rlc2lnbiBcCi0gICAgICBja19jbG9uZV9nYXRlIFwKLSAgICAgIHNhdmVfZGVzaWduIFwKLSAgICAgIHJlcG9ydF9wb3dlciBcCi0gICAgICB2ZXJpZnlfcG93ZXJfZG9tYWluIFwKLSAgICAgIHJ1bl9jbHAgXAotICAgXQotICAgc2V0IHRhZ3MoY3RzKSBbbGlzdCBcCi0gICAgICBzZXRfZGlzdHJpYnV0ZV9ob3N0IFwKLSAgICAgIHNldF9tdWx0aV9jcHVfdXNhZ2UgXAotICAgICAgaW5pdGlhbGl6ZV9zdGVwIFwKLSAgICAgICAgIHNldF9kZXNpZ25fbW9kZSBcCi0gICAgICAgICBzZXRfY3RzX21vZGUgXAotICAgICAgICAgc2V0X2Njb3B0X21vZGUgXAotICAgICAgICAgc2V0X25hbm9yb3V0ZV9tb2RlIFwKLSAgICAgIGVuYWJsZV9jbG9ja19nYXRlX2NlbGxzIFwKLSAgICAgIGNsZWFudXBfc3BlY2lmeV9jbG9ja190cmVlIFwKLSAgICAgIGNyZWF0ZV9jbG9ja190cmVlX3NwZWMgXAotICAgICAgc3BlY2lmeV9jbG9ja190cmVlIFwKLSAgICAgIGNsb2NrX2Rlc2lnbiBcCi0gICAgICBjY29wdF9kZXNpZ24gXAotICAgICAgZGlzYWJsZV9jbG9ja19nYXRlX2NlbGxzIFwKLSAgICAgIHJ1bl9jbG9ja19lY28gXAotICAgICAgdXBkYXRlX3RpbWluZyBcCi0gICAgICB0aW1lX2Rlc2lnbiBcCi0gICAgICBzYXZlX2Rlc2lnbiBcCi0gICAgICByZXBvcnRfcG93ZXIgXAotICAgICAgdmVyaWZ5X3Bvd2VyX2RvbWFpbiBcCi0gICAgICBydW5fY2xwIFwKLSAgIF0KLSAgIHNldCB0YWdzKHBvc3RjdHMpIFtsaXN0IFwKLSAgICAgIHNldF9kaXN0cmlidXRlX2hvc3QgXAotICAgICAgc2V0X211bHRpX2NwdV91c2FnZSBcCi0gICAgICBpbml0aWFsaXplX3N0ZXAgXAotICAgICAgICAgc2V0X2Rlc2lnbl9tb2RlIFwKLSAgICAgICAgIHNldF9kZWxheV9jYWxfbW9kZSBcCi0gICAgICAgICBzZXRfYW5hbHlzaXNfbW9kZSBcCi0gICAgICAgICBzZXRfb3B0X21vZGUgXAotICAgICAgb3B0X2Rlc2lnbiBcCi0gICAgICBzYXZlX2Rlc2lnbiBcCi0gICAgICByZXBvcnRfcG93ZXIgXAotICAgICAgdmVyaWZ5X3Bvd2VyX2RvbWFpbiBcCi0gICAgICBydW5fY2xwIFwKLSAgIF0KLSAgIHNldCB0YWdzKHBvc3RjdHNfaG9sZCkgW2xpc3QgXAotICAgICAgc2V0X2Rpc3RyaWJ1dGVfaG9zdCBcCi0gICAgICBzZXRfbXVsdGlfY3B1X3VzYWdlIFwKLSAgICAgIGluaXRpYWxpemVfc3RlcCBcCi0gICAgICAgICBzZXRfZG9udF91c2UgXAotICAgICAgICAgc2V0X29wdF9tb2RlIFwKLSAgICAgIG9wdF9kZXNpZ24gXAotICAgICAgc2F2ZV9kZXNpZ24gXAotICAgICAgcmVwb3J0X3Bvd2VyIFwKLSAgICAgIHZlcmlmeV9wb3dlcl9kb21haW4gXAotICAgICAgcnVuX2NscCBcCi0gICBdCi0gICBzZXQgdGFncyhyb3V0ZSkgW2xpc3QgXAotICAgICAgc2V0X2Rpc3RyaWJ1dGVfaG9zdCBcCi0gICAgICBzZXRfbXVsdGlfY3B1X3VzYWdlIFwKLSAgICAgIGluaXRpYWxpemVfc3RlcCBcCi0gICAgICAgICBzZXRfbmFub3JvdXRlX21vZGUgXAotICAgICAgICAgYWRkX2ZpbGxlcl9jZWxscyBcCi0gICAgICByb3V0ZV9zZWNvbmRhcnlfcGdfbmV0cyBcCi0gICAgICBjaGVja19wbGFjZSBcCi0gICAgICByb3V0ZV9kZXNpZ24gXAotICAgICAgcnVuX2Nsb2NrX2VjbyBcCi0gICAgICBzcHJlYWRfd2lyZXMgXAotICAgICAgaW5pdGlhbGl6ZV90aW1pbmcgXAotICAgICAgdGltZV9kZXNpZ24gXAotICAgICAgc2F2ZV9kZXNpZ24gXAotICAgICAgcmVwb3J0X3Bvd2VyIFwKLSAgICAgIHZlcmlmeV9wb3dlcl9kb21haW4gXAotICAgICAgcnVuX2NscCBcCi0gICBdCi0gICBzZXQgdGFncyhwb3N0cm91dGUpIFtsaXN0IFwKLSAgICAgIHNldF9kaXN0cmlidXRlX2hvc3QgXAotICAgICAgc2V0X211bHRpX2NwdV91c2FnZSBcCi0gICAgICBpbml0aWFsaXplX3N0ZXAgXAotICAgICAgICAgc2V0X2Rlc2lnbl9tb2RlIFwKLSAgICAgICAgIHNldF9leHRyYWN0X3JjX21vZGUgXAotICAgICAgICAgc2V0X2FuYWx5c2lzX21vZGUgXAotICAgICAgICAgc2V0X2RlbGF5X2NhbF9tb2RlIFwKLSAgICAgIGFkZF9tZXRhbGZpbGwgXAotICAgICAgb3B0X2Rlc2lnbiBcCi0gICAgICB0cmltX21ldGFsZmlsbCBcCi0gICAgICBzYXZlX2Rlc2lnbiBcCi0gICAgICByZXBvcnRfcG93ZXIgXAotICAgICAgdmVyaWZ5X3Bvd2VyX2RvbWFpbiBcCi0gICAgICBydW5fY2xwIFwKLSAgIF0KLSAgIHNldCB0YWdzKHBvc3Ryb3V0ZV9ob2xkKSBbbGlzdCBcCi0gICAgICBzZXRfZGlzdHJpYnV0ZV9ob3N0IFwKLSAgICAgIHNldF9tdWx0aV9jcHVfdXNhZ2UgXAotICAgICAgaW5pdGlhbGl6ZV9zdGVwIFwKLSAgICAgICAgIHNldF9kb250X3VzZV9tb2RlIFwKLSAgICAgICAgIHNldF9vcHRfbW9kZSBcCi0gICAgICBvcHRfZGVzaWduIFwKLSAgICAgIHRyaW1fbWV0YWxmaWxsIFwKLSAgICAgIHNhdmVfZGVzaWduIFwKLSAgICAgIHJlcG9ydF9wb3dlciBcCi0gICAgICB2ZXJpZnlfcG93ZXJfZG9tYWluIFwKLSAgICAgIHJ1bl9jbHAgXAotICAgXQotICAgc2V0IHRhZ3Moc2lnbm9mZikgW2xpc3QgXAotICAgICAgc2V0X2Rpc3RyaWJ1dGVfaG9zdCBcCi0gICAgICBzZXRfbXVsdGlfY3B1X3VzYWdlIFwKLSAgICAgIGluaXRpYWxpemVfdGltaW5nIFwKLSAgICAgIGluaXRpYWxpemVfc3RlcCBcCi0gICAgICAgICBzZXRfYW5hbHlzaXNfbW9kZSBcCi0gICAgICAgICBzZXRfZXh0cmFjdF9yY19tb2RlIFwKLSAgICAgIGV4dHJhY3RfcmMgXAotICAgICAgZHVtcF9zcGVmIFwKLSAgICAgIHNpZ25vZmZfdGltZV9kZXNpZ24gXAotICAgICAgdGltZV9kZXNpZ25fc2V0dXAgXAotICAgICAgdGltZV9kZXNpZ25faG9sZCBcCi0gICAgICBzdHJlYW1fb3V0IFwKLSAgICAgIHNhdmVfb2FfZGVzaWduIFwKLSAgICAgIGNyZWF0ZV9pbG0gXAotICAgICAgc3VtbWFyeV9yZXBvcnQgXAotICAgICAgdmVyaWZ5X2Nvbm5lY3Rpdml0eSBcCi0gICAgICB2ZXJpZnlfZ2VvbWV0cnkgXAotICAgICAgdmVyaWZ5X21ldGFsX2RlbnNpdHkgXAotICAgICAgdmVyaWZ5X3Byb2Nlc3NfYW50ZW5uYSBcCi0gICAgICBzYXZlX2Rlc2lnbiBcCi0gICAgICByZXBvcnRfcG93ZXIgXAotICAgICAgdmVyaWZ5X3Bvd2VyX2RvbWFpbiBcCi0gICAgICBydW5fY2xwIFwKLSAgIAotICAgXQotICAgc2V0IHRhZ3MoZmVlZHRocm91Z2gpIFtsaXN0IFwKLSAgICAgIGluaXRpYWxpemVfdGltaW5nIFwKLSAgICAgIGxvYWRfY3BmIFwKLSAgICAgIGNvbW1pdF9jcGYgXAotICAgICAgcnVuX2NscF9pbml0IFwKLSAgICAgIHNhdmVfaW5pdF9kYnMgXAotICAgICAgc2V0X2J1ZGdldGluZ19tb2RlIFwKLSAgICAgIHVwZGF0ZV9jb25zdHJhaW50X21vZGUgXAotICAgICAgc2V0X3B0bl91c2VyX2Nuc19maWxlIFwKLSAgICAgIHNldF9wbGFjZV9tb2RlIFwKLSAgICAgIHNldF9wcm90b19tb2RlbCBcCi0gICAgICBwbGFjZV9kZXNpZ24gXAotICAgICAgdGltZV9kZXNpZ24gXAotICAgICAgc2F2ZV9wbGFjZV9kYnMgXAotICAgICAgaW5zZXJ0X3B0bl9mZWVkdGhyb3VnaCBcCi0gICAgICB0cmlhbF9yb3V0ZSBcCi0gICAgICB0cmlhbF9yb3V0ZV90aW1lX2Rlc2lnbiBcCi0gICBdCi0gICBzZXQgdGFncyhhc3NpZ25fcGluKSBbbGlzdCBcCi0gICAgICBhc3NpZ25fcHRuX3BpbnMgXAotICAgICAgY2hlY2tfcGluX2Fzc2lnbm1lbnQgXAotICAgICAgcmVwb3J0X3VuYWxpZ25lZF9uZXRzIFwKLSAgICAgIHRyaWFsX3JvdXRlIFwKLSAgIF0KLSAgIHNldCB0YWdzKG1vZGVsX2dlbikgW2xpc3QgXAotICAgICAgY3JlYXRlX3BzX3Blcl9taWNyb25fbW9kZWwgXAotICAgICAgaWRlbnRpZnlfcHJvdG9fbW9kZWwgXAotICAgICAgcmVwb3J0X3Byb3RvX21vZGVsIFwKLSAgICAgIHNldElsbU1vZGUgXAotICAgICAgY3JlYXRlX3Byb3RvX21vZGVsIFwKLSAgICAgIGNyZWF0ZV9mbGV4ZmlsbGVyX3JvdXRlX2Jsb2NrYWdlIFwKLSAgICAgIHJlcG9ydF9wcm90b19tb2RlbCBcCi0gICAgICBzYXZlRGVzaWduIFwKLSAgIF0KLSAgIHNldCB0YWdzKHBhcnRpdGlvbikgW2xpc3QgXAotICAgICAgdGltZV9kZXNpZ25fcHJvdG8gXAotICAgICAgc2V0X3BzcG1fdmFycyBcCi0gICAgICBzZXRfYnVkZ2V0aW5nX21vZGUgXAotICAgICAgc2V0X3B0bl9waW5fc3RhdHVzIFwKLSAgICAgIGRlcml2ZV90aW1pbmdfYnVkZ2V0IFwKLSAgICAgIHNhdmVfYnVkZ2V0X2RicyBcCi0gICAgICBydW5fY2xwIFwKLSAgICAgIHBhcnRpdGlvbiBcCi0gICAgICBzYXZlX3BhcnRpdGlvbiBcCi0gICBdCi0gICBzZXQgdGFncyhhc3NlbWJsZSkgW2xpc3QgXAotICAgICAgYXNzZW1ibGVfZGVzaWduIFwKLSAgICAgIHNwZWNpZnlfaWxtIFwKLSAgICAgIGxvYWRfaWxtX25vbl9zZGNfZmlsZSBcCi0gICAgICBsb2FkX2NwZiBcCi0gICAgICBjb21taXRfY3BmIFwKLSAgICAgIGluaXRpYWxpemVfdGltaW5nIFwKLSAgICAgIHVwZGF0ZV90aW1pbmcgXAotICAgICAgcHJlX3NpZ25vZmZfZWNvX3ZlcmlmeV9jb25uZWN0aXZpdHkgXAotICAgICAgcHJlX3NpZ25vZmZfZWNvX3ZlcmlmeV9nZW9tZXRyeSBcCi0gICAgICBzZXRfbW9kdWxlX3ZpZXcgXAotICAgICAgZGVsZXRlX2ZpbGxlcl9jZWxscyBcCi0gICAgICBvcHRfZGVzaWduIFwKLSAgICAgIGV4dHJhY3RfcmMgXAotICAgICAgc2lnbm9mZl9vcHRfZGVzaWduIFwKLSAgICAgIHNpZ25vZmZfdGltZV9kZXNpZ24gXAotICAgICAgYWRkX2ZpbGxlcl9jZWxscyBcCi0gICAgICBlY29fcm91dGUgXAotICAgICAgcG9zdF9zaWdub2ZmX2Vjb192ZXJpZnlfY29ubmVjdGl2aXR5IFwKLSAgICAgIHBvc3Rfc2lnbm9mZl9lY29fdmVyaWZ5X2dlb21ldHJ5IFwKLSAgIF0KLQotICAgc2V0IG9wIFtvcGVuIGludnMuYXV0by50Y2wgd10KLQotICAgcHV0cyAkb3AgIiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyIKLSAgIHB1dHMgJG9wICIjICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDRE5TIEZPVU5EQVRJT04gRkxPVyIKLSAgIHB1dHMgJG9wICIjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iCi0gICBwdXRzICRvcCAiIyBUaGlzIGlzIHRoZSBmb3VuZGF0aW9uIGZsb3cgdGFncyBmaWxlLiAgRWFjaCBmbG93IHN0ZXAgaXMgYSBzZXF1ZW5jZSBvZiBjb21tYW5kcyBhbmQiIAotICAgcHV0cyAkb3AgIiMgZWFjaCBjb21tYW5kIGhhcyBhIHRhZyBhc3NvY2lhdGVkIHdpdGggaXQgYW5kIGVhY2ggdGFnIGhhcyBmb3VyIGF0dHJpYnV0ZXM6IgotICAgcHV0cyAkb3AgIiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIKLSAgIHB1dHMgJG9wICIjICAgICAgIHByZV90Y2wgLT4gZmlsZSB0byBiZSBzb3VyY2VkIHByaW9yIHRvIHRoZSBjb21tYW5kIgotICAgcHV0cyAkb3AgIiMgICAgICBwb3N0X3RjbCAtPiBmaWxlIHRvIGJlIHNvdXJjZWQgYWZ0ZXIgdGhlIGNvbW1hbmQiCi0gICBwdXRzICRvcCAiIyAgIHJlcGxhY2VfdGNsIC0+IGZpbGUgdG8gYmUgc291cmNlZCBpbnN0ZWFkIG9mIHRoZSBjb21tYW5kIgotICAgcHV0cyAkb3AgIiMgICAgICAgICAgc2tpcCAtPiBza2lwIHRoZSBjb21tYW5kIGVudGlyZWx5ICh0cnVlIHwgZmFsc2UpIgotICAgcHV0cyAkb3AgIiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIKLSAgIHB1dHMgJG9wICIjIFRoZXNlIGF0dHJpYnV0ZXMgcHJvdmlkZSBtb3JlIGdyYW51bGFyaXR5IHRoYXQgdGhlIHBsdWctaW5zIGFuZCBhcmUgaW50ZW5kZWQgdG8iCi0gICBwdXRzICRvcCAiIyBhbGxvdyBmb3IgZmxvdyBjdXN0b21pemF0aW9uIGF0IGEgdmVyeSBkZXRhaWxlZCBsZXZlbC4gIFRvIGVuYWJsZSwgc2ltcGx5IHVuY29tbWVudCIKLSAgIHB1dHMgJG9wICIjIHRoZSB0YWcsIGFzc2lnbiB0aGUgYXBwcm9wcmlhdGUgdmFsdWUsIGFuZCBtYWtlIHN1cmUgdGhpcyBmaWxlIGdldHMgc291cmNlZCIKLSAgIHB1dHMgJG9wICIjIGZyb20gdGhlIHNldHVwLnRjbCBvciBpbm5vdnVzX2NvbmZpZy50Y2wuICBLZWVwIGluIG1pbmQsIHRoZXNlIHRhZ3Mgd2lsbCBvbmx5IgotICAgcHV0cyAkb3AgIiMgYmUgZXZhbHVhdGVkIGlmIHRoZSBjb21tYW5kIHRoZXkgYXJlIGFzc29jaWF0ZWQgaXMgZXhlY3V0ZWQgYXMgcGFydCBvZiB0aGUgZmxvdyIKLSAgIHB1dHMgJG9wICIjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iCi0gICBwdXRzICRvcCAiIyAgICAgICAgIHZlcmJvc2UgLT4gUHJpbnQgdGFnIHJlbGF0ZWQgY29tbWVudHMgZm9yIGltcG9ydGVkIHRhZ3MiCi0gICBwdXRzICRvcCAiIyB2ZXJib3NpdHlfbGV2ZWwgLT4gUHJpbnQgdGFnIHJlbGF0ZWQgY29tbWVudHMgZm9yIEFMTCBwb3NzaWJsZSB0YWdzIFxbTE9XIHwgSElHSFxdIgotICAgcHV0cyAkb3AgIiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIKLQotICAgZm9yZWFjaCBzdGVwICRzdGVwcyB7Ci0gICAgICBmb3JlYWNoIGNvbW1hbmQgJHRhZ3MoJHN0ZXApIHsKLSAgICAgICAgIGZvcmVhY2ggdGFnICJwcmVfdGNsIHBvc3RfdGNsIHJlcGxhY2VfdGNsIHNraXAiIHsKLSAgICAgICAgICAgIHNldCBzdHJpbmcgIiNzZXQgdmFycygkc3RlcCwkY29tbWFuZCwkdGFnKSIKLSAgICAgICAgICAgIHNldCBsZW5ndGggW3N0cmluZyBsZW5ndGggJHN0cmluZ10KLSAgICAgICAgICAgIHNldCBkaWZmIFtleHByIDYwLSRsZW5ndGhdCi0gICAgICAgICAgICBzZXQgc3BhY2VzIFtzdHJpbmcgcmVwZWF0ICIgIiAkZGlmZl0KLSAgICAgICAgICAgIGlmIHskdGFnID09ICJza2lwIn0gewotICAgICAgICAgICAgICAgcHV0cyAkb3AgW2Zvcm1hdCAiJXMlcyVzIiAkc3RyaW5nICRzcGFjZXMgIjx0cnVlIG9yIGZhbHNlPiJdCi0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgcHV0cyAkb3AgW2Zvcm1hdCAiJXMlcyVzIiAkc3RyaW5nICRzcGFjZXMgIjxmaWxlPiJdCi0gICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0gICAgICB9Ci0gICAgICBwdXRzICRvcCAiIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIgotICAgfQotCi19Ci0KLXByb2MgcGFkIHthIHthZGQgMH19IHsKLSAgIAotICAgaWYge1tleHByIFtzdHJpbmcgbGVuZ3RoICRhXSArICRhZGRdIDwgNn0gewotICAgICAgcmV0dXJuICJcdFx0XHRcdCIKLSAgIH0gZWxzZWlmIHtbZXhwciBbc3RyaW5nIGxlbmd0aCAkYV0gKyAkYWRkXSA8IDEyfSB7IAotICAgICAgcmV0dXJuICJcdFx0XHQiCi0gICB9IGVsc2VpZiB7W2V4cHIgW3N0cmluZyBsZW5ndGggJGFdICsgJGFkZF0gPCAxOH0geyAKLSAgICAgIHJldHVybiAiXHRcdCIKLSAgIH0gZWxzZWlmIHtbZXhwciBbc3RyaW5nIGxlbmd0aCAkYV0gKyAkYWRkXSA8IDI0fSB7IAotICAgICAgcmV0dXJuICJcdCIKLSAgIH0KLQotfQotCi1wcm9jIGZvcm1hdF9zdHJpbmcge2EgYiB7bGFyZ2UgMH19IHsKLQotICAgc2V0IGFkZCAwCi0KLSAgIGlmIHtbcmVnZXhwICIjIiAkYV19IHsKLSAgICAgIHJlZ3N1YiAiIyIgJGEgIiIgYQotICAgICAgc2V0IGFkZCAxCi0gICB9Ci0KLSMgICBwdXRzICIkYSwgW3N0cmluZyBsZW5ndGggJGFdIgotCi0gICBpZiB7JGxhcmdlfSB7Ci0gICAgICBpZiB7W2V4cHIgW3N0cmluZyBsZW5ndGggJGFdICsgJGFkZF0gPCA0fSB7Ci0gICAgICAgICBzZXQgdGFicyAiXHRcdFx0XHRcdFx0XHRcdFx0XHQiCi0gICAgICB9IGVsc2VpZiB7W2V4cHIgW3N0cmluZyBsZW5ndGggJGFdICsgJGFkZF0gPCA4fSB7IAotICAgICAgICAgc2V0IHRhYnMgIlx0XHRcdFx0XHRcdFx0XHRcdCIKLSAgICAgIH0gZWxzZWlmIHtbZXhwciBbc3RyaW5nIGxlbmd0aCAkYV0gKyAkYWRkXSA8IDEyfSB7IAotICAgICAgICAgc2V0IHRhYnMgIlx0XHRcdFx0XHRcdFx0XHQiCi0gICAgICB9IGVsc2VpZiB7W2V4cHIgW3N0cmluZyBsZW5ndGggJGFdICsgJGFkZF0gPCAxNn0geyAKLSAgICAgICAgIHNldCB0YWJzICJcdFx0XHRcdFx0XHRcdCIKLSAgICAgIH0gZWxzZWlmIHtbZXhwciBbc3RyaW5nIGxlbmd0aCAkYV0gKyAkYWRkXSA8IDIwfSB7IAotICAgICAgICAgc2V0IHRhYnMgIlx0XHRcdFx0XHRcdCIKLSAgICAgIH0gZWxzZWlmIHtbZXhwciBbc3RyaW5nIGxlbmd0aCAkYV0gKyAkYWRkXSA8IDI0fSB7IAotICAgICAgICAgc2V0IHRhYnMgIlx0XHRcdFx0XHQiCi0gICAgICB9IGVsc2VpZiB7W2V4cHIgW3N0cmluZyBsZW5ndGggJGFdICsgJGFkZF0gPCAyOH0geyAKLSAgICAgICAgIHNldCB0YWJzICJcdFx0XHRcdCIKLSAgICAgIH0gZWxzZWlmIHtbZXhwciBbc3RyaW5nIGxlbmd0aCAkYV0gKyAkYWRkXSA8IDMyfSB7IAotICAgICAgICAgc2V0IHRhYnMgIlx0XHRcdCIKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgICBzZXQgdGFicyAiXHRcdCIKLSAgICAgIH0KLSAgIH0gZWxzZSB7Ci0gICAgICBpZiB7W2V4cHIgW3N0cmluZyBsZW5ndGggJGFdICsgJGFkZF0gPCA0fSB7Ci0gICAgICAgICBzZXQgdGFicyAiXHRcdFx0XHRcdFx0IgotICAgICAgfSBlbHNlaWYge1tleHByIFtzdHJpbmcgbGVuZ3RoICRhXSArICRhZGRdIDwgOH0geyAKLSAgICAgICAgIHNldCB0YWJzICJcdFx0XHRcdFx0IgotICAgICAgfSBlbHNlaWYge1tleHByIFtzdHJpbmcgbGVuZ3RoICRhXSArICRhZGRdIDwgMTJ9IHsgCi0gICAgICAgICBzZXQgdGFicyAiXHRcdFx0XHQiCi0gICAgICB9IGVsc2VpZiB7W2V4cHIgW3N0cmluZyBsZW5ndGggJGFdICsgJGFkZF0gPCAxNn0geyAKLSAgICAgICAgIHNldCB0YWJzICJcdFx0XHQiCi0gICAgICB9IGVsc2VpZiB7W2V4cHIgW3N0cmluZyBsZW5ndGggJGFdICsgJGFkZF0gPCAyMH0geyAKLSAgICAgICAgIHNldCB0YWJzICJcdFx0IgotICAgICAgfSBlbHNlIHsKLSAgICAgICAgIHNldCB0YWJzICJcdCIKLSAgICAgIH0KLSAgIH0KLQotICAgIyBIYW5kbGUgdGhlIGVtcHR5IHN0cmluZyBjb3JyZWN0bHkKLSAgIGlmIHskYiA9PSB7fX0geyBzZXQgYiB7e319IH0KLQotICAgaWYgeyRhZGR9IHsKLSAgICAgIHJldHVybiBbZm9ybWF0ICIjc2V0ICRhJXMlcyIgJHRhYnMgJGJdIAotICAgfSBlbHNlIHsKLSAgICAgIHJldHVybiBbZm9ybWF0ICJzZXQgJGElcyVzIiAkdGFicyAkYl0gCi0gICB9Ci19Ci0KLXByb2MgZ2V0X2xpbmVfbWF0Y2gge3BhdHRlcm4gZmlsZSB7bGFzdCAxfX0gewotCi0gICBzZXQgaXAgW29wZW4gJGZpbGUgcl0KLQotICAgd2hpbGUge1tnZXRzICRpcCBsaW5lXT49MH0gewotICAgICAgaWYge1tyZWdleHAgIiRwYXR0ZXJuIiAkbGluZV0+MH0gewotICAgICAgICBpZiB7JGxhc3R9IHsKLSAgICAgICAgICAgc2V0IG1hdGNoICRsaW5lCi0gICAgICAgICB9IGVsc2UgewotICAgICAgICAgICBsYXBwZW5kIG1hdGNoICRsaW5lCi0gICAgICAgICB9Ci0gICAgICB9Ci0gICB9Ci0gICBpZiB7W2luZm8gZXhpc3RzIG1hdGNoXX0geyAKLSAgICAgIHJldHVybiAkbWF0Y2gKLSAgIH0KLX0KLQotc2V0IG9wMSBbb3BlbiBzZXR1cC5hdXRvLnRjbCB3XQotc2V0IG9wMiBbb3BlbiBpbm5vdnVzX2NvbmZpZy5hdXRvLnRjbCB3XQotCi1wdXRzICRvcDEgIiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyIKLXB1dHMgJG9wMSAiIyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ0ROUyBGT1VOREFUSU9OIEZMT1ciCi1wdXRzICRvcDEgIiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIKLXB1dHMgJG9wMSAiIyBUaGlzIGlzIHRoZSBmb3VuZGF0aW9uIGZsb3cgc2V0dXAgZmlsZS4gIEl0IGNvbnRhaW5zIGFsbCB0aGUgbmVjZXNzYXJ5IGRlc2lnbiIKLXB1dHMgJG9wMSAiIyBkYXRhIHRvIGRyaXZlIGFsbCB0aGUgQ0ROUyBmb3VuZGF0aW9uIGZsb3dzLiBFYWNoIGZsb3cgY2FuIGFsc28gaGF2ZSBhbiIKLXB1dHMgJG9wMSAiIyBhZGRpdGlvbmFsIGNvbmZpZ3VyYXRpb24gZmlsZSB0byBkZWZpbmUgZmxvdyBzcGVjaWZpYyBpbmZvcm1hdGlvbjoiIAotcHV0cyAkb3AxICIjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iCi1wdXRzICRvcDEgIiMgSU5OT1ZVUyAtPiAgIGlubm92dXNfY29uZmlnLnRjbCAoZm9yIGZsYXQgYW5kIGhpZXIgaW1wbGVtZW50YXRpb24gZmxvd3MpIgotcHV0cyAkb3AxICIjICAgICAgICAgKyAgICAgbHBfY29uZmlnLnRjbCAoYWRkaXRpb25hbCBpbmZvcm1hdGlvbiBmb3IgZmxhdCBhbmQgaGllciBscCBmbG93cykiCi0jcHV0cyAkb3AxICIjICAgICAgICAgLT4gcHJvdG9fY29uZmlnLnRjbCAoZm9yIHRoZSBwcm90b3R5cGluZyBmbG93KSIKLSNwdXRzICRvcDEgIiMgICAgIEVUUyAtPiAgIGV0c19jb25maWcudGNsIgotI3B1dHMgJG9wMSAiIyAgICAgRVBTIC0+ICAgZXBzX2NvbmZpZy50Y2wiCi1wdXRzICRvcDEgIiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIKLXB1dHMgJG9wMSAiIyBBIHNpbmdsZSBzZXR1cC50Y2wgaXMgYWxsIHRoYXQgaXMgcmVxdWlyZWQuICBUaGVzZSBhZGRpdGlvbmFsIGZpbGVzIGFyZSB0byBlbmFibGUgIgotcHV0cyAkb3AxICIjIHRoZSBzaGFyaW5nIG9mIGEgc2V0dXAudGNsIChkZXNpZ24gZGF0YSkgYW1vbmdzdCBkZXNpZ24gZ3JvdXBzIHdoaWxlIGFsc28gYWxsb3dpbmciIAotcHV0cyAkb3AxICIjIGRpZmZlcmVudCBmbG93IG9wdGlvbnMgdG8gYmUgc2V0IGluIHRoZSAqX2NvbmZpZy5jbCBmaWxlcyBmb3IgZGlmZmVyZW50IGJsb2NrcyBvciBydW5zIgotcHV0cyAkb3AxICIjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMiCi1wdXRzICRvcDEgIiIKLQotcHV0cyAkb3AyICIjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMiCi1wdXRzICRvcDIgIiMgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElOTk9WVVMgRk9VTkRBVElPTiBGTE9XIgotcHV0cyAkb3AyICIjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iCi1wdXRzICRvcDIgIiMgVGhpcyBpcyB0aGUgSU5OT1ZVUyBmb3VuZGF0aW9uIGZsb3cgY29uZmlndXJhdGlvbiBmaWxlLiAgSXQgY29udGFpbnMgYWxsIHRoZSBuZWNlc3NhcnkgZmxvdyIKLXB1dHMgJG9wMiAiIyBvcHRpb25zIHRvIGRyaXZlIHRoZSBDRE5TIGZsYXQgYW5kL29yIGhpZXIgaW1wbGVtZW50YXRpb24gZmxvd3MuICIKLXB1dHMgJG9wMiAiIyBGb3IgbG93IHBvd2VyIGZsb3dzLCBhbiBvcHRpb25hbC9hZGRpdGlvbmFsIGNvbmZpZ3VyYXRpb24gZmlsZSAobHBfY29uZmlnLnRjbCkgY2FuIGJlICIKLXB1dHMgJG9wMiAiIyB1c2VkIHRvIGVuYWJsZSBsb3cgcG93ZXIgZm91bmRhdGlvbiBmbG93IGZlYXR1cmVzIGFuZCBkZWZpbmUgZG9tYWluIHNwZWNpZmljIGluZm9ybWF0aW9uLiIKLXB1dHMgJG9wMiAiIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIgotaWYgeyFbaW5mbyBleGlzdHMgdmFycyh2ZXJzaW9uKV19IHsKLSAgICBzZXQgdmFycyh2ZXJzaW9uKSAxNy4xLjAKLX0KLWlmIHtbbGluZGV4IFtzcGxpdCAkdmFycyh2ZXJzaW9uKSAiLiJdICAwXSA8PSAxMCAmJiBbbGxlbmd0aCBbYWxsX2FuYWx5c2lzX3ZpZXdzXV0gPT0gMn0gewotICAgcHV0cyAiQ29udmVydGluZyBkZWZhdWx0IHRpbWluZyBlbnZpcm9ubWVudCB0byBNTU1DIiAKLSAgIGNvbnYybW1tYwotfQotCi1nbG9iYWwgcmRhX0lucHV0Ci0KLXB1dHMgJG9wMSAiIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIgotcHV0cyAkb3AxICIjIFRoZSB2YXJpYWJsZSB2YXJzKHZlcnNpb24pIHRlbGxzIHRoZSBjb2RlIGdlbmVyYXRvciB3aGljaCB2ZXJzaW9uIG9mIElOTk9WVVMgeW91IHdpbGwgYmUiCi1wdXRzICRvcDEgIiMgdGFyZ2V0aW5nLiIKLXB1dHMgJG9wMSAiIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIgotcHV0cyAkb3AxICJzZXQgdmFycyh2ZXJzaW9uKSAkdmFycyh2ZXJzaW9uKSIKLSNwdXRzICRvcDEgIiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyIKLSNwdXRzICRvcDEgIiMgRm9yIG5vbi1jb2RnZW4gZmxvdywgdGhlIGZvbGxvd2luZyBtdXN0IGJlIHNldCAtIGl0IHNob3VsZCBwb2ludCB0byB0aGUgZm91bmRhdGlvbiAiIAotI3B1dHMgJG9wMSAiIyBmbG93IGluc3RhbGxhdGlvbiBkaXJlY3RvcnkiCi1wdXRzICRvcDEgIiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIKLSNwdXRzICRvcDEgIiNzZXQgdmFycyhzY3JpcHRfcm9vdCkgU0NSSVBUUyIKLSNwdXRzICRvcDEgIiIKLSNwdXRzICRvcDIgIiMgVGhlIHZhcnMoZmxvdykgdmFyaWFibGUgY2FuIGJlIHVzZWQgdG8gZGVmaW5lIHRoZSB0eXBlIG9mIGZsb3cgdG8gcnVuLiBJZiBub3Qgc2V0LCIgCi0jcHV0cyAkb3AyICIjIG1tbWMgd2lsbCBiZSB1c2VkLiAgU3VwcG9ydGVkIHZhbHVlcyBhcmU6IgotI3B1dHMgJG9wMiAiIyAgICAtIGRlZmF1bHQgKG1pbm1heCB0aW1pbmcpIgotI3B1dHMgJG9wMiAiIyAgICAtIHByX21tbWMgKG1pbm1heCB0aW1pbmcgcHJlLXJvdXRlLCBtbW1jIHRpbWluZyBwb3N0LXJvdXRlKSIKLSNwdXRzICRvcDIgIiMgICAgLSBtbW1jICAgIChtbW1jIHRpbWluZykiCi0jcHV0cyAkb3AyICIjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMiCi0jaWYge1tpbmZvIGV4aXN0cyA6OkNQRjo6Y3BmQ29tbWl0dGVkXX0gewotIyAgIHB1dHMgJG9wMiAic2V0IHZhcnMoZmxvdykgICAgIG1tbWMiCi0jfSBlbHNlIHsKLSMgICBwdXRzICRvcDIgInNldCB2YXJzKGZsb3cpICAgICBkZWZhdWx0IgotI30KLXB1dHMgJG9wMiAic2V0IHZhcnMocGx1Z19kaXIpIFBMVUcvSU5OT1ZVUyIKLXB1dHMgJG9wMiAic2V0IHZhcnMoZGJzX2RpcikgIERCUyIKLXB1dHMgJG9wMiAic2V0IHZhcnMobG9nX2RpcikgIExPRyIKLXB1dHMgJG9wMiAic2V0IHZhcnMocnB0X2RpcikgIFJQVCIKLXB1dHMgJG9wMiAiIyBZb3UgY2FuIHNldCBhIHJlcG9ydCBkaXJlY3RvcnkgcGVyIHN0ZXAgdXNpbmcgdmFycyg8c3RlcD4scnB0X2RpcikgLi4uIgotcHV0cyAkb3AyICIiCi0KLWlmIHtbaW5mbyBleGlzdHMgcmRhX0lucHV0KHVpX25ldGxpc3QpXX0gewotICAgc2V0IHZhcnMobmV0bGlzdCkgW2xpc3RdCi0gICBmb3JlYWNoICBmaWxlICRyZGFfSW5wdXQodWlfbmV0bGlzdCkgewotICAgICAgbGFwcGVuZCB2YXJzKG5ldGxpc3QpIFtmaWxlIG5vcm1hbGl6ZSAkZmlsZV0KLSAgIH0gIAotfSBlbHNlIHsKLSAgIGNhdGNoIHtzZXQgdmFycyhuZXRsaXN0KSBbZmlsZSBub3JtYWxpemUgW2xpbmRleCBbZ2V0X2xpbmVfbWF0Y2ggIlJlYWRpbmcgbmV0bGlzdCBmaWxlIiBbZ2V0TG9nRmlsZU5hbWVdXSAzXV19Ci19Ci1jYXRjaCB7c2V0IHZhcnMoZnBfZmlsZSkgW2ZpbGUgbm9ybWFsaXplIFtsaW5kZXggW2dldF9saW5lX21hdGNoICJSZWFkaW5nIGZsb29ycGxhbiIgW2dldExvZ0ZpbGVOYW1lXV0gNF1dfQotI2NhdGNoIHtzZXQgdmFycyhjdHNfc3BlYykgW3JlZ3N1YiAtYWxsICInIiAgW2xpbmRleCBbZ2V0X2xpbmVfbWF0Y2ggIlJlYWRpbmcgY2xvY2sgdHJlZSBzcGVjIGZpbGUiIFtnZXRMb2dGaWxlTmFtZV1dIDVdICIiXX0KLSNjYXRjaCB7c2V0IHZhcnMoY3RzX3NwZWMpIFtyZWdzdWIgLWFsbCAiXCIiICR2YXJzKGN0c19zcGVjKV0gIiJ9Ci1zZXQgdmFycyhjdHNfc3BlYykgIiIKLXNldCBzcGVjT3B0IFtja0dldENrU3BlY09wdGlvbl0KLSBmb3IgeyBzZXQgaSAwIH0geyAkaSA8IFtsbGVuZ3RoICRzcGVjT3B0XSB9IHsgaW5jciBpIH0gewotICAgaWYgeyBbc3RyaW5nIG1hdGNoIC1ub2Nhc2UgW2xpbmRleCAkc3BlY09wdCAkaV0gIi1maWxlIiBdIHx8ICBbc3RyaW5nIG1hdGNoIC1ub2Nhc2UgW2xpbmRleCAkc3BlY09wdCAkaV0gIi1zcGVjRmlsZSIgXSAgfSB7Ci0gICAgICBpbmNyIGkKLSAgICAgIHNldCBjbGtGaWxlIFtsaW5kZXggJHNwZWNPcHQgJGldCi0gICAgICBpZiB7IFtmaWxlIGV4aXN0cyAkY2xrRmlsZSBdIH0gewotICAgICAgICAgaWYgeyBbbHNlYXJjaCAtZXhhY3QgJHZhcnMoY3RzX3NwZWMpICRjbGtGaWxlXSA9PSAtMSB9IHsKLSAgICAgICAgICAgICAgbGFwcGVuZCB2YXJzKGN0c19zcGVjKSBbZmlsZSBub3JtYWxpemUgJGNsa0ZpbGVdCi0gICAgICAgICB9Ci0gICAgICB9Ci0gICB9Ci19Ci0KLWZvcmVhY2ggb3B0aW9uIFtnZXREZXNpZ25Nb2RlIC1xdWlldF0gewotICAgaWYge1tsaW5kZXggJG9wdGlvbiAwXSA9PSAicHJvY2VzcyJ9IHsKLSAgICAgIHNldCB2YXJzKHByb2Nlc3MpIFtsaW5kZXggJG9wdGlvbiAxXW5tCi0gICB9Ci19Ci1jYXRjaCB7c2V0IHZhcnMobWF4X3JvdXRlX2xheWVyKSBbZ2V0TWF4Um91dGVMYXllcl19Ci0KLXB1dHMgJG9wMSAiIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyIKLXB1dHMgJG9wMSAiIyBEZWZpbmUgZGVzaWduIGRhdGEgLi4uIgotcHV0cyAkb3AxICIjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIgotcHV0cyAkb3AxIFtmb3JtYXRfc3RyaW5nIHZhcnMoZGVzaWduKSBbZGJDZWxsTmFtZSBbZGJnVG9wQ2VsbF1dXQotCi1pZiB7W2xpbmRleCBbc3BsaXQgJHZhcnModmVyc2lvbikgIi4iXSAgMF0gPiAxMH0gewotICAgaWYge1tpbmZvIGV4aXN0cyBpbml0X3Zlcmlsb2ddICYmICgkaW5pdF92ZXJpbG9nICE9ICIiKX0geyAKLSAgICAgc2V0IHZhcnMobmV0bGlzdCkgJGluaXRfdmVyaWxvZwotICAgfQotICAgaWYge1tpbmZvIGV4aXN0cyBpbml0X29hX3JlZl9saWJdICYmICgkaW5pdF9vYV9yZWZfbGliICE9ICIiKX0geyAKLSAgICAgc2V0IHZhcnMob2FfcmVmX2xpYikgJGluaXRfb2FfcmVmX2xpYgotICAgfQotIyAgICAgIGNhdGNoIHtzZXQgcmVzdG9yZV9kZXNpZ24gW2dldF9saW5lX21hdGNoICJyZXN0b3JlRGVzaWduIiBbZ2V0TG9nRmlsZU5hbWVdfQotIyAgICAgIHNldCB2YXJzKG5ldGxpc3RfdHlwZSkgb2EKLSMgICAgICBzZXQgdmFycyhvYV9kZXNpZ25fbGliKSAgW2xpbmRleCAkcmVzdG9yZV9kZXNpZ24gMV0KLSMgICAgICBzZXQgdmFycyhvYV9kZXNpZ25fY2VsbCkgW2xpbmRleCAkcmVzdG9yZV9kZXNpZ24gMl0KLSMgICAgICBzZXQgdmFycyhvYV9kZXNpZ25fdmlldykgW2xpbmRleCAkcmVzdG9yZV9kZXNpZ24gM10KLSAgIGlmIHtbaW5mbyBleGlzdHMgaW5pdF9hYnN0cmFjdF92aWV3XSAmJiAoJGluaXRfYWJzdHJhY3RfdmlldyAhPSAiIil9IHsKLSAgICAgIHNldCB2YXJzKG9hX2Fic3RyYWN0X25hbWUpICRpbml0X2Fic3RyYWN0X3ZpZXcKLSAgIH0KLSAgIGlmIHtbaW5mbyBleGlzdHMgaW5pdF9vYV9kZXNpZ25fbGliXSAmJiAoJGluaXRfb2FfZGVzaWduX2xpYiAhPSAiIil9IHsKLSAgICAgIHNldCB2YXJzKG9hX2Rlc2lnbl9saWIpICRpbml0X29hX2Rlc2lnbl9saWIKLSAgIH0KLSAgIGlmIHtbaW5mbyBleGlzdHMgaW5pdF9vYV9kZXNpZ25fY2VsbF0gJiYgKCRpbml0X29hX2Rlc2lnbl9jZWxsICE9ICIiKX0gewotICAgICAgc2V0IHZhcnMob2FfZGVzaWduX2NlbGwpICRpbml0X29hX2Rlc2lnbl9jZWxsCi0gICB9Ci0gICBpZiB7W2luZm8gZXhpc3RzIGluaXRfb2FfZGVzaWduX3ZpZXddICYmICgkaW5pdF9vYV9kZXNpZ25fdmlldyAhPSAiIil9IHsKLSAgICAgIHNldCB2YXJzKG9hX2Rlc2lnbl92aWV3KSAkaW5pdF9vYV9kZXNpZ25fdmlldwotICAgfQotICAgaWYge1tpbmZvIGV4aXN0cyBpbml0X2Fic3RyYWN0X3ZpZXddICYmICgkaW5pdF9hYnN0cmFjdF92aWV3ICE9ICIiKX0gewotICAgICAgc2V0IHZhcnMob2FfYWJzdHJhY3RfbmFtZSkgJGluaXRfYWJzdHJhY3RfdmlldwotICAgfQotICAgaWYge1tpbmZvIGV4aXN0cyBpbml0X2xheW91dF92aWV3XSAmJiAoJGluaXRfbGF5b3V0X3ZpZXcgIT0gIiIpfSB7Ci0gICAgICBzZXQgdmFycyhvYV9sYXlvdXRfbmFtZSkgJGluaXRfbGF5b3V0X3ZpZXcKLSAgIH0KLSAgIHB1dHMgJG9wMSAiIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMiCi0gICBwdXRzICRvcDEgIiMgVmFyaWFibGVzIGZvciBPQSBkZXNpZ24gaW1wb3J0IGFuZCBleHBvcnQiCi0gICBwdXRzICRvcDEgIiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIgotICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKG9hX2Rlc2lnbl9saWIpXX0gewotICAgICAgcHV0cyAkb3AxICJzZXQgdmFycyhuZXRsaXN0X3R5cGUpICAgICBvYSIKLSAgICAgIHB1dHMgJG9wMSAic2V0IHZhcnMob2FfZGVzaWduX2xpYikgICAgJHZhcnMob2FfZGVzaWduX2xpYikiCi0gICB9IGVsc2UgewotICAgICAgcHV0cyAkb3AxICIjc2V0IHZhcnMob2FfZGVzaWduX2xpYikgICAgPE9BIGRlc2lnbiBsaWJyYXJ5PiIKLSAgIH0KLSAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhvYV9kZXNpZ25fY2VsbCldfSB7Ci0gICAgICBwdXRzICRvcDEgInNldCB2YXJzKG9hX2Rlc2lnbl9jZWxsKSAgICAkdmFycyhvYV9kZXNpZ25fY2VsbCkiCi0gICB9IGVsc2UgewotICAgICAgcHV0cyAkb3AxICIjc2V0IHZhcnMob2FfZGVzaWduX2NlbGwpICAgPE9BIGRlc2lnbiBjZWxsPiIKLSAgIH0KLSAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhvYV9kZXNpZ25fdmlldyldfSB7Ci0gICAgICBwdXRzICRvcDEgInNldCB2YXJzKG9hX2Rlc2lnbl92aWV3KSAgICAkdmFycyhvYV9kZXNpZ25fdmlldykiCi0gICB9IGVsc2UgewotICAgICAgcHV0cyAkb3AxICIjc2V0IHZhcnMob2FfZGVzaWduX3ZpZXcpICAgPE9BIGRlc2lnbiB2aWV3PiIKLSAgIH0KLSAgIHB1dHMgJG9wMSAiI3NldCB2YXJzKGRic19mb3JtYXQpICAgICAgIG9hIgotICAgaWYge1tpbmZvIGV4aXN0cyB2YXJzKG9hX3JlZl9saWIpXX0gewotICAgICAgcHV0cyAkb3AxICJzZXQgdmFycyhvYV9yZWZfbGliKSAgICAgICAgJHZhcnMob2FfcmVmX2xpYikiCi0gICB9IGVsc2UgewotICAgICAgcHV0cyAkb3AxICIjc2V0IHZhcnMob2FfcmVmX2xpYikgICAgICAgPE9BIHJlZmVyZW5jZSBsaWJyYXJ5PiIKLSAgIH0KLSAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhvYV9hYnN0cmFjdF9uYW1lKV19IHsKLSAgICAgIHB1dHMgJG9wMSAic2V0IHZhcnMob2FfYWJzdHJhY3RfbmFtZSkgICR2YXJzKG9hX2Fic3RyYWN0X25hbWUpIgotICAgfSBlbHNlIHsKLSAgICAgIHB1dHMgJG9wMSAiI3NldCB2YXJzKG9hX2Fic3RyYWN0X25hbWUpIDxPQSBhYnN0cmFjdCBuYW1lPiIKLSAgIH0KLSAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhvYV9sYXlvdXRfbmFtZSldfSB7Ci0gICAgICBwdXRzICRvcDEgInNldCB2YXJzKG9hX2xheW91dF9uYW1lKSAgICAkdmFycyhvYV9sYXlvdXRfbmFtZSkiCi0gICB9IGVsc2UgewotICAgICAgcHV0cyAkb3AxICIjc2V0IHZhcnMob2FfbGF5b3V0X25hbWUpICAgPE9BIGxheW91dCBuYW1lPiIKLSAgIH0KLSAgIGlmIHtbaW5mbyBleGlzdHMgdmFycyhuZXRsaXN0KV19IHsKLSMgICAgICBwdXRzICRvcDEgW2Zvcm1hdCAic2V0IHZhcnMobmV0bGlzdCklcyVzIiBbcGFkIHZhcnMobmV0bGlzdCldICR2YXJzKG5ldGxpc3QpXQotICAgICAgcHV0cyAkb3AxIFtmb3JtYXRfc3RyaW5nIHZhcnMobmV0bGlzdCkgXCIkdmFycyhuZXRsaXN0KVwiXQotICAgICAgcHV0cyAkb3AxIFtmb3JtYXRfc3RyaW5nIHZhcnMobmV0bGlzdF90eXBlKSB2ZXJpbG9nXQotICAgfQotICAgcHV0cyAkb3AxICIjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyIKLX0gZWxzZSB7Ci0gICBpZiB7W2luZm8gZXhpc3RzIHZhcnMobmV0bGlzdCldfSB7Ci0jICAgICAgcHV0cyAkb3AxIFtmb3JtYXQgInNldCB2YXJzKG5ldGxpc3QpJXMlcyIgW3BhZCB2YXJzKG5ldGxpc3QpXSAkdmFycyhuZXRsaXN0KV0KLSAgICAgIHB1dHMgJG9wMSBbZm9ybWF0X3N0cmluZyB2YXJzKG5ldGxpc3QpIFwiJHZhcnMobmV0bGlzdClcIl0KLSAgICAgIHB1dHMgJG9wMSBbZm9ybWF0X3N0cmluZyB2YXJzKG5ldGxpc3RfdHlwZSkgdmVyaWxvZ10KLSAgIH0KLSAgIHB1dHMgJG9wMSAiIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMiCi0gICBwdXRzICRvcDEgIiMgVmFyaWFibGVzIGZvciBPQSBkZXNpZ24gaW1wb3J0IGFuZCBleHBvcnQiCi0gICBwdXRzICRvcDEgIiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIgotICAgcHV0cyAkb3AxICIjc2V0IHZhcnMob2FfZGVzaWduX2xpYikgICAgPE9BIGRlc2lnbiBsaWJyYXJ5PiIKLSAgIHB1dHMgJG9wMSAiI3NldCB2YXJzKG9hX2Rlc2lnbl9jZWxsKSAgIDxPQSBkZXNpZ24gY2VsbD4iCi0gICBwdXRzICRvcDEgIiNzZXQgdmFycyhvYV9kZXNpZ25fdmlldykgICA8T0EgZGVzaWduIHZpZXc+IgotICAgcHV0cyAkb3AxICIjc2V0IHZhcnMob2FfcmVmX2xpYikgICAgICAgPE9BIHJlZmVyZW5jZSBsaWJyYXJ5PiIKLSAgIHB1dHMgJG9wMSAiI3NldCB2YXJzKG9hX2Fic3RyYWN0X25hbWUpIDxPQSBhYnN0cmFjdCBuYW1lPiIKLSAgIHB1dHMgJG9wMSAiI3NldCB2YXJzKG9hX2xheW91dF9uYW1lKSAgIDxPQSBsYXlvdXQgbmFtZT4iCi19Ci1pZiB7W2luZm8gZXhpc3RzIHZhcnMoZnBfZmlsZSldfSB7Ci0gICBwdXRzICRvcDEgW2Zvcm1hdF9zdHJpbmcgdmFycyhmcF9maWxlKSAkdmFycyhmcF9maWxlKV0KLX0gZWxzZSB7Ci0gICBwdXRzICRvcDEgW2Zvcm1hdF9zdHJpbmcgI3ZhcnMoZnBfZmlsZSkgPGZsb29ycGxhbl9maWxlPl0KLX0KLXB1dHMgJG9wMSBbZm9ybWF0X3N0cmluZyAjdmFycyhvYV9mcCkgPE9BX2Zsb29ycGxhbj5dCi1wdXRzICRvcDEgW2Zvcm1hdF9zdHJpbmcgI3ZhcnMoZGVmX2ZpbGVzKSA8ZGVmX2ZpbGVzPl0KLSNwdXRzICRvcDEgIiNzZXQgdmFycyhzY2FuX2RlZikgICAgICAgPHNjYW5fZGVmPiIKLXB1dHMgJG9wMSAiIyBOT1RFOiB2YXJzKGN0c19zcGVjKSBpcyBvbmx5IHJlcXVpcmVkIGZvciBjdHMgZmxvd3MuIgotcHV0cyAkb3AxICIjICAgICAgIEZvciBjY29wdCBmbG93cywgaXQgaXMgbm90IHJlcXVpcmVkIgotaWYge1tmaWxlIGV4aXN0cyAkdmFycyhjdHNfc3BlYyldfSB7Ci0gICBwdXRzICRvcDEgW2Zvcm1hdF9zdHJpbmcgdmFycyhjdHNfc3BlYykgXCIkdmFycyhjdHNfc3BlYylcIl0gCi19IGVsc2UgewotICAgcHV0cyAkb3AxIFtmb3JtYXRfc3RyaW5nICN2YXJzKGN0c19zcGVjKSA8Y3RzX3NwZWM+XQotfQotaWYge1tpbmZvIGV4aXN0cyB2YXJzKHByb2Nlc3MpXX0gewotICAgcHV0cyAkb3AxIFtmb3JtYXRfc3RyaW5nIHZhcnMocHJvY2VzcykgJHZhcnMocHJvY2VzcyldCi19IGVsc2UgewotICAgcHV0cyAkb3AxIFtmb3JtYXRfc3RyaW5nICN2YXJzKHByb2Nlc3MpIDxwcm9jZXNzPl0KLX0KLWlmIHtbaW5mbyBleGlzdHMgdmFycyhtYXhfcm91dGVfbGF5ZXIpXX0gewotICAgcHV0cyAkb3AxIFtmb3JtYXRfc3RyaW5nIHZhcnMobWF4X3JvdXRlX2xheWVyKSAkdmFycyhtYXhfcm91dGVfbGF5ZXIpXQotfSBlbHNlIHsKLSAgIHB1dHMgJG9wMSBbZm9ybWF0X3N0cmluZyAjdmFycyhtYXhfcm91dGVfbGF5ZXIpIDxtYXhfcm91dGVfbGF5ZXI+XQotfQotcHV0cyAkb3AxICIjIE5PVEU6IFdoZW4gZ2VuZXJhdGVfdHJhY2tzIGlzIHNldCwgdGhlIHRyYWNrcyBpbiB0aGUgREVGIGFyZSBpZ25vcmVkOyBldmVuIHRoZSBwaXRjaCIKLXB1dHMgJG9wMSAiIyAgICAgICBUbyBnZW5lcmF0ZSBuZXcgdHJhY2tzIGJ1dCBwcmVzZXJ2ZSB0aGUgcGl0Y2gsIHVzZSB2YXJzKGhvbm9yX3BpdGNoKSB0cnVlIgotcHV0cyAkb3AxIFtmb3JtYXRfc3RyaW5nICN2YXJzKGdlbmVyYXRlX3RyYWNrcykgIjx0cnVlIHwgZmFsc2U+Il0KLXB1dHMgJG9wMSBbZm9ybWF0X3N0cmluZyAjdmFycyhob25vcl9waXRjaCkgIjx0cnVlIHwgZmFsc2U+Il0KLWlmIHtbaW5mbyBleGlzdHMgcmRhX0lucHV0KHVpX3B3cm5ldCldICYmICgkcmRhX0lucHV0KHVpX3B3cm5ldCkgIT0gIiIpfSB7Ci0gICBwdXRzICRvcDEgInNldCB2YXJzKHBvd2VyX25ldHMpICAgXCIkcmRhX0lucHV0KHVpX3B3cm5ldClcIiIKLX0gZWxzZSB7Ci0gICBwdXRzICRvcDEgIiNzZXQgdmFycyhwb3dlcl9uZXRzKSAgICAgICAgICAgICA8bGlzdCBvZiBwb3dlciBuZXRzPiIKLX0KLWlmIHtbaW5mbyBleGlzdHMgcmRhX0lucHV0KHVpX2duZG5ldCldICYmICgkcmRhX0lucHV0KHVpX2duZG5ldCkgIT0gIiIpfSB7Ci0gICBwdXRzICRvcDEgInNldCB2YXJzKGdyb3VuZF9uZXRzKSAgXCIkcmRhX0lucHV0KHVpX2duZG5ldClcIiIKLX0gZWxzZSB7Ci0gICBwdXRzICRvcDEgIiNzZXQgdmFycyhncm91bmRfbmV0cykgICAgICAgICAgICA8bGlzdCBvZiBncm91bmQgbmV0cz4iCi19Ci1wdXRzICRvcDEgIiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyIKLXB1dHMgJG9wMSAiIyBGb3IgaGllcmFyY2hpY2FsIGRlc2lnbnMsIGRlZmluZSB2YXJzKHBhcnRpdGlvbl9saXN0KSB3aGljaCBzaG91bGQgYmUgYSBsaXN0ICIKLXB1dHMgJG9wMSAiIyBvZiBhbGwgZGVmaW5lZCBwYXJ0aXRpb25zIChETyBOT1QgSU5DTFVERSBUSEUgVE9QIFBBUlRJVElPTikuIgotcHV0cyAkb3AxICIjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iCi1wdXRzICRvcDEgIiMgVG8gYXNzaXN0IHRoZSBidWRnZXRpbmcgcHJvY2VzcywgYWxzbyBkZWZpbmUgdGhlIGZvbGxvd2luZyBmb3IgZWFjaCBwYXJ0aXRpb24iCi1wdXRzICRvcDEgIiMgLSBzZXQgdmFycyg8cGFydGl0aW9uPixjdHNfc3BlYykgPGZpbGU+IgotcHV0cyAkb3AxICIjIC0gc2V0IHZhcnMoPHBhcnRpdGlvbj4sbGF0ZW5jeV9zZGMpIDxmaWxlPiIKLXB1dHMgJG9wMSAiIyIKLXB1dHMgJG9wMSAiIyBUaGVzZSBmaWxlcyBzaG91bGQgY29udGFpbiB0aGUgZXhwZWN0ZWQgY2xvY2sgbGF0ZW5jeSBmb3IgdGhlIGNsb2NrIHRyZWUocykiCi1wdXRzICRvcDEgIiMgRm9yIGV4YW1wbGUsIGlmIHBhcnRpdGlvbiBBIGhhcyBhbiBleHBlY3RlZCBjbG9jayBsYXRlbmN5IG9mIDUwMHBzIG91dCBvZiBhIHRvdGFsIGNsb2NrIgotcHV0cyAkb3AxICIjIGxhdGVuY3kgb2YgMW5zLCB0aGUgdG9wIGxldmVsIGNvbnN0cmFpbnRzIHdvdWxkIGhhdmUgJ3NldF9jbG9ja19sYXRlbmN5IDEuMCA8Y2xvY2sgcGluPiciCi1wdXRzICRvcDEgIiMgYW5kIEEgd291bGQgaGF2ZSBhIGxhdGVuY3kgc2RjIGZpbGUgY29udGFpbmluZyAnc2V0X2Nsb2NrX2xhdGVuY3kgMC41IDxwdG4gY2xvY2sgcGluPiciCi1wdXRzICRvcDEgIiMgTGlrZXdpc2UsIHRoZSB0b3AgbGV2ZWwgQ1RTIHNwZWMgd291bGQgY29udGFpbiAnTWF4RGVsYXkgMW5zJyBhbmQgdGhlIHZhcnMoQSxjdHNfc3BlYykiCi1wdXRzICRvcDEgIiMgd291bGQgY29udGFpbiAnTWFjcm9Nb2RlbCBBLzxwdG4gY2xvY2sgcGluPiA1MDBwcyA1MDBwcyA1MDBwcyA1MDBwcyAwZkYiCi1wdXRzICRvcDEgIiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIKLXB1dHMgJG9wMSAiIyBEdXJpbmcgYXNzZW1ibHksIHRoZSBmb3VuZGF0aW9uIGZsb3cgZGVmYXVsdHMgdG8gYXNzZW1ibHkgdGhlICdzaWdub2ZmJyBkYXRhYmFzZXMiCi1wdXRzICRvcDEgIiMgZnJvbSBlYWNoIHBhcnRpdGlvbiBzdWItZGlyZWN0b3J5LiAgVG8gc3BlY2lmeSBhIGRpZmZlcmVudCBkYXRhYmFzZSB0byB1c2UgZm9yIGFueSIKLXB1dHMgJG9wMSAiIyBwYXJ0aXRpb24gKGluY2x1ZGluZyB0aGUgdG9wKSwgc3BlY2lmeSB0aGUgZm9sbG93aW5nOiIKLXB1dHMgJG9wMSAiIyAgICAtIHZhcnMoPHB0bj4sYXNzZW1ibGVfZGJzKSAgPHBhdGggdG8gSU5OT1ZVUyBkYXRhYmFzZSBkaXJlY3Rvcnk+IgotcHV0cyAkb3AxICIjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iCi1wdXRzICRvcDEgIiMgSWYgdmFycyh1c2VfZmxleG1vZGVscykgaXMgc2V0IHRvIHRydWUsIEZsZXhtb2RlbHMgd2lsbCBiZSB1c2VkLiBTb21lIGFkZGl0aW9uYWwiCi1wdXRzICRvcDEgIiMgb3B0aW9ucyBmb3IgZmxleG1vZGVsIHVzYWdlIGFyZToiCi1wdXRzICRvcDEgIiMgICAgc2V0IHZhcnModXNlX3Byb3RvX25ldF9kZWxheV9tb2RlbCkgZmFsc2UiCi1wdXRzICRvcDEgIiMgICAgc2V0IHZhcnMoZmxleG1vZGVsX2FzX3B0bikgdHJ1ZSIKLXB1dHMgJG9wMSAiIyAgICBzZXQgdmFycyhmbGV4bW9kZWxfYXJ0X2Jhc2VkKSB0cnVlIgotcHV0cyAkb3AxICIjICAgIHNldCB2YXJzKGNyZWF0ZV9mbGV4ZmlsbGVyX2Jsb2NrYWdlKSB0cnVlIgotcHV0cyAkb3AxICIjICAgIHNldCB2YXJzKGVuYWJsZV9ucmdyKSB0cnVlIgotcHV0cyAkb3AxICIjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iCi1wdXRzICRvcDEgIiMgSWYgdmFycyhpbnNlcnRfZmVlZHRocm91Z2gpIGlzIHNldCB0byB0cnVlLCBmZWVkdGhyb3VnaCBpbnNlcnRpb24gd2lsbCBiZSBjYWxsZWQiCi1wdXRzICRvcDEgIiMgIGJlZm9yZSBwYXJ0aXRpb25pbmcuIFNvbWUgYWRkaXRpb25hbCBvcHRpb25zIGZvciBwYXJ0aXRpb25pbmcgYXJlOiIKLXB1dHMgJG9wMSAiIyAgICBzZXQgdmFycyhhYnV0dGVkX2Rlc2lnbikgdHJ1ZSIKLXB1dHMgJG9wMSAiIyAgICBzZXQgdmFycyhwbGFjZW1lbnRfYmFzZWRfcHRuKSB0cnVlIgotcHV0cyAkb3AxICIjICAgIHNldCB2YXJzKGJ1ZGdldF9tb2RlKSB7IHRyaWFsX2lwbyBnaWdhX29wdCBwcm90b19uZXRfZGVsYXlfbW9kZWwgfSIKLXB1dHMgJG9wMSAiIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIgotcHV0cyAkb3AxICIjIEZsZXhpbG0gY3JlYXRpb24gY2FuIGJlIGVuYWJsZWQgZm9yIHRoZSBwYXJ0aXRpb25zLCB1c2luZyB2YXJzKGVuYWJsZV9mbGV4aWxtKSB0cnVlIgotcHV0cyAkb3AxICIjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iCi1wdXRzICRvcDEgIiMgRmluYWxseSwgZWFjaCBwYXJ0aXRpb24gY2FuIGhhdmUgaXRzIG93biBpbm5vdnVzX2NvbmZpZy50Y2wgKElOQ0xVRElORyBUSEUgVE9QIFBBUlRJVElPTikuIgotcHV0cyAkb3AxICIjIFRvIGVuYWJsZSB0aGlzLCBkZWZpbmUgdmFycyg8cGFydGl0aW9uPiw8aW5ub3Z1c19jb25maWdfdGNsPiIKLXB1dHMgJG9wMSAiIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIgotc2V0IHZhcnMocGFydGl0aW9uX2xpc3QpICIiCi1kYkZvckVhY2hDZWxsUHRuIFtkYkdldCB0b3BdIHB0biB7Ci0gICBsYXBwZW5kIHZhcnMocGFydGl0aW9uX2xpc3QpIFtkYlB0bk5hbWUgJHB0bl0KLX0KLWlmIHskdmFycyhwYXJ0aXRpb25fbGlzdCkgIT0gIiJ9IHsKLSAgIHB1dHMgJG9wMSAic2V0IHZhcnMocGFydGl0aW9uX2xpc3QpICAgICAgICBcW2xpc3QgJHZhcnMocGFydGl0aW9uX2xpc3QpXF0iCi0gICBmb3JlYWNoIHBhcnQgJHZhcnMocGFydGl0aW9uX2xpc3QpIHsKLSAgICAgIHB1dHMgJG9wMSAiI3NldCB2YXJzKCRwYXJ0LGN0c19zcGVjKSAgICAgICA8cGFydGl0aW9uIGN0cyBzcGVjIGZpbGU+IgotICAgICAgcHV0cyAkb3AxICIjc2V0IHZhcnMoJHBhcnQsbGF0ZW5jeV9zZGMpICAgIDxwYXJ0aXRpb24gbGF0ZW5jeSBzZGMgZmlsZT4iCi0gICAgICBwdXRzICRvcDEgIiNzZXQgdmFycygkcGFydCxhc3NlbWJsZV9kYnMpICAgPGRhdGFiYXNlIGRpcmVjdG9yeT4iCi0gICAgICBwdXRzICRvcDEgIiNzZXQgdmFycygkcGFydCxpbG1fZGlyKSAgICAgICAgPHBhdGggdG8gSUxNIGRpcmV0b3J5PiIKLSAgICAgIHB1dHMgJG9wMSAiI3NldCB2YXJzKCRwYXJ0LGxlZl9maWxlKSAgICAgICA8cGF0aCB0byBMRUYgZmlsZT4iCi0gICAgICBwdXRzICRvcDEgIiNzZXQgdmFycygkcGFydCxpbm5vdnVzX2NvbmZpZ190Y2wpIDxwYXJ0aXRpb24gc3BlY2lmaWMgaW5ub3Z1c19jb25maWcudGNsPiIKLSAgIH0KLX0gZWxzZSB7Ci0gICBwdXRzICRvcDEgIiNzZXQgdmFycyhwYXJ0aXRpb25fbGlzdCkgICAgICAgICAgICAgPGxpc3Qgb2YgcGFydGl0aW9ucz4iCi0gICBwdXRzICRvcDEgIiNzZXQgdmFycyg8cGFydGl0aW9uPixjdHNfc3BlYykgICAgICAgPHBhcnRpdGlvbiBjdHMgc3BlYyBmaWxlPiIKLSAgIHB1dHMgJG9wMSAiI3NldCB2YXJzKDxwYXJ0aXRpb24+LGxhdGVuY3lfc2RjKSAgICA8cGFydGl0aW9uIGxhdGVuY3kgc2RjIGZpbGU+IgotICAgcHV0cyAkb3AxICIjc2V0IHZhcnMoPHBhcnRpdGlvbj4sYXNzZW1ibGVfZGJzKSAgIDxkYXRhYmFzZSBkaXJlY3Rvcnk+IgotICAgcHV0cyAkb3AxICIjc2V0IHZhcnMoPHBhcnRpdGlvbj4saWxtX2RpcikgICAgICAgIDxwYXRoIHRvIElMTSBkaXJldG9yeT4iCi0gICBwdXRzICRvcDEgIiNzZXQgdmFycyg8cGFydGl0aW9uPixsZWZfZmlsZSkgICAgICAgPHBhdGggdG8gTEVGIGZpbGU+IgotICAgcHV0cyAkb3AxICIjc2V0IHZhcnMoPHBhcnRpdGlvbj4saW5ub3Z1c19jb25maWdfdGNsKSA8cGFydGl0aW9uIHNwZWNpZmljIGlubm92dXNfY29uZmlnLnRjbD4iCi19Ci0KLWlmIHsoIVtjYXRjaCB7ZGJHZXQgdG9wLmlzUHJvdG9Nb2RlbENvbW1pdHRlZH0gdmFsXSkgJiYgJHZhbH0gewotICAgcHV0cyAkb3AxICJzZXQgdmFycyh1c2VfZmxleG1vZGVscykgdHJ1ZSIKLX0gZWxzZSB7Ci0gICBwdXRzICRvcDEgIiNzZXQgdmFycyh1c2VfZmxleG1vZGVscykgPGJvb2xlYW4+IgotfQotCi1wdXRzICRvcDEgIiIKLQotcHV0cyAkb3AxICIjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIgotcHV0cyAkb3AxICIjIE9wdGlvbmFsbHkgZGVmaW5lIHVzZXIgSUxNcyB0byBiZSBzcGVjaWZpZWQgZHVyaW5nIHRoZSBmbG93LiBUaGVzZSB3aWxsIGJlIHNwZWNpZmllZCAiCi1wdXRzICRvcDEgIiMgZHVyaW5nIHRoZSBmbGF0IGluaXQgc3RlcCBhbmQgdGhlIGhpZXJhcmNoaWNhbCBwYXJ0aXRpb25pbmcgc3RlcC4gVGhlIElMTXMgc2hvdWxkIgotcHV0cyAkb3AxICIjIG5vdCBiZSBoaWVyYXJoaWNhbCBwYXJ0aXRpb25zICh0aGV5IGFyZSBoYW5kbGVkIGF1dG9tYXRpY2FsbHkuICBTZWUgYmVsb3cgZm9yICIKLXB1dHMgJG9wMSAiIyBoYW5kbGluZyBwYXJ0aXRpb24gSUxNcyBkdXJpbmcgcG9zdCBhc3NlbWJseSBjbG9zdXJlLiIKLXB1dHMgJG9wMSAiIyAtIHZhcnMoaWxtX2xpc3QpICA8bGlzdCBvZiBpbG0gbW9kdWxlcz4iCi1wdXRzICRvcDEgIiMgLSB2YXJzKDxpbG0+LGlsbV9kaXIpICA8cGF0aCB0byBJTE0gZGlyZXRvcnk+IgotcHV0cyAkb3AxICIjIC0gdmFycyg8aWxtPixsZWZfZmlsZSkgPHBhdGggdG8gTEVGIGZpbGU+IgotcHV0cyAkb3AxICIjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIgotcHV0cyAkb3AxICIjIHNldCB2YXJzKGlsbV9saXN0KSBcW2xpc3RcXSIKLWlmIHtbaW5mbyBleGlzdHMgcmRhX0lucHV0KHVpX2lsbWRpcildICYmICgkcmRhX0lucHV0KHVpX2lsbWRpcikgIT0gIiIpfSB7Ci0gICBzZXQgaWxtX2xpc3QgW2xpc3RdCi0gICBmb3Ige3NldCBpIDB9IHskaSA8IFtsbGVuZ3RoICRyZGFfSW5wdXQodWlfaWxtZGlyKV19IHtpbmNyIGl9IHsKLSAgICAgIHNldCBpbG0gW2xpbmRleCAkcmRhX0lucHV0KHVpX2lsbWRpcikgJGldCi0gICAgICBpbmNyIGkKLSAgICAgIHNldCBkaXIgW2xpbmRleCAkcmRhX0lucHV0KHVpX2lsbWRpcikgJGldCi0gICAgICBsYXBwZW5kIGlsbV9saXN0ICRpbG0KLSAgICAgIHNldCB2YXJzKCRpbG0saWxtX2RpcikgJGRpcgotICAgfQotICAgaWYgeyRpbG1fbGlzdCAhPSAiIn0gewotICAgICAgcHV0cyAkb3AxICJzZXQgdmFycyhpbG1fbGlzdCkgXFtsaXN0ICRpbG1fbGlzdFxdIgotICAgICAgZm9yZWFjaCBpbG0gJGlsbV9saXN0IHsKLSAgICAgICAgIHB1dHMgJG9wMSAic2V0IHZhcnMoJGlsbSxpbG1fZGlyKSAkdmFycygkaWxtLGlsbV9kaXIpIgotICAgICAgfQotICAgfQotfQotcHV0cyAkb3AxICIjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIgotcHV0cyAkb3AxICIjIERlZmluZSBsZWYgZmlsZXMgLi4uIgotcHV0cyAkb3AxICIjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIgotcHV0cyAkb3AxICJzZXQgdmFycyhsZWZfZmlsZXMpIFwiXFwiCi1mb3JlYWNoIGZpbGUgJHJkYV9JbnB1dCh1aV9sZWZmaWxlKSB7Ci0gICBwdXRzICRvcDEgIiAgIFtmaWxlIG5vcm1hbGl6ZSAkZmlsZV0gXFwiCi19Ci1wdXRzICRvcDEgIlwiIgotCi1wdXRzICRvcDEgIiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMiCi1wdXRzICRvcDEgIiMgRGVmaW5lIGxpYnJhcnkgc2V0cyAuLi4iCi1wdXRzICRvcDEgIiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iCi1wdXRzICRvcDEgIiMgc2V0IHZhcnMobGlicmFyeV9zZXRzKSA8bGlzdCBvZiBsaWJyYXJ5IHNldHM+IgotcHV0cyAkb3AxICIjIHNldCB2YXJzKDxzZXQ+LHRpbWluZykgPGxpc3Qgb2YgbGliIGZpbGVzPiIKLXB1dHMgJG9wMSAiIyBzZXQgdmFycyg8c2V0PixzaSkgPGxpc3Qgb2YgY2RiL3VkbiBmaWxlcz4iCi1wdXRzICRvcDEgIiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMiCi1zZXQgbGlicmFyeV9zZXRzIFtsaXN0XQotCi1mb3JlYWNoIGxpYnJhcnlfc2V0IFthbGxfbGlicmFyeV9zZXRzXSB7Ci0gICBpZiB7W2xsZW5ndGggW2FsbF9saWJyYXJ5X3NldHNdXSA+IDJ9IHsKLSMgICAgICBpZiB7W3JlZ2V4cCAiXmRlZmF1bHQiICRsaWJyYXJ5X3NldF0gPT0gMH0gewotICAgICAgICAgaWYge1tpbmZvIGV4aXN0cyA6OkNQRjo6Y3BmQ29tbWl0dGVkXX0gewotICAgICAgICAgICAgaWYgeyhbcmVnZXhwICJeZG9tYWluXyIgJGxpYnJhcnlfc2V0XSA9PSAwKX0gewotICAgICAgICAgICAgICAgbGFwcGVuZCBsaWJyYXJ5X3NldHMgJGxpYnJhcnlfc2V0Ci0gICAgICAgICAgICB9Ci0gICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgbGFwcGVuZCBsaWJyYXJ5X3NldHMgJGxpYnJhcnlfc2V0Ci0gICAgICAgICB9Ci0jICAgICAgfQotICAgfSBlbHNlIHsKLSAgICAgIGxhcHBlbmQgbGlicmFyeV9zZXRzICRsaWJyYXJ5X3NldAotICAgfQotfQotCi1pZiB7JGxpYnJhcnlfc2V0cyAhPSAiIn0gewotICAgcHV0cyAkb3AxICJzZXQgdmFycyhsaWJyYXJ5X3NldHMpIFwiJGxpYnJhcnlfc2V0c1wiIgotfQotCi1mb3JlYWNoIGxpYnJhcnlfc2V0ICRsaWJyYXJ5X3NldHMgewotICAgZm9yZWFjaCBvcHRpb24gInRpbWluZyBzaSBhb2N2IiB7Ci0gICAgICBpZiB7W2dldF9saWJyYXJ5X3NldCAkbGlicmFyeV9zZXQgLSRvcHRpb25dICE9ICIifSB7Ci0gICAgICAgICBzZXQgZmlsZV9saXN0IFtnZXRfbGlicmFyeV9zZXQgJGxpYnJhcnlfc2V0IC0kb3B0aW9uXQotICAgICAgICAgcHV0cyAkb3AxICJzZXQgdmFycygkbGlicmFyeV9zZXQsJG9wdGlvbikgXCJcXCIKLSAgICAgICAgIGZvcmVhY2ggZmlsZSAkZmlsZV9saXN0IHsKLSAgICAgICAgICAgIHB1dHMgJG9wMSAiICAgW2ZpbGUgbm9ybWFsaXplICRmaWxlXSBcXCIgCi0gICAgICAgICB9IAotICAgICAgICAgcHV0cyAkb3AxICJcIiIgCi0gICAgICB9Ci0gICB9Ci19Ci0KLXB1dHMgJG9wMSAiIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyIKLXB1dHMgJG9wMSAiIyBEZWZpbmUgcmMgY29ybmVycyAuLi4iCi1wdXRzICRvcDEgIiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iCi1wdXRzICRvcDEgIiMgc2V0IHZhcnMocmNfY29ybmVycykgPGxpc3Qgb2YgcmMgY29ybmVycz4iCi1wdXRzICRvcDEgIiMgc2V0IHZhcnMoPHJjX2Nvcm5lcj4sVCkgPHRlbXBlcmF0dXJlPiIKLXB1dHMgJG9wMSAiIyBzZXQgdmFycyg8cmNfY29ybmVyPixjYXBfdGFibGUpIDxjYXAgdGFibGUgZm9yIGNvcm5lcj4iCi1wdXRzICRvcDEgIiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMiCi1zZXQgcmNfY29ybmVycyBbbGlzdF0KLWZvcmVhY2ggcmNfY29ybmVyIFthbGxfcmNfY29ybmVyc10gewotIyAgIGlmIHtbbGxlbmd0aCBbYWxsX3JjX2Nvcm5lcnNdXSA+IDF9IHsKLSMgICAgICBpZiB7W3JlZ2V4cCAiXmRlZmF1bHQiICRyY19jb3JuZXIgXSA9PSAwfSB7Ci0jICAgICAgICAgbGFwcGVuZCByY19jb3JuZXJzICRyY19jb3JuZXIKLSMgICAgICB9Ci0jICAgfSBlbHNlIHsKLSAgICAgIGxhcHBlbmQgcmNfY29ybmVycyAkcmNfY29ybmVyCi0jICAgfQotfQotaWYgeyRyY19jb3JuZXJzICE9ICIifSB7Ci0gICBwdXRzICRvcDEgInNldCB2YXJzKHJjX2Nvcm5lcnMpIFwiJHJjX2Nvcm5lcnNcIiIKLX0KLWZvcmVhY2ggcmNfY29ybmVyICRyY19jb3JuZXJzIHsKLSAgIGZvcmVhY2ggb3B0aW9uICJUIGNhcF90YWJsZSIgewotICAgICAgaWYge1tnZXRfcmNfY29ybmVyICRyY19jb3JuZXIgLSRvcHRpb25dICE9ICIifSB7Ci0gICAgICAgICBpZiB7JG9wdGlvbiA9PSAiY2FwX3RhYmxlIn0gewotICAgICAgICAgICAgcHV0cyAkb3AxICJzZXQgdmFycygkcmNfY29ybmVyLCRvcHRpb24pIFtmaWxlIG5vcm1hbGl6ZSBbZ2V0X3JjX2Nvcm5lciAkcmNfY29ybmVyIC0kb3B0aW9uXV0iCi0gICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgcHV0cyAkb3AxICJzZXQgdmFycygkcmNfY29ybmVyLCRvcHRpb24pIFtnZXRfcmNfY29ybmVyICRyY19jb3JuZXIgLSRvcHRpb25dIiAKLSAgICAgICAgIH0KLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgICBpZiB7KCRvcHRpb24gPT0gIlQiKSAmJiAoW2dldF9yY19jb3JuZXIgJHJjX2Nvcm5lciAtJG9wdGlvbl0gPT0gIiIpfSB7Ci0gICAgICAgICAgICBwdXRzICRvcDEgIiNzZXQgdmFycygkcmNfY29ybmVyLCRvcHRpb24pIDI1IDsgIyBFRElUIEZPUiBDT1JSRUNUIFQgVkFMVUUiCi0gICAgICAgICB9Ci0gICAgICAgICBpZiB7KCRvcHRpb24gPT0gImNhcF90YWJsZSIpICYmIChbZ2V0X3JjX2Nvcm5lciAkcmNfY29ybmVyIC0kb3B0aW9uXSA9PSAiIil9IHsKLSAgICAgICAgICAgIHB1dHMgJG9wMSAiI3NldCB2YXJzKCRyY19jb3JuZXIsJG9wdGlvbikgOyAjIEVESVQgRk9SIENPUlJFQ1QgQ0FQIFRBQkxFIERFRklOSVRJT04iCi0gICAgICAgICB9Ci0gICAgICB9Ci0gICB9Ci0gICBwdXRzICRvcDEgIiNzZXQgdmFycygkcmNfY29ybmVyLGF0Zl9maWxlKSIKLX0KLQotcHV0cyAkb3AxICIjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIgotcHV0cyAkb3AxICIjIE9wdGlvbmFsbHkgZGVmaW5lIFFSQyB0ZWNobm9sb2d5IGluZm9ybWF0aW9uIgotcHV0cyAkb3AxICIjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIgotcHV0cyAkb3AxICIjIHNldCB2YXJzKDxyY19jb3JuZXI+LHF4X3RlY2hfZmlsZSkgPHF4X3RlY2hfZmlsZSBmb3IgY29ybmVyPiIKLXB1dHMgJG9wMSAiIyBzZXQgdmFycyg8cmNfY29ybmVyPixxeF9saWJfZmlsZSkgIDxxeF9saWJfZmlsZSBmb3IgY29ybmVyPiIKLXB1dHMgJG9wMSAiIyBzZXQgdmFycyg8cmNfY29ybmVyPixxeF9jb25mX2ZpbGUpIDxxeF9jb25mX2ZpbGUgZm9yIGNvcm5lcj4iCi1wdXRzICRvcDEgIiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMiCi1mb3JlYWNoIHJjX2Nvcm5lciAkcmNfY29ybmVycyB7Ci0gICBmb3JlYWNoIG9wdGlvbiAicXhfdGVjaF9maWxlIHF4X2xpYl9maWxlIHF4X2NvbmZfZmlsZSIgewotICAgICAgaWYge1tnZXRfcmNfY29ybmVyICRyY19jb3JuZXIgLSRvcHRpb25dICE9ICIifSB7Ci0gICAgICAgICBwdXRzICRvcDEgInNldCB2YXJzKCRyY19jb3JuZXIsJG9wdGlvbikgW2ZpbGUgbm9ybWFsaXplIFtnZXRfcmNfY29ybmVyICRyY19jb3JuZXIgLSRvcHRpb25dXSIgCi0gICAgICB9Ci0gICB9Ci19Ci0KLXB1dHMgJG9wMSAiIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyIKLXB1dHMgJG9wMSAiIyBTY2FsZSBmYWN0b3JzIGFyZSBhbHNvIG9wdGlvbmFsIGJ1dCBhcmUgc3Ryb25nbHkgZW5jb3VyYWdlZCBmb3IgcHJlX3JvdXRlIG9wdGltaXphdGlvbiAiCi1wdXRzICRvcDEgIiMgaW4gb3JkZXIgdG8gb2J0YWluIHRoZSBiZXN0IGZsb3cgY29udmVyZ2VuY2UgYW5kIFFvUi4gIFNjYWxpbmcgZmFjdG9ycyBhcmUgYXBwbGllZCBwZXIiCi1wdXRzICRvcDEgIiMgcmMgY29ybmVyIGJ5IHNldHRpbmcgdGhlIGluZGl2aWR1YWwgdmFsdWVzIE9SIHZpYSBhIHNjYWxlX3RjbCBmaWxlIHdoaWNoIG11c3QgY29udGFpbiIgCi1wdXRzICRvcDEgIiMgc3ludGFjdGljYWxseSBjb3JyZWN0IHVwZGF0ZV9yY19jb3JuZXIgY29tbWFuZHMgZm9yIGEgZ2l2ZW4gcmNfY29ybmVyIgotcHV0cyAkb3AxICIjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIgotcHV0cyAkb3AxICIjIHNldCB2YXJzKDxyY19jb3JuZXI+LHNjYWxlX3RjbCkgICAgICAgICAgICAgICAgIDxmaWxlPiIKLXB1dHMgJG9wMSAiIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIKLXB1dHMgJG9wMSAiIyBzZXQgdmFycyg8cmNfY29ybmVyPixwcmVfcm91dGVfcmVzX2ZhY3RvcikgICAgICA8cHJlLXJvdXRlIHJlc2lzdGFuY2Ugc2NhbGUgZmFjdG9yPiIKLXB1dHMgJG9wMSAiIyBzZXQgdmFycyg8cmNfY29ybmVyPixwcmVfcm91dGVfY2xrX3Jlc19mYWN0b3IpICA8cHJlLXJvdXRlIGNsb2NrIHJlc2lzdGFuY2Ugc2NhbGUgZmFjdG9yPiIKLXB1dHMgJG9wMSAiIyBzZXQgdmFycyg8cmNfY29ybmVyPixwb3N0X3JvdXRlX3Jlc19mYWN0b3IpICAgICA8cG9zdC1yb3V0ZSByZXNpc3RhbmNlIHNjYWxlIGZhY3RvciAodHJpcGxldHMpPiIKLXB1dHMgJG9wMSAiIyBzZXQgdmFycyg8cmNfY29ybmVyPixwb3N0X3JvdXRlX2Nsa19yZXNfZmFjdG9yKSA8cG9zdC1yb3V0ZSBjbG9jayByZXNpc3RhbmNlIHNjYWxlIGZhY3Rvcj4iCi1wdXRzICRvcDEgIiMgc2V0IHZhcnMoPHJjX2Nvcm5lcj4scHJlX3JvdXRlX2NhcF9mYWN0b3IpICAgICAgPHByZS1yb3V0ZSBjYXBhY2l0YW5jZSBzY2FsZSBmYWN0b3I+IgotcHV0cyAkb3AxICIjIHNldCB2YXJzKDxyY19jb3JuZXI+LHByZV9yb3V0ZV9jbGtfY2FwX2ZhY3RvcikgIDxwcmUtcm91dGUgY2xvY2sgY2FwYWNpdGFuY2Ugc2NhbGUgZmFjdG9yPiIKLXB1dHMgJG9wMSAiIyBzZXQgdmFycyg8cmNfY29ybmVyPixwb3N0X3JvdXRlX2NhcF9mYWN0b3IpICAgICA8cG9zdC1yb3V0ZSBjYXBhY2l0YW5jZSBzY2FsZSBmYWN0b3IgKHRyaXBsZXRzKT4iCi1wdXRzICRvcDEgIiMgc2V0IHZhcnMoPHJjX2Nvcm5lcj4scG9zdF9yb3V0ZV9jbGtfY2FwX2ZhY3RvcikgPHBvc3Qtcm91dGUgY2xvY2sgY2FwYWNpdGFuY2Ugc2NhbGUgZmFjdG9yPiIKLXB1dHMgJG9wMSAiIyBzZXQgdmFycyg8cmNfY29ybmVyPixwb3N0X3JvdXRlX3hjYXBfZmFjdG9yKSAgICA8cG9zdC1yb3V0ZSBjb3VwbGluZyBjYXBhY2l0YW5jZSBzY2FsZSBmYWN0b3IgKHRyaXBsZXRzKT4iCi1wdXRzICRvcDEgIiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMiCi0KLWZvcmVhY2ggcmNfY29ybmVyICRyY19jb3JuZXJzIHsKLSAgIGlmIHtbZ2V0X3JjX2Nvcm5lciAkcmNfY29ybmVyIC1wcmVSb3V0ZV9yZXNdICE9ICIifSB7Ci0gICAgICBwdXRzICRvcDEgInNldCB2YXJzKCRyY19jb3JuZXIscHJlX3JvdXRlX3Jlc19mYWN0b3IpIFx0XHRbZm9ybWF0ICU0LjJmIFtleHByIFtnZXRfcmNfY29ybmVyICRyY19jb3JuZXIgLXByZVJvdXRlX3Jlc10qMS4wXV0iIAotICAgfQotICAgaWYge1tnZXRfcmNfY29ybmVyICRyY19jb3JuZXIgLXByZVJvdXRlX2Nsa3Jlc10gIT0gIiJ9IHsKLSAgICAgIHB1dHMgJG9wMSAic2V0IHZhcnMoJHJjX2Nvcm5lcixwcmVfcm91dGVfY2xrX3Jlc19mYWN0b3IpIFx0W2Zvcm1hdCAlNC4yZiBbZXhwciBbZ2V0X3JjX2Nvcm5lciAkcmNfY29ybmVyIC1wcmVSb3V0ZV9jbGtyZXNdKjEuMF1dIiAKLSAgICB9Ci0gICBpZiB7W2dldF9yY19jb3JuZXIgJHJjX2Nvcm5lciAtcG9zdFJvdXRlX3Jlc10gIT0gIiJ9IHsKLSAgICAgIHNldCB0cmlwbGV0cyBbZ2V0X3JjX2Nvcm5lciAkcmNfY29ybmVyIC1wb3N0Um91dGVfcmVzXQotICAgICAgc2V0IHNjYWxhciBbbGluZGV4ICR0cmlwbGV0cyAwXQotICAgICAgaWYge1tsbGVuZ3RoICRzY2FsYXJdID09IDF9IHsKLSAgICAgICAgIHNldCBwc3RyaW5nIFtmb3JtYXQgIiU0LjJmICU0LjJmICU0LjJmIiBbZXhwciBbbGluZGV4ICRzY2FsYXIgMF0qMS4wXSAxLjAgMS4wXQotICAgICAgfQotICAgICAgaWYge1tsbGVuZ3RoICRzY2FsYXJdID09IDJ9IHsKLSAgICAgICAgIHNldCBwc3RyaW5nIFtmb3JtYXQgIiU0LjJmICU0LjJmICU0LjJmIiBbZXhwciBbbGluZGV4ICRzY2FsYXIgMF0qMS4wXSBbZXhwciBbbGluZGV4ICRzY2FsYXIgMV0qMS4wXSAxLjBdCi0gICAgICB9Ci0gICAgICBpZiB7W2xsZW5ndGggJHNjYWxhcl0gPT0gM30gewotICAgICAgICAgc2V0IHBzdHJpbmcgW2Zvcm1hdCAiJTQuMmYgJTQuMmYgJTQuMmYiIFtleHByIFtsaW5kZXggJHNjYWxhciAwXSoxLjBdIFtleHByIFtsaW5kZXggJHNjYWxhciAxXSoxLjBdIFtleHByIFtsaW5kZXggJHNjYWxhciAyXSoxLjBdXQotICAgICAgfQotICAgICAgcHV0cyAkb3AxICJzZXQgdmFycygkcmNfY29ybmVyLHBvc3Rfcm91dGVfcmVzX2ZhY3RvcikgXHRcdFwiJHBzdHJpbmdcIiIKLSAgIH0KLSAgIGlmIHtbZ2V0X3JjX2Nvcm5lciAkcmNfY29ybmVyIC1wb3N0Um91dGVfY2xrcmVzXSAhPSAiIn0gewotICAgICAgc2V0IHRyaXBsZXRzIFtnZXRfcmNfY29ybmVyICRyY19jb3JuZXIgLXBvc3RSb3V0ZV9jbGtyZXNdCi0gICAgICBzZXQgc2NhbGFyIFtsaW5kZXggJHRyaXBsZXRzIDBdCi0gICAgICBpZiB7W2xsZW5ndGggJHNjYWxhcl0gPT0gMX0gewotICAgICAgICAgc2V0IHBzdHJpbmcgW2Zvcm1hdCAiJTQuMmYgJTQuMmYgJTQuMmYiIFtleHByIFtsaW5kZXggJHNjYWxhciAwXSoxLjBdIDEuMCAxLjBdCi0gICAgICB9Ci0gICAgICBpZiB7W2xsZW5ndGggJHNjYWxhcl0gPT0gMn0gewotICAgICAgICAgc2V0IHBzdHJpbmcgW2Zvcm1hdCAiJTQuMmYgJTQuMmYgJTQuMmYiIFtleHByIFtsaW5kZXggJHNjYWxhciAwXSoxLjBdIFtleHByIFtsaW5kZXggJHNjYWxhciAxXSoxLjBdIDEuMF0KLSAgICAgIH0KLSAgICAgIGlmIHtbbGxlbmd0aCAkc2NhbGFyXSA9PSAzfSB7Ci0gICAgICAgICBzZXQgcHN0cmluZyBbZm9ybWF0ICIlNC4yZiAlNC4yZiAlNC4yZiIgW2V4cHIgW2xpbmRleCAkc2NhbGFyIDBdKjEuMF0gW2V4cHIgW2xpbmRleCAkc2NhbGFyIDFdKjEuMF0gW2V4cHIgW2xpbmRleCAkc2NhbGFyIDJdKjEuMF1dCi0gICAgICB9Ci0gICAgICBwdXRzICRvcDEgInNldCB2YXJzKCRyY19jb3JuZXIscG9zdF9yb3V0ZV9jbGtfcmVzX2ZhY3RvcikgXHRcdFwiJHBzdHJpbmdcIiIKLSAgICB9Ci0gICBpZiB7W2dldF9yY19jb3JuZXIgJHJjX2Nvcm5lciAtcHJlUm91dGVfY2FwXSAhPSAiIn0gewotICAgICAgcHV0cyAkb3AxICJzZXQgdmFycygkcmNfY29ybmVyLHByZV9yb3V0ZV9jYXBfZmFjdG9yKSBcdFx0W2Zvcm1hdCAlNC4yZiBbZXhwciBbZ2V0X3JjX2Nvcm5lciAkcmNfY29ybmVyIC1wcmVSb3V0ZV9jYXBdKjEuMF1dIiAKLSAgIH0KLSAgIGlmIHtbZ2V0X3JjX2Nvcm5lciAkcmNfY29ybmVyIC1wcmVSb3V0ZV9jbGtjYXBdICE9ICIifSB7Ci0gICAgICBwdXRzICRvcDEgInNldCB2YXJzKCRyY19jb3JuZXIscHJlX3JvdXRlX2Nsa19jYXBfZmFjdG9yKSBcdFtmb3JtYXQgJTQuMmYgW2V4cHIgW2dldF9yY19jb3JuZXIgJHJjX2Nvcm5lciAtcHJlUm91dGVfY2xrY2FwXSoxLjBdXSIgCi0gICAgfQotICAgaWYge1tnZXRfcmNfY29ybmVyICRyY19jb3JuZXIgLXBvc3RSb3V0ZV9jYXBdICE9ICIifSB7Ci0gICAgICBzZXQgdHJpcGxldHMgW2dldF9yY19jb3JuZXIgJHJjX2Nvcm5lciAtcG9zdFJvdXRlX2NhcF0KLSAgICAgIHNldCBzY2FsYXIgW2xpbmRleCAkdHJpcGxldHMgMF0KLSAgICAgIGlmIHtbbGxlbmd0aCAkc2NhbGFyXSA9PSAxfSB7Ci0gICAgICAgICBzZXQgcHN0cmluZyBbZm9ybWF0ICIlNC4yZiAlNC4yZiAlNC4yZiIgW2V4cHIgW2xpbmRleCAkc2NhbGFyIDBdKjEuMF0gMS4wIDEuMF0KLSAgICAgIH0KLSAgICAgIGlmIHtbbGxlbmd0aCAkc2NhbGFyXSA9PSAyfSB7Ci0gICAgICAgICBzZXQgcHN0cmluZyBbZm9ybWF0ICIlNC4yZiAlNC4yZiAlNC4yZiIgW2V4cHIgW2xpbmRleCAkc2NhbGFyIDBdKjEuMF0gW2V4cHIgW2xpbmRleCAkc2NhbGFyIDFdKjEuMF0gMS4wXQotICAgICAgfQotICAgICAgaWYge1tsbGVuZ3RoICRzY2FsYXJdID09IDN9IHsKLSAgICAgICAgIHNldCBwc3RyaW5nIFtmb3JtYXQgIiU0LjJmICU0LjJmICU0LjJmIiBbZXhwciBbbGluZGV4ICRzY2FsYXIgMF0qMS4wXSBbZXhwciBbbGluZGV4ICRzY2FsYXIgMV0qMS4wXSBbZXhwciBbbGluZGV4ICRzY2FsYXIgMl0qMS4wXV0KLSAgICAgIH0KLSAgICAgIHB1dHMgJG9wMSAic2V0IHZhcnMoJHJjX2Nvcm5lcixwb3N0X3JvdXRlX2NhcF9mYWN0b3IpIFx0XHRcIiRwc3RyaW5nXCIiCi0gICB9Ci0gICBpZiB7W2dldF9yY19jb3JuZXIgJHJjX2Nvcm5lciAtcG9zdFJvdXRlX2Nsa2NhcF0gIT0gIiJ9IHsKLSAgICAgIHNldCB0cmlwbGV0cyBbZ2V0X3JjX2Nvcm5lciAkcmNfY29ybmVyIC1wb3N0Um91dGVfY2xrY2FwXQotICAgICAgc2V0IHNjYWxhciBbbGluZGV4ICR0cmlwbGV0cyAwXQotICAgICAgaWYge1tsbGVuZ3RoICRzY2FsYXJdID09IDF9IHsKLSAgICAgICAgIHNldCBwc3RyaW5nIFtmb3JtYXQgIiU0LjJmICU0LjJmICU0LjJmIiBbZXhwciBbbGluZGV4ICRzY2FsYXIgMF0qMS4wXSAxLjAgMS4wXQotICAgICAgfQotICAgICAgaWYge1tsbGVuZ3RoICRzY2FsYXJdID09IDJ9IHsKLSAgICAgICAgIHNldCBwc3RyaW5nIFtmb3JtYXQgIiU0LjJmICU0LjJmICU0LjJmIiBbZXhwciBbbGluZGV4ICRzY2FsYXIgMF0qMS4wXSBbZXhwciBbbGluZGV4ICRzY2FsYXIgMV0qMS4wXSAxLjBdCi0gICAgICB9Ci0gICAgICBpZiB7W2xsZW5ndGggJHNjYWxhcl0gPT0gM30gewotICAgICAgICAgc2V0IHBzdHJpbmcgW2Zvcm1hdCAiJTQuMmYgJTQuMmYgJTQuMmYiIFtleHByIFtsaW5kZXggJHNjYWxhciAwXSoxLjBdIFtleHByIFtsaW5kZXggJHNjYWxhciAxXSoxLjBdIFtleHByIFtsaW5kZXggJHNjYWxhciAyXSoxLjBdXQotICAgICAgfQotICAgICAgcHV0cyAkb3AxICJzZXQgdmFycygkcmNfY29ybmVyLHBvc3Rfcm91dGVfY2xrX2NhcF9mYWN0b3IpIFx0XHRcIiRwc3RyaW5nXCIiCi0gICB9Ci0gICBpZiB7W2dldF9yY19jb3JuZXIgJHJjX2Nvcm5lciAtcG9zdFJvdXRlX3hjYXBdICE9ICIifSB7Ci0gICAgICBzZXQgdHJpcGxldHMgW2dldF9yY19jb3JuZXIgJHJjX2Nvcm5lciAtcG9zdFJvdXRlX3hjYXBdCi0gICAgICBzZXQgc2NhbGFyIFtsaW5kZXggJHRyaXBsZXRzIDBdCi0gICAgICBpZiB7W2xsZW5ndGggJHNjYWxhcl0gPT0gMX0gewotICAgICAgICAgc2V0IHBzdHJpbmcgW2Zvcm1hdCAiJTQuMmYgJTQuMmYgJTQuMmYiIFtleHByIFtsaW5kZXggJHNjYWxhciAwXSoxLjBdIDEuMCAxLjBdCi0gICAgICB9Ci0gICAgICBpZiB7W2xsZW5ndGggJHNjYWxhcl0gPT0gMn0gewotICAgICAgICAgc2V0IHBzdHJpbmcgW2Zvcm1hdCAiJTQuMmYgJTQuMmYgJTQuMmYiIFtleHByIFtsaW5kZXggJHNjYWxhciAwXSoxLjBdIFtleHByIFtsaW5kZXggJHNjYWxhciAxXSoxLjBdIDEuMF0KLSAgICAgIH0KLSAgICAgIGlmIHtbbGxlbmd0aCAkc2NhbGFyXSA9PSAzfSB7Ci0gICAgICAgICBzZXQgcHN0cmluZyBbZm9ybWF0ICIlNC4yZiAlNC4yZiAlNC4yZiIgW2V4cHIgW2xpbmRleCAkc2NhbGFyIDBdKjEuMF0gW2V4cHIgW2xpbmRleCAkc2NhbGFyIDFdKjEuMF0gW2V4cHIgW2xpbmRleCAkc2NhbGFyIDJdKjEuMF1dCi0gICAgICB9Ci0gICAgICBwdXRzICRvcDEgInNldCB2YXJzKCRyY19jb3JuZXIscG9zdF9yb3V0ZV94Y2FwX2ZhY3RvcikgXHRcdFwiJHBzdHJpbmdcIiIKLSAgIH0KLSAgIHB1dHMgJG9wMSAgIiIgCi19Ci1wdXRzICRvcDEgIiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMiCi1wdXRzICRvcDEgIiMgRGVmaW5lIG9wZXJhdGluZyBjb25kaXRpb25zIChvcHRpb25hbCkiCi1wdXRzICRvcDEgIiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iCi1wdXRzICRvcDEgIiMgc2V0IHZhcnMob3Bjb25kcykgPGxpc3Qgb2Ygb3BlcmF0aW5nIGNvbmRpdGlvbnM+IgotcHV0cyAkb3AxICIjIHNldCB2YXJzKDxvcGNvbmQ+LGxpYnJhcnlfZmlsZSkgPGxpYnJhcnkgZmlsZSA+IgotcHV0cyAkb3AxICIjIHNldCB2YXJzKDxvcGNvbmQ+LFApIDxwcm9jZXNzIHNjYWxlIGZhY3Rvcj4iCi1wdXRzICRvcDEgIiMgc2V0IHZhcnMoPG9wY29uZD4sVikgPHZvbHRhZ2U+IgotcHV0cyAkb3AxICIjIHNldCB2YXJzKDxvcGNvbmQ+LFQpIDx0ZW1wZXJhdHVyZT4iCi1wdXRzICRvcDEgIiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMiCi1pZiB7IVtpbmZvIGV4aXN0cyA6OkNQRjo6Y3BmQ29tbWl0dGVkXX0gewotICAgc2V0IG9wY29uZHMgW2xpc3RdCi0gICBmb3JlYWNoIG9wY29uZCBbYWxsX29wX2NvbmRzXSB7Ci0gICAjICAgaWYge1tyZWdleHAgIl5kZWZhdWx0IiAkb3Bjb25kIF0gPT0gMH0gewotICAgICAgICAgbGFwcGVuZCBvcGNvbmRzICRvcGNvbmQKLSAgICMgICB9Ci0gICB9Ci0gICBpZiB7JG9wY29uZHMgIT0gIiJ9IHsKLSAgICAgIHB1dHMgJG9wMSAiI3NldCB2YXJzKG9wY29uZHMpIFwiJG9wY29uZHNcIiIKLSAgIH0KLSAgIGZvcmVhY2ggb3Bjb25kICRvcGNvbmRzIHsKLSAgICAgIGZvcmVhY2ggb3B0aW9uICJsaWJyYXJ5X2ZpbGUgUCBWIFQiIHsKLSAgICAgICAgIGlmIHtbZ2V0X29wX2NvbmQgJG9wY29uZCAtJG9wdGlvbl0gIT0gIiJ9IHsKLSAgICAgICAgICAgIHB1dHMgJG9wMSAiI3NldCB2YXJzKCRvcGNvbmQsJG9wdGlvbikgW2dldF9vcF9jb25kICRvcGNvbmQgLSRvcHRpb25dIiAKLSAgICAgICAgIH0KLSAgICAgIH0KLSAgIH0KLX0KLQotcHV0cyAkb3AxICIjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIgotcHV0cyAkb3AxICIjIERlZmluZSBkZWxheSBjb3JuZXJzIC4uLiIKLXB1dHMgJG9wMSAiIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIKLXB1dHMgJG9wMSAiIyBzZXQgdmFycyhkZWxheV9jb3JuZXJzKSA8bGlzdCBvZiBkZWxheSBjb3JuZXJzPiIKLXB1dHMgJG9wMSAiIyBzZXQgdmFycyg8ZGVsYXlfY29ybmVyPixsaWJyYXJ5X3NldCkgPGxpYnJhcnlfc2V0PiAocHJldmlvdXNseSBkZWZpbmVkKSIKLXB1dHMgJG9wMSAiIyBzZXQgdmFycyg8ZGVsYXlfY29ybmVyPixvcGNvbmQpIDxvcGNvbmQ+IChwcmV2aW91c2x5IGRlZmluZWQpIChvcHRpb25hbCkiCi1wdXRzICRvcDEgIiMgc2V0IHZhcnMoPGRlbGF5X2Nvcm5lcj4scmNfY29ybmVyKSBsaWJyYXJ5X3NldD4gKHByZXZpb3VzbHkgZGVmaW5lZCkiCi1wdXRzICRvcDEgIiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMiCi1zZXQgZGVsYXlfY29ybmVycyBbbGlzdF0KLWZvcmVhY2ggZGVsYXlfY29ybmVyIFthbGxfZGVsYXlfY29ybmVyc10gewotIyAgIGlmIHtbbGxlbmd0aCBbYWxsX2RlbGF5X2Nvcm5lcnNdXSA+IDJ9IHsKLSMgICAgICBpZiB7W3JlZ2V4cCAiXmRlZmF1bHQiICRkZWxheV9jb3JuZXIgXSA9PSAwfSB7Ci0jICAgICAgICAgbGFwcGVuZCBkZWxheV9jb3JuZXJzICRkZWxheV9jb3JuZXIKLSMgICAgICB9Ci0jICAgfSBlbHNlIHsKLSAgICAgIGxhcHBlbmQgZGVsYXlfY29ybmVycyAkZGVsYXlfY29ybmVyCi0jICAgfQotfQotaWYgeyRkZWxheV9jb3JuZXJzICE9ICIifSB7Ci0gICBwdXRzICRvcDEgInNldCB2YXJzKGRlbGF5X2Nvcm5lcnMpIFwiJGRlbGF5X2Nvcm5lcnNcIiIKLX0KLWZvcmVhY2ggZGMgJGRlbGF5X2Nvcm5lcnMgewotICAgIHNldCBhdHRyaWJ1dGVfbGlzdCAicmNfY29ybmVyIGxpYnJhcnlfc2V0IG9wY29uZF9saWJyYXJ5IG9wY29uZCBpcmRyb3BfZmlsZSBsYXRlX2xpYnJhcnlfc2V0IGVhcmx5X2xpYnJhcnlfc2V0IAotICAgICAgICAgICAgICAgICAgICAgICAgbGF0ZV9vcGNvbmRfbGlicmFyeSBlYXJseV9vcGNvbmRfbGlicmFyeSBsYXRlX29wY29uZCBlYXJseV9vcGNvbmQgbGF0ZV9pcmRyb3BfZmlsZSBlYXJseV9pcmRyb3BfZmlsZSIKLQotICAgZm9yZWFjaCBhdHRyICRhdHRyaWJ1dGVfbGlzdCB7Ci0gICAjIEV4dHJhY3Rpb24gdGhlIGNvcm5lciBsZXZlbCBwcm9wZXJ0aWVzCi0gICAgICBpZiB7W2dldF9kZWxheV9jb3JuZXIgJGRjIC0kYXR0cl0gIT0gIiJ9IHsgCi0gICAgICAgICBwdXRzICRvcDEgInNldCB2YXJzKCRkYywkYXR0cikgXHRbZ2V0X2RlbGF5X2Nvcm5lciAkZGMgLSRhdHRyXSIKLSAgICAgIH0KLSAgICMgRXh0cmFjdGlvbiB0aGUgcG93ZXIgZG9tYWluIGxldmVsIHByb3BlcnRpZXMKLSAgICAgIHNldCBkb21haW5zIFtnZXRfZGVsYXlfY29ybmVyICRkYyAtcG93ZXJfZG9tYWluX2xpc3RdCi0gICAgICBpZiB7JGRvbWFpbnMgIT0gIiJ9IHsKLSAgICAgICAgaWYgeyFbaW5mbyBleGlzdHMgZG9uZSgkZGMscG93ZXJfZG9tYWlucyldfSB7Ci0gICAgICAgICAgIHB1dHMgJG9wMSAic2V0IHZhcnMoJGRjLHBvd2VyX2RvbWFpbnMpIFwiJGRvbWFpbnNcIiIKLSAgICAgICAgICAgIGZvcmVhY2ggcGQgW2dldF9kZWxheV9jb3JuZXIgJGRjIC1wb3dlcl9kb21haW5fbGlzdF0gewotICAgICAgICAgICAgICBwdXRzICRvcDEgIiMgQXR0cmlidXRlcyBmb3IgcG93ZXIgZG9tYWluICRwZCIKLSAgICAgICAgICAgICAgIGZvcmVhY2ggYXR0ciAkYXR0cmlidXRlX2xpc3QgewotICAgICAgICAgICAgICAgICAgaWYge1tnZXRfZGVsYXlfY29ybmVyIC1wb3dlcl9kb21haW4gJHBkICRkYyAtJGF0dHJdICE9ICIifSB7Ci0gICAgICAgICAgICAgICAgICAgICBzZXQgZG9uZSgkZGMsJHBkLCRhdHRyKSBUUlVFCi0gICAgICAgICAgICAgICAgICAgICBwdXRzICRvcDEgInNldCB2YXJzKCRkYywkcGQsJGF0dHIpIFx0W2dldF9kZWxheV9jb3JuZXIgJGRjIC1wb3dlcl9kb21haW4gJHBkIC0kYXR0cl0iCi0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICB9IAotICAgICAgICAgICAgfQotICAgICAgICAgICBzZXQgZG9uZSgkZGMscG93ZXJfZG9tYWlucykgVFJVRQotICAgICAgICAgfSAKLSAgICAgIH0KLSAgIH0KLX0KLQotCi1wdXRzICRvcDEgIiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMiCi1wdXRzICRvcDEgIiMgT3B0aW9uYWxseSBkZWZpbmUgZGVyYXRpbmcgZmFjdG9ycyBmb3IgT0NWIGhlcmUgKGNsb2NrIGFuZCBkYXRhKS4gIgotcHV0cyAkb3AxICIjIERlcmF0aW5nIGZhY3RvcnMgYXJlIGFwcGxpZWQgcGVyIGRlbGF5IGNvcm5lciB1c2luZyBlaXRoZXIgaW5kaXZpZHVhbCIKLXB1dHMgJG9wMSAiIyB2YWx1ZXMgT1IgdmlhIGEgZGVyYXRlX3RjbCBmaWxlIHdoaWNoIG11c3QgY29udGFpbiBzeW50YWN0aWNhbGx5IGNvcnJlY3QiCi1wdXRzICRvcDEgIiMgc2V0X3RpbWluZ19kZXJhdGUgY29tbWFuZHMgZm9yIGEgZ2l2ZW4gZGVsYXlfY29ybmVyIgotcHV0cyAkb3AxICIjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIgotcHV0cyAkb3AxICIjc2V0IHZhcnMoPGRlbGF5X2Nvcm5lcj4sZGVyYXRlX3RjbCkgICAgICAgIDxmaWxlPiIKLXB1dHMgJG9wMSAiIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIKLXB1dHMgJG9wMSAiI3NldCB2YXJzKDxkZWxheV9jb3JuZXI+LGRhdGFfY2VsbF9sYXRlKSAgICA8ZmxvYXQ+IgotcHV0cyAkb3AxICIjc2V0IHZhcnMoPGRlbGF5X2Nvcm5lcj4sZGF0YV9jZWxsX2Vhcmx5KSAgIDxmbG9hdD4iCi1wdXRzICRvcDEgIiNzZXQgdmFycyg8ZGVsYXlfY29ybmVyPixkYXRhX25ldF9sYXRlKSAgICAgPGZsb2F0PiIKLXB1dHMgJG9wMSAiI3NldCB2YXJzKDxkZWxheV9jb3JuZXI+LGRhdGFfbmV0X2Vhcmx5KSAgICA8ZmxvYXQ+IgotcHV0cyAkb3AxICIjc2V0IHZhcnMoPGRlbGF5X2Nvcm5lcj4sY2xvY2tfY2VsbF9sYXRlKSAgIDxmbG9hdD4iCi1wdXRzICRvcDEgIiNzZXQgdmFycyg8ZGVsYXlfY29ybmVyPixjbG9ja19jZWxsX2Vhcmx5KSAgPGZsb2F0PiIKLXB1dHMgJG9wMSAiI3NldCB2YXJzKDxkZWxheV9jb3JuZXI+LGNsb2NrX25ldF9sYXRlKSAgICA8ZmxvYXQ+IgotcHV0cyAkb3AxICIjc2V0IHZhcnMoPGRlbGF5X2Nvcm5lcj4sY2xvY2tfbmV0X2Vhcmx5KSAgIDxmbG9hdD4iCi1wdXRzICRvcDEgIiNzZXQgdmFycyg8ZGVsYXlfY29ybmVyPixjZWxsX2NoZWNrX2xhdGUpICAgPGZsb2F0PiIKLXB1dHMgJG9wMSAiI3NldCB2YXJzKDxkZWxheV9jb3JuZXI+LGNlbGxfY2hlY2tfZWFybHkpICA8ZmxvYXQ+IgotcHV0cyAkb3AxICIjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIgotCi1zZXQgbWFwKGVhcmx5X2NlbGxfY2hlY2tfZGVyYXRlX2ZhY3RvcikgZWFybHlfY2VsbF9jaGVjawotc2V0IG1hcChlYXJseV9jbGtfY2VsbF9kZXJhdGVfZmFjdG9yKSBjbG9ja19jZWxsX2Vhcmx5Ci1zZXQgbWFwKGVhcmx5X2RhdGFfY2VsbF9kZXJhdGVfZmFjdG9yKSBkYXRhX2NlbGxfZWFybHkKLXNldCBtYXAobGF0ZV9jZWxsX2NoZWNrX2RlcmF0ZV9mYWN0b3IpIGxhdGVfY2VsbF9jaGVjawotc2V0IG1hcChsYXRlX2Nsa19jZWxsX2RlcmF0ZV9mYWN0b3IpIGNsb2NrX2NlbGxfbGF0ZQotc2V0IG1hcChsYXRlX2RhdGFfY2VsbF9kZXJhdGVfZmFjdG9yKSBkYXRhX2NlbGxfbGF0ZQotCi0jdGltZURlc2lnbiAtcHJlUGxhY2UKLSNmb3JlYWNoIHZpZXcgW2FsbF9zZXR1cF9hbmFseXNpc192aWV3c10gewotIyAgIGZvcmVhY2ggdHlwZSAiZWFybHlfY2VsbF9jaGVja19kZXJhdGVfZmFjdG9yIGVhcmx5X2Nsa19jZWxsX2RlcmF0ZV9mYWN0b3IgZWFybHlfZGF0YV9jZWxsX2RlcmF0ZV9mYWN0b3IgXAotIyAgICAgICAgICAgICAgICAgbGF0ZV9jZWxsX2NoZWNrX2RlcmF0ZV9mYWN0b3IgbGF0ZV9jbGtfY2VsbF9kZXJhdGVfZmFjdG9yIGxhdGVfZGF0YV9jZWxsX2RlcmF0ZV9mYWN0b3IiIHsKLSMKLSMgICAgICBwdXRzICRvcDEgInNldCB2YXJzKFtnZXRfYW5hbHlzaXNfdmlldyAkdmlldyAtZGVsYXlfY29ybmVyXSwkbWFwKCR0eXBlKSkgW2dldF9wcm9wZXJ0eSBbbGluZGV4IFthbGxfcmVnaXN0ZXJzXSAwXSAkdHlwZSAtdmlldyAkdmlld10iCi0jICAgfQotI30KLSN0aW1lRGVzaWduIC1wcmVQbGFjZSAtaG9sZAotI2ZvcmVhY2ggdmlldyBbYWxsX2hvbGRfYW5hbHlzaXNfdmlld3NdIHsKLSMgICBmb3JlYWNoIHR5cGUgImVhcmx5X2NlbGxfY2hlY2tfZGVyYXRlX2ZhY3RvciBlYXJseV9jbGtfY2VsbF9kZXJhdGVfZmFjdG9yIGVhcmx5X2RhdGFfY2VsbF9kZXJhdGVfZmFjdG9yIFwKLSMgICAgICAgICAgICAgICAgIGxhdGVfY2VsbF9jaGVja19kZXJhdGVfZmFjdG9yIGxhdGVfY2xrX2NlbGxfZGVyYXRlX2ZhY3RvciBsYXRlX2RhdGFfY2VsbF9kZXJhdGVfZmFjdG9yIiB7Ci0jCi0jICAgICAgcHV0cyAkb3AxICJzZXQgdmFycyhbZ2V0X2FuYWx5c2lzX3ZpZXcgJHZpZXcgLWRlbGF5X2Nvcm5lcl0sJG1hcCgkdHlwZSkpIFtnZXRfcHJvcGVydHkgW2xpbmRleCBbYWxsX3JlZ2lzdGVyc10gMF0gJHR5cGUgLXZpZXcgJHZpZXddIgotIyAgIH0KLSN9Ci0KLXB1dHMgJG9wMSAiIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyIKLXB1dHMgJG9wMSAiIyBEZWZpbmUgY29uc3RyYWludCBtb2RlcyAuLi4gIgotcHV0cyAkb3AxICIjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIgotcHV0cyAkb3AxICIjIHNldCB2YXJzKGNvbnN0cmFpbnRfbW9kZXMpICAgICAgICA8bGlzdCBvZiBjb25zdHJhaW50IG1vZGVzPiIKLXB1dHMgJG9wMSAiIyBzZXQgdmFycyg8bW9kZT4scHJlX2N0c19zZGMpICAgICAgPHByZSBjdHMgY29uc3RyYWludCBmaWxlPiAocmVxdWlyZWQpIgotcHV0cyAkb3AxICIjIHNldCB2YXJzKDxtb2RlPixwb3N0X2N0c19zZGMpICAgICA8cG9zdCBjdHMgY29uc3RyYWludCBmaWxlPiAob3B0aW9uYWwpIgotcHV0cyAkb3AxICIjIHNldCB2YXJzKDxtb2RlPixpbmNyX2N0c19zZGMpICAgICA8aW5jcmVtZW50YWwgcG9zdCBjdHMgY29uc3RyYWludCBmaWxlPiAob3B0aW9uYWwpIgotcHV0cyAkb3AxICIjIHNldCB2YXJzKDxtb2RlPixwcmVfY3RzX2lsbV9zZGMpICA8cHJlIGN0cyBpbG0gY29uc3RyYWludCBmaWxlPiAob3B0aW9uYWwpIgotcHV0cyAkb3AxICIjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIgotc2V0IGNvbnN0cmFpbnRfbW9kZXMgW2xpc3RdCi1mb3JlYWNoIGNvbnN0cmFpbnRfbW9kZSBbYWxsX2NvbnN0cmFpbnRfbW9kZXNdIHsKLSMgICBpZiB7W2xsZW5ndGggW2FsbF9jb25zdHJhaW50X21vZGVzXV0gPiAyfSB7Ci0jICAgICAgaWYge1tyZWdleHAgIl5kZWZhdWx0X21vZGUiICRjb25zdHJhaW50X21vZGUgXSA9PSAwfSB7Ci0jICAgICAgICAgbGFwcGVuZCBjb25zdHJhaW50X21vZGVzICRjb25zdHJhaW50X21vZGUKLSMgICAgICB9Ci0jICAgfSBlbHNlIHsKLSAgICAgIGxhcHBlbmQgY29uc3RyYWludF9tb2RlcyAkY29uc3RyYWludF9tb2RlCi0jICAgfQotfQotaWYgeyRjb25zdHJhaW50X21vZGVzICE9ICIifSB7Ci0gICBwdXRzICRvcDEgInNldCB2YXJzKGNvbnN0cmFpbnRfbW9kZXMpIFwiJGNvbnN0cmFpbnRfbW9kZXNcIiIKLX0KLWZvcmVhY2ggY29uc3RyYWludF9tb2RlICRjb25zdHJhaW50X21vZGVzIHsKLSAgIGlmIHtbZ2V0X2NvbnN0cmFpbnRfbW9kZSAkY29uc3RyYWludF9tb2RlIC1zZGNfZmlsZXNdICE9ICIifSB7Ci0jICAgICAgcHV0cyAkb3AxICJzZXQgdmFycygkY29uc3RyYWludF9tb2RlLHByZV9jdHNfc2RjKSBcIltmaWxlIG5vcm1hbGl6ZSBbZ2V0X2NvbnN0cmFpbnRfbW9kZSAkY29uc3RyYWludF9tb2RlIC1zZGNfZmlsZXNdXVwiIiAKLSAgICAgc2V0IHByZV9jdHNfc2RjX2xpc3QgW2xpc3RdCi0gICAgIGZvcmVhY2ggZmlsZSBbZ2V0X2NvbnN0cmFpbnRfbW9kZSAkY29uc3RyYWludF9tb2RlIC1zZGNfZmlsZXNdICB7Ci0gICAgICAgIGxhcHBlbmQgcHJlX2N0c19zZGNfbGlzdCBbZmlsZSBub3JtYWxpemUgJGZpbGVdCi0gICAgIH0KLSAgICAgcHV0cyAkb3AxICJzZXQgdmFycygkY29uc3RyYWludF9tb2RlLHByZV9jdHNfc2RjKSBcIltqb2luICRwcmVfY3RzX3NkY19saXN0XVwiIiAKLSAgICAgIGlmIHtbaW5mbyBleGlzdHMgZGduX3Bvc3RfY3RzX3NkY10gJiYgKCRkZ25fcG9zdF9jdHNfc2RjICE9ICIiKSB9IHsKLSAgICAgICAgIHB1dHMgJG9wMSAic2V0IHZhcnMoJGNvbnN0cmFpbnRfbW9kZSxwb3N0X2N0c19zZGMpIFwiJGRnbl9wb3N0X2N0c19zZGNcIiIgCi0gICAgICB9Ci0gICB9Ci0gICBpZiB7W2dldF9jb25zdHJhaW50X21vZGUgJGNvbnN0cmFpbnRfbW9kZSAtaWxtX3NkY19maWxlc10gIT0gIiJ9IHsKLSMgICAgICBwdXRzICRvcDEgInNldCB2YXJzKCRjb25zdHJhaW50X21vZGUscHJlX2N0c19pbG1fc2RjKSBcIltmaWxlIG5vcm1hbGl6ZSBbZ2V0X2NvbnN0cmFpbnRfbW9kZSAkY29uc3RyYWludF9tb2RlIC1pbG1fc2RjX2ZpbGVzXV1cIiIgCi0gICAgIHNldCBpbG1fY3RzX3NkY19saXN0IFtsaXN0XQotICAgICBmb3JlYWNoIGZpbGUgW2dldF9jb25zdHJhaW50X21vZGUgJGNvbnN0cmFpbnRfbW9kZSAtaWxtX3NkY19maWxlc10gIHsKLSAgICAgICAgbGFwcGVuZCBpbG1fY3RzX3NkY19saXN0IFtmaWxlIG5vcm1hbGl6ZSAkZmlsZV0KLSAgICAgfQotICAgICBwdXRzICRvcDEgInNldCB2YXJzKCRjb25zdHJhaW50X21vZGUscHJlX2N0c19pbG1fc2RjKSBcIltqb2luICRpbG1fY3RzX3NkY19saXN0XVwiIiAKLSAgIH0KLX0KLQotcHV0cyAkb3AxICIjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIgotcHV0cyAkb3AxICIjIERlZmluZSBzZXR1cCBhbmQgaG9sZCBhbmFseXNpcyB2aWV3cyAuLi4gZWFjaCBhbmFseXNpcyB2aWV3IHJlcXVpcmVzIgotcHV0cyAkb3AxICIjIGEgZGVsYXkgY29ybmVyIGFuZCBhIGNvbnN0cmFpbnQgbW9kZSIKLXB1dHMgJG9wMSAiIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyIKLQotI3NldCBhbmFseXNpc192aWV3cyAiIgotc2V0IGFuYWx5c2lzX3ZpZXdzIFtjb25jYXQgW2FsbF9zZXR1cF9hbmFseXNpc192aWV3c10gW2FsbF9ob2xkX2FuYWx5c2lzX3ZpZXdzXV0KLSNmb3JlYWNoIHZpZXcgW2FsbF9hbmFseXNpc192aWV3c10gewotIyAgIGlmIHtbbGxlbmd0aCBbYWxsX2FuYWx5c2lzX3ZpZXdzXV0gPiAyfSB7Ci0jICAgICAgaWYge1tyZWdleHAgIl5kZWZhdWx0IiAkdmlldyBdID09IDB9IHsKLSMgICAgICAgICBsYXBwZW5kIGFuYWx5c2lzX3ZpZXdzICR2aWV3Ci0jICAgICAgfQotIyAgIH0gZWxzZSB7Ci0jICAgICAgbGFwcGVuZCBhbmFseXNpc192aWV3cyAkdmlldwotIyAgIH0KLSN9Ci1mb3JlYWNoIHZpZXcgJGFuYWx5c2lzX3ZpZXdzIHsKLSAgIGZvcmVhY2ggb3B0aW9uICJkZWxheV9jb3JuZXIgY29uc3RyYWludF9tb2RlIiB7Ci0gICAgICBpZiB7W2dldF9hbmFseXNpc192aWV3ICR2aWV3IC0kb3B0aW9uXSAhPSAiIn0gewotICAgICAgICAgcHV0cyAkb3AxICJzZXQgdmFycygkdmlldywkb3B0aW9uKSBbZ2V0X2FuYWx5c2lzX3ZpZXcgJHZpZXcgLSRvcHRpb25dIiAKLSAgICAgIH0KLSAgIH0KLX0KLXB1dHMgJG9wMSAiIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyIKLXB1dHMgJG9wMSAiIyBFRElUL1ZFUklGWSBUSEVTRSBMSVNUUyEhIgotcHV0cyAkb3AxICIjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIgotcHV0cyAkb3AxICJzZXQgdmFycyhzZXR1cF9hbmFseXNpc192aWV3cykgXCJbYWxsX3NldHVwX2FuYWx5c2lzX3ZpZXdzXVwiIgotcHV0cyAkb3AxICJzZXQgdmFycyhob2xkX2FuYWx5c2lzX3ZpZXdzKSAgXCJbYWxsX2hvbGRfYW5hbHlzaXNfdmlld3NdXCIiCi0jcHV0cyAkb3AxICJzZXQgdmFycyhzZXR1cF9hbmFseXNpc192aWV3cykgXCIkYW5hbHlzaXNfdmlld3NcIiIKLSNwdXRzICRvcDEgInNldCB2YXJzKGhvbGRfYW5hbHlzaXNfdmlld3MpIFwiJGFuYWx5c2lzX3ZpZXdzXCIiCi0KLXB1dHMgJG9wMSAiIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyIKLXB1dHMgJG9wMSAiIyBEZWZpbmUgYWN0aXZlIHNldHVwIGFuZCBob2xkIGFuYWx5c2lzIHZpZXcgbGlzdHMgYW5kIGRlZmF1bHQgdmlld3MiCi1wdXRzICRvcDEgIiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMiCi1wdXRzICRvcDEgInNldCB2YXJzKGRlZmF1bHRfc2V0dXBfdmlldykgIFxbbGluZGV4IFwkdmFycyhzZXR1cF9hbmFseXNpc192aWV3cykgMFxdIgotcHV0cyAkb3AxICJzZXQgdmFycyhkZWZhdWx0X2hvbGRfdmlldykgICBcW2xpbmRleCBcJHZhcnMoaG9sZF9hbmFseXNpc192aWV3cykgMFxdIgotI3B1dHMgJG9wMSAic2V0IHZhcnMoYWN0aXZlX3NldHVwX3ZpZXdzKSBcJHZhcnMoc2V0dXBfYW5hbHlzaXNfdmlld3MpIgotI3B1dHMgJG9wMSAic2V0IHZhcnMoYWN0aXZlX2hvbGRfdmlld3MpICBcJHZhcnMoaG9sZF9hbmFseXNpc192aWV3cykiCi1wdXRzICRvcDEgInNldCB2YXJzKGFjdGl2ZV9zZXR1cF92aWV3cykgIFwkdmFycyhzZXR1cF9hbmFseXNpc192aWV3cykiCi1wdXRzICRvcDEgInNldCB2YXJzKGFjdGl2ZV9ob2xkX3ZpZXdzKSAgIFwkdmFycyhob2xkX2FuYWx5c2lzX3ZpZXdzKSIKLXB1dHMgJG9wMSAiIgotcHV0cyAkb3AxICIjc2V0IHZhcnMoZ2RzX2ZpbGVzKSAgICAgICAgIDxsaXN0IG9mIGdkcyBmaWxlcz4iCi1wdXRzICRvcDEgIiNzZXQgdmFycyhnZHNfbGF5ZXJfbWFwKSAgICAgPGdkcyBsYXllciBtYXAgZmlsZT4iCi1wdXRzICRvcDEgIiNzZXQgdmFycyhxcmNfbGF5ZXJfbWFwKSAgICAgPHFyYyBsYXllciBtYXAgZmlsZT4iCi1wdXRzICRvcDEgIiNzZXQgdmFycyhxcmNfbGlicmFyeSkgICAgICAgPHFyYyBsaWJyYXJ5IGRpcmVjdG9yeT4iCi1wdXRzICRvcDEgIiNzZXQgdmFycyhxcmNfY29uZmlnX2ZpbGUpICAgPHFyYyBjb25maWcgZmlsZT4iCi1wdXRzICRvcDEgIiIKLXB1dHMgJG9wMiAiIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyIKLXB1dHMgJG9wMiAiIyBFbmFibGUgb25DaGlwVmFyaWF0aW9uIChmb3IgTU1NQyBmbG93cykuICBPcHRpb25zIGFyZToiCi1wdXRzICRvcDIgIiMgcHJlX3BsYWNlLCBwcmVfcHJlY3RzLCBwcmVfY3RzLCBwcmVfcG9zdGN0cywgcHJlX3Bvc3Ryb3V0ZSwgcHJlX3NpZ25vZmYsIGZhbHNlIgotcHV0cyAkb3AyICIjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIgotcHV0cyAkb3AyICJzZXQgdmFycyhlbmFibGVfb2N2KSAgICAgICAgcHJlX2N0cyIKLXB1dHMgJG9wMiAiIgotcHV0cyAkb3AyICIjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIgotcHV0cyAkb3AyICIjIE9wdGlvbmFsbHkgZW5hYmxlIGFvY3YiCi1wdXRzICRvcDIgIiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMiCi1wdXRzICRvcDIgInNldCB2YXJzKGVuYWJsZV9hb2N2KSAgICAgICBmYWxzZSIKLXB1dHMgJG9wMiAiIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyIKLXB1dHMgJG9wMiAiIyBPcHRpb25hbGx5IGVuYWJsZSBjcHByOyBvcHRpb25zIGFyZTogc2V0dXAsIGhvbGQsIGJvdGgsIG5vbmUiCi1wdXRzICRvcDIgIiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMiCi1wdXRzICRvcDIgInNldCB2YXJzKGVuYWJsZV9jcHByKSAgICAgICBib3RoIgotcHV0cyAkb3AyICIiCi0jcHV0cyAkb3AyICIjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIgotI3B1dHMgJG9wMiAiIyBPcHRpb25hbGx5IGVuYWJsZSBzaWduYWxTdG9ybSBkZWxheSBjYWxjdWxhdGlvbiBkdXJpbmcgdGhlIGZsb3cuIgotI3B1dHMgJG9wMiAiIyBUaGlzIGlzIGEgcmVxdWlyZW1lbnQgd2hlbiB1c2luZyBFQ1NNL0NDUyBtb2RlbHMuICBUaGUgZm9sbG93aW5nIGFyZSIKLSNwdXRzICRvcDIgIiMgdmFsdWUgb3B0aW9uczogcHJlX3BsYWNlIHByZV9wcmVjdHMgcHJlX3Bvc3RjdHMgcHJlX3Bvc3Ryb3V0ZSBwcmVfc2lnbm9mZiBmYWxzZSIKLSNwdXRzICRvcDIgIiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMiCi0jcHV0cyAkb3AyICJzZXQgdmFycyhlbmFibGVfc3MpICAgICAgICAgZmFsc2UiCi0jcHV0cyAkb3AyICIiCi1wdXRzICRvcDIgIiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMiCi1wdXRzICRvcDIgIiMgT3B0aW9uYWxseSBlbmFibGUgc2lnbm9mZiBFQ08gZm9yIHRoZSBoaWVyYXJoaWNhbCBmbG93IgotcHV0cyAkb3AyICIjIElGICdpbG0nLCBUSEVOIFRIRSBGT0xMT1dJTkcgU0hPVUxEIEJFIFNFVCBJTiBUSEUgc2V0dXAudGNsIgotcHV0cyAkb3AyICIjIC0gdmFycyg8cHRuPixpbG1fZGlyKSAgIDxwYXRoIHRvIElMTSBkaXJldG9yeT4iCi1wdXRzICRvcDIgIiMgLSB2YSNycyg8cHRuPixsZWZfZmlsZSkgIDxwYXRoIHRvIExFRiBmaWxlPiIKLXB1dHMgJG9wMiAiIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyIKLXB1dHMgJG9wMiAic2V0IHZhcnMoZW5hYmxlX3NpZ25vZmZfZWNvKSAgICAgICAgICAgIGZhbHNlIgotcHV0cyAkb3AyICIiCi1wdXRzICRvcDIgIiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMiCi1wdXRzICRvcDIgIiMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGbG93IE9wdGlvbnMiCi1wdXRzICRvcDIgIiMgT3B0aW9uYWxseSBlbmFibGUgZGVzaWduIG1vZGUgb3B0aW9uczoiCi1wdXRzICRvcDIgIiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iCi1wdXRzICRvcDIgIiNzZXQgdmFycyhmbG93X2VmZm90KSAgICAgICA8ZXhwcmVzcyB8IHN0YW5kYXJkIHwgZXh0cmVtZT4iCi1wdXRzICRvcDIgIiNzZXQgdmFycyhwb3dlcl9lZmZvcnQpICAgICA8bm9uZSB8IGxvdyB8IGhpZ2g+IgotcHV0cyAkb3AyICIiCi1wdXRzICRvcDIgIiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMiCi1wdXRzICRvcDIgIiMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQbGFjZW1lbnQgT3B0aW9ucyIKLXB1dHMgJG9wMiAiIyBOT1RFOiBXaGVuIHBsYWNlX29wdF9kZXNpZ24gaXMgZW5hYmxlZCwgdGhlIHByZWN0cyBzdGVwIHdpbGwgYmUgc2tpcHBlZCIKLXB1dHMgJG9wMiAiIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIKLXB1dHMgJG9wMiAiI3NldCB2YXJzKGluX3BsYWNlX29wdCkgICAgIHRydWUiCi1wdXRzICRvcDIgIiNzZXQgdmFycyhub19wcmVfcGxhY2Vfb3B0KSB0cnVlIgotcHV0cyAkb3AyICIjc2V0IHZhcnMocGxhY2Vfb3B0X2Rlc2lnbikgIDx0cnVlIHwgZmFsc2U+IgotcHV0cyAkb3AyICIjc2V0IHZhcnMocGxhY2VfaW9fcGlucykgICAgIDx0cnVlIHwgZmFsc2U+IgotcHV0cyAkb3AyICIjc2V0IHZhcnMoY2xvY2tfZ2F0ZV9hd2FyZSkgIDx0cnVlIHwgZmFsc2U+IgotcHV0cyAkb3AyICIjc2V0IHZhcnMoY29uZ2VzdGlvbl9lZmZvcnQpIDxhdXRvIHwgbG93IHwgaGlnaD4iCi1wdXRzICRvcDIgIiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iCi1mb3JlYWNoIG9wdGlvbiBbZ2V0UGxhY2VNb2RlIC1xdWlldF0gewotICAgaWYge1tsaW5kZXggJG9wdGlvbiAwXSA9PSAiY2xrR2F0ZUF3YXJlIn0gewotICAgICAgcHV0cyAkb3AyICJzZXQgdmFycyhjbG9ja19nYXRlX2F3YXJlKSAgW2xpbmRleCAkb3B0aW9uIDFdIgotICAgfQotICAgaWYge1tsaW5kZXggJG9wdGlvbiAwXSA9PSAiY29uZ0VmZm9ydCJ9IHsKLSAgICAgIHB1dHMgJG9wMiAic2V0IHZhcnMoY29uZ2VzdGlvbl9lZmZvcnQpIFtsaW5kZXggJG9wdGlvbiAxXSIKLSAgIH0KLSAgIGlmIHtbbGluZGV4ICRvcHRpb24gMF0gPT0gInBsYWNlSW9QaW5zIn0gewotICAgICAgcHV0cyAkb3AyICJzZXQgdmFycyhwbGFjZV9pb19waW5zKSAgICAgW2xpbmRleCAkb3B0aW9uIDFdIgotICAgfQotfQotcHV0cyAkb3AyICIiCi1wdXRzICRvcDIgIiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMiCi1wdXRzICRvcDIgIiMgICAgICAgICAgICAgICAgICAgICBUaWUvRmlsbGVyL1RhcCBDZWxsIE9wdGlvbnMiCi1wdXRzICRvcDIgIiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iCi1wdXRzICRvcDIgIiMgICAgICAgICAgICAgICAgICAgICAgICAgVGllIGNlbGwgaW5mb3JtYXRpb24iCi1wdXRzICRvcDIgIiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iCi1mb3JlYWNoIG9wdGlvbiBbZ2V0VGllSGlMb01vZGUgLXF1aWV0XSB7Ci0gICBzd2l0Y2ggLWV4YWN0IC0tIFtsaW5kZXggJG9wdGlvbiAwXSB7Ci0gICAgICAiY2VsbCIgewotICAgICAgICAgaWYge1tsaW5kZXggJG9wdGlvbiAxXSAhPSAiIn0gewotICAgICAgICAgICAgcHV0cyAkb3AyICJzZXQgdmFycyh0aWVfY2VsbHMpIFwiW2xpbmRleCAkb3B0aW9uIDFdXCIiCi0gICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgcHV0cyAkb3AyICIjc2V0IHZhcnModGllX2NlbGxzKSA8dGllX2NlbGxzPiIKLSAgICAgICAgIH0KLSAgICAgIH0KLSAgICAgICJtYXhEaXN0YW5jZSIgewotICAgICAgICAgaWYge1tsaW5kZXggJG9wdGlvbiAxXSAhPSAwfSB7Ci0gICAgICAgICAgICBwdXRzICRvcDIgInNldCB2YXJzKHRpZV9jZWxscyxtYXhfZGlzdGFuY2UpIFtsaXN0IFtsaW5kZXggJG9wdGlvbiAxXV0iCi0gICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgcHV0cyAkb3AyICIjc2V0IHZhcnModGllX2NlbGxzLG1heF9kaXN0YW5jZSkgPGZsb2F0PiIKLSAgICAgICAgIH0KLSAgICAgIH0KLSAgICAgICJtYXhGYW5vdXQiIHsKLSAgICAgICAgIGlmIHtbbGluZGV4ICRvcHRpb24gMV0gIT0gMH0gewotICAgICAgICAgICAgcHV0cyAkb3AyICJzZXQgdmFycyh0aWVfY2VsbHMsbWF4X2Zhbm91dCkgW2xpc3QgW2xpbmRleCAkb3B0aW9uIDFdXSIKLSAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBwdXRzICRvcDIgIiNzZXQgdmFycyh0aWVfY2VsbHMsbWF4X2Zhbm91dCkgPGludD4iCi0gICAgICAgICB9Ci0gICAgICB9Ci0gICB9Ci19Ci1wdXRzICRvcDIgIiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iCi1wdXRzICRvcDIgIiMgICAgICAgICAgICAgICAgICAgICBGaWxsZXIgY2VsbCBpbmZvcm1hdGlvbiIKLXB1dHMgJG9wMiAiIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIKLWZvcmVhY2ggb3B0aW9uIFtnZXRGaWxsZXJNb2RlIC1xdWlldF0gewotICAgaWYge1tsaW5kZXggJG9wdGlvbiAwXSA9PSAiY29yZSJ9IHsKLSAgICAgIGlmIHtbbGluZGV4ICRvcHRpb24gMV0gIT0gIiJ9IHsKLSAgICAgICAgIHB1dHMgJG9wMiAic2V0IHZhcnMoZmlsbGVyX2NlbGxzKSBcIltsaW5kZXggJG9wdGlvbiAxXVwiIgotICAgICAgfSBlbHNlIHsKLSAgICAgICAgIHB1dHMgJG9wMiAiI3NldCB2YXJzKGZpbGxlcl9jZWxscykgPGZpbGxlcl9jZWxscz4iCi0gICAgICB9Ci0gICB9Ci19Ci1wdXRzICRvcDIgIiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIgotcHV0cyAkb3AyICIjICAgICAgICAgICAgICAgICAgICAgV2VsbHRhcCBjZWxsIGluZm9ybWF0aW9uIgotcHV0cyAkb3AyICIjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIKLXB1dHMgJG9wMiAiIyAgICB2ZXJpZnlfcnVsZSA6IG1heGltdW0gZGlzdGFuY2UgKGluIG1pY3JvbnMpIGJldHdlZW4gd2VsbHRhcCBjZWxscyBhbmQgc3RhbmRhcmQgY2VsbHMgIgotcHV0cyAkb3AyICIjICAgICAgICAgICAgICAgICAgaW4gbWljcm9ucyIKLXB1dHMgJG9wMiAiIyAgICAgICAgbWF4X2dhcCA6IHNwZWNpZmllcyB0aGUgbWF4aW11bSBkaXN0YW5jZSBmcm9tIHRoZSByaWdodCBlZGdlIG9mIG9uZSB3ZWxsLXRhcCBjZWxsICIKLXB1dHMgJG9wMiAiIyAgICAgICAgICAgICAgICAgIHRvIHRoZSBsZWZ0IGVkZ2Ugb2YgIHRoZSBmb2xsb3dpbmcgd2VsbC10YXAgY2VsbCBpbiB0aGUgc2FtZSByb3ciCi1wdXRzICRvcDIgIiMgIGNlbGxfaW50ZXJ2YWwgOiBzcGVjaWZpZXMgdGhlIG1heGltdW0gZGlzdGFuY2UgZnJvbSB0aGUgY2VudGVyIG9mIG9uZSB3ZWxsLXRhcCBjZWxsICIKLXB1dHMgJG9wMiAiIyAgICAgICAgICAgICAgICAgIHRvIHRoZSBjZW50ZXIgb2YgdGhlIGZvbGxvd2luZyB3ZWxsLXRhcCBjZWxsIGluIHRoZSBzYW1lIHJvdyIKLXB1dHMgJG9wMiAiIyIKLXB1dHMgJG9wMiAiIyBOT1RFOiBtYXhfZ2FwIGFuZCBjZWxsX2ludGVydmFsIHBhcmFtZXRlcnMgYXJlIG11dHVhbGx5IGV4Y2x1c2l2ZSwgdXNlciBoYXMgdG8gZGVmaW5lICIKLXB1dHMgJG9wMiAiIyAgICAgICBvbmx5IG9uZSBvZiB0aGVzZSBwYXJhbWV0ZXJzIHRvIGFkZCB3ZWxsdGFwIGNlbGxzIgotcHV0cyAkb3AyICIjIgotcHV0cyAkb3AyICIjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIKLXB1dHMgJG9wMiAiI3NldCB2YXJzKHdlbGx0YXBzKSAgICAgICAgICAgICAgICAgICAgICAgICA8d2VsbHRhcCBjZWxscz4iCi1wdXRzICRvcDIgIiNzZXQgdmFycyh3ZWxsdGFwcyxjaGVja2VyYm9hcmQpICAgICAgICAgICAgPHRydWUgb3IgZmFsc2U+IgotcHV0cyAkb3AyICIjc2V0IHZhcnMod2VsbHRhcHMsbWF4X2dhcCkgICAgICAgICAgICAgICAgIDxtYXggZ2FwPiIKLXB1dHMgJG9wMiAiI3NldCB2YXJzKHdlbGx0YXBzLGNlbGxfaW50ZXJ2YWwpICAgICAgICAgICA8Y2VsbCBpbnRlcnZhbD4iCi1wdXRzICRvcDIgIiNzZXQgdmFycyh3ZWxsdGFwcyx2ZXJpZnlfcnVsZSkgICAgICAgICAgICAgPGRpc3RhbmNlIGludGVydmFsPiIKLXB1dHMgJG9wMiAiIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iCi1wdXRzICRvcDIgIiMgICAgICAgICAgICAgICAgICAgICAgICAgIEVuZGNhcCBjZWxsIGluZm9ybWF0aW9uIgotcHV0cyAkb3AyICIjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIKLXB1dHMgJG9wMiAiI3NldCB2YXJzKHByZV9lbmRjYXApICAgICAgICAgICAgICAgICAgICAgICA8cHJlIGVuZGNhcCBjZWxsPiIKLXB1dHMgJG9wMiAiI3NldCB2YXJzKHBvc3RfZW5kY2FwKSAgICAgICAgICAgICAgICAgICAgICA8cG9zdCBlbmRjYXAgY2VsbD4iCi1wdXRzICRvcDIgIiIKLWlmIHtbaW5mbyBleGlzdHMgOjpDUEY6OmNwZkNvbW1pdHRlZF0gfHwgW2luZm8gZXhpc3RzIDo6TVNWOjppZWVlMTgwMUxvYWRlZF19IHsKLSAgIHB1dHMgJG9wMSAiIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIgotICAgcHV0cyAkb3AxICIjICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMUCBGbG93IE9wdGlvbnMiCi0gICBwdXRzICRvcDEgIiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iCi0gICBzZXQgbHBmaWxlIHt9Ci0gICBpZiB7W2luZm8gZXhpc3RzIDo6Q1BGOjpjcGZDb21taXR0ZWRdICYmICQ6OkNQRjo6Y3BmQ29tbWl0dGVkICYmCi0gICAgICAgW2luZm8gZXhpc3RzIDo6Q1BGOjpjcGZfZmlsZV0gJiYgJDo6Q1BGOjpjcGZfZmlsZSAhPSAiIn0gewotICAgICAgc2V0IGxwZm9ybWF0IGNwZgotICAgICAgc2V0IGxwZmlsZSBnZW5fc2V0dXAuW3BpZF0uJGxwZm9ybWF0OyAjICQ6OkNQRjo6Y3BmX2ZpbGUgaXMgbm90IHVzZWQgZGlyZWN0bHkKLSAgIGlmIHtbbGluZGV4IFtzcGxpdCAkdmFycyh2ZXJzaW9uKSAiLiJdICAwXSA8IDE1fSB7Ci0gICAgICBzYXZlQ1BGICRscGZpbGUKLSAgIH0gZWxzZSB7Ci0gICAgICB3cml0ZV9wb3dlcl9pbnRlbnQgLWNwZiAkbHBmaWxlCi0gICB9IAotICAgfSBlbHNlaWYge1tpbmZvIGV4aXN0cyA6Ok1TVjo6aWVlZTE4MDFMb2FkZWRdICYmICQ6Ok1TVjo6aWVlZTE4MDFMb2FkZWQgJiYKLSAgICAgICAgICAgICBbaW5mbyBleGlzdHMgOjpNU1ZfVVBGOjp1cGZfZmlsZV19IHsKLSAgICAgIHNldCBscGZpbGUgW2ZpbGUgbm9ybWFsaXplICQ6Ok1TVl9VUEY6OnVwZl9maWxlXQotICAgICAgc2V0IGxwZm9ybWF0IGllZWUxODAxCi0gICB9Ci0KLSAgIGlmIHskbHBmaWxlID09IHt9fSB7Ci0gICAgICBwdXRzICJXQVJOSU5HOiBDYW5ub3QgZGV0ZXJtaW5lIENQRiBvciBJRUVFIDE4MDEgZmlsZSAuLi4iCi0gICB9IGVsc2UgewotICAgICAgc2V0IHZhcnMoJHtscGZvcm1hdH1fZmlsZSkgJGxwZmlsZQotICAgICBwdXRzICRvcDEgInNldCB2YXJzKCR7bHBmb3JtYXR9X2ZpbGUpICAgICAgIFwiJHZhcnMoJHtscGZvcm1hdH1fZmlsZSlcIiIKLSAgICAgIHB1dHMgJG9wMSAiIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIKLSAgICAgIHB1dHMgJG9wMSAiIyBEZWZpbmUgdGhlIGZvbGxvd2luZyB0byBzZWxlY3RpdmVseSBjb21taXQgc2VjdGlvbnMgb2YgdGhlIFtzdHJpbmcgdG91cHBlciAkbHBmb3JtYXRdIGZpbGUiCi0gICAgICBwdXRzICRvcDEgIiNzZXQgdmFycygke2xwZm9ybWF0fV9wb3dlcl9kb21haW4pICAgICA8dHJ1ZSB8IGZhbHNlPiIKLSAgICAgIHB1dHMgJG9wMSAiI3NldCB2YXJzKCR7bHBmb3JtYXR9X3Bvd2VyX3N3aXRjaCkgICAgIDx0cnVlIHwgZmFsc2U+IgotICAgICAgcHV0cyAkb3AxICIjc2V0IHZhcnMoJHtscGZvcm1hdH1faXNvbGF0aW9uKSAgICAgICAgPHRydWUgfCBmYWxzZT4iCi0gICAgICBwdXRzICRvcDEgIiNzZXQgdmFycygke2xwZm9ybWF0fV9sZXZlbF9zaGlmdGVyKSAgICA8dHJ1ZSB8IGZhbHNlPiIKLSAgICAgIHB1dHMgJG9wMSAiI3NldCB2YXJzKCR7bHBmb3JtYXR9X3N0YXRlX3JldGVudGlvbikgIDx0cnVlIHwgZmFsc2U+IgotICAgICAgcHV0cyAkb3AxICIjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIgotICAgICAgcHV0cyAkb3AxICIjc2V0IHZhcnMoJHtscGZvcm1hdH1fa2VlcF9yb3dzKSAgICAgICAgPHRydWUgfCBmYWxzZT4iCi0gICAgICBwdXRzICRvcDEgIiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIgotICAgICAgcHV0cyAkb3AxICIjIFRoZSB2YXJzKHBvd2VyX2RvbWFpbnMpIGlzIG9wdGlvbmFsLiAgSWYgbm90IGRlZmluZWQsIHRoZSBwb3dlciIgCi0gICAgICBwdXRzICRvcDEgIiMgcG93ZXIgZG9tYWluIGxpc3Qgd2lsbCBiZSBwaWNrZWQgdXAgYXV0b21hdGljYWxseSIKLSAgICAgIHB1dHMgJG9wMSAiIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iCi0gICAgICBzZXQgcG93ZXJfZG9tYWlucyBbbGlzdF0KLSAgICAgIGRiRm9yRWFjaFBvd2VyRG9tYWluIFtkYmdIZWFkXSBwZCB7Ci0gICAgICAgICBsYXBwZW5kIHBvd2VyX2RvbWFpbnMgW2RiUG93ZXJEb21haW5OYW1lICRwZF0KLSAgICAgIH0KLSAgICAgIGlmIHskcG93ZXJfZG9tYWlucyAhPSAiIn0gewotICAgICAgICAgcHV0cyAkb3AxICJzZXQgdmFycyhwb3dlcl9kb21haW5zKSBcIiRwb3dlcl9kb21haW5zXCIiCi0gICAgICB9IGVsc2UgewotICAgICAgICAgcHV0cyAkb3AxICIjc2V0IHZhcnMocG93ZXJfZG9tYWlucykgICAgICAgICAgICAgICAgICAgICAgIDxsaXN0IG9mIHBvd2VyIGRvbWFpbnM+IgotICAgICAgfQotICAgICAgcHV0cyAkb3AxICIjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIKLSAgICAgIHB1dHMgJG9wMSAiIyBBZGRpdGlvbmFsIG9wdGlvbmFsIGxvdyBwb3dlciB2YXJpYWJsZXMgY2FuIGJlIGRlZmluZWQgaW4gdGhlIGxwX2NvbmZpZy50Y2wgZmlsZS4iCi0gICAgICBwdXRzICRvcDEgIiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIgotICAgfQotfQotcHV0cyAkb3AyICIiCi1wdXRzICRvcDIgIiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIgotcHV0cyAkb3AyICIjICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENsb2NrIFRyZWUgT3B0aW9ucyIKLXB1dHMgJG9wMiAiIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iCi1wdXRzICRvcDIgIiNzZXQgdmFycyhyb3V0ZV9jbG9ja19uZXRzKSA8dHJ1ZSB8IGZhbHNlPiIKLXB1dHMgJG9wMiAiI3NldCB2YXJzKGN0c19jZWxscykgICAgICAgIDxsaXN0IG9mIGNsb2NrIGJ1ZmZlcnM+IgotcHV0cyAkb3AyICIjc2V0IHZhcnMoY2xvY2tfZ2F0ZV9jZWxscykgPGxpc3Qgb2YgY2xvY2sgZ2F0aW5nIGNlbGxzPiIKLXB1dHMgJG9wMiAiI3NldCB2YXJzKGNsb2NrX2dhdGVfY2xvbmUpIDx0cnVlIHwgZmFsc2U+IgotcHV0cyAkb3AyICIjc2V0IHZhcnMoY2xvY2tfZWNvKSAgICAgICAgPHByZV9yb3V0ZSB8IHBvc3Rfcm91dGUgfCBib3RoIHwgbm9uZT4iCi1wdXRzICRvcDIgIiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIgotcHV0cyAkb3AyICIjc2V0IHZhcnMoY2xrX3RyZWVfdG9wX2xheWVyKSAgICAgPHRyZWVfdG9wX3ByZWZlcnJlZF9sYXllcj4iCi1wdXRzICRvcDIgIiNzZXQgdmFycyhjbGtfdHJlZV9ib3R0b21fbGF5ZXIpICA8dHJlZV9ib3R0b21fcHJlZmVycmVkX2xheWVyPiAiCi1wdXRzICRvcDIgIiNzZXQgdmFycyhjbGtfdHJlZV9uZHIpICAgICAgICAgICA8dHJlZV9ub25fZGVmYXVsdF9ydWxlPiIKLXB1dHMgJG9wMiAiI3NldCB2YXJzKGNsa190cmVlX3NoaWVsZF9uZXQpICAgIDx0cmVlX3NoaWVsZF9uZXQ+ICIKLXB1dHMgJG9wMiAiI3NldCB2YXJzKGNsa19sZWFmX3RvcF9sYXllcikgICAgIDxsZWFmX3RvcF9wcmVmZXJyZWRfbGF5ZXI+IgotcHV0cyAkb3AyICIjc2V0IHZhcnMoY2xrX2xlYWZfYm90dG9tX2xheWVyKSAgPGxlYWZfYm90dG9tX3ByZWZlcnJlZF9sYXllcj4iCi1wdXRzICRvcDIgIiNzZXQgdmFycyhjdHNfbGVhZl9uZHIpICAgICAgICAgICA8bGVhZl9ub25fZGVmYXVsdF9sYXllcj4iCi1wdXRzICRvcDIgIiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIgotcHV0cyAkb3AyICIjIEFkZGl0aW9uYWwgdmFyaWFibGVzIHRvIGVuYWJsZS9zdXBwb3J0IGNjb3B0IgotcHV0cyAkb3AyICIjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIKLXB1dHMgJG9wMiAiI3NldCB2YXJzKGN0c19lbmdpbmUpIDxjbG9ja0Rlc2lnbiB8IGNjb3B0RGVzaWduPiIKLXB1dHMgJG9wMiAiI3NldCB2YXJzKGN0c19idWZmZXJfY2VsbHMpIDxsaXN0IG9mIGJ1ZmZlcnM+IgotcHV0cyAkb3AyICIjc2V0IHZhcnMoY3RzX2ludmVydGVyX2NlbGxzKSA8bGlzdCBvZiBpbnZlcnRlcnM+IgotcHV0cyAkb3AyICIjc2V0IHZhcnMoY3RzX3VzZV9pbnZlcnRlcnMpIDx0cnVlIHwgZmFsc2U+IgotcHV0cyAkb3AyICIjc2V0IHZhcnMoY3RzX2lvX29wdCkgPG9uIHNlY29uZGFyeSBvZmY+IgotI3B1dHMgJG9wMiAiI3NldCB2YXJzKGNjb3B0X2ludGVncmF0aW9uKSA8bmF0aXZlIHwgc2NyaXB0ZWQ+IgotI3B1dHMgJG9wMiAiI3NldCB2YXJzKGNjb3B0X2V4ZWN1dGFibGUpIDxwYXRoIHRvIGNjb3B0IGV4ZWN1dGFibGU+IgotCi1wdXRzICRvcDIgIiIKLXB1dHMgJG9wMiAiIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMiCi1wdXRzICRvcDIgIiMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPcHRpbWl6YXRpb24gT3B0aW9ucyIKLXB1dHMgJG9wMiAiIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIKLXB1dHMgJG9wMiAiIyBGb3IgZGlmZmljdWx0IHRpbWluZyBkZXNpZ25zLCAnc2V0IHZhcnMoaGlnaF90aW1pbmdfZWZmb3J0KSB0cnVlJyIKLXB1dHMgJG9wMiAiIyBUaGlzIGVuYWJsZXMgYSB2YXJpZXR5IG9mIG9wdGlvbnMgdGhyb3VnaG91dCB0aGUgZmxvdyBmb3Igb3B0aW1hbCIKLXB1dHMgJG9wMiAiIyBRb1IgYXQgdGhlIGV4cGVuc2Ugb2YgcnVudGltZSIKLXB1dHMgJG9wMiAiIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIKLXB1dHMgJG9wMiAiI3NldCB2YXJzKGhpZ2hfdGltaW5nX2VmZm9ydCkgICAgICAgICAgICAgPHRydWUgfCBmYWxzZT4iCi1wdXRzICRvcDIgIiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iCi0jcHV0cyAkb3AyICIjc2V0IHZhcnMoY3JpdGljYWxfcmFuZ2UpICAgICAgICAgICAgICAgICA8ZmxvYXQ+IgotcHV0cyAkb3AyICIjc2V0IHZhcnMocHJlc2VydmVfYXNzZXJ0aW9ucykgICAgICAgICAgICA8dHJ1ZSB8IGZhbHNlPiIgCi1wdXRzICRvcDIgIiNzZXQgdmFycyhjbG9ja19nYXRlX2F3YXJlX29wdCkgICAgICAgICAgIDx0cnVlIHwgZmFsc2U+IgotI3B1dHMgJG9wMiAiI3NldCB2YXJzKHBvd2VyX2VmZm9ydCkgICAgICAgICAgICAgICAgICAgPG5vbmUgfCBsb3cgfCBoaWdoPiIKLSNwdXRzICRvcDIgIiNzZXQgdmFycyhwb3dlcl9yYXRpbykgICAgICAgICAgICAgICAgICAgIDxmbG9hdD4iCi1wdXRzICRvcDIgIiNzZXQgdmFycyhmaXhfaG9sZF9hbGxvd190bnNfZGVncmFkYXRpb24pIDx0cnVlIHwgZmFsc2U+IgotcHV0cyAkb3AyICIjc2V0IHZhcnModXNlZnVsX3NrZXcpICAgICAgICAgICAgICAgICAgICA8dHJ1ZSB8IGZhbHNlPiIKLSNwdXRzICRvcDIgIiNzZXQgdmFycyhza2V3X2J1ZmZlcnMpICAgICAgICAgICAgICAgICAgIDx0cnVlIHwgZmFsc2U+IgotcHV0cyAkb3AyICIjc2V0IHZhcnMoZml4X2hvbGQpICAgICAgICAgICAgICAgICAgICAgICA8ZmFsc2UgfCBwb3N0Y3RzIHwgcG9zdHJvdXRlID4iCi1wdXRzICRvcDIgIiNzZXQgdmFycyhmaXhfaG9sZF9pZ25vcmVfaW9zKSAgICAgICAgICAgIDx0cnVlIHwgZmFsc2U+IgotcHV0cyAkb3AyICIjc2V0IHZhcnMoZGVsYXlfY2VsbHMpICAgICAgICAgICAgICAgICAgICA8bGlzdCBvZiBkZWxheSBjZWxscz4iCi1wdXRzICRvcDIgIiNzZXQgdmFycyhkb250X3VzZV9saXN0KSAgICAgICAgICAgICAgICAgIDxsaXN0IG9mIGNlbGxzPiIKLXB1dHMgJG9wMiAiI3NldCB2YXJzKGRvbnRfdXNlX2ZpbGUpICAgICAgICAgICAgICAgICAgPGZpbGUgb2YgZG9udCB1c2UgY29tbWFuZHM+IgotcHV0cyAkb3AyICIjc2V0IHZhcnModXNlX2xpc3QpICAgICAgICAgICAgICAgICAgICAgICA8bGlzdCBvZiBjZWxscz4iCi1wdXRzICRvcDIgIiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iCi1mb3JlYWNoIG9wdGlvbiBbZ2V0T3B0TW9kZSAtcXVpZXRdIHsKLSAgIGlmIHtbbGluZGV4ICRvcHRpb24gMF0gPT0gImNyaXRpY2FsUmFuZ2UifSB7Ci0gICAgICBwdXRzICRvcDIgIiNzZXQgdmFycyhjcml0aWNhbF9yYW5nZSkgICAgICAgICAgICAgICAgIFtsaW5kZXggJG9wdGlvbiAxXSIKLSAgIH0KLSAgIGlmIHtbbGluZGV4ICRvcHRpb24gMF0gPT0gInByZXNlcnZlQXNzZXJ0aW9ucyJ9IHsKLSAgICAgIHB1dHMgJG9wMiAic2V0IHZhcnMocHJlc2VydmVfYXNzZXJ0aW9ucykgICAgICAgICAgICBbbGluZGV4ICRvcHRpb24gMV0iCi0gICB9IAotIyAgIGlmIHtbbGluZGV4ICRvcHRpb24gMF0gPT0gImxlYWthZ2VQb3dlckVmZm9ydCJ9IHsKLSMgICAgICBwdXRzICRvcDIgInNldCB2YXJzKGxlYWthZ2VfcG93ZXJfZWZmb3J0KSAgICAgICAgICAgW2xpbmRleCAkb3B0aW9uIDFdIgotIyAgIH0KLSMgICBpZiB7W2xpbmRleCAkb3B0aW9uIDBdID09ICJkeW5hbWljUG93ZXJFZmZvcnQifSB7Ci0jICAgICAgcHV0cyAkb3AyICJzZXQgdmFycyhkeW5hbWljX3Bvd2VyX2VmZm9ydCkgICAgICAgICAgIFtsaW5kZXggJG9wdGlvbiAxXSIKLSMgICB9Ci0gICBpZiB7W2xpbmRleCAkb3B0aW9uIDBdID09ICJmaXhIb2xkQWxsb3dTZXR1cFRuc0RlZ3JhZGUifSB7Ci0gICAgICBwdXRzICRvcDIgInNldCB2YXJzKGZpeF9ob2xkX2FsbG93X3Ruc19kZWdyYWRhdGlvbikgW2xpbmRleCAkb3B0aW9uIDFdIgotICAgfQotICAgaWYge1tsaW5kZXggJG9wdGlvbiAwXSA9PSAiY2xrR2F0ZUF3YXJlIn0gewotICAgICAgcHV0cyAkb3AyICJzZXQgdmFycyhjbG9ja19nYXRlX2F3YXJlX29wdCkgICAgICAgICAgIFtsaW5kZXggJG9wdGlvbiAxXSIKLSAgIH0KLSAgIGlmIHtbbGluZGV4ICRvcHRpb24gMF0gPT0gInVzZWZ1bFNrZXcifSB7Ci0gICAgICBwdXRzICRvcDIgInNldCB2YXJzKHVzZWZ1bF9za2V3KSAgICAgICAgICAgICAgICAgICAgW2xpbmRleCAkb3B0aW9uIDFdIgotICAgfQotfQotI2ZvcmVhY2ggb3B0aW9uIFtnZXRVc2VmdWxTa2V3TW9kZSAtcXVpZXRdIHsKLSMgICBpZiB7W2xpbmRleCAkb3B0aW9uIDBdID09ICJ1c2VDZWxscyJ9IHsKLSMgICAgICBpZiB7W2xpbmRleCAkb3B0aW9uIDFdICE9ICIifSB7Ci0jICAgICAgICAgcHV0cyAkb3AyICJzZXQgdmFycyhza2V3X2J1ZmZlcnMpIFwiXFwiCi0jICAgICAgICAgZm9yZWFjaCBjZWxsIFtsaW5kZXggJG9wdGlvbiAxXSB7Ci0jICAgICAgICAgICAgcHV0cyAkb3AyICIgICAkY2VsbCBcXCIKLSMgICAgICAgICB9Ci0jICAgICAgICAgcHV0cyAkb3AyICJcIiIgCi0jICAgICAgfSAKLSMgICB9Ci0jfQotY2F0Y2gge3NldCBmb28gW2dldF9saW5lX21hdGNoICJzZXQgZG9uJ3QgdXNlIGJ5IFVzZXIiIFtnZXRMb2dGaWxlTmFtZV1dfQotaWYge1tpbmZvIGV4aXN0cyBmb29dICYmICgkZm9vICE9ICIiKSB9IHsKLSAgIHB1dHMgJG9wMiAic2V0IHZhcnMoZG9udF91c2VfbGlzdCkgXCJcXCIKLSAgIGZvcmVhY2ggbGluZSBbZ2V0X2xpbmVfbWF0Y2ggInNldCBkb24ndCB1c2UgYnkgVXNlciIgW2dldExvZ0ZpbGVOYW1lXSAwXSB7Ci0jICAgICAgbGFwcGVuZCB2YXJzKGRvbnRfdXNlX2xpc3QpIFtsaW5kZXggW3NwbGl0IFtsaW5kZXggJGxpbmUgMF0gIi8iXSAxXQotICAgICAgIHB1dHMgJG9wMiAiICAgW2xpbmRleCBbc3BsaXQgW2xpbmRleCAkbGluZSAwXSAiLyJdIDFdIFxcIgotICAgfQotICAgcHV0cyAkb3AyICJcIiIKLX0KLXB1dHMgJG9wMiAiIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMiCi1wdXRzICRvcDIgIiMgICAgICAgICAgICAgICAgICAgICAgICAgICAgUG93ZXIgQW5hbHlzaXMgT3B0aW9ucyIKLXB1dHMgJG9wMiAiIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iCi1wdXRzICRvcDIgIiNzZXQgdmFycyhhY3Rpdml0eV9maWxlKSAgICAgICAgPGFjdGl2aXR5IGZpbGU+IgotcHV0cyAkb3AyICIjc2V0IHZhcnMoYWN0aXZpdHlfZmlsZV9mb3JtYXQpIDxUQ0YgfCBTQUYgfCBWQ0Q+IgotcHV0cyAkb3AyICIjc2V0IHZhcnMocmVwb3J0X3Bvd2VyKSAgICAgICAgIDx0cnVlIG9yIGZhbHNlPiIKLXB1dHMgJG9wMiAiI3NldCB2YXJzKHBvd2VyX2FuYWx5c2lzX3ZpZXcpICA8cG93ZXIgYW5hbHlzaXMgdmlldz4iCi1wdXRzICRvcDIgIiIKLXB1dHMgJG9wMiAiIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMiCi1wdXRzICRvcDIgIiMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOYW5vcm91dGUgT3B0aW9ucyIKLXB1dHMgJG9wMiAiIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iCi1wdXRzICRvcDIgIiNzZXQgdmFycyhtdWx0aV9jdXRfZWZmb3J0KSAgICAgICAgPGxvdyB8IG1lZGl1bSB8IGhpZ2g+IgotcHV0cyAkb3AyICIjc2V0IHZhcnMoYW50ZW5uYV9kaW9kZSkgICAgICAgICAgIDxjZWxsIG5hbWU+IgotcHV0cyAkb3AyICIjc2V0IHZhcnMobGl0aG9fZHJpdmVuX3JvdXRpbmcpICAgIDx0cnVlIHwgZmFsc2U+IgotcHV0cyAkb3AyICIjc2V0IHZhcnModmVyaWZ5X2xpdGhvKSAgICAgICAgICAgIDx0cnVlIHwgZmFsc2U+IgotcHV0cyAkb3AyICIjc2V0IHZhcnMobHBhX3RlY2hfZmlsZSkgICAgICAgICAgIDxmaWxlIG5hbWU+IgotcHV0cyAkb3AyICIjc2V0IHZhcnMoZml4X2xpdGhvKSAgICAgICAgICAgICAgIDx0cnVlIHwgZmFsc2U+IgotcHV0cyAkb3AyICIjc2V0IHZhcnMobHBhX2NvbmZfZmlsZSkgICAgICAgICAgIDxmaWxlIG5hbWU+IgotcHV0cyAkb3AyICIjc2V0IHZhcnMocG9zdHJvdXRlX3NwcmVhZF93aXJlcykgIDx0cnVlIHwgZmFsc2U+IgotcHV0cyAkb3AyICIjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIKLWZvcmVhY2ggb3B0aW9uIFtnZXROYW5vUm91dGVNb2RlIC1xdWlldF0gewotICAgaWYge1tsaW5kZXggJG9wdGlvbiAwXSA9PSAiZHJvdXRlVXNlTXVsdGlDdXRWaWFFZmZvcnQifSB7Ci0gICAgICBwdXRzICRvcDIgInNldCB2YXJzKG11bHRpX2N1dF9lZmZvcnQpICAgICBbbGluZGV4ICRvcHRpb24gMV0iCi0gICB9Ci0gICBpZiB7W2xpbmRleCAkb3B0aW9uIDBdID09ICJyb3V0ZVdpdGhMaXRob0RyaXZlbiJ9IHsKLSAgICAgIHB1dHMgJG9wMiAic2V0IHZhcnMobGl0aG9fZHJpdmVuX3JvdXRpbmcpIFtsaW5kZXggJG9wdGlvbiAxXSIKLSAgIH0KLX0KLQotcHV0cyAkb3AyICIjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyIKLXB1dHMgJG9wMiAiIyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEV4dHJhY3Rpb24gT3B0aW9ucyIKLXB1dHMgJG9wMiAiIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iCi1wdXRzICRvcDIgIiNzZXQgdmFycyhjb3VwbGluZ19jX3RocmVzaCkgICAgICAgPGZsb2F0PiIKLXB1dHMgJG9wMiAiI3NldCB2YXJzKHJlbGF0aXZlX2NfdGhyZXNoKSAgICAgICA8ZmxvYXQ+IgotcHV0cyAkb3AyICIjc2V0IHZhcnModG90YWxfY190aHJlc2gpICAgICAgICAgIDxmbG9hdD4iCi1wdXRzICRvcDIgIiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIgotZm9yZWFjaCBvcHRpb24gW2dldEV4dHJhY3RSQ01vZGUgLXF1aWV0XSB7Ci0gICBpZiB7W2xpbmRleCAkb3B0aW9uIDBdID09ICJjb3VwbGluZ19jX3RoIn0gewotICAgICAgcHV0cyAkb3AyICIjc2V0IHZhcnMoY291cGxpbmdfY190aHJlc2gpICAgICAgIFtsaW5kZXggJG9wdGlvbiAxXSIKLSAgIH0KLSAgIGlmIHtbbGluZGV4ICRvcHRpb24gMF0gPT0gInJlbGF0aXZlX2NfdGgifSB7Ci0gICAgICBwdXRzICRvcDIgIiNzZXQgdmFycyhyZWxhdGl2ZV9jX3RocmVzaCkgICAgICAgW2xpbmRleCAkb3B0aW9uIDFdIgotICAgfQotICAgaWYge1tsaW5kZXggJG9wdGlvbiAwXSA9PSAidG90YWxfY190aCJ9IHsKLSAgICAgIHB1dHMgJG9wMiAiI3NldCB2YXJzKHRvdGFsX2NfdGhyZXNoKSAgICAgICAgICBbbGluZGV4ICRvcHRpb24gMV0iCi0gICB9Ci19Ci1wdXRzICRvcDIgIiMgU2lnbm9mZiBleHRyYWN0aW9uIHJlcXVpcmVzIHFyY190ZWNoIGZpbGU7IGlmIHlvdSBkb250IGhhdmUgb25lLCBwbGVhc2Ugc3dpdGNoIHRvIGVmZm9ydCBsb3cuIgotcHV0cyAkb3AyICIjIEJ1dCBrZWVwIGluIG1pbmQsIGVmZm9ydCBsb3cgaXMgTk9UIGFsbG93ZWQgZm9yIHByb2Nlc3Mgbm9kZXMgMzJubSBhbmQgYmVsb3ciCi1wdXRzICRvcDIgIiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIgotcHV0cyAkb3AyICIjc2V0IHZhcnMocG9zdHJvdXRlX2V4dHJhY3Rpb25fZWZmb3J0KSA8bG93IHwgbWVkaXVtIHwgaGlnaD4iCi1wdXRzICRvcDIgIiNzZXQgdmFycyhzaWdub2ZmX2V4dHJhY3Rpb25fZWZmb3J0KSAgIDxsb3cgfCBtZWRpdW0gfCBoaWdoIHwgc2lnbm9mZj4iCi1wdXRzICRvcDIgIiIKLXB1dHMgJG9wMiAiIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMiCi1wdXRzICRvcDIgIiMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTaWduYWwgSW50ZWdyaXR5IE9wdGlvbnMiCi1wdXRzICRvcDIgIiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIgotcHV0cyAkb3AyICIjc2V0IHZhcnMoZGVsdGFfZGVsYXlfdGhyZXNob2xkKSAgPGZsb2F0PiAoaW4gbmFub3NlY29uZHMpIgotcHV0cyAkb3AyICIjc2V0IHZhcnMoY2VsdGljX3NldHRpbmdzKSAgICAgICAgPHN0cmluZz4iCi1wdXRzICRvcDIgIiNzZXQgdmFycyhzaV9hbmFseXNpc190eXBlKSAgICAgICA8ZGVmYXVsdCB8IHBlc3NpbWlzdGljPiIKLXB1dHMgJG9wMiAiI3NldCB2YXJzKGFjY2VwdGFibGVfd25zKSAgICAgICAgIDxmbG9hdD4iCi1wdXRzICRvcDIgIiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIgotZm9yZWFjaCBvcHRpb24gW2dldFNJTW9kZSAtcXVpZXRdIHsKLSAgIGlmIHtbbGluZGV4ICRvcHRpb24gMF0gPT0gImRlbHRhRGVsYXlUaHJlc2hvbGQifSB7Ci0gICAgICBwdXRzICRvcDIgInNldCB2YXJzKGRlbHRhX2RlbGF5X3RocmVzaG9sZCkgW2xpbmRleCAkb3B0aW9uIDFdIgotICAgfQotICAgaWYge1tsaW5kZXggJG9wdGlvbiAwXSA9PSAiaW5zQ2VsdElDUHJlVENMIn0gewotICAgICAgcHV0cyAkb3AyICJzZXQgdmFycyhjZWx0aWNfc2V0dGluZ3MpICAgICAgIFtsaW5kZXggJG9wdGlvbiAxXSIKLSAgIH0KLSAgIGlmIHtbbGluZGV4ICRvcHRpb24gMF0gPT0gImFuYWx5c2lzVHlwZSJ9IHsKLSAgICAgIHB1dHMgJG9wMiAic2V0IHZhcnMoc2lfYW5hbHlzaXNfdHlwZSkgICAgICAgW2xpbmRleCAkb3B0aW9uIDFdIgotICAgfQotfQotCi1wdXRzICRvcDIgIiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIgotcHV0cyAkb3AyICIjIE9wdGlvbmFsbHkgZGVmaW5lIHRoZSBmb2xsb3dpbmcgd2hlbiBhcHBsaWNhYmxlIgotcHV0cyAkb3AyICIjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIKLXB1dHMgJG9wMiAiI3NldCB2YXJzKGFzc2lnbl9idWZmZXIpICAgICB7MSAtYnVmZmVyIDxidWZmZXIgbmFtZT59IgotcHV0cyAkb3AyICIjc2V0IHZhcnMoYnVmZmVyX3RpZV9hc3NpZ24pIDx0cnVlIHwgZmFsc2U+IgotcHV0cyAkb3AyICIjc2V0IHZhcnMoanRhZ19yb3dzKSAgICAgICAgIDxudW1iZXIgb2Ygcm93cyBmb3IganRhZyBwbGFjZW1lbnQ+IgotcHV0cyAkb3AyICIjc2V0IHZhcnMoanRhZ19jZWxscykgICAgICAgIDxsaXN0IG9mIGp0YWcgY2VsbHM+IgotcHV0cyAkb3AyICIjc2V0IHZhcnMoc3BhcmVfY2VsbHMpICAgICAgIDxsaXN0IG9mIHNwYXJlIGNlbGxzIGluc3RhbmNlcz4iCi0KLQotcHV0cyAkb3AyICIjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyIKLXB1dHMgJG9wMiAiIyBCZWxvdyBhcmUgdGhlIGF2YWlsYWJsZSBwbHVnLWlucyBmb3IgdGhlIGZsYXQgZm91bmRhdGlvbiBmbG93LiAgRWFjaCAiCi1wdXRzICRvcDIgIiMgc2hvdWxkIHBvaW50IHRvIGEgZmlsZS4gSWYgdGhlIGZpbGUgZG9lc24ndCBleGlzdCwgdGhlIGZsb3cgd2lsbCBwcmludCIKLXB1dHMgJG9wMiAiIyBhIHdhcm5pbmcgYW4gY29udGludWUuICBUaGUgcGxhY2VfdGNsIGFuZCBjdHNfdGNsIGFyZSB1bmlxdWUgaW4gdGhhdCAiCi1wdXRzICRvcDIgIiMgdGhleSBSRVBMQUNFIHRoZSBwbGFjZURlc2lnbiBhbmQgY2xvY2tEZXNpZ24gY2FsbHMsIHJlc3BlY3RpdmVseS4iCi1wdXRzICRvcDIgIiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIgotcHV0cyAkb3AyICJzZXQgdmFycyhhbHdheXNfc291cmNlX3RjbCkgICAgICAgICAgIFwkdmFycyhwbHVnX2RpcikvYWx3YXlzX3NvdXJjZS50Y2wiCi1wdXRzICRvcDIgInNldCB2YXJzKGZpbmFsX2Fsd2F5c19zb3VyY2VfdGNsKSAgICAgXCR2YXJzKHBsdWdfZGlyKS9maW5hbF9hbHdheXNfc291cmNlLnRjbCIKLXB1dHMgJG9wMiAic2V0IHZhcnMocHJlX2luaXRfdGNsKSAgICAgICAgICAgICAgICBcJHZhcnMocGx1Z19kaXIpL3ByZV9pbml0LnRjbCIKLXB1dHMgJG9wMiAic2V0IHZhcnMocG9zdF9pbml0X3RjbCkgICAgICAgICAgICAgICBcJHZhcnMocGx1Z19kaXIpL3Bvc3RfaW5pdC50Y2wiCi1wdXRzICRvcDIgInNldCB2YXJzKHByZV9wbGFjZV90Y2wpICAgICAgICAgICAgICAgXCR2YXJzKHBsdWdfZGlyKS9wcmVfcGxhY2UudGNsIgotcHV0cyAkb3AyICIjc2V0IHZhcnMocGxhY2VfdGNsKSAgICAgICAgICAgICAgICAgIFwkdmFycyhwbHVnX2RpcikvcGxhY2UudGNsIgotcHV0cyAkb3AyICJzZXQgdmFycyhwb3N0X3BsYWNlX3RjbCkgICAgICAgICAgICAgIFwkdmFycyhwbHVnX2RpcikvcG9zdF9wbGFjZS50Y2wiCi1wdXRzICRvcDIgInNldCB2YXJzKHByZV9wcmVjdHNfdGNsKSAgICAgICAgICAgICAgXCR2YXJzKHBsdWdfZGlyKS9wcmVfcHJlY3RzLnRjbCIKLXB1dHMgJG9wMiAic2V0IHZhcnMocG9zdF9wcmVjdHNfdGNsKSAgICAgICAgICAgICBcJHZhcnMocGx1Z19kaXIpL3Bvc3RfcHJlY3RzLnRjbCIKLXB1dHMgJG9wMiAic2V0IHZhcnMocHJlX2N0c190Y2wpICAgICAgICAgICAgICAgICBcJHZhcnMocGx1Z19kaXIpL3ByZV9jdHMudGNsIgotcHV0cyAkb3AyICIjc2V0IHZhcnMoY3RzX3RjbCkgICAgICAgICAgICAgICAgICAgIFwkdmFycyhwbHVnX2RpcikvY3RzLnRjbCIKLXB1dHMgJG9wMiAic2V0IHZhcnMocG9zdF9jdHNfdGNsKSAgICAgICAgICAgICAgICBcJHZhcnMocGx1Z19kaXIpL3Bvc3RfY3RzLnRjbCIKLXB1dHMgJG9wMiAic2V0IHZhcnMocHJlX3Bvc3RjdHNfdGNsKSAgICAgICAgICAgICBcJHZhcnMocGx1Z19kaXIpL3ByZV9wb3N0Y3RzLnRjbCIKLXB1dHMgJG9wMiAic2V0IHZhcnMocG9zdF9wb3N0Y3RzX3RjbCkgICAgICAgICAgICBcJHZhcnMocGx1Z19kaXIpL3Bvc3RfcG9zdGN0cy50Y2wiCi1wdXRzICRvcDIgInNldCB2YXJzKHByZV9yb3V0ZV90Y2wpICAgICAgICAgICAgICAgXCR2YXJzKHBsdWdfZGlyKS9wcmVfcm91dGUudGNsIgotcHV0cyAkb3AyICJzZXQgdmFycyhwb3N0X3JvdXRlX3RjbCkgICAgICAgICAgICAgIFwkdmFycyhwbHVnX2RpcikvcG9zdF9yb3V0ZS50Y2wiCi1wdXRzICRvcDIgInNldCB2YXJzKHByZV9wb3N0Y3RzX2hvbGRfdGNsKSAgICAgICAgXCR2YXJzKHBsdWdfZGlyKS9wcmVfcG9zdGN0c19ob2xkLnRjbCIKLXB1dHMgJG9wMiAic2V0IHZhcnMocG9zdF9wb3N0Y3RzX2hvbGRfdGNsKSAgICAgICBcJHZhcnMocGx1Z19kaXIpL3Bvc3RfcG9zdGN0c19ob2xkLnRjbCIKLXB1dHMgJG9wMiAic2V0IHZhcnMocHJlX3Bvc3Ryb3V0ZV90Y2wpICAgICAgICAgICBcJHZhcnMocGx1Z19kaXIpL3ByZV9wb3N0cm91dGUudGNsIgotcHV0cyAkb3AyICJzZXQgdmFycyhwb3N0X3Bvc3Ryb3V0ZV90Y2wpICAgICAgICAgIFwkdmFycyhwbHVnX2RpcikvcG9zdF9wb3N0cm91dGUudGNsIgotcHV0cyAkb3AyICJzZXQgdmFycyhwcmVfcG9zdHJvdXRlX2hvbGRfdGNsKSAgICAgIFwkdmFycyhwbHVnX2RpcikvcHJlX3Bvc3Ryb3V0ZV9ob2xkLnRjbCIKLXB1dHMgJG9wMiAic2V0IHZhcnMocG9zdF9wb3N0cm91dGVfaG9sZF90Y2wpICAgICBcJHZhcnMocGx1Z19kaXIpL3Bvc3RfcG9zdHJvdXRlX2hvbGQudGNsIgotcHV0cyAkb3AyICJzZXQgdmFycyhwcmVfc2lnbm9mZl90Y2wpICAgICAgICAgICAgIFwkdmFycyhwbHVnX2RpcikvcHJlX3NpZ25vZmYudGNsIgotcHV0cyAkb3AyICJzZXQgdmFycyhwb3N0X3NpZ25vZmZfdGNsKSAgICAgICAgICAgIFwkdmFycyhwbHVnX2RpcikvcG9zdF9zaWdub2ZmLnRjbCIKLXB1dHMgJG9wMiAiIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIKLXB1dHMgJG9wMiAiIyBCZWxvdyBhcmUgdGhlIHBsdWctaW5zIGF2YWlsYWJsZSBmb3IgdGhlIGhpZXJhcmNoaWNhbCBmbG93IC4uLiBub3RlIgotcHV0cyAkb3AyICIjIHRoZSBhZGRpdGlvbmFsIHBsdWctaW5zIGZvciB0aGUgcGFydGl0aW9uIGFuZCBhc3NlbWJsZSBzdGVwcy4gICIKLXB1dHMgJG9wMiAiIyBLZWVwIGluIG1pbmQgIgotcHV0cyAkb3AyICIjICAgIC0gVGhlIHBhcnRpdGlvbmluZyBzdGVwIHdpbGwgYWxzbyBsb2FkIHRoZSBwcmUvcG9zdCBpbml0IgotcHV0cyAkb3AyICIjICAgICAgYW5kIHByZS9wb3N0IHBsYWNlIHBsdWctaW5zIChzZWUgYWJvdmUpLiIKLXB1dHMgJG9wMiAiIyAgICAtIFRoZSBhc3NlbWJsZSBzdGVwIHdpbGwgYWxzbyBsb2FkIHRoZSBwcmUvcG9zdCBzaWdub2ZmIgotcHV0cyAkb3AyICIjICAgICAgcGx1Zy1pbnMgYXMgd2VsbC4gICIKLXB1dHMgJG9wMiAiIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIKLXB1dHMgJG9wMiAiI3NldCB2YXJzKGFsd2F5c19zb3VyY2VfdGNsKSAgICAgICAgICBcJHZhcnMocGx1Z19kaXIpL3Bvc3Rfc2lnbm9mZi50Y2wiCi1wdXRzICRvcDIgIiNzZXQgdmFycyhmaW5hbF9hbHdheXNfc291cmNlX3RjbCkgICAgXCR2YXJzKHBsdWdfZGlyKS9maW5hbF9hbHdheXNfc291cmNlLnRjbCIKLXB1dHMgJG9wMiAiI3NldCB2YXJzKHByZV9tb2RlbF9nZW5fdGNsKSAgICAgICAgICBcJHZhcnMocGx1Z19kaXIpL3ByZV9tb2RlbF9nZW4udGNsIgotcHV0cyAkb3AyICIjc2V0IHZhcnMocG9zdF9tb2RlbF9nZW5fdGNsKSAgICAgICAgIFwkdmFycyhwbHVnX2RpcikvcG9zdF9tb2RlbF9nZW4udGNsIgotcHV0cyAkb3AyICIjc2V0IHZhcnMocHJlX3Bpbl9hc3NpZ25fdGNsKSAgICAgICAgIFwkdmFycyhwbHVnX2RpcikvcHJlX3Bpbl9hc3NpZ24udGNsIgotcHV0cyAkb3AyICIjc2V0IHZhcnMocG9zdF9waW5fYXNzaWduX3RjbCkgICAgICAgIFwkdmFycyhwbHVnX2RpcikvcG9zdF9waW5fYXNzaWduLnRjbCIKLXB1dHMgJG9wMiAiI3NldCB2YXJzKHByZV9wYXJ0aXRpb25fdGNsKSAgICAgICAgICBcJHZhcnMocGx1Z19kaXIpL3ByZV9wYXJ0aXRpb24udGNsIgotcHV0cyAkb3AyICIjc2V0IHZhcnMocG9zdF9wYXJ0aXRpb25fdGNsKSAgICAgICAgIFwkdmFycyhwbHVnX2RpcikvcG9zdF9wYXJ0aXRpb24udGNsIgotcHV0cyAkb3AyICIjc2V0IHZhcnMocHJlX2Fzc2VtYmxlX3RjbCkgICAgICAgICAgIFwkdmFycyhwbHVnX2RpcikvcHJlX2Fzc2VtYmxlLnRjbCIKLXB1dHMgJG9wMiAiI3NldCB2YXJzKHBvc3RfYXNzZW1ibGVfdGNsKSAgICAgICAgICBcJHZhcnMocGx1Z19kaXIpL3Bvc3RfYXNzZW1ibGUudGNsIgotcHV0cyAkb3AyICIjc2V0IHZhcnMocHJlX3NpZ25vZmZfdGNsKSAgICAgICAgICAgIFwkdmFycyhwbHVnX2RpcikvcHJlX3NpZ25vZmYudGNsIgotcHV0cyAkb3AyICIjc2V0IHZhcnMocG9zdF9zaWdub2ZmX3RjbCkgICAgICAgICAgIFwkdmFycyhwbHVnX2RpcikvcG9zdF9zaWdub2ZmLnRjbCIKLXB1dHMgJG9wMiAiIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIKLXB1dHMgJG9wMiAiIyBBbGwgb3RoZXIgcGx1Zy1pbnMgYXJlIG9ubHkgdXNlZCBkdXJpbmcgdGhlIGZsYXQgaW1wbGVtZW50YXRpb24iCi1wdXRzICRvcDIgIiMgb2YgdGhlIHBhcnRpdGlvbnMuIFRvIGVuYWJsZSBwbHVnLWlucyBmb3IgcGFydGl0aW9uIGltcGxlbWVudGF0aW9uIgotcHV0cyAkb3AyICIjIGRlZmluZSBpbiB0aGUgdmFycyg8cGFydD4saW5ub3Z1c19jb25maWdfdGNsKSBmaWxlIGZvciB0aGF0IHBhcnRpdGlvbiIKLXB1dHMgJG9wMiAiIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIKLXB1dHMgJG9wMiAiIyBUbyBpbnNlcnQgbWV0YWwgZmlsbCBkdXJpbmcgdGhlIGZsb3cgZGVmaW5lIHRoZSBmb2xsb3dpbmcgdHdvIHZhcmlhYmxlczoiCi1wdXRzICRvcDIgIiMgLSB2YXJzKG1ldGFsZmlsbCkgICAgXFtwcmVfcG9zdHJvdXRlLCBwcmVfc2lnbm9mZlxdIgotcHV0cyAkb3AyICIjIC0gdmFycyhtZXRhbGZpbGxfdGNsKSA8cGF0aCB0byBtZXRhbGZpbGwgcGx1Zy1pbiBmaWxlPiIKLXB1dHMgJG9wMiAiIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIKLXB1dHMgJG9wMiAiI3NldCB2YXJzKG1ldGFsZmlsbCkgICAgICAgICAgICAgICAgICBwcmVfcG9zdHJvdXRlIgotcHV0cyAkb3AyICIjc2V0IHZhcnMobWV0YWxmaWxsX3RjbCkgICAgICAgICAgICAgXCR2YXJzKHBsdWdfZGlyKS9tZXRhbGZpbGwudGNsIgotCi1wdXRzICRvcDIgIiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyIKLXB1dHMgJG9wMiAiIyBEaXN0cmlidXRpb24gc2V0dXAgLi4uIHZhcnMoZGlzdHJpYnV0ZSkgY2FuIGJlIG9uZSBvZiB0aGUgZm9sbG93aW5nOiIKLXB1dHMgJG9wMiAiIyBsc2YsIHJzaCwgbG9jYWwsIG9yIGN1c3RvbSIKLXB1dHMgJG9wMiAiIyBEZXBlbmRpbmcgb24gdGhlIHZhbHVlIG9mIHZhcnMoZGlzdHJpYnV0ZSksIGFkZGl0aW9uIHZhcmlhYmxlcyIKLXB1dHMgJG9wMiAiIyBtYXkgYmUgcmVxdWlyZWQuICBTb21lIGV4YW1wbGVzIGFyZSBzaG93biBiZWxvdyIKLXB1dHMgJG9wMiAiIyBBbHNvLCBhIHRpbWVvdXQgY2FuIGJlIHNldCAodW5pdCBpcyBzZWNvbmRzKSIKLXB1dHMgJG9wMiAiIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIKLXB1dHMgJG9wMiAiI3NldCB2YXJzKGRpc3RyaWJ1dGUpICAgICAgICAgICBjdXN0b20iCi1wdXRzICRvcDIgIiNzZXQgdmFycyhkaXN0cmlidXRlX3RpbWVvdXQpICAgMzYwMCIKLXB1dHMgJG9wMiAiI3NldCB2YXJzKGN1c3RvbSxzY3JpcHQpICAgICAgICB7L2dyaWQvc2ZpL2Zhcm0vYmluL2dyaWRzdWIgLVcgNzI6MDAgLVAgU09DNy4xIC1SIFwiU0ZJQVJDSD09T1BUNjQgJiYgT1NSRUw9PUVFNDBcIiAtcSBsbng2NH0iCi1wdXRzICRvcDIgIiNzZXQgdmFycyhsc2YscXVldWUpICAgICAgICAgICAgbG54NjQiCi1wdXRzICRvcDIgIiNzZXQgdmFycyhsc2YscmVzb3VyY2UpICAgICAgICAgXCJTRklBUkNIPT1PUFQ2NCAmJiBPU1JFTD09RUU0MFwiIgotcHV0cyAkb3AyICIjc2V0IHZhcnMobHNmLGFyZ3MpICAgICAgICAgICAgIFwiLVcgNzI6MDAgLVAgU09DOC4xXCIiCi1wdXRzICRvcDIgIiNzZXQgdmFycyhsb2NhbF9jcHVzKSAgICAgICAgICAgMiIKLXB1dHMgJG9wMiAiI3NldCB2YXJzKHJlbW90ZV9ob3N0cykgICAgICAgICAyIgotcHV0cyAkb3AyICIjc2V0IHZhcnMoY3B1X3Blcl9yZW1vdGVfaG9zdCkgIDIiCi1wdXRzICRvcDIgIiNzZXQgdmFycyhyc2gsaG9zdHMpICAgICAgICAgICAgPGxpc3Qgb2YgaG9zdHM+IgotcHV0cyAkb3AyICIjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMiCi1wdXRzICRvcDIgIiMgQ2FwdHVyZSBxb3IgYW5kIHJ1biB0aW1lIG1ldHJpY3MgLi4uIgotcHV0cyAkb3AyICIjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIgotcHV0cyAkb3AyICIjc2V0IHZhcnMoY2FwdHVyZV9tZXRyaWNzKSBmYWxzZSIKLXB1dHMgJG9wMiAic2V0IHZhcnMocmVwb3J0X3J1bl90aW1lKSB0cnVlIgotcHV0cyAkb3AyICIjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIgotcHV0cyAkb3AyICIjc2V0IHZhcnMoaHRtbF9zdW1tYXJ5KSA8ZmlsZW5hbWU+IgotcHV0cyAkb3AyICIjc2V0IHZhcnModGltZV9pbmZvX3JwdCkgPGZpbGVuYW1lPiIKLXB1dHMgJG9wMiAiI3NldCB2YXJzKHRpbWVfaW5mb19kYnMpIDxmaWxlbmFtZT4iCi1wdXRzICRvcDIgIiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyIKLXB1dHMgJG9wMiAiIyBNYWtlZmlsZSBvcHRpb25zIC4uLiIKLXB1dHMgJG9wMiAiIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIKLXB1dHMgJG9wMiAiI3NldCB2YXJzKG1ha2VfdG9vbCkgPGlubm92dXMgZXhlY3V0YWJsZT4iCi1wdXRzICRvcDIgIiNzZXQgdmFycyhtYWtlX3Rvb2xfYXJncykgXCItNjQgLW5vd2luXCIiCi1wdXRzICRvcDIgIiNzZXQgdmFycyhtYWtlX3N5bl90b29sKSA8cmMgZXhlY3V0YWJsZT4iCi1wdXRzICRvcDIgIiNzZXQgdmFycyhtYWtlX3N5bl90b29sX2FyZ3MpIFwiLTY0XCIiCi1wdXRzICRvcDIgIiNzZXQgdmFycyhtYWtlX2Jyb3dzZXIpIG1vemlsbGEiCi1wdXRzICRvcDIgIiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyIKLXB1dHMgJG9wMiAiIyBBYm9ydCBpZiB0aGVyZSBhcmUgZXJyb3JzIGluIHRoZSBzZXR1cC50Y2wiCi1wdXRzICRvcDIgIiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iCi1wdXRzICRvcDIgInNldCB2YXJzKGFib3J0KSB0cnVlIgotcHV0cyAkb3AyICIjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMiCi1wdXRzICRvcDIgIiMgU2VuZCBtYWlsIGR1cmluZyBmbG93IGV4ZWN1dGlvbjsgIHZhcnMobWFpbCxzdGVwcykgZGVmYXVsdHMgdG8gQUxMIHN0ZXBzLiIKLXB1dHMgJG9wMiAiI3NldCB2YXJzKG1haWwsdG8pICAgICAgICAgICAgICBcIjxsaXN0IG9mIGVtYWlsIGFkZHJlc3Nlcz5cIiIKLXB1dHMgJG9wMiAiI3NldCB2YXJzKG1haWwsc3RlcHMpICAgICAgICAgICBcIjxsaXN0IG9mIHN0ZXBzPlwiIgotcHV0cyAkb3AyICIjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMiCi1wdXRzICRvcDEgInB1dHMgXCI8RkY+IEZpbmlzaGVkIGxvYWRpbmcgc2V0dXAudGNsIGZpbGVcIiIKLXB1dHMgJG9wMiAicHV0cyBcIjxGRj4gRmluaXNoZWQgbG9hZGluZyB0aGUgSU5OT1ZVUyBjb25maWd1cmF0aW9uIGZpbGVcIiIKLQotY2xvc2UgJG9wMQotY2xvc2UgJG9wMgotCi1QdXRzICI8RkY+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIKLVB1dHMgIjxGRj4gRmluaXNoZWQgZ2VuZXJhdGluZyBzZXR1cCBmaWxlIFwic2V0dXAuYXV0by50Y2xcIiAuLi4gIgotUHV0cyAiPEZGPiBwbGVhc2UgZWRpdCBhbmQgcmVuYW1lIHRvIHNldHVwLnRjbCB0byBlbmFibGUiCi1QdXRzICI8RkY+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIKLVB1dHMgIjxGRj4gRmluaXNoZWQgZ2VuZXJhdGluZyBJTk5PVlVTIGNvbmZpZyBmaWxlIFwiaW5ub3Z1c19jb25maWcuYXV0by50Y2xcIiAuLi4gIgotUHV0cyAiPEZGPiBwbGVhc2UgZWRpdCBhbmQgcmVuYW1lIHRvIGlubm92dXNfY29uZmlnLnRjbCB0byBlbmFibGUiCi1QdXRzICI8RkY+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIKLSNwdXRzICIgICAgIFBsZWFzZSBjaGVjayBmb3IgY29ycmVjdG5lc3MgYW5kIGFkZCBhZGRpdGlvbmFsIGluZm9ybWF0aW9uIGFzIG5lY2Vzc2FyeSIKLWlmIHtbaW5mbyBleGlzdHMgbHBmaWxlXX0gewotICAgY3JlYXRlX2xwX2NvbmZpZ19maWxlCi0gICBQdXRzICI8RkY+IEZpbmlzaGVkIGdlbmVyYXRpbmcgbG93IHBvd2VyIGNvbmZpZyBmaWxlIFwibHBfY29uZmlnLmF1dG8udGNsXCIgLi4uICIKLSAgIFB1dHMgIjxGRj4gcGxlYXNlIGVkaXQgYW5kIHJlbmFtZSB0byBscF9jb25maWcudGNsIHRvIGVuYWJsZSIKLSAgIFB1dHMgIjxGRj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIgotfQotY3JlYXRlX2ludnNfdGFnX2ZpbGUKLVB1dHMgIjxGRj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIgotUHV0cyAiPEZGPiBGaW5pc2hlZCBnZW5lcmF0aW5nIElOTk9WVVMgdGFnIGZpbGUgXCJpbnZzLmF1dG8udGNsXCIgLi4uICIKLVB1dHMgIjxGRj4gVGhpcyBmaWxlIGlzIGZvciBkZXRhaWxlZCBmbG93IGN1c3RvbWl6YXRpb24gYW5kIGluIHB1cmVseSBvcHRpb25hbC4iCi1QdXRzICI8RkY+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIKLWlmIHtbaW5mbyBleGlzdHMgZG9uZV19IHsgCi0gICBmb3JlYWNoIHZhciBbYXJyYXkgbmFtZXMgZG9uZV0gewotICAgICAgdW5zZXQgZG9uZSgkdmFyKQotICAgfQotfQpkaWZmIC0tZ2l0IGEvZmxvdy9wbnIvVEVNUExBVEVTL0lOTk9WVVMvZWRpX2NvbmZpZy50Y2wgYi9mbG93L3Buci9URU1QTEFURVMvSU5OT1ZVUy9lZGlfY29uZmlnLnRjbApkZWxldGVkIGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMWRhZWE4ZS4uMDAwMDAwMAotLS0gYS9mbG93L3Buci9URU1QTEFURVMvSU5OT1ZVUy9lZGlfY29uZmlnLnRjbAorKysgL2Rldi9udWxsCkBAIC0xLDQwMCArMCwwIEBACi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0jICAgICAgICAgICAgICAgICAgICAgICBDQURFTkNFIENPUFlSSUdIVCBOT1RJQ0UKLSMgICAgICAgICCpIDIwMDgtMjAxMyBDYWRlbmNlIERlc2lnbiBTeXN0ZW1zLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0jCi0jIFRoaXMgRm91bmRhdGlvbiBGbG93IGlzIHByb3ZpZGVkIGFzIGFuIGV4YW1wbGUgb2YgaG93IHRvIHBlcmZvcm0gc3BlY2lhbGl6ZWQKLSMgdGFza3MuCi0jCi0jIFRoaXMgd29yayBtYXkgbm90IGJlIGNvcGllZCwgcmUtcHVibGlzaGVkLCB1cGxvYWRlZCwgb3IgZGlzdHJpYnV0ZWQgaW4gYW55IHdheSwKLSMgaW4gYW55IG1lZGl1bSwgd2hldGhlciBpbiB3aG9sZSBvciBpbiBwYXJ0LCB3aXRob3V0IHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbgotIyBmcm9tIENhZGVuY2UuIE5vdHdpdGhzdGFuZGluZyBhbnkgcmVzdHJpY3Rpb25zIGhlcmVpbiwgc3ViamVjdCB0byBjb21wbGlhbmNlCi0jIHdpdGggdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mIHRoZSBDYWRlbmNlIHNvZnR3YXJlIGxpY2Vuc2UgYWdyZWVtZW50IHVuZGVyCi0jIHdoaWNoIHRoaXMgbWF0ZXJpYWwgd2FzIHByb3ZpZGVkLCB0aGlzIG1hdGVyaWFsIG1heSBiZSBjb3BpZWQgYW5kIGludGVybmFsbHkKLSMgZGlzdHJpYnV0ZWQgc29sZWx5IGZvciBpbnRlcm5hbCBwdXJwb3NlcyBmb3IgdXNlIHdpdGggQ2FkZW5jZSB0b29scy4KLSMKLSMgVGhpcyB3b3JrIGlzIENhZGVuY2UgaW50ZWxsZWN0dWFsIHByb3BlcnR5IGFuZCBtYXkgdW5kZXIgbm8gY2lyY3Vtc3RhbmNlcyBiZQotIyBnaXZlbiB0byB0aGlyZCBwYXJ0aWVzLCBuZWl0aGVyIGluIG9yaWdpbmFsIG5vciBpbiBtb2RpZmllZCB2ZXJzaW9ucywgd2l0aG91dAotIyBleHBsaWNpdCB3cml0dGVuIHBlcm1pc3Npb24gZnJvbSBDYWRlbmNlLiBUaGUgaW5mb3JtYXRpb24gY29udGFpbmVkIGhlcmVpbiBpcwotIyB0aGUgcHJvcHJpZXRhcnkgYW5kIGNvbmZpZGVudGlhbCBpbmZvcm1hdGlvbiBvZiBDYWRlbmNlIG9yIGl0cyBsaWNlbnNvcnMsIGFuZAotIyBpcyBzdXBwbGllZCBzdWJqZWN0IHRvLCBhbmQgbWF5IGJlIHVzZWQgb25seSBieSBDYWRlbmNlJ3MgY3VycmVudCBjdXN0b21lcnMKLSMgaW4gYWNjb3JkYW5jZSB3aXRoLCBhIHByZXZpb3VzbHkgZXhlY3V0ZWQgbGljZW5zZSBhZ3JlZW1lbnQgYmV0d2VlbiBDYWRlbmNlCi0jIGFuZCBpdHMgY3VzdG9tZXIuCi0jCi0jLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0jIFRISVMgTUFURVJJQUwgSVMgUFJPVklERUQgQlkgQ0FERU5DRSAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVECi0jIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GCi0jIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuCi0jIElOIE5PIEVWRU5UIFNIQUxMIENBREVOQ0UgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTAotIyBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLAotIyBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUICAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IKLSMgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyAgTUFURVJJQUwsIEVWRU4gSUYKLSMgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0KLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotIyAgICAgICAgICAgICAgICAgICAgICAgIElOTk9WVVMgRk9VTkRBVElPTiBGTE9XCi0jLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSMgVGhpcyBpcyB0aGUgSW5ub3Z1cyBmb3VuZGF0aW9uIGZsb3cgY29uZmlndXJhdGlvbiBmaWxlLiAgSXQgY29udGFpbnMgYWxsIHRoZSBuZWNlc3NhcnkgZmxvdwotIyBvcHRpb25zIHRvIGRyaXZlIHRoZSBDRE5TIGZsYXQgYW5kL29yIGhpZXIgaW1wbGVtZW50YXRpb24gZmxvd3MuIEZvciBsb3cgcG93ZXIgZmxvdywKLSMgYW4gYWRkaXRpb24gbG93IHBvd2VyIGNvbmZpZ3VyYXRpb24gZmlsZSAobHBfY29uZmlnLnRjbCkgaXMgYWxzbyByZXF1aXJlZCBpZiBwb3dlcgotIyBkb21haW4gc3BlY2lmaWMgaW5mb3JtYXRpb24gbmVlZHMgdG8gYmUgZGVmaW5lZC4KLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotIyBPcHRpb25hbGx5IGRlZmluZSB0aGUgZm9sbG93aW5nIHdoZW4gYXBwbGljYWJsZQotIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotI3NldCB2YXJzKGFzc2lnbl9idWZmZXIpICAgICAgICAgICAgICAgICAgezEgLWJ1ZmZlciA8YnVmZmVyIG5hbWU+fSIKLSNzZXQgdmFycyhidWZmZXJfdGllX2Fzc2lnbikgICAgICAgICAgICAgIDx0cnVlIHwgZmFsc2U+Ci0jc2V0IHZhcnMoZG9udF91c2VfbGlzdCkgICAgICAgICAgICAgICAgICA8bGlzdD4KLSNzZXQgdmFycyhkZWxheV9jZWxscykgICAgICAgICAgICAgICAgICAgIDxsaXN0PgotI3NldCB2YXJzKHRpZV9jZWxscykgICAgICAgICAgICAgICAgICAgICAgPGxpc3Q+Ci0jc2V0IHZhcnModGllX2NlbGxzLG1heF9kaXN0YW5jZSkgICAgICAgICA8ZmxvYXQ+Ci0jc2V0IHZhcnModGllX2NlbGxzLG1heF9mYW5vdXQpICAgICAgICAgICA8aW50ZWdlcj4KLSNzZXQgdmFycyhza2V3X2J1ZmZlcnMpICAgICAgICAgICAgICAgICAgIDxsaXN0PgotI3NldCB2YXJzKGZpbGxlcl9jZWxscykgICAgICAgICAgICAgICAgICAgPGxpc3Q+Ci0jc2V0IHZhcnMoY2xvY2tfZ2F0ZV9jZWxscykgICAgICAgICAgICAgICA8bGlzdD4KLSNzZXQgdmFycyhqdGFnX2NlbGxzKSAgICAgICAgICAgICAgICAgICAgIDxsaXN0PgotI3NldCB2YXJzKGp0YWdfcm93cykgICAgICAgICAgICAgICAgICAgICAgPGludGVnZXI+Ci0jc2V0IHZhcnMoc3BhcmVfY2VsbHMpICAgICAgICAgICAgICAgICAgICA8bGlzdD4KLSNzZXQgdmFycyhlbmFibGVfb2N2KSAgICAgICAgICAgICAgICAgICAgIDxzdHJpbmc+Ci0jc2V0IHZhcnMoZW5hYmxlX2NwcHIpICAgICAgICAgICAgICAgICAgICA8c3RyaW5nPgotI3NldCB2YXJzKGVuYWJsZV9zcykgICAgICAgICAgICAgICAgICAgICAgPHN0cmluZz4KLSNzZXQgdmFycyhwbGFjZV9pb19waW5zKSAgICAgICAgICAgICAgICAgIDxib29sZWFuPiAKLSNzZXQgdmFycyhjbG9ja19nYXRlX2F3YXJlKSAgICAgICAgICAgICAgIDxib29sZWFuPgotI3NldCB2YXJzKGNsb2NrX2dhdGVfY2xvbmUpICAgICAgICAgICAgICAgPGJvb2xlYW4+Ci0jc2V0IHZhcnMoY2xvY2tfZWNvKSAgICAgICAgICAgICAgICAgICAgICA8cG9zdGN0cyB8IHBvc3Ryb3V0ZSB8IGJvdGg+Ci0jc2V0IHZhcnMoaGlnaF90aW1pbmdfZWZmb3J0KSAgICAgICAgICAgICA8Ym9vbGVhbj4KLSNzZXQgdmFycyhjb25nZXN0aW9uX2VmZm9ydCkgICAgICAgICAgICAgIDxsb3cgfCBtZWRpdW0gfCBoaWdoPgotI3NldCB2YXJzKGluX3BsYWNlX29wdCkgICAgICAgICAgICAgICAgICAgPGJvb2xlYW4+Ci0jc2V0IHZhcnMobGVha2FnZV9wb3dlcl9lZmZvcnQpICAgICAgICAgICA8bm9uZSB8IGxvdyB8IGhpZ2g+Ci0jc2V0IHZhcnMoZHluYW1pY19wb3dlcl9lZmZvcnQpICAgICAgICAgICA8bm9uZSB8IGxvdyB8IGhpZ2g+Ci0jc2V0IHZhcnModXNlZnVsX3NrZXcpICAgICAgICAgICAgICAgICAgICA8Ym9vbGVhbj4KLSNzZXQgdmFycyhwcmVzZXJ2ZV9hc3NlcnRpb25zKSAgICAgICAgICAgIDxib29sZWFuPgotI3NldCB2YXJzKGNyaXRpY2FsX3JhbmdlKSAgICAgICAgICAgICAgICAgPGZsb2F0PiAKLSNzZXQgdmFycyhhbGxfZW5kX3BvaW50cykgICAgICAgICAgICAgICAgIDxib29sZWFuPgotI3NldCB2YXJzKHNpemVfb25seV9maWxlKSAgICAgICAgICAgICAgICAgPGZpbGU+IAotI3NldCB2YXJzKGZpeF9mYW5vdXRfbG9hZCkgICAgICAgICAgICAgICAgPGJvb2xlYW4+Ci0jc2V0IHZhcnMocnVuX2N0cykgICAgICAgICAgICAgICAgICAgICAgICA8Ym9vbGVhbj4KLSNzZXQgdmFycyhjdHNfZW5naW5lKSAgICAgICAgICAgICAgICAgICAgIDxjdHMgfCBjY29wdCB8IGNjb3B0X2N0cz4gCi0jc2V0IHZhcnMoY3RzX2NlbGxfbGlzdCkgICAgICAgICAgICAgICAgICA8bGlzdCBvZiBidWZmZXJzL2ludmVydGVycz4KLSNzZXQgdmFycyhjdHNfYnVmZmVyX2NlbGxzKSAgICAgICAgICAgICAgIDxsaXN0IG9mIGJ1ZmZlcnM+Ci0jc2V0IHZhcnMoY3RzX2ludmVydGVyX2NlbGxzKSAgICAgICAgICAgICA8bGlzdCBvZiBpbnZlcnRlcz4KLSNzZXQgdmFycyhjdHNfdXNlX2ludmVydGVycykgICAgICAgICAgICAgIDxib29sZWFuPgotI3NldCB2YXJzKGN0c19lZmZvcnQpICAgICAgICAgICAgICAgICAgICAgPGxvdyB8IG1lZGl1bSB8IGhpZ2g+Ci0jc2V0IHZhcnMoY3RzX2lvX29wdCkgICAgICAgICAgICAgICAgICAgICA8Ym9vbGVhbj4KLSNzZXQgdmFycyhjbGtfdHJlZV90b3BfbGF5ZXIpICAgICAgICAgICAgIDxpbnRlZ2VyPgotI3NldCB2YXJzKGNsa19sZWFmX3RvcF9sYXllcikgICAgICAgICAgICAgPGludGVnZXI+Ci0jc2V0IHZhcnMoY2xrX3RyZWVfYm90dG9tX2xheWVyKSAgICAgICAgICA8aW50ZWdlcj4KLSNzZXQgdmFycyhjbGtfbGVhZl9ib3R0b21fbGF5ZXIpICAgICAgICAgIDxpbnRlZ2VyPgotI3NldCB2YXJzKGNsa190cmVlX25kcikgICAgICAgICAgICAgICAgICAgPHZhbGlkIG5vbi1kZWZhdWx0IHJ1bGU+Ci0jc2V0IHZhcnMoY2xrX3RyZWVfZXh0cmFfc3BhY2UpICAgICAgICAgICA8aW50ZWdlcj4KLSNzZXQgdmFycyhjbGtfbGVhZl9uZHIpICAgICAgICAgICAgICAgICAgIDx2YWxpZCBub24tZGVmYXVsdCBydWxlPgotI3NldCB2YXJzKGNsa19sZWFmX2V4dHJhX3NwYWNlKSAgICAgICAgICAgPGludGVnZXI+Ci0jc2V0IHZhcnMocm91dGVfY2xvY2tfbmV0cykgICAgICAgICAgICAgICA8Ym9vbGVhbj4KLSNzZXQgdmFycyhwb3N0Y3RzX3NldHVwX2hvbGQpICAgICAgICAgICAgIDx0cnVlIG9yIGZhbHNlPgotI3NldCB2YXJzKGZpeF9ob2xkKSAgICAgICAgICAgICAgICAgICAgICAgPGJvb2xlYW4+Ci0jc2V0IHZhcnMoZml4X2hvbGRfaWdub3JlX2lvcykgICAgICAgICAgICA8Ym9vbGVhbj4KLSNzZXQgdmFycyhmaXhfaG9sZF9hbGxvd190bnNfZGVncmFkYXRpb24pIDxib29sZWFuPgotI3NldCB2YXJzKG11bHRpX2N1dF9lZmZvcnQpICAgICAgICAgICAgICAgPGxvdyB8IG1lZGl1bSB8IGhpZ2g+Ci0jc2V0IHZhcnMobGl0aG9fZHJpdmVuX3JvdXRpbmcpICAgICAgICAgICA8Ym9vbGVhbj4KLSNzZXQgdmFycyh2ZXJpZnlfbGl0aG8pICAgICAgICAgICAgICAgICAgIDxib29sZWFuPgotI3NldCB2YXJzKGxwYV90ZWNoX2ZpbGUpICAgICAgICAgICAgICAgICAgPGZpbGUgbmFtZT4KLSNzZXQgdmFycyhwb3N0cm91dGVfc3ByZWFkX3dpcmVzKSAgICAgICAgIDx0cnVlIHwgZmFsc2U+Ci0jc2V0IHZhcnModHJhY2tfb3B0KSAgICAgICAgICAgICAgICAgICAgICA8dHJ1ZSBvciBmYWxzZT4KLSNzZXQgdmFycyhwb3N0cm91dGVfZXh0cmFjdGlvbl9lZmZvcnQpICAgIDxsb3cgfCBtZWRpdW0gfCBoaWdoPgotI3NldCB2YXJzKHBvc3Ryb3V0ZV9zZXR1cF9ob2xkKSAgICAgICAgICAgPHRydWUgb3IgZmFsc2U+Ci0jc2V0IHZhcnMoc2lnbm9mZl9leHRyYWN0aW9uX2VmZm9ydCkgICAgICA8bG93IHwgbWVkaXVtIHwgaGlnaD4KLSNzZXQgdmFycyhzaV9hbmFseXNpc190eXBlKSAgICAgICAgICAgICAgIDxkZWZhdWx0IHwgcGVzc2ltaXN0aWM+Ci0jc2V0IHZhcnMoYWNjZXB0YWJsZV93bnMpICAgICAgICAgICAgICAgICA8c3RyaW5nPgotI3NldCB2YXJzKHJlcG9ydF9wb3dlcikgICAgICAgICAgICAgICAgICAgPHRydWUgb3IgZmFsc2U+Ci0jc2V0IHZhcnMocmVwb3J0X3J1bl90aW1lKSAgICAgICAgICAgICAgICA8dHJ1ZSBvciBmYWxzZT4KLSNzZXQgdmFycyhzYXZlX3JjKSAgICAgICAgICAgICAgICAgICAgICAgIDx0cnVlIG9mIGZhbHNlPgotI3NldCB2YXJzKHNhdmVfY29uc3RyYWludHMpICAgICAgICAgICAgICAgPHRydWUgb2YgZmFsc2U+Ci0jc2V0IHZhcnMoYWJzb2x1dGVfbGliX3BhdGgpICAgICAgICAgICAgICA8dHJ1ZSBvZiBmYWxzZT4KLSNzZXQgdmFycyhyZWxhdGl2ZV9wYXRoKSAgICAgICAgICAgICAgICAgIDx0cnVlIG9mIGZhbHNlPgotI3NldCB2YXJzKHRpbWVfZGVzaWduX29wdGlvbnMsc2V0dXApICAgICAgImxpc3Qgb2YgdmFsaWQgdGltZURlc2lnbiBvcHRpb25zIEVYQ0xVRElORyAtcHJlQ1RTL3Bvc3RDVFMvcG9zdFJvdXRlIC1wcmVmaXggYW5kIC1vdXREaXIiCi0jc2V0IHZhcnModGltZV9kZXNpZ25fb3B0aW9ucyxob2xkKSAgICAgICAibGlzdCBvZiB2YWxpZCB0aW1lRGVzaWduIG9wdGlvbnMgRVhDTFVESU5HIC1wcmVDVFMvcG9zdENUUy9wb3N0Um91dGUgLXByZWZpeCBhbmQgLW91dERpciIKLSMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSMgIEZvciBoaWVyYXJjaGljYWwgZmxvd3MgLi4uCi0jc2V0IHZhcnMoaW5zZXJ0X2ZlZWR0aHJvdWdoKSAgICAgICAgICAgICAgPHRydWUgb2YgZmFsc2U+Ci0jc2V0IHZhcnMocGxhY2VtZW50X2Jhc2VkX3B0bikgICAgICAgICAgICAgPHRydWUgb2YgZmFsc2U+Ci0jc2V0IHZhcnModXNlX2ZsZXhtb2RlbHMpICAgICAgICAgICAgICAgICAgPHRydWUgb2YgZmFsc2U+Ci0jc2V0IHZhcnModXNlX3Byb3RvX25ldF9kZWxheV9tb2RlbCkgICAgICAgPHRydWUgb2YgZmFsc2U+Ci0jc2V0IHZhcnMoYnVkZ2V0X21vZGUpICAgICAgICAgICAgICAgICAgICAgInRyaWFsX2lwbyBwcm90b19uZXRfZGVsYXlfbW9kZWwgZ2lnYV9vcHQiCi0jc2V0IHZhcnMoZmxleG1vZGVsX2FzX3B0bikgICAgICAgICAgICAgICAgPHRydWUgb2YgZmFsc2U+Ci0jc2V0IHZhcnMoZmxleG1vZGVsX2FydF9iYXNlZCkgICAgICAgICAgICAgPHRydWUgb2YgZmFsc2U+Ci0KLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSMgQmVsb3cgYXJlIHRoZSBhdmFpbGFibGUgcGx1Zy1pbnMgZm9yIHRoZSBmbGF0IGZvdW5kYXRpb24gZmxvdy4gIEVhY2ggCi0jIHNob3VsZCBwb2ludCB0byBhIGZpbGUuIElmIHRoZSBmaWxlIGRvZXNuJ3QgZXhpc3QsIHRoZSBmbG93IHdpbGwgcHJpbnQKLSMgYSB3YXJuaW5nIGFuIGNvbnRpbnVlLiAgVGhlIHBsYWNlX3RjbCBhbmQgY3RzX3RjbCBhcmUgdW5pcXVlIGluIHRoYXQgCi0jIHRoZXkgUkVQTEFDRSB0aGUgcGxhY2VEZXNpZ24gYW5kIGNsb2NrRGVzaWduIGNhbGxzLCByZXNwZWN0aXZlbHkuCi0jIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0jc2V0IHZhcnMoYWx3YXlzX3NvdXJjZV90Y2wpICAgICAgICAgICAgICA8ZmlsZT4KLSNzZXQgdmFycyhmaW5hbF9hbHdheXNfc291cmNlX3RjbCkgICAgICAgIDxmaWxlPgotI3NldCB2YXJzKHByZV9pbml0X3RjbCkgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jc2V0IHZhcnMocG9zdF9pbml0X3RjbCkgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSNzZXQgdmFycyhwcmVfcGxhY2VfdGNsKSAgICAgICAgICAgICAgICAgIDxmaWxlPgotI3NldCB2YXJzKHBsYWNlX3RjbCkgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jc2V0IHZhcnMocG9zdF9wbGFjZV90Y2wpICAgICAgICAgICAgICAgICA8ZmlsZT4KLSNzZXQgdmFycyhwcmVfcHJlY3RzX3RjbCkgICAgICAgICAgICAgICAgIDxmaWxlPgotI3NldCB2YXJzKHBvc3RfcHJlY3RzX3RjbCkgICAgICAgICAgICAgICAgPGZpbGU+Ci0jc2V0IHZhcnMocHJlX2N0c190Y2wpICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSNzZXQgdmFycyhjdHNfdGNsKSAgICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotI3NldCB2YXJzKHBvc3RfY3RzX3RjbCkgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jc2V0IHZhcnMocHJlX3Bvc3RjdHNfdGNsKSAgICAgICAgICAgICAgICA8ZmlsZT4KLSNzZXQgdmFycyhwb3N0X3Bvc3RjdHNfdGNsKSAgICAgICAgICAgICAgIDxmaWxlPgotI3NldCB2YXJzKHByZV9wb3N0Y3RzX2hvbGRfdGNsKSAgICAgICAgICAgPGZpbGU+Ci0jc2V0IHZhcnMocG9zdF9wb3N0Y3RzX2hvbGRfdGNsKSAgICAgICAgICA8ZmlsZT4KLSNzZXQgdmFycyhwcmVfcm91dGVfdGNsKSAgICAgICAgICAgICAgICAgIDxmaWxlPgotI3NldCB2YXJzKHBvc3Rfcm91dGVfdGNsKSAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jc2V0IHZhcnMocHJlX3Bvc3Ryb3V0ZV90Y2wpICAgICAgICAgICAgICA8ZmlsZT4KLSNzZXQgdmFycyhwb3N0X3Bvc3Ryb3V0ZV90Y2wpICAgICAgICAgICAgIDxmaWxlPgotI3NldCB2YXJzKHByZV9wb3N0cm91dGVfaG9sZF90Y2wpICAgICAgICAgPGZpbGU+Ci0jc2V0IHZhcnMocG9zdF9wb3N0cm91dGVfaG9sZF90Y2wpICAgICAgICA8ZmlsZT4KLSNzZXQgdmFycyhwcmVfcG9zdHJvdXRlX3NpX3RjbCkgICAgICAgICAgIDxmaWxlPgotI3NldCB2YXJzKHBvc3RfcG9zdHJvdXRlX3NpX3RjbCkgICAgICAgICAgPGZpbGU+Ci0jc2V0IHZhcnMocHJlX3Bvc3Ryb3V0ZV9zaV9ob2xkX3RjbCkgICAgICA8ZmlsZT4KLSNzZXQgdmFycyhwb3N0X3Bvc3Ryb3V0ZV9zaV9ob2xkX3RjbCkgICAgIDxmaWxlPgotI3NldCB2YXJzKHByZV9zaWdub2ZmX3RjbCkgICAgICAgICAgICAgICAgPGZpbGU+Ci0jc2V0IHZhcnMocG9zdF9zaWdub2ZmX3RjbCkgICAgICAgICAgICAgICA8ZmlsZT4KLSMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSMgQmVsb3cgYXJlIHRoZSBwbHVnLWlucyBhdmFpbGFibGUgZm9yIHRoZSBoaWVyYXJoaWNhbCBmbG93IC4uLiBub3RlCi0jIHRoZSBhZGRpdGlvbmFsIHBsdWctaW5zIGZvciB0aGUgcGFydGl0aW9uIGFuZCBhc3NlbWJsZSBzdGVwcy4gIAotIyBLZWVwIGluIG1pbmQgCi0jICAgIC0gVGhlIHBhcnRpdGlvbmluZyBzdGVwIHdpbGwgYWxzbyBsb2FkIHRoZSBwcmUvcG9zdCBpbml0Ci0jICAgICAgYW5kIHByZS9wb3N0IHBsYWNlIHBsdWctaW5zLgotIyAgICAtIFRoZSBhc3NlbWJsZSBzdGVwIHdpbGwgYWxzbyBsb2FkIHRoZSBwcmUvcG9zdCBzaWdub2ZmCi0jICAgICAgcGx1Zy1pbnMgYXMgd2VsbC4gIAotIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotI3NldCB2YXJzKGFsd2F5c19zb3VyY2VfdGNsKSAgICAgICAgICAgICAgPGZpbGU+Ci0jc2V0IHZhcnMoZmluYWxfYWx3YXlzX3NvdXJjZV90Y2wpICAgICAgICA8ZmlsZT4KLSNzZXQgdmFycyhwcmVfaW5pdF90Y2wpICAgICAgICAgICAgICAgICAgIDxmaWxlPgotI3NldCB2YXJzKHBvc3RfaW5pdF90Y2wpICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jc2V0IHZhcnMocHJlX3BsYWNlX3RjbCkgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSNzZXQgdmFycyhwbGFjZV90Y2wpICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotI3NldCB2YXJzKHBvc3RfcGxhY2VfdGNsKSAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jc2V0IHZhcnMocHJlX3Bpbl9hc3NpZ25fdGNsKSAgICAgICAgICAgICA8ZmlsZT4gCi0jc2V0IHZhcnMocG9zdF9waW5fYXNzaWduX3RjbCkgICAgICAgICAgICA8ZmlsZT4gCi0jc2V0IHZhcnMocHJlX3BhcnRpdGlvbl90Y2wpICAgICAgICAgICAgICA8ZmlsZT4gCi0jc2V0IHZhcnMocG9zdF9wYXJ0aXRpb25fdGNsKSAgICAgICAgICAgICA8ZmlsZT4gCi0jc2V0IHZhcnMocHJlX2Fzc2VtYmxlX3RjbCkgICAgICAgICAgICAgICA8ZmlsZT4gCi0jc2V0IHZhcnMocG9zdF9hc3NlbWJsZV90Y2wpICAgICAgICAgICAgICA8ZmlsZT4gCi0jc2V0IHZhcnMocHJlX3NpZ25vZmZfdGNsKSAgICAgICAgICAgICAgICA8ZmlsZT4KLSNzZXQgdmFycyhwb3N0X3NpZ25vZmZfdGNsKSAgICAgICAgICAgICAgIDxmaWxlPgotIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIyBBbGwgb3RoZXIgcGx1Zy1pbnMgYXJlIG9ubHkgdXNlZCBkdXJpbmcgdGhlIGZsYXQgaW1wbGVtZW50YXRpb24KLSMgb2YgdGhlIHBhcnRpdGlvbnMuIFRvIGVuYWJsZSBwbHVnLWlucyBmb3IgcGFydGl0aW9uIGltcGxlbWVudGF0aW9uCi0jIGRlZmluZSBpbiB0aGUgdmFycyg8cGFydD4sZWRpX2NvbmZpZykgZmlsZSBmb3IgdGhhdCBwYXJ0aXRpb24KLSMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSMgc2V0IHZhcnMoPHB0bjE+LGVkaV9jb25maWdfdGNsKSAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyg8cHRuMj4sZWRpX2NvbmZpZ190Y2wpICAgICAgICAgPGZpbGU+Ci0jIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0jIFRoZXJlIGFyZSBhZGRpdGlvbmFsIHZhcmlhYmxlcyBjYWxsZWQgY29tbWFuZCB0YWdzIHRoYXQgcHJvdmlkZSBtb3JlCi0jIGdyYW51bGFyIGN1c3RvbWl6YXRpb24gY29udHJvbC4gIFNlZSB0YWdzLnRjbCBmb3IgbW9yZSBpbmZvcm1hdGlvbgotCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotIyBUbyBpbnNlcnQgbWV0YWwgZmlsbCBkdXJpbmcgdGhlIGZsb3cgZGVmaW5lIHRoZSBmb2xsb3dpbmcgdHdvCi0jIHZhcmlhYmxlczoKLSMgLSB2YXJzKG1ldGFsZmlsbCkgW3ByZV9wb3N0cm91dGUsIHByZV9wb3N0cm91dGVfc2ksIHByZV9zaWdub2ZmXQotIyAtIHZhcnMobWV0YWxmaWxsX3RjbCkgPHBhdGggdG8gbWV0YWxmaWxsIHBsdWctaW4+Ci0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotI3NldCB2YXJzKG1ldGFsZmlsbCkgICAgICAgICAgICAgICAgICBwcmVfcG9zdHJvdXRlCi0jc2V0IHZhcnMobWV0YWxmaWxsX3RjbCkgICAgICAgICAgICAgIDxmaWxlPgotCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotIyBUaGVyZSBhcmUgc29tZSBmbG93IGNvbnRyb2wgdmFyaWFibGVzIHRoYXQgY2FuIGJlIHNldDoKLSMgLSB2YXJzKGFib3J0KSBjb250cm9scyB3aGV0aGVyIGNvZGVnZW4gYWJvcnRzIHdoZW4gZXJyb3IgaXMgZm91bmQKLSMgICBpbiB0aGUgdmFyaWFibGUgc2V0dXAuICBUaGlzIGRlZmF1bHQgdG8gdHJ1ZS4gIFdoZW4gZGlzYWJsZWQsCi0jICAgcG9zc2libGUgVENMIGVycm9ycyBjYW4gb2NjdXIgZHVyaW5nIGZsb3cgZXhlY3V0aW9uCi0jIC0gdmFycyhjYXRjaF9lcnJvcnMpIGNvbnRyb2xzIHdoZXRoZXIgYSBjYXRjaCBpcyBpbmNsdWRlZCBhcm91bmQKLSMgICBlYWNoIHNldCBvZiBmbG93IHN0ZXAgY29tbWFuZHMuICBUaGUgZGVmYXVsdCBpcyB0cnVlLgotIyAtIHZhcnMoc2F2ZV9vbl9jYXRjaCkgY29udHJvbHMgd2hldGhlciBhIGRhdGFiYXNlIGlzIHNhdmVkIHdoZW4KLSMgICBhbiBlcnJvciBpcyBjYXVnaHQuIFRoaXMgZGVmYXVsdHMgdG8gdHJ1ZSBhbmQgb25seSB3b3JrcwotIyAgIHdoZW4gdmFycyhjYXRjaF9lcnJvcnMpIGlzIHRydWUKLSMgLSB2YXJzKG1haWwsdG8pIGFuZCB2YXJzKG1haWwsc3RlcHMpIGNvbnRyb2wgd2hldGhlciBhIG1haWwgbWVzc2FnZQotIyAgIGlzIHNlbnQgYWZ0ZXIgZWFjaCBzdGVwIGNvbXBsZXRlcy4gIFdoZW4gZW5hYmxlZCBhIG1haWwgbWVzc2FnZQotIyAgIHdpbGwgYmUgc2VudCAoY29udGFpbmluZyB0aGUgdGltaW5nIHN1bW1hcnkgaWYgYXZhaWxhYmxlKSBmb3IgCi0jICAgYW55IHN0ZXAgaW4gdmFycyhzdGVwcykuICBJZiB2YXJzKHN0ZXBzKSBpcyB1bmRlZmluZWQsIGEgbWVzc2FnZQotIyAgIHdpbGwgYmUgc2VudCBmb3IgZXZlcnkgc3RlcC4KLSMgCi0jIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0jIHNldCB2YXJzKGFib3J0KSAgICAgICAgICAgICAgICAgICAgICAgICAgPHRydWUgb3IgZmFsc2U+IgotIyBzZXQgdmFycyhjYXRjaF9lcnJvcnMpICAgICAgICAgICAgICAgICAgIDx0cnVlIG9yIGZhbHNlPiIKLSMgc2V0IHZhcnMoc2F2ZV9vbl9jYXRjaCkgICAgICAgICAgICAgICAgICA8dHJ1ZSBvciBmYWxzZT4iCi0jIHNldCB2YXJzKG1haWwsdG8pICAgICAgICAgICAgICAgICAgICAgICAgW2xpc3Qgb2YgZW1haWwgYWRkcmVzc2VzXQotIyBzZXQgdmFzcihtYWlsLHN0ZXBzKSAgICAgICAgICAgICAgICAgICAgIFtsaXN0IG9mIHN0ZXBzXQotIyBzZXQgdmFycyh0YWdzLHZlcmJvc2UpICAgICAgICAgICAgICAgICAgIDx0cnVlIG9yIGZhbHNlPiIKLSMgc2V0IHZhcnModGFncyx2ZXJib3NpdHlfbGV2ZWwpICAgICAgICAgICBbaGlnaCB8IGxvd10iCi0KLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0jIEJyaWVmIGRlc2NyaXB0aW9uIG9mIHRoZSBhYm92ZSB2YXJpYWJsZXMKLSMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSMgLSBkb250X3VzZV9saXN0IChsaXN0IG9mIGNlbGwgbmFtZXMgdG8gZGlzYWJsZSBkdXJpbmcgb3B0aW1pemF0aW9uKQotIyAtIGRlbGF5X2NlbGxzIChsaXN0IG9mIGRlbGF5IGNlbGxzIHRvIGVuYWJsZSBkdXJpbmcgaG9sZCBmaXhpbmcpCi0jIC0gY3RzX2NlbGxfbGlzdCAobGlzdCBvZiBjZWxscyBmb3IgY2xvY2tEZXNpZ24pCi0jIC0gc2tld19idWZmZXJzIChsaXN0IG9mIGJ1ZmZlcnMgdG8gdXNlIGR1cmluZyB1c2VmdWwgc2tldykKLSMgLSBmaWxsZXJfY2VsbHMgKGxpc3Qgb2YgZmlsbGVyIGNlbGxzKQotIyAtIGNsb2NrX2dhdGVfY2VsbHMgKGxpc3Qgb2YgY2xvY2sgZ2F0aW5nIGVsZW1lbnRzKQotIyAtIGp0YWdfY2VsbHMgKGxpc3Qgb2YganRhZyBpbnN0YW5jZXMpCi0jIC0ganRhZ19yb3dzIChudW1iZXIgb2Ygcm93cyB0byB1c2UgZHVyaW5nICBqdGFnIHBsYWNlbWVudCkKLSMgLSBzcGFyZV9jZWxscyAobGlzdCBvZiBzcGFyZSBjZWxscyBpbnN0YW5jZXMpCi0jIC0gZ2RzX2xheWVyX21hcCAoZ2RzIGxheWVyIG1hcCBmaWxlKQotIyAtIGdkc19maWxlcyAobGlzdCBvZiBnZHMgZmlsZXMpCi0jIC0gb2FfcmVmX2xpYiAoT0EgcmVmZXJlbmNlIGxpYnJhcnkgbmFtZSkKLSMgLSBvYV9hYnN0cmFjdF92aWV3IChPQSBhYnN0cmFjdCB2aWV3IG5hbWUpCi0jIC0gb2FfbGF5b3V0X3ZpZXcgKE9BIGxheW91dCB2aWV3IG5hbWUpCi0jIC0gYnVmZmVyX3RpZV9hc3NpZ24gKGJ1ZmZlciBsb2dpYyAxLzAgdGllIG5ldHMpCi0jIC0gYXNzaWduX2J1ZmZlciAoYnVmZmVyIGFzc2lnbiBzdGF0ZW1lbnRzKQotIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIyBUaGUgZmxvdyBpbmNsdWRlcyBzb21lIG9wdGlvbnMgdG8gZW5hYmxlIHNvbWUgY29tbW9ubHkgdXNlZCBjb21tYW5kIG9wdGlvbnMuICAKLSMgVGhlc2UgZmxhZ3MgcHJvdmlkZSBlYXN5IGFjY2VzcyB0byBjZXJ0YWluIG9wdGlvbnMvY29tbWFuZHMgd2l0aGluIFNPQ0UuICAKLSMgVGhleSBzaG91bGQgYmUgc2V0IGJhc2VkIG9uIHRoZSBuZWVkcyBvZiB0aGUgZGVzaWduL21ldGhvZG9sb2d5LiAgCi0jIFRoZSBpbmNsdXNpb24gb2YgdGhlc2Ugb3B0aW9ucyBkb2VzIG5vdCByZXByZXNlbnQgYSByZWNvbW1lbmRhdGlvbi4gCi0jIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0jIEZvciBlYXJseSBydW5zLCB5b3UgbWF5IHdhbnQgdG8gc2tpcCB0aGUgY3RzIHN0ZXAuIFRvIGRvIHRoaXMsIHVzZQotIyAnc2V0IHZhcnMocnVuX2N0cykgZmFsc2UnCi0jIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0jIFRvIHNlbGVjdCBjY29wdERlc2lnbiBmb3IgQ1RTLCB1c2UgCi0jICdzZXQgdmFycyhjdHNfZW5naW5lKSAnY2NvcHQnIChkZWZhdWx0IGlzIGN0cykKLSMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSMgVG8gc2VsZWN0IGNjb3B0RGVzaWduIC1jdHMgZm9yIENUUywgdXNlIAotIyAnc2V0IHZhcnMoY3RzX2VuZ2luZSkgJ2Njb3B0X2N0cycgKGRlZmF1bHQgaXMgY3RzKQotIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIyBUbyBzcGVjaWZ5IHRoZSBpbnRlZ3JhdGlvbiBtZXRob2QgZm9yIENDT1BULCB1c2UKLSMgJ3NldCB2YXJzKGNjb3B0X2ludGVncmF0aW9uKSA8bmF0aXZlIHwgc2NyaXB0ZWQ+Ci0jIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0jIFRvIHBvaW50IHRvIHlvdXIgb3duIGNjb3B0IGV4ZWN1dGFibGUgZm9yIHNjcmlwdGVkIGludGVncmF0aW9uLCB1c2UKLSMgJ3NldCB2YXJzKGNjb3B0X2V4ZWN1dGFibGUpIDxwYXRoIHRvIGV4ZWN1dGFibGU+JwotIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIyBTb21lIG90aGVyIG9wdGlvbnMgdGhhdCBhZmZlY3QgY2NvcHQgYXJlOgotIyAtIHZhcnMoY3RzX2J1ZmZlcl9saXN0KQotIyAtIHZhcnMoY3RzX2ludmVydGVyX2xpc3QpCi0jIC0gdmFycyhjdHNfdXNlX2ludmVydGVycykKLSMgLSB2YXJzKGN0c19lZmZvcnQpCi0jIC0gdmFycyhjdHNfaW9fb3B0KQotIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIyBPcHRpb25zIGZvciBjbG9jayByb3V0aW5nOgotIyAtdmFycyhjbGtfdHJlZV90b3BfbGF5ZXIpICAgICh0b3AgbGF5ZXIgZm9yIG5vbi1sZWFmIG5ldHMpCi0jIC12YXJzKGNsa19sZWFmX3RvcF9sYXllcikgICAgKHRvcCBsYXllciBmb3IgbGVhZiBuZXRzKSAKLSMgLXZhcnMoY2xrX3RyZWVfYm90dG9tX2xheWVyKSAoYm90dG9tIGxheWVyIGZvciBub24tbGVhZiBuZXRzKQotIyAtdmFycyhjbGtfbGVhZl9ib3R0b21fbGF5ZXIpIChib3R0b20gbGF5ZXIgZm9yIGxlYWYgbmV0cykKLSMgLXZhcnMoY2xrX3RyZWVfbmRyKSAgICAgICAgICAobm9uLWRlZmF1bHQgcnVsZSBmb3Igbm9uLWxlYWYgbmV0cykKLSMgLXZhcnMoY2xrX3RyZWVfZXh0cmFfc3BhY2UpICAoZXh0cmEgc3BhY2UgZm9yIG5vbi1sZWFmIG5ldHMpCi0jIC12YXJzKGNsa19sZWFmX25kcikgICAgICAgICAgKG5vbi1kZWZhdWx0IHJ1bGUgZm9yIGxlYWYgbmV0czAKLSMgLXZhcnMoY2xrX2xlYWZfZXh0cmFfc3BhY2UpICAoZXh0cmEgc3BhY2UgZm9yIG5vbi1sZWFmIG5ldHMpCi0jID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0jIENvbW1vbiBwYXRoIHBlc3NpbWlzbSByZW1vdmFsIHdpbGwgYmUgZW5hYmxlZCBieSBkZWZhdWx0IGFmdGVyIGN0cwotIyBUbyBkaXNhYmxlICdzZXQgdmFycyhlbmFibGVfY3BwcikgZmFsc2UnCi0jIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0jIEFuYWx5c2lzIG1vZGUgJ29uQ2hpcFZhcmlhdGlvbicgd2lsbCBiZSBlbmFibGVkIGJ5IGRlZmF1bHQgcHJpb3IKLSMgdG8gcG9zdC1yb3V0ZSBvcHRpbWl6YXRpb24uIFRvIGRpc2FibGUgJ3NldCB2YXJzKGVuYWJsZV9vY3YpIGZhbHNlJwotIyBUbyBlbmFibGUgaXQgZWxzZXdoZXJlIGluIHRoZSBmbG93LCB1c2UgJ3NldCB2YXJzKGVuYWJsZV9vY3YpIDx2YWx1ZT4nCi0jIFdoZXJlIDx2YWx1ZT4gPSAicHJlX3BsYWNlIHwgcHJlX3ByZWN0cyB8IHByZV9wb3N0Y3RzIHwKLSMgICAgICAgICAgICAgICAgICBwcmVfcG9zdHJvdXRlIHwgcHJlX3Bvc3Ryb3V0ZV9zaSB8IHByZV9zaWdub2ZmIgotIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIyBUaGUgZGVmYXVsdCBsZWFrYWdlIHBvd2VyIGVmZm9ydCBpcyAibm9uZSIuIEZvciBsb3cgcG93ZXIgZmxvd3MsCi0jICdzZXQgdmFycyhsZWFrYWdlX3Bvd2VyX2VmZm9ydCkgaGlnaCcKLSMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSMgVGhlIGRlZmF1bHQgZHluYW1pYyBwb3dlciBlZmZvcnQgaXMgIm5vbmUiLiBGb3IgbG93IHBvd2VyIGZsb3dzLAotIyAnc2V0IHZhcnMoZHluYW1pY19wb3dlcl9lZmZvcnQpIGhpZ2gnCi0jIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0jIFRoZSBkZWZhdWx0IHJlY29tbWVuZGF0aW9uIGlzIHRvIE5PVCBwbGFjZSBJTyBwaW5zIGR1cmluZwotIyBjZWxsIHBsYWNlbWVudC4gIFRvIGVuYWJsZSBwaW4gcGxhY2VtZW50LCAgCi0jIHNldCB2YXJzKHBsYWNlX2lvX3BpbnMpIHRydWUgCi0jIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0jIFRoZSBlbmFibGUgY2xvY2sgZ2F0ZSBhd2FyZSBwbGFjZW1lbnQsIAotIyAnc2V0IHZhcnMoY2xvY2tfZ2F0ZV9hd2FyZSkgdHJ1ZScKLSMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSMgVGhlIGVuYWJsZSBjbG9jayBnYXRlIGNsb25pbmcsIHVzZQotIyAnc2V0IHZhcnMoY2xvY2tfZ2F0ZV9jbG9uZSkgdHJ1ZScKLSMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSMgVGhlIGRlZmF1bHQgcmVjb21tZW5kYXRpb24gaXMgdG8gcm91dGUgYWxsIGNsb2NrIG5ldHMKLSMgZHVyaW5nIENUUy4gIFRvIGRpc2FibGUgdGhpcyAnc2V0IHZhcnMocm91dGVfY2xvY2tfbmV0cykgZmFsc2UnCi0jIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0jIFRvIHVwZGF0ZSBJTyBsYXRlbmN5IGFmdGVyIENUUywgdXNlCi0jICdzZXQgdmFycyh1cGRhdGVfaW9fbGF0ZW5jeSkgZmFsc2UnCi0jIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0jIEZvciBjb25nZXN0ZWQgZGVzaWducywgJ3NldCB2YXJzKGNvbmdlc3Rpb25fZWZmb3J0KSBoaWdoJwotIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIyBUbyBwcmVzZXJ2ZSBjb25zdHJhaW50cyBvbiBJTyBwb3J0cyAodXNlZnVsIGZvciBoaWVyYXJjaGljYWwKLSMgZGVzaWducyksICdzZXQgdmFycyhwcmVzZXJ2ZV9hc3NlcnRpb25zKSB0cnVlJwotIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIyBUbyBlbmFibGUgdXNlZnVsIHNrZXcgb3B0aW1pemF0aW9uLCAnc2V0IHZhcnModXNlZnVsX3NrZXcpIHRydWUnCi0jIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0jIFRvIGVuYWJsZSBUTlMgb3B0aW1pemF0aW9uLCB1c2UKLSMgJ3NldCB2YXJzKGFsbF9lbmRfcG9pbnRzKSA8dmFsdWU+JwotIyAuLi4gY3JpdGljYWwgcmFuZ2UgaXMgbm8gbG9uZ2VyIHN1cHBvcnQgCi0jIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0jIFRvIHVzZSBhIHNpemUgb25seSBmaWxlLCAKLSMgJ3NldCB2YXJzKHNpemVfb25seV9maWxlKSA8ZmlsZT4nCi0jIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0jIFRvIGVuYWJsZSBmYW5vdXQgbG9hZCBmaXhpbmcsCi0jICdzZXQgdmFycyhmaXhfZmFub3V0X2xvYWQpIHRydWUnCi0jIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0jIEZvciBkaWZmaWN1bHQgdGltaW5nIGRlc2lnbnMsICdzZXQgdmFycyhoaWdoX3RpbWluZ19lZmZvcnQpIHRydWUnCi0jIFRoaXMgb3ZlcnJpZGVzIGNlcnRhaW4gdXNlciBzZXR0aW5ncyB0byBlbmFibGUgYSB2YXJpZXR5IG9mIG9wdGlvbnMKLSMgdGhyb3VnaG91dCB0aGUgZmxvdyBmb3Igb3B0aW1hbCBRb1IgYXQgdGhlIGV4cGVuc2Ugb2YgcnVudGltZQotIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIyBUbyBlbmFibGUgLWluUGxhY2VPcHQsICdzZXQgdmFycyhpbl9wbGFjZV9vcHQpIHRydWUKLSMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSMgVG8gZW5hYmxlIHVzZWZ1bCBza2V3IG9wdGltaXphdGlvbiwgJ3NldCB2YXJzKHVzZWZ1bF9za2V3KSB0cnVlJwotIyBBbHNvLCBzZXQgdmFycyhza2V3X2J1ZmZlcnMpIHRvIHRoZSBsaXN0IG9mIHVzZWFibGUgY2xvY2sgYnVmZmVycwotIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIyBUbyBkaXNhYmxlIGhvbGQgZml4aW5nLAotIyAnc2V0IHZhcnMoZml4X2hvbGQpIGZhbHNlJwotIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIyBUbyBkaXNhYmxlIGhvbGQgZml4aW5nIGZvciBJTywgCi0jICdzZXQgdmFycyhmaXhfaG9sZF9pZ25vcmVfaW9zKSB0cnVlJwotIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIyBUbyBkaXNhbGxvdyBob2xkIGZpeGluZyBmcm9tIGRlZ3JhZGluZyBzZXR1cCB0bnMsIHVzZQotIyAnc2V0IHZhcnMoZml4X2hvbGRfYWxsb3dfdG5zX2RlZ3JhZGF0aW9uKSBmYWxzZScKLSMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSMgVGhlIGZsb3cgZGVmYXVsdCBpcyB0byBkaXNhYmxlIG11bHRpLWN1dCB2aWEgaW5zZXJ0aW9uLiAgRm9yIDkwbm0KLSMgYW5kIGJlbG93LCBpdCBpcyByZWNvbW1lbmRlZCB0byBpbnNlcnQgbXVsdGktY3V0IHZpYXMgdXNpbmcKLSMgJ3NldCB2YXJzKG11bHRpX2N1dF9lZmZvcnQpIG1lZGl1bS4gVGhpcyB3aWxsIGNvbWUgd2l0aCBhIHJ1bnRpbWUgYW5kCi0jIG1lbW9yeSBwZW5hbHR5IGFuZCB3aWxsIGFsc28gYWZmZWN0IFFvUi4KLSMgRm9yIG1heGltdW0gbXVsdGktY3V0IHZpYSBjb3ZlcmFnZSAnc2V0IHZhcnMobXVsdGlfY3V0X2VmZm9ydCkgaGlnaCcKLSMgVGhpcyB3aWxsIGNvbWUgd2l0aCBhZGRpdGlvbmFsIHJ1bnRpbWUvbWVtb3J5IG92ZXJoZWFkLgotIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIyBUaGUgZGVmYXVsdCBpcyBub3QgdG8gZG8gbGl0aG8gZHJpdmVuIHJvdXRpbmcsCi0jIFRvIGVuYWJsZSwgdXNlICdzZXQgdmFycyhsaXRob19kcml2ZW5fcm91dGluZykgdHJ1ZScKLSMgVG8gZW5hYmxlIGxpdGhvIHZlcmlmeSBhbmQgcmVwYWlyLCB1c2UgJ3NldCB2YXJzKHZlcmlmeV9saXRobykgdHJ1ZScKLSMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSMgVG8gZW5hYmxlIHBvc3Ryb3V0ZSB3aXJlIHNwcmVhZGluZywgdXNlCi0jICdzZXQgdmFycyhzcHJlYWRfd2lyZXMpIHRydWUnCi0jIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0jIFRvIGVuYWJsZSBkaW9kZSBiYXNlZCBhbnRlbm5hIGZpeGluZywgdXNlCi0jICdzZXQgdmFycyhhbnRlbm5hX2Rpb2RlKSA8YW50ZW5uYSBjZWxsPicKLSMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSMgVGhlIGRlZmF1bHQgcG9zdHJvdXRlIGV4dHJhY3Rpb24gZWZmb3J0LCBpcyBkZXRhaWwgZXh0cmFjdGlvbiAobG93KS4KLSMgVG8gZW5hYmxlIHRRUkMgKG1lZGl1bSksIG9yIGlRUkMgKGhpZ2gpIGZvciB0aGUgcG9zdHJvdXRlIGNsb3N1cmUKLSMgZmxvdywgdXNlIAotIyAnc2V0IHZhcnMocG9zdHJvdXRlX2V4dHJhY3Rpb25fZWZmb3J0KSA8bG93IHwgbWVkaXVtIHwgIGhpZ2g+Ci0jIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0jIFRvIGRpc2FibGUgQUFFIChkZWZhdWx0KSBkZWxheSBjYWxjdWxhdGlvbgotIyAnc2V0IHZhcnMoZW5hYmxlX3NpX2F3YXJlKSBmYWxzZScKLSMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSMgVG8gZW5hYmxlIHRoaXJkIHBhcnR5IFNJIGNvcnJlbGF0aW9uLCB1c2UKLSMgJ3NldCB2YXJzKHNpX2FuYWx5c2lzX3R5cGUpIHBlc3NpbWlzdGljJwotIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIyBUbyBlbmFibGUgY2VsdGljIGJhc2VkIGFuYWx5c2lzL2ZpeGluZywgdXNlIAotIyAnc2V0IHZhcnMoZW5hYmxlX2NlbHRpY19zdGVwcykgdHJ1ZScKLSMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSMgVG8gZW5hYmxlIHBvd2VyIHJlcG9ydGluZyBhdCBlYWNoIHN0ZXAgaW4gdGhlIGZsb3csIHVzZQotIyAnc2V0IHZhcnMocmVwb3J0X3Bvd2VyKSB0cnVlJwotIyBUbyBwcm92aWRlIGFuIGFjdGl2aXR5IGZvciBwb3dlciBvcHRpbWl6YXRpb24gYW5kIHJlcG9ydGluZywKLSMgJ3NldCB2YXJzKGFjdGl2aXR5X2ZpbGUpICAgICAgICA8ZmlsZT4nCi0jICdzZXQgdmFycyhhY3Rpdml0eV9maWxlX2Zvcm1hdCkgPFRDRiB8IFNBSUYgfCBWQ0Q+JwotIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIyBUaGVyZSBhcmUgc29tZSBvcHRpb25zIHRvIHNhdmVEZXNpZ246Ci0jIFRvIHNhdmUgcmNkYiBpbmZvcm1hdGlvbiBmb3IgcG9zdHJvdXRlIHN0ZXBzLCB1c2UKLSMgJ3NldCB2YXJzKHNhdmVfcmMpIHRydWUgJwotIyBUbyBzYXZlIHRpbWluZyBjb25zdHJhaW50cywgdXNlOgotIyAnc2V0IHZhcnMoc2F2ZV9jb25zdHJhaW50cykgdHJ1ZScKLSMgVGhlIGZvbG93aW5nIGFyZSB1c2VkIHRvIGNvbnRyb2wgaG93IHRoZSBwYXRocyBhcmUgd3JpdHRlbiBvdXQ6Ci0jIC0gdmFycyhyZWxhdGl2ZV9wYXRoKQotIyAtIHZhcnMoYWJzb2x1dGVfbGliX3BhdGgpCi0jIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0jIFRoZSBkZWZhdWx0IGlzIHRvIGFib3J0IGlmIHRoZXJlIGFyZSBlcnJvcnMgZm91bmQgZHVyaW5nIHRoZSBzZXR1cCAKLSMgY2hlY2s7IHRvIGRpc2FibGUgdGhpcywgdXNlCi0jIHNldCB2YXJzKGFib3J0KSBmYWxzZSIKZGlmZiAtLWdpdCBhL2Zsb3cvcG5yL1RFTVBMQVRFUy9JTk5PVlVTL2VkaV90YWdzLnRjbCBiL2Zsb3cvcG5yL1RFTVBMQVRFUy9JTk5PVlVTL2VkaV90YWdzLnRjbApkZWxldGVkIGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggNTdjMWFkNy4uMDAwMDAwMAotLS0gYS9mbG93L3Buci9URU1QTEFURVMvSU5OT1ZVUy9lZGlfdGFncy50Y2wKKysrIC9kZXYvbnVsbApAQCAtMSwxMTk5ICswLDAgQEAKLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSMgICAgICAgICAgICAgICAgICAgICAgIENBREVOQ0UgQ09QWVJJR0hUIE5PVElDRQotIyAgICAgICAgIKkgMjAwOC0yMDEzIENhZGVuY2UgRGVzaWduIFN5c3RlbXMsIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSMKLSMgVGhpcyBGb3VuZGF0aW9uIEZsb3cgaXMgcHJvdmlkZWQgYXMgYW4gZXhhbXBsZSBvZiBob3cgdG8gcGVyZm9ybSBzcGVjaWFsaXplZAotIyB0YXNrcy4KLSMKLSMgVGhpcyB3b3JrIG1heSBub3QgYmUgY29waWVkLCByZS1wdWJsaXNoZWQsIHVwbG9hZGVkLCBvciBkaXN0cmlidXRlZCBpbiBhbnkgd2F5LAotIyBpbiBhbnkgbWVkaXVtLCB3aGV0aGVyIGluIHdob2xlIG9yIGluIHBhcnQsIHdpdGhvdXQgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uCi0jIGZyb20gQ2FkZW5jZS4gTm90d2l0aHN0YW5kaW5nIGFueSByZXN0cmljdGlvbnMgaGVyZWluLCBzdWJqZWN0IHRvIGNvbXBsaWFuY2UKLSMgd2l0aCB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgdGhlIENhZGVuY2Ugc29mdHdhcmUgbGljZW5zZSBhZ3JlZW1lbnQgdW5kZXIKLSMgd2hpY2ggdGhpcyBtYXRlcmlhbCB3YXMgcHJvdmlkZWQsIHRoaXMgbWF0ZXJpYWwgbWF5IGJlIGNvcGllZCBhbmQgaW50ZXJuYWxseQotIyBkaXN0cmlidXRlZCBzb2xlbHkgZm9yIGludGVybmFsIHB1cnBvc2VzIGZvciB1c2Ugd2l0aCBDYWRlbmNlIHRvb2xzLgotIwotIyBUaGlzIHdvcmsgaXMgQ2FkZW5jZSBpbnRlbGxlY3R1YWwgcHJvcGVydHkgYW5kIG1heSB1bmRlciBubyBjaXJjdW1zdGFuY2VzIGJlCi0jIGdpdmVuIHRvIHRoaXJkIHBhcnRpZXMsIG5laXRoZXIgaW4gb3JpZ2luYWwgbm9yIGluIG1vZGlmaWVkIHZlcnNpb25zLCB3aXRob3V0Ci0jIGV4cGxpY2l0IHdyaXR0ZW4gcGVybWlzc2lvbiBmcm9tIENhZGVuY2UuIFRoZSBpbmZvcm1hdGlvbiBjb250YWluZWQgaGVyZWluIGlzCi0jIHRoZSBwcm9wcmlldGFyeSBhbmQgY29uZmlkZW50aWFsIGluZm9ybWF0aW9uIG9mIENhZGVuY2Ugb3IgaXRzIGxpY2Vuc29ycywgYW5kCi0jIGlzIHN1cHBsaWVkIHN1YmplY3QgdG8sIGFuZCBtYXkgYmUgdXNlZCBvbmx5IGJ5IENhZGVuY2UncyBjdXJyZW50IGN1c3RvbWVycwotIyBpbiBhY2NvcmRhbmNlIHdpdGgsIGEgcHJldmlvdXNseSBleGVjdXRlZCBsaWNlbnNlIGFncmVlbWVudCBiZXR3ZWVuIENhZGVuY2UKLSMgYW5kIGl0cyBjdXN0b21lci4KLSMKLSMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSMgVEhJUyBNQVRFUklBTCBJUyBQUk9WSURFRCBCWSBDQURFTkNFICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQKLSMgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YKLSMgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4KLSMgSU4gTk8gRVZFTlQgU0hBTEwgQ0FERU5DRSBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMCi0jIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksCi0jIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUgotIyBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTICBNQVRFUklBTCwgRVZFTiBJRgotIyBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLQotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotIyBCZWxvdyBpcyBhIGxpc3Qgb2YgY29tbWFuZHMgdGhhdCBjYW4gYmUgdGFnZ2VkIHdpdGggdGhlIGZvbGxvd2luZyB0YWdzOgotIwotIyAgIC0gcHJlX3RjbCAgICAgPGZpbGVuYW1lPiAgICAgID0+IFNjcmlwdCB0byBiZSBydW4gYmVmb3JlIHRoZSB0YWdnZWQgY29tbWFuZAotIyAgIC0gcG9zdF90Y2wgICAgPGZpbGVuYW1lPiAgICAgID0+IFNjcmlwdCB0byBiZSBydW4gYWZ0ZXIgdGhlIHRhZ2dlZCBjb21tYW5kCi0jICAgLSByZXBsYWNlX3RjbCA8ZmlsZW5hbWU+ICAgICAgPT4gU2NyaXB0IHRvIGJlIHJ1biBiZWZvcmUgdGhlIHRhZ2dlZCBjb21tYW5kCi0jICAgLSBza2lwICAgICAgICA8VFJVRSB8IEZBTFNFPiAgPT4gU2tpcCB0aGUgdGFnZ2VkIGNvbW1hbmQKLSMKLSMgVGhlc2UgdmFyaWFibGVzIGFyZSBzdHJ1Y3R1cmUgPHN0ZXA+LDxjb21tbWFuZD4sPHRhZz4gCi0jIFRoZXkgc2hvdWxkIGJlIGFkZGVkIHRvIHlvdXIgc2V0dXAudGNsIG9yIGlubm92dXNfY29uZmlnLnRjbAotIwotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCi0jIHNldCB2YXJzKHRhZ3MsdmVyYm9zZSkgICAgICAgICAgICAgICAgICAgPHRydWUgb3IgZmFsc2U+IgotIyBzZXQgdmFycyh0YWdzLHZlcmJvc2l0eV9sZXZlbCkgICAgICAgICAgIFtoaWdoIHwgbG93XSIKLQotIyBzZXQgdmFycyhpbml0LHNldF9kaXN0cmlidXRlX2hvc3QscHJlX3RjbCkgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKGluaXQsc2V0X2Rpc3RyaWJ1dGVfaG9zdCxwb3N0X3RjbCkgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMoaW5pdCxzZXRfZGlzdHJpYnV0ZV9ob3N0LHJlcGxhY2VfdGNsKSAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhpbml0LHNldF9kaXN0cmlidXRlX2hvc3Qsc2tpcCkgICAgICAgICAgICAgICAgICAgICAgICAgPHRydWUgb3IgZmFsc2U+Ci0jIHNldCB2YXJzKGluaXQsc2V0X211bHRpX2NwdV91c2FnZSxwcmVfdGNsKSAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMoaW5pdCxzZXRfbXVsdGlfY3B1X3VzYWdlLHBvc3RfdGNsKSAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhpbml0LHNldF9tdWx0aV9jcHVfdXNhZ2UscmVwbGFjZV90Y2wpICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKGluaXQsc2V0X211bHRpX2NwdV91c2FnZSxza2lwKSAgICAgICAgICAgICAgICAgICAgICAgICA8dHJ1ZSBvciBmYWxzZT4KLSMgc2V0IHZhcnMoaW5pdCxzZXRfZGlzdHJpYnV0ZV9ob3N0LHByZV90Y2wpICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhpbml0LHNldF9kaXN0cmlidXRlX2hvc3QscG9zdF90Y2wpICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKGluaXQsc2V0X2Rpc3RyaWJ1dGVfaG9zdCxyZXBsYWNlX3RjbCkgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMoaW5pdCxzZXRfZGlzdHJpYnV0ZV9ob3N0LHNraXApICAgICAgICAgICAgICAgICAgICAgICAgIDx0cnVlIG9yIGZhbHNlPgotIyBzZXQgdmFycyhpbml0LHNldF9tdWx0aV9jcHVfdXNhZ2UscHJlX3RjbCkgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKGluaXQsc2V0X211bHRpX2NwdV91c2FnZSxwb3N0X3RjbCkgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMoaW5pdCxzZXRfbXVsdGlfY3B1X3VzYWdlLHJlcGxhY2VfdGNsKSAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhpbml0LHNldF9tdWx0aV9jcHVfdXNhZ2Usc2tpcCkgICAgICAgICAgICAgICAgICAgICAgICAgPHRydWUgb3IgZmFsc2U+Ci0jIHNldCB2YXJzKGluaXQsc2V0X3JjX2ZhY3RvcixwcmVfdGNsKSAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMoaW5pdCxzZXRfcmNfZmFjdG9yLHBvc3RfdGNsKSAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhpbml0LHNldF9yY19mYWN0b3IscmVwbGFjZV90Y2wpICAgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKGluaXQsc2V0X3JjX2ZhY3Rvcixza2lwKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHJ1ZSBvciBmYWxzZT4KLSMgc2V0IHZhcnMoaW5pdCxkZXJhdGVfdGltaW5nLHByZV90Y2wpICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhpbml0LGRlcmF0ZV90aW1pbmcscG9zdF90Y2wpICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKGluaXQsZGVyYXRlX3RpbWluZyxyZXBsYWNlX3RjbCkgICAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMoaW5pdCxkZXJhdGVfdGltaW5nLHNraXApICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cnVlIG9yIGZhbHNlPgotIyBzZXQgdmFycyhpbml0LGNyZWF0ZV9yY19jb3JuZXIscHJlX3RjbCkgICAgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKGluaXQsY3JlYXRlX3JjX2Nvcm5lcixwb3N0X3RjbCkgICAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMoaW5pdCxjcmVhdGVfcmNfY29ybmVyLHJlcGxhY2VfdGNsKSAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhpbml0LGNyZWF0ZV9yY19jb3JuZXIsc2tpcCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRydWUgb3IgZmFsc2U+Ci0jIHNldCB2YXJzKGluaXQsY3JlYXRlX2xpYnJhcnlfc2V0LHByZV90Y2wpICAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMoaW5pdCxjcmVhdGVfbGlicmFyeV9zZXQscG9zdF90Y2wpICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhpbml0LGNyZWF0ZV9saWJyYXJ5X3NldCxyZXBsYWNlX3RjbCkgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKGluaXQsY3JlYXRlX2xpYnJhcnlfc2V0LHNraXApICAgICAgICAgICAgICAgICAgICAgICAgICA8dHJ1ZSBvciBmYWxzZT4KLSMgc2V0IHZhcnMoaW5pdCxjcmVhdGVfb3BfY29uZCxwcmVfdGNsKSAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhpbml0LGNyZWF0ZV9vcF9jb25kLHBvc3RfdGNsKSAgICAgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKGluaXQsY3JlYXRlX29wX2NvbmQscmVwbGFjZV90Y2wpICAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMoaW5pdCxjcmVhdGVfb3BfY29uZCxza2lwKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cnVlIG9yIGZhbHNlPgotIyBzZXQgdmFycyhpbml0LGNyZWF0ZV9kZWxheV9jb3JuZXIscHJlX3RjbCkgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKGluaXQsY3JlYXRlX2RlbGF5X2Nvcm5lcixwb3N0X3RjbCkgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMoaW5pdCxjcmVhdGVfZGVsYXlfY29ybmVyLHJlcGxhY2VfdGNsKSAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhpbml0LGNyZWF0ZV9kZWxheV9jb3JuZXIsc2tpcCkgICAgICAgICAgICAgICAgICAgICAgICAgPHRydWUgb3IgZmFsc2U+Ci0jIHNldCB2YXJzKGluaXQsY3JlYXRlX2NvbnN0cmFpbnRfbW9kZSxwcmVfdGNsKSAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMoaW5pdCxjcmVhdGVfY29uc3RyYWludF9tb2RlLHBvc3RfdGNsKSAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhpbml0LGNyZWF0ZV9jb25zdHJhaW50X21vZGUscmVwbGFjZV90Y2wpICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKGluaXQsY3JlYXRlX2NvbnN0cmFpbnRfbW9kZSxza2lwKSAgICAgICAgICAgICAgICAgICAgICA8dHJ1ZSBvciBmYWxzZT4KLSMgc2V0IHZhcnMoaW5pdCxjcmVhdGVfYW5hbHlzaXNfdmlldyxwcmVfdGNsKSAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhpbml0LGNyZWF0ZV9hbmFseXNpc192aWV3LHBvc3RfdGNsKSAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKGluaXQsY3JlYXRlX2FuYWx5c2lzX3ZpZXcscmVwbGFjZV90Y2wpICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMoaW5pdCxjcmVhdGVfYW5hbHlzaXNfdmlldyxza2lwKSAgICAgICAgICAgICAgICAgICAgICAgIDx0cnVlIG9yIGZhbHNlPgotIyBzZXQgdmFycyhpbml0LHVwZGF0ZV9kZWxheV9jb3JuZXIscHJlX3RjbCkgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKGluaXQsdXBkYXRlX2RlbGF5X2Nvcm5lcixwb3N0X3RjbCkgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMoaW5pdCx1cGRhdGVfZGVsYXlfY29ybmVyLHJlcGxhY2VfdGNsKSAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhpbml0LHVwZGF0ZV9kZWxheV9jb3JuZXIsc2tpcCkgICAgICAgICAgICAgICAgICAgICAgICAgPHRydWUgb3IgZmFsc2U+Ci0jIHNldCB2YXJzKGluaXQsdXBkYXRlX2xpYnJhcnlfc2V0LHByZV90Y2wpICAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMoaW5pdCx1cGRhdGVfbGlicmFyeV9zZXQscG9zdF90Y2wpICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhpbml0LHVwZGF0ZV9saWJyYXJ5X3NldCxyZXBsYWNlX3RjbCkgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKGluaXQsdXBkYXRlX2xpYnJhcnlfc2V0LHNraXApICAgICAgICAgICAgICAgICAgICAgICAgICA8dHJ1ZSBvciBmYWxzZT4KLSMgc2V0IHZhcnMoaW5pdCxkZXJhdGVfdGltaW5nLHByZV90Y2wpICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhpbml0LGRlcmF0ZV90aW1pbmcscG9zdF90Y2wpICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKGluaXQsZGVyYXRlX3RpbWluZyxyZXBsYWNlX3RjbCkgICAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMoaW5pdCxkZXJhdGVfdGltaW5nLHNraXApICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cnVlIG9yIGZhbHNlPgotIyBzZXQgdmFycyhpbml0LHNldF9kZWZhdWx0X3ZpZXcscHJlX3RjbCkgICAgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKGluaXQsc2V0X2RlZmF1bHRfdmlldyxwb3N0X3RjbCkgICAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMoaW5pdCxzZXRfZGVmYXVsdF92aWV3LHJlcGxhY2VfdGNsKSAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhpbml0LHNldF9kZWZhdWx0X3ZpZXcsc2tpcCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRydWUgb3IgZmFsc2U+Ci0jIHNldCB2YXJzKGluaXQsc2V0X3Bvd2VyX2FuYWx5c2lzX21vZGUscHJlX3RjbCkgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMoaW5pdCxzZXRfcG93ZXJfYW5hbHlzaXNfbW9kZSxwb3N0X3RjbCkgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhpbml0LHNldF9wb3dlcl9hbmFseXNpc19tb2RlLHJlcGxhY2VfdGNsKSAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKGluaXQsc2V0X3Bvd2VyX2FuYWx5c2lzX21vZGUsc2tpcCkgICAgICAgICAgICAgICAgICAgICA8dHJ1ZSBvciBmYWxzZT4KLSMgc2V0IHZhcnMoaW5pdCxsb2FkX2NvbmZpZyxwcmVfdGNsKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhpbml0LGxvYWRfY29uZmlnLHBvc3RfdGNsKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKGluaXQsbG9hZF9jb25maWcscmVwbGFjZV90Y2wpICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMoaW5pdCxsb2FkX2NvbmZpZyxza2lwKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cnVlIG9yIGZhbHNlPgotIyBzZXQgdmFycyhpbml0LGluaXRfZGVzaWduLHByZV90Y2wpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKGluaXQsaW5pdF9kZXNpZ24scG9zdF90Y2wpICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMoaW5pdCxpbml0X2Rlc2lnbixyZXBsYWNlX3RjbCkgICAgICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhpbml0LGluaXRfZGVzaWduLHNraXApICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRydWUgb3IgZmFsc2U+Ci0jIHNldCB2YXJzKGluaXQsbG9hZF9mbG9vcnBsYW4scHJlX3RjbCkgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMoaW5pdCxsb2FkX2Zsb29ycGxhbixwb3N0X3RjbCkgICAgICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhpbml0LGxvYWRfZmxvb3JwbGFuLHJlcGxhY2VfdGNsKSAgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKGluaXQsbG9hZF9mbG9vcnBsYW4sc2tpcCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHJ1ZSBvciBmYWxzZT4KLSMgc2V0IHZhcnMoaW5pdCxnZW5lcmF0ZV90cmFja3MscHJlX3RjbCkgICAgICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhpbml0LGdlbmVyYXRlX3RyYWNrcyxwb3N0X3RjbCkgICAgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKGluaXQsZ2VuZXJhdGVfdHJhY2tzLHJlcGxhY2VfdGNsKSAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMoaW5pdCxnZW5lcmF0ZV90cmFja3Msc2tpcCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cnVlIG9yIGZhbHNlPgotIyBzZXQgdmFycyhpbml0LGxvYWRfY3BmLHByZV90Y2wpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKGluaXQsbG9hZF9jcGYscG9zdF90Y2wpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMoaW5pdCxsb2FkX2NwZixyZXBsYWNlX3RjbCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhpbml0LGxvYWRfY3BmLHNraXApICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRydWUgb3IgZmFsc2U+Ci0jIHNldCB2YXJzKGluaXQsY29tbWl0X2NwZixwcmVfdGNsKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMoaW5pdCxjb21taXRfY3BmLHBvc3RfdGNsKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhpbml0LGNvbW1pdF9jcGYscmVwbGFjZV90Y2wpICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKGluaXQsY29tbWl0X2NwZixza2lwKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHJ1ZSBvciBmYWxzZT4KLSMgc2V0IHZhcnMoaW5pdCxsb2FkX2llZWUxODAxLHByZV90Y2wpICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhpbml0LGxvYWRfaWVlZTE4MDEscG9zdF90Y2wpICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKGluaXQsbG9hZF9pZWVlMTgwMSxyZXBsYWNlX3RjbCkgICAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMoaW5pdCxsb2FkX2llZWUxODAxLHNraXApICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cnVlIG9yIGZhbHNlPgotIyBzZXQgdmFycyhpbml0LGNvbW1pdF9pZWVlMTgwMSxwcmVfdGNsKSAgICAgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKGluaXQsY29tbWl0X2llZWUxODAxLHBvc3RfdGNsKSAgICAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMoaW5pdCxjb21taXRfaWVlZTE4MDEscmVwbGFjZV90Y2wpICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhpbml0LGNvbW1pdF9pZWVlMTgwMSxza2lwKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRydWUgb3IgZmFsc2U+Ci0jIHNldCB2YXJzKGluaXQscmVhZF9hY3Rpdml0eV9maWxlLHByZV90Y2wpICAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMoaW5pdCxyZWFkX2FjdGl2aXR5X2ZpbGUscG9zdF90Y2wpICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhpbml0LHJlYWRfYWN0aXZpdHlfZmlsZSxyZXBsYWNlX3RjbCkgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKGluaXQscmVhZF9hY3Rpdml0eV9maWxlLHNraXApICAgICAgICAgICAgICAgICAgICAgICAgICA8dHJ1ZSBvciBmYWxzZT4KLSMgc2V0IHZhcnMoaW5pdCxzcGVjaWZ5X2lsbSxwcmVfdGNsKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhpbml0LHNwZWNpZnlfaWxtLHBvc3RfdGNsKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKGluaXQsc3BlY2lmeV9pbG0scmVwbGFjZV90Y2wpICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMoaW5pdCxzcGVjaWZ5X2lsbSxza2lwKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cnVlIG9yIGZhbHNlPgotIyBzZXQgdmFycyhpbml0LGxvYWRfaWxtX25vbl9zZGNfZmlsZSxwcmVfdGNsKSAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKGluaXQsbG9hZF9pbG1fbm9uX3NkY19maWxlLHBvc3RfdGNsKSAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMoaW5pdCxsb2FkX2lsbV9ub25fc2RjX2ZpbGUscmVwbGFjZV90Y2wpICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhpbml0LGxvYWRfaWxtX25vbl9zZGNfZmlsZSxza2lwKSAgICAgICAgICAgICAgICAgICAgICAgPHRydWUgb3IgZmFsc2U+Ci0jIHNldCB2YXJzKGluaXQsaW5pdGlhbGl6ZV90aW1pbmcscHJlX3RjbCkgICAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMoaW5pdCxpbml0aWFsaXplX3RpbWluZyxwb3N0X3RjbCkgICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhpbml0LGluaXRpYWxpemVfdGltaW5nLHJlcGxhY2VfdGNsKSAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKGluaXQsaW5pdGlhbGl6ZV90aW1pbmcsc2tpcCkgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHJ1ZSBvciBmYWxzZT4KLSMgc2V0IHZhcnMoaW5pdCxsb2FkX3NjYW4scHJlX3RjbCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhpbml0LGxvYWRfc2Nhbixwb3N0X3RjbCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKGluaXQsbG9hZF9zY2FuLHJlcGxhY2VfdGNsKSAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMoaW5pdCxsb2FkX3NjYW4sc2tpcCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cnVlIG9yIGZhbHNlPgotIyBzZXQgdmFycyhpbml0LHNwZWNpZnlfc3BhcmVfZ2F0ZXMscHJlX3RjbCkgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKGluaXQsc3BlY2lmeV9zcGFyZV9nYXRlcyxwb3N0X3RjbCkgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMoaW5pdCxzcGVjaWZ5X3NwYXJlX2dhdGVzLHJlcGxhY2VfdGNsKSAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhpbml0LHNwZWNpZnlfc3BhcmVfZ2F0ZXMsc2tpcCkgICAgICAgICAgICAgICAgICAgICAgICAgPHRydWUgb3IgZmFsc2U+Ci0jIHNldCB2YXJzKGluaXQsc2V0X2RvbnRfdXNlLHByZV90Y2wpICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMoaW5pdCxzZXRfZG9udF91c2UscG9zdF90Y2wpICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhpbml0LHNldF9kb250X3VzZSxyZXBsYWNlX3RjbCkgICAgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKGluaXQsc2V0X2RvbnRfdXNlLHNraXApICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHJ1ZSBvciBmYWxzZT4KLSMgc2V0IHZhcnMoaW5pdCxzZXRfbWF4X3JvdXRlX2xheWVyLHByZV90Y2wpICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhpbml0LHNldF9tYXhfcm91dGVfbGF5ZXIscG9zdF90Y2wpICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKGluaXQsc2V0X21heF9yb3V0ZV9sYXllcixyZXBsYWNlX3RjbCkgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMoaW5pdCxzZXRfbWF4X3JvdXRlX2xheWVyLHNraXApICAgICAgICAgICAgICAgICAgICAgICAgIDx0cnVlIG9yIGZhbHNlPgotIyBzZXQgdmFycyhpbml0LHNldF9kZXNpZ25fbW9kZSxwcmVfdGNsKSAgICAgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKGluaXQsc2V0X2Rlc2lnbl9tb2RlLHBvc3RfdGNsKSAgICAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMoaW5pdCxzZXRfZGVzaWduX21vZGUscmVwbGFjZV90Y2wpICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhpbml0LHNldF9kZXNpZ25fbW9kZSxza2lwKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRydWUgb3IgZmFsc2U+Ci0jIHNldCB2YXJzKGluaXQsaW5zZXJ0X3dlbGx0YXBzX2VuZGNhcHMscHJlX3RjbCkgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMoaW5pdCxpbnNlcnRfd2VsbHRhcHNfZW5kY2Fwcyxwb3N0X3RjbCkgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhpbml0LGluc2VydF93ZWxsdGFwc19lbmRjYXBzLHJlcGxhY2VfdGNsKSAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKGluaXQsaW5zZXJ0X3dlbGx0YXBzX2VuZGNhcHMsc2tpcCkgICAgICAgICAgICAgICAgICAgICA8dHJ1ZSBvciBmYWxzZT4KLSMgc2V0IHZhcnMoaW5pdCxsb2FkX2NvbmZpZyxwcmVfdGNsKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhpbml0LGxvYWRfY29uZmlnLHBvc3RfdGNsKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKGluaXQsbG9hZF9jb25maWcscmVwbGFjZV90Y2wpICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMoaW5pdCxsb2FkX2NvbmZpZyxza2lwKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cnVlIG9yIGZhbHNlPgotIyBzZXQgdmFycyhpbml0LHRpbWVfZGVzaWduLHByZV90Y2wpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKGluaXQsdGltZV9kZXNpZ24scG9zdF90Y2wpICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMoaW5pdCx0aW1lX2Rlc2lnbixyZXBsYWNlX3RjbCkgICAgICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhpbml0LHRpbWVfZGVzaWduLHNraXApICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRydWUgb3IgZmFsc2U+Ci0jIHNldCB2YXJzKGluaXQsY2hlY2tfZGVzaWduLHByZV90Y2wpICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMoaW5pdCxjaGVja19kZXNpZ24scG9zdF90Y2wpICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhpbml0LGNoZWNrX2Rlc2lnbixyZXBsYWNlX3RjbCkgICAgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKGluaXQsY2hlY2tfZGVzaWduLHNraXApICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHJ1ZSBvciBmYWxzZT4KLSMgc2V0IHZhcnMoaW5pdCxjaGVja190aW1pbmcscHJlX3RjbCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhpbml0LGNoZWNrX3RpbWluZyxwb3N0X3RjbCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKGluaXQsY2hlY2tfdGltaW5nLHJlcGxhY2VfdGNsKSAgICAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMoaW5pdCxjaGVja190aW1pbmcsc2tpcCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cnVlIG9yIGZhbHNlPgotIyBzZXQgdmFycyhpbml0LHJlcG9ydF9wb3dlcl9kb21haW5zLHByZV90Y2wpICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKGluaXQscmVwb3J0X3Bvd2VyX2RvbWFpbnMscG9zdF90Y2wpICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMoaW5pdCxyZXBvcnRfcG93ZXJfZG9tYWlucyxyZXBsYWNlX3RjbCkgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhpbml0LHJlcG9ydF9wb3dlcl9kb21haW5zLHNraXApICAgICAgICAgICAgICAgICAgICAgICAgPHRydWUgb3IgZmFsc2U+Ci0jIHNldCB2YXJzKHBsYWNlLHNldF9kaXN0cmlidXRlX2hvc3QscHJlX3RjbCkgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocGxhY2Usc2V0X2Rpc3RyaWJ1dGVfaG9zdCxwb3N0X3RjbCkgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwbGFjZSxzZXRfZGlzdHJpYnV0ZV9ob3N0LHJlcGxhY2VfdGNsKSAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBsYWNlLHNldF9kaXN0cmlidXRlX2hvc3Qsc2tpcCkgICAgICAgICAgICAgICAgICAgICAgICA8dHJ1ZSBvciBmYWxzZT4KLSMgc2V0IHZhcnMocGxhY2Usc2V0X211bHRpX2NwdV91c2FnZSxwcmVfdGNsKSAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwbGFjZSxzZXRfbXVsdGlfY3B1X3VzYWdlLHBvc3RfdGNsKSAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBsYWNlLHNldF9tdWx0aV9jcHVfdXNhZ2UscmVwbGFjZV90Y2wpICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocGxhY2Usc2V0X211bHRpX2NwdV91c2FnZSxza2lwKSAgICAgICAgICAgICAgICAgICAgICAgIDx0cnVlIG9yIGZhbHNlPgotIyBzZXQgdmFycyhwbGFjZSxyZXN0b3JlX2Rlc2lnbixwcmVfdGNsKSAgICAgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBsYWNlLHJlc3RvcmVfZGVzaWduLHBvc3RfdGNsKSAgICAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocGxhY2UscmVzdG9yZV9kZXNpZ24scmVwbGFjZV90Y2wpICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwbGFjZSxyZXN0b3JlX2Rlc2lnbixza2lwKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRydWUgb3IgZmFsc2U+Ci0jIHNldCB2YXJzKHBsYWNlLGluaXRpYWxpemVfc3RlcCxwcmVfdGNsKSAgICAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocGxhY2UsaW5pdGlhbGl6ZV9zdGVwLHBvc3RfdGNsKSAgICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwbGFjZSxpbml0aWFsaXplX3N0ZXAscmVwbGFjZV90Y2wpICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBsYWNlLGluaXRpYWxpemVfc3RlcCxza2lwKSAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHJ1ZSBvciBmYWxzZT4KLSMgc2V0IHZhcnMocGxhY2Usc2V0X2Rlc2lnbl9tb2RlLHByZV90Y2wpICAgICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwbGFjZSxzZXRfZGVzaWduX21vZGUscG9zdF90Y2wpICAgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBsYWNlLHNldF9kZXNpZ25fbW9kZSxyZXBsYWNlX3RjbCkgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocGxhY2Usc2V0X2Rlc2lnbl9tb2RlLHNraXApICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cnVlIG9yIGZhbHNlPgotIyBzZXQgdmFycyhwbGFjZSxzZXRfZGVsYXlfY2FsX21vZGUscHJlX3RjbCkgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBsYWNlLHNldF9kZWxheV9jYWxfbW9kZSxwb3N0X3RjbCkgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocGxhY2Usc2V0X2RlbGF5X2NhbF9tb2RlLHJlcGxhY2VfdGNsKSAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwbGFjZSxzZXRfZGVsYXlfY2FsX21vZGUsc2tpcCkgICAgICAgICAgICAgICAgICAgICAgICAgPHRydWUgb3IgZmFsc2U+Ci0jIHNldCB2YXJzKHBsYWNlLHNldF9wbGFjZV9tb2RlLHByZV90Y2wpICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocGxhY2Usc2V0X3BsYWNlX21vZGUscG9zdF90Y2wpICAgICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwbGFjZSxzZXRfcGxhY2VfbW9kZSxyZXBsYWNlX3RjbCkgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBsYWNlLHNldF9wbGFjZV9tb2RlLHNraXApICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHJ1ZSBvciBmYWxzZT4KLSMgc2V0IHZhcnMocGxhY2Usc2V0X29wdF9tb2RlLHByZV90Y2wpICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwbGFjZSxzZXRfb3B0X21vZGUscG9zdF90Y2wpICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBsYWNlLHNldF9vcHRfbW9kZSxyZXBsYWNlX3RjbCkgICAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocGxhY2Usc2V0X29wdF9tb2RlLHNraXApICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cnVlIG9yIGZhbHNlPgotIyBzZXQgdmFycyhwbGFjZSxzZXRfdGllX2hpbG9fbW9kZSxwcmVfdGNsKSAgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBsYWNlLHNldF90aWVfaGlsb19tb2RlLHBvc3RfdGNsKSAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocGxhY2Usc2V0X3RpZV9oaWxvX21vZGUscmVwbGFjZV90Y2wpICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwbGFjZSxzZXRfdGllX2hpbG9fbW9kZSxza2lwKSAgICAgICAgICAgICAgICAgICAgICAgICAgPHRydWUgb3IgZmFsc2U+Ci0jIHNldCB2YXJzKHBsYWNlLGNsZWFudXBfc3BlY2lmeV9jbG9ja190cmVlLHByZV90Y2wpICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocGxhY2UsY2xlYW51cF9zcGVjaWZ5X2Nsb2NrX3RyZWUscG9zdF90Y2wpICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwbGFjZSxjbGVhbnVwX3NwZWNpZnlfY2xvY2tfdHJlZSxyZXBsYWNlX3RjbCkgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBsYWNlLGNsZWFudXBfc3BlY2lmeV9jbG9ja190cmVlLHNraXApICAgICAgICAgICAgICAgICA8dHJ1ZSBvciBmYWxzZT4KLSMgc2V0IHZhcnMocGxhY2Usc3BlY2lmeV9jbG9ja190cmVlLHByZV90Y2wpICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwbGFjZSxzcGVjaWZ5X2Nsb2NrX3RyZWUscG9zdF90Y2wpICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBsYWNlLHNwZWNpZnlfY2xvY2tfdHJlZSxyZXBsYWNlX3RjbCkgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocGxhY2Usc3BlY2lmeV9jbG9ja190cmVlLHNraXApICAgICAgICAgICAgICAgICAgICAgICAgIDx0cnVlIG9yIGZhbHNlPgotIyBzZXQgdmFycyhwbGFjZSxzcGVjaWZ5X2p0YWcscHJlX3RjbCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBsYWNlLHNwZWNpZnlfanRhZyxwb3N0X3RjbCkgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocGxhY2Usc3BlY2lmeV9qdGFnLHJlcGxhY2VfdGNsKSAgICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwbGFjZSxzcGVjaWZ5X2p0YWcsc2tpcCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRydWUgb3IgZmFsc2U+Ci0jIHNldCB2YXJzKHBsYWNlLHBsYWNlX2p0YWcscHJlX3RjbCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocGxhY2UscGxhY2VfanRhZyxwb3N0X3RjbCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwbGFjZSxwbGFjZV9qdGFnLHJlcGxhY2VfdGNsKSAgICAgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBsYWNlLHBsYWNlX2p0YWcsc2tpcCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHJ1ZSBvciBmYWxzZT4KLSMgc2V0IHZhcnMocGxhY2UsZWNvX3BsYWNlLHByZV90Y2wpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwbGFjZSxlY29fcGxhY2UscG9zdF90Y2wpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBsYWNlLGVjb19wbGFjZSxyZXBsYWNlX3RjbCkgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocGxhY2UsZWNvX3BsYWNlLHNraXApICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cnVlIG9yIGZhbHNlPgotIyBzZXQgdmFycyhwbGFjZSxwbGFjZV9kZXNpZ24scHJlX3RjbCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBsYWNlLHBsYWNlX2Rlc2lnbixwb3N0X3RjbCkgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocGxhY2UscGxhY2VfZGVzaWduLHJlcGxhY2VfdGNsKSAgICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwbGFjZSxwbGFjZV9kZXNpZ24sc2tpcCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRydWUgb3IgZmFsc2U+Ci0jIHNldCB2YXJzKHBsYWNlLGFkZF90aWVfY2VsbHMscHJlX3RjbCkgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocGxhY2UsYWRkX3RpZV9jZWxscyxwb3N0X3RjbCkgICAgICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwbGFjZSxhZGRfdGllX2NlbGxzLHJlcGxhY2VfdGNsKSAgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBsYWNlLGFkZF90aWVfY2VsbHMsc2tpcCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHJ1ZSBvciBmYWxzZT4KLSMgc2V0IHZhcnMocGxhY2Usc2V0X3RpZV9oaV9sb19tb2RlLHByZV90Y2wpICAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocGxhY2Usc2V0X3RpZV9oaV9sb19tb2RlLHBvc3RfdGNsKSAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocGxhY2Usc2V0X3RpZV9oaV9sb19tb2RlLHJlcGxhY2VfdGNsKSAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocGxhY2Usc2V0X3RpZV9oaV9sb19tb2RlLHNraXApICAgICAgICAgICAgICAgICAgICAgICAgICA8dHJ1ZSBvciBmYWxzZT4KLSMgc2V0IHZhcnMocGxhY2UsdGltZV9kZXNpZ24scHJlX3RjbCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwbGFjZSx0aW1lX2Rlc2lnbixwb3N0X3RjbCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBsYWNlLHRpbWVfZGVzaWduLHJlcGxhY2VfdGNsKSAgICAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocGxhY2UsdGltZV9kZXNpZ24sc2tpcCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cnVlIG9yIGZhbHNlPgotIyBzZXQgdmFycyhwbGFjZSxzYXZlX2Rlc2lnbixwcmVfdGNsKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBsYWNlLHNhdmVfZGVzaWduLHBvc3RfdGNsKSAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocGxhY2Usc2F2ZV9kZXNpZ24scmVwbGFjZV90Y2wpICAgICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwbGFjZSxzYXZlX2Rlc2lnbixza2lwKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRydWUgb3IgZmFsc2U+Ci0jIHNldCB2YXJzKHBsYWNlLHJlcG9ydF9wb3dlcixwcmVfdGNsKSAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocGxhY2UscmVwb3J0X3Bvd2VyLHBvc3RfdGNsKSAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwbGFjZSxyZXBvcnRfcG93ZXIscmVwbGFjZV90Y2wpICAgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBsYWNlLHJlcG9ydF9wb3dlcixza2lwKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHJ1ZSBvciBmYWxzZT4KLSMgc2V0IHZhcnMocGxhY2UsdmVyaWZ5X3Bvd2VyX2RvbWFpbixwcmVfdGNsKSAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwbGFjZSx2ZXJpZnlfcG93ZXJfZG9tYWluLHBvc3RfdGNsKSAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBsYWNlLHZlcmlmeV9wb3dlcl9kb21haW4scmVwbGFjZV90Y2wpICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocGxhY2UsdmVyaWZ5X3Bvd2VyX2RvbWFpbixza2lwKSAgICAgICAgICAgICAgICAgICAgICAgIDx0cnVlIG9yIGZhbHNlPgotIyBzZXQgdmFycyhwbGFjZSxydW5fY2xwLHByZV90Y2wpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBsYWNlLHJ1bl9jbHAscG9zdF90Y2wpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocGxhY2UscnVuX2NscCxyZXBsYWNlX3RjbCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwbGFjZSxydW5fY2xwLHNraXApICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRydWUgb3IgZmFsc2U+Ci0jIHNldCB2YXJzKHByZWN0cyxzZXRfZGlzdHJpYnV0ZV9ob3N0LHByZV90Y2wpICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocHJlY3RzLHNldF9kaXN0cmlidXRlX2hvc3QscG9zdF90Y2wpICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwcmVjdHMsc2V0X2Rpc3RyaWJ1dGVfaG9zdCxyZXBsYWNlX3RjbCkgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHByZWN0cyxzZXRfZGlzdHJpYnV0ZV9ob3N0LHNraXApICAgICAgICAgICAgICAgICAgICAgICA8dHJ1ZSBvciBmYWxzZT4KLSMgc2V0IHZhcnMocHJlY3RzLHNldF9tdWx0aV9jcHVfdXNhZ2UscHJlX3RjbCkgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwcmVjdHMsc2V0X211bHRpX2NwdV91c2FnZSxwb3N0X3RjbCkgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHByZWN0cyxzZXRfbXVsdGlfY3B1X3VzYWdlLHJlcGxhY2VfdGNsKSAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocHJlY3RzLHNldF9tdWx0aV9jcHVfdXNhZ2Usc2tpcCkgICAgICAgICAgICAgICAgICAgICAgIDx0cnVlIG9yIGZhbHNlPgotIyBzZXQgdmFycyhwcmVjdHMsaW5pdGlhbGl6ZV9zdGVwLHByZV90Y2wpICAgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHByZWN0cyxpbml0aWFsaXplX3N0ZXAscG9zdF90Y2wpICAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocHJlY3RzLGluaXRpYWxpemVfc3RlcCxyZXBsYWNlX3RjbCkgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwcmVjdHMsaW5pdGlhbGl6ZV9zdGVwLHNraXApICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRydWUgb3IgZmFsc2U+Ci0jIHNldCB2YXJzKHByZWN0cyxzZXRfZGVzaWduX21vZGUscHJlX3RjbCkgICAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocHJlY3RzLHNldF9kZXNpZ25fbW9kZSxwb3N0X3RjbCkgICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwcmVjdHMsc2V0X2Rlc2lnbl9tb2RlLHJlcGxhY2VfdGNsKSAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHByZWN0cyxzZXRfZGVzaWduX21vZGUsc2tpcCkgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHJ1ZSBvciBmYWxzZT4KLSMgc2V0IHZhcnMocHJlY3RzLHNldF9hbmFseXNpc19tb2RlLHByZV90Y2wpICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwcmVjdHMsc2V0X2FuYWx5c2lzX21vZGUscG9zdF90Y2wpICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHByZWN0cyxzZXRfYW5hbHlzaXNfbW9kZSxyZXBsYWNlX3RjbCkgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocHJlY3RzLHNldF9hbmFseXNpc19tb2RlLHNraXApICAgICAgICAgICAgICAgICAgICAgICAgIDx0cnVlIG9yIGZhbHNlPgotIyBzZXQgdmFycyhwcmVjdHMsc2V0X2lsbV90eXBlLHByZV90Y2wpICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHByZWN0cyxzZXRfaWxtX3R5cGUscG9zdF90Y2wpICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocHJlY3RzLHNldF9pbG1fdHlwZSxyZXBsYWNlX3RjbCkgICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwcmVjdHMsc2V0X2lsbV90eXBlLHNraXApICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRydWUgb3IgZmFsc2U+Ci0jIHNldCB2YXJzKHByZWN0cyxjbGVhbnVwX3NwZWNpZnlfY2xvY2tfdHJlZSxwcmVfdGNsKSAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocHJlY3RzLGNsZWFudXBfc3BlY2lmeV9jbG9ja190cmVlLHBvc3RfdGNsKSAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwcmVjdHMsY2xlYW51cF9zcGVjaWZ5X2Nsb2NrX3RyZWUscmVwbGFjZV90Y2wpICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHByZWN0cyxjbGVhbnVwX3NwZWNpZnlfY2xvY2tfdHJlZSxza2lwKSAgICAgICAgICAgICAgICA8dHJ1ZSBvciBmYWxzZT4KLSMgc2V0IHZhcnMocHJlY3RzLGNyZWF0ZV9jbG9ja190cmVlX3NwZWMscHJlX3RjbCkgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwcmVjdHMsY3JlYXRlX2Nsb2NrX3RyZWVfc3BlYyxwb3N0X3RjbCkgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHByZWN0cyxjcmVhdGVfY2xvY2tfdHJlZV9zcGVjLHJlcGxhY2VfdGNsKSAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocHJlY3RzLGNyZWF0ZV9jbG9ja190cmVlX3NwZWMsc2tpcCkgICAgICAgICAgICAgICAgICAgIDx0cnVlIG9yIGZhbHNlPgotIyBzZXQgdmFycyhwcmVjdHMsc3BlY2lmeV9jbG9ja190cmVlLHByZV90Y2wpICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHByZWN0cyxzcGVjaWZ5X2Nsb2NrX3RyZWUscG9zdF90Y2wpICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocHJlY3RzLHNwZWNpZnlfY2xvY2tfdHJlZSxyZXBsYWNlX3RjbCkgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwcmVjdHMsc3BlY2lmeV9jbG9ja190cmVlLHNraXApICAgICAgICAgICAgICAgICAgICAgICAgPHRydWUgb3IgZmFsc2U+Ci0jIHNldCB2YXJzKHByZWN0cyxzZXRfdXNlZnVsX3NrZXdfbW9kZSxwcmVfdGNsKSAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocHJlY3RzLHNldF91c2VmdWxfc2tld19tb2RlLHBvc3RfdGNsKSAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwcmVjdHMsc2V0X3VzZWZ1bF9za2V3X21vZGUscmVwbGFjZV90Y2wpICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHByZWN0cyxzZXRfdXNlZnVsX3NrZXdfbW9kZSxza2lwKSAgICAgICAgICAgICAgICAgICAgICA8dHJ1ZSBvciBmYWxzZT4KLSMgc2V0IHZhcnMocHJlY3RzLHNldF9vcHRfbW9kZSxwcmVfdGNsKSAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwcmVjdHMsc2V0X29wdF9tb2RlLHBvc3RfdGNsKSAgICAgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHByZWN0cyxzZXRfb3B0X21vZGUscmVwbGFjZV90Y2wpICAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocHJlY3RzLHNldF9vcHRfbW9kZSxza2lwKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cnVlIG9yIGZhbHNlPgotIyBzZXQgdmFycyhwcmVjdHMsc2V0X2Rlc2lnbl9tb2RlLHByZV90Y2wpICAgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHByZWN0cyxzZXRfZGVzaWduX21vZGUscG9zdF90Y2wpICAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocHJlY3RzLHNldF9kZXNpZ25fbW9kZSxyZXBsYWNlX3RjbCkgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwcmVjdHMsc2V0X2Rlc2lnbl9tb2RlLHNraXApICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRydWUgb3IgZmFsc2U+Ci0jIHNldCB2YXJzKHByZWN0cyxzZXRfZGVsYXlfY2FsX21vZGUscHJlX3RjbCkgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocHJlY3RzLHNldF9kZWxheV9jYWxfbW9kZSxwb3N0X3RjbCkgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwcmVjdHMsc2V0X2RlbGF5X2NhbF9tb2RlLHJlcGxhY2VfdGNsKSAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHByZWN0cyxzZXRfZGVsYXlfY2FsX21vZGUsc2tpcCkgICAgICAgICAgICAgICAgICAgICAgICA8dHJ1ZSBvciBmYWxzZT4KLSMgc2V0IHZhcnMocHJlY3RzLHNldF9kb250X3VzZSxwcmVfdGNsKSAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwcmVjdHMsc2V0X2RvbnRfdXNlLHBvc3RfdGNsKSAgICAgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHByZWN0cyxzZXRfZG9udF91c2UscmVwbGFjZV90Y2wpICAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocHJlY3RzLHNldF9kb250X3VzZSxza2lwKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cnVlIG9yIGZhbHNlPgotIyBzZXQgdmFycyhwcmVjdHMsb3B0X2Rlc2lnbixwcmVfdGNsKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHByZWN0cyxvcHRfZGVzaWduLHBvc3RfdGNsKSAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocHJlY3RzLG9wdF9kZXNpZ24scmVwbGFjZV90Y2wpICAgICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwcmVjdHMsb3B0X2Rlc2lnbixza2lwKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRydWUgb3IgZmFsc2U+Ci0jIHNldCB2YXJzKHByZWN0cyxja19jbG9uZV9nYXRlLHByZV90Y2wpICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocHJlY3RzLGNrX2Nsb25lX2dhdGUscG9zdF90Y2wpICAgICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwcmVjdHMsY2tfY2xvbmVfZ2F0ZSxyZXBsYWNlX3RjbCkgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHByZWN0cyxja19jbG9uZV9nYXRlLHNraXApICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHJ1ZSBvciBmYWxzZT4KLSMgc2V0IHZhcnMocHJlY3RzLHNhdmVfZGVzaWduLHByZV90Y2wpICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwcmVjdHMsc2F2ZV9kZXNpZ24scG9zdF90Y2wpICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHByZWN0cyxzYXZlX2Rlc2lnbixyZXBsYWNlX3RjbCkgICAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocHJlY3RzLHNhdmVfZGVzaWduLHNraXApICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cnVlIG9yIGZhbHNlPgotIyBzZXQgdmFycyhwcmVjdHMscmVwb3J0X3Bvd2VyLHByZV90Y2wpICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHByZWN0cyxyZXBvcnRfcG93ZXIscG9zdF90Y2wpICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocHJlY3RzLHJlcG9ydF9wb3dlcixyZXBsYWNlX3RjbCkgICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwcmVjdHMscmVwb3J0X3Bvd2VyLHNraXApICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRydWUgb3IgZmFsc2U+Ci0jIHNldCB2YXJzKHByZWN0cyx2ZXJpZnlfcG93ZXJfZG9tYWluLHByZV90Y2wpICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocHJlY3RzLHZlcmlmeV9wb3dlcl9kb21haW4scG9zdF90Y2wpICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwcmVjdHMsdmVyaWZ5X3Bvd2VyX2RvbWFpbixyZXBsYWNlX3RjbCkgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHByZWN0cyx2ZXJpZnlfcG93ZXJfZG9tYWluLHNraXApICAgICAgICAgICAgICAgICAgICAgICA8dHJ1ZSBvciBmYWxzZT4KLSMgc2V0IHZhcnMocHJlY3RzLHJ1bl9jbHAscHJlX3RjbCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwcmVjdHMscnVuX2NscCxwb3N0X3RjbCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHByZWN0cyxydW5fY2xwLHJlcGxhY2VfdGNsKSAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocHJlY3RzLHJ1bl9jbHAsc2tpcCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cnVlIG9yIGZhbHNlPgotIyBzZXQgdmFycyhjdHMsc2V0X2Rpc3RyaWJ1dGVfaG9zdCxwcmVfdGNsKSAgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKGN0cyxzZXRfZGlzdHJpYnV0ZV9ob3N0LHBvc3RfdGNsKSAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMoY3RzLHNldF9kaXN0cmlidXRlX2hvc3QscmVwbGFjZV90Y2wpICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhjdHMsc2V0X2Rpc3RyaWJ1dGVfaG9zdCxza2lwKSAgICAgICAgICAgICAgICAgICAgICAgICAgPHRydWUgb3IgZmFsc2U+Ci0jIHNldCB2YXJzKGN0cyxzZXRfbXVsdGlfY3B1X3VzYWdlLHByZV90Y2wpICAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMoY3RzLHNldF9tdWx0aV9jcHVfdXNhZ2UscG9zdF90Y2wpICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhjdHMsc2V0X211bHRpX2NwdV91c2FnZSxyZXBsYWNlX3RjbCkgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKGN0cyxzZXRfbXVsdGlfY3B1X3VzYWdlLHNraXApICAgICAgICAgICAgICAgICAgICAgICAgICA8dHJ1ZSBvciBmYWxzZT4KLSMgc2V0IHZhcnMoY3RzLGluaXRpYWxpemVfc3RlcCxwcmVfdGNsKSAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhjdHMsaW5pdGlhbGl6ZV9zdGVwLHBvc3RfdGNsKSAgICAgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKGN0cyxpbml0aWFsaXplX3N0ZXAscmVwbGFjZV90Y2wpICAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMoY3RzLGluaXRpYWxpemVfc3RlcCxza2lwKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cnVlIG9yIGZhbHNlPgotIyBzZXQgdmFycyhjdHMsc2V0X2Rlc2lnbl9tb2RlLHByZV90Y2wpICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKGN0cyxzZXRfZGVzaWduX21vZGUscG9zdF90Y2wpICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMoY3RzLHNldF9kZXNpZ25fbW9kZSxyZXBsYWNlX3RjbCkgICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhjdHMsc2V0X2Rlc2lnbl9tb2RlLHNraXApICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRydWUgb3IgZmFsc2U+Ci0jIHNldCB2YXJzKGN0cyxzZXRfY3RzX21vZGUscHJlX3RjbCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMoY3RzLHNldF9jdHNfbW9kZSxwb3N0X3RjbCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhjdHMsc2V0X2N0c19tb2RlLHJlcGxhY2VfdGNsKSAgICAgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKGN0cyxzZXRfY3RzX21vZGUsc2tpcCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHJ1ZSBvciBmYWxzZT4KLSMgc2V0IHZhcnMoY3RzLHVwZGF0ZV9jY29wdF9yY19jb3JuZXIscHJlX3RjbCkgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhjdHMsdXBkYXRlX2Njb3B0X3JjX2Nvcm5lcixwb3N0X3RjbCkgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKGN0cyx1cGRhdGVfY2NvcHRfcmNfY29ybmVyLHJlcGxhY2VfdGNsKSAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMoY3RzLHVwZGF0ZV9jY29wdF9yY19jb3JuZXIsc2tpcCkgICAgICAgICAgICAgICAgICAgICAgIDx0cnVlIG9yIGZhbHNlPgotIyBzZXQgdmFycyhjdHMsc2V0X2Njb3B0X21vZGUscHJlX3RjbCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKGN0cyxzZXRfY2NvcHRfbW9kZSxwb3N0X3RjbCkgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMoY3RzLHNldF9jY29wdF9tb2RlLHJlcGxhY2VfdGNsKSAgICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhjdHMsc2V0X2Njb3B0X21vZGUsc2tpcCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRydWUgb3IgZmFsc2U+Ci0jIHNldCB2YXJzKGN0cyxzZXRfbmFub3JvdXRlX21vZGUscHJlX3RjbCkgICAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMoY3RzLHNldF9uYW5vcm91dGVfbW9kZSxwb3N0X3RjbCkgICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhjdHMsc2V0X25hbm9yb3V0ZV9tb2RlLHJlcGxhY2VfdGNsKSAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKGN0cyxzZXRfbmFub3JvdXRlX21vZGUsc2tpcCkgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHJ1ZSBvciBmYWxzZT4KLSMgc2V0IHZhcnMoY3RzLGVuYWJsZV9jbG9ja19nYXRlX2NlbGxzLHByZV90Y2wpICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhjdHMsZW5hYmxlX2Nsb2NrX2dhdGVfY2VsbHMscG9zdF90Y2wpICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKGN0cyxlbmFibGVfY2xvY2tfZ2F0ZV9jZWxscyxyZXBsYWNlX3RjbCkgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMoY3RzLGVuYWJsZV9jbG9ja19nYXRlX2NlbGxzLHNraXApICAgICAgICAgICAgICAgICAgICAgIDx0cnVlIG9yIGZhbHNlPgotIyBzZXQgdmFycyhjdHMsY3JlYXRlX2Nsb2NrX3RyZWVfc3BlYyxwcmVfdGNsKSAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKGN0cyxjcmVhdGVfY2xvY2tfdHJlZV9zcGVjLHBvc3RfdGNsKSAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMoY3RzLGNyZWF0ZV9jbG9ja190cmVlX3NwZWMscmVwbGFjZV90Y2wpICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhjdHMsY3JlYXRlX2Nsb2NrX3RyZWVfc3BlYyxza2lwKSAgICAgICAgICAgICAgICAgICAgICAgPHRydWUgb3IgZmFsc2U+Ci0jIHNldCB2YXJzKGN0cyxjbG9ja19kZXNpZ24scHJlX3RjbCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMoY3RzLGNsb2NrX2Rlc2lnbixwb3N0X3RjbCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhjdHMsY2xvY2tfZGVzaWduLHJlcGxhY2VfdGNsKSAgICAgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKGN0cyxjbG9ja19kZXNpZ24sc2tpcCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHJ1ZSBvciBmYWxzZT4KLSMgc2V0IHZhcnMoY3RzLGRpc2FibGVfY2xvY2tfZ2F0ZV9jZWxscyxwcmVfdGNsKSAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhjdHMsZGlzYWJsZV9jbG9ja19nYXRlX2NlbGxzLHBvc3RfdGNsKSAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKGN0cyxkaXNhYmxlX2Nsb2NrX2dhdGVfY2VsbHMscmVwbGFjZV90Y2wpICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMoY3RzLGRpc2FibGVfY2xvY2tfZ2F0ZV9jZWxscyxza2lwKSAgICAgICAgICAgICAgICAgICAgIDx0cnVlIG9yIGZhbHNlPgotIyBzZXQgdmFycyhjdHMscnVuX2Nsb2NrX2VjbyxwcmVfdGNsKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKGN0cyxydW5fY2xvY2tfZWNvLHBvc3RfdGNsKSAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMoY3RzLHJ1bl9jbG9ja19lY28scmVwbGFjZV90Y2wpICAgICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhjdHMscnVuX2Nsb2NrX2Vjbyxza2lwKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRydWUgb3IgZmFsc2U+Ci0jIHNldCB2YXJzKGN0cyx1cGRhdGVfdGltaW5nLHByZV90Y2wpICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMoY3RzLHVwZGF0ZV90aW1pbmcscG9zdF90Y2wpICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhjdHMsdXBkYXRlX3RpbWluZyxyZXBsYWNlX3RjbCkgICAgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKGN0cyx1cGRhdGVfdGltaW5nLHNraXApICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHJ1ZSBvciBmYWxzZT4KLSMgc2V0IHZhcnMoY3RzLGNyZWF0ZV9jY29wdF9jbG9ja190cmVlX3NwZWMscHJlX3RjbCkgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhjdHMsY3JlYXRlX2Njb3B0X2Nsb2NrX3RyZWVfc3BlYyxwb3N0X3RjbCkgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKGN0cyxjcmVhdGVfY2NvcHRfY2xvY2tfdHJlZV9zcGVjLHJlcGxhY2VfdGNsKSAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMoY3RzLGNyZWF0ZV9jY29wdF9jbG9ja190cmVlX3NwZWMsc2tpcCkgICAgICAgICAgICAgICAgIDx0cnVlIG9yIGZhbHNlPgotIyBzZXQgdmFycyhjdHMsY2NvcHRfZGVzaWduLHByZV90Y2wpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKGN0cyxjY29wdF9kZXNpZ24scG9zdF90Y2wpICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMoY3RzLGNjb3B0X2Rlc2lnbixyZXBsYWNlX3RjbCkgICAgICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhjdHMsY2NvcHRfZGVzaWduLHNraXApICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRydWUgb3IgZmFsc2U+Ci0jIHNldCB2YXJzKGN0cyx0aW1lX2Rlc2lnbixwcmVfdGNsKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMoY3RzLHRpbWVfZGVzaWduLHBvc3RfdGNsKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhjdHMsdGltZV9kZXNpZ24scmVwbGFjZV90Y2wpICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKGN0cyx0aW1lX2Rlc2lnbixza2lwKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHJ1ZSBvciBmYWxzZT4KLSMgc2V0IHZhcnMoY3RzLHNhdmVfZGVzaWduLHByZV90Y2wpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhjdHMsc2F2ZV9kZXNpZ24scG9zdF90Y2wpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKGN0cyxzYXZlX2Rlc2lnbixyZXBsYWNlX3RjbCkgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMoY3RzLHNhdmVfZGVzaWduLHNraXApICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cnVlIG9yIGZhbHNlPgotIyBzZXQgdmFycyhjdHMscmVwb3J0X3Bvd2VyLHByZV90Y2wpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKGN0cyxyZXBvcnRfcG93ZXIscG9zdF90Y2wpICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMoY3RzLHJlcG9ydF9wb3dlcixyZXBsYWNlX3RjbCkgICAgICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhjdHMscmVwb3J0X3Bvd2VyLHNraXApICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRydWUgb3IgZmFsc2U+Ci0jIHNldCB2YXJzKGN0cyx2ZXJpZnlfcG93ZXJfZG9tYWluLHByZV90Y2wpICAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMoY3RzLHZlcmlmeV9wb3dlcl9kb21haW4scG9zdF90Y2wpICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhjdHMsdmVyaWZ5X3Bvd2VyX2RvbWFpbixyZXBsYWNlX3RjbCkgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKGN0cyx2ZXJpZnlfcG93ZXJfZG9tYWluLHNraXApICAgICAgICAgICAgICAgICAgICAgICAgICA8dHJ1ZSBvciBmYWxzZT4KLSMgc2V0IHZhcnMoY3RzLHJ1bl9jbHAscHJlX3RjbCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhjdHMscnVuX2NscCxwb3N0X3RjbCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKGN0cyxydW5fY2xwLHJlcGxhY2VfdGNsKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMoY3RzLHJ1bl9jbHAsc2tpcCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cnVlIG9yIGZhbHNlPgotIyBzZXQgdmFycyhwb3N0Y3RzLHNldF9kaXN0cmlidXRlX2hvc3QscHJlX3RjbCkgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBvc3RjdHMsc2V0X2Rpc3RyaWJ1dGVfaG9zdCxwb3N0X3RjbCkgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocG9zdGN0cyxzZXRfZGlzdHJpYnV0ZV9ob3N0LHJlcGxhY2VfdGNsKSAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwb3N0Y3RzLHNldF9kaXN0cmlidXRlX2hvc3Qsc2tpcCkgICAgICAgICAgICAgICAgICAgICAgPHRydWUgb3IgZmFsc2U+Ci0jIHNldCB2YXJzKHBvc3RjdHMsc2V0X211bHRpX2NwdV91c2FnZSxwcmVfdGNsKSAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocG9zdGN0cyxzZXRfbXVsdGlfY3B1X3VzYWdlLHBvc3RfdGNsKSAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwb3N0Y3RzLHNldF9tdWx0aV9jcHVfdXNhZ2UscmVwbGFjZV90Y2wpICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBvc3RjdHMsc2V0X211bHRpX2NwdV91c2FnZSxza2lwKSAgICAgICAgICAgICAgICAgICAgICA8dHJ1ZSBvciBmYWxzZT4KLSMgc2V0IHZhcnMocG9zdGN0cyxpbml0aWFsaXplX3N0ZXAscHJlX3RjbCkgICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwb3N0Y3RzLGluaXRpYWxpemVfc3RlcCxwb3N0X3RjbCkgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBvc3RjdHMsaW5pdGlhbGl6ZV9zdGVwLHJlcGxhY2VfdGNsKSAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocG9zdGN0cyxpbml0aWFsaXplX3N0ZXAsc2tpcCkgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cnVlIG9yIGZhbHNlPgotIyBzZXQgdmFycyhwb3N0Y3RzLHNldF9kZXNpZ25fbW9kZSxwcmVfdGNsKSAgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBvc3RjdHMsc2V0X2Rlc2lnbl9tb2RlLHBvc3RfdGNsKSAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocG9zdGN0cyxzZXRfZGVzaWduX21vZGUscmVwbGFjZV90Y2wpICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwb3N0Y3RzLHNldF9kZXNpZ25fbW9kZSxza2lwKSAgICAgICAgICAgICAgICAgICAgICAgICAgPHRydWUgb3IgZmFsc2U+Ci0jIHNldCB2YXJzKHBvc3RjdHMsc2V0X2RlbGF5X2NhbF9tb2RlLHByZV90Y2wpICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocG9zdGN0cyxzZXRfZGVsYXlfY2FsX21vZGUscG9zdF90Y2wpICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwb3N0Y3RzLHNldF9kZWxheV9jYWxfbW9kZSxyZXBsYWNlX3RjbCkgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBvc3RjdHMsc2V0X2RlbGF5X2NhbF9tb2RlLHNraXApICAgICAgICAgICAgICAgICAgICAgICA8dHJ1ZSBvciBmYWxzZT4KLSMgc2V0IHZhcnMocG9zdGN0cyxzZXRfYW5hbHlzaXNfbW9kZSxwcmVfdGNsKSAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwb3N0Y3RzLHNldF9hbmFseXNpc19tb2RlLHBvc3RfdGNsKSAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBvc3RjdHMsc2V0X2FuYWx5c2lzX21vZGUscmVwbGFjZV90Y2wpICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocG9zdGN0cyxzZXRfYW5hbHlzaXNfbW9kZSxza2lwKSAgICAgICAgICAgICAgICAgICAgICAgIDx0cnVlIG9yIGZhbHNlPgotIyBzZXQgdmFycyhwb3N0Y3RzLHNldF9vcHRfbW9kZSxwcmVfdGNsKSAgICAgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBvc3RjdHMsc2V0X29wdF9tb2RlLHBvc3RfdGNsKSAgICAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocG9zdGN0cyxzZXRfb3B0X21vZGUscmVwbGFjZV90Y2wpICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwb3N0Y3RzLHNldF9vcHRfbW9kZSxza2lwKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRydWUgb3IgZmFsc2U+Ci0jIHNldCB2YXJzKHBvc3RjdHMsb3B0X2Rlc2lnbixwcmVfdGNsKSAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocG9zdGN0cyxvcHRfZGVzaWduLHBvc3RfdGNsKSAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwb3N0Y3RzLG9wdF9kZXNpZ24scmVwbGFjZV90Y2wpICAgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBvc3RjdHMsb3B0X2Rlc2lnbixza2lwKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHJ1ZSBvciBmYWxzZT4KLSMgc2V0IHZhcnMocG9zdGN0cyxzYXZlX2Rlc2lnbixwcmVfdGNsKSAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwb3N0Y3RzLHNhdmVfZGVzaWduLHBvc3RfdGNsKSAgICAgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBvc3RjdHMsc2F2ZV9kZXNpZ24scmVwbGFjZV90Y2wpICAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocG9zdGN0cyxzYXZlX2Rlc2lnbixza2lwKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cnVlIG9yIGZhbHNlPgotIyBzZXQgdmFycyhwb3N0Y3RzLHJlcG9ydF9wb3dlcixwcmVfdGNsKSAgICAgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBvc3RjdHMscmVwb3J0X3Bvd2VyLHBvc3RfdGNsKSAgICAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocG9zdGN0cyxyZXBvcnRfcG93ZXIscmVwbGFjZV90Y2wpICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwb3N0Y3RzLHJlcG9ydF9wb3dlcixza2lwKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRydWUgb3IgZmFsc2U+Ci0jIHNldCB2YXJzKHBvc3RjdHMsdmVyaWZ5X3Bvd2VyX2RvbWFpbixwcmVfdGNsKSAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocG9zdGN0cyx2ZXJpZnlfcG93ZXJfZG9tYWluLHBvc3RfdGNsKSAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwb3N0Y3RzLHZlcmlmeV9wb3dlcl9kb21haW4scmVwbGFjZV90Y2wpICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBvc3RjdHMsdmVyaWZ5X3Bvd2VyX2RvbWFpbixza2lwKSAgICAgICAgICAgICAgICAgICAgICA8dHJ1ZSBvciBmYWxzZT4KLSMgc2V0IHZhcnMocG9zdGN0cyxydW5fY2xwLHByZV90Y2wpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwb3N0Y3RzLHJ1bl9jbHAscG9zdF90Y2wpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBvc3RjdHMscnVuX2NscCxyZXBsYWNlX3RjbCkgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocG9zdGN0cyxydW5fY2xwLHNraXApICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cnVlIG9yIGZhbHNlPgotIyBzZXQgdmFycyhwb3N0Y3RzX2hvbGQsc2V0X2Rpc3RyaWJ1dGVfaG9zdCxwcmVfdGNsKSAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBvc3RjdHNfaG9sZCxzZXRfZGlzdHJpYnV0ZV9ob3N0LHBvc3RfdGNsKSAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocG9zdGN0c19ob2xkLHNldF9kaXN0cmlidXRlX2hvc3QscmVwbGFjZV90Y2wpICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwb3N0Y3RzX2hvbGQsc2V0X2Rpc3RyaWJ1dGVfaG9zdCxza2lwKSAgICAgICAgICAgICAgICAgPHRydWUgb3IgZmFsc2U+Ci0jIHNldCB2YXJzKHBvc3RjdHNfaG9sZCxzZXRfbXVsdGlfY3B1X3VzYWdlLHByZV90Y2wpICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocG9zdGN0c19ob2xkLHNldF9tdWx0aV9jcHVfdXNhZ2UscG9zdF90Y2wpICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwb3N0Y3RzX2hvbGQsc2V0X211bHRpX2NwdV91c2FnZSxyZXBsYWNlX3RjbCkgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBvc3RjdHNfaG9sZCxzZXRfbXVsdGlfY3B1X3VzYWdlLHNraXApICAgICAgICAgICAgICAgICA8dHJ1ZSBvciBmYWxzZT4KLSMgc2V0IHZhcnMocG9zdGN0c19ob2xkLGluaXRpYWxpemVfc3RlcCxwcmVfdGNsKSAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwb3N0Y3RzX2hvbGQsaW5pdGlhbGl6ZV9zdGVwLHBvc3RfdGNsKSAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBvc3RjdHNfaG9sZCxpbml0aWFsaXplX3N0ZXAscmVwbGFjZV90Y2wpICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocG9zdGN0c19ob2xkLGluaXRpYWxpemVfc3RlcCxza2lwKSAgICAgICAgICAgICAgICAgICAgIDx0cnVlIG9yIGZhbHNlPgotIyBzZXQgdmFycyhwb3N0Y3RzX2hvbGQsc2V0X2RvbnRfdXNlLHByZV90Y2wpICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBvc3RjdHNfaG9sZCxzZXRfZG9udF91c2UscG9zdF90Y2wpICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocG9zdGN0c19ob2xkLHNldF9kb250X3VzZSxyZXBsYWNlX3RjbCkgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwb3N0Y3RzX2hvbGQsc2V0X2RvbnRfdXNlLHNraXApICAgICAgICAgICAgICAgICAgICAgICAgPHRydWUgb3IgZmFsc2U+Ci0jIHNldCB2YXJzKHBvc3RjdHNfaG9sZCxzZXRfb3B0X21vZGUscHJlX3RjbCkgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocG9zdGN0c19ob2xkLHNldF9vcHRfbW9kZSxwb3N0X3RjbCkgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwb3N0Y3RzX2hvbGQsc2V0X29wdF9tb2RlLHJlcGxhY2VfdGNsKSAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBvc3RjdHNfaG9sZCxzZXRfb3B0X21vZGUsc2tpcCkgICAgICAgICAgICAgICAgICAgICAgICA8dHJ1ZSBvciBmYWxzZT4KLSMgc2V0IHZhcnMocG9zdGN0c19ob2xkLG9wdF9kZXNpZ24scHJlX3RjbCkgICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwb3N0Y3RzX2hvbGQsb3B0X2Rlc2lnbixwb3N0X3RjbCkgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBvc3RjdHNfaG9sZCxvcHRfZGVzaWduLHJlcGxhY2VfdGNsKSAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocG9zdGN0c19ob2xkLG9wdF9kZXNpZ24sc2tpcCkgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cnVlIG9yIGZhbHNlPgotIyBzZXQgdmFycyhwb3N0Y3RzX2hvbGQsc2F2ZV9kZXNpZ24scHJlX3RjbCkgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBvc3RjdHNfaG9sZCxzYXZlX2Rlc2lnbixwb3N0X3RjbCkgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocG9zdGN0c19ob2xkLHNhdmVfZGVzaWduLHJlcGxhY2VfdGNsKSAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwb3N0Y3RzX2hvbGQsc2F2ZV9kZXNpZ24sc2tpcCkgICAgICAgICAgICAgICAgICAgICAgICAgPHRydWUgb3IgZmFsc2U+Ci0jIHNldCB2YXJzKHBvc3RjdHNfaG9sZCxyZXBvcnRfcG93ZXIscHJlX3RjbCkgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocG9zdGN0c19ob2xkLHJlcG9ydF9wb3dlcixwb3N0X3RjbCkgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwb3N0Y3RzX2hvbGQscmVwb3J0X3Bvd2VyLHJlcGxhY2VfdGNsKSAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBvc3RjdHNfaG9sZCxyZXBvcnRfcG93ZXIsc2tpcCkgICAgICAgICAgICAgICAgICAgICAgICA8dHJ1ZSBvciBmYWxzZT4KLSMgc2V0IHZhcnMocG9zdGN0c19ob2xkLHZlcmlmeV9wb3dlcl9kb21haW4scHJlX3RjbCkgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwb3N0Y3RzX2hvbGQsdmVyaWZ5X3Bvd2VyX2RvbWFpbixwb3N0X3RjbCkgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBvc3RjdHNfaG9sZCx2ZXJpZnlfcG93ZXJfZG9tYWluLHJlcGxhY2VfdGNsKSAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocG9zdGN0c19ob2xkLHZlcmlmeV9wb3dlcl9kb21haW4sc2tpcCkgICAgICAgICAgICAgICAgIDx0cnVlIG9yIGZhbHNlPgotIyBzZXQgdmFycyhwb3N0Y3RzX2hvbGQscnVuX2NscCxwcmVfdGNsKSAgICAgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBvc3RjdHNfaG9sZCxydW5fY2xwLHBvc3RfdGNsKSAgICAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocG9zdGN0c19ob2xkLHJ1bl9jbHAscmVwbGFjZV90Y2wpICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwb3N0Y3RzX2hvbGQscnVuX2NscCxza2lwKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRydWUgb3IgZmFsc2U+Ci0jIHNldCB2YXJzKHJvdXRlLHNldF9kaXN0cmlidXRlX2hvc3QscHJlX3RjbCkgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocm91dGUsc2V0X2Rpc3RyaWJ1dGVfaG9zdCxwb3N0X3RjbCkgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhyb3V0ZSxzZXRfZGlzdHJpYnV0ZV9ob3N0LHJlcGxhY2VfdGNsKSAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHJvdXRlLHNldF9kaXN0cmlidXRlX2hvc3Qsc2tpcCkgICAgICAgICAgICAgICAgICAgICAgICA8dHJ1ZSBvciBmYWxzZT4KLSMgc2V0IHZhcnMocm91dGUsc2V0X211bHRpX2NwdV91c2FnZSxwcmVfdGNsKSAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhyb3V0ZSxzZXRfbXVsdGlfY3B1X3VzYWdlLHBvc3RfdGNsKSAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHJvdXRlLHNldF9tdWx0aV9jcHVfdXNhZ2UscmVwbGFjZV90Y2wpICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocm91dGUsc2V0X211bHRpX2NwdV91c2FnZSxza2lwKSAgICAgICAgICAgICAgICAgICAgICAgIDx0cnVlIG9yIGZhbHNlPgotIyBzZXQgdmFycyhyb3V0ZSxpbml0aWFsaXplX3N0ZXAscHJlX3RjbCkgICAgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHJvdXRlLGluaXRpYWxpemVfc3RlcCxwb3N0X3RjbCkgICAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocm91dGUsaW5pdGlhbGl6ZV9zdGVwLHJlcGxhY2VfdGNsKSAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhyb3V0ZSxpbml0aWFsaXplX3N0ZXAsc2tpcCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRydWUgb3IgZmFsc2U+Ci0jIHNldCB2YXJzKHJvdXRlLHNldF9uYW5vcm91dGVfbW9kZSxwcmVfdGNsKSAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocm91dGUsc2V0X25hbm9yb3V0ZV9tb2RlLHBvc3RfdGNsKSAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhyb3V0ZSxzZXRfbmFub3JvdXRlX21vZGUscmVwbGFjZV90Y2wpICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHJvdXRlLHNldF9uYW5vcm91dGVfbW9kZSxza2lwKSAgICAgICAgICAgICAgICAgICAgICAgICA8dHJ1ZSBvciBmYWxzZT4KLSMgc2V0IHZhcnMocm91dGUsYWRkX2ZpbGxlcl9jZWxscyxwcmVfdGNsKSAgICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhyb3V0ZSxhZGRfZmlsbGVyX2NlbGxzLHBvc3RfdGNsKSAgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHJvdXRlLGFkZF9maWxsZXJfY2VsbHMscmVwbGFjZV90Y2wpICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocm91dGUsYWRkX2ZpbGxlcl9jZWxscyxza2lwKSAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cnVlIG9yIGZhbHNlPgotIyBzZXQgdmFycyhyb3V0ZSxyb3V0ZV9zZWNvbmRhcnlfcGdfbmV0cyxwcmVfdGNsKSAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHJvdXRlLHJvdXRlX3NlY29uZGFyeV9wZ19uZXRzLHBvc3RfdGNsKSAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocm91dGUscm91dGVfc2Vjb25kYXJ5X3BnX25ldHMscmVwbGFjZV90Y2wpICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhyb3V0ZSxyb3V0ZV9zZWNvbmRhcnlfcGdfbmV0cyxza2lwKSAgICAgICAgICAgICAgICAgICAgPHRydWUgb3IgZmFsc2U+Ci0jIHNldCB2YXJzKHJvdXRlLGNoZWNrX3BsYWNlLHByZV90Y2wpICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocm91dGUsY2hlY2tfcGxhY2UscG9zdF90Y2wpICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhyb3V0ZSxjaGVja19wbGFjZSxyZXBsYWNlX3RjbCkgICAgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHJvdXRlLGNoZWNrX3BsYWNlLHNraXApICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHJ1ZSBvciBmYWxzZT4KLSMgc2V0IHZhcnMocm91dGVfZGVzaWduLHNldF9hbmFseXNpc19tb2RlLHByZV90Y2wpICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhyb3V0ZV9kZXNpZ24sc2V0X2FuYWx5c2lzX21vZGUscG9zdF90Y2wpICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHJvdXRlX2Rlc2lnbixzZXRfYW5hbHlzaXNfbW9kZSxyZXBsYWNlX3RjbCkgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocm91dGVfZGVzaWduLHNldF9hbmFseXNpc19tb2RlLHNraXApICAgICAgICAgICAgICAgICAgIDx0cnVlIG9yIGZhbHNlPgotIyBzZXQgdmFycyhyb3V0ZSxyb3V0ZV9kZXNpZ24scHJlX3RjbCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHJvdXRlLHJvdXRlX2Rlc2lnbixwb3N0X3RjbCkgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocm91dGUscm91dGVfZGVzaWduLHJlcGxhY2VfdGNsKSAgICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhyb3V0ZSxyb3V0ZV9kZXNpZ24sc2tpcCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRydWUgb3IgZmFsc2U+Ci0jIHNldCB2YXJzKHJvdXRlLHJ1bl9jbG9ja19lY28scHJlX3RjbCkgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocm91dGUscnVuX2Nsb2NrX2Vjbyxwb3N0X3RjbCkgICAgICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhyb3V0ZSxydW5fY2xvY2tfZWNvLHJlcGxhY2VfdGNsKSAgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHJvdXRlLHJ1bl9jbG9ja19lY28sc2tpcCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHJ1ZSBvciBmYWxzZT4KLSMgc2V0IHZhcnMocm91dGUsc3ByZWFkX3dpcmVzLHByZV90Y2wpICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhyb3V0ZSxzcHJlYWRfd2lyZXMscG9zdF90Y2wpICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHJvdXRlLHNwcmVhZF93aXJlcyxyZXBsYWNlX3RjbCkgICAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocm91dGUsc3ByZWFkX3dpcmVzLHNraXApICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cnVlIG9yIGZhbHNlPgotIyBzZXQgdmFycyhyb3V0ZSxzZXRfZXh0cmFjdF9yY19tb2RlLHByZV90Y2wpICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHJvdXRlLHNldF9leHRyYWN0X3JjX21vZGUscG9zdF90Y2wpICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocm91dGUsc2V0X2V4dHJhY3RfcmNfbW9kZSxyZXBsYWNlX3RjbCkgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhyb3V0ZSxzZXRfZXh0cmFjdF9yY19tb2RlLHNraXApICAgICAgICAgICAgICAgICAgICAgICAgPHRydWUgb3IgZmFsc2U+Ci0jIHNldCB2YXJzKHJvdXRlLGluaXRpYWxpemVfdGltaW5nLHByZV90Y2wpICAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocm91dGUsaW5pdGlhbGl6ZV90aW1pbmcscG9zdF90Y2wpICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhyb3V0ZSxpbml0aWFsaXplX3RpbWluZyxyZXBsYWNlX3RjbCkgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHJvdXRlLGluaXRpYWxpemVfdGltaW5nLHNraXApICAgICAgICAgICAgICAgICAgICAgICAgICA8dHJ1ZSBvciBmYWxzZT4KLSMgc2V0IHZhcnMocm91dGUsdGltZV9kZXNpZ24scHJlX3RjbCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhyb3V0ZSx0aW1lX2Rlc2lnbixwb3N0X3RjbCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHJvdXRlLHRpbWVfZGVzaWduLHJlcGxhY2VfdGNsKSAgICAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocm91dGUsdGltZV9kZXNpZ24sc2tpcCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cnVlIG9yIGZhbHNlPgotIyBzZXQgdmFycyhyb3V0ZSxzYXZlX2Rlc2lnbixwcmVfdGNsKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHJvdXRlLHNhdmVfZGVzaWduLHBvc3RfdGNsKSAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocm91dGUsc2F2ZV9kZXNpZ24scmVwbGFjZV90Y2wpICAgICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhyb3V0ZSxzYXZlX2Rlc2lnbixza2lwKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRydWUgb3IgZmFsc2U+Ci0jIHNldCB2YXJzKHJvdXRlLHJlcG9ydF9wb3dlcixwcmVfdGNsKSAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocm91dGUscmVwb3J0X3Bvd2VyLHBvc3RfdGNsKSAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhyb3V0ZSxyZXBvcnRfcG93ZXIscmVwbGFjZV90Y2wpICAgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHJvdXRlLHJlcG9ydF9wb3dlcixza2lwKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHJ1ZSBvciBmYWxzZT4KLSMgc2V0IHZhcnMocm91dGUsdmVyaWZ5X3Bvd2VyX2RvbWFpbixwcmVfdGNsKSAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhyb3V0ZSx2ZXJpZnlfcG93ZXJfZG9tYWluLHBvc3RfdGNsKSAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHJvdXRlLHZlcmlmeV9wb3dlcl9kb21haW4scmVwbGFjZV90Y2wpICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocm91dGUsdmVyaWZ5X3Bvd2VyX2RvbWFpbixza2lwKSAgICAgICAgICAgICAgICAgICAgICAgIDx0cnVlIG9yIGZhbHNlPgotIyBzZXQgdmFycyhyb3V0ZSxydW5fY2xwLHByZV90Y2wpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHJvdXRlLHJ1bl9jbHAscG9zdF90Y2wpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocm91dGUscnVuX2NscCxyZXBsYWNlX3RjbCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhyb3V0ZSxydW5fY2xwLHNraXApICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRydWUgb3IgZmFsc2U+Ci0jIHNldCB2YXJzKHBvc3Ryb3V0ZSxzZXRfZGlzdHJpYnV0ZV9ob3N0LHByZV90Y2wpICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocG9zdHJvdXRlLHNldF9kaXN0cmlidXRlX2hvc3QscG9zdF90Y2wpICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwb3N0cm91dGUsc2V0X2Rpc3RyaWJ1dGVfaG9zdCxyZXBsYWNlX3RjbCkgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBvc3Ryb3V0ZSxzZXRfZGlzdHJpYnV0ZV9ob3N0LHNraXApICAgICAgICAgICAgICAgICAgICA8dHJ1ZSBvciBmYWxzZT4KLSMgc2V0IHZhcnMocG9zdHJvdXRlLHNldF9tdWx0aV9jcHVfdXNhZ2UscHJlX3RjbCkgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwb3N0cm91dGUsc2V0X211bHRpX2NwdV91c2FnZSxwb3N0X3RjbCkgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBvc3Ryb3V0ZSxzZXRfbXVsdGlfY3B1X3VzYWdlLHJlcGxhY2VfdGNsKSAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocG9zdHJvdXRlLHNldF9tdWx0aV9jcHVfdXNhZ2Usc2tpcCkgICAgICAgICAgICAgICAgICAgIDx0cnVlIG9yIGZhbHNlPgotIyBzZXQgdmFycyhwb3N0cm91dGUsaW5pdGlhbGl6ZV9zdGVwLHByZV90Y2wpICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBvc3Ryb3V0ZSxpbml0aWFsaXplX3N0ZXAscG9zdF90Y2wpICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocG9zdHJvdXRlLGluaXRpYWxpemVfc3RlcCxyZXBsYWNlX3RjbCkgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwb3N0cm91dGUsaW5pdGlhbGl6ZV9zdGVwLHNraXApICAgICAgICAgICAgICAgICAgICAgICAgPHRydWUgb3IgZmFsc2U+Ci0jIHNldCB2YXJzKHBvc3Ryb3V0ZSxzZXRfZGVzaWduX21vZGUscHJlX3RjbCkgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocG9zdHJvdXRlLHNldF9kZXNpZ25fbW9kZSxwb3N0X3RjbCkgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwb3N0cm91dGUsc2V0X2Rlc2lnbl9tb2RlLHJlcGxhY2VfdGNsKSAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBvc3Ryb3V0ZSxzZXRfZGVzaWduX21vZGUsc2tpcCkgICAgICAgICAgICAgICAgICAgICAgICA8dHJ1ZSBvciBmYWxzZT4KLSMgc2V0IHZhcnMocG9zdHJvdXRlLHNldF9leHRyYWN0X3JjX21vZGUscHJlX3RjbCkgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwb3N0cm91dGUsc2V0X2V4dHJhY3RfcmNfbW9kZSxwb3N0X3RjbCkgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBvc3Ryb3V0ZSxzZXRfZXh0cmFjdF9yY19tb2RlLHJlcGxhY2VfdGNsKSAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocG9zdHJvdXRlLHNldF9leHRyYWN0X3JjX21vZGUsc2tpcCkgICAgICAgICAgICAgICAgICAgIDx0cnVlIG9yIGZhbHNlPgotIyBzZXQgdmFycyhwb3N0cm91dGUsc2V0X2FuYWx5c2lzX21vZGUscHJlX3RjbCkgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBvc3Ryb3V0ZSxzZXRfYW5hbHlzaXNfbW9kZSxwb3N0X3RjbCkgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocG9zdHJvdXRlLHNldF9hbmFseXNpc19tb2RlLHJlcGxhY2VfdGNsKSAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwb3N0cm91dGUsc2V0X2FuYWx5c2lzX21vZGUsc2tpcCkgICAgICAgICAgICAgICAgICAgICAgPHRydWUgb3IgZmFsc2U+Ci0jIHNldCB2YXJzKHBvc3Ryb3V0ZSxzZXRfZGVsYXlfY2FsX21vZGUscHJlX3RjbCkgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocG9zdHJvdXRlLHNldF9kZWxheV9jYWxfbW9kZSxwb3N0X3RjbCkgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwb3N0cm91dGUsc2V0X2RlbGF5X2NhbF9tb2RlLHJlcGxhY2VfdGNsKSAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBvc3Ryb3V0ZSxzZXRfZGVsYXlfY2FsX21vZGUsc2tpcCkgICAgICAgICAgICAgICAgICAgICA8dHJ1ZSBvciBmYWxzZT4KLSMgc2V0IHZhcnMocG9zdHJvdXRlLGFkZF9tZXRhbGZpbGwscHJlX3RjbCkgICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwb3N0cm91dGUsYWRkX21ldGFsZmlsbCxwb3N0X3RjbCkgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBvc3Ryb3V0ZSxhZGRfbWV0YWxmaWxsLHJlcGxhY2VfdGNsKSAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocG9zdHJvdXRlLGFkZF9tZXRhbGZpbGwsc2tpcCkgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cnVlIG9yIGZhbHNlPgotIyBzZXQgdmFycyhwb3N0cm91dGUsZGVsZXRlX2ZpbGxlcl9jZWxscyxwcmVfdGNsKSAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBvc3Ryb3V0ZSxkZWxldGVfZmlsbGVyX2NlbGxzLHBvc3RfdGNsKSAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocG9zdHJvdXRlLGRlbGV0ZV9maWxsZXJfY2VsbHMscmVwbGFjZV90Y2wpICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwb3N0cm91dGUsZGVsZXRlX2ZpbGxlcl9jZWxscyxza2lwKSAgICAgICAgICAgICAgICAgICAgPHRydWUgb3IgZmFsc2U+Ci0jIHNldCB2YXJzKHBvc3Ryb3V0ZSxvcHRfZGVzaWduLHByZV90Y2wpICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocG9zdHJvdXRlLG9wdF9kZXNpZ24scG9zdF90Y2wpICAgICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwb3N0cm91dGUsb3B0X2Rlc2lnbixyZXBsYWNlX3RjbCkgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBvc3Ryb3V0ZSxvcHRfZGVzaWduLHNraXApICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHJ1ZSBvciBmYWxzZT4KLSMgc2V0IHZhcnMocG9zdHJvdXRlLGFkZF9maWxsZXJfY2VsbHMscHJlX3RjbCkgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwb3N0cm91dGUsYWRkX2ZpbGxlcl9jZWxscyxwb3N0X3RjbCkgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBvc3Ryb3V0ZSxhZGRfZmlsbGVyX2NlbGxzLHJlcGxhY2VfdGNsKSAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocG9zdHJvdXRlLGFkZF9maWxsZXJfY2VsbHMsc2tpcCkgICAgICAgICAgICAgICAgICAgICAgIDx0cnVlIG9yIGZhbHNlPgotIyBzZXQgdmFycyhwb3N0cm91dGUsdHJpbV9tZXRhbGZpbGwscHJlX3RjbCkgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBvc3Ryb3V0ZSx0cmltX21ldGFsZmlsbCxwb3N0X3RjbCkgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocG9zdHJvdXRlLHRyaW1fbWV0YWxmaWxsLHJlcGxhY2VfdGNsKSAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwb3N0cm91dGUsdHJpbV9tZXRhbGZpbGwsc2tpcCkgICAgICAgICAgICAgICAgICAgICAgICAgPHRydWUgb3IgZmFsc2U+Ci0jIHNldCB2YXJzKHJvdXRlLHZlcmlmeV9saXRobyxwcmVfdGNsKSAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocm91dGUsdmVyaWZ5X2xpdGhvLHBvc3RfdGNsKSAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhyb3V0ZSx2ZXJpZnlfbGl0aG8scmVwbGFjZV90Y2wpICAgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHJvdXRlLHZlcmlmeV9saXRobyxza2lwKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHJ1ZSBvciBmYWxzZT4KLSMgc2V0IHZhcnMocG9zdHJvdXRlLHNhdmVfZGVzaWduLHByZV90Y2wpICAgICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwb3N0cm91dGUsc2F2ZV9kZXNpZ24scG9zdF90Y2wpICAgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBvc3Ryb3V0ZSxzYXZlX2Rlc2lnbixyZXBsYWNlX3RjbCkgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocG9zdHJvdXRlLHNhdmVfZGVzaWduLHNraXApICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cnVlIG9yIGZhbHNlPgotIyBzZXQgdmFycyhwb3N0cm91dGUscmVwb3J0X3Bvd2VyLHByZV90Y2wpICAgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBvc3Ryb3V0ZSxyZXBvcnRfcG93ZXIscG9zdF90Y2wpICAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocG9zdHJvdXRlLHJlcG9ydF9wb3dlcixyZXBsYWNlX3RjbCkgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwb3N0cm91dGUscmVwb3J0X3Bvd2VyLHNraXApICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRydWUgb3IgZmFsc2U+Ci0jIHNldCB2YXJzKHBvc3Ryb3V0ZSx2ZXJpZnlfcG93ZXJfZG9tYWluLHByZV90Y2wpICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocG9zdHJvdXRlLHZlcmlmeV9wb3dlcl9kb21haW4scG9zdF90Y2wpICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwb3N0cm91dGUsdmVyaWZ5X3Bvd2VyX2RvbWFpbixyZXBsYWNlX3RjbCkgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBvc3Ryb3V0ZSx2ZXJpZnlfcG93ZXJfZG9tYWluLHNraXApICAgICAgICAgICAgICAgICAgICA8dHJ1ZSBvciBmYWxzZT4KLSMgc2V0IHZhcnMocG9zdHJvdXRlLHJ1bl9jbHAscHJlX3RjbCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwb3N0cm91dGUscnVuX2NscCxwb3N0X3RjbCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBvc3Ryb3V0ZSxydW5fY2xwLHJlcGxhY2VfdGNsKSAgICAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocG9zdHJvdXRlLHJ1bl9jbHAsc2tpcCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cnVlIG9yIGZhbHNlPgotIyBzZXQgdmFycyhwb3N0cm91dGVfaG9sZCxzZXRfZGlzdHJpYnV0ZV9ob3N0LHByZV90Y2wpICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBvc3Ryb3V0ZV9ob2xkLHNldF9kaXN0cmlidXRlX2hvc3QscG9zdF90Y2wpICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocG9zdHJvdXRlX2hvbGQsc2V0X2Rpc3RyaWJ1dGVfaG9zdCxyZXBsYWNlX3RjbCkgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwb3N0cm91dGVfaG9sZCxzZXRfZGlzdHJpYnV0ZV9ob3N0LHNraXApICAgICAgICAgICAgICAgPHRydWUgb3IgZmFsc2U+Ci0jIHNldCB2YXJzKHBvc3Ryb3V0ZV9ob2xkLHNldF9tdWx0aV9jcHVfdXNhZ2UscHJlX3RjbCkgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocG9zdHJvdXRlX2hvbGQsc2V0X211bHRpX2NwdV91c2FnZSxwb3N0X3RjbCkgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwb3N0cm91dGVfaG9sZCxzZXRfbXVsdGlfY3B1X3VzYWdlLHJlcGxhY2VfdGNsKSAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBvc3Ryb3V0ZV9ob2xkLHNldF9tdWx0aV9jcHVfdXNhZ2Usc2tpcCkgICAgICAgICAgICAgICA8dHJ1ZSBvciBmYWxzZT4KLSMgc2V0IHZhcnMocG9zdHJvdXRlX2hvbGQsaW5pdGlhbGl6ZV9zdGVwLHByZV90Y2wpICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwb3N0cm91dGVfaG9sZCxpbml0aWFsaXplX3N0ZXAscG9zdF90Y2wpICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBvc3Ryb3V0ZV9ob2xkLGluaXRpYWxpemVfc3RlcCxyZXBsYWNlX3RjbCkgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocG9zdHJvdXRlX2hvbGQsaW5pdGlhbGl6ZV9zdGVwLHNraXApICAgICAgICAgICAgICAgICAgIDx0cnVlIG9yIGZhbHNlPgotIyBzZXQgdmFycyhwb3N0cm91dGVfaG9sZCxzZXRfZGVzaWduX21vZGUscHJlX3RjbCkgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBvc3Ryb3V0ZV9ob2xkLHNldF9kZXNpZ25fbW9kZSxwb3N0X3RjbCkgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocG9zdHJvdXRlX2hvbGQsc2V0X2Rlc2lnbl9tb2RlLHJlcGxhY2VfdGNsKSAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwb3N0cm91dGVfaG9sZCxzZXRfZGVzaWduX21vZGUsc2tpcCkgICAgICAgICAgICAgICAgICAgPHRydWUgb3IgZmFsc2U+Ci0jIHNldCB2YXJzKHBvc3Ryb3V0ZV9ob2xkLHNldF9leHRyYWN0X3JjX21vZGUscHJlX3RjbCkgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocG9zdHJvdXRlX2hvbGQsc2V0X2V4dHJhY3RfcmNfbW9kZSxwb3N0X3RjbCkgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwb3N0cm91dGVfaG9sZCxzZXRfZXh0cmFjdF9yY19tb2RlLHJlcGxhY2VfdGNsKSAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBvc3Ryb3V0ZV9ob2xkLHNldF9leHRyYWN0X3JjX21vZGUsc2tpcCkgICAgICAgICAgICAgICA8dHJ1ZSBvciBmYWxzZT4KLSMgc2V0IHZhcnMocG9zdHJvdXRlX2hvbGQsc2V0X2RvbnRfdXNlX21vZGUscHJlX3RjbCkgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwb3N0cm91dGVfaG9sZCxzZXRfZG9udF91c2VfbW9kZSxwb3N0X3RjbCkgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBvc3Ryb3V0ZV9ob2xkLHNldF9kb250X3VzZV9tb2RlLHJlcGxhY2VfdGNsKSAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocG9zdHJvdXRlX2hvbGQsc2V0X2RvbnRfdXNlX21vZGUsc2tpcCkgICAgICAgICAgICAgICAgIDx0cnVlIG9yIGZhbHNlPgotIyBzZXQgdmFycyhwb3N0cm91dGVfaG9sZCxzZXRfb3B0X21vZGUscHJlX3RjbCkgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBvc3Ryb3V0ZV9ob2xkLHNldF9vcHRfbW9kZSxwb3N0X3RjbCkgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocG9zdHJvdXRlX2hvbGQsc2V0X29wdF9tb2RlLHJlcGxhY2VfdGNsKSAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwb3N0cm91dGVfaG9sZCxzZXRfb3B0X21vZGUsc2tpcCkgICAgICAgICAgICAgICAgICAgICAgPHRydWUgb3IgZmFsc2U+Ci0jIHNldCB2YXJzKHBvc3Ryb3V0ZV9ob2xkLGRlbGV0ZV9maWxsZXJfY2VsbHMscHJlX3RjbCkgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocG9zdHJvdXRlX2hvbGQsZGVsZXRlX2ZpbGxlcl9jZWxscyxwb3N0X3RjbCkgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwb3N0cm91dGVfaG9sZCxkZWxldGVfZmlsbGVyX2NlbGxzLHJlcGxhY2VfdGNsKSAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBvc3Ryb3V0ZV9ob2xkLGRlbGV0ZV9maWxsZXJfY2VsbHMsc2tpcCkgICAgICAgICAgICAgICA8dHJ1ZSBvciBmYWxzZT4KLSMgc2V0IHZhcnMocG9zdHJvdXRlX2hvbGQsb3B0X2Rlc2lnbixwcmVfdGNsKSAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwb3N0cm91dGVfaG9sZCxvcHRfZGVzaWduLHBvc3RfdGNsKSAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBvc3Ryb3V0ZV9ob2xkLG9wdF9kZXNpZ24scmVwbGFjZV90Y2wpICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocG9zdHJvdXRlX2hvbGQsb3B0X2Rlc2lnbixza2lwKSAgICAgICAgICAgICAgICAgICAgICAgIDx0cnVlIG9yIGZhbHNlPgotIyBzZXQgdmFycyhwb3N0cm91dGVfaG9sZCxhZGRfZmlsbGVyX2NlbGxzLHByZV90Y2wpICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBvc3Ryb3V0ZV9ob2xkLGFkZF9maWxsZXJfY2VsbHMscG9zdF90Y2wpICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocG9zdHJvdXRlX2hvbGQsYWRkX2ZpbGxlcl9jZWxscyxyZXBsYWNlX3RjbCkgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwb3N0cm91dGVfaG9sZCxhZGRfZmlsbGVyX2NlbGxzLHNraXApICAgICAgICAgICAgICAgICAgPHRydWUgb3IgZmFsc2U+Ci0jIHNldCB2YXJzKHBvc3Ryb3V0ZV9ob2xkLHRyaW1fbWV0YWxmaWxsLHByZV90Y2wpICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocG9zdHJvdXRlX2hvbGQsdHJpbV9tZXRhbGZpbGwscG9zdF90Y2wpICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwb3N0cm91dGVfaG9sZCx0cmltX21ldGFsZmlsbCxyZXBsYWNlX3RjbCkgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBvc3Ryb3V0ZV9ob2xkLHRyaW1fbWV0YWxmaWxsLHNraXApICAgICAgICAgICAgICAgICAgICA8dHJ1ZSBvciBmYWxzZT4KLSMgc2V0IHZhcnMocG9zdHJvdXRlX2hvbGQsc2F2ZV9kZXNpZ24scHJlX3RjbCkgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwb3N0cm91dGVfaG9sZCxzYXZlX2Rlc2lnbixwb3N0X3RjbCkgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBvc3Ryb3V0ZV9ob2xkLHNhdmVfZGVzaWduLHJlcGxhY2VfdGNsKSAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocG9zdHJvdXRlX2hvbGQsc2F2ZV9kZXNpZ24sc2tpcCkgICAgICAgICAgICAgICAgICAgICAgIDx0cnVlIG9yIGZhbHNlPgotIyBzZXQgdmFycyhwb3N0cm91dGVfaG9sZCxyZXBvcnRfcG93ZXIscHJlX3RjbCkgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBvc3Ryb3V0ZV9ob2xkLHJlcG9ydF9wb3dlcixwb3N0X3RjbCkgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocG9zdHJvdXRlX2hvbGQscmVwb3J0X3Bvd2VyLHJlcGxhY2VfdGNsKSAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwb3N0cm91dGVfaG9sZCxyZXBvcnRfcG93ZXIsc2tpcCkgICAgICAgICAgICAgICAgICAgICAgPHRydWUgb3IgZmFsc2U+Ci0jIHNldCB2YXJzKHBvc3Ryb3V0ZV9ob2xkLHZlcmlmeV9wb3dlcl9kb21haW4scHJlX3RjbCkgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocG9zdHJvdXRlX2hvbGQsdmVyaWZ5X3Bvd2VyX2RvbWFpbixwb3N0X3RjbCkgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwb3N0cm91dGVfaG9sZCx2ZXJpZnlfcG93ZXJfZG9tYWluLHJlcGxhY2VfdGNsKSAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBvc3Ryb3V0ZV9ob2xkLHZlcmlmeV9wb3dlcl9kb21haW4sc2tpcCkgICAgICAgICAgICAgICA8dHJ1ZSBvciBmYWxzZT4KLSMgc2V0IHZhcnMocG9zdHJvdXRlX2hvbGQscnVuX2NscCxwcmVfdGNsKSAgICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwb3N0cm91dGVfaG9sZCxydW5fY2xwLHBvc3RfdGNsKSAgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBvc3Ryb3V0ZV9ob2xkLHJ1bl9jbHAscmVwbGFjZV90Y2wpICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocG9zdHJvdXRlX2hvbGQscnVuX2NscCxza2lwKSAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cnVlIG9yIGZhbHNlPgotIyBzZXQgdmFycyhwb3N0cm91dGVfc2lfaG9sZCxzZXRfZGlzdHJpYnV0ZV9ob3N0LHByZV90Y2wpICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBvc3Ryb3V0ZV9zaV9ob2xkLHNldF9kaXN0cmlidXRlX2hvc3QscG9zdF90Y2wpICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocG9zdHJvdXRlX3NpX2hvbGQsc2V0X2Rpc3RyaWJ1dGVfaG9zdCxyZXBsYWNlX3RjbCkgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwb3N0cm91dGVfc2lfaG9sZCxzZXRfZGlzdHJpYnV0ZV9ob3N0LHNraXApICAgICAgICAgICAgPHRydWUgb3IgZmFsc2U+Ci0jIHNldCB2YXJzKHBvc3Ryb3V0ZV9zaV9ob2xkLHNldF9tdWx0aV9jcHVfdXNhZ2UscHJlX3RjbCkgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocG9zdHJvdXRlX3NpX2hvbGQsc2V0X211bHRpX2NwdV91c2FnZSxwb3N0X3RjbCkgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwb3N0cm91dGVfc2lfaG9sZCxzZXRfbXVsdGlfY3B1X3VzYWdlLHJlcGxhY2VfdGNsKSAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBvc3Ryb3V0ZV9zaV9ob2xkLHNldF9tdWx0aV9jcHVfdXNhZ2Usc2tpcCkgICAgICAgICAgICA8dHJ1ZSBvciBmYWxzZT4KLSMgc2V0IHZhcnMocG9zdHJvdXRlX3NpX2hvbGQsaW5pdGlhbGl6ZV9zdGVwLHByZV90Y2wpICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwb3N0cm91dGVfc2lfaG9sZCxpbml0aWFsaXplX3N0ZXAscG9zdF90Y2wpICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBvc3Ryb3V0ZV9zaV9ob2xkLGluaXRpYWxpemVfc3RlcCxyZXBsYWNlX3RjbCkgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocG9zdHJvdXRlX3NpX2hvbGQsaW5pdGlhbGl6ZV9zdGVwLHNraXApICAgICAgICAgICAgICAgIDx0cnVlIG9yIGZhbHNlPgotIyBzZXQgdmFycyhwb3N0cm91dGVfc2lfaG9sZCxzZXRfZGVzaWduX21vZGUscHJlX3RjbCkgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBvc3Ryb3V0ZV9zaV9ob2xkLHNldF9kZXNpZ25fbW9kZSxwb3N0X3RjbCkgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocG9zdHJvdXRlX3NpX2hvbGQsc2V0X2Rlc2lnbl9tb2RlLHJlcGxhY2VfdGNsKSAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwb3N0cm91dGVfc2lfaG9sZCxzZXRfZGVzaWduX21vZGUsc2tpcCkgICAgICAgICAgICAgICAgPHRydWUgb3IgZmFsc2U+Ci0jIHNldCB2YXJzKHBvc3Ryb3V0ZV9zaV9ob2xkLHNldF9kb250X3VzZSxwcmVfdGNsKSAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocG9zdHJvdXRlX3NpX2hvbGQsc2V0X2RvbnRfdXNlLHBvc3RfdGNsKSAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwb3N0cm91dGVfc2lfaG9sZCxzZXRfZG9udF91c2UscmVwbGFjZV90Y2wpICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBvc3Ryb3V0ZV9zaV9ob2xkLHNldF9kb250X3VzZSxza2lwKSAgICAgICAgICAgICAgICAgICA8dHJ1ZSBvciBmYWxzZT4KLSMgc2V0IHZhcnMocG9zdHJvdXRlX3NpX2hvbGQsc2V0X29wdF9tb2RlLHByZV90Y2wpICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwb3N0cm91dGVfc2lfaG9sZCxzZXRfb3B0X21vZGUscG9zdF90Y2wpICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBvc3Ryb3V0ZV9zaV9ob2xkLHNldF9vcHRfbW9kZSxyZXBsYWNlX3RjbCkgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocG9zdHJvdXRlX3NpX2hvbGQsc2V0X29wdF9tb2RlLHNraXApICAgICAgICAgICAgICAgICAgIDx0cnVlIG9yIGZhbHNlPgotIyBzZXQgdmFycyhwb3N0cm91dGVfc2lfaG9sZCxzZXRfZXh0cmFjdF9yY19tb2RlLHByZV90Y2wpICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBvc3Ryb3V0ZV9zaV9ob2xkLHNldF9leHRyYWN0X3JjX21vZGUscG9zdF90Y2wpICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocG9zdHJvdXRlX3NpX2hvbGQsc2V0X2V4dHJhY3RfcmNfbW9kZSxyZXBsYWNlX3RjbCkgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwb3N0cm91dGVfc2lfaG9sZCxzZXRfZXh0cmFjdF9yY19tb2RlLHNraXApICAgICAgICAgICAgPHRydWUgb3IgZmFsc2U+Ci0jIHNldCB2YXJzKHBvc3Ryb3V0ZV9zaV9ob2xkLHNldF9zaV9tb2RlLHByZV90Y2wpICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocG9zdHJvdXRlX3NpX2hvbGQsc2V0X3NpX21vZGUscG9zdF90Y2wpICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwb3N0cm91dGVfc2lfaG9sZCxzZXRfc2lfbW9kZSxyZXBsYWNlX3RjbCkgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBvc3Ryb3V0ZV9zaV9ob2xkLHNldF9zaV9tb2RlLHNraXApICAgICAgICAgICAgICAgICAgICA8dHJ1ZSBvciBmYWxzZT4KLSMgc2V0IHZhcnMocG9zdHJvdXRlX3NpX2hvbGQsc2V0X2RlbGF5X2NhbF9tb2RlLHByZV90Y2wpICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwb3N0cm91dGVfc2lfaG9sZCxzZXRfZGVsYXlfY2FsX21vZGUscG9zdF90Y2wpICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBvc3Ryb3V0ZV9zaV9ob2xkLHNldF9kZWxheV9jYWxfbW9kZSxyZXBsYWNlX3RjbCkgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocG9zdHJvdXRlX3NpX2hvbGQsc2V0X2RlbGF5X2NhbF9tb2RlLHNraXApICAgICAgICAgICAgIDx0cnVlIG9yIGZhbHNlPgotIyBzZXQgdmFycyhwb3N0cm91dGVfc2lfaG9sZCxzZXRfYW5hbHlzaXNfbW9kZSxwcmVfdGNsKSAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBvc3Ryb3V0ZV9zaV9ob2xkLHNldF9hbmFseXNpc19tb2RlLHBvc3RfdGNsKSAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocG9zdHJvdXRlX3NpX2hvbGQsc2V0X2FuYWx5c2lzX21vZGUscmVwbGFjZV90Y2wpICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwb3N0cm91dGVfc2lfaG9sZCxzZXRfYW5hbHlzaXNfbW9kZSxza2lwKSAgICAgICAgICAgICAgPHRydWUgb3IgZmFsc2U+Ci0jIHNldCB2YXJzKHBvc3Ryb3V0ZV9zaV9ob2xkLGFkZF9tZXRhbGZpbGwscHJlX3RjbCkgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocG9zdHJvdXRlX3NpX2hvbGQsYWRkX21ldGFsZmlsbCxwb3N0X3RjbCkgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwb3N0cm91dGVfc2lfaG9sZCxhZGRfbWV0YWxmaWxsLHJlcGxhY2VfdGNsKSAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBvc3Ryb3V0ZV9zaV9ob2xkLGFkZF9tZXRhbGZpbGwsc2tpcCkgICAgICAgICAgICAgICAgICA8dHJ1ZSBvciBmYWxzZT4KLSMgc2V0IHZhcnMocG9zdHJvdXRlX3NpX2hvbGQsZGVsZXRlX2ZpbGxlcl9jZWxscyxwcmVfdGNsKSAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwb3N0cm91dGVfc2lfaG9sZCxkZWxldGVfZmlsbGVyX2NlbGxzLHBvc3RfdGNsKSAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBvc3Ryb3V0ZV9zaV9ob2xkLGRlbGV0ZV9maWxsZXJfY2VsbHMscmVwbGFjZV90Y2wpICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocG9zdHJvdXRlX3NpX2hvbGQsZGVsZXRlX2ZpbGxlcl9jZWxscyxza2lwKSAgICAgICAgICAgIDx0cnVlIG9yIGZhbHNlPgotIyBzZXQgdmFycyhwb3N0cm91dGVfc2lfaG9sZCxvcHRfZGVzaWduLHByZV90Y2wpICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBvc3Ryb3V0ZV9zaV9ob2xkLG9wdF9kZXNpZ24scG9zdF90Y2wpICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocG9zdHJvdXRlX3NpX2hvbGQsb3B0X2Rlc2lnbixyZXBsYWNlX3RjbCkgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwb3N0cm91dGVfc2lfaG9sZCxvcHRfZGVzaWduLHNraXApICAgICAgICAgICAgICAgICAgICAgPHRydWUgb3IgZmFsc2U+Ci0jIHNldCB2YXJzKHBvc3Ryb3V0ZV9zaV9ob2xkLGFkZF9maWxsZXJfY2VsbHMscHJlX3RjbCkgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocG9zdHJvdXRlX3NpX2hvbGQsYWRkX2ZpbGxlcl9jZWxscyxwb3N0X3RjbCkgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwb3N0cm91dGVfc2lfaG9sZCxhZGRfZmlsbGVyX2NlbGxzLHJlcGxhY2VfdGNsKSAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBvc3Ryb3V0ZV9zaV9ob2xkLGFkZF9maWxsZXJfY2VsbHMsc2tpcCkgICAgICAgICAgICAgICA8dHJ1ZSBvciBmYWxzZT4KLSMgc2V0IHZhcnMocG9zdHJvdXRlX3NpX2hvbGQsdHJpbV9tZXRhbGZpbGwscHJlX3RjbCkgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwb3N0cm91dGVfc2lfaG9sZCx0cmltX21ldGFsZmlsbCxwb3N0X3RjbCkgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBvc3Ryb3V0ZV9zaV9ob2xkLHRyaW1fbWV0YWxmaWxsLHJlcGxhY2VfdGNsKSAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocG9zdHJvdXRlX3NpX2hvbGQsdHJpbV9tZXRhbGZpbGwsc2tpcCkgICAgICAgICAgICAgICAgIDx0cnVlIG9yIGZhbHNlPgotIyBzZXQgdmFycyhwb3N0cm91dGVfc2lfaG9sZCxzYXZlX2Rlc2lnbixwcmVfdGNsKSAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBvc3Ryb3V0ZV9zaV9ob2xkLHNhdmVfZGVzaWduLHBvc3RfdGNsKSAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocG9zdHJvdXRlX3NpX2hvbGQsc2F2ZV9kZXNpZ24scmVwbGFjZV90Y2wpICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwb3N0cm91dGVfc2lfaG9sZCxzYXZlX2Rlc2lnbixza2lwKSAgICAgICAgICAgICAgICAgICAgPHRydWUgb3IgZmFsc2U+Ci0jIHNldCB2YXJzKHBvc3Ryb3V0ZV9zaV9ob2xkLHJlcG9ydF9wb3dlcixwcmVfdGNsKSAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocG9zdHJvdXRlX3NpX2hvbGQscmVwb3J0X3Bvd2VyLHBvc3RfdGNsKSAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwb3N0cm91dGVfc2lfaG9sZCxyZXBvcnRfcG93ZXIscmVwbGFjZV90Y2wpICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBvc3Ryb3V0ZV9zaV9ob2xkLHJlcG9ydF9wb3dlcixza2lwKSAgICAgICAgICAgICAgICAgICA8dHJ1ZSBvciBmYWxzZT4KLSMgc2V0IHZhcnMocG9zdHJvdXRlX3NpX2hvbGQsdmVyaWZ5X3Bvd2VyX2RvbWFpbixwcmVfdGNsKSAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwb3N0cm91dGVfc2lfaG9sZCx2ZXJpZnlfcG93ZXJfZG9tYWluLHBvc3RfdGNsKSAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBvc3Ryb3V0ZV9zaV9ob2xkLHZlcmlmeV9wb3dlcl9kb21haW4scmVwbGFjZV90Y2wpICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocG9zdHJvdXRlX3NpX2hvbGQsdmVyaWZ5X3Bvd2VyX2RvbWFpbixza2lwKSAgICAgICAgICAgIDx0cnVlIG9yIGZhbHNlPgotIyBzZXQgdmFycyhwb3N0cm91dGVfc2lfaG9sZCxydW5fY2xwLHByZV90Y2wpICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBvc3Ryb3V0ZV9zaV9ob2xkLHJ1bl9jbHAscG9zdF90Y2wpICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocG9zdHJvdXRlX3NpX2hvbGQscnVuX2NscCxyZXBsYWNlX3RjbCkgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwb3N0cm91dGVfc2lfaG9sZCxydW5fY2xwLHNraXApICAgICAgICAgICAgICAgICAgICAgICAgPHRydWUgb3IgZmFsc2U+Ci0jIHNldCB2YXJzKHBvc3Ryb3V0ZV9zaSxzZXRfZGlzdHJpYnV0ZV9ob3N0LHByZV90Y2wpICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocG9zdHJvdXRlX3NpLHNldF9kaXN0cmlidXRlX2hvc3QscG9zdF90Y2wpICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwb3N0cm91dGVfc2ksc2V0X2Rpc3RyaWJ1dGVfaG9zdCxyZXBsYWNlX3RjbCkgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBvc3Ryb3V0ZV9zaSxzZXRfZGlzdHJpYnV0ZV9ob3N0LHNraXApICAgICAgICAgICAgICAgICA8dHJ1ZSBvciBmYWxzZT4KLSMgc2V0IHZhcnMocG9zdHJvdXRlX3NpLHNldF9tdWx0aV9jcHVfdXNhZ2UscHJlX3RjbCkgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwb3N0cm91dGVfc2ksc2V0X211bHRpX2NwdV91c2FnZSxwb3N0X3RjbCkgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBvc3Ryb3V0ZV9zaSxzZXRfbXVsdGlfY3B1X3VzYWdlLHJlcGxhY2VfdGNsKSAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocG9zdHJvdXRlX3NpLHNldF9tdWx0aV9jcHVfdXNhZ2Usc2tpcCkgICAgICAgICAgICAgICAgIDx0cnVlIG9yIGZhbHNlPgotIyBzZXQgdmFycyhwb3N0cm91dGVfc2ksaW5pdGlhbGl6ZV9zdGVwLHByZV90Y2wpICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBvc3Ryb3V0ZV9zaSxpbml0aWFsaXplX3N0ZXAscG9zdF90Y2wpICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocG9zdHJvdXRlX3NpLGluaXRpYWxpemVfc3RlcCxyZXBsYWNlX3RjbCkgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwb3N0cm91dGVfc2ksaW5pdGlhbGl6ZV9zdGVwLHNraXApICAgICAgICAgICAgICAgICAgICAgPHRydWUgb3IgZmFsc2U+Ci0jIHNldCB2YXJzKHBvc3Ryb3V0ZV9zaSxzZXRfZGVzaWduX21vZGUscHJlX3RjbCkgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocG9zdHJvdXRlX3NpLHNldF9kZXNpZ25fbW9kZSxwb3N0X3RjbCkgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwb3N0cm91dGVfc2ksc2V0X2Rlc2lnbl9tb2RlLHJlcGxhY2VfdGNsKSAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBvc3Ryb3V0ZV9zaSxzZXRfZGVzaWduX21vZGUsc2tpcCkgICAgICAgICAgICAgICAgICAgICA8dHJ1ZSBvciBmYWxzZT4KLSMgc2V0IHZhcnMocG9zdHJvdXRlX3NpLHNldF9leHRyYWN0X3JjX21vZGUscHJlX3RjbCkgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwb3N0cm91dGVfc2ksc2V0X2V4dHJhY3RfcmNfbW9kZSxwb3N0X3RjbCkgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBvc3Ryb3V0ZV9zaSxzZXRfZXh0cmFjdF9yY19tb2RlLHJlcGxhY2VfdGNsKSAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocG9zdHJvdXRlX3NpLHNldF9leHRyYWN0X3JjX21vZGUsc2tpcCkgICAgICAgICAgICAgICAgIDx0cnVlIG9yIGZhbHNlPgotIyBzZXQgdmFycyhwb3N0cm91dGVfc2ksc2V0X3NpX21vZGUscHJlX3RjbCkgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBvc3Ryb3V0ZV9zaSxzZXRfc2lfbW9kZSxwb3N0X3RjbCkgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocG9zdHJvdXRlX3NpLHNldF9zaV9tb2RlLHJlcGxhY2VfdGNsKSAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwb3N0cm91dGVfc2ksc2V0X3NpX21vZGUsc2tpcCkgICAgICAgICAgICAgICAgICAgICAgICAgPHRydWUgb3IgZmFsc2U+Ci0jIHNldCB2YXJzKHBvc3Ryb3V0ZV9zaSxzZXRfYW5hbHlzaXNfbW9kZSxwcmVfdGNsKSAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocG9zdHJvdXRlX3NpLHNldF9hbmFseXNpc19tb2RlLHBvc3RfdGNsKSAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwb3N0cm91dGVfc2ksc2V0X2FuYWx5c2lzX21vZGUscmVwbGFjZV90Y2wpICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBvc3Ryb3V0ZV9zaSxzZXRfYW5hbHlzaXNfbW9kZSxza2lwKSAgICAgICAgICAgICAgICAgICA8dHJ1ZSBvciBmYWxzZT4KLSMgc2V0IHZhcnMocG9zdHJvdXRlX3NpLHNldF9kZWxheV9jYWxfbW9kZSxwcmVfdGNsKSAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwb3N0cm91dGVfc2ksc2V0X2RlbGF5X2NhbF9tb2RlLHBvc3RfdGNsKSAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBvc3Ryb3V0ZV9zaSxzZXRfZGVsYXlfY2FsX21vZGUscmVwbGFjZV90Y2wpICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocG9zdHJvdXRlX3NpLHNldF9kZWxheV9jYWxfbW9kZSxza2lwKSAgICAgICAgICAgICAgICAgIDx0cnVlIG9yIGZhbHNlPgotIyBzZXQgdmFycyhwb3N0cm91dGVfc2ksYWRkX21ldGFsZmlsbCxwcmVfdGNsKSAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBvc3Ryb3V0ZV9zaSxhZGRfbWV0YWxmaWxsLHBvc3RfdGNsKSAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocG9zdHJvdXRlX3NpLGFkZF9tZXRhbGZpbGwscmVwbGFjZV90Y2wpICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwb3N0cm91dGVfc2ksYWRkX21ldGFsZmlsbCxza2lwKSAgICAgICAgICAgICAgICAgICAgICAgPHRydWUgb3IgZmFsc2U+Ci0jIHNldCB2YXJzKHBvc3Ryb3V0ZV9zaSxkZWxldGVfZmlsbGVyX2NlbGxzLHByZV90Y2wpICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocG9zdHJvdXRlX3NpLGRlbGV0ZV9maWxsZXJfY2VsbHMscG9zdF90Y2wpICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwb3N0cm91dGVfc2ksZGVsZXRlX2ZpbGxlcl9jZWxscyxyZXBsYWNlX3RjbCkgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBvc3Ryb3V0ZV9zaSxkZWxldGVfZmlsbGVyX2NlbGxzLHNraXApICAgICAgICAgICAgICAgICA8dHJ1ZSBvciBmYWxzZT4KLSMgc2V0IHZhcnMocG9zdHJvdXRlX3NpLG9wdF9kZXNpZ24scHJlX3RjbCkgICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwb3N0cm91dGVfc2ksb3B0X2Rlc2lnbixwb3N0X3RjbCkgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBvc3Ryb3V0ZV9zaSxvcHRfZGVzaWduLHJlcGxhY2VfdGNsKSAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocG9zdHJvdXRlX3NpLG9wdF9kZXNpZ24sc2tpcCkgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cnVlIG9yIGZhbHNlPgotIyBzZXQgdmFycyhwb3N0cm91dGVfc2ksYWRkX2ZpbGxlcl9jZWxscyxwcmVfdGNsKSAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBvc3Ryb3V0ZV9zaSxhZGRfZmlsbGVyX2NlbGxzLHBvc3RfdGNsKSAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocG9zdHJvdXRlX3NpLGFkZF9maWxsZXJfY2VsbHMscmVwbGFjZV90Y2wpICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwb3N0cm91dGVfc2ksYWRkX2ZpbGxlcl9jZWxscyxza2lwKSAgICAgICAgICAgICAgICAgICAgPHRydWUgb3IgZmFsc2U+Ci0jIHNldCB2YXJzKHBvc3Ryb3V0ZV9zaSx0cmltX21ldGFsZmlsbCxwcmVfdGNsKSAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocG9zdHJvdXRlX3NpLHRyaW1fbWV0YWxmaWxsLHBvc3RfdGNsKSAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwb3N0cm91dGVfc2ksdHJpbV9tZXRhbGZpbGwscmVwbGFjZV90Y2wpICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBvc3Ryb3V0ZV9zaSx0cmltX21ldGFsZmlsbCxza2lwKSAgICAgICAgICAgICAgICAgICAgICA8dHJ1ZSBvciBmYWxzZT4KLSMgc2V0IHZhcnMocG9zdHJvdXRlX3NpLHNhdmVfZGVzaWduLHByZV90Y2wpICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwb3N0cm91dGVfc2ksc2F2ZV9kZXNpZ24scG9zdF90Y2wpICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBvc3Ryb3V0ZV9zaSxzYXZlX2Rlc2lnbixyZXBsYWNlX3RjbCkgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocG9zdHJvdXRlX3NpLHNhdmVfZGVzaWduLHNraXApICAgICAgICAgICAgICAgICAgICAgICAgIDx0cnVlIG9yIGZhbHNlPgotIyBzZXQgdmFycyhwb3N0cm91dGVfc2kscmVwb3J0X3Bvd2VyLHByZV90Y2wpICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBvc3Ryb3V0ZV9zaSxyZXBvcnRfcG93ZXIscG9zdF90Y2wpICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocG9zdHJvdXRlX3NpLHJlcG9ydF9wb3dlcixyZXBsYWNlX3RjbCkgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwb3N0cm91dGVfc2kscmVwb3J0X3Bvd2VyLHNraXApICAgICAgICAgICAgICAgICAgICAgICAgPHRydWUgb3IgZmFsc2U+Ci0jIHNldCB2YXJzKHBvc3Ryb3V0ZV9zaSx2ZXJpZnlfcG93ZXJfZG9tYWluLHByZV90Y2wpICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocG9zdHJvdXRlX3NpLHZlcmlmeV9wb3dlcl9kb21haW4scG9zdF90Y2wpICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwb3N0cm91dGVfc2ksdmVyaWZ5X3Bvd2VyX2RvbWFpbixyZXBsYWNlX3RjbCkgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBvc3Ryb3V0ZV9zaSx2ZXJpZnlfcG93ZXJfZG9tYWluLHNraXApICAgICAgICAgICAgICAgICA8dHJ1ZSBvciBmYWxzZT4KLSMgc2V0IHZhcnMocG9zdHJvdXRlX3NpLHJ1bl9jbHAscHJlX3RjbCkgICAgICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwb3N0cm91dGVfc2kscnVuX2NscCxwb3N0X3RjbCkgICAgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBvc3Ryb3V0ZV9zaSxydW5fY2xwLHJlcGxhY2VfdGNsKSAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocG9zdHJvdXRlX3NpLHJ1bl9jbHAsc2tpcCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cnVlIG9yIGZhbHNlPgotIyBzZXQgdmFycyhzaWdub2ZmLGZpeF9saXRobyxwcmVfdGNsKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHNpZ25vZmYsZml4X2xpdGhvLHBvc3RfdGNsKSAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMoc2lnbm9mZixmaXhfbGl0aG8scmVwbGFjZV90Y2wpICAgICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhzaWdub2ZmLGZpeF9saXRobyxza2lwKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRydWUgb3IgZmFsc2U+Ci0jIHNldCB2YXJzKHNpZ25vZmYsYWRkX21ldGFsZmlsbCxwcmVfdGNsKSAgICAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMoc2lnbm9mZixhZGRfbWV0YWxmaWxsLHBvc3RfdGNsKSAgICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhzaWdub2ZmLGFkZF9tZXRhbGZpbGwscmVwbGFjZV90Y2wpICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHNpZ25vZmYsYWRkX21ldGFsZmlsbCxza2lwKSAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHJ1ZSBvciBmYWxzZT4KLSMgc2V0IHZhcnMoc2lnbm9mZixzZXRfZGlzdHJpYnV0ZV9ob3N0LHByZV90Y2wpICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhzaWdub2ZmLHNldF9kaXN0cmlidXRlX2hvc3QscG9zdF90Y2wpICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHNpZ25vZmYsc2V0X2Rpc3RyaWJ1dGVfaG9zdCxyZXBsYWNlX3RjbCkgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMoc2lnbm9mZixzZXRfZGlzdHJpYnV0ZV9ob3N0LHNraXApICAgICAgICAgICAgICAgICAgICAgIDx0cnVlIG9yIGZhbHNlPgotIyBzZXQgdmFycyhzaWdub2ZmLHNldF9tdWx0aV9jcHVfdXNhZ2UscHJlX3RjbCkgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHNpZ25vZmYsc2V0X211bHRpX2NwdV91c2FnZSxwb3N0X3RjbCkgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMoc2lnbm9mZixzZXRfbXVsdGlfY3B1X3VzYWdlLHJlcGxhY2VfdGNsKSAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhzaWdub2ZmLHNldF9tdWx0aV9jcHVfdXNhZ2Usc2tpcCkgICAgICAgICAgICAgICAgICAgICAgPHRydWUgb3IgZmFsc2U+Ci0jIHNldCB2YXJzKHNpZ25vZmYsc2V0X2Rlc2lnbl9tb2RlLHByZV90Y2wpICAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMoc2lnbm9mZixzZXRfZGVzaWduX21vZGUscG9zdF90Y2wpICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhzaWdub2ZmLHNldF9kZXNpZ25fbW9kZSxyZXBsYWNlX3RjbCkgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHNpZ25vZmYsc2V0X2Rlc2lnbl9tb2RlLHNraXApICAgICAgICAgICAgICAgICAgICAgICAgICA8dHJ1ZSBvciBmYWxzZT4KLSMgc2V0IHZhcnMoc2lnbm9mZixpbml0aWFsaXplX3RpbWluZyxwcmVfdGNsKSAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhzaWdub2ZmLGluaXRpYWxpemVfdGltaW5nLHBvc3RfdGNsKSAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHNpZ25vZmYsaW5pdGlhbGl6ZV90aW1pbmcscmVwbGFjZV90Y2wpICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMoc2lnbm9mZixpbml0aWFsaXplX3RpbWluZyxza2lwKSAgICAgICAgICAgICAgICAgICAgICAgIDx0cnVlIG9yIGZhbHNlPgotIyBzZXQgdmFycyhzaWdub2ZmLGluaXRpYWxpemVfc3RlcCxwcmVfdGNsKSAgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHNpZ25vZmYsaW5pdGlhbGl6ZV9zdGVwLHBvc3RfdGNsKSAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMoc2lnbm9mZixpbml0aWFsaXplX3N0ZXAscmVwbGFjZV90Y2wpICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhzaWdub2ZmLGluaXRpYWxpemVfc3RlcCxza2lwKSAgICAgICAgICAgICAgICAgICAgICAgICAgPHRydWUgb3IgZmFsc2U+Ci0jIHNldCB2YXJzKHNpZ25vZmYsc2V0X2FuYWx5c2lzX21vZGUscHJlX3RjbCkgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMoc2lnbm9mZixzZXRfYW5hbHlzaXNfbW9kZSxwb3N0X3RjbCkgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhzaWdub2ZmLHNldF9hbmFseXNpc19tb2RlLHJlcGxhY2VfdGNsKSAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHNpZ25vZmYsc2V0X2FuYWx5c2lzX21vZGUsc2tpcCkgICAgICAgICAgICAgICAgICAgICAgICA8dHJ1ZSBvciBmYWxzZT4KLSMgc2V0IHZhcnMoc2lnbm9mZixzZXRfZGVsYXlfY2FsX21vZGUscHJlX3RjbCkgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhzaWdub2ZmLHNldF9kZWxheV9jYWxfbW9kZSxwb3N0X3RjbCkgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHNpZ25vZmYsc2V0X2RlbGF5X2NhbF9tb2RlLHJlcGxhY2VfdGNsKSAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMoc2lnbm9mZixzZXRfZGVsYXlfY2FsX21vZGUsc2tpcCkgICAgICAgICAgICAgICAgICAgICAgIDx0cnVlIG9yIGZhbHNlPgotIyBzZXQgdmFycyhzaWdub2ZmLHNldF9leHRyYWN0X3JjX21vZGUscHJlX3RjbCkgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHNpZ25vZmYsc2V0X2V4dHJhY3RfcmNfbW9kZSxwb3N0X3RjbCkgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMoc2lnbm9mZixzZXRfZXh0cmFjdF9yY19tb2RlLHJlcGxhY2VfdGNsKSAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhzaWdub2ZmLHNldF9leHRyYWN0X3JjX21vZGUsc2tpcCkgICAgICAgICAgICAgICAgICAgICAgPHRydWUgb3IgZmFsc2U+Ci0jIHNldCB2YXJzKHNpZ25vZmYsZXh0cmFjdF9yYyxwcmVfdGNsKSAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMoc2lnbm9mZixleHRyYWN0X3JjLHBvc3RfdGNsKSAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhzaWdub2ZmLGV4dHJhY3RfcmMscmVwbGFjZV90Y2wpICAgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHNpZ25vZmYsZXh0cmFjdF9yYyxza2lwKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHJ1ZSBvciBmYWxzZT4KLSMgc2V0IHZhcnMoc2lnbm9mZixkdW1wX3NwZWYscHJlX3RjbCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhzaWdub2ZmLGR1bXBfc3BlZixwb3N0X3RjbCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHNpZ25vZmYsZHVtcF9zcGVmLHJlcGxhY2VfdGNsKSAgICAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMoc2lnbm9mZixkdW1wX3NwZWYsc2tpcCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cnVlIG9yIGZhbHNlPgotIyBzZXQgdmFycyhzaWdub2ZmLHRpbWVfZGVzaWduX3NldHVwLHByZV90Y2wpICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHNpZ25vZmYsdGltZV9kZXNpZ25fc2V0dXAscG9zdF90Y2wpICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMoc2lnbm9mZix0aW1lX2Rlc2lnbl9zZXR1cCxyZXBsYWNlX3RjbCkgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhzaWdub2ZmLHRpbWVfZGVzaWduX3NldHVwLHNraXApICAgICAgICAgICAgICAgICAgICAgICAgPHRydWUgb3IgZmFsc2U+Ci0jIHNldCB2YXJzKHNpZ25vZmYsdGltZV9kZXNpZ25faG9sZCxwcmVfdGNsKSAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMoc2lnbm9mZix0aW1lX2Rlc2lnbl9ob2xkLHBvc3RfdGNsKSAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhzaWdub2ZmLHRpbWVfZGVzaWduX2hvbGQscmVwbGFjZV90Y2wpICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHNpZ25vZmYsdGltZV9kZXNpZ25faG9sZCxza2lwKSAgICAgICAgICAgICAgICAgICAgICAgICA8dHJ1ZSBvciBmYWxzZT4KLSMgc2V0IHZhcnMoc2lnbm9mZixzdHJlYW1fb3V0LHByZV90Y2wpICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhzaWdub2ZmLHN0cmVhbV9vdXQscG9zdF90Y2wpICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHNpZ25vZmYsc3RyZWFtX291dCxyZXBsYWNlX3RjbCkgICAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMoc2lnbm9mZixzdHJlYW1fb3V0LHNraXApICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cnVlIG9yIGZhbHNlPgotIyBzZXQgdmFycyhzaWdub2ZmLG9hc2lzX291dCxwcmVfdGNsKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHNpZ25vZmYsb2FzaXNfb3V0LHBvc3RfdGNsKSAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMoc2lnbm9mZixvYXNpc19vdXQscmVwbGFjZV90Y2wpICAgICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhzaWdub2ZmLG9hc2lzX291dCxza2lwKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRydWUgb3IgZmFsc2U+Ci0jIHNldCB2YXJzKHNpZ25vZmYsc2F2ZV9vYV9kZXNpZ24scHJlX3RjbCkgICAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMoc2lnbm9mZixzYXZlX29hX2Rlc2lnbixwb3N0X3RjbCkgICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhzaWdub2ZmLHNhdmVfb2FfZGVzaWduLHJlcGxhY2VfdGNsKSAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHNpZ25vZmYsc2F2ZV9vYV9kZXNpZ24sc2tpcCkgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHJ1ZSBvciBmYWxzZT4KLSMgc2V0IHZhcnMoc2lnbm9mZixjcmVhdGVfaWxtLHByZV90Y2wpICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhzaWdub2ZmLGNyZWF0ZV9pbG0scG9zdF90Y2wpICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHNpZ25vZmYsY3JlYXRlX2lsbSxyZXBsYWNlX3RjbCkgICAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMoc2lnbm9mZixjcmVhdGVfaWxtLHNraXApICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cnVlIG9yIGZhbHNlPgotIyBzZXQgdmFycyhzaWdub2ZmLHN1bW1hcnlfcmVwb3J0LHByZV90Y2wpICAgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHNpZ25vZmYsc3VtbWFyeV9yZXBvcnQscG9zdF90Y2wpICAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMoc2lnbm9mZixzdW1tYXJ5X3JlcG9ydCxyZXBsYWNlX3RjbCkgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhzaWdub2ZmLHN1bW1hcnlfcmVwb3J0LHNraXApICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRydWUgb3IgZmFsc2U+Ci0jIHNldCB2YXJzKHNpZ25vZmYsdmVyaWZ5X2Nvbm5lY3Rpdml0eSxwcmVfdGNsKSAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMoc2lnbm9mZix2ZXJpZnlfY29ubmVjdGl2aXR5LHBvc3RfdGNsKSAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhzaWdub2ZmLHZlcmlmeV9jb25uZWN0aXZpdHkscmVwbGFjZV90Y2wpICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHNpZ25vZmYsdmVyaWZ5X2Nvbm5lY3Rpdml0eSxza2lwKSAgICAgICAgICAgICAgICAgICAgICA8dHJ1ZSBvciBmYWxzZT4KLSMgc2V0IHZhcnMoc2lnbm9mZix2ZXJpZnlfZ2VvbWV0cnkscHJlX3RjbCkgICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhzaWdub2ZmLHZlcmlmeV9nZW9tZXRyeSxwb3N0X3RjbCkgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHNpZ25vZmYsdmVyaWZ5X2dlb21ldHJ5LHJlcGxhY2VfdGNsKSAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMoc2lnbm9mZix2ZXJpZnlfZ2VvbWV0cnksc2tpcCkgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cnVlIG9yIGZhbHNlPgotIyBzZXQgdmFycyhzaWdub2ZmLHZlcmlmeV9tZXRhbF9kZW5zaXR5LHByZV90Y2wpICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHNpZ25vZmYsdmVyaWZ5X21ldGFsX2RlbnNpdHkscG9zdF90Y2wpICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMoc2lnbm9mZix2ZXJpZnlfbWV0YWxfZGVuc2l0eSxyZXBsYWNlX3RjbCkgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhzaWdub2ZmLHZlcmlmeV9tZXRhbF9kZW5zaXR5LHNraXApICAgICAgICAgICAgICAgICAgICAgPHRydWUgb3IgZmFsc2U+Ci0jIHNldCB2YXJzKHNpZ25vZmYsdmVyaWZ5X3Byb2Nlc3NfYW50ZW5uYSxwcmVfdGNsKSAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMoc2lnbm9mZix2ZXJpZnlfcHJvY2Vzc19hbnRlbm5hLHBvc3RfdGNsKSAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhzaWdub2ZmLHZlcmlmeV9wcm9jZXNzX2FudGVubmEscmVwbGFjZV90Y2wpICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHNpZ25vZmYsdmVyaWZ5X3Byb2Nlc3NfYW50ZW5uYSxza2lwKSAgICAgICAgICAgICAgICAgICA8dHJ1ZSBvciBmYWxzZT4KLSMgc2V0IHZhcnMoc2lnbm9mZixzYXZlX2Rlc2lnbixwcmVfdGNsKSAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhzaWdub2ZmLHNhdmVfZGVzaWduLHBvc3RfdGNsKSAgICAgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHNpZ25vZmYsc2F2ZV9kZXNpZ24scmVwbGFjZV90Y2wpICAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMoc2lnbm9mZixzYXZlX2Rlc2lnbixza2lwKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cnVlIG9yIGZhbHNlPgotIyBzZXQgdmFycyhzaWdub2ZmLHJlcG9ydF9wb3dlcixwcmVfdGNsKSAgICAgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHNpZ25vZmYscmVwb3J0X3Bvd2VyLHBvc3RfdGNsKSAgICAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMoc2lnbm9mZixyZXBvcnRfcG93ZXIscmVwbGFjZV90Y2wpICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhzaWdub2ZmLHJlcG9ydF9wb3dlcixza2lwKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRydWUgb3IgZmFsc2U+Ci0jIHNldCB2YXJzKHNpZ25vZmYsdmVyaWZ5X3Bvd2VyX2RvbWFpbixwcmVfdGNsKSAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMoc2lnbm9mZix2ZXJpZnlfcG93ZXJfZG9tYWluLHBvc3RfdGNsKSAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhzaWdub2ZmLHZlcmlmeV9wb3dlcl9kb21haW4scmVwbGFjZV90Y2wpICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHNpZ25vZmYsdmVyaWZ5X3Bvd2VyX2RvbWFpbixza2lwKSAgICAgICAgICAgICAgICAgICAgICA8dHJ1ZSBvciBmYWxzZT4KLSMgc2V0IHZhcnMoc2lnbm9mZixydW5fY2xwLHByZV90Y2wpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhzaWdub2ZmLHJ1bl9jbHAscG9zdF90Y2wpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHNpZ25vZmYscnVuX2NscCxyZXBsYWNlX3RjbCkgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMoc2lnbm9mZixydW5fY2xwLHNraXApICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cnVlIG9yIGZhbHNlPgotIyBzZXQgdmFycyhwYXJ0aXRpb24saW5pdGlhbGl6ZV90aW1pbmcscHJlX3RjbCkgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBhcnRpdGlvbixpbml0aWFsaXplX3RpbWluZyxwb3N0X3RjbCkgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocGFydGl0aW9uLGluaXRpYWxpemVfdGltaW5nLHJlcGxhY2VfdGNsKSAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwYXJ0aXRpb24saW5pdGlhbGl6ZV90aW1pbmcsc2tpcCkgICAgICAgICAgICAgICAgICAgICAgPHRydWUgb3IgZmFsc2U+Ci0jIHNldCB2YXJzKHBhcnRpdGlvbixsb2FkX2NwZixwcmVfdGNsKSAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocGFydGl0aW9uLGxvYWRfY3BmLHBvc3RfdGNsKSAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwYXJ0aXRpb24sbG9hZF9jcGYscmVwbGFjZV90Y2wpICAgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBhcnRpdGlvbixsb2FkX2NwZixza2lwKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHJ1ZSBvciBmYWxzZT4KLSMgc2V0IHZhcnMocGFydGl0aW9uLGNvbW1pdF9jcGYscHJlX3RjbCkgICAgICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwYXJ0aXRpb24sY29tbWl0X2NwZixwb3N0X3RjbCkgICAgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBhcnRpdGlvbixjb21taXRfY3BmLHJlcGxhY2VfdGNsKSAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocGFydGl0aW9uLGNvbW1pdF9jcGYsc2tpcCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cnVlIG9yIGZhbHNlPgotIyBzZXQgdmFycyhwYXJ0aXRpb24sbG9hZF9pZWVlMTgwMSxwcmVfdGNsKSAgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBhcnRpdGlvbixsb2FkX2llZWUxODAxLHBvc3RfdGNsKSAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocGFydGl0aW9uLGxvYWRfaWVlZTE4MDEscmVwbGFjZV90Y2wpICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwYXJ0aXRpb24sbG9hZF9pZWVlMTgwMSxza2lwKSAgICAgICAgICAgICAgICAgICAgICAgICAgPHRydWUgb3IgZmFsc2U+Ci0jIHNldCB2YXJzKHBhcnRpdGlvbixjb21taXRfaWVlZTE4MDEscHJlX3RjbCkgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocGFydGl0aW9uLGNvbW1pdF9pZWVlMTgwMSxwb3N0X3RjbCkgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwYXJ0aXRpb24sY29tbWl0X2llZWUxODAxLHJlcGxhY2VfdGNsKSAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBhcnRpdGlvbixjb21taXRfaWVlZTE4MDEsc2tpcCkgICAgICAgICAgICAgICAgICAgICAgICA8dHJ1ZSBvciBmYWxzZT4KLSMgc2V0IHZhcnMocGFydGl0aW9uLHJ1bl9jbHBfaW5pdCxwcmVfdGNsKSAgICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwYXJ0aXRpb24scnVuX2NscF9pbml0LHBvc3RfdGNsKSAgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBhcnRpdGlvbixydW5fY2xwX2luaXQscmVwbGFjZV90Y2wpICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocGFydGl0aW9uLHJ1bl9jbHBfaW5pdCxza2lwKSAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cnVlIG9yIGZhbHNlPgotIyBzZXQgdmFycyhwYXJ0aXRpb24sc2F2ZV9pbml0X2RicyxwcmVfdGNsKSAgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBhcnRpdGlvbixzYXZlX2luaXRfZGJzLHBvc3RfdGNsKSAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocGFydGl0aW9uLHNhdmVfaW5pdF9kYnMscmVwbGFjZV90Y2wpICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwYXJ0aXRpb24sc2F2ZV9pbml0X2Ricyxza2lwKSAgICAgICAgICAgICAgICAgICAgICAgICAgPHRydWUgb3IgZmFsc2U+Ci0jIHNldCB2YXJzKHBhcnRpdGlvbixzZXRfYnVkZ2V0aW5nX21vZGUscHJlX3RjbCkgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocGFydGl0aW9uLHNldF9idWRnZXRpbmdfbW9kZSxwb3N0X3RjbCkgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwYXJ0aXRpb24sc2V0X2J1ZGdldGluZ19tb2RlLHJlcGxhY2VfdGNsKSAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBhcnRpdGlvbixzZXRfYnVkZ2V0aW5nX21vZGUsc2tpcCkgICAgICAgICAgICAgICAgICAgICA8dHJ1ZSBvciBmYWxzZT4KLSMgc2V0IHZhcnMocGFydGl0aW9uLHVwZGF0ZV9jb25zdHJhaW50X21vZGUscHJlX3RjbCkgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwYXJ0aXRpb24sdXBkYXRlX2NvbnN0cmFpbnRfbW9kZSxwb3N0X3RjbCkgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBhcnRpdGlvbix1cGRhdGVfY29uc3RyYWludF9tb2RlLHJlcGxhY2VfdGNsKSAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocGFydGl0aW9uLHVwZGF0ZV9jb25zdHJhaW50X21vZGUsc2tpcCkgICAgICAgICAgICAgICAgIDx0cnVlIG9yIGZhbHNlPgotIyBzZXQgdmFycyhwYXJ0aXRpb24sc2V0X3B0bl91c2VyX2Nuc19maWxlLHByZV90Y2wpICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBhcnRpdGlvbixzZXRfcHRuX3VzZXJfY25zX2ZpbGUscG9zdF90Y2wpICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocGFydGl0aW9uLHNldF9wdG5fdXNlcl9jbnNfZmlsZSxyZXBsYWNlX3RjbCkgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwYXJ0aXRpb24sc2V0X3B0bl91c2VyX2Nuc19maWxlLHNraXApICAgICAgICAgICAgICAgICAgPHRydWUgb3IgZmFsc2U+Ci0jIHNldCB2YXJzKHBhcnRpdGlvbixzZXRfcGxhY2VfbW9kZSxwcmVfdGNsKSAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocGFydGl0aW9uLHNldF9wbGFjZV9tb2RlLHBvc3RfdGNsKSAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwYXJ0aXRpb24sc2V0X3BsYWNlX21vZGUscmVwbGFjZV90Y2wpICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBhcnRpdGlvbixzZXRfcGxhY2VfbW9kZSxza2lwKSAgICAgICAgICAgICAgICAgICAgICAgICA8dHJ1ZSBvciBmYWxzZT4KLSMgc2V0IHZhcnMocGFydGl0aW9uLHBsYWNlX2Rlc2lnbixwcmVfdGNsKSAgICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwYXJ0aXRpb24scGxhY2VfZGVzaWduLHBvc3RfdGNsKSAgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBhcnRpdGlvbixwbGFjZV9kZXNpZ24scmVwbGFjZV90Y2wpICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocGFydGl0aW9uLHBsYWNlX2Rlc2lnbixza2lwKSAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cnVlIG9yIGZhbHNlPgotIyBzZXQgdmFycyhwYXJ0aXRpb24sc2F2ZV9wbGFjZV9kYnMscHJlX3RjbCkgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBhcnRpdGlvbixzYXZlX3BsYWNlX2Ricyxwb3N0X3RjbCkgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocGFydGl0aW9uLHNhdmVfcGxhY2VfZGJzLHJlcGxhY2VfdGNsKSAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwYXJ0aXRpb24sc2F2ZV9wbGFjZV9kYnMsc2tpcCkgICAgICAgICAgICAgICAgICAgICAgICAgPHRydWUgb3IgZmFsc2U+Ci0jIHNldCB2YXJzKHBhcnRpdGlvbix0cmlhbF9yb3V0ZSxwcmVfdGNsKSAgICAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocGFydGl0aW9uLHRyaWFsX3JvdXRlLHBvc3RfdGNsKSAgICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwYXJ0aXRpb24sdHJpYWxfcm91dGUscmVwbGFjZV90Y2wpICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBhcnRpdGlvbix0cmlhbF9yb3V0ZSxza2lwKSAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHJ1ZSBvciBmYWxzZT4KLSMgc2V0IHZhcnMocGFydGl0aW9uLGFzc2lnbl9wdG5fcGlucyxwcmVfdGNsKSAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwYXJ0aXRpb24sYXNzaWduX3B0bl9waW5zLHBvc3RfdGNsKSAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBhcnRpdGlvbixhc3NpZ25fcHRuX3BpbnMscmVwbGFjZV90Y2wpICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocGFydGl0aW9uLGFzc2lnbl9wdG5fcGlucyxza2lwKSAgICAgICAgICAgICAgICAgICAgICAgIDx0cnVlIG9yIGZhbHNlPgotIyBzZXQgdmFycyhwYXJ0aXRpb24sY2hlY2tfcGluX2Fzc2lnbm1lbnQscHJlX3RjbCkgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBhcnRpdGlvbixjaGVja19waW5fYXNzaWdubWVudCxwb3N0X3RjbCkgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocGFydGl0aW9uLGNoZWNrX3Bpbl9hc3NpZ25tZW50LHJlcGxhY2VfdGNsKSAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwYXJ0aXRpb24sY2hlY2tfcGluX2Fzc2lnbm1lbnQsc2tpcCkgICAgICAgICAgICAgICAgICAgPHRydWUgb3IgZmFsc2U+Ci0jIHNldCB2YXJzKHBhcnRpdGlvbixyZXBvcnRfdW5hbGlnbmVkX25ldHMscHJlX3RjbCkgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocGFydGl0aW9uLHJlcG9ydF91bmFsaWduZWRfbmV0cyxwb3N0X3RjbCkgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwYXJ0aXRpb24scmVwb3J0X3VuYWxpZ25lZF9uZXRzLHJlcGxhY2VfdGNsKSAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBhcnRpdGlvbixyZXBvcnRfdW5hbGlnbmVkX25ldHMsc2tpcCkgICAgICAgICAgICAgICAgICA8dHJ1ZSBvciBmYWxzZT4KLSMgc2V0IHZhcnMocGFydGl0aW9uLHNldF9wdG5fcGluX3N0YXR1cyxwcmVfdGNsKSAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwYXJ0aXRpb24sc2V0X3B0bl9waW5fc3RhdHVzLHBvc3RfdGNsKSAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBhcnRpdGlvbixzZXRfcHRuX3Bpbl9zdGF0dXMscmVwbGFjZV90Y2wpICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocGFydGl0aW9uLHNldF9wdG5fcGluX3N0YXR1cyxza2lwKSAgICAgICAgICAgICAgICAgICAgIDx0cnVlIG9yIGZhbHNlPgotIyBzZXQgdmFycyhwYXJ0aXRpb24sZGVyaXZlX3RpbWluZ19idWRnZXQscHJlX3RjbCkgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBhcnRpdGlvbixkZXJpdmVfdGltaW5nX2J1ZGdldCxwb3N0X3RjbCkgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocGFydGl0aW9uLGRlcml2ZV90aW1pbmdfYnVkZ2V0LHJlcGxhY2VfdGNsKSAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwYXJ0aXRpb24sZGVyaXZlX3RpbWluZ19idWRnZXQsc2tpcCkgICAgICAgICAgICAgICAgICAgPHRydWUgb3IgZmFsc2U+Ci0jIHNldCB2YXJzKHBhcnRpdGlvbixzYXZlX2J1ZGdldF9kYnMscHJlX3RjbCkgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocGFydGl0aW9uLHNhdmVfYnVkZ2V0X2Ricyxwb3N0X3RjbCkgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwYXJ0aXRpb24sc2F2ZV9idWRnZXRfZGJzLHJlcGxhY2VfdGNsKSAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBhcnRpdGlvbixzYXZlX2J1ZGdldF9kYnMsc2tpcCkgICAgICAgICAgICAgICAgICAgICAgICA8dHJ1ZSBvciBmYWxzZT4KLSMgc2V0IHZhcnMocGFydGl0aW9uLHJ1bl9jbHAscHJlX3RjbCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwYXJ0aXRpb24scnVuX2NscCxwb3N0X3RjbCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBhcnRpdGlvbixydW5fY2xwLHJlcGxhY2VfdGNsKSAgICAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocGFydGl0aW9uLHJ1bl9jbHAsc2tpcCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cnVlIG9yIGZhbHNlPgotIyBzZXQgdmFycyhwYXJ0aXRpb24scGFydGl0aW9uLHByZV90Y2wpICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBhcnRpdGlvbixwYXJ0aXRpb24scG9zdF90Y2wpICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocGFydGl0aW9uLHBhcnRpdGlvbixyZXBsYWNlX3RjbCkgICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwYXJ0aXRpb24scGFydGl0aW9uLHNraXApICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRydWUgb3IgZmFsc2U+Ci0jIHNldCB2YXJzKHBhcnRpdGlvbixzYXZlX3BhcnRpdGlvbixwcmVfdGNsKSAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocGFydGl0aW9uLHNhdmVfcGFydGl0aW9uLHBvc3RfdGNsKSAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwYXJ0aXRpb24sc2F2ZV9wYXJ0aXRpb24scmVwbGFjZV90Y2wpICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBhcnRpdGlvbixzYXZlX3BhcnRpdGlvbixza2lwKSAgICAgICAgICAgICAgICAgICAgICAgICA8dHJ1ZSBvciBmYWxzZT4KLSMgc2V0IHZhcnMocmVidWRnZXQsaW5pdGlhbGl6ZV90aW1pbmcscHJlX3RjbCkgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhyZWJ1ZGdldCxpbml0aWFsaXplX3RpbWluZyxwb3N0X3RjbCkgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHJlYnVkZ2V0LGluaXRpYWxpemVfdGltaW5nLHJlcGxhY2VfdGNsKSAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocmVidWRnZXQsaW5pdGlhbGl6ZV90aW1pbmcsc2tpcCkgICAgICAgICAgICAgICAgICAgICAgIDx0cnVlIG9yIGZhbHNlPgotIyBzZXQgdmFycyhhc3NlbWJsZSxhc3NlbWJsZV9kZXNpZ24scHJlX3RjbCkgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKGFzc2VtYmxlLGFzc2VtYmxlX2Rlc2lnbixwb3N0X3RjbCkgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMoYXNzZW1ibGUsYXNzZW1ibGVfZGVzaWduLHJlcGxhY2VfdGNsKSAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhhc3NlbWJsZSxhc3NlbWJsZV9kZXNpZ24sc2tpcCkgICAgICAgICAgICAgICAgICAgICAgICAgPHRydWUgb3IgZmFsc2U+Ci0jIHNldCB2YXJzKGFzc2VtYmxlLHNwZWNpZnlfaWxtLHByZV90Y2wpICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMoYXNzZW1ibGUsc3BlY2lmeV9pbG0scG9zdF90Y2wpICAgICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhhc3NlbWJsZSxzcGVjaWZ5X2lsbSxyZXBsYWNlX3RjbCkgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKGFzc2VtYmxlLHNwZWNpZnlfaWxtLHNraXApICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHJ1ZSBvciBmYWxzZT4KLSMgc2V0IHZhcnMoYXNzZW1ibGUsbG9hZF9pbG1fbm9uX3NkY19maWxlLHByZV90Y2wpICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhhc3NlbWJsZSxsb2FkX2lsbV9ub25fc2RjX2ZpbGUscG9zdF90Y2wpICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKGFzc2VtYmxlLGxvYWRfaWxtX25vbl9zZGNfZmlsZSxyZXBsYWNlX3RjbCkgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMoYXNzZW1ibGUsbG9hZF9pbG1fbm9uX3NkY19maWxlLHNraXApICAgICAgICAgICAgICAgICAgIDx0cnVlIG9yIGZhbHNlPgotIyBzZXQgdmFycyhhc3NlbWJsZSxsb2FkX2NwZixwcmVfdGNsKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKGFzc2VtYmxlLGxvYWRfY3BmLHBvc3RfdGNsKSAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMoYXNzZW1ibGUsbG9hZF9jcGYscmVwbGFjZV90Y2wpICAgICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhhc3NlbWJsZSxsb2FkX2NwZixza2lwKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRydWUgb3IgZmFsc2U+Ci0jIHNldCB2YXJzKGFzc2VtYmxlLGNvbW1pdF9jcGYscHJlX3RjbCkgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMoYXNzZW1ibGUsY29tbWl0X2NwZixwb3N0X3RjbCkgICAgICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhhc3NlbWJsZSxjb21taXRfY3BmLHJlcGxhY2VfdGNsKSAgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKGFzc2VtYmxlLGNvbW1pdF9jcGYsc2tpcCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHJ1ZSBvciBmYWxzZT4KLSMgc2V0IHZhcnMoYXNzZW1ibGUsaW5pdGlhbGl6ZV90aW1pbmcscHJlX3RjbCkgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhhc3NlbWJsZSxpbml0aWFsaXplX3RpbWluZyxwb3N0X3RjbCkgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKGFzc2VtYmxlLGluaXRpYWxpemVfdGltaW5nLHJlcGxhY2VfdGNsKSAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMoYXNzZW1ibGUsaW5pdGlhbGl6ZV90aW1pbmcsc2tpcCkgICAgICAgICAgICAgICAgICAgICAgIDx0cnVlIG9yIGZhbHNlPgotIyBzZXQgdmFycyhhc3NlbWJsZSx1cGRhdGVfdGltaW5nLHByZV90Y2wpICAgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKGFzc2VtYmxlLHVwZGF0ZV90aW1pbmcscG9zdF90Y2wpICAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMoYXNzZW1ibGUsdXBkYXRlX3RpbWluZyxyZXBsYWNlX3RjbCkgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhhc3NlbWJsZSx1cGRhdGVfdGltaW5nLHNraXApICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRydWUgb3IgZmFsc2U+Ci0jIHNldCB2YXJzKGFzc2VtYmxlLHByZV9wYWNfdmVyaWZ5X2Nvbm5lY3Rpdml0eSxwcmVfdGNsKSAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMoYXNzZW1ibGUscHJlX3BhY192ZXJpZnlfY29ubmVjdGl2aXR5LHBvc3RfdGNsKSAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhhc3NlbWJsZSxwcmVfcGFjX3ZlcmlmeV9jb25uZWN0aXZpdHkscmVwbGFjZV90Y2wpICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKGFzc2VtYmxlLHByZV9wYWNfdmVyaWZ5X2Nvbm5lY3Rpdml0eSxza2lwKSAgICAgICAgICAgICA8dHJ1ZSBvciBmYWxzZT4KLSMgc2V0IHZhcnMoYXNzZW1ibGUscHJlX3BhY192ZXJpZnlfZ2VvbWV0cnkscHJlX3RjbCkgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhhc3NlbWJsZSxwcmVfcGFjX3ZlcmlmeV9nZW9tZXRyeSxwb3N0X3RjbCkgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKGFzc2VtYmxlLHByZV9wYWNfdmVyaWZ5X2dlb21ldHJ5LHJlcGxhY2VfdGNsKSAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMoYXNzZW1ibGUscHJlX3BhY192ZXJpZnlfZ2VvbWV0cnksc2tpcCkgICAgICAgICAgICAgICAgIDx0cnVlIG9yIGZhbHNlPgotIyBzZXQgdmFycyhhc3NlbWJsZSxzZXRfbW9kdWxlX3ZpZXcscHJlX3RjbCkgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKGFzc2VtYmxlLHNldF9tb2R1bGVfdmlldyxwb3N0X3RjbCkgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMoYXNzZW1ibGUsc2V0X21vZHVsZV92aWV3LHJlcGxhY2VfdGNsKSAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhhc3NlbWJsZSxzZXRfbW9kdWxlX3ZpZXcsc2tpcCkgICAgICAgICAgICAgICAgICAgICAgICAgPHRydWUgb3IgZmFsc2U+Ci0jIHNldCB2YXJzKGFzc2VtYmxlLGRlbGV0ZV9maWxsZXJfY2VsbHMscHJlX3RjbCkgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMoYXNzZW1ibGUsZGVsZXRlX2ZpbGxlcl9jZWxscyxwb3N0X3RjbCkgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhhc3NlbWJsZSxkZWxldGVfZmlsbGVyX2NlbGxzLHJlcGxhY2VfdGNsKSAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKGFzc2VtYmxlLGRlbGV0ZV9maWxsZXJfY2VsbHMsc2tpcCkgICAgICAgICAgICAgICAgICAgICA8dHJ1ZSBvciBmYWxzZT4KLSMgc2V0IHZhcnMoYXNzZW1ibGUsb3B0X2Rlc2lnbixwcmVfdGNsKSAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhhc3NlbWJsZSxvcHRfZGVzaWduLHBvc3RfdGNsKSAgICAgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKGFzc2VtYmxlLG9wdF9kZXNpZ24scmVwbGFjZV90Y2wpICAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMoYXNzZW1ibGUsb3B0X2Rlc2lnbixza2lwKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cnVlIG9yIGZhbHNlPgotIyBzZXQgdmFycyhhc3NlbWJsZSxhZGRfZmlsbGVyX2NlbGxzLHByZV90Y2wpICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKGFzc2VtYmxlLGFkZF9maWxsZXJfY2VsbHMscG9zdF90Y2wpICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMoYXNzZW1ibGUsYWRkX2ZpbGxlcl9jZWxscyxyZXBsYWNlX3RjbCkgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhhc3NlbWJsZSxhZGRfZmlsbGVyX2NlbGxzLHNraXApICAgICAgICAgICAgICAgICAgICAgICAgPHRydWUgb3IgZmFsc2U+Ci0jIHNldCB2YXJzKGFzc2VtYmxlLHBvc3RfcGFjX3ZlcmlmeV9jb25uZWN0aXZpdHkscHJlX3RjbCkgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMoYXNzZW1ibGUscG9zdF9wYWNfdmVyaWZ5X2Nvbm5lY3Rpdml0eSxwb3N0X3RjbCkgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhhc3NlbWJsZSxwb3N0X3BhY192ZXJpZnlfY29ubmVjdGl2aXR5LHJlcGxhY2VfdGNsKSAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKGFzc2VtYmxlLHBvc3RfcGFjX3ZlcmlmeV9jb25uZWN0aXZpdHksc2tpcCkgICAgICAgICAgICA8dHJ1ZSBvciBmYWxzZT4KLSMgc2V0IHZhcnMoYXNzZW1ibGUscG9zdF9wYWNfdmVyaWZ5X2dlb21ldHJ5LHByZV90Y2wpICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhhc3NlbWJsZSxwb3N0X3BhY192ZXJpZnlfZ2VvbWV0cnkscG9zdF90Y2wpICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKGFzc2VtYmxlLHBvc3RfcGFjX3ZlcmlmeV9nZW9tZXRyeSxyZXBsYWNlX3RjbCkgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMoYXNzZW1ibGUscG9zdF9wYWNfdmVyaWZ5X2dlb21ldHJ5LHNraXApICAgICAgICAgICAgICAgIDx0cnVlIG9yIGZhbHNlPgotIyBzZXQgdmFycyhmbGV4aWxtLGNsZWFyX2FjdGl2ZV9sb2dpY192aWV3LHByZV90Y2wpICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKGZsZXhpbG0sY2xlYXJfYWN0aXZlX2xvZ2ljX3ZpZXcscG9zdF90Y2wpICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMoZmxleGlsbSxjbGVhcl9hY3RpdmVfbG9naWNfdmlldyxyZXBsYWNlX3RjbCkgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhmbGV4aWxtLGNsZWFyX2FjdGl2ZV9sb2dpY192aWV3LHNraXApICAgICAgICAgICAgICAgICAgPHRydWUgb3IgZmFsc2U+Ci0jIHNldCB2YXJzKGZsZXhpbG0sY29tbWl0X21vZHVsZV9tb2RlbCxwcmVfdGNsKSAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMoZmxleGlsbSxjb21taXRfbW9kdWxlX21vZGVsLHBvc3RfdGNsKSAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhmbGV4aWxtLGNvbW1pdF9tb2R1bGVfbW9kZWwscmVwbGFjZV90Y2wpICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKGZsZXhpbG0sY29tbWl0X21vZHVsZV9tb2RlbCxza2lwKSAgICAgICAgICAgICAgICAgICAgICA8dHJ1ZSBvciBmYWxzZT4KLSMgc2V0IHZhcnMoZmxleGlsbSxjcmVhdGVfYWN0aXZlX2xvZ2ljX3ZpZXcscHJlX3RjbCkgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhmbGV4aWxtLGNyZWF0ZV9hY3RpdmVfbG9naWNfdmlldyxwb3N0X3RjbCkgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKGZsZXhpbG0sY3JlYXRlX2FjdGl2ZV9sb2dpY192aWV3LHJlcGxhY2VfdGNsKSAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMoZmxleGlsbSxjcmVhdGVfYWN0aXZlX2xvZ2ljX3ZpZXcsc2tpcCkgICAgICAgICAgICAgICAgIDx0cnVlIG9yIGZhbHNlPgotIyBzZXQgdmFycyhmbGV4aWxtLGdldF9tb2R1bGVfdmlldyxwcmVfdGNsKSAgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKGZsZXhpbG0sZ2V0X21vZHVsZV92aWV3LHBvc3RfdGNsKSAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMoZmxleGlsbSxnZXRfbW9kdWxlX3ZpZXcscmVwbGFjZV90Y2wpICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhmbGV4aWxtLGdldF9tb2R1bGVfdmlldyxza2lwKSAgICAgICAgICAgICAgICAgICAgICAgICAgPHRydWUgb3IgZmFsc2U+Ci0jIHNldCB2YXJzKGZsZXhpbG0scmVwb3J0X3Jlc291cmNlLHByZV90Y2wpICAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMoZmxleGlsbSxyZXBvcnRfcmVzb3VyY2UscG9zdF90Y2wpICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhmbGV4aWxtLHJlcG9ydF9yZXNvdXJjZSxyZXBsYWNlX3RjbCkgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKGZsZXhpbG0scmVwb3J0X3Jlc291cmNlLHNraXApICAgICAgICAgICAgICAgICAgICAgICAgICA8dHJ1ZSBvciBmYWxzZT4KLSMgc2V0IHZhcnMoZmxleGlsbSxyZXN0b3JlX2Rlc2lnbixwcmVfdGNsKSAgICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhmbGV4aWxtLHJlc3RvcmVfZGVzaWduLHBvc3RfdGNsKSAgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKGZsZXhpbG0scmVzdG9yZV9kZXNpZ24scmVwbGFjZV90Y2wpICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMoZmxleGlsbSxyZXN0b3JlX2Rlc2lnbixza2lwKSAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cnVlIG9yIGZhbHNlPgotIyBzZXQgdmFycyhmbGV4aWxtLHNhdmVfZGJzLHByZV90Y2wpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKGZsZXhpbG0sc2F2ZV9kYnMscG9zdF90Y2wpICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMoZmxleGlsbSxzYXZlX2RicyxyZXBsYWNlX3RjbCkgICAgICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhmbGV4aWxtLHNhdmVfZGJzLHNraXApICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRydWUgb3IgZmFsc2U+Ci0jIHNldCB2YXJzKGZsZXhpbG0sc2V0X2hpZXJfbW9kZSxwcmVfdGNsKSAgICAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMoZmxleGlsbSxzZXRfaGllcl9tb2RlLHBvc3RfdGNsKSAgICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhmbGV4aWxtLHNldF9oaWVyX21vZGUscmVwbGFjZV90Y2wpICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKGZsZXhpbG0sc2V0X2hpZXJfbW9kZSxza2lwKSAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHJ1ZSBvciBmYWxzZT4KLSMgc2V0IHZhcnMoZmxleGlsbSxzZXRfbW9kdWxlX21vZGVsLHByZV90Y2wpICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhmbGV4aWxtLHNldF9tb2R1bGVfbW9kZWwscG9zdF90Y2wpICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKGZsZXhpbG0sc2V0X21vZHVsZV9tb2RlbCxyZXBsYWNlX3RjbCkgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMoZmxleGlsbSxzZXRfbW9kdWxlX21vZGVsLHNraXApICAgICAgICAgICAgICAgICAgICAgICAgIDx0cnVlIG9yIGZhbHNlPgotIyBzZXQgdmFycyhmbGV4aWxtLHVwZGF0ZV9wYXJ0aXRpb24scHJlX3RjbCkgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKGZsZXhpbG0sdXBkYXRlX3BhcnRpdGlvbixwb3N0X3RjbCkgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMoZmxleGlsbSx1cGRhdGVfcGFydGl0aW9uLHJlcGxhY2VfdGNsKSAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhmbGV4aWxtLHVwZGF0ZV9wYXJ0aXRpb24sc2tpcCkgICAgICAgICAgICAgICAgICAgICAgICAgPHRydWUgb3IgZmFsc2U+Ci0KZGlmZiAtLWdpdCBhL2Zsb3cvcG5yL1RFTVBMQVRFUy9JTk5PVlVTL2lubm92dXNfY29uZmlnLnRjbCBiL2Zsb3cvcG5yL1RFTVBMQVRFUy9JTk5PVlVTL2lubm92dXNfY29uZmlnLnRjbApkZWxldGVkIGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggNTM1NWUyNi4uMDAwMDAwMAotLS0gYS9mbG93L3Buci9URU1QTEFURVMvSU5OT1ZVUy9pbm5vdnVzX2NvbmZpZy50Y2wKKysrIC9kZXYvbnVsbApAQCAtMSwzODggKzAsMCBAQAotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotIyAgICAgICAgICAgICAgICAgICAgICAgQ0FERU5DRSBDT1BZUklHSFQgTk9USUNFCi0jICAgICAgICAgqSAyMDA4LTIwMTMgQ2FkZW5jZSBEZXNpZ24gU3lzdGVtcywgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIwotIyBUaGlzIEZvdW5kYXRpb24gRmxvdyBpcyBwcm92aWRlZCBhcyBhbiBleGFtcGxlIG9mIGhvdyB0byBwZXJmb3JtIHNwZWNpYWxpemVkCi0jIHRhc2tzLgotIwotIyBUaGlzIHdvcmsgbWF5IG5vdCBiZSBjb3BpZWQsIHJlLXB1Ymxpc2hlZCwgdXBsb2FkZWQsIG9yIGRpc3RyaWJ1dGVkIGluIGFueSB3YXksCi0jIGluIGFueSBtZWRpdW0sIHdoZXRoZXIgaW4gd2hvbGUgb3IgaW4gcGFydCwgd2l0aG91dCBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24KLSMgZnJvbSBDYWRlbmNlLiBOb3R3aXRoc3RhbmRpbmcgYW55IHJlc3RyaWN0aW9ucyBoZXJlaW4sIHN1YmplY3QgdG8gY29tcGxpYW5jZQotIyB3aXRoIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB0aGUgQ2FkZW5jZSBzb2Z0d2FyZSBsaWNlbnNlIGFncmVlbWVudCB1bmRlcgotIyB3aGljaCB0aGlzIG1hdGVyaWFsIHdhcyBwcm92aWRlZCwgdGhpcyBtYXRlcmlhbCBtYXkgYmUgY29waWVkIGFuZCBpbnRlcm5hbGx5Ci0jIGRpc3RyaWJ1dGVkIHNvbGVseSBmb3IgaW50ZXJuYWwgcHVycG9zZXMgZm9yIHVzZSB3aXRoIENhZGVuY2UgdG9vbHMuCi0jCi0jIFRoaXMgd29yayBpcyBDYWRlbmNlIGludGVsbGVjdHVhbCBwcm9wZXJ0eSBhbmQgbWF5IHVuZGVyIG5vIGNpcmN1bXN0YW5jZXMgYmUKLSMgZ2l2ZW4gdG8gdGhpcmQgcGFydGllcywgbmVpdGhlciBpbiBvcmlnaW5hbCBub3IgaW4gbW9kaWZpZWQgdmVyc2lvbnMsIHdpdGhvdXQKLSMgZXhwbGljaXQgd3JpdHRlbiBwZXJtaXNzaW9uIGZyb20gQ2FkZW5jZS4gVGhlIGluZm9ybWF0aW9uIGNvbnRhaW5lZCBoZXJlaW4gaXMKLSMgdGhlIHByb3ByaWV0YXJ5IGFuZCBjb25maWRlbnRpYWwgaW5mb3JtYXRpb24gb2YgQ2FkZW5jZSBvciBpdHMgbGljZW5zb3JzLCBhbmQKLSMgaXMgc3VwcGxpZWQgc3ViamVjdCB0bywgYW5kIG1heSBiZSB1c2VkIG9ubHkgYnkgQ2FkZW5jZSdzIGN1cnJlbnQgY3VzdG9tZXJzCi0jIGluIGFjY29yZGFuY2Ugd2l0aCwgYSBwcmV2aW91c2x5IGV4ZWN1dGVkIGxpY2Vuc2UgYWdyZWVtZW50IGJldHdlZW4gQ2FkZW5jZQotIyBhbmQgaXRzIGN1c3RvbWVyLgotIwotIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIyBUSElTIE1BVEVSSUFMIElTIFBST1ZJREVEIEJZIENBREVOQ0UgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRAotIyBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRgotIyBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELgotIyBJTiBOTyBFVkVOVCBTSEFMTCBDQURFTkNFIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwKLSMgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwKLSMgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SCi0jIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgIE1BVEVSSUFMLCBFVkVOIElGCi0jIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSMgICAgICAgICAgICAgICAgICAgICAgICBJTk5PVlVTIEZPVU5EQVRJT04gRkxPVwotIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0jIFRoaXMgaXMgdGhlIElubm92dXMgZm91bmRhdGlvbiBmbG93IGNvbmZpZ3VyYXRpb24gZmlsZS4gIEl0IGNvbnRhaW5zIGFsbCB0aGUgbmVjZXNzYXJ5IGZsb3cKLSMgb3B0aW9ucyB0byBkcml2ZSB0aGUgQ0ROUyBmbGF0IGFuZC9vciBoaWVyIGltcGxlbWVudGF0aW9uIGZsb3dzLiBGb3IgbG93IHBvd2VyIGZsb3csCi0jIGFuIGFkZGl0aW9uIGxvdyBwb3dlciBjb25maWd1cmF0aW9uIGZpbGUgKGxwX2NvbmZpZy50Y2wpIGlzIGFsc28gcmVxdWlyZWQgaWYgcG93ZXIKLSMgZG9tYWluIHNwZWNpZmljIGluZm9ybWF0aW9uIG5lZWRzIHRvIGJlIGRlZmluZWQuCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSMgT3B0aW9uYWxseSBkZWZpbmUgdGhlIGZvbGxvd2luZyB3aGVuIGFwcGxpY2FibGUKLSMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSNzZXQgdmFycyhhc3NpZ25fYnVmZmVyKSAgICAgICAgICAgICAgICAgIHsxIC1idWZmZXIgPGJ1ZmZlciBuYW1lPn0iCi0jc2V0IHZhcnMoYnVmZmVyX3RpZV9hc3NpZ24pICAgICAgICAgICAgICA8dHJ1ZSB8IGZhbHNlPgotI3NldCB2YXJzKGRvbnRfdXNlX2xpc3QpICAgICAgICAgICAgICAgICAgPGxpc3Q+Ci0jc2V0IHZhcnMoZGVsYXlfY2VsbHMpICAgICAgICAgICAgICAgICAgICA8bGlzdD4KLSNzZXQgdmFycyh0aWVfY2VsbHMpICAgICAgICAgICAgICAgICAgICAgIDxsaXN0PgotI3NldCB2YXJzKHRpZV9jZWxscyxtYXhfZGlzdGFuY2UpICAgICAgICAgPGZsb2F0PgotI3NldCB2YXJzKHRpZV9jZWxscyxtYXhfZmFub3V0KSAgICAgICAgICAgPGludGVnZXI+Ci0jc2V0IHZhcnMoc2tld19idWZmZXJzKSAgICAgICAgICAgICAgICAgICA8bGlzdD4KLSNzZXQgdmFycyhmaWxsZXJfY2VsbHMpICAgICAgICAgICAgICAgICAgIDxsaXN0PgotI3NldCB2YXJzKGNsb2NrX2dhdGVfY2VsbHMpICAgICAgICAgICAgICAgPGxpc3Q+Ci0jc2V0IHZhcnMoanRhZ19jZWxscykgICAgICAgICAgICAgICAgICAgICA8bGlzdD4KLSNzZXQgdmFycyhqdGFnX3Jvd3MpICAgICAgICAgICAgICAgICAgICAgIDxpbnRlZ2VyPgotI3NldCB2YXJzKHNwYXJlX2NlbGxzKSAgICAgICAgICAgICAgICAgICAgPGxpc3Q+Ci0jc2V0IHZhcnMoZW5hYmxlX29jdikgICAgICAgICAgICAgICAgICAgICA8c3RyaW5nPgotI3NldCB2YXJzKGVuYWJsZV9jcHByKSAgICAgICAgICAgICAgICAgICAgPHN0cmluZz4KLSNzZXQgdmFycyhwbGFjZV9pb19waW5zKSAgICAgICAgICAgICAgICAgIDxib29sZWFuPiAKLSNzZXQgdmFycyhjbG9ja19nYXRlX2F3YXJlKSAgICAgICAgICAgICAgIDxib29sZWFuPgotI3NldCB2YXJzKGNsb2NrX2dhdGVfY2xvbmUpICAgICAgICAgICAgICAgPGJvb2xlYW4+Ci0jc2V0IHZhcnMoY2xvY2tfZWNvKSAgICAgICAgICAgICAgICAgICAgICA8cG9zdGN0cyB8IHBvc3Ryb3V0ZSB8IGJvdGg+Ci0jc2V0IHZhcnMoZmxvd19lZmZvcnQpICAgICAgICAgICAgICAgICAgICA8ZXhwcmVzcyB8IHN0YW5kYXJkIHwgZXh0cmVtZT4KLSNzZXQgdmFycyhjb25nZXN0aW9uX2VmZm9ydCkgICAgICAgICAgICAgIDxsb3cgfCBtZWRpdW0gfCBoaWdoPgotI3NldCB2YXJzKHBvd2VyX2VmZm9ydCkgICAgICAgICAgICAgICAgICAgPG5vbmUgfCBsb3cgfCBoaWdoPgotI3NldCB2YXJzKHVzZWZ1bF9za2V3KSAgICAgICAgICAgICAgICAgICAgPGJvb2xlYW4+Ci0jc2V0IHZhcnMocHJlc2VydmVfYXNzZXJ0aW9ucykgICAgICAgICAgICA8Ym9vbGVhbj4KLSNzZXQgdmFycyhhbGxfZW5kX3BvaW50cykgICAgICAgICAgICAgICAgIDxib29sZWFuPgotI3NldCB2YXJzKHNpemVfb25seV9maWxlKSAgICAgICAgICAgICAgICAgPGZpbGU+IAotI3NldCB2YXJzKGZpeF9mYW5vdXRfbG9hZCkgICAgICAgICAgICAgICAgPGJvb2xlYW4+Ci0jc2V0IHZhcnMocnVuX2N0cykgICAgICAgICAgICAgICAgICAgICAgICA8Ym9vbGVhbj4KLSNzZXQgdmFycyhjdHNfZW5naW5lKSAgICAgICAgICAgICAgICAgICAgIDxjdHMgfCBjY29wdCB8IGNjb3B0X2N0cz4gCi0jc2V0IHZhcnMoY3RzX2NlbGxfbGlzdCkgICAgICAgICAgICAgICAgICA8bGlzdCBvZiBidWZmZXJzL2ludmVydGVycz4KLSNzZXQgdmFycyhjdHNfYnVmZmVyX2NlbGxzKSAgICAgICAgICAgICAgIDxsaXN0IG9mIGJ1ZmZlcnM+Ci0jc2V0IHZhcnMoY3RzX2ludmVydGVyX2NlbGxzKSAgICAgICAgICAgICA8bGlzdCBvZiBpbnZlcnRlcz4KLSNzZXQgdmFycyhjdHNfdXNlX2ludmVydGVycykgICAgICAgICAgICAgIDxib29sZWFuPgotI3NldCB2YXJzKGN0c19lZmZvcnQpICAgICAgICAgICAgICAgICAgICAgPGxvdyB8IG1lZGl1bSB8IGhpZ2g+Ci0jc2V0IHZhcnMoY3RzX2lvX29wdCkgICAgICAgICAgICAgICAgICAgICA8Ym9vbGVhbj4KLSNzZXQgdmFycyhjbGtfdHJlZV90b3BfbGF5ZXIpICAgICAgICAgICAgIDxpbnRlZ2VyPgotI3NldCB2YXJzKGNsa19sZWFmX3RvcF9sYXllcikgICAgICAgICAgICAgPGludGVnZXI+Ci0jc2V0IHZhcnMoY2xrX3RyZWVfYm90dG9tX2xheWVyKSAgICAgICAgICA8aW50ZWdlcj4KLSNzZXQgdmFycyhjbGtfbGVhZl9ib3R0b21fbGF5ZXIpICAgICAgICAgIDxpbnRlZ2VyPgotI3NldCB2YXJzKGNsa190cmVlX25kcikgICAgICAgICAgICAgICAgICAgPHZhbGlkIG5vbi1kZWZhdWx0IHJ1bGU+Ci0jc2V0IHZhcnMoY2xrX3RyZWVfZXh0cmFfc3BhY2UpICAgICAgICAgICA8aW50ZWdlcj4KLSNzZXQgdmFycyhjbGtfbGVhZl9uZHIpICAgICAgICAgICAgICAgICAgIDx2YWxpZCBub24tZGVmYXVsdCBydWxlPgotI3NldCB2YXJzKGNsa19sZWFmX2V4dHJhX3NwYWNlKSAgICAgICAgICAgPGludGVnZXI+Ci0jc2V0IHZhcnMocm91dGVfY2xvY2tfbmV0cykgICAgICAgICAgICAgICA8Ym9vbGVhbj4KLSNzZXQgdmFycyhwb3N0Y3RzX3NldHVwX2hvbGQpICAgICAgICAgICAgIDx0cnVlIG9yIGZhbHNlPgotI3NldCB2YXJzKGZpeF9ob2xkKSAgICAgICAgICAgICAgICAgICAgICAgPGJvb2xlYW4+Ci0jc2V0IHZhcnMoZml4X2hvbGRfaWdub3JlX2lvcykgICAgICAgICAgICA8Ym9vbGVhbj4KLSNzZXQgdmFycyhmaXhfaG9sZF9hbGxvd190bnNfZGVncmFkYXRpb24pIDxib29sZWFuPgotI3NldCB2YXJzKG11bHRpX2N1dF9lZmZvcnQpICAgICAgICAgICAgICAgPGxvdyB8IG1lZGl1bSB8IGhpZ2g+Ci0jc2V0IHZhcnMobGl0aG9fZHJpdmVuX3JvdXRpbmcpICAgICAgICAgICA8Ym9vbGVhbj4KLSNzZXQgdmFycyh2ZXJpZnlfbGl0aG8pICAgICAgICAgICAgICAgICAgIDxib29sZWFuPgotI3NldCB2YXJzKGxwYV90ZWNoX2ZpbGUpICAgICAgICAgICAgICAgICAgPGZpbGUgbmFtZT4KLSNzZXQgdmFycyhwb3N0cm91dGVfc3ByZWFkX3dpcmVzKSAgICAgICAgIDx0cnVlIHwgZmFsc2U+Ci0jc2V0IHZhcnModHJhY2tfb3B0KSAgICAgICAgICAgICAgICAgICAgICA8dHJ1ZSBvciBmYWxzZT4KLSNzZXQgdmFycyhwb3N0cm91dGVfZXh0cmFjdGlvbl9lZmZvcnQpICAgIDxsb3cgfCBtZWRpdW0gfCBoaWdoPgotI3NldCB2YXJzKHBvc3Ryb3V0ZV9zZXR1cF9ob2xkKSAgICAgICAgICAgPHRydWUgb3IgZmFsc2U+Ci0jc2V0IHZhcnMoc2lnbm9mZl9leHRyYWN0aW9uX2VmZm9ydCkgICAgICA8bG93IHwgbWVkaXVtIHwgaGlnaD4KLSNzZXQgdmFycyhzaV9hbmFseXNpc190eXBlKSAgICAgICAgICAgICAgIDxkZWZhdWx0IHwgcGVzc2ltaXN0aWM+Ci0jc2V0IHZhcnMoYWNjZXB0YWJsZV93bnMpICAgICAgICAgICAgICAgICA8c3RyaW5nPgotI3NldCB2YXJzKHJlcG9ydF9wb3dlcikgICAgICAgICAgICAgICAgICAgPHRydWUgb3IgZmFsc2U+Ci0jc2V0IHZhcnMocmVwb3J0X3J1bl90aW1lKSAgICAgICAgICAgICAgICA8dHJ1ZSBvciBmYWxzZT4KLSNzZXQgdmFycyhzYXZlX3JjKSAgICAgICAgICAgICAgICAgICAgICAgIDx0cnVlIG9mIGZhbHNlPgotI3NldCB2YXJzKHNhdmVfY29uc3RyYWludHMpICAgICAgICAgICAgICAgPHRydWUgb2YgZmFsc2U+Ci0jc2V0IHZhcnMoYWJzb2x1dGVfbGliX3BhdGgpICAgICAgICAgICAgICA8dHJ1ZSBvZiBmYWxzZT4KLSNzZXQgdmFycyhyZWxhdGl2ZV9wYXRoKSAgICAgICAgICAgICAgICAgIDx0cnVlIG9mIGZhbHNlPgotI3NldCB2YXJzKHRpbWVfZGVzaWduX29wdGlvbnMsc2V0dXApICAgICAgImxpc3Qgb2YgdmFsaWQgdGltZURlc2lnbiBvcHRpb25zIEVYQ0xVRElORyAtcHJlQ1RTL3Bvc3RDVFMvcG9zdFJvdXRlIC1wcmVmaXggYW5kIC1vdXREaXIiCi0jc2V0IHZhcnModGltZV9kZXNpZ25fb3B0aW9ucyxob2xkKSAgICAgICAibGlzdCBvZiB2YWxpZCB0aW1lRGVzaWduIG9wdGlvbnMgRVhDTFVESU5HIC1wcmVDVFMvcG9zdENUUy9wb3N0Um91dGUgLXByZWZpeCBhbmQgLW91dERpciIKLSMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSMgIEZvciBoaWVyYXJjaGljYWwgZmxvd3MgLi4uCi0jc2V0IHZhcnMoaW5zZXJ0X2ZlZWR0aHJvdWdoKSAgICAgICAgICAgICAgPHRydWUgb2YgZmFsc2U+Ci0jc2V0IHZhcnMocGxhY2VtZW50X2Jhc2VkX3B0bikgICAgICAgICAgICAgPHRydWUgb2YgZmFsc2U+Ci0jc2V0IHZhcnModXNlX2ZsZXhtb2RlbHMpICAgICAgICAgICAgICAgICAgPHRydWUgb2YgZmFsc2U+Ci0jc2V0IHZhcnModXNlX3Byb3RvX25ldF9kZWxheV9tb2RlbCkgICAgICAgPHRydWUgb2YgZmFsc2U+Ci0jc2V0IHZhcnMoYnVkZ2V0X21vZGUpICAgICAgICAgICAgICAgICAgICAgInRyaWFsX2lwbyBwcm90b19uZXRfZGVsYXlfbW9kZWwgZ2lnYV9vcHQiCi0jc2V0IHZhcnMoZmxleG1vZGVsX2FzX3B0bikgICAgICAgICAgICAgICAgPHRydWUgb2YgZmFsc2U+Ci0jc2V0IHZhcnMoZmxleG1vZGVsX2FydF9iYXNlZCkgICAgICAgICAgICAgPHRydWUgb2YgZmFsc2U+Ci0KLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSMgQmVsb3cgYXJlIHRoZSBhdmFpbGFibGUgcGx1Zy1pbnMgZm9yIHRoZSBmbGF0IGZvdW5kYXRpb24gZmxvdy4gIEVhY2ggCi0jIHNob3VsZCBwb2ludCB0byBhIGZpbGUuIElmIHRoZSBmaWxlIGRvZXNuJ3QgZXhpc3QsIHRoZSBmbG93IHdpbGwgcHJpbnQKLSMgYSB3YXJuaW5nIGFuIGNvbnRpbnVlLiAgVGhlIHBsYWNlX3RjbCBhbmQgY3RzX3RjbCBhcmUgdW5pcXVlIGluIHRoYXQgCi0jIHRoZXkgUkVQTEFDRSB0aGUgcGxhY2VEZXNpZ24gYW5kIGNsb2NrRGVzaWduIGNhbGxzLCByZXNwZWN0aXZlbHkuCi0jIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0jc2V0IHZhcnMoYWx3YXlzX3NvdXJjZV90Y2wpICAgICAgICAgICAgICA8ZmlsZT4KLSNzZXQgdmFycyhmaW5hbF9hbHdheXNfc291cmNlX3RjbCkgICAgICAgIDxmaWxlPgotI3NldCB2YXJzKHByZV9pbml0X3RjbCkgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jc2V0IHZhcnMocG9zdF9pbml0X3RjbCkgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSNzZXQgdmFycyhwcmVfcGxhY2VfdGNsKSAgICAgICAgICAgICAgICAgIDxmaWxlPgotI3NldCB2YXJzKHBsYWNlX3RjbCkgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jc2V0IHZhcnMocG9zdF9wbGFjZV90Y2wpICAgICAgICAgICAgICAgICA8ZmlsZT4KLSNzZXQgdmFycyhwcmVfcHJlY3RzX3RjbCkgICAgICAgICAgICAgICAgIDxmaWxlPgotI3NldCB2YXJzKHBvc3RfcHJlY3RzX3RjbCkgICAgICAgICAgICAgICAgPGZpbGU+Ci0jc2V0IHZhcnMocHJlX2N0c190Y2wpICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSNzZXQgdmFycyhjdHNfdGNsKSAgICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotI3NldCB2YXJzKHBvc3RfY3RzX3RjbCkgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jc2V0IHZhcnMocHJlX3Bvc3RjdHNfdGNsKSAgICAgICAgICAgICAgICA8ZmlsZT4KLSNzZXQgdmFycyhwb3N0X3Bvc3RjdHNfdGNsKSAgICAgICAgICAgICAgIDxmaWxlPgotI3NldCB2YXJzKHByZV9wb3N0Y3RzX2hvbGRfdGNsKSAgICAgICAgICAgPGZpbGU+Ci0jc2V0IHZhcnMocG9zdF9wb3N0Y3RzX2hvbGRfdGNsKSAgICAgICAgICA8ZmlsZT4KLSNzZXQgdmFycyhwcmVfcm91dGVfdGNsKSAgICAgICAgICAgICAgICAgIDxmaWxlPgotI3NldCB2YXJzKHBvc3Rfcm91dGVfdGNsKSAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jc2V0IHZhcnMocHJlX3Bvc3Ryb3V0ZV90Y2wpICAgICAgICAgICAgICA8ZmlsZT4KLSNzZXQgdmFycyhwb3N0X3Bvc3Ryb3V0ZV90Y2wpICAgICAgICAgICAgIDxmaWxlPgotI3NldCB2YXJzKHByZV9wb3N0cm91dGVfaG9sZF90Y2wpICAgICAgICAgPGZpbGU+Ci0jc2V0IHZhcnMocG9zdF9wb3N0cm91dGVfaG9sZF90Y2wpICAgICAgICA8ZmlsZT4KLSNzZXQgdmFycyhwcmVfcG9zdHJvdXRlX3NpX3RjbCkgICAgICAgICAgIDxmaWxlPgotI3NldCB2YXJzKHBvc3RfcG9zdHJvdXRlX3NpX3RjbCkgICAgICAgICAgPGZpbGU+Ci0jc2V0IHZhcnMocHJlX3Bvc3Ryb3V0ZV9zaV9ob2xkX3RjbCkgICAgICA8ZmlsZT4KLSNzZXQgdmFycyhwb3N0X3Bvc3Ryb3V0ZV9zaV9ob2xkX3RjbCkgICAgIDxmaWxlPgotI3NldCB2YXJzKHByZV9zaWdub2ZmX3RjbCkgICAgICAgICAgICAgICAgPGZpbGU+Ci0jc2V0IHZhcnMocG9zdF9zaWdub2ZmX3RjbCkgICAgICAgICAgICAgICA8ZmlsZT4KLSMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSMgQmVsb3cgYXJlIHRoZSBwbHVnLWlucyBhdmFpbGFibGUgZm9yIHRoZSBoaWVyYXJoaWNhbCBmbG93IC4uLiBub3RlCi0jIHRoZSBhZGRpdGlvbmFsIHBsdWctaW5zIGZvciB0aGUgcGFydGl0aW9uIGFuZCBhc3NlbWJsZSBzdGVwcy4gIAotIyBLZWVwIGluIG1pbmQgCi0jICAgIC0gVGhlIHBhcnRpdGlvbmluZyBzdGVwIHdpbGwgYWxzbyBsb2FkIHRoZSBwcmUvcG9zdCBpbml0Ci0jICAgICAgYW5kIHByZS9wb3N0IHBsYWNlIHBsdWctaW5zLgotIyAgICAtIFRoZSBhc3NlbWJsZSBzdGVwIHdpbGwgYWxzbyBsb2FkIHRoZSBwcmUvcG9zdCBzaWdub2ZmCi0jICAgICAgcGx1Zy1pbnMgYXMgd2VsbC4gIAotIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotI3NldCB2YXJzKGFsd2F5c19zb3VyY2VfdGNsKSAgICAgICAgICAgICAgPGZpbGU+Ci0jc2V0IHZhcnMoZmluYWxfYWx3YXlzX3NvdXJjZV90Y2wpICAgICAgICA8ZmlsZT4KLSNzZXQgdmFycyhwcmVfaW5pdF90Y2wpICAgICAgICAgICAgICAgICAgIDxmaWxlPgotI3NldCB2YXJzKHBvc3RfaW5pdF90Y2wpICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jc2V0IHZhcnMocHJlX3BsYWNlX3RjbCkgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSNzZXQgdmFycyhwbGFjZV90Y2wpICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotI3NldCB2YXJzKHBvc3RfcGxhY2VfdGNsKSAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jc2V0IHZhcnMocHJlX3Bpbl9hc3NpZ25fdGNsKSAgICAgICAgICAgICA8ZmlsZT4gCi0jc2V0IHZhcnMocG9zdF9waW5fYXNzaWduX3RjbCkgICAgICAgICAgICA8ZmlsZT4gCi0jc2V0IHZhcnMocHJlX3BhcnRpdGlvbl90Y2wpICAgICAgICAgICAgICA8ZmlsZT4gCi0jc2V0IHZhcnMocG9zdF9wYXJ0aXRpb25fdGNsKSAgICAgICAgICAgICA8ZmlsZT4gCi0jc2V0IHZhcnMocHJlX2Fzc2VtYmxlX3RjbCkgICAgICAgICAgICAgICA8ZmlsZT4gCi0jc2V0IHZhcnMocG9zdF9hc3NlbWJsZV90Y2wpICAgICAgICAgICAgICA8ZmlsZT4gCi0jc2V0IHZhcnMocHJlX3NpZ25vZmZfdGNsKSAgICAgICAgICAgICAgICA8ZmlsZT4KLSNzZXQgdmFycyhwb3N0X3NpZ25vZmZfdGNsKSAgICAgICAgICAgICAgIDxmaWxlPgotIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIyBBbGwgb3RoZXIgcGx1Zy1pbnMgYXJlIG9ubHkgdXNlZCBkdXJpbmcgdGhlIGZsYXQgaW1wbGVtZW50YXRpb24KLSMgb2YgdGhlIHBhcnRpdGlvbnMuIFRvIGVuYWJsZSBwbHVnLWlucyBmb3IgcGFydGl0aW9uIGltcGxlbWVudGF0aW9uCi0jIGRlZmluZSBpbiB0aGUgdmFycyg8cGFydD4sZWRpX2NvbmZpZykgZmlsZSBmb3IgdGhhdCBwYXJ0aXRpb24KLSMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSMgc2V0IHZhcnMoPHB0bjE+LGVkaV9jb25maWdfdGNsKSAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyg8cHRuMj4sZWRpX2NvbmZpZ190Y2wpICAgICAgICAgPGZpbGU+Ci0jIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0jIFRoZXJlIGFyZSBhZGRpdGlvbmFsIHZhcmlhYmxlcyBjYWxsZWQgY29tbWFuZCB0YWdzIHRoYXQgcHJvdmlkZSBtb3JlCi0jIGdyYW51bGFyIGN1c3RvbWl6YXRpb24gY29udHJvbC4gIFNlZSB0YWdzLnRjbCBmb3IgbW9yZSBpbmZvcm1hdGlvbgotCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotIyBUbyBpbnNlcnQgbWV0YWwgZmlsbCBkdXJpbmcgdGhlIGZsb3cgZGVmaW5lIHRoZSBmb2xsb3dpbmcgdHdvCi0jIHZhcmlhYmxlczoKLSMgLSB2YXJzKG1ldGFsZmlsbCkgW3ByZV9wb3N0cm91dGUsIHByZV9wb3N0cm91dGVfc2ksIHByZV9zaWdub2ZmXQotIyAtIHZhcnMobWV0YWxmaWxsX3RjbCkgPHBhdGggdG8gbWV0YWxmaWxsIHBsdWctaW4+Ci0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotI3NldCB2YXJzKG1ldGFsZmlsbCkgICAgICAgICAgICAgICAgICBwcmVfcG9zdHJvdXRlCi0jc2V0IHZhcnMobWV0YWxmaWxsX3RjbCkgICAgICAgICAgICAgIDxmaWxlPgotCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotIyBUaGVyZSBhcmUgc29tZSBmbG93IGNvbnRyb2wgdmFyaWFibGVzIHRoYXQgY2FuIGJlIHNldDoKLSMgLSB2YXJzKGFib3J0KSBjb250cm9scyB3aGV0aGVyIGNvZGVnZW4gYWJvcnRzIHdoZW4gZXJyb3IgaXMgZm91bmQKLSMgICBpbiB0aGUgdmFyaWFibGUgc2V0dXAuICBUaGlzIGRlZmF1bHQgdG8gdHJ1ZS4gIFdoZW4gZGlzYWJsZWQsCi0jICAgcG9zc2libGUgVENMIGVycm9ycyBjYW4gb2NjdXIgZHVyaW5nIGZsb3cgZXhlY3V0aW9uCi0jIC0gdmFycyhjYXRjaF9lcnJvcnMpIGNvbnRyb2xzIHdoZXRoZXIgYSBjYXRjaCBpcyBpbmNsdWRlZCBhcm91bmQKLSMgICBlYWNoIHNldCBvZiBmbG93IHN0ZXAgY29tbWFuZHMuICBUaGUgZGVmYXVsdCBpcyB0cnVlLgotIyAtIHZhcnMoc2F2ZV9vbl9jYXRjaCkgY29udHJvbHMgd2hldGhlciBhIGRhdGFiYXNlIGlzIHNhdmVkIHdoZW4KLSMgICBhbiBlcnJvciBpcyBjYXVnaHQuIFRoaXMgZGVmYXVsdHMgdG8gdHJ1ZSBhbmQgb25seSB3b3JrcwotIyAgIHdoZW4gdmFycyhjYXRjaF9lcnJvcnMpIGlzIHRydWUKLSMgLSB2YXJzKG1haWwsdG8pIGFuZCB2YXJzKG1haWwsc3RlcHMpIGNvbnRyb2wgd2hldGhlciBhIG1haWwgbWVzc2FnZQotIyAgIGlzIHNlbnQgYWZ0ZXIgZWFjaCBzdGVwIGNvbXBsZXRlcy4gIFdoZW4gZW5hYmxlZCBhIG1haWwgbWVzc2FnZQotIyAgIHdpbGwgYmUgc2VudCAoY29udGFpbmluZyB0aGUgdGltaW5nIHN1bW1hcnkgaWYgYXZhaWxhYmxlKSBmb3IgCi0jICAgYW55IHN0ZXAgaW4gdmFycyhzdGVwcykuICBJZiB2YXJzKHN0ZXBzKSBpcyB1bmRlZmluZWQsIGEgbWVzc2FnZQotIyAgIHdpbGwgYmUgc2VudCBmb3IgZXZlcnkgc3RlcC4KLSMgCi0jIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0jIHNldCB2YXJzKGFib3J0KSAgICAgICAgICAgICAgICAgICAgICAgICAgPHRydWUgb3IgZmFsc2U+IgotIyBzZXQgdmFycyhjYXRjaF9lcnJvcnMpICAgICAgICAgICAgICAgICAgIDx0cnVlIG9yIGZhbHNlPiIKLSMgc2V0IHZhcnMoc2F2ZV9vbl9jYXRjaCkgICAgICAgICAgICAgICAgICA8dHJ1ZSBvciBmYWxzZT4iCi0jIHNldCB2YXJzKG1haWwsdG8pICAgICAgICAgICAgICAgICAgICAgICAgW2xpc3Qgb2YgZW1haWwgYWRkcmVzc2VzXQotIyBzZXQgdmFzcihtYWlsLHN0ZXBzKSAgICAgICAgICAgICAgICAgICAgIFtsaXN0IG9mIHN0ZXBzXQotIyBzZXQgdmFycyh0YWdzLHZlcmJvc2UpICAgICAgICAgICAgICAgICAgIDx0cnVlIG9yIGZhbHNlPiIKLSMgc2V0IHZhcnModGFncyx2ZXJib3NpdHlfbGV2ZWwpICAgICAgICAgICBbaGlnaCB8IGxvd10iCi0KLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0jIEJyaWVmIGRlc2NyaXB0aW9uIG9mIHRoZSBhYm92ZSB2YXJpYWJsZXMKLSMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSMgLSBkb250X3VzZV9saXN0IChsaXN0IG9mIGNlbGwgbmFtZXMgdG8gZGlzYWJsZSBkdXJpbmcgb3B0aW1pemF0aW9uKQotIyAtIGRlbGF5X2NlbGxzIChsaXN0IG9mIGRlbGF5IGNlbGxzIHRvIGVuYWJsZSBkdXJpbmcgaG9sZCBmaXhpbmcpCi0jIC0gY3RzX2NlbGxfbGlzdCAobGlzdCBvZiBjZWxscyBmb3IgY2xvY2tEZXNpZ24pCi0jIC0gc2tld19idWZmZXJzIChsaXN0IG9mIGJ1ZmZlcnMgdG8gdXNlIGR1cmluZyB1c2VmdWwgc2tldykKLSMgLSBmaWxsZXJfY2VsbHMgKGxpc3Qgb2YgZmlsbGVyIGNlbGxzKQotIyAtIGNsb2NrX2dhdGVfY2VsbHMgKGxpc3Qgb2YgY2xvY2sgZ2F0aW5nIGVsZW1lbnRzKQotIyAtIGp0YWdfY2VsbHMgKGxpc3Qgb2YganRhZyBpbnN0YW5jZXMpCi0jIC0ganRhZ19yb3dzIChudW1iZXIgb2Ygcm93cyB0byB1c2UgZHVyaW5nICBqdGFnIHBsYWNlbWVudCkKLSMgLSBzcGFyZV9jZWxscyAobGlzdCBvZiBzcGFyZSBjZWxscyBpbnN0YW5jZXMpCi0jIC0gZ2RzX2xheWVyX21hcCAoZ2RzIGxheWVyIG1hcCBmaWxlKQotIyAtIGdkc19maWxlcyAobGlzdCBvZiBnZHMgZmlsZXMpCi0jIC0gb2FfcmVmX2xpYiAoT0EgcmVmZXJlbmNlIGxpYnJhcnkgbmFtZSkKLSMgLSBvYV9hYnN0cmFjdF92aWV3IChPQSBhYnN0cmFjdCB2aWV3IG5hbWUpCi0jIC0gb2FfbGF5b3V0X3ZpZXcgKE9BIGxheW91dCB2aWV3IG5hbWUpCi0jIC0gYnVmZmVyX3RpZV9hc3NpZ24gKGJ1ZmZlciBsb2dpYyAxLzAgdGllIG5ldHMpCi0jIC0gYXNzaWduX2J1ZmZlciAoYnVmZmVyIGFzc2lnbiBzdGF0ZW1lbnRzKQotIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIyBUaGUgZmxvdyBpbmNsdWRlcyBzb21lIG9wdGlvbnMgdG8gZW5hYmxlIHNvbWUgY29tbW9ubHkgdXNlZCBjb21tYW5kIG9wdGlvbnMuICAKLSMgVGhlc2UgZmxhZ3MgcHJvdmlkZSBlYXN5IGFjY2VzcyB0byBjZXJ0YWluIG9wdGlvbnMvY29tbWFuZHMgd2l0aGluIFNPQ0UuICAKLSMgVGhleSBzaG91bGQgYmUgc2V0IGJhc2VkIG9uIHRoZSBuZWVkcyBvZiB0aGUgZGVzaWduL21ldGhvZG9sb2d5LiAgCi0jIFRoZSBpbmNsdXNpb24gb2YgdGhlc2Ugb3B0aW9ucyBkb2VzIG5vdCByZXByZXNlbnQgYSByZWNvbW1lbmRhdGlvbi4gCi0jIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0jIEZvciBlYXJseSBydW5zLCB5b3UgbWF5IHdhbnQgdG8gc2tpcCB0aGUgY3RzIHN0ZXAuIFRvIGRvIHRoaXMsIHVzZQotIyAnc2V0IHZhcnMocnVuX2N0cykgZmFsc2UnCi0jIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0jIFRvIHNlbGVjdCBjY29wdERlc2lnbiBmb3IgQ1RTLCB1c2UgCi0jICdzZXQgdmFycyhjdHNfZW5naW5lKSAnY2NvcHQnIChkZWZhdWx0IGlzIGN0cykKLSMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSMgLSB2YXJzKGN0c19lbmdpbmUpIChjY29wdF9jdHMgfCBjY29wdCkKLSMgU29tZSBvdGhlciBvcHRpb25zIHRoYXQgYWZmZWN0IGNjb3B0IGFyZToKLSMgLSB2YXJzKGN0c19idWZmZXJfbGlzdCkKLSMgLSB2YXJzKGN0c19pbnZlcnRlcl9saXN0KQotIyAtIHZhcnMoY3RzX3VzZV9pbnZlcnRlcnMpCi0jIC0gdmFycyhjdHNfZWZmb3J0KQotIyAtIHZhcnMoY3RzX2lvX29wdCkKLSMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSMgT3B0aW9ucyBmb3IgY2xvY2sgcm91dGluZzoKLSMgLXZhcnMoY2xrX3RyZWVfdG9wX2xheWVyKSAgICAodG9wIGxheWVyIGZvciBub24tbGVhZiBuZXRzKQotIyAtdmFycyhjbGtfbGVhZl90b3BfbGF5ZXIpICAgICh0b3AgbGF5ZXIgZm9yIGxlYWYgbmV0cykgCi0jIC12YXJzKGNsa190cmVlX2JvdHRvbV9sYXllcikgKGJvdHRvbSBsYXllciBmb3Igbm9uLWxlYWYgbmV0cykKLSMgLXZhcnMoY2xrX2xlYWZfYm90dG9tX2xheWVyKSAoYm90dG9tIGxheWVyIGZvciBsZWFmIG5ldHMpCi0jIC12YXJzKGNsa190cmVlX25kcikgICAgICAgICAgKG5vbi1kZWZhdWx0IHJ1bGUgZm9yIG5vbi1sZWFmIG5ldHMpCi0jIC12YXJzKGNsa190cmVlX2V4dHJhX3NwYWNlKSAgKGV4dHJhIHNwYWNlIGZvciBub24tbGVhZiBuZXRzKQotIyAtdmFycyhjbGtfbGVhZl9uZHIpICAgICAgICAgIChub24tZGVmYXVsdCBydWxlIGZvciBsZWFmIG5ldHMwCi0jIC12YXJzKGNsa19sZWFmX2V4dHJhX3NwYWNlKSAgKGV4dHJhIHNwYWNlIGZvciBub24tbGVhZiBuZXRzKQotIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotIyBDb21tb24gcGF0aCBwZXNzaW1pc20gcmVtb3ZhbCB3aWxsIGJlIGVuYWJsZWQgYnkgZGVmYXVsdCBhZnRlciBjdHMKLSMgVG8gZGlzYWJsZSAnc2V0IHZhcnMoZW5hYmxlX2NwcHIpIGZhbHNlJwotIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIyBBbmFseXNpcyBtb2RlICdvbkNoaXBWYXJpYXRpb24nIHdpbGwgYmUgZW5hYmxlZCBieSBkZWZhdWx0IHByaW9yCi0jIHRvIHBvc3Qtcm91dGUgb3B0aW1pemF0aW9uLiBUbyBkaXNhYmxlICdzZXQgdmFycyhlbmFibGVfb2N2KSBmYWxzZScKLSMgVG8gZW5hYmxlIGl0IGVsc2V3aGVyZSBpbiB0aGUgZmxvdywgdXNlICdzZXQgdmFycyhlbmFibGVfb2N2KSA8dmFsdWU+JwotIyBXaGVyZSA8dmFsdWU+ID0gInByZV9wbGFjZSB8IHByZV9wcmVjdHMgfCBwcmVfcG9zdGN0cyB8Ci0jICAgICAgICAgICAgICAgICAgcHJlX3Bvc3Ryb3V0ZSB8IHByZV9wb3N0cm91dGVfc2kgfCBwcmVfc2lnbm9mZiIKLSMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSMgVGhlIGRlZmF1bHQgbGVha2FnZSBwb3dlciBlZmZvcnQgaXMgIm5vbmUiLiBGb3IgbG93IHBvd2VyIGZsb3dzLAotIyAnc2V0IHZhcnMobGVha2FnZV9wb3dlcl9lZmZvcnQpIGhpZ2gnCi0jIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0jIFRoZSBkZWZhdWx0IGR5bmFtaWMgcG93ZXIgZWZmb3J0IGlzICJub25lIi4gRm9yIGxvdyBwb3dlciBmbG93cywKLSMgJ3NldCB2YXJzKGR5bmFtaWNfcG93ZXJfZWZmb3J0KSBoaWdoJwotIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIyBUaGUgZGVmYXVsdCByZWNvbW1lbmRhdGlvbiBpcyB0byBOT1QgcGxhY2UgSU8gcGlucyBkdXJpbmcKLSMgY2VsbCBwbGFjZW1lbnQuICBUbyBlbmFibGUgcGluIHBsYWNlbWVudCwgIAotIyBzZXQgdmFycyhwbGFjZV9pb19waW5zKSB0cnVlIAotIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIyBUaGUgZW5hYmxlIGNsb2NrIGdhdGUgYXdhcmUgcGxhY2VtZW50LCAKLSMgJ3NldCB2YXJzKGNsb2NrX2dhdGVfYXdhcmUpIHRydWUnCi0jIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0jIFRoZSBlbmFibGUgY2xvY2sgZ2F0ZSBjbG9uaW5nLCB1c2UKLSMgJ3NldCB2YXJzKGNsb2NrX2dhdGVfY2xvbmUpIHRydWUnCi0jIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0jIFRoZSBkZWZhdWx0IHJlY29tbWVuZGF0aW9uIGlzIHRvIHJvdXRlIGFsbCBjbG9jayBuZXRzCi0jIGR1cmluZyBDVFMuICBUbyBkaXNhYmxlIHRoaXMgJ3NldCB2YXJzKHJvdXRlX2Nsb2NrX25ldHMpIGZhbHNlJwotIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIyBUbyB1cGRhdGUgSU8gbGF0ZW5jeSBhZnRlciBDVFMsIHVzZQotIyAnc2V0IHZhcnModXBkYXRlX2lvX2xhdGVuY3kpIGZhbHNlJwotIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIyBGb3IgY29uZ2VzdGVkIGRlc2lnbnMsICdzZXQgdmFycyhjb25nZXN0aW9uX2VmZm9ydCkgaGlnaCcKLSMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSMgVG8gcHJlc2VydmUgY29uc3RyYWludHMgb24gSU8gcG9ydHMgKHVzZWZ1bCBmb3IgaGllcmFyY2hpY2FsCi0jIGRlc2lnbnMpLCAnc2V0IHZhcnMocHJlc2VydmVfYXNzZXJ0aW9ucykgdHJ1ZScKLSMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSMgVG8gZW5hYmxlIHVzZWZ1bCBza2V3IG9wdGltaXphdGlvbiwgJ3NldCB2YXJzKHVzZWZ1bF9za2V3KSB0cnVlJwotIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIyBUbyBlbmFibGUgVE5TIG9wdGltaXphdGlvbiwgdXNlCi0jICdzZXQgdmFycyhhbGxfZW5kX3BvaW50cykgPHZhbHVlPicKLSMgLi4uIGNyaXRpY2FsIHJhbmdlIGlzIG5vIGxvbmdlciBzdXBwb3J0IAotIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIyBUbyB1c2UgYSBzaXplIG9ubHkgZmlsZSwgCi0jICdzZXQgdmFycyhzaXplX29ubHlfZmlsZSkgPGZpbGU+JwotIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIyBUbyBlbmFibGUgZmFub3V0IGxvYWQgZml4aW5nLAotIyAnc2V0IHZhcnMoZml4X2Zhbm91dF9sb2FkKSB0cnVlJwotIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIyBGb3IgZGlmZmljdWx0IHRpbWluZyBkZXNpZ25zLCAnc2V0IHZhcnMoaGlnaF90aW1pbmdfZWZmb3J0KSB0cnVlJwotIyBUaGlzIG92ZXJyaWRlcyBjZXJ0YWluIHVzZXIgc2V0dGluZ3MgdG8gZW5hYmxlIGEgdmFyaWV0eSBvZiBvcHRpb25zCi0jIHRocm91Z2hvdXQgdGhlIGZsb3cgZm9yIG9wdGltYWwgUW9SIGF0IHRoZSBleHBlbnNlIG9mIHJ1bnRpbWUKLSMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSMgVG8gZW5hYmxlIC1pblBsYWNlT3B0LCAnc2V0IHZhcnMoaW5fcGxhY2Vfb3B0KSB0cnVlCi0jIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0jIFRvIGVuYWJsZSB1c2VmdWwgc2tldyBvcHRpbWl6YXRpb24sICdzZXQgdmFycyh1c2VmdWxfc2tldykgdHJ1ZScKLSMgQWxzbywgc2V0IHZhcnMoc2tld19idWZmZXJzKSB0byB0aGUgbGlzdCBvZiB1c2VhYmxlIGNsb2NrIGJ1ZmZlcnMKLSMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSMgVG8gZGlzYWJsZSBob2xkIGZpeGluZywKLSMgJ3NldCB2YXJzKGZpeF9ob2xkKSBmYWxzZScKLSMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSMgVG8gZGlzYWJsZSBob2xkIGZpeGluZyBmb3IgSU8sIAotIyAnc2V0IHZhcnMoZml4X2hvbGRfaWdub3JlX2lvcykgdHJ1ZScKLSMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSMgVG8gZGlzYWxsb3cgaG9sZCBmaXhpbmcgZnJvbSBkZWdyYWRpbmcgc2V0dXAgdG5zLCB1c2UKLSMgJ3NldCB2YXJzKGZpeF9ob2xkX2FsbG93X3Ruc19kZWdyYWRhdGlvbikgZmFsc2UnCi0jIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0jIFRoZSBmbG93IGRlZmF1bHQgaXMgdG8gZGlzYWJsZSBtdWx0aS1jdXQgdmlhIGluc2VydGlvbi4gIEZvciA5MG5tCi0jIGFuZCBiZWxvdywgaXQgaXMgcmVjb21tZW5kZWQgdG8gaW5zZXJ0IG11bHRpLWN1dCB2aWFzIHVzaW5nCi0jICdzZXQgdmFycyhtdWx0aV9jdXRfZWZmb3J0KSBtZWRpdW0uIFRoaXMgd2lsbCBjb21lIHdpdGggYSBydW50aW1lIGFuZAotIyBtZW1vcnkgcGVuYWx0eSBhbmQgd2lsbCBhbHNvIGFmZmVjdCBRb1IuCi0jIEZvciBtYXhpbXVtIG11bHRpLWN1dCB2aWEgY292ZXJhZ2UgJ3NldCB2YXJzKG11bHRpX2N1dF9lZmZvcnQpIGhpZ2gnCi0jIFRoaXMgd2lsbCBjb21lIHdpdGggYWRkaXRpb25hbCBydW50aW1lL21lbW9yeSBvdmVyaGVhZC4KLSMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSMgVGhlIGRlZmF1bHQgaXMgbm90IHRvIGRvIGxpdGhvIGRyaXZlbiByb3V0aW5nLAotIyBUbyBlbmFibGUsIHVzZSAnc2V0IHZhcnMobGl0aG9fZHJpdmVuX3JvdXRpbmcpIHRydWUnCi0jIFRvIGVuYWJsZSBsaXRobyB2ZXJpZnkgYW5kIHJlcGFpciwgdXNlICdzZXQgdmFycyh2ZXJpZnlfbGl0aG8pIHRydWUnCi0jIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0jIFRvIGVuYWJsZSBwb3N0cm91dGUgd2lyZSBzcHJlYWRpbmcsIHVzZQotIyAnc2V0IHZhcnMoc3ByZWFkX3dpcmVzKSB0cnVlJwotIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIyBUbyBlbmFibGUgZGlvZGUgYmFzZWQgYW50ZW5uYSBmaXhpbmcsIHVzZQotIyAnc2V0IHZhcnMoYW50ZW5uYV9kaW9kZSkgPGFudGVubmEgY2VsbD4nCi0jIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0jIFRoZSBkZWZhdWx0IHBvc3Ryb3V0ZSBleHRyYWN0aW9uIGVmZm9ydCwgaXMgZGV0YWlsIGV4dHJhY3Rpb24gKGxvdykuCi0jIFRvIGVuYWJsZSB0UVJDIChtZWRpdW0pLCBvciBpUVJDIChoaWdoKSBmb3IgdGhlIHBvc3Ryb3V0ZSBjbG9zdXJlCi0jIGZsb3csIHVzZSAKLSMgJ3NldCB2YXJzKHBvc3Ryb3V0ZV9leHRyYWN0aW9uX2VmZm9ydCkgPGxvdyB8IG1lZGl1bSB8ICBoaWdoPgotIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIyBUbyBkaXNhYmxlIEFBRSAoZGVmYXVsdCkgZGVsYXkgY2FsY3VsYXRpb24KLSMgJ3NldCB2YXJzKGVuYWJsZV9zaV9hd2FyZSkgZmFsc2UnCi0jIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0jIFRvIGVuYWJsZSB0aGlyZCBwYXJ0eSBTSSBjb3JyZWxhdGlvbiwgdXNlCi0jICdzZXQgdmFycyhzaV9hbmFseXNpc190eXBlKSBwZXNzaW1pc3RpYycKLSMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSMgVG8gZW5hYmxlIGNlbHRpYyBiYXNlZCBhbmFseXNpcy9maXhpbmcsIHVzZSAKLSMgJ3NldCB2YXJzKGVuYWJsZV9jZWx0aWNfc3RlcHMpIHRydWUnCi0jIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0jIFRvIGVuYWJsZSBwb3dlciByZXBvcnRpbmcgYXQgZWFjaCBzdGVwIGluIHRoZSBmbG93LCB1c2UKLSMgJ3NldCB2YXJzKHJlcG9ydF9wb3dlcikgdHJ1ZScKLSMgVG8gcHJvdmlkZSBhbiBhY3Rpdml0eSBmb3IgcG93ZXIgb3B0aW1pemF0aW9uIGFuZCByZXBvcnRpbmcsCi0jICdzZXQgdmFycyhhY3Rpdml0eV9maWxlKSAgICAgICAgPGZpbGU+JwotIyAnc2V0IHZhcnMoYWN0aXZpdHlfZmlsZV9mb3JtYXQpIDxUQ0YgfCBTQUlGIHwgVkNEPicKLSMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSMgVGhlcmUgYXJlIHNvbWUgb3B0aW9ucyB0byBzYXZlRGVzaWduOgotIyBUbyBzYXZlIHJjZGIgaW5mb3JtYXRpb24gZm9yIHBvc3Ryb3V0ZSBzdGVwcywgdXNlCi0jICdzZXQgdmFycyhzYXZlX3JjKSB0cnVlICcKLSMgVG8gc2F2ZSB0aW1pbmcgY29uc3RyYWludHMsIHVzZToKLSMgJ3NldCB2YXJzKHNhdmVfY29uc3RyYWludHMpIHRydWUnCi0jIFRoZSBmb2xvd2luZyBhcmUgdXNlZCB0byBjb250cm9sIGhvdyB0aGUgcGF0aHMgYXJlIHdyaXR0ZW4gb3V0OgotIyAtIHZhcnMocmVsYXRpdmVfcGF0aCkKLSMgLSB2YXJzKGFic29sdXRlX2xpYl9wYXRoKQotIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIyBUaGUgZGVmYXVsdCBpcyB0byBhYm9ydCBpZiB0aGVyZSBhcmUgZXJyb3JzIGZvdW5kIGR1cmluZyB0aGUgc2V0dXAgCi0jIGNoZWNrOyB0byBkaXNhYmxlIHRoaXMsIHVzZQotIyBzZXQgdmFycyhhYm9ydCkgZmFsc2UiCmRpZmYgLS1naXQgYS9mbG93L3Buci9URU1QTEFURVMvSU5OT1ZVUy9pbm5vdnVzX3RhZ3MudGNsIGIvZmxvdy9wbnIvVEVNUExBVEVTL0lOTk9WVVMvaW5ub3Z1c190YWdzLnRjbApkZWxldGVkIGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggZmEwZTEyMy4uMDAwMDAwMAotLS0gYS9mbG93L3Buci9URU1QTEFURVMvSU5OT1ZVUy9pbm5vdnVzX3RhZ3MudGNsCisrKyAvZGV2L251bGwKQEAgLTEsMTE4MyArMCwwIEBACi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0jICAgICAgICAgICAgICAgICAgICAgICBDQURFTkNFIENPUFlSSUdIVCBOT1RJQ0UKLSMgICAgICAgICCpIDIwMDgtMjAxMyBDYWRlbmNlIERlc2lnbiBTeXN0ZW1zLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0jCi0jIFRoaXMgRm91bmRhdGlvbiBGbG93IGlzIHByb3ZpZGVkIGFzIGFuIGV4YW1wbGUgb2YgaG93IHRvIHBlcmZvcm0gc3BlY2lhbGl6ZWQKLSMgdGFza3MuCi0jCi0jIFRoaXMgd29yayBtYXkgbm90IGJlIGNvcGllZCwgcmUtcHVibGlzaGVkLCB1cGxvYWRlZCwgb3IgZGlzdHJpYnV0ZWQgaW4gYW55IHdheSwKLSMgaW4gYW55IG1lZGl1bSwgd2hldGhlciBpbiB3aG9sZSBvciBpbiBwYXJ0LCB3aXRob3V0IHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbgotIyBmcm9tIENhZGVuY2UuIE5vdHdpdGhzdGFuZGluZyBhbnkgcmVzdHJpY3Rpb25zIGhlcmVpbiwgc3ViamVjdCB0byBjb21wbGlhbmNlCi0jIHdpdGggdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mIHRoZSBDYWRlbmNlIHNvZnR3YXJlIGxpY2Vuc2UgYWdyZWVtZW50IHVuZGVyCi0jIHdoaWNoIHRoaXMgbWF0ZXJpYWwgd2FzIHByb3ZpZGVkLCB0aGlzIG1hdGVyaWFsIG1heSBiZSBjb3BpZWQgYW5kIGludGVybmFsbHkKLSMgZGlzdHJpYnV0ZWQgc29sZWx5IGZvciBpbnRlcm5hbCBwdXJwb3NlcyBmb3IgdXNlIHdpdGggQ2FkZW5jZSB0b29scy4KLSMKLSMgVGhpcyB3b3JrIGlzIENhZGVuY2UgaW50ZWxsZWN0dWFsIHByb3BlcnR5IGFuZCBtYXkgdW5kZXIgbm8gY2lyY3Vtc3RhbmNlcyBiZQotIyBnaXZlbiB0byB0aGlyZCBwYXJ0aWVzLCBuZWl0aGVyIGluIG9yaWdpbmFsIG5vciBpbiBtb2RpZmllZCB2ZXJzaW9ucywgd2l0aG91dAotIyBleHBsaWNpdCB3cml0dGVuIHBlcm1pc3Npb24gZnJvbSBDYWRlbmNlLiBUaGUgaW5mb3JtYXRpb24gY29udGFpbmVkIGhlcmVpbiBpcwotIyB0aGUgcHJvcHJpZXRhcnkgYW5kIGNvbmZpZGVudGlhbCBpbmZvcm1hdGlvbiBvZiBDYWRlbmNlIG9yIGl0cyBsaWNlbnNvcnMsIGFuZAotIyBpcyBzdXBwbGllZCBzdWJqZWN0IHRvLCBhbmQgbWF5IGJlIHVzZWQgb25seSBieSBDYWRlbmNlJ3MgY3VycmVudCBjdXN0b21lcnMKLSMgaW4gYWNjb3JkYW5jZSB3aXRoLCBhIHByZXZpb3VzbHkgZXhlY3V0ZWQgbGljZW5zZSBhZ3JlZW1lbnQgYmV0d2VlbiBDYWRlbmNlCi0jIGFuZCBpdHMgY3VzdG9tZXIuCi0jCi0jLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0jIFRISVMgTUFURVJJQUwgSVMgUFJPVklERUQgQlkgQ0FERU5DRSAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVECi0jIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GCi0jIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuCi0jIElOIE5PIEVWRU5UIFNIQUxMIENBREVOQ0UgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTAotIyBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLAotIyBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUICAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IKLSMgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyAgTUFURVJJQUwsIEVWRU4gSUYKLSMgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0KLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSMgQmVsb3cgaXMgYSBsaXN0IG9mIGNvbW1hbmRzIHRoYXQgY2FuIGJlIHRhZ2dlZCB3aXRoIHRoZSBmb2xsb3dpbmcgdGFnczoKLSMKLSMgICAtIHByZV90Y2wgICAgIDxmaWxlbmFtZT4gICAgICA9PiBTY3JpcHQgdG8gYmUgcnVuIGJlZm9yZSB0aGUgdGFnZ2VkIGNvbW1hbmQKLSMgICAtIHBvc3RfdGNsICAgIDxmaWxlbmFtZT4gICAgICA9PiBTY3JpcHQgdG8gYmUgcnVuIGFmdGVyIHRoZSB0YWdnZWQgY29tbWFuZAotIyAgIC0gcmVwbGFjZV90Y2wgPGZpbGVuYW1lPiAgICAgID0+IFNjcmlwdCB0byBiZSBydW4gYmVmb3JlIHRoZSB0YWdnZWQgY29tbWFuZAotIyAgIC0gc2tpcCAgICAgICAgPFRSVUUgfCBGQUxTRT4gID0+IFNraXAgdGhlIHRhZ2dlZCBjb21tYW5kCi0jCi0jIFRoZXNlIHZhcmlhYmxlcyBhcmUgc3RydWN0dXJlIDxzdGVwPiw8Y29tbW1hbmQ+LDx0YWc+IAotIyBUaGV5IHNob3VsZCBiZSBhZGRlZCB0byB5b3VyIHNldHVwLnRjbCBvciBpbm5vdnVzX2NvbmZpZy50Y2wKLSMKLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLQotIyBzZXQgdmFycyh0YWdzLHZlcmJvc2UpICAgICAgICAgICAgICAgICAgIDx0cnVlIG9yIGZhbHNlPiIKLSMgc2V0IHZhcnModGFncyx2ZXJib3NpdHlfbGV2ZWwpICAgICAgICAgICBbaGlnaCB8IGxvd10iCi0KLSMgc2V0IHZhcnMoaW5pdCxzZXRfZGlzdHJpYnV0ZV9ob3N0LHByZV90Y2wpICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhpbml0LHNldF9kaXN0cmlidXRlX2hvc3QscG9zdF90Y2wpICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKGluaXQsc2V0X2Rpc3RyaWJ1dGVfaG9zdCxyZXBsYWNlX3RjbCkgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMoaW5pdCxzZXRfZGlzdHJpYnV0ZV9ob3N0LHNraXApICAgICAgICAgICAgICAgICAgICAgICAgIDx0cnVlIG9yIGZhbHNlPgotIyBzZXQgdmFycyhpbml0LHNldF9tdWx0aV9jcHVfdXNhZ2UscHJlX3RjbCkgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKGluaXQsc2V0X211bHRpX2NwdV91c2FnZSxwb3N0X3RjbCkgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMoaW5pdCxzZXRfbXVsdGlfY3B1X3VzYWdlLHJlcGxhY2VfdGNsKSAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhpbml0LHNldF9tdWx0aV9jcHVfdXNhZ2Usc2tpcCkgICAgICAgICAgICAgICAgICAgICAgICAgPHRydWUgb3IgZmFsc2U+Ci0jIHNldCB2YXJzKGluaXQsc2V0X2Rpc3RyaWJ1dGVfaG9zdCxwcmVfdGNsKSAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMoaW5pdCxzZXRfZGlzdHJpYnV0ZV9ob3N0LHBvc3RfdGNsKSAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhpbml0LHNldF9kaXN0cmlidXRlX2hvc3QscmVwbGFjZV90Y2wpICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKGluaXQsc2V0X2Rpc3RyaWJ1dGVfaG9zdCxza2lwKSAgICAgICAgICAgICAgICAgICAgICAgICA8dHJ1ZSBvciBmYWxzZT4KLSMgc2V0IHZhcnMoaW5pdCxzZXRfbXVsdGlfY3B1X3VzYWdlLHByZV90Y2wpICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhpbml0LHNldF9tdWx0aV9jcHVfdXNhZ2UscG9zdF90Y2wpICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKGluaXQsc2V0X211bHRpX2NwdV91c2FnZSxyZXBsYWNlX3RjbCkgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMoaW5pdCxzZXRfbXVsdGlfY3B1X3VzYWdlLHNraXApICAgICAgICAgICAgICAgICAgICAgICAgIDx0cnVlIG9yIGZhbHNlPgotIyBzZXQgdmFycyhpbml0LHNldF9yY19mYWN0b3IscHJlX3RjbCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKGluaXQsc2V0X3JjX2ZhY3Rvcixwb3N0X3RjbCkgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMoaW5pdCxzZXRfcmNfZmFjdG9yLHJlcGxhY2VfdGNsKSAgICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhpbml0LHNldF9yY19mYWN0b3Isc2tpcCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRydWUgb3IgZmFsc2U+Ci0jIHNldCB2YXJzKGluaXQsZGVyYXRlX3RpbWluZyxwcmVfdGNsKSAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMoaW5pdCxkZXJhdGVfdGltaW5nLHBvc3RfdGNsKSAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhpbml0LGRlcmF0ZV90aW1pbmcscmVwbGFjZV90Y2wpICAgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKGluaXQsZGVyYXRlX3RpbWluZyxza2lwKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHJ1ZSBvciBmYWxzZT4KLSMgc2V0IHZhcnMoaW5pdCxjcmVhdGVfcmNfY29ybmVyLHByZV90Y2wpICAgICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhpbml0LGNyZWF0ZV9yY19jb3JuZXIscG9zdF90Y2wpICAgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKGluaXQsY3JlYXRlX3JjX2Nvcm5lcixyZXBsYWNlX3RjbCkgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMoaW5pdCxjcmVhdGVfcmNfY29ybmVyLHNraXApICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cnVlIG9yIGZhbHNlPgotIyBzZXQgdmFycyhpbml0LGNyZWF0ZV9saWJyYXJ5X3NldCxwcmVfdGNsKSAgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKGluaXQsY3JlYXRlX2xpYnJhcnlfc2V0LHBvc3RfdGNsKSAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMoaW5pdCxjcmVhdGVfbGlicmFyeV9zZXQscmVwbGFjZV90Y2wpICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhpbml0LGNyZWF0ZV9saWJyYXJ5X3NldCxza2lwKSAgICAgICAgICAgICAgICAgICAgICAgICAgPHRydWUgb3IgZmFsc2U+Ci0jIHNldCB2YXJzKGluaXQsY3JlYXRlX29wX2NvbmQscHJlX3RjbCkgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMoaW5pdCxjcmVhdGVfb3BfY29uZCxwb3N0X3RjbCkgICAgICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhpbml0LGNyZWF0ZV9vcF9jb25kLHJlcGxhY2VfdGNsKSAgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKGluaXQsY3JlYXRlX29wX2NvbmQsc2tpcCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHJ1ZSBvciBmYWxzZT4KLSMgc2V0IHZhcnMoaW5pdCxjcmVhdGVfZGVsYXlfY29ybmVyLHByZV90Y2wpICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhpbml0LGNyZWF0ZV9kZWxheV9jb3JuZXIscG9zdF90Y2wpICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKGluaXQsY3JlYXRlX2RlbGF5X2Nvcm5lcixyZXBsYWNlX3RjbCkgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMoaW5pdCxjcmVhdGVfZGVsYXlfY29ybmVyLHNraXApICAgICAgICAgICAgICAgICAgICAgICAgIDx0cnVlIG9yIGZhbHNlPgotIyBzZXQgdmFycyhpbml0LGNyZWF0ZV9jb25zdHJhaW50X21vZGUscHJlX3RjbCkgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKGluaXQsY3JlYXRlX2NvbnN0cmFpbnRfbW9kZSxwb3N0X3RjbCkgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMoaW5pdCxjcmVhdGVfY29uc3RyYWludF9tb2RlLHJlcGxhY2VfdGNsKSAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhpbml0LGNyZWF0ZV9jb25zdHJhaW50X21vZGUsc2tpcCkgICAgICAgICAgICAgICAgICAgICAgPHRydWUgb3IgZmFsc2U+Ci0jIHNldCB2YXJzKGluaXQsY3JlYXRlX2FuYWx5c2lzX3ZpZXcscHJlX3RjbCkgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMoaW5pdCxjcmVhdGVfYW5hbHlzaXNfdmlldyxwb3N0X3RjbCkgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhpbml0LGNyZWF0ZV9hbmFseXNpc192aWV3LHJlcGxhY2VfdGNsKSAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKGluaXQsY3JlYXRlX2FuYWx5c2lzX3ZpZXcsc2tpcCkgICAgICAgICAgICAgICAgICAgICAgICA8dHJ1ZSBvciBmYWxzZT4KLSMgc2V0IHZhcnMoaW5pdCx1cGRhdGVfZGVsYXlfY29ybmVyLHByZV90Y2wpICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhpbml0LHVwZGF0ZV9kZWxheV9jb3JuZXIscG9zdF90Y2wpICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKGluaXQsdXBkYXRlX2RlbGF5X2Nvcm5lcixyZXBsYWNlX3RjbCkgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMoaW5pdCx1cGRhdGVfZGVsYXlfY29ybmVyLHNraXApICAgICAgICAgICAgICAgICAgICAgICAgIDx0cnVlIG9yIGZhbHNlPgotIyBzZXQgdmFycyhpbml0LHVwZGF0ZV9saWJyYXJ5X3NldCxwcmVfdGNsKSAgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKGluaXQsdXBkYXRlX2xpYnJhcnlfc2V0LHBvc3RfdGNsKSAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMoaW5pdCx1cGRhdGVfbGlicmFyeV9zZXQscmVwbGFjZV90Y2wpICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhpbml0LHVwZGF0ZV9saWJyYXJ5X3NldCxza2lwKSAgICAgICAgICAgICAgICAgICAgICAgICAgPHRydWUgb3IgZmFsc2U+Ci0jIHNldCB2YXJzKGluaXQsZGVyYXRlX3RpbWluZyxwcmVfdGNsKSAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMoaW5pdCxkZXJhdGVfdGltaW5nLHBvc3RfdGNsKSAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhpbml0LGRlcmF0ZV90aW1pbmcscmVwbGFjZV90Y2wpICAgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKGluaXQsZGVyYXRlX3RpbWluZyxza2lwKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHJ1ZSBvciBmYWxzZT4KLSMgc2V0IHZhcnMoaW5pdCxzZXRfZGVmYXVsdF92aWV3LHByZV90Y2wpICAgICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhpbml0LHNldF9kZWZhdWx0X3ZpZXcscG9zdF90Y2wpICAgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKGluaXQsc2V0X2RlZmF1bHRfdmlldyxyZXBsYWNlX3RjbCkgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMoaW5pdCxzZXRfZGVmYXVsdF92aWV3LHNraXApICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cnVlIG9yIGZhbHNlPgotIyBzZXQgdmFycyhpbml0LHNldF9wb3dlcl9hbmFseXNpc19tb2RlLHByZV90Y2wpICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKGluaXQsc2V0X3Bvd2VyX2FuYWx5c2lzX21vZGUscG9zdF90Y2wpICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMoaW5pdCxzZXRfcG93ZXJfYW5hbHlzaXNfbW9kZSxyZXBsYWNlX3RjbCkgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhpbml0LHNldF9wb3dlcl9hbmFseXNpc19tb2RlLHNraXApICAgICAgICAgICAgICAgICAgICAgPHRydWUgb3IgZmFsc2U+Ci0jIHNldCB2YXJzKGluaXQsbG9hZF9jb25maWcscHJlX3RjbCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMoaW5pdCxsb2FkX2NvbmZpZyxwb3N0X3RjbCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhpbml0LGxvYWRfY29uZmlnLHJlcGxhY2VfdGNsKSAgICAgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKGluaXQsbG9hZF9jb25maWcsc2tpcCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHJ1ZSBvciBmYWxzZT4KLSMgc2V0IHZhcnMoaW5pdCxpbml0X2Rlc2lnbixwcmVfdGNsKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhpbml0LGluaXRfZGVzaWduLHBvc3RfdGNsKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKGluaXQsaW5pdF9kZXNpZ24scmVwbGFjZV90Y2wpICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMoaW5pdCxpbml0X2Rlc2lnbixza2lwKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cnVlIG9yIGZhbHNlPgotIyBzZXQgdmFycyhpbml0LGxvYWRfZmxvb3JwbGFuLHByZV90Y2wpICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKGluaXQsbG9hZF9mbG9vcnBsYW4scG9zdF90Y2wpICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMoaW5pdCxsb2FkX2Zsb29ycGxhbixyZXBsYWNlX3RjbCkgICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhpbml0LGxvYWRfZmxvb3JwbGFuLHNraXApICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRydWUgb3IgZmFsc2U+Ci0jIHNldCB2YXJzKGluaXQsZ2VuZXJhdGVfdHJhY2tzLHByZV90Y2wpICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMoaW5pdCxnZW5lcmF0ZV90cmFja3MscG9zdF90Y2wpICAgICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhpbml0LGdlbmVyYXRlX3RyYWNrcyxyZXBsYWNlX3RjbCkgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKGluaXQsZ2VuZXJhdGVfdHJhY2tzLHNraXApICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHJ1ZSBvciBmYWxzZT4KLSMgc2V0IHZhcnMoaW5pdCxyZWFkX3Bvd2VyX2ludGVudCxwcmVfdGNsKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhpbml0LHJlYWRfcG93ZXJfaW50ZW50LHBvc3RfdGNsKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKGluaXQscmVhZF9wb3dlcl9pbnRlbnQscmVwbGFjZV90Y2wpICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMoaW5pdCxyZWFkX3Bvd2VyX2ludGVudCxza2lwKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cnVlIG9yIGZhbHNlPgotIyBzZXQgdmFycyhpbml0LGNvbW1pdF9wb3dlcl9pbnRlbnQscHJlX3RjbCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKGluaXQsY29tbWl0X3Bvd2VyX2ludGVudCxwb3N0X3RjbCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMoaW5pdCxjb21taXRfcG93ZXJfaW50ZW50LHJlcGxhY2VfdGNsKSAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhpbml0LGNvbW1pdF9wb3dlcl9pbnRlbnQsc2tpcCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRydWUgb3IgZmFsc2U+Ci0jIHNldCB2YXJzKGluaXQscmVhZF9hY3Rpdml0eV9maWxlLHByZV90Y2wpICAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMoaW5pdCxyZWFkX2FjdGl2aXR5X2ZpbGUscG9zdF90Y2wpICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhpbml0LHJlYWRfYWN0aXZpdHlfZmlsZSxyZXBsYWNlX3RjbCkgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKGluaXQscmVhZF9hY3Rpdml0eV9maWxlLHNraXApICAgICAgICAgICAgICAgICAgICAgICAgICA8dHJ1ZSBvciBmYWxzZT4KLSMgc2V0IHZhcnMoaW5pdCxzcGVjaWZ5X2lsbSxwcmVfdGNsKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhpbml0LHNwZWNpZnlfaWxtLHBvc3RfdGNsKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKGluaXQsc3BlY2lmeV9pbG0scmVwbGFjZV90Y2wpICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMoaW5pdCxzcGVjaWZ5X2lsbSxza2lwKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cnVlIG9yIGZhbHNlPgotIyBzZXQgdmFycyhpbml0LGxvYWRfaWxtX25vbl9zZGNfZmlsZSxwcmVfdGNsKSAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKGluaXQsbG9hZF9pbG1fbm9uX3NkY19maWxlLHBvc3RfdGNsKSAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMoaW5pdCxsb2FkX2lsbV9ub25fc2RjX2ZpbGUscmVwbGFjZV90Y2wpICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhpbml0LGxvYWRfaWxtX25vbl9zZGNfZmlsZSxza2lwKSAgICAgICAgICAgICAgICAgICAgICAgPHRydWUgb3IgZmFsc2U+Ci0jIHNldCB2YXJzKGluaXQsaW5pdGlhbGl6ZV90aW1pbmcscHJlX3RjbCkgICAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMoaW5pdCxpbml0aWFsaXplX3RpbWluZyxwb3N0X3RjbCkgICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhpbml0LGluaXRpYWxpemVfdGltaW5nLHJlcGxhY2VfdGNsKSAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKGluaXQsaW5pdGlhbGl6ZV90aW1pbmcsc2tpcCkgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHJ1ZSBvciBmYWxzZT4KLSMgc2V0IHZhcnMoaW5pdCxsb2FkX3NjYW4scHJlX3RjbCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhpbml0LGxvYWRfc2Nhbixwb3N0X3RjbCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKGluaXQsbG9hZF9zY2FuLHJlcGxhY2VfdGNsKSAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMoaW5pdCxsb2FkX3NjYW4sc2tpcCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cnVlIG9yIGZhbHNlPgotIyBzZXQgdmFycyhpbml0LHNwZWNpZnlfc3BhcmVfZ2F0ZXMscHJlX3RjbCkgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKGluaXQsc3BlY2lmeV9zcGFyZV9nYXRlcyxwb3N0X3RjbCkgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMoaW5pdCxzcGVjaWZ5X3NwYXJlX2dhdGVzLHJlcGxhY2VfdGNsKSAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhpbml0LHNwZWNpZnlfc3BhcmVfZ2F0ZXMsc2tpcCkgICAgICAgICAgICAgICAgICAgICAgICAgPHRydWUgb3IgZmFsc2U+Ci0jIHNldCB2YXJzKGluaXQsc2V0X2RvbnRfdXNlLHByZV90Y2wpICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMoaW5pdCxzZXRfZG9udF91c2UscG9zdF90Y2wpICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhpbml0LHNldF9kb250X3VzZSxyZXBsYWNlX3RjbCkgICAgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKGluaXQsc2V0X2RvbnRfdXNlLHNraXApICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHJ1ZSBvciBmYWxzZT4KLSMgc2V0IHZhcnMoaW5pdCxzZXRfbWF4X3JvdXRlX2xheWVyLHByZV90Y2wpICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhpbml0LHNldF9tYXhfcm91dGVfbGF5ZXIscG9zdF90Y2wpICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKGluaXQsc2V0X21heF9yb3V0ZV9sYXllcixyZXBsYWNlX3RjbCkgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMoaW5pdCxzZXRfbWF4X3JvdXRlX2xheWVyLHNraXApICAgICAgICAgICAgICAgICAgICAgICAgIDx0cnVlIG9yIGZhbHNlPgotIyBzZXQgdmFycyhpbml0LHNldF9kZXNpZ25fbW9kZSxwcmVfdGNsKSAgICAgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKGluaXQsc2V0X2Rlc2lnbl9tb2RlLHBvc3RfdGNsKSAgICAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMoaW5pdCxzZXRfZGVzaWduX21vZGUscmVwbGFjZV90Y2wpICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhpbml0LHNldF9kZXNpZ25fbW9kZSxza2lwKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRydWUgb3IgZmFsc2U+Ci0jIHNldCB2YXJzKGluaXQsaW5zZXJ0X3dlbGx0YXBzX2VuZGNhcHMscHJlX3RjbCkgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMoaW5pdCxpbnNlcnRfd2VsbHRhcHNfZW5kY2Fwcyxwb3N0X3RjbCkgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhpbml0LGluc2VydF93ZWxsdGFwc19lbmRjYXBzLHJlcGxhY2VfdGNsKSAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKGluaXQsaW5zZXJ0X3dlbGx0YXBzX2VuZGNhcHMsc2tpcCkgICAgICAgICAgICAgICAgICAgICA8dHJ1ZSBvciBmYWxzZT4KLSMgc2V0IHZhcnMoaW5pdCxsb2FkX2NvbmZpZyxwcmVfdGNsKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhpbml0LGxvYWRfY29uZmlnLHBvc3RfdGNsKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKGluaXQsbG9hZF9jb25maWcscmVwbGFjZV90Y2wpICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMoaW5pdCxsb2FkX2NvbmZpZyxza2lwKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cnVlIG9yIGZhbHNlPgotIyBzZXQgdmFycyhpbml0LHRpbWVfZGVzaWduLHByZV90Y2wpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKGluaXQsdGltZV9kZXNpZ24scG9zdF90Y2wpICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMoaW5pdCx0aW1lX2Rlc2lnbixyZXBsYWNlX3RjbCkgICAgICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhpbml0LHRpbWVfZGVzaWduLHNraXApICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRydWUgb3IgZmFsc2U+Ci0jIHNldCB2YXJzKGluaXQsY2hlY2tfZGVzaWduLHByZV90Y2wpICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMoaW5pdCxjaGVja19kZXNpZ24scG9zdF90Y2wpICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhpbml0LGNoZWNrX2Rlc2lnbixyZXBsYWNlX3RjbCkgICAgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKGluaXQsY2hlY2tfZGVzaWduLHNraXApICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHJ1ZSBvciBmYWxzZT4KLSMgc2V0IHZhcnMoaW5pdCxjaGVja190aW1pbmcscHJlX3RjbCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhpbml0LGNoZWNrX3RpbWluZyxwb3N0X3RjbCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKGluaXQsY2hlY2tfdGltaW5nLHJlcGxhY2VfdGNsKSAgICAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMoaW5pdCxjaGVja190aW1pbmcsc2tpcCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cnVlIG9yIGZhbHNlPgotIyBzZXQgdmFycyhpbml0LHJlcG9ydF9wb3dlcl9kb21haW5zLHByZV90Y2wpICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKGluaXQscmVwb3J0X3Bvd2VyX2RvbWFpbnMscG9zdF90Y2wpICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMoaW5pdCxyZXBvcnRfcG93ZXJfZG9tYWlucyxyZXBsYWNlX3RjbCkgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhpbml0LHJlcG9ydF9wb3dlcl9kb21haW5zLHNraXApICAgICAgICAgICAgICAgICAgICAgICAgPHRydWUgb3IgZmFsc2U+Ci0jIHNldCB2YXJzKHBsYWNlLHNldF9kaXN0cmlidXRlX2hvc3QscHJlX3RjbCkgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocGxhY2Usc2V0X2Rpc3RyaWJ1dGVfaG9zdCxwb3N0X3RjbCkgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwbGFjZSxzZXRfZGlzdHJpYnV0ZV9ob3N0LHJlcGxhY2VfdGNsKSAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBsYWNlLHNldF9kaXN0cmlidXRlX2hvc3Qsc2tpcCkgICAgICAgICAgICAgICAgICAgICAgICA8dHJ1ZSBvciBmYWxzZT4KLSMgc2V0IHZhcnMocGxhY2Usc2V0X211bHRpX2NwdV91c2FnZSxwcmVfdGNsKSAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwbGFjZSxzZXRfbXVsdGlfY3B1X3VzYWdlLHBvc3RfdGNsKSAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBsYWNlLHNldF9tdWx0aV9jcHVfdXNhZ2UscmVwbGFjZV90Y2wpICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocGxhY2Usc2V0X211bHRpX2NwdV91c2FnZSxza2lwKSAgICAgICAgICAgICAgICAgICAgICAgIDx0cnVlIG9yIGZhbHNlPgotIyBzZXQgdmFycyhwbGFjZSxyZXN0b3JlX2Rlc2lnbixwcmVfdGNsKSAgICAgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBsYWNlLHJlc3RvcmVfZGVzaWduLHBvc3RfdGNsKSAgICAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocGxhY2UscmVzdG9yZV9kZXNpZ24scmVwbGFjZV90Y2wpICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwbGFjZSxyZXN0b3JlX2Rlc2lnbixza2lwKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRydWUgb3IgZmFsc2U+Ci0jIHNldCB2YXJzKHBsYWNlLGluaXRpYWxpemVfc3RlcCxwcmVfdGNsKSAgICAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocGxhY2UsaW5pdGlhbGl6ZV9zdGVwLHBvc3RfdGNsKSAgICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwbGFjZSxpbml0aWFsaXplX3N0ZXAscmVwbGFjZV90Y2wpICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBsYWNlLGluaXRpYWxpemVfc3RlcCxza2lwKSAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHJ1ZSBvciBmYWxzZT4KLSMgc2V0IHZhcnMocGxhY2Usc2V0X2Rlc2lnbl9tb2RlLHByZV90Y2wpICAgICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwbGFjZSxzZXRfZGVzaWduX21vZGUscG9zdF90Y2wpICAgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBsYWNlLHNldF9kZXNpZ25fbW9kZSxyZXBsYWNlX3RjbCkgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocGxhY2Usc2V0X2Rlc2lnbl9tb2RlLHNraXApICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cnVlIG9yIGZhbHNlPgotIyBzZXQgdmFycyhwbGFjZSxzZXRfZGVsYXlfY2FsX21vZGUscHJlX3RjbCkgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBsYWNlLHNldF9kZWxheV9jYWxfbW9kZSxwb3N0X3RjbCkgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocGxhY2Usc2V0X2RlbGF5X2NhbF9tb2RlLHJlcGxhY2VfdGNsKSAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwbGFjZSxzZXRfZGVsYXlfY2FsX21vZGUsc2tpcCkgICAgICAgICAgICAgICAgICAgICAgICAgPHRydWUgb3IgZmFsc2U+Ci0jIHNldCB2YXJzKHBsYWNlLHNldF9wbGFjZV9tb2RlLHByZV90Y2wpICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocGxhY2Usc2V0X3BsYWNlX21vZGUscG9zdF90Y2wpICAgICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwbGFjZSxzZXRfcGxhY2VfbW9kZSxyZXBsYWNlX3RjbCkgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBsYWNlLHNldF9wbGFjZV9tb2RlLHNraXApICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHJ1ZSBvciBmYWxzZT4KLSMgc2V0IHZhcnMocGxhY2Usc2V0X29wdF9tb2RlLHByZV90Y2wpICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwbGFjZSxzZXRfb3B0X21vZGUscG9zdF90Y2wpICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBsYWNlLHNldF9vcHRfbW9kZSxyZXBsYWNlX3RjbCkgICAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocGxhY2Usc2V0X29wdF9tb2RlLHNraXApICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cnVlIG9yIGZhbHNlPgotIyBzZXQgdmFycyhwbGFjZSxzZXRfdGllX2hpbG9fbW9kZSxwcmVfdGNsKSAgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBsYWNlLHNldF90aWVfaGlsb19tb2RlLHBvc3RfdGNsKSAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocGxhY2Usc2V0X3RpZV9oaWxvX21vZGUscmVwbGFjZV90Y2wpICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwbGFjZSxzZXRfdGllX2hpbG9fbW9kZSxza2lwKSAgICAgICAgICAgICAgICAgICAgICAgICAgPHRydWUgb3IgZmFsc2U+Ci0jIHNldCB2YXJzKHBsYWNlLGNsZWFudXBfc3BlY2lmeV9jbG9ja190cmVlLHByZV90Y2wpICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocGxhY2UsY2xlYW51cF9zcGVjaWZ5X2Nsb2NrX3RyZWUscG9zdF90Y2wpICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwbGFjZSxjbGVhbnVwX3NwZWNpZnlfY2xvY2tfdHJlZSxyZXBsYWNlX3RjbCkgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBsYWNlLGNsZWFudXBfc3BlY2lmeV9jbG9ja190cmVlLHNraXApICAgICAgICAgICAgICAgICA8dHJ1ZSBvciBmYWxzZT4KLSMgc2V0IHZhcnMocGxhY2Usc3BlY2lmeV9jbG9ja190cmVlLHByZV90Y2wpICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwbGFjZSxzcGVjaWZ5X2Nsb2NrX3RyZWUscG9zdF90Y2wpICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBsYWNlLHNwZWNpZnlfY2xvY2tfdHJlZSxyZXBsYWNlX3RjbCkgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocGxhY2Usc3BlY2lmeV9jbG9ja190cmVlLHNraXApICAgICAgICAgICAgICAgICAgICAgICAgIDx0cnVlIG9yIGZhbHNlPgotIyBzZXQgdmFycyhwbGFjZSxzcGVjaWZ5X2p0YWcscHJlX3RjbCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBsYWNlLHNwZWNpZnlfanRhZyxwb3N0X3RjbCkgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocGxhY2Usc3BlY2lmeV9qdGFnLHJlcGxhY2VfdGNsKSAgICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwbGFjZSxzcGVjaWZ5X2p0YWcsc2tpcCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRydWUgb3IgZmFsc2U+Ci0jIHNldCB2YXJzKHBsYWNlLHBsYWNlX2p0YWcscHJlX3RjbCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocGxhY2UscGxhY2VfanRhZyxwb3N0X3RjbCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwbGFjZSxwbGFjZV9qdGFnLHJlcGxhY2VfdGNsKSAgICAgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBsYWNlLHBsYWNlX2p0YWcsc2tpcCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHJ1ZSBvciBmYWxzZT4KLSMgc2V0IHZhcnMocGxhY2UsZWNvX3BsYWNlLHByZV90Y2wpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwbGFjZSxlY29fcGxhY2UscG9zdF90Y2wpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBsYWNlLGVjb19wbGFjZSxyZXBsYWNlX3RjbCkgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocGxhY2UsZWNvX3BsYWNlLHNraXApICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cnVlIG9yIGZhbHNlPgotIyBzZXQgdmFycyhwbGFjZSxwbGFjZV9kZXNpZ24scHJlX3RjbCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBsYWNlLHBsYWNlX2Rlc2lnbixwb3N0X3RjbCkgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocGxhY2UscGxhY2VfZGVzaWduLHJlcGxhY2VfdGNsKSAgICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwbGFjZSxwbGFjZV9kZXNpZ24sc2tpcCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRydWUgb3IgZmFsc2U+Ci0jIHNldCB2YXJzKHBsYWNlLGFkZF90aWVfY2VsbHMscHJlX3RjbCkgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocGxhY2UsYWRkX3RpZV9jZWxscyxwb3N0X3RjbCkgICAgICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwbGFjZSxhZGRfdGllX2NlbGxzLHJlcGxhY2VfdGNsKSAgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBsYWNlLGFkZF90aWVfY2VsbHMsc2tpcCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHJ1ZSBvciBmYWxzZT4KLSMgc2V0IHZhcnMocGxhY2Usc2V0X3RpZV9oaV9sb19tb2RlLHByZV90Y2wpICAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocGxhY2Usc2V0X3RpZV9oaV9sb19tb2RlLHBvc3RfdGNsKSAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocGxhY2Usc2V0X3RpZV9oaV9sb19tb2RlLHJlcGxhY2VfdGNsKSAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocGxhY2Usc2V0X3RpZV9oaV9sb19tb2RlLHNraXApICAgICAgICAgICAgICAgICAgICAgICAgICA8dHJ1ZSBvciBmYWxzZT4KLSMgc2V0IHZhcnMocGxhY2UsdGltZV9kZXNpZ24scHJlX3RjbCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwbGFjZSx0aW1lX2Rlc2lnbixwb3N0X3RjbCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBsYWNlLHRpbWVfZGVzaWduLHJlcGxhY2VfdGNsKSAgICAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocGxhY2UsdGltZV9kZXNpZ24sc2tpcCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cnVlIG9yIGZhbHNlPgotIyBzZXQgdmFycyhwbGFjZSxzYXZlX2Rlc2lnbixwcmVfdGNsKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBsYWNlLHNhdmVfZGVzaWduLHBvc3RfdGNsKSAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocGxhY2Usc2F2ZV9kZXNpZ24scmVwbGFjZV90Y2wpICAgICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwbGFjZSxzYXZlX2Rlc2lnbixza2lwKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRydWUgb3IgZmFsc2U+Ci0jIHNldCB2YXJzKHBsYWNlLHJlcG9ydF9wb3dlcixwcmVfdGNsKSAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocGxhY2UscmVwb3J0X3Bvd2VyLHBvc3RfdGNsKSAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwbGFjZSxyZXBvcnRfcG93ZXIscmVwbGFjZV90Y2wpICAgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBsYWNlLHJlcG9ydF9wb3dlcixza2lwKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHJ1ZSBvciBmYWxzZT4KLSMgc2V0IHZhcnMocGxhY2UsdmVyaWZ5X3Bvd2VyX2RvbWFpbixwcmVfdGNsKSAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwbGFjZSx2ZXJpZnlfcG93ZXJfZG9tYWluLHBvc3RfdGNsKSAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBsYWNlLHZlcmlmeV9wb3dlcl9kb21haW4scmVwbGFjZV90Y2wpICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocGxhY2UsdmVyaWZ5X3Bvd2VyX2RvbWFpbixza2lwKSAgICAgICAgICAgICAgICAgICAgICAgIDx0cnVlIG9yIGZhbHNlPgotIyBzZXQgdmFycyhwbGFjZSxydW5fY2xwLHByZV90Y2wpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBsYWNlLHJ1bl9jbHAscG9zdF90Y2wpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocGxhY2UscnVuX2NscCxyZXBsYWNlX3RjbCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwbGFjZSxydW5fY2xwLHNraXApICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRydWUgb3IgZmFsc2U+Ci0jIHNldCB2YXJzKHByZWN0cyxzZXRfZGlzdHJpYnV0ZV9ob3N0LHByZV90Y2wpICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocHJlY3RzLHNldF9kaXN0cmlidXRlX2hvc3QscG9zdF90Y2wpICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwcmVjdHMsc2V0X2Rpc3RyaWJ1dGVfaG9zdCxyZXBsYWNlX3RjbCkgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHByZWN0cyxzZXRfZGlzdHJpYnV0ZV9ob3N0LHNraXApICAgICAgICAgICAgICAgICAgICAgICA8dHJ1ZSBvciBmYWxzZT4KLSMgc2V0IHZhcnMocHJlY3RzLHNldF9tdWx0aV9jcHVfdXNhZ2UscHJlX3RjbCkgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwcmVjdHMsc2V0X211bHRpX2NwdV91c2FnZSxwb3N0X3RjbCkgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHByZWN0cyxzZXRfbXVsdGlfY3B1X3VzYWdlLHJlcGxhY2VfdGNsKSAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocHJlY3RzLHNldF9tdWx0aV9jcHVfdXNhZ2Usc2tpcCkgICAgICAgICAgICAgICAgICAgICAgIDx0cnVlIG9yIGZhbHNlPgotIyBzZXQgdmFycyhwcmVjdHMsaW5pdGlhbGl6ZV9zdGVwLHByZV90Y2wpICAgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHByZWN0cyxpbml0aWFsaXplX3N0ZXAscG9zdF90Y2wpICAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocHJlY3RzLGluaXRpYWxpemVfc3RlcCxyZXBsYWNlX3RjbCkgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwcmVjdHMsaW5pdGlhbGl6ZV9zdGVwLHNraXApICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRydWUgb3IgZmFsc2U+Ci0jIHNldCB2YXJzKHByZWN0cyxzZXRfZGVzaWduX21vZGUscHJlX3RjbCkgICAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocHJlY3RzLHNldF9kZXNpZ25fbW9kZSxwb3N0X3RjbCkgICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwcmVjdHMsc2V0X2Rlc2lnbl9tb2RlLHJlcGxhY2VfdGNsKSAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHByZWN0cyxzZXRfZGVzaWduX21vZGUsc2tpcCkgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHJ1ZSBvciBmYWxzZT4KLSMgc2V0IHZhcnMocHJlY3RzLHNldF9hbmFseXNpc19tb2RlLHByZV90Y2wpICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwcmVjdHMsc2V0X2FuYWx5c2lzX21vZGUscG9zdF90Y2wpICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHByZWN0cyxzZXRfYW5hbHlzaXNfbW9kZSxyZXBsYWNlX3RjbCkgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocHJlY3RzLHNldF9hbmFseXNpc19tb2RlLHNraXApICAgICAgICAgICAgICAgICAgICAgICAgIDx0cnVlIG9yIGZhbHNlPgotIyBzZXQgdmFycyhwcmVjdHMsc2V0X2lsbV90eXBlLHByZV90Y2wpICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHByZWN0cyxzZXRfaWxtX3R5cGUscG9zdF90Y2wpICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocHJlY3RzLHNldF9pbG1fdHlwZSxyZXBsYWNlX3RjbCkgICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwcmVjdHMsc2V0X2lsbV90eXBlLHNraXApICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRydWUgb3IgZmFsc2U+Ci0jIHNldCB2YXJzKHByZWN0cyxjbGVhbnVwX3NwZWNpZnlfY2xvY2tfdHJlZSxwcmVfdGNsKSAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocHJlY3RzLGNsZWFudXBfc3BlY2lmeV9jbG9ja190cmVlLHBvc3RfdGNsKSAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwcmVjdHMsY2xlYW51cF9zcGVjaWZ5X2Nsb2NrX3RyZWUscmVwbGFjZV90Y2wpICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHByZWN0cyxjbGVhbnVwX3NwZWNpZnlfY2xvY2tfdHJlZSxza2lwKSAgICAgICAgICAgICAgICA8dHJ1ZSBvciBmYWxzZT4KLSMgc2V0IHZhcnMocHJlY3RzLGNyZWF0ZV9jbG9ja190cmVlX3NwZWMscHJlX3RjbCkgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwcmVjdHMsY3JlYXRlX2Nsb2NrX3RyZWVfc3BlYyxwb3N0X3RjbCkgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHByZWN0cyxjcmVhdGVfY2xvY2tfdHJlZV9zcGVjLHJlcGxhY2VfdGNsKSAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocHJlY3RzLGNyZWF0ZV9jbG9ja190cmVlX3NwZWMsc2tpcCkgICAgICAgICAgICAgICAgICAgIDx0cnVlIG9yIGZhbHNlPgotIyBzZXQgdmFycyhwcmVjdHMsc3BlY2lmeV9jbG9ja190cmVlLHByZV90Y2wpICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHByZWN0cyxzcGVjaWZ5X2Nsb2NrX3RyZWUscG9zdF90Y2wpICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocHJlY3RzLHNwZWNpZnlfY2xvY2tfdHJlZSxyZXBsYWNlX3RjbCkgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwcmVjdHMsc3BlY2lmeV9jbG9ja190cmVlLHNraXApICAgICAgICAgICAgICAgICAgICAgICAgPHRydWUgb3IgZmFsc2U+Ci0jIHNldCB2YXJzKHByZWN0cyxzZXRfdXNlZnVsX3NrZXdfbW9kZSxwcmVfdGNsKSAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocHJlY3RzLHNldF91c2VmdWxfc2tld19tb2RlLHBvc3RfdGNsKSAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwcmVjdHMsc2V0X3VzZWZ1bF9za2V3X21vZGUscmVwbGFjZV90Y2wpICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHByZWN0cyxzZXRfdXNlZnVsX3NrZXdfbW9kZSxza2lwKSAgICAgICAgICAgICAgICAgICAgICA8dHJ1ZSBvciBmYWxzZT4KLSMgc2V0IHZhcnMocHJlY3RzLHNldF9vcHRfbW9kZSxwcmVfdGNsKSAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwcmVjdHMsc2V0X29wdF9tb2RlLHBvc3RfdGNsKSAgICAgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHByZWN0cyxzZXRfb3B0X21vZGUscmVwbGFjZV90Y2wpICAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocHJlY3RzLHNldF9vcHRfbW9kZSxza2lwKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cnVlIG9yIGZhbHNlPgotIyBzZXQgdmFycyhwcmVjdHMsc2V0X2Rlc2lnbl9tb2RlLHByZV90Y2wpICAgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHByZWN0cyxzZXRfZGVzaWduX21vZGUscG9zdF90Y2wpICAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocHJlY3RzLHNldF9kZXNpZ25fbW9kZSxyZXBsYWNlX3RjbCkgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwcmVjdHMsc2V0X2Rlc2lnbl9tb2RlLHNraXApICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRydWUgb3IgZmFsc2U+Ci0jIHNldCB2YXJzKHByZWN0cyxzZXRfZGVsYXlfY2FsX21vZGUscHJlX3RjbCkgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocHJlY3RzLHNldF9kZWxheV9jYWxfbW9kZSxwb3N0X3RjbCkgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwcmVjdHMsc2V0X2RlbGF5X2NhbF9tb2RlLHJlcGxhY2VfdGNsKSAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHByZWN0cyxzZXRfZGVsYXlfY2FsX21vZGUsc2tpcCkgICAgICAgICAgICAgICAgICAgICAgICA8dHJ1ZSBvciBmYWxzZT4KLSMgc2V0IHZhcnMocHJlY3RzLHNldF9kb250X3VzZSxwcmVfdGNsKSAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwcmVjdHMsc2V0X2RvbnRfdXNlLHBvc3RfdGNsKSAgICAgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHByZWN0cyxzZXRfZG9udF91c2UscmVwbGFjZV90Y2wpICAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocHJlY3RzLHNldF9kb250X3VzZSxza2lwKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cnVlIG9yIGZhbHNlPgotIyBzZXQgdmFycyhwcmVjdHMsb3B0X2Rlc2lnbixwcmVfdGNsKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHByZWN0cyxvcHRfZGVzaWduLHBvc3RfdGNsKSAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocHJlY3RzLG9wdF9kZXNpZ24scmVwbGFjZV90Y2wpICAgICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwcmVjdHMsb3B0X2Rlc2lnbixza2lwKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRydWUgb3IgZmFsc2U+Ci0jIHNldCB2YXJzKHByZWN0cyxja19jbG9uZV9nYXRlLHByZV90Y2wpICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocHJlY3RzLGNrX2Nsb25lX2dhdGUscG9zdF90Y2wpICAgICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwcmVjdHMsY2tfY2xvbmVfZ2F0ZSxyZXBsYWNlX3RjbCkgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHByZWN0cyxja19jbG9uZV9nYXRlLHNraXApICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHJ1ZSBvciBmYWxzZT4KLSMgc2V0IHZhcnMocHJlY3RzLHNhdmVfZGVzaWduLHByZV90Y2wpICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwcmVjdHMsc2F2ZV9kZXNpZ24scG9zdF90Y2wpICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHByZWN0cyxzYXZlX2Rlc2lnbixyZXBsYWNlX3RjbCkgICAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocHJlY3RzLHNhdmVfZGVzaWduLHNraXApICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cnVlIG9yIGZhbHNlPgotIyBzZXQgdmFycyhwcmVjdHMscmVwb3J0X3Bvd2VyLHByZV90Y2wpICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHByZWN0cyxyZXBvcnRfcG93ZXIscG9zdF90Y2wpICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocHJlY3RzLHJlcG9ydF9wb3dlcixyZXBsYWNlX3RjbCkgICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwcmVjdHMscmVwb3J0X3Bvd2VyLHNraXApICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRydWUgb3IgZmFsc2U+Ci0jIHNldCB2YXJzKHByZWN0cyx2ZXJpZnlfcG93ZXJfZG9tYWluLHByZV90Y2wpICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocHJlY3RzLHZlcmlmeV9wb3dlcl9kb21haW4scG9zdF90Y2wpICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwcmVjdHMsdmVyaWZ5X3Bvd2VyX2RvbWFpbixyZXBsYWNlX3RjbCkgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHByZWN0cyx2ZXJpZnlfcG93ZXJfZG9tYWluLHNraXApICAgICAgICAgICAgICAgICAgICAgICA8dHJ1ZSBvciBmYWxzZT4KLSMgc2V0IHZhcnMocHJlY3RzLHJ1bl9jbHAscHJlX3RjbCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwcmVjdHMscnVuX2NscCxwb3N0X3RjbCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHByZWN0cyxydW5fY2xwLHJlcGxhY2VfdGNsKSAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocHJlY3RzLHJ1bl9jbHAsc2tpcCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cnVlIG9yIGZhbHNlPgotIyBzZXQgdmFycyhjdHMsc2V0X2Rpc3RyaWJ1dGVfaG9zdCxwcmVfdGNsKSAgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKGN0cyxzZXRfZGlzdHJpYnV0ZV9ob3N0LHBvc3RfdGNsKSAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMoY3RzLHNldF9kaXN0cmlidXRlX2hvc3QscmVwbGFjZV90Y2wpICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhjdHMsc2V0X2Rpc3RyaWJ1dGVfaG9zdCxza2lwKSAgICAgICAgICAgICAgICAgICAgICAgICAgPHRydWUgb3IgZmFsc2U+Ci0jIHNldCB2YXJzKGN0cyxzZXRfbXVsdGlfY3B1X3VzYWdlLHByZV90Y2wpICAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMoY3RzLHNldF9tdWx0aV9jcHVfdXNhZ2UscG9zdF90Y2wpICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhjdHMsc2V0X211bHRpX2NwdV91c2FnZSxyZXBsYWNlX3RjbCkgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKGN0cyxzZXRfbXVsdGlfY3B1X3VzYWdlLHNraXApICAgICAgICAgICAgICAgICAgICAgICAgICA8dHJ1ZSBvciBmYWxzZT4KLSMgc2V0IHZhcnMoY3RzLGluaXRpYWxpemVfc3RlcCxwcmVfdGNsKSAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhjdHMsaW5pdGlhbGl6ZV9zdGVwLHBvc3RfdGNsKSAgICAgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKGN0cyxpbml0aWFsaXplX3N0ZXAscmVwbGFjZV90Y2wpICAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMoY3RzLGluaXRpYWxpemVfc3RlcCxza2lwKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cnVlIG9yIGZhbHNlPgotIyBzZXQgdmFycyhjdHMsc2V0X2Rlc2lnbl9tb2RlLHByZV90Y2wpICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKGN0cyxzZXRfZGVzaWduX21vZGUscG9zdF90Y2wpICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMoY3RzLHNldF9kZXNpZ25fbW9kZSxyZXBsYWNlX3RjbCkgICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhjdHMsc2V0X2Rlc2lnbl9tb2RlLHNraXApICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRydWUgb3IgZmFsc2U+Ci0jIHNldCB2YXJzKGN0cyxzZXRfY3RzX21vZGUscHJlX3RjbCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMoY3RzLHNldF9jdHNfbW9kZSxwb3N0X3RjbCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhjdHMsc2V0X2N0c19tb2RlLHJlcGxhY2VfdGNsKSAgICAgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKGN0cyxzZXRfY3RzX21vZGUsc2tpcCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHJ1ZSBvciBmYWxzZT4KLSMgc2V0IHZhcnMoY3RzLHVwZGF0ZV9jY29wdF9yY19jb3JuZXIscHJlX3RjbCkgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhjdHMsdXBkYXRlX2Njb3B0X3JjX2Nvcm5lcixwb3N0X3RjbCkgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKGN0cyx1cGRhdGVfY2NvcHRfcmNfY29ybmVyLHJlcGxhY2VfdGNsKSAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMoY3RzLHVwZGF0ZV9jY29wdF9yY19jb3JuZXIsc2tpcCkgICAgICAgICAgICAgICAgICAgICAgIDx0cnVlIG9yIGZhbHNlPgotIyBzZXQgdmFycyhjdHMsc2V0X2Njb3B0X21vZGUscHJlX3RjbCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKGN0cyxzZXRfY2NvcHRfbW9kZSxwb3N0X3RjbCkgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMoY3RzLHNldF9jY29wdF9tb2RlLHJlcGxhY2VfdGNsKSAgICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhjdHMsc2V0X2Njb3B0X21vZGUsc2tpcCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRydWUgb3IgZmFsc2U+Ci0jIHNldCB2YXJzKGN0cyxzZXRfbmFub3JvdXRlX21vZGUscHJlX3RjbCkgICAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMoY3RzLHNldF9uYW5vcm91dGVfbW9kZSxwb3N0X3RjbCkgICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhjdHMsc2V0X25hbm9yb3V0ZV9tb2RlLHJlcGxhY2VfdGNsKSAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKGN0cyxzZXRfbmFub3JvdXRlX21vZGUsc2tpcCkgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHJ1ZSBvciBmYWxzZT4KLSMgc2V0IHZhcnMoY3RzLGVuYWJsZV9jbG9ja19nYXRlX2NlbGxzLHByZV90Y2wpICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhjdHMsZW5hYmxlX2Nsb2NrX2dhdGVfY2VsbHMscG9zdF90Y2wpICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKGN0cyxlbmFibGVfY2xvY2tfZ2F0ZV9jZWxscyxyZXBsYWNlX3RjbCkgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMoY3RzLGVuYWJsZV9jbG9ja19nYXRlX2NlbGxzLHNraXApICAgICAgICAgICAgICAgICAgICAgIDx0cnVlIG9yIGZhbHNlPgotIyBzZXQgdmFycyhjdHMsY3JlYXRlX2Nsb2NrX3RyZWVfc3BlYyxwcmVfdGNsKSAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKGN0cyxjcmVhdGVfY2xvY2tfdHJlZV9zcGVjLHBvc3RfdGNsKSAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMoY3RzLGNyZWF0ZV9jbG9ja190cmVlX3NwZWMscmVwbGFjZV90Y2wpICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhjdHMsY3JlYXRlX2Nsb2NrX3RyZWVfc3BlYyxza2lwKSAgICAgICAgICAgICAgICAgICAgICAgPHRydWUgb3IgZmFsc2U+Ci0jIHNldCB2YXJzKGN0cyxjbG9ja19kZXNpZ24scHJlX3RjbCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMoY3RzLGNsb2NrX2Rlc2lnbixwb3N0X3RjbCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhjdHMsY2xvY2tfZGVzaWduLHJlcGxhY2VfdGNsKSAgICAgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKGN0cyxjbG9ja19kZXNpZ24sc2tpcCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHJ1ZSBvciBmYWxzZT4KLSMgc2V0IHZhcnMoY3RzLGRpc2FibGVfY2xvY2tfZ2F0ZV9jZWxscyxwcmVfdGNsKSAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhjdHMsZGlzYWJsZV9jbG9ja19nYXRlX2NlbGxzLHBvc3RfdGNsKSAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKGN0cyxkaXNhYmxlX2Nsb2NrX2dhdGVfY2VsbHMscmVwbGFjZV90Y2wpICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMoY3RzLGRpc2FibGVfY2xvY2tfZ2F0ZV9jZWxscyxza2lwKSAgICAgICAgICAgICAgICAgICAgIDx0cnVlIG9yIGZhbHNlPgotIyBzZXQgdmFycyhjdHMscnVuX2Nsb2NrX2VjbyxwcmVfdGNsKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKGN0cyxydW5fY2xvY2tfZWNvLHBvc3RfdGNsKSAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMoY3RzLHJ1bl9jbG9ja19lY28scmVwbGFjZV90Y2wpICAgICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhjdHMscnVuX2Nsb2NrX2Vjbyxza2lwKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRydWUgb3IgZmFsc2U+Ci0jIHNldCB2YXJzKGN0cyx1cGRhdGVfdGltaW5nLHByZV90Y2wpICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMoY3RzLHVwZGF0ZV90aW1pbmcscG9zdF90Y2wpICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhjdHMsdXBkYXRlX3RpbWluZyxyZXBsYWNlX3RjbCkgICAgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKGN0cyx1cGRhdGVfdGltaW5nLHNraXApICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHJ1ZSBvciBmYWxzZT4KLSMgc2V0IHZhcnMoY3RzLGNyZWF0ZV9jY29wdF9jbG9ja190cmVlX3NwZWMscHJlX3RjbCkgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhjdHMsY3JlYXRlX2Njb3B0X2Nsb2NrX3RyZWVfc3BlYyxwb3N0X3RjbCkgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKGN0cyxjcmVhdGVfY2NvcHRfY2xvY2tfdHJlZV9zcGVjLHJlcGxhY2VfdGNsKSAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMoY3RzLGNyZWF0ZV9jY29wdF9jbG9ja190cmVlX3NwZWMsc2tpcCkgICAgICAgICAgICAgICAgIDx0cnVlIG9yIGZhbHNlPgotIyBzZXQgdmFycyhjdHMsY2NvcHRfZGVzaWduLHByZV90Y2wpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKGN0cyxjY29wdF9kZXNpZ24scG9zdF90Y2wpICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMoY3RzLGNjb3B0X2Rlc2lnbixyZXBsYWNlX3RjbCkgICAgICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhjdHMsY2NvcHRfZGVzaWduLHNraXApICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRydWUgb3IgZmFsc2U+Ci0jIHNldCB2YXJzKGN0cyx0aW1lX2Rlc2lnbixwcmVfdGNsKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMoY3RzLHRpbWVfZGVzaWduLHBvc3RfdGNsKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhjdHMsdGltZV9kZXNpZ24scmVwbGFjZV90Y2wpICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKGN0cyx0aW1lX2Rlc2lnbixza2lwKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHJ1ZSBvciBmYWxzZT4KLSMgc2V0IHZhcnMoY3RzLHNhdmVfZGVzaWduLHByZV90Y2wpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhjdHMsc2F2ZV9kZXNpZ24scG9zdF90Y2wpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKGN0cyxzYXZlX2Rlc2lnbixyZXBsYWNlX3RjbCkgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMoY3RzLHNhdmVfZGVzaWduLHNraXApICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cnVlIG9yIGZhbHNlPgotIyBzZXQgdmFycyhjdHMscmVwb3J0X3Bvd2VyLHByZV90Y2wpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKGN0cyxyZXBvcnRfcG93ZXIscG9zdF90Y2wpICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMoY3RzLHJlcG9ydF9wb3dlcixyZXBsYWNlX3RjbCkgICAgICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhjdHMscmVwb3J0X3Bvd2VyLHNraXApICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRydWUgb3IgZmFsc2U+Ci0jIHNldCB2YXJzKGN0cyx2ZXJpZnlfcG93ZXJfZG9tYWluLHByZV90Y2wpICAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMoY3RzLHZlcmlmeV9wb3dlcl9kb21haW4scG9zdF90Y2wpICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhjdHMsdmVyaWZ5X3Bvd2VyX2RvbWFpbixyZXBsYWNlX3RjbCkgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKGN0cyx2ZXJpZnlfcG93ZXJfZG9tYWluLHNraXApICAgICAgICAgICAgICAgICAgICAgICAgICA8dHJ1ZSBvciBmYWxzZT4KLSMgc2V0IHZhcnMoY3RzLHJ1bl9jbHAscHJlX3RjbCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhjdHMscnVuX2NscCxwb3N0X3RjbCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKGN0cyxydW5fY2xwLHJlcGxhY2VfdGNsKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMoY3RzLHJ1bl9jbHAsc2tpcCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cnVlIG9yIGZhbHNlPgotIyBzZXQgdmFycyhwb3N0Y3RzLHNldF9kaXN0cmlidXRlX2hvc3QscHJlX3RjbCkgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBvc3RjdHMsc2V0X2Rpc3RyaWJ1dGVfaG9zdCxwb3N0X3RjbCkgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocG9zdGN0cyxzZXRfZGlzdHJpYnV0ZV9ob3N0LHJlcGxhY2VfdGNsKSAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwb3N0Y3RzLHNldF9kaXN0cmlidXRlX2hvc3Qsc2tpcCkgICAgICAgICAgICAgICAgICAgICAgPHRydWUgb3IgZmFsc2U+Ci0jIHNldCB2YXJzKHBvc3RjdHMsc2V0X211bHRpX2NwdV91c2FnZSxwcmVfdGNsKSAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocG9zdGN0cyxzZXRfbXVsdGlfY3B1X3VzYWdlLHBvc3RfdGNsKSAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwb3N0Y3RzLHNldF9tdWx0aV9jcHVfdXNhZ2UscmVwbGFjZV90Y2wpICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBvc3RjdHMsc2V0X211bHRpX2NwdV91c2FnZSxza2lwKSAgICAgICAgICAgICAgICAgICAgICA8dHJ1ZSBvciBmYWxzZT4KLSMgc2V0IHZhcnMocG9zdGN0cyxpbml0aWFsaXplX3N0ZXAscHJlX3RjbCkgICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwb3N0Y3RzLGluaXRpYWxpemVfc3RlcCxwb3N0X3RjbCkgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBvc3RjdHMsaW5pdGlhbGl6ZV9zdGVwLHJlcGxhY2VfdGNsKSAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocG9zdGN0cyxpbml0aWFsaXplX3N0ZXAsc2tpcCkgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cnVlIG9yIGZhbHNlPgotIyBzZXQgdmFycyhwb3N0Y3RzLHNldF9kZXNpZ25fbW9kZSxwcmVfdGNsKSAgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBvc3RjdHMsc2V0X2Rlc2lnbl9tb2RlLHBvc3RfdGNsKSAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocG9zdGN0cyxzZXRfZGVzaWduX21vZGUscmVwbGFjZV90Y2wpICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwb3N0Y3RzLHNldF9kZXNpZ25fbW9kZSxza2lwKSAgICAgICAgICAgICAgICAgICAgICAgICAgPHRydWUgb3IgZmFsc2U+Ci0jIHNldCB2YXJzKHBvc3RjdHMsc2V0X2RlbGF5X2NhbF9tb2RlLHByZV90Y2wpICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocG9zdGN0cyxzZXRfZGVsYXlfY2FsX21vZGUscG9zdF90Y2wpICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwb3N0Y3RzLHNldF9kZWxheV9jYWxfbW9kZSxyZXBsYWNlX3RjbCkgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBvc3RjdHMsc2V0X2RlbGF5X2NhbF9tb2RlLHNraXApICAgICAgICAgICAgICAgICAgICAgICA8dHJ1ZSBvciBmYWxzZT4KLSMgc2V0IHZhcnMocG9zdGN0cyxzZXRfYW5hbHlzaXNfbW9kZSxwcmVfdGNsKSAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwb3N0Y3RzLHNldF9hbmFseXNpc19tb2RlLHBvc3RfdGNsKSAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBvc3RjdHMsc2V0X2FuYWx5c2lzX21vZGUscmVwbGFjZV90Y2wpICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocG9zdGN0cyxzZXRfYW5hbHlzaXNfbW9kZSxza2lwKSAgICAgICAgICAgICAgICAgICAgICAgIDx0cnVlIG9yIGZhbHNlPgotIyBzZXQgdmFycyhwb3N0Y3RzLHNldF9vcHRfbW9kZSxwcmVfdGNsKSAgICAgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBvc3RjdHMsc2V0X29wdF9tb2RlLHBvc3RfdGNsKSAgICAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocG9zdGN0cyxzZXRfb3B0X21vZGUscmVwbGFjZV90Y2wpICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwb3N0Y3RzLHNldF9vcHRfbW9kZSxza2lwKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRydWUgb3IgZmFsc2U+Ci0jIHNldCB2YXJzKHBvc3RjdHMsb3B0X2Rlc2lnbixwcmVfdGNsKSAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocG9zdGN0cyxvcHRfZGVzaWduLHBvc3RfdGNsKSAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwb3N0Y3RzLG9wdF9kZXNpZ24scmVwbGFjZV90Y2wpICAgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBvc3RjdHMsb3B0X2Rlc2lnbixza2lwKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHJ1ZSBvciBmYWxzZT4KLSMgc2V0IHZhcnMocG9zdGN0cyxzYXZlX2Rlc2lnbixwcmVfdGNsKSAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwb3N0Y3RzLHNhdmVfZGVzaWduLHBvc3RfdGNsKSAgICAgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBvc3RjdHMsc2F2ZV9kZXNpZ24scmVwbGFjZV90Y2wpICAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocG9zdGN0cyxzYXZlX2Rlc2lnbixza2lwKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cnVlIG9yIGZhbHNlPgotIyBzZXQgdmFycyhwb3N0Y3RzLHJlcG9ydF9wb3dlcixwcmVfdGNsKSAgICAgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBvc3RjdHMscmVwb3J0X3Bvd2VyLHBvc3RfdGNsKSAgICAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocG9zdGN0cyxyZXBvcnRfcG93ZXIscmVwbGFjZV90Y2wpICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwb3N0Y3RzLHJlcG9ydF9wb3dlcixza2lwKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRydWUgb3IgZmFsc2U+Ci0jIHNldCB2YXJzKHBvc3RjdHMsdmVyaWZ5X3Bvd2VyX2RvbWFpbixwcmVfdGNsKSAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocG9zdGN0cyx2ZXJpZnlfcG93ZXJfZG9tYWluLHBvc3RfdGNsKSAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwb3N0Y3RzLHZlcmlmeV9wb3dlcl9kb21haW4scmVwbGFjZV90Y2wpICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBvc3RjdHMsdmVyaWZ5X3Bvd2VyX2RvbWFpbixza2lwKSAgICAgICAgICAgICAgICAgICAgICA8dHJ1ZSBvciBmYWxzZT4KLSMgc2V0IHZhcnMocG9zdGN0cyxydW5fY2xwLHByZV90Y2wpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwb3N0Y3RzLHJ1bl9jbHAscG9zdF90Y2wpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBvc3RjdHMscnVuX2NscCxyZXBsYWNlX3RjbCkgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocG9zdGN0cyxydW5fY2xwLHNraXApICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cnVlIG9yIGZhbHNlPgotIyBzZXQgdmFycyhwb3N0Y3RzX2hvbGQsc2V0X2Rpc3RyaWJ1dGVfaG9zdCxwcmVfdGNsKSAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBvc3RjdHNfaG9sZCxzZXRfZGlzdHJpYnV0ZV9ob3N0LHBvc3RfdGNsKSAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocG9zdGN0c19ob2xkLHNldF9kaXN0cmlidXRlX2hvc3QscmVwbGFjZV90Y2wpICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwb3N0Y3RzX2hvbGQsc2V0X2Rpc3RyaWJ1dGVfaG9zdCxza2lwKSAgICAgICAgICAgICAgICAgPHRydWUgb3IgZmFsc2U+Ci0jIHNldCB2YXJzKHBvc3RjdHNfaG9sZCxzZXRfbXVsdGlfY3B1X3VzYWdlLHByZV90Y2wpICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocG9zdGN0c19ob2xkLHNldF9tdWx0aV9jcHVfdXNhZ2UscG9zdF90Y2wpICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwb3N0Y3RzX2hvbGQsc2V0X211bHRpX2NwdV91c2FnZSxyZXBsYWNlX3RjbCkgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBvc3RjdHNfaG9sZCxzZXRfbXVsdGlfY3B1X3VzYWdlLHNraXApICAgICAgICAgICAgICAgICA8dHJ1ZSBvciBmYWxzZT4KLSMgc2V0IHZhcnMocG9zdGN0c19ob2xkLGluaXRpYWxpemVfc3RlcCxwcmVfdGNsKSAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwb3N0Y3RzX2hvbGQsaW5pdGlhbGl6ZV9zdGVwLHBvc3RfdGNsKSAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBvc3RjdHNfaG9sZCxpbml0aWFsaXplX3N0ZXAscmVwbGFjZV90Y2wpICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocG9zdGN0c19ob2xkLGluaXRpYWxpemVfc3RlcCxza2lwKSAgICAgICAgICAgICAgICAgICAgIDx0cnVlIG9yIGZhbHNlPgotIyBzZXQgdmFycyhwb3N0Y3RzX2hvbGQsc2V0X2RvbnRfdXNlLHByZV90Y2wpICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBvc3RjdHNfaG9sZCxzZXRfZG9udF91c2UscG9zdF90Y2wpICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocG9zdGN0c19ob2xkLHNldF9kb250X3VzZSxyZXBsYWNlX3RjbCkgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwb3N0Y3RzX2hvbGQsc2V0X2RvbnRfdXNlLHNraXApICAgICAgICAgICAgICAgICAgICAgICAgPHRydWUgb3IgZmFsc2U+Ci0jIHNldCB2YXJzKHBvc3RjdHNfaG9sZCxzZXRfb3B0X21vZGUscHJlX3RjbCkgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocG9zdGN0c19ob2xkLHNldF9vcHRfbW9kZSxwb3N0X3RjbCkgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwb3N0Y3RzX2hvbGQsc2V0X29wdF9tb2RlLHJlcGxhY2VfdGNsKSAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBvc3RjdHNfaG9sZCxzZXRfb3B0X21vZGUsc2tpcCkgICAgICAgICAgICAgICAgICAgICAgICA8dHJ1ZSBvciBmYWxzZT4KLSMgc2V0IHZhcnMocG9zdGN0c19ob2xkLG9wdF9kZXNpZ24scHJlX3RjbCkgICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwb3N0Y3RzX2hvbGQsb3B0X2Rlc2lnbixwb3N0X3RjbCkgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBvc3RjdHNfaG9sZCxvcHRfZGVzaWduLHJlcGxhY2VfdGNsKSAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocG9zdGN0c19ob2xkLG9wdF9kZXNpZ24sc2tpcCkgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cnVlIG9yIGZhbHNlPgotIyBzZXQgdmFycyhwb3N0Y3RzX2hvbGQsc2F2ZV9kZXNpZ24scHJlX3RjbCkgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBvc3RjdHNfaG9sZCxzYXZlX2Rlc2lnbixwb3N0X3RjbCkgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocG9zdGN0c19ob2xkLHNhdmVfZGVzaWduLHJlcGxhY2VfdGNsKSAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwb3N0Y3RzX2hvbGQsc2F2ZV9kZXNpZ24sc2tpcCkgICAgICAgICAgICAgICAgICAgICAgICAgPHRydWUgb3IgZmFsc2U+Ci0jIHNldCB2YXJzKHBvc3RjdHNfaG9sZCxyZXBvcnRfcG93ZXIscHJlX3RjbCkgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocG9zdGN0c19ob2xkLHJlcG9ydF9wb3dlcixwb3N0X3RjbCkgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwb3N0Y3RzX2hvbGQscmVwb3J0X3Bvd2VyLHJlcGxhY2VfdGNsKSAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBvc3RjdHNfaG9sZCxyZXBvcnRfcG93ZXIsc2tpcCkgICAgICAgICAgICAgICAgICAgICAgICA8dHJ1ZSBvciBmYWxzZT4KLSMgc2V0IHZhcnMocG9zdGN0c19ob2xkLHZlcmlmeV9wb3dlcl9kb21haW4scHJlX3RjbCkgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwb3N0Y3RzX2hvbGQsdmVyaWZ5X3Bvd2VyX2RvbWFpbixwb3N0X3RjbCkgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBvc3RjdHNfaG9sZCx2ZXJpZnlfcG93ZXJfZG9tYWluLHJlcGxhY2VfdGNsKSAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocG9zdGN0c19ob2xkLHZlcmlmeV9wb3dlcl9kb21haW4sc2tpcCkgICAgICAgICAgICAgICAgIDx0cnVlIG9yIGZhbHNlPgotIyBzZXQgdmFycyhwb3N0Y3RzX2hvbGQscnVuX2NscCxwcmVfdGNsKSAgICAgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBvc3RjdHNfaG9sZCxydW5fY2xwLHBvc3RfdGNsKSAgICAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocG9zdGN0c19ob2xkLHJ1bl9jbHAscmVwbGFjZV90Y2wpICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwb3N0Y3RzX2hvbGQscnVuX2NscCxza2lwKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRydWUgb3IgZmFsc2U+Ci0jIHNldCB2YXJzKHJvdXRlLHNldF9kaXN0cmlidXRlX2hvc3QscHJlX3RjbCkgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocm91dGUsc2V0X2Rpc3RyaWJ1dGVfaG9zdCxwb3N0X3RjbCkgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhyb3V0ZSxzZXRfZGlzdHJpYnV0ZV9ob3N0LHJlcGxhY2VfdGNsKSAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHJvdXRlLHNldF9kaXN0cmlidXRlX2hvc3Qsc2tpcCkgICAgICAgICAgICAgICAgICAgICAgICA8dHJ1ZSBvciBmYWxzZT4KLSMgc2V0IHZhcnMocm91dGUsc2V0X211bHRpX2NwdV91c2FnZSxwcmVfdGNsKSAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhyb3V0ZSxzZXRfbXVsdGlfY3B1X3VzYWdlLHBvc3RfdGNsKSAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHJvdXRlLHNldF9tdWx0aV9jcHVfdXNhZ2UscmVwbGFjZV90Y2wpICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocm91dGUsc2V0X211bHRpX2NwdV91c2FnZSxza2lwKSAgICAgICAgICAgICAgICAgICAgICAgIDx0cnVlIG9yIGZhbHNlPgotIyBzZXQgdmFycyhyb3V0ZSxpbml0aWFsaXplX3N0ZXAscHJlX3RjbCkgICAgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHJvdXRlLGluaXRpYWxpemVfc3RlcCxwb3N0X3RjbCkgICAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocm91dGUsaW5pdGlhbGl6ZV9zdGVwLHJlcGxhY2VfdGNsKSAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhyb3V0ZSxpbml0aWFsaXplX3N0ZXAsc2tpcCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRydWUgb3IgZmFsc2U+Ci0jIHNldCB2YXJzKHJvdXRlLHNldF9uYW5vcm91dGVfbW9kZSxwcmVfdGNsKSAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocm91dGUsc2V0X25hbm9yb3V0ZV9tb2RlLHBvc3RfdGNsKSAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhyb3V0ZSxzZXRfbmFub3JvdXRlX21vZGUscmVwbGFjZV90Y2wpICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHJvdXRlLHNldF9uYW5vcm91dGVfbW9kZSxza2lwKSAgICAgICAgICAgICAgICAgICAgICAgICA8dHJ1ZSBvciBmYWxzZT4KLSMgc2V0IHZhcnMocm91dGUsYWRkX2ZpbGxlcl9jZWxscyxwcmVfdGNsKSAgICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhyb3V0ZSxhZGRfZmlsbGVyX2NlbGxzLHBvc3RfdGNsKSAgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHJvdXRlLGFkZF9maWxsZXJfY2VsbHMscmVwbGFjZV90Y2wpICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocm91dGUsYWRkX2ZpbGxlcl9jZWxscyxza2lwKSAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cnVlIG9yIGZhbHNlPgotIyBzZXQgdmFycyhyb3V0ZSxyb3V0ZV9zZWNvbmRhcnlfcGdfbmV0cyxwcmVfdGNsKSAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHJvdXRlLHJvdXRlX3NlY29uZGFyeV9wZ19uZXRzLHBvc3RfdGNsKSAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocm91dGUscm91dGVfc2Vjb25kYXJ5X3BnX25ldHMscmVwbGFjZV90Y2wpICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhyb3V0ZSxyb3V0ZV9zZWNvbmRhcnlfcGdfbmV0cyxza2lwKSAgICAgICAgICAgICAgICAgICAgPHRydWUgb3IgZmFsc2U+Ci0jIHNldCB2YXJzKHJvdXRlLGNoZWNrX3BsYWNlLHByZV90Y2wpICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocm91dGUsY2hlY2tfcGxhY2UscG9zdF90Y2wpICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhyb3V0ZSxjaGVja19wbGFjZSxyZXBsYWNlX3RjbCkgICAgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHJvdXRlLGNoZWNrX3BsYWNlLHNraXApICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHJ1ZSBvciBmYWxzZT4KLSMgc2V0IHZhcnMocm91dGVfZGVzaWduLHNldF9hbmFseXNpc19tb2RlLHByZV90Y2wpICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhyb3V0ZV9kZXNpZ24sc2V0X2FuYWx5c2lzX21vZGUscG9zdF90Y2wpICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHJvdXRlX2Rlc2lnbixzZXRfYW5hbHlzaXNfbW9kZSxyZXBsYWNlX3RjbCkgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocm91dGVfZGVzaWduLHNldF9hbmFseXNpc19tb2RlLHNraXApICAgICAgICAgICAgICAgICAgIDx0cnVlIG9yIGZhbHNlPgotIyBzZXQgdmFycyhyb3V0ZSxyb3V0ZV9kZXNpZ24scHJlX3RjbCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHJvdXRlLHJvdXRlX2Rlc2lnbixwb3N0X3RjbCkgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocm91dGUscm91dGVfZGVzaWduLHJlcGxhY2VfdGNsKSAgICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhyb3V0ZSxyb3V0ZV9kZXNpZ24sc2tpcCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRydWUgb3IgZmFsc2U+Ci0jIHNldCB2YXJzKHJvdXRlLHJ1bl9jbG9ja19lY28scHJlX3RjbCkgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocm91dGUscnVuX2Nsb2NrX2Vjbyxwb3N0X3RjbCkgICAgICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhyb3V0ZSxydW5fY2xvY2tfZWNvLHJlcGxhY2VfdGNsKSAgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHJvdXRlLHJ1bl9jbG9ja19lY28sc2tpcCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHJ1ZSBvciBmYWxzZT4KLSMgc2V0IHZhcnMocm91dGUsc3ByZWFkX3dpcmVzLHByZV90Y2wpICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhyb3V0ZSxzcHJlYWRfd2lyZXMscG9zdF90Y2wpICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHJvdXRlLHNwcmVhZF93aXJlcyxyZXBsYWNlX3RjbCkgICAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocm91dGUsc3ByZWFkX3dpcmVzLHNraXApICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cnVlIG9yIGZhbHNlPgotIyBzZXQgdmFycyhyb3V0ZSxzZXRfZXh0cmFjdF9yY19tb2RlLHByZV90Y2wpICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHJvdXRlLHNldF9leHRyYWN0X3JjX21vZGUscG9zdF90Y2wpICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocm91dGUsc2V0X2V4dHJhY3RfcmNfbW9kZSxyZXBsYWNlX3RjbCkgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhyb3V0ZSxzZXRfZXh0cmFjdF9yY19tb2RlLHNraXApICAgICAgICAgICAgICAgICAgICAgICAgPHRydWUgb3IgZmFsc2U+Ci0jIHNldCB2YXJzKHJvdXRlLGluaXRpYWxpemVfdGltaW5nLHByZV90Y2wpICAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocm91dGUsaW5pdGlhbGl6ZV90aW1pbmcscG9zdF90Y2wpICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhyb3V0ZSxpbml0aWFsaXplX3RpbWluZyxyZXBsYWNlX3RjbCkgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHJvdXRlLGluaXRpYWxpemVfdGltaW5nLHNraXApICAgICAgICAgICAgICAgICAgICAgICAgICA8dHJ1ZSBvciBmYWxzZT4KLSMgc2V0IHZhcnMocm91dGUsdGltZV9kZXNpZ24scHJlX3RjbCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhyb3V0ZSx0aW1lX2Rlc2lnbixwb3N0X3RjbCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHJvdXRlLHRpbWVfZGVzaWduLHJlcGxhY2VfdGNsKSAgICAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocm91dGUsdGltZV9kZXNpZ24sc2tpcCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cnVlIG9yIGZhbHNlPgotIyBzZXQgdmFycyhyb3V0ZSxzYXZlX2Rlc2lnbixwcmVfdGNsKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHJvdXRlLHNhdmVfZGVzaWduLHBvc3RfdGNsKSAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocm91dGUsc2F2ZV9kZXNpZ24scmVwbGFjZV90Y2wpICAgICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhyb3V0ZSxzYXZlX2Rlc2lnbixza2lwKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRydWUgb3IgZmFsc2U+Ci0jIHNldCB2YXJzKHJvdXRlLHJlcG9ydF9wb3dlcixwcmVfdGNsKSAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocm91dGUscmVwb3J0X3Bvd2VyLHBvc3RfdGNsKSAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhyb3V0ZSxyZXBvcnRfcG93ZXIscmVwbGFjZV90Y2wpICAgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHJvdXRlLHJlcG9ydF9wb3dlcixza2lwKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHJ1ZSBvciBmYWxzZT4KLSMgc2V0IHZhcnMocm91dGUsdmVyaWZ5X3Bvd2VyX2RvbWFpbixwcmVfdGNsKSAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhyb3V0ZSx2ZXJpZnlfcG93ZXJfZG9tYWluLHBvc3RfdGNsKSAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHJvdXRlLHZlcmlmeV9wb3dlcl9kb21haW4scmVwbGFjZV90Y2wpICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocm91dGUsdmVyaWZ5X3Bvd2VyX2RvbWFpbixza2lwKSAgICAgICAgICAgICAgICAgICAgICAgIDx0cnVlIG9yIGZhbHNlPgotIyBzZXQgdmFycyhyb3V0ZSxydW5fY2xwLHByZV90Y2wpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHJvdXRlLHJ1bl9jbHAscG9zdF90Y2wpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocm91dGUscnVuX2NscCxyZXBsYWNlX3RjbCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhyb3V0ZSxydW5fY2xwLHNraXApICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRydWUgb3IgZmFsc2U+Ci0jIHNldCB2YXJzKHBvc3Ryb3V0ZSxzZXRfZGlzdHJpYnV0ZV9ob3N0LHByZV90Y2wpICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocG9zdHJvdXRlLHNldF9kaXN0cmlidXRlX2hvc3QscG9zdF90Y2wpICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwb3N0cm91dGUsc2V0X2Rpc3RyaWJ1dGVfaG9zdCxyZXBsYWNlX3RjbCkgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBvc3Ryb3V0ZSxzZXRfZGlzdHJpYnV0ZV9ob3N0LHNraXApICAgICAgICAgICAgICAgICAgICA8dHJ1ZSBvciBmYWxzZT4KLSMgc2V0IHZhcnMocG9zdHJvdXRlLHNldF9tdWx0aV9jcHVfdXNhZ2UscHJlX3RjbCkgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwb3N0cm91dGUsc2V0X211bHRpX2NwdV91c2FnZSxwb3N0X3RjbCkgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBvc3Ryb3V0ZSxzZXRfbXVsdGlfY3B1X3VzYWdlLHJlcGxhY2VfdGNsKSAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocG9zdHJvdXRlLHNldF9tdWx0aV9jcHVfdXNhZ2Usc2tpcCkgICAgICAgICAgICAgICAgICAgIDx0cnVlIG9yIGZhbHNlPgotIyBzZXQgdmFycyhwb3N0cm91dGUsaW5pdGlhbGl6ZV9zdGVwLHByZV90Y2wpICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBvc3Ryb3V0ZSxpbml0aWFsaXplX3N0ZXAscG9zdF90Y2wpICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocG9zdHJvdXRlLGluaXRpYWxpemVfc3RlcCxyZXBsYWNlX3RjbCkgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwb3N0cm91dGUsaW5pdGlhbGl6ZV9zdGVwLHNraXApICAgICAgICAgICAgICAgICAgICAgICAgPHRydWUgb3IgZmFsc2U+Ci0jIHNldCB2YXJzKHBvc3Ryb3V0ZSxzZXRfZGVzaWduX21vZGUscHJlX3RjbCkgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocG9zdHJvdXRlLHNldF9kZXNpZ25fbW9kZSxwb3N0X3RjbCkgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwb3N0cm91dGUsc2V0X2Rlc2lnbl9tb2RlLHJlcGxhY2VfdGNsKSAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBvc3Ryb3V0ZSxzZXRfZGVzaWduX21vZGUsc2tpcCkgICAgICAgICAgICAgICAgICAgICAgICA8dHJ1ZSBvciBmYWxzZT4KLSMgc2V0IHZhcnMocG9zdHJvdXRlLHNldF9leHRyYWN0X3JjX21vZGUscHJlX3RjbCkgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwb3N0cm91dGUsc2V0X2V4dHJhY3RfcmNfbW9kZSxwb3N0X3RjbCkgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBvc3Ryb3V0ZSxzZXRfZXh0cmFjdF9yY19tb2RlLHJlcGxhY2VfdGNsKSAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocG9zdHJvdXRlLHNldF9leHRyYWN0X3JjX21vZGUsc2tpcCkgICAgICAgICAgICAgICAgICAgIDx0cnVlIG9yIGZhbHNlPgotIyBzZXQgdmFycyhwb3N0cm91dGUsc2V0X2FuYWx5c2lzX21vZGUscHJlX3RjbCkgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBvc3Ryb3V0ZSxzZXRfYW5hbHlzaXNfbW9kZSxwb3N0X3RjbCkgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocG9zdHJvdXRlLHNldF9hbmFseXNpc19tb2RlLHJlcGxhY2VfdGNsKSAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwb3N0cm91dGUsc2V0X2FuYWx5c2lzX21vZGUsc2tpcCkgICAgICAgICAgICAgICAgICAgICAgPHRydWUgb3IgZmFsc2U+Ci0jIHNldCB2YXJzKHBvc3Ryb3V0ZSxzZXRfZGVsYXlfY2FsX21vZGUscHJlX3RjbCkgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocG9zdHJvdXRlLHNldF9kZWxheV9jYWxfbW9kZSxwb3N0X3RjbCkgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwb3N0cm91dGUsc2V0X2RlbGF5X2NhbF9tb2RlLHJlcGxhY2VfdGNsKSAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBvc3Ryb3V0ZSxzZXRfZGVsYXlfY2FsX21vZGUsc2tpcCkgICAgICAgICAgICAgICAgICAgICA8dHJ1ZSBvciBmYWxzZT4KLSMgc2V0IHZhcnMocG9zdHJvdXRlLGFkZF9tZXRhbGZpbGwscHJlX3RjbCkgICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwb3N0cm91dGUsYWRkX21ldGFsZmlsbCxwb3N0X3RjbCkgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBvc3Ryb3V0ZSxhZGRfbWV0YWxmaWxsLHJlcGxhY2VfdGNsKSAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocG9zdHJvdXRlLGFkZF9tZXRhbGZpbGwsc2tpcCkgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cnVlIG9yIGZhbHNlPgotIyBzZXQgdmFycyhwb3N0cm91dGUsZGVsZXRlX2ZpbGxlcl9jZWxscyxwcmVfdGNsKSAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBvc3Ryb3V0ZSxkZWxldGVfZmlsbGVyX2NlbGxzLHBvc3RfdGNsKSAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocG9zdHJvdXRlLGRlbGV0ZV9maWxsZXJfY2VsbHMscmVwbGFjZV90Y2wpICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwb3N0cm91dGUsZGVsZXRlX2ZpbGxlcl9jZWxscyxza2lwKSAgICAgICAgICAgICAgICAgICAgPHRydWUgb3IgZmFsc2U+Ci0jIHNldCB2YXJzKHBvc3Ryb3V0ZSxvcHRfZGVzaWduLHByZV90Y2wpICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocG9zdHJvdXRlLG9wdF9kZXNpZ24scG9zdF90Y2wpICAgICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwb3N0cm91dGUsb3B0X2Rlc2lnbixyZXBsYWNlX3RjbCkgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBvc3Ryb3V0ZSxvcHRfZGVzaWduLHNraXApICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHJ1ZSBvciBmYWxzZT4KLSMgc2V0IHZhcnMocG9zdHJvdXRlLGFkZF9maWxsZXJfY2VsbHMscHJlX3RjbCkgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwb3N0cm91dGUsYWRkX2ZpbGxlcl9jZWxscyxwb3N0X3RjbCkgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBvc3Ryb3V0ZSxhZGRfZmlsbGVyX2NlbGxzLHJlcGxhY2VfdGNsKSAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocG9zdHJvdXRlLGFkZF9maWxsZXJfY2VsbHMsc2tpcCkgICAgICAgICAgICAgICAgICAgICAgIDx0cnVlIG9yIGZhbHNlPgotIyBzZXQgdmFycyhwb3N0cm91dGUsdHJpbV9tZXRhbGZpbGwscHJlX3RjbCkgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBvc3Ryb3V0ZSx0cmltX21ldGFsZmlsbCxwb3N0X3RjbCkgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocG9zdHJvdXRlLHRyaW1fbWV0YWxmaWxsLHJlcGxhY2VfdGNsKSAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwb3N0cm91dGUsdHJpbV9tZXRhbGZpbGwsc2tpcCkgICAgICAgICAgICAgICAgICAgICAgICAgPHRydWUgb3IgZmFsc2U+Ci0jIHNldCB2YXJzKHJvdXRlLHZlcmlmeV9saXRobyxwcmVfdGNsKSAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocm91dGUsdmVyaWZ5X2xpdGhvLHBvc3RfdGNsKSAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhyb3V0ZSx2ZXJpZnlfbGl0aG8scmVwbGFjZV90Y2wpICAgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHJvdXRlLHZlcmlmeV9saXRobyxza2lwKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHJ1ZSBvciBmYWxzZT4KLSMgc2V0IHZhcnMocG9zdHJvdXRlLHNhdmVfZGVzaWduLHByZV90Y2wpICAgICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwb3N0cm91dGUsc2F2ZV9kZXNpZ24scG9zdF90Y2wpICAgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBvc3Ryb3V0ZSxzYXZlX2Rlc2lnbixyZXBsYWNlX3RjbCkgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocG9zdHJvdXRlLHNhdmVfZGVzaWduLHNraXApICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cnVlIG9yIGZhbHNlPgotIyBzZXQgdmFycyhwb3N0cm91dGUscmVwb3J0X3Bvd2VyLHByZV90Y2wpICAgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBvc3Ryb3V0ZSxyZXBvcnRfcG93ZXIscG9zdF90Y2wpICAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocG9zdHJvdXRlLHJlcG9ydF9wb3dlcixyZXBsYWNlX3RjbCkgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwb3N0cm91dGUscmVwb3J0X3Bvd2VyLHNraXApICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRydWUgb3IgZmFsc2U+Ci0jIHNldCB2YXJzKHBvc3Ryb3V0ZSx2ZXJpZnlfcG93ZXJfZG9tYWluLHByZV90Y2wpICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocG9zdHJvdXRlLHZlcmlmeV9wb3dlcl9kb21haW4scG9zdF90Y2wpICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwb3N0cm91dGUsdmVyaWZ5X3Bvd2VyX2RvbWFpbixyZXBsYWNlX3RjbCkgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBvc3Ryb3V0ZSx2ZXJpZnlfcG93ZXJfZG9tYWluLHNraXApICAgICAgICAgICAgICAgICAgICA8dHJ1ZSBvciBmYWxzZT4KLSMgc2V0IHZhcnMocG9zdHJvdXRlLHJ1bl9jbHAscHJlX3RjbCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwb3N0cm91dGUscnVuX2NscCxwb3N0X3RjbCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBvc3Ryb3V0ZSxydW5fY2xwLHJlcGxhY2VfdGNsKSAgICAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocG9zdHJvdXRlLHJ1bl9jbHAsc2tpcCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cnVlIG9yIGZhbHNlPgotIyBzZXQgdmFycyhwb3N0cm91dGVfaG9sZCxzZXRfZGlzdHJpYnV0ZV9ob3N0LHByZV90Y2wpICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBvc3Ryb3V0ZV9ob2xkLHNldF9kaXN0cmlidXRlX2hvc3QscG9zdF90Y2wpICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocG9zdHJvdXRlX2hvbGQsc2V0X2Rpc3RyaWJ1dGVfaG9zdCxyZXBsYWNlX3RjbCkgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwb3N0cm91dGVfaG9sZCxzZXRfZGlzdHJpYnV0ZV9ob3N0LHNraXApICAgICAgICAgICAgICAgPHRydWUgb3IgZmFsc2U+Ci0jIHNldCB2YXJzKHBvc3Ryb3V0ZV9ob2xkLHNldF9tdWx0aV9jcHVfdXNhZ2UscHJlX3RjbCkgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocG9zdHJvdXRlX2hvbGQsc2V0X211bHRpX2NwdV91c2FnZSxwb3N0X3RjbCkgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwb3N0cm91dGVfaG9sZCxzZXRfbXVsdGlfY3B1X3VzYWdlLHJlcGxhY2VfdGNsKSAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBvc3Ryb3V0ZV9ob2xkLHNldF9tdWx0aV9jcHVfdXNhZ2Usc2tpcCkgICAgICAgICAgICAgICA8dHJ1ZSBvciBmYWxzZT4KLSMgc2V0IHZhcnMocG9zdHJvdXRlX2hvbGQsaW5pdGlhbGl6ZV9zdGVwLHByZV90Y2wpICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwb3N0cm91dGVfaG9sZCxpbml0aWFsaXplX3N0ZXAscG9zdF90Y2wpICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBvc3Ryb3V0ZV9ob2xkLGluaXRpYWxpemVfc3RlcCxyZXBsYWNlX3RjbCkgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocG9zdHJvdXRlX2hvbGQsaW5pdGlhbGl6ZV9zdGVwLHNraXApICAgICAgICAgICAgICAgICAgIDx0cnVlIG9yIGZhbHNlPgotIyBzZXQgdmFycyhwb3N0cm91dGVfaG9sZCxzZXRfZGVzaWduX21vZGUscHJlX3RjbCkgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBvc3Ryb3V0ZV9ob2xkLHNldF9kZXNpZ25fbW9kZSxwb3N0X3RjbCkgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocG9zdHJvdXRlX2hvbGQsc2V0X2Rlc2lnbl9tb2RlLHJlcGxhY2VfdGNsKSAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwb3N0cm91dGVfaG9sZCxzZXRfZGVzaWduX21vZGUsc2tpcCkgICAgICAgICAgICAgICAgICAgPHRydWUgb3IgZmFsc2U+Ci0jIHNldCB2YXJzKHBvc3Ryb3V0ZV9ob2xkLHNldF9leHRyYWN0X3JjX21vZGUscHJlX3RjbCkgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocG9zdHJvdXRlX2hvbGQsc2V0X2V4dHJhY3RfcmNfbW9kZSxwb3N0X3RjbCkgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwb3N0cm91dGVfaG9sZCxzZXRfZXh0cmFjdF9yY19tb2RlLHJlcGxhY2VfdGNsKSAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBvc3Ryb3V0ZV9ob2xkLHNldF9leHRyYWN0X3JjX21vZGUsc2tpcCkgICAgICAgICAgICAgICA8dHJ1ZSBvciBmYWxzZT4KLSMgc2V0IHZhcnMocG9zdHJvdXRlX2hvbGQsc2V0X2RvbnRfdXNlX21vZGUscHJlX3RjbCkgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwb3N0cm91dGVfaG9sZCxzZXRfZG9udF91c2VfbW9kZSxwb3N0X3RjbCkgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBvc3Ryb3V0ZV9ob2xkLHNldF9kb250X3VzZV9tb2RlLHJlcGxhY2VfdGNsKSAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocG9zdHJvdXRlX2hvbGQsc2V0X2RvbnRfdXNlX21vZGUsc2tpcCkgICAgICAgICAgICAgICAgIDx0cnVlIG9yIGZhbHNlPgotIyBzZXQgdmFycyhwb3N0cm91dGVfaG9sZCxzZXRfb3B0X21vZGUscHJlX3RjbCkgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBvc3Ryb3V0ZV9ob2xkLHNldF9vcHRfbW9kZSxwb3N0X3RjbCkgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocG9zdHJvdXRlX2hvbGQsc2V0X29wdF9tb2RlLHJlcGxhY2VfdGNsKSAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwb3N0cm91dGVfaG9sZCxzZXRfb3B0X21vZGUsc2tpcCkgICAgICAgICAgICAgICAgICAgICAgPHRydWUgb3IgZmFsc2U+Ci0jIHNldCB2YXJzKHBvc3Ryb3V0ZV9ob2xkLGRlbGV0ZV9maWxsZXJfY2VsbHMscHJlX3RjbCkgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocG9zdHJvdXRlX2hvbGQsZGVsZXRlX2ZpbGxlcl9jZWxscyxwb3N0X3RjbCkgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwb3N0cm91dGVfaG9sZCxkZWxldGVfZmlsbGVyX2NlbGxzLHJlcGxhY2VfdGNsKSAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBvc3Ryb3V0ZV9ob2xkLGRlbGV0ZV9maWxsZXJfY2VsbHMsc2tpcCkgICAgICAgICAgICAgICA8dHJ1ZSBvciBmYWxzZT4KLSMgc2V0IHZhcnMocG9zdHJvdXRlX2hvbGQsb3B0X2Rlc2lnbixwcmVfdGNsKSAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwb3N0cm91dGVfaG9sZCxvcHRfZGVzaWduLHBvc3RfdGNsKSAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBvc3Ryb3V0ZV9ob2xkLG9wdF9kZXNpZ24scmVwbGFjZV90Y2wpICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocG9zdHJvdXRlX2hvbGQsb3B0X2Rlc2lnbixza2lwKSAgICAgICAgICAgICAgICAgICAgICAgIDx0cnVlIG9yIGZhbHNlPgotIyBzZXQgdmFycyhwb3N0cm91dGVfaG9sZCxhZGRfZmlsbGVyX2NlbGxzLHByZV90Y2wpICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBvc3Ryb3V0ZV9ob2xkLGFkZF9maWxsZXJfY2VsbHMscG9zdF90Y2wpICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocG9zdHJvdXRlX2hvbGQsYWRkX2ZpbGxlcl9jZWxscyxyZXBsYWNlX3RjbCkgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwb3N0cm91dGVfaG9sZCxhZGRfZmlsbGVyX2NlbGxzLHNraXApICAgICAgICAgICAgICAgICAgPHRydWUgb3IgZmFsc2U+Ci0jIHNldCB2YXJzKHBvc3Ryb3V0ZV9ob2xkLHRyaW1fbWV0YWxmaWxsLHByZV90Y2wpICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocG9zdHJvdXRlX2hvbGQsdHJpbV9tZXRhbGZpbGwscG9zdF90Y2wpICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwb3N0cm91dGVfaG9sZCx0cmltX21ldGFsZmlsbCxyZXBsYWNlX3RjbCkgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBvc3Ryb3V0ZV9ob2xkLHRyaW1fbWV0YWxmaWxsLHNraXApICAgICAgICAgICAgICAgICAgICA8dHJ1ZSBvciBmYWxzZT4KLSMgc2V0IHZhcnMocG9zdHJvdXRlX2hvbGQsc2F2ZV9kZXNpZ24scHJlX3RjbCkgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwb3N0cm91dGVfaG9sZCxzYXZlX2Rlc2lnbixwb3N0X3RjbCkgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBvc3Ryb3V0ZV9ob2xkLHNhdmVfZGVzaWduLHJlcGxhY2VfdGNsKSAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocG9zdHJvdXRlX2hvbGQsc2F2ZV9kZXNpZ24sc2tpcCkgICAgICAgICAgICAgICAgICAgICAgIDx0cnVlIG9yIGZhbHNlPgotIyBzZXQgdmFycyhwb3N0cm91dGVfaG9sZCxyZXBvcnRfcG93ZXIscHJlX3RjbCkgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBvc3Ryb3V0ZV9ob2xkLHJlcG9ydF9wb3dlcixwb3N0X3RjbCkgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocG9zdHJvdXRlX2hvbGQscmVwb3J0X3Bvd2VyLHJlcGxhY2VfdGNsKSAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwb3N0cm91dGVfaG9sZCxyZXBvcnRfcG93ZXIsc2tpcCkgICAgICAgICAgICAgICAgICAgICAgPHRydWUgb3IgZmFsc2U+Ci0jIHNldCB2YXJzKHBvc3Ryb3V0ZV9ob2xkLHZlcmlmeV9wb3dlcl9kb21haW4scHJlX3RjbCkgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocG9zdHJvdXRlX2hvbGQsdmVyaWZ5X3Bvd2VyX2RvbWFpbixwb3N0X3RjbCkgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwb3N0cm91dGVfaG9sZCx2ZXJpZnlfcG93ZXJfZG9tYWluLHJlcGxhY2VfdGNsKSAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBvc3Ryb3V0ZV9ob2xkLHZlcmlmeV9wb3dlcl9kb21haW4sc2tpcCkgICAgICAgICAgICAgICA8dHJ1ZSBvciBmYWxzZT4KLSMgc2V0IHZhcnMocG9zdHJvdXRlX2hvbGQscnVuX2NscCxwcmVfdGNsKSAgICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwb3N0cm91dGVfaG9sZCxydW5fY2xwLHBvc3RfdGNsKSAgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBvc3Ryb3V0ZV9ob2xkLHJ1bl9jbHAscmVwbGFjZV90Y2wpICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocG9zdHJvdXRlX2hvbGQscnVuX2NscCxza2lwKSAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cnVlIG9yIGZhbHNlPgotIyBzZXQgdmFycyhwb3N0cm91dGVfc2lfaG9sZCxzZXRfZGlzdHJpYnV0ZV9ob3N0LHByZV90Y2wpICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBvc3Ryb3V0ZV9zaV9ob2xkLHNldF9kaXN0cmlidXRlX2hvc3QscG9zdF90Y2wpICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocG9zdHJvdXRlX3NpX2hvbGQsc2V0X2Rpc3RyaWJ1dGVfaG9zdCxyZXBsYWNlX3RjbCkgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwb3N0cm91dGVfc2lfaG9sZCxzZXRfZGlzdHJpYnV0ZV9ob3N0LHNraXApICAgICAgICAgICAgPHRydWUgb3IgZmFsc2U+Ci0jIHNldCB2YXJzKHBvc3Ryb3V0ZV9zaV9ob2xkLHNldF9tdWx0aV9jcHVfdXNhZ2UscHJlX3RjbCkgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocG9zdHJvdXRlX3NpX2hvbGQsc2V0X211bHRpX2NwdV91c2FnZSxwb3N0X3RjbCkgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwb3N0cm91dGVfc2lfaG9sZCxzZXRfbXVsdGlfY3B1X3VzYWdlLHJlcGxhY2VfdGNsKSAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBvc3Ryb3V0ZV9zaV9ob2xkLHNldF9tdWx0aV9jcHVfdXNhZ2Usc2tpcCkgICAgICAgICAgICA8dHJ1ZSBvciBmYWxzZT4KLSMgc2V0IHZhcnMocG9zdHJvdXRlX3NpX2hvbGQsaW5pdGlhbGl6ZV9zdGVwLHByZV90Y2wpICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwb3N0cm91dGVfc2lfaG9sZCxpbml0aWFsaXplX3N0ZXAscG9zdF90Y2wpICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBvc3Ryb3V0ZV9zaV9ob2xkLGluaXRpYWxpemVfc3RlcCxyZXBsYWNlX3RjbCkgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocG9zdHJvdXRlX3NpX2hvbGQsaW5pdGlhbGl6ZV9zdGVwLHNraXApICAgICAgICAgICAgICAgIDx0cnVlIG9yIGZhbHNlPgotIyBzZXQgdmFycyhwb3N0cm91dGVfc2lfaG9sZCxzZXRfZGVzaWduX21vZGUscHJlX3RjbCkgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBvc3Ryb3V0ZV9zaV9ob2xkLHNldF9kZXNpZ25fbW9kZSxwb3N0X3RjbCkgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocG9zdHJvdXRlX3NpX2hvbGQsc2V0X2Rlc2lnbl9tb2RlLHJlcGxhY2VfdGNsKSAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwb3N0cm91dGVfc2lfaG9sZCxzZXRfZGVzaWduX21vZGUsc2tpcCkgICAgICAgICAgICAgICAgPHRydWUgb3IgZmFsc2U+Ci0jIHNldCB2YXJzKHBvc3Ryb3V0ZV9zaV9ob2xkLHNldF9kb250X3VzZSxwcmVfdGNsKSAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocG9zdHJvdXRlX3NpX2hvbGQsc2V0X2RvbnRfdXNlLHBvc3RfdGNsKSAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwb3N0cm91dGVfc2lfaG9sZCxzZXRfZG9udF91c2UscmVwbGFjZV90Y2wpICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBvc3Ryb3V0ZV9zaV9ob2xkLHNldF9kb250X3VzZSxza2lwKSAgICAgICAgICAgICAgICAgICA8dHJ1ZSBvciBmYWxzZT4KLSMgc2V0IHZhcnMocG9zdHJvdXRlX3NpX2hvbGQsc2V0X29wdF9tb2RlLHByZV90Y2wpICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwb3N0cm91dGVfc2lfaG9sZCxzZXRfb3B0X21vZGUscG9zdF90Y2wpICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBvc3Ryb3V0ZV9zaV9ob2xkLHNldF9vcHRfbW9kZSxyZXBsYWNlX3RjbCkgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocG9zdHJvdXRlX3NpX2hvbGQsc2V0X29wdF9tb2RlLHNraXApICAgICAgICAgICAgICAgICAgIDx0cnVlIG9yIGZhbHNlPgotIyBzZXQgdmFycyhwb3N0cm91dGVfc2lfaG9sZCxzZXRfZXh0cmFjdF9yY19tb2RlLHByZV90Y2wpICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBvc3Ryb3V0ZV9zaV9ob2xkLHNldF9leHRyYWN0X3JjX21vZGUscG9zdF90Y2wpICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocG9zdHJvdXRlX3NpX2hvbGQsc2V0X2V4dHJhY3RfcmNfbW9kZSxyZXBsYWNlX3RjbCkgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwb3N0cm91dGVfc2lfaG9sZCxzZXRfZXh0cmFjdF9yY19tb2RlLHNraXApICAgICAgICAgICAgPHRydWUgb3IgZmFsc2U+Ci0jIHNldCB2YXJzKHBvc3Ryb3V0ZV9zaV9ob2xkLHNldF9zaV9tb2RlLHByZV90Y2wpICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocG9zdHJvdXRlX3NpX2hvbGQsc2V0X3NpX21vZGUscG9zdF90Y2wpICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwb3N0cm91dGVfc2lfaG9sZCxzZXRfc2lfbW9kZSxyZXBsYWNlX3RjbCkgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBvc3Ryb3V0ZV9zaV9ob2xkLHNldF9zaV9tb2RlLHNraXApICAgICAgICAgICAgICAgICAgICA8dHJ1ZSBvciBmYWxzZT4KLSMgc2V0IHZhcnMocG9zdHJvdXRlX3NpX2hvbGQsc2V0X2RlbGF5X2NhbF9tb2RlLHByZV90Y2wpICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwb3N0cm91dGVfc2lfaG9sZCxzZXRfZGVsYXlfY2FsX21vZGUscG9zdF90Y2wpICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBvc3Ryb3V0ZV9zaV9ob2xkLHNldF9kZWxheV9jYWxfbW9kZSxyZXBsYWNlX3RjbCkgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocG9zdHJvdXRlX3NpX2hvbGQsc2V0X2RlbGF5X2NhbF9tb2RlLHNraXApICAgICAgICAgICAgIDx0cnVlIG9yIGZhbHNlPgotIyBzZXQgdmFycyhwb3N0cm91dGVfc2lfaG9sZCxzZXRfYW5hbHlzaXNfbW9kZSxwcmVfdGNsKSAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBvc3Ryb3V0ZV9zaV9ob2xkLHNldF9hbmFseXNpc19tb2RlLHBvc3RfdGNsKSAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocG9zdHJvdXRlX3NpX2hvbGQsc2V0X2FuYWx5c2lzX21vZGUscmVwbGFjZV90Y2wpICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwb3N0cm91dGVfc2lfaG9sZCxzZXRfYW5hbHlzaXNfbW9kZSxza2lwKSAgICAgICAgICAgICAgPHRydWUgb3IgZmFsc2U+Ci0jIHNldCB2YXJzKHBvc3Ryb3V0ZV9zaV9ob2xkLGFkZF9tZXRhbGZpbGwscHJlX3RjbCkgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocG9zdHJvdXRlX3NpX2hvbGQsYWRkX21ldGFsZmlsbCxwb3N0X3RjbCkgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwb3N0cm91dGVfc2lfaG9sZCxhZGRfbWV0YWxmaWxsLHJlcGxhY2VfdGNsKSAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBvc3Ryb3V0ZV9zaV9ob2xkLGFkZF9tZXRhbGZpbGwsc2tpcCkgICAgICAgICAgICAgICAgICA8dHJ1ZSBvciBmYWxzZT4KLSMgc2V0IHZhcnMocG9zdHJvdXRlX3NpX2hvbGQsZGVsZXRlX2ZpbGxlcl9jZWxscyxwcmVfdGNsKSAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwb3N0cm91dGVfc2lfaG9sZCxkZWxldGVfZmlsbGVyX2NlbGxzLHBvc3RfdGNsKSAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBvc3Ryb3V0ZV9zaV9ob2xkLGRlbGV0ZV9maWxsZXJfY2VsbHMscmVwbGFjZV90Y2wpICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocG9zdHJvdXRlX3NpX2hvbGQsZGVsZXRlX2ZpbGxlcl9jZWxscyxza2lwKSAgICAgICAgICAgIDx0cnVlIG9yIGZhbHNlPgotIyBzZXQgdmFycyhwb3N0cm91dGVfc2lfaG9sZCxvcHRfZGVzaWduLHByZV90Y2wpICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBvc3Ryb3V0ZV9zaV9ob2xkLG9wdF9kZXNpZ24scG9zdF90Y2wpICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocG9zdHJvdXRlX3NpX2hvbGQsb3B0X2Rlc2lnbixyZXBsYWNlX3RjbCkgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwb3N0cm91dGVfc2lfaG9sZCxvcHRfZGVzaWduLHNraXApICAgICAgICAgICAgICAgICAgICAgPHRydWUgb3IgZmFsc2U+Ci0jIHNldCB2YXJzKHBvc3Ryb3V0ZV9zaV9ob2xkLGFkZF9maWxsZXJfY2VsbHMscHJlX3RjbCkgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocG9zdHJvdXRlX3NpX2hvbGQsYWRkX2ZpbGxlcl9jZWxscyxwb3N0X3RjbCkgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwb3N0cm91dGVfc2lfaG9sZCxhZGRfZmlsbGVyX2NlbGxzLHJlcGxhY2VfdGNsKSAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBvc3Ryb3V0ZV9zaV9ob2xkLGFkZF9maWxsZXJfY2VsbHMsc2tpcCkgICAgICAgICAgICAgICA8dHJ1ZSBvciBmYWxzZT4KLSMgc2V0IHZhcnMocG9zdHJvdXRlX3NpX2hvbGQsdHJpbV9tZXRhbGZpbGwscHJlX3RjbCkgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwb3N0cm91dGVfc2lfaG9sZCx0cmltX21ldGFsZmlsbCxwb3N0X3RjbCkgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBvc3Ryb3V0ZV9zaV9ob2xkLHRyaW1fbWV0YWxmaWxsLHJlcGxhY2VfdGNsKSAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocG9zdHJvdXRlX3NpX2hvbGQsdHJpbV9tZXRhbGZpbGwsc2tpcCkgICAgICAgICAgICAgICAgIDx0cnVlIG9yIGZhbHNlPgotIyBzZXQgdmFycyhwb3N0cm91dGVfc2lfaG9sZCxzYXZlX2Rlc2lnbixwcmVfdGNsKSAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBvc3Ryb3V0ZV9zaV9ob2xkLHNhdmVfZGVzaWduLHBvc3RfdGNsKSAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocG9zdHJvdXRlX3NpX2hvbGQsc2F2ZV9kZXNpZ24scmVwbGFjZV90Y2wpICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwb3N0cm91dGVfc2lfaG9sZCxzYXZlX2Rlc2lnbixza2lwKSAgICAgICAgICAgICAgICAgICAgPHRydWUgb3IgZmFsc2U+Ci0jIHNldCB2YXJzKHBvc3Ryb3V0ZV9zaV9ob2xkLHJlcG9ydF9wb3dlcixwcmVfdGNsKSAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocG9zdHJvdXRlX3NpX2hvbGQscmVwb3J0X3Bvd2VyLHBvc3RfdGNsKSAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwb3N0cm91dGVfc2lfaG9sZCxyZXBvcnRfcG93ZXIscmVwbGFjZV90Y2wpICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBvc3Ryb3V0ZV9zaV9ob2xkLHJlcG9ydF9wb3dlcixza2lwKSAgICAgICAgICAgICAgICAgICA8dHJ1ZSBvciBmYWxzZT4KLSMgc2V0IHZhcnMocG9zdHJvdXRlX3NpX2hvbGQsdmVyaWZ5X3Bvd2VyX2RvbWFpbixwcmVfdGNsKSAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwb3N0cm91dGVfc2lfaG9sZCx2ZXJpZnlfcG93ZXJfZG9tYWluLHBvc3RfdGNsKSAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBvc3Ryb3V0ZV9zaV9ob2xkLHZlcmlmeV9wb3dlcl9kb21haW4scmVwbGFjZV90Y2wpICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocG9zdHJvdXRlX3NpX2hvbGQsdmVyaWZ5X3Bvd2VyX2RvbWFpbixza2lwKSAgICAgICAgICAgIDx0cnVlIG9yIGZhbHNlPgotIyBzZXQgdmFycyhwb3N0cm91dGVfc2lfaG9sZCxydW5fY2xwLHByZV90Y2wpICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBvc3Ryb3V0ZV9zaV9ob2xkLHJ1bl9jbHAscG9zdF90Y2wpICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocG9zdHJvdXRlX3NpX2hvbGQscnVuX2NscCxyZXBsYWNlX3RjbCkgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwb3N0cm91dGVfc2lfaG9sZCxydW5fY2xwLHNraXApICAgICAgICAgICAgICAgICAgICAgICAgPHRydWUgb3IgZmFsc2U+Ci0jIHNldCB2YXJzKHBvc3Ryb3V0ZV9zaSxzZXRfZGlzdHJpYnV0ZV9ob3N0LHByZV90Y2wpICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocG9zdHJvdXRlX3NpLHNldF9kaXN0cmlidXRlX2hvc3QscG9zdF90Y2wpICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwb3N0cm91dGVfc2ksc2V0X2Rpc3RyaWJ1dGVfaG9zdCxyZXBsYWNlX3RjbCkgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBvc3Ryb3V0ZV9zaSxzZXRfZGlzdHJpYnV0ZV9ob3N0LHNraXApICAgICAgICAgICAgICAgICA8dHJ1ZSBvciBmYWxzZT4KLSMgc2V0IHZhcnMocG9zdHJvdXRlX3NpLHNldF9tdWx0aV9jcHVfdXNhZ2UscHJlX3RjbCkgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwb3N0cm91dGVfc2ksc2V0X211bHRpX2NwdV91c2FnZSxwb3N0X3RjbCkgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBvc3Ryb3V0ZV9zaSxzZXRfbXVsdGlfY3B1X3VzYWdlLHJlcGxhY2VfdGNsKSAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocG9zdHJvdXRlX3NpLHNldF9tdWx0aV9jcHVfdXNhZ2Usc2tpcCkgICAgICAgICAgICAgICAgIDx0cnVlIG9yIGZhbHNlPgotIyBzZXQgdmFycyhwb3N0cm91dGVfc2ksaW5pdGlhbGl6ZV9zdGVwLHByZV90Y2wpICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBvc3Ryb3V0ZV9zaSxpbml0aWFsaXplX3N0ZXAscG9zdF90Y2wpICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocG9zdHJvdXRlX3NpLGluaXRpYWxpemVfc3RlcCxyZXBsYWNlX3RjbCkgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwb3N0cm91dGVfc2ksaW5pdGlhbGl6ZV9zdGVwLHNraXApICAgICAgICAgICAgICAgICAgICAgPHRydWUgb3IgZmFsc2U+Ci0jIHNldCB2YXJzKHBvc3Ryb3V0ZV9zaSxzZXRfZGVzaWduX21vZGUscHJlX3RjbCkgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocG9zdHJvdXRlX3NpLHNldF9kZXNpZ25fbW9kZSxwb3N0X3RjbCkgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwb3N0cm91dGVfc2ksc2V0X2Rlc2lnbl9tb2RlLHJlcGxhY2VfdGNsKSAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBvc3Ryb3V0ZV9zaSxzZXRfZGVzaWduX21vZGUsc2tpcCkgICAgICAgICAgICAgICAgICAgICA8dHJ1ZSBvciBmYWxzZT4KLSMgc2V0IHZhcnMocG9zdHJvdXRlX3NpLHNldF9leHRyYWN0X3JjX21vZGUscHJlX3RjbCkgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwb3N0cm91dGVfc2ksc2V0X2V4dHJhY3RfcmNfbW9kZSxwb3N0X3RjbCkgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBvc3Ryb3V0ZV9zaSxzZXRfZXh0cmFjdF9yY19tb2RlLHJlcGxhY2VfdGNsKSAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocG9zdHJvdXRlX3NpLHNldF9leHRyYWN0X3JjX21vZGUsc2tpcCkgICAgICAgICAgICAgICAgIDx0cnVlIG9yIGZhbHNlPgotIyBzZXQgdmFycyhwb3N0cm91dGVfc2ksc2V0X3NpX21vZGUscHJlX3RjbCkgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBvc3Ryb3V0ZV9zaSxzZXRfc2lfbW9kZSxwb3N0X3RjbCkgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocG9zdHJvdXRlX3NpLHNldF9zaV9tb2RlLHJlcGxhY2VfdGNsKSAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwb3N0cm91dGVfc2ksc2V0X3NpX21vZGUsc2tpcCkgICAgICAgICAgICAgICAgICAgICAgICAgPHRydWUgb3IgZmFsc2U+Ci0jIHNldCB2YXJzKHBvc3Ryb3V0ZV9zaSxzZXRfYW5hbHlzaXNfbW9kZSxwcmVfdGNsKSAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocG9zdHJvdXRlX3NpLHNldF9hbmFseXNpc19tb2RlLHBvc3RfdGNsKSAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwb3N0cm91dGVfc2ksc2V0X2FuYWx5c2lzX21vZGUscmVwbGFjZV90Y2wpICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBvc3Ryb3V0ZV9zaSxzZXRfYW5hbHlzaXNfbW9kZSxza2lwKSAgICAgICAgICAgICAgICAgICA8dHJ1ZSBvciBmYWxzZT4KLSMgc2V0IHZhcnMocG9zdHJvdXRlX3NpLHNldF9kZWxheV9jYWxfbW9kZSxwcmVfdGNsKSAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwb3N0cm91dGVfc2ksc2V0X2RlbGF5X2NhbF9tb2RlLHBvc3RfdGNsKSAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBvc3Ryb3V0ZV9zaSxzZXRfZGVsYXlfY2FsX21vZGUscmVwbGFjZV90Y2wpICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocG9zdHJvdXRlX3NpLHNldF9kZWxheV9jYWxfbW9kZSxza2lwKSAgICAgICAgICAgICAgICAgIDx0cnVlIG9yIGZhbHNlPgotIyBzZXQgdmFycyhwb3N0cm91dGVfc2ksYWRkX21ldGFsZmlsbCxwcmVfdGNsKSAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBvc3Ryb3V0ZV9zaSxhZGRfbWV0YWxmaWxsLHBvc3RfdGNsKSAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocG9zdHJvdXRlX3NpLGFkZF9tZXRhbGZpbGwscmVwbGFjZV90Y2wpICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwb3N0cm91dGVfc2ksYWRkX21ldGFsZmlsbCxza2lwKSAgICAgICAgICAgICAgICAgICAgICAgPHRydWUgb3IgZmFsc2U+Ci0jIHNldCB2YXJzKHBvc3Ryb3V0ZV9zaSxkZWxldGVfZmlsbGVyX2NlbGxzLHByZV90Y2wpICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocG9zdHJvdXRlX3NpLGRlbGV0ZV9maWxsZXJfY2VsbHMscG9zdF90Y2wpICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwb3N0cm91dGVfc2ksZGVsZXRlX2ZpbGxlcl9jZWxscyxyZXBsYWNlX3RjbCkgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBvc3Ryb3V0ZV9zaSxkZWxldGVfZmlsbGVyX2NlbGxzLHNraXApICAgICAgICAgICAgICAgICA8dHJ1ZSBvciBmYWxzZT4KLSMgc2V0IHZhcnMocG9zdHJvdXRlX3NpLG9wdF9kZXNpZ24scHJlX3RjbCkgICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwb3N0cm91dGVfc2ksb3B0X2Rlc2lnbixwb3N0X3RjbCkgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBvc3Ryb3V0ZV9zaSxvcHRfZGVzaWduLHJlcGxhY2VfdGNsKSAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocG9zdHJvdXRlX3NpLG9wdF9kZXNpZ24sc2tpcCkgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cnVlIG9yIGZhbHNlPgotIyBzZXQgdmFycyhwb3N0cm91dGVfc2ksYWRkX2ZpbGxlcl9jZWxscyxwcmVfdGNsKSAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBvc3Ryb3V0ZV9zaSxhZGRfZmlsbGVyX2NlbGxzLHBvc3RfdGNsKSAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocG9zdHJvdXRlX3NpLGFkZF9maWxsZXJfY2VsbHMscmVwbGFjZV90Y2wpICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwb3N0cm91dGVfc2ksYWRkX2ZpbGxlcl9jZWxscyxza2lwKSAgICAgICAgICAgICAgICAgICAgPHRydWUgb3IgZmFsc2U+Ci0jIHNldCB2YXJzKHBvc3Ryb3V0ZV9zaSx0cmltX21ldGFsZmlsbCxwcmVfdGNsKSAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocG9zdHJvdXRlX3NpLHRyaW1fbWV0YWxmaWxsLHBvc3RfdGNsKSAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwb3N0cm91dGVfc2ksdHJpbV9tZXRhbGZpbGwscmVwbGFjZV90Y2wpICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBvc3Ryb3V0ZV9zaSx0cmltX21ldGFsZmlsbCxza2lwKSAgICAgICAgICAgICAgICAgICAgICA8dHJ1ZSBvciBmYWxzZT4KLSMgc2V0IHZhcnMocG9zdHJvdXRlX3NpLHNhdmVfZGVzaWduLHByZV90Y2wpICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwb3N0cm91dGVfc2ksc2F2ZV9kZXNpZ24scG9zdF90Y2wpICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBvc3Ryb3V0ZV9zaSxzYXZlX2Rlc2lnbixyZXBsYWNlX3RjbCkgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocG9zdHJvdXRlX3NpLHNhdmVfZGVzaWduLHNraXApICAgICAgICAgICAgICAgICAgICAgICAgIDx0cnVlIG9yIGZhbHNlPgotIyBzZXQgdmFycyhwb3N0cm91dGVfc2kscmVwb3J0X3Bvd2VyLHByZV90Y2wpICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBvc3Ryb3V0ZV9zaSxyZXBvcnRfcG93ZXIscG9zdF90Y2wpICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocG9zdHJvdXRlX3NpLHJlcG9ydF9wb3dlcixyZXBsYWNlX3RjbCkgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwb3N0cm91dGVfc2kscmVwb3J0X3Bvd2VyLHNraXApICAgICAgICAgICAgICAgICAgICAgICAgPHRydWUgb3IgZmFsc2U+Ci0jIHNldCB2YXJzKHBvc3Ryb3V0ZV9zaSx2ZXJpZnlfcG93ZXJfZG9tYWluLHByZV90Y2wpICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocG9zdHJvdXRlX3NpLHZlcmlmeV9wb3dlcl9kb21haW4scG9zdF90Y2wpICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwb3N0cm91dGVfc2ksdmVyaWZ5X3Bvd2VyX2RvbWFpbixyZXBsYWNlX3RjbCkgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBvc3Ryb3V0ZV9zaSx2ZXJpZnlfcG93ZXJfZG9tYWluLHNraXApICAgICAgICAgICAgICAgICA8dHJ1ZSBvciBmYWxzZT4KLSMgc2V0IHZhcnMocG9zdHJvdXRlX3NpLHJ1bl9jbHAscHJlX3RjbCkgICAgICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwb3N0cm91dGVfc2kscnVuX2NscCxwb3N0X3RjbCkgICAgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBvc3Ryb3V0ZV9zaSxydW5fY2xwLHJlcGxhY2VfdGNsKSAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocG9zdHJvdXRlX3NpLHJ1bl9jbHAsc2tpcCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cnVlIG9yIGZhbHNlPgotIyBzZXQgdmFycyhzaWdub2ZmLGZpeF9saXRobyxwcmVfdGNsKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHNpZ25vZmYsZml4X2xpdGhvLHBvc3RfdGNsKSAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMoc2lnbm9mZixmaXhfbGl0aG8scmVwbGFjZV90Y2wpICAgICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhzaWdub2ZmLGZpeF9saXRobyxza2lwKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRydWUgb3IgZmFsc2U+Ci0jIHNldCB2YXJzKHNpZ25vZmYsYWRkX21ldGFsZmlsbCxwcmVfdGNsKSAgICAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMoc2lnbm9mZixhZGRfbWV0YWxmaWxsLHBvc3RfdGNsKSAgICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhzaWdub2ZmLGFkZF9tZXRhbGZpbGwscmVwbGFjZV90Y2wpICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHNpZ25vZmYsYWRkX21ldGFsZmlsbCxza2lwKSAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHJ1ZSBvciBmYWxzZT4KLSMgc2V0IHZhcnMoc2lnbm9mZixzZXRfZGlzdHJpYnV0ZV9ob3N0LHByZV90Y2wpICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhzaWdub2ZmLHNldF9kaXN0cmlidXRlX2hvc3QscG9zdF90Y2wpICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHNpZ25vZmYsc2V0X2Rpc3RyaWJ1dGVfaG9zdCxyZXBsYWNlX3RjbCkgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMoc2lnbm9mZixzZXRfZGlzdHJpYnV0ZV9ob3N0LHNraXApICAgICAgICAgICAgICAgICAgICAgIDx0cnVlIG9yIGZhbHNlPgotIyBzZXQgdmFycyhzaWdub2ZmLHNldF9tdWx0aV9jcHVfdXNhZ2UscHJlX3RjbCkgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHNpZ25vZmYsc2V0X211bHRpX2NwdV91c2FnZSxwb3N0X3RjbCkgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMoc2lnbm9mZixzZXRfbXVsdGlfY3B1X3VzYWdlLHJlcGxhY2VfdGNsKSAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhzaWdub2ZmLHNldF9tdWx0aV9jcHVfdXNhZ2Usc2tpcCkgICAgICAgICAgICAgICAgICAgICAgPHRydWUgb3IgZmFsc2U+Ci0jIHNldCB2YXJzKHNpZ25vZmYsc2V0X2Rlc2lnbl9tb2RlLHByZV90Y2wpICAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMoc2lnbm9mZixzZXRfZGVzaWduX21vZGUscG9zdF90Y2wpICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhzaWdub2ZmLHNldF9kZXNpZ25fbW9kZSxyZXBsYWNlX3RjbCkgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHNpZ25vZmYsc2V0X2Rlc2lnbl9tb2RlLHNraXApICAgICAgICAgICAgICAgICAgICAgICAgICA8dHJ1ZSBvciBmYWxzZT4KLSMgc2V0IHZhcnMoc2lnbm9mZixpbml0aWFsaXplX3RpbWluZyxwcmVfdGNsKSAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhzaWdub2ZmLGluaXRpYWxpemVfdGltaW5nLHBvc3RfdGNsKSAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHNpZ25vZmYsaW5pdGlhbGl6ZV90aW1pbmcscmVwbGFjZV90Y2wpICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMoc2lnbm9mZixpbml0aWFsaXplX3RpbWluZyxza2lwKSAgICAgICAgICAgICAgICAgICAgICAgIDx0cnVlIG9yIGZhbHNlPgotIyBzZXQgdmFycyhzaWdub2ZmLGluaXRpYWxpemVfc3RlcCxwcmVfdGNsKSAgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHNpZ25vZmYsaW5pdGlhbGl6ZV9zdGVwLHBvc3RfdGNsKSAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMoc2lnbm9mZixpbml0aWFsaXplX3N0ZXAscmVwbGFjZV90Y2wpICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhzaWdub2ZmLGluaXRpYWxpemVfc3RlcCxza2lwKSAgICAgICAgICAgICAgICAgICAgICAgICAgPHRydWUgb3IgZmFsc2U+Ci0jIHNldCB2YXJzKHNpZ25vZmYsc2V0X2FuYWx5c2lzX21vZGUscHJlX3RjbCkgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMoc2lnbm9mZixzZXRfYW5hbHlzaXNfbW9kZSxwb3N0X3RjbCkgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhzaWdub2ZmLHNldF9hbmFseXNpc19tb2RlLHJlcGxhY2VfdGNsKSAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHNpZ25vZmYsc2V0X2FuYWx5c2lzX21vZGUsc2tpcCkgICAgICAgICAgICAgICAgICAgICAgICA8dHJ1ZSBvciBmYWxzZT4KLSMgc2V0IHZhcnMoc2lnbm9mZixzZXRfZGVsYXlfY2FsX21vZGUscHJlX3RjbCkgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhzaWdub2ZmLHNldF9kZWxheV9jYWxfbW9kZSxwb3N0X3RjbCkgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHNpZ25vZmYsc2V0X2RlbGF5X2NhbF9tb2RlLHJlcGxhY2VfdGNsKSAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMoc2lnbm9mZixzZXRfZGVsYXlfY2FsX21vZGUsc2tpcCkgICAgICAgICAgICAgICAgICAgICAgIDx0cnVlIG9yIGZhbHNlPgotIyBzZXQgdmFycyhzaWdub2ZmLHNldF9leHRyYWN0X3JjX21vZGUscHJlX3RjbCkgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHNpZ25vZmYsc2V0X2V4dHJhY3RfcmNfbW9kZSxwb3N0X3RjbCkgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMoc2lnbm9mZixzZXRfZXh0cmFjdF9yY19tb2RlLHJlcGxhY2VfdGNsKSAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhzaWdub2ZmLHNldF9leHRyYWN0X3JjX21vZGUsc2tpcCkgICAgICAgICAgICAgICAgICAgICAgPHRydWUgb3IgZmFsc2U+Ci0jIHNldCB2YXJzKHNpZ25vZmYsZXh0cmFjdF9yYyxwcmVfdGNsKSAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMoc2lnbm9mZixleHRyYWN0X3JjLHBvc3RfdGNsKSAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhzaWdub2ZmLGV4dHJhY3RfcmMscmVwbGFjZV90Y2wpICAgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHNpZ25vZmYsZXh0cmFjdF9yYyxza2lwKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHJ1ZSBvciBmYWxzZT4KLSMgc2V0IHZhcnMoc2lnbm9mZixkdW1wX3NwZWYscHJlX3RjbCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhzaWdub2ZmLGR1bXBfc3BlZixwb3N0X3RjbCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHNpZ25vZmYsZHVtcF9zcGVmLHJlcGxhY2VfdGNsKSAgICAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMoc2lnbm9mZixkdW1wX3NwZWYsc2tpcCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cnVlIG9yIGZhbHNlPgotIyBzZXQgdmFycyhzaWdub2ZmLHRpbWVfZGVzaWduX3NldHVwLHByZV90Y2wpICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHNpZ25vZmYsdGltZV9kZXNpZ25fc2V0dXAscG9zdF90Y2wpICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMoc2lnbm9mZix0aW1lX2Rlc2lnbl9zZXR1cCxyZXBsYWNlX3RjbCkgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhzaWdub2ZmLHRpbWVfZGVzaWduX3NldHVwLHNraXApICAgICAgICAgICAgICAgICAgICAgICAgPHRydWUgb3IgZmFsc2U+Ci0jIHNldCB2YXJzKHNpZ25vZmYsdGltZV9kZXNpZ25faG9sZCxwcmVfdGNsKSAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMoc2lnbm9mZix0aW1lX2Rlc2lnbl9ob2xkLHBvc3RfdGNsKSAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhzaWdub2ZmLHRpbWVfZGVzaWduX2hvbGQscmVwbGFjZV90Y2wpICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHNpZ25vZmYsdGltZV9kZXNpZ25faG9sZCxza2lwKSAgICAgICAgICAgICAgICAgICAgICAgICA8dHJ1ZSBvciBmYWxzZT4KLSMgc2V0IHZhcnMoc2lnbm9mZixzdHJlYW1fb3V0LHByZV90Y2wpICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhzaWdub2ZmLHN0cmVhbV9vdXQscG9zdF90Y2wpICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHNpZ25vZmYsc3RyZWFtX291dCxyZXBsYWNlX3RjbCkgICAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMoc2lnbm9mZixzdHJlYW1fb3V0LHNraXApICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cnVlIG9yIGZhbHNlPgotIyBzZXQgdmFycyhzaWdub2ZmLG9hc2lzX291dCxwcmVfdGNsKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHNpZ25vZmYsb2FzaXNfb3V0LHBvc3RfdGNsKSAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMoc2lnbm9mZixvYXNpc19vdXQscmVwbGFjZV90Y2wpICAgICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhzaWdub2ZmLG9hc2lzX291dCxza2lwKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRydWUgb3IgZmFsc2U+Ci0jIHNldCB2YXJzKHNpZ25vZmYsc2F2ZV9vYV9kZXNpZ24scHJlX3RjbCkgICAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMoc2lnbm9mZixzYXZlX29hX2Rlc2lnbixwb3N0X3RjbCkgICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhzaWdub2ZmLHNhdmVfb2FfZGVzaWduLHJlcGxhY2VfdGNsKSAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHNpZ25vZmYsc2F2ZV9vYV9kZXNpZ24sc2tpcCkgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHJ1ZSBvciBmYWxzZT4KLSMgc2V0IHZhcnMoc2lnbm9mZixjcmVhdGVfaWxtLHByZV90Y2wpICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhzaWdub2ZmLGNyZWF0ZV9pbG0scG9zdF90Y2wpICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHNpZ25vZmYsY3JlYXRlX2lsbSxyZXBsYWNlX3RjbCkgICAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMoc2lnbm9mZixjcmVhdGVfaWxtLHNraXApICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cnVlIG9yIGZhbHNlPgotIyBzZXQgdmFycyhzaWdub2ZmLHN1bW1hcnlfcmVwb3J0LHByZV90Y2wpICAgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHNpZ25vZmYsc3VtbWFyeV9yZXBvcnQscG9zdF90Y2wpICAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMoc2lnbm9mZixzdW1tYXJ5X3JlcG9ydCxyZXBsYWNlX3RjbCkgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhzaWdub2ZmLHN1bW1hcnlfcmVwb3J0LHNraXApICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRydWUgb3IgZmFsc2U+Ci0jIHNldCB2YXJzKHNpZ25vZmYsdmVyaWZ5X2Nvbm5lY3Rpdml0eSxwcmVfdGNsKSAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMoc2lnbm9mZix2ZXJpZnlfY29ubmVjdGl2aXR5LHBvc3RfdGNsKSAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhzaWdub2ZmLHZlcmlmeV9jb25uZWN0aXZpdHkscmVwbGFjZV90Y2wpICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHNpZ25vZmYsdmVyaWZ5X2Nvbm5lY3Rpdml0eSxza2lwKSAgICAgICAgICAgICAgICAgICAgICA8dHJ1ZSBvciBmYWxzZT4KLSMgc2V0IHZhcnMoc2lnbm9mZix2ZXJpZnlfZ2VvbWV0cnkscHJlX3RjbCkgICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhzaWdub2ZmLHZlcmlmeV9nZW9tZXRyeSxwb3N0X3RjbCkgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHNpZ25vZmYsdmVyaWZ5X2dlb21ldHJ5LHJlcGxhY2VfdGNsKSAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMoc2lnbm9mZix2ZXJpZnlfZ2VvbWV0cnksc2tpcCkgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cnVlIG9yIGZhbHNlPgotIyBzZXQgdmFycyhzaWdub2ZmLHZlcmlmeV9tZXRhbF9kZW5zaXR5LHByZV90Y2wpICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHNpZ25vZmYsdmVyaWZ5X21ldGFsX2RlbnNpdHkscG9zdF90Y2wpICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMoc2lnbm9mZix2ZXJpZnlfbWV0YWxfZGVuc2l0eSxyZXBsYWNlX3RjbCkgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhzaWdub2ZmLHZlcmlmeV9tZXRhbF9kZW5zaXR5LHNraXApICAgICAgICAgICAgICAgICAgICAgPHRydWUgb3IgZmFsc2U+Ci0jIHNldCB2YXJzKHNpZ25vZmYsdmVyaWZ5X3Byb2Nlc3NfYW50ZW5uYSxwcmVfdGNsKSAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMoc2lnbm9mZix2ZXJpZnlfcHJvY2Vzc19hbnRlbm5hLHBvc3RfdGNsKSAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhzaWdub2ZmLHZlcmlmeV9wcm9jZXNzX2FudGVubmEscmVwbGFjZV90Y2wpICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHNpZ25vZmYsdmVyaWZ5X3Byb2Nlc3NfYW50ZW5uYSxza2lwKSAgICAgICAgICAgICAgICAgICA8dHJ1ZSBvciBmYWxzZT4KLSMgc2V0IHZhcnMoc2lnbm9mZixzYXZlX2Rlc2lnbixwcmVfdGNsKSAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhzaWdub2ZmLHNhdmVfZGVzaWduLHBvc3RfdGNsKSAgICAgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHNpZ25vZmYsc2F2ZV9kZXNpZ24scmVwbGFjZV90Y2wpICAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMoc2lnbm9mZixzYXZlX2Rlc2lnbixza2lwKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cnVlIG9yIGZhbHNlPgotIyBzZXQgdmFycyhzaWdub2ZmLHJlcG9ydF9wb3dlcixwcmVfdGNsKSAgICAgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHNpZ25vZmYscmVwb3J0X3Bvd2VyLHBvc3RfdGNsKSAgICAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMoc2lnbm9mZixyZXBvcnRfcG93ZXIscmVwbGFjZV90Y2wpICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhzaWdub2ZmLHJlcG9ydF9wb3dlcixza2lwKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRydWUgb3IgZmFsc2U+Ci0jIHNldCB2YXJzKHNpZ25vZmYsdmVyaWZ5X3Bvd2VyX2RvbWFpbixwcmVfdGNsKSAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMoc2lnbm9mZix2ZXJpZnlfcG93ZXJfZG9tYWluLHBvc3RfdGNsKSAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhzaWdub2ZmLHZlcmlmeV9wb3dlcl9kb21haW4scmVwbGFjZV90Y2wpICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHNpZ25vZmYsdmVyaWZ5X3Bvd2VyX2RvbWFpbixza2lwKSAgICAgICAgICAgICAgICAgICAgICA8dHJ1ZSBvciBmYWxzZT4KLSMgc2V0IHZhcnMoc2lnbm9mZixydW5fY2xwLHByZV90Y2wpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhzaWdub2ZmLHJ1bl9jbHAscG9zdF90Y2wpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHNpZ25vZmYscnVuX2NscCxyZXBsYWNlX3RjbCkgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMoc2lnbm9mZixydW5fY2xwLHNraXApICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cnVlIG9yIGZhbHNlPgotIyBzZXQgdmFycyhwYXJ0aXRpb24saW5pdGlhbGl6ZV90aW1pbmcscHJlX3RjbCkgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBhcnRpdGlvbixpbml0aWFsaXplX3RpbWluZyxwb3N0X3RjbCkgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocGFydGl0aW9uLGluaXRpYWxpemVfdGltaW5nLHJlcGxhY2VfdGNsKSAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwYXJ0aXRpb24saW5pdGlhbGl6ZV90aW1pbmcsc2tpcCkgICAgICAgICAgICAgICAgICAgICAgPHRydWUgb3IgZmFsc2U+Ci0jIHNldCB2YXJzKHBhcnRpdGlvbixyZWFkX3Bvd2VyX2ludGVudCxwcmVfdGNsKSAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocGFydGl0aW9uLHJlYWRfcG93ZXJfaW50ZW50LHBvc3RfdGNsKSAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwYXJ0aXRpb24scmVhZF9wb3dlcl9pbnRlbnQscmVwbGFjZV90Y2wpICAgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBhcnRpdGlvbixyZWFkX3Bvd2VyX2ludGVudCxza2lwKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHJ1ZSBvciBmYWxzZT4KLSMgc2V0IHZhcnMocGFydGl0aW9uLGNvbW1pdF9wb3dlcl9pbnRlbnQscHJlX3RjbCkgICAgICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwYXJ0aXRpb24sY29tbWl0X3Bvd2VyX2ludGVudCxwb3N0X3RjbCkgICAgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBhcnRpdGlvbixjb21taXRfcG93ZXJfaW50ZW50LHJlcGxhY2VfdGNsKSAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocGFydGl0aW9uLGNvbW1pdF9wb3dlcl9pbnRlbnQsc2tpcCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cnVlIG9yIGZhbHNlPgotIyBzZXQgdmFycyhwYXJ0aXRpb24scnVuX2NscF9pbml0LHByZV90Y2wpICAgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBhcnRpdGlvbixydW5fY2xwX2luaXQscG9zdF90Y2wpICAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocGFydGl0aW9uLHJ1bl9jbHBfaW5pdCxyZXBsYWNlX3RjbCkgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwYXJ0aXRpb24scnVuX2NscF9pbml0LHNraXApICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRydWUgb3IgZmFsc2U+Ci0jIHNldCB2YXJzKHBhcnRpdGlvbixzYXZlX2luaXRfZGJzLHByZV90Y2wpICAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocGFydGl0aW9uLHNhdmVfaW5pdF9kYnMscG9zdF90Y2wpICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwYXJ0aXRpb24sc2F2ZV9pbml0X2RicyxyZXBsYWNlX3RjbCkgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBhcnRpdGlvbixzYXZlX2luaXRfZGJzLHNraXApICAgICAgICAgICAgICAgICAgICAgICAgICA8dHJ1ZSBvciBmYWxzZT4KLSMgc2V0IHZhcnMocGFydGl0aW9uLHNldF9idWRnZXRpbmdfbW9kZSxwcmVfdGNsKSAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwYXJ0aXRpb24sc2V0X2J1ZGdldGluZ19tb2RlLHBvc3RfdGNsKSAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBhcnRpdGlvbixzZXRfYnVkZ2V0aW5nX21vZGUscmVwbGFjZV90Y2wpICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocGFydGl0aW9uLHNldF9idWRnZXRpbmdfbW9kZSxza2lwKSAgICAgICAgICAgICAgICAgICAgIDx0cnVlIG9yIGZhbHNlPgotIyBzZXQgdmFycyhwYXJ0aXRpb24sdXBkYXRlX2NvbnN0cmFpbnRfbW9kZSxwcmVfdGNsKSAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBhcnRpdGlvbix1cGRhdGVfY29uc3RyYWludF9tb2RlLHBvc3RfdGNsKSAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocGFydGl0aW9uLHVwZGF0ZV9jb25zdHJhaW50X21vZGUscmVwbGFjZV90Y2wpICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwYXJ0aXRpb24sdXBkYXRlX2NvbnN0cmFpbnRfbW9kZSxza2lwKSAgICAgICAgICAgICAgICAgPHRydWUgb3IgZmFsc2U+Ci0jIHNldCB2YXJzKHBhcnRpdGlvbixzZXRfcHRuX3VzZXJfY25zX2ZpbGUscHJlX3RjbCkgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocGFydGl0aW9uLHNldF9wdG5fdXNlcl9jbnNfZmlsZSxwb3N0X3RjbCkgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwYXJ0aXRpb24sc2V0X3B0bl91c2VyX2Nuc19maWxlLHJlcGxhY2VfdGNsKSAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBhcnRpdGlvbixzZXRfcHRuX3VzZXJfY25zX2ZpbGUsc2tpcCkgICAgICAgICAgICAgICAgICA8dHJ1ZSBvciBmYWxzZT4KLSMgc2V0IHZhcnMocGFydGl0aW9uLHNldF9wbGFjZV9tb2RlLHByZV90Y2wpICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwYXJ0aXRpb24sc2V0X3BsYWNlX21vZGUscG9zdF90Y2wpICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBhcnRpdGlvbixzZXRfcGxhY2VfbW9kZSxyZXBsYWNlX3RjbCkgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocGFydGl0aW9uLHNldF9wbGFjZV9tb2RlLHNraXApICAgICAgICAgICAgICAgICAgICAgICAgIDx0cnVlIG9yIGZhbHNlPgotIyBzZXQgdmFycyhwYXJ0aXRpb24scGxhY2VfZGVzaWduLHByZV90Y2wpICAgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBhcnRpdGlvbixwbGFjZV9kZXNpZ24scG9zdF90Y2wpICAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocGFydGl0aW9uLHBsYWNlX2Rlc2lnbixyZXBsYWNlX3RjbCkgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwYXJ0aXRpb24scGxhY2VfZGVzaWduLHNraXApICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRydWUgb3IgZmFsc2U+Ci0jIHNldCB2YXJzKHBhcnRpdGlvbixzYXZlX3BsYWNlX2RicyxwcmVfdGNsKSAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocGFydGl0aW9uLHNhdmVfcGxhY2VfZGJzLHBvc3RfdGNsKSAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwYXJ0aXRpb24sc2F2ZV9wbGFjZV9kYnMscmVwbGFjZV90Y2wpICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBhcnRpdGlvbixzYXZlX3BsYWNlX2Ricyxza2lwKSAgICAgICAgICAgICAgICAgICAgICAgICA8dHJ1ZSBvciBmYWxzZT4KLSMgc2V0IHZhcnMocGFydGl0aW9uLHRyaWFsX3JvdXRlLHByZV90Y2wpICAgICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwYXJ0aXRpb24sdHJpYWxfcm91dGUscG9zdF90Y2wpICAgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBhcnRpdGlvbix0cmlhbF9yb3V0ZSxyZXBsYWNlX3RjbCkgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocGFydGl0aW9uLHRyaWFsX3JvdXRlLHNraXApICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cnVlIG9yIGZhbHNlPgotIyBzZXQgdmFycyhwYXJ0aXRpb24sYXNzaWduX3B0bl9waW5zLHByZV90Y2wpICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBhcnRpdGlvbixhc3NpZ25fcHRuX3BpbnMscG9zdF90Y2wpICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocGFydGl0aW9uLGFzc2lnbl9wdG5fcGlucyxyZXBsYWNlX3RjbCkgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwYXJ0aXRpb24sYXNzaWduX3B0bl9waW5zLHNraXApICAgICAgICAgICAgICAgICAgICAgICAgPHRydWUgb3IgZmFsc2U+Ci0jIHNldCB2YXJzKHBhcnRpdGlvbixjaGVja19waW5fYXNzaWdubWVudCxwcmVfdGNsKSAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocGFydGl0aW9uLGNoZWNrX3Bpbl9hc3NpZ25tZW50LHBvc3RfdGNsKSAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwYXJ0aXRpb24sY2hlY2tfcGluX2Fzc2lnbm1lbnQscmVwbGFjZV90Y2wpICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBhcnRpdGlvbixjaGVja19waW5fYXNzaWdubWVudCxza2lwKSAgICAgICAgICAgICAgICAgICA8dHJ1ZSBvciBmYWxzZT4KLSMgc2V0IHZhcnMocGFydGl0aW9uLHJlcG9ydF91bmFsaWduZWRfbmV0cyxwcmVfdGNsKSAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwYXJ0aXRpb24scmVwb3J0X3VuYWxpZ25lZF9uZXRzLHBvc3RfdGNsKSAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBhcnRpdGlvbixyZXBvcnRfdW5hbGlnbmVkX25ldHMscmVwbGFjZV90Y2wpICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocGFydGl0aW9uLHJlcG9ydF91bmFsaWduZWRfbmV0cyxza2lwKSAgICAgICAgICAgICAgICAgIDx0cnVlIG9yIGZhbHNlPgotIyBzZXQgdmFycyhwYXJ0aXRpb24sc2V0X3B0bl9waW5fc3RhdHVzLHByZV90Y2wpICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBhcnRpdGlvbixzZXRfcHRuX3Bpbl9zdGF0dXMscG9zdF90Y2wpICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocGFydGl0aW9uLHNldF9wdG5fcGluX3N0YXR1cyxyZXBsYWNlX3RjbCkgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwYXJ0aXRpb24sc2V0X3B0bl9waW5fc3RhdHVzLHNraXApICAgICAgICAgICAgICAgICAgICAgPHRydWUgb3IgZmFsc2U+Ci0jIHNldCB2YXJzKHBhcnRpdGlvbixkZXJpdmVfdGltaW5nX2J1ZGdldCxwcmVfdGNsKSAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocGFydGl0aW9uLGRlcml2ZV90aW1pbmdfYnVkZ2V0LHBvc3RfdGNsKSAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwYXJ0aXRpb24sZGVyaXZlX3RpbWluZ19idWRnZXQscmVwbGFjZV90Y2wpICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBhcnRpdGlvbixkZXJpdmVfdGltaW5nX2J1ZGdldCxza2lwKSAgICAgICAgICAgICAgICAgICA8dHJ1ZSBvciBmYWxzZT4KLSMgc2V0IHZhcnMocGFydGl0aW9uLHNhdmVfYnVkZ2V0X2RicyxwcmVfdGNsKSAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwYXJ0aXRpb24sc2F2ZV9idWRnZXRfZGJzLHBvc3RfdGNsKSAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBhcnRpdGlvbixzYXZlX2J1ZGdldF9kYnMscmVwbGFjZV90Y2wpICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocGFydGl0aW9uLHNhdmVfYnVkZ2V0X2Ricyxza2lwKSAgICAgICAgICAgICAgICAgICAgICAgIDx0cnVlIG9yIGZhbHNlPgotIyBzZXQgdmFycyhwYXJ0aXRpb24scnVuX2NscCxwcmVfdGNsKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBhcnRpdGlvbixydW5fY2xwLHBvc3RfdGNsKSAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocGFydGl0aW9uLHJ1bl9jbHAscmVwbGFjZV90Y2wpICAgICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwYXJ0aXRpb24scnVuX2NscCxza2lwKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRydWUgb3IgZmFsc2U+Ci0jIHNldCB2YXJzKHBhcnRpdGlvbixwYXJ0aXRpb24scHJlX3RjbCkgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocGFydGl0aW9uLHBhcnRpdGlvbixwb3N0X3RjbCkgICAgICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwYXJ0aXRpb24scGFydGl0aW9uLHJlcGxhY2VfdGNsKSAgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBhcnRpdGlvbixwYXJ0aXRpb24sc2tpcCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHJ1ZSBvciBmYWxzZT4KLSMgc2V0IHZhcnMocGFydGl0aW9uLHNhdmVfcGFydGl0aW9uLHByZV90Y2wpICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhwYXJ0aXRpb24sc2F2ZV9wYXJ0aXRpb24scG9zdF90Y2wpICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHBhcnRpdGlvbixzYXZlX3BhcnRpdGlvbixyZXBsYWNlX3RjbCkgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocGFydGl0aW9uLHNhdmVfcGFydGl0aW9uLHNraXApICAgICAgICAgICAgICAgICAgICAgICAgIDx0cnVlIG9yIGZhbHNlPgotIyBzZXQgdmFycyhyZWJ1ZGdldCxpbml0aWFsaXplX3RpbWluZyxwcmVfdGNsKSAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKHJlYnVkZ2V0LGluaXRpYWxpemVfdGltaW5nLHBvc3RfdGNsKSAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMocmVidWRnZXQsaW5pdGlhbGl6ZV90aW1pbmcscmVwbGFjZV90Y2wpICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhyZWJ1ZGdldCxpbml0aWFsaXplX3RpbWluZyxza2lwKSAgICAgICAgICAgICAgICAgICAgICAgPHRydWUgb3IgZmFsc2U+Ci0jIHNldCB2YXJzKGFzc2VtYmxlLGFzc2VtYmxlX2Rlc2lnbixwcmVfdGNsKSAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMoYXNzZW1ibGUsYXNzZW1ibGVfZGVzaWduLHBvc3RfdGNsKSAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhhc3NlbWJsZSxhc3NlbWJsZV9kZXNpZ24scmVwbGFjZV90Y2wpICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKGFzc2VtYmxlLGFzc2VtYmxlX2Rlc2lnbixza2lwKSAgICAgICAgICAgICAgICAgICAgICAgICA8dHJ1ZSBvciBmYWxzZT4KLSMgc2V0IHZhcnMoYXNzZW1ibGUsc3BlY2lmeV9pbG0scHJlX3RjbCkgICAgICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhhc3NlbWJsZSxzcGVjaWZ5X2lsbSxwb3N0X3RjbCkgICAgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKGFzc2VtYmxlLHNwZWNpZnlfaWxtLHJlcGxhY2VfdGNsKSAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMoYXNzZW1ibGUsc3BlY2lmeV9pbG0sc2tpcCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cnVlIG9yIGZhbHNlPgotIyBzZXQgdmFycyhhc3NlbWJsZSxsb2FkX2lsbV9ub25fc2RjX2ZpbGUscHJlX3RjbCkgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKGFzc2VtYmxlLGxvYWRfaWxtX25vbl9zZGNfZmlsZSxwb3N0X3RjbCkgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMoYXNzZW1ibGUsbG9hZF9pbG1fbm9uX3NkY19maWxlLHJlcGxhY2VfdGNsKSAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhhc3NlbWJsZSxsb2FkX2lsbV9ub25fc2RjX2ZpbGUsc2tpcCkgICAgICAgICAgICAgICAgICAgPHRydWUgb3IgZmFsc2U+Ci0jIHNldCB2YXJzKGFzc2VtYmxlLHJlYWRfcG93ZXJfaW50ZW50LHByZV90Y2wpICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMoYXNzZW1ibGUscmVhZF9wb3dlcl9pbnRlbnQscG9zdF90Y2wpICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhhc3NlbWJsZSxyZWFkX3Bvd2VyX2ludGVudCxyZXBsYWNlX3RjbCkgICAgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKGFzc2VtYmxlLHJlYWRfcG93ZXJfaW50ZW50LHNraXApICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHJ1ZSBvciBmYWxzZT4KLSMgc2V0IHZhcnMoYXNzZW1ibGUsY29tbWl0X3Bvd2VyX2ludGVudCxwcmVfdGNsKSAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhhc3NlbWJsZSxjb21taXRfcG93ZXJfaW50ZW50LHBvc3RfdGNsKSAgICAgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKGFzc2VtYmxlLGNvbW1pdF9wb3dlcl9pbnRlbnQscmVwbGFjZV90Y2wpICAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMoYXNzZW1ibGUsY29tbWl0X3Bvd2VyX2ludGVudCxza2lwKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cnVlIG9yIGZhbHNlPgotIyBzZXQgdmFycyhhc3NlbWJsZSxpbml0aWFsaXplX3RpbWluZyxwcmVfdGNsKSAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKGFzc2VtYmxlLGluaXRpYWxpemVfdGltaW5nLHBvc3RfdGNsKSAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMoYXNzZW1ibGUsaW5pdGlhbGl6ZV90aW1pbmcscmVwbGFjZV90Y2wpICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhhc3NlbWJsZSxpbml0aWFsaXplX3RpbWluZyxza2lwKSAgICAgICAgICAgICAgICAgICAgICAgPHRydWUgb3IgZmFsc2U+Ci0jIHNldCB2YXJzKGFzc2VtYmxlLHVwZGF0ZV90aW1pbmcscHJlX3RjbCkgICAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMoYXNzZW1ibGUsdXBkYXRlX3RpbWluZyxwb3N0X3RjbCkgICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhhc3NlbWJsZSx1cGRhdGVfdGltaW5nLHJlcGxhY2VfdGNsKSAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKGFzc2VtYmxlLHVwZGF0ZV90aW1pbmcsc2tpcCkgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHJ1ZSBvciBmYWxzZT4KLSMgc2V0IHZhcnMoYXNzZW1ibGUscHJlX3BhY192ZXJpZnlfY29ubmVjdGl2aXR5LHByZV90Y2wpICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhhc3NlbWJsZSxwcmVfcGFjX3ZlcmlmeV9jb25uZWN0aXZpdHkscG9zdF90Y2wpICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKGFzc2VtYmxlLHByZV9wYWNfdmVyaWZ5X2Nvbm5lY3Rpdml0eSxyZXBsYWNlX3RjbCkgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMoYXNzZW1ibGUscHJlX3BhY192ZXJpZnlfY29ubmVjdGl2aXR5LHNraXApICAgICAgICAgICAgIDx0cnVlIG9yIGZhbHNlPgotIyBzZXQgdmFycyhhc3NlbWJsZSxwcmVfcGFjX3ZlcmlmeV9nZW9tZXRyeSxwcmVfdGNsKSAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKGFzc2VtYmxlLHByZV9wYWNfdmVyaWZ5X2dlb21ldHJ5LHBvc3RfdGNsKSAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMoYXNzZW1ibGUscHJlX3BhY192ZXJpZnlfZ2VvbWV0cnkscmVwbGFjZV90Y2wpICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhhc3NlbWJsZSxwcmVfcGFjX3ZlcmlmeV9nZW9tZXRyeSxza2lwKSAgICAgICAgICAgICAgICAgPHRydWUgb3IgZmFsc2U+Ci0jIHNldCB2YXJzKGFzc2VtYmxlLHNldF9tb2R1bGVfdmlldyxwcmVfdGNsKSAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMoYXNzZW1ibGUsc2V0X21vZHVsZV92aWV3LHBvc3RfdGNsKSAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhhc3NlbWJsZSxzZXRfbW9kdWxlX3ZpZXcscmVwbGFjZV90Y2wpICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKGFzc2VtYmxlLHNldF9tb2R1bGVfdmlldyxza2lwKSAgICAgICAgICAgICAgICAgICAgICAgICA8dHJ1ZSBvciBmYWxzZT4KLSMgc2V0IHZhcnMoYXNzZW1ibGUsZGVsZXRlX2ZpbGxlcl9jZWxscyxwcmVfdGNsKSAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhhc3NlbWJsZSxkZWxldGVfZmlsbGVyX2NlbGxzLHBvc3RfdGNsKSAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKGFzc2VtYmxlLGRlbGV0ZV9maWxsZXJfY2VsbHMscmVwbGFjZV90Y2wpICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMoYXNzZW1ibGUsZGVsZXRlX2ZpbGxlcl9jZWxscyxza2lwKSAgICAgICAgICAgICAgICAgICAgIDx0cnVlIG9yIGZhbHNlPgotIyBzZXQgdmFycyhhc3NlbWJsZSxvcHRfZGVzaWduLHByZV90Y2wpICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKGFzc2VtYmxlLG9wdF9kZXNpZ24scG9zdF90Y2wpICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMoYXNzZW1ibGUsb3B0X2Rlc2lnbixyZXBsYWNlX3RjbCkgICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhhc3NlbWJsZSxvcHRfZGVzaWduLHNraXApICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRydWUgb3IgZmFsc2U+Ci0jIHNldCB2YXJzKGFzc2VtYmxlLGFkZF9maWxsZXJfY2VsbHMscHJlX3RjbCkgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMoYXNzZW1ibGUsYWRkX2ZpbGxlcl9jZWxscyxwb3N0X3RjbCkgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhhc3NlbWJsZSxhZGRfZmlsbGVyX2NlbGxzLHJlcGxhY2VfdGNsKSAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKGFzc2VtYmxlLGFkZF9maWxsZXJfY2VsbHMsc2tpcCkgICAgICAgICAgICAgICAgICAgICAgICA8dHJ1ZSBvciBmYWxzZT4KLSMgc2V0IHZhcnMoYXNzZW1ibGUscG9zdF9wYWNfdmVyaWZ5X2Nvbm5lY3Rpdml0eSxwcmVfdGNsKSAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhhc3NlbWJsZSxwb3N0X3BhY192ZXJpZnlfY29ubmVjdGl2aXR5LHBvc3RfdGNsKSAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKGFzc2VtYmxlLHBvc3RfcGFjX3ZlcmlmeV9jb25uZWN0aXZpdHkscmVwbGFjZV90Y2wpICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMoYXNzZW1ibGUscG9zdF9wYWNfdmVyaWZ5X2Nvbm5lY3Rpdml0eSxza2lwKSAgICAgICAgICAgIDx0cnVlIG9yIGZhbHNlPgotIyBzZXQgdmFycyhhc3NlbWJsZSxwb3N0X3BhY192ZXJpZnlfZ2VvbWV0cnkscHJlX3RjbCkgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKGFzc2VtYmxlLHBvc3RfcGFjX3ZlcmlmeV9nZW9tZXRyeSxwb3N0X3RjbCkgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMoYXNzZW1ibGUscG9zdF9wYWNfdmVyaWZ5X2dlb21ldHJ5LHJlcGxhY2VfdGNsKSAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhhc3NlbWJsZSxwb3N0X3BhY192ZXJpZnlfZ2VvbWV0cnksc2tpcCkgICAgICAgICAgICAgICAgPHRydWUgb3IgZmFsc2U+Ci0jIHNldCB2YXJzKGZsZXhpbG0sY2xlYXJfYWN0aXZlX2xvZ2ljX3ZpZXcscHJlX3RjbCkgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMoZmxleGlsbSxjbGVhcl9hY3RpdmVfbG9naWNfdmlldyxwb3N0X3RjbCkgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhmbGV4aWxtLGNsZWFyX2FjdGl2ZV9sb2dpY192aWV3LHJlcGxhY2VfdGNsKSAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKGZsZXhpbG0sY2xlYXJfYWN0aXZlX2xvZ2ljX3ZpZXcsc2tpcCkgICAgICAgICAgICAgICAgICA8dHJ1ZSBvciBmYWxzZT4KLSMgc2V0IHZhcnMoZmxleGlsbSxjb21taXRfbW9kdWxlX21vZGVsLHByZV90Y2wpICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhmbGV4aWxtLGNvbW1pdF9tb2R1bGVfbW9kZWwscG9zdF90Y2wpICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKGZsZXhpbG0sY29tbWl0X21vZHVsZV9tb2RlbCxyZXBsYWNlX3RjbCkgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMoZmxleGlsbSxjb21taXRfbW9kdWxlX21vZGVsLHNraXApICAgICAgICAgICAgICAgICAgICAgIDx0cnVlIG9yIGZhbHNlPgotIyBzZXQgdmFycyhmbGV4aWxtLGNyZWF0ZV9hY3RpdmVfbG9naWNfdmlldyxwcmVfdGNsKSAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKGZsZXhpbG0sY3JlYXRlX2FjdGl2ZV9sb2dpY192aWV3LHBvc3RfdGNsKSAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMoZmxleGlsbSxjcmVhdGVfYWN0aXZlX2xvZ2ljX3ZpZXcscmVwbGFjZV90Y2wpICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhmbGV4aWxtLGNyZWF0ZV9hY3RpdmVfbG9naWNfdmlldyxza2lwKSAgICAgICAgICAgICAgICAgPHRydWUgb3IgZmFsc2U+Ci0jIHNldCB2YXJzKGZsZXhpbG0sZ2V0X21vZHVsZV92aWV3LHByZV90Y2wpICAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMoZmxleGlsbSxnZXRfbW9kdWxlX3ZpZXcscG9zdF90Y2wpICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhmbGV4aWxtLGdldF9tb2R1bGVfdmlldyxyZXBsYWNlX3RjbCkgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKGZsZXhpbG0sZ2V0X21vZHVsZV92aWV3LHNraXApICAgICAgICAgICAgICAgICAgICAgICAgICA8dHJ1ZSBvciBmYWxzZT4KLSMgc2V0IHZhcnMoZmxleGlsbSxyZXBvcnRfcmVzb3VyY2UscHJlX3RjbCkgICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhmbGV4aWxtLHJlcG9ydF9yZXNvdXJjZSxwb3N0X3RjbCkgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKGZsZXhpbG0scmVwb3J0X3Jlc291cmNlLHJlcGxhY2VfdGNsKSAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMoZmxleGlsbSxyZXBvcnRfcmVzb3VyY2Usc2tpcCkgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cnVlIG9yIGZhbHNlPgotIyBzZXQgdmFycyhmbGV4aWxtLHJlc3RvcmVfZGVzaWduLHByZV90Y2wpICAgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKGZsZXhpbG0scmVzdG9yZV9kZXNpZ24scG9zdF90Y2wpICAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMoZmxleGlsbSxyZXN0b3JlX2Rlc2lnbixyZXBsYWNlX3RjbCkgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhmbGV4aWxtLHJlc3RvcmVfZGVzaWduLHNraXApICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRydWUgb3IgZmFsc2U+Ci0jIHNldCB2YXJzKGZsZXhpbG0sc2F2ZV9kYnMscHJlX3RjbCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMoZmxleGlsbSxzYXZlX2Ricyxwb3N0X3RjbCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhmbGV4aWxtLHNhdmVfZGJzLHJlcGxhY2VfdGNsKSAgICAgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKGZsZXhpbG0sc2F2ZV9kYnMsc2tpcCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHJ1ZSBvciBmYWxzZT4KLSMgc2V0IHZhcnMoZmxleGlsbSxzZXRfaGllcl9tb2RlLHByZV90Y2wpICAgICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhmbGV4aWxtLHNldF9oaWVyX21vZGUscG9zdF90Y2wpICAgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKGZsZXhpbG0sc2V0X2hpZXJfbW9kZSxyZXBsYWNlX3RjbCkgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMoZmxleGlsbSxzZXRfaGllcl9tb2RlLHNraXApICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cnVlIG9yIGZhbHNlPgotIyBzZXQgdmFycyhmbGV4aWxtLHNldF9tb2R1bGVfbW9kZWwscHJlX3RjbCkgICAgICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKGZsZXhpbG0sc2V0X21vZHVsZV9tb2RlbCxwb3N0X3RjbCkgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMoZmxleGlsbSxzZXRfbW9kdWxlX21vZGVsLHJlcGxhY2VfdGNsKSAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhmbGV4aWxtLHNldF9tb2R1bGVfbW9kZWwsc2tpcCkgICAgICAgICAgICAgICAgICAgICAgICAgPHRydWUgb3IgZmFsc2U+Ci0jIHNldCB2YXJzKGZsZXhpbG0sdXBkYXRlX3BhcnRpdGlvbixwcmVfdGNsKSAgICAgICAgICAgICAgICAgICAgICA8ZmlsZT4KLSMgc2V0IHZhcnMoZmxleGlsbSx1cGRhdGVfcGFydGl0aW9uLHBvc3RfdGNsKSAgICAgICAgICAgICAgICAgICAgIDxmaWxlPgotIyBzZXQgdmFycyhmbGV4aWxtLHVwZGF0ZV9wYXJ0aXRpb24scmVwbGFjZV90Y2wpICAgICAgICAgICAgICAgICAgPGZpbGU+Ci0jIHNldCB2YXJzKGZsZXhpbG0sdXBkYXRlX3BhcnRpdGlvbixza2lwKSAgICAgICAgICAgICAgICAgICAgICAgICA8dHJ1ZSBvciBmYWxzZT4KLQpkaWZmIC0tZ2l0IGEvZmxvdy9wbnIvVEVNUExBVEVTL0lOTk9WVVMvbHBfY29uZmlnLnRjbCBiL2Zsb3cvcG5yL1RFTVBMQVRFUy9JTk5PVlVTL2xwX2NvbmZpZy50Y2wKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDE5ZTYzOGYuLjAwMDAwMDAKLS0tIGEvZmxvdy9wbnIvVEVNUExBVEVTL0lOTk9WVVMvbHBfY29uZmlnLnRjbAorKysgL2Rldi9udWxsCkBAIC0xLDIxMSArMCwwIEBACi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0jICAgICAgICAgICAgICAgICAgICAgICBDQURFTkNFIENPUFlSSUdIVCBOT1RJQ0UKLSMgICAgICAgICCpIDIwMDgtMjAxMyBDYWRlbmNlIERlc2lnbiBTeXN0ZW1zLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0jCi0jIFRoaXMgRm91bmRhdGlvbiBGbG93IGlzIHByb3ZpZGVkIGFzIGFuIGV4YW1wbGUgb2YgaG93IHRvIHBlcmZvcm0gc3BlY2lhbGl6ZWQKLSMgdGFza3MuCi0jCi0jIFRoaXMgd29yayBtYXkgbm90IGJlIGNvcGllZCwgcmUtcHVibGlzaGVkLCB1cGxvYWRlZCwgb3IgZGlzdHJpYnV0ZWQgaW4gYW55IHdheSwKLSMgaW4gYW55IG1lZGl1bSwgd2hldGhlciBpbiB3aG9sZSBvciBpbiBwYXJ0LCB3aXRob3V0IHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbgotIyBmcm9tIENhZGVuY2UuIE5vdHdpdGhzdGFuZGluZyBhbnkgcmVzdHJpY3Rpb25zIGhlcmVpbiwgc3ViamVjdCB0byBjb21wbGlhbmNlCi0jIHdpdGggdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mIHRoZSBDYWRlbmNlIHNvZnR3YXJlIGxpY2Vuc2UgYWdyZWVtZW50IHVuZGVyCi0jIHdoaWNoIHRoaXMgbWF0ZXJpYWwgd2FzIHByb3ZpZGVkLCB0aGlzIG1hdGVyaWFsIG1heSBiZSBjb3BpZWQgYW5kIGludGVybmFsbHkKLSMgZGlzdHJpYnV0ZWQgc29sZWx5IGZvciBpbnRlcm5hbCBwdXJwb3NlcyBmb3IgdXNlIHdpdGggQ2FkZW5jZSB0b29scy4KLSMKLSMgVGhpcyB3b3JrIGlzIENhZGVuY2UgaW50ZWxsZWN0dWFsIHByb3BlcnR5IGFuZCBtYXkgdW5kZXIgbm8gY2lyY3Vtc3RhbmNlcyBiZQotIyBnaXZlbiB0byB0aGlyZCBwYXJ0aWVzLCBuZWl0aGVyIGluIG9yaWdpbmFsIG5vciBpbiBtb2RpZmllZCB2ZXJzaW9ucywgd2l0aG91dAotIyBleHBsaWNpdCB3cml0dGVuIHBlcm1pc3Npb24gZnJvbSBDYWRlbmNlLiBUaGUgaW5mb3JtYXRpb24gY29udGFpbmVkIGhlcmVpbiBpcwotIyB0aGUgcHJvcHJpZXRhcnkgYW5kIGNvbmZpZGVudGlhbCBpbmZvcm1hdGlvbiBvZiBDYWRlbmNlIG9yIGl0cyBsaWNlbnNvcnMsIGFuZAotIyBpcyBzdXBwbGllZCBzdWJqZWN0IHRvLCBhbmQgbWF5IGJlIHVzZWQgb25seSBieSBDYWRlbmNlJ3MgY3VycmVudCBjdXN0b21lcnMKLSMgaW4gYWNjb3JkYW5jZSB3aXRoLCBhIHByZXZpb3VzbHkgZXhlY3V0ZWQgbGljZW5zZSBhZ3JlZW1lbnQgYmV0d2VlbiBDYWRlbmNlCi0jIGFuZCBpdHMgY3VzdG9tZXIuCi0jCi0jLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0jIFRISVMgTUFURVJJQUwgSVMgUFJPVklERUQgQlkgQ0FERU5DRSAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVECi0jIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GCi0jIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuCi0jIElOIE5PIEVWRU5UIFNIQUxMIENBREVOQ0UgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTAotIyBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLAotIyBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUICAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IKLSMgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyAgTUFURVJJQUwsIEVWRU4gSUYKLSMgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0KLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotIyBMb3cgcG93ZXIgY29uZmlndXJhdGlvbiBmaWxlIG92ZXJsYXkuICBUaGlzIGZpbGUgY29udGFpbnMgZm91bmRhdGlvbiBmbG93IHZhcmlhYmxlcwotIyB0aGF0IGFyZSBzcGVjaWZpYyB0byB0aGUgTFAvQ1BGIGZsb3cgYW5kIHNob3VsZCBiZSB1c2VkIGluIGFkZGl0aW9uIHRvIHRoZSBzZXR1cC50Y2wKLSMgYW5kIGlubm92dXNfY29uZmlnLnRjbCBmaWxlcwotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0jICAgICAgICAgICAgICAgICAgICAgICAgICAgUGxhY2VtZW50IE9wdGlvbnMKLSMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIyBzZXQgdmFycyhyZXNpemVfc2hpZnRlcl9hbmRfaXNvX2luc3RzKSA8dHJ1ZSB8IGZhbHNlPgotIwotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0jICAgICAgICAgICAgICAgICAgICAgICAgICAgVGllIGNlbGwgaW5mb3JtYXRpb24KLSMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIyBUaGUgdmFyaWFibGUgdmFycyh0aWVfY2VsbHMpIGlzIGRlZmluZWQgaW4gdGhlIGlubm92dXNfY29uZmlnLnRjbCBhbmQgaXMgdXNlZCB0byBkZWZpbmUgYSAKLSMgImdsb2JhbCIgdGllIGNlbGwgbGlzdC4gVGhpcyBsaXN0IHdpbGwgYmUgdXNlZCBieSBkZWZhdWx0IGZvciBlYWNoIHBvd2VyIGRvbWFpbi4KLSMgSXQgY2FuIGJlIG92ZXJyaWRkZW4gZm9yIGEgZ2l2ZW4gcG93ZXIgZG9tYWluIGJ5IHNldHRpbmcgdmFycyg8cG93ZXJfZG9tYWluPix0aWVfY2VsbHMpLgotIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0jIHNldCB2YXJzKGRvbWFpbix0aWVfY2VsbHMpIDx0aWUgY2VsbHMgZm9yIDxwb3dlcl9kb21haW4+PgotIwotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0jICAgICAgICAgICAgICAgICAgICAgICAgIEZpbGxlciBjZWxsIGluZm9ybWF0aW9uCi0jIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSMgVGhlIHZhcmlhYmxlIHZhcnMoZmlsbGVyX2NlbGxzKSBpcyBkZWZpbmVkIGluIHRoZSBpbm5vdnVzX2NvbmZpZy50Y2wgYW5kIGlzIHVzZWQgdG8gZGVmaW5lIGEgCi0jICJnbG9iYWwiIGZpbGxlciBjZWxsIGxpc3QuIFRoaXMgbGlzdCB3aWxsIGJlIHVzZWQgYnkgZGVmYXVsdCBmb3IgZWFjaCBwb3dlciBkb21haW4uCi0jIEl0IGNhbiBiZSBvdmVycmlkZGVuIGZvciBhIGdpdmVuIHBvd2VyIGRvbWFpbiBieSBzZXR0aW5nIHZhcnMoPHBvd2VyX2RvbWFpbj4sZmlsbGVyX2NlbGxzKS4KLSMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIyBzZXQgdmFycyhkb21haW4sZmlsbGVyX2NlbGxzKSA8ZmlsbGVyIGNlbGxzIGZvciA8cG93ZXJfZG9tYWluPj4KLSMKLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotIyAgICAgICAgICAgICAgICAgICAgICAgICAgV2VsbHRhcCBjZWxsIGluZm9ybWF0aW9uCi0jIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSMgVGhlIHZhcmlhYmxlIHZhcnMod2VsbHRhcHMpIGlzIGRlZmluZWQgaW4gdGhlIGlubm92dXNfY29uZmlnLnRjbCBhbmQgaXMgdXNlZCB0byBkZWZpbmUgYSAKLSMgImdsb2JhbCIgd2VsbHRhcCBjZWxsIGxpc3QuIFRoaXMgbGlzdCB3aWxsIGJlIHVzZWQgYnkgZGVmYXVsdCBmb3IgZWFjaCBwb3dlciBkb21haW4uCi0jIEl0IGNhbiBiZSBvdmVycmlkZGVuIGZvciBhIGdpdmVuIHBvd2VyIGRvbWFpbiBieSBzZXR0aW5nIHZhcnMoPHBvd2VyX2RvbWFpbj4sd2VsbHRhcHMpLgotIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0jICAgIHZlcmlmeV9ydWxlIDogbWF4aW11bSBkaXN0YW5jZSAoaW4gbWljcm9ucykgYmV0d2VlbiB3ZWxsdGFwIGNlbGxzIGFuZCBzdGFuZGFyZCBjZWxscyAKLSMgICAgICAgICAgICAgICAgICBpbiBtaWNyb25zCi0jICAgICAgICBtYXhfZ2FwIDogc3BlY2lmaWVzIHRoZSBtYXhpbXVtIGRpc3RhbmNlIGZyb20gdGhlIHJpZ2h0IGVkZ2Ugb2Ygb25lIHdlbGwtdGFwIGNlbGwgCi0jICAgICAgICAgICAgICAgICAgdG8gdGhlIGxlZnQgZWRnZSBvZiAgdGhlIGZvbGxvd2luZyB3ZWxsLXRhcCBjZWxsIGluIHRoZSBzYW1lIHJvdwotIyAgY2VsbF9pbnRlcnZhbCA6IHNwZWNpZmllcyB0aGUgbWF4aW11bSBkaXN0YW5jZSBmcm9tIHRoZSBjZW50ZXIgb2Ygb25lIHdlbGwtdGFwIGNlbGwgCi0jICAgICAgICAgICAgICAgICAgdG8gdGhlIGNlbnRlciBvZiB0aGUgZm9sbG93aW5nIHdlbGwtdGFwIGNlbGwgaW4gdGhlIHNhbWUgcm93Ci0jCi0jIE5PVEU6IG1heF9nYXAgYW5kIGNlbGxfaW50ZXJ2YWwgcGFyYW1ldGVycyBhcmUgbXV0dWFsbHkgZXhjbHVzaXZlLCB1c2VyIGhhcyB0byBkZWZpbmUgCi0jICAgICAgIG9ubHkgb25lIG9mIHRoZXNlIHBhcmFtZXRlcnMgdG8gYWRkIHdlbGx0YXAgY2VsbHMKLSMKLSMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIyBzZXQgdmFycyg8cG93ZXJfZG9tYWluPix3ZWxsdGFwcykgCQkgICAgICAgIDx3ZWxsdGFwIGNlbGwgbGlzdCBmb3IgPHBvd2VyX2RvbWFpbj4+Ci0jIHNldCB2YXJzKDxwb3dlcl9kb21haW4+LHdlbGx0YXBzLGNoZWNrZXJib2FyZCkgIDx0cnVlIG9yIGZhbHNlPgotIyBzZXQgdmFycyg8cG93ZXJfZG9tYWluPix3ZWxsdGFwcyxtYXhfZ2FwKSAgICAgICA8bWF4IGdhcCBpbiBtaWNyb25zPgotIyBzZXQgdmFycyg8cG93ZXJfZG9tYWluPix3ZWxsdGFwcyxjZWxsX2ludGVydmFsKSA8Y2VsbCBpbnRlcnZhbCBpbiBtaWNyb25zPgotIyBzZXQgdmFycyg8cG93ZXJfZG9tYWluPix3ZWxsdGFwcyxyb3dfb2Zmc2V0KSAgICA8cm93IG9mZnNldCBpbiBtaWNyb25zPgotIyBzZXQgdmFycyg8cG93ZXJfZG9tYWluPix3ZWxsdGFwcyx2ZXJpZnlfcnVsZSkgICA8dmVyaWZ5IHJ1bGUgZGlzdGFuY2U+Ci0jCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSMgICAgICAgICAgICAgICAgICAgICAgICAgIEVuZGNhcCBjZWxsIGluZm9ybWF0aW9uCi0jIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSMgVGhlIHZhcmlhYmxlcyB2YXJzKHByZV9lbmRjYXApIGFuZCB2YXJzKHBvc3RfZW5kY2FwKSBhcmUgc2V0IGluIHRoZSBpbm5vdnVzX2NvbmZpZy50Y2wgZmlsZSBhbmQKLSMgYXJlIHVzZWQgdG8gZGVmaW5lICJnbG9iYWwiIGVuZGNhcCBjZWxscy4gVGhlc2UgdXNlZCBieSBkZWZhdWx0IGZvciBlYWNoIHBvd2VyIGRvbWFpbi4KLSMgVGhleSBjYW4gYmUgb3ZlcnJpZGRlbiBmb3IgYSBnaXZlbiBwb3dlciBkb21haW4gc2V0dGluZyB2YXJzKDxwb3dlcl9kb21haW4+LHByZV9lbmRjYXApCi0jIGFuZC9vciB2YXJzKDxwb3dlcl9kb21haW4+LHBvc3RfZW5kY2FwKS4KLSMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIyBzZXQgdmFycyg8cG93ZXJfZG9tYWluPixwcmVfZW5kY2FwKSAgPHByZSBlbmRjYXAgY2VsbCBmb3IgPHBvd2VyX2RvbWFpbj4+Ci0jIHNldCB2YXJzKDxwb3dlcl9kb21haW4+LHBvc3RfZW5kY2FwKSA8cG9zdCBlbmRjYXAgY2VsbCBmb3IgPHBvd2VyX2RvbWFpbj4+Ci0jCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSMgICAgICAgICAgICAgICAgICAgICAgICAgICAgQWx3YXlzIG9uIG5ldCBidWZmZXJpbmcKLSMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIyBCeSBkZWZhdWx0IFNPQ0UgZG9lcyBhbHdheXMtb24tbmV0IHN5bnRoZXNpcyBmb3IgU1JQRyBjb250cm9sIHNpZ25hbCBhbmQgUFNPIGVuYWJsZSAKLSMgc2lnbmFscyBhcyBwYXJ0IG9mIG9wdERlc2lnbiAtcHJlQ1RTLCBidXQgdGhpcyBjYW4gYmUgbWFudWFsbHkgZG9uZSBmb3Igc3BlY2lmaWMgbmV0cyBpZgotIyBuZWNlc3NhcnkuICBUbyBkbyB0aGlzLCBkZWZpbmUgdGhlIGZvbGxvd2luZyB2YXJpYWJsZXMgYW5kIHVuY29tbWVudCB0aGUgcHJlX3ByZWN0cy50Y2wKLSMgcGx1Zy1pbiB0ZW1wbGF0ZQotIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0jIHNldCB2YXJzKGFsd2F5c19vbl9idWZmZXJzKSAgICAgICAgICAgICAgICAJPGxpc3Qgb2YgYWx3YXlzIG9uIGJ1ZmZlcnM+Ci0jIHNldCB2YXJzKGFsd2F5c19vbl9uZXRzKSAgICAgICAgICAgICAgICAgIAk8bGlzdCBvZiBhbHdheXMgb24gbmV0cz4KLSMgc2V0IHZhcnMoYWx3YXlzX29uX25ldHMsbWF4X2Zhbm91dCkgICAgICAgCTxtYXggZmFub3V0IGxpbWl0IGZvciBhbHdheXMgb24gbmV0cz4gKG9wdGlvbmFsKQotIyBzZXQgdmFycyhhbHdheXNfb25fbmV0cyxtYXhfdHJhbikgICAgICAgICAJPG1heCB0cmFuc2l0aW9uIG9uIGFsd2F5cyBvbiBuZXRzPiAob3B0aW9uYWwpCi0jIHNldCB2YXJzKGFsd2F5c19vbl9uZXRzLG1heF9za2V3KSAgICAgICAgIAk8bWF4IHNrZXcgZm9yIGFsd2F5cyBvbiBuZXRzPiAob3B0aW9uYWwpCi0jIHNldCB2YXJzKGFsd2F5c19vbl9uZXRzLG1heF9kZWxheSkgICAgICAgIAk8bWF4IGRlbGF5IGZvciBhbHdheXMgb24gbmV0cz4gKG9wdGlvbmFsKQotIyBzZXQgdmFycyg8cG93ZXJfZG9tYWluPixhbHdheXNfb25fYnVmZmVycykgIDxidWZmZXJzIGZvciA8cG93ZXIgZG9tYWluPj4KLSMKLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotIyAgICAgICAgICAgICAgICAgICAgICBTZWNvbmRhcnkgcG93ZXIvZ3JvdW5kIHJvdXRpbmcKLSMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIyBBdXRvbWF0aWMgc2Vjb25kYXJ5IHBvd2VyIHJvdXRpbmcgY2FuIGJlIGVuYWJsZWQgdGhlIGZvdW5kYXRpb24gZmxvd3MgYnkgc2V0dGluZyAKLSMgdmFycyhyb3V0ZV9zZWNvbmRhcnlfcGdfbmV0cykgdG8gdHJ1ZSBhbmQgcHJvdmlkaW5nIGNlbGwgcGluIHBhaXIgaW5mb3JtYXRpb24gdG8KLSMgaWRlbnRpZnkgdGhlIGNvbm5lY3Rpb25zIHJlcXVpcmluZyByb3V0aW5nIChQVEJVRkZEMTpUVkREIExWTExIQ0Q0OlZEREwsIGUuZy4pIAotIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0jIHNldCB2YXJzKHJvdXRlX3NlY29uZGFyeV9wZ19uZXRzKSAgICAgICAgIFt0cnVlIHwgZmFsc2VdCi0jIHNldCB2YXJzKHNlY29uZGFyeV9wZyxjZWxsX3Bpbl9wYWlycykgICAgIDxzZWNvbmRhcnkgcG93ZXIgY2VsbCBwaW4gcGFpciBsaXN0PgotIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0jSW4gYWRkaXRpb24sIHRoZSBmb2xsb3dpbmcgY2FuIG9wdGlvbmFsbHkgZGVmaW5lZCBlaXRoZXIgZ2xvYmFsbHkgb3IgcGVyIHAvZyBuZXQKLSMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIyBzZXQgdmFycyhzZWNvbmRhcnlfcGcsbWF4X2Zhbm91dCkgICAgICAgCTxtYXggZmFub3V0IGZvciBzZWNvbmRhcnkgcG93ZXIgcm91dGluZz4KLSMgc2V0IHZhcnMoc2Vjb25kYXJ5X3BnLHBhdHRlcm4pICAgICAgICAgIAk8c2Vjb25kYXJ5IHBvd2VyIHJvdXRpbmcgcGF0dGVybiB0cnVuayB8IHN0ZWluZXI+Ci0jIHNldCB2YXJzKHNlY29uZGFyeV9wZyxub25fZGVmYXVsdF9ydWxlKSAJPG5vbi1kZWZhdWx0IHJ1bGUgZm9yIHNlY29uZGFyeSBwL2cvIHJvdXRpbmc+Ci0jIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSMgVG8gb3B0aW9uYWxseSBvdmVycmlkZSBmb3IgYSBnaXZlbiBwL2cgbmV0KHMpLCB1c2UgdGhlIHZhcnMocm91dGVfc2Vjb25kYXJ5X3BnX25ldHMpIHRvIAotIyBkZWZpbmUgdGhlIGxpc3Qgb2YgbmV0cyB0byBiZSBvdmVycmlkZGVuIGFuZCB0aGVuIG92ZXJyaWRlIHZhcnMoPHAvZyBuZXQ+LDxvcHRpb24+KQotIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0jIHNldCB2YXJzKHNlY29uZGFyeV9wZyxuZXRzKSAgICAgICAgICAJICAgIDxsaXN0IG9mIHBvd2VyL2dyb3VuZCBuZXRzPgotIyBzZXQgdmFycyg8cC9nX25ldD4sbWF4X2Zhbm91dCkgICAgICAgCSAgICA8bWF4IGZhbm91dD4KLSMgc2V0IHZhcnMoPHAvZ19uZXQ+LHBhdHRlcm4pICAgICAgICAgIAkgICAgPHRydW5rIHwgc3RlaW5lcj4KLSMgc2V0IHZhcnMoPHAvZ19uZXQ+LG5vbl9kZWZhdWx0X3J1bGUpIAkgICAgPG5vbiBkZWZhdWx0IHJ1bGU+Ci0jCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBydW5DTFAgb3B0aW9ucwotIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0jIHNldCB2YXJzKGNscF9vcHRpb25zKSAgPG9wdGlvbnMgZm9yIHJ1bkNMUD4KLSMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIyBzZXQgdmFycyhjbHBfb3B0aW9ucykgICIiCi0jCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSMgICAgICAgICAgICAgIE1vZGlmeSBwb3dlciBkb21haW5zLCByb3cgY3JlYXRpb24gZm9yIHBvd2VyIGRvbWFpbnMKLSMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIyBUaGUgZm91bmRhdGlvbiBmbG93cyBjb250YWluIGEgc2FtcGxlIHBvc3RfaW5pdF90Y2wgKFBMVUcvcG9zdF9pbml0LnRjbCkgcGx1Zy1pbiB0byBkbyAKLSMgcG93ZXIgZG9tYWluIG1vZGlmaWNhdGlvbiBhdXRvbWF0aWNhbGx5IGJhc2VkIG9uIHRoZSBmb2xsb2luZyB2YXJpYWJsZXM6Ci0jIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSMgc2V0IHZhcnMoPHBvd2VyX2RvbWFpbj4sYmJveCkgICAgICAgICA8bGx4IGxseSB1cnggdXJ5PjsgYm9uZGFyeSBjb29yZGluYXRlcyBpbiBtaWNyb25zCi0jIHNldCB2YXJzKDxwb3dlcl9kb21haW4+LHJzX2V4dHMpICAgICAgPHRvcCBib3QgbGVmdCByaWdodD47IGRpc3RhbmNlIGluIG1pY3JvbnMgIAotIyBzZXQgdmFycyg8cG93ZXJfZG9tYWluPixtaW5fZ2FwcykgICAgIDx0b3AgYm90IGxlZnQgcmlnaHQ+OyBkaXN0YW5jZSBpbiBtaWNyb25zCi0jCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSMgICAgICAgICAgICAgICAgICAgICAgICAgICBQb3dlciBTaHV0LW9mZiBQbGFubmluZyAKLSMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIyBUaGUgZm91bmRhdGlvbiBmbG93cyBjb250YWluIGEgc2FtcGxlIHBvc3RfaW5pdF90Y2wgKFBMVUcvcG9zdF9pbml0LnRjbCkgcGx1Zy1pbiB0byBkbyAKLSMgcG93ZXIgc3dpdGNoIGluc2VydGlvbiBhdXRvbWF0aWNhbGx5IGJhc2VkIG9uIHRoZSBmb2xsb3dpbmcgaW5mb3JtYXRpb246Ci0jIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSMgc2V0IHZhcnMoPHBvd2VyX2RvbWFpbj4sc3dpdGNoYWJsZSkgICAgICAgICA8dHJ1ZSB8IGZhbHNlPgotIyBzZXQgdmFycyg8cG93ZXJfZG9tYWluPixzd2l0Y2hfdHlwZSkgICAgICAgIDxjb2x1bW4gfCByaW5nPgotIyBzZXQgdmFycyg8cG93ZXJfZG9tYWluPixzd2l0Y2hfY2VsbCkgICAgICAgIDxQU08gY2VsbCBuYW1lPgotIyBzZXQgdmFycyg8cG93ZXJfZG9tYWluPixpbnB1dF9lbmFibGVfcGluKSAgIDxQU08gY2VsbCBpbnB1dCBlbmFibGUgcGluPgotIyBzZXQgdmFycyg8cG93ZXJfZG9tYWluPixvdXRwdXRfZW5hYmxlX3BpbikgIDxQU08gY2VsbCBvdXRwdXQgZW5hYmxlIHBpbj4KLSMgc2V0IHZhcnMoPHBvd2VyX2RvbWFpbj4saW5wdXRfZW5hYmxlX25ldCkgICA8UFNPIGNlbGwgaW5wdXQgZW5hYmxlIG5ldD4KLSMgc2V0IHZhcnMoPHBvd2VyX2RvbWFpbj4sb3V0cHV0X2VuYWJsZV9uZXQpICA8UFNPIGNlbGwgb3V0cHV0IGVuYWJsZSBuZXQ+Ci0jIHNldCB2YXJzKDxwb3dlcl9kb21haW4+LHN3aXRjaF9pbnN0YW5jZSkgICAgPHN3aXRjaE1vZHVsZUluc3RhbmNlPgotIyBzZXQgdmFycyg8cG93ZXJfZG9tYWluPix0b3Bfb2Zmc2V0KSAgICAgICAgIDx0b3Agb2Zmc2V0IGluIG1pY3JvbnM+Ci0jIHNldCB2YXJzKDxwb3dlcl9kb21haW4+LGJvdHRvbV9vZmZzZXQpICAgICAgPGJvdHRvbSBvZmZzZXQgaW4gbWljcm9ucz4KLSMgc2V0IHZhcnMoPHBvd2VyX2RvbWFpbj4scmlnaHRfb2Zmc2V0KSAgICAgICA8cmlnaHQgb2Zmc2V0IGluIG1pY3JvbnM+Ci0jIHNldCB2YXJzKDxwb3dlcl9kb21haW4+LGxlZnRfb2Zmc2V0KSAgICAgICAgPGxlZnQgb2Zmc2V0IGluIG1pY3JvbnM+Ci0jIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSMgQmVsb3cgdmFyaWFibGVzIGFyZSBmb3IgY29sdW1uIGJhc2VkIHBzbyBpbXBsZW1ldGF0aW9uCi0jIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSMgc2V0IHZhcnMoPHBvd2VyX2RvbWFpbj4sY2hlY2tlcl9ib2FyZCkgICAgIDx0cnVlIHwgZmFsc2U+Ci0jIHNldCB2YXJzKDxwb3dlcl9kb21haW4+LGhvcml6b25hbF9waXRjaCkgICA8aW4gbWljcm9ucz4KLSMgc2V0IHZhcnMoPHBvd2VyX2RvbWFpbj4sY29sdW1uX2hlaWdodCkgICAgIDxTd2l0Y2ggY2VsbCBjb2x1bW4gaGVpZ2h0IGluIG1pY3JvbnM+Ci0jIHNldCB2YXJzKDxwb3dlcl9kb21haW4+LHNraXBfcm93cykgICAgICAgICA8TnVtYmVyIG9mIHJvd3MgdG8gc2tpcD4KLSMgc2V0IHZhcnMoPHBvd2VyX2RvbWFpbj4sYmFja190b19iYWNrX2NoYWluKSA8dHJ1ZXxmYWxzZT4KLSMgLi4uIENvbm5lY3RzIHRoZSBlbmFibGVOZXRPdXQgYXQgdGhlIHRvcCBvZiBhIGNvbHVtbiB0byB0aGUgZW5hYmxlTmV0SW4gYXQgdGhlIHRvcCBvZiAKLSMgLi4uIHRoZSBuZXh0IGNvbHVtbiwgYW5kIGNvbm5lY3RzIHRoZSBlbmFibGVOZXRPdXQgYXQgdGhlIGJvdHRvbSBvZiB0aGUgY29sdW1uIHRvIHRoZSAKLSMgLi4uIGVuYWJsZU5ldEluIGF0IHRoZSBib3R0b20gb2YgdGhlIG5leHQgY29sdW1uCi0jIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSMgQmVsb3cgdmFyaWFibGVzIGFyZSBmb3IgcmluZyBiYXNlZCBwc28gaW1wbGVtZXRhdGlvbgotIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0jIHNldCB2YXJzKDxwb3dlcl9kb21haW4+LHRvcF9yaW5nKSAgICAgPDF8MD4KLSMgc2V0IHZhcnMoPHBvd2VyX2RvbWFpbj4sYm90dG9tX3JpbmcpICA8MXwwPgotIyBzZXQgdmFycyg8cG93ZXJfZG9tYWluPixyaWdodF9yaW5nKSAgIDwxfDA+Ci0jIHNldCB2YXJzKDxwb3dlcl9kb21haW4+LGxlZnRfcmluZykgICAgPDF8MD4KLSMgLi4uIGRlZmluZXMgd2hpY2ggc2lkZSBvZiB0aGUgcG93ZXIgZG9tYWluIHRvIGluc2VydCBzd2l0Y2hlczoKLSMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIyBzZXQgdmFycyg8cG93ZXJfZG9tYWluPix0b3Bfc3dpdGNoX2NlbGwpICAgIDxwc28gY2VsbCBuYW1lPgotIyBzZXQgdmFycyg8cG93ZXJfZG9tYWluPixib3R0b21fc3dpdGNoX2NlbGwpIDxwc28gY2VsbCBuYW1lPgotIyBzZXQgdmFycyg8cG93ZXJfZG9tYWluPixsZWZ0X3N3aXRjaF9jZWxsKSAgIDxwc28gY2VsbCBuYW1lPgotIyBzZXQgdmFycyg8cG93ZXJfZG9tYWluPixyaWdodF9zd2l0Y2hfY2VsbCkgIDxwc28gY2VsbCBuYW1lPgotIyAuLi4gZGVmaW5lIHBzbyBjZWxsIG5hbWUgZm9yIGVhY2ggc2lkZSBvZiB0aGUgcG93ZXIgZG9tYWluCi0jIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSMgc2V0IHZhcnMoPHBvd2VyX2RvbWFpbj4sdG9wX2ZpbGxlcl9jZWxsKSAgICA8ZmlsbGVyIGNlbGwgbmFtZT4KLSMgc2V0IHZhcnMoPHBvd2VyX2RvbWFpbj4sYm90dG9tX2ZpbGxlcl9jZWxsKSA8ZmlsbGVyIGNlbGwgbmFtZT4KLSMgc2V0IHZhcnMoPHBvd2VyX2RvbWFpbj4sbGVmdF9maWxsZXJfY2VsbCkgICA8ZmlsbGVyIGNlbGwgbmFtZT4KLSMgc2V0IHZhcnMoPHBvd2VyX2RvbWFpbj4scmlnaHRfZmlsbGVyX2NlbGwpICA8ZmlsbGVyIGNlbGwgbmFtZT4KLSMgc2V0IHZhcnMoPHBvd2VyX2RvbWFpbj4sY29ybmVyX2NlbGxfbGlzdCkgICA8Y29ybmVyIGNlbGwgbmFtZT4KLSMgLi4uIGRlZmluZSBmaWxsZXIgY2VsbCBuYW1lIGZvciBlYWNoIHNpZGUgb2YgdGhlIHBvd2VyIGRvbWFpbgotIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0jIHNldCB2YXJzKDxwb3dlcl9kb21haW4+LHRvcF9zd2l0Y2hlcykgICAgICAgPCI8bnVtYmVyPiAtZGlzdHJpYnV0ZSI+Ci0jIHNldCB2YXJzKDxwb3dlcl9kb21haW4+LGJvdHRvbV9zd2l0Y2hlcykgICAgPCI8bnVtYmVyPiAtZGlzdHJpYnV0ZSI+Ci0jIHNldCB2YXJzKDxwb3dlcl9kb21haW4+LGxlZnRfc3dpdGNoZXMpICAgICAgPCI8bnVtYmVyPiAtZGlzdHJpYnV0ZSI+Ci0jIHNldCB2YXJzKDxwb3dlcl9kb21haW4+LHJpZ2h0X3N3aXRjaGVzKSAgICAgPCI8bnVtYmVyPiAtZGlzdHJpYnV0ZSI+Ci0jIC4uLiBkZWZpbmUgdGhlIG51bWJlciBvZiBzd2l0Y2hlcyBmb3IgZWFjaCBzaWRlIG9mIHRoZSBwb3dlciBkb21haW4KLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwpkaWZmIC0tZ2l0IGEvZmxvdy9wbnIvVEVNUExBVEVTL0lOTk9WVVMvc2V0dXAudGNsIGIvZmxvdy9wbnIvVEVNUExBVEVTL0lOTk9WVVMvc2V0dXAudGNsCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDc1NQppbmRleCBiZDBjNTUwLi4wMDAwMDAwCi0tLSBhL2Zsb3cvcG5yL1RFTVBMQVRFUy9JTk5PVlVTL3NldHVwLnRjbAorKysgL2Rldi9udWxsCkBAIC0xLDMwMCArMCwwIEBACi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0jICAgICAgICAgICAgICAgICAgICAgICBDQURFTkNFIENPUFlSSUdIVCBOT1RJQ0UKLSMgICAgICAgICCpIDIwMDgtMjAxMyBDYWRlbmNlIERlc2lnbiBTeXN0ZW1zLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0jCi0jIFRoaXMgRm91bmRhdGlvbiBGbG93IGlzIHByb3ZpZGVkIGFzIGFuIGV4YW1wbGUgb2YgaG93IHRvIHBlcmZvcm0gc3BlY2lhbGl6ZWQKLSMgdGFza3MuCi0jCi0jIFRoaXMgd29yayBtYXkgbm90IGJlIGNvcGllZCwgcmUtcHVibGlzaGVkLCB1cGxvYWRlZCwgb3IgZGlzdHJpYnV0ZWQgaW4gYW55IHdheSwKLSMgaW4gYW55IG1lZGl1bSwgd2hldGhlciBpbiB3aG9sZSBvciBpbiBwYXJ0LCB3aXRob3V0IHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbgotIyBmcm9tIENhZGVuY2UuIE5vdHdpdGhzdGFuZGluZyBhbnkgcmVzdHJpY3Rpb25zIGhlcmVpbiwgc3ViamVjdCB0byBjb21wbGlhbmNlCi0jIHdpdGggdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mIHRoZSBDYWRlbmNlIHNvZnR3YXJlIGxpY2Vuc2UgYWdyZWVtZW50IHVuZGVyCi0jIHdoaWNoIHRoaXMgbWF0ZXJpYWwgd2FzIHByb3ZpZGVkLCB0aGlzIG1hdGVyaWFsIG1heSBiZSBjb3BpZWQgYW5kIGludGVybmFsbHkKLSMgZGlzdHJpYnV0ZWQgc29sZWx5IGZvciBpbnRlcm5hbCBwdXJwb3NlcyBmb3IgdXNlIHdpdGggQ2FkZW5jZSB0b29scy4KLSMKLSMgVGhpcyB3b3JrIGlzIENhZGVuY2UgaW50ZWxsZWN0dWFsIHByb3BlcnR5IGFuZCBtYXkgdW5kZXIgbm8gY2lyY3Vtc3RhbmNlcyBiZQotIyBnaXZlbiB0byB0aGlyZCBwYXJ0aWVzLCBuZWl0aGVyIGluIG9yaWdpbmFsIG5vciBpbiBtb2RpZmllZCB2ZXJzaW9ucywgd2l0aG91dAotIyBleHBsaWNpdCB3cml0dGVuIHBlcm1pc3Npb24gZnJvbSBDYWRlbmNlLiBUaGUgaW5mb3JtYXRpb24gY29udGFpbmVkIGhlcmVpbiBpcwotIyB0aGUgcHJvcHJpZXRhcnkgYW5kIGNvbmZpZGVudGlhbCBpbmZvcm1hdGlvbiBvZiBDYWRlbmNlIG9yIGl0cyBsaWNlbnNvcnMsIGFuZAotIyBpcyBzdXBwbGllZCBzdWJqZWN0IHRvLCBhbmQgbWF5IGJlIHVzZWQgb25seSBieSBDYWRlbmNlJ3MgY3VycmVudCBjdXN0b21lcnMKLSMgaW4gYWNjb3JkYW5jZSB3aXRoLCBhIHByZXZpb3VzbHkgZXhlY3V0ZWQgbGljZW5zZSBhZ3JlZW1lbnQgYmV0d2VlbiBDYWRlbmNlCi0jIGFuZCBpdHMgY3VzdG9tZXIuCi0jCi0jLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0jIFRISVMgTUFURVJJQUwgSVMgUFJPVklERUQgQlkgQ0FERU5DRSAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVECi0jIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GCi0jIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuCi0jIElOIE5PIEVWRU5UIFNIQUxMIENBREVOQ0UgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTAotIyBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLAotIyBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUICAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IKLSMgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyAgTUFURVJJQUwsIEVWRU4gSUYKLSMgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0KLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyIKLSMgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENETlMgRk9VTkRBVElPTiBGTE9XIgotIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIgotIyBUaGlzIGlzIHRoZSBmb3VuZGF0aW9uIGZsb3cgc2V0dXAgZmlsZS4gIEl0IGNvbnRhaW5zIGFsbCB0aGUgbmVjZXNzYXJ5IGRlc2lnbiIKLSMgZGF0YSB0byBkcml2ZSBhbGwgdGhlIENETlMgZm91bmRhdGlvbiBmbG93cy4gRWFjaCBmbG93IHdpbGwgYWxzbyByZXF1aXJlIGFuIgotIyBhZGRpdGlvbmFsIGNvbmZpZ3VyYXRpb24gZmlsZSB0byBkZWZpbmUgZmxvdyBzcGVjaWZpYyBpbmZvcm1hdGlvbjoiCi0jLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iCi0jIElOTk9WVVMgLT4gICBpbm5vdnVzX2NvbmZpZy50Y2wgKGZvciBmbGF0IGFuZCBoaWVyIGltcGxlbWVudGF0aW9uIGZsb3dzKSIKLSMgICAgICAgICArICAgICBscF9jb25maWcudGNsIChhZGRpdGlvbmFsIGluZm9ybWF0aW9uIGZvciBmbGF0IGFuZCBoaWVyIGxwIGZsb3dzKSIKLSMgICAgICAgICAtPiBwcm90b19jb25maWcudGNsIChmb3IgdGhlIHByb3RvdHlwaW5nIGZsb3cpIgotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIgotCi1nbG9iYWwgdmFycwotc2V0IHZhcnModmVyc2lvbikgMTUuMQotCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0jIERlZmluZSBzb21lIHZhcmlhYmxlcyB0byBwb2ludCB0byBkYXRhLCBsaWJyYXJpZXMsIGFuZCBzY3JpcHRzOwotIyBzY3JpcHRfcm9vdCBpcyByZXF1aXJlZCBhbmQgbXVzdCBwb2ludCB0byB0aGUgZm91bmRhdGlvbiBmbG93Ci0jIFNDUklQVFMgZGlyZWN0b3J5LiAgUmVjb21tZW5kYXRpb24gaXMgdGhhdCB0aGUgU0NSSVBUUyBkaXJlY3RvcnkKLSMgc2hvdWxkIHJlc2lkZSB3aXRoaW4gdGhlIFJVTiBkaXJlY3RvcnkgCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi1zZXQgdmFycyhkZXNpZ25fcm9vdCkgPHBhdGggdG8gZGVzaWduIGRhdGE+Ci1zZXQgdmFycyhzY3JpcHRfcm9vdCkgIi4vU0NSSVBUUyIKLQotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotIyBUaGUgZm9sbG93aW5nIHZhcmlhYmxlcyBhcmUgdXNlZCB0byBkZWZpbmUgCi0jIHRoZSBkZXNpZ24gZGF0YSBmb3IgdGhlIGZsb3cuICBFaXRoZXIgYSBmcF9maWxlLCAKLSMgZGVmX2ZpbGUgb3IgYm90aCBjYW4gYmUgZGVmaW5lZAotIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotc2V0IHZhcnMoZGVzaWduKSAgICAgICAgICA8c3RyaW5nPiAKLXNldCB2YXJzKG5ldGxpc3QpICAgICAgICAgPGZpbGU+Ci1zZXQgdmFycyhmcF9maWxlKSAgICAgICAgIDxmaWxlPgotI3NldCB2YXJzKG9hX2ZwKSAgICAgICAgICAgIjxsaWI+IDxjZWxsPiA8dmlldz4iCi0jc2V0IHZhcnMoZGVmX2ZpbGVzKSAgICAgICA8bGlzdD4KLSNzZXQgdmFycyhmcF90Y2xfZmlsZSkgICAgPFRDTCBmaWxlPgotI3NldCB2YXJzKGZwX3RjbF9wcm9jKSAgICA8VENMIHByb2NlZHVyZSBuYW1lPgotc2V0IHZhcnMoY3RzX3NwZWMpICAgICAgICA8bGlzdD4KLSNzZXQgdmFycyhzY2FuX2RlZikgICAgICAgPGxpc3Q+Ci0jIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1zZXQgdmFycyhwcm9jZXNzKSAgICAgICAgIDxzdHJpbmc+Ci1zZXQgdmFycyhtYXhfcm91dGVfbGF5ZXIpIDxpbnRlZ2VyPiAKLXNldCB2YXJzKGdlbmVyYXRlX3RyYWNrcykgPGJvb2xlYW4+IChPUFRJT05BTCkKLSNzZXQgdmFycyhob25vcl9waXRjaCkgICAgIDxib29sZWFuPiAoT1BUSU9OQUwpCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0jIE9uZSBvZiBjcGZfZmlsZSBhbmQgaWVlZTE4MDFfZmlsZSBpcyBSRVFVSVJFRCBmb3IgbG93IHBvd2VyIGZsb3dzCi0jIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0jc2V0IHZhcnMoY3BmX2ZpbGUpICAgICAgICAgICAgICAgPGZpbGU+Ci0jc2V0IHZhcnMoaWVlZTE4MDFfZmlsZSkgICAgICAgICAgPGZpbGU+Ci0jIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0jIE9wdGlvbmFsbHkgc2V0IHRoZSBmb2xsb3dpbmcgdG8ga2VlcCB0aGUgcHJldmlvdXNseSBkZWZpbmVkIHJvd3MKLSMgSWYgdXNpbmcgSUVFRSAxODAxLCByZXBsYWNlICJjcGYiIHdpdGggImllZWUxODAxIi4KLSNzZXQgdmFycyhjcGZfa2VlcF9yb3dzKSAgICAgICAgICA8Ym9vbGVhbj4KLQotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotIyBEZWZpbmUgcG93ZXIvZ3JvdW5kIG5ldHMKLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSNzZXQgdmFycyhwb3dlcl9uZXRzKSAgICAgICAgICAgICA8bGlzdD4KLSNzZXQgdmFycyhncm91bmRfbmV0cykgICAgICAgICAgICA8bGlzdD4KLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSMgVGhlIGZvbGxvd2luZyBhcmUgZm9yIGRlZmluaW5nIHVzZXIgSUxNcyBmb3IgZmxhdCBvciBoaWVyYXJjaGljYWwgZmxvd3MuCi0jIHZhcnMoPGlsbT4sbGVmX2ZpbGUpIGlzIG9ubHkgbmVjZXNzYXJ5IGlmIHRoZSBJTE0gbGVmIGZpbGUgZG9lcyBub3QgCi0jIGV4aXN0IGluIHRoZSB2YXJzKGxlZl9maWxlcykgbGlzdC4KLSMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSNzZXQgdmFycyhpbG1fbGlzdCkgICAgICAgICAgICAgICA8bGlzdD4gCi0jc2V0IHZhcnMoPGlsbT4saWxtX2RpcikgICAgICAgICAgPGRpcmVjdG9yeT4gCi0jc2V0IHZhcnMoPGlsbT4sbGVmX2ZpbGUpICAgICAgICAgPGZpbGU+ICAKLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSMgVGhlIGZvbGxvd2luZyBhcmUgUkVRVUlSRUQgZm9yIHRoZSBJTE0gYmFzZWQgCi0jIGhpZXJhcmNoaWNhbCBmbG93IGJ1dCBhcmUgbm90IG5lY2Vzc2FyeSBmb3IKLSMgdGhlIGZsYXQgaW1wbGVtZW50YXRpb24gZmxvd3MuCi0jIC0gY3RzIHNwZWMgZm9yIGVhY2ggcGFydGlpdGlvbgotIyAtIGxhdGVuY3kgc2RjIGZvciBlYWNoIHBhcnRpdGlvbgotIyAtIGVkaSBjb25maWcgZmlsZSBmb3IgZWFjaCAod2hlbiBhcHBsaWNhYmxlKQotIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotI3NldCB2YXJzKHBhcnRpdGlvbl9saXN0KSAgICAgICAgIDxsaXN0PiAKLSNzZXQgdmFycyg8cHRuMT4sY3RzX3NwZWMpICAgICAgICA8ZmlsZT4gCi0jc2V0IHZhcnMoPHB0bjE+LGxhdGVuY3lfc2RjKSAgICAgPGZpbGU+Ci0jc2V0IHZhcnMoPHB0bjE+LDxpbm5vdnVzX2NvbmZpZ190Y2wpIDxmaWxlPgotCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0jIERlZmluZSBsaWJyYXJ5IHNldHMgLi4uIChSRVFVSVJFRCkgCi0jIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1zZXQgdmFycyhsaWJyYXJ5X3NldHMpICAgICAgICA8bGlzdD4KLQotc2V0IHZhcnMoPHNldDE+LHRpbWluZykgICAgICAgPGxpc3Q+Ci1zZXQgdmFycyg8c2V0MT4sc2kpICAgICAgICAgICA8bGlzdD4KLQotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotIyBEZWZpbmUgbGVmIGxpYnJhcnkgZmlsZXMgLi4uIChSRVFVSVJFRCkKLSMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLXNldCB2YXJzKGxlZl9maWxlcykgICAgICAgICAgIDxsaXN0PgotCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0jIERlZmluZSByYyBjb3JuZXJzIC4uLiAoUkVRVUlSRUQpCi0jIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1zZXQgdmFycyhyY19jb3JuZXJzKSAgICAgICAgICAgICA8bGlzdD4KLXNldCB2YXJzKDxjb3JuZXIxPixUKSAgICAgICAgICAgIDxpbnRlZ2VyPgotc2V0IHZhcnMoPGNvcm5lcjE+LGNhcF90YWJsZSkgICAgPGZpbGU+Ci0jc2V0IHZhcnMoPGNvcm5lcjE+LGF0Zl9maWxlKSAgICA8ZmlsZT4KLXNldCB2YXJzKDxjb3JuZXIxPixxeF90ZWNoX2ZpbGUpIDxmaWxlPgotIyBzZXQgdmFycyg8Y29ybmVyPixxeF9saWJfZmlsZSkgIDxmaWxlPgotIyBzZXQgdmFycyg8Y29ybmVyPixxeF9jb25mX2ZpbGUpIDxmaWxlPgotCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0jIFNjYWxlIGZhY3RvcnMgYXJlIGFsc28gb3B0aW9uYWwgYnV0IGFyZSBzdHJvbmdseSBlbmNvdXJhZ2VkIGZvciAKLSMgb2J0YWluaW5nIHRoZSBiZXN0IGZsb3cgY29udmVyZ2VuY2UgYW5kIFFvUi4gIAotIyBTY2FsaW5nIGZhY3RvcnMgYXJlIGFwcGxpZWQgcGVyIHJjIGNvcm5lcgotIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIyBzZXQgdmFycyg8Y29ybmVyMT4sZGVmX3Jlc19mYWN0b3IpICAgICA8cHJlLXJvdXRlIHJlc2lzdGFuY2Ugc2NhbGUgZmFjdG9yPgotIyBzZXQgdmFycyg8Y29ybmVyMT4sZGV0X3Jlc19mYWN0b3IpICAgICA8cG9zdC1yb3V0ZSByZXNpc3RhbmNlIHNjYWxlIGZhY3Rvcj4KLSMgc2V0IHZhcnMoPGNvcm5lcjE+LGRlZl9jYXBfZmFjdG9yKSAgICAgPHByZS1yb3V0ZSBjYXBhY2l0YW5jZSBzY2FsZSBmYWN0b3I+Ci0jIHNldCB2YXJzKDxjb3JuZXIxPixkZXRfY2FwX2ZhY3RvcikgICAgIDxwb3N0LXJvdXRlIGNhcGFjaXRhbmNlIHNjYWxlIGZhY3Rvcj4KLSMgc2V0IHZhcnMoPGNvcm5lcjE+LGRlZl9jbGtfcmVzX2ZhY3RvcikgPHByZS1yb3V0ZSBjbG9jayByZXNpc3RhbmNlIHNjYWxlIGZhY3Rvcj4KLSMgc2V0IHZhcnMoPGNvcm5lcjE+LGRldF9jbGtfcmVzX2ZhY3RvcikgPHBvc3Qtcm91dGUgY2xvY2sgcmVzaXN0YW5jZSBzY2FsZSBmYWN0b3I+Ci0jIHNldCB2YXJzKDxjb3JuZXIxPixkZWZfY2xrX2NhcF9mYWN0b3IpIDxwcmUtcm91dGUgY2xvY2sgY2FwYWNpdGFuY2Ugc2NhbGUgZmFjdG9yPgotIyBzZXQgdmFycyg8Y29ybmVyMT4sZGV0X2Nsa19jYXBfZmFjdG9yKSA8cG9zdC1yb3V0ZSBjbG9jayBjYXBhY2l0YW5jZSBzY2FsZSBmYWN0b3I+Ci0jIHNldCB2YXJzKDxjb3JuZXIxPix4Y2FwX2ZhY3RvcikgICAgICAgIDxjb3VwbGluZyBjYXBhY2l0YW5jZSBzY2FsZSBmYWN0b3I+Ci0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi1zZXQgdmFycyg8Y29ybmVyMT4sZGVmX3Jlc19mYWN0b3IpICAgICA8ZmxvYXQ+Ci1zZXQgdmFycyg8Y29ybmVyMT4sZGV0X3Jlc19mYWN0b3IpICAgICA8ZmxvYXQgfCB0cmlwbGV0Pgotc2V0IHZhcnMoPGNvcm5lcjE+LGRlZl9jYXBfZmFjdG9yKSAgICAgPGZsb2F0Pgotc2V0IHZhcnMoPGNvcm5lcjE+LGRldF9jYXBfZmFjdG9yKSAgICAgPGZsb2F0IHwgdHJpcGxldD4KLXNldCB2YXJzKDxjb3JuZXIxPixkZWZfY2xrX3Jlc19mYWN0b3IpIDxmbG9hdD4KLXNldCB2YXJzKDxjb3JuZXIxPixkZXRfY2xrX3Jlc19mYWN0b3IpIDxmbG9hdD4KLXNldCB2YXJzKDxjb3JuZXIxPixkZWZfY2xrX2NhcF9mYWN0b3IpIDxmbG9hdD4KLXNldCB2YXJzKDxjb3JuZXIxPixkZXRfY2xrX2NhcF9mYWN0b3IpIDxmbG9hdD4KLXNldCB2YXJzKDxjb3JuZXIxPix4Y2FwX2ZhY3RvcikgICAgICAgIDxmbG9hdCB8IHRyaXBsZXQ+Ci0KLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSMgRGVmaW5lIG9wZXJhdGluZyBjb25kaXRpb25zIChvcHRpb25hbCkKLSMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSMgc2V0IHZhcnMob3Bjb25kcykgIjxvcGNvbmQxPiA8b3Bjb25kMj4gLi4uIgotIyBzZXQgdmFycyg8b3Bjb25kMT4sbGlicmFyeV9maWxlKSA8bGlicmFyeSBmaWxlID4KLSMgc2V0IHZhcnMoPG9wY29uZDE+LHByb2Nlc3MpIDxwcm9jZXNzIHNjYWxlIGZhY3Rvcj4KLSMgc2V0IHZhcnMoPG9wY29uZDE+LHZvbHRhZ2UpIDx2b2x0YWdlPgotIyBzZXQgdmFycyg8b3Bjb25kMT4sdGVtcGVyYXR1cmUpIDx0ZW1wZXJhdHVyZT4KLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLQotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotIyBEZWZpbmUgZGVsYXkgY29ybmVycyAuLi4KLSMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLXNldCB2YXJzKGRlbGF5X2Nvcm5lcnMpICAgICAgICAgPGxpc3Q+Ci1zZXQgdmFycyg8Y29ybmVyMT4sbGlicmFyeV9zZXQpIDxzdHJpbmc+Ci1zZXQgdmFycyg8Y29ybmVyMT4scmNfY29ybmVyKSAgIDxzdHJpbmc+Ci0jLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0jIERlZmluZSBkZXJhdGluZyBmYWN0b3JzIGZvciBPQ1YgaGVyZSAoY2xvY2sgYW5kIGRhdGEpLiAKLSMgRGVyYXRpbmcgZmFjdG9ycyBhcmUgYXBwbGllZCBwZXIgZGVsYXkgY29ybmVyIC4uLgotIyBPUiwgc2ltcGx5IGRlZmluZSB2YXJzKGRlcmF0ZV90Y2wpIHBsdWctaW4gd2l0aCBBTEwKLSMgeW91ciBzZXRfdGltaW5nX2RlcmF0ZSBjb21tYW5kcyBhbmQgaXQgd2lsbCBiZSB1c2VkCi0jLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1zZXQgdmFycyg8Y29ybmVyMT4sZGF0YV9jZWxsX2xhdGUpICAgPGZsb2F0Pgotc2V0IHZhcnMoPGNvcm5lcjE+LGRhdGFfY2VsbF9lYXJseSkgIDxmbG9hdD4KLXNldCB2YXJzKDxjb3JuZXIxPixkYXRhX25ldF9sYXRlKSAgICA8ZmxvYXQ+Ci1zZXQgdmFycyg8Y29ybmVyMT4sZGF0YV9uZXRfZWFybHkpICAgPGZsb2F0Pgotc2V0IHZhcnMoPGNvcm5lcjE+LGNsb2NrX2NlbGxfbGF0ZSkgIDxmbG9hdD4KLXNldCB2YXJzKDxjb3JuZXIxPixjbG9ja19jZWxsX2Vhcmx5KSA8ZmxvYXQ+Ci1zZXQgdmFycyg8Y29ybmVyMT4sY2xvY2tfbmV0X2xhdGUpICAgPGZsb2F0Pgotc2V0IHZhcnMoPGNvcm5lcjE+LGNsb2NrX25ldF9lYXJseSkgIDxmbG9hdD4KLSNzZXQgdmFycyg8Y29ybmVyMT4sY2VsbF9jaGVja19sYXRlKSAgPGZsb2F0PgotI3NldCB2YXJzKDxjb3JuZXIxPixjZWxsX2NoZWNrX2Vhcmx5KSA8ZmxvYXQ+Ci0KLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSMgRGVmaW5lIGNvbnN0cmFpbnRzIG1vZGVzIC4uLiAoUkVRVUlSRUQpCi0jIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1zZXQgdmFycyhjb25zdHJhaW50X21vZGVzKSAgICAgIDxsaXN0Pgotc2V0IHZhcnMoPG1vZGUxPixwcmVfY3RzX3NkYykgICA8ZmlsZT4KLSMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSMgVGhlIGZvbGxvd2luZyBhcmUgb3B0aW9uYWwgZm9yIGVhY2ggbW9kZSAuLi4KLSMgVXNlIEVJVEhFUiBpbmNyZW1lbnRhbCBPUiBmdWxsIHBvc3QgY3RzIHNkYwotIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotI3NldCB2YXJzKDxtb2RlMT4scG9zdF9jdHNfc2RjKSAgPGZpbGU+Ci0jc2V0IHZhcnMoPG1vZGUxPixpbmNyX2N0c19zZGMpICA8ZmlsZT4KLQotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotIyBEZWZpbmUgYW5hbHlzaXMgdmlld3MgLi4uIChSRVFVSVJFRCkKLSMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLXNldCB2YXJzKHNldHVwX2FuYWx5c2lzX3ZpZXdzKSAgICA8bGlzdD4KLXNldCB2YXJzKGhvbGRfYW5hbHlzaXNfdmlld3MpICAgICA8bGlzdD4KLQotc2V0IHZhcnMoPHZpZXcxPixkZWxheV9jb3JuZXIpICAgIDxzdHJpbmc+Ci1zZXQgdmFycyg8dmlldzE+LGNvbnN0cmFpbnRfbW9kZSkgPHN0cmluZz4KLQotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotIyBEZWZpbmUgYWN0aXZlIHNldHVwIGFuZCBob2xkIHZpZXdzIGFuZCBkZW5vdGUgCi0jIHdoaWNoIGFyZSBkZWZhdWx0IChSRVFVSVJFRCkKLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLXNldCB2YXJzKGRlZmF1bHRfc2V0dXBfdmlldykgICAgICA8c3RyaW5nPgotc2V0IHZhcnMoZGVmYXVsdF9ob2xkX3ZpZXcpICAgICAgIDxzdHJpbmc+Ci1zZXQgdmFycyhhY3RpdmVfc2V0dXBfdmlld3MpICAgICAgPGxpc3Q+Ci1zZXQgdmFycyhhY3RpdmVfaG9sZF92aWV3cykgICAgICAgPGxpc3Q+Ci0KLXNldCB2YXJzKHBvd2VyX2FuYWx5c2lzX3ZpZXcpICAgICA8c3RyaW5nPgotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotIyBEZWZpbmUgR0RTIGluZm9ybWF0aW9uIC4uLiAoT1BUSU9OQUwpCi0jIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0jc2V0IHZhcnMoZ2RzX2ZpbGVzKSAgICAgICAgICAgICA8bGlzdD4gCi0jc2V0IHZhcnMoZ2RzX2xheWVyX21hcCkgICAgICAgICA8ZmlsZT4KLSNzZXQgdmFycyhxcmNfbGF5ZXJfbWFwKSAgICAgICAgIDxmaWxlPgotI3NldCB2YXJzKHFyY19saWJyYXJ5KSAgICAgICAgICAgPGRpcmVjdG9yeT4KLSNzZXQgdmFycyhxcmNfY29uZmlnX2ZpbGUpICAgICAgIDxmaWxlPgotCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0jIERlZmluZSBleHRyYWN0aW9uIHRocmVzaG9sZHMuICBCZWxvdyBhcmUgdGhlIHJlY29tbWVuZGVkIHNldHRpbmdzIGZvciA5MG5tIAotIyBhbmQgYmVsb3cuICBUaGUgYXJlIG5vdCB0aGUgZmxvdyBkZWZhdWx0c3NvIHRoZXkgbmVlZCB0byBiZSBzZXQgaGVyZS4gCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0jc2V0IHZhcnMocmVsYXRpdmVfY190aHJlc2gpICAgICAgICAgPGZsb2F0PgotI3NldCB2YXJzKHRvdGFsX2NfdGhyZXNoKSAgICAgICAgICAgIDxmbG9hdD4gCi0jc2V0IHZhcnMoY291cGxpbmdfY190aHJlc2gpICAgICAgICAgPGZsb2F0PgotCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0jIERlZmluZSBub2lzZSBhbmFseXNpcyBzZXR0aW5ncy4gIEJlbG93IGFyZSB0aGUgcmVjb21tZW5kZWQgc2V0dGluZ3MgZm9yIAotIyA5MG5tIGFuZCBiZWxvdy4gIFRoZXkgYXJlIG5vdCB0aGUgZmxvdyBkZWZhdWx0cyBhcyB0aGV5IGNvbWUgd2l0aCBhIAotIyBydW4gdGltZSBwZW5hbHR5Ci0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0jc2V0IHZhcnMoZGVsdGFfZGVsYXlfdGhyZXNob2xkKSAgICAgPGZsb2F0PiAKLQotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSMgVmFyaWFibGVzIGZvciBPQSBkZXNpZ24gaW1wb3J0IGFuZCBleHBvcnQgKE9QVElPTkFMKQotIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSNzZXQgdmFycyhvYV9kZXNpZ25fbGliKSAgICAgICAgIDxzdHJpbmc+Ci0jc2V0IHZhcnMob2FfZGVzaWduX2NlbGwpICAgICAgICA8c3RyaW5nPgotI3NldCB2YXJzKG9hX2Rlc2lnbl92aWV3KSAgICAgICAgPHN0cmluZz4KLSMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0jc2V0IHZhcnMob2FfcmVmX2xpYikgICAgICAgICAgICA8c3RyaW5nPgotI3NldCB2YXJzKG9hX2Fic3RyYWN0X25hbWUpICAgICAgPHN0cmluZz4KLSNzZXQgdmFycyhvYV9sYXlvdXRfbmFtZSkgICAgICAgIDxzdHJpbmc+Ci0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotIyBEaXN0cmlidXRpb24gc2V0dXAgLSBsc2YsIHJzaCwgbG9jYWwsIG9yIGN1c3RvbQotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSNzZXQgdmFycyhkaXN0cmlidXRlKSAgICAgICAgICAgICAgICA8bG9jYWwgfCBjdXN0b20gfCBsc2YgfCByc2g+Ci0jc2V0IHZhcnMoZGlzdHJpYnV0ZV90aW1lb3V0KSAgICAgICAgPHNlY29uZHM+Ci0jc2V0IHZhcnMoY3VzdG9tLHNjcmlwdCkgICAgICAgICAgICAgPHN0cmluZz4KLSNzZXQgdmFycyhsc2YscXVldWUpICAgICAgICAgICAgICAgICA8c3RyaW5nPgotI3NldCB2YXJzKGxzZixyZXNvdXJjZSkgICAgICAgICAgICAgIDxzdHJpbmc+Ci0jc2V0IHZhcnMobHNmLGFyZ3MpICAgICAgICAgICAgICAgICAgPHN0cmluZz4KLSNzZXQgdmFycyhsb2NhbF9jcHVzKSAgICAgICAgICAgICAgICA8aW50ZWdlcj4KLSNzZXQgdmFycyhyZW1vdGVfaG9zdHMpICAgICAgICAgICAgICA8aW50ZWdlcj4KLSNzZXQgdmFycyhjcHVzX3Blcl9yZW1vdGVfaG9zdCkgICAgICA8aW50ZWdlcj4KLSNzZXQgdmFycyhyc2gsaG9zdHMpICAgICAgICAgICAgICAgICA8bGlzdD4KLSNzZXQgdmFycyhyc2gsaG9zdHMpICAgICAgICAgICAgICAgICA8bGlzdD4KLQotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSMgRGVzaWduIHZhcmlhYmxlcyB0byBoYW5kZWwgbGFyZ2UgZGVzaWducyAxMCtNIGluc3RhbmNlcwotIyBzZXQgcGxhY2VtZW50X2Jhc2VkX3B0biB0byAxIHRvIGdldCBwbGFjZSBiYXNlZCBmbG93Ci0jIHNldCBhYnV0dGVkX2Rlc2lnbiB0byAxIHRvIGdldCBzdGVwcyBsaWtlIGZlZWR0aHJyb3VoIHdpdGggY29ycmVjdAotIyB0cmlhbFJvdXRlIHNldHRpbmdzCi0jIHNldCBpbnNlcnRfZmVlZHRocm91Z2ggdG8gMSB0byBhZGQgZmVlZHRocm91Z2ggZm9yIGNoYW5uZWwtYmFzZWQKLSMgZGVzaWducyAoZmVlZHRocm91Z2ggaXMgYWx3YXlzIGluc2VydGVkIGZvciBjaGFubmVsbGVzcyBkZXNpZ25zLAotIyBpLmUuIHRob3NlIHdoZXJlIGFidXR0ZWRfZGVzaWduIGlzIDEpCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotI3NldCB2YXJzKHBsYWNlbWVudF9iYXNlZF9wdG4pICAgICAgICAgICAgICAgIDxib29sZWFuPgotI3NldCB2YXJzKGFidXR0ZWRfZGVzaWduKSAgICAgICAgICAgICAgICAgICAgIDxib29sZWFuPgotI3NldCB2YXJzKGluc2VydF9mZWVkdGhyb3VnaCkgICAgICAgICAgICAgICAgIDxib29sZWFuPgotCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotIyBWYXJpYWJsZXMgY29udHJvbGxpbmcgdGhlIHVzZSBvZiBmbGV4bW9kZWxzIGluIHRoZSB0b3AtZG93bgotIyBoaWVyYXJjaGljYWwgZmxvdy4KLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0jc2V0IHZhcnModXNlX2ZsZXhtb2RlbHMpICAgICAgICAgICAgICAgICAgICAgPGJvb2xlYW4+Ci0jc2V0IHZhcnMobW9kZWxfZ2VuLGFydF9iYXNlZCkgICAgICAgICAgICAgICAgPGJvb2xlYW4+Ci0jc2V0IHZhcnMobW9kZWxfZ2VuLG5vX2hvbGRfdmlldykgICAgICAgICAgICAgPGJvb2xlYW4+Ci0jc2V0IHZhcnMobW9kZWxfZ2VuLG1pbl9pbnN0KSAgICAgICAgICAgICAgICAgPGludGVnZXI+Ci0KLVB1dHMgIjxGRj4gRmluaXNoZWQgbG9hZGluZyBzZXR1cC50Y2wiCmRpZmYgLS1naXQgYS9mbG93L3Buci9idWlsZGluZnJhL2Jpbi9jb21wYXRpYmlsaXR5LnRjbCBiL2Zsb3cvcG5yL2J1aWxkaW5mcmEvYmluL2NvbXBhdGliaWxpdHkudGNsCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDc1NQppbmRleCA1Y2UzNGFlLi4wMDAwMDAwCi0tLSBhL2Zsb3cvcG5yL2J1aWxkaW5mcmEvYmluL2NvbXBhdGliaWxpdHkudGNsCisrKyAvZGV2L251bGwKQEAgLTEsMTMxNSArMCwwIEBACi0jPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0jIEZpbGUgTmFtZQk6IFNvdXJjZTogL25ldC9zcGxpbnRlci9mZWQvY3ZzL2luZnJhc3RydWN0dXJlL2FwcGxldHMvY29tcGF0aWJpbGl0eS50Y2wsdiAKLSMgRGF0ZSBDcmVhdGVkCTogMDcvMjAvMjAxMAotIyBEYXRlIE1vZGlmaWVkCTogRGF0ZTogMjAxMi8wMy8wNyAwMjo0Mjo0NyAKLSMgVmVyc2lvbgk6IFJldmlzaW9uOiAxLjM1Ci0jIFN1bW1hcnkJOiBQcm92aWRlIG5vbi1zdGFuZGFyZCBUQ0wgY29tbWFuZHMgdG8gZW5hYmxlIHNjcmlwdCByZXVzZSBhY3Jvc3MgQ2FkZW5jZQotIyBLZXl3b3JkcyAgICAgIDogVENMIGNvbXBhdGliaWxpdHkgc2NyaXB0IHBvcnQgRURJIGFlLXdhcmUgRVRTIExFQyBjb25mb3JtYWwKLSMKLSMgRGVzY3JpcHRpb246Ci0jCVJDIGhhcyBzb2xpZCBUQ0wgc3VwcG9ydCBidXQgYWxzbyBhZGRzIHNldmVyYWwgdXNlZnVsIGNvbW1hbmRzIHRoYXQgYXJlCi0jCW5vdCBhIHN0YW5kYXJkIHBhcnQgb2YgVENMLiBDb21tYW5kcyBsaWtlIGFkZF9jb21tYW5kX2hlbHAsIHBhcnNlX29wdGlvbnMsCi0jCWFzIHdlbGwgYXMgb3RoZXJzIGFyZSBmcmVxdWVudGx5IHVzZWQgaW4gUkMgYWUtd2FyZSBzY3JpcHRzIGJ1dCBub3Qgc3VwcG9ydGVkCi0jICAgICAgIGJ5IG1vc3QgdG9vbHMuIEluIG9yZGVyIHRvIGVuYWJsZSBlYXN5IHBvcnQgb2YgUkMgc2NyaXB0IHRvIG90aGVyIHRvb2xzCi0jCXdpdGhpbiBDYWRlbmNlLCB0aGlzIHNjcmlwdHMgYXJlIG5lZWRlZCB0byBlbXVsYXRlIGluIG90aGVyIHRvb2xzCi0jCXdoYXQgaXMgb3RoZXJ3aXNlIGVtYmVkZGVkIGluIFJDIGV4ZWN0dWFibGUKLSMKLSMgQXNzdW1wdGlvbnM6Ci0jCVRoaXMgc2NyaXB0IHdpbGwgYmUgbG9hZGVkIGluIGEgQ2FkZW5jZSB0b29sIHRoYXQgc3VwcG9ydHMgVENMCi0jCi0jPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0jI25hZ2VsZmFyIHN5bnRheCBnZXRfbWV0cmljCi0jI25hZ2VsZmFyIHN5bnRheCBnZXRfdmVyc2lvbgotIyNuYWdlbGZhciBzeW50YXggZ2V0X3ZlcnNpb25faW5mbwotIyNuYWdlbGZhciBzeW50YXggZ2V0VmVyc2lvbgotIyNuYWdlbGZhciBzeW50YXggZGJHZXQKLSMjbmFnZWxmYXIgc3ludGF4IGdldF9kZXNpZ24KLSMjbmFnZWxmYXIgc3ludGF4IGdldF9yb290X21vZHVsZQotIyNuYWdlbGZhciBzeW50YXggZ2V0TG9nRmlsZU5hbWUKLSMjbmFnZWxmYXIgc3ludGF4IHRpbWVkZXNpZ24KLWdsb2JhbCBjdXJyVG9vbAotCi0jIExvYWQgQ2FkZW5jZSBDb21wYXRpYmlsaXR5IExheWVyIHdoZW4gbm90IGluIFJUTCBDb21waWxlcgotaWYge1tleHByIHtbbGxlbmd0aCBbaW5mbyBjb21tYW5kcyBhdHRyaWJ1dGVfZXhpc3RzXV0gJiYgXAotCSAgICAgICBbYXR0cmlidXRlX2V4aXN0cyAtdHlwZSByb290IHByb2dyYW1fc2hvcnRfbmFtZV0gJiYgXAotCSAgICAgICBbc3RyaW5nIGVxdWFsIFtnZXRfYXR0cmlidXRlIHByb2dyYW1fc2hvcnRfbmFtZSAvXSAicmMiXX1dfSB7Ci0gICAgc2V0IGN1cnJUb29sIHJjCi19IGVsc2UgewotICAgIHN3aXRjaCAtcmVnZXhwIFtpbmZvIG5hbWVvZmV4ZWN1dGFibGVdIHsKLQl7Lyh2ZWxvY2l0eXxlbmNvdW50ZXIpJH0geyBzZXQgY3VyclRvb2wgZW5jb3VudGVyIH0KLQl7L2N0b3MoZ3VpKT8kfSAgICAgICAgICAgeyBzZXQgY3VyclRvb2wgY3RvcyB9Ci0Jey8obGVjfExFQ3x2ZXJpZnkpJH0gICAgIHsgc2V0IGN1cnJUb29sIGxlYyB9Ci0Jey8odGNsc2h8dGtjb24pfQkgeyBzZXQgY3VyclRvb2wgdGNsc2ggfQotCWRlZmF1bHQgICAgICAgICAgICAgICAgICB7IHNldCBjdXJyVG9vbCAidW5rbm93biIgfQotICAgIH0KLX0KLQotIyBleGl0IGlmIHJ1bm5pbmcgaW4gUlRMIENvbXBpbGVyOyBubyBlbXVsYXRpb24gbmVlZGVkIHRoZXJlCi1pZiB7IVtzdHJpbmcgbWF0Y2ggInJjIiAke2N1cnJUb29sfV19IHsgCi0gICAgIyBQdXQgYWxsIGFlLXdhcmUgaW4gYSBmbGF0IG5hbWVzcGFjZSB0byBlYXNlIHJlZmVyZW5jZSBmcm9tIG9uZSBhcHBsaWNhdGlvbiB0byBhbm90aGVyIAotICAgICMgQXMgc3VwcG9ydCBmb3IgYWRkaXRpb25hbCBhZS13YXJlIGlzIGFkZGVkIHRocm91Z2ggdGhlIGNvbXBhdGliaWxpdHkgbGF5ZXIsIHRoZXkgd2lsbAotICAgICMgbGlrZWx5IG5lZWQgdG8gYmUgYWRkZWQgaGVyZSBpZiB0aGV5IGhhdmUgcmVmZXJlbmNlcyB0byBvdGhlciBhZS13YXJlIHN1cHBvcnRlZCB0aHJvdWdoIAotICAgICMgdGhlIGNvbXBhdGlibGl0eSBsYXllcgotICAgIHNldCA6Om5zKGNvbXBhdCkgIjo6YWV3YXJlOjpjb21wYXQiCi0gICAgc2V0IDo6bnMocGFyc2Vfb3B0KSAkOjpucyhjb21wYXQpCi0gICAgc2V0IDo6bnMoZ2VucnB0KSAgICAkOjpucyhjb21wYXQpCi0gICAgc2V0IDo6bnMoYXBwbGV0KSAgICAkOjpucyhjb21wYXQpCi0gICAgc2V0IDo6bnMocmVkaXJlY3QpICAkOjpucyhjb21wYXQpCi0gICAgc2V0IDo6bnMocmVncmVzcykgICAkOjpucyhjb21wYXQpCi0KLSAgICBpZiB7IVtsbGVuZ3RoIFtpbmZvIHByb2NzIGFsaWFzXV19IHsgcHJvYyBhbGlhcyB7Y29tbWFuZG5hbWUgY29tbWFuZH0geyBldmFsIHtpbnRlcnAgYWxpYXMge30gJGNvbW1hbmRuYW1lIHt9fSAkY29tbWFuZCB9IH0KLQotICAgIGFsaWFzIGhpZGRlbl9wcm9jIHByb2MKLSAgICBhbGlhcyB0Y2xfc291cmNlIHNvdXJjZQotICAgIGFsaWFzIGxjZCAgY2QKLSAgICBhbGlhcyBsbHMgIGxzCi0gICAgYWxpYXMgbHB3ZCBwd2QKLSAgICBhbGlhcyAkezo6bnMoY29tcGF0KX06OmdldF9hdHRyICR7Ojpucyhjb21wYXQpfTo6Z2V0X2F0dHJpYnV0ZQotICAgIGFsaWFzICR7Ojpucyhjb21wYXQpfTo6c2V0X2F0dHIgJHs6Om5zKGNvbXBhdCl9OjpzZXRfYXR0cmlidXRlCi0gICAgYWxpYXMgJHs6Om5zKGNvbXBhdCl9OjpkZWZpbmVfYXR0ciAkezo6bnMoY29tcGF0KX06OmRlZmluZV9hdHRyaWJ1dGUKLQotICAgIGlmIHtbc3RyaW5nIG1hdGNoICJsZWMiICR7Y3VyclRvb2x9XX0geyByZW5hbWUgYWRkX2NvbW1hbmRfaGVscCBfYWRkX2NvbW1hbmRfaGVscCB9Ci0KLQotICAgIG5hbWVzcGFjZSBldmFsICQ6Om5zKGNvbXBhdCkgewotCXZhcmlhYmxlIHF1aWV0TW9kZSAwCi0JdmFyaWFibGUgcm9vdEF0dHJpYnV0ZXMKLQkKLQlpZiB7IVtsbGVuZ3RoIFtpbmZvIGNvbW1hbmRzIDo6YWRkX2NvbW1hbmRfaGVscF1dfSB7IG5hbWVzcGFjZSBleHBvcnQgYWRkX2NvbW1hbmRfaGVscCB9Ci0JaWYgeyFbbGxlbmd0aCBbaW5mbyBjb21tYW5kcyA6OmNhbGxpbmdfcHJvY11dfSAgICAgeyBuYW1lc3BhY2UgZXhwb3J0IGNhbGxpbmdfcHJvYyB9Ci0JaWYgeyFbbGxlbmd0aCBbaW5mbyBjb21tYW5kcyA6OmRpc3BhdGNoX3N1YmNvbW1hbmRdXX0geyBuYW1lc3BhY2UgZXhwb3J0IGRpc3BhdGNoX3N1YmNvbW1hbmQgfQotCWlmIHshW2xsZW5ndGggW2luZm8gY29tbWFuZHMgOjpkZWZpbmVfYXR0cmlidXRlXV19IHsgbmFtZXNwYWNlIGV4cG9ydCBkZWZpbmVfYXR0cmlidXRlIH0KLQlpZiB7IVtsbGVuZ3RoIFtpbmZvIGNvbW1hbmRzIDo6Z2V0X2F0dHJpYnV0ZV1dfSB7IG5hbWVzcGFjZSBleHBvcnQgZ2V0X2F0dHJpYnV0ZSB9Ci0JaWYgeyFbbGxlbmd0aCBbaW5mbyBjb21tYW5kcyA6OnNldF9hdHRyaWJ1dGVdXX0geyBuYW1lc3BhY2UgZXhwb3J0IHNldF9hdHRyaWJ1dGUgfQotCQotCXByb2MgYmFzZW5hbWUge2Z1bGxOYW1lfSB7IHJldHVybiAiW2ZpbGUgdGFpbCAkZnVsbE5hbWVdIiB9IAotCi0JcHJvYyBjb252ZXJ0X3VuaXQge2FyZ3N9IHsKLQkgICAgc3dpdGNoIC0tIFtwYXJzZV9vcHRpb25zICJjYWxsaW5nX3Byb2MiIHt9ICRhcmdzCQkJCSBcCi0JCQkgICAiLXRvIHNvcyB1bml0IHRvIGNvbnZlcnQgaW5wdXQgdG8oZGVmYXVsdCBpcyBwaWNvc2Vjb25kcykiIHRvVW5pdCBcCi0JCQkgICAic3JzIHN0cmluZyBjb250YWluaW5nIHZhbHVlIHRvIGNvbnZlcnQiIGlucHV0U3RyXSB7Ci0JCQkgICAgICAgLTIgeyByZXR1cm4gfQotCQkJICAgICAgIDAgeyByZXR1cm4gLWNvZGUgZXJyb3IgfQotCSAgICB9ICAKLQotCSAgICBzZXQgaW5WYWwgW2xpbmRleCAkaW5wdXRTdHIgMF0KLQkgICAgc2V0IGluVW5pdCBbbGluZGV4ICRpbnB1dFN0ciAxXQotCX0KLQotCXByb2MgRWRpTWV0cmljc1ByZXNlbnQge2FyZ3N9IHsKLQkgICAgc2V0IG1ldHJpY3NDb29raWUgIi5lZGlfbWV0cmljcyIKLQkgICAgZmlsZSBkZWxldGUgJHttZXRyaWNzQ29va2llfQotCSAgICAjI25hZ2VsZmFyIGlnbm9yZQotCSAgICA6OnNlOjpzYXZlX21ldHJpY19maWxlICR7bWV0cmljc0Nvb2tpZX0KLQkgICAgc2V0IHJldHVyblZhbCAiZmFsc2UiCi0JICAgIHN3aXRjaCBbbGxlbmd0aCAkYXJnc10gewotCQkwIHsgaWYge1tmaWxlIGV4aXN0cyAiJHttZXRyaWNzQ29va2llfSJdfSB7IHNldCByZXR1cm5WYWwgInRydWUiIH0gfQotCQkxIHsKLQkJICAgIGlmIHtbZmlsZSBleGlzdHMgIiR7bWV0cmljc0Nvb2tpZX0iXX0gewotCQkJc2V0IG1ldHJpY0ZpbGUgW29wZW4gJHttZXRyaWNzQ29va2llfSByXQotCQkJd2hpbGUgeyFbZW9mICRtZXRyaWNGaWxlXX0geyAKLQkJCSAgICBzZXQgbWV0cmljTGluZSBbZ2V0cyAkbWV0cmljRmlsZV0KLQkJCSAgICBpZiB7IVtyZWdleHAge3NlOjpzYXZlX21ldHJpY1xzKyguKilccysoXHsuKlx9KX0gJG1ldHJpY0xpbmUgbWF0Y2ggbWV0cmljTmFtZSBtZXRyaWNWYWxdfSB7IGNvbnRpbnVlIH0KLQkJCSAgICBpZiB7W3N0cmluZyBtYXRjaCAkbWV0cmljTmFtZSAkYXJnc119IHsgc2V0IHJldHVyblZhbCB0cnVlOyBicmVhazsgfQotCQkJfQotCQkJY2xvc2UgJG1ldHJpY0ZpbGUKLQkJICAgIH0KLQkJfQotCQlkZWZhdWx0IHsgcmV0dXJuICJFcnJvcjpFZGlNZXRyaWNzUHJlc2VudCBhbGxvd3MgMSBvciAwIGFyZ3VtZW50cyEiIH0KLQkgICAgfQotCSAgICByZXR1cm4gJHtyZXR1cm5WYWx9Ci0JfQotCi0KLQlwcm9jIDo6YWV3YXJlOjpjb21wYXQ6OmZpbmQge2FyZ3N9IHsgCi0JICAgIGdsb2JhbCBjdXJyVG9vbAotCi0JICAgIGlmIHtbcmVnZXhwIHsocHJvZ3JhbV92ZXJzaW9ufG1lbW9yeV91c2FnZXxydW50aW1lKX0gJGFyZ3NdfSB7IAotCQlpZiB7W3JlZ2V4cCB7XC0oZGVzfGRlc2l8ZGVzaWd8ZGVzaWduKX0gJGFyZ3NdfSB7IHJldHVybiAgfQotCQlpZiB7W3JlZ2V4cCB7KHJvb3QuKlwtYXR0cnwtYXR0ci4qcm9vdCl9ICRhcmdzXX0geyByZXR1cm4gMSB9Ci0JICAgIH0KLQkgICAgaWYge1tyZWdleHAge1wtY29zdF9ncm91cFxzK1wqfSAkYXJnc119IHsgCSAgICAKLQkJc3dpdGNoICR7Y3VyclRvb2x9IHsKLQkJICAgICJlbmNvdW50ZXIiICB7IAotCQkJIyBGb3IgRURJLCBvbmx5IHNhZmUgd2F5IHRvIGRvIHRoaXMgaXMgZ2VuZXJhdGluZyBhIHJlcG9ydCBhbmQgZXh0cmFjdGluZyB0aGUgcGF0aCBncm91cHMgZnJvbSB0aGVyZQotCQkJc2V0IGxvZ0ZpbGUgW29wZW4gW2dldExvZ0ZpbGVOYW1lXSByXQotCQkJc2VlayAkbG9nRmlsZSAwIGVuZAotCQkJdGltZWRlc2lnbiAtcmVwb3J0b25seQotCQkJdGltZWRlc2lnbiAtaG9sZCAtcmVwb3J0b25seQotCQkJd2hpbGUgeyFbZW9mICRsb2dGaWxlXX0geyAKLQkJCSAgICBzZXQgbG9nTGluZSBbZ2V0cyAkbG9nRmlsZV0KLQkJCSAgICBpZiB7W3JlZ2V4cCB7XHxccytTZXR1cCBtb2RlXHMrXHxccythbGxccytcfFxzKyguKilccytcfH0gJHtsb2dMaW5lfSBtYXRjaCByYXdDZ0luZm9dfSB7IGJyZWFrIH0KLQkJCX0KLQkJCWNsb3NlICRsb2dGaWxlCi0JCQlyZWdzdWIgLWFsbCB7XHMrfSAke3Jhd0NnSW5mb30gIiIgZWRpQ2dJbmZvCi0jCQkJcmVnc3ViIHtcfGNsa2dhdGV9ICR7ZWRpQ2dJbmZvfSAiIiBlZGlDZ0luZm8KLSMJCQlyZWdzdWIge1x8aW4ycmVnfSAke2VkaUNnSW5mb30gInxpbmNsa1NyYzJyZWciIGVkaUNnSW5mbwotIwkJCXJlZ3N1YiB7XHxpbjJvdXR9ICR7ZWRpQ2dJbmZvfSAifGluY2xrU3JjMm91dCIgZWRpQ2dJbmZvCi0JCQlyZXR1cm4gW3NwbGl0ICR7ZWRpQ2dJbmZvfSAifCJdCi0JCQkjCQkgICAgdW5zZXQgLW5vY29tcGxhaW4gZWRpQ2dJbmZvCi0JCQkjCQkgICAgZm9yZWFjaF9pbl9jb2xsZWN0aW9uIGNnTmFtZSBbZ2V0X3BhdGhfZ3JvdXBzXSB7IGxhcHBlbmQgZWRpQ2dJbmZvIFtnZXRfcHJvcGVydHkgJGNnTmFtZSBuYW1lXSB9Ci0JCQkjCQkgICAgcHV0cyAiJGVkaUNnSW5mbyIKLQkJICAgIH0KLQkJICAgICJjdG9zIiB7IHJldHVybiB9Ci0JCX0KLQkgICAgfQotCSAgICBpZiB7W3JlZ2V4cCB7XC0oZGVzfGRlc2l8ZGVzaWd8ZGVzaWduKVxzKyhcUyspfSAkYXJncyBtYXRjaCBmaW5kT3B0IGZpbmRTdHJdfSB7IAotCQlzd2l0Y2ggJHtjdXJyVG9vbH0gewotCQkgICAgImVuY291bnRlciIgeyByZXR1cm4gW2RiR2V0IHRvcC5uYW1lXSB9Ci0JCSAgICAiY3RvcyIgeyByZXR1cm4gW2dldF9kZXNpZ25dIH0KLQkJICAgICJsZWMiIHsgcmV0dXJuIFtnZXRfcm9vdF9tb2R1bGVdIH0KLQkJfQotCSAgICB9Ci0JICAgIHJldHVybgotCX0KLQotCXByb2Mgd2hhdF9pcyB7YXJnc30geyByZXR1cm4gfQotCi0JcHJvYyBjYWxsaW5nX3Byb2Mge2FyZ3N9IHsKLQkgICAgc3dpdGNoIC0tIFtwYXJzZV9vcHRpb25zICJjYWxsaW5nX3Byb2MiIHt9ICRhcmdzIFwKLQkJCSAgICJub3MgbnVtYmVyIG9mIGxldmVscyB0byBnbyBiYWNrIGZvciBjYWxsaW5nIHByb2NzIG5hbWUiIGxldmVsc10gewotCQkJICAgICAgIC0yIHsgcmV0dXJuIH0KLQkJCSAgICAgICAwIHsgcmV0dXJuIC1jb2RlIGVycm9yIH0KLQkgICAgfSAgCi0JICAgIAotCSAgICAjIGRlZmF1bHQgaXMgY3VycmVudCBsZXZlbAotCSAgICBpZiB7W2xsZW5ndGggJGxldmVsc119IHsKLQkJaWYgeyRsZXZlbHMgPD0gMH0geyByZXR1cm4gLWNvZGUgZXJyb3IgIkVycm9yOiBjYWxsaW5nX3Byb2MgYXJndW1lbnQgbXVzdCBiZSA+IDAiIH0KLQkgICAgfSBlbHNlIHsKLQkJc2V0IGxldmVscyAwCi0JICAgIH0KLQkgICAgCi0JICAgICMgZG9uJ3QgY291bnQgdGhpcyBjYWxsIHRvIGNhbGxpbmdfcHJvYwotCSAgICBpbmNyIGxldmVscwotCSAgICAKLQkgICAgIwlwdXRzICJsZXZlbHMgPSAkbGV2ZWxzIgotCSAgICAjCXB1dHMgImlfbGV2ZWwgPSBbaW5mbyBsZXZlbF0iCi0JICAgICMJcHV0cyAiaV9sZXZlbF9leHByID0gW2luZm8gbGV2ZWwgW2V4cHIge1tpbmZvIGxldmVsXSAtICRsZXZlbHN9XV0iCi0JICAgICMJcHV0cyAiaW5kZXggPSBbbGluZGV4IFtpbmZvIGxldmVsIFtleHByIHtbaW5mbyBsZXZlbF0gLSAkbGV2ZWxzfV1dIDBdIgotCSAgICAjCXB1dHMgIm5zX3RhaWwgPSBbbmFtZXNwYWNlIHRhaWwgW2xpbmRleCBbaW5mbyBsZXZlbCBbZXhwciB7W2luZm8gbGV2ZWxdIC0gJGxldmVsc31dXSAwXV0iCi0JICAgIHJldHVybiBbbmFtZXNwYWNlIHRhaWwgW2xpbmRleCBbaW5mbyBsZXZlbCBbZXhwciB7W2luZm8gbGV2ZWxdIC0gJGxldmVsc31dXSAwXV0KLQl9Ci0KLQlwcm9jIGdldF9hdHRyaWJ1dGUge2FyZ3N9IHsKLQkgICAgZ2xvYmFsIGN1cnJUb29sCi0JICAgIHZhcmlhYmxlIHJvb3RBdHRyaWJ1dGVzCi0JICAgIHZhcmlhYmxlICQ6Om5zKGNvbXBhdCk6OnF1aWV0TW9kZQotCi0JICAgIHN3aXRjaCAtLSBbcGFyc2Vfb3B0aW9ucyBbY2FsbGluZ19wcm9jXSB7fSAkYXJncwkJXAotCQkJICAgInNycyBhdHRyaWJ1dGUgbmFtZSIgYXR0ck5hbWUJCQlcCi0JCQkgICAic3JtIG9iamVjdCBvZiBpbnRlcmVzdCAobXVzdCBiZSB1bmlxdWUpIiBvYmpJbmZvXSB7Ci0JCQkgICAgICAgLTIgeyByZXR1cm4gfQotCQkJICAgICAgIDAgeyByZXR1cm4gLWNvZGUgZXJyb3IgfQotCSAgICB9Ci0KLQkgICAgZm9yZWFjaCBvYmogJG9iakluZm8gewotCQlpZiB7W3N0cmluZyBtYXRjaCAiZW5jb3VudGVyIiAke2N1cnJUb29sfV0gJiYKLQkJICAgIFtyZWdleHAgIm1ldHJpY18/KHZhbHVlfHRjbCk/IiAkb2JqIG1hdGNoIG1ldHJpY0FyZ119IHsKLQkJICAgIGlmIHtbbGxlbmd0aCAke21ldHJpY0FyZ31dfSB7IAotCQkJc2V0IG1ldHJpY0FyZyAiLSR7bWV0cmljQXJnfSIgCi0JCSAgICB9IGVsc2UgewotCQkJc2V0IG1ldHJpY0FyZyAiLXZhbHVlIiAKLQkJICAgIH0KLQkJICAgIHNldCBtZXRyaWNWYWx1ZSAiTi9BIgotCQkgICAgaWYge1tldmFsIEVkaU1ldHJpY3NQcmVzZW50ICRhdHRyTmFtZV19IHsgc2V0IG1ldHJpY1ZhbHVlIFtldmFsIGdldF9tZXRyaWMgJGF0dHJOYW1lICR7bWV0cmljQXJnfV0gfQotCQkgICAgcmV0dXJuICRtZXRyaWNWYWx1ZQotCQl9Ci0JCWlmIHtbcmVnZXhwIHtzbGFja30gJGF0dHJOYW1lXX0gewotCQkgICAgaWYge1tldmFsIEVkaU1ldHJpY3NQcmVzZW50IHRpbWluZy5zZXR1cC5XTlMuJHtvYmp9XX0gewotCQkJc2V0IG1ldHJpY1ZhbHVlIFtnZXRfbWV0cmljIHRpbWluZy5zZXR1cC5XTlMuJHtvYmp9IC12YWx1ZV0KLQkJCXJldHVybiAke21ldHJpY1ZhbHVlfQotCQkgICAgfSBlbHNlIHsKLQkJCXB1dHMgIldhcm5pbmc6IE5vIFwnc2xhY2tcJyBtZXRyaWNzIGF2YWlsYWJsZSBmb3IgJHtvYmp9IgotCQkJcmV0dXJuICJOL0EiCi0JCSAgICB9Ci0JCX0KLQkJaWYgeyEke3F1aWV0TW9kZX0gJiYgIVtyZWdleHAgey99ICRvYmpdfSB7IAotCQkgICAgcHV0cyAiV2FybmluZzogb25seSByb290IGF0dHJpYnV0ZXMgYXJlIGN1cnJlbnRseSBzdXBwb3J0ZWQgYnkgQ2FkZW5jZSBDb21wYXRpYmlsaXR5IExheWVyKENDTCkiIAotCQkgICAgcHV0cyAiICAgICAgICAgRURJIGFsc28gc3VwcG9ydHMgbWV0cmljczsgc3BlY2lmeSBcJ21ldHJpY1wnIGFzIHRoZSBvYmplY3QgdHlwZSIgCi0JCSAgICBwdXRzICJcdGdldF9hdHRyaWJ1dGUgJGF0dHJOYW1lICRvYmpJbmZvIgotCQkgICAgcmV0dXJuIC1jb2RlIGVycm9yCi0JCX0KLQkgICAgfQotCi0JICAgIHN3aXRjaCAtcmVnZXhwIC0tICRhdHRyTmFtZSB7Ci0JCXteKHJ1bnRpbWV8c3VwZXJfdGhyZWFkX3J1bnRpbWV8c3VwZXJfdGhyZWFkX3RvdGFsX3J1bnRpbWUpJH0geyAKLQkJICAgIHN3aXRjaCAtcmVnZXhwICR7Y3VyclRvb2x9IHsKLQkJCXsoZW5jb3VudGVyfGN0b3N8bGVjKX0gewotCQkJICAgIHNldCBmIFtvcGVuICJ8cHMgLXAgW3BpZF0gLW8gY3B1dGltZSAtLW5vaGVhZGVycyJdCi0JCQkgICAgc2V0IHNpemUgW3N0cmluZyB0cmltIFtyZWFkICRmXV0KLQkJCSAgICBjbG9zZSAkZgotCQkJICAgIGlmIHtbcmVnZXhwIHsoMCooXGQrKS0pPzAqKFxkKyk6MCooXGQrKTowKihcZCspfSAkc2l6ZSAtPiB4eCBkYXlzIGhvdXJzIG1pbiBzZWNdfSB7Ci0JCQkJc2V0IHNlY1RpbWUgMAotCQkJCWlmIHtbbGxlbmd0aCAke2RheXN9XX0geyBpbmNyIHNlY1RpbWUgW2V4cHIgeyRkYXlzICogMjQgKiA2MCAqIDYwfV0gfQotCQkJCWluY3Igc2VjVGltZSBbZXhwciB7JGhvdXJzICogNjAgKiA2MH1dCi0JCQkJaW5jciBzZWNUaW1lIFtleHByIHskbWluICogNjB9XQotCQkJCWluY3Igc2VjVGltZSAkc2VjCi0JCQkgICAgfQotCQkJICAgIHJldHVybiAkc2VjVGltZQotCQkJfQotCQkJeyh0Y2xzaCl9IHsKLQkJCSAgICBzZXQgZiBbb3BlbiAifHBzIC1wIFtwaWRdIC1vIGNwdXRpbWUgLS1ub2hlYWRlcnMiXQotCQkJICAgIHNldCBzaXplIFtzdHJpbmcgdHJpbSBbcmVhZCAkZl1dCi0JCQkgICAgY2xvc2UgJGYKLQkJCSAgICBpZiB7W3JlZ2V4cCB7KDAqKFxkKyktKT8wKihcZCspOjAqKFxkKyk6MCooXGQrKX0gJHNpemUgLT4geHggZGF5cyBob3VycyBtaW4gc2VjXX0gewotCQkJCXNldCBzZWNUaW1lIDAKLQkJCQlpZiB7W2xsZW5ndGggJHtkYXlzfV19IHsgaW5jciBzZWNUaW1lIFtleHByIHskZGF5cyAqIDI0ICogNjAgKiA2MH1dIH0KLQkJCQlpbmNyIHNlY1RpbWUgW2V4cHIgeyRob3VycyAqIDYwICogNjB9XQotCQkJCWluY3Igc2VjVGltZSBbZXhwciB7JG1pbiAqIDYwfV0KLQkJCQlpbmNyIHNlY1RpbWUgJHNlYwotCQkJICAgIH0KLQkJCSAgICByZXR1cm4gJHNlY1RpbWUKLQkJCX0KLQkJICAgIH0KLQkJfQotCQl7Xm1lbW9yeV91c2FnZSR9IHsgCi0JCSAgICBzd2l0Y2ggLXJlZ2V4cCAke2N1cnJUb29sfSB7Ci0JCQl7KGVuY291bnRlcnxjdG9zfGxlYyl9IHsKLQkJCSAgICBzZXQgZiBbb3BlbiAifHBzIC1wIFtwaWRdIC1vIHZzeiAtLW5vaGVhZGVycyJdCi0JCQkgICAgc2V0IHNpemUgW3N0cmluZyB0cmltIFtyZWFkICRmXV0KLQkJCSAgICBjbG9zZSAkZgotCQkJICAgIHJldHVybiBbZm9ybWF0ICIlLjJmIiBbZXhwciB7JHNpemUgLyAxMDI0LjB9XV0KLQkJCX0KLQkJICAgIH0KLQkJfQotCQl7XnByb2dyYW1fdmVyc2lvbiR9IHsgCi0JCSAgICBzd2l0Y2ggJHtjdXJyVG9vbH0gewotCQkJImVuY291bnRlciIgeyByZXR1cm4gIltnZXRWZXJzaW9uXSIgfQotCQkJImN0b3MiIHsgcmV0dXJuIFtmb3JtYXQgIiVzKCVzKSIgW2pvaW4gW2xyYW5nZSBbZ2V0X3ZlcnNpb25dIDAgMl0gLl0gW2pvaW4gW2xyYW5nZSBbZ2V0X3ZlcnNpb25dIDQgNV0ge31dXSB9Ci0JCQkibGVjIiB7IHJldHVybiBbZm9ybWF0ICIlcyglcykiIFtsaW5kZXggW2dldF92ZXJzaW9uX2luZm9dIDBdIFtsaW5kZXggW2dldF92ZXJzaW9uX2luZm9dIDJdXSB9Ci0JCSAgICB9Ci0JCX0KLQkJe15scF9wb3dlcl91bml0JH0geyByZXR1cm4gIm5XIiB9Ci0JCXtebHBfaW5zZXJ0X2Nsb2NrX2dhdGluZyR9IHsgcmV0dXJuICJmYWxzZSIgfQotCQl7XnN1cGVyX3RocmVhZF9zZXJ2ZXJzJH0geyByZXR1cm4gfQotCQl7XmF1dG9fc3VwZXJfdGhyZWFkJH0geyByZXR1cm4gMCB9Ci0JCWRlZmF1bHQgeyAKLQkJICAgIGlmIHtbaW5mbyBleGlzdHMgcm9vdEF0dHJpYnV0ZXModmFsdWUsJGF0dHJOYW1lKV19IHsgCi0JCQlyZXR1cm4gIiRyb290QXR0cmlidXRlcyh2YWx1ZSwkYXR0ck5hbWUpIiAKLQkJICAgIH0gZWxzZWlmIHshJHtxdWlldE1vZGV9fSB7IAotCQkJcmV0dXJuIC1jb2RlIGVycm9yICJFcnJvcjogYXR0cmlidXRlIFwnJGF0dHJOYW1lXCcgaXMgY3VycmVudGx5IG5vdCBzdXBwb3J0ZWQgYnkgQ2FkZW5jZSBDb21wYXRpYmlsaXR5IExheWVyKENDTCkiCi0JCQkKLQkJICAgIH0KLQkJfQotCSAgICB9Ci0JICAgIHJldHVybgotCX0KLQotCi0JcHJvYyBzZXRfYXR0cmlidXRlIHthcmdzfSB7Ci0JICAgIHZhcmlhYmxlIHJvb3RBdHRyaWJ1dGVzCi0JICAgIHZhcmlhYmxlICQ6Om5zKGNvbXBhdCk6OnF1aWV0TW9kZQotCSAgICAKLQkgICAgc2V0IHF1aWV0IDAKLQkgICAgaWYge1tpbmZvIGV4aXN0cyBxdWlldE1vZGVdICYmICR7cXVpZXRNb2RlfX0geyBzZXQgcXVpZXQgMSB9Ci0KLQkgICAgc3dpdGNoIC0tIFtwYXJzZV9vcHRpb25zIFtjYWxsaW5nX3Byb2NdIHt9ICRhcmdzCQkJCVwKLQkJCSAgICItcXVpZXQgYm9zIGtlZXBzIHF1aWV0IHVubGVzcyB0aGVyZSBhcmUgcHJvYmxlbXMiIHF1aWV0CQlcCi0JCQkgICAiLWxvY2sgYm9zIGF0dHJpYnV0ZSBiZWNvbWVzIHJlYWQgb25seSBvbmNlIGxvY2tlZCIgbG9ja0F0dHIJXAotCQkJICAgInNycyBhdHRyaWJ1dGUgbmFtZSIgYXR0ck5hbWUJCQkJCVwKLQkJCSAgICJzcnMgbmV3IHZhbHVlLiBBIGNvbXBvdW5kIHN0cmluZyAoY29udGFpbmluZyBzcGFjZXMpIHNob3VsZCBiZSByZXByZXNlbnRlZCBhcyBhIGxpc3QgKHVzaW5nIGRvdWJsZS1xdW90ZXMgb3IgYnJhY2VzKSIgYXR0clZhbCBcCi0JCQkgICAic3JtIG9iamVjdChzKSBvZiBpbnRlcmVzdCIgb2JqSW5mb10gewotCQkJICAgICAgIC0yIHsgcmV0dXJuIH0KLQkJCSAgICAgICAwIHsgcmV0dXJuIC1jb2RlIGVycm9yIH0KLQkgICAgfQotCSAgICAKLQkgICAgZm9yZWFjaCBvYmogJG9iakluZm8gewotCQlpZiB7ISR7cXVpZXR9ICYmICFbcmVnZXhwIHsvfSAkb2JqXX0geyAKLQkJICAgIHB1dHMgICJFcnJvcjogb25seSByb290IGF0dHJpYnV0ZXMgYXJlIGN1cnJlbnRseSBzdXBwb3J0ZWQgYnkgQ2FkZW5jZSBDb21wYXRpYmlsaXR5IExheWVyKENDTCkiIAotCQkgICAgcHV0cyAiXHRcJyRhdHRyTmFtZVwnIHdpbGwgbm90IGJlIHNldCB0byBcJyRhdHRyVmFsXCciCi0JCSAgICByZXR1cm4gLWNvZGUgZXJyb3IKLQkJfQotCQlpZiB7W2luZm8gZXhpc3RzIHJvb3RBdHRyaWJ1dGVzKHZhbHVlLCRhdHRyTmFtZSldfSB7IAotCQkgICAgaWYgeyFbZXZhbCBJc1ZhbGlkQXJnICRyb290QXR0cmlidXRlcyhkdHlwZSwkYXR0ck5hbWUpIFtsaXN0ICRhdHRyVmFsXV19IHsKLQkJCXB1dHMgIiAgc2V0X2F0dHJpYnV0ZSAkYXR0ck5hbWUgJGF0dHJWYWwgJG9iakluZm8iCi0JCQlyZXR1cm4gLWNvZGUgZXJyb3IKLQkJICAgIH0KLQkJICAgIGlmIHshJHF1aWV0fSB7Ci0JCQlwdXRzICIgIFNldHRpbmcgYXR0cmlidXRlIG9mIFwnJG9ialwnOiBcJyRhdHRyTmFtZVwnID0gJHthdHRyVmFsfSIKLQkJICAgIH0KLQkJICAgICMgU3VwcG9ydCBmb3IgLWNoZWNrX2Z1bmN0aW9uIGluIGRlZmluZV9hdHRyaWJ1dGUKLQkJICAgIGlmIHtbaW5mbyBleGlzdHMgcm9vdEF0dHJpYnV0ZXMoY2hlY2tGdW5jLCR7YXR0ck5hbWV9KV19IHsgZXZhbCAkcm9vdEF0dHJpYnV0ZXMoY2hlY2tGdW5jLCR7YXR0ck5hbWV9KSAke29ian0gJHthdHRyVmFsfSB9Ci0JCSAgICBzZXQgcm9vdEF0dHJpYnV0ZXModmFsdWUsJGF0dHJOYW1lKSAkYXR0clZhbCAKLQkJfSBlbHNlIHsgCi0JCSAgICByZXR1cm4gLWNvZGUgZXJyb3IgIkVycm9yOiBhdHRyaWJ1dGUgXCckYXR0ck5hbWVcJyBub3QgZm91bmQiCi0JCX0KLQkgICAgfQotCX0KLQotCXByb2MgZGVmaW5lX2F0dHJpYnV0ZSB7YXJnc30gewotCSAgICB2YXJpYWJsZSByb290QXR0cmlidXRlcwotCSAgICB2YXJpYWJsZSAkOjpucyhjb21wYXQpOjpxdWlldE1vZGUKLQotCSAgICBzZXQgY2hlY2tGdW5jIHt9Ci0JICAgIHNldCBzZXRGdW5jIHt9Ci0JICAgIHNldCBjb21wdXRlRnVuYyB7fQotCi0JICAgIHNldCBjaGVja0Z1bmNIZWxwICJuYW1lIG9mIFRjbCBwcm9jIHVzZWQgdG8gY2hlY2sgdmFsdWUuIFRoZSBUY2wgcHJvYyByZXR1cm5zICcxJyBpZiB2YWx1ZSBpcyBPSywgJzAnIG90aGVyd2lzZSBhbmQgcmVxdWlyZXMgdHdvIGFyZ3VtZW50czogPG9iamVjdD4gPHZhbHVlPiIKLQkgICAgc2V0IHNldEZ1bmNIZWxwICJuYW1lIG9mIFRjbCBwcm9jIHVzZWQgdG8gc2V0IHZhbHVlLiBUaGUgVGNsIHByb2MgcmV0dXJucyB0aGUgbmV3IHZhbHVlIGFuZCByZXF1aXJlcyB0aHJlZSBhcmd1bWVudHM6IDxvYmplY3Q+IDxuZXdfdmFsdWU+IDxjdXJyZW50X3ZhbHVlPiIKLQkgICAgc2V0IGNvbXB1dGVGdW5jSGVscCAibmFtZSBvZiBUY2wgcHJvYyB1c2VkIHRvIGNvbXB1dGUgdmFsdWUuIElmIHRoaXMgb3B0aW9uIGlzIHVzZWQgdGhlIGF0dHJpYnV0ZSBiZWNvbWVzIHJlYWQtb25seSwgc2luY2UgaXRzIHZhbHVlIGlzIGFsd2F5cyBjb21wdXRlZC4gVGhlIFRjbCBwcm9jIgotCi0JICAgIHN3aXRjaCAtLSBbcGFyc2Vfb3B0aW9ucyBbY2FsbGluZ19wcm9jXSB7fSAkYXJncwkJCVwKLQkJCSAgICItY2F0ZWdvcnkgc3JzIGNhdGVnb3J5IG5hbWUiIGNhdE5hbWUJCQlcCi0JCQkgICAiLWRhdGFfdHlwZSBzcnMgZGF0YSB0eXBlIChib29sZWFuLCBcJ2ZpeGVkIHBvaW50XCcsIFwnZmxvYXRpbmcgcG9pbnQgbnVtYmVyXCcsIGludGVnZXIsIHN0cmluZykiIGRhdGFUeXBlIFwKLQkJCSAgICItb2JqX3R5cGUgc3JzIG9iamVjdCB0eXBlIiBvYmpUeXBlCQkJXAotCQkJICAgIi1kZWZhdWx0X3ZhbHVlIHNvcyBkZWZhdWx0IHZhbHVlIiBkZWZhdWx0VmFsCQlcCi0JCQkgICAiLWhlbHBfc3RyaW5nIHNvcyBoZWxwIHN0cmluZyIgaGVscFN0cmluZwkJXAotCQkJICAgIi1tb3JlX2hlbHBfc3RyaW5nIHNvcyBleHRlbmRlZCBoZWxwIHN0cmluZyIgZXh0cmFIZWxwCVwKLQkJCSAgICItaGlkZGVuIGJvcyBoaWRlIGF0dHJpYnV0ZSIgaXNIaWRkZW4JCQlcCi0JCQkgICAiLW9ic29sZXRlIGJvcyBvYnNvbGV0ZSBhdHRyaWJ1dGUiIGlzT2Jzb2xldGUJCVwKLQkJCSAgICItY2hlY2tfZnVuY3Rpb24gc29zICRjaGVja0Z1bmNIZWxwIiBjaGVja0Z1bmMJCVwKLQkJCSAgICItY29tcHV0ZV9mdW5jdGlvbiBzb3MgICRjb21wdXRlRnVuY0hlbHAiIGNvbXB1dGVGdW5jCVwKLQkJCSAgICItc2V0X2Z1bmN0aW9uIHNvcyAkc2V0RnVuY0hlbHAiIHNldEZ1bmMJCQlcCi0JCQkgICAiLXNraXBfaW5fZGIgYm9zIGlmIHNldCwgY29tbWFuZCB3cml0ZV9kYiB3aWxsIG5vdCBzdG9yZSBhdHRyaWJ1dGUgc2V0dGluZ3MgaW4gdGhlIGRhdGFiYXNlIiBza2lwREIgXAotCQkJICAgInNycyBhdHRyaWJ1dGUgbmFtZSIgYXR0ck5hbWVdIHsKLQkJCSAgICAgICAtMiB7IHJldHVybiB9Ci0JCQkgICAgICAgMCB7IHJldHVybiAtY29kZSBlcnJvciB9Ci0JICAgIH0KLQkgICAgCi0JICAgIGlmIHshJHtxdWlldE1vZGV9ICYmIFtsbGVuZ3RoICRzZXRGdW5jXX0gewotCQlwdXRzICJXYXJuaW5nOiB1c2VyLWF0dHJpYnV0ZXMgd2l0aCAtc2V0X2Z1bmN0aW9uIGFyZSBub3Qgc3VwcG9ydGVkIGJ5IENhZGVuY2UgQ29tcGF0aWJpbGl0eSBMYXllcihDQ0wpIgotCQlwdXRzICJcdGF0dHJpYnV0ZSBcJyRhdHRyTmFtZVwnIHdpbGwgbm90IGJlIHN1cHBvcnRlZCIKLQkJcmV0dXJuCi0JICAgIH0KLQkgICAgCi0JICAgIGlmIHshJHtxdWlldE1vZGV9ICYmIFtsbGVuZ3RoICRjb21wdXRlRnVuY119IHsKLQkJcHV0cyAiV2FybmluZzogdXNlci1hdHRyaWJ1dGVzIHdpdGggLWNvbXB1dGVfZnVuY3Rpb24gYXJlIG5vdCBzdXBwb3J0ZWQgYnkgQ2FkZW5jZSBDb21wYXRpYmlsaXR5IExheWVyKENDTCkiCi0JCXB1dHMgIlx0YXR0cmlidXRlIFwnJGF0dHJOYW1lXCcgd2lsbCBub3QgYmUgc3VwcG9ydGVkIgotCQlyZXR1cm4KLQkgICAgfQotCi0JICAgIGlmIHshJHtxdWlldE1vZGV9ICYmICFbcmVnZXhwIHtyb290fSAkb2JqVHlwZV19IHsKLQkJcHV0cyAiV2FybmluZzogb25seSByb290IGxldmVsIHVzZXItYXR0cmlidXRlcyBhcmUgc3VwcG9ydGVkIGJ5IENhZGVuY2UgQ29tcGF0aWJpbGl0eSBMYXllcihDQ0wpIgotCQlwdXRzICJcdGF0dHJpYnV0ZSBcJyRhdHRyTmFtZVwnIHdpbGwgbm90IGJlIHN1cHBvcnRlZCIKLQkJcmV0dXJuCi0JICAgIH0gCi0JICAgIAotCSAgICBzZXQgcm9vdEF0dHJpYnV0ZXModmFsdWUsJGF0dHJOYW1lKSAkZGVmYXVsdFZhbCAKLQkgICAgc2V0IHJvb3RBdHRyaWJ1dGVzKGR0eXBlLCRhdHRyTmFtZSkgJGRhdGFUeXBlCi0JICAgIHNldCByb290QXR0cmlidXRlcyh2YWx1ZSwkYXR0ck5hbWUpICRkZWZhdWx0VmFsIAotCSAgICBpZiB7W2xsZW5ndGggJHtjaGVja0Z1bmN9XX0geyBzZXQgcm9vdEF0dHJpYnV0ZXMoY2hlY2tGdW5jLCRhdHRyTmFtZSkgJGNoZWNrRnVuYyB9Ci0JfQotCi0JIyBDdXJyZW50bHksIGFkZF9jb21tYW5kX2hlbHAgaXMgbm90IGVtdWxhdGVkIGJ1dCBpbXBsZW1lbnRlZCB3aXRob3V0IGRvaW5nIGFueWh0aW5nIHRvIGF2b2lkIGVycm9ycwotCWlmIHshW2xsZW5ndGggW2luZm8gY29tbWFuZHMgOjphZGRfY29tbWFuZF9oZWxwXV19IHsgcHJvYyBhZGRfY29tbWFuZF9oZWxwIHthcmdzfSB7fSB9Ci0KLQkjIFByb3ZpZGUgaGVscCBmb3IgY29tbWFuZCBjb250YWluaW5nIHN1YmNvbW1hbmRzLCBlZGl0X25ldGxpc3QgaXMKLQkjIGFuIGV4YW1wbGUKLQlwcm9jIHN1YmNvbW1hbmRfaGVscCB7Y29tbWFuZCBoZWxwIHN1YmNvbW1hbmRzfSB7Ci0JICAgIHB1dHMgIiAgJGNvbW1hbmQ6ICRoZWxwIgotCSAgICBwdXRzICJVc2FnZTogJGNvbW1hbmQgc3ViY29tbWFuZCBcWy1oXF0iCi0JICAgIHB1dHMgIiIKLQkgICAgcHV0cyAiICBUaGUgJ3N1YmNvbW1hbmQnIGNhbiBiZSBvbmUgb2YgdGhlIGZvbGxvd2luZzoiCi0JICAgIAotCSAgICAjIGdldCBsZW5ndGggb2YgbG9uZ2VzdCBjb21tYW5kIG5hbWUgLSB1c2VkIHRvIHByZXR0eSBwcmludCBoZWxwCi0JICAgIHNldCBtbGVuIDAKLQkgICAgZm9yZWFjaCBzdWJjb21tYW5kICRzdWJjb21tYW5kcyB7Ci0JCXNldCBjbGVuIFtzdHJpbmcgbGVuZ3RoIFtsaW5kZXggJHN1YmNvbW1hbmQgMF1dCi0JCXNldCBmbGFnIFtsaW5kZXggJHN1YmNvbW1hbmQgMV0KLQkJaWYgeyRmbGFnIGVxICJoaWRkZW4ifSB7Ci0JCSAgICBjb250aW51ZQotCQl9Ci0JCWlmIHskY2xlbiA+ICRtbGVufSB7Ci0JCSAgICBzZXQgbWxlbiAkY2xlbgotCQl9Ci0JICAgIH0KLQkgICAgCi0JICAgIGZvcmVhY2ggc3ViY29tbWFuZCAkc3ViY29tbWFuZHMgewotCQlzZXQgZmxhZyBbbGluZGV4ICRzdWJjb21tYW5kIDFdCi0JCWlmIHskZmxhZyBlcSAiaGlkZGVuIn0gewotCQkgICAgY29udGludWUKLQkJfQotCQlzZXQgY21kX25hbWUgW2xpbmRleCAkc3ViY29tbWFuZCAwXQotCQlzZXQgY21kX2hlbHAgW2xpbmRleCAkc3ViY29tbWFuZCAzXQotCQlzZXQgc2NvdW50IFtleHByIHskbWxlbiAtW3N0cmluZyBsZW5ndGggJGNtZF9uYW1lXX1dCi0JCXNldCBzcGFjZXMgW3N0cmluZyByYW5nZSBbc3RyaW5nIHJlcGVhdCAiICIgNTBdIDAgJHNjb3VudF0KLQkJcHV0cyAiW2Zvcm1hdCAiJXMlcy0gJXMiICRjbWRfbmFtZSAkc3BhY2VzICRjbWRfaGVscF0iCi0JICAgIH0KLQl9Ci0JCi0JIyBGaXJlIG9mZiB0aGUgYXBwcm9wcmlhdGUgc3ViY29tbWFuZC4gIGVkaXRfbmV0bGlzdCB1c2VzIHRoaXMuCi0JIyBzdWJjb21tYW5kcyBhcmUgZm9ybWF0dGVkIGFzOiA8bmFtZT4gPGhpZGRlbiB8IHZpc2libGU+IDxjbWQ+IDxoZWxwPgotCXByb2MgZGlzcGF0Y2hfc3ViY29tbWFuZCB7Y29tbWFuZCBjX2FyZ3Mgc3ViY29tbWFuZHMgaGVscH0gewotCSAgICBpZiB7W2xsZW5ndGggJGNfYXJnc10gPCAxfSB7Ci0JCXN1YmNvbW1hbmRfaGVscCAkY29tbWFuZCAkaGVscCAkc3ViY29tbWFuZHMKLQkJcmV0dXJuIC1jb2RlIGVycm9yICJGYWlsZWQgb24gJyRjb21tYW5kICRjX2FyZ3MnIgotCSAgICB9IGVsc2UgewotCQlzZXQgc3ViY29tbWFuZCBbbGluZGV4ICRjX2FyZ3MgMF0KLQkJCi0JCWlmIHtbc3RyaW5nIG1hdGNoICItaCoiICRzdWJjb21tYW5kXX0gewotCQkgICAgc3ViY29tbWFuZF9oZWxwICRjb21tYW5kICRoZWxwICRzdWJjb21tYW5kcwotCQkgICAgcmV0dXJuCi0JCX0gZWxzZSB7Ci0JCSAgICBzZXQgbWF0Y2hlcyB7fQotCQkgICAgc2V0IG1saXN0IHt9Ci0JCSAgICBzZXQgY21kaGVscCAiIgotCQkgICAgCi0JCSAgICBmb3JlYWNoIHR5cGUgJHN1YmNvbW1hbmRzIHsKLQkJCXNldCB0aGlzX3N1YmNvbW1hbmQgW2xpbmRleCAkdHlwZSAwXQotCQkJCi0JCQlpZiB7W3N0cmluZyBtYXRjaCAiJHN1YmNvbW1hbmQqIiAkdGhpc19zdWJjb21tYW5kXX0gewotCQkJICAgIGlmIHsoW2xpbmRleCAkdHlwZSAxXSBlcSAiaGlkZGVuIikgJiYgXAotCQkJCSAgICAoJHN1YmNvbW1hbmQgbmUgJHRoaXNfc3ViY29tbWFuZCl9IHsKLQkJCQljb250aW51ZQotCQkJICAgIH0KLQkJCSAgICBzZXQgZnVuY3Rpb24gW2xpbmRleCAkdHlwZSAyXQotCQkJICAgIHNldCBjbWRoZWxwICBbbGluZGV4ICR0eXBlIDNdCi0JCQkgICAgbGFwcGVuZCBtYXRjaGVzICR0aGlzX3N1YmNvbW1hbmQKLQkJCSAgICBsYXBwZW5kIG1saXN0ICR0eXBlCi0JCQl9Ci0JCSAgICB9Ci0JCSAgICAKLQkJICAgICMgZ2V0IGV4YWN0IG1hdGNoIGZvciBzdWJjb21tYW5kIGZvciBjYXNlcyB3aXRoIHNhbWUgYmVnaW5uaW5nCi0JCSAgICAjIGUuZy4gJ3JlcG9ydCBwb3dlcicgYW5kICdyZXBvcnQgcG93ZXJfZG9tYWluJwotCQkgICAgc2V0IGV4YWN0IDAKLQkJICAgIGZvcmVhY2ggdHlwZSAkbWF0Y2hlcyB7Ci0JCQlpZiB7JHR5cGUgZXEgJHN1YmNvbW1hbmR9IHsKLQkJCSAgICBzZXQgZXhhY3QgMQotCQkJfQotCQkgICAgfQotCQkgICAgaWYgeyRleGFjdH0gewotCQkJc2V0IG1hdGNoZXMgJHN1YmNvbW1hbmQKLQkJCWZvcmVhY2ggdHlwZSAkbWxpc3QgewotCQkJICAgIGlmIHskc3ViY29tbWFuZCBlcSBbbGluZGV4ICR0eXBlIDBdfSB7Ci0JCQkJc2V0IGZ1bmN0aW9uIFtsaW5kZXggJHR5cGUgMl0KLQkJCQlzZXQgY21kaGVscCAgW2xpbmRleCAkdHlwZSAzXQotCQkJCWJyZWFrCi0JCQkgICAgfQotCQkJfQotCQkgICAgfQotCQkgICAgCi0JCSAgICBpZiB7W2xsZW5ndGggJG1hdGNoZXNdID4gMX0gewotCQkJI0dldCB0aGUgbWF0Y2hpbmcgc3ViY29tbWFuZCB3aXRoIGxlYXN0IHN0cmluZyBsZW5ndGgKLQkJCWlmIHsgW3N0cmluZyBsZW5ndGggJHN1YmNvbW1hbmRdID4gMiB9IHsKLQkJCSAgICBzZXQgdHlwZSBbbGluZGV4IFtsc29ydCAtaW5kZXggMCAkbWxpc3RdIDBdCi0JCQkgICAgc2V0IGZ1bmN0aW9uIFtsaW5kZXggJHR5cGUgMl0KLQkJCSAgICBzZXQgY21kaGVscCBbbGluZGV4ICR0eXBlIDNdCi0JCQkgICAgCi0JCQkgICAgcHV0cyBzdGRvdXQgIkFtYmlndW91cyBzdWJjb21tYW5kOiAkbWF0Y2hlcyIKLQkJCSAgICBwdXRzIHN0ZG91dCAiQ2hvb3Npbmcgc3ViY29tbWFuZDogJ1tsaW5kZXggJHR5cGUgMF0nIgotCQkJfSBlbHNlIHsKLQkJCSAgICBwdXRzIHN0ZG91dCAiQW1iaWd1b3VzIHN1YmNvbW1hbmQ6ICRtYXRjaGVzIgotCQkJICAgIHN1YmNvbW1hbmRfaGVscCAkY29tbWFuZCAkaGVscCAkc3ViY29tbWFuZHMKLQkJCSAgICByZXR1cm4gLWNvZGUgZXJyb3IgIkZhaWxlZCBvbiAnJGNvbW1hbmQgJGNfYXJncyciCi0JCQl9Ci0JCSAgICB9Ci0JCSAgICAKLQkJICAgIGlmIHtbbGxlbmd0aCAkbWF0Y2hlc10gPT0gMH0gewotCQkJcHV0cyBzdGRvdXQgIkNhbm5vdCBmaW5kIHN1YmNvbW1hbmQ6ICRzdWJjb21tYW5kIgotCQkJc3ViY29tbWFuZF9oZWxwICRjb21tYW5kICRoZWxwICRzdWJjb21tYW5kcwotCQkJcmV0dXJuIC1jb2RlIGVycm9yICJGYWlsZWQgb24gJyRjb21tYW5kICRjX2FyZ3MnIgotCQkgICAgfQotCQl9Ci0JICAgIH0KLQkgICAgCi0JICAgICMgRG9uJ3QgdXNlIGNvbmNhdCBiZWNhdXNlIGNvbmNhdCBpcyBzbG93LgotCSAgICBzZXQgY21kIFtsaXN0ICRmdW5jdGlvbl0KLQkgICAgc2V0IGZvdW5kX2hlbHAgMAotCSAgICBmb3JlYWNoIGFyZyBbbHJhbmdlICRjX2FyZ3MgMSBlbmRdIHsKLQkJbGFwcGVuZCBjbWQgJGFyZwotCQlpZiB7KCRhcmcgZXEgIi1oIikgICB8fCAoJGFyZyBlcSAiLWhlIikgfHwgCi0JCSAgICAoJGFyZyBlcSAiLWhlbCIpIHx8ICgkYXJnIGVxICItaGVscCIpfSB7Ci0JCSAgICBzZXQgZm91bmRfaGVscCAxCi0JCX0KLQkgICAgfQotCSAgICAKLQkgICAgIyBwcmludCBoZWxwIGZvciBoaWRkZW4gc3ViY29tbWFuZHMKLQkgICAgIyBBUkdILSB0aGUgcmVnZXhwIGlzIGNvbnZlcnRpbmcgdmRpciBvYmplY3RzIGludG8gc3RyaW5ncyEKLQkgICAgIyBQbGVhc2UgYmUgY2VydGFpbiB0aGF0IHlvdSB3YXRjaCBvdXQgZm9yIHZkaXIgb2JqZWN0cy4KLQkgICAgI2lmIHtbcmVnZXhwIHtcLWh9ICRjbWRdICYmICgkY21kaGVscCBuZSAiIil9IAotCSAgICBpZiB7JGZvdW5kX2hlbHAgJiYgKCRjbWRoZWxwIG5lICIiKX0gewotCQlwdXRzICIgICRjb21tYW5kICRtYXRjaGVzOiAkY21kaGVscCIKLQkgICAgfQotCSAgICBldmFsICRjbWQKLQl9Ci0gICAgfQotCi0gICAgbmFtZXNwYWNlIGV2YWwgJDo6bnMocGFyc2Vfb3B0KSB7Ci0KLQlpZiB7IVtsbGVuZ3RoIFtpbmZvIGNvbW1hbmRzIDo6cGFyc2Vfb3B0aW9uc11dfSB7IG5hbWVzcGFjZSBleHBvcnQgcGFyc2Vfb3B0aW9ucyB9Ci0KLQlwcm9jIFVzYWdlSW5mbyB7Y21kIGNtZE9wdGlvbnN9IHsKLQkgICAgdXB2YXIgJGNtZE9wdGlvbnMgb3B0SW5mbwotCSAgICBzZXQgY21kVmVyc2lvbiB7fQotCSAgICBpZiB7IFtleHByIHtbbGxlbmd0aCAkY21kXSA+IDF9XSAmJiBbc3RyaW5nIGlzIGRvdWJsZSBbbGluZGV4ICRjbWQgZW5kXV0gfSB7Ci0JCXNldCBjbWRWZXJzaW9uIFtsaW5kZXggJGNtZCBlbmRdCi0JCXNldCBjbWQgW2xyZXBsYWNlICR7Y21kfSBlbmQgZW5kXQotCSAgICB9Ci0JICAgIHNldCB1c2FnZVN0cmluZyB7fQotCSAgICBzZXQgdXNhZ2VIZWFkZXIgIlxuVXNhZ2U6ICRjbWQiCi0JICAgIGlmIHtbbGxlbmd0aCAke2NtZFZlcnNpb259XX0geyBzZXQgdXNhZ2VIZWFkZXIgIlxuQ29tbWFuZCBWZXJzaW9uOiAke2NtZFZlcnNpb259XG5Vc2FnZTogJGNtZCIgfQotCSAgICBmb3JlYWNoIG9wdCBbbHNvcnQgW2FycmF5IG5hbWVzIG9wdEluZm8gdmFyLCpdXSB7Ci0JCXJlZ3N1YiAidmFyLCIgICRvcHQgIiIgICAgICBvcHRVc2FnZQotCQlyZWdzdWIgInZhciwiICAkb3B0ICJycW10LCIgb3B0UnFtdAotCQlyZWdzdWIgInZhciwiICAkb3B0ICJoZWxwLCIgb3B0SGVscAotCQlmb3Ige3NldCBpIDB9IHskaSA8IFtsbGVuZ3RoICRvcHRJbmZvKCRvcHQpXX0ge2luY3IgaX0gewotCQkgICAgaWYgeyFbcmVnZXhwIHtiXHdcd30gW2xpbmRleCAkb3B0SW5mbygkb3B0UnFtdCkgJGldXX0geyBhcHBlbmQgb3B0VXNhZ2UgIiAiIH0KLQkJICAgIGlmIHshW3JlZ2V4cCB7XC0uKn0gJG9wdFVzYWdlXX0geyBzZXQgb3B0VXNhZ2UgIiIgfQotCQkgICAgc3dpdGNoIC1yZWdleHAgW2xpbmRleCAkb3B0SW5mbygkb3B0UnFtdCkgJGldIHsKLQkJCXtuXHdcd30geyBzZXQgb3B0VXNhZ2UgIiR7b3B0VXNhZ2V9PGludGVnZXI+IiB9Ci0JCQl7Zlx3XHd9IHsgc2V0IG9wdFVzYWdlICIke29wdFVzYWdlfTxmbG9hdD4iIH0KLQkJCXtzXHdcd30geyBzZXQgb3B0VXNhZ2UgIiR7b3B0VXNhZ2V9PHN0cmluZz4iIH0KLQkJICAgIH0KLQkJICAgIGlmIHtbcmVnZXhwIHtcd09cd30gW2xpbmRleCAkb3B0SW5mbygkb3B0UnFtdCkgJGldXX0geyBjb250aW51ZSB9Ci0JCSAgICBpZiB7W3JlZ2V4cCB7XHdvXHd9IFtsaW5kZXggJG9wdEluZm8oJG9wdFJxbXQpICRpXV19IHsgc2V0IG9wdFVzYWdlICJcWyR7b3B0VXNhZ2V9XF0iIH0KLQkJICAgIGlmIHtbcmVnZXhwIHtcd1x3bX0gW2xpbmRleCAkb3B0SW5mbygkb3B0UnFtdCkgJGldXX0geyBzZXQgb3B0VXNhZ2UgIiR7b3B0VXNhZ2V9KyIgfQotCQkgICAgYXBwZW5kIHVzYWdlSGVhZGVyICIgJHtvcHRVc2FnZX0iCi0JCSAgICBsYXBwZW5kIHVzYWdlU3RyaW5nICIgICAgJHtvcHRVc2FnZX06IgotCQkgICAgbGFwcGVuZCB1c2FnZVN0cmluZyAiICAgICAgICBbbGluZGV4ICRvcHRJbmZvKCRvcHRIZWxwKSAkaV0iCi0JCX0KLQkgICAgfQotCSAgICAKLQkgICAgIyBPdXRwdXQgdXNhZ2UgaGVscCBtZXNzc2FnZQotCSAgICBwdXRzICIkdXNhZ2VIZWFkZXJcbiIKLQkgICAgZm9yZWFjaCB1c2FnZUxpbmUgJHt1c2FnZVN0cmluZ30geyBwdXRzICIkdXNhZ2VMaW5lIiB9Ci0JfQotCQotCXByb2MgUGFyc2VIZWxwIHt9IHsKLQkgICAgcHV0cyAiCi0gVXNhZ2U6IHBhcnNlX29wdGlvbnMgY21kIGZpbGVfdmFyIGFyZ3MgXFtjb2RlIHZhclxdKgotCi0gICAgIGNtZCA8c3RyaW5nPjoKLSAgICAgICAgbmFtZSBvZiB0aGUgY29tbWFuZCB3aG9zZSBvcHRpb25zIGFyZSBiZWluZyBwYXJzZWQKLSAgICAgZmlsZV92YXIgPHN0cmluZz46Ci0gICAgICAgIG5hbWUgb2YgdmFyaWFibGUgdG8gaG9sZCBmaWxlIGlkCi0gICAgIGFyZ3MgPHN0cmluZz46Ci0gICAgICAgIG9wdGlvbnMgYmVpbmcgcGFzc2VkIHRvIHRoZSBjb21tYW5kCi0gICAgIGNvZGUgPHN0cmluZz46Ci0gICAgICAgIG9wdGlvbiBwYXJzaW5nIGRpcmVjdGl2ZQotICAgICB2YXIgPHN0cmluZz46Ci0gICAgICAgIG5hbWUgb2YgdmFyaWFibGUgdG8gaG9sZCBvcHRpb24gcmVzdWx0Ci0KLVRoZSBvcHRpb24gcGFyc2luZyBkaXJlY3RpdmUgc2hvdWxkIGJlIGluIHRoZSBmb3JtOgotICAoPC1uYW1lPiApPzx4Pjx5Pjx6Pig8ZGlydHlwZXM+KT8gPGhlbHA+Ci0gIHdoZXJlIDwtbmFtZT4gaXMgYSBmbGFnLCBmb3IgZXhhbXBsZSBcIi1tYXhcIgotICAgIG11bHRpcGxlIHN0cmluZyBvYmplY3RzKCdzcm0nIGFuZCAnc29tJykgYXJlIG5vdCBzdXBwb3J0ZWQgZm9yIGZsYWdnZWQgb3B0aW9ucy4KLSAgICAgICAgPHg+IGlzIGEgY2hhcmFjdGVyIGluZGljYXRpbmcgdGhlIG9wdGlvbiB0eXBlCi0gICAgICAgICAgIGQ6IGRpcmVjdG9yeSBvYmplY3QKLSAgICAgICAgICAgbjogaW50ZWdlcgotICAgICAgICAgICBmOiBmbG9hdAotICAgICAgICAgICBiOiBib29sZWFuCi0gICAgICAgICAgIHM6IHN0cmluZwotICAgICAgICA8eT4gaXMgYSBjaGFyYWN0ZXIgaW5kaWNhdGluZyBvcHRpb25hbCwgcmVxdWlyZWQgb3Igb2Jzb2xldGUKLSAgICAgICAgICAgbzogb3B0aW9uYWwKLSAgICAgICAgICAgcjogcmVxdWlyZWQKLSAgICAgICAgICAgeDogb2Jzb2xldGUKLSAgICAgICAgPHo+IGlzIGEgY2hhcmFjdGVyIGluZGljYXRpbmcgc2luZ2xlIG9yIG11bHRpcGxlCi0gICAgICAgICAgIHM6IHNpbmdsZSB2YWx1ZSBvbmx5Ci0gICAgICAgICAgIG06IG11bHRpcGxlIHZhbHVlcyBhY2NlcHRlZAotICAgICAgICA8ZGlydHlwZXM+IGlzIGEgc3RyaW5nIGluZGljYXRpbmcgZGlyZWN0b3J5IHR5cGVzCi0gICAgICAgICAgIFRoZSB0eXBlcyBtdXN0IGJlIHNlcGFyYXRlZCBieSB8IGNoYXJhY3RlcnMKLSAgICAgICAgICAgYW5kIG11c3QgYmUgYm91bmRlZCBieSBwYXJlbnRoZXNlcy4KLSAgICAgICAgICAgRm9yIGV4YW1wbGUsIChwb3J0fHBpbikgaW5kaWNhdGVzIHRoYXQgYm90aAotICAgICAgICAgICBwb3J0IGFuZCBwaW4gZGlyZWN0b3JpZXMgYXJlIGFjY2VwdGVkLgotICAgICAgICA8aGVscD4gaXMgYSBzdHJpbmcgcmV0dXJuZWQgdG8gdGhlIHVzZXIgaWYgdGhlCi0gICAgICAgICAgIFwnLWhcJyBmbGFnIGlzIGdpdmVuLgotIgotCX0KLQkKLQlwcm9jIHBhcnNlX29wdGlvbnMge2FyZ3N9IHsKLQkgICAgc2V0IGNtZCBbbGluZGV4ICRhcmdzIDBdCi0JICAgIHNldCBmaWxlX3ZhciBbbGluZGV4ICRhcmdzIDFdCi0JICAgIHNldCBwYXJzZUFyZ3MgW2xpbmRleCAkYXJncyAyXQotCSAgICBzZXQgcGFyc2VPcHRpb25zIFtscmFuZ2UgJGFyZ3MgMyBlbmRdCi0JICAgIHNldCBzd2l0Y2hOYW1lIHt9Ci0JICAgIHNldCBoZWxwU3RyaW5nIHt9Ci0JICAgIHNldCBwYXJzZVJxbXQge30KLQkgICAgCi0JICAgIGlmIHtbaW5mbyBleGlzdHMgb3B0SW5mb119IHsgdW5zZXQgb3B0SW5mbyB9Ci0JICAgIGlmIHtbcmVnZXhwIHtcLShofGhlfGhlbHxoZWxwKSgkfFxzKX0gJGNtZF19IHsgCi0JCWV2YWwgUGFyc2VIZWxwIAotCQlyZXR1cm4KLQkgICAgfQotCSAgICBmb3JlYWNoIG9wdCAkcGFyc2VPcHRpb25zIHsKLQkJaWYge1tsbGVuZ3RoICRvcHRdID09IDF9IHsKLQkJICAgIHNldCBpbmRleE5hbWUgInVuZmxhZ2dlZCIKLQkJICAgIGlmIHtbbGxlbmd0aCAkc3dpdGNoTmFtZV0gPT0gMX0geyByZWdzdWIgLWFsbCB7XHN9ICAkc3dpdGNoTmFtZSAiIiBpbmRleE5hbWUgfQotCQkgICAgc3dpdGNoIC1yZWdleHAgJHBhcnNlUnFtdCB7Ci0JCQl7Ylx3bX0geyAKLQkJCSAgICBwdXRzICJFcnJvcjogQm9vbGVhbiBvcHRpb25zIGNhbm5vdCBiZSBtdWx0aS12YWx1ZWQiCi0JCQkgICAgcmV0dXJuIC1jb2RlIGVycm9yCi0JCQl9Ci0JCQl7YnJcd30geyAKLQkJCSAgICBwdXRzICJFcnJvcjogQm9vbGVhbiBvcHRpb25zIGNhbm5vdCBiZSByZXF1aXJlZCAtIHVzZWxlc3MiCi0JCQkgICAgcmV0dXJuIC1jb2RlIGVycm9yCi0JCQl9Ci0JCQl7Ym9zfSB7IAotCQkJICAgIGlmIHtbc3RyaW5nIG1hdGNoICJ1bmZsYWdnZWQiICRpbmRleE5hbWVdfSB7IAotCQkJCXB1dHMgIkVycm9yOiBCb29sZWFuIG9wdGlvbnMgbXVzdCBiZSB1bmZsYWdnZWQiCi0JCQkJcmV0dXJuIC1jb2RlIGVycm9yCi0JCQkgICAgfQotCQkJfQotCQkJe3Ncd219IHsgCi0JCQkgICAgaWYge1tsbGVuZ3RoICRzd2l0Y2hOYW1lXSA9PSAxfSB7Ci0JCQkJcHV0cyAiRXJyb3I6IFwnc29tXCcgYW5kIFwnc3JtXCcgZG8gbm90IHN1cHBvcnQgZmxhZ2dlZCBvcHRpb25zIgotCQkJCXJldHVybiAtY29kZSBlcnJvcgotCQkJICAgIH0KLQkJCX0KLQkJICAgIH0KLQkJICAgIGxhcHBlbmQgb3B0SW5mbyh2YXIsJGluZGV4TmFtZSkgJG9wdAotCQkgICAgbGFwcGVuZCBvcHRJbmZvKHJxbXQsJGluZGV4TmFtZSkgJHBhcnNlUnFtdAotCQkgICAgbGFwcGVuZCBvcHRJbmZvKHVzZWQsJGluZGV4TmFtZSkgMAotCQkgICAgbGFwcGVuZCBvcHRJbmZvKGhlbHAsJGluZGV4TmFtZSkgJGhlbHBTdHJpbmcKLQkJICAgIGNvbnRpbnVlCi0JCX0KLQkJaWYgeyFbcmVnZXhwIHteXHMqKFwtXHcrKT9ccyooW2Ric25mXVtvck9dW3NtXSkoXChcUytcKSk/XHMrKC4qKX0gJG9wdCBtYXRjaCBzd2l0Y2hOYW1lIHBhcnNlUnFtdCBvYmpScW10IGhlbHBTdHJpbmddfSB7Ci0JCSAgICBwdXRzICJFcnJvcjogSW52YWxpZCBwYXJzZSByZXF1aXJlbWVudCBzdHJpbmciCi0JCSAgICBldmFsIFBhcnNlSGVscAotCQkgICAgcmV0dXJuIC1jb2RlIGVycm9yIAotCQl9Ci0JICAgIH0KLQkgICAgCi0JICAgICMgcHJvYmFibHkgbmVlZHMgdG8gYmUgcmVtb3ZlZCBhbmQgaW50ZWdyYXRlZCBpbnRvIG5leHQgcGFyc2luZyBzZWN0aW9uCi0JICAgIGlmIHtbcmVnZXhwIHsoXnxccylcLShofGhlfGhlbHxoZWxwKSgkfFxzKX0gJHBhcnNlQXJnc119IHsgCi0JCWV2YWwgVXNhZ2VJbmZvIFtsaXN0ICRjbWRdIG9wdEluZm8KLQkJcmV0dXJuIC0yIAotCSAgICB9Ci0JICAgIAotCSAgICBzZXQgdW5mbGFnQ291bnQgMAotCSAgICBpZiB7W2luZm8gZXhpc3RzIG9wdEluZm8odmFyLHVuZmxhZ2dlZCldfSB7IHNldCB1bmZsYWdDb3VudCBbbGxlbmd0aCAkb3B0SW5mbyh2YXIsdW5mbGFnZ2VkKV0gfQotCSAgICBzZXQgdW5mbGFnSW5kZXggMAotCSAgICBzZXQgYXJnQ291bnQgW2xsZW5ndGggJHBhcnNlQXJnc10KLQkgICAgIwlmb3JlYWNoIGZvbyBbYXJyYXkgbmFtZXMgb3B0SW5mbyAqXSB7IHB1dHMgIm9wdEluZm8oJGZvbykgLT4gJG9wdEluZm8oJGZvbykiIDsgc2V0IDo6b3B0SW5mbygkZm9vKSAkb3B0SW5mbygkZm9vKTsgfQotCSAgICAjIFByb2Nlc3MgZmxhZ3MgYW5kIGZsYWcgYXJndW1lbnRzCi0JICAgIGZvciB7c2V0IGkgMH0geyRpIDwgJGFyZ0NvdW50fSB7aW5jciBpfSB7Ci0JCXNldCBjdXJyZW50QXJnIFtsaW5kZXggJHBhcnNlQXJncyAkaV0KLQkJaWYge1tyZWdleHAge1wtfSAkY3VycmVudEFyZ119IHsgCi0JCSAgICBzZXQgbWF0Y2hJbmRleCBbbHNlYXJjaCAtcmVnZXhwIC1hbGwgW2FycmF5IG5hbWVzIG9wdEluZm8gdmFyLCpdICRjdXJyZW50QXJnXQotCQkgICAgaWYgeyBbbGxlbmd0aCAkbWF0Y2hJbmRleF0gPiAxIH0geyByZXR1cm4gLWNvZGUgZXJyb3IgIkVycm9yOiBhbWJpZ3VvdXMgZmxhZyBcJyRjdXJyZW50QXJnXCcgc3BlY2lmaWVkIiB9Ci0JCSAgICBpZiB7IFtsbGVuZ3RoICRtYXRjaEluZGV4XSA9PSAxIH0geyByZWdzdWIgInZhciwiIFtsaW5kZXggW2FycmF5IG5hbWVzIG9wdEluZm8gdmFyLCpdICRtYXRjaEluZGV4XSAiIiBjdXJyZW50QXJnIH0KLQkJfQotCQkjIElkZW50aWZ5IGFuZCBwcm9jZXNzIGZsYWdnZWQgb3B0aW9ucwotCQkjCSAgICBsbGVuZ3RoIFtsc2VhcmNoIC1yZWdleHAgLWFsbCBbYXJyYXkgbmFtZXMgb3B0SW5mbyB2YXIsKl0gJGN1cnJlbnRBcmddCi0JCSMJICAgIGluZm8gZXhpc3RzIG9wdEluZm8odmFyLCRjdXJyZW50QXJnKQotCQlpZiB7IFtpbmZvIGV4aXN0cyBvcHRJbmZvKHZhciwkY3VycmVudEFyZyldICB8fCBbZXhwciB7JHVuZmxhZ0NvdW50ICE9IDB9XSB9IHsKLQkJICAgIHNldCBhcmdWYWwge30KLQkJICAgIGlmIHtbaW5mbyBleGlzdHMgb3B0SW5mbyh2YXIsJGN1cnJlbnRBcmcpXX0gewotCQkJdXB2YXIgJG9wdEluZm8odmFyLCRjdXJyZW50QXJnKSBhcmdWYXIKLQkJCXNldCBhcmdScW10ICRvcHRJbmZvKHJxbXQsJGN1cnJlbnRBcmcpCi0JCQlpZiB7W3JlZ2V4cCB7YihvfE8pc30gJGFyZ1JxbXRdfSB7IAotCQkJICAgIHNldCBhcmdWYXIgMQotCQkJICAgIHNldCBvcHRJbmZvKHVzZWQsJGN1cnJlbnRBcmcpIDEKLQkJCSAgICBjb250aW51ZQotCQkJfQotCQkJIyBJZiBub3QgZmxhZ2dlZCBib29sZWFuLCBtYWtlIHN1cmUgdGhlcmUgYXJlIGFkZGl0aW9uYWwgYXJndW1lbnRzCi0JCQkjIGlmIG5vdCBlbm91Z2ggYXJndW1lbnRzLCBzaWduYWwgZXJyb3IKLQkJCWluY3IgaQotCQkJaWYgeyAkaSA9PSAkYXJnQ291bnQgfSB7Ci0JCQkgICAgcHV0cyAiRXJyb3I6IFwnJGN1cnJlbnRBcmdcJyByZXF1aXJlcyBhIHZhbGlkIGFyZ3VtZW50IgotCQkJICAgIGV2YWwgVXNhZ2VJbmZvIFtsaXN0ICRjbWRdIG9wdEluZm8KLQkJCSAgICByZXR1cm4gLWNvZGUgZXJyb3IKLQkJCX0KLQkJCXNldCBvcHRJbmZvKHVzZWQsJGN1cnJlbnRBcmcpIDEKLQkJCXNldCBjdXJyZW50QXJnIFtsaW5kZXggJHBhcnNlQXJncyAkaV0KLQkJICAgIH0gZWxzZSB7Ci0JCQl1cHZhciBbbGluZGV4ICRvcHRJbmZvKHZhcix1bmZsYWdnZWQpICR1bmZsYWdJbmRleF0gYXJnVmFyCi0JCQlzZXQgYXJnUnFtdCBbbGluZGV4ICRvcHRJbmZvKHJxbXQsdW5mbGFnZ2VkKSAkdW5mbGFnSW5kZXhdCi0JCQlsc2V0IG9wdEluZm8odXNlZCx1bmZsYWdnZWQpICR1bmZsYWdJbmRleCAxCi0JCQlpbmNyIHVuZmxhZ0NvdW50IC0xCi0JCQlpbmNyIHVuZmxhZ0luZGV4IAotCQkgICAgfQotCQl9IAotCQkKLQkJaWYgeyAhW2luZm8gZXhpc3RzIG9wdEluZm8odmFyLCRjdXJyZW50QXJnKV0gJiYgCi0JCSAgICAgW2V4cHIgeyR1bmZsYWdDb3VudCA9PSAwfV0gJiYgCi0JCSAgICAgW2V4cHIge1tsbGVuZ3RoICRhcmdWYWxdICE9IDB9XSAmJiAKLQkJICAgICAhW3JlZ2V4cCB7XHdcd219ICRhcmdScW10XSB9IHsKLQkJICAgIHB1dHMgIkVycm9yOiBcJyRjdXJyZW50QXJnXCcgaXMgbm90IGEgdmFsaWQgb3B0aW9uIgotCQkgICAgZXZhbCBVc2FnZUluZm8gW2xpc3QgJGNtZF0gb3B0SW5mbwotCQkgICAgcmV0dXJuIC1jb2RlIGVycm9yCi0JCX0KLQkJCi0JCWlmIHshW2xsZW5ndGggJGFyZ1ZhbF19IHsgCi0JCSAgICBpZiB7IVtldmFsIElzVmFsaWRBcmcgJGFyZ1JxbXQgW2xpc3QgJGN1cnJlbnRBcmddXX0gewotCQkJZXZhbCBVc2FnZUluZm8gW2xpc3QgJGNtZF0gb3B0SW5mbwotCQkJcmV0dXJuIC1jb2RlIGVycm9yCi0JCSAgICB9Ci0JCX0KLQotCQlsYXBwZW5kIGFyZ1ZhbCAkY3VycmVudEFyZwotCQkKLQkJaWYge1tyZWdleHAge1x3XHdzfSAkYXJnUnFtdF19IHsgCi0JCSAgICBzZXQgYXJnVmFyIFtsaW5kZXggJGFyZ1ZhbCAwXSAKLQkJfSBlbHNlIHsKLQkJICAgIHNldCBhcmdWYXIgJGFyZ1ZhbAotCQl9Ci0JICAgIH0KLQkgICAgCi0JICAgICMgQ2hlY2sgZm9yIG1pc3NpbmcgJ3JlcXVpcmVkJyBhcmd1bWVudHMKLQkgICAgZm9yZWFjaCBvcHRVc2VkIFthcnJheSBuYW1lcyBvcHRJbmZvIHVzZWQsKl0gewotCQlyZWdzdWIgInVzZWQsIiAkb3B0VXNlZCAicnFtdCwiIG9wdFJxbXQKLQkJcmVnc3ViICJ1c2VkLCIgJG9wdFVzZWQgIiIgICAgICB1bnVzZWRBcmcKLQkJZm9yIHtzZXQgaSAwfSB7JGkgPCBbbGxlbmd0aCAkb3B0SW5mbygkb3B0VXNlZCldfSB7aW5jciBpfSB7Ci0JCSAgICBpZiB7IVtsaW5kZXggJG9wdEluZm8oJG9wdFVzZWQpICRpXX0gewotCQkJc3dpdGNoIC1yZWdleHAgW2xpbmRleCAkb3B0SW5mbygkb3B0UnFtdCkgJGldIHsKLQkJCSAgICB7XHdyXHd9IHsKLQkJCQlpZiB7W3JlZ2V4cCB7dW5mbGFnZ2VkfSAkdW51c2VkQXJnXX0geyBzZXQgdW51c2VkQXJnICI8c3RyaW5nPiIgfQotCQkJCWV2YWwgVXNhZ2VJbmZvIFtsaXN0ICRjbWRdIG9wdEluZm8KLQkJCQlyZXR1cm4gLWNvZGUgZXJyb3IKLQkJCSAgICB9Ci0JCQkgICAge2Iob3xPKXN9IHsgCi0JCQkJdXB2YXIgJG9wdEluZm8odmFyLCR1bnVzZWRBcmcpIGFyZ1ZhcgotCQkJCXNldCBhcmdWYXIgMAotCQkJICAgIH0KLQkJCSAgICB7KGR8c3xufGYpKG98Tylcd30geyAKLQkJCQl1cHZhciAkb3B0SW5mbyh2YXIsJHVudXNlZEFyZykgYXJnVmFyCi0JCQkJaWYgeyFbaW5mbyBleGlzdHMgYXJnVmFyXX0geyBzZXQgYXJnVmFyIHt9IH0KLQkJCSAgICB9Ci0JCQl9Ci0JCSAgICB9Ci0JCX0KLQkgICAgfQotCSAgICByZXR1cm4gMQotCX0KLQotCXByb2MgSXNWYWxpZEFyZyB7cnFtdCBzdHJ9IHsKLQkgICAgc3dpdGNoIC1yZWdleHAgJHJxbXQgewotCQl7Ym9vbGVhbiR9IHsKLQkJICAgIGlmIHshW3N0cmluZyBpcyBib29sZWFuICRzdHJdfSB7Ci0JCQlwdXRzICJFcnJvcjogXCckc3RyXCcgaXMgbm90IG9mIHR5cGUgYm9vZWxhbiB3aGVuIGJvb2xlYW4gcmVxdWlyZWQiCi0JCQlyZXR1cm4gMAotCQkgICAgfQotCQl9Ci0JCXsoblx3XHd8aW50ZWdlcikkfSB7Ci0JCSAgICBpZiB7IVtzdHJpbmcgaXMgaW50ZWdlciAkc3RyXX0gewotCQkJcHV0cyAiRXJyb3I6IFwnJHN0clwnIGlzIG5vdCBvZiB0eXBlIGludGVnZXIgd2hlbiBpbnRlZ2VyIHJlcXVpcmVkIgotCQkJcmV0dXJuIDAKLQkJICAgIH0KLQkJfQotCQl7KGZcd1x3fGZsb2F0aW5nIHBvaW50KSR9IHsgCi0JCSAgICBpZiB7IVtzdHJpbmcgaXMgZG91YmxlICRzdHJdfSB7Ci0JCQlwdXRzICJFcnJvcjogXCckc3RyXCcgaXMgbm90IG9mIHR5cGUgZmxvYXQgd2hlbiBmbG9hdCByZXF1aXJlZCIKLQkJCXJldHVybiAwCi0JCSAgICB9Ci0JCX0KLQkJZGVmYXVsdCB7IHJldHVybiAxIH0KLQkgICAgfQotCSAgICByZXR1cm4gMQotCX0KLSAgICB9Ci0KLSAgICBuYW1lc3BhY2UgZXZhbCAkOjpucyhyZWdyZXNzKSB7Ci0JdmFyaWFibGUgYnVmZmVyIHt9Ci0JdmFyaWFibGUgZGVsdGEgMC4wCi0JdmFyaWFibGUgZGVsdGFfaGlfbWFyZ2luIDEuMjUKLQl2YXJpYWJsZSBkZWx0YV9sb19tYXJnaW4gMC42MAotCXZhcmlhYmxlIGRlbHRhX2hpX21hcmdpbl9ieV9vcwotCWFycmF5IHNldCBkZWx0YV9oaV9tYXJnaW5fYnlfb3Mge0FJWCA1LjAgU3VuT1MgMy4wfQotCXZhcmlhYmxlIGlnbm9yZV9ub19lY2hvIDAKLQl2YXJpYWJsZSBjb3VudF9sZXZlbHMgMAotCi0JaWYgeyFbbGxlbmd0aCBbaW5mbyBjb21tYW5kcyA6OmFzc2VydF1dfSB7IG5hbWVzcGFjZSBleHBvcnQgYXNzZXJ0IH0KLQlpZiB7IVtsbGVuZ3RoIFtpbmZvIGNvbW1hbmRzIDo6cmVncmVzc11dfSB7IG5hbWVzcGFjZSBleHBvcnQgcmVncmVzcyB9Ci0KLQkjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLQkjIGFzc2VydCAtLSBhc3NlcnRzIHRoYXQgYW4gZXhwcmVzc2lvbiBldmFsdWF0ZXMgdG8gbm9uLXplcm8uCi0JIyAgIFVzZWQgaW4gcmVncmVzc2lvbiB0ZXN0cwotCXByb2MgYXNzZXJ0IHthcmdzfSB7Ci0JICAgIHN3aXRjaCAtLSBbcGFyc2Vfb3B0aW9ucyBbY2FsbGluZ19wcm9jXSB7fSAkYXJncyBcCi0JCQkgICAic3JzIGV4cHJlc3Npb24gdG8gdGVzdCB0aGUgYXNzZXJ0aW9uIGFnYWluc3QgLSByZXR1cm4gemVybyB3aWxsIHByb2R1Y2UgZXJyb3IiIHRlc3RfZXhwcl0gewotCQkJICAgICAgIC0yIHsgcmV0dXJuIH0KLQkJCSAgICAgICAwIHsgcmV0dXJuIC1jb2RlIGVycm9yICJGYWlsZWQgb24gYXNzZXJ0IiB9Ci0JICAgIH0KLQotCSAgICBpZiB7W2NhdGNoIHt1cGxldmVsIGV4cHIgW2xpc3QgJHRlc3RfZXhwcl19IHJzbF0gPT0gMX0geyByZXR1cm4gLWNvZGUgZXJyb3IgIkZhaWxlZCBvbiBiYWRseSBmb3JtZWQgYXNzZXJ0OiAkcnNsIiB9Ci0JICAgIGlmIHshJHJzbH0geyByZXR1cm4gLWNvZGUgZXJyb3IgIkZhaWxlZCBvbiBhc3NlcnQoXHskdGVzdF9leHByXH0pIiB9Ci0JICAgIHJldHVybgotCX0KLQotCSMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotCSMgcmVncmVzcwotCSMgICBVc2VkIGluIHJlZ3Jlc3Npb24gdGVzdHMKLQlwcm9jIHJlZ3Jlc3Mge2FyZ3N9IHsKLQkgICAgdmFyaWFibGUgJDo6bnMocmVncmVzcyk6OmJ1ZmZlcgotCSAgICB2YXJpYWJsZSAkOjpucyhyZWdyZXNzKTo6Y291bnRfbGV2ZWxzCi0JICAgIHZhcmlhYmxlICQ6Om5zKHJlZ3Jlc3MpOjpkZWx0YQotCSAgICB2YXJpYWJsZSAkOjpucyhyZWdyZXNzKTo6aWdub3JlX25vX2VjaG8KLQotCSAgICBzZXQgaGVscF9zdHIgewotCQllLmcuICByZWdyZXNzIHsgCi0JCSAgICBwdXRzIGZvbwotCQl9IHsKLQkJICAgIHNlZSAiZiIKLQkJICAgIHNlZV9ubyAieCIKLQkJfQotCQlTdXBwb3J0ZWQgcmVncmVzcyBjb21tYW5kcyBhcmU6Ci0JCXNlZSAtIGZpbmQgYSBzdHJpbmcgaW4gdGhlIG91dHB1dCBidWZmZXIgYW5kIGFkdmFuY2UgdG8gdGhlIGVuZCBvZiB3aGF0IG1hdGNoZWQKLQkJcGVlayAtIGZpbmQgYSBzdHJpbmcgaW4gdGhlIG91dHB1dCBidWZmZXIgYnV0IGRvbid0IGFkdmFuY2UKLQkJc2VlX25vIC0gZG9uJ3QgZmluZCBhIHN0cmluZyBpbiB0aGUgb3V0cHV0IGJ1ZmZlcgotCQlyc2VlIC0gcmVndWxhciBleHByZXNzaW9uIHZlcnNpb24gb2Ygc2VlCi0JCXJwZWVrIC0gcmVndWxhciBleHByZXNzaW9uIHZlcnNpb24gb2YgcGVlawotCQlyc2VlX25vIC0gcmVndWxhciBleHByZXNzaW9uIHZlcnNpb24gb2Ygc2VlX25vCi0JICAgIH0KLQotCSAgICBzd2l0Y2ggLS0gW3BhcnNlX29wdGlvbnMgW2NhbGxpbmdfcHJvY10ge30gJGFyZ3MgXAotCQkJICAgIi1ub19lY2hvIGJvcyBkb24ndCBwcmludCBhbnl0aGluZyBpbiB0aGUgbG9nIiBub19lY2hvIFwKLQkJCSAgICJzcnMgY29kZSB0byBjaGVjayIgc2NyaXB0IFwKLQkJCSAgICJzcnMgY2hlY2tpbmcgc2NyaXB0IFxuJGhlbHBfc3RyIiBzZWVfY29tbWFuZHNdIHsKLQkJCSAgICAgICAtMiB7IHJldHVybiB9Ci0JCQkgICAgICAgMCB7IHJldHVybiAtY29kZSBlcnJvciAiRmFpbGVkIG9uIHJlZ3Jlc3MiIH0KLQkgICAgfQotCi0JICAgIHNldCBsYXN0X2J1ZmZlciAiYnVmZmVyIgotCSAgICBzZXQgbGFzdF9kZWx0YSAiZGVsdGEiCi0KLQkgICAgIyBsaW50Ci0JICAgIHNldCByc2wge30KLQotCSAgICBpbmNyIGNvdW50X2xldmVscwotCSAgICBpZiB7JG5vX2VjaG8gJiYgISRpZ25vcmVfbm9fZWNob30gewotCQlzZXQgc2NyaXB0X29rIDEKLQkJIyNuYWdlbGZhciBpZ25vcmUgRSBCYWQgb3B0aW9uIC1tZXNnIHRvIHJlZGlyZWN0Ci0JCXJlZGlyZWN0IC1tZXNnIC12YXJpYWJsZSBidWZmZXIgewotCQkgICAgaWYge1tjYXRjaCB7dXBsZXZlbCAkc2NyaXB0fSByc2xdfSB7Ci0JCQlzZXQgc2NyaXB0X29rIDAKLQkJICAgIH0KLQkJfQotCQlpZiB7ICRzY3JpcHRfb2sgPT0gMCB9IHsKLQkJICAgIHB1dHMgJGJ1ZmZlcgotCQkgICAgc2V0IGJ1ZmZlciAkbGFzdF9idWZmZXIKLQkJICAgIHJldHVybiAtY29kZSBlcnJvciAiJHJzbFxuRmFpbGVkIG9uIHJlZ3Jlc3MiCi0JCX0KLQkgICAgfSBlbHNlIHsKLQkJIyNuYWdlbGZhciBpZ25vcmUgRSBCYWQgb3B0aW9uIC1tZXNnIHRvIHJlZGlyZWN0Ci0JCXJlZGlyZWN0IC1tZXNnIC12YXJpYWJsZSAtdGVlICJidWZmZXIiIHsKLQkJICAgIGlmIHtbY2F0Y2gge3VwbGV2ZWwgJHNjcmlwdH0gcnNsXX0gewotCQkJc2V0IGJ1ZmZlciAkbGFzdF9idWZmZXIKLQkJCXJldHVybiAtY29kZSBlcnJvciAiJHJzbFxuRmFpbGVkIG9uIHJlZ3Jlc3MiCi0JCSAgICB9Ci0JCX0KLQkgICAgfQotCSAgICBpbmNyIGNvdW50X2xldmVscyAtMQotCi0JICAgICMjbmFnZWxmYXIgaWdub3JlIE9ubHkgYnJhY2VkCi0JICAgIGlmIHtbY2F0Y2gge25hbWVzcGFjZSBldmFsICQ6Om5zKHJlZ3Jlc3MpICRzZWVfY29tbWFuZHN9IGV2YWxfcnNsXX0gewotCQlpZiB7ICRub19lY2hvICYmICEkaWdub3JlX25vX2VjaG8gfSB7Ci0JCSAgICBwdXRzICRidWZmZXIKLQkJfQotCQlpZiB7ISBbcmVnZXhwICJGYWlsZWQgb24iICRldmFsX3JzbF19IHsKLQkJICAgIHNldCBidWZmZXIgJGxhc3RfYnVmZmVyCi0JCSAgICBzZXQgZGVsdGEgJGxhc3RfZGVsdGEKLQkJICAgIHJldHVybiAtY29kZSBlcnJvciAiJGV2YWxfcnNsXG5GYWlsZWQgb24gcmVncmVzcyIKLQkJfQotCQlyZXR1cm4gLWNvZGUgZXJyb3IgJGV2YWxfcnNsCi0JICAgIH0KLQotCSAgICBzZXQgYnVmZmVyICRsYXN0X2J1ZmZlcgotCSAgICBzZXQgZGVsdGEgJGxhc3RfZGVsdGEKLQotCSAgICByZXR1cm4gJHJzbAotCX0KLSAgICAKLQkjIENoZWNrIGZvciB0aGUgZ2l2ZW4gc3RyaW5nIGluIHRoZSBjdXJyZW50IGJ1ZmZlciwgYnV0IGxlYXZlCi0JIyB0aGUgYnVmZmVyIGFsb25lCi0JcHJvYyBwZWVrIHtzdHJpbmd9IHsKLQkgICAgdmFyaWFibGUgJDo6bnMocmVncmVzcyk6OmJ1ZmZlcgotCi0JICAgIHNldCBpbmRleCBbc3RyaW5nIGZpcnN0ICRzdHJpbmcgJGJ1ZmZlcl0KLQkgICAgaWYgeyRpbmRleCA8IDB9IHsKLQkJcmV0dXJuIC1jb2RlIGVycm9yICJGYWlsZWQgb24gXCdyZWdyZXNzIHBlZWtcJyBbbGlzdCAkc3RyaW5nXSIKLQkgICAgfQotCX0KLQotCSMgQ2hlY2sgZm9yIHRoZSBnaXZlbiBzdHJpbmcgaW4gdGhlIGN1cnJlbnQgYnVmZmVyLCBhbmQgY2hvcAotCSMgb2ZmIGV2ZXJ5dGhpbmcgaW4gdGhlIGJ1ZmZlciB1cCB0aHJvdWdoIHdoYXQgbWF0Y2hlZAotCXByb2Mgc2VlIHtzdHJpbmd9IHsKLQkgICAgdmFyaWFibGUgJDo6bnMocmVncmVzcyk6OmJ1ZmZlcgotCi0JICAgIHNldCBpbmRleCBbc3RyaW5nIGZpcnN0ICRzdHJpbmcgJGJ1ZmZlcl0KLQkgICAgaWYgeyRpbmRleCA8IDB9IHsKLQkJcmV0dXJuIC1jb2RlIGVycm9yICJGYWlsZWQgb24gXCdyZWdyZXNzIHNlZVwnIFtsaXN0ICRzdHJpbmddIgotCSAgICB9Ci0JICAgICMgbW92ZSB0aGUgY3VycmVudCBwb3NpdGlvbiBhZnRlciB3aGF0IHdlIGp1c3QgbWF0Y2hlZAotCSAgICBzZXQgaW5kZXggW2V4cHIgeyRpbmRleCArIFtzdHJpbmcgbGVuZ3RoICRzdHJpbmddfV0KLQkgICAgc2V0IGJ1ZmZlciBbc3RyaW5nIHJhbmdlICRidWZmZXIgJGluZGV4IGVuZF0KLQl9Ci0KLQkjIENoZWNrIHRoYXQgdGhlIGdpdmVuIHN0cmluZyBkb2Vzbid0IGV4aXN0IGluIHRoZSBjdXJyZW50Ci0JIyBidWZmZXIuCi0JcHJvYyBzZWVfbm8ge3N0cmluZ30gewotCSAgICB2YXJpYWJsZSAkOjpucyhyZWdyZXNzKTo6YnVmZmVyCi0KLQkgICAgc2V0IGluZGV4IFtzdHJpbmcgZmlyc3QgJHN0cmluZyAkYnVmZmVyXQotCSAgICBpZiB7JGluZGV4ID49IDB9IHsKLQkJcmV0dXJuIC1jb2RlIGVycm9yICJGYWlsZWQgb24gXCdyZWdyZXNzIHNlZV9ub1wnIFtsaXN0ICRzdHJpbmddIgotCSAgICB9Ci0JfQotCi0JIyBDaGVjayB0aGF0IHRoZSBnaXZlbiByZWd1bGFyIGV4cHJlc3Npb24gbWF0Y2hlcyBpbiB0aGUgY3VycmVudAotCSMgYnVmZmVyLgotCXByb2MgcnBlZWsge3JlZ2V4cH0gewotCSAgICB2YXJpYWJsZSAkOjpucyhyZWdyZXNzKTo6YnVmZmVyCi0KLQkgICAgaWYgeyEgW3JlZ2V4cCAtLSAkcmVnZXhwICRidWZmZXJdfSB7Ci0JCXJldHVybiAtY29kZSBlcnJvciAiRmFpbGVkIG9uIFwncmVncmVzcyBycGVla1wnIFtsaXN0ICRyZWdleHBdIgotCSAgICB9Ci0JfQotCi0JIyBDaGVjayB0aGF0IHRoZSBnaXZlbiByZWd1bGFyIGV4cHJlc3Npb24gbWF0Y2hlcyBpbiB0aGUgY3VycmVudAotCSMgYnVmZmVyIGFuZCBjaG9wIG9mZiBldmVyeXRoaW5nIGluIHRoZSBidWZmZXIgdXAgdGhyb3VnaCB3aGF0Ci0JIyBtYXRjaGVkLgotCXByb2MgcnNlZSB7cmVnZXhwfSB7Ci0JICAgIHZhcmlhYmxlICQ6Om5zKHJlZ3Jlc3MpOjpidWZmZXIKLQotCSAgICBpZiB7ISBbcmVnZXhwIC0tICRyZWdleHAgJGJ1ZmZlciBtYXRjaF19IHsKLQkJcmV0dXJuIC1jb2RlIGVycm9yICJGYWlsZWQgb24gXCdyZWdyZXNzIHJzZWVcJyBbbGlzdCAkcmVnZXhwXSIKLQkgICAgfQotCi0JICAgICMgbW92ZSB0aGUgY3VycmVudCBwb3NpdGlvbiBhZnRlciB3aGF0IHdlIGp1c3QgbWF0Y2hlZAotCSAgICBzZXQgaW5kZXggW3N0cmluZyBmaXJzdCAkbWF0Y2ggJGJ1ZmZlcl0KLQkgICAgYXNzZXJ0IHskaW5kZXggPj0gMH0KLQkgICAgc2V0IGluZGV4IFtleHByIHskaW5kZXggKyBbc3RyaW5nIGxlbmd0aCAkbWF0Y2hdfV0KLQkgICAgc2V0IGJ1ZmZlciBbc3RyaW5nIHJhbmdlICRidWZmZXIgJGluZGV4IGVuZF0KLQl9Ci0KLQkjIENoZWNrIHRoYXQgdGhlIGdpdmVuIHJlZ3VsYXIgZXhwcmVzc2lvbiBkb2Vzbid0IG1hdGNoIGluIHRoZSBjdXJyZW50Ci0JIyBidWZmZXIuCi0JcHJvYyByc2VlX25vIHtyZWdleHB9IHsKLQkgICAgdmFyaWFibGUgJDo6bnMocmVncmVzcyk6OmJ1ZmZlcgotCi0JICAgIGlmIHtbcmVnZXhwIC0tICRyZWdleHAgJGJ1ZmZlcl19IHsKLQkJcmV0dXJuIC1jb2RlIGVycm9yICJGYWlsZWQgb24gXCdyZWdyZXNzIHJzZWVfbm9cJyBbbGlzdCAkcmVnZXhwXSIKLQkgICAgfQotCX0KLQotICAgIH0KLQotCi0gICAgbmFtZXNwYWNlIGV2YWwgJDo6bnMocmVkaXJlY3QpIHsKLQlpZiB7IVtsbGVuZ3RoIFtpbmZvIGNvbW1hbmRzIDo6cmVkaXJlY3RdXX0geyBuYW1lc3BhY2UgZXhwb3J0IHJlZGlyZWN0IH0KLQotCXByb2Mgd3JpdGVfZ3ppcF9maWxlIHtmaWxlbmFtZX0gewotCSAgICBzZXQgZ3ppcF9jb20gW2V4ZWMgd2hpY2ggZ3ppcF0KLQkgICAgaWYge1tsbGVuZ3RoICRnemlwX2NvbV0gPT0gMH0gewotCQlyZXR1cm4gLWNvZGUgZXJyb3IgXAotCQkgICAgIkZhaWxlZCBvbiAnd3JpdGVfZ3ppcF9maWxlJzogdW5hYmxlIHRvIGZpbmQgZ3ppcCBjb21tYW5kIgotCSAgICB9Ci0JICAgIGlmIHtbY2F0Y2gge29wZW4gInwkZ3ppcF9jb20gLWMgPiAkZmlsZW5hbWUiIHd9IGZpbGVfaWRdfSB7Ci0JCXJldHVybiAtY29kZSBlcnJvciBcCi0JCSAgICAiRmFpbGVkIG9uICd3cml0ZV9nemlwX2ZpbGUnOiB1bmFibGUgdG8gb3BlbiAkZmlsZW5hbWUiCi0JICAgIH0KLQkgICAgcmV0dXJuICRmaWxlX2lkCi0JfQotCQotCXByb2MgYXBwZW5kX2d6aXBfZmlsZSB7ZmlsZW5hbWV9IHsKLQkgICAgc2V0IGd6aXBfY29tIFtleGVjIHdoaWNoIGd6aXBdCi0JICAgIGlmIHtbbGxlbmd0aCAkZ3ppcF9jb21dID09IDB9IHsKLQkJcmV0dXJuIC1jb2RlIGVycm9yIFwKLQkJICAgICJGYWlsZWQgb24gJ2FwcGVuZF9nemlwX2ZpbGUnOiB1bmFibGUgdG8gZmluZCBnemlwIGNvbW1hbmQiCi0JICAgIH0KLQkgICAgaWYge1tjYXRjaCB7b3BlbiAifCRnemlwX2NvbSAtYyA+PiAkZmlsZW5hbWUiIGF9IGZpbGVfaWRdfSB7Ci0JCXJldHVybiAtY29kZSBlcnJvciBcCi0JCSAgICAiRmFpbGVkIG9uICdhcHBlbmRfZ3ppcF9maWxlJzogdW5hYmxlIHRvIG9wZW4gJGZpbGVuYW1lIgotCSAgICB9Ci0JICAgIHJldHVybiAkZmlsZV9pZAotCX0KLQkKLQkKLQlpZiB7ISBbbGxlbmd0aCBbaW5mbyBjb21tYW5kcyA6OnRjbF9wdXRzXV19IHsgIAotCSAgICByZW5hbWUgOjpwdXRzIDo6dGNsX3B1dHMgCi0JfSBlbHNlaWYgeyFbbGxlbmd0aCBbaW5mbyBjb21tYW5kcyAkOjpucyhyZWRpcmVjdCk6OmZpbGVfcHV0c11dfSB7Ci0JICAgIHB1dHMgIldhcm5pbmc6IFwncHV0c1wnIGNvdWxkIG5vdCBiZSBhbGlhc2VkIHRvIFwndGNsX3B1dHNcJyIKLQkgICAgcHV0cyAiXHRcJ3RjbF9wdXRzXCcgYWxyZWFkeSBleGlzdHMiCi0JfQotCQotCSMgbWFrZSBwdXRzIHJlZmVyIHRvIHRoZSBuZXcgdGNsX3B1dHMKLQlpbnRlcnAgYWxpYXMge30gOjpwdXRzIHt9IDo6dGNsX3B1dHMKLQkKLQkjIEEgcmVwbGFjZW1lbnQgdmVyc2lvbiBvZiBwdXRzLiAgQWxsIHRoaXMgbGF5ZXIgZG9lcyBpcyB0byBzZW5kIHB1dHMKLQkjIGNvbW1hbmRzIHRoYXQgd291bGQgaGF2ZSBnb25lIHRvIHN0ZG91dCB0byB0aGUgZmlsZWhhbmRsZQotCSMgZ2l2ZW4gaW4gdGhlIGZpbGUgYXJndW1lbnQKLQlwcm9jIGZpbGVfcHV0cyB7dGVlIGZpbGUgYXJnc30gewotCSAgICBzd2l0Y2ggW2xsZW5ndGggJGFyZ3NdIHsKLQkJMSB7Ci0JCSAgICA6OnRjbF9wdXRzICRmaWxlIFtsaW5kZXggJGFyZ3MgMF0KLQkJICAgIGlmIHskdGVlfSB7Ci0JCQk6OnRjbF9wdXRzIFtsaW5kZXggJGFyZ3MgMF0KLQkJICAgIH0KLQkJfQotCQkKLQkJMiB7Ci0JCSAgICBpZiB7W2xpbmRleCAkYXJncyAwXSBlcSAiLW5vbmV3bGluZSJ9IHsKLQkJCTo6dGNsX3B1dHMgLW5vbmV3bGluZSAkZmlsZSBbbGluZGV4ICRhcmdzIDFdCi0JCQlpZiB7JHRlZX0gewotCQkJICAgIDo6dGNsX3B1dHMgLW5vbmV3bGluZSBbbGluZGV4ICRhcmdzIDFdCi0JCQl9Ci0JCSAgICB9IGVsc2VpZiB7W2xpbmRleCAkYXJncyAwXSBlcSAic3Rkb3V0In0gewotCQkJOjp0Y2xfcHV0cyAkZmlsZSBbbGluZGV4ICRhcmdzIDFdCi0JCQlpZiB7JHRlZX0gewotCQkJICAgIDo6dGNsX3B1dHMgW2xpbmRleCAkYXJncyAxXQotCQkJfQotCQkgICAgfSBlbHNlIHsKLQkJCTo6dGNsX3B1dHMgW2xpbmRleCAkYXJncyAwXSBbbGluZGV4ICRhcmdzIDFdCi0JCSAgICB9Ci0JCX0KLQkJCi0JCTMgewotCQkgICAgaWYge1tsaW5kZXggJGFyZ3MgMV0gZXEgInN0ZG91dCJ9IHsKLQkJCTo6dGNsX3B1dHMgW2xpbmRleCAkYXJncyAwXSAkZmlsZSBbbGluZGV4ICRhcmdzIDJdCi0JCQlpZiB7JHRlZX0gewotCQkJICAgIDo6dGNsX3B1dHMgW2xpbmRleCAkYXJncyAwXSBbbGluZGV4ICRhcmdzIDJdCi0JCQl9Ci0JCSAgICB9IGVsc2UgewotCQkJOjp0Y2xfcHV0cyBbbGluZGV4ICRhcmdzIDBdIFtsaW5kZXggJGFyZ3MgMV0gW2xpbmRleCAkYXJncyAyXQotCQkgICAgfQotCQl9Ci0JCQotCQlkZWZhdWx0IHsKLQkJICAgIGV2YWwgezo6dGNsX3B1dHMgJGFyZ3N9Ci0JCX0KLQkgICAgfQotCX0KLQkKLQkjIEEgcmVwbGFjZW1lbnQgdmVyc2lvbiBvZiBwdXRzLiAgQWxsIHRoaXMgbGF5ZXIgZG9lcyBpcyB0byBzZW5kIHB1dHMKLQkjIGNvbW1hbmRzIHRoYXQgd291bGQgaGF2ZSBnb25lIHRvIHN0ZG91dCB0byB0aGUgdmFyaWFibGUgZ2l2ZW4KLQkjIGluIHRoZSBnaXZlbiBsZXZlbCdzIHN0YWNrIGZyYW1lCi0JcHJvYyB2YXJfcHV0cyB7dGVlIGFyZ3N9IHsKLQkgICAgdmFyaWFibGUgcmVzdWx0Ci0JICAgIAotCSAgICBzd2l0Y2ggW2xsZW5ndGggJGFyZ3NdIHsKLQkJMSB7Ci0JCSAgICBhcHBlbmQgcmVzdWx0IFtsaW5kZXggJGFyZ3MgMF0gIlxuIgotCQkgICAgaWYgeyR0ZWV9IHsKLQkJCTo6dGNsX3B1dHMgW2xpbmRleCAkYXJncyAwXQotCQkgICAgfQotCQl9Ci0JCQotCQkyIHsKLQkJICAgIGlmIHtbbGluZGV4ICRhcmdzIDBdIGVxICItbm9uZXdsaW5lIn0gewotCQkJYXBwZW5kIHJlc3VsdCBbbGluZGV4ICRhcmdzIDFdCi0JCQlpZiB7JHRlZX0gewotCQkJICAgIDo6dGNsX3B1dHMgLW5vbmV3bGluZSBbbGluZGV4ICRhcmdzIDFdCi0JCQl9Ci0JCSAgICB9IGVsc2VpZiB7W2xpbmRleCAkYXJncyAwXSBlcSAic3Rkb3V0In0gewotCQkJYXBwZW5kIHJlc3VsdCBbbGluZGV4ICRhcmdzIDFdICJcbiIKLQkJCWlmIHskdGVlfSB7Ci0JCQkgICAgOjp0Y2xfcHV0cyBbbGluZGV4ICRhcmdzIDFdCi0JCQl9Ci0JCSAgICB9IGVsc2UgewotCQkJOjp0Y2xfcHV0cyBbbGluZGV4ICRhcmdzIDBdIFtsaW5kZXggJGFyZ3MgMV0KLQkJICAgIH0KLQkJfQotCQkKLQkJMyB7Ci0JCSAgICBpZiB7W2xpbmRleCAkYXJncyAxXSBlcSAic3Rkb3V0In0gewotCQkJYXBwZW5kIHJlc3VsdCBbbGluZGV4ICRhcmdzIDJdCi0JCQlpZiB7JHRlZX0gewotCQkJICAgIDo6dGNsX3B1dHMgW2xpbmRleCAkYXJncyAwXSBbbGluZGV4ICRhcmdzIDJdCi0JCQl9Ci0JCSAgICB9IGVsc2UgewotCQkJOjp0Y2xfcHV0cyBbbGluZGV4ICRhcmdzIDBdIFtsaW5kZXggJGFyZ3MgMV0gW2xpbmRleCAkYXJncyAyXQotCQkgICAgfQotCQl9Ci0JCQotCQlkZWZhdWx0IHsKLQkJICAgIGV2YWwgIjo6dGNsX3B1dHMgJGFyZ3MiCi0JCX0KLQkgICAgfQotCX0KLQkKLQlwcm9jIHJlZGlyZWN0IHthcmdzfSB7Ci0JICAgIHN3aXRjaCAtLSBbcGFyc2Vfb3B0aW9ucyBbY2FsbGluZ19wcm9jXSB7fSAkYXJncyBcCi0JCQkgICAiLWFwcGVuZCAgIGJvcyBhcHBlbmRzIHRvIHRoZSBmaWxlIG9yIHZhcmlhYmxlIiBhcHBlbmQgXAotCQkJICAgIi10ZWUgICAgICBib3Mgd3JpdGVzIHRvIHN0ZG91dCBhbHNvIiB0ZWUgXAotCQkJICAgIi1tZXNnICAgICBib3MgaWdub3JlZCBmb3IgYWxsIG90aGVyIHRvb2xzIChmb3Igbm93KSIgbWVzZyBcCi0JCQkgICAiLXZhcmlhYmxlIGJvcyB3cml0ZXMgdG8gVGNsIHZhcmlhYmxlIGluc3RlYWQgb2YgYSBmaWxlIiB2YXJpYWJsZSBcCi0JCQkgICAic3JzIHRoZSBmaWxlIG9yIHZhcmlhYmxlIG5hbWUgdG8gd3JpdGUgaW50byIgZmlsZV92YXJfbmFtZSBcCi0JCQkgICAic3JzIHRoZSBUY2wgY29kZSB0byBleGVjdXRlIiBzY3JpcHRdIHsKLQkJCSAgICAgICAtMiB7IHJldHVybiB9Ci0JCQkgICAgICAgMCB7IHJldHVybiAtY29kZSBlcnJvciB9Ci0JICAgIH0KLQotCSAgICBpZiB7KFtsbGVuZ3RoICRmaWxlX3Zhcl9uYW1lXSAhPSAxKSAmJiBcCi0JCSAgICAoW3N0cmluZyBpbmRleCAkZmlsZV92YXJfbmFtZSAwXSBuZSAifCIpfSB7Ci0JCXJldHVybiAtY29kZSBlcnJvciAiJGZpbGVfdmFyX25hbWUgZG9lc24ndCBsb29rIGxpa2UgYSBmaWxlbmFtZSIKLQkgICAgfQotCSAgICAKLQkgICAgaWYgeyR2YXJpYWJsZX0gewotCQkjIHJlbWVtYmVyIHdoYXQgdGhlIGFsaWFzIGZvciBwdXRzIGlzIGN1cnJlbnRseSBzbyB3ZSBjYW4gcmVzdG9yZSBpdAotCQlzZXQgcHJldl9hbGlhcyBbaW50ZXJwIGFsaWFzIHt9IDo6cHV0c10KLQkJIyBvdmVycmlkZSB0aGUgY3VycmVudCBwdXRzIGFsaWFzCi0JCWludGVycCBhbGlhcyB7fSA6OnB1dHMge30gJDo6bnMocmVkaXJlY3QpOjp2YXJfcHV0cyAkdGVlCi0JCQotCQkjIHJlbWVtYmVyIHRoZSB2YWx1ZSBvZiB0aGUgcmVkaXJlY3QgYnVmZmVyIHNvIHdlIGNhbiByZXN0b3JlIGl0Ci0JCW5hbWVzcGFjZSBldmFsICQ6Om5zKHJlZGlyZWN0KSB7Ci0JCSAgICBpZiB7W2luZm8gZXhpc3RzIHJlc3VsdF19IHsgc2V0IHByZXZfcmVzdWx0ICRyZXN1bHQgfQotCQkgICAgc2V0IHJlc3VsdCB7fSAKLQkJfQotCSAgICB9IGVsc2UgewotCQkjIG9wZW4gdGhlIGZpbGUgcmVxdWVzdGVkCi0JCWlmIHtbZmlsZSBleHRlbnNpb24gJGZpbGVfdmFyX25hbWVdIGVxICIuZ3oifSB7Ci0JCSAgICBpZiB7JGFwcGVuZH0gewotCQkJc2V0IGZpbGUgW2FwcGVuZF9nemlwX2ZpbGUgJGZpbGVfdmFyX25hbWVdCi0JCSAgICB9IGVsc2UgewotCQkJc2V0IGZpbGUgW3dyaXRlX2d6aXBfZmlsZSAkZmlsZV92YXJfbmFtZV0KLQkJICAgIH0KLQkJfSBlbHNlIHsKLQkJICAgIGlmIHskYXBwZW5kfSB7Ci0JCQlzZXQgZmlsZSBbb3BlbiAkZmlsZV92YXJfbmFtZSBhXQotCQkgICAgfSBlbHNlIHsKLQkJCXNldCBmaWxlIFtvcGVuICRmaWxlX3Zhcl9uYW1lIHddCi0JCSAgICB9Ci0JCX0KLQkJIyByZW1lbWJlciB3aGF0IHRoZSBhbGlhcyBmb3IgcHV0cyBpcyBjdXJyZW50bHkgc28gd2UgY2FuIHJlc3RvcmUgaXQKLQkJc2V0IHByZXZfYWxpYXMgW2ludGVycCBhbGlhcyB7fSA6OnB1dHNdCi0JCQotCQkjIG92ZXJyaWRlIHRoZSBjdXJyZW50IHB1dHMgYWxpYXMKLQkJaW50ZXJwIGFsaWFzIHt9IDo6cHV0cyB7fSBbc2V0IDo6bnMocmVkaXJlY3QpXTo6ZmlsZV9wdXRzICR0ZWUgJGZpbGUKLQkgICAgfQotCSAgICAKLQkgICAgIyBldmFsdWF0ZSB0aGUgZ2l2ZW4gc2NyaXB0Ci0JICAgIHNldCBlcnJvciBbY2F0Y2gge3VwbGV2ZWwgJHNjcmlwdH0gcnNsXQotCSAgICAKLQkgICAgIyBwdXQgdGhlIHB1dHMgYWxpYXMgYmFjayB3aGVyZSBpdCB3YXMgYmVmb3JlCi0JICAgIGV2YWwge2ludGVycCBhbGlhcyB7fSA6OnB1dHMge319ICRwcmV2X2FsaWFzCi0JICAgIAotCSAgICBpZiB7JHZhcmlhYmxlfSB7Ci0JCXVwdmFyICRmaWxlX3Zhcl9uYW1lIG15X3ZhcmlhYmxlCi0JCWlmIHskYXBwZW5kfSB7Ci0JCSAgICBhcHBlbmQgbXlfdmFyaWFibGUgW25hbWVzcGFjZSBldmFsICQ6Om5zKHJlZGlyZWN0KSB7IHNldCByZXN1bHQgfV0KLQkJfSBlbHNlIHsKLQkJICAgIHNldCBteV92YXJpYWJsZSBbbmFtZXNwYWNlIGV2YWwgJDo6bnMocmVkaXJlY3QpIHsgc2V0IHJlc3VsdCB9XQotCQl9Ci0JCWlmIHtbbmFtZXNwYWNlIGV2YWwgJDo6bnMocmVkaXJlY3QpIHsgaW5mbyBleGlzdHMgcHJldl9yZXN1bHQgfV19IHsKLQkJICAgIGlmIHskdGVlfSB7IG5hbWVzcGFjZSBldmFsICQ6Om5zKHJlZGlyZWN0KSB7IGFwcGVuZCBwcmV2X3Jlc3VsdCAkcmVzdWx0IH0gfQotCQkgICAgbmFtZXNwYWNlIGV2YWwgJDo6bnMocmVkaXJlY3QpIHsgc2V0IHJlc3VsdCAkcHJldl9yZXN1bHQgfQotCQl9Ci0JICAgIH0gZWxzZSB7Ci0JCSMgcHV0IHRoZSBzdGRvdXQgaGFuZGxlIGJhY2sgd2hlcmUgaXQgd2FzIGJlZm9yZQotCQljbG9zZSAkZmlsZQotCSAgICB9Ci0JICAgIAotCSAgICAjIHJldHVybiB0aGUgcmVzdWx0cyBvZiB0aGUgZXhlY3V0ZWQgc2NyaXB0Ci0JICAgIGlmIHskZXJyb3J9IHsKLQkJcmV0dXJuIC1jb2RlICJlcnJvciIgJHJzbAotCSAgICB9Ci0JICAgIHJldHVybiAkcnNsCi0JfQotICAgIH0KLQotICAgICMgVGhpcyBzZWN0aW9uIGFkZGVkIHRvIGltcGxlbWVudCBjb21wYXRpYmxlIGF0dHJpYnV0ZXMgb3IgZHVtbWllcyBmb3IgY29tcGF0aWJpbGl0eSBwdXJwb3NlcwotICAgIG5hbWVzcGFjZSBldmFsICQ6Om5zKGNvbXBhdCkgewotCSMgVGhpcyBhdHRyaWJ1dGUgaXMgZGVmaW5lZCBzdWNoIHRoYXQgc2V0dGluZyBpdCBpbiBhbGwgdG9vbHMgZG9lcyBub3QgY2F1c2UgYW55IGVycm9ycwotCSMgaG93ZXZlciwgdGhlIGF0dHJpYnV0ZSBtYXkgbm90IHBlcmZvcm0gdGhlIGludGVuZGVkIHRhc2tzIGluIGFsbCB0b29scwotCWNhdGNoIHsKLQkgICAgZGVmaW5lX2F0dHJpYnV0ZQkJCSBcCi0JCS1jYXRlZ29yeSBjb21wYXRpYmlsaXR5CQkgXAotCQktZGF0YV90eXBlIHN0cmluZwkJIFwKLQkJLW9ial90eXBlIHJvb3QJCQkgXAotCQktZGVmYXVsdF92YWx1ZSAJIjxjb21wYXRpYmxpdHktb25seT4iIFwKLQkJLWhlbHBfc3RyaW5nICJSZXF1aXJlIGFsbCBjb21tYW5kcyBleGVjdXRlZCBpbiB0aGUgc2Vzc2lvbiB0byBiZSBlY2hvJ2VkIHRvIHRoZSBsb2cuIiBcCi0JCXNvdXJjZV92ZXJib3NlCi0JfQotCi0JY2F0Y2ggewotCSAgICBkZWZpbmVfYXR0cmlidXRlCQkJIFwKLQkJLWNhdGVnb3J5IGNvbXBhdGliaWxpdHkJCSBcCi0JCS1kYXRhX3R5cGUgYm9vbGVhbgkJIFwKLQkJLW9ial90eXBlIHJvb3QJCQkgXAotCQktZGVmYXVsdF92YWx1ZSAJdHJ1ZQkJIFwKLQkJLWhlbHBfc3RyaW5nICJkbyBub3QgZWNobyBDQ0wgd2FybmluZyBtZXNzYWdlcyIgXAotCQljY2xfZGlzcGxheV93YXJuaW5ncwotCX0KLSAgICB9Ci0KLSAgICBpZiB7IVtsbGVuZ3RoIFtpbmZvIGNvbW1hbmRzIDo6ZGVmaW5lX2F0dHJpYnV0ZV1dfSB7IAotCW5hbWVzcGFjZSBpbXBvcnQgJDo6bnMoY29tcGF0KTo6ZGVmaW5lX2F0dHJpYnV0ZQotICAgIH0KLQotICAgIGlmIHshW2xsZW5ndGggW2luZm8gY29tbWFuZHMgOjpzZXRfYXR0cmlidXRlXV19IHsgCi0JbmFtZXNwYWNlIGltcG9ydCAkOjpucyhjb21wYXQpOjpzZXRfYXR0cmlidXRlCi0gICAgfQotCi0gICAgaWYgeyFbbGxlbmd0aCBbaW5mbyBjb21tYW5kcyA6OmdldF9hdHRyaWJ1dGVdXX0geyAKLQluYW1lc3BhY2UgaW1wb3J0ICQ6Om5zKGNvbXBhdCk6OmdldF9hdHRyaWJ1dGUKLSAgICB9Ci0KLSAgICBpZiB7IVtsbGVuZ3RoIFtpbmZvIGNvbW1hbmRzIDo6ZGlzcGF0Y2hfc3ViY29tbWFuZF1dfSB7IAotCW5hbWVzcGFjZSBpbXBvcnQgJDo6bnMoY29tcGF0KTo6ZGlzcGF0Y2hfc3ViY29tbWFuZAotICAgIH0KLQotICAgIGlmIHshW2xsZW5ndGggW2luZm8gY29tbWFuZHMgOjpyZWRpcmVjdF1dfSB7IAotCW5hbWVzcGFjZSBpbXBvcnQgJDo6bnMocmVkaXJlY3QpOjpyZWRpcmVjdAotICAgIH0KLQotICAgIGlmIHshW2xsZW5ndGggW2luZm8gY29tbWFuZHMgOjphc3NlcnRdXX0geyAKLQluYW1lc3BhY2UgaW1wb3J0ICQ6Om5zKHJlZ3Jlc3MpOjphc3NlcnQKLSAgICB9Ci0KLSAgICBpZiB7IVtsbGVuZ3RoIFtpbmZvIGNvbW1hbmRzIDo6cmVncmVzc11dfSB7IAotCW5hbWVzcGFjZSBpbXBvcnQgJDo6bnMocmVncmVzcyk6OnJlZ3Jlc3MKLSAgICB9Ci0KLSAgICBpZiB7IVtsbGVuZ3RoIFtpbmZvIGNvbW1hbmRzIDo6YWRkX2NvbW1hbmRfaGVscF1dfSB7IAotCW5hbWVzcGFjZSBpbXBvcnQgJDo6bnMoY29tcGF0KTo6YWRkX2NvbW1hbmRfaGVscCAKLSAgICB9Ci0KLSAgICBpZiB7IVtsbGVuZ3RoIFtpbmZvIGNvbW1hbmRzIDo6Y2FsbGluZ19wcm9jXV19IHsgCi0JbmFtZXNwYWNlIGltcG9ydCAkOjpucyhjb21wYXQpOjpjYWxsaW5nX3Byb2MgCi0JYWRkX2NvbW1hbmRfaGVscCBjYWxsaW5nX3Byb2MgIkVuYWJsZSBwb3J0aW5nIG9mIFJDIGFlLXdhcmUgc2NyaXB0cyIKLSAgICB9Ci0KLSAgICBpZiB7W2xsZW5ndGggW2luZm8gY29tbWFuZHMgJDo6bnMoY29tcGF0KTo6cGFyc2Vfb3B0aW9uc11dfSB7IAotICAgICAgaWYgeyFbbGxlbmd0aCBbaW5mbyBjb21tYW5kcyA6OnBhcnNlX29wdGlvbnNdXX0gewotCW5hbWVzcGFjZSBpbXBvcnQgJDo6bnMocGFyc2Vfb3B0KTo6cGFyc2Vfb3B0aW9ucwotCWFkZF9jb21tYW5kX2hlbHAgcGFyc2Vfb3B0aW9ucyAiRW5hYmxlIHBvcnRpbmcgb2YgUkMgYWUtd2FyZSBzY3JpcHRzIgotICAgICAgfQotICAgIH0KLQotICAgIGFkZF9jb21tYW5kX2hlbHAgJDo6bnMoY29tcGF0KTo6ZGVmaW5lX2F0dHJpYnV0ZSAiRW5hYmxlIHBvcnRpbmcgb2YgUkMgYWUtd2FyZSBzY3JpcHRzIgotICAgIGFkZF9jb21tYW5kX2hlbHAgJDo6bnMoY29tcGF0KTo6Z2V0X2F0dHJpYnV0ZSAiRW5hYmxlIHBvcnRpbmcgb2YgUkMgYWUtd2FyZSBzY3JpcHRzIgotICAgIGFkZF9jb21tYW5kX2hlbHAgJDo6bnMocmVkaXJlY3QpOjpyZWRpcmVjdCAicmVkaXJlY3RzIHN0ZG91dCB0byBhIGZpbGUgb3IgdmFyaWFibGUgdGVtcG9yYXJpbHkiIAotCi0gICAgcmVnZXhwIHtcZCsoXC5cZCspK30ge1JldmlzaW9uOiAxLjM1fSBwa2dSZXYKLSAgICBwYWNrYWdlIHByb3ZpZGUgY29tcGF0aWJpbGl0eSAkcGtnUmV2Ci19Ci0KLSMgcGFyc2Vfb3B0aW9ucyBibGEge30gIi1hIGRkIC1iIC1jIGZmIHN0MSBzdDIiICItYSBzcnMgYSBvcHQiIGFvcHQgICItYiBib3MgYiBib29sIiBib3B0ICAiLWMgc3JzIGMgb3B0aW9uIiBjb3B0ICAic3JzIHVuZmxhZ2dlZCAxIiB1MSAgInNycyB1bmZsYWdnZWQgMiIgdTIKLSMgcGFyc2Vfb3B0aW9ucyBibGEge30gIi1hIGRkIiAiLWEgc3JzIGEgb3B0IiBhb3B0Ci0jIHBhcnNlX29wdGlvbnMgYmxhIHt9ICItYiIgIi1iIGJvcyBiIGJvb2wiIGJvcHQKLSMgcGFyc2Vfb3B0aW9ucyBibGEge30gInN0MSIgInNycyB1bmZsYWdnZWQgMSIgdTEKLSMgcGFyc2Vfb3B0aW9ucyBibGEge30gIjQgLWZpaSIgIm5vcyB1bmZsYWdnZWQgMSIgdTEKLSMgcGFyc2Vfb3B0aW9ucyB0ZXN0IHt9ICItaGVscCIgIi1jIHNycyBjYXQiIGNvcHQgIi1zZXRfZnVuY3Rpb24gc29zIHNmdW5jIiBzb3B0Ci0jIHBhcnNlX29wdGlvbnMgdGVzdCB7fSAiLWhlIiAiLWhlbHBlciBib3MgZHVtbXkiIGhib29sCi0jIHBhcnNlX29wdGlvbnMgYmxhIHt9IHstYyBkc2tqIC1kIGpkc2tsYSAtaGVscF9zdHJpbmcgImRzZCBkanNrYWwifSAiLWMgc3JzIGNhdCIgY29wdCAiLWQgc3JzIGR0eXBlIiBkb3B0ICItaGVscF9zdHJpbmcgc29zIGhzdHJpbmciIGhvcHQKLSMgcGFyc2Vfb3B0aW9ucyBibGEge30gey1jIGRza2ogLWQgamRza2xhIC1oZWxwX3N0cmluZyAiZHNkIGRqc2thbCJ9ICItY18xIHNycyBjYXQiIGNvcHQgIi1kXzEgc3JzIGR0eXBlIiBkb3B0ICItaGVscF9zdHJpbmcgc29zIGhzdHJpbmciIGhvcHQKLSMgcGFyc2Vfb3B0aW9ucyBibGEge30gey1jIGRza2ogfSAiLWNfMSBzcnMgY2F0IiBjb3B0Ci0jIHBhcnNlX29wdGlvbnMgYmxhIHt9ICJmaWVsZEluZm8gZW1hYyIgInNybSBvcHQiIGFvcHQKLSMgZGVmaW5lX2F0dHJpYnV0ZSAtb2JqIG9iaiAtZGF0YSBkYXRhIC1jYXQgY2F0IC1kZWYgZGVmIC1jb21wIGNvbXAgLWhlbHBfcyBoZWxwIGJsYQotCi0jPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0jCi0jIENvcHlyaWdodCAxOTk3LTIwMTMgQ2FkZW5jZSBEZXNpZ24gU3lzdGVtcywgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZCB3b3JsZHdpZGUuIAotIwotIyBUaGUgVGNsIGNvbXB1dGVyIHByb2dyYW0gYW5kIHJlbGF0ZWQgaW5mb3JtYXRpb24gKGNvbGxlY3RpdmVseSAiTGljZW5zZWQgTWF0ZXJpYWwiKSAKLSMgY29udGFpbmVkIGhlcmVpbiBhcmUgcHJvdGVjdGVkIGJ5IGNvcHlyaWdodCBsYXcgYW5kIGludGVybmF0aW9uYWwgdHJlYXRpZXMuIAotIwotIyBDYWRlbmNlIGdyYW50cyBSZWNpcGllbnQgb2YgdGhlIExpY2Vuc2VkIE1hdGVyaWFsIGEgbm9uZXhjbHVzaXZlIHJpZ2h0Ci0jIHRvIHVzZSwgY29weSwgYW5kIG1vZGlmeSB0aGUgTGljZW5zZWQgTWF0ZXJpYWwuICAgU2hvdWxkIFJlY2lwaWVudAotIyBkZXNpcmUgdG8gZGlzdHJpYnV0ZSBhbnkgcG9ydGlvbiBvZiB0aGUgTGljZW5zZWQgTWF0ZXJpYWwsIFJlY2lwaWVudAotIyBtdXN0IG9idGFpbiBDYWRlbmNlJ3MgcGVybWlzc2lvbi4gIEluIG5vIGV2ZW50IHNoYWxsIFJlY2lwaWVudCB1c2UgdGhlIAotIyBMaWNlbnNlZCBNYXRlcmlhbCBmb3IgYmVuY2htYXJraW5nIHB1cnBvc2VzIGFnYWluc3QgQ2FkZW5jZSdzIHByb2R1Y3RzLiAgIAotIwotIyBUaGUgTGljZW5zZWQgTWF0ZXJpYWwgaXMgcHJvdmlkZWQgdG8gUmVjaXBpZW50IHRvIHVzZSBhdCBSZWNpcGllbnQncwotIyBvd24gcmlzay4gVGhlIExpY2Vuc2VkIE1hdGVyaWFsIG1heSBub3QgYmUgY29tcGF0aWJsZSB3aXRoIGN1cnJlbnQgb3IgCi0jIGZ1dHVyZSB2ZXJzaW9ucyBvZiBDYWRlbmNlIHByb2R1Y3RzLCBhbmQgQ2FkZW5jZSB3aWxsIG5vdCBwcm92aWRlIGFueSAKLSMgdGVjaG5pY2FsIHN1cHBvcnQgZm9yIHRoZSBMaWNlbnNlZCBNYXRlcmlhbCwgd2hldGhlciBtb2RpZmllZCBvciBub3QgCi0jIGJ5IHRoZSBSZWNpcGllbnQuICBUSEUgTElDRU5TRUQgTUFURVJJQUwgSVMgUFJPVklERUQgIkFTIElTIiBBTkQgV0lUSCAKLSMgTk8gV0FSUkFOVElFUywgSU5DTFVESU5HIFdJVEhPVVQgTElNSVRBVElPTiBBTlkgRVhQUkVTUyBXQVJSQU5USUVTIE9SIAotIyBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIE9SIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBVU0UuCi0jCi0jIElOIE5PIEVWRU5UIFNIQUxMIENBREVOQ0UgQkUgTElBQkxFIFRPIFJFQ0lQSUVOVCBPUiBBTlkgVEhJUkQgUEFSVFkKLSMgRk9SIEFOWSBJTkNJREVOVEFMLCBJTkRJUkVDVCwgU1BFQ0lBTCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMsIE9SIEFOWSAKLSMgT1RIRVIgREFNQUdFUyBXSEFUU09FVkVSIChJTkNMVURJTkcsIFdJVEhPVVQgTElNSVRBVElPTiwgREFNQUdFUyBGT1IKLSMgTE9TUyBPRiBCVVNJTkVTUyBQUk9GSVRTLCBCVVNJTkVTUyBJTlRFUlJVUFRJT04sIExPU1MgT0YgQlVTSU5FU1MgCi0jIElORk9STUFUSU9OLCBPUiBPVEhFUiBQRUNVTklBUlkgTE9TUykgQVJJU0lORyBPVVQgT0YgVEhFIFVTRSBPUgotIyBJTkFCSUxJVFkgVE8gVVNFIExJQ0VOU0VEIE1BVEVSSUFMLCBXSEVUSEVSIE9SIE5PVCBUSEUgUE9TU0lCSUxJVFkgT1IgCi0jIENBVVNFIE9GIFNVQ0ggREFNQUdFUyBXQVMgS05PV04gVE8gQ0FERU5DRS4KLSMKLSMgQ2FkZW5jZSBEZXNpZ24gU3lzdGVtcywgSW5jLgotIyAyNjU1IFNlZWx5IEF2ZW51ZQotIyBTYW4gSm9zZSwgQ0EgOTUxMzQKLSMKLSM9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLQotCmRpZmYgLS1naXQgYS9mbG93L3Buci9idWlsZGluZnJhL2Jpbi9nZW5fbWFuaWZlc3QudGNsIGIvZmxvdy9wbnIvYnVpbGRpbmZyYS9iaW4vZ2VuX21hbmlmZXN0LnRjbApkZWxldGVkIGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggNDQ3Yzc2Yy4uMDAwMDAwMAotLS0gYS9mbG93L3Buci9idWlsZGluZnJhL2Jpbi9nZW5fbWFuaWZlc3QudGNsCisrKyAvZGV2L251bGwKQEAgLTEsMTQ3ICswLDAgQEAKLSMhL3Vzci9iaW4vdGNsc2gKLQotc2V0IG1zZ1ByZWZpeCAiW2ZpbGUgdGFpbCAkYXJndjBdIgotCi1wcm9jIGZsYXR0ZW5fbGlzdCBsaXN0IHtzdHJpbmcgbWFwIHtceyAiIiBcfSAiIn0gJGxpc3R9Ci0KLXByb2MgcHV0c0ZpbGUge2ZpbGV9IHsKLSAgc2V0IElOUCBbb3BlbiAkZmlsZSByXQotICB3aGlsZSB7W2dldHMgJElOUCBsaW5lXSAhPSAtMX0gIHsKLSAgICBwdXRzICRsaW5lCi0gIH0KLSAgY2xvc2UgJElOUAotfQotCi0jIExvYWQgQ2FkZW5jZSBDb21wYXRpYmlsaXR5IExheWVyIHdoZW4gbm90IGluIFJUTCBDb21waWxlcgotc2V0IGlzUlRMQ29tcGlsZXIgW2V4cHIge1tsbGVuZ3RoIFtpbmZvIGNvbW1hbmRzIHNldF9yZW1vdmVfYXNzaWduX29wdGlvbnNdXSAmJgotICAgICAgICAgICAgICAgICAgICAgICAgIFtsbGVuZ3RoIFtpbmZvIGNvbW1hbmRzIGdldF9hdHRyaWJ1dGVdXSAmJgotICAgICAgICAgICAgICAgICAgICAgICAgIFtzdHJpbmcgZXF1YWwgW2dldF9hdHRyaWJ1dGUgcHJvZ3JhbV9zaG9ydF9uYW1lIC9dICJyYyJdfV0KLQotaWYgeyEke2lzUlRMQ29tcGlsZXJ9fSB7Ci0gICAgaWYge1tjYXRjaCB7cGFja2FnZSByZXF1aXJlIGNvbXBhdGliaWxpdHl9IGVyck1zZ119IHsKLSAgICAgICAgaWYge1tmaWxlIGV4aXN0cyBidWlsZGluZnJhL2Jpbi9jb21wYXRpYmlsaXR5LnRjbF19IHsKLSAgICAgICAgICAgIHNvdXJjZSAiYnVpbGRpbmZyYS9iaW4vY29tcGF0aWJpbGl0eS50Y2wiCi0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBwdXRzICJFcnJvcjogY29tcGF0aWJpbGl0eS50Y2wgbm90IGZvdW5kISBcJ2NvbXBhdGliaWxpdHkudGNsXCcgaXMgc2VhcmNoZWQgYXMgZm9sbG93czoiCi0gICAgICAgICAgICBwdXRzICJcdDEpIGJhc2VkIG9uIGV4aXN0ZW5jZSBhbmQgY29udGVudHMgb2YgcGtnSW5kZXgudGNsIgotICAgICAgICAgICAgcHV0cyAiXHQyKSBiYXNlZCBvbiBleGlzdGVuY2UgYW5kIGNvbnRlbnRzIG9mIElORlJBIGVudmlyb25tZW50IHZhcmlhYmxlIgotICAgICAgICAgICAgcHV0cyAiXHQzKSBiYXNlZCBvbiBleGlzdGVuY2Ugb2YgY29tcGF0aWJpbGl0eS50Y2wgaW4gLi4vYnVpbGRpbmZyYS8iCi0gICAgICAgICAgICByZXR1cm4gLWNvZGUgZXJyb3IKLSAgICAgICAgfQotICAgIH0KLX0KLQotaWYgeyFbaW5mbyBleGlzdHMgOjpucyhjb21wYXQpXX0gIHsgc2V0IDo6bnMoY29tcGF0KSAiOjphZXdhcmUiIH0KLQotIyBEZWZhdWx0IGZvciBjdnMKLXNldCBib21GaWxlICJCT00udHh0Igotc2V0IGN2c1N0YXR1c0ZpbGUgIiIKLXNldCBmbG93SW5mb0ZpbGUgIiIKLXNldCBhcHBJbmZvRmlsZSAiIgotc2V0IGJvbVZlcnNpb24gIiIKLXNldCBjdnNSb290RGlyICIiCi0KLSMgUGFyc2Ugb3B0aW9ucyAoZnJvbSBjb21wYXRpYmlsaXR5IGxheWVyKQotc3dpdGNoIC0tIFtwYXJzZV9vcHRpb25zICRtc2dQcmVmaXgge30gJGFyZ3YgXAotICAiLWN2c19zdGF0dXNfZmlsZSBzb3Mgc3BlY2lmaWVzIHRoZSBuYW1lIG9mIHRoZSBjdnMgc3RhdHVzIGZpbGUgdG8gYW5hbHl6ZSIgY3ZzU3RhdHVzRmlsZSBcCi0gICItY3ZzX3JwdF9yb290X2RpciBzb3MgdGhlIHJvb3QgZGlyZWN0b3J5IHRvIHVzZSBmb3IgbWFuaWZlc3QgZ2VuZXJhdGlvbiBvZiBjdnMgc3RhdHVzIHJlcG9ydHMiIGN2c1Jvb3REaXIgXAotICAiLWJvbV9maWxlIHNvcyBzcGVjaWZpZXMgdGhlIG5hbWUgb2YgdGhlIEJPTSAobWFuaWZlc3QpIGZpbGUgdG8gd3JpdGUiIGJvbUZpbGUgXAotICAiLWZsb3dfaW5mbyBzb3Mgc3BlY2lmaWVzIGEgZmxvdyBpbmZvIGZpbGUgdG8gdXNlIChhbmQgaW5jbHVkZXMgZmxvdyB2ZXJzaW9uIGluZm8gaW4gdGhlIGdlbmVyYXRlZCBCT00pIiBmbG93SW5mb0ZpbGUgXAotICAiLWFwcF9pbmZvIHNvcyBzcGVjaWZpZXMgYW4gYXBwbGV0IGluZm8gZmlsZSB0byB1c2UgKGFuZCBpbmNsdWRlcyBhcHBsZXQgdmVyc2lvbiBpbmZvIGluIHRoZSBnZW5lcmF0ZWQgQk9NKSIgYXBwSW5mb0ZpbGUgXAotICAiLWJvbV92ZXJzaW9uIHNvcyBzcGVjaWZpZXMgYSB2ZXJzaW9uIHRvIHVzZSBmb3IgdGhlIEJPTSBpdHNlbGYgKGkuZS4sIGEgdG9wIGxldmVsIHZlcnNpb24pIiBib21WZXJzaW9uIFwKLSAgIi1kZWJ1ZyBiT3MgZW5hYmxlIGRlYnVnIG1lc3NhZ2Ugb3V0cHV0IiBkZWJ1ZyBdIHsKLSAgLTIgeyByZXR1cm4gfQotICAwIHsgcmV0dXJuIC1jb2RlIGVycm9yIH0KLX0KLQotZmlsZSBkZWxldGUgLWZvcmNlICRib21GaWxlCi1zZXQgT1NUUkVBTSBbb3BlbiAkYm9tRmlsZSAidyJdCi1wdXRzICRPU1RSRUFNICIjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyIKLXB1dHMgJE9TVFJFQU0gIiMgRm91bmRhdGlvbiBGbG93IFJUTC0+R0RTSUkgSW1wbGVtZW50YXRpb24gU3lzdGVtIiAKLXB1dHMgJE9TVFJFQU0gIiMgQ29weXJpZ2h0IChjKSAxOTk3LVtjbG9jayBmb3JtYXQgW2Nsb2NrIHNlY29uZHNdIC1mb3JtYXQgJVldIENhZGVuY2UgRGVzaWduIFN5c3RlbXMsIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4iCi1wdXRzICRPU1RSRUFNICIjIFZlcnNpb24gICAgICAgOiAkYm9tVmVyc2lvbiIKLXB1dHMgJE9TVFJFQU0gIiMgU3VtbWFyeSAgICAgICA6IEZvdW5kYXRpb24gRmxvdyBLaXQgTWFuaWZlc3QiCi1wdXRzICRPU1RSRUFNICIjIERlc2NyaXB0aW9uICAgOiBMaXN0IG9mIGtpdCBjb250ZW50cy4gVGhpcyBpbmNsdWRlcyIKLXB1dHMgJE9TVFJFQU0gIiMgICAgICAgICAgICAgICAgIFJDIGFuZCBFREkgY29kZSBnZW5lcmF0aW9uIHBhY2thZ2VzLCBhcHBsZXRzLCIKLXB1dHMgJE9TVFJFQU0gIiMgICAgICAgICAgICAgICAgIGZsb3dzLCBhbmQvb3IgY29tcG9uZW50IHNjcmlwdHMuIgotcHV0cyAkT1NUUkVBTSAiIyBDcmVhdGVkIG9uICAgIDogW2V4ZWMgZGF0ZV0iCi1wdXRzICRPU1RSRUFNICIjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyIKLXB1dHMgJE9TVFJFQU0gIiMgVG9wIGxldmVsIHJlbGVhc2UgY29udGVudCBhbmQgdmVyc2lvbnM6IgotcHV0cyAkT1NUUkVBTSAiIyBFRElGRjogJGJvbVZlcnNpb24iCi0KLSMKLSMgT25seSBwcmludCBSQ0ZGIGlmIGZsb3dJbmZvIHdhcyBwcm92aWRlZAotIyAoVGhlIHByZXNlbmNlIG9mIGFwcGxldHMgZG9lcyBub3QgbmVjZXNzYXJpbHkgaW1wbHkgdGhlIHByZXNlbmNlIG9mIHRoZSBSQyBGb3VuZGF0aW9uIEZsb3cpCi0jCi1pZiB7JGZsb3dJbmZvRmlsZSBuZSAiIn0gewotICBwdXRzICRPU1RSRUFNICJcbiMgUkNGRjoiCi19Ci0KLSMKLSMgTG9hZC9QcmludCBmbG93IHZlcnNpb24gaW5mbyBpZiAkZmxvd0luZm9GaWxlIHByb3ZpZGVkCi0jCi1pZiB7JGZsb3dJbmZvRmlsZSBuZSAiIn0gewotICBwdXRzICRPU1RSRUFNICIjICAgRmxvd3M6IgotICBzb3VyY2UgJGZsb3dJbmZvRmlsZQotICBzZXQgZmxvd3NUbXBMaXN0IFthcnJheSBuYW1lcyBmbG93SW5mbyAtcmVnZXhwIHssdmVyc2lvbn1dCi0gIGZvcmVhY2ggZmxvdyAkZmxvd3NUbXBMaXN0IHsKLSAgICByZWdzdWIgLWFsbCB7OjpmbG93czo6KC4qKSx2ZXJzaW9ufSAkZmxvdyB7XDF9IGZsb3cKLSAgICBsYXBwZW5kIGZsb3dzTGlzdCAkZmxvdwotICB9Ci0gIGZvcmVhY2ggZmxvdyBbbHNvcnQgLWRpY3Rpb25hcnkgJGZsb3dzTGlzdF0gewotICAgIGlmIHtbaW5mbyBleGlzdHMgZmxvd0luZm8oOjpmbG93czo6JGZsb3csdmVyc2lvbildfSB7Ci0gICAgICBwdXRzICRPU1RSRUFNICJbZm9ybWF0ICIjICAgICAlLSpzICUtKnMiIDQwICR7Zmxvd306IDIwICRmbG93SW5mbyg6OmZsb3dzOjokZmxvdyx2ZXJzaW9uKV0iCi0gICAgfQotICB9Ci19Ci0KLSMKLSMgTG9hZC9QcmludCBhcHBsZXQgdmVyc2lvbiBpbmZvIGlmICRmbG93SW5mb0ZpbGUgcHJvdmlkZWQKLSMKLWlmIHskYXBwSW5mb0ZpbGUgbmUgIiJ9IHsKLSAgcHV0cyAkT1NUUkVBTSAiIyAgIEFwcGxldHM6IgotICBjYXRjaCB7c291cmNlICRhcHBJbmZvRmlsZX0KLSAgc2V0IGFwcGxldHNUbXBMaXN0IFthcnJheSBuYW1lcyBhcHBJbmZvIC1yZWdleHAgeyx2ZXJzaW9ufV0KLSAgZm9yZWFjaCBhcHBsZXQgJGFwcGxldHNUbXBMaXN0IHsKLSAgICByZWdzdWIgLWFsbCB7OjphcHBsZXQ6OiguKiksdmVyc2lvbn0gJGFwcGxldCB7XDF9IGFwcGxldAotICAgIGxhcHBlbmQgYXBwbGV0c0xpc3QgJGFwcGxldAotICB9Ci0gIGZvcmVhY2ggYXBwbGV0IFtsc29ydCAtZGljdGlvbmFyeSAkYXBwbGV0c0xpc3RdIHsKLSAgICBpZiB7W2luZm8gZXhpc3RzIGFwcEluZm8oOjphcHBsZXQ6OiRhcHBsZXQsdmVyc2lvbildfSB7Ci0gICAgICBwdXRzICRPU1RSRUFNICJbZm9ybWF0ICIjICAgICAlLSpzICUtKnMiIDQwICR7YXBwbGV0fTogMjAgJGFwcEluZm8oOjphcHBsZXQ6OiRhcHBsZXQsdmVyc2lvbikgXSIKLSAgICB9Ci0gIH0KLX0KLSMKLSMgQW5hbHl6ZSBjdnMgc3RhdHVzIGZpbGUgYW5kIHByaW50IHZlcnNpb25zIGlmIGl0IHdhcyBwcm92aWRlZAotIwotaWYgeyRjdnNTdGF0dXNGaWxlIG5lICIifSB7Ci0gIHNldCBmaWxlbGlzdCAiIgotICBwdXRzICRPU1RSRUFNICJcbiMgVmVyc2lvbiBJbmZvIEZvciBDb21wb25lbnQgU2NyaXB0cyAoRm9yIGludGVybmFsIHVzZSBvbmx5KToiCi0gIHB1dHMgJE9TVFJFQU0gIiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tIgotICBwdXRzICRPU1RSRUFNICIjICAgICAgICAgICAgICAgIEZpbGUgTmFtZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBWZXJzaW9uICIKLSAgcHV0cyAkT1NUUkVBTSAiIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0iCi0gIHNldCBJUyBbb3BlbiAkY3ZzU3RhdHVzRmlsZSAiciJdCi0gIGFycmF5IHNldCBsaW5lQXJyICIiCi0gIHNldCBsaW5lbm8gMQotICB3aGlsZSB7IVtlb2YgJElTXX0gewotICAgIGdldHMgJElTIGxpbmVBcnIoJGxpbmVubykKLSAgICBpZiB7W3JlZ2V4cCB7UmVwb3NpdG9yeSByZXZpc2lvbjpccysoXFMrKVxzKyhcUyspLHYkfSAkbGluZUFycigkbGluZW5vKSBmdWxsIHZlcnNpb24gZnVsbEZpbGVQYXRoXX0gewotICAgICAgc2V0IHJlICIuKiRjdnNSb290RGlyLyguKilcJCIKLSAgICAgIGlmIHskY3ZzUm9vdERpciBuZSAiIiAmJiAhW3JlZ2V4cCAkcmUgJGZ1bGxGaWxlUGF0aCBmdWxsIEZpbGVdfSB7Ci0gICAgICAgIHNldCBGaWxlICRmdWxsRmlsZVBhdGgKLSAgICAgIH0KLSAgICAgIGxhcHBlbmQgZmlsZWxpc3QgJEZpbGUKLSAgICAgIHNldCAke0ZpbGV9KHZlcnNpb24pICR2ZXJzaW9uCi0gICAgfQotICAgIGluY3IgbGluZW5vCi0gIH0KLSAgY2xvc2UgJElTCi0KLSAgZm9yZWFjaCBGaWxlIFtsc29ydCAtZGljdGlvbmFyeSAkZmlsZWxpc3RdIHsKLSAgICBwdXRzICRPU1RSRUFNIFtmb3JtYXQgIiMgJS0qcyB8ICUtKnMiIDcwICRGaWxlIDggW3NldCAke0ZpbGV9KHZlcnNpb24pXV0KLSAgfQotfQotcHV0cyAkT1NUUkVBTSAiIyIKLXB1dHMgJE9TVFJFQU0gIiMgRU5EIE1BTklGRVNUIgotY2xvc2UgJE9TVFJFQU0KZGlmZiAtLWdpdCBhL2Zsb3cvcG5yL2NsZWFuX21lLmNzaCBiL2Zsb3cvcG5yL2NsZWFuX21lLmNzaApkZWxldGVkIGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggNGQ2MWMwNS4uMDAwMDAwMAotLS0gYS9mbG93L3Buci9jbGVhbl9tZS5jc2gKKysrIC9kZXYvbnVsbApAQCAtMSwxMiArMCwwIEBACi0jIS9iaW4vc2gKLXJtIC1mIGZpbmFsLmdkcwotcm0gLWYgZmluYWwudgotcm0gLXJmIG1ha2UKLW1ha2UgY2xlYW4KLXJtIC1yZiBMT0cgREJTIFJQVAotcm0gLXJmIGlubm92dXMuY21kKgotcm0gLXJmIGlubm92dXMubG9nKgotcm0gLXJmIGNoZWNrRGVzaWduCi1ybSAtcmYgdGltaW5nUmVwb3J0cwotcm0gLXJmIG11bHRfcGFkX3ZpYV9sYXllcioKLQpkaWZmIC0tZ2l0IGEvZmxvdy9wbnIvY29tbWFuZHMudGNsIGIvZmxvdy9wbnIvY29tbWFuZHMudGNsCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDc1NQppbmRleCA2ODk1MTE5Li4wMDAwMDAwCi0tLSBhL2Zsb3cvcG5yL2NvbW1hbmRzLnRjbAorKysgL2Rldi9udWxsCkBAIC0xLDYgKzAsMCBAQAotZ2xvYmFsTmV0Q29ubmVjdCBWU1MgLXR5cGUgcGdwaW4gLXBpbiBnbmQgLWluc3QgKiAKLWdsb2JhbE5ldENvbm5lY3QgVkREIC10eXBlIHBncGluIC1waW4gdmRkIC1pbnN0ICogCi1zZXRBZGRSaW5nTW9kZSAtcmluZ190YXJnZXQgY29yZV9yaW5nIC1leHRlbmRfb3Zlcl9yb3cgMCAtaWdub3JlX3Jvd3MgMCAtYXZvaWRfc2hvcnQgMCAtc2tpcF9jcm9zc2luZ190cnVua3Mgbm9uZSAtc3RhY2tlZF92aWFfdG9wX2xheWVyIG1ldGFsMyAtc3RhY2tlZF92aWFfYm90dG9tX2xheWVyIG1ldGFsMSAtdmlhX3VzaW5nX2V4YWN0X2Nyb3Nzb3Zlcl9zaXplIDEgLW9ydGhvZ29uYWxfb25seSB0cnVlIC1za2lwX3ZpYV9vbl9waW4geyAgc3RhbmRhcmRjZWxsIH0gLXNraXBfdmlhX29uX3dpcmVfc2hhcGUgeyAgbm9zaGFwZSB9Ci1hZGRSaW5nIC1uZXRzIHtWREQgVlNTfSAtdHlwZSBjb3JlX3JpbmdzIC1mb2xsb3cgaW8gLWxheWVyIHt0b3AgbWV0YWwxIGJvdHRvbSBtZXRhbDEgbGVmdCBtZXRhbDIgcmlnaHQgbWV0YWwyfSAtd2lkdGgge3RvcCAzLjYgYm90dG9tIDMuNiBsZWZ0IDMuNiByaWdodCAzLjZ9IC1zcGFjaW5nIHt0b3AgMS44IGJvdHRvbSAxLjggbGVmdCAxLjggcmlnaHQgMS44fSAtb2Zmc2V0IHt0b3AgMS44IGJvdHRvbSAxLjggbGVmdCAxLjggcmlnaHQgMS44fSAtY2VudGVyIDAgLWV4dGVuZF9jb3JuZXIge30gLXRocmVzaG9sZCAwIC1qb2dfZGlzdGFuY2UgMCAtc25hcF93aXJlX2NlbnRlcl90b19ncmlkIE5vbmUKLXNldFNyb3V0ZU1vZGUgLXZpYUNvbm5lY3RUb1NoYXBlIHsgcGFkcmluZyByaW5nIHN0cmlwZSBibG9ja3JpbmcgYmxvY2twaW4gbm9zaGFwZSBibG9ja3dpcmUgY29yZXdpcmUgZm9sbG93cGluIGlvd2lyZSBub3NoYXBlIH0KLXNyb3V0ZSAtY29ubmVjdCB7IGJsb2NrUGluIHBhZFBpbiBwYWRSaW5nIGNvcmVQaW4gZmxvYXRpbmdTdHJpcGUgfSAtbGF5ZXJDaGFuZ2VSYW5nZSB7IG1ldGFsMSgxKSBtZXRhbDMoMykgfSAtYmxvY2tQaW5UYXJnZXQgeyBuZWFyZXN0VGFyZ2V0IH0gLXBhZFBpblBvcnRDb25uZWN0IHsgYWxsUG9ydCBvbmVHZW9tIH0gLXBhZFBpblRhcmdldCB7IG5lYXJlc3RUYXJnZXQgfSAtY29yZVBpblRhcmdldCB7IGZpcnN0QWZ0ZXJSb3dFbmQgfSAtZmxvYXRpbmdTdHJpcGVUYXJnZXQgeyBibG9ja3JpbmcgcGFkcmluZyByaW5nIHN0cmlwZSByaW5ncGluIGJsb2NrcGluIGZvbGxvd3BpbiB9IC1hbGxvd0pvZ2dpbmcgMSAtY3Jvc3NvdmVyVmlhTGF5ZXJSYW5nZSB7IG1ldGFsMSgxKSBtZXRhbDMoMykgfSAtbmV0cyB7IFZERCBWU1MgfSAtYWxsb3dMYXllckNoYW5nZSAxIC1ibG9ja1BpbiB1c2VMZWYgLXRhcmdldFZpYUxheWVyUmFuZ2UgeyBtZXRhbDEoMSkgbWV0YWwzKDMpIH0KZGlmZiAtLWdpdCBhL2Zsb3cvcG5yL2VuY291bnRlci5pbyBiL2Zsb3cvcG5yL2VuY291bnRlci5pbwpkZWxldGVkIGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggNGU4ZWVmYS4uMDAwMDAwMAotLS0gYS9mbG93L3Buci9lbmNvdW50ZXIuaW8KKysrIC9kZXYvbnVsbApAQCAtMSwxMDcgKzAsMCBAQAotIyBUaGlzIGZpbGUgc3BlY2lmaWVzIGhvdyB0aGUgcGFkcyBhcmUgcGxhY2VkCi0jIFRoZSBuYW1lIG9mIGVhY2ggcGFkIGhlcmUgaGFzIHRvIG1hdGNoIHRoZQotIyBuYW1lIGluIHRoZSB2ZXJpbG9nIGNvZGUKLSMgVGhlIE1vc2lzIHBhZGZyYW1lIGhhcyA0IGNvcm5lcnMgYW5kIDQwIHBhZHMKLQotIyBUaGUgZm91ciBjb3JuZXJzIChQQURGQykKLQotT3JpZW50OiBSMAotUGFkOiBjMDEgTlcKLU9yaWVudDogUjI3MAotUGFkOiBjMDIgTkUKLU9yaWVudDogUjE4MAotUGFkOiBjMDMgU0UKLU9yaWVudDogUjkwCi1QYWQ6IGMwNCBTVwotCi0jIDEwIFBhZHMgb24gdGhlIE5vcnRoLVNpZGUgKHRvcCBzaWRlKQotCi1PcmllbnQ6IFIwCi1QYWQ6IHAzOSBOCi1PcmllbnQ6IFIwCi1QYWQ6IHAzOCBOCi1PcmllbnQ6IFIwCi1QYWQ6IHAzNyBOCi1PcmllbnQ6IFIwCi1QYWQ6IHAzNiBOCi1PcmllbnQ6IFIwCi1QYWQ6IHAzNSBOCi1PcmllbnQ6IFIwCi1QYWQ6IHAzNCBOCi1PcmllbnQ6IFIwCi1QYWQ6IHAzMyBOCi1PcmllbnQ6IFIwCi1QYWQ6IHAzMiBOCi1PcmllbnQ6IFIwCi1QYWQ6IHAzMSBOCi1PcmllbnQ6IFIwCi1QYWQ6IHAzMCBOCi0KLSMgMTAgUGFkcyBvbiB0aGUgV2VzdC1TaWRlIChsZWZ0IHNpZGUpCi0KLU9yaWVudDogUjkwCi1QYWQ6IHAyOSBXCi1PcmllbnQ6IFI5MAotUGFkOiBwMjggVwotT3JpZW50OiBSOTAKLVBhZDogcDI3IFcKLU9yaWVudDogUjkwCi1QYWQ6IHAyNiBXCi1PcmllbnQ6IFI5MAotUGFkOiBwMjUgVwotT3JpZW50OiBSOTAKLVBhZDogcDI0IFcKLU9yaWVudDogUjkwCi1QYWQ6IHAyMyBXCi1PcmllbnQ6IFI5MAotUGFkOiBwMjIgVwotT3JpZW50OiBSOTAKLVBhZDogcDIxIFcKLU9yaWVudDogUjkwCi1QYWQ6IHAyMCBXCi0KLSMgMTAgUGFkcyBvbiB0aGUgU291dGgtU2lkZSAoYm90dG9tIHNpZGUpCi0KLU9yaWVudDogUjE4MAotUGFkOiBwMTkgUwotT3JpZW50OiBSMTgwCi1QYWQ6IHAxOCBTCi1PcmllbnQ6IFIxODAKLVBhZDogcDE3IFMKLU9yaWVudDogUjE4MAotUGFkOiBwMTYgUwotT3JpZW50OiBSMTgwCi1QYWQ6IHAxNSBTCi1PcmllbnQ6IFIxODAKLVBhZDogcDE0IFMKLU9yaWVudDogUjE4MAotUGFkOiBwMTMgUwotT3JpZW50OiBSMTgwCi1QYWQ6IHAxMiBTCi1PcmllbnQ6IFIxODAKLVBhZDogcDExIFMKLU9yaWVudDogUjE4MAotUGFkOiBwMTAgUwotCi0jIDEwIFBhZHMgb24gdGhlIEVhc3QtU2lkZSAocmlnaHQgc2lkZSkKLQotT3JpZW50OiBSMjcwCi1QYWQ6IHAwOSBFCi1PcmllbnQ6IFIyNzAKLVBhZDogcDA4IEUKLU9yaWVudDogUjI3MAotUGFkOiBwMDcgRQotT3JpZW50OiBSMjcwCi1QYWQ6IHAwNiBFCi1PcmllbnQ6IFIyNzAKLVBhZDogcDA1IEUKLU9yaWVudDogUjI3MAotUGFkOiBwMDQgRQotT3JpZW50OiBSMjcwCi1QYWQ6IHAwMyBFCi1PcmllbnQ6IFIyNzAKLVBhZDogcDAyIEUKLU9yaWVudDogUjI3MAotUGFkOiBwMDEgRQotT3JpZW50OiBSMjcwCi1QYWQ6IHAwMCBFCmRpZmYgLS1naXQgYS9mbG93L3Buci9pbm5vdnVzX2NvbmZpZy50Y2wgYi9mbG93L3Buci9pbm5vdnVzX2NvbmZpZy50Y2wKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDUyYWE5ODQuLjAwMDAwMDAKLS0tIGEvZmxvdy9wbnIvaW5ub3Z1c19jb25maWcudGNsCisrKyAvZGV2L251bGwKQEAgLTEsMTAwICswLDAgQEAKLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSMgQ0FERU5DRSBDT1BZUklHSFQgTk9USUNFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMKLSMgU2VwdGVtYmVyIDIwMDggQ2FkZW5jZSBEZXNpZ24gU3lzdGVtcywgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLiAgICAgICAgICAgICMKLSMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMKLSMgVGhpcyBzY3JpcHQgaXMgQUVXYXJlLCBwcm92aWRlZCBhcyBhbiBleGFtcGxlIG9mIGhvdyB0byBwZXJmb3JtIHNwZWNpYWxpemVkICMKLSMgdGFza3Mgd2l0aGluIFNvQyBFbmNvdW50ZXIuICBJdCBpcyBub3Qgc3VwcG9ydGVkIHZpYSB0aGUgQ2FkZW5jZSBIb3RsaW5lICAgICMKLSMgbm9yIHRoZSBDQ1Igc3lzdGVtLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMKLSMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMKLSMgVGhpcyB3b3JrIG1heSBub3QgYmUgY29waWVkLCByZS1wdWJsaXNoZWQsIHVwbG9hZGVkLCBvciBkaXN0cmlidXRlZCBpbiBhbnkgICMKLSMgd2F5LCBpbiBhbnkgbWVkaXVtLCB3aGV0aGVyIGluIHdob2xlIG9yIGluIHBhcnQsIHdpdGhvdXQgcHJpb3Igd3JpdHRlbiAgICAgICMKLSMgcGVybWlzc2lvbiBmcm9tIENhZGVuY2UuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMKLSMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMKLSMgVGhpcyB3b3JrIGlzIENhZGVuY2UgaW50ZWxsZWN0dWFsIHByb3BlcnR5IGFuZCBtYXkgdW5kZXIgbm8gY2lyY3Vtc3RhbmNlcyAgICMKLSMgYmUgZ2l2ZW4gdG8gdGhpcmQgcGFydGllcywgbmVpdGhlciBpbiBvcmlnaW5hbCBub3IgaW4gbW9kaWZpZWQgdmVyc2lvbnMsICAgICMKLSMgd2l0aG91dCBleHBsaWNpdCB3cml0dGVuIHBlcm1pc3Npb24gZnJvbSBDYWRlbmNlICAgICAgICAgICAgICAgICAgICAgICAgICAgICMKLSMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMKLSMgVGhlIGluZm9ybWF0aW9uIGNvbnRhaW5lZCBoZXJlaW4gaXMgdGhlIHByb3ByaWV0YXJ5IGFuZCBjb25maWRlbnRpYWwgICAgICAgICMKLSMgaW5mb3JtYXRpb24gb2YgQ2FkZW5jZSBvciBpdHMgbGljZW5zb3JzLCBhbmQgaXMgc3VwcGxpZWQgc3ViamVjdCB0bywgYW5kICAgICMKLSMgbWF5IGJlIHVzZWQgb25seSBieSBDYWRlbmNlJ3MgY3VzdG9tZXJzIGluIGFjY29yZGFuY2Ugd2l0aCwgYSBwcmV2aW91c2x5ICAgICMKLSMgZXhlY3V0ZWQgbGljZW5zZSBhbmQgbWFpbnRlbmFuY2UgYWdyZWVtZW50IGJldHdlZW4gQ2FkZW5jZSBhbmQgaXRzICAgICAgICAgICMKLSMgY3VzdG9tZXIuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMKLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLQotZ2xvYmFsIHZhcnMKLQotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotIyBPcHRpbmFsbHkgZGVmaW5lIG91dHB1dCBkaXJlY3RvcmllcyBmb3IgZGF0YWJhc2VzIGFuZCByZXBvcnRzCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi1zZXQgdmFycyhkYnNfZGlyKSAgICAgIERCUwotc2V0IHZhcnMocnB0X2RpcikgICAgICBSUFQKLQotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotIyBFbmFibGUgdGhpcyB2YXJpYWJsZSBpZiB5b3Ugd2FudCB0byBhYm9ydCB3aGVuIHRoZXJlIGFyZSBzZXR1cCAKLSMgZXJyb3JzIC4uLiBsZWF2ZSAwIHRvIGNvbnRpbnVlIG9uIGVycm9yCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi1zZXQgdmFycyhhYm9ydCkgMAotCi0jc2V0IHZhcnMobWFpbCx0bykgImphbWVzLnN0aW5lQG9rc3RhdGUuZWR1IgotCi0jc2V0IHZhcnMoZGJzX2Zvcm1hdCkgb2EKLXNldCB2YXJzKGVuYWJsZV9wYWMpICAgICAgICAgICAgICAgICAgICAgdHJ1ZQotc2V0IHZhcnModGRzcF9jb3JlLHBhY19tb2RlKSAgICAgICAgICAgICBhbGwKLXNldCB2YXJzKHNpZ25vZmZfZXh0cmFjdGlvbl9lZmZvcnQpICAgICAgbG93Ci1zZXQgdmFycyhlbmFibGVfb2N2KSAgICAgICAgICAgICAgICAgICAgIGZhbHNlCi1zZXQgdmFycyhlbmFibGVfY3BwcikgICAgICAgICAgICAgICAgICAgIGZhbHNlCi1zZXQgdmFycyhlbmFibGVfc3MpICAgICAgICAgICAgICAgICAgICAgIGZhbHNlCi1zZXQgdmFycyhsaXRob19kcml2ZW5fcm91dGluZykgICAgICAgICAgIGZhbHNlCi0jc2V0IHZhcnMoZG9udF91c2VfbGlzdCkgIipDTEsqIgotc2V0IHZhcnModGllX2NlbGxzKSAgICAgInNreTEzMF9vc3Vfc2NfMTVUX21zX190aWVoaSBza3kxMzBfb3N1X3NjXzE1VF9tc19fdGllbG8iCi1zZXQgdmFycyhmaWxsZXJfY2VsbHMpICAic2t5MTMwX29zdV9zY18xNVRfbXNfX2ZpbGxfMSBza3kxMzBfb3N1X3NjXzE1VF9tc19fZmlsbF8yIHNreTEzMF9vc3Vfc2NfMTVUX21zX19maWxsXzQgc2t5MTMwX29zdV9zY18xNVRfbXNfX2ZpbGxfOCBza3kxMzBfb3N1X3NjXzE1VF9tc19fZmlsbF8xNiIKLXNldCB2YXJzKGN0c19pbnZlcnRlcl9jZWxscykgInNreTEzMF9vc3Vfc2NfMTVUX21zX19pbnZfbCBza3kxMzBfb3N1X3NjXzE1VF9tc19faW52XzEgc2t5MTMwX29zdV9zY18xNVRfbXNfX2ludl8yIHNreTEzMF9vc3Vfc2NfMTVUX21zX19pbnZfMyBza3kxMzBfb3N1X3NjXzE1VF9tc19faW52XzQiCi0jc2V0IHZhcnMoY3RzX2J1ZmZlcl9jZWxscykgIkNMS0JVRlgxIgotI3NldCB2YXJzKGRlbGF5X2NlbGxzKSAiRExZMSBETFkyIERMWTMgRExZNCIKLXNldCB2YXJzKHBsYWNlX2lvX3BpbnMpICAgICAgICAgICAgICAgICB0cnVlCi0KLQotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotIyBUaGUgZm9sbG93aW5nIHBsdWdpbnMgYXJlIHN1cHBvcnRlZCB3aGVuIG5lZWRlZCAuLi4KLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSNzZXQgdmFycyhhbHdheXNfc291cmNlX3RjbCkgICAgICAgICAgICAgUExVRy9JTk5PVlVTL2Fsd2F5c19zb3VyY2UudGNsCi1zZXQgdmFycyhwcmVfaW5pdF90Y2wpICAgICAgICAgICAgICAgICAgUExVRy9JTk5PVlVTL3ByZV9pbml0LnRjbAotc2V0IHZhcnMocG9zdF9pbml0X3RjbCkgICAgICAgICAgICAgICAgIFBMVUcvSU5OT1ZVUy9wb3N0X2luaXQudGNsCi1zZXQgdmFycyhwcmVfcGxhY2VfdGNsKSAgICAgICAgICAgICAgICAgUExVRy9JTk5PVlVTL3ByZV9wbGFjZS50Y2wKLSNzZXQgdmFycyhwbGFjZV90Y2wpICAgICAgICAgICAgICAgICAgICBQTFVHL0lOTk9WVVMvcGxhY2UudGNsCi0jc2V0IHZhcnMocG9zdF9wbGFjZV90Y2wpICAgICAgICAgICAgICAgIFBMVUcvSU5OT1ZVUy9wb3N0X3BsYWNlLnRjbAotI3NldCB2YXJzKHByZV9wcmVjdHNfdGNsKSAgICAgICAgICAgICAgICBQTFVHL0lOTk9WVVMvcHJlX3ByZWN0cy50Y2wKLSNzZXQgdmFycyhwb3N0X3ByZWN0c190Y2wpICAgICAgICAgICAgICAgUExVRy9JTk5PVlVTL3Bvc3RfcHJlY3RzLnRjbAotc2V0IHZhcnMocHJlX2N0c190Y2wpICAgICAgICAgICAgICAgICAgIFBMVUcvSU5OT1ZVUy9wcmVfY3RzLnRjbAotI3NldCB2YXJzKGN0c190Y2wpICAgICAgICAgICAgICAgICAgICAgIFBMVUcvSU5OT1ZVUy9jdHMudGNsCi1zZXQgdmFycyhwb3N0X2N0c190Y2wpICAgICAgICAgICAgICAgICAgUExVRy9JTk5PVlVTL3Bvc3RfY3RzLnRjbAotI3NldCB2YXJzKHByZV9wb3N0Y3RzX3RjbCkgICAgICAgICAgICAgICBQTFVHL0lOTk9WVVMvcHJlX3Bvc3RjdHMudGNsCi0jc2V0IHZhcnMocG9zdF9wb3N0Y3RzX3RjbCkgICAgICAgICAgICAgIFBMVUcvSU5OT1ZVUy9wb3N0X3Bvc3RjdHMudGNsCi0jc2V0IHZhcnMocHJlX3JvdXRlX3RjbCkgICAgICAgICAgICAgICAgIFBMVUcvSU5OT1ZVUy9wcmVfcm91dGUudGNsCi0jc2V0IHZhcnMocG9zdF9yb3V0ZV90Y2wpICAgICAgICAgICAgICAgIFBMVUcvSU5OT1ZVUy9wb3N0X3JvdXRlLnRjbAotI3NldCB2YXJzKHByZV9wb3N0Y3RzX2hvbGRfdGNsKSAgICAgICAgICBQTFVHL0lOTk9WVVMvcHJlX3Bvc3RjdHNfaG9sZC50Y2wKLSNzZXQgdmFycyhwb3N0X3Bvc3RjdHNfaG9sZF90Y2wpICAgICAgICAgUExVRy9JTk5PVlVTL3Bvc3RfcG9zdGN0c19ob2xkLnRjbAotI3NldCB2YXJzKHByZV9wb3N0cm91dGVfdGNsKSAgICAgICAgICAgICBQTFVHL0lOTk9WVVMvcHJlX3Bvc3Ryb3V0ZS50Y2wKLSNzZXQgdmFycyhwb3N0X3Bvc3Ryb3V0ZV90Y2wpICAgICAgICAgICAgUExVRy9JTk5PVlVTL3Bvc3RfcG9zdHJvdXRlLnRjbAotI3NldCB2YXJzKHByZV9wb3N0cm91dGVfaG9sZF90Y2wpICAgICAgICBQTFVHL0lOTk9WVVMvcHJlX3Bvc3Ryb3V0ZV9ob2xkLnRjbAotI3NldCB2YXJzKHBvc3RfcG9zdHJvdXRlX2hvbGRfdGNsKSAgICAgICBQTFVHL0lOTk9WVVMvcG9zdF9wb3N0cm91dGVfaG9sZC50Y2wKLSNzZXQgdmFycyhwcmVfcG9zdHJvdXRlX3NpX3RjbCkgICAgICAgICAgUExVRy9JTk5PVlVTL3ByZV9wb3N0cm91dGVfc2kudGNsCi0jc2V0IHZhcnMocG9zdF9wb3N0cm91dGVfc2lfdGNsKSAgICAgICAgIFBMVUcvSU5OT1ZVUy9wb3N0X3Bvc3Ryb3V0ZV9zaS50Y2wKLSNzZXQgdmFycyhwcmVfcG9zdHJvdXRlX3NpX2hvbGRfdGNsKSAgICAgUExVRy9JTk5PVlVTL3ByZV9wb3N0cm91dGVfc2lfaG9sZC50Y2wKLSNzZXQgdmFycyhwb3N0X3Bvc3Ryb3V0ZV9zaV9ob2xkX3RjbCkgICAgUExVRy9JTk5PVlVTL3Bvc3RfcG9zdHJvdXRlX3NpX2hvbGQudGNsCi0jc2V0IHZhcnMocHJlX3NpZ25vZmZfdGNsKSAgICAgICAgICAgICAgIFBMVUcvSU5OT1ZVUy9wcmVfc2lnbm9mZi50Y2wKLXNldCB2YXJzKHBvc3Rfc2lnbm9mZl90Y2wpICAgICAgICAgICAgICBQTFVHL0lOTk9WVVMvcG9zdF9zaWdub2ZmLnRjbAotI3NldCB2YXJzKHByZV9hc3NlbWJsZV90Y2wpICAgICAgICAgICAgICBQTFVHL0lOTk9WVVMvcHJlX2Fzc2VtYmxlLnRjbAotI3NldCB2YXJzKHBvc3RfYXNzZW1ibGVfdGNsKSAgICAgICAgICAgICBQTFVHL0lOTk9WVVMvcG9zdF9hc3NlbWJsZS50Y2wKLSNzZXQgdmFycyhwcmVfcGFjX3RjbCkgICAgICAgICAgICAgICAgICAgUExVRy9JTk5PVlVTL3ByZV9wYWMudGNsCi0jc2V0IHZhcnMocG9zdF9wYWNfdGNsKSAgICAgICAgICAgICAgICAgIFBMVUcvSU5OT1ZVUy9wb3N0X3BhYy50Y2wKLQotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSMgVG8gaW5zZXJ0IG1ldGFsIGZpbGwgZHVyaW5nIHRoZSBmbG93IGRlZmluZSB0aGUgZm9sbG93aW5nIHR3bwotIyB2YXJpYWJsZXM6Ci0jIC0gdmFycyhtZXRhbGZpbGwpIFtwcmVfcG9zdHJvdXRlLCBwcmVfcG9zdHJvdXRlX3NpLCBwcmVfc2lnbm9mZl0KLSMgLSB2YXJzKG1ldGFsZmlsbF90Y2wpIDxwYXRoIHRvIG1ldGFsZmlsbCBwbHVnLWluPgotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSNzZXQgdmFycyhtZXRhbGZpbGwpICAgICAgICAgICAgICAgICAgCXByZV9wb3N0cm91dGVfc2kKLSNzZXQgdmFycyhtZXRhbGZpbGxfdGNsKSAgICAgICAgICAgICAgICAJUExVRy9JTk5PVlVTL21ldGFsX2ZpbGwudGNsCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwpkaWZmIC0tZ2l0IGEvZmxvdy9wbnIvc2V0dXAudGNsIGIvZmxvdy9wbnIvc2V0dXAudGNsCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDc1NQppbmRleCBhNzEyMjcxLi4wMDAwMDAwCi0tLSBhL2Zsb3cvcG5yL3NldHVwLnRjbAorKysgL2Rldi9udWxsCkBAIC0xLDI2MyArMCwwIEBACi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0jICAgICAgICAgICAgICAgICAgICAgICBDQURFTkNFIENPUFlSSUdIVCBOT1RJQ0UKLSMgICAgICAgICCpIDIwMDgtMjAxMyBDYWRlbmNlIERlc2lnbiBTeXN0ZW1zLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0jCi0jIFRoaXMgRm91bmRhdGlvbiBGbG93IGlzIHByb3ZpZGVkIGFzIGFuIGV4YW1wbGUgb2YgaG93IHRvIHBlcmZvcm0gc3BlY2lhbGl6ZWQKLSMgdGFza3MuCi0jCi0jIFRoaXMgd29yayBtYXkgbm90IGJlIGNvcGllZCwgcmUtcHVibGlzaGVkLCB1cGxvYWRlZCwgb3IgZGlzdHJpYnV0ZWQgaW4gYW55IHdheSwKLSMgaW4gYW55IG1lZGl1bSwgd2hldGhlciBpbiB3aG9sZSBvciBpbiBwYXJ0LCB3aXRob3V0IHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbgotIyBmcm9tIENhZGVuY2UuIE5vdHdpdGhzdGFuZGluZyBhbnkgcmVzdHJpY3Rpb25zIGhlcmVpbiwgc3ViamVjdCB0byBjb21wbGlhbmNlCi0jIHdpdGggdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mIHRoZSBDYWRlbmNlIHNvZnR3YXJlIGxpY2Vuc2UgYWdyZWVtZW50IHVuZGVyCi0jIHdoaWNoIHRoaXMgbWF0ZXJpYWwgd2FzIHByb3ZpZGVkLCB0aGlzIG1hdGVyaWFsIG1heSBiZSBjb3BpZWQgYW5kIGludGVybmFsbHkKLSMgZGlzdHJpYnV0ZWQgc29sZWx5IGZvciBpbnRlcm5hbCBwdXJwb3NlcyBmb3IgdXNlIHdpdGggQ2FkZW5jZSB0b29scy4KLSMKLSMgVGhpcyB3b3JrIGlzIENhZGVuY2UgaW50ZWxsZWN0dWFsIHByb3BlcnR5IGFuZCBtYXkgdW5kZXIgbm8gY2lyY3Vtc3RhbmNlcyBiZQotIyBnaXZlbiB0byB0aGlyZCBwYXJ0aWVzLCBuZWl0aGVyIGluIG9yaWdpbmFsIG5vciBpbiBtb2RpZmllZCB2ZXJzaW9ucywgd2l0aG91dAotIyBleHBsaWNpdCB3cml0dGVuIHBlcm1pc3Npb24gZnJvbSBDYWRlbmNlLiBUaGUgaW5mb3JtYXRpb24gY29udGFpbmVkIGhlcmVpbiBpcwotIyB0aGUgcHJvcHJpZXRhcnkgYW5kIGNvbmZpZGVudGlhbCBpbmZvcm1hdGlvbiBvZiBDYWRlbmNlIG9yIGl0cyBsaWNlbnNvcnMsIGFuZAotIyBpcyBzdXBwbGllZCBzdWJqZWN0IHRvLCBhbmQgbWF5IGJlIHVzZWQgb25seSBieSBDYWRlbmNlJ3MgY3VycmVudCBjdXN0b21lcnMKLSMgaW4gYWNjb3JkYW5jZSB3aXRoLCBhIHByZXZpb3VzbHkgZXhlY3V0ZWQgbGljZW5zZSBhZ3JlZW1lbnQgYmV0d2VlbiBDYWRlbmNlCi0jIGFuZCBpdHMgY3VzdG9tZXIuCi0jCi0jLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0jIFRISVMgTUFURVJJQUwgSVMgUFJPVklERUQgQlkgQ0FERU5DRSAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVECi0jIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GCi0jIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuCi0jIElOIE5PIEVWRU5UIFNIQUxMIENBREVOQ0UgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTAotIyBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLAotIyBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUICAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IKLSMgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyAgTUFURVJJQUwsIEVWRU4gSUYKLSMgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0KLWdsb2JhbCB2YXJzCi0KLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSMgRGVmaW5lIHNvbWUgdmFyaWFibGVzIHRvIHBvaW50IHRvIGRhdGEsIGxpYnJhcmllcywgYW5kIHNjcmlwdHMKLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLXNldCB2YXJzKGRlc2lnbl9yb290KSAgW3B3ZF0vLi4vLi4KLXNldCB2YXJzKGRhdGFfcm9vdCkgIi4uLy4uL291dHB1dHMvIgotc2V0IHZhcnMobGlicmFyeV9yb290KSAiLi4vLi4vb3V0cHV0cy8iCi1zZXQgdmFycyhzY3JpcHRfcm9vdCkgIFtwd2RdL1NDUklQVFMKLSNzZXQgaW5pdF9pb19maWxlIGVuY291bnRlci5pbwotCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0jIFRoZSBmb2xsb3dpbmcgdmFyaWFibGVzIGRlZmluZSB0aGUgZGVzaWduIGRhdGEKLSMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSMgdmFycyhkZXNpZ24pICAgICAgIDxkZXNpZ24gbmFtZT4gUkVRVUlSRUQKLSMgdmFycyhuZXRsaXN0KSAgICAgIDx2ZXJpbG9nIG5ldGxpc3QgZmlsZT4gUkVRVUlSRUQKLSMgdmFycyhjdHNfc3BlYykgICAgIDxjdHMgc3BlYyBmaWxlIGxpc3QgPiBSRVFVSVJFRAotIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIyBFaXRoZXIgZnBfZmlsZSwgZGVmX2ZpbGVzIG9yIGJvdGggTVVTVCBiZSBkZWZpbmVkCi0jIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0jIHZhcnMoZnBfZmlsZSkgICAgICA8Zmxvb3JwbGFuIGZpbGU+Ci0jIHZhcnMoZnBfZmlsZSkgICAgICA8Zmxvb3JwbGFuIFRDTCBmaWxlPgotIyB2YXJzKGRlZl9maWxlcykgICAgIDxmbG9vcnBsYW4gREVGIGZpbGU+Ci0jIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1zZXQgdmFycyhkZXNpZ24pICAgICAgICAgICAicmlzY3YiCi1zZXQgdmFycyhuZXRsaXN0KSAgICAgICAgICAiJHZhcnMoZGF0YV9yb290KS9yaXNjdi52aCIKLSNzZXQgdmFycyhmcF9maWxlKSAgICAkdmFycyhkYXRhX3Jvb3QpL2R0bWZfcmVjdnJfY29yZS5mcAotI3NldCB2YXJzKGN0c19zcGVjKSAgIiR2YXJzKGRhdGFfcm9vdCkvZHRtZl9yZWN2cl9jb3JlLmN0c3RjaCIKLSNzZXQgdmFycyhkZWZfZmlsZXMpICIkdmFycyhkYXRhX3Jvb3QpL2R0bWZfcmVjdnJfY29yZS5zY2FuLmRlZi5neiIKLSMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSMgdmFycyhjcGZfZmlsZSkgICAgPFJFUVVJUkVEIGZvciBMUCBmbG93cz4KLSMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSNzZXQgdmFycyhjcGZfZmlsZSkgICAkdmFycyhkYXRhX3Jvb3QpL2R0bWZfcmVjdnJfY29yZS5jcGYKLQotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotIyBUaGUgZm9sbG93aW5nIGFyZSBmb3IgdGhlIElMTSBiYXNlZCBoaWVyYXJjaGljYWwgZmxvdwotIyB2YXJzKHBhcnRpdGlvbl9saXN0KSAgICAgICAgICAgICAgICAgICAgIDxwdG4xPiA8cHRuMj4gLi4uIFJFUVVJUkVECi0jIHZhcnMoPHB0bjE+LGN0c19zcGVjKSAgICAgICAgICAgICAgICAgICAgPGN0cyBzcGVjIGZvciBwdG4xPiAKLSMgdmFycyg8cHRuMT4sbGF0ZW5jeV9zZGMpICAgICAgICAgICAgICAgICA8bGF0ZW5jeSBzZGMgZm9yIHB0bjE+IAotIyB2YXJzKDxwdG4xPixpbmNyX2N0c19zZGMpICAgICAgICAgICAgICAgIDxwb3N0IGN0cyBpbmNyIHNkYyBmb3IgcHRuMT4gT1BUSU9OQUwKLSMgdmFycyg8cHRuMT4scG9zdF9jdHNfc2RjKSAgICAgICAgICAgICAgICA8cG9zdCBjdHMgKGZ1bGwpIHNkYyBmb3IgcHRuMT4gT1BUSU9OQUwKLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSNzZXQgdmFycyhwYXJ0aXRpb25fbGlzdCkgICAgICAgICAgICAgICAgICAgInRkc3BfY29yZSByZXN1bHRzX2NvbnYiCi0jc2V0IHZhcnMoZHRtZl9yZWN2cl9jb3JlLGN0c19zcGVjKSAgICAgICAgICR2YXJzKGRhdGFfcm9vdCkvZHRtZl9yZWN2cl9jb3JlLmN0c3RjaAotI3NldCB2YXJzKGR0bWZfcmVjdnJfY29yZSxsYXRlbmN5X3NkYykgICAgICAkdmFycyhkYXRhX3Jvb3QpL2R0bWZfcmVjdnJfY29yZS5sYXRlbmN5LnNkYwotI3NldCB2YXJzKHRkc3BfY29yZSxjdHNfc3BlYykgICAgICAgICAgICAgICAkdmFycyhkYXRhX3Jvb3QpL3Rkc3BfY29yZS5jdHN0Y2gKLSNzZXQgdmFycyh0ZHNwX2NvcmUsc2V0dXBfZnVuYyxsYXRlbmN5X3NkYykgJHZhcnMoZGF0YV9yb290KS90ZHNwX2NvcmUubGF0ZW5jeS5zZGMKLSNzZXQgdmFycyhyZXN1bHRzX2NvbnYsY3RzX3NwZWMpICAgICAgICAgICAgJHZhcnMoZGF0YV9yb290KS9yZXN1bHRzX2NvbnYuY3RzdGNoCi0jc2V0IHZhcnMocmVzdWx0c19jb252LGxhdGVuY3lfc2RjKSAgICAgICAgICR2YXJzKGRhdGFfcm9vdCkvcmVzdWx0c19jb252LmxhdGVuY3kuc2RjCi0KLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSMgVGhlIGZvbGxvd2luZyBhcmUgUkVRVUlSRUQKLSMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSMgdmFycyhwcm9jZXNzKSAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cHJvY2VzcyBub2RlPiAoNjVubSwgOTBubSwgZS5nLikKLSMgdmFycyhtYXhfcm91dGVfbGF5ZXJzKSAgICAgICAgICAgICAgICAgICA8dG9wIHJvdXRpbmcgbGF5ZXI+Ci0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi1zZXQgdmFycyhwcm9jZXNzKSAgICAgICAgICAgICAgICAgICAgICAgICAgMTMwbm0KLXNldCB2YXJzKG1heF9yb3V0ZV9sYXllcikgICAgICAgICAgICAgICAgICA1Ci0KLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSMgRGVmaW5lIGxpYnJhcnkgc2V0cyAuLi4KLSMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSMgc2V0IHZhcnMobGlicmFyeV9zZXRzKSAiPHNldDE+IDxzZXQyPiAuLi4iCi0jIHNldCB2YXJzKDxzZXQxPix0aW1pbmcpIDxsaXN0IG9mIGxpYiBmaWxlcz4gKFJFUVVJUkVEKQotIyBzZXQgdmFycyg8c2V0MT4sc2kpICAgICA8bGlzdCBvZiBjZGIvdWRuIGZpbGVzPiAoT1BUSU9OQUwpCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi1zZXQgdmFycyhsaWJyYXJ5X3NldHMpICAgImxpYnNfdHQiCi1zZXQgdmFycyhsaWJzX3R0LHRpbWluZykgIi4uLy4uL291dHB1dHMvc2t5MTMwX29zdV9zY18xNVRfbXNfVFRfMVA4XzI1Qy5jY3MubGliIgotc2V0IHZhcnMobGVmX2ZpbGVzKSAiLi4vLi4vY2hhci90ZWNoZmlsZXMvc2t5MTMwX29zdV9zY18xNVQudGxlZiBcCi0JCSAgICAgLi4vLi4vb3V0cHV0cy9za3kxMzBfb3N1X3NjXzE1VF9tcy5sZWYgIgotCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0jIERlZmluZSByYyBjb3JuZXJzIC4uLgotIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIyBzZXQgdmFycyhyY19jb3JuZXJzKSAgICAgICAgICAiPGNvcm5lcjE+IDxjb3JuZXIyPiAuLi4iCi0jIHNldCB2YXJzKDxjb3JuZXIxPixUKSAgICAgICAgICA8dGVtcGVyYXR1cmU+Ci0jIHNldCB2YXJzKDxjb3JuZXIxPixjYXBfdGFibGUpICA8Y2FwIHRhYmxlIGZvciBjb3JuZXIxPgotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotIyBPcHRpb25hbGx5IGRlZmluZSBRUkMgdGVjaG5vbG9neSBpbmZvcm1hdGlvbgotIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIyBzZXQgdmFycyg8Y29ybmVyPixxeF90ZWNoX2ZpbGUpIDxxeF90ZWNoX2ZpbGUgZm9yIGNvcm5lcjE+Ci0jIHNldCB2YXJzKDxjb3JuZXI+LHF4X2xpYl9maWxlKSAgPHF4X2xpYl9maWxlIGZvciBjb3JuZXIxPgotIyBzZXQgdmFycyg8Y29ybmVyPixxeF9jb25mX2ZpbGUpIDxxeF9jb25mX2ZpbGUgZm9yIGNvcm5lcjE+Ci0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi1zZXQgdmFycyhyY19jb3JuZXJzKSAgICAgICAgICAicmNfdHlwIgotc2V0IHZhcnMocmNfdHlwLFQpICAgICAgICAgICAgMjUKLQotI3NldCB2YXJzKHJjX21heCxjYXBfdGFibGUpICAgICR2YXJzKGRlc2lnbl9yb290KS9MSUJTL040NS9jYXBUYmwvY2xuNDVscF9lZHJhbV8xcDA4bV9jd29yc3QuY2FwVGJsCi0jc2V0IHZhcnMocmNfbWluLGNhcF90YWJsZSkgICAgJHZhcnMoZGVzaWduX3Jvb3QpL0xJQlMvTjQ1L2NhcFRibC9jbG40NWxwX2VkcmFtXzFwMDhtX2NiZXN0LmNhcFRibAotI3NldCB2YXJzKHJjX21heCxxeF90ZWNoX2ZpbGUpICR2YXJzKGRlc2lnbl9yb290KS9MSUJTL040NS9xcmMvY2xuNDVscF9lZHJhbV8xcDA4bV9jd29yc3QvaWNlY2Fwcy50Y2gKLSNzZXQgdmFycyhyY19taW4scXhfdGVjaF9maWxlKSAkdmFycyhkZXNpZ25fcm9vdCkvTElCUy9ONDUvcXJjL2NsbjQ1bHBfZWRyYW1fMXAwOG1fY2Jlc3QvaWNlY2Fwcy50Y2gKLSNzZXQgdmFycyhxeF9sYXllcl9tYXBfZmlsZSkgICAkdmFycyhkZXNpZ25fcm9vdCkvTElCUy9ONDUvcXJjL2xheWVyLm1hcAotI3NldCB2YXJzKHNpZ25vZmZfZXh0cmFjdGlvbl9lbmdpbmUpIHFyYwotCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0jIFNjYWxlIGZhY3RvcnMgYXJlIGFsc28gb3B0aW9uYWwgYnV0IGFyZSBzdHJvbmdseSBlbmNvdXJhZ2VkIGZvciAKLSMgb2J0YWluaW5nIHRoZSBiZXN0IGZsb3cgY29udmVyZ2VuY2UgYW5kIFFvUi4gIAotIyBTY2FsaW5nIGZhY3RvcnMgYXJlIGFwcGxpZWQgcGVyIHJjIGNvcm5lcgotIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIyBzZXQgdmFycyg8cmNfY29ybmVyPixkZWZfcmVzX2ZhY3RvcikgICAgIDxwcmUtcm91dGUgcmVzaXN0YW5jZSBzY2FsZSBmYWN0b3I+Ci0jIHNldCB2YXJzKDxyY19jb3JuZXI+LGRlZl9jbGtfcmVzX2ZhY3RvcikgPHByZS1yb3V0ZSBjbG9jayByZXNpc3RhbmNlIHNjYWxlIGZhY3Rvcj4KLSMgc2V0IHZhcnMoPHJjX2Nvcm5lcj4sZGV0X3Jlc19mYWN0b3IpICAgICA8cG9zdC1yb3V0ZSByZXNpc3RhbmNlIHNjYWxlIGZhY3Rvcj4KLSMgc2V0IHZhcnMoPHJjX2Nvcm5lcj4sZGV0X2Nsa19yZXNfZmFjdG9yKSA8cG9zdC1yb3V0ZSBjbG9jayByZXNpc3RhbmNlIHNjYWxlIGZhY3Rvcj4KLSMgc2V0IHZhcnMoPHJjX2Nvcm5lcj4sZGVmX2NhcF9mYWN0b3IpICAgICA8cHJlLXJvdXRlIGNhcGFjaXRhbmNlIHNjYWxlIGZhY3Rvcj4KLSMgc2V0IHZhcnMoPHJjX2Nvcm5lcj4sZGVmX2Nsa19jYXBfZmFjdG9yKSA8cHJlLXJvdXRlIGNsb2NrIGNhcGFjaXRhbmNlIHNjYWxlIGZhY3Rvcj4KLSMgc2V0IHZhcnMoPHJjX2Nvcm5lcj4sZGV0X2NhcF9mYWN0b3IpICAgICA8cG9zdC1yb3V0ZSBjYXBhY2l0YW5jZSBzY2FsZSBmYWN0b3I+Ci0jIHNldCB2YXJzKDxyY19jb3JuZXI+LGRldF9jbGtfY2FwX2ZhY3RvcikgPHBvc3Qtcm91dGUgY2xvY2sgY2FwYWNpdGFuY2Ugc2NhbGUgZmFjdG9yPgotIyBzZXQgdmFycyg8cmNfY29ybmVyPix4Y2FwX2ZhY3RvcikgICAgICAgIDxwb3N0LXJvdXRlIGNvdXBsaW5nIGNhcGFjaXRhbmNlIHNjYWxlIGZhY3Rvcj4KLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLXNldCB2YXJzKHJjX21heCxkZWZfcmVzX2ZhY3RvcikgICAgIDEuMDAKLXNldCB2YXJzKHJjX21heCxkZWZfY2xrX3Jlc19mYWN0b3IpIDEuMDAKLXNldCB2YXJzKHJjX21heCxkZXRfcmVzX2ZhY3RvcikgICAgIDEuMDAKLXNldCB2YXJzKHJjX21heCxkZXRfY2xrX3Jlc19mYWN0b3IpIDEuMDAKLXNldCB2YXJzKHJjX21heCxkZWZfY2FwX2ZhY3RvcikgICAgIDEuMDkKLXNldCB2YXJzKHJjX21heCxkZWZfY2xrX2NhcF9mYWN0b3IpIDEuMDAKLXNldCB2YXJzKHJjX21heCxkZXRfY2FwX2ZhY3RvcikgICAgIDEuMDAKLXNldCB2YXJzKHJjX21heCxkZXRfY2xrX2NhcF9mYWN0b3IpIDEuMDAKLXNldCB2YXJzKHJjX21heCx4Y2FwX2ZhY3RvcikgICAgICAgIDEuMDAKLQotc2V0IHZhcnMocmNfbWluLGRlZl9yZXNfZmFjdG9yKSAgICAgMS4wMAotc2V0IHZhcnMocmNfbWluLGRldF9yZXNfZmFjdG9yKSAgICAgMS4wMAotc2V0IHZhcnMocmNfbWluLGRlZl9jYXBfZmFjdG9yKSAgICAgMS4wMAotc2V0IHZhcnMocmNfbWluLGRldF9jYXBfZmFjdG9yKSAgICAgMS4wMAotc2V0IHZhcnMocmNfbWluLHhjYXBfZmFjdG9yKSAgICAgICAgMS4wMAotCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0jIERlZmluZSBvcGVyYXRpbmcgY29uZGl0aW9ucyAob3B0aW9uYWwpCi0jIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0jIHNldCB2YXJzKG9wY29uZHMpICAgICAgICAgICAgICAgICI8b3Bjb25kMT4gPG9wY29uZDI+IC4uLiIKLSMgc2V0IHZhcnMoPG9wY29uZDE+LGxpYnJhcnlfZmlsZSkgIDxsaWJyYXJ5IGZpbGUgPgotIyBzZXQgdmFycyg8b3Bjb25kMT4scHJvY2VzcykgICAgICAgPHByb2Nlc3Mgc2NhbGUgZmFjdG9yPgotIyBzZXQgdmFycyg8b3Bjb25kMT4sdm9sdGFnZSkgICAgICAgPHZvbHRhZ2U+Ci0jIHNldCB2YXJzKDxvcGNvbmQxPix0ZW1wZXJhdHVyZSkgICA8dGVtcGVyYXR1cmU+Ci0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0KLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSMgRGVmaW5lIGRlbGF5IGNvcm5lcnMgLi4uCi0jIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0jIHNldCB2YXJzKGRlbGF5X2Nvcm5lcnMpICAgICAgICAgICI8Y29ybmVyMT4gPGNvcm5lcjI+IC4uLiIKLSMgc2V0IHZhcnMoPGNvcm5lcjE+LGxpYnJhcnlfc2V0KSAgIDxsaWJyYXJ5X3NldD4gKHByZXZpb3VzbHkgZGVmaW5lZCkKLSMgc2V0IHZhcnMoPGNvcm5lcjE+LG9wY29uZCkgICAgICAgIDxvcGNvbmQ+IChwcmV2aW91c2x5IGRlZmluZWQpIChvcHRpb25hbCkKLSMgc2V0IHZhcnMoPGNvcm5lcjE+LHJjX2Nvcm5lcikgICAgIDxyY19jb3JuZXI+IChwcmV2aW91c2x5IGRlZmluZWQpCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi1zZXQgdmFycyhkZWxheV9jb3JuZXJzKSAiY29ybmVyX3R0Igotc2V0IHZhcnMoY29ybmVyX3R0LGxpYnJhcnlfc2V0KSBsaWJzX3R0Ci1zZXQgdmFycyhjb3JuZXJfdHQscmNfY29ybmVyKSByY190eXAKLQotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotIyBEZWZpbmUgY29uc3RyYWludHMgbW9kZXMgLi4uIAotIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIyBzZXQgdmFycyhjb25zdHJhaW50X21vZGVzKSAgICAgICAgICAiPG1vZGUxPiA8bW9kZTI+IC4uLiIKLSMgc2V0IHZhcnMoPG1vZGUxPixwcmVfY3RzX3NkYykgICAgICAgIDxwcmUgY3RzIGNvbnN0cmFpbnQgZmlsZT4KLSMgc2V0IHZhcnMoPG1vZGUxPixwb3N0X2N0c19zZGMpICAgICAgIDxwb3N0IGN0cyBjb25zdHJhaW50IGZpbGU+IChvcHRpb25hbCkKLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLQotc2V0IHZhcnMoY29uc3RyYWludF9tb2RlcykgInNldHVwX2Z1bmNfbW9kZSIKLXNldCB2YXJzKHNldHVwX2Z1bmNfbW9kZSxwcmVfY3RzX3NkYykgIiR2YXJzKGRhdGFfcm9vdCkvcmlzY3Yuc2RjIgotCi0jc2V0IHZhcnMoY29uc3RyYWludF9tb2RlcykgICAgICAgICAgICAgInNldHVwX2Z1bmNfbW9kZSBob2xkX2Z1bmNfbW9kZSIKLSNzZXQgdmFycyhzZXR1cF9mdW5jX21vZGUscHJlX2N0c19zZGMpICAiJHZhcnMoZGF0YV9yb290KS9kdG1mX3JlY3ZyX2NvcmUuc2RjICR2YXJzKGRhdGFfcm9vdCkvcHJlY3RzLnNkYyIKLSNzZXQgdmFycyhzZXR1cF9mdW5jX21vZGUscG9zdF9jdHNfc2RjKSAiJHZhcnMoZGF0YV9yb290KS9kdG1mX3JlY3ZyX2NvcmUuc2RjICR2YXJzKGRhdGFfcm9vdCkvcG9zdGN0cy5zZGMiCi0jc2V0IHZhcnMoc2V0dXBfZnVuY19tb2RlLGluY3JfY3RzX3NkYykgICR2YXJzKGRhdGFfcm9vdCkvcG9zdGN0cy5zZGMKLQotI3NldCB2YXJzKGhvbGRfZnVuY19tb2RlLHByZV9jdHNfc2RjKSAgICAkdmFycyhzZXR1cF9mdW5jX21vZGUscHJlX2N0c19zZGMpCi0jc2V0IHZhcnMoaG9sZF9mdW5jX21vZGUscG9zdF9jdHNfc2RjKSAgICR2YXJzKHNldHVwX2Z1bmNfbW9kZSxwb3N0X2N0c19zZGMpCi0KLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSMgRGVmaW5lIGFuYWx5c2lzIHZpZXdzIC4uLgotIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIyBzZXQgdmFycyhzZXR1cF9hbmFseXNpc192aWV3cykgICAgIjx2aWV3MT4gPHZpZXcyPiIKLSMgc2V0IHZhcnMoaG9sZF9hbmFseXNpc192aWV3cykgICAgICI8dmlldzE+IDx2aWV3Mj4iCi0jIHNldCB2YXJzKDx2aWV3MT4sZGVsYXlfY29ybmVyKSAgICAgPGRlbGF5IGNvcm5lcj4KLSMgc2V0IHZhcnMoPHZpZXcxPixjb25zdHJhaW50X21vZGUpICA8Y29uc3RyYWludCBtb2RlPgotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotc2V0IHZhcnMoaG9sZF9hbmFseXNpc192aWV3cykgInNldHVwX2Z1bmMiCi1zZXQgdmFycyhzZXR1cF9hbmFseXNpc192aWV3cykgImhvbGRfZnVuYyIKLXNldCB2YXJzKGhvbGRfZnVuYyxkZWxheV9jb3JuZXIpIGNvcm5lcl90dAotc2V0IHZhcnMoaG9sZF9mdW5jLGNvbnN0cmFpbnRfbW9kZSkgc2V0dXBfZnVuY19tb2RlCi1zZXQgdmFycyhzZXR1cF9mdW5jLGRlbGF5X2Nvcm5lcikgY29ybmVyX3R0Ci1zZXQgdmFycyhzZXR1cF9mdW5jLGNvbnN0cmFpbnRfbW9kZSkgc2V0dXBfZnVuY19tb2RlCi0KLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSMgRGVmaW5lIGFjdGl2ZSBzZXR1cCBhbmQgaG9sZCB2aWV3cyBhbmQgZGVub3RlIHdoaWNoIGFyZSBkZWZhdWx0Ci0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi1zZXQgdmFycyhkZWZhdWx0X3NldHVwX3ZpZXcpICJzZXR1cF9mdW5jIgotc2V0IHZhcnMoZGVmYXVsdF9ob2xkX3ZpZXcpICAiaG9sZF9mdW5jIgotc2V0IHZhcnMoYWN0aXZlX3NldHVwX3ZpZXdzKSAic2V0dXBfZnVuYyIKLXNldCB2YXJzKGFjdGl2ZV9ob2xkX3ZpZXdzKSAgImhvbGRfZnVuYyIKLQotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotIyBEZWZpbmUgZGVyYXRpbmcgZmFjdG9ycyBmb3IgT0NWIGhlcmUgKGNsb2NrIGFuZCBkYXRhKS4gCi0jIERlcmF0aW5nIGZhY3RvcnMgYXJlIGFwcGxpZWQgcGVyIGRlbGF5IGNvcm5lcgotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotc2V0IHZhcnMoc2xvd19tYXgsZGF0YV9jZWxsX2xhdGUpICAgMS4wMAotc2V0IHZhcnMoc2xvd19tYXgsZGF0YV9jZWxsX2Vhcmx5KSAgMS4wMAotc2V0IHZhcnMoc2xvd19tYXgsZGF0YV9uZXRfbGF0ZSkgICAgMS4wMAotc2V0IHZhcnMoc2xvd19tYXgsZGF0YV9uZXRfZWFybHkpICAgMS4wMAotc2V0IHZhcnMoc2xvd19tYXgsY2xvY2tfY2VsbF9sYXRlKSAgMS4wMAotc2V0IHZhcnMoc2xvd19tYXgsY2xvY2tfY2VsbF9lYXJseSkgMS4wMAotc2V0IHZhcnMoc2xvd19tYXgsY2xvY2tfbmV0X2xhdGUpICAgMS4wMAotc2V0IHZhcnMoc2xvd19tYXgsY2xvY2tfbmV0X2Vhcmx5KSAgMS4wMAotCi1zZXQgdmFycyhmYXN0X21pbixkYXRhX2NlbGxfbGF0ZSkgICAxLjAwCi1zZXQgdmFycyhmYXN0X21pbixkYXRhX2NlbGxfZWFybHkpICAxLjAwCi1zZXQgdmFycyhmYXN0X21pbixkYXRhX25ldF9sYXRlKSAgICAxLjAwCi1zZXQgdmFycyhmYXN0X21pbixkYXRhX25ldF9lYXJseSkgICAxLjAwCi1zZXQgdmFycyhmYXN0X21pbixjbG9ja19jZWxsX2xhdGUpICAxLjAwCi1zZXQgdmFycyhmYXN0X21pbixjbG9ja19jZWxsX2Vhcmx5KSAxLjAwCi1zZXQgdmFycyhmYXN0X21pbixjbG9ja19uZXRfbGF0ZSkgICAxLjAwCi1zZXQgdmFycyhmYXN0X21pbixjbG9ja19uZXRfZWFybHkpICAxLjAwCi0KLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSMgRGVmaW5lIHBvd2VyL2dyb3VuZCBuZXRzCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi1zZXQgdmFycyhwb3dlcl9uZXRzKSAiVkREIgotc2V0IHZhcnMoZ3JvdW5kX25ldHMpICJWU1MiCi0KLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0jIERpc3RyaWJ1dGlvbiBzZXR1cAotIyBsc2YsIHJzaCwgbG9jYWwsIG9yIGN1c3RvbQotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSNzZXQgdmFycyhkaXN0cmlidXRlKSAgICAgICAgICAgY3VzdG9tCi0jc2V0IHZhcnMoY3VzdG9tLHNjcmlwdCkgICAgICAgIHsvZ3JpZC9zZmkvZmFybS9iaW4vZ3JpZHN1YiAtVyA3MjowMCAtUCBTT0M3LjEgXAotIyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLVIgIlNGSUFSQ0g9PU9QVDY0ICYmIE9TUkVMPT1FRTQwIiAtcSBsbng2NH0KLSNzZXQgdmFycyhsb2NhbF9jcHVzKSAgICAgICAgICAgMgotI3NldCB2YXJzKHJlbW90ZV9ob3N0cykgICAgICAgICA0Ci0jc2V0IHZhcnMoY3B1X3Blcl9yZW1vdGVfaG9zdCkgIDIKLQotUHV0cyAiPEZGPiBGaW5pc2hlZCBsb2FkaW5nIHNldHVwLnRjbCIKZGlmZiAtLWdpdCBhL2Zsb3cvcG5yL3NvdXJjZW1lIGIvZmxvdy9wbnIvc291cmNlbWUKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDRjYTc1MTUuLjAwMDAwMDAKLS0tIGEvZmxvdy9wbnIvc291cmNlbWUKKysrIC9kZXYvbnVsbApAQCAtMSArMCwwIEBACi1zb3VyY2UgLi4vLi4vc2NyaXB0cy9jYWRlbmNlLmNzaHJjCmRpZmYgLS1naXQgYS9mbG93L3Buci9zdHJlYW1PdXQubWFwIGIvZmxvdy9wbnIvc3RyZWFtT3V0Lm1hcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjNjNGI4My4uMDAwMDAwMAotLS0gYS9mbG93L3Buci9zdHJlYW1PdXQubWFwCisrKyAvZGV2L251bGwKQEAgLTEsNzAgKzAsMCBAQAotbGkxCQlORVQJCTY3CQkyMAotbGkxCQlTUE5FVAkJNjcJCTIwCi1saTEJCVBJTgkJNjcJCTIwCi1saTEJCUZJTEwJCTY3CQkyMAotbGkxCQlWSUEJCTY3CQkyMAotbGkxCQlWSUFGSUxMCQk2NwkJMjAKLU5BTUUJCWxpMS9QSU4JCTY3IAkJMjAKLU5BTUUJCWxpMS9TUE5FVAk2NyAJCTIwCi0KLW1ldDEJCU5FVAkJNjgJCTIwCi1tZXQxCQlTUE5FVAkJNjgJCTIwCi1tZXQxCQlQSU4JCTY4CQkyMAotbWV0MQkJRklMTAkJNjgJCTIwCi1tZXQxCQlWSUEJCTY4CQkyMAotbWV0MQkJVklBRklMTAkJNjgJCTIwCi1OQU1FCQltZXQxL1BJTgk2OCAJCTIwCi1OQU1FCQltZXQxL1NQTkVUCTY4IAkJMjAKLQotbWV0MgkJTkVUCQk2OQkJMjAKLW1ldDIJCVNQTkVUCQk2OQkJMjAKLW1ldDIJCVBJTgkJNjkJCTIwCi1tZXQyCQlGSUxMCQk2OQkJMjAKLW1ldDIJCVZJQQkJNjkJCTIwCi1tZXQyCQlWSUFGSUxMCQk2OQkJMjAKLU5BTUUJCW1ldDIvUElOCTY5IAkJMjAKLU5BTUUJCW1ldDIvU1BORVQJNjkgCQkyMAotCi1tZXQzCQlORVQJCTcwCQkyMAotbWV0MwkJU1BORVQJCTcwCQkyMAotbWV0MwkJUElOCQk3MAkJMjAKLW1ldDMJCUZJTEwJCTcwCQkyMAotbWV0MwkJVklBCQk3MAkJMjAKLW1ldDMJCVZJQUZJTEwJCTcwCQkyMAotTkFNRQkJbWV0My9QSU4JNzAgCQkyMAotTkFNRQkJbWV0My9TUE5FVAk3MCAJCTIwCi0KLW1ldDQJCU5FVAkJNzEJCTIwCi1tZXQ0CQlTUE5FVAkJNzEJCTIwCi1tZXQ0CQlQSU4JCTcxCQkyMAotbWV0NAkJRklMTAkJNzEJCTIwCi1tZXQ0CQlWSUEJCTcxCQkyMAotbWV0NAkJVklBRklMTAkJNzEJCTIwCi1OQU1FCQltZXQ0L1BJTgk3MSAJCTIwCi1OQU1FCQltZXQ0L1NQTkVUCTcxIAkJMjAKLQotbWV0NQkJTkVUCQk3MgkJMjAKLW1ldDUJCVNQTkVUCQk3MgkJMjAKLW1ldDUJCVBJTgkJNzIJCTIwCi1tZXQ1CQlGSUxMCQk3MgkJMjAKLW1ldDUJCVZJQQkJNzIJCTIwCi1tZXQ1CQlWSUFGSUxMCQk3MgkJMjAKLU5BTUUJCW1ldDUvUElOCTcyIAkJMjAKLU5BTUUJCW1ldDUvU1BORVQJNzIgCQkyMAotCi1tY29uIAkJVklBCQk2NwkJNDQKLW1jb24JCVZJQUZJTEwJCTY3CQk0NAotCi12aWExIAkJVklBCQk2OAkJNDQKLXZpYTEgCQlWSUFGSUxMCQk2OAkJNDQKLQotdmlhMiAJCVZJQQkJNjkJCTQ0Ci12aWEyIAkJVklBRklMTAkJNjkJCTQ0Ci0KLXZpYTMgCQlWSUEJCTcwCQk0NAotdmlhMyAJCVZJQUZJTEwJCTcwCQk0NAotCi12aWE0IAkJVklBCQk3MQkJNDQKLXZpYTQgCQlWSUFGSUxMCQk3MQkJNDQKLQotCmRpZmYgLS1naXQgYS9mbG93L3Buci90YXBlb3V0LnRjbCBiL2Zsb3cvcG5yL3RhcGVvdXQudGNsCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDc1NQppbmRleCBiMzQ1MTdlLi4wMDAwMDAwCi0tLSBhL2Zsb3cvcG5yL3RhcGVvdXQudGNsCisrKyAvZGV2L251bGwKQEAgLTEsNyArMCwwIEBACi0jIE91dHB1dCBHRFNJSQotc3RyZWFtT3V0IGZpbmFsLmdkcyAtbWFwRmlsZSBzdHJlYW1PdXQubWFwIC1zdHJpcGVzIDEgLXVuaXRzIDEwMDAgLW1vZGUgQUxMCi1zYXZlTmV0bGlzdCAtZXhjbHVkZUxlYWZDZWxsIGZpbmFsLnYKLQotIyBSdW4gRFJDIGFuZCBDb25uZWN0aW9uIGNoZWNrcwotdmVyaWZ5R2VvbWV0cnkKLXZlcmlmeUNvbm5lY3Rpdml0eSAtdHlwZSBhbGwgLW5vQW50ZW5uYQo=